Index: palm/trunk/INSTALL/ex_lsm_clearsky_rc
===================================================================
--- palm/trunk/INSTALL/ex_lsm_clearsky_rc	(revision 2693)
+++ palm/trunk/INSTALL/ex_lsm_clearsky_rc	(revision 2696)
@@ -1,10 +1,10 @@
 
  ******************************    --------------------------------------------
- * PALM 4.0  Rev: 2603:26     *    atmosphere - run without 1D - prerun
+ * PALM 4.0  Rev: 2693        *    atmosphere - run without 1D - prerun
  ******************************    --------------------------------------------
 
- Date:                 13-11-17    Run:       ex_lsm_clearsky     
- Time:                 14:31:43    Run-No.:   00
- Run on host:             lcmuk
+ Date:                 13-12-17    Run:       ex_lsm_clearsky     
+ Time:                 18:28:57    Run-No.:   00
+ Run on host:        imukpalm4u
  Number of PEs:               4    Processor grid (x,y): (   2,   2) calculated
  ------------------------------------------------------------------------------
@@ -13,4 +13,5 @@
  -----------------
 
+ --> Use the Moeng_Wyngaard turbulence closure (LES mode).
  --> Use the boussinesq approximation for the model equations.
  --> Solve perturbation pressure via FFT using temperton-algorithm routines
@@ -282,17 +283,17 @@
 RUN  ITER. HH:MM:SS.SS    DT(E)     UMAX     VMAX     WMAX     U*    W*      THETA*     Z_I     ENERG.   DISTENERG    DIVOLD     DIVNEW     UMAX(KJI)    VMAX(KJI)    WMAX(KJI)   ADVECX   ADVECY   MGCYC
 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-  0      0 00:00:00.00   8.6700A   5.1898D -0.2288D  0.1182  0.100  0.00   0.200E-11    800.  0.119E+02  0.103E-02  0.611E-03  0.888E-13    9   9  23   11   7  19    5  26   7    0.000    0.000       0
-  0      1 00:00:08.67   8.6900A   5.1806   0.2159   0.1162  0.001  0.00   0.000E+00    550.  0.119E+02  0.867E-03  0.287E-05  0.440E-15    9   9  24    4   5  26    5  26   8    0.000    0.000       0
-  0      2 00:00:17.35   8.6900A   5.1762   0.1915   0.1151  0.021  1.06  -0.495E+02    100.  0.119E+02  0.793E-03  0.744E-05  0.407E-15    5  16  32    4   5  27    5  26   9    0.000    0.000       0
-  0      3 00:00:26.04   8.7000A   5.1723   0.1786   0.1113  0.021  0.70  -0.516E+01    100.  0.119E+02  0.751E-03  0.247E-05  0.385E-15    5  16  33    4   5  28    5  26  10    0.000    0.000       0
-  0      4 00:00:34.75   8.7000A   5.1732  -0.1675   0.1061  0.027  0.69  -0.360E+01    100.  0.119E+02  0.721E-03  0.396E-05  0.358E-15    5  16  34    8  29  32    5  26  11    0.000    0.000       0
-  0      5 00:00:43.45   8.7000A   5.1719  -0.1671   0.1028  0.034  0.93  -0.287E+01    250.  0.119E+02  0.698E-03  0.471E-05  0.337E-15    5  16  35    8  29  33    5  26  11    0.000    0.000       0
-  0      6 00:00:52.15   8.7000A   5.1701  -0.1621   0.1039  0.039  0.93  -0.242E+01    250.  0.119E+02  0.680E-03  0.548E-05  0.321E-15    5  16  36    8  29  34    5  26  12    0.000    0.000       0
-  0      7 00:01:00.85   8.7100A   5.1675  -0.1565   0.1043  0.045  1.21  -0.211E+01    550.  0.119E+02  0.665E-03  0.627E-05  0.306E-15    5  16  37    8  29  35    5  26  13    0.000    0.000       0
-  0      8 00:01:09.56   8.7100A   5.1643   0.1515   0.1040  0.051  1.21  -0.189E+01    550.  0.119E+02  0.652E-03  0.709E-05  0.294E-15    5  16  38   11   3  22    5  26  14    0.000    0.000       0
-  0      9 00:01:18.27   8.7100A   5.1636  -0.1506   0.1034  0.056  1.20  -0.166E+01    550.  0.119E+02  0.640E-03  0.785E-05  0.282E-15    5  16  38    8  29  36    5  26  15    0.000    0.000       0
-  0     10 00:01:26.98   8.7100A   5.1635  -0.1516   0.1024  0.061  1.20  -0.153E+01    550.  0.119E+02  0.630E-03  0.868E-05  0.269E-15    5  16  39    8  29  37    5  26  16    0.000    0.000       0
-  0     11 00:01:35.69   8.7200A   5.1632  -0.1516   0.1013  0.067  1.20  -0.143E+01    550.  0.119E+02  0.620E-03  0.949E-05  0.260E-15    5  16   0    8  29  38    5  26  17    0.000    0.000       0
-  0     12 00:01:44.41   8.7200A   5.1624  -0.1506   0.0999  0.072  1.21  -0.135E+01    550.  0.119E+02  0.612E-03  0.103E-04  0.249E-15    5  16   1    8  29  39    5  26  18    0.000    0.000       0
-  0     13 00:01:53.13   8.7200A   5.1614  -0.1488   0.0983  0.077  1.22  -0.128E+01    550.  0.119E+02  0.604E-03  0.111E-04  0.239E-15    5  16   2    8  29   0    5  26  19    0.000    0.000       0
-  0     14 00:02:01.85   8.7200A   5.1600  -0.1462   0.0966  0.081  1.22  -0.122E+01    550.  0.119E+02  0.596E-03  0.119E-04  0.230E-15    5  16   3    8  29   1    5  26  20    0.000    0.000       0
+  0      0 00:00:00.00   8.6700A   5.1898D -0.2288D  0.1182  0.100  0.00   0.000E+00    800.  0.119E+02  0.103E-02  0.611E-03  0.888E-13    9   9  23   11   7  19    5  26   7    0.000    0.000       0
+  0      1 00:00:08.67   8.6900A   5.1806   0.2159   0.1162  0.004  0.26  -0.882E+01    100.  0.119E+02  0.867E-03  0.953E-05  0.439E-15    9   9  24    4   5  26    5  26   8    0.000    0.000       0
+  0      2 00:00:17.35   8.6900A   5.1762   0.1915   0.1151  0.000  0.04  -0.174E-01    100.  0.119E+02  0.793E-03  0.276E-05  0.403E-15    5  16  32    4   5  27    5  26   9    0.000    0.000       0
+  0      3 00:00:26.04   8.7000A   5.1723   0.1786   0.1113  0.005  0.27  -0.365E+01    100.  0.119E+02  0.750E-03  0.314E-05  0.376E-15    5  16  33    4   5  28    5  26  10    0.000    0.000       0
+  0      4 00:00:34.75   8.7000A   5.1732  -0.1675   0.1061  0.004  0.43  -0.144E+01    250.  0.119E+02  0.721E-03  0.272E-05  0.356E-15    5  16  34    8  29  32    5  26  11    0.000    0.000       0
+  0      5 00:00:43.45   8.7000A   5.1719  -0.1671   0.1028  0.005  0.43  -0.170E+01    250.  0.119E+02  0.698E-03  0.292E-05  0.335E-15    5  16  35    8  29  33    5  26  11    0.000    0.000       0
+  0      6 00:00:52.15   8.7000A   5.1700  -0.1621   0.1039  0.007  0.45  -0.194E+01    250.  0.119E+02  0.680E-03  0.303E-05  0.319E-15    5  16  36    8  29  34    5  26  12    0.000    0.000       0
+  0      7 00:01:00.85   8.7100A   5.1674  -0.1565   0.1044  0.009  0.65  -0.207E+01    550.  0.119E+02  0.664E-03  0.315E-05  0.303E-15    5  16  37    8  29  35    5  26  13    0.000    0.000       0
+  0      8 00:01:09.56   8.7100A   5.1641   0.1515   0.1041  0.011  0.70  -0.181E+01    550.  0.119E+02  0.651E-03  0.325E-05  0.290E-15    5  16  38   11   3  22    5  26  14    0.000    0.000       0
+  0      9 00:01:18.27   8.7200A   5.1634  -0.1506   0.1035  0.013  0.69  -0.138E+01    550.  0.119E+02  0.639E-03  0.332E-05  0.277E-15    5  16  38    8  29  36    5  26  15    0.000    0.000       0
+  0     10 00:01:26.99   8.7200A   5.1633  -0.1516   0.1026  0.016  0.73  -0.141E+01    550.  0.119E+02  0.629E-03  0.361E-05  0.266E-15    5  16  39    8  29  37    5  26  16    0.000    0.000       0
+  0     11 00:01:35.71   8.7200A   5.1628  -0.1516   0.1014  0.018  0.76  -0.136E+01    550.  0.119E+02  0.619E-03  0.379E-05  0.256E-15    5  16   0    8  29  38    5  26  17    0.000    0.000       0
+  0     12 00:01:44.43   8.7200A   5.1621  -0.1506   0.1000  0.020  0.79  -0.132E+01    550.  0.119E+02  0.610E-03  0.403E-05  0.246E-15    5  16   1    8  29  39    5  26  18    0.000    0.000       0
+  0     13 00:01:53.15   8.7200A   5.1610  -0.1488   0.0983  0.023  0.81  -0.129E+01    550.  0.119E+02  0.602E-03  0.430E-05  0.237E-15    5  16   2    8  29   0    5  26  19    0.000    0.000       0
+  0     14 00:02:01.87   8.7200A   5.1597  -0.1462   0.0964  0.025  0.83  -0.126E+01    550.  0.119E+02  0.593E-03  0.459E-05  0.227E-15    5  16   3    8  29   1    5  26  20    0.000    0.000       0
Index: palm/trunk/INSTALL/example_cbl_rc
===================================================================
--- palm/trunk/INSTALL/example_cbl_rc	(revision 2693)
+++ palm/trunk/INSTALL/example_cbl_rc	(revision 2696)
@@ -1,10 +1,10 @@
 
  ******************************    --------------------------------------------
- * PALM 4.0  Rev: 2507M       *    atmosphere - run without 1D - prerun
+ * PALM 4.0  Rev: 2683        *    atmosphere - run without 1D - prerun
  ******************************    --------------------------------------------
 
- Date:                 29-09-17    Run:       example_cbl         
- Time:                 15:33:18    Run-No.:   00
- Run on host:             lcmuk
+ Date:                 12-12-17    Run:       example_cbl         
+ Time:                 10:31:35    Run-No.:   00
+ Run on host:              imuk
  Number of PEs:               4    Processor grid (x,y): (   2,   2) calculated
  ------------------------------------------------------------------------------
@@ -13,4 +13,5 @@
  -----------------
 
+ --> Use the Moeng_Wyngaard turbulence closure (LES mode).
  --> Use the boussinesq approximation for the model equations.
  --> Solve perturbation pressure via FFT using temperton-algorithm routines
@@ -176,8 +177,11 @@
  -------------------
 
-    Geograph. latitude  :   phi    = 55.0 degr
+    Geograph. latitude  :   latitude  = 55.0 degr
+    Geograph. longitude :   longitude =  0.0 degr
     Angular velocity    :   omega  = 0.729E-04 rad/s
     Coriolis parameter  :   f      =  0.000119 1/s
                             f*     =  0.000084 1/s
+    Day of the year at model start :   day_init = 172
+    UTC time at model start        :   time_utc_init = 43200.0 s
 
     Gravity             :   g      =  9.8 m/s**2
Index: palm/trunk/SCRIPTS/.mrun.config.csc_sisu
===================================================================
--- palm/trunk/SCRIPTS/.mrun.config.csc_sisu	(revision 2693)
+++ 	(revision )
@@ -1,177 +1,0 @@
-#$Id: .mrun.config.lcxe6 1044 2012-11-07 10:30:58Z maronga $
-#column 1          column 2                                   column 3
-#name of variable  value of variable (~ must not be used)     scope
-#----------------------------------------------------------------------------
-#%executable        $HOME/palm/current_version/MAKE_DEPOSITORY_parallel/palm
-%mainprog          palm.f90
-%base_directory    $HOME/palm/current_version
-%base_data         ~/palm/current_version/JOBS
-%source_path       $base_directory/trunk/SOURCE
-%add_source_path   $base_directory/USER_CODE/$fname
-%depository_path   $base_directory/MAKE_DEPOSITORY
-%use_makefile      true
-#
-# Enter your own host below by adding another line containing in the second
-# column your hostname (as provided by the unix command "hostname") and in the
-# third column the host identifier. Depending on your operating system, the
-# first characters of the host identifier should be "lc" (Linux cluster), "ibm"
-# (IBM-AIX), or "nec" (NEC-SX), respectively.
-#
-# The next line is just an example. Add your own line below or replace this line.
-%host_identifier   sisu-login*  lccrayf
-%host_identifier   clogin*      lccrayf
-#
-#
-# The next block contains all informations for compiling the PALM code
-# and for generating and running the PALM executable using MPI. Replace all
-# required paths (given in <>) by the respective paths valid on your host.
-# Also replace <hi> by your host identifier (see above) in each line!
-# Compilernames, cpp-options and compiler-options are assuming
-# an Intel-Compiler and mpich2 on this host! Please change
-# appropriately, if you are using a different compiler / MPI-Version.
-#
-%tmp_user_catalog    /wrk/<replace_by_your_sisu-username>               lccrayf parallel
-%tmp_data_catalog    /wrk/<replace_by_your_sisu-username>/restart_data  lccrayf parallel
-%compiler_name       crayftn                                            lccrayf parallel
-%compiler_name_ser   crayftn                                            lccrayf parallel
-%cpp_options         -e:Z:-DMPI_REAL=MPI_DOUBLE_PRECISION:-DMPI_2REAL=MPI_2DOUBLE_PRECISION:-D__netcdf:-D__intel_openmp_bug lccrayf parallel
-%netcdf_inc          -I:/opt/cray/netcdf/4.2.1.1/cray/81/include  lccrayf parallel
-%netcdf_lib          -L/opt/cray/netcdf/4.2.1.1/cray/81/lib:-lnetcdff:-lnetcdf  lccrayf parallel
-%mopts               -j:4                                               lccrayf parallel
-%fopts               -em:-s:real64:-O2                                  lccrayf parallel
-%lopts               -em:-s:real64:-O2                                  lccrayf parallel
-%remote_username     <replace_by_your_sisu-username>                    lccrayf parallel
-%memory              1500                                               lccrayf parallel
-%login_init_cmd      .:/opt/modules/default/init/ksh\;:.:/etc/bash.bashrc.local\;:module:list  lccrayf parallel
-%modules             cray-netcdf                                        lccrayf parallel
-%create_executable_for_batch  true                                      lccrayf parallel
-#
-%write_binary        true                             restart
-#
-#----------------------------------------------------------------------------
-# INPUT-commands, executed before running PALM - lines must start with "IC:"
-#----------------------------------------------------------------------------
-#IC:
-#
-#----------------------------------------------------------------------------
-# ERROR-commands - executed when program terminates abnormally
-#----------------------------------------------------------------------------
-EC:[[ \$locat = execution ]]  &&  cat  RUN_CONTROL
-EC:pwd; ls -al
-#
-#----------------------------------------------------------------------------
-# OUTPUT-commands - executed when program terminates normally
-#----------------------------------------------------------------------------
-#
-# Combine 1D- and 3D-profile output (these files are not usable for plotting)
-OC:[[ -f LIST_PROFIL_1D     ]]  &&  cat  LIST_PROFIL_1D  >>  LIST_PROFILE
-OC:[[ -f LIST_PROFIL        ]]  &&  cat  LIST_PROFIL     >>  LIST_PROFILE
-#
-# Combine all particle information files
-OC:[[ -f PARTICLE_INFOS/_0000 ]]  &&  cat  PARTICLE_INFOS/* >> PARTICLE_INFO
-#
-#----------------------------------------------------------------------------
-# List of input-files
-#----------------------------------------------------------------------------
-PARIN                    in:job        d3#      $base_data/$fname/INPUT    _p3d
-PARIN                    in:job        d3f      $base_data/$fname/INPUT    _p3df
-TOPOGRAPHY_DATA          in:locopt     d3#:d3f  $base_data/$fname/INPUT    _topo
-TOPOGRAPHY_DATA_NC       in:locopt     d3#:d3f  $base_data/$fname/INPUT    _topo_nc
-NUDGING_DATA             in:locopt     d3#:d3f  $base_data/$fname/INPUT    _nudge
-LSF_DATA                 in:locopt     d3#:d3f  $base_data/$fname/INPUT    _lsf
-WTM_DATA                 in:locopt     d3#:d3f  $base_data/$fname/INPUT    _wtm
-STG_PROFILES             in:locopt     d3#:d3f  $base_data/$fname/INPUT    _stgpr
-BININ                    in:loc:lnpe   d3f      $tmp_data_catalog/$fname/RESTART  _d3d
-PARTICLE_RESTART_DATA_IN in:loc:lnpe   prtf     $tmp_data_catalog/$fname/RESTART  _rprt
-DATA_1D_FL_NETCDF        in:locopt     flf      $base_data/$fname/OUTPUT   _fl     nc
-DATA_1D_PR_NETCDF        in:locopt     prf      $base_data/$fname/OUTPUT   _pr     nc
-DATA_1D_SP_NETCDF        in:locopt     spf      $base_data/$fname/OUTPUT   _sp     nc
-DATA_1D_TS_NETCDF        in:locopt     tsf      $base_data/$fname/OUTPUT   _ts     nc
-DATA_1D_PTS_NETCDF       in:locopt     ptsf     $base_data/$fname/OUTPUT   _pts    nc
-DATA_2D_XY_NETCDF        in:locopt     xyf      $base_data/$fname/OUTPUT   _xy     nc
-DATA_2D_XY_AV_NETCDF     in:locopt     xyf      $base_data/$fname/OUTPUT   _xy_av  nc
-DATA_2D_XZ_NETCDF        in:locopt     xzf      $base_data/$fname/OUTPUT   _xz     nc
-DATA_2D_YZ_NETCDF        in:locopt     yzf      $base_data/$fname/OUTPUT   _yz     nc
-DATA_3D_NETCDF           in:locopt     3df      $base_data/$fname/OUTPUT   _3d     nc
-DATA_PRT_NETCDF          in:locopt:pe  prtf     $base_data/$fname/OUTPUT   _prt
-#
-#----------------------------------------------------------------------------
-# List of output-files
-#----------------------------------------------------------------------------
-BINOUT                    out:loc:lnpe restart   $base_data/$fname/RESTART  _d3d
-PARTICLE_RESTART_DATA_OUT out:loc:lnpe prt#:prtf $base_data/$fname/RESTART  _rprt
-#
-RUN_CONTROL       out:loc:tr   d3#     $base_data/$fname/MONITORING  _rc
-RUN_CONTROL       out:loc:tra  d3f     $base_data/$fname/MONITORING  _rc
-HEADER            out:loc:tr   d3#     $base_data/$fname/MONITORING  _header
-HEADER            out:loc:tra  d3f     $base_data/$fname/MONITORING  _header
-CPU_MEASURES      out:loc:tr   d3#     $base_data/$fname/MONITORING  _cpu
-CPU_MEASURES      out:loc:tra  d3f     $base_data/$fname/MONITORING  _cpu
-TURBINE_PARAMETERS01  out:loc:tr  d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters01
-TURBINE_PARAMETERS02  out:loc:tr  d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters02
-TURBINE_PARAMETERS03  out:loc:tr  d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters03
-TURBINE_PARAMETERS04  out:loc:tr  d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters04
-#
-DATA_1D_FL_NETCDF    out:loc:tr   fl#:flf   $base_data/$fname/OUTPUT  _fl     nc
-DATA_1D_PR_NETCDF    out:loc:tr   pr#:prf   $base_data/$fname/OUTPUT  _pr     nc
-DATA_1D_SP_NETCDF    out:loc:tr   sp#:spf   $base_data/$fname/OUTPUT  _sp     nc
-DATA_1D_TS_NETCDF    out:loc:tr   ts#:tsf   $base_data/$fname/OUTPUT  _ts     nc
-DATA_1D_PTS_NETCDF   out:loc:tr   pts#:ptsf $base_data/$fname/OUTPUT  _pts    nc
-DATA_2D_XY_NETCDF    out:loc:tr   xy#:xyf   $base_data/$fname/OUTPUT  _xy     nc
-DATA_2D_XY_AV_NETCDF out:loc:tr   xy#:xyf   $base_data/$fname/OUTPUT  _xy_av  nc
-DATA_2D_XZ_NETCDF    out:loc:tr   xz#:xzf   $base_data/$fname/OUTPUT  _xz     nc
-DATA_2D_XZ_AV_NETCDF out:loc:tr   xz#:xzf   $base_data/$fname/OUTPUT  _xz_av  nc
-DATA_2D_YZ_NETCDF    out:loc:tr   yz#:yzf   $base_data/$fname/OUTPUT  _yz     nc
-DATA_2D_YZ_AV_NETCDF out:loc:tr   yz#:yzf   $base_data/$fname/OUTPUT  _yz_av  nc
-DATA_3D_NETCDF       out:loc:tr   3d#:3df   $base_data/$fname/OUTPUT  _3d     nc
-DATA_3D_AV_NETCDF    out:loc:tr   3d#:3df   $base_data/$fname/OUTPUT  _3d_av  nc
-DATA_MASK_01_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m01     nc
-DATA_MASK_01_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m01_av  nc
-DATA_MASK_02_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m02     nc
-DATA_MASK_02_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m02_av  nc
-DATA_MASK_03_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m03     nc
-DATA_MASK_03_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m03_av  nc
-DATA_MASK_04_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m04     nc
-DATA_MASK_04_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m04_av  nc
-DATA_MASK_05_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m05     nc
-DATA_MASK_05_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m05_av  nc
-DATA_MASK_06_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m06     nc
-DATA_MASK_06_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m06_av  nc
-DATA_MASK_07_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m07     nc
-DATA_MASK_07_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m07_av  nc
-DATA_MASK_08_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m08     nc
-DATA_MASK_08_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m08_av  nc
-DATA_MASK_09_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m09     nc
-DATA_MASK_09_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m09_av  nc
-DATA_MASK_10_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m10     nc
-DATA_MASK_10_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m10_av  nc
-DATA_MASK_11_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m11     nc
-DATA_MASK_11_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m11_av  nc
-DATA_MASK_12_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m12     nc
-DATA_MASK_12_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m12_av  nc
-DATA_MASK_13_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m13     nc
-DATA_MASK_13_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m13_av  nc
-DATA_MASK_14_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m14     nc
-DATA_MASK_14_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m14_av  nc
-DATA_MASK_15_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m15     nc
-DATA_MASK_15_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m15_av  nc
-DATA_MASK_16_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m16     nc
-DATA_MASK_16_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m16_av  nc
-DATA_MASK_17_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m17     nc
-DATA_MASK_17_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m17_av  nc
-DATA_MASK_18_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m18     nc
-DATA_MASK_18_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m18_av  nc
-DATA_MASK_19_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m19     nc
-DATA_MASK_19_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m19_av  nc
-DATA_MASK_20_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m20     nc
-DATA_MASK_20_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m20_av  nc
-DATA_PRT_NETCDF      out:loc:pe   prt#:prtf $base_data/$fname/OUTPUT  _prt    nc
-DATA_PRT_NETCDF      out:loc:trpe prt#:prtf $base_data/$fname/OUTPUT  _prt    nc
-DATA_DVR             out:loc:trpe dvr       $base_data/$fname/OUTPUT  _dvr
-#
-DVRP_LOG          out:loc:tr   dv#       $base_data/$fname/MONITORING  _dvrp_log
-DVRP_LOG          out:loc:tra  dvf       $base_data/$fname/MONITORING  _dvrp_log
-PARTICLE_INFO     out:loc:tr   pt#       $base_data/$fname/MONITORING  _prt_info
-PARTICLE_INFO     out:loc:tra  ptf       $base_data/$fname/MONITORING  _prt_info
-PARTICLE_DATA     out:loc:lnpe prt#:prtf $tmp_data_catalog/$fname/OUTPUT      _prt_dat
-# A BLANK LINE MUST FOLLOW
Index: palm/trunk/SCRIPTS/.mrun.config.cuhk
===================================================================
--- palm/trunk/SCRIPTS/.mrun.config.cuhk	(revision 2693)
+++ 	(revision )
@@ -1,181 +1,0 @@
-#$Id: .mrun.config.cuhk 1231 2013-09-20 11:25:45Z knoop $
-#column 1          column 2                                   column 3
-#name of variable  value of variable (~ must not be used)     scope
-#----------------------------------------------------------------------------
-%mainprog          palm.f90
-%base_directory    $HOME/palm/current_version
-%base_data         ~/palm/current_version/JOBS
-%source_path       $base_directory/trunk/SOURCE
-%add_source_path   $base_directory/USER_CODE/$fname
-%depository_path   $base_directory/MAKE_DEPOSITORY
-%use_makefile      true
-#
-# Enter your own host below by adding another line containing in the second
-# column your hostname (as provided by the unix command "hostname") and in the
-# third column the host identifier. Depending on your operating system, the
-# first characters of the host identifier should be "lc" (Linux cluster), "ibm"
-# (IBM-AIX), or "nec" (NEC-SX), respectively.
-#
-# The next line is just an example. Add your own line below or replace this line.
-%host_identifier   <replace_with_your_hostname>  lccuhk
-#
-#
-# The next block contains all informations for compiling the PALM code
-# and for generating and running the PALM executable using MPI.
-# Compilernames, cpp-options and compiler-options are assuming
-# an GNU-Compiler and mpich2 on this host! Please change
-# appropriately, if you are using a different compiler / MPI-Version.
-#
-# CUHK
-%remote_username   student                                       lccuhk parallel
-%tmp_user_catalog  $HOME/palm/tmp                                lccuhk parallel
-%compiler_name     mpif90                                        lccuhk parallel
-%compiler_name_ser gfortran                                      lccuhk parallel
-%cpp_options       -cpp:-DMPI_REAL=MPI_DOUBLE_PRECISION:-DMPI_2REAL=MPI_2DOUBLE_PRECISION:-D__lc:-D__netcdf:-D__parallel:-D__gfortran   lccuhk parallel
-%netcdf_inc        -I:$HOME/opt/netcdf-3.6.3/include             lccuhk parallel
-%netcdf_lib        -L:$HOME/opt/netcdf-3.6.3/lib:-lnetcdf        lccuhk parallel
-%mopts             -j:8                                          lccuhk parallel
-%fopts             -Ofast                                        lccuhk parallel
-%lopts             -Ofast                                        lccuhk parallel
-#
-# CUHK debug/trace mode
-%remote_username   student                                       lccuhk parallel trace
-%tmp_user_catalog  $HOME/palm/tmp                                lccuhk parallel trace
-%compiler_name     mpif90                                        lccuhk parallel trace
-%compiler_name_ser gfortran                                      lccuhk parallel trace
-%cpp_options       -cpp:-DMPI_REAL=MPI_DOUBLE_PRECISION:-DMPI_2REAL=MPI_2DOUBLE_PRECISION:-D__lc:-D__netcdf:-D__parallel:-D__gfortran   lccuhk parallel trace
-%netcdf_inc        -I:$HOME/opt/netcdf-3.6.3/include             lccuhk parallel trace
-%netcdf_lib        -L:$HOME/opt/netcdf-3.6.3/lib:-lnetcdf        lccuhk parallel trace
-%mopts             -j:8                                          lccuhk parallel trace
-%fopts             -O0:-Wall:-fbacktrace                         lccuhk parallel trace
-%lopts             -O0:-Wall:-fbacktrace                         lccuhk parallel trace
-#
-#
-%write_binary                true                             restart
-#
-#----------------------------------------------------------------------------
-# INPUT-commands, executed before running PALM - lines must start with "IC:"
-#----------------------------------------------------------------------------
-#IC:
-#
-#----------------------------------------------------------------------------
-# ERROR-commands - executed when program terminates abnormally
-#----------------------------------------------------------------------------
-EC:[[ \$locat = execution ]]  &&  cat  RUN_CONTROL
-EC:pwd; ls -al
-#
-#----------------------------------------------------------------------------
-# OUTPUT-commands - executed when program terminates normally
-#----------------------------------------------------------------------------
-#
-# Combine 1D- and 3D-profile output (these files are not usable for plotting)
-OC:[[ -f LIST_PROFIL_1D     ]]  &&  cat  LIST_PROFIL_1D  >>  LIST_PROFILE
-OC:[[ -f LIST_PROFIL        ]]  &&  cat  LIST_PROFIL     >>  LIST_PROFILE
-#
-# Combine all particle information files
-OC:[[ -f PARTICLE_INFOS/_0000 ]]  &&  cat  PARTICLE_INFOS/* >> PARTICLE_INFO
-#
-#----------------------------------------------------------------------------
-# List of input-files
-#----------------------------------------------------------------------------
-PARIN                    in:job        d3#      $base_data/$fname/INPUT    _p3d
-PARIN                    in:job        d3f      $base_data/$fname/INPUT    _p3df
-TOPOGRAPHY_DATA          in:locopt     d3#:d3f  $base_data/$fname/INPUT    _topo
-TOPOGRAPHY_DATA_NC       in:locopt     d3#:d3f  $base_data/$fname/INPUT    _topo_nc
-NUDGING_DATA             in:locopt     d3#:d3f  $base_data/$fname/INPUT    _nudge
-LSF_DATA                 in:locopt     d3#:d3f  $base_data/$fname/INPUT    _lsf
-WTM_DATA                 in:locopt     d3#:d3f  $base_data/$fname/INPUT    _wtm
-STG_PROFILES             in:locopt     d3#:d3f  $base_data/$fname/INPUT    _stgpr
-BININ                    in:loc:lnpe   d3f      $base_data/$fname/RESTART  _d3d
-PARTICLE_RESTART_DATA_IN in:loc:lnpe   prtf     $base_data/$fname/RESTART  _rprt
-DATA_1D_FL_NETCDF        in:locopt     flf      $base_data/$fname/OUTPUT   _fl     nc
-DATA_1D_PR_NETCDF        in:locopt     prf      $base_data/$fname/OUTPUT   _pr     nc
-DATA_1D_SP_NETCDF        in:locopt     spf      $base_data/$fname/OUTPUT   _sp     nc
-DATA_1D_TS_NETCDF        in:locopt     tsf      $base_data/$fname/OUTPUT   _ts     nc
-DATA_1D_PTS_NETCDF       in:locopt     ptsf     $base_data/$fname/OUTPUT   _pts    nc
-DATA_2D_XY_NETCDF        in:locopt     xyf      $base_data/$fname/OUTPUT   _xy     nc
-DATA_2D_XY_AV_NETCDF     in:locopt     xyf      $base_data/$fname/OUTPUT   _xy_av  nc
-DATA_2D_XZ_NETCDF        in:locopt     xzf      $base_data/$fname/OUTPUT   _xz     nc
-DATA_2D_YZ_NETCDF        in:locopt     yzf      $base_data/$fname/OUTPUT   _yz     nc
-DATA_3D_NETCDF           in:locopt     3df      $base_data/$fname/OUTPUT   _3d     nc
-DATA_PRT_NETCDF          in:locopt:pe  prtf     $base_data/$fname/OUTPUT   _prt
-#
-#----------------------------------------------------------------------------
-# List of output-files
-#----------------------------------------------------------------------------
-BINOUT                    out:loc:lnpe restart   $base_data/$fname/RESTART  _d3d
-PARTICLE_RESTART_DATA_OUT out:loc:lnpe prt#:prtf $base_data/$fname/RESTART  _rprt
-#
-RUN_CONTROL       out:loc:tr   d3#     $base_data/$fname/MONITORING  _rc
-RUN_CONTROL       out:loc:tra  d3f     $base_data/$fname/MONITORING  _rc
-HEADER            out:loc:tr   d3#     $base_data/$fname/MONITORING  _header
-HEADER            out:loc:tra  d3f     $base_data/$fname/MONITORING  _header
-CPU_MEASURES      out:loc:tr   d3#     $base_data/$fname/MONITORING  _cpu
-CPU_MEASURES      out:loc:tra  d3f     $base_data/$fname/MONITORING  _cpu
-TURBINE_PARAMETERS01  out:loc:tr  d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters01
-TURBINE_PARAMETERS02  out:loc:tr  d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters02
-TURBINE_PARAMETERS03  out:loc:tr  d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters03
-TURBINE_PARAMETERS04  out:loc:tr  d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters04
-#
-DATA_1D_FL_NETCDF    out:loc:tr   fl#:flf   $base_data/$fname/OUTPUT  _fl     nc
-DATA_1D_PR_NETCDF    out:loc:tr   pr#:prf   $base_data/$fname/OUTPUT  _pr     nc
-DATA_1D_SP_NETCDF    out:loc:tr   sp#:spf   $base_data/$fname/OUTPUT  _sp     nc
-DATA_1D_TS_NETCDF    out:loc:tr   ts#:tsf   $base_data/$fname/OUTPUT  _ts     nc
-DATA_1D_PTS_NETCDF   out:loc:tr   pts#:ptsf $base_data/$fname/OUTPUT  _pts    nc
-DATA_2D_XY_NETCDF    out:loc:tr   xy#:xyf   $base_data/$fname/OUTPUT  _xy     nc
-DATA_2D_XY_AV_NETCDF out:loc:tr   xy#:xyf   $base_data/$fname/OUTPUT  _xy_av  nc
-DATA_2D_XZ_NETCDF    out:loc:tr   xz#:xzf   $base_data/$fname/OUTPUT  _xz     nc
-DATA_2D_XZ_AV_NETCDF out:loc:tr   xz#:xzf   $base_data/$fname/OUTPUT  _xz_av  nc
-DATA_2D_YZ_NETCDF    out:loc:tr   yz#:yzf   $base_data/$fname/OUTPUT  _yz     nc
-DATA_2D_YZ_AV_NETCDF out:loc:tr   yz#:yzf   $base_data/$fname/OUTPUT  _yz_av  nc
-DATA_3D_NETCDF       out:loc:tr   3d#:3df   $base_data/$fname/OUTPUT  _3d     nc
-DATA_3D_AV_NETCDF    out:loc:tr   3d#:3df   $base_data/$fname/OUTPUT  _3d_av  nc
-DATA_MASK_01_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m01     nc
-DATA_MASK_01_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m01_av  nc
-DATA_MASK_02_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m02     nc
-DATA_MASK_02_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m02_av  nc
-DATA_MASK_03_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m03     nc
-DATA_MASK_03_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m03_av  nc
-DATA_MASK_04_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m04     nc
-DATA_MASK_04_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m04_av  nc
-DATA_MASK_05_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m05     nc
-DATA_MASK_05_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m05_av  nc
-DATA_MASK_06_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m06     nc
-DATA_MASK_06_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m06_av  nc
-DATA_MASK_07_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m07     nc
-DATA_MASK_07_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m07_av  nc
-DATA_MASK_08_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m08     nc
-DATA_MASK_08_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m08_av  nc
-DATA_MASK_09_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m09     nc
-DATA_MASK_09_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m09_av  nc
-DATA_MASK_10_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m10     nc
-DATA_MASK_10_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m10_av  nc
-DATA_MASK_11_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m11     nc
-DATA_MASK_11_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m11_av  nc
-DATA_MASK_12_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m12     nc
-DATA_MASK_12_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m12_av  nc
-DATA_MASK_13_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m13     nc
-DATA_MASK_13_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m13_av  nc
-DATA_MASK_14_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m14     nc
-DATA_MASK_14_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m14_av  nc
-DATA_MASK_15_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m15     nc
-DATA_MASK_15_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m15_av  nc
-DATA_MASK_16_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m16     nc
-DATA_MASK_16_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m16_av  nc
-DATA_MASK_17_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m17     nc
-DATA_MASK_17_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m17_av  nc
-DATA_MASK_18_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m18     nc
-DATA_MASK_18_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m18_av  nc
-DATA_MASK_19_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m19     nc
-DATA_MASK_19_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m19_av  nc
-DATA_MASK_20_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m20     nc
-DATA_MASK_20_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m20_av  nc
-DATA_PRT_NETCDF      out:loc:trpe prt#:prtf $base_data/$fname/OUTPUT  _prt    nc
-DATA_DVR             out:loc:trpe dvr       $base_data/$fname/OUTPUT  _dvr
-#
-DVRP_LOG          out:loc:tr   dv#       $base_data/$fname/MONITORING  _dvrp_log
-DVRP_LOG          out:loc:tra  dvf       $base_data/$fname/MONITORING  _dvrp_log
-PARTICLE_INFO     out:loc:tr   pt#       $base_data/$fname/MONITORING  _prt_info
-PARTICLE_INFO     out:loc:tra  ptf       $base_data/$fname/MONITORING  _prt_info
-PARTICLE_DATA     out:loc:lnpe prt#:prtf $base_data/$fname/OUTPUT      _prt_dat
-# A BLANK LINE MUST FOLLOW
Index: palm/trunk/SCRIPTS/.mrun.config.dkrz
===================================================================
--- palm/trunk/SCRIPTS/.mrun.config.dkrz	(revision 2693)
+++ 	(revision )
@@ -1,184 +1,0 @@
-#$Id$
-#column 1          column 2                                   column 3
-#name of variable  value of variable (~ must not be used)     scope
-#----------------------------------------------------------------------------
-%mainprog          palm.f90
-%base_directory    $HOME/palm/current_version
-%base_data         ~/palm/current_version/JOBS
-%source_path       $base_directory/trunk/SOURCE
-%add_source_path   $base_directory/USER_CODE/$fname
-%depository_path   $base_directory/MAKE_DEPOSITORY
-#%use_makefile      true
-#
-# Enter your own host below by adding another line containing in the second
-# column your hostname (as provided by the unix command "hostname") and in the
-# third column the host identifier. Depending on your operating system, the
-# first characters of the host identifier should be "lc" (Linux cluster), "ibm"
-# (IBM-AIX), or "nec" (NEC-SX), respectively.
-#
-#
-# The next line is just an example. Add your own line below or replace this line.
-%host_identifier   mlogin1*    lcbullhh
-%host_identifier   m1*         lcbullhh
-#
-# DKRZ Hamburg
-%project_account     <replace_by_your_DKRZ_project_account>                                                lcbullhh parallel
-%tmp_user_catalog    /work/<replace_by_your_DKRZ_project_account>/<replace_by_your_DKRZ_username>          lcbullhh parallel
-%tmp_data_catalog    /work/<replace_by_your_DKRZ_project_account>/<replace_by_your_DKRZ_username>/JOBS     lcbullhh parallel
-%compiler_name       mpif90                                                                                lcbullhh parallel
-%compiler_name_ser   ifort                                                                                 lcbullhh parallel
-%fftw_inc          -I:/sw/rhel6-x64/numerics/fftw-3.3.4-bullxmpi-gcc48/include                             lcbullhh parallel
-%fftw_lib          -L/sw/rhel6-x64/numerics/fftw-3.3.4-bullxmpi-gcc48/lib:-lfftw3                          lcbullhh parallel
-%netcdf_inc        -I:/sw/rhel6-x64/netcdf/netcdf_fortran-4.4.2-parallel-bullxmpi-intel14/include          lcbullhh parallel
-%netcdf_lib        -L/sw/rhel6-x64/netcdf/netcdf_fortran-4.4.2-parallel-bullxmpi-intel14/lib:-lnetcdff     lcbullhh parallel
-%cpp_options         -cpp:-DMPI_REAL=MPI_DOUBLE_PRECISION:-DMPI_2REAL=MPI_2DOUBLE_PRECISION:-D__lc:-D__parallel:-D__netcdf:-D__netcdf4:-D__netcdf4_parallel:-D__intel_compiler:-D__fftw=__fftw lcbullhh parallel
-%mopts               -j:4                                                                                  lcbullhh parallel
-%fopts               -O3:-nbs:-convert:little_endian                                                       lcbullhh parallel
-%lopts               -O3:-nbs:-convert:little_endian:-lc:-lm:-Wl,-rpath=/sw/rhel6-x64/netcdf/netcdf_fortran-4.4.2-parallel-bullxmpi-intel14/lib:-Wl,-rpath=/sw/rhel6-x64/numerics/fftw-3.3.4-bullxmpi-gcc48/lib             lcbullhh parallel
-%remote_username     <replace_by_your_DKRZ_username>                                                       lcbullhh parallel
-%memory              1500                                                                                  lcbullhh parallel
-%modules             intel:mxm:fca:bullxmpi_mlx:nag                                                        lcbullhh parallel
-#
-# HLRN-III Hannover debug/trace mode
-%project_account     <replace_by_your_DKRZ_project_account>                                                lcbullhh parallel trace
-%tmp_user_catalog    /work/<replace_by_your_DKRZ_project_account>/<replace_by_your_DKRZ_username>          lcbullhh parallel trace
-%tmp_data_catalog    /work/<replace_by_your_DKRZ_project_account>/<replace_by_your_DKRZ_username>/JOBS     lcbullhh parallel trace
-%compiler_name       mpif90                                                                                lcbullhh parallel trace
-%compiler_name_ser   ifort                                                                                 lcbullhh parallel trace
-%fftw_inc          -I:/sw/rhel6-x64/numerics/fftw-3.3.4-bullxmpi-gcc48/include                             lcbullhh parallel trace
-%fftw_lib          -L/sw/rhel6-x64/numerics/fftw-3.3.4-bullxmpi-gcc48/lib:-lfftw3                          lcbullhh parallel trace
-%netcdf_inc        -I:/sw/rhel6-x64/netcdf/netcdf_fortran-4.4.2-parallel-bullxmpi-intel14/include          lcbullhh parallel trace
-%netcdf_lib        -L/sw/rhel6-x64/netcdf/netcdf_fortran-4.4.2-parallel-bullxmpi-intel14/lib:-lnetcdff     lcbullhh parallel trace
-%cpp_options         -cpp:-DMPI_REAL=MPI_DOUBLE_PRECISION:-DMPI_2REAL=MPI_2DOUBLE_PRECISION:-D__lc:-D__parallel:-D__netcdf:-D__netcdf4:-D__netcdf4_parallel:-D__intel_compiler:-D__fftw=__fftw lcbullhh parallel trace
-%mopts               -j:4                                                                                  lcbullhh parallel trace
-%fopts             -O0:-nbs:-convert:little_endian:-fpe0:-ftz:-fno-alias:-no-prec-div:-no-prec-sqrt:-ip:-C:-check:nooutput_conversion:-debug:-traceback:-g:-w:-xT:-align:all     lcbullhh parallel trace
-%lopts             -O0:-nbs:-convert:little_endian:-fpe0:-ftz:-fno-alias:-no-prec-div:-no-prec-sqrt:-ip:-C:-check:nooutput_conversion:-debug:-traceback:-g:-w:-xT:-align:all:-lc:-lm:-Wl,-rpath=/sw/rhel6-x64/netcdf/netcdf_fortran-4.4.2-parallel-bullxmpi-intel14/lib:-Wl,-rpath=/sw/rhel6-x64/numerics/fftw-3.3.4-bullxmpi-gcc48/lib             lcbullhh parallel trace
-%remote_username     <replace_by_your_DKRZ_username>                                                       lcbullhh parallel trace
-%memory              1500                                                                                  lcbullhh parallel trace
-%modules             intel:mxm:fca:bullxmpi_mlx:nag                                                        lcbullhh parallel trace
-#
-#
-%write_binary                true                             restart
-#
-#----------------------------------------------------------------------------
-# INPUT-commands, executed before running PALM - lines must start with "IC:"
-#----------------------------------------------------------------------------
-#IC:
-#
-#----------------------------------------------------------------------------
-# ERROR-commands - executed when program terminates abnormally
-#----------------------------------------------------------------------------
-EC:[[ \$locat = execution ]]  &&  cat  RUN_CONTROL
-EC:pwd; ls -al
-#
-#----------------------------------------------------------------------------
-# OUTPUT-commands - executed when program terminates normally
-#----------------------------------------------------------------------------
-# Combine all particle information files
-OC:[[ -f PARTICLE_INFOS/_0000 ]]  &&  cat  PARTICLE_INFOS/* >> PARTICLE_INFO
-#
-#----------------------------------------------------------------------------
-# List of input-files
-#----------------------------------------------------------------------------
-PARIN                    in:job        d3#      $base_data/$fname/INPUT    _p3d
-PARIN                    in:job        d3f      $base_data/$fname/INPUT    _p3df
-TOPOGRAPHY_DATA          in:locopt     d3#:d3f  $base_data/$fname/INPUT    _topo
-TOPOGRAPHY_DATA_NC       in:locopt     d3#:d3f  $base_data/$fname/INPUT    _topo_nc
-NUDGING_DATA             in:locopt     d3#:d3f  $base_data/$fname/INPUT    _nudge
-LSF_DATA                 in:locopt     d3#:d3f  $base_data/$fname/INPUT    _lsf
-WTM_DATA                 in:locopt     d3#:d3f  $base_data/$fname/INPUT    _wtm
-STG_PROFILES             in:locopt     d3#:d3f  $base_data/$fname/INPUT    _stgpr
-BININ                    in:loc:lnpe   d3f      $tmp_data_catalog/$fname/RESTART  _d3d
-PARTICLE_RESTART_DATA_IN in:loc:lnpe   prtf     $tmp_data_catalog/$fname/RESTART  _rprt
-DATA_1D_FL_NETCDF        in:locopt     flf      $base_data/$fname/OUTPUT  _fl     nc
-DATA_1D_PR_NETCDF        in:locopt     prf      $base_data/$fname/OUTPUT   _pr     nc
-DATA_1D_SP_NETCDF        in:locopt     spf      $base_data/$fname/OUTPUT   _sp     nc
-DATA_1D_TS_NETCDF        in:locopt     tsf      $base_data/$fname/OUTPUT   _ts     nc
-DATA_1D_PTS_NETCDF       in:locopt     ptsf     $base_data/$fname/OUTPUT   _pts    nc
-DATA_2D_XY_NETCDF        in:locopt     xyf      $base_data/$fname/OUTPUT   _xy     nc
-DATA_2D_XY_AV_NETCDF     in:locopt     xyf      $base_data/$fname/OUTPUT   _xy_av  nc
-DATA_2D_XZ_NETCDF        in:locopt     xzf      $base_data/$fname/OUTPUT   _xz     nc
-DATA_2D_YZ_NETCDF        in:locopt     yzf      $base_data/$fname/OUTPUT   _yz     nc
-DATA_3D_NETCDF           in:locopt     3df      $base_data/$fname/OUTPUT   _3d     nc
-DATA_PRT_NETCDF          in:locopt:pe  prtf     $base_data/$fname/OUTPUT   _prt
-#
-#----------------------------------------------------------------------------
-# List of output-files
-#----------------------------------------------------------------------------
-BINOUT                    out:loc:lnpe restart   $tmp_data_catalog/$fname/RESTART  _d3d
-PARTICLE_RESTART_DATA_OUT out:loc:lnpe prt#:prtf $tmp_data_catalog/$fname/RESTART  _rprt
-#
-RUN_CONTROL       out:loc:tr   d3#     $base_data/$fname/MONITORING  _rc
-RUN_CONTROL       out:loc:tra  d3f     $base_data/$fname/MONITORING  _rc
-HEADER            out:loc:tr   d3#     $base_data/$fname/MONITORING  _header
-HEADER            out:loc:tra  d3f     $base_data/$fname/MONITORING  _header
-CPU_MEASURES      out:loc:tr   d3#     $base_data/$fname/MONITORING  _cpu
-CPU_MEASURES      out:loc:tra  d3f     $base_data/$fname/MONITORING  _cpu
-TURBINE_PARAMETERS01  out:loc:tr  d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters01
-TURBINE_PARAMETERS02  out:loc:tr  d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters02
-TURBINE_PARAMETERS03  out:loc:tr  d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters03
-TURBINE_PARAMETERS04  out:loc:tr  d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters04
-#
-DATA_1D_FL_NETCDF    out:loc:tr   fl#:flf   $base_data/$fname/OUTPUT  _fl      nc
-DATA_1D_PR_NETCDF    out:loc:tr   pr#:prf   $base_data/$fname/OUTPUT  _pr      nc
-DATA_1D_SP_NETCDF    out:loc:tr   sp#:spf   $base_data/$fname/OUTPUT  _sp      nc
-DATA_1D_TS_NETCDF    out:loc:tr   ts#:tsf   $base_data/$fname/OUTPUT  _ts      nc
-DATA_1D_PTS_NETCDF   out:loc:tr   pts#:ptsf $base_data/$fname/OUTPUT  _pts     nc
-DATA_2D_XY_NETCDF    out:loc:tr   xy#:xyf   $base_data/$fname/OUTPUT  _xy      nc
-DATA_2D_XY_AV_NETCDF out:loc:tr   xy#:xyf   $base_data/$fname/OUTPUT  _xy_av   nc
-DATA_2D_XZ_NETCDF    out:loc:tr   xz#:xzf   $base_data/$fname/OUTPUT  _xz      nc
-DATA_2D_XZ_AV_NETCDF out:loc:tr   xz#:xzf   $base_data/$fname/OUTPUT  _xz_av   nc
-DATA_2D_YZ_NETCDF    out:loc:tr   yz#:yzf   $base_data/$fname/OUTPUT  _yz      nc
-DATA_2D_YZ_AV_NETCDF out:loc:tr   yz#:yzf   $base_data/$fname/OUTPUT  _yz_av   nc
-DATA_3D_NETCDF       out:loc:tr   3d#:3df   $base_data/$fname/OUTPUT  _3d      nc
-DATA_3D_AV_NETCDF    out:loc:tr   3d#:3df   $base_data/$fname/OUTPUT  _3d_av   nc
-DATA_MASK_01_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m01     nc
-DATA_MASK_01_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m01_av  nc
-DATA_MASK_02_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m02     nc
-DATA_MASK_02_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m02_av  nc
-DATA_MASK_03_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m03     nc
-DATA_MASK_03_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m03_av  nc
-DATA_MASK_04_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m04     nc
-DATA_MASK_04_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m04_av  nc
-DATA_MASK_05_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m05     nc
-DATA_MASK_05_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m05_av  nc
-DATA_MASK_06_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m06     nc
-DATA_MASK_06_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m06_av  nc
-DATA_MASK_07_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m07     nc
-DATA_MASK_07_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m07_av  nc
-DATA_MASK_08_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m08     nc
-DATA_MASK_08_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m08_av  nc
-DATA_MASK_09_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m09     nc
-DATA_MASK_09_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m09_av  nc
-DATA_MASK_10_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m10     nc
-DATA_MASK_10_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m10_av  nc
-DATA_MASK_11_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m11     nc
-DATA_MASK_11_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m11_av  nc
-DATA_MASK_12_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m12     nc
-DATA_MASK_12_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m12_av  nc
-DATA_MASK_13_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m13     nc
-DATA_MASK_13_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m13_av  nc
-DATA_MASK_14_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m14     nc
-DATA_MASK_14_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m14_av  nc
-DATA_MASK_15_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m15     nc
-DATA_MASK_15_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m15_av  nc
-DATA_MASK_16_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m16     nc
-DATA_MASK_16_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m16_av  nc
-DATA_MASK_17_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m17     nc
-DATA_MASK_17_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m17_av  nc
-DATA_MASK_18_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m18     nc
-DATA_MASK_18_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m18_av  nc
-DATA_MASK_19_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m19     nc
-DATA_MASK_19_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m19_av  nc
-DATA_MASK_20_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m20     nc
-DATA_MASK_20_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m20_av  nc
-DATA_PRT_NETCDF      out:loc:pe   prt#:prtf $base_data/$fname/OUTPUT  _prt     nc
-DATA_PRT_NETCDF      out:loc:trpe prt#:prtf $base_data/$fname/OUTPUT  _prt     nc
-DATA_DVR             out:loc:trpe dvr       $base_data/$fname/OUTPUT  _dvr
-#
-DVRP_LOG          out:loc:tr   dv#       $base_data/$fname/MONITORING  _dvrp_log
-DVRP_LOG          out:loc:tra  dvf       $base_data/$fname/MONITORING  _dvrp_log
-PARTICLE_INFO     out:loc:tr   pt#       $base_data/$fname/MONITORING  _prt_info
-PARTICLE_INFO     out:loc:tra  ptf       $base_data/$fname/MONITORING  _prt_info
-PARTICLE_DATA     out:loc:lnpe prt#:prtf $tmp_data_catalog/$fname/OUTPUT      _prt_dat
-# A BLANK LINE MUST FOLLOW
Index: palm/trunk/SCRIPTS/.mrun.config.forwind_eddy
===================================================================
--- palm/trunk/SCRIPTS/.mrun.config.forwind_eddy	(revision 2693)
+++ 	(revision )
@@ -1,188 +1,0 @@
-#$Id: .mrun.config.forwind_eddy $
-#column 1          column 2                                   column 3
-#name of variable  value of variable (~ must not be used)     scope
-#----------------------------------------------------------------------------
-%mainprog          palm.f90
-%base_directory    $HOME/palm/current_version
-%base_data         ~/palm/current_version/JOBS
-################################################################################
-# Replace abcd1234 by your username on Eddy.
-################################################################################
-%output_data       /gss/work/abcd1234/palm/current_version/JOBS
-%source_path       $base_directory/trunk/SOURCE
-%add_source_path   $base_directory/USER_CODE/$fname
-%depository_path   $base_directory/MAKE_DEPOSITORY
-%use_makefile      true
-#
-#
-%host_identifier       hpcl*            lceddy
-%host_identifier       cfd*             lceddy
-%host_identifier       mpc*             lceddy
-
-################################################################################
-# Configuration for Eddy
-#
-# The next block contains all informations for compiling the PALM code
-# and for generating and running the PALM executable using MPI. Replace abcd1234
-# with your username on Eddy.
-# The following 'lceddy parallel' block assumes PALM compilation and execution
-# on host Eddy. Please note that other hosts may require different settings.
-################################################################################
-%remote_username   abcd1234                                                                                                      lceddy parallel
-%tmp_user_catalog  /gss/work/$remote_username/palm/tmp                                                                           lceddy parallel
-%tmp_data_catalog  /gss/work/$remote_username/palm/palm_restart_data                                                             lceddy parallel
-%compiler_name     mpifort                                                                                                       lceddy parallel
-%compiler_name_ser gfortran                                                                                                      lceddy parallel
-%cpp_options       -DMPI_REAL=MPI_DOUBLE_PRECISION:-DMPI_2REAL=MPI_2DOUBLE_PRECISION:-D__lc:-D__netcdf:-D__netcdf4:-D__parallel:-D__gfortran  lceddy parallel
-%netcdf_inc        -I/cm/shared/uniol/software/netCDF-Fortran/4.4.4-goolf-5.2.01/include                                         lceddy parallel
-%netcdf_lib        -lnetcdff:-lnetcdf                                                                                            lceddy parallel
-%mopts             -j:4                                                                                                          lceddy parallel
-%fopts             -Ofast:-mtune=native:-march=native:-cpp:-ffree-line-length-none:-fconvert=little-endian                       lceddy parallel
-%lopts             -Ofast:-mtune=native:-march=native:-lpthread                                                                  lceddy parallel
-%login_init_cmd                                                                                                                  lceddy parallel
-%modules           PALMDependencies/.gcc                                                                                         lceddy parallel
-%memory            2333                                                                                                          lceddy parallel
-%disc_space        50                                                                                                            lceddy parallel 
-#
-#
-%write_binary                true                             restart
-#
-#----------------------------------------------------------------------------
-# INPUT-commands, executed before running PALM - lines must start with "IC:"
-#----------------------------------------------------------------------------
-#IC:
-#
-#----------------------------------------------------------------------------
-# ERROR-commands - executed when program terminates abnormally
-#----------------------------------------------------------------------------
-EC:[[ \$locat = execution ]]  &&  cat  RUN_CONTROL
-EC:pwd; ls -al
-#
-#----------------------------------------------------------------------------
-# OUTPUT-commands - executed when program terminates normally
-#----------------------------------------------------------------------------
-#
-# Combine 1D- and 3D-profile output (these files are not usable for plotting)
-OC:[[ -f LIST_PROFIL_1D     ]]  &&  cat  LIST_PROFIL_1D  >>  LIST_PROFILE
-OC:[[ -f LIST_PROFIL        ]]  &&  cat  LIST_PROFIL     >>  LIST_PROFILE
-#
-# Combine all particle information files
-OC:[[ -f PARTICLE_INFOS/_0000 ]]  &&  cat  PARTICLE_INFOS/* >> PARTICLE_INFO
-#
-#----------------------------------------------------------------------------
-# List of input-files
-#----------------------------------------------------------------------------
-PARIN                    in:job        d3#      $base_data/$fname/INPUT    _p3d
-PARIN                    in:job        d3f      $base_data/$fname/INPUT    _p3df
-TOPOGRAPHY_DATA          in:locopt     d3#:d3f  $base_data/$fname/INPUT    _topo
-TOPOGRAPHY_DATA_NC       in:locopt     d3#:d3f  $base_data/$fname/INPUT    _topo_nc
-NUDGING_DATA             in:locopt     d3#:d3f  $base_data/$fname/INPUT    _nudge
-LSF_DATA                 in:locopt     d3#:d3f  $base_data/$fname/INPUT    _lsf
-WTM_DATA                 in:locopt     d3#:d3f  $base_data/$fname/INPUT    _wtm
-STG_PROFILES             in:locopt     d3#:d3f  $base_data/$fname/INPUT    _stgpr
-BININ                    in:loc:lnpe   d3f:rec  $tmp_data_catalog/$fname/RESTART   _d3d
-PARTICLE_RESTART_DATA_IN in:loc:lnpe   prtf     $tmp_data_catalog/$fname/RESTART   _rprt
-DATA_1D_FL_NETCDF        in:locopt     flf      $output_data/$fname/OUTPUT  _fl     nc
-DATA_1D_PR_NETCDF        in:locopt     prf      $output_data/$fname/OUTPUT  _pr     nc
-DATA_1D_SP_NETCDF        in:locopt     spf      $output_data/$fname/OUTPUT  _sp     nc
-DATA_1D_TS_NETCDF        in:locopt     tsf      $output_data/$fname/OUTPUT  _ts     nc
-DATA_1D_PTS_NETCDF       in:locopt     ptsf     $output_data/$fname/OUTPUT  _pts    nc
-DATA_2D_XY_NETCDF        in:locopt     xyf      $output_data/$fname/OUTPUT  _xy     nc
-DATA_2D_XY_AV_NETCDF     in:locopt     xyf      $output_data/$fname/OUTPUT  _xy_av  nc
-DATA_2D_XZ_NETCDF        in:locopt     xzf      $output_data/$fname/OUTPUT  _xz     nc
-DATA_2D_XZ_AV_NETCDF     in:locopt     xzf      $output_data/$fname/OUTPUT  _xz_av  nc
-DATA_2D_YZ_NETCDF        in:locopt     yzf      $output_data/$fname/OUTPUT  _yz     nc
-DATA_2D_YZ_AV_NETCDF     in:locopt     yzf      $output_data/$fname/OUTPUT  _yz_av  nc
-DATA_3D_NETCDF           in:locopt     3df      $output_data/$fname/OUTPUT  _3d     nc
-DATA_3D_AV_NETCDF        in:locopt     3df      $output_data/$fname/OUTPUT  _3d_av  nc
-DATA_PRT_NETCDF          in:locopt:pe  prtf     $output_data/$fname/OUTPUT  _prt    nc
-#
-#----------------------------------------------------------------------------
-# List of output-files
-#----------------------------------------------------------------------------
-BINOUT                    out:loc:lnpe restart   $tmp_data_catalog/$fname/RESTART  _d3d
-PARTICLE_RESTART_DATA_OUT out:loc:lnpe prt#:prtf $tmp_data_catalog/$fname/RESTART  _rprt
-#
-RUN_CONTROL       out:loc:tr   d3#     $base_data/$fname/MONITORING  _rc
-RUN_CONTROL       out:loc:tra  d3f     $base_data/$fname/MONITORING  _rc
-HEADER            out:loc:tr   d3#     $base_data/$fname/MONITORING  _header
-HEADER            out:loc:tra  d3f     $base_data/$fname/MONITORING  _header
-CPU_MEASURES      out:loc:tr   d3#     $base_data/$fname/MONITORING  _cpu
-CPU_MEASURES      out:loc:tra  d3f     $base_data/$fname/MONITORING  _cpu
-TURBINE_PARAMETERS01   out:loc:tr    d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters01
-TURBINE_PARAMETERS02   out:loc:tr    d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters02
-TURBINE_PARAMETERS03   out:loc:tr    d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters03
-TURBINE_PARAMETERS04   out:loc:tr    d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters04
-TURBINE_PARAMETERS05   out:loc:tr    d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters05
-TURBINE_PARAMETERS06   out:loc:tr    d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters06
-TURBINE_PARAMETERS07   out:loc:tr    d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters07
-TURBINE_PARAMETERS08   out:loc:tr    d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters08
-TURBINE_PARAMETERS09   out:loc:tr    d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters09
-TURBINE_PARAMETERS10   out:loc:tr    d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters10
-#
-DATA_1D_FL_NETCDF      out:loc    fl#:flf   $output_data/$fname/OUTPUT  _fl      nc
-DATA_1D_PR_NETCDF      out:loc    pr#       $output_data/$fname/OUTPUT  _pr      nc
-DATA_1D_PR_NETCDF      out:loc    prf       $output_data/$fname/OUTPUT  _pr      nc
-DATA_1D_SP_NETCDF      out:loc    sp#       $output_data/$fname/OUTPUT  _sp      nc
-DATA_1D_SP_NETCDF      out:loc    spf       $output_data/$fname/OUTPUT  _sp      nc
-DATA_1D_TS_NETCDF      out:loc    ts#       $output_data/$fname/OUTPUT  _ts      nc
-DATA_1D_TS_NETCDF      out:loc    tsf       $output_data/$fname/OUTPUT  _ts      nc
-DATA_1D_PTS_NETCDF     out:loc    pts#      $output_data/$fname/OUTPUT  _pts     nc
-DATA_1D_PTS_NETCDF     out:loc    ptsf      $output_data/$fname/OUTPUT  _pts     nc
-DATA_2D_XY_NETCDF      out:loc    xy#:xyf   $output_data/$fname/OUTPUT  _xy      nc
-DATA_2D_XY_AV_NETCDF   out:loc    xy#:xyf   $output_data/$fname/OUTPUT  _xy_av   nc
-DATA_2D_XZ_NETCDF      out:loc    xz#:xzf   $output_data/$fname/OUTPUT  _xz      nc
-DATA_2D_XZ_AV_NETCDF   out:loc    xz#:xzf   $output_data/$fname/OUTPUT  _xz_av   nc
-DATA_2D_YZ_NETCDF      out:loc    yz#:yzf   $output_data/$fname/OUTPUT  _yz      nc
-DATA_2D_YZ_AV_NETCDF   out:loc    yz#:yzf   $output_data/$fname/OUTPUT  _yz_av   nc
-DATA_3D_NETCDF         out:loc    3d#:3df   $output_data/$fname/OUTPUT  _3d      nc
-DATA_3D_AV_NETCDF      out:loc    3d#:3df   $output_data/$fname/OUTPUT  _3d_av   nc
-DATA_MASK_01_NETCDF    out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m01     nc
-DATA_MASK_01_AV_NETCDF out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m01_av  nc
-DATA_MASK_02_NETCDF    out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m02     nc
-DATA_MASK_02_AV_NETCDF out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m02_av  nc
-DATA_MASK_03_NETCDF    out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m03     nc
-DATA_MASK_03_AV_NETCDF out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m03_av  nc
-DATA_MASK_04_NETCDF    out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m04     nc
-DATA_MASK_04_AV_NETCDF out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m04_av  nc
-DATA_MASK_05_NETCDF    out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m05     nc
-DATA_MASK_05_AV_NETCDF out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m05_av  nc
-DATA_MASK_06_NETCDF    out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m06     nc
-DATA_MASK_06_AV_NETCDF out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m06_av  nc
-DATA_MASK_07_NETCDF    out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m07     nc
-DATA_MASK_07_AV_NETCDF out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m07_av  nc
-DATA_MASK_08_NETCDF    out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m08     nc
-DATA_MASK_08_AV_NETCDF out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m08_av  nc
-DATA_MASK_09_NETCDF    out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m09     nc
-DATA_MASK_09_AV_NETCDF out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m09_av  nc
-DATA_MASK_10_NETCDF    out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m10     nc
-DATA_MASK_10_AV_NETCDF out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m10_av  nc
-DATA_MASK_11_NETCDF    out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m11     nc
-DATA_MASK_11_AV_NETCDF out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m11_av  nc
-DATA_MASK_12_NETCDF    out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m12     nc
-DATA_MASK_12_AV_NETCDF out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m12_av  nc
-DATA_MASK_13_NETCDF    out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m13     nc
-DATA_MASK_13_AV_NETCDF out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m13_av  nc
-DATA_MASK_14_NETCDF    out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m14     nc
-DATA_MASK_14_AV_NETCDF out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m14_av  nc
-DATA_MASK_15_NETCDF    out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m15     nc
-DATA_MASK_15_AV_NETCDF out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m15_av  nc
-DATA_MASK_16_NETCDF    out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m16     nc
-DATA_MASK_16_AV_NETCDF out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m16_av  nc
-DATA_MASK_17_NETCDF    out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m17     nc
-DATA_MASK_17_AV_NETCDF out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m17_av  nc
-DATA_MASK_18_NETCDF    out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m18     nc
-DATA_MASK_18_AV_NETCDF out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m18_av  nc
-DATA_MASK_19_NETCDF    out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m19     nc
-DATA_MASK_19_AV_NETCDF out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m19_av  nc
-DATA_MASK_20_NETCDF    out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m20     nc
-DATA_MASK_20_AV_NETCDF out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m20_av  nc
-DATA_PRT_NETCDF        out:loc:pe prt#:prtf $output_data/$fname/OUTPUT  _prt     nc
-DATA_DVR               out:loc:pe dvr       $output_data/$fname/OUTPUT  _dvr
-#
-DVRP_LOG          out:loc:tr   dv#       $base_data/$fname/MONITORING  _dvrp_log
-DVRP_LOG          out:loc:tra  dvf       $base_data/$fname/MONITORING  _dvrp_log
-PARTICLE_INFO     out:loc:tr   pt#       $base_data/$fname/MONITORING  _prt_info
-PARTICLE_INFO     out:loc:tra  ptf       $base_data/$fname/MONITORING  _prt_info
-PARTICLE_DATA     out:loc:lnpe prt#:prtf $tmp_data_catalog/$fname/OUTPUT      _prt_dat
-# A BLANK LINE MUST FOLLOW
Index: palm/trunk/SCRIPTS/.mrun.config.forwind_hlrnIII
===================================================================
--- palm/trunk/SCRIPTS/.mrun.config.forwind_hlrnIII	(revision 2693)
+++ 	(revision )
@@ -1,285 +1,0 @@
-#$Id:$
-#column 1          column 2                                   column 3
-#name of variable  value of variable (~ must not be used)     scope
-#----------------------------------------------------------------------------
-%mainprog          palm.f90
-%base_directory    $HOME/palm/current_version
-%base_data         ~/palm/current_version/JOBS
-%output_data       /gfs1/work/<replace_by_your_HLRN-III_username>/palm/current_version/JOBS
-%source_path       $base_directory/trunk/SOURCE
-%add_source_path   $base_directory/USER_CODE/$fname
-%depository_path   $base_directory/MAKE_DEPOSITORY
-%use_makefile      true
-#
-#
-%host_identifier   hlogin*      lccrayh
-%host_identifier   hxc*         lccrayh
-%host_identifier   blogin*      lccrayb
-%host_identifier   bxc*         lccrayb
-#
-################################################################################
-# Replace <eplace_with_your_local_hostname> by the hostname of your desktop
-# an uncomment following line to enable job submission from you local desktop
-################################################################################
-#%host_identifier       <replace_with_your_local_hostname>           lcfor
-#
-################################################################################
-# Configuration for Ubuntu Linux 12.04 LTS with gcc (4.6.3) and OpenMPI (1.4.3)
-#
-# The next block contains all informations for compiling the PALM code
-# and for generating and running the PALM executable using MPI on a Linux machine
-# with gcc and OpenMPI. Replace <replace_with_your_local_username> with your
-# username on your
-# local machine
-#
-# NOTE: - Other hosts may require different settings.
-#       - following packages are required:
-#         openmpi-common, libopenmpi-dev, libopenmpi, libnetcdf, libnetcdf-dev,
-#         gcc
-#       - depending on where you installed netcdf, you may have to adjust the paths
-#         given in %netcdf_inc and %netcdf_lib
-#
-################################################################################
-%remote_username   <replace_with_your_local_username>                        lcfor parallel
-%tmp_user_catalog  /tmp                                                      lcfor parallel
-%tmp_data_catalog  /tmp                                                      lcfor parallel
-%compiler_name     mpif90                                                    lcfor parallel
-%compiler_name_ser gfortran                                                  lcfor parallel
-%cpp_options       -DMPI_REAL=MPI_DOUBLE_PRECISION:-DMPI_2REAL=MPI_2DOUBLE_PRECISION:-D__lc:-D__netcdf:-D__netcdf4:-D__parallel:-D__gfortran  lcfor parallel
-%netcdf_inc        -I/usr/include                                            lcfor parallel
-%netcdf_lib        -L/usr/lib:-lnetcdff:-lnetcdf                             lcfor parallel
-%mopts             -j:4                                                      lcfor parallel
-%fopts             -Ofast:-IPA:-mtune=native:-march=native:-cpp:-fdefault-real-8:-fbackslash:-fconvert=little-endian   lcfor parallel
-%lopts             -Ofast:-IPA:-mtune=native:-march=native:-cpp:-fdefault-real-8:-fbackslash                           lcfor parallel
-#
-# HLRN-III Hannover
-%tmp_user_catalog    /gfs1/tmp/<replace_by_your_HLRN-III_username>                     lccrayh parallel
-%tmp_data_catalog    /gfs1/work/<replace_by_your_HLRN-III_username>/palm_restart_data  lccrayh parallel
-%compiler_name       ftn                                                               lccrayh parallel
-%compiler_name_ser   ftn                                                               lccrayh parallel
-%cpp_options         -e:Z:-DMPI_REAL=MPI_DOUBLE_PRECISION:-DMPI_2REAL=MPI_2DOUBLE_PRECISION:-D__netcdf:-D__netcdf4:-D__netcdf4_parallel:-D__fftw   lccrayh parallel
-%mopts               -j:4                                                              lccrayh parallel
-%fopts               -em:-K:trap=fp:-O3:-hnoomp:-hnoacc:-hfp3:-hdynamic                lccrayh parallel
-%lopts               -em:-K:trap=fp:-O3:-hnoomp:-hnoacc:-hfp3:-hdynamic:-dynamic       lccrayh parallel
-%remote_username     <replace_by_your_HLRN-III_username>                               lccrayh parallel
-%memory              2300                                                              lccrayh parallel
-%modules             fftw:cray-hdf5-parallel:cray-netcdf-hdf5parallel                  lccrayh parallel
-%login_init_cmd      module:unload:cray-netcdf                                         lccrayh parallel
-#
-# HLRN-III Hannover debug/trace mode
-%tmp_user_catalog    /gfs1/tmp/<replace_by_your_HLRN-III_username>                     lccrayh parallel trace
-%tmp_data_catalog    /gfs1/work/<replace_by_your_HLRN-III_username>/palm_restart_data  lccrayh parallel trace
-%compiler_name       ftn                                                               lccrayh parallel trace
-%compiler_name_ser   ftn                                                               lccrayh parallel trace
-%cpp_options         -e:Z:-DMPI_REAL=MPI_DOUBLE_PRECISION:-DMPI_2REAL=MPI_2DOUBLE_PRECISION:-D__netcdf:-D__netcdf4:-D__netcdf4_parallel:-D__fftw   lccrayh parallel trace
-%mopts               -j:4                                                              lccrayh parallel trace
-%fopts               -eD:-em:-g:-R:b:-K:trap=fp:-O0:-hnoomp:-hnoacc                    lccrayh parallel trace
-%lopts               -eD:-em:-g:-R:b:-K:trap=fp:-O0:-hnoomp:-hnoacc                    lccrayh parallel trace
-%remote_username     <replace_by_your_HLRN-III_username>                               lccrayh parallel trace
-%memory              2300                                                              lccrayh parallel trace
-%modules             fftw:cray-hdf5-parallel:cray-netcdf-hdf5parallel                  lccrayh parallel trace
-%login_init_cmd      module:unload:cray-netcdf                                         lccrayh parallel trace
-#
-# HLRN-III Hannover haswell
-%tmp_user_catalog    /gfs1/tmp/<replace_by_your_HLRN-III_username>      lccrayh parallel has
-%tmp_data_catalog    /gfs1/work/<replace_by_your_HLRN-III_username>/palm_restart_data     lccrayh parallel has
-%compiler_name       ftn                                                lccrayh parallel has
-%compiler_name_ser   ftn                                                lccrayh parallel has
-%cpp_options         -e:Z:-DMPI_REAL=MPI_DOUBLE_PRECISION:-DMPI_2REAL=MPI_2DOUBLE_PRECISION:-D__netcdf:-D__netcdf4:-D__netcdf4_parallel:-D__fftw   lccrayh parallel has
-%feature             mpp2                                               lccrayh parallel has
-%mopts               -j:4                                               lccrayh parallel has
-%fopts               -em:-K:trap=fp:-O3:-hnoomp:-hnoacc:-hfp3:-hdynamic lccrayh parallel has
-%lopts               -em:-K:trap=fp:-O3:-hnoomp:-hnoacc:-hfp3:-hdynamic:-dynamic   lccrayh parallel has
-%remote_username     <replace_by_your_HLRN-III_username>                lccrayh parallel has
-%memory              2300                                               lccrayh parallel has
-%modules             fftw:cray-hdf5-parallel:cray-netcdf-hdf5parallel:craype-haswell   lccrayh parallel has
-%login_init_cmd      module:unload:cray-netcdf:craype-ivybridge         lccrayh parallel has
-#
-# HLRN-III Berlin
-%tmp_user_catalog    /gfs1/tmp/<replace_by_your_HLRN-III_username>                     lccrayb parallel
-%tmp_data_catalog    /gfs1/work/<replace_by_your_HLRN-III_username>/palm_restart_data  lccrayb parallel
-%compiler_name       ftn                                                               lccrayb parallel
-%compiler_name_ser   ftn                                                               lccrayb parallel
-%cpp_options         -e:Z:-DMPI_REAL=MPI_DOUBLE_PRECISION:-DMPI_2REAL=MPI_2DOUBLE_PRECISION:-D__netcdf:-D__netcdf4:-D__netcdf4_parallel:-D__fftw   lccrayb parallel
-%mopts               -j:4                                                              lccrayb parallel
-%fopts               -em:-K:trap=fp:-O3:-hnoomp:-hnoacc:-hfp3:-hdynamic                lccrayb parallel
-%lopts               -em:-K:trap=fp:-O3:-hnoomp:-hnoacc:-hfp3:-hdynamic:-dynamic       lccrayb parallel
-%remote_username     <replace_by_your_HLRN-III_username>                               lccrayb parallel
-%memory              2300                                                              lccrayb parallel
-%modules             fftw:cray-hdf5-parallel:cray-netcdf-hdf5parallel                  lccrayb parallel
-%login_init_cmd      module:unload:cray-netcdf                                         lccrayb parallel
-#
-# HLRN-III Berlin debug/trace mode
-%tmp_user_catalog    /gfs1/tmp/<replace_by_your_HLRN-III_username>                     lccrayb parallel trace
-%tmp_data_catalog    /gfs1/work/<replace_by_your_HLRN-III_username>/palm_restart_data  lccrayb parallel trace
-%compiler_name       ftn                                                               lccrayb parallel trace
-%compiler_name_ser   ftn                                                               lccrayb parallel trace
-%cpp_options         -e:Z:-DMPI_REAL=MPI_DOUBLE_PRECISION:-DMPI_2REAL=MPI_2DOUBLE_PRECISION:-D__netcdf:-D__netcdf4:-D__netcdf4_parallel:-D__fftw   lccrayb parallel trace
-%mopts               -j:4                                                              lccrayb parallel trace
-%fopts               -eD:-em:-g:-R:b:-K:trap=fp:-O0:-hnoomp:-hnoacc                    lccrayb parallel trace
-%lopts               -eD:-em:-g:-R:b:-K:trap=fp:-O0:-hnoomp:-hnoacc                    lccrayb parallel trace
-%remote_username     <replace_by_your_HLRN-III_username>                               lccrayb parallel trace
-%memory              2300                                                              lccrayb parallel trace
-%modules             fftw:cray-hdf5-parallel:cray-netcdf-hdf5parallel                  lccrayb parallel trace
-%login_init_cmd      module:unload:cray-netcdf                                         lccrayb parallel trace
-#
-%write_binary                true                             restart
-#
-#----------------------------------------------------------------------------
-# INPUT-commands, executed before running PALM - lines must start with "IC:"
-#----------------------------------------------------------------------------
-#IC:
-IC:[[ \$localhost = lccrayb ]]  &&  export ATP_ENABLED=1
-IC:[[ \$localhost = lccrayb ]]  &&  export MPICH_GNI_BTE_MULTI_CHANNEL=disabled
-#IC:[[ \$localhost = lccrayb ]]  &&  export APRUN_XFER_LIMITS=1
-#IC:[[ \$localhost = lccrayb ]]  &&  export APRUN_XFER_STACK_LIMIT=0
-#IC:[[ \$localhost = lccrayb ]]  &&  ulimit -v unlimited
-#IC:[[ \$localhost = lccrayb ]]  &&  ulimit -s unlimited
-#IC:[[ \$localhost = lccrayb ]]  &&  export MPICH_MPIIO_HINTS_DISPLAY=1
-#IC:[[ \$localhost = lccrayb ]]  &&  export MPICH_MPIIO_STATS=1
-#IC:[[ \$localhost = lccrayb ]]  &&  E8="=8"
-#IC:[[ \$localhost = lccrayb ]]  &&  export MPICH_MPIIO_HINTS="*DATA_**:striping_factor"\$E8
-IC:[[ \$localhost = lccrayh ]]  &&  export ATP_ENABLED=1
-IC:[[ \$localhost = lccrayh ]]  &&  export MPICH_GNI_BTE_MULTI_CHANNEL=disabled
-#IC:[[ \$localhost = lccrayh ]]  &&  export APRUN_XFER_LIMITS=1
-#IC:[[ \$localhost = lccrayh ]]  &&  export APRUN_XFER_STACK_LIMIT=0
-#IC:[[ \$localhost = lccrayh ]]  &&  ulimit -v unlimited
-#IC:[[ \$localhost = lccrayh ]]  &&  ulimit -s unlimited
-#IC:[[ \$localhost = lccrayh ]]  &&  export MPICH_MPIIO_HINTS_DISPLAY=1
-#IC:[[ \$localhost = lccrayh ]]  &&  export MPICH_MPIIO_STATS=1
-#IC:[[ \$localhost = lccrayh ]]  &&  E8="=8"
-#IC:[[ \$localhost = lccrayh ]]  &&  export MPICH_MPIIO_HINTS="*DATA_**:striping_factor"\$E8
-#
-#----------------------------------------------------------------------------
-# ERROR-commands - executed when program terminates abnormally
-#----------------------------------------------------------------------------
-EC:[[ \$locat = execution ]]  &&  cat  RUN_CONTROL
-#
-#----------------------------------------------------------------------------
-# OUTPUT-commands - executed when program terminates normally
-#----------------------------------------------------------------------------
-#
-# Combine 1D- and 3D-profile output (these files are not usable for plotting)
-OC:[[ -f LIST_PROFIL_1D     ]]  &&  cat  LIST_PROFIL_1D  >>  LIST_PROFILE
-OC:[[ -f LIST_PROFIL        ]]  &&  cat  LIST_PROFIL     >>  LIST_PROFILE
-#
-# Combine all particle information files
-OC:[[ -f PARTICLE_INFOS/_0000 ]]  &&  cat  PARTICLE_INFOS/* >> PARTICLE_INFO
-#
-#----------------------------------------------------------------------------
-# List of input-files
-#----------------------------------------------------------------------------
-PARIN                    in:job        d3#      $base_data/$fname/INPUT    _p3d
-PARIN                    in:job        d3f      $base_data/$fname/INPUT    _p3df
-TOPOGRAPHY_DATA          in:locopt     d3#:d3f  $base_data/$fname/INPUT    _topo
-TOPOGRAPHY_DATA_NC       in:locopt     d3#:d3f  $base_data/$fname/INPUT    _topo_nc
-NUDGING_DATA             in:locopt     d3#:d3f  $base_data/$fname/INPUT    _nudge
-LSF_DATA                 in:locopt     d3#:d3f  $base_data/$fname/INPUT    _lsf
-WTM_DATA                 in:locopt     d3#:d3f  $base_data/$fname/INPUT    _wtm
-STG_PROFILES             in:locopt     d3#:d3f  $base_data/$fname/INPUT    _stgpr
-BININ                    in:loc:lnpe   d3f:rec:cycfill  $tmp_data_catalog/$fname/RESTART   _d3d
-PARTICLE_RESTART_DATA_IN in:loc:lnpe   prtf     $tmp_data_catalog/$fname/RESTART   _rprt
-DATA_1D_FL_NETCDF        in:locopt     flf      $output_data/$fname/OUTPUT  _fl     nc
-DATA_1D_PR_NETCDF        in:locopt     prf      $output_data/$fname/OUTPUT  _pr     nc
-DATA_1D_SP_NETCDF        in:locopt     spf      $output_data/$fname/OUTPUT  _sp     nc
-DATA_1D_TS_NETCDF        in:locopt     tsf      $output_data/$fname/OUTPUT  _ts     nc
-DATA_1D_PTS_NETCDF       in:locopt     ptsf     $output_data/$fname/OUTPUT  _pts    nc
-DATA_2D_XY_NETCDF        in:locopt     xyf      $output_data/$fname/OUTPUT  _xy     nc
-DATA_2D_XY_AV_NETCDF     in:locopt     xyf      $output_data/$fname/OUTPUT  _xy_av  nc
-DATA_2D_XZ_NETCDF        in:locopt     xzf      $output_data/$fname/OUTPUT  _xz     nc
-DATA_2D_XZ_AV_NETCDF     in:locopt     xzf      $output_data/$fname/OUTPUT  _xz_av  nc
-DATA_2D_YZ_NETCDF        in:locopt     yzf      $output_data/$fname/OUTPUT  _yz     nc
-DATA_2D_YZ_AV_NETCDF     in:locopt     yzf      $output_data/$fname/OUTPUT  _yz_av  nc
-DATA_3D_NETCDF           in:locopt     3df      $output_data/$fname/OUTPUT  _3d     nc
-DATA_3D_AV_NETCDF        in:locopt     3df      $output_data/$fname/OUTPUT  _3d_av  nc
-DATA_PRT_NETCDF          in:locopt:pe  prtf     $output_data/$fname/OUTPUT  _prt    nc
-#
-#----------------------------------------------------------------------------
-# List of output-files
-#----------------------------------------------------------------------------
-BINOUT                    out:loc:lnpe restart   $tmp_data_catalog/$fname/RESTART  _d3d
-PARTICLE_RESTART_DATA_OUT out:loc:lnpe prt#:prtf $tmp_data_catalog/$fname/RESTART  _rprt
-#
-RUN_CONTROL       out:loc:tr   d3#     $base_data/$fname/MONITORING  _rc
-RUN_CONTROL       out:loc:tra  d3f     $base_data/$fname/MONITORING  _rc
-HEADER            out:loc:tr   d3#     $base_data/$fname/MONITORING  _header
-HEADER            out:loc:tra  d3f     $base_data/$fname/MONITORING  _header
-CPU_MEASURES      out:loc:tr   d3#     $base_data/$fname/MONITORING  _cpu
-CPU_MEASURES      out:loc:tra  d3f     $base_data/$fname/MONITORING  _cpu
-TURBINE_PARAMETERS01   out:loc:tr    d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters01
-TURBINE_PARAMETERS02   out:loc:tr    d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters02
-TURBINE_PARAMETERS03   out:loc:tr    d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters03
-TURBINE_PARAMETERS04   out:loc:tr    d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters04
-TURBINE_PARAMETERS05   out:loc:tr    d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters05
-TURBINE_PARAMETERS06   out:loc:tr    d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters06
-TURBINE_PARAMETERS07   out:loc:tr    d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters07
-TURBINE_PARAMETERS08   out:loc:tr    d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters08
-TURBINE_PARAMETERS09   out:loc:tr    d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters09
-TURBINE_PARAMETERS10   out:loc:tr    d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters10
-#
-DATA_1D_FL_NETCDF      out:loc    fl#:flf   $base_data/$fname/OUTPUT    _fl      nc
-DATA_1D_PR_NETCDF      out:loc    pr#       $output_data/$fname/OUTPUT  _pr      nc
-DATA_1D_PR_NETCDF      out:loc    prf       $output_data/$fname/OUTPUT  _pr      nc
-DATA_1D_SP_NETCDF      out:loc    sp#       $output_data/$fname/OUTPUT  _sp      nc
-DATA_1D_SP_NETCDF      out:loc    spf       $output_data/$fname/OUTPUT  _sp      nc
-DATA_1D_TS_NETCDF      out:loc    ts#       $output_data/$fname/OUTPUT  _ts      nc
-DATA_1D_TS_NETCDF      out:loc    tsf       $output_data/$fname/OUTPUT  _ts      nc
-DATA_1D_PTS_NETCDF     out:loc    pts#      $output_data/$fname/OUTPUT  _pts     nc
-DATA_1D_PTS_NETCDF     out:loc    ptsf      $output_data/$fname/OUTPUT  _pts     nc
-DATA_2D_XY_NETCDF      out:loc    xy#:xyf   $output_data/$fname/OUTPUT  _xy      nc
-DATA_2D_XY_AV_NETCDF   out:loc    xy#:xyf   $output_data/$fname/OUTPUT  _xy_av   nc
-DATA_2D_XZ_NETCDF      out:loc    xz#:xzf   $output_data/$fname/OUTPUT  _xz      nc
-DATA_2D_XZ_AV_NETCDF   out:loc    xz#:xzf   $output_data/$fname/OUTPUT  _xz_av   nc
-DATA_2D_YZ_NETCDF      out:loc    yz#:yzf   $output_data/$fname/OUTPUT  _yz      nc
-DATA_2D_YZ_AV_NETCDF   out:loc    yz#:yzf   $output_data/$fname/OUTPUT  _yz_av   nc
-DATA_3D_NETCDF         out:loc    3d#:3df   $output_data/$fname/OUTPUT  _3d      nc
-DATA_3D_AV_NETCDF      out:loc    3d#:3df   $output_data/$fname/OUTPUT  _3d_av   nc
-DATA_MASK_01_NETCDF    out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m01     nc
-DATA_MASK_01_AV_NETCDF out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m01_av  nc
-DATA_MASK_02_NETCDF    out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m02     nc
-DATA_MASK_02_AV_NETCDF out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m02_av  nc
-DATA_MASK_03_NETCDF    out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m03     nc
-DATA_MASK_03_AV_NETCDF out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m03_av  nc
-DATA_MASK_04_NETCDF    out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m04     nc
-DATA_MASK_04_AV_NETCDF out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m04_av  nc
-DATA_MASK_05_NETCDF    out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m05     nc
-DATA_MASK_05_AV_NETCDF out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m05_av  nc
-DATA_MASK_06_NETCDF    out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m06     nc
-DATA_MASK_06_AV_NETCDF out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m06_av  nc
-DATA_MASK_07_NETCDF    out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m07     nc
-DATA_MASK_07_AV_NETCDF out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m07_av  nc
-DATA_MASK_08_NETCDF    out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m08     nc
-DATA_MASK_08_AV_NETCDF out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m08_av  nc
-DATA_MASK_09_NETCDF    out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m09     nc
-DATA_MASK_09_AV_NETCDF out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m09_av  nc
-DATA_MASK_10_NETCDF    out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m10     nc
-DATA_MASK_10_AV_NETCDF out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m10_av  nc
-DATA_MASK_11_NETCDF    out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m11     nc
-DATA_MASK_11_AV_NETCDF out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m11_av  nc
-DATA_MASK_12_NETCDF    out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m12     nc
-DATA_MASK_12_AV_NETCDF out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m12_av  nc
-DATA_MASK_13_NETCDF    out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m13     nc
-DATA_MASK_13_AV_NETCDF out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m13_av  nc
-DATA_MASK_14_NETCDF    out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m14     nc
-DATA_MASK_14_AV_NETCDF out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m14_av  nc
-DATA_MASK_15_NETCDF    out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m15     nc
-DATA_MASK_15_AV_NETCDF out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m15_av  nc
-DATA_MASK_16_NETCDF    out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m16     nc
-DATA_MASK_16_AV_NETCDF out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m16_av  nc
-DATA_MASK_17_NETCDF    out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m17     nc
-DATA_MASK_17_AV_NETCDF out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m17_av  nc
-DATA_MASK_18_NETCDF    out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m18     nc
-DATA_MASK_18_AV_NETCDF out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m18_av  nc
-DATA_MASK_19_NETCDF    out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m19     nc
-DATA_MASK_19_AV_NETCDF out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m19_av  nc
-DATA_MASK_20_NETCDF    out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m20     nc
-DATA_MASK_20_AV_NETCDF out:loc    ma#:maf   $output_data/$fname/OUTPUT  _m20_av  nc
-DATA_PRT_NETCDF        out:loc:pe prt#:prtf $output_data/$fname/OUTPUT  _prt     nc
-DATA_DVR               out:loc:pe dvr       $output_data/$fname/OUTPUT  _dvr
-#
-DVRP_LOG          out:loc:tr   dv#       $base_data/$fname/MONITORING  _dvrp_log
-DVRP_LOG          out:loc:tra  dvf       $base_data/$fname/MONITORING  _dvrp_log
-PARTICLE_INFO     out:loc:tr   pt#       $base_data/$fname/MONITORING  _prt_info
-PARTICLE_INFO     out:loc:tra  ptf       $base_data/$fname/MONITORING  _prt_info
-PARTICLE_DATA     out:loc:lnpe prt#:prtf $tmp_data_catalog/$fname/OUTPUT      _prt_dat
-# A BLANK LINE MUST FOLLOW
Index: palm/trunk/SCRIPTS/.mrun.config.gfortran
===================================================================
--- palm/trunk/SCRIPTS/.mrun.config.gfortran	(revision 2693)
+++ 	(revision )
@@ -1,196 +1,0 @@
-#$Id: .mrun.config.gfortran 1446 2014-08-07 10:08:56Z knoop $
-#column 1          column 2                                   column 3
-#name of variable  value of variable (~ must not be used)     scope
-#----------------------------------------------------------------------------
-%mainprog          palm.f90
-%base_directory    $HOME/palm/current_version
-%base_data         ~/palm/current_version/JOBS
-%source_path       $base_directory/trunk/SOURCE
-%add_source_path   $base_directory/USER_CODE/$fname
-%depository_path   $base_directory/MAKE_DEPOSITORY
-%use_makefile      true
-#
-# Enter your own host below by adding another line containing in the second
-# column your hostname (as provided by the unix command "hostname") and in the
-# third column the host identifier. Depending on your operating system, the
-# first characters of the host identifier should be "lc" (Linux cluster), "ibm"
-# (IBM-AIX), or "nec" (NEC-SX), respectively.
-#
-# The next line is just an example. Add your own line below or replace this line.
-%host_identifier   <replace_with_your_hostname>  <hi>
-#
-#
-# The next block contains all informations for compiling the PALM code
-# and for generating and running the PALM executable using MPI. Replace all
-# required paths (given in <>) by the respective paths valid on your host.
-# Also replace <hi> by your host identifier (for example "lcmy")
-# in each line!
-# Compilernames, cpp-options and compiler-options are assuming
-# an GNU-Compiler and mpich2 on this host! Please change
-# appropriately, if you are using a different compiler / MPI-Version.
-#
-#
-%remote_username   <replace_with_your_local_username>            <hi> parallel
-%tmp_user_catalog  $HOME/palm/tmp                                <hi> parallel
-%compiler_name     mpif90                                        <hi> parallel
-%compiler_name_ser gfortran                                      <hi> parallel
-%cpp_options       -cpp:-DMPI_REAL=MPI_DOUBLE_PRECISION:-DMPI_2REAL=MPI_2DOUBLE_PRECISION:-D__lc:-D__netcdf:-D__parallel:-D__gfortran   <hi> parallel
-%netcdf_inc        -I:<replace_by_netcdf_include_path>           <hi> parallel
-%netcdf_lib        -L:<replace_by_netcdf_library_path>:-lnetcdf  <hi> parallel
-%mopts             -j:4                                          <hi> parallel
-%fopts             -Ofast                                        <hi> parallel
-%lopts             -Ofast                                        <hi> parallel
-# if you want to use your own hostfile, uncomment next line
-#%hostfile          $base_directory/.hostfile                    <hi> parallel
-# if you want to load modules on the remote host, use the following line
-#%modules           <replace_by_the_modules_to_be_loaded>        <hi> parallel
-# if you want to perform initial commands on ssh connections, use the following line
-#%login_init_cmd    <replace_by_the_inital_commands>             <hi> parallel
-#
-#
-%remote_username   <replace_with_your_local_username>            <hi> parallel trace
-%tmp_user_catalog  $HOME/palm/tmp                                <hi> parallel trace
-%compiler_name     mpif90                                        <hi> parallel trace
-%compiler_name_ser gfortran                                      <hi> parallel trace
-%cpp_options       -cpp:-DMPI_REAL=MPI_DOUBLE_PRECISION:-DMPI_2REAL=MPI_2DOUBLE_PRECISION:-D__lc:-D__netcdf:-D__parallel:-D__gfortran   <hi> parallel trace
-%netcdf_inc        -I:<replace_by_netcdf_include_path>           <hi> parallel trace
-%netcdf_lib        -L:<replace_by_netcdf_library_path>:-lnetcdf  <hi> parallel trace
-%mopts             -j:4                                          <hi> parallel trace
-%fopts             -O0:-Wall:-fbacktrace                         <hi> parallel trace
-%lopts             -O0:-Wall:-fbacktrace                         <hi> parallel trace
-# if you want to use your own hostfile, uncomment next line
-#%hostfile          $base_directory/.hostfile                    <hi> parallel trace
-# if you want to load modules on the remote host, use the following line
-#%modules           <replace_by_the_modules_to_be_loaded>        <hi> parallel trace
-# if you want to perform initial commands on ssh connections, use the following line
-#%login_init_cmd    <replace_by_the_inital_commands>             <hi> parallel trace
-#
-#
-%write_binary                true                             restart
-#
-#----------------------------------------------------------------------------
-# INPUT-commands, executed before running PALM - lines must start with "IC:"
-#----------------------------------------------------------------------------
-#IC:
-#
-#----------------------------------------------------------------------------
-# ERROR-commands - executed when program terminates abnormally
-#----------------------------------------------------------------------------
-EC:[[ \$locat = execution ]]  &&  cat  RUN_CONTROL
-EC:pwd; ls -al
-#
-#----------------------------------------------------------------------------
-# OUTPUT-commands - executed when program terminates normally
-#----------------------------------------------------------------------------
-#
-# Combine 1D- and 3D-profile output (these files are not usable for plotting)
-OC:[[ -f LIST_PROFIL_1D     ]]  &&  cat  LIST_PROFIL_1D  >>  LIST_PROFILE
-OC:[[ -f LIST_PROFIL        ]]  &&  cat  LIST_PROFIL     >>  LIST_PROFILE
-#
-# Combine all particle information files
-OC:[[ -f PARTICLE_INFOS/_0000 ]]  &&  cat  PARTICLE_INFOS/* >> PARTICLE_INFO
-#
-#----------------------------------------------------------------------------
-# List of input-files
-#----------------------------------------------------------------------------
-PARIN                    in:job        d3#      $base_data/$fname/INPUT    _p3d
-PARIN                    in:job        d3f      $base_data/$fname/INPUT    _p3df
-TOPOGRAPHY_DATA          in:locopt     d3#:d3f  $base_data/$fname/INPUT    _topo
-TOPOGRAPHY_DATA_NC       in:locopt     d3#:d3f  $base_data/$fname/INPUT    _topo_nc
-NUDGING_DATA             in:locopt     d3#:d3f  $base_data/$fname/INPUT    _nudge
-LSF_DATA                 in:locopt     d3#:d3f  $base_data/$fname/INPUT    _lsf
-WTM_DATA                 in:locopt     d3#:d3f  $base_data/$fname/INPUT    _wtm
-STG_PROFILES             in:locopt     d3#:d3f  $base_data/$fname/INPUT    _stgpr
-BININ                    in:loc:lnpe   d3f      $base_data/$fname/RESTART  _d3d
-PARTICLE_RESTART_DATA_IN in:loc:lnpe   prtf     $base_data/$fname/RESTART  _rprt
-DATA_1D_FL_NETCDF        in:locopt     flf      $base_data/$fname/OUTPUT   _fl     nc
-DATA_1D_PR_NETCDF        in:locopt     prf      $base_data/$fname/OUTPUT   _pr     nc
-DATA_1D_SP_NETCDF        in:locopt     spf      $base_data/$fname/OUTPUT   _sp     nc
-DATA_1D_TS_NETCDF        in:locopt     tsf      $base_data/$fname/OUTPUT   _ts     nc
-DATA_1D_PTS_NETCDF       in:locopt     ptsf     $base_data/$fname/OUTPUT   _pts    nc
-DATA_2D_XY_NETCDF        in:locopt     xyf      $base_data/$fname/OUTPUT   _xy     nc
-DATA_2D_XY_AV_NETCDF     in:locopt     xyf      $base_data/$fname/OUTPUT   _xy_av  nc
-DATA_2D_XZ_NETCDF        in:locopt     xzf      $base_data/$fname/OUTPUT   _xz     nc
-DATA_2D_YZ_NETCDF        in:locopt     yzf      $base_data/$fname/OUTPUT   _yz     nc
-DATA_3D_NETCDF           in:locopt     3df      $base_data/$fname/OUTPUT   _3d     nc
-DATA_PRT_NETCDF          in:locopt:pe  prtf     $base_data/$fname/OUTPUT   _prt
-#
-#----------------------------------------------------------------------------
-# List of output-files
-#----------------------------------------------------------------------------
-BINOUT                    out:loc:lnpe restart   $base_data/$fname/RESTART  _d3d
-PARTICLE_RESTART_DATA_OUT out:loc:lnpe prt#:prtf $base_data/$fname/RESTART  _rprt
-#
-RUN_CONTROL       out:loc:tr   d3#     $base_data/$fname/MONITORING  _rc
-RUN_CONTROL       out:loc:tra  d3f     $base_data/$fname/MONITORING  _rc
-HEADER            out:loc:tr   d3#     $base_data/$fname/MONITORING  _header
-HEADER            out:loc:tra  d3f     $base_data/$fname/MONITORING  _header
-CPU_MEASURES      out:loc:tr   d3#     $base_data/$fname/MONITORING  _cpu
-CPU_MEASURES      out:loc:tra  d3f     $base_data/$fname/MONITORING  _cpu
-TURBINE_PARAMETERS01  out:loc:tr  d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters01
-TURBINE_PARAMETERS02  out:loc:tr  d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters02
-TURBINE_PARAMETERS03  out:loc:tr  d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters03
-TURBINE_PARAMETERS04  out:loc:tr  d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters04
-#
-DATA_1D_FL_NETCDF    out:loc:tr   fl#:flf   $base_data/$fname/OUTPUT  _fl     nc
-DATA_1D_PR_NETCDF    out:loc:tr   pr#:prf   $base_data/$fname/OUTPUT  _pr     nc
-DATA_1D_SP_NETCDF    out:loc:tr   sp#:spf   $base_data/$fname/OUTPUT  _sp     nc
-DATA_1D_TS_NETCDF    out:loc:tr   ts#:tsf   $base_data/$fname/OUTPUT  _ts     nc
-DATA_1D_PTS_NETCDF   out:loc:tr   pts#:ptsf $base_data/$fname/OUTPUT  _pts    nc
-DATA_2D_XY_NETCDF    out:loc:tr   xy#:xyf   $base_data/$fname/OUTPUT  _xy     nc
-DATA_2D_XY_AV_NETCDF out:loc:tr   xy#:xyf   $base_data/$fname/OUTPUT  _xy_av  nc
-DATA_2D_XZ_NETCDF    out:loc:tr   xz#:xzf   $base_data/$fname/OUTPUT  _xz     nc
-DATA_2D_XZ_AV_NETCDF out:loc:tr   xz#:xzf   $base_data/$fname/OUTPUT  _xz_av  nc
-DATA_2D_YZ_NETCDF    out:loc:tr   yz#:yzf   $base_data/$fname/OUTPUT  _yz     nc
-DATA_2D_YZ_AV_NETCDF out:loc:tr   yz#:yzf   $base_data/$fname/OUTPUT  _yz_av  nc
-DATA_3D_NETCDF       out:loc:tr   3d#:3df   $base_data/$fname/OUTPUT  _3d     nc
-DATA_3D_AV_NETCDF    out:loc:tr   3d#:3df   $base_data/$fname/OUTPUT  _3d_av  nc
-DATA_MASK_01_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m01     nc
-DATA_MASK_01_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m01_av  nc
-DATA_MASK_02_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m02     nc
-DATA_MASK_02_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m02_av  nc
-DATA_MASK_03_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m03     nc
-DATA_MASK_03_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m03_av  nc
-DATA_MASK_04_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m04     nc
-DATA_MASK_04_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m04_av  nc
-DATA_MASK_05_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m05     nc
-DATA_MASK_05_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m05_av  nc
-DATA_MASK_06_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m06     nc
-DATA_MASK_06_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m06_av  nc
-DATA_MASK_07_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m07     nc
-DATA_MASK_07_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m07_av  nc
-DATA_MASK_08_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m08     nc
-DATA_MASK_08_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m08_av  nc
-DATA_MASK_09_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m09     nc
-DATA_MASK_09_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m09_av  nc
-DATA_MASK_10_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m10     nc
-DATA_MASK_10_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m10_av  nc
-DATA_MASK_11_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m11     nc
-DATA_MASK_11_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m11_av  nc
-DATA_MASK_12_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m12     nc
-DATA_MASK_12_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m12_av  nc
-DATA_MASK_13_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m13     nc
-DATA_MASK_13_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m13_av  nc
-DATA_MASK_14_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m14     nc
-DATA_MASK_14_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m14_av  nc
-DATA_MASK_15_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m15     nc
-DATA_MASK_15_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m15_av  nc
-DATA_MASK_16_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m16     nc
-DATA_MASK_16_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m16_av  nc
-DATA_MASK_17_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m17     nc
-DATA_MASK_17_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m17_av  nc
-DATA_MASK_18_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m18     nc
-DATA_MASK_18_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m18_av  nc
-DATA_MASK_19_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m19     nc
-DATA_MASK_19_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m19_av  nc
-DATA_MASK_20_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m20     nc
-DATA_MASK_20_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m20_av  nc
-DATA_PRT_NETCDF      out:loc:trpe prt#:prtf $base_data/$fname/OUTPUT  _prt    nc
-DATA_DVR             out:loc:trpe dvr       $base_data/$fname/OUTPUT  _dvr
-#
-DVRP_LOG          out:loc:tr   dv#       $base_data/$fname/MONITORING  _dvrp_log
-DVRP_LOG          out:loc:tra  dvf       $base_data/$fname/MONITORING  _dvrp_log
-PARTICLE_INFO     out:loc:tr   pt#       $base_data/$fname/MONITORING  _prt_info
-PARTICLE_INFO     out:loc:tra  ptf       $base_data/$fname/MONITORING  _prt_info
-PARTICLE_DATA     out:loc:lnpe prt#:prtf $base_data/$fname/OUTPUT      _prt_dat
-# A BLANK LINE MUST FOLLOW
Index: palm/trunk/SCRIPTS/.mrun.config.hayaka
===================================================================
--- palm/trunk/SCRIPTS/.mrun.config.hayaka	(revision 2693)
+++ 	(revision )
@@ -1,169 +1,0 @@
-#$Id$
-#column 1          column 2                                   column 3
-#name of variable  value of variable (~ must not be used)     scope
-#----------------------------------------------------------------------------
-%mainprog          palm.f90
-%base_directory    $HOME/palm/current_version
-%base_data         ~/palm/current_version/JOBS
-%source_path       $base_directory/trunk/SOURCE
-%add_source_path   $base_directory/USER_CODE/$fname
-%depository_path   $base_directory/MAKE_DEPOSITORY
-%use_makefile      true
-#
-# Enter your own host below by adding another line containing in the second
-# column your hostname (as provided by the unix command "hostname") and in the
-# third column the host identifier. Depending on your operating system, the
-# first characters of the host identifier should be "lc" (Linux cluster), "ibm"
-# (IBM-AIX), or "nec" (NEC-SX), respectively.
-#
-%host_identifier   hayaka*     lckyuh
-%host_identifier   pcj*        lckyuh
-#
-#
-# The next block contains all informations for compiling the PALM code
-# and for generating and running the PALM executable using MPI. Replace all
-# required paths (given in <>) by the respective paths valid on your host.
-#
-%tmp_user_catalog  <replace_by_your_preferred_tmp_directory>     lckyuh parallel
-%tmp_data_catalog  <replace_by_your_preferred_data_directory>    lckyuh parallel
-%compiler_name     mpifrtpx                                      lckyuh parallel
-%compiler_name_ser frtpx                                         lckyuh parallel
-%cpp_options       -Cpp:-DMPI_REAL=MPI_DOUBLE_PRECISION:-DMPI_2REAL=MPI_2DOUBLE_PRECISION:-D__netcdf   lckyuh parallel
-%netcdf_inc        -I:/home/usr1/g70491a/netcdf-4.1.3/include  lckyuh parallel
-%netcdf_lib        -L/home/usr1/g70491a/netcdf-4.1.3/lib:-lnetcdff:-lnetcdf  lckyuh parallel
-%mopts             -j:4                                          lckyuh parallel
-%memory            1000                                          lckyuh parallel
-%fopts             -Kfast:-Ad:-Knooptmsg                         lckyuh parallel
-%lopts             -Kfast:-Ad                                    lckyuh parallel
-%scp_port          22                                            lckyuh parallel
-%remote_username   <replace_by_your_hayaka_username>             lckyuh parallel
-#
-%write_binary        true                             restart
-#
-#----------------------------------------------------------------------------
-# INPUT-commands, executed before running PALM - lines must start with "IC:"
-#----------------------------------------------------------------------------
-#IC:
-#
-#----------------------------------------------------------------------------
-# ERROR-commands - executed when program terminates abnormally
-#----------------------------------------------------------------------------
-EC:[[ \$locat = execution ]]  &&  cat  RUN_CONTROL
-EC:pwd; ls -al
-#
-#----------------------------------------------------------------------------
-# OUTPUT-commands - executed when program terminates normally
-#----------------------------------------------------------------------------
-#
-# Combine 1D- and 3D-profile output (these files are not usable for plotting)
-OC:[[ -f LIST_PROFIL_1D     ]]  &&  cat  LIST_PROFIL_1D  >>  LIST_PROFILE
-OC:[[ -f LIST_PROFIL        ]]  &&  cat  LIST_PROFIL     >>  LIST_PROFILE
-#
-# Combine all particle information files
-OC:[[ -f PARTICLE_INFOS/_0000 ]]  &&  cat  PARTICLE_INFOS/* >> PARTICLE_INFO
-#
-#----------------------------------------------------------------------------
-# List of input-files
-#----------------------------------------------------------------------------
-PARIN                    in:job        d3#      $base_data/$fname/INPUT    _p3d
-PARIN                    in:job        d3f      $base_data/$fname/INPUT    _p3df
-TOPOGRAPHY_DATA          in:locopt     d3#:d3f  $base_data/$fname/INPUT    _topo
-TOPOGRAPHY_DATA_NC       in:locopt     d3#:d3f  $base_data/$fname/INPUT    _topo_nc
-NUDGING_DATA             in:locopt     d3#:d3f  $base_data/$fname/INPUT    _nudge
-LSF_DATA                 in:locopt     d3#:d3f  $base_data/$fname/INPUT    _lsf
-WTM_DATA                 in:locopt     d3#:d3f  $base_data/$fname/INPUT    _wtm
-STG_PROFILES             in:locopt     d3#:d3f  $base_data/$fname/INPUT    _stgpr
-BININ                    in:loc:lnpe   d3f      $tmp_data_catalog/$fname/RESTART  _d3d
-PARTICLE_RESTART_DATA_IN in:loc:lnpe   prtf     $tmp_data_catalog/$fname/RESTART  _rprt
-DATA_1D_FL_NETCDF        in:locopt     flf      $base_data/$fname/OUTPUT   _fl     nc
-DATA_1D_PR_NETCDF        in:locopt     prf      $base_data/$fname/OUTPUT   _pr     nc
-DATA_1D_SP_NETCDF        in:locopt     spf      $base_data/$fname/OUTPUT   _sp     nc
-DATA_1D_TS_NETCDF        in:locopt     tsf      $base_data/$fname/OUTPUT   _ts     nc
-DATA_1D_PTS_NETCDF       in:locopt     ptsf     $base_data/$fname/OUTPUT   _pts    nc
-DATA_2D_XY_NETCDF        in:locopt     xyf      $base_data/$fname/OUTPUT   _xy     nc
-DATA_2D_XY_AV_NETCDF     in:locopt     xyf      $base_data/$fname/OUTPUT   _xy_av  nc
-DATA_2D_XZ_NETCDF        in:locopt     xzf      $base_data/$fname/OUTPUT   _xz     nc
-DATA_2D_YZ_NETCDF        in:locopt     yzf      $base_data/$fname/OUTPUT   _yz     nc
-DATA_3D_NETCDF           in:locopt     3df      $base_data/$fname/OUTPUT   _3d     nc
-DATA_PRT_NETCDF          in:locopt:pe  prtf     $base_data/$fname/OUTPUT   _prt
-#
-#----------------------------------------------------------------------------
-# List of output-files
-#----------------------------------------------------------------------------
-BINOUT                    out:loc:lnpe restart   $tmp_data_catalog/$fname/RESTART  _d3d
-PARTICLE_RESTART_DATA_OUT out:loc:lnpe prt#:prtf $tmp_data_catalog/$fname/RESTART  _rprt
-#
-RUN_CONTROL       out:loc:tr   d3#     $base_data/$fname/MONITORING  _rc
-RUN_CONTROL       out:loc:tra  d3f     $base_data/$fname/MONITORING  _rc
-HEADER            out:loc:tr   d3#     $base_data/$fname/MONITORING  _header
-HEADER            out:loc:tra  d3f     $base_data/$fname/MONITORING  _header
-CPU_MEASURES      out:loc:tr   d3#     $base_data/$fname/MONITORING  _cpu
-CPU_MEASURES      out:loc:tra  d3f     $base_data/$fname/MONITORING  _cpu
-TURBINE_PARAMETERS01  out:loc:tr  d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters01
-TURBINE_PARAMETERS02  out:loc:tr  d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters02
-TURBINE_PARAMETERS03  out:loc:tr  d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters03
-TURBINE_PARAMETERS04  out:loc:tr  d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters04
-#
-DATA_1D_FL_NETCDF    out:loc:tr   fl#:flf   $base_data/$fname/OUTPUT  _fl     nc
-DATA_1D_PR_NETCDF    out:loc:tr   pr#:prf   $base_data/$fname/OUTPUT  _pr     nc
-DATA_1D_SP_NETCDF    out:loc:tr   sp#:spf   $base_data/$fname/OUTPUT  _sp     nc
-DATA_1D_TS_NETCDF    out:loc:tr   ts#:tsf   $base_data/$fname/OUTPUT  _ts     nc
-DATA_1D_PTS_NETCDF   out:loc:tr   pts#:ptsf $base_data/$fname/OUTPUT  _pts    nc
-DATA_2D_XY_NETCDF    out:loc:tr   xy#:xyf   $base_data/$fname/OUTPUT  _xy     nc
-DATA_2D_XY_AV_NETCDF out:loc:tr   xy#:xyf   $base_data/$fname/OUTPUT  _xy_av  nc
-DATA_2D_XZ_NETCDF    out:loc:tr   xz#:xzf   $base_data/$fname/OUTPUT  _xz     nc
-DATA_2D_XZ_AV_NETCDF out:loc:tr   xz#:xzf   $base_data/$fname/OUTPUT  _xz_av  nc
-DATA_2D_YZ_NETCDF    out:loc:tr   yz#:yzf   $base_data/$fname/OUTPUT  _yz     nc
-DATA_2D_YZ_AV_NETCDF out:loc:tr   yz#:yzf   $base_data/$fname/OUTPUT  _yz_av  nc
-DATA_3D_NETCDF       out:loc:tr   3d#:3df   $base_data/$fname/OUTPUT  _3d     nc
-DATA_3D_AV_NETCDF    out:loc:tr   3d#:3df   $base_data/$fname/OUTPUT  _3d_av  nc
-DATA_MASK_01_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m01     nc
-DATA_MASK_01_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m01_av  nc
-DATA_MASK_02_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m02     nc
-DATA_MASK_02_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m02_av  nc
-DATA_MASK_03_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m03     nc
-DATA_MASK_03_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m03_av  nc
-DATA_MASK_04_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m04     nc
-DATA_MASK_04_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m04_av  nc
-DATA_MASK_05_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m05     nc
-DATA_MASK_05_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m05_av  nc
-DATA_MASK_06_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m06     nc
-DATA_MASK_06_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m06_av  nc
-DATA_MASK_07_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m07     nc
-DATA_MASK_07_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m07_av  nc
-DATA_MASK_08_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m08     nc
-DATA_MASK_08_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m08_av  nc
-DATA_MASK_09_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m09     nc
-DATA_MASK_09_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m09_av  nc
-DATA_MASK_10_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m10     nc
-DATA_MASK_10_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m10_av  nc
-DATA_MASK_11_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m11     nc
-DATA_MASK_11_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m11_av  nc
-DATA_MASK_12_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m12     nc
-DATA_MASK_12_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m12_av  nc
-DATA_MASK_13_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m13     nc
-DATA_MASK_13_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m13_av  nc
-DATA_MASK_14_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m14     nc
-DATA_MASK_14_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m14_av  nc
-DATA_MASK_15_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m15     nc
-DATA_MASK_15_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m15_av  nc
-DATA_MASK_16_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m16     nc
-DATA_MASK_16_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m16_av  nc
-DATA_MASK_17_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m17     nc
-DATA_MASK_17_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m17_av  nc
-DATA_MASK_18_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m18     nc
-DATA_MASK_18_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m18_av  nc
-DATA_MASK_19_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m19     nc
-DATA_MASK_19_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m19_av  nc
-DATA_MASK_20_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m20     nc
-DATA_MASK_20_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m20_av  nc
-DATA_PRT_NETCDF      out:loc:pe   prt#:prtf $base_data/$fname/OUTPUT  _prt    nc
-DATA_PRT_NETCDF      out:loc:trpe prt#:prtf $base_data/$fname/OUTPUT  _prt    nc
-DATA_DVR             out:loc:trpe dvr       $base_data/$fname/OUTPUT  _dvr
-#
-DVRP_LOG          out:loc:tr   dv#       $base_data/$fname/MONITORING  _dvrp_log
-DVRP_LOG          out:loc:tra  dvf       $base_data/$fname/MONITORING  _dvrp_log
-PARTICLE_INFO     out:loc:tr   pt#       $base_data/$fname/MONITORING  _prt_info
-PARTICLE_INFO     out:loc:tra  ptf       $base_data/$fname/MONITORING  _prt_info
-PARTICLE_DATA     out:loc:lnpe prt#:prtf $tmp_data_catalog/$fname/OUTPUT      _prt_dat
-# A BLANK LINE MUST FOLLOW
Index: palm/trunk/SCRIPTS/.mrun.config.hlrnIII
===================================================================
--- palm/trunk/SCRIPTS/.mrun.config.hlrnIII	(revision 2693)
+++ 	(revision )
@@ -1,252 +1,0 @@
-#$Id$
-#column 1          column 2                                   column 3
-#name of variable  value of variable (~ must not be used)     scope
-#----------------------------------------------------------------------------
-%mainprog          palm.f90
-%base_directory    $HOME/palm/current_version
-%base_data         ~/palm/current_version/JOBS
-%source_path       $base_directory/trunk/SOURCE
-%add_source_path   $base_directory/USER_CODE/$fname
-%depository_path   $base_directory/MAKE_DEPOSITORY
-%use_makefile      true
-#
-# Enter your own host below by adding another line containing in the second
-# column your hostname (as provided by the unix command "hostname") and in the
-# third column the host identifier. Depending on your operating system, the
-# first characters of the host identifier should be "lc" (Linux cluster), "ibm"
-# (IBM-AIX), or "nec" (NEC-SX), respectively.
-#
-# The next line is just an example. Add your own line below or replace this line.
-%host_identifier   hlogin*      lccrayh
-%host_identifier   hxc*         lccrayh
-%host_identifier   blogin*      lccrayb
-%host_identifier   bxc*         lccrayb
-#
-#
-# The next block contains all informations for compiling the PALM code
-# and for generating and running the PALM executable using MPI. Replace all
-# required paths (given in <>) by the respective paths valid on your host.
-# Also replace <hi> by your host identifier (see above) in each line!
-# Compilernames, cpp-options and compiler-options are assuming
-# an Intel-Compiler and mpich2 on this host! Please change
-# appropriately, if you are using a different compiler / MPI-Version.
-#
-# HLRN-III Hannover
-%tmp_user_catalog    /gfs2/tmp/<replace_by_your_HLRN-III_username>      lccrayh parallel
-%tmp_data_catalog    /gfs2/work/<replace_by_your_HLRN-III_username>/palm_restart_data     lccrayh parallel
-%compiler_name       ftn                                                lccrayh parallel
-%compiler_name_ser   ftn                                                lccrayh parallel
-%cpp_options         -e:Z:-DMPI_REAL=MPI_DOUBLE_PRECISION:-DMPI_2REAL=MPI_2DOUBLE_PRECISION:-D__netcdf:-D__netcdf4:-D__netcdf4_parallel:-D__fftw   lccrayh parallel
-%mopts               -j:4                                               lccrayh parallel
-%fopts               -em:-K:trap=fp:-O3:-hnoomp:-hnoacc:-hfp3:-hdynamic           lccrayh parallel
-%lopts               -em:-K:trap=fp:-O3:-hnoomp:-hnoacc:-hfp3:-hdynamic:-dynamic  lccrayh parallel
-%remote_username     <replace_by_your_HLRN-III_username>                lccrayh parallel
-%memory              2300                                               lccrayh parallel
-%modules             fftw:cray-hdf5-parallel:cray-netcdf-hdf5parallel   lccrayh parallel
-%login_init_cmd      module:unload:cray-netcdf                          lccrayh parallel
-#
-# HLRN-III Hannover debug/trace mode
-%tmp_user_catalog    /gfs2/tmp/<replace_by_your_HLRN-III_username>      lccrayh parallel trace
-%tmp_data_catalog    /gfs2/work/<replace_by_your_HLRN-III_username>/palm_restart_data     lccrayh parallel trace
-%compiler_name       ftn                                                lccrayh parallel trace
-%compiler_name_ser   ftn                                                lccrayh parallel trace
-%cpp_options         -e:Z:-DMPI_REAL=MPI_DOUBLE_PRECISION:-DMPI_2REAL=MPI_2DOUBLE_PRECISION:-D__netcdf:-D__netcdf4:-D__netcdf4_parallel:-D__fftw   lccrayh parallel trace
-%mopts               -j:4                                               lccrayh parallel trace
-%fopts               -eD:-em:-g:-R:b:-K:trap=fp:-O0:-hnoomp:-hnoacc     lccrayh parallel trace
-%lopts               -eD:-em:-g:-R:b:-K:trap=fp:-O0:-hnoomp:-hnoacc     lccrayh parallel trace
-%remote_username     <replace_by_your_HLRN-III_username>                lccrayh parallel trace
-%memory              2300                                               lccrayh parallel trace
-%modules             fftw:cray-hdf5-parallel:cray-netcdf-hdf5parallel   lccrayh parallel trace
-%login_init_cmd      module:unload:cray-netcdf                          lccrayh parallel trace
-#
-# HLRN-III Hannover haswell
-%tmp_user_catalog    /gfs2/tmp/<replace_by_your_HLRN-III_username>      lccrayh parallel has
-%tmp_data_catalog    /gfs2/work/<replace_by_your_HLRN-III_username>/palm_restart_data     lccrayh parallel has
-%compiler_name       ftn                                                lccrayh parallel has
-%compiler_name_ser   ftn                                                lccrayh parallel has
-%cpp_options         -e:Z:-DMPI_REAL=MPI_DOUBLE_PRECISION:-DMPI_2REAL=MPI_2DOUBLE_PRECISION:-D__netcdf:-D__netcdf4:-D__netcdf4_parallel:-D__fftw   lccrayh parallel has
-%feature             mpp2                                               lccrayh parallel has
-%mopts               -j:4                                               lccrayh parallel has
-%fopts               -em:-K:trap=fp:-O3:-hnoomp:-hnoacc:-hfp3:-hdynamic lccrayh parallel has
-%lopts               -em:-K:trap=fp:-O3:-hnoomp:-hnoacc:-hfp3:-hdynamic:-dynamic   lccrayh parallel has
-%remote_username     <replace_by_your_HLRN-III_username>                lccrayh parallel has
-%memory              2300                                               lccrayh parallel has
-%modules             fftw:cray-hdf5-parallel:cray-netcdf-hdf5parallel:craype-haswell   lccrayh parallel has
-%login_init_cmd      module:unload:cray-netcdf:craype-ivybridge         lccrayh parallel has
-#
-# HLRN-III Berlin
-%tmp_user_catalog    /gfs2/tmp/<replace_by_your_HLRN-III_username>      lccrayb parallel
-%tmp_data_catalog    /gfs2/work/<replace_by_your_HLRN-III_username>/palm_restart_data     lccrayb parallel
-%compiler_name       ftn                                                lccrayb parallel
-%compiler_name_ser   ftn                                                lccrayb parallel
-%cpp_options         -e:Z:-DMPI_REAL=MPI_DOUBLE_PRECISION:-DMPI_2REAL=MPI_2DOUBLE_PRECISION:-D__netcdf:-D__netcdf4:-D__netcdf4_parallel:-D__fftw   lccrayb parallel
-%mopts               -j:4                                               lccrayb parallel
-%fopts               -em:-K:trap=fp:-O3:-hnoomp:-hnoacc:-hfp3:-hdynamic           lccrayb parallel
-%lopts               -em:-K:trap=fp:-O3:-hnoomp:-hnoacc:-hfp3:-hdynamic:-dynamic  lccrayb parallel
-%remote_username     <replace_by_your_HLRN-III_username>                lccrayb parallel
-%memory              2300                                               lccrayb parallel
-%modules             fftw:cray-hdf5-parallel:cray-netcdf-hdf5parallel   lccrayb parallel
-%login_init_cmd      module:unload:cray-netcdf                          lccrayb parallel
-#
-# HLRN-III Berlin debug/trace mode
-%tmp_user_catalog    /gfs2/tmp/<replace_by_your_HLRN-III_username>      lccrayb parallel trace
-%tmp_data_catalog    /gfs2/work/<replace_by_your_HLRN-III_username>/palm_restart_data     lccrayb parallel trace
-%compiler_name       ftn                                                lccrayb parallel trace
-%compiler_name_ser   ftn                                                lccrayb parallel trace
-%cpp_options         -e:Z:-DMPI_REAL=MPI_DOUBLE_PRECISION:-DMPI_2REAL=MPI_2DOUBLE_PRECISION:-D__netcdf:-D__netcdf4:-D__netcdf4_parallel:-D__fftw   lccrayb parallel trace
-%mopts               -j:4                                               lccrayb parallel trace
-%fopts               -eD:-em:-g:-R:b:-K:trap=fp:-O0:-hnoomp:-hnoacc     lccrayb parallel trace
-%lopts               -eD:-em:-g:-R:b:-K:trap=fp:-O0:-hnoomp:-hnoacc     lccrayb parallel trace
-%remote_username     <replace_by_your_HLRN-III_username>                lccrayb parallel trace
-%memory              2300                                               lccrayb parallel trace
-%modules             fftw:cray-hdf5-parallel:cray-netcdf-hdf5parallel   lccrayb parallel trace
-%login_init_cmd      module:unload:cray-netcdf                          lccrayb parallel trace
-#
-%write_binary        true                             restart
-#
-#----------------------------------------------------------------------------
-# INPUT-commands, executed before running PALM - lines must start with "IC:"
-#----------------------------------------------------------------------------
-#IC:
-IC:[[ \$localhost = lccrayb ]]  &&  export ATP_ENABLED=1
-IC:[[ \$localhost = lccrayb ]]  &&  export MPICH_GNI_BTE_MULTI_CHANNEL=disabled
-#IC:[[ \$localhost = lccrayb ]]  &&  export APRUN_XFER_LIMITS=1
-#IC:[[ \$localhost = lccrayb ]]  &&  export APRUN_XFER_STACK_LIMIT=0
-#IC:[[ \$localhost = lccrayb ]]  &&  ulimit -v unlimited
-#IC:[[ \$localhost = lccrayb ]]  &&  ulimit -s unlimited
-#IC:[[ \$localhost = lccrayb ]]  &&  export MPICH_MPIIO_HINTS_DISPLAY=1
-#IC:[[ \$localhost = lccrayb ]]  &&  export MPICH_MPIIO_STATS=1
-#IC:[[ \$localhost = lccrayb ]]  &&  E8="=8"
-#IC:[[ \$localhost = lccrayb ]]  &&  export MPICH_MPIIO_HINTS="*DATA_**:striping_factor"\$E8
-IC:[[ \$localhost = lccrayh ]]  &&  export ATP_ENABLED=1
-IC:[[ \$localhost = lccrayh ]]  &&  export MPICH_GNI_BTE_MULTI_CHANNEL=disabled
-#IC:[[ \$localhost = lccrayh ]]  &&  export APRUN_XFER_LIMITS=1
-#IC:[[ \$localhost = lccrayh ]]  &&  export APRUN_XFER_STACK_LIMIT=0
-#IC:[[ \$localhost = lccrayh ]]  &&  ulimit -v unlimited
-#IC:[[ \$localhost = lccrayh ]]  &&  ulimit -s unlimited
-#IC:[[ \$localhost = lccrayh ]]  &&  export MPICH_MPIIO_HINTS_DISPLAY=1
-#IC:[[ \$localhost = lccrayh ]]  &&  export MPICH_MPIIO_STATS=1
-#IC:[[ \$localhost = lccrayh ]]  &&  E8="=8"
-#IC:[[ \$localhost = lccrayh ]]  &&  export MPICH_MPIIO_HINTS="*DATA_**:striping_factor"\$E8
-#
-#----------------------------------------------------------------------------
-# ERROR-commands - executed when program terminates abnormally
-#----------------------------------------------------------------------------
-EC:[[ \$locat = execution ]]  &&  cat  RUN_CONTROL
-#
-#----------------------------------------------------------------------------
-# OUTPUT-commands - executed when program terminates normally
-#----------------------------------------------------------------------------
-#
-# Combine 1D- and 3D-profile output (these files are not usable for plotting)
-OC:[[ -f LIST_PROFIL_1D     ]]  &&  cat  LIST_PROFIL_1D  >>  LIST_PROFILE
-OC:[[ -f LIST_PROFIL        ]]  &&  cat  LIST_PROFIL     >>  LIST_PROFILE
-#
-# Combine all particle information files
-OC:[[ -f PARTICLE_INFOS/_0000 ]]  &&  cat  PARTICLE_INFOS/* >> PARTICLE_INFO
-#
-#----------------------------------------------------------------------------
-# List of input-files
-#----------------------------------------------------------------------------
-PARIN                    in:job        d3#      $base_data/$fname/INPUT    _p3d
-PARIN                    in:job        d3f      $base_data/$fname/INPUT    _p3df
-TOPOGRAPHY_DATA          in:locopt     d3#:d3f  $base_data/$fname/INPUT    _topo
-TOPOGRAPHY_DATA_NC       in:locopt     d3#:d3f  $base_data/$fname/INPUT    _topo_nc
-NUDGING_DATA             in:locopt     d3#:d3f  $base_data/$fname/INPUT    _nudge
-LSF_DATA                 in:locopt     d3#:d3f  $base_data/$fname/INPUT    _lsf
-WTM_DATA                 in:locopt     d3#:d3f  $base_data/$fname/INPUT    _wtm
-STG_PROFILES             in:locopt     d3#:d3f  $base_data/$fname/INPUT    _stgpr
-BININ                    in:loc:lnpe   d3f:cycfill  $tmp_data_catalog/$fname/RESTART  _d3d
-PARTICLE_RESTART_DATA_IN in:loc:lnpe   prtf     $tmp_data_catalog/$fname/RESTART  _rprt
-DATA_1D_FL_NETCDF        in:locopt     flf      $base_data/$fname/OUTPUT   _fl     nc
-DATA_1D_PR_NETCDF        in:locopt     prf      $base_data/$fname/OUTPUT   _pr     nc
-DATA_1D_SP_NETCDF        in:locopt     spf      $base_data/$fname/OUTPUT   _sp     nc
-DATA_1D_TS_NETCDF        in:locopt     tsf      $base_data/$fname/OUTPUT   _ts     nc
-DATA_1D_PTS_NETCDF       in:locopt     ptsf     $base_data/$fname/OUTPUT   _pts    nc
-DATA_2D_XY_NETCDF        in:locopt     xyf      $base_data/$fname/OUTPUT   _xy     nc
-DATA_2D_XY_AV_NETCDF     in:locopt     xyf      $base_data/$fname/OUTPUT   _xy_av  nc
-DATA_2D_XZ_NETCDF        in:locopt     xzf      $base_data/$fname/OUTPUT   _xz     nc
-DATA_2D_YZ_NETCDF        in:locopt     yzf      $base_data/$fname/OUTPUT   _yz     nc
-DATA_3D_NETCDF           in:locopt     3df      $base_data/$fname/OUTPUT   _3d     nc
-DATA_PRT_NETCDF          in:locopt:pe  prtf     $base_data/$fname/OUTPUT   _prt
-#
-#----------------------------------------------------------------------------
-# List of output-files
-#----------------------------------------------------------------------------
-BINOUT                    out:loc:lnpe restart   $tmp_data_catalog/$fname/RESTART  _d3d
-PARTICLE_RESTART_DATA_OUT out:loc:lnpe prt#:prtf $tmp_data_catalog/$fname/RESTART  _rprt
-#
-RUN_CONTROL       out:loc:tr   d3#     $base_data/$fname/MONITORING  _rc
-RUN_CONTROL       out:loc:tra  d3f     $base_data/$fname/MONITORING  _rc
-HEADER            out:loc:tr   d3#     $base_data/$fname/MONITORING  _header
-HEADER            out:loc:tra  d3f     $base_data/$fname/MONITORING  _header
-CPU_MEASURES      out:loc:tr   d3#     $base_data/$fname/MONITORING  _cpu
-CPU_MEASURES      out:loc:tra  d3f     $base_data/$fname/MONITORING  _cpu
-TURBINE_PARAMETERS01  out:loc:tr  d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters01
-TURBINE_PARAMETERS02  out:loc:tr  d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters02
-TURBINE_PARAMETERS03  out:loc:tr  d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters03
-TURBINE_PARAMETERS04  out:loc:tr  d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters04
-#
-DATA_1D_FL_NETCDF    out:loc:tr   fl#:flf   $base_data/$fname/OUTPUT  _fl      nc
-DATA_1D_PR_NETCDF    out:loc:tr   pr#:prf   $base_data/$fname/OUTPUT  _pr      nc
-DATA_1D_SP_NETCDF    out:loc:tr   sp#:spf   $base_data/$fname/OUTPUT  _sp      nc
-DATA_1D_TS_NETCDF    out:loc:tr   ts#:tsf   $base_data/$fname/OUTPUT  _ts      nc
-DATA_1D_PTS_NETCDF   out:loc:tr   pts#:ptsf $base_data/$fname/OUTPUT  _pts     nc
-DATA_2D_XY_NETCDF    out:loc:tr   xy#:xyf   $base_data/$fname/OUTPUT  _xy      nc
-DATA_2D_XY_AV_NETCDF out:loc:tr   xy#:xyf   $base_data/$fname/OUTPUT  _xy_av   nc
-DATA_2D_XZ_NETCDF    out:loc:tr   xz#:xzf   $base_data/$fname/OUTPUT  _xz      nc
-DATA_2D_XZ_AV_NETCDF out:loc:tr   xz#:xzf   $base_data/$fname/OUTPUT  _xz_av   nc
-DATA_2D_YZ_NETCDF    out:loc:tr   yz#:yzf   $base_data/$fname/OUTPUT  _yz      nc
-DATA_2D_YZ_AV_NETCDF out:loc:tr   yz#:yzf   $base_data/$fname/OUTPUT  _yz_av   nc
-DATA_3D_NETCDF       out:loc:tr   3d#:3df   $base_data/$fname/OUTPUT  _3d      nc
-DATA_3D_AV_NETCDF    out:loc:tr   3d#:3df   $base_data/$fname/OUTPUT  _3d_av   nc
-DATA_MASK_01_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m01     nc
-DATA_MASK_01_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m01_av  nc
-DATA_MASK_02_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m02     nc
-DATA_MASK_02_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m02_av  nc
-DATA_MASK_03_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m03     nc
-DATA_MASK_03_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m03_av  nc
-DATA_MASK_04_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m04     nc
-DATA_MASK_04_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m04_av  nc
-DATA_MASK_05_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m05     nc
-DATA_MASK_05_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m05_av  nc
-DATA_MASK_06_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m06     nc
-DATA_MASK_06_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m06_av  nc
-DATA_MASK_07_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m07     nc
-DATA_MASK_07_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m07_av  nc
-DATA_MASK_08_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m08     nc
-DATA_MASK_08_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m08_av  nc
-DATA_MASK_09_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m09     nc
-DATA_MASK_09_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m09_av  nc
-DATA_MASK_10_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m10     nc
-DATA_MASK_10_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m10_av  nc
-DATA_MASK_11_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m11     nc
-DATA_MASK_11_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m11_av  nc
-DATA_MASK_12_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m12     nc
-DATA_MASK_12_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m12_av  nc
-DATA_MASK_13_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m13     nc
-DATA_MASK_13_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m13_av  nc
-DATA_MASK_14_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m14     nc
-DATA_MASK_14_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m14_av  nc
-DATA_MASK_15_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m15     nc
-DATA_MASK_15_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m15_av  nc
-DATA_MASK_16_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m16     nc
-DATA_MASK_16_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m16_av  nc
-DATA_MASK_17_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m17     nc
-DATA_MASK_17_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m17_av  nc
-DATA_MASK_18_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m18     nc
-DATA_MASK_18_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m18_av  nc
-DATA_MASK_19_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m19     nc
-DATA_MASK_19_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m19_av  nc
-DATA_MASK_20_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m20     nc
-DATA_MASK_20_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m20_av  nc
-DATA_PRT_NETCDF      out:loc:pe   prt#:prtf $base_data/$fname/OUTPUT  _prt     nc
-DATA_PRT_NETCDF      out:loc:trpe prt#:prtf $base_data/$fname/OUTPUT  _prt     nc
-DATA_DVR             out:loc:trpe dvr       $base_data/$fname/OUTPUT  _dvr
-#
-DVRP_LOG          out:loc:tr   dv#       $base_data/$fname/MONITORING  _dvrp_log
-DVRP_LOG          out:loc:tra  dvf       $base_data/$fname/MONITORING  _dvrp_log
-PARTICLE_INFO     out:loc:tr   pt#       $base_data/$fname/MONITORING  _prt_info
-PARTICLE_INFO     out:loc:tra  ptf       $base_data/$fname/MONITORING  _prt_info
-PARTICLE_DATA     out:loc:lnpe prt#:prtf $tmp_data_catalog/$fname/OUTPUT      _prt_dat
-# A BLANK LINE MUST FOLLOW
Index: palm/trunk/SCRIPTS/.mrun.config.ibmh
===================================================================
--- palm/trunk/SCRIPTS/.mrun.config.ibmh	(revision 2693)
+++ 	(revision )
@@ -1,182 +1,0 @@
-#$Id$
-#column 1          column 2                                   column 3
-#name of variable  value of variable (~ must not be used)     scope
-#----------------------------------------------------------------------------
-%mainprog          palm.f90
-%base_directory    $HOME/palm/current_version
-%base_data         ~/palm/current_version/JOBS
-%source_path       $base_directory/trunk/SOURCE
-%add_source_path   $base_directory/USER_CODE/$fname
-%depository_path   $base_directory/MAKE_DEPOSITORY
-
-%host_identifier   blizzard1   ibmh
-%host_identifier   p0*         ibmh
-%host_identifier   p1*         ibmh
-%host_identifier   p2*         ibmh
-#
-# IBM at DKRZ in Hamburg
-%compiler_name     mpxlf95_r                                  ibmh parallel
-%compiler_name_ser xlf95                                      ibmh parallel
-%cpp_options       -qsuffix=cpp=f90:-WF,-DMPI_REAL=MPI_DOUBLE_PRECISION,-D__netcdf=__netcdf,-D__netcdf_64bit=__netcdf_64bit,-D__fftw=__fftw ibmh parallel
-%fftw_inc          -I:/sw/aix61/fftw-3.3.3/include            ibmh parallel
-%fftw_lib          -L/sw/aix61/fftw-3.3.3/lib:-lfftw3         ibmh parallel
-%netcdf_inc        -I:/sw/aix53/netcdf-3.6.3-ibm/include      ibmh parallel
-%netcdf_lib        -L/sw/aix53/netcdf-3.6.3-ibm/lib:-lnetcdf  ibmh parallel
-%fopts             -O3:-g:-qfloat=nomaf:-Q:-q64:-qmaxmem=-1:-qtune=pwr6:-qarch=pwr6:-qnosave:-qnoescape    ibmh parallel
-%lopts             -O3:-g:-qfloat=nomaf:-Q:-q64:-qmaxmem=-1:-qtune=pwr6:-qarch=pwr6:-qnosave:-qnoescape:-lesslsmp   ibmh parallel
-%memory            1500                                       ibmh parallel
-%cpumax            1000                                       ibmh parallel
-%remote_username   <replace_by_username_on_ibmh>              ibmh parallel
-%tmp_data_catalog  /work/<replace_by_project>/$remote_username/palm_restart_data    ibmh parallel
-%tmp_user_catalog  /work/<replace_by_project>/$remote_username                      ibmh parallel
-%output_data       /work/<replace_by_project>/$remote_username/$fname/OUTPUT        ibmh parallel
-#
-#
-# IBM at DKRZ in Hamburg with debug options
-%compiler_name     mpxlf95_r                                  ibmh parallel trace
-%compiler_name_ser xlf95                                      ibmh parallel trace
-%cpp_options       -qsuffix=cpp=f90:-WF,-DMPI_REAL=MPI_DOUBLE_PRECISION,-D__netcdf=__netcdf,-D__netcdf_64bit=__netcdf_64bit,-D__fftw=__fftw  ibmh parallel trace
-%fftw_inc          -I:/sw/aix61/fftw-3.3.3/include            ibmh parallel trace
-%fftw_lib          -L/sw/aix61/fftw-3.3.3/lib:-lfftw3         ibmh parallel trace
-%netcdf_inc        -I:/sw/aix53/netcdf-3.6.3-ibm/include      ibmh parallel trace
-%netcdf_lib        -L/sw/aix53/netcdf-3.6.3-ibm/lib:-lnetcdf  ibmh parallel trace
-%fopts             -qnoopt:-g:-C:-qinitauto=FFFFFFFF:-Q:-q64:-qmaxmem=-1:-qnosave:-qnoescape:-qflttrap=overflow::zerodivide::invalid::enable:-qsigtrap    ibmh parallel trace
-%lopts             -qnoopt:-g:-C:-qinitauto=FFFFFFFF:-Q:-q64:-qmaxmem=-1:-qnosave:-qnoescape:-qflttrap=overflow::zerodivide::invalid::enable:-qsigtrap:-lesslsmp  ibmh parallel trace
-%memory            1500                                       ibmh parallel trace
-%cpumax            1000                                       ibmh parallel trace
-%remote_username   b380021                                    ibmh parallel trace
-%remote_username   <replace_by_username_on_ibmh>              ibmh parallel trace
-%tmp_data_catalog  /work/<replace_by_project>/$remote_username/palm_restart_data    ibmh parallel trace
-%tmp_user_catalog  /work/<replace_by_project>/$remote_username                      ibmh parallel trace
-%output_data       /work/<replace_by_project>/$remote_username/$fname/OUTPUT        ibmh parallel trace
-#
-#
-%write_binary                true                             restart
-#
-#----------------------------------------------------------------------------
-# INPUT-commands, executed before running PALM - lines must start with "IC:"
-#----------------------------------------------------------------------------
-#IC:
-#
-#----------------------------------------------------------------------------
-# ERROR-commands - executed when program terminates abnormally
-#----------------------------------------------------------------------------
-EC:[[ \$locat = execution ]]  &&  cat  RUN_CONTROL
-EC:pwd; ls -al
-#
-#----------------------------------------------------------------------------
-# OUTPUT-commands - executed when program terminates normally
-#----------------------------------------------------------------------------
-#
-# Combine 1D- and 3D-profile output (these files are not usable for plotting)
-OC:[[ -f LIST_PROFIL_1D     ]]  &&  cat  LIST_PROFIL_1D  >>  LIST_PROFILE
-OC:[[ -f LIST_PROFIL        ]]  &&  cat  LIST_PROFIL     >>  LIST_PROFILE
-#
-# Combine all particle information files
-OC:[[ -f PARTICLE_INFOS/_0000 ]]  &&  cat  PARTICLE_INFOS/* >> PARTICLE_INFO
-#
-#----------------------------------------------------------------------------
-# List of input-files
-#----------------------------------------------------------------------------
-PARIN                    in:job        d3#      $base_data/$fname/INPUT    _p3d
-PARIN                    in:job        d3f      $base_data/$fname/INPUT    _p3df
-TOPOGRAPHY_DATA          in:locopt     d3#:d3f  $base_data/$fname/INPUT    _topo
-TOPOGRAPHY_DATA_NC       in:locopt     d3#:d3f  $base_data/$fname/INPUT    _topo_nc
-NUDGING_DATA             in:locopt     d3#:d3f  $base_data/$fname/INPUT    _nudge
-LSF_DATA                 in:locopt     d3#:d3f  $base_data/$fname/INPUT    _lsf
-WTM_DATA                 in:locopt     d3#:d3f  $base_data/$fname/INPUT    _wtm
-STG_PROFILES             in:locopt     d3#:d3f  $base_data/$fname/INPUT    _stgpr
-BININ                    in:loc:lnpe   d3f      $tmp_data_catalog/$fname/RESTART  _d3d
-PARTICLE_RESTART_DATA_IN in:loc:lnpe   prtf     $tmp_data_catalog/$fname/RESTART  _rprt
-DATA_1D_FL_NETCDF        in:locopt     flf      $output_data   _fl     nc
-DATA_1D_PR_NETCDF        in:locopt     prf      $output_data   _pr     nc
-DATA_1D_SP_NETCDF        in:locopt     spf      $output_data   _sp     nc
-DATA_1D_TS_NETCDF        in:locopt     tsf      $output_data   _ts     nc
-DATA_1D_PTS_NETCDF       in:locopt     ptsf     $output_data   _pts    nc
-DATA_2D_XY_NETCDF        in:locopt     xyf      $output_data   _xy     nc
-DATA_2D_XY_AV_NETCDF     in:locopt     xyf      $output_data   _xy_av  nc
-DATA_2D_XZ_NETCDF        in:locopt     xzf      $output_data   _xz     nc
-DATA_2D_YZ_NETCDF        in:locopt     yzf      $output_data   _yz     nc
-DATA_3D_NETCDF           in:locopt     3df      $output_data   _3d     nc
-DATA_PRT_NETCDF          in:locopt:pe  prtf     $output_data  _prt
-#
-#----------------------------------------------------------------------------
-# List of output-files
-#----------------------------------------------------------------------------
-BINOUT                    out:loc:lnpe restart   $tmp_data_catalog/$fname/RESTART  _d3d
-PARTICLE_RESTART_DATA_OUT out:loc:lnpe prt#:prtf $tmp_data_catalog/$fname/RESTART  _rprt
-#
-RUN_CONTROL       out:loc:tr   d3#     $base_data/$fname/MONITORING  _rc
-RUN_CONTROL       out:loc:tra  d3f     $base_data/$fname/MONITORING  _rc
-HEADER            out:loc:tr   d3#     $base_data/$fname/MONITORING  _header
-HEADER            out:loc:tra  d3f     $base_data/$fname/MONITORING  _header
-CPU_MEASURES      out:loc:tr   d3#     $base_data/$fname/MONITORING  _cpu
-CPU_MEASURES      out:loc:tra  d3f     $base_data/$fname/MONITORING  _cpu
-TURBINE_PARAMETERS01  out:loc:tr  d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters01
-TURBINE_PARAMETERS02  out:loc:tr  d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters02
-TURBINE_PARAMETERS03  out:loc:tr  d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters03
-TURBINE_PARAMETERS04  out:loc:tr  d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters04
-#
-DATA_1D_FL_NETCDF    out:loc:tr   fl#:flf   $base_data/$fname/OUTPUT    _fl     nc
-DATA_1D_PR_NETCDF    out:loc:tr   pr#:prf   $output_data/$fname/OUTPUT  _pr     nc
-DATA_1D_SP_NETCDF    out:loc:tr   sp#:spf   $output_data/$fname/OUTPUT  _sp     nc
-DATA_1D_TS_NETCDF    out:loc:tr   ts#:tsf   $output_data/$fname/OUTPUT  _ts     nc
-DATA_1D_PTS_NETCDF   out:loc:tr   pts#:ptsf $output_data/$fname/OUTPUT  _pts    nc
-DATA_2D_XY_NETCDF    out:loc:tr   xy#:xyf   $output_data/$fname/OUTPUT  _xy     nc
-DATA_2D_XY_AV_NETCDF out:loc:tr   xy#:xyf   $output_data/$fname/OUTPUT  _xy_av  nc
-DATA_2D_XZ_NETCDF    out:loc:tr   xz#:xzf   $output_data/$fname/OUTPUT  _xz     nc
-DATA_2D_XZ_AV_NETCDF out:loc:tr   xz#:xzf   $output_data/$fname/OUTPUT  _xz_av  nc
-DATA_2D_YZ_NETCDF    out:loc:tr   yz#:yzf   $output_data/$fname/OUTPUT  _yz     nc
-DATA_2D_YZ_AV_NETCDF out:loc:tr   yz#:yzf   $output_data/$fname/OUTPUT  _yz_av  nc
-DATA_3D_NETCDF       out:loc:tr   3d#:3df   $output_data/$fname/OUTPUT  _3d     nc
-DATA_3D_AV_NETCDF    out:loc:tr   3d#:3df   $output_data/$fname/OUTPUT  _3d_av  nc
-DATA_MASK_01_NETCDF    out:loc:tr ma#:maf   $output_data/$fname/OUTPUT  _m01     nc
-DATA_MASK_01_AV_NETCDF out:loc:tr ma#:maf   $output_data/$fname/OUTPUT  _m01_av  nc
-DATA_MASK_02_NETCDF    out:loc:tr ma#:maf   $output_data/$fname/OUTPUT  _m02     nc
-DATA_MASK_02_AV_NETCDF out:loc:tr ma#:maf   $output_data/$fname/OUTPUT  _m02_av  nc
-DATA_MASK_03_NETCDF    out:loc:tr ma#:maf   $output_data/$fname/OUTPUT  _m03     nc
-DATA_MASK_03_AV_NETCDF out:loc:tr ma#:maf   $output_data/$fname/OUTPUT  _m03_av  nc
-DATA_MASK_04_NETCDF    out:loc:tr ma#:maf   $output_data/$fname/OUTPUT  _m04     nc
-DATA_MASK_04_AV_NETCDF out:loc:tr ma#:maf   $output_data/$fname/OUTPUT  _m04_av  nc
-DATA_MASK_05_NETCDF    out:loc:tr ma#:maf   $output_data/$fname/OUTPUT  _m05     nc
-DATA_MASK_05_AV_NETCDF out:loc:tr ma#:maf   $output_data/$fname/OUTPUT  _m05_av  nc
-DATA_MASK_06_NETCDF    out:loc:tr ma#:maf   $output_data/$fname/OUTPUT  _m06     nc
-DATA_MASK_06_AV_NETCDF out:loc:tr ma#:maf   $output_data/$fname/OUTPUT  _m06_av  nc
-DATA_MASK_07_NETCDF    out:loc:tr ma#:maf   $output_data/$fname/OUTPUT  _m07     nc
-DATA_MASK_07_AV_NETCDF out:loc:tr ma#:maf   $output_data/$fname/OUTPUT  _m07_av  nc
-DATA_MASK_08_NETCDF    out:loc:tr ma#:maf   $output_data/$fname/OUTPUT  _m08     nc
-DATA_MASK_08_AV_NETCDF out:loc:tr ma#:maf   $output_data/$fname/OUTPUT  _m08_av  nc
-DATA_MASK_09_NETCDF    out:loc:tr ma#:maf   $output_data/$fname/OUTPUT  _m09     nc
-DATA_MASK_09_AV_NETCDF out:loc:tr ma#:maf   $output_data/$fname/OUTPUT  _m09_av  nc
-DATA_MASK_10_NETCDF    out:loc:tr ma#:maf   $output_data/$fname/OUTPUT  _m10     nc
-DATA_MASK_10_AV_NETCDF out:loc:tr ma#:maf   $output_data/$fname/OUTPUT  _m10_av  nc
-DATA_MASK_11_NETCDF    out:loc:tr ma#:maf   $output_data/$fname/OUTPUT  _m11     nc
-DATA_MASK_11_AV_NETCDF out:loc:tr ma#:maf   $output_data/$fname/OUTPUT  _m11_av  nc
-DATA_MASK_12_NETCDF    out:loc:tr ma#:maf   $output_data/$fname/OUTPUT  _m12     nc
-DATA_MASK_12_AV_NETCDF out:loc:tr ma#:maf   $output_data/$fname/OUTPUT  _m12_av  nc
-DATA_MASK_13_NETCDF    out:loc:tr ma#:maf   $output_data/$fname/OUTPUT  _m13     nc
-DATA_MASK_13_AV_NETCDF out:loc:tr ma#:maf   $output_data/$fname/OUTPUT  _m13_av  nc
-DATA_MASK_14_NETCDF    out:loc:tr ma#:maf   $output_data/$fname/OUTPUT  _m14     nc
-DATA_MASK_14_AV_NETCDF out:loc:tr ma#:maf   $output_data/$fname/OUTPUT  _m14_av  nc
-DATA_MASK_15_NETCDF    out:loc:tr ma#:maf   $output_data/$fname/OUTPUT  _m15     nc
-DATA_MASK_15_AV_NETCDF out:loc:tr ma#:maf   $output_data/$fname/OUTPUT  _m15_av  nc
-DATA_MASK_16_NETCDF    out:loc:tr ma#:maf   $output_data/$fname/OUTPUT  _m16     nc
-DATA_MASK_16_AV_NETCDF out:loc:tr ma#:maf   $output_data/$fname/OUTPUT  _m16_av  nc
-DATA_MASK_17_NETCDF    out:loc:tr ma#:maf   $output_data/$fname/OUTPUT  _m17     nc
-DATA_MASK_17_AV_NETCDF out:loc:tr ma#:maf   $output_data/$fname/OUTPUT  _m17_av  nc
-DATA_MASK_18_NETCDF    out:loc:tr ma#:maf   $output_data/$fname/OUTPUT  _m18     nc
-DATA_MASK_18_AV_NETCDF out:loc:tr ma#:maf   $output_data/$fname/OUTPUT  _m18_av  nc
-DATA_MASK_19_NETCDF    out:loc:tr ma#:maf   $output_data/$fname/OUTPUT  _m19     nc
-DATA_MASK_19_AV_NETCDF out:loc:tr ma#:maf   $output_data/$fname/OUTPUT  _m19_av  nc
-DATA_MASK_20_NETCDF    out:loc:tr ma#:maf   $output_data/$fname/OUTPUT  _m20     nc
-DATA_MASK_20_AV_NETCDF out:loc:tr ma#:maf   $output_data/$fname/OUTPUT  _m20_av  nc
-DATA_PRT_NETCDF      out:loc:pe   prt#:prtf $output_data/$fname/OUTPUT  _prt    nc
-DATA_PRT_NETCDF      out:loc:trpe prt#:prtf $output_data/$fname/OUTPUT  _prt    nc
-DATA_DVR             out:loc:trpe dvr       $output_data/$fname/OUTPUT  _dvr
-#
-DVRP_LOG          out:loc:tr   dv#       $base_data/$fname/MONITORING  _dvrp_log
-DVRP_LOG          out:loc:tra  dvf       $base_data/$fname/MONITORING  _dvrp_log
-PARTICLE_INFO     out:loc:tr   pt#       $base_data/$fname/MONITORING  _prt_info
-PARTICLE_INFO     out:loc:tra  ptf       $base_data/$fname/MONITORING  _prt_info
-PARTICLE_DATA     out:loc:lnpe prt#:prtf $output_data/$fname/OUTPUT      _prt_dat
-# A BLANK LINE MUST FOLLOW
Index: palm/trunk/SCRIPTS/.mrun.config.idefix
===================================================================
--- palm/trunk/SCRIPTS/.mrun.config.idefix	(revision 2693)
+++ 	(revision )
@@ -1,184 +1,0 @@
-#$Id$
-#column 1          column 2                                   column 3
-#name of variable  value of variable (~ must not be used)     scope
-#----------------------------------------------------------------------------
-%mainprog          palm.f90
-%base_directory    $HOME/palm/current_version
-%base_data         $base_directory/JOBS
-%input_path        $base_directory/JOBS/$fname/INPUT
-%output_path       $base_directory/JOBS/$fname/OUTPUT
-%monitoring_path   $base_directory/JOBS/$fname/MONITORING
-%source_path       $base_directory/trunk/SOURCE
-%add_source_path   $base_directory/USER_CODE/$fname
-%tmp_user_catalog  /work/<replace_by_your_IDEFIX_username>
-%tmp_data_catalog  /work/<replace_by_your_IDEFIX_username>
-%depository_path   $base_directory/MAKE_DEPOSITORY
-%use_makefile      true
-#
-# Enter your own host below by adding another line containing in the second
-# column your hostname (as provided by the unix command "hostname") and in the
-# third column the host identifier. Depending on your operating system, the
-# first characters of the host identifier should be "lc" (Linux cluster), "ibm"
-# (IBM-AIX), or "nec" (NEC-SX), respectively.
-%host_identifier   idefix*        lcidefix
-
-
-#IDEFIX normal mode
-%remote_username   <replace_by_your_IDEFIX_username>                            lcidefix parallel
-%compiler_name     mpif90                                                       lcidefix parallel
-%compiler_name_ser ifort                                                        lcidefix parallel
-%cpp_options       -cpp:-DMPI_REAL=MPI_DOUBLE_PRECISION:-DMPI_2REAL=MPI_2DOUBLE_PRECISION:-D__netcdf:-D__netcdf4:-D__netcdf4_parallel:-D__fftw:-D__intel_compiler            lcidefix parallel
-%netcdf_inc        -I/opt/netcdf4_hdf5parallel/4411c_443f/intel/include         lcidefix parallel
-%netcdf_lib        -L/opt/netcdf4_hdf5parallel/4411c_443f/intel/lib:-L/opt/hdf5-parallel/1.10.0-patch1/intel/lib:-lnetcdf:-lnetcdff        lcidefix parallel
-%fftw_inc          -I:/opt/fftw/3.3.6-pl1/mvapich2-intel/include                lcidefix parallel
-%fftw_lib          -L/opt/fftw/3.3.6-pl1/mvapich2-intel/lib:-lfftw3             lcidefix parallel
-%mopts             -j:4                                                         lcidefix parallel
-%fopts             -fpe0:-O3:-cpp:-fp-model:source:-ftz:-fno-alias:-no-prec-div:-no-prec-sqrt:-ip:-nbs:-diag-disable:8290,8291            lcidefix parallel
-%lopts             -fpe0:-O3:-cpp:-fp-model:source:-ftz:-fno-alias:-no-prec-div:-no-prec-sqrt:-ip:-nbs:-diag-disable:8290,829             lcidefix parallel
-%modules           intel-compiler/2017.1.132:mvapich2/2.2/intel:fftw/3.3.6-pl1/mvapich2-intel:hdf5-parallel/1.10.0-patch1/intel:netcdf4_hdf5parallel/4411c_443f/intel        lcidefix parallel
-
-#IDEFIX trace/debug mode
-%remote_username   <replace_by_your_IDEFIX_username>                            lcidefix parallel trace
-%compiler_name     mpif90                                                       lcidefix parallel trace
-%compiler_name_ser ifort                                                        lcidefix parallel trace
-%cpp_options       -cpp:-DMPI_REAL=MPI_DOUBLE_PRECISION:-DMPI_2REAL=MPI_2DOUBLE_PRECISION:-D__netcdf:-D__netcdf4:-D__netcdf4_parallel:-D__fftw:-D__intel_compiler            lcidefix parallel trace
-%netcdf_inc        -I/opt/netcdf4_hdf5parallel/4411c_443f/intel/include         lcidefix parallel trace
-%netcdf_lib        -L/opt/netcdf4_hdf5parallel/4411c_443f/intel/lib:-L/opt/hdf5-parallel/1.10.0-patch/intel/lib:-lnetcdf:-lnetcdff        lcidefix parallel trace
-%fftw_inc          -I:/opt/fftw/3.3.6-pl1/mvapich2-intel/include                lcidefix parallel trace
-%fftw_lib          -L/opt/fftw/3.3.6-pl1/mvapich2-intel/lib:-lfftw3             lcidefix parallel trace
-%mopts             -j:4                                                         lcidefix parallel trace
-%fopts             -fpe0:-C:-check:nooutput_conversion:-debug:-traceback:-g:-gen-interfaces:-warn:interfaces:-w:-xT:-O0:-ftz:-fno-alias:-no-prec-div:-no-prec-sqrt:-ip:-nbs:-convert:little_endian:-diag-disable:8290,8291            lcidefix parallel trace
-%lopts             -fpe0:-C:-check:nooutput_conversion:-debug:-traceback:-g:-gen-interfaces:-warn:interfaces:-w:-xT:-O0:-ftz:-fno-alias:-no-prec-div:-no-prec-sqrt:-ip:-nbs:-limf:-lm:-Vaxlib            lcidefix parallel trace
-%modules           intel-compiler/2017.1.132:mvapich2/2.2/intel:fftw/3.3.6-pl1/mvapich2-intel:hdf5-parallel/1.10.0-patch/intel:netcdf4_hdf5parallel/4411c_443f/intel        lcidefix parallel trace
-
-#
-%write_binary        true                             restart
-#
-#----------------------------------------------------------------------------
-# INPUT-commands, executed before running PALM - lines must start with "IC:"
-#----------------------------------------------------------------------------
-IC:[[ \$localhost = lcidefix ]]  &&  export MV2_ENABLE_AFFINITY=0
-IC:[[ \$localhost = lcidefix ]]  &&  export MV2_SHOW_CPU_BINDING=1
-IC:[[ \$localhost = lcidefix ]]  &&  export MV2_CPU_BINDING_POLICY=scatter
-#
-#----------------------------------------------------------------------------
-# ERROR-commands - executed when program terminates abnormally
-#----------------------------------------------------------------------------
-EC:[[ \$locat = execution ]]  &&  cat  RUN_CONTROL
-EC:pwd
-#
-#----------------------------------------------------------------------------
-# OUTPUT-commands - executed when program terminates normally
-#----------------------------------------------------------------------------
-#
-# Combine all particle information files
-OC:[[ -f PARTICLE_INFOS/_00000 ]]  &&  cat  PARTICLE_INFOS/* >> PARTICLE_INFO
-#
-#----------------------------------------------------------------------------
-# List of input-files
-#----------------------------------------------------------------------------
-BININ                    in:loc:lnpe   d3f      $tmp_data_catalog/$fname/RESTART  _d3d
-PARTICLE_RESTART_DATA_IN in:loc:lnpe   prtf     $tmp_data_catalog/$fname/RESTART  _rprt
-#
-#
-PARIN                    in:job        d3#      $input_path    _p3d
-PARIN                    in:job        d3f      $input_path    _p3df
-NUDGING_DATA             in:locopt     d3#:d3f  $input_path    _nudge
-LSF_DATA                 in:locopt     d3#:d3f  $input_path    _lsf
-TOPOGRAPHY_DATA          in:locopt     d3#:d3f  $input_path    _topo
-TOPOGRAPHY_DATA_NC       in:locopt     d3#:d3f  $input_path    _topo_nc
-PLANT_CANOPY_DATA_3D     in:locopt     d3#:d3f  $input_path    _canopy
-URBAN_SURFACE            in:locopt     d3#:d3f  $input_path    _urbsurf
-SURFACE_PARAMETERS       in:locopt     d3#:d3f  $input_path    _surfpar
-STG_PROFILES             in:locopt     d3#:d3f  $input_path    _stgpr
-#
-#
-DATA_1D_FL_NETCDF        in:locopt     flf      $output_path   _fl     nc
-DATA_1D_PR_NETCDF        in:locopt     prf      $output_path   _pr     nc
-DATA_1D_SP_NETCDF        in:locopt     spf      $output_path   _sp     nc
-DATA_1D_TS_NETCDF        in:locopt     tsf      $output_path   _ts     nc
-DATA_1D_PTS_NETCDF       in:locopt     ptsf     $output_path   _pts    nc
-DATA_2D_XY_NETCDF        in:locopt     xyf      $output_path   _xy     nc
-DATA_2D_XY_AV_NETCDF     in:locopt     xyf      $output_path   _xy_av  nc
-DATA_2D_XZ_NETCDF        in:locopt     xzf      $output_path   _xz     nc
-DATA_2D_YZ_NETCDF        in:locopt     yzf      $output_path   _yz     nc
-DATA_3D_NETCDF           in:locopt     3df      $output_path   _3d     nc
-DATA_PRT_NETCDF          in:locopt:pe  prtf     $output_path   _prt
-#----------------------------------------------------------------------------
-# List of output-files
-#----------------------------------------------------------------------------
-BINOUT                    out:loc:lnpe restart   $tmp_data_catalog/$fname/RESTART  _d3d
-PARTICLE_RESTART_DATA_OUT out:loc:lnpe prt#:prtf $tmp_data_catalog/$fname/RESTART  _rprt
-#
-#
-RUN_CONTROL       out:loc:tr   d3#     $monitoring_path  _rc
-RUN_CONTROL       out:loc:tra  d3f     $monitoring_path  _rc
-HEADER            out:loc:tr   d3#     $monitoring_path  _header
-HEADER            out:loc:tra  d3f     $monitoring_path  _header
-CPU_MEASURES      out:loc:tr   d3#     $monitoring_path  _cpu
-CPU_MEASURES      out:loc:tra  d3f     $monitoring_path  _cpu
-#
-#
-DATA_1D_FL_NETCDF    out:loc:tr   fl#:flf   $output_path  _fl      nc
-DATA_1D_PR_NETCDF    out:loc:tr   pr#:prf   $output_path  _pr      nc
-DATA_1D_SP_NETCDF    out:loc:tr   sp#:spf   $output_path  _sp      nc
-DATA_1D_TS_NETCDF    out:loc:tr   ts#:tsf   $output_path  _ts      nc
-DATA_1D_PTS_NETCDF   out:loc:tr   pts#:ptsf $output_path  _pts     nc
-DATA_2D_XY_NETCDF    out:loc:tr   xy#:xyf   $output_path  _xy      nc
-DATA_2D_XY_AV_NETCDF out:loc:tr   xy#:xyf   $output_path  _xy_av   nc
-DATA_2D_XZ_NETCDF    out:loc:tr   xz#:xzf   $output_path  _xz      nc
-DATA_2D_XZ_AV_NETCDF out:loc:tr   xz#:xzf   $output_path  _xz_av   nc
-DATA_2D_YZ_NETCDF    out:loc:tr   yz#:yzf   $output_path  _yz      nc
-DATA_2D_YZ_AV_NETCDF out:loc:tr   yz#:yzf   $output_path  _yz_av   nc
-DATA_3D_NETCDF       out:loc:tr   3d#:3df   $output_path  _3d      nc
-DATA_3D_AV_NETCDF    out:loc:tr   3d#:3df   $output_path  _3d_av   nc
-DATA_MASK_01_NETCDF    out:loc:tr ma#:maf   $output_path  _m01     nc
-DATA_MASK_01_AV_NETCDF out:loc:tr ma#:maf   $output_path  _m01_av  nc
-DATA_MASK_02_NETCDF    out:loc:tr ma#:maf   $output_path  _m02     nc
-DATA_MASK_02_AV_NETCDF out:loc:tr ma#:maf   $output_path  _m02_av  nc
-DATA_MASK_03_NETCDF    out:loc:tr ma#:maf   $output_path  _m03     nc
-DATA_MASK_03_AV_NETCDF out:loc:tr ma#:maf   $output_path  _m03_av  nc
-DATA_MASK_04_NETCDF    out:loc:tr ma#:maf   $output_path  _m04     nc
-DATA_MASK_04_AV_NETCDF out:loc:tr ma#:maf   $output_path  _m04_av  nc
-DATA_MASK_05_NETCDF    out:loc:tr ma#:maf   $output_path  _m05     nc
-DATA_MASK_05_AV_NETCDF out:loc:tr ma#:maf   $output_path  _m05_av  nc
-DATA_MASK_06_NETCDF    out:loc:tr ma#:maf   $output_path  _m06     nc
-DATA_MASK_06_AV_NETCDF out:loc:tr ma#:maf   $output_path  _m06_av  nc
-DATA_MASK_07_NETCDF    out:loc:tr ma#:maf   $output_path  _m07     nc
-DATA_MASK_07_AV_NETCDF out:loc:tr ma#:maf   $output_path  _m07_av  nc
-DATA_MASK_08_NETCDF    out:loc:tr ma#:maf   $output_path  _m08     nc
-DATA_MASK_08_AV_NETCDF out:loc:tr ma#:maf   $output_path  _m08_av  nc
-DATA_MASK_09_NETCDF    out:loc:tr ma#:maf   $output_path  _m09     nc
-DATA_MASK_09_AV_NETCDF out:loc:tr ma#:maf   $output_path  _m09_av  nc
-DATA_MASK_10_NETCDF    out:loc:tr ma#:maf   $output_path  _m10     nc
-DATA_MASK_10_AV_NETCDF out:loc:tr ma#:maf   $output_path  _m10_av  nc
-DATA_MASK_11_NETCDF    out:loc:tr ma#:maf   $output_path  _m11     nc
-DATA_MASK_11_AV_NETCDF out:loc:tr ma#:maf   $output_path  _m11_av  nc
-DATA_MASK_12_NETCDF    out:loc:tr ma#:maf   $output_path  _m12     nc
-DATA_MASK_12_AV_NETCDF out:loc:tr ma#:maf   $output_path  _m12_av  nc
-DATA_MASK_13_NETCDF    out:loc:tr ma#:maf   $output_path  _m13     nc
-DATA_MASK_13_AV_NETCDF out:loc:tr ma#:maf   $output_path  _m13_av  nc
-DATA_MASK_14_NETCDF    out:loc:tr ma#:maf   $output_path  _m14     nc
-DATA_MASK_14_AV_NETCDF out:loc:tr ma#:maf   $output_path  _m14_av  nc
-DATA_MASK_15_NETCDF    out:loc:tr ma#:maf   $output_path  _m15     nc
-DATA_MASK_15_AV_NETCDF out:loc:tr ma#:maf   $output_path  _m15_av  nc
-DATA_MASK_16_NETCDF    out:loc:tr ma#:maf   $output_path  _m16     nc
-DATA_MASK_16_AV_NETCDF out:loc:tr ma#:maf   $output_path  _m16_av  nc
-DATA_MASK_17_NETCDF    out:loc:tr ma#:maf   $output_path  _m17     nc
-DATA_MASK_17_AV_NETCDF out:loc:tr ma#:maf   $output_path  _m17_av  nc
-DATA_MASK_18_NETCDF    out:loc:tr ma#:maf   $output_path  _m18     nc
-DATA_MASK_18_AV_NETCDF out:loc:tr ma#:maf   $output_path  _m18_av  nc
-DATA_MASK_19_NETCDF    out:loc:tr ma#:maf   $output_path  _m19     nc
-DATA_MASK_19_AV_NETCDF out:loc:tr ma#:maf   $output_path  _m19_av  nc
-DATA_MASK_20_NETCDF    out:loc:tr ma#:maf   $output_path  _m20     nc
-DATA_MASK_20_AV_NETCDF out:loc:tr ma#:maf   $output_path  _m20_av  nc
-DATA_PRT_NETCDF      out:loc:pe   prt#:prtf $output_path  _prt     nc
-DATA_PRT_NETCDF      out:loc:trpe prt#:prtf $output_path  _prt     nc
-DATA_DVR             out:loc:trpe dvr       $output_path  _dvr
-#
-DVRP_LOG          out:loc:tr   dv#       $monitoring_path  _dvrp_log
-DVRP_LOG          out:loc:tra  dvf       $monitoring_path  _dvrp_log
-PARTICLE_INFO     out:loc:tr   pt#       $monitoring_path  _prt_info
-PARTICLE_INFO     out:loc:tra  ptf       $monitoring_path  _prt_info
-PARTICLE_DATA     out:loc:lnpe prt#:prtf $output_path      _prt_dat
-# A BLANK LINE MUST FOLLOW
Index: palm/trunk/SCRIPTS/.mrun.config.ifort
===================================================================
--- palm/trunk/SCRIPTS/.mrun.config.ifort	(revision 2693)
+++ 	(revision )
@@ -1,196 +1,0 @@
-#$Id$
-#column 1          column 2                                   column 3
-#name of variable  value of variable (~ must not be used)     scope
-#----------------------------------------------------------------------------
-%mainprog          palm.f90
-%base_directory    $HOME/palm/current_version
-%base_data         ~/palm/current_version/JOBS
-%source_path       $base_directory/trunk/SOURCE
-%add_source_path   $base_directory/USER_CODE/$fname
-%depository_path   $base_directory/MAKE_DEPOSITORY
-%use_makefile      true
-#
-# Enter your own host below by adding another line containing in the second
-# column your hostname (as provided by the unix command "hostname") and in the
-# third column the host identifier. Depending on your operating system, the
-# first characters of the host identifier should be "lc" (Linux cluster), "ibm"
-# (IBM-AIX), or "nec" (NEC-SX), respectively.
-#
-# The next line is just an example. Add your own line below or replace this line.
-%host_identifier   <replace_by_your_hostname>  lcmy
-#
-#
-# The next block contains all informations for compiling the PALM code
-# and for generating and running the PALM executable using MPI. Replace all
-# required paths (given in <>) by the respective paths valid on your host.
-# Also replace <hi> by your host identifier (see above <hi> example "lcmy")
-# in each line!
-# Compilernames, cpp-options and compiler-options are assuming
-# an Intel-Compiler and mpich2 on this host! Please change
-# appropriately, if you are using a different compiler / MPI-Version.
-#
-#
-%remote_username   <replace_with_your_local_username>            <hi> parallel
-%tmp_user_catalog  $HOME/palm/tmp                                <hi> parallel
-%compiler_name     mpif90                                        <hi> parallel
-%compiler_name_ser ifort                                         <hi> parallel
-%cpp_options       -cpp:-D__mpi2:-DMPI_REAL=MPI_DOUBLE_PRECISION:-DMPI_2REAL=MPI_2DOUBLE_PRECISION:-D__netcdf:-D__intel_compiler   <hi> parallel
-%netcdf_inc        -I:<replace_by_netcdf_include_path>           <hi> parallel
-%netcdf_lib        -L:<replace_by_netcdf_library_path>:-lnetcdf  <hi> parallel
-%mopts             -j:4                                          <hi> parallel
-%fopts             -I:<replace_by_mpi_include path>:-fpe0:-O3:-xHost:-fp-model:source:-ftz:-fno-alias:-no-prec-div:-no-prec-sqrt:-ip:-nbs:-diag-disable:8290,8291   <hi> parallel
-%lopts             -L:<replace_by_mpi_library path>:-fpe0:-O3:-xHost:-fp-model:source:-ftz:-fno-alias:-no-prec-div:-no-prec-sqrt:-ip:-nbs:-diag-disable:8290,8291   <hi> parallel
-# if you want to use your own hostfile, uncomment next line
-#%hostfile          $base_directory/.hostfile                    <hi> parallel
-# if you want to load modules on the remote host, use the following line
-#%modules           <replace_by_the_modules_to_be_loaded>        <hi> parallel
-# if you want to perform initial commands on ssh connections, use the following line
-#%login_init_cmd    <replace_by_the_inital_commands>             <hi> parallel
-#
-#
-%remote_username   <replace_with_your_local_username>            <hi> parallel trace
-%tmp_user_catalog  $HOME/palm/tmp                                <hi> parallel trace
-%compiler_name     mpif90                                        <hi> parallel trace
-%compiler_name_ser ifort                                         <hi> parallel trace
-%cpp_options       -cpp:-DMPI_REAL=MPI_DOUBLE_PRECISION:-DMPI_2REAL=MPI_2DOUBLE_PRECISION:-D__netcdf:-D__intel_compiler   <hi> parallel trace
-%netcdf_inc        -I:<replace_by_netcdf_include_path>           <hi> parallel trace
-%netcdf_lib        -L:<replace_by_netcdf_library_path>:-lnetcdf  <hi> parallel trace
-%mopts             -j:4                                          <hi> parallel trace
-%fopts             -C:-check:nooutput_conversion:-fpe0:-debug:-traceback:-g:-w:-O0:-ftz:-fno-alias:-no-prec-div:-no-prec-sqrt:-ip:-nbs  <hi> parallel trace
-%lopts             -C:-check:nooutput_conversion:-fpe0:-debug:-traceback:-g:-w:-O0:-ftz:-fno-alias:-no-prec-div:-no-prec-sqrt:-ip:-nbs  <hi> parallel trace
-# if you want to use your own hostfile, uncomment next line
-#%hostfile          $base_directory/.hostfile                    <hi> parallel trace
-# if you want to load modules on the remote host, use the following line
-#%modules           <replace_by_the_modules_to_be_loaded>        <hi> parallel trace
-# if you want to perform initial commands on ssh connections, use the following line
-#%login_init_cmd    <replace_by_the_inital_commands>             <hi> parallel trace
-#
-#
-%write_binary                true                             restart
-#
-#----------------------------------------------------------------------------
-# INPUT-commands, executed before running PALM - lines must start with "IC:"
-#----------------------------------------------------------------------------
-#IC:
-#
-#----------------------------------------------------------------------------
-# ERROR-commands - executed when program terminates abnormally
-#----------------------------------------------------------------------------
-EC:[[ \$locat = execution ]]  &&  cat  RUN_CONTROL
-EC:pwd; ls -al
-#
-#----------------------------------------------------------------------------
-# OUTPUT-commands - executed when program terminates normally
-#----------------------------------------------------------------------------
-#
-# Combine 1D- and 3D-profile output (these files are not usable for plotting)
-OC:[[ -f LIST_PROFIL_1D     ]]  &&  cat  LIST_PROFIL_1D  >>  LIST_PROFILE
-OC:[[ -f LIST_PROFIL        ]]  &&  cat  LIST_PROFIL     >>  LIST_PROFILE
-#
-# Combine all particle information files
-OC:[[ -f PARTICLE_INFOS/_0000 ]]  &&  cat  PARTICLE_INFOS/* >> PARTICLE_INFO
-#
-#----------------------------------------------------------------------------
-# List of input-files
-#----------------------------------------------------------------------------
-PARIN                    in:job        d3#      $base_data/$fname/INPUT    _p3d
-PARIN                    in:job        d3f      $base_data/$fname/INPUT    _p3df
-TOPOGRAPHY_DATA          in:locopt     d3#:d3f  $base_data/$fname/INPUT    _topo
-TOPOGRAPHY_DATA_NC       in:locopt     d3#:d3f  $base_data/$fname/INPUT    _topo_nc
-NUDGING_DATA             in:locopt     d3#:d3f  $base_data/$fname/INPUT    _nudge
-LSF_DATA                 in:locopt     d3#:d3f  $base_data/$fname/INPUT    _lsf
-WTM_DATA                 in:locopt     d3#:d3f  $base_data/$fname/INPUT    _wtm
-STG_PROFILES             in:locopt     d3#:d3f  $base_data/$fname/INPUT    _stgpr
-BININ                    in:loc:lnpe   d3f      $tmp_data_catalog/$fname/RESTART  _d3d
-PARTICLE_RESTART_DATA_IN in:loc:lnpe   prtf     $tmp_data_catalog/$fname/RESTART  _rprt
-DATA_1D_FL_NETCDF        in:locopt     flf      $base_data/$fname/OUTPUT   _fl     nc
-DATA_1D_PR_NETCDF        in:locopt     prf      $base_data/$fname/OUTPUT   _pr     nc
-DATA_1D_SP_NETCDF        in:locopt     spf      $base_data/$fname/OUTPUT   _sp     nc
-DATA_1D_TS_NETCDF        in:locopt     tsf      $base_data/$fname/OUTPUT   _ts     nc
-DATA_1D_PTS_NETCDF       in:locopt     ptsf     $base_data/$fname/OUTPUT   _pts    nc
-DATA_2D_XY_NETCDF        in:locopt     xyf      $base_data/$fname/OUTPUT   _xy     nc
-DATA_2D_XY_AV_NETCDF     in:locopt     xyf      $base_data/$fname/OUTPUT   _xy_av  nc
-DATA_2D_XZ_NETCDF        in:locopt     xzf      $base_data/$fname/OUTPUT   _xz     nc
-DATA_2D_YZ_NETCDF        in:locopt     yzf      $base_data/$fname/OUTPUT   _yz     nc
-DATA_3D_NETCDF           in:locopt     3df      $base_data/$fname/OUTPUT   _3d     nc
-DATA_PRT_NETCDF          in:locopt:pe  prtf     $base_data/$fname/OUTPUT   _prt
-#
-#----------------------------------------------------------------------------
-# List of output-files
-#----------------------------------------------------------------------------
-BINOUT                    out:loc:lnpe restart   $tmp_data_catalog/$fname/RESTART  _d3d
-PARTICLE_RESTART_DATA_OUT out:loc:lnpe prt#:prtf $tmp_data_catalog/$fname/RESTART  _rprt
-#
-RUN_CONTROL       out:loc:tr   d3#     $base_data/$fname/MONITORING  _rc
-RUN_CONTROL       out:loc:tra  d3f     $base_data/$fname/MONITORING  _rc
-HEADER            out:loc:tr   d3#     $base_data/$fname/MONITORING  _header
-HEADER            out:loc:tra  d3f     $base_data/$fname/MONITORING  _header
-CPU_MEASURES      out:loc:tr   d3#     $base_data/$fname/MONITORING  _cpu
-CPU_MEASURES      out:loc:tra  d3f     $base_data/$fname/MONITORING  _cpu
-TURBINE_PARAMETERS01  out:loc:tr  d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters01
-TURBINE_PARAMETERS02  out:loc:tr  d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters02
-TURBINE_PARAMETERS03  out:loc:tr  d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters03
-TURBINE_PARAMETERS04  out:loc:tr  d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters04
-#
-DATA_1D_FL_NETCDF    out:loc:tr   fl#:flf   $base_data/$fname/OUTPUT  _fl     nc
-DATA_1D_PR_NETCDF    out:loc:tr   pr#:prf   $base_data/$fname/OUTPUT  _pr     nc
-DATA_1D_SP_NETCDF    out:loc:tr   sp#:spf   $base_data/$fname/OUTPUT  _sp     nc
-DATA_1D_TS_NETCDF    out:loc:tr   ts#:tsf   $base_data/$fname/OUTPUT  _ts     nc
-DATA_1D_PTS_NETCDF   out:loc:tr   pts#:ptsf $base_data/$fname/OUTPUT  _pts    nc
-DATA_2D_XY_NETCDF    out:loc:tr   xy#:xyf   $base_data/$fname/OUTPUT  _xy     nc
-DATA_2D_XY_AV_NETCDF out:loc:tr   xy#:xyf   $base_data/$fname/OUTPUT  _xy_av  nc
-DATA_2D_XZ_NETCDF    out:loc:tr   xz#:xzf   $base_data/$fname/OUTPUT  _xz     nc
-DATA_2D_XZ_AV_NETCDF out:loc:tr   xz#:xzf   $base_data/$fname/OUTPUT  _xz_av  nc
-DATA_2D_YZ_NETCDF    out:loc:tr   yz#:yzf   $base_data/$fname/OUTPUT  _yz     nc
-DATA_2D_YZ_AV_NETCDF out:loc:tr   yz#:yzf   $base_data/$fname/OUTPUT  _yz_av  nc
-DATA_3D_NETCDF       out:loc:tr   3d#:3df   $base_data/$fname/OUTPUT  _3d     nc
-DATA_3D_AV_NETCDF    out:loc:tr   3d#:3df   $base_data/$fname/OUTPUT  _3d_av  nc
-DATA_MASK_01_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m01     nc
-DATA_MASK_01_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m01_av  nc
-DATA_MASK_02_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m02     nc
-DATA_MASK_02_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m02_av  nc
-DATA_MASK_03_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m03     nc
-DATA_MASK_03_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m03_av  nc
-DATA_MASK_04_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m04     nc
-DATA_MASK_04_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m04_av  nc
-DATA_MASK_05_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m05     nc
-DATA_MASK_05_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m05_av  nc
-DATA_MASK_06_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m06     nc
-DATA_MASK_06_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m06_av  nc
-DATA_MASK_07_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m07     nc
-DATA_MASK_07_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m07_av  nc
-DATA_MASK_08_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m08     nc
-DATA_MASK_08_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m08_av  nc
-DATA_MASK_09_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m09     nc
-DATA_MASK_09_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m09_av  nc
-DATA_MASK_10_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m10     nc
-DATA_MASK_10_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m10_av  nc
-DATA_MASK_11_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m11     nc
-DATA_MASK_11_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m11_av  nc
-DATA_MASK_12_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m12     nc
-DATA_MASK_12_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m12_av  nc
-DATA_MASK_13_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m13     nc
-DATA_MASK_13_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m13_av  nc
-DATA_MASK_14_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m14     nc
-DATA_MASK_14_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m14_av  nc
-DATA_MASK_15_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m15     nc
-DATA_MASK_15_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m15_av  nc
-DATA_MASK_16_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m16     nc
-DATA_MASK_16_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m16_av  nc
-DATA_MASK_17_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m17     nc
-DATA_MASK_17_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m17_av  nc
-DATA_MASK_18_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m18     nc
-DATA_MASK_18_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m18_av  nc
-DATA_MASK_19_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m19     nc
-DATA_MASK_19_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m19_av  nc
-DATA_MASK_20_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m20     nc
-DATA_MASK_20_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m20_av  nc
-DATA_PRT_NETCDF      out:loc:trpe prt#:prtf $base_data/$fname/OUTPUT  _prt    nc
-DATA_DVR             out:loc:trpe dvr       $base_data/$fname/OUTPUT  _dvr
-#
-DVRP_LOG          out:loc:tr   dv#       $base_data/$fname/MONITORING  _dvrp_log
-DVRP_LOG          out:loc:tra  dvf       $base_data/$fname/MONITORING  _dvrp_log
-PARTICLE_INFO     out:loc:tr   pt#       $base_data/$fname/MONITORING  _prt_info
-PARTICLE_INFO     out:loc:tra  ptf       $base_data/$fname/MONITORING  _prt_info
-PARTICLE_DATA     out:loc:lnpe prt#:prtf $tmp_data_catalog/$fname/OUTPUT      _prt_dat
-# A BLANK LINE MUST FOLLOW
Index: palm/trunk/SCRIPTS/.mrun.config.imuk
===================================================================
--- palm/trunk/SCRIPTS/.mrun.config.imuk	(revision 2693)
+++ 	(revision )
@@ -1,174 +1,0 @@
-#$Id$
-#column 1          column 2                                   column 3
-#name of variable  value of variable (~ must not be used)     scope
-#----------------------------------------------------------------------------
-%mainprog          palm.f90
-%base_directory    $HOME/palm/current_version
-%base_data         ~/palm/current_version/JOBS
-%source_path       $base_directory/trunk/SOURCE
-%add_source_path   $base_directory/USER_CODE/$fname
-%depository_path   $base_directory/MAKE_DEPOSITORY
-#%use_makefile      true
-#
-# Enter your own host below by adding another line containing in the second
-# column your hostname (as provided by the unix command "hostname") and in the
-# third column the host identifier. Depending on your operating system, the
-# first characters of the host identifier should be "lc" (Linux cluster), "ibm"
-# (IBM-AIX), or "nec" (NEC-SX), respectively.
-#
-# The next line is just an example. Add your own line below or replace this line.
-%host_identifier   <replace_by_your_IMUK_hostname>     lcmuk
-#
-# IMUK
-%remote_username   <replace_by_your_IMUK_username>                             lcmuk parallel
-%tmp_data_catalog  /localdata                                                  lcmuk parallel
-%tmp_user_catalog  /localdata                                                  lcmuk parallel
-%compiler_name     mpif90                                                      lcmuk parallel
-%compiler_name_ser ifort                                                       lcmuk parallel
-%cpp_options       -cpp:-DMPI_REAL=MPI_DOUBLE_PRECISION:-DMPI_2REAL=MPI_2DOUBLE_PRECISION:-D__netcdf:-D__fftw:-D__intel_compiler  lcmuk parallel
-%netcdf_inc        -I:/muksoft/packages/netcdf/4_intel/include                 lcmuk parallel
-%netcdf_lib        -L/muksoft/packages/netcdf/4_intel/lib:-lnetcdf:-lnetcdff   lcmuk parallel
-%fftw_inc          -I:/muksoft/packages/fftw/3.3.4/include                     lcmuk parallel
-%fftw_lib          -L/muksoft/packages/fftw/3.3.4/lib64:-lfftw3                lcmuk parallel
-%mopts             -j:4                                                        lcmuk parallel
-%fopts             -fpe0:-O3:-cpp:-fp-model:source:-ftz:-fno-alias:-no-prec-div:-no-prec-sqrt:-ip:-nbs:-diag-disable:8290,8291  lcmuk parallel
-%lopts             -fpe0:-O3:-cpp:-fp-model:source:-ftz:-fno-alias:-no-prec-div:-no-prec-sqrt:-ip:-nbs:-diag-disable:8290,8291  lcmuk parallel
-#
-# IMUK debug/trace mode
-%remote_username   <replace_by_your_IMUK_username>                             lcmuk parallel trace
-%tmp_data_catalog  /localdata                                                  lcmuk parallel trace
-%tmp_user_catalog  /localdata                                                  lcmuk parallel trace
-%compiler_name     mpif90                                                      lcmuk parallel trace
-%compiler_name_ser ifort                                                       lcmuk parallel trace
-%cpp_options       -cpp:-DMPI_REAL=MPI_DOUBLE_PRECISION:-DMPI_2REAL=MPI_2DOUBLE_PRECISION:-D__netcdf:-D__fftw:-D__intel_compiler   lcmuk parallel trace
-%netcdf_inc        -I:/muksoft/packages/netcdf/4_intel/include                 lcmuk parallel trace
-%netcdf_lib        -L/muksoft/packages/netcdf/4_intel/lib:-lnetcdf:-lnetcdff   lcmuk parallel trace
-%fftw_inc          -I:/muksoft/packages/fftw/3.3.4/include                     lcmuk parallel trace
-%fftw_lib          -L/muksoft/packages/fftw/3.3.4/lib64:-lfftw3                lcmuk parallel trace
-%fopts             -fpe0:-C:-check:nooutput_conversion:-debug:-traceback:-g:-w:-xT:-O0:-ftz:-fno-alias:-no-prec-div:-no-prec-sqrt:-ip:-nbs:-convert:little_endian:-diag-disable:8290,8291  lcmuk parallel trace
-%lopts             -fpe0:-C:-check:nooutput_conversion:-debug:-traceback:-g:-w:-xT:-O0:-ftz:-fno-alias:-no-prec-div:-no-prec-sqrt:-ip:-nbs:-limf:-lm:-Vaxlib       lcmuk parallel trace
-#
-%write_binary                true                             restart
-#
-#----------------------------------------------------------------------------
-# INPUT-commands, executed before running PALM - lines must start with "IC:"
-#----------------------------------------------------------------------------
-#IC:
-#
-#----------------------------------------------------------------------------
-# ERROR-commands - executed when program terminates abnormally
-#----------------------------------------------------------------------------
-EC:[[ \$locat = execution ]]  &&  cat  RUN_CONTROL
-EC:pwd; ls -al
-#
-#----------------------------------------------------------------------------
-# OUTPUT-commands - executed when program terminates normally
-#----------------------------------------------------------------------------
-# Combine all particle information files
-OC:[[ -f PARTICLE_INFOS/_0000 ]]  &&  cat  PARTICLE_INFOS/* >> PARTICLE_INFO
-#
-#----------------------------------------------------------------------------
-# List of input-files
-#----------------------------------------------------------------------------
-PARIN                    in:job        d3#      $base_data/$fname/INPUT    _p3d
-PARIN                    in:job        d3f      $base_data/$fname/INPUT    _p3df
-TOPOGRAPHY_DATA          in:locopt     d3#:d3f  $base_data/$fname/INPUT    _topo
-TOPOGRAPHY_DATA_NC       in:locopt     d3#:d3f  $base_data/$fname/INPUT    _topo_nc
-NUDGING_DATA             in:locopt     d3#:d3f  $base_data/$fname/INPUT    _nudge
-LSF_DATA                 in:locopt     d3#:d3f  $base_data/$fname/INPUT    _lsf
-WTM_DATA                 in:locopt     d3#:d3f  $base_data/$fname/INPUT    _wtm
-STG_PROFILES             in:locopt     d3#:d3f  $base_data/$fname/INPUT    _stgpr
-BININ                    in:loc:lnpe   d3f      $tmp_data_catalog/$fname/RESTART  _d3d
-PARTICLE_RESTART_DATA_IN in:loc:lnpe   prtf     $tmp_data_catalog/$fname/RESTART  _rprt
-DATA_1D_FL_NETCDF        in:locopt     flf      $base_data/$fname/OUTPUT  _fl     nc
-DATA_1D_PR_NETCDF        in:locopt     prf      $base_data/$fname/OUTPUT   _pr     nc
-DATA_1D_SP_NETCDF        in:locopt     spf      $base_data/$fname/OUTPUT   _sp     nc
-DATA_1D_TS_NETCDF        in:locopt     tsf      $base_data/$fname/OUTPUT   _ts     nc
-DATA_1D_PTS_NETCDF       in:locopt     ptsf     $base_data/$fname/OUTPUT   _pts    nc
-DATA_2D_XY_NETCDF        in:locopt     xyf      $base_data/$fname/OUTPUT   _xy     nc
-DATA_2D_XY_AV_NETCDF     in:locopt     xyf      $base_data/$fname/OUTPUT   _xy_av  nc
-DATA_2D_XZ_NETCDF        in:locopt     xzf      $base_data/$fname/OUTPUT   _xz     nc
-DATA_2D_YZ_NETCDF        in:locopt     yzf      $base_data/$fname/OUTPUT   _yz     nc
-DATA_3D_NETCDF           in:locopt     3df      $base_data/$fname/OUTPUT   _3d     nc
-DATA_PRT_NETCDF          in:locopt:pe  prtf     $base_data/$fname/OUTPUT   _prt
-#
-#----------------------------------------------------------------------------
-# List of output-files
-#----------------------------------------------------------------------------
-BINOUT                    out:loc:lnpe restart   $tmp_data_catalog/$fname/RESTART  _d3d
-PARTICLE_RESTART_DATA_OUT out:loc:lnpe prt#:prtf $tmp_data_catalog/$fname/RESTART  _rprt
-#
-RUN_CONTROL       out:loc:tr   d3#     $base_data/$fname/MONITORING  _rc
-RUN_CONTROL       out:loc:tra  d3f     $base_data/$fname/MONITORING  _rc
-HEADER            out:loc:tr   d3#     $base_data/$fname/MONITORING  _header
-HEADER            out:loc:tra  d3f     $base_data/$fname/MONITORING  _header
-CPU_MEASURES      out:loc:tr   d3#     $base_data/$fname/MONITORING  _cpu
-CPU_MEASURES      out:loc:tra  d3f     $base_data/$fname/MONITORING  _cpu
-TURBINE_PARAMETERS01  out:loc:tr  d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters01
-TURBINE_PARAMETERS02  out:loc:tr  d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters02
-TURBINE_PARAMETERS03  out:loc:tr  d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters03
-TURBINE_PARAMETERS04  out:loc:tr  d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters04
-#
-DATA_1D_FL_NETCDF    out:loc:tr   fl#:flf   $base_data/$fname/OUTPUT  _fl      nc
-DATA_1D_PR_NETCDF    out:loc:tr   pr#:prf   $base_data/$fname/OUTPUT  _pr      nc
-DATA_1D_SP_NETCDF    out:loc:tr   sp#:spf   $base_data/$fname/OUTPUT  _sp      nc
-DATA_1D_TS_NETCDF    out:loc:tr   ts#:tsf   $base_data/$fname/OUTPUT  _ts      nc
-DATA_1D_PTS_NETCDF   out:loc:tr   pts#:ptsf $base_data/$fname/OUTPUT  _pts     nc
-DATA_2D_XY_NETCDF    out:loc:tr   xy#:xyf   $base_data/$fname/OUTPUT  _xy      nc
-DATA_2D_XY_AV_NETCDF out:loc:tr   xy#:xyf   $base_data/$fname/OUTPUT  _xy_av   nc
-DATA_2D_XZ_NETCDF    out:loc:tr   xz#:xzf   $base_data/$fname/OUTPUT  _xz      nc
-DATA_2D_XZ_AV_NETCDF out:loc:tr   xz#:xzf   $base_data/$fname/OUTPUT  _xz_av   nc
-DATA_2D_YZ_NETCDF    out:loc:tr   yz#:yzf   $base_data/$fname/OUTPUT  _yz      nc
-DATA_2D_YZ_AV_NETCDF out:loc:tr   yz#:yzf   $base_data/$fname/OUTPUT  _yz_av   nc
-DATA_3D_NETCDF       out:loc:tr   3d#:3df   $base_data/$fname/OUTPUT  _3d      nc
-DATA_3D_AV_NETCDF    out:loc:tr   3d#:3df   $base_data/$fname/OUTPUT  _3d_av   nc
-DATA_MASK_01_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m01     nc
-DATA_MASK_01_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m01_av  nc
-DATA_MASK_02_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m02     nc
-DATA_MASK_02_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m02_av  nc
-DATA_MASK_03_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m03     nc
-DATA_MASK_03_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m03_av  nc
-DATA_MASK_04_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m04     nc
-DATA_MASK_04_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m04_av  nc
-DATA_MASK_05_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m05     nc
-DATA_MASK_05_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m05_av  nc
-DATA_MASK_06_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m06     nc
-DATA_MASK_06_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m06_av  nc
-DATA_MASK_07_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m07     nc
-DATA_MASK_07_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m07_av  nc
-DATA_MASK_08_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m08     nc
-DATA_MASK_08_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m08_av  nc
-DATA_MASK_09_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m09     nc
-DATA_MASK_09_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m09_av  nc
-DATA_MASK_10_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m10     nc
-DATA_MASK_10_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m10_av  nc
-DATA_MASK_11_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m11     nc
-DATA_MASK_11_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m11_av  nc
-DATA_MASK_12_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m12     nc
-DATA_MASK_12_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m12_av  nc
-DATA_MASK_13_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m13     nc
-DATA_MASK_13_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m13_av  nc
-DATA_MASK_14_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m14     nc
-DATA_MASK_14_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m14_av  nc
-DATA_MASK_15_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m15     nc
-DATA_MASK_15_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m15_av  nc
-DATA_MASK_16_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m16     nc
-DATA_MASK_16_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m16_av  nc
-DATA_MASK_17_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m17     nc
-DATA_MASK_17_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m17_av  nc
-DATA_MASK_18_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m18     nc
-DATA_MASK_18_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m18_av  nc
-DATA_MASK_19_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m19     nc
-DATA_MASK_19_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m19_av  nc
-DATA_MASK_20_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m20     nc
-DATA_MASK_20_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m20_av  nc
-DATA_PRT_NETCDF      out:loc:pe   prt#:prtf $base_data/$fname/OUTPUT  _prt     nc
-DATA_PRT_NETCDF      out:loc:trpe prt#:prtf $base_data/$fname/OUTPUT  _prt     nc
-DATA_DVR             out:loc:trpe dvr       $base_data/$fname/OUTPUT  _dvr
-#
-DVRP_LOG          out:loc:tr   dv#       $base_data/$fname/MONITORING  _dvrp_log
-DVRP_LOG          out:loc:tra  dvf       $base_data/$fname/MONITORING  _dvrp_log
-PARTICLE_INFO     out:loc:tr   pt#       $base_data/$fname/MONITORING  _prt_info
-PARTICLE_INFO     out:loc:tra  ptf       $base_data/$fname/MONITORING  _prt_info
-PARTICLE_DATA     out:loc:lnpe prt#:prtf $tmp_data_catalog/$fname/OUTPUT      _prt_dat
-# A BLANK LINE MUST FOLLOW
Index: palm/trunk/SCRIPTS/.mrun.config.imuk_gpu
===================================================================
--- palm/trunk/SCRIPTS/.mrun.config.imuk_gpu	(revision 2693)
+++ 	(revision )
@@ -1,184 +1,0 @@
-#$Id$
-#column 1          column 2                                   column 3
-#name of variable  value of variable (~ must not be used)     scope
-#----------------------------------------------------------------------------
-%mainprog          palm.f90
-%base_directory    $HOME/palm/current_version
-%base_data         ~/palm/current_version/JOBS
-%source_path       $base_directory/trunk/SOURCE
-%add_source_path   $base_directory/USER_CODE/$fname
-%depository_path   $base_directory/MAKE_DEPOSITORY
-#
-%host_identifier   inferno      lcmuk
-#
-# pure MPI version
-%remote_username   <replace_by_your_IMUK_username>               lcmuk parallel pgi
-%tmp_user_catalog  /localdata                                    lcmuk parallel pgi
-%compiler_name     mpif90                                        lcmuk parallel pgi
-%compiler_name_ser pgf90                                         lcmuk parallel pgi
-%cpp_options       -Mpreprocess:-DMPI_REAL=MPI_DOUBLE_PRECISION:-DMPI_2REAL=MPI_2DOUBLE_PRECISION:-D__nopointer   lcmuk parallel pgi
-%mopts             -j:4                                          lcmuk parallel pgi
-%fopts             -Mcray=pointer:-fastsse:-r8                   lcmuk parallel pgi
-%lopts             -Mcray=pointer:-fastsse:-r8                   lcmuk parallel pgi
-#
-# pure MPI version with debug options
-%remote_username   <replace_by_your_IMUK_username>               lcmuk parallel pgidbg
-%tmp_user_catalog  /localdata                                    lcmuk parallel pgidbg
-%compiler_name     mpif90                                        lcmuk parallel pgidbg
-%compiler_name_ser pgf90                                         lcmuk parallel pgidbg
-%cpp_options       -Mpreprocess:-DMPI_REAL=MPI_DOUBLE_PRECISION:-DMPI_2REAL=MPI_2DOUBLE_PRECISION:-D__nopointer   lcmuk parallel pgidbg
-%mopts             -j:4                                          lcmuk parallel pgidbg
-%fopts             -Mcray=pointer:-O0:-C:-g:-Mbounds:-Mchkstk:-traceback:-r8   lcmuk parallel pgidbg
-%lopts             -Mcray=pointer:-O0:-C:-g:-Mbounds:-Mchkstk:-traceback:-r8   lcmuk parallel pgidbg
-#
-# pure GPU version
-%remote_username   <replace_by_your_IMUK_username>                       lcmuk pgigpu
-%tmp_user_catalog  /localdata                                            lcmuk pgigpu
-%compiler_name     pgf90                                                 lcmuk pgigpu
-%compiler_name_ser pgf90                                                 lcmuk pgigpu
-%cpp_options       -Mpreprocess:-D__nopointer:-D__openacc:-D__cuda_fft   lcmuk pgigpu
-%mopts             -j:4                                                  lcmuk pgigpu
-%fopts             -acc:-ta=nvidia,5.0,nocache:-Minfo=acc:-Mcray=pointer:-fastsse:-r8:-Mcuda=cuda5.0    lcmuk pgigpu
-%lopts             -acc:-ta=nvidia,5.0,nocache:-Minfo=acc:-Mcray=pointer:-fastsse:-r8:-Mcuda=cuda5.0:-L/muksoft/packages/pgi/2013-133/linux86-64/2013/cuda/5.0/l
-ib64:-lcufft    lcmuk pgigpu
-#
-# MPI+GPU
-%remote_username   <replace_by_your_IMUK_username>               lcmuk parallel pgigpu
-%tmp_user_catalog  /localdata                                    lcmuk parallel pgigpu
-%compiler_name     mpif90                                        lcmuk parallel pgigpu
-%compiler_name_ser pgf90                                         lcmuk parallel pgigpu
-%cpp_options       -Mpreprocess:-DMPI_REAL=MPI_DOUBLE_PRECISION:-DMPI_2REAL=MPI_2DOUBLE_PRECISION:-D__nopointer:-D__openacc:-D__cuda_fft   lcmuk parallel pgigpu
-%mopts             -j:4                                          lcmuk parallel pgigpu
-%fopts             -acc:-ta=nvidia,5.0,nocache:-Minfo=acc:-Mcray=pointer:-fastsse:-r8:-Mcuda=cuda5.0    lcmuk parallel pgigpu
-%lopts             -acc:-ta=nvidia,5.0,nocache:-Minfo=acc:-Mcray=pointer:-fastsse:-r8:-Mcuda=cuda5.0:-L/muksoft/packages/pgi/2013-133/linux86-64/2013/cuda/5.0/l
-ib64:-lcufft   lcmuk parallel pgigpu
-#
-%write_binary                true                             restart
-#
-#----------------------------------------------------------------------------
-# INPUT-commands, executed before running PALM - lines must start with "IC:"
-#----------------------------------------------------------------------------
-#IC:
-#
-#----------------------------------------------------------------------------
-# ERROR-commands - executed when program terminates abnormally
-#----------------------------------------------------------------------------
-EC:[[ \$locat = execution ]]  &&  cat  RUN_CONTROL
-EC:pwd; ls -al
-#
-#----------------------------------------------------------------------------
-# OUTPUT-commands - executed when program terminates normally
-#----------------------------------------------------------------------------
-#
-# Combine 1D- and 3D-profile output (these files are not usable for plotting)
-OC:[[ -f LIST_PROFIL_1D     ]]  &&  cat  LIST_PROFIL_1D  >>  LIST_PROFILE
-OC:[[ -f LIST_PROFIL        ]]  &&  cat  LIST_PROFIL     >>  LIST_PROFILE
-#
-# Combine all particle information files
-OC:[[ -f PARTICLE_INFOS/_0000 ]]  &&  cat  PARTICLE_INFOS/* >> PARTICLE_INFO
-#
-#----------------------------------------------------------------------------
-# List of input-files
-#----------------------------------------------------------------------------
-PARIN                    in:job        d3#      $base_data/$fname/INPUT    _p3d
-PARIN                    in:job        d3f      $base_data/$fname/INPUT    _p3df
-TOPOGRAPHY_DATA          in:locopt     d3#:d3f  $base_data/$fname/INPUT    _topo
-TOPOGRAPHY_DATA_NC       in:locopt     d3#:d3f  $base_data/$fname/INPUT    _topo_nc
-NUDGING_DATA             in:locopt     d3#:d3f  $base_data/$fname/INPUT    _nudge
-LSF_DATA                 in:locopt     d3#:d3f  $base_data/$fname/INPUT    _lsf
-WTM_DATA                 in:locopt     d3#:d3f  $base_data/$fname/INPUT    _wtm
-STG_PROFILES             in:locopt     d3#:d3f  $base_data/$fname/INPUT    _stgpr
-BININ                    in:loc:lnpe   d3f      $base_data/$fname/RESTART  _d3d
-PARTICLE_RESTART_DATA_IN in:loc:lnpe   prtf     $base_data/$fname/RESTART  _rprt
-DATA_1D_FL_NETCDF        in:locopt     flf      $base_data/$fname/OUTPUT   _fl     nc
-DATA_1D_PR_NETCDF        in:locopt     prf      $base_data/$fname/OUTPUT   _pr     nc
-DATA_1D_SP_NETCDF        in:locopt     spf      $base_data/$fname/OUTPUT   _sp     nc
-DATA_1D_TS_NETCDF        in:locopt     tsf      $base_data/$fname/OUTPUT   _ts     nc
-DATA_1D_PTS_NETCDF       in:locopt     ptsf     $base_data/$fname/OUTPUT   _pts    nc
-DATA_2D_XY_NETCDF        in:locopt     xyf      $base_data/$fname/OUTPUT   _xy     nc
-DATA_2D_XY_AV_NETCDF     in:locopt     xyf      $base_data/$fname/OUTPUT   _xy_av  nc
-DATA_2D_XZ_NETCDF        in:locopt     xzf      $base_data/$fname/OUTPUT   _xz     nc
-DATA_2D_YZ_NETCDF        in:locopt     yzf      $base_data/$fname/OUTPUT   _yz     nc
-DATA_3D_NETCDF           in:locopt     3df      $base_data/$fname/OUTPUT   _3d     nc
-DATA_PRT_NETCDF          in:locopt:pe  prtf     $base_data/$fname/OUTPUT   _prt
-#
-#----------------------------------------------------------------------------
-# List of output-files
-#----------------------------------------------------------------------------
-BINOUT                    out:loc:lnpe restart   $base_data/$fname/RESTART  _d3d
-PARTICLE_RESTART_DATA_OUT out:loc:lnpe prt#:prtf $base_data/$fname/RESTART  _rprt
-#
-RUN_CONTROL       out:loc:tr   d3#     $base_data/$fname/MONITORING  _rc
-RUN_CONTROL       out:loc:tra  d3f     $base_data/$fname/MONITORING  _rc
-HEADER            out:loc:tr   d3#     $base_data/$fname/MONITORING  _header
-HEADER            out:loc:tra  d3f     $base_data/$fname/MONITORING  _header
-CPU_MEASURES      out:loc:tr   d3#     $base_data/$fname/MONITORING  _cpu
-CPU_MEASURES      out:loc:tra  d3f     $base_data/$fname/MONITORING  _cpu
-TURBINE_PARAMETERS01  out:loc:tr  d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters01
-TURBINE_PARAMETERS02  out:loc:tr  d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters02
-TURBINE_PARAMETERS03  out:loc:tr  d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters03
-TURBINE_PARAMETERS04  out:loc:tr  d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters04
-#
-DATA_1D_FL_NETCDF    out:loc:tr   fl#:flf   $base_data/$fname/OUTPUT  _fl      nc
-DATA_1D_PR_NETCDF    out:loc:tr   pr#:prf   $base_data/$fname/OUTPUT  _pr      nc
-DATA_1D_SP_NETCDF    out:loc:tr   sp#:spf   $base_data/$fname/OUTPUT  _sp      nc
-DATA_1D_TS_NETCDF    out:loc:tr   ts#:tsf   $base_data/$fname/OUTPUT  _ts      nc
-DATA_1D_PTS_NETCDF   out:loc:tr   pts#:ptsf $base_data/$fname/OUTPUT  _pts     nc
-DATA_2D_XY_NETCDF    out:loc:tr   xy#:xyf   $base_data/$fname/OUTPUT  _xy      nc
-DATA_2D_XY_AV_NETCDF out:loc:tr   xy#:xyf   $base_data/$fname/OUTPUT  _xy_av   nc
-DATA_2D_XZ_NETCDF    out:loc:tr   xz#:xzf   $base_data/$fname/OUTPUT  _xz      nc
-DATA_2D_XZ_AV_NETCDF out:loc:tr   xz#:xzf   $base_data/$fname/OUTPUT  _xz_av   nc
-DATA_2D_YZ_NETCDF    out:loc:tr   yz#:yzf   $base_data/$fname/OUTPUT  _yz      nc
-DATA_2D_YZ_AV_NETCDF out:loc:tr   yz#:yzf   $base_data/$fname/OUTPUT  _yz_av   nc
-DATA_3D_NETCDF       out:loc:tr   3d#:3df   $base_data/$fname/OUTPUT  _3d      nc
-DATA_3D_AV_NETCDF    out:loc:tr   3d#:3df   $base_data/$fname/OUTPUT  _3d_av   nc
-DATA_MASK_01_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m01     nc
-DATA_MASK_01_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m01_av  nc
-DATA_MASK_02_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m02     nc
-DATA_MASK_02_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m02_av  nc
-DATA_MASK_03_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m03     nc
-DATA_MASK_03_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m03_av  nc
-DATA_MASK_04_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m04     nc
-DATA_MASK_04_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m04_av  nc
-DATA_MASK_05_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m05     nc
-DATA_MASK_05_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m05_av  nc
-DATA_MASK_06_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m06     nc
-DATA_MASK_06_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m06_av  nc
-DATA_MASK_07_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m07     nc
-DATA_MASK_07_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m07_av  nc
-DATA_MASK_08_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m08     nc
-DATA_MASK_08_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m08_av  nc
-DATA_MASK_09_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m09     nc
-DATA_MASK_09_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m09_av  nc
-DATA_MASK_10_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m10     nc
-DATA_MASK_10_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m10_av  nc
-DATA_MASK_11_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m11     nc
-DATA_MASK_11_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m11_av  nc
-DATA_MASK_12_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m12     nc
-DATA_MASK_12_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m12_av  nc
-DATA_MASK_13_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m13     nc
-DATA_MASK_13_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m13_av  nc
-DATA_MASK_14_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m14     nc
-DATA_MASK_14_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m14_av  nc
-DATA_MASK_15_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m15     nc
-DATA_MASK_15_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m15_av  nc
-DATA_MASK_16_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m16     nc
-DATA_MASK_16_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m16_av  nc
-DATA_MASK_17_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m17     nc
-DATA_MASK_17_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m17_av  nc
-DATA_MASK_18_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m18     nc
-DATA_MASK_18_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m18_av  nc
-DATA_MASK_19_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m19     nc
-DATA_MASK_19_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m19_av  nc
-DATA_MASK_20_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m20     nc
-DATA_MASK_20_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m20_av  nc
-DATA_PRT_NETCDF      out:loc:pe   prt#:prtf $base_data/$fname/OUTPUT  _prt     nc
-DATA_PRT_NETCDF      out:loc:trpe prt#:prtf $base_data/$fname/OUTPUT  _prt     nc
-DATA_DVR             out:loc:trpe dvr       $base_data/$fname/OUTPUT  _dvr
-#
-DVRP_LOG          out:loc:tr   dv#       $base_data/$fname/MONITORING  _dvrp_log
-DVRP_LOG          out:loc:tra  dvf       $base_data/$fname/MONITORING  _dvrp_log
-PARTICLE_INFO     out:loc:tr   pt#       $base_data/$fname/MONITORING  _prt_info
-PARTICLE_INFO     out:loc:tra  ptf       $base_data/$fname/MONITORING  _prt_info
-PARTICLE_DATA     out:loc:lnpe prt#:prtf $base_data/$fname/OUTPUT      _prt_dat
-# A BLANK LINE MUST FOLLOW
Index: palm/trunk/SCRIPTS/.mrun.config.imuk_hlrnIII
===================================================================
--- palm/trunk/SCRIPTS/.mrun.config.imuk_hlrnIII	(revision 2693)
+++ 	(revision )
@@ -1,267 +1,0 @@
-#$Id$
-#column 1          column 2                                   column 3
-#name of variable  value of variable (~ must not be used)     scope
-#----------------------------------------------------------------------------
-%mainprog          palm.f90
-%base_directory    $HOME/palm/current_version
-%base_data         ~/palm/current_version/JOBS
-%source_path       $base_directory/trunk/SOURCE
-%add_source_path   $base_directory/USER_CODE/$fname
-%depository_path   $base_directory/MAKE_DEPOSITORY
-#%use_makefile      true
-#
-# Enter your own host below by adding another line containing in the second
-# column your hostname (as provided by the unix command "hostname") and in the
-# third column the host identifier. Depending on your operating system, the
-# first characters of the host identifier should be "lc" (Linux cluster), "ibm"
-# (IBM-AIX), or "nec" (NEC-SX), respectively.
-#
-#
-# The next line is just an example. Add your own line below or replace this line.
-%host_identifier   <replace_by_your_IMUK_hostname>         lcmuk
-%host_identifier   hlogin*      lccrayh
-%host_identifier   hxc*         lccrayh
-%host_identifier   blogin*      lccrayb
-%host_identifier   bxc*         lccrayb
-#
-# IMUK
-%remote_username   <replace_by_your_IMUK_username>                             lcmuk parallel
-%tmp_user_catalog  /localdata                                                  lcmuk parallel
-%compiler_name     mpif90                                                      lcmuk parallel
-%compiler_name_ser ifort                                                       lcmuk parallel
-%cpp_options       -cpp:-DMPI_REAL=MPI_DOUBLE_PRECISION:-DMPI_2REAL=MPI_2DOUBLE_PRECISION:-D__netcdf:-D__fftw:-D__intel_compiler  lcmuk parallel
-%netcdf_inc        -I:/muksoft/packages/netcdf/4_intel/include                 lcmuk parallel
-%netcdf_lib        -L/muksoft/packages/netcdf/4_intel/lib:-lnetcdf:-lnetcdff   lcmuk parallel
-%fftw_inc          -I:/muksoft/packages/fftw/3.3.4/include                     lcmuk parallel
-%fftw_lib          -L/muksoft/packages/fftw/3.3.4/lib64:-lfftw3                lcmuk parallel
-%mopts             -j:4                                                        lcmuk parallel
-%fopts             -fpe0:-O3:-cpp:-fp-model:source:-ftz:-fno-alias:-no-prec-div:-no-prec-sqrt:-ip:-nbs:-diag-disable:8290,8291  lcmuk parallel
-%lopts             -fpe0:-O3:-cpp:-fp-model:source:-ftz:-fno-alias:-no-prec-div:-no-prec-sqrt:-ip:-nbs:-diag-disable:8290,8291  lcmuk parallel
-#
-# IMUK debug/trace mode
-%remote_username   <replace_by_your_IMUK_username>                             lcmuk parallel trace
-%tmp_user_catalog  /localdata                                                  lcmuk parallel trace
-%compiler_name     mpif90                                                      lcmuk parallel trace
-%compiler_name_ser ifort                                                       lcmuk parallel trace
-%cpp_options       -cpp:-DMPI_REAL=MPI_DOUBLE_PRECISION:-DMPI_2REAL=MPI_2DOUBLE_PRECISION:-D__netcdf:-D__fftw:-D__intel_compiler   lcmuk parallel trace
-%netcdf_inc        -I:/muksoft/packages/netcdf/4_intel/include                 lcmuk parallel trace
-%netcdf_lib        -L/muksoft/packages/netcdf/4_intel/lib:-lnetcdf:-lnetcdff   lcmuk parallel trace
-%fftw_inc          -I:/muksoft/packages/fftw/3.3.4/include                     lcmuk parallel trace
-%fftw_lib          -L/muksoft/packages/fftw/3.3.4/lib64:-lfftw3                lcmuk parallel trace
-%fopts             -fpe0:-C:-check:nooutput_conversion:-debug:-traceback:-g:-w:-xT:-O0:-ftz:-fno-alias:-no-prec-div:-no-prec-sqrt:-ip:-nbs:-convert:little_endian:-diag-disable:8290,8291  lcmuk parallel trace
-%lopts             -fpe0:-C:-check:nooutput_conversion:-debug:-traceback:-g:-w:-xT:-O0:-ftz:-fno-alias:-no-prec-div:-no-prec-sqrt:-ip:-nbs:-limf:-lm:-Vaxlib       lcmuk parallel trace
-#
-# HLRN-III Hannover
-%tmp_user_catalog    /gfs2/tmp/<replace_by_your_HLRN-III_username>      lccrayh parallel
-%tmp_data_catalog    /gfs2/work/<replace_by_your_HLRN-III_username>/palm_restart_data     lccrayh parallel
-%compiler_name       ftn                                                lccrayh parallel
-%compiler_name_ser   ftn                                                lccrayh parallel
-%cpp_options         -e:Z:-DMPI_REAL=MPI_DOUBLE_PRECISION:-DMPI_2REAL=MPI_2DOUBLE_PRECISION:-D__netcdf:-D__netcdf4:-D__netcdf4_parallel:-D__fftw   lccrayh parallel
-%mopts               -j:4                                               lccrayh parallel
-%fopts               -em:-K:trap=fp:-O3:-hnoomp:-hnoacc:-hfp3:-hdynamic           lccrayh parallel
-%lopts               -em:-K:trap=fp:-O3:-hnoomp:-hnoacc:-hfp3:-hdynamic:-dynamic  lccrayh parallel
-%remote_username     <replace_by_your_HLRN-III_username>                lccrayh parallel
-%memory              2300                                               lccrayh parallel
-%modules             fftw:cray-hdf5-parallel:cray-netcdf-hdf5parallel   lccrayh parallel
-%login_init_cmd      module:unload:cray-netcdf                          lccrayh parallel
-#
-# HLRN-III Hannover debug/trace mode
-%tmp_user_catalog    /gfs2/tmp/<replace_by_your_HLRN-III_username>      lccrayh parallel trace
-%tmp_data_catalog    /gfs2/work/<replace_by_your_HLRN-III_username>/palm_restart_data     lccrayh parallel trace
-%compiler_name       ftn                                                lccrayh parallel trace
-%compiler_name_ser   ftn                                                lccrayh parallel trace
-%cpp_options         -e:Z:-DMPI_REAL=MPI_DOUBLE_PRECISION:-DMPI_2REAL=MPI_2DOUBLE_PRECISION:-D__netcdf:-D__netcdf4:-D__netcdf4_parallel:-D__fftw   lccrayh parallel trace
-%mopts               -j:4                                               lccrayh parallel trace
-%fopts               -eD:-em:-g:-R:b:-K:trap=fp:-O0:-hnoomp:-hnoacc     lccrayh parallel trace
-%lopts               -eD:-em:-g:-R:b:-K:trap=fp:-O0:-hnoomp:-hnoacc     lccrayh parallel trace
-%remote_username     <replace_by_your_HLRN-III_username>                lccrayh parallel trace
-%memory              2300                                               lccrayh parallel trace
-%modules             fftw:cray-hdf5-parallel:cray-netcdf-hdf5parallel   lccrayh parallel trace
-%login_init_cmd      module:unload:cray-netcdf                          lccrayh parallel trace
-#
-# HLRN-III Hannover haswell
-%tmp_user_catalog    /gfs2/tmp/<replace_by_your_HLRN-III_username>      lccrayh parallel has
-%tmp_data_catalog    /gfs2/work/<replace_by_your_HLRN-III_username>/palm_restart_data     lccrayh parallel has
-%compiler_name       ftn                                                lccrayh parallel has
-%compiler_name_ser   ftn                                                lccrayh parallel has
-%cpp_options         -e:Z:-DMPI_REAL=MPI_DOUBLE_PRECISION:-DMPI_2REAL=MPI_2DOUBLE_PRECISION:-D__netcdf:-D__netcdf4:-D__netcdf4_parallel:-D__fftw   lccrayh parallel has
-%feature             mpp2                                               lccrayh parallel has
-%mopts               -j:4                                               lccrayh parallel has
-%fopts               -em:-K:trap=fp:-O3:-hnoomp:-hnoacc:-hfp3:-hdynamic lccrayh parallel has
-%lopts               -em:-K:trap=fp:-O3:-hnoomp:-hnoacc:-hfp3:-hdynamic:-dynamic   lccrayh parallel has
-%remote_username     <replace_by_your_HLRN-III_username>                lccrayh parallel has
-%memory              2300                                               lccrayh parallel has
-%modules             fftw:cray-hdf5-parallel:cray-netcdf-hdf5parallel:craype-haswell   lccrayh parallel has
-%login_init_cmd      module:unload:cray-netcdf:craype-ivybridge         lccrayh parallel has
-#
-# HLRN-III Berlin
-%tmp_user_catalog    /gfs2/tmp/<replace_by_your_HLRN-III_username>     lccrayb parallel
-%tmp_data_catalog    /gfs2/work/<replace_by_your_HLRN-III_username>/palm_restart_data     lccrayb parallel
-%compiler_name       ftn                                                lccrayb parallel
-%compiler_name_ser   ftn                                                lccrayb parallel
-%cpp_options         -e:Z:-DMPI_REAL=MPI_DOUBLE_PRECISION:-DMPI_2REAL=MPI_2DOUBLE_PRECISION:-D__netcdf:-D__netcdf4:-D__netcdf4_parallel:-D__fftw   lccrayb parallel
-%mopts               -j:4                                               lccrayb parallel
-%fopts               -em:-K:trap=fp:-O3:-hnoomp:-hnoacc:-hfp3:-hdynamic           lccrayb parallel
-%lopts               -em:-K:trap=fp:-O3:-hnoomp:-hnoacc:-hfp3:-hdynamic:-dynamic  lccrayb parallel
-%remote_username     <replace_by_your_HLRN-III_username>                lccrayb parallel
-%memory              2300                                               lccrayb parallel
-%modules             fftw:cray-hdf5-parallel:cray-netcdf-hdf5parallel   lccrayb parallel
-%login_init_cmd      module:unload:cray-netcdf                          lccrayb parallel
-#
-# HLRN-III Berlin debug/trace mode
-%tmp_user_catalog    /gfs2/tmp/<replace_by_your_HLRN-III_username>     lccrayb parallel trace
-%tmp_data_catalog    /gfs2/work/<replace_by_your_HLRN-III_username>/palm_restart_data     lccrayb parallel trace
-%compiler_name       ftn                                                lccrayb parallel trace
-%compiler_name_ser   ftn                                                lccrayb parallel trace
-%cpp_options         -e:Z:-DMPI_REAL=MPI_DOUBLE_PRECISION:-DMPI_2REAL=MPI_2DOUBLE_PRECISION:-D__netcdf:-D__netcdf4:-D__netcdf4_parallel:-D__fftw   lccrayb parallel trace
-%mopts               -j:4                                               lccrayb parallel trace
-%fopts               -eD:-em:-g:-R:b:-K:trap=fp:-O0:-hnoomp:-hnoacc     lccrayb parallel trace
-%lopts               -eD:-em:-g:-R:b:-K:trap=fp:-O0:-hnoomp:-hnoacc     lccrayb parallel trace
-%remote_username     <replace_by_your_HLRN-III_username>                lccrayb parallel trace
-%memory              2300                                               lccrayb parallel trace
-%modules             fftw:cray-hdf5-parallel:cray-netcdf-hdf5parallel   lccrayb parallel trace
-%login_init_cmd      module:unload:cray-netcdf                          lccrayb parallel trace
-#
-%write_binary        true                             restart
-#
-#----------------------------------------------------------------------------
-# INPUT-commands, executed before running PALM - lines must start with "IC:"
-#----------------------------------------------------------------------------
-#IC:
-IC:[[ \$localhost = lccrayb ]]  &&  export ATP_ENABLED=1
-IC:[[ \$localhost = lccrayb ]]  &&  export MPICH_GNI_BTE_MULTI_CHANNEL=disabled
-#IC:[[ \$localhost = lccrayb ]]  &&  export APRUN_XFER_LIMITS=1
-#IC:[[ \$localhost = lccrayb ]]  &&  export APRUN_XFER_STACK_LIMIT=0
-#IC:[[ \$localhost = lccrayb ]]  &&  ulimit -v unlimited
-#IC:[[ \$localhost = lccrayb ]]  &&  ulimit -s unlimited
-#IC:[[ \$localhost = lccrayb ]]  &&  export MPICH_MPIIO_HINTS_DISPLAY=1
-#IC:[[ \$localhost = lccrayb ]]  &&  export MPICH_MPIIO_STATS=1
-#IC:[[ \$localhost = lccrayb ]]  &&  E8="=8"
-#IC:[[ \$localhost = lccrayb ]]  &&  export MPICH_MPIIO_HINTS="*DATA_**:striping_factor"\$E8
-IC:[[ \$localhost = lccrayh ]]  &&  export ATP_ENABLED=1
-IC:[[ \$localhost = lccrayh ]]  &&  export MPICH_GNI_BTE_MULTI_CHANNEL=disabled
-#IC:[[ \$localhost = lccrayh ]]  &&  export APRUN_XFER_LIMITS=1
-#IC:[[ \$localhost = lccrayh ]]  &&  export APRUN_XFER_STACK_LIMIT=0
-#IC:[[ \$localhost = lccrayh ]]  &&  ulimit -v unlimited
-#IC:[[ \$localhost = lccrayh ]]  &&  ulimit -s unlimited
-#IC:[[ \$localhost = lccrayh ]]  &&  export MPICH_MPIIO_HINTS_DISPLAY=1
-#IC:[[ \$localhost = lccrayh ]]  &&  export MPICH_MPIIO_STATS=1
-#IC:[[ \$localhost = lccrayh ]]  &&  E8="=8"
-#IC:[[ \$localhost = lccrayh ]]  &&  export MPICH_MPIIO_HINTS="*DATA_**:striping_factor"\$E8
-#
-#----------------------------------------------------------------------------
-# ERROR-commands - executed when program terminates abnormally
-#----------------------------------------------------------------------------
-EC:[[ \$locat = execution ]]  &&  cat  RUN_CONTROL
-#
-#----------------------------------------------------------------------------
-# OUTPUT-commands - executed when program terminates normally
-#----------------------------------------------------------------------------
-# Combine all particle information files
-OC:[[ -f PARTICLE_INFOS/_0000 ]]  &&  cat  PARTICLE_INFOS/* >> PARTICLE_INFO
-#
-#----------------------------------------------------------------------------
-# List of input-files
-#----------------------------------------------------------------------------
-PARIN                    in:job        d3#      $base_data/$fname/INPUT    _p3d
-PARIN                    in:job        d3f      $base_data/$fname/INPUT    _p3df
-TOPOGRAPHY_DATA          in:locopt     d3#:d3f  $base_data/$fname/INPUT    _topo
-TOPOGRAPHY_DATA_NC       in:locopt     d3#:d3f  $base_data/$fname/INPUT    _topo_nc
-NUDGING_DATA             in:locopt     d3#:d3f  $base_data/$fname/INPUT    _nudge
-LSF_DATA                 in:locopt     d3#:d3f  $base_data/$fname/INPUT    _lsf
-WTM_DATA                 in:locopt     d3#:d3f  $base_data/$fname/INPUT    _wtm
-STG_PROFILES             in:locopt     d3#:d3f  $base_data/$fname/INPUT    _stgpr
-BININ                    in:loc:lnpe   d3f:cycfill  $tmp_data_catalog/$fname/RESTART  _d3d
-PARTICLE_RESTART_DATA_IN in:loc:lnpe   prtf     $tmp_data_catalog/$fname/RESTART  _rprt
-DATA_1D_FL_NETCDF        in:locopt     flf      $base_data/$fname/OUTPUT   _fl     nc
-DATA_1D_PR_NETCDF        in:locopt     prf      $base_data/$fname/OUTPUT   _pr     nc
-DATA_1D_SP_NETCDF        in:locopt     spf      $base_data/$fname/OUTPUT   _sp     nc
-DATA_1D_TS_NETCDF        in:locopt     tsf      $base_data/$fname/OUTPUT   _ts     nc
-DATA_1D_PTS_NETCDF       in:locopt     ptsf     $base_data/$fname/OUTPUT   _pts    nc
-DATA_2D_XY_NETCDF        in:locopt     xyf      $base_data/$fname/OUTPUT   _xy     nc
-DATA_2D_XY_AV_NETCDF     in:locopt     xyf      $base_data/$fname/OUTPUT   _xy_av  nc
-DATA_2D_XZ_NETCDF        in:locopt     xzf      $base_data/$fname/OUTPUT   _xz     nc
-DATA_2D_YZ_NETCDF        in:locopt     yzf      $base_data/$fname/OUTPUT   _yz     nc
-DATA_3D_NETCDF           in:locopt     3df      $base_data/$fname/OUTPUT   _3d     nc
-DATA_PRT_NETCDF          in:locopt:pe  prtf     $base_data/$fname/OUTPUT   _prt
-#
-#----------------------------------------------------------------------------
-# List of output-files
-#----------------------------------------------------------------------------
-BINOUT                    out:loc:lnpe restart   $tmp_data_catalog/$fname/RESTART  _d3d
-PARTICLE_RESTART_DATA_OUT out:loc:lnpe prt#:prtf $tmp_data_catalog/$fname/RESTART  _rprt
-#
-RUN_CONTROL       out:loc:tr   d3#     $base_data/$fname/MONITORING  _rc
-RUN_CONTROL       out:loc:tra  d3f     $base_data/$fname/MONITORING  _rc
-HEADER            out:loc:tr   d3#     $base_data/$fname/MONITORING  _header
-HEADER            out:loc:tra  d3f     $base_data/$fname/MONITORING  _header
-CPU_MEASURES      out:loc:tr   d3#     $base_data/$fname/MONITORING  _cpu
-CPU_MEASURES      out:loc:tra  d3f     $base_data/$fname/MONITORING  _cpu
-TURBINE_PARAMETERS01  out:loc:tr  d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters01
-TURBINE_PARAMETERS02  out:loc:tr  d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters02
-TURBINE_PARAMETERS03  out:loc:tr  d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters03
-TURBINE_PARAMETERS04  out:loc:tr  d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters04
-#
-DATA_1D_FL_NETCDF    out:loc:tr   fl#:flf   $base_data/$fname/OUTPUT  _fl      nc
-DATA_1D_PR_NETCDF    out:loc:tr   pr#:prf   $base_data/$fname/OUTPUT  _pr      nc
-DATA_1D_SP_NETCDF    out:loc:tr   sp#:spf   $base_data/$fname/OUTPUT  _sp      nc
-DATA_1D_TS_NETCDF    out:loc:tr   ts#:tsf   $base_data/$fname/OUTPUT  _ts      nc
-DATA_1D_PTS_NETCDF   out:loc:tr   pts#:ptsf $base_data/$fname/OUTPUT  _pts     nc
-DATA_2D_XY_NETCDF    out:loc:tr   xy#:xyf   $base_data/$fname/OUTPUT  _xy      nc
-DATA_2D_XY_AV_NETCDF out:loc:tr   xy#:xyf   $base_data/$fname/OUTPUT  _xy_av   nc
-DATA_2D_XZ_NETCDF    out:loc:tr   xz#:xzf   $base_data/$fname/OUTPUT  _xz      nc
-DATA_2D_XZ_AV_NETCDF out:loc:tr   xz#:xzf   $base_data/$fname/OUTPUT  _xz_av   nc
-DATA_2D_YZ_NETCDF    out:loc:tr   yz#:yzf   $base_data/$fname/OUTPUT  _yz      nc
-DATA_2D_YZ_AV_NETCDF out:loc:tr   yz#:yzf   $base_data/$fname/OUTPUT  _yz_av   nc
-DATA_3D_NETCDF       out:loc:tr   3d#:3df   $base_data/$fname/OUTPUT  _3d      nc
-DATA_3D_AV_NETCDF    out:loc:tr   3d#:3df   $base_data/$fname/OUTPUT  _3d_av   nc
-DATA_MASK_01_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m01     nc
-DATA_MASK_01_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m01_av  nc
-DATA_MASK_02_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m02     nc
-DATA_MASK_02_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m02_av  nc
-DATA_MASK_03_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m03     nc
-DATA_MASK_03_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m03_av  nc
-DATA_MASK_04_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m04     nc
-DATA_MASK_04_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m04_av  nc
-DATA_MASK_05_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m05     nc
-DATA_MASK_05_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m05_av  nc
-DATA_MASK_06_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m06     nc
-DATA_MASK_06_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m06_av  nc
-DATA_MASK_07_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m07     nc
-DATA_MASK_07_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m07_av  nc
-DATA_MASK_08_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m08     nc
-DATA_MASK_08_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m08_av  nc
-DATA_MASK_09_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m09     nc
-DATA_MASK_09_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m09_av  nc
-DATA_MASK_10_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m10     nc
-DATA_MASK_10_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m10_av  nc
-DATA_MASK_11_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m11     nc
-DATA_MASK_11_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m11_av  nc
-DATA_MASK_12_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m12     nc
-DATA_MASK_12_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m12_av  nc
-DATA_MASK_13_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m13     nc
-DATA_MASK_13_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m13_av  nc
-DATA_MASK_14_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m14     nc
-DATA_MASK_14_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m14_av  nc
-DATA_MASK_15_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m15     nc
-DATA_MASK_15_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m15_av  nc
-DATA_MASK_16_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m16     nc
-DATA_MASK_16_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m16_av  nc
-DATA_MASK_17_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m17     nc
-DATA_MASK_17_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m17_av  nc
-DATA_MASK_18_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m18     nc
-DATA_MASK_18_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m18_av  nc
-DATA_MASK_19_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m19     nc
-DATA_MASK_19_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m19_av  nc
-DATA_MASK_20_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m20     nc
-DATA_MASK_20_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m20_av  nc
-DATA_PRT_NETCDF      out:loc:pe   prt#:prtf $base_data/$fname/OUTPUT  _prt     nc
-DATA_PRT_NETCDF      out:loc:trpe prt#:prtf $base_data/$fname/OUTPUT  _prt     nc
-DATA_DVR             out:loc:trpe dvr       $base_data/$fname/OUTPUT  _dvr
-#
-DVRP_LOG          out:loc:tr   dv#       $base_data/$fname/MONITORING  _dvrp_log
-DVRP_LOG          out:loc:tra  dvf       $base_data/$fname/MONITORING  _dvrp_log
-PARTICLE_INFO     out:loc:tr   pt#       $base_data/$fname/MONITORING  _prt_info
-PARTICLE_INFO     out:loc:tra  ptf       $base_data/$fname/MONITORING  _prt_info
-PARTICLE_DATA     out:loc:lnpe prt#:prtf $tmp_data_catalog/$fname/OUTPUT      _prt_dat
-# A BLANK LINE MUST FOLLOW
Index: palm/trunk/SCRIPTS/.mrun.config.imuk_hlrnIII_rrtmg
===================================================================
--- palm/trunk/SCRIPTS/.mrun.config.imuk_hlrnIII_rrtmg	(revision 2693)
+++ 	(revision )
@@ -1,257 +1,0 @@
-#$Id$
-#column 1          column 2                                   column 3
-#name of variable  value of variable (~ must not be used)     scope
-#----------------------------------------------------------------------------
-%mainprog          palm.f90
-%base_directory    $HOME/palm/current_version
-%base_data         ~/palm/current_version/JOBS
-%source_path       $base_directory/trunk/SOURCE
-%add_source_path   $base_directory/USER_CODE/$fname
-%depository_path   $base_directory/MAKE_DEPOSITORY
-#%use_makefile      true
-#
-# Enter your own host below by adding another line containing in the second
-# column your hostname (as provided by the unix command "hostname") and in the
-# third column the host identifier. Depending on your operating system, the
-# first characters of the host identifier should be "lc" (Linux cluster), "ibm"
-# (IBM-AIX), or "nec" (NEC-SX), respectively.
-#
-#
-# The next line is just an example. Add your own line below or replace this line.
-%host_identifier   <replace_by_your_IMUK_hostname>         lcmuk
-%host_identifier   hlogin*      lccrayh
-%host_identifier   hxc*         lccrayh
-%host_identifier   blogin*      lccrayb
-%host_identifier   bxc*         lccrayb
-#
-# IMUK
-%remote_username   <replace_by_your_IMUK_username>                             lcmuk parallel rrtmg
-%tmp_user_catalog  /localdata                                                  lcmuk parallel rrtmg
-%tmp_data_catalog  /localdata                                                  lcmuk parallel rrtmg
-%compiler_name     mpif90                                                      lcmuk parallel rrtmg
-%compiler_name_ser ifort                                                       lcmuk parallel rrtmg
-%cpp_options       -cpp:-DMPI_REAL=MPI_DOUBLE_PRECISION:-DMPI_2REAL=MPI_2DOUBLE_PRECISION:-D__netcdf:-D__fftw:-D__intel_compiler:-D__rrtmg  lcmuk parallel rrtmg
-%netcdf_inc        -I:/muksoft/packages/netcdf/4_intel/include                 lcmuk parallel rrtmg
-%netcdf_lib        -L/muksoft/packages/netcdf/4_intel/lib:-lnetcdf:-lnetcdff   lcmuk parallel rrtmg
-%fftw_inc          -I:/muksoft/packages/fftw/3.3.4/include                     lcmuk parallel rrtmg
-%fftw_lib          -L/muksoft/packages/fftw/3.3.4/lib64:-lfftw3                lcmuk parallel rrtmg
-%mopts             -j:4                                                        lcmuk parallel rrtmg
-%fopts             -fpe0:-O3:-cpp:-fp-model:source:-ftz:-fno-alias:-no-prec-div:-no-prec-sqrt:-ip:-nbs:-diag-disable:8290,8291:-I:/home/<replace_by_your_IMUK_username>/rrtmg/shared/include  lcmuk parallel rrtmg
-%lopts             -fpe0:-O3:-cpp:-fp-model:source:-ftz:-fno-alias:-no-prec-div:-no-prec-sqrt:-ip:-nbs:-diag-disable:8290,8291:-L/home/<replace_by_your_IMUK_username>/rrtmg/shared/lib:-lrrtmg  lcmuk parallel rrtmg
-#
-# IMUK debug/trace mode
-%remote_username   <replace_by_your_IMUK_username>                             lcmuk parallel trace_rrtmg
-%tmp_user_catalog  /localdata                                                  lcmuk parallel trace_rrtmg
-%tmp_data_catalog  /localdata                                                  lcmuk parallel trace_rrtmg
-%compiler_name     mpif90                                                      lcmuk parallel trace_rrtmg
-%compiler_name_ser ifort                                                       lcmuk parallel trace_rrtmg
-%cpp_options       -cpp:-DMPI_REAL=MPI_DOUBLE_PRECISION:-DMPI_2REAL=MPI_2DOUBLE_PRECISION:-D__netcdf:-D__fftw:-D__intel_compiler:-D__rrtmg   lcmuk parallel trace_rrtmg
-%netcdf_inc        -I:/muksoft/packages/netcdf/4_intel/include                 lcmuk parallel trace_rrtmg
-%netcdf_lib        -L/muksoft/packages/netcdf/4_intel/lib:-lnetcdf:-lnetcdff   lcmuk parallel trace_rrtmg
-%fftw_inc          -I:/muksoft/packages/fftw/3.3.4/include                     lcmuk parallel trace_rrtmg
-%fftw_lib          -L/muksoft/packages/fftw/3.3.4/lib64:-lfftw3                lcmuk parallel trace_rrtmg
-%fopts             -fpe0:-C:-check:nooutput_conversion:-debug:-traceback:-g:-w:-xT:-O0:-ftz:-fno-alias:-no-prec-div:-no-prec-sqrt:-ip:-nbs:-convert:little_endian:-diag-disable:8290,8291:-I:/home/<replace_by_your_IMUK_username>/rrtmg/static_trace/include  lcmuk parallel trace_rrtmg
-%lopts             -fpe0:-C:-check:nooutput_conversion:-debug:-traceback:-g:-w:-xT:-O0:-ftz:-fno-alias:-no-prec-div:-no-prec-sqrt:-ip:-nbs:-limf:-lm:-Vaxlib:-L/home/<replace_by_your_IMUK_username>/rrtmg/static_trace/lib:-lrrtmg       lcmuk parallel trace_rrtmg
-#
-# HLRN-III Hannover
-%tmp_user_catalog    /gfs2/tmp/<replace_by_your_HLRN-III_username>      lccrayh parallel rrtmg
-%tmp_data_catalog    /gfs2/work/<replace_by_your_HLRN-III_username>/palm_restart_data     lccrayh parallel rrtmg
-%compiler_name       ftn                                                lccrayh parallel rrtmg
-%compiler_name_ser   ftn                                                lccrayh parallel rrtmg
-%cpp_options         -e:Z:-DMPI_REAL=MPI_DOUBLE_PRECISION:-DMPI_2REAL=MPI_2DOUBLE_PRECISION:-D__netcdf:-D__netcdf4:-D__netcdf4_parallel:-D__fftw:-D__rrtmg   lccrayh parallel rrtmg
-%mopts               -j:4                                               lccrayh parallel rrtmg
-%fopts               -em:-K:trap=fp:-O3:-hnoomp:-hnoacc:-hfp3:-hdynamic:-I:/home/h/<replace_by_your_HLRN_username>/rrtmg/shared/include              lccrayh parallel rrtmg
-%lopts               -em:-K:trap=fp:-O3:-hnoomp:-hnoacc:-hfp3:-hdynamic:-dynamic:-L/home/h/<replace_by_your_HLRN_username>/rrtmg/shared/lib:-lrrtmg  lccrayh parallel rrtmg
-%remote_username     <replace_by_your_HLRN-III_username>                lccrayh parallel rrtmg
-%memory              2300                                               lccrayh parallel rrtmg
-%modules             fftw:cray-hdf5-parallel:cray-netcdf-hdf5parallel   lccrayh parallel rrtmg
-%login_init_cmd      module:unload:cray-netcdf                          lccrayh parallel rrtmg
-#
-# HLRN-III Hannover debug/trace mode
-%tmp_user_catalog    /gfs2/tmp/<replace_by_your_HLRN-III_username>      lccrayh parallel trace_rrtmg
-%tmp_data_catalog    /gfs2/work/<replace_by_your_HLRN-III_username>/palm_restart_data     lccrayh parallel trace_rrtmg
-%compiler_name       ftn                                                lccrayh parallel trace_rrtmg
-%compiler_name_ser   ftn                                                lccrayh parallel trace_rrtmg
-%cpp_options         -e:Z:-DMPI_REAL=MPI_DOUBLE_PRECISION:-DMPI_2REAL=MPI_2DOUBLE_PRECISION:-D__netcdf:-D__netcdf4:-D__netcdf4_parallel:-D__fftw:-D__rrtmg   lccrayh parallel trace_rrtmg
-%mopts               -j:4                                               lccrayh parallel trace_rrtmg
-%fopts               -eD:-em:-g:-R:b:-K:trap=fp:-O0:-hnoomp:-hnoacc:-I:/home/h/<replace_by_your_HLRN_username>/rrtmg/static_trace/include  lccrayh parallel trace_rrtmg
-%lopts               -eD:-em:-g:-R:b:-K:trap=fp:-O0:-hnoomp:-hnoacc:-L/home/h/<replace_by_your_HLRN_username>/rrtmg/static_trace/lib:-lrrtmg             lccrayh parallel trace_rrtmg
-%remote_username     <replace_by_your_HLRN-III_username>                lccrayh parallel trace_rrtmg
-%memory              2300                                               lccrayh parallel trace_rrtmg
-%modules             fftw:cray-hdf5-parallel:cray-netcdf-hdf5parallel   lccrayh parallel trace_rrtmg
-%login_init_cmd      module:unload:cray-netcdf                          lccrayh parallel trace_rrtmg
-#
-# HLRN-III Berlin
-%tmp_user_catalog    /gfs2/tmp/<replace_by_your_HLRN-III_username>      lccrayb parallel rrtmg
-%tmp_data_catalog    /gfs2/work/<replace_by_your_HLRN-III_username>/palm_restart_data     lccrayb parallel rrtmg
-%compiler_name       ftn                                                lccrayb parallel rrtmg
-%compiler_name_ser   ftn                                                lccrayb parallel rrtmg
-%cpp_options         -e:Z:-DMPI_REAL=MPI_DOUBLE_PRECISION:-DMPI_2REAL=MPI_2DOUBLE_PRECISION:-D__netcdf:-D__netcdf4:-D__netcdf4_parallel:-D__fftw:-D__rrtmg   lccrayb parallel rrtmg
-%mopts               -j:4                                               lccrayb parallel rrtmg
-%fopts               -em:-K:trap=fp:-O3:-hnoomp:-hnoacc:-hfp3:-hdynamic:-I:/home/b/<replace_by_your_HLRN_username>/rrtmg/shared/include              lccrayb parallel rrtmg
-%lopts               -em:-K:trap=fp:-O3:-hnoomp:-hnoacc:-hfp3:-hdynamic:-dynamic:-L/home/h/<replace_by_your_HLRN_username>/rrtmg/shared/lib:-lrrtmg  lccrayb parallel rrtmg
-%remote_username     <replace_by_your_HLRN-III_username>                lccrayb parallel rrtmg
-%memory              2300                                               lccrayb parallel rrtmg
-%modules             fftw:cray-hdf5-parallel:cray-netcdf-hdf5parallel   lccrayb parallel rrtmg
-%login_init_cmd      module:unload:cray-netcdf                          lccrayb parallel rrtmg
-#
-# HLRN-III Berlin debug/trace mode
-%tmp_user_catalog    /gfs2/tmp/<replace_by_your_HLRN-III_username>      lccrayb parallel trace_rrtmg
-%tmp_data_catalog    /gfs2/work/<replace_by_your_HLRN-III_username>/palm_restart_data     lccrayb parallel trace_rrtmg
-%compiler_name       ftn                                                lccrayb parallel trace_rrtmg
-%compiler_name_ser   ftn                                                lccrayb parallel trace_rrtmg
-%cpp_options         -e:Z:-DMPI_REAL=MPI_DOUBLE_PRECISION:-DMPI_2REAL=MPI_2DOUBLE_PRECISION:-D__netcdf:-D__netcdf4:-D__netcdf4_parallel:-D__fftw:-D__rrtmg   lccrayb parallel trace_rrtmg
-%mopts               -j:4                                               lccrayb parallel trace_rrtmg
-%fopts               -eD:-em:-g:-R:b:-K:trap=fp:-O0:-hnoomp:-hnoacc:-I:/home/b/<replace_by_your_HLRN_username>/rrtmg/static_trace/include   lccrayb parallel trace_rrtmg
-%lopts               -eD:-em:-g:-R:b:-K:trap=fp:-O0:-hnoomp:-hnoacc:-L/home/h/<replace_by_your_HLRN_username>/rrtmg/static_trace/lib:-lrrtmg             lccrayb parallel trace_rrtmg
-%remote_username     <replace_by_your_HLRN-III_username>                lccrayb parallel trace_rrtmg
-%memory              2300                                               lccrayb parallel trace_rrtmg
-%modules             fftw:cray-hdf5-parallel:cray-netcdf-hdf5parallel   lccrayb parallel trace_rrtmg
-%login_init_cmd      module:unload:cray-netcdf                          lccrayb parallel trace_rrtmg
-#
-%write_binary        true                             restart
-#
-#----------------------------------------------------------------------------
-# INPUT-commands, executed before running PALM - lines must start with "IC:"
-#----------------------------------------------------------------------------
-#IC:
-IC:[[ \$localhost = lccrayb ]]  &&  export ATP_ENABLED=1
-IC:[[ \$localhost = lccrayb ]]  &&  export MPICH_GNI_BTE_MULTI_CHANNEL=disabled
-#IC:[[ \$localhost = lccrayb ]]  &&  export APRUN_XFER_LIMITS=1
-#IC:[[ \$localhost = lccrayb ]]  &&  export APRUN_XFER_STACK_LIMIT=0
-#IC:[[ \$localhost = lccrayb ]]  &&  ulimit -v unlimited
-#IC:[[ \$localhost = lccrayb ]]  &&  ulimit -s unlimited
-#IC:[[ \$localhost = lccrayb ]]  &&  export MPICH_MPIIO_HINTS_DISPLAY=1
-#IC:[[ \$localhost = lccrayb ]]  &&  export MPICH_MPIIO_STATS=1
-#IC:[[ \$localhost = lccrayb ]]  &&  E8="=8"
-#IC:[[ \$localhost = lccrayb ]]  &&  export MPICH_MPIIO_HINTS="*DATA_**:striping_factor"\$E8
-IC:[[ \$localhost = lccrayh ]]  &&  export ATP_ENABLED=1
-IC:[[ \$localhost = lccrayh ]]  &&  export MPICH_GNI_BTE_MULTI_CHANNEL=disabled
-#IC:[[ \$localhost = lccrayh ]]  &&  export APRUN_XFER_LIMITS=1
-#IC:[[ \$localhost = lccrayh ]]  &&  export APRUN_XFER_STACK_LIMIT=0
-#IC:[[ \$localhost = lccrayh ]]  &&  ulimit -v unlimited
-#IC:[[ \$localhost = lccrayh ]]  &&  ulimit -s unlimited
-#IC:[[ \$localhost = lccrayh ]]  &&  export MPICH_MPIIO_HINTS_DISPLAY=1
-#IC:[[ \$localhost = lccrayh ]]  &&  export MPICH_MPIIO_STATS=1
-#IC:[[ \$localhost = lccrayh ]]  &&  E8="=8"
-#IC:[[ \$localhost = lccrayh ]]  &&  export MPICH_MPIIO_HINTS="*DATA_**:striping_factor"\$E8
-#
-#----------------------------------------------------------------------------
-# ERROR-commands - executed when program terminates abnormally
-#----------------------------------------------------------------------------
-EC:[[ \$locat = execution ]]  &&  cat  RUN_CONTROL
-#
-#----------------------------------------------------------------------------
-# OUTPUT-commands - executed when program terminates normally
-#----------------------------------------------------------------------------
-# Combine all particle information files
-OC:[[ -f PARTICLE_INFOS/_0000 ]]  &&  cat  PARTICLE_INFOS/* >> PARTICLE_INFO
-#
-#----------------------------------------------------------------------------
-# List of input-files
-#----------------------------------------------------------------------------
-PARIN                    in:job        d3#      $base_data/$fname/INPUT    _p3d
-PARIN                    in:job        d3f      $base_data/$fname/INPUT    _p3df
-rrtmg_lw.nc              in:locopt     d3#:d3f  $base_data/$fname/INPUT    _rlw nc
-rrtmg_sw.nc              in:locopt     d3#:d3f  $base_data/$fname/INPUT    _rsw nc
-RAD_SND_DATA             in:locopt     d3#:d3f  $base_data/$fname/INPUT    _rsnd nc
-TOPOGRAPHY_DATA          in:locopt     d3#:d3f  $base_data/$fname/INPUT    _topo
-TOPOGRAPHY_DATA_NC       in:locopt     d3#:d3f  $base_data/$fname/INPUT    _topo_nc
-NUDGING_DATA             in:locopt     d3#:d3f  $base_data/$fname/INPUT    _nudge
-LSF_DATA                 in:locopt     d3#:d3f  $base_data/$fname/INPUT    _lsf
-WTM_DATA                 in:locopt     d3#:d3f  $base_data/$fname/INPUT    _wtm
-STG_PROFILES             in:locopt     d3#:d3f  $base_data/$fname/INPUT    _stgpr
-BININ                    in:loc:lnpe   d3f:cycfill  $tmp_data_catalog/$fname/RESTART  _d3d
-PARTICLE_RESTART_DATA_IN in:loc:lnpe   prtf     $tmp_data_catalog/$fname/RESTART  _rprt
-DATA_1D_FL_NETCDF        in:locopt     flf      $base_data/$fname/OUTPUT   _fl     nc
-DATA_1D_PR_NETCDF        in:locopt     prf      $base_data/$fname/OUTPUT   _pr     nc
-DATA_1D_SP_NETCDF        in:locopt     spf      $base_data/$fname/OUTPUT   _sp     nc
-DATA_1D_TS_NETCDF        in:locopt     tsf      $base_data/$fname/OUTPUT   _ts     nc
-DATA_1D_PTS_NETCDF       in:locopt     ptsf     $base_data/$fname/OUTPUT   _pts    nc
-DATA_2D_XY_NETCDF        in:locopt     xyf      $base_data/$fname/OUTPUT   _xy     nc
-DATA_2D_XY_AV_NETCDF     in:locopt     xyf      $base_data/$fname/OUTPUT   _xy_av  nc
-DATA_2D_XZ_NETCDF        in:locopt     xzf      $base_data/$fname/OUTPUT   _xz     nc
-DATA_2D_YZ_NETCDF        in:locopt     yzf      $base_data/$fname/OUTPUT   _yz     nc
-DATA_3D_NETCDF           in:locopt     3df      $base_data/$fname/OUTPUT   _3d     nc
-DATA_PRT_NETCDF          in:locopt:pe  prtf     $base_data/$fname/OUTPUT   _prt
-#
-#----------------------------------------------------------------------------
-# List of output-files
-#----------------------------------------------------------------------------
-BINOUT                    out:loc:lnpe restart   $tmp_data_catalog/$fname/RESTART  _d3d
-PARTICLE_RESTART_DATA_OUT out:loc:lnpe prt#:prtf $tmp_data_catalog/$fname/RESTART  _rprt
-#
-RUN_CONTROL       out:loc:tr   d3#     $base_data/$fname/MONITORING  _rc
-RUN_CONTROL       out:loc:tra  d3f     $base_data/$fname/MONITORING  _rc
-HEADER            out:loc:tr   d3#     $base_data/$fname/MONITORING  _header
-HEADER            out:loc:tra  d3f     $base_data/$fname/MONITORING  _header
-CPU_MEASURES      out:loc:tr   d3#     $base_data/$fname/MONITORING  _cpu
-CPU_MEASURES      out:loc:tra  d3f     $base_data/$fname/MONITORING  _cpu
-TURBINE_PARAMETERS01  out:loc:tr  d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters01
-TURBINE_PARAMETERS02  out:loc:tr  d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters02
-TURBINE_PARAMETERS03  out:loc:tr  d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters03
-TURBINE_PARAMETERS04  out:loc:tr  d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters04
-#
-DATA_1D_FL_NETCDF    out:loc:tr   fl#:flf   $base_data/$fname/OUTPUT  _fl      nc
-DATA_1D_PR_NETCDF    out:loc:tr   pr#:prf   $base_data/$fname/OUTPUT  _pr      nc
-DATA_1D_SP_NETCDF    out:loc:tr   sp#:spf   $base_data/$fname/OUTPUT  _sp      nc
-DATA_1D_TS_NETCDF    out:loc:tr   ts#:tsf   $base_data/$fname/OUTPUT  _ts      nc
-DATA_1D_PTS_NETCDF   out:loc:tr   pts#:ptsf $base_data/$fname/OUTPUT  _pts     nc
-DATA_2D_XY_NETCDF    out:loc:tr   xy#:xyf   $base_data/$fname/OUTPUT  _xy      nc
-DATA_2D_XY_AV_NETCDF out:loc:tr   xy#:xyf   $base_data/$fname/OUTPUT  _xy_av   nc
-DATA_2D_XZ_NETCDF    out:loc:tr   xz#:xzf   $base_data/$fname/OUTPUT  _xz      nc
-DATA_2D_XZ_AV_NETCDF out:loc:tr   xz#:xzf   $base_data/$fname/OUTPUT  _xz_av   nc
-DATA_2D_YZ_NETCDF    out:loc:tr   yz#:yzf   $base_data/$fname/OUTPUT  _yz      nc
-DATA_2D_YZ_AV_NETCDF out:loc:tr   yz#:yzf   $base_data/$fname/OUTPUT  _yz_av   nc
-DATA_3D_NETCDF       out:loc:tr   3d#:3df   $base_data/$fname/OUTPUT  _3d      nc
-DATA_3D_AV_NETCDF    out:loc:tr   3d#:3df   $base_data/$fname/OUTPUT  _3d_av   nc
-DATA_MASK_01_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m01     nc
-DATA_MASK_01_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m01_av  nc
-DATA_MASK_02_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m02     nc
-DATA_MASK_02_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m02_av  nc
-DATA_MASK_03_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m03     nc
-DATA_MASK_03_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m03_av  nc
-DATA_MASK_04_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m04     nc
-DATA_MASK_04_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m04_av  nc
-DATA_MASK_05_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m05     nc
-DATA_MASK_05_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m05_av  nc
-DATA_MASK_06_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m06     nc
-DATA_MASK_06_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m06_av  nc
-DATA_MASK_07_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m07     nc
-DATA_MASK_07_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m07_av  nc
-DATA_MASK_08_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m08     nc
-DATA_MASK_08_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m08_av  nc
-DATA_MASK_09_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m09     nc
-DATA_MASK_09_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m09_av  nc
-DATA_MASK_10_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m10     nc
-DATA_MASK_10_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m10_av  nc
-DATA_MASK_11_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m11     nc
-DATA_MASK_11_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m11_av  nc
-DATA_MASK_12_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m12     nc
-DATA_MASK_12_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m12_av  nc
-DATA_MASK_13_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m13     nc
-DATA_MASK_13_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m13_av  nc
-DATA_MASK_14_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m14     nc
-DATA_MASK_14_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m14_av  nc
-DATA_MASK_15_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m15     nc
-DATA_MASK_15_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m15_av  nc
-DATA_MASK_16_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m16     nc
-DATA_MASK_16_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m16_av  nc
-DATA_MASK_17_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m17     nc
-DATA_MASK_17_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m17_av  nc
-DATA_MASK_18_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m18     nc
-DATA_MASK_18_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m18_av  nc
-DATA_MASK_19_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m19     nc
-DATA_MASK_19_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m19_av  nc
-DATA_MASK_20_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m20     nc
-DATA_MASK_20_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m20_av  nc
-DATA_PRT_NETCDF      out:loc:pe   prt#:prtf $base_data/$fname/OUTPUT  _prt     nc
-DATA_PRT_NETCDF      out:loc:trpe prt#:prtf $base_data/$fname/OUTPUT  _prt     nc
-DATA_DVR             out:loc:trpe dvr       $base_data/$fname/OUTPUT  _dvr
-#
-DVRP_LOG          out:loc:tr   dv#       $base_data/$fname/MONITORING  _dvrp_log
-DVRP_LOG          out:loc:tra  dvf       $base_data/$fname/MONITORING  _dvrp_log
-PARTICLE_INFO     out:loc:tr   pt#       $base_data/$fname/MONITORING  _prt_info
-PARTICLE_INFO     out:loc:tra  ptf       $base_data/$fname/MONITORING  _prt_info
-PARTICLE_DATA     out:loc:lnpe prt#:prtf $tmp_data_catalog/$fname/OUTPUT      _prt_dat
-# A BLANK LINE MUST FOLLOW
Index: palm/trunk/SCRIPTS/.mrun.config.imuknb
===================================================================
--- palm/trunk/SCRIPTS/.mrun.config.imuknb	(revision 2693)
+++ 	(revision )
@@ -1,180 +1,0 @@
-#$Id$
-#column 1          column 2                                   column 3
-#name of variable  value of variable (~ must not be used)     scope
-#----------------------------------------------------------------------------
-%mainprog          palm.f90
-%base_directory    $HOME/palm/current_version
-%base_data         ~/palm/current_version/JOBS
-%source_path       $base_directory/trunk/SOURCE
-%add_source_path   $base_directory/USER_CODE/$fname
-%depository_path   $base_directory/MAKE_DEPOSITORY
-%use_makefile      true
-#
-# Enter your own host below by adding another line containing in the second
-# column your hostname (as provided by the unix command "hostname") and in the
-# third column the host identifier. Depending on your operating system, the
-# first characters of the host identifier should be "lc" (Linux cluster), "ibm"
-# (IBM-AIX), or "nec" (NEC-SX), respectively.
-#
-# The next line is just an example. Add your own line below or replace this line.
-%host_identifier   <replace_with_your_hostname>  lcmuknb
-#
-#
-# The next block contains all informations for compiling the PALM code
-# and for generating and running the PALM executable using MPI.
-# Compilernames, cpp-options and compiler-options are assuming
-# an Intel-Compiler and mpich2 on this host! Please change
-# appropriately, if you are using a different compiler / MPI-Version.
-#
-%remote_username   palm                                          lcmuknb parallel
-%tmp_user_catalog  /home/palm/tmp                                lcmuknb parallel
-%compiler_name     mpif90                                        lcmuknb parallel
-%compiler_name_ser ifort                                         lcmuknb parallel
-%cpp_options       -cpp:-D__mpi2:-DMPI_REAL=MPI_DOUBLE_PRECISION:-DMPI_2REAL=MPI_2DOUBLE_PRECISION:-D__netcdf:-D__intel_compiler   lcmuknb parallel
-%netcdf_inc        -I:/opt/netcdf-3.6.3/include                  lcmuknb parallel
-%netcdf_lib        -L/opt/netcdf-3.6.3/lib64:-lnetcdf            lcmuknb parallel
-%mopts             -j:4                                          lcmuknb parallel
-%fopts             -fpe0:-O3:-xHost:-fp-model:source:-ftz:-fno-alias:-no-prec-div:-no-prec-sqrt:-ip:-nbs:-diag-disable:8290,8291:-I:/opt/mpich2-1.5/include   lcmuknb parallel
-%lopts             -fpe0:-O3:-xHost:-fp-model:source:-ftz:-fno-alias:-no-prec-div:-no-prec-sqrt:-ip:-nbs:-diag-disable:8290,8291:-L:/opt/mpich2-1.5/lib64     lcmuknb parallel
-#
-#
-%remote_username   palm                                          lcmuknb parallel trace
-%tmp_user_catalog  /home/palm/tmp                                lcmuknb parallel trace
-%compiler_name     mpif90                                        lcmuknb parallel trace
-%compiler_name_ser ifort                                         lcmuknb parallel trace
-%cpp_options       -cpp:-DMPI_REAL=MPI_DOUBLE_PRECISION:-DMPI_2REAL=MPI_2DOUBLE_PRECISION:-D__netcdf:-D__intel_compiler   lcmuknb parallel trace
-%netcdf_inc        -I:/opt/netcdf-3.6.3/include                  lcmuknb parallel trace
-%netcdf_lib        -L/opt/netcdf-3.6.3/lib64:-lnetcdf            lcmuknb parallel trace
-%mopts             -j:4                                          lcmuknb parallel trace
-%fopts             -C:-check:nooutput_conversion:-fpe0:-debug:-traceback:-g:-w:-O0:-ftz:-fno-alias:-no-prec-div:-no-prec-sqrt:-ip:-nbs:-convert:little_endian  lcmuknb parallel trace
-%lopts             -C:-check:nooutput_conversion:-fpe0:-debug:-traceback:-g:-w:-O0:-ftz:-fno-alias:-no-prec-div:-no-prec-sqrt:-ip:-nbs                         lcmuknb parallel trace
-#
-#
-%write_binary                true                             restart
-#
-#----------------------------------------------------------------------------
-# INPUT-commands, executed before running PALM - lines must start with "IC:"
-#----------------------------------------------------------------------------
-#IC:
-#
-#----------------------------------------------------------------------------
-# ERROR-commands - executed when program terminates abnormally
-#----------------------------------------------------------------------------
-EC:[[ \$locat = execution ]]  &&  cat  RUN_CONTROL
-EC:pwd; ls -al
-#
-#----------------------------------------------------------------------------
-# OUTPUT-commands - executed when program terminates normally
-#----------------------------------------------------------------------------
-#
-# Combine 1D- and 3D-profile output (these files are not usable for plotting)
-OC:[[ -f LIST_PROFIL_1D     ]]  &&  cat  LIST_PROFIL_1D  >>  LIST_PROFILE
-OC:[[ -f LIST_PROFIL        ]]  &&  cat  LIST_PROFIL     >>  LIST_PROFILE
-#
-# Combine all particle information files
-OC:[[ -f PARTICLE_INFOS/_0000 ]]  &&  cat  PARTICLE_INFOS/* >> PARTICLE_INFO
-#
-#----------------------------------------------------------------------------
-# List of input-files
-#----------------------------------------------------------------------------
-PARIN                    in:job        d3#      $base_data/$fname/INPUT    _p3d
-PARIN                    in:job        d3f      $base_data/$fname/INPUT    _p3df
-TOPOGRAPHY_DATA          in:locopt     d3#:d3f  $base_data/$fname/INPUT    _topo
-TOPOGRAPHY_DATA_NC       in:locopt     d3#:d3f  $base_data/$fname/INPUT    _topo_nc
-NUDGING_DATA             in:locopt     d3#:d3f  $base_data/$fname/INPUT    _nudge
-LSF_DATA                 in:locopt     d3#:d3f  $base_data/$fname/INPUT    _lsf
-WTM_DATA                 in:locopt     d3#:d3f  $base_data/$fname/INPUT    _wtm
-STG_PROFILES             in:locopt     d3#:d3f  $base_data/$fname/INPUT    _stgpr
-BININ                    in:loc:lnpe   d3f      $base_data/$fname/RESTART  _d3d
-PARTICLE_RESTART_DATA_IN in:loc:lnpe   prtf     $base_data/$fname/RESTART  _rprt
-DATA_1D_FL_NETCDF        in:locopt     flf      $base_data/$fname/OUTPUT   _fl     nc
-DATA_1D_PR_NETCDF        in:locopt     prf      $base_data/$fname/OUTPUT   _pr     nc
-DATA_1D_SP_NETCDF        in:locopt     spf      $base_data/$fname/OUTPUT   _sp     nc
-DATA_1D_TS_NETCDF        in:locopt     tsf      $base_data/$fname/OUTPUT   _ts     nc
-DATA_1D_PTS_NETCDF       in:locopt     ptsf     $base_data/$fname/OUTPUT   _pts    nc
-DATA_2D_XY_NETCDF        in:locopt     xyf      $base_data/$fname/OUTPUT   _xy     nc
-DATA_2D_XY_AV_NETCDF     in:locopt     xyf      $base_data/$fname/OUTPUT   _xy_av  nc
-DATA_2D_XZ_NETCDF        in:locopt     xzf      $base_data/$fname/OUTPUT   _xz     nc
-DATA_2D_YZ_NETCDF        in:locopt     yzf      $base_data/$fname/OUTPUT   _yz     nc
-DATA_3D_NETCDF           in:locopt     3df      $base_data/$fname/OUTPUT   _3d     nc
-DATA_PRT_NETCDF          in:locopt:pe  prtf     $base_data/$fname/OUTPUT   _prt
-#
-#----------------------------------------------------------------------------
-# List of output-files
-#----------------------------------------------------------------------------
-BINOUT                    out:loc:lnpe restart   $base_data/$fname/RESTART  _d3d
-PARTICLE_RESTART_DATA_OUT out:loc:lnpe prt#:prtf $base_data/$fname/RESTART  _rprt
-#
-RUN_CONTROL       out:loc:tr   d3#     $base_data/$fname/MONITORING  _rc
-RUN_CONTROL       out:loc:tra  d3f     $base_data/$fname/MONITORING  _rc
-HEADER            out:loc:tr   d3#     $base_data/$fname/MONITORING  _header
-HEADER            out:loc:tra  d3f     $base_data/$fname/MONITORING  _header
-CPU_MEASURES      out:loc:tr   d3#     $base_data/$fname/MONITORING  _cpu
-CPU_MEASURES      out:loc:tra  d3f     $base_data/$fname/MONITORING  _cpu
-TURBINE_PARAMETERS01  out:loc:tr  d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters01
-TURBINE_PARAMETERS02  out:loc:tr  d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters02
-TURBINE_PARAMETERS03  out:loc:tr  d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters03
-TURBINE_PARAMETERS04  out:loc:tr  d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters04
-#
-DATA_1D_FL_NETCDF    out:loc:tr   fl#:flf   $base_data/$fname/OUTPUT  _fl     nc
-DATA_1D_PR_NETCDF    out:loc:tr   pr#:prf   $base_data/$fname/OUTPUT  _pr     nc
-DATA_1D_SP_NETCDF    out:loc:tr   sp#:spf   $base_data/$fname/OUTPUT  _sp     nc
-DATA_1D_TS_NETCDF    out:loc:tr   ts#:tsf   $base_data/$fname/OUTPUT  _ts     nc
-DATA_1D_PTS_NETCDF   out:loc:tr   pts#:ptsf $base_data/$fname/OUTPUT  _pts    nc
-DATA_2D_XY_NETCDF    out:loc:tr   xy#:xyf   $base_data/$fname/OUTPUT  _xy     nc
-DATA_2D_XY_AV_NETCDF out:loc:tr   xy#:xyf   $base_data/$fname/OUTPUT  _xy_av  nc
-DATA_2D_XZ_NETCDF    out:loc:tr   xz#:xzf   $base_data/$fname/OUTPUT  _xz     nc
-DATA_2D_XZ_AV_NETCDF out:loc:tr   xz#:xzf   $base_data/$fname/OUTPUT  _xz_av  nc
-DATA_2D_YZ_NETCDF    out:loc:tr   yz#:yzf   $base_data/$fname/OUTPUT  _yz     nc
-DATA_2D_YZ_AV_NETCDF out:loc:tr   yz#:yzf   $base_data/$fname/OUTPUT  _yz_av  nc
-DATA_3D_NETCDF       out:loc:tr   3d#:3df   $base_data/$fname/OUTPUT  _3d     nc
-DATA_3D_AV_NETCDF    out:loc:tr   3d#:3df   $base_data/$fname/OUTPUT  _3d_av  nc
-DATA_MASK_01_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m01     nc
-DATA_MASK_01_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m01_av  nc
-DATA_MASK_02_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m02     nc
-DATA_MASK_02_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m02_av  nc
-DATA_MASK_03_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m03     nc
-DATA_MASK_03_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m03_av  nc
-DATA_MASK_04_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m04     nc
-DATA_MASK_04_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m04_av  nc
-DATA_MASK_05_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m05     nc
-DATA_MASK_05_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m05_av  nc
-DATA_MASK_06_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m06     nc
-DATA_MASK_06_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m06_av  nc
-DATA_MASK_07_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m07     nc
-DATA_MASK_07_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m07_av  nc
-DATA_MASK_08_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m08     nc
-DATA_MASK_08_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m08_av  nc
-DATA_MASK_09_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m09     nc
-DATA_MASK_09_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m09_av  nc
-DATA_MASK_10_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m10     nc
-DATA_MASK_10_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m10_av  nc
-DATA_MASK_11_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m11     nc
-DATA_MASK_11_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m11_av  nc
-DATA_MASK_12_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m12     nc
-DATA_MASK_12_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m12_av  nc
-DATA_MASK_13_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m13     nc
-DATA_MASK_13_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m13_av  nc
-DATA_MASK_14_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m14     nc
-DATA_MASK_14_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m14_av  nc
-DATA_MASK_15_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m15     nc
-DATA_MASK_15_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m15_av  nc
-DATA_MASK_16_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m16     nc
-DATA_MASK_16_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m16_av  nc
-DATA_MASK_17_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m17     nc
-DATA_MASK_17_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m17_av  nc
-DATA_MASK_18_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m18     nc
-DATA_MASK_18_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m18_av  nc
-DATA_MASK_19_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m19     nc
-DATA_MASK_19_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m19_av  nc
-DATA_MASK_20_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m20     nc
-DATA_MASK_20_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m20_av  nc
-DATA_PRT_NETCDF      out:loc:trpe prt#:prtf $base_data/$fname/OUTPUT  _prt    nc
-DATA_DVR             out:loc:trpe dvr       $base_data/$fname/OUTPUT  _dvr
-#
-DVRP_LOG          out:loc:tr   dv#       $base_data/$fname/MONITORING  _dvrp_log
-DVRP_LOG          out:loc:tra  dvf       $base_data/$fname/MONITORING  _dvrp_log
-PARTICLE_INFO     out:loc:tr   pt#       $base_data/$fname/MONITORING  _prt_info
-PARTICLE_INFO     out:loc:tra  ptf       $base_data/$fname/MONITORING  _prt_info
-PARTICLE_DATA     out:loc:lnpe prt#:prtf $base_data/$fname/OUTPUT      _prt_dat
-# A BLANK LINE MUST FOLLOW
Index: palm/trunk/SCRIPTS/.mrun.config.kiaps
===================================================================
--- palm/trunk/SCRIPTS/.mrun.config.kiaps	(revision 2693)
+++ 	(revision )
@@ -1,169 +1,0 @@
-#$Id$
-#column 1          column 2                                   column 3
-#name of variable  value of variable (~ must not be used)     scope
-#----------------------------------------------------------------------------
-%mainprog          palm.f90
-%base_directory    $HOME/palm/current_version
-%base_data         ~/palm/current_version/JOBS
-%source_path       $base_directory/trunk/SOURCE
-%add_source_path   $base_directory/USER_CODE/$fname
-%depository_path   $base_directory/MAKE_DEPOSITORY
-%use_makefile      true
-#
-# Enter your own host below by adding another line containing in the second
-# column your hostname (as provided by the unix command "hostname") and in the
-# third column the host identifier. Depending on your operating system, the
-# first characters of the host identifier should be "lc" (Linux cluster), "ibm"
-# (IBM-AIX), or "nec" (NEC-SX), respectively.
-#
-%host_identifier    login* lckiaps
-%host_identifier    node*  lckiaps
-#
-#
-# The next block contains all informations for compiling the PALM code
-# and for generating and running the PALM executable using MPI. Replace all
-# required paths (given in <>) by the respective paths valid on your host.
-#
-%modules             intel/2016.1:PrgEnv-intel/2016.1:mvapich2/1.8.1:netcdf/4.1.3   lckiaps parallel
-%tmp_user_catalog    /home/<replace by your kiaps username>/data                 lckiaps parallel
-%tmp_data_catalog    /home/<replace by your kiaps username>/data                 lckiaps parallel
-%compiler_name       mpif90                            lckiaps parallel
-%compiler_name_ser   ifort                             lckiaps parallel
-%cpp_options         -cpp:-DMPI_REAL=MPI_DOUBLE_PRECISION:-DMPI_2REAL=MPI_2DOUBLE_PRECISION:-D__netcdf:-D__netcdf4 lckiaps parallel
-%netcdf_inc          -I:/app/compilers/intel_2015/applib1/NETCDF4/4.1.3/include  lckiaps parallel
-%netcdf_lib          -L/app/compilers/intel_2015/applib1/NETCDF4/4.1.3/lib:-lnetcdf:-lnetcdff  lckiaps parallel
-%mopts               -j:4                              lckiaps parallel
-%fopts               -fpe0:-O3:-fp-model:source:-ftz:-fno-alias:-no-prec-div:-no-prec-sqrt:-ip:-nbs  lckiaps parallel
-%lopts               -fpe0:-O3:-fp-model:source:-ftz:-fno-alias:-no-prec-div:-no-prec-sqrt:-ip:-nbs  lckiaps parallel
-%remote_username     <replace by your kiaps username>  lckiaps parallel
-%memory              1500                              lckiaps parallel
-#
-%write_binary        true                             restart
-#
-#----------------------------------------------------------------------------
-# INPUT-commands, executed before running PALM - lines must start with "IC:"
-#----------------------------------------------------------------------------
-#IC:
-#
-#----------------------------------------------------------------------------
-# ERROR-commands - executed when program terminates abnormally
-#----------------------------------------------------------------------------
-EC:[[ \$locat = execution ]]  &&  cat  RUN_CONTROL
-EC:pwd; ls -al
-#
-#----------------------------------------------------------------------------
-# OUTPUT-commands - executed when program terminates normally
-#----------------------------------------------------------------------------
-#
-# Combine 1D- and 3D-profile output (these files are not usable for plotting)
-OC:[[ -f LIST_PROFIL_1D     ]]  &&  cat  LIST_PROFIL_1D  >>  LIST_PROFILE
-OC:[[ -f LIST_PROFIL        ]]  &&  cat  LIST_PROFIL     >>  LIST_PROFILE
-#
-# Combine all particle information files
-OC:[[ -f PARTICLE_INFOS/_0000 ]]  &&  cat  PARTICLE_INFOS/* >> PARTICLE_INFO
-#
-#----------------------------------------------------------------------------
-# List of input-files
-#----------------------------------------------------------------------------
-PARIN                    in:job        d3#      $base_data/$fname/INPUT    _p3d
-PARIN                    in:job        d3f      $base_data/$fname/INPUT    _p3df
-TOPOGRAPHY_DATA          in:locopt     d3#:d3f  $base_data/$fname/INPUT    _topo
-TOPOGRAPHY_DATA_NC       in:locopt     d3#:d3f  $base_data/$fname/INPUT    _topo_nc
-NUDGING_DATA             in:locopt     d3#:d3f  $base_data/$fname/INPUT    _nudge
-LSF_DATA                 in:locopt     d3#:d3f  $base_data/$fname/INPUT    _lsf
-WTM_DATA                 in:locopt     d3#:d3f  $base_data/$fname/INPUT    _wtm
-STG_PROFILES             in:locopt     d3#:d3f  $base_data/$fname/INPUT    _stgpr
-BININ                    in:loc:lnpe   d3f      $tmp_data_catalog/$fname/RESTART  _d3d
-PARTICLE_RESTART_DATA_IN in:loc:lnpe   prtf     $tmp_data_catalog/$fname/RESTART  _rprt
-DATA_1D_FL_NETCDF        in:locopt     flf      $base_data/$fname/OUTPUT   _fl     nc
-DATA_1D_PR_NETCDF        in:locopt     prf      $base_data/$fname/OUTPUT   _pr     nc
-DATA_1D_SP_NETCDF        in:locopt     spf      $base_data/$fname/OUTPUT   _sp     nc
-DATA_1D_TS_NETCDF        in:locopt     tsf      $base_data/$fname/OUTPUT   _ts     nc
-DATA_1D_PTS_NETCDF       in:locopt     ptsf     $base_data/$fname/OUTPUT   _pts    nc
-DATA_2D_XY_NETCDF        in:locopt     xyf      $base_data/$fname/OUTPUT   _xy     nc
-DATA_2D_XY_AV_NETCDF     in:locopt     xyf      $base_data/$fname/OUTPUT   _xy_av  nc
-DATA_2D_XZ_NETCDF        in:locopt     xzf      $base_data/$fname/OUTPUT   _xz     nc
-DATA_2D_YZ_NETCDF        in:locopt     yzf      $base_data/$fname/OUTPUT   _yz     nc
-DATA_3D_NETCDF           in:locopt     3df      $base_data/$fname/OUTPUT   _3d     nc
-DATA_PRT_NETCDF          in:locopt:pe  prtf     $base_data/$fname/OUTPUT   _prt
-#
-#----------------------------------------------------------------------------
-# List of output-files
-#----------------------------------------------------------------------------
-BINOUT                    out:loc:lnpe restart   $tmp_data_catalog/$fname/RESTART  _d3d
-PARTICLE_RESTART_DATA_OUT out:loc:lnpe prt#:prtf $tmp_data_catalog/$fname/RESTART  _rprt
-#
-RUN_CONTROL       out:loc:tr   d3#     $base_data/$fname/MONITORING  _rc
-RUN_CONTROL       out:loc:tra  d3f     $base_data/$fname/MONITORING  _rc
-HEADER            out:loc:tr   d3#     $base_data/$fname/MONITORING  _header
-HEADER            out:loc:tra  d3f     $base_data/$fname/MONITORING  _header
-CPU_MEASURES      out:loc:tr   d3#     $base_data/$fname/MONITORING  _cpu
-CPU_MEASURES      out:loc:tra  d3f     $base_data/$fname/MONITORING  _cpu
-TURBINE_PARAMETERS01  out:loc:tr  d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters01
-TURBINE_PARAMETERS02  out:loc:tr  d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters02
-TURBINE_PARAMETERS03  out:loc:tr  d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters03
-TURBINE_PARAMETERS04  out:loc:tr  d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters04
-#
-DATA_1D_FL_NETCDF    out:loc:tr   fl#:flf   $base_data/$fname/OUTPUT  _fl     nc
-DATA_1D_PR_NETCDF    out:loc:tr   pr#:prf   $base_data/$fname/OUTPUT  _pr     nc
-DATA_1D_SP_NETCDF    out:loc:tr   sp#:spf   $base_data/$fname/OUTPUT  _sp     nc
-DATA_1D_TS_NETCDF    out:loc:tr   ts#:tsf   $base_data/$fname/OUTPUT  _ts     nc
-DATA_1D_PTS_NETCDF   out:loc:tr   pts#:ptsf $base_data/$fname/OUTPUT  _pts    nc
-DATA_2D_XY_NETCDF    out:loc:tr   xy#:xyf   $base_data/$fname/OUTPUT  _xy     nc
-DATA_2D_XY_AV_NETCDF out:loc:tr   xy#:xyf   $base_data/$fname/OUTPUT  _xy_av  nc
-DATA_2D_XZ_NETCDF    out:loc:tr   xz#:xzf   $base_data/$fname/OUTPUT  _xz     nc
-DATA_2D_XZ_AV_NETCDF out:loc:tr   xz#:xzf   $base_data/$fname/OUTPUT  _xz_av  nc
-DATA_2D_YZ_NETCDF    out:loc:tr   yz#:yzf   $base_data/$fname/OUTPUT  _yz     nc
-DATA_2D_YZ_AV_NETCDF out:loc:tr   yz#:yzf   $base_data/$fname/OUTPUT  _yz_av  nc
-DATA_3D_NETCDF       out:loc:tr   3d#:3df   $base_data/$fname/OUTPUT  _3d     nc
-DATA_3D_AV_NETCDF    out:loc:tr   3d#:3df   $base_data/$fname/OUTPUT  _3d_av  nc
-DATA_MASK_01_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m01     nc
-DATA_MASK_01_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m01_av  nc
-DATA_MASK_02_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m02     nc
-DATA_MASK_02_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m02_av  nc
-DATA_MASK_03_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m03     nc
-DATA_MASK_03_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m03_av  nc
-DATA_MASK_04_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m04     nc
-DATA_MASK_04_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m04_av  nc
-DATA_MASK_05_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m05     nc
-DATA_MASK_05_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m05_av  nc
-DATA_MASK_06_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m06     nc
-DATA_MASK_06_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m06_av  nc
-DATA_MASK_07_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m07     nc
-DATA_MASK_07_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m07_av  nc
-DATA_MASK_08_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m08     nc
-DATA_MASK_08_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m08_av  nc
-DATA_MASK_09_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m09     nc
-DATA_MASK_09_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m09_av  nc
-DATA_MASK_10_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m10     nc
-DATA_MASK_10_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m10_av  nc
-DATA_MASK_11_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m11     nc
-DATA_MASK_11_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m11_av  nc
-DATA_MASK_12_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m12     nc
-DATA_MASK_12_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m12_av  nc
-DATA_MASK_13_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m13     nc
-DATA_MASK_13_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m13_av  nc
-DATA_MASK_14_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m14     nc
-DATA_MASK_14_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m14_av  nc
-DATA_MASK_15_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m15     nc
-DATA_MASK_15_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m15_av  nc
-DATA_MASK_16_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m16     nc
-DATA_MASK_16_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m16_av  nc
-DATA_MASK_17_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m17     nc
-DATA_MASK_17_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m17_av  nc
-DATA_MASK_18_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m18     nc
-DATA_MASK_18_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m18_av  nc
-DATA_MASK_19_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m19     nc
-DATA_MASK_19_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m19_av  nc
-DATA_MASK_20_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m20     nc
-DATA_MASK_20_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m20_av  nc
-DATA_PRT_NETCDF      out:loc:pe   prt#:prtf $base_data/$fname/OUTPUT  _prt    nc
-DATA_PRT_NETCDF      out:loc:trpe prt#:prtf $base_data/$fname/OUTPUT  _prt    nc
-DATA_DVR             out:loc:trpe dvr       $base_data/$fname/OUTPUT  _dvr
-#
-DVRP_LOG          out:loc:tr   dv#       $base_data/$fname/MONITORING  _dvrp_log
-DVRP_LOG          out:loc:tra  dvf       $base_data/$fname/MONITORING  _dvrp_log
-PARTICLE_INFO     out:loc:tr   pt#       $base_data/$fname/MONITORING  _prt_info
-PARTICLE_INFO     out:loc:tra  ptf       $base_data/$fname/MONITORING  _prt_info
-PARTICLE_DATA     out:loc:lnpe prt#:prtf $tmp_data_catalog/$fname/OUTPUT      _prt_dat
-# A BLANK LINE MUST FOLLOW
Index: palm/trunk/SCRIPTS/.mrun.config.lcxe6
===================================================================
--- palm/trunk/SCRIPTS/.mrun.config.lcxe6	(revision 2693)
+++ 	(revision )
@@ -1,193 +1,0 @@
-#$Id$
-#column 1          column 2                                   column 3
-#name of variable  value of variable (~ must not be used)     scope
-#----------------------------------------------------------------------------
-%mainprog          palm.f90
-%base_directory    $HOME/palm/current_version
-%base_data         ~/palm/current_version/JOBS
-%source_path       $base_directory/trunk/SOURCE
-%add_source_path   $base_directory/USER_CODE/$fname
-%depository_path   $base_directory/MAKE_DEPOSITORY
-%use_makefile      true
-#
-# Enter your own host below by adding another line containing in the second
-# column your hostname (as provided by the unix command "hostname") and in the
-# third column the host identifier. Depending on your operating system, the
-# first characters of the host identifier should be "lc" (Linux cluster), "ibm"
-# (IBM-AIX), or "nec" (NEC-SX), respectively.
-#
-# The next line is just an example. Add your own line below or replace this line.
-%host_identifier   hexagon*  lcxe6
-#
-#
-# The next block contains all informations for compiling the PALM code
-# and for generating and running the PALM executable using MPI. Replace all
-# required paths (given in <>) by the respective paths valid on your host.
-# Also replace <hi> by your host identifier (see above) in each line!
-# Compilernames, cpp-options and compiler-options are assuming
-# an Intel-Compiler and mpich2 on this host! Please change
-# appropriately, if you are using a different compiler / MPI-Version.
-#
-# Additional hints: during mrun error messages will occur related to the
-# "module swap" command. You can simply ignore those messages. If you do not
-# know your project account, check the output of the "cost" command on hexagon
-#
-%tmp_user_catalog    /work/<replace_by_your_CrayXE6_username>                                                         lcxe6 parallel
-%tmp_data_catalog    /work/<replace_by_your_CrayXE6_username>/tmp/                                                    lcxe6 parallel
-%compiler_name       ftn                                                                                              lcxe6 parallel
-%compiler_name_ser   ftn                                                                                              lcxe6 parallel
-%cpp_options         -cpp:-DMPI_REAL=MPI_DOUBLE_PRECISION:-DMPI_2REAL=MPI_2DOUBLE_PRECISION:-D__fftw:-D__netcdf:-D__intel_openmp_bug lcxe6 parallel
-%mopts               -j:4                                                                                             lcxe6 parallel
-%fopts               -O3:-r8:-fp-model:source:-align:all:-ftz:-fno-alias:-no-scalar-rep:-no-prec-div:-no-prec-sqrt:-ip:-nbs:-convert:little_endian lcxe6 parallel
-%lopts               -O3:-r8:-fp-model:source:-align:all:-ftz:-fno-alias:-no-scalar-rep:-no-prec-div:-no-prec-sqrt:-ip:-nbs:-Vaxlib lcxe6 parallel
-%remote_username      <replace_by_your_CrayXE6_username>                                                              lcxe6 parallel
-%memory              1000                                                                                             lcxe6 parallel
-%project_account     <replace_by_your_project_account>                                                                lcxe6 parallel
-%modules             modules:Base-opts:pmi:cray-mpich:netcdf-hdf5parallel:xtpe-network-gemini:gni-headers:fftw           lcxe6 parallel
-%login_init_cmd      .:/opt/modules/default/init/ksh\;:.:/etc/bash.bashrc.local\;:module:swap:PrgEnv-cray:PrgEnv-intel\;:module:unload:xtpe-interlagos     lcxe6 parallel
-%email_notification  <replace_by_your_email_address>                                                                  lcxe6 parallel
-#
- %tmp_user_catalog    /work/<replace_by_your_CrayXE6_username>                                                         lcxe6 parallel trace
-%tmp_data_catalog    /work/<replace_by_your_CrayXE6_username>/tmp/                                                    lcxe6 parallel trace
-%compiler_name       ftn                                                                                              lcxe6 parallel trace
-%compiler_name_ser   ftn                                                                                              lcxe6 parallel trace
-%cpp_options         -cpp:-DMPI_REAL=MPI_DOUBLE_PRECISION:-DMPI_2REAL=MPI_2DOUBLE_PRECISION:-D__fftw:-D__netcdf:-D__intel_openmp_bug lcxe6 parallel trace
-%mopts               -j:4                                                                                             lcxe6 parallel trace
-%fopts               -C:-check:nooutput_conversion:-fpe0:-debug:-traceback:-g:-w:-O0:-r8:-fp-model:source:-align:all:-ftz:-fno-alias:-no-scalar-rep:-no-prec-div:-no-prec-sqrt:-ip:-nbs:-convert:little_endian lcxe6 parallel trace
-%lopts               -C:-check:nooutput_conversion:-fpe0:-debug:-traceback:-g:-w:-O0:-r8:-fp-model:source:-align:all:-ftz:-fno-alias:-no-scalar-rep:-no-prec-div:-no-prec-sqrt:-ip:-nbs:-Vaxlib                       lcxe6 parallel trace
-%remote_username      <replace_by_your_CrayXE6_username>                                                              lcxe6 parallel trace
-%memory              1000                                                                                             lcxe6 parallel trace
-%project_account     <replace_by_your_project_account>                                                                lcxe6 parallel trace
-%modules             modules:Base-opts:pmi:cray-mpich:netcdf-hdf5parallel:xtpe-network-gemini:gni-headers:fftw           lcxe6 parallel trace
-%login_init_cmd      .:/opt/modules/default/init/ksh\;:.:/etc/bash.bashrc.local\;:module:swap:PrgEnv-cray:PrgEnv-intel\;:module:unload:xtpe-interlagos     lcxe6 parallel trace
-%email_notification  <replace_by_your_emai_address>                                                                  lcxe6 parallel trace
-#
-%write_binary        true                             restart
-#
-#----------------------------------------------------------------------------
-# INPUT-commands, executed before running PALM - lines must start with "IC:"
-#----------------------------------------------------------------------------
-#IC:
-#
-#----------------------------------------------------------------------------
-# ERROR-commands - executed when program terminates abnormally
-#----------------------------------------------------------------------------
-EC:[[ \$locat = execution ]]  &&  cat  RUN_CONTROL
-EC:pwd; ls -al
-#
-#----------------------------------------------------------------------------
-# OUTPUT-commands - executed when program terminates normally
-#----------------------------------------------------------------------------
-#
-# Combine 1D- and 3D-profile output (these files are not usable for plotting)
-OC:[[ -f LIST_PROFIL_1D     ]]  &&  cat  LIST_PROFIL_1D  >>  LIST_PROFILE
-OC:[[ -f LIST_PROFIL        ]]  &&  cat  LIST_PROFIL     >>  LIST_PROFILE
-#
-# Combine all particle information files
-OC:[[ -f PARTICLE_INFOS/_0000 ]]  &&  cat  PARTICLE_INFOS/* >> PARTICLE_INFO
-#
-#----------------------------------------------------------------------------
-# List of input-files
-#----------------------------------------------------------------------------
-PARIN                    in:job        d3#      $base_data/$fname/INPUT    _p3d
-PARIN                    in:job        d3f      $base_data/$fname/INPUT    _p3df
-TOPOGRAPHY_DATA          in:locopt     d3#:d3f  $base_data/$fname/INPUT    _topo
-TOPOGRAPHY_DATA_NC       in:locopt     d3#:d3f  $base_data/$fname/INPUT    _topo_nc
-NUDGING_DATA             in:locopt     d3#:d3f  $base_data/$fname/INPUT    _nudge
-LSF_DATA                 in:locopt     d3#:d3f  $base_data/$fname/INPUT    _lsf
-WTM_DATA                 in:locopt     d3#:d3f  $base_data/$fname/INPUT    _wtm
-STG_PROFILES             in:locopt     d3#:d3f  $base_data/$fname/INPUT    _stgpr
-BININ                    in:loc:lnpe   d3f      $tmp_data_catalog/$fname/RESTART  _d3d
-PARTICLE_RESTART_DATA_IN in:loc:lnpe   prtf     $tmp_data_catalog/$fname/RESTART  _rprt
-DATA_1D_FL_NETCDF        in:locopt     flf      $base_data/$fname/OUTPUT   _fl     nc
-DATA_1D_PR_NETCDF        in:locopt     prf      $base_data/$fname/OUTPUT   _pr     nc
-DATA_1D_SP_NETCDF        in:locopt     spf      $base_data/$fname/OUTPUT   _sp     nc
-DATA_1D_TS_NETCDF        in:locopt     tsf      $base_data/$fname/OUTPUT   _ts     nc
-DATA_1D_PTS_NETCDF       in:locopt     ptsf     $base_data/$fname/OUTPUT   _pts    nc
-DATA_2D_XY_NETCDF        in:locopt     xyf      $base_data/$fname/OUTPUT   _xy     nc
-DATA_2D_XY_AV_NETCDF     in:locopt     xyf      $base_data/$fname/OUTPUT   _xy_av  nc
-DATA_2D_XZ_NETCDF        in:locopt     xzf      $base_data/$fname/OUTPUT   _xz     nc
-DATA_2D_YZ_NETCDF        in:locopt     yzf      $base_data/$fname/OUTPUT   _yz     nc
-DATA_3D_NETCDF           in:locopt     3df      $base_data/$fname/OUTPUT   _3d     nc
-DATA_PRT_NETCDF          in:locopt:pe  prtf     $base_data/$fname/OUTPUT   _prt
-#
-#----------------------------------------------------------------------------
-# List of output-files
-#----------------------------------------------------------------------------
-BINOUT                    out:loc:lnpe restart   $tmp_data_catalog/$fname/RESTART  _d3d
-PARTICLE_RESTART_DATA_OUT out:loc:lnpe prt#:prtf $tmp_data_catalog/$fname/RESTART  _rprt
-#
-RUN_CONTROL       out:loc:tr   d3#     $base_data/$fname/MONITORING  _rc
-RUN_CONTROL       out:loc:tra  d3f     $base_data/$fname/MONITORING  _rc
-HEADER            out:loc:tr   d3#     $base_data/$fname/MONITORING  _header
-HEADER            out:loc:tra  d3f     $base_data/$fname/MONITORING  _header
-CPU_MEASURES      out:loc:tr   d3#     $base_data/$fname/MONITORING  _cpu
-CPU_MEASURES      out:loc:tra  d3f     $base_data/$fname/MONITORING  _cpu
-TURBINE_PARAMETERS01  out:loc:tr  d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters01
-TURBINE_PARAMETERS02  out:loc:tr  d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters02
-TURBINE_PARAMETERS03  out:loc:tr  d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters03
-TURBINE_PARAMETERS04  out:loc:tr  d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters04
-#
-DATA_1D_FL_NETCDF    out:loc:tr   fl#:flf   $base_data/$fname/OUTPUT  _fl     nc
-DATA_1D_PR_NETCDF    out:loc:tr   pr#:prf   $base_data/$fname/OUTPUT  _pr     nc
-DATA_1D_SP_NETCDF    out:loc:tr   sp#:spf   $base_data/$fname/OUTPUT  _sp     nc
-DATA_1D_TS_NETCDF    out:loc:tr   ts#:tsf   $base_data/$fname/OUTPUT  _ts     nc
-DATA_1D_PTS_NETCDF   out:loc:tr   pts#:ptsf $base_data/$fname/OUTPUT  _pts    nc
-DATA_2D_XY_NETCDF    out:loc:tr   xy#:xyf   $base_data/$fname/OUTPUT  _xy     nc
-DATA_2D_XY_AV_NETCDF out:loc:tr   xy#:xyf   $base_data/$fname/OUTPUT  _xy_av  nc
-DATA_2D_XZ_NETCDF    out:loc:tr   xz#:xzf   $base_data/$fname/OUTPUT  _xz     nc
-DATA_2D_XZ_AV_NETCDF out:loc:tr   xz#:xzf   $base_data/$fname/OUTPUT  _xz_av  nc
-DATA_2D_YZ_NETCDF    out:loc:tr   yz#:yzf   $base_data/$fname/OUTPUT  _yz     nc
-DATA_2D_YZ_AV_NETCDF out:loc:tr   yz#:yzf   $base_data/$fname/OUTPUT  _yz_av  nc
-DATA_3D_NETCDF       out:loc:tr   3d#:3df   $base_data/$fname/OUTPUT  _3d     nc
-DATA_3D_AV_NETCDF    out:loc:tr   3d#:3df   $base_data/$fname/OUTPUT  _3d_av  nc
-DATA_MASK_01_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m01     nc
-DATA_MASK_01_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m01_av  nc
-DATA_MASK_02_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m02     nc
-DATA_MASK_02_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m02_av  nc
-DATA_MASK_03_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m03     nc
-DATA_MASK_03_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m03_av  nc
-DATA_MASK_04_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m04     nc
-DATA_MASK_04_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m04_av  nc
-DATA_MASK_05_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m05     nc
-DATA_MASK_05_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m05_av  nc
-DATA_MASK_06_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m06     nc
-DATA_MASK_06_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m06_av  nc
-DATA_MASK_07_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m07     nc
-DATA_MASK_07_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m07_av  nc
-DATA_MASK_08_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m08     nc
-DATA_MASK_08_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m08_av  nc
-DATA_MASK_09_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m09     nc
-DATA_MASK_09_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m09_av  nc
-DATA_MASK_10_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m10     nc
-DATA_MASK_10_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m10_av  nc
-DATA_MASK_11_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m11     nc
-DATA_MASK_11_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m11_av  nc
-DATA_MASK_12_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m12     nc
-DATA_MASK_12_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m12_av  nc
-DATA_MASK_13_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m13     nc
-DATA_MASK_13_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m13_av  nc
-DATA_MASK_14_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m14     nc
-DATA_MASK_14_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m14_av  nc
-DATA_MASK_15_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m15     nc
-DATA_MASK_15_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m15_av  nc
-DATA_MASK_16_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m16     nc
-DATA_MASK_16_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m16_av  nc
-DATA_MASK_17_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m17     nc
-DATA_MASK_17_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m17_av  nc
-DATA_MASK_18_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m18     nc
-DATA_MASK_18_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m18_av  nc
-DATA_MASK_19_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m19     nc
-DATA_MASK_19_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m19_av  nc
-DATA_MASK_20_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m20     nc
-DATA_MASK_20_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m20_av  nc
-DATA_PRT_NETCDF      out:loc:pe   prt#:prtf $base_data/$fname/OUTPUT  _prt    nc
-DATA_PRT_NETCDF      out:loc:trpe prt#:prtf $base_data/$fname/OUTPUT  _prt    nc
-DATA_DVR             out:loc:trpe dvr       $base_data/$fname/OUTPUT  _dvr
-#
-DVRP_LOG          out:loc:tr   dv#       $base_data/$fname/MONITORING  _dvrp_log
-DVRP_LOG          out:loc:tra  dvf       $base_data/$fname/MONITORING  _dvrp_log
-PARTICLE_INFO     out:loc:tr   pt#       $base_data/$fname/MONITORING  _prt_info
-PARTICLE_INFO     out:loc:tra  ptf       $base_data/$fname/MONITORING  _prt_info
-PARTICLE_DATA     out:loc:lnpe prt#:prtf $tmp_data_catalog/$fname/OUTPUT      _prt_dat
-# A BLANK LINE MUST FOLLOW
Index: palm/trunk/SCRIPTS/.mrun.config.tatara
===================================================================
--- palm/trunk/SCRIPTS/.mrun.config.tatara	(revision 2693)
+++ 	(revision )
@@ -1,168 +1,0 @@
-#$Id$
-#column 1          column 2                                   column 3
-#name of variable  value of variable (~ must not be used)     scope
-#----------------------------------------------------------------------------
-%mainprog          palm.f90
-%base_directory    $HOME/palm/current_version
-%base_data         ~/palm/current_version/JOBS
-%source_path       $base_directory/trunk/SOURCE
-%add_source_path   $base_directory/USER_CODE/$fname
-%depository_path   $base_directory/MAKE_DEPOSITORY
-%use_makefile      true
-#
-# Enter your own host below by adding another line containing in the second
-# column your hostname (as provided by the unix command "hostname") and in the
-# third column the host identifier. Depending on your operating system, the
-# first characters of the host identifier should be "lc" (Linux cluster), "ibm"
-# (IBM-AIX), or "nec" (NEC-SX), respectively.
-#
-%host_identifier   sugoka*     lckyut
-%host_identifier   pcj*        lckyut
-#
-#
-# The next block contains all informations for compiling the PALM code
-# and for generating and running the PALM executable using MPI. Replace all
-# required paths (given in <>) by the respective paths valid on your host.
-#
-%tmp_user_catalog  <replace_by_your_preferred_tmp_directory>     lckyut parallel
-%compiler_name     mpifrt                                        lckyut parallel
-%compiler_name_ser frt                                           lckyut parallel
-%cpp_options       -Cpp:-DMPI_REAL=MPI_DOUBLE_PRECISION:-DMPI_2REAL=MPI_2DOUBLE_PRECISION:-D__netcdf:-D__netcdf4   lckyut parallel
-%netcdf_inc        -I:/usr/local/netcdf/4.1.1/include                 lckyut parallel
-%netcdf_lib        -L/usr/local/netcdf/4.1.1/lib:-lnetcdf:-lnetcdff   lckyut parallel
-%mopts             -j:4                                          lckyut parallel
-%memory            1000                                          lckyut parallel
-%fopts             -Kfast:-Ad:-Knooptmsg                         lckyut parallel
-%lopts             -Kfast:-Ad                                    lckyut parallel
-%scp_port          22                                            lckyut parallel
-%remote_username   <replace_by_your_tatara_username>             lckyut parallel
-#
-%write_binary        true                             restart
-#
-#----------------------------------------------------------------------------
-# INPUT-commands, executed before running PALM - lines must start with "IC:"
-#----------------------------------------------------------------------------
-#IC:
-#
-#----------------------------------------------------------------------------
-# ERROR-commands - executed when program terminates abnormally
-#----------------------------------------------------------------------------
-EC:[[ \$locat = execution ]]  &&  cat  RUN_CONTROL
-EC:pwd; ls -al
-#
-#----------------------------------------------------------------------------
-# OUTPUT-commands - executed when program terminates normally
-#----------------------------------------------------------------------------
-#
-# Combine 1D- and 3D-profile output (these files are not usable for plotting)
-OC:[[ -f LIST_PROFIL_1D     ]]  &&  cat  LIST_PROFIL_1D  >>  LIST_PROFILE
-OC:[[ -f LIST_PROFIL        ]]  &&  cat  LIST_PROFIL     >>  LIST_PROFILE
-#
-# Combine all particle information files
-OC:[[ -f PARTICLE_INFOS/_0000 ]]  &&  cat  PARTICLE_INFOS/* >> PARTICLE_INFO
-#
-#----------------------------------------------------------------------------
-# List of input-files
-#----------------------------------------------------------------------------
-PARIN                    in:job        d3#      $base_data/$fname/INPUT    _p3d
-PARIN                    in:job        d3f      $base_data/$fname/INPUT    _p3df
-TOPOGRAPHY_DATA          in:locopt     d3#:d3f  $base_data/$fname/INPUT    _topo
-TOPOGRAPHY_DATA_NC       in:locopt     d3#:d3f  $base_data/$fname/INPUT    _topo_nc
-NUDGING_DATA             in:locopt     d3#:d3f  $base_data/$fname/INPUT    _nudge
-LSF_DATA                 in:locopt     d3#:d3f  $base_data/$fname/INPUT    _lsf
-WTM_DATA                 in:locopt     d3#:d3f  $base_data/$fname/INPUT    _wtm
-STG_PROFILES             in:locopt     d3#:d3f  $base_data/$fname/INPUT    _stgpr
-BININ                    in:loc:lnpe   d3f      $base_data/$fname/RESTART  _d3d
-PARTICLE_RESTART_DATA_IN in:loc:lnpe   prtf     $base_data/$fname/RESTART  _rprt
-DATA_1D_FL_NETCDF        in:locopt     flf      $base_data/$fname/OUTPUT   _fl     nc
-DATA_1D_PR_NETCDF        in:locopt     prf      $base_data/$fname/OUTPUT   _pr     nc
-DATA_1D_SP_NETCDF        in:locopt     spf      $base_data/$fname/OUTPUT   _sp     nc
-DATA_1D_TS_NETCDF        in:locopt     tsf      $base_data/$fname/OUTPUT   _ts     nc
-DATA_1D_PTS_NETCDF       in:locopt     ptsf     $base_data/$fname/OUTPUT   _pts    nc
-DATA_2D_XY_NETCDF        in:locopt     xyf      $base_data/$fname/OUTPUT   _xy     nc
-DATA_2D_XY_AV_NETCDF     in:locopt     xyf      $base_data/$fname/OUTPUT   _xy_av  nc
-DATA_2D_XZ_NETCDF        in:locopt     xzf      $base_data/$fname/OUTPUT   _xz     nc
-DATA_2D_YZ_NETCDF        in:locopt     yzf      $base_data/$fname/OUTPUT   _yz     nc
-DATA_3D_NETCDF           in:locopt     3df      $base_data/$fname/OUTPUT   _3d     nc
-DATA_PRT_NETCDF          in:locopt:pe  prtf     $base_data/$fname/OUTPUT   _prt
-#
-#----------------------------------------------------------------------------
-# List of output-files
-#----------------------------------------------------------------------------
-BINOUT                    out:loc:lnpe restart   $base_data/$fname/RESTART  _d3d
-PARTICLE_RESTART_DATA_OUT out:loc:lnpe prt#:prtf $base_data/$fname/RESTART  _rprt
-#
-RUN_CONTROL       out:loc:tr   d3#     $base_data/$fname/MONITORING  _rc
-RUN_CONTROL       out:loc:tra  d3f     $base_data/$fname/MONITORING  _rc
-HEADER            out:loc:tr   d3#     $base_data/$fname/MONITORING  _header
-HEADER            out:loc:tra  d3f     $base_data/$fname/MONITORING  _header
-CPU_MEASURES      out:loc:tr   d3#     $base_data/$fname/MONITORING  _cpu
-CPU_MEASURES      out:loc:tra  d3f     $base_data/$fname/MONITORING  _cpu
-TURBINE_PARAMETERS01  out:loc:tr  d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters01
-TURBINE_PARAMETERS02  out:loc:tr  d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters02
-TURBINE_PARAMETERS03  out:loc:tr  d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters03
-TURBINE_PARAMETERS04  out:loc:tr  d3#:d3f   $base_data/$fname/MONITORING  _turbine_parameters04
-#
-DATA_1D_FL_NETCDF    out:loc:tr   fl#:flf   $base_data/$fname/OUTPUT  _fl     nc
-DATA_1D_PR_NETCDF    out:loc:tr   pr#:prf   $base_data/$fname/OUTPUT  _pr     nc
-DATA_1D_SP_NETCDF    out:loc:tr   sp#:spf   $base_data/$fname/OUTPUT  _sp     nc
-DATA_1D_TS_NETCDF    out:loc:tr   ts#:tsf   $base_data/$fname/OUTPUT  _ts     nc
-DATA_1D_PTS_NETCDF   out:loc:tr   pts#:ptsf $base_data/$fname/OUTPUT  _pts    nc
-DATA_2D_XY_NETCDF    out:loc:tr   xy#:xyf   $base_data/$fname/OUTPUT  _xy     nc
-DATA_2D_XY_AV_NETCDF out:loc:tr   xy#:xyf   $base_data/$fname/OUTPUT  _xy_av  nc
-DATA_2D_XZ_NETCDF    out:loc:tr   xz#:xzf   $base_data/$fname/OUTPUT  _xz     nc
-DATA_2D_XZ_AV_NETCDF out:loc:tr   xz#:xzf   $base_data/$fname/OUTPUT  _xz_av  nc
-DATA_2D_YZ_NETCDF    out:loc:tr   yz#:yzf   $base_data/$fname/OUTPUT  _yz     nc
-DATA_2D_YZ_AV_NETCDF out:loc:tr   yz#:yzf   $base_data/$fname/OUTPUT  _yz_av  nc
-DATA_3D_NETCDF       out:loc:tr   3d#:3df   $base_data/$fname/OUTPUT  _3d     nc
-DATA_3D_AV_NETCDF    out:loc:tr   3d#:3df   $base_data/$fname/OUTPUT  _3d_av  nc
-DATA_MASK_01_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m01     nc
-DATA_MASK_01_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m01_av  nc
-DATA_MASK_02_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m02     nc
-DATA_MASK_02_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m02_av  nc
-DATA_MASK_03_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m03     nc
-DATA_MASK_03_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m03_av  nc
-DATA_MASK_04_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m04     nc
-DATA_MASK_04_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m04_av  nc
-DATA_MASK_05_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m05     nc
-DATA_MASK_05_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m05_av  nc
-DATA_MASK_06_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m06     nc
-DATA_MASK_06_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m06_av  nc
-DATA_MASK_07_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m07     nc
-DATA_MASK_07_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m07_av  nc
-DATA_MASK_08_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m08     nc
-DATA_MASK_08_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m08_av  nc
-DATA_MASK_09_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m09     nc
-DATA_MASK_09_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m09_av  nc
-DATA_MASK_10_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m10     nc
-DATA_MASK_10_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m10_av  nc
-DATA_MASK_11_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m11     nc
-DATA_MASK_11_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m11_av  nc
-DATA_MASK_12_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m12     nc
-DATA_MASK_12_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m12_av  nc
-DATA_MASK_13_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m13     nc
-DATA_MASK_13_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m13_av  nc
-DATA_MASK_14_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m14     nc
-DATA_MASK_14_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m14_av  nc
-DATA_MASK_15_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m15     nc
-DATA_MASK_15_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m15_av  nc
-DATA_MASK_16_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m16     nc
-DATA_MASK_16_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m16_av  nc
-DATA_MASK_17_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m17     nc
-DATA_MASK_17_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m17_av  nc
-DATA_MASK_18_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m18     nc
-DATA_MASK_18_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m18_av  nc
-DATA_MASK_19_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m19     nc
-DATA_MASK_19_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m19_av  nc
-DATA_MASK_20_NETCDF    out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m20     nc
-DATA_MASK_20_AV_NETCDF out:loc:tr ma#:maf   $base_data/$fname/OUTPUT  _m20_av  nc
-DATA_PRT_NETCDF      out:loc:pe   prt#:prtf $base_data/$fname/OUTPUT  _prt    nc
-DATA_PRT_NETCDF      out:loc:trpe prt#:prtf $base_data/$fname/OUTPUT  _prt    nc
-DATA_DVR             out:loc:trpe dvr       $base_data/$fname/OUTPUT  _dvr
-#
-DVRP_LOG          out:loc:tr   dv#       $base_data/$fname/MONITORING  _dvrp_log
-DVRP_LOG          out:loc:tra  dvf       $base_data/$fname/MONITORING  _dvrp_log
-PARTICLE_INFO     out:loc:tr   pt#       $base_data/$fname/MONITORING  _prt_info
-PARTICLE_INFO     out:loc:tra  ptf       $base_data/$fname/MONITORING  _prt_info
-PARTICLE_DATA     out:loc:lnpe prt#:prtf $base_data/$fname/OUTPUT      _prt_dat
-# A BLANK LINE MUST FOLLOW
Index: palm/trunk/SCRIPTS/.palm.iofiles
===================================================================
--- palm/trunk/SCRIPTS/.palm.iofiles	(revision 2693)
+++ palm/trunk/SCRIPTS/.palm.iofiles	(revision 2696)
@@ -1,10 +1,14 @@
 #
-#------------------------------------------------------------------------------------------
+#-------------------------------------------------------------------------------------------
 # List of input-files
-#------------------------------------------------------------------------------------------
+#-------------------------------------------------------------------------------------------
 PARIN                    in:tr      d3#      $base_data/$fname/INPUT          _p3d*
 PARIN                    in:tr      d3r      $base_data/$fname/INPUT          _p3dr*
 PARIN                    in:tr      pcr      $base_data/$fname/INPUT          _pcr
 TOPOGRAPHY_DATA          inopt:tr   d3#:d3r  $base_data/$fname/INPUT          _topo*
+PIDS_STATIC              inopt:tr   d3#:d3r  $base_data/$fname/INPUT          _static*
+PIDS_DYNAMIC             inopt:tr   d3#:d3r  $base_data/$fname/INPUT          _dynamic*
+rrtmg_lw.nc              inopt:tr   d3#:d3r  $base_data/$fname/INPUT          _rlw
+rrtmg_sw.nc              inopt:tr   d3#:d3r  $base_data/$fname/INPUT          _rsw
 WTM_DATA                 inopt:tr   d3#:d3r  $base_data/$fname/INPUT          _wtm
 BININ                    in:lnpe    d3r:rec  $fast_io_catalog/$fname/RESTART  _d3d
@@ -17,5 +21,7 @@
 DATA_2D_XY_AV_NETCDF     inopt      xyr      $base_data/$fname/OUTPUT         _xy_av*    nc
 DATA_2D_XZ_NETCDF        inopt      xzr      $base_data/$fname/OUTPUT         _xz*       nc
+DATA_2D_XZ_AV_NETCDF     inopt      xzr      $base_data/$fname/OUTPUT         _xz_av*    nc
 DATA_2D_YZ_NETCDF        inopt      yzr      $base_data/$fname/OUTPUT         _yz*       nc
+DATA_2D_YZ_AV_NETCDF     inopt      yzr      $base_data/$fname/OUTPUT         _yz_av*    nc
 DATA_3D_NETCDF           inopt      3dr      $base_data/$fname/OUTPUT         _3d*       nc
 DATA_3D_AV_NETCDF        inopt      3dr      $base_data/$fname/OUTPUT         _3d*       nc
@@ -24,7 +30,7 @@
 DATA_PRT_NETCDF          inopt:pe   prtr     $base_data/$fname/OUTPUT         _prt*      nc
 #
-#------------------------------------------------------------------------------------------
+#-------------------------------------------------------------------------------------------
 # List of output-files
-#------------------------------------------------------------------------------------------
+#-------------------------------------------------------------------------------------------
 BINOUT*                    out:lnpe restart   $fast_io_catalog/$fname/RESTART  _d3d
 PARTICLE_RESTART_DATA_OUT* out:lnpe prt#:prtr $fast_io_catalog/$fname/RESTART  _rprt
Index: palm/trunk/SCRIPTS/batch_scp
===================================================================
--- palm/trunk/SCRIPTS/batch_scp	(revision 2693)
+++ palm/trunk/SCRIPTS/batch_scp	(revision 2696)
@@ -4,5 +4,5 @@
 
 #--------------------------------------------------------------------------------#
-# This file is part of PALM.
+# This file is part of the PALM model system.
 #
 # PALM is free software: you can redistribute it and/or modify it under the terms
@@ -17,5 +17,5 @@
 # PALM. If not, see <http://www.gnu.org/licenses/>.
 #
-# Copyright 1997-2014  Leibniz Universitaet Hannover
+# Copyright 1997-2017  Leibniz Universitaet Hannover
 #--------------------------------------------------------------------------------#
 #
Index: palm/trunk/SCRIPTS/compile_tutorial
===================================================================
--- palm/trunk/SCRIPTS/compile_tutorial	(revision 2693)
+++ palm/trunk/SCRIPTS/compile_tutorial	(revision 2696)
@@ -2,5 +2,5 @@
 
 #--------------------------------------------------------------------------------#
-# This file is part of PALM.
+# This file is part of the PALM model system.
 #
 # PALM is free software: you can redistribute it and/or modify it under the terms
@@ -15,5 +15,5 @@
 # PALM. If not, see <http://www.gnu.org/licenses/>.
 #
-# Copyright 1997-2014  Leibniz Universitaet Hannover
+# Copyright 1997-2017  Leibniz Universitaet Hannover
 #--------------------------------------------------------------------------------#
 #
Index: palm/trunk/SCRIPTS/document_changes
===================================================================
--- palm/trunk/SCRIPTS/document_changes	(revision 2693)
+++ palm/trunk/SCRIPTS/document_changes	(revision 2696)
@@ -1,5 +1,5 @@
 #!/bin/ksh
 #------------------------------------------------------------------------------#
-# This file is part of PALM.
+# This file is part of the PALM model system.
 #
 # PALM is free software: you can redistribute it and/or modify it under the 
Index: palm/trunk/SCRIPTS/generate_documentation
===================================================================
--- palm/trunk/SCRIPTS/generate_documentation	(revision 2693)
+++ palm/trunk/SCRIPTS/generate_documentation	(revision 2696)
@@ -1,5 +1,5 @@
 #!/bin/bash
 #--------------------------------------------------------------------------------#
-# This file is part of PALM.
+# This file is part of the PALM model system.
 #
 # PALM is free software: you can redistribute it and/or modify it under the terms
@@ -14,5 +14,5 @@
 # PALM. If not, see <http://www.gnu.org/licenses/>.
 #
-# Copyright 1997-2014  Leibniz Universitaet Hannover
+# Copyright 1997-2017  Leibniz Universitaet Hannover
 #--------------------------------------------------------------------------------#
 #
Index: palm/trunk/SCRIPTS/img2stereo
===================================================================
--- palm/trunk/SCRIPTS/img2stereo	(revision 2693)
+++ palm/trunk/SCRIPTS/img2stereo	(revision 2696)
@@ -2,5 +2,5 @@
 
 #--------------------------------------------------------------------------------#
-# This file is part of PALM.
+# This file is part of the PALM model system.
 #
 # PALM is free software: you can redistribute it and/or modify it under the terms
@@ -15,5 +15,5 @@
 # PALM. If not, see <http://www.gnu.org/licenses/>.
 #
-# Copyright 1997-2014  Leibniz Universitaet Hannover
+# Copyright 1997-2017  Leibniz Universitaet Hannover
 #--------------------------------------------------------------------------------#
 #
Index: palm/trunk/SCRIPTS/img2video
===================================================================
--- palm/trunk/SCRIPTS/img2video	(revision 2693)
+++ palm/trunk/SCRIPTS/img2video	(revision 2696)
@@ -2,5 +2,5 @@
 
 #--------------------------------------------------------------------------------#
-# This file is part of PALM.
+# This file is part of the PALM model system.
 #
 # PALM is free software: you can redistribute it and/or modify it under the terms
@@ -15,5 +15,5 @@
 # PALM. If not, see <http://www.gnu.org/licenses/>.
 #
-# Copyright 1997-2014  Leibniz Universitaet Hannover
+# Copyright 1997-2017  Leibniz Universitaet Hannover
 #--------------------------------------------------------------------------------#
 #
Index: palm/trunk/SCRIPTS/mbuild
===================================================================
--- palm/trunk/SCRIPTS/mbuild	(revision 2693)
+++ 	(revision )
@@ -1,1501 +1,0 @@
-#!/bin/bash
-
-# mbuild - script for compiling the PALM code and its utility programs
-
-#--------------------------------------------------------------------------------#
-# This file is part of PALM.
-#
-# PALM is free software: you can redistribute it and/or modify it under the terms
-# of the GNU General Public License as published by the Free Software Foundation,
-# either version 3 of the License, or (at your option) any later version.
-#
-# PALM is distributed in the hope that it will be useful, but WITHOUT ANY
-# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
-# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License along with
-# PALM. If not, see <http://www.gnu.org/licenses/>.
-#
-# Copyright 1997-2014  Leibniz Universitaet Hannover
-#--------------------------------------------------------------------------------#
-#
-# Current revisions:
-# ------------------
-# 
-# 
-# Former revisions:
-# -----------------
-# $Id$
-# Added lckea & lckeam. KIT/IMK-IFU Garmisch cluster. LRZ (SadiqHuq)
-# 
-# 2316 2017-07-20 07:53:42Z maronga
-# Removed qmake block as mrungui now runs as a python script
-# 
-# 2257 2017-06-07 14:07:05Z witha
-# adjustments for lceddy, removed lcflow-specific code
-# 
-# 1945 2016-06-15 07:17:24Z raasch
-#
-# 1944 2016-06-15 06:29:00Z raasch
-# adjustments for using HLRN ssh-keys
-#
-# 1841 2016-04-07 19:14:06Z raasch
-# script now running under bash
-# 
-# 1817 2016-04-06 15:44:20Z maronga
-# Bugfix: Makefile_check removed (parameter file check)
-# 
-# 1804 2016-04-05 16:30:18Z maronga
-# Removed parameter file check
-# 
-# 1652 2015-09-17 08:12:24Z raasch
-# bugfix for terminal output of configuration settings removed,
-# output of login init commands
-#
-# 1621 2015-07-17 11:39:33Z heinze
-# adjustments for Mistral at DKRZ Hamburg (lcbullhh)
-#
-# 1613 2015-07-08 14:53:29Z maronga
-# nc2vdf removed
-# 
-# 1547 2015-01-29 15:09:12Z witha
-# adjustments for ForWind computing cluster (lcflow)
-# 
-# 1487 2014-10-25 14:36:28Z raasch
-# bash compatibility adjustments: output formatting with printf instead
-# of "typeset -L/-R", print replaced by echo
-#
-# 1468 2014-09-24 14:06:57Z maronga
-# Typo removed (addres->address)
-# Adjustments for lcxe6
-# 
-# 1390 2014-05-06 07:57:37Z maronga
-# disabled compilation of parameter file check (currently not working),
-# adjustments for lcxe6
-# 
-# 1388 2014-05-06 07:42:38Z maronga
-# small adjustments for lcxe6
-# 
-# 1350 2014-04-04 13:01:30Z maronga
-# init_cmds is now executed before module calls in case of compilation on local 
-# host
-#
-# 1289 2014-03-04 07:12:34Z raasch
-# comments translated from German to English
-# fimm-, scirocco-, ibmy-, and sgi-specific code removed
-#
-# 1274 2014-01-09 13:14:54Z heinze
-# adjustments for lccrayh
-#
-# 1255 2013-11-07 14:43:35Z raasch
-# further adjustments for lccrayb remote access
-#
-# 1229 2013-09-20 06:55:19Z raasch
-# adjustments for lccrayb
-#
-# 1216 2013-08-26 09:31:42Z raasch
-# RCS renamed SOURCES
-#
-# 1210 2013-08-14 10:58:20Z raasch
-# fftw support added
-#
-# 1197 2013-07-04 06:19:45Z raasch
-# adjustments for CSC Helsinki (lccrayf)
-#
-# 1099 2013-02-10 01:47:43Z raasch
-# adjustments for Forwind cluster (lcflow)
-#
-# 1096 2013-02-03 01:52:12Z raasch
-# decalpha parts (yonsei) removed
-#
-# 2013-02-02 07:06:13Z raasch
-# adjustments for Kyushu-University computing center (lckyut)
-# old changelog messages removed
-#
-# 1083 2013-01-04 10:22:09Z maronga
-# bugfix in parameter file check (in case that no preprocessor flag, i.e. -cpp was
-# set in %cpp_options, the last directive in the variable was processed.
-#
-# 1081 2013-01-03 08:44:36Z maronga
-# loader options set for parameter file check_depository_path
-#
-# 1069 2012-11-28 16:18:43Z maronga
-# added copy of nc2vdf tools to remote host_found
-#
-# 1046 2012-11-09 14:38:45Z maronga
-# code put under GPL (PALM 3.9) 
-# 
-# 12/06/02 - Siggi - first version finished
-# 06/05/02 - Siggi - script development started
-#
-#--------------------------------------------------------------------------------#
-# mbuild - script for compiling the PALM code and its utility programs
-#
-# Procedure to compile code on local and remote hosts using the
-# make-mechanism. The source code must be provided on the local host.
-#
-# @note This script does not work on MAC OS
-#--------------------------------------------------------------------------------#
-
-
-    # VARIABLE DECLARATIONS + DEFAULT VALUES
- block_conditions=none
- block_conditions_found=false
- calltime=""
- column1=""
- column2=""
- compile_utility_programs=false
- config_file=.mrun.config
- host=all
- host_found=false
- locat=normal
- makefile=""
- module_calls=""
- util_compiled_localhost=false
- silent=false
- suf=f90
- update=false
- version="MBUILD  2.1  Rev$Rev$"
- working_directory=`pwd`
-
- typeset -i  ih ihost=0
-
-
-    # ERROR HANDLING
-    # IN CASE OF EXIT:
- trap 'rm -rf  $working_directory/tmp_mbuild
-       if [[ $locat != normal ]]
-       then
-          printf "\n\n +++ mbuild killed \n\n"
-       else
-          printf "\n\n *** mbuild finished \n\n"
-       fi' exit
-
-
-    # IN CASE OF TERMINAL-BREAK:
- trap 'rm -rf  $working_directory/tmp_mbuild
-       printf "\n\n +++ mbuild killed by \"^C\" \n\n"
-       exit
-      ' 2
-
-
- tmp_mbuild=${working_directory}/tmp_mbuild
-
-    # READ SHELLSCRIPT-OPTIONS
- while  getopts  :c:h:K:m:s:uv  option
- do
-   case  $option  in
-       (c)   config_file=$OPTARG;;
-       (h)   host=$OPTARG;;
-       (K)   block_conditions=$OPTARG;;
-       (m)   makefile=$OPTARG;;
-       (s)   suf=$OPTARG;;
-       (u)   compile_utility_programs=true;;
-       (v)   silent=true;;
-       (\?)  printf "\n  +++ unknown option $OPTARG \n";
-             locat=parameter; exit;;
-   esac
- done
-
-
-
-    # CHECK, IF CONFIGURATION-FILE EXISTS
- if [[ ! -f $config_file ]]
- then
-    printf "\n  +++ configuration file: "
-    printf "\n           $config_file"
-    printf "\n      does not exist"
-    locat=configuration; exit  
- fi
-
-
-
-    # DETERMINE THE LOCAL HOST
- local_host_real_name=$(hostname)
- local_address=$(nslookup `hostname` 2>&1 | grep "Address:" | tail -1 | awk '{echo $2}')
-
-
-
-    # DETERMINE HOST-IDENTIFIER (local_host) FROM THE CONFIG-FILE
- line=""
- grep  "%host_identifier"  $config_file  >  $tmp_mbuild
- while read line
- do
-    if [[ "$line" != ""  &&  $(echo $line | cut -c1) != "#" ]]
-    then
-       HOSTNAME=`echo $line | cut -d" " -s -f2`
-       host_identifier=`echo $line | cut -d" " -s -f3`
-       if [[ $local_host_real_name = $HOSTNAME ]]
-       then
-          local_host=$host_identifier
-          break
-       fi
-    fi
- done < $tmp_mbuild
-
- if [[ "$local_host" = "" ]]
- then
-    printf "\n  +++ no host identifier found in configuration file \"$config_file\""
-    printf "\n      for local host \"$local_host_real_name\"."
-    printf "\n      Please add line"
-    printf "\n      \"\%host_identifier $local_host_real_name <identifier>\""
-    printf "\n      to the configuration file."
-    locat=local_host; exit
- fi
-
-
- if [[ $local_host != ibms ]]
- then
-    config_file=$PWD/$config_file
- else
-    config_file=`pwd`/$config_file
- fi
-
-
-    # DETERMINE THE BLOCK CONDITIONS
- if [[ $block_conditions != none ]]
- then
-    block_condition1=`echo $block_conditions | cut -d" " -f1`
-    block_condition2=`echo $block_conditions | cut -d" " -f2`
-    if [[ "$block_condition2" = "$block_condition1" ]]
-    then
-       block_condition2=""
-    fi
- fi
-
- 
-    # DETERMINE USER NAME ON LOCAL HOST FROM THE CONFIG-FILE
- line=""
- grep  " $local_host" $config_file | grep "%remote_username"  >  $tmp_mbuild
- while read line
- do
-    if [[ "$line" != ""  &&  $(echo $line | cut -c1) != "#" ]]
-    then
-       local_username=`echo $line | cut -d" " -s -f2`
-    fi
- done < $tmp_mbuild
-
-
- if [[ "$local_username" = "" ]]
- then
-    printf "\n  +++ no user name found in configuration file"
-    printf "\n      for local host \"$local_host\" "
-    locat=config_file; exit
- fi
-
-
-    # DETERMINE LOCAL SOURCE-CODE PATH.
-    # FIRST CHECK, IF A GLOBAL SOURCE-CODE PATH HAS BEEN DECLARED FOR ALL HOSTS.
-    # THEREFORE, FIRST SET ALL GLOBAL VARIABLES DECLARED IN THE CONFIG-FILE,
-    # BECAUSE THEY MAY BE USED AS PART OF THE PATH NAME.
- line=""
- grep "%" $config_file  >  $tmp_mbuild
- while read line
- do
-    if [[ "$line" != ""  &&  "$(echo $line | cut -d" " -s -f3)" = ""  &&  $(echo $line | cut -c1) != "#" ]]
-    then
-       var=`echo $line | cut -d" " -s -f1 | cut -c2-`
-       value=`echo $line | cut -d" " -s -f2`
-       eval export $var=\$value
-    fi
- done < $tmp_mbuild
-
-    # NOW CHECK, IF A GLOBAL SOURCE-CODE-PATH HAS BEEN DECLARED
- line=""
- grep "%source_path" $config_file  >  $tmp_mbuild
- while read line
- do
-    if [[ "$line" != ""  &&  $(echo $line | cut -c1) != "#" ]]
-    then
-       if [[ "$(echo $line | cut -d" " -s -f3)" = "" ]]
-       then
-          global_source_path=`echo $line | cut -d" " -s -f2`
-       fi
-    fi
- done < $tmp_mbuild
-
- line=""
- grep  " $local_host" $config_file | grep "%source_path"  >  $tmp_mbuild
- while read line
- do
-    if [[ "$line" != ""  &&  $(echo $line | cut -c1) != "#" ]]
-    then
-       local_source_path=`echo $line | cut -d" " -s -f2`
-    fi
- done < $tmp_mbuild
-
- if [[ "$local_source_path" = "" ]]
- then
-    if [[ "$global_source_path" != "" ]]
-    then
-       local_source_path=$global_source_path
-    else
-       printf "\n  +++ no source path found in configuration file"
-       printf "\n      for local host \"$local_host\" "
-       printf "\n      please set \"\%source_path\" in configuration file"
-       locat=config_file; exit
-    fi
- fi
- eval local_source_path=$local_source_path
- eval local_source_path=$local_source_path
-
-
-
-    # DETERMINE GLOBAL DEPOSITORY-PATH
- line=""
- grep "%depository_path" $config_file  >  $tmp_mbuild
- while read line
- do
-    if [[ "$line" != ""  &&  $(echo $line | cut -c1) != "#" ]]
-    then
-       if [[ "$(echo $line | cut -d" " -s -f3)" = "" ]]
-       then
-          global_depository_path=`echo $line | cut -d" " -s -f2`
-       fi
-    fi
- done < $tmp_mbuild
-
- if [[ $found = false ]]
- then
-    printf "\n  +++ no \%depository_path found in" 
-    printf "\n                            $config_file"
-    locat=depository_path; exit
-  fi
-
-    # CHECK, IF A MAIN PROGRAM HAS BEEN DEFINED IN THE CONFIG-FILE
- if [[ $(grep -c "%mainprog" $config_file) != 1 ]]
- then
-    printf "\n  +++ no main program or more than one main program defined"
-    printf "\n      in configuration file"
-    locat=configuration; exit
- else
-    line=`grep "%mainprog" $config_file`
-    if [[ "$line" = ""  ||  $(echo $line | cut -c1) = "#" ]]
-    then
-       printf "\n  +++ no main program defined in configuration file"
-       locat=configuration; exit
-    fi
-    mainprog=`echo $line | cut -d" " -s -f2 | cut -d"." -f1`
- fi
-
-
-
-    # CHECK IF MAKEFILE EXITS
- [[ "$makefile" = "" ]]  &&  makefile=$local_source_path/Makefile
- if [[ ! -f $makefile ]]
- then
-    printf "\n  +++ makefile: "
-    printf "\n           $makefile"
-    printf "\n      does not exist"
-    locat=makefile; exit  
- fi
-
-
-    # HEADER-OUTPUT (PART1: MESSAGES CONCERNING THE LOCAL HOST)
- calltime=$(date)
- printf "\n"
- printf "#------------------------------------------------------------------------# \n"
- printf "| %-40s%30s | \n" "$version" "$calltime"
- printf "|                                                                        | \n"
- printf "| %-20s%-50s | \n" "called on:" "$local_host_real_name"
- printf "| %-20s%-50s | \n" "local username:" "$local_username"
- printf "| %-20s%-50s | \n" "local IP-address:" "$local_address"
- column2=$(echo $config_file | cut -c1-50 )
- printf "| %-20s%-50s | \n" "config file:" "$column2"
- line=$(echo "$config_file" | cut -c51-)
- while [[ "$line" != "" ]]
- do
-    column1=""
-    column2=$(echo $line | cut -c1-50 )
-    printf "| %-20s%-50s | \n" "$column1" "$column2"
-    line=$(echo "$line" | cut -c51-)
- done
- column2=$(echo $makefile | cut -c1-50 )
- printf "| %-20s%-50s | \n" "makefile:" "$column2"
- line=$(echo "$makefile" | cut -c51-)
- while [[ "$line" != "" ]]
- do
-    column1=""
-    column2=$(echo $line | cut -c1-50 )
-    printf "| %-20s%-50s | \n" "$column1" "$column2"
-    line=$(echo "$line" | cut -c51-)
- done
- column2=$(echo $local_source_path | cut -c1-50 )
- printf "| %-20s%-50s | \n" "local source path:" "$column2"
- line=$(echo "$local_source_path" | cut -c51-)
- while [[ "$line" != "" ]]
- do
-    column1=""
-    column2=$(echo $line | cut -c1-50 )
-    printf "| %-20s%-50s | \n" "$column1" "$column2"
-    line=$(echo "$line" | cut -c51-)
- done
- printf "#------------------------------------------------------------------------# \n"
-
-
- if [[ $compile_utility_programs = false ]]
- then
-
-       # IN ANY CASE, GIVE ALL FILES WRITE-PERMIT, IN ORDER TO AVOID PROBLEMS
-       # WITH OVERWRITING FILES ON THE REMOTE HOST
-    cd  $local_source_path
-    printf "\n\n  *** tar of makefile and source files in $local_source_path"  
-    tar -cf  ${mainprog}_sources.tar  Makefile  *.$suf
-    printf "\n"
-
- else
-    cd  $local_source_path
-    printf "\n\n  *** tar of makefile and source files in $local_source_path"  
-    printf "\n"
- fi
-
-
-
-    # GET CONFIRMATION TO CONTINUE
- if [[ $host = all ]]
- then
-    printf "\n  *** updates will be made for ALL hosts found in"
-    printf "\n      the configuration file"
- else
-    printf "\n  *** update will be made for host \"$host\" "
- fi
-
- if [[ $silent = false ]]
- then
-    answer=dummy
-    printf "\n\n"
-    while [[ "$answer" != y  &&  "$answer" != Y  &&  "$answer" != n  &&  "$answer" != N ]]
-    do
-       printf " >>> continue (y/n) ?  "
-       read  answer
-    done
-    if [[ $answer = n  ||  $answer = N ]]
-    then
-       locat=user_abort; exit
-    fi
- fi
- 
- 
-
-    
-    # GENERATE MODEL-VERSIONS FOR ALL HOST-BLOCKS
-    # FOUND IN THE CONFIGURATION-FILE
- printf "\n  *** scanning configuration file for host(s) ..."
-
- grep  %fopts  $config_file  >  $tmp_mbuild
- while read line
- do
-       # SKIP COMMENT-LINES
-    [[ $(echo $line | cut -c1) = "#" ]]  &&  continue
-    (( ihost = ihost + 1 ))
-    hostline[$ihost]="$line"
- done < $tmp_mbuild
-
- 
- while (( ih < ihost ))
- do
-
-    (( ih = ih + 1 ))
-
-       # DETERMINE REMOTE HOST AND CONDITIONS FOR THE RESPECTIVE BLOCK
-       # CONTINUE, ONLY IF THIS HOST HAS BEEN CHOSEN VIA -h OPTION AND IF
-       # CONDITIONS HAVE BEEN CHOSEN VIA -K OPTION
-    remote_host_string=`echo ${hostline[$ih]} | cut -d" " -s -f3-`
-    remote_host=`echo $remote_host_string | cut -d" " -f1`
-    if [[ $host != all ]]
-    then
-       [[ $remote_host != $host ]]  &&  continue
-    fi
-    host_found=true
-    condition1=`echo $remote_host_string | cut -d" " -s -f2`
-    if [[ $condition1 = $remote_host ]]
-    then
-       condition1=""
-    else
-       condition2=`echo $remote_host_string | cut -d" " -s -f3`
-    fi
-
-    if [[ $block_conditions != none ]]
-    then
-       if [[ "$condition1" != "$block_condition1"  || "$condition2" != "$block_condition2" ]]
-       then
-          continue
-       fi
-       block_conditions_found=true
-    fi
-
-    fftw_inc=""
-    fftw_lib=""
-    modules=""
-    netcdf_inc=""
-    netcdf_lib=""
-    make_options=""
-
-       # DETERMINE IP-ADDRES OF THE REMOTE-HOST
-    case  $remote_host  in
-        (lcbwuni)        remote_address="129.13.82.89";;
-        (lcbullhh)       remote_address=136.172.50.13;;
-        (lccrayb)        remote_address=130.73.233.1;;
-        (lccrayh)        remote_address=130.75.4.1;;
-        (lckordi)        remote_adress=210.219.61.8;;
-        (lcmuk)          remote_address=130.75.105.2;;
-        (lcrte)          remote_address=133.5.185.60;;
-        (lcsb)           remote_address=147.46.30.151;;
-        (lck)            remote_address=165.132.26.61;;
-        (lckiaps)        remote_address=118.128.66.223;;
-        (lckyut)         remote_address=133.5.4.37;;
-        (lclrz)          remote_address=129.187.20.240;;
-        (lckea*)         remote_address=172.27.80.109;;
-        (lctit)          remote_address=10.1.6.170;;
-        (lcxe6)          remote_address=129.177.20.113;;
-        (lcxt5m)         remote_address=193.166.211.144;;
-        (ibmh)           remote_address=136.172.40.15;;
-        (ibmkisti)       remote_address=150.183.146.24;;
-        (ibmku)          remote_address=133.5.4.129;;
-        (ibmmuc)         remote_address=129.187.11.197;;
-        (ibms)           remote_address=150.183.5.101;;
-        (nech)           remote_address=136.172.44.192;;
-        (neck)           remote_address=133.5.178.11;;
-        (ground.yonsei.ac.kr) remote_address=134.75.155.33;;
-        (*)              if [[ $local_host != $remote_host ]]
-                         then
-                            printf "\n  +++ remote host \"$remote_host\" unknown";
-                            printf "\n      please inform PALM group support!"
-                            locat=remote_host; exit
-                         fi;;
-    esac
-
-
-       # DETERMINE REMOTE-USERNAME
-    line=""
-    found=false
-    grep  "$remote_host_string" $config_file | grep "%remote_username"  >  $tmp_mbuild
-    while read line1
-    do
-
-       if [[ $(echo $line1 | cut -d" " -s -f3-) = "$remote_host_string" ]]
-       then
-          line="$line1"
-       fi
-
-       if [[ "$line" != ""  &&  $(echo $line | cut -c1) != "#" ]]
-       then
-          remote_username=`echo $line | cut -d" " -s -f2`
-          found=true
-       fi
-
-    done < $tmp_mbuild
-
-    if [[ $found = false ]]
-    then
-       printf "\n  +++ no remote username found in configuration file"
-       printf "\n      for \"$remote_host_string\" "
-       locat=config_file; exit
-    fi
-
-
-       # DETERMINE REMOTE-SOURCE-CODE-PATH
-    line=""
-    remote_source_path=""
-    grep  "$remote_host_string" $config_file | grep "%source_path"  >  $tmp_mbuild
-    while read line1
-    do
-
-       if [[ $(echo $line1 | cut -d" " -s -f3-) = "$remote_host_string" ]]
-       then
-          line="$line1"
-       fi
-
-       if [[ "$line" != ""  &&  $(echo $line | cut -c1) != "#" ]]
-       then
-          remote_source_path=`echo $line | cut -d" " -s -f2`
-       fi
-
-    done < $tmp_mbuild
-
-    if [[ "$remote_source_path" = "" ]]
-    then
-       if [[ "$global_source_path" != "" ]]
-       then
-          remote_source_path=$global_source_path
-       else
-          printf "\n  +++ no source path found in configuration file"
-          printf "\n      for \"$remote_host_string\" "
-          locat=config_file; exit
-       fi
-    fi
-
-    remote_ud=${remote_source_path}/../UTIL
-    remote_ud=$(eval echo $remote_ud)
-
-
-       # DETERMINE REMOTE-PATH FOR MAKE-DEPOSITORY
-    remote_md=""
-    line=""
-    grep  "$remote_host_string" $config_file | grep "%depository_path"  >  $tmp_mbuild
-    while read line1
-    do
-
-       if [[ $(echo $line1 | cut -d" " -s -f3-) = "$remote_host_string" ]]
-       then
-          line="$line1"
-       fi
-
-       if [[ "$line" != ""  &&  $(echo $line | cut -c1) != "#" ]]
-       then
-          remote_md=`echo $line | cut -d" " -s -f2`
-       fi
-
-    done < $tmp_mbuild
-
-    if [[ "$remote_md" = "" ]]
-    then
-       if [[ "$global_depository_path" != "" ]]
-       then
-          remote_md=$global_depository_path
-       else
-          printf "\n  +++ no depository path found in configuration file"
-          printf "\n      for \"$remote_host_string\" "
-          printf "\n      please set \"\%depository_path\" in configuration file"
-          locat=config_file; exit
-       fi
-    fi
-
-    remote_md=$(eval echo $remote_md)
-    block=""
-    [[ "$condition1" != "" ]]  &&  block=_$condition1
-    [[ "$condition2" != "" ]]  &&  block=${block}_$condition2
-    remote_md=${remote_md}$block
-
-
-       # DETERMINE COMPILERNAME
-    line=""
-    found=false
-    grep  "$remote_host_string" $config_file | grep "%compiler_name "  >  $tmp_mbuild
-    while read line1
-    do
-
-       if [[ $(echo $line1 | cut -d" " -s -f3-) = "$remote_host_string" ]]
-       then
-          line="$line1"
-       fi
-
-       if [[ "$line" != ""  &&  $(echo $line | cut -c1) != "#" ]]
-       then
-          compiler_name=`echo $line | cut -d" " -s -f2`
-          found=true
-       fi
-
-    done < $tmp_mbuild
-
-    if [[ $found = false ]]
-    then
-       printf "\n  +++ no compiler name found in configuration file"
-       printf "\n      for \"$remote_host_string\" "
-       locat=config_file; exit
-    fi
-
-
-       # DETERMINE SSH-KEY TO BE USED
-    ssh_key=""
-    line=""
-    grep  "$remote_host_string" $config_file | grep "%ssh_key "  >  $tmp_mbuild
-    while read line1
-    do
-
-       if [[ $(echo $line1 | cut -d" " -s -f3-) = "$remote_host_string" ]]
-       then
-          line="$line1"
-       fi
-
-       if [[ "$line" != ""  &&  $(echo $line | cut -c1) != "#" ]]
-       then
-          ssh_key="-i $HOME/.ssh/`echo $line | cut -d" " -s -f2`"
-       fi
-
-    done < $tmp_mbuild
-
-
-
-       # IN CASE OF PARALLEL EXECUTION (COMPILER FOR PARALLEL EXECUTION),
-       # A SERIAL COMPILERNAME MUST BE DETERMINED ALSO
-    if [[ $(echo $remote_host_string | grep -c parallel) = 1 ]]
-    then
-       line=""
-       found=false
-       grep  "$remote_host_string" $config_file | grep "%compiler_name_ser"  >  $tmp_mbuild
-       while read line1
-       do
-
-          if [[ $(echo $line1 | cut -d" " -s -f3-) = "$remote_host_string" ]]
-          then
-             line="$line1"
-          fi
-
-          if [[ "$line" != ""  &&  $(echo $line | cut -c1) != "#" ]]
-          then
-             compiler_name_ser=`echo $line | cut -d" " -s -f2`
-             found=true
-          fi
-
-       done < $tmp_mbuild
-
-       if [[ $found = false ]]
-       then
-          printf "\n  +++ no serial compiler name found in configuration file"
-          printf "\n      for \"$remote_host_string\" "
-          locat=config_file; exit
-       fi
-    else
-       compiler_name_ser=$compiler_name
-    fi
-
-
-
-       # DETERMINE PREPROCESSOR-OPTIONS AND DIRECTIVES
-    line=""
-    found=false
-    grep  "$remote_host_string" $config_file | grep "%cpp_options"  >  $tmp_mbuild
-    while read line1
-    do
-
-       if [[ $(echo $line1 | cut -d" " -s -f3-) = "$remote_host_string" ]]
-       then
-          line="$line1"
-       fi
-
-       if [[ "$line" != ""  &&  $(echo $line | cut -c1) != "#" ]]
-       then
-             # REMOVE COLONS FROM THE OPTION-STRING, IF THERE ARE ANY
-          cpp_options=`echo $line | cut -d" " -s -f2 | sed 's/::/%DUM%/g' | sed 's/:/ /g' | sed 's/%DUM%/:/g'`
-          found=true
-       fi
-
-    done < $tmp_mbuild
-
-    if [[ $found = false ]]
-    then
-       printf "\n  +++ no preprocessor options found in configuration file"
-       printf "\n      for \"$remote_host_string\" "
-       locat=config_file; exit
-    fi
-
-
-       # ADD HOST-SPECIFIC PREPROCESSOR-DIRECTIVES
-    for  string  in  $remote_host_string
-    do
-       if [[ $(echo $remote_host | cut -c1-2) = lc  &&  $(echo $string | cut -c1-2) = lc ]]
-       then
-          cpp_options="$cpp_options -D__lc "
-       elif [[ $(echo $remote_host | cut -c1-3) = ibm  &&  $(echo $string | cut -c1-3) = ibm ]]
-       then
-          if [[ $remote_host = ibmmuc ]]
-          then
-             cpp_options="${cpp_options}"
-          else
-             cpp_options="${cpp_options},-D__ibm"
-          fi
-       elif [[ $(echo $remote_host | cut -c1-3) = nec  &&  $(echo $string | cut -c1-3) = nec ]]
-       then
-          cpp_options="${cpp_options} -D__nec"
-       else
-          if [[ $(echo $remote_host | cut -c1-3) = ibm ]]
-          then
-             if [[ $remote_host = ibmmuc ]]
-             then
-                cpp_options="${cpp_options} -D__parallel"
-             else
-                cpp_options="${cpp_options},-D__$string"
-             fi
-          else
-             cpp_options="$cpp_options -D__$string "
-          fi
-       fi
-    done
-
-
-
-       # GET netCDF OPTIONS
-    line=""
-    grep  "$remote_host_string" $config_file | grep "%netcdf_inc"  >  $tmp_mbuild
-    while read line1
-    do
-
-       if [[ $(echo $line1 | cut -d" " -s -f3-) = "$remote_host_string" ]]
-       then
-          line="$line1"
-       fi
-
-       if [[ "$line" != ""  &&  $(echo $line | cut -c1) != "#" ]]
-       then
-             # REMOVE COLONS FROM THE OPTION-STRING, IF THERE ARE ANY
-          netcdf_inc=`echo $line | cut -d" " -s -f2 | sed 's/::/%DUM%/g' | sed 's/:/ /g' | sed 's/%DUM%/:/g'`
-       fi
-
-    done < $tmp_mbuild
-
-    line=""
-    grep  "$remote_host_string" $config_file | grep "%netcdf_lib"  >  $tmp_mbuild
-    while read line1
-    do
-
-       if [[ $(echo $line1 | cut -d" " -s -f3-) = "$remote_host_string" ]]
-       then
-          line="$line1"
-       fi
-
-       if [[ "$line" != ""  &&  $(echo $line | cut -c1) != "#" ]]
-       then
-             # REMOVE COLONS FROM THE OPTION-STRING, IF THERE ARE ANY
-          netcdf_lib=`echo $line | cut -d" " -s -f2 | sed 's/::/%DUM%/g' | sed 's/:/ /g' | sed 's/%DUM%/:/g'`
-       fi
-
-    done < $tmp_mbuild
-
-
-
-       # GET FFTW OPTIONS
-    line=""
-    grep  "$remote_host_string" $config_file | grep "%fftw_inc"  >  $tmp_mbuild
-    while read line1
-    do
-
-       if [[ $(echo $line1 | cut -d" " -s -f3-) = "$remote_host_string" ]]
-       then
-          line="$line1"
-       fi
-
-       if [[ "$line" != ""  &&  $(echo $line | cut -c1) != "#" ]]
-       then
-             # REMOVE COLONS FROM THE OPTION-STRING, IF THERE ARE ANY
-          fftw_inc=`echo $line | cut -d" " -s -f2 | sed 's/::/%DUM%/g' | sed 's/:/ /g' | sed 's/%DUM%/:/g'`
-       fi
-
-    done < $tmp_mbuild
-
-    line=""
-    grep  "$remote_host_string" $config_file | grep "%fftw_lib"  >  $tmp_mbuild
-    while read line1
-    do
-
-       if [[ $(echo $line1 | cut -d" " -s -f3-) = "$remote_host_string" ]]
-       then
-          line="$line1"
-       fi
-
-       if [[ "$line" != ""  &&  $(echo $line | cut -c1) != "#" ]]
-       then
-             # REMOVE COLONS FROM THE OPTION-STRING, IF THERE ARE ANY
-          fftw_lib=`echo $line | cut -d" " -s -f2 | sed 's/::/%DUM%/g' | sed 's/:/ /g' | sed 's/%DUM%/:/g'`
-       fi
-
-    done < $tmp_mbuild
-
-
-
-       # GET MAKE OPTIONS
-    line=""
-    found=false
-    grep  "$remote_host_string" $config_file | grep "%mopts"  >  $tmp_mbuild
-    while read line1
-    do
-
-       if [[ $(echo $line1 | cut -d" " -s -f3-) = "$remote_host_string" ]]
-       then
-          line="$line1"
-       fi
-
-       if [[ "$line" != ""  &&  $(echo $line | cut -c1) != "#" ]]
-       then
-             # REMOVE COLONS FROM THE OPTION-STRING, IF THERE ARE ANY
-          make_options=`echo $line | cut -d" " -s -f2 | sed 's/::/%DUM%/g' | sed 's/:/ /g' | sed 's/%DUM%/:/g'`
-
-       fi
-
-    done < $tmp_mbuild
-
-
-
-       # GET COMPILER OPTIONS
-    line=""
-    found=false
-    grep  "$remote_host_string" $config_file | grep "%fopts"  >  $tmp_mbuild
-    while read line1
-    do
-
-       if [[ $(echo $line1 | cut -d" " -s -f3-) = "$remote_host_string" ]]
-       then
-          line="$line1"
-       fi
-
-       if [[ "$line" != ""  &&  $(echo $line | cut -c1) != "#" ]]
-       then
-             # REMOVE COLONS FROM THE OPTION-STRING, IF THERE ARE ANY
-          compiler_options=`echo $line | cut -d" " -s -f2 | sed 's/::/%DUM%/g' | sed 's/:/ /g' | sed 's/%DUM%/:/g'`
-          found=true
-
-             # ADD INCLUDE PATHS FOR netCDF AND FFTW
-          compiler_options="$compiler_options $netcdf_inc $fftw_inc"
-       fi
-
-    done < $tmp_mbuild
-
-    if [[ $found = false ]]
-    then
-       printf "\n  +++ no compiler options found in configuration file"
-       printf "\n      for \"$remote_host_string\" "
-       locat=config_file; exit
-    fi
-
-
-       # GET LOGIN INIT COMMANDS
-    line=""
-    grep  "$remote_host_string" $config_file | grep "%login_init_cmd"  >  $tmp_mbuild
-    while read line1
-    do
-
-       if [[ $(echo $line1 | cut -d" " -s -f3-) = "$remote_host_string" ]]
-       then
-          line="$line1"
-       fi
-
-       if [[ "$line" != ""  &&  $(echo $line | cut -c1) != "#" ]]
-       then
-             # REMOVE COLONS FROM THE OPTION-STRING, IF THERE ARE ANY
-          init_cmds=`echo $line | cut -d" " -s -f2 | sed 's/::/%DUM%/g' | sed 's/:/ /g' | sed 's/%DUM%/:/g'`
-          init_cmds="${init_cmds};"
-       fi
-    done < $tmp_mbuild
-
-
-       # GET MODULES TO BE LOADED
-    line=""
-    grep  "$remote_host_string" $config_file | grep "%modules"  >  $tmp_mbuild
-    while read line1
-    do
-
-       if [[ $(echo $line1 | cut -d" " -s -f3-) = "$remote_host_string" ]]
-       then
-          line="$line1"
-       fi
-
-       if [[ "$line" != ""  &&  $(echo $line | cut -c1) != "#" ]]
-       then
-             # REMOVE COLONS FROM THE OPTION-STRING, IF THERE ARE ANY
-          modules=`echo $line | cut -d" " -s -f2 | sed 's/::/%DUM%/g' | sed 's/:/ /g' | sed 's/%DUM%/:/g'`
-       fi
-
-    done < $tmp_mbuild
-
-
-       # GET LINKER OPTIONS
-    line=""
-    found=false
-    grep  "$remote_host_string" $config_file | grep "%lopts"  >  $tmp_mbuild
-    while read line1
-    do
-
-       if [[ $(echo $line1 | cut -d" " -s -f3-) = "$remote_host_string" ]]
-       then
-          line="$line1"
-       fi
-
-       if [[ "$line" != ""  &&  $(echo $line | cut -c1) != "#" ]]
-       then
-             # REMOVE COLONS FROM THE OPTION-STRING, IF THERE ARE ANY
-          loader_options=`echo $line | cut -d" " -s -f2 | sed 's/::/%DUM%/g' | sed 's/:/ /g' | sed 's/%DUM%/:/g'`
-          found=true
-
-             # ADD netCDF- AND FFTW-LIBRARY
-          loader_options="$loader_options $netcdf_lib $fftw_lib"
-       fi
-
-    done < $tmp_mbuild
-
-    if [[ $found = false ]]
-    then
-       printf "\n  +++ no loader options found in configuration file"
-       printf "\n      for \"$remote_host_string\" "
-       locat=config_file; exit
-    fi
-
-
-    printf "\n\n#------------------------------------------------------------------------# \n"
-    if [[ $remote_host = $local_host ]]
-    then
-       column2="$remote_host (= local host!)"
-    else
-       column2=$remote_host
-    fi
-    printf "| %-20s%-50s | \n" "remote_host:" "$column2"
-    printf "|                                                                        | \n"
-    printf "| %-20s%-50s | \n" "conditions:" "$condition1 $condition2"
-    column2=$(echo "$remote_md" | cut -c1-50 )
-    printf "| %-20s%-50s | \n" "make depository:" "$column2"
-    line=$(echo "$remote_md" | cut -c51-)
-    while [[ "$line" != "" ]]
-    do
-       column1=""
-       column2=$(echo "$line" | cut -c1-50 )
-       printf "| %-20s%-50s | \n" "$column1" "$column2"
-       line=$(echo "$line" | cut -c51-)
-    done
-    if [[ $compile_utility_programs = true ]]
-    then
-       column2=$(echo "$remote_ud" | cut -c1-50 )
-       printf "| %-20s%-50s | \n" "utility directory:" "$column2"
-       line=$(echo "$remote_ud" | cut -c51-)
-       while [[ "$line" != "" ]]
-       do
-          column1=""
-          column2=$(echo "$line" | cut -c1-50 )
-          printf "| %-20s%-50s | \n" "$column1" "$column2"
-          line=$(echo "$line" | cut -c51-)
-       done
-    fi
-    printf "| %-20s%-50s | \n" "username:" "$remote_username"
-    printf "| %-20s%-50s | \n" "address:" "$remote_address"
-    printf "| %-20s%-50s | \n" "compiler:" "$compiler_name"
-    if [[ $compile_utility_programs = true ]]
-    then
-       printf "| %-20s%-50s | \n" "serial compiler:" "$compiler_name_ser"
-    fi
-    if [[ "$make_options" != "" ]]
-    then
-       printf "| %-20s%-50s | \n" "make options:" "$make_options"
-    fi
-    column2=$(echo $cpp_options | cut -c1-50 )
-    printf "| %-20s%-50s | \n" "cpp options:" "$column2"
-    line=$(echo "$cpp_options" | cut -c51-)
-    while [[ "$line" != "" ]]
-    do
-       column1=""
-       column2=$(echo $line | cut -c1-50 )
-       printf "| %-20s%-50s | \n" "$column1" "$column2"
-       line=$(echo "$line" | cut -c51-)
-    done
-    column2=$(echo $compiler_options | cut -c1-50 )
-    printf "| %-20s%-50s | \n" "compiler options:" "$column2"
-    line=$(echo "$compiler_options" | cut -c51-)
-    while [[ "$line" != "" ]]
-    do
-       column1=""
-       column2=$(echo $line | cut -c1-50 )
-       printf "| %-20s%-50s | \n" "$column1" "$column2"
-       line=$(echo "$line" | cut -c51-)
-    done
-    column2=$(echo $loader_options | cut -c1-50 )
-    printf "| %-20s%-50s | \n" "loader options:" "$column2"
-    line=$(echo "$loader_options" | cut -c51-)
-    while [[ "$line" != "" ]]
-    do
-       column1=""
-       column2=$(echo $line | cut -c1-50 )
-       printf "| %-20s%-50s | \n" "$column1" "$column2"
-       line=$(echo "$line" | cut -c51-)
-    done
-    if [[ $init_cmds != "" ]]
-    then
-       column2=$(echo $init_cmds | cut -c1-50 )
-       printf "| %-20s%-50s | \n" "login init command:" "$column2"
-       line=$(echo "$init_cmds" | cut -c51-)
-       while [[ "$line" != "" ]]
-       do
-          column1=""
-          column2=$(echo $line | cut -c1-50 )
-          printf "| %-20s%-50s | \n" "$column1" "$column2"
-          line=$(echo "$line" | cut -c51-)
-       done
-    fi
-    if [[ $modules != "" ]]
-    then
-       column2=$(echo $modules | cut -c1-50 )
-       printf "| %-20s%-50s | \n" "modules to be load:" "$column2"
-       line=$(echo "$modules" | cut -c51-)
-       while [[ "$line" != "" ]]
-       do
-          column1=""
-          column2=$(echo $line | cut -c1-50 )
-          printf "| %-20s%-50s | \n" "$column1" "$column2"
-          line=$(echo "$line" | cut -c51-)
-       done
-    fi
-    printf "#------------------------------------------------------------------------# \n"
-
-    if [[ $silent = false ]]
-    then
-       answer=dummy
-       printf "\n\n"
-       while [[ "$answer" != y  &&  "$answer" != Y  && "$answer" != c  &&  "$answer" != C  && "$answer" != s  &&  "$answer" != S  &&  "$answer" != a  &&  "$answer" != A ]]
-       do
-          printf " >>> continue (y(es)/c(ontinue)/a(bort)/s(skip)) ?  "
-          read  answer
-       done
-       if [[ $answer = a  ||  $answer = A ]]
-       then
-          locat=user_abort; exit
-       fi
-       if [[ $answer = c  ||  $answer = C ]]
-       then
-          silent=true
-       fi
-       if [[ $answer = s  ||  $answer = S ]]
-       then
-          continue
-       fi
-    fi
-
-
-       # MAKE ON REMOTE HOST
-    if [[ $remote_host != $local_host ]]
-    then
-       if [[ $compile_utility_programs = false ]]
-       then
-
-             # COPY CURRENT SOURCE CODE TO SOURCE-CODE DIRECTORY ON THE REMOTE HOST
-             # CREATE THIS DIRECTORY, IF IT DOES NOT EXIST
-          echo "  *** copying \"${mainprog}_sources.tar\" to \"${remote_address}:${remote_md}/\" "
-          if [[ $remote_host != lctit ]]
-          then
-             ssh  $ssh_key  ${remote_username}@${remote_address} "[[ ! -d ${remote_md} ]]  &&  (echo \"  *** ${remote_md} will be created\"; mkdir -p  ${remote_md})"
-          else
-                # USING PIPE, BECAUSE TIT ALLOWS SSH TO EXECUTE ONLY SOME SELECTED COMMANDS
-             echo "[[ ! -d ${remote_md} ]]  &&  (echo \"  *** ${remote_md} will be created\"; mkdir -p  ${remote_md})"  |  ssh ${remote_username}@${remote_address}  2>&1
-          fi
-
-          scp  $ssh_key ${local_source_path}/${mainprog}_sources.tar  ${remote_username}@${remote_address}:${remote_md}/${mainprog}_sources.tar
-
-
-
-             # UNTAR PREVIOUS UPDATE ON REMOTE HOST, IF EXISTING
-          echo "  *** untar previous update on remote host, if existing"
-          if [[ $remote_host != lctit ]]
-          then
-             ssh  $ssh_key  ${remote_username}@${remote_address}  "cd ${remote_md}; [[ -f ${mainprog}_current_version.tar ]]  &&  tar -xf  ${mainprog}_current_version.tar"
-          else
-                # USING PIPE, BECAUSE TIT ALLOWS SSH TO EXECUTE ONLY SOME SELECTED COMMANDS
-             echo "cd ${remote_md}; [[ -f ${mainprog}_current_version.tar ]]  &&  tar -xf  ${mainprog}_current_version.tar"  |  ssh  ${remote_username}@${remote_address}  2>&1
-          fi
-
-
-             # UNTAR CURRENT SOURCES ON REMOTE HOST
-          echo "  *** untar current sources on remote host"
-          if [[ $remote_host != lctit ]]
-          then
-             ssh  $ssh_key  ${remote_username}@${remote_address}  "cd ${remote_md}; tar -xf  ${mainprog}_sources.tar"
-          else
-                # USING PIPE, BECAUSE TIT ALLOWS SSH TO EXECUTE ONLY SOME SELECTED COMMANDS
-             echo  "cd ${remote_md}; tar -xf  ${mainprog}_sources.tar"  |  ssh  ${remote_username}@${remote_address}  2>&1
-          fi
-
-
-             # EXECUTE MAKE WITH THOSE OPTIONS DETERMINED ABOVE
-             # COMMANDS WILL BE COMMUNICATED TO SSH VIA PIPE, SINCE THIS WAY THE SYSTEM- AND
-             # USER-PROFILES OF THE SHELL ARE COMPLETELY EXECUTED (OTHERWISE, MAKE
-             # WILL E.G. MISS THE COMPILER-PATHS)
-          echo "  *** execute \"make\" on remote host"
-
-
-             # GENERATE MAKE CALL WITH MAKE OPTIONS
-          if [[ $remote_host = nech ]]
-          then
-             make_call_string="sxmake  $make_options  PROG=$mainprog  F90=$compiler_name  COPT=\"$cpp_options\"  F90FLAGS=\"$compiler_options\"  LDFLAGS=\"$loader_options\" "
-          else
-             make_call_string="make  $make_options  PROG=$mainprog  F90=$compiler_name  COPT=\"$cpp_options\"  F90FLAGS=\"$compiler_options\"  LDFLAGS=\"$loader_options\" "
-          fi
-
-             # GENERATE COMMAND TO LOAD MODULES, IF MODULES ARE GIVEN
-          if [[ "$modules" != "" ]]
-          then
-             if [[ $remote_host = lctit ]]
-             then
-                module_calls=". $modules"
-             else
-                module_calls="module load ${modules};"
-             fi
-          else
-             module_calls=""
-          fi
-
-          if [[ $remote_host = ibmkisti  ||  $remote_host = ibms ]]
-          then
-
-             ssh  ${remote_username}@${remote_address}  "$init_cmds $module_calls cd ${remote_md}; echo '$make_call_string' > LAST_MAKE_CALL; chmod u+x LAST_MAKE_CALL; $make_call_string; [[ \$? != 0 ]] && echo MAKE_ERROR" 2>&1 | tee ${remote_host}_last_make_protokoll
-
-          elif [[ $remote_host = ibmh ]]
-          then
-
-             echo "$init_cmds $module_calls export OBJECT_MODE=64; cd ${remote_md}; echo $make_call_string > LAST_MAKE_CALL; chmod u+x LAST_MAKE_CALL; $make_call_string; [[ \$? != 0 ]] && echo MAKE_ERROR" | ssh  ${remote_username}@${remote_address} 2>&1 | tee ${remote_host}_last_make_protokoll
-
-          elif [[ $remote_host = lctit ]]
-          then
-
-             echo  " "  >  ${remote_host}_last_make_protokoll
-             while [[ $(cat ${remote_host}_last_make_protokoll | grep -c "Forwarding to N1GE") = 0 ]]
-             do
-                echo "cd ${remote_md}; echo $make_call_string > LAST_MAKE_CALL; chmod u+x LAST_MAKE_CALL; $make_call_string; [[ \$? != 0 ]] && echo MAKE_ERROR" | ssh  ${remote_username}@${remote_address} 2>&1 | tee ${remote_host}_last_make_protokoll
-             done
-
-          elif [[ $remote_host = lcxe6 ]]
-          then
-
-             ssh  ${remote_username}@${remote_address} "$init_cmds $module_calls cd ${remote_md}; echo $make_call_string > LAST_MAKE_CALL; chmod u+x LAST_MAKE_CALL; $make_call_string; [[ \$? != 0 ]] && echo MAKE_ERROR" 2>&1 | tee ${remote_host}_last_make_protokoll
-
-          else
-
-             echo "$init_cmds $module_calls cd ${remote_md}; echo $make_call_string > LAST_MAKE_CALL; chmod u+x LAST_MAKE_CALL; $make_call_string; [[ \$? != 0 ]] && echo MAKE_ERROR" | ssh  $ssh_key  ${remote_username}@${remote_address} 2>&1 | tee ${remote_host}_last_make_protokoll
-
-          fi
-
-          if [[ $(grep -c MAKE_ERROR ${remote_host}_last_make_protokoll) != 0 ]]
-          then
-             printf "\a\n  +++ error(s) occurred during compiling or linking on host \"$remote_host\" "
-             if [[ $silent = false ]]
-             then
-                answer=dummy
-                printf "\n"
-                while [[ "$answer" != c  &&  "$answer" != k ]]
-                do
-                   printf "  >>> continue / list errors / kill mbuild (c/l/k) ? "
-                   read  answer
-                   if [[ "$answer" = l ]]
-                   then
-                      more ${remote_host}_last_make_protokoll
-                   fi
-                done
-                if [[ $answer = k ]]
-                then
-                   locat=user_abort; exit
-                fi
-             fi
-          fi
-
-
-
-             # TAR UPDATED VERSION ON THE REMOTE HOST
-          printf "\n  *** tar update on remote host ..."
-          if [[ $remote_host != lctit ]]
-          then
-             ssh  $ssh_key  ${remote_username}@${remote_address}  "cd ${remote_md}; chmod u+w *; tar -cf  ${mainprog}_current_version.tar  ${mainprog}  *.f90 *.o *.mod"
-          else
-                # USING PIPE, BECAUSE TIT ALLOWS SSH TO EXECUTE ONLY SOME SELECTED COMMANDS
-             echo  "cd ${remote_md}; chmod u+w *; tar -cf  ${mainprog}_current_version.tar  ${mainprog}  *.f90 *.o *.mod"  |  ssh  ${remote_username}@${remote_address}  2>&1
-          fi
-
-
-
-          # DO THE SAME THINGS FOR THE UTILITY-ROUTINES:
-          # COPY CURRENT SOURCE CODE TO SOURCE-CODE DIRECTORY ON THE REMOTE HOST
-          # CREATE THIS DIRECTORY, IF IT DOES NOT EXIST
-       elif [[ $compile_utility_programs = true ]]
-       then
-
-          printf "\n\n"
-          echo "  *** copying scripts and utility programs to \"${remote_address}:${remote_ud}/\" "
-          cd  ${local_source_path}/../SCRIPTS
-
-          if [[ $remote_host != lctit ]]
-          then
-             ssh  $ssh_key  ${remote_username}@${remote_address} "[[ ! -d ${remote_ud} ]]  &&  (echo \"  *** ${remote_ud} will be created\"; mkdir -p  ${remote_ud}); [[ ! -d ${remote_ud}/../SCRIPTS ]]  &&  (echo \"  *** ${remote_ud}/../SCRIPTS will be created\"; mkdir -p ${remote_ud}/../SCRIPTS)"
-          else
-                # USING PIPE, BECAUSE TIT ALLOWS SSH TO EXECUTE ONLY SOME SELECTED COMMANDS
-             echo "[[ ! -d ${remote_ud} ]]  &&  (echo \"  *** ${remote_ud} will be created\"; mkdir -p  ${remote_ud}); [[ ! -d ${remote_ud}/../SCRIPTS ]]  &&  (echo \"  *** ${remote_ud}/../SCRIPTS will be created\"; mkdir -p  ${remote_ud}/../SCRIPTS)"  |  ssh ${remote_username}@${remote_address}  2>&1
-          fi
-
-             # COPY SHELL-SCRIPTS
-          scp  $ssh_key  batch_scp mbuild mrun process_dvr_output .dvrserver.config subjob ${remote_username}@${remote_address}:${remote_ud}/../SCRIPTS  >  /dev/null
-
-          cd  -  > /dev/null
-          cd  ${local_source_path}/../UTIL
-
-
-             # COPY UTILITY-ROUTINES
-          scp  $ssh_key  Makefile  *.f90  ${remote_username}@${remote_address}:${remote_ud}  >  /dev/null
-
-
-
-             # EXECUTE MAKE WITH THOSE OPTIONS DETERMINED ABOVE
-             # COMMANDS WILL BE COMMUNICATED TO SSH VIA PIPE, SINCE THIS WAY THE SYSTEM- AND
-             # USER-PROFILES OF THE SHELL ARE COMPLETELY EXECUTED (OTHERWISE, MAKE
-             # WILL E.G. MISS THE COMPILER-PATHS)
-          echo "  *** execute \"make\" on remote host"
-
-          if [[ $remote_host = nech ]]
-          then
-             make_call_string="sxmake  $make_options  BLOCK=$block  F90=$compiler_name  F90_SER=$compiler_name_ser  COPT=\"$cpp_options\"  F90FLAGS=\"$compiler_options\"  LDFLAGS=\"$loader_options\" "
-          else
-             make_call_string="make  $make_options  BLOCK=$block  F90=$compiler_name  F90_SER=$compiler_name_ser  COPT=\"$cpp_options\"  F90FLAGS=\"$compiler_options\"  LDFLAGS=\"$loader_options\" "
-          fi
-
-             # GENERATE COMMAND TO LOAD MODULES, IF MODULES ARE GIVEN
-          if [[ "$modules" != "" ]]
-          then
-             if [[ $remote_host = lctit ]]
-             then
-                module_calls=". $modules"
-             else
-                module_calls="module load ${modules};"
-             fi
-          else
-             module_calls=""
-          fi
-
-
-          if [[ $remote_host = ibms ]]
-          then
-
-             ssh  ${remote_username}@${remote_address}  "$init_cmds $module_calls cd ${remote_ud}; $make_call_string; [[ \$? != 0 ]] && echo MAKE_ERROR"
-
-          elif [[ $remote_host = ibmh ]]
-          then
-
-             echo "$init_cmds $module_calls export OBJECT_MODE=64; cd ${remote_ud}; $make_call_string; [[ \$? != 0 ]] && echo MAKE_ERROR" | ssh  ${remote_username}@${remote_address}
-
-          elif [[ $remote_host = lctit ]]
-          then
-
-             echo  " "  >  ${remote_host}_last_make_protokoll
-             while [[ $(cat ${remote_host}_last_make_protokoll | grep -c "Forwarding to N1GE") = 0 ]]
-             do
-                echo "$init_cmds $module_calls cd ${remote_ud}; $make_call_string; [[ \$? != 0 ]] && echo MAKE_ERROR" | ssh  ${remote_username}@${remote_address} 2>&1 | tee ${remote_host}_last_make_protokoll
-             done
-
-          elif [[ $remote_host = lcxe6 ]]
-          then
-
-             ssh  ${remote_username}@${remote_address} "$init_cmds $module_calls cd ${remote_ud}; $make_call_string; [[ \$? != 0 ]] && echo MAKE_ERROR" 2>&1 | tee ${remote_host}_last_make_protokoll
-
-          else
-
-             echo "$init_cmds $module_calls cd ${remote_ud}; $make_call_string; [[ \$? != 0 ]] && echo MAKE_ERROR" | ssh  $ssh_key  ${remote_username}@${remote_address} 2>&1 | tee ${remote_host}_last_make_protokoll
-
-          fi
-
-       fi    # END OF COMPILING UTILITY-ROUTINES
-
-       rm -rf  ${remote_host}_last_make_protokoll
-
-       # MAKE ON LOCAL HOST
-    else
-
-          # INIT WORKAROUND FOR lcxe6
-       if [[ $remote_host = lcxe6  ||  $remote_host = lccrayb  ||  $remote_host = lccrayf ||  $remote_host = lccrayh ]]
-       then
-
-          eval $init_cmds  >  /dev/null  2>&1
-
-       fi
-
-       # FIRST LOAD MODULES, IF GIVEN
-       if [[ "$modules" != "" ]]
-       then
-          if [[ $remote_host = lctit ]]
-          then
-             . $modules
-	  elif [[ $remote_host = lceddy ]]
-          then
-             eval `$MODULESHOME/libexec/lmod load ${modules}`	
-          else
-             eval init_cmds=$init_cmds
-             module load ${modules}
-          fi
-       fi
-
-
-       if [[ $compile_utility_programs = false ]]
-       then
-
-             # CREATE MAKE-DEPOSITORY, IF IT DOES NOT EXIST
-          eval remote_md=$remote_md
-          if [[ ! -d $remote_md ]]
-          then
-             if  mkdir $remote_md
-             then
-                printf "\n\n  *** directory for make depository:"
-                printf "\n           $remote_md"
-                printf "\n      was created\n"
-             else
-                printf "\n  +++ directory for make depository:"
-                printf "\n           $remote_md"
-                printf "\n      cannot be created"
-                locat=local_depository_path; exit
-             fi
-          fi
-
-             # COPY SOURCE-CODE FROM REPOSITORY TO MAKE-DEPOSITORY
-          echo " "
-          echo "  *** updating sources in $remote_md"
-          cd  $remote_md
-          cp  $local_source_path/${mainprog}_sources.tar  .
-          tar xf  ${mainprog}_sources.tar
-
-             # CALL MAKE ON LOCAL HOST USING THE  OPTIONS DETERMINED FURTHER ABOVE
-          echo " "
-          echo "  *** execute \"make\" on local host"
-
-          make  $make_options  PROG=$mainprog  F90=$compiler_name  COPT="$cpp_options"  F90FLAGS="$compiler_options"  LDFLAGS="$loader_options"  2>&1 | tee ${remote_host}_last_make_protokoll
-
-          if [[ $? != 0 ]]
-          then
-             printf "\a\n  +++ error(s) occurred during compiling or linking on host \"$remote_host\" "
-             if [[ $silent = false ]]
-             then
-                answer=dummy
-                printf "\n"
-                while [[ "$answer" != c  &&  "$answer" != k ]]
-                do
-                   printf "  >>> continue / list errors / kill mbuild (c/l/k) ? "
-                   read  answer
-                   if [[ "$answer" = l ]]
-                   then
-                      more ${remote_host}_last_make_protokoll
-                   fi
-                done
-                if [[ $answer = k ]]
-                then
-                   locat=user_abort; exit
-                fi
-             fi
-          fi
-
-
-             # TAR NEW VERSION ON LOCAL HOST
-          printf "\n  *** tar update on local host ..."
-          tar -cf  ${mainprog}_current_version.tar  *.$suf *.o *.mod
-
-
-          # COMPILE THE UTILITY PROGRAMS
-       elif [[ $compile_utility_programs = true ]]
-       then
-          printf "\n\n"
-          echo "  *** compiling the utility programs ..."
-          cd ${local_source_path}/../UTIL
-
-             # TOUCH FILES IN ORDER TO FORCE COMPILATION FOR EVERY BLOCK
-          touch  *.f90
-          eval init_cmds=$init_cmds
-          make  $make_options  BLOCK=$block  F90=$compiler_name  F90_SER=$compiler_name_ser  COPT="$cpp_options"  F90FLAGS="$compiler_options"  LDFLAGS="$loader_options"
-       fi
-    fi
- done
-
-
- if [[ $host_found = false ]]
- then
-    if [[ $host = all ]]
-    then
-       printf "\n  +++ no hosts found in configuration file"
-    else
-       printf "\n  +++ host \"$host\" not found in configuration file"
-    fi
-    locat=config_file; exit
- fi
-
- if [[ "$block_conditions" != none  &&  $block_conditions_found = false ]]
- then
-    printf "\n  +++ block conditions \"$block_conditions\" not found for host \"$host\""
- fi
-
-
-    # FINAL WORK
- rm -f  hosts_found_in_config_file
Index: palm/trunk/SCRIPTS/mrun
===================================================================
--- palm/trunk/SCRIPTS/mrun	(revision 2693)
+++ 	(revision )
@@ -1,4054 +1,0 @@
-#!/bin/bash
-
-# mrun - script for running PALM jobs
-
-#--------------------------------------------------------------------------------#
-# This file is part of PALM.
-#
-# PALM is free software: you can redistribute it and/or modify it under the terms
-# of the GNU General Public License as published by the Free Software Foundation,
-# either version 3 of the License, or (at your option) any later version.
-#
-# PALM is distributed in the hope that it will be useful, but WITHOUT ANY
-# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
-# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License along with
-# PALM. If not, see <http://www.gnu.org/licenses/>.
-#
-# Copyright 1997-2015  Leibniz Universitaet Hannover
-#--------------------------------------------------------------------------------#
-#
-# Current revisions:
-# ------------------
-# 
-# 
-# Former revisions:
-# -----------------
-# $Id$
-# Added lckea & lckeam. KIT/IMK-IFU Garmisch cluster. LRZ (SadiqHuq)
-# Vertical grid nesting: set vnested_mode. -N Procs for fine and coarse grid.
-# 
-# 2303 2017-07-04 12:26:18Z raasch
-# bugfix: setting default value for write_binary
-# 
-# 2298 2017-06-29 09:28:18Z raasch
-# write_binary in ENVPAR has type LOGICAL now,
-# MPI2 coupling removed
-# 
-# 2297 2017-06-28 14:35:57Z scharf
-# adjustments for using lcgeohu (cirrus @ HUB)
-# cpp_opts removed
-# 
-# 2290 2017-06-19 11:03:06Z raasch
-# further test output removed
-# 
-# 2286 2017-06-15 13:31:57Z raasch
-# test output for cycle number removed
-# 
-# 2268 2017-06-09 10:34:09Z raasch
-# bugfix for calculating cycle numbers for output files in r2261
-# 
-# 2262 2017-06-08 14:52:23Z raasch
-# bugfix for r2261
-# 
-# 2261 2017-06-08 14:25:57Z raasch
-# unified cycle numbers for output files are used,
-# paths and filenames are allowed to contain arbitrary numbers of dots ".",
-# creation of file OUTPUT_FILE_CONNECTIONS removed,
-# archive feature completely removed from the script,
-# nech related parts completely removed
-# 
-# 2257 2017-06-07 14:07:05Z witha
-# adjustments for lceddy, removed lcflow-specific code
-# 
-# 2186 2017-03-21 05:36:31Z raasch
-#
-# 2185 2017-03-21 05:09:29Z raasch
-# adjustment for lykyo*-hosts (PJM_ENVIRONMENT defines BATCH)
-#
-# 2148 2017-02-09 16:56:42Z scharf
-# changed allocation of resources for lcbullhh in srun command
-# 
-# 2141 2017-02-06 10:19:32Z gronemeier
-# made check for existing files language independent
-# 
-# 1944 2016-06-15 06:29:00Z raasch
-# adjustments for using HLRN ssh-keys
-#
-# 1940 2016-06-14 05:15:20Z raasch $
-# adjustments for lckiaps
-#
-# 1866 2016-04-15 06:50:59Z raasch
-# adjusted for lcocean
-# 
-# 1841 2016-04-07 19:14:06Z raasch
-# script now running under bash
-# 
-# 1804 2016-04-05 16:30:18Z maronga
-# test: implementing an execute mechanism where the execute command is given in the
-# configuration file
-# ROPTS removed from execution commands
-# Warnings about missing optional files or user code changed to informative messages
-# Removed parameter file check
-# 
-# 1755 2016-02-22 13:53:39Z maronga
-# Minor bugfix to last commit
-# 
-# 1753 2016-02-22 13:49:49Z maronga
-# Bugfix: use random job number when PBS job nummer retrieval fails on lccray*
-# 
-# 1622 2015-07-20 06:21:36Z heinze 
-# bugfix for Mistral (lcbullhh)
-#
-# 1621 2015-07-17 11:39:33Z heinze
-# adjustments for Mistral at DKRZ Hamburg (lcbullhh)
-#
-# 1609 2015-07-03 15:37:58Z maronga
-# Modified the random number of the temporary working directory to match the 
-# queuing system number on HLRN-III (lccray*).
-# 
-# 1604 2015-06-23 15:48:03Z suehring
-# Enable coupled runs for lcmuk
-#
-# 1598 2015-05-29 06:45:40Z raasch
-# bugfix for creating hostfile and total number of MPI tasks if run in openmp-mode on one node
-# 
-# 1549 2015-01-30 14:26:16Z suehring
-# Enable interactive debug sessions with allinea debugger
-#
-# 1547 2015-01-29 15:09:12Z witha
-# adjustments for ForWind computing cluster (lcflow)
-# 
-# 1491 2014-11-12 08:12:57Z heinze
-# correct setting of batch_job allowed for ibm-machines
-#
-# 1468 2014-09-24 14:06:57Z maronga
-# Typo removed (addres->address)
-# Bugfix: returning files to IMUK via ssh did not work for lccrayh and lcycrayb
-# Added support for restart runs (remote) for lcxe6
-# 
-# 1442 2014-07-28 07:09:10Z raasch
-# default queues for HLRN-III (lccrayb/lccrayh) defined
-#
-# 1422 2014-07-02 10:01:25Z kanani
-# automatic restarts enabled for lccrayb,
-# adjustment of path to compilervars.sh at IMUK (see automatic restarts) 
-#
-# 1420 2014-06-10 06:24:14Z raasch
-# -j1 option added to aprung command for lccrayf (CSC)
-#
-# 1402 2014-05-09 14:25:13Z raasch
-# batch_job added to envpar-NAMELIST
-#
-# 1357 2014-04-11 15:02:03Z witha
-# adjustments for lccrayh (automatic restarts on lccrayh outside of IMUK are now
-# possible)
-# 
-# 1320 2014-03-20 08:40:49Z raasch
-# check namelist file set false by default
-# 
-# 1304 2014-03-12 10:29:42Z raasch
-# ulimit option changed from -Ss to -s
-#
-# bugfix: missing "fi" in r1289
-#
-# 1289 2014-03-04 07:12:34Z raasch
-# comments translated to English
-# necriam-, fimm-, ibmy-, and sgi-specific code removed
-# export of variables for palm and interpret_config removed
-#
-# 1281 2014-02-01 07:55:49Z raasch
-# rsync-copy restricted to Cray machines, since command is unavailable on some
-# other systems
-#
-# 1279 2014-01-28 12:10:14Z raasch
-# tasks_per_node must not be an integral divisor of numprocs any more. This was done
-# in order to remove annoying restrictions concerning the number of processors which
-# appear on machines with larger nodes (e.g. containing 24 cores). Now without this
-# restriction, one of the nodes will be filled with less than the given number of
-# tasks per node. A respective warning is given.
-#
-# 1274 2014-01-09 13:14:54Z heinze
-# adjustments for lccrayh
-#
-# 1272 2014-01-08 10:19:32Z witha
-# small adjustment for lcflow
-#
-# 1270 2013-12-16 11:05:01Z fricke
-# call of combine_plot_fields adjusted for lccrayb/lccrayh
-#
-# 1255 2013-11-07 14:43:35Z raasch
-# further adjustments for lccrayb remote access
-#
-# 1241 2013-10-30 11:36:58Z heinze
-# Enable use of nudging input and input of large scale forcing from 
-# external files
-#
-# 1229 2013-09-20 06:55:19Z raasch
-# further adjustments for lccrayb
-#
-# 1224 2013-09-16 07:27:23Z raasch
-# first adjustments for lccrayb
-#
-# 1210 2013-08-14 10:58:20Z raasch
-# fftw support added
-#
-# 1201 2013-07-10 16:17:59Z witha
-# adjustments for Forwind cluster (lcflow)
-#
-# 1199 2013-07-05 14:52:22Z raasch
-# adjustments for CSC Helsinki (lccrayf),
-# executables for batch jobs can be created in advance, in order to avoid calling
-# the compiler within the batch job (only works if batch jobs are submitted on
-# local host)
-#
-# 1190 2013-06-25 09:39:21Z heinze
-# enable use of automatic restarts for ibmh
-# use of cluster/express queue enabled (ibmh)
-#
-# 1124 2013-04-09 15:46:52Z raasch
-# variable "memory" is exported via typeset option -x, because otherwise an unknown
-# side effect may lead to data loss while getopts is reading the script-option arguments
-#
-# 1122 2013-04-09 08:37:16Z heinze
-# Bugfix: change type of variable last_char
-#
-# 1119 2013-04-05 15:11:19Z raasch
-# Bugfix for setting -T option for subjob
-#
-# 1108 2013-03-05 07:03:32Z raasch
-# bugfix for coupled runs on lckyut/lckyuh
-#
-# 1106 2013-03-04 05:31:38Z raasch
-# --stdin argument for mpiexec on lckyuh
-# -y and -Y settings output to header
-#
-# 1103 2013-02-20 02:15:53Z raasch
-# default script runs again under ksh, because of unsolved problems with read
-# from stdin: when bash script is called from a ksh, message "read error: 0:
-# Resource temporarily unavailable" appears and script does not stop,
-# further bash compatibility adjustments,
-# shebang line replaced by /bin/bash when running jobs on lckyuh; no restarts
-# on lckyuh, but mrun does not terminate and issues a warning instead
-#
-# 1101 2013-02-17 10:20:21Z raasch
-# script now running under bash instead of ksh, which required small adjustments
-# (output formatting with printf instead "typeset -L/-R", print replaced by echo,
-# read from stdin),
-# cross compilername on lckyuh compute nodes replaced by real compiler name
-#
-# 1099 2013-02-10 01:47:43Z raasch
-# adjustments for Kyushu-University computing center (lckyuh - hayaka)
-# and for Forwind cluster (lcflow)
-# small further adjustments for lckyut
-#
-# 1094 2013-02-03 01:52:12Z raasch
-# explicit ssh/scp port can be set in config file with environment variable
-# scp_port.  This port is handled to all ssh/scp/batch_scp calls.
-# decalpha parts (yonsei) removed
-#
-# 2013-02-02 07:06:13Z raasch
-# adjustments for Kyushu-University computing center (lckyut - tatara)
-#
-# 1083 2013-01-04 10:22:09Z maronga
-# bugfix in parameter file check (read %cpp_options was missing)
-#
-# 1069 2012-11-28 16:18:43Z maronga
-# bugfix: coupling mode was always set to mpi2, typos removed
-#
-# 1058 2012-11-21 07:00:35Z raasch
-# Intel inspector (inspxe) is given the number of PEs instead of the number of
-# nodes
-#
-# 1046 2012-11-09 14:38:45Z maronga
-# code put under GPL (PALM 3.9)
-#
-# 21/03/94 - Siggi - first version finished
-# 03/03/94 - Siggi - script development started
-#
-#--------------------------------------------------------------------------------#
-# mrun - script for running PALM jobs
-#--------------------------------------------------------------------------------#
-
-
- 
-    # DECLARATION OF VARIABLES AND THEIR DEFUALT VALUES
-
- set +o allexport    # SUPPRESS EXPORT OF ALL VARIABLES, SINCE IN THE PAST THIS
-                     # LES TO PROBLEMS IN ROUTINES CALLED BY MRUN
-                     # (TOO MANY ARGUMENTS - PROBLEM)
- set +o noclobber    # EXISTING FILES ARE ALLOWED TO BE OVERWRITTEN
-
- AddFilenames=""
- additional_conditions=""
- add_source_path=""
- afname=""
- check_namelist_files=false
- combine_plot_fields=true
- compiler_name=""
- cond1=""
- cond2="" 
- config_file=.mrun.config
- coupled_dist=""
- cpp_options=""
- cpumax=0
- cpurest=0
- create_executable_for_batch=false
- delete_temporary_catalog=true
- do_batch=false
- do_compile=true
- do_remote=false
- do_stagein=true
- do_stageout=true
- do_trace=false
- email_notification="none"
- exclude=""
- executable=""
- execute_command="none"
- execution_error=false
- fftw_inc=""
- fftw_lib=""
- fftw_support=false
- fname=test
- fromhost=""
- global_revision=""
- group_number=none
- host=""
- host_file=""
- hp=""
- input_list=""
- interpreted_config_file=""
- job_catalog="~/job_queue"
- job_on_file=""
- keep_data_from_previous_run=false
- link_local_input=false
- link_local_output=false
- localhost_realname=$(hostname)
- local_dvrserver_running=.FALSE.
- locat=normal
- mainprog=""
- makefile=""
- max_par_io_str=""
- mc=$0
- while [[ $(echo $mc | grep -c "/") != 0 ]]
- do
-    mc=`echo $mc | cut -f2- -d"/"`
- done
- module_calls=""
- mrun_script_name=$mc
- vnested_dist=""
- vnested_mode="vnested_twi"
- netcdf_inc=""
- netcdf_lib=""
- netcdf_support=false
- node_usage=default
- numprocs=""
- numprocs_atmos=0
- numprocs_ocean=0
- numprocs_crse=0
- numprocs_fine=0
- OOPT=""
- openmp=false
- output_list=""
- package_list=""
- queue=none
- read_from_config=""
- restart_run=false
- if [[ `hostname` = rte10 ]]
- then
-    return_address=133.5.185.60
-    echo "+++ WARNING: fixed return_address = $return_address is used !!!!!"
- elif [[ `hostname` = climate0 ]]
- then
-    return_address=165.132.26.68
-    echo "+++ WARNING: fixed return_address = $return_address is used !!!!!"
- elif [[ `hostname` = "schultzl-Latitude-E6540" ]]
- then
-    return_address="schultzl-Latitude-E6540"
-    echo "+++ WARNING: fixed return_address = $return_address is used !!!!!"
- elif [[ `hostname` = urban00 ]]
- then
-    return_address=147.46.30.151
-    echo "+++ WARNING: fixed return_address = $return_address is used !!!!!"
- else
-    return_address=$(nslookup `hostname` 2>&1 | grep "Address:" | tail -1 | awk '{print $2}')
- fi
- return_password=""
- return_username=$LOGNAME
- remotecall=false
- remote_username=""
- run_coupled_model=false
- run_mode=""
- run_vnested_model=false
- dashes="  ----------------------------------------------------------------------------"
- silent=false
- source_list=""
- source_path=SOURCE
- tasks_per_node=""
- threads_per_task=1
- tmpcreate=false
- tmp_data_catalog=""
- transfer_problems=false
- usern=$LOGNAME
- use_openmp=false
- version="MRUN  2.1 Rev$Rev$"
- working_directory=`pwd`
- write_binary=false
- TOPT=""
- XOPT=""
- zeit=$( date | cut -c 12-19 )
-
- typeset -i  iec=0 iic=0 iin=0 ioc=0 iout=0 stagein_anz=0 stageout_anz=0
- typeset -x -i  memory=0   # HAS TO BE EXPORTED HERE, OTHERWISE AN UNKNOWN SIDE
-                           # SIDE EFFECT MAY CAUSE DATA LOSS WHEN GETOPTS IS READING THE
-                           # SCRIPT-OPTION ARGUMENTS
- typeset -i  cputime i ii iia iii iio icycle inode ival jobges jobsek last_char_int maxcycle minuten nodes pes remaining_pes run_number sekunden tp1
-
-    # ERROR HANDLING IN CASE OF EXIT
- trap 'rm -rf  $working_directory/tmp_mrun
-       if [[ $locat != normal  &&  $locat != control_c ]]
-       then
-
-              # CARRY OUT ERROR-COMMANDS GIVEN IN THE CONFIGURATION FILE (EC:)
-          (( i = 0 ))
-          while (( i < iec ))
-          do
-             (( i = i + 1 ))
-             printf "\n  *** Execution of ERROR-command:\n"
-             printf "  >>> ${err_command[$i]}\n"
-             eval  ${err_command[$i]}
-          done
-          if [[ -n $interpreted_config_file ]]
-          then
-             rm -rf  $interpreted_config_file
-          fi
-          if [[ -n .mrun_environment ]]
-          then
-             rm -rf  .mrun_environment
-          fi
-          if [[ $tmpcreate = true ]]
-          then
-#              printf "\n  *** Contents of \"$TEMPDIR\":\n"
-#              ls -al; cd
-             [[ $delete_temporary_catalog = true ]]  &&  rm -rf $TEMPDIR
-          fi
-          if [[ "$dvrserver_id" != "" ]]
-          then
-             echo "+++ killing dvrserver_id=$dvrserver_id"
-             kill $dvrserver_id
-          fi
-          if [[ -f ~/job_queue/JOBINFO.$QSUB_REQID ]]
-          then
-             rm -rf  ~/job_queue/JOBINFO.$QSUB_REQID
-          fi
-          printf "\n\n+++ MRUN killed \n\n"
-       elif [[ $locat != control_c ]]
-       then
-          printf "\n\n --> all actions finished\n\n"
-          printf "     Bye, bye $usern !!\n\n"
-       fi' exit
-
-
-    # ACTIONS IN CASE OF TERMINAL-BREAK (CONTROL-C):
- trap 'rm -rf  $working_directory/tmp_mrun
-       rm -rf  $working_directory/tmp_check_namelist_files
-       [[ $tmpcreate = true ]]  &&  (cd; rm -rf $TEMPDIR)
-       if [[ -f ~/job_queue/JOBINFO.$QSUB_REQID ]]
-       then
-          rm -rf  ~/job_queue/JOBINFO.$QSUB_REQID
-       fi
-       if [[ "$dvrserver_id" != "" ]]
-       then
-          echo "+++ killing dvrserver_id=$dvrserver_id"
-          kill $dvrserver_id
-       fi
-       printf "\n+++ MRUN killed by \"^C\" \n\n"
-       locat=control_c
-       exit
-      ' 2
-
-
-    # CHECK IF THE PATH FOR THE PALM BINARIES (SCRIPTS+UTILITY-PROGRAMS) HAS
-    # BEEN SET
- if [[ "$PALM_BIN" = "" ]]
- then
-    printf "\n  +++ environment variable PALM_BIN has not been set"
-    printf "\n      please set it to the directory where the PALM scripts are located"
-    locat=palm_bin; exit
- fi
- export PATH=$PALM_BIN:$PATH
-
-
-
-    # READ SHELLSCRIPT-OPTIONS AND REBUILD THE MRUN-COMMAND STRING (MC),
-    # WHICH WILL BE USED TO START RESTART-JOBS
- while  getopts  :a:bBc:Cd:Fg:G:h:H:i:kK:m:M:n:N:o:O:p:P:q:r:R:s:St:T:u:U:vw:xX:yY:zZ option
- do
-   case  $option  in
-       (a)   afname=$OPTARG;;
-       (b)   do_batch=true; mc="$mc -b";;
-       (B)   delete_temporary_catalog=false; mc="$mc -B";;
-       (c)   config_file=$OPTARG; mc="$mc -c$OPTARG";;
-       (C)   restart_run=true; mc="$mc -C";;
-       (d)   fname=$OPTARG; mc="$mc -d$OPTARG";;
-       (F)   job_on_file="-D"; mc="$mc -F";;
-       (g)   group_number=$OPTARG; mc="$mc -g$OPTARG";;
-       (G)   global_revision=$OPTARG; mc="$mc -G'$OPTARG'";;
-       (h)   host=$OPTARG; mc="$mc -h$OPTARG";;
-       (H)   fromhost=$OPTARG; mc="$mc -H$OPTARG";;
-       (i)   input_list=$OPTARG; mc="$mc -i'$OPTARG'";;
-       (k)   keep_data_from_previous_run=true; mc="$mc -k";;
-       (K)   additional_conditions="$OPTARG"; mc="$mc -K'$OPTARG'";;
-       (m)   memory=$OPTARG; mc="$mc -m$OPTARG";;
-       (M)   makefile=$OPTARG; mc="$mc -M$OPTARG";;
-       (n)   node_usage=$OPTARG; mc="$mc -n$OPTARG";; 
-       (N)   run_vnested_model=true; vnested_dist=$OPTARG; mc="$mc -N'$OPTARG'";;
-       (o)   output_list=$OPTARG; mc="$mc -o'$OPTARG'";;
-       (O)   use_openmp=true; threads_per_task=$OPTARG; mc="$mc -O$OPTARG";;
-       (p)   package_list=$OPTARG; mc="$mc -p'$OPTARG'";;
-       (P)   return_password=$OPTARG; mc="$mc -P$OPTARG";;
-       (q)   queue=$OPTARG; mc="$mc -q$OPTARG";;
-       (r)   run_mode=$OPTARG; mc="$mc -r'$OPTARG'";;
-       (R)   remotecall=true;return_address=$OPTARG; mc="$mc -R$OPTARG";;
-       (s)   source_list=$OPTARG; mc="$mc -s'$OPTARG'";;
-       (S)   read_from_config=false; mc="$mc -S";;
-       (t)   cpumax=$OPTARG; mc="$mc -t$OPTARG";;
-       (T)   mrun_tasks_per_node=$OPTARG; mc="$mc -T$OPTARG";;
-       (u)   remote_username=$OPTARG; mc="$mc -u$OPTARG";;
-       (U)   return_username=$OPTARG; mc="$mc -U$OPTARG";;
-       (v)   silent=true; mc="$mc -v";;
-       (w)   max_par_io_str=$OPTARG; mc="$mc -w$OPTARG";;
-       (x)   do_trace=true;set -x; mc="$mc -x";;
-       (X)   numprocs=$OPTARG; mc="$mc -X$OPTARG";;
-       (y)   ocean_file_appendix=true; mc="$mc -y";;
-       (Y)   run_coupled_model=true; coupled_dist=$OPTARG; mc="$mc -Y'$OPTARG'";;
-       (z)   check_namelist_files=false; mc="$mc -z";;
-       (Z)   combine_plot_fields=false; mc="$mc -Z";;
-       (\?)  printf "\n  +++ unknown option $OPTARG \n"
-             printf "\n  --> type \"$0 ?\" for available options \n"
-             locat=parameter;exit;;
-   esac
- done
-
-
-    # SKIP GIVEN OPTIONS TO READ POSITIONAL PARAMETER, IF GIVEN
-    # CURRENTLY ONLY PARAMETER ? (TO OUTPUT A SHORT COMMAND INFO) IS ALLOWED
- (( to_shift = $OPTIND - 1 ))
- shift $to_shift
-
-    # PRINT SHORT DESCRIPTION OF MRUN OPTIONS
- if [[ "$1" = "?" ]]
- then
-   (printf "\n  *** mrun can be called as follows:\n"
-    printf "\n      $mrun_script_name  -b -c.. -d.. -f.. -F -h.. -i.. -I -K.. -m.. -o.. -p.. -r.. -R -s.. -t.. -T.. -v -x -X.. -y -Y.. -Z <modus> \n"
-    printf "\n      Description of available options:\n"
-    printf "\n      Option  Description                              Default-Value"
-    printf "\n        -a    base name of input files                 equiv. -d"
-    printf "\n        -b    batch-job on local machine               ---"
-    printf "\n        -B    do not delete temporary directory at end ---"
-    printf "\n        -c    configuration file                       .mrun.config"
-    printf "\n        -d    base name of files attached to program   test"
-    printf "\n        -F    create remote job file only              ---"
-    printf "\n        -h    execution host                           $localhost_realname"
-    printf "\n        -i    INPUT control list                       \"\" "
-    printf "\n        -k    keep data from previous run"
-    printf "\n        -K    additional conditions for controling"
-    printf "\n              usage of conditional code and"
-    printf "\n              env-variables in configuration file      \"\" "
-    printf "\n        -m    memory demand in MB (batch-jobs)         0 MB"
-    printf "\n        -M    Makefile name                            Makefile"
-    printf "\n        -n    node usage (shared/not_shared)           depending on -h"
-    printf "\n        -N    Vertical grid nesting. Number of"
-    printf "\n              PE for Coarse and Fine grid"
-    printf "\n        -o    OUTPUT control list                      \"\" "
-    printf "\n        -O    threads per openMP task                  ---"
-    printf "\n        -p    software package list                    \"\" "
-    printf "\n        -q    queue                                    \"$queue\" "
-    printf "\n        -r    run control list (combines -i -o)        \"\" "
-    printf "\n        -s    filenames of routines to be compiled     \"\" "
-    printf "\n              must end with .f, .f90, .F, or .c !"
-    printf "\n              use \"..\" for more than one file and wildcards"
-    printf "\n              -s LM compiles all locally modified files"
-    printf "\n        -S    config file interpreted by shellscript   ---"
-    printf "\n        -t    allowed cpu-time in seconds (batch)      0"
-    printf "\n        -T    tasks per node                           depending on -h"
-    printf "\n        -u    username on remote machine               \"\" "
-    printf "\n        -v    no prompt for confirmation               ---"
-    printf "\n        -w    maximum parallel io streams              as given by -X"
-    printf "\n        -x    tracing of mrun for debug purposes       ---"
-    printf "\n        -X    # of processors (on parallel machines)   1"
-    printf "\n        -y    add appendix \"_O\" to all local output"
-    printf "\n              files (ocean precursor runs followed by"
-    printf "\n              coupled atmosphere-ocean runs)           ---"
-    printf "\n        -Y    run coupled model, \"#1 #2\" with" 
-    printf "\n              #1 atmosphere and #2 ocean processors    \"#/2 #/2\" depending on -X"
-    printf "\n        -Z    skip combine_plot_fields at the end of      "
-    printf "\n              the simulation                           ---"
-    printf "\n "
-    printf "\n      Possible values of positional parameter <modus>:"
-    printf "\n        \"?\"       -  this outline \n\n") | more
-    exit
- elif [[ "$1" != "" ]]
- then
-    printf "\n  +++ positional parameter $1 unknown \n"
-    locat=parameter; exit
- fi
-
-
-
-    # SHORT STARTING MESSAGE
- printf "\n*** $version "
- printf "\n    will be executed.     Please wait ..."
-
-
-
-    # CHECK, IF CONFIGURATION FILE EXISTS
- if [[ ! -f $config_file ]]
- then
-    printf "\n\n  +++ configuration file: "
-    printf "\n           $config_file"
-    printf "\n      does not exist"
-    locat=connect; exit  
- fi
-
-
-    # DETERMINE THE HOST-IDENTIFIER (localhost) FROM THE CONFIGURATION FILE
- line=""
- grep  "%host_identifier"  $config_file  >  tmp_mrun
- while read line
- do
-    if [[ "$line" != ""  &&  $(echo $line | cut -c1) != "#" ]]
-    then
-       HOSTNAME=`echo $line | cut -d" " -s -f2`
-       host_identifier=`echo $line | cut -d" " -s -f3`
-       if [[ $localhost_realname = $HOSTNAME ]]
-       then
-          localhost=$host_identifier
-          break
-       fi
-    fi
- done < tmp_mrun
-
- if [[ "$localhost" = "" ]]
- then
-    printf "\n\n  +++ no host identifier found in configuration file \"$config_file\""
-    printf "\n      for local host \"$localhost_realname\"."
-    printf "\n      Please add line"
-    printf "\n      \"\%host_identifier $localhost_realname <identifier>\""
-    printf "\n      to the configuration file."
-    locat=localhost; exit
- fi
-
-
-    # ??? THIS SHOULD BE DECRIBED IN THE MRUN DOCUMENTATION ??? 
-    # SET BASENAME OF THE INPUT-FILES TO THE GENERAL BASENAME (GIVEN BY OPTION -d),
-    # IF IT HAS NOT BEEN SET BY THE USER DIFFERENTLY (USING OPTION -a)
- [[ "$afname" = "" ]]  &&  afname=$fname
-
-
-    # ADD RUN-FILE ACTIVATION STRINGS (GIVEN BY OPTION -r) TO THE
-    # RESPECTIVE LISTS FOR ACTIVATING THE INPUT/OUTPUT FILE CONNECTION
-    # STATEMENTS IN THE CONFIGURATION FILE
- if [[ "$run_mode" != "" ]]
- then
-    input_list="$input_list $run_mode"
-    output_list="$output_list $run_mode"
- fi
-
-
-    # ??? is this (and the respective option -H) really required ???
-    # STORE HOSTNAME, FROM WHICH THE JOB IS STARTED,
-    # BUT ONLY IF IT HASN'T BEEN ALREADY SET BY OPTION -H
-    # (MRUN IS AUTOMATICALLY SETTING THIS OPTION IN THE MRUN-CALLS WITHIN
-    # THOSE BATCH-JOBS, WHICH ARE CREATED BY MRUN ITSELF)
- if [[ "$fromhost" = "" ]]
- then
-    fromhost=$localhost
- fi
-
-
-    # CHECK, IF EXECUTION SHALL TO BE DONE ON THE REMOTE-MACHINE.
-    # VALUE OF do_remote IS IMPORTANT FOR THE FILE CONNECTIONS.
-    # IN CASE OF EXECUTION ON A REMOTE-MACHINE, A BATCH-JOB HAS
-    # TO BE SUBMITTED (I.E. do_batch=true)
- if [[ -n $host  &&  "$host" != $localhost ]]
- then
-    do_batch=true
-    do_remote=true
-    case  $host  in
-        (ibm|ibmh|ibmkisti|ibmku|ibms|lcbullhh|lccrayb|lccrayh|lccrayf|lceddy|lckyoto|lcocean|unics|lcxe6|lcxt5m|lck|lckiaps|lckordi|lckyuh|lckyut|lcsb|lcgeohu)  true;;
-        (*)  printf "\n"
-             printf "\n  +++ sorry: execution of batch jobs on remote host \"$host\""
-             printf "\n      is not available"
-             locat=nqs; (( iec = 0 )); exit;;
-    esac
- else
-    host=$localhost
- fi
-
-
-     # EVALUATE ADDITIONAL CONDITIONS GIVEN BY OPTION -K
- if [[ -n $additional_conditions ]]
- then
-    cond1=`echo $additional_conditions | cut -d" " -f1`
-    cond2=`echo $additional_conditions | cut -d" " -s -f2`
-    dummy=`echo $additional_conditions | cut -d" " -s -f3`
-    if [[ -n $dummy ]]
-    then
-       printf "\n  +++ more than 2 additional conditions given for Option \"-K\""
-       locat=options; exit
-    fi
-    block=_$cond1
-    [[ -n $cond2 ]]  &&  block=${block}_$cond2
- fi
-
-
-      # EVALUATE MODEL COUPLING FEATURES (OPTION -Y)
- if [[ $run_coupled_model = true ]] 
- then
-
-    numprocs_atmos=`echo $coupled_dist | cut -d" " -s -f1`
-    numprocs_ocean=`echo $coupled_dist | cut -d" " -s -f2`
-
-    if (( $numprocs_ocean + $numprocs_atmos != $numprocs ))
-    then
-
-       printf "\n  +++ number of processors does not fit to specification by \"-Y\"."
-       printf "\n      PEs (total)     : $numprocs"
-       printf "\n      PEs (atmosphere): $numprocs_atmos"
-       printf "\n      PEs (ocean)     : $numprocs_ocean"
-       locat=coupling; exit
-
-    fi
-
- fi
-
-      # NESTING (-N) selected and vnesting_mode specified
- if [[ $run_vnested_model = true ]] 
- then
-
-    if  [[ -n $vnested_dist ]]
-    then
-
-       numprocs_crse=`echo $vnested_dist | cut -d" " -s -f1`
-       numprocs_fine=`echo $vnested_dist | cut -d" " -s -f2`
-
-       if (( $numprocs_crse + $numprocs_fine != $numprocs ))
-       then
-
-          printf "\n  +++ number of processors does not fit to specification by \"-N\"."
-          printf "\n      PEs (total)     : $numprocs"
-          printf "\n      PEs (Coarse)    : $numprocs_crse"
-          printf "\n      PEs (Fine)      : $numprocs_fine"
-          locat=vnesting; exit
-
-       fi
-
-    else
-
-          printf "\n  +++ "Specify PE for fine and coarse grid: -N "nCGPE nFGPE \"-N\"."
-          locat=vnesting; exit
-
-    fi
-    vnested_dist=`echo "$numprocs_crse $numprocs_fine"`
- fi
-
-    # SAVE VALUES OF MRUN-OPTIONS SICHERN IN ORDER TO OVERWRITE
-    # THOSE VALUES GIVEN IN THE CONFIGURATION-FILE
- mrun_memory=$memory
- mrun_group_number=$group_number
- mrun_cpumax=$cpumax
- mrun_numprocs=$numprocs
-
-
-    # READ AND EVALUATE THE CONFIGURATION-FILE FROM WITHIN THIS SHELLSCRIPT
-    # (OPTION -S). THE DEFAULT IS USING THE ROUTINE <<<<
- if [[ "$read_from_config" = false ]]
- then
-    [[ $silent = false ]]  &&  printf "\n    Reading the configuration file... "
-
-       # READ THE CONFIGURATION FILE LINE BY LINE
-    while  read zeile
-    do
-        [[ $silent = false ]]  &&  printf "."
-
-
-          # FIRST REPLACE ENVIRONMENT-VARIABLES BY THEIR RESPECTIVE VALUES
-       eval  zeile=\"$zeile\"
-
-
-          # INTERPRET THE LINE
-       if [[ "$(echo $zeile)" = "" ]]
-       then
-             # EMPTY LINE, NO ACTION
-          continue
-
-       elif [[ "$(echo $zeile | cut -c1)"  =  "#" ]]
-       then
-
-             # LINE IS A COMMENT LINE
-          true
-
-       elif [[ "$(echo $zeile | cut -c1)"  =  "%" ]]
-       then
-
-             # LINE DEFINES AN ENVIRONMENT-VARIABLE
-          zeile=$(echo $zeile | cut -c2-)
-          var=`echo $zeile | cut -d" " -f1`
-          value=`echo $zeile | cut -d" " -s -f2`
-          for_host=`echo $zeile | cut -d" " -s -f3`
-          for_cond1=`echo $zeile | cut -d" " -s -f4`
-          for_cond2=`echo $zeile | cut -d" " -s -f5`
-
-          if [[ "$for_host" = ""  ||  ( "$for_host" = $host  &&  "$for_cond1" = "$cond1"  &&  "$for_cond2" = "$cond2" )  ||  $(echo "$input_list$output_list"|grep -c "$for_host") != 0 ]]
-          then
-
-                # REPLACE ":" BY " " IN COMPILER- CPP- OR LINKER-OPTIONS,
-                # "::" IS REPLACED BY ":".
-             value=`echo $value | sed 's/::/%DUM%/g' | sed 's/:/ /g' | sed 's/%DUM%/:/g'`
-
-
-                # VALUE FROM THE CONFIGURATION-FILE IS ASSIGNED TO THE
-                # ENVIRONMENT-VARIABLE, BUT ONLY IF NO VALUE HAS BEEN ALREADY
-                # ASSIGNED WITHIN THIS SCRIPT (E.G. BY SCRIPT-OPTIONS).
-                # NON-ASSIGNED VARIABLES HAVE VALUE "" OR 0 (IN CASE OF INTEGER).
-                # HENCE THE GENERAL RULE IS: SCRIPT-OPTION OVERWRITES THE
-                # CONFIGURATION-FILE.
-             if [[ "$(eval echo \$$var)" = ""  ||  "$(eval echo \$$var)" = "0" ]]
-             then
-                eval  $var=\$value
-
-                   # TERMINAL OUTPUT OF ENVIRONMENT-VARIABLES, IF TRACEBACK IS SWITCHED on
-                if [[ $do_trace = true ]]
-                then
-                   printf "\n*** ENVIRONMENT-VARIABLE $var = $value"
-                fi
-             fi
-
-                # IF AN ENVIRONMENT-VARIABLE DETERMINES THE HOST, THEN EVALUATE IT IMMEDIATELY:
-                # VALUE OF do-remote IS REQUIRED FOR THE FILE CONNECTIONS (COPY OF I/O FILES).
-                # IF EXECUTION IS SCHEDULED FOR A REMOTE-MASCHINE, A BATCH-JOB
-                # MUST HAVE TO BE STARTED
-             if [[ $var = host ]]
-             then
-                if [[ -n $host  &&  "$host" != $localhost ]]
-                then
-                   do_batch=true
-                   do_remote=true
-                   case  $host  in
-                       (ibm|ibmh|ibmkisti|ibmku|ibms|lcbullhh|lccrayb|lccrayh|lccrayf|lceddy|lckyoto|lcocean|unics|lcxe6|lcxt5m|lck|lckiaps|lckordi|lckyuh|lckyut|lcsb|lcgeohu)  true;;
-                       (*)  printf "\n  +++ sorry: execution of batch jobs on remote host \"$host\""
-                            printf "\n      is not available"
-                            locat=nqs; exit;;
-                   esac
-                else
-                   host=$localhost
-                fi
-             fi
-
-                # USER-DEFINED ENVIRONMENT VARIABLES MUST BE EXPORTED,
-                # BECAUSE THEY MAY BE REQUIRED IN OTHER SCRIPTS CALLED
-                # BY MRUN (E.G. subjob)
-             export  $var
-          fi
-
-
-
-
-       elif [[ "$(echo $zeile | cut -c1-3)" = "EC:" ]]
-       then
-
-             # LINE DEFINES ERROR-COMMAND
-          (( iec = iec + 1 ))
-          zeile=$(echo $zeile | cut -c4-)
-          err_command[$iec]="$zeile"
-
-       elif [[ "$(echo $zeile | cut -c1-3)" = "IC:" ]]
-       then
-
-             # LINE DEFINES INPUT-COMMAND
-          (( iic = iic + 1 ))
-          zeile=$(echo $zeile | cut -c4-)
-          in_command[$iic]="$zeile"
-
-       elif [[ "$(echo $zeile | cut -c1-3)" = "OC:" ]]
-       then
-
-             # LINE DEFINES OUTPUT-COMMAND
-          (( ioc = ioc + 1 ))
-          zeile=$(echo $zeile | cut -c4-)
-          out_command[$ioc]="$zeile"
-
-       else
-
-             # LINE DEFINES FILE CONNECTION. READ THE FILE ATTRIBUTES.
-             # s2a: in/out - field
-             # s2b: loc    - field (optional)
-             # s2c: tr/ar  - field (optional)
-          s1=`echo $zeile | cut -d" " -f1`
-          s2=`echo $zeile | cut -d" " -s -f2`
-          s2a=$(echo $s2 | cut -d":" -f1)
-          if [[ $(echo $s2 | grep -c ":") = 0 ]]
-          then
-             s2b=""
-             s2c=""
-          else
-             s2b=`echo $s2 | cut -d":" -f2 | sed 's/:/ /g'`
-             s2c=`echo $s2 | cut -d":" -s -f3 | sed 's/:/ /g'`
-          fi
-          s3=`echo $zeile | cut -d" " -f3`
-          s4=`echo $zeile | cut -d" " -s -f4`
-          s5=`echo $zeile | cut -d" " -s -f5`
-          s6=`echo $zeile | cut -d" " -s -f6`
-
-       
-             # STORE FILE CONNECTION, IF ACTIVATED BY ACTIVATION-STRING FROM
-             # INPUT- OR OUTPUT-LIST.
-             # VARIABLE S3 MAY CONTAIN A LIST OF ACTIVATION STRINGS (FIELD-SEPERATOR ":").
-             # IF EXECUTION IS SCHEDULED FOR A REMOTE-MACHINE AND THE FILE IS ONLY
-             # LOCALLY REQUIRED ON THAT MACHINE (I.E. s2b = loc), THE FILE CONNECTION
-             # IS NOT CHECKED AND STORED.
-          IFSALT="$IFS"; IFS="$IFS:"
-          if [[ "$s2a" = in  &&  ! ( $do_remote = true  &&  ( "$s2b" = loc  ||  "$s2b" = locopt ) ) ]]
-          then
-             found=false
-             for  actual  in  $input_list
-             do
-                for  formal  in  $s3
-                do
-                   [[ $actual = $formal  ||  "$formal" = "-" ]]  &&  found=true
-                done
-             done
-             if [[ $found = true ]]
-             then
-                (( iin = iin + 1 ))
-                localin[$iin]=$s1; transin[$iin]=$s2b; actionin[$iin]=$s2c;
-                typein[$iin]=$s3; pathin[$iin]=$s4; endin[$iin]=$s5;
-                extin[$iin]=$s6
-             fi
-          elif [[ "$s2a" = out  &&  ! ( $do_remote = true  &&  "$s2b" = loc ) ]]
-          then
-             found=false
-             for  actual  in  $output_list
-             do
-                for  formal  in  $s3  
-                do
-                   [[ $actual = $formal  ||  "$formal" = "-"  ]]  &&  found=true
-                done
-             done
-             if [[ $found = true ]]
-             then
-                (( iout = iout + 1 ))
-                localout[$iout]=$s1; actionout[$iout]=$s2c; typeout[$iout]=$s3;
-                pathout[$iout]=$s4; endout[$iout]=$s5; extout[$iout]=$s6
-             fi
-          elif [[ "$s2a" != in  &&  "$s2a" != out ]]
-          then
-             printf "\n  +++ I/O-attribute in configuration file $config_file has the invalid"
-             printf "\n      value \"$s2\". Only \"in\" and \"out\" are allowed!"
-             locat=connect; exit
-          fi
-          IFS="$IFSALT"
-       fi
-    done < $config_file
-
- else
-
-       # EVALUATE THE CONFIGURATION-FILE BY FORTRAN-PROGRAM
-    [[ $silent = false ]]  &&  printf "..."
-    interpreted_config_file=.icf.$RANDOM
-
-
-
-       # PROVIDE VALUES OF ENVIRONMENT-VARIABLE FOR interpret_config VIA NAMELIST-FILE
-    cat  >  .mrun_environment  <<  EOF
- &mrun_environment  cond1 = '$cond1', cond2 = '$cond2', 
-                    config_file = '$config_file', do_remote = '$do_remote',
-                    do_trace = '$do_trace', host = '$host',
-                    input_list = '$input_list', icf = '$interpreted_config_file',
-                    localhost = '$localhost', output_list = '$output_list' /
-
-EOF
-
-    if [[ "$host" != $localhost ]]
-    then
-
-          # REMOTE JOB FROM LOCAL HOST: JUST TAKE THE FIRST EXECUTABLE FOUND
-       interpret_config_executable=`ls -1 ${PALM_BIN}/interpret_config*.x 2>/dev/null`
-       if [[ $? != 0 ]]
-       then
-          printf "\n\n  +++ no interpret_config found"
-          printf "\n      run \"mbuild -u -h ...\" to generate utilities for this host"
-          locat=interpret_config; exit
-       fi
-       interpret_config_executable=`echo $interpret_config_executable | cut -d" " -f1`
-       $interpret_config_executable
-
-    else
-
-          # CHECK, IF THERE IS AN EXECUTABLE FOR THE BLOCK
-       if [[ ! -f ${PALM_BIN}/interpret_config${block}.x ]]
-       then
-          printf "\n\n  +++ no interpret_config found for given block \"$cond1 $cond2\""
-          printf "\n      run \"mbuild -u -h ...\" to generate utilities for this block"
-          locat=interpret_config; exit
-       else
-          interpret_config${block}.x
-       fi
-
-    fi
-    rm .mrun_environment
-
-
-       # EXECUTE SHELL-COMMANDS GENERATED BY interpret_config WITHIN THIS SHELL
-    chmod  u+x  $interpreted_config_file
-    export PATH=$PATH:.
-    . $interpreted_config_file
-    rm  $interpreted_config_file
-
- fi
-
-
-    # VALUES OF MRUN-OPTIONS OVERWRITE THOSE FROM THE CONFIGURATION-FILE
- [[ $mrun_memory     != 0   ]]  &&  memory=$mrun_memory
- [[ "$mrun_group_number" != "none" ]]  &&  group_number=$mrun_group_number
- [[ $mrun_cpumax     != 0   ]]  &&  cpumax=$mrun_cpumax
- [[ "$mrun_numprocs" != ""  ]]  &&  numprocs=$mrun_numprocs
- [[ "$max_par_io_str" != "" ]]  &&  maximum_parallel_io_streams=$max_par_io_str
- [[ "$mrun_tasks_per_node" != "" ]]  &&  tasks_per_node=$mrun_tasks_per_node
-
-
-    # ON THE LOCAL MACHINE, DETERMINE (FROM THE CONFIGURATION-FILE) THE PATH
-    # FOR SOURCE-FILES TO BE COMPILED. 
-    # IN A BATCH-JOB, SOURCES (ROUTINES TO BE COMPILED) ARE COMPLETE ALREADY.
-    # BEFORE MRUN IS CALLED IN THE JOB, SOURCES_COMPLETE = true IS ASSIGNED (SEE FURTHER BELOW).
- if [[ "$SOURCES_COMPLETE" = "" ]]
- then
-
-       # FIRST CHECK, IF A GLOBAL SOURCE PATH (TO BE USED FOR ALL HOSTS)
-       # HAS BEEN DEFINED
-    source_path=""
-    line=""
-    grep "%source_path" $config_file  >  tmp_mrun
-    while read line
-    do
-       if [[ "$line" != ""  &&  $(echo $line | cut -c1) != "#" ]]
-       then
-          if [[ "$(echo $line | cut -d" " -f3)" = "" ]]
-          then
-             global_source_path=`echo $line | cut -d" " -f2`
-          fi
-       fi
-    done  <  tmp_mrun
-
-    line=""
-    found=false
-    grep  " $localhost" $config_file | grep "%source_path"  >  tmp_mrun
-    while read line
-    do
-       if [[ "$line" != ""  &&  $(echo $line | cut -c1) != "#" ]]
-       then
-          if [[ $found = true ]]
-          then
-             printf "\n\n  +++ more than one source path found in configuration file"
-             printf "\n      for local host \"$localhost\" "
-             locat=source_path; exit
-          fi
-          source_path=`echo $line | cut -d" " -f2`
-          found=true
-       fi
-    done  <  tmp_mrun
-    rm  tmp_mrun
-
-    if [[ "$source_path" = "" ]]
-    then
-       if [[ "$global_source_path" != "" ]]
-       then
-          source_path=$global_source_path
-       else
-          printf "\n\n  +++ no source path found in configuration file"
-          printf "\n      for local host \"$localhost\" "
-          locat=source_path; exit
-       fi
-    fi
-    eval source_path=$source_path
-
-    if [[ ! -d $source_path ]]
-    then
-       printf "\n\n  +++ source path \"$source_path\" on local host"
-       printf "\n      \"$localhost\" does not exist"
-       locat=source_path; exit
-    fi
-
- fi
-
-
-    # GET THE GLOBAL REVISION-NUMBER OF THE SVN-REPOSITORY
-    # (HANDED OVER TO RESTART-RUNS USING OPTION -G)
- if [[ "$global_revision" = ""  &&  $host != "ibmkisti" ]]
- then
-    global_revision=`svnversion $source_path  2>/dev/null`
-    global_revision="Rev: $global_revision"
- fi
-
-
-    # ??? das darf doch eigentlich garnicht passieren, weil optionen config-datei uebersteuern ???
-    # CHECK AGAIN, IF EXECUTION SHALL BE DONE ON A REMOTE-HOST (BATCH-JOB).
-    # (HOST MAY HAVE CHANGED DUE TO SETTINGS IN THE CONFIGURATION-FILE)
- if [[ -n $host  &&  "$host" != $localhost ]]
- then
-    do_batch=true
-    do_remote=true
-    case  $host  in
-        (ibm|ibmh|ibmkisti|ibmku|ibms|lcbullhh|lccrayb|lccrayh|lccrayf|lceddy|lckyoto|lcocean|unics|lcxe6|lcxt5m|lck|lckiaps|lckordi|lckyuh|lckyut|lcsb|lcgeohu)  true;;
-        (*)  printf "\n"
-             printf "\n  +++ sorry: execution of batch jobs on remote host \"$host\""
-             printf "\n      is not available"
-             locat=nqs; (( iec = 0 )); exit;;
-    esac
- else
-    host=$localhost
- fi
-
-
-
-    # IN CASE OF PARALLEL EXECUTION, CHECK SOME SPECIFICATIONS CONCERNING PROCESSOR NUMBERS
- if [[ "$cond1" = parallel  ||  "$cond2" = parallel ]]
- then
-
-       # CHECK, IF NUMBER OF CORES TO BE USED HAS BEEN GIVEN
-    if [[ ! -n $numprocs ]]
-    then
-       printf "\n"
-       printf "\n  +++ option \"-K parallel\" requires additional specification"
-       printf "\n      of the number of processors to be used by"
-       printf "\n      mrun-option \"-X\" or by environment-variable"
-       printf "\n      \"numprocs\" in the configuration file"
-       locat=numprocs; (( iec = 0 )); exit 
-    fi
-
-       # CHECK, IF THE NUMBER OF CORES PER NODE HAS BEEN GIVEN UND IF IT IS AN
-       # INTEGRAL DIVISOR OF THE TOTAL NUMBER OF CORES GIVEN BY OPTION -X
-    if [[ "$tasks_per_node" = ""  &&  $host != lcxt5m ]]
-    then
-       printf "\n"
-       printf "\n  +++ option \"-T\" (tasks per node) is missing"
-       printf "\n      set -T option or define tasks_per_node in the config file"
-       locat=tasks_per_node; (( iec = 0 )); exit 
-    fi
-
-    if (( numprocs < tasks_per_node ))
-    then
-       printf "\n"
-       printf "\n  +++ tasks per node (-T) cannot exceed total number of processors (-X)"
-       printf "\n      given values: -T $tasks_per_node  -X $numprocs"
-       locat=tasks_per_node; (( iec = 0 )); exit 
-    fi
-
-    if [[ $host != lcxt5m ]]
-    then
-       (( nodes = numprocs / ( tasks_per_node * threads_per_task ) ))
-       (( ival = $tasks_per_node ))
-       (( pes = numprocs ))
-       (( ii = pes / ival ))
-       (( remaining_pes =  pes - ii * ival ))
-       if (( remaining_pes > 0 ))
-       then
-          printf "\n"
-          printf "\n  +++ WARNING: tasks per node (option \"-T\") is not an integral"
-          printf "\n      divisor of the total number of processors (option \"-X\")"
-          printf "\n      values of this mrun-call: \"-T $tasks_per_node\" \"-X $numprocs\""
-          printf "\n      One of the nodes is filled with $remaining_pes instead of $tasks_per_node tasks"
-          (( nodes = nodes + 1 ))
-       fi
-    fi
-
-
-       # SETTINGS FOR SUBJOB-COMMAND
-    OOPT="-O $threads_per_task"
-
-       # SET THE TOTAL NUMBER OF NODES, REQUIRED FOR THE SUBJOB-COMMAND (SEE FURTHER BELOW)
-    if [[ "$tasks_per_node" != "" ]]
-    then
-       TOPT="-T $tasks_per_node"
-    fi
-
-       # CHECK node_usage FOR ALLOWED VALUES AND SET DEFAULT VALUE, IF NECESSARY
-    if [[ $node_usage = default ]]
-    then
-       if [[ $host = ibms ]]
-       then
-          node_usage=shared
-       else
-          node_usage=not_shared
-       fi
-    fi
-
-    if [[ $node_usage != shared  &&  $node_usage != not_shared  &&  $node_usage != singlejob  &&  "$(echo $node_usage | cut -c1-3)" != "sla" ]]
-    then
-       printf "\n"
-       printf "\n  +++ node usage (option \"-n\") is only allowed to be set"
-       printf "\n      \"shared\" or \"not_shared\""
-       locat=tasks_per_node; (( iec = 0 )); exit 
-    fi
-
- fi
-
-    # CHECK IF HOSTFILE EXISTS
- if [[ -n $hostfile ]]
- then
-    if [[ ! -f $hostfile ]]
-    then
-       printf "\n"
-       printf "\n  +++ hostfile \"$hostfile\" does not exist"
-       locat=hostfile; exit
-    fi
- fi
-
-
-    # SET DEFAULT VALUE FOR THE MAXIMUM NUMBER OF PARALLEL IO STREAMS
- if [[ "$maximum_parallel_io_streams" = "" ]]
- then
-    maximum_parallel_io_streams=$numprocs
- fi
-
-
-    # SET PORT NUMBER OPTION FOR CALLS OF SSH/SCP, subjob AND batch_scp SCRIPTS
- if [[ "$scp_port" != "" ]]
- then
-    PORTOPT="-P $scp_port"
-    SSH_PORTOPT="-p $scp_port"
- fi
-
-
-    # DETERMINE THE SSH-OPTION IN CASE THAT AN SSH-KEY IS EXPLICITLY GIVEN IN THE
-    # CONFIG-FILE
- if [[ "$ssh_key" != "" ]]
- then
-    ssh_key="-i $HOME/.ssh/$ssh_key"
- fi
-
-
-    # SET DEFAULT-QUEUE, IF NOT GIVEN
- if [[ $queue = none ]]
- then
-    case  $host  in
-        (ibmh)       queue=cluster;;
-        (ibmkisti)   queue=class.32plus;;
-        (ibmmuc*)    queue=test;;
-        (lcbwuni)    queue=develop;;
-        (lcbullhh)   queue=compute;;
-        (lccrayb)    queue=mpp1q;;
-        (lccrayh)    queue=mpp1q;;
-        (lcgeohu)    queue=short;;
-        (lckiaps)    queue=normal;;
-        (lckyoto)    queue=ph;;
-        (lckyuh)     queue=fx-single;;
-        (lckyut)     queue=cx-single;;
-        (lclrz)      queue=mpp2;;
-        (lctit)      queue=S;;
-        (unics)      queue=unics;;
-    esac
- fi
-
-
-    # GENERATE FULL FILENAMES OF INPUT-FILES, INCLUDING THEIR PATH
-    # CHECK, IF INPUT-FILES EXIST, AND DETERMINE HIGHEST CYCLE NUMBER (IF CYCLES EXIST)
- (( i = 0 ))
- while (( i < iin ))
- do
-    (( i = i + 1 ))
-    (( maxcycle = 0 ))
-
-       # GENERATE PATH AND FULL FILE NAME (then-BRANCH: FIXED FULL NAME IS GIVEN, I.E. THE
-       # FILE IDENTIFIER IS NOT PART OF THE FILENAME))
-    if [[ "${actionin[$i]}" = di ]]
-    then
-       remotepathin[$i]=${pathin[$i]}/${endin[$i]}  # EVALUATE REMOTE-PATH ON THE REMOTE
-                                                    # HOST ONLY
-       eval filename=${pathin[$i]}/${endin[$i]}
-    else
-       remotepathin[$i]=${pathin[$i]}/${afname}${endin[$i]}  # EVALUATE REMOTE-PATH ON THE REMOTE
-                                                             # HOST ONLY
-       eval filename=${pathin[$i]}/${afname}${endin[$i]}
-    fi
-    eval pathname=${pathin[$i]}
-
-       # CHECK IF FILE EXISTS
-    if ! ls $filename* 1>/dev/null 2>&1
-    then
-
-          # FILES WITH ATTRIBUTE locopt ARE OPTIONAL. NO ABORT, IF THEY DO NOT EXIST.
-       if [[ "${transin[$i]}" != "locopt" ]]
-       then
-          printf "\n\n  +++ INPUT-file: "
-          if [[ "${extin[$i]}" = ""  ||  "${extin[$i]}" = " " ]]
-          then
-             printf "\n           $filename"
-          else
-             printf "\n           $filename.${extin[$i]}"
-          fi
-          printf "\n      does not exist\n"
-          locat=input; exit
-       else
-          transin[$i]="unavailable"
-       fi
-    else
-
-          # DETERMINE THE FILE'S CYCLE NUMBER
-       ls -1 -d $filename    >   filelist  2>/dev/null
-       ls -1 -d $filename.*  >>  filelist  2>/dev/null
-       while  read zeile
-       do
-              # filename without path (i.e. after the last "/")
-           basefilename=$(basename ${zeile})
-
-              # check if there is an extension
-           extension=${basefilename##*.}
-           if [[ "$extension" = "$extin[$i]" ]]
-           then
-              basefilename=${basefilename&.*}
-           fi
-
-              # check for an existing cycle number
-           cycle=${basefilename##*.}
-           if [[ $cycle =~ ^-?[0-9]+$ ]]
-           then
-              (( icycle = $cycle ))
-           else
-              (( icycle = 0 ))
-           fi
-
-           if (( icycle > maxcycle ))
-           then
-              (( maxcycle = icycle ))
-           fi
-
-#          cycle=$(echo $zeile | cut -f2 -d".")
-#          if [[ "$cycle" = "$zeile" ]]
-#          then
-#             (( icycle = 0 ))
-#          elif [[ "$cycle" = "${extin[$i]}" ]]
-#          then
-#             (( icycle = 0 ))
-#          else
-#             (( icycle = $cycle ))
-#          fi
-#          if (( icycle > maxcycle ))
-#          then
-#             (( maxcycle = icycle ))
-#          fi
-       done <filelist
-       rm filelist
-
-          # APPEND CYCLE NUMBER TO FILENAME
-       if (( maxcycle > 0 ))
-       then
-          if [[ "${extin[$i]}" != " "  &&   "${extin[$i]}" != "" ]]
-          then
-             filename=${filename}.$maxcycle.${extin[$i]}
-          else
-             filename=${filename}.$maxcycle
-          fi
-       else
-          if [[ "${extin[$i]}" != " "  &&   "${extin[$i]}" != "" ]]
-          then
-             filename=${filename}.${extin[$i]}
-          fi
-       fi
-       
-          # STORE FILENAME WITHOUT PATH BUT WITH CYCLE NUMBER,
-          # IS LATER USED FOR TRANSFERRING FILES WIHIN THE JOB (SEE END OF FILE)
-       absnamein[$i]=$filename
-       if (( maxcycle > 0 ))
-       then
-          if [[ "${actionin[$i]}" = di ]]
-          then
-             frelin[$i]=${endin[$i]}.$maxcycle
-          else
-             frelin[$i]=${afname}${endin[$i]}.$maxcycle
-          fi
-       else
-          if [[ "${actionin[$i]}" = di ]]
-          then
-             frelin[$i]=${endin[$i]}
-          else
-             frelin[$i]=${afname}${endin[$i]}
-          fi
-       fi
-
-    fi
- done
-    
-    # GENERATE FULL FILENAMES OF OUTPUT-FILES (WITHOUT $ OR ~),
-    # CHECK, IF OUTPUT-FILES EXIST, AND DETERMINE HIGHEST CYCLE NUMBER (IF CYCLES EXIST),
-    # OR, IN CASE THAT FILE DOES NOT EXIST, CHECK, IF IT CAN BE CREATED  
-    # THESE ACTIONS ARE NOT CARRIED OUT, IF FILES SHALL BE TRASFERRED FROM THE REMOTE TO
-    # THE LOCAL HOST (BECAUSE THEIR IS NO DIRECT ACCESS TO THE LOCAL DIRECTORIES FROM THE
-    # REMOTE HOST)
- (( i = 0 ))
- while (( i < iout ))
- do
-    (( i = i + 1 ))
-    if [[ ! ( $fromhost != $localhost  &&  ( "${actionout[$i]}" = tr || "${actionout[$i]}" = tra || "${actionout[$i]}" = trpe ) ) ]]
-    then
-       if [[ "${actionout[$i]}" = tr ]]
-       then
-          actionout[$i]=""
-       elif [[ "${actionout[$i]}" = trpe ]]
-       then
-          actionout[$i]=pe
-       elif [[ "${actionout[$i]}" = tra ]]
-       then
-          actionout[$i]=a
-       fi
-       (( maxcycle = 0 ))
-       eval filename=${pathout[$i]}/${fname}${endout[$i]}
-       eval catalogname=${pathout[$i]}
-       if ! ls $filename* 1>/dev/null 2>&1
-       then
-      
-             # IF OUTPUT-FILE DOES NOT EXIST CHECK, IF IT CAN BE CREATED
-          if  cat /dev/null > $filename  
-          then
-             rm  $filename
-          else
-
-                # CHECK, IF THE DIRECTORY WHERE FILE SHALL BE COPIED TO EXISTS
-                # IF IT DOES NOT EXIST, TRY TO CREATE IT
-             if [[ ! -d $catalogname ]]
-             then
-                if  mkdir -p  $catalogname
-                then
-                   printf "\n\n  *** directory:"
-                   printf "\n           $catalogname"
-                   printf "\n      was created\n"
-                else
-                   printf "\n\n  +++ OUTPUT-file:"
-                   printf "\n           $filename"
-                   printf "\n      cannot be created, because directory does not exist"
-                   printf "\n      and cannot be created either"
-                   printf "\n"
-                   locat=output  ; exit
-                fi 2>/dev/null 
-             else
-                printf "\n\n  +++ OUTPUT-file:"
-                printf "\n           $filename"
-                printf "\n      cannot be created, although directory exists"
-                printf "\n"
-                locat=output  ; exit
-             fi
-          fi 2>/dev/null
-       else
-
-             # DETERMINE THE CYCLE NUMBER
-          ls -1 -d $filename    >   filelist  2>/dev/null
-          ls -1 -d $filename.*  >>  filelist  2>/dev/null
-          while  read zeile
-          do
-
-                # filename without path (i.e. after the last "/")
-             basefilename=$(basename ${zeile})
-
-                # check if there is an extension
-             extension=${basefilename##*.}
-             if [[ "$extension" = "${extout[$i]}" ]]
-             then
-                basefilename=${basefilename%.*}
-             fi
-
-                # check for an existing cycle number
-             cycle=${basefilename##*.}
-             if [[ $cycle =~ ^-?[0-9]+$ ]]
-             then
-                (( icycle = $cycle + 1 ))
-             else
-                (( icycle = 1 ))
-             fi
-
-             if (( icycle > maxcycle ))
-             then
-                (( maxcycle = icycle ))
-             fi
-
-          done <filelist
-          rm filelist
-       fi
-
-          # APPEND CYCLE NUMBER TO FILENAME AND CHECK, IF FILE CAN BE CREATED
-          # IN CASE OF FILE-APPEND, FILE MUST BE APPENDED TO THE ONE WITH HIGHEST CYCLE NUMBER
-       if [[ "${actionout[$i]}" != a ]]
-       then
-          if (( maxcycle > 0 ))
-          then
-             filename_tmp=${filename}.$maxcycle
-             if  cat /dev/null > $filename_tmp 
-             then
-                rm  $filename_tmp
-             else
-                printf "\n  +++ OUTPUT-file:"
-                printf "\n           $filename_tmp"
-                printf "\n      cannot be created"
-                locat=output  ; exit
-             fi
-          fi
-       else
-          (( maxcycle = maxcycle - 1 ))
-       fi
-       
-       (( cycnum[$i] = maxcycle ))
-       pathout[$i]=$filename
-
-    fi
- done
-
-
-     # THE DVR-PACKAGE REQUIRES ITS OWN LIBRARY
- if [[ $(echo $package_list | grep -c dvrp_graphics) != 0 ]]
- then
-    if [[ "$dvr_inc" = "" ]]
-    then
-       printf "\n\n  +++ no value for \"dvr_inc\" given in configuration file"
-       printf "\n      This is required for the dvrp_graphics package.\n"
-       locat=dvr; exit
-    fi
-    if [[ "$dvr_lib" = "" ]]
-    then
-       printf "\n\n  +++ no value for \"dvr_lib\" given in configuration file"
-       printf "\n      This is required for the dvrp_graphics package.\n"
-       locat=dvr; exit
-    fi
- fi
-
-
-     # CHECK, WETHER A MAIN PROGRAM OR AN EXECUTABLE HAVE BEEN DECLARED.
-     # EXECUTABLES DO NOT NEED TO BE COMPILED.
- if [[ "$mainprog" = ""  &&  "$executable" = "" ]]
- then
-    printf "\n  +++ neither main program nor executable defined"
-    locat=source; exit
- elif [[ "$mainprog" != ""  &&  "$executable" != "" ]]
- then
-    printf "\n  +++ main program as well as executable defined"
-    locat=source; exit
- elif [[ "$mainprog" = ""  &&  "$executable" != "" ]]
- then
-    do_compile=false
- fi
-
-
-    # CREATE SOURCE-DIRECTORY TO COLLECT ROUTINES TO BE COMPILED.
-    # LATER THE MRUN-SCRIPT AND CONFIGURATION-FILE WILL ALSO BE COPIED TO THIS DIRECTORY.
- if [[ $restart_run != true  &&  "$SOURCES_COMPLETE" = "" ]]
- then
-    rm -rf  SOURCES_FOR_RUN_$fname
-    mkdir   SOURCES_FOR_RUN_$fname
- fi
-
-
-    # COLLECT ALL ROUTINES TO BE COMPILED
-    # THIS IS NOT REQUIRED WITHIN BATCH-JOBS, BECAUSE ROUTINES HAVE ALREADY BEEN COLLECTED
-    # BY THE MRUN-CALL WHICH CREATED THE BATCH-JOB.
- if [[ $do_compile = true  &&  "$SOURCES_COMPLETE" = "" ]]
- then
-
-    [[ "$source_list" = LM ]]  &&  source_list=LOCALLY_MODIFIED
-
-    if [[ "$source_list" = LOCALLY_MODIFIED ]]
-    then
-
-          # DETERMINE MODIFIED FILES OF THE SVN WORKING COPY
-       source_list=""
-       cd  $source_path
-
-
-          # CHECK, IF DIRECTORY IS UNDER SVN CONTROL
-       if [[ ! -d .svn ]]
-       then
-          printf "\n\n  +++ source directory"
-          printf "\n         \"$source_path\" "
-          printf "\n         is not under control of \"subversion\"."
-          printf "\n         Please do not use mrun-option \"-s LOCALLY_MODIFIED\"\n"
-       fi
-
-
-          # LIST ALL MODIFIED SOURCE CODE FILES
-       Filenames=""
-       svn status  >  tmp_mrun
-       while  read line
-       do
-          firstc=`echo $line | cut -c1`
-          if [[ $firstc = M  ||  $firstc = "?" ]]
-          then
-             Name=`echo "$line" | cut -c8-`
-             extension=`echo $Name | cut -d. -f2`
-             if [[ "$extension" = f90 || "$extension" = F90 || "$extension" = f || "$extension" = F || "$extension" = c ]]
-             then
-                Filenames="$Filenames "$Name
-             fi
-          fi
-       done < tmp_mrun
-
-
-          # COPY FILES TO SOURCES_FOR_RUN_...
-       for  dateiname  in  $Filenames
-       do
-          cp  $dateiname  $working_directory/SOURCES_FOR_RUN_$fname
-          source_list=$source_list"$dateiname "
-       done
-
-       cd -  > /dev/null
-
-
-       # COPY FILES GIVEN BY OPTION -s TO DIRECTORY SOURCES_FOR_RUN_...
-       # AUTOMATIC RESTART RUNS JUST ACCESS THE DIRECTORY CREATED BY THE INITIAL RUN
-    elif [[ "$source_list" != ""  &&  $restart_run != true ]]
-    then
-
-       cd  $source_path
-
-       for  filename  in  $source_list
-       do
-
-             # SOURCE CODE FILE IS NOT ALLOWED TO INCLUDE PATH
-          if [[ $(echo $filename | grep -c "/") != 0 ]]
-          then
-             printf "\n  +++ source code file:  $filename"
-             printf "\n      must not contain (\"/\") "
-             locat=source; exit
-          fi
-
-          if [[ ! -f $filename ]]
-          then
-             printf "\n  +++ source code file:  $filename"
-             printf "\n      does not exist"
-             locat=source; exit
-          else
-             cp  $filename  $working_directory/SOURCES_FOR_RUN_$fname
-          fi
-
-       done
-
-       cd -  > /dev/null
-
-    fi
-
-
-       # CHECK, IF A MAIN PROGRAM EXISTS AND IF IT IS PART OF THE LIST OF FILES
-       # TO BE COMPILED. IF NOT, ADD IT TO THE LIST.
-    if [[ $restart_run != true ]]
-    then
-
-       if [[ ! -f "$source_path/$mainprog" ]]
-       then
-          printf "\n\n  +++ main program:  $mainprog"
-          printf "\n      does not exist in source directory"
-          printf "\n      \"$source_path\"\n"
-          locat=source; exit
-       else
-          if [[ $(echo $source_list | grep -c $mainprog) = 0 ]]
-          then
-             cp  $source_path/$mainprog  SOURCES_FOR_RUN_$fname
-             source_list=${mainprog}" $source_list"
-          fi
-       fi
-    fi
-
-
-       # CHECK, IF MAKEFILE EXISTS AND COPY IT TO THE SOURCES_FOR_RUN... DIRECTORY
-       # NOT REQUIRED FOR RESTART RUNS, SOURCES_FOR_RUN... HAS BEEN CREATED BY THE INITIAL RUN
-    if [[ "$restart_run" != true ]]
-    then
-       [[ "$makefile" = "" ]]  &&  makefile=$source_path/Makefile
-       if [[ ! -f $makefile ]]
-       then
-          printf "\n  +++ file \"$makefile\" does not exist"
-          locat=make; exit
-       else
-          cp  $makefile  SOURCES_FOR_RUN_$fname/Makefile 
-       fi
-    fi
-
-
-       # COPY FILES FROM OPTIONAL SOURCE PATH GIVEN IN THE CONFIGURATION FILE
-    if [[ $restart_run != true  &&  "$add_source_path" != "" ]]
-    then
-
-          # DOES THE DIRECTORY EXIST?
-       if [[ ! -d $add_source_path ]]
-       then
-          printf "\n\n  *** INFORMATIVE: additional source code directory"
-          printf "\n      \"$add_source_path\" "
-          printf "\n      does not exist or is not a directory."
-          printf "\n      No source code will be used from this directory!\n"
-          add_source_path=""
-          if [[ $silent == false ]]
-          then
-             sleep 3
-          fi
-       else
-
-          cd $add_source_path
-          found=false
-
-          Names=$(ls -1 *.f90 2>&1)
-          [[ $(echo $Names | grep -c '*.f90') = 0 ]]  &&  AddFilenames="$Names"
-          Names=$(ls -1 *.F90 2>&1)
-          [[ $(echo $Names | grep -c '*.F90') = 0 ]]  &&  AddFilenames="$AddFilenames $Names"
-          Names=$(ls -1 *.F 2>&1)
-          [[ $(echo $Names | grep -c '*.F') = 0   ]]  &&  AddFilenames="$AddFilenames $Names"
-          Names=$(ls -1 *.f 2>&1)
-          [[ $(echo $Names | grep -c '*.f') = 0   ]]  &&  AddFilenames="$AddFilenames $Names"
-          Names=$(ls -1 *.c 2>&1)
-          [[ $(echo $Names | grep -c '*.c') = 0   ]]  &&  AddFilenames="$AddFilenames $Names"
-
-          cd -  > /dev/null
-          cd  SOURCES_FOR_RUN_$fname
-
-             # COPY MAKEFILE IF EXISTING
-          if [[ -f $add_source_path/Makefile ]]
-          then
-             printf "\n\n  *** user Makefile from directory"
-             printf "\n      \"$add_source_path\" is used \n"
-             if [[ $silent == false ]]
-             then
-                sleep 1
-             fi
-             cp  $add_source_path/Makefile  .
-          fi
-
-          for  dateiname  in  $AddFilenames
-          do
-             if [[ -f $dateiname ]]
-             then
-                printf "\n  +++ source code file \"$dateiname\" found in additional"
-                printf "\n      source code directory \"$add_source_path\" "
-                printf "\n      but was also given with option \"-s\" which means that it should be taken"
-                printf "\n      from directory \"$source_path\"."
-                locat=source; exit
-             fi
-
-             cp  $add_source_path/$dateiname  .
-             source_list="$source_list $dateiname"
-
-                # CHECK IF FILE IS CONTAINED IN MAKEFILE
-             if [[ $(grep -c $dateiname Makefile) = 0 ]]
-             then
-                printf "\n\n  +++ user file \"$dateiname\" "
-                printf "\n      is not listed in Makefile \n"
-                locat=source; exit
-             else
-
-                if [[ $found = false ]]
-                then
-                   found=true
-                   printf "\n\n  *** following user file(s) added to the"
-                   printf " files to be translated:\n      "
-                fi
-                printf "$dateiname  "
-                if [[ $silent == false ]]
-                then
-                   sleep 0.5
-                fi
-
-             fi
-          done
-          [[ $found = true ]]  &&  printf "\n"
-          cd -  > /dev/null
-       fi
-    fi
-
-
-       # ADD ALL ROUTINES BELONGING TO SOFTWARE PACKAGES (GIVEN BY OPTION -p)
-       # TO THE LIST OF FILES TO BE COMPILED
-    if [[ $restart_run != true  &&  -n $package_list ]]
-    then
-
-       cd  $source_path
-
-       for  package  in  $package_list
-       do
-
-          [[ $package = "dvrp_graphics+1PE" ]]  &&  package=dvrp_graphics
-
-             # DETERMINE FILES BELONGING TO THE PACKAGE
-             # ERROR MESSAGE ARE REDIRECTED TO /dev/null, BECAUSE WILDCARD (*) ALSO GIVES
-             # THE NAME OF THE DIRECTORY
-          package_source_list=`grep "defined( __$package " * 2>/dev/null | cut -f1 -d:`
-
-
-             # ADD THESE FILES TO THE LIST OF FILES TO BE COMPILED,
-             # IF THEY ARE NOT ALREADY PART OF THE LIST
-          for  source_list_name  in  $package_source_list
-          do
-             if [[ $(echo $source_list | grep -c $source_list_name) = 0 ]]
-             then
-
-                    # ONLY TAKE FILES WITH VALID SUFFIX
-                ending=`echo $source_list_name | cut -f2 -d.`
-                if [[ "$ending" = f90  ||  "$ending" = F90  ||  "$ending" = f  ||  "$ending" = F  ||  "$ending" = c ]]
-                then
-                   cp  $source_list_name  $working_directory/SOURCES_FOR_RUN_$fname
-                   source_list="$source_list $source_list_name"
-                fi
-             fi
-          done
-       done
-
-       cd -  > /dev/null
-    fi
-
- fi  # do_compile=true
-
-
-    # IF SOURCE CODE IS TO BE COMPILED, DO SOME MORE CHECKS
-    # AND SET PRE-PROCESSOR DIRECTIVES
- if [[ $do_compile = true  ||  $create_executable_for_batch = true ]]
- then
-
-       # SET PREPROCESSOR-DIRECTIVES TO SELECT OPERATING SYSTEM SPECIFIC CODE
-    if [[ $(echo $localhost | cut -c1-3) = ibm && $localhost != ibmmuc* ]]
-    then
-       cpp_options="${cpp_options},-D__ibm=__ibm"
-    elif [[ $(echo $localhost | cut -c1-3) = nec ]]
-    then
-       cpp_options="$cpp_options -D__nec"
-    elif [[ $(echo $localhost | cut -c1-2) = lc ]]
-    then
-       cpp_options="$cpp_options -D__lc"
-    else
-       cpp_options="$cpp_options -D__$localhost"
-    fi
-
-       # SET DIRECTIVES GIVEN BY OPTION -K (E.G. parallel)
-    if [[ $(echo $localhost | cut -c1-3) = ibm && $localhost != ibmmuc ]]
-    then
-       [[ -n $cond1 ]]  &&  cpp_options="${cpp_options},-D__$cond1=__$cond1"
-       [[ -n $cond2 ]]  &&  cpp_options="${cpp_options},-D__$cond2=__$cond2"
-    else
-       [[ -n $cond1 ]]  &&  cpp_options="$cpp_options -D__$cond1"
-       [[ -n $cond2 ]]  &&  cpp_options="$cpp_options -D__$cond2"
-    fi
-
-       # SET DIRECTIVES FOR ACTIVATING SOFTWARE-PACKAGES (OPTION -p)
-    if [[ -n $package_list ]]
-    then
-       for  package  in  $package_list
-       do
-          if [[ $(echo $localhost | cut -c1-3) = ibm ]]
-          then
-             if [[ $package != "dvrp_graphics+1PE" ]]
-             then
-                cpp_options="${cpp_options},-D__$package=__$package"
-             else
-                cpp_options="${cpp_options},-D__dvrp_graphics=__dvrp_graphics"
-                export use_seperate_pe_for_dvrp_output=true
-             fi
-          else
-             if [[ $package != "dvrp_graphics+1PE" ]]
-             then
-                cpp_options="$cpp_options -D__$package"
-             else
-                cpp_options="$cpp_options -D__dvrp_graphics"
-                export use_seperate_pe_for_dvrp_output=true
-             fi
-          fi
-       done
-    fi
-
- else
-
-
-       # FOR LOCAL RUNS CHECK AGAIN, IF EXECUTABLE EXISTS
-    if [[ $do_remote = false ]]
-    then
-       if [[ ! -f $executable ]]
-       then
-          printf "\n  +++ executable file:  $executable"
-          printf "\n      does not exist"
-          locat=executable; exit
-       fi
-    fi
- fi
-
-
-    # DETERMINE THE JOB MODE
- if [[ $(echo $localhost | cut -c1-3) = ibm ]]
- then
-    if [[ "$LOADLBATCH" = yes ]]
-    then
-       batch_job=.TRUE.
-       jobmo=BATCH
-    else
-       batch_job=.FALSE.
-       jobmo=INTERACTIVE
-    fi 
- else
-    if [[ "$ENVIRONMENT" = BATCH  ||  "$PJM_ENVIRONMENT" = BATCH ]]
-    then
-       batch_job=.TRUE.
-       jobmo=BATCH
-    else
-       batch_job=.FALSE.
-       jobmo=INTERACTIVE
-    fi
- fi
-
-    # NO INTERACTIVE RUNS ALLOWED ON LCTIT 
- if [[ $host = lctit  &&  $jobmo = INTERACTIVE  &&  $do_batch = false ]]
- then
-    printf "\n  +++ no interactive runs allowed on host \"$host\" "
-    printf "\n      please submit batch job using mrun option \"-b\" \n"
-    locat=normal; exit
- fi
-
-
-    # CHECK, IF USER DEFINED A COMPILER
- if [[ "$compiler_name" = "" ]]
- then
-
-    printf "\n  +++ no compiler specified for \"$host $cond1 $cond2\""
-    locat=compiler_name; exit
-
- fi
-
-
-    # DETERMINE THE NAME OF MRUN'S TEMPORARY WORKING DIRECTORY
-
-    # ON HLRN-III, USE THE QUEUING NAME. OTHERWISE USE USERNAME AND RANDOM NUMBER
- if [[ $do_batch = false && $(echo $host | cut -c1-6) = lccray ]]
- then
-    kennung=$(checkjob $PBS_JOBID | grep Reservation | cut -d" " -s -f2 | cut -d"." -s -f2 | sed "s/['\"]//g")
-    if [[ "$kennung" = "" ]]
-    then
-       kennung=$RANDOM
-    fi
- else
-    kennung=$RANDOM
- fi
-
- if [[ "$tmp_user_catalog" = "" ]]
- then
-    if [[ $localhost = ibmh ]]
-    then
-       tmp_user_catalog=$SCRATCH
-    else
-       tmp_user_catalog=/tmp
-    fi
- fi
-
-if [[ $localhost = ibmmuc* ]]
-then
-   TEMPDIR=$tmp_user_catalog/${USER}.$kennung
-else
-   TEMPDIR=$tmp_user_catalog/${usern}.$kennung
-fi
-
-    # DETERMINE THE NAME OF THE DIRECTORY WHICH IS USED TO TEMPORARILY STORE DATA FOR RESTART RUNS
- if [[ "$tmp_data_catalog" = "" ]]
- then
-    tmp_data_catalog=/tmp/mrun_restart_data
- fi
-
-
-    # IN CASE OF LOCAL RUNS REPLACE ENVIRONMENT VARIABLES BY THEIR VALUES
- if [[ $do_remote = false  &&  $do_compile = true  ||  $create_executable_for_batch = true ]]
- then
-    eval  fopts=\"$fopts\"
-    eval  lopts=\"$lopts\"
- fi
-
-
-    # DETERMINE COMPILE- AND LINK-OPTIONS
- fopts="$fopts $netcdf_inc $fftw_inc $dvr_inc"
- lopts="$lopts $netcdf_lib $fftw_lib $dvr_lib"
- XOPT="-X $numprocs"
-
-
-    # CHECK THE CPU-LIMIT. IT MUST BE GIVEN FOR BATCH-JOBS AND IS COMMUNICATED TO THE
-    # EXECUTABLE VIA NAMELIST-PARAMETER cputime
- done=false
- while [[ $done = false ]]
- do
-    cputime=$cpumax
-    if (( $cputime == 0 ))
-    then
-       if [[ $do_batch = true ]]
-       then
-          printf "\n  +++ cpu-time is undefined"
-          printf "\n  >>> Please type CPU-time in seconds as INTEGER:"
-          printf "\n  >>> "
-          read  cputime  1>/dev/null  2>&1
-       else
-          cputime=10000000   # NO CPU LIMIT FOR INTERACTIVE RUNS
-       fi
-    else
-       done=true
-    fi
-    cpumax=$cputime
- done
-
- (( minuten = cputime / 60 ))
- (( sekunden = cputime - minuten * 60 ))
-
-
-    # CHECK THE MEMORY DEMAND
- if [[ $do_batch = true ]]
- then
-    done=false
-    while [[ $done = false ]]
-    do
-       if (( memory == 0 ))
-       then
-          printf "\n  +++ memory demand is undefined"
-          printf "\n  >>> Please type memory in  MByte per process  as INTEGER:"
-          printf "\n  >>> "
-          read  memory  1>/dev/null  2>&1
-       else
-          done=true
-       fi
-    done
- fi
-
-
-    # IN CASE OF REMOTE-JOBS CHECK, IF A USERNAME FOR THE REMOTE HOST IS GIVEN
- if [[ $do_remote = true  &&  -z $remote_username ]]
- then
-    while [[ -z $remote_username ]]
-    do
-       printf "\n  +++ username on remote host \"$host\" is undefined"
-       printf "\n  >>> Please type username:"
-       printf "\n  >>> "
-       read  remote_username
-    done
-    mc="$mc -u$remote_username"
- fi
-
-    # CHECK FOR INITIAL COMMANDS AFTER LOGIN
- if [[ "$login_init_cmd" != "" ]]
- then
-    export init_cmds="${login_init_cmd};"
- fi
-
-
-    # SET THE MODULE-LOAD COMMAD AND EXPORT IT FOR subjob
- if [[ "$modules" != "" ]]
- then
-    if [[ $host = lctit ]]
-    then
-       export module_calls=". $modules"
-    else
-       export module_calls="module load ${modules};"
-    fi
- fi
-
-    # OUTPUT OF THE MRUN-HEADER
- calltime=$(date)
- printf "\n"
- printf "#------------------------------------------------------------------------# \n"
- printf "| %-35s%35s | \n" "$version" "$calltime"
- printf "|                                                                        | \n"
- spalte1="called on:"; spalte2=$localhost_realname
- printf "| %-25s%-45s | \n" "$spalte1" "$spalte2"
- if [[ $do_remote = true ]]
- then
-    spalte1="execution on:"; spalte2="$host (username: $remote_username)"
- else
-    spalte1="execution on:"; spalte2="$host ($localhost_realname)"
- fi
- printf "| %-25s%-45s | \n" "$spalte1" "$spalte2"
- if [[ -n $numprocs ]]
- then
-    if [[ $run_coupled_model = false ]]
-    then
-       spalte1="number of PEs:"; spalte2=$numprocs
-    else
-       spalte1="number of PEs:"; spalte2="$numprocs  (atmosphere: $numprocs_atmos, ocean: $numprocs_ocean)"
-    fi
-    printf "| %-25s%-45s | \n" "$spalte1" "$spalte2"
- fi
- if [[ -n $tasks_per_node ]]
- then
-    spalte1="tasks per node:"; spalte2="$tasks_per_node (number of nodes: $nodes)"
-    printf "| %-25s%-45s | \n" "$spalte1" "$spalte2"
-    if (( remaining_pes > 0 ))
-    then
-       spalte1=" "; spalte2="one of the nodes only filled with $remaining_pes tasks"
-       printf "| %-25s%-45s | \n" "$spalte1" "$spalte2"
-    fi
- fi
- if [[ $maximum_parallel_io_streams != $numprocs ]]
- then
-    spalte1="max par io streams:"; spalte2="$maximum_parallel_io_streams"
-    printf "| %-25s%-45s | \n" "$spalte1" "$spalte2"
- fi
- if [[ $use_openmp = true ]]
- then
-    spalte1="threads per task:"; spalte2="$threads_per_task"
-    printf "| %-25s%-45s | \n" "$spalte1" "$spalte2"
- fi
- printf "|                                                                        | \n"
- if [[ $do_compile = true ]]
- then
-    if [[ "$mopts" != "" ]]
-    then
-       spalte1="make options:"; spalte2=$(echo "$mopts" | cut -c-45)
-       printf "| %-25s%-45s | \n" "$spalte1" "$spalte2"
-       zeile=$(echo "$mopts" | cut -c46-)
-       while [[ "$zeile" != "" ]]
-       do
-          spalte1=""
-          spalte2=$(echo "$zeile" | cut -c-45)
-          printf "| %-25s%-45s | \n" "$spalte1" "$spalte2"
-          zeile=$(echo "$zeile" | cut -c46-)
-       done
-    fi
-
-    spalte1="cpp directives:"; spalte2=$(echo "$cpp_options" | cut -c-45)
-    printf "| %-25s%-45s | \n" "$spalte1" "$spalte2"
-    zeile=$(echo "$cpp_options" | cut -c46-)
-    while [[ "$zeile" != "" ]]
-    do
-       spalte1=""
-       spalte2=$(echo "$zeile" | cut -c-45)
-       printf "| %-25s%-45s | \n" "$spalte1" "$spalte2"
-       zeile=$(echo "$zeile" | cut -c46-)
-    done
-
-    spalte1="compiler options:"; spalte2=$(echo "$fopts" | cut -c-45)
-    printf "| %-25s%-45s | \n" "$spalte1" "$spalte2"
-    zeile=$(echo "$fopts" | cut -c46-)
-    while [[ "$zeile" != "" ]]
-    do
-       spalte1=""
-       spalte2=$(echo "$zeile" | cut -c-45)
-       printf "| %-25s%-45s | \n" "$spalte1" "$spalte2"
-       zeile=$(echo "$zeile" | cut -c46-)
-    done
-
-    spalte1="linker options:"; spalte2=$(echo "$lopts" | cut -c-45)
-    printf "| %-25s%-45s | \n" "$spalte1" "$spalte2"
-    zeile=$(echo "$lopts" | cut -c46-)
-    while [[ "$zeile" != "" ]]
-    do
-       spalte1=""
-       spalte2=$(echo "$zeile" | cut -c-45)
-       printf "| %-25s%-45s | \n" "$spalte1" "$spalte2"
-       zeile=$(echo "$zeile" | cut -c46-)
-    done
-
-    spalte1="modules to be load:"; spalte2=$(echo "$modules" | cut -c-45)
-    printf "| %-25s%-45s | \n" "$spalte1" "$spalte2"
-    zeile=$(echo "$modules" | cut -c46-)
-    while [[ "$zeile" != "" ]]
-    do
-       spalte1=""
-       spalte2=$(echo "$zeile" | cut -c-45)
-       printf "| %-25s%-45s | \n" "$spalte1" "$spalte2"
-       zeile=$(echo "$zeile" | cut -c46-)
-    done
-
-    spalte1="main program:"; spalte2=$mainprog
-    printf "| %-25s%-45s | \n" "$spalte1" "$spalte2"
- else
-    spalte1=executable:; spalte2=$executable
-    printf "| %-25s%-45s | \n" "$spalte1" "$spalte2"
- fi
- printf "|                                                                        | \n"
- spalte1="base name of files:"; spalte2=$fname
- printf "| %-25s%-45s | \n" "$spalte1" "$spalte2"
- if [[ $fname != $afname ]]
- then
-    spalte1="base name of input files:"; spalte2=$afname
-    printf "| %-25s%-45s | \n" "$spalte1" "$spalte2"
- fi
- spalte1="INPUT control list:"; spalte2=$(echo $input_list)
- printf "| %-25s%-45s | \n" "$spalte1" "$spalte2"
- spalte1="OUTPUT control list:"; spalte2=$(echo $output_list)
- printf "| %-25s%-45s | \n" "$spalte1" "$spalte2"
-
- if [[ "$ocean_file_appendix" = true ]]
- then
-    printf "| %-35s%-35s | \n" "suffix \"_O\" is added to local files" " "
- fi
-
- if [[ $do_batch = true  ||  "$LOADLBATCH" = yes ]]
- then
-    spalte1="memory demand / PE":; spalte2="$memory MB"
-    printf "| %-25s%-45s | \n" "$spalte1" "$spalte2"
-    spalte1=CPU-time:; spalte2="$minuten:$sekunden"
-    printf "| %-25s%-45s | \n" "$spalte1" "$spalte2"
- fi
-
- if [[ $do_compile = true ]]
- then
-    printf "|                                                                        | \n"
-    printf "| Files to be compiled:                                                  | \n"
-    zeile=$source_list
-    while [[ "$zeile" != "" ]]
-    do
-       linestart=$(echo $zeile | cut -c-70)
-       printf "| %-70s | \n" "$linestart"
-       zeile=$(echo "$zeile" | cut -c71-)
-    done
- fi
- printf "#------------------------------------------------------------------------#"
-
-
-
-    # OUTPUT OF FILE CONNECTIONS IN CASE OF TRACEBACK
- if [[ $do_trace = true ]]
- then
-    (( i = 0 ))
-    while (( i < iin ))
-    do
-       (( i = i + 1 ))
-       if (( i == 1 ))
-       then
-          printf "\n\n >>> INPUT-file assignments:\n"
-       fi
-       printf "\n     ${localin[$i]} :  ${absnamein[$i]}"
-    done
-    (( i = 0 ))
-    while (( i < iout ))
-    do
-       (( i = i + 1 ))
-       if (( i == 1 ))
-       then
-          printf "\n\n >>> OUTPUT-file assignments:\n"
-       fi
-       printf "\n     ${localout[$i]} :  ${pathout[$i]}"
-    done
-    (( i = 0 ))
-    while (( i < iic ))
-    do
-       (( i = i + 1 ))
-       if (( i == 1 ))
-       then
-          printf "\n\n >>> INPUT-commands:\n"
-       fi
-       printf "\n     ${in_command[$i]}" 
-    done
-    (( i = 0 ))
-    while (( i < ioc ))
-    do
-       (( i = i + 1 ))
-       if (( i == 1 ))
-       then
-          printf "\n\n >>> OUTPUT-commands:\n"
-       fi
-       printf "\n     ${out_command[$i]}" 
-    done
- fi
-
-    # QUERY FOR CONTINUE (ON LOCAL MACHINES ONLY)
- if [[ $remotecall = false  &&  $silent = false  &&  $jobmo != BATCH ]]
- then
-    antwort=dummy
-    printf "\n\n"
-    printf " >>> everything o.k. (y/n) ?  "
-    while  read antwort
-    do
-       if [[ "$antwort" != y  &&  "$antwort" != Y  &&  "$antwort" != n  &&  "$antwort" != N ]]
-       then
-          printf " >>> everything o.k. (y/n) ?  "
-       else
-          break
-       fi
-    done
-    if [[ $antwort = n  ||  $antwort = N ]]
-    then
-       locat=user_abort; (( iec = 0 )); exit
-    fi
-    if [[ $do_batch = true ]]
-    then
-       printf " >>> batch-job will be created and submitted"
-    else
-       printf " >>> MRUN will now continue to execute on this machine"
-    fi
- fi
-
- 
-    # DETERMINE PATH FOR MAKE DEPOSITORY
- if [[ $do_batch = false  ||  $create_executable_for_batch = true ]]
- then
-
-    line=""
-    grep "%depository_path" $config_file  >  tmp_mrun
-    while read line
-    do
-       if [[ "$line" != ""  &&  $(echo $line | cut -c1) != "#" ]]
-       then
-          if [[ "$(echo $line | cut -d" " -s -f3)" = "" ]]
-          then
-             global_depository_path=`echo $line | cut -d" " -s -f2`
-          fi
-       fi
-    done < tmp_mrun
-
-    line=""
-    grep  " $localhost" $config_file | grep "%depository_path"  >  tmp_mrun
-    while read line
-    do
-       if [[ "$line" != ""  &&  $(echo $line | cut -c1) != "#" ]]
-       then
-          if [[ "$(echo $line | cut -d" " -s -f4)" = "$cond1"  &&  "$(echo $line | cut -d" " -s -f5)" = "$cond2" ]]
-          then
-             local_depository_path=`echo $line | cut -d" " -s -f2`
-          fi
-       fi
-    done < tmp_mrun
-
-    if [[ "$local_depository_path" = "" ]]
-    then
-       if [[ "$global_depository_path" != "" ]]
-       then
-          local_depository_path=$global_depository_path
-       else
-          printf "\n\n  +++ no depository path found in configuration file"
-          printf "\n      for local host \"$localhost\" "
-          printf "\n      please set \"\%depository_path\" in configuration file\n"
-          locat=config_file; exit
-       fi
-    fi
-    eval local_depository_path=$local_depository_path
-    [[ "$cond1" != "" ]]  &&  local_depository_path=${local_depository_path}_$cond1
-    [[ "$cond2" != "" ]]  &&  local_depository_path=${local_depository_path}_$cond2
-
-
-    basename=`echo $mainprog | cut -f1 -d"."`
-    eval make_depository=${local_depository_path}/${basename}_current_version.tar
-    if [[ ! -f $make_depository ]]
-    then
-       printf "\n"
-       printf "\n  *** WARNING: make depository \"$make_depository\" not found"
-       printf "\n               \"make\" will fail, if the Makefile or other source files are missing\n"
-    fi
-
- fi
-
-
-    # NOW PERFORM THOSE ACTIONS REQUIRED TO EXECUTE THE PROGRAM (PALM) ON THIS MACHINE
-    # (COMPILING/LINKING, EXECUTING, COPYING I/O FILES)
- if [[ $do_batch = false ]]
- then
-
-
-       # CREATE THE TEMPORARY WORKING DIRECTORY
-    mkdir -p  $TEMPDIR
-    chmod  go+rx  $TEMPDIR
-    tmpcreate=true
-
-
-       # COPY EITHER THE COMPLETE SOURCE CODE FILES TO BE COMPILED OR THE EXECUTABLE 
-       # INTO THE TEMPORARY WORKING DIRECTORY
-    if [[ $do_compile = true ]]
-    then
-
-       TEMPDIR_COMPILE=$TEMPDIR
-
-       cp  $make_depository  $TEMPDIR_COMPILE
-       cd  $TEMPDIR_COMPILE
-       tar -xf  $make_depository  >  /dev/null  2>&1
-       cd -  > /dev/null
-
-          # DUE TO UNKNOWN REASONS, COPY WITH cp COMMAND CREATES CORRUPT
-          # FILES ON CRAY XC30 SYSTEMS (HLRN III), rsync IS USED INSTEAD
-       if [[ $(echo $host | cut -c1-6) = lccray ]]
-       then
-          rsync -av -t  SOURCES_FOR_RUN_$fname/*  $TEMPDIR_COMPILE  >  /dev/null
-       else
-          cp  SOURCES_FOR_RUN_$fname/*  $TEMPDIR_COMPILE  >  /dev/null
-       fi
-
-    else
-
-       cp  $executable   ${TEMPDIR}/a.out
-
-    fi
-
-
-       # CHANGE TO THE TEMPORARY WORKING DIRECTORY
-    cd  $TEMPDIR
-    printf "\n  *** changed to temporary directory: $TEMPDIR"
-
-
-       # IF REQUIRED, START WITH COMPILING
-    if [[ $do_compile = true ]]
-    then
-
-
-       if [[ -f a.out ]]
-       then
-
-             # EXECUTABLE WAS CREATED DURING INTERACTIVE CALL OF MRUN
-          printf "\n\n\n  *** executable a.out found"
-          printf "\n      no compilation required \n"
-
-       else
-
-             # COMPILING WITH MAKE (ON NEC COMPILER IS CALLED ON HOST CROSS)
-          printf "\n\n\n  *** compilation starts \n$dashes\n"
-          printf "  *** compilation with make using following options:\n"
-          printf "      make depository:          $make_depository"
-          if [[ "$mopts" != "" ]]
-          then
-             printf "      make options:             $mopts\n"
-          fi
-          printf "      compilername:             $compiler_name\n"
-          printf "      compiler options:         $fopts\n"
-          printf "      preprocessor directives:  $cpp_options \n"
-          printf "      linker options:           $lopts \n"
-          if [[ "$modules" != "" ]]
-          then
-             printf "      modules to be load:       $modules \n"
-          fi
-          printf "      source code files:        $source_list \n"
-
-          if [[ $localhost = ibmh ]]
-          then
-             printf "      compiler is called via ssh on \"plogin1\" \n"
-             ssh  $SSH_PORTOPT  plogin1  -l $usern  "$init_cmds export PATH=/sw/ibm/xlf/13.1.0.8/usr/bin:$PATH; $module_calls cd $TEMPDIR; make $mopts -f Makefile PROG=a.out  F90=$compiler_name  COPT=\"$cpp_options\"  F90FLAGS=\"$fopts\"  LDFLAGS=\"$lopts\" "
-             [[ ! -f a.out ]]  &&  compile_error=true
-             continue   # STATUS=1, IF a.out EXISTS
-          elif [[ $localhost = lcocean ]]
-          then 
-             printf "      compiler is called via ssh on \"ocean\" \n"
-             echo $PWD
-             ssh  $SSH_PORTOPT  ocean  -l $usern  "$init_cmds $module_calls cd $TEMPDIR; make $mopts -f Makefile PROG=a.out  F90=$compiler_name  COPT=\"$cpp_options\"  F90FLAGS=\"$fopts\"  LDFLAGS=\"$lopts\" "
-             [[ ! -f a.out ]]  &&  compile_error=true
-            continue   # STATUS=1, IF a.out EXISTS
-          elif [[ $localhost = lcbullhh  ||  $localhost = lccrayb  ||  $localhost = lccrayf ||  $localhost = lccrayh ]]
-          then
-             make $mopts -f Makefile PROG=a.out  F90=$compiler_name  COPT="$cpp_options"  F90FLAGS="$fopts"  LDFLAGS="$lopts"
-          elif [[ $localhost = lceddy ]]
-          then
-             which mpifc
-             make $mopts -f Makefile PROG=a.out  F90=$compiler_name  COPT="$cpp_options"  F90FLAGS="$fopts"  LDFLAGS="$lopts"
-          elif [[ $localhost = lcgeohu ]]
-          then 
-             printf "      compiler is called via ssh on \"cirrus\" \n"
-             ssh  $SSH_PORTOPT  cirrus.geo.hu-berlin.de -l $usern "$init_cmds $module_calls cd $TEMPDIR; make $mopts -f Makefile PROG=a.out F90=$compiler_name COPT=\"$cpp_options\" F90FLAGS=\"$fopts\" LDFLAGS=\"$lopts\" "
-#             this check did not work. Although a.out exists, it sets compile_error to true!
-#             [[ ! -f a.out ]]  &&  compile_error=true
-             continue   # STATUS=1, IF a.out EXISTS
-          else
-             [[ "$init_cmds" != "" ]]  &&  eval $init_cmds
-             [[ "$module_calls" != "" ]]  &&  eval $module_calls
-             make $mopts -f Makefile PROG=a.out  F90=$compiler_name  COPT="$cpp_options"  F90FLAGS="$fopts"  LDFLAGS="$lopts"
-          fi
-
-          if [[ $? != 0  ||  "$compile_error" = true  ||  "$module_compile_error" = true ]]
-          then
-             printf "\n  +++ error occured while compiling or linking"
-             locat=compile
-
-             exit
-          else
-             printf "$dashes\n  *** compilation finished \n"
-          fi
-
-       fi
-
-    fi
-
-
-       # PROVIDE THE INPUT FILES
-       # LOOP OVER ALL ACTIVATED FILES (LISTED IN THE CONFIGURATION FILE)
-    (( i = 0 ))
-    while (( i < iin ))
-    do
-       (( i = i + 1 ))
-       if (( i == 1 ))
-       then
-          printf "\n\n  *** providing INPUT-files:\n$dashes"
-       fi
-
-
-          # SKIP OPTIONAL FILES, IF THEY DO NOT EXIST
-       if [[ "${transin[$i]}" = unavailable ]]
-       then
-          if [[ "${extin[$i]}" = ""  ||  "${extin[$i]}" = " " ]]
-          then
-             printf "\n  *** INFORMATIVE: input file \"${pathin[$i]}/${afname}${endin[$i]}\" "
-             printf "\n                   is not available!"
-          else
-             printf "\n  *** INFORMATIVE: input file \"${pathin[$i]}/${afname}${endin[$i]}.${extin[$i]}\" "
-             printf "\n                   is not available!"
-          fi
-          continue
-       fi
-
-          # CHECK FOR SINGLE FILE (SERIAL RUN) OR DIRECTORY (ONE FILE PER CORE FOR PARELLEL EXECUTION)
-       files_for_pes=false; datentyp=file
-       if [[ "${actionin[$i]}" = pe  &&  -n $numprocs ]]
-       then
-          files_for_pes=true; datentyp=files
-          actionin[$i]=""
-       elif [[ "${actionin[$i]}" = pe  &&  ! -n $numprocs ]]
-       then
-          actionin[$i]=""
-       elif [[ "${actionin[$i]}" = lnpe  &&  -n $numprocs ]]
-       then
-          files_for_pes=true; datentyp=files
-          actionin[$i]="ln"
-       elif [[ "${actionin[$i]}" = lnpe  &&  ! -n $numprocs ]]
-       then
-          actionin[$i]="ln"
-       fi
-
-       if [[ $files_for_pes = true ]]
-       then
-          printf "\n  >>> INPUT: ${absnamein[$i]}/....  to  ${localin[$i]}"
-       else
-          printf "\n  >>> INPUT: ${absnamein[$i]}  to  ${localin[$i]}"
-       fi
-
-          # INPUT-FILES TO BE LINKED
-       if [[ "${actionin[$i]}" = ln ]]
-       then
-
-          printf "\n      $datentyp will be linked"
-          if [[ $files_for_pes = false ]]
-          then
-             if [[ -f "${absnamein[$i]}" ]]
-             then
-                ln  ${absnamein[$i]}  ${localin[$i]}
-                got_tmp[$i]=true
-             fi
-          else
-             if [[ -d "${absnamein[$i]}" ]]
-             then
-                mkdir  ${localin[$i]}
-                cd ${absnamein[$i]}
-                for file in $(ls *)
-                do
-                   ln $file $TEMPDIR/${localin[$i]}
-                done >|/dev/null 2>&1
-                cd $TEMPDIR
-             fi
-
-                # IF "ln -f" HAS FAILED DO A NORMAL COPY "cp -r"
-             if [[ ! -f "${localin[$i]}/_000000" ]]
-             then
-                printf "\n  --- WARNING: ln failed, using cp instead (might be time consuming...)"
-                cp -r  ${absnamein[$i]}/*  ${localin[$i]}
-             fi
-
-             got_tmp[$i]=true
-          fi
-       fi
-
-          # FILE IS STORED IN THE RESPECTIVE DIRECTORY GIVEN IN THE CONFIGURATION FILE
-       if [[ "${actionin[$i]}" = ""  ||  "${actionin[$i]}" = "di"  ||  "${actionin[$i]}" = "npe" ]]
-       then
-
-          if [[ "${actionin[$i]}" = "npe"  &&  -n $numprocs ]]
-          then
-
-                # FILE COPIES ARE PROVIDED FOR ALL CORES
-                # EACH FILE GETS A UNIQUE FILENAME WITH A FOUR DIGIT NUMBER
-             printf "\n      file will be provided for $numprocs processors"
-             mkdir  ${localin[$i]}
-             ival=$numprocs
-             (( ii = 0 ))
-             while (( ii <= ival-1 ))
-             do
-                if (( ii < 10 ))
-                then
-                   cp  ${absnamein[$i]}  ${localin[$i]}/_000$ii
-                elif (( ii < 100 ))
-                then
-                   cp  ${absnamein[$i]}  ${localin[$i]}/_00$ii
-                elif (( ii < 1000 ))
-                then
-                   cp  ${absnamein[$i]}  ${localin[$i]}/_0$ii
-                else
-                   cp  ${absnamein[$i]}  ${localin[$i]}/_$ii
-                fi
-                (( ii = ii + 1 ))
-             done
-
-          else
-
-             if [[ $files_for_pes = true ]]
-             then
-
-                   # PROVIDE FILES FOR EACH CORE
-                   # FIRST CREATE THE LOCAL DIRECTORY, THEN COPY FILES
-                   # FROM THE PERMANENT DIRECTORY BY LINKING THEM TO THE LOCAL ONE
-                printf "\n      providing $numprocs files for the respective processors"
-                mkdir  ${localin[$i]}
-	              	if [[ $link_local_input = true ]]
-		              then
-		                 printf "      files will be linked\n"
-		                 cd ${absnamein[$i]}
-		                 for file in $(ls *)
-		                 do
-		                    ln -f $file  ${localin[$i]}
-		                 done
-		                 cd $TEMPDIR
-		              fi
-
-                   # IF "ln -f" FAILED OR IF "$link_local_input = false" DO A NORMAL "cp -r"
-		              if [[ ! -f "${localin[$i]}/_000000" ]]
-		              then
-		                 if [[ $link_local_input = true ]]
-		                	then
-	                   		printf "\n  --- WARNING: ln failed, using cp instead (might be time consuming...)"
-		                 fi
-		                 cp -r  ${absnamein[$i]}/*  ${localin[$i]}
-		              fi
-
-             else
-
-                   # PROVIDE FILE FOR RUNS ON A SINGLE CORE
-              		if [[ $link_local_input = true ]]
-	              	then
-		                 printf "      file will be linked\n"
-		                 ln -f  ${absnamein[$i]}  ${localin[$i]}
-	              	fi
-	                 	# If "ln -f" fails of if "$link_local_input = false" do a normal "cp"
-	              	if [[ ! -f "${localin[$i]}" ]]
-                then
-		                 if [[ $link_local_input = true ]]
-	                  then
-                      printf "\n  --- WARNING: ln failed, using cp instead (might be time consuming...)"
-		                 fi
-		                 cp  ${absnamein[$i]}  ${localin[$i]}
-                fi
-             fi
-          fi
-       fi
-
-    done
-    if (( i != 0 ))
-    then
-       printf "\n$dashes\n  *** all INPUT-files provided \n"
-    fi
-
-
-       # EXECUTE INPUT-COMMANDS GIVEN IN THE CONFIGURATION FILE
-    (( i = 0 ))
-    while (( i < iic ))
-    do
-       (( i = i + 1 ))
-       if (( i == 1 ))
-       then
-          printf "\n\n  *** execution of INPUT-commands:\n$dashes"
-       fi
-       printf "\n  >>> ${in_command[$i]}"
-       eval  ${in_command[$i]}
-       if (( i == iic ))
-       then
-          printf "\n$dashes\n"
-       fi
-    done
-
-
-       # SET THE REMAINING CPU-TIME
-    cpurest=${cpumax}.
-
-
-       # START DVR STREAMING SERVER
-    if [[ $(echo $package_list | grep -c dvrp_graphics) != 0 ]]
-    then
-       if [[ "$dvr_server" != "" ]]
-       then
-
-          printf "\n\n  *** preparing the dvr streaming server configuration file"
-
-             # CHECK, IF A DVR SERVER IS ALREADY RUNNING
-          running_dvrserver_id=`echo $(ps -edaf | grep .dvrserver.config | grep -v grep) | cut -d" " -f2`
-          if [[ "$running_dvrserver_id" != "" ]]
-          then
-
-             printf "\n\n  +++ WARNING: A dvr server with id=$running_dvrserver_id is already running!"
-             printf "\n      This server is used instead starting a new one!"
-             printf "\n      If required, script \"process_dvr_output\" has to be run manually."
-
-          else
-
-                # COPY CONFIGURATION FILE FOR STREAMING SERVER FROM REPOSITORY TO HERE
-             if [[ -f ${PALM_BIN}/.dvrserver.config ]]
-             then
-                cp  ${PALM_BIN}/.dvrserver.config  .
-
-                   # ENTERING THE BASEDIR, UID AND GID INTO THIS FILE
-                user_id=`id -u`
-                group_id=`id -g`
-
-                   # "&" IS REQUIRED AS A SEPERATOR, BECAUSE TEMPDIR CONTAINS "/"
-                sed "s&<replace by dvr data directory>&${TEMPDIR}&g" .dvrserver.config > .dvrserver.1
-                sed "s/<replace by user id>/$user_id/g"    .dvrserver.1 > .dvrserver.2
-                sed "s/<replace by group id>/$group_id/g"  .dvrserver.2 > .dvrserver.3
-                mv  .dvrserver.3  .dvrserver.config
-                rm  .dvrserver.1  .dvrserver.2
-
-                   # START DVR SERVER IN BACKGROUND, GET HIS ID AND PRINT ON TERMINAL
-                $dvr_server  .dvrserver.config  >>  DVR_LOGFILE  2>&1  &
-                dvrserver_id=`echo $(ps -edaf | grep .dvrserver.config) | cut -d" " -f2`
-                printf "\n  *** streaming server with id=$dvrserver_id is started in background"
-                local_dvrserver_running=.TRUE.
-             else
-                printf "\n  +++ missing file \".dvrserver.config\" in directory:"
-                printf "\n      \"$PALM_BIN\" "
-                locat=dvr
-                exit
-             fi
-
-          fi
-
-       else
-          printf "\n\n  --- INFORMATIVE: no dvr streaming server will be started"
-       fi
-    fi
-
-
-       # CREATE THE NAMELIST-FILE WITH VALUES OF ENVIRONMENT-VARIABLES REQUIRED BY PALM
-       # (FILE ENVPAR WILL BE READ BY PALM)
-    cat  >  ENVPAR  <<  EOF
- &envpar  run_identifier = '$fname', host = '$localhost',
-          write_binary = .${write_binary}., tasks_per_node = $tasks_per_node,
-          maximum_parallel_io_streams = $maximum_parallel_io_streams,
-          maximum_cpu_time_allowed = ${cpumax}.,
-          revision = '$global_revision',
-          local_dvrserver_running = $local_dvrserver_running,
-          batch_job = $batch_job /
-
-EOF
-
-
-       # STARTING THE EXECUTABLE
-    printf "\n\n  *** execution starts in directory\n      \"`pwd`\"\n$dashes\n"
-    PATH=$PATH:$TEMPDIR
-
-
-    if [[ $execute_command != "none" ]]
-    then
-
-        printf "\n  +++ branch still not realized"
-        locat=execution
-        exit
-
-    else
-
-          # MPI DEBUG OPTION (ARGUMENT CHECKING, SLOWS DOWN EXECUTION DUE TO INCREASED LATENCY)
-       if [[ "$mpi_debug" = true ]]
-       then
-          export MPI_CHECK_ARGS=1
-          printf "\n  +++ MPI_CHECK_ARGS=$MPI_CHECK_ARGS"
-       fi
-
-       if [[ "$totalview" = true ]]
-       then
-          printf "\n *** totalview debugger will be used"
-          tv_opt="-tv"
-       else
-          tv_opt=""
-       fi
-
-       if [[ "$cond1" = debug  ||  "$cond2" = debug ]]
-       then
-
-             #Interactive ALLINEA DEBUG seesion
-          if [[ "$ENVIRONMENT" != BATCH ]]
-          then
-             if [[ $host = lccrayb || $host = lccrayh ]]
-             then
-                if [[ "$allinea" = true ]]
-                then
-                   echo "--- aprun  -n $ii  -N $tasks_per_node  a.out  < runfile_atmos"
-
-                   ddt  aprun  -n $ii  -N $tasks_per_node  a.out
-                   wait
-                fi         
-             fi
-          fi
-
-          if [[ $localhost = ibmh ]]
-          then
-
-                # SETUP THE IBM MPI ENVIRONMENT
-             export MP_SHARED_MEMORY=yes
-             export AIXTHREADS_SCOPE=S
-             export OMP_NUM_THREADS=$threads_per_task
-             export AUTHSTATE=files
-             export XLFRTEOPTS="nlwidth=132:err_recovery=no"    # RECORD-LENGTH OF NAMELIST-OUTPUT
-
-                # FOLLOWING OPTIONS ARE MANDATORY FOR TOTALVIEW
-             export MP_ADAPTER_USE=shared
-             export MP_CPU_USE=multiple
-             export MP_TIMEOUT=1200
-
-             unset  MP_TASK_AFFINITY
-
-             if [[ "$LOADLBATCH" = yes ]]
-             then
-                totalview   poe  a.out
-             else
-                echo totalview   poe  -a a.out  -procs $numprocs  -rmpool 0  -nodes 1
-                export TVDSVRLAUNCHCMD=ssh
-                totalview   poe  -a a.out  -procs $numprocs  -rmpool 0  -nodes 1
-             fi
-
-          fi  # END DEBUG MODE
-
-       else
-
-             # NORMAL EXECUTION
-          if [[ -n $numprocs ]]
-          then
-
-                # RUNNING THE PROGRAM ON PARALLEL MACHINES
-             if [[ $(echo $host | cut -c1-3) = ibm ]]
-             then
-
-                   # SETUP THE IBM MPI ENVIRONMENT
-                if [[ $host != ibmh  &&  $host != ibmkisti ]]
-                then
-                   export MP_SHARED_MEMORY=yes
-                   export AIXTHREAD_SCOPE=S
-                   export OMP_NUM_THREADS=$threads_per_task
-                   export XLSMPOPTS="spins=0:yields=0:stack=20000000"
-                   export AUTHSTATE=files
-                   export XLFRTEOPTS="nlwidth=132:err_recovery=no"    # RECORD-LENGTH OF NAMELIST-OUTPUT
-                   #  export MP_PRINTENV=yes
-
-                      # TUNING-VARIABLES TO IMPROVE COMMUNICATION SPEED
-                      # DO NOT SHOW SIGNIFICANT EFFECTS (SEP 04, FEDERATION-SWITCH)
-                   export MP_WAIT_MODE=poll
-                   [[ $node_usage = not_shared ]]  &&  export MP_SINGLE_THREAD=yes
-                fi
-
-                if [[ $host = ibmkisti ]]
-                then
-                   export LANG=en_US
-                   export MP_SHARED_MEMORY=yes
-                   if [[ $threads_per_task = 1 ]]
-                   then
-                      export MP_SINGLE_THREAD=yes
-                      export MEMORY_AFFINITY=MCM
-                   else
-                      export OMP_NUM_THREADS=$threads_per_task
-                   fi
-                fi
-
-                if [[ "$LOADLBATCH" = yes ]]
-                then
-                   printf "\n--- Control: OMP_NUM_THREADS = \"$OMP_NUM_THREADS\" \n"
-                   if [[ "$cond1" = hpmcount  ||  "$cond2" = hpmcount ]]
-                   then
-                      /opt/optibm/HPM_2_4_1/bin/hpmcount  a.out
-                   elif [[  $localhost = ibmmuc* ]]
-                   then
-                      ulimit -c unlimited        # only for debgingg
-                      echo $MP_NODES        > ~/job_queue/hostfile.$kennung
-                      echo $MP_PROCS       >> ~/job_queue/hostfile.$kennung
-                      cat $LOADL_HOSTFILE  >> ~/job_queue/hostfile.$kennung
-                      export MP_NODES=$nodes
-                      export MP_PROCS=$numprocs
-                      # export MPI_SINGLE_THREAD=no   # LRZ NetCDF
-                      # export MP_TASKS_PER_NODE=$tasks_per_node
-                      echo "Resource Info: " 
-                      echo "numprocs:         " $numprocs " MP_PROCS " $MP_PROCS
-                      echo "nodes:            " $nodes    " MP_NODES " $MP_NODES
-                      echo "tasks_per_node:   " $tasks_per_node
-                      echo "threads_per_task: " $threads_per_task
-                      export OMP_NUM_THREADS=1
-                      source /lrz/sys/share/modules/init/bash
-                      module li
-                      echo "runfile_atmos"
-                      
-                      if [[ $run_vnested_model = true ]]
-                      then
-                         
-                         printf "\n      Nested run ($numprocs_crse Coarse, $numprocs_fine Fine)"
-                         printf "\n      using $nested_mode nesting"
-                         printf "\n\n"
-                         
-                         echo "$vnested_mode $numprocs_crse $numprocs_fine"  >  runfile_atmos
-                         
-                         poe   ./a.out  <  runfile_atmos
-                         # mpiexec -n $numprocs  ./a.out  <  runfile_atmos
-                      else
-                         echo "precursor_atmos"  >  runfile_atmos
-                         poe   ./a.out -proc $numprocs -nodes  $nodes <  runfile_atmos  
-                         # mpiexec -n $numprocs  ./a.out  <  runfile_atmos  
-                      
-                      fi
-                   else
-                      if [[ $run_coupled_model = false ]]
-                      then
-                         if [[ "$ocean_file_appendix" = true ]]
-                         then
-                            echo "precursor_ocean"  >  runfile_atmos
-                         else
-                            echo "precursor_atmos"  >  runfile_atmos
-                         fi
-                      else
-                         (( iia = $numprocs_atmos / $threads_per_task ))
-                         (( iio = $numprocs_ocean / $threads_per_task ))
-                         printf "\n      coupled run ($iia atmosphere, $iio ocean)"
-                         printf "\n\n"
-                         echo "coupled_run $iia $iio"  >  runfile_atmos
-                      fi
-                      poe ./a.out  <  runfile_atmos
-                   fi
-                else
-                   if [[ $localhost = ibmh  ||  $localhost = ibms ]]
-                   then
-                      poe  a.out  -procs $numprocs  -nodes 1  -rmpool 0
-                   elif [[ $localhost = ibmkisti  ||  $localhost = ibmku ]]
-                   then
-                      if [[ -f $hostfile ]]
-                      then
-                         cp  $hostfile  hostfile
-                      else
-                         (( ii = 1 ))
-                         while (( ii <= $numprocs ))
-                         do
-                            echo  $localhost_realname  >>  hostfile
-                            (( ii = ii + 1 ))
-                         done
-                      fi
-                      export MP_HOSTFILE=hostfile
-                      if [[ $run_coupled_model = false ]]
-                      then
-                         if [[ "$ocean_file_appendix" = true ]]
-                         then
-                            echo "precursor_ocean"  >  runfile_atmos
-                         else
-                            echo "precursor_atmos"  >  runfile_atmos
-                         fi
-                      else
-                         (( iia = $numprocs_atmos / $threads_per_task ))
-                         (( iio = $numprocs_ocean / $threads_per_task ))
-                         printf "\n      coupled run ($iia atmosphere, $iio ocean)"
-                         printf "\n\n"
-                         echo "coupled_run $iia $iio"  >  runfile_atmos
-                      fi
-
-                      poe  ./a.out  -procs $numprocs  <  runfile_atmos 
-
-                   else
-                      if [[ "$host_file" = "" ]]
-                      then
-                         printf "\n  +++ no hostfile given in configuration file"
-                         locat=config_file
-                         exit
-                      else
-                         eval host_file=$host_file
-                      fi
-                      export MP_HOSTFILE=$host_file
-                      poe  a.out  -procs $numprocs  -tasks_per_node $numprocs
-                   fi
-                fi
-
-             elif [[ $(echo $host | cut -c1-2) = lc  &&  $host != lckyoto &&  $host != lctit ]]
-             then
-
-                   # COPY HOSTFILE FROM SOURCE DIRECTORY OR CREATE IT, IF IT
-                   # DOES NOT EXIST
-                if [[  $host != lcbullhh  && $host != lccrayb  &&  $host != lccrayf  && $host != lccrayh  &&  $host != lckyuh  &&  $host != lckyut  &&  $host != lcocean &&  $host != lceddy ]]
-                then
-                   if [[ -f $hostfile ]]
-                   then
-                      cp  $hostfile  hostfile
-                      (( ii = $numprocs / $threads_per_task ))
-                      [[ $ii = 0 ]]  &&  (( ii = 1 ))
-                   else
-                      (( ii = 1 ))
-                      while (( ii <= $numprocs / $threads_per_task ))
-                      do
-                         echo  $localhost_realname  >>  hostfile
-                         (( ii = ii + 1 ))
-                      done
-                      if (( $numprocs / $threads_per_task == 0 ))
-                      then
-                         echo  $localhost_realname  >>  hostfile
-                      fi
-                   fi
-                   eval zeile=\"`head -n $ii  hostfile`\"
-                   printf "\n  *** running on: $zeile"
-                fi
-
-                (( ii = $numprocs / $threads_per_task ))
-                [[ $ii = 0 ]]  &&  (( ii = 1 ))
-                export OMP_NUM_THREADS=$threads_per_task
-
-                if [[ $threads_per_task != 1 ]]
-                then
-                      # INCREASE STACK SIZE TO UNLIMITED, BECAUSE OTHERWISE LARGE RUNS
-                      # MAY ABORT
-                   ulimit -s unlimited
-                   printf "\n      threads per task: $threads_per_task  stacksize: unlimited"
-                fi
-                if [[ $run_coupled_model = false && $run_vnested_model = false ]]
-                then
-                   if [[ "$ocean_file_appendix" = true ]]
-                   then
-                      echo "precursor_ocean"  >  runfile_atmos
-                   else
-                      echo "precursor_atmos"  >  runfile_atmos
-                   fi
-                   printf "\n\n"
-
-                   if [[ $host = lccrayb || $host = lccrayh ]]
-                   then
-                       echo "--- aprun  -n $ii  -N $tasks_per_node  a.out  <  runfile_atmos"
-                       aprun  -n $ii  -N $tasks_per_node  a.out  <  runfile_atmos
-                   elif [[ $host = lcbullhh ]]
-                   then
-                      export OMPI_MCA_pml=cm
-                      export OMPI_MCA_mtl=mxm
-                      export OMPI_MCA_coll=^ghc
-                      export OMPI_MCA_mtl_mxm_np=0
-                      export MXM_RDMA_PORTS=mlx5_0:1
-                      export MXM_LOG_LEVEL=ERROR 
-                      export OMP_NUM_THREADS=$threads_per_task
-                      export KMP_AFFINITY=verbose,granularity=core,compact,1
-                      export KMP_STACKSIZE=64m
-
-                      srun  -n $ii --ntasks-per-node=$tasks_per_node ./a.out  <  runfile_atmos
-
-                   elif [[ $host = lccrayf ]]
-                   then
-                       aprun  -j1  -n $ii  -N $tasks_per_node  -m ${memory}M  a.out  <  runfile_atmos
-                   elif [[ $host = lcxe6  ||  $host = lcxt5m ]]
-                   then
-                    aprun  -n $ii  -N $tasks_per_node  a.out  <  runfile_atmos
-                   elif [[ $host = lceddy ]]
-                   then
-                      echo $ii
-                      echo $tasks_per_node
-                      echo $nodes
-                      mpirun -n $ii a.out  <  runfile_atmos
-                   elif [[ $host = lcgeohu ]]
-                   then
-                       srun -n $ii a.out  <  runfile_atmos
-                   elif [[ $host = lcocean ]]
-                   then
-                      mpirun a.out  $ROPTS  < runfile_atmos
-                   elif [[ $host = lcsb ]]
-                   then
-                      mpirun_rsh -hostfile $PBS_NODEFILE -np `cat $PBS_NODEFILE | wc -l` a.out  < runfile_atmos
-                   elif [[ $host = lclrz || $host = lcbwuni  ]]
-                   then
-                      mpiexec  -n $ii  a.out  <  runfile_atmos  $ROPTeS
-                   elif [[ $host = lckea* ]]
-                   then
-                      srun  -n $ii  a.out  <  runfile_atmos  $ROPTeS
-                   elif [[ $host = lckiaps ]]
-                   then
-                      mpirun -np $ii  -machinefile $PBS_NODEFILE  ./a.out  <  runfile_atmos
-                   elif [[ $host = lckyu* ]]
-                   then
-                      mpiexec -n $ii --stdin runfile_atmos  ./a.out
-                   else
-                      mpiexec  -machinefile hostfile  -n $ii  a.out  <  runfile_atmos
-                   fi
-
-                elif [[ $run_coupled_model = true ]]
-                then
-                       # COUPLED RUN
-                   (( iia = $numprocs_atmos / $threads_per_task ))
-                   (( iio = $numprocs_ocean / $threads_per_task ))
-                   printf "\n      coupled run ($iia atmosphere, $iio ocean)"
-                   printf "\n\n"
-
-                   echo "coupled_run $iia $iio"  >  runfile_atmos
-
-                   if [[ $host = lccrayf  ||  $host = lcxe6  ||  $host = lcxt5m ]]
-                   then
-
-                      aprun  -n $ii  -N $tasks_per_node  a.out < runfile_atmos
-
-                   elif [[ $host = lck || $host = lckordi ]]
-                   then
-
-                      mpiexec -n $ii  ./a.out  <  runfile_atmos  &
-
-                   elif [[ $host = lckyu* ]]
-                   then
-
-                      mpiexec -n $ii --stdin runfile_atmos  ./a.out
-
-                   elif [[ $host = lcmuk ]] 
-                   then
-
-                      mpiexec  -machinefile hostfile  -n $ii  a.out  <  runfile_atmos
-
-                   fi
-                   wait
-
-
-                elif [[ $run_vnested_model = true ]]
-                then
-                    printf "\n      Vertical Nested run ($numprocs_crse Coarse, $numprocs_fine Fine)"
-                    printf "\n      using $vnested_mode vnesting"
-                    printf "\n\n"
-
-                     echo "$vnested_mode $numprocs_crse $numprocs_fine"  >  runfile_atmos
-
-                     if [[  $host = lcbwuni  ||  $host = lclrz*  ]]
-                     then
-                         mpiexec  -n $ii  a.out  <  runfile_atmos  $ROPTeS
-                     elif [[ $host = lckea*  ]]
-                     then
-                         srun  -n $ii  a.out  <  runfile_atmos  $ROPTeS 
-                     else
-                        mpirun   -np $numprocs  ./a.out  $ROPTS  < runfile_atmos
-                     fi
-                     wait
-                fi
-
-             elif [[ $host = lckyoto ]]
-             then
-                set -xv
-                export P4_RSHCOMMAND=plesh
-                echo "     P4_RSHCOMMAND = $P4_RSHCOMMAND"
-                if [[ "$ENVIRONMENT" = BATCH ]]
-                then
-                   if [[ "$cond2" = fujitsu ]]
-                   then
-                      mpiexec  -n $numprocs  ./a.out  # for fujitsu-compiler
-                   elif [[ "cond2" = pgi ]]
-                   then
-                      mpirun  -np $numprocs  -machinefile ${QSUB_NODEINF}  ./a.out
-                   else
-                      mpirun_rsh -np $numprocs -hostfile ${QSUB_NODEINF} MV2_USE_SRQ=0 ./a.out  ||  /bin/true
-                   fi
-                else
-                   if [[ "$cond2" = "" ]]
-                   then
-                      mpiruni_rsh -np $numprocs ./a.out  # for intel
-                   else
-                      mpirun  -np $numprocs  ./a.out
-                   fi
-                fi
-                set +xv
-
-             elif [[ $host = lctit ]]
-             then
-                export OMP_NUM_THREADS=$threads_per_task
-                echo "OMP_NUM_THREADS=$OMP_NUM_THREADS"
-                if [[ "$threads_per_task" != 1 ]]
-                then
-                   export MV2_ENABLE_AFFINITY=0
-                fi
-                echo "----- PBS_NODEFILE content:"
-                cat $PBS_NODEFILE
-                echo "-----"
-                (( ii = $numprocs / $threads_per_task ))
-                echo "mpirun  -np $ii  -hostfile $PBS_NODEFILE ./a.out"
-                mpirun  -np $ii  -hostfile $PBS_NODEFILE  ./a.out
-
-             else
-                mpprun  -n $numprocs  a.out
-             fi
-          else
-             a.out
-          fi
-
-       fi  # end normal (non-debug) execution
-
-    fi  # end explicit execute_command or host-specific execute actions
-
-    if [[ $? != 0 ]]
-    then
-
-          # ABORT IN CASE OF RUNTIME ERRORS
-       printf "\n  +++ runtime error occured"
-       locat=execution
-       exit
-
-    else
-
-       printf "\n$dashes\n  *** execution finished \n"
-
-          # STOP THE DVR STREAMING SERVER AND PROCESS THE DVR OUTPUT IN ORDER
-          # TO CREAT DVRS- AND HTML-FILES CONTAINING ALL STREAMS
-       if [[ "$dvrserver_id" != "" ]]
-       then
-          kill $dvrserver_id
-          printf "\n  *** dvr server with id=$dvrserver_id has been stopped"
-
-             # IF THERE IS A DIRECTORY, DATA HAVE BEEN OUTPUT BY THE
-             # STREAMING SERVER. OTHERWISE, USER HAS CHOSEN dvrp_output=local
-          if [[ -d DATA_DVR ]]
-          then
-
-                # ADD THE CURRENT DVR CONFIGURATION FILE TO THE DVR OUTPUT
-                # DIRECTORY
-             cp  .dvrserver.config  DATA_DVR
-
-                # PROCESS THE DVR OUTPUT (OPTION -s FOR GENERATING
-                # SEQUENCE MODE DATA TOO)
-             process_dvr_output  -d DATA_DVR  -f $fname  -s
-
-          else
-
-                # PROCESS THE LOCAL OUTPUT
-             process_dvr_output  -l  -d DATA_DVR  -f $fname
-
-          fi
-
-       elif [[ $(echo $package_list | grep -c dvrp_graphics) != 0 ]]
-       then
-
-             # PROCESS DVR OUTPUT GENERATD IN LOCAL MODE (dvrp_output=local)
-          process_dvr_output  -l  -d DATA_DVR  -f $fname
-
-       fi
-    fi
-
-
-
-       # CALL OF combine_plot_fields IN ORDER TO MERGE SINGLE FILES WRITTEN
-       # BY EACH CORE INTO ONE FILE
-   if [[ ! -f ${PALM_BIN}/combine_plot_fields${block}.x ]]
-   then
-      printf "\n\n\n  +++ WARNING: no combine_plot_fields found for given block \"$cond1 $cond2\""
-      printf "\n      2d- and/or 3d-data may be incomplete!"
-      printf "\n      Run \"mbuild -u -h $localhost\" to generate utilities for this block.\n"
-   elif [[ "$combine_plot_fields" == true ]]
-   then
-      if [[ $localhost = lccrayh  ||  $localhost = lccrayb ]]
-      then
-         printf "\n\n\n *** post-processing: now executing \"aprun  -n 1  -N 1 combine_plot_fields${block}.x\" ..."
-         aprun  -n 1  -N 1 combine_plot_fields${block}.x
-      else
-         printf "\n\n\n *** post-processing: now executing \"combine_plot_fields${block}.x\" ..."
-         combine_plot_fields${block}.x
-      fi
-   else
-
-         # TEMPORARY SOLUTION TO SKIP combine_plot_fields. THIS IS REQUIRED IN CASE OF HUGE AMOUNT OF
-         # DATA OUTPUT. TO DO: EXTEND THIS BRANCH BY CREATING A BATCH JOB for combine_plot_fields.
-         # ??? koennen wir das streichen ???
-      printf "\n\n\n *** post-processing: skipping combine_plot_fields (-Z option set) ..."
-   fi
-
-
-
-       # EXECUTE OUTPUT-COMMANDS GIVEN IN THE CONFIGURATION FILE
-    (( i = 0 ))
-    while (( i < ioc ))
-    do
-       (( i = i + 1 ))
-       if (( i == 1 ))
-       then
-          printf "\n\n  *** execution of OUTPUT-commands:\n$dashes"
-       fi
-       printf "\n  >>> ${out_command[$i]}"
-       eval  ${out_command[$i]}
-       if (( i == ioc ))
-       then
-          printf "\n$dashes\n"
-       fi
-    done
-
-
-       # IN TRACE-MODE PRINT CONTENTS OF THE CURRENT (TEMPORARY) WORKING DIRECTORY
-    if [[ $do_trace = true ]]
-    then
-       printf "\n\n"
-       ls -al
-    fi
-    
-
-       # COPY LOCAL OUTPUT-FILES TO THEIR PERMANENT DESTINATIONS
-    (( i = 0 ))
-    while (( i < iout ))
-    do
-       (( i = i + 1 ))
-       if (( i == 1 ))
-       then
-          printf "\n\n  *** saving OUTPUT-files:"
-
-             # GET RUN NUMBER ASSIGNED BY PALM
-          if [[ -f RUN_NUMBER ]]
-          then
-              read  run_number  <  RUN_NUMBER
-              printf "\n  *** PALM generated run_number = "$run_number" will be used as unified cycle number for all output files"
-              usecycle_option="-U $run_number"
-          else
-              run_number=0
-              usecycle_option=""
-          fi
-          printf "\n$dashes"
-       fi
-
-          # ADD CYCLE NUMBER TO FILENAME
-       if [[ ! ( $fromhost != $localhost  &&  ( "${actionout[$i]}" = tr || "${actionout[$i]}" = tra || "${actionout[$i]}" = trpe ) ) ]]
-       then
-
-              # IN APPEND MODE, FILES KEEP THEIR CURRENT CYCLE NUMBER
-          if [[ "${actionout[$i]}" != "a" ]]
-          then
-                # SET RUN NUMBER AS CYCLE NUMBER, IF THERE IS NOT A CONFLICT
-                # WITH AN EXISTING CYCLE NUMBER
-             if (( run_number >= cycnum[$i] ))
-             then
-                (( cycnum[$i] = run_number ))
-             else
-                if (( run_number > 0 ))
-                then
-                   printf "\n  --- INFORMATIVE: The following file cannot get a unified cycle number"
-                fi
-             fi
-          fi
-          if (( cycnum[$i] > 0 ))
-          then
-             pathout[$i]=${pathout[$i]}.${cycnum[$i]}
-          fi
-       fi           
-
-          # CHECK FOR SINGLE FILE (SERIAL RUN) OR DIRECTORY (ONE FILE PER CORE FOR PARELLEL EXECUTION)
-       files_for_pes=false; filetyp=file
-       link_local_output=false
-       if [[ "${actionout[$i]}" = pe  &&  -n $numprocs ]]
-       then
-          files_for_pes=true; filetyp=directory
-          actionout[$i]=""
-       elif [[ "${actionout[$i]}" = pe  &&  ! -n $numprocs ]]
-       then
-          actionout[$i]=""
-       elif [[ "${actionout[$i]}" = lnpe  &&  -n $numprocs ]]
-       then
-          files_for_pes=true; filetyp=directory
-          link_local_output=true
-          actionout[$i]=""
-       elif [[ "${actionout[$i]}" = lnpe  &&  ! -n $numprocs ]]
-       then
-          link_local_output
-          actionout[$i]=""
-       elif [[ "${actionout[$i]}" = trpe  &&  -n $numprocs ]]
-       then
-          files_for_pes=true; filetyp=directory
-          actionout[$i]="tr"
-       elif [[ "${actionout[$i]}" = trpe  &&  ! -n $numprocs ]]
-       then
-          actionout[$i]="tr"
-       fi
-
-       if [[ ! -f ${localout[$i]}  &&  $files_for_pes = false ]]
-       then
-          printf "\n  +++ temporary OUTPUT-file  ${localout[$i]}  does not exist\n"
-       elif [[ ! -d ${localout[$i]}  &&  $files_for_pes = true ]]
-       then
-          printf "\n  +++ temporary OUTPUT-file  ${localout[$i]}/....  does not exist\n"
-       else
-
-
-             # COPY VIA SCP TO LOCAL HOST (ALWAYS IN BINARY MODE USING batch_scp option -m)
-             # IF TARGET DIRECTORY DOES NOT EXISTS, TRY TO CREATE IT
-          if [[ "${actionout[$i]}" = tr ]]
-          then
-             if [[ $localhost != $fromhost ]]
-             then
-                if [[ $files_for_pes = false ]]
-                then
-                   cps=""
-                   cst=""
-                else
-                   cps=-c
-                   cst="/"
-                fi
-
-                transfer_failed=false
-                printf "\n  >>> OUTPUT: ${localout[$i]}$cst  by SCP to"
-                printf "\n              ${pathout[$i]}/${localhost}_${fname}${endout[$i]}$cst\n"
-                if [[ $localhost = lccrayb ]]
-                then
-                   ssh $usern@blogin1 ". \\$HOME/.bashrc; cd $TEMPDIR; batch_scp $PORTOPT $cps -b -m $usecycle_option -u $return_username $return_address  ${localout[$i]} \"${pathout[$i]}\" ${localhost}_${fname}${endout[$i]}  ${extout[$i]}"
-                elif [[ $localhost = lccrayh ]]
-                then
-                   ssh $usern@hlogin1 ". \\$HOME/.bashrc; cd $TEMPDIR; batch_scp $PORTOPT $cps -b -m $usecycle_option -u $return_username $return_address  ${localout[$i]} \"${pathout[$i]}\" ${localhost}_${fname}${endout[$i]}  ${extout[$i]}"
-                elif [[ $localhost = lcbullhh ]]
-                then
-                   ssh $usern@mlogin101 ". \\$HOME/.bashrc; cd $TEMPDIR; batch_scp $PORTOPT $cps -b -m $usecycle_option -u $return_username $return_address  ${localout[$i]} \"${pathout[$i]}\" ${localhost}_${fname}${endout[$i]}  ${extout[$i]}"
-                elif [[ $localhost = lcxe6 ]]
-                then
-                   ssh $usern@hexagon ". \\$HOME/.bashrc; cd $TEMPDIR; batch_scp $PORTOPT $cps -b -m $usecycle_option -u $return_username $return_address  ${localout[$i]} \"${pathout[$i]}\" ${localhost}_${fname}${endout[$i]}  ${extout[$i]}"
-                else
-                   batch_scp $PORTOPT $cps -b -m $usecycle_option -u $return_username $return_address  ${localout[$i]} "${pathout[$i]}" ${localhost}_${fname}${endout[$i]}  ${extout[$i]}
-                fi
-                [[ $? != 0 ]]  &&  transfer_failed=true
-
-                   # IF TRANSFER FAILED, CREATE BACKUP COPY ON THIS MACHINE
-                if [[ $transfer_failed = true ]]
-                then
-                   printf "  +++ transfer failed. Trying to save a copy on this host under:\n"
-                   printf "      ${pathout[$i]}/${localhost}_${fname}${endout[$i]}_$kennung\n"
-
-                      # FIRST CHECK, IF DIRECTORY EXISTS, AND CREATE IT, IF NECESSARY
-                   eval  local_catalog=${pathout[$i]}
-                   if [[ ! -d $local_catalog ]]
-                   then
-                      printf "  *** local directory does not exist. Trying to create:\n"
-                      printf "      $local_catalog \n"
-                      mkdir -p  $local_catalog
-                   fi
-                   eval  cp  ${localout[$i]}  ${pathout[$i]}/${localhost}_${fname}${endout[$i]}_$kennung
-                   transfer_problems=true
-                fi
-
-             else
-
-                   # UNSET actionout. DUE TO THIS SETTING, FILE WILL LATER JUST BE COPIED ON THIS MACHINE
-                actionout[$i]=""
-             fi
-          fi
-
-
-             # APPEND VIA SCP TO LOCAL HOST (ALWAYS IN BINARY MODE USING batch_scp option -m)
-             # IF TARGET DIRECTORY DOES NOT EXISTS, TRY TO CREATE IT
-          if [[ "${actionout[$i]}" = tra ]]
-          then
-             if [[ $localhost != $fromhost ]]
-             then
-                if [[ $localhost = ibmh ]]
-                then
-
-                      # TRANSFER IN SEPERATE JOB
-                      # FIRST COPY FILE TO TEMPORY DATA DIRECTORY
-                   [[ ! -d $tmp_data_catalog/TRANSFER ]]  &&  mkdir -p  $tmp_data_catalog/TRANSFER
-                   file_to_transfer=${fname}_${localout[$i]}_to_transfer_$kennung
-                   ln -f  ${localout[$i]}  $tmp_data_catalog/TRANSFER/$file_to_transfer
-
-                   echo "set -x"                                    >    transfer_${localout[$i]}
-                   echo "cd  $tmp_data_catalog/TRANSFER"            >>   transfer_${localout[$i]}
-
-                   printf "\n  >>> OUTPUT: ${localout[$i]}  append by SCP in seperate job to"
-                   printf "\n              ${pathout[$i]}/${localhost}_${fname}${endout[$i]}"
-                   printf "\n              or higher cycle\n"
-                   echo "batch_scp $PORTOPT -A -b -m -u $return_username $return_address  $file_to_transfer \"${pathout[$i]}\" ${localhost}_${fname}${endout[$i]}  ${extout[$i]}"  >>  transfer_${localout[$i]}
-
-                   echo "[[ \$? = 0 ]]  &&  rm  $file_to_transfer"  >>  transfer_${localout[$i]}
-
-                   if [[ $LOGNAME = b323013 ]]
-                   then
-                      subjob  -v  -q c1  -X 0  -m 1000  -t 900  -c $job_catalog  $PORTOPT  transfer_${localout[$i]}
-                   else
-                      subjob  -d  -v  -q c1  -X 0  -m 1000  -t 900  -c $job_catalog  $PORTOPT  transfer_${localout[$i]}
-                   fi
-
-                else
-
-                      # TRANSFER WITHIN THIS JOB
-                   transfer_failed=false
-                   printf "\n  >>> OUTPUT: ${localout[$i]}  append by SCP to"
-                   printf "\n              ${pathout[$i]}/${localhost}_${fname}${endout[$i]}\n"
-                   if [[ $localhost = lccrayb ]]
-                   then
-                      ssh $usern@blogin1 ". \\$HOME/.bashrc; cd $TEMPDIR; batch_scp $PORTOPT -A -b -m -u $return_username $return_address  ${localout[$i]} \"${pathout[$i]}\" ${localhost}_${fname}${endout[$i]}  ${extout[$i]}"
-                   elif [[ $localhost = lccrayh ]]
-                   then
-                      ssh $usern@hlogin1 ". \\$HOME/.bashrc; cd $TEMPDIR; batch_scp $PORTOPT -A -b -m -u $return_username $return_address  ${localout[$i]} \"${pathout[$i]}\" ${localhost}_${fname}${endout[$i]}  ${extout[$i]}"
-                   elif [[ $localhost = lcxe6 ]]
-                   then
-                      ssh $usern@hexagon ". \\$HOME/.bashrc; cd $TEMPDIR; batch_scp $PORTOPT -A -b -m -u $return_username $return_address  ${localout[$i]} \"${pathout[$i]}\" ${localhost}_${fname}${endout[$i]}  ${extout[$i]}"
-                   else
-                      batch_scp $PORTOPT -A -b -m -u $return_username  $return_address ${localout[$i]} "${pathout[$i]}" ${localhost}_${fname}${endout[$i]}  ${extout[$i]}
-                   fi
-                   [[ $? != 0 ]]  &&  transfer_failed=true
-
-                      # IF TRANSFER FAILED, CREATE BACKUP COPY ON THIS MACHINE
-                   if [[ $transfer_failed = true ]]
-                   then
-                      printf "  +++ transfer failed. Trying to save a copy on this host under:\n"
-                      printf "      ${pathout[$i]}/${localhost}_${fname}${endout[$i]}_$kennung\n"
-
-                         # FIRST CHECK, IF DIRECTORY EXISTS, AND CREATE IT, IF NECESSARY
-                      eval  local_catalog=${pathout[$i]}
-                      if [[ ! -d $local_catalog ]]
-                      then
-                         printf "  *** local directory does not exist. Trying to create:\n"
-                         printf "      $local_catalog \n"
-                         mkdir -p  $local_catalog
-                      fi
-
-                      eval  cp  ${localout[$i]}  ${pathout[$i]}/${localhost}_${fname}${endout[$i]}_$kennung
-                      transfer_problems=true
-                   fi
-                fi
-             else
-
-                   # RESET actionout. DUE TO THIS SETTING, FILE WILL LATER JUST BE APPENDED ON THIS MACHINE
-                actionout[$i]=a
-             fi
-          fi
-
-
-             # APPEND ON THIS MACHINE
-          if [[ "${actionout[$i]}" = "a" ]]
-          then
-             if [[ "${extout[$i]}" != " "  &&  "${extout[$i]}" != "" ]]
-             then
-                printf "\n  >>> OUTPUT: ${localout[$i]}  append to  ${pathout[$i]}.${extout[$i]}\n"
-                cat  ${localout[$i]}  >>  ${pathout[$i]}.${extout[$i]}
-             else
-                printf "\n  >>> OUTPUT: ${localout[$i]}  append to  ${pathout[$i]}\n"
-                cat  ${localout[$i]}  >>  ${pathout[$i]}
-             fi
-          fi
-
-             # COPY ON THIS MACHINE
-             # COPY HAS TO BE USED, BECAUSE MOVE DOES NOT WORK IF FILE-ORIGIN AND TARGET ARE
-             # ON DIFFERENT FILE-SYSTEMS
-          if [[ "${actionout[$i]}" = ""  &&  $files_for_pes = false ]]
-          then
-
-                # COPY IN CASE OF RUNS ON SINGLE CORES
-             if [[ "${extout[$i]}" != " "  &&  "${extout[$i]}" != "" ]]
-             then
-                printf "\n  >>> OUTPUT: ${localout[$i]}  to  ${pathout[$i]}.${extout[$i]}\n"
-		              if [[ $link_local_output = true ]]
-		              then
-		                 printf "      file will be linked\n"
-		                 ln -f  ${localout[$i]}  ${pathout[$i]}.${extout[$i]}
-		              fi
-		                 # If "ln -f" fails of if "$link_local_output = false" do a normal "cp"
-		              if [[ ! -f "${pathout[$i]}.${extout[$i]}" ]]
-                then
-		                 if [[ $link_local_output = true ]]
-	                  then
-                      printf "  --- WARNING: ln failed, using cp instead (might be time consuming...)\n"
-		                 fi
-		                 cp  ${localout[$i]}  ${pathout[$i]}.${extout[$i]}
-		              else
-                   printf "+++ no copy because file ${pathout[$i]}.${extout[$i]} exists\n"
-                fi
-             else
-                printf "\n  >>> OUTPUT: ${localout[$i]}  to  ${pathout[$i]}\n"
-		              if [[ $link_local_output = true ]]
-		              then
-		                 printf "      file will be linked\n"
-		                 ln -f  ${localout[$i]}  ${pathout[$i]}
-		              fi
-		                 # If "ln -f" fails of if "$link_local_output = false" do a normal "cp"
-	              	if [[ ! -f "${pathout[$i]}" ]]
-                then
-		                 if [[ $link_local_output = true ]]
-	                  then
-                      printf "  --- WARNING: ln failed, using cp instead (might be time consuming...)\n"
-		                 fi
-		                 cp  ${localout[$i]}  ${pathout[$i]}
-		              else
-		                 printf "+++ no copy because file ${pathout[$i]} exists\n"
-                fi
-             fi
-
-          elif [[ "${actionout[$i]}" = ""  &&  $files_for_pes = true ]]
-          then
-
-                # FILES FROM THE DIFFERENT CORES ARE MOVED WITH ln-COMMAND TO THE PERMANENT DIRECTORY
-                # AS A FIRST STEP, THE PERMANENT DIRECTORY IS CREATED
-             printf "\n  >>> OUTPUT: ${localout[$i]}/_....  to  ${pathout[$i]}\n"
-	            if [[ $link_local_output = true ]]
-	            then
-		              printf "      files will be linked\n"
-		              mkdir  ${pathout[$i]}
-		              cd ${localout[$i]}
-		              for file in $(ls *)
-		              do
-		                 ln -f $file  ${pathout[$i]}
-		              done >|/dev/null 2>&1
-		              cd $TEMPDIR
-	            fi
-
-                # IF "ln -f" HAS FAILED OR IF "$link_local_output = false" DO A NORMAL COPY "cp -r"
-	            if [[ ! -f "${pathout[$i]}/_000000" ]]
-             then
-		              if [[ $link_local_output = true ]]
-		              then
-                   printf "  --- WARNING: ln failed, using cp instead (might be time consuming...)\n"
-		              fi
-		              cp -r  ${localout[$i]}/*  ${pathout[$i]}
-       	     fi
-
-          fi
-       fi
-    done
-    if (( i != 0 ))
-    then
-       if [[ $transfer_problems = true ]]
-       then
-          printf "\n$dashes\n  *** OUTPUT-files saved"
-          printf "\n  +++ WARNING: some data transfers failed! \n"
-       else
-          printf "\n$dashes\n  *** all OUTPUT-files saved \n"
-       fi
-    fi
-
-
-       # IF REQUIRED, START A RESTART-JOB
-       # FILE CONTINUE_RUN MUST HAVE BEEN CREATED BY THE EXECUTABLE (PALM)
-    if [[ -f CONTINUE_RUN ]]
-    then
-
-          # ADD RESTART-OPTIONS TO THE MRUN-CALL (IF THEY ARE NOT USED ALREADY):
-          # -C TELLS MRUN THAT IT IS A RESTART-RUN
-          # -v SILENT MODE WITHOUT INTERACTIVE QUERIES
-          # -n BATCH-MODE (IMPORTANT ONLY IN CASE OF BATCH JOBS ON THE LOCAL MACHINE)
-       [[ $(echo $mc | grep -c "\-C") = 0 ]]  &&  mc="$mc -C"
-       [[ $(echo $mc | grep -c "\-v") = 0 ]]  &&  mc="$mc -v"
-       [[ $(echo $mc | grep -c "\-b") = 0 ]]  &&  mc="$mc -b"
-       if [[ $(echo $mc | grep -c "#") != 0 ]]
-       then
-          mc=`echo $mc | sed 's/#/f/g'`
-       fi
-
-
-          # START THE RESTART-JOB
-       printf "\n\n  *** initiating restart-run on \"$return_address\" using command:\n"
-       echo "      $mc"
-       printf "\n$dashes\n"
-       if [[ $localhost != $fromhost ]]
-       then
-
-          if [[ $localhost = lcbullhh  ||  $localhost = lccrayb  ||  $localhost = lccrayh  ||  $localhost = ibmh  ||  $localhost = ibmkisti  ||  $localhost = ibmku  ||  $localhost = ibms  ||  $localhost = lceddy  ||  $localhost = lckyu*  ||  $localhost = lcxe6  ||  $localhost = lcgeohu ]]
-          then
-             echo "*** ssh will be used to initiate restart-runs!"
-             echo "    return_address=\"$return_address\" "
-             echo "    return_username=\"$return_username\" "
-             if [[ $(echo $return_address | grep -c "130.75.105") = 1 ]]
-             then
-                if [[ $localhost = ibmh ]]
-                then
-                   ssh $SSH_PORTOPT $usern@136.172.40.15 "ssh $SSH_PORTOPT $return_address -l $return_username \". \\\$HOME/.profile; module load intel-compiler hdf5 netcdf; PATH=\\\$PATH:$LOCAL_MRUN_PATH;export PALM_BIN=$LOCAL_MRUN_PATH;cd $LOCAL_PWD; $mc\" "
-                elif [[ $localhost = lcbullhh ]]
-                then
-                   ssh $SSH_PORTOPT $usern@mlogin101 "ssh $SSH_PORTOPT $return_address -l $return_username \". \\\$HOME/.profile; module load intel-compiler hdf5 netcdf; PATH=\\\$PATH:$LOCAL_MRUN_PATH;export PALM_BIN=$LOCAL_MRUN_PATH;cd $LOCAL_PWD; $mc\" "
-                elif [[ $localhost = lccrayb ]]
-                then
-                   ssh $usern@blogin1 "ssh $SSH_PORTOPT $return_address -l $return_username \". \\\$HOME/.profile; module load intel-compiler hdf5 netcdf; PATH=\\\$PATH:$LOCAL_MRUN_PATH; export PALM_BIN=$LOCAL_MRUN_PATH;cd $LOCAL_PWD; $mc\" "
-                elif [[ $localhost = lccrayh ]]
-                then
-                   ssh $usern@hlogin1 "ssh $SSH_PORTOPT $return_address -l $return_username \". \\\$HOME/.profile; module load intel-compiler hdf5 netcdf; PATH=\\\$PATH:$LOCAL_MRUN_PATH; export PALM_BIN=$LOCAL_MRUN_PATH;cd $LOCAL_PWD; $mc\" "
-                elif [[ $localhost = lcxe6 ]]
-                then
-                   ssh $usern@hexagon "ssh $SSH_PORTOPT $return_address -l $return_username \". \\\$HOME/.profile; module load intel-compiler hdf5 netcdf; PATH=\\\$PATH:$LOCAL_MRUN_PATH; export PALM_BIN=$LOCAL_MRUN_PATH;cd $LOCAL_PWD; $mc\" "
-                else
-                   ssh $SSH_PORTOPT $return_address -l $return_username ". \\\$HOME/.profile; module load intel-compiler hdf5 netcdf; PATH=\$PATH:$LOCAL_MRUN_PATH;export PALM_BIN=$LOCAL_MRUN_PATH;cd $LOCAL_PWD; $mc "
-                fi
-             else
-                if [[ $localhost = ibmkisti ]]
-                then
-                   ssh $SSH_PORTOPT $usern@gaiad "ssh $SSH_PORTOPT $return_address -l $return_username \"PATH=\\\$PATH:$LOCAL_MRUN_PATH;export PALM_BIN=$LOCAL_MRUN_PATH;cd $LOCAL_PWD; $mc\" "
-                elif [[ $localhost = lceddy ]]
-                then
-                   /usr/bin/ssh $SSH_PORTOPT $return_address -l $return_username "PATH=\$PATH:$LOCAL_MRUN_PATH;export PALM_BIN=$LOCAL_MRUN_PATH;cd $LOCAL_PWD; $mc "
-                elif [[ $localhost = lcocean ]]
-                then
-                   /usr/bin/ssh $SSH_PORTOPT $return_address -l $return_username "PATH=\$PATH:$LOCAL_MRUN_PATH;export PALM_BIN=$LOCAL_MRUN_PATH;cd $LOCAL_PWD; $mc "
-                elif [[ $localhost = lccrayb ]]
-                then
-                   ssh $usern@blogin1 "ssh $SSH_PORTOPT $return_address -l $return_username \"PATH=\\\$PATH:$LOCAL_MRUN_PATH;export PALM_BIN=$LOCAL_MRUN_PATH;cd $LOCAL_PWD; $mc\" "
-                elif [[ $localhost = lccrayh ]]
-                then
-                   ssh $usern@hlogin1 "ssh $SSH_PORTOPT $return_address -l $return_username \"PATH=\\\$PATH:$LOCAL_MRUN_PATH;export PALM_BIN=$LOCAL_MRUN_PATH;cd $LOCAL_PWD; $mc\" "
-                elif [[ $localhost = lccgeohu ]]
-                then
-                   ssh $usern@cirrus.geo.hu-berlin.de "ssh $SSH_PORTOPT $return_address -l $return_username \"PATH=\\\$PATH:$LOCAL_MRUN_PATH;export PALM_BIN=$LOCAL_MRUN_PATH;cd $LOCAL_PWD; $mc\" "
-                else
-                   ssh $SSH_PORTOPT $return_address -l $return_username "PATH=\$PATH:$LOCAL_MRUN_PATH;export PALM_BIN=$LOCAL_MRUN_PATH;cd $LOCAL_PWD; $mc "
-                fi
-             fi
-          else
-             printf "\n  +++ no restart mechanism available for host \"$localhost\" "
-             locat=restart; exit
-          fi
-
-             # WAIT TO ALLOW THE RESTART-JOB TO BE QUEUED, BEFORE THE CURRENT JOB IS FINISHED
-          if [[ $queue = special1q ]]
-          then
-             sleep 120
-          else
-             sleep 30
-          fi
-
-       else
-
-             # JOBS RUNNING (AND STARTED) ON THE LOCAL MACHINE CAN DIRECTLY CALL MRUN (WITHOUT
-             # USING SSH)
-          cd $LOCAL_PWD
-          if [[ $localhost = lckyuh ]]
-          then
-             printf "\n  +++ WARNING: no restart mechanism available for host \"$localhost\" "
-             printf "\n               please restart job manually using command:\n"
-             printf "\n               \"$mc\" "
-          else
-             eval  $mc                # THE ' MUST BE EVALUATED
-          fi
-          cd -  > /dev/null
-       fi
-       if [[ $localhost = lckyuh ]]
-       then
-          printf "\n$dashes\n  *** restart-run to be initiated manually\n"
-       else
-          printf "\n$dashes\n  *** restart-run initiated \n"
-       fi
-
-
-          # DELETE INPUT-(RESTART)FILES, WHICH HAVE BEEN FETCHED FROM THE TEMPORARY DATA
-          # DIRECTORY, BACAUSE THEY ARE NOT REQUIRED BY THE RESTART-JOB.
-          # THIS IS DONE IN ORDER TO AVOID EXCEEDING DISC QUOTAS OR DISC SPACE (RESTART-FILES
-          # MAY BE VERY HUGE)
-       (( i = 0 ))
-       while (( i < iin ))
-       do
-          (( i = i + 1 ))
-          if [[ "${got_tmp[$i]}" = true   &&  $keep_data_from_previous_run = false ]]
-          then
-             rm -r  ${absnamein[$i]}
-          fi
-       done
-
-    fi
-
-
-    
-       # SEND EMAIL NOTIFICATION ABOUT THE FINISHED RUN
-    if [[ "$email_notification" != "none" ]]
-    then
-
-       if [[ $localhost != $fromhost ]]
-       then
-          if [[ -f CONTINUE_RUN ]]
-          then
-             echo "PALM restart run necessary"        >   email_text
-             echo "description header of actual run:" >>  email_text
-             cat  CONTINUE_RUN                        >>  email_text
-             echo "mrun-command to restart:"          >>  email_text
-             echo "$mc"                               >>  email_text
-          else
-             echo "PALM run with base filename \"$fname\" on host \"$localhost\" finished"  >  email_text
-          fi
-          mail  $email_notification  <  email_text
-          printf "\n  *** email notification sent to \"$email_notification\" "
-       fi
-    fi
-
-
-
-       # ALL ACTIONS FINISHED, TEMPORARY WORKING-DIRECTORY CAN BE DELETED
-    cd  $HOME
-    [[ $delete_temporary_catalog = true ]]  &&  rm -rf $TEMPDIR
-
- else
-
-       # PREPARING ACTIONS,
-       # IF A BATCH-JOB IS TO BE GENERATED AND STARTED ON A REMOTE-MACHINE GERECHNET
-
-       # BUILD THE MRUN-COMMAND TO BE CALLED IN THE BATCH-JOB ON THE REMOTE-MACHINE
-    mrun_com="$mrun_script_name -a $afname -c $config_file -d $fname -h $host -H $fromhost -m $memory -t $cpumax -q $queue -R $return_address -U $return_username -u $remote_username"
-    [[ "$global_revision" != "" ]]  &&  mrun_com=${mrun_com}" -G \"$global_revision\""
-    [[ $group_number != none ]]   &&  mrun_com=${mrun_com}" -g $group_number"
-    [[ $do_compile = true ]]      &&  mrun_com=${mrun_com}" -s \"$source_list\""
-    [[ "$input_list" != "" ]]     &&  mrun_com=${mrun_com}" -i \"$input_list\""
-    [[ $keep_data_from_previous_run = true ]]  &&  mrun_com=${mrun_com}" -k"
-    [[ "$additional_conditions" != "" ]]  &&  mrun_com=${mrun_com}" -K \"$additional_conditions\""
-    [[ "$output_list" != "" ]]    &&  mrun_com=${mrun_com}" -o \"$output_list\""
-    [[ "$read_from_config" = false ]]  &&  mrun_com=${mrun_com}" -S"
-    [[ $do_trace = true ]]        &&  mrun_com=${mrun_com}" -x"
-    [[ "$numprocs" != "" ]]       &&  mrun_com=${mrun_com}" -X $numprocs"
-    if [[ $use_openmp = true ]]
-    then
-       mrun_com=${mrun_com}" -O $threads_per_task"
-    fi
-    [[ "$tasks_per_node" != "" ]]  &&  mrun_com=${mrun_com}" -T $tasks_per_node"
-    [[ $package_list != "" ]]     &&  mrun_com=${mrun_com}" -p \"$package_list\""
-    [[ $return_password != "" ]]  &&  mrun_com=${mrun_com}" -P $return_password"
-    [[ $delete_temporary_catalog = false ]]  &&  mrun_com=${mrun_com}" -B"
-    [[ $node_usage != default  &&  "$(echo $node_usage | cut -c1-3)" != "sla"  &&  $node_usage != novice ]]  &&  mrun_com=${mrun_com}" -n $node_usage"
-    [[ "$ocean_file_appendix" = true ]]  &&  mrun_com=${mrun_com}" -y"
-    [[ $run_coupled_model = true ]]  &&  mrun_com=${mrun_com}" -Y \"$coupled_dist\""
-    [[ $run_vnested_model  = true ]]  &&  mrun_com=${mrun_com}" -N \"$vnested_dist\""
-    [[ "$check_namelist_files" = false ]]  &&  mrun_com=${mrun_com}" -z"
-    [[ "$combine_plot_fields" = false ]]  &&  mrun_com=${mrun_com}" -Z"
-    [[ "$max_par_io_str" != "" ]]  &&  mrun_com=${mrun_com}" -w $max_par_io_str"
-    if [[ $do_remote = true ]]
-    then
-       printf "\n>>>> MRUN-command on execution host:\n>>>> $mrun_com \n"
-    fi
-
-
-       # CREATE EXECUTABLE FOR BATCH JOB
-    if [[ $create_executable_for_batch = true  &&  $restart_run != true ]]
-    then
-
-       printf "\n  *** creating the executable for batch job\n"
-
-          # METHOD ONLY WORKS FOR BATCH JOBS ON LOCAL HOSTS
-       if [[ $host != $localhost ]]
-       then
-          printf "\n  +++ creation of executables is only allowed for batch jobs on local hosts."
-          printf "\n      Please set create_executable_for_batch = false in the config-file.\n"
-          locat=create_executable; exit
-       fi
-
-       mkdir  $working_directory/SOURCES_FOR_RUN_${fname}/TMPDIR_FOR_CREATING_EXECUTABLE
-       cd  $working_directory/SOURCES_FOR_RUN_${fname}/TMPDIR_FOR_CREATING_EXECUTABLE
-
-       cp  $make_depository  .
-       tar -xf  $make_depository  >  /dev/null  2>&1
-       cp  ../*  .   >  /dev/null  2>&1
-
-       make $mopts -f Makefile PROG=a.out  F90=$compiler_name  COPT="$cpp_options"  F90FLAGS="$fopts"  LDFLAGS="$lopts"
-
-       if [[ $? != 0  ||  "$compile_error" = true  ||  "$module_compile_error" = true ]]
-       then
-          printf "\n  +++ error occured while compiling or linking"
-          locat=compile
-          exit
-       fi
-
-       mv  a.out  ..
-       cd -  >  /dev/null  2>&1
-       rm -rf  $working_directory/SOURCES_FOR_RUN_${fname}/TMPDIR_FOR_CREATING_EXECUTABLE
-
-       printf "  *** executable created in \"$working_directory/SOURCES_FOR_RUN_${fname}\"\n "
-
-    fi
-
-
-       # BUILD THE JOB-SCRIPTS ON FILE jobfile
-    jobfile=jobfile.$RANDOM
-
-
-       # CREATE TEMPORARY DIRECTORY AND SWITCH TO IT
-    echo  "mkdir  $TEMPDIR"      >>  $jobfile
-    echo  "cd  $TEMPDIR"         >>  $jobfile
-
-
-       # ACTIVATE ERROR-TRACEBACK
-    if [[ $do_trace = true ]]
-    then
-       echo  "set -x"                                    >>  $jobfile
-    else
-       echo  "set +vx"                                   >>  $jobfile
-    fi
-
-
-       # INITIALIZE THE ENVIRONMENT AND LOAD MODULES
-    if [[ "$init_cmds" != "" ]]
-    then
-       echo  "$init_cmds"        >>  $jobfile
-    fi
-    if [[ "$module_calls" != "" ]]
-    then
-       echo  "$module_calls"     >>  $jobfile
-    fi
-
-
-       # PROVIDE SOURCE-CODE FILES, MRUN-SCRIPT AND CONFIGURATION-FILE FOR THE JOB
-       # then-CLAUSE: FILES ARE COLLECTED IN THE SOURCES_FOR_RUN_... DIRECTORY ON THE LOCAL HOST,
-       #              WHICH IS THEN FETCHED FROM THE BATCH-JOB BY USING cp/scp
-       #              THE SOURCE-CODE FILES ALREADY EXIST IN THIS DIRECTORY
-       # else-CLAUSE: FILE-CONTENTS ARE PUT INTO THE JOB-FILE AS HERE-DOCUMENTS
-       #              THIS MAY CREATE A QUITE LARGE JOB-FILE, WHICH CAN CAUSE PROBLEMS WITH SOME
-       #              QUEUEING-SYSTEMS
-    if [[ $host = ibmkisti  ||  $host = lcbullhh  ||  $host = lccrayb  ||  $host = lccrayf  ||  $host = lccrayh  ||  $host = lcocean  ||  $host = lcgeohu ]]
-    then
-
-          # COPY CONFIGURATION-FILE AND MRUN-SCRIPT INTO THE SOURCES_FOR_RUN... DIRECTORY
-       if [[ $restart_run != true ]]
-       then
-          cp  $config_file  $working_directory/SOURCES_FOR_RUN_$fname
-          cp  ${PALM_BIN}/$mrun_script_name  $working_directory/SOURCES_FOR_RUN_$fname
-       fi
-
-          # COPY THE SOURCES_FOR_RUN... DIRECTORY FROM THE LOCAL HOST TO THE JOB VIA scp
-          # (then-CLAUSE: JOBS ON THE LOCAL HOST CAN JUST USE cp)
-       echo  "set -x"  >>  $jobfile
-       if [[ $host = $localhost ]]
-       then
-             # DUE TO UNKNOWN REASONS, COPY WITH cp COMMAND CREATES CORRUPT
-             # FILES ON CRAY XC30 SYSTEMS (CSC HELSINKI), rsync IS USED INSTEAD
-          if [[ $(echo $host | cut -c1-6) = lccray ]]
-          then
-             echo  "rsync -av -t  $working_directory/SOURCES_FOR_RUN_$fname  ."  >>  $jobfile
-          else
-             echo  "cp -r  $working_directory/SOURCES_FOR_RUN_$fname  ."  >>  $jobfile
-          fi
-
-       else
-          if [[ $host = ibmkisti ]]
-          then
-                # ON KISTI'S IBM FIREWALL IS ONLY OPENED ON INTERACTIVE NODE
-             echo  "localdir=\`pwd\`"                            >>  $jobfile
-             echo  "ssh $SSH_PORTOPT $remote_username@gaiad \"cd \$localdir; scp $PORTOPT -r  $return_username@$return_address:$working_directory/SOURCES_FOR_RUN_$fname .\" "  >>  $jobfile
-         elif [[ $host = lcbullhh ]]
-          then
-             echo  "localdir=\`pwd\`"                            >>  $jobfile
-             echo  "ssh $SSH_PORTOPT $remote_username@mlogin101 \"cd \$localdir; scp $PORTOPT -r  $return_username@$return_address:$working_directory/SOURCES_FOR_RUN_$fname .\" "  >>  $jobfile
-
-          elif [[ $host = lccrayb ]]
-          then
-             echo  "localdir=\`pwd\`"                            >>  $jobfile
-             echo  "ssh $SSH_PORTOPT $remote_username@blogin1 \"cd \$localdir; scp $PORTOPT -r  $return_username@$return_address:$working_directory/SOURCES_FOR_RUN_$fname .\" "  >>  $jobfile
-          elif [[ $host = lccrayh ]]
-          then
-             echo  "localdir=\`pwd\`"                            >>  $jobfile
-             echo  "ssh $SSH_PORTOPT $remote_username@hlogin1 \"cd \$localdir; scp $PORTOPT -r  $return_username@$return_address:$working_directory/SOURCES_FOR_RUN_$fname .\" "  >>  $jobfile
-
-          else
-             echo  "scp $PORTOPT -r $return_username@$return_address:$working_directory/SOURCES_FOR_RUN_$fname ."  >>  $jobfile
-          fi
-       fi
-       echo  "export SOURCES_COMPLETE=true"                      >>  $jobfile
-
-          # MOVE MRUN-SCRIPT AND CONFIGURATION-FILE FROM THE SOURCES_FOR_RUN... DIRECTORY TO THE
-          # WORKING DIRECTORY OF THE JOB
-       echo  "mv  SOURCES_FOR_RUN_$fname/$config_file  . "       >>  $jobfile
-       echo  "mv  SOURCES_FOR_RUN_$fname/$mrun_script_name  . "  >>  $jobfile
-       echo  "chmod u+rwx  $mrun_script_name"                    >>  $jobfile
-       echo  "execute_mrun=true"                                 >>  $jobfile
-       echo  " "                                                 >>  $jobfile
-
-    else
-
-          # PROVIDE SOURCE-CODE FILES AND MAKEFILE AS HERE DOCUMENT
-       if [[ $do_compile = true ]]
-       then
-
-          source_catalog=SOURCES_FOR_RUN_$fname
-
-              # CREATE SOURCES_FOR_RUN... DIRECTORY TO STORE THE SOURCE CODE FILES AND THE MAKEFILE
-          echo  "mkdir  SOURCES_FOR_RUN_$fname"                >>  $jobfile
-          echo  "export SOURCES_COMPLETE=true"                 >>  $jobfile
-          echo  "cd     SOURCES_FOR_RUN_$fname"                >>  $jobfile
-
-          for  filename  in  $source_list
-          do
-                # BACKSLASH IS USED FOR MASKING
-             echo  "cat > $filename << \"%END%\""              >>  $jobfile
-             cat   $source_catalog/$filename                   >>  $jobfile
-             echo  " "                                         >>  $jobfile
-             echo  "%END%"                                     >>  $jobfile
-             echo  " "                                         >>  $jobfile
-          done
-
-             # BACKSLASH IS USED FOR MASKING
-          echo  "cat > Makefile << \"%END%\""               >>  $jobfile
-          cat   $source_catalog/Makefile                    >>  $jobfile
-          echo  " "                                         >>  $jobfile
-          echo  "%END%"                                     >>  $jobfile
-          echo  " "                                         >>  $jobfile
-
-          echo  "cd -  > /dev/null"                         >>  $jobfile
-
-       fi
-
-
-          # PROVIDE THE CONFIGURATION-FILE AS HERE-DOCUMENT
-          # BACKSLASH IS USED FOR MASKING
-          # LINES WITH #$ IN THE CONFIGURATION-FILE, COMING FROM THE SVN KEYWORD SUBSTITUTION,
-          # ARE REMOVED FROM THE FILE IN ORDER TO AVOID PROBLEMS WITH THE SGE BATCH SYSTEM
-       echo  "cat > $config_file << \"%END%\""      >>  $jobfile
-       if [[ $host = lckyuh ]]
-       then
-             # NO CROSS-COMPILER ON COMPUTE NODE
-          sed  's/frtpx/frt/g'  $config_file        >>  $jobfile
-       else
-          sed 's/#$.*//g'   $config_file            >>  $jobfile
-       fi
-       echo  "%END%"                                >>  $jobfile
-       echo  " "                                    >>  $jobfile
-
-
-          # PROVIDE THE MRUN-SCRIPTS AS HERE-DOCUMENT
-          # BACKSLASH IS USED FOR MASKING
-       echo  "cat > $mrun_script_name <<\"%END%\""  >>  $jobfile
-       if [[ $host = lckyuh ]]
-       then
-          sed 's/\/bin\/ksh/\/bin\/bash/g' ${PALM_BIN}/$mrun_script_name  >>  $jobfile
-       else
-          cat  ${PALM_BIN}/$mrun_script_name        >>  $jobfile
-       fi
-       echo  "%END%"                                >>  $jobfile
-       echo  "chmod u+x $mrun_script_name"          >>  $jobfile
-       echo  "execute_mrun=true"                    >>  $jobfile
-       echo  " "                                    >>  $jobfile
-
-    fi
-
-
-       # GET REQUIRED INPUT-FILES BY SCP OR BY SENDING THEM WITH THE JOB AS HERE-DOCUMENT
-       # PUT THESE FILES INTO THE USER'S RESPECTIVE PERMANENT DIRECTORIES ON THE REMOTE-HOST
-       # IF THE DIRECTORIES DO NOT EXIST, TRY TO CREATE THEM
-    if [[ $do_remote = true ]]
-    then
-       (( i = 0 ))
-       while (( i < iin ))
-       do
-          (( i = i + 1 ))
-          echo  "[[ ! -d ${pathin[$i]} ]]  &&  mkdir -p  ${pathin[$i]}"  >>  $jobfile
-          if [[ "${transin[$i]}" = job ]]
-          then
-             echo  "cat > ${remotepathin[$i]} <<\"%END%\""    >>  $jobfile
-             eval cat   ${pathin[$i]}/${frelin[$i]}           >>  $jobfile
-             echo  " "                                        >>  $jobfile
-             echo  "%END%"                                    >>  $jobfile
-          else
-             echo  "batch_scp $PORTOPT -b -o -g -s -u $return_username $return_address ${remotepathin[$i]} \"${pathin[$i]}\" ${frelin[$i]}" >>  $jobfile
-          fi
-
-             # CHECK, IF FILE COULD BE CREATED
-          echo  "if [[ \$? = 1 ]]"                    >>  $jobfile
-          echo  "then"                                >>  $jobfile
-          echo  "   echo \" \" "                      >>  $jobfile
-          echo  "   echo \"+++ file ${remotepathin[$i]} could not be created\" "   >>  $jobfile
-          echo  "   echo \"    please check, if directory exists on $host!\" "  >>  $jobfile
-          echo  "   echo \"+++ MRUN will not be continued\" "  >>  $jobfile
-          echo  "   execute_mrun=false"               >>  $jobfile
-          echo  "fi"                                  >>  $jobfile
-       done
-    fi
-
-       # PROVIDE NAME OF THE CURRENT WORKING-DIRECTORY ON THE LOCAL MACHINE (FROM WHERE THE JOB IS
-       # STARTED) BY SETTING AN ENVIRONMENT-VARIABLE. THIS INFORMATION IS USED IN THE JOB BY MRUN
-       # IN CASE THAT RESTART-RUNS HAVE TO BE GENERATED
-    echo  "LOCAL_PWD=$working_directory"                >>  $jobfile
-    echo  "export LOCAL_PWD"                            >>  $jobfile
-
-       # PROVIDE THE PATH OF THE LOCAL MRUN-SCRIPT FOR THE SAME REASON 
-    echo  "LOCAL_MRUN_PATH=$PALM_BIN"                   >>  $jobfile
-    echo  "export LOCAL_MRUN_PATH"                      >>  $jobfile
-
-       # lceddy ALSO REQUIRES TO PROVIDE PATH FOR THE PALM-SCRIPTS
-    if [[ $host = lceddy  ||  $localhost = lceddy ]]
-    then
-       echo  "export PALM_BIN=$PALM_BIN" | sed -e 's:'$HOME':$HOME:'   >>  $jobfile
-       echo  "export PATH=\$PATH:\$PALM_BIN"              >>  $jobfile
-    fi
-
-       # CALL MRUN WITHIN THE JOB (SETTING QUEUE IS A WORKAROUND FOR ibmkisti)
-       # AS FINAL ACTION, REMOVE THE TEMPORARY DIRECTORY CREATED AT THE BEGINNING OF THE JOB
-    echo  "set -x"                                        >>  $jobfile
-    echo  "queue=$queue"                                  >>  $jobfile
-    echo  "[[ \$execute_mrun = true ]]  &&  ./$mrun_com"  >>  $jobfile
-    echo  'ls -al; echo `pwd`'                            >>  $jobfile
-    echo  "cd \$HOME"                                     >>  $jobfile
-    echo  "rm -rf  $TEMPDIR"                              >>  $jobfile
-
-
-
-
-       # START THE JOB USING SUBJOB-COMMAND
-    if [[ $silent = false ]]
-    then
-       printf "\n     "
-    else
-       printf "\n\n"
-    fi
-
-    subjob  $job_on_file  -h $host  -u $remote_username -g $group_number -q $queue  -m $memory  -N $node_usage -t $cpumax  $XOPT  $TOPT  $OOPT  -n $fname  -v  -c $job_catalog  -e $email_notification  $PORTOPT  $jobfile
-    rm -rf  $jobfile
-
-
- fi  # END OF REMOTE-PART
Index: palm/trunk/SCRIPTS/palm_gf
===================================================================
--- palm/trunk/SCRIPTS/palm_gf	(revision 2693)
+++ palm/trunk/SCRIPTS/palm_gf	(revision 2696)
@@ -2,5 +2,5 @@
 # -*- coding: utf-8 -*-
 #--------------------------------------------------------------------------------#
-# This file is part of PALM.
+# This file is part of the PALM model system.
 #
 # PALM is free software: you can redistribute it and/or modify it under the terms
Index: palm/trunk/SCRIPTS/palm_jm
===================================================================
--- palm/trunk/SCRIPTS/palm_jm	(revision 2693)
+++ palm/trunk/SCRIPTS/palm_jm	(revision 2696)
@@ -2,5 +2,5 @@
 # -*- coding: utf-8 -*-
 #--------------------------------------------------------------------------------#
-# This file is part of PALM.
+# This file is part of the PALM model system.
 #
 # PALM is free software: you can redistribute it and/or modify it under the terms
@@ -15,5 +15,5 @@
 # PALM. If not, see <http://www.gnu.org/licenses/>.
 #
-# Copyright 1997-2016  Leibniz Universitaet Hannover
+# Copyright 1997-2017  Leibniz Universitaet Hannover
 ##--------------------------------------------------------------------------------#
 #
Index: palm/trunk/SCRIPTS/palm_simple_install
===================================================================
--- palm/trunk/SCRIPTS/palm_simple_install	(revision 2693)
+++ palm/trunk/SCRIPTS/palm_simple_install	(revision 2696)
@@ -1,5 +1,5 @@
 #!/bin/bash
 #--------------------------------------------------------------------------------#
-# This file is part of PALM.
+# This file is part of the PALM model system.
 #
 # PALM is free software: you can redistribute it and/or modify it under the terms
@@ -14,5 +14,5 @@
 # PALM. If not, see <http://www.gnu.org/licenses/>.
 #
-# Copyright 1997-2014  Leibniz Universitaet Hannover
+# Copyright 1997-2017  Leibniz Universitaet Hannover
 #--------------------------------------------------------------------------------#
 #
Index: palm/trunk/SCRIPTS/palm_simple_run
===================================================================
--- palm/trunk/SCRIPTS/palm_simple_run	(revision 2693)
+++ palm/trunk/SCRIPTS/palm_simple_run	(revision 2696)
@@ -1,5 +1,5 @@
 #!/bin/bash
 #--------------------------------------------------------------------------------#
-# This file is part of PALM.
+# This file is part of the PALM model system.
 #
 # PALM is free software: you can redistribute it and/or modify it under the terms
@@ -14,5 +14,5 @@
 # PALM. If not, see <http://www.gnu.org/licenses/>.
 #
-# Copyright 1997-2014  Leibniz Universitaet Hannover
+# Copyright 1997-2017  Leibniz Universitaet Hannover
 #--------------------------------------------------------------------------------#
 #
Index: palm/trunk/SCRIPTS/palm_wd
===================================================================
--- palm/trunk/SCRIPTS/palm_wd	(revision 2693)
+++ palm/trunk/SCRIPTS/palm_wd	(revision 2696)
@@ -2,5 +2,5 @@
 # -*- coding: utf-8 -*-
 #--------------------------------------------------------------------------------#
-# This file is part of PALM.
+# This file is part of the PALM model system.
 #
 # PALM is free software: you can redistribute it and/or modify it under the terms
@@ -15,5 +15,5 @@
 # PALM. If not, see <http://www.gnu.org/licenses/>.
 #
-# Copyright 1997-2015  Leibniz Universitaet Hannover
+# Copyright 1997-2017  Leibniz Universitaet Hannover
 #--------------------------------------------------------------------------------#
 #
Index: palm/trunk/SCRIPTS/palm_wdd
===================================================================
--- palm/trunk/SCRIPTS/palm_wdd	(revision 2693)
+++ palm/trunk/SCRIPTS/palm_wdd	(revision 2696)
@@ -2,5 +2,5 @@
 # -*- coding: utf-8 -*-
 #--------------------------------------------------------------------------------#
-# This file is part of PALM.
+# This file is part of the PALM model system.
 #
 # PALM is free software: you can redistribute it and/or modify it under the terms
@@ -15,5 +15,5 @@
 # PALM. If not, see <http://www.gnu.org/licenses/>.
 #
-# Copyright 1997-2015  Leibniz Universitaet Hannover
+# Copyright 1997-2017  Leibniz Universitaet Hannover
 #--------------------------------------------------------------------------------#
 #
Index: palm/trunk/SCRIPTS/palmbuild
===================================================================
--- palm/trunk/SCRIPTS/palmbuild	(revision 2693)
+++ palm/trunk/SCRIPTS/palmbuild	(revision 2696)
@@ -4,5 +4,5 @@
 
 #------------------------------------------------------------------------------#
-# This file is part of PALM.
+# This file is part of the PALM model system.
 #
 # PALM is free software: you can redistribute it and/or modify it under the terms
@@ -17,5 +17,5 @@
 # PALM. If not, see <http://www.gnu.org/licenses/>.
 #
-# Copyright 2017  Leibniz Universitaet Hannover
+# Copyright 2017-2017  Leibniz Universitaet Hannover
 #------------------------------------------------------------------------------#
 #
Index: palm/trunk/SCRIPTS/palmplot
===================================================================
--- palm/trunk/SCRIPTS/palmplot	(revision 2693)
+++ palm/trunk/SCRIPTS/palmplot	(revision 2696)
@@ -1,5 +1,5 @@
 #!/bin/ksh
 #--------------------------------------------------------------------------------#
-# This file is part of PALM.
+# This file is part of the PALM model system.
 #
 # PALM is free software: you can redistribute it and/or modify it under the terms
@@ -14,5 +14,5 @@
 # PALM. If not, see <http://www.gnu.org/licenses/>.
 #
-# Copyright 1997-2014  Leibniz Universitaet Hannover
+# Copyright 1997-2017  Leibniz Universitaet Hannover
 #--------------------------------------------------------------------------------#
 #
Index: palm/trunk/SCRIPTS/palmrun
===================================================================
--- palm/trunk/SCRIPTS/palmrun	(revision 2693)
+++ palm/trunk/SCRIPTS/palmrun	(revision 2696)
@@ -4,5 +4,5 @@
 
 #--------------------------------------------------------------------------------#
-# This file is part of PALM.
+# This file is part of the PALM model system.
 #
 # PALM is free software: you can redistribute it and/or modify it under the terms
@@ -17,5 +17,5 @@
 # PALM. If not, see <http://www.gnu.org/licenses/>.
 #
-# Copyright 2017  Leibniz Universitaet Hannover
+# Copyright 2017-2017  Leibniz Universitaet Hannover
 #--------------------------------------------------------------------------------#
 #
Index: palm/trunk/SCRIPTS/palmrungui
===================================================================
--- palm/trunk/SCRIPTS/palmrungui	(revision 2693)
+++ palm/trunk/SCRIPTS/palmrungui	(revision 2696)
@@ -2,5 +2,5 @@
 
 #--------------------------------------------------------------------------------#
-# This file is part of PALM.
+# This file is part of the PALM model system.
 #
 # PALM is free software: you can redistribute it and/or modify it under the terms
@@ -15,5 +15,5 @@
 # PALM. If not, see <http://www.gnu.org/licenses/>.
 #
-# Copyright 1997-2014  Leibniz Universitaet Hannover
+# Copyright 1997-2017  Leibniz Universitaet Hannover
 #--------------------------------------------------------------------------------#
 #
Index: palm/trunk/SCRIPTS/palmrungui.py
===================================================================
--- palm/trunk/SCRIPTS/palmrungui.py	(revision 2693)
+++ palm/trunk/SCRIPTS/palmrungui.py	(revision 2696)
@@ -2,5 +2,5 @@
 # -*- coding: utf-8 -*-
 #--------------------------------------------------------------------------------#
-# This file is part of PALM.
+# This file is part of the PALM model system.
 #
 # PALM is free software: you can redistribute it and/or modify it under the terms
Index: palm/trunk/SCRIPTS/palmtest
===================================================================
--- palm/trunk/SCRIPTS/palmtest	(revision 2693)
+++ palm/trunk/SCRIPTS/palmtest	(revision 2696)
@@ -2,5 +2,5 @@
 
 #--------------------------------------------------------------------------------#
-# This file is part of PALM.
+# This file is part of the PALM model system.
 #
 # PALM is free software: you can redistribute it and/or modify it under the terms
@@ -15,5 +15,5 @@
 # PALM. If not, see <http://www.gnu.org/licenses/>.
 #
-# Copyright 1997-2017  Leibniz Universitaet Hannover
+# Copyright 2017-2017  Leibniz Universitaet Hannover
 #--------------------------------------------------------------------------------#
 #
Index: palm/trunk/SCRIPTS/process_dvr_output
===================================================================
--- palm/trunk/SCRIPTS/process_dvr_output	(revision 2693)
+++ palm/trunk/SCRIPTS/process_dvr_output	(revision 2696)
@@ -1,5 +1,5 @@
 #!/bin/ksh
 #--------------------------------------------------------------------------------#
-# This file is part of PALM.
+# This file is part of the PALM model system.
 #
 # PALM is free software: you can redistribute it and/or modify it under the terms
@@ -14,5 +14,5 @@
 # PALM. If not, see <http://www.gnu.org/licenses/>.
 #
-# Copyright 1997-2014  Leibniz Universitaet Hannover
+# Copyright 1997-2017  Leibniz Universitaet Hannover
 #--------------------------------------------------------------------------------#
 #
Index: palm/trunk/SCRIPTS/release_tutorial
===================================================================
--- palm/trunk/SCRIPTS/release_tutorial	(revision 2693)
+++ palm/trunk/SCRIPTS/release_tutorial	(revision 2696)
@@ -1,5 +1,5 @@
 #!/bin/bash
 #--------------------------------------------------------------------------------#
-# This file is part of PALM.
+# This file is part of the PALM model system.
 #
 # PALM is free software: you can redistribute it and/or modify it under the terms
@@ -14,5 +14,5 @@
 # PALM. If not, see <http://www.gnu.org/licenses/>.
 #
-# Copyright 1997-2014  Leibniz Universitaet Hannover
+# Copyright 1997-2017  Leibniz Universitaet Hannover
 #--------------------------------------------------------------------------------#
 #
Index: palm/trunk/SCRIPTS/subjob
===================================================================
--- palm/trunk/SCRIPTS/subjob	(revision 2693)
+++ 	(revision )
@@ -1,1771 +1,0 @@
-#!/bin/bash
-
-# subjob - script for automatic generation and submission of batch-job files
-#          for various batch queuing systems
-
-#--------------------------------------------------------------------------------#
-# This file is part of PALM.
-#
-# PALM is free software: you can redistribute it and/or modify it under the terms
-# of the GNU General Public License as published by the Free Software Foundation,
-# either version 3 of the License, or (at your option) any later version.
-#
-# PALM is distributed in the hope that it will be useful, but WITHOUT ANY
-# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
-# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License along with
-# PALM. If not, see <http://www.gnu.org/licenses/>.
-#
-# Copyright 1997-2014  Leibniz Universitaet Hannover
-#--------------------------------------------------------------------------------#
-#
-# Current revisions:
-# ------------------
-# 
-# 
-# Former revisions:
-# -----------------
-# $Id$
-# Added lckea & lckeam. KIT/IMK-IFU Garmisch cluster. LRZ (SadiqHuq)
-# 
-# 2295 2017-06-27 14:25:52Z raasch
-# adjustments for using lcgeohu (cirrus @ HUB)
-# 
-# 2266 2017-06-09 09:27:21Z raasch
-# nech related parts removed
-# 
-# 2257 2017-06-07 14:07:05Z witha
-# adjustments for lceddy, removed lcflow-specific code
-# 
-# 2188 2017-03-21 06:42:42Z raasch
-#
-# 2187 2017-03-21 06:41:25Z raasch
-# adjustment of compute node names for lckyuh
-#
-# 2184 2017-03-21 04:31:22Z raasch
-# bugfix: localhost renamed local_host
-#
-# 2148 2017-02-09 16:56:42Z scharf
-# added kuma and gharbi to the list of known hosts
-# 
-# 2134 2017-02-02 07:33:46Z raasch
-# option -E added to msub commands on HLRN-III machines to allow output of more
-# job informations in the job protocol files
-#
-# 1944 2016-06-15 06:29:00Z raasch
-# adjustments for using HLRN ssh-keys
-#
-# 1940 2016-06-14 05:15:20Z raasch
-# adjustments for lckiaps
-#
-# 1866 2016-04-15 06:50:59Z raasch
-# adjusted for lcocean
-#
-# 1841 2016-04-07 19:14:06Z raasch
-# script now running under bash
-# 
-# 1701 2015-11-02 07:43:04Z maronga
-# Bugfix: added missing init_cmds for lccrayh/lccrayb
-# 
-# 1621 2015-07-17 11:39:33Z heinze
-# adjustments for Mistral at DKRZ Hamburg (lcbullhh)
-#
-# 1575 2015-03-27 09:56:27Z raasch
-# mpp2-queues added to lccrayh
-#
-# 1547 2015-01-29 15:09:12Z witha
-# adjustments for ForWind computing cluster (lcflow)
-# 
-# 1545 2015-01-29 06:52:23Z heinze
-# local host name for blizzard further specified
-#
-# 1480 2014-10-17 14:41:49Z raasch
-# adjustments for 2nd stage of HLRNIII
-#
-# 1468 2014-09-24 14:06:57Z maronga
-# Typo removed (addres->address)
-# Adjustments for lcxe6
-# 
-# 1452 2014-08-22 09:41:06Z heinze
-# local hosts for blizzard added
-# 
-# 1450 2014-08-21 07:31:51Z heinze
-# HLRN-III (lccrayb): testq queue adjusted to mpp1testq
-# 
-# 1442 2014-07-28 07:09:10Z raasch
-# HLRN-III (lccrayb/lccrayh) queues adjusted
-#
-# 1378 2014-04-28 06:04:58Z raasch
-# -et option added for lctit
-#
-# 1350 2014-04-04 13:01:30Z maronga
-# location of qsub updated for lcxe6
-#
-# 1289 2014-03-04 07:12:34Z raasch
-# German comments translated to English
-# fimm-, necriam-, scirocco-, ibmy-, and sgi-specific code removed
-#
-# 1279 2014-01-28 12:10:14Z raasch
-# node calculation modified due to changes in mrun (tasks_per_node must not be
-# an integral divisor of numprocs any more)
-#
-# 1274 2014-01-09 13:14:54Z heinze
-# adjustments for lccrayh
-#
-# 1266 2013-12-11 12:07:34Z heinze
-# further adjustments for lccrayb (use msub instead of qsub)
-#
-# 1264 2013-12-09 12:46:09Z fricke
-# Bugfix: Using number of nodes instead of number of processors (lccrayb)
-#
-# 1262 2013-12-09 10:57:20Z fricke
-# further adjustments for lccrayb
-#
-# 1260 2013-12-04 12:48:04Z raasch
-# jaboticaba admitted
-#
-# 1255 2013-11-07 14:43:35Z raasch
-# further adjustments for lccrayb
-#
-# 1224 2013-09-16 07:27:23Z raasch
-# first adjustments for lccrayb
-#
-# 1202 2013-07-10 16:22:07Z witha
-# adjustments for Forwind cluster (lcflow)
-#
-# 1199 2013-07-05 14:52:22Z raasch
-# adjustments for CSC Helsinki (lccrayf)
-#
-# use of cluster/express queue enabled (ibmh)
-# vinessa added (imuk)
-#
-# 1103 2013-02-20 02:15:53Z raasch
-# bash compatibility adjustments (usage of OPTIND, output formatting with printf
-# instead typeset -L/R),
-# further adjustments for lckyuh
-#
-# 2013-02-10 01:47:43Z raasch
-# adjustments for Kyushu-Univeristy computing center (lckyuh - hayaka)
-# and for Forwind cluster (lcflow)
-#
-# 1094 2013-02-03 01:52:12Z raasch
-# new option -P for explicit setting of ssh/scp port,
-# decalpha parts (yonsei) removed
-#
-# 2013-02-02 07:06:13Z raasch
-# adjustments for Kyushu-University computing center (lckyut - tatara)
-# old changelog messages removed
-#
-# 1046 2012-11-09 14:38:45Z maronga
-# code put under GPL (PALM 3.9)
-#
-# 08/07/94 - Siggi - first version finished
-# 29/06/94 - Siggi - script development started
-#--------------------------------------------------------------------------------#
-# subjob - script for automatic generation and submission of batch-job files
-#          for various batch queuing systems
-#--------------------------------------------------------------------------------#
-
-
-    # VARIABLE-DECLARATIONS AND DEFAULT VALUES
- delete_dayfile=false
- email_notification=none
- group_number=none
- locat=normal
- no_default_queue=none
- no_submit=false
- job_catalog="~/job_queue"
- job_name=none
- local_user=$LOGNAME
- node_usage=shared
- numprocs=0
- punkte="..........................................................."
- submcom=qsub
- queue=default
- remote_host=none
- remote_user=""
- verify=true
-
- typeset  -i   cputime=0  memory=0  Memory=0  minuten  resttime  sekunden  stunden
- typeset  -i   numprocs  mpi_tasks=0  nodes=0  processes_per_node=0 tasks_per_node=0  threads_per_task=1
-
-
-
-    # ERROR HANDLING
-    # IN CASE OF EXIT:
- trap 'if [[ $locat != normal ]]
-       then
-          case  $locat  in
-             (option)  printf "\n  --> available optios can be displayed"
-                       printf " by typing:"
-                       printf "\n      \"subjob ?\" \n";;
-             (ftpcopy|parameter|scp|verify)  printf "\n";;
-             (*)       printf "\n  +++ unknown error"
-                       printf "\n      please inform S. Raasch!\n"
-          esac
-          [[ -f $job_to_send ]]  &&  rm  $job_to_send
-          printf "\n\n+++ SUBJOB killed \n\n"
-       fi' exit
-
-
-    # IN CASE OF TERMINAL-BREAK:
- trap '[[ -f $job_to_send ]]  &&  rm  $job_to_send
-       printf "\n\n+++ SUBJOB killed \n\n"
-       exit
-      ' 2
-
-
-    # DETERMINE NAME OF LOCAL HOST
- local_host=$(hostname)
-
-    # SET HOST-SPECIFIC VARIABLES VEREINBAREN (CHECK, IF LOCAL HOST
-    # IS ADMITTED AT ALL)
-    # NOTE: ONE OF THE ENTRIES FOR "lck" OR "lckordi" ALWAYS HAS TO BE
-    # COMMENT OUT, BECAUSE THE HOSTNAME (node*) IS SAME FOR BOTH MACHINES
- case  $local_host  in
-     (ambiel-lx)             local_address=134.106.74.48;  local_host=lcfor;;
-     (atmos)                 local_address=172.20.25.35;   local_host=lcide;;
-     (austru)                local_address=130.75.105.128; local_host=lcmuk;;
-     (autan)                 local_address=130.75.105.57;  local_host=lcmuk;;
-     (bora)                  local_address=130.75.105.103; local_host=lcmuk;;
-     (a0*|b0*)               local_address=133.5.4.33;     local_host=lckyuh;;
-     (blizzard1|p0*|p1*|p2*|p3*|p4*|p5*|p6*|p7*|p8*|p9*)   local_address=136.172.40.15;  local_host=ibmh;;
-     (blizzard2|p0*|p1*|p2*|p3*|p4*|p5*|p6*|p7*|p8*|p9*)   local_address=136.172.40.16;  local_host=ibmh;;
-     (blogin*|bxc*)          local_address=130.73.233.1;   local_host=lccrayb;;
-     (hlogin*|hxc*)          local_address=130.75.4.1;     local_host=lccrayh;;
-     (breva)                 local_address=130.75.105.98;  local_host=lcmuk;;
-     (buran)                 local_address=130.75.105.58;  local_host=lcmuk;;
-     (caurus)                local_address=130.75.105.19;  local_host=lcmuk;;
-     (climate*)              local_address=165.132.26.68;  local_host=lcyon;;
-     (clogin*)               local_address=86.50.166.21;   local_host=lccrayf;;
-     (elephanta)             local_address=130.75.105.6;   local_host=lcmuk;;
-     (hpcl*)		     local_address=eddy.hpc.uni-oldenburg.de; local_host=lceddy;;
-     (cfd*)		     local_address=eddy.hpc.uni-oldenburg.de; local_host=lceddy;;
-     (node*)                 local_address=165.132.26.61   local_host=lck;;
-   #  (node*)                 local_address=210.219.61.8    local_host=lckordi;;
-     (gaia*)                 local_address=150.183.146.24; local_host=ibmkisti;;
-     (gharbi)                local_address=130.75.105.47;  local_host=lcmuk;;
-     (gallego)               local_address=130.75.105.10;  local_host=lcmuk;;
-     (gregale)               local_address=130.75.105.109; local_host=lcmuk;;
-     (hababai)               local_address=130.75.105.108; local_host=lcmuk;;
-     (hayaka*)               local_address=133.5.4.33;     local_host=lckyuh;;
-     (hexagon.bccs.uib.no)   local_address=129.177.20.113; local_host=lcxe6;;
-     (hx*)                   local_address=133.3.51.11;    local_host=lckyoto;;
-     (inferno)               local_address=130.75.105.5;   local_host=lcmuk;;
-     (irifi)                 local_address=130.75.105.104; local_host=lcmuk;;
-   # (i*)                    local_address=129.187.11.197; local_host=ibmmuc;;
-     (jaboticaba)            local_address=150.163.25.181; local_host=lcbr;;
-     (kea*)                  local_address=172.27.80.109;  local_host=lckeal;;
-     (sno)                   local_address=130.75.105.113; local_host=lcmuk;;
-     (kuma)                  local_address=130.75.105.115; local_host=lcmuk;;
-     (levanto)               local_address=130.75.105.45;  local_host=lcmuk;;
-     (login*)                local_address=118.128.66.201; local_host=lckiaps;;
-   # (login*)                local_address=129.187.11.197; local_host=ibmmuc;;
-     (lm*)                   local_address=129.187.11.197; local_host=ibmmuc;;
-     (lx*)                   local_address=129.187.20.240; local_host=lclrz;;
-     (mpp2*)                 local_address=129.187.20.105; local_host=lclrz;;
-     (maestro)               local_address=130.75.105.2;   local_host=lcmuk;;
-     (meller)                local_address=134.106.74.155; local_host=lcfor;;
-     (meteo-login*)          local_address=193.166.211.144;local_host=lcxt5m;;
-     (mlogin1*|m1*)          local_address=136.172.50.13;  local_host=lcbullhh;;
-     (hexagon*)		     local_address=129.177.20.113; local_host=lcxe6;;
-     (nobel*)                local_address=150.183.5.101;  local_host=ibms;;
-     (ocean)                 local_address="ocean";        local_host=lcocean;; 
-     (orkan)                 local_address=130.75.105.3;   local_host=lcmuk;;
-     (ostria)                local_address=130.75.105.106; local_host=lcmuk;;
-     (paesano)               local_address=130.75.105.46;  local_host=lcmuk;;
-     (pcj*)                  local_address=172.31.120.1;   local_host=lckyut;;
-     (pingui)                local_address=134.106.74.118; local_host=lcfor;;
-     (quanero)               local_address=130.75.105.107; local_host=lcmuk;;
-     (rte*)                  local_address=133.5.185.60;   local_host=lcrte;;
-     (schultzl-Latitude-E6540)  local_address="schultzl-Latitude-E6540"; local_host=lcsch;;
-     (shiokaze-lx)           local_address=134.106.74.123; local_host=lcfor;;
-     (sisu-login*)           local_address=86.50.166.21;   local_host=lccrayf;;
-     (solano)                local_address=130.75.105.110; local_host=lcmuk;;
-     (sugoka*)               local_address=172.31.120.1;   local_host=lckyut;;
-     (tc*)                   local_address="ocean";        local_host=lcocean;; 
-     (t2a*)                  local_address=10.1.6.165;     local_host=lctit;;
-     (uc1n*)                 local_address=129.13.82.89;   local_host=lcbwuni;;
-     (urban*)                local_address=147.46.30.151   local_host=lcsb;;
-     (vinessa)               local_address=130.75.105.112; local_host=lcmuk;;
-     (vorias)                local_address=172.20.25.43;   local_host=lcmuk;;
-     (*.cc.kyushu-u.ac.jp)   local_address=133.5.4.129;    local_host=ibmku;;
-     (*.cluster)             local_address=192.168.1.254;  local_host=lcgeohu;;
-     (*)                     printf "\n  +++ \"$local_host\" unknown";
-                             printf "\n      please contact the PALM group at IMUK";
-                             locat=parameter; exit;;
- esac
-
-
-
-    # BY DEFAULT, THE REMOTE HOST IS THE LOCAL HOST
- remote_host=$local_host
-
-
-
-
-    # READ THE SHELLSCRIPT-OPTIONS
- while  getopts  :c:dDe:g:h:m:n:N:O:P:q:t:T:u:vX:  option
- do
-   case  $option  in
-       (c)   job_catalog=$OPTARG;;
-       (d)   delete_dayfile=true;;
-       (D)   no_submit=true;;
-       (e)   email_notification=$OPTARG;;
-       (g)   group_number=$OPTARG;;
-       (h)   remote_host=$OPTARG;;
-       (m)   memory=$OPTARG;;
-       (n)   job_name=$OPTARG;;
-       (N)   node_usage=$OPTARG;;
-       (O)   threads_per_task=$OPTARG;;
-       (P)   scp_port=$OPTARG;;
-       (q)   no_default_queue=$OPTARG;;
-       (t)   cputime=$OPTARG;;
-       (T)   tasks_per_node=$OPTARG;;
-       (u)   remote_user=$OPTARG;;
-       (v)   verify=false;;
-       (X)   numprocs=$OPTARG;;
-       (\?)  printf "\n  +++ Option $OPTARG unknown \n";
-             locat=option; exit;;
-   esac
- done
-
-
-    # GET THE NAME OF THE JOBFILE AS NEXT ARGUMENT
- (( to_shift = $OPTIND - 1 ))
- shift $to_shift; file_to_send=$1
-
-
-    # OUTPUT OF SHORT DESCRIPTION OF SCRIPT-OPTIONS
- if [ "$1" = "?" ]
- then
-   (printf "\n  *** subjob can be called as follows:\n"
-    printf "\n      subjob -c.. -d -D -h.. -m.. -q.. -t.. -u.. -v  <jobfile>\n"
-    printf "\n      Description of available options:\n"
-    printf "\n      Option  Description                         Default-Value"
-    printf "\n        -c    job-input- and output-catalog       ~/job_queue"
-    printf "\n        -d    no job-protocol will be created     ---"
-    printf "\n        -D    only the job-file will be created   ---"
-    printf "\n        -h    execution host, available hosts:    $remote_host"
-    printf "\n              ibm, ibmh, ibmkisti, ibmku, ibms, lc...,"
-    printf "\n              lckiaps, lctit"
-    printf "\n        -m    memory demand per process in MByte  ---"
-    printf "\n        -n    jobname                             <jobdatei>"
-    printf "\n        -O    threads per task (for OpenMP usage) 1"
-    printf "\n        -P    ssh/scp port                        default port"
-    printf "\n        -q    job-queue to be used                default"
-    printf "\n        -t    allowed cpu-time in seconds         ---"
-    printf "\n        -T    tasks per node (on parallel hosts)  ---"
-    printf "\n        -u    username on execution host          from .netrc"
-    printf "\n        -v    no prompt for confirmation          ---"
-    printf "\n        -X    # of processors (on parallel hosts) 1"
-    printf "\n "
-    printf "\n      The only possible positional parameter is <jobfile>:"
-    printf "\n      The complete NQS-job must be provided here."
-    printf "\n      <jobfile>=? creates this outline\n\n") | more
-    exit
- fi
-
-
-
-    # CHECK, IF JOB-FILE HAS BEEN GIVEN AS ARGUMENT AND IF THE FILE ITSELF EXISTS
- if [[ "$file_to_send" = "" ]]
- then
-    printf "\n  +++ job-file missing"
-    locat=parameter; exit
- else
-    if [[ -f $file_to_send ]]
-    then
-       true
-    else
-       printf "\n  +++ job-file: "
-       printf "\n           $file_to_send"
-       printf "\n      does not exist"
-       locat=parameter; exit
-    fi
- fi
-
-
-
-    # IF NO JOBNAME HAS BEEN GIVEN, JOBNAME IS SET TO THE NAME OF THE JOB-FILE,
-    # PROVIDED THAT THE JOB-FILE NAME DOES NOT CONTAIN ANY PATH
- if [[ $job_name = none ]]
- then
-    job_name=$file_to_send
- fi
- if [[ $(echo $job_name | grep -c "/") != 0 ]]
- then
-    printf "\n  +++ job-file name: "
-    printf "\n           $job_name"
-    printf "\n      must not contain \"/\"-characters"
-    locat=parameter; exit
- fi
-
-
-
-
-    # SET HOST-SPECIFIC QUANTITIES, OR TERMINATE IN CASE OF UNKNOWN HOST,
-    # OR IF NO HOST HAS BEEN GIVEN
- if [[ $remote_host = none ]]
- then
-    printf "\n  +++ host missing"
-    locat=option; exit
- else
-    case  $remote_host  in
-        (ibm)     queue=p690_standard; remote_address=134.76.99.81; submcom=/usr/lpp/LoadL/full/bin/llsubmit;;
-        (ibmh)    queue=cluster; remote_address=136.172.40.15; submcom=/usr/lpp/LoadL/full/bin/llsubmit;;
-        (ibmkisti) queue=class.32plus; remote_address=150.183.146.24; submcom=/usr/lpp/LoadL/full/bin/llsubmit;;
-        (ibmku)   queue=s4; remote_address=133.5.4.129; submcom=/usr/local/bin/llsubmit;;
-        (ibms)    queue=p_normal; remote_address=150.183.5.101; submcom=/usr/lpp/LoadL/full/bin/llsubmit;;
-        (ibmmuc)  remote_address=129.187.11.197; submcom=/usr/bin/llsubmit;;
-        (lcbwuni) queue=develop; remote_address=129.13.82.89; submcom=/opt/moab/bin/msub;;
-        (lcbullhh)    queue=compute; remote_address=136.172.50.13; submcom=/usr/bin/sbatch;;
-        (lccrayb) queue=mpp1testq; remote_address=130.73.233.1; submcom="/opt/moab/default/bin/msub -E";;
-        (lccrayh) queue=mpp1testq; remote_address=130.75.4.1; submcom="/opt/moab/default/bin/msub -E";;
-        (lccrayf) queue=small; remote_address=86.50.166.21; submcom=/opt/slurm/default/bin/sbatch;;
-        (lceddy)  remote_address=eddy.hpc.uni-oldenburg.de; submcom=sbatch;;
-        (lcgeohu) remote_address=cirrus.geo.hu-berlin.de; submcom=sbatch;;
-        (lckyoto) remote_address=133.3.51.11; submcom=/thin/local/bin/qsub;;
-        (lck)     remote_address=165.132.26.61; submcom=/usr/torque/bin/qsub;;
-        (lckeal)  queue=ivy; remote_address=172.27.80.109; submcom=/usr/bin/sbatch;;
-        (lckiaps) remote_address=118.128.66.201; submcom=/opt/pbs/default/bin/qsub;;
-        (lckordi) remote_address=210.219.61.8; submcom=/usr/torque/bin/qsub;;
-        (lckyuh)  remote_address=133.5.4.33; submcom=/usr/bin/pjsub;;
-        (lckyut)  remote_address=133.5.4.37; submcom=/usr/bin/pjsub;;
-        (lclrz)   remote_address=129.187.20.240; submcom=/usr/bin/sbatch;;
-        (lcocean) remote_address="ocean"; submcom=qsub;;
-        (lcsb)    remote_address=147.46.30.151; submcom=/usr/torque/bin/qsub;;
-        (lctit)   queue=S; remote_address=10.1.6.165; submcom=/opt/pbs/tools/bin/t2sub;;
-        (lcxe6)	  remote_address=129.177.20.113; submcom=/opt/torque/default/bin/qsub;;
-        (lcxt5m)  remote_address=193.166.211.144; submcom=/opt/pbs/10.1.0.91350/bin/qsub;;
-        (lcyon)   remote_address=165.132.26.68; submcom=/usr/torque/bin/qsub;;
-        (*)       printf "\n  +++ hostname \"$remote_host\" not allowed";
-                  locat=parameter; exit;;
-    esac
- fi
-
-
-    # CHECK, IF A VALID QUEUE HAS BEEN GIVEN
- if [[ $no_default_queue != none ]]
- then
-    error=false
-    ndq=$no_default_queue
-    case  $remote_host  in
-        (ibm)    case  $ndq  in
-                     (p690_express|p690_standard|p690_long)  error=false;;
-                     (*)                                     error=true;;
-                 esac;;
-        (ibmh)   case  $ndq  in
-                     (cluster|express)  error=false;;
-                     (*)                                     error=true;;
-                 esac;;
-        (ibmkisti)   case  $ndq  in
-                     (class.32plus|class.1-2|class.2-32)  error=false;;
-                     (*)                                     error=true;;
-                 esac;;
-        (ibmku)  case  $ndq  in
-                     (sdbg1|sdbg2|sdbg4|s4|s16|s32|s32-s)    error=false;;
-                     (*)                                     error=true;;
-                 esac;;
-        (ibms)   case  $ndq  in
-                     (express|normal|p_express|p_normal|p_normal_1.3|p_normal_1.7|grand)     error=false;;
-                     (*)                                     error=true;;
-                 esac;;
-        (ibmmuc*) case  $ndq  in
-                     (test|micro|general|large|fat|fattest|special|tmp1|tmp2) error=false;;
-                     (*)                                     error=true;;
-                 esac;;
-        (lcbullhh) case  $ndq  in
-                     (compute|compute2|shared)  error=false;;
-                     (*)                                     error=true;;
-                 esac;;
-        (lcbwuni) case  $ndq  in
-                     (develop|singlenode|multinode|verylong|fat) error=false;;
-                     (*)                                     error=true;;
-                 esac;;
-        (lccrayb) case  $ndq  in
-                     (dataq|mpp1q|mpp1testq|mpp2q|mpp2testq|smp1q|smp1testq|specialm1q)   error=false;;
-                     (*)                                     error=true;;
-                 esac;;
-        (lccrayh) case  $ndq  in
-                     (dataq|mpp1q|mpp1testq|mpp2q|mpp2testq|smp1q|smp1testq|specialm1q)   error=false;;
-                     (*)                                     error=true;;
-                 esac;;
-        (lccrayf) case  $ndq  in
-                     (usup|test*|small|large)                error=false;;
-                     (*)                                     error=true;;
-                 esac;;
-        (lceddy) case  $ndq  in
-                     (eddy.p|cfdh.p|cfdl.p|carl.p|mpcs.p|mpcl.p|mpcb.p|all_nodes.p)  error=false;;
-                     (*)                                     error=true;;
-                 esac;;
-        (lckiaps) case  $ndq  in
-                     (express|normal|normal20|quickq)        error=false;;
-                     (*)                                     error=true;;
-                 esac;;
-        (lckyoto) case  $ndq  in
-                     (eh|ph)                                 error=false;;
-                     (*)                                     error=true;;
-                 esac;;
-        (lckyuh) case  $ndq  in
-                     (fx-dbg|fx-single|fx-small|fx-middle|fx-large)  error=false;;
-                     (*)                                     error=true;;
-                 esac;;
-        (lckyut) case  $ndq  in
-                     (cx-dbg|cx-single|cx-small|cx-middle|cx-large)  error=false;;
-                     (*)                                     error=true;;
-                 esac;;
-        (lclrz) case  $ndq  in
-                     (mpp1|mpp2|iuv2|myri)                   error=false;;
-                     (*)                                     error=true;;
-                 esac;;
-        (lctit)  case  $ndq  in
-                     (G|L128|L256|L512H|S|S96|V)             error=false;;
-                     (*)                                     error=true;;
-                 esac;;
-        (t3eb)   case  $ndq  in
-                     (berte|p50|p100|p392|forfree|p25himem)  error=false;;
-                     (*)    error=true;;
-                 esac;;
-        (t3eh)   case  $ndq  in
-                     (para_t3e|em|k|l|lm|comp_t3e|c|p|ht)  error=false;;
-                     (*)    error=true;;
-                 esac;;
-        (t3ej2|t3ej5)  case  $ndq  in
-                     (low|normal|high)  error=false;;
-                     (*)    error=true;;
-                 esac;;
-        (t3es)  case  $ndq  in
-                     (batch|serial-4|pe4|p48|pe16|pe32|pe64|pe128)  error=false;;
-                     (*)    error=true;;
-                 esac;;
-    esac
-    if [[ $error = true ]]
-    then
-       printf "\n  +++ queue \"$no_default_queue\" on host \"$remote_host\" not allowed"
-       locat=parameter; exit
-    else
-       queue=$no_default_queue
-    fi
- fi
-
-
-
-    # CHECK THE CPU-TIME
-    # SPLIT TIME INTO HOURS, MINUTES, AND SECONDS
- done=false
- while [[ $done = false ]]
- do
-    if (( $cputime <= 0 ))
-    then
-       printf "\n  +++ wrong cpu-time or cpu-time missing"
-       printf "\n  >>> Please type cpu-time in seconds as INTEGER:"
-       printf "\n  >>> "
-       read  cputime  1>/dev/null  2>&1
-    else
-       done=true
-    fi
- done
- (( stunden  = cputime / 3600 ))
- (( resttime = cputime - stunden * 3600 ))
- (( minuten  = resttime / 60 ))
- (( sekunden = resttime - minuten * 60 ))
- timestring=${stunden}:${minuten}:${sekunden}
-
-
-
-    # CHECK THE MEMORY DEMAND
- done=false
- while [[ $done = false ]]
- do
-    if (( memory <= 0 ))
-    then
-       printf "\n  +++ wrong memory demand or memory demand missing"
-       printf "\n  >>> Please type memory in  MByte per process  as INTEGER:"
-       printf "\n  >>> "
-       read  memory  1>/dev/null  2>&1
-    else
-       done=true
-    fi
- done
-
- if [[ $remote_host = lctit ]]
- then
-    (( Memory = memory * tasks_per_node / 1000 ))
- fi
-
-
-    # MEMORY DEMAND IN CASE OF OPENMP-USAGE ON IBM-SYSTEMS
- if [[ $(echo $remote_host | cut -c1-3) = ibm ]]
- then
-    (( memory = memory * threads_per_task ))
- fi
-
-
-    # CALCULATE NUMBER OF REQUIRED NODES
- if (( tasks_per_node != 0 ))
- then
-    (( nodes = ( numprocs - 1 ) / ( tasks_per_node * threads_per_task ) + 1 ))
- fi
-
-
-    # CALCULATE NUMBER OF PROCESSES PER NODE
- (( processes_per_node = tasks_per_node * threads_per_task ))
-
-
-    # CALCULATE NUMBER OF MPI TASKS
- (( mpi_tasks = numprocs / threads_per_task ))
-
-
-    # SET PORT NUMBER OPTION FOR CALLS OF ssh/scp, subjob AND batch_scp SCRIPTS
- if [[ "$scp_port" != "" ]]
- then
-    PORTOPT="-P $scp_port"
-    SSH_PORTOPT="-p $scp_port"
- fi
-
-
-    # HEADER-OUTPUT
- if [[ $verify = true ]]
- then
-    printf "\n\n"
-    printf "#--------------------------------------------------------------# \n"
-    spalte1=SUBJOB;spalte2=$(date)
-    printf "| %-20s%40s | \n" "$spalte1" "$spalte2"
-    printf "|                                                              | \n"
-    printf "| values of parameters/options:                                | \n"
-    spalte1=$(echo local_host$punkte | cut -c-20)
-    spalte2=$punkte$local_host
-    printf "| %-20s%40s | \n" "$spalte1" "${spalte2: -40}"
-    spalte1=$(echo remote_host$punkte | cut -c-20)
-    spalte2=$punkte$remote_host
-    printf "| %-20s%40s | \n" "$spalte1" "${spalte2: -40}"
-    spalte1=$(echo queue$punkte | cut -c-20)
-    spalte2=$punkte$queue
-    printf "| %-20s%40s | \n" "$spalte1" "${spalte2: -40}"
-    spalte1=$(echo memory$punkte | cut -c-20)
-    spalte2="$punkte$memory mb"
-    printf "| %-20s%40s | \n" "$spalte1" "${spalte2: -40}"
-    spalte1=$(echo cputime$punkte | cut -c-20)
-    spalte2="$punkte$cputime sec"
-    printf "| %-20s%40s | \n" "$spalte1" "${spalte2: -40}"
-    spalte1=$(echo job_name$punkte | cut -c-20)
-    spalte2="$punkte$job_name"
-    printf "| %-20s%40s | \n" "$spalte1" "${spalte2: -40}"
-    printf "#--------------------------------------------------------------# \n\n"
-
-
-       # QUERY CHECK
-    antwort="dummy"
-    while [[ $antwort != y  &&  $antwort != Y  &&  $antwort != n  &&  $antwort != N ]]
-    do
-       read antwort?" >>> continue (y/n) ? "
-    done
-    if [[ $antwort = n  ||  $antwort = N ]]
-    then
-       locat=verify; exit
-    fi
-    printf "\n"
- fi
-
-    # GENERATE RANDOM IDENTIFIER, AND DETERMINE THE JOBNAME ON THE TARGET HOST
- identifier=$RANDOM
- job_on_remhost=${job_name}_${identifier}_$local_host
- job_to_send=job_to_send_$identifier
- if [[ $delete_dayfile = false ]]
- then
-    remote_dayfile=${local_host}_${job_name}_result_$identifier
-    local_dayfile=${remote_host}_${job_name}
- else
-    remote_dayfile=/dev/null
- fi
-
-
-    # GENERATE THE BATCH-JOB SCRIPTS (FOR QUEUEING-SYSTEMS qsub/msub/LoadLeveler)
- if [[ $(echo $remote_host | cut -c1-3) = ibm  &&  $numprocs != 0 ]]
- then
-
-       # GENERAL LOADLEVELER SETTINGS
-    execute_in_shell="#!/bin/ksh"
-    use_shell="# @ shell = /bin/ksh"
-    consumable_memory="ConsumableMemory($memory mb)"
-    class="# @ class = $queue"
-    environment="# @ environment = OMP_NUM_THREADS=$threads_per_task; MP_SHARED_MEMORY=yes"
-    network_to_use="# @ network.mpi = sn_all,shared,us"
-    data_limit="# @ data_limit = 1.76gb"
-    image_size="# @ image_size = 50"
-    wall_clock_limit="# @ wall_clock_limit = ${timestring},$timestring"
-
-    if [[ $email_notification = none ]]
-    then
-       notify_user=""
-    else
-       notify_user="# @ notify_user = $email_notification"
-       if [[ $delete_dayfile = true ]]
-       then
-          notification='# @ notification = never'
-       fi
-    fi
-
-    if [[ $remote_host = ibmh ]]
-    then
-       data_limit=""
-       network_to_use=""
-       class="# @ class = $queue"
-       environment=""
-       rset="# @ rset = RSET_MCM_AFFINITY"
-       task_affinity="# @ task_affinity = core(1)"
-    elif [[ $remote_host = ibmkisti ]]
-    then
-       network_to_use="# @ network.MPI = sn_all,shared,US"
-       wall_clock_limit="# @ wall_clock_limit = $timestring"
-       if [[ $threads_per_task = 1 ]]
-       then
-          rset="# @ rset = RSET_MCM_AFFINITY"
-          mcm_affinity_options="# @ mcm_affinity_options = mcm_mem_pref mcm_sni_none mcm_distribute"
-       fi
-       environment=""
-       use_shell=""
-       data_limit=""
-       image_size=""
-    elif [[ $remote_host = ibmku ]]
-    then
-       execute_in_shell="#!/usr/bin/ksh"
-       use_shell="# @ shell = /usr/bin/ksh"
-       consumable_memory=""
-       environment=""
-       network_to_use="# @ network.mpi = sn_all,shared,us"
-       data_limit=""
-       image_size=""
-    elif [[ $remote_host = ibms ]]
-    then
-       network_to_use="# @ network.mpi = csss,shared,us"
-    fi
-
-    cat > $job_to_send << %%END%%
-$execute_in_shell
-$use_shell
-
-# @ job_type = parallel
-# @ job_name = $job_name
-# @ resources = ConsumableCpus($threads_per_task) $consumable_memory
-# @ output = $remote_dayfile
-# @ error = $remote_dayfile
-$wall_clock_limit
-$image_size
-$class
-$environment
-$network_to_use
-$data_limit
-$rset
-$mcm_affinity_options
-$task_affinity
-$notification
-$notify_user
-
-%%END%%
-
-    if (( nodes > 0 ))
-    then
-
-       if [[ $remote_host == ibmmuc* ]]
-       then
-       cat > $job_to_send << %%END%%
-
-#!/bin/bash
-# @ job_type = parallel
-# @ job_name = $job_name
-# @ output = $remote_dayfile
-# @ error = $remote_dayfile
-# @ wall_clock_limit = $timestring
-$class
-$mcm_affinity_options
-$task_affinity
-$notify_user
-# @ network.MPI = sn_all,not_shared,us
-# @ notification = always
-# @ energy_policy_tag = table_kit_ifu
-# @ minimize_time_to_solution = yes
-# @ node = $nodes
-# @ total_tasks = $numprocs
-# @ node_topology = island
-# @ island_count = 1,2
-# @ environment = LD_LIBRARY_PATH=/lrz/sys/libraries/netcdf/4.2.1.1_impi4/lib:/lrz/sys/libraries/hdf5/1.8.15/ibmmpi/lib:/lrz/sys/libraries/fftw/3.3.3/avx/lib/
-# @ queue
-
-%%END%%
-
-       elif [[ $remote_host != ibmkisti ]]
-       then
-
-          cat >> $job_to_send << %%END%%
-# @ node = $nodes
-# @ tasks_per_node = $processes_per_node
-# @ node_usage = $node_usage
-# @ queue
-
-%%END%%
-
-       else
-
-          cat >> $job_to_send << %%END%%
-# @ total_tasks = $mpi_tasks
-# @ blocking = unlimited
-# @ queue
-
-%%END%%
-
-       fi
-
-    else
-
-       cat >> $job_to_send << %%END%%
-# @ blocking = unlimited
-# @ total_tasks = $numprocs
-# @ node_usage = $node_usage
-# @ queue
-
-%%END%%
-
-    fi
-
-       # WORKAROUND BECAUSE OF SILLY JOB FILTER ON ibmkisti
-    if [[ $remote_host = ibmkisti  &&  $threads_per_task != 1 ]]
-    then
-       echo  "export OMP_NUM_THREADS=$threads_per_task"  >>  $job_to_send
-    fi
-
- elif [[ $(echo $remote_host | cut -c1-3) = ibm  &&  $numprocs = 0 ]]
- then
-
-    cat > $job_to_send << %%END%%
-#!/bin/ksh
-
-# @ job_type = serial
-# @ node_usage = $node_usage
-# @ job_name = palm
-# @ wall_clock_limit = ${timestring},$timestring
-# @ resources = ConsumableCpus(1) ConsumableMemory(1 gb)
-# @ output = $remote_dayfile
-# @ error = $remote_dayfile
-$class
-$notification
-
-# @ queue
-
-%%END%%
-
- elif [[ $remote_host = lcbullhh ]]
- then
-    if [[ $numprocs != 0 ]]
-    then
-       cat > $job_to_send << %%END%%
-#!/bin/bash -l
-#SBATCH -J $job_name
-#SBATCH -t $timestring
-#SBATCH -N $nodes
-#SBATCH --ntasks-per-node=$processes_per_node
-#SBATCH -p $queue
-#SBATCH -o $remote_dayfile
-#SBATCH -e $remote_dayfile
-#SBATCH -A $project_account
-
-$init_cmds
-$module_calls
-
-%%END%%
-
-    else
-       cat > $job_to_send << %%END%%
-#!/bin/bash -l
-#SBATCH -J $job_name
-#SBATCH -t $timestring
-#SBATCH -l ncpus=1
-#SBATCH -l pmem=${memory}mb
-#SBATCH -m abe
-#SBATCH -o $remote_dayfile
-#SBATCH -e $remote_dayfile
-#SBATCH -A $project_account
-
-$init_cmds
-$module_calls
-
-%%END%%
-
-    fi
-
- elif [[ $remote_host = lccrayb || $remote_host = lccrayh ]]
- then
-
-    if [[ "$feature" != "" ]]
-    then
-       featuredir="#PBS -l feature=$feature"
-    fi
-
-    if [[ $numprocs != 0 ]]
-    then
-       cat > $job_to_send << %%END%%
-#!/bin/bash
-#PBS -N $job_name
-#PBS -l walltime=$timestring
-#PBS -l nodes=$nodes:ppn=$processes_per_node
-#PBS -o $remote_dayfile
-#PBS -j oe
-#PBS -q $queue
-$featuredir
-
-$init_cmds
-$module_calls
-
-%%END%%
-
-    else
-
-       continue
-
-    fi
-
- elif [[ $remote_host = lccrayf ]]
- then
-
-    if [[ $numprocs != 0 ]]
-    then
-       cat > $job_to_send << %%END%%
-#!/bin/bash -l
-#SBATCH -J $job_name
-#SBATCH -t $timestring
-#SBATCH -N $nodes
-#SBATCH --ntasks-per-node=$processes_per_node
-#SBATCH -p $queue
-#SBATCH -o $remote_dayfile
-#SBATCH -e $remote_dayfile
-
-$init_cmds
-$module_calls
-
-%%END%%
-
-    else
-       cat > $job_to_send << %%END%%
-#!/bin/bash -l
-#SBATCH -J $job_name
-#SBATCH -t $timestring
-#SBATCH -l ncpus=1
-#SBATCH -l pmem=${memory}mb
-#SBATCH -m abe
-#SBATCH -o $remote_dayfile
-#SBATCH -e $remote_dayfile
-
-$init_cmds
-$module_calls
-
-%%END%%
-
-    fi
-
-
-
- elif [[ $remote_host = lceddy ]]
- then
-    cat > $job_to_send << %%END%%
-#!/bin/bash
-#SBATCH -J $job_name
-#SBATCH -t $timestring
-#SBATCH -n $numprocs
-#SBATCH -N $nodes
-#SBATCH --cpus-per-task 1
-#SBATCH -p $queue
-#SBATCH -o $remote_dayfile
-#SBATCH -e $remote_dayfile
-#SBATCH --mem-per-cpu $memory
-#SBATCH --exclusive
-
-module load PALMDependencies/.gcc
-
-$init_cmds
-$module_calls
-
-%%END%%
-
- elif [[ $remote_host = lck || $remote_host = lckordi || $remote_host = lcsb ]]
- then
-
-    if [[ $numprocs != 0 ]]
-    then
-       cat > $job_to_send << %%END%%
-#!/bin/ksh
-#PBS -N $job_name
-#PBS -l walltime=$timestring
-#PBS -l ncpus=$numprocs
-#PBS -l pmem=${memory}mb
-#PBS -o $remote_dayfile
-#PBS -l nodes=$nodes:ppn=${processes_per_node}
-#PBS -j oe
-
-mpd &
-
-%%END%%
-
-    else
-       cat > $job_to_send << %%END%%
-#!/bin/ksh
-#PBS -N $job_name
-#PBS -l walltime=$timestring
-#PBS -l ncpus=1
-#PBS -l pmem=${memory}mb
-#PBS -o $remote_dayfile
-#PBS -j oe
-
-%%END%%
-
-    fi
-
- elif [[ $remote_host = lcgeohu ]]
- then
-
-    if [[ $email_notification = none ]]
-    then
-       notify_user=""
-    else
-       notify_user="#SBATCH --mail-type=ALL"
-    fi
-
-    if [[ $numprocs != 0 ]]
-    then
-       cat > $job_to_send << %%END%%
-#!/bin/bash
-#SBATCH --job-name=$job_name
-#SBATCH --ntasks=$processes_per_node
-#SBATCH --time=$timestring
-#SBATCH --output=$remote_dayfile
-#SBATCH --error=$remote_dayfile
-#SBATCH --qos=short
-$notify_user
-
-$init_cmds
-$module_calls
-
-%%END%%
-
-    else
-       cat > $job_to_send << %%END%%
-#!/bin/bash
-#SBATCH --job-name=$job_name
-#SBATCH --ntasks=$processes_per_node
-#SBATCH --output=$remote_dayfile
-#SBATCH --error=$remote_dayfile
-#SBATCH -l ncpus=1
-
-$init_cmds
-$module_calls
-
-%%END%%
-
-    fi
-
- elif [[ $remote_host = lckiaps ]]
- then
-
-    if [[ $numprocs != 0 ]]
-    then
-       cat > $job_to_send << %%END%%
-#!/bin/bash
-#PBS -N $job_name
-#PBS -l walltime=$timestring
-#PBS -l select=1:ncpus=$numprocs
-#PBS -l pmem=${memory}mb
-#PBS -q $queue
-#PBS -o $remote_dayfile
-#PBS -j oe
-#PBS -V
-
-%%END%%
-
-    else
-       cat > $job_to_send << %%END%%
-#!/bin/bash
-#PBS -N $job_name
-#PBS -l walltime=$timestring
-#PBS -l ncpus=1
-#PBS -l pmem=${memory}mb
-#PBS -o $remote_dayfile
-#PBS -j oe
-
-%%END%%
-
-    fi
-
- elif [[ $remote_host = lcyon ]]
- then
-
-    if [[ $numprocs != 0 ]]
-    then
-       cat > $job_to_send << %%END%%
-#!/bin/ksh
-#PBS -N $job_name
-#PBS -l walltime=$timestring
-#PBS -l ncpus=$numprocs
-#PBS -l pmem=${memory}mb
-#PBS -o $remote_dayfile
-#PBS -j oe
-
-%%END%%
-
-    else
-       cat > $job_to_send << %%END%%
-#!/bin/ksh
-#PBS -N $job_name
-#PBS -l walltime=$timestring
-#PBS -l ncpus=1
-#PBS -l pmem=${memory}mb
-#PBS -o $remote_dayfile
-#PBS -j oe
-
-%%END%%
-
-    fi
-
- elif [[ $remote_host = lcxe6 ]]
- then
-
-    if [[ $numprocs != 0 ]]
-    then
-       cat > $job_to_send << %%END%%
-#!/bin/ksh
-#PBS -S /bin/ksh
-#PBS -N $job_name
-#PBS -A $project_account
-#PBS -j oe
-#PBS -l walltime=$timestring
-#PBS -l mppwidth=${numprocs}
-#PBS -l mppnppn=${processes_per_node}
-#PBS -m abe
-#PBS -o $remote_dayfile
-$email_directive
-
-$init_cmds
-$module_calls
-
-%%END%%
-
-    else
-       cat > $job_to_send << %%END%%
-#!/bin/ksh
-#PBS -S /bin/ksh
-#PBS -N $job_name
-#PBS -A $project_account
-#PBS -j oe
-#PBS -l walltime=$timestring
-#PBS -l ncpus=1
-#PBS -l pmem=${memory}mb
-#PBS -m abe
-$email_directive
-#PBS -o $remote_dayfile
-
-$init_cmds
-$module_calls
-
-%%END%%
-
-    fi
-
- elif [[ $remote_host = lckyoto ]]
- then
-
-       cat > $job_to_send << %%END%%
-#!/bin/ksh
-# @\$-o $remote_dayfile
-# @\$-eo -oi
-# @\$-lP 16
-# @\$-lp 1
-# @\$-lm 28gb  -llm unlimited -ls unlimited
-# @\$-q $queue
-# @\$-Pvn abs_pack
-##for intel? @\$-Pvn abs_unpack -Pvs unpack -Pvc unpack
-#. /thin/local/etc/setprofile/intel-11.0.sh
-#. /thin/local/etc/setprofile/mvapich2-1.4+intel-11.0.sh
-. ~/.myprofile
-#. /home2/t/t51254/palm/current_version/myprofile
-#. /thin/apps/pgi/mpi.sh
-#
-env
-#
-set -x
-
-%%END%%
-
- elif [[ $remote_host = lcxt5m ]]
- then
-
-    if [[ $numprocs != 0 ]]
-    then
-       cat > $job_to_send << %%END%%
-#!/bin/ksh
-#PBS -S /bin/ksh
-#PBS -N $job_name
-#PBS -j oe
-#PBS -l walltime=$timestring
-#PBS -l mppwidth=${numprocs}
-#PBS -l mppnppn=${processes_per_node}
-#PBS -m abe
-#PBS -o $remote_dayfile
-
-$init_cmds
-$module_calls
-
-%%END%%
-
-    else
-       cat > $job_to_send << %%END%%
-#!/bin/ksh
-#PBS -S /bin/ksh
-#PBS -N $job_name
-#PBS -j oe
-#PBS -l walltime=$timestring
-#PBS -l ncpus=1
-#PBS -l pmem=${memory}mb
-#PBS -m abe
-#PBS -o $remote_dayfile
-
-$init_cmds
-$module_calls
-
-%%END%%
-
-    fi
-
- elif [[ $remote_host = lckyuh ]]
- then
-    cat > $job_to_send << %%END%%
-#!/bin/bash
-#PJM -L "rscgrp=$queue"
-#PJM -L "node=$nodes"
-#PJM --mpi "proc=$numprocs"
-#PJM -L "elapse=$timestring"
-#PJM -o $remote_dayfile
-#PJM -j
-#PJM -X
-#PJM --no-stging
-
-export LANG=en_US.UTF-8
-%%END%%
-
- elif [[ $remote_host = lckyut ]]
- then
-    cat > $job_to_send << %%END%%
-#!/bin/bash
-#PJM -L "rscgrp=$queue"
-#PJM -L "vnode=$numprocs"
-#PJM -L "vnode-core=1"
-#PJM -L "elapse=$timestring"
-#PJM --mpi proc=$numprocs
-#PJM -o $remote_dayfile
-#PJM -j
-#PJM -X
-#PJM --no-stging
-
-export LANG=en_US.UTF-8
-%%END%%
-
- elif [[ $remote_host = lcocean ]]
- then
-   cat > $job_to_send << %%END%%
-#!/bin/bash
-#$ -cwd
-#$ -V 
-#$ -N $job_name
-#$ -pe orte $numprocs
-#$ -o $remote_dayfile
-#$ -j y
-#$ -R y
-$init_cmds
-$module_calls
-
-%%END%%
-
- elif [[ $remote_host = lctit ]]
- then
-    cat > $job_to_send << %%END%%
-#!/bin/ksh
-$init_cmds
-$module_calls
-
-%%END%%
-
-       # SET OPTIONS FOR SUBMIT-COMMAND
-    if [[ $tasks_per_node != $processes_per_node ]]
-    then
-       submcom="$submcom -W group_list=$group_number -N $job_name -l walltime=$timestring -l select=$nodes:ncpus=$processes_per_node:mpiprocs=$tasks_per_node:mem=${Memory}gb -o $remote_dayfile -j oe -et 1 -q $queue "
-    else
-       submcom="$submcom -W group_list=$group_number -N $job_name -l walltime=$timestring -l select=$nodes:ncpus=$processes_per_node:mpiprocs=$tasks_per_node:mem=${Memory}gb -l place=scatter -o $remote_dayfile -j oe -et 1 -q $queue "
-    fi
-
- elif [[ $remote_host = lclrz ]]
- then
-       cat > $job_to_send << %%END%%
-#!/bin/bash 
-#SBATCH -J $job_name
-#SBATCH -t $timestring
-#SBATCH -N $nodes
-#SBATCH --ntasks-per-node=$processes_per_node
-#SBATCH --get-user-env
-#SBATCH -o $remote_dayfile
-#SBATCH -e $remote_dayfile
-#SBATCH --mail-user=${email_notification}
-#SBATCH --clusters=$queue
-
-$init_cmds
-
-$module_calls
-
-%%END%%
-
- elif [[ $remote_host = lckea* ]]
- then
-       keal_tasks_per_core=1
-
-       if [[ $queue = haswell || $queue = ivy* ]]
-       then
-          if (( tasks_per_node > 20 ))
-          then
-             keal_tasks_per_core=2
-	  fi
-       fi
-
-       cat > $job_to_send << %%END%%
-#!/bin/bash 
-#SBATCH -J $job_name
-#SBATCH -t $timestring
-#SBATCH -N $nodes
-#SBATCH --ntasks-per-node=$processes_per_node
-#SBATCH --ntasks-per-core=$keal_tasks_per_core
-#SBATCH --mem-per-cpu=${memory}mb
-#SBATCH --get-user-env
-#SBATCH -o $remote_dayfile
-#SBATCH -e $remote_dayfile
-#SBATCH --mail-user=${email_notification}
-#SBATCH --mail-type=ALL
-#SBATCH --partition=$queue 
-
-export MV2_ENABLE_AFFINITY=0
-
-$init_cmds
-
-$module_calls
-
-%%END%%
-
- elif [[ $remote_host=lcbwuni ]]
- then
-    if [[ $email_notification = none ]]
-    then
-       email_directive=""
-    else
-       email_directive="#PBS -M $email_notification"
-    fi
-       cat > $job_to_send << %%END%%
-#!/bin/ksh
-#PBS -N $job_name
-#PBS -l walltime=$timestring
-#PBS -l nodes=${nodes}:ppn=$processes_per_node
-#PBS -l pmem=${memory}mb
-#PBS -m abe
-#PBS -o $remote_dayfile
-#PBS -j oe
-#PBS -q $queue
-$email_directive
-%%END%%
-
- else
-
-    cat > $job_to_send << %%END%%
-# @\$-q ${queue}
-# @\$-l${qsubtime} $timestring
-# @\$-l${qsubmem} ${memory}mb
-# @\$-o $remote_dayfile
-# @\$-eo
-
-%%END%%
-
- fi
-
-
-    # IN CASE OF JOBS EXECUTING ON REMOTE-HOSTS, THE TRANSFER OF THE DAYFILES
-    # TO THE LOCAL HOSTS WILL BE INITIATED BY TRAP ON EXIT
-    # NO TRANSFER POSSIBLE ON IBM IN SEOUL
- if [[ $delete_dayfile = false  &&  $remote_host != $local_host ]]
- then
-    echo "set +vx"                              >>  $job_to_send
-    echo "trap '"                               >>  $job_to_send
-    echo "set +vx"                              >>  $job_to_send
-    if [[ $(echo $remote_host | cut -c1-3) = ibm  ||  $remote_host = lcbullhh  ||  $remote_host = lccrayb  ||  $remote_host = lccrayh  ||  $(echo $remote_host | cut -c1-3) = nec  ||  $remote_host = lckiaps  ||  $remote_host = lckyu* || $remote_host = lcxe6  ||  $remote_host = lcocean  || $remote_host = lcgeohu ]]
-    then
-       if [[ $remote_host = ibmh ]]
-       then
-          return_queue=c1
-       elif [[ $remote_host = ibmkisti ]]
-       then
-          return_queue=class.1-2
-       elif [[ $remote_host = ibmku ]]
-       then
-          return_queue=sdbg2
-       elif [[ $remote_host = ibms ]]
-       then
-          return_queue=p_normal
-       elif [[ $remote_host = lcbullhh ]]
-       then
-          return_queue=shared
-       elif [[ $remote_host = lccrayb || $remote_host = lccrayh ]]
-       then
-          return_queue=dataq
-       elif [[ $remote_host = lcxe6 ]]
-       then
-          return_queue=debug
-       elif [[ $remote_host = lckiaps ]]
-       then
-          return_queue=express
-       elif [[ $remote_host = lckyuh ]]
-       then
-          return_queue=cx-single
-       elif [[ $remote_host = lckyut ]]
-       then
-          return_queue=cx-single
-       else
-          return_queue=unknown
-       fi
-
-       if [[ $(echo $remote_host | cut -c1-3) = ibm ]]
-       then
-
-          if [[ $remote_host = ibmku ]]
-          then
-             echo "echo \"#!/usr/bin/ksh\" >> scpjob.$identifier"            >>  $job_to_send
-             echo "echo \"# @ shell = /usr/bin/ksh\" >> scpjob.$identifier"  >>  $job_to_send
-          else
-             echo "echo \"#!/bin/ksh\" >> scpjob.$identifier"                >>  $job_to_send
-          fi
-          echo "echo \"# @ job_type = serial\" >> scpjob.$identifier"    >>  $job_to_send
-          echo "echo \"# @ job_name = transfer\" >> scpjob.$identifier"  >>  $job_to_send
-          echo "echo \"# @ resources = ConsumableCpus(1) ConsumableMemory(1 gb)\" >> scpjob.$identifier"  >>  $job_to_send
-          echo "echo \"# @ wall_clock_limit = 00:10:00,00:10:00\" >> scpjob.$identifier "  >>  $job_to_send
-          echo "echo \"# @ output = job_queue/last_job_transfer_protocol\" >> scpjob.$identifier"  >>  $job_to_send
-          echo "echo \"# @ error = job_queue/last_job_transfer_protocol\" >> scpjob.$identifier"  >>  $job_to_send
-          if [[ $host != "ibmh" ]]
-          then
-             echo "echo \"# @ class = $return_queue\" >> scpjob.$identifier"  >>  $job_to_send
-          fi
-          echo "echo \"# @ image_size = 10\" >> scpjob.$identifier"      >>  $job_to_send
-          echo "echo \"# @ notification = never\" >> scpjob.$identifier" >>  $job_to_send
-
-          echo "echo \"# @ queue\" >> scpjob.$identifier"                >>  $job_to_send
-          echo "echo \" \" >> scpjob.$identifier"                        >>  $job_to_send
-
-          echo "echo \"set -x\" >> scpjob.$identifier"                   >>  $job_to_send
-          echo "echo \"batch_scp  $PORTOPT  -d  -w 10  -u $local_user  $local_address  ${job_catalog}/$remote_dayfile  \\\"$job_catalog\\\"  $local_dayfile\" >> scpjob.$identifier"  >>  $job_to_send
-          if [[ $remote_host = ibmku ]]
-          then
-             echo "echo \"rm  scpjob.$identifier\" >> scpjob.$identifier"   >>  $job_to_send
-          fi
-          echo "echo \"exit\" >> scpjob.$identifier"                     >>  $job_to_send
-
-       elif [[ $remote_host = lcbullhh ]]
-       then
-          echo "cat > scpjob.$identifier << %%END%%"        >>  $job_to_send
-          echo "#!/bin/bash"                             >>  $job_to_send
-          echo "#SBATCH --job-name=job_protocol_transfer" >>  $job_to_send
-          echo "#SBATCH -t 00:20:00"                     >>  $job_to_send
-          echo "#SBATCH -N 1"                            >>  $job_to_send
-          echo "#SBATCH -n 1"                            >>  $job_to_send
-          echo "#SBATCH -o \$HOME/job_queue/last_job_transfer_protocol"      >>  $job_to_send
-          echo "#SBATCH -o $remote_dayfile"              >>  $job_to_send
-          echo "#SBATCH -e $remote_dayfile"              >>  $job_to_send
-          echo "#SBATCH -A $project_account"             >>  $job_to_send
-          echo "#SBATCH -p $return_queue"                >>  $job_to_send
-          echo " "                                       >>  $job_to_send
-          echo "set -x"                                  >>  $job_to_send
-          echo "batch_scp  $PORTOPT  -d  -w 10  -u $local_user $local_address  ${job_catalog}/$remote_dayfile  \"$job_catalog\"  $local_dayfile"  >>  $job_to_send
-          echo "[[ \"\$for_subjob_to_do\" != \"\" ]]  &&  eval \$for_subjob_to_do"  >>  $job_to_send
-          echo "%%END%%"                                 >>  $job_to_send
-
-       elif [[ $remote_host = lckyuh ]]
-       then
-          echo "cat > scpjob.$identifier << %%END%%"  >>  $job_to_send
-          echo "#!/bin/bash"                       >>  $job_to_send
-          echo "#PJM -L \"node=1\""                >>  $job_to_send
-          echo "#PJM -L \"rscgrp=$return_queue\""  >>  $job_to_send
-          echo "#PJM --no-stging"                  >>  $job_to_send
-          echo "#PJM -L \"elapse=30:00\""          >>  $job_to_send
-          echo "#PJM -o \$HOME/job_queue/last_job_transfer_protocol"  >>  $job_to_send
-          echo "#PJM -j"                           >>  $job_to_send
-          echo " "                                 >>  $job_to_send
-          echo "export LANG=en_US.UTF-8"           >>  $job_to_send
-          echo "set -x"                            >>  $job_to_send
-          echo "batch_scp  $PORTOPT  -d  -w 10  -u $local_user $local_address  $remote_dayfile  \"$job_catalog\"  $local_dayfile"  >>  $job_to_send
-          echo "[[ \"\$for_subjob_to_do\" != \"\" ]]  &&  eval \$for_subjob_to_do"  >>  $job_to_send
-          echo "%%END%%"                           >>  $job_to_send
-
-       elif [[ $remote_host = lckyut ]]
-       then
-          echo "cat > scpjob.$identifier << %%END%%"  >>  $job_to_send
-          echo "#!/bin/bash"                       >>  $job_to_send
-          echo "#PJM -L \"vnode=1\""               >>  $job_to_send
-          echo "#PJM -L \"rscgrp=$return_queue\""  >>  $job_to_send
-          echo "#PJM --no-stging"                  >>  $job_to_send
-          echo "#PJM -L \"elapse=30:00\""          >>  $job_to_send
-          echo "#PJM -o \$HOME/job_queue/last_job_transfer_protocol"  >>  $job_to_send
-          echo "#PJM -j"                           >>  $job_to_send
-          echo " "                                 >>  $job_to_send
-          echo "export LANG=en_US.UTF-8"           >>  $job_to_send
-          echo "set -x"                            >>  $job_to_send
-          echo "batch_scp  $PORTOPT  -d  -w 10  -u $local_user $local_address  $remote_dayfile  \"$job_catalog\"  $local_dayfile"  >>  $job_to_send
-          echo "[[ \"\$for_subjob_to_do\" != \"\" ]]  &&  eval \$for_subjob_to_do"  >>  $job_to_send
-          echo "%%END%%"                           >>  $job_to_send
-
-       elif [[ $remote_host = lccrayb || $remote_host = lccrayh ]]
-       then
-          echo "cat > scpjob.$identifier << %%END%%"        >>  $job_to_send
-          echo "#!/bin/bash"                             >>  $job_to_send
-          echo "#PBS -N job_protocol_transfer"           >>  $job_to_send
-          echo "#PBS -l walltime=00:30:00"               >>  $job_to_send
-          echo "#PBS -l nodes=1:ppn=1"                   >>  $job_to_send
-          echo "#PBS -o \$HOME/job_queue/last_job_transfer_protocol"      >>  $job_to_send
-          echo "#PBS -j oe"                              >>  $job_to_send
-          echo " "                                       >>  $job_to_send
-          echo "set -x"                                  >>  $job_to_send
-          echo "batch_scp  $PORTOPT  -d  -w 10  -u $local_user $local_address  ${job_catalog}/$remote_dayfile  \"$job_catalog\"  $local_dayfile"  >>  $job_to_send
-          echo "[[ \"\$for_subjob_to_do\" != \"\" ]]  &&  eval \$for_subjob_to_do"  >>  $job_to_send
-          echo "%%END%%"                                 >>  $job_to_send
-
-       elif [[ $remote_host = lcocean ]]
-       then
-          echo "cat > scpjob.${identifier}.tmp << %%END%%"                  >>  $job_to_send
-          echo "#!/bin/bash"                                             >>  $job_to_send
-          echo "SGEPREFIX -S /bin/bash"                                  >>  $job_to_send
-          echo "SGEPREFIX -N transfer_$job_name"                         >>  $job_to_send
-          echo "SGEPREFIX -cwd"                                          >>  $job_to_send
-          echo "SGEPREFIX -j y"                                          >>  $job_to_send
-          echo "SGEPREFIX -o ${local_host}_${job_name}_scpjob_$identifier"  >>  $job_to_send 
-          echo " "                                                       >>  $job_to_send 
-          echo "set -x"                                                  >>  $job_to_send 
-          echo "export PALM_BIN=$PALM_BIN" | sed -e 's:'$HOME':$HOME:'   >>  $job_to_send
-          echo "export PATH=\$PATH:\$PALM_BIN"                           >>  $job_to_send
-          echo ""                                 >>  $job_to_send         
-          echo "batch_scp  $PORTOPT  -d  -w 10  -u $local_user $local_address  ${job_catalog}/$remote_dayfile  \"$job_catalog\"  $local_dayfile"  >>  $job_to_send
-          echo "[[ \"\$for_subjob_to_do\" != \"\" ]]  &&  eval \$for_subjob_to_do"  >>  $job_to_send
-          echo "rm -f scpjob.${identifier}"                                 >>  $job_to_send         
-          echo "%%END%%"                                                 >>  $job_to_send
-          echo "sed -e 's/SGEPREFIX/#$/g' scpjob.${identifier}.tmp > scpjob.${identifier}" >>  $job_to_send         
-          echo "rm -f scpjob.${identifier}.tmp"                             >>  $job_to_send         
-
-       elif [[ $remote_host = lcxe6 ]]
-       then
-          echo "cat > scpjob.${identifier}  << %%END%%"  >>  $job_to_send
-          echo "#!/bin/ksh"                              >>  $job_to_send
-          echo "#PBS -N job_protocol_transfer"           >>  $job_to_send
-          echo "#PBS -l walltime=00:30:00"               >>  $job_to_send
-          echo "#PBS -A $project_account"                >>  $job_to_send
-          echo "#PBS -l mppwidth=1"                      >>  $job_to_send
-          echo "#PBS -l mppnppn=1"                       >>  $job_to_send
-          echo "#PBS -o \$HOME/job_queue/last_job_transfer_protocol"  >>  $job_to_send
-          echo "#PBS -j oe"                              >>  $job_to_send
-          echo " "                                       >>  $job_to_send
-          echo "set -x"                                  >>  $job_to_send
-          echo "batch_scp  $PORTOPT  -d  -w 10  -u $local_user $local_address  ${job_catalog}/$remote_dayfile  \"$job_catalog\"  $local_dayfile"  >>  $job_to_send
-          echo "[[ \"\$for_subjob_to_do\" != \"\" ]]  &&  eval \$for_subjob_to_do"  >>  $job_to_send
-          echo "%%END%%"                                 >>  $job_to_send
-
-       elif [[ $remote_host = lcgeohu ]]
-       then
-          echo "cat > scpjob.$identifier << %%END%%"        >>  $job_to_send
-          echo "#!/bin/bash"                             >>  $job_to_send
-          echo "#SBATCH --job-name=job_protocol_transfer" >>  $job_to_send
-          echo "#SBATCH -t 00:20:00"                     >>  $job_to_send
-          echo "#SBATCH -N 1"                            >>  $job_to_send
-          echo "#SBATCH -n 1"                            >>  $job_to_send
-          echo "#SBATCH -o \$HOME/job_queue/last_job_transfer_protocol"      >>  $job_to_send
-          echo "#SBATCH -o $remote_dayfile"              >>  $job_to_send
-          echo "#SBATCH -e $remote_dayfile"              >>  $job_to_send
-          echo " "                                       >>  $job_to_send
-          echo "set -x"                                  >>  $job_to_send
-          echo "sbatch  scpjob.$identifier"              >>  $job_to_send
-          echo "%%END%%"                                 >>  $job_to_send
-
-       else
-
-          echo "cat > scpjob.$identifier << %%END%%"  >>  $job_to_send
-          echo "# @\\\$-q $return_queue"           >>  $job_to_send
-          echo "# @\\\$-l${qsubtime} 10"           >>  $job_to_send
-          echo "# @\\\$-l${qsubmem} 10mb"          >>  $job_to_send
-          if [[ $remote_host = t3ej2  ||  $remote_host = t3ej5  ||  $remote_host = t3es ]]
-          then
-             echo "# @\$-l mpp_p=0"                >>  $job_to_send
-          fi
-          echo '# @\$-lF 10mb'                     >>  $job_to_send
-          echo '# @\$-o job_queue/last_job_transfer_protocol'    >>  $job_to_send
-          echo '# @\\\$-eo'                          >>  $job_to_send
-          echo " "                                 >>  $job_to_send
-          if [[ $remote_host = t3ej2  ||  $remote_host = t3ej5 ]]
-          then
-             echo "set +vx"                        >>  $job_to_send
-             echo ". .profile"                     >>  $job_to_send
-          fi
-          echo "set -x"                            >>  $job_to_send
-          echo "batch_scp  $PORTOPT  -d  -w 10  -u $local_user $local_address  ${job_catalog}/$remote_dayfile  \"$job_catalog\"  $local_dayfile  >  /dev/null"  >>  $job_to_send
-          echo "[[ \"\$for_subjob_to_do\" != \"\" ]]  &&  eval \$for_subjob_to_do"  >>  $job_to_send
-          echo "%%END%%"                           >>  $job_to_send
-
-       fi
-
-       if [[ $(echo $remote_host | cut -c1-3) = ibm ]]
-       then
-          echo "llsubmit  scpjob.$identifier"      >>  $job_to_send
-       elif [[ $remote_host = lcbullhh ]]
-       then
-          echo "sbatch  scpjob.$identifier"               >>  $job_to_send
-       elif [[ $remote_host = lccrayb || $remote_host = lccrayh ]]
-       then
-          echo "msub -E -q $return_queue  scpjob.$identifier"               >>  $job_to_send
-       elif [[ $remote_host = t3eb  ||  $remote_host = t3eh  ||  $remote_host = t3ej2  ||  $remote_host = t3ej5 ]]
-       then
-          echo "qsub -J n  scpjob.$identifier"     >>  $job_to_send
-       elif [[ $remote_host = t3es ]]
-       then
-          echo "qsub -J n  -s /bin/ksh  scpjob.$identifier"     >>  $job_to_send
-       elif [[ $remote_host = lckiaps ]]
-       then
-          echo "mv  scpjob.$identifier  $job_catalog"           >>  $job_to_send
-          echo "ssh $SSH_PORTOPT ${remote_username}@${remote_address}  \"$submcom ${job_catalog}/scpjob.$identifier\" "  >>  $job_to_send
-          echo "rm  ${job_catalog}/scpjob.$identifier"          >>  $job_to_send
-       elif [[ $remote_host = lckyu* ]]
-       then
-          echo "scp $PORTOPT scpjob.$identifier  ${remote_username}@${remote_address}:job_queue"           >>  $job_to_send
-          echo "ssh $SSH_PORTOPT ${remote_username}@${remote_address}  \"cd job_queue; $submcom scpjob.$identifier; rm scpjob.$identifier\" "  >>  $job_to_send
-       elif [[ $remote_host = lcocean ]]
-       then
-          echo "mv  scpjob.$identifier  $job_catalog"           >>  $job_to_send
-          echo "/usr/bin/ssh ${remote_username}@${remote_address}  \"$init_cmds $module_calls cd $job_catalog; $submcom scpjob.$identifier\" "  >>  $job_to_send
-       else
-          echo "$submcom  scpjob.$identifier"      >>  $job_to_send
-       fi
-       if [[ $remote_host != ibmku  &&  $remote_host != lckiaps ]]
-       then
-          echo "rm  scpjob.$identifier"            >>  $job_to_send
-       fi
-    else
-#       echo "ftpcopy  -d  $local_address  ${job_catalog}/$remote_dayfile  \"$job_catalog\"  $local_dayfile"  >>  $job_to_send
-       # ??? funktioniert das ÃŒberhaupt noch ???
-       echo "nohup  ftpcopy  -d  -w 15  $local_address  ${job_catalog}/$remote_dayfile  \"$job_catalog\"  $local_dayfile  >  /dev/null  &"  >>  $job_to_send
-    fi
-    echo "set -x"                               >>  $job_to_send
-    echo "     ' exit"                          >>  $job_to_send
-    echo "set -x"                               >>  $job_to_send
- fi
-
-
-    # APPEND THE JOB-FILE (CREATE BY mrun) TO THE JOB-DIRECTIVES GENERATED ABOVE
- cat  $file_to_send  >>  $job_to_send
-
- if [[ $remote_host = ibm ]]
- then
-    echo " "         >>  $job_to_send
-    echo "exit"      >>  $job_to_send
- fi
-
-    # REMOVE JOB-FILE
- if [[ $remote_host = lctit  ||  $remote_host = ibmku ]]
- then
-    echo " "                               >>  $job_to_send
-    echo "rm ~/job_queue/$job_on_remhost"  >>  $job_to_send
- fi
-
-
-    # TRANSFER JOB TO THE TARGET HOST (JOB-DIRECTORY)
- if [[ $no_submit = false ]]
- then
-    if [[ $remote_host != $local_host ]]
-    then
-       [[ $verify = true ]]  &&  printf "\n >>> transfering job to \"$remote_host\"..."
-       if [[ $remote_host = ibms ]]    # ssh on ibms cannot handle "~/"
-       then
-          job_catalog_save=$job_catalog
-          job_catalog=job_queue
-       elif [[ $remote_host = lcgeohu ]]
-       then
-          job_catalog_save=$job_catalog
-          job_catalog=/home/${remote_user}/job_queue
-       fi
-       scp  $ssh_key  $PORTOPT  $job_to_send  ${remote_user}@${remote_address}:${job_catalog}/$job_on_remhost
-       if [[ $? = 1 ]]
-       then
-          locat=scp; exit
-       fi
-       if [[ $remote_host = ibms  ||  $remote_host = lcgeohu ]]
-       then
-          job_catalog=$job_catalog_save
-       fi
-       [[ $verify = true ]]  &&  printf "\n >>> finished\n"
-    else
-       eval  job_catalog=$job_catalog
-       cp  $job_to_send  ${job_catalog}/$job_on_remhost
-    fi
-
-
-
-       # START NQS- / LOADLEVELER-JOB
-    if [[ $remote_host != $local_host ]]
-    then
-       [[ $verify = true ]]  &&  printf "\n >>> submitting job using \"qsub\"...\n"
-
-       if [[ $remote_host = ibmku ]]
-       then
-          ssh  $SSH_PORTOPT $remote_address  -l $remote_user  "cd $job_catalog; $submcom $job_on_remhost"
-       elif [[ $remote_host = lcgeohu ]]
-       then
-          ssh  $ssh_key  $SSH_PORTOPT $remote_address  -l $remote_user  "cd $job_catalog; $submcom $job_on_remhost"
-       else
-          ssh  $ssh_key  $SSH_PORTOPT $remote_address  -l $remote_user  "cd $job_catalog; $submcom $job_on_remhost; rm $job_on_remhost"
-       fi
-
-       [[ $verify = true ]]  &&  printf " >>> o.k.\n"
-    else
-       cd  $job_catalog
-       if [[ $(echo $local_host | cut -c1-3) = ibm  ||  $(echo $local_host | cut -c1-6) = lccray || $local_host = lceddy || $local_host = lcgeohu ]]
-       then
-          eval  $submcom  $job_on_remhost
-       elif [[  $local_host = lctit  ||  $local_host = lcxe6  ||  $local_host = lck  || $local_host = lckordi ||  $local_host = lcyon || $local_host = lcsb  ||  $local_host = lckyu* ]]
-       then
-          chmod  u+x  $job_on_remhost
-          eval  $submcom  $job_on_remhost
-       elif [[ $local_host = lcbullhh ]]
-       then
-          if [[ $queue = default ]]
-          then
-             eval  $submcom  $job_on_remhost
-          fi
-       elif [[ $local_host = lclrz || $local_host = lckea* ]]
-       then
-          eval  $submcom  $job_on_remhost
-       elif [[ $local_host = lcbwuni ]]
-       then
-          msub  -q $queue $job_on_remhost
-       else
-          qsub  $job_on_remhost
-       fi
-
-          # JOBFILE MUST NOT BE DELETED ON lctit/ibmku. THIS WILL BE DONE
-          # AT THE END OF THE JOB
-       if [[ $local_host != lctit  &&  $local_host != ibmku  &&  $local_host != lcgeohu ]]
-       then
-          rm  $job_on_remhost
-       fi
-       cd  -  > /dev/null
-    fi
- fi
-
-    # FINAL ACTIONS
- if [[ $no_submit = false ]]
- then
-    rm  -f $job_to_send
- fi
- [[ $verify = true ]]  &&  printf "\n\n *** SUBJOB finished \n\n"
Index: palm/trunk/SCRIPTS/testsuite
===================================================================
--- palm/trunk/SCRIPTS/testsuite	(revision 2693)
+++ palm/trunk/SCRIPTS/testsuite	(revision 2696)
@@ -2,5 +2,5 @@
 
 #--------------------------------------------------------------------------------#
-# This file is part of PALM.
+# This file is part of the PALM model system.
 #
 # PALM is free software: you can redistribute it and/or modify it under the terms
Index: palm/trunk/SOURCE/Makefile
===================================================================
--- palm/trunk/SOURCE/Makefile	(revision 2693)
+++ palm/trunk/SOURCE/Makefile	(revision 2696)
@@ -1,4 +1,4 @@
 #--------------------------------------------------------------------------------#
-# This file is part of PALM.
+# This file is part of the PALM model system.
 #
 # PALM is free software: you can redistribute it and/or modify it under the terms
@@ -25,4 +25,18 @@
 # -----------------
 # $Id$
+# Implementation of uv exposure model (FK)
+# Bugfix, removed loop dependcy for vertical_nesting_mod and 
+# turbulence_closure_mod, added depencies for vertical_nesting_mod (TG)
+# implemented turbulence_closure_mod (TG)
+# Additional dependencies for chemistry module (FK)
+# Additional dependencies for chemistry module (FK)
+# Implementation of chemistry module (FK)
+# For LSM, add dependency on calc_mean_profile (??)
+# poismg_noopt modularized and renamed into poismg_noopt_mod
+# add dependencies for netcdf_data_input_mod, calc_mean_profile, 
+# radiation_module_mod, land_surface_model_mod (MS)
+# 
+# 
+# 2608 2017-11-13 14:04:26Z schwenkel
 # Added diagnostic_quantities_mod 
 # 
@@ -31,10 +45,10 @@
 # 
 # 2599 2017-11-01 13:18:45Z hellstea
-# virtual_flight_mod.o, synthetic_turbulence_generator_mod.o and
-# wind_turbine_model_mod.o were added to read_var_list.o
+# virtual_flight_mod, synthetic_turbulence_generator_mod and
+# wind_turbine_model_mod were added to read_var_list
 # 
 # 2563 2017-10-19 15:36:10Z Giersch
-# wind_turbine_model_mod.o and synthetic_turbulence_generator_mod.o were added to
-# write_var_list.o and virtual_flight_mod.o was deleted from read_var_list.o  
+# wind_turbine_model_mod and synthetic_turbulence_generator_mod were added to
+# write_var_list and virtual_flight_mod was deleted from read_var_list  
 # 
 # 2544 2017-10-13 18:09:32Z maronga
@@ -381,5 +395,6 @@
 	buoyancy.f90 calc_liquid_water_content.f90 calc_mean_profile.f90 \
 	calc_radiation.f90 \
-	check_for_restart.f90 check_open.f90 check_parameters.f90 \
+	check_for_restart.f90 check_open.f90 check_parameters.f90 chem_modules.f90 \
+	chemistry_model_mod.f90 chem_gasphase_mod.f90 chem_photolysis_mod.f90 \
 	close_file.f90 compute_vpt.f90 coriolis.f90 cpulog_mod.f90 \
 	data_log.f90 data_output_dvrp.f90 \
@@ -388,6 +403,6 @@
 	data_output_tseries.f90 data_output_2d.f90 data_output_3d.f90 \
 	date_and_time_mod.f90  diagnostic_quantities_mod.f90 \
-	diffusion_e.f90 diffusion_s.f90 diffusion_u.f90 diffusion_v.f90 \
-	diffusion_w.f90 diffusivities.f90 disturb_field.f90 \
+	diffusion_s.f90 diffusion_u.f90 diffusion_v.f90 \
+	diffusion_w.f90 disturb_field.f90 \
 	disturb_heatflux.f90 eqn_state_seawater.f90 exchange_horiz.f90 \
 	exchange_horiz_2d.f90 fft_xy_mod.f90 flow_statistics.f90 \
@@ -407,10 +422,11 @@
 	lpm_set_attributes.f90 lpm_splitting.f90 \
 	lpm_write_exchange_statistics.f90 lpm_write_restart_file.f90 \
-        large_scale_forcing_nudging_mod.f90 message.f90 microphysics_mod.f90 \
-        modules.f90 mod_kinds.f90 mod_particle_attributes.f90 model_1d_mod.f90 netcdf_interface_mod.f90 \
+	large_scale_forcing_nudging_mod.f90 message.f90 microphysics_mod.f90 \
+	modules.f90 mod_kinds.f90 mod_particle_attributes.f90 model_1d_mod.f90 \
+	netcdf_interface_mod.f90 netcdf_data_input_mod.f90 \
 	outflow_turbulence.f90 package_parin.f90 palm.f90 parin.f90 plant_canopy_model_mod.f90 \
 	pmc_interface_mod.f90 pmc_child_mod.f90 pmc_general_mod.f90 pmc_handle_communicator_mod.f90 \
 	pmc_mpi_wrapper_mod.f90 pmc_parent_mod.f90 poisfft_mod.f90 poismg_mod.f90 \
-	poismg_noopt.f90 posix_calls_from_fortran.f90 pres.f90 print_1d.f90 production_e.f90 \
+	poismg_noopt_mod.f90 posix_calls_from_fortran.f90 pres.f90 print_1d.f90 \
 	prognostic_equations.f90 progress_bar_mod.f90 radiation_model_mod.f90 \
 	random_function_mod.f90 random_gauss.f90 random_generator_parallel_mod.f90 \
@@ -422,4 +438,5 @@
 	time_integration.f90 time_integration_spinup.f90 time_to_string.f90 timestep.f90 \
 	timestep_scheme_steering.f90 transpose.f90 tridia_solver_mod.f90 \
+	turbulence_closure_mod.f90 \
 	urban_surface_mod.f90 \
 	user_3d_data_averaging.f90 \
@@ -436,5 +453,6 @@
 	user_lpm_init.f90 user_lpm_set_attributes.f90 user_module.f90 \
 	user_parin.f90 user_read_restart_data.f90 \
-	user_spectra.f90 user_statistics.f90 vertical_nesting_mod.f90 virtual_flight_mod.f90 \
+	user_spectra.f90 user_statistics.f90 uv_exposure_model_mod.f90 \
+	vertical_nesting_mod.f90 virtual_flight_mod.f90 \
 	wind_turbine_model_mod.f90 write_3d_binary.f90 write_var_list.f90
 
@@ -452,4 +470,7 @@
 # The following line is needed for palm_simple_install, don't remove it!
 #to_be_replaced_by_include
+
+
+
 
 .SUFFIXES:
@@ -481,6 +502,7 @@
 advec_w_up.o: modules.o mod_kinds.o
 average_3d_data.o: modules.o cpulog_mod.o mod_kinds.o exchange_horiz_2d.o land_surface_model_mod.o \
-	radiation_model_mod.o urban_surface_mod.o
-boundary_conds.o: modules.o mod_kinds.o pmc_interface_mod.o surface_mod.o
+	radiation_model_mod.o turbulence_closure_mod.o urban_surface_mod.o chemistry_model_mod.o
+boundary_conds.o: modules.o mod_kinds.o pmc_interface_mod.o surface_mod.o \
+	turbulence_closure_mod.o chemistry_model_mod.o
 buoyancy.o: modules.o mod_kinds.o
 calc_mean_profile.o: modules.o mod_kinds.o
@@ -490,8 +512,13 @@
 check_open.o: modules.o mod_kinds.o mod_particle_attributes.o \
 	netcdf_interface_mod.o posix_calls_from_fortran.o
-check_parameters.o: modules.o mod_kinds.o land_surface_model_mod.o large_scale_forcing_nudging_mod.o \
+check_parameters.o: modules.o mod_kinds.o chemistry_model_mod.o netcdf_data_input_mod.o \
+	land_surface_model_mod.o large_scale_forcing_nudging_mod.o \
 	microphysics_mod.o model_1d_mod.o netcdf_interface_mod.o plant_canopy_model_mod.o pmc_interface_mod.o \
 	radiation_model_mod.o spectra_mod.o subsidence_mod.o synthetic_turbulence_generator_mod.o \
-	wind_turbine_model_mod.o urban_surface_mod.o vertical_nesting_mod.o
+	turbulence_closure_mod.o wind_turbine_model_mod.o urban_surface_mod.o uv_exposure_model_mod.o vertical_nesting_mod.o
+chemistry_model_mod.o: modules.o mod_kinds.o chem_gasphase_mod.o diffusion_s.o chem_modules.o netcdf_data_input_mod.o surface_mod.o  
+chem_gasphase_mod.o: modules.o mod_kinds.o
+chem_modules.o: modules.o mod_kinds.o chem_gasphase_mod.o  
+chem_photolysis_mod.o: modules.o mod_kinds.o chem_gasphase_mod.o chemistry_model_mod.o radiation_model_mod.o
 close_file.o: modules.o mod_kinds.o netcdf_interface_mod.o
 compute_vpt.o: modules.o mod_kinds.o
@@ -512,16 +539,13 @@
 data_output_2d.o: modules.o cpulog_mod.o mod_kinds.o mod_particle_attributes.o \
    netcdf_interface_mod.o land_surface_model_mod.o radiation_model_mod.o \
-   surface_mod.o urban_surface_mod.o
+   surface_mod.o urban_surface_mod.o uv_exposure_model_mod.o
 data_output_3d.o: modules.o cpulog_mod.o mod_kinds.o mod_particle_attributes.o \
-   netcdf_interface_mod.o land_surface_model_mod.o urban_surface_mod.o
+   chemistry_model_mod.o netcdf_interface_mod.o land_surface_model_mod.o turbulence_closure_mod.o urban_surface_mod.o
 date_and_time_mod.o: modules.o mod_kinds.o 
 diagnostic_quantities_mod.o: modules.o mod_kinds.o
-diffusion_e.o: modules.o mod_kinds.o microphysics_mod.o \
-   mod_particle_attributes.o surface_mod.o
 diffusion_s.o: modules.o mod_kinds.o surface_mod.o
 diffusion_u.o: modules.o mod_kinds.o surface_mod.o
 diffusion_v.o: modules.o mod_kinds.o surface_mod.o
 diffusion_w.o: modules.o mod_kinds.o surface_mod.o
-diffusivities.o: modules.o mod_kinds.o surface_mod.o vertical_nesting_mod.o
 disturb_field.o: modules.o cpulog_mod.o mod_kinds.o random_function_mod.o \
                  random_generator_parallel_mod.o
@@ -538,25 +562,28 @@
    pmc_interface_mod.o radiation_model_mod.o spectra_mod.o subsidence_mod.o surface_mod.o virtual_flight_mod.o
 inflow_turbulence.o: modules.o cpulog_mod.o mod_kinds.o
-init_3d_model.o: modules.o mod_kinds.o advec_ws.o cpulog_mod.o disturb_heatflux.o land_surface_model_mod.o \
-   large_scale_forcing_nudging_mod.o lpm_init.o model_1d_mod.o netcdf_interface_mod.o \
+init_3d_model.o: modules.o mod_kinds.o advec_ws.o cpulog_mod.o \
+   chemistry_model_mod.o disturb_heatflux.o land_surface_model_mod.o \
+   large_scale_forcing_nudging_mod.o lpm_init.o model_1d_mod.o netcdf_data_input_mod.o netcdf_interface_mod.o \
    plant_canopy_model_mod.o radiation_model_mod.o random_function_mod.o random_generator_parallel_mod.o \
-   microphysics_mod.o mod_particle_attributes.o surface_layer_fluxes_mod.o \
-   urban_surface_mod.o virtual_flight_mod.o surface_mod.o wind_turbine_model_mod.o 
+   microphysics_mod.o mod_particle_attributes.o surface_layer_fluxes_mod.o turbulence_closure_mod.o \
+   urban_surface_mod.o uv_exposure_model_mod.o virtual_flight_mod.o surface_mod.o wind_turbine_model_mod.o 
 init_advec.o: modules.o mod_kinds.o
 init_cloud_physics.o: modules.o mod_kinds.o
 init_coupling.o: modules.o mod_kinds.o vertical_nesting_mod.o
 init_dvrp.o: modules.o mod_kinds.o
-init_grid.o: modules.o mod_kinds.o advec_ws.o netcdf_interface_mod.o surface_mod.o vertical_nesting_mod.o
+init_grid.o: modules.o mod_kinds.o advec_ws.o netcdf_data_input_mod.o netcdf_interface_mod.o poismg_noopt_mod.o \
+             surface_mod.o vertical_nesting_mod.o
 init_masks.o: modules.o mod_kinds.o netcdf_interface_mod.o
 init_ocean.o: modules.o eqn_state_seawater.o mod_kinds.o
 init_pegrid.o: modules.o mod_kinds.o spectra_mod.o synthetic_turbulence_generator_mod.o \
-   vertical_nesting_mod.o
+               vertical_nesting_mod.o
 init_pt_anomaly.o: modules.o mod_kinds.o
 init_rankine.o: modules.o mod_kinds.o
 init_slope.o: modules.o mod_kinds.o
 interaction_droplets_ptq.o: modules.o mod_kinds.o
-land_surface_model_mod.o: modules.o mod_kinds.o radiation_model_mod.o surface_mod.o diagnostic_quantities_mod.o
-large_scale_forcing_nudging_mod.o: modules.o cpulog_mod.o mod_kinds.o surface_mod.o
-local_stop.o: modules.o mod_kinds.o pmc_interface_mod.o
+land_surface_model_mod.o: modules.o mod_kinds.o calc_mean_profile.o diagnostic_quantities_mod.o \
+                          netcdf_data_input_mod.o radiation_model_mod.o surface_mod.o
+large_scale_forcing_nudging_mod.o: modules.o cpulog_mod.o mod_kinds.o netcdf_data_input_mod.o surface_mod.o
+local_stop.o: modules.o mod_kinds.o pmc_interface_mod.o vertical_nesting_mod.o
 local_tremain.o: modules.o cpulog_mod.o mod_kinds.o
 local_tremain_ini.o: modules.o cpulog_mod.o mod_kinds.o
@@ -597,15 +624,18 @@
 mod_kinds.o: mod_kinds.f90
 mod_particle_attributes.o: mod_particle_attributes.f90 mod_kinds.o
+netcdf_data_input_mod.o: modules.o mod_kinds.o pmc_interface_mod.o
 netcdf_interface_mod.o: netcdf_interface_mod.f90 modules.o mod_kinds.o \
-   land_surface_model_mod.o radiation_model_mod.o spectra_mod.o urban_surface_mod.o
+   chemistry_model_mod.o land_surface_model_mod.o radiation_model_mod.o \
+   spectra_mod.o turbulence_closure_mod.o urban_surface_mod.o uv_exposure_model_mod.o
 outflow_turbulence.o: modules.o cpulog_mod.o mod_kinds.o
 package_parin.o: modules.o mod_kinds.o mod_particle_attributes.o
-palm.o: modules.o cpulog_mod.o land_surface_model_mod.o mod_kinds.o \
-	pmc_interface_mod.o surface_layer_fluxes_mod.o
+palm.o: modules.o mod_kinds.o cpulog_mod.o netcdf_data_input_mod.o land_surface_model_mod.o \
+   chemistry_model_mod.o chem_photolysis_mod.o pmc_interface_mod.o surface_layer_fluxes_mod.o
 parin.o: modules.o cpulog_mod.o date_and_time_mod.o land_surface_model_mod.o mod_kinds.o model_1d_mod.o netcdf_interface_mod.o \
-   plant_canopy_model_mod.o pmc_interface_mod.o progress_bar_mod.o spectra_mod.o \
+   chemistry_model_mod.o chem_modules.o plant_canopy_model_mod.o pmc_interface_mod.o \
+   progress_bar_mod.o spectra_mod.o \
    synthetic_turbulence_generator_mod.o radiation_model_mod.o microphysics_mod.o \
-   vertical_nesting_mod.o virtual_flight_mod.o wind_turbine_model_mod.o
-plant_canopy_model_mod.o: modules.o mod_kinds.o surface_mod.o
+   uv_exposure_model_mod.o virtual_flight_mod.o wind_turbine_model_mod.o
+plant_canopy_model_mod.o: modules.o mod_kinds.o netcdf_data_input_mod.o surface_mod.o
 pmc_interface_mod.o: modules.o mod_kinds.o pmc_child_mod.o pmc_general_mod.o \
 	pmc_handle_communicator_mod.o pmc_mpi_wrapper_mod.o pmc_parent_mod.o surface_mod.o
@@ -618,25 +648,28 @@
 poisfft_mod.o: modules.o cpulog_mod.o fft_xy_mod.o mod_kinds.o tridia_solver_mod.o
 poismg_mod.o: modules.o cpulog_mod.o mod_kinds.o
-poismg_noopt.o: modules.o cpulog_mod.o mod_kinds.o
+poismg_noopt_mod.o: modules.o cpulog_mod.o mod_kinds.o
 posix_calls_from_fortran.o: posix_calls_from_fortran.f90
-pres.o: modules.o cpulog_mod.o mod_kinds.o poisfft_mod.o poismg_mod.o pmc_interface_mod.o \
+pres.o: modules.o cpulog_mod.o mod_kinds.o poisfft_mod.o poismg_mod.o poismg_noopt_mod.o pmc_interface_mod.o \
         surface_mod.o
 print_1d.o: modules.o cpulog_mod.o mod_kinds.o
-production_e.o: modules.o mod_kinds.o surface_mod.o
 prognostic_equations.o: modules.o advec_s_pw.o advec_s_up.o advec_s_bc.o advec_u_pw.o \
 	advec_u_up.o advec_v_pw.o advec_v_up.o advec_w_pw.o advec_w_up.o \
 	advec_ws.o buoyancy.o calc_radiation.o coriolis.o \
-	cpulog_mod.o diffusion_e.o diffusion_s.o diffusion_u.o diffusion_v.o diffusion_w.o \
+	chemistry_model_mod.o chem_photolysis_mod.o chem_modules.o \
+	cpulog_mod.o diffusion_s.o diffusion_u.o diffusion_v.o diffusion_w.o \
 	eqn_state_seawater.o large_scale_forcing_nudging_mod.o modules.o cpulog_mod.o mod_kinds.o surface_mod.o \
         mod_kinds.o microphysics_mod.o \
-	plant_canopy_model_mod.o production_e.o radiation_model_mod.o \
-	subsidence_mod.o surface_mod.o user_actions.o wind_turbine_model_mod.o
+	plant_canopy_model_mod.o radiation_model_mod.o \
+	subsidence_mod.o surface_mod.o turbulence_closure_mod.o user_actions.o wind_turbine_model_mod.o
 progress_bar_mod.o: modules.o mod_kinds.o
-radiation_model_mod.o: modules.o mod_particle_attributes.o date_and_time_mod.o microphysics_mod.o surface_mod.o
+radiation_model_mod.o: modules.o mod_particle_attributes.o calc_mean_profile.o date_and_time_mod.o \
+                       netcdf_data_input_mod.o microphysics_mod.o \
+                       plant_canopy_model_mod.o surface_mod.o
 random_function_mod.o: mod_kinds.o
 random_gauss.o: mod_kinds.o random_function_mod.o random_generator_parallel_mod.o
 random_generator_parallel_mod.o: modules.o mod_kinds.o
 read_3d_binary.o: modules.o cpulog_mod.o mod_kinds.o \
-   land_surface_model_mod.o radiation_model_mod.o random_function_mod.o random_generator_parallel_mod.o \
+   chemistry_model_mod.o land_surface_model_mod.o radiation_model_mod.o \
+   random_function_mod.o random_generator_parallel_mod.o \
    spectra_mod.o surface_mod.o urban_surface_mod.o
 read_var_list.o: modules.o mod_kinds.o model_1d_mod.o netcdf_interface_mod.o plant_canopy_model_mod.o \
@@ -649,21 +682,23 @@
 spectra_mod.o: spectra_mod.f90 modules.o mod_kinds.o cpulog_mod.o fft_xy_mod.o
 subsidence_mod.o: modules.o mod_kinds.o
-sum_up_3d_data.o: modules.o cpulog_mod.o mod_kinds.o land_surface_model_mod.o \
-                  radiation_model_mod.o surface_mod.o urban_surface_mod.o
+sum_up_3d_data.o: modules.o cpulog_mod.o mod_kinds.o \
+	chemistry_model_mod.o land_surface_model_mod.o \
+	radiation_model_mod.o surface_mod.o turbulence_closure_mod.o urban_surface_mod.o uv_exposure_model_mod.o
 surface_coupler.o: modules.o cpulog_mod.o mod_kinds.o surface_mod.o
-surface_layer_fluxes_mod.o: modules.o mod_kinds.o exchange_horiz_2d.o land_surface_model_mod.o \
-	urban_surface_mod.o surface_mod.o
-surface_mod.o: modules.o mod_kinds.o model_1d_mod.o 
+surface_layer_fluxes_mod.o: modules.o mod_kinds.o chem_modules.o exchange_horiz_2d.o \
+	land_surface_model_mod.o urban_surface_mod.o surface_mod.o
+surface_mod.o: modules.o mod_kinds.o model_1d_mod.o chem_modules.o
 swap_timelevel.o: modules.o cpulog_mod.o mod_kinds.o land_surface_model_mod.o \
-   pmc_interface_mod.o urban_surface_mod.o
-synthetic_turbulence_generator_mod.o: modules.o mod_kinds.o cpulog_mod.o
+   chemistry_model_mod.o pmc_interface_mod.o turbulence_closure_mod.o urban_surface_mod.o
+synthetic_turbulence_generator_mod.o: modules.o mod_kinds.o
 temperton_fft_mod.o: modules.o mod_kinds.o
 time_integration.o: modules.o advec_ws.o buoyancy.o calc_mean_profile.o \
+	chemistry_model_mod.o chem_modules.o \
 	cpulog_mod.o data_output_flight.o disturb_heatflux.o interaction_droplets_ptq.o land_surface_model_mod.o \
-	large_scale_forcing_nudging_mod.o mod_kinds.o pmc_interface_mod.o production_e.o \
+	large_scale_forcing_nudging_mod.o mod_kinds.o pmc_interface_mod.o \
 	prognostic_equations.o progress_bar_mod.o radiation_model_mod.o \
 	spectra_mod.o user_actions.o microphysics_mod.o synthetic_turbulence_generator_mod.o \
-        surface_layer_fluxes_mod.o surface_mod.o \
-	urban_surface_mod.o vertical_nesting_mod.o virtual_flight_mod.o wind_turbine_model_mod.o
+	surface_layer_fluxes_mod.o surface_mod.o turbulence_closure_mod.o\
+	urban_surface_mod.o uv_exposure_model_mod.o vertical_nesting_mod.o virtual_flight_mod.o wind_turbine_model_mod.o
 time_integration_spinup.o: cpulog_mod.o modules.o date_and_time_mod.o land_surface_model_mod.o mod_kinds.o radiation_model_mod.o surface_layer_fluxes_mod.o urban_surface_mod.o 
 time_to_string.o: mod_kinds.o
@@ -673,5 +708,9 @@
 transpose.o: modules.o cpulog_mod.o mod_kinds.o
 tridia_solver_mod.o: modules.o mod_kinds.o
-urban_surface_mod.o: modules.o mod_kinds.o date_and_time_mod.o radiation_model_mod.o plant_canopy_model_mod.o surface_mod.o
+turbulence_closure_mod.o: modules.o mod_kinds.o advec_s_pw.o advec_s_up.o advec_s_bc.o advec_ws.o \
+	 cpulog_mod.o microphysics_mod.o mod_particle_attributes.o plant_canopy_model_mod.o \
+	 surface_mod.o user_actions.o
+urban_surface_mod.o: modules.o mod_kinds.o date_and_time_mod.o netcdf_data_input_mod.o \
+                     radiation_model_mod.o plant_canopy_model_mod.o surface_mod.o
 user_3d_data_averaging.o: modules.o mod_kinds.o user_module.o
 user_actions.o: modules.o cpulog_mod.o mod_kinds.o user_module.o
@@ -706,5 +745,6 @@
 user_spectra.o: modules.o mod_kinds.o spectra_mod.o user_module.o
 user_statistics.o: modules.o mod_kinds.o netcdf_interface_mod.o user_module.o
-vertical_nesting_mod.o: modules.o mod_kinds.o surface_mod.o 
+uv_exposure_model_mod.o: modules.o mod_kinds.o date_and_time_mod.o radiation_model_mod.o
+vertical_nesting_mod.o: modules.o mod_kinds.o surface_mod.o turbulence_closure_mod.o
 virtual_flight_mod.o: modules.o cpulog_mod.o mod_kinds.o netcdf_interface_mod.o user_init_flight.o user_flight.o
 wind_turbine_model_mod.o: modules.o cpulog_mod.o mod_kinds.o
@@ -712,5 +752,6 @@
 	radiation_model_mod.o random_function_mod.o random_generator_parallel_mod.o \
 	spectra_mod.o surface_mod.o
-write_var_list.o: modules.o mod_kinds.o model_1d_mod.o netcdf_interface_mod.o plant_canopy_model_mod.o\
+write_var_list.o: modules.o mod_kinds.o chemistry_model_mod.o model_1d_mod.o \
+   netcdf_interface_mod.o plant_canopy_model_mod.o\
    spectra_mod.o microphysics_mod.o urban_surface_mod.o vertical_nesting_mod.o virtual_flight_mod.o\
    wind_turbine_model_mod.o synthetic_turbulence_generator_mod.o
Index: palm/trunk/SOURCE/advec_s_bc.f90
===================================================================
--- palm/trunk/SOURCE/advec_s_bc.f90	(revision 2693)
+++ palm/trunk/SOURCE/advec_s_bc.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file advec_s_bc.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/advec_s_pw.f90
===================================================================
--- palm/trunk/SOURCE/advec_s_pw.f90	(revision 2693)
+++ palm/trunk/SOURCE/advec_s_pw.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file advec_s_pw.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/advec_s_up.f90
===================================================================
--- palm/trunk/SOURCE/advec_s_up.f90	(revision 2693)
+++ palm/trunk/SOURCE/advec_s_up.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file advec_s_up.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/advec_u_pw.f90
===================================================================
--- palm/trunk/SOURCE/advec_u_pw.f90	(revision 2693)
+++ palm/trunk/SOURCE/advec_u_pw.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file advec_u_pw.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/advec_u_up.f90
===================================================================
--- palm/trunk/SOURCE/advec_u_up.f90	(revision 2693)
+++ palm/trunk/SOURCE/advec_u_up.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file advec_u_up.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/advec_v_pw.f90
===================================================================
--- palm/trunk/SOURCE/advec_v_pw.f90	(revision 2693)
+++ palm/trunk/SOURCE/advec_v_pw.f90	(revision 2696)
@@ -1,5 +1,6 @@
 !> @file advec_v_pw.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+!------------------------------------------------------------------------------!
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/advec_v_up.f90
===================================================================
--- palm/trunk/SOURCE/advec_v_up.f90	(revision 2693)
+++ palm/trunk/SOURCE/advec_v_up.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file advec_v_up.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/advec_w_pw.f90
===================================================================
--- palm/trunk/SOURCE/advec_w_pw.f90	(revision 2693)
+++ palm/trunk/SOURCE/advec_w_pw.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file advec_w_pw.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/advec_w_up.f90
===================================================================
--- palm/trunk/SOURCE/advec_w_up.f90	(revision 2693)
+++ palm/trunk/SOURCE/advec_w_up.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file advec_w_up.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/advec_ws.f90
===================================================================
--- palm/trunk/SOURCE/advec_ws.f90	(revision 2693)
+++ palm/trunk/SOURCE/advec_ws.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file advec_ws.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
@@ -25,4 +25,9 @@
 ! -----------------
 ! $Id$ 
+! Implement advection for TKE-dissipation in case of RANS-TKE-e closure (TG)
+! Allocate advc_flags_1/2 within ws_init_flags instead of init_grid
+! Change argument list for exchange_horiz_2d_int (MS)
+! 
+! 2329 2017-08-03 14:24:56Z knoop
 ! Bugfix concerning density in divergence correction close to buildings
 ! 
@@ -247,14 +252,15 @@
 
        USE arrays_3d,                                                          &
-           ONLY:  diss_l_e, diss_l_nc, diss_l_nr, diss_l_pt, diss_l_q,         &
-                  diss_l_qc, diss_l_qr, diss_l_s, diss_l_sa, diss_l_u,         &
-                  diss_l_v, diss_l_w, flux_l_e, flux_l_nc, flux_l_nr,          & 
-                  flux_l_pt, flux_l_q, flux_l_qc, flux_l_qr, flux_l_s,         &
-                  flux_l_sa, flux_l_u, flux_l_v, flux_l_w, diss_s_e,           &
-                  diss_s_nc,  diss_s_nr, diss_s_pt, diss_s_q, diss_s_qc,       &
-                  diss_s_qr, diss_s_s, diss_s_sa, diss_s_u, diss_s_v,          &
-                  diss_s_w, flux_s_e, flux_s_nc, flux_s_nr, flux_s_pt,         &
-                  flux_s_q, flux_s_qc, flux_s_qr, flux_s_s, flux_s_sa,         &
-                  flux_s_u, flux_s_v, flux_s_w
+           ONLY:  diss_l_diss, diss_l_e, diss_l_nc, diss_l_nr, diss_l_pt,      &
+                  diss_l_q, diss_l_qc, diss_l_qr, diss_l_s, diss_l_sa,         &
+                  diss_l_u, diss_l_v, diss_l_w, flux_l_diss, flux_l_e,         & 
+                  flux_l_nc, flux_l_nr, flux_l_pt, flux_l_q, flux_l_qc,        &
+                  flux_l_qr, flux_l_s, flux_l_sa, flux_l_u, flux_l_v,          &
+                  flux_l_w, diss_s_diss, diss_s_e, diss_s_nc,  diss_s_nr,      &
+                  diss_s_pt, diss_s_q, diss_s_qc, diss_s_qr, diss_s_s,         &
+                  diss_s_sa, diss_s_u, diss_s_v,  diss_s_w, flux_s_diss,       &
+                  flux_s_e, flux_s_nc, flux_s_nr, flux_s_pt, flux_s_q,         &
+                  flux_s_qc, flux_s_qr, flux_s_s, flux_s_sa, flux_s_u,         &
+                  flux_s_v, flux_s_w
 
        USE constants,                                                          &
@@ -265,5 +271,5 @@
            ONLY:  cloud_physics, humidity, loop_optimization,                  &
                   passive_scalar, microphysics_morrison, microphysics_seifert, &
-                  ocean, ws_scheme_mom, ws_scheme_sca
+                  ocean, rans_tke_e, ws_scheme_mom, ws_scheme_sca
 
        USE indices,                                                            &
@@ -378,4 +384,11 @@
                        diss_l_pt(nzb+1:nzt,nys:nyn,0:threads_per_task-1),      &
                        diss_l_e(nzb+1:nzt,nys:nyn,0:threads_per_task-1) )
+
+             IF ( rans_tke_e )  THEN
+                ALLOCATE( flux_s_diss(nzb+1:nzt,0:threads_per_task-1),         &
+                          diss_s_diss(nzb+1:nzt,0:threads_per_task-1) )
+                ALLOCATE( flux_l_diss(nzb+1:nzt,nys:nyn,0:threads_per_task-1), &
+                          diss_l_diss(nzb+1:nzt,nys:nyn,0:threads_per_task-1) )
+             ENDIF
 
              IF ( humidity )  THEN
@@ -437,11 +450,12 @@
 
        USE control_parameters,                                                 &
-           ONLY:  inflow_l, inflow_n, inflow_r, inflow_s, momentum_advec,      &
+           ONLY:  force_bound_l, force_bound_n, force_bound_r, force_bound_s,  &
+                  inflow_l, inflow_n, inflow_r, inflow_s, momentum_advec,      &
                   nest_bound_l, nest_bound_n, nest_bound_r, nest_bound_s,      &
                   outflow_l, outflow_n, outflow_r, outflow_s, scalar_advec
 
        USE indices,                                                            &
-           ONLY:  advc_flags_1, advc_flags_2, nbgp, nxl, nxlu, nxr, nyn, nys,  &
-                  nysv, nzb, nzt, wall_flags_0
+           ONLY:  advc_flags_1, advc_flags_2, nbgp, nxl, nxlg, nxlu, nxr, nxrg,&
+                  nyn, nyng, nys, nysg, nysv, nzb, nzt, wall_flags_0
 
        USE kinds
@@ -458,5 +472,8 @@
        LOGICAL      ::  flag_set !< steering variable for advection flags
    
-
+       ALLOCATE( advc_flags_1(nzb:nzt+1,nysg:nyng,nxlg:nxrg),                  &
+                 advc_flags_2(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
+       advc_flags_1 = 0
+       advc_flags_2 = 0
        IF ( scalar_advec == 'ws-scheme' )  THEN
 !
@@ -474,7 +491,9 @@
                     .OR.  .NOT. BTEST(wall_flags_0(k,j,i+2),0)                 &   
                     .OR.  .NOT. BTEST(wall_flags_0(k,j,i-1),0) )               &
-                      .OR.  ( ( inflow_l .OR. outflow_l .OR. nest_bound_l )    &
+                      .OR.  ( ( inflow_l .OR. outflow_l .OR. nest_bound_l  .OR.&
+                                force_bound_l )                                &
                             .AND.  i == nxl   )                                &
-                      .OR.  ( ( inflow_r .OR. outflow_r .OR. nest_bound_r )    &
+                      .OR.  ( ( inflow_r .OR. outflow_r .OR. nest_bound_r  .OR.&
+                                force_bound_r )                                &
                             .AND.  i == nxr   ) )                              &
                    THEN
@@ -491,8 +510,10 @@
                             )                                                  &
                                                     .OR.                       &
-                            ( ( inflow_r .OR. outflow_r .OR. nest_bound_r )    &
+                            ( ( inflow_r .OR. outflow_r .OR. nest_bound_r  .OR.&
+                                force_bound_r )                                &
                               .AND. i == nxr-1 )    .OR.                       &
-                            ( ( inflow_l .OR. outflow_l .OR. nest_bound_l )    &
-                              .AND. i == nxlu  ) )                             &
+                            ( ( inflow_l .OR. outflow_l .OR. nest_bound_l  .OR.&
+                                force_bound_l )                                &
+                              .AND. i == nxlu  ) )                             & ! why not nxl+1
                    THEN
                       advc_flags_1(k,j,i) = IBSET( advc_flags_1(k,j,i), 1 )
@@ -511,7 +532,9 @@
                     .OR.  .NOT. BTEST(wall_flags_0(k,j+2,i),0)                 &   
                     .OR.  .NOT. BTEST(wall_flags_0(k,j-1,i),0))                &
-                      .OR.  ( ( inflow_s .OR. outflow_s .OR. nest_bound_s )    &
+                      .OR.  ( ( inflow_s .OR. outflow_s .OR. nest_bound_s  .OR.&
+                                force_bound_s )                                &
                             .AND.  j == nys   )                                &
-                      .OR.  ( ( inflow_n .OR. outflow_n .OR. nest_bound_n )    &
+                      .OR.  ( ( inflow_n .OR. outflow_n .OR. nest_bound_n  .OR.&
+                                force_bound_n )                                &
                             .AND.  j == nyn   ) )                              &
                    THEN
@@ -530,7 +553,9 @@
                             )                                                  &
                                                     .OR.                       &
-                            ( ( inflow_s .OR. outflow_s .OR. nest_bound_s )    &
-                              .AND. j == nysv  )    .OR.                       &
-                            ( ( inflow_n .OR. outflow_n .OR. nest_bound_n )    &
+                            ( ( inflow_s .OR. outflow_s .OR. nest_bound_s  .OR.&
+                                force_bound_s )                                &
+                              .AND. j == nysv  )    .OR.                       & ! why not nys+1
+                            ( ( inflow_n .OR. outflow_n .OR. nest_bound_n  .OR.&
+                                force_bound_n )                                &
                               .AND. j == nyn-1 ) )                             &          
                    THEN
@@ -620,7 +645,9 @@
 !--                WS1 (9), WS3 (10), WS5 (11)
                    IF ( .NOT. BTEST(wall_flags_0(k,j,i+1),1)  .OR.             &
-                            ( ( inflow_l .OR. outflow_l .OR. nest_bound_l )    &
+                            ( ( inflow_l .OR. outflow_l .OR. nest_bound_l  .OR.&
+                                force_bound_l )                                &
                               .AND. i <= nxlu  )    .OR.                       &
-                            ( ( inflow_r .OR. outflow_r .OR. nest_bound_r )    &
+                            ( ( inflow_r .OR. outflow_r .OR. nest_bound_r  .OR.&
+                                force_bound_r )                                &
                               .AND. i == nxr   ) )                             &
                    THEN
@@ -630,7 +657,9 @@
                               .NOT. BTEST(wall_flags_0(k,j,i-1),1) )           &
                                                         .OR.                   &
-                            ( ( inflow_r .OR. outflow_r .OR. nest_bound_r )    &
+                            ( ( inflow_r .OR. outflow_r .OR. nest_bound_r  .OR.&
+                                force_bound_r )                                &
                               .AND. i == nxr-1 )    .OR.                       &
-                            ( ( inflow_l .OR. outflow_l .OR. nest_bound_l )    &
+                            ( ( inflow_l .OR. outflow_l .OR. nest_bound_l  .OR.&
+                                force_bound_l )                                &
                               .AND. i == nxlu+1) )                             &
                    THEN
@@ -652,7 +681,9 @@
 !--                WS1 (12), WS3 (13), WS5 (14)
                    IF ( .NOT. BTEST(wall_flags_0(k,j+1,i),1)   .OR.            &
-                            ( ( inflow_s .OR. outflow_s .OR. nest_bound_s )    &
+                            ( ( inflow_s .OR. outflow_s .OR. nest_bound_s  .OR.&
+                                force_bound_s )                                &
                               .AND. j == nys   )    .OR.                       &
-                            ( ( inflow_n .OR. outflow_n .OR. nest_bound_n )    &
+                            ( ( inflow_n .OR. outflow_n .OR. nest_bound_n  .OR.&
+                                force_bound_n )                                &
                               .AND. j == nyn   ) )                             &
                    THEN
@@ -662,7 +693,9 @@
                               .NOT. BTEST(wall_flags_0(k,j-1,i),1) )           &
                                                         .OR.                   &
-                            ( ( inflow_s .OR. outflow_s .OR. nest_bound_s )    &
+                            ( ( inflow_s .OR. outflow_s .OR. nest_bound_s  .OR.&
+                                force_bound_s )                                &
                               .AND. j == nysv  )    .OR.                       &
-                            ( ( inflow_n .OR. outflow_n .OR. nest_bound_n )    &
+                            ( ( inflow_n .OR. outflow_n .OR. nest_bound_n  .OR.&
+                                force_bound_n )                                &
                               .AND. j == nyn-1 ) )                             &
                    THEN
@@ -746,7 +779,9 @@
 !--                WS1 (18), WS3 (19), WS5 (20)
                    IF ( .NOT. BTEST(wall_flags_0(k,j,i+1),2)  .OR.             &
-                            ( ( inflow_l .OR. outflow_l .OR. nest_bound_l )    &
+                            ( ( inflow_l .OR. outflow_l .OR. nest_bound_l  .OR.&
+                                force_bound_l )                                &
                               .AND. i == nxl   )    .OR.                       &
-                            ( ( inflow_r .OR. outflow_r .OR. nest_bound_r )    &
+                            ( ( inflow_r .OR. outflow_r .OR. nest_bound_r  .OR.&
+                                force_bound_r )                                &
                               .AND. i == nxr   ) )                             &
                   THEN
@@ -758,7 +793,9 @@
                               .NOT. BTEST(wall_flags_0(k,j,i-1),2)             &
                                                     .OR.                       &
-                            ( ( inflow_r .OR. outflow_r .OR. nest_bound_r )    &
+                            ( ( inflow_r .OR. outflow_r .OR. nest_bound_r  .OR.&
+                                force_bound_r )                                &
                               .AND. i == nxr-1 )    .OR.                       &
-                            ( ( inflow_l .OR. outflow_l .OR. nest_bound_l )    &
+                            ( ( inflow_l .OR. outflow_l .OR. nest_bound_l  .OR.&
+                                force_bound_l )                                &
                               .AND. i == nxlu  ) )                             &
                    THEN
@@ -780,7 +817,9 @@
 !--                WS1 (21), WS3 (22), WS5 (23)
                    IF ( .NOT. BTEST(wall_flags_0(k,j+1,i),2) .OR.              &
-                            ( ( inflow_s .OR. outflow_s .OR. nest_bound_s )    &
+                            ( ( inflow_s .OR. outflow_s .OR. nest_bound_s  .OR.&
+                                force_bound_s )                                &
                               .AND. j <= nysv  )    .OR.                       &
-                            ( ( inflow_n .OR. outflow_n .OR. nest_bound_n )    &
+                            ( ( inflow_n .OR. outflow_n .OR. nest_bound_n  .OR.&
+                                force_bound_n )                                &
                               .AND. j == nyn   ) )                             &
                    THEN
@@ -790,7 +829,9 @@
                               .NOT. BTEST(wall_flags_0(k,j-1,i),2) )           &
                                                         .OR.                   &
-                            ( ( inflow_s .OR. outflow_s .OR. nest_bound_s )    &
+                            ( ( inflow_s .OR. outflow_s .OR. nest_bound_s  .OR.&
+                                force_bound_s )                                &
                               .AND. j == nysv+1)    .OR.                       &
-                            ( ( inflow_n .OR. outflow_n .OR. nest_bound_n )    &
+                            ( ( inflow_n .OR. outflow_n .OR. nest_bound_n  .OR.&
+                                force_bound_n )                                &
                               .AND. j == nyn-1 ) )                             &
                    THEN
@@ -873,7 +914,9 @@
 !--                WS1 (27), WS3 (28), WS5 (29)
                    IF ( .NOT. BTEST(wall_flags_0(k,j,i+1),3) .OR.              &
-                            ( ( inflow_l .OR. outflow_l .OR. nest_bound_l )    &
+                            ( ( inflow_l .OR. outflow_l .OR. nest_bound_l  .OR.&
+                                force_bound_l )                                &
                               .AND. i == nxl   )    .OR.                       &
-                            ( ( inflow_r .OR. outflow_r .OR. nest_bound_r )    &
+                            ( ( inflow_r .OR. outflow_r .OR. nest_bound_r  .OR.&
+                                force_bound_r )                                &
                               .AND. i == nxr   ) )                             &
                    THEN
@@ -883,7 +926,9 @@
                               .NOT. BTEST(wall_flags_0(k,j,i-1),3) )           &
                                                         .OR.                   &
-                            ( ( inflow_r .OR. outflow_r .OR. nest_bound_r )    &
+                            ( ( inflow_r .OR. outflow_r .OR. nest_bound_r  .OR.&
+                                force_bound_r )                                &
                               .AND. i == nxr-1 )    .OR.                       &
-                            ( ( inflow_l .OR. outflow_l .OR. nest_bound_l )    &
+                            ( ( inflow_l .OR. outflow_l .OR. nest_bound_l  .OR.&
+                                force_bound_l )                                &
                               .AND. i == nxlu  ) )                             &
                    THEN
@@ -905,7 +950,9 @@
 !--                WS1 (30), WS3 (31), WS5 (32)
                    IF ( .NOT. BTEST(wall_flags_0(k,j+1,i),3) .OR.              &
-                            ( ( inflow_s .OR. outflow_s .OR. nest_bound_s )    &
+                            ( ( inflow_s .OR. outflow_s .OR. nest_bound_s  .OR.&
+                                force_bound_s )                                &
                               .AND. j == nys   )    .OR.                       &
-                            ( ( inflow_n .OR. outflow_n .OR. nest_bound_n )    &
+                            ( ( inflow_n .OR. outflow_n .OR. nest_bound_n  .OR.&
+                                force_bound_n )                                &
                               .AND. j == nyn   ) )                             &
                    THEN
@@ -915,7 +962,9 @@
                               .NOT. BTEST(wall_flags_0(k,j-1,i),3) )           &
                                                         .OR.                   &
-                            ( ( inflow_s .OR. outflow_s .OR. nest_bound_s )    &
+                            ( ( inflow_s .OR. outflow_s .OR. nest_bound_s  .OR.&
+                                force_bound_s )                                &
                               .AND. j == nysv  )    .OR.                       &
-                            ( ( inflow_n .OR. outflow_n .OR. nest_bound_n )    &
+                            ( ( inflow_n .OR. outflow_n .OR. nest_bound_n  .OR.&
+                                force_bound_n )                                &
                               .AND. j == nyn-1 ) )                             &
                    THEN
@@ -1003,25 +1052,29 @@
 !
 !--       Exchange ghost points for advection flags
-          CALL exchange_horiz_int( advc_flags_1, nbgp )
-          CALL exchange_horiz_int( advc_flags_2, nbgp )
+          CALL exchange_horiz_int( advc_flags_1, nys, nyn, nxl, nxr, nzt, nbgp )
+          CALL exchange_horiz_int( advc_flags_2, nys, nyn, nxl, nxr, nzt, nbgp )
 !
 !--       Set boundary flags at inflow and outflow boundary in case of 
 !--       non-cyclic boundary conditions.
-         IF ( inflow_l .OR. outflow_l .OR. nest_bound_l )  THEN
+          IF ( inflow_l      .OR.  outflow_l  .OR.                             &
+               nest_bound_l  .OR.  force_bound_l )  THEN
              advc_flags_1(:,:,nxl-1) = advc_flags_1(:,:,nxl)
              advc_flags_2(:,:,nxl-1) = advc_flags_2(:,:,nxl)
-         ENDIF
-
-         IF ( inflow_r .OR. outflow_r .OR. nest_bound_r )  THEN
+          ENDIF
+
+          IF ( inflow_r      .OR.  outflow_r  .OR.                             &
+               nest_bound_r  .OR.  force_bound_r )  THEN
             advc_flags_1(:,:,nxr+1) = advc_flags_1(:,:,nxr)
             advc_flags_2(:,:,nxr+1) = advc_flags_2(:,:,nxr)
           ENDIF
 
-          IF ( inflow_n .OR. outflow_n .OR. nest_bound_n )  THEN
+          IF ( inflow_n      .OR.  outflow_n  .OR.                             &
+               nest_bound_n  .OR.  force_bound_n )  THEN
              advc_flags_1(:,nyn+1,:) = advc_flags_1(:,nyn,:)
              advc_flags_2(:,nyn+1,:) = advc_flags_2(:,nyn,:)
           ENDIF
 
-          IF ( inflow_s .OR. outflow_s  .OR. nest_bound_s )  THEN
+          IF ( inflow_s      .OR.  outflow_s  .OR.                             &
+               nest_bound_s  .OR.  force_bound_s )  THEN
              advc_flags_1(:,nys-1,:) = advc_flags_1(:,nys,:)
              advc_flags_2(:,nys-1,:) = advc_flags_2(:,nys,:)
Index: palm/trunk/SOURCE/average_3d_data.f90
===================================================================
--- palm/trunk/SOURCE/average_3d_data.f90	(revision 2693)
+++ palm/trunk/SOURCE/average_3d_data.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file average_3d_data.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
@@ -25,4 +25,8 @@
 ! -----------------
 ! $Id$
+! Implement call for turbulence_closure_mod (TG)
+! Implementation of chemistry module (FK)
+! 
+! 2292 2017-06-20 09:51:42Z schwenkel
 ! Implementation of new microphysic scheme: cloud_scheme = 'morrison' 
 ! includes two more prognostic equations for cloud drop concentration (nc)  
@@ -112,7 +116,12 @@
     USE averaging
 
+#if defined( __chem )
+    USE chemistry_model_mod,                                                   &
+        ONLY:  chem_3d_data_averaging
+#endif
+
     USE control_parameters,                                                    &
-        ONLY:  average_count_3d, doav, doav_n, land_surface, urban_surface,    &
-               varnamelength
+        ONLY:  air_chemistry, average_count_3d, doav, doav_n, land_surface,    &
+               urban_surface, varnamelength
 
     USE cpulog,                                                                &
@@ -130,6 +139,11 @@
         ONLY:  radiation, radiation_3d_data_averaging
 
+    USE turbulence_closure_mod,                                                &
+        ONLY:  tcm_3d_data_averaging
+
     USE urban_surface_mod,                                                     &
         ONLY:  usm_average_3d_data
+
+
 
 
@@ -459,9 +473,12 @@
           CASE DEFAULT
 !
+!--          Turbulence closure module
+             CALL tcm_3d_data_averaging( 'average', doav(ii) )
+
+!
 !--          Land surface quantity
              IF ( land_surface )  THEN
                 CALL lsm_3d_data_averaging( 'average', doav(ii) )
              ENDIF
-
 !
 !--          Radiation quantity
@@ -469,5 +486,11 @@
                 CALL radiation_3d_data_averaging( 'average', doav(ii) )
              ENDIF
-
+!
+!--          Chemistry quantity
+#if defined( __chem )
+             IF ( air_chemistry )  THEN
+                CALL chem_3d_data_averaging( 'average', doav(ii) )
+             ENDIF
+#endif
 !
 !--          User-defined quantity
Index: palm/trunk/SOURCE/boundary_conds.f90
===================================================================
--- palm/trunk/SOURCE/boundary_conds.f90	(revision 2693)
+++ palm/trunk/SOURCE/boundary_conds.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file boundary_conds.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
@@ -25,4 +25,8 @@
 ! -----------------
 ! $Id$
+! Adjust boundary conditions for e and diss in case of TKE-e closure (TG)
+! Implementation of chemistry module (FK)
+! 
+! 2569 2017-10-20 11:54:42Z kanani
 ! Removed redundant code for ibc_s_b=1 and ibc_q_b=1
 ! 
@@ -166,12 +170,18 @@
     USE arrays_3d,                                                             &
         ONLY:  c_u, c_u_m, c_u_m_l, c_v, c_v_m, c_v_m_l, c_w, c_w_m, c_w_m_l,  &
-               dzu, e_p, nc_p, nr_p, pt, pt_p, q, q_p, qc_p, qr_p, s, s_p, sa, & 
-               sa_p, u, ug, u_init, u_m_l, u_m_n, u_m_r, u_m_s, u_p,           &
+               diss_p, dzu, e_p, nc_p, nr_p, pt, pt_p, q, q_p, qc_p, qr_p, s,  & 
+               s_p, sa, sa_p, u, ug, u_init, u_m_l, u_m_n, u_m_r, u_m_s, u_p,  &
                v, vg, v_init, v_m_l, v_m_n, v_m_r, v_m_s, v_p,                 &
                w, w_p, w_m_l, w_m_n, w_m_r, w_m_s, pt_init
-               
+
+#if defined( __chem )
+    USE chemistry_model_mod,                                                   &
+        ONLY:  chem_boundary_conds 
+#endif
+              
     USE control_parameters,                                                    &
-        ONLY:  bc_pt_t_val, bc_q_t_val, bc_s_t_val, constant_diffusion,        &
-               cloud_physics, coupling_mode, dt_3d, humidity,                  &
+        ONLY:  air_chemistry, bc_pt_t_val, bc_q_t_val, bc_s_t_val,             &
+               constant_diffusion, cloud_physics, coupling_mode, dt_3d,        &
+               force_bound_l, force_bound_s, forcing, humidity,                &
                ibc_pt_b, ibc_pt_t, ibc_q_b, ibc_q_t, ibc_s_b, ibc_s_t,         &
                ibc_sa_t, ibc_uv_b, ibc_uv_t, inflow_l, inflow_n, inflow_r,     &
@@ -179,5 +189,6 @@
                microphysics_morrison, microphysics_seifert, nest_domain,       &
                nest_bound_l, nest_bound_s, nudging, ocean, outflow_l,          &
-               outflow_n, outflow_r, outflow_s, passive_scalar, tsc, use_cmax
+               outflow_n, outflow_r, outflow_s, passive_scalar, rans_tke_e,    &
+               tsc, use_cmax
 
     USE grid_variables,                                                        &
@@ -309,21 +320,29 @@
     IF ( .NOT. constant_diffusion )  THEN
 
-       DO  l = 0, 1
-!
-!--       Set kb, for upward-facing surfaces value at topography top (k-1) is set,
-!--       for downward-facing surfaces at topography bottom (k+1). 
-          kb = MERGE( -1, 1, l == 0 )
-          !$OMP PARALLEL DO PRIVATE( i, j, k )
-          DO  m = 1, bc_h(l)%ns
-             i = bc_h(l)%i(m)            
-             j = bc_h(l)%j(m)
-             k = bc_h(l)%k(m)
-             e_p(k+kb,j,i) = e_p(k,j,i)
-          ENDDO
-       ENDDO
+       IF ( .NOT. rans_tke_e )  THEN
+          DO  l = 0, 1
+!
+!--         Set kb, for upward-facing surfaces value at topography top (k-1) is set,
+!--         for downward-facing surfaces at topography bottom (k+1). 
+             kb = MERGE( -1, 1, l == 0 )
+             !$OMP PARALLEL DO PRIVATE( i, j, k )
+             DO  m = 1, bc_h(l)%ns
+                i = bc_h(l)%i(m)            
+                j = bc_h(l)%j(m)
+                k = bc_h(l)%k(m)
+                e_p(k+kb,j,i) = e_p(k,j,i)
+             ENDDO
+          ENDDO
+       ENDIF
 
        IF ( .NOT. nest_domain )  THEN
           e_p(nzt+1,:,:) = e_p(nzt,:,:)
        ENDIF
+    ENDIF
+
+!
+!-- Boundary conditions for TKE dissipation rate
+    IF ( rans_tke_e .AND. .NOT. nest_domain )  THEN
+       diss_p(nzt+1,:,:) = diss_p(nzt,:,:)
     ENDIF
 
@@ -500,4 +519,9 @@
 
     ENDIF    
+!
+!-- Top/bottom boundary conditions for chemical species
+#if defined( __chem )
+    IF ( air_chemistry )  CALL chem_boundary_conds( 'set_bc_bottomtop' )
+#endif
 !
 !-- In case of inflow or nest boundary at the south boundary the boundary for v
@@ -523,9 +547,9 @@
 !-- in case of nest boundaries. This must not be done in case of vertical nesting 
 !-- mode as in that case the lateral boundaries are actually cyclic.
-    IF ( nesting_mode /= 'vertical' )  THEN
-       IF ( nest_bound_s )  THEN
+    IF ( nesting_mode /= 'vertical'  .OR.  forcing )  THEN
+       IF ( nest_bound_s  .OR.  force_bound_s )  THEN
           v_p(:,nys,:) = v_p(:,nys-1,:)
        ENDIF
-       IF ( nest_bound_l )  THEN
+       IF ( nest_bound_l  .OR.  force_bound_l )  THEN
           u_p(:,:,nxl) = u_p(:,:,nxl-1)
        ENDIF
@@ -537,4 +561,5 @@
        pt_p(:,nys-1,:)     = pt_p(:,nys,:)
        IF ( .NOT. constant_diffusion )  e_p(:,nys-1,:) = e_p(:,nys,:)
+       IF ( rans_tke_e )  diss_p(:,nys-1,:) = diss_p(:,nys,:)
        IF ( humidity )  THEN
           q_p(:,nys-1,:) = q_p(:,nys,:)
@@ -551,5 +576,6 @@
     ELSEIF ( outflow_n )  THEN
        pt_p(:,nyn+1,:)     = pt_p(:,nyn,:)
-       IF ( .NOT. constant_diffusion     )  e_p(:,nyn+1,:) = e_p(:,nyn,:)
+       IF ( .NOT. constant_diffusion )  e_p(:,nyn+1,:) = e_p(:,nyn,:)
+       IF ( rans_tke_e )  diss_p(:,nyn+1,:) = diss_p(:,nyn,:)
        IF ( humidity )  THEN
           q_p(:,nyn+1,:) = q_p(:,nyn,:)
@@ -566,5 +592,6 @@
     ELSEIF ( outflow_l )  THEN
        pt_p(:,:,nxl-1)     = pt_p(:,:,nxl)
-       IF ( .NOT. constant_diffusion     )  e_p(:,:,nxl-1) = e_p(:,:,nxl)
+       IF ( .NOT. constant_diffusion )  e_p(:,:,nxl-1) = e_p(:,:,nxl)
+       IF ( rans_tke_e )  diss_p(:,:,nxl-1) = diss_p(:,:,nxl)
        IF ( humidity )  THEN
           q_p(:,:,nxl-1) = q_p(:,:,nxl)
@@ -581,5 +608,6 @@
     ELSEIF ( outflow_r )  THEN
        pt_p(:,:,nxr+1)     = pt_p(:,:,nxr)
-       IF ( .NOT. constant_diffusion     )  e_p(:,:,nxr+1) = e_p(:,:,nxr)
+       IF ( .NOT. constant_diffusion )  e_p(:,:,nxr+1) = e_p(:,:,nxr)
+       IF ( rans_tke_e )  diss_p(:,:,nxr+1) = diss_p(:,:,nxr)
        IF ( humidity )  THEN
           q_p(:,:,nxr+1) = q_p(:,:,nxr)
@@ -595,4 +623,11 @@
        IF ( passive_scalar )  s_p(:,:,nxr+1) = s_p(:,:,nxr)
     ENDIF
+
+!
+!-- Lateral boundary conditions for chemical species
+#if defined( __chem )
+    IF ( air_chemistry )  CALL chem_boundary_conds( 'set_bc_lateral' )    
+#endif
+
 
 !
Index: palm/trunk/SOURCE/buoyancy.f90
===================================================================
--- palm/trunk/SOURCE/buoyancy.f90	(revision 2693)
+++ palm/trunk/SOURCE/buoyancy.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file buoyancy.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/calc_liquid_water_content.f90
===================================================================
--- palm/trunk/SOURCE/calc_liquid_water_content.f90	(revision 2693)
+++ palm/trunk/SOURCE/calc_liquid_water_content.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file calc_liquid_water_content.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/calc_mean_profile.f90
===================================================================
--- palm/trunk/SOURCE/calc_mean_profile.f90	(revision 2693)
+++ palm/trunk/SOURCE/calc_mean_profile.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file calc_mean_profile.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
@@ -25,4 +25,8 @@
 ! -----------------
 ! $Id$
+! Enable usage also during initialization, required for initialization of 
+! radiation and land-surface model (MS)
+! 
+! 2233 2017-05-30 18:08:54Z suehring
 !
 ! 2232 2017-05-30 17:47:52Z suehring
@@ -109,7 +113,9 @@
 !--    is done only for the first respective intermediate timestep in order to
 !--    spare communication time and to produce identical model results with jobs
-!--    which are calling flow_statistics at different time intervals.
+!--    which are calling flow_statistics at different time intervals. At 
+!--    initialization, intermediate_timestep_count = 0 is considered as well.
+
        IF ( .NOT. flow_statistics_called  .AND.                                &
-            intermediate_timestep_count == 1 )  THEN
+            intermediate_timestep_count <= 1 )  THEN
 
 !
Index: palm/trunk/SOURCE/calc_radiation.f90
===================================================================
--- palm/trunk/SOURCE/calc_radiation.f90	(revision 2693)
+++ palm/trunk/SOURCE/calc_radiation.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file calc_radiation.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/check_for_restart.f90
===================================================================
--- palm/trunk/SOURCE/check_for_restart.f90	(revision 2693)
+++ palm/trunk/SOURCE/check_for_restart.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file check_for_restart.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/check_open.f90
===================================================================
--- palm/trunk/SOURCE/check_open.f90	(revision 2693)
+++ palm/trunk/SOURCE/check_open.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file check_open.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
@@ -12,5 +12,5 @@
 ! A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 !
-! You should have received a copy of the GNU fGeneral Public License along with
+! You should have received a copy of the GNU General Public License along with
 ! PALM. If not, see <http://www.gnu.org/licenses/>.
 !
Index: palm/trunk/SOURCE/check_parameters.f90
===================================================================
--- palm/trunk/SOURCE/check_parameters.f90	(revision 2693)
+++ palm/trunk/SOURCE/check_parameters.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file check_parameters.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
@@ -25,4 +25,10 @@
 ! -----------------
 ! $Id$
+! Implementation of uv exposure model (FK)
+! + new possible value for dissipation_1d
+! Added checks for turbulence_closure_mod (TG)
+! Implementation of chemistry module (FK)
+! 
+! 2689 2017-12-12 17:46:55Z Giersch
 ! Bugfix in if query
 ! 
@@ -552,4 +558,10 @@
 
     USE arrays_3d
+#if defined( __chem )
+    USE chemistry_model_mod,                                                   &
+        ONLY:  chem_boundary_conds, chem_check_data_output,                    &
+               chem_check_data_output_pr, chem_species                 
+    USE chem_modules
+#endif
     USE cloud_parameters
     USE constants
@@ -570,4 +582,8 @@
     USE model_1d_mod,                                                          &
         ONLY:  damp_level_1d, damp_level_ind_1d
+
+    USE netcdf_data_input_mod,                                                 &
+        ONLY:  init_model, input_pids_static, netcdf_data_input_check_dynamic, &
+               netcdf_data_input_check_static
 
     USE netcdf_interface,                                                      &
@@ -596,6 +612,10 @@
         ONLY:  stg_check_parameters
     USE transpose_indices
+    USE turbulence_closure_mod,                                                &
+        ONLY:  tcm_check_data_output, tcm_check_parameters
     USE urban_surface_mod,                                                     &
         ONLY:  usm_check_data_output, usm_check_parameters
+    USE uv_exposure_model_mod,                                                 &
+        ONLY:  uvem_check_data_output
     USE wind_turbine_model_mod,                                                &
         ONLY:  wtm_check_parameters
@@ -623,4 +643,5 @@
     INTEGER(iwp) ::  netcdf_data_format_save         !<
     INTEGER(iwp) ::  position                        !<
+    INTEGER(iwp) ::  lsp                             !< running index for chem spcs.
 
     LOGICAL     ::  found                            !<
@@ -633,5 +654,8 @@
 
     CALL location_message( 'checking parameters', .FALSE. )
-
+!
+!-- At first, check static and dynamic input for consistency
+    CALL netcdf_data_input_check_dynamic
+    CALL netcdf_data_input_check_static
 !
 !-- Check for overlap combinations, which are not realized yet
@@ -673,4 +697,5 @@
 #if defined( __parallel )
 
+
        IF ( myid == 0 ) THEN
           CALL MPI_SEND( dt_coupling, 1, MPI_REAL, target_id, 11, comm_inter,  &
@@ -849,4 +874,5 @@
        CALL message( 'check_parameters', 'PA0001', 1, 2, 0, 6, 0 )
     ENDIF
+
 
 !
@@ -936,4 +962,8 @@
 
     ENDIF
+
+!
+!-- Check turbulence closure setup
+    CALL tcm_check_parameters
 
 !
@@ -1092,4 +1122,5 @@
        CALL message( 'check_parameters', 'PA0469', 1, 2, 0, 6, 0 )
     ENDIF
+
 !
 !-- Check whether there are any illegal values
@@ -1244,5 +1275,6 @@
 
              CASE ( 'set_constant_profiles', 'set_1d-model_profiles',          &
-                    'by_user', 'initialize_vortex', 'initialize_ptanom' )
+                    'by_user', 'initialize_vortex', 'initialize_ptanom',       &
+                    'inifor' )
                 action = action(position+1:)
 
@@ -1347,5 +1379,11 @@
        IF ( ocean          )  sa_init = sa_surface
        IF ( passive_scalar )  s_init  = s_surface
-
+#if defined(__chem )                              
+       IF ( air_chemistry )  THEN
+         DO lsp = 1, nvar
+            chem_species(lsp)%conc_pr_init = cs_surface(lsp)      
+         ENDDO
+       ENDIF
+#endif 
 !
 !--
@@ -1558,4 +1596,18 @@
        ENDIF
 !
+!--    Compute initial chemistry profile using the given chemical species gradients
+#if defined( __chem )
+       IF ( air_chemistry )  THEN                                                          
+         DO lsp = 1, nvar
+          CALL init_vertical_profiles( cs_vertical_gradient_level_ind(lsp,:),  &
+                                       cs_vertical_gradient_level(lsp,:),      &
+                                       cs_vertical_gradient(lsp,:),            &
+                                       chem_species(lsp)%conc_pr_init,         &
+                                       cs_surface(lsp), bc_cs_t_val(lsp) )
+         ENDDO
+       ENDIF
+#endif
+!
+!
 !--    If required, compute initial salinity profile using the given salinity
 !--    gradients
@@ -1610,5 +1662,11 @@
 
 !
-!-- Compute Coriolis parameter
+!-- Overwrite latitude if necessary and compute Coriolis parameter. 
+!-- To do - move initialization of f and fs to coriolis_mod.
+    IF ( input_pids_static )  THEN
+       latitude  = init_model%latitude
+       longitude = init_model%longitude
+    ENDIF
+
     f  = 2.0_wp * omega * SIN( latitude / 180.0_wp * pi )
     fs = 2.0_wp * omega * COS( latitude / 180.0_wp * pi )
@@ -1799,5 +1857,6 @@
        ibc_p_t = 0
 !-- TO_DO: later set bc_p_t to neumann before, in case of nested domain
-    ELSEIF ( bc_p_t == 'neumann' .OR. bc_p_t == 'nested' )  THEN
+    ELSEIF ( bc_p_t == 'neumann' .OR. bc_p_t == 'nested'  .OR.                 &
+             bc_p_t == 'forcing'  )  THEN
        ibc_p_t = 1
     ELSE
@@ -1829,5 +1888,5 @@
     ELSEIF ( bc_pt_t == 'initial_gradient' )  THEN
        ibc_pt_t = 2
-    ELSEIF ( bc_pt_t == 'nested' )  THEN
+    ELSEIF ( bc_pt_t == 'nested'  .OR.  bc_pt_t == 'forcing' )  THEN
        ibc_pt_t = 3
     ELSE
@@ -2029,4 +2088,11 @@
        ENDIF
     ENDIF
+
+!
+!-- Boundary conditions for chemical species
+#if defined( __chem )
+    IF ( air_chemistry )  CALL chem_boundary_conds( 'init' )
+#endif
+
 !
 !-- Boundary conditions for horizontal components of wind speed
@@ -2068,5 +2134,5 @@
        ELSEIF ( bc_uv_t == 'neumann' )  THEN
           ibc_uv_t = 1
-       ELSEIF ( bc_uv_t == 'nested' )  THEN
+       ELSEIF ( bc_uv_t == 'nested'  .OR.  bc_uv_t == 'forcing' )  THEN
           ibc_uv_t = 3
        ELSE
@@ -2982,4 +3048,11 @@
              ENDIF
 
+#if defined( __chem )
+             IF ( unit == 'illegal' )  THEN                                        
+                CALL chem_check_data_output_pr( data_output_pr(i), i,          &
+                                                unit, dopr_unit(i) )
+             ENDIF 
+#endif
+
              IF ( unit == 'illegal' )  THEN
                 unit = ''
@@ -3261,9 +3334,22 @@
           CASE DEFAULT
 
-             CALL lsm_check_data_output ( var, unit, i, ilen, k )
+             CALL tcm_check_data_output ( var, unit, i, ilen, k )
+
+             IF ( unit == 'illegal' )  THEN
+                CALL lsm_check_data_output ( var, unit, i, ilen, k )
+             ENDIF
 
              IF ( unit == 'illegal' )  THEN
                 CALL radiation_check_data_output( var, unit, i, ilen, k )
              ENDIF
+
+!
+!--          Block of chemistry model outputs
+#if defined( __chem )
+             IF ( unit == 'illegal'  .AND.  air_chemistry                      &
+                                     .AND.  var(1:3) == 'kc_' )  THEN
+                CALL chem_check_data_output( var, unit, i, ilen, k )
+             ENDIF
+#endif
 
 !
@@ -3277,4 +3363,10 @@
              IF ( unit == 'illegal' .AND. plant_canopy .AND. var(1:4) == 'pcm_' ) THEN
                  CALL pcm_check_data_output( var, unit )
+             ENDIF
+
+!
+!--          Block of uv exposure model outputs
+             IF ( unit == 'illegal' .AND. uv_exposure .AND. var(1:5) == 'uvem_' )  THEN
+                CALL uvem_check_data_output( var, unit, i, ilen, k )
              ENDIF
 
@@ -3669,5 +3761,5 @@
           dist_nxl    = MAX( inflow_disturbance_begin, nxl )
           dist_nxr(1) = MIN( inflow_disturbance_end, nxr )
-       ELSEIF ( bc_lr == 'nested' )  THEN
+       ELSEIF ( bc_lr == 'nested'  .OR.  bc_lr == 'forcing' )  THEN
           dist_nxl = MAX( inflow_disturbance_begin, nxl )
        ENDIF
@@ -3678,5 +3770,5 @@
           dist_nys    = MAX( inflow_disturbance_begin, nys )
           dist_nyn(1) = MIN( inflow_disturbance_end, nyn )
-       ELSEIF ( bc_ns == 'nested' )  THEN
+       ELSEIF ( bc_ns == 'nested'  .OR.  bc_ns == 'forcing' )  THEN
           dist_nys = MAX( inflow_disturbance_begin, nys )
        ENDIF
@@ -3790,5 +3882,6 @@
     ENDIF
     IF ( TRIM( dissipation_1d ) /= 'as_in_3d_model'  .AND.                     &
-         TRIM( dissipation_1d ) /= 'detering' )  THEN
+         TRIM( dissipation_1d ) /= 'detering'  .AND.                           &
+         TRIM( dissipation_1d ) /= 'prognostic' )  THEN
        message_string = 'dissipation_1d = "' // TRIM( dissipation_1d ) //      &
                         '" is unknown'
@@ -4130,5 +4223,5 @@
        ELSEIF ( bc_t == 'initial_gradient' )  THEN
           ibc_t = 2
-       ELSEIF ( bc_t == 'nested' )  THEN
+       ELSEIF ( bc_t == 'nested'  .OR.  bc_t == 'forcing' )  THEN
           ibc_t = 3
        ELSE
Index: palm/trunk/SOURCE/chem_gasphase_mod.f90
===================================================================
--- palm/trunk/SOURCE/chem_gasphase_mod.f90	(revision 2696)
+++ palm/trunk/SOURCE/chem_gasphase_mod.f90	(revision 2696)
@@ -0,0 +1,2437 @@
+MODULE chem_gasphase_mod
+#if defined( __chem )
+!------------------------------------------------------------------------------!
+!
+! ******Module chem_gasphase_mod is automatically generated by kpp4palm ******
+!
+!           *********Please do NOT change this Code *********
+!
+!------------------------------------------------------------------------------!
+! This file is part of the PALM model system.
+!
+! PALM is free software: you can redistribute it and/or modify it under the
+! terms of the GNU General Public License as published by the Free Software
+! Foundation, either version 3 of the License, or (at your option) any later
+! version.
+!
+! PALM is distributed in the hope that it will be useful, but WITHOUT ANY
+! WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+! A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+!
+! You should have received a copy of the GNU General Public License along with
+! PALM. If not, see <http://www.gnu.org/licenses/>.
+!
+! Copyright 1997-2017 Leibniz Universitaet Hannover
+!--------------------------------------------------------------------------------!
+!
+! Current revisions:
+! ------------------
+! 
+! 
+! Former revisions:
+! -----------------
+! $Id: module_header 2460 2017-09-13 14:47:48Z forkel $
+!
+! 
+! Variables for photolyis added
+!
+!
+!
+!
+!
+! Nov. 2016: Intial version (Klaus Ketelsen)
+!
+!------------------------------------------------------------------------------!
+!
+
+
+! Set kpp Double Precision to PALM Default Precision
+
+  USE kinds,           ONLY: dp=>wp
+
+  USE pegrid,          ONLY: myid,threads_per_task
+
+  IMPLICIT        NONE
+  PRIVATE
+  !SAVE  ! NOTE: OCCURS AGAIN IN AUTOMATICALLY GENERATED CODE ...
+
+!  PUBLIC :: IERR_NAMES
+ 
+! PUBLIC :: SPC_NAMES,EQN_NAMES,EQN_TAGS,REQ_HET,REQ_AEROSOL,REQ_PHOTRAT &
+!         ,REQ_MCFCT,IP_MAX,jname
+
+  PUBLIC :: eqn_names, phot_names,spc_names
+  PUBLIC :: nmaxfixsteps
+  PUBLIC :: atol,rtol
+  PUBLIC :: nspec,nreact
+  PUBLIC :: temp
+  PUBLIC :: phot 
+  PUBLIC :: rconst
+  PUBLIC :: nvar
+  PUBLIC :: nphot
+ 
+  PUBLIC :: initialize,integrate,update_rconst
+  PUBLIC :: chem_gasphase_integrate
+  PUBLIC :: initialize_kpp_ctrl
+
+! END OF MODULE HEADER TEMPLATE
+                                                                 
+! Variables used for vector mode                                 
+                                                                 
+  LOGICAL, PARAMETER          :: l_vector = .FALSE.            
+  INTEGER, PARAMETER          :: i_lu_di = 0
+  INTEGER, PARAMETER          :: vl_dim = 1
+  INTEGER                     :: vl                              
+                                                                 
+  INTEGER                     :: vl_glo                          
+  INTEGER                     :: is,ie                           
+                                                                 
+  INTEGER, DIMENSION(vl_dim)  :: kacc,krej                      
+  INTEGER, DIMENSION(vl_dim)  :: ierrv                           
+  LOGICAL                     :: data_loaded = .false.             
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+! Parameter Module File
+! 
+! Generated by KPP-2.2.3 symbolic chemistry Kinetics PreProcessor
+!       (http://www.cs.vt.edu/~asandu/Software/KPP)
+! KPP is distributed under GPL,the general public licence
+!       (http://www.gnu.org/copyleft/gpl.html)
+! (C) 1995-1997,V. Damian & A. Sandu,CGRER,Univ. Iowa
+! (C) 1997-2005,A. Sandu,Michigan Tech,Virginia Tech
+!     With important contributions from:
+!        M. Damian,Villanova University,USA
+!        R. Sander,Max-Planck Institute for Chemistry,Mainz,Germany
+! 
+! File                 : chem_gasphase_mod_Parameters.f90
+! Time                 : Fri Dec  8 11:54:15 2017
+! Working directory    : /home/forkel-r/palmstuff/work/chemistry20171117/GASPHASE_PREPROC/tmp_kpp4palm
+! Equation file        : chem_gasphase_mod.kpp
+! Output root filename : chem_gasphase_mod
+! 
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+
+
+
+
+! NSPEC - Number of chemical species
+  INTEGER,PARAMETER :: nspec = 2 
+! NVAR - Number of Variable species
+  INTEGER,PARAMETER :: nvar = 2 
+! NVARACT - Number of Active species
+  INTEGER,PARAMETER :: nvaract = 2 
+! NFIX - Number of Fixed species
+  INTEGER,PARAMETER :: nfix = 1 
+! NREACT - Number of reactions
+  INTEGER,PARAMETER :: nreact = 2 
+! NVARST - Starting of variables in conc. vect.
+  INTEGER,PARAMETER :: nvarst = 1 
+! NFIXST - Starting of fixed in conc. vect.
+  INTEGER,PARAMETER :: nfixst = 3 
+! NONZERO - Number of nonzero entries in Jacobian
+  INTEGER,PARAMETER :: nonzero = 2 
+! LU_NONZERO - Number of nonzero entries in LU factoriz. of Jacobian
+  INTEGER,PARAMETER :: lu_nonzero = 2 
+! CNVAR - (NVAR+1) Number of elements in compressed row format
+  INTEGER,PARAMETER :: cnvar = 3 
+! CNEQN - (NREACT+1) Number stoicm elements in compressed col format
+  INTEGER,PARAMETER :: cneqn = 3 
+! NHESS - Length of Sparse Hessian
+  INTEGER,PARAMETER :: nhess = 1 
+! NLOOKAT - Number of species to look at
+  INTEGER,PARAMETER :: nlookat = 0 
+! NMONITOR - Number of species to monitor
+  INTEGER,PARAMETER :: nmonitor = 0 
+! NMASS - Number of atoms to check mass balance
+  INTEGER,PARAMETER :: nmass = 1 
+
+! Index declaration for variable species in C and VAR
+!   VAR(ind_spc) = C(ind_spc)
+
+  INTEGER,PARAMETER,PUBLIC :: ind_pm10 = 1 
+  INTEGER,PARAMETER,PUBLIC :: ind_pm25 = 2 
+
+! Index declaration for fixed species in C
+!   C(ind_spc)
+
+
+! Index declaration for fixed species in FIX
+!    FIX(indf_spc) = C(ind_spc) = C(NVAR+indf_spc)
+
+
+! NJVRP - Length of sparse Jacobian JVRP
+  INTEGER,PARAMETER :: njvrp = 2 
+
+! NSTOICM - Length of Sparse Stoichiometric Matrix
+  INTEGER,PARAMETER :: nstoicm = 1 
+
+
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+! Global Data Module File
+! 
+! Generated by KPP-2.2.3 symbolic chemistry Kinetics PreProcessor
+!       (http://www.cs.vt.edu/~asandu/Software/KPP)
+! KPP is distributed under GPL,the general public licence
+!       (http://www.gnu.org/copyleft/gpl.html)
+! (C) 1995-1997,V. Damian & A. Sandu,CGRER,Univ. Iowa
+! (C) 1997-2005,A. Sandu,Michigan Tech,Virginia Tech
+!     With important contributions from:
+!        M. Damian,Villanova University,USA
+!        R. Sander,Max-Planck Institute for Chemistry,Mainz,Germany
+! 
+! File                 : chem_gasphase_mod_Global.f90
+! Time                 : Fri Dec  8 11:54:15 2017
+! Working directory    : /home/forkel-r/palmstuff/work/chemistry20171117/GASPHASE_PREPROC/tmp_kpp4palm
+! Equation file        : chem_gasphase_mod.kpp
+! Output root filename : chem_gasphase_mod
+! 
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+
+
+
+
+! Declaration of global variables
+
+! C - Concentration of all species
+  REAL(kind=dp):: c(nspec)
+! VAR - Concentrations of variable species (global)
+  REAL(kind=dp):: var(nvar)
+! FIX - Concentrations of fixed species (global)
+  REAL(kind=dp):: fix(nfix)
+! VAR,FIX are chunks of array C
+      equivalence( c(1),var(1))
+! RCONST - Rate constants (global)
+  REAL(kind=dp):: rconst(nreact)
+! TIME - Current integration time
+  REAL(kind=dp):: time
+! SUN - Sunlight intensity between [0,1]
+  REAL(kind=dp):: sun
+! TEMP - Temperature
+  REAL(dp),dimension(:),allocatable             :: temp
+! RTOLS - (scalar) Relative tolerance
+  REAL(kind=dp):: rtols
+! TSTART - Integration start time
+  REAL(kind=dp):: tstart
+! TEND - Integration end time
+  REAL(kind=dp):: tend
+! DT - Integration step
+  REAL(kind=dp):: dt
+! ATOL - Absolute tolerance
+  REAL(kind=dp):: atol(nvar)
+! RTOL - Relative tolerance
+  REAL(kind=dp):: rtol(nvar)
+! STEPMIN - Lower bound for integration step
+  REAL(kind=dp):: stepmin
+! STEPMAX - Upper bound for integration step
+  REAL(kind=dp):: stepmax
+! CFACTOR - Conversion factor for concentration units
+  REAL(kind=dp):: cfactor
+! DDMTYPE - DDM sensitivity w.r.t.: 0=init.val.,1=params
+  INTEGER :: ddmtype
+
+! INLINED global variable declarations
+
+  !   declaration of global variable declarations for photolysis will come from 
+
+! INLINED global variable declarations
+
+
+
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+! Sparse Jacobian Data Structures File
+! 
+! Generated by KPP-2.2.3 symbolic chemistry Kinetics PreProcessor
+!       (http://www.cs.vt.edu/~asandu/Software/KPP)
+! KPP is distributed under GPL,the general public licence
+!       (http://www.gnu.org/copyleft/gpl.html)
+! (C) 1995-1997,V. Damian & A. Sandu,CGRER,Univ. Iowa
+! (C) 1997-2005,A. Sandu,Michigan Tech,Virginia Tech
+!     With important contributions from:
+!        M. Damian,Villanova University,USA
+!        R. Sander,Max-Planck Institute for Chemistry,Mainz,Germany
+! 
+! File                 : chem_gasphase_mod_JacobianSP.f90
+! Time                 : Fri Dec  8 11:54:15 2017
+! Working directory    : /home/forkel-r/palmstuff/work/chemistry20171117/GASPHASE_PREPROC/tmp_kpp4palm
+! Equation file        : chem_gasphase_mod.kpp
+! Output root filename : chem_gasphase_mod
+! 
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+
+
+
+
+! Sparse Jacobian Data
+
+
+  INTEGER,PARAMETER,DIMENSION(2):: lu_irow =  (/ &
+       1, 2 /) 
+
+  INTEGER,PARAMETER,DIMENSION(2):: lu_icol =  (/ &
+       1, 2 /) 
+
+  INTEGER,PARAMETER,DIMENSION(3):: lu_crow =  (/ &
+       1, 2, 3 /) 
+
+  INTEGER,PARAMETER,DIMENSION(3):: lu_diag =  (/ &
+       1, 2, 3 /) 
+
+
+
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+! Utility Data Module File
+! 
+! Generated by KPP-2.2.3 symbolic chemistry Kinetics PreProcessor
+!       (http://www.cs.vt.edu/~asandu/Software/KPP)
+! KPP is distributed under GPL,the general public licence
+!       (http://www.gnu.org/copyleft/gpl.html)
+! (C) 1995-1997,V. Damian & A. Sandu,CGRER,Univ. Iowa
+! (C) 1997-2005,A. Sandu,Michigan Tech,Virginia Tech
+!     With important contributions from:
+!        M. Damian,Villanova University,USA
+!        R. Sander,Max-Planck Institute for Chemistry,Mainz,Germany
+! 
+! File                 : chem_gasphase_mod_Monitor.f90
+! Time                 : Fri Dec  8 11:54:15 2017
+! Working directory    : /home/forkel-r/palmstuff/work/chemistry20171117/GASPHASE_PREPROC/tmp_kpp4palm
+! Equation file        : chem_gasphase_mod.kpp
+! Output root filename : chem_gasphase_mod
+! 
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+
+
+
+  CHARACTER(len=15),PARAMETER,DIMENSION(2):: spc_names =  (/ &
+     'PM10           ','PM25           ' /)
+
+  INTEGER,DIMENSION(1):: lookat
+  INTEGER,DIMENSION(1):: monitor
+  CHARACTER(len=15),DIMENSION(1):: smass
+  CHARACTER(len=100),PARAMETER,DIMENSION(2):: eqn_names =  (/ &
+     'PM10 --> PM10                                                                                       ',&
+     'PM25 --> PM25                                                                                       ' /)
+
+! INLINED global variables
+
+  !   inline f90_data: declaration of global variables for photolysis
+  !   REAL(kind=dp):: phot(nphot)must eventually be moved to global later for 
+  INTEGER,PARAMETER :: nphot = 1
+  !   phot photolysis frequencies
+  REAL(kind=dp):: phot(nphot)
+
+  INTEGER,PARAMETER,PUBLIC :: j_no2 = 1
+
+  CHARACTER(len=15),PARAMETER,DIMENSION(nphot):: phot_names =   (/ &
+     'J_NO2          '/)
+
+! End INLINED global variables
+
+
+! Automatic generated PUBLIC Statements for ip_ and ihs_ variables 
+ 
+! Automatic generated PUBLIC Statements for ip_ and ihs_ variables 
+ 
+! Automatic generated PUBLIC Statements for ip_ and ihs_ variables 
+ 
+! Automatic generated PUBLIC Statements for ip_ and ihs_ variables 
+ 
+ 
+!  variable definations from  individual module headers 
+ 
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+! Initialization File
+! 
+! Generated by KPP-2.2.3 symbolic chemistry Kinetics PreProcessor
+!       (http://www.cs.vt.edu/~asandu/Software/KPP)
+! KPP is distributed under GPL,the general public licence
+!       (http://www.gnu.org/copyleft/gpl.html)
+! (C) 1995-1997,V. Damian & A. Sandu,CGRER,Univ. Iowa
+! (C) 1997-2005,A. Sandu,Michigan Tech,Virginia Tech
+!     With important contributions from:
+!        M. Damian,Villanova University,USA
+!        R. Sander,Max-Planck Institute for Chemistry,Mainz,Germany
+! 
+! File                 : chem_gasphase_mod_Initialize.f90
+! Time                 : Fri Dec  8 11:54:15 2017
+! Working directory    : /home/forkel-r/palmstuff/work/chemistry20171117/GASPHASE_PREPROC/tmp_kpp4palm
+! Equation file        : chem_gasphase_mod.kpp
+! Output root filename : chem_gasphase_mod
+! 
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+
+
+
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+! Numerical Integrator (Time-Stepping) File
+! 
+! Generated by KPP-2.2.3 symbolic chemistry Kinetics PreProcessor
+!       (http://www.cs.vt.edu/~asandu/Software/KPP)
+! KPP is distributed under GPL,the general public licence
+!       (http://www.gnu.org/copyleft/gpl.html)
+! (C) 1995-1997,V. Damian & A. Sandu,CGRER,Univ. Iowa
+! (C) 1997-2005,A. Sandu,Michigan Tech,Virginia Tech
+!     With important contributions from:
+!        M. Damian,Villanova University,USA
+!        R. Sander,Max-Planck Institute for Chemistry,Mainz,Germany
+! 
+! File                 : chem_gasphase_mod_Integrator.f90
+! Time                 : Fri Dec  8 11:54:15 2017
+! Working directory    : /home/forkel-r/palmstuff/work/chemistry20171117/GASPHASE_PREPROC/tmp_kpp4palm
+! Equation file        : chem_gasphase_mod.kpp
+! Output root filename : chem_gasphase_mod
+! 
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+! INTEGRATE - Integrator routine
+!   Arguments :
+!      TIN       - Start Time for Integration
+!      TOUT      - End Time for Integration
+! 
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
+!  Rosenbrock - Implementation of several Rosenbrock methods:             !
+!               *Ros2                                                    !
+!               *Ros3                                                    !
+!               *Ros4                                                    !
+!               *Rodas3                                                  !
+!               *Rodas4                                                  !
+!  By default the code employs the KPP sparse linear algebra routines     !
+!  Compile with -DFULL_ALGEBRA to use full linear algebra (LAPACK)        !
+!                                                                         !
+!    (C)  Adrian Sandu,August 2004                                       !
+!    Virginia Polytechnic Institute and State University                  !
+!    Contact: sandu@cs.vt.edu                                             !
+!    Revised by Philipp Miehe and Adrian Sandu,May 2006                  !                               !
+!    This implementation is part of KPP - the Kinetic PreProcessor        !
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
+
+
+  SAVE
+  
+!~~~>  statistics on the work performed by the rosenbrock method
+  INTEGER,PARAMETER :: nfun=1,njac=2,nstp=3,nacc=4,&
+                        nrej=5,ndec=6,nsol=7,nsng=8,&
+                        ntexit=1,nhexit=2,nhnew = 3
+
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+! Linear Algebra Data and Routines File
+! 
+! Generated by KPP-2.2.3 symbolic chemistry Kinetics PreProcessor
+!       (http://www.cs.vt.edu/~asandu/Software/KPP)
+! KPP is distributed under GPL,the general public licence
+!       (http://www.gnu.org/copyleft/gpl.html)
+! (C) 1995-1997,V. Damian & A. Sandu,CGRER,Univ. Iowa
+! (C) 1997-2005,A. Sandu,Michigan Tech,Virginia Tech
+!     With important contributions from:
+!        M. Damian,Villanova University,USA
+!        R. Sander,Max-Planck Institute for Chemistry,Mainz,Germany
+! 
+! File                 : chem_gasphase_mod_LinearAlgebra.f90
+! Time                 : Fri Dec  8 11:54:15 2017
+! Working directory    : /home/forkel-r/palmstuff/work/chemistry20171117/GASPHASE_PREPROC/tmp_kpp4palm
+! Equation file        : chem_gasphase_mod.kpp
+! Output root filename : chem_gasphase_mod
+! 
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+
+
+
+
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+! The ODE Jacobian of Chemical Model File
+! 
+! Generated by KPP-2.2.3 symbolic chemistry Kinetics PreProcessor
+!       (http://www.cs.vt.edu/~asandu/Software/KPP)
+! KPP is distributed under GPL,the general public licence
+!       (http://www.gnu.org/copyleft/gpl.html)
+! (C) 1995-1997,V. Damian & A. Sandu,CGRER,Univ. Iowa
+! (C) 1997-2005,A. Sandu,Michigan Tech,Virginia Tech
+!     With important contributions from:
+!        M. Damian,Villanova University,USA
+!        R. Sander,Max-Planck Institute for Chemistry,Mainz,Germany
+! 
+! File                 : chem_gasphase_mod_Jacobian.f90
+! Time                 : Fri Dec  8 11:54:15 2017
+! Working directory    : /home/forkel-r/palmstuff/work/chemistry20171117/GASPHASE_PREPROC/tmp_kpp4palm
+! Equation file        : chem_gasphase_mod.kpp
+! Output root filename : chem_gasphase_mod
+! 
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+
+
+
+
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+! The ODE Function of Chemical Model File
+! 
+! Generated by KPP-2.2.3 symbolic chemistry Kinetics PreProcessor
+!       (http://www.cs.vt.edu/~asandu/Software/KPP)
+! KPP is distributed under GPL,the general public licence
+!       (http://www.gnu.org/copyleft/gpl.html)
+! (C) 1995-1997,V. Damian & A. Sandu,CGRER,Univ. Iowa
+! (C) 1997-2005,A. Sandu,Michigan Tech,Virginia Tech
+!     With important contributions from:
+!        M. Damian,Villanova University,USA
+!        R. Sander,Max-Planck Institute for Chemistry,Mainz,Germany
+! 
+! File                 : chem_gasphase_mod_Function.f90
+! Time                 : Fri Dec  8 11:54:15 2017
+! Working directory    : /home/forkel-r/palmstuff/work/chemistry20171117/GASPHASE_PREPROC/tmp_kpp4palm
+! Equation file        : chem_gasphase_mod.kpp
+! Output root filename : chem_gasphase_mod
+! 
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+
+
+
+! A - Rate for each equation
+  REAL(kind=dp):: a(nreact)
+
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+! The Reaction Rates File
+! 
+! Generated by KPP-2.2.3 symbolic chemistry Kinetics PreProcessor
+!       (http://www.cs.vt.edu/~asandu/Software/KPP)
+! KPP is distributed under GPL,the general public licence
+!       (http://www.gnu.org/copyleft/gpl.html)
+! (C) 1995-1997,V. Damian & A. Sandu,CGRER,Univ. Iowa
+! (C) 1997-2005,A. Sandu,Michigan Tech,Virginia Tech
+!     With important contributions from:
+!        M. Damian,Villanova University,USA
+!        R. Sander,Max-Planck Institute for Chemistry,Mainz,Germany
+! 
+! File                 : chem_gasphase_mod_Rates.f90
+! Time                 : Fri Dec  8 11:54:15 2017
+! Working directory    : /home/forkel-r/palmstuff/work/chemistry20171117/GASPHASE_PREPROC/tmp_kpp4palm
+! Equation file        : chem_gasphase_mod.kpp
+! Output root filename : chem_gasphase_mod
+! 
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+
+
+
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+! Auxiliary Routines File
+! 
+! Generated by KPP-2.2.3 symbolic chemistry Kinetics PreProcessor
+!       (http://www.cs.vt.edu/~asandu/Software/KPP)
+! KPP is distributed under GPL,the general public licence
+!       (http://www.gnu.org/copyleft/gpl.html)
+! (C) 1995-1997,V. Damian & A. Sandu,CGRER,Univ. Iowa
+! (C) 1997-2005,A. Sandu,Michigan Tech,Virginia Tech
+!     With important contributions from:
+!        M. Damian,Villanova University,USA
+!        R. Sander,Max-Planck Institute for Chemistry,Mainz,Germany
+! 
+! File                 : chem_gasphase_mod_Util.f90
+! Time                 : Fri Dec  8 11:54:15 2017
+! Working directory    : /home/forkel-r/palmstuff/work/chemistry20171117/GASPHASE_PREPROC/tmp_kpp4palm
+! Equation file        : chem_gasphase_mod.kpp
+! Output root filename : chem_gasphase_mod
+! 
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+
+
+
+
+  ! header MODULE initialize_kpp_ctrl_template
+
+  ! notes:
+  ! -  l_vector is automatically defined by kp4
+  ! -  vl_dim is automatically defined by kp4
+  ! -  i_lu_di is automatically defined by kp4
+  ! -  wanted is automatically defined by xmecca
+  ! -  icntrl rcntrl are automatically defined by kpp
+  ! -  "USE messy_main_tools" is in MODULE_header of messy_mecca_kpp.f90
+  ! -  SAVE will be automatically added by kp4
+
+  !SAVE
+
+  ! for fixed time step control
+  ! ... max. number of fixed time steps (sum must be 1)
+  INTEGER,PARAMETER         :: nmaxfixsteps = 50
+  ! ... switch for fixed time stepping
+  LOGICAL,PUBLIC            :: l_fixed_step = .false.
+  INTEGER,PUBLIC            :: nfsteps = 1
+  ! ... number of kpp control PARAMETERs
+  INTEGER,PARAMETER,PUBLIC :: nkppctrl = 20
+  !
+  INTEGER, DIMENSION(nkppctrl),PUBLIC     :: icntrl = 0
+  REAL(dp),DIMENSION(nkppctrl),PUBLIC     :: rcntrl = 0.0_dp
+  REAL(dp),DIMENSION(nmaxfixsteps),PUBLIC :: t_steps = 0.0_dp
+
+  ! END header MODULE initialize_kpp_ctrl_template
+
+ 
+! Interface Block 
+ 
+  INTERFACE            initialize
+    MODULE PROCEDURE   initialize
+  END INTERFACE        initialize
+ 
+  INTERFACE            integrate
+    MODULE PROCEDURE   integrate
+  END INTERFACE        integrate
+ 
+  INTERFACE            fun
+    MODULE PROCEDURE   fun
+  END INTERFACE        fun
+ 
+  INTERFACE            kppsolve
+    MODULE PROCEDURE   kppsolve
+  END INTERFACE        kppsolve
+ 
+  INTERFACE            kppdecomp
+    MODULE PROCEDURE   kppdecomp
+  END INTERFACE        kppdecomp
+ 
+  INTERFACE            wlamch
+    MODULE PROCEDURE   wlamch
+  END INTERFACE        wlamch
+ 
+  INTERFACE            wlamch_add
+    MODULE PROCEDURE   wlamch_add
+  END INTERFACE        wlamch_add
+ 
+  INTERFACE            jac_sp
+    MODULE PROCEDURE   jac_sp
+  END INTERFACE        jac_sp
+ 
+  INTERFACE            k_arr
+    MODULE PROCEDURE   k_arr
+  END INTERFACE        k_arr
+ 
+  INTERFACE            update_rconst
+    MODULE PROCEDURE   update_rconst
+  END INTERFACE        update_rconst
+ 
+  INTERFACE            arr2
+    MODULE PROCEDURE   arr2
+  END INTERFACE        arr2
+ 
+  INTERFACE            initialize_kpp_ctrl
+    MODULE PROCEDURE   initialize_kpp_ctrl
+  END INTERFACE        initialize_kpp_ctrl
+ 
+  INTERFACE            error_output
+    MODULE PROCEDURE   error_output
+  END INTERFACE        error_output
+ 
+!interface not working  INTERFACE            wcopy
+!interface not working    MODULE PROCEDURE   wcopy
+!interface not working  END INTERFACE        wcopy
+ 
+  INTERFACE            wscal
+    MODULE PROCEDURE   wscal
+  END INTERFACE        wscal
+ 
+!interface not working  INTERFACE            waxpy
+!interface not working    MODULE PROCEDURE   waxpy
+!interface not working  END INTERFACE        waxpy
+ 
+  INTERFACE            rosenbrock
+    MODULE PROCEDURE   rosenbrock
+  END INTERFACE        rosenbrock
+ 
+  INTERFACE            funtemplate
+    MODULE PROCEDURE   funtemplate
+  END INTERFACE        funtemplate
+ 
+  INTERFACE            jactemplate
+    MODULE PROCEDURE   jactemplate
+  END INTERFACE        jactemplate
+ 
+  INTERFACE            chem_gasphase_integrate
+    MODULE PROCEDURE   chem_gasphase_integrate
+  END INTERFACE        chem_gasphase_integrate
+ 
+  INTERFACE            fill_temp
+    MODULE PROCEDURE   fill_temp
+  END INTERFACE        fill_temp
+  PUBLIC               fill_temp
+ 
+ 
+ CONTAINS
+ 
+SUBROUTINE initialize()
+
+
+
+  INTEGER :: i
+  REAL(kind=dp):: x
+
+  cfactor = 1.000000e+00_dp
+
+  x = (0.)*cfactor
+  DO i = 1,nvar
+    var(i) = x
+  ENDDO
+
+  x = (0.)*cfactor
+  DO i = 1,nfix
+    fix(i) = x
+  ENDDO
+
+! constant rate coefficients
+! END constant rate coefficients
+
+! INLINED initializations
+
+! End INLINED initializations
+
+      
+END SUBROUTINE initialize
+ 
+SUBROUTINE integrate( tin,tout,&
+  icntrl_u,rcntrl_u,istatus_u,rstatus_u,ierr_u)
+
+
+   REAL(kind=dp),INTENT(in):: tin  ! start time
+   REAL(kind=dp),INTENT(in):: tout ! END time
+   ! OPTIONAL input PARAMETERs and statistics
+   INTEGER,      INTENT(in), OPTIONAL :: icntrl_u(20)
+   REAL(kind=dp),INTENT(in), OPTIONAL :: rcntrl_u(20)
+   INTEGER,      INTENT(out),OPTIONAL :: istatus_u(20)
+   REAL(kind=dp),INTENT(out),OPTIONAL :: rstatus_u(20)
+   INTEGER,      INTENT(out),OPTIONAL :: ierr_u
+
+   REAL(kind=dp):: rcntrl(20),rstatus(20)
+   INTEGER       :: icntrl(20),istatus(20),ierr
+
+   INTEGER,SAVE :: ntotal = 0
+
+   icntrl(:) = 0
+   rcntrl(:) = 0.0_dp
+   istatus(:) = 0
+   rstatus(:) = 0.0_dp
+
+    !~~~> fine-tune the integrator:
+   icntrl(1) = 0	! 0 -  non- autonomous,1 -  autonomous
+   icntrl(2) = 0	! 0 -  vector tolerances,1 -  scalars
+
+   ! IF OPTIONAL PARAMETERs are given,and IF they are >0,
+   ! THEN they overwrite default settings. 
+   IF (present(icntrl_u))THEN
+     where(icntrl_u(:)> 0)icntrl(:) = icntrl_u(:)
+   ENDIF
+   IF (present(rcntrl_u))THEN
+     where(rcntrl_u(:)> 0)rcntrl(:) = rcntrl_u(:)
+   ENDIF
+
+
+   CALL rosenbrock(nvar,var,tin,tout,  &
+         atol,rtol,               &
+         rcntrl,icntrl,rstatus,istatus,ierr)
+
+   !~~~> debug option: show no of steps
+   ! ntotal = ntotal + istatus(nstp)
+   ! PRINT*,'NSTEPS=',ISTATUS(Nstp),' (',Ntotal,')','  O3=',VAR(ind_O3)
+
+   stepmin = rstatus(nhexit)
+   ! IF OPTIONAL PARAMETERs are given for output they 
+   ! are updated with the RETURN information
+   IF (present(istatus_u))istatus_u(:) = istatus(:)
+   IF (present(rstatus_u))rstatus_u(:) = rstatus(:)
+   IF (present(ierr_u))   ierr_u       = ierr
+
+END SUBROUTINE integrate
+ 
+SUBROUTINE fun(v,f,rct,vdot)
+
+! V - Concentrations of variable species (local)
+  REAL(kind=dp):: v(nvar)
+! F - Concentrations of fixed species (local)
+  REAL(kind=dp):: f(nfix)
+! RCT - Rate constants (local)
+  REAL(kind=dp):: rct(nreact)
+! Vdot - Time derivative of variable species concentrations
+  REAL(kind=dp):: vdot(nvar)
+
+
+! Computation of equation rates
+
+! Aggregate function
+  vdot(1) = 0
+  vdot(2) = 0
+      
+END SUBROUTINE fun
+ 
+SUBROUTINE kppsolve(jvs,x)
+
+! JVS - sparse Jacobian of variables
+  REAL(kind=dp):: jvs(lu_nonzero)
+! X - Vector for variables
+  REAL(kind=dp):: x(nvar)
+
+  x(2) = x(2)/ jvs(2)
+  x(1) = x(1)/ jvs(1)
+      
+END SUBROUTINE kppsolve
+ 
+SUBROUTINE kppdecomp( jvs,ier)
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!        Sparse LU factorization
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+      INTEGER  :: ier
+      REAL(kind=dp):: jvs(lu_nonzero),w(nvar),a
+      INTEGER  :: k,kk,j,jj
+
+      a = 0. ! mz_rs_20050606
+      ier = 0
+      DO k=1,nvar
+        ! mz_rs_20050606: don't check if real value == 0
+        ! IF(jvs( lu_diag(k)).eq. 0.)THEN
+        IF(abs(jvs(lu_diag(k)))< tiny(a))THEN
+            ier = k
+            RETURN
+        ENDIF
+        DO kk = lu_crow(k),lu_crow(k+ 1)- 1
+              w( lu_icol(kk)) = jvs(kk)
+        ENDDO
+        DO kk = lu_crow(k),lu_diag(k)- 1
+            j = lu_icol(kk)
+            a = - w(j)/ jvs( lu_diag(j))
+            w(j) = - a
+            DO jj = lu_diag(j)+ 1,lu_crow(j+ 1)- 1
+               w( lu_icol(jj)) = w( lu_icol(jj))+ a*jvs(jj)
+            ENDDO
+         ENDDO
+         DO kk = lu_crow(k),lu_crow(k+ 1)- 1
+            jvs(kk) = w( lu_icol(kk))
+         ENDDO
+      ENDDO
+      
+END SUBROUTINE kppdecomp
+ 
+      REAL(kind=dp)FUNCTION wlamch( c)
+!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
+!     returns epsilon machine
+!     after LAPACK
+!     replace this by the function from the optimized LAPACK implementation:
+!          CALL SLAMCH('E') or CALL DLAMCH('E')
+!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
+!      USE chem_gasphase_mod_Precision
+
+      CHARACTER ::  c
+      INTEGER    :: i
+      REAL(kind=dp),SAVE  ::  eps
+      REAL(kind=dp) ::  suma
+      REAL(kind=dp),PARAMETER  ::  one=1.0_dp, half=0.5_dp
+      LOGICAL,SAVE   ::  first=.true.
+      
+      IF (first)THEN
+        first = .false.
+        eps = half**(16)
+        DO i = 17,80
+          eps = eps*half
+          CALL wlamch_add(one,eps,suma)
+          IF (suma.le.one)goto 10
+        ENDDO
+        PRINT*,'ERROR IN WLAMCH. EPS < ',Eps
+        RETURN
+10      eps = eps*2
+        i = i- 1      
+      ENDIF
+
+      wlamch = eps
+
+      END FUNCTION wlamch
+ 
+      SUBROUTINE wlamch_add( a,b,suma)
+!      USE chem_gasphase_mod_Precision
+      
+      REAL(kind=dp)a,b,suma
+      suma = a + b
+
+      END SUBROUTINE wlamch_add
+ 
+SUBROUTINE jac_sp(v,f,rct,jvs)
+
+! V - Concentrations of variable species (local)
+  REAL(kind=dp):: v(nvar)
+! F - Concentrations of fixed species (local)
+  REAL(kind=dp):: f(nfix)
+! RCT - Rate constants (local)
+  REAL(kind=dp):: rct(nreact)
+! JVS - sparse Jacobian of variables
+  REAL(kind=dp):: jvs(lu_nonzero)
+
+
+! Local variables
+! B - Temporary array
+  REAL(kind=dp):: b(2)
+
+! B(1) = dA(1)/dV(1)
+  b(1) = rct(1)
+! B(2) = dA(2)/dV(2)
+  b(2) = rct(2)
+
+! Construct the Jacobian terms from B's
+! JVS(1) = Jac_FULL(1,1)
+  jvs(1) = 0
+! JVS(2) = Jac_FULL(2,2)
+  jvs(2) = 0
+      
+END SUBROUTINE jac_sp
+ 
+  elemental REAL(kind=dp)FUNCTION k_arr (k_298,tdep,temp)
+    ! arrhenius FUNCTION
+
+    REAL,    INTENT(in):: k_298 ! k at t = 298.15k
+    REAL,    INTENT(in):: tdep  ! temperature dependence
+    REAL(kind=dp),INTENT(in):: temp  ! temperature
+
+    intrinsic exp
+
+    k_arr = k_298 *exp(tdep*(1._dp/temp- 3.3540e-3_dp))! 1/298.15=3.3540e-3
+
+  END FUNCTION k_arr
+ 
+SUBROUTINE update_rconst()
+ INTEGER         :: j,k
+
+  k = is
+
+! Begin INLINED RCONST
+
+
+! End INLINED RCONST
+
+  rconst(1) = (1.0_dp)
+  rconst(2) = (1.0_dp)
+      
+END SUBROUTINE update_rconst
+ 
+REAL(kind=dp)FUNCTION arr2( a0,b0,temp)
+    REAL(kind=dp):: temp
+    REAL(kind=dp):: a0,b0
+    arr2 = a0 *exp( - b0 / temp)
+END FUNCTION arr2
+ 
+SUBROUTINE initialize_kpp_ctrl(status,iou,modstr)
+
+
+  ! i/o
+  INTEGER,         INTENT(out):: status
+  INTEGER,         INTENT(in) :: iou     ! LOGICAL i/o unit
+  CHARACTER(len=*),INTENT(in) :: modstr  ! read <modstr>.nml
+
+  ! local
+  REAL(dp):: tsum
+  INTEGER  :: i
+
+  ! check fixed time steps
+  tsum = 0.0_dp
+  DO i=1,nmaxfixsteps
+     IF (t_steps(i)< tiny(0.0_dp))exit
+     tsum = tsum + t_steps(i)
+  ENDDO
+
+  nfsteps = i- 1
+
+  l_fixed_step = (nfsteps > 0).and.((tsum - 1.0)< tiny(0.0_dp))
+
+  IF (l_vector)THEN
+     WRITE(*,*) ' MODE             : VECTOR (LENGTH=',VL_DIM,')'
+  ELSE
+     WRITE(*,*) ' MODE             : SCALAR'
+  ENDIF
+  !
+  WRITE(*,*) ' DE-INDEXING MODE :',I_LU_DI
+  !
+  WRITE(*,*) ' ICNTRL           : ',icntrl
+  WRITE(*,*) ' RCNTRL           : ',rcntrl
+  !
+  ! note: this is only meaningful for vectorized (kp4)rosenbrock- methods
+  IF (l_vector)THEN
+     IF (l_fixed_step)THEN
+        WRITE(*,*) ' TIME STEPS       : FIXED (',t_steps(1:nfsteps),')'
+     ELSE
+        WRITE(*,*) ' TIME STEPS       : AUTOMATIC'
+     ENDIF
+  ELSE
+     WRITE(*,*) ' TIME STEPS       : AUTOMATIC '//&
+          &'(t_steps (CTRL_KPP) ignored in SCALAR MODE)'
+  ENDIF
+  ! mz_pj_20070531- 
+
+  status = 0
+
+
+END SUBROUTINE initialize_kpp_ctrl
+ 
+SUBROUTINE error_output(c,ierr,pe)
+
+
+  INTEGER,INTENT(in):: ierr
+  INTEGER,INTENT(in):: pe
+  REAL(dp),DIMENSION(:),INTENT(in):: c
+
+  write(6,*) 'ERROR in chem_gasphase_mod ',ierr,C(1)
+
+
+END SUBROUTINE error_output
+ 
+      SUBROUTINE wcopy(n,x,incx,y,incy)
+!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
+!     copies a vector,x,to a vector,y:  y <- x
+!     only for incX=incY=1
+!     after BLAS
+!     replace this by the function from the optimized BLAS implementation:
+!         CALL  SCOPY(N,X,1,Y,1)   or   CALL  DCOPY(N,X,1,Y,1)
+!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
+!     USE chem_gasphase_mod_Precision
+      
+      INTEGER  :: i,incx,incy,m,mp1,n
+      REAL(kind=dp):: x(n),y(n)
+
+      IF (n.le.0)RETURN
+
+      m = mod(n,8)
+      IF( m .ne. 0)THEN
+        DO i = 1,m
+          y(i) = x(i)
+        ENDDO
+        IF( n .lt. 8)RETURN
+      ENDIF    
+      mp1 = m+ 1
+      DO i = mp1,n,8
+        y(i) = x(i)
+        y(i + 1) = x(i + 1)
+        y(i + 2) = x(i + 2)
+        y(i + 3) = x(i + 3)
+        y(i + 4) = x(i + 4)
+        y(i + 5) = x(i + 5)
+        y(i + 6) = x(i + 6)
+        y(i + 7) = x(i + 7)
+      ENDDO
+
+      END SUBROUTINE wcopy
+ 
+      SUBROUTINE wscal(n,alpha,x,incx)
+!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
+!     constant times a vector: x(1:N) <- Alpha*x(1:N) 
+!     only for incX=incY=1
+!     after BLAS
+!     replace this by the function from the optimized BLAS implementation:
+!         CALL SSCAL(N,Alpha,X,1) or  CALL DSCAL(N,Alpha,X,1)
+!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
+
+      INTEGER  :: i,incx,m,mp1,n
+      REAL(kind=dp) :: x(n),alpha
+      REAL(kind=dp),PARAMETER  :: zero=0.0_dp, one=1.0_dp
+
+      IF (alpha .eq. one)RETURN
+      IF (n .le. 0)RETURN
+
+      m = mod(n,5)
+      IF( m .ne. 0)THEN
+        IF (alpha .eq. (- one))THEN
+          DO i = 1,m
+            x(i) = - x(i)
+          ENDDO
+        ELSEIF (alpha .eq. zero)THEN
+          DO i = 1,m
+            x(i) = zero
+          ENDDO
+        ELSE
+          DO i = 1,m
+            x(i) = alpha*x(i)
+          ENDDO
+        ENDIF
+        IF( n .lt. 5)RETURN
+      ENDIF
+      mp1 = m + 1
+      IF (alpha .eq. (- one))THEN
+        DO i = mp1,n,5
+          x(i)    = - x(i)
+          x(i + 1) = - x(i + 1)
+          x(i + 2) = - x(i + 2)
+          x(i + 3) = - x(i + 3)
+          x(i + 4) = - x(i + 4)
+        ENDDO
+      ELSEIF (alpha .eq. zero)THEN
+        DO i = mp1,n,5
+          x(i)    = zero
+          x(i + 1) = zero
+          x(i + 2) = zero
+          x(i + 3) = zero
+          x(i + 4) = zero
+        ENDDO
+      ELSE
+        DO i = mp1,n,5
+          x(i)    = alpha*x(i)
+          x(i + 1) = alpha*x(i + 1)
+          x(i + 2) = alpha*x(i + 2)
+          x(i + 3) = alpha*x(i + 3)
+          x(i + 4) = alpha*x(i + 4)
+        ENDDO
+      ENDIF
+
+      END SUBROUTINE wscal
+ 
+      SUBROUTINE waxpy(n,alpha,x,incx,y,incy)
+!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
+!     constant times a vector plus a vector: y <- y + Alpha*x
+!     only for incX=incY=1
+!     after BLAS
+!     replace this by the function from the optimized BLAS implementation:
+!         CALL SAXPY(N,Alpha,X,1,Y,1) or  CALL DAXPY(N,Alpha,X,1,Y,1)
+!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
+
+      INTEGER  :: i,incx,incy,m,mp1,n
+      REAL(kind=dp):: x(n),y(n),alpha
+      REAL(kind=dp),PARAMETER :: zero = 0.0_dp
+
+      IF (alpha .eq. zero)RETURN
+      IF (n .le. 0)RETURN
+
+      m = mod(n,4)
+      IF( m .ne. 0)THEN
+        DO i = 1,m
+          y(i) = y(i)+ alpha*x(i)
+        ENDDO
+        IF( n .lt. 4)RETURN
+      ENDIF
+      mp1 = m + 1
+      DO i = mp1,n,4
+        y(i) = y(i)+ alpha*x(i)
+        y(i + 1) = y(i + 1)+ alpha*x(i + 1)
+        y(i + 2) = y(i + 2)+ alpha*x(i + 2)
+        y(i + 3) = y(i + 3)+ alpha*x(i + 3)
+      ENDDO
+      
+      END SUBROUTINE waxpy
+ 
+SUBROUTINE rosenbrock(n,y,tstart,tend,&
+           abstol,reltol,             &
+           rcntrl,icntrl,rstatus,istatus,ierr)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!    Solves the system y'=F(t,y) using a Rosenbrock method defined by:
+!
+!     G = 1/(H*gamma(1)) - Jac(t0,Y0)
+!     T_i = t0 + Alpha(i)*H
+!     Y_i = Y0 + \sum_{j=1}^{i-1} A(i,j)*K_j
+!     G *K_i = Fun( T_i,Y_i)+ \sum_{j=1}^S C(i,j)/H *K_j +
+!         gamma(i)*dF/dT(t0,Y0)
+!     Y1 = Y0 + \sum_{j=1}^S M(j)*K_j
+!
+!    For details on Rosenbrock methods and their implementation consult:
+!      E. Hairer and G. Wanner
+!      "Solving ODEs II. Stiff and differential-algebraic problems".
+!      Springer series in computational mathematics,Springer-Verlag,1996.
+!    The codes contained in the book inspired this implementation.
+!
+!    (C)  Adrian Sandu,August 2004
+!    Virginia Polytechnic Institute and State University
+!    Contact: sandu@cs.vt.edu
+!    Revised by Philipp Miehe and Adrian Sandu,May 2006                  
+!    This implementation is part of KPP - the Kinetic PreProcessor
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>   input arguments:
+!
+!-      y(n)   = vector of initial conditions (at t=tstart)
+!-     [tstart,tend]  = time range of integration
+!     (if Tstart>Tend the integration is performed backwards in time)
+!-     reltol,abstol = user precribed accuracy
+!-  SUBROUTINE  fun( t,y,ydot) = ode FUNCTION,
+!                       returns Ydot = Y' = F(T,Y)
+!-  SUBROUTINE  jac( t,y,jcb) = jacobian of the ode FUNCTION,
+!                       returns Jcb = dFun/dY
+!-     icntrl(1:20)   = INTEGER inputs PARAMETERs
+!-     rcntrl(1:20)   = REAL inputs PARAMETERs
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>     output arguments:
+!
+!-     y(n)   - > vector of final states (at t- >tEND)
+!-     istatus(1:20)  - > INTEGER output PARAMETERs
+!-     rstatus(1:20)  - > REAL output PARAMETERs
+!-     ierr            - > job status upon RETURN
+!                        success (positive value) or
+!                        failure (negative value)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>     input PARAMETERs:
+!
+!    Note: For input parameters equal to zero the default values of the
+!       corresponding variables are used.
+!
+!    ICNTRL(1) = 1: F = F(y)   Independent of T (AUTONOMOUS)
+!              = 0: F = F(t,y) Depends on T (NON-AUTONOMOUS)
+!
+!    ICNTRL(2) = 0: AbsTol,RelTol are N-dimensional vectors
+!              = 1: AbsTol,RelTol are scalars
+!
+!    ICNTRL(3)  -> selection of a particular Rosenbrock method
+!        = 0 :    Rodas3 (default)
+!        = 1 :    Ros2
+!        = 2 :    Ros3
+!        = 3 :    Ros4
+!        = 4 :    Rodas3
+!        = 5 :    Rodas4
+!
+!    ICNTRL(4)  -> maximum number of integration steps
+!        For ICNTRL(4) =0) the default value of 100000 is used
+!
+!    RCNTRL(1)  -> Hmin,lower bound for the integration step size
+!          It is strongly recommended to keep Hmin = ZERO
+!    RCNTRL(2)  -> Hmax,upper bound for the integration step size
+!    RCNTRL(3)  -> Hstart,starting value for the integration step size
+!
+!    RCNTRL(4)  -> FacMin,lower bound on step decrease factor (default=0.2)
+!    RCNTRL(5)  -> FacMax,upper bound on step increase factor (default=6)
+!    RCNTRL(6)  -> FacRej,step decrease factor after multiple rejections
+!                          (default=0.1)
+!    RCNTRL(7)  -> FacSafe,by which the new step is slightly smaller
+!         than the predicted value  (default=0.9)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!
+!    OUTPUT ARGUMENTS:
+!    -----------------
+!
+!    T           -> T value for which the solution has been computed
+!                     (after successful return T=Tend).
+!
+!    Y(N)        -> Numerical solution at T
+!
+!    IDID        -> Reports on successfulness upon return:
+!                    = 1 for success
+!                    < 0 for error (value equals error code)
+!
+!    ISTATUS(1)  -> No. of function calls
+!    ISTATUS(2)  -> No. of jacobian calls
+!    ISTATUS(3)  -> No. of steps
+!    ISTATUS(4)  -> No. of accepted steps
+!    ISTATUS(5)  -> No. of rejected steps (except at very beginning)
+!    ISTATUS(6)  -> No. of LU decompositions
+!    ISTATUS(7)  -> No. of forward/backward substitutions
+!    ISTATUS(8)  -> No. of singular matrix decompositions
+!
+!    RSTATUS(1)  -> Texit,the time corresponding to the
+!                     computed Y upon return
+!    RSTATUS(2)  -> Hexit,last accepted step before exit
+!    RSTATUS(3)  -> Hnew,last predicted step (not yet taken)
+!                   For multiple restarts,use Hnew as Hstart 
+!                     in the subsequent run
+!
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+!~~~>  arguments
+   INTEGER,      INTENT(in)   :: n
+   REAL(kind=dp),INTENT(inout):: y(n)
+   REAL(kind=dp),INTENT(in)   :: tstart,tend
+   REAL(kind=dp),INTENT(in)   :: abstol(n),reltol(n)
+   INTEGER,      INTENT(in)   :: icntrl(20)
+   REAL(kind=dp),INTENT(in)   :: rcntrl(20)
+   INTEGER,      INTENT(inout):: istatus(20)
+   REAL(kind=dp),INTENT(inout):: rstatus(20)
+   INTEGER,INTENT(out)  :: ierr
+!~~~>  PARAMETERs of the rosenbrock method,up to 6 stages
+   INTEGER ::  ros_s,rosmethod
+   INTEGER,PARAMETER :: rs2=1,rs3=2,rs4=3,rd3=4,rd4=5,rg3=6
+   REAL(kind=dp):: ros_a(15),ros_c(15),ros_m(6),ros_e(6),&
+                    ros_alpha(6),ros_gamma(6),ros_elo
+   LOGICAL :: ros_newf(6)
+   CHARACTER(len=12):: ros_name
+!~~~>  local variables
+   REAL(kind=dp):: roundoff,facmin,facmax,facrej,facsafe
+   REAL(kind=dp):: hmin,hmax,hstart
+   REAL(kind=dp):: texit
+   INTEGER       :: i,uplimtol,max_no_steps
+   LOGICAL       :: autonomous,vectortol
+!~~~>   PARAMETERs
+   REAL(kind=dp),PARAMETER :: zero = 0.0_dp, one  = 1.0_dp
+   REAL(kind=dp),PARAMETER :: deltamin = 1.0e-5_dp
+
+!~~~>  initialize statistics
+   istatus(1:8) = 0
+   rstatus(1:3) = zero
+
+!~~~>  autonomous or time dependent ode. default is time dependent.
+   autonomous = .not.(icntrl(1) == 0)
+
+!~~~>  for scalar tolerances (icntrl(2).ne.0) the code uses abstol(1)and reltol(1)
+!   For Vector tolerances (ICNTRL(2) == 0) the code uses AbsTol(1:N) and RelTol(1:N)
+   IF (icntrl(2) == 0)THEN
+      vectortol = .true.
+      uplimtol  = n
+   ELSE
+      vectortol = .false.
+      uplimtol  = 1
+   ENDIF
+
+!~~~>   initialize the particular rosenbrock method selected
+   select CASE (icntrl(3))
+     CASE (1)
+       CALL ros2
+     CASE (2)
+       CALL ros3
+     CASE (3)
+       CALL ros4
+     CASE (0,4)
+       CALL rodas3
+     CASE (5)
+       CALL rodas4
+     CASE (6)
+       CALL rang3
+     CASE default
+       PRINT *,'Unknown Rosenbrock method: ICNTRL(3) =',ICNTRL(3) 
+       CALL ros_errormsg(- 2,tstart,zero,ierr)
+       RETURN
+   END select
+
+!~~~>   the maximum number of steps admitted
+   IF (icntrl(4) == 0)THEN
+      max_no_steps = 200000
+   ELSEIF (icntrl(4)> 0)THEN
+      max_no_steps=icntrl(4)
+   ELSE
+      PRINT *,'User-selected max no. of steps: ICNTRL(4) =',ICNTRL(4)
+      CALL ros_errormsg(- 1,tstart,zero,ierr)
+      RETURN
+   ENDIF
+
+!~~~>  unit roundoff (1+ roundoff>1)
+   Roundoff = WLAMCH('E')
+
+!~~~>  lower bound on the step size: (positive value)
+   IF (rcntrl(1) == zero)THEN
+      hmin = zero
+   ELSEIF (rcntrl(1)> zero)THEN
+      hmin = rcntrl(1)
+   ELSE
+      PRINT *,'User-selected Hmin: RCNTRL(1) =',RCNTRL(1)
+      CALL ros_errormsg(- 3,tstart,zero,ierr)
+      RETURN
+   ENDIF
+!~~~>  upper bound on the step size: (positive value)
+   IF (rcntrl(2) == zero)THEN
+      hmax = abs(tend-tstart)
+   ELSEIF (rcntrl(2)> zero)THEN
+      hmax = min(abs(rcntrl(2)),abs(tend-tstart))
+   ELSE
+      PRINT *,'User-selected Hmax: RCNTRL(2) =',RCNTRL(2)
+      CALL ros_errormsg(- 3,tstart,zero,ierr)
+      RETURN
+   ENDIF
+!~~~>  starting step size: (positive value)
+   IF (rcntrl(3) == zero)THEN
+      hstart = max(hmin,deltamin)
+   ELSEIF (rcntrl(3)> zero)THEN
+      hstart = min(abs(rcntrl(3)),abs(tend-tstart))
+   ELSE
+      PRINT *,'User-selected Hstart: RCNTRL(3) =',RCNTRL(3)
+      CALL ros_errormsg(- 3,tstart,zero,ierr)
+      RETURN
+   ENDIF
+!~~~>  step size can be changed s.t.  facmin < hnew/hold < facmax
+   IF (rcntrl(4) == zero)THEN
+      facmin = 0.2_dp
+   ELSEIF (rcntrl(4)> zero)THEN
+      facmin = rcntrl(4)
+   ELSE
+      PRINT *,'User-selected FacMin: RCNTRL(4) =',RCNTRL(4)
+      CALL ros_errormsg(- 4,tstart,zero,ierr)
+      RETURN
+   ENDIF
+   IF (rcntrl(5) == zero)THEN
+      facmax = 6.0_dp
+   ELSEIF (rcntrl(5)> zero)THEN
+      facmax = rcntrl(5)
+   ELSE
+      PRINT *,'User-selected FacMax: RCNTRL(5) =',RCNTRL(5)
+      CALL ros_errormsg(- 4,tstart,zero,ierr)
+      RETURN
+   ENDIF
+!~~~>   facrej: factor to decrease step after 2 succesive rejections
+   IF (rcntrl(6) == zero)THEN
+      facrej = 0.1_dp
+   ELSEIF (rcntrl(6)> zero)THEN
+      facrej = rcntrl(6)
+   ELSE
+      PRINT *,'User-selected FacRej: RCNTRL(6) =',RCNTRL(6)
+      CALL ros_errormsg(- 4,tstart,zero,ierr)
+      RETURN
+   ENDIF
+!~~~>   facsafe: safety factor in the computation of new step size
+   IF (rcntrl(7) == zero)THEN
+      facsafe = 0.9_dp
+   ELSEIF (rcntrl(7)> zero)THEN
+      facsafe = rcntrl(7)
+   ELSE
+      PRINT *,'User-selected FacSafe: RCNTRL(7) =',RCNTRL(7)
+      CALL ros_errormsg(- 4,tstart,zero,ierr)
+      RETURN
+   ENDIF
+!~~~>  check IF tolerances are reasonable
+    DO i=1,uplimtol
+      IF((abstol(i)<= zero).or. (reltol(i)<= 10.0_dp*roundoff)&
+         .or. (reltol(i)>= 1.0_dp))THEN
+        PRINT *,' AbsTol(',i,') = ',AbsTol(i)
+        PRINT *,' RelTol(',i,') = ',RelTol(i)
+        CALL ros_errormsg(- 5,tstart,zero,ierr)
+        RETURN
+      ENDIF
+    ENDDO
+
+
+!~~~>  CALL rosenbrock method
+   CALL ros_integrator(y,tstart,tend,texit,  &
+        abstol,reltol,                         &
+!  Integration parameters
+        autonomous,vectortol,max_no_steps,    &
+        roundoff,hmin,hmax,hstart,           &
+        facmin,facmax,facrej,facsafe,        &
+!  Error indicator
+        ierr)
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+CONTAINS !  SUBROUTINEs internal to rosenbrock
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+ SUBROUTINE ros_errormsg(code,t,h,ierr)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+!    Handles all error messages
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+  
+   REAL(kind=dp),INTENT(in):: t,h
+   INTEGER,INTENT(in) :: code
+   INTEGER,INTENT(out):: ierr
+   
+   ierr = code
+   print *,&
+     'Forced exit from Rosenbrock due to the following error:' 
+     
+   select CASE (code)
+    CASE (- 1)   
+      PRINT *,'--> Improper value for maximal no of steps'
+    CASE (- 2)   
+      PRINT *,'--> Selected Rosenbrock method not implemented'
+    CASE (- 3)   
+      PRINT *,'--> Hmin/Hmax/Hstart must be positive'
+    CASE (- 4)   
+      PRINT *,'--> FacMin/FacMax/FacRej must be positive'
+    CASE (- 5)
+      PRINT *,'--> Improper tolerance values'
+    CASE (- 6)
+      PRINT *,'--> No of steps exceeds maximum bound'
+    CASE (- 7)
+      PRINT *,'--> Step size too small: T + 10*H = T',&
+            ' or H < Roundoff'
+    CASE (- 8)   
+      PRINT *,'--> Matrix is repeatedly singular'
+    CASE default
+      PRINT *,'Unknown Error code: ',Code
+   END select
+   
+   print *,"t=",t,"and h=",h
+     
+ END SUBROUTINE ros_errormsg
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE ros_integrator (y,tstart,tend,t, &
+        abstol,reltol,                         &
+!~~~> integration PARAMETERs
+        autonomous,vectortol,max_no_steps,    &
+        roundoff,hmin,hmax,hstart,           &
+        facmin,facmax,facrej,facsafe,        &
+!~~~> error indicator
+        ierr)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!   Template for the implementation of a generic Rosenbrock method
+!      defined by ros_S (no of stages)
+!      and its coefficients ros_{A,C,M,E,Alpha,Gamma}
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+!~~~> input: the initial condition at tstart; output: the solution at t
+   REAL(kind=dp),INTENT(inout):: y(n)
+!~~~> input: integration interval
+   REAL(kind=dp),INTENT(in):: tstart,tend
+!~~~> output: time at which the solution is RETURNed (t=tENDIF success)
+   REAL(kind=dp),INTENT(out)::  t
+!~~~> input: tolerances
+   REAL(kind=dp),INTENT(in)::  abstol(n),reltol(n)
+!~~~> input: integration PARAMETERs
+   LOGICAL,INTENT(in):: autonomous,vectortol
+   REAL(kind=dp),INTENT(in):: hstart,hmin,hmax
+   INTEGER,INTENT(in):: max_no_steps
+   REAL(kind=dp),INTENT(in):: roundoff,facmin,facmax,facrej,facsafe
+!~~~> output: error indicator
+   INTEGER,INTENT(out):: ierr
+! ~~~~ Local variables
+   REAL(kind=dp):: ynew(n),fcn0(n),fcn(n)
+   REAL(kind=dp):: k(n*ros_s),dfdt(n)
+#ifdef full_algebra    
+   REAL(kind=dp):: jac0(n,n),ghimj(n,n)
+#else
+   REAL(kind=dp):: jac0(lu_nonzero),ghimj(lu_nonzero)
+#endif
+   REAL(kind=dp):: h,hnew,hc,hg,fac,tau
+   REAL(kind=dp):: err,yerr(n)
+   INTEGER :: pivot(n),direction,ioffset,j,istage
+   LOGICAL :: rejectlasth,rejectmoreh,singular
+!~~~>  local PARAMETERs
+   REAL(kind=dp),PARAMETER :: zero = 0.0_dp, one  = 1.0_dp
+   REAL(kind=dp),PARAMETER :: deltamin = 1.0e-5_dp
+!~~~>  locally called FUNCTIONs
+!    REAL(kind=dp) WLAMCH
+!    EXTERNAL WLAMCH
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+!~~~>  initial preparations
+   t = tstart
+   rstatus(nhexit) = zero
+   h = min( max(abs(hmin),abs(hstart)),abs(hmax))
+   IF (abs(h)<= 10.0_dp*roundoff)h = deltamin
+
+   IF (tEND  >=  tstart)THEN
+     direction = + 1
+   ELSE
+     direction = - 1
+   ENDIF
+   h = direction*h
+
+   rejectlasth=.false.
+   rejectmoreh=.false.
+
+!~~~> time loop begins below
+
+timeloop: DO WHILE((direction > 0).and.((t- tEND)+ roundoff <= zero)&
+       .or. (direction < 0).and.((tend-t)+ roundoff <= zero))
+
+   IF(istatus(nstp)> max_no_steps)THEN  ! too many steps
+      CALL ros_errormsg(- 6,t,h,ierr)
+      RETURN
+   ENDIF
+   IF(((t+ 0.1_dp*h) == t).or.(h <= roundoff))THEN  ! step size too small
+      CALL ros_errormsg(- 7,t,h,ierr)
+      RETURN
+   ENDIF
+
+!~~~>  limit h IF necessary to avoid going beyond tend
+   h = min(h,abs(tend-t))
+
+!~~~>   compute the FUNCTION at current time
+   CALL funtemplate(t,y,fcn0)
+   istatus(nfun) = istatus(nfun)+ 1
+
+!~~~>  compute the FUNCTION derivative with respect to t
+   IF (.not.autonomous)THEN
+      CALL ros_funtimederivative(t,roundoff,y,&
+                fcn0,dfdt)
+   ENDIF
+
+!~~~>   compute the jacobian at current time
+   CALL jactemplate(t,y,jac0)
+   istatus(njac) = istatus(njac)+ 1
+
+!~~~>  repeat step calculation until current step accepted
+untilaccepted: do
+
+   CALL ros_preparematrix(h,direction,ros_gamma(1),&
+          jac0,ghimj,pivot,singular)
+   IF (singular)THEN ! more than 5 consecutive failed decompositions
+       CALL ros_errormsg(- 8,t,h,ierr)
+       RETURN
+   ENDIF
+
+!~~~>   compute the stages
+stage: DO istage = 1,ros_s
+
+      ! current istage offset. current istage vector is k(ioffset+ 1:ioffset+ n)
+       ioffset = n*(istage-1)
+
+      ! for the 1st istage the FUNCTION has been computed previously
+       IF(istage == 1)THEN
+         !slim: CALL wcopy(n,fcn0,1,fcn,1)
+	 fcn(1:n) = fcn0(1:n)
+      ! istage>1 and a new FUNCTION evaluation is needed at the current istage
+       ELSEIF(ros_newf(istage))THEN
+         !slim: CALL wcopy(n,y,1,ynew,1)
+	 ynew(1:n) = y(1:n)
+         DO j = 1,istage-1
+           CALL waxpy(n,ros_a((istage-1)*(istage-2)/2+ j),&
+            k(n*(j- 1)+ 1),1,ynew,1)
+         ENDDO
+         tau = t + ros_alpha(istage)*direction*h
+         CALL funtemplate(tau,ynew,fcn)
+         istatus(nfun) = istatus(nfun)+ 1
+       ENDIF ! IF istage == 1 ELSEIF ros_newf(istage)
+       !slim: CALL wcopy(n,fcn,1,k(ioffset+ 1),1)
+       k(ioffset+ 1:ioffset+ n) = fcn(1:n)
+       DO j = 1,istage-1
+         hc = ros_c((istage-1)*(istage-2)/2+ j)/(direction*h)
+         CALL waxpy(n,hc,k(n*(j- 1)+ 1),1,k(ioffset+ 1),1)
+       ENDDO
+       IF ((.not. autonomous).and.(ros_gamma(istage).ne.zero))THEN
+         hg = direction*h*ros_gamma(istage)
+         CALL waxpy(n,hg,dfdt,1,k(ioffset+ 1),1)
+       ENDIF
+       CALL ros_solve(ghimj,pivot,k(ioffset+ 1))
+
+   END DO stage
+
+
+!~~~>  compute the new solution
+   !slim: CALL wcopy(n,y,1,ynew,1)
+   ynew(1:n) = y(1:n)
+   DO j=1,ros_s
+         CALL waxpy(n,ros_m(j),k(n*(j- 1)+ 1),1,ynew,1)
+   ENDDO
+
+!~~~>  compute the error estimation
+   !slim: CALL wscal(n,zero,yerr,1)
+   yerr(1:n) = zero
+   DO j=1,ros_s
+        CALL waxpy(n,ros_e(j),k(n*(j- 1)+ 1),1,yerr,1)
+   ENDDO
+   err = ros_errornorm(y,ynew,yerr,abstol,reltol,vectortol)
+
+!~~~> new step size is bounded by facmin <= hnew/h <= facmax
+   fac  = min(facmax,max(facmin,facsafe/err**(one/ros_elo)))
+   hnew = h*fac
+
+!~~~>  check the error magnitude and adjust step size
+   istatus(nstp) = istatus(nstp)+ 1
+   IF((err <= one).or.(h <= hmin))THEN  !~~~> accept step
+      istatus(nacc) = istatus(nacc)+ 1
+      !slim: CALL wcopy(n,ynew,1,y,1)
+      y(1:n) = ynew(1:n)
+      t = t + direction*h
+      hnew = max(hmin,min(hnew,hmax))
+      IF (rejectlasth)THEN  ! no step size increase after a rejected step
+         hnew = min(hnew,h)
+      ENDIF
+      rstatus(nhexit) = h
+      rstatus(nhnew) = hnew
+      rstatus(ntexit) = t
+      rejectlasth = .false.
+      rejectmoreh = .false.
+      h = hnew
+      exit untilaccepted ! exit the loop: WHILE step not accepted
+   ELSE           !~~~> reject step
+      IF (rejectmoreh)THEN
+         hnew = h*facrej
+      ENDIF
+      rejectmoreh = rejectlasth
+      rejectlasth = .true.
+      h = hnew
+      IF (istatus(nacc)>= 1) istatus(nrej) = istatus(nrej)+ 1
+   ENDIF ! err <= 1
+
+   END DO untilaccepted
+
+   END DO timeloop
+
+!~~~> succesful exit
+   ierr = 1  !~~~> the integration was successful
+
+  END SUBROUTINE ros_integrator
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  REAL(kind=dp)FUNCTION ros_errornorm(y,ynew,yerr,&
+                               abstol,reltol,vectortol)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> computes the "scaled norm" of the error vector yerr
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+! Input arguments
+   REAL(kind=dp),INTENT(in):: y(n),ynew(n),&
+          yerr(n),abstol(n),reltol(n)
+   LOGICAL,INTENT(in)::  vectortol
+! Local variables
+   REAL(kind=dp):: err,scale,ymax
+   INTEGER  :: i
+   REAL(kind=dp),PARAMETER :: zero = 0.0_dp
+
+   err = zero
+   DO i=1,n
+     ymax = max(abs(y(i)),abs(ynew(i)))
+     IF (vectortol)THEN
+       scale = abstol(i)+ reltol(i)*ymax
+     ELSE
+       scale = abstol(1)+ reltol(1)*ymax
+     ENDIF
+     err = err+(yerr(i)/scale)**2
+   ENDDO
+   err  = sqrt(err/n)
+
+   ros_errornorm = max(err,1.0d-10)
+
+  END FUNCTION ros_errornorm
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE ros_funtimederivative(t,roundoff,y,&
+                fcn0,dfdt)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> the time partial derivative of the FUNCTION by finite differences
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+!~~~> input arguments
+   REAL(kind=dp),INTENT(in):: t,roundoff,y(n),fcn0(n)
+!~~~> output arguments
+   REAL(kind=dp),INTENT(out):: dfdt(n)
+!~~~> local variables
+   REAL(kind=dp):: delta
+   REAL(kind=dp),PARAMETER :: one = 1.0_dp, deltamin = 1.0e-6_dp
+
+   delta = sqrt(roundoff)*max(deltamin,abs(t))
+   CALL funtemplate(t+ delta,y,dfdt)
+   istatus(nfun) = istatus(nfun)+ 1
+   CALL waxpy(n,(- one),fcn0,1,dfdt,1)
+   CALL wscal(n,(one/delta),dfdt,1)
+
+  END SUBROUTINE ros_funtimederivative
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE ros_preparematrix(h,direction,gam,&
+             jac0,ghimj,pivot,singular)
+! --- --- --- --- --- --- --- --- --- --- --- --- ---
+!  Prepares the LHS matrix for stage calculations
+!  1.  Construct Ghimj = 1/(H*ham) - Jac0
+!      "(Gamma H) Inverse Minus Jacobian"
+!  2.  Repeat LU decomposition of Ghimj until successful.
+!       -half the step size if LU decomposition fails and retry
+!       -exit after 5 consecutive fails
+! --- --- --- --- --- --- --- --- --- --- --- --- ---
+
+!~~~> input arguments
+#ifdef full_algebra    
+   REAL(kind=dp),INTENT(in)::  jac0(n,n)
+#else
+   REAL(kind=dp),INTENT(in)::  jac0(lu_nonzero)
+#endif   
+   REAL(kind=dp),INTENT(in)::  gam
+   INTEGER,INTENT(in)::  direction
+!~~~> output arguments
+#ifdef full_algebra    
+   REAL(kind=dp),INTENT(out):: ghimj(n,n)
+#else
+   REAL(kind=dp),INTENT(out):: ghimj(lu_nonzero)
+#endif   
+   LOGICAL,INTENT(out)::  singular
+   INTEGER,INTENT(out)::  pivot(n)
+!~~~> inout arguments
+   REAL(kind=dp),INTENT(inout):: h   ! step size is decreased when lu fails
+!~~~> local variables
+   INTEGER  :: i,ising,nconsecutive
+   REAL(kind=dp):: ghinv
+   REAL(kind=dp),PARAMETER :: one  = 1.0_dp, half = 0.5_dp
+
+   nconsecutive = 0
+   singular = .true.
+
+   DO WHILE (singular)
+
+!~~~>    construct ghimj = 1/(h*gam)-  jac0
+#ifdef full_algebra    
+     !slim: CALL wcopy(n*n,jac0,1,ghimj,1)
+     !slim: CALL wscal(n*n,(- one),ghimj,1)
+     ghimj = - jac0
+     ghinv = one/(direction*h*gam)
+     DO i=1,n
+       ghimj(i,i) = ghimj(i,i)+ ghinv
+     ENDDO
+#else
+     !slim: CALL wcopy(lu_nonzero,jac0,1,ghimj,1)
+     !slim: CALL wscal(lu_nonzero,(- one),ghimj,1)
+     ghimj(1:lu_nonzero) = - jac0(1:lu_nonzero)
+     ghinv = one/(direction*h*gam)
+     DO i=1,n
+       ghimj(lu_diag(i)) = ghimj(lu_diag(i))+ ghinv
+     ENDDO
+#endif   
+!~~~>    compute lu decomposition
+     CALL ros_decomp( ghimj,pivot,ising)
+     IF (ising == 0)THEN
+!~~~>    IF successful done
+        singular = .false.
+     ELSE ! ising .ne. 0
+!~~~>    IF unsuccessful half the step size; IF 5 consecutive fails THEN RETURN
+        istatus(nsng) = istatus(nsng)+ 1
+        nconsecutive = nconsecutive+1
+        singular = .true.
+        PRINT*,'Warning: LU Decomposition returned ISING = ',ISING
+        IF (nconsecutive <= 5)THEN ! less than 5 consecutive failed decompositions
+           h = h*half
+        ELSE  ! more than 5 consecutive failed decompositions
+           RETURN
+        ENDIF  ! nconsecutive
+      ENDIF    ! ising
+
+   END DO ! WHILE singular
+
+  END SUBROUTINE ros_preparematrix
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE ros_decomp( a,pivot,ising)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!  Template for the LU decomposition
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> inout variables
+#ifdef full_algebra    
+   REAL(kind=dp),INTENT(inout):: a(n,n)
+#else   
+   REAL(kind=dp),INTENT(inout):: a(lu_nonzero)
+#endif
+!~~~> output variables
+   INTEGER,INTENT(out):: pivot(n),ising
+
+#ifdef full_algebra    
+   CALL  dgetrf( n,n,a,n,pivot,ising)
+#else   
+   CALL kppdecomp(a,ising)
+   pivot(1) = 1
+#endif
+   istatus(ndec) = istatus(ndec)+ 1
+
+  END SUBROUTINE ros_decomp
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE ros_solve( a,pivot,b)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!  Template for the forward/backward substitution (using pre-computed LU decomposition)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> input variables
+#ifdef full_algebra    
+   REAL(kind=dp),INTENT(in):: a(n,n)
+   INTEGER :: ising
+#else   
+   REAL(kind=dp),INTENT(in):: a(lu_nonzero)
+#endif
+   INTEGER,INTENT(in):: pivot(n)
+!~~~> inout variables
+   REAL(kind=dp),INTENT(inout):: b(n)
+
+#ifdef full_algebra    
+   CALL  DGETRS( 'N',N ,1,A,N,Pivot,b,N,ISING)
+   IF(info < 0)THEN
+      print*,"error in dgetrs. ising=",ising
+   ENDIF  
+#else   
+   CALL kppsolve( a,b)
+#endif
+
+   istatus(nsol) = istatus(nsol)+ 1
+
+  END SUBROUTINE ros_solve
+
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE ros2
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! --- AN L-STABLE METHOD,2 stages,order 2
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+   double precision g
+
+    g = 1.0_dp + 1.0_dp/sqrt(2.0_dp)
+    rosmethod = rs2
+!~~~> name of the method
+    ros_Name = 'ROS-2'
+!~~~> number of stages
+    ros_s = 2
+
+!~~~> the coefficient matrices a and c are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1),A(3,1) =ros_A(2),A(3,2) =ros_A(3),etc.
+!   The general mapping formula is:
+!       A(i,j) = ros_A( (i-1)*(i-2)/2 + j)
+!       C(i,j) = ros_C( (i-1)*(i-2)/2 + j)
+
+    ros_a(1) = (1.0_dp)/g
+    ros_c(1) = (- 2.0_dp)/g
+!~~~> does the stage i require a new FUNCTION evaluation (ros_newf(i) =true)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i) =FALSE)
+    ros_newf(1) = .true.
+    ros_newf(2) = .true.
+!~~~> m_i = coefficients for new step solution
+    ros_m(1) = (3.0_dp)/(2.0_dp*g)
+    ros_m(2) = (1.0_dp)/(2.0_dp*g)
+! E_i = Coefficients for error estimator
+    ros_e(1) = 1.0_dp/(2.0_dp*g)
+    ros_e(2) = 1.0_dp/(2.0_dp*g)
+!~~~> ros_elo = estimator of local order -  the minimum between the
+!    main and the embedded scheme orders plus one
+    ros_elo = 2.0_dp
+!~~~> y_stage_i ~ y( t + h*alpha_i)
+    ros_alpha(1) = 0.0_dp
+    ros_alpha(2) = 1.0_dp
+!~~~> gamma_i = \sum_j  gamma_{i,j}
+    ros_gamma(1) = g
+    ros_gamma(2) =- g
+
+ END SUBROUTINE ros2
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE ros3
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! --- AN L-STABLE METHOD,3 stages,order 3,2 function evaluations
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+   rosmethod = rs3
+!~~~> name of the method
+   ros_Name = 'ROS-3'
+!~~~> number of stages
+   ros_s = 3
+
+!~~~> the coefficient matrices a and c are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1),A(3,1) =ros_A(2),A(3,2) =ros_A(3),etc.
+!   The general mapping formula is:
+!       A(i,j) = ros_A( (i-1)*(i-2)/2 + j)
+!       C(i,j) = ros_C( (i-1)*(i-2)/2 + j)
+
+   ros_a(1) = 1.0_dp
+   ros_a(2) = 1.0_dp
+   ros_a(3) = 0.0_dp
+
+   ros_c(1) = - 0.10156171083877702091975600115545e+01_dp
+   ros_c(2) =  0.40759956452537699824805835358067e+01_dp
+   ros_c(3) =  0.92076794298330791242156818474003e+01_dp
+!~~~> does the stage i require a new FUNCTION evaluation (ros_newf(i) =true)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i) =FALSE)
+   ros_newf(1) = .true.
+   ros_newf(2) = .true.
+   ros_newf(3) = .false.
+!~~~> m_i = coefficients for new step solution
+   ros_m(1) =  0.1e+01_dp
+   ros_m(2) =  0.61697947043828245592553615689730e+01_dp
+   ros_m(3) = - 0.42772256543218573326238373806514_dp
+! E_i = Coefficients for error estimator
+   ros_e(1) =  0.5_dp
+   ros_e(2) = - 0.29079558716805469821718236208017e+01_dp
+   ros_e(3) =  0.22354069897811569627360909276199_dp
+!~~~> ros_elo = estimator of local order -  the minimum between the
+!    main and the embedded scheme orders plus 1
+   ros_elo = 3.0_dp
+!~~~> y_stage_i ~ y( t + h*alpha_i)
+   ros_alpha(1) = 0.0_dp
+   ros_alpha(2) = 0.43586652150845899941601945119356_dp
+   ros_alpha(3) = 0.43586652150845899941601945119356_dp
+!~~~> gamma_i = \sum_j  gamma_{i,j}
+   ros_gamma(1) = 0.43586652150845899941601945119356_dp
+   ros_gamma(2) = 0.24291996454816804366592249683314_dp
+   ros_gamma(3) = 0.21851380027664058511513169485832e+01_dp
+
+  END SUBROUTINE ros3
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE ros4
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!     L-STABLE ROSENBROCK METHOD OF ORDER 4,WITH 4 STAGES
+!     L-STABLE EMBEDDED ROSENBROCK METHOD OF ORDER 3
+!
+!      E. HAIRER AND G. WANNER,SOLVING ORDINARY DIFFERENTIAL
+!      EQUATIONS II. STIFF AND DIFFERENTIAL-ALGEBRAIC PROBLEMS.
+!      SPRINGER SERIES IN COMPUTATIONAL MATHEMATICS,
+!      SPRINGER-VERLAG (1990)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+   rosmethod = rs4
+!~~~> name of the method
+   ros_Name = 'ROS-4'
+!~~~> number of stages
+   ros_s = 4
+
+!~~~> the coefficient matrices a and c are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1),A(3,1) =ros_A(2),A(3,2) =ros_A(3),etc.
+!   The general mapping formula is:
+!       A(i,j) = ros_A( (i-1)*(i-2)/2 + j)
+!       C(i,j) = ros_C( (i-1)*(i-2)/2 + j)
+
+   ros_a(1) = 0.2000000000000000e+01_dp
+   ros_a(2) = 0.1867943637803922e+01_dp
+   ros_a(3) = 0.2344449711399156_dp
+   ros_a(4) = ros_a(2)
+   ros_a(5) = ros_a(3)
+   ros_a(6) = 0.0_dp
+
+   ros_c(1) =- 0.7137615036412310e+01_dp
+   ros_c(2) = 0.2580708087951457e+01_dp
+   ros_c(3) = 0.6515950076447975_dp
+   ros_c(4) =- 0.2137148994382534e+01_dp
+   ros_c(5) =- 0.3214669691237626_dp
+   ros_c(6) =- 0.6949742501781779_dp
+!~~~> does the stage i require a new FUNCTION evaluation (ros_newf(i) =true)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i) =FALSE)
+   ros_newf(1) = .true.
+   ros_newf(2) = .true.
+   ros_newf(3) = .true.
+   ros_newf(4) = .false.
+!~~~> m_i = coefficients for new step solution
+   ros_m(1) = 0.2255570073418735e+01_dp
+   ros_m(2) = 0.2870493262186792_dp
+   ros_m(3) = 0.4353179431840180_dp
+   ros_m(4) = 0.1093502252409163e+01_dp
+!~~~> e_i  = coefficients for error estimator
+   ros_e(1) =- 0.2815431932141155_dp
+   ros_e(2) =- 0.7276199124938920e-01_dp
+   ros_e(3) =- 0.1082196201495311_dp
+   ros_e(4) =- 0.1093502252409163e+01_dp
+!~~~> ros_elo  = estimator of local order -  the minimum between the
+!    main and the embedded scheme orders plus 1
+   ros_elo  = 4.0_dp
+!~~~> y_stage_i ~ y( t + h*alpha_i)
+   ros_alpha(1) = 0.0_dp
+   ros_alpha(2) = 0.1145640000000000e+01_dp
+   ros_alpha(3) = 0.6552168638155900_dp
+   ros_alpha(4) = ros_alpha(3)
+!~~~> gamma_i = \sum_j  gamma_{i,j}
+   ros_gamma(1) = 0.5728200000000000_dp
+   ros_gamma(2) =- 0.1769193891319233e+01_dp
+   ros_gamma(3) = 0.7592633437920482_dp
+   ros_gamma(4) =- 0.1049021087100450_dp
+
+  END SUBROUTINE ros4
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE rodas3
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! --- A STIFFLY-STABLE METHOD,4 stages,order 3
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+   rosmethod = rd3
+!~~~> name of the method
+   ros_Name = 'RODAS-3'
+!~~~> number of stages
+   ros_s = 4
+
+!~~~> the coefficient matrices a and c are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1),A(3,1) =ros_A(2),A(3,2) =ros_A(3),etc.
+!   The general mapping formula is:
+!       A(i,j) = ros_A( (i-1)*(i-2)/2 + j)
+!       C(i,j) = ros_C( (i-1)*(i-2)/2 + j)
+
+   ros_a(1) = 0.0_dp
+   ros_a(2) = 2.0_dp
+   ros_a(3) = 0.0_dp
+   ros_a(4) = 2.0_dp
+   ros_a(5) = 0.0_dp
+   ros_a(6) = 1.0_dp
+
+   ros_c(1) = 4.0_dp
+   ros_c(2) = 1.0_dp
+   ros_c(3) =- 1.0_dp
+   ros_c(4) = 1.0_dp
+   ros_c(5) =- 1.0_dp
+   ros_c(6) =- (8.0_dp/3.0_dp)
+
+!~~~> does the stage i require a new FUNCTION evaluation (ros_newf(i) =true)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i) =FALSE)
+   ros_newf(1) = .true.
+   ros_newf(2) = .false.
+   ros_newf(3) = .true.
+   ros_newf(4) = .true.
+!~~~> m_i = coefficients for new step solution
+   ros_m(1) = 2.0_dp
+   ros_m(2) = 0.0_dp
+   ros_m(3) = 1.0_dp
+   ros_m(4) = 1.0_dp
+!~~~> e_i  = coefficients for error estimator
+   ros_e(1) = 0.0_dp
+   ros_e(2) = 0.0_dp
+   ros_e(3) = 0.0_dp
+   ros_e(4) = 1.0_dp
+!~~~> ros_elo  = estimator of local order -  the minimum between the
+!    main and the embedded scheme orders plus 1
+   ros_elo  = 3.0_dp
+!~~~> y_stage_i ~ y( t + h*alpha_i)
+   ros_alpha(1) = 0.0_dp
+   ros_alpha(2) = 0.0_dp
+   ros_alpha(3) = 1.0_dp
+   ros_alpha(4) = 1.0_dp
+!~~~> gamma_i = \sum_j  gamma_{i,j}
+   ros_gamma(1) = 0.5_dp
+   ros_gamma(2) = 1.5_dp
+   ros_gamma(3) = 0.0_dp
+   ros_gamma(4) = 0.0_dp
+
+  END SUBROUTINE rodas3
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE rodas4
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!     STIFFLY-STABLE ROSENBROCK METHOD OF ORDER 4,WITH 6 STAGES
+!
+!      E. HAIRER AND G. WANNER,SOLVING ORDINARY DIFFERENTIAL
+!      EQUATIONS II. STIFF AND DIFFERENTIAL-ALGEBRAIC PROBLEMS.
+!      SPRINGER SERIES IN COMPUTATIONAL MATHEMATICS,
+!      SPRINGER-VERLAG (1996)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+    rosmethod = rd4
+!~~~> name of the method
+    ros_Name = 'RODAS-4'
+!~~~> number of stages
+    ros_s = 6
+
+!~~~> y_stage_i ~ y( t + h*alpha_i)
+    ros_alpha(1) = 0.000_dp
+    ros_alpha(2) = 0.386_dp
+    ros_alpha(3) = 0.210_dp
+    ros_alpha(4) = 0.630_dp
+    ros_alpha(5) = 1.000_dp
+    ros_alpha(6) = 1.000_dp
+
+!~~~> gamma_i = \sum_j  gamma_{i,j}
+    ros_gamma(1) = 0.2500000000000000_dp
+    ros_gamma(2) =- 0.1043000000000000_dp
+    ros_gamma(3) = 0.1035000000000000_dp
+    ros_gamma(4) =- 0.3620000000000023e-01_dp
+    ros_gamma(5) = 0.0_dp
+    ros_gamma(6) = 0.0_dp
+
+!~~~> the coefficient matrices a and c are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1),A(3,1) =ros_A(2),A(3,2) =ros_A(3),etc.
+!   The general mapping formula is:  A(i,j) = ros_A( (i-1)*(i-2)/2 + j)
+!                  C(i,j) = ros_C( (i-1)*(i-2)/2 + j)
+
+    ros_a(1) = 0.1544000000000000e+01_dp
+    ros_a(2) = 0.9466785280815826_dp
+    ros_a(3) = 0.2557011698983284_dp
+    ros_a(4) = 0.3314825187068521e+01_dp
+    ros_a(5) = 0.2896124015972201e+01_dp
+    ros_a(6) = 0.9986419139977817_dp
+    ros_a(7) = 0.1221224509226641e+01_dp
+    ros_a(8) = 0.6019134481288629e+01_dp
+    ros_a(9) = 0.1253708332932087e+02_dp
+    ros_a(10) =- 0.6878860361058950_dp
+    ros_a(11) = ros_a(7)
+    ros_a(12) = ros_a(8)
+    ros_a(13) = ros_a(9)
+    ros_a(14) = ros_a(10)
+    ros_a(15) = 1.0_dp
+
+    ros_c(1) =- 0.5668800000000000e+01_dp
+    ros_c(2) =- 0.2430093356833875e+01_dp
+    ros_c(3) =- 0.2063599157091915_dp
+    ros_c(4) =- 0.1073529058151375_dp
+    ros_c(5) =- 0.9594562251023355e+01_dp
+    ros_c(6) =- 0.2047028614809616e+02_dp
+    ros_c(7) = 0.7496443313967647e+01_dp
+    ros_c(8) =- 0.1024680431464352e+02_dp
+    ros_c(9) =- 0.3399990352819905e+02_dp
+    ros_c(10) = 0.1170890893206160e+02_dp
+    ros_c(11) = 0.8083246795921522e+01_dp
+    ros_c(12) =- 0.7981132988064893e+01_dp
+    ros_c(13) =- 0.3152159432874371e+02_dp
+    ros_c(14) = 0.1631930543123136e+02_dp
+    ros_c(15) =- 0.6058818238834054e+01_dp
+
+!~~~> m_i = coefficients for new step solution
+    ros_m(1) = ros_a(7)
+    ros_m(2) = ros_a(8)
+    ros_m(3) = ros_a(9)
+    ros_m(4) = ros_a(10)
+    ros_m(5) = 1.0_dp
+    ros_m(6) = 1.0_dp
+
+!~~~> e_i  = coefficients for error estimator
+    ros_e(1) = 0.0_dp
+    ros_e(2) = 0.0_dp
+    ros_e(3) = 0.0_dp
+    ros_e(4) = 0.0_dp
+    ros_e(5) = 0.0_dp
+    ros_e(6) = 1.0_dp
+
+!~~~> does the stage i require a new FUNCTION evaluation (ros_newf(i) =true)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i) =FALSE)
+    ros_newf(1) = .true.
+    ros_newf(2) = .true.
+    ros_newf(3) = .true.
+    ros_newf(4) = .true.
+    ros_newf(5) = .true.
+    ros_newf(6) = .true.
+
+!~~~> ros_elo  = estimator of local order -  the minimum between the
+!        main and the embedded scheme orders plus 1
+    ros_elo = 4.0_dp
+
+  END SUBROUTINE rodas4
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE rang3
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! STIFFLY-STABLE W METHOD OF ORDER 3,WITH 4 STAGES
+!
+! J. RANG and L. ANGERMANN
+! NEW ROSENBROCK W-METHODS OF ORDER 3
+! FOR PARTIAL DIFFERENTIAL ALGEBRAIC
+!        EQUATIONS OF INDEX 1                                             
+! BIT Numerical Mathematics (2005) 45: 761-787
+!  DOI: 10.1007/s10543-005-0035-y
+! Table 4.1-4.2
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+    rosmethod = rg3
+!~~~> name of the method
+    ros_Name = 'RANG-3'
+!~~~> number of stages
+    ros_s = 4
+
+    ros_a(1) = 5.09052051067020d+00;
+    ros_a(2) = 5.09052051067020d+00;
+    ros_a(3) = 0.0d0;
+    ros_a(4) = 4.97628111010787d+00;
+    ros_a(5) = 2.77268164715849d-02;
+    ros_a(6) = 2.29428036027904d-01;
+
+    ros_c(1) = - 1.16790812312283d+01;
+    ros_c(2) = - 1.64057326467367d+01;
+    ros_c(3) = - 2.77268164715850d-01;
+    ros_c(4) = - 8.38103960500476d+00;
+    ros_c(5) = - 8.48328409199343d-01;
+    ros_c(6) =  2.87009860433106d-01;
+
+    ros_m(1) =  5.22582761233094d+00;
+    ros_m(2) = - 5.56971148154165d-01;
+    ros_m(3) =  3.57979469353645d-01;
+    ros_m(4) =  1.72337398521064d+00;
+
+    ros_e(1) = - 5.16845212784040d+00;
+    ros_e(2) = - 1.26351942603842d+00;
+    ros_e(3) = - 1.11022302462516d-16;
+    ros_e(4) =  2.22044604925031d-16;
+
+    ros_alpha(1) = 0.0d00;
+    ros_alpha(2) = 2.21878746765329d+00;
+    ros_alpha(3) = 2.21878746765329d+00;
+    ros_alpha(4) = 1.55392337535788d+00;
+
+    ros_gamma(1) =  4.35866521508459d-01;
+    ros_gamma(2) = - 1.78292094614483d+00;
+    ros_gamma(3) = - 2.46541900496934d+00;
+    ros_gamma(4) = - 8.05529997906370d-01;
+
+
+!~~~> does the stage i require a new FUNCTION evaluation (ros_newf(i) =true)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i) =FALSE)
+    ros_newf(1) = .true.
+    ros_newf(2) = .true.
+    ros_newf(3) = .true.
+    ros_newf(4) = .true.
+
+!~~~> ros_elo  = estimator of local order -  the minimum between the
+!        main and the embedded scheme orders plus 1
+    ros_elo = 3.0_dp
+
+  END SUBROUTINE rang3
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!   End of the set of internal Rosenbrock subroutines
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+END SUBROUTINE rosenbrock
+ 
+SUBROUTINE funtemplate( t,y,ydot)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!  Template for the ODE function call.
+!  Updates the rate coefficients (and possibly the fixed species) at each call
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> input variables
+   REAL(kind=dp):: t,y(nvar)
+!~~~> output variables
+   REAL(kind=dp):: ydot(nvar)
+!~~~> local variables
+   REAL(kind=dp):: told
+
+   told = time
+   time = t
+   CALL fun( y,fix,rconst,ydot)
+   time = told
+
+END SUBROUTINE funtemplate
+ 
+SUBROUTINE jactemplate( t,y,jcb)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!  Template for the ODE Jacobian call.
+!  Updates the rate coefficients (and possibly the fixed species) at each call
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> input variables
+    REAL(kind=dp):: t,y(nvar)
+!~~~> output variables
+#ifdef full_algebra    
+    REAL(kind=dp):: jv(lu_nonzero),jcb(nvar,nvar)
+#else
+    REAL(kind=dp):: jcb(lu_nonzero)
+#endif   
+!~~~> local variables
+    REAL(kind=dp):: told
+#ifdef full_algebra    
+    INTEGER :: i,j
+#endif   
+
+    told = time
+    time = t
+#ifdef full_algebra    
+    CALL jac_sp(y,fix,rconst,jv)
+    DO j=1,nvar
+      DO i=1,nvar
+         jcb(i,j) = 0.0_dp
+      ENDDO
+    ENDDO
+    DO i=1,lu_nonzero
+       jcb(lu_irow(i),lu_icol(i)) = jv(i)
+    ENDDO
+#else
+    CALL jac_sp( y,fix,rconst,jcb)
+#endif   
+    time = told
+
+END SUBROUTINE jactemplate
+ 
+SUBROUTINE chem_gasphase_integrate (time_step_len,conc,tempk,photo,ierrf,xnacc,xnrej,istatus,l_debug,pe) 
+                                                                    
+  IMPLICIT NONE                                                     
+                                                                    
+  REAL(dp), INTENT(IN)                    :: time_step_len           
+  REAL(dp), DIMENSION(:,:), INTENT(INOUT) :: conc                    
+  REAL(dp), DIMENSION(:,:), INTENT(INOUT) :: photo                   
+  REAL(dp), DIMENSION(:), INTENT(IN)      :: tempk                   
+  INTEGER, INTENT(OUT), OPTIONAL          :: ierrf(:)                
+  INTEGER, INTENT(OUT), OPTIONAL          :: xnacc(:)                
+  INTEGER, INTENT(OUT), OPTIONAL          :: xnrej(:)                
+  INTEGER, INTENT(INOUT), OPTIONAL        :: istatus(:)              
+  INTEGER, INTENT(IN), OPTIONAL           :: pe                      
+  LOGICAL, INTENT(IN), OPTIONAL           :: l_debug                 
+                                                                    
+  INTEGER                                 :: k   ! loop variable     
+  REAL(dp)                                :: dt                      
+  INTEGER, DIMENSION(20)                  :: istatus_u               
+  INTEGER                                 :: ierr_u                  
+                                                                    
+                                                                    
+  if (present (istatus)) istatus = 0                              
+                                                                    
+  DO k=1,vl_glo,vl_dim                                              
+    is = k                                                          
+    ie = min(k+vl_dim-1,vl_glo)                                     
+    vl = ie-is+1                                                    
+                                                                    
+    c(:) = conc(is,:)                                             
+                                                                    
+    temp = tempk(is)                                              
+                                                                    
+    phot(:) = photo(is,:)                                             
+                                                                    
+    CALL update_rconst                                              
+                                                                    
+    dt = time_step_len                                              
+                                                                    
+    ! integrate from t=0 to t=dt                                    
+    CALL integrate(0._dp, dt,icntrl,rcntrl,istatus_u = istatus_u,ierr_u=ierr_u)
+                                                                    
+                                                                    
+    IF (PRESENT(l_debug) .AND. PRESENT(pe)) THEN                       
+       IF (l_debug) CALL error_output(conc(is,:),ierr_u,pe)           
+    ENDIF                                                              
+    conc(is,:) = c(:)                                                  
+                                                                    
+    ! Return Diagnostic Information                                 
+                                                                    
+    if(PRESENT(ierrf))    ierrf(is) = ierr_u                      
+    if(PRESENT(xnacc))    xnacc(is) = istatus_u(4)                
+    if(PRESENT(xnrej))    xnrej(is) = istatus_u(5)                
+                                                                    
+    if (PRESENT (istatus)) then                                   
+      istatus(1:8) = istatus(1:8) + istatus_u(1:8)                 
+    ENDIF                                                          
+                                                                    
+  END DO                                                            
+ 
+                                                                    
+! Deallocate input arrays                                           
+                                                                    
+  if (ALLOCATED(temp))   DEALLOCATE(temp)   
+                                                                    
+  data_loaded = .false.                                             
+                                                                    
+  RETURN                                                            
+END SUBROUTINE chem_gasphase_integrate                                        
+ 
+  SUBROUTINE fill_temp(status,array) 
+ 
+    INTEGER, INTENT(OUT)               :: status 
+    REAL(dp), INTENT(IN), DIMENSION(:) :: array 
+ 
+    status = 0
+    IF (.not. ALLOCATED(temp)) & 
+       ALLOCATE(temp(size(array))) 
+ 
+    IF (data_loaded .AND. (vl_glo /= size(array,1))) THEN 
+       status = 1 
+       RETURN 
+    END IF 
+ 
+    vl_glo = size(array,1) 
+    temp = array 
+    data_loaded = .TRUE. 
+ 
+    RETURN
+ 
+  END   SUBROUTINE fill_temp
+#endif
+END MODULE chem_gasphase_mod
+ 
Index: palm/trunk/SOURCE/chem_modules.f90
===================================================================
--- palm/trunk/SOURCE/chem_modules.f90	(revision 2696)
+++ palm/trunk/SOURCE/chem_modules.f90	(revision 2696)
@@ -0,0 +1,132 @@
+!> @file chem_modules.f90
+!------------------------------------------------------------------------------!
+! This file is part of the PALM model system.
+!
+! PALM is free software: you can redistribute it and/or modify it under the
+! terms of the GNU General Public License as published by the Free Software
+! Foundation, either version 3 of the License, or (at your option) any later
+! version.
+!
+! PALM is distributed in the hope that it will be useful, but WITHOUT ANY
+! WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+! A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+!
+! You should have received a copy of the GNU General Public License along with
+! PALM. If not, see <http://www.gnu.org/licenses/>.
+!
+! Copyright 1997-2017 Leibniz Universitaet Hannover
+! Copyright 2017-2017 Karlsruhe Institute of Technology
+! Copyright 2017-2017 Freie Universitaet Berlin
+!------------------------------------------------------------------------------!
+!
+! Current revisions:
+! -----------------
+! 
+! 
+! Former revisions:
+! -----------------
+! $Id$
+! Initial revision
+!
+! 
+!
+!
+! Authors:
+! --------
+! @author Farah Kanani-Suehring
+! @author Basit Khan
+!
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Definition of global palm-4u chemistry variables
+!> (Module written to define global palm-4u chemistry variables. basit 16Nov2017)
+!------------------------------------------------------------------------------!
+!
+ MODULE chem_modules
+#if defined( __chem )  
+    USE kinds 
+    USE chem_gasphase_mod,                                                     &   
+        ONLY: nspec, nvar, spc_names
+
+
+    IMPLICIT NONE
+
+    PUBLIC nspec
+    PUBLIC nvar
+    PUBLIC spc_names
+
+    LOGICAL ::  constant_top_csflux(99)            = .TRUE.                       !< chem spcs at the top  orig .TRUE.
+    LOGICAL ::  constant_csflux(99)                = .TRUE.                       !< chem spcs at namelist parameter   orig TRUE
+
+
+    INTEGER(iwp) :: cs_vertical_gradient_level_ind(99,10) = -9999                 !< grid index values of cs_vertical_gradient_level_ind(s)
+    REAL(wp),     DIMENSION(:),   ALLOCATABLE :: bc_cs_t_val
+    INTEGER(iwp)                              :: ibc_cs_b                         !< integer flag for bc_cs_b
+    INTEGER(iwp)                              :: ibc_cs_t                         !< integer flag for bc_cs_t
+
+    REAL(wp),      DIMENSION(:),  ALLOCATABLE ::  css                             !< scaling parameter for chem spcs
+
+!-- Namelist parameters for creating initial chemistry profiles
+    CHARACTER (LEN=20)               :: bc_cs_b    = 'dirichlet'                  !< namelist parameter
+    CHARACTER (LEN=20)               :: bc_cs_t    = 'initial_gradient'           !< namelist parameter
+    REAL(wp) :: wall_csflux (99,0:5)               = 0.0_wp                       !< namelist parameter
+    REAL(wp) :: cs_vertical_gradient (99,10)       = 0.0_wp                       !< namelist parameter
+    REAL(wp) :: cs_vertical_gradient_level (99,10) = -999999.9_wp                 !< namelist parameter
+    REAL(wp) :: top_csflux ( 99 )                  = 0.0_wp                       !< namelist parameter 
+    REAL(wp) :: cs_surface_initial_change(99)      = 0.0_wp                       !< namelist parameter
+    REAL(wp) :: surface_csflux(99 )                = 0.0_wp                       !< namelist parameter: fluxes where 'surface_csflux_name' is in the namelist
+!   RFo: I do not know whether it makes sense to have 'constant_csflux=.TRUE. for only these species where 
+!        no flux is given in the namelist. Let's choos surface_csflux=0.0 (and thus 'constant_csflux'=.TRUE.) as default
+!       To obtain  constant_csflux=.FALSE., set surface_csflux = 9999999.9 in the namelist
+!   @todo: need to think a bit more about constant_csflux for chemistry. 
+
+    LOGICAL :: call_chem_at_all_substeps           = .FALSE.                      !< namelist parameter 
+    LOGICAL :: chem_debug0                         = .FALSE.                      !< namelist parameter flag for minimum print output
+    LOGICAL :: chem_debug1                         = .FALSE.                      !< namelist parameter flag for print output
+    LOGICAL :: chem_debug2                         = .FALSE.                      !< namelist parameter flag for further print output
+    LOGICAL :: chem_gasphase_on                    = .TRUE.                       !< namelist parameter 
+
+    CHARACTER (LEN=11), DIMENSION(99)         :: cs_name = 'novalue'              !< Namelist parameter: chem spcs names 
+    CHARACTER (LEN=11), DIMENSION(99)         :: cs_profile_name = 'novalue'      !< Namelist parameter: Names of the
+    CHARACTER (LEN=11), DIMENSION(99)         :: surface_csflux_name = 'novalue'  !< Namelist parameter: chem species surface fluxes names
+                                                                                  !< active chem spcs, default is 'novalue')  ????
+    REAL(wp), DIMENSION(99)                   :: cs_surface = 0.0_wp              !< Namelist parameter: Surface conc of chem spcs'
+    REAL(wp), DIMENSION(99,100)               :: cs_heights = 9999999.9_wp        !< Namelist parameter: Height lvls(m) for cs_profiles
+    REAL(wp), DIMENSION(99,100)               :: cs_profile = 9999999.9_wp        !< Namelist parameter: Chem conc for each spcs defined
+
+#if defined( __nopointer )
+    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET   :: cs                       !< chem spcs
+    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET   :: cs_p                     !< prognostic value of chem spc
+    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET   :: tcs_m                    !< weighted tendency of s for previous sub-timestep (Runge-Kutta)
+
+#else                                                               
+! use pointers cs, cs_p and tcs_m to point arrays cs_1, cs_2, and cs_3
+    REAL(wp), DIMENSION(:,:,:,:), ALLOCATABLE, TARGET :: cs_1                     !< pointer for swapping of timelevels for respective quantity
+    REAL(wp), DIMENSION(:,:,:,:), ALLOCATABLE, TARGET :: cs_2                     !< pointer for swapping of timelevels for respective quantity
+    REAL(wp), DIMENSION(:,:,:,:), ALLOCATABLE, TARGET :: cs_3                     !< pointer for swapping of timelevels for respective quantity
+
+    REAL(wp), DIMENSION(:,:,:), POINTER               :: cs                       !< pointer: sgs chem spcs)
+    REAL(wp), DIMENSION(:,:,:), POINTER               :: cs_p                     !< pointer: prognostic value of sgs chem spcs 
+    REAL(wp), DIMENSION(:,:,:), POINTER               :: tcs_m                    !< pointer:
+
+#endif                                                                            
+                                                                                  !< by cs_name for each height lvls defined by cs_heights
+!
+!-- Namelist parameters for chem_emissions
+    INTEGER(iwp) ::  main_street_id = 0
+    INTEGER(iwp) ::  max_street_id = 0
+    INTEGER(iwp) ::  side_street_id = 0
+!
+!-- Constant emission factors
+    REAL(wp) ::  emiss_factor_main = 0.0_wp
+    REAL(wp) ::  emiss_factor_side = 0.0_wp
+    
+!-- Emission factors with daily cycle
+!     REAL(wp), DIMENSION(1:24) ::  emiss_factor_main = 0.0_wp
+!     REAL(wp), DIMENSION(1:24) ::  emiss_factor_side = 0.0_wp
+
+    SAVE
+#endif
+ END MODULE chem_modules
+
Index: palm/trunk/SOURCE/chem_photolysis_mod.f90
===================================================================
--- palm/trunk/SOURCE/chem_photolysis_mod.f90	(revision 2696)
+++ palm/trunk/SOURCE/chem_photolysis_mod.f90	(revision 2696)
@@ -0,0 +1,332 @@
+!> @file chem_photolysis_mod.f90
+!------------------------------------------------------------------------------!
+! This file is part of the PALM model system.
+!
+! PALM is free software: you can redistribute it and/or modify it under the
+! terms of the GNU General Public License as published by the Free Software
+! Foundation, either version 3 of the License, or (at your option) any later
+! version.
+!
+! PALM is distributed in the hope that it will be useful, but WITHOUT ANY
+! WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+! A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+!
+! You should have received a copy of the GNU General Public License along with
+! PALM. If not, see <http://www.gnu.org/licenses/>.
+!
+! Copyright 1997-2017 Leibniz Universitaet Hannover
+! Copyright 2017-2017 Karlsruhe Institute of Technology
+!------------------------------------------------------------------------------!
+!
+! Current revisions:
+! -----------------
+! 
+! 
+! Former revisions:
+! -----------------
+! $Id$
+! Initial revision
+!
+! 
+!
+!
+! Authors:
+! --------
+! @author Renate Forkel
+!
+!
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> photolysis models and interfaces (Adapted from photolysis_model_mod.f90)
+!> @todo Alles!
+!------------------------------------------------------------------------------!
+ MODULE chem_photolysis_mod
+#if defined( __chem )
+    USE arrays_3d,                                                             &
+        ONLY:  dzw, hyp, pt, q, ql, zu, zw
+
+    USE constants,                                                             &
+        ONLY:  pi
+
+    USE control_parameters,                                                    &
+        ONLY:  time_since_reference_point
+
+    USE pegrid,             ONLY: myid, threads_per_task
+
+    USE indices,                                                               &
+        ONLY:  nxl, nxlg, nxr, nxrg, nyn, nyng, nys, nysg, nzb, nzt
+
+    USE radiation_model_mod,                                                   &
+        ONLY:  calc_zenith, zenith
+               !day, day_init, lat, lambda, lon,                   &
+               !time_utc, time_utc_init,    !FKa: This is now handled by date_and_time_mod
+
+    USE control_parameters,                                                    &
+        ONLY:  initializing_actions           
+!       ONLY:  cloud_droplets, cloud_physics, g, initializing_actions,         &
+!              large_scale_forcing, lsf_surf, phi, pt_surface, rho_surface,    &
+!              surface_pressure, time_since_reference_point
+
+    USE chem_gasphase_mod,                                                     &
+        ONLY: nphot, phot_names, phot 
+
+    USE chemistry_model_mod,                                                   &
+        ONLY: phot_frequen, photolysis_scheme
+
+    USE chem_modules,                                                          &
+        ONLY: chem_debug2
+
+!   REAL(wp), DIMENSION(0:0) ::  zenith,         & !< cosine of solar zenith angle
+!                                sun_dir_lat,    & !< solar directional vector in latitudes
+!                                sun_dir_lon       !< solar directional vector in longitudes
+    USE kinds
+
+#if defined ( __netcdf )
+    USE NETCDF
+#endif
+
+
+    IMPLICIT NONE
+
+
+!   LOGICAL ::  unscheduled_photolysis_calls = .TRUE., & !< flag parameter indicating whether additional calls of the photolysis code are allowed
+!               constant_albedo = .FALSE.,           & !< flag parameter indicating whether the albedo may change depending on zenith
+!               force_photolysis_call = .FALSE.,     & !< flag parameter for unscheduled photolysis calls
+!               photolysis = .FALSE.,                & !< flag parameter indicating whether the photolysis model is used
+!               sun_up    = .TRUE.,                  & !< flag parameter indicating whether the sun is up or down
+!               photolysis = .TRUE.,                 & !< flag parameter indicing whether photolysis shall be calculated
+!               sun_direction = .FALSE.                !< flag parameter indicing whether solar direction shall be calculated
+
+!-- Parameters for constant photolysis frequencies
+     INTEGER,PARAMETER :: nconst  = 15               !< available predefined photolysis prequencies for constant 
+
+! Names for predefined fixed photolysis frequencies at zenith angle 0
+     CHARACTER(LEN=10), PARAMETER, DIMENSION(nconst) :: names_c =  (/                    &
+                     'J_O31D    ','J_O33P    ','J_NO2     ','J_HNO3    ','J_RCHO    ', &
+                     'J         ','J         ','J         ','J         ','J         ', &
+                     'J         ','J         ','J         ','J         ','J         ' /)
+! Photolysis frequency at zenith angle 0 in 1/s
+     REAL(wp), PARAMETER, DIMENSION(nconst) :: phot0 =  (/                             &
+                     2.489E-05_wp,3.556E-04_wp, 8.89E-03_wp,5.334E-07_wp,3.734E-05_wp, &
+                     0.0000E00_wp,0.0000E00_wp,0.0000E00_wp,0.0000E00_wp,0.0000E00_wp, &
+                     0.0000E00_wp,0.0000E00_wp,0.0000E00_wp,0.0000E00_wp,0.0000E00_wp /)
+
+
+!-- Parameters for simple photolysis frequencies
+     INTEGER,PARAMETER :: nsimple = 15               !< available predefined photolysis prequencies for simpel parameterisation
+! Names for simple photolysis frequencies parameterisation (
+     CHARACTER(LEN=10), PARAMETER, DIMENSION(nsimple) :: names_s =  (/                 &
+                     'J_O31D    ','J_O33P    ','J_H2O2    ','J_NO2     ','J_NO3_A   ', &
+                     'J_NO3_B   ','J_HONO    ','J_HNO3    ','J_HCHO_A  ','J_HCHO_B  ', &
+                     'J_CH3CHO  ','J         ','J         ','J         ','J_RCHO    ' /)
+
+!-- Parameters for simeple photolysis frequencies from MCM (http://mcm.leeds.ac.uk/MCM)
+!-- Saunders et al., 2003, Atmos. Chem. Phys., 3, 161-180
+     REAL(wp), PARAMETER, DIMENSION(nconst) :: par_l =  (/                             &
+                     6.073E-05_wp,4.775E-04_wp,1.041E-05_wp,1.165E-02_wp,2.485E-02_wp, &
+                     1.747E-01_wp,2.644E-03_wp,9.312E-07_wp,4.642E-05_wp,6.853E-05_wp, &
+                     7.344E-06_wp,0.0000E00_wp,0.0000E00_wp,0.000E00_wp, 6.853E-05_wp /)
+
+     REAL(wp), PARAMETER, DIMENSION(nconst) :: par_m =  (/                             &
+                         1.743_wp,    0.298_wp,    0.723_wp,    0.244_wp,    0.168_wp, &
+                         0.155_wp,    0.261_wp,    1.230_wp,    0.762_wp,    0.477_wp, &
+                         1.202_wp,    0.000_wp,    0.000_wp,    0.000_wp,    0.477_wp /)
+
+     REAL(wp), PARAMETER, DIMENSION(nconst) :: par_n =  (/                             &
+                         0.474_wp,    0.080_wp,    0.279_wp,    0.267_wp,    0.108_wp, &
+                         0.125_wp,    0.288_wp,    0.307_wp,    0.353_wp,    0.323_wp, &
+                         0.417_wp,    0.000_wp,    0.000_wp,    0.000_wp,    0.323_wp /)
+
+
+    REAL(wp) :: time_photolysis = 0.0_wp,         & !< time since last call of photolysis code
+                dt_photolysis = 0.0_wp,           & !< hotolysis model timestep
+                skip_time_do_photolysis = 0.0_wp    !< Radiation model is not called before this time
+
+    REAL(wp)     :: cosz = 0.7_wp                   !< cosine of Zenith angle (45 deg, if not specified otherwise)
+
+!
+!-- Variables and parameters used in Fast-J only
+! ....
+
+!   INTERFACE photolysis_check_parameters
+!      MODULE PROCEDURE photolysis_check_parameters
+!   END INTERFACE photolysis_check_parameters
+  
+    INTERFACE photolysis_constant
+       MODULE PROCEDURE photolysis_constant
+    END INTERFACE photolysis_constant
+ 
+    INTERFACE photolysis_simple
+       MODULE PROCEDURE photolysis_simple
+    END INTERFACE photolysis_simple
+!
+!   INTERFACE photolysis_fastj
+!      MODULE PROCEDURE photolysis_fastj
+!   END INTERFACE photolysis_fastj
+!
+    INTERFACE photolysis_control
+       MODULE PROCEDURE photolysis_control
+    END INTERFACE photolysis_control
+
+!   INTERFACE photolysis_header
+!      MODULE PROCEDURE photolysis_header
+!   END INTERFACE photolysis_header 
+! 
+    INTERFACE photolysis_init
+       MODULE PROCEDURE photolysis_init
+    END INTERFACE photolysis_init
+
+!   INTERFACE photolysis_parin
+!      MODULE PROCEDURE photolysis_parin
+!   END INTERFACE photolysis_parin
+    
+!   INTERFACE photolysis_read_restart_data
+!      MODULE PROCEDURE photolysis_read_restart_data
+!   END INTERFACE photolysis_read_restart_data
+
+!   INTERFACE photolysis_last_actions
+!      MODULE PROCEDURE photolysis_last_actions
+!   END INTERFACE photolysis_last_actions
+
+    SAVE
+
+    PRIVATE
+
+!
+!-- Public functions / NEEDS SORTING
+!   PUBLIC photolysis_init
+!          photolysis_check_parameters, photolysis_control,                      &
+!          photolysis_header, photolysis_init, photolysis_parin !,                 &
+!          photolysis_define_netcdf_grid, photolysis_last_actions,               &
+!          photolysis_read_restart_data, photolysis_data_output_mask
+
+   PUBLIC  photolysis_control, photolysis_init
+
+   PUBLIC  photolysis_scheme
+!
+
+ CONTAINS
+
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> This subroutine controls the calls of the photolysis schemes
+!------------------------------------------------------------------------------!
+    SUBROUTINE photolysis_control
+ 
+ 
+       IMPLICIT NONE
+
+
+       SELECT CASE ( TRIM( photolysis_scheme ) )
+
+          CASE ( 'constant' )
+             CALL photolysis_constant
+          
+          CASE ( 'simple' )
+             CALL photolysis_simple
+       
+!         CASE ( 'fastj' )
+!            CALL photolysis_fastj
+
+          CASE DEFAULT
+
+       END SELECT
+
+
+    END SUBROUTINE photolysis_control
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Initialization of the photolysis model
+!------------------------------------------------------------------------------!
+    SUBROUTINE photolysis_init    !### not yes used. Call should be placed near call of chem_init
+    
+       IMPLICIT NONE
+
+!-- Just in case we need anything
+
+       RETURN
+
+    END SUBROUTINE photolysis_init
+
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> This scheme keeps the prescribed net radiation constant during the run
+!> Default zenith angle is 45 deg
+!------------------------------------------------------------------------------!
+    SUBROUTINE photolysis_constant
+
+
+       IMPLICIT NONE
+
+!      INTEGER(iwp) :: i, j, k   !< loop indices
+       INTEGER(iwp) :: iphot,iav !< loop indix for photolysis reaction
+!      REAL(wp)     :: exn,   &  !< Exner functions at surface
+!                      pt1       !< potential temperature at first grid level
+
+       DO iphot = 1,nphot
+          DO iav = 1,nconst
+             IF ( TRIM( names_c(iav) ) == TRIM( phot_names(iphot) ) ) then
+!--    Prescribe fixed photolysis frequencies  [1/s]
+!             IF(myid == 0 .AND. chem_debug2 )  WRITE(06,*) iphot, iav,phot_names(iphot),names_c(iav)
+
+                      phot_frequen(iphot)%freq(nzb+1:nzt,:,:) =    &
+                            phot0(iav) * cosz
+
+!              IF(myid == 0 .AND. chem_debug2 )  WRITE(06,*) phot_frequen(iphot)%freq(1,5,5)
+            ENDIF
+          ENDDO
+       ENDDO
+
+    END SUBROUTINE photolysis_constant
+
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> This scheme applies a simple parameterisation for clear sky photolysis frequencies 
+!> from the Master Chemical Mechanism, MCM v3.2 (http://mcm.leeds.ac.uk/MCM).
+!> Reference: Saunders et al., Atmos. Chem. Phys., 3, 161, 2003
+!------------------------------------------------------------------------------!
+    SUBROUTINE photolysis_simple
+
+       IMPLICIT NONE
+
+!      INTEGER(iwp) :: i, j, k   !< loop indices
+       INTEGER(iwp) :: iphot,iav !< loop indix for photolysis reaction
+!      REAL(wp)     :: exn,   &  !< Exner functions at surface
+!                      pt1       !< potential temperature at first grid level
+       REAL(wp)     :: coszi     !< 1./cosine of zenith angle
+
+    DO iphot = 1,nphot
+       phot_frequen(iphot)%freq = 0.0_wp
+    ENDDO
+
+    CALL calc_zenith
+
+    IF ( zenith(0) > 0.0_wp ) THEN
+       coszi = 1. / zenith(0)
+
+       DO iphot = 1,nphot
+          DO iav = 1,nsimple
+             IF ( TRIM( names_s(iav) ) == TRIM( phot_names(iphot) ) ) then
+!              if(myid == 0 .AND. chem_debug2 )  WRITE(06,*) 'simple', iphot, iav,phot_names(iphot),names_s(iav)
+
+                      phot_frequen(iphot)%freq(nzb+1:nzt,:,:) =    &
+                            par_l(iav) * zenith(0)**par_m(iav) *  EXP( -par_n(iav) * coszi ) 
+
+!              if(myid == 0 .AND. chem_debug2 )  WRITE(06,*) 'simple', phot_frequen(iphot)%freq(1,5,5)
+            ENDIF
+          ENDDO
+       ENDDO
+    ENDIF
+
+    END SUBROUTINE photolysis_simple
+#endif
+ END MODULE chem_photolysis_mod
Index: palm/trunk/SOURCE/chemistry_model_mod.f90
===================================================================
--- palm/trunk/SOURCE/chemistry_model_mod.f90	(revision 2696)
+++ palm/trunk/SOURCE/chemistry_model_mod.f90	(revision 2696)
@@ -0,0 +1,1800 @@
+!> @file chemistry_model_mod.f90
+!------------------------------------------------------------------------------!
+! This file is part of the PALM model system.
+!
+! PALM is free software: you can redistribute it and/or modify it under the
+! terms of the GNU General Public License as published by the Free Software
+! Foundation, either version 3 of the License, or (at your option) any later
+! version.
+!
+! PALM is distributed in the hope that it will be useful, but WITHOUT ANY
+! WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+! A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+!
+! You should have received a copy of the GNU General Public License along with
+! PALM. If not, see <http://www.gnu.org/licenses/>.
+!
+! Copyright 1997-2017 Leibniz Universitaet Hannover
+! Copyright 2017-2017 Karlsruhe Institute of Technology
+! Copyright 2017-2017 Freie Universitaet Berlin
+!------------------------------------------------------------------------------!
+!
+! Current revisions:
+! -----------------
+! 
+! 
+! Former revisions:
+! -----------------
+! $Id$
+! Initial revision
+!
+! 
+!
+!
+! Authors:
+! --------
+! @author Renate Forkel
+! @author Farah Kanani-Suehring
+! @author Klaus Ketelsen
+! @author Basit Khan
+!
+!
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Chemistry model for PALM-4U
+!> @todo Update/clean-up todo list! (FK)
+!> @todo Chemistry for prognostic_equations_vector! (FK)
+!> @todo Set proper fill values (/= 0) for chem output arrays! (FK)
+!> @todo Add routine chem_check_parameters, add checks for inconsistent or
+!>       unallowed parameter settings (e.g. "only cache optimized version
+!>       available"). CALL of chem_check_parameters from check_parameters. (FK)
+!> @todo Make routine chem_header available, CALL from header.f90
+!>       (see e.g. how it is done in routine lsm_header in 
+!>        land_surface_model_mod.f90). chem_header should include all setup
+!>        info about chemistry parameter settings. (FK)
+!> @todo Implement turbulent inflow of chem spcs in inflow_turbulence.
+!> @todo Separate boundary conditions for each chem spcs to be implemented
+!> @todo Currently only total concentration are calculated. Resolved, parameterized
+!>       and chemistry fluxes although partially and some completely coded but
+!>       are not operational/activated in this version. bK.
+!> @todo slight differences in passive scalar and chem spcs when chem reactions
+!>       turned off. Need to be fixed. bK
+!> @todo introduce nesting for chem spcs. bK
+!> @todo subroutine set_const_initial_values to be taken out from chemistry_model_mod !bK.
+!> @todo chemistry error messages
+!> @todo Format this module according to PALM coding standard (see e.g. module
+!>       template under http://palm.muk.uni-hannover.de/mosaik/downloads/8 or
+!>       D3_coding_standard.pdf under https://palm.muk.uni-hannover.de/trac/downloads/16)
+! 
+!------------------------------------------------------------------------------!
+
+MODULE chemistry_model_mod
+#if defined( __chem )
+   USE kinds,              ONLY: wp, iwp
+   USE indices,            ONLY: nz, nzb,nzt,nysg,nyng,nxlg,nxrg,nys,nyn
+   USE pegrid,             ONLY: myid, threads_per_task
+   USE control_parameters, ONLY: dt_3d, ws_scheme_sca, initializing_actions, message_string, &
+                                 omega, tsc, intermediate_timestep_count,      &
+                                 intermediate_timestep_count_max,              &
+                                 timestep_scheme, use_prescribed_profile_data  
+   USE arrays_3d,          ONLY: hyp, pt, rdf_sc, tend, zu                     
+   USE chem_gasphase_mod,  ONLY: nspec, spc_names, nkppctrl, nmaxfixsteps,     &
+                                 t_steps, fill_temp, chem_gasphase_integrate,  &
+                                 nvar, atol, rtol, nphot, phot_names
+   USE cpulog,             ONLY: cpu_log, log_point
+
+   USE chem_modules
+ 
+
+   IMPLICIT   NONE
+   PRIVATE
+   SAVE
+
+!- Define chemical variables
+
+   TYPE   species_def
+      CHARACTER(LEN=8)                                   :: name
+      CHARACTER(LEN=16)                                  :: unit
+      REAL(kind=wp),POINTER,DIMENSION(:,:,:)             :: conc
+      REAL(kind=wp),POINTER,DIMENSION(:,:,:)             :: conc_av
+      REAL(kind=wp),POINTER,DIMENSION(:,:,:)             :: conc_p
+      REAL(kind=wp),POINTER,DIMENSION(:,:,:)             :: tconc_m
+      REAL(kind=wp),ALLOCATABLE,DIMENSION(:,:)           :: cssws_av           
+      REAL(kind=wp),ALLOCATABLE,DIMENSION(:,:)           :: flux_s_cs
+      REAL(kind=wp),ALLOCATABLE,DIMENSION(:,:)           :: diss_s_cs
+      REAL(kind=wp),ALLOCATABLE,DIMENSION(:,:,:)         :: flux_l_cs
+      REAL(kind=wp),ALLOCATABLE,DIMENSION(:,:,:)         :: diss_l_cs
+      REAL(kind=wp),ALLOCATABLE,DIMENSION(:)             :: conc_pr_init
+   END TYPE species_def
+
+
+   TYPE   photols_def                                                            
+      CHARACTER(LEN=8)                                   :: name
+      CHARACTER(LEN=16)                                  :: unit
+      REAL(kind=wp),POINTER,DIMENSION(:,:,:)             :: freq
+   END TYPE photols_def
+
+
+   PUBLIC  species_def
+   PUBLIC  photols_def
+
+
+   TYPE(species_def),ALLOCATABLE,DIMENSION(:),TARGET, PUBLIC     :: chem_species
+   TYPE(photols_def),ALLOCATABLE,DIMENSION(:),TARGET, PUBLIC     :: phot_frequen  
+
+   REAL(kind=wp),ALLOCATABLE,DIMENSION(:,:,:,:),TARGET   :: spec_conc_1
+   REAL(kind=wp),ALLOCATABLE,DIMENSION(:,:,:,:),TARGET   :: spec_conc_2
+   REAL(kind=wp),ALLOCATABLE,DIMENSION(:,:,:,:),TARGET   :: spec_conc_3
+   REAL(kind=wp),ALLOCATABLE,DIMENSION(:,:,:,:),TARGET   :: spec_conc_av       
+   REAL(kind=wp),ALLOCATABLE,DIMENSION(:,:,:,:),TARGET   :: freq_1
+
+   INTEGER,DIMENSION(nkppctrl)                           :: icntrl                            ! Fine tuning kpp
+   REAL(kind=wp),DIMENSION(nkppctrl)                     :: rcntrl                            ! Fine tuning kpp
+
+   CHARACTER(10), PUBLIC :: photolysis_scheme
+                                         ! 'constant',
+                                         ! 'simple' (Simple parameterisation from MCM, Saunders et al., 2003, Atmos. Chem. Phys., 3, 161-180
+                                         ! 'fastj'  (Wild et al., 2000, J. Atmos. Chem., 37, 245-282) STILL NOT IMPLEMENTED
+
+   PUBLIC nspec
+   PUBLIC nvar       
+   PUBLIC spc_names  
+
+!- Interface section
+  INTERFACE chem_boundary_conds
+      MODULE PROCEDURE chem_boundary_conds
+  END INTERFACE chem_boundary_conds
+
+   INTERFACE chem_init
+      MODULE PROCEDURE chem_init
+   END INTERFACE chem_init
+
+   INTERFACE chem_init_profiles
+      MODULE PROCEDURE chem_init_profiles
+   END INTERFACE chem_init_profiles
+
+   INTERFACE chem_parin
+      MODULE PROCEDURE chem_parin
+   END INTERFACE chem_parin
+
+   INTERFACE chem_integrate
+      MODULE PROCEDURE chem_integrate_ij
+   END INTERFACE chem_integrate
+
+   INTERFACE chem_swap_timelevel
+      MODULE PROCEDURE chem_swap_timelevel
+   END INTERFACE chem_swap_timelevel
+
+   INTERFACE chem_define_netcdf_grid
+      MODULE PROCEDURE chem_define_netcdf_grid
+   END INTERFACE chem_define_netcdf_grid
+
+   INTERFACE chem_data_output_3d
+      MODULE PROCEDURE chem_data_output_3d
+   END INTERFACE chem_data_output_3d
+
+   INTERFACE chem_check_data_output
+      MODULE PROCEDURE chem_check_data_output
+   END INTERFACE chem_check_data_output
+
+   INTERFACE chem_check_data_output_pr
+      MODULE PROCEDURE chem_check_data_output_pr
+   END INTERFACE chem_check_data_output_pr
+
+   INTERFACE chem_3d_data_averaging
+      MODULE PROCEDURE chem_3d_data_averaging 
+   END INTERFACE chem_3d_data_averaging
+
+   INTERFACE chem_last_actions
+      MODULE PROCEDURE chem_last_actions 
+   END INTERFACE chem_last_actions
+
+   INTERFACE chem_read_restart_data
+      MODULE PROCEDURE chem_read_restart_data
+   END INTERFACE chem_read_restart_data
+
+   INTERFACE chem_tendency
+      MODULE PROCEDURE chem_tendency
+   END INTERFACE chem_tendency
+
+   INTERFACE chem_header
+      MODULE PROCEDURE chem_header
+   END INTERFACE chem_header
+
+   INTERFACE chem_emissions
+      MODULE PROCEDURE chem_emissions
+   END INTERFACE chem_emissions
+
+!    INTERFACE chem_write_var_list
+!       MODULE PROCEDURE chem_write_var_list
+!    END INTERFACE chem_write_var_list
+! 
+!    INTERFACE chem_read_var_list
+!       MODULE PROCEDURE chem_read_var_list
+!    END INTERFACE chem_read_var_list
+! 
+!    INTERFACE chem_skip_var_list
+!       MODULE PROCEDURE chem_skip_var_list
+!    END INTERFACE chem_skip_var_list
+
+
+   PUBLIC chem_boundary_conds, chem_check_data_output,                         &
+          chem_check_data_output_pr, chem_data_output_3d,                      &
+          chem_define_netcdf_grid, chem_header, chem_init,                     &
+          chem_init_profiles, chem_integrate, chem_parin,                      &
+          chem_swap_timelevel, chem_last_actions, chem_read_restart_data,      &
+          chem_tendency, chem_3d_data_averaging, chem_emissions!, chem_write_var_list,          &
+          !chem_read_var_list, chem_skip_var_list
+
+
+ CONTAINS
+
+!------------------------------------------------------------------------------!
+!
+! Description:
+! ------------
+!> Subroutine to initialize and set all boundary conditions for chemical species
+!------------------------------------------------------------------------------!
+
+ SUBROUTINE chem_boundary_conds( mode )                                           
+                                                                                  
+    USE control_parameters,                                                    &  
+        ONLY: air_chemistry, outflow_l, outflow_n, outflow_r, outflow_s                 
+    USE indices,                                                               &  
+        ONLY: nxl, nxr,  nxlg, nxrg, nyng, nysg, nzt                              
+                                                                                  
+!    USE prognostic_equations_mod,                                             &
+
+    USE arrays_3d,                                                             &     
+        ONLY: dzu                                                
+    USE surface_mod,                                                           &
+        ONLY: bc_h                                                           
+
+    CHARACTER (len=*), INTENT(IN) :: mode
+    INTEGER(iwp) ::  i                                                            !< grid index x direction.
+    INTEGER(iwp) ::  j                                                            !< grid index y direction.
+    INTEGER(iwp) ::  k                                                            !< grid index z direction.
+    INTEGER(iwp) ::  kb                                                           !< variable to set respective boundary value, depends on facing. 
+    INTEGER(iwp) ::  l                                                            !< running index boundary type, for up- and downward-facing walls.
+    INTEGER(iwp) ::  m                                                            !< running index surface elements.
+    INTEGER(iwp) ::  lsp                                                          !< running index for chem spcs.
+    INTEGER(iwp) ::  lph                                                          !< running index for photolysis frequencies
+
+
+    SELECT CASE ( TRIM( mode ) )        
+       CASE ( 'init' )     
+          DO lsp = 1, nspec            
+            IF ( surface_csflux(lsp) == 9999999.9_wp )  THEN
+                 constant_csflux(lsp) = .FALSE.            
+            ENDIF
+          ENDDO
+
+          IF ( bc_cs_b == 'dirichlet' )    THEN
+             ibc_cs_b = 0 
+          ELSEIF ( bc_cs_b == 'neumann' )  THEN
+             ibc_cs_b = 1 
+          ELSE
+!             message_string = 'unknown boundary condition: bc_cs_b ="' // TRIM( bc_cs_b ) // '"'  ! bK commented
+             CALL message( 'chem_boundary_conds', 'CHEM001', 1, 2, 0, 6, 0 )     !< chemistry_model_mod should have special error numbers --> "CHEM###",
+          ENDIF                                                                  
+!
+!--       Set Integer flags and check for possible erroneous settings for top
+!--       boundary condition. bK added *_cs_* here.
+          IF ( bc_cs_t == 'dirichlet' )             THEN
+             ibc_cs_t = 0 
+          ELSEIF ( bc_cs_t == 'neumann' )           THEN
+             ibc_cs_t = 1
+          ELSEIF ( bc_cs_t == 'initial_gradient' )  THEN
+             ibc_cs_t = 2
+          ELSEIF ( bc_cs_t == 'nested' )            THEN          
+             ibc_cs_t = 3
+          ELSE
+!            message_string = 'unknown boundary condition: bc_c_t ="' // TRIM( bc_cs_t ) // '"'  
+             CALL message( 'check_parameters', 'CHEM002', 1, 2, 0, 6, 0 )
+          ENDIF
+
+      
+       CASE ( 'set_bc_bottomtop' )                   
+!--      Bottom boundary condtions for chemical species      
+          DO lsp = 1, nspec                                                      
+             IF ( ibc_cs_b == 0 ) THEN                   
+                DO l = 0, 1 
+!--             Set index kb: For upward-facing surfaces (l=0), kb=-1, i.e.
+!--             the chem_species(nsp)%conc_p value at the topography top (k-1)
+!--             is set; for downward-facing surfaces (l=1), kb=1, i.e. the 
+!--             value at the topography bottom (k+1) is set. 
+
+                   kb = MERGE( -1, 1, l == 0 )
+                   !$OMP PARALLEL DO PRIVATE( i, j, k )
+                   DO m = 1, bc_h(l)%ns
+                      i = bc_h(l)%i(m)            
+                      j = bc_h(l)%j(m)
+                      k = bc_h(l)%k(m)
+                      chem_species(lsp)%conc_p(k+kb,j,i) = chem_species(lsp)%conc(k+kb,j,i) 
+                   ENDDO                                        
+                ENDDO                                       
+          
+             ELSEIF ( ibc_cs_b == 1 ) THEN
+         ! in boundary_conds there is som extra loop over m here for passive tracer
+                DO l = 0, 1
+                   kb = MERGE( -1, 1, l == 0 )
+                   !$OMP PARALLEL DO PRIVATE( i, j, k )                                           
+                   DO m = 1, bc_h(l)%ns
+                      i = bc_h(l)%i(m)            
+                      j = bc_h(l)%j(m)
+                      k = bc_h(l)%k(m)
+                      chem_species(lsp)%conc_p(k+kb,j,i) = chem_species(lsp)%conc_p(k,j,i)
+
+!< @todo: chem_species(nsp)%conc_p(k+kb,j,i) = chem_species(nsp)%conc(k+kb,j,i),    &
+!<  pls loop over nsp=1, NSPEC.
+!< @todo: We should also think about the possibility to have &
+!< individual boundary conditions for each species? This means, bc_cs_b,       &
+!< bc_cs_t, ibc_cs_b, ibc_cs_t would need to be added to TYPE chem_species(nsp)%,   &
+!< and the loop over nsp would have to be put outside of this IF-clause.
+!< i think its better we keep the same bonundary cond i.e. dirichlet or neumann
+!< for all chem spcs. ... !bK
+
+                   ENDDO
+                ENDDO
+             ENDIF
+          ENDDO    ! end lsp loop  
+
+!--    Top boundary conditions for chemical species - Should this not be done for all species?
+          IF ( ibc_cs_t == 0 )  THEN                    
+             DO lsp = 1, nspec
+                chem_species(lsp)%conc_p(nzt+1,:,:) = chem_species(lsp)%conc(nzt+1,:,:)        
+             ENDDO
+          ELSEIF ( ibc_cs_t == 1 )  THEN
+             DO lsp = 1, nspec
+                chem_species(lsp)%conc_p(nzt+1,:,:) = chem_species(lsp)%conc_p(nzt,:,:)
+             ENDDO
+          ELSEIF ( ibc_cs_t == 2 )  THEN
+             DO lsp = 1, nspec
+                chem_species(lsp)%conc_p(nzt+1,:,:) = chem_species(lsp)%conc_p(nzt,:,:) + bc_cs_t_val(lsp) * dzu(nzt+1)
+             ENDDO
+                                    !@todo: bc_cs_t_val needs to be calculated,    
+                                    !see bc_pt_t_val = ( pt_init(nzt+1) - pt_init(nzt) ) / dzu(nzt+1) 
+                                    !(in time_integration). pt_init would be the counterpart to
+                                    !chem_species(i)%conc_pr_init (see kchem_driver_FKa1408.f90 of my 
+                                    !"Hints: prescribing initial concentration.
+          ENDIF
+!
+       CASE ( 'set_bc_lateral' )                       ! bK commented it
+!--          Lateral boundary conditions for chem species at inflow boundary
+!--          are automatically set when chem_species concentration is
+!--          initialized. The initially set value at the inflow boundary is not
+!--          touched during time integration, hence, this boundary value remains
+!--          at a constant value, which is the concentration that flows into the
+!--          domain.                                                           
+!--          Lateral boundary conditions for chem species at outflow boundary 
+
+          IF ( outflow_s )  THEN
+             DO lsp = 1, nspec
+                chem_species(lsp)%conc_p(:,nys-1,:) = chem_species(lsp)%conc_p(:,nys,:)
+             ENDDO
+          ELSEIF ( outflow_n )  THEN
+             DO lsp = 1, nspec
+                chem_species(lsp)%conc_p(:,nyn+1,:) = chem_species(lsp)%conc_p(:,nyn,:)
+             ENDDO
+          ELSEIF ( outflow_l )  THEN
+             DO lsp = 1, nspec
+                chem_species(lsp)%conc_p(:,:,nxl-1) = chem_species(lsp)%conc_p(:,:,nxl)
+             ENDDO
+          ELSEIF ( outflow_r )  THEN
+             DO lsp = 1, nspec
+                chem_species(lsp)%conc_p(:,:,nxr+1) = chem_species(lsp)%conc_p(:,:,nxr)
+             ENDDO
+          ENDIF
+         
+    END SELECT
+
+ END SUBROUTINE chem_boundary_conds
+!
+!------------------------------------------------------------------------------!
+!
+! Description:
+! ------------
+!> Subroutine defining initial vertical profiles of chemical species (given by
+!> namelist parameters chem_profiles and chem_heights)  --> which should work
+!> analogue to parameters u_profile, v_profile and uv_heights)
+!------------------------------------------------------------------------------!
+ SUBROUTINE chem_init_profiles              !< SUBROUTINE is called from chem_init in case of 
+                                            !< TRIM( initializing_actions ) /= 'read_restart_data'
+                                            !< We still need to see what has to be done in case of restart run
+    USE chem_modules
+
+    IMPLICIT NONE
+
+!-- Local variables
+    INTEGER ::  lsp        !< running index for number of species in derived data type species_def
+    INTEGER ::  lsp_pr     !< running index for number of species in cs_names, cs_profiles etc
+    INTEGER ::  lpr_lev    !< running index for profile level for each chem spcs. 
+    INTEGER ::  npr_lev    !< the next available profile lev
+
+!-----------------
+!-- To prescribe/initialize a vertically constant  'cs_profile', another parameter
+!-- "cs_surface" is introduced. If "cs_profile" and "cs_heights" are prescribed,
+!-- their values will override the constant profile given by "cs_surface".
+
+!     IF ( TRIM( initializing_actions ) /= 'read_restart_data' )  THEN 
+       lsp_pr = 1
+       DO  WHILE ( TRIM( cs_name( lsp_pr ) ) /= 'novalue' )   !'novalue' is the default
+          DO  lsp = 1, nspec                                !
+!--          Create initial profile (conc_pr_init) for each chemical species
+             IF ( TRIM( chem_species(lsp)%name ) == TRIM( cs_name(lsp_pr) ) )  THEN   !
+!                IF ( cs_profile(1,1) == 9999999.9_wp ) THEN
+!--               Set a vertically constant profile based on the surface conc (cs_surface(lsp_pr)) of each species
+                  DO lpr_lev = 0, nzt+1
+                     chem_species(lsp)%conc_pr_init(lpr_lev) = cs_surface(lsp_pr)
+                  ENDDO
+
+!                ELSE
+!                   IF ( cs_heights(lsp,1) /= 0.0_wp )  THEN
+!                      message_string = 'cs_heights(1,1) must be 0.0'
+!                      CALL message( 'chem_check_parameters', 'CHEM0004', 1, 2, 0, 6, 0 )
+!                   ENDIF
+!  
+!                   IF ( omega /= 0.0_wp )  THEN
+!                      message_string = 'Coriolis force must be switched off (by setting omega=0.0)' //  &
+!                                       ' when prescribing the forcing by u_profile and v_profile'
+!                      CALL message( 'check_parameters', 'PA0347', 1, 2, 0, 6, 0 )
+!                   ENDIF
+!  
+!                   use_prescribed_profile_data = .TRUE.
+! 
+!                   npr_lev = 1
+! !                  chem_sddpecies(lsp)%conc_pr_init(0) = 0.0_wp
+!                   DO  lpr_lev = 1, nz+1
+!                      IF ( npr_lev < 100 )  THEN
+!                         DO  WHILE ( cs_heights(lsp, npr_lev+1) <= zu(lpr_lev) )
+!                            npr_lev = npr_lev + 1
+!                            IF ( npr_lev == 100 )  EXIT
+!                         ENDDO
+!                      ENDIF
+!  
+!                      IF ( npr_lev < 100  .AND.  cs_heights(lsp, npr_lev + 1) /= 9999999.9_wp )  THEN
+!                         chem_species(lsp)%conc_pr_init(lpr_lev) = cs_profile(lsp, npr_lev) +         &
+!                                                 ( zu(lpr_lev) - cs_heights(lsp, npr_lev) ) /         &
+!                                                 ( cs_heights(lsp, npr_lev + 1) - cs_heights(lsp, npr_lev ) ) * &
+!                                                 ( cs_profile(lsp, npr_lev + 1) - cs_profile(lsp, npr_lev ) )
+!                      ELSE
+!                         chem_species(lsp)%conc_pr_init(lpr_lev) = cs_profile(lsp, npr_lev)
+!                      ENDIF
+!                   ENDDO
+!                ENDIF
+!-- If a profile is prescribed explicity using cs_profiles and cs_heights, we then have to fill the 
+!-- chem_species(lsp)%conc_pr_init for the specific "lsp" based on the cs_profiles(lsp_pr,:) 
+!-- and cs_heights(lsp_pr,:). 
+             ENDIF
+          ENDDO
+          lsp_pr = lsp_pr + 1
+       ENDDO
+!     ELSE
+!       IF (chem_debug1 ) print*,'code to be added for initializing_actions == read_restart_data'   !bK
+!     ENDIF
+
+!-- Now, go back to chem_init and use the contents of chem_species(lsp)%conc_pr_init to
+!-- initialize the 3D conc arrays, as it is currently taken care of in chem_set_constant_values.
+!-- After initializing the 3D arrays, these can be used to set the boundary conditions in the
+!-- subroutine kchem_boundary_conds, which should be called from boundary_conds.f90.
+
+
+ END SUBROUTINE chem_init_profiles
+!
+!------------------------------------------------------------------------------!
+!
+! Description:
+! ------------
+!> Subroutine initializating chemistry_model_mod
+!------------------------------------------------------------------------------!
+   SUBROUTINE chem_init
+
+
+      USE control_parameters,                                                  &
+         ONLY: message_string, io_blocks, io_group, turbulent_inflow
+       
+      USE arrays_3d,                                                           &
+          ONLY: mean_inflow_profiles
+
+      USE pegrid
+
+    IMPLICIT   none
+!-- local variables
+    INTEGER                 :: i,j               !< running index for for horiz numerical grid points
+    INTEGER                 :: lsp               !< running index for chem spcs
+    INTEGER                 :: lpr_lev           !< running index for chem spcs profile level
+!
+!-- NOPOINTER version not implemented yet
+! #if defined( __nopointer )
+!     message_string = 'The chemistry module only runs with POINTER version'
+!     CALL message( 'chemistry_model_mod', 'CM0001', 1, 2, 0, 6, 0 )      
+! #endif
+!
+!-- Allocate memory for chemical species
+    ALLOCATE( chem_species(nspec) )
+    ALLOCATE( spec_conc_1 (nzb:nzt+1,nysg:nyng,nxlg:nxrg,nspec) )
+    ALLOCATE( spec_conc_2 (nzb:nzt+1,nysg:nyng,nxlg:nxrg,nspec) )
+    ALLOCATE( spec_conc_3 (nzb:nzt+1,nysg:nyng,nxlg:nxrg,nspec) )
+    ALLOCATE( spec_conc_av(nzb:nzt+1,nysg:nyng,nxlg:nxrg,nspec) ) 
+    ALLOCATE( phot_frequen(nphot) ) 
+    ALLOCATE( freq_1(nzb:nzt+1,nysg:nyng,nxlg:nxrg,nphot) )
+    ALLOCATE( bc_cs_t_val(nspec) )
+!
+!-- Initialize arrays
+    spec_conc_1 (:,:,:,:) = 0.0_wp
+    spec_conc_2 (:,:,:,:) = 0.0_wp
+    spec_conc_3 (:,:,:,:) = 0.0_wp
+    spec_conc_av(:,:,:,:) = 0.0_wp
+
+
+    DO lsp = 1, nspec
+       chem_species(lsp)%name    = spc_names(lsp)
+
+       chem_species(lsp)%conc   (nzb:nzt+1,nysg:nyng,nxlg:nxrg)       => spec_conc_1 (:,:,:,lsp)
+       chem_species(lsp)%conc_p (nzb:nzt+1,nysg:nyng,nxlg:nxrg)       => spec_conc_2 (:,:,:,lsp)
+       chem_species(lsp)%tconc_m(nzb:nzt+1,nysg:nyng,nxlg:nxrg)       => spec_conc_3 (:,:,:,lsp)
+       chem_species(lsp)%conc_av(nzb:nzt+1,nysg:nyng,nxlg:nxrg)       => spec_conc_av(:,:,:,lsp)     
+
+       ALLOCATE (chem_species(lsp)%cssws_av(nysg:nyng,nxlg:nxrg))                   
+       chem_species(lsp)%cssws_av    = 0.0_wp
+!
+!--    (todo (FK): This needs to be revised. This block must go somewhere else)                                         
+!      IF ( ws_scheme_sca )  THEN                                                
+          ALLOCATE (chem_species(lsp)%flux_s_cs(nzb+1:nzt,0:threads_per_task-1))   
+          ALLOCATE (chem_species(lsp)%diss_s_cs(nzb+1:nzt,0:threads_per_task-1))   
+          ALLOCATE (chem_species(lsp)%flux_l_cs(nzb+1:nzt,nys:nyn,0:threads_per_task-1)) 
+          ALLOCATE (chem_species(lsp)%diss_l_cs(nzb+1:nzt,nys:nyn,0:threads_per_task-1))   
+          chem_species(lsp)%flux_s_cs = 0.0_wp                                     
+          chem_species(lsp)%flux_l_cs = 0.0_wp                                     
+          chem_species(lsp)%diss_s_cs = 0.0_wp                                      
+          chem_species(lsp)%diss_l_cs = 0.0_wp                                     
+!      ENDIF         
+!
+!--   Allocate memory for initial concentration profiles
+!--   (concentration values come from namelist)
+!--   (todo (FK): Because of this, chem_init is called in palm before
+!--               check_parameters, since conc_pr_init is used there.
+!--               We have to find another solution since chem_init should
+!--               eventually be called from init_3d_model!!)
+      ALLOCATE ( chem_species(lsp)%conc_pr_init(0:nz+1) )
+      chem_species(lsp)%conc_pr_init(:) = 0.0_wp
+
+    ENDDO
+
+!
+!-- Set initial concentration of profiles prescribed by parameters cs_profile
+!-- and cs_heights in the namelist &chemistry_par
+!-- (todo (FK): chem_init_profiles not ready yet, has some bugs)
+!     CALL chem_init_profiles
+!
+!-- Initialize model variables
+
+
+    IF ( TRIM( initializing_actions ) /= 'read_restart_data'  .AND.            &
+         TRIM( initializing_actions ) /= 'cyclic_fill' )  THEN
+
+
+!--    First model run of a possible job queue.
+!--    Initial profiles of the variables must be computes.
+       IF ( INDEX( initializing_actions, 'set_1d-model_profiles' ) /= 0 )  THEN
+!            CALL location_message( 'initializing with 1D model profiles', .FALSE. )
+!
+!          CALL init_1d_model    ...... decide to call or not later     !bK
+
+!--        Transfer initial profiles to the arrays of the 3D model
+          DO lsp = 1, nspec
+             DO  i = nxlg, nxrg
+                DO  j = nysg, nyng
+                   DO lpr_lev = 1, nz + 1
+                      chem_species(lsp)%conc(lpr_lev,j,i) = chem_species(lsp)%conc_pr_init(lpr_lev)
+                   ENDDO
+                ENDDO
+             ENDDO   
+          ENDDO
+       
+       ELSEIF ( INDEX(initializing_actions, 'set_constant_profiles') /= 0 )    &
+       THEN
+!           CALL location_message( 'initializing with constant profiles', .FALSE. )
+
+
+
+!--       Set initial horizontal velocities at the lowest computational grid 
+!--       levels to zero in order to avoid too small time steps caused by the 
+!--       diffusion limit in the initial phase of a run (at k=1, dz/2 occurs
+!--       in the limiting formula!).
+
+          DO lsp = 1, nspec 
+             DO  i = nxlg, nxrg
+                DO  j = nysg, nyng
+                   chem_species(lsp)%conc(:,j,i) = chem_species(lsp)%conc_pr_init    !ITS THERE bK
+                ENDDO
+             ENDDO
+          ENDDO
+
+!        ELSEIF ( INDEX(initializing_actions, 'by_user') /= 0 )                  &
+!        THEN
+!           CALL location_message( 'initializing by user', .FALSE. )
+!
+!--       Initialization will completely be done by the user
+!--       (FK: This should be called only once, in init_3d_model, i.e. remove it here)
+!           CALL user_init_3d_model
+!           CALL location_message( 'finished', .TRUE. )
+
+       ENDIF
+
+!-- Store initial chem spcs profile
+!         DO lsp = 1, nvar
+!          hom_cs(:,1,115,:) = SPREAD(  chem_species(lsp)%conc(:,nys,nxl), 2, statistic_regions+1 )
+!         ENDDO
+!
+!-- If required, change the surface chem spcs at the start of the 3D run
+       IF ( cs_surface_initial_change(1) /= 0.0_wp ) THEN            
+          DO lsp = 1, nspec 
+             chem_species(lsp)%conc(nzb,:,:) = chem_species(lsp)%conc(nzb,:,:) +  &
+                                               cs_surface_initial_change(lsp)
+          ENDDO
+       ENDIF 
+!
+!-- Initiale old and new time levels. 
+       DO lsp = 1, nvar
+          chem_species(lsp)%tconc_m = 0.0_wp                      
+          chem_species(lsp)%conc_p  = chem_species(lsp)%conc     
+       ENDDO
+!        CALL location_message( 'finished', .TRUE. )
+
+!
+!-- (todo (FK): Restarts not available yet. It is not correct to call 
+!--             read_3d_binary here)
+    ELSEIF ( TRIM( initializing_actions ) == 'read_restart_data'  .OR.         &
+             TRIM( initializing_actions ) == 'cyclic_fill' )                   &
+    THEN
+
+       message_string = 'so far, restarts are not possible with chemistry'
+       CALL message( 'chem_init', 'CM0002', 1, 2, 0, 6, 0 )
+!        CALL location_message( 'initializing in case of restart / cyclic_fill', &
+!                               .FALSE. )
+! !
+! !--    When reading data for cyclic fill of 3D prerun data files, read
+! !--    some of the global variables from the restart file which are required
+! !--    for initializing the inflow
+!        IF ( TRIM( initializing_actions ) == 'cyclic_fill' )  THEN
+!           DO  i = 0, io_blocks-1
+!              IF ( i == io_group )  THEN
+!                 CALL read_parts_of_var_list
+!                 CALL close_file( 13 )
+!              ENDIF
+! #if defined( __parallel )
+!              CALL MPI_BARRIER( comm2d, ierr )
+! #endif
+!           ENDDO
+!        ENDIF
+! !
+! !--    Read binary data from restart file
+!        DO  i = 0, io_blocks-1
+!           IF ( i == io_group )  THEN
+!              CALL read_3d_binary
+!           ENDIF
+! #if defined( __parallel )
+!           CALL MPI_BARRIER( comm2d, ierr )
+! #endif
+!        ENDDO
+! !
+! !--    Initialization of the turbulence recycling method
+!        IF ( TRIM( initializing_actions ) == 'cyclic_fill'  .AND.               &
+!             turbulent_inflow )  THEN
+! !
+! !--       First store the profiles to be used at the inflow.
+! !--       These profiles are the (temporally) and horizontally averaged vertical
+! !--       profiles from the prerun. Alternatively, prescribed profiles
+! !--       for u,v-components can be used.
+!           ALLOCATE( mean_inflow_profiles(nzb:nzt+1,8) )
+! !         mean_inflow_profiles(:,8) = hom_sum(:,115,0)   !cs           
+! 
+! !         IF ( inflow_l) THEN
+! !            DO  j = nysg, nyng
+! !               DO  k = nzb, nzt+1
+! !                     DO lsp = 1, nvar 
+! !                       chem_species(lsp)%conc(k,j,nxlg:-1)  = mean_inflow_profiles(k,8)  ???
+! !                     ENDDO
+! !               ENDDO
+! !            ENDDO
+! !         ENDIF
+!        ENDIF
+! 
+! !--    Inside buildings set velocities and TKE back to zero         
+! !       IF ( TRIM( initializing_actions ) == 'cyclic_fill' .AND.                &
+! !            topography /= 'flat' )  THEN
+! !           ......
+! !       ENDIF
+! ! 
+! !--    Initialize new time levels (only done in order to set boundary values
+! !--    including ghost points)
+!        DO lsp = 1, nvar
+!           chem_species(lsp)%conc_p  = chem_species(lsp)%conc
+!        ENDDO
+! !
+! !--    Allthough tendency arrays are set in prognostic_equations, they have
+! !--    have to be predefined here because they are used (but multiplied with 0)
+! !--    there before they are set. 
+! 
+!        DO lsp = 1, nvar
+!           chem_species(lsp)%tconc_m  = 0.0_wp
+!        ENDDO
+
+    ELSE
+!
+!--    Actually this part of the programm should not be reached
+       message_string = 'unknown initializing problem'
+       CALL message( 'chem_init', 'CM0003', 1, 2, 0, 6, 0 )
+    ENDIF
+
+
+
+!--- new code add above this line
+    DO lsp = 1, nphot
+       phot_frequen(lsp)%name = phot_names(lsp)
+!        IF( myid == 0 )  THEN
+!           WRITE(6,'(a,i4,3x,a)')  'Photolysis: ',lsp,trim(phot_names(lsp))
+!        ENDIF 
+         phot_frequen(lsp)%freq(nzb:nzt+1,nysg:nyng,nxlg:nxrg)    => freq_1(:,:,:,lsp)
+    ENDDO
+
+!--   Set initial values
+!    Not required any more, this can now be done with the namelist  by setting cs_surface 
+!    and cs_name without specifying cs_profile (Nevertheless, we still want to keep it for a while) 
+!   IF (  TRIM( initializing_actions ) /= 'read_restart_data' )  THEN             
+!         CALL set_const_initial_values
+!   ENDIF
+
+    RETURN
+
+    CONTAINS
+!------------------------------------------------------------------------------!
+!
+! Description:
+! ------------
+!> Subroutine setting constant initial values of chemical species
+!------------------------------------------------------------------------------!
+     SUBROUTINE set_const_initial_values
+!    Not required any more, this can now be done with the namelist  by setting cs_surface 
+!    and cs_name without specifying cs_profile (Nevertheless, we still want to keep it for a while) 
+         IMPLICIT   none
+
+!--      local variables
+         INTEGER                  :: lsp
+
+         IF(myid == 0)  THEN
+            write(6,'(/,a,/)')  ' chemics >>>> Set constant Initial Values: '
+         ENDIF
+
+!        Default values are taken from smog.def from supplied kpp example
+         DO lsp = 1, nspec
+            IF(trim(chem_species(lsp)%name) == 'NO')           THEN
+!              chem_species(lsp)%conc = 8.725*1.0E+08
+!              chem_species(lsp)%conc = 0.05_wp                          !added by bK
+               chem_species(lsp)%conc = 0.01_wp                          !added by RFo
+            ELSEIF (trim(chem_species(lsp)%name) == 'NO2')     THEN
+!              chem_species(lsp)%conc = 2.240*1.0E+08             
+!              chem_species(lsp)%conc = 0.01_wp                          !added by bK
+               chem_species(lsp)%conc = 0.05_wp                          !added by RFo
+            ELSEIF( trim( chem_species(lsp)%name ) == 'O3' )   THEN
+               chem_species(lsp)%conc = 0.05_wp                          !added by bK
+            ELSEIF(trim(chem_species(lsp)%name) == 'H2O')      THEN
+!              chem_species(lsp)%conc = 5.326*1.0E+11
+               chem_species(lsp)%conc = 1.30*1.0E+4_wp                   !added by bK
+            ELSEIF(trim(chem_species(lsp)%name) == 'O2')       THEN
+               chem_species(lsp)%conc = 2.0*1.0E+5_wp                    !added by bK
+            ELSEIF(trim(chem_species(lsp)%name) == 'RH')       THEN
+               chem_species(lsp)%conc = 0.001_wp                         !added by RFo
+            ELSEIF(trim(chem_species(lsp)%name) == 'CO')       THEN
+               chem_species(lsp)%conc = 0.5_wp                           !added by RFo
+            ELSEIF(trim(chem_species(lsp)%name) == 'RCHO')     THEN
+!              chem_species(lsp)%conc = 2.0_wp                           !added by bK
+               chem_species(lsp)%conc = 0.01_wp                          !added by RFo
+!           ELSEIF(trim(chem_species(lsp)%name) == 'OH')       THEN
+!              chem_species(lsp)%conc = 1.0*1.0E-07_wp                   !added by bK
+!           ELSEIF(trim(chem_species(lsp)%name) == 'HO2')      THEN
+!              chem_species(lsp)%conc = 1*1.0E-7_wp                      !added by bK
+!           ELSEIF(trim(chem_species(lsp)%name) == 'RCOO2')    THEN      ! corrected RFo
+!              chem_species(lsp)%conc = 1.0*1.0E-7_wp                    !added by bK
+!           ELSEIF(trim(chem_species(lsp)%name) == 'RCOO2NO2') THEN
+!              chem_species(lsp)%conc = 1.0*1.0E-7_wp                    !added by bK
+            ELSE
+!              H2O = 2.0e+04;
+               chem_species(lsp)%conc(nzb:nzt+1,nysg:nyng,nxlg:nxrg) = 0.0_wp
+            ENDIF
+
+            IF(myid == 0)  THEN
+               WRITE(6,'(a,3x,a,3x,a,e12.4)')  '   Species:     ',chem_species(lsp)%name(1:7),' Initial Value = ',chem_species(lsp)%conc(nzb,nysg,nxlg)
+            ENDIF
+         ENDDO
+
+!   #if defined( __nopointer )
+!   !kk      Hier mit message abbrechen
+!            if(myid == 0)  then
+!               write(6,*)  '   KPP does only run with POINTER Version'
+!            end if
+!            stop 'error'
+!   #endif
+
+         RETURN
+      END SUBROUTINE set_const_initial_values
+
+
+   END SUBROUTINE chem_init
+!
+!------------------------------------------------------------------------------!
+!
+! Description:
+! ------------
+!> Subroutine defining parin for &chemistry_par for chemistry model
+!------------------------------------------------------------------------------!
+   SUBROUTINE chem_parin
+   
+      USE control_parameters,                                                  &
+          ONLY: air_chemistry
+          
+      USE chem_modules
+      
+      USE kinds
+
+      IMPLICIT   none
+
+      CHARACTER (LEN=80) ::  line   !< dummy string that contains the current line of the parameter file
+      
+      REAL(wp), DIMENSION(nmaxfixsteps) ::   my_steps   !< List of fixed timesteps   my_step(1) = 0.0 automatic stepping
+
+      NAMELIST /chemistry_par/   bc_cs_b,                                &
+                                 bc_cs_t,                                &
+                                 call_chem_at_all_substeps,              &
+                                 chem_debug0,                            &
+                                 chem_debug1,                            &
+                                 chem_debug2,                            &
+                                 chem_gasphase_on,                       &
+                                 cs_heights,                             &
+                                 cs_name,                                &
+                                 cs_profile,                             &
+                                 cs_profile_name,                        & 
+                                 cs_surface,                             &
+                                 emiss_factor_main,                      &
+                                 emiss_factor_side,                      &                      
+                                 icntrl,                                 &
+                                 main_street_id,                         &
+                                 max_street_id,                          &
+                                 my_steps,                               &
+                                 rcntrl,                                 &
+                                 side_street_id,                         &
+                                 photolysis_scheme,                      &
+                                 wall_csflux,                            &
+                                 cs_vertical_gradient,                   &
+                                 top_csflux,                             & 
+                                 surface_csflux,                         &
+                                 surface_csflux_name,                    &
+                                 cs_surface_initial_change,              &
+                                 cs_vertical_gradient_level
+                             
+!-- analogue to chem_names(nspj) we could invent chem_surfaceflux(nspj) and chem_topflux(nspj)
+!-- so this way we could prescribe a specific flux value for each species
+!>  chemistry_par for initial profiles
+!>  cs_names = 'O3', 'NO2', 'NO', ...   to set initial profiles)
+!>  cs_heights(1,:) = 0.0, 100.0, 500.0, 2000.0, .... (height levels where concs will be prescribed for O3)
+!>  cs_heights(2,:) = 0.0, 200.0, 400.0, 1000.0, .... (same for NO2 etc.) 
+!>  cs_profiles(1,:) = 10.0, 20.0, 20.0, 30.0, .....  (chem spcs conc at height lvls chem_heights(1,:)) etc.
+!>  If the respective concentration profile should be constant with height, then use "cs_surface( number of spcs)"
+!>  then write these cs_surface values to chem_species(lsp)%conc_pr_init(:)
+
+!
+!--   Read chem namelist   
+!--   (todo: initialize these parameters in declaration part, do this for
+!--          all chemistry_par namelist parameters)
+      icntrl    = 0
+      rcntrl    = 0.0_wp
+      my_steps  = 0.0_wp
+      icntrl(2) = 1                                  
+      photolysis_scheme = 'simple'
+      atol = 1.0_wp
+      rtol = 0.01_wp
+!
+!--   Try to find chemistry package
+      REWIND ( 11 )
+      line = ' '
+      DO   WHILE ( INDEX( line, '&chemistry_par' ) == 0 )
+         READ ( 11, '(A)', END=10 )  line
+      ENDDO
+      BACKSPACE ( 11 )
+!
+!--   Read chemistry namelist
+      READ ( 11, chemistry_par )                          
+!
+!--   Enable chemistry model
+      air_chemistry = .TRUE.                    
+
+!
+!--   FK: Not in use/needed (yet), since chemistry_par namelist is always read in
+!       IF ( TRIM( initializing_actions ) == 'read_restart_data' ) THEN
+!          CALL chem_read_var_list
+!       ENDIF
+      
+ 10   CONTINUE
+
+      t_steps = my_steps          !(todo: Why not directly make t_steps a
+                                  !       namelist parameter?)
+
+   END SUBROUTINE chem_parin
+
+ !
+!------------------------------------------------------------------------------!
+!
+! Description:
+! ------------
+!> Subroutine to integrate chemical species in the given chemical mechanism
+!------------------------------------------------------------------------------!
+
+   SUBROUTINE chem_integrate_ij (i, j)
+
+      USE cpulog,                                                              &
+           ONLY: cpu_log, log_point
+      USE statistics,                                                          &   ! ## RFo
+           ONLY:  weight_pres
+       USE control_parameters,                                                 &   ! ## RFo 
+           ONLY:  dt_3d, intermediate_timestep_count
+
+      IMPLICIT   none
+      INTEGER,INTENT(IN)       :: i,j
+
+!--   local variables
+      INTEGER(iwp) ::  lsp                                                          !< running index for chem spcs.
+      INTEGER(iwp) ::  lph                                                          !< running index for photolysis frequencies
+      INTEGER                  :: k,m,istatf                                        
+      INTEGER,dimension(20)    :: istatus
+      REAL(kind=wp),dimension(nzb+1:nzt,nspec)                :: tmp_conc           
+      REAL(kind=wp),dimension(nzb+1:nzt)                      :: tmp_temp
+      REAL(kind=wp),dimension(nzb+1:nzt,nphot)                :: tmp_phot
+      REAL(kind=wp),dimension(nzb+1:nzt)                      :: tmp_fact   
+     REAL(kind=wp),dimension(nzb+1:nzt)                      :: tmp_fact_i    !< conversion factor between molecules cm^{-3} and ppm
+     REAL(wp)                         ::  conv                                !< conversion factor
+     REAL(wp), PARAMETER              ::  ppm2fr  = 1.0e-6_wp                 !< Conversion factor ppm to fraction
+     REAL(wp), PARAMETER              ::  pref_i  = 1._wp / 100000.0_wp       !< inverse reference pressure (1/Pa)
+     REAL(wp), PARAMETER              ::  t_std   = 273.15_wp                 !< standard pressure (Pa)
+     REAL(wp), PARAMETER              ::  p_std   = 101325.0_wp               !< standard pressure (Pa)
+     REAL(wp), PARAMETER              ::  r_cp    = 0.286_wp                  !< R / cp (exponent for potential temperature)
+     REAL(wp), PARAMETER              ::  vmolcm  = 22.414e3_wp               !< Mole volume (22.414 l) in cm^{-3}
+     REAL(wp), PARAMETER              ::  xna     = 6.022e23_wp               !< Avogadro number (molecules/mol)
+
+
+      REAL(kind=wp)  :: dt_chem                                             
+
+       CALL cpu_log( log_point(80), '[chem_integrate_ij]', 'start' )
+!<     Set chem_gasphase_on to .FALSE. if you want to skip computation of gas phase chemistry
+    IF (chem_gasphase_on) THEN
+
+       tmp_temp(:) = pt(:,j,i) * ( hyp(nzb+1:nzt) / 100000.0_wp )**0.286_wp
+! ppm to molecules/cm**3
+!      tmp_fact = 1.e-6_wp*6.022e23_wp/(22.414_wp*1000._wp) * 273.15_wp * hyp(nzb+1:nzt)/( 101300.0_wp * tmp_temp )
+       conv = ppm2fr * xna / vmolcm
+       tmp_fact(:) = conv * t_std * hyp(nzb+1:nzt) / (tmp_temp(:) * p_std)
+       tmp_fact_i = 1.0_wp/tmp_fact
+
+       CALL fill_temp (istatf, tmp_temp)                                      !< Load constant temperature into kpp context
+!      CALL fill_temp (istatf, pt(nzb+1:nzt,j,i))                             !< Load temperature into kpp context
+
+       DO lsp = 1,nspec
+          tmp_conc(:,lsp) = chem_species(lsp)%conc(nzb+1:nzt,j,i) * tmp_fact(:) 
+       ENDDO
+
+       DO lph = 1,nphot
+          tmp_phot(:,lph) = phot_frequen(lph)%freq(nzb+1:nzt,j,i)               
+       ENDDO
+
+       IF(myid == 0 .AND. chem_debug0 ) THEN
+          IF (i == 10 .and. j == 10) WRITE(0,*) 'begin chemics step ',dt_3d
+       ENDIF
+
+!--    Compute length of time step     # RFo
+       IF ( call_chem_at_all_substeps )  THEN
+          dt_chem = dt_3d * weight_pres(intermediate_timestep_count)
+       ELSE
+          dt_chem = dt_3d
+       ENDIF
+
+       CALL cpu_log( log_point(81), '{chem_gasphase_integrate}', 'start' )
+
+
+       CALL chem_gasphase_integrate (dt_chem, tmp_conc, tmp_temp, tmp_phot, istatus=istatus)
+
+
+       CALL cpu_log( log_point(81), '{chem_gasphase_integrate}', 'stop' )
+
+       DO lsp = 1,nspec
+          chem_species(lsp)%conc (nzb+1:nzt,j,i) = tmp_conc(:,lsp) * tmp_fact_i(:)  ! RFo
+       ENDDO
+
+!      IF (myid == 0 .AND. chem_debug2 ) THEN 
+!         IF (i == 10 .and. j == 10)   WRITE(6,'(a,8i7)') ' KPP Status ',istatus(1:8)
+!         write(6,'(a,8i7)') ' KPP Status ',istatus(1:8)
+!      ENDIF
+
+    ENDIF
+       CALL cpu_log( log_point(80), '[chem_integrate_ij]', 'stop' )
+
+       RETURN
+   END SUBROUTINE chem_integrate_ij
+!
+!------------------------------------------------------------------------------!
+!
+! Description:
+! ------------
+!> Subroutine for swapping of timelevels for chemical species
+!> called out from subroutine swap_timelevel
+!------------------------------------------------------------------------------!
+
+   SUBROUTINE chem_swap_timelevel (level)
+      IMPLICIT   none
+
+      INTEGER,INTENT(IN)                  :: level
+
+!--   local variables
+
+      INTEGER               :: lsp
+
+!        print*,' *** entering chem_swap_timelevel ***) '
+      if(level == 0)  then
+         do lsp=1, nvar                                       
+            chem_species(lsp)%conc(nzb:nzt+1,nysg:nyng,nxlg:nxrg)    => spec_conc_1(:,:,:,lsp)
+            chem_species(lsp)%conc_p(nzb:nzt+1,nysg:nyng,nxlg:nxrg)  => spec_conc_2(:,:,:,lsp)
+         end do
+      else
+         do lsp=1, nvar                                        
+            chem_species(lsp)%conc(nzb:nzt+1,nysg:nyng,nxlg:nxrg)    => spec_conc_2(:,:,:,lsp)
+            chem_species(lsp)%conc_p(nzb:nzt+1,nysg:nyng,nxlg:nxrg)  => spec_conc_1(:,:,:,lsp)
+         end do
+      end if
+
+      RETURN
+   END SUBROUTINE chem_swap_timelevel
+
+!------------------------------------------------------------------------------!
+!
+! Description:
+! ------------
+!> Subroutine defining appropriate grid for netcdf variables.
+!> It is called out from subroutine netcdf.
+!------------------------------------------------------------------------------!
+   SUBROUTINE chem_define_netcdf_grid( var, found, grid_x, grid_y, grid_z )
+
+      IMPLICIT NONE
+
+      CHARACTER (LEN=*), INTENT(IN)  ::  var         !<
+      LOGICAL, INTENT(OUT)           ::  found       !<
+      CHARACTER (LEN=*), INTENT(OUT) ::  grid_x      !<
+      CHARACTER (LEN=*), INTENT(OUT) ::  grid_y      !<
+      CHARACTER (LEN=*), INTENT(OUT) ::  grid_z      !<
+
+      found  = .TRUE.
+
+      if(var(1:3) == 'kc_')   then                    !< always the same grid for chemistry variables
+            grid_x = 'x'
+            grid_y = 'y'
+            grid_z = 'zu'                             !< kk Use same z axis as u variables. Has to be checked if OK
+      else
+            found  = .FALSE.
+            grid_x = 'none'
+            grid_y = 'none'
+            grid_z = 'none'
+      end if
+
+!     write(6,*) 'chem_define_netcdf_grid ',TRIM(var),' ',trim(grid_x),' ',found
+
+   END SUBROUTINE chem_define_netcdf_grid
+!
+!------------------------------------------------------------------------------!
+!
+! Description:
+! ------------
+!> Subroutine for checking data output for chemical species
+!------------------------------------------------------------------------------!
+
+   SUBROUTINE chem_check_data_output( var, unit, i, ilen, k )
+
+
+      USE control_parameters,                                                 &
+         ONLY: data_output, message_string
+
+      IMPLICIT NONE
+
+      CHARACTER (LEN=*) ::  unit     !<
+      CHARACTER (LEN=*) ::  var      !<
+
+      INTEGER(iwp) :: i, lsp
+      INTEGER(iwp) :: ilen
+      INTEGER(iwp) :: k
+
+      CHARACTER(len=16)    ::  spec_name
+
+      unit = 'illegal'
+
+      spec_name = TRIM(var(4:))             !< var 1:3 is 'kc_'.
+
+       DO lsp=1,nspec
+         IF (TRIM(spec_name) == TRIM(chem_species(lsp)%name))   THEN
+            unit = 'ppm'
+         ENDIF
+         ! It is possible  to plant PM10 and PM25 into the gasphase chemistry code 
+!        ! as passive species (e.g. 'passive' in GASPHASE_PREPROC/mechanisms):
+!        ! set unit to micrograms per m**3 for PM10 and PM25 (PM2.5)
+         IF (spec_name(1:2) == 'PM')   THEN  
+            unit = 'ug m-3'
+         ENDIF
+       ENDDO
+
+       DO lsp=1,nphot                                                     
+         IF (TRIM(spec_name) == TRIM(phot_frequen(lsp)%name))   THEN
+            unit = 'sec-1'
+         ENDIF
+       ENDDO
+
+
+       RETURN
+   END SUBROUTINE chem_check_data_output
+!
+!------------------------------------------------------------------------------!
+!
+! Description:
+! ------------
+!> Subroutine for checking data output of profiles for chemistry model
+!------------------------------------------------------------------------------!
+
+   SUBROUTINE chem_check_data_output_pr( variable, var_count, unit, dopr_unit )
+
+
+    USE arrays_3d,                                                             &
+        ONLY: zu
+
+    USE control_parameters,                                                    &
+        ONLY: data_output_pr, message_string, air_chemistry
+
+    USE indices
+
+    USE profil_parameter
+
+    USE statistics
+
+
+    IMPLICIT NONE
+
+    CHARACTER (LEN=*) ::  unit     !< 
+    CHARACTER (LEN=*) ::  variable !< 
+    CHARACTER (LEN=*) ::  dopr_unit
+    CHARACTER(len=16) ::  spec_name
+ 
+    INTEGER(iwp) ::  var_count, lsp  !<
+    
+
+    spec_name = TRIM(variable(4:))    
+!             write(9,*) 'fm #32 .. air_chemistry ', air_chemistry
+
+          IF (  .NOT.  air_chemistry )  THEN
+                 message_string = 'data_output_pr = ' //                        &
+                 TRIM( data_output_pr(var_count) ) // ' is not imp' // &
+                          'lemented for air_chemistry = .FALSE.'
+!                CALL message( 'check_parameters', 'PA0185', 1, 2, 0, 6, 0 )
+          ELSE
+             DO lsp = 1, nspec
+                IF (TRIM( spec_name ) == TRIM( chem_species(lsp)%name ) ) THEN 
+                    dopr_index(var_count) = 900 
+                    dopr_unit  = 'ppm'
+                    hom(:,2,900,:) = SPREAD( zu, 2, statistic_regions+1 )
+                ENDIF
+             ENDDO
+          ENDIF
+
+   END SUBROUTINE chem_check_data_output_pr
+!
+!------------------------------------------------------------------------------!
+!
+! Description:
+! ------------
+!> Subroutine defining 3D output variables for chemical species
+!------------------------------------------------------------------------------!
+
+
+   SUBROUTINE chem_data_output_3d( av, variable, found, local_pf )
+
+
+      USE indices
+
+      USE kinds
+
+
+      IMPLICIT NONE
+
+      CHARACTER (LEN=*) ::  variable !<
+      LOGICAL      ::  found !<
+      INTEGER(iwp) ::  av    !<
+      REAL(sp), DIMENSION(nxl:nxr,nys:nyn,nzb:nzt+1) ::  local_pf !<
+
+      !-- local variables
+
+      INTEGER              ::  i, j, k, lsp
+      CHARACTER(len=16)    ::  spec_name
+
+
+      found = .FALSE.
+
+      spec_name = TRIM(variable(4:))
+!av == 0
+
+       DO lsp=1,nspec
+          IF (TRIM(spec_name) == TRIM(chem_species(lsp)%name))   THEN
+             IF(myid == 0 .AND. chem_debug0 )  WRITE(6,*) 'Output of species ',TRIM(variable),' ',TRIM(chem_species(lsp)%name)       
+             
+             IF (av == 0) THEN
+                DO  i = nxl, nxr
+                   DO  j = nys, nyn
+                      DO  k = nzb, nzt+1
+                          local_pf(i,j,k) = chem_species(lsp)%conc(k,j,i)
+                      ENDDO
+                   ENDDO
+                ENDDO
+           
+             ELSE
+                DO  i = nxl, nxr
+                   DO  j = nys, nyn
+                      DO  k = nzb, nzt+1
+                          local_pf(i,j,k) = chem_species(lsp)%conc_av(k,j,i)
+                      ENDDO
+                   ENDDO
+                ENDDO
+             ENDIF
+
+            found = .TRUE.
+          ENDIF
+       ENDDO
+
+       RETURN
+   END SUBROUTINE chem_data_output_3d
+!
+!------------------------------------------------------------------------------!
+!
+! Description:
+! ------------
+!> Subroutine for averaging 3D data of chemical species
+!------------------------------------------------------------------------------!
+
+    SUBROUTINE chem_3d_data_averaging ( mode, variable )
+
+    USE control_parameters
+
+    USE indices
+
+    USE kinds
+
+    USE surface_mod,                                                         &
+        ONLY: surf_def_h, surf_lsm_h, surf_usm_h   
+  
+    IMPLICIT NONE
+ 
+    CHARACTER (LEN=*) ::  mode    !< 
+    CHARACTER (LEN=*) :: variable !< 
+ 
+
+    INTEGER(iwp) ::  i                  !< grid index x direction
+    INTEGER(iwp) ::  j                  !< grid index y direction
+    INTEGER(iwp) ::  k                  !< grid index z direction
+    INTEGER(iwp) ::  m                  !< running index surface type
+    INTEGER(iwp) :: lsp                 !< running index for chem spcs
+    INTEGER(iwp) :: lsp_2               !< it looks like redundent .. will be delted ..bK
+  
+    IF ( mode == 'allocate' )  THEN
+       DO lsp = 1, nspec
+          IF (TRIM(variable(4:)) == TRIM(chem_species(lsp)%name)) THEN
+!                   lsp_2 = lsp 
+             chem_species(lsp)%conc_av = 0.0_wp
+             
+          ENDIF
+       ENDDO
+
+    ELSEIF ( mode == 'sum' )  THEN
+   
+       DO lsp = 1, nspec
+          IF (TRIM(variable(4:)) == TRIM(chem_species(lsp)%name)) THEN
+!                   lsp_2 = lsp 
+             DO  i = nxlg, nxrg
+                DO  j = nysg, nyng
+                   DO  k = nzb, nzt+1
+                       chem_species(lsp)%conc_av(k,j,i) = chem_species(lsp)%conc_av(k,j,i) + &
+                                                          chem_species(lsp)%conc(k,j,i)
+                   ENDDO
+                ENDDO
+             ENDDO
+          ELSEIF ( TRIM(variable(4:)) == TRIM('cssws*') )        THEN
+             DO  m = 1, surf_def_h(0)%ns
+                 i = surf_def_h(0)%i(m)
+                 j = surf_def_h(0)%j(m)
+                 chem_species(lsp)%cssws_av(j,i) = chem_species(lsp)%cssws_av(j,i) + surf_def_h(0)%cssws(lsp,m)
+             ENDDO 
+             DO  m = 1, surf_lsm_h%ns
+                 i = surf_lsm_h%i(m)
+                 j = surf_lsm_h%j(m)
+                 chem_species(lsp)%cssws_av(j,i) = chem_species(lsp)%cssws_av(j,i) + surf_lsm_h%cssws(lsp,m)
+             ENDDO
+             DO  m = 1, surf_usm_h%ns
+                 i = surf_usm_h%i(m)
+                 j = surf_usm_h%j(m)
+                 chem_species(lsp)%cssws_av(j,i) = chem_species(lsp)%cssws_av(j,i) + surf_usm_h%cssws(lsp,m)
+             ENDDO
+
+          ENDIF
+       ENDDO
+ 
+    ELSEIF ( mode == 'average' )  THEN
+       DO lsp = 1, nspec
+          IF (TRIM(variable(4:)) == TRIM(chem_species(lsp)%name)) THEN
+!                   lsp_2 = lsp 
+             DO  i = nxlg, nxrg
+                DO  j = nysg, nyng
+                   DO  k = nzb, nzt+1
+                       chem_species(lsp)%conc_av(k,j,i) = chem_species(lsp)%conc_av(k,j,i) / REAL( average_count_3d, KIND=wp )
+                   ENDDO
+                ENDDO
+             ENDDO
+
+          ELSEIF (TRIM(variable(4:)) == TRIM('cssws*') )            THEN
+             DO i = nxlg, nxrg
+                DO  j = nysg, nyng
+                     chem_species(lsp)%cssws_av(j,i) = chem_species(lsp)%cssws_av(j,i) / REAL( average_count_3d, KIND=wp )
+                ENDDO
+             ENDDO
+                CALL exchange_horiz_2d( chem_species(lsp)%cssws_av, nbgp )                 
+          ENDIF
+       ENDDO
+       
+    ENDIF     
+
+    END SUBROUTINE chem_3d_data_averaging
+
+!------------------------------------------------------------------------------!
+!
+! Description:
+! ------------
+!> Subroutine to write restart data for chemistry model
+!------------------------------------------------------------------------------!
+ SUBROUTINE chem_last_actions
+ 
+
+    USE control_parameters
+    
+    USE kinds
+
+    IMPLICIT NONE 
+
+    INTEGER(iwp) :: lsp !< 
+    CHARACTER(LEN=20) ::  cspcs_name
+    CHARACTER(LEN=20) ::  cspcs_name_av
+!      REAL(kind=wp), DIMENSION(nzb:nzt+1,nysg:nyng,nxlg:nxrg)   :: chems_conc
+  
+    IF ( write_binary )  THEN
+       DO  lsp = 1, nspec
+          cspcs_name    = '                    '
+          cspcs_name_av = '                    '
+          cspcs_name    = TRIM(chem_species(lsp)%name)
+          cspcs_name_av = TRIM(chem_species(lsp)%name)//'_av'
+
+          WRITE(14) cspcs_name   ; WRITE(14) chem_species(lsp)%conc
+          WRITE(14) cspcs_name_av; WRITE(14) chem_species(lsp)%conc_av
+       ENDDO
+   
+       WRITE ( 14 )       '*** end chem ***    '
+
+    ENDIF
+
+ END SUBROUTINE chem_last_actions
+
+!------------------------------------------------------------------------------!
+!
+! Description:
+! ------------
+!> Subroutine to read restart data of chemical species
+!------------------------------------------------------------------------------!
+
+ SUBROUTINE chem_read_restart_data( i, nxlfa, nxl_on_file, nxrfa, nxr_on_file, &
+                                    nynfa, nyn_on_file, nysfa, nys_on_file,    &
+                                    offset_xa, offset_ya, overlap_count, tmp_2d, tmp_3d)    
+                                     
+    USE control_parameters
+            
+    USE indices
+    
+    USE kinds
+    
+    USE pegrid
+
+    IMPLICIT NONE 
+
+    CHARACTER (LEN=20) :: field_char !<   
+    CHARACTER (LEN=20) :: spc_name_av !<   
+       
+    INTEGER(iwp) ::  i, lsp          !< 
+    INTEGER(iwp) ::  k               !< 
+    INTEGER(iwp) ::  nxlc            !< 
+    INTEGER(iwp) ::  nxlf            !< 
+    INTEGER(iwp) ::  nxl_on_file     !<   
+    INTEGER(iwp) ::  nxrc            !< 
+    INTEGER(iwp) ::  nxrf            !< 
+    INTEGER(iwp) ::  nxr_on_file     !<   
+    INTEGER(iwp) ::  nync            !< 
+    INTEGER(iwp) ::  nynf            !< 
+    INTEGER(iwp) ::  nyn_on_file     !<   
+    INTEGER(iwp) ::  nysc            !< 
+    INTEGER(iwp) ::  nysf            !< 
+    INTEGER(iwp) ::  nys_on_file     !<   
+    INTEGER(iwp) ::  overlap_count   !<   
+
+    INTEGER(iwp), DIMENSION(numprocs_previous_run,1000) ::  nxlfa       !< 
+    INTEGER(iwp), DIMENSION(numprocs_previous_run,1000) ::  nxrfa       !< 
+    INTEGER(iwp), DIMENSION(numprocs_previous_run,1000) ::  nynfa       !< 
+    INTEGER(iwp), DIMENSION(numprocs_previous_run,1000) ::  nysfa       !< 
+    INTEGER(iwp), DIMENSION(numprocs_previous_run,1000) ::  offset_xa   !<   
+    INTEGER(iwp), DIMENSION(numprocs_previous_run,1000) ::  offset_ya   !<   
+!!
+    REAL(wp), DIMENSION(nys_on_file-nbgp:nyn_on_file+nbgp,                    &   !< 2D array to temp store data 
+                        nxl_on_file-nbgp:nxr_on_file+nbgp)     ::    tmp_2d       !<
+    REAL(wp), DIMENSION(nzb:nzt+1,nys_on_file-nbgp:nyn_on_file+nbgp,          &   !< 
+                        nxl_on_file-nbgp:nxr_on_file+nbgp)     ::    tmp_3d       !< 3D array to temp store data
+
+
+    IF ( initializing_actions == 'read_restart_data' )  THEN
+       READ ( 13 )  field_char
+
+       DO WHILE ( TRIM( field_char ) /= '*** end chem ***')
+          DO k = 1, overlap_count
+             nxlf = nxlfa(i,k)
+             nxlc = nxlfa(i,k) + offset_xa(i,k)
+             nxrf = nxrfa(i,k)
+             nxrc = nxrfa(i,k) + offset_xa(i,k)
+             nysf = nysfa(i,k)
+             nysc = nysfa(i,k) + offset_ya(i,k)
+             nynf = nynfa(i,k)
+             nync = nynfa(i,k) + offset_ya(i,k)
+
+             DO  lsp = 1, nspec
+                spc_name_av  =  TRIM(chem_species(lsp)%name)//'_av'
+                IF (TRIM( field_char ) == TRIM(chem_species(lsp)%name) )  THEN
+                   IF ( k == 1 )  READ ( 13 )  tmp_3d                             !< read data into tmp_3d
+                   chem_species(lsp)%conc = tmp_3d                                !< fill ..%conc in the restart run
+                ELSEIF (TRIM( field_char ) == spc_name_av ) THEN
+                   IF( k == 1 ) READ ( 13 ) tmp_3d
+                   chem_species(lsp)%conc_av = tmp_3d
+                ENDIF
+
+             ENDDO
+
+          ENDDO
+
+          READ ( 13 )  field_char
+
+       ENDDO
+
+!        IF (TRIM( field_char ) == TRIM('surface_csflux') )      THEN
+!           READ ( 13 ) surface_csflux
+!        ENDIF
+
+    ENDIF
+
+ END SUBROUTINE chem_read_restart_data
+!
+!------------------------------------------------------------------------------!
+!
+! Description:
+! ------------
+!> Subroutine calculating tendencies for chemical species
+!------------------------------------------------------------------------------!
+
+ SUBROUTINE chem_tendency ( cs_scalar_p, cs_scalar, tcs_scalar_m, pr_init_cs, i, j, i_omp_start, tn, ilsp, flux_s_cs, diss_s_cs, flux_l_cs, diss_l_cs )
+    USE pegrid         
+    USE advec_ws,        ONLY:  advec_s_ws 
+    USE advec_s_pw_mod,  ONLY:  advec_s_pw
+    USE advec_s_up_mod,  ONLY:  advec_s_up
+    USE diffusion_s_mod, ONLY:  diffusion_s
+    USE indices,         ONLY:  wall_flags_0
+    USE surface_mod,                                                                            &
+                         ONLY :  surf_def_h, surf_def_v, surf_lsm_h, surf_lsm_v, surf_usm_h,    &
+                                 surf_usm_v
+!> Only one chem_spcs recieved prog_eqns at time.
+!> cem_tendency is called in prog_eqns over loop => nvar
+
+    IMPLICIT NONE
+
+    REAL(wp), DIMENSION(:,:,:), POINTER                         :: cs_scalar_p, cs_scalar, tcs_scalar_m
+
+    INTEGER(iwp),INTENT(IN) :: i, j, i_omp_start, tn, ilsp
+    REAL(wp), DIMENSION(nzb+1:nzt,0:threads_per_task-1)         :: flux_s_cs   !<
+    REAL(wp), DIMENSION(nzb+1:nzt,0:threads_per_task-1)         :: diss_s_cs   !<
+    REAL(wp), DIMENSION(nzb+1:nzt,nys:nyn,0:threads_per_task-1) :: flux_l_cs   !<
+    REAL(wp), DIMENSION(nzb+1:nzt,nys:nyn,0:threads_per_task-1) :: diss_l_cs   !<
+    REAL(wp), DIMENSION(0:nz+1)                                 :: pr_init_cs  !<
+
+!-- local variables
+
+    INTEGER :: k
+    !
+    !--    Tendency-terms for chem spcs.
+    tend(:,j,i) = 0.0_wp
+!    
+!-- Advection terms
+    IF ( timestep_scheme(1:5) == 'runge' )  THEN
+       IF ( ws_scheme_sca )  THEN
+          CALL advec_s_ws( i, j, cs_scalar, 'kc', flux_s_cs, diss_s_cs,                &
+             flux_l_cs, diss_l_cs, i_omp_start, tn )
+       ELSE
+          CALL advec_s_pw( i, j, cs_scalar )
+       ENDIF
+    ELSE
+         CALL advec_s_up( i, j, cs_scalar )
+    ENDIF
+
+!
+
+!-- Diffusion terms ( ie hinteren 3 sind 0 )
+
+      CALL diffusion_s( i, j, cs_scalar,                                                 &
+                        surf_def_h(0)%cssws(ilsp,:), surf_def_h(1)%cssws(ilsp,:),        &
+                        surf_def_h(2)%cssws(ilsp,:),                                     &
+                        surf_lsm_h%cssws(ilsp,:), surf_usm_h%cssws(ilsp,:),              &
+                        surf_def_v(0)%cssws(ilsp,:), surf_def_v(1)%cssws(ilsp,:),        &
+                        surf_def_v(2)%cssws(ilsp,:), surf_def_v(3)%cssws(ilsp,:),        &
+                        surf_lsm_v(0)%cssws(ilsp,:), surf_lsm_v(1)%cssws(ilsp,:),        &
+                        surf_lsm_v(2)%cssws(ilsp,:), surf_lsm_v(3)%cssws(ilsp,:),        &
+                        surf_usm_v(0)%cssws(ilsp,:), surf_usm_v(1)%cssws(ilsp,:),        &
+                        surf_usm_v(2)%cssws(ilsp,:), surf_usm_v(3)%cssws(ilsp,:) )
+ 
+!    
+!-- Prognostic equation for chem spcs
+    DO k = nzb+1, nzt
+       cs_scalar_p(k,j,i) = cs_scalar(k,j,i) + ( dt_3d  *                       &
+                                               ( tsc(2) * tend(k,j,i) +         &
+                                                 tsc(3) * tcs_scalar_m(k,j,i) ) & 
+                                               - tsc(5) * rdf_sc(k)             &
+                                                        * ( cs_scalar(k,j,i) - pr_init_cs(k) )    &   
+                                               )                                                  &
+                                                        * MERGE( 1.0_wp, 0.0_wp,                  &      
+                                                                BTEST( wall_flags_0(k,j,i), 0 )   &             
+                                                                 )       
+
+       IF ( cs_scalar_p(k,j,i) < 0.0_wp )  cs_scalar_p(k,j,i) = 0.1_wp * cs_scalar(k,j,i)    !FKS6
+    ENDDO
+
+!
+!-- Calculate tendencies for the next Runge-Kutta step
+    IF ( timestep_scheme(1:5) == 'runge' )  THEN
+       IF ( intermediate_timestep_count == 1 )  THEN
+          DO  k = nzb+1, nzt
+             tcs_scalar_m(k,j,i) = tend(k,j,i)
+          ENDDO
+       ELSEIF ( intermediate_timestep_count < &
+          intermediate_timestep_count_max )  THEN
+          DO  k = nzb+1, nzt
+             tcs_scalar_m(k,j,i) = -9.5625_wp * tend(k,j,i) + &
+                5.3125_wp * tcs_scalar_m(k,j,i)
+          ENDDO
+       ENDIF
+    ENDIF
+!
+ END SUBROUTINE chem_tendency
+
+!------------------------------------------------------------------------------!
+!
+! Description:
+! ------------
+!> Subroutine defining header output for chemistry model
+!------------------------------------------------------------------------------!
+ SUBROUTINE chem_header ( io )
+       
+    IMPLICIT NONE 
+ 
+       INTEGER(iwp), INTENT(IN) ::  io            !< Unit of the output file
+
+!      print*,'the header subroutine is still not operational'     
+!!
+!!--    Write chemistry model header
+!       WRITE( io, 3 )
+!
+!       IF ( radiation_scheme == "constant" )  THEN 
+!          WRITE( io, 4 ) net_radiation
+!       ELSEIF ( radiation_scheme == "clear-sky" )  THEN 
+!          WRITE( io, 5 )
+!       ELSEIF ( radiation_scheme == "rrtmg" )  THEN 
+!          WRITE( io, 6 )
+!          IF ( .NOT. lw_radiation )  WRITE( io, 10 ) 
+!          IF ( .NOT. sw_radiation )  WRITE( io, 11 ) 
+!       ENDIF 
+!
+!       IF ( albedo_type == 0 )  THEN 
+!          WRITE( io, 7 ) albedo
+!       ELSE
+!          WRITE( io, 8 ) TRIM( albedo_type_name(albedo_type) )
+!       ENDIF
+!       IF ( constant_albedo )  THEN 
+!          WRITE( io, 9 )
+!       ENDIF
+!     
+!       IF ( radiation .AND. radiation_scheme /= 'constant' )  THEN 
+!          WRITE ( io, 1 )  lambda
+!          WRITE ( io, 2 )  day_init, time_utc_init
+!       ENDIF
+!
+!       WRITE( io, 12 ) dt_radiation
+! 
+! 1 FORMAT ('    Geograph. longitude            :   lambda = ',F4.1,' degr')
+! 2 FORMAT ('    Day of the year at model start :   day_init = ',I3   &
+!            /'    UTC time at model start        :   time_utc_init = ',F7.1' s')
+! 3 FORMAT (//' Radiation model information:'/                                  &
+!              ' ----------------------------'/)
+! 4 FORMAT ('    --> Using constant net radiation: net_radiation = ', F6.2,        &
+!           // 'W/m**2')
+! 5 FORMAT ('    --> Simple radiation scheme for clear sky is used (no clouds,',   &
+!                   ' default)')
+! 6 FORMAT ('    --> RRTMG scheme is used')
+! 7 FORMAT (/'    User-specific surface albedo: albedo =', F6.3)
+! 8 FORMAT (/'    Albedo is set for land surface type: ', A)
+! 9 FORMAT (/'    --> Albedo is fixed during the run')
+!10 FORMAT (/'    --> Longwave radiation is disabled')
+!11 FORMAT (/'    --> Shortwave radiation is disabled.')
+!12 FORMAT  ('    Timestep: dt_radiation = ', F6.2, '  s')
+!
+!
+ END SUBROUTINE chem_header
+
+!------------------------------------------------------------------------------
+! Description:
+! ------------
+!> Subroutine reading restart data for chemistry model input parameters
+!  (FK: To make restarts work, I had to comment this routine. We actually
+!       don't need it, since the namelist parameters are always read in,
+!       also in case of a restart run)
+!------------------------------------------------------------------------------
+!  SUBROUTINE chem_read_var_list
+! 
+! !   USE kinds
+! !   USE chem_modules
+! 
+!     
+!     IMPLICIT NONE
+!     
+!     CHARACTER (LEN=30) ::  variable_chr !< dummy variable to read string
+!     
+!     
+!     READ ( 13 )  variable_chr
+!     DO  WHILE ( TRIM( variable_chr ) /= '*** end chemistry ***' )
+! 
+!        SELECT CASE ( TRIM( variable_chr ) )
+!        
+!           CASE ( 'bc_cs_b' )
+!              READ ( 13 )  bc_cs_b
+!    
+!        
+!        END SELECT
+!        
+!        READ ( 13 )  variable_chr
+!        
+!     ENDDO
+!     
+!  END SUBROUTINE chem_read_var_list
+
+!------------------------------------------------------------------------------
+! Description:
+! ------------
+!> Skipping the chemistry-module parameters from restart-file (binary format).
+!  (FK: To make restarts work, I had to comment this routine. We actually
+!       don't need it, since the namelist parameters are always read in,
+!       also in case of a restart run)
+!------------------------------------------------------------------------------
+!  SUBROUTINE chem_skip_var_list 
+!       
+!     IMPLICIT NONE
+!           
+!     CHARACTER (LEN=1)  ::  cdum
+!     CHARACTER (LEN=30) ::  variable_chr
+!           
+!     READ ( 13 )  variable_chr
+! 
+!     DO  WHILE ( TRIM( variable_chr ) /= '*** end chemistry ***' )
+! 
+!        READ ( 13 )  cdum
+!        READ ( 13 )  variable_chr
+! 
+!     ENDDO   
+!           
+!  END SUBROUTINE chem_skip_var_list
+
+
+!------------------------------------------------------------------------------!
+!
+! Description:
+! ------------
+!> Subroutine writing restart data for chemistry model input parameters
+!  (FK: To make restarts work, I had to comment this routine. We actually
+!       don't need it, since the namelist parameters are always read in,
+!       also in case of a restart run)
+!------------------------------------------------------------------------------!
+!  SUBROUTINE chem_write_var_list
+! 
+!     USE chem_modules
+!     
+!     USE kinds
+! 
+! 
+!     IMPLICIT NONE
+! 
+!     INTEGER(iwp) ::  lsp  !< running index for chem spcs
+! 
+! !
+! !-- Writing out input parameters that are not part of chemistry_par namelist
+! !-- (namelist parameters are anyway read in again in case of restart)
+!     DO lsp = 1, nvar
+!        WRITE ( 14 )  'conc_pr_init_'//chem_species(lsp)%name 
+!        WRITE ( 14 )  chem_species(lsp)%conc_pr_init
+!     ENDDO
+! 
+!     WRITE ( 14 )     '*** end chemistry ***         '
+! 
+!  END SUBROUTINE chem_write_var_list
+
+
+!------------------------------------------------------------------------------!
+!
+! Description:
+! ------------
+!> Subroutine for emission
+!------------------------------------------------------------------------------!
+ SUBROUTINE chem_emissions
+
+    USE chem_modules
+    
+    USE netcdf_data_input_mod,                                                 &
+        ONLY:  street_type_f
+    
+    USE surface_mod,                                                           &
+        ONLY:  surf_lsm_h
+
+
+    IMPLICIT NONE
+
+    INTEGER(iwp) ::  i    !< running index for grid in x-direction
+    INTEGER(iwp) ::  j    !< running index for grid in y-direction
+    INTEGER(iwp) ::  m    !< running index for horizontal surfaces
+    INTEGER(iwp) ::  lsp  !< running index for chem spcs
+
+!
+!-- Comment??? (todo)
+    IF ( street_type_f%from_file )  THEN
+!
+!--    Streets are lsm surfaces, hence, no usm surface treatment required
+       DO  m = 1, surf_lsm_h%ns
+          i = surf_lsm_h%i(m)
+          j = surf_lsm_h%j(m)
+          
+          IF ( street_type_f%var(j,i) >= main_street_id  .AND.                 &
+               street_type_f%var(j,i) < max_street_id )  THEN
+             DO  lsp = 1, nvar
+                surf_lsm_h%cssws(lsp,m) = emiss_factor_main * surface_csflux(lsp)
+             ENDDO
+          ELSEIF ( street_type_f%var(j,i) >= side_street_id  .AND.             &
+                   street_type_f%var(j,i) < main_street_id )  THEN
+             DO  lsp = 1, nvar
+                surf_lsm_h%cssws(lsp,m) = emiss_factor_side * surface_csflux(lsp)
+             ENDDO
+          ELSE
+             surf_lsm_h%cssws(:,m) = 0.0_wp
+          ENDIF
+       ENDDO
+       
+    ENDIF
+
+ END SUBROUTINE chem_emissions
+
+
+#endif
+ END MODULE chemistry_model_mod
+
Index: palm/trunk/SOURCE/close_file.f90
===================================================================
--- palm/trunk/SOURCE/close_file.f90	(revision 2693)
+++ palm/trunk/SOURCE/close_file.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file close_file.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/compute_vpt.f90
===================================================================
--- palm/trunk/SOURCE/compute_vpt.f90	(revision 2693)
+++ palm/trunk/SOURCE/compute_vpt.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file compute_vpt.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/coriolis.f90
===================================================================
--- palm/trunk/SOURCE/coriolis.f90	(revision 2693)
+++ palm/trunk/SOURCE/coriolis.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file coriolis.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
@@ -25,4 +25,7 @@
 ! -----------------
 ! $Id$
+! Forcing implemented, preliminary (MS)
+! 
+! 2233 2017-05-30 18:08:54Z suehring
 !
 ! 2232 2017-05-30 17:47:52Z suehring
@@ -102,5 +105,5 @@
            
        USE control_parameters,                                                 &
-           ONLY:  f, fs, message_string
+           ONLY:  f, forcing, fs, message_string
            
        USE indices,                                                            &
@@ -117,4 +120,7 @@
 
        REAL(wp)     ::  flag       !< flag to mask topography
+       REAL(wp)     ::  flag_force !< flag to mask large-scale pressure gradient in case larger-scale forcing is applied
+
+       flag_force = MERGE( 0.0_wp, 1.0_wp, forcing )
 !
 !--    Compute Coriolis terms for the three velocity components
@@ -128,5 +134,5 @@
                    DO  k = nzb+1, nzt
 !
-!--                    Predetermine flag to mask topography
+!--                   Predetermine flag to mask topography
                       flag = MERGE( 1.0_wp, 0.0_wp,                            &
                                     BTEST( wall_flags_0(k,j,i), 1 ) )
@@ -134,9 +140,10 @@
                       tend(k,j,i) = tend(k,j,i) + f  *    ( 0.25_wp *          &
                                    ( v(k,j,i-1) + v(k,j,i) + v(k,j+1,i-1) +    &
-                                     v(k,j+1,i) ) - vg(k)   ) * flag           &
+                                     v(k,j+1,i) ) - vg(k) * flag_force         &
+                                                          ) * flag           &
                                                 - fs *    ( 0.25_wp *          &
                                    ( w(k-1,j,i-1) + w(k-1,j,i) + w(k,j,i-1) +  &
                                      w(k,j,i)   )                              &
-                                                          )   * flag
+                                                          ) * flag
                    ENDDO
                 ENDDO
@@ -149,9 +156,13 @@
                 DO  j = nysv, nyn
                    DO  k = nzb+1, nzt
+!
+!--                   Predetermine flag to mask topography
+                      flag = MERGE( 1.0_wp, 0.0_wp,                            &
+                                    BTEST( wall_flags_0(k,j,i), 2 ) )
+
                       tend(k,j,i) = tend(k,j,i) - f *     ( 0.25_wp *          &
                                    ( u(k,j-1,i) + u(k,j,i) + u(k,j-1,i+1) +    &
-                                     u(k,j,i+1) ) - ug(k) ) *                  &
-                                      MERGE( 1.0_wp, 0.0_wp,                   &
-                                             BTEST( wall_flags_0(k,j,i), 2 ) )
+                                     u(k,j,i+1) ) - ug(k) * flag_force         &
+                                                          ) * flag
                    ENDDO
                 ENDDO
@@ -164,9 +175,12 @@
                 DO  j = nys, nyn
                    DO  k = nzb+1, nzt
+!
+!--                   Predetermine flag to mask topography
+                      flag = MERGE( 1.0_wp, 0.0_wp,                            &
+                                    BTEST( wall_flags_0(k,j,i), 3 ) )
+
                       tend(k,j,i) = tend(k,j,i) + fs * 0.25_wp *               &
                                    ( u(k,j,i) + u(k+1,j,i) + u(k,j,i+1) +      &
-                                     u(k+1,j,i+1) ) *                          &
-                                      MERGE( 1.0_wp, 0.0_wp,                   &
-                                             BTEST( wall_flags_0(k,j,i), 3 ) )
+                                     u(k+1,j,i+1) ) * flag
                    ENDDO
                 ENDDO
@@ -194,5 +208,5 @@
            
        USE control_parameters,                                                 &
-           ONLY:  f, fs, message_string
+           ONLY:  f, forcing, fs, message_string
            
        USE indices,                                                            &
@@ -209,5 +223,7 @@
 
        REAL(wp)     ::  flag       !< flag to mask topography
-
+       REAL(wp)     ::  flag_force !< flag to mask large-scale pressure gradient in case larger-scale forcing is applied
+
+       flag_force = MERGE( 0.0_wp, 1.0_wp, forcing )
 !
 !--    Compute Coriolis terms for the three velocity components
@@ -224,8 +240,9 @@
                 tend(k,j,i) = tend(k,j,i) + f  *     ( 0.25_wp *               &
                                 ( v(k,j,i-1) + v(k,j,i) + v(k,j+1,i-1) +       &
-                                  v(k,j+1,i) ) - vg(k) ) * flag                &
-                                          - fs *    ( 0.25_wp *                &
+                                  v(k,j+1,i) ) - vg(k) * flag_force            &
+                                                     ) * flag                  &
+                                          - fs *     ( 0.25_wp *               &
                                 ( w(k-1,j,i-1) + w(k-1,j,i) + w(k,j,i-1) +     &
-                                  w(k,j,i)   )      ) * flag
+                                  w(k,j,i)   )       ) * flag
              ENDDO
 
@@ -234,9 +251,12 @@
           CASE ( 2 )
              DO  k = nzb+1, nzt
+!
+!--             Predetermine flag to mask topography
+                flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_0(k,j,i), 2 ) )
+
                 tend(k,j,i) = tend(k,j,i) - f *        ( 0.25_wp *             &
                                 ( u(k,j-1,i) + u(k,j,i) + u(k,j-1,i+1) +       &
-                                  u(k,j,i+1) ) - ug(k) ) *                     &
-                                      MERGE( 1.0_wp, 0.0_wp,                   &
-                                             BTEST( wall_flags_0(k,j,i), 2 ) )
+                                  u(k,j,i+1) ) - ug(k)   * flag_force          &
+                                                       ) * flag
              ENDDO
 
@@ -245,9 +265,11 @@
           CASE ( 3 )
              DO  k = nzb+1, nzt
+!
+!--             Predetermine flag to mask topography
+                flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_0(k,j,i), 3 ) )
+
                 tend(k,j,i) = tend(k,j,i) + fs * 0.25_wp *                     &
                                 ( u(k,j,i) + u(k+1,j,i) + u(k,j,i+1) +         &
-                                  u(k+1,j,i+1) ) *                             &
-                                      MERGE( 1.0_wp, 0.0_wp,                   &
-                                             BTEST( wall_flags_0(k,j,i), 3 ) )
+                                  u(k+1,j,i+1) ) * flag
              ENDDO
 
Index: palm/trunk/SOURCE/cpulog_mod.f90
===================================================================
--- palm/trunk/SOURCE/cpulog_mod.f90	(revision 2693)
+++ palm/trunk/SOURCE/cpulog_mod.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file cpulog_mod.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/data_log.f90
===================================================================
--- palm/trunk/SOURCE/data_log.f90	(revision 2693)
+++ palm/trunk/SOURCE/data_log.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file data_log.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/data_output_2d.f90
===================================================================
--- palm/trunk/SOURCE/data_output_2d.f90	(revision 2693)
+++ palm/trunk/SOURCE/data_output_2d.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file data_output_2d.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
@@ -25,4 +25,10 @@
 ! -----------------
 ! $Id$
+! Implementation of uv exposure model (FK)
+! Implementation of turbulence_closure_mod (TG)
+! Set fill values at topography grid points or e.g. non-natural-type surface
+! in case of LSM output (MS)
+! 
+! 2512 2017-10-04 08:26:59Z raasch
 ! upper bounds of cross section output changed from nx+1,ny+1 to nx,ny
 ! no output of ghost layer data
@@ -196,5 +202,5 @@
                ntdim_2d_xy, ntdim_2d_xz, ntdim_2d_yz,                          &
                psolver, section, simulated_time, simulated_time_chr,           &
-               time_since_reference_point
+               time_since_reference_point, uv_exposure
         
     USE cpulog,                                                                &
@@ -205,5 +211,5 @@
         
     USE indices,                                                               &
-        ONLY:  nbgp, nx, nxl, nxr, ny, nyn, nys, nz, nzb, nzt
+        ONLY:  nbgp, nx, nxl, nxr, ny, nyn, nys, nz, nzb, nzt, wall_flags_0
                
     USE kinds
@@ -217,7 +223,7 @@
 
     USE netcdf_interface,                                                      &
-        ONLY:  id_set_xy, id_set_xz, id_set_yz, id_var_do2d, id_var_time_xy,   &
-               id_var_time_xz, id_var_time_yz, nc_stat, netcdf_data_format,    &
-               netcdf_handle_error
+        ONLY:  fill_value, id_set_xy, id_set_xz, id_set_yz, id_var_do2d,       &
+               id_var_time_xy, id_var_time_xz, id_var_time_yz, nc_stat,        &
+               netcdf_data_format, netcdf_handle_error
 
     USE particle_attributes,                                                   &
@@ -232,4 +238,11 @@
     USE surface_mod,                                                           &
         ONLY:  surf_def_h, surf_lsm_h, surf_usm_h
+
+    USE turbulence_closure_mod,                                                &
+        ONLY:  tcm_data_output_2d
+
+    USE uv_exposure_model_mod,                                                 &
+        ONLY:  uvem_data_output_2d
+
 
     IMPLICIT NONE
@@ -244,4 +257,5 @@
     INTEGER(iwp) ::  ngp       !< 
     INTEGER(iwp) ::  file_id   !< 
+    INTEGER(iwp) ::  flag_nr   !< number of masking flag
     INTEGER(iwp) ::  i         !< 
     INTEGER(iwp) ::  if        !< 
@@ -457,8 +471,14 @@
           nzt_do = nzt+1
 !
+!--       Before each output, set array local_pf to fill value
+          local_pf = fill_value
+!
+!--       Set masking flag for topography for not resorted arrays
+          flag_nr = 0
+          
+!
 !--       Store the array chosen on the temporary array.
           resorted = .FALSE.
           SELECT CASE ( TRIM( do2d(av,if) ) )
-
              CASE ( 'e_xy', 'e_xz', 'e_yz' )
                 IF ( av == 0 )  THEN
@@ -928,4 +948,5 @@
 
              CASE ( 'u_xy', 'u_xz', 'u_yz' )
+                flag_nr = 1
                 IF ( av == 0 )  THEN
                    to_be_resorted => u
@@ -970,4 +991,5 @@
 
              CASE ( 'v_xy', 'v_xz', 'v_yz' )
+                flag_nr = 2
                 IF ( av == 0 )  THEN
                    to_be_resorted => v
@@ -992,4 +1014,5 @@
 
              CASE ( 'w_xy', 'w_xz', 'w_yz' )
+                flag_nr = 3
                 IF ( av == 0 )  THEN
                    to_be_resorted => w
@@ -1093,8 +1116,22 @@
 
 !
+!--             Turbulence closure variables
+                IF ( .NOT. found )  THEN
+                   CALL tcm_data_output_2d( av, do2d(av,if), found, grid, mode,&
+                                             local_pf, two_d, nzb_do, nzt_do )
+                ENDIF
+
+!
 !--             Radiation quantity
                 IF ( .NOT. found  .AND.  radiation )  THEN
                    CALL radiation_data_output_2d( av, do2d(av,if), found, grid,&
                                                   mode, local_pf, two_d  )
+                ENDIF
+
+!
+!--             UV exposure model quantity
+                IF ( uv_exposure )  THEN
+                   CALL uvem_data_output_2d( av, do2d(av,if), found, grid, mode,&
+                                             local_pf, two_d, nzb_do, nzt_do )
                 ENDIF
 
@@ -1127,10 +1164,14 @@
 
 !
-!--       Resort the array to be output, if not done above
+!--       Resort the array to be output, if not done above. Flag topography 
+!--       grid points with fill values, using the corresponding maksing flag.
           IF ( .NOT. resorted )  THEN
              DO  i = nxl, nxr
                 DO  j = nys, nyn
                    DO  k = nzb_do, nzt_do
-                      local_pf(i,j,k) = to_be_resorted(k,j,i)
+                      local_pf(i,j,k) = MERGE( to_be_resorted(k,j,i),          &
+                                               REAL( fill_value, KIND = wp ),  &
+                                               BTEST( wall_flags_0(k,j,i),     &
+                                                      flag_nr ) ) 
                    ENDDO
                 ENDDO
Index: palm/trunk/SOURCE/data_output_3d.f90
===================================================================
--- palm/trunk/SOURCE/data_output_3d.f90	(revision 2693)
+++ palm/trunk/SOURCE/data_output_3d.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file data_output_3d.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
@@ -25,4 +25,10 @@
 ! -----------------
 ! $Id$
+! Implementation of turbulence_closure_mod (TG)
+! Implementation of chemistry module (FK)
+! Set fill values at topography grid points or e.g. non-natural-type surface
+! in case of LSM output (MS)
+! 
+! 2512 2017-10-04 08:26:59Z raasch
 ! upper bounds of 3d output changed from nx+1,ny+1 to nx,ny
 ! no output of ghost layer data
@@ -169,10 +175,16 @@
     USE averaging
         
+#if defined( __chem )
+    USE chemistry_model_mod,                                                   &
+        ONLY:  chem_data_output_3d
+#endif        
+
     USE cloud_parameters,                                                      &
         ONLY:  l_d_cp, pt_d_t
         
     USE control_parameters,                                                    &
-        ONLY:  cloud_physics, do3d, do3d_no, do3d_time_count, io_blocks,       &
-               io_group, land_surface, message_string, ntdim_3d, nz_do3d,      &
+        ONLY:  air_chemistry, cloud_physics, do3d, do3d_no, do3d_time_count,   &
+               io_blocks, io_group, land_surface, message_string,              &
+               ntdim_3d, nz_do3d,                                              &
                psolver, simulated_time, time_since_reference_point,            &
                urban_surface, varnamelength
@@ -182,5 +194,5 @@
         
     USE indices,                                                               &
-        ONLY:  nbgp, nx, nxl, nxr, ny, nyn, nys, nzb
+        ONLY:  nbgp, nx, nxl, nxr, ny, nyn, nys, nzb, wall_flags_0
         
     USE kinds
@@ -194,5 +206,5 @@
 
     USE netcdf_interface,                                                      &
-        ONLY:  id_set_3d, id_var_do3d, id_var_time_3d, nc_stat,                &
+        ONLY:  fill_value, id_set_3d, id_var_do3d, id_var_time_3d, nc_stat,    &
                netcdf_data_format, netcdf_handle_error
         
@@ -207,8 +219,11 @@
         
     USE radiation_model_mod,                                                   &
-        ONLY:  radiation, radiation_data_output_3d
+        ONLY:  nzub, nzut, radiation, radiation_data_output_3d
+
+    USE turbulence_closure_mod,                                                &
+        ONLY:  tcm_data_output_3d
 
     USE urban_surface_mod,                                                     &
-        ONLY:  nzub, nzut, usm_data_output_3d
+        ONLY:  usm_data_output_3d
 
 
@@ -216,4 +231,5 @@
 
     INTEGER(iwp) ::  av        !< 
+    INTEGER(iwp) ::  flag_nr   !< number of masking flag
     INTEGER(iwp) ::  i         !< 
     INTEGER(iwp) ::  if        !< 
@@ -315,4 +331,10 @@
 !--    Allocate a temporary array with the desired output dimensions.
        ALLOCATE( local_pf(nxl:nxr,nys:nyn,nzb_do:nzt_do) )
+!
+!--    Before each output, set array local_pf to fill value
+       local_pf = fill_value
+!
+!--    Set masking flag for topography for not resorted arrays
+       flag_nr = 0
 
        SELECT CASE ( trimvar )
@@ -569,4 +591,5 @@
 
           CASE ( 'u' )
+             flag_nr = 1
              IF ( av == 0 )  THEN
                 to_be_resorted => u
@@ -576,4 +599,5 @@
 
           CASE ( 'v' )
+             flag_nr = 2
              IF ( av == 0 )  THEN
                 to_be_resorted => v
@@ -590,4 +614,5 @@
 
           CASE ( 'w' )
+             flag_nr = 3
              IF ( av == 0 )  THEN
                 to_be_resorted => w
@@ -613,4 +638,5 @@
                 DEALLOCATE ( local_pf )
                 ALLOCATE( local_pf(nxl:nxr,nys:nyn,nzb_do:nzt_do) )
+                local_pf = fill_value
 
                 CALL lsm_data_output_3d( av, do3d(av,if), found, local_pf )
@@ -629,4 +655,9 @@
              ENDIF
 
+             IF ( .NOT. found )  THEN
+                CALL tcm_data_output_3d( av, do3d(av,if), found, local_pf )
+                resorted = .TRUE.
+             ENDIF
+
 !
 !--          Radiation quantity
@@ -638,8 +669,18 @@
 
 !
+!--          Chemistry model output
+#if defined( __chem )
+             IF ( .NOT. found  .AND.  air_chemistry )  THEN
+                CALL chem_data_output_3d( av, do3d(av,if), found,              &
+                                          local_pf )
+                resorted = .TRUE.
+             ENDIF
+#endif
+
+!
 !--          Plant canopy model output
              IF ( .NOT. found  .AND.  plant_canopy )  THEN
-                CALL pcm_data_output_3d( av, do3d(av,if), found,         &
-                                               local_pf )
+                CALL pcm_data_output_3d( av, do3d(av,if), found, local_pf,     &
+                                         fill_value )
                 resorted = .TRUE.
              ENDIF
@@ -667,5 +708,8 @@
              DO  j = nys, nyn
                 DO  k = nzb_do, nzt_do
-                   local_pf(i,j,k) = to_be_resorted(k,j,i)
+                   local_pf(i,j,k) = MERGE(                                    &
+                                      to_be_resorted(k,j,i),                   &
+                                      REAL( fill_value, KIND = wp ),           &
+                                      BTEST( wall_flags_0(k,j,i), flag_nr ) )
                 ENDDO
              ENDDO
Index: palm/trunk/SOURCE/data_output_dvrp.f90
===================================================================
--- palm/trunk/SOURCE/data_output_dvrp.f90	(revision 2693)
+++ palm/trunk/SOURCE/data_output_dvrp.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file data_output_dvrp.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/data_output_flight.f90
===================================================================
--- palm/trunk/SOURCE/data_output_flight.f90	(revision 2693)
+++ palm/trunk/SOURCE/data_output_flight.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file data_output_flight.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/data_output_mask.f90
===================================================================
--- palm/trunk/SOURCE/data_output_mask.f90	(revision 2693)
+++ palm/trunk/SOURCE/data_output_mask.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file data_output_mask.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
@@ -25,4 +25,7 @@
 ! -----------------
 ! $Id$
+! 
+! 
+! 2292 2017-06-20 09:51:42Z schwenkel
 ! Implementation of new microphysic scheme: cloud_scheme = 'morrison' 
 ! includes two more prognostic equations for cloud drop concentration (nc)  
Index: palm/trunk/SOURCE/data_output_profiles.f90
===================================================================
--- palm/trunk/SOURCE/data_output_profiles.f90	(revision 2693)
+++ palm/trunk/SOURCE/data_output_profiles.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file data_output_profiles.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/data_output_ptseries.f90
===================================================================
--- palm/trunk/SOURCE/data_output_ptseries.f90	(revision 2693)
+++ palm/trunk/SOURCE/data_output_ptseries.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file data_output_ptseries.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/data_output_spectra.f90
===================================================================
--- palm/trunk/SOURCE/data_output_spectra.f90	(revision 2693)
+++ palm/trunk/SOURCE/data_output_spectra.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file data_output_spectra.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/data_output_tseries.f90
===================================================================
--- palm/trunk/SOURCE/data_output_tseries.f90	(revision 2693)
+++ palm/trunk/SOURCE/data_output_tseries.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file data_output_tseries.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/date_and_time_mod.f90
===================================================================
--- palm/trunk/SOURCE/date_and_time_mod.f90	(revision 2693)
+++ palm/trunk/SOURCE/date_and_time_mod.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file date_and_time_mod.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/diagnostic_quantities_mod.f90
===================================================================
--- palm/trunk/SOURCE/diagnostic_quantities_mod.f90	(revision 2693)
+++ palm/trunk/SOURCE/diagnostic_quantities_mod.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file diagnostic_quantities_mod.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/diffusion_e.f90
===================================================================
--- palm/trunk/SOURCE/diffusion_e.f90	(revision 2693)
+++ 	(revision )
@@ -1,506 +1,0 @@
-!> @file diffusion_e.f90
-!------------------------------------------------------------------------------!
-! This file is part of PALM.
-!
-! PALM is free software: you can redistribute it and/or modify it under the
-! terms of the GNU General Public License as published by the Free Software
-! Foundation, either version 3 of the License, or (at your option) any later
-! version.
-!
-! PALM is distributed in the hope that it will be useful, but WITHOUT ANY
-! WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
-! A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
-!
-! You should have received a copy of the GNU General Public License along with
-! PALM. If not, see <http://www.gnu.org/licenses/>.
-!
-! Copyright 1997-2017 Leibniz Universitaet Hannover
-!------------------------------------------------------------------------------!
-!
-! Current revisions:
-! -----------------
-! 
-! 
-! Former revisions:
-! -----------------
-! $Id$
-!
-! 2232 2017-05-30 17:47:52Z suehring
-! Adjustments to new topography and surface concept
-! 
-! 2118 2017-01-17 16:38:49Z raasch
-! OpenACC version of subroutine removed
-! 
-! 2037 2016-10-26 11:15:40Z knoop
-! Anelastic approximation implemented
-! 
-! 2000 2016-08-20 18:09:15Z knoop
-! Forced header and separation lines into 80 columns
-! 
-! 1873 2016-04-18 14:50:06Z maronga
-! Module renamed (removed _mod)
-! 
-! 1850 2016-04-08 13:29:27Z maronga
-! Module renamed
-! Adapted for modularization of microphysics
-! 
-! 1831 2016-04-07 13:15:51Z hoffmann 
-! turbulence renamed collision_turbulence
-!
-! 1682 2015-10-07 23:56:08Z knoop
-! Code annotations made doxygen readable 
-! 
-! 1374 2014-04-25 12:55:07Z raasch
-! missing variables added to ONLY list
-! rif removed from acc-present-list
-! 
-! 1340 2014-03-25 19:45:13Z kanani
-! REAL constants defined as wp-kind
-!
-! 1320 2014-03-20 08:40:49Z raasch
-! ONLY-attribute added to USE-statements,
-! kind-parameters added to all INTEGER and REAL declaration statements,
-! kinds are defined in new module kinds,
-! revision history before 2012 removed,
-! comment fields (!:) to be used for variable explanations added to
-! all variable declaration statements
-!
-! 1257 2013-11-08 15:18:40Z raasch
-! openacc loop and loop vector clauses removed
-!
-! 1179 2013-06-14 05:57:58Z raasch
-! use_reference renamed use_single_reference_value
-!
-! 1171 2013-05-30 11:27:45Z raasch
-! use_reference-case activated in accelerator version
-!
-! 1128 2013-04-12 06:19:32Z raasch
-! loop index bounds in accelerator version replaced by i_left, i_right, j_south,
-! j_north
-!
-! 1065 2012-11-22 17:42:36Z hoffmann
-! Enabled the claculation of diss in case of turbulence = .TRUE. (parameterized 
-! effects of turbulence on autoconversion and accretion in two-moments cloud 
-! physics scheme). 
-!
-! 1036 2012-10-22 13:43:42Z raasch
-! code put under GPL (PALM 3.9)
-!
-! 1015 2012-09-27 09:23:24Z raasch
-! accelerator version (*_acc) added,
-! adjustment of mixing length to the Prandtl mixing length at first grid point
-! above ground removed
-!
-! 1010 2012-09-20 07:59:54Z raasch
-! cpp switch __nopointer added for pointer free version
-!
-! 1001 2012-09-13 14:08:46Z raasch
-! most arrays comunicated by module instead of parameter list
-!
-! 825 2012-02-19 03:03:44Z raasch
-! wang_collision_kernel renamed wang_kernel
-!
-! Revision 1.1  1997/09/19 07:40:24  raasch
-! Initial revision
-!
-!
-! Description:
-! ------------
-!> Diffusion- and dissipation terms for the TKE
-!------------------------------------------------------------------------------!
- MODULE diffusion_e_mod
- 
-
-    PRIVATE
-    PUBLIC diffusion_e
-    
-
-    INTERFACE diffusion_e
-       MODULE PROCEDURE diffusion_e
-       MODULE PROCEDURE diffusion_e_ij
-    END INTERFACE diffusion_e
- 
- CONTAINS
-
-
-!------------------------------------------------------------------------------!
-! Description:
-! ------------
-!> Call for all grid points
-!------------------------------------------------------------------------------!
-    SUBROUTINE diffusion_e( var, var_reference )
-
-       USE arrays_3d,                                                          &
-           ONLY:  dd2zu, ddzu, ddzw, diss, e, km, l_grid, l_wall, tend, zu, zw,&
-                  drho_air, rho_air_zw
-           
-       USE control_parameters,                                                 &
-           ONLY:  atmos_ocean_sign, g, use_single_reference_value, &
-                  wall_adjustment, wall_adjustment_factor
-
-       USE grid_variables,                                                     &
-           ONLY:  ddx2, ddy2
-           
-       USE indices,                                                            &
-           ONLY:  nxl, nxlg, nxr, nxrg, nyn, nyng, nys, nysg, nzb, nzb_max,    &
-                  nzt, wall_flags_0
-           
-       USE kinds
-
-       USE microphysics_mod,                                                   &
-           ONLY:  collision_turbulence
-
-       USE particle_attributes,                                                &
-           ONLY:  use_sgs_for_particles, wang_kernel
-
-       USE surface_mod,                                                        &
-          ONLY :  bc_h
-
-       IMPLICIT NONE
-
-       INTEGER(iwp) ::  i              !< running index x direction
-       INTEGER(iwp) ::  j              !< running index y direction
-       INTEGER(iwp) ::  k              !< running index z direction
-       INTEGER(iwp) ::  m              !< running index surface elements
- 
-       REAL(wp)     ::  dvar_dz        !< 
-       REAL(wp)     ::  flag           !< flag to mask topography
-       REAL(wp)     ::  l_stable       !< 
-       REAL(wp)     ::  var_reference  !< 
-
-#if defined( __nopointer )
-       REAL(wp), DIMENSION(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ::  var  !< 
-#else
-       REAL(wp), DIMENSION(:,:,:), POINTER ::  var  !< 
-#endif
-       REAL(wp), DIMENSION(nzb+1:nzt,nys:nyn) ::  dissipation  !<
-       REAL(wp), DIMENSION(nzb+1:nzt,nys:nyn) ::  l            !<
-       REAL(wp), DIMENSION(nzb+1:nzt,nys:nyn) ::  ll           !< 
- 
-
-!
-!--    This if clause must be outside the k-loop because otherwise
-!--    runtime errors occur with -C hopt on NEC
-       IF ( use_single_reference_value )  THEN
-
-          DO  i = nxl, nxr
-             DO  j = nys, nyn
-                DO  k = nzb+1, nzt
-!
-!--                Calculate the mixing length (for dissipation)
-                   dvar_dz = atmos_ocean_sign * &
-                             ( var(k+1,j,i) - var(k-1,j,i) ) * dd2zu(k)
-                   IF ( dvar_dz > 0.0_wp ) THEN
-                      l_stable = 0.76_wp * SQRT( e(k,j,i) ) / &
-                                    SQRT( g / var_reference * dvar_dz ) + 1E-5_wp
-                   ELSE
-                      l_stable = l_grid(k)
-                   ENDIF
-!
-!--                Adjustment of the mixing length
-                   IF ( wall_adjustment )  THEN
-                      l(k,j)  = MIN( wall_adjustment_factor * l_wall(k,j,i),   &
-                                     l_grid(k), l_stable )
-                      ll(k,j) = MIN( wall_adjustment_factor * l_wall(k,j,i),   &
-                                     l_grid(k) )
-                   ELSE
-                      l(k,j)  = MIN( l_grid(k), l_stable )
-                      ll(k,j) = l_grid(k)
-                   ENDIF
-
-                ENDDO
-             ENDDO
-
-!
-!--          Calculate the tendency terms
-             DO  j = nys, nyn
-                DO  k = nzb+1, nzt
-!
-!--                Predetermine flag to mask topography
-                   flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_0(k,j,i), 0 ) )
-
-                   dissipation(k,j) = ( 0.19_wp + 0.74_wp * l(k,j) / ll(k,j) ) * &
-                                       e(k,j,i) * SQRT( e(k,j,i) ) / l(k,j)
-
-                   tend(k,j,i) = tend(k,j,i)                                   &
-                                        + (                                    &
-                          ( km(k,j,i)+km(k,j,i+1) ) * ( e(k,j,i+1)-e(k,j,i) )  &
-                        - ( km(k,j,i)+km(k,j,i-1) ) * ( e(k,j,i)-e(k,j,i-1) )  &
-                                          ) * ddx2  * flag                     &
-                                        + (                                    &
-                          ( km(k,j,i)+km(k,j+1,i) ) * ( e(k,j+1,i)-e(k,j,i) )  &
-                        - ( km(k,j,i)+km(k,j-1,i) ) * ( e(k,j,i)-e(k,j-1,i) )  &
-                                          ) * ddy2  * flag                     &
-                                        + (                                    &
-               ( km(k,j,i)+km(k+1,j,i) ) * ( e(k+1,j,i)-e(k,j,i) ) * ddzu(k+1) &
-                                                             * rho_air_zw(k)   &
-             - ( km(k,j,i)+km(k-1,j,i) ) * ( e(k,j,i)-e(k-1,j,i) ) * ddzu(k)   &
-                                                             * rho_air_zw(k-1) &
-                                          ) * ddzw(k) * drho_air(k) * flag     &
-                             - dissipation(k,j) * flag
-
-                ENDDO
-             ENDDO
-
-!
-!--          Store dissipation if needed for calculating the sgs particle
-!--          velocities
-             IF ( use_sgs_for_particles  .OR.  wang_kernel  .OR.               &
-                  collision_turbulence )  THEN
-                DO  j = nys, nyn
-                   DO  k = nzb+1, nzt
-                      diss(k,j,i) = dissipation(k,j) *                         &
-                                        MERGE( 1.0_wp, 0.0_wp,                 &
-                                               BTEST( wall_flags_0(k,j,i), 0 ) )
-                   ENDDO
-                ENDDO
-             ENDIF
-
-          ENDDO
-
-       ELSE
-
-          DO  i = nxl, nxr
-             DO  j = nys, nyn
-                DO  k = nzb+1, nzt
-!
-!--                Calculate the mixing length (for dissipation)
-                   dvar_dz = atmos_ocean_sign * &
-                             ( var(k+1,j,i) - var(k-1,j,i) ) * dd2zu(k)
-                   IF ( dvar_dz > 0.0_wp ) THEN
-                      l_stable = 0.76_wp * SQRT( e(k,j,i) ) / &
-                                           SQRT( g / var(k,j,i) * dvar_dz ) + 1E-5_wp
-                   ELSE
-                      l_stable = l_grid(k)
-                   ENDIF
-!
-!--                Adjustment of the mixing length
-                   IF ( wall_adjustment )  THEN
-                      l(k,j)  = MIN( wall_adjustment_factor * l_wall(k,j,i),   &
-                                     l_grid(k), l_stable )
-                      ll(k,j) = MIN( wall_adjustment_factor * l_wall(k,j,i),   &
-                                     l_grid(k) )
-                   ELSE
-                      l(k,j)  = MIN( l_grid(k), l_stable )
-                      ll(k,j) = l_grid(k)
-                   ENDIF
-
-                ENDDO
-             ENDDO
-
-!
-!--          Calculate the tendency terms
-             DO  j = nys, nyn
-                DO  k = nzb+1, nzt
-!
-!--                Predetermine flag to mask topography
-                   flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_0(k,j,i), 0 ) )
-
-                   dissipation(k,j) = ( 0.19_wp + 0.74_wp * l(k,j) / ll(k,j) )   *&
-                                             e(k,j,i) * SQRT( e(k,j,i) ) / l(k,j)
-
-                   tend(k,j,i) = tend(k,j,i)                                   &
-                                        + (                                    &
-                          ( km(k,j,i)+km(k,j,i+1) ) * ( e(k,j,i+1)-e(k,j,i) )  &
-                        - ( km(k,j,i)+km(k,j,i-1) ) * ( e(k,j,i)-e(k,j,i-1) )  &
-                                          ) * ddx2  * flag                     &
-                                        + (                                    &
-                          ( km(k,j,i)+km(k,j+1,i) ) * ( e(k,j+1,i)-e(k,j,i) )  &
-                        - ( km(k,j,i)+km(k,j-1,i) ) * ( e(k,j,i)-e(k,j-1,i) )  &
-                                          ) * ddy2  * flag                     &
-                                        + (                                    &
-               ( km(k,j,i)+km(k+1,j,i) ) * ( e(k+1,j,i)-e(k,j,i) ) * ddzu(k+1) &
-                                                             * rho_air_zw(k)   &
-             - ( km(k,j,i)+km(k-1,j,i) ) * ( e(k,j,i)-e(k-1,j,i) ) * ddzu(k)   &
-                                                             * rho_air_zw(k-1) &
-                                          ) * ddzw(k) * drho_air(k) * flag     &
-                             - dissipation(k,j) * flag
-
-                ENDDO
-             ENDDO
-
-!
-!--          Store dissipation if needed for calculating the sgs particle
-!--          velocities
-             IF ( use_sgs_for_particles  .OR.  wang_kernel  .OR.               &
-                  collision_turbulence )  THEN
-                DO  j = nys, nyn
-                   DO  k = nzb+1, nzt
-                      diss(k,j,i) = dissipation(k,j) *                         &
-                                        MERGE( 1.0_wp, 0.0_wp,                 &
-                                               BTEST( wall_flags_0(k,j,i), 0 ) )
-                   ENDDO
-                ENDDO
-             ENDIF
-
-          ENDDO
-
-       ENDIF
-
-!
-!--    Neumann boundary condition for dissipation diss(nzb,:,:) = diss(nzb+1,:,:)
-       IF ( use_sgs_for_particles  .OR.  wang_kernel  .OR.  &
-            collision_turbulence )  THEN
-!
-!--       Upward facing surfaces
-          DO  m = 1, bc_h(0)%ns
-             i = bc_h(0)%i(m)            
-             j = bc_h(0)%j(m)
-             k = bc_h(0)%k(m)
-             diss(k-1,j,i) = diss(k,j,i)
-          ENDDO
-!
-!--       Downward facing surfaces
-          DO  m = 1, bc_h(1)%ns
-             i = bc_h(1)%i(m)            
-             j = bc_h(1)%j(m)
-             k = bc_h(1)%k(m)
-             diss(k+1,j,i) = diss(k,j,i)
-          ENDDO
-
-       ENDIF
-
-    END SUBROUTINE diffusion_e
-
-
-!------------------------------------------------------------------------------!
-! Description:
-! ------------
-!> Call for grid point i,j
-!------------------------------------------------------------------------------!
-    SUBROUTINE diffusion_e_ij( i, j, var, var_reference )
-
-       USE arrays_3d,                                                          &
-           ONLY:  dd2zu, ddzu, ddzw, diss, e, km, l_grid, l_wall, tend, zu, zw,&
-                  drho_air, rho_air_zw
-          
-       USE control_parameters,                                                 &
-           ONLY:  atmos_ocean_sign, g, use_single_reference_value,             &
-                  wall_adjustment, wall_adjustment_factor
-
-       USE grid_variables,                                                     &
-           ONLY:  ddx2, ddy2
-           
-       USE indices,                                                            &
-           ONLY:  nxlg, nxrg, nyng, nysg, nzb, nzb_max, nzt, wall_flags_0
-           
-       USE kinds
-
-       USE microphysics_mod,                                                   &
-           ONLY:  collision_turbulence
-
-       USE particle_attributes,                                                &
-           ONLY:  use_sgs_for_particles, wang_kernel
-
-       USE surface_mod,                                                        &
-          ONLY :  bc_h
-
-       IMPLICIT NONE
-
-       INTEGER(iwp) ::  i              !< running index x direction
-       INTEGER(iwp) ::  j              !< running index y direction
-       INTEGER(iwp) ::  k              !< running index z direction
-       INTEGER(iwp) ::  m              !< running index surface elements
-       INTEGER(iwp) ::  surf_e         !< End index of surface elements at (j,i)-gridpoint
-       INTEGER(iwp) ::  surf_s         !< Start index of surface elements at (j,i)-gridpoint
-
-       REAL(wp)     ::  dvar_dz        !< 
-       REAL(wp)     ::  flag           !< flag to mask topography
-       REAL(wp)     ::  l_stable       !<
-       REAL(wp)     ::  var_reference  !<
-
-#if defined( __nopointer )
-       REAL(wp), DIMENSION(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ::  var  !<
-#else
-       REAL(wp), DIMENSION(:,:,:), POINTER ::  var     !<
-#endif
-       REAL(wp), DIMENSION(nzb+1:nzt) ::  dissipation  !<
-       REAL(wp), DIMENSION(nzb+1:nzt) ::  l            !<
-       REAL(wp), DIMENSION(nzb+1:nzt) ::  ll           !<
-
-!
-!--    Calculate the mixing length (for dissipation)
-       DO  k = nzb+1, nzt
-!
-!--       Predetermine flag to mask topography
-          flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_0(k,j,i), 0 ) )
-
-          dvar_dz = atmos_ocean_sign * &
-                    ( var(k+1,j,i) - var(k-1,j,i) ) * dd2zu(k)
-          IF ( dvar_dz > 0.0_wp ) THEN
-             IF ( use_single_reference_value )  THEN
-                l_stable = 0.76_wp * SQRT( e(k,j,i) ) / &
-                                     SQRT( g / var_reference * dvar_dz ) + 1E-5_wp
-             ELSE
-                l_stable = 0.76_wp * SQRT( e(k,j,i) ) / &
-                                     SQRT( g / var(k,j,i) * dvar_dz ) + 1E-5_wp
-             ENDIF
-          ELSE
-             l_stable = l_grid(k)
-          ENDIF
-!
-!--       Adjustment of the mixing length
-          IF ( wall_adjustment )  THEN
-             l(k)  = MIN( wall_adjustment_factor * l_wall(k,j,i),              &
-                          l_grid(k), l_stable )
-             ll(k) = MIN( wall_adjustment_factor * l_wall(k,j,i), l_grid(k) )
-          ELSE
-             l(k)  = MIN( l_grid(k), l_stable )
-             ll(k) = l_grid(k)
-          ENDIF
-!
-!--       Calculate the tendency term
-          dissipation(k) = ( 0.19_wp + 0.74_wp * l(k) / ll(k) ) * e(k,j,i) *   &
-                                 SQRT( e(k,j,i) ) / l(k)
-
-          tend(k,j,i) = tend(k,j,i)                                            &
-                                       + (                                     &
-                         ( km(k,j,i)+km(k,j,i+1) ) * ( e(k,j,i+1)-e(k,j,i) )   &
-                       - ( km(k,j,i)+km(k,j,i-1) ) * ( e(k,j,i)-e(k,j,i-1) )   &
-                                         ) * ddx2  * flag                      &
-                                       + (                                     &
-                         ( km(k,j,i)+km(k,j+1,i) ) * ( e(k,j+1,i)-e(k,j,i) )   &
-                       - ( km(k,j,i)+km(k,j-1,i) ) * ( e(k,j,i)-e(k,j-1,i) )   &
-                                         ) * ddy2  * flag                      &
-                                       + (                                     &
-              ( km(k,j,i)+km(k+1,j,i) ) * ( e(k+1,j,i)-e(k,j,i) ) * ddzu(k+1)  &
-                                                            * rho_air_zw(k)    &
-            - ( km(k,j,i)+km(k-1,j,i) ) * ( e(k,j,i)-e(k-1,j,i) ) * ddzu(k)    &
-                                                            * rho_air_zw(k-1)  &
-                                         ) * ddzw(k) * drho_air(k) * flag      &
-                                       - dissipation(k) * flag
-
-       ENDDO
-
-!
-!--    Store dissipation if needed for calculating the sgs particle velocities
-       IF ( use_sgs_for_particles  .OR.  wang_kernel  .OR.                     &
-            collision_turbulence )  THEN
-          DO  k = nzb+1, nzt
-             diss(k,j,i) = dissipation(k) *                                    &
-                                        MERGE( 1.0_wp, 0.0_wp,                 &
-                                               BTEST( wall_flags_0(k,j,i), 0 ) )
-          ENDDO
-!
-!--       Neumann boundary condition for dissipation diss(nzb,:,:) = diss(nzb+1,:,:)
-!--       For each surface type determine start and end index (in case of elevated
-!--       toopography several up/downward facing surfaces may exist.
-          surf_s = bc_h(0)%start_index(j,i)   
-          surf_e = bc_h(0)%end_index(j,i)   
-          DO  m = surf_s, surf_e
-             k             = bc_h(0)%k(m)
-             diss(k-1,j,i) = diss(k,j,i)
-          ENDDO
-!
-!--       Downward facing surfaces
-          surf_s = bc_h(1)%start_index(j,i)   
-          surf_e = bc_h(1)%end_index(j,i)   
-          DO  m = surf_s, surf_e
-             k             = bc_h(1)%k(m)
-             diss(k+1,j,i) = diss(k,j,i)
-          ENDDO
-       ENDIF
-
-    END SUBROUTINE diffusion_e_ij
-
- END MODULE diffusion_e_mod
Index: palm/trunk/SOURCE/diffusion_s.f90
===================================================================
--- palm/trunk/SOURCE/diffusion_s.f90	(revision 2693)
+++ palm/trunk/SOURCE/diffusion_s.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file diffusion_s.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/diffusion_u.f90
===================================================================
--- palm/trunk/SOURCE/diffusion_u.f90	(revision 2693)
+++ palm/trunk/SOURCE/diffusion_u.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file diffusion_u.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/diffusion_v.f90
===================================================================
--- palm/trunk/SOURCE/diffusion_v.f90	(revision 2693)
+++ palm/trunk/SOURCE/diffusion_v.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file diffusion_v.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/diffusion_w.f90
===================================================================
--- palm/trunk/SOURCE/diffusion_w.f90	(revision 2693)
+++ palm/trunk/SOURCE/diffusion_w.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file diffusion_w.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/diffusivities.f90
===================================================================
--- palm/trunk/SOURCE/diffusivities.f90	(revision 2693)
+++ 	(revision )
@@ -1,278 +1,0 @@
-!> @file diffusivities.f90
-!------------------------------------------------------------------------------!
-! This file is part of PALM.
-!
-! PALM is free software: you can redistribute it and/or modify it under the
-! terms of the GNU General Public License as published by the Free Software
-! Foundation, either version 3 of the License, or (at your option) any later
-! version.
-!
-! PALM is distributed in the hope that it will be useful, but WITHOUT ANY
-! WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
-! A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
-!
-! You should have received a copy of the GNU General Public License along with
-! PALM. If not, see <http://www.gnu.org/licenses/>.
-!
-! Copyright 1997-2017 Leibniz Universitaet Hannover
-!------------------------------------------------------------------------------!
-!
-! Current revisions:
-! -----------------
-! 
-! 
-! Former revisions:
-! -----------------
-! $Id$
-! Vertical grid nesting implemented (SadiqHuq)
-! 
-! 2233 2017-05-30 18:08:54Z suehring
-!
-! 2232 2017-05-30 17:47:52Z suehring
-! Adjustments to new topography and surface concept
-! 
-! 2118 2017-01-17 16:38:49Z raasch
-! OpenACC directives removed
-! 
-! 2031 2016-10-21 15:11:58Z knoop
-! renamed variable rho to rho_ocean
-! 
-! 2000 2016-08-20 18:09:15Z knoop
-! Forced header and separation lines into 80 columns
-!
-! 1711 2015-11-05 07:38:04Z raasch
-! bugfix: loop moved into IF block to avoid usage of l without being defined
-!
-! 1682 2015-10-07 23:56:08Z knoop
-! Code annotations made doxygen readable 
-! 
-! 1374 2014-04-25 12:55:07Z raasch
-! rif removed from acc-present-list
-! 
-! 1353 2014-04-08 15:21:23Z heinze
-! REAL constants provided with KIND-attribute 
-! 
-! 1340 2014-03-25 19:45:13Z kanani
-! REAL constants defined as wp-kind
-!
-! 1322 2014-03-20 16:38:49Z raasch
-! REAL constants defined as wp-kind
-!
-! 1320 2014-03-20 08:40:49Z raasch
-! ONLY-attribute added to USE-statements,
-! kind-parameters added to all INTEGER and REAL declaration statements, 
-! kinds are defined in new module kinds, 
-! revision history before 2012 removed,
-! comment fields (!:) to be used for variable explanations added to
-! all variable declaration statements 
-!
-! 1179 2013-06-14 05:57:58Z raasch
-! use_reference renamed use_single_reference_value
-!
-! 1036 2012-10-22 13:43:42Z raasch
-! code put under GPL (PALM 3.9)
-!
-! 1015 2012-09-27 09:23:24Z raasch
-! OpenACC statements added + code changes required for GPU optimization,
-! adjustment of mixing length to the Prandtl mixing length at first grid point
-! above ground removed
-!
-! Revision 1.1  1997/09/19 07:41:10  raasch
-! Initial revision
-!
-!
-! Description:
-! ------------
-!> Computation of the turbulent diffusion coefficients for momentum and heat 
-!> according to Prandtl-Kolmogorov
-!------------------------------------------------------------------------------!
- SUBROUTINE diffusivities( var, var_reference )
- 
-
-    USE arrays_3d,                                                             &
-        ONLY:  dd2zu, e, kh, km, l_grid, l_wall
-        
-    USE control_parameters,                                                    &
-        ONLY:  atmos_ocean_sign, e_min, g, outflow_l, outflow_n, outflow_r,    &
-               outflow_s, use_single_reference_value, wall_adjustment,         &
-               wall_adjustment_factor
-                
-    USE indices,                                                               &
-        ONLY:  nxl, nxlg, nxr, nxrg, nyn, nyng, nys, nysg, nzb, nzt,           &
-               wall_flags_0
-    USE kinds
-    
-    USE pegrid
-    
-    USE statistics,                                                            &
-        ONLY :  rmask, statistic_regions, sums_l_l
-
-    USE surface_mod,                                                           &
-        ONLY :  bc_h
-
-    USE vertical_nesting_mod,                                                  &
-        ONLY:  vnest_boundary_conds_khkm, vnest_init
-
-    IMPLICIT NONE
-
-    INTEGER(iwp) ::  i                   !<
-    INTEGER(iwp) ::  j                   !<
-    INTEGER(iwp) ::  k                   !<
-    INTEGER(iwp) ::  m                   !<
-    INTEGER(iwp) ::  omp_get_thread_num  !<
-    INTEGER(iwp) ::  sr                  !<
-    INTEGER(iwp) ::  tn                  !<
-
-    REAL(wp)     ::  dvar_dz             !<
-    REAL(wp)     ::  flag                !<
-    REAL(wp)     ::  l                   !<
-    REAL(wp)     ::  ll                  !<
-    REAL(wp)     ::  l_stable            !<
-    REAL(wp)     ::  sqrt_e              !<
-    REAL(wp)     ::  var_reference       !<
-
-    REAL(wp)     ::  var(nzb:nzt+1,nysg:nyng,nxlg:nxrg)  !<
-
-
-!
-!-- Default thread number in case of one thread
-    tn = 0
-
-!
-!-- Initialization for calculation of the mixing length profile
-    sums_l_l = 0.0_wp
-
-!
-!-- Compute the turbulent diffusion coefficient for momentum
-    !$OMP PARALLEL PRIVATE (dvar_dz,i,j,k,l,ll,l_stable,sqrt_e,sr,tn,flag)
-!$  tn = omp_get_thread_num()
-
-!
-!-- Introduce an optional minimum tke
-    IF ( e_min > 0.0_wp )  THEN
-       !$OMP DO
-       DO  i = nxlg, nxrg
-          DO  j = nysg, nyng
-             DO  k = nzb+1, nzt
-                e(k,j,i) = MAX( e(k,j,i), e_min ) *                            &
-                        MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_0(k,j,i), 0 ) )
-             ENDDO
-          ENDDO
-       ENDDO
-    ENDIF
-
-    !$OMP DO
-    DO  i = nxlg, nxrg
-       DO  j = nysg, nyng
-          DO  k = nzb+1, nzt
-
-             flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_0(k,j,i), 0 ) )
-
-             sqrt_e = SQRT( e(k,j,i) )
-!
-!--          Determine the mixing length
-             dvar_dz = atmos_ocean_sign * &  ! inverse effect of pt/rho_ocean gradient
-                       ( var(k+1,j,i) - var(k-1,j,i) ) * dd2zu(k)
-             IF ( dvar_dz > 0.0_wp ) THEN
-                IF ( use_single_reference_value )  THEN
-                   l_stable = 0.76_wp * sqrt_e /                               &
-                                 SQRT( g / var_reference * dvar_dz ) + 1E-5_wp
-                ELSE
-                   l_stable = 0.76_wp * sqrt_e /                               &
-                                 SQRT( g / var(k,j,i) * dvar_dz ) + 1E-5_wp
-                ENDIF
-             ELSE
-                l_stable = l_grid(k)
-             ENDIF
-!
-!--          Adjustment of the mixing length
-             IF ( wall_adjustment )  THEN
-                l  = MIN( wall_adjustment_factor * l_wall(k,j,i), l_grid(k),   &
-                          l_stable )
-                ll = MIN( wall_adjustment_factor * l_wall(k,j,i), l_grid(k) )
-             ELSE
-                l  = MIN( l_grid(k), l_stable )
-                ll = l_grid(k)
-             ENDIF
-!
-!--          Compute diffusion coefficients for momentum and heat
-             km(k,j,i) = 0.1_wp * l * sqrt_e                      * flag
-             kh(k,j,i) = ( 1.0_wp + 2.0_wp * l / ll ) * km(k,j,i) * flag
-     
-
-!
-!--          Summation for averaged profile (cf. flow_statistics)
-             DO  sr = 0, statistic_regions
-                sums_l_l(k,sr,tn) = sums_l_l(k,sr,tn) + l * rmask(j,i,sr)      &
-                                                          * flag
-             ENDDO
-
-          ENDDO
-       ENDDO
-    ENDDO
-
-    sums_l_l(nzt+1,:,tn) = sums_l_l(nzt,:,tn)   ! quasi boundary-condition for
-                                                ! data output
-!$OMP END PARALLEL
-
-!
-!-- Set vertical boundary values (Neumann conditions both at upward- and 
-!-- downward facing walls. To set wall-boundary values, the surface data type 
-!-- is applied.
-!-- Horizontal boundary conditions at vertical walls are not set because
-!-- so far vertical surfaces require usage of a Prandtl-layer where the boundary
-!-- values of the diffusivities are not needed.
-!-- Upward-facing
-    !$OMP PARALLEL DO PRIVATE( i, j, k )
-    DO  m = 1, bc_h(0)%ns
-       i = bc_h(0)%i(m)            
-       j = bc_h(0)%j(m)
-       k = bc_h(0)%k(m)
-       km(k-1,j,i) = km(k,j,i)
-       kh(k-1,j,i) = kh(k,j,i)
-    ENDDO
-!
-!-- Downward facing surfaces
-    !$OMP PARALLEL DO PRIVATE( i, j, k )
-    DO  m = 1, bc_h(1)%ns
-       i = bc_h(1)%i(m)            
-       j = bc_h(1)%j(m)
-       k = bc_h(1)%k(m)
-       km(k+1,j,i) = km(k,j,i)
-       kh(k+1,j,i) = kh(k,j,i)
-    ENDDO
-!
-!-- Model top
-    !$OMP PARALLEL DO
-    DO  i = nxlg, nxrg
-       DO  j = nysg, nyng
-          km(nzt+1,j,i) = km(nzt,j,i)
-          kh(nzt+1,j,i) = kh(nzt,j,i)
-       ENDDO
-    ENDDO
-
-
-!
-!-- Set Neumann boundary conditions at the outflow boundaries in case of
-!-- non-cyclic lateral boundaries
-    IF ( outflow_l )  THEN
-       km(:,:,nxl-1) = km(:,:,nxl)
-       kh(:,:,nxl-1) = kh(:,:,nxl)
-    ENDIF
-    IF ( outflow_r )  THEN
-       km(:,:,nxr+1) = km(:,:,nxr)
-       kh(:,:,nxr+1) = kh(:,:,nxr)
-    ENDIF
-    IF ( outflow_s )  THEN
-       km(:,nys-1,:) = km(:,nys,:)
-       kh(:,nys-1,:) = kh(:,nys,:)
-    ENDIF
-    IF ( outflow_n )  THEN
-       km(:,nyn+1,:) = km(:,nyn,:)
-       kh(:,nyn+1,:) = kh(:,nyn,:)
-    ENDIF
-!
-!-- Vertical nesting: set fine grid eddy viscosity top boundary condition
-    IF ( vnest_init )  CALL vnest_boundary_conds_khkm
-
- END SUBROUTINE diffusivities
Index: palm/trunk/SOURCE/disturb_field.f90
===================================================================
--- palm/trunk/SOURCE/disturb_field.f90	(revision 2693)
+++ palm/trunk/SOURCE/disturb_field.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file disturb_field.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/disturb_heatflux.f90
===================================================================
--- palm/trunk/SOURCE/disturb_heatflux.f90	(revision 2693)
+++ palm/trunk/SOURCE/disturb_heatflux.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file disturb_heatflux.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/eqn_state_seawater.f90
===================================================================
--- palm/trunk/SOURCE/eqn_state_seawater.f90	(revision 2693)
+++ palm/trunk/SOURCE/eqn_state_seawater.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file eqn_state_seawater.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/exchange_horiz.f90
===================================================================
--- palm/trunk/SOURCE/exchange_horiz.f90	(revision 2693)
+++ palm/trunk/SOURCE/exchange_horiz.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file exchange_horiz.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
@@ -25,4 +25,7 @@
 ! -----------------
 ! $Id$
+! 3D-Integer exchange on multigrid level (MS)
+! 
+! 2298 2017-06-29 09:28:18Z raasch
 ! sendrecv_in_background related parts removed
 ! 
@@ -266,8 +269,8 @@
 !> @todo Missing subroutine description.
 !------------------------------------------------------------------------------!
- SUBROUTINE exchange_horiz_int( ar, nbgp_local)
+ SUBROUTINE exchange_horiz_int( ar, nys_l, nyn_l, nxl_l, nxr_l, nzt_l, nbgp_local)
 
     USE control_parameters,                                                    &
-        ONLY:  bc_lr, bc_lr_cyc, bc_ns, bc_ns_cyc
+        ONLY:  bc_lr, bc_lr_cyc, bc_ns, bc_ns_cyc, grid_level
                        
     USE indices,                                                               &
@@ -280,9 +283,13 @@
     IMPLICIT NONE
 
-
+    INTEGER(iwp) ::  nxl_l       !< local index bound at current grid level, left side
+    INTEGER(iwp) ::  nxr_l       !< local index bound at current grid level, right side
+    INTEGER(iwp) ::  nyn_l       !< local index bound at current grid level, north side
+    INTEGER(iwp) ::  nys_l       !< local index bound at current grid level, south side
+    INTEGER(iwp) ::  nzt_l       !< local index bound at current grid level, top
     INTEGER(iwp) ::  nbgp_local  !< number of ghost points
     
-    INTEGER(iwp), DIMENSION(nzb:nzt+1,nys-nbgp_local:nyn+nbgp_local,           &
-                        nxl-nbgp_local:nxr+nbgp_local) ::  ar  !< treated array
+    INTEGER(iwp), DIMENSION(nzb:nzt_l+1,nys_l-nbgp_local:nyn_l+nbgp_local,     &
+                            nxl_l-nbgp_local:nxr_l+nbgp_local) ::  ar  !< treated array
 
 
@@ -293,19 +300,21 @@
 !--    within the PE memory
        IF ( bc_lr_cyc )  THEN
-          ar(:,:,nxl-nbgp_local:nxl-1) = ar(:,:,nxr-nbgp_local+1:nxr)
-          ar(:,:,nxr+1:nxr+nbgp_local) = ar(:,:,nxl:nxl+nbgp_local-1)
+          ar(:,:,nxl_l-nbgp_local:nxl_l-1) = ar(:,:,nxr_l-nbgp_local+1:nxr_l)
+          ar(:,:,nxr_l+1:nxr_l+nbgp_local) = ar(:,:,nxl_l:nxl_l+nbgp_local-1)
        ENDIF
     ELSE
 !
 !--    Send left boundary, receive right one (synchronous)
-       CALL MPI_SENDRECV(                                                      &
-           ar(nzb,nys-nbgp_local,nxl),   1, type_yz_int, pleft,  0,            &
-           ar(nzb,nys-nbgp_local,nxr+1), 1, type_yz_int, pright, 0,            &
+       CALL MPI_SENDRECV(                                                          &
+           ar(nzb,nys_l-nbgp_local,nxl_l),   1, type_yz_int(grid_level), pleft,  0,&
+           ar(nzb,nys_l-nbgp_local,nxr_l+1), 1, type_yz_int(grid_level), pright, 0,&
            comm2d, status, ierr )
 !
 !--    Send right boundary, receive left one (synchronous)
-       CALL MPI_SENDRECV(                                                      &
-           ar(nzb,nys-nbgp_local,nxr+1-nbgp_local), 1, type_yz_int, pright, 1, &
-           ar(nzb,nys-nbgp_local,nxl-nbgp_local),   1, type_yz_int, pleft,  1, &
+       CALL MPI_SENDRECV(                                                          &
+           ar(nzb,nys_l-nbgp_local,nxr_l+1-nbgp_local), 1, type_yz_int(grid_level),&
+           pright, 1,                                                              &
+           ar(nzb,nys_l-nbgp_local,nxl_l-nbgp_local),   1, type_yz_int(grid_level),&
+           pleft,  1,                                                              &
            comm2d, status, ierr )
     ENDIF
@@ -317,6 +326,6 @@
 !--    within the PE memory
        IF ( bc_ns_cyc )  THEN
-          ar(:,nys-nbgp_local:nys-1,:) = ar(:,nyn-nbgp_local+1:nyn,:)
-          ar(:,nyn+1:nyn+nbgp_local,:) = ar(:,nys:nys+nbgp_local-1,:)
+          ar(:,nys_l-nbgp_local:nys_l-1,:) = ar(:,nyn_l-nbgp_local+1:nyn_l,:)
+          ar(:,nyn_l+1:nyn_l+nbgp_local,:) = ar(:,nys_l:nys_l+nbgp_local-1,:)
        ENDIF
 
@@ -325,14 +334,14 @@
 !
 !--    Send front boundary, receive rear one (synchronous)
-       CALL MPI_SENDRECV(                                                      &
-           ar(nzb,nys,nxl-nbgp_local),   1, type_xz_int, psouth, 0,            &
-           ar(nzb,nyn+1,nxl-nbgp_local), 1, type_xz_int, pnorth, 0,            &
+       CALL MPI_SENDRECV(                                                          &
+           ar(nzb,nys_l,nxl_l-nbgp_local),   1, type_xz_int(grid_level), psouth, 0,&
+           ar(nzb,nyn_l+1,nxl_l-nbgp_local), 1, type_xz_int(grid_level), pnorth, 0,&
            comm2d, status, ierr )
 !
 !--    Send rear boundary, receive front one (synchronous)
-       CALL MPI_SENDRECV( ar(nzb,nyn-nbgp_local+1,nxl-nbgp_local), 1,          &
-                          type_xz_int, pnorth, 1,                              &
-                          ar(nzb,nys-nbgp_local,nxl-nbgp_local),   1,          &
-                          type_xz_int, psouth, 1,                              &
+       CALL MPI_SENDRECV( ar(nzb,nyn_l-nbgp_local+1,nxl_l-nbgp_local), 1,          &
+                          type_xz_int(grid_level), pnorth, 1,                      &
+                          ar(nzb,nys_l-nbgp_local,nxl_l-nbgp_local),   1,          &
+                          type_xz_int(grid_level), psouth, 1,                      &
                           comm2d, status, ierr )
 
@@ -342,11 +351,11 @@
 
     IF ( bc_lr == 'cyclic' )  THEN
-       ar(:,:,nxl-nbgp_local:nxl-1) = ar(:,:,nxr-nbgp_local+1:nxr)
-       ar(:,:,nxr+1:nxr+nbgp_local) = ar(:,:,nxl:nxl+nbgp_local-1)
+       ar(:,:,nxl_l-nbgp_local:nxl_l-1) = ar(:,:,nxr_l-nbgp_local+1:nxr_l)
+       ar(:,:,nxr_l+1:nxr_l+nbgp_local) = ar(:,:,nxl_l:nxl_l+nbgp_local-1)
     ENDIF
 
     IF ( bc_ns == 'cyclic' )  THEN
-       ar(:,nys-nbgp_local:nys-1,:) = ar(:,nyn-nbgp_local+1:nyn,:)
-       ar(:,nyn+1:nyn+nbgp_local,:) = ar(:,nys:nys+nbgp_local-1,:)
+       ar(:,nys_l-nbgp_local:nys_l-1,:) = ar(:,nyn_l-nbgp_local+1:nyn_l,:)
+       ar(:,nyn_l+1:nyn_l+nbgp_local,:) = ar(:,nys_l:nys_l+nbgp_local-1,:)
     ENDIF
 
Index: palm/trunk/SOURCE/exchange_horiz_2d.f90
===================================================================
--- palm/trunk/SOURCE/exchange_horiz_2d.f90	(revision 2693)
+++ palm/trunk/SOURCE/exchange_horiz_2d.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file exchange_horiz_2d.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
@@ -25,4 +25,7 @@
 ! -----------------
 ! $Id$
+! Forcing implemented (MS)
+! 
+! 2101 2017-01-05 16:42:31Z suehring
 !
 ! 2000 2016-08-20 18:09:15Z knoop
@@ -77,5 +80,7 @@
 
     USE control_parameters,                                                    &
-        ONLY :  bc_lr_cyc, bc_ns_cyc, inflow_l, inflow_n, inflow_r, inflow_s,  &
+        ONLY :  bc_lr_cyc, bc_ns_cyc, force_bound_l, force_bound_n,            &
+                force_bound_r, force_bound_s,                                  &
+                inflow_l, inflow_n, inflow_r, inflow_s,                        &
                 nest_bound_l, nest_bound_n, nest_bound_r, nest_bound_s,        &
                 outflow_l, outflow_n, outflow_r, outflow_s
@@ -175,20 +180,24 @@
 !-- Neumann-conditions at inflow/outflow/nested boundaries
     IF ( nesting_mode /= 'vertical' )  THEN
-       IF ( inflow_l .OR. outflow_l .OR. nest_bound_l )  THEN
+       IF ( inflow_l .OR. outflow_l .OR. nest_bound_l  .OR.  force_bound_l )   &
+       THEN
           DO  i = nbgp, 1, -1
              ar(:,nxl-i) = ar(:,nxl)
           ENDDO
        ENDIF
-       IF ( inflow_r .OR. outflow_r .OR. nest_bound_r )  THEN
+       IF ( inflow_r .OR. outflow_r .OR. nest_bound_r  .OR.  force_bound_r )   &
+       THEN
           DO  i = 1, nbgp
              ar(:,nxr+i) = ar(:,nxr)
           ENDDO
        ENDIF
-       IF ( inflow_s .OR. outflow_s .OR. nest_bound_s )  THEN
+       IF ( inflow_s .OR. outflow_s .OR. nest_bound_s  .OR.  force_bound_s )   &
+       THEN
           DO  i = nbgp, 1, -1
              ar(nys-i,:) = ar(nys,:)
           ENDDO
        ENDIF
-       IF ( inflow_n .OR. outflow_n .OR. nest_bound_n )  THEN
+       IF ( inflow_n .OR. outflow_n .OR. nest_bound_n  .OR.  force_bound_n )   &
+       THEN
           DO  i = 1, nbgp
              ar(nyn+i,:) = ar(nyn,:)
@@ -214,5 +223,6 @@
 
     USE control_parameters,                                                    &
-        ONLY:  bc_lr_cyc, bc_ns_cyc, grid_level, nest_bound_l, nest_bound_n,   &
+        ONLY:  bc_lr_cyc, bc_ns_cyc, grid_level, force_bound_l, force_bound_n, &
+               force_bound_r, force_bound_s, nest_bound_l, nest_bound_n,       &
                nest_bound_r, nest_bound_s
         
@@ -312,20 +322,20 @@
 !
 !-- Neumann-conditions at inflow/outflow/nested boundaries
-    IF ( nest_bound_l )  THEN
+    IF ( nest_bound_l  .OR.  force_bound_l )  THEN
        DO  i = nbgp_local, 1, -1
          ar(:,nxl_l-i) = ar(:,nxl_l)
        ENDDO
     ENDIF
-    IF ( nest_bound_r )  THEN
+    IF ( nest_bound_r  .OR.  force_bound_r )  THEN
        DO  i = 1, nbgp_local
           ar(:,nxr_l+i) = ar(:,nxr_l)
        ENDDO
     ENDIF
-    IF ( nest_bound_s )  THEN
+    IF ( nest_bound_s  .OR.  force_bound_s )  THEN
        DO  i = nbgp_local, 1, -1
          ar(nys_l-i,:) = ar(nys_l,:)
        ENDDO
     ENDIF
-    IF ( nest_bound_n )  THEN
+    IF ( nest_bound_n  .OR.  force_bound_n )  THEN
        DO  i = 1, nbgp_local
          ar(nyn_l+i,:) = ar(nyn_l,:)
Index: palm/trunk/SOURCE/fft_xy_mod.f90
===================================================================
--- palm/trunk/SOURCE/fft_xy_mod.f90	(revision 2693)
+++ palm/trunk/SOURCE/fft_xy_mod.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file fft_xy_mod.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/flow_statistics.f90
===================================================================
--- palm/trunk/SOURCE/flow_statistics.f90	(revision 2693)
+++ palm/trunk/SOURCE/flow_statistics.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file flow_statistics.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
@@ -25,4 +25,8 @@
 ! -----------------
 ! $Id$
+! Bugfix in evaluation of surface quantities in case different surface types
+! are used (MS)
+! 
+! 2674 2017-12-07 11:49:21Z suehring
 ! Bugfix in output conversion of resolved-scale momentum fluxes in case of 
 ! PW advections scheme.
@@ -288,5 +292,5 @@
 
     USE radiation_model_mod,                                                   &
-        ONLY:  radiation, radiation_scheme, rad_net,                           &
+        ONLY:  radiation, radiation_scheme,                                    &
                rad_lw_in, rad_lw_out, rad_lw_cs_hr, rad_lw_hr,                 &
                rad_sw_in, rad_sw_out, rad_sw_cs_hr, rad_sw_hr
@@ -698,5 +702,6 @@
 !
 !--          2D-arrays (being collected in the last column of sums_l)
-             IF ( surf_def_h(0)%ns >= 1 )  THEN
+             IF ( surf_def_h(0)%end_index(j,i) >=                                 &
+                  surf_def_h(0)%start_index(j,i) )  THEN
                 m = surf_def_h(0)%start_index(j,i)
                 sums_l(nzb,pr_palm,tn)   = sums_l(nzb,pr_palm,tn) +               &
@@ -717,5 +722,5 @@
                 ENDIF
              ENDIF
-             IF ( surf_lsm_h%ns >= 1 )  THEN
+             IF ( surf_lsm_h%end_index(j,i) >= surf_lsm_h%start_index(j,i) )  THEN
                 m = surf_lsm_h%start_index(j,i)
                 sums_l(nzb,pr_palm,tn)   = sums_l(nzb,pr_palm,tn) +               &
@@ -736,6 +741,6 @@
                 ENDIF
              ENDIF
-             IF ( surf_usm_h%ns >= 1 )  THEN
-                m = surf_lsm_h%start_index(j,i)
+             IF ( surf_usm_h%end_index(j,i) >= surf_usm_h%start_index(j,i) )  THEN
+                m = surf_usm_h%start_index(j,i)
                 sums_l(nzb,pr_palm,tn)   = sums_l(nzb,pr_palm,tn) +               &
                                         surf_usm_h%us(m)   * rmask(j,i,sr)
@@ -925,5 +930,6 @@
                    ki = MERGE( -1, 0, l == 0 )
                    IF ( surf_def_h(l)%ns >= 1 )  THEN
-                      DO  m = surf_def_h(l)%start_index(j,i), surf_def_h(l)%end_index(j,i)
+                      DO  m = surf_def_h(l)%start_index(j,i),                  &
+                              surf_def_h(l)%end_index(j,i)
                          k = surf_def_h(l)%k(m)
 
@@ -978,5 +984,6 @@
                    ENDIF
                 ENDDO
-                IF ( surf_lsm_h%ns >= 1 )  THEN
+                IF ( surf_lsm_h%end_index(j,i) >=                              &
+                     surf_lsm_h%start_index(j,i) )  THEN
                    m = surf_lsm_h%start_index(j,i)
                    sums_l(nzb,12,tn) = sums_l(nzb,12,tn) + &
@@ -1028,5 +1035,6 @@
 
                 ENDIF
-                IF ( surf_usm_h%ns >= 1 )  THEN
+                IF ( surf_usm_h%end_index(j,i) >=                              &
+                     surf_usm_h%start_index(j,i) )  THEN
                    m = surf_usm_h%start_index(j,i)
                    sums_l(nzb,12,tn) = sums_l(nzb,12,tn) + &
@@ -1082,17 +1090,20 @@
 
              IF ( .NOT. neutral )  THEN
-                IF ( surf_def_h(0)%ns >= 1 )  THEN
+                IF ( surf_def_h(0)%end_index(j,i) >=                           &
+                     surf_def_h(0)%start_index(j,i) )  THEN
                    m = surf_def_h(0)%start_index(j,i)
-                   sums_l(nzb,112,tn) = sums_l(nzb,112,tn) +                      &
+                   sums_l(nzb,112,tn) = sums_l(nzb,112,tn) +                   &
                                         surf_def_h(0)%ol(m)  * rmask(j,i,sr) ! L
                 ENDIF
-                IF ( surf_lsm_h%ns >= 1 )  THEN
+                IF ( surf_lsm_h%end_index(j,i) >=                              &
+                     surf_lsm_h%start_index(j,i) )  THEN
                    m = surf_lsm_h%start_index(j,i)
-                   sums_l(nzb,112,tn) = sums_l(nzb,112,tn) +                      &
+                   sums_l(nzb,112,tn) = sums_l(nzb,112,tn) +                   &
                                         surf_lsm_h%ol(m)  * rmask(j,i,sr) ! L
                 ENDIF
-                IF ( surf_usm_h%ns >= 1 )  THEN
+                IF ( surf_usm_h%end_index(j,i) >=                              &
+                     surf_usm_h%start_index(j,i) )  THEN
                    m = surf_usm_h%start_index(j,i)
-                   sums_l(nzb,112,tn) = sums_l(nzb,112,tn) +                      &
+                   sums_l(nzb,112,tn) = sums_l(nzb,112,tn) +                   &
                                         surf_usm_h%ol(m)  * rmask(j,i,sr) ! L
                 ENDIF
@@ -1100,16 +1111,87 @@
 
              IF ( radiation )  THEN
-                sums_l(nzb,99,tn)  = sums_l(nzb,99,tn)  + rad_net(j,i)
-                sums_l(nzb,100,tn)  = sums_l(nzb,100,tn)  + rad_lw_in(nzb,j,i)
-                sums_l(nzb,101,tn)  = sums_l(nzb,101,tn)  + rad_lw_out(nzb,j,i)
-                sums_l(nzb,102,tn)  = sums_l(nzb,102,tn)  + rad_sw_in(nzb,j,i)
-                sums_l(nzb,103,tn)  = sums_l(nzb,103,tn)  + rad_sw_out(nzb,j,i)
+                IF ( surf_def_h(0)%end_index(j,i) >=                           &
+                     surf_def_h(0)%start_index(j,i) )  THEN
+                   m = surf_def_h(0)%start_index(j,i)
+                   sums_l(nzb,99,tn)  = sums_l(nzb,99,tn)  +                   &
+                                        surf_def_h(0)%rad_net(m) * rmask(j,i,sr)
+                   sums_l(nzb,100,tn) = sums_l(nzb,100,tn)  +                  &
+                                        surf_def_h(0)%rad_lw_in(m) * rmask(j,i,sr)
+                   sums_l(nzb,101,tn) = sums_l(nzb,101,tn)  +                  &
+                                        surf_def_h(0)%rad_lw_out(m) * rmask(j,i,sr)
+                   sums_l(nzb,102,tn) = sums_l(nzb,102,tn)  +                  &
+                                        surf_def_h(0)%rad_sw_in(m) * rmask(j,i,sr)
+                   sums_l(nzb,103,tn) = sums_l(nzb,103,tn)  +                  &
+                                        surf_def_h(0)%rad_sw_out(m) * rmask(j,i,sr)
+                ENDIF
+                IF ( surf_lsm_h%end_index(j,i) >=                              &
+                     surf_lsm_h%start_index(j,i) )  THEN
+                   m = surf_lsm_h%start_index(j,i)
+                   sums_l(nzb,99,tn)  = sums_l(nzb,99,tn)  +                   &
+                                        surf_lsm_h%rad_net(m) * rmask(j,i,sr)
+                   sums_l(nzb,100,tn) = sums_l(nzb,100,tn)  +                  &
+                                        surf_lsm_h%rad_lw_in(m) * rmask(j,i,sr)
+                   sums_l(nzb,101,tn) = sums_l(nzb,101,tn)  +                  &
+                                        surf_lsm_h%rad_lw_out(m) * rmask(j,i,sr)
+                   sums_l(nzb,102,tn) = sums_l(nzb,102,tn)  +                  &
+                                        surf_lsm_h%rad_sw_in(m) * rmask(j,i,sr)
+                   sums_l(nzb,103,tn) = sums_l(nzb,103,tn)  +                  &
+                                        surf_lsm_h%rad_sw_out(m) * rmask(j,i,sr)
+                ENDIF
+                IF ( surf_usm_h%end_index(j,i) >=                              &
+                     surf_usm_h%start_index(j,i) )  THEN
+                   m = surf_usm_h%start_index(j,i)
+                   sums_l(nzb,99,tn)  = sums_l(nzb,99,tn)  +                   &
+                                        surf_usm_h%rad_net(m) * rmask(j,i,sr)
+                   sums_l(nzb,100,tn) = sums_l(nzb,100,tn)  +                  &
+                                        surf_usm_h%rad_lw_in(m) * rmask(j,i,sr)
+                   sums_l(nzb,101,tn) = sums_l(nzb,101,tn)  +                  &
+                                        surf_usm_h%rad_lw_out(m) * rmask(j,i,sr)
+                   sums_l(nzb,102,tn) = sums_l(nzb,102,tn)  +                  &
+                                        surf_usm_h%rad_sw_in(m) * rmask(j,i,sr)
+                   sums_l(nzb,103,tn) = sums_l(nzb,103,tn)  +                  &
+                                        surf_usm_h%rad_sw_out(m) * rmask(j,i,sr)
+                ENDIF
 
 #if defined ( __rrtmg )
                 IF ( radiation_scheme == 'rrtmg' )  THEN
-                   sums_l(nzb,108,tn)  = sums_l(nzb,108,tn)  + rrtm_aldif(0,j,i)
-                   sums_l(nzb,109,tn)  = sums_l(nzb,109,tn)  + rrtm_aldir(0,j,i)
-                   sums_l(nzb,110,tn)  = sums_l(nzb,110,tn)  + rrtm_asdif(0,j,i)
-                   sums_l(nzb,111,tn)  = sums_l(nzb,111,tn)  + rrtm_asdir(0,j,i)
+
+                   IF ( surf_def_h(0)%end_index(j,i) >=                        &
+                        surf_def_h(0)%start_index(j,i) )  THEN
+                      m = surf_def_h(0)%start_index(j,i)
+                      sums_l(nzb,108,tn)  = sums_l(nzb,108,tn)  +              &
+                                           surf_def_h(0)%rrtm_aldif(m) * rmask(j,i,sr)
+                      sums_l(nzb,109,tn) = sums_l(nzb,109,tn)  +               &
+                                           surf_def_h(0)%rrtm_aldir(m) * rmask(j,i,sr)
+                      sums_l(nzb,110,tn) = sums_l(nzb,110,tn)  +               &
+                                           surf_def_h(0)%rrtm_asdif(m) * rmask(j,i,sr)
+                      sums_l(nzb,111,tn) = sums_l(nzb,111,tn)  +               &
+                                           surf_def_h(0)%rrtm_asdir(m) * rmask(j,i,sr)
+                   ENDIF
+                   IF ( surf_lsm_h%end_index(j,i) >=                           &
+                        surf_lsm_h%start_index(j,i) )  THEN
+                      m = surf_lsm_h%start_index(j,i)
+                      sums_l(nzb,108,tn)  = sums_l(nzb,108,tn)  +              &
+                                           surf_lsm_h%rrtm_aldif(m) * rmask(j,i,sr)
+                      sums_l(nzb,109,tn) = sums_l(nzb,109,tn)  +               &
+                                           surf_lsm_h%rrtm_aldir(m) * rmask(j,i,sr)
+                      sums_l(nzb,110,tn) = sums_l(nzb,110,tn)  +               &
+                                           surf_lsm_h%rrtm_asdif(m) * rmask(j,i,sr)
+                      sums_l(nzb,111,tn) = sums_l(nzb,111,tn)  +               &
+                                           surf_lsm_h%rrtm_asdir(m) * rmask(j,i,sr)
+                   ENDIF
+                   IF ( surf_usm_h%end_index(j,i) >=                           &
+                        surf_usm_h%start_index(j,i) )  THEN
+                      m = surf_usm_h%start_index(j,i)
+                      sums_l(nzb,108,tn)  = sums_l(nzb,108,tn)  +              &
+                                           surf_usm_h%rrtm_aldif(m) * rmask(j,i,sr)
+                      sums_l(nzb,109,tn) = sums_l(nzb,109,tn)  +               &
+                                           surf_usm_h%rrtm_aldir(m) * rmask(j,i,sr)
+                      sums_l(nzb,110,tn) = sums_l(nzb,110,tn)  +               &
+                                           surf_usm_h%rrtm_asdif(m) * rmask(j,i,sr)
+                      sums_l(nzb,111,tn) = sums_l(nzb,111,tn)  +               &
+                                           surf_usm_h%rrtm_asdir(m) * rmask(j,i,sr)
+                   ENDIF
+
                 ENDIF
 #endif
Index: palm/trunk/SOURCE/global_min_max.f90
===================================================================
--- palm/trunk/SOURCE/global_min_max.f90	(revision 2693)
+++ palm/trunk/SOURCE/global_min_max.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file global_min_max.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/header.f90
===================================================================
--- palm/trunk/SOURCE/header.f90	(revision 2693)
+++ palm/trunk/SOURCE/header.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file header.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
@@ -25,4 +25,8 @@
 ! -----------------
 ! $Id$
+! Print information about turbulence closure (TG)
+! Print information about inifor initialization (MS)
+! 
+! 2575 2017-10-24 09:57:58Z maronga
 ! Added output for complex terrain simulations
 ! 
@@ -512,4 +516,6 @@
     ELSEIF ( INDEX( initializing_actions, 'set_1d-model_profiles' ) /= 0 )  THEN
        run_classification = 'run with 1D - prerun'
+    ELSEIF ( INDEX( initializing_actions, 'inifor' ) /= 0 )  THEN
+       run_classification = 'run initialized with COSMO data'
     ELSEIF ( INDEX( initializing_actions, 'by_user' ) /=0 )  THEN
        run_classification = 'run initialized by user'
@@ -602,4 +608,9 @@
 !-- Numerical schemes
     WRITE ( io, 110 )
+    IF ( rans_mode )  THEN
+       WRITE ( io, 124 )  TRIM( turbulence_closure ), 'RANS'
+    ELSE
+       WRITE ( io, 124 )  TRIM( turbulence_closure ), 'LES'
+    ENDIF
     WRITE ( io, 121 )  TRIM( approximation )
     IF ( psolver(1:7) == 'poisfft' )  THEN
@@ -1962,4 +1973,5 @@
 110 FORMAT (/' Numerical Schemes:'/ &
              ' -----------------'/)
+124 FORMAT (' --> Use the ',A,' turbulence closure (',A,' mode).')
 121 FORMAT (' --> Use the ',A,' approximation for the model equations.')
 111 FORMAT (' --> Solve perturbation pressure via FFT using ',A,' routines')
Index: palm/trunk/SOURCE/inflow_turbulence.f90
===================================================================
--- palm/trunk/SOURCE/inflow_turbulence.f90	(revision 2693)
+++ palm/trunk/SOURCE/inflow_turbulence.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file inflow_turbulence.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/init_3d_model.f90
===================================================================
--- palm/trunk/SOURCE/init_3d_model.f90	(revision 2693)
+++ palm/trunk/SOURCE/init_3d_model.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file init_3d_model.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
@@ -25,4 +25,12 @@
 ! -----------------
 ! $Id$
+! Implementation of uv exposure model (FK)
+! Moved initialisation of diss, e, kh, km to turbulence_closure_mod (TG)
+! Added chemical emissions (FK)
+! Initialize masking arrays and number-of-grid-points arrays before initialize
+! LSM, USM and radiation module 
+! Initialization with inifor (MS)
+! 
+! 2618 2017-11-16 15:37:30Z suehring
 ! Reorder calls of init_surfaces.
 ! 
@@ -378,4 +386,9 @@
 
     USE arrays_3d
+
+#if defined( __chem )
+    USE chemistry_model_mod,                                                   &
+        ONLY:  chem_emissions
+#endif
 
     USE cloud_parameters,                                                      &
@@ -404,5 +417,5 @@
   
     USE lsf_nudging_mod,                                                       &
-        ONLY:  lsf_init, ls_forcing_surf, nudge_init 
+        ONLY:  lsf_init, ls_forcing_surf, nudge_init
 
     USE microphysics_mod,                                                      &
@@ -415,4 +428,7 @@
     USE netcdf_interface,                                                      &
         ONLY:  dots_max, dots_num
+
+    USE netcdf_data_input_mod,                                                  &
+        ONLY:  init_3d, netcdf_data_input_interpolate, netcdf_data_input_init_3d
     
     USE particle_attributes,                                                   &
@@ -425,5 +441,9 @@
 
     USE radiation_model_mod,                                                   &
-        ONLY:  radiation_init, radiation, radiation_scheme
+        ONLY:  radiation_init, radiation, radiation_control, radiation_scheme, &
+               read_svf_on_init,                                               &
+               write_svf_on_init, radiation_calc_svf, radiation_write_svf,     &
+               radiation_interaction, radiation_interactions,                  &
+               radiation_interaction_init, radiation_read_svf
     
     USE random_function_mod 
@@ -450,6 +470,12 @@
     USE transpose_indices
 
+    USE turbulence_closure_mod,                                                &
+        ONLY:  tcm_init_arrays, tcm_init
+
     USE urban_surface_mod,                                                     &
-        ONLY:  usm_init_urban_surface
+        ONLY:  usm_init_urban_surface, usm_allocate_surface
+
+    USE uv_exposure_model_mod,                                                 &
+        ONLY:  uvem_init, uvem_init_arrays
 
     USE wind_turbine_model_mod,                                                &
@@ -522,13 +548,9 @@
 
     ALLOCATE( d(nzb+1:nzt,nys:nyn,nxl:nxr),                                    &
-              kh(nzb:nzt+1,nysg:nyng,nxlg:nxrg),                               &
-              km(nzb:nzt+1,nysg:nyng,nxlg:nxrg),                               &
               p(nzb:nzt+1,nysg:nyng,nxlg:nxrg),                                &
               tend(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
 
 #if defined( __nopointer )
-    ALLOCATE( e(nzb:nzt+1,nysg:nyng,nxlg:nxrg),                                &
-              e_p(nzb:nzt+1,nysg:nyng,nxlg:nxrg),                              &
-              pt(nzb:nzt+1,nysg:nyng,nxlg:nxrg),                               &
+    ALLOCATE( pt(nzb:nzt+1,nysg:nyng,nxlg:nxrg),                               &
               pt_p(nzb:nzt+1,nysg:nyng,nxlg:nxrg),                             &
               u(nzb:nzt+1,nysg:nyng,nxlg:nxrg),                                &
@@ -538,5 +560,4 @@
               w(nzb:nzt+1,nysg:nyng,nxlg:nxrg),                                &
               w_p(nzb:nzt+1,nysg:nyng,nxlg:nxrg),                              &
-              te_m(nzb:nzt+1,nysg:nyng,nxlg:nxrg),                             &
               tpt_m(nzb:nzt+1,nysg:nyng,nxlg:nxrg),                            &
               tu_m(nzb:nzt+1,nysg:nyng,nxlg:nxrg),                             &
@@ -544,8 +565,5 @@
               tw_m(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
 #else
-    ALLOCATE( e_1(nzb:nzt+1,nysg:nyng,nxlg:nxrg),                              &
-              e_2(nzb:nzt+1,nysg:nyng,nxlg:nxrg),                              &
-              e_3(nzb:nzt+1,nysg:nyng,nxlg:nxrg),                              &
-              pt_1(nzb:nzt+1,nysg:nyng,nxlg:nxrg),                             &
+    ALLOCATE( pt_1(nzb:nzt+1,nysg:nyng,nxlg:nxrg),                             &
               pt_3(nzb:nzt+1,nysg:nyng,nxlg:nxrg),                             &
               u_1(nzb:nzt+1,nysg:nyng,nxlg:nxrg),                              &
@@ -771,5 +789,5 @@
                             + 2.0_wp * ( rho_air(nzt+1) - rho_air_zw(nzt)  )
     ENDIF
-
+!
 !-- compute the inverse density array in order to avoid expencive divisions
     drho_air    = 1.0_wp / rho_air
@@ -878,12 +896,4 @@
 
 !
-!-- 3D-array for storing the dissipation, needed for calculating the sgs
-!-- particle velocities
-    IF ( use_sgs_for_particles  .OR.  wang_kernel  .OR.  collision_turbulence )&
-    THEN
-       ALLOCATE( diss(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
-    ENDIF
-
-!
 !-- 1D-array for large scale subsidence velocity
     IF ( .NOT. ALLOCATED( w_subs ) )  THEN
@@ -932,5 +942,4 @@
 !
 !-- Initial assignment of the pointers
-    e  => e_1;   e_p  => e_2;   te_m  => e_3
     IF ( .NOT. neutral )  THEN
        pt => pt_1;  pt_p => pt_2;  tpt_m => pt_3
@@ -976,5 +985,8 @@
 #endif
 !
-!-- Initialize wall arrays
+!-- Initialize arrays for turbulence closure
+    CALL tcm_init_arrays
+!
+!-- Initialize surface arrays
     CALL init_surface_arrays
 !
@@ -997,13 +1009,12 @@
 
 !
-!-- Initialize nudging if required
-    IF ( nudging )  THEN
-       CALL nudge_init
-    ENDIF
-
-!
-!-- Initialize reading of large scale forcing from external file - if required
-    IF ( large_scale_forcing )  THEN
-       CALL lsf_init
+!-- Read uv exposure input data
+    IF ( uv_exposure )  THEN
+       CALL uvem_init
+    ENDIF
+!
+!-- Allocate uv exposure arrays
+    IF ( uv_exposure )  THEN
+       CALL uvem_init_arrays
     ENDIF
 
@@ -1032,4 +1043,6 @@
     sums_wsts_bc_l     = 0.0_wp
 
+
+
 !
 !-- Initialize model variables
@@ -1037,7 +1050,117 @@
          TRIM( initializing_actions ) /= 'cyclic_fill' )  THEN
 !
-!--    First model run of a possible job queue.
-!--    Initial profiles of the variables must be computes.
-       IF ( INDEX( initializing_actions, 'set_1d-model_profiles' ) /= 0 )  THEN
+!--    Initialization with provided input data derived from larger-scale model
+       IF ( INDEX( initializing_actions, 'inifor' ) /= 0 )  THEN
+          CALL location_message( 'initializing with INIFOR', .FALSE. )
+!
+!--       Read initial 1D profiles from NetCDF file if available. 
+!--       At the moment, only u, v, w, pt and q are provided. 
+          CALL netcdf_data_input_init_3d
+!
+!--       Please note, at the moment INIFOR assumes only an equidistant vertical
+!--       grid. In case of vertical grid stretching, input of inital data 
+!--       need to be inter- and/or extrapolated. 
+!--       Therefore, check if zu grid on file is identical to numeric zw grid. 
+!--       Please note  
+          IF ( ANY( zu(1:nzt+1) /= init_3d%zu_atmos(1:init_3d%nzu) ) )  THEN
+
+             CALL netcdf_data_input_interpolate( init_3d%u_init(nzb+1:nzt+1),  &
+                                                 zu(nzb+1:nzt+1),              &
+                                                 init_3d%zu_atmos )
+             CALL netcdf_data_input_interpolate( init_3d%v_init(nzb+1:nzt+1),  &
+                                                 zu(nzb+1:nzt+1),              &
+                                                 init_3d%zu_atmos )
+!              CALL netcdf_data_input_interpolate( init_3d%w_init(nzb+1:nzt),    &
+!                                                  zw(nzb+1:nzt),                &
+!                                                  init_3d%zw_atmos )
+             IF ( .NOT. neutral )                                              &
+                CALL netcdf_data_input_interpolate(                            &
+                                             init_3d%pt_init(nzb+1:nzt+1),     &
+                                             zu(nzb+1:nzt+1),                  &
+                                             init_3d%zu_atmos )
+             IF ( humidity )                                                   &
+                CALL netcdf_data_input_interpolate(                            &
+                                             init_3d%q_init(nzb+1:nzt+1),      &
+                                             zu(nzb+1:nzt+1),                  &
+                                             init_3d%zu_atmos )
+          ENDIF
+
+          u_init = init_3d%u_init
+          v_init = init_3d%v_init    
+          IF( .NOT. neutral )  pt_init = init_3d%pt_init
+          IF( humidity      )  q_init  = init_3d%q_init
+
+!
+!--       Please note, Inifor provides data from nzb+1 to nzt+1. 
+!--       Initialize pt and q with Neumann condition at nzb.
+          IF( .NOT. neutral )  pt_init(nzb) = pt_init(nzb+1)
+          IF( humidity      )  q_init(nzb)  = q_init(nzb+1)
+          DO  i = nxlg, nxrg
+             DO  j = nysg, nyng
+                u(:,j,i) = u_init(:)
+                v(:,j,i) = v_init(:)
+                IF( .NOT. neutral )  pt(:,j,i) = pt_init(:)
+                IF( humidity      )  q(:,j,i)  = q_init(:)
+             ENDDO
+          ENDDO
+!
+!--       MS: What about the geostrophic wind profiles? Actually these
+!--           are not identical to the initial wind profiles in this case. 
+!--           This need to be further revised.
+!           ug(:) = u_init(:)
+!           vg(:) = v_init(:)
+!
+!--       Set inital w to 0
+          w = 0.0_wp
+!
+!--       Initialize the remaining quantities
+          IF ( humidity )  THEN
+             IF ( cloud_physics  .AND.  microphysics_morrison )  THEN
+                DO  i = nxlg, nxrg
+                   DO  j = nysg, nyng
+                      qc(:,j,i) = 0.0_wp
+                      nc(:,j,i) = 0.0_wp
+                   ENDDO
+                ENDDO
+             ENDIF
+
+             IF ( cloud_physics  .AND.  microphysics_seifert )  THEN
+                DO  i = nxlg, nxrg
+                   DO  j = nysg, nyng
+                      qr(:,j,i) = 0.0_wp
+                      nr(:,j,i) = 0.0_wp
+                   ENDDO
+                ENDDO
+             ENDIF
+
+          ENDIF
+
+          IF ( passive_scalar )  THEN
+             DO  i = nxlg, nxrg
+                DO  j = nysg, nyng
+                   s(:,j,i) = s_init
+                ENDDO
+             ENDDO
+          ENDIF
+
+          IF ( ocean )  THEN
+             DO  i = nxlg, nxrg
+                DO  j = nysg, nyng
+                   sa(:,j,i) = sa_init
+                ENDDO
+             ENDDO
+          ENDIF
+
+!
+!--       Set velocity components at non-atmospheric / oceanic grid points to 
+!--       zero. 
+          u = MERGE( u, 0.0_wp, BTEST( wall_flags_0, 1 ) )
+          v = MERGE( v, 0.0_wp, BTEST( wall_flags_0, 2 ) )
+          w = MERGE( w, 0.0_wp, BTEST( wall_flags_0, 3 ) )
+
+          CALL location_message( 'finished', .TRUE. )
+!
+!--    Initialization via computed 1D-model profiles
+       ELSEIF ( INDEX( initializing_actions, 'set_1d-model_profiles' ) /= 0 )  THEN
 
           CALL location_message( 'initializing with 1D model profiles', .FALSE. )
@@ -1050,7 +1173,4 @@
           DO  i = nxlg, nxrg
              DO  j = nysg, nyng
-                e(:,j,i)  = e1d
-                kh(:,j,i) = kh1d
-                km(:,j,i) = km1d
                 pt(:,j,i) = pt_init
                 u(:,j,i)  = u1d
@@ -1090,50 +1210,38 @@
              ENDDO   
           ENDIF
-
+!
+!--          Store initial profiles for output purposes etc.
           IF ( .NOT. constant_diffusion )  THEN
-             DO  i = nxlg, nxrg
-                DO  j = nysg, nyng
-                   e(:,j,i)  = e1d
+             hom(:,1,25,:) = SPREAD( l1d, 2, statistic_regions+1 )
+          ENDIF
+!
+!--       Set velocities back to zero
+          DO  i = nxlg, nxrg
+             DO  j = nysg, nyng
+                DO  k = nzb, nzt
+                   u(k,j,i) = MERGE( u(k,j,i), 0.0_wp,                      &
+                                     BTEST( wall_flags_0(k,j,i), 1 ) )
+                   v(k,j,i) = MERGE( v(k,j,i), 0.0_wp,                      &
+                                     BTEST( wall_flags_0(k,j,i), 2 ) )
                 ENDDO
              ENDDO
-!
-!--          Store initial profiles for output purposes etc.
-             hom(:,1,25,:) = SPREAD( l1d, 2, statistic_regions+1 )
-
-          ELSE
-             e    = 0.0_wp  ! must be set, because used in
-          ENDIF
-!
-!--       Inside buildings set velocities back to zero
-          IF ( topography /= 'flat' )  THEN
-             DO  i = nxlg, nxrg
-                DO  j = nysg, nyng
-                   DO  k = nzb, nzt
-                      u(k,j,i) = MERGE( u(k,j,i), 0.0_wp,                      &
-                                        BTEST( wall_flags_0(k,j,i), 1 ) )
-                      v(k,j,i) = MERGE( v(k,j,i), 0.0_wp,                      &
-                                        BTEST( wall_flags_0(k,j,i), 2 ) )
-                   ENDDO
+          ENDDO
+          
+!
+!--       WARNING: The extra boundary conditions set after running the
+!--       -------  1D model impose an error on the divergence one layer
+!--                below the topography; need to correct later 
+!--       ATTENTION: Provisional correction for Piacsek & Williams
+!--       ---------  advection scheme: keep u and v zero one layer below
+!--                  the topography.
+          IF ( ibc_uv_b == 1 )  THEN
+!
+!--          Neumann condition
+             DO  i = nxl-1, nxr+1
+                DO  j = nys-1, nyn+1
+                   u(nzb,j,i) = u(nzb+1,j,i)
+                   v(nzb,j,i) = v(nzb+1,j,i)
                 ENDDO
              ENDDO
-             
-!
-!--          WARNING: The extra boundary conditions set after running the
-!--          -------  1D model impose an error on the divergence one layer
-!--                   below the topography; need to correct later 
-!--          ATTENTION: Provisional correction for Piacsek & Williams
-!--          ---------  advection scheme: keep u and v zero one layer below
-!--                     the topography.
-             IF ( ibc_uv_b == 1 )  THEN
-!
-!--             Neumann condition
-                DO  i = nxl-1, nxr+1
-                   DO  j = nys-1, nyn+1
-                      u(nzb,j,i) = u(nzb+1,j,i)
-                      v(nzb,j,i) = v(nzb+1,j,i)
-                   ENDDO
-                ENDDO
-
-             ENDIF
 
           ENDIF
@@ -1225,29 +1333,4 @@
              ENDDO
           ENDIF
-          
-          IF ( constant_diffusion )  THEN
-             km   = km_constant
-             kh   = km / prandtl_number
-             e    = 0.0_wp
-          ELSEIF ( e_init > 0.0_wp )  THEN
-             DO  k = nzb+1, nzt
-                km(k,:,:) = 0.1_wp * l_grid(k) * SQRT( e_init )
-             ENDDO
-             km(nzb,:,:)   = km(nzb+1,:,:)
-             km(nzt+1,:,:) = km(nzt,:,:)
-             kh   = km / prandtl_number
-             e    = e_init
-          ELSE
-             IF ( .NOT. ocean )  THEN
-                kh   = 0.01_wp   ! there must exist an initial diffusion, because 
-                km   = 0.01_wp   ! otherwise no TKE would be produced by the
-                              ! production terms, as long as not yet
-                              ! e = (u*/cm)**2 at k=nzb+1
-             ELSE
-                kh   = 0.00001_wp
-                km   = 0.00001_wp
-             ENDIF
-             e    = 0.0_wp
-          ENDIF
 !
 !--       Compute initial temperature field and other constants used in case
@@ -1300,5 +1383,8 @@
 
 !
-!--    Store initial profiles for output purposes etc.
+!--    Store initial profiles for output purposes etc.. Please note, in case of 
+!--    initialization of u, v, w, pt, and q via output data derived from larger 
+!--    scale models, data will not be horizontally homogeneous. Actually, a mean 
+!--    profile should be calculated before.   
        hom(:,1,5,:) = SPREAD( u(:,nys,nxl), 2, statistic_regions+1 )
        hom(:,1,6,:) = SPREAD( v(:,nys,nxl), 2, statistic_regions+1 )
@@ -1308,10 +1394,9 @@
        ENDIF
        hom(:,1,7,:)  = SPREAD( pt(:,nys,nxl), 2, statistic_regions+1 )
-       hom(:,1,23,:) = SPREAD( km(:,nys,nxl), 2, statistic_regions+1 )
-       hom(:,1,24,:) = SPREAD( kh(:,nys,nxl), 2, statistic_regions+1 )
-
+
+
+!
+!--    Store initial salinity profile
        IF ( ocean )  THEN
-!
-!--       Store initial salinity profile
           hom(:,1,26,:)  = SPREAD( sa(:,nys,nxl), 2, statistic_regions+1 )
        ENDIF
@@ -1323,8 +1408,8 @@
           hom(:,1,26,:) = SPREAD(   q(:,nys,nxl), 2, statistic_regions+1 )
           hom(:,1,29,:) = SPREAD( vpt(:,nys,nxl), 2, statistic_regions+1 )
+!
+!--       Store initial profile of specific humidity and potential
+!--       temperature
           IF ( cloud_physics  .OR.  cloud_droplets ) THEN
-!
-!--          Store initial profile of specific humidity and potential
-!--          temperature
              hom(:,1,27,:) = SPREAD(  q(:,nys,nxl), 2, statistic_regions+1 )
              hom(:,1,28,:) = SPREAD( pt(:,nys,nxl), 2, statistic_regions+1 )
@@ -1332,7 +1417,7 @@
        ENDIF
 
+!
+!--    Store initial scalar profile
        IF ( passive_scalar )  THEN
-!
-!--       Store initial scalar profile
           hom(:,1,121,:) = SPREAD(  s(:,nys,nxl), 2, statistic_regions+1 )
        ENDIF
@@ -1413,6 +1498,6 @@
 !
 !--    Initialize old and new time levels.
-       te_m = 0.0_wp; tpt_m = 0.0_wp; tu_m = 0.0_wp; tv_m = 0.0_wp; tw_m = 0.0_wp
-       e_p = e; pt_p = pt; u_p = u; v_p = v; w_p = w
+       tpt_m = 0.0_wp; tu_m = 0.0_wp; tv_m = 0.0_wp; tw_m = 0.0_wp
+       pt_p = pt; u_p = u; v_p = v; w_p = w
 
        IF ( humidity  )  THEN
@@ -1506,9 +1591,6 @@
                 w(nz_w_shift:nzt+1,j,i)  = w(0:nzt+1-nz_w_shift,j,i)
 
-                e(nz_s_shift:nzt+1,j,i)  =  e(0:nzt+1-nz_s_shift,j,i)
                 p(nz_s_shift:nzt+1,j,i)  =  p(0:nzt+1-nz_s_shift,j,i)
                 pt(nz_s_shift:nzt+1,j,i) = pt(0:nzt+1-nz_s_shift,j,i)
-                km(nz_s_shift:nzt+1,j,i) = km(0:nzt+1-nz_s_shift,j,i)
-                kh(nz_s_shift:nzt+1,j,i) = kh(0:nzt+1-nz_s_shift,j,i)
              ENDDO
           ENDDO
@@ -1534,5 +1616,4 @@
           ENDIF
           mean_inflow_profiles(:,4) = hom_sum(:,4,0)       ! pt
-          mean_inflow_profiles(:,5) = hom_sum(:,8,0)       ! e
           IF ( humidity )                                                      &
              mean_inflow_profiles(:,6) = hom_sum(:,41,0)   ! q
@@ -1578,5 +1659,4 @@
 
              mean_inflow_profiles(nz_s_shift:nzt+1,4) = hom_sum(0:nzt+1-nz_s_shift,4,0)  ! pt
-             mean_inflow_profiles(nz_s_shift:nzt+1,5) = hom_sum(0:nzt+1-nz_s_shift,8,0)  ! e
 
           ENDIF
@@ -1606,5 +1686,4 @@
                    w(k,j,nxlg:-1)  = 0.0_wp
                    pt(k,j,nxlg:-1) = mean_inflow_profiles(k,4)
-                   e(k,j,nxlg:-1)  = mean_inflow_profiles(k,5)
                    IF ( humidity )                                             &
                       q(k,j,nxlg:-1)  = mean_inflow_profiles(k,6)
@@ -1663,10 +1742,10 @@
 
 !
-!--    Inside buildings set velocities and TKE back to zero
+!--    Inside buildings set velocities back to zero
        IF ( TRIM( initializing_actions ) == 'cyclic_fill' .AND.                &
             topography /= 'flat' )  THEN
 !
-!--       Inside buildings set velocities and TKE back to zero.
-!--       Other scalars (pt, q, s, km, kh, p, sa, ...) are ignored at present,
+!--       Inside buildings set velocities back to zero.
+!--       Other scalars (pt, q, s, p, sa, ...) are ignored at present,
 !--       maybe revise later.
           DO  i = nxlg, nxrg
@@ -1679,6 +1758,4 @@
                    w(k,j,i)     = MERGE( w(k,j,i), 0.0_wp,                     &
                                          BTEST( wall_flags_0(k,j,i), 3 ) )
-                   e(k,j,i)     = MERGE( e(k,j,i), 0.0_wp,                     &
-                                         BTEST( wall_flags_0(k,j,i), 0 ) )
                    tu_m(k,j,i)  = MERGE( tu_m(k,j,i), 0.0_wp,                  &
                                          BTEST( wall_flags_0(k,j,i), 1 ) )
@@ -1687,6 +1764,4 @@
                    tw_m(k,j,i)  = MERGE( tw_m(k,j,i), 0.0_wp,                  &
                                          BTEST( wall_flags_0(k,j,i), 3 ) )
-                   te_m(k,j,i)  = MERGE( te_m(k,j,i), 0.0_wp,                  &
-                                         BTEST( wall_flags_0(k,j,i), 0 ) )
                    tpt_m(k,j,i) = MERGE( tpt_m(k,j,i), 0.0_wp,                 &
                                          BTEST( wall_flags_0(k,j,i), 0 ) )
@@ -1705,5 +1780,5 @@
 !--    Initialize new time levels (only done in order to set boundary values
 !--    including ghost points)
-       e_p = e; pt_p = pt; u_p = u; v_p = v; w_p = w
+       pt_p = pt; u_p = u; v_p = v; w_p = w
        IF ( humidity )  THEN
           q_p = q
@@ -1724,5 +1799,5 @@
 !--    have to be predefined here because they are used (but multiplied with 0)
 !--    there before they are set. 
-       te_m = 0.0_wp; tpt_m = 0.0_wp; tu_m = 0.0_wp; tv_m = 0.0_wp; tw_m = 0.0_wp
+       tpt_m = 0.0_wp; tu_m = 0.0_wp; tv_m = 0.0_wp; tw_m = 0.0_wp
        IF ( humidity )  THEN
           tq_m = 0.0_wp
@@ -1751,4 +1826,8 @@
        CALL message( 'init_3d_model', 'PA0193', 1, 2, 0, 6, 0 )
     ENDIF
+
+!
+!-- Initialize TKE, Kh and Km
+    CALL tcm_init
 
 
@@ -1958,275 +2037,6 @@
 
 !
-!-- Initialize surface forcing corresponding to large-scale forcing. Therein, 
-!-- initialize heat-fluxes, etc. via datatype. Revise it later!
-    IF ( large_scale_forcing .AND. lsf_surf )  THEN
-       IF ( use_surface_fluxes  .AND.  constant_heatflux )  THEN
-          CALL ls_forcing_surf ( simulated_time )
-       ENDIF
-    ENDIF
-!
-!-- Initialize quantities for special advections schemes
-    CALL init_advec
-
-!
-!-- Impose random perturbation on the horizontal velocity field and then
-!-- remove the divergences from the velocity field at the initial stage
-    IF ( create_disturbances  .AND.  disturbance_energy_limit /= 0.0_wp  .AND. &
-         TRIM( initializing_actions ) /= 'read_restart_data'  .AND.            &
-         TRIM( initializing_actions ) /= 'cyclic_fill' )  THEN
-
-       CALL location_message( 'creating initial disturbances', .FALSE. )
-       CALL disturb_field( 'u', tend, u )
-       CALL disturb_field( 'v', tend, v )
-       CALL location_message( 'finished', .TRUE. )
-
-       CALL location_message( 'calling pressure solver', .FALSE. )
-       n_sor = nsor_ini
-       CALL pres
-       n_sor = nsor
-       CALL location_message( 'finished', .TRUE. )
-
-    ENDIF
-
-!
-!-- If required, initialize quantities needed for the plant canopy model
-    IF ( plant_canopy )  THEN
-       CALL location_message( 'initializing plant canopy model', .FALSE. )    
-       CALL pcm_init
-       CALL location_message( 'finished', .TRUE. )
-    ENDIF
-
-!
-!-- If required, initialize dvrp-software
-    IF ( dt_dvrp /= 9999999.9_wp )  CALL init_dvrp
-
-    IF ( ocean )  THEN
-!
-!--    Initialize quantities needed for the ocean model
-       CALL init_ocean
-
-    ELSE
-!
-!--    Initialize quantities for handling cloud physics
-!--    This routine must be called before lpm_init, because
-!--    otherwise, array pt_d_t, needed in data_output_dvrp (called by
-!--    lpm_init) is not defined.
-       CALL init_cloud_physics
-!
-!--    Initialize bulk cloud microphysics
-       CALL microphysics_init
-    ENDIF
-
-!
-!-- If required, initialize particles
-    IF ( particle_advection )  CALL lpm_init
-
-!
-!-- If required, initialize quantities needed for the LSM
-    IF ( land_surface )  THEN
-       CALL location_message( 'initializing land surface model', .FALSE. )
-       CALL lsm_init
-       CALL location_message( 'finished', .TRUE. )
-    ENDIF
-
-!
-!-- Initialize surface layer (done after LSM as roughness length are required
-!-- for initialization
-    IF ( constant_flux_layer )  THEN
-       CALL location_message( 'initializing surface layer', .FALSE. )
-       CALL init_surface_layer_fluxes
-       CALL location_message( 'finished', .TRUE. )
-    ENDIF
-
-!
-!-- If required, initialize radiation model
-    IF ( radiation )  THEN
-       CALL location_message( 'initializing radiation model', .FALSE. )
-       CALL radiation_init
-       CALL location_message( 'finished', .TRUE. )
-    ENDIF
-
-    
-!
-!-- Temporary solution to add LSM and radiation time series to the default
-!-- output
-    IF ( land_surface  .OR.  radiation )  THEN
-       IF ( TRIM( radiation_scheme ) == 'rrtmg' )  THEN
-          dots_num = dots_num + 15
-       ELSE
-          dots_num = dots_num + 11
-       ENDIF
-    ENDIF
-    
-!
-!-- If required, initialize urban surface model
-    IF ( urban_surface )  THEN
-       CALL location_message( 'initializing urban surface model', .FALSE. )
-       CALL usm_init_urban_surface
-       CALL location_message( 'finished', .TRUE. )
-    ENDIF
-
-!
-!-- If required, initialize quantities needed for the wind turbine model
-    IF ( wind_turbine )  THEN
-       CALL location_message( 'initializing wind turbine model', .FALSE. )
-       CALL wtm_init
-       CALL location_message( 'finished', .TRUE. )
-    ENDIF
-
-
-!
-!-- Initialize the ws-scheme.    
-    IF ( ws_scheme_sca .OR. ws_scheme_mom )  CALL ws_init        
-
-!
-!-- Setting weighting factors for calculation of perturbation pressure 
-!-- and turbulent quantities from the RK substeps
-    IF ( TRIM(timestep_scheme) == 'runge-kutta-3' )  THEN      ! for RK3-method
-
-       weight_substep(1) = 1._wp/6._wp
-       weight_substep(2) = 3._wp/10._wp
-       weight_substep(3) = 8._wp/15._wp
-
-       weight_pres(1)    = 1._wp/3._wp
-       weight_pres(2)    = 5._wp/12._wp
-       weight_pres(3)    = 1._wp/4._wp
-
-    ELSEIF ( TRIM(timestep_scheme) == 'runge-kutta-2' )  THEN  ! for RK2-method
-
-       weight_substep(1) = 1._wp/2._wp
-       weight_substep(2) = 1._wp/2._wp
-          
-       weight_pres(1)    = 1._wp/2._wp
-       weight_pres(2)    = 1._wp/2._wp        
-
-    ELSE                                     ! for Euler-method
-
-       weight_substep(1) = 1.0_wp      
-       weight_pres(1)    = 1.0_wp                   
-
-    ENDIF
-
-!
-!-- Initialize Rayleigh damping factors
-    rdf    = 0.0_wp
-    rdf_sc = 0.0_wp
-    IF ( rayleigh_damping_factor /= 0.0_wp )  THEN
-       IF (  .NOT.  ocean )  THEN
-          DO  k = nzb+1, nzt
-             IF ( zu(k) >= rayleigh_damping_height )  THEN
-                rdf(k) = rayleigh_damping_factor *                             &
-                      ( SIN( pi * 0.5_wp * ( zu(k) - rayleigh_damping_height ) &
-                             / ( zu(nzt) - rayleigh_damping_height ) )         &
-                      )**2
-             ENDIF
-          ENDDO
-       ELSE
-          DO  k = nzt, nzb+1, -1
-             IF ( zu(k) <= rayleigh_damping_height )  THEN
-                rdf(k) = rayleigh_damping_factor *                             &
-                      ( SIN( pi * 0.5_wp * ( rayleigh_damping_height - zu(k) ) &
-                             / ( rayleigh_damping_height - zu(nzb+1) ) )       &
-                      )**2
-             ENDIF
-          ENDDO
-       ENDIF
-    ENDIF
-    IF ( scalar_rayleigh_damping )  rdf_sc = rdf
-
-!
-!-- Initialize the starting level and the vertical smoothing factor used for 
-!-- the external pressure gradient
-    dp_smooth_factor = 1.0_wp
-    IF ( dp_external )  THEN
-!
-!--    Set the starting level dp_level_ind_b only if it has not been set before
-!--    (e.g. in init_grid).
-       IF ( dp_level_ind_b == 0 )  THEN
-          ind_array = MINLOC( ABS( dp_level_b - zu ) )
-          dp_level_ind_b = ind_array(1) - 1 + nzb 
-                                        ! MINLOC uses lower array bound 1
-       ENDIF
-       IF ( dp_smooth )  THEN
-          dp_smooth_factor(:dp_level_ind_b) = 0.0_wp
-          DO  k = dp_level_ind_b+1, nzt
-             dp_smooth_factor(k) = 0.5_wp * ( 1.0_wp + SIN( pi *               &
-                        ( REAL( k - dp_level_ind_b, KIND=wp ) /                &
-                          REAL( nzt - dp_level_ind_b, KIND=wp ) - 0.5_wp ) ) )
-          ENDDO
-       ENDIF
-    ENDIF
-
-!
-!-- Initialize damping zone for the potential temperature in case of
-!-- non-cyclic lateral boundaries. The damping zone has the maximum value 
-!-- at the inflow boundary and decreases to zero at pt_damping_width.
-    ptdf_x = 0.0_wp
-    ptdf_y = 0.0_wp
-    IF ( bc_lr_dirrad )  THEN
-       DO  i = nxl, nxr
-          IF ( ( i * dx ) < pt_damping_width )  THEN
-             ptdf_x(i) = pt_damping_factor * ( SIN( pi * 0.5_wp *              &
-                            REAL( pt_damping_width - i * dx, KIND=wp ) / (     &
-                            REAL( pt_damping_width, KIND=wp ) ) ) )**2 
-          ENDIF
-       ENDDO
-    ELSEIF ( bc_lr_raddir )  THEN
-       DO  i = nxl, nxr
-          IF ( ( i * dx ) > ( nx * dx - pt_damping_width ) )  THEN
-             ptdf_x(i) = pt_damping_factor *                                   &
-                         SIN( pi * 0.5_wp *                                    &
-                                 ( ( i - nx ) * dx + pt_damping_width ) /      &
-                                 REAL( pt_damping_width, KIND=wp ) )**2
-          ENDIF
-       ENDDO 
-    ELSEIF ( bc_ns_dirrad )  THEN
-       DO  j = nys, nyn
-          IF ( ( j * dy ) > ( ny * dy - pt_damping_width ) )  THEN
-             ptdf_y(j) = pt_damping_factor *                                   &
-                         SIN( pi * 0.5_wp *                                    &
-                                 ( ( j - ny ) * dy + pt_damping_width ) /      &
-                                 REAL( pt_damping_width, KIND=wp ) )**2
-          ENDIF
-       ENDDO 
-    ELSEIF ( bc_ns_raddir )  THEN
-       DO  j = nys, nyn
-          IF ( ( j * dy ) < pt_damping_width )  THEN
-             ptdf_y(j) = pt_damping_factor *                                   &
-                         SIN( pi * 0.5_wp *                                    &
-                                ( pt_damping_width - j * dy ) /                &
-                                REAL( pt_damping_width, KIND=wp ) )**2
-          ENDIF
-       ENDDO
-    ENDIF
-
-!
-!-- Pre-set masks for regional statistics. Default is the total model domain.
-!-- Ghost points are excluded because counting values at the ghost boundaries
-!-- would bias the statistics
-    rmask = 1.0_wp
-    rmask(:,nxlg:nxl-1,:) = 0.0_wp;  rmask(:,nxr+1:nxrg,:) = 0.0_wp
-    rmask(nysg:nys-1,:,:) = 0.0_wp;  rmask(nyn+1:nyng,:,:) = 0.0_wp
-
-!
-!-- User-defined initializing actions. Check afterwards, if maximum number
-!-- of allowed timeseries is exceeded
-    CALL user_init
-
-    IF ( dots_num > dots_max )  THEN
-       WRITE( message_string, * ) 'number of time series quantities exceeds',  &
-                                  ' its maximum of dots_max = ', dots_max,     &
-                                  ' &Please increase dots_max in modules.f90.'
-       CALL message( 'init_3d_model', 'PA0194', 1, 2, 0, 6, 0 )    
-    ENDIF
-
-!
-!-- Input binary data file is not needed anymore. This line must be placed
-!-- after call of user_init!
-    CALL close_file( 13 )
-
-!
-!-- Compute total sum of active mask grid points
-!-- and the mean surface level height for each statistic region
+!-- Before initializing further modules, compute total sum of active mask 
+!-- grid points and the mean surface level height for each statistic region.
 !-- ngp_2dh: number of grid points of a horizontal cross section through the
 !--          total domain
@@ -2245,4 +2055,11 @@
     mean_surface_level_height   = 0.0_wp
     mean_surface_level_height_l = 0.0_wp
+!
+!-- Pre-set masks for regional statistics. Default is the total model domain.
+!-- Ghost points are excluded because counting values at the ghost boundaries
+!-- would bias the statistics
+    rmask = 1.0_wp
+    rmask(:,nxlg:nxl-1,:) = 0.0_wp;  rmask(:,nxr+1:nxrg,:) = 0.0_wp
+    rmask(nysg:nys-1,:,:) = 0.0_wp;  rmask(nyn+1:nyng,:,:) = 0.0_wp
 
 !
@@ -2347,4 +2164,331 @@
                 ngp_3d_inner_l, ngp_3d_inner_tmp )
 
+!
+!-- Initialize nudging if required
+    IF ( nudging )  THEN
+       CALL nudge_init
+    ENDIF
+
+!
+!-- Initialize reading of large scale forcing from external file - if required
+    IF ( large_scale_forcing  .OR.  forcing )  THEN
+       CALL lsf_init
+    ENDIF
+!
+!-- Initialize surface forcing corresponding to large-scale forcing. Therein, 
+!-- initialize heat-fluxes, etc. via datatype. Revise it later!
+    IF ( large_scale_forcing .AND. lsf_surf )  THEN
+       IF ( use_surface_fluxes  .AND.  constant_heatflux )  THEN
+          CALL ls_forcing_surf ( simulated_time )
+       ENDIF
+    ENDIF
+!
+!-- Initialize quantities for special advections schemes
+    CALL init_advec
+
+!
+!-- Impose random perturbation on the horizontal velocity field and then
+!-- remove the divergences from the velocity field at the initial stage
+    IF ( create_disturbances  .AND.  disturbance_energy_limit /= 0.0_wp  .AND. &
+         TRIM( initializing_actions ) /= 'read_restart_data'  .AND.            &
+         TRIM( initializing_actions ) /= 'cyclic_fill' )  THEN
+
+       CALL location_message( 'creating initial disturbances', .FALSE. )
+       CALL disturb_field( 'u', tend, u )
+       CALL disturb_field( 'v', tend, v )
+       CALL location_message( 'finished', .TRUE. )
+
+       CALL location_message( 'calling pressure solver', .FALSE. )
+       n_sor = nsor_ini
+       CALL pres
+       n_sor = nsor
+       CALL location_message( 'finished', .TRUE. )
+
+    ENDIF
+
+!
+!-- If required, initialize quantities needed for the plant canopy model
+    IF ( plant_canopy )  THEN
+       CALL location_message( 'initializing plant canopy model', .FALSE. )    
+       CALL pcm_init
+       CALL location_message( 'finished', .TRUE. )
+    ENDIF
+
+!
+!-- If required, initialize dvrp-software
+    IF ( dt_dvrp /= 9999999.9_wp )  CALL init_dvrp
+
+    IF ( ocean )  THEN
+!
+!--    Initialize quantities needed for the ocean model
+       CALL init_ocean
+
+    ELSE
+!
+!--    Initialize quantities for handling cloud physics
+!--    This routine must be called before lpm_init, because
+!--    otherwise, array pt_d_t, needed in data_output_dvrp (called by
+!--    lpm_init) is not defined.
+       CALL init_cloud_physics
+!
+!--    Initialize bulk cloud microphysics
+       CALL microphysics_init
+    ENDIF
+
+!
+!-- If required, initialize particles
+    IF ( particle_advection )  CALL lpm_init
+
+!
+!-- If required, initialize quantities needed for the LSM
+    IF ( land_surface )  THEN
+       CALL location_message( 'initializing land surface model', .FALSE. )
+       CALL lsm_init
+       CALL location_message( 'finished', .TRUE. )
+    ENDIF
+
+!
+!-- If required, allocate USM and LSM surfaces
+    IF ( urban_surface )  THEN
+       CALL location_message( 'initializing and allocating urban surfaces', .FALSE. )
+       CALL usm_allocate_surface
+       CALL location_message( 'finished', .TRUE. )
+    ENDIF
+!
+!-- If required, initialize urban surface model
+    IF ( urban_surface )  THEN
+       CALL location_message( 'initializing urban surface model', .FALSE. )
+       CALL usm_init_urban_surface
+       CALL location_message( 'finished', .TRUE. )
+    ENDIF
+
+!
+!-- Initialize surface layer (done after LSM as roughness length are required
+!-- for initialization
+    IF ( constant_flux_layer )  THEN
+       CALL location_message( 'initializing surface layer', .FALSE. )
+       CALL init_surface_layer_fluxes
+       CALL location_message( 'finished', .TRUE. )
+    ENDIF
+
+!
+!-- If required, set chemical emissions
+!-- (todo(FK): This should later on be CALLed time-dependently in init_3d_model)
+#if defined( __chem )
+    IF ( air_chemistry ) THEN
+       CALL chem_emissions
+    ENDIF
+#endif
+
+!
+!-- Initialize radiation processes
+    IF ( radiation )  THEN
+!
+!--    If required, initialize radiation interactions between surfaces 
+!--    via sky-view factors. This must be done befoe radiation is initialized.
+       IF ( radiation_interactions )  CALL radiation_interaction_init
+
+!
+!--    Initialize radiation model
+       CALL location_message( 'initializing radiation model', .FALSE. )
+       CALL radiation_init
+       CALL location_message( 'finished', .TRUE. )
+
+!
+!--    If required, read or calculate and write out the SVF 
+       IF ( radiation_interactions  .AND.  read_svf_on_init )  THEN
+!
+!--       Read sky-view factors and further required data from file
+          CALL location_message( '    Start reading SVF from file', .FALSE. )
+          CALL radiation_read_svf()
+          CALL location_message( '    Reading SVF from file has finished', .TRUE. )
+
+       ELSEIF ( radiation_interactions )  THEN
+!
+!--       calculate SFV and CSF
+          CALL location_message( '    Start calculation of SVF', .FALSE. )
+          CALL radiation_calc_svf()
+          CALL location_message( '    Calculation of SVF has finished', .TRUE. )
+       ENDIF
+
+       IF ( radiation_interactions  .AND.  write_svf_on_init )  THEN
+!
+!--       Write svf, csf svfsurf and csfsurf data to file
+          CALL radiation_write_svf()
+       ENDIF
+
+!
+!--    Adjust radiative fluxes. In case of urban and land surfaces, also 
+!--    call an initial interaction.
+       CALL radiation_control 
+       IF ( radiation_interactions )  THEN
+          CALL radiation_interaction
+       ENDIF
+    ENDIF
+    
+!
+!-- Temporary solution to add LSM and radiation time series to the default
+!-- output
+    IF ( land_surface  .OR.  radiation )  THEN
+       IF ( TRIM( radiation_scheme ) == 'rrtmg' )  THEN
+          dots_num = dots_num + 15
+       ELSE
+          dots_num = dots_num + 11
+       ENDIF
+    ENDIF
+    
+
+
+!
+!-- If required, initialize quantities needed for the wind turbine model
+    IF ( wind_turbine )  THEN
+       CALL location_message( 'initializing wind turbine model', .FALSE. )
+       CALL wtm_init
+       CALL location_message( 'finished', .TRUE. )
+    ENDIF
+
+
+!
+!-- Initialize the ws-scheme.    
+    IF ( ws_scheme_sca .OR. ws_scheme_mom )  CALL ws_init        
+
+!
+!-- Setting weighting factors for calculation of perturbation pressure 
+!-- and turbulent quantities from the RK substeps
+    IF ( TRIM(timestep_scheme) == 'runge-kutta-3' )  THEN      ! for RK3-method
+
+       weight_substep(1) = 1._wp/6._wp
+       weight_substep(2) = 3._wp/10._wp
+       weight_substep(3) = 8._wp/15._wp
+
+       weight_pres(1)    = 1._wp/3._wp
+       weight_pres(2)    = 5._wp/12._wp
+       weight_pres(3)    = 1._wp/4._wp
+
+    ELSEIF ( TRIM(timestep_scheme) == 'runge-kutta-2' )  THEN  ! for RK2-method
+
+       weight_substep(1) = 1._wp/2._wp
+       weight_substep(2) = 1._wp/2._wp
+          
+       weight_pres(1)    = 1._wp/2._wp
+       weight_pres(2)    = 1._wp/2._wp        
+
+    ELSE                                     ! for Euler-method
+
+       weight_substep(1) = 1.0_wp      
+       weight_pres(1)    = 1.0_wp                   
+
+    ENDIF
+
+!
+!-- Initialize Rayleigh damping factors
+    rdf    = 0.0_wp
+    rdf_sc = 0.0_wp
+    IF ( rayleigh_damping_factor /= 0.0_wp )  THEN
+       IF (  .NOT.  ocean )  THEN
+          DO  k = nzb+1, nzt
+             IF ( zu(k) >= rayleigh_damping_height )  THEN
+                rdf(k) = rayleigh_damping_factor *                             &
+                      ( SIN( pi * 0.5_wp * ( zu(k) - rayleigh_damping_height ) &
+                             / ( zu(nzt) - rayleigh_damping_height ) )         &
+                      )**2
+             ENDIF
+          ENDDO
+       ELSE
+          DO  k = nzt, nzb+1, -1
+             IF ( zu(k) <= rayleigh_damping_height )  THEN
+                rdf(k) = rayleigh_damping_factor *                             &
+                      ( SIN( pi * 0.5_wp * ( rayleigh_damping_height - zu(k) ) &
+                             / ( rayleigh_damping_height - zu(nzb+1) ) )       &
+                      )**2
+             ENDIF
+          ENDDO
+       ENDIF
+    ENDIF
+    IF ( scalar_rayleigh_damping )  rdf_sc = rdf
+
+!
+!-- Initialize the starting level and the vertical smoothing factor used for 
+!-- the external pressure gradient
+    dp_smooth_factor = 1.0_wp
+    IF ( dp_external )  THEN
+!
+!--    Set the starting level dp_level_ind_b only if it has not been set before
+!--    (e.g. in init_grid).
+       IF ( dp_level_ind_b == 0 )  THEN
+          ind_array = MINLOC( ABS( dp_level_b - zu ) )
+          dp_level_ind_b = ind_array(1) - 1 + nzb 
+                                        ! MINLOC uses lower array bound 1
+       ENDIF
+       IF ( dp_smooth )  THEN
+          dp_smooth_factor(:dp_level_ind_b) = 0.0_wp
+          DO  k = dp_level_ind_b+1, nzt
+             dp_smooth_factor(k) = 0.5_wp * ( 1.0_wp + SIN( pi *               &
+                        ( REAL( k - dp_level_ind_b, KIND=wp ) /                &
+                          REAL( nzt - dp_level_ind_b, KIND=wp ) - 0.5_wp ) ) )
+          ENDDO
+       ENDIF
+    ENDIF
+
+!
+!-- Initialize damping zone for the potential temperature in case of
+!-- non-cyclic lateral boundaries. The damping zone has the maximum value 
+!-- at the inflow boundary and decreases to zero at pt_damping_width.
+    ptdf_x = 0.0_wp
+    ptdf_y = 0.0_wp
+    IF ( bc_lr_dirrad )  THEN
+       DO  i = nxl, nxr
+          IF ( ( i * dx ) < pt_damping_width )  THEN
+             ptdf_x(i) = pt_damping_factor * ( SIN( pi * 0.5_wp *              &
+                            REAL( pt_damping_width - i * dx, KIND=wp ) / (     &
+                            REAL( pt_damping_width, KIND=wp ) ) ) )**2 
+          ENDIF
+       ENDDO
+    ELSEIF ( bc_lr_raddir )  THEN
+       DO  i = nxl, nxr
+          IF ( ( i * dx ) > ( nx * dx - pt_damping_width ) )  THEN
+             ptdf_x(i) = pt_damping_factor *                                   &
+                         SIN( pi * 0.5_wp *                                    &
+                                 ( ( i - nx ) * dx + pt_damping_width ) /      &
+                                 REAL( pt_damping_width, KIND=wp ) )**2
+          ENDIF
+       ENDDO 
+    ELSEIF ( bc_ns_dirrad )  THEN
+       DO  j = nys, nyn
+          IF ( ( j * dy ) > ( ny * dy - pt_damping_width ) )  THEN
+             ptdf_y(j) = pt_damping_factor *                                   &
+                         SIN( pi * 0.5_wp *                                    &
+                                 ( ( j - ny ) * dy + pt_damping_width ) /      &
+                                 REAL( pt_damping_width, KIND=wp ) )**2
+          ENDIF
+       ENDDO 
+    ELSEIF ( bc_ns_raddir )  THEN
+       DO  j = nys, nyn
+          IF ( ( j * dy ) < pt_damping_width )  THEN
+             ptdf_y(j) = pt_damping_factor *                                   &
+                         SIN( pi * 0.5_wp *                                    &
+                                ( pt_damping_width - j * dy ) /                &
+                                REAL( pt_damping_width, KIND=wp ) )**2
+          ENDIF
+       ENDDO
+    ENDIF
+
+!
+!-- User-defined initializing actions. Check afterwards, if maximum number
+!-- of allowed timeseries is exceeded
+    CALL user_init
+
+    IF ( dots_num > dots_max )  THEN
+       WRITE( message_string, * ) 'number of time series quantities exceeds',  &
+                                  ' its maximum of dots_max = ', dots_max,     &
+                                  ' &Please increase dots_max in modules.f90.'
+       CALL message( 'init_3d_model', 'PA0194', 1, 2, 0, 6, 0 )    
+    ENDIF
+
+!
+!-- Input binary data file is not needed anymore. This line must be placed
+!-- after call of user_init!
+    CALL close_file( 13 )
+
     CALL location_message( 'leaving init_3d_model', .TRUE. )
 
Index: palm/trunk/SOURCE/init_advec.f90
===================================================================
--- palm/trunk/SOURCE/init_advec.f90	(revision 2693)
+++ palm/trunk/SOURCE/init_advec.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file init_advec.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/init_cloud_physics.f90
===================================================================
--- palm/trunk/SOURCE/init_cloud_physics.f90	(revision 2693)
+++ palm/trunk/SOURCE/init_cloud_physics.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file init_cloud_physics.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/init_coupling.f90
===================================================================
--- palm/trunk/SOURCE/init_coupling.f90	(revision 2693)
+++ palm/trunk/SOURCE/init_coupling.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file init_coupling.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/init_dvrp.f90
===================================================================
--- palm/trunk/SOURCE/init_dvrp.f90	(revision 2693)
+++ palm/trunk/SOURCE/init_dvrp.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file init_dvrp.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/init_grid.f90
===================================================================
--- palm/trunk/SOURCE/init_grid.f90	(revision 2693)
+++ palm/trunk/SOURCE/init_grid.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file init_grid.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
@@ -25,4 +25,13 @@
 ! -----------------
 ! $Id$
+! Revised topography input
+! Set nzb_max not for the entire nest domain, only for boundary PEs
+! Re-organize routine, split-up into several subroutines
+! Modularize poismg_noopt
+! Remove setting bit 26, 27, 28 in wall_flags_0, indicating former '_outer'
+! arrays (not required any more).  
+! Bugfix in generic tunnel setup (MS)
+! 
+! 2550 2017-10-16 17:12:01Z boeske
 ! Set lateral boundary conditions for topography on all three ghost layers
 ! 
@@ -239,9 +248,11 @@
 !
 ! Description:
-! ------------
+! -----------------------------------------------------------------------------!
 !> Creating grid depending constants
-!> To Do: Setting topo flags only based on topo_3d array - flags for former
-!> nzb_outer arrays are still not set properly. 
-!> To Do: Rearrange topo flag list
+!> @todo: Move initialization mixing length
+!> @todo: Rearrange topo flag list
+!> @todo: reference 3D buildings on top of orography is not tested and may need
+!>        further improvement for steep slopes
+!> @todo: Use more advanced setting of building type at filled holes 
 !------------------------------------------------------------------------------!
  SUBROUTINE init_grid
@@ -251,6 +262,5 @@
 
     USE arrays_3d,                                                             &
-        ONLY:  dd2zu, ddzu, ddzu_pres, ddzw, dzu, dzu_mg, dzw, dzw_mg, f1_mg,  &
-               f2_mg, f3_mg, l_grid, l_wall, zu, zw
+        ONLY:  dd2zu, ddzu, ddzu_pres, ddzw, dzu, dzw, zu, zw
         
     USE control_parameters,                                                    &
@@ -259,9 +269,9 @@
                canyon_height, canyon_wall_left, canyon_wall_south,             &
                canyon_width_x, canyon_width_y, constant_flux_layer,            &
-               coupling_char, coupling_mode,                                   &
                dp_level_ind_b, dz, dz_max, dz_stretch_factor,                  &
-               dz_stretch_level, dz_stretch_level_index, grid_level, ibc_uv_b, &
-               io_blocks, io_group, inflow_l, inflow_n, inflow_r, inflow_s,    &
-               lod, masking_method, maximum_grid_level, message_string,        &
+               dz_stretch_level, dz_stretch_level_index, grid_level,           &
+               force_bound_l, force_bound_r, force_bound_n, force_bound_s,     &
+               ibc_uv_b, inflow_l, inflow_n, inflow_r, inflow_s,               &
+               masking_method, maximum_grid_level, message_string,             &
                momentum_advec, nest_domain, nest_bound_l, nest_bound_n,        &
                nest_bound_r, nest_bound_s, ocean, outflow_l, outflow_n,        &
@@ -275,21 +285,15 @@
         
     USE indices,                                                               &
-        ONLY:  advc_flags_1, advc_flags_2, flags, nbgp, nx, nxl, nxlg, nxl_mg, &
-               nxr, nxrg, nxr_mg, ny, nyn, nyng, nyn_mg, nys, nys_mg, nysg, nz,&
+        ONLY:  nbgp, nx, nxl, nxlg, nxr, nxrg, ny, nyn, nyng, nys, nysg, nz,   &
                nzb, nzb_diff, nzb_diff_s_inner, nzb_diff_s_outer,              &
                nzb_max, nzb_s_inner, nzb_s_outer, nzb_u_inner,                 &
                nzb_u_outer, nzb_v_inner, nzb_v_outer, nzb_w_inner,             &
-               nzb_w_outer, nzt, nzt_mg, wall_flags_0, wall_flags_1,           &
-               wall_flags_10, wall_flags_2, wall_flags_3,  wall_flags_4,       &
-               wall_flags_5, wall_flags_6, wall_flags_7, wall_flags_8,         &
-               wall_flags_9
+               nzb_w_outer, nzt
     
     USE kinds
-#if defined ( __netcdf )
-    USE netcdf_interface,                                                      &
-        ONLY:  netcdf_close_file, netcdf_open_read_file, netcdf_get_attribute, &
-               netcdf_get_variable
-#endif
+
     USE pegrid
+
+    USE poismg_noopt_mod
 
     USE surface_mod,                                                           &
@@ -298,4 +302,1174 @@
     USE vertical_nesting_mod,                                                  &
         ONLY:  vnested, vnest_init_grid
+
+    IMPLICIT NONE
+
+    INTEGER(iwp) ::  i             !< index variable along x 
+    INTEGER(iwp) ::  j             !< index variable along y
+    INTEGER(iwp) ::  k             !< index variable along z
+    INTEGER(iwp) ::  k_top         !< topography top index on local PE
+    INTEGER(iwp) ::  l             !< loop variable 
+    INTEGER(iwp) ::  nzb_local_max !< vertical grid index of maximum topography height
+    INTEGER(iwp) ::  nzb_local_min !< vertical grid index of minimum topography height
+                                      
+    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  nzb_local      !< index for topography top at cell-center
+    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  nzb_tmp        !< dummy to calculate topography indices on u- and v-grid
+
+    INTEGER(iwp), DIMENSION(:,:,:), ALLOCATABLE ::  topo !< input array for 3D topography and dummy array for setting "outer"-flags
+
+    REAL(wp) ::  dz_stretched  !< stretched vertical grid spacing
+
+
+!
+!-- Calculation of horizontal array bounds including ghost layers
+    nxlg = nxl - nbgp
+    nxrg = nxr + nbgp
+    nysg = nys - nbgp
+    nyng = nyn + nbgp
+
+!
+!-- Allocate grid arrays
+    ALLOCATE( ddzu(1:nzt+1), ddzw(1:nzt+1), dd2zu(1:nzt), dzu(1:nzt+1),        &
+              dzw(1:nzt+1), zu(nzb:nzt+1), zw(nzb:nzt+1) )
+
+!
+!-- Compute height of u-levels from constant grid length and dz stretch factors
+    IF ( dz == -1.0_wp )  THEN
+       message_string = 'missing dz'
+       CALL message( 'init_grid', 'PA0200', 1, 2, 0, 6, 0 ) 
+    ELSEIF ( dz <= 0.0_wp )  THEN
+       WRITE( message_string, * ) 'dz=',dz,' <= 0.0'
+       CALL message( 'init_grid', 'PA0201', 1, 2, 0, 6, 0 )
+    ENDIF
+
+!
+!-- Define the vertical grid levels
+    IF ( .NOT. ocean )  THEN
+!
+!--    Grid for atmosphere with surface at z=0 (k=0, w-grid).
+!--    The second u-level (k=1) corresponds to the top of the 
+!--    Prandtl-layer.
+
+       IF ( ibc_uv_b == 0 .OR. ibc_uv_b == 2 ) THEN
+          zu(0) = 0.0_wp
+      !    zu(0) = - dz * 0.5_wp
+       ELSE
+          zu(0) = - dz * 0.5_wp
+       ENDIF
+       zu(1) =   dz * 0.5_wp
+
+       dz_stretch_level_index = nzt+1
+       dz_stretched = dz
+       DO  k = 2, nzt+1
+          IF ( dz_stretch_level <= zu(k-1)  .AND.  dz_stretched < dz_max )  THEN
+             dz_stretched = dz_stretched * dz_stretch_factor
+             dz_stretched = MIN( dz_stretched, dz_max )
+             IF ( dz_stretch_level_index == nzt+1 ) dz_stretch_level_index = k-1
+          ENDIF
+          zu(k) = zu(k-1) + dz_stretched
+       ENDDO
+
+!
+!--    Compute the w-levels. They are always staggered half-way between the 
+!--    corresponding u-levels. In case of dirichlet bc for u and v at the 
+!--    ground the first u- and w-level (k=0) are defined at same height (z=0). 
+!--    The top w-level is extrapolated linearly.
+       zw(0) = 0.0_wp
+       DO  k = 1, nzt
+          zw(k) = ( zu(k) + zu(k+1) ) * 0.5_wp
+       ENDDO
+       zw(nzt+1) = zw(nzt) + 2.0_wp * ( zu(nzt+1) - zw(nzt) )
+
+    ELSE
+!
+!--    Grid for ocean with free water surface is at k=nzt (w-grid).
+!--    In case of neumann bc at the ground the first first u-level (k=0) lies
+!--    below the first w-level (k=0). In case of dirichlet bc the first u- and
+!--    w-level are defined at same height, but staggered from the second level.
+!--    The second u-level (k=1) corresponds to the top of the Prandtl-layer.
+       zu(nzt+1) =   dz * 0.5_wp
+       zu(nzt)   = - dz * 0.5_wp
+
+       dz_stretch_level_index = 0
+       dz_stretched = dz
+       DO  k = nzt-1, 0, -1
+!
+!--       The default value of dz_stretch_level is positive, thus the first 
+!--       condition is always true. Hence, the second condition is necessary.
+          IF ( dz_stretch_level >= zu(k+1)  .AND.  dz_stretch_level <= 0.0  &
+               .AND.  dz_stretched < dz_max )  THEN
+             dz_stretched = dz_stretched * dz_stretch_factor
+             dz_stretched = MIN( dz_stretched, dz_max )
+             IF ( dz_stretch_level_index == 0 ) dz_stretch_level_index = k+1
+          ENDIF
+          zu(k) = zu(k+1) - dz_stretched
+       ENDDO
+
+!
+!--    Compute the w-levels. They are always staggered half-way between the 
+!--    corresponding u-levels, except in case of dirichlet bc for u and v
+!--    at the ground. In this case the first u- and w-level are defined at 
+!--    same height. The top w-level (nzt+1) is not used but set for 
+!--    consistency, since w and all scalar variables are defined up tp nzt+1.
+       zw(nzt+1) = dz
+       zw(nzt)   = 0.0_wp
+       DO  k = 0, nzt
+          zw(k) = ( zu(k) + zu(k+1) ) * 0.5_wp
+       ENDDO
+
+!
+!--    In case of dirichlet bc for u and v the first u- and w-level are defined
+!--    at same height.
+       IF ( ibc_uv_b == 0 ) THEN
+          zu(0) = zw(0)
+       ENDIF
+
+    ENDIF
+
+!
+!-- Compute grid lengths.
+    DO  k = 1, nzt+1
+       dzu(k)  = zu(k) - zu(k-1)
+       ddzu(k) = 1.0_wp / dzu(k)
+       dzw(k)  = zw(k) - zw(k-1)
+       ddzw(k) = 1.0_wp / dzw(k)
+    ENDDO
+
+    DO  k = 1, nzt
+       dd2zu(k) = 1.0_wp / ( dzu(k) + dzu(k+1) )
+    ENDDO
+    
+!    
+!-- The FFT- SOR-pressure solvers assume grid spacings of a staggered grid
+!-- everywhere. For the actual grid, the grid spacing at the lowest level
+!-- is only dz/2, but should be dz. Therefore, an additional array
+!-- containing with appropriate grid information is created for these
+!-- solvers.
+    IF ( psolver(1:9) /= 'multigrid' )  THEN
+       ALLOCATE( ddzu_pres(1:nzt+1) )
+       ddzu_pres = ddzu
+       ddzu_pres(1) = ddzu_pres(2)  ! change for lowest level
+    ENDIF
+
+!
+!-- Compute the reciprocal values of the horizontal grid lengths.
+    ddx = 1.0_wp / dx
+    ddy = 1.0_wp / dy
+    dx2 = dx * dx
+    dy2 = dy * dy
+    ddx2 = 1.0_wp / dx2
+    ddy2 = 1.0_wp / dy2
+
+!
+!-- Allocate 3D array to set topography
+    ALLOCATE( topo(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
+    topo = 0
+!
+!-- Initialize topography by generic topography or read from topography from file.  
+    CALL init_topo( topo )
+!
+!-- Set flags to mask topography on the grid. 
+    CALL set_topo_flags( topo )    
+!
+!-- Calculate wall flag arrays for the multigrid method.
+!-- Please note, wall flags are only applied in the non-optimized version.
+    IF ( psolver == 'multigrid_noopt' )  CALL poismg_noopt_init 
+
+!
+!-- Init flags for ws-scheme to degrade order of the numerics near walls, i.e. 
+!-- to decrease the numerical stencil appropriately.
+    IF ( momentum_advec == 'ws-scheme'  .OR.  scalar_advec == 'ws-scheme' )    &
+       CALL ws_init_flags
+
+!
+!-- Calculated grid-dependent as well as near-wall mixing length 
+    CALL init_mixing_length
+
+!
+!-- Determine the maximum level of topography. It is used for
+!-- steering the degradation of order of the applied advection scheme, 
+!-- as well in the lpm. 
+!-- In case of non-cyclic lateral boundaries, the order of the advection
+!-- scheme has to be reduced up to nzt (required at the lateral boundaries).
+    k_top = 0
+    DO  i = nxl, nxr
+       DO  j = nys, nyn
+          DO  k = nzb, nzt + 1
+             k_top = MAX( k_top, MERGE( k, 0,                                  &
+                                        .NOT. BTEST( topo(k,j,i), 0 ) ) )
+          ENDDO
+       ENDDO
+    ENDDO
+#if defined( __parallel )
+    CALL MPI_ALLREDUCE( k_top + 1, nzb_max, 1, MPI_INTEGER,                    & !is +1 really necessary here?
+                        MPI_MAX, comm2d, ierr )
+#else
+    nzb_max = k_top + 1
+#endif
+    IF ( inflow_l  .OR.  outflow_l  .OR.  force_bound_l  .OR.  nest_bound_l  .OR.&
+         inflow_r  .OR.  outflow_r  .OR.  force_bound_r  .OR.  nest_bound_r  .OR.&
+         inflow_n  .OR.  outflow_n  .OR.  force_bound_n  .OR.  nest_bound_n  .OR.&
+         inflow_s  .OR.  outflow_s  .OR.  force_bound_s  .OR.  nest_bound_s )    &
+         nzb_max = nzt
+!   
+!-- Finally, if topography extents up to the model top, limit nzb_max to nzt.
+    nzb_max = MIN( nzb_max, nzt ) 
+
+!
+!-- Initialize boundary conditions via surface type
+    CALL init_bc
+
+!
+!-- Allocate and set topography height arrays required for data output
+    IF ( TRIM( topography ) /= 'flat' )  THEN
+!
+!--    Allocate and set the arrays containing the topography height
+       IF ( nxr == nx  .AND.  nyn /= ny )  THEN
+          ALLOCATE( zu_s_inner(nxl:nxr+1,nys:nyn),                             &
+                    zw_w_inner(nxl:nxr+1,nys:nyn) )
+       ELSEIF ( nxr /= nx  .AND.  nyn == ny )  THEN
+          ALLOCATE( zu_s_inner(nxl:nxr,nys:nyn+1),                             &
+                    zw_w_inner(nxl:nxr,nys:nyn+1) )
+       ELSEIF ( nxr == nx  .AND.  nyn == ny )  THEN
+          ALLOCATE( zu_s_inner(nxl:nxr+1,nys:nyn+1),                           &
+                    zw_w_inner(nxl:nxr+1,nys:nyn+1) )
+       ELSE
+          ALLOCATE( zu_s_inner(nxl:nxr,nys:nyn),                               &
+                    zw_w_inner(nxl:nxr,nys:nyn) )
+       ENDIF
+
+       zu_s_inner   = 0.0_wp
+       zw_w_inner   = 0.0_wp
+!
+!--    Determine local topography height on scalar and w-grid. Note, setting
+!--    lateral boundary values is not necessary, realized via wall_flags_0 
+!--    array. Further, please note that loop bounds are different from 
+!--    nxl to nxr and nys to nyn on south and right model boundary, hence, 
+!--    use intrinsic lbound and ubound functions to infer array bounds.
+       DO  i = LBOUND(zu_s_inner, 1), UBOUND(zu_s_inner, 1)
+          DO  j = LBOUND(zu_s_inner, 2), UBOUND(zu_s_inner, 2)
+!
+!--          Topography height on scalar grid. Therefore, determine index of 
+!--          upward-facing surface element on scalar grid. 
+             zu_s_inner(i,j) = zu( get_topography_top_index( j, i, 's' ) )
+!
+!--          Topography height on w grid. Therefore, determine index of 
+!--          upward-facing surface element on w grid.
+             zw_w_inner(i,j) = zw( get_topography_top_index( j, i, 's' ) )
+          ENDDO
+       ENDDO
+    ENDIF
+
+!
+!-- In the following, calculate 2D index arrays. Note, these will be removed
+!-- soon. 
+!-- Allocate outer and inner index arrays for topography and set
+!-- defaults.                    
+    ALLOCATE( nzb_s_inner(nysg:nyng,nxlg:nxrg),                                &
+              nzb_s_outer(nysg:nyng,nxlg:nxrg),                                &
+              nzb_u_inner(nysg:nyng,nxlg:nxrg),                                &
+              nzb_u_outer(nysg:nyng,nxlg:nxrg),                                &
+              nzb_v_inner(nysg:nyng,nxlg:nxrg),                                &
+              nzb_v_outer(nysg:nyng,nxlg:nxrg),                                &
+              nzb_w_inner(nysg:nyng,nxlg:nxrg),                                &
+              nzb_w_outer(nysg:nyng,nxlg:nxrg),                                &
+              nzb_diff_s_inner(nysg:nyng,nxlg:nxrg),                           &
+              nzb_diff_s_outer(nysg:nyng,nxlg:nxrg),                           &
+              nzb_local(nysg:nyng,nxlg:nxrg),                                  &
+              nzb_tmp(nysg:nyng,nxlg:nxrg) )
+!
+!-- Initialize 2D-index arrays. Note, these will be removed soon! 
+    nzb_local(nys:nyn,nxl:nxr) = get_topography_top_index( 's' )
+    CALL exchange_horiz_2d_int( nzb_local, nys, nyn, nxl, nxr, nbgp )
+
+    IF ( TRIM( topography ) /= 'flat' )  THEN
+#if defined( __parallel )
+       CALL MPI_ALLREDUCE( MAXVAL( get_topography_top_index( 's' ) ),          &
+                           nzb_local_max, 1, MPI_INTEGER, MPI_MAX, comm2d, ierr )
+       CALL MPI_ALLREDUCE( MINVAL( get_topography_top_index( 's' ) ),          &
+                           nzb_local_min, 1, MPI_INTEGER, MPI_MIN, comm2d, ierr )                   
+#else
+       nzb_local_max = MAXVAL( get_topography_top_index( 's' ) )
+       nzb_local_min = MINVAL( get_topography_top_index( 's' ) )
+#endif
+!
+!--    Consistency checks
+       IF ( nzb_local_min < 0  .OR.  nzb_local_max  > nz + 1 )  THEN
+          WRITE( message_string, * ) 'nzb_local values are outside the',       &
+                                'model domain',                                &
+                                '&MINVAL( nzb_local ) = ', nzb_local_min,      &
+                                '&MAXVAL( nzb_local ) = ', nzb_local_max
+          CALL message( 'init_grid', 'PA0210', 1, 2, 0, 6, 0 )
+       ENDIF
+    ENDIF
+
+    nzb_s_inner = nzb;  nzb_s_outer = nzb
+    nzb_u_inner = nzb;  nzb_u_outer = nzb
+    nzb_v_inner = nzb;  nzb_v_outer = nzb
+    nzb_w_inner = nzb;  nzb_w_outer = nzb
+
+!
+!-- Define vertical gridpoint from (or to) which on the usual finite difference
+!-- form (which does not use surface fluxes) is applied 
+    IF ( constant_flux_layer  .OR.  use_surface_fluxes )  THEN
+       nzb_diff = nzb + 2
+    ELSE
+       nzb_diff = nzb + 1
+    ENDIF
+
+    nzb_diff_s_inner = nzb_diff;  nzb_diff_s_outer = nzb_diff
+!
+!-- Set Neumann conditions for topography. Will be removed soon.
+    IF ( .NOT. bc_ns_cyc )  THEN
+       IF ( nys == 0  )  THEN
+          nzb_local(-1,:)   = nzb_local(0,:)
+       ELSEIF ( nyn == ny )  THEN
+          nzb_local(ny+1,:) = nzb_local(ny,:)
+       ENDIF
+    ENDIF
+
+    IF ( .NOT. bc_lr_cyc )  THEN
+       IF ( nxl == 0  )  THEN
+          nzb_local(:,-1)   = nzb_local(:,0)
+          nzb_local(:,-2)   = nzb_local(:,0)
+          nzb_local(:,-3)   = nzb_local(:,0)
+       ELSEIF ( nxr == nx )  THEN
+          nzb_local(:,nx+1) = nzb_local(:,nx)
+          nzb_local(:,nx+2) = nzb_local(:,nx)          
+          nzb_local(:,nx+3) = nzb_local(:,nx)          
+       ENDIF          
+    ENDIF
+!
+!-- Initialization of 2D index arrays, will be removed soon!
+!-- Initialize nzb_s_inner and nzb_w_inner
+    nzb_s_inner = nzb_local
+    nzb_w_inner = nzb_local
+
+!
+!-- Initialize remaining index arrays:
+!-- first pre-initialize them with nzb_s_inner...
+    nzb_u_inner = nzb_s_inner
+    nzb_u_outer = nzb_s_inner
+    nzb_v_inner = nzb_s_inner
+    nzb_v_outer = nzb_s_inner
+    nzb_w_outer = nzb_s_inner
+    nzb_s_outer = nzb_s_inner
+
+!
+!-- nzb_s_outer: 
+!-- extend nzb_local east-/westwards first, then north-/southwards
+    nzb_tmp = nzb_local
+    DO  j = nys, nyn
+       DO  i = nxl, nxr
+          nzb_tmp(j,i) = MAX( nzb_local(j,i-1), nzb_local(j,i),             &
+                              nzb_local(j,i+1) )
+       ENDDO
+    ENDDO
+       
+    CALL exchange_horiz_2d_int( nzb_tmp, nys, nyn, nxl, nxr, nbgp )
+     
+    DO  i = nxl, nxr
+       DO  j = nys, nyn
+          nzb_s_outer(j,i) = MAX( nzb_tmp(j-1,i), nzb_tmp(j,i),             &
+                                  nzb_tmp(j+1,i) )
+       ENDDO
+!
+!--    non-cyclic boundary conditions (overwritten by call of
+!--    exchange_horiz_2d_int below in case of cyclic boundary conditions)
+       IF ( nys == 0 )  THEN
+          j = -1
+          nzb_s_outer(j,i) = MAX( nzb_tmp(j+1,i), nzb_tmp(j,i) )
+       ENDIF
+       IF ( nyn == ny )  THEN
+          j = ny + 1
+          nzb_s_outer(j,i) = MAX( nzb_tmp(j-1,i), nzb_tmp(j,i) )
+       ENDIF
+    ENDDO
+!
+!-- nzb_w_outer: 
+!-- identical to nzb_s_outer
+    nzb_w_outer = nzb_s_outer
+!
+!-- nzb_u_inner: 
+!-- extend nzb_local rightwards only
+    nzb_tmp = nzb_local
+    DO  j = nys, nyn
+       DO  i = nxl, nxr
+          nzb_tmp(j,i) = MAX( nzb_local(j,i-1), nzb_local(j,i) )
+       ENDDO
+    ENDDO
+       
+    CALL exchange_horiz_2d_int( nzb_tmp, nys, nyn, nxl, nxr, nbgp )
+       
+    nzb_u_inner = nzb_tmp
+!
+!-- nzb_u_outer: 
+!-- extend current nzb_tmp (nzb_u_inner) north-/southwards
+    DO  i = nxl, nxr
+       DO  j = nys, nyn
+          nzb_u_outer(j,i) = MAX( nzb_tmp(j-1,i), nzb_tmp(j,i),             &
+                                  nzb_tmp(j+1,i) )
+       ENDDO
+!
+!--    non-cyclic boundary conditions (overwritten by call of
+!--    exchange_horiz_2d_int below in case of cyclic boundary conditions)
+       IF ( nys == 0 )  THEN
+          j = -1
+          nzb_u_outer(j,i) = MAX( nzb_tmp(j+1,i), nzb_tmp(j,i) )
+       ENDIF
+       IF ( nyn == ny )  THEN
+          j = ny + 1
+          nzb_u_outer(j,i) = MAX( nzb_tmp(j-1,i), nzb_tmp(j,i) )
+       ENDIF
+    ENDDO
+
+!
+!-- nzb_v_inner:
+!-- extend nzb_local northwards only
+    nzb_tmp = nzb_local
+    DO  i = nxl, nxr
+       DO  j = nys, nyn
+          nzb_tmp(j,i) = MAX( nzb_local(j-1,i), nzb_local(j,i) )
+       ENDDO
+    ENDDO
+       
+    CALL exchange_horiz_2d_int( nzb_tmp, nys, nyn, nxl, nxr, nbgp )      
+    nzb_v_inner = nzb_tmp
+
+!
+!-- nzb_v_outer: 
+!-- extend current nzb_tmp (nzb_v_inner) right-/leftwards
+    DO  j = nys, nyn
+       DO  i = nxl, nxr
+          nzb_v_outer(j,i) = MAX( nzb_tmp(j,i-1), nzb_tmp(j,i),                &
+                                  nzb_tmp(j,i+1) )
+       ENDDO
+!
+!--    non-cyclic boundary conditions (overwritten by call of
+!--    exchange_horiz_2d_int below in case of cyclic boundary conditions)
+       IF ( nxl == 0 )  THEN
+          i = -1
+          nzb_v_outer(j,i) = MAX( nzb_tmp(j,i+1), nzb_tmp(j,i) )
+       ENDIF
+       IF ( nxr == nx )  THEN
+          i = nx + 1
+          nzb_v_outer(j,i) = MAX( nzb_tmp(j,i-1), nzb_tmp(j,i) )
+       ENDIF
+    ENDDO
+
+!
+!-- Exchange of lateral boundary values (parallel computers) and cyclic
+!-- boundary conditions, if applicable.
+!-- Since nzb_s_inner and nzb_w_inner are derived directly from nzb_local
+!-- they do not require exchange and are not included here.
+    CALL exchange_horiz_2d_int( nzb_u_inner, nys, nyn, nxl, nxr, nbgp )
+    CALL exchange_horiz_2d_int( nzb_u_outer, nys, nyn, nxl, nxr, nbgp )
+    CALL exchange_horiz_2d_int( nzb_v_inner, nys, nyn, nxl, nxr, nbgp )
+    CALL exchange_horiz_2d_int( nzb_v_outer, nys, nyn, nxl, nxr, nbgp )
+    CALL exchange_horiz_2d_int( nzb_w_outer, nys, nyn, nxl, nxr, nbgp )
+    CALL exchange_horiz_2d_int( nzb_s_outer, nys, nyn, nxl, nxr, nbgp )
+
+!
+!-- Set the individual index arrays which define the k index from which on
+!-- the usual finite difference form (which does not use surface fluxes) is
+!-- applied 
+    IF ( constant_flux_layer  .OR.  use_surface_fluxes )  THEN
+       nzb_diff_s_inner   = nzb_s_inner + 2
+       nzb_diff_s_outer   = nzb_s_outer + 2
+    ELSE
+       nzb_diff_s_inner   = nzb_s_inner + 1
+       nzb_diff_s_outer   = nzb_s_outer + 1
+    ENDIF
+!
+!-- Vertical nesting: communicate vertical grid level arrays between fine and
+!-- coarse grid
+    IF ( vnested )  CALL vnest_init_grid
+
+ END SUBROUTINE init_grid
+
+! Description:
+! -----------------------------------------------------------------------------!
+!> Set temporary topography flags and reference buildings on top of underlying
+!> orography. 
+!------------------------------------------------------------------------------!
+ SUBROUTINE process_topography( topo_3d )
+
+    USE arrays_3d,                                                             &
+        ONLY:  zw
+
+    USE control_parameters,                                                    &
+        ONLY:  bc_lr_cyc, bc_ns_cyc, land_surface, ocean, urban_surface
+
+    USE indices,                                                               &
+        ONLY:  nbgp, nx, nxl, nxlg, nxr, nxrg, ny, nyn, nyng, nys, nysg, nzb,  &
+               nzt
+
+    USE netcdf_data_input_mod,                                                 &
+        ONLY:  buildings_f, building_id_f, input_pids_static,                  &
+               terrain_height_f
+
+    USE kinds
+
+    USE pegrid
+
+    IMPLICIT NONE
+
+    INTEGER(iwp) ::  i         !< running index along x-direction
+    INTEGER(iwp) ::  j         !< running index along y-direction
+    INTEGER(iwp) ::  k         !< running index along z-direction with respect to numeric grid
+    INTEGER(iwp) ::  k2        !< running index along z-direction with respect to netcdf grid
+    INTEGER(iwp) ::  k_surf    !< orography top index, used to map 3D buildings onto terrain
+    INTEGER(iwp) ::  nr        !< index variable indication maximum terrain height for respective building ID
+    INTEGER(iwp) ::  num_build !< counter for number of buildings
+
+    INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::  displace_dum        !< displacements of start addresses, used for MPI_ALLGATHERV
+    INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::  build_ids           !< building IDs on entire model domain
+    INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::  build_ids_final     !< building IDs on entire model domain, multiple occurences are sorted out 
+    INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::  build_ids_final_tmp !< temporary array used for resizing
+    INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::  build_ids_l         !< building IDs on local subdomain
+    INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::  build_ids_l_tmp     !< temporary array used to resize array of building IDs
+
+    INTEGER(iwp), DIMENSION(0:numprocs-1) ::  num_buildings     !< number of buildings with different ID on entire model domain
+    INTEGER(iwp), DIMENSION(0:numprocs-1) ::  num_buildings_l   !< number of buildings with different ID on local subdomain
+
+    INTEGER(iwp), DIMENSION(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ::  topo_3d !< input array for 3D topography and dummy array for setting "outer"-flags
+
+    REAL(wp)                            ::  ocean_offset        !< offset to consider inverse vertical coordinate at topography definition
+    REAL(wp), DIMENSION(:), ALLOCATABLE ::  oro_max             !< maximum terrain height occupied by an building with certain id
+    REAL(wp), DIMENSION(:), ALLOCATABLE ::  oro_max_l           !< maximum terrain height occupied by an building with certain id, on local subdomain
+
+!
+!-- In the following, buildings and orography are further preprocessed 
+!-- before they are mapped on the LES grid.
+!-- Buildings are mapped on top of the orography by maintaining the roof 
+!-- shape of the building. This can be achieved by referencing building on 
+!-- top of the maximum terrain height within the area occupied by the 
+!-- respective building. As buildings and terrain height are defined PE-wise,
+!-- parallelization of this referencing is required (a building can be 
+!-- distributed between different PEs).  
+!-- In a first step, determine the number of buildings with different 
+!-- building id on each PE. In a next step, all building ids are gathered
+!-- into one array which is present to all PEs. For each building ID, 
+!-- the maximum terrain height occupied by the respective building is 
+!-- computed and distributed to each PE.  
+!-- Finally, for each building id and its respective reference orography, 
+!-- builidings are mapped on top.   
+!-- 
+!-- First, pre-set topography flags, bit 1 indicates orography, bit 2 
+!-- buildings 
+!-- classify the respective surfaces.
+    topo_3d          = IBSET( topo_3d, 0 )
+    topo_3d(nzb,:,:) = IBCLR( topo_3d(nzb,:,:), 0 )
+!
+!-- Reference buildings on top of orography. This is not necessary
+!-- if topography is read from ASCII file as no distinction between buildings
+!-- and terrain height can be made. Moreover, this is also not necessary if
+!-- urban-surface and land-surface model are used at the same time. 
+    IF ( input_pids_static )  THEN 
+       num_buildings_l = 0
+       num_buildings   = 0
+!
+!--    Allocate at least one element for building ids, 
+       ALLOCATE( build_ids_l(1) )
+       DO  i = nxl, nxr
+          DO  j = nys, nyn
+             IF ( building_id_f%var(j,i) /= building_id_f%fill )  THEN
+                IF ( num_buildings_l(myid) > 0 )  THEN
+                   IF ( ANY( building_id_f%var(j,i) .EQ.  build_ids_l ) )  THEN
+                      CYCLE
+                   ELSE
+                      num_buildings_l(myid) = num_buildings_l(myid) + 1
+!
+!--                   Resize array with different local building ids
+                      ALLOCATE( build_ids_l_tmp(1:SIZE(build_ids_l)) )
+                      build_ids_l_tmp = build_ids_l
+                      DEALLOCATE( build_ids_l )
+                      ALLOCATE( build_ids_l(1:num_buildings_l(myid)) )
+                      build_ids_l(1:num_buildings_l(myid)-1) =                 &
+                                  build_ids_l_tmp(1:num_buildings_l(myid)-1)
+                      build_ids_l(num_buildings_l(myid)) = building_id_f%var(j,i)
+                      DEALLOCATE( build_ids_l_tmp )
+                   ENDIF
+!
+!--             First occuring building id on PE 
+                ELSE 
+                   num_buildings_l(myid) = num_buildings_l(myid) + 1
+                   build_ids_l(1) = building_id_f%var(j,i)
+                ENDIF
+             ENDIF
+          ENDDO
+       ENDDO
+!
+!--    Determine number of different building ids for the entire domain 
+#if defined( __parallel ) 
+       CALL MPI_ALLREDUCE( num_buildings_l, num_buildings, numprocs,              &
+                           MPI_INTEGER, MPI_SUM, comm2d, ierr ) 
+#else
+       num_buildings = num_buildings_l
+#endif
+!
+!--    Gather all buildings ids on each PEs. 
+!--    First, allocate array encompassing all building ids in model domain.  
+       ALLOCATE( build_ids(1:SUM(num_buildings)) )
+#if defined( __parallel ) 
+!
+!--    Allocate array for displacements. 
+!--    As each PE may has a different number of buildings, so that
+!--    the block sizes send by each PE may not be equal. Hence, 
+!--    information about the respective displacement is required, indicating 
+!--    the respective adress where each MPI-task writes into the receive 
+!--    buffer array  
+       ALLOCATE( displace_dum(0:numprocs-1) )
+       displace_dum(0) = 0
+       DO i = 1, numprocs-1
+          displace_dum(i) = displace_dum(i-1) + num_buildings(i-1)
+       ENDDO
+
+       CALL MPI_ALLGATHERV( build_ids_l(1:num_buildings_l(myid)),                 &
+                            num_buildings(myid),                                  &
+                            MPI_INTEGER,                                          &
+                            build_ids,                                            &
+                            num_buildings,                                        &
+                            displace_dum,                                         & 
+                            MPI_INTEGER,                                          &
+                            comm2d, ierr )   
+
+       DEALLOCATE( displace_dum )
+
+#else
+       build_ids = build_ids_l
+#endif
+
+!
+!--    Note, in parallel mode building ids can occure mutliple times, as 
+!--    each PE has send its own ids. Therefore, sort out building ids which 
+!--    appear more than one time. 
+       num_build = 0
+       DO  nr = 1, SIZE(build_ids)
+
+          IF ( ALLOCATED(build_ids_final) )  THEN
+             IF ( ANY( build_ids(nr) .EQ. build_ids_final ) )  THEN
+                CYCLE
+             ELSE
+                num_build = num_build + 1
+!
+!--             Resize
+                ALLOCATE( build_ids_final_tmp(1:num_build) )
+                build_ids_final_tmp(1:num_build-1) = build_ids_final(1:num_build-1)
+                DEALLOCATE( build_ids_final )
+                ALLOCATE( build_ids_final(1:num_build) )
+                build_ids_final(1:num_build-1) = build_ids_final_tmp(1:num_build-1)
+                build_ids_final(num_build) = build_ids(nr)
+                DEALLOCATE( build_ids_final_tmp )
+             ENDIF             
+          ELSE
+             num_build = num_build + 1
+             ALLOCATE( build_ids_final(1:num_build) )
+             build_ids_final(num_build) = build_ids(nr)
+          ENDIF
+       ENDDO
+
+!
+!--    Finally, determine maximumum terrain height occupied by the 
+!--    respective building. First, on each PE locally. 
+       ALLOCATE( oro_max_l(1:SIZE(build_ids_final)) )
+       ALLOCATE( oro_max(1:SIZE(build_ids_final))   )
+       oro_max_l = 0.0_wp
+
+       DO  nr = 1, SIZE(build_ids_final)
+          oro_max_l(nr) = MAXVAL(                                              &
+                           MERGE( terrain_height_f%var, 0.0_wp,                &
+                                  building_id_f%var(nys:nyn,nxl:nxr) .EQ.      &
+                                  build_ids_final(nr) ) )
+       ENDDO
+   
+#if defined( __parallel )    
+       IF ( SIZE(build_ids_final) >= 1 ) THEN
+          CALL MPI_ALLREDUCE( oro_max_l, oro_max, SIZE( oro_max ), MPI_REAL,   &
+                              MPI_MAX, comm2d, ierr ) 
+       ENDIF
+#else
+       oro_max = oro_max_l
+#endif
+!
+!--    Map orography as well as buildings on grid. 
+!--    In case of ocean simulations, add an offset.  
+       ocean_offset = MERGE( zw(0), 0.0_wp, ocean )
+       DO  i = nxl, nxr
+          DO  j = nys, nyn
+             DO  k = nzb, nzt
+!
+!--             In a first step, if grid point is below or equal the given 
+!--             terrain height, grid point is flagged to be of type natural. 
+!--             Please note, in case there is also a building which is lower
+!--             than the vertical grid spacing, initialization of surface
+!--             attributes will not be correct as given surface information
+!--             will not be in accordance to the classified grid points. 
+!--             Hence, in this case, de-flag the grid point and give it 
+!--             urban type instead. 
+                IF ( zw(k) - ocean_offset <= terrain_height_f%var(j,i) )  THEN
+                    topo_3d(k,j,i) = IBCLR( topo_3d(k,j,i), 0 )
+                    topo_3d(k,j,i) = IBSET( topo_3d(k,j,i), 1 ) 
+                ENDIF
+!
+!--             Set building grid points. Here, only consider 2D buildings. 
+!--             3D buildings require separate treatment. 
+                IF ( buildings_f%lod == 1 )  THEN
+                   IF ( building_id_f%var(j,i) /= building_id_f%fill )  THEN
+!
+!--                   Determine index where maximum terrain height occupied by 
+!--                   the respective building height is stored.
+                      nr = MINLOC( ABS( build_ids_final -                      &
+                                        building_id_f%var(j,i) ), DIM = 1 )
+        
+                      IF ( zw(k) - ocean_offset <=                             &
+                           oro_max(nr) + buildings_f%var_2d(j,i) )  THEN
+                         topo_3d(k,j,i) = IBCLR( topo_3d(k,j,i), 0 )
+                         topo_3d(k,j,i) = IBSET( topo_3d(k,j,i), 2 )
+!
+!--                      De-flag grid point of type natural. See comment above.
+                         topo_3d(k,j,i) = IBCLR( topo_3d(k,j,i), 1 ) 
+                      ENDIF
+                   ENDIF
+                ENDIF
+             ENDDO
+!
+!--          Map 3D buildings onto terrain height.  
+             IF ( buildings_f%lod == 2 )  THEN
+                IF ( building_id_f%var(j,i) /= building_id_f%fill )  THEN
+!
+!--                Determine topo index occupied by terrain
+                   k_surf = MAXLOC( MERGE( 1, 0,                               &
+                                           .NOT. BTEST( topo_3d(:,j,i), 0 ) ), &
+                                    DIM = 1 ) - 1
+                   k2 = nzb+1
+                   DO k = k_surf + 1, nzt + 1
+                      IF ( k2 <= buildings_f%nz )  THEN
+                         IF ( buildings_f%var_3d(k2,j,i) == 1 )  THEN
+                            topo_3d(k,j,i) = IBCLR( topo_3d(k,j,i), 0 )
+                            topo_3d(k,j,i) = IBSET( topo_3d(k,j,i), 2 )
+                         ENDIF
+                      ENDIF
+                      k2 = k2 + 1
+                   ENDDO
+                ENDIF
+             ENDIF
+          ENDDO
+       ENDDO
+!
+!--    Deallocate temporary arrays required for processing and reading data
+       IF ( ALLOCATED( oro_max         ) )  DEALLOCATE( oro_max         )
+       IF ( ALLOCATED( oro_max_l       ) )  DEALLOCATE( oro_max_l       )
+       IF ( ALLOCATED( build_ids_final ) )  DEALLOCATE( build_ids_final )
+!
+!-- Topography input via ASCII format. 
+    ELSE
+       ocean_offset     = MERGE( zw(0), 0.0_wp, ocean )
+       topo_3d          = IBSET( topo_3d, 0 )
+       topo_3d(nzb,:,:) = IBCLR( topo_3d(nzb,:,:), 0 )
+       DO  i = nxl, nxr
+          DO  j = nys, nyn
+             DO  k = nzb, nzt
+                IF ( zw(k) - ocean_offset <= buildings_f%var_2d(j,i) )  THEN
+                    topo_3d(k,j,i) = IBCLR( topo_3d(k,j,i), 0 )
+                    topo_3d(k,j,i) = IBSET( topo_3d(k,j,i), 2 ) !indicates terrain
+                ENDIF
+             ENDDO
+          ENDDO
+       ENDDO
+    ENDIF
+
+    CALL exchange_horiz_int( topo_3d, nys, nyn, nxl, nxr, nzt, nbgp )
+
+    IF ( .NOT. bc_ns_cyc )  THEN
+       IF ( nys == 0  )  topo_3d(:,-1,:)   = topo_3d(:,0,:)
+       IF ( nyn == ny )  topo_3d(:,ny+1,:) = topo_3d(:,ny,:)
+    ENDIF
+
+    IF ( .NOT. bc_lr_cyc )  THEN
+       IF ( nxl == 0  )  topo_3d(:,:,-1)   = topo_3d(:,:,0)
+       IF ( nxr == nx )  topo_3d(:,:,nx+1) = topo_3d(:,:,nx)          
+    ENDIF
+
+ END SUBROUTINE process_topography
+
+
+! Description:
+! -----------------------------------------------------------------------------!
+!> Filter topography, i.e. fill holes resolved by only one grid point.  
+!> Such holes are suspected to lead to velocity blow-ups as continuity 
+!> equation on discrete grid cannot be fulfilled in such case.
+!------------------------------------------------------------------------------!
+ SUBROUTINE filter_topography( topo_3d )
+
+    USE control_parameters,                                                    &
+        ONLY:  bc_lr_cyc, bc_ns_cyc, message_string
+
+    USE indices,                                                               &
+        ONLY:  nbgp, nx, nxl, nxlg, nxr, nxrg, ny, nyn, nyng, nys, nysg, nzb, nzt
+
+    USE netcdf_data_input_mod,                                                 &
+        ONLY:  building_id_f, building_type_f 
+
+    USE  pegrid
+
+    IMPLICIT NONE
+
+    INTEGER(iwp) ::  i          !< running index along x-direction
+    INTEGER(iwp) ::  it         !< counter for number of iterations
+    INTEGER(iwp) ::  j          !< running index along y-direction
+    INTEGER(iwp) ::  k          !< running index along z-direction
+    INTEGER(iwp) ::  num_hole   !< number of holes (in topography) resolved by only one grid point 
+    INTEGER(iwp) ::  num_hole_l !< number of holes (in topography) resolved by only one grid point on local PE     
+    INTEGER(iwp) ::  num_wall   !< number of surrounding vertical walls for a single grid point
+
+    INTEGER(iwp), DIMENSION(:,:,:), ALLOCATABLE ::  topo_tmp      !< temporary 3D-topography used to fill holes
+    INTEGER(iwp), DIMENSION(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ::  topo_3d       !< 3D-topography array merging buildings and orography
+!
+!-- Before checking for holes, set lateral boundary conditions for 
+!-- topography. After hole-filling, boundary conditions must be set again.
+!-- Several iterations are performed, in order to fill holes which might 
+!-- emerge by the filling-algorithm itself.
+    ALLOCATE( topo_tmp(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
+    topo_tmp = 0
+
+    num_hole = 99999
+    it = 0
+    DO WHILE ( num_hole > 0 )       
+
+       num_hole = 0    
+       CALL exchange_horiz_int( topo_3d, nys, nyn, nxl, nxr, nzt, nbgp )
+
+       topo_tmp = topo_3d
+!
+!--    In case of non-cyclic lateral boundaries, assume lateral boundary to be 
+!--    a solid wall. Thus, intermediate spaces of one grid point between 
+!--    boundary and some topographic structure will be filled.           
+       IF ( .NOT. bc_ns_cyc )  THEN
+          IF ( nys == 0  )  topo_tmp(:,-1,:)   = IBCLR( topo_tmp(:,0,:),  0 )
+          IF ( nyn == ny )  topo_tmp(:,ny+1,:) = IBCLR( topo_tmp(:,ny,:), 0 )
+       ENDIF
+
+       IF ( .NOT. bc_lr_cyc )  THEN
+          IF ( nxl == 0  )  topo_tmp(:,:,-1)   = IBCLR( topo_tmp(:,:,0),  0 )
+          IF ( nxr == nx )  topo_tmp(:,:,nx+1) = IBCLR( topo_tmp(:,:,nx), 0 )          
+       ENDIF
+
+       it = it + 1
+       num_hole_l = 0
+       DO i = nxl, nxr
+          DO j = nys, nyn
+             DO  k = nzb+1, nzt
+                IF ( BTEST( topo_tmp(k,j,i), 0 ) )  THEN
+                   num_wall = 0
+                   IF ( .NOT. BTEST( topo_tmp(k,j-1,i), 0 ) )                  &
+                      num_wall = num_wall + 1
+                   IF ( .NOT. BTEST( topo_tmp(k,j+1,i), 0 ) )                  &
+                      num_wall = num_wall + 1
+                   IF ( .NOT. BTEST( topo_tmp(k,j,i-1), 0 ) )                  &
+                      num_wall = num_wall + 1
+                   IF ( .NOT. BTEST( topo_tmp(k,j,i+1), 0 ) )                  &
+                      num_wall = num_wall + 1
+                   IF ( .NOT. BTEST( topo_tmp(k-1,j,i), 0 ) )                  &
+                      num_wall = num_wall + 1   
+                   IF ( .NOT. BTEST( topo_tmp(k+1,j,i), 0 ) )                  &
+                      num_wall = num_wall + 1
+
+                   IF ( num_wall >= 4 )  THEN
+                      num_hole_l     = num_hole_l + 1
+!
+!--                   Clear flag 0 and set special flag ( bit 3) to indicate 
+!--                   that new topography point is a result of filtering process.
+                      topo_3d(k,j,i) = IBCLR( topo_3d(k,j,i), 0 )
+                      topo_3d(k,j,i) = IBSET( topo_3d(k,j,i), 3 )
+!
+!--                   If filled grid point is occupied by a building, classify
+!--                   it as building grid point.
+                      IF ( building_type_f%from_file )  THEN
+                         IF ( building_type_f%var(j,i)   /=                    &  
+                              building_type_f%fill            .OR.             &       
+                              building_type_f%var(j+1,i) /=                    &  
+                              building_type_f%fill            .OR.             &                
+                              building_type_f%var(j-1,i) /=                    &                
+                              building_type_f%fill            .OR.             &                
+                              building_type_f%var(j,i+1) /=                    &                
+                              building_type_f%fill            .OR.             &                
+                              building_type_f%var(j,i-1) /=                    &                
+                              building_type_f%fill )  THEN
+!
+!--                         Set flag indicating building surfaces
+                            topo_3d(k,j,i) = IBSET( topo_3d(k,j,i), 2 )
+!
+!--                         Set building_type and ID at this position if not 
+!--                         already set. This is required for proper 
+!--                         initialization of urban-surface energy balance 
+!--                         solver.
+                            IF ( building_type_f%var(j,i) ==                   &
+                                 building_type_f%fill )  THEN
+
+                               IF ( building_type_f%var(j+1,i) /=              &
+                                    building_type_f%fill )  THEN
+                                  building_type_f%var(j,i) =                   &
+                                                    building_type_f%var(j+1,i)
+                                  building_id_f%var(j,i) =                     &
+                                                    building_id_f%var(j+1,i)
+                               ELSEIF ( building_type_f%var(j-1,i) /=          &
+                                        building_type_f%fill )  THEN
+                                  building_type_f%var(j,i) =                   &
+                                                    building_type_f%var(j-1,i)
+                                  building_id_f%var(j,i) =                     &
+                                                    building_id_f%var(j-1,i)
+                               ELSEIF ( building_type_f%var(j,i+1) /=          &
+                                        building_type_f%fill )  THEN
+                                  building_type_f%var(j,i) =                   &
+                                                    building_type_f%var(j,i+1)
+                                  building_id_f%var(j,i) =                     &
+                                                    building_id_f%var(j,i+1)
+                               ELSEIF ( building_type_f%var(j,i-1) /=          &
+                                        building_type_f%fill )  THEN
+                                  building_type_f%var(j,i) =                   &
+                                                    building_type_f%var(j,i-1)
+                                  building_id_f%var(j,i) =                     &
+                                                    building_id_f%var(j,i-1)
+                               ENDIF
+                            ENDIF
+                         ENDIF
+                      ENDIF
+!
+!--                   If filled grid point is already classified as building
+!--                   everything is fine, else classify this grid point as
+!--                   natural type grid point. This case, values for the 
+!--                   surface type are already set.
+                      IF ( .NOT. BTEST( topo_3d(k,j,i), 2 ) )  THEN
+                         topo_3d(k,j,i) = IBSET( topo_3d(k,j,i), 1 )
+                      ENDIF
+                   ENDIF
+                ENDIF
+             ENDDO
+          ENDDO
+       ENDDO
+!
+!--    Count the total number of holes, required for informative message.
+#if defined( __parallel )
+       CALL MPI_ALLREDUCE( num_hole_l, num_hole, 1, MPI_INTEGER, MPI_SUM,      &
+                           comm2d, ierr )
+#else
+       num_hole = num_hole_l
+#endif    
+
+!
+!--    Create an informative message if any holes were filled.
+       IF ( num_hole > 0 )  THEN
+          WRITE( message_string, * ) num_hole, 'hole(s) resolved by only '//   &
+                                     'one grid point were filled at ', it,     &
+                                     'th iteration '
+          CALL message( 'init_grid', 'PA0430', 0, 0, 0, 6, 0 )
+       ENDIF
+
+
+    ENDDO
+
+    DEALLOCATE( topo_tmp )
+!
+!-- Finally, exchange topo_3d array again and if necessary set Neumann boundary
+!-- condition in case of non-cyclic lateral boundaries. 
+    CALL exchange_horiz_int( topo_3d, nys, nyn, nxl, nxr, nzt, nbgp )
+
+    IF ( .NOT. bc_ns_cyc )  THEN
+       IF ( nys == 0  )  topo_3d(:,-1,:)   = topo_3d(:,0,:)
+       IF ( nyn == ny )  topo_3d(:,ny+1,:) = topo_3d(:,ny,:)
+    ENDIF
+
+    IF ( .NOT. bc_lr_cyc )  THEN
+       IF ( nxl == 0  )  topo_3d(:,:,-1)   = topo_3d(:,:,0)
+       IF ( nxr == nx )  topo_3d(:,:,nx+1) = topo_3d(:,:,nx)          
+    ENDIF
+
+ END SUBROUTINE filter_topography
+
+! Description:
+! -----------------------------------------------------------------------------!
+!> Pre-computation of grid-dependent and near-wall mixing length.
+!> @todo: move subroutine to turbulence module developed by M1 (Tobi).
+!------------------------------------------------------------------------------!
+ SUBROUTINE init_mixing_length
+
+    USE arrays_3d,                                                             &
+        ONLY:  dzw, l_grid, l_wall, zu, zw
+
+    USE control_parameters,                                                    &
+        ONLY:  message_string, wall_adjustment_factor
+
+    USE grid_variables,                                                        &
+        ONLY:  dx, dy
+
+    USE indices,                                                               &
+        ONLY:  nbgp, nxl, nxlg, nxr, nxrg, nyn, nyng, nys, nysg, nzb, nzt,     &
+               wall_flags_0
+    
+    USE kinds
+
+    IMPLICIT NONE
+
+    INTEGER(iwp) ::  i             !< index variable along x
+    INTEGER(iwp) ::  j             !< index variable along y
+    INTEGER(iwp) ::  k             !< index variable along z
+
+    ALLOCATE( l_grid(1:nzt) )
+    ALLOCATE( l_wall(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
+!
+!-- Compute the grid-dependent mixing length.
+    DO  k = 1, nzt
+       l_grid(k)  = ( dx * dy * dzw(k) )**0.33333333333333_wp
+    ENDDO
+!
+!-- Initialize near-wall mixing length l_wall only in the vertical direction
+!-- for the moment, multiplication with wall_adjustment_factor further below
+    l_wall(nzb,:,:)   = l_grid(1)
+    DO  k = nzb+1, nzt
+       l_wall(k,:,:)  = l_grid(k)
+    ENDDO
+    l_wall(nzt+1,:,:) = l_grid(nzt)
+
+    DO  k = 1, nzt
+       IF ( l_grid(k) > 1.5_wp * dx * wall_adjustment_factor .OR.  &
+            l_grid(k) > 1.5_wp * dy * wall_adjustment_factor )  THEN
+          WRITE( message_string, * ) 'grid anisotropy exceeds ', &
+                                     'threshold given by only local', &
+                                     ' &horizontal reduction of near_wall ', &
+                                     'mixing length l_wall', &
+                                     ' &starting from height level k = ', k, '.'
+          CALL message( 'init_grid', 'PA0202', 0, 1, 0, 6, 0 )
+          EXIT
+       ENDIF
+    ENDDO
+!
+!-- In case of topography: limit near-wall mixing length l_wall further:
+!-- Go through all points of the subdomain one by one and look for the closest
+!-- surface.
+!-- Is this correct in the ocean case?
+    DO  i = nxl, nxr
+       DO  j = nys, nyn
+          DO  k = nzb+1, nzt
+!
+!--          Check if current gridpoint belongs to the atmosphere
+             IF ( BTEST( wall_flags_0(k,j,i), 0 ) )  THEN
+!
+!--             Check for neighbouring grid-points.
+!--             Vertical distance, down
+                IF ( .NOT. BTEST( wall_flags_0(k-1,j,i), 0 ) )                 &
+                   l_wall(k,j,i) = MIN( l_grid(k), zu(k) - zw(k-1) )
+!
+!--             Vertical distance, up
+                IF ( .NOT. BTEST( wall_flags_0(k+1,j,i), 0 ) )                 &
+                   l_wall(k,j,i) = MIN( l_grid(k), zw(k) - zu(k) )
+!
+!--             y-distance
+                IF ( .NOT. BTEST( wall_flags_0(k,j-1,i), 0 )  .OR.             &
+                     .NOT. BTEST( wall_flags_0(k,j+1,i), 0 ) )                 &
+                   l_wall(k,j,i) = MIN( l_wall(k,j,i), l_grid(k), 0.5_wp * dy )
+!
+!--             x-distance
+                IF ( .NOT. BTEST( wall_flags_0(k,j,i-1), 0 )  .OR.             &
+                     .NOT. BTEST( wall_flags_0(k,j,i+1), 0 ) )                 &
+                   l_wall(k,j,i) = MIN( l_wall(k,j,i), l_grid(k), 0.5_wp * dx )
+!
+!--              yz-distance (vertical edges, down)
+                 IF ( .NOT. BTEST( wall_flags_0(k-1,j-1,i), 0 )  .OR.          &
+                      .NOT. BTEST( wall_flags_0(k-1,j+1,i), 0 )  )             &
+                   l_wall(k,j,i) = MIN( l_wall(k,j,i), l_grid(k),              &
+                                        SQRT( 0.25_wp * dy**2 +                &
+                                       ( zu(k) - zw(k-1) )**2 ) )
+!
+!--              yz-distance (vertical edges, up)
+                 IF ( .NOT. BTEST( wall_flags_0(k+1,j-1,i), 0 )  .OR.          &
+                      .NOT. BTEST( wall_flags_0(k+1,j+1,i), 0 )  )             &
+                   l_wall(k,j,i) = MIN( l_wall(k,j,i), l_grid(k),              &
+                                        SQRT( 0.25_wp * dy**2 +                &
+                                       ( zw(k) - zu(k) )**2 ) )
+!   
+!--              xz-distance (vertical edges, down)
+                 IF ( .NOT. BTEST( wall_flags_0(k-1,j,i-1), 0 )  .OR.          &
+                      .NOT. BTEST( wall_flags_0(k-1,j,i+1), 0 )  )             &
+                   l_wall(k,j,i) = MIN( l_wall(k,j,i), l_grid(k),              &
+                                        SQRT( 0.25_wp * dx**2 +                &
+                                       ( zu(k) - zw(k-1) )**2 ) )
+!
+!--              xz-distance (vertical edges, up)
+                 IF ( .NOT. BTEST( wall_flags_0(k+1,j,i-1), 0 )  .OR.          &
+                      .NOT. BTEST( wall_flags_0(k+1,j,i+1), 0 )  )             &
+                  l_wall(k,j,i) = MIN( l_wall(k,j,i), l_grid(k),              &
+                                        SQRT( 0.25_wp * dx**2 +                &
+                                       ( zw(k) - zu(k) )**2 ) )
+!
+!--             xy-distance (horizontal edges)
+                IF ( .NOT. BTEST( wall_flags_0(k,j-1,i-1), 0 )  .OR.           &
+                     .NOT. BTEST( wall_flags_0(k,j+1,i-1), 0 )  .OR.           &
+                     .NOT. BTEST( wall_flags_0(k,j-1,i+1), 0 )  .OR.           &
+                     .NOT. BTEST( wall_flags_0(k,j+1,i+1), 0 ) )               &
+                   l_wall(k,j,i) = MIN( l_wall(k,j,i), l_grid(k),              &
+                                        SQRT( 0.25_wp * ( dx**2 + dy**2 ) ) )
+!
+!--             xyz distance (vertical and horizontal edges, down)
+                IF ( .NOT. BTEST( wall_flags_0(k-1,j-1,i-1), 0 )  .OR.         &
+                     .NOT. BTEST( wall_flags_0(k-1,j+1,i-1), 0 )  .OR.         &
+                     .NOT. BTEST( wall_flags_0(k-1,j-1,i+1), 0 )  .OR.         &
+                     .NOT. BTEST( wall_flags_0(k-1,j+1,i+1), 0 ) )             &
+                   l_wall(k,j,i) = MIN( l_wall(k,j,i), l_grid(k),              &
+                                        SQRT( 0.25_wp * ( dx**2 + dy**2 )      &
+                                              +  ( zu(k) - zw(k-1) )**2  ) )
+!
+!--             xyz distance (vertical and horizontal edges, up)
+                IF ( .NOT. BTEST( wall_flags_0(k+1,j-1,i-1), 0 )  .OR.         &
+                     .NOT. BTEST( wall_flags_0(k+1,j+1,i-1), 0 )  .OR.         &
+                     .NOT. BTEST( wall_flags_0(k+1,j-1,i+1), 0 )  .OR.         &
+                     .NOT. BTEST( wall_flags_0(k+1,j+1,i+1), 0 ) )             &
+                   l_wall(k,j,i) = MIN( l_wall(k,j,i), l_grid(k),              &
+                                        SQRT( 0.25_wp * ( dx**2 + dy**2 )      &
+                                              +  ( zw(k) - zu(k) )**2  ) )
+                  
+             ENDIF
+          ENDDO
+       ENDDO
+    ENDDO
+!
+!-- Set lateral boundary conditions for l_wall
+    CALL exchange_horiz( l_wall, nbgp )     
+
+ END SUBROUTINE init_mixing_length
+
+! Description:
+! -----------------------------------------------------------------------------!
+!> Reads topography information from file or sets generic topography. Moreover, 
+!> all topography-relevant topography arrays are initialized, and grid flags
+!> are set.  
+!------------------------------------------------------------------------------!
+ SUBROUTINE init_topo( topo )
+
+    USE arrays_3d,                                                             &
+        ONLY:  zw
+        
+    USE control_parameters,                                                    &
+        ONLY:  bc_lr_cyc, bc_ns_cyc, building_height, building_length_x,       &
+               building_length_y, building_wall_left, building_wall_south,     &
+               canyon_height, canyon_wall_left, canyon_wall_south,             &
+               canyon_width_x, canyon_width_y, dp_level_ind_b, dz,             &
+               message_string, ocean, topography, topography_grid_convention,  &
+               tunnel_height, tunnel_length, tunnel_width_x, tunnel_width_y,   &
+               tunnel_wall_depth
+         
+    USE grid_variables,                                                        &
+        ONLY:  dx, dy
+        
+    USE indices,                                                               &
+        ONLY:  nbgp, nx, nxl, nxlg, nxr, nxrg, ny, nyn, nyng, nys, nysg, nz,   &
+               nzb, nzt
+    
+    USE kinds
+
+    USE pegrid
+
+    USE surface_mod,                                                           &
+        ONLY:  get_topography_top_index
 
     IMPLICIT NONE
@@ -316,22 +1490,7 @@
     INTEGER(iwp) ::  cys           !< index for south canyon wall
     INTEGER(iwp) ::  i             !< index variable along x
-    INTEGER(iwp) ::  id_topo       !< NetCDF id of topograhy input file
-    INTEGER(iwp) ::  ii            !< loop variable for reading topography file
-    INTEGER(iwp) ::  inc           !< incremental parameter for coarsening grid level
+    INTEGER(iwp) ::  it            !< Number of iterations required to fill all problematic holes
     INTEGER(iwp) ::  j             !< index variable along y
     INTEGER(iwp) ::  k             !< index variable along z
-    INTEGER(iwp) ::  k_top         !< topography top index on local PE
-    INTEGER(iwp) ::  l             !< loop variable 
-    INTEGER(iwp) ::  nxl_l         !< index of left PE boundary for multigrid level
-    INTEGER(iwp) ::  nxr_l         !< index of right PE boundary for multigrid level
-    INTEGER(iwp) ::  nyn_l         !< index of north PE boundary for multigrid level
-    INTEGER(iwp) ::  nys_l         !< index of south PE boundary for multigrid level
-    INTEGER(iwp) ::  nzb_local_max !< vertical grid index of maximum topography height
-    INTEGER(iwp) ::  nzb_local_min !< vertical grid index of minimum topography height
-    INTEGER(iwp) ::  nzt_l         !< index of top PE boundary for multigrid level
-    INTEGER(iwp) ::  num_hole      !< number of holes (in topography) resolved by only one grid point 
-    INTEGER(iwp) ::  num_hole_l    !< number of holes (in topography) resolved by only one grid point on local PE     
-    INTEGER(iwp) ::  num_wall      !< number of surrounding vertical walls for a single grid point
-    INTEGER(iwp) ::  skip_n_rows   !< counting variable to skip rows while reading topography file    
     INTEGER(iwp) ::  hv_in         !< heavyside function to model inner tunnel surface 
     INTEGER(iwp) ::  hv_out        !< heavyside function to model outer tunnel surface 
@@ -346,226 +1505,9 @@
     INTEGER(iwp) ::  td            !< tunnel wall depth
     INTEGER(iwp) ::  th            !< height of outer tunnel wall
-                                      
-    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  nzb_local      !< index for topography top at cell-center
-    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  nzb_tmp        !< dummy to calculate topography indices on u- and v-grid
-
-    INTEGER(iwp), DIMENSION(:,:,:), ALLOCATABLE ::  topo_3d !< input array for 3D topography and dummy array for setting "outer"-flags
-
-    LOGICAL  ::  netcdf_extend = .FALSE. !< Flag indicating wether netcdf topography input file or not
-
-    REAL(wp) ::  dum           !< dummy variable to skip columns while reading topography file    
-    REAL(wp) ::  dz_stretched  !< stretched vertical grid spacing
-
-    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  oro_height    !< input variable for terrain height
-    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  topo_height   !< input variable for topography height
-
-    INTEGER( KIND=1 ), DIMENSION(:,:,:), ALLOCATABLE ::  topo_3d_read !< input variable for 3D topography
-
-!
-!-- Calculation of horizontal array bounds including ghost layers
-    nxlg = nxl - nbgp
-    nxrg = nxr + nbgp
-    nysg = nys - nbgp
-    nyng = nyn + nbgp
-
-!
-!-- Allocate grid arrays
-    ALLOCATE( ddzu(1:nzt+1), ddzw(1:nzt+1), dd2zu(1:nzt), dzu(1:nzt+1),        &
-              dzw(1:nzt+1), l_grid(1:nzt), zu(nzb:nzt+1), zw(nzb:nzt+1) )
-
-!
-!-- Compute height of u-levels from constant grid length and dz stretch factors
-    IF ( dz == -1.0_wp )  THEN
-       message_string = 'missing dz'
-       CALL message( 'init_grid', 'PA0200', 1, 2, 0, 6, 0 ) 
-    ELSEIF ( dz <= 0.0_wp )  THEN
-       WRITE( message_string, * ) 'dz=',dz,' <= 0.0'
-       CALL message( 'init_grid', 'PA0201', 1, 2, 0, 6, 0 )
-    ENDIF
-
-!
-!-- Define the vertical grid levels
-    IF ( .NOT. ocean )  THEN
-!
-!--    Grid for atmosphere with surface at z=0 (k=0, w-grid).
-!--    The second u-level (k=1) corresponds to the top of the 
-!--    Prandtl-layer.
-
-       IF ( ibc_uv_b == 0 .OR. ibc_uv_b == 2 ) THEN
-          zu(0) = 0.0_wp
-      !    zu(0) = - dz * 0.5_wp
-       ELSE
-          zu(0) = - dz * 0.5_wp
-       ENDIF
-       zu(1) =   dz * 0.5_wp
-
-       dz_stretch_level_index = nzt+1
-       dz_stretched = dz
-       DO  k = 2, nzt+1
-          IF ( dz_stretch_level <= zu(k-1)  .AND.  dz_stretched < dz_max )  THEN
-             dz_stretched = dz_stretched * dz_stretch_factor
-             dz_stretched = MIN( dz_stretched, dz_max )
-             IF ( dz_stretch_level_index == nzt+1 ) dz_stretch_level_index = k-1
-          ENDIF
-          zu(k) = zu(k-1) + dz_stretched
-       ENDDO
-
-!
-!--    Compute the w-levels. They are always staggered half-way between the 
-!--    corresponding u-levels. In case of dirichlet bc for u and v at the 
-!--    ground the first u- and w-level (k=0) are defined at same height (z=0). 
-!--    The top w-level is extrapolated linearly.
-       zw(0) = 0.0_wp
-       DO  k = 1, nzt
-          zw(k) = ( zu(k) + zu(k+1) ) * 0.5_wp
-       ENDDO
-       zw(nzt+1) = zw(nzt) + 2.0_wp * ( zu(nzt+1) - zw(nzt) )
-
-    ELSE
-!
-!--    Grid for ocean with free water surface is at k=nzt (w-grid).
-!--    In case of neumann bc at the ground the first first u-level (k=0) lies
-!--    below the first w-level (k=0). In case of dirichlet bc the first u- and
-!--    w-level are defined at same height, but staggered from the second level.
-!--    The second u-level (k=1) corresponds to the top of the Prandtl-layer.
-       zu(nzt+1) =   dz * 0.5_wp
-       zu(nzt)   = - dz * 0.5_wp
-
-       dz_stretch_level_index = 0
-       dz_stretched = dz
-       DO  k = nzt-1, 0, -1
-!
-!--       The default value of dz_stretch_level is positive, thus the first 
-!--       condition is always true. Hence, the second condition is necessary.
-          IF ( dz_stretch_level >= zu(k+1)  .AND.  dz_stretch_level <= 0.0  &
-               .AND.  dz_stretched < dz_max )  THEN
-             dz_stretched = dz_stretched * dz_stretch_factor
-             dz_stretched = MIN( dz_stretched, dz_max )
-             IF ( dz_stretch_level_index == 0 ) dz_stretch_level_index = k+1
-          ENDIF
-          zu(k) = zu(k+1) - dz_stretched
-       ENDDO
-
-!
-!--    Compute the w-levels. They are always staggered half-way between the 
-!--    corresponding u-levels, except in case of dirichlet bc for u and v
-!--    at the ground. In this case the first u- and w-level are defined at 
-!--    same height. The top w-level (nzt+1) is not used but set for 
-!--    consistency, since w and all scalar variables are defined up tp nzt+1.
-       zw(nzt+1) = dz
-       zw(nzt)   = 0.0_wp
-       DO  k = 0, nzt
-          zw(k) = ( zu(k) + zu(k+1) ) * 0.5_wp
-       ENDDO
-
-!
-!--    In case of dirichlet bc for u and v the first u- and w-level are defined
-!--    at same height.
-       IF ( ibc_uv_b == 0 ) THEN
-          zu(0) = zw(0)
-       ENDIF
-
-    ENDIF
-
-!
-!-- Compute grid lengths.
-    DO  k = 1, nzt+1
-       dzu(k)  = zu(k) - zu(k-1)
-       ddzu(k) = 1.0_wp / dzu(k)
-       dzw(k)  = zw(k) - zw(k-1)
-       ddzw(k) = 1.0_wp / dzw(k)
-    ENDDO
-
-    DO  k = 1, nzt
-       dd2zu(k) = 1.0_wp / ( dzu(k) + dzu(k+1) )
-    ENDDO
-    
-!    
-!-- The FFT- SOR-pressure solvers assume grid spacings of a staggered grid
-!-- everywhere. For the actual grid, the grid spacing at the lowest level
-!-- is only dz/2, but should be dz. Therefore, an additional array
-!-- containing with appropriate grid information is created for these
-!-- solvers.
-    IF ( psolver(1:9) /= 'multigrid' )  THEN
-       ALLOCATE( ddzu_pres(1:nzt+1) )
-       ddzu_pres = ddzu
-       ddzu_pres(1) = ddzu_pres(2)  ! change for lowest level
-    ENDIF
-
-!
-!-- Compute the reciprocal values of the horizontal grid lengths.
-    ddx = 1.0_wp / dx
-    ddy = 1.0_wp / dy
-    dx2 = dx * dx
-    dy2 = dy * dy
-    ddx2 = 1.0_wp / dx2
-    ddy2 = 1.0_wp / dy2
-
-!
-!-- Compute the grid-dependent mixing length.
-    DO  k = 1, nzt
-       l_grid(k)  = ( dx * dy * dzw(k) )**0.33333333333333_wp
-    ENDDO
-
-!
-!-- Allocate outer and inner index arrays for topography and set
-!-- defaults.                    
-    ALLOCATE( nzb_s_inner(nysg:nyng,nxlg:nxrg),                             &
-              nzb_s_outer(nysg:nyng,nxlg:nxrg),                             &
-              nzb_u_inner(nysg:nyng,nxlg:nxrg),                             &
-              nzb_u_outer(nysg:nyng,nxlg:nxrg),                             &
-              nzb_v_inner(nysg:nyng,nxlg:nxrg),                             &
-              nzb_v_outer(nysg:nyng,nxlg:nxrg),                             &
-              nzb_w_inner(nysg:nyng,nxlg:nxrg),                             &
-              nzb_w_outer(nysg:nyng,nxlg:nxrg),                             &
-              nzb_diff_s_inner(nysg:nyng,nxlg:nxrg),                        &
-              nzb_diff_s_outer(nysg:nyng,nxlg:nxrg),                        &
-              nzb_local(nysg:nyng,nxlg:nxrg),                               &
-              nzb_tmp(nysg:nyng,nxlg:nxrg),                                 &
-              wall_flags_0(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
-
-    ALLOCATE( topo_3d(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
-    topo_3d    = 0
-
-    ALLOCATE( l_wall(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
-
-    nzb_s_inner = nzb;  nzb_s_outer = nzb
-    nzb_u_inner = nzb;  nzb_u_outer = nzb
-    nzb_v_inner = nzb;  nzb_v_outer = nzb
-    nzb_w_inner = nzb;  nzb_w_outer = nzb
-
-!
-!-- Define vertical gridpoint from (or to) which on the usual finite difference
-!-- form (which does not use surface fluxes) is applied 
-    IF ( constant_flux_layer  .OR.  use_surface_fluxes )  THEN
-       nzb_diff = nzb + 2
-    ELSE
-       nzb_diff = nzb + 1
-    ENDIF
-
-    nzb_diff_s_inner = nzb_diff;  nzb_diff_s_outer = nzb_diff
-
-!
-!-- Initialize near-wall mixing length l_wall only in the vertical direction
-!-- for the moment,
-!-- multiplication with wall_adjustment_factor near the end of this routine
-    l_wall(nzb,:,:)   = l_grid(1)
-    DO  k = nzb+1, nzt
-       l_wall(k,:,:)  = l_grid(k)
-    ENDDO
-    l_wall(nzt+1,:,:) = l_grid(nzt)
-
-    DO  k = 1, nzt
-       IF ( l_grid(k) > 1.5_wp * dx * wall_adjustment_factor .OR.  &
-            l_grid(k) > 1.5_wp * dy * wall_adjustment_factor )  THEN
-          WRITE( message_string, * ) 'grid anisotropy exceeds ', &
-                                     'threshold given by only local', &
-                                     ' &horizontal reduction of near_wall ', &
-                                     'mixing length l_wall', &
-                                     ' &starting from height level k = ', k, '.'
-          CALL message( 'init_grid', 'PA0202', 0, 1, 0, 6, 0 )
-          EXIT
-       ENDIF
-    ENDDO
+
+    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  nzb_local         !< index for topography top at cell-center
+    INTEGER(iwp), DIMENSION(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ::  topo !< input array for 3D topography and dummy array for setting "outer"-flags
+
+
 !
 !-- Set outer and inner index arrays for non-flat topography.
@@ -578,13 +1520,7 @@
 
        CASE ( 'flat' )
-!
-!--       nzb_local is required for the multigrid solver
-          nzb_local = 0
-!
+!   
 !--       Initialilize 3D topography array, used later for initializing flags
-          topo_3d(nzb+1:nzt+1,:,:) = IBSET( topo_3d(nzb+1:nzt+1,:,:), 0 ) 
-!
-!--       level of detail is required for output routines
-          lod       = 1
+          topo(nzb+1:nzt+1,:,:) = IBSET( topo(nzb+1:nzt+1,:,:), 0 ) 
 
        CASE ( 'single_building' )
@@ -597,5 +1533,4 @@
           IF ( ABS( zw(bh)   - building_height ) == &
                ABS( zw(bh+1) - building_height )    )  bh = bh + 1
-
           IF ( building_wall_left == 9999999.9_wp )  THEN
              building_wall_left = ( nx + 1 - blx ) / 2 * dx
@@ -605,5 +1540,5 @@
 
           IF ( building_wall_south == 9999999.9_wp )  THEN
-             building_wall_south = ( ny + 1 - bly ) / 2 * dy
+              building_wall_south = ( ny + 1 - bly ) / 2 * dy
           ENDIF
           bys = NINT( building_wall_south / dy )
@@ -612,5 +1547,5 @@
 !
 !--       Building size has to meet some requirements
-          IF ( ( bxl < 1 ) .OR. ( bxr > nx-1 ) .OR. ( bxr < bxl+3 ) .OR.  &
+          IF ( ( bxl < 1 ) .OR. ( bxr > nx-1 ) .OR. ( bxr < bxl+3 ) .OR.       &
                ( bys < 1 ) .OR. ( byn > ny-1 ) .OR. ( byn < bys+3 ) )  THEN
              WRITE( message_string, * ) 'inconsistent building parameters:',   &
@@ -620,26 +1555,22 @@
           ENDIF
 
+          ALLOCATE( nzb_local(nysg:nyng,nxlg:nxrg) )
 !
 !--       Define the building. 
-          nzb_local = 0
           IF ( bxl <= nxr  .AND.  bxr >= nxl  .AND.                            &
-               bys <= nyn  .AND.  byn >= nys )                                 &        
+               bys <= nyn  .AND.  byn >= nys )                                 & 
              nzb_local(MAX(nys,bys):MIN(nyn,byn),MAX(nxl,bxl):MIN(nxr,bxr)) = bh
-
-          CALL exchange_horiz_2d_int( nzb_local, nys, nyn, nxl, nxr, nbgp )
-!
-!--       Set bit array to mask topography
-          DO  i = nxlg, nxrg
-             DO  j = nysg, nyng
-
-                topo_3d(nzb_local(j,i)+1:nzt+1,j,i) =                          &
-                                 IBSET( topo_3d(nzb_local(j,i)+1:nzt+1,j,i), 0 ) 
+!
+!--       Set bit array on basis of nzb_local
+          DO  i = nxl, nxr
+             DO  j = nys, nyn
+                topo(nzb_local(j,i)+1:nzt+1,j,i) =                             &
+                                 IBSET( topo(nzb_local(j,i)+1:nzt+1,j,i), 0 ) 
              ENDDO
           ENDDO
-!
-!--       level of detail is required for output routines. Here, 2D topography. 
-          lod = 1
-
-          CALL exchange_horiz_int( topo_3d, nbgp )
+        
+          DEALLOCATE( nzb_local )
+
+          CALL exchange_horiz_int( topo, nys, nyn, nxl, nxr, nzt, nbgp )
 
        CASE ( 'single_street_canyon' )
@@ -656,5 +1587,4 @@
              cxl = NINT( canyon_wall_left / dx )
              cxr = cxl + cwx
-
           ELSEIF ( canyon_width_y /= 9999999.9_wp )  THEN
 !
@@ -666,5 +1596,5 @@
              cys = NINT( canyon_wall_south / dy )
              cyn = cys + cwy
-
+      
           ELSE
              
@@ -677,5 +1607,4 @@
           IF ( ABS( zw(ch)   - canyon_height ) == &
                ABS( zw(ch+1) - canyon_height )    )  ch = ch + 1
-
           dp_level_ind_b = ch
 !
@@ -683,5 +1612,5 @@
           IF ( canyon_width_x /= 9999999.9_wp )  THEN
              IF ( ( cxl < 1 ) .OR. ( cxr > nx-1 ) .OR. ( cwx < 3 ) .OR.        &
-               ( ch < 3 ) )  THEN
+                  ( ch < 3 ) )  THEN
                 WRITE( message_string, * ) 'inconsistent canyon parameters:',  &
                                            '&cxl=', cxl, 'cxr=', cxr,          &
@@ -692,5 +1621,5 @@
           ELSEIF ( canyon_width_y /= 9999999.9_wp )  THEN
              IF ( ( cys < 1 ) .OR. ( cyn > ny-1 ) .OR. ( cwy < 3 ) .OR.        &
-               ( ch < 3 ) )  THEN
+                  ( ch < 3 ) )  THEN
                 WRITE( message_string, * ) 'inconsistent canyon parameters:',  &
                                            '&cys=', cys, 'cyn=', cyn,          &
@@ -708,4 +1637,5 @@
           ENDIF
 
+          ALLOCATE( nzb_local(nysg:nyng,nxlg:nxrg) )
           nzb_local = ch
           IF ( canyon_width_x /= 9999999.9_wp )  THEN
@@ -716,19 +1646,15 @@
                 nzb_local(MAX(nys,cys+1):MIN(nyn,cyn-1),:) = 0
           ENDIF
-
-          CALL exchange_horiz_2d_int( nzb_local, nys, nyn, nxl, nxr, nbgp )
-!
-!--       Set bit array to mask topography
-          DO  i = nxlg, nxrg
-             DO  j = nysg, nyng
-                topo_3d(nzb_local(j,i)+1:nzt+1,j,i) =                          &
-                                 IBSET( topo_3d(nzb_local(j,i)+1:nzt+1,j,i), 0 ) 
+!
+!--       Set bit array on basis of nzb_local
+          DO  i = nxl, nxr
+             DO  j = nys, nyn
+                topo(nzb_local(j,i)+1:nzt+1,j,i) =                             &
+                                 IBSET( topo(nzb_local(j,i)+1:nzt+1,j,i), 0 ) 
              ENDDO
           ENDDO
-!
-!--       level of detail is required for output routines. Here, 2D topography. 
-          lod = 1
-
-          CALL exchange_horiz_int( topo_3d, nbgp )
+          DEALLOCATE( nzb_local )
+
+          CALL exchange_horiz_int( topo, nys, nyn, nxl, nxr, nzt, nbgp )
 
        CASE ( 'tunnel' )
@@ -743,5 +1669,5 @@
 !
 !--       Tunnel-wall depth
-          IF ( tunnel_wall_depth == 9999999.9_wp )  THEN
+          IF ( tunnel_wall_depth == 9999999.9_wp )  THEN  
              td = MAX ( dx, dy, dz )
           ELSE
@@ -775,5 +1701,5 @@
                                       ( tunnel_width_x * 0.5_wp - td ) )
              txe_in  = INT( ( nx + 1 ) * 0.5_wp * dx +                         &
-                                      ( tunnel_width_x * 0.5_wp - td ) )
+                                   ( tunnel_width_x * 0.5_wp - td ) )
 
              tys_out = INT( ( ny + 1 ) * 0.5_wp * dy - tunnel_length * 0.5_wp )
@@ -782,11 +1708,13 @@
              tye_in  = tye_out
           ENDIF
-          IF ( tunnel_width_x /= 9999999.9_wp  .AND.                           &
-               tunnel_width_x - 2.0_wp * tunnel_wall_depth <= 2.0_wp * dx )  THEN
+          IF ( tunnel_width_x /= 9999999.9_wp  .AND.                           &   
+               tunnel_width_x - 2.0_wp * td <= 2.0_wp * dx )                   &
+          THEN
              message_string = 'Tunnel width too small'
              CALL message( 'init_grid', 'PA0175', 1, 2, 0, 6, 0 )
           ENDIF
           IF ( tunnel_width_y /= 9999999.9_wp  .AND.                           &
-               tunnel_width_y - 2.0_wp * tunnel_wall_depth <= 2.0_wp * dy )  THEN
+               tunnel_width_y - 2.0_wp * td <= 2.0_wp * dy )                   &
+          THEN
              message_string = 'Tunnel width too small'
              CALL message( 'init_grid', 'PA0455', 1, 2, 0, 6, 0 )
@@ -808,10 +1736,10 @@
              tye_out = INT( ( ny + 1 ) * 0.5_wp * dy + tunnel_width_y * 0.5_wp )
              tys_in  = INT( ( ny + 1 ) * 0.5_wp * dy -                         &
-                                     ( tunnel_width_y * 0.5_wp - td ) )
+                                        ( tunnel_width_y * 0.5_wp - td ) )
              tye_in  = INT( ( ny + 1 ) * 0.5_wp * dy +                         &
                                      ( tunnel_width_y * 0.5_wp - td ) )
           ENDIF
 
-          topo_3d = 0
+          topo = 0
           DO  i = nxl, nxr
              DO  j = nys, nyn
@@ -825,5 +1753,5 @@
                             ( ( SIGN( 1.0_wp, j * dy - tys_out ) + 1.0_wp )    &
                             - ( SIGN( 1.0_wp, j * dy - tye_out ) + 1.0_wp ) )
-! 
+!    
 !--             Use heaviside function to model inner tunnel surface
                 hv_in  = ( th - td ) * 0.5_wp *                                &
@@ -837,5 +1765,5 @@
 !--             Set flags at x-y-positions without any tunnel surface
                 IF ( hv_out - hv_in == 0.0_wp )  THEN
-                   topo_3d(nzb+1:nzt+1,j,i) = IBSET( topo_3d(nzb+1:nzt+1,j,i), 0 )
+                   topo(nzb+1:nzt+1,j,i) = IBSET( topo(nzb+1:nzt+1,j,i), 0 )
 !
 !--             Set flags at x-y-positions with tunnel surfaces
@@ -846,7 +1774,7 @@
                       IF ( hv_out - hv_in == th )  THEN
                          IF ( zw(k) <= hv_out )  THEN
-                            topo_3d(k,j,i) = IBCLR( topo_3d(k,j,i), 0 )
+                            topo(k,j,i) = IBCLR( topo(k,j,i), 0 )
                          ELSE
-                            topo_3d(k,j,i) = IBSET( topo_3d(k,j,i), 0 )
+                            topo(k,j,i) = IBSET( topo(k,j,i), 0 )
                          ENDIF
                       ENDIF
@@ -855,9 +1783,9 @@
                       IF ( hv_out - hv_in == td )  THEN
                          IF ( zw(k) <= hv_in )  THEN 
-                            topo_3d(k,j,i) = IBSET( topo_3d(k,j,i), 0 )
+                            topo(k,j,i) = IBSET( topo(k,j,i), 0 )
                          ELSEIF ( zw(k) > hv_in  .AND.  zw(k) <= hv_out )  THEN 
-                            topo_3d(k,j,i) = IBCLR( topo_3d(k,j,i), 0 )
+                            topo(k,j,i) = IBCLR( topo(k,j,i), 0 )
                          ELSEIF ( zw(k) > hv_out )  THEN 
-                            topo_3d(k,j,i) = IBSET( topo_3d(k,j,i), 0 )
+                            topo(k,j,i) = IBSET( topo(k,j,i), 0 )
                          ENDIF
                       ENDIF
@@ -867,189 +1795,34 @@
           ENDDO
 
-          nzb_local = 0
-!
-!--       level of detail is required for output routines. Here, 3D topography. 
-          lod = 2
-
-          CALL exchange_horiz_int( topo_3d, nbgp )
+          CALL exchange_horiz_int( topo, nys, nyn, nxl, nxr, nzt, nbgp )
 
        CASE ( 'read_from_file' )
-
-          ALLOCATE ( oro_height(nys:nyn,nxl:nxr)  )
-          ALLOCATE ( topo_height(nys:nyn,nxl:nxr) )
-          oro_height  = 0.0_wp
-          topo_height = 0.0_wp
-
-          DO  ii = 0, io_blocks-1
-             IF ( ii == io_group )  THEN
-
-!
-!--             Arbitrary irregular topography data in PALM format (exactly
-!--             matching the grid size and total domain size). 
-!--             First, check if NetCDF file for topography exist or not.
-!--             This case, read topography from NetCDF, else read it from 
-!--             ASCII file.
-#if defined ( __netcdf )
-                INQUIRE( FILE='TOPOGRAPHY_DATA_NC'//TRIM( coupling_char ),     &
-                         EXIST=netcdf_extend )
-!
-!--             NetCDF branch    
-                IF ( netcdf_extend )  THEN
-!
-!--                Open file in read-only mode
-                   CALL netcdf_open_read_file( 'TOPOGRAPHY_DATA_NC',           &
-                                               id_topo, 20 )  !Error number still need to be set properly 
-
-!
-!--                Read terrain height. Reading is done PE-wise, i.e. each
-!--                processor reads its own domain. Reading is realized
-!--                via looping over x-dimension, i.e. calling 
-!--                netcdf_get_variable reads topography along y for given x. 
-!--                Orography is 2D. 
-                   DO  i = nxl, nxr
-                      CALL netcdf_get_variable( id_topo, 'orography_0',        &
-                                                i, oro_height(:,i), 20 )  !Error number still need to be set properly 
-                   ENDDO
-!
-!--                Read attribute lod (level of detail), required for variable 
-!--                buildings_0 
-                   CALL netcdf_get_attribute( id_topo, "lod", lod, .FALSE.,    &
-                                              20, 'buildings_0' ) !Error number still need to be set properly 
-!
-!--                Read building height
-!--                2D for lod = 1, 3D for lod = 2
-                   IF ( lod == 1 )  THEN
-                      DO  i = nxl, nxr
-                         CALL netcdf_get_variable( id_topo, 'buildings_0',     &
-                                                   i, topo_height(:,i), 20 )  !Error number still need to be set properly 
-                      ENDDO
-
-                   ELSEIF ( lod == 2 )  THEN
-!
-!--                   Allocate 1-byte integer dummy array to read 3D topography
-                      ALLOCATE( topo_3d_read(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
-!
-!--                   Read data PE-wise. Read yz-slices.
-                      DO  i = nxl, nxr
-                         DO  j = nys, nyn
-                            CALL netcdf_get_variable( id_topo, 'buildings_0',  &
-                                                      i, j, topo_3d_read(:,j,i), 20 )  !Error number still need to be set properly 
-                         ENDDO
-                      ENDDO
-                   ELSE 
-                      message_string = 'NetCDF attribute lod ' //              &
-                                       '(level of detail) is not set properly.'
-                      CALL message( 'init_grid', 'PA0457', 1, 2, 0, 6, 0 )
-                   ENDIF
-!
-!--                On file, 3D topography grid points is classified with 1, 
-!--                atmosphere is classified with 0, contrary to the internal 
-!--                treatment. Hence, conversion is required. Moreover, set 
-!--                topography array to zero at lowest grid level. 
-                   topo_3d = MERGE( 0, 1, topo_3d_read == 1 )
-                   topo_3d(nzb,:,:) = 0 
-!
-!--                Deallocate dummy array
-                   DEALLOCATE( topo_3d_read )
-!
-!--                Close topography input file
-                   CALL netcdf_close_file( id_topo, 20 )
-#endif
-
-!
-!--             ASCII branch. Please note, reading of 3D topography is not
-!--             supported in ASCII format. Further, no distinction is made 
-!--             between orography and buildings
-                ELSE
-
-                   OPEN( 90, FILE='TOPOGRAPHY_DATA'//TRIM( coupling_char ),    &
-                         STATUS='OLD', FORM='FORMATTED', ERR=10 )
-!
-!--                Read topography PE-wise. Rows are read from nyn to nys, columns
-!--                are read from nxl to nxr. At first, ny-nyn rows need to be skipped.
-                   skip_n_rows = 0
-                   DO WHILE ( skip_n_rows < ny - nyn )
-                      READ( 90, * )  
-                      skip_n_rows = skip_n_rows + 1
-                   ENDDO
-!
-!--                Read data from nyn to nys and nxl to nxr. Therefore, skip 
-!--                column until nxl-1 is reached
-                   DO  j = nyn, nys, -1
-                      READ( 90, *, ERR=11, END=11 )                            &
-                                              ( dum, i = 0, nxl-1 ),           &
-                                              ( topo_height(j,i), i = nxl, nxr )
-                   ENDDO
-
-                   GOTO 12
-          
- 10                message_string = 'file TOPOGRAPHY'//TRIM( coupling_char )// &
-                                    ' does not exist'
-                   CALL message( 'init_grid', 'PA0208', 1, 2, 0, 6, 0 )
-
- 11                message_string = 'errors in file TOPOGRAPHY_DATA'//         &
-                                    TRIM( coupling_char )
-                   CALL message( 'init_grid', 'PA0209', 1, 2, 0, 6, 0 )
-
- 12                CLOSE( 90 )
-
-                ENDIF
-
-             ENDIF
-#if defined( __parallel )
-             CALL MPI_BARRIER( comm2d, ierr )
-#endif
-          ENDDO
-
-!
-!--       Calculate the index height of the topography
-          nzb_local = 0
-          DO  i = nxl, nxr
-             DO  j = nys, nyn
-                IF ( .NOT. ocean )  THEN
-                   nzb_local(j,i) = MINLOC( ABS( zw - topo_height(j,i)         &
-                                                    - oro_height(j,i) ), 1 ) - 1
-                   IF ( ABS( zw(nzb_local(j,i)  ) - topo_height(j,i)           &
-                                                  - oro_height(j,i)  ) ==      &
-                        ABS( zw(nzb_local(j,i)+1) - topo_height(j,i)           &
-                                                  - oro_height(j,i)  )    )    &
-                      nzb_local(j,i) = nzb_local(j,i) + 1
-                ELSE
-                   nzb_local(j,i) = MINLOC( ABS( zw - zw(0)                    &
-                                                    - topo_height(j,i)         &
-                                                    - oro_height(j,i) ), 1 ) - 1
-                   IF ( ABS( zw(nzb_local(j,i)  ) - zw(0)                      &
-                                                  - topo_height(j,i)           &
-                                                  - oro_height(j,i)  )  ==     &
-                        ABS( zw(nzb_local(j,i)+1) - zw(0)                      &
-                                                  - topo_height(j,i)           &
-                                                  - oro_height(j,i)  )    )    &
-                      nzb_local(j,i) = nzb_local(j,i) + 1
-                ENDIF
-
-             ENDDO
-          ENDDO
-
-          DEALLOCATE ( oro_height  )
-          DEALLOCATE ( topo_height )
-!
-!--       Filter topography, i.e. fill holes resolved by only one grid point.  
-!--       Such holes are suspected to lead to velocity blow-ups as continuity 
-!--       equation on discrete grid cannot be fulfilled in such case.
-!--       For now, check only for holes and fill them to the lowest height level
-!--       of the directly adjoining grid points along x- and y- direction. 
-!--       Before checking for holes, set lateral boundary conditions for 
-!--       topography. After hole-filling, boundary conditions must be set again!
-          CALL exchange_horiz_2d_int( nzb_local, nys, nyn, nxl, nxr, nbgp )
-          
+!
+!--       Note, topography information have been already read.  
+!--       If required, further process topography, i.e. reference buildings on
+!--       top of orography and set temporary 3D topography array, which is 
+!--       used later to set grid flags. Calling of this rouinte is also 
+!--       required in case of ASCII input, even though no distinction between 
+!--       terrain- and building height is made in this case.  
+          CALL process_topography( topo )
+!
+!--       Filter holes resolved by only one grid-point
+          CALL filter_topography( topo )
+!
+!--       Exchange ghost-points, as well as add cyclic or Neumann boundary 
+!--       conditions.
+          CALL exchange_horiz_int( topo, nys, nyn, nxl, nxr, nzt, nbgp )
+!
+!--       Set lateral boundary conditions for topography on all ghost layers          
           IF ( .NOT. bc_ns_cyc )  THEN
              IF ( nys == 0  )  THEN
-                nzb_local(-1,:)   = nzb_local(0,:)
-                nzb_local(-2,:)   = nzb_local(0,:)
-                nzb_local(-3,:)   = nzb_local(0,:)
-             ELSEIF ( nyn == ny )  THEN
-                nzb_local(ny+1,:) = nzb_local(ny,:)
-                nzb_local(ny+2,:) = nzb_local(ny,:)
-                nzb_local(ny+3,:) = nzb_local(ny,:)
+                DO  i = 1, nbgp         
+                   topo(:,nys-i,:) = topo(:,nys,:)
+                ENDDO
+             ENDIF
+             IF ( nyn == ny )  THEN
+                DO  i = 1, nbgp         
+                   topo(:,nyn+i,:) = topo(:,nyn,:)
+                ENDDO
              ENDIF
           ENDIF
@@ -1057,118 +1830,30 @@
           IF ( .NOT. bc_lr_cyc )  THEN
              IF ( nxl == 0  )  THEN
-                nzb_local(:,-1)   = nzb_local(:,0)
-                nzb_local(:,-2)   = nzb_local(:,0)
-                nzb_local(:,-3)   = nzb_local(:,0)
-             ELSEIF ( nxr == nx )  THEN
-                nzb_local(:,nx+1) = nzb_local(:,nx)
-                nzb_local(:,nx+2) = nzb_local(:,nx)          
-                nzb_local(:,nx+3) = nzb_local(:,nx)          
-             ENDIF          
+                DO  i = 1, nbgp 
+                   topo(:,:,nxl-i) = topo(:,:,nxl)
+                ENDDO
+             ENDIF
+             IF ( nxr == nx )  THEN
+                DO  i = 1, nbgp 
+                   topo(:,:,nxr+i) = topo(:,:,nxr)
+                ENDDO
+             ENDIF
           ENDIF
 
-          num_hole_l = 0
-          DO i = nxl, nxr
-             DO j = nys, nyn
-
-                num_wall = 0
-
-                IF ( nzb_local(j-1,i) > nzb_local(j,i) )                       &
-                   num_wall = num_wall + 1
-                IF ( nzb_local(j+1,i) > nzb_local(j,i) )                       &
-                   num_wall = num_wall + 1
-                IF ( nzb_local(j,i-1) > nzb_local(j,i) )                       &
-                   num_wall = num_wall + 1
-                IF ( nzb_local(j,i+1) > nzb_local(j,i) )                       &
-                   num_wall = num_wall + 1
-
-                IF ( num_wall == 4 )  THEN
-                   nzb_local(j,i) = MIN( nzb_local(j-1,i), nzb_local(j+1,i),   &
-                                         nzb_local(j,i-1), nzb_local(j,i+1) )
-                   num_hole_l     = num_hole_l + 1
-                ENDIF
-             ENDDO
-          ENDDO
-!
-!--       Count the total number of holes, required for informative message.
-#if defined( __parallel )
-          CALL MPI_ALLREDUCE( num_hole_l, num_hole, 1, MPI_INTEGER, MPI_SUM,   &
-                              comm2d, ierr )
-#else
-          num_hole = num_hole_l
-#endif    
-!
-!--       Create an informative message if any hole was removed.
-          IF ( num_hole > 0 )  THEN
-             WRITE( message_string, * ) num_hole, 'hole(s) resolved by only '//&
-                                                  'one grid point were filled'
-             CALL message( 'init_grid', 'PA0430', 0, 0, 0, 6, 0 )
-          ENDIF
-
-!
-!--       Set bit array to mask topography. Only required for lod = 1
-          IF ( lod == 1 )  THEN
-             DO  i = nxlg, nxrg
-                DO  j = nysg, nyng
-                   topo_3d(nzb_local(j,i)+1:nzt+1,j,i) =                          &
-                                 IBSET( topo_3d(nzb_local(j,i)+1:nzt+1,j,i), 0 ) 
-                ENDDO
-             ENDDO
-          ENDIF
-!
-!--       Exchange ghost-points, as well as add cyclic or Neumann boundary 
-!--       conditions.
-          CALL exchange_horiz_int( topo_3d, nbgp )
-          CALL exchange_horiz_2d_int( nzb_local, nys, nyn, nxl, nxr, nbgp )
-          
-          IF ( .NOT. bc_ns_cyc )  THEN
-             IF ( nys == 0  )  topo_3d(:,-1,:)   = topo_3d(:,0,:)
-             IF ( nyn == ny )  topo_3d(:,ny+1,:) = topo_3d(:,ny,:)
-
-             IF ( nys == 0  )  nzb_local(-1,:)   = nzb_local(0,:)
-             IF ( nyn == ny )  nzb_local(ny+1,:) = nzb_local(ny,:)
-          ENDIF
-
-          IF ( .NOT. bc_lr_cyc )  THEN
-             IF ( nxl == 0  )  topo_3d(:,:,-1)   = topo_3d(:,:,0)
-             IF ( nxr == nx )  topo_3d(:,:,nx+1) = topo_3d(:,:,nx)     
-
-             IF ( nxl == 0  )  nzb_local(:,-1)   = nzb_local(:,0)
-             IF ( nxr == nx )  nzb_local(:,nx+1) = nzb_local(:,nx)          
-          ENDIF
-
 
        CASE DEFAULT
-!
+!   
 !--       The DEFAULT case is reached either if the parameter topography
 !--       contains a wrong character string or if the user has defined a special
 !--       case in the user interface. There, the subroutine user_init_grid 
 !--       checks which of these two conditions applies.
-          CALL user_init_grid( topo_3d )
+          CALL user_init_grid( topo )
+          CALL filter_topography( topo )
 
     END SELECT
 !
 !-- Consistency checks and index array initialization are only required for
-!-- non-flat topography, also the initialization of topography height arrays
-!-- zu_s_inner and zw_w_inner
+!-- non-flat topography.
     IF ( TRIM( topography ) /= 'flat' )  THEN
-#if defined( __parallel )
-       CALL MPI_ALLREDUCE( MAXVAL( nzb_local ), nzb_local_max, 1, MPI_INTEGER, &
-                           MPI_MAX, comm2d, ierr )
-       CALL MPI_ALLREDUCE( MINVAL( nzb_local ), nzb_local_min, 1, MPI_INTEGER, &
-                           MPI_MIN, comm2d, ierr )                           
-#else
-       nzb_local_max = MAXVAL( nzb_local )
-       nzb_local_min = MINVAL( nzb_local )
-#endif
-
-!
-!--    Consistency checks
-       IF ( nzb_local_min < 0  .OR.  nzb_local_max  > nz + 1 )  THEN
-          WRITE( message_string, * ) 'nzb_local values are outside the',       &
-                                'model domain',                                &
-                                '&MINVAL( nzb_local ) = ', nzb_local_min,      &
-                                '&MAXVAL( nzb_local ) = ', nzb_local_max
-          CALL message( 'init_grid', 'PA0210', 1, 2, 0, 6, 0 )
-       ENDIF
 !
 !--    In case of non-flat topography, check whether the convention how to 
@@ -1184,9 +1869,9 @@
 !--          defined in init_grid.
              WRITE( message_string, * )                                        &
-                  'The value for "topography_grid_convention" ',               &
-                  'is not set. Its default value is & only valid for ',        &
-                  '"topography" = ''single_building'', ',                      &
-                  '''single_street_canyon'' & or ''read_from_file''.',         &
-                  ' & Choose ''cell_edge'' or ''cell_center''.'
+               'The value for "topography_grid_convention" ',                  &
+               'is not set. Its default value is & only valid for ',           &
+               '"topography" = ''single_building'', ',                         &
+               '''single_street_canyon'' & or ''read_from_file''.',            &
+               ' & Choose ''cell_edge'' or ''cell_center''.'
              CALL message( 'init_grid', 'PA0239', 1, 2, 0, 6, 0 )
           ELSE
@@ -1204,44 +1889,9 @@
                 TRIM( topography_grid_convention ) /= 'cell_center' )  THEN
           WRITE( message_string, * )                                           &
-               'The value for "topography_grid_convention" is ',               &
-               'not recognized. & Choose ''cell_edge'' or ''cell_center''.'
+            'The value for "topography_grid_convention" is ',                  &
+            'not recognized. & Choose ''cell_edge'' or ''cell_center''.'
           CALL message( 'init_grid', 'PA0240', 1, 2, 0, 6, 0 )
        ENDIF
 
-!
-!--    In case of non-flat topography, check whether the convention how to 
-!--    define the topography grid has been set correctly, or whether the default
-!--    is applicable. If this is not possible, abort.
-       IF ( TRIM( topography_grid_convention ) == ' ' )  THEN
-          IF ( TRIM( topography ) /= 'single_building' .AND.                   &
-               TRIM( topography ) /= 'single_street_canyon' .AND.              &
-               TRIM( topography ) /= 'read_from_file' )  THEN
-!--          The default value is not applicable here, because it is only valid
-!--          for the two standard cases 'single_building' and 'read_from_file'
-!--          defined in init_grid.
-             WRITE( message_string, * )                                        &
-                  'The value for "topography_grid_convention" ',               &
-                  'is not set. Its default value is & only valid for ',        &
-                  '"topography" = ''single_building'', ',                      &
-                  '''single_street_canyon'' & or ''read_from_file''.',         &
-                  ' & Choose ''cell_edge'' or ''cell_center''.'
-             CALL message( 'init_grid', 'PA0239', 1, 2, 0, 6, 0 )
-          ELSE
-!--          The default value is applicable here.
-!--          Set convention according to topography.
-             IF ( TRIM( topography ) == 'single_building' .OR.                 &
-                  TRIM( topography ) == 'single_street_canyon' )  THEN
-                topography_grid_convention = 'cell_edge'
-             ELSEIF ( TRIM( topography ) == 'read_from_file' )  THEN
-                topography_grid_convention = 'cell_center'
-             ENDIF
-          ENDIF
-       ELSEIF ( TRIM( topography_grid_convention ) /= 'cell_edge' .AND.        &
-                TRIM( topography_grid_convention ) /= 'cell_center' )  THEN
-          WRITE( message_string, * )                                           &
-               'The value for "topography_grid_convention" is ',               &
-               'not recognized. & Choose ''cell_edge'' or ''cell_center''.'
-          CALL message( 'init_grid', 'PA0240', 1, 2, 0, 6, 0 )
-       ENDIF
 
        IF ( topography_grid_convention == 'cell_edge' )  THEN
@@ -1259,269 +1909,80 @@
           DO  j = nys+1, nyn+1
              DO  i = nxl-1, nxr
-                nzb_local(j,i) = MIN( nzb_local(j,i), nzb_local(j,i+1) )
-             ENDDO
-          ENDDO
-!
-!--       Exchange ghost points
-          CALL exchange_horiz_2d_int( nzb_local, nys, nyn, nxl, nxr, nbgp )
-
-          DO  i = nxl, nxr+1
-             DO  j = nys-1, nyn
-                nzb_local(j,i) = MIN( nzb_local(j,i), nzb_local(j+1,i) )
-             ENDDO
-          ENDDO  
-!
-!--       Exchange ghost points          
-          CALL exchange_horiz_2d_int( nzb_local, nys, nyn, nxl, nxr, nbgp )
-!
-!--       Apply cell-edge convention also for 3D topo array. The former setting
-!--       of nzb_local will be removed later. 
-          DO  j = nys+1, nyn+1
-             DO  i = nxl-1, nxr
                 DO  k = nzb, nzt+1
-                   IF ( BTEST( topo_3d(k,j,i), 0 )  .OR.                       &
-                        BTEST( topo_3d(k,j,i+1), 0 ) )                         &
-                      topo_3d(k,j,i) = IBSET( topo_3d(k,j,i), 0 )
+                   IF ( BTEST( topo(k,j,i), 0 )  .OR.                          &
+                        BTEST( topo(k,j,i+1), 0 ) )                            &
+                       topo(k,j,i) = IBSET( topo(k,j,i), 0 )
                 ENDDO
              ENDDO
           ENDDO      
-          CALL exchange_horiz_int( topo_3d, nbgp )   
+          CALL exchange_horiz_int( topo, nys, nyn, nxl, nxr, nzt, nbgp )
 
           DO  i = nxl, nxr+1
              DO  j = nys-1, nyn
                 DO  k = nzb, nzt+1
-                   IF ( BTEST( topo_3d(k,j,i), 0 )  .OR.                       &
-                        BTEST( topo_3d(k,j+1,i), 0 ) )                         &
-                      topo_3d(k,j,i) = IBSET( topo_3d(k,j,i), 0 )
+                   IF ( BTEST( topo(k,j,i), 0 )  .OR.                          &
+                        BTEST( topo(k,j+1,i), 0 ) )                            &
+                      topo(k,j,i) = IBSET( topo(k,j,i), 0 )
                 ENDDO
              ENDDO
           ENDDO  
-          CALL exchange_horiz_int( topo_3d, nbgp )
+          CALL exchange_horiz_int( topo, nys, nyn, nxl, nxr, nzt, nbgp )
    
        ENDIF
-      
-!
-!--    Initialize index arrays nzb_s_inner and nzb_w_inner
-
-       nzb_s_inner = nzb_local
-       nzb_w_inner = nzb_local
-
-!
-!--    Initialize remaining index arrays:
-!--    first pre-initialize them with nzb_s_inner...
-       nzb_u_inner = nzb_s_inner
-       nzb_u_outer = nzb_s_inner
-       nzb_v_inner = nzb_s_inner
-       nzb_v_outer = nzb_s_inner
-       nzb_w_outer = nzb_s_inner
-       nzb_s_outer = nzb_s_inner
-
-!
-!--    ...then extend pre-initialized arrays in their according directions
-!--    based on nzb_local using nzb_tmp as a temporary global index array
-
-!
-!--    nzb_s_outer: 
-!--    extend nzb_local east-/westwards first, then north-/southwards
-       nzb_tmp = nzb_local
-       DO  j = nys, nyn
-          DO  i = nxl, nxr
-             nzb_tmp(j,i) = MAX( nzb_local(j,i-1), nzb_local(j,i),             &
-                                 nzb_local(j,i+1) )
-          ENDDO
-       ENDDO
-       
-       CALL exchange_horiz_2d_int( nzb_tmp, nys, nyn, nxl, nxr, nbgp )
-       
-       DO  i = nxl, nxr
-          DO  j = nys, nyn
-             nzb_s_outer(j,i) = MAX( nzb_tmp(j-1,i), nzb_tmp(j,i),             &
-                                     nzb_tmp(j+1,i) )
-          ENDDO
-!
-!--       non-cyclic boundary conditions (overwritten by call of
-!--       exchange_horiz_2d_int below in case of cyclic boundary conditions)
-          IF ( nys == 0 )  THEN
-             j = -1
-             nzb_s_outer(j,i) = MAX( nzb_tmp(j+1,i), nzb_tmp(j,i) )
-          ENDIF
-          IF ( nyn == ny )  THEN
-             j = ny + 1
-             nzb_s_outer(j,i) = MAX( nzb_tmp(j-1,i), nzb_tmp(j,i) )
-          ENDIF
-       ENDDO
-!
-!--    nzb_w_outer: 
-!--    identical to nzb_s_outer
-       nzb_w_outer = nzb_s_outer
-
-!
-!--    nzb_u_inner: 
-!--    extend nzb_local rightwards only
-       nzb_tmp = nzb_local
-       DO  j = nys, nyn
-          DO  i = nxl, nxr
-             nzb_tmp(j,i) = MAX( nzb_local(j,i-1), nzb_local(j,i) )
-          ENDDO
-       ENDDO
-       
-       CALL exchange_horiz_2d_int( nzb_tmp, nys, nyn, nxl, nxr, nbgp )
-       
-       nzb_u_inner = nzb_tmp
-!
-!--    nzb_u_outer: 
-!--    extend current nzb_tmp (nzb_u_inner) north-/southwards
-       DO  i = nxl, nxr
-          DO  j = nys, nyn
-             nzb_u_outer(j,i) = MAX( nzb_tmp(j-1,i), nzb_tmp(j,i),             &
-                                     nzb_tmp(j+1,i) )
-          ENDDO
-!
-!--       non-cyclic boundary conditions (overwritten by call of
-!--       exchange_horiz_2d_int below in case of cyclic boundary conditions)
-          IF ( nys == 0 )  THEN
-             j = -1
-             nzb_u_outer(j,i) = MAX( nzb_tmp(j+1,i), nzb_tmp(j,i) )
-          ENDIF
-          IF ( nyn == ny )  THEN
-             j = ny + 1
-             nzb_u_outer(j,i) = MAX( nzb_tmp(j-1,i), nzb_tmp(j,i) )
-          ENDIF
-       ENDDO
-
-!
-!--    nzb_v_inner:
-!--    extend nzb_local northwards only
-       nzb_tmp = nzb_local
-       DO  i = nxl, nxr
-          DO  j = nys, nyn
-             nzb_tmp(j,i) = MAX( nzb_local(j-1,i), nzb_local(j,i) )
-          ENDDO
-       ENDDO
-       
-       CALL exchange_horiz_2d_int( nzb_tmp, nys, nyn, nxl, nxr, nbgp )      
-       nzb_v_inner = nzb_tmp
-
-!
-!--    nzb_v_outer: 
-!--    extend current nzb_tmp (nzb_v_inner) right-/leftwards
-       DO  j = nys, nyn
-          DO  i = nxl, nxr
-             nzb_v_outer(j,i) = MAX( nzb_tmp(j,i-1), nzb_tmp(j,i),             &
-                                     nzb_tmp(j,i+1) )
-          ENDDO
-!
-!--       non-cyclic boundary conditions (overwritten by call of
-!--       exchange_horiz_2d_int below in case of cyclic boundary conditions)
-          IF ( nxl == 0 )  THEN
-             i = -1
-             nzb_v_outer(j,i) = MAX( nzb_tmp(j,i+1), nzb_tmp(j,i) )
-          ENDIF
-          IF ( nxr == nx )  THEN
-             i = nx + 1
-             nzb_v_outer(j,i) = MAX( nzb_tmp(j,i-1), nzb_tmp(j,i) )
-          ENDIF
-       ENDDO
-
-!
-!--    Exchange of lateral boundary values (parallel computers) and cyclic
-!--    boundary conditions, if applicable.
-!--    Since nzb_s_inner and nzb_w_inner are derived directly from nzb_local
-!--    they do not require exchange and are not included here.
-       CALL exchange_horiz_2d_int( nzb_u_inner, nys, nyn, nxl, nxr, nbgp )
-       CALL exchange_horiz_2d_int( nzb_u_outer, nys, nyn, nxl, nxr, nbgp )
-       CALL exchange_horiz_2d_int( nzb_v_inner, nys, nyn, nxl, nxr, nbgp )
-       CALL exchange_horiz_2d_int( nzb_v_outer, nys, nyn, nxl, nxr, nbgp )
-       CALL exchange_horiz_2d_int( nzb_w_outer, nys, nyn, nxl, nxr, nbgp )
-       CALL exchange_horiz_2d_int( nzb_s_outer, nys, nyn, nxl, nxr, nbgp )
-
     ENDIF
-!
-!-- Deallocate temporary array, as it might be reused for different
-!-- grid-levels further below.
-    DEALLOCATE( nzb_tmp )
-
-!
-!-- Determine the maximum level of topography. It is used for
-!-- steering the degradation of order of the applied advection scheme.
-!-- In case of non-cyclic lateral boundaries, the order of the advection
-!-- scheme has to be reduced up to nzt (required at the lateral boundaries).
-    k_top = 0
+
+
+ END SUBROUTINE init_topo
+
+ SUBROUTINE set_topo_flags(topo)
+
+    USE control_parameters,                                                    &
+        ONLY:  bc_lr_cyc, bc_ns_cyc, constant_flux_layer, land_surface,        &
+               use_surface_fluxes, use_top_fluxes, urban_surface
+
+    USE indices,                                                               &
+        ONLY:  nbgp, nx, nxl, nxlg, nxr, nxrg, ny, nyn, nyng, nys, nysg, nz,   &
+               nzb, nzt, wall_flags_0
+
+    USE kinds
+
+    IMPLICIT NONE
+
+    INTEGER(iwp) ::  i             !< index variable along x
+    INTEGER(iwp) ::  j             !< index variable along y
+    INTEGER(iwp) ::  k             !< index variable along z
+
+    INTEGER(iwp), DIMENSION(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ::  topo !< input array for 3D topography and dummy array for setting "outer"-flags
+
+    ALLOCATE( wall_flags_0(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
+    wall_flags_0 = 0
+!
+!-- Set-up topography flags. First, set flags only for s, u, v and w-grid.
+!-- Further special flags will be set in following loops. 
     DO  i = nxl, nxr
        DO  j = nys, nyn
-          DO  k = nzb, nzt + 1
-             k_top = MAX( k_top, MERGE( k, 0,                                  &
-                                        .NOT. BTEST( topo_3d(k,j,i), 0 ) ) )
+          DO  k = nzb, nzt+1
+!
+!--          scalar grid
+             IF ( BTEST( topo(k,j,i), 0 ) )                                 &
+                wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 0 )
+!
+!--          u grid
+             IF ( BTEST( topo(k,j,i),   0 )  .AND.                          &
+                  BTEST( topo(k,j,i-1), 0 ) )                               &
+                wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 1 )
+!
+!--          v grid
+             IF ( BTEST( topo(k,j,i),   0 )  .AND.                          &
+                  BTEST( topo(k,j-1,i), 0 ) )                               &
+                 wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 2 )
+
           ENDDO
-       ENDDO
-    ENDDO
-#if defined( __parallel )
-    CALL MPI_ALLREDUCE( k_top + 1, nzb_max, 1, MPI_INTEGER,                    & !is +1 really necessary here?
-                        MPI_MAX, comm2d, ierr )
-#else
-    nzb_max = k_top + 1
-#endif
-    IF ( inflow_l .OR. outflow_l .OR. inflow_r .OR. outflow_r .OR.             &
-         inflow_n .OR. outflow_n .OR. inflow_s .OR. outflow_s .OR.             &
-         nest_domain )                                                         &
-    THEN
-       nzb_max = nzt
-    ENDIF
-!
-!-- Finally, if topography extents up to the model top, limit nzb_max to nzt.
-    nzb_max = MIN( nzb_max, nzt ) 
-
-!
-!-- Set the individual index arrays which define the k index from which on
-!-- the usual finite difference form (which does not use surface fluxes) is
-!-- applied 
-    IF ( constant_flux_layer  .OR.  use_surface_fluxes )  THEN
-       nzb_diff_s_inner   = nzb_s_inner + 2
-       nzb_diff_s_outer   = nzb_s_outer + 2
-    ELSE
-       nzb_diff_s_inner   = nzb_s_inner + 1
-       nzb_diff_s_outer   = nzb_s_outer + 1
-    ENDIF
-
-!
-!-- Set-up topography flags. First, set flags only for s, u, v and w-grid.
-!-- Further special flags will be set in following loops. 
-    wall_flags_0 = 0
-    DO  j = nys, nyn
-       DO  i = nxl, nxr
-          DO  k = nzb, nzt+1
-!
-!--          scalar grid
-             IF ( BTEST( topo_3d(k,j,i), 0 ) )                                 &
-                wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 0 )
-!
-!--          v grid
-             IF ( BTEST( topo_3d(k,j,i),   0 )  .AND.                          &
-                  BTEST( topo_3d(k,j-1,i), 0 ) )                               &
-                wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 2 )
-!
-!--     To do: set outer arrays on basis of topo_3d array, adjust for downward-facing walls
-!--          s grid outer array
-             IF ( k >= nzb_s_outer(j,i) )                                      &
-                wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 24 )
-!
-!--          s grid outer array
-             IF ( k >= nzb_u_outer(j,i) )                                      &
-                wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 26 )
-!
-!--          s grid outer array
-             IF ( k >= nzb_v_outer(j,i) )                                      &
-                wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 27 )
-!
-!--          w grid outer array
-             IF ( k >= nzb_w_outer(j,i) )                                      &
-                wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 28 )
-          ENDDO
 
           DO k = nzb, nzt
 !
 !--          w grid
-             IF ( BTEST( topo_3d(k,j,i),   0 )  .AND.                          &
-                  BTEST( topo_3d(k+1,j,i), 0 ) )                               &
+             IF ( BTEST( topo(k,j,i),   0 )  .AND.                          &
+                  BTEST( topo(k+1,j,i), 0 ) )                               &
                 wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 3 )
           ENDDO
@@ -1530,13 +1991,20 @@
        ENDDO
     ENDDO
-!
-!-- u grid. Note, reverse 
-!-- memory access is required for setting flag on u-grid
-    DO  j = nys, nyn
-       DO  i = nxl, nxr
+
+    CALL exchange_horiz_int ( wall_flags_0, nys, nyn, nxl, nxr, nzt, nbgp )
+!
+!-- Set outer array for scalars to mask near-surface grid points in 
+!-- production_e
+    DO i = nxl, nxr
+       DO j = nys, nyn
           DO k = nzb, nzt+1
-             IF ( BTEST( topo_3d(k,j,i),   0 )  .AND.                          &
-                  BTEST( topo_3d(k,j,i-1), 0 ) )                               &
-                wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 1 )
+             IF ( BTEST( wall_flags_0(k,j-1,i), 0 )  .AND.                       &
+                  BTEST( wall_flags_0(k,j+1,i), 0 )  .AND.                       &
+                  BTEST( wall_flags_0(k,j,i-1), 0 )  .AND.                       &
+                  BTEST( wall_flags_0(k,j-1,i-1), 0 )  .AND.                       &
+                  BTEST( wall_flags_0(k,j+1,i-1), 0 )  .AND.                       &
+                  BTEST( wall_flags_0(k,j-1,i+1), 0 )  .AND.                       &
+                  BTEST( wall_flags_0(k,j+1,i+1), 0 ) )                            &
+                wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 24 )
           ENDDO
        ENDDO
@@ -1576,4 +2044,5 @@
              wall_flags_0(nzt+1,j,i) = IBCLR( wall_flags_0(nzt+1,j,i), 9 )
 
+
           DO k = nzb+1, nzt
 !
@@ -1634,5 +2103,5 @@
              IF ( BTEST( wall_flags_0(k-1,j,i), 0 )  .AND.                     &
             .NOT. BTEST( wall_flags_0(k,j,i), 0   ) )                          & 
-                wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 13 ) 
+                 wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 13 ) 
 !
 !--          Downward facing wall on u grid
@@ -1665,10 +2134,10 @@
                 wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 14 )
 
-!
+!   
 !--          Upward facing wall on v grid
              IF ( .NOT. BTEST( wall_flags_0(k,j,i),   2 )  .AND.               &
                         BTEST( wall_flags_0(k+1,j,i), 2 ) )                    & 
                 wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 16 )
-
+   
 !
 !--          Upward facing wall on w grid
@@ -1681,5 +2150,5 @@
                   BTEST( wall_flags_0(k,j,i), 12 ) .OR.                        &
                   BTEST( wall_flags_0(k,j,i), 13 ) )                           &
-                wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 22 )
+                   wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 22 )
 !
 !--          Special flag on scalar grid, nzb_diff_s_inner - 1, required for 
@@ -1688,10 +2157,10 @@
                 IF ( BTEST( wall_flags_0(k,j,i),   0 )  .AND.                  &
                      BTEST( wall_flags_0(k+1,j,i), 0 ) )                       &
-                   wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 23 )
+                  wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 23 )
              ELSE
                 IF ( BTEST( wall_flags_0(k,j,i), 22 ) )                        &
                    wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 23 )
              ENDIF
-
+   
 
           ENDDO
@@ -1701,334 +2170,65 @@
     ENDDO
 !
+!-- Finally, set identification flags indicating natural terrain or buildings.
+!-- Natural terrain grid points.
+    IF ( land_surface )  THEN
+       DO i = nxl, nxr
+          DO j = nys, nyn
+             DO k = nzb, nzt+1
+!
+!--             Natural terrain grid point
+                IF ( BTEST( topo(k,j,i), 1 ) )                                 &
+                   wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 5 )
+             ENDDO
+          ENDDO
+       ENDDO
+    ENDIF
+!
+!-- Building grid points.
+    IF ( urban_surface )  THEN
+       DO i = nxl, nxr
+          DO j = nys, nyn
+             DO k = nzb, nzt+1
+                IF ( BTEST( topo(k,j,i), 2 ) )                                 &
+                   wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 6 )
+             ENDDO
+          ENDDO
+       ENDDO
+    ENDIF
+
+!
 !-- Exchange ghost points for wall flags
-    CALL exchange_horiz_int( wall_flags_0, nbgp )
+    CALL exchange_horiz_int( wall_flags_0, nys, nyn, nxl, nxr, nzt, nbgp )
 !
 !-- Set boundary conditions also for flags. Can be interpreted as Neumann
 !-- boundary conditions for topography. 
     IF ( .NOT. bc_ns_cyc )  THEN
-       IF ( nys == 0  )  wall_flags_0(:,-1,:)   = wall_flags_0(:,0,:)
-       IF ( nyn == ny )  wall_flags_0(:,ny+1,:) = wall_flags_0(:,ny,:)
+       IF ( nys == 0  )  THEN
+          DO  i = 1, nbgp     
+             wall_flags_0(:,nys-i,:)   = wall_flags_0(:,nys,:)
+          ENDDO
+       ENDIF
+       IF ( nyn == ny )  THEN
+          DO  i = 1, nbgp  
+             wall_flags_0(:,nyn+i,:) = wall_flags_0(:,nyn,:)
+          ENDDO
+       ENDIF
     ENDIF
     IF ( .NOT. bc_lr_cyc )  THEN
-       IF ( nxl == 0  )  wall_flags_0(:,:,-1)   = wall_flags_0(:,:,0)
-       IF ( nxr == nx )  wall_flags_0(:,:,nx+1) = wall_flags_0(:,:,nx)           
+       IF ( nxl == 0  )  THEN
+          DO  i = 1, nbgp   
+             wall_flags_0(:,:,nxl-i)   = wall_flags_0(:,:,nxl)
+          ENDDO
+       ENDIF
+       IF ( nxr == nx )  THEN 
+          DO  i = 1, nbgp   
+             wall_flags_0(:,:,nxr+i) = wall_flags_0(:,:,nxr)     
+          ENDDO
+       ENDIF      
     ENDIF
 
-!
-!-- Initialize boundary conditions via surface type
-    CALL init_bc
-!
-!-- Allocate and set topography height arrays required for data output
-    IF ( TRIM( topography ) /= 'flat' )  THEN
-!
-!--    Allocate and set the arrays containing the topography height
-
-       IF ( nxr == nx  .AND.  nyn /= ny )  THEN
-          ALLOCATE( zu_s_inner(nxl:nxr+1,nys:nyn),                             &
-                    zw_w_inner(nxl:nxr+1,nys:nyn) )
-       ELSEIF ( nxr /= nx  .AND.  nyn == ny )  THEN
-          ALLOCATE( zu_s_inner(nxl:nxr,nys:nyn+1),                             &
-                    zw_w_inner(nxl:nxr,nys:nyn+1) )
-       ELSEIF ( nxr == nx  .AND.  nyn == ny )  THEN
-          ALLOCATE( zu_s_inner(nxl:nxr+1,nys:nyn+1),                           &
-                    zw_w_inner(nxl:nxr+1,nys:nyn+1) )
-       ELSE
-          ALLOCATE( zu_s_inner(nxl:nxr,nys:nyn),                               &
-                    zw_w_inner(nxl:nxr,nys:nyn) )
-       ENDIF
-
-       zu_s_inner   = 0.0_wp
-       zw_w_inner   = 0.0_wp
-!
-!--    Determine local topography height on scalar and w-grid. Note, setting
-!--    lateral boundary values is not necessary, realized via wall_flags_0 
-!--    array. Further, please note that loop bounds are different from 
-!--    nxl to nxr and nys to nyn on south and right model boundary, hence, 
-!--    use intrinsic lbound and ubound functions to infer array bounds.
-       DO  i = LBOUND(zu_s_inner, 1), UBOUND(zu_s_inner, 1)
-          DO  j = LBOUND(zu_s_inner, 2), UBOUND(zu_s_inner, 2)
-!
-!--          Topography height on scalar grid. Therefore, determine index of 
-!--          upward-facing surface element on scalar grid. 
-             zu_s_inner(i,j) = zu( get_topography_top_index( j, i, 's' ) )
-!
-!--          Topography height on w grid. Therefore, determine index of 
-!--          upward-facing surface element on w grid.
-             zw_w_inner(i,j) = zw( get_topography_top_index( j, i, 's' ) )
-          ENDDO
-       ENDDO
-
-    ENDIF
-
-!
-!-- Calculate wall flag arrays for the multigrid method.
-!-- Please note, wall flags are only applied in the not cache-optimized 
-!-- version.
-    IF ( psolver == 'multigrid_noopt' )  THEN
-
-!
-!--    Gridpoint increment of the current level. 
-       inc = 1
-       DO  l = maximum_grid_level, 1 , -1
-!
-!--       Set grid_level as it is required for exchange_horiz_2d_int
-          grid_level = l
-
-          nxl_l = nxl_mg(l)
-          nxr_l = nxr_mg(l)
-          nys_l = nys_mg(l)
-          nyn_l = nyn_mg(l)
-          nzt_l = nzt_mg(l)
-!
-!--       Assign the flag level to be calculated
-          SELECT CASE ( l )
-             CASE ( 1 )
-                flags => wall_flags_1
-             CASE ( 2 )
-                flags => wall_flags_2
-             CASE ( 3 )
-                flags => wall_flags_3
-             CASE ( 4 )
-                flags => wall_flags_4
-             CASE ( 5 )
-                flags => wall_flags_5
-             CASE ( 6 )
-                flags => wall_flags_6
-             CASE ( 7 )
-                flags => wall_flags_7
-             CASE ( 8 )
-                flags => wall_flags_8
-             CASE ( 9 )
-                flags => wall_flags_9
-             CASE ( 10 )
-                flags => wall_flags_10
-          END SELECT
-
-!
-!--       Depending on the grid level, set the respective bits in case of
-!--       neighbouring walls
-!--       Bit 0:  wall to the bottom
-!--       Bit 1:  wall to the top (not realized in remaining PALM code so far)
-!--       Bit 2:  wall to the south
-!--       Bit 3:  wall to the north
-!--       Bit 4:  wall to the left
-!--       Bit 5:  wall to the right
-!--       Bit 6:  inside building
-
-          flags = 0
-
-!
-!--       In case of masking method, flags are not set and multigrid method
-!--       works like FFT-solver
-          IF ( .NOT. masking_method )  THEN
-
-!
-!--          Allocate temporary array for topography heights on coarser grid
-!--          level. Please note, 2 ghoist points are required, in order to
-!--          calculate flags() on the interior ghost point. 
-             ALLOCATE( nzb_tmp(nys_l-2:nyn_l+2,nxl_l-2:nxr_l+2) )
-             nzb_tmp = 0
-             
-             DO  i = nxl_l, nxr_l
-                DO  j = nys_l, nyn_l
-                   nzb_tmp(j,i) = nzb_local(j*inc,i*inc)
-                ENDDO
-             ENDDO
-!
-!--          Exchange ghost points on respective multigrid level. 2 ghost points
-!--          are required, in order to calculate flags on 
-!--          nys_l-1 / nyn_l+1 / nxl_l-1 / nxr_l+1. The alternative would be to 
-!--          exchange 3D-INTEGER array flags on the respective multigrid level.
-             CALL exchange_horiz_2d_int( nzb_tmp, nys_l, nyn_l, nxl_l, nxr_l, 2 )
-!
-!--          Set non-cyclic boundary conditions on respective multigrid level
-             IF ( .NOT. bc_ns_cyc )  THEN
-                IF ( inflow_s .OR. outflow_s .OR. nest_bound_s  )  THEN
-                   nzb_tmp(-2,:) = nzb_tmp(0,:)
-                   nzb_tmp(-1,:) = nzb_tmp(0,:)
-                ENDIF
-                IF ( inflow_n .OR. outflow_n .OR. nest_bound_n )  THEN
-                   nzb_tmp(nyn_l+2,:) = nzb_tmp(nyn_l,:)
-                   nzb_tmp(nyn_l+1,:) = nzb_tmp(nyn_l,:)
-                ENDIF
-             ENDIF
-             IF ( .NOT. bc_lr_cyc )  THEN
-                IF ( inflow_l .OR. outflow_l .OR. nest_bound_l  )  THEN
-                   nzb_tmp(:,-2) = nzb_tmp(:,0)
-                   nzb_tmp(:,-1) = nzb_tmp(:,0)
-                ENDIF
-                IF ( inflow_r .OR. outflow_r .OR. nest_bound_r )  THEN
-                   nzb_tmp(:,nxr_l+1) = nzb_tmp(:,nxr_l)    
-                   nzb_tmp(:,nxr_l+2) = nzb_tmp(:,nxr_l)      
-                ENDIF        
-             ENDIF
-                       
-             DO  i = nxl_l-1, nxr_l+1
-                DO  j = nys_l-1, nyn_l+1
-                   DO  k = nzb, nzt_l+1     
-!
-!--                   Inside/outside building (inside building does not need
-!--                   further tests for walls)
-                      IF ( k*inc <= nzb_tmp(j,i) )  THEN
-
-                         flags(k,j,i) = IBSET( flags(k,j,i), 6 )
-
-                      ELSE
-!
-!--                      Bottom wall
-                         IF ( (k-1)*inc <= nzb_tmp(j,i) )  THEN
-                            flags(k,j,i) = IBSET( flags(k,j,i), 0 )
-                         ENDIF
-!
-!--                      South wall
-                         IF ( k*inc <= nzb_tmp(j-1,i) )  THEN
-                            flags(k,j,i) = IBSET( flags(k,j,i), 2 )
-                         ENDIF
-!
-!--                      North wall
-                         IF ( k*inc <= nzb_tmp(j+1,i) )  THEN
-                            flags(k,j,i) = IBSET( flags(k,j,i), 3 )
-                         ENDIF
-!
-!--                      Left wall
-                         IF ( k*inc <= nzb_tmp(j,i-1) )  THEN
-                            flags(k,j,i) = IBSET( flags(k,j,i), 4 )
-                         ENDIF
-!
-!--                      Right wall
-                         IF ( k*inc <= nzb_tmp(j,i+1) )  THEN
-                            flags(k,j,i) = IBSET( flags(k,j,i), 5 )
-                         ENDIF
-
-                      ENDIF
-                            
-                   ENDDO
-                ENDDO
-             ENDDO
-
-             DEALLOCATE( nzb_tmp )
-
-          ENDIF
-
-          inc = inc * 2
-
-       ENDDO
-!
-!--    Reset grid_level to "normal" grid
-       grid_level = 0
-       
-    ENDIF
-!
-!-- Allocate flags needed for masking walls. Even though these flags are only
-!-- required in the ws-scheme, the arrays need to be allocated here as they are 
-!-- used in OpenACC directives. 
-    ALLOCATE( advc_flags_1(nzb:nzt+1,nysg:nyng,nxlg:nxrg),                     &
-              advc_flags_2(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
-    advc_flags_1 = 0
-    advc_flags_2 = 0
-!
-!-- Init flags for ws-scheme to degrade order of the numerics near walls, i.e. 
-!-- to decrease the numerical stencil appropriately.
-    IF ( momentum_advec == 'ws-scheme'  .OR.  scalar_advec == 'ws-scheme'      &
-       )  THEN
-       CALL ws_init_flags
-    ENDIF
-
-!
-!-- In case of topography: limit near-wall mixing length l_wall further:
-!-- Go through all points of the subdomain one by one and look for the closest
-!-- surface
-    DO  i = nxl, nxr
-       DO  j = nys, nyn
-          DO  k = nzb+1, nzt
-!
-!--          Check if current gridpoint belongs to the atmosphere
-             IF ( BTEST( wall_flags_0(k,j,i), 0 ) )  THEN
-!
-!--             Check for neighbouring grid-points.
-!--             Vertical distance, down
-                IF ( .NOT. BTEST( wall_flags_0(k-1,j,i), 0 ) )                 &
-                   l_wall(k,j,i) = MIN( l_grid(k), zu(k) - zw(k-1) )
-!
-!--             Vertical distance, up
-                IF ( .NOT. BTEST( wall_flags_0(k+1,j,i), 0 ) )                 &
-                   l_wall(k,j,i) = MIN( l_grid(k), zw(k) - zu(k) )
-!
-!--             y-distance
-                IF ( .NOT. BTEST( wall_flags_0(k,j-1,i), 0 )  .OR.             &
-                     .NOT. BTEST( wall_flags_0(k,j+1,i), 0 ) )                 &
-                   l_wall(k,j,i) = MIN( l_wall(k,j,i), l_grid(k), 0.5_wp * dy )
-!
-!--             x-distance
-                IF ( .NOT. BTEST( wall_flags_0(k,j,i-1), 0 )  .OR.             &
-                     .NOT. BTEST( wall_flags_0(k,j,i+1), 0 ) )                 &
-                   l_wall(k,j,i) = MIN( l_wall(k,j,i), l_grid(k), 0.5_wp * dx )
-!
-!--              yz-distance (vertical edges, down)
-                 IF ( .NOT. BTEST( wall_flags_0(k-1,j-1,i), 0 )  .OR.          &
-                      .NOT. BTEST( wall_flags_0(k-1,j+1,i), 0 )  )             &
-                   l_wall(k,j,i) = MIN( l_wall(k,j,i), l_grid(k),              &
-                                        SQRT( 0.25_wp * dy**2 +                &
-                                       ( zu(k) - zw(k-1) )**2 ) )
-!
-!--              yz-distance (vertical edges, up)
-                 IF ( .NOT. BTEST( wall_flags_0(k+1,j-1,i), 0 )  .OR.          &
-                      .NOT. BTEST( wall_flags_0(k+1,j+1,i), 0 )  )             &
-                   l_wall(k,j,i) = MIN( l_wall(k,j,i), l_grid(k),              &
-                                        SQRT( 0.25_wp * dy**2 +                &
-                                       ( zw(k) - zu(k) )**2 ) )
-!
-!--              xz-distance (vertical edges, down)
-                 IF ( .NOT. BTEST( wall_flags_0(k-1,j,i-1), 0 )  .OR.          &
-                      .NOT. BTEST( wall_flags_0(k-1,j,i+1), 0 )  )             &
-                   l_wall(k,j,i) = MIN( l_wall(k,j,i), l_grid(k),              &
-                                        SQRT( 0.25_wp * dx**2 +                &
-                                       ( zu(k) - zw(k-1) )**2 ) )
-!
-!--              xz-distance (vertical edges, up)
-                 IF ( .NOT. BTEST( wall_flags_0(k+1,j,i-1), 0 )  .OR.          &
-                      .NOT. BTEST( wall_flags_0(k+1,j,i+1), 0 )  )             &
-                   l_wall(k,j,i) = MIN( l_wall(k,j,i), l_grid(k),              &
-                                        SQRT( 0.25_wp * dx**2 +                &
-                                       ( zw(k) - zu(k) )**2 ) )
-!
-!--             xy-distance (horizontal edges)
-                IF ( .NOT. BTEST( wall_flags_0(k,j-1,i-1), 0 )  .OR.           &
-                     .NOT. BTEST( wall_flags_0(k,j+1,i-1), 0 )  .OR.           &
-                     .NOT. BTEST( wall_flags_0(k,j-1,i+1), 0 )  .OR.           &
-                     .NOT. BTEST( wall_flags_0(k,j+1,i+1), 0 ) )               &
-                   l_wall(k,j,i) = MIN( l_wall(k,j,i), l_grid(k),              &
-                                        SQRT( 0.25_wp * ( dx**2 + dy**2 ) ) )
-!
-!--             xyz distance (vertical and horizontal edges, down)
-                IF ( .NOT. BTEST( wall_flags_0(k-1,j-1,i-1), 0 )  .OR.         &
-                     .NOT. BTEST( wall_flags_0(k-1,j+1,i-1), 0 )  .OR.         &
-                     .NOT. BTEST( wall_flags_0(k-1,j-1,i+1), 0 )  .OR.         &
-                     .NOT. BTEST( wall_flags_0(k-1,j+1,i+1), 0 ) )             &
-                   l_wall(k,j,i) = MIN( l_wall(k,j,i), l_grid(k),              &
-                                        SQRT( 0.25_wp * ( dx**2 + dy**2 )      &
-                                              +  ( zu(k) - zw(k-1) )**2  ) )
-!
-!--             xyz distance (vertical and horizontal edges, up)
-                IF ( .NOT. BTEST( wall_flags_0(k+1,j-1,i-1), 0 )  .OR.         &
-                     .NOT. BTEST( wall_flags_0(k+1,j+1,i-1), 0 )  .OR.         &
-                     .NOT. BTEST( wall_flags_0(k+1,j-1,i+1), 0 )  .OR.         &
-                     .NOT. BTEST( wall_flags_0(k+1,j+1,i+1), 0 ) )             &
-                   l_wall(k,j,i) = MIN( l_wall(k,j,i), l_grid(k),              &
-                                        SQRT( 0.25_wp * ( dx**2 + dy**2 )      &
-                                              +  ( zw(k) - zu(k) )**2  ) )
-                  
-             ENDIF
-          ENDDO
-       ENDDO
-    ENDDO
-!
-!-- Set lateral boundary conditions for l_wall
-    CALL exchange_horiz( l_wall, nbgp )     
-
-!
-!-- Vertical nesting: communicate vertical grid level arrays between fine and
-!-- coarse grid
-    IF ( vnested )  CALL vnest_init_grid
-
- END SUBROUTINE init_grid
+
+ END SUBROUTINE set_topo_flags
+
+
+
Index: palm/trunk/SOURCE/init_masks.f90
===================================================================
--- palm/trunk/SOURCE/init_masks.f90	(revision 2693)
+++ palm/trunk/SOURCE/init_masks.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file init_masks.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/init_ocean.f90
===================================================================
--- palm/trunk/SOURCE/init_ocean.f90	(revision 2693)
+++ palm/trunk/SOURCE/init_ocean.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file init_ocean.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/init_pegrid.f90
===================================================================
--- palm/trunk/SOURCE/init_pegrid.f90	(revision 2693)
+++ palm/trunk/SOURCE/init_pegrid.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file init_pegrid.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
@@ -25,4 +25,8 @@
 ! -----------------
 ! $Id$
+! 3D-Integer exchange on multigrid level (MS)
+! Forcing implemented (MS)
+! 
+! 2600 2017-11-01 14:11:20Z raasch
 ! calculation of block-I/O quantitites removed (is now done in parin)
 ! 
@@ -204,4 +208,6 @@
 !> user)and computation of the grid point number and array bounds of the local
 !> domains.
+!> @todo: remove MPI-data types for 2D exchange on coarse multigrid level (not
+!>        used any more) 
 !------------------------------------------------------------------------------!
  SUBROUTINE init_pegrid
@@ -210,5 +216,6 @@
     USE control_parameters,                                                    &
         ONLY:  bc_lr, bc_ns, coupling_mode, coupling_mode_remote,              &
-               coupling_topology, gathered_size, grid_level,                   &
+               coupling_topology, force_bound_l, force_bound_n, force_bound_r, &
+               force_bound_s, gathered_size, grid_level,                       &
                grid_level_count, inflow_l, inflow_n, inflow_r, inflow_s,       &
                maximum_grid_level, message_string,                             &
@@ -352,5 +359,4 @@
     CALL MPI_CART_SHIFT( comm2d, 0, 1, pleft, pright, ierr )
     CALL MPI_CART_SHIFT( comm2d, 1, 1, psouth, pnorth, ierr )
-
 !
 !-- In case of cyclic boundary conditions, a y-shift at the boundaries in
@@ -405,5 +411,4 @@
        ENDIF
     ENDIF
-
 !
 !-- Vertical nesting: store four lists that identify partner ranks to exchange 
@@ -700,5 +705,4 @@
 #endif
 
-
 ! 
 !-- Determine the number of ghost point layers
@@ -823,5 +827,4 @@
 !-- Create custom MPI vector datatypes for contiguous data transfer
     IF ( vnested )  CALL vnest_init_pegrid_domain
-
 
 #else
@@ -1096,6 +1099,12 @@
 !-- Do these calculations for the model grid and (if necessary) also
 !-- for the coarser grid levels used in the multigrid method
-    ALLOCATE ( ngp_xz(0:maximum_grid_level), ngp_yz(0:maximum_grid_level),     &
-               type_xz(0:maximum_grid_level), type_yz(0:maximum_grid_level) )
+    ALLOCATE ( ngp_xz(0:maximum_grid_level),                                   &
+               ngp_xz_int(0:maximum_grid_level),                               &
+               ngp_yz(0:maximum_grid_level),                                   &
+               ngp_yz_int(0:maximum_grid_level),                               &
+               type_xz(0:maximum_grid_level),                                  &
+               type_xz_int(0:maximum_grid_level),                              &
+               type_yz(0:maximum_grid_level),                                  &
+               type_yz_int(0:maximum_grid_level) )
 
     nxl_l = nxl; nxr_l = nxr; nys_l = nys; nyn_l = nyn; nzb_l = nzb; nzt_l = nzt
@@ -1125,4 +1134,16 @@
 
 !
+!-- Define data types for exchange of 3D Integer arrays.
+    ngp_yz_int(0) = (nzt - nzb + 2) * (nyn - nys + 1 + 2 * nbgp)
+
+    CALL MPI_TYPE_VECTOR( nxr-nxl+1+2*nbgp, nbgp*(nzt-nzb+2), ngp_yz_int(0),   &
+                          MPI_INTEGER, type_xz_int(0), ierr )
+    CALL MPI_TYPE_COMMIT( type_xz_int(0), ierr )
+
+    CALL MPI_TYPE_VECTOR( nbgp, ngp_yz_int(0), ngp_yz_int(0), MPI_INTEGER,     &
+                          type_yz_int(0), ierr )
+    CALL MPI_TYPE_COMMIT( type_yz_int(0), ierr )
+
+!
 !-- Definition of MPI-datatypes for multigrid method (coarser level grids)
     IF ( psolver(1:9) == 'multigrid' )  THEN
@@ -1131,15 +1152,33 @@
        DO  i = maximum_grid_level, 1 , -1
 !
-!--       For 3D-exchange
+!--       For 3D-exchange on different multigrid level, one ghost point for 
+!--       REAL arrays, two ghost points for INTEGER arrays
           ngp_xz(i) = (nzt_l - nzb_l + 2) * (nxr_l - nxl_l + 3)
           ngp_yz(i) = (nzt_l - nzb_l + 2) * (nyn_l - nys_l + 3)
 
-          CALL MPI_TYPE_VECTOR( nxr_l-nxl_l+3, nzt_l-nzb_l+2, ngp_yz(i), &
+          ngp_xz_int(i) = (nzt_l - nzb_l + 2) * (nxr_l - nxl_l + 3)
+          ngp_yz_int(i) = (nzt_l - nzb_l + 2) * (nyn_l - nys_l + 3)
+!
+!--       MPI data type for REAL arrays, for xz-layers
+          CALL MPI_TYPE_VECTOR( nxr_l-nxl_l+3, nzt_l-nzb_l+2, ngp_yz(i),       &
                                 MPI_REAL, type_xz(i), ierr )
           CALL MPI_TYPE_COMMIT( type_xz(i), ierr )
 
+!
+!--       MPI data type for INTEGER arrays, for xz-layers
+          CALL MPI_TYPE_VECTOR( nxr_l-nxl_l+3, nzt_l-nzb_l+2, ngp_yz_int(i),   &
+                                MPI_INTEGER, type_xz_int(i), ierr )
+          CALL MPI_TYPE_COMMIT( type_xz_int(i), ierr )
+
+!
+!--       MPI data type for REAL arrays, for yz-layers
           CALL MPI_TYPE_VECTOR( 1, ngp_yz(i), ngp_yz(i), MPI_REAL, type_yz(i), &
                                 ierr )
           CALL MPI_TYPE_COMMIT( type_yz(i), ierr )
+!
+!--       MPI data type for INTEGER arrays, for yz-layers
+          CALL MPI_TYPE_VECTOR( 1, ngp_yz_int(i), ngp_yz_int(i), MPI_INTEGER,  &
+                                type_yz_int(i), ierr )
+          CALL MPI_TYPE_COMMIT( type_yz_int(i), ierr )
 
 
@@ -1155,6 +1194,4 @@
           CALL MPI_TYPE_COMMIT( type_y_int(i), ierr )
 
-
-
           nxl_l = nxl_l / 2
           nxr_l = nxr_l / 2
@@ -1166,15 +1203,4 @@
 
     ENDIF
-!
-!-- Define data types for exchange of 3D Integer arrays.
-    ngp_yz_int = (nzt - nzb + 2) * (nyn - nys + 1 + 2 * nbgp)
-
-    CALL MPI_TYPE_VECTOR( nxr-nxl+1+2*nbgp, nbgp*(nzt-nzb+2), ngp_yz_int, &
-                          MPI_INTEGER, type_xz_int, ierr )
-    CALL MPI_TYPE_COMMIT( type_xz_int, ierr )
-
-    CALL MPI_TYPE_VECTOR( nbgp, ngp_yz_int, ngp_yz_int, MPI_INTEGER, type_yz_int, &
-                          ierr )
-    CALL MPI_TYPE_COMMIT( type_yz_int, ierr )
 
 #endif
@@ -1190,4 +1216,6 @@
        ELSEIF ( bc_lr == 'nested' )  THEN
           nest_bound_l = .TRUE.
+       ELSEIF ( bc_lr == 'forcing' )  THEN
+          force_bound_l = .TRUE.
        ENDIF
     ENDIF
@@ -1200,4 +1228,6 @@
        ELSEIF ( bc_lr == 'nested' )  THEN
           nest_bound_r = .TRUE.
+       ELSEIF ( bc_lr == 'forcing' )  THEN
+          force_bound_r = .TRUE.
        ENDIF
     ENDIF
@@ -1210,4 +1240,6 @@
        ELSEIF ( bc_ns == 'nested' )  THEN
           nest_bound_s = .TRUE.
+       ELSEIF ( bc_ns == 'forcing' )  THEN
+          force_bound_s = .TRUE.
        ENDIF
     ENDIF
@@ -1220,4 +1252,6 @@
        ELSEIF ( bc_ns == 'nested' )  THEN
           nest_bound_n = .TRUE.
+       ELSEIF ( bc_ns == 'forcing' )  THEN
+          force_bound_n = .TRUE.
        ENDIF
     ENDIF
@@ -1295,10 +1329,10 @@
 !-- At the inflow or outflow, u or v, respectively, have to be calculated for
 !-- one more grid point.
-    IF ( inflow_l .OR. outflow_l .OR. nest_bound_l )  THEN
+    IF ( inflow_l .OR. outflow_l .OR. nest_bound_l .OR. force_bound_l )  THEN
        nxlu = nxl + 1
     ELSE
        nxlu = nxl
     ENDIF
-    IF ( inflow_s .OR. outflow_s .OR. nest_bound_s )  THEN
+    IF ( inflow_s .OR. outflow_s .OR. nest_bound_s .OR. force_bound_s )  THEN
        nysv = nys + 1
     ELSE
Index: palm/trunk/SOURCE/init_pt_anomaly.f90
===================================================================
--- palm/trunk/SOURCE/init_pt_anomaly.f90	(revision 2693)
+++ palm/trunk/SOURCE/init_pt_anomaly.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file init_pt_anomaly.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/init_rankine.f90
===================================================================
--- palm/trunk/SOURCE/init_rankine.f90	(revision 2693)
+++ palm/trunk/SOURCE/init_rankine.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file init_rankine.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/init_slope.f90
===================================================================
--- palm/trunk/SOURCE/init_slope.f90	(revision 2693)
+++ palm/trunk/SOURCE/init_slope.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file init_slope.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/interaction_droplets_ptq.f90
===================================================================
--- palm/trunk/SOURCE/interaction_droplets_ptq.f90	(revision 2693)
+++ palm/trunk/SOURCE/interaction_droplets_ptq.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file interaction_droplets_ptq.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/land_surface_model_mod.f90
===================================================================
--- palm/trunk/SOURCE/land_surface_model_mod.f90	(revision 2693)
+++ palm/trunk/SOURCE/land_surface_model_mod.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file land_surface_model_mod.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
@@ -25,4 +25,24 @@
 ! -----------------
 ! $Id$
+! Bugfix: missing USE statement for calc_mean_profile
+! do not write surface temperatures onto pt array as this might cause 
+! problems with nesting (MS)
+! Revised calculation of pt1 and qv1 (now done in surface_layer_fluxes). Bugfix
+! in calculation of surface density (cannot be done via an surface non-air 
+! temperature) (BM)
+! Bugfix: g_d was NaN for non-vegetaed surface types (BM)
+! Bugfix initialization of c_veg and lai
+! Revise data output to enable _FillValues
+! Bugfix in calcultion of r_a and rad_net_l (MS)
+! Bugfix: rad_net is not updated in case of radiation_interaction and must thu
+! be calculated again from the radiative fluxes
+! Temporary fix for cases where no soil model is used on some PEs (BM)
+! Revised input and initialization of soil and surface paramters
+! pavement_depth is variable for each surface element
+! radiation quantities belong to surface type now
+! surface fractions initialized
+! Rename lsm_last_actions into lsm_write_restart_data (MS)
+! 
+! 2608 2017-11-13 14:04:26Z schwenkel
 ! Calculation of magnus equation in external module (diagnostic_quantities_mod).
 ! Adjust calculation of vapor pressure and saturation mixing ratio that it is
@@ -265,5 +285,4 @@
 !> DALES and UCLA-LES models.
 !>
-!> @todo Restart data for vertical natural land-surfaces
 !> @todo Extensive verification energy-balance solver for vertical surfaces, 
 !>       e.g. parametrization of r_a
@@ -282,4 +301,7 @@
 !> @note No time step criterion is required as long as the soil layers do not
 !>       become too thin.
+!> @todo Attention, pavement_subpars_1/2 are hardcoded to 8 levels, in case 
+!>       more levels are used this may cause an potential bug
+!> @todo Routine calc_q_surface required?
 !------------------------------------------------------------------------------!
  MODULE land_surface_model_mod
@@ -287,4 +309,7 @@
     USE arrays_3d,                                                             &
         ONLY:  hyp, pt, prr, q, q_p, ql, vpt, u, v, w
+
+    USE calc_mean_profile_mod,                                                 &
+        ONLY:  calc_mean_profile
 
     USE cloud_parameters,                                                      &
@@ -301,5 +326,13 @@
 
     USE indices,                                                               &
-        ONLY:  nbgp, nxl, nxlg, nxr, nxrg, nyn, nyng, nys, nysg, nzb 
+        ONLY:  nbgp, nxl, nxlg, nxr, nxrg, nyn, nyng, nys, nysg, nzb
+
+    USE netcdf_data_input_mod,                                                 &
+        ONLY :  building_type_f, init_3d, input_pids_static,                   &
+                netcdf_data_input_interpolate,                                 &
+                pavement_pars_f, pavement_subsurface_pars_f, pavement_type_f,  &
+                root_area_density_lsm_f, soil_pars_f, soil_type_f,             &
+                surface_fraction_f, vegetation_pars_f, vegetation_type_f,      &
+                water_pars_f, water_type_f
 
     USE kinds
@@ -308,7 +341,6 @@
 
     USE radiation_model_mod,                                                   &
-        ONLY:  albedo, albedo_type, emissivity, force_radiation_call, rad_net, &
-               rad_sw_in, rad_lw_out, rad_lw_out_change_0, radiation_scheme,   &
-               unscheduled_radiation_calls
+        ONLY:  albedo, albedo_type, emissivity, force_radiation_call,          &
+               radiation_scheme, unscheduled_radiation_calls
         
     USE statistics,                                                            &
@@ -316,11 +348,11 @@
 
     USE surface_mod,                                                           &
-        ONLY :  surf_lsm_h, surf_lsm_v, surf_type
+        ONLY :  surf_lsm_h, surf_lsm_v, surf_type, surface_restore_elements
 
     IMPLICIT NONE
 
     TYPE surf_type_lsm
-       REAL(wp), DIMENSION(:),   ALLOCATABLE ::  var_1D !< 1D prognostic variable
-       REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  var_2D !< 2D prognostic variable
+       REAL(wp), DIMENSION(:),   ALLOCATABLE ::  var_1d !< 1D prognostic variable
+       REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  var_2d !< 2D prognostic variable
     END TYPE surf_type_lsm
 
@@ -355,5 +387,5 @@
 !
 !-- LSM variables
-    CHARACTER(10) :: surface_type = 'vegetation'  !< general classification. Allowed are:
+    CHARACTER(10) :: surface_type = 'netcdf'      !< general classification. Allowed are:
                                                   !< 'vegetation', 'pavement', ('building'), 
                                                   !< 'water', and 'netcdf'
@@ -447,4 +479,5 @@
                                      m_soil_v,       & !< Soil moisture (m3/m3), vertical surface elements
                                      m_soil_v_p        !< Prog. soil moisture (m3/m3), vertical surface elements
+
 #else
     TYPE(surf_type_lsm), POINTER ::  t_soil_h,    & !< Soil temperature (K), horizontal surface elements
@@ -474,6 +507,6 @@
     TYPE(surf_type_lsm), TARGET   ::  t_surface_h,    & !< surface temperature (K), horizontal surface elements 
                                       t_surface_h_p,  & !< progn. surface temperature (K), horizontal surface elements 
-                                      m_liq_h,     & !< liquid water reservoir (m), horizontal surface elements 
-                                      m_liq_h_p      !< progn. liquid water reservoir (m), horizontal surface elements 
+                                      m_liq_h,        & !< liquid water reservoir (m), horizontal surface elements 
+                                      m_liq_h_p         !< progn. liquid water reservoir (m), horizontal surface elements 
 
     TYPE(surf_type_lsm), DIMENSION(0:3), TARGET   ::  &
@@ -533,14 +566,14 @@
 !-- Energy balance variables                
     REAL(wp), DIMENSION(:,:), ALLOCATABLE :: &
-              c_liq_av,     & !< average of c_liq
-              c_soil_av,    & !< average of c_soil
-              c_veg_av,     & !< average of c_veg
-              ghf_av,       & !< average of ghf
-              lai_av,       & !< average of lai
-              qsws_liq_av,  & !< average of qsws_liq
-              qsws_soil_av, & !< average of qsws_soil
-              qsws_veg_av,  & !< average of qsws_veg
-              r_a_av,       & !< average of r_a
-              r_s_av          !< average of r_s
+              c_liq_av,         & !< average of c_liq
+              c_soil_av,        & !< average of c_soil
+              c_veg_av,         & !< average of c_veg
+              ghf_av,           & !< average of ghf
+              lai_av,           & !< average of lai
+              qsws_liq_av,      & !< average of qsws_liq
+              qsws_soil_av,     & !< average of qsws_soil
+              qsws_veg_av,      & !< average of qsws_veg
+              r_a_av,           & !< average of r_a
+              r_s_av              !< average of r_s
                    
 
@@ -548,23 +581,23 @@
 !-- Predefined Land surface classes (vegetation_type)
     CHARACTER(26), DIMENSION(0:18), PARAMETER :: vegetation_type_name = (/ &
-                                   'user defined              ', & !  0 
-                                   'bare soil                 ', & !  1                           
-                                   'crops, mixed farming      ', & !  2
-                                   'short grass               ', & !  3
-                                   'evergreen needleleaf trees', & !  4
-                                   'deciduous needleleaf trees', & !  5
-                                   'evergreen broadleaf trees ', & !  6
-                                   'deciduous broadleaf trees ', & !  7
-                                   'tall grass                ', & !  8
-                                   'desert                    ', & !  9
-                                   'tundra                    ', & ! 10
-                                   'irrigated crops           ', & ! 11
-                                   'semidesert                ', & ! 12
-                                   'ice caps and glaciers     ', & ! 13
-                                   'bogs and marshes          ', & ! 14
-                                   'evergreen shrubs          ', & ! 15
-                                   'deciduous shrubs          ', & ! 16
-                                   'mixed forest/woodland     ', & ! 17
-                                   'interrupted forest        '  & ! 18
+                                   'user defined              ',           & !  0 
+                                   'bare soil                 ',           & !  1                           
+                                   'crops, mixed farming      ',           & !  2
+                                   'short grass               ',           & !  3
+                                   'evergreen needleleaf trees',           & !  4
+                                   'deciduous needleleaf trees',           & !  5
+                                   'evergreen broadleaf trees ',           & !  6
+                                   'deciduous broadleaf trees ',           & !  7
+                                   'tall grass                ',           & !  8
+                                   'desert                    ',           & !  9
+                                   'tundra                    ',           & ! 10
+                                   'irrigated crops           ',           & ! 11
+                                   'semidesert                ',           & ! 12
+                                   'ice caps and glaciers     ',           & ! 13
+                                   'bogs and marshes          ',           & ! 14
+                                   'evergreen shrubs          ',           & ! 15
+                                   'deciduous shrubs          ',           & ! 16
+                                   'mixed forest/woodland     ',           & ! 17
+                                   'interrupted forest        '            & ! 18
                                                                  /)
 
@@ -572,11 +605,11 @@
 !-- Soil model classes (soil_type)
     CHARACTER(12), DIMENSION(0:6), PARAMETER :: soil_type_name = (/ &
-                                   'user defined', & ! 0 
-                                   'coarse      ', & ! 1
-                                   'medium      ', & ! 2
-                                   'medium-fine ', & ! 3
-                                   'fine        ', & ! 4
-                                   'very fine   ', & ! 5
-                                   'organic     '  & ! 6
+                                   'user defined',                  & ! 0 
+                                   'coarse      ',                  & ! 1
+                                   'medium      ',                  & ! 2
+                                   'medium-fine ',                  & ! 3
+                                   'fine        ',                  & ! 4
+                                   'very fine   ',                  & ! 5
+                                   'organic     '                   & ! 6
                                                                  /)
 
@@ -600,24 +633,51 @@
                                    'artifical turf (sports)      ', & ! 14
                                    'clay (sports)                '  & ! 15
-                                                                 /)                                                                 
-   
-
-
-
-                                                              
+                                                                 /)                                                              
+                                                                 
 !
 !-- Water classes
     CHARACTER(12), DIMENSION(0:5), PARAMETER :: water_type_name = (/ &
-                                   'user defined', & ! 0 
-                                   'lake        ', & ! 1
-                                   'river       ', & ! 2
-                                   'ocean       ', & ! 3
-                                   'pond        ', & ! 4
-                                   'fountain    '  & ! 5
+                                   'user defined',                   & ! 0 
+                                   'lake        ',                   & ! 1
+                                   'river       ',                   & ! 2
+                                   'ocean       ',                   & ! 3
+                                   'pond        ',                   & ! 4
+                                   'fountain    '                    & ! 5
                                                                   /)                                                                  
-                                                                 
-                                                                 !
+!
+!-- IDs for vegetation, pavement and water surfaces
+    INTEGER(iwp) ::  ind_veg = 0    !< index for vegetation surfaces, used to assess surface-fraction, albedo, etc.      
+    INTEGER(iwp) ::  ind_pav = 1    !< index for pavement surfaces, used to assess surface-fraction, albedo, etc.        
+    INTEGER(iwp) ::  ind_wat = 2    !< index for vegetation surfaces, used to assess surface-fraction, albedo, etc.                          
+                    
+!
 !-- Land surface parameters according to the respective classes (vegetation_type)
-
+    INTEGER(iwp) ::  ind_v_rc_min = 0    !< index for r_canopy_min in vegetation_pars
+    INTEGER(iwp) ::  ind_v_rc_lai = 1    !< index for LAI in vegetation_pars
+    INTEGER(iwp) ::  ind_v_c_veg   = 2   !< index for c_veg in vegetation_pars
+    INTEGER(iwp) ::  ind_v_gd  = 3       !< index for g_d in vegetation_pars
+    INTEGER(iwp) ::  ind_v_z0 = 4        !< index for z0 in vegetation_pars
+    INTEGER(iwp) ::  ind_v_z0qh = 5      !< index for z0h / z0q in vegetation_pars
+    INTEGER(iwp) ::  ind_v_lambda_s = 6  !< index for lambda_s_s in vegetation_pars
+    INTEGER(iwp) ::  ind_v_lambda_u = 7  !< index for lambda_s_u in vegetation_pars
+    INTEGER(iwp) ::  ind_v_f_sw_in = 8   !< index for f_sw_in in vegetation_pars
+    INTEGER(iwp) ::  ind_v_c_surf = 9    !< index for c_surface in vegetation_pars
+    INTEGER(iwp) ::  ind_v_at = 10       !< index for albedo_type in vegetation_pars
+    INTEGER(iwp) ::  ind_v_emis = 11     !< index for emissivity in vegetation_pars
+
+    INTEGER(iwp) ::  ind_w_temp     = 0    !< index for temperature in water_pars
+    INTEGER(iwp) ::  ind_w_z0       = 1    !< index for z0 in water_pars
+    INTEGER(iwp) ::  ind_w_z0h      = 2    !< index for z0h in water_pars
+    INTEGER(iwp) ::  ind_w_lambda_s = 3    !< index for lambda_s_s in water_pars
+    INTEGER(iwp) ::  ind_w_lambda_u = 4    !< index for lambda_s_u in water_pars
+    INTEGER(iwp) ::  ind_w_at       = 5    !< index for albedo type in water_pars
+    INTEGER(iwp) ::  ind_w_emis     = 6    !< index for emissivity in water_pars
+
+    INTEGER(iwp) ::  ind_p_z0       = 0    !< index for z0 in pavement_pars
+    INTEGER(iwp) ::  ind_p_z0h      = 1    !< index for z0h in pavement_pars
+    INTEGER(iwp) ::  ind_p_at       = 2    !< index for albedo type in pavement_pars
+    INTEGER(iwp) ::  ind_p_emis     = 3    !< index for emissivity in pavement_pars
+    INTEGER(iwp) ::  ind_p_lambda_h = 0    !< index for lambda_h in pavement_subsurface_pars
+    INTEGER(iwp) ::  ind_p_rho_c    = 1    !< index for rho_c in pavement_pars
 !
 !-- Land surface parameters
@@ -649,22 +709,22 @@
 !--                                level 1 - level 4 according to zs_ref
     REAL(wp), DIMENSION(0:3,1:18), PARAMETER :: root_distribution = RESHAPE( (/ &
-                                 1.00_wp, 0.00_wp, 0.00_wp, 0.00_wp, & !  1
-                                 0.24_wp, 0.41_wp, 0.31_wp, 0.04_wp, & !  2
-                                 0.35_wp, 0.38_wp, 0.23_wp, 0.04_wp, & !  3
-                                 0.26_wp, 0.39_wp, 0.29_wp, 0.06_wp, & !  4
-                                 0.26_wp, 0.38_wp, 0.29_wp, 0.07_wp, & !  5
-                                 0.24_wp, 0.38_wp, 0.31_wp, 0.07_wp, & !  6
-                                 0.25_wp, 0.34_wp, 0.27_wp, 0.14_wp, & !  7
-                                 0.27_wp, 0.27_wp, 0.27_wp, 0.09_wp, & !  8
-                                 1.00_wp, 0.00_wp, 0.00_wp, 0.00_wp, & !  9
-                                 0.47_wp, 0.45_wp, 0.08_wp, 0.00_wp, & ! 10
-                                 0.24_wp, 0.41_wp, 0.31_wp, 0.04_wp, & ! 11
-                                 0.17_wp, 0.31_wp, 0.33_wp, 0.19_wp, & ! 12
-                                 0.00_wp, 0.00_wp, 0.00_wp, 0.00_wp, & ! 13
-                                 0.25_wp, 0.34_wp, 0.27_wp, 0.11_wp, & ! 14
-                                 0.23_wp, 0.36_wp, 0.30_wp, 0.11_wp, & ! 15 
-                                 0.23_wp, 0.36_wp, 0.30_wp, 0.11_wp, & ! 16 
-                                 0.19_wp, 0.35_wp, 0.36_wp, 0.10_wp, & ! 17
-                                 0.19_wp, 0.35_wp, 0.36_wp, 0.10_wp  & ! 18
+                                 1.00_wp, 0.00_wp, 0.00_wp, 0.00_wp,            & !  1
+                                 0.24_wp, 0.41_wp, 0.31_wp, 0.04_wp,            & !  2
+                                 0.35_wp, 0.38_wp, 0.23_wp, 0.04_wp,            & !  3
+                                 0.26_wp, 0.39_wp, 0.29_wp, 0.06_wp,            & !  4
+                                 0.26_wp, 0.38_wp, 0.29_wp, 0.07_wp,            & !  5
+                                 0.24_wp, 0.38_wp, 0.31_wp, 0.07_wp,            & !  6
+                                 0.25_wp, 0.34_wp, 0.27_wp, 0.14_wp,            & !  7
+                                 0.27_wp, 0.27_wp, 0.27_wp, 0.09_wp,            & !  8
+                                 1.00_wp, 0.00_wp, 0.00_wp, 0.00_wp,            & !  9
+                                 0.47_wp, 0.45_wp, 0.08_wp, 0.00_wp,            & ! 10
+                                 0.24_wp, 0.41_wp, 0.31_wp, 0.04_wp,            & ! 11
+                                 0.17_wp, 0.31_wp, 0.33_wp, 0.19_wp,            & ! 12
+                                 0.00_wp, 0.00_wp, 0.00_wp, 0.00_wp,            & ! 13
+                                 0.25_wp, 0.34_wp, 0.27_wp, 0.11_wp,            & ! 14
+                                 0.23_wp, 0.36_wp, 0.30_wp, 0.11_wp,            & ! 15 
+                                 0.23_wp, 0.36_wp, 0.30_wp, 0.11_wp,            & ! 16 
+                                 0.19_wp, 0.35_wp, 0.36_wp, 0.10_wp,            & ! 17
+                                 0.19_wp, 0.35_wp, 0.36_wp, 0.10_wp             & ! 18
                                  /), (/ 4, 18 /) )
 
@@ -682,4 +742,5 @@
                       1.30_wp,  0.400_wp, 1.20_wp,  0.93E-6_wp, 0.766_wp, 0.663_wp, 0.267_wp, 0.010_wp & ! 6
                                                                      /), (/ 8, 6 /) )
+
 
 !
@@ -747,12 +808,12 @@
 !
 !-- TO BE FILLED
-!-- Water parameters  temperature,     z0,      z0h, albedo_type, emissivity,
-    REAL(wp), DIMENSION(0:4,1:5), PARAMETER :: water_pars = RESHAPE( (/ &
-                         283.0_wp, 0.01_wp, 0.001_wp, 1.0_wp, 0.99_wp, & ! 1
-                         283.0_wp, 0.01_wp, 0.001_wp, 1.0_wp, 0.99_wp, & ! 2
-                         283.0_wp, 0.01_wp, 0.001_wp, 1.0_wp, 0.99_wp, & ! 3
-                         283.0_wp, 0.01_wp, 0.001_wp, 1.0_wp, 0.99_wp, & ! 4
-                         283.0_wp, 0.01_wp, 0.001_wp, 1.0_wp, 0.99_wp  & ! 5
-                                                                /), (/ 5, 5 /) )                                                                     
+!-- Water parameters                    temperature,     z0,      z0h, albedo_type, emissivity,
+    REAL(wp), DIMENSION(0:6,1:5), PARAMETER :: water_pars = RESHAPE( (/ &
+       283.0_wp, 0.01_wp, 0.001_wp, 1.0E10_wp, 1.0E10_wp, 1.0_wp, 0.99_wp, & ! 1
+       283.0_wp, 0.01_wp, 0.001_wp, 1.0E10_wp, 1.0E10_wp, 1.0_wp, 0.99_wp, & ! 2
+       283.0_wp, 0.01_wp, 0.001_wp, 1.0E10_wp, 1.0E10_wp, 1.0_wp, 0.99_wp, & ! 3
+       283.0_wp, 0.01_wp, 0.001_wp, 1.0E10_wp, 1.0E10_wp, 1.0_wp, 0.99_wp, & ! 4
+       283.0_wp, 0.01_wp, 0.001_wp, 1.0E10_wp, 1.0E10_wp, 1.0_wp, 0.99_wp  & ! 5
+                                                                     /), (/ 7, 5 /) )                                                                   
                                                                                                                                       
     SAVE
@@ -764,9 +825,10 @@
 !
 !-- Public functions
-    PUBLIC lsm_check_data_output, lsm_check_data_output_pr,                    &
+    PUBLIC lsm_boundary_condition, lsm_check_data_output,                      &
+           lsm_check_data_output_pr,                                           &
            lsm_check_parameters, lsm_define_netcdf_grid, lsm_3d_data_averaging,& 
            lsm_data_output_2d, lsm_data_output_3d, lsm_energy_balance,         &
            lsm_header, lsm_init, lsm_init_arrays, lsm_parin, lsm_soil_model,   &
-           lsm_swap_timelevel, lsm_read_restart_data, lsm_last_actions
+           lsm_swap_timelevel, lsm_read_restart_data, lsm_write_restart_data
 ! !vegetat
 !-- Public parameters, constants and initial values
@@ -781,4 +843,7 @@
     PUBLIC m_soil_h, t_soil_h
 
+    INTERFACE lsm_boundary_condition
+       MODULE PROCEDURE lsm_boundary_condition
+    END INTERFACE lsm_boundary_condition
 
     INTERFACE lsm_check_data_output
@@ -842,9 +907,74 @@
     END INTERFACE lsm_read_restart_data
 
-    INTERFACE lsm_last_actions
-       MODULE PROCEDURE lsm_last_actions
-    END INTERFACE lsm_last_actions
+    INTERFACE lsm_write_restart_data
+       MODULE PROCEDURE lsm_write_restart_data
+    END INTERFACE lsm_write_restart_data
 
  CONTAINS
+
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Set internal Neumann boundary condition at outer soil grid points 
+!> for temperature and humidity. 
+!------------------------------------------------------------------------------!
+ SUBROUTINE lsm_boundary_condition
+ 
+    IMPLICIT NONE
+
+    INTEGER(iwp) :: i      !< grid index x-direction
+    INTEGER(iwp) :: ioff   !< offset index x-direction indicating location of soil grid point
+    INTEGER(iwp) :: j      !< grid index y-direction
+    INTEGER(iwp) :: joff   !< offset index x-direction indicating location of soil grid point
+    INTEGER(iwp) :: k      !< grid index z-direction
+    INTEGER(iwp) :: koff   !< offset index x-direction indicating location of soil grid point
+    INTEGER(iwp) :: l      !< running index surface-orientation
+    INTEGER(iwp) :: m      !< running index surface elements
+
+    koff = surf_lsm_h%koff
+    DO  m = 1, surf_lsm_h%ns
+       i = surf_lsm_h%i(m)
+       j = surf_lsm_h%j(m)
+       k = surf_lsm_h%k(m)
+       pt(k+koff,j,i) = pt(k,j,i)
+    ENDDO
+
+    DO  l = 0, 3
+       ioff = surf_lsm_v(l)%ioff
+       joff = surf_lsm_v(l)%joff
+       DO  m = 1, surf_lsm_v(l)%ns
+          i = surf_lsm_v(l)%i(m)
+          j = surf_lsm_v(l)%j(m)
+          k = surf_lsm_v(l)%k(m)
+          pt(k,j+joff,i+ioff) = pt(k,j,i)
+       ENDDO
+    ENDDO
+!
+!-- In case of humidity, set boundary conditions also for q and vpt.
+    IF ( humidity )  THEN
+       koff = surf_lsm_h%koff
+       DO  m = 1, surf_lsm_h%ns
+          i = surf_lsm_h%i(m)
+          j = surf_lsm_h%j(m)
+          k = surf_lsm_h%k(m)
+          q(k+koff,j,i)   = q(k,j,i)
+          vpt(k+koff,j,i) = vpt(k,j,i)
+       ENDDO
+
+       DO  l = 0, 3
+          ioff = surf_lsm_v(l)%ioff
+          joff = surf_lsm_v(l)%joff
+          DO  m = 1, surf_lsm_v(l)%ns
+             i = surf_lsm_v(l)%i(m)
+             j = surf_lsm_v(l)%j(m)
+             k = surf_lsm_v(l)%k(m)
+             q(k,j+joff,i+ioff)   = q(k,j,i)
+             vpt(k,j+joff,i+ioff) = vpt(k,j,i)
+          ENDDO
+       ENDDO
+    ENDIF
+
+ END SUBROUTINE lsm_boundary_condition
 
 !------------------------------------------------------------------------------!
@@ -975,4 +1105,5 @@
 
  END SUBROUTINE lsm_check_data_output
+
 
 
@@ -1060,8 +1191,5 @@
         ONLY:  bc_pt_b, bc_q_b, constant_flux_layer, message_string,           &
                most_method
-                 
-    USE radiation_model_mod,                                                   &
-        ONLY:  radiation
-    
+                     
     
     IMPLICIT NONE
@@ -1075,8 +1203,8 @@
          TRIM( surface_type ) /= 'pavement'    .AND.                           &
          TRIM( surface_type ) /= 'water'       .AND.                           &
-         TRIM( surface_type ) /= 'netcdf' )  THEN
-          message_string = 'unknown surface type surface_type = "' //          &
+         TRIM( surface_type ) /= 'netcdf' )  THEN  
+       message_string = 'unknown surface type surface_type = "' //             &
                         TRIM( surface_type ) // '"'
-                CALL message( 'check_parameters', 'PA0019', 1, 2, 0, 6, 0 )
+       CALL message( 'check_parameters', 'PA0019', 1, 2, 0, 6, 0 )
     ENDIF
 
@@ -1164,5 +1292,5 @@
           ENDIF
        ENDIF
-     
+
        IF ( vegetation_type == 1 )  THEN
           IF ( vegetation_coverage /= 9999999.9_wp  .AND.  vegetation_coverage &
@@ -1260,11 +1388,30 @@
     
     ENDIF
+
+    IF ( TRIM( surface_type ) == 'netcdf' )  THEN
+       IF ( ANY( water_type_f%var /= water_type_f%fill )  .AND.                &
+            TRIM( most_method ) == 'lookup' )  THEN    
+          WRITE( message_string, * ) 'water-surfaces are not allowed in ' //   &
+                                     'combination with most_method = ',        &
+                                     TRIM( most_method )
+          CALL message( 'check_parameters', 'PA0999', 2, 2, 0, 6, 0 )
+       ENDIF
+!
+!--    MS: Some problme here, after calling message everythings stucks at
+!--        MPI_FINALIZE call. 
+       IF ( ANY( pavement_type_f%var /= pavement_type_f%fill )  .AND.           &
+            ANY( dz_soil /= 9999999.9_wp ) )  THEN
+          message_string = 'pavement-surfaces are not allowed in ' //           &
+                           'combination with a non-default setting of dz_soil'
+          CALL message( 'check_parameters', 'PA0999', 2, 2, 0, 6, 0 )
+       ENDIF
+    ENDIF
     
 !
 !-- Temporary message as long as NetCDF input is not available
-    IF ( TRIM( surface_type ) == 'netcdf' )  THEN
-             message_string = 'surface_type = netcdf '//                       &
-                              'is not supported at the moment'
-             CALL message( 'check_parameters', 'PA0465', 1, 2, 0, 6, 0 )
+    IF ( TRIM( surface_type ) == 'netcdf'  .AND.  .NOT.  input_pids_static )   &
+    THEN
+       message_string = 'surface_type = netcdf requires static input file.'
+       CALL message( 'check_parameters', 'PA0465', 1, 2, 0, 6, 0 )
     ENDIF
 
@@ -1362,5 +1509,5 @@
     DO  k = nzb_soil, nzt_soil
        IF ( soil_moisture(k) > saturation_moisture )  THEN 
-          message_string = 'soil_moisture must not exceed its saturation' //   &
+          message_string = 'soil_moisture must not exceed its saturation' //    &
                             ' value'
           CALL message( 'check_parameters', 'PA0458', 1, 2, 0, 6, 0 )
@@ -1378,4 +1525,5 @@
     ALLOCATE ( dz_soil_center(nzb_soil:nzt_soil) )
     ALLOCATE ( zs(nzb_soil:nzt_soil+1) )
+
 
     zs(nzb_soil) = 0.5_wp * dz_soil(nzb_soil)
@@ -1428,5 +1576,4 @@
     INTEGER(iwp) ::  k         !< running index
     INTEGER(iwp) ::  k_off     !< offset to determine index of surface element, seen from atmospheric grid point, for z
-    INTEGER(iwp) ::  k_rad     !< index to access radiation array
     INTEGER(iwp) ::  ks        !< running index
     INTEGER(iwp) ::  l         !< surface-facing index
@@ -1454,7 +1601,5 @@
                 lambda_soil, & !< Thermal conductivity of the uppermost soil layer (W/m2/K)
                 lambda_surface, & !< Current value of lambda_surface (W/m2/K)
-                m_liq_max,   & !< maxmimum value of the liq. water reservoir
-                pt1,         & !< potential temperature at first grid level
-                qv1            !< specific humidity at first grid level
+                m_liq_max      !< maxmimum value of the liq. water reservoir
 
     TYPE(surf_type_lsm), POINTER ::  surf_t_surface
@@ -1472,4 +1617,5 @@
     IF ( horizontal )  THEN
        surf              => surf_lsm_h
+
        surf_t_surface    => t_surface_h
        surf_t_surface_p  => t_surface_h_p
@@ -1480,10 +1626,7 @@
        surf_m_soil       => m_soil_h
        surf_t_soil       => t_soil_h
-
-       k_off     = -1
-       j_off     = 0
-       i_off     = 0
     ELSE
        surf              => surf_lsm_v(l)
+
        surf_t_surface    => t_surface_v(l)
        surf_t_surface_p  => t_surface_v_p(l)
@@ -1494,20 +1637,12 @@
        surf_m_soil       => m_soil_v(l)
        surf_t_soil       => t_soil_v(l)
-
-       k_off = 0
-       IF ( l == 0 )  THEN 
-          j_off = -1 
-          i_off = 0
-       ELSEIF ( l == 1 )  THEN 
-          j_off = 1 
-          i_off = 0
-       ELSEIF ( l == 2 )  THEN 
-          j_off = 0 
-          i_off = -1
-       ELSEIF ( l == 3 )  THEN 
-          j_off = 0 
-          i_off = 1
-       ENDIF
     ENDIF
+
+!
+!-- Index offset of surface element point with respect to adjoining 
+!-- atmospheric grid point 
+    k_off = surf%koff
+    j_off = surf%joff
+    i_off = surf%ioff
 
 !
@@ -1520,10 +1655,4 @@
        j   = surf%j(m)
        k   = surf%k(m)
-!
-!--    Determine height index for radiation. Note, in clear-sky case radiation
-!--    arrays have rank 0 in first dimensions, so index must be zero. In case
-!--    of RRTMG radiation arrays have non-zero rank in first dimension, so that 
-!--    radiation can be obtained at respective height level
-       k_rad = MERGE( 0, k + k_off, radiation_scheme /= 'rrtmg' )
 
 !
@@ -1589,18 +1718,18 @@
 !--    time step is used here. Note that this formulation is the
 !--    equivalent to the ECMWF formulation using drag coefficients
-       IF ( cloud_physics )  THEN
-          pt1 = pt(k,j,i) + l_d_cp * pt_d_t(k) * ql(k,j,i)
-          qv1 = q(k,j,i) - ql(k,j,i)
-       ELSEIF ( cloud_droplets ) THEN
-          pt1 = pt(k,j,i) + l_d_cp * pt_d_t(k) * ql(k,j,i)
-          qv1 = q(k,j,i) 
-       ELSE
-          pt1 = pt(k,j,i)
-          IF ( humidity )  THEN
-             qv1 = q(k,j,i)
-          ELSE
-             qv1 = 0.0_wp
-          ENDIF
-       ENDIF
+!        IF ( cloud_physics )  THEN
+!           pt1 = pt(k,j,i) + l_d_cp * pt_d_t(k) * ql(k,j,i)
+!           qv1 = q(k,j,i) - ql(k,j,i)
+!        ELSEIF ( cloud_droplets ) THEN
+!           pt1 = pt(k,j,i) + l_d_cp * pt_d_t(k) * ql(k,j,i)
+!           qv1 = q(k,j,i) 
+!        ELSE
+!           pt1 = pt(k,j,i)
+!           IF ( humidity )  THEN
+!              qv1 = q(k,j,i)
+!           ELSE
+!              qv1 = 0.0_wp
+!           ENDIF
+!        ENDIF
 !
 !--    Calculate aerodynamical resistance. For horizontal and vertical 
@@ -1608,19 +1737,23 @@
 !--    can be obtain via parameterization of Mason (2000) / 
 !--    Krayenhoff and Voogt (2006).
-!--    To do: detailed investigation which approach is better!
+!--    To do: detailed investigation which approach gives more reliable results!
+!--    Please note, in case of very small friction velocity, e.g. in little 
+!--    holes, the resistance can become negative. For this reason, limit r_a 
+!--    to positive values. 
        IF ( horizontal  .OR.  .NOT. aero_resist_kray )  THEN
-          surf%r_a(m) = ( pt1 - surf_lsm_h%pt_surface(m) ) /                   &
-                        ( surf%ts(m) * surf%us(m) + 1.0E-20_wp )
+          surf%r_a(m) = ABS( ( surf%pt1(m) - surf%pt_surface(m) ) /            &
+                             ( surf%ts(m) * surf%us(m) + 1.0E-20_wp ) )
        ELSE
           surf%r_a(m) = 1.0_wp / ( 11.8_wp + 4.2_wp *                          &
-                        SQRT( ( ( u(k,j,i) + u(k,j,i+1) ) * 0.5_wp )**2 +      &
-                              ( ( v(k,j,i) + v(k,j+1,i) ) * 0.5_wp )**2 +      &
-                              ( ( w(k,j,i) + w(k-1,j,i) ) * 0.5_wp )**2 )      &
+                        SQRT( MAX( ( ( u(k,j,i) + u(k,j,i+1) ) * 0.5_wp )**2 + &
+                                   ( ( v(k,j,i) + v(k,j+1,i) ) * 0.5_wp )**2 + &
+                                   ( ( w(k,j,i) + w(k-1,j,i) ) * 0.5_wp )**2,  &
+                              0.01_wp ) )                                      &
                                  )
        ENDIF
 !
 !--    Make sure that the resistance does not drop to zero for neutral 
-!--    stratification
-       IF ( ABS( surf%r_a(m) ) < 1.0_wp )  surf%r_a(m) = 1.0_wp
+!--    stratification. 
+       IF ( surf%r_a(m) < 1.0_wp )  surf%r_a(m) = 1.0_wp
 !
 !--    Second step: calculate canopy resistance r_canopy
@@ -1629,7 +1762,7 @@
 !--    f1: correction for incoming shortwave radiation (stomata close at 
 !--    night)
-       f1 = MIN( 1.0_wp, ( 0.004_wp * rad_sw_in(k_rad,j+j_off,i+i_off)         &
-                 + 0.05_wp ) / (0.81_wp * (0.004_wp                            &
-                 * rad_sw_in(k_rad,j+j_off,i+i_off) + 1.0_wp)) )
+       f1 = MIN( 1.0_wp, ( 0.004_wp * surf%rad_sw_in(m) + 0.05_wp ) /          &
+                        (0.81_wp * (0.004_wp * surf%rad_sw_in(m)               &
+                         + 1.0_wp)) )
 !
 !--    f2: correction for soil moisture availability to plants (the 
@@ -1665,5 +1798,5 @@
 !
 !--       Calculate vapour pressure
-          e  = qv1 * surface_pressure / ( qv1 + 0.622_wp )
+          e  = surf%qv1(m) * surface_pressure / ( surf%qv1(m) + 0.622_wp )
           f3 = EXP ( - surf%g_d(m) * (e_s - e) )
        ELSE
@@ -1682,6 +1815,6 @@
 
 
-       f2 = ( surf_m_soil%var_2d(nzb_soil,m) - m_min )                         &
-            / ( surf%m_fc(nzb_soil,m) - m_min )
+       f2 = ( surf_m_soil%var_2d(nzb_soil,m) - m_min ) /                       &
+            ( surf%m_fc(nzb_soil,m) - m_min )
        f2 = MAX( f2, 1.0E-20_wp )
        f2 = MIN( f2, 1.0_wp     )
@@ -1698,5 +1831,5 @@
        IF ( surf%pavement_surface(m) )  THEN
           m_liq_max = m_max_depth * 5.0_wp
-          surf%c_liq(m) = MIN( 1.0_wp, (surf_m_liq%var_1d(m) / m_liq_max)**0.67 )
+          surf%c_liq(m) = MIN( 1.0_wp, ( surf_m_liq%var_1d(m) / m_liq_max)**0.67 )
        ELSE
           m_liq_max = m_max_depth * ( surf%c_veg(m) * surf%lai(m)              &
@@ -1710,5 +1843,5 @@
 !--    In case of dewfall, set evapotranspiration to zero
 !--    All super-saturated water is then removed from the air
-       IF ( humidity  .AND.  q_s <= qv1 )  THEN
+       IF ( humidity  .AND.  q_s <= surf%qv1(m) )  THEN
           surf%r_canopy(m) = 0.0_wp
           surf%r_soil(m)   = 0.0_wp
@@ -1747,6 +1880,9 @@
        dq_s_dt = 0.622_wp * e_s_dt / ( surface_pressure - e_s_dt )
 !
-!--    Add LW up so that it can be removed in prognostic equation
-       surf%rad_net_l(m) = rad_net(j,i) + rad_lw_out(nzb,j,i)
+!--    Calculate net radiation radiation without longwave outgoing flux because
+!--    it has a dependency on surface temperature and thus enters the prognostic 
+!--    equations directly
+       surf%rad_net_l(m) = surf%rad_sw_in(m) - surf%rad_sw_out(m)              &
+                           + surf%rad_lw_in(m)
 !
 !--    Calculate new skin temperature
@@ -1754,25 +1890,27 @@
 !
 !--       Numerator of the prognostic equation
-          coef_1 = surf%rad_net_l(m) + rad_lw_out_change_0(j,i)                &
-                   * surf_t_surface%var_1d(m) - rad_lw_out(nzb,j,i)            &
-                   + f_shf * pt1 + f_qsws * ( qv1 - q_s                        &
+          coef_1 = surf%rad_net_l(m) + surf%rad_lw_out_change_0(m)             &
+                   * surf_t_surface%var_1d(m) - surf%rad_lw_out(m)             &
+                   + f_shf * surf%pt1(m) + f_qsws * ( surf%qv1(m) - q_s        &
                    + dq_s_dt * surf_t_surface%var_1d(m) ) + lambda_surface     &
                    * surf_t_soil%var_2d(nzb_soil,m)
+
 !
 !--       Denominator of the prognostic equation
-          coef_2 = rad_lw_out_change_0(j,i) + f_qsws * dq_s_dt                 &
+          coef_2 = surf%rad_lw_out_change_0(m) + f_qsws * dq_s_dt              &
                    + lambda_surface + f_shf / exn
        ELSE
 !
 !--       Numerator of the prognostic equation
-          coef_1 = surf%rad_net_l(m) + rad_lw_out_change_0(j,i)                &
-                   * surf_t_surface%var_1d(m) - rad_lw_out(nzb,j,i)            &
-                   + f_shf * pt1  + lambda_surface                             &
+          coef_1 = surf%rad_net_l(m) + surf%rad_lw_out_change_0(m)             &
+                   * surf_t_surface%var_1d(m) - surf%rad_lw_out(m)             &
+                   + f_shf * surf%pt1(m)  + lambda_surface                     &
                    * surf_t_soil%var_2d(nzb_soil,m)
 !
 !--       Denominator of the prognostic equation
-          coef_2 = rad_lw_out_change_0(j,i) + lambda_surface + f_shf / exn
+          coef_2 = surf%rad_lw_out_change_0(m) + lambda_surface + f_shf / exn
 
        ENDIF
+
 
        tend = 0.0_wp
@@ -1819,9 +1957,21 @@
 !--    computing time for the radiation code).
        IF ( ABS( surf_t_surface_p%var_1d(m) - surf_t_surface%var_1d(m) )       &
-            > 0.2_wp  .AND. unscheduled_radiation_calls )  THEN
+            > 0.2_wp  .AND. &
+            unscheduled_radiation_calls )  THEN
           force_radiation_call_l = .TRUE.
        ENDIF
 
-       pt(k+k_off,j+j_off,i+i_off) = surf_t_surface_p%var_1d(m) / exn  !is actually no air temperature
+
+!        IF ( surf_t_surface_p%var_1d(m) < 270.0_wp .OR. surf_t_surface_p%var_1d(m) > 350.0_wp )  THEN
+!           PRINT*, "myid: ", myid
+!           PRINT*, "m: ", m
+!           PRINT*, "i,j,k: ", i, j, k
+!           PRINT*, "pt_p: ", surf_t_surface_p%var_1d(m)
+!           PRINT*, "f_shf: ", f_shf
+!           PRINT*, "f_qsws: ", f_qsws
+!         ENDIF
+
+
+!        pt(k+k_off,j+j_off,i+i_off) = surf_t_surface_p%var_1d(m) / exn  !is actually no air temperature
        surf%pt_surface(m)          = surf_t_surface_p%var_1d(m) / exn
 
@@ -1829,10 +1979,10 @@
 !--    Calculate fluxes
        surf%rad_net_l(m) = surf%rad_net_l(m) +                                 &
-                            rad_lw_out_change_0(j,i)                           &
-                          * surf_t_surface%var_1d(m) - rad_lw_out(nzb,j,i)     &
-                          - rad_lw_out_change_0(j,i) * surf_t_surface_p%var_1d(m)
-
-       rad_net(j,i) = surf%rad_net_l(m)
-       rad_lw_out(nzb,j,i) = rad_lw_out(nzb,j,i) + rad_lw_out_change_0(j,i) *  &
+                            surf%rad_lw_out_change_0(m)                        &
+                          * surf_t_surface%var_1d(m) - surf%rad_lw_out(m)      &
+                          - surf%rad_lw_out_change_0(m) * surf_t_surface_p%var_1d(m)
+
+       surf%rad_net(m) = surf%rad_net_l(m)
+       surf%rad_lw_out(m) = surf%rad_lw_out(m) + surf%rad_lw_out_change_0(m) * &
                      ( surf_t_surface_p%var_1d(m) - surf_t_surface%var_1d(m) )
 
@@ -1840,21 +1990,20 @@
                                              - surf_t_soil%var_2d(nzb_soil,m) )
 
-       surf%shf(m) = - f_shf * ( pt1 - surf%pt_surface(m) ) / cp
-
+       surf%shf(m) = - f_shf * ( surf%pt1(m) - surf%pt_surface(m) ) / cp
 
        IF ( humidity )  THEN
-          surf%qsws(m)  = - f_qsws * ( qv1 - q_s + dq_s_dt                     &
+          surf%qsws(m)  = - f_qsws * ( surf%qv1(m) - q_s + dq_s_dt             &
                           * surf_t_surface%var_1d(m) - dq_s_dt *               &
                             surf_t_surface_p%var_1d(m) )
 
-          surf%qsws_veg(m)  = - f_qsws_veg  * ( qv1 - q_s                      &
+          surf%qsws_veg(m)  = - f_qsws_veg  * ( surf%qv1(m) - q_s              &
                               + dq_s_dt * surf_t_surface%var_1d(m) - dq_s_dt   &
                               * surf_t_surface_p%var_1d(m) )
 
-          surf%qsws_soil(m) = - f_qsws_soil * ( qv1 - q_s                      &
+          surf%qsws_soil(m) = - f_qsws_soil * ( surf%qv1(m) - q_s              &
                               + dq_s_dt * surf_t_surface%var_1d(m) - dq_s_dt   &
                               * surf_t_surface_p%var_1d(m) )
 
-          surf%qsws_liq(m)  = - f_qsws_liq  * ( qv1 - q_s                      &
+          surf%qsws_liq(m)  = - f_qsws_liq  * ( surf%qv1(m) - q_s              &
                               + dq_s_dt * surf_t_surface%var_1d(m) - dq_s_dt   &
                               * surf_t_surface_p%var_1d(m) )
@@ -1866,5 +2015,5 @@
           surf%r_s(m) = 1.0E10_wp
        ELSE
-          surf%r_s(m) = - rho_lv * ( qv1 - q_s + dq_s_dt                       &
+          surf%r_s(m) = - rho_lv * ( surf%qv1(m) - q_s + dq_s_dt               &
                           * surf_t_surface%var_1d(m) - dq_s_dt *               &
                             surf_t_surface_p%var_1d(m) ) /                     &
@@ -1954,5 +2103,5 @@
                       intermediate_timestep_count_max )  THEN
                 surf_tm_liq_m%var_1d(m) = -9.5625_wp * tend +                  &
-                                              5.3125_wp * surf_tm_liq_m%var_1d(m)
+                                           5.3125_wp * surf_tm_liq_m%var_1d(m)
              ENDIF
           ENDIF
@@ -2015,5 +2164,5 @@
           q_s = 0.622_wp * e_s / ( surface_pressure - e_s )
 
-          resistance = surf%r_a(m) / ( surf%r_a(m) + surf%r_s(m) )
+          resistance = surf%r_a(m) / ( surf%r_a(m) + surf%r_s(m) + 1E-5_wp )
 
 !
@@ -2028,5 +2177,4 @@
                                           q(k,j,i)
           ENDIF
-
 !
 !--       Update virtual potential temperature
@@ -2098,7 +2246,11 @@
        ENDIF
 
-       WRITE( io, 4 ) TRIM( vegetation_type_name(vegetation_type) ),           &
-                        TRIM (soil_type_name(soil_type) )
-       WRITE( io, 5 ) TRIM( soil_depth_chr ), TRIM( t_soil_chr ),              &
+       IF ( vegetation_type_f%from_file )  THEN
+          WRITE( io, 5 )
+       ELSE
+          WRITE( io, 4 ) TRIM( vegetation_type_name(vegetation_type) ),        &
+                         TRIM (soil_type_name(soil_type) )
+       ENDIF
+       WRITE( io, 6 ) TRIM( soil_depth_chr ), TRIM( t_soil_chr ),              &
                         TRIM( m_soil_chr ), TRIM( roots_chr ),                 &
                         TRIM( vertical_index_chr )
@@ -2111,5 +2263,7 @@
 4   FORMAT ('    --> Land surface type  : ',A,/                                &
             '    --> Soil porosity type : ',A)
-5   FORMAT (/'    Initial soil temperature and moisture profile:'//            &
+5   FORMAT ('    --> Land surface type  : read from file' /                    &
+            '    --> Soil porosity type : read from file' )
+6   FORMAT (/'    Initial soil temperature and moisture profile:'//            &
             '       Height:        ',A,'  m'/                                  &
             '       Temperature:   ',A,'  K'/                                  &
@@ -2117,4 +2271,5 @@
             '       Root fraction: ',A,'  '/                                   &
             '       Grid point:    ',A)
+
 
     END SUBROUTINE lsm_header
@@ -2133,19 +2288,18 @@
        IMPLICIT NONE
 
-       INTEGER(iwp) ::  i     !< running index
-       INTEGER(iwp) ::  i_off !< index offset of surface element, seen from atmospheric grid point 
-       INTEGER(iwp) ::  j     !< running index
-       INTEGER(iwp) ::  j_off !< index offset of surface element, seen from atmospheric grid point 
-       INTEGER(iwp) ::  k     !< running index
-       INTEGER(iwp) ::  kn    !< running index
-       INTEGER(iwp) ::  ko    !< running index
-       INTEGER(iwp) ::  kroot !< running index
-       INTEGER(iwp) ::  kzs   !< running index
-       INTEGER(iwp) ::  l     !< running index surface facing
-       INTEGER(iwp) ::  m     !< running index
+       INTEGER(iwp) ::  i                       !< running index
+       INTEGER(iwp) ::  i_off                   !< index offset of surface element, seen from atmospheric grid point 
+       INTEGER(iwp) ::  j                       !< running index
+       INTEGER(iwp) ::  j_off                   !< index offset of surface element, seen from atmospheric grid point 
+       INTEGER(iwp) ::  k                       !< running index
+       INTEGER(iwp) ::  kn                      !< running index
+       INTEGER(iwp) ::  ko                      !< running index
+       INTEGER(iwp) ::  kroot                   !< running index
+       INTEGER(iwp) ::  kzs                     !< running index
+       INTEGER(iwp) ::  l                       !< running index surface facing
+       INTEGER(iwp) ::  m                       !< running index
+       INTEGER(iwp) ::  st                      !< soil-type index
        INTEGER(iwp) ::  n_soil_layers_total     !< temperature variable, stores the total number of soil layers + 4 
-
-
-       REAL(wp) :: pt1   !< potential temperature at first grid level
+       INTEGER(iwp) ::  n_surf                  !< number of surface types of given surface element 
 
        REAL(wp), DIMENSION(:), ALLOCATABLE ::  bound, bound_root_fr  !< temporary arrays for storing index bounds
@@ -2157,5 +2311,6 @@
 !--    If no cloud physics is used, rho_surface has not been calculated before
        IF (  .NOT.  cloud_physics )  THEN
-          rho_surface = surface_pressure * 100.0_wp / ( r_d * pt_surface * exn )
+          CALL calc_mean_profile( pt, 4 )
+          rho_surface = surface_pressure * 100.0_wp / ( r_d * hom(nzb+1,1,4,0) * exn )
        ENDIF
 
@@ -2206,5 +2361,18 @@
           surf_lsm_v(l)%r_soil     = 0.0_wp
        ENDDO
-   
+
+!
+!--    Set initial values for prognostic soil quantities
+       IF ( TRIM( initializing_actions ) /= 'read_restart_data' )  THEN
+          t_soil_h%var_2d = 0.0_wp
+          m_soil_h%var_2d = 0.0_wp
+          m_liq_h%var_1d  = 0.0_wp
+
+          DO  l = 0, 3
+             t_soil_v(l)%var_2d = 0.0_wp
+             m_soil_v(l)%var_2d = 0.0_wp
+             m_liq_v(l)%var_1d  = 0.0_wp
+          ENDDO
+       ENDIF
 !
 !--    Allocate 3D soil model arrays
@@ -2261,50 +2429,143 @@
           ENDIF      
        ENDDO
-
+!
+!--    Allocate albedo type and emissivity for vegetation, water and pavement 
+!--    fraction.
+!--    Set default values at each surface element. 
+       ALLOCATE ( surf_lsm_h%albedo_type(0:2,1:surf_lsm_h%ns) )
+       ALLOCATE ( surf_lsm_h%emissivity(0:2,1:surf_lsm_h%ns) )
+       surf_lsm_h%albedo_type = 0      
+       surf_lsm_h%emissivity  = emissivity
+       DO  l = 0, 3
+          ALLOCATE ( surf_lsm_v(l)%albedo_type(0:2,1:surf_lsm_v(l)%ns) )
+          ALLOCATE ( surf_lsm_v(l)%emissivity(0:2,1:surf_lsm_v(l)%ns)  )
+          surf_lsm_v(l)%albedo_type = 0
+          surf_lsm_v(l)%emissivity  = emissivity
+       ENDDO
+!
+!--    Allocate arrays for relative surface fraction. 
+!--    0 - vegetation fraction, 2 - water fraction, 1 - pavement fraction
+       ALLOCATE( surf_lsm_h%frac(0:2,1:surf_lsm_h%ns) )
+       surf_lsm_h%frac = 0.0_wp
+       DO  l = 0, 3
+          ALLOCATE( surf_lsm_v(l)%frac(0:2,1:surf_lsm_v(l)%ns) )
+          surf_lsm_v(l)%frac = 0.0_wp
+       ENDDO
+!
+!--    For vertical walls only - allocate special flag indicating if any building is on
+!--    top of any natural surfaces. Used for initialization only. 
+       DO  l = 0, 3
+          ALLOCATE( surf_lsm_v(l)%building_covered(1:surf_lsm_v(l)%ns) )
+       ENDDO
 !
 !--    Set flag parameter for the prescribed surface type depending on user 
-!--    input.
-       DO  m = 1, surf_lsm_h%ns
-
-          SELECT CASE ( TRIM( surface_type ) )
+!--    input. Set surface fraction to 1 for the respective type.
+       SELECT CASE ( TRIM( surface_type ) )
           
-             CASE ( 'vegetation' )
+          CASE ( 'vegetation' )
          
-                surf_lsm_h%vegetation_surface(m)    = .TRUE.
+             surf_lsm_h%vegetation_surface = .TRUE.
+             surf_lsm_h%frac(ind_veg,:) = 1.0_wp
+             DO  l = 0, 3
+                surf_lsm_v(l)%vegetation_surface = .TRUE.
+                surf_lsm_v(l)%frac(ind_veg,:) = 1.0_wp
+             ENDDO
    
-             CASE ( 'water' )
+          CASE ( 'water' )
              
-                surf_lsm_h%water_surface(m)      = .TRUE.
-
-             CASE ( 'pavement' )
+             surf_lsm_h%water_surface = .TRUE.
+             surf_lsm_h%frac(ind_wat,:) = 1.0_wp
+!
+!--          Note, vertical water surface does not really make sense.
+             DO  l = 0, 3  
+                surf_lsm_v(l)%water_surface   = .TRUE.
+                surf_lsm_v(l)%frac(ind_wat,:) = 1.0_wp
+             ENDDO
+
+          CASE ( 'pavement' )
              
-                surf_lsm_h%pavement_surface(m)   = .TRUE.
-    
-          END SELECT
-  
-       ENDDO
-       
-       DO  l = 0, 3
-          SELECT CASE ( TRIM( surface_type ) )
-          
-             CASE ( 'vegetation' )
-         
-                surf_lsm_v(l)%vegetation_surface = .TRUE.
-   
-             CASE ( 'water' )
-
-                surf_lsm_v(l)%water_surface   = .TRUE.
-
-             CASE ( 'pavement' )
-             
-                surf_lsm_h%pavement_surface   = .TRUE.
-
-          END SELECT   
-
-       ENDDO
-!
-!--    Initialize standard soil types. It is possible to overwrite each
-!--    parameter by setting the respecticy NAMELIST variable to a 
-!--    value /= 9999999.9. 
+             surf_lsm_h%pavement_surface = .TRUE.
+                surf_lsm_h%frac(ind_pav,:) = 1.0_wp
+             DO  l = 0, 3
+                surf_lsm_v(l)%pavement_surface   = .TRUE.
+                surf_lsm_v(l)%frac(ind_pav,:) = 1.0_wp
+             ENDDO
+
+          CASE ( 'netcdf' )
+
+             DO  m = 1, surf_lsm_h%ns
+                i = surf_lsm_h%i(m)
+                j = surf_lsm_h%j(m)
+                IF ( vegetation_type_f%var(j,i) /= vegetation_type_f%fill )        &
+                   surf_lsm_h%vegetation_surface(m) = .TRUE.
+                IF ( pavement_type_f%var(j,i)   /= pavement_type_f%fill )          &
+                   surf_lsm_h%pavement_surface(m) = .TRUE.
+                IF ( water_type_f%var(j,i)      /= water_type_f%fill )             &
+                   surf_lsm_h%water_surface(m) = .TRUE.
+             ENDDO
+             DO  l = 0, 3
+                DO  m = 1, surf_lsm_v(l)%ns
+!
+!--                Only for vertical surfaces. Check if natural walls at reference
+!--                grid point are covered by any building. This case, problems 
+!--                with initialization will aris if index offsets are used. 
+!--                In order to deal with this, set special flag. 
+                   surf_lsm_v(l)%building_covered(m) = .FALSE.
+                   IF ( building_type_f%from_file )  THEN
+                      i = surf_lsm_v(l)%i(m) + surf_lsm_v(l)%ioff
+                      j = surf_lsm_v(l)%j(m) + surf_lsm_v(l)%joff
+                      IF ( building_type_f%var(j,i) /= 0 )                     &
+                         surf_lsm_v(l)%building_covered(m) = .TRUE.
+                   ENDIF
+!
+!--                Normally proceed with setting surface types.
+                   i = surf_lsm_v(l)%i(m) + MERGE( 0, surf_lsm_v(l)%ioff,     &
+                                            surf_lsm_v(l)%building_covered(m) )
+                   j = surf_lsm_v(l)%j(m) + MERGE( 0, surf_lsm_v(l)%joff,     &
+                                            surf_lsm_v(l)%building_covered(m) )
+                   IF ( vegetation_type_f%var(j,i) /= vegetation_type_f%fill ) &
+                      surf_lsm_v(l)%vegetation_surface(m) = .TRUE.
+                   IF ( pavement_type_f%var(j,i)   /= pavement_type_f%fill )   &
+                      surf_lsm_v(l)%pavement_surface(m) = .TRUE.
+                   IF ( water_type_f%var(j,i)      /= water_type_f%fill )      &
+                      surf_lsm_v(l)%water_surface(m) = .TRUE.
+                ENDDO
+             ENDDO
+
+       END SELECT
+!
+!--    In case of netcdf input file, further initialize surface fractions. 
+!--    At the moment only 1 surface is given at a location, so that the fraction
+!--    is either 0 or 1. This will be revised later. 
+       IF ( input_pids_static )  THEN
+          DO  m = 1, surf_lsm_h%ns
+             i = surf_lsm_h%i(m)
+             j = surf_lsm_h%j(m)
+!
+!--          0 - vegetation fraction, 1 - pavement fraction, 2 - water fraction             
+             surf_lsm_h%frac(ind_veg,m) = surface_fraction_f%frac(ind_veg,j,i)         
+             surf_lsm_h%frac(ind_pav,m) = surface_fraction_f%frac(ind_pav,j,i)        
+             surf_lsm_h%frac(ind_wat,m) = surface_fraction_f%frac(ind_wat,j,i)
+
+          ENDDO
+          DO  l = 0, 3
+             DO  m = 1, surf_lsm_v(l)%ns
+                i = surf_lsm_v(l)%i(m) + MERGE( 0, surf_lsm_v(l)%ioff,         &
+                                                surf_lsm_v(l)%building_covered(m) ) 
+                j = surf_lsm_v(l)%j(m) + MERGE( 0, surf_lsm_v(l)%joff,         &
+                                                surf_lsm_v(l)%building_covered(m) ) 
+!
+!--             0 - vegetation fraction, 1 - pavement fraction, 2 - water fraction        
+                surf_lsm_v(l)%frac(ind_veg,m) = surface_fraction_f%frac(ind_veg,j,i)         
+                surf_lsm_v(l)%frac(ind_pav,m) = surface_fraction_f%frac(ind_pav,j,i)        
+                surf_lsm_v(l)%frac(ind_wat,m) = surface_fraction_f%frac(ind_wat,j,i)
+
+             ENDDO
+          ENDDO
+       ENDIF
+!
+!--    Level 1, initialization of soil parameters.
+!--    It is possible to overwrite each parameter by setting the respecticy 
+!--    NAMELIST variable to a value /= 9999999.9. 
        IF ( soil_type /= 0 )  THEN  
  
@@ -2339,131 +2600,4 @@
           IF ( residual_moisture == 9999999.9_wp )  THEN
              residual_moisture = soil_pars(7,soil_type)       
-          ENDIF
-
-       ENDIF    
-  
-!
-!--    Check whether parameters from the lookup tables are to be used
-       IF ( vegetation_type /= 0 )  THEN
-
-          IF ( min_canopy_resistance == 9999999.9_wp )  THEN
-             min_canopy_resistance = vegetation_pars(0,vegetation_type)
-          ENDIF
-
-          IF ( leaf_area_index == 9999999.9_wp )  THEN
-             leaf_area_index = vegetation_pars(1,vegetation_type)         
-          ENDIF
-
-          IF ( vegetation_coverage == 9999999.9_wp )  THEN
-             vegetation_coverage = vegetation_pars(2,vegetation_type)     
-          ENDIF
-
-          IF ( canopy_resistance_coefficient == 9999999.9_wp )  THEN
-              canopy_resistance_coefficient= vegetation_pars(3,vegetation_type)     
-          ENDIF
-
-          IF ( z0_vegetation == 9999999.9_wp )  THEN
-             z0_vegetation  = vegetation_pars(4,vegetation_type) 
-          ENDIF
-
-          IF ( z0h_vegetation == 9999999.9_wp )  THEN
-             z0h_vegetation = vegetation_pars(5,vegetation_type)
-          ENDIF   
-          
-          IF ( lambda_surface_stable == 9999999.9_wp )  THEN
-             lambda_surface_stable = vegetation_pars(6,vegetation_type) 
-          ENDIF
-
-          IF ( lambda_surface_unstable == 9999999.9_wp )  THEN
-             lambda_surface_unstable = vegetation_pars(7,vegetation_type)           
-          ENDIF
-
-          IF ( f_shortwave_incoming == 9999999.9_wp )  THEN
-             f_shortwave_incoming = vegetation_pars(8,vegetation_type)        
-          ENDIF
-
-          IF ( c_surface == 9999999.9_wp )  THEN
-             c_surface = vegetation_pars(9,vegetation_type)        
-          ENDIF
- 
-          IF ( albedo_type == 9999999  .AND.  albedo == 9999999.9_wp )  THEN
-             albedo_type = INT(vegetation_pars(10,vegetation_type))       
-          ENDIF
-   
-          IF ( emissivity == 9999999.9_wp )  THEN
-             emissivity = vegetation_pars(11,vegetation_type)     
-          ENDIF
-          
-       ENDIF
-
-       IF ( water_type /= 0 )  THEN
-
-          IF ( water_temperature == 9999999.9_wp )  THEN
-             water_temperature = water_pars(0,water_type)       
-          ENDIF
-
-          IF ( z0_water == 9999999.9_wp )  THEN
-             z0_water = water_pars(1,water_type)
-          ENDIF       
-
-          IF ( z0h_water == 9999999.9_wp )  THEN
-             z0h_water = water_pars(2,water_type)    
-          ENDIF  
-
-          IF ( albedo_type == 9999999  .AND.  albedo == 9999999.9_wp )  THEN
-             albedo_type = INT(water_pars(3,water_type))        
-          ENDIF
-   
-          IF ( emissivity == 9999999.9_wp )  THEN
-             emissivity = water_pars(4,water_type)        
-          ENDIF
-
-       ENDIF 
-       
-       IF ( pavement_type /= 0 )  THEN  
-
-!
-!--       When a pavement_type is used, overwrite a possible setting of 
-!--       the pavement depth as it is already defined by the pavement type
-          pavement_depth_level = 0
-
-          IF ( z0_pavement == 9999999.9_wp )  THEN
-             z0_pavement  = pavement_pars(0,pavement_type) 
-          ENDIF
-
-          IF ( z0h_pavement == 9999999.9_wp )  THEN
-             z0h_pavement = pavement_pars(1,pavement_type)
-          ENDIF
-
-          IF ( pavement_heat_conduct == 9999999.9_wp )  THEN
-             pavement_heat_conduct = pavement_subsurface_pars_1(0,pavement_type)
-          ENDIF
-
-          IF ( pavement_heat_capacity == 9999999.9_wp )  THEN
-             pavement_heat_capacity = pavement_subsurface_pars_2(0,pavement_type)
-          ENDIF   
-    
-          IF ( albedo_type == 9999999  .AND.  albedo == 9999999.9_wp )  THEN
-             albedo_type = INT(pavement_pars(2,pavement_type))        
-          ENDIF
-   
-          IF ( emissivity == 9999999.9_wp )  THEN
-             emissivity = pavement_pars(3,pavement_type)        
-          ENDIF
-
-!
-!--       If the depth level of the pavement is not set, determine it from
-!--       lookup table.
-          IF ( pavement_depth_level == 0 )  THEN
-             DO  k = nzb_soil, nzt_soil  
-                IF ( pavement_subsurface_pars_1(k,pavement_type) == 9999999.9_wp &
-                   .OR. pavement_subsurface_pars_2(k,pavement_type)              &
-                   == 9999999.9_wp)  THEN
-                   nzt_pavement = k-1
-                   EXIT
-                ENDIF
-             ENDDO
-          ELSE
-             nzt_pavement = pavement_depth_level
           ENDIF
 
@@ -2494,76 +2628,1348 @@
           surf_lsm_v(l)%r_soil_min    = min_soil_resistance
        ENDDO
-
+!
+!--    Level 2, initialization of soil parameters via soil_type read from file.
+!--    Soil parameters are initialized for each (y,x)-grid point 
+!--    individually using default paramter settings according to the given
+!--    soil type.
+       IF ( soil_type_f%from_file )  THEN
+!
+!--       Level of detail = 1, i.e. a homogeneous soil distribution along the 
+!--       vertical dimension is assumed.
+          IF ( soil_type_f%lod == 1 )  THEN
+!
+!--          Horizontal surfaces
+             DO  m = 1, surf_lsm_h%ns
+                i = surf_lsm_h%i(m)
+                j = surf_lsm_h%j(m)
+             
+                st = soil_type_f%var_2d(j,i)
+                IF ( st /= soil_type_f%fill )  THEN
+                   surf_lsm_h%alpha_vg(:,m)    = soil_pars(0,st)
+                   surf_lsm_h%l_vg(:,m)        = soil_pars(1,st)
+                   surf_lsm_h%n_vg(:,m)        = soil_pars(2,st)
+                   surf_lsm_h%gamma_w_sat(:,m) = soil_pars(3,st)
+                   surf_lsm_h%m_sat(:,m)       = soil_pars(4,st)
+                   surf_lsm_h%m_fc(:,m)        = soil_pars(5,st)
+                   surf_lsm_h%m_wilt(:,m)      = soil_pars(6,st)
+                   surf_lsm_h%m_res(:,m)       = soil_pars(7,st)
+                ENDIF
+             ENDDO
+!
+!--          Vertical surfaces ( assumes the soil type given at respective (x,y) 
+             DO  l = 0, 3
+                DO  m = 1, surf_lsm_v(l)%ns
+                   i = surf_lsm_v(l)%i(m) + MERGE( 0, surf_lsm_v(l)%ioff,      &
+                                                   surf_lsm_v(l)%building_covered(m) ) 
+                   j = surf_lsm_v(l)%j(m) + MERGE( 0, surf_lsm_v(l)%joff,      &
+                                                   surf_lsm_v(l)%building_covered(m) ) 
+
+                   st = soil_type_f%var_2d(j,i)
+                   IF ( st /= soil_type_f%fill )  THEN
+                      surf_lsm_v(l)%alpha_vg(:,m)    = soil_pars(0,st)
+                      surf_lsm_v(l)%l_vg(:,m)        = soil_pars(1,st)
+                      surf_lsm_v(l)%n_vg(:,m)        = soil_pars(2,st)
+                      surf_lsm_v(l)%gamma_w_sat(:,m) = soil_pars(3,st)
+                      surf_lsm_v(l)%m_sat(:,m)       = soil_pars(4,st)
+                      surf_lsm_v(l)%m_fc(:,m)        = soil_pars(5,st)
+                      surf_lsm_v(l)%m_wilt(:,m)      = soil_pars(6,st)
+                      surf_lsm_v(l)%m_res(:,m)       = soil_pars(7,st)
+                   ENDIF
+                ENDDO
+             ENDDO
+!
+!--       Level of detail = 2, i.e. soil type and thus the soil parameters
+!--       can be heterogeneous along the vertical dimension. 
+          ELSE
+!
+!--          Horizontal surfaces
+             DO  m = 1, surf_lsm_h%ns
+                i = surf_lsm_h%i(m)
+                j = surf_lsm_h%j(m)
+             
+                DO  k = nzb_soil, nzt_soil
+                   st = soil_type_f%var_3d(k,j,i)
+                   IF ( st /= soil_type_f%fill )  THEN
+                      surf_lsm_h%alpha_vg(k,m)    = soil_pars(0,st)
+                      surf_lsm_h%l_vg(k,m)        = soil_pars(1,st)
+                      surf_lsm_h%n_vg(k,m)        = soil_pars(2,st)
+                      surf_lsm_h%gamma_w_sat(k,m) = soil_pars(3,st)
+                      surf_lsm_h%m_sat(k,m)       = soil_pars(4,st)
+                      surf_lsm_h%m_fc(k,m)        = soil_pars(5,st)
+                      surf_lsm_h%m_wilt(k,m)      = soil_pars(6,st)
+                      surf_lsm_h%m_res(k,m)       = soil_pars(7,st)
+                   ENDIF
+                ENDDO
+             ENDDO
+!
+!--          Vertical surfaces ( assumes the soil type given at respective (x,y) 
+             DO  l = 0, 3
+                DO  m = 1, surf_lsm_v(l)%ns
+                   i = surf_lsm_v(l)%i(m) + MERGE( 0, surf_lsm_v(l)%ioff,      &
+                                                   surf_lsm_v(l)%building_covered(m) ) 
+                   j = surf_lsm_v(l)%j(m) + MERGE( 0, surf_lsm_v(l)%joff,      &
+                                                   surf_lsm_v(l)%building_covered(m) ) 
+
+                   DO  k = nzb_soil, nzt_soil
+                      st = soil_type_f%var_3d(k,j,i)
+                      IF ( st /= soil_type_f%fill )  THEN
+                         surf_lsm_v(l)%alpha_vg(k,m)    = soil_pars(0,st)
+                         surf_lsm_v(l)%l_vg(k,m)        = soil_pars(1,st)
+                         surf_lsm_v(l)%n_vg(k,m)        = soil_pars(2,st)
+                         surf_lsm_v(l)%gamma_w_sat(k,m) = soil_pars(3,st)
+                         surf_lsm_v(l)%m_sat(k,m)       = soil_pars(4,st)
+                         surf_lsm_v(l)%m_fc(k,m)        = soil_pars(5,st)
+                         surf_lsm_v(l)%m_wilt(k,m)      = soil_pars(6,st)
+                         surf_lsm_v(l)%m_res(k,m)       = soil_pars(7,st)
+                      ENDIF
+                   ENDDO
+                ENDDO
+             ENDDO
+          ENDIF
+       ENDIF
+!
+!--    Level 3, initialization of single soil parameters at single z,x,y 
+!--    position via soil_pars read from file.
+       IF ( soil_pars_f%from_file )  THEN
+!
+!--       Level of detail = 1, i.e. a homogeneous vertical distribution of soil 
+!--       parameters is assumed.
+!--       Horizontal surfaces
+          IF ( soil_pars_f%lod == 1 )  THEN
+!
+!--          Horizontal surfaces 
+             DO  m = 1, surf_lsm_h%ns
+                i = surf_lsm_h%i(m)
+                j = surf_lsm_h%j(m)
+
+                IF ( soil_pars_f%pars_xy(0,j,i) /= soil_pars_f%fill )              &
+                   surf_lsm_h%alpha_vg(:,m)    = soil_pars_f%pars_xy(0,j,i)
+                IF ( soil_pars_f%pars_xy(1,j,i) /= soil_pars_f%fill )              &
+                   surf_lsm_h%l_vg(:,m)        = soil_pars_f%pars_xy(1,j,i)
+                IF ( soil_pars_f%pars_xy(2,j,i) /= soil_pars_f%fill )              &
+                   surf_lsm_h%n_vg(:,m)        = soil_pars_f%pars_xy(2,j,i)
+                IF ( soil_pars_f%pars_xy(3,j,i) /= soil_pars_f%fill )              &
+                   surf_lsm_h%gamma_w_sat(:,m) = soil_pars_f%pars_xy(3,j,i)
+                IF ( soil_pars_f%pars_xy(4,j,i) /= soil_pars_f%fill )              &
+                   surf_lsm_h%m_sat(:,m)       = soil_pars_f%pars_xy(4,j,i)
+                IF ( soil_pars_f%pars_xy(5,j,i) /= soil_pars_f%fill )              &
+                   surf_lsm_h%m_fc(:,m)        = soil_pars_f%pars_xy(5,j,i)
+                IF ( soil_pars_f%pars_xy(6,j,i) /= soil_pars_f%fill )              &
+                   surf_lsm_h%m_wilt(:,m)      = soil_pars_f%pars_xy(6,j,i)
+                IF ( soil_pars_f%pars_xy(7,j,i) /= soil_pars_f%fill )              &
+                   surf_lsm_h%m_res(:,m)       = soil_pars_f%pars_xy(7,j,i)
+
+             ENDDO
+!
+!--          Vertical surfaces 
+             DO  l = 0, 3
+                DO  m = 1, surf_lsm_v(l)%ns
+                   i = surf_lsm_v(l)%i(m) + MERGE( 0, surf_lsm_v(l)%ioff,      &
+                                                   surf_lsm_v(l)%building_covered(m) ) 
+                   j = surf_lsm_v(l)%j(m) + MERGE( 0, surf_lsm_v(l)%joff,      &
+                                                   surf_lsm_v(l)%building_covered(m) ) 
+
+                   IF ( soil_pars_f%pars_xy(0,j,i) /= soil_pars_f%fill )           &
+                      surf_lsm_v(l)%alpha_vg(:,m)    = soil_pars_f%pars_xy(0,j,i)
+                   IF ( soil_pars_f%pars_xy(1,j,i) /= soil_pars_f%fill )           &
+                      surf_lsm_v(l)%l_vg(:,m)        = soil_pars_f%pars_xy(1,j,i)
+                   IF ( soil_pars_f%pars_xy(2,j,i) /= soil_pars_f%fill )           &
+                      surf_lsm_v(l)%n_vg(:,m)        = soil_pars_f%pars_xy(2,j,i)
+                   IF ( soil_pars_f%pars_xy(3,j,i) /= soil_pars_f%fill )           &
+                      surf_lsm_v(l)%gamma_w_sat(:,m) = soil_pars_f%pars_xy(3,j,i)
+                   IF ( soil_pars_f%pars_xy(4,j,i) /= soil_pars_f%fill )           &
+                      surf_lsm_v(l)%m_sat(:,m)       = soil_pars_f%pars_xy(4,j,i)
+                   IF ( soil_pars_f%pars_xy(5,j,i) /= soil_pars_f%fill )           &
+                      surf_lsm_v(l)%m_fc(:,m)        = soil_pars_f%pars_xy(5,j,i)
+                   IF ( soil_pars_f%pars_xy(6,j,i) /= soil_pars_f%fill )           &
+                      surf_lsm_v(l)%m_wilt(:,m)      = soil_pars_f%pars_xy(6,j,i)
+                   IF ( soil_pars_f%pars_xy(7,j,i) /= soil_pars_f%fill )           &
+                      surf_lsm_v(l)%m_res(:,m)       = soil_pars_f%pars_xy(7,j,i)
+
+                ENDDO
+             ENDDO
+!
+!--       Level of detail = 2, i.e. soil parameters can be set at each soil 
+!--       layer individually. 
+          ELSE
+!
+!--          Horizontal surfaces
+             DO  m = 1, surf_lsm_h%ns
+                i = surf_lsm_h%i(m)
+                j = surf_lsm_h%j(m)
+
+                DO  k = nzb_soil, nzt_soil
+                   IF ( soil_pars_f%pars_xyz(0,k,j,i) /= soil_pars_f%fill )        &
+                      surf_lsm_h%alpha_vg(k,m)    = soil_pars_f%pars_xyz(0,k,j,i)
+                   IF ( soil_pars_f%pars_xyz(1,k,j,i) /= soil_pars_f%fill )        &
+                      surf_lsm_h%l_vg(k,m)        = soil_pars_f%pars_xyz(1,k,j,i)
+                   IF ( soil_pars_f%pars_xyz(2,k,j,i) /= soil_pars_f%fill )        &
+                      surf_lsm_h%n_vg(k,m)        = soil_pars_f%pars_xyz(2,k,j,i)
+                   IF ( soil_pars_f%pars_xyz(3,k,j,i) /= soil_pars_f%fill )        &
+                      surf_lsm_h%gamma_w_sat(k,m) = soil_pars_f%pars_xyz(3,k,j,i)
+                   IF ( soil_pars_f%pars_xyz(4,k,j,i) /= soil_pars_f%fill )        &
+                      surf_lsm_h%m_sat(k,m)       = soil_pars_f%pars_xyz(4,k,j,i)
+                   IF ( soil_pars_f%pars_xyz(5,k,j,i) /= soil_pars_f%fill )        &
+                      surf_lsm_h%m_fc(k,m)        = soil_pars_f%pars_xyz(5,k,j,i)
+                   IF ( soil_pars_f%pars_xyz(6,k,j,i) /= soil_pars_f%fill )        &
+                      surf_lsm_h%m_wilt(k,m)      = soil_pars_f%pars_xyz(6,k,j,i)
+                   IF ( soil_pars_f%pars_xyz(7,k,j,i) /= soil_pars_f%fill )        &
+                      surf_lsm_h%m_res(k,m)       = soil_pars_f%pars_xyz(7,k,j,i)
+                ENDDO
+
+             ENDDO
+!
+!--          Vertical surfaces 
+             DO  l = 0, 3
+                DO  m = 1, surf_lsm_v(l)%ns
+                   i = surf_lsm_v(l)%i(m) + MERGE( 0, surf_lsm_v(l)%ioff,      &
+                                                   surf_lsm_v(l)%building_covered(m) ) 
+                   j = surf_lsm_v(l)%j(m) + MERGE( 0, surf_lsm_v(l)%joff,      &
+                                                   surf_lsm_v(l)%building_covered(m) ) 
+
+                   DO  k = nzb_soil, nzt_soil
+                      IF ( soil_pars_f%pars_xyz(0,k,j,i) /= soil_pars_f%fill )        &
+                         surf_lsm_v(l)%alpha_vg(k,m)    = soil_pars_f%pars_xyz(0,k,j,i)
+                      IF ( soil_pars_f%pars_xyz(1,k,j,i) /= soil_pars_f%fill )        &
+                         surf_lsm_v(l)%l_vg(k,m)        = soil_pars_f%pars_xyz(1,k,j,i)
+                      IF ( soil_pars_f%pars_xyz(2,k,j,i) /= soil_pars_f%fill )        &
+                         surf_lsm_v(l)%n_vg(k,m)        = soil_pars_f%pars_xyz(2,k,j,i)
+                      IF ( soil_pars_f%pars_xyz(3,k,j,i) /= soil_pars_f%fill )        &
+                         surf_lsm_v(l)%gamma_w_sat(k,m) = soil_pars_f%pars_xyz(3,k,j,i)
+                      IF ( soil_pars_f%pars_xyz(4,k,j,i) /= soil_pars_f%fill )        &
+                         surf_lsm_v(l)%m_sat(k,m)       = soil_pars_f%pars_xyz(4,k,j,i)
+                      IF ( soil_pars_f%pars_xyz(5,k,j,i) /= soil_pars_f%fill )        &
+                         surf_lsm_v(l)%m_fc(k,m)        = soil_pars_f%pars_xyz(5,k,j,i)
+                      IF ( soil_pars_f%pars_xyz(6,k,j,i) /= soil_pars_f%fill )        &
+                         surf_lsm_v(l)%m_wilt(k,m)      = soil_pars_f%pars_xyz(6,k,j,i)
+                      IF ( soil_pars_f%pars_xyz(7,k,j,i) /= soil_pars_f%fill )        &
+                         surf_lsm_v(l)%m_res(k,m)       = soil_pars_f%pars_xyz(7,k,j,i)
+                   ENDDO
+
+                ENDDO
+             ENDDO
+
+          ENDIF
+       ENDIF
+
+!
+!--    Level 1, initialization of vegetation parameters. A horizontally 
+!--    homogeneous distribution is assumed here. 
+       IF ( vegetation_type /= 0 )  THEN
+
+          IF ( min_canopy_resistance == 9999999.9_wp )  THEN
+             min_canopy_resistance = vegetation_pars(ind_v_rc_min,vegetation_type)
+          ENDIF
+
+          IF ( leaf_area_index == 9999999.9_wp )  THEN
+             leaf_area_index = vegetation_pars(ind_v_rc_lai,vegetation_type)         
+          ENDIF
+
+          IF ( vegetation_coverage == 9999999.9_wp )  THEN
+             vegetation_coverage = vegetation_pars(ind_v_c_veg,vegetation_type)     
+          ENDIF
+
+          IF ( canopy_resistance_coefficient == 9999999.9_wp )  THEN
+              canopy_resistance_coefficient= vegetation_pars(ind_v_gd,vegetation_type)     
+          ENDIF
+
+          IF ( z0_vegetation == 9999999.9_wp )  THEN
+             z0_vegetation  = vegetation_pars(ind_v_z0,vegetation_type) 
+          ENDIF
+
+          IF ( z0h_vegetation == 9999999.9_wp )  THEN
+             z0h_vegetation = vegetation_pars(ind_v_z0qh,vegetation_type)
+          ENDIF   
+          
+          IF ( lambda_surface_stable == 9999999.9_wp )  THEN
+             lambda_surface_stable = vegetation_pars(ind_v_lambda_s,vegetation_type) 
+          ENDIF
+
+          IF ( lambda_surface_unstable == 9999999.9_wp )  THEN
+             lambda_surface_unstable = vegetation_pars(ind_v_lambda_u,vegetation_type)           
+          ENDIF
+
+          IF ( f_shortwave_incoming == 9999999.9_wp )  THEN
+             f_shortwave_incoming = vegetation_pars(ind_v_f_sw_in,vegetation_type)        
+          ENDIF
+
+          IF ( c_surface == 9999999.9_wp )  THEN
+             c_surface = vegetation_pars(ind_v_c_surf,vegetation_type)        
+          ENDIF
+
+          IF ( albedo_type == 9999999  .AND.  albedo == 9999999.9_wp )  THEN
+             albedo_type = INT(vegetation_pars(ind_v_at,vegetation_type))       
+          ENDIF
+   
+          IF ( emissivity == 9999999.9_wp )  THEN
+             emissivity = vegetation_pars(ind_v_emis,vegetation_type)     
+          ENDIF
+
+       ENDIF
+!
+!--    Map values onto horizontal elemements
+       DO  m = 1, surf_lsm_h%ns
+          IF ( surf_lsm_h%vegetation_surface(m) )  THEN
+             surf_lsm_h%r_canopy_min(m)     = min_canopy_resistance
+             surf_lsm_h%lai(m)              = leaf_area_index
+             surf_lsm_h%c_veg(m)            = vegetation_coverage
+             surf_lsm_h%g_d(m)              = canopy_resistance_coefficient
+             surf_lsm_h%z0(m)               = z0_vegetation
+             surf_lsm_h%z0h(m)              = z0h_vegetation
+             surf_lsm_h%z0q(m)              = z0h_vegetation
+             surf_lsm_h%lambda_surface_s(m) = lambda_surface_stable
+             surf_lsm_h%lambda_surface_u(m) = lambda_surface_unstable
+             surf_lsm_h%f_sw_in(m)          = f_shortwave_incoming
+             surf_lsm_h%c_surface(m)        = c_surface
+             surf_lsm_h%albedo_type(ind_veg,m) = albedo_type
+             surf_lsm_h%emissivity(ind_veg,m)  = emissivity
+          ELSE
+             surf_lsm_h%lai(m)   = 0.0_wp
+             surf_lsm_h%c_veg(m) = 0.0_wp
+             surf_lsm_h%g_d(m)   = 0.0_wp
+          ENDIF
+  
+       ENDDO
+!
+!--    Map values onto vertical elements, even though this does not make
+!--    much sense.
+       DO  l = 0, 3
+          DO  m = 1, surf_lsm_v(l)%ns
+             IF ( surf_lsm_v(l)%vegetation_surface(m) )  THEN
+                surf_lsm_v(l)%r_canopy_min(m)     = min_canopy_resistance
+                surf_lsm_v(l)%lai(m)              = leaf_area_index
+                surf_lsm_v(l)%c_veg(m)            = vegetation_coverage
+                surf_lsm_v(l)%g_d(m)              = canopy_resistance_coefficient
+                surf_lsm_v(l)%z0(m)               = z0_vegetation
+                surf_lsm_v(l)%z0h(m)              = z0h_vegetation
+                surf_lsm_v(l)%z0q(m)              = z0h_vegetation
+                surf_lsm_v(l)%lambda_surface_s(m) = lambda_surface_stable
+                surf_lsm_v(l)%lambda_surface_u(m) = lambda_surface_unstable
+                surf_lsm_v(l)%f_sw_in(m)          = f_shortwave_incoming
+                surf_lsm_v(l)%c_surface(m)        = c_surface
+                surf_lsm_v(l)%albedo_type(ind_veg,m) = albedo_type
+                surf_lsm_v(l)%emissivity(ind_veg,m)  = emissivity
+             ELSE
+                surf_lsm_v(l)%lai(m)   = 0.0_wp
+                surf_lsm_v(l)%c_veg(m) = 0.0_wp
+                surf_lsm_v(l)%g_d(m)   = 0.0_wp
+             ENDIF
+          ENDDO
+       ENDDO
+
+!
+!--    Level 2, initialization of vegation parameters via vegetation_type read
+!--    from file. Vegetation parameters are initialized for each (y,x)-grid point 
+!--    individually using default paramter settings according to the given
+!--    vegetation type.
+       IF ( vegetation_type_f%from_file )  THEN
+!
+!--       Horizontal surfaces
+          DO  m = 1, surf_lsm_h%ns
+             i = surf_lsm_h%i(m)
+             j = surf_lsm_h%j(m)
+             
+             st = vegetation_type_f%var(j,i)
+             IF ( st /= vegetation_type_f%fill  .AND.  st /= 0 )  THEN
+                surf_lsm_h%r_canopy_min(m)     = vegetation_pars(ind_v_rc_min,st)
+                surf_lsm_h%lai(m)              = vegetation_pars(ind_v_rc_lai,st)
+                surf_lsm_h%c_veg(m)            = vegetation_pars(ind_v_c_veg,st)
+                surf_lsm_h%g_d(m)              = vegetation_pars(ind_v_gd,st)
+                surf_lsm_h%z0(m)               = vegetation_pars(ind_v_z0,st)
+                surf_lsm_h%z0h(m)              = vegetation_pars(ind_v_z0qh,st)
+                surf_lsm_h%z0q(m)              = vegetation_pars(ind_v_z0qh,st)
+                surf_lsm_h%lambda_surface_s(m) = vegetation_pars(ind_v_lambda_s,st)
+                surf_lsm_h%lambda_surface_u(m) = vegetation_pars(ind_v_lambda_u,st)
+                surf_lsm_h%f_sw_in(m)          = vegetation_pars(ind_v_f_sw_in,st)
+                surf_lsm_h%c_surface(m)        = vegetation_pars(ind_v_c_surf,st)
+                surf_lsm_h%albedo_type(ind_veg,m) = INT( vegetation_pars(ind_v_at,st) )
+                surf_lsm_h%emissivity(ind_veg,m)  = vegetation_pars(ind_v_emis,st)
+             ENDIF
+          ENDDO
+!
+!--       Vertical surfaces
+          DO  l = 0, 3
+             DO  m = 1, surf_lsm_v(l)%ns
+                i = surf_lsm_v(l)%i(m) + MERGE( 0, surf_lsm_v(l)%ioff,      &
+                                                surf_lsm_v(l)%building_covered(m) ) 
+                j = surf_lsm_v(l)%j(m) + MERGE( 0, surf_lsm_v(l)%joff,      &
+                                                   surf_lsm_v(l)%building_covered(m) ) 
+             
+                st = vegetation_type_f%var(j,i)
+                IF ( st /= vegetation_type_f%fill  .AND.  st /= 0 )  THEN
+                   surf_lsm_v(l)%r_canopy_min(m)     = vegetation_pars(ind_v_rc_min,st)
+                   surf_lsm_v(l)%lai(m)              = vegetation_pars(ind_v_rc_lai,st)
+                   surf_lsm_v(l)%c_veg(m)            = vegetation_pars(ind_v_c_veg,st)
+                   surf_lsm_v(l)%g_d(m)              = vegetation_pars(ind_v_gd,st)
+                   surf_lsm_v(l)%z0(m)               = vegetation_pars(ind_v_z0,st)
+                   surf_lsm_v(l)%z0h(m)              = vegetation_pars(ind_v_z0qh,st)
+                   surf_lsm_v(l)%z0q(m)              = vegetation_pars(ind_v_z0qh,st)
+                   surf_lsm_v(l)%lambda_surface_s(m) = vegetation_pars(ind_v_lambda_s,st)
+                   surf_lsm_v(l)%lambda_surface_u(m) = vegetation_pars(ind_v_lambda_u,st)
+                   surf_lsm_v(l)%f_sw_in(m)          = vegetation_pars(ind_v_f_sw_in,st)
+                   surf_lsm_v(l)%c_surface(m)        = vegetation_pars(ind_v_c_surf,st)
+                   surf_lsm_v(l)%albedo_type(ind_veg,m) = INT( vegetation_pars(ind_v_at,st) )
+                   surf_lsm_v(l)%emissivity(ind_veg,m)  = vegetation_pars(ind_v_emis,st)
+                ENDIF
+             ENDDO
+          ENDDO
+       ENDIF
+!
+!--    Level 3, initialization of vegation parameters at single (x,y) 
+!--    position via vegetation_pars read from file.
+       IF ( vegetation_pars_f%from_file )  THEN
+!
+!--       Horizontal surfaces 
+          DO  m = 1, surf_lsm_h%ns
+
+             i = surf_lsm_h%i(m)
+             j = surf_lsm_h%j(m)
+!
+!--          If surface element is not a vegetation surface and any value in 
+!--          vegetation_pars is given, neglect this information and give an
+!--          informative message that this value will not be used.   
+             IF ( .NOT. surf_lsm_h%vegetation_surface(m)  .AND.                &
+                   ANY( vegetation_pars_f%pars_xy(:,j,i) /=                    &
+                   vegetation_pars_f%fill ) )  THEN
+                WRITE( message_string, * )                                     &
+                                 'surface element at grid point (j,i) = (',    &
+                                 j, i, ') is not a vegation surface, ',        &
+                                 'so that information given in ',              &
+                                 'vegetation_pars at this point is neglected.' 
+                CALL message( 'land_surface_model_mod', 'PA0999', 0, 0, 0, 6, 0 )
+             ELSE
+
+                IF ( vegetation_pars_f%pars_xy(ind_v_rc_min,j,i) /=            &
+                     vegetation_pars_f%fill )                                  &
+                   surf_lsm_h%r_canopy_min(m)  =                               &
+                                   vegetation_pars_f%pars_xy(ind_v_rc_min,j,i)
+                IF ( vegetation_pars_f%pars_xy(ind_v_rc_lai,j,i) /=            &
+                     vegetation_pars_f%fill )                                  &
+                   surf_lsm_h%lai(m)           =                               &
+                                   vegetation_pars_f%pars_xy(ind_v_rc_lai,j,i)
+                IF ( vegetation_pars_f%pars_xy(ind_v_c_veg,j,i) /=             &
+                     vegetation_pars_f%fill )                                  &
+                   surf_lsm_h%c_veg(m)         =                               &
+                                   vegetation_pars_f%pars_xy(ind_v_c_veg,j,i)
+                IF ( vegetation_pars_f%pars_xy(ind_v_gd,j,i) /=                &
+                     vegetation_pars_f%fill )                                  &
+                   surf_lsm_h%g_d(m)           =                               &
+                                   vegetation_pars_f%pars_xy(ind_v_gd,j,i)
+                IF ( vegetation_pars_f%pars_xy(ind_v_z0,j,i) /=                &
+                     vegetation_pars_f%fill )                                  &
+                   surf_lsm_h%z0(m)            =                               &
+                                   vegetation_pars_f%pars_xy(ind_v_z0,j,i)
+                IF ( vegetation_pars_f%pars_xy(ind_v_z0qh,j,i) /=              &
+                     vegetation_pars_f%fill )  THEN
+                   surf_lsm_h%z0h(m)           =                               &
+                                   vegetation_pars_f%pars_xy(ind_v_z0qh,j,i)
+                   surf_lsm_h%z0q(m)           =                               &
+                                   vegetation_pars_f%pars_xy(ind_v_z0qh,j,i)
+                ENDIF
+                IF ( vegetation_pars_f%pars_xy(ind_v_lambda_s,j,i) /=          &
+                     vegetation_pars_f%fill )                                  &
+                   surf_lsm_h%lambda_surface_s(m) =                            &
+                                   vegetation_pars_f%pars_xy(ind_v_lambda_s,j,i)
+                IF ( vegetation_pars_f%pars_xy(ind_v_lambda_u,j,i) /=          &
+                     vegetation_pars_f%fill )                                  &
+                   surf_lsm_h%lambda_surface_u(m) =                            &
+                                   vegetation_pars_f%pars_xy(ind_v_lambda_u,j,i)
+                IF ( vegetation_pars_f%pars_xy(ind_v_f_sw_in,j,i) /=           &
+                     vegetation_pars_f%fill )                                  &
+                   surf_lsm_h%f_sw_in(m)          =                            &
+                                   vegetation_pars_f%pars_xy(ind_v_f_sw_in,j,i)
+                IF ( vegetation_pars_f%pars_xy(ind_v_c_surf,j,i) /=            &
+                     vegetation_pars_f%fill )                                  &
+                   surf_lsm_h%c_surface(m)        =                            &
+                                   vegetation_pars_f%pars_xy(ind_v_c_surf,j,i)
+                IF ( vegetation_pars_f%pars_xy(ind_v_at,j,i) /=                &
+                     vegetation_pars_f%fill )                                  &
+                   surf_lsm_h%albedo_type(ind_veg,m) =                         &
+                                   INT( vegetation_pars_f%pars_xy(ind_v_at,j,i) )
+                IF ( vegetation_pars_f%pars_xy(ind_v_emis,j,i) /=              &
+                     vegetation_pars_f%fill )                                  &
+                   surf_lsm_h%emissivity(ind_veg,m)  =                         &
+                                   vegetation_pars_f%pars_xy(ind_v_emis,j,i)
+             ENDIF
+          ENDDO
+!
+!--       Vertical surfaces 
+          DO  l = 0, 3
+             DO  m = 1, surf_lsm_v(l)%ns
+                i = surf_lsm_v(l)%i(m) + MERGE( 0, surf_lsm_v(l)%ioff,         &
+                                                surf_lsm_v(l)%building_covered(m) ) 
+                j = surf_lsm_v(l)%j(m) + MERGE( 0, surf_lsm_v(l)%joff,         &
+                                                surf_lsm_v(l)%building_covered(m) ) 
+!
+!--             If surface element is not a vegetation surface and any value in 
+!--             vegetation_pars is given, neglect this information and give an
+!--             informative message that this value will not be used.   
+                IF ( .NOT. surf_lsm_v(l)%vegetation_surface(m)  .AND.          &
+                      ANY( vegetation_pars_f%pars_xy(:,j,i) /=                 &
+                      vegetation_pars_f%fill ) )  THEN
+                   WRITE( message_string, * )                                  &
+                                 'surface element at grid point (j,i) = (',    &
+                                 j, i, ') is not a vegation surface, ',        &
+                                 'so that information given in ',              &
+                                 'vegetation_pars at this point is neglected.' 
+                   CALL message( 'land_surface_model_mod', 'PA0999', 0, 0, 0, 6, 0 )
+                ELSE
+
+                   IF ( vegetation_pars_f%pars_xy(ind_v_rc_min,j,i) /=         &
+                        vegetation_pars_f%fill )                               &
+                      surf_lsm_v(l)%r_canopy_min(m)  =                         &
+                                   vegetation_pars_f%pars_xy(ind_v_rc_min,j,i)
+                   IF ( vegetation_pars_f%pars_xy(ind_v_rc_lai,j,i) /=         &
+                        vegetation_pars_f%fill )                               &
+                      surf_lsm_v(l)%lai(m)           =                         &
+                                   vegetation_pars_f%pars_xy(ind_v_rc_lai,j,i)
+                   IF ( vegetation_pars_f%pars_xy(ind_v_c_veg,j,i) /=          &
+                        vegetation_pars_f%fill )                               &
+                      surf_lsm_v(l)%c_veg(m)         =                         &
+                                   vegetation_pars_f%pars_xy(ind_v_c_veg,j,i)
+                   IF ( vegetation_pars_f%pars_xy(ind_v_gd,j,i) /=             &
+                        vegetation_pars_f%fill )                               &
+                     surf_lsm_v(l)%g_d(m)            =                         &
+                                   vegetation_pars_f%pars_xy(ind_v_gd,j,i)
+                   IF ( vegetation_pars_f%pars_xy(ind_v_z0,j,i) /=             &
+                        vegetation_pars_f%fill )                               &
+                      surf_lsm_v(l)%z0(m)            =                         &
+                                   vegetation_pars_f%pars_xy(ind_v_z0,j,i)
+                   IF ( vegetation_pars_f%pars_xy(ind_v_z0qh,j,i) /=           &
+                        vegetation_pars_f%fill )  THEN
+                      surf_lsm_v(l)%z0h(m)           =                         &
+                                   vegetation_pars_f%pars_xy(ind_v_z0qh,j,i)
+                      surf_lsm_v(l)%z0q(m)           =                         &
+                                   vegetation_pars_f%pars_xy(ind_v_z0qh,j,i)
+                   ENDIF
+                   IF ( vegetation_pars_f%pars_xy(ind_v_lambda_s,j,i) /=       &
+                        vegetation_pars_f%fill )                               &
+                      surf_lsm_v(l)%lambda_surface_s(m)  =                     &
+                                   vegetation_pars_f%pars_xy(ind_v_lambda_s,j,i)
+                   IF ( vegetation_pars_f%pars_xy(ind_v_lambda_u,j,i) /=       &
+                        vegetation_pars_f%fill )                               &
+                      surf_lsm_v(l)%lambda_surface_u(m)  =                     &
+                                   vegetation_pars_f%pars_xy(ind_v_lambda_u,j,i)
+                   IF ( vegetation_pars_f%pars_xy(ind_v_f_sw_in,j,i) /=        &
+                        vegetation_pars_f%fill )                               &
+                      surf_lsm_v(l)%f_sw_in(m)           =                     &
+                                   vegetation_pars_f%pars_xy(ind_v_f_sw_in,j,i)
+                   IF ( vegetation_pars_f%pars_xy(ind_v_c_surf,j,i) /=         &
+                        vegetation_pars_f%fill )                               &
+                      surf_lsm_v(l)%c_surface(m)         =                     &
+                                   vegetation_pars_f%pars_xy(ind_v_c_surf,j,i)
+                   IF ( vegetation_pars_f%pars_xy(ind_v_at,j,i) /=             &
+                        vegetation_pars_f%fill )                               &
+                      surf_lsm_v(l)%albedo_type(ind_veg,m) =                   &
+                                   INT( vegetation_pars_f%pars_xy(ind_v_at,j,i) )
+                   IF ( vegetation_pars_f%pars_xy(ind_v_emis,j,i) /=           &
+                        vegetation_pars_f%fill )                               &
+                      surf_lsm_v(l)%emissivity(ind_veg,m)  =                   &
+                                   vegetation_pars_f%pars_xy(ind_v_emis,j,i)
+                ENDIF
+
+             ENDDO
+          ENDDO
+       ENDIF 
+
+!
+!--    Level 1, initialization of water parameters. A horizontally 
+!--    homogeneous distribution is assumed here. 
+       IF ( water_type /= 0 )  THEN
+
+          IF ( water_temperature == 9999999.9_wp )  THEN
+             water_temperature = water_pars(ind_w_temp,water_type)       
+          ENDIF
+
+          IF ( z0_water == 9999999.9_wp )  THEN
+             z0_water = water_pars(ind_w_z0,water_type)       
+          ENDIF       
+
+          IF ( z0h_water == 9999999.9_wp )  THEN
+             z0h_water = water_pars(ind_w_z0h,water_type)       
+          ENDIF  
+
+          IF ( albedo_type == 9999999  .AND.  albedo == 9999999.9_wp )  THEN
+             albedo_type = INT(water_pars(ind_w_at,water_type))        
+          ENDIF
+   
+          IF ( emissivity == 9999999.9_wp )  THEN
+             emissivity = water_pars(ind_w_emis,water_type)        
+          ENDIF
+
+       ENDIF 
+!
+!--    Map values onto horizontal elemements
+       DO  m = 1, surf_lsm_h%ns
+          IF ( surf_lsm_h%water_surface(m) )  THEN
+             IF ( TRIM( initializing_actions ) /= 'read_restart_data' )        &
+                t_soil_h%var_2d(:,m)           = water_temperature
+             surf_lsm_h%z0(m)               = z0_water
+             surf_lsm_h%z0h(m)              = z0h_water
+             surf_lsm_h%z0q(m)              = z0h_water
+             surf_lsm_h%lambda_surface_s(m) = 1.0E10_wp
+             surf_lsm_h%lambda_surface_u(m) = 1.0E10_wp               
+             surf_lsm_h%c_surface(m)        = 0.0_wp
+             surf_lsm_h%albedo_type(ind_wat,m) = albedo_type
+             surf_lsm_h%emissivity(ind_wat,m)  = emissivity
+          ENDIF
+       ENDDO
+!
+!--    Map values onto vertical elements, even though this does not make
+!--    much sense.
+       DO  l = 0, 3
+          DO  m = 1, surf_lsm_v(l)%ns
+             IF ( surf_lsm_v(l)%water_surface(m) )  THEN
+                IF ( TRIM( initializing_actions ) /= 'read_restart_data' )     &
+                   t_soil_v(l)%var_2d(:,m)           = water_temperature
+                surf_lsm_v(l)%z0(m)               = z0_water
+                surf_lsm_v(l)%z0h(m)              = z0h_water
+                surf_lsm_v(l)%z0q(m)              = z0h_water
+                surf_lsm_v(l)%lambda_surface_s(m) = 1.0E10_wp
+                surf_lsm_v(l)%lambda_surface_u(m) = 1.0E10_wp               
+                surf_lsm_v(l)%c_surface(m)        = 0.0_wp
+                surf_lsm_v(l)%albedo_type(ind_wat,m) = albedo_type
+                surf_lsm_v(l)%emissivity(ind_wat,m)  = emissivity
+             ENDIF 
+          ENDDO
+       ENDDO
+!
+!
+!--    Level 2, initialization of water parameters via water_type read
+!--    from file. Water surfaces are initialized for each (y,x)-grid point 
+!--    individually using default paramter settings according to the given
+!--    water type.
+!--    Note, parameter 3/4 of water_pars are albedo and emissivity,
+!--    whereas paramter 3/4 of water_pars_f are heat conductivities!
+       IF ( water_type_f%from_file )  THEN
+!
+!--       Horizontal surfaces
+          DO  m = 1, surf_lsm_h%ns
+             i = surf_lsm_h%i(m)
+             j = surf_lsm_h%j(m)
+             
+             st = water_type_f%var(j,i)
+             IF ( st /= water_type_f%fill  .AND.  st /= 0 )  THEN
+                IF ( TRIM( initializing_actions ) /= 'read_restart_data' )     &
+                   t_soil_h%var_2d(:,m) = water_pars(ind_w_temp,st)
+                surf_lsm_h%z0(m)     = water_pars(ind_w_z0,st)
+                surf_lsm_h%z0h(m)    = water_pars(ind_w_z0h,st)
+                surf_lsm_h%z0q(m)    = water_pars(ind_w_z0h,st)
+                surf_lsm_h%lambda_surface_s(m) = water_pars(ind_w_lambda_s,st)
+                surf_lsm_h%lambda_surface_u(m) = water_pars(ind_w_lambda_u,st)              
+                surf_lsm_h%c_surface(m)        = 0.0_wp
+                surf_lsm_h%albedo_type(ind_wat,m) = INT( water_pars(ind_w_at,st) )
+                surf_lsm_h%emissivity(ind_wat,m)  = water_pars(ind_w_emis,st)
+             ENDIF
+          ENDDO
+!
+!--       Vertical surfaces
+          DO  l = 0, 3
+             DO  m = 1, surf_lsm_v(l)%ns
+                i = surf_lsm_v(l)%i(m) + MERGE( 0, surf_lsm_v(l)%ioff,         &
+                                                surf_lsm_v(l)%building_covered(m) ) 
+                j = surf_lsm_v(l)%j(m) + MERGE( 0, surf_lsm_v(l)%joff,         &
+                                                surf_lsm_v(l)%building_covered(m) ) 
+             
+                st = water_type_f%var(j,i)
+                IF ( st /= water_type_f%fill  .AND.  st /= 0 )  THEN
+                   IF ( TRIM( initializing_actions ) /= 'read_restart_data' )  &
+                      t_soil_v(l)%var_2d(:,m) = water_pars(ind_w_temp,st)
+                   surf_lsm_v(l)%z0(m)     = water_pars(ind_w_z0,st)
+                   surf_lsm_v(l)%z0h(m)    = water_pars(ind_w_z0h,st)
+                   surf_lsm_v(l)%z0q(m)    = water_pars(ind_w_z0h,st)
+                   surf_lsm_v(l)%lambda_surface_s(m) =                         &
+                                                   water_pars(ind_w_lambda_s,st)
+                   surf_lsm_v(l)%lambda_surface_u(m) =                         &
+                                                   water_pars(ind_w_lambda_u,st)           
+                   surf_lsm_v(l)%c_surface(m)     = 0.0_wp
+                   surf_lsm_v(l)%albedo_type(ind_wat,m) =                      &
+                                                  INT( water_pars(ind_w_at,st) )
+                   surf_lsm_v(l)%emissivity(ind_wat,m)  =                      &
+                                                  water_pars(ind_w_emis,st)
+                ENDIF
+             ENDDO
+          ENDDO
+       ENDIF      
+
+!
+!--    Level 3, initialization of water parameters at single (x,y) 
+!--    position via water_pars read from file.
+       IF ( water_pars_f%from_file )  THEN
+!
+!--       Horizontal surfaces 
+          DO  m = 1, surf_lsm_h%ns
+             i = surf_lsm_h%i(m)
+             j = surf_lsm_h%j(m)
+!
+!--          If surface element is not a water surface and any value in 
+!--          water_pars is given, neglect this information and give an
+!--          informative message that this value will not be used.   
+             IF ( .NOT. surf_lsm_h%water_surface(m)  .AND.                     &
+                   ANY( water_pars_f%pars_xy(:,j,i) /= water_pars_f%fill ) )  THEN
+                WRITE( message_string, * )                                     &
+                              'surface element at grid point (j,i) = (',       &
+                              j, i, ') is not a water surface, ',              &
+                              'so that information given in ',                 &
+                              'water_pars at this point is neglected.' 
+                CALL message( 'land_surface_model_mod', 'PA0999', 0, 0, 0, 6, 0 )
+             ELSE
+                IF ( water_pars_f%pars_xy(ind_w_temp,j,i) /=                   &
+                     water_pars_f%fill  .AND.                                  &
+                     TRIM( initializing_actions ) /= 'read_restart_data' )     &
+                      t_soil_h%var_2d(:,m) = water_pars_f%pars_xy(ind_w_temp,j,i)
+
+                IF ( water_pars_f%pars_xy(ind_w_z0,j,i) /= water_pars_f%fill ) &
+                   surf_lsm_h%z0(m)     = water_pars_f%pars_xy(ind_w_z0,j,i)
+
+                IF ( water_pars_f%pars_xy(ind_w_z0h,j,i) /= water_pars_f%fill )&
+                THEN
+                   surf_lsm_h%z0h(m)    = water_pars_f%pars_xy(ind_w_z0h,j,i)
+                   surf_lsm_h%z0q(m)    = water_pars_f%pars_xy(ind_w_z0h,j,i)
+                ENDIF
+
+                IF ( water_pars_f%pars_xy(ind_w_lambda_s,j,i) /=               &
+                     water_pars_f%fill )                                       &
+                   surf_lsm_h%lambda_surface_s(m) =                            &
+                                        water_pars_f%pars_xy(ind_w_lambda_s,j,i)
+
+                IF ( water_pars_f%pars_xy(ind_w_lambda_u,j,i) /=               &
+                      water_pars_f%fill )                                      &
+                   surf_lsm_h%lambda_surface_u(m) =                            &
+                                        water_pars_f%pars_xy(ind_w_lambda_u,j,i)     
+       
+                IF ( water_pars_f%pars_xy(ind_w_at,j,i) /=                     &
+                     water_pars_f%fill )                                       &
+                   surf_lsm_h%albedo_type(ind_wat,m) =                         &
+                                       INT( water_pars_f%pars_xy(ind_w_at,j,i) )
+
+                IF ( water_pars_f%pars_xy(ind_w_emis,j,i) /=                   &
+                     water_pars_f%fill )                                       &
+                   surf_lsm_h%emissivity(ind_wat,m) =                          &
+                   water_pars_f%pars_xy(ind_w_emis,j,i)  
+             ENDIF
+          ENDDO
+!
+!--       Vertical surfaces 
+          DO  l = 0, 3
+             DO  m = 1, surf_lsm_v(l)%ns
+                i = surf_lsm_v(l)%i(m) + MERGE( 0, surf_lsm_v(l)%ioff,         &
+                                                surf_lsm_v(l)%building_covered(m) ) 
+                j = surf_lsm_v(l)%j(m) + MERGE( 0, surf_lsm_v(l)%joff,         &
+                                                surf_lsm_v(l)%building_covered(m) ) 
+!
+!--             If surface element is not a water surface and any value in 
+!--             water_pars is given, neglect this information and give an
+!--             informative message that this value will not be used.   
+                IF ( .NOT. surf_lsm_v(l)%water_surface(m)  .AND.               &
+                      ANY( water_pars_f%pars_xy(:,j,i) /=                      &
+                      water_pars_f%fill ) )  THEN
+                   WRITE( message_string, * )                                  &
+                              'surface element at grid point (j,i) = (',       &
+                              j, i, ') is not a water surface, ',              &
+                              'so that information given in ',                 &
+                              'water_pars at this point is neglected.' 
+                   CALL message( 'land_surface_model_mod', 'PA0999',           &
+                                  0, 0, 0, 6, 0 )
+                ELSE
+
+                   IF ( water_pars_f%pars_xy(ind_w_temp,j,i) /=                &
+                     water_pars_f%fill  .AND.                                  &
+                     TRIM( initializing_actions ) /= 'read_restart_data' )     &
+                      t_soil_v(l)%var_2d(:,m) = water_pars_f%pars_xy(ind_w_temp,j,i)
+
+                   IF ( water_pars_f%pars_xy(ind_w_z0,j,i) /=                  &
+                        water_pars_f%fill )                                    &
+                      surf_lsm_v(l)%z0(m)   = water_pars_f%pars_xy(ind_w_z0,j,i)
+
+                   IF ( water_pars_f%pars_xy(ind_w_z0h,j,i) /=                 &
+                       water_pars_f%fill )  THEN
+                      surf_lsm_v(l)%z0h(m)  = water_pars_f%pars_xy(ind_w_z0h,j,i)
+                      surf_lsm_v(l)%z0q(m)  = water_pars_f%pars_xy(ind_w_z0h,j,i)
+                   ENDIF
+
+                   IF ( water_pars_f%pars_xy(ind_w_lambda_s,j,i) /=            &
+                        water_pars_f%fill )                                    &
+                      surf_lsm_v(l)%lambda_surface_s(m) =                      &
+                                      water_pars_f%pars_xy(ind_w_lambda_s,j,i)
+
+                   IF ( water_pars_f%pars_xy(ind_w_lambda_u,j,i) /=            &
+                        water_pars_f%fill )                                    &
+                      surf_lsm_v(l)%lambda_surface_u(m) =                      &
+                                      water_pars_f%pars_xy(ind_w_lambda_u,j,i)    
+ 
+                   IF ( water_pars_f%pars_xy(ind_w_at,j,i) /=                  &
+                        water_pars_f%fill )                                    &
+                      surf_lsm_v(l)%albedo_type(ind_wat,m)    =                &
+                                      INT( water_pars_f%pars_xy(ind_w_at,j,i) )
+
+                   IF ( water_pars_f%pars_xy(ind_w_emis,j,i) /=                &
+                        water_pars_f%fill )                                    &
+                      surf_lsm_v(l)%emissivity(ind_wat,m)     =                &
+                                      water_pars_f%pars_xy(ind_w_emis,j,i)  
+                ENDIF
+             ENDDO
+          ENDDO
+
+       ENDIF
+!
+!--    Initialize pavement-type surfaces, level 1
+       IF ( pavement_type /= 0 )  THEN  
+
+!
+!--       When a pavement_type is used, overwrite a possible setting of 
+!--       the pavement depth as it is already defined by the pavement type
+          pavement_depth_level = 0
+
+          IF ( z0_pavement == 9999999.9_wp )  THEN
+             z0_pavement  = pavement_pars(ind_p_z0,pavement_type) 
+          ENDIF
+
+          IF ( z0h_pavement == 9999999.9_wp )  THEN
+             z0h_pavement = pavement_pars(ind_p_z0h,pavement_type)
+          ENDIF
+
+          IF ( pavement_heat_conduct == 9999999.9_wp )  THEN
+             pavement_heat_conduct = pavement_subsurface_pars_1(0,pavement_type)
+          ENDIF
+
+          IF ( pavement_heat_capacity == 9999999.9_wp )  THEN
+             pavement_heat_capacity = pavement_subsurface_pars_2(0,pavement_type)
+          ENDIF   
+    
+          IF ( albedo_type == 9999999  .AND.  albedo == 9999999.9_wp )  THEN
+             albedo_type = INT(pavement_pars(ind_p_at,pavement_type))        
+          ENDIF
+   
+          IF ( emissivity == 9999999.9_wp )  THEN
+             emissivity = pavement_pars(ind_p_emis,pavement_type)        
+          ENDIF
+
+!
+!--       If the depth level of the pavement is not set, determine it from
+!--       lookup table.
+          IF ( pavement_depth_level == 0 )  THEN
+             DO  k = nzb_soil, nzt_soil  
+                IF ( pavement_subsurface_pars_1(k,pavement_type) == 9999999.9_wp &
+                .OR. pavement_subsurface_pars_2(k,pavement_type) == 9999999.9_wp)&
+                THEN
+                   nzt_pavement = k-1
+                   EXIT
+                ENDIF
+             ENDDO
+          ELSE
+             nzt_pavement = pavement_depth_level
+          ENDIF
+
+       ENDIF
+!
+!--    Level 1 initialization of pavement type surfaces. Horizontally 
+!--    homogeneous characteristics are assumed
+       surf_lsm_h%nzt_pavement = pavement_depth_level
+       DO  m = 1, surf_lsm_h%ns
+          IF ( surf_lsm_h%pavement_surface(m) )  THEN
+             surf_lsm_h%nzt_pavement(m)        = nzt_pavement
+             surf_lsm_h%z0(m)                  = z0_pavement
+             surf_lsm_h%z0h(m)                 = z0h_pavement
+             surf_lsm_h%z0q(m)                 = z0h_pavement
+             surf_lsm_h%lambda_surface_s(m)    = pavement_heat_conduct         &
+                                                  * ddz_soil(nzb_soil)         &
+                                                  * 2.0_wp    
+             surf_lsm_h%lambda_surface_u(m)    = pavement_heat_conduct         &
+                                                  * ddz_soil(nzb_soil)         &
+                                                  * 2.0_wp           
+             surf_lsm_h%c_surface(m)           = pavement_heat_capacity        &
+                                                        * dz_soil(nzb_soil)    &
+                                                        * 0.25_wp                                   
+
+             surf_lsm_h%albedo_type(ind_pav,m) = albedo_type
+             surf_lsm_h%emissivity(ind_pav,m)  = emissivity      
+      
+             IF ( pavement_type /= 0 )  THEN
+                DO  k = nzb_soil, surf_lsm_h%nzt_pavement(m)
+                   surf_lsm_h%lambda_h_def(k,m)    =                           &
+                                     pavement_subsurface_pars_1(k,pavement_type)                       
+                   surf_lsm_h%rho_c_total_def(k,m) =                           &
+                                     pavement_subsurface_pars_2(k,pavement_type) 
+                ENDDO
+             ELSE
+                surf_lsm_v(l)%lambda_h_def(:,m)     = pavement_heat_conduct
+                surf_lsm_v(l)%rho_c_total_def(:,m)  = pavement_heat_capacity
+             ENDIF        
+          ENDIF
+       ENDDO                               
+
+       DO  l = 0, 3
+          surf_lsm_v(l)%nzt_pavement = pavement_depth_level
+          DO  m = 1, surf_lsm_v(l)%ns
+             IF ( surf_lsm_v(l)%pavement_surface(m) )  THEN
+                surf_lsm_v(l)%nzt_pavement(m)        = nzt_pavement
+                surf_lsm_v(l)%z0(m)                  = z0_pavement
+                surf_lsm_v(l)%z0h(m)                 = z0h_pavement
+                surf_lsm_v(l)%z0q(m)                 = z0h_pavement
+                surf_lsm_v(l)%lambda_surface_s(m)    = pavement_heat_conduct   &
+                                                  * ddz_soil(nzb_soil)         &
+                                                  * 2.0_wp    
+                surf_lsm_v(l)%lambda_surface_u(m)    = pavement_heat_conduct   &
+                                                  * ddz_soil(nzb_soil)         &
+                                                  * 2.0_wp           
+                surf_lsm_v(l)%c_surface(m)           = pavement_heat_capacity  &
+                                                        * dz_soil(nzb_soil)    &
+                                                        * 0.25_wp                                      
+
+                surf_lsm_v(l)%albedo_type(ind_pav,m) = albedo_type
+                surf_lsm_v(l)%emissivity(ind_pav,m)  = emissivity
+
+                IF ( pavement_type /= 0 )  THEN
+                   DO  k = nzb_soil, surf_lsm_v(l)%nzt_pavement(m)
+                      surf_lsm_v(l)%lambda_h_def(k,m)    =                     &
+                                     pavement_subsurface_pars_1(k,pavement_type)                       
+                      surf_lsm_v(l)%rho_c_total_def(k,m) =                     &
+                                     pavement_subsurface_pars_2(k,pavement_type) 
+                   ENDDO
+                ELSE
+                   surf_lsm_v(l)%lambda_h_def(:,m)     = pavement_heat_conduct
+                   surf_lsm_v(l)%rho_c_total_def(:,m)  = pavement_heat_capacity
+                ENDIF     
+             ENDIF
+          ENDDO
+       ENDDO
+!
+!--    Level 2 initialization of pavement type surfaces via pavement_type read
+!--    from file. Pavement surfaces are initialized for each (y,x)-grid point 
+!--    individually.
+       IF ( pavement_type_f%from_file )  THEN
+!
+!--       Horizontal surfaces
+          DO  m = 1, surf_lsm_h%ns
+             i = surf_lsm_h%i(m)
+             j = surf_lsm_h%j(m)
+             
+             st = pavement_type_f%var(j,i)
+             IF ( st /= pavement_type_f%fill  .AND.  st /= 0 )  THEN
+!
+!--             Determine deepmost index of pavement layer
+                DO  k = nzb_soil, nzt_soil  
+                   IF ( pavement_subsurface_pars_1(k,st) == 9999999.9_wp       &
+                   .OR. pavement_subsurface_pars_2(k,st) == 9999999.9_wp)      &
+                   THEN
+                      surf_lsm_h%nzt_pavement(m) = k-1
+                      EXIT
+                   ENDIF
+                ENDDO
+
+                surf_lsm_h%z0(m)                = pavement_pars(ind_p_z0,st)
+                surf_lsm_h%z0h(m)               = pavement_pars(ind_p_z0h,st)
+                surf_lsm_h%z0q(m)               = pavement_pars(ind_p_z0h,st)
+
+                surf_lsm_h%lambda_surface_s(m)  =                              &
+                                              pavement_subsurface_pars_1(0,st) &
+                                                  * ddz_soil(nzb_soil)         &
+                                                  * 2.0_wp    
+                surf_lsm_h%lambda_surface_u(m)  =                              &
+                                              pavement_subsurface_pars_1(0,st) &
+                                                  * ddz_soil(nzb_soil)         &
+                                                  * 2.0_wp        
+                surf_lsm_h%c_surface(m)         =                              &
+                                               pavement_subsurface_pars_2(0,st)&
+                                                        * dz_soil(nzb_soil)    &
+                                                        * 0.25_wp                               
+                surf_lsm_h%albedo_type(ind_pav,m) = INT( pavement_pars(ind_p_at,st) )
+                surf_lsm_h%emissivity(ind_pav,m)  = pavement_pars(ind_p_emis,st)  
+
+                DO  k = nzb_soil, surf_lsm_h%nzt_pavement(m)
+                   surf_lsm_h%lambda_h_def(k,m)    =                           &
+                                     pavement_subsurface_pars_1(k,pavement_type)                       
+                   surf_lsm_h%rho_c_total_def(k,m) =                           &
+                                     pavement_subsurface_pars_2(k,pavement_type) 
+                ENDDO   
+             ENDIF
+          ENDDO
+!
+!--       Vertical surfaces
+          DO  l = 0, 3
+             DO  m = 1, surf_lsm_v(l)%ns
+                i = surf_lsm_v(l)%i(m) + MERGE( 0, surf_lsm_v(l)%ioff,         &
+                                                surf_lsm_v(l)%building_covered(m) ) 
+                j = surf_lsm_v(l)%j(m) + MERGE( 0, surf_lsm_v(l)%joff,         &
+                                                surf_lsm_v(l)%building_covered(m) ) 
+             
+                st = pavement_type_f%var(j,i)
+                IF ( st /= pavement_type_f%fill  .AND.  st /= 0 )  THEN
+!
+!--                Determine deepmost index of pavement layer
+                   DO  k = nzb_soil, nzt_soil  
+                      IF ( pavement_subsurface_pars_1(k,st) == 9999999.9_wp    &
+                      .OR. pavement_subsurface_pars_2(k,st) == 9999999.9_wp)   &
+                      THEN
+                         surf_lsm_v(l)%nzt_pavement(m) = k-1
+                         EXIT
+                      ENDIF
+                   ENDDO
+
+                   surf_lsm_v(l)%z0(m)  = pavement_pars(ind_p_z0,st)
+                   surf_lsm_v(l)%z0h(m) = pavement_pars(ind_p_z0h,st)
+                   surf_lsm_v(l)%z0q(m) = pavement_pars(ind_p_z0h,st)
+
+                   surf_lsm_v(l)%lambda_surface_s(m)  =                        &
+                                              pavement_subsurface_pars_1(0,st) &
+                                                  * ddz_soil(nzb_soil)         & 
+                                                  * 2.0_wp    
+                   surf_lsm_v(l)%lambda_surface_u(m)  =                        &
+                                              pavement_subsurface_pars_1(0,st) &
+                                                  * ddz_soil(nzb_soil)         &
+                                                  * 2.0_wp     
+
+                   surf_lsm_v(l)%c_surface(m)    =                             &
+                                           pavement_subsurface_pars_2(0,st)    &
+                                                        * dz_soil(nzb_soil)    &
+                                                        * 0.25_wp                                    
+                   surf_lsm_v(l)%albedo_type(ind_pav,m) =                      &
+                                              INT( pavement_pars(ind_p_at,st) )
+                   surf_lsm_v(l)%emissivity(ind_pav,m)  =                      &
+                                              pavement_pars(ind_p_emis,st)    
+
+                   DO  k = nzb_soil, surf_lsm_h%nzt_pavement(m)
+                      surf_lsm_v(l)%lambda_h_def(k,m)    =                    &
+                                    pavement_subsurface_pars_1(k,pavement_type)                       
+                      surf_lsm_v(l)%rho_c_total_def(k,m) =                    &
+                                    pavement_subsurface_pars_2(k,pavement_type) 
+                   ENDDO   
+                ENDIF
+             ENDDO
+          ENDDO
+       ENDIF 
+!
+!--    Level 3, initialization of pavement parameters at single (x,y) 
+!--    position via pavement_pars read from file.
+       IF ( pavement_pars_f%from_file )  THEN
+!
+!--       Horizontal surfaces 
+          DO  m = 1, surf_lsm_h%ns
+             i = surf_lsm_h%i(m)
+             j = surf_lsm_h%j(m)
+!
+!--          If surface element is not a pavement surface and any value in 
+!--          pavement_pars is given, neglect this information and give an
+!--          informative message that this value will not be used.   
+             IF ( .NOT. surf_lsm_h%pavement_surface(m)  .AND.                  &
+                   ANY( pavement_pars_f%pars_xy(:,j,i) /=                      &
+                   pavement_pars_f%fill ) )  THEN
+                WRITE( message_string, * )                                     &
+                              'surface element at grid point (j,i) = (',       &
+                              j, i, ') is not a pavement surface, ',           &
+                              'so that information given in ',                 &
+                              'pavement_pars at this point is neglected.' 
+                CALL message( 'land_surface_model_mod', 'PA0999', 0, 0, 0, 6, 0 )
+             ELSE
+                IF ( pavement_pars_f%pars_xy(ind_p_z0,j,i) /=                  &
+                     pavement_pars_f%fill )                                    &
+                   surf_lsm_h%z0(m)  = pavement_pars_f%pars_xy(ind_p_z0,j,i)
+                IF ( pavement_pars_f%pars_xy(ind_p_z0h,j,i) /=                 &
+                     pavement_pars_f%fill )  THEN
+                   surf_lsm_h%z0h(m) = pavement_pars_f%pars_xy(ind_p_z0h,j,i)
+                   surf_lsm_h%z0q(m) = pavement_pars_f%pars_xy(ind_p_z0h,j,i)
+                ENDIF
+                IF ( pavement_subsurface_pars_f%pars_xyz(ind_p_lambda_h,0,j,i) &
+                     /= pavement_subsurface_pars_f%fill )  THEN
+                   surf_lsm_h%lambda_surface_s(m)  =                           &
+                      pavement_subsurface_pars_f%pars_xyz(ind_p_lambda_h,0,j,i)&
+                                                  * ddz_soil(nzb_soil)         &
+                                                  * 2.0_wp
+                   surf_lsm_h%lambda_surface_u(m)  =                           &
+                      pavement_subsurface_pars_f%pars_xyz(ind_p_lambda_h,0,j,i)&
+                                                  * ddz_soil(nzb_soil)         &
+                                                  * 2.0_wp    
+                ENDIF
+                IF ( pavement_subsurface_pars_f%pars_xyz(ind_p_rho_c,0,j,i) /= &
+                     pavement_subsurface_pars_f%fill )  THEN
+                   surf_lsm_h%c_surface(m)     =                               &
+                      pavement_subsurface_pars_f%pars_xyz(ind_p_rho_c,0,j,i)   &
+                                                  * dz_soil(nzb_soil)          &
+                                                  * 0.25_wp                                    
+                ENDIF
+                IF ( pavement_pars_f%pars_xy(ind_p_at,j,i) /=                  &
+                     pavement_pars_f%fill )                                    &
+                   surf_lsm_h%albedo_type(ind_pav,m) =                         &
+                                              INT( pavement_pars(ind_p_at,st) )
+                IF ( pavement_pars_f%pars_xy(ind_p_emis,j,i) /=                &
+                     pavement_pars_f%fill )                                    &
+                   surf_lsm_h%emissivity(ind_pav,m)  =                         &
+                                              pavement_pars(ind_p_emis,st) 
+             ENDIF 
+
+          ENDDO
+!
+!--       Vertical surfaces 
+          DO  l = 0, 3
+             DO  m = 1, surf_lsm_v(l)%ns
+                i = surf_lsm_v(l)%i(m) + MERGE( 0, surf_lsm_v(l)%ioff,         &
+                                                surf_lsm_v(l)%building_covered(m) ) 
+                j = surf_lsm_v(l)%j(m) + MERGE( 0, surf_lsm_v(l)%joff,         &
+                                                surf_lsm_v(l)%building_covered(m) ) 
+!
+!--             If surface element is not a pavement surface and any value in 
+!--             pavement_pars is given, neglect this information and give an
+!--             informative message that this value will not be used.   
+                IF ( .NOT. surf_lsm_v(l)%pavement_surface(m)  .AND.            &
+                      ANY( pavement_pars_f%pars_xy(:,j,i) /=                   &
+                      pavement_pars_f%fill ) )  THEN
+                   WRITE( message_string, * )                                  &
+                                 'surface element at grid point (j,i) = (',    &
+                                 j, i, ') is not a pavement surface, ',        &
+                                 'so that information given in ',              &
+                                 'pavement_pars at this point is neglected.' 
+                   CALL message( 'land_surface_model_mod', 'PA0999', 0, 0, 0, 6, 0 )
+                ELSE
+
+                   IF ( pavement_pars_f%pars_xy(ind_p_z0,j,i) /=               &
+                        pavement_pars_f%fill )                                 &
+                      surf_lsm_v(l)%z0(m) = pavement_pars_f%pars_xy(ind_p_z0,j,i)
+                   IF ( pavement_pars_f%pars_xy(ind_p_z0h,j,i) /=              &
+                        pavement_pars_f%fill )  THEN
+                      surf_lsm_v(l)%z0h(m) = pavement_pars_f%pars_xy(ind_p_z0h,j,i)
+                      surf_lsm_v(l)%z0q(m) = pavement_pars_f%pars_xy(ind_p_z0h,j,i)
+                   ENDIF
+                   IF ( pavement_subsurface_pars_f%pars_xyz(ind_p_lambda_h,0,j,i)&
+                        /= pavement_subsurface_pars_f%fill )  THEN
+                      surf_lsm_v(l)%lambda_surface_s(m) =                      &
+                      pavement_subsurface_pars_f%pars_xyz(ind_p_lambda_h,0,j,i)&
+                                                  * ddz_soil(nzb_soil)         &
+                                                  * 2.0_wp
+                      surf_lsm_v(l)%lambda_surface_u(m) =                      &
+                      pavement_subsurface_pars_f%pars_xyz(ind_p_lambda_h,0,j,i)&
+                                                  * ddz_soil(nzb_soil)         &
+                                                  * 2.0_wp    
+                   ENDIF
+                   IF ( pavement_subsurface_pars_f%pars_xyz(ind_p_rho_c,0,j,i) &
+                        /= pavement_subsurface_pars_f%fill )  THEN
+                      surf_lsm_v(l)%c_surface(m)    =                          &
+                         pavement_subsurface_pars_f%pars_xyz(ind_p_rho_c,0,j,i)&
+                                                  * dz_soil(nzb_soil)          &
+                                                  * 0.25_wp                                  
+                   ENDIF
+                   IF ( pavement_pars_f%pars_xy(ind_p_at,j,i) /=               &
+                        pavement_pars_f%fill )                                 &
+                      surf_lsm_v(l)%albedo_type(ind_pav,m) =                   &
+                                            INT( pavement_pars(ind_p_at,st) )
+
+                   IF ( pavement_pars_f%pars_xy(ind_p_emis,j,i) /=             &
+                        pavement_pars_f%fill )                                 &
+                      surf_lsm_v(l)%emissivity(ind_pav,m)  =                   &
+                                            pavement_pars(ind_p_emis,st)  
+                ENDIF 
+             ENDDO
+          ENDDO
+       ENDIF
+!
+!--    Moreover, for grid points which are flagged with pavement-type 0 or whre 
+!--    pavement_subsurface_pars_f is provided, soil heat conductivity and 
+!--    capacity are initialized with parameters given in        
+!--    pavement_subsurface_pars read from file. 
+       IF ( pavement_subsurface_pars_f%from_file )  THEN
+!
+!--       Set pavement depth to nzt_soil. Please note, this is just a 
+!--       workaround at the moment. 
+          DO  m = 1, surf_lsm_h%ns
+             IF ( surf_lsm_h%pavement_surface(m) )  THEN
+
+                i = surf_lsm_h%i(m)
+                j = surf_lsm_h%j(m)
+
+                surf_lsm_h%nzt_pavement(m) = nzt_soil
+
+                DO  k = nzb_soil, nzt_soil  
+                   surf_lsm_h%lambda_h_def(k,m) =                              &
+                       pavement_subsurface_pars_f%pars_xyz(ind_p_lambda_h,k,j,i)
+                   surf_lsm_h%rho_c_total_def(k,m) =                           &
+                       pavement_subsurface_pars_f%pars_xyz(ind_p_rho_c,k,j,i)
+                ENDDO
+
+             ENDIF
+          ENDDO
+          DO  l = 0, 3
+             DO  m = 1, surf_lsm_v(l)%ns
+                IF ( surf_lsm_v(l)%pavement_surface(m) )  THEN
+
+                   i = surf_lsm_v(l)%i(m) + MERGE( 0, surf_lsm_v(l)%ioff,      &
+                                                surf_lsm_v(l)%building_covered(m) ) 
+                   j = surf_lsm_v(l)%j(m) + MERGE( 0, surf_lsm_v(l)%joff,      &
+                                                surf_lsm_v(l)%building_covered(m) ) 
+
+                   surf_lsm_v(l)%nzt_pavement(m) = nzt_soil
+
+                   DO  k = nzb_soil, nzt_soil  
+                      surf_lsm_v(l)%lambda_h_def(k,m) =                        &
+                       pavement_subsurface_pars_f%pars_xyz(ind_p_lambda_h,k,j,i)
+                      surf_lsm_v(l)%rho_c_total_def(k,m) =                     &
+                       pavement_subsurface_pars_f%pars_xyz(ind_p_rho_c,k,j,i)
+                   ENDDO
+
+                ENDIF
+             ENDDO
+          ENDDO
+       ENDIF
 !
 !--    Initial run actions
        IF (  TRIM( initializing_actions ) /= 'read_restart_data' )  THEN
 !
-!--       First, for horizontal surfaces
-!
-!--       Set artifical values for ts and us so that r_a has its initial value 
-!--       for the first time step. Only for interior core domain, not for ghost points
+!--       First, initialize soil temperature and moisture. 
+!--       According to the initialization for surface and soil parameters, 
+!--       initialize soil moisture and temperature via a level approach. This 
+!--       is to assure that all surface elements are initialized, even if 
+!--       data provided from input file contains fill values at some locations.
+!--       Level 1, initialization via profiles given in parameter file
           DO  m = 1, surf_lsm_h%ns
-
-             t_soil_h%var_2d(:,m)    = 0.0_wp
-             m_soil_h%var_2d(:,m)    = 0.0_wp
-             m_liq_h%var_1d(m)       = 0.0_wp
-
-!--          Map user settings of T and q for each soil layer
-!--          (make sure that the soil moisture does not drop below the permanent
-!--          wilting point) -> problems with devision by zero)
-             IF ( surf_lsm_h%water_surface(m) )  THEN
-
-                surf_lsm_h%z0(m)          = z0_water
-                surf_lsm_h%z0h(m)         = z0h_water
-                surf_lsm_h%z0q(m)         = z0h_water
-                t_soil_h%var_2d(:,m)      = water_temperature
-                surf_lsm_h%lambda_surface_s(m) = 1.0E10_wp
-                surf_lsm_h%lambda_surface_u(m) = 1.0E10_wp               
-                surf_lsm_h%c_surface(m)        = 0.0_wp
-                
-             ELSEIF ( surf_lsm_h%pavement_surface(m) )  THEN
-
-                surf_lsm_h%z0(m)          = z0_pavement
-                surf_lsm_h%z0h(m)         = z0h_pavement
-                surf_lsm_h%z0q(m)         = z0h_pavement   
+             IF ( surf_lsm_h%vegetation_surface(m)  .OR.                       &
+                  surf_lsm_h%pavement_surface(m) )  THEN
                 DO  k = nzb_soil, nzt_soil  
-                   t_soil_h%var_2d(k,m)   = soil_temperature(k)
-                   m_soil_h%var_2d(k,m)   = soil_moisture(k)
+                   t_soil_h%var_2d(k,m) = soil_temperature(k)
+                   m_soil_h%var_2d(k,m) = soil_moisture(k)
                 ENDDO
                 t_soil_h%var_2d(nzt_soil+1,m) = soil_temperature(nzt_soil+1)
-                surf_lsm_h%lambda_surface_s(m) = pavement_heat_conduct         &
-                                                 * ddz_soil(nzb_soil)          &
-                                                 * 2.0_wp
-                surf_lsm_h%lambda_surface_u(m) = surf_lsm_h%lambda_surface_s(m)                                         
-                surf_lsm_h%c_surface(m)        = pavement_heat_capacity        &
-                                                 * dz_soil(nzb_soil)           &
-                                                 * 0.25_wp
-
-                IF ( pavement_type /= 0 )  THEN
+             ENDIF
+          ENDDO
+          DO  l = 0, 3
+             DO  m = 1, surf_lsm_v(l)%ns
+                IF ( surf_lsm_v(l)%vegetation_surface(m)  .OR.                 &
+                     surf_lsm_v(l)%pavement_surface(m) )  THEN
                    DO  k = nzb_soil, nzt_soil  
-                      surf_lsm_h%lambda_h_def(k,m)      =  pavement_subsurface_pars_1(k,pavement_type)                       
-                      surf_lsm_h%rho_c_total_def(k,m)   =  pavement_subsurface_pars_2(k,pavement_type) 
+                      t_soil_v(l)%var_2d(k,m) = soil_temperature(k)
+                      m_soil_v(l)%var_2d(k,m) = soil_moisture(k)
                    ENDDO
-                ELSE
-                    surf_lsm_h%lambda_h_def(:,m)     = pavement_heat_conduct
-                    surf_lsm_h%rho_c_total_def(:,m)  = pavement_heat_capacity
+                   t_soil_v(l)%var_2d(nzt_soil+1,m) = soil_temperature(nzt_soil+1)
                 ENDIF
-
-             ELSEIF ( surf_lsm_h%vegetation_surface(m) )  THEN
-
-                surf_lsm_h%z0(m)          = z0_vegetation
-                surf_lsm_h%z0h(m)         = z0h_vegetation
-                surf_lsm_h%z0q(m)         = z0h_vegetation   
-                DO  k = nzb_soil, nzt_soil                        
-                   t_soil_h%var_2d(k,m)   = soil_temperature(k)
-                   m_soil_h%var_2d(k,m)   = soil_moisture(k)       
-                ENDDO 
-                t_soil_h%var_2d(nzt_soil+1,m) = soil_temperature(nzt_soil+1)
-                surf_lsm_h%lambda_surface_s(m) = lambda_surface_stable
-                surf_lsm_h%lambda_surface_u(m) = lambda_surface_unstable
-                surf_lsm_h%c_surface(m)        = c_surface
-
+             ENDDO
+          ENDDO
+!
+!--       Level 2, if soil moisture and/or temperature  are 
+!--       provided from file, interpolate / extrapolate the provided data
+!--       onto the respective soil layers. Please note, both, zs as well as 
+!--       init_3d%z_soil indicate a depth with positive values, so that no 
+!--       distinction between atmosphere is required concerning interpolation.
+!--       Start with soil moisture
+          IF ( init_3d%from_file_msoil )  THEN
+
+             IF ( init_3d%lod_msoil == 1 )  THEN
+                DO  m = 1, surf_lsm_h%ns
+
+                   CALL netcdf_data_input_interpolate(                         &
+                                       m_soil_h%var_2d(nzb_soil:nzt_soil,m),   &
+                                       init_3d%msoil_init(:),                  &
+                                       zs(nzb_soil:nzt_soil), init_3d%z_soil,  &
+                                       nzb_soil, nzt_soil,                     &
+                                       nzb_soil, init_3d%nzs-1 )
+                ENDDO
+                DO  l = 0, 3
+                   DO  m = 1, surf_lsm_v(l)%ns
+
+                      CALL netcdf_data_input_interpolate(                      &
+                                       m_soil_v(l)%var_2d(nzb_soil:nzt_soil,m),&
+                                       init_3d%msoil_init(:),                  &
+                                       zs(nzb_soil:nzt_soil), init_3d%z_soil,  &
+                                       nzb_soil, nzt_soil,                     &
+                                       nzb_soil, init_3d%nzs-1 )
+                   ENDDO
+                ENDDO
+             ELSE
+
+                DO  m = 1, surf_lsm_h%ns
+                   i = surf_lsm_h%i(m)
+                   j = surf_lsm_h%j(m)
+
+                   IF ( init_3d%msoil(0,j,i) /= init_3d%fill_msoil )           &
+                      CALL netcdf_data_input_interpolate(                      &
+                                       m_soil_h%var_2d(nzb_soil:nzt_soil,m),   &
+                                       init_3d%msoil(:,j,i),                   &
+                                       zs(nzb_soil:nzt_soil), init_3d%z_soil,  &
+                                       nzb_soil, nzt_soil,                     &
+                                       nzb_soil, init_3d%nzs-1 )
+                ENDDO
+                DO  l = 0, 3
+                   DO  m = 1, surf_lsm_v(l)%ns
+                      i = surf_lsm_v(l)%i(m) + MERGE( 0, surf_lsm_v(l)%ioff,   &
+                                             surf_lsm_v(l)%building_covered(m) ) 
+                      j = surf_lsm_v(l)%j(m) + MERGE( 0, surf_lsm_v(l)%joff,   &
+                                             surf_lsm_v(l)%building_covered(m) ) 
+
+                      IF ( init_3d%msoil(0,j,i) /= init_3d%fill_msoil )        &
+                         CALL netcdf_data_input_interpolate(                   &
+                                       m_soil_v(l)%var_2d(nzb_soil:nzt_soil,m),&
+                                       init_3d%msoil(:,j,i),                   &
+                                       zs(nzb_soil:nzt_soil), init_3d%z_soil,  &
+                                       nzb_soil, nzt_soil,                     &
+                                       nzb_soil, init_3d%nzs-1 )
+                   ENDDO
+                ENDDO
              ENDIF
- 
+
+          ENDIF
+!
+!--       Soil temperature
+          IF ( init_3d%from_file_tsoil )  THEN
+
+             IF ( init_3d%lod_tsoil == 1 )  THEN ! change to 1 if provided correctly by INIFOR
+                DO  m = 1, surf_lsm_h%ns
+
+                   CALL netcdf_data_input_interpolate(                         &
+                                       t_soil_h%var_2d(nzb_soil:nzt_soil,m),   &
+                                       init_3d%tsoil_init(:),                  &
+                                       zs(nzb_soil:nzt_soil), init_3d%z_soil,  &
+                                       nzb_soil, nzt_soil,                     &
+                                       nzb_soil, init_3d%nzs-1 )
+                   t_soil_h%var_2d(nzt_soil+1,m) = t_soil_h%var_2d(nzt_soil,m)
+                ENDDO
+                DO  l = 0, 3
+                   DO  m = 1, surf_lsm_v(l)%ns
+
+                      CALL netcdf_data_input_interpolate(                      &
+                                       t_soil_v(l)%var_2d(nzb_soil:nzt_soil,m),&
+                                       init_3d%tsoil_init(:),                  &
+                                       zs(nzb_soil:nzt_soil), init_3d%z_soil,  &
+                                       nzb_soil, nzt_soil,                     &
+                                       nzb_soil, init_3d%nzs-1 )
+                      t_soil_v(l)%var_2d(nzt_soil+1,m) =                       &
+                                                 t_soil_v(l)%var_2d(nzt_soil,m)
+                   ENDDO
+                ENDDO
+             ELSE
+
+                DO  m = 1, surf_lsm_h%ns
+                   i = surf_lsm_h%i(m)
+                   j = surf_lsm_h%j(m)
+
+                   IF ( init_3d%msoil(0,j,i) /= init_3d%fill_msoil )           &
+                      CALL netcdf_data_input_interpolate(                      &
+                                       t_soil_h%var_2d(nzb_soil:nzt_soil,m),   &
+                                       init_3d%tsoil(:,j,i),                   &
+                                       zs(nzb_soil:nzt_soil), init_3d%z_soil,  &
+                                       nzb_soil, nzt_soil,                     &
+                                       nzb_soil, init_3d%nzs-1 )
+                   t_soil_h%var_2d(nzt_soil+1,m) = t_soil_h%var_2d(nzt_soil,m)
+                ENDDO
+                DO  l = 0, 3
+                   DO  m = 1, surf_lsm_v(l)%ns
+                      i = surf_lsm_v(l)%i(m) + MERGE( 0, surf_lsm_v(l)%ioff,   &
+                                                surf_lsm_v(l)%building_covered(m) ) 
+                      j = surf_lsm_v(l)%j(m) + MERGE( 0, surf_lsm_v(l)%joff,   &
+                                                surf_lsm_v(l)%building_covered(m) ) 
+
+                      IF ( init_3d%msoil(0,j,i) /= init_3d%fill_msoil )        &
+                         CALL netcdf_data_input_interpolate(                   &
+                                       t_soil_v(l)%var_2d(nzb_soil:nzt_soil,m),&
+                                       init_3d%tsoil(:,j,i),                   &
+                                       zs(nzb_soil:nzt_soil), init_3d%z_soil,  &
+                                       nzb_soil, nzt_soil,                     &
+                                       nzb_soil, init_3d%nzs-1 )
+                      t_soil_v(l)%var_2d(nzt_soil+1,m) =                       &
+                                                 t_soil_v(l)%var_2d(nzt_soil,m)
+                   ENDDO
+                ENDDO
+             ENDIF
+          ENDIF
+!
+!--       Further initialization
+          DO  m = 1, surf_lsm_h%ns
+
              i   = surf_lsm_h%i(m)            
              j   = surf_lsm_h%j(m)
@@ -2575,92 +3981,35 @@
              IF ( surf_lsm_h%lambda_surface_s(m) == 0.0_wp )  THEN
                 t_surface_h%var_1d(:)    = t_soil_h%var_2d(nzb_soil,m)
-                surf_lsm_h%pt_surface(:) = t_soil_h%var_2d(nzb_soil,m) / exn
+                surf_lsm_h%pt_surface(m) = t_soil_h%var_2d(nzb_soil,m) / exn
              ELSE
-                t_surface_h%var_1d(:)    = pt_surface * exn
-                surf_lsm_h%pt_surface(:) = pt_surface  
+                t_surface_h%var_1d(m)    = pt(k-1,j,i) * exn
+                surf_lsm_h%pt_surface(m) = pt(k-1,j,i)  
              ENDIF
              
-             IF ( cloud_physics  .OR.  cloud_droplets )  THEN
-                pt1 = pt(k,j,i) + l_d_cp * pt_d_t(k) * ql(k,j,i)
+             IF ( cloud_physics  .OR. cloud_droplets ) THEN
+                surf_lsm_h%pt1(m) = pt(k,j,i) + l_d_cp * pt_d_t(k) * ql(k,j,i)
              ELSE
-                pt1 = pt(k,j,i)
-             ENDIF
+                surf_lsm_h%pt1(m) = pt(k,j,i)
+             ENDIF 
+
 
 !
 !--          Assure that r_a cannot be zero at model start
-             IF ( pt1 == surf_lsm_h%pt_surface(m) )  pt1 = pt1 + 1.0E-10_wp
+             IF ( surf_lsm_h%pt1(m) == surf_lsm_h%pt_surface(m) )              &
+                surf_lsm_h%pt1(m) = surf_lsm_h%pt1(m) + 1.0E-20_wp
 
              surf_lsm_h%us(m)   = 0.1_wp
-             surf_lsm_h%ts(m)   = ( pt1 - surf_lsm_h%pt_surface(m) )           &
+             surf_lsm_h%ts(m)   = ( surf_lsm_h%pt1(m) - surf_lsm_h%pt_surface(m) )&
                                   / surf_lsm_h%r_a(m)
              surf_lsm_h%shf(m)  = - surf_lsm_h%us(m) * surf_lsm_h%ts(m)        &
                                   * rho_surface
-
          ENDDO
-
 !
 !--      Vertical surfaces
          DO  l = 0, 3
              DO  m = 1, surf_lsm_v(l)%ns
-             
-                t_soil_v(l)%var_2d    = 0.0_wp
-                m_soil_v(l)%var_2d    = 0.0_wp
-                m_liq_v(l)%var_1d  = 0.0_wp
-
-             
-!--             Map user settings of T and q for each soil layer
-!--             (make sure that the soil moisture does not drop below the permanent
-!--             wilting point) -> problems with devision by zero)
-                IF ( surf_lsm_v(l)%water_surface(m) )  THEN
-                   surf_lsm_v(l)%z0(m)          = z0_water
-                   surf_lsm_v(l)%z0h(m)         = z0h_water 
-                   surf_lsm_v(l)%z0q(m)         = z0h_water                   
-                   t_soil_v(l)%var_2d(:,m)      = water_temperature
-                   surf_lsm_v(l)%lambda_surface_s(m) = 1.0E10_wp
-                   surf_lsm_v(l)%lambda_surface_u(m) = 1.0E10_wp             
-                   surf_lsm_v(l)%c_surface(m)        = 0.0_wp
-                   
-                ELSEIF ( surf_lsm_v(l)%pavement_surface(m) )  THEN
-                   surf_lsm_v(l)%z0(m)          = z0_pavement
-                   surf_lsm_v(l)%z0h(m)         = z0h_pavement
-                   surf_lsm_v(l)%z0q(m)         = z0h_pavement  
-                   DO  k = nzb_soil, nzt_soil  
-                      t_soil_v(l)%var_2d(k,m)   = soil_temperature(k)
-                      m_soil_v(l)%var_2d(k,m)   = soil_moisture(k) 
-                   ENDDO
-                   t_soil_v(l)%var_2d(nzt_soil+1,m)  = soil_temperature(nzt_soil+1)
-                   surf_lsm_v(l)%lambda_surface_s(m) = pavement_heat_conduct   &
-                                                       * ddz_soil(nzb_soil)    &
-                                                       * 2.0_wp
-                   surf_lsm_v(l)%lambda_surface_u(m) = surf_lsm_v(l)%lambda_surface_s(m)
-                   surf_lsm_v(l)%c_surface(m) = pavement_heat_capacity         &
-                                                * dz_soil(nzb_soil)            &
-                                                * 0.25_wp
-                IF ( pavement_type /= 0 )  THEN
-                   DO  k = nzb_soil, nzt_soil  
-                      surf_lsm_v(l)%lambda_h_def(k,m)    =  pavement_subsurface_pars_1(k,pavement_type)                       
-                      surf_lsm_v(l)%rho_c_total_def(k,m) =  pavement_subsurface_pars_2(k,pavement_type)  
-                   ENDDO
-                ELSE
-                    surf_lsm_v(l)%lambda_h_def(:,m)     = pavement_heat_conduct
-                    surf_lsm_v(l)%rho_c_total_def(:,m)  = pavement_heat_capacity
-                ENDIF
-                        
-                   
-                ELSEIF ( surf_lsm_v(l)%vegetation_surface(m) )  THEN
-
-                   surf_lsm_v(l)%z0(m)          = z0_vegetation
-                   surf_lsm_v(l)%z0h(m)         = z0h_vegetation
-                   surf_lsm_v(l)%z0q(m)         = z0h_vegetation   
-                   DO  k = nzb_soil, nzt_soil                        
-                      t_soil_v(l)%var_2d(k,m)   = soil_temperature(k)
-                      m_soil_v(l)%var_2d(k,m)   = soil_moisture(k)       
-                   ENDDO 
-                   t_soil_v(l)%var_2d(nzt_soil+1,m) = soil_temperature(nzt_soil+1)
-                   surf_lsm_v(l)%lambda_surface_s(m) = lambda_surface_stable
-                   surf_lsm_v(l)%lambda_surface_u(m) = lambda_surface_unstable
-                   surf_lsm_v(l)%c_surface(m)        = c_surface
-                ENDIF        
-         
+                i   = surf_lsm_v(l)%i(m)            
+                j   = surf_lsm_v(l)%j(m)
+                k   = surf_lsm_v(l)%k(m)         
 !
 !--             Calculate surface temperature. In case of bare soil, the surface 
@@ -2668,32 +4017,34 @@
 !--             layer
                 IF ( surf_lsm_v(l)%lambda_surface_s(m) == 0.0_wp )  THEN
-                   t_surface_v(l)%var_1d(:)      = t_soil_v(l)%var_2d(nzb_soil,m)
-                   surf_lsm_v(l)%pt_surface(:)   = t_soil_v(l)%var_2d(nzb_soil,m) / exn
+                   t_surface_v(l)%var_1d(m)      = t_soil_v(l)%var_2d(nzb_soil,m)
+                   surf_lsm_v(l)%pt_surface(m)   = t_soil_v(l)%var_2d(nzb_soil,m) / exn
                 ELSE
-                   t_surface_v(l)%var_1d(:)      = pt_surface * exn
-                   surf_lsm_v(l)%pt_surface(:)   = pt_surface               
+                   j_off = surf_lsm_v(l)%joff
+                   i_off = surf_lsm_v(l)%ioff
+
+                   t_surface_v(l)%var_1d(m)      = pt(k,j+j_off,i+i_off) * exn
+                   surf_lsm_v(l)%pt_surface(m)   = pt(k,j+j_off,i+i_off)           
                 ENDIF
 
+
+                IF ( cloud_physics  .OR. cloud_droplets ) THEN
+                   surf_lsm_v(l)%pt1(m) = pt(k,j,i) + l_d_cp * pt_d_t(k) * ql(k,j,i)
+                ELSE
+                   surf_lsm_v(l)%pt1(m) = pt(k,j,i)
+                ENDIF 
+
+!
+!--             Assure that r_a cannot be zero at model start
+                IF ( surf_lsm_v(l)%pt1(m) == surf_lsm_v(l)%pt_surface(m) )     &
+                     surf_lsm_v(l)%pt1(m) = surf_lsm_v(l)%pt1(m) + 1.0E-20_wp
 !
 !--             Set artifical values for ts and us so that r_a has its initial value 
 !--             for the first time step. Only for interior core domain, not for ghost points
-
-                i   = surf_lsm_v(l)%i(m)            
-                j   = surf_lsm_v(l)%j(m)
-                k   = surf_lsm_v(l)%k(m)
-
-                IF ( cloud_physics  .OR.  cloud_droplets )  THEN
-                   pt1 = pt(k,j,i) + l_d_cp * pt_d_t(k) * ql(k,j,i)
-                ELSE
-                   pt1 = pt(k,j,i)
-                ENDIF
-
-!
-!--             Assure that r_a cannot be zero at model start
-                IF ( pt1 == surf_lsm_v(l)%pt_surface(m) )  pt1 = pt1 + 1.0E-10_wp
-
                 surf_lsm_v(l)%us(m)   = 0.1_wp
-                surf_lsm_v(l)%ts(m)   = ( pt1 - surf_lsm_v(l)%pt_surface(m) ) / surf_lsm_v(l)%r_a(m)
-                surf_lsm_v(l)%shf(m)  = - surf_lsm_v(l)%us(m) * surf_lsm_v(l)%ts(m) * rho_surface
+                surf_lsm_v(l)%ts(m)   = ( surf_lsm_v(l)%pt1(m) - surf_lsm_v(l)%pt_surface(m) ) /&
+                                          surf_lsm_v(l)%r_a(m)
+                surf_lsm_v(l)%shf(m)  = - surf_lsm_v(l)%us(m) *                &
+                                          surf_lsm_v(l)%ts(m) * rho_surface
+
              ENDDO
           ENDDO
@@ -2715,17 +4066,7 @@
 !
 !--          Set index offset of surface element, seen from atmospheric grid point 
-             IF ( l == 0 )  THEN 
-                j_off = -1 
-                i_off = 0
-             ELSEIF ( l == 1 )  THEN 
-                j_off = 1 
-                i_off = 0
-             ELSEIF ( l == 2 )  THEN 
-                j_off = 0 
-                i_off = -1
-             ELSEIF ( l == 3 )  THEN 
-                j_off = 0 
-                i_off = 1
-             ENDIF
+             j_off = surf_lsm_v(l)%joff
+             i_off = surf_lsm_v(l)%ioff
+
              DO  m = 1, surf_lsm_v(l)%ns
                 i   = surf_lsm_v(l)%i(m)            
@@ -2738,21 +4079,14 @@
        ENDIF
 !
-!--    Initialize root fraction
-!--    Horizontal surfaces
+!--    Level 1 initialization of root distribution - provided by the user via
+!--    via namelist.
        DO  m = 1, surf_lsm_h%ns
-          i   = surf_lsm_h%i(m)            
-          j   = surf_lsm_h%j(m)
-
           DO  k = nzb_soil, nzt_soil
              surf_lsm_h%root_fr(k,m) = root_fraction(k)
           ENDDO
        ENDDO
-!
-!--    Vertical surfaces
+
        DO  l = 0, 3
           DO  m = 1, surf_lsm_v(l)%ns
-             i   = surf_lsm_v(l)%i(m)            
-             j   = surf_lsm_v(l)%j(m)
-
              DO  k = nzb_soil, nzt_soil
                 surf_lsm_v(l)%root_fr(k,m) = root_fraction(k)
@@ -2762,8 +4096,8 @@
 
 !
+!--    Level 2 initialization of root distribution.
 !--    When no root distribution is given by the user, use look-up table to prescribe
-!--    the root fraction in the individual soil layers
+!--    the root fraction in the individual soil layers.
        IF ( ALL( root_fraction == 9999999.9_wp ) )  THEN
-
 !
 !--       First, calculate the index bounds for integration
@@ -2820,15 +4154,13 @@
 !--       Map calculated root fractions
           DO  m = 1, surf_lsm_h%ns
-             i   = surf_lsm_h%i(m)            
-             j   = surf_lsm_h%j(m)
              DO  k = nzb_soil, nzt_soil 
                 IF ( surf_lsm_h%pavement_surface(m)  .AND.                     &
-                     k <= nzt_pavement )  THEN
+                     k <= surf_lsm_h%nzt_pavement(m) )  THEN
                    surf_lsm_h%root_fr(k,m) = 0.0_wp
                 ELSE
                    surf_lsm_h%root_fr(k,m) = root_fraction(k)
                 ENDIF
-             ENDDO
-
+
+             ENDDO
 !
 !--          Normalize so that the sum = 1. Only relevant when the root         
@@ -2840,14 +4172,10 @@
                 ENDDO
              ENDIF
-
           ENDDO
           DO  l = 0, 3
              DO  m = 1, surf_lsm_v(l)%ns
-                i   = surf_lsm_v(l)%i(m)            
-                j   = surf_lsm_v(l)%j(m)
-
                 DO  k = nzb_soil, nzt_soil
                    IF ( surf_lsm_v(l)%pavement_surface(m)  .AND.               &
-                        k <= nzt_pavement )  THEN
+                        k <= surf_lsm_h%nzt_pavement(m) )  THEN
                       surf_lsm_v(l)%root_fr(k,m) = 0.0_wp
                    ELSE
@@ -2864,27 +4192,41 @@
                    ENDDO
                 ENDIF
-
              ENDDO
            ENDDO
        ENDIF
 !
-!--    Map vegetation parameters to the respective 2D arrays
-       surf_lsm_h%r_canopy_min      = min_canopy_resistance
-       surf_lsm_h%lai               = leaf_area_index
-       surf_lsm_h%c_veg             = vegetation_coverage
-       surf_lsm_h%g_d               = canopy_resistance_coefficient
-       surf_lsm_h%f_sw_in           = f_shortwave_incoming
-
-!--    Vertical surfaces
-       DO  l = 0, 3
-
-!
-!--       Map vegetation parameters to the respective 2D arrays
-          surf_lsm_v(l)%r_canopy_min      = min_canopy_resistance
-          surf_lsm_v(l)%lai               = leaf_area_index
-          surf_lsm_v(l)%c_veg             = vegetation_coverage
-          surf_lsm_v(l)%g_d               = canopy_resistance_coefficient
-          surf_lsm_v(l)%f_sw_in           = f_shortwave_incoming
-       ENDDO
+!--    Level 3 initialization of root distribution.
+!--    Take value from file
+       IF ( root_area_density_lsm_f%from_file )  THEN
+          DO  m = 1, surf_lsm_h%ns
+             IF ( surf_lsm_h%vegetation_surface(m) )  THEN
+                i = surf_lsm_h%i(m) + MERGE( 0, surf_lsm_v(l)%ioff,            &
+                                             surf_lsm_v(l)%building_covered(m) ) 
+                j = surf_lsm_h%j(m) + MERGE( 0, surf_lsm_v(l)%joff,            &
+                                             surf_lsm_v(l)%building_covered(m) ) 
+                DO  k = nzb_soil, nzt_soil 
+                   surf_lsm_h%root_fr(k,m) = root_area_density_lsm_f%var(k,j,i) 
+                ENDDO
+
+             ENDIF
+          ENDDO
+
+          DO  l = 0, 3
+             DO  m = 1, surf_lsm_v(l)%ns
+                IF ( surf_lsm_v(l)%vegetation_surface(m) )  THEN
+                   i = surf_lsm_v(l)%i(m) + MERGE( 0, surf_lsm_v(l)%ioff,      &
+                                                   surf_lsm_v(l)%building_covered(m) ) 
+                   j = surf_lsm_v(l)%j(m) + MERGE( 0, surf_lsm_v(l)%joff,      &
+                                                   surf_lsm_v(l)%building_covered(m) ) 
+
+                   DO  k = nzb_soil, nzt_soil 
+                      surf_lsm_v(l)%root_fr(k,m) = root_area_density_lsm_f%var(k,j,i) 
+                   ENDDO
+
+                ENDIF
+             ENDDO
+          ENDDO
+
+       ENDIF
  
 !
@@ -2912,8 +4254,32 @@
 !--    Store initial profiles of t_soil and m_soil (assuming they are 
 !--    horizontally homogeneous on this PE)
-       hom(nzb_soil:nzt_soil,1,90,:)  = SPREAD( t_soil_h%var_2d(nzb_soil:nzt_soil,1),  &
-                                                2, statistic_regions+1 )
-       hom(nzb_soil:nzt_soil,1,92,:)  = SPREAD( m_soil_h%var_2d(nzb_soil:nzt_soil,1),  & 
-                                                2, statistic_regions+1 )
+!--    DEACTIVATED FOR NOW - leads to error when number of locations with
+!--    soil model is zero on a PE.
+!        hom(nzb_soil:nzt_soil,1,90,:)  = SPREAD( t_soil_h%var_2d(nzb_soil:nzt_soil,1),  &
+!                                                 2, statistic_regions+1 )
+!        hom(nzb_soil:nzt_soil,1,92,:)  = SPREAD( m_soil_h%var_2d(nzb_soil:nzt_soil,1),  & 
+!                                                 2, statistic_regions+1 )
+
+!
+!--    Finally, make some consistency checks. 
+!--    Ceck for eck for illegal combination of LAI and vegetation coverage.
+       IF ( ANY( .NOT. surf_lsm_h%pavement_surface  .AND.                      &
+                 surf_lsm_h%lai == 0.0_wp  .AND.  surf_lsm_h%c_veg == 1.0_wp ) &
+          )  THEN
+          message_string = 'For non-pavement surfaces the combination ' //     &
+                           ' lai = 0.0 and c_veg = 1.0 is not allowed.'
+          CALL message( 'lsm_read_restart_data', 'PA0999', 2, 2, 0, 6, 0 )
+       ENDIF
+
+       DO  l = 0, 3
+          IF ( ANY( .NOT. surf_lsm_v(l)%pavement_surface  .AND.                &
+                    surf_lsm_v(l)%lai == 0.0_wp  .AND.                         &
+                    surf_lsm_v(l)%c_veg == 1.0_wp ) )  THEN
+             message_string = 'For non-pavement surfaces the combination ' //  &
+                              ' lai = 0.0 and c_veg = 1.0 is not allowed.'
+             CALL message( 'lsm_read_restart_data', 'PA0999', 2, 2, 0, 6, 0 )
+          ENDIF
+       ENDDO
+
 
     END SUBROUTINE lsm_init
@@ -2943,11 +4309,8 @@
 !
 !--    Horizontal surfaces
-       ALLOCATE ( m_liq_h%var_1d(1:surf_lsm_h%ns)                        )
        ALLOCATE ( m_liq_h_p%var_1d(1:surf_lsm_h%ns)                      )
        ALLOCATE ( t_surface_h%var_1d(1:surf_lsm_h%ns)                    )
        ALLOCATE ( t_surface_h_p%var_1d(1:surf_lsm_h%ns)                  )
-       ALLOCATE ( m_soil_h%var_2d(nzb_soil:nzt_soil,1:surf_lsm_h%ns)     )
        ALLOCATE ( m_soil_h_p%var_2d(nzb_soil:nzt_soil,1:surf_lsm_h%ns)   )
-       ALLOCATE ( t_soil_h%var_2d(nzb_soil:nzt_soil+1,1:surf_lsm_h%ns)   )
        ALLOCATE ( t_soil_h_p%var_2d(nzb_soil:nzt_soil+1,1:surf_lsm_h%ns) )
 
@@ -2963,4 +4326,22 @@
           ALLOCATE ( t_soil_v(l)%var_2d(nzb_soil:nzt_soil+1,1:surf_lsm_v(l)%ns)   )
           ALLOCATE ( t_soil_v_p(l)%var_2d(nzb_soil:nzt_soil+1,1:surf_lsm_v(l)%ns) )
+       ENDDO
+!
+!--    Allocate soil temperature and moisture. As these variables might be 
+!--    already allocated in case of restarts, check this. 
+       IF ( .NOT. ALLOCATED( m_liq_h%var_1d ) )                                &
+          ALLOCATE ( m_liq_h%var_1d(1:surf_lsm_h%ns) )
+       IF ( .NOT. ALLOCATED( m_soil_h%var_2d ) )                               &
+          ALLOCATE ( m_soil_h%var_2d(nzb_soil:nzt_soil,1:surf_lsm_h%ns) )
+       IF ( .NOT. ALLOCATED( t_soil_h%var_2d ) )                               &
+          ALLOCATE ( t_soil_h%var_2d(nzb_soil:nzt_soil,1:surf_lsm_h%ns) )
+
+       DO  l = 0, 3
+          IF ( .NOT. ALLOCATED( m_liq_v(l)%var_1d ) )                          &
+             ALLOCATE ( m_liq_v(l)%var_1d(1:surf_lsm_v(l)%ns) )
+          IF ( .NOT. ALLOCATED( m_soil_v(l)%var_2d ) )                         &
+             ALLOCATE ( m_soil_v(l)%var_2d(nzb_soil:nzt_soil,1:surf_lsm_v(l)%ns) )
+          IF ( .NOT. ALLOCATED( t_soil_v(l)%var_2d ) )                         &
+             ALLOCATE ( t_soil_v(l)%var_2d(nzb_soil:nzt_soil,1:surf_lsm_v(l)%ns) )
        ENDDO
 #else
@@ -2988,4 +4369,12 @@
        ENDDO
 #endif
+!
+!--    Allocate array for heat flux in W/m2, required for radiation?
+!--    Consider to remove this array
+       ALLOCATE( surf_lsm_h%surfhf(1:surf_lsm_h%ns) )
+       DO  l = 0, 3
+          ALLOCATE( surf_lsm_v(l)%surfhf(1:surf_lsm_v(l)%ns) )
+       ENDDO
+
 
 !
@@ -3004,67 +4393,63 @@
           ALLOCATE ( tt_soil_v_m(l)%var_2d(nzb_soil:nzt_soil,1:surf_lsm_v(l)%ns)  )
        ENDDO 
-!
-!--    Allocate skin-surface temperature
-       ALLOCATE ( surf_lsm_h%pt_surface(1:surf_lsm_h%ns) )
-       DO  l = 0, 3
-          ALLOCATE ( surf_lsm_v(l)%pt_surface(1:surf_lsm_v(l)%ns) )
-       ENDDO 
 
 !
 !--    Allocate 2D vegetation model arrays
 !--    Horizontal surfaces
-       ALLOCATE ( surf_lsm_h%building_surface(1:surf_lsm_h%ns) )
-       ALLOCATE ( surf_lsm_h%c_liq(1:surf_lsm_h%ns)            )
-       ALLOCATE ( surf_lsm_h%c_surface(1:surf_lsm_h%ns)        )
-       ALLOCATE ( surf_lsm_h%c_veg(1:surf_lsm_h%ns)            )
-       ALLOCATE ( surf_lsm_h%f_sw_in(1:surf_lsm_h%ns)          )
-       ALLOCATE ( surf_lsm_h%ghf(1:surf_lsm_h%ns)              )
-       ALLOCATE ( surf_lsm_h%g_d(1:surf_lsm_h%ns)              )
-       ALLOCATE ( surf_lsm_h%lai(1:surf_lsm_h%ns)              )
-       ALLOCATE ( surf_lsm_h%lambda_surface_u(1:surf_lsm_h%ns) )
-       ALLOCATE ( surf_lsm_h%lambda_surface_s(1:surf_lsm_h%ns) )
+       ALLOCATE ( surf_lsm_h%building_surface(1:surf_lsm_h%ns)    )
+       ALLOCATE ( surf_lsm_h%c_liq(1:surf_lsm_h%ns)               )
+       ALLOCATE ( surf_lsm_h%c_surface(1:surf_lsm_h%ns)           )
+       ALLOCATE ( surf_lsm_h%c_veg(1:surf_lsm_h%ns)               )
+       ALLOCATE ( surf_lsm_h%f_sw_in(1:surf_lsm_h%ns)             )
+       ALLOCATE ( surf_lsm_h%ghf(1:surf_lsm_h%ns)                 )
+       ALLOCATE ( surf_lsm_h%g_d(1:surf_lsm_h%ns)                 )
+       ALLOCATE ( surf_lsm_h%lai(1:surf_lsm_h%ns)                 )
+       ALLOCATE ( surf_lsm_h%lambda_surface_u(1:surf_lsm_h%ns)    )
+       ALLOCATE ( surf_lsm_h%lambda_surface_s(1:surf_lsm_h%ns)    )
+       ALLOCATE ( surf_lsm_h%nzt_pavement(1:surf_lsm_h%ns)        )
+       ALLOCATE ( surf_lsm_h%pavement_surface(1:surf_lsm_h%ns)    )
+       ALLOCATE ( surf_lsm_h%qsws_soil(1:surf_lsm_h%ns)           )
+       ALLOCATE ( surf_lsm_h%qsws_liq(1:surf_lsm_h%ns)            )
+       ALLOCATE ( surf_lsm_h%qsws_veg(1:surf_lsm_h%ns)            )
+       ALLOCATE ( surf_lsm_h%rad_net_l(1:surf_lsm_h%ns)           ) 
+       ALLOCATE ( surf_lsm_h%r_a(1:surf_lsm_h%ns)                 )
+       ALLOCATE ( surf_lsm_h%r_canopy(1:surf_lsm_h%ns)            )
+       ALLOCATE ( surf_lsm_h%r_soil(1:surf_lsm_h%ns)              )
+       ALLOCATE ( surf_lsm_h%r_soil_min(1:surf_lsm_h%ns)          )
+       ALLOCATE ( surf_lsm_h%r_s(1:surf_lsm_h%ns)                 )
+       ALLOCATE ( surf_lsm_h%r_canopy_min(1:surf_lsm_h%ns)        )
        ALLOCATE ( surf_lsm_h%vegetation_surface(1:surf_lsm_h%ns)  )
-       ALLOCATE ( surf_lsm_h%pavement_surface(1:surf_lsm_h%ns) )
-       ALLOCATE ( surf_lsm_h%qsws_soil(1:surf_lsm_h%ns)        )
-       ALLOCATE ( surf_lsm_h%qsws_liq(1:surf_lsm_h%ns)         )
-       ALLOCATE ( surf_lsm_h%qsws_veg(1:surf_lsm_h%ns)         )
-       ALLOCATE ( surf_lsm_h%rad_net_l(1:surf_lsm_h%ns)        ) 
-       ALLOCATE ( surf_lsm_h%r_a(1:surf_lsm_h%ns)              )
-       ALLOCATE ( surf_lsm_h%r_canopy(1:surf_lsm_h%ns)         )
-       ALLOCATE ( surf_lsm_h%r_soil(1:surf_lsm_h%ns)           )
-       ALLOCATE ( surf_lsm_h%r_soil_min(1:surf_lsm_h%ns)       )
-       ALLOCATE ( surf_lsm_h%r_s(1:surf_lsm_h%ns)              )
-       ALLOCATE ( surf_lsm_h%r_canopy_min(1:surf_lsm_h%ns)     )
-       ALLOCATE ( surf_lsm_h%water_surface(1:surf_lsm_h%ns)    )
-
-       surf_lsm_h%water_surface     = .FALSE.
-       surf_lsm_h%pavement_surface  = .FALSE.
+       ALLOCATE ( surf_lsm_h%water_surface(1:surf_lsm_h%ns)       )
+
+       surf_lsm_h%water_surface        = .FALSE.
+       surf_lsm_h%pavement_surface     = .FALSE.
        surf_lsm_h%vegetation_surface   = .FALSE. 
 !
 !--    Vertical surfaces
        DO  l = 0, 3
-          ALLOCATE ( surf_lsm_v(l)%building_surface(1:surf_lsm_v(l)%ns) )
-          ALLOCATE ( surf_lsm_v(l)%c_liq(1:surf_lsm_v(l)%ns)            )
-          ALLOCATE ( surf_lsm_v(l)%c_surface(1:surf_lsm_v(l)%ns)        )
-          ALLOCATE ( surf_lsm_v(l)%c_veg(1:surf_lsm_v(l)%ns)            )
-          ALLOCATE ( surf_lsm_v(l)%f_sw_in(1:surf_lsm_v(l)%ns)          )
-          ALLOCATE ( surf_lsm_v(l)%ghf(1:surf_lsm_v(l)%ns)              )
-          ALLOCATE ( surf_lsm_v(l)%g_d(1:surf_lsm_v(l)%ns)              )
-          ALLOCATE ( surf_lsm_v(l)%lai(1:surf_lsm_v(l)%ns)              )
-          ALLOCATE ( surf_lsm_v(l)%lambda_surface_u(1:surf_lsm_v(l)%ns) )
-          ALLOCATE ( surf_lsm_v(l)%lambda_surface_s(1:surf_lsm_v(l)%ns) )
+          ALLOCATE ( surf_lsm_v(l)%building_surface(1:surf_lsm_v(l)%ns)    )
+          ALLOCATE ( surf_lsm_v(l)%c_liq(1:surf_lsm_v(l)%ns)               )
+          ALLOCATE ( surf_lsm_v(l)%c_surface(1:surf_lsm_v(l)%ns)           )
+          ALLOCATE ( surf_lsm_v(l)%c_veg(1:surf_lsm_v(l)%ns)               )
+          ALLOCATE ( surf_lsm_v(l)%f_sw_in(1:surf_lsm_v(l)%ns)             )
+          ALLOCATE ( surf_lsm_v(l)%ghf(1:surf_lsm_v(l)%ns)                 )
+          ALLOCATE ( surf_lsm_v(l)%g_d(1:surf_lsm_v(l)%ns)                 )
+          ALLOCATE ( surf_lsm_v(l)%lai(1:surf_lsm_v(l)%ns)                 )
+          ALLOCATE ( surf_lsm_v(l)%lambda_surface_u(1:surf_lsm_v(l)%ns)    )
+          ALLOCATE ( surf_lsm_v(l)%lambda_surface_s(1:surf_lsm_v(l)%ns)    )
+          ALLOCATE ( surf_lsm_v(l)%nzt_pavement(1:surf_lsm_v(l)%ns)        )
+          ALLOCATE ( surf_lsm_v(l)%pavement_surface(1:surf_lsm_v(l)%ns)    )
+          ALLOCATE ( surf_lsm_v(l)%qsws_soil(1:surf_lsm_v(l)%ns)           )
+          ALLOCATE ( surf_lsm_v(l)%qsws_liq(1:surf_lsm_v(l)%ns)            )
+          ALLOCATE ( surf_lsm_v(l)%qsws_veg(1:surf_lsm_v(l)%ns)            )
+          ALLOCATE ( surf_lsm_v(l)%rad_net_l(1:surf_lsm_v(l)%ns)           )
+          ALLOCATE ( surf_lsm_v(l)%r_a(1:surf_lsm_v(l)%ns)                 )
+          ALLOCATE ( surf_lsm_v(l)%r_canopy(1:surf_lsm_v(l)%ns)            )
+          ALLOCATE ( surf_lsm_v(l)%r_soil(1:surf_lsm_v(l)%ns)              )
+          ALLOCATE ( surf_lsm_v(l)%r_soil_min(1:surf_lsm_v(l)%ns)          )
+          ALLOCATE ( surf_lsm_v(l)%r_s(1:surf_lsm_v(l)%ns)                 )
+          ALLOCATE ( surf_lsm_v(l)%r_canopy_min(1:surf_lsm_v(l)%ns)        )
           ALLOCATE ( surf_lsm_v(l)%vegetation_surface(1:surf_lsm_v(l)%ns)  )
-          ALLOCATE ( surf_lsm_v(l)%pavement_surface(1:surf_lsm_v(l)%ns) )
-          ALLOCATE ( surf_lsm_v(l)%qsws_soil(1:surf_lsm_v(l)%ns)        )
-          ALLOCATE ( surf_lsm_v(l)%qsws_liq(1:surf_lsm_v(l)%ns)         )
-          ALLOCATE ( surf_lsm_v(l)%qsws_veg(1:surf_lsm_v(l)%ns)         )
-          ALLOCATE ( surf_lsm_v(l)%rad_net_l(1:surf_lsm_v(l)%ns)        )
-          ALLOCATE ( surf_lsm_v(l)%r_a(1:surf_lsm_v(l)%ns)              )
-          ALLOCATE ( surf_lsm_v(l)%r_canopy(1:surf_lsm_v(l)%ns)         )
-          ALLOCATE ( surf_lsm_v(l)%r_soil(1:surf_lsm_v(l)%ns)           )
-          ALLOCATE ( surf_lsm_v(l)%r_soil_min(1:surf_lsm_v(l)%ns)       )
-          ALLOCATE ( surf_lsm_v(l)%r_s(1:surf_lsm_v(l)%ns)              )
-          ALLOCATE ( surf_lsm_v(l)%r_canopy_min(1:surf_lsm_v(l)%ns)     )
-          ALLOCATE ( surf_lsm_v(l)%water_surface(1:surf_lsm_v(l)%ns)    )
+          ALLOCATE ( surf_lsm_v(l)%water_surface(1:surf_lsm_v(l)%ns)       )
 
           surf_lsm_v(l)%water_surface     = .FALSE.
@@ -3073,4 +4458,5 @@
           
        ENDDO
+
    
 #if ! defined( __nopointer )
@@ -3088,4 +4474,5 @@
        m_soil_v    => m_soil_v_1;    m_soil_v_p    => m_soil_v_2
        m_liq_v     => m_liq_v_1;     m_liq_v_p     => m_liq_v_2
+
 #endif
 
@@ -3122,5 +4509,6 @@
                                   residual_moisture, root_fraction,            &
                                   saturation_moisture, skip_time_do_lsm,       &
-                                  soil_moisture, soil_temperature, soil_type,  &
+                                  soil_moisture, soil_temperature,             &
+                                  soil_type,                                   &
                                   surface_type,                                &
                                   vegetation_coverage, vegetation_type,        &
@@ -3204,4 +4592,5 @@
        IF ( horizontal )  THEN
           surf           => surf_lsm_h
+
           surf_m_soil    => m_soil_h
           surf_m_soil_p  => m_soil_h_p
@@ -3212,4 +4601,5 @@
        ELSE
           surf           => surf_lsm_v(l)
+
           surf_m_soil    => m_soil_v(l)
           surf_m_soil_p  => m_soil_v_p(l)
@@ -3225,6 +4615,7 @@
              DO  k = nzb_soil, nzt_soil
 
-                IF ( surf%pavement_surface(m)  .AND.  k <= nzt_pavement )  THEN
-                    
+                IF ( surf%pavement_surface(m)  .AND.                           &
+                     k <= surf%nzt_pavement(m) )  THEN
+                   
                    surf%rho_c_total(k,m) = surf%rho_c_total_def(k,m)
                    lambda_temp(k)        = surf%lambda_h_def(k,m) 
@@ -3266,26 +4657,27 @@
              tend(:) = 0.0_wp
 
-             tend(nzb_soil) = ( 1.0_wp / surf%rho_c_total(nzb_soil,m) ) *      &
-                            ( surf%lambda_h(nzb_soil,m)                        &
-                            * ( surf_t_soil%var_2d(nzb_soil+1,m)               &
-                            - surf_t_soil%var_2d(nzb_soil,m) )                 &
-                            * ddz_soil_center(nzb_soil) + surf%ghf(m) )        &
-                            * ddz_soil(nzb_soil)
+             tend(nzb_soil) = ( 1.0_wp / surf%rho_c_total(nzb_soil,m) ) *            &
+                    ( surf%lambda_h(nzb_soil,m) * ( surf_t_soil%var_2d(nzb_soil+1,m) &
+                      - surf_t_soil%var_2d(nzb_soil,m) ) * ddz_soil_center(nzb_soil) &
+                      + surf%ghf(m) ) * ddz_soil(nzb_soil)
 
              DO  k = nzb_soil+1, nzt_soil
-                tend(k) = ( 1.0_wp / surf%rho_c_total(k,m) )                      &
-                        * (   surf%lambda_h(k,m)                                  &
-                        * ( surf_t_soil%var_2d(k+1,m) - surf_t_soil%var_2d(k,m) ) &
-                        * ddz_soil_center(k) - surf%lambda_h(k-1,m)               &
-                        * ( surf_t_soil%var_2d(k,m) - surf_t_soil%var_2d(k-1,m) ) &
-                        * ddz_soil_center(k-1) ) * ddz_soil(k)
+                tend(k) = ( 1.0_wp / surf%rho_c_total(k,m) )                   &
+                          * (   surf%lambda_h(k,m)                             &
+                     * ( surf_t_soil%var_2d(k+1,m) - surf_t_soil%var_2d(k,m) ) &
+                     * ddz_soil_center(k)                                      &
+                     - surf%lambda_h(k-1,m)                                    &
+                     * ( surf_t_soil%var_2d(k,m) - surf_t_soil%var_2d(k-1,m) ) &
+                     * ddz_soil_center(k-1)                                    &
+                            ) * ddz_soil(k)
 
              ENDDO
 
              surf_t_soil_p%var_2d(nzb_soil:nzt_soil,m) =                       &
-                                  surf_t_soil%var_2d(nzb_soil:nzt_soil,m)      &
-                                  + dt_3d * ( tsc(2)                           &
-                                  * tend(nzb_soil:nzt_soil) + tsc(3)           &
-                                  * surf_tt_soil_m%var_2d(nzb_soil:nzt_soil,m) )
+                                       surf_t_soil%var_2d(nzb_soil:nzt_soil,m) &
+                                               + dt_3d * ( tsc(2)              &
+                                               * tend(nzb_soil:nzt_soil)       & 
+                                               + tsc(3)                        &
+                                               * surf_tt_soil_m%var_2d(nzb_soil:nzt_soil,m) )
 
 !
@@ -3299,7 +4691,7 @@
                          intermediate_timestep_count_max )  THEN
                    DO  k = nzb_soil, nzt_soil
-                      surf_tt_soil_m%var_2d(k,m) = -9.5625_wp * tend(k)        &
-                                                   + 5.3125_wp                 &
-                                                   * surf_tt_soil_m%var_2d(k,m)
+                      surf_tt_soil_m%var_2d(k,m) = -9.5625_wp * tend(k) +      &
+                                                    5.3125_wp *                &
+                                                      surf_tt_soil_m%var_2d(k,m)
                    ENDDO
                 ENDIF
@@ -3312,11 +4704,11 @@
 !--             In order to prevent water tranport through paved surfaces, 
 !--             conductivity and diffusivity are set to zero
-                IF ( surf%pavement_surface(m)  .AND.  k <= nzt_pavement )  THEN
-
+                IF ( surf%pavement_surface(m)  .AND.                           &
+                     k <= surf%nzt_pavement(m) )  THEN
                    lambda_temp(k) = 0.0_wp
                    gamma_temp(k)  = 0.0_wp
-
+   
                 ELSE 
-
+    
 !
 !--                Calculate soil diffusivity at the center of the soil layers
@@ -3332,7 +4724,8 @@
                    h_vg = ( ( ( surf%m_res(k,m) - surf%m_sat(k,m) ) /          &
                               ( surf%m_res(k,m) -                              &
-                                MAX(surf_m_soil%var_2d(k,m), surf%m_wilt(k,m)) &
+                                MAX( surf_m_soil%var_2d(k,m), surf%m_wilt(k,m) )&
                               )                                                &
-                            )**( surf%n_vg(k,m) / ( surf%n_vg(k,m) - 1.0_wp )  &
+                            )**(                                               &
+                          surf%n_vg(k,m) / ( surf%n_vg(k,m) - 1.0_wp )         &
                                ) - 1.0_wp                                      &
                           )**( 1.0_wp / surf%n_vg(k,m) ) / surf%alpha_vg(k,m)
@@ -3340,9 +4733,13 @@
                    gamma_temp(k) = surf%gamma_w_sat(k,m) * ( ( ( 1.0_wp +      &
                           ( surf%alpha_vg(k,m) * h_vg )**surf%n_vg(k,m)        &
-                          )**( 1.0_wp - 1.0_wp / surf%n_vg(k,m) )              &
-                          - ( surf%alpha_vg(k,m) * h_vg )**( surf%n_vg(k,m)    &
-                          - 1.0_wp) )**2 ) / ( ( 1.0_wp + ( surf%alpha_vg(k,m) &
-                          * h_vg )**surf%n_vg(k,m) )**(( 1.0_wp  - 1.0_wp      &
-                              / surf%n_vg(k,m) ) * ( surf%l_vg(k,m) + 2.0_wp) ))
+                                                                  )**(         &
+                              1.0_wp - 1.0_wp / surf%n_vg(k,m)) - (            &
+                          surf%alpha_vg(k,m) * h_vg )**( surf%n_vg(k,m)        &
+                              - 1.0_wp) )**2 )                                 &
+                              / ( ( 1.0_wp + ( surf%alpha_vg(k,m) * h_vg       &
+                              )**surf%n_vg(k,m) )**( ( 1.0_wp  - 1.0_wp        &
+                              / surf%n_vg(k,m) ) *                             &
+                              ( surf%l_vg(k,m) + 2.0_wp) ) )
+
                 ENDIF
 
@@ -3381,5 +4778,7 @@
 !--             would cause accumulation of (non-existing) water in the lowest
 !--             soil layer
-                IF ( conserve_water_content .AND. surf_m_soil%var_2d(nzt_soil,m) /= 0.0_wp )  THEN
+                IF ( conserve_water_content .AND.                              &
+                     surf_m_soil%var_2d(nzt_soil,m) /= 0.0_wp )  THEN
+
                    surf%gamma_w(nzt_soil,m) = 0.0_wp
                 ELSE
@@ -3404,5 +4803,5 @@
                     IF ( surf_m_soil%var_2d(k,m) > surf%m_wilt(k,m) )  THEN
                        m_total = m_total + surf%root_fr(k,m)                   &
-                                 * surf_m_soil%var_2d(k,m)
+                                         * surf_m_soil%var_2d(k,m)
                     ENDIF
                 ENDDO  
@@ -3411,5 +4810,5 @@
                       IF ( surf_m_soil%var_2d(k,m) > surf%m_wilt(k,m) )  THEN
                          root_extr(k) = surf%root_fr(k,m)                      &
-                                        * surf_m_soil%var_2d(k,m) / m_total
+                                      * surf_m_soil%var_2d(k,m) / m_total
                       ELSE
                          root_extr(k) = 0.0_wp
@@ -3428,4 +4827,5 @@
                             + surf%qsws_soil(m) ) * drho_l_lv )                &
                             * ddz_soil(nzb_soil)
+
 
                 DO  k = nzb_soil+1, nzt_soil-1
@@ -3451,6 +4851,7 @@
                 surf_m_soil_p%var_2d(nzb_soil:nzt_soil,m) =                    &
                                        surf_m_soil%var_2d(nzb_soil:nzt_soil,m) &
-                                       + dt_3d * ( tsc(2) * tend(:)            &
-                                       + tsc(3) * surf_tm_soil_m%var_2d(:,m) )   
+                                         + dt_3d * ( tsc(2) * tend(:)          &
+                                         + tsc(3) * surf_tm_soil_m%var_2d(:,m) )   
+   
 !
 !--             Account for dry soils (find a better solution here!)
@@ -3473,4 +4874,5 @@
                                                     * surf_tm_soil_m%var_2d(k,m)
                       ENDDO
+
                    ENDIF
                 ENDIF
@@ -3526,4 +4928,5 @@
                 m_liq_h   => m_liq_h_1;     m_liq_h_p      => m_liq_h_2
              ENDIF
+
 !
 !--          Vertical surfaces
@@ -3533,4 +4936,5 @@
                 m_soil_v  => m_soil_v_1;    m_soil_v_p     => m_soil_v_2
                 m_liq_v   => m_liq_v_1;     m_liq_v_p      => m_liq_v_2
+
              ENDIF
 
@@ -3545,4 +4949,5 @@
                 m_soil_h  => m_soil_h_2;    m_soil_h_p     => m_soil_h_1
                 m_liq_h   => m_liq_h_2;     m_liq_h_p      => m_liq_h_1
+
              ENDIF
 !
@@ -3891,4 +5296,5 @@
                 ENDDO
              ENDDO
+
 !
 !-- 
@@ -4327,5 +5733,5 @@
 !> Write restart data for land surface model
 !------------------------------------------------------------------------------!
- SUBROUTINE lsm_last_actions
+ SUBROUTINE lsm_write_restart_data
  
 
@@ -4335,4 +5741,7 @@
 
     IMPLICIT NONE
+
+    CHARACTER (LEN=1) ::  dum    !< dummy to create correct string for creating variable string
+    INTEGER(iwp)      ::  l      !< index variable for surface orientation
 
     IF ( write_binary )  THEN
@@ -4352,9 +5761,7 @@
           WRITE ( 14 )  'lai_av              ';  WRITE ( 14 )  lai_av
        ENDIF
-       WRITE ( 14 )     'm_liq               ';  WRITE ( 14 )  m_liq_h%var_1d
        IF ( ALLOCATED( m_liq_av ) )  THEN
           WRITE ( 14 )  'm_liq_av            ';  WRITE ( 14 )  m_liq_av
        ENDIF
-       WRITE ( 14 )     'm_soil              ';  WRITE ( 14 )  m_soil_h%var_2d
        IF ( ALLOCATED( m_soil_av ) )  THEN
           WRITE ( 14 )  'm_soil_av           ';  WRITE ( 14 )  m_soil_av
@@ -4369,14 +5776,71 @@
           WRITE ( 14 )  'qsws_veg_av         ';  WRITE ( 14 )  qsws_veg_av
        ENDIF 
-       WRITE ( 14 )     't_soil              ';  WRITE ( 14 )  t_soil_h%var_2d
        IF ( ALLOCATED( t_soil_av ) )  THEN
           WRITE ( 14 )  't_soil_av           ';  WRITE ( 14 )  t_soil_av
        ENDIF
 
+
+       WRITE ( 14 ) 'ns_h_on_file_lsm    '
+       WRITE ( 14 ) surf_lsm_h%ns
+       WRITE ( 14 ) 'ns_v_on_file_lsm    '
+       WRITE ( 14 ) surf_lsm_v(0:3)%ns
+       
+       WRITE ( 14 ) 'lsm_start_index_h   '
+       WRITE ( 14 ) surf_lsm_h%start_index
+       WRITE ( 14 ) 'lsm_end_index_h     '
+       WRITE ( 14 ) surf_lsm_h%end_index
+       WRITE ( 14 ) 't_soil_h            '
+       WRITE ( 14 ) t_soil_h%var_2d
+       
+       DO  l = 0, 3
+          WRITE ( 14 ) 'lsm_start_index_v   '
+          WRITE ( 14 ) surf_lsm_v(l)%start_index
+          WRITE ( 14 ) 'lsm_end_index_v     '
+          WRITE ( 14 ) surf_lsm_v(l)%end_index
+          WRITE( dum, '(I1)')  l          
+          WRITE ( 14 ) 't_soil_v(' // dum // ')         ' 
+          WRITE ( 14 ) t_soil_v(l)%var_2d          
+       ENDDO
+
+       WRITE ( 14 ) 'lsm_start_index_h   '
+       WRITE ( 14 ) surf_lsm_h%start_index
+       WRITE ( 14 ) 'lsm_end_index_h     '
+       WRITE ( 14 ) surf_lsm_h%end_index
+       WRITE ( 14 ) 'm_soil_h            '
+       WRITE ( 14 ) m_soil_h%var_2d
+       
+       DO  l = 0, 3
+          WRITE ( 14 ) 'lsm_start_index_v   '
+          WRITE ( 14 ) surf_lsm_v(l)%start_index
+          WRITE ( 14 ) 'lsm_end_index_v     '
+          WRITE ( 14 ) surf_lsm_v(l)%end_index
+          WRITE( dum, '(I1)')  l          
+          WRITE ( 14 ) 'm_soil_v(' // dum // ')         ' 
+          WRITE ( 14 ) m_soil_v(l)%var_2d          
+       ENDDO
+
+
+       WRITE ( 14 ) 'lsm_start_index_h   '
+       WRITE ( 14 ) surf_lsm_h%start_index
+       WRITE ( 14 ) 'lsm_end_index_h     '
+       WRITE ( 14 ) surf_lsm_h%end_index
+       WRITE ( 14 ) 'm_liq_h             '
+       WRITE ( 14 ) m_liq_h%var_1d
+       
+       DO  l = 0, 3
+          WRITE ( 14 ) 'lsm_start_index_v   '
+          WRITE ( 14 ) surf_lsm_v(l)%start_index
+          WRITE ( 14 ) 'lsm_end_index_v     '
+          WRITE ( 14 ) surf_lsm_v(l)%end_index
+          WRITE( dum, '(I1)')  l          
+          WRITE ( 14 ) 'm_liq_v(' // dum // ')          ' 
+          WRITE ( 14 ) m_liq_v(l)%var_1d          
+       ENDDO
+
        WRITE ( 14 )  '*** end lsm ***     '
 
     ENDIF
 
- END SUBROUTINE lsm_last_actions
+ END SUBROUTINE lsm_write_restart_data
 
 
@@ -4399,19 +5863,23 @@
     CHARACTER (LEN=20) :: field_char   !< 
 
-    INTEGER(iwp) ::  i               !< 
-    INTEGER(iwp) ::  k               !< 
-    INTEGER(iwp) ::  nxlc            !< 
-    INTEGER(iwp) ::  nxlf            !< 
-    INTEGER(iwp) ::  nxl_on_file     !< 
-    INTEGER(iwp) ::  nxrc            !< 
-    INTEGER(iwp) ::  nxrf            !< 
-    INTEGER(iwp) ::  nxr_on_file     !< 
-    INTEGER(iwp) ::  nync            !< 
-    INTEGER(iwp) ::  nynf            !< 
-    INTEGER(iwp) ::  nyn_on_file     !< 
-    INTEGER(iwp) ::  nysc            !< 
-    INTEGER(iwp) ::  nysf            !< 
-    INTEGER(iwp) ::  nys_on_file     !< 
-    INTEGER(iwp) ::  overlap_count   !< 
+    INTEGER(iwp) ::  i                 !< 
+    INTEGER(iwp) ::  k                 !< 
+    INTEGER(iwp) ::  l                 !< running index surface orientation
+    INTEGER(iwp) ::  ns_h_on_file_lsm  !< number of horizontal surface elements (natural type) on file
+    INTEGER(iwp) ::  nxlc              !< 
+    INTEGER(iwp) ::  nxlf              !< 
+    INTEGER(iwp) ::  nxl_on_file       !< 
+    INTEGER(iwp) ::  nxrc              !< 
+    INTEGER(iwp) ::  nxrf              !< 
+    INTEGER(iwp) ::  nxr_on_file       !< 
+    INTEGER(iwp) ::  nync              !< 
+    INTEGER(iwp) ::  nynf              !< 
+    INTEGER(iwp) ::  nyn_on_file       !< 
+    INTEGER(iwp) ::  nysc              !< 
+    INTEGER(iwp) ::  nysf              !< 
+    INTEGER(iwp) ::  nys_on_file       !< 
+    INTEGER(iwp) ::  overlap_count     !< 
+
+    INTEGER(iwp) ::  ns_v_on_file_lsm(0:3) !< number of vertical surface elements (natural type) on file
 
     INTEGER(iwp), DIMENSION(numprocs_previous_run,1000) ::  nxlfa       !< 
@@ -4422,4 +5890,7 @@
     INTEGER(iwp), DIMENSION(numprocs_previous_run,1000) ::  offset_ya   !< 
 
+    INTEGER(iwp), DIMENSION(nys_on_file:nyn_on_file,nxl_on_file:nxr_on_file) ::  start_index_on_file
+    INTEGER(iwp), DIMENSION(nys_on_file:nyn_on_file,nxl_on_file:nxr_on_file) ::  end_index_on_file
+
     REAL(wp),                                                                  &
        DIMENSION(nys_on_file-nbgp:nyn_on_file+nbgp,nxl_on_file-nbgp:nxr_on_file+nbgp) :: &
@@ -4434,18 +5905,42 @@
           tmp_3d2   !< 
 
-    REAL(wp),                                                                  &
-       DIMENSION(1:surf_lsm_h%ns) ::                                           &
-          tmp_walltype_1d   !< 
-
-    REAL(wp),                                                                  &
-       DIMENSION(nzb_soil:nzt_soil+1,1:surf_lsm_h%ns) ::                       &
-          tmp_walltype_2d   !< 
-
-    REAL(wp),                                                                  &
-       DIMENSION(nzb_soil:nzt_soil,1:surf_lsm_h%ns) ::                         &
-          tmp_walltype_2d2  !< 
-
+    TYPE(surf_type_lsm) :: tmp_walltype_h_1d   !< temporary 1D array containing the respective surface variable stored on file, horizontal surfaces
+    TYPE(surf_type_lsm) :: tmp_walltype_h_2d   !< temporary 2D array containing the respective surface variable stored on file, horizontal surfaces
+    TYPE(surf_type_lsm) :: tmp_walltype_h_2d2  !< temporary 2D array containing the respective surface variable stored on file, horizontal surfaces 
+
+    TYPE(surf_type_lsm), DIMENSION(0:3) :: tmp_walltype_v_1d   !< temporary 1D array containing the respective surface variable stored on file, vertical surfaces 
+    TYPE(surf_type_lsm), DIMENSION(0:3) :: tmp_walltype_v_2d   !< temporary 2D array containing the respective surface variable stored on file, vertical surfaces 
+    TYPE(surf_type_lsm), DIMENSION(0:3) :: tmp_walltype_v_2d2  !< temporary 2D array containing the respective surface variable stored on file, vertical surfaces
 
    IF ( initializing_actions == 'read_restart_data' )  THEN
+      READ ( 13 )  field_char
+
+!
+!--   At first, determine the number of surface elements (with certain orientation) on file
+      IF ( TRIM( field_char ) /= 'ns_h_on_file_lsm' )  THEN
+!
+!--      Add a proper error message
+      ENDIF
+      READ ( 13 ) ns_h_on_file_lsm
+
+      READ ( 13 )  field_char
+      IF ( TRIM( field_char ) /= 'ns_v_on_file_lsm' )  THEN
+!
+!--      Add a proper error message
+      ENDIF
+      READ ( 13 ) ns_v_on_file_lsm
+
+!
+!--   Allocate temporary arrays to store surface data
+      ALLOCATE( tmp_walltype_h_1d%var_1d(1:ns_h_on_file_lsm)                     )
+      ALLOCATE( tmp_walltype_h_2d%var_2d(nzb_soil:nzt_soil+1,1:ns_h_on_file_lsm) )
+      ALLOCATE( tmp_walltype_h_2d2%var_2d(nzb_soil:nzt_soil,1:ns_h_on_file_lsm)  )
+
+      DO  l = 0, 3
+         ALLOCATE( tmp_walltype_v_1d(l)%var_1d(1:ns_v_on_file_lsm(l))                     )
+         ALLOCATE( tmp_walltype_v_2d(l)%var_2d(nzb_soil:nzt_soil+1,1:ns_v_on_file_lsm(l)) )
+         ALLOCATE( tmp_walltype_v_2d2(l)%var_2d(nzb_soil:nzt_soil,1:ns_v_on_file_lsm(l))  )
+      ENDDO
+     
       READ ( 13 )  field_char
 
@@ -4463,4 +5958,5 @@
             nync = nynfa(i,k) + offset_ya(i,k)
 
+
             SELECT CASE ( TRIM( field_char ) )
 
@@ -4495,11 +5991,6 @@
                    ENDIF
                    IF ( k == 1 )  READ ( 13 )  tmp_2d
-                   ghf_av(nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) =        &
+                   ghf_av(nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) =           &
                                   tmp_2d(nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
-
-                CASE ( 'm_liq' )
-                   IF ( k == 1 )  READ ( 13 )  tmp_walltype_1d !tmp_2d
-                   m_liq_h%var_1d(1:surf_lsm_h%ns)  =                       &
-                                 tmp_walltype_1d(1:surf_lsm_h%ns)
 
                 CASE ( 'lai_av' )
@@ -4518,9 +6009,4 @@
                    m_liq_av(nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) =         &
                                   tmp_2d(nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
-
-                CASE ( 'm_soil' )
-                   IF ( k == 1 )  READ ( 13 )  tmp_walltype_2d2(:,:)
-                   m_soil_h%var_2d(:,1:surf_lsm_h%ns) =                        &
-                          tmp_walltype_2d2(:,1:surf_lsm_h%ns)   
 
                 CASE ( 'm_soil_av' )
@@ -4556,9 +6042,4 @@
                                           tmp_2d(nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
 
-                CASE ( 't_soil' )
-                   IF ( k == 1 )  READ ( 13 )  tmp_walltype_2d(:,:)
-                   t_soil_h%var_2d(:,1:surf_lsm_h%ns) =                        &
-                         tmp_walltype_2d(:,1:surf_lsm_h%ns)      
-
                 CASE ( 't_soil_av' )
                    IF ( .NOT. ALLOCATED( t_soil_av ) )  THEN
@@ -4569,4 +6050,288 @@
                                     tmp_3d2(:,nysf-nbgp:nynf+nbgp,             &
                                     nxlf-nbgp:nxrf+nbgp)
+
+                CASE ( 'lsm_start_index_h', 'lsm_start_index_v'  )   
+                   IF ( k == 1 )                                               &
+                      READ ( 13 )  start_index_on_file
+                      
+                CASE ( 'lsm_end_index_h', 'lsm_end_index_v' )   
+                   IF ( k == 1 )                                               &
+                      READ ( 13 )  end_index_on_file
+                
+                CASE ( 't_soil_h' )
+                 
+                   IF ( k == 1 )  THEN
+                      IF ( .NOT.  ALLOCATED( t_soil_h%var_2d ) )               &
+                         ALLOCATE( t_soil_h%var_2d(nzb_soil:nzt_soil+1,1:surf_lsm_h%ns) )
+                      READ ( 13 )  tmp_walltype_h_2d%var_2d
+                   ENDIF
+                   CALL surface_restore_elements(                              &
+                                              t_soil_h%var_2d,                 &
+                                              tmp_walltype_h_2d%var_2d,        &
+                                              surf_lsm_h%start_index,          & 
+                                              start_index_on_file,             &
+                                              end_index_on_file,               &
+                                              nxlc, nysc,                      &
+                                              nxlf, nxrf, nysf, nynf,          &
+                                              nys_on_file, nyn_on_file,        &
+                                              nxl_on_file,nxr_on_file )
+
+                CASE ( 't_soil_v(0)' )
+                 
+                   IF ( k == 1 )  THEN
+                      IF ( .NOT.  ALLOCATED( t_soil_v(0)%var_2d ) )            &
+                         ALLOCATE( t_soil_v(0)%var_2d(nzb_soil:nzt_soil+1,1:surf_lsm_v(0)%ns) )
+                      READ ( 13 )  tmp_walltype_v_2d(0)%var_2d
+                   ENDIF
+                   CALL surface_restore_elements(                              &
+                                           t_soil_v(0)%var_2d,                 &
+                                           tmp_walltype_v_2d(0)%var_2d,        &
+                                           surf_lsm_v(0)%start_index,          & 
+                                           start_index_on_file,                &
+                                           end_index_on_file,                  &
+                                           nxlc, nysc,                         &
+                                           nxlf, nxrf, nysf, nynf,             &
+                                           nys_on_file, nyn_on_file,           &
+                                           nxl_on_file,nxr_on_file )
+
+                CASE ( 't_soil_v(1)' )
+                 
+                   IF ( k == 1 )  THEN
+                      IF ( .NOT.  ALLOCATED( t_soil_v(1)%var_2d ) )            &
+                         ALLOCATE( t_soil_v(1)%var_2d(nzb_soil:nzt_soil+1,1:surf_lsm_v(1)%ns) )
+                      READ ( 13 )  tmp_walltype_v_2d(1)%var_2d
+                   ENDIF
+                   CALL surface_restore_elements(                              &
+                                           t_soil_v(1)%var_2d,                 &
+                                           tmp_walltype_v_2d(1)%var_2d,        &
+                                           surf_lsm_v(1)%start_index,          & 
+                                           start_index_on_file,                &
+                                           end_index_on_file,                  &
+                                           nxlc, nysc,                         &
+                                           nxlf, nxrf, nysf, nynf,             &
+                                           nys_on_file, nyn_on_file,           &
+                                           nxl_on_file,nxr_on_file )
+
+                CASE ( 't_soil_v(2)' )
+                 
+                   IF ( k == 1 )  THEN
+                      IF ( .NOT.  ALLOCATED( t_soil_v(2)%var_2d ) )            &
+                         ALLOCATE( t_soil_v(2)%var_2d(nzb_soil:nzt_soil+1,1:surf_lsm_v(2)%ns) )
+                      READ ( 13 )  tmp_walltype_v_2d(2)%var_2d
+                   ENDIF
+                   CALL surface_restore_elements(                              &
+                                           t_soil_v(2)%var_2d,                 &
+                                           tmp_walltype_v_2d(2)%var_2d,        &
+                                           surf_lsm_v(2)%start_index,          & 
+                                           start_index_on_file,                &
+                                           end_index_on_file,                  &
+                                           nxlc, nysc,                         &
+                                           nxlf, nxrf, nysf, nynf,             &
+                                           nys_on_file, nyn_on_file,           &
+                                           nxl_on_file,nxr_on_file )
+
+                CASE ( 't_soil_v(3)' )
+                 
+                   IF ( k == 1 )  THEN
+                      IF ( .NOT.  ALLOCATED( t_soil_v(3)%var_2d ) )            &
+                         ALLOCATE( t_soil_v(1)%var_2d(nzb_soil:nzt_soil+1,1:surf_lsm_v(3)%ns) )
+                      READ ( 13 )  tmp_walltype_v_2d(3)%var_2d
+                   ENDIF
+                   CALL surface_restore_elements(                              &
+                                           t_soil_v(3)%var_2d,                 &
+                                           tmp_walltype_v_2d(3)%var_2d,        &
+                                           surf_lsm_v(3)%start_index,          & 
+                                           start_index_on_file,                &
+                                           end_index_on_file,                  &
+                                           nxlc, nysc,                         &
+                                           nxlf, nxrf, nysf, nynf,             &
+                                           nys_on_file, nyn_on_file,           &
+                                           nxl_on_file,nxr_on_file )
+
+                CASE ( 'm_soil_h' )
+                 
+                   IF ( k == 1 )  THEN
+                      IF ( .NOT.  ALLOCATED( m_soil_h%var_2d ) )               &
+                         ALLOCATE( m_soil_h%var_2d(nzb_soil:nzt_soil+1,1:surf_lsm_h%ns) )
+                      READ ( 13 )  tmp_walltype_h_2d2%var_2d
+                   ENDIF
+                   CALL surface_restore_elements(                              &
+                                             m_soil_h%var_2d,                  &
+                                             tmp_walltype_h_2d2%var_2d,        &
+                                             surf_lsm_h%start_index,           & 
+                                             start_index_on_file,              &
+                                             end_index_on_file,                &
+                                             nxlc, nysc,                       &
+                                             nxlf, nxrf, nysf, nynf,           &
+                                             nys_on_file, nyn_on_file,         &
+                                             nxl_on_file,nxr_on_file )
+
+                CASE ( 'm_soil_v(0)' )
+                 
+                   IF ( k == 1 )  THEN
+                      IF ( .NOT.  ALLOCATED( m_soil_v(0)%var_2d ) )            &
+                         ALLOCATE( m_soil_v(0)%var_2d(nzb_soil:nzt_soil+1,1:surf_lsm_v(0)%ns) )
+                      READ ( 13 )  tmp_walltype_v_2d2(0)%var_2d
+                   ENDIF
+                   CALL surface_restore_elements(                              &
+                                          m_soil_v(0)%var_2d,                  & 
+                                          tmp_walltype_v_2d2(0)%var_2d,        &
+                                          surf_lsm_v(0)%start_index,           & 
+                                          start_index_on_file,                 &
+                                          end_index_on_file,                   &
+                                          nxlc, nysc,                          &
+                                          nxlf, nxrf, nysf, nynf,              &
+                                          nys_on_file, nyn_on_file,            &
+                                          nxl_on_file,nxr_on_file )
+
+                CASE ( 'm_soil_v(1)' )
+                 
+                   IF ( k == 1 )  THEN
+                      IF ( .NOT.  ALLOCATED( m_soil_v(1)%var_2d ) )            &
+                         ALLOCATE( m_soil_v(1)%var_2d(nzb_soil:nzt_soil+1,1:surf_lsm_v(1)%ns) )
+                      READ ( 13 )  tmp_walltype_v_2d2(1)%var_2d
+                   ENDIF
+                   CALL surface_restore_elements(                              &
+                                          m_soil_v(1)%var_2d,                  & 
+                                          tmp_walltype_v_2d2(1)%var_2d,        &
+                                          surf_lsm_v(1)%start_index,           & 
+                                          start_index_on_file,                 &
+                                          end_index_on_file,                   &
+                                          nxlc, nysc,                          &
+                                          nxlf, nxrf, nysf, nynf,              &
+                                          nys_on_file, nyn_on_file,            &
+                                          nxl_on_file,nxr_on_file )
+
+
+                CASE ( 'm_soil_v(2)' )
+                 
+                   IF ( k == 1 )  THEN
+                      IF ( .NOT.  ALLOCATED( m_soil_v(2)%var_2d ) )            &
+                         ALLOCATE( m_soil_v(2)%var_2d(nzb_soil:nzt_soil+1,1:surf_lsm_v(2)%ns) )
+                      READ ( 13 )  tmp_walltype_v_2d2(2)%var_2d
+                   ENDIF
+                   CALL surface_restore_elements(                              &
+                                          m_soil_v(2)%var_2d,                  & 
+                                          tmp_walltype_v_2d2(2)%var_2d,        &
+                                          surf_lsm_v(2)%start_index,           & 
+                                          start_index_on_file,                 &
+                                          end_index_on_file,                   &
+                                          nxlc, nysc,                          &
+                                          nxlf, nxrf, nysf, nynf,              &
+                                          nys_on_file, nyn_on_file,            &
+                                          nxl_on_file,nxr_on_file )
+
+
+                CASE ( 'm_soil_v(3)' )
+                 
+                   IF ( k == 1 )  THEN
+                      IF ( .NOT.  ALLOCATED( m_soil_v(3)%var_2d ) )            &
+                         ALLOCATE( m_soil_v(1)%var_2d(nzb_soil:nzt_soil+1,1:surf_lsm_v(3)%ns) )
+                      READ ( 13 )  tmp_walltype_v_2d2(3)%var_2d
+                   ENDIF
+                   CALL surface_restore_elements(                              &
+                                          m_soil_v(3)%var_2d,                  & 
+                                          tmp_walltype_v_2d2(3)%var_2d,        &
+                                          surf_lsm_v(3)%start_index,           & 
+                                          start_index_on_file,                 &
+                                          end_index_on_file,                   &
+                                          nxlc, nysc,                          &
+                                          nxlf, nxrf, nysf, nynf,              &
+                                          nys_on_file, nyn_on_file,            &
+                                          nxl_on_file,nxr_on_file )
+
+
+                CASE ( 'm_liq_h' )
+                 
+                   IF ( k == 1 )  THEN
+                      IF ( .NOT.  ALLOCATED( m_liq_h%var_1d ) )                &
+                         ALLOCATE( m_liq_h%var_1d(1:surf_lsm_h%ns) )
+                      READ ( 13 )  tmp_walltype_h_1d%var_1d
+                   ENDIF
+                   CALL surface_restore_elements(                              &
+                                              m_liq_h%var_1d,                  &
+                                              tmp_walltype_h_1d%var_1d,        &
+                                              surf_lsm_h%start_index,          & 
+                                              start_index_on_file,             &
+                                              end_index_on_file,               &
+                                              nxlc, nysc,                      &
+                                              nxlf, nxrf, nysf, nynf,          &
+                                              nys_on_file, nyn_on_file,        &
+                                              nxl_on_file,nxr_on_file )
+
+
+                CASE ( 'm_liq_v(0)' )
+                 
+                   IF ( k == 1 )  THEN
+                      IF ( .NOT.  ALLOCATED( m_liq_v(0)%var_1d ) )             &
+                         ALLOCATE( m_liq_v(0)%var_1d(1:surf_lsm_v(0)%ns) )
+                      READ ( 13 )  tmp_walltype_v_1d(0)%var_1d
+                   ENDIF
+                   CALL surface_restore_elements(                              &
+                                           m_liq_v(0)%var_1d,                  &
+                                           tmp_walltype_v_1d(0)%var_1d,        &
+                                           surf_lsm_v(0)%start_index,          & 
+                                           start_index_on_file,                &
+                                           end_index_on_file,                  &
+                                           nxlc, nysc,                         &
+                                           nxlf, nxrf, nysf, nynf,             &
+                                           nys_on_file, nyn_on_file,           &
+                                           nxl_on_file,nxr_on_file )
+
+
+                CASE ( 'm_liq_v(1)' )
+                 
+                   IF ( k == 1 )  THEN
+                      IF ( .NOT.  ALLOCATED( m_liq_v(1)%var_1d ) )             &
+                         ALLOCATE( m_liq_v(1)%var_1d(1:surf_lsm_v(1)%ns) )
+                      READ ( 13 )  tmp_walltype_v_1d(1)%var_1d
+                   ENDIF
+                   CALL surface_restore_elements(                              &
+                                           m_liq_v(1)%var_1d,                  &
+                                           tmp_walltype_v_1d(1)%var_1d,        &
+                                           surf_lsm_v(1)%start_index,          & 
+                                           start_index_on_file,                &
+                                           end_index_on_file,                  &
+                                           nxlc, nysc,                         &
+                                           nxlf, nxrf, nysf, nynf,             &
+                                           nys_on_file, nyn_on_file,           &
+                                           nxl_on_file,nxr_on_file )
+
+
+                CASE ( 'm_liq_v(2)' )
+                 
+                   IF ( k == 1 )  THEN
+                      IF ( .NOT.  ALLOCATED( m_liq_v(2)%var_1d ) )             &
+                         ALLOCATE( m_liq_v(2)%var_1d(1:surf_lsm_v(2)%ns) )
+                      READ ( 13 )  tmp_walltype_v_1d(2)%var_1d
+                   ENDIF
+                   CALL surface_restore_elements(                              &
+                                           m_liq_v(2)%var_1d,                  &
+                                           tmp_walltype_v_1d(2)%var_1d,        &
+                                           surf_lsm_v(2)%start_index,          & 
+                                           start_index_on_file,                &
+                                           end_index_on_file,                  &
+                                           nxlc, nysc,                         &
+                                           nxlf, nxrf, nysf, nynf,             &
+                                           nys_on_file, nyn_on_file,           &
+                                           nxl_on_file,nxr_on_file )
+
+                CASE ( 'm_liq_v(3)' )
+                 
+                   IF ( k == 1 )  THEN
+                      IF ( .NOT.  ALLOCATED( m_liq_v(3)%var_1d ) )             &
+                         ALLOCATE( m_liq_v(3)%var_1d(1:surf_lsm_v(3)%ns) )
+                      READ ( 13 )  tmp_walltype_v_1d(3)%var_1d
+                   ENDIF
+                   CALL surface_restore_elements(                              &
+                                           m_liq_v(3)%var_1d,                  &
+                                           tmp_walltype_v_1d(3)%var_1d,        &
+                                           surf_lsm_v(3)%start_index,          & 
+                                           start_index_on_file,                &
+                                           end_index_on_file,                  &
+                                           nxlc, nysc,                         &
+                                           nxlf, nxrf, nysf, nynf,             &
+                                           nys_on_file, nyn_on_file,           &
+                                           nxl_on_file,nxr_on_file )
 
 
@@ -4645,5 +6410,5 @@
 !--          Charnock relation is used.
              surf_lsm_h%z0(m)  = ( 0.11_wp * molecular_viscosity /             &
-                                 surf_lsm_h%us(m) )  &
+                                 surf_lsm_h%us(m) )                            &
                                + ( alpha_ch * surf_lsm_h%us(m)**2 / g )
 
Index: palm/trunk/SOURCE/large_scale_forcing_nudging_mod.f90
===================================================================
--- palm/trunk/SOURCE/large_scale_forcing_nudging_mod.f90	(revision 2693)
+++ palm/trunk/SOURCE/large_scale_forcing_nudging_mod.f90	(revision 2696)
@@ -1,5 +1,5 @@
-!> @file lsf_nudging_mod.f90
-!------------------------------------------------------------------------------!
-! This file is part of PALM.
+!> @file large_scale_forcing_nudging_mod.f90
+!------------------------------------------------------------------------------!
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
@@ -25,4 +25,7 @@
 ! -----------------
 ! $Id$
+! Forcing with larger-scale models implemented (MS)
+! 
+! 2342 2017-08-08 11:00:43Z boeske
 ! fixed check if surface forcing data is available until end of simulation
 ! 
@@ -46,19 +49,25 @@
 
     USE arrays_3d,                                                             &
-        ONLY:  heatflux_input_conversion, pt, pt_init, q, q_init, tend,        &
-               u, u_init, ug, v, v_init, vg, w_subs,                           &
-               waterflux_input_conversion, zu                  
+        ONLY:  dzw, e, heatflux_input_conversion, pt, pt_init, q, q_init, s,   &
+               tend, u, u_init, ug, v, v_init, vg, w, w_subs,                  &
+               waterflux_input_conversion, zu, zw                  
 
     USE control_parameters,                                                    &
-        ONLY:  bc_lr, bc_ns, bc_pt_b, bc_q_b, data_output_pr, dt_3d, end_time, &  
+        ONLY:  bc_lr, bc_ns, bc_pt_b, bc_q_b, constant_diffusion,              &
+               data_output_pr, dt_3d, end_time, forcing,                       &
+               force_bound_l, force_bound_n, force_bound_r, force_bound_s,     &  
                humidity, intermediate_timestep_count, ibc_pt_b, ibc_q_b,       &
                large_scale_forcing, large_scale_subsidence, lsf_surf, lsf_vert,&
-               lsf_exception, message_string, nudging, passive_scalar,         &
+               lsf_exception, message_string, neutral, nudging, passive_scalar,&
                pt_surface, ocean, q_surface, surface_pressure, topography,     &
                use_subsidence_tendencies
 
+    USE grid_variables
+
+    USE pegrid
 
     USE indices,                                                               &
-        ONLY:  ngp_sums_ls, nxl, nxr, nys, nyn, nzb, nz, nzt, wall_flags_0
+        ONLY:  nbgp, ngp_sums_ls, nx, nxl, nxlg, nxlu, nxr, nxrg, ny, nys,     &
+               nysv, nysg, nyn, nyng, nzb, nz, nzt, wall_flags_0
 
     USE kinds
@@ -70,7 +79,11 @@
         ONLY:  hom, statistic_regions, sums_ls_l, weight_substep
 
+    USE netcdf_data_input_mod,                                                 &
+        ONLY:  force, netcdf_data_input_interpolate
 
     INTEGER(iwp) ::  nlsf = 1000                       !< maximum number of profiles in LSF_DATA (large scale forcing)
     INTEGER(iwp) ::  ntnudge = 1000                    !< maximum number of profiles in NUDGING_DATA (nudging)
+
+    REAL(wp) ::  d_area_t
 
     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  ptnudge     !< vertical profile of pot. temperature interpolated to vertical grid (nudging)
@@ -107,9 +120,11 @@
            lsf_nudging_check_parameters, nudge_init,                           &
            lsf_nudging_check_data_output_pr, lsf_nudging_header,               &
-           calc_tnudge, nudge, nudge_ref
+           calc_tnudge, nudge, nudge_ref, forcing_bc_mass_conservation,        &
+           forcing_bc
 !
 !-- Public variables
     PUBLIC qsws_surf, shf_surf, td_lsa_lpt, td_lsa_q, td_sub_lpt,              &
-           td_sub_q, time_vert
+           td_sub_q, time_vert, force
+
 
     INTERFACE ls_advec
@@ -125,4 +140,523 @@
  CONTAINS
 
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> @todo Missing subroutine description.
+!------------------------------------------------------------------------------!
+    SUBROUTINE forcing_bc_mass_conservation
+
+       USE control_parameters,                                                 &
+           ONLY:  volume_flow
+
+       IMPLICIT NONE
+
+       INTEGER(iwp) ::  i !<
+       INTEGER(iwp) ::  j !<
+       INTEGER(iwp) ::  k !<
+
+       REAL(wp) ::  w_correct !< 
+       REAL(wp), DIMENSION(1:3) ::  volume_flow_l   !<
+
+       volume_flow   = 0.0_wp
+       volume_flow_l = 0.0_wp
+
+       d_area_t = 1.0_wp / ( ( nx + 1 ) * dx * ( ny + 1 ) * dy )
+
+       IF ( force_bound_l )  THEN
+          i = nxl
+          DO  j = nys, nyn
+             DO  k = nzb+1, nzt
+                volume_flow_l(1) = volume_flow_l(1) + u(k,j,i) * dzw(k) * dy   &
+                                     * MERGE( 1.0_wp, 0.0_wp,                  &
+                                              BTEST( wall_flags_0(k,j,i), 1 ) )
+             ENDDO
+          ENDDO
+       ENDIF
+       IF ( force_bound_r )  THEN
+          i = nxr+1
+          DO  j = nys, nyn
+             DO  k = nzb+1, nzt
+                volume_flow_l(1) = volume_flow_l(1) - u(k,j,i) * dzw(k) * dy   &
+                                     * MERGE( 1.0_wp, 0.0_wp,                  &
+                                              BTEST( wall_flags_0(k,j,i), 1 ) )
+             ENDDO
+          ENDDO
+       ENDIF
+       IF ( force_bound_s )  THEN
+          j = nys
+          DO  i = nxl, nxr
+             DO  k = nzb+1, nzt
+                volume_flow_l(2) = volume_flow_l(2) + v(k,j,i) * dzw(k) * dx   &
+                                     * MERGE( 1.0_wp, 0.0_wp,                  &
+                                              BTEST( wall_flags_0(k,j,i), 2 ) )
+             ENDDO
+          ENDDO
+       ENDIF
+       IF ( force_bound_n )  THEN
+          j = nyn+1
+          DO  i = nxl, nxr
+             DO  k = nzb+1, nzt
+                volume_flow_l(2) = volume_flow_l(2) - v(k,j,i) * dzw(k) * dx   &
+                                     * MERGE( 1.0_wp, 0.0_wp,                  &
+                                              BTEST( wall_flags_0(k,j,i), 2 ) )
+             ENDDO
+          ENDDO
+       ENDIF
+!
+!--       Top boundary
+       k = nzt
+       DO  i = nxl, nxr
+          DO  j = nys, nyn
+             volume_flow_l(3) = volume_flow_l(3) - w(k,j,i) * dx * dy
+          ENDDO
+       ENDDO
+
+#if defined( __parallel )
+       IF ( collective_wait )  CALL MPI_BARRIER( comm2d, ierr )
+       CALL MPI_ALLREDUCE( volume_flow_l, volume_flow, 3, MPI_REAL, MPI_SUM,      &
+                           comm2d, ierr )
+#else
+       volume_flow = volume_flow_l
+#endif
+
+       w_correct = SUM( volume_flow ) * d_area_t
+
+       DO  i = nxl, nxr
+          DO  j = nys, nyn
+             DO  k = nzt, nzt + 1
+                w(k,j,i) = w(k,j,i) + w_correct
+             ENDDO
+          ENDDO
+       ENDDO
+
+    END SUBROUTINE forcing_bc_mass_conservation
+
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> @todo Missing subroutine description.
+!------------------------------------------------------------------------------!
+    SUBROUTINE forcing_bc
+
+       USE control_parameters,                                                 &
+           ONLY:  force_bound_l, force_bound_n, force_bound_r, force_bound_s,  &
+                  humidity, neutral, passive_scalar, simulated_time
+
+       USE netcdf_data_input_mod,                                              &
+           ONLY:  force                              
+
+       IMPLICIT NONE
+
+       INTEGER(iwp) ::  i !< running index x-direction
+       INTEGER(iwp) ::  j !< running index y-direction
+       INTEGER(iwp) ::  k !< running index z-direction
+       INTEGER(iwp) ::  t !< running index for time levels
+
+       REAL(wp) ::  ddt_lsf !< inverse value of time resolution of forcing data
+       REAL(wp) ::  t_ref   !< time past since last reference step
+
+!
+!--    If required, interpolate and/or extrapolate data vertically. This is 
+!--    required as Inifor outputs only equidistant vertical data.
+       IF ( ANY( zu(1:nzt+1) /= force%zu_atmos(1:force%nzu) ) )  THEN
+          IF ( .NOT. force%interpolated )  THEN
+
+             DO  t = 0, 1
+                IF ( force_bound_l )  THEN
+                   CALL netcdf_data_input_interpolate( force%u_left(t,:,:),    &
+                                                       zu(nzb+1:nzt+1),        &
+                                                       force%zu_atmos )
+                   CALL netcdf_data_input_interpolate( force%v_left(t,:,:),    &
+                                                       zu(nzb+1:nzt+1),        &
+                                                       force%zu_atmos )
+                   CALL netcdf_data_input_interpolate( force%w_left(t,:,:),    &
+                                                       zw(nzb+1:nzt+1),        &
+                                                       force%zw_atmos )
+                   IF ( .NOT. neutral )                                        &
+                      CALL netcdf_data_input_interpolate( force%pt_left(t,:,:),&
+                                                          zu(nzb+1:nzt+1),     &
+                                                          force%zu_atmos )
+                   IF ( humidity )                                             &
+                      CALL netcdf_data_input_interpolate( force%q_left(t,:,:), &
+                                                          zu(nzb+1:nzt+1),     &
+                                                          force%zu_atmos )
+                ENDIF
+                IF ( force_bound_r )  THEN
+                   CALL netcdf_data_input_interpolate( force%u_right(t,:,:),   &
+                                                       zu(nzb+1:nzt+1),        &
+                                                       force%zu_atmos )
+                   CALL netcdf_data_input_interpolate( force%v_right(t,:,:),   &
+                                                       zu(nzb+1:nzt+1),        &
+                                                       force%zu_atmos )
+                   CALL netcdf_data_input_interpolate( force%w_right(t,:,:),   &
+                                                       zw(nzb+1:nzt+1),        &
+                                                       force%zw_atmos )
+                   IF ( .NOT. neutral )                                        &
+                      CALL netcdf_data_input_interpolate( force%pt_right(t,:,:),&
+                                                          zu(nzb+1:nzt+1),     &
+                                                          force%zu_atmos )
+                   IF ( humidity )                                             &
+                      CALL netcdf_data_input_interpolate( force%q_right(t,:,:),&
+                                                          zu(nzb+1:nzt+1),     &
+                                                          force%zu_atmos )
+                ENDIF
+                IF ( force_bound_n )  THEN
+                   CALL netcdf_data_input_interpolate( force%u_north(t,:,:),   &
+                                                       zu(nzb+1:nzt+1),        &
+                                                       force%zu_atmos )
+                   CALL netcdf_data_input_interpolate( force%v_north(t,:,:),   &
+                                                       zu(nzb+1:nzt+1),        &
+                                                       force%zu_atmos )
+                   CALL netcdf_data_input_interpolate( force%w_north(t,:,:),   &
+                                                       zw(nzb+1:nzt+1),        &
+                                                       force%zw_atmos )
+                   IF ( .NOT. neutral )                                        &
+                      CALL netcdf_data_input_interpolate( force%pt_north(t,:,:),&
+                                                          zu(nzb+1:nzt+1),     &
+                                                          force%zu_atmos )
+                   IF ( humidity )                                             &
+                      CALL netcdf_data_input_interpolate( force%q_north(t,:,:),&
+                                                          zu(nzb+1:nzt+1),     &
+                                                          force%zu_atmos )
+                ENDIF
+                IF ( force_bound_s )  THEN
+                   CALL netcdf_data_input_interpolate( force%u_south(t,:,:),   &
+                                                       zu(nzb+1:nzt+1),        &
+                                                       force%zu_atmos )
+                   CALL netcdf_data_input_interpolate( force%v_south(t,:,:),   &
+                                                       zu(nzb+1:nzt+1),        &
+                                                       force%zu_atmos )
+                   CALL netcdf_data_input_interpolate( force%w_south(t,:,:),   &
+                                                       zw(nzb+1:nzt+1),        &
+                                                       force%zw_atmos )
+                   IF ( .NOT. neutral )                                        &
+                      CALL netcdf_data_input_interpolate( force%pt_south(t,:,:),&
+                                                          zu(nzb+1:nzt+1),     &
+                                                          force%zu_atmos )
+                   IF ( humidity )                                             &
+                      CALL netcdf_data_input_interpolate( force%q_south(t,:,:),&
+                                                          zu(nzb+1:nzt+1),     &
+                                                          force%zu_atmos )
+                ENDIF
+             ENDDO
+!
+!--          Note, no interpolation of top boundary. Just use initial value. 
+!--          No physical meaningful extrapolation possible if only one layer is
+!--          given. 
+
+             force%interpolated = .TRUE. 
+          ENDIF
+       ENDIF
+      
+!
+!--    Calculate time interval of forcing data       
+       ddt_lsf = 1.0_wp / ( force%time(force%tind_p) - force%time(force%tind) )
+!
+!--    Calculate reziproke time past since last reference step. Please note, 
+!--    as simulated time is still not updated, the actual time here is 
+!--    simulated time + dt_3d
+       t_ref = simulated_time + dt_3d - force%time(force%tind)
+
+       IF ( force_bound_l )  THEN
+
+          DO  j = nys, nyn
+             DO  k = nzb+1, nzt+1
+                u(k,j,nxlg:nxl) = force%u_left(0,k,j) + ddt_lsf * t_ref *      &
+                         ( force%u_left(1,k,j) - force%u_left(0,k,j) ) *       &
+                           MERGE( 1.0_wp, 0.0_wp,                              &
+                                  BTEST( wall_flags_0(k,j,nxlg:nxl), 1 ) )
+             ENDDO
+          ENDDO
+
+          DO  j = nys, nyn
+             DO  k = nzb+1, nzt
+                w(k,j,nxlg:nxl-1) = force%w_left(0,k,j) + ddt_lsf * t_ref *    &
+                         ( force%w_left(1,k,j) - force%w_left(0,k,j) ) *       &
+                           MERGE( 1.0_wp, 0.0_wp,                              &
+                                  BTEST( wall_flags_0(k,j,nxlg:nxl-1), 3 ) )
+             ENDDO
+          ENDDO
+
+          DO  j = nysv, nyn
+             DO  k = nzb+1, nzt+1
+                v(k,j,nxlg:nxl-1) = force%v_left(0,k,j) + ddt_lsf * t_ref *    &
+                         ( force%v_left(1,k,j) - force%v_left(0,k,j) ) *       &
+                           MERGE( 1.0_wp, 0.0_wp,                              &
+                                  BTEST( wall_flags_0(k,j,nxlg:nxl-1), 2 ) )
+             ENDDO
+          ENDDO
+
+          IF ( .NOT. neutral )  THEN
+             DO  j = nys, nyn
+                DO  k = nzb+1, nzt+1
+                   pt(k,j,nxlg:nxl-1) = force%pt_left(0,k,j) + ddt_lsf *       &
+                                                                  t_ref   *    &
+                       ( force%pt_left(1,k,j) - force%pt_left(0,k,j) )
+ 
+                ENDDO
+             ENDDO
+          ENDIF
+
+          IF ( humidity )  THEN
+             DO  j = nys, nyn
+                DO  k = nzb+1, nzt+1
+                   q(k,j,nxlg:nxl-1) = force%q_left(0,k,j) + ddt_lsf   *       &
+                                                                  t_ref   *    &
+                       ( force%q_left(1,k,j) - force%q_left(0,k,j) )
+ 
+                ENDDO
+             ENDDO
+          ENDIF
+
+       ENDIF
+
+       IF ( force_bound_r )  THEN
+
+          DO  j = nys, nyn
+             DO  k = nzb+1, nzt+1
+                u(k,j,nxr+1:nxrg) = force%u_right(0,k,j) + ddt_lsf * t_ref *   &
+                        ( force%u_right(1,k,j) - force%u_right(0,k,j) ) *      &
+                           MERGE( 1.0_wp, 0.0_wp,                              &
+                                  BTEST( wall_flags_0(k,j,nxr+1:nxrg), 1 ) )
+
+             ENDDO
+          ENDDO
+          DO  j = nys, nyn
+             DO  k = nzb+1, nzt
+                w(k,j,nxr+1:nxrg) = force%w_right(0,k,j) + ddt_lsf * t_ref *   &
+                        ( force%w_right(1,k,j) - force%w_right(0,k,j) ) *      &
+                           MERGE( 1.0_wp, 0.0_wp,                              &
+                                  BTEST( wall_flags_0(k,j,nxr+1:nxrg), 3 ) )
+             ENDDO
+          ENDDO
+
+          DO  j = nysv, nyn
+             DO  k = nzb+1, nzt+1
+                v(k,j,nxr+1:nxrg) = force%v_right(0,k,j) + ddt_lsf * t_ref *   &
+                        ( force%v_right(1,k,j) - force%v_right(0,k,j) ) *      &
+                           MERGE( 1.0_wp, 0.0_wp,                              &
+                                  BTEST( wall_flags_0(k,j,nxr+1:nxrg), 2 ) )
+             ENDDO
+          ENDDO
+
+          IF ( .NOT. neutral )  THEN
+             DO  j = nys, nyn
+                DO  k = nzb+1, nzt+1
+                   pt(k,j,nxr+1:nxrg) = force%pt_right(0,k,j) + ddt_lsf *      &
+                                                                  t_ref   *    &
+                     ( force%pt_right(1,k,j) - force%pt_right(0,k,j) )
+ 
+                ENDDO
+             ENDDO
+          ENDIF
+
+          IF ( humidity )  THEN
+             DO  j = nys, nyn
+                DO  k = nzb+1, nzt+1
+                   q(k,j,nxr+1:nxrg) = force%q_right(0,k,j) + ddt_lsf   *      &
+                                                                  t_ref   *    &
+                       ( force%q_right(1,k,j) - force%q_right(0,k,j) )
+ 
+                ENDDO
+             ENDDO
+          ENDIF
+
+       ENDIF
+
+       IF ( force_bound_s )  THEN
+
+          DO  i = nxl, nxr
+             DO  k = nzb+1, nzt+1
+                v(k,nysg:nys,i)   = force%v_south(0,k,i) + ddt_lsf * t_ref *   &
+                        ( force%v_south(1,k,i) - force%v_south(0,k,i) ) *      &
+                           MERGE( 1.0_wp, 0.0_wp,                              &
+                                  BTEST( wall_flags_0(k,nysg:nys,i), 2 ) )
+             ENDDO
+          ENDDO
+
+          DO  i = nxl, nxr
+             DO  k = nzb+1, nzt
+                w(k,nysg:nys-1,i) = force%w_south(0,k,i) + ddt_lsf * t_ref *   &
+                        ( force%w_south(1,k,i) - force%w_south(0,k,i) ) *      &
+                           MERGE( 1.0_wp, 0.0_wp,                              &
+                                  BTEST( wall_flags_0(k,nysg:nys-1,i), 3 ) )
+             ENDDO
+          ENDDO
+
+          DO  i = nxlu, nxr
+             DO  k = nzb+1, nzt+1
+                u(k,nysg:nys-1,i) = force%u_south(0,k,i) + ddt_lsf * t_ref *   &
+                        ( force%u_south(1,k,i) - force%u_south(0,k,i) ) *      &
+                           MERGE( 1.0_wp, 0.0_wp,                              &
+                                  BTEST( wall_flags_0(k,nysg:nys-1,i), 1 ) )
+             ENDDO
+          ENDDO
+
+          IF ( .NOT. neutral )  THEN
+             DO  i = nxl, nxr
+                DO  k = nzb+1, nzt+1
+                   pt(k,nysg:nys-1,i) = force%pt_south(0,k,i) + ddt_lsf *      &
+                                                                  t_ref   *    &
+                     ( force%pt_south(1,k,i) - force%pt_south(0,k,i) )
+ 
+                ENDDO
+             ENDDO
+          ENDIF
+
+          IF ( humidity )  THEN
+             DO  i = nxl, nxr
+                DO  k = nzb+1, nzt+1
+                   q(k,nysg:nys-1,i) = force%q_south(0,k,i) + ddt_lsf   *      &
+                                                                  t_ref   *    &
+                       ( force%q_south(1,k,i) - force%q_south(0,k,i) )
+ 
+                ENDDO
+             ENDDO
+          ENDIF
+
+       ENDIF
+
+       IF ( force_bound_n )  THEN
+
+          DO  i = nxl, nxr
+             DO  k = nzb+1, nzt+1
+                v(k,nyn+1:nyng,i)   = force%v_north(0,k,i) + ddt_lsf * t_ref * &
+                        ( force%v_north(1,k,i) - force%v_north(0,k,i) ) *      &
+                           MERGE( 1.0_wp, 0.0_wp,                              &
+                                  BTEST( wall_flags_0(k,nyn+1:nyng,i), 2 ) )
+             ENDDO
+          ENDDO
+          DO  i = nxl, nxr
+             DO  k = nzb+1, nzt
+                w(k,nyn+1:nyng,i) = force%w_north(0,k,i) + ddt_lsf * t_ref *   &
+                        ( force%w_north(1,k,i) - force%w_north(0,k,i) ) *      &
+                           MERGE( 1.0_wp, 0.0_wp,                              &
+                                  BTEST( wall_flags_0(k,nyn+1:nyng,i), 3 ) )
+             ENDDO
+          ENDDO
+
+          DO  i = nxlu, nxr
+             DO  k = nzb+1, nzt+1
+                u(k,nyn+1:nyng,i) = force%u_north(0,k,i) + ddt_lsf * t_ref *   &
+                        ( force%u_north(1,k,i) - force%u_north(0,k,i) ) *      &
+                           MERGE( 1.0_wp, 0.0_wp,                              &
+                                  BTEST( wall_flags_0(k,nyn+1:nyng,i), 1 ) )
+
+             ENDDO
+          ENDDO
+
+          IF ( .NOT. neutral )  THEN
+             DO  i = nxl, nxr
+                DO  k = nzb+1, nzt+1
+                   pt(k,nyn+1:nyng,i) = force%pt_north(0,k,i) + ddt_lsf *      &
+                                                                  t_ref   *    &
+                     ( force%pt_north(1,k,i) - force%pt_north(0,k,i) )
+ 
+                ENDDO
+             ENDDO
+          ENDIF
+
+          IF ( humidity )  THEN
+             DO  i = nxl, nxr
+                DO  k = nzb+1, nzt+1
+                   q(k,nyn+1:nyng,i) = force%q_north(0,k,i) + ddt_lsf   *      &
+                                                                  t_ref   *    &
+                       ( force%q_north(1,k,i) - force%q_north(0,k,i) )
+ 
+                ENDDO
+             ENDDO
+          ENDIF
+
+       ENDIF
+!
+!--    Top boundary. 
+!--    Please note, only map Inifor data on model top in case the numeric is
+!--    identical to the Inifor grid. At the top boundary an extrapolation is 
+!--    not possible. 
+       IF ( ANY( zu(1:nzt+1) /= force%zu_atmos(1:force%nzu) ) )  THEN
+          DO  i = nxlu, nxr
+             DO  j = nys, nyn
+                u(nzt+1,j,i) = force%u_top(0,j,i) + ddt_lsf * t_ref *          &
+                           ( force%u_top(1,j,i) - force%u_top(0,j,i) ) *       &
+                              MERGE( 1.0_wp, 0.0_wp,                           &
+                                     BTEST( wall_flags_0(nzt+1,j,i), 1 ) )
+             ENDDO
+          ENDDO
+
+          DO  i = nxl, nxr
+             DO  j = nysv, nyn
+                v(nzt+1,j,i) = force%v_top(0,j,i) + ddt_lsf * t_ref *          &
+                           ( force%v_top(1,j,i) - force%v_top(0,j,i) ) *       &
+                              MERGE( 1.0_wp, 0.0_wp,                           &
+                                     BTEST( wall_flags_0(nzt+1,j,i), 2 ) )
+             ENDDO
+          ENDDO
+
+          DO  i = nxl, nxr
+             DO  j = nys, nyn
+                w(nzt:nzt+1,j,i) = force%w_top(0,j,i) + ddt_lsf * t_ref *      &
+                           ( force%w_top(1,j,i) - force%w_top(0,j,i) ) *       &
+                              MERGE( 1.0_wp, 0.0_wp,                           &
+                                     BTEST( wall_flags_0(nzt:nzt+1,j,i), 3 ) )
+             ENDDO
+          ENDDO
+
+
+          IF ( .NOT. neutral )  THEN
+             DO  i = nxl, nxr
+                DO  j = nys, nyn
+                   pt(nzt+1,j,i) = force%pt_top(0,j,i) + ddt_lsf * t_ref *     &
+                           ( force%pt_top(1,j,i) - force%pt_top(0,j,i) )
+                ENDDO
+             ENDDO
+          ENDIF
+
+          IF ( humidity )  THEN
+             DO  i = nxl, nxr
+                DO  j = nys, nyn
+                   q(nzt+1,j,i) = force%q_top(0,j,i) + ddt_lsf * t_ref *       &
+                           ( force%q_top(1,j,i) - force%q_top(0,j,i) )
+                ENDDO
+             ENDDO
+          ENDIF
+       ENDIF
+!
+!--    Moreover, set Neumann boundary condition for subgrid-scale TKE and 
+!--    passive scalar
+       IF ( .NOT. constant_diffusion )  THEN
+          IF (  force_bound_l )  e(:,:,nxl-1) = e(:,:,nxl)
+          IF (  force_bound_r )  e(:,:,nxr+1) = e(:,:,nxr)
+          IF (  force_bound_s )  e(:,nys-1,:) = e(:,nys,:)
+          IF (  force_bound_n )  e(:,nyn+1,:) = e(:,nyn,:)
+          e(nzt+1,:,:) = e(nzt,:,:)
+       ENDIF
+       IF ( passive_scalar )  THEN
+          IF (  force_bound_l )  s(:,:,nxl-1) = s(:,:,nxl)
+          IF (  force_bound_r )  s(:,:,nxr+1) = s(:,:,nxr)
+          IF (  force_bound_s )  s(:,nys-1,:) = s(:,nys,:)
+          IF (  force_bound_n )  s(:,nyn+1,:) = s(:,nyn,:)
+       ENDIF
+
+
+       CALL exchange_horiz( u, nbgp )
+       CALL exchange_horiz( v, nbgp )
+       CALL exchange_horiz( w, nbgp )
+       IF ( .NOT. neutral )  CALL exchange_horiz( pt, nbgp )
+       IF ( humidity      )  CALL exchange_horiz( q,  nbgp )
+
+!
+!--    Set surface pressure. Please note, time-dependent surface
+!--    pressure would require changes in anelastic approximation and 
+!--    treatment of fluxes. 
+!--    For the moment, comment this out! 
+!      surface_pressure = force%surface_pressure(force%tind) +                 &
+!                                                      ddt_lsf * t_ref *       &
+!                                    ( force%surface_pressure(force%tind_p)    &
+!                                    - force%surface_pressure(force%tind) )
+
+    END SUBROUTINE forcing_bc
 
 !------------------------------------------------------------------------------!
@@ -403,4 +937,7 @@
     SUBROUTINE lsf_init
 
+       USE netcdf_data_input_mod,                                              &
+           ONLY:  netcdf_data_input_lsf  
+
        IMPLICIT NONE
 
@@ -411,5 +948,6 @@
        INTEGER(iwp) ::  finput = 90   !<
        INTEGER(iwp) ::  k             !<
-       INTEGER(iwp) ::  nt             !<
+       INTEGER(iwp) ::  nt            !<
+       INTEGER(iwp) ::  t             !< running index for time levels
 
        REAL(wp) ::  fac               !<
@@ -432,105 +970,224 @@
        REAL(wp) ::  r_dummy           !<
 
-       ALLOCATE( p_surf(0:nlsf), pt_surf(0:nlsf), q_surf(0:nlsf),              &
-                 qsws_surf(0:nlsf), shf_surf(0:nlsf),                          &
-                 td_lsa_lpt(nzb:nzt+1,0:nlsf), td_lsa_q(nzb:nzt+1,0:nlsf),     &
-                 td_sub_lpt(nzb:nzt+1,0:nlsf), td_sub_q(nzb:nzt+1,0:nlsf),     &
-                 time_vert(0:nlsf), time_surf(0:nlsf),                         &
-                 ug_vert(nzb:nzt+1,0:nlsf), vg_vert(nzb:nzt+1,0:nlsf),         &
-                 wsubs_vert(nzb:nzt+1,0:nlsf) )
-
-       p_surf = 0.0_wp; pt_surf = 0.0_wp; q_surf = 0.0_wp; qsws_surf = 0.0_wp
-       shf_surf = 0.0_wp; time_vert = 0.0_wp; td_lsa_lpt = 0.0_wp
-       td_lsa_q = 0.0_wp; td_sub_lpt = 0.0_wp; td_sub_q = 0.0_wp
-       time_surf = 0.0_wp; ug_vert = 0.0_wp; vg_vert = 0.0_wp
-       wsubs_vert = 0.0_wp
-
-!
-!--    Array for storing large scale forcing and nudging tendencies at each 
-!--    timestep for data output
-       ALLOCATE( sums_ls_l(nzb:nzt+1,0:7) )
-       sums_ls_l = 0.0_wp
-
-       ngp_sums_ls = (nz+2)*6
-
-       OPEN ( finput, FILE='LSF_DATA', STATUS='OLD', &
-              FORM='FORMATTED', IOSTAT=ierrn )
-
-       IF ( ierrn /= 0 )  THEN
-          message_string = 'file LSF_DATA does not exist'
-          CALL message( 'ls_forcing', 'PA0368', 1, 2, 0, 6, 0 )
-       ENDIF
-
-       ierrn = 0
-!
-!--    First three lines of LSF_DATA contain header
-       READ ( finput, FMT='(a100)', IOSTAT=ierrn ) chmess
-       READ ( finput, FMT='(a100)', IOSTAT=ierrn ) chmess
-       READ ( finput, FMT='(a100)', IOSTAT=ierrn ) chmess
-
-       IF ( ierrn /= 0 )  THEN
-          message_string = 'errors in file LSF_DATA'
-          CALL message( 'ls_forcing', 'PA0369', 1, 2, 0, 6, 0 )
-       ENDIF
-
-!
-!--    Surface values are read in
-       nt     = 0
-       ierrn = 0
-
-       DO WHILE ( time_surf(nt) < end_time )
-          nt = nt + 1
-          READ ( finput, *, IOSTAT = ierrn ) time_surf(nt), shf_surf(nt),      &
-                                             qsws_surf(nt), pt_surf(nt),       &
-                                             q_surf(nt), p_surf(nt)
+       IF ( forcing )  THEN
+!
+!--       Allocate arrays for reading boundary values. Arrays will incorporate 2 
+!--       time levels in order to interpolate in between. 
+          IF ( force_bound_l )  THEN
+             ALLOCATE( force%u_left(0:1,nzb+1:nzt+1,nys:nyn)  )
+             ALLOCATE( force%v_left(0:1,nzb+1:nzt+1,nysv:nyn) )
+             ALLOCATE( force%w_left(0:1,nzb+1:nzt,nys:nyn)    )
+             IF ( humidity )      ALLOCATE( force%q_left(0:1,nzb+1:nzt+1,nys:nyn)  )
+             IF ( .NOT. neutral ) ALLOCATE( force%pt_left(0:1,nzb+1:nzt+1,nys:nyn) )
+          ENDIF
+          IF ( force_bound_r )  THEN
+             ALLOCATE( force%u_right(0:1,nzb+1:nzt+1,nys:nyn)  )
+             ALLOCATE( force%v_right(0:1,nzb+1:nzt+1,nysv:nyn) )
+             ALLOCATE( force%w_right(0:1,nzb+1:nzt,nys:nyn)    )
+             IF ( humidity )      ALLOCATE( force%q_right(0:1,nzb+1:nzt+1,nys:nyn)  )
+             IF ( .NOT. neutral ) ALLOCATE( force%pt_right(0:1,nzb+1:nzt+1,nys:nyn) )
+          ENDIF
+          IF ( force_bound_n )  THEN
+             ALLOCATE( force%u_north(0:1,nzb+1:nzt+1,nxlu:nxr) )
+             ALLOCATE( force%v_north(0:1,nzb+1:nzt+1,nxl:nxr)  )
+             ALLOCATE( force%w_north(0:1,nzb+1:nzt,nxl:nxr)    )
+             IF ( humidity )      ALLOCATE( force%q_north(0:1,nzb+1:nzt+1,nxl:nxr)  )
+             IF ( .NOT. neutral ) ALLOCATE( force%pt_north(0:1,nzb+1:nzt+1,nxl:nxr) )
+          ENDIF
+          IF ( force_bound_s )  THEN
+             ALLOCATE( force%u_south(0:1,nzb+1:nzt+1,nxlu:nxr) )
+             ALLOCATE( force%v_south(0:1,nzb+1:nzt+1,nxl:nxr)  )
+             ALLOCATE( force%w_south(0:1,nzb+1:nzt,nxl:nxr)    )
+             IF ( humidity )      ALLOCATE( force%q_south(0:1,nzb+1:nzt+1,nxl:nxr)  )
+             IF ( .NOT. neutral ) ALLOCATE( force%pt_south(0:1,nzb+1:nzt+1,nxl:nxr) )
+          ENDIF
+          
+          ALLOCATE( force%u_top(0:1,nys:nyn,nxlu:nxr) )
+          ALLOCATE( force%v_top(0:1,nysv:nyn,nxl:nxr) )
+          ALLOCATE( force%w_top(0:1,nys:nyn,nxl:nxr)  )
+          IF ( humidity )      ALLOCATE( force%q_top(0:1,nys:nyn,nxl:nxr)  )
+          IF ( .NOT. neutral ) ALLOCATE( force%pt_top(0:1,nys:nyn,nxl:nxr) )
+
+!
+!--       Initial call of input. Time array, initial 3D data of u, v, w, 
+!--       potential temperature, as well as mixing ratio, will be read. 
+!--       Moreover, data at lateral and top boundary will be read.  
+          CALL netcdf_data_input_lsf
+!
+!--       Please note, at the moment INIFOR assumes only an equidistant vertical
+!--       grid. In case of vertical grid stretching, input of inital 3D data 
+!--       need to be inter- and/or extrapolated. 
+!--       Therefore, check if zw grid on file is identical to numeric zw grid.   
+          IF ( ANY( zu(1:nzt+1) /= force%zu_atmos(1:force%nzu) ) )  THEN
+!
+!--          Also data at the boundaries need to be inter/extrapolated at both
+!--          time levels
+             DO  t = 0, 1
+                IF ( force_bound_l )  THEN
+                   CALL netcdf_data_input_interpolate( force%u_left(t,:,:),    &
+                                                       zu(1:nzt+1),            &
+                                                       force%zu_atmos )
+                   CALL netcdf_data_input_interpolate( force%v_left(t,:,:),    &
+                                                       zu(1:nzt+1),            &
+                                                       force%zu_atmos )
+                   CALL netcdf_data_input_interpolate( force%w_left(t,:,:),    &
+                                                       zw(1:nzt+1),            &
+                                                       force%zw_atmos )
+                   IF ( .NOT. neutral )                                        &
+                      CALL netcdf_data_input_interpolate( force%pt_left(t,:,:),&
+                                                          zu(1:nzt+1),         &
+                                                          force%zu_atmos )
+                   IF ( humidity )                                             &
+                      CALL netcdf_data_input_interpolate( force%q_left(t,:,:), &
+                                                          zu(1:nzt+1),         &
+                                                          force%zu_atmos )
+                ENDIF
+                IF ( force_bound_r )  THEN
+                   CALL netcdf_data_input_interpolate( force%u_right(t,:,:),   &
+                                                       zu(1:nzt+1),            &
+                                                       force%zu_atmos )
+                   CALL netcdf_data_input_interpolate( force%v_right(t,:,:),   &
+                                                       zu(1:nzt+1),            &
+                                                       force%zu_atmos )
+                   CALL netcdf_data_input_interpolate( force%w_right(t,:,:),   &
+                                                       zw(1:nzt+1),            &
+                                                       force%zw_atmos )
+                   IF ( .NOT. neutral )                                        &
+                      CALL netcdf_data_input_interpolate( force%pt_right(t,:,:),&
+                                                          zu(1:nzt+1),          &
+                                                          force%zu_atmos )
+                   IF ( humidity )                                             &
+                      CALL netcdf_data_input_interpolate( force%q_right(t,:,:),&
+                                                          zu(1:nzt+1),         &
+                                                          force%zu_atmos )
+                ENDIF
+                IF ( force_bound_n )  THEN
+                   CALL netcdf_data_input_interpolate( force%u_north(t,:,:),   &
+                                                       zu(1:nzt+1),            &
+                                                       force%zu_atmos )
+                   CALL netcdf_data_input_interpolate( force%v_north(t,:,:),   &
+                                                       zu(1:nzt+1),            &
+                                                       force%zu_atmos )
+                   CALL netcdf_data_input_interpolate( force%w_north(t,:,:),   &
+                                                       zw(1:nzt+1),            &
+                                                       force%zw_atmos )
+                   IF ( .NOT. neutral )                                        &
+                      CALL netcdf_data_input_interpolate( force%pt_north(t,:,:),&
+                                                          zu(1:nzt+1),          &
+                                                          force%zu_atmos )
+                   IF ( humidity )                                             &
+                      CALL netcdf_data_input_interpolate( force%q_north(t,:,:),&
+                                                          zu(1:nzt+1),         &
+                                                          force%zu_atmos )
+                ENDIF
+                IF ( force_bound_s )  THEN
+                   CALL netcdf_data_input_interpolate( force%u_south(t,:,:),   &
+                                                       zu(1:nzt+1),            &
+                                                       force%zu_atmos )
+                   CALL netcdf_data_input_interpolate( force%v_south(t,:,:),   &
+                                                       zu(1:nzt+1),            &
+                                                       force%zu_atmos )
+                   CALL netcdf_data_input_interpolate( force%w_south(t,:,:),   &
+                                                       zw(1:nzt+1),            &
+                                                       force%zw_atmos )
+                   IF ( .NOT. neutral )                                        &
+                      CALL netcdf_data_input_interpolate( force%pt_south(t,:,:),&
+                                                          zu(1:nzt+1),          &
+                                                          force%zu_atmos )
+                   IF ( humidity )                                             &
+                      CALL netcdf_data_input_interpolate( force%q_south(t,:,:),&
+                                                          zu(1:nzt+1),         &
+                                                          force%zu_atmos )
+                ENDIF
+             ENDDO
+          ENDIF
+
+!
+!--       Exchange ghost points
+          CALL exchange_horiz( u, nbgp )
+          CALL exchange_horiz( v, nbgp )
+          CALL exchange_horiz( w, nbgp )
+          IF ( .NOT. neutral )  CALL exchange_horiz( pt, nbgp )
+          IF ( humidity      )  CALL exchange_horiz( q,  nbgp )
+!
+!--       At lateral boundaries, set also initial boundary conditions
+          IF ( force_bound_l )  THEN
+             u(:,:,nxl)   = u(:,:,nxlu)
+             v(:,:,nxl-1) = v(:,:,nxl)
+             w(:,:,nxl-1) = w(:,:,nxl)
+             IF ( .NOT. neutral )  pt(:,:,nxl-1) = pt(:,:,nxl)
+             IF ( humidity      )  q(:,:,nxl-1)  = q(:,:,nxl)
+          ENDIF
+          IF ( force_bound_r )  THEN
+             u(:,:,nxr+1) = u(:,:,nxr)
+             v(:,:,nxr+1) = v(:,:,nxr)
+             w(:,:,nxr+1) = w(:,:,nxr)
+             IF ( .NOT. neutral )  pt(:,:,nxr+1) = pt(:,:,nxr)
+             IF ( humidity      )  q(:,:,nxr+1)  = q(:,:,nxr)
+          ENDIF
+          IF ( force_bound_s )  THEN
+             u(:,nys-1,:) = u(:,nys,:)
+             v(:,nys,:)   = v(:,nysv,:)
+             w(:,nys-1,:) = w(:,nys,:)
+             IF ( .NOT. neutral )  pt(:,nys-1,:) = pt(:,nys,:)
+             IF ( humidity      )  q(:,nys-1,:)  = q(:,nys,:)
+          ENDIF
+          IF ( force_bound_n )  THEN
+             u(:,nyn+1,:) = u(:,nyn,:)
+             v(:,nyn+1,:) = v(:,nyn,:)
+             w(:,nyn+1,:) = w(:,nyn,:)
+             IF ( .NOT. neutral )  pt(:,nyn+1,:) = pt(:,nyn,:)
+             IF ( humidity      )  q(:,nyn+1,:)  = q(:,nyn,:)
+          ENDIF
+
+!
+!--       After 3D data is initialized, ensure mass conservation
+          CALL forcing_bc_mass_conservation
+!
+!--       Initialize surface pressure. Please note, time-dependent surface
+!--       pressure would require changes in anelastic approximation and 
+!--       treatment of fluxes. 
+!--       For the moment, comment this out! 
+!         surface_pressure = force%surface_pressure(0)
+
+       ELSE
+
+          ALLOCATE( p_surf(0:nlsf), pt_surf(0:nlsf), q_surf(0:nlsf),           &
+                    qsws_surf(0:nlsf), shf_surf(0:nlsf),                       &
+                    td_lsa_lpt(nzb:nzt+1,0:nlsf), td_lsa_q(nzb:nzt+1,0:nlsf),  &
+                    td_sub_lpt(nzb:nzt+1,0:nlsf), td_sub_q(nzb:nzt+1,0:nlsf),  &
+                    time_vert(0:nlsf), time_surf(0:nlsf),                      &
+                    ug_vert(nzb:nzt+1,0:nlsf), vg_vert(nzb:nzt+1,0:nlsf),      &
+                    wsubs_vert(nzb:nzt+1,0:nlsf) )
+
+          p_surf = 0.0_wp; pt_surf = 0.0_wp; q_surf = 0.0_wp; qsws_surf = 0.0_wp
+          shf_surf = 0.0_wp; time_vert = 0.0_wp; td_lsa_lpt = 0.0_wp
+          td_lsa_q = 0.0_wp; td_sub_lpt = 0.0_wp; td_sub_q = 0.0_wp
+          time_surf = 0.0_wp; ug_vert = 0.0_wp; vg_vert = 0.0_wp
+          wsubs_vert = 0.0_wp
+
+!
+!--       Array for storing large scale forcing and nudging tendencies at each 
+!--       timestep for data output
+          ALLOCATE( sums_ls_l(nzb:nzt+1,0:7) )
+          sums_ls_l = 0.0_wp
+
+          ngp_sums_ls = (nz+2)*6
+
+          OPEN ( finput, FILE='LSF_DATA', STATUS='OLD', &
+                 FORM='FORMATTED', IOSTAT=ierrn )
 
           IF ( ierrn /= 0 )  THEN
-            WRITE ( message_string, * ) 'No time dependent surface variables ',&
-                              'in&LSF_DATA for end of run found'
-
-             CALL message( 'ls_forcing', 'PA0363', 1, 2, 0, 6, 0 )
-          ENDIF
-       ENDDO
-
-       IF ( time_surf(1) > end_time )  THEN
-          WRITE ( message_string, * ) 'Time dependent surface variables in ',  &
-                                      '&LSF_DATA set in after end of ' ,      &
-                                      'simulation - lsf_surf is set to FALSE'
-          CALL message( 'ls_forcing', 'PA0371', 0, 0, 0, 6, 0 )
-          lsf_surf = .FALSE.
-       ENDIF
-
-!
-!--    Go to the end of the list with surface variables
-       DO WHILE ( ierrn == 0 )
-          READ ( finput, *, IOSTAT = ierrn ) r_dummy
-       ENDDO
-
-!
-!--    Profiles of ug, vg and w_subs are read in (large scale forcing)
-
-       nt = 0
-       DO WHILE ( time_vert(nt) < end_time )
-          nt = nt + 1
-          hash = "#"
-          ierrn = 1 ! not zero
-!
-!--       Search for the next line consisting of "# time", 
-!--       from there onwards the profiles will be read
-          DO WHILE ( .NOT. ( hash == "#" .AND. ierrn == 0 ) ) 
-             READ ( finput, *, IOSTAT=ierrn ) hash, time_vert(nt)
-             IF ( ierrn < 0 )  THEN 
-                WRITE( message_string, * ) 'No time dependent vertical profiles',&
-                                 ' in&LSF_DATA for end of run found'
-                CALL message( 'ls_forcing', 'PA0372', 1, 2, 0, 6, 0 )
-             ENDIF
-          ENDDO
-
-          IF ( nt == 1 .AND. time_vert(nt) > end_time ) EXIT
-
-          READ ( finput, *, IOSTAT=ierrn ) lowheight, lowug_vert, lowvg_vert,  &
-                                           lowwsubs_vert, low_td_lsa_lpt,      &
-                                           low_td_lsa_q, low_td_sub_lpt,       &
-                                           low_td_sub_q
+             message_string = 'file LSF_DATA does not exist'
+             CALL message( 'ls_forcing', 'PA0368', 1, 2, 0, 6, 0 )
+          ENDIF
+
+          ierrn = 0
+!
+!--       First three lines of LSF_DATA contain header
+          READ ( finput, FMT='(a100)', IOSTAT=ierrn ) chmess
+          READ ( finput, FMT='(a100)', IOSTAT=ierrn ) chmess
+          READ ( finput, FMT='(a100)', IOSTAT=ierrn ) chmess
+
           IF ( ierrn /= 0 )  THEN
              message_string = 'errors in file LSF_DATA'
@@ -538,81 +1195,146 @@
           ENDIF
 
-          READ ( finput, *, IOSTAT=ierrn ) highheight, highug_vert,            &
-                                           highvg_vert, highwsubs_vert,        &
-                                           high_td_lsa_lpt, high_td_lsa_q,     &
-                                           high_td_sub_lpt, high_td_sub_q
-      
-          IF ( ierrn /= 0 )  THEN
-             message_string = 'errors in file LSF_DATA'
-             CALL message( 'ls_forcing', 'PA0369', 1, 2, 0, 6, 0 )
-          ENDIF
-
-
-          DO  k = nzb, nzt+1
-             IF ( highheight < zu(k) )  THEN
-                lowheight      = highheight
-                lowug_vert     = highug_vert
-                lowvg_vert     = highvg_vert
-                lowwsubs_vert  = highwsubs_vert
-                low_td_lsa_lpt = high_td_lsa_lpt
-                low_td_lsa_q   = high_td_lsa_q
-                low_td_sub_lpt = high_td_sub_lpt
-                low_td_sub_q   = high_td_sub_q
-
-                ierrn = 0
-                READ ( finput, *, IOSTAT=ierrn ) highheight, highug_vert,      &
-                                                 highvg_vert, highwsubs_vert,  &
-                                                 high_td_lsa_lpt,              &
-                                                 high_td_lsa_q,                &
-                                                 high_td_sub_lpt, high_td_sub_q
-
-                IF ( ierrn /= 0 )  THEN
-                   WRITE( message_string, * ) 'zu(',k,') = ', zu(k), 'm ', &
-                        'is higher than the maximum height in LSF_DATA which ',&
-                        'is ', lowheight, 'm. Interpolation on PALM ',         &
-                        'grid is not possible.'
-                   CALL message( 'ls_forcing', 'PA0395', 1, 2, 0, 6, 0 )
+!
+!--       Surface values are read in
+          nt     = 0
+          ierrn = 0
+
+          DO WHILE ( time_surf(nt) < end_time )
+             nt = nt + 1
+             READ ( finput, *, IOSTAT = ierrn ) time_surf(nt), shf_surf(nt),   &
+                                                qsws_surf(nt), pt_surf(nt),    &
+                                                q_surf(nt), p_surf(nt)
+
+             IF ( ierrn /= 0 )  THEN
+               WRITE ( message_string, * ) 'No time dependent surface variables ' //&
+                                 'in&LSF_DATA for end of run found'
+
+                CALL message( 'ls_forcing', 'PA0363', 1, 2, 0, 6, 0 )
+             ENDIF
+          ENDDO
+
+          IF ( time_surf(1) > end_time )  THEN
+             WRITE ( message_string, * ) 'Time dependent surface variables in ' // &
+                                         '&LSF_DATA set in after end of ' ,        &
+                                         'simulation - lsf_surf is set to FALSE'
+             CALL message( 'ls_forcing', 'PA0371', 0, 0, 0, 6, 0 )
+             lsf_surf = .FALSE.
+          ENDIF
+
+!
+!--       Go to the end of the list with surface variables
+          DO WHILE ( ierrn == 0 )
+             READ ( finput, *, IOSTAT = ierrn ) r_dummy
+          ENDDO
+
+!
+!--       Profiles of ug, vg and w_subs are read in (large scale forcing)
+
+          nt = 0
+          DO WHILE ( time_vert(nt) < end_time )
+             nt = nt + 1
+             hash = "#"
+             ierrn = 1 ! not zero
+!
+!--          Search for the next line consisting of "# time", 
+!--          from there onwards the profiles will be read
+             DO WHILE ( .NOT. ( hash == "#" .AND. ierrn == 0 ) ) 
+                READ ( finput, *, IOSTAT=ierrn ) hash, time_vert(nt)
+                IF ( ierrn < 0 )  THEN 
+                   WRITE( message_string, * ) 'No time dependent vertical profiles',&
+                                    ' in&LSF_DATA for end of run found'
+                   CALL message( 'ls_forcing', 'PA0372', 1, 2, 0, 6, 0 )
                 ENDIF
-
+             ENDDO
+
+             IF ( nt == 1 .AND. time_vert(nt) > end_time ) EXIT
+
+             READ ( finput, *, IOSTAT=ierrn ) lowheight, lowug_vert, lowvg_vert,&
+                                              lowwsubs_vert, low_td_lsa_lpt,    &
+                                              low_td_lsa_q, low_td_sub_lpt,     &
+                                              low_td_sub_q
+             IF ( ierrn /= 0 )  THEN
+                message_string = 'errors in file LSF_DATA'
+                CALL message( 'ls_forcing', 'PA0369', 1, 2, 0, 6, 0 )
              ENDIF
 
-!
-!--          Interpolation of prescribed profiles in space 
-             fac = (highheight-zu(k))/(highheight - lowheight)
-
-             ug_vert(k,nt)    = fac * lowug_vert                               &
-                                + ( 1.0_wp - fac ) * highug_vert
-             vg_vert(k,nt)    = fac * lowvg_vert                               &
-                                + ( 1.0_wp - fac ) * highvg_vert
-             wsubs_vert(k,nt) = fac * lowwsubs_vert                            &
-                                + ( 1.0_wp - fac ) * highwsubs_vert
-
-             td_lsa_lpt(k,nt) = fac * low_td_lsa_lpt                           &
-                                + ( 1.0_wp - fac ) * high_td_lsa_lpt
-             td_lsa_q(k,nt)   = fac * low_td_lsa_q                             &
-                                + ( 1.0_wp - fac ) * high_td_lsa_q
-             td_sub_lpt(k,nt) = fac * low_td_sub_lpt                           &
-                                + ( 1.0_wp - fac ) * high_td_sub_lpt
-             td_sub_q(k,nt)   = fac * low_td_sub_q                             &
-                                + ( 1.0_wp - fac ) * high_td_sub_q
-
-          ENDDO
-
-       ENDDO 
-
-!
-!--    Large scale vertical velocity has to be zero at the surface
-       wsubs_vert(nzb,:) = 0.0_wp
- 
-       IF ( time_vert(1) > end_time )  THEN
-          WRITE ( message_string, * ) 'Time dependent large scale profile ',   &
-                             'forcing from&LSF_DATA sets in after end of ' ,   &
-                             'simulation - lsf_vert is set to FALSE'
-          CALL message( 'ls_forcing', 'PA0373', 0, 0, 0, 6, 0 )
-          lsf_vert = .FALSE.
-       ENDIF
-
-       CLOSE( finput )
-
+             READ ( finput, *, IOSTAT=ierrn ) highheight, highug_vert,         &
+                                              highvg_vert, highwsubs_vert,     &
+                                              high_td_lsa_lpt, high_td_lsa_q,  &
+                                              high_td_sub_lpt, high_td_sub_q
+         
+             IF ( ierrn /= 0 )  THEN
+                message_string = 'errors in file LSF_DATA'
+                CALL message( 'ls_forcing', 'PA0369', 1, 2, 0, 6, 0 )
+             ENDIF
+
+
+             DO  k = nzb, nzt+1
+                IF ( highheight < zu(k) )  THEN
+                   lowheight      = highheight
+                   lowug_vert     = highug_vert
+                   lowvg_vert     = highvg_vert
+                   lowwsubs_vert  = highwsubs_vert
+                   low_td_lsa_lpt = high_td_lsa_lpt
+                   low_td_lsa_q   = high_td_lsa_q
+                   low_td_sub_lpt = high_td_sub_lpt
+                   low_td_sub_q   = high_td_sub_q
+
+                   ierrn = 0
+                   READ ( finput, *, IOSTAT=ierrn ) highheight, highug_vert,    &
+                                                    highvg_vert, highwsubs_vert,&
+                                                    high_td_lsa_lpt,            &
+                                                    high_td_lsa_q,              &
+                                                    high_td_sub_lpt, high_td_sub_q
+
+                   IF ( ierrn /= 0 )  THEN
+                      WRITE( message_string, * ) 'zu(',k,') = ', zu(k), 'm ', &
+                           'is higher than the maximum height in LSF_DATA which ',&
+                           'is ', lowheight, 'm. Interpolation on PALM ',         &
+                           'grid is not possible.'
+                      CALL message( 'ls_forcing', 'PA0395', 1, 2, 0, 6, 0 )
+                   ENDIF
+
+                ENDIF
+
+!
+!--             Interpolation of prescribed profiles in space 
+                fac = (highheight-zu(k))/(highheight - lowheight)
+
+                ug_vert(k,nt)    = fac * lowug_vert                            &
+                                   + ( 1.0_wp - fac ) * highug_vert
+                vg_vert(k,nt)    = fac * lowvg_vert                            &
+                                   + ( 1.0_wp - fac ) * highvg_vert
+                wsubs_vert(k,nt) = fac * lowwsubs_vert                         &
+                                   + ( 1.0_wp - fac ) * highwsubs_vert
+
+                td_lsa_lpt(k,nt) = fac * low_td_lsa_lpt                        &
+                                   + ( 1.0_wp - fac ) * high_td_lsa_lpt
+                td_lsa_q(k,nt)   = fac * low_td_lsa_q                          &
+                                   + ( 1.0_wp - fac ) * high_td_lsa_q
+                td_sub_lpt(k,nt) = fac * low_td_sub_lpt                        &
+                                   + ( 1.0_wp - fac ) * high_td_sub_lpt
+                td_sub_q(k,nt)   = fac * low_td_sub_q                          &
+                                   + ( 1.0_wp - fac ) * high_td_sub_q
+
+             ENDDO
+
+          ENDDO 
+
+!
+!--       Large scale vertical velocity has to be zero at the surface
+          wsubs_vert(nzb,:) = 0.0_wp
+    
+          IF ( time_vert(1) > end_time )  THEN
+             WRITE ( message_string, * ) 'Time dependent large scale profile ',&
+                                'forcing from&LSF_DATA sets in after end of ' ,&
+                                'simulation - lsf_vert is set to FALSE'
+             CALL message( 'ls_forcing', 'PA0373', 0, 0, 0, 6, 0 )
+             lsf_vert = .FALSE.
+          ENDIF
+
+          CLOSE( finput )
+
+       ENDIF
 
     END SUBROUTINE lsf_init
@@ -1396,3 +2118,4 @@
     END SUBROUTINE nudge_ref
 
+
  END MODULE lsf_nudging_mod
Index: palm/trunk/SOURCE/local_stop.f90
===================================================================
--- palm/trunk/SOURCE/local_stop.f90	(revision 2693)
+++ palm/trunk/SOURCE/local_stop.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file local_stop.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/local_system.f90
===================================================================
--- palm/trunk/SOURCE/local_system.f90	(revision 2693)
+++ palm/trunk/SOURCE/local_system.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file local_system.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/local_tremain.f90
===================================================================
--- palm/trunk/SOURCE/local_tremain.f90	(revision 2693)
+++ palm/trunk/SOURCE/local_tremain.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file local_tremain.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/local_tremain_ini.f90
===================================================================
--- palm/trunk/SOURCE/local_tremain_ini.f90	(revision 2693)
+++ palm/trunk/SOURCE/local_tremain_ini.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file local_tremain_ini.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/lpm.f90
===================================================================
--- palm/trunk/SOURCE/lpm.f90	(revision 2693)
+++ palm/trunk/SOURCE/lpm.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file lpm.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/lpm_advec.f90
===================================================================
--- palm/trunk/SOURCE/lpm_advec.f90	(revision 2693)
+++ palm/trunk/SOURCE/lpm_advec.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file lpm_advec.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/lpm_boundary_conds.f90
===================================================================
--- palm/trunk/SOURCE/lpm_boundary_conds.f90	(revision 2693)
+++ palm/trunk/SOURCE/lpm_boundary_conds.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file lpm_boundary_conds.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/lpm_calc_liquid_water_content.f90
===================================================================
--- palm/trunk/SOURCE/lpm_calc_liquid_water_content.f90	(revision 2693)
+++ palm/trunk/SOURCE/lpm_calc_liquid_water_content.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file lpm_calc_liquid_water_content.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/lpm_collision_kernels.f90
===================================================================
--- palm/trunk/SOURCE/lpm_collision_kernels.f90	(revision 2693)
+++ palm/trunk/SOURCE/lpm_collision_kernels.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file lpm_collision_kernels.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/lpm_data_output_particles.f90
===================================================================
--- palm/trunk/SOURCE/lpm_data_output_particles.f90	(revision 2693)
+++ palm/trunk/SOURCE/lpm_data_output_particles.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file lpm_data_output_particles.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/lpm_droplet_collision.f90
===================================================================
--- palm/trunk/SOURCE/lpm_droplet_collision.f90	(revision 2693)
+++ palm/trunk/SOURCE/lpm_droplet_collision.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file lpm_droplet_collision.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/lpm_droplet_condensation.f90
===================================================================
--- palm/trunk/SOURCE/lpm_droplet_condensation.f90	(revision 2693)
+++ palm/trunk/SOURCE/lpm_droplet_condensation.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file lpm_droplet_condensation.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/lpm_exchange_horiz.f90
===================================================================
--- palm/trunk/SOURCE/lpm_exchange_horiz.f90	(revision 2693)
+++ palm/trunk/SOURCE/lpm_exchange_horiz.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file lpm_exchange_horiz.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/lpm_init.f90
===================================================================
--- palm/trunk/SOURCE/lpm_init.f90	(revision 2693)
+++ palm/trunk/SOURCE/lpm_init.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file lpm_init.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/lpm_init_sgs_tke.f90
===================================================================
--- palm/trunk/SOURCE/lpm_init_sgs_tke.f90	(revision 2693)
+++ palm/trunk/SOURCE/lpm_init_sgs_tke.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file lpm_init_sgs_tke.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/lpm_merging.f90
===================================================================
--- palm/trunk/SOURCE/lpm_merging.f90	(revision 2693)
+++ palm/trunk/SOURCE/lpm_merging.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file lpm_merging.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/lpm_pack_arrays.f90
===================================================================
--- palm/trunk/SOURCE/lpm_pack_arrays.f90	(revision 2693)
+++ palm/trunk/SOURCE/lpm_pack_arrays.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file lpm_pack_arrays.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/lpm_read_restart_file.f90
===================================================================
--- palm/trunk/SOURCE/lpm_read_restart_file.f90	(revision 2693)
+++ palm/trunk/SOURCE/lpm_read_restart_file.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file lpm_read_restart_file.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/lpm_set_attributes.f90
===================================================================
--- palm/trunk/SOURCE/lpm_set_attributes.f90	(revision 2693)
+++ palm/trunk/SOURCE/lpm_set_attributes.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file lpm_set_attributes.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/lpm_splitting.f90
===================================================================
--- palm/trunk/SOURCE/lpm_splitting.f90	(revision 2693)
+++ palm/trunk/SOURCE/lpm_splitting.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file lpm_splitting.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
@@ -25,4 +25,7 @@
 ! -----------------
 !
+! 
+! 
+! 
 ! Added comments
 ! 
Index: palm/trunk/SOURCE/lpm_write_exchange_statistics.f90
===================================================================
--- palm/trunk/SOURCE/lpm_write_exchange_statistics.f90	(revision 2693)
+++ palm/trunk/SOURCE/lpm_write_exchange_statistics.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file lpm_write_exchange_statistics.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/lpm_write_restart_file.f90
===================================================================
--- palm/trunk/SOURCE/lpm_write_restart_file.f90	(revision 2693)
+++ palm/trunk/SOURCE/lpm_write_restart_file.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file lpm_write_restart_file.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/message.f90
===================================================================
--- palm/trunk/SOURCE/message.f90	(revision 2693)
+++ palm/trunk/SOURCE/message.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file message.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/microphysics_mod.f90
===================================================================
--- palm/trunk/SOURCE/microphysics_mod.f90	(revision 2693)
+++ palm/trunk/SOURCE/microphysics_mod.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file microphysics_mod.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/mod_kinds.f90
===================================================================
--- palm/trunk/SOURCE/mod_kinds.f90	(revision 2693)
+++ palm/trunk/SOURCE/mod_kinds.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file mod_kinds.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/mod_particle_attributes.f90
===================================================================
--- palm/trunk/SOURCE/mod_particle_attributes.f90	(revision 2693)
+++ palm/trunk/SOURCE/mod_particle_attributes.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file mod_particle_attributes.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/model_1d_mod.f90
===================================================================
--- palm/trunk/SOURCE/model_1d_mod.f90	(revision 2693)
+++ palm/trunk/SOURCE/model_1d_mod.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file model_1d_mod.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
@@ -25,4 +25,9 @@
 ! -----------------
 ! $Id$
+! implement TKE-e closure
+! modification of dissipation production according to Detering and Etling
+! reduced factor for timestep criterion to 0.125 and first dt to 1s (TG)
+! 
+! 2339 2017-08-07 13:55:26Z gronemeier
 ! corrected timestamp in header
 ! 
@@ -131,5 +136,6 @@
                intermediate_timestep_count_max, kappa, km_constant,            &
                message_string, mixing_length_1d, prandtl_number,               &
-               roughness_length, run_description_header, simulated_time_chr, timestep_scheme, tsc, z0h_factor
+               roughness_length, run_description_header, simulated_time_chr,   &
+               timestep_scheme, tsc, z0h_factor
 
     USE indices,                                                               &
@@ -143,38 +149,47 @@
     IMPLICIT NONE
 
-
     INTEGER(iwp) ::  current_timestep_number_1d = 0  !< current timestep number (1d-model)
-    INTEGER(iwp) ::  damp_level_ind_1d               !< lower grid index of damping layer (1d-model) !#
+    INTEGER(iwp) ::  damp_level_ind_1d               !< lower grid index of damping layer (1d-model)
 
     LOGICAL ::  run_control_header_1d = .FALSE.  !< flag for output of run control header (1d-model)
     LOGICAL ::  stop_dt_1d = .FALSE.             !< termination flag, used in case of too small timestep (1d-model)
 
+    REAL(wp) ::  c_1 = 1.44_wp                 !< model constant
+    REAL(wp) ::  c_2 = 1.92_wp                 !< model constant
+    REAL(wp) ::  c_3 = 1.44_wp                 !< model constant
+    REAL(wp) ::  c_h = 0.0015_wp               !< model constant according to Detering and Etling (1985)
     REAL(wp) ::  c_m = 0.4_wp                  !< model constant, 0.4 according to Detering and Etling (1985)
-    REAL(wp) ::  damp_level_1d = -1.0_wp       !< namelist parameter    !#
+    REAL(wp) ::  c_mu = 0.09_wp                !< model constant
+    REAL(wp) ::  damp_level_1d = -1.0_wp       !< namelist parameter
     REAL(wp) ::  dt_1d = 60.0_wp               !< dynamic timestep (1d-model)
     REAL(wp) ::  dt_max_1d = 300.0_wp          !< timestep limit (1d-model)
-    REAL(wp) ::  dt_pr_1d = 9999999.9_wp       !< namelist parameter     !#
-    REAL(wp) ::  dt_run_control_1d = 60.0_wp   !< namelist parameter     !#
-    REAL(wp) ::  end_time_1d = 864000.0_wp     !< namelist parameter     !#
+    REAL(wp) ::  dt_pr_1d = 9999999.9_wp       !< namelist parameter
+    REAL(wp) ::  dt_run_control_1d = 60.0_wp   !< namelist parameter
+    REAL(wp) ::  end_time_1d = 864000.0_wp     !< namelist parameter
     REAL(wp) ::  qs1d                          !< characteristic humidity scale (1d-model)
     REAL(wp) ::  simulated_time_1d = 0.0_wp    !< updated simulated time (1d-model)
+    REAL(wp) ::  sig_diss = 1.3_wp             !< model constant
     REAL(wp) ::  time_pr_1d = 0.0_wp           !< updated simulated time for profile output (1d-model)
     REAL(wp) ::  time_run_control_1d = 0.0_wp  !< updated simulated time for run-control output (1d-model)
     REAL(wp) ::  ts1d                          !< characteristic temperature scale (1d-model)
-    REAL(wp) ::  us1d                          !< friction velocity (1d-model)                 !#
-    REAL(wp) ::  usws1d                        !< u-component of the momentum flux (1d-model)  !#
-    REAL(wp) ::  vsws1d                        !< v-component of the momentum flux (1d-model)  !#
+    REAL(wp) ::  us1d                          !< friction velocity (1d-model)
+    REAL(wp) ::  usws1d                        !< u-component of the momentum flux (1d-model)
+    REAL(wp) ::  vsws1d                        !< v-component of the momentum flux (1d-model)
     REAL(wp) ::  z01d                          !< roughness length for momentum (1d-model)
     REAL(wp) ::  z0h1d                         !< roughness length for scalars (1d-model)
 
 
-    REAL(wp), DIMENSION(:), ALLOCATABLE ::  e1d      !< tke (1d-model)                         !#
+    REAL(wp), DIMENSION(:), ALLOCATABLE ::  diss1d   !< tke dissipation rate (1d-model)
+    REAL(wp), DIMENSION(:), ALLOCATABLE ::  diss1d_p !< prognostic value of tke dissipation rate (1d-model)
+    REAL(wp), DIMENSION(:), ALLOCATABLE ::  e1d      !< tke (1d-model)
     REAL(wp), DIMENSION(:), ALLOCATABLE ::  e1d_p    !< prognostic value of tke (1d-model)
-    REAL(wp), DIMENSION(:), ALLOCATABLE ::  kh1d     !< turbulent diffusion coefficient for heat (1d-model)    !#
-    REAL(wp), DIMENSION(:), ALLOCATABLE ::  km1d     !< turbulent diffusion coefficient for momentum (1d-model)!#
+    REAL(wp), DIMENSION(:), ALLOCATABLE ::  kh1d     !< turbulent diffusion coefficient for heat (1d-model)
+    REAL(wp), DIMENSION(:), ALLOCATABLE ::  km1d     !< turbulent diffusion coefficient for momentum (1d-model)
     REAL(wp), DIMENSION(:), ALLOCATABLE ::  l_black  !< mixing length Blackadar (1d-model)
-    REAL(wp), DIMENSION(:), ALLOCATABLE ::  l1d      !< mixing length for turbulent diffusion coefficients (1d-model) !#
+    REAL(wp), DIMENSION(:), ALLOCATABLE ::  l1d      !< mixing length for turbulent diffusion coefficients (1d-model)
     REAL(wp), DIMENSION(:), ALLOCATABLE ::  l1d_diss !< mixing length for dissipation (1d-model)
-    REAL(wp), DIMENSION(:), ALLOCATABLE ::  rif1d    !< Richardson flux number (1d-model)      !#
+    REAL(wp), DIMENSION(:), ALLOCATABLE ::  rif1d    !< Richardson flux number (1d-model)
+    REAL(wp), DIMENSION(:), ALLOCATABLE ::  te_diss  !< tendency of diss (1d-model)
+    REAL(wp), DIMENSION(:), ALLOCATABLE ::  te_dissm !< weighted tendency of diss for previous sub-timestep (1d-model)
     REAL(wp), DIMENSION(:), ALLOCATABLE ::  te_e     !< tendency of e (1d-model)
     REAL(wp), DIMENSION(:), ALLOCATABLE ::  te_em    !< weighted tendency of e for previous sub-timestep (1d-model)
@@ -183,7 +198,7 @@
     REAL(wp), DIMENSION(:), ALLOCATABLE ::  te_v     !< tendency of v (1d-model)
     REAL(wp), DIMENSION(:), ALLOCATABLE ::  te_vm    !< weighted tendency of v for previous sub-timestep (1d-model)
-    REAL(wp), DIMENSION(:), ALLOCATABLE ::  u1d      !< u-velocity component (1d-model)        !#
+    REAL(wp), DIMENSION(:), ALLOCATABLE ::  u1d      !< u-velocity component (1d-model)
     REAL(wp), DIMENSION(:), ALLOCATABLE ::  u1d_p    !< prognostic value of u-velocity component (1d-model)
-    REAL(wp), DIMENSION(:), ALLOCATABLE ::  v1d      !< v-velocity component (1d-model)        !#
+    REAL(wp), DIMENSION(:), ALLOCATABLE ::  v1d      !< v-velocity component (1d-model)
     REAL(wp), DIMENSION(:), ALLOCATABLE ::  v1d_p    !< prognostic value of v-velocity component (1d-model)
 
@@ -227,7 +242,7 @@
 !
 !-- Public variables
-    PUBLIC  damp_level_1d, damp_level_ind_1d, dt_pr_1d, dt_run_control_1d,     &
-            e1d, end_time_1d, kh1d, km1d, l1d, rif1d, u1d, us1d, usws1d, v1d,  &
-            vsws1d
+    PUBLIC  damp_level_1d, damp_level_ind_1d, diss1d, dt_pr_1d,                &
+            dt_run_control_1d, e1d, end_time_1d, kh1d, km1d, l1d, rif1d, u1d,  &
+            us1d, usws1d, v1d, vsws1d
 
 
@@ -238,15 +253,17 @@
     IMPLICIT NONE
 
-    CHARACTER (LEN=9) ::  time_to_string  !<
+    CHARACTER (LEN=9) ::  time_to_string  !< function to transform time from real to character string
+
+    INTEGER(iwp) ::  k  !< loop index
     
-    INTEGER(iwp) ::  k  !< 
-    
-    REAL(wp) ::  lambda !<
+    REAL(wp) ::  lambda !< maximum mixing length
 
 !
 !-- Allocate required 1D-arrays
-    ALLOCATE( e1d(nzb:nzt+1), e1d_p(nzb:nzt+1), kh1d(nzb:nzt+1),               &
+    ALLOCATE( diss1d(nzb:nzt+1), diss1d_p(nzb:nzt+1),                          &
+              e1d(nzb:nzt+1), e1d_p(nzb:nzt+1), kh1d(nzb:nzt+1),               &
               km1d(nzb:nzt+1), l_black(nzb:nzt+1), l1d(nzb:nzt+1),             &
-              l1d_diss(nzb:nzt+1), rif1d(nzb:nzt+1), te_e(nzb:nzt+1),          &
+              l1d_diss(nzb:nzt+1), rif1d(nzb:nzt+1), te_diss(nzb:nzt+1),       &
+              te_dissm(nzb:nzt+1), te_e(nzb:nzt+1),                            &
               te_em(nzb:nzt+1), te_u(nzb:nzt+1), te_um(nzb:nzt+1),             &
               te_v(nzb:nzt+1), te_vm(nzb:nzt+1), u1d(nzb:nzt+1),               &
@@ -259,4 +276,5 @@
        kh1d = km_constant / prandtl_number
     ELSE
+       diss1d = 0.0_wp; diss1d_p = 0.0_wp
        e1d = 0.0_wp; e1d_p = 0.0_wp
        kh1d = 0.0_wp; km1d = 0.0_wp
@@ -309,4 +327,5 @@
        us1d = 0.1_wp   ! without initial friction the flow would not change
     ELSE
+       diss1d(nzb+1) = 1.0_wp
        e1d(nzb+1)  = 1.0_wp
        km1d(nzb+1) = 1.0_wp
@@ -323,4 +342,5 @@
 !-- Tendencies must be preset in order to avoid runtime errors within the
 !-- first Runge-Kutta step
+    te_dissm = 0.0_wp
     te_em = 0.0_wp
     te_um = 0.0_wp
@@ -354,11 +374,10 @@
     IMPLICIT NONE
 
-    CHARACTER (LEN=9) ::  time_to_string  !<
-    
+    CHARACTER (LEN=9) ::  time_to_string  !< function to transform time from real to character string
+
     INTEGER(iwp) ::  k  !< loop index
-    
+
     REAL(wp) ::  a            !< auxiliary variable
     REAL(wp) ::  b            !< auxiliary variable
-    REAL(wp) ::  dissipation  !< dissipation of TKE
     REAL(wp) ::  dpt_dz       !< vertical temperature gradient
     REAL(wp) ::  flux         !< vertical temperature gradient
@@ -372,5 +391,5 @@
 !-- Determine the time step at the start of a 1D-simulation and
 !-- determine and printout quantities used for run control
-    dt_1d = 10.0_wp
+    dt_1d = 1.0_wp
     CALL run_control_1d
 
@@ -392,6 +411,6 @@
 
 !
-!--       Compute all tendency terms. If a Prandtl-layer is simulated, k starts 
-!--       at nzb+2.
+!--       Compute all tendency terms. If a constant-flux layer is simulated, 
+!--       k starts at nzb+2.
           DO  k = nzb_diff, nzt
 
@@ -414,5 +433,5 @@
              DO  k = nzb_diff, nzt
 !
-!--             TKE
+!--             TKE and dissipation rate
                 kmzm = 0.5_wp * ( km1d(k-1) + km1d(k) )
                 kmzp = 0.5_wp * ( km1d(k) + km1d(k+1) )
@@ -428,14 +447,15 @@
                 ENDIF
 
+!
+!--             Calculate dissipation rate if no prognostic equation is used for
+!--             dissipation rate
                 IF ( dissipation_1d == 'detering' )  THEN
-!
-!--                According to Detering, c_e=c_m^3
-                   dissipation = c_m**3 * e1d(k) * SQRT( e1d(k) ) / l1d_diss(k)
+                   diss1d(k) = c_m**3 * e1d(k) * SQRT( e1d(k) ) / l1d_diss(k)
                 ELSEIF ( dissipation_1d == 'as_in_3d_model' )  THEN
-                   dissipation = ( 0.19_wp                                     &
-                                   + 0.74_wp * l1d_diss(k) /  l_grid(k)        &
-                                 ) * e1d(k) * SQRT( e1d(k) ) / l1d_diss(k)
-                ENDIF
-
+                   diss1d(k) = ( 0.19_wp + 0.74_wp * l1d_diss(k) /  l_grid(k)  &
+                               ) * e1d(k) * SQRT( e1d(k) ) / l1d_diss(k)
+                ENDIF
+!
+!--             TKE
                 te_e(k) = km1d(k) * ( ( ( u1d(k+1) - u1d(k-1) ) * dd2zu(k) )**2&
                                     + ( ( v1d(k+1) - v1d(k-1) ) * dd2zu(k) )**2&
@@ -446,10 +466,30 @@
                                    - kmzm * ( e1d(k) - e1d(k-1) ) * ddzu(k)    &
                                                  ) * ddzw(k)                   &
-                                   - dissipation
+                                   - diss1d(k)
+
+                IF ( dissipation_1d == 'prognostic' )  THEN
+!
+!--                dissipation rate
+                   te_diss(k) = km1d(k) *                                      &
+                                  ( ( ( u1d(k+1) - u1d(k-1) ) * dd2zu(k) )**2  &
+                                  + ( ( v1d(k+1) - v1d(k-1) ) * dd2zu(k) )**2  &
+                                  ) * c_1 * c_mu**0.75 / c_h * f / us1d        &
+                                    * SQRT(e1d(k))                             &
+                                  - g / pt_0 * kh1d(k) * flux * c_3            &
+                                    * diss1d(k) / ( e1d(k) + 1.0E-20_wp )      &
+                                  + ( kmzp * ( diss1d(k+1) - diss1d(k) )       &
+                                           * ddzu(k+1)                         &
+                                    - kmzm * ( diss1d(k) - diss1d(k-1) )       &
+                                           * ddzu(k)                           &
+                                    ) * ddzw(k) / sig_diss                     &
+                                  - c_2 * diss1d(k)**2 / ( e1d(k) + 1.0E-20_wp )
+
+                ENDIF
+
              ENDDO
           ENDIF
 
 !
-!--       Tendency terms at the top of the Prandtl-layer.
+!--       Tendency terms at the top of the constant-flux layer.
 !--       Finite differences of the momentum fluxes are computed using half the 
 !--       normal grid length (2.0*ddzw(k)) for the sake of enhanced accuracy 
@@ -470,11 +510,12 @@
              ENDIF
 
+!
+!--          Calculate dissipation rate if no prognostic equation is used for
+!--          dissipation rate
              IF ( dissipation_1d == 'detering' )  THEN
-!
-!--             According to Detering, c_e=0.064
-                dissipation = 0.064_wp * e1d(k) * SQRT( e1d(k) ) / l1d_diss(k)
+                diss1d(k) = c_m**3 * e1d(k) * SQRT( e1d(k) ) / l1d_diss(k)
              ELSEIF ( dissipation_1d == 'as_in_3d_model' )  THEN
-                dissipation = ( 0.19_wp + 0.74_wp * l1d_diss(k) / l_grid(k) )  &
-                              * e1d(k) * SQRT( e1d(k) ) / l1d_diss(k)
+                diss1d(k) = ( 0.19_wp + 0.74_wp * l1d_diss(k) / l_grid(k) )    &
+                            * e1d(k) * SQRT( e1d(k) ) / l1d_diss(k)
              ENDIF
 
@@ -491,13 +532,16 @@
 !
 !--          TKE
-             te_e(k) = km1d(k) * ( ( ( u1d(k+1) - u1d(k-1) ) * dd2zu(k) )**2   &
-                                 + ( ( v1d(k+1) - v1d(k-1) ) * dd2zu(k) )**2   &
-                                 )                                             &
-                                 - g / pt_0 * kh1d(k) * flux                   &
-                                 +           (                                 &
-                                  kmzp * ( e1d(k+1) - e1d(k) ) * ddzu(k+1)     &
-                                - kmzm * ( e1d(k) - e1d(k-1) ) * ddzu(k)       &
-                                              ) * ddzw(k)                      &
-                                - dissipation
+             IF ( .NOT. dissipation_1d == 'prognostic' )  THEN
+                te_e(k) = km1d(k) * ( ( ( u1d(k+1) - u1d(k-1) ) * dd2zu(k) )**2&
+                                    + ( ( v1d(k+1) - v1d(k-1) ) * dd2zu(k) )**2&
+                                    )                                          &
+                                    - g / pt_0 * kh1d(k) * flux                &
+                                    +           (                              &
+                                     kmzp * ( e1d(k+1) - e1d(k) ) * ddzu(k+1)  &
+                                   - kmzm * ( e1d(k) - e1d(k-1) ) * ddzu(k)    &
+                                                 ) * ddzw(k)                   &
+                                   - diss1d(k)
+             ENDIF
+
           ENDIF
 
@@ -513,10 +557,16 @@
           ENDDO
           IF ( .NOT. constant_diffusion )  THEN
+
              DO  k = nzb+1, nzt
-
                 e1d_p(k) = e1d(k) + dt_1d * ( tsc(2) * te_e(k) + &
                                               tsc(3) * te_em(k) )
-
              ENDDO
+
+             IF ( dissipation_1d == 'prognostic' )  THEN
+                DO  k = nzb_diff, nzt
+                   diss1d_p(k) = diss1d(k) + dt_1d * ( tsc(2) * te_diss(k) + &
+                                                 tsc(3) * te_dissm(k) )
+                ENDDO
+             ENDIF
 !
 !--          Eliminate negative TKE values, which can result from the
@@ -540,4 +590,9 @@
                       te_em(k) = te_e(k)
                    ENDDO
+                   IF ( dissipation_1d == 'prognostic' )  THEN
+                      DO k = nzb+1, nzt
+                         te_dissm(k) = te_diss(k)
+                      ENDDO
+                   ENDIF
                 ENDIF
 
@@ -554,4 +609,9 @@
                       te_em(k) = -9.5625_wp * te_e(k) + 5.3125_wp * te_em(k)
                    ENDDO
+                   IF ( dissipation_1d == 'prognostic' )  THEN
+                      DO k = nzb+1, nzt
+                         te_dissm(k) = -9.5625_wp * te_diss(k) + 5.3125_wp * te_dissm(k)
+                      ENDDO
+                   ENDIF
                 ENDIF
 
@@ -562,8 +622,8 @@
 !
 !--       Boundary conditions for the prognostic variables.
-!--       At the top boundary (nzt+1) u,v and e keep their initial values 
-!--       (ug(nzt+1), vg(nzt+1), 0).
+!--       At the top boundary (nzt+1) u, v, e, and diss keep their initial 
+!--       values (ug(nzt+1), vg(nzt+1), 0, 0).
 !--       At the bottom boundary, Dirichlet condition is used for u and v (0)
-!--       and Neumann condition for e (e(nzb)=e(nzb+1)).
+!--       and Neumann condition for e and diss (e(nzb)=e(nzb+1)).
           u1d_p(nzb) = 0.0_wp
           v1d_p(nzb) = 0.0_wp
@@ -575,4 +635,7 @@
           IF ( .NOT. constant_diffusion )  THEN
              e1d  = e1d_p
+             IF ( dissipation_1d == 'prognostic' )  THEN
+                diss1d = diss1d_p
+             ENDIF
           ENDIF
 
@@ -582,5 +645,5 @@
 
 !
-!--          First compute the vertical fluxes in the Prandtl-layer
+!--          First compute the vertical fluxes in the constant-flux layer
              IF ( constant_flux_layer )  THEN
 !
@@ -609,7 +672,7 @@
 !
 !--          Compute the Richardson-flux numbers,
-!--          first at the top of the Prandtl-layer using u* of the previous
-!--          time step (+1E-30, if u* = 0), then in the remaining area. There
-!--          the rif-numbers of the previous time step are used.
+!--          first at the top of the constant-flux layer using u* of the 
+!--          previous time step (+1E-30, if u* = 0), then in the remaining area.
+!--          There the rif-numbers of the previous time step are used.
 
              IF ( constant_flux_layer )  THEN
@@ -689,10 +752,15 @@
 
 !
-!--             Boundary condition for the turbulent kinetic energy at the top
-!--             of the Prandtl-layer. c_m = 0.4 according to Detering.
+!--             Boundary condition for the turbulent kinetic energy and 
+!--             dissipation rate at the top of the constant-flux layer.
 !--             Additional Neumann condition de/dz = 0 at nzb is set to ensure
 !--             compatibility with the 3D model.
                 IF ( ibc_e_b == 2 )  THEN
                    e1d(nzb+1) = ( us1d / c_m )**2
+                ENDIF
+                IF ( dissipation_1d == 'prognostic' )  THEN
+                   e1d(nzb+1) = us1d**2 / SQRT( c_mu )
+                   diss1d(nzb+1) = us1d**3 / ( kappa * zu(nzb+1) )
+                   diss1d(nzb) = diss1d(nzb+1)
                 ENDIF
                 e1d(nzb) = e1d(nzb+1)
@@ -767,7 +835,13 @@
                 ENDIF
              ENDIF
-             DO  k = nzb_diff, nzt
-                km1d(k) = c_m * SQRT( e1d(k) ) * l1d(k)
-             ENDDO
+             IF ( dissipation_1d == 'prognostic' )  THEN
+                DO  k = nzb_diff, nzt
+                   km1d(k) = c_mu * e1d(k)**2 / ( diss1d(k) + 1.0E-30_wp )
+                ENDDO
+             ELSE
+                DO  k = nzb_diff, nzt
+                   km1d(k) = c_m * SQRT( e1d(k) ) * l1d(k)
+                ENDDO
+             ENDIF
 
 !
@@ -918,5 +992,5 @@
 !-- Compute the currently feasible time step according to the diffusion
 !-- criterion. At nzb+1 the half grid length is used.
-    fac = 0.35_wp
+    fac = 0.125  !0.35_wp                                                       !### changed from 0.35
     dt_diff = dt_max_1d
     DO  k = nzb+2, nzt
@@ -977,5 +1051,5 @@
        DO  k = nzt+1, nzb, -1
           WRITE ( 17, 103)  k, zu(k), u1d(k), v1d(k), pt_init(k), e1d(k), &
-                            rif1d(k), km1d(k), kh1d(k), l1d(k), zu(k), k
+                            rif1d(k), km1d(k), kh1d(k), l1d(k), diss1d(k)
        ENDDO
        WRITE ( 17, 101 )
@@ -993,9 +1067,8 @@
 100 FORMAT ('# ',A/'#',10('-')/'# 1d-model profiles')
 104 FORMAT (//'# Time: ',A)
-101 FORMAT ('#',79('-'))
-102 FORMAT ('#  k     zu      u      v     pt      e    rif    Km    Kh     ', &
-            'l      zu      k')
-103 FORMAT (1X,I4,1X,F7.1,1X,F6.2,1X,F6.2,1X,F6.2,1X,F6.2,1X,F5.2,1X,F5.2, &
-            1X,F5.2,1X,F6.2,1X,F7.1,2X,I4)
+101 FORMAT ('#',111('-'))
+102 FORMAT ('#  k     zu      u          v          pt         e          ',   &
+            'rif        Km         Kh         l          diss   ')
+103 FORMAT (1X,I4,1X,F7.1,9(1X,E10.3))
 
 
Index: palm/trunk/SOURCE/modules.f90
===================================================================
--- palm/trunk/SOURCE/modules.f90	(revision 2693)
+++ palm/trunk/SOURCE/modules.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file modules.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
@@ -25,4 +25,13 @@
 ! -----------------
 ! $Id$
+! Implementation of uv exposure model (FK)
+! + turbulence closure variables (control_parameters)
+! + arrays for prognostic equation of disspiation (arrays_3d)
+! + km_av, kh_av (TG)
+! Implementation of chemistry module (FK)
+! -lod
+! +topo_distinct (MS)
+! 
+! 2669 2017-12-06 16:03:27Z raasch
 ! CONTIGUOUS-attribut added to 3d pointer arrays,
 ! coupling_char extended to LEN=8
@@ -601,4 +610,5 @@
     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  c_v                   !< phase speed of v-velocity component
     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  c_w                   !< phase speed of w-velocity component
+    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  diss_s_diss           !< artificial numerical dissipation flux at south face of grid box - TKE dissipation
     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  diss_s_e              !< artificial numerical dissipation flux at south face of grid box - subgrid-scale TKE
     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  diss_s_nc             !< artificial numerical dissipation flux at south face of grid box - clouddrop-number concentration    
@@ -615,4 +625,5 @@
     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  dzu_mg                !< vertical grid size (u-grid) for multigrid pressure solver
     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  dzw_mg                !< vertical grid size (w-grid) for multigrid pressure solver
+    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  flux_s_diss           !< 6th-order advective flux at south face of grid box - TKE dissipation
     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  flux_s_e              !< 6th-order advective flux at south face of grid box - subgrid-scale TKE
     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  flux_s_nc             !< 6th-order advective flux at south face of grid box - clouddrop-number concentration 
@@ -638,54 +649,57 @@
     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  total_2d_o            !< horizontal array to store the total domain data, used for atmosphere-ocean coupling (ocean data)
     
-    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  d          !< divergence
-    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  de_dx      !< gradient of sgs tke in x-direction (lpm)
-    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  de_dy      !< gradient of sgs tke in y-direction (lpm)
-    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  de_dz      !< gradient of sgs tke in z-direction (lpm)
-    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  diss       !< TKE dissipation rate
-    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  diss_l_e   !< artificial numerical dissipation flux at left face of grid box - subgrid-scale TKE
-    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  diss_l_nc  !< artificial numerical dissipation flux at left face of grid box - clouddrop-number concentration
-    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  diss_l_nr  !< artificial numerical dissipation flux at left face of grid box - raindrop-number concentration
-    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  diss_l_pt  !< artificial numerical dissipation flux at left face of grid box - potential temperature
-    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  diss_l_q   !< artificial numerical dissipation flux at left face of grid box - mixing ratio
-    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  diss_l_qc  !< artificial numerical dissipation flux at left face of grid box - cloudwater
-    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  diss_l_qr  !< artificial numerical dissipation flux at left face of grid box - rainwater
-    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  diss_l_s   !< artificial numerical dissipation flux at left face of grid box - passive scalar
-    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  diss_l_sa  !< artificial numerical dissipation flux at left face of grid box - salinity
-    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  diss_l_u   !< artificial numerical dissipation flux at left face of grid box - u-component
-    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  diss_l_v   !< artificial numerical dissipation flux at left face of grid box - v-component
-    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  diss_l_w   !< artificial numerical dissipation flux at left face of grid box - w-component
-    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  flux_l_e   !< 6th-order advective flux at south face of grid box - subgrid-scale TKE
-    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  flux_l_nc  !< 6th-order advective flux at south face of grid box - clouddrop-number concentration
-    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  flux_l_nr  !< 6th-order advective flux at south face of grid box - raindrop-number concentration
-    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  flux_l_pt  !< 6th-order advective flux at south face of grid box - potential temperature
-    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  flux_l_q   !< 6th-order advective flux at south face of grid box - mixing ratio
-    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  flux_l_qc  !< 6th-order advective flux at south face of grid box - cloudwater
-    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  flux_l_qr  !< 6th-order advective flux at south face of grid box - rainwater
-    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  flux_l_s   !< 6th-order advective flux at south face of grid box - passive scalar
-    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  flux_l_sa  !< 6th-order advective flux at south face of grid box - salinity
-    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  flux_l_u   !< 6th-order advective flux at south face of grid box - u-component
-    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  flux_l_v   !< 6th-order advective flux at south face of grid box - v-component
-    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  flux_l_w   !< 6th-order advective flux at south face of grid box - w-component
-    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  kh         !< eddy diffusivity for heat 
-    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  km         !< eddy diffusivity for momentum
-    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  l_wall     !< near-wall mixing length
-    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  prr        !< rain rate
-    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  p_loc      !< local array in multigrid/sor solver containing the pressure which is iteratively advanced in each iteration step
-    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  tend       !< tendency field (time integration)
-    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  tric       !< coefficients of the tridiagonal matrix for solution of the Poisson equation in Fourier space
-    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  u_m_l      !< velocity data (u at left boundary) from time level t-dt required for radiation boundary condition
-    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  u_m_n      !< velocity data (u at north boundary) from time level t-dt required for radiation boundary condition
-    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  u_m_r      !< velocity data (u at right boundary) from time level t-dt required for radiation boundary condition
-    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  u_m_s      !< velocity data (u at south boundary) from time level t-dt required for radiation boundary condition
-    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  v_m_l      !< velocity data (v at left boundary) from time level t-dt required for radiation boundary condition
-    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  v_m_n      !< velocity data (v at north boundary) from time level t-dt required for radiation boundary condition
-    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  v_m_r      !< velocity data (v at right boundary) from time level t-dt required for radiation boundary condition
-    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  v_m_s      !< velocity data (v at south boundary) from time level t-dt required for radiation boundary condition
-    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  w_m_l      !< velocity data (w at left boundary) from time level t-dt required for radiation boundary condition
-    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  w_m_n      !< velocity data (w at north boundary) from time level t-dt required for radiation boundary condition
-    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  w_m_r      !< velocity data (w at right boundary) from time level t-dt required for radiation boundary condition
-    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  w_m_s      !< velocity data (w at south boundary) from time level t-dt required for radiation boundary condition
+    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  d           !< divergence
+    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  de_dx       !< gradient of sgs tke in x-direction (lpm)
+    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  de_dy       !< gradient of sgs tke in y-direction (lpm)
+    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  de_dz       !< gradient of sgs tke in z-direction (lpm)
+    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  diss_l_diss !< artificial numerical dissipation flux at left face of grid box - TKE dissipation
+    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  diss_l_e    !< artificial numerical dissipation flux at left face of grid box - subgrid-scale TKE
+    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  diss_l_nc   !< artificial numerical dissipation flux at left face of grid box - clouddrop-number concentration
+    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  diss_l_nr   !< artificial numerical dissipation flux at left face of grid box - raindrop-number concentration
+    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  diss_l_pt   !< artificial numerical dissipation flux at left face of grid box - potential temperature
+    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  diss_l_q    !< artificial numerical dissipation flux at left face of grid box - mixing ratio
+    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  diss_l_qc   !< artificial numerical dissipation flux at left face of grid box - cloudwater
+    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  diss_l_qr   !< artificial numerical dissipation flux at left face of grid box - rainwater
+    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  diss_l_s    !< artificial numerical dissipation flux at left face of grid box - passive scalar
+    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  diss_l_sa   !< artificial numerical dissipation flux at left face of grid box - salinity
+    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  diss_l_u    !< artificial numerical dissipation flux at left face of grid box - u-component
+    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  diss_l_v    !< artificial numerical dissipation flux at left face of grid box - v-component
+    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  diss_l_w    !< artificial numerical dissipation flux at left face of grid box - w-component
+    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  flux_l_diss !< 6th-order advective flux at south face of grid box - TKE dissipation
+    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  flux_l_e    !< 6th-order advective flux at south face of grid box - subgrid-scale TKE
+    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  flux_l_nc   !< 6th-order advective flux at south face of grid box - clouddrop-number concentration
+    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  flux_l_nr   !< 6th-order advective flux at south face of grid box - raindrop-number concentration
+    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  flux_l_pt   !< 6th-order advective flux at south face of grid box - potential temperature
+    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  flux_l_q    !< 6th-order advective flux at south face of grid box - mixing ratio
+    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  flux_l_qc   !< 6th-order advective flux at south face of grid box - cloudwater
+    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  flux_l_qr   !< 6th-order advective flux at south face of grid box - rainwater
+    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  flux_l_s    !< 6th-order advective flux at south face of grid box - passive scalar
+    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  flux_l_sa   !< 6th-order advective flux at south face of grid box - salinity
+    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  flux_l_u    !< 6th-order advective flux at south face of grid box - u-component
+    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  flux_l_v    !< 6th-order advective flux at south face of grid box - v-component
+    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  flux_l_w    !< 6th-order advective flux at south face of grid box - w-component
+    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  kh          !< eddy diffusivity for heat 
+    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  km          !< eddy diffusivity for momentum
+    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  l_wall      !< near-wall mixing length
+    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  prr         !< rain rate
+    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  p_loc       !< local array in multigrid/sor solver containing the pressure which is iteratively advanced in each iteration step
+    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  tend        !< tendency field (time integration)
+    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  tric        !< coefficients of the tridiagonal matrix for solution of the Poisson equation in Fourier space
+    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  u_m_l       !< velocity data (u at left boundary) from time level t-dt required for radiation boundary condition
+    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  u_m_n       !< velocity data (u at north boundary) from time level t-dt required for radiation boundary condition
+    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  u_m_r       !< velocity data (u at right boundary) from time level t-dt required for radiation boundary condition
+    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  u_m_s       !< velocity data (u at south boundary) from time level t-dt required for radiation boundary condition
+    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  v_m_l       !< velocity data (v at left boundary) from time level t-dt required for radiation boundary condition
+    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  v_m_n       !< velocity data (v at north boundary) from time level t-dt required for radiation boundary condition
+    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  v_m_r       !< velocity data (v at right boundary) from time level t-dt required for radiation boundary condition
+    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  v_m_s       !< velocity data (v at south boundary) from time level t-dt required for radiation boundary condition
+    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  w_m_l       !< velocity data (w at left boundary) from time level t-dt required for radiation boundary condition
+    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  w_m_n       !< velocity data (w at north boundary) from time level t-dt required for radiation boundary condition
+    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  w_m_r       !< velocity data (w at right boundary) from time level t-dt required for radiation boundary condition
+    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  w_m_s       !< velocity data (w at south boundary) from time level t-dt required for radiation boundary condition
 
 #if defined( __nopointer )
+    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  diss       !< TKE dissipation
+    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  diss_p     !< prognostic value TKE dissipation
     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  e          !< subgrid-scale turbulence kinetic energy (sgs tke)
     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  e_p        !< prognostic value of sgs tke
@@ -715,4 +729,5 @@
     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  sa         !< ocean salinity
     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  sa_p       !< prognostic value of ocean salinity
+    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  tdiss_m    !< weighted tendency of diss for previous sub-timestep (Runge-Kutta)
     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  te_m       !< weighted tendency of e for previous sub-timestep (Runge-Kutta)
     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  tnc_m      !< weighted tendency of nc for previous sub-timestep (Runge-Kutta)
@@ -735,4 +750,7 @@
     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  w_p        !< prognostic value of w
 #else
+    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  diss_1  !< pointer for swapping of timelevels for respective quantity
+    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  diss_2  !< pointer for swapping of timelevels for respective quantity
+    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  diss_3  !< pointer for swapping of timelevels for respective quantity
     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  e_1     !< pointer for swapping of timelevels for respective quantity
     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  e_2     !< pointer for swapping of timelevels for respective quantity
@@ -780,4 +798,6 @@
     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  w_3     !< pointer for swapping of timelevels for respective quantity
 
+    REAL(wp), DIMENSION(:,:,:), POINTER, CONTIGUOUS ::  diss       !< pointer: TKE dissipation
+    REAL(wp), DIMENSION(:,:,:), POINTER, CONTIGUOUS ::  diss_p     !< pointer: prognostic value of TKE dissipation
     REAL(wp), DIMENSION(:,:,:), POINTER, CONTIGUOUS ::  e          !< pointer: subgrid-scale turbulence kinetic energy (sgs tke)
     REAL(wp), DIMENSION(:,:,:), POINTER, CONTIGUOUS ::  e_p        !< pointer: prognostic value of sgs tke
@@ -803,4 +823,5 @@
     REAL(wp), DIMENSION(:,:,:), POINTER, CONTIGUOUS ::  sa         !< pointer: ocean salinity
     REAL(wp), DIMENSION(:,:,:), POINTER, CONTIGUOUS ::  sa_p       !< pointer: prognostic value of ocean salinity
+    REAL(wp), DIMENSION(:,:,:), POINTER, CONTIGUOUS ::  tdiss_m    !< pointer: weighted tendency of diss for previous sub-timestep (Runge-Kutta)
     REAL(wp), DIMENSION(:,:,:), POINTER, CONTIGUOUS ::  te_m       !< pointer: weighted tendency of e for previous sub-timestep (Runge-Kutta)
     REAL(wp), DIMENSION(:,:,:), POINTER, CONTIGUOUS ::  tnc_m      !< pointer: weighted tendency of nc for previous sub-timestep (Runge-Kutta)
@@ -867,5 +888,8 @@
     REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  z0q_av                 !< avg. roughness length for moisture
 
+    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  diss_av       !< avg. tke dissipation rate
     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  e_av          !< avg. subgrid-scale tke
+    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  kh_av         !< avg. eddy diffusivity for heat
+    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  km_av         !< avg. eddy diffusivity for momentum
     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  lpt_av        !< avg. liquid water potential temperature
     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  nc_av         !< avg. cloud drop number density
@@ -1018,4 +1042,5 @@
     CHARACTER (LEN=20)   ::  reference_state = 'initial_profile'          !< namelist parameter  
     CHARACTER (LEN=20)   ::  timestep_scheme = 'runge-kutta-3'            !< namelist parameter       
+    CHARACTER (LEN=20)   ::  turbulence_closure = 'Moeng_Wyngaard'        !< namelist parameter
     CHARACTER (LEN=40)   ::  topography = 'flat'                          !< namelist parameter 
     CHARACTER (LEN=64)   ::  host = '????'                                !< hostname on which PALM is running, ENVPAR namelist parameter provided by mrun
@@ -1086,5 +1111,4 @@
     INTEGER(iwp) ::  io_blocks = 1                     !< number of blocks for which I/O is done in sequence (total number of PEs / maximum_parallel_io_streams)
     INTEGER(iwp) ::  iran = -1234567                   !< integer random number used for flow disturbances
-    INTEGER(iwp) ::  lod = 1                           !< level of detail, topography input parameter 
     INTEGER(iwp) ::  masks = 0                         !< counter for number of masked output quantities
     INTEGER(iwp) ::  maximum_grid_level                !< number of grid levels that the multigrid solver is using
@@ -1157,4 +1181,5 @@
     LOGICAL ::  aerosol_c3h4o4 =.FALSE.                      !< malonic acid aerosol for bulk scheme
     LOGICAL ::  aerosol_nh4no3 =.FALSE.                      !< malonic acid aerosol for bulk scheme
+    LOGICAL ::  air_chemistry = .FALSE.                      !< chemistry model switch
     LOGICAL ::  bc_lr_cyc =.TRUE.                            !< left-right boundary condition cyclic?
     LOGICAL ::  bc_lr_dirrad = .FALSE.                       !< left-right boundary condition dirichlet/radiation?
@@ -1193,4 +1218,9 @@
     LOGICAL ::  first_call_lpm = .TRUE.                      !< call lpm only once per timestep?
     LOGICAL ::  force_print_header = .FALSE.                 !< namelist parameter
+    LOGICAL ::  force_bound_l = .FALSE.                      !< flag indicating domain boundary on left side to set forcing boundary conditions
+    LOGICAL ::  force_bound_n = .FALSE.                      !< flag indicating domain boundary on north side to set forcing boundary conditions
+    LOGICAL ::  force_bound_r = .FALSE.                      !< flag indicating domain boundary on right side to set forcing boundary conditions
+    LOGICAL ::  force_bound_s = .FALSE.                      !< flag indicating domain boundary on south side to set forcing boundary conditions
+    LOGICAL ::  forcing = .FALSE.                            !< flag controlling forcing from large-scale model     
     LOGICAL ::  galilei_transformation = .FALSE.             !< namelist parameter
     LOGICAL ::  humidity = .FALSE.                           !< namelist parameter
@@ -1203,4 +1233,5 @@
     LOGICAL ::  large_scale_subsidence = .FALSE.             !< namelist parameter
     LOGICAL ::  land_surface = .FALSE.                       !< use land surface model?
+    LOGICAL ::  les_mw = .FALSE.                             !< use Moeng-Wyngaard turbulence closure for LES mode
     LOGICAL ::  lsf_exception = .FALSE.                      !< use of lsf with buildings (temporary)?
     LOGICAL ::  lsf_surf = .TRUE.                            !< use surface forcing (large scale forcing)?
@@ -1212,8 +1243,8 @@
     LOGICAL ::  microphysics_seifert = .FALSE.               !< use 2-moment Seifert and Beheng scheme
     LOGICAL ::  mg_switch_to_pe0 = .FALSE.                   !< internal multigrid switch for steering the ghost point exchange in case that data has been collected on PE0
-    LOGICAL ::  nest_bound_l = .FALSE.                       !< nested boundary on left side?
-    LOGICAL ::  nest_bound_n = .FALSE.                       !< nested boundary on north side?
-    LOGICAL ::  nest_bound_r = .FALSE.                       !< nested boundary on right side?
-    LOGICAL ::  nest_bound_s = .FALSE.                       !< nested boundary on south side?
+    LOGICAL ::  nest_bound_l = .FALSE.                       !< flag indicating nested domain boundary on left side
+    LOGICAL ::  nest_bound_n = .FALSE.                       !< flag indicating nested domain boundary on north side
+    LOGICAL ::  nest_bound_r = .FALSE.                       !< flag indicating nested domain boundary on right side
+    LOGICAL ::  nest_bound_s = .FALSE.                       !< flag indicating nested domain boundary on south side
     LOGICAL ::  nest_domain  = .FALSE.                       !< domain is nested into a parent domain?
     LOGICAL ::  neutral = .FALSE.                            !< namelist parameter
@@ -1227,4 +1258,7 @@
     LOGICAL ::  precipitation = .FALSE.                      !< namelist parameter
     LOGICAL ::  random_heatflux = .FALSE.                    !< namelist parameter
+    LOGICAL ::  rans_mode = .FALSE.                          !< switch between RANS and LES mode
+    LOGICAL ::  rans_tke_e = .FALSE.                         !< use TKE-e turbulence closure for RANS mode
+    LOGICAL ::  rans_tke_l = .FALSE.                         !< use TKE-l turbulence closure for RANS mode
     LOGICAL ::  recycling_yshift = .FALSE.                   !< namelist parameter
     LOGICAL ::  run_control_header = .FALSE.                 !< onetime output of RUN_CONTROL header
@@ -1237,4 +1271,5 @@
     LOGICAL ::  synthetic_turbulence_generator = .FALSE.     !< flag for synthetic turbulence generator module
     LOGICAL ::  terminate_run = .FALSE.                      !< terminate run (cpu-time limit, restarts)?
+    LOGICAL ::  topo_no_distinct = .FALSE.                   !< flag controlling classification of topography surfaces
     LOGICAL ::  transpose_compute_overlap = .FALSE.          !< namelist parameter
     LOGICAL ::  turbulent_inflow = .FALSE.                   !< namelist parameter
@@ -1251,4 +1286,5 @@
     LOGICAL ::  use_ug_for_galilei_tr = .TRUE.               !< namelist parameter
     LOGICAL ::  use_upstream_for_tke = .FALSE.               !< namelist parameter
+    LOGICAL ::  uv_exposure = .FALSE.                        !< switch for uv exposure model
     LOGICAL ::  virtual_flight = .FALSE.                     !< use virtual flight model?
     LOGICAL ::  wall_adjustment = .TRUE.                     !< namelist parameter
@@ -1865,14 +1901,14 @@
     INTEGER(iwp), DIMENSION(MPI_STATUS_SIZE,100) ::  wait_stat  !< MPI status variable used in various MPI calls
     
-    INTEGER(iwp) ::  ngp_yz_int   !< number of ghost points in yz-plane 
-    INTEGER(iwp) ::  type_xz_int  !< derived MPI datatype for 3-D integer ghost-point exchange - north / south
-    INTEGER(iwp) ::  type_yz_int  !< derived MPI datatype for 3-D integer ghost-point exchange - left / right
-
     INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::  ngp_xz      !< number of ghost points in xz-plane on different multigrid level
+    INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::  ngp_xz_int  !< number of ghost points in xz-plane on different multigrid level
     INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::  ngp_yz      !< number of ghost points in yz-plane on different multigrid level
+    INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::  ngp_yz_int  !< number of ghost points in yz-plane on different multigrid level
     INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::  type_x_int  !< derived MPI datatype for 2-D integer ghost-point exchange - north / south
     INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::  type_xz     !< derived MPI datatype for 3-D integer ghost-point exchange - north / south
+    INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::  type_xz_int !< derived MPI datatype for 3-D integer ghost-point exchange - north / south
     INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::  type_y_int  !< derived MPI datatype for 2-D integer ghost-point exchange - left / right
     INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::  type_yz     !< derived MPI datatype for 3-D integer ghost-point exchange - left / right 
+    INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::  type_yz_int !< derived MPI datatype for 3-D integer ghost-point exchange - left / right
 
     LOGICAL ::  left_border_pe  = .FALSE.  !< = .TRUE. if PE is on left border of computational domain
Index: palm/trunk/SOURCE/netcdf_data_input_mod.f90
===================================================================
--- palm/trunk/SOURCE/netcdf_data_input_mod.f90	(revision 2696)
+++ palm/trunk/SOURCE/netcdf_data_input_mod.f90	(revision 2696)
@@ -0,0 +1,4001 @@
+!> @file netcdf_data_input_mod.f90
+!------------------------------------------------------------------------------!
+! This file is part of the PALM model system.
+!
+! PALM is free software: you can redistribute it and/or modify it under the
+! terms of the GNU General Public License as published by the Free Software
+! Foundation, either version 3 of the License, or (at your option) any later
+! version.
+!
+! PALM is distributed in the hope that it will be useful, but WITHOUT ANY
+! WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+! A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+!
+! You should have received a copy of the GNU General Public License along with
+! PALM. If not, see <http://www.gnu.org/licenses/>.
+!
+! Copyright 1997-2017 Leibniz Universitaet Hannover
+!------------------------------------------------------------------------------!
+!
+! Current revisions:
+! -----------------
+! 
+! 
+! Former revisions:
+! -----------------
+! $Id$
+! Initial revision
+! 
+! 
+!
+!
+! Authors:
+! --------
+! @author Matthias Suehring
+! 
+! Description:
+! ------------
+!> Modulue contains routines to input data according to Palm input data       
+!> standart using dynamic and static input files. 
+!>
+!> @todo - Order input alphabetically
+!> @todo - Revise error messages and error numbers
+!> @todo - Input of missing quantities (chemical species, emission rates)
+!> @todo - Defninition and input of still missing variable attributes
+!> @todo - Input of initial geostrophic wind profiles with cyclic conditions.
+!------------------------------------------------------------------------------!
+ MODULE netcdf_data_input_mod
+ 
+    USE control_parameters,                                                    &
+        ONLY:  coupling_char, io_blocks, io_group
+
+    USE kinds
+
+#if defined ( __netcdf )
+    USE NETCDF
+#endif
+
+    USE pegrid
+
+!
+!-- Define data type for nesting in larger-scale models like COSMO.
+!-- Data type comprises u, v, w, pt, and q at lateral and top boundaries. 
+    TYPE force_type
+
+       CHARACTER(LEN=100), DIMENSION(:), ALLOCATABLE ::  var_names
+
+       INTEGER(iwp) ::  nt     !< number of time levels in dynamic input file
+       INTEGER(iwp) ::  nzu    !< number of vertical levels on scalar grid in dynamic input file
+       INTEGER(iwp) ::  nzw    !< number of vertical levels on w grid in dynamic input file
+       INTEGER(iwp) ::  tind   !< time index for reference time in large-scale forcing data
+       INTEGER(iwp) ::  tind_p !< time index for following time in large-scale forcing data
+
+       LOGICAL      ::  init         = .FALSE.
+       LOGICAL      ::  interpolated = .FALSE.
+       LOGICAL      ::  from_file    = .FALSE.
+
+       REAL(wp), DIMENSION(:), ALLOCATABLE ::  surface_pressure !< time dependent surface pressure
+       REAL(wp), DIMENSION(:), ALLOCATABLE ::  time             !< time levels in dynamic input file
+       REAL(wp), DIMENSION(:), ALLOCATABLE ::  zu_atmos         !< vertical levels at scalar grid in dynamic input file
+       REAL(wp), DIMENSION(:), ALLOCATABLE ::  zw_atmos         !< vertical levels at w grid in dynamic input file
+
+       REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  u_left   !< u-component at left boundary
+       REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  v_left   !< v-component at left boundary
+       REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  w_left   !< w-component at left boundary
+       REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  q_left   !< mixing ratio at left boundary
+       REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  pt_left  !< potentital temperautre at left boundary
+
+       REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  u_north  !< u-component at north boundary
+       REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  v_north  !< v-component at north boundary
+       REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  w_north  !< w-component at north boundary
+       REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  q_north  !< mixing ratio at north boundary
+       REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  pt_north !< potentital temperautre at north boundary
+
+       REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  u_right  !< u-component at right boundary
+       REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  v_right  !< v-component at right boundary
+       REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  w_right  !< w-component at right boundary
+       REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  q_right  !< mixing ratio at right boundary
+       REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  pt_right !< potentital temperautre at right boundary
+
+       REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  u_south  !< u-component at south boundary
+       REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  v_south  !< v-component at south boundary
+       REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  w_south  !< w-component at south boundary
+       REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  q_south  !< mixing ratio at south boundary
+       REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  pt_south !< potentital temperautre at south boundary
+
+       REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  u_top    !< u-component at top boundary
+       REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  v_top    !< v-component at top boundary
+       REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  w_top    !< w-component at top boundary
+       REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  q_top    !< mixing ratio at top boundary
+       REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  pt_top   !< potentital temperautre at top boundary
+
+    END TYPE force_type
+
+    TYPE init_type
+
+       INTEGER(iwp) ::  lod_msoil !< level of detail - soil moisture 
+       INTEGER(iwp) ::  lod_pt    !< level of detail - pt
+       INTEGER(iwp) ::  lod_q     !< level of detail - q
+       INTEGER(iwp) ::  lod_tsoil !< level of detail - soil temperature 
+       INTEGER(iwp) ::  lod_u     !< level of detail - u-component
+       INTEGER(iwp) ::  lod_v     !< level of detail - v-component
+       INTEGER(iwp) ::  lod_w     !< level of detail - w-component
+       INTEGER(iwp) ::  nx        !< number of scalar grid points along x in dynamic input file
+       INTEGER(iwp) ::  nxu       !< number of u grid points along x in dynamic input file
+       INTEGER(iwp) ::  ny        !< number of scalar grid points along y in dynamic input file
+       INTEGER(iwp) ::  nyv       !< number of v grid points along y in dynamic input file
+       INTEGER(iwp) ::  nzs       !< number of vertical soil levels in dynamic input file
+       INTEGER(iwp) ::  nzu       !< number of vertical levels on scalar grid in dynamic input file
+       INTEGER(iwp) ::  nzw       !< number of vertical levels on w grid in dynamic input file
+
+       LOGICAL ::  from_file_msoil  = .FALSE. !< flag indicating whether soil moisture is already initialized from file 
+       LOGICAL ::  from_file_pt     = .FALSE. !< flag indicating whether pt is already initialized from file
+       LOGICAL ::  from_file_q      = .FALSE. !< flag indicating whether q is already initialized from file  
+       LOGICAL ::  from_file_tsoil  = .FALSE. !< flag indicating whether soil temperature is already initialized from file 
+       LOGICAL ::  from_file_u      = .FALSE. !< flag indicating whether u is already initialized from file 
+       LOGICAL ::  from_file_v      = .FALSE. !< flag indicating whether v is already initialized from file 
+       LOGICAL ::  from_file_w      = .FALSE. !< flag indicating whether w is already initialized from file 
+
+       REAL(wp) ::  fill_msoil       !< fill value for soil moisture
+       REAL(wp) ::  fill_pt          !< fill value for pt
+       REAL(wp) ::  fill_q           !< fill value for q
+       REAL(wp) ::  fill_tsoil       !< fill value for soil temperature
+       REAL(wp) ::  fill_u           !< fill value for u
+       REAL(wp) ::  fill_v           !< fill value for v
+       REAL(wp) ::  fill_w           !< fill value for w
+       REAL(wp) ::  latitude         !< latitude of the southern model boundary
+       REAL(wp) ::  longitude        !< longitude of the western model boundary
+
+       REAL(wp), DIMENSION(:), ALLOCATABLE ::  msoil_init   !< initial vertical profile of soil moisture
+       REAL(wp), DIMENSION(:), ALLOCATABLE ::  pt_init      !< initial vertical profile of pt
+       REAL(wp), DIMENSION(:), ALLOCATABLE ::  q_init       !< initial vertical profile of q
+       REAL(wp), DIMENSION(:), ALLOCATABLE ::  tsoil_init   !< initial vertical profile of soil temperature
+       REAL(wp), DIMENSION(:), ALLOCATABLE ::  u_init       !< initial vertical profile of u
+       REAL(wp), DIMENSION(:), ALLOCATABLE ::  ug_init      !< initial vertical profile of ug
+       REAL(wp), DIMENSION(:), ALLOCATABLE ::  v_init       !< initial vertical profile of v
+       REAL(wp), DIMENSION(:), ALLOCATABLE ::  vg_init      !< initial vertical profile of ug
+       REAL(wp), DIMENSION(:), ALLOCATABLE ::  w_init       !< initial vertical profile of w
+       REAL(wp), DIMENSION(:), ALLOCATABLE ::  z_soil       !< vertical levels in soil in dynamic input file, used for interpolation
+       REAL(wp), DIMENSION(:), ALLOCATABLE ::  zu_atmos     !< vertical levels at scalar grid in dynamic input file, used for interpolation
+       REAL(wp), DIMENSION(:), ALLOCATABLE ::  zw_atmos     !< vertical levels at w grid in dynamic input file, used for interpolation
+
+
+       REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  msoil        !< initial 3d soil moisture provide by Inifor and interpolated onto soil grid
+       REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  tsoil        !< initial 3d soil temperature provide by Inifor and interpolated onto soil grid
+
+    END TYPE init_type
+
+!
+!-- Define data structures for different input data types. 
+!-- 8-bit Integer 2D
+    TYPE int_2d_8bit
+       INTEGER(KIND=1) ::  fill = -127                      !< fill value
+       INTEGER(KIND=1), DIMENSION(:,:), ALLOCATABLE ::  var !< respective variable
+       
+       LOGICAL ::  from_file = .FALSE.  !< flag indicating whether an input variable is available and read from file or default values are used  
+    END TYPE int_2d_8bit
+!
+!-- 32-bit Integer 2D
+    TYPE int_2d_32bit
+       INTEGER(iwp) ::  fill = -9999                      !< fill value
+       INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  var  !< respective variable
+
+       LOGICAL ::  from_file = .FALSE. !< flag indicating whether an input variable is available and read from file or default values are used  
+    END TYPE int_2d_32bit
+
+!
+!-- Define data type to read 2D real variables
+    TYPE real_2d
+       LOGICAL ::  from_file = .FALSE.  !< flag indicating whether an input variable is available and read from file or default values are used  
+
+       REAL(wp) ::  fill = -9999.9_wp                !< fill value
+       REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  var !< respective variable
+    END TYPE real_2d
+
+!
+!-- Define data type to read 2D real variables
+    TYPE real_3d
+       LOGICAL ::  from_file = .FALSE.  !< flag indicating whether an input variable is available and read from file or default values are used  
+
+       INTEGER(iwp) ::  nz   !< number of grid points along vertical dimension                      
+
+       REAL(wp) ::  fill = -9999.9_wp                  !< fill value
+       REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  var !< respective variable
+    END TYPE real_3d
+!
+!-- Define data structure where the dimension and type of the input depends 
+!-- on the given level of detail. 
+!-- For buildings, the input is either 2D float, or 3d byte. 
+    TYPE build_in
+       INTEGER(iwp)    ::  lod = 1                               !< level of detail                  
+       INTEGER(KIND=1) ::  fill2 = -127                          !< fill value for lod = 2
+       INTEGER(iwp)    ::  nz                                    !< number of vertical layers in file
+       INTEGER(KIND=1), DIMENSION(:,:,:), ALLOCATABLE ::  var_3d !< 3d variable (lod = 2)
+
+       LOGICAL ::  from_file = .FALSE.  !< flag indicating whether an input variable is available and read from file or default values are used  
+
+       REAL(wp)                              ::  fill1 = -9999.9_wp !< fill values for lod = 1
+       REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  var_2d             !< 2d variable (lod = 1)
+    END TYPE build_in
+
+!
+!-- For soil_type, the input is either 2D or 3D one-byte integer. 
+    TYPE soil_in
+       INTEGER(iwp)                                   ::  lod = 1      !< level of detail                  
+       INTEGER(KIND=1)                                ::  fill = -127  !< fill value for lod = 2
+       INTEGER(KIND=1), DIMENSION(:,:), ALLOCATABLE   ::  var_2d       !< 2d variable (lod = 1)
+       INTEGER(KIND=1), DIMENSION(:,:,:), ALLOCATABLE ::  var_3d       !< 3d variable (lod = 2)
+
+       LOGICAL ::  from_file = .FALSE.  !< flag indicating whether an input variable is available and read from file or default values are used  
+    END TYPE soil_in
+
+!
+!-- Define data type for fractions between surface types
+    TYPE fracs
+       INTEGER(iwp)                            ::  nf             !< total number of fractions
+       INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::  nfracs         !< dimension array for fraction
+
+       LOGICAL ::  from_file = .FALSE. !< flag indicating whether an input variable is available and read from file or default values are used  
+
+       REAL(wp)                                ::  fill = -9999.9_wp !< fill value
+       REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  frac              !< respective fraction between different surface types
+    END TYPE fracs
+!
+!-- Data type for parameter lists, Depending on the given level of detail, 
+!-- the input is 3D or 4D
+    TYPE pars
+       INTEGER(iwp)                            ::  lod = 1         !< level of detail
+       INTEGER(iwp)                            ::  np              !< total number of parameters
+       INTEGER(iwp)                            ::  nz              !< vertical dimension - number of soil layers
+       INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::  layers          !< dimension array for soil layers 
+       INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::  pars            !< dimension array for parameters
+
+       LOGICAL ::  from_file = .FALSE.  !< flag indicating whether an input variable is available and read from file or default values are used  
+
+       REAL(wp)                                  ::  fill = -9999.9_wp !< fill value
+       REAL(wp), DIMENSION(:,:,:), ALLOCATABLE   ::  pars_xy           !< respective parameters, level of detail = 1
+       REAL(wp), DIMENSION(:,:,:,:), ALLOCATABLE ::  pars_xyz          !< respective parameters, level of detail = 2
+    END TYPE pars
+
+    TYPE(force_type) ::  force !< input variable for lateral and top boundaries derived from large-scale model  
+
+    TYPE(init_type) ::  init_3d    !< data structure for the initialization of the 3D flow and soil fields
+    TYPE(init_type) ::  init_model !< data structure for the initialization of the model 
+
+!
+!-- Define 2D variables of type NC_BYTE
+    TYPE(int_2d_8bit)  ::  albedo_type_f     !< input variable for albedo type
+    TYPE(int_2d_8bit)  ::  building_type_f   !< input variable for building type
+    TYPE(int_2d_8bit)  ::  pavement_type_f   !< input variable for pavenment type
+    TYPE(int_2d_8bit)  ::  street_crossing_f !< input variable for water type
+    TYPE(int_2d_8bit)  ::  street_type_f     !< input variable for water type
+    TYPE(int_2d_8bit)  ::  vegetation_type_f !< input variable for vegetation type
+    TYPE(int_2d_8bit)  ::  water_type_f      !< input variable for water type
+
+!
+!-- Define 2D variables of type NC_INT
+    TYPE(int_2d_32bit) ::  building_id_f     !< input variable for building ID
+!
+!-- Define 2D variables of type NC_FLOAT
+    TYPE(real_2d) ::  terrain_height_f       !< input variable for terrain height
+!
+!-- Define 3D variables of type NC_FLOAT
+    TYPE(real_3d) ::  basal_area_density_f    !< input variable for basal area density - resolved vegetation
+    TYPE(real_3d) ::  leaf_area_density_f     !< input variable for leaf area density - resolved vegetation
+    TYPE(real_3d) ::  root_area_density_lad_f !< input variable for root area density - resolved vegetation
+    TYPE(real_3d) ::  root_area_density_lsm_f !< input variable for root area density - parametrized vegetation
+
+!
+!-- Define input variable for buildings
+    TYPE(build_in) ::  buildings_f           !< input variable for buildings
+!
+!-- Define input variables for soil_type
+    TYPE(soil_in)  ::  soil_type_f           !< input variable for soil type
+
+    TYPE(fracs) ::  surface_fraction_f       !< input variable for surface fraction
+
+    TYPE(pars)  ::  albedo_pars_f              !< input variable for albedo parameters
+    TYPE(pars)  ::  building_pars_f            !< input variable for building parameters
+    TYPE(pars)  ::  pavement_pars_f            !< input variable for pavement parameters
+    TYPE(pars)  ::  pavement_subsurface_pars_f !< input variable for pavement parameters
+    TYPE(pars)  ::  soil_pars_f                !< input variable for soil parameters
+    TYPE(pars)  ::  vegetation_pars_f          !< input variable for vegetation parameters
+    TYPE(pars)  ::  water_pars_f               !< input variable for water parameters
+
+
+    CHARACTER(LEN=3)  ::  char_lod  = 'lod'         !< name of level-of-detail attribute in NetCDF file
+
+    CHARACTER(LEN=10) ::  char_fill = '_FillValue'  !< name of fill value attribute in NetCDF file
+    CHARACTER(LEN=10) ::  char_lon  = 'origin_lon'  !< name of global attribute for longitude in NetCDF file
+    CHARACTER(LEN=10) ::  char_lat  = 'origin_lat'  !< name of global attribute for latitude in NetCDF file
+
+    CHARACTER(LEN=100) ::  input_file_static  = 'PIDS_STATIC'  !< Name of file which comprises static input data
+    CHARACTER(LEN=100) ::  input_file_dynamic = 'PIDS_DYNAMIC' !< Name of file which comprises dynamic input data
+
+    INTEGER(iwp) ::  nc_stat         !< return value of nf90 function call
+
+    LOGICAL ::  input_pids_static  = .FALSE.   !< Flag indicating whether Palm-input-data-standard file containing static information exists
+    LOGICAL ::  input_pids_dynamic = .FALSE.   !< Flag indicating whether Palm-input-data-standard file containing dynamic information exists
+
+    SAVE
+
+    PRIVATE
+
+    INTERFACE netcdf_data_input_interpolate
+       MODULE PROCEDURE netcdf_data_input_interpolate_1d
+       MODULE PROCEDURE netcdf_data_input_interpolate_1d_soil
+       MODULE PROCEDURE netcdf_data_input_interpolate_2d
+       MODULE PROCEDURE netcdf_data_input_interpolate_3d
+    END INTERFACE netcdf_data_input_interpolate
+
+    INTERFACE netcdf_data_input_check_dynamic
+       MODULE PROCEDURE netcdf_data_input_check_dynamic
+    END INTERFACE netcdf_data_input_check_dynamic
+
+    INTERFACE netcdf_data_input_check_static
+       MODULE PROCEDURE netcdf_data_input_check_static
+    END INTERFACE netcdf_data_input_check_static
+
+    INTERFACE netcdf_data_input_inquire_file
+       MODULE PROCEDURE netcdf_data_input_inquire_file
+    END INTERFACE netcdf_data_input_inquire_file
+
+    INTERFACE netcdf_data_input_init
+       MODULE PROCEDURE netcdf_data_input_init
+    END INTERFACE netcdf_data_input_init
+
+    INTERFACE netcdf_data_input_init_3d
+       MODULE PROCEDURE netcdf_data_input_init_3d
+    END INTERFACE netcdf_data_input_init_3d
+
+    INTERFACE netcdf_data_input_lsf
+       MODULE PROCEDURE netcdf_data_input_lsf
+    END INTERFACE netcdf_data_input_lsf
+
+    INTERFACE netcdf_data_input_surface_data
+       MODULE PROCEDURE netcdf_data_input_surface_data
+    END INTERFACE netcdf_data_input_surface_data
+
+    INTERFACE netcdf_data_input_topo
+       MODULE PROCEDURE netcdf_data_input_topo
+    END INTERFACE netcdf_data_input_topo
+
+    INTERFACE get_variable
+       MODULE PROCEDURE get_variable_1d_int
+       MODULE PROCEDURE get_variable_1d_real
+       MODULE PROCEDURE get_variable_2d_int8
+       MODULE PROCEDURE get_variable_2d_int32
+       MODULE PROCEDURE get_variable_2d_real
+       MODULE PROCEDURE get_variable_3d_int8
+       MODULE PROCEDURE get_variable_3d_real
+       MODULE PROCEDURE get_variable_4d_real
+    END INTERFACE get_variable
+
+    INTERFACE get_attribute
+       MODULE PROCEDURE get_attribute_real
+       MODULE PROCEDURE get_attribute_int8
+       MODULE PROCEDURE get_attribute_int32
+       MODULE PROCEDURE get_attribute_string
+    END INTERFACE get_attribute
+
+!
+!-- Public variables
+    PUBLIC albedo_pars_f, albedo_type_f, basal_area_density_f, buildings_f,    &
+           building_id_f, building_pars_f, building_type_f, force, init_3d,    &
+           init_model, input_file_static, input_pids_static,                   &
+           input_pids_dynamic, leaf_area_density_f,                            &
+           pavement_pars_f, pavement_subsurface_pars_f, pavement_type_f,       &
+           root_area_density_lad_f, root_area_density_lsm_f, soil_pars_f,      &
+           soil_type_f, street_crossing_f, street_type_f, surface_fraction_f,  &
+           terrain_height_f, vegetation_pars_f, vegetation_type_f,             &
+           water_pars_f, water_type_f
+
+!
+!-- Public subroutines
+    PUBLIC netcdf_data_input_check_dynamic, netcdf_data_input_check_static,    &
+           netcdf_data_input_inquire_file,                                     &
+           netcdf_data_input_init, netcdf_data_input_init_3d,                  &
+           netcdf_data_input_interpolate, netcdf_data_input_lsf,               &
+           netcdf_data_input_surface_data, netcdf_data_input_topo
+
+ CONTAINS
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Inquires whether NetCDF input files according to Palm-input-data standard 
+!> exist. Moreover, basic checks are performed.
+!------------------------------------------------------------------------------!
+    SUBROUTINE netcdf_data_input_inquire_file
+
+       USE control_parameters,                                                 &
+           ONLY:  land_surface, message_string, topo_no_distinct, urban_surface
+
+       IMPLICIT NONE
+
+       LOGICAL ::  check_nest  !< flag indicating whether a check passed or not
+
+#if defined ( __netcdf )
+       INQUIRE( FILE = TRIM( input_file_static ) // TRIM( coupling_char ),     &
+                EXIST = input_pids_static  )
+       INQUIRE( FILE = TRIM( input_file_dynamic ) // TRIM( coupling_char ),    &
+                EXIST = input_pids_dynamic )
+#endif
+
+       IF ( .NOT. input_pids_static )  THEN
+          message_string = 'File ' // TRIM( input_file_static ) //             &
+                           TRIM( coupling_char ) // ' does ' //                &
+                           'not exist - input from external files ' //         &
+                           'is read from separate ASCII files, ' //            &
+                           'if required.' 
+          CALL message( 'netcdf_data_input_mod', 'PA0430', 0, 0, 0, 6, 0 )
+!
+!--       As long as topography can be input via ASCII format, no distinction 
+!--       between building and terrain can be made. This case, classify all
+!--       surfaces as default type. Same in case land-surface and urban-surface
+!--       model are not applied.
+          topo_no_distinct = .TRUE. 
+       ENDIF
+
+    END SUBROUTINE netcdf_data_input_inquire_file
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Reads global attributes required for initialization of the model.
+!------------------------------------------------------------------------------!
+    SUBROUTINE netcdf_data_input_init
+
+       IMPLICIT NONE
+
+       INTEGER(iwp) ::  id_mod   !< NetCDF id of input file
+       INTEGER(iwp) ::  ii       !< running index for IO blocks
+
+       IF ( .NOT. input_pids_static )  RETURN  
+
+       DO  ii = 0, io_blocks-1
+          IF ( ii == io_group )  THEN
+#if defined ( __netcdf )
+!
+!--          Open file in read-only mode
+             CALL open_read_file( TRIM( input_file_static ) //                 &
+                                  TRIM( coupling_char ), id_mod )
+!
+!--          Read global attribute for latitude and longitude
+             CALL get_attribute( id_mod, char_lat,                             &
+                                 init_model%latitude, .TRUE. )
+
+             CALL get_attribute( id_mod, char_lon,                             &
+                                 init_model%longitude, .TRUE. )
+!
+!--          Finally, close input file
+             CALL close_file( id_mod )
+#endif
+          ENDIF
+#if defined( __parallel )
+          CALL MPI_BARRIER( comm2d, ierr )
+#endif
+       ENDDO
+
+    END SUBROUTINE netcdf_data_input_init
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Reads surface classification data, such as vegetation and soil type, etc. .
+!------------------------------------------------------------------------------!
+    SUBROUTINE netcdf_data_input_surface_data
+
+       USE control_parameters,                                                 &
+           ONLY:  bc_lr_cyc, bc_ns_cyc, land_surface, message_string,          &
+                  urban_surface
+
+       USE indices,                                                            &
+           ONLY:  nbgp, nx, nxl, nxlg, nxr, nxrg, ny, nyn, nyng, nys, nysg
+
+       IMPLICIT NONE
+
+       CHARACTER(LEN=100), DIMENSION(:), ALLOCATABLE ::  var_names  !< variable names in static input file
+
+       INTEGER(iwp) ::  i         !< running index along x-direction
+       INTEGER(iwp) ::  ii        !< running index for IO blocks
+       INTEGER(iwp) ::  id_surf   !< NetCDF id of input file
+       INTEGER(iwp) ::  j         !< running index along y-direction
+       INTEGER(iwp) ::  k         !< running index along z-direction
+       INTEGER(iwp) ::  k2        !< running index
+       INTEGER(iwp) ::  num_vars  !< number of variables in input file
+       INTEGER(iwp) ::  nz_soil   !< number of soil layers in file
+
+       INTEGER(iwp), DIMENSION(nysg:nyng,nxlg:nxrg) ::  var_exchange_int !< dummy variables used to exchange 32-bit Integer arrays
+       INTEGER(iwp), DIMENSION(:,:,:), ALLOCATABLE  ::  var_dum_int_3d !< dummy variables used to exchange real arrays
+
+       REAL(wp), DIMENSION(nysg:nyng,nxlg:nxrg) ::  var_exchange_real !< dummy variables used to exchange real arrays
+
+       REAL(wp), DIMENSION(:,:,:),   ALLOCATABLE ::  var_dum_real_3d !< dummy variables used to exchange real arrays
+       REAL(wp), DIMENSION(:,:,:,:), ALLOCATABLE ::  var_dum_real_4d !< dummy variables used to exchange real arrays
+
+!
+!--    If not static input file is available, skip this routine
+       IF ( .NOT. input_pids_static )  RETURN  
+!
+!--    Moreover, skip routine if no land-surface or urban-surface module are 
+!--    applied as no variable is used anyway.  
+       IF (  .NOT. land_surface  .OR.  .NOT. urban_surface )  RETURN
+!
+!--    Initialize dummy arrays used for ghost-point exchange
+       var_exchange_int  = 0
+       var_exchange_real = 0.0_wp
+
+       DO  ii = 0, io_blocks-1
+          IF ( ii == io_group )  THEN
+#if defined ( __netcdf )
+!
+!--          Open file in read-only mode
+             CALL open_read_file( TRIM( input_file_static ) //                 &
+                                  TRIM( coupling_char ) , id_surf )
+
+!
+!--          At first, inquire all variable names. 
+!--          This will be used to check whether an optional input variable exist 
+!--          or not. 
+             CALL inquire_num_variables( id_surf, num_vars )
+
+             ALLOCATE( var_names(1:num_vars) )
+             CALL inquire_variable_names( id_surf, var_names )
+
+!
+!--          Read vegetation type and required attributes
+             IF ( check_existence( var_names, 'vegetation_type' ) )  THEN
+                vegetation_type_f%from_file = .TRUE.
+                CALL get_attribute( id_surf, char_fill,                        &
+                                    vegetation_type_f%fill,                    &
+                                    .FALSE., 'vegetation_type' )
+!
+!--             PE-wise reading of 2D vegetation type.
+                ALLOCATE ( vegetation_type_f%var(nys:nyn,nxl:nxr)  )
+                DO  i = nxl, nxr
+                   CALL get_variable( id_surf, 'vegetation_type',              &
+                                      i, vegetation_type_f%var(:,i) )
+                ENDDO
+             ELSE
+                vegetation_type_f%from_file = .FALSE.
+             ENDIF
+
+!
+!--          Read soil type and required attributes
+             IF ( check_existence( var_names, 'soil_type' ) )  THEN
+                   soil_type_f%from_file = .TRUE. 
+!
+!--             Note, lod is currently not on file; skip for the moment
+!                 CALL get_attribute( id_surf, char_lod,                       &
+!                                            soil_type_f%lod,                  &
+!                                            .FALSE., 'soil_type' )
+                CALL get_attribute( id_surf, char_fill,                        &
+                                    soil_type_f%fill,                          &
+                                    .FALSE., 'soil_type' ) 
+
+                IF ( soil_type_f%lod == 1 )  THEN
+!
+!--                PE-wise reading of 2D soil type.
+                   ALLOCATE ( soil_type_f%var_2d(nys:nyn,nxl:nxr)  )
+                   DO  i = nxl, nxr
+                      CALL get_variable( id_surf, 'soil_type',                 &
+                                         i, soil_type_f%var_2d(:,i) ) 
+                   ENDDO
+                ELSEIF ( soil_type_f%lod == 2 )  THEN
+!
+!--                Obtain number of soil layers from file.
+                   CALL get_dimension_length( id_surf, nz_soil, 'zsoil' )
+!
+!--                PE-wise reading of 3D soil type.
+                   ALLOCATE ( soil_type_f%var_3d(0:nz_soil,nys:nyn,nxl:nxr) )
+                   DO  i = nxl, nxr
+                      DO  j = nys, nyn
+                         CALL get_variable( id_surf, 'soil_type', i, j,        &
+                                            soil_type_f%var_3d(:,j,i) )   
+                      ENDDO
+                   ENDDO 
+                ENDIF
+             ELSE
+                soil_type_f%from_file = .FALSE.
+             ENDIF
+
+!
+!--          Read pavement type and required attributes
+             IF ( check_existence( var_names, 'pavement_type' ) )  THEN
+                pavement_type_f%from_file = .TRUE. 
+                CALL get_attribute( id_surf, char_fill,                        &
+                                    pavement_type_f%fill, .FALSE.,             &
+                                    'pavement_type' )  
+!
+!--             PE-wise reading of 2D pavement type.
+                ALLOCATE ( pavement_type_f%var(nys:nyn,nxl:nxr)  )
+                DO  i = nxl, nxr
+                   CALL get_variable( id_surf, 'pavement_type',                &
+                                      i, pavement_type_f%var(:,i) )  
+                ENDDO
+             ELSE
+                pavement_type_f%from_file = .FALSE.
+             ENDIF
+
+!
+!--          Read water type and required attributes
+             IF ( check_existence( var_names, 'water_type' ) )  THEN
+                water_type_f%from_file = .TRUE. 
+                CALL get_attribute( id_surf, char_fill, water_type_f%fill,     &
+                                    .FALSE., 'water_type' )
+!
+!--             PE-wise reading of 2D water type.
+                ALLOCATE ( water_type_f%var(nys:nyn,nxl:nxr)  )
+                DO  i = nxl, nxr
+                   CALL get_variable( id_surf, 'water_type', i,                &
+                                      water_type_f%var(:,i) ) 
+                ENDDO
+             ELSE
+                water_type_f%from_file = .FALSE.
+             ENDIF
+!
+!--          Read surface fractions and related information
+             IF ( check_existence( var_names, 'surface_fraction' ) )  THEN
+                surface_fraction_f%from_file = .TRUE. 
+                CALL get_attribute( id_surf, char_fill,                        &
+                                    surface_fraction_f%fill,                   &
+                                    .FALSE., 'surface_fraction' )
+!
+!--             Inquire number of surface fractions
+                CALL get_dimension_length( id_surf,                            &
+                                           surface_fraction_f%nf,              &
+                                           'nsurface_fraction' )
+!            
+!--             Allocate dimension array and input array for surface fractions
+                ALLOCATE( surface_fraction_f%nfracs(0:surface_fraction_f%nf-1) )
+                ALLOCATE( surface_fraction_f%frac(0:surface_fraction_f%nf-1,   &
+                                                  nys:nyn,nxl:nxr) )
+!
+!--             Get dimension of surface fractions
+                CALL get_variable( id_surf, 'nsurface_fraction',               &
+                                   surface_fraction_f%nfracs )
+!
+!--             Read surface fractions
+                DO  i = nxl, nxr
+                   DO  j = nys, nyn
+                      CALL get_variable( id_surf, 'surface_fraction', i, j,    &
+                                         surface_fraction_f%frac(:,j,i) ) 
+                   ENDDO
+                ENDDO
+             ELSE
+                surface_fraction_f%from_file = .FALSE. 
+             ENDIF
+!
+!--          Read building parameters and related information
+             IF ( check_existence( var_names, 'building_pars' ) )  THEN
+                building_pars_f%from_file = .TRUE. 
+                CALL get_attribute( id_surf, char_fill,                        &
+                                    building_pars_f%fill,                      &
+                                    .FALSE., 'building_pars' )  
+!
+!--             Inquire number of building parameters
+                CALL get_dimension_length( id_surf,                            &
+                                           building_pars_f%np,                 &
+                                           'nbuilding_pars' )
+!            
+!--             Allocate dimension array and input array for building parameters
+                ALLOCATE( building_pars_f%pars(0:building_pars_f%np-1) )
+                ALLOCATE( building_pars_f%pars_xy(0:building_pars_f%np-1,      &
+                                                  nys:nyn,nxl:nxr) )
+!
+!--             Get dimension of building parameters
+                CALL get_variable( id_surf, 'nbuilding_pars',                  &
+                                   building_pars_f%pars )
+!
+!--             Read building_pars
+                DO  i = nxl, nxr
+                   DO  j = nys, nyn
+                      CALL get_variable( id_surf, 'building_pars', i, j,       &
+                                         building_pars_f%pars_xy(:,j,i) )   
+                   ENDDO
+                ENDDO
+             ELSE
+                building_pars_f%from_file = .FALSE. 
+             ENDIF
+
+!
+!--          Read albedo type and required attributes
+             IF ( check_existence( var_names, 'albedo_type' ) )  THEN
+                albedo_type_f%from_file = .TRUE. 
+                CALL get_attribute( id_surf, char_fill, albedo_type_f%fill,    &
+                                    .FALSE.,  'albedo_type' ) 
+!
+!--             PE-wise reading of 2D water type.
+                ALLOCATE ( albedo_type_f%var(nys:nyn,nxl:nxr)  )
+                DO  i = nxl, nxr
+                   CALL get_variable( id_surf, 'albedo_type',                  &
+                                      i, albedo_type_f%var(:,i) )  
+                ENDDO
+             ELSE
+                albedo_type_f%from_file = .FALSE.
+             ENDIF
+!
+!--          Read albedo parameters and related information
+             IF ( check_existence( var_names, 'albedo_pars' ) )  THEN
+                albedo_pars_f%from_file = .TRUE. 
+                CALL get_attribute( id_surf, char_fill, albedo_pars_f%fill,    &
+                                    .FALSE., 'albedo_pars' )  
+!
+!--             Inquire number of albedo parameters
+                CALL get_dimension_length( id_surf, albedo_pars_f%np,          &
+                                           'nalbedo_pars' )
+!            
+!--             Allocate dimension array and input array for albedo parameters
+                ALLOCATE( albedo_pars_f%pars(0:albedo_pars_f%np-1) )
+                ALLOCATE( albedo_pars_f%pars_xy(0:albedo_pars_f%np-1,          &
+                                                nys:nyn,nxl:nxr) )
+!
+!--             Get dimension of albedo parameters
+                CALL get_variable( id_surf, 'nalbedo_pars', albedo_pars_f%pars )
+
+                DO  i = nxl, nxr
+                   DO  j = nys, nyn
+                      CALL get_variable( id_surf, 'albedo_pars', i, j,         &
+                                         albedo_pars_f%pars_xy(:,j,i) )   
+                   ENDDO
+                ENDDO
+             ELSE
+                albedo_pars_f%from_file = .FALSE. 
+             ENDIF
+
+!
+!--          Read pavement parameters and related information
+             IF ( check_existence( var_names, 'pavement_pars' ) )  THEN
+                pavement_pars_f%from_file = .TRUE. 
+                CALL get_attribute( id_surf, char_fill,                        &
+                                    pavement_pars_f%fill,                      &
+                                    .FALSE., 'pavement_pars' )  
+!
+!--             Inquire number of pavement parameters
+                CALL get_dimension_length( id_surf, pavement_pars_f%np,        &
+                                           'npavement_pars' )
+!            
+!--             Allocate dimension array and input array for pavement parameters
+                ALLOCATE( pavement_pars_f%pars(0:pavement_pars_f%np-1) )
+                ALLOCATE( pavement_pars_f%pars_xy(0:pavement_pars_f%np-1,      &
+                                                  nys:nyn,nxl:nxr) )
+!
+!--             Get dimension of pavement parameters
+                CALL get_variable( id_surf, 'npavement_pars',                  &
+                                   pavement_pars_f%pars )
+   
+                DO  i = nxl, nxr
+                   DO  j = nys, nyn
+                      CALL get_variable( id_surf, 'pavement_pars', i, j,       &
+                                         pavement_pars_f%pars_xy(:,j,i) )   
+                   ENDDO
+                ENDDO
+             ELSE
+                pavement_pars_f%from_file = .FALSE. 
+             ENDIF
+
+!
+!--          Read pavement subsurface parameters and related information
+             IF ( check_existence( var_names, 'pavement_subsurface_pars' ) )   &
+             THEN
+                pavement_subsurface_pars_f%from_file = .TRUE. 
+                CALL get_attribute( id_surf, char_fill,                        &
+                                    pavement_subsurface_pars_f%fill,           &
+                                    .FALSE., 'pavement_subsurface_pars' )  
+!
+!--             Inquire number of parameters
+                CALL get_dimension_length( id_surf,                            &
+                                           pavement_subsurface_pars_f%np,      &
+                                           'npavement_subsurface_pars' )
+!
+!--             Inquire number of soil layers 
+                CALL get_dimension_length( id_surf,                            &
+                                           pavement_subsurface_pars_f%nz,      &
+                                           'zsoil' )
+!            
+!--             Allocate dimension array and input array for pavement parameters
+                ALLOCATE( pavement_subsurface_pars_f%pars                      &
+                                  (0:pavement_subsurface_pars_f%np-1) )
+                ALLOCATE( pavement_subsurface_pars_f%pars_xyz                  &
+                                  (0:pavement_subsurface_pars_f%np-1,          &
+                                   0:pavement_subsurface_pars_f%nz-1,          &
+                                   nys:nyn,nxl:nxr) )
+!
+!--             Get dimension of pavement parameters
+                CALL get_variable( id_surf, 'npavement_subsurface_pars',       &
+                                   pavement_subsurface_pars_f%pars )
+   
+                DO  i = nxl, nxr
+                   DO  j = nys, nyn
+                      CALL get_variable(                                       &
+                                  id_surf, 'pavement_subsurface_pars',         &
+                                  i, j,                                        &
+                                  pavement_subsurface_pars_f%pars_xyz(:,:,j,i),&
+                                  pavement_subsurface_pars_f%nz,               &
+                                  pavement_subsurface_pars_f%np )   
+                   ENDDO
+                ENDDO
+             ELSE
+                pavement_subsurface_pars_f%from_file = .FALSE. 
+             ENDIF
+
+
+!
+!--          Read vegetation parameters and related information
+             IF ( check_existence( var_names, 'vegetation_pars' ) )  THEN
+                vegetation_pars_f%from_file = .TRUE. 
+                CALL get_attribute( id_surf, char_fill,                        &
+                                    vegetation_pars_f%fill,                    &
+                                    .FALSE.,  'vegetation_pars' )
+!
+!--             Inquire number of vegetation parameters
+                CALL get_dimension_length( id_surf, vegetation_pars_f%np,      &
+                                           'nvegetation_pars' )
+!            
+!--             Allocate dimension array and input array for surface fractions
+                ALLOCATE( vegetation_pars_f%pars(0:vegetation_pars_f%np-1) )
+                ALLOCATE( vegetation_pars_f%pars_xy(0:vegetation_pars_f%np-1,  &
+                                                    nys:nyn,nxl:nxr) )
+!
+!--             Get dimension of the parameters
+                CALL get_variable( id_surf, 'nvegetation_pars',                &
+                                   vegetation_pars_f%pars )
+
+                DO  i = nxl, nxr
+                   DO  j = nys, nyn
+                      CALL get_variable( id_surf, 'vegetation_pars', i, j,     &
+                                         vegetation_pars_f%pars_xy(:,j,i) ) 
+                   ENDDO
+                ENDDO
+             ELSE
+                vegetation_pars_f%from_file = .FALSE. 
+             ENDIF
+
+!
+!--          Read root parameters/distribution and related information
+             IF ( check_existence( var_names, 'soil_pars' ) )  THEN
+                soil_pars_f%from_file = .TRUE. 
+                CALL get_attribute( id_surf, char_fill,                        &
+                                    soil_pars_f%fill,                          & 
+                                    .FALSE., 'soil_pars' ) 
+
+                CALL get_attribute( id_surf, char_lod,                         &
+                                    soil_pars_f%lod,                           &
+                                    .FALSE., 'soil_pars' ) 
+
+!
+!--             Inquire number of soil parameters
+                CALL get_dimension_length( id_surf,                            &
+                                           soil_pars_f%np,                     &
+                                           'nsoil_pars' )
+!
+!--             Read parameters array
+                ALLOCATE( soil_pars_f%pars(0:soil_pars_f%np-1) )
+                CALL get_variable( id_surf, 'nsoil_pars', soil_pars_f%pars )
+
+!
+!--             In case of level of detail 2, also inquire number of vertical
+!--             soil layers, allocate memory and read the respective dimension
+                IF ( soil_pars_f%lod == 2 )  THEN
+                   CALL get_dimension_length( id_surf, soil_pars_f%nz, 'zsoil' )
+
+                   ALLOCATE( soil_pars_f%layers(0:soil_pars_f%nz-1) )
+                   CALL get_variable( id_surf, 'zsoil', soil_pars_f%layers )
+
+                ENDIF
+
+!
+!--             Read soil parameters, depending on level of detail
+                IF ( soil_pars_f%lod == 1 )  THEN      
+                   ALLOCATE( soil_pars_f%pars_xy(0:soil_pars_f%np-1,           &
+                                                 nys:nyn,nxl:nxr) )       
+                   DO  i = nxl, nxr
+                      DO  j = nys, nyn
+                         CALL get_variable( id_surf, 'soil_pars', i, j,        &
+                                            soil_pars_f%pars_xy(:,j,i) ) 
+                      ENDDO
+                   ENDDO
+
+                ELSEIF ( soil_pars_f%lod == 2 )  THEN
+                   ALLOCATE( soil_pars_f%pars_xyz(0:soil_pars_f%np-1,          &
+                                                  0:soil_pars_f%nz-1,          &
+                                                  nys:nyn,nxl:nxr) )
+                   DO  i = nxl, nxr
+                      DO  j = nys, nyn
+                         CALL get_variable( id_surf, 'soil_pars', i, j,        &
+                                            soil_pars_f%pars_xyz(:,:,j,i),     &
+                                            soil_pars_f%nz, soil_pars_f%np )  
+                      ENDDO
+                   ENDDO
+                ENDIF
+             ELSE
+                soil_pars_f%from_file = .FALSE. 
+             ENDIF
+
+!
+!--          Read water parameters and related information
+             IF ( check_existence( var_names, 'water_pars' ) )  THEN
+                water_pars_f%from_file = .TRUE. 
+                CALL get_attribute( id_surf, char_fill,                        &
+                                    water_pars_f%fill,                         &
+                                    .FALSE., 'water_pars' )  
+!
+!--             Inquire number of water parameters
+                CALL get_dimension_length( id_surf,                            & 
+                                           water_pars_f%np,                    &
+                                           'nwater_pars' )
+!            
+!--             Allocate dimension array and input array for water parameters
+                ALLOCATE( water_pars_f%pars(0:water_pars_f%np-1) )
+                ALLOCATE( water_pars_f%pars_xy(0:water_pars_f%np-1,            &
+                                               nys:nyn,nxl:nxr) )
+!
+!--             Get dimension of water parameters
+                CALL get_variable( id_surf, 'nwater_pars', water_pars_f%pars )
+
+                DO  i = nxl, nxr
+                   DO  j = nys, nyn
+                      CALL get_variable( id_surf, 'water_pars', i, j,          &
+                                         water_pars_f%pars_xy(:,j,i) )   
+                   ENDDO
+                ENDDO
+             ELSE
+                water_pars_f%from_file = .FALSE. 
+             ENDIF
+
+!
+!--          Read leaf area density - resolved vegetation
+             IF ( check_existence( var_names, 'leaf_area_density' ) )  THEN
+                leaf_area_density_f%from_file = .TRUE. 
+                CALL get_attribute( id_surf, char_fill,                        &
+                                    leaf_area_density_f%fill,                  &
+                                    .FALSE., 'leaf_area_density' )  
+!
+!--             Inquire number of vertical vegetation layer
+                CALL get_dimension_length( id_surf, leaf_area_density_f%nz,    &
+                                           'zlad' )
+!            
+!--             Allocate variable for leaf-area density
+                ALLOCATE( leaf_area_density_f%var(0:leaf_area_density_f%nz-1,  &
+                                                  nys:nyn,nxl:nxr) )
+
+                DO  i = nxl, nxr
+                   DO  j = nys, nyn
+                      CALL get_variable( id_surf, 'leaf_area_density', i, j,   &
+                                         leaf_area_density_f%var(:,j,i) ) 
+                   ENDDO
+                ENDDO
+             ELSE
+                leaf_area_density_f%from_file = .FALSE. 
+             ENDIF
+
+!
+!--          Read basal area density - resolved vegetation
+             IF ( check_existence( var_names, 'basal_area_density' ) )  THEN
+                basal_area_density_f%from_file = .TRUE. 
+                CALL get_attribute( id_surf, char_fill,                        &
+                                    basal_area_density_f%fill,                 &
+                                    .FALSE., 'basal_area_density' )  
+!
+!--             Inquire number of vertical vegetation layer
+                CALL get_dimension_length( id_surf, basal_area_density_f%nz,   &
+                                           'zlad' )
+!            
+!--             Allocate variable
+                ALLOCATE( basal_area_density_f%var(0:basal_area_density_f%nz-1,&
+                                                   nys:nyn,nxl:nxr) )
+
+                DO  i = nxl, nxr
+                   DO  j = nys, nyn
+                      CALL get_variable( id_surf, 'basal_area_density', i, j,  &
+                                         basal_area_density_f%var(:,j,i) ) 
+                   ENDDO
+                ENDDO
+             ELSE
+                basal_area_density_f%from_file = .FALSE. 
+             ENDIF
+
+!
+!--          Read root area density - resolved vegetation
+             IF ( check_existence( var_names, 'root_area_density_lad' ) )  THEN
+                root_area_density_lad_f%from_file = .TRUE. 
+                CALL get_attribute( id_surf, char_fill,                        &
+                                    root_area_density_lad_f%fill,              &
+                                    .FALSE., 'root_area_density_lad' )  
+!
+!--             Inquire number of vertical soil layers
+                CALL get_dimension_length( id_surf, root_area_density_lad_f%nz,&
+                                           'zsoil' )
+!            
+!--             Allocate variable
+                ALLOCATE( root_area_density_lad_f%var                          &
+                                            (0:root_area_density_lad_f%nz-1,   &
+                                             nys:nyn,nxl:nxr) )
+
+                DO  i = nxl, nxr
+                   DO  j = nys, nyn
+                      CALL get_variable( id_surf, 'root_area_density_lad', i, j,&
+                                         root_area_density_lad_f%var(:,j,i) ) 
+                   ENDDO
+                ENDDO
+             ELSE
+                root_area_density_lad_f%from_file = .FALSE. 
+             ENDIF
+
+!
+!--          Read root area density - parametrized vegetation
+             IF ( check_existence( var_names, 'root_area_density_lsm' ) )  THEN
+                root_area_density_lsm_f%from_file = .TRUE.
+                CALL get_attribute( id_surf, char_fill,                        &
+                                    root_area_density_lsm_f%fill,              &
+                                    .FALSE., 'root_area_density_lsm' )
+!
+!--             Obtain number of soil layers from file and allocate variable
+                CALL get_dimension_length( id_surf, root_area_density_lsm_f%nz,&
+                                           'zsoil' )
+                ALLOCATE( root_area_density_lsm_f%var                          &
+                                              (0:root_area_density_lsm_f%nz-1, &
+                                               nys:nyn,nxl:nxr) )
+
+!
+!--             Read root-area density
+                DO  i = nxl, nxr
+                   DO  j = nys, nyn
+                      CALL get_variable( id_surf, 'root_area_density_lsm',     &
+                                         i, j,                                 &
+                                         root_area_density_lsm_f%var(:,j,i) )   
+                   ENDDO
+                ENDDO
+
+             ELSE
+                root_area_density_lsm_f%from_file = .FALSE.
+             ENDIF
+!
+!--          Read street type and street crossing
+             IF ( check_existence( var_names, 'street_type' ) )  THEN
+                street_type_f%from_file = .TRUE. 
+                CALL get_attribute( id_surf, char_fill,                        &
+                                    street_type_f%fill, .FALSE.,               &
+                                    'street_type' )  
+!
+!--             PE-wise reading of 2D pavement type.
+                ALLOCATE ( street_type_f%var(nys:nyn,nxl:nxr)  )
+                DO  i = nxl, nxr
+                   CALL get_variable( id_surf, 'street_type',                  &
+                                      i, street_type_f%var(:,i) )  
+                ENDDO
+             ELSE
+                street_type_f%from_file = .FALSE.
+             ENDIF
+
+             IF ( check_existence( var_names, 'street_crossing' ) )  THEN
+                street_crossing_f%from_file = .TRUE. 
+                CALL get_attribute( id_surf, char_fill,                        &
+                                    street_crossing_f%fill, .FALSE.,           &
+                                    'street_crossing' )  
+!
+!--             PE-wise reading of 2D pavement type.
+                ALLOCATE ( street_crossing_f%var(nys:nyn,nxl:nxr)  )
+                DO  i = nxl, nxr
+                   CALL get_variable( id_surf, 'street_crossing',              &
+                                      i, street_crossing_f%var(:,i) )  
+                ENDDO
+             ELSE
+                street_crossing_f%from_file = .FALSE.
+             ENDIF
+!
+!--          Still missing: root_resolved and building_surface_pars.
+!--          Will be implemented as soon as they are available.
+
+!
+!--          Finally, close input file
+             CALL close_file( id_surf )
+#endif
+          ENDIF
+#if defined( __parallel )
+          CALL MPI_BARRIER( comm2d, ierr )
+#endif
+       ENDDO
+!
+!--    Exchange 1 ghost points for surface variables. Please note, ghost point
+!--    exchange for 3D parameter lists should be revised by using additional
+!--    MPI datatypes or rewriting exchange_horiz.
+!--    Moreover, varialbes will be resized in the following, including ghost
+!--    points. 
+!--    Start with 2D Integer variables. Please note, for 8-bit integer 
+!--    variables must be swapt to 32-bit integer before calling exchange_horiz.
+       IF ( albedo_type_f%from_file )  THEN
+          var_exchange_int                  = INT( albedo_type_f%fill, KIND = 1 )
+          var_exchange_int(nys:nyn,nxl:nxr) =                                  &
+                            INT( albedo_type_f%var(nys:nyn,nxl:nxr), KIND = 4 )
+          CALL exchange_horiz_2d_int( var_exchange_int, nys, nyn, nxl, nxr, nbgp )
+          DEALLOCATE( albedo_type_f%var )
+          ALLOCATE( albedo_type_f%var(nysg:nyng,nxlg:nxrg) )
+          albedo_type_f%var = INT( var_exchange_int, KIND = 1 )
+       ENDIF
+       IF ( pavement_type_f%from_file )  THEN
+          var_exchange_int                  = INT( pavement_type_f%fill, KIND = 1 )
+          var_exchange_int(nys:nyn,nxl:nxr) =                                  &
+                          INT( pavement_type_f%var(nys:nyn,nxl:nxr), KIND = 4 )
+          CALL exchange_horiz_2d_int( var_exchange_int, nys, nyn, nxl, nxr, nbgp )
+          DEALLOCATE( pavement_type_f%var )
+          ALLOCATE( pavement_type_f%var(nysg:nyng,nxlg:nxrg) )
+          pavement_type_f%var = INT( var_exchange_int, KIND = 1 )
+       ENDIF
+       IF ( soil_type_f%from_file  .AND.  ALLOCATED( soil_type_f%var_2d ) )  THEN
+          var_exchange_int                  = INT( soil_type_f%fill, KIND = 1 )
+          var_exchange_int(nys:nyn,nxl:nxr) =                                  &
+                            INT( soil_type_f%var_2d(nys:nyn,nxl:nxr), KIND = 4 )
+          CALL exchange_horiz_2d_int( var_exchange_int, nys, nyn, nxl, nxr, nbgp )
+          DEALLOCATE( soil_type_f%var_2d )
+          ALLOCATE( soil_type_f%var_2d(nysg:nyng,nxlg:nxrg) )
+          soil_type_f%var_2d = INT( var_exchange_int, KIND = 1 )
+       ENDIF
+       IF ( vegetation_type_f%from_file )  THEN
+          var_exchange_int                  = INT( vegetation_type_f%fill, KIND = 1 )
+          var_exchange_int(nys:nyn,nxl:nxr) =                                  &
+                        INT( vegetation_type_f%var(nys:nyn,nxl:nxr), KIND = 4 )
+          CALL exchange_horiz_2d_int( var_exchange_int, nys, nyn, nxl, nxr, nbgp )
+          DEALLOCATE( vegetation_type_f%var )
+          ALLOCATE( vegetation_type_f%var(nysg:nyng,nxlg:nxrg) )
+          vegetation_type_f%var = INT( var_exchange_int, KIND = 1 )
+       ENDIF
+       IF ( water_type_f%from_file )  THEN
+          var_exchange_int                  = INT( water_type_f%fill, KIND = 1 )
+          var_exchange_int(nys:nyn,nxl:nxr) =                                  &
+                         INT( water_type_f%var(nys:nyn,nxl:nxr), KIND = 4 )
+          CALL exchange_horiz_2d_int( var_exchange_int, nys, nyn, nxl, nxr, nbgp )
+          DEALLOCATE( water_type_f%var )
+          ALLOCATE( water_type_f%var(nysg:nyng,nxlg:nxrg) )
+          water_type_f%var = INT( var_exchange_int, KIND = 1 )
+       ENDIF
+!
+!--    Exchange 1 ghost point for 3/4-D variables. For the sake of simplicity,
+!--    loop further dimensions to use 2D exchange routines. 
+!--    This should be revised later by introducing new MPI datatypes.
+       IF ( soil_type_f%from_file  .AND.  ALLOCATED( soil_type_f%var_3d ) )    &
+       THEN
+          ALLOCATE( var_dum_int_3d(0:nz_soil,nys:nyn,nxl:nxr) ) 
+          var_dum_int_3d = soil_type_f%var_3d
+          DEALLOCATE( soil_type_f%var_3d )
+          ALLOCATE( soil_type_f%var_3d(0:nz_soil,nysg:nyng,nxlg:nxrg) )
+          soil_type_f%var_3d = soil_type_f%fill
+
+          DO  k = 0, nz_soil
+             var_exchange_int(nys:nyn,nxl:nxr) = var_dum_int_3d(k,nys:nyn,nxl:nxr)
+             CALL exchange_horiz_2d_int( var_exchange_int, nys, nyn, nxl, nxr, nbgp )
+             soil_type_f%var_3d(k,:,:) = INT( var_exchange_int(:,:), KIND = 1 )
+          ENDDO
+          DEALLOCATE( var_dum_int_3d )
+       ENDIF
+
+       IF ( surface_fraction_f%from_file )  THEN
+          ALLOCATE( var_dum_real_3d(0:surface_fraction_f%nf-1,nys:nyn,nxl:nxr) )
+          var_dum_real_3d = surface_fraction_f%frac
+          DEALLOCATE( surface_fraction_f%frac )
+          ALLOCATE( surface_fraction_f%frac(0:surface_fraction_f%nf-1,         &
+                                            nysg:nyng,nxlg:nxrg) )
+          surface_fraction_f%frac = surface_fraction_f%fill
+
+          DO  k = 0, surface_fraction_f%nf-1
+             var_exchange_real(nys:nyn,nxl:nxr) = var_dum_real_3d(k,nys:nyn,nxl:nxr)
+             CALL exchange_horiz_2d( var_exchange_real, nbgp )
+             surface_fraction_f%frac(k,:,:) = var_exchange_real(:,:)
+          ENDDO
+          DEALLOCATE( var_dum_real_3d )
+       ENDIF
+
+       IF ( building_pars_f%from_file )  THEN
+          ALLOCATE( var_dum_real_3d(0:building_pars_f%np-1,nys:nyn,nxl:nxr) )
+          var_dum_real_3d = building_pars_f%pars_xy
+          DEALLOCATE( building_pars_f%pars_xy )
+          ALLOCATE( building_pars_f%pars_xy(0:building_pars_f%np-1,            &
+                                            nysg:nyng,nxlg:nxrg) )
+          building_pars_f%pars_xy = building_pars_f%fill
+          DO  k = 0, building_pars_f%np-1
+             var_exchange_real(nys:nyn,nxl:nxr) =                              &
+                                              var_dum_real_3d(k,nys:nyn,nxl:nxr)
+             CALL exchange_horiz_2d( var_exchange_real, nbgp )
+             building_pars_f%pars_xy(k,:,:) = var_exchange_real(:,:)
+          ENDDO
+          DEALLOCATE( var_dum_real_3d )
+       ENDIF
+
+       IF ( albedo_pars_f%from_file )  THEN
+          ALLOCATE( var_dum_real_3d(0:albedo_pars_f%np-1,nys:nyn,nxl:nxr) )
+          var_dum_real_3d = albedo_pars_f%pars_xy
+          DEALLOCATE( albedo_pars_f%pars_xy )
+          ALLOCATE( albedo_pars_f%pars_xy(0:albedo_pars_f%np-1,                &
+                                          nysg:nyng,nxlg:nxrg) )
+          albedo_pars_f%pars_xy = albedo_pars_f%fill
+          DO  k = 0, albedo_pars_f%np-1
+             var_exchange_real(nys:nyn,nxl:nxr) =                              &
+                                              var_dum_real_3d(k,nys:nyn,nxl:nxr)
+             CALL exchange_horiz_2d( var_exchange_real, nbgp )
+             albedo_pars_f%pars_xy(k,:,:) = var_exchange_real(:,:)
+          ENDDO
+          DEALLOCATE( var_dum_real_3d )
+       ENDIF
+
+       IF ( pavement_pars_f%from_file )  THEN
+          ALLOCATE( var_dum_real_3d(0:pavement_pars_f%np-1,nys:nyn,nxl:nxr) )
+          var_dum_real_3d = pavement_pars_f%pars_xy
+          DEALLOCATE( pavement_pars_f%pars_xy )
+          ALLOCATE( pavement_pars_f%pars_xy(0:pavement_pars_f%np-1,            &
+                                            nysg:nyng,nxlg:nxrg) )
+          pavement_pars_f%pars_xy = pavement_pars_f%fill
+          DO  k = 0, pavement_pars_f%np-1
+             var_exchange_real(nys:nyn,nxl:nxr) =                              &
+                                              var_dum_real_3d(k,nys:nyn,nxl:nxr)
+             CALL exchange_horiz_2d( var_exchange_real, nbgp )
+             pavement_pars_f%pars_xy(k,:,:) = var_exchange_real(:,:)
+          ENDDO
+          DEALLOCATE( var_dum_real_3d )
+       ENDIF
+
+       IF ( vegetation_pars_f%from_file )  THEN
+          ALLOCATE( var_dum_real_3d(0:vegetation_pars_f%np-1,nys:nyn,nxl:nxr) )
+          var_dum_real_3d = vegetation_pars_f%pars_xy
+          DEALLOCATE( vegetation_pars_f%pars_xy )
+          ALLOCATE( vegetation_pars_f%pars_xy(0:vegetation_pars_f%np-1,        &
+                                            nysg:nyng,nxlg:nxrg) )
+          vegetation_pars_f%pars_xy = vegetation_pars_f%fill
+          DO  k = 0, vegetation_pars_f%np-1
+             var_exchange_real(nys:nyn,nxl:nxr) =                              &
+                                              var_dum_real_3d(k,nys:nyn,nxl:nxr)
+             CALL exchange_horiz_2d( var_exchange_real, nbgp )
+             vegetation_pars_f%pars_xy(k,:,:) = var_exchange_real(:,:)
+          ENDDO
+          DEALLOCATE( var_dum_real_3d )
+       ENDIF
+
+       IF ( water_pars_f%from_file )  THEN
+          ALLOCATE( var_dum_real_3d(0:water_pars_f%np-1,nys:nyn,nxl:nxr) )
+          var_dum_real_3d = water_pars_f%pars_xy
+          DEALLOCATE( water_pars_f%pars_xy )
+          ALLOCATE( water_pars_f%pars_xy(0:water_pars_f%np-1,                  &
+                                         nysg:nyng,nxlg:nxrg) )
+          water_pars_f%pars_xy = water_pars_f%fill
+          DO  k = 0, water_pars_f%np-1
+             var_exchange_real(nys:nyn,nxl:nxr) =                              &
+                                              var_dum_real_3d(k,nys:nyn,nxl:nxr)
+             CALL exchange_horiz_2d( var_exchange_real, nbgp )
+             water_pars_f%pars_xy(k,:,:) = var_exchange_real(:,:)
+          ENDDO
+          DEALLOCATE( var_dum_real_3d )
+       ENDIF
+
+       IF ( root_area_density_lsm_f%from_file )  THEN
+          ALLOCATE( var_dum_real_3d(0:root_area_density_lsm_f%nz-1,nys:nyn,nxl:nxr) )
+          var_dum_real_3d = root_area_density_lsm_f%var
+          DEALLOCATE( root_area_density_lsm_f%var )
+          ALLOCATE( root_area_density_lsm_f%var(0:root_area_density_lsm_f%nz-1,&
+                                                nysg:nyng,nxlg:nxrg) )
+          root_area_density_lsm_f%var = root_area_density_lsm_f%fill
+
+          DO  k = 0, root_area_density_lsm_f%nz-1
+             var_exchange_real(nys:nyn,nxl:nxr) =                              &
+                                              var_dum_real_3d(k,nys:nyn,nxl:nxr)
+             CALL exchange_horiz_2d( var_exchange_real, nbgp )
+             root_area_density_lsm_f%var(k,:,:) = var_exchange_real(:,:)
+          ENDDO
+          DEALLOCATE( var_dum_real_3d )
+       ENDIF
+
+       IF ( soil_pars_f%from_file )  THEN
+          IF ( soil_pars_f%lod == 1 )  THEN
+
+             ALLOCATE( var_dum_real_3d(0:soil_pars_f%np-1,nys:nyn,nxl:nxr) )
+             var_dum_real_3d = soil_pars_f%pars_xy
+             DEALLOCATE( soil_pars_f%pars_xy )
+             ALLOCATE( soil_pars_f%pars_xy(0:soil_pars_f%np-1,                 &
+                                            nysg:nyng,nxlg:nxrg) )
+             soil_pars_f%pars_xy = soil_pars_f%fill
+
+             DO  k = 0, soil_pars_f%np-1
+                var_exchange_real(nys:nyn,nxl:nxr) =                           &
+                                              var_dum_real_3d(k,nys:nyn,nxl:nxr)
+                CALL exchange_horiz_2d( var_exchange_real, nbgp )
+                soil_pars_f%pars_xy(k,:,:) = var_exchange_real(:,:)
+             ENDDO
+             DEALLOCATE( var_dum_real_3d )
+          ELSEIF ( soil_pars_f%lod == 2 )  THEN
+             ALLOCATE( var_dum_real_4d(0:soil_pars_f%np-1,                     &
+                                       0:soil_pars_f%nz-1,                     &
+                                       nys:nyn,nxl:nxr) )
+             var_dum_real_4d = soil_pars_f%pars_xyz
+             DEALLOCATE( soil_pars_f%pars_xyz )
+             ALLOCATE( soil_pars_f%pars_xyz(0:soil_pars_f%np-1,                &
+                                            0:soil_pars_f%nz-1,                &
+                                            nysg:nyng,nxlg:nxrg) )
+             soil_pars_f%pars_xyz = soil_pars_f%fill
+
+             DO  k2 = 0, soil_pars_f%nz-1
+                DO  k = 0, soil_pars_f%np-1
+                   var_exchange_real(nys:nyn,nxl:nxr) =                        &
+                                           var_dum_real_4d(k,k2,nys:nyn,nxl:nxr)
+                   CALL exchange_horiz_2d( var_exchange_real, nbgp )
+
+                   soil_pars_f%pars_xyz(k,k2,:,:) = var_exchange_real(:,:)
+                ENDDO
+             ENDDO
+             DEALLOCATE( var_dum_real_4d )
+          ENDIF 
+       ENDIF
+
+       IF ( pavement_subsurface_pars_f%from_file )  THEN
+          ALLOCATE( var_dum_real_4d(0:pavement_subsurface_pars_f%np-1,         &
+                                    0:pavement_subsurface_pars_f%nz-1,         &
+                                    nys:nyn,nxl:nxr) )
+          var_dum_real_4d = pavement_subsurface_pars_f%pars_xyz
+          DEALLOCATE( pavement_subsurface_pars_f%pars_xyz )
+          ALLOCATE( pavement_subsurface_pars_f%pars_xyz                        &
+                                          (0:pavement_subsurface_pars_f%np-1,  &
+                                           0:pavement_subsurface_pars_f%nz-1,  &
+                                           nysg:nyng,nxlg:nxrg) )
+          pavement_subsurface_pars_f%pars_xyz = pavement_subsurface_pars_f%fill
+
+          DO  k2 = 0, pavement_subsurface_pars_f%nz-1
+             DO  k = 0, pavement_subsurface_pars_f%np-1
+                var_exchange_real(nys:nyn,nxl:nxr) =                           &
+                                          var_dum_real_4d(k,k2,nys:nyn,nxl:nxr)
+                CALL exchange_horiz_2d( var_exchange_real, nbgp )
+                pavement_subsurface_pars_f%pars_xyz(k,k2,:,:) =                &
+                                                        var_exchange_real(:,:)
+             ENDDO
+          ENDDO
+          DEALLOCATE( var_dum_real_4d )
+       ENDIF
+
+!
+!--    In case of non-cyclic boundary conditions, set Neumann conditions at the
+!--    lateral boundaries.
+       IF ( .NOT. bc_ns_cyc )  THEN
+          IF ( nys == 0  )  THEN
+             IF ( albedo_type_f%from_file )                                    &
+                albedo_type_f%var(-1,:) = albedo_type_f%var(0,:)
+             IF ( pavement_type_f%from_file )                                  &
+                pavement_type_f%var(-1,:) = pavement_type_f%var(0,:)
+             IF ( soil_type_f%from_file )  THEN
+                IF ( ALLOCATED( soil_type_f%var_2d ) )  THEN
+                   soil_type_f%var_2d(-1,:) = soil_type_f%var_2d(0,:)
+                ELSE
+                   soil_type_f%var_3d(:,-1,:) = soil_type_f%var_3d(:,0,:)
+                ENDIF
+             ENDIF
+             IF ( vegetation_type_f%from_file )                                &
+                vegetation_type_f%var(-1,:) = vegetation_type_f%var(0,:)
+             IF ( water_type_f%from_file )                                     &
+                water_type_f%var(-1,:) = water_type_f%var(0,:)
+             IF ( surface_fraction_f%from_file )                               &
+                surface_fraction_f%frac(:,-1,:) = surface_fraction_f%frac(:,0,:)
+             IF ( building_pars_f%from_file )                                  &
+                building_pars_f%pars_xy(:,-1,:) = building_pars_f%pars_xy(:,0,:)
+             IF ( albedo_pars_f%from_file )                                    &
+                albedo_pars_f%pars_xy(:,-1,:) = albedo_pars_f%pars_xy(:,0,:)
+             IF ( pavement_pars_f%from_file )                                  &
+                pavement_pars_f%pars_xy(:,-1,:) = pavement_pars_f%pars_xy(:,0,:)
+             IF ( vegetation_pars_f%from_file )                                &
+                vegetation_pars_f%pars_xy(:,-1,:) =                            &
+                                               vegetation_pars_f%pars_xy(:,0,:)
+             IF ( water_pars_f%from_file )                                     &
+                water_pars_f%pars_xy(:,-1,:) = water_pars_f%pars_xy(:,0,:)
+             IF ( root_area_density_lsm_f%from_file )                          &
+                root_area_density_lsm_f%var(:,-1,:) =                          &
+                                            root_area_density_lsm_f%var(:,0,:)
+             IF ( soil_pars_f%from_file )  THEN
+                IF ( soil_pars_f%lod == 1 )  THEN
+                   soil_pars_f%pars_xy(:,-1,:) = soil_pars_f%pars_xy(:,0,:)
+                ELSE
+                   soil_pars_f%pars_xyz(:,:,-1,:) = soil_pars_f%pars_xyz(:,:,0,:)
+                ENDIF
+             ENDIF
+             IF ( pavement_subsurface_pars_f%from_file )                       &
+                pavement_subsurface_pars_f%pars_xyz(:,:,-1,:) =                &
+                                   pavement_subsurface_pars_f%pars_xyz(:,:,0,:)
+          ENDIF
+
+          IF ( nyn == ny )  THEN
+             IF ( albedo_type_f%from_file )                                    &
+                albedo_type_f%var(ny+1,:) = albedo_type_f%var(ny,:)
+             IF ( pavement_type_f%from_file )                                  &
+                pavement_type_f%var(ny+1,:) = pavement_type_f%var(ny,:)
+             IF ( soil_type_f%from_file )  THEN
+                IF ( ALLOCATED( soil_type_f%var_2d ) )  THEN
+                   soil_type_f%var_2d(ny+1,:) = soil_type_f%var_2d(ny,:)
+                ELSE
+                   soil_type_f%var_3d(:,ny+1,:) = soil_type_f%var_3d(:,ny,:)
+                ENDIF
+             ENDIF
+             IF ( vegetation_type_f%from_file )                                &
+                vegetation_type_f%var(ny+1,:) = vegetation_type_f%var(ny,:)
+             IF ( water_type_f%from_file )                                     &
+                water_type_f%var(ny+1,:) = water_type_f%var(ny,:)
+             IF ( surface_fraction_f%from_file )                               &
+                surface_fraction_f%frac(:,ny+1,:) =                            &
+                                             surface_fraction_f%frac(:,ny,:)
+             IF ( building_pars_f%from_file )                                  &
+                building_pars_f%pars_xy(:,ny+1,:) =                            &
+                                             building_pars_f%pars_xy(:,ny,:)
+             IF ( albedo_pars_f%from_file )                                    &
+                albedo_pars_f%pars_xy(:,ny+1,:) = albedo_pars_f%pars_xy(:,ny,:)
+             IF ( pavement_pars_f%from_file )                                  &
+                pavement_pars_f%pars_xy(:,ny+1,:) =                            &
+                                             pavement_pars_f%pars_xy(:,ny,:)
+             IF ( vegetation_pars_f%from_file )                                &
+                vegetation_pars_f%pars_xy(:,ny+1,:) =                          &
+                                               vegetation_pars_f%pars_xy(:,ny,:)
+             IF ( water_pars_f%from_file )                                     &
+                water_pars_f%pars_xy(:,ny+1,:) = water_pars_f%pars_xy(:,ny,:)
+             IF ( root_area_density_lsm_f%from_file )                          &
+                root_area_density_lsm_f%var(:,ny+1,:) =                        &
+                                            root_area_density_lsm_f%var(:,ny,:)
+             IF ( soil_pars_f%from_file )  THEN
+                IF ( soil_pars_f%lod == 1 )  THEN
+                   soil_pars_f%pars_xy(:,ny+1,:) = soil_pars_f%pars_xy(:,ny,:)
+                ELSE
+                   soil_pars_f%pars_xyz(:,:,ny+1,:) =                          &
+                                              soil_pars_f%pars_xyz(:,:,ny,:)
+                ENDIF
+             ENDIF
+             IF ( pavement_subsurface_pars_f%from_file )                       &
+                pavement_subsurface_pars_f%pars_xyz(:,:,ny+1,:) =              &
+                                   pavement_subsurface_pars_f%pars_xyz(:,:,ny,:)
+          ENDIF
+       ENDIF
+
+       IF ( .NOT. bc_lr_cyc )  THEN
+          IF ( nxl == 0 )  THEN
+            IF ( albedo_type_f%from_file )                                     &
+                albedo_type_f%var(:,-1) = albedo_type_f%var(:,0)
+             IF ( pavement_type_f%from_file )                                  &
+                pavement_type_f%var(:,-1) = pavement_type_f%var(:,0)
+             IF ( soil_type_f%from_file )  THEN
+                IF ( ALLOCATED( soil_type_f%var_2d ) )  THEN
+                   soil_type_f%var_2d(:,-1) = soil_type_f%var_2d(:,0)
+                ELSE
+                   soil_type_f%var_3d(:,:,-1) = soil_type_f%var_3d(:,:,0)
+                ENDIF
+             ENDIF
+             IF ( vegetation_type_f%from_file )                                &
+                vegetation_type_f%var(:,-1) = vegetation_type_f%var(:,0)
+             IF ( water_type_f%from_file )                                     &
+                water_type_f%var(:,-1) = water_type_f%var(:,0)
+             IF ( surface_fraction_f%from_file )                               &
+                surface_fraction_f%frac(:,:,-1) = surface_fraction_f%frac(:,:,0)
+             IF ( building_pars_f%from_file )                                  &
+                building_pars_f%pars_xy(:,:,-1) = building_pars_f%pars_xy(:,:,0)
+             IF ( albedo_pars_f%from_file )                                    &
+                albedo_pars_f%pars_xy(:,:,-1) = albedo_pars_f%pars_xy(:,:,0)
+             IF ( pavement_pars_f%from_file )                                  &
+                pavement_pars_f%pars_xy(:,:,-1) = pavement_pars_f%pars_xy(:,:,0)
+             IF ( vegetation_pars_f%from_file )                                &
+                vegetation_pars_f%pars_xy(:,:,-1) =                            &
+                                               vegetation_pars_f%pars_xy(:,:,0)
+             IF ( water_pars_f%from_file )                                     &
+                water_pars_f%pars_xy(:,:,-1) = water_pars_f%pars_xy(:,:,0)
+             IF ( root_area_density_lsm_f%from_file )                          &
+                root_area_density_lsm_f%var(:,:,-1) =                          &
+                                            root_area_density_lsm_f%var(:,:,0)
+             IF ( soil_pars_f%from_file )  THEN
+                IF ( soil_pars_f%lod == 1 )  THEN
+                   soil_pars_f%pars_xy(:,:,-1) = soil_pars_f%pars_xy(:,:,0)
+                ELSE
+                   soil_pars_f%pars_xyz(:,:,:,-1) = soil_pars_f%pars_xyz(:,:,:,0)
+                ENDIF
+             ENDIF
+             IF ( pavement_subsurface_pars_f%from_file )                       &
+                pavement_subsurface_pars_f%pars_xyz(:,:,:,-1) =                &
+                                    pavement_subsurface_pars_f%pars_xyz(:,:,:,0)
+          ENDIF
+
+          IF ( nxr == nx )  THEN
+             IF ( albedo_type_f%from_file )                                    &
+                albedo_type_f%var(:,nx+1) = albedo_type_f%var(:,nx)
+             IF ( pavement_type_f%from_file )                                  &
+                pavement_type_f%var(:,nx+1) = pavement_type_f%var(:,nx)
+             IF ( soil_type_f%from_file )  THEN
+                IF ( ALLOCATED( soil_type_f%var_2d ) )  THEN
+                   soil_type_f%var_2d(:,nx+1) = soil_type_f%var_2d(:,nx)
+                ELSE
+                   soil_type_f%var_3d(:,:,nx+1) = soil_type_f%var_3d(:,:,nx)
+                ENDIF
+             ENDIF
+             IF ( vegetation_type_f%from_file )                                &
+                vegetation_type_f%var(:,nx+1) = vegetation_type_f%var(:,nx)
+             IF ( water_type_f%from_file )                                     &
+                water_type_f%var(:,nx+1) = water_type_f%var(:,nx)
+             IF ( surface_fraction_f%from_file )                               &
+                surface_fraction_f%frac(:,:,nx+1) =                            &
+                                             surface_fraction_f%frac(:,:,nx)
+             IF ( building_pars_f%from_file )                                  &
+                building_pars_f%pars_xy(:,:,nx+1) =                            &
+                                             building_pars_f%pars_xy(:,:,nx)
+             IF ( albedo_pars_f%from_file )                                    &
+                albedo_pars_f%pars_xy(:,:,nx+1) = albedo_pars_f%pars_xy(:,:,nx)
+             IF ( pavement_pars_f%from_file )                                  &
+                pavement_pars_f%pars_xy(:,:,nx+1) =                            &
+                                             pavement_pars_f%pars_xy(:,:,nx)
+             IF ( vegetation_pars_f%from_file )                                &
+                vegetation_pars_f%pars_xy(:,:,nx+1) =                          &
+                                               vegetation_pars_f%pars_xy(:,:,nx)
+             IF ( water_pars_f%from_file )                                     &
+                water_pars_f%pars_xy(:,:,nx+1) = water_pars_f%pars_xy(:,:,nx)
+             IF ( root_area_density_lsm_f%from_file )                          &
+                root_area_density_lsm_f%var(:,:,nx+1) =                        &
+                                            root_area_density_lsm_f%var(:,:,nx)
+             IF ( soil_pars_f%from_file )  THEN
+                IF ( soil_pars_f%lod == 1 )  THEN
+                   soil_pars_f%pars_xy(:,:,nx+1) = soil_pars_f%pars_xy(:,:,nx)
+                ELSE
+                   soil_pars_f%pars_xyz(:,:,:,nx+1) =                          &
+                                              soil_pars_f%pars_xyz(:,:,:,nx)
+                ENDIF
+             ENDIF
+             IF ( pavement_subsurface_pars_f%from_file )                       &
+                pavement_subsurface_pars_f%pars_xyz(:,:,:,nx+1) =              &
+                                   pavement_subsurface_pars_f%pars_xyz(:,:,:,nx)
+          ENDIF
+       ENDIF
+
+    END SUBROUTINE netcdf_data_input_surface_data
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Reads orography and building information.
+!------------------------------------------------------------------------------!
+    SUBROUTINE netcdf_data_input_topo
+
+       USE control_parameters,                                                 &
+           ONLY:  bc_lr_cyc, bc_ns_cyc, message_string, topography
+
+       USE indices,                                                            &
+           ONLY:  nbgp, nx, nxl, nxr, ny, nyn, nys, nzb, nzt
+                  
+
+       IMPLICIT NONE
+
+       CHARACTER(LEN=100), DIMENSION(:), ALLOCATABLE ::  var_names  !< variable names in static input file
+
+
+       INTEGER(iwp) ::  i             !< running index along x-direction
+       INTEGER(iwp) ::  ii            !< running index for IO blocks
+       INTEGER(iwp) ::  id_topo       !< NetCDF id of topograhy input file
+       INTEGER(iwp) ::  j             !< running index along y-direction
+       INTEGER(iwp) ::  k             !< running index along z-direction
+       INTEGER(iwp) ::  num_vars      !< number of variables in netcdf input file
+       INTEGER(iwp) ::  skip_n_rows   !< counting variable to skip rows while reading topography file
+
+       INTEGER(iwp), DIMENSION(nys-nbgp:nyn+nbgp,nxl-nbgp:nxr+nbgp) ::  var_exchange_int !< dummy variables used to exchange 32-bit Integer arrays
+
+       REAL(wp) ::  dum           !< dummy variable to skip columns while reading topography file   
+
+       IF ( TRIM( topography ) /= 'read_from_file' )  RETURN
+
+       DO  ii = 0, io_blocks-1
+          IF ( ii == io_group )  THEN
+#if defined ( __netcdf )
+!
+!--          Input via palm-input data standard 
+             IF ( input_pids_static )  THEN
+!
+!--             Open file in read-only mode
+                CALL open_read_file( TRIM( input_file_static ) //              &
+                                     TRIM( coupling_char ), id_topo )  
+
+!
+!--             At first, inquire all variable names. 
+!--             This will be used to check whether an  input variable exist 
+!--             or not. 
+                CALL inquire_num_variables( id_topo, num_vars )
+!
+!--             Allocate memory to store variable names and inquire them.
+                ALLOCATE( var_names(1:num_vars) )
+                CALL inquire_variable_names( id_topo, var_names )
+!
+!--             Terrain height. First, get variable-related _FillValue attribute
+                IF ( check_existence( var_names, 'orography_2D' ) )  THEN
+                   terrain_height_f%from_file = .TRUE. 
+                   CALL get_attribute( id_topo, char_fill,                     &
+                                       terrain_height_f%fill,                  &
+                                       .FALSE., 'orography_2D' ) 
+!
+!--                PE-wise reading of 2D terrain height.
+                   ALLOCATE ( terrain_height_f%var(nys:nyn,nxl:nxr)  )
+                   DO  i = nxl, nxr
+                      CALL get_variable( id_topo, 'orography_2D',              &
+                                         i, terrain_height_f%var(:,i) )  
+                   ENDDO
+                ELSE
+                   terrain_height_f%from_file = .FALSE. 
+                ENDIF
+
+!
+!--             Read building height. First, read its _FillValue attribute, 
+!--             as well as lod attribute
+                buildings_f%from_file = .FALSE. 
+                IF ( check_existence( var_names, 'buildings_2D' ) )  THEN
+                   buildings_f%from_file = .TRUE. 
+                   CALL get_attribute( id_topo, char_lod, buildings_f%lod,     &
+                                       .FALSE., 'buildings_2D' )     
+
+                   CALL get_attribute( id_topo, char_fill,                     &
+                                       buildings_f%fill1,                      &
+                                       .FALSE., 'buildings_2D' )
+
+!
+!--                Read 2D topography
+                   IF ( buildings_f%lod == 1 )  THEN
+                      ALLOCATE ( buildings_f%var_2d(nys:nyn,nxl:nxr) )
+                      DO  i = nxl, nxr
+                         CALL get_variable( id_topo, 'buildings_2D',           &
+                                            i, buildings_f%var_2d(:,i) ) 
+                      ENDDO
+                   ELSE 
+                      message_string = 'NetCDF attribute lod ' //              &
+                                       '(level of detail) is not set properly.'
+                      CALL message( 'netcdf_data_input_mod', 'PA0999',         &
+                                     1, 2, 0, 6, 0 )
+                   ENDIF
+                ENDIF
+!
+!--             If available, also read 3D building information. If both are
+!--             available, use 3D information.
+!                 IF ( check_existence( var_names, 'buildings_3D' ) )  THEN
+!                    buildings_f%from_file = .TRUE. 
+!                    CALL get_attribute( id_topo, char_lod, buildings_f%lod,     &
+!                                        .FALSE., 'buildings_3D' )     
+! 
+!                    CALL get_attribute( id_topo, char_fill,                     &
+!                                        buildings_f%fill2,                      &
+!                                        .FALSE., 'buildings_3D' )
+! 
+!                    CALL get_dimension_length( id_topo, buildings_f%nz, 'z' )
+!  
+!                    IF ( buildings_f%lod == 2 )  THEN
+!                       ALLOCATE( buildings_f%var_3d(nzb:buildings_f%nz,         &
+!                                                    nys:nyn,nxl:nxr) )
+!                       buildings_f%var_3d = 0
+! !
+! !--                   Read data PE-wise. Read yz-slices.
+!                       DO  i = nxl, nxr
+!                          DO  j = nys, nyn
+!                             CALL get_variable( id_topo, 'buildings_3D',        &
+!                                                i, j,                           &
+!                                                buildings_f%var_3d(:,j,i) )
+!                          ENDDO
+!                       ENDDO
+!                    ELSE 
+!                       message_string = 'NetCDF attribute lod ' //              &
+!                                        '(level of detail) is not set properly.'
+!                       CALL message( 'netcdf_data_input_mod', 'PA0999',         &
+!                                      1, 2, 0, 6, 0 )
+!                    ENDIF
+!                 ENDIF
+!
+!--             Read building IDs and its FillValue attribute. Further required 
+!--             for mapping buildings on top of orography.
+                IF ( check_existence( var_names, 'building_id' ) )  THEN
+                   building_id_f%from_file = .TRUE. 
+                   CALL get_attribute( id_topo, char_fill,                     &
+                                       building_id_f%fill, .FALSE.,            &
+                                       'building_id' )
+             
+
+                   ALLOCATE ( building_id_f%var(nys:nyn,nxl:nxr) )
+                   DO  i = nxl, nxr
+                      CALL get_variable( id_topo, 'building_id',               &
+                                          i, building_id_f%var(:,i) ) 
+                   ENDDO
+                ELSE
+                   building_id_f%from_file = .FALSE. 
+                ENDIF
+!
+!--             Read building_type and required attributes. 
+                IF ( check_existence( var_names, 'building_type' ) )  THEN
+                   building_type_f%from_file = .TRUE. 
+                   CALL get_attribute( id_topo, char_fill,                     &
+                                       building_type_f%fill, .FALSE.,          &
+                                       'building_type' ) 
+                
+                   ALLOCATE ( building_type_f%var(nys:nyn,nxl:nxr) )
+                   DO  i = nxl, nxr
+                      CALL get_variable( id_topo, 'building_type',             &
+                                         i, building_type_f%var(:,i) )
+                   ENDDO
+                ELSE
+                   building_type_f%from_file = .FALSE.
+                ENDIF
+
+!
+!--             Close topography input file
+                CALL close_file( id_topo )
+#endif
+!
+!--          ASCII input
+             ELSE
+
+                OPEN( 90, FILE='TOPOGRAPHY_DATA'//TRIM( coupling_char ),       &
+                      STATUS='OLD', FORM='FORMATTED', ERR=10 )
+!
+!--             Read topography PE-wise. Rows are read from nyn to nys, columns
+!--             are read from nxl to nxr. At first, ny-nyn rows need to be skipped.
+                skip_n_rows = 0
+                DO WHILE ( skip_n_rows < ny - nyn )
+                   READ( 90, * )  
+                   skip_n_rows = skip_n_rows + 1
+                ENDDO
+!
+!--             Read data from nyn to nys and nxl to nxr. Therefore, skip 
+!--             column until nxl-1 is reached
+                ALLOCATE ( buildings_f%var_2d(nys:nyn,nxl:nxr) )
+                DO  j = nyn, nys, -1
+                   READ( 90, *, ERR=11, END=11 )                               &
+                                   ( dum, i = 0, nxl-1 ),                      &
+                                   ( buildings_f%var_2d(j,i), i = nxl, nxr )
+                ENDDO
+
+                GOTO 12
+          
+ 10             message_string = 'file TOPOGRAPHY'//TRIM( coupling_char )//    &
+                                 ' does not exist'
+                CALL message( 'netcdf_data_input_mod', 'PA0208', 1, 2, 0, 6, 0 )
+
+ 11             message_string = 'errors in file TOPOGRAPHY_DATA'//            &
+                                 TRIM( coupling_char )
+                CALL message( 'netcdf_data_input_mod', 'PA0209', 1, 2, 0, 6, 0 )
+
+ 12             CLOSE( 90 )
+                buildings_f%from_file = .TRUE.
+
+             ENDIF 
+
+          ENDIF
+#if defined( __parallel )
+          CALL MPI_BARRIER( comm2d, ierr )
+#endif
+       ENDDO
+!
+!--    Check for minimum requirement of topography data in case
+!--    static input file is used. Note, doing this check in check_parameters 
+!--    will be too late (data will be used for grid inititialization before).
+       IF ( input_pids_static )  THEN
+          IF ( .NOT. terrain_height_f%from_file  .OR.                          &
+               .NOT. building_id_f%from_file     .OR.                          &
+               .NOT. buildings_f%from_file )  THEN                        
+             message_string = 'Minimum requirement for topography input ' //   &
+                              'is not fulfilled. ' //                          &
+                              'Orography, buildings, as well as building ' //  &
+                              'IDs are required.'
+             CALL message( 'netcdf_data_input_mod', 'PA0999', 1, 2, 0, 6, 0 )
+          ENDIF
+       ENDIF
+!
+!--    Finally, exchange 1 ghost point for building ID and type. 
+!--    In case of non-cyclic boundary conditions set Neumann conditions at the
+!--    lateral boundaries.
+       IF ( building_id_f%from_file )  THEN
+          var_exchange_int                  = building_id_f%fill
+          var_exchange_int(nys:nyn,nxl:nxr) = building_id_f%var(nys:nyn,nxl:nxr)
+          CALL exchange_horiz_2d_int( var_exchange_int, nys, nyn, nxl, nxr, nbgp )
+          DEALLOCATE( building_id_f%var )
+          ALLOCATE( building_id_f%var(nys-nbgp:nyn+nbgp,nxl-nbgp:nxr+nbgp) )
+          building_id_f%var = var_exchange_int
+
+          IF ( .NOT. bc_ns_cyc )  THEN
+             IF ( nys == 0  )  building_id_f%var(-1,:)   = building_id_f%var(0,:)
+             IF ( nyn == ny )  building_id_f%var(ny+1,:) = building_id_f%var(ny,:)
+          ENDIF
+          IF ( .NOT. bc_lr_cyc )  THEN
+             IF ( nxl == 0  )  building_id_f%var(:,-1)   = building_id_f%var(:,0)  
+             IF ( nxr == nx )  building_id_f%var(:,nx+1) = building_id_f%var(:,nx)        
+          ENDIF
+       ENDIF
+
+       IF ( building_type_f%from_file )  THEN
+          var_exchange_int                  = INT( building_type_f%fill, KIND = 4 )
+          var_exchange_int(nys:nyn,nxl:nxr) =                                  &
+                          INT( building_type_f%var(nys:nyn,nxl:nxr), KIND = 4 )
+          CALL exchange_horiz_2d_int( var_exchange_int, nys, nyn, nxl, nxr, nbgp )
+          DEALLOCATE( building_type_f%var )
+          ALLOCATE( building_type_f%var(nys-nbgp:nyn+nbgp,nxl-nbgp:nxr+nbgp) )
+          building_type_f%var = INT( var_exchange_int, KIND = 1 )
+
+          IF ( .NOT. bc_ns_cyc )  THEN
+             IF ( nys == 0  )  building_type_f%var(-1,:)   = building_type_f%var(0,:)
+             IF ( nyn == ny )  building_type_f%var(ny+1,:) = building_type_f%var(ny,:)
+          ENDIF
+          IF ( .NOT. bc_lr_cyc )  THEN
+             IF ( nxl == 0  )  building_type_f%var(:,-1)   = building_type_f%var(:,0)  
+             IF ( nxr == nx )  building_type_f%var(:,nx+1) = building_type_f%var(:,nx)        
+          ENDIF
+       ENDIF
+
+    END SUBROUTINE netcdf_data_input_topo
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Reads initialization data of u, v, w, pt, q, geostrophic wind components,
+!> as well as soil moisture and soil temperature, derived from larger-scale 
+!> model (COSMO) by Inifor.
+!------------------------------------------------------------------------------!
+    SUBROUTINE netcdf_data_input_init_3d
+
+       USE arrays_3d,                                                          &
+           ONLY:  q, pt, u, v, w
+
+       USE control_parameters,                                                 &
+           ONLY:  bc_lr_cyc, bc_ns_cyc, forcing, humidity, message_string,     &
+                  neutral, surface_pressure
+
+       USE indices,                                                            &
+           ONLY:  nx, nxl, nxlu, nxr, ny, nyn, nys, nysv, nzb, nzt
+
+       IMPLICIT NONE
+
+       CHARACTER(LEN=100), DIMENSION(:), ALLOCATABLE ::  var_names
+
+       INTEGER(iwp) ::  i          !< running index along x-direction
+       INTEGER(iwp) ::  ii         !< running index for IO blocks
+       INTEGER(iwp) ::  id_dynamic !< NetCDF id of dynamic input file
+       INTEGER(iwp) ::  j          !< running index along y-direction
+       INTEGER(iwp) ::  k          !< running index along z-direction
+       INTEGER(iwp) ::  num_vars   !< number of variables in netcdf input file
+       INTEGER(iwp) ::  off_i      !< offset in x-direction used for reading the u-component
+       INTEGER(iwp) ::  off_j      !< offset in y-direction used for reading the v-component
+
+!
+!--    Skip routine if no input file with dynamic input data is available.
+       IF ( .NOT. input_pids_dynamic )  RETURN
+!
+!--    Please note, Inifor is designed to provide initial data for u and v for
+!--    the prognostic grid points in case of lateral Dirichlet conditions. 
+!--    This means that Inifor provides data from nxlu:nxr (for u) and 
+!--    from nysv:nyn (for v) at the left and south domain boundary, respectively.
+!--    However, as work-around for the moment, PALM will run with cyclic 
+!--    conditions and will be initialized with data provided by Inifor 
+!--    boundaries in case of Dirichlet. 
+!--    Hence, simply set set nxlu/nysv to 1 (will be reset to its original value
+!--    at the end of this routine.
+       IF ( bc_lr_cyc  .AND.  nxl == 0 )  nxlu = 1  
+       IF ( bc_ns_cyc  .AND.  nys == 0 )  nysv = 1
+
+       DO  ii = 0, io_blocks-1
+          IF ( ii == io_group )  THEN
+#if defined ( __netcdf )
+!
+!--          Open file in read-only mode
+             CALL open_read_file( TRIM( input_file_dynamic ) //                &
+                                  TRIM( coupling_char ), id_dynamic )  
+
+!
+!--          At first, inquire all variable names. 
+             CALL inquire_num_variables( id_dynamic, num_vars )
+!
+!--          Allocate memory to store variable names.
+             ALLOCATE( var_names(1:num_vars) )
+             CALL inquire_variable_names( id_dynamic, var_names )
+!
+!--          Read vertical dimension of scalar und w grid. Will be used for
+!--          inter- and extrapolation in case of stretched numeric grid. 
+!--          This will be removed when Inifor is able to handle stretched grids.
+             CALL get_dimension_length( id_dynamic, init_3d%nzu, 'z'     )
+             CALL get_dimension_length( id_dynamic, init_3d%nzw, 'zw'    )
+             CALL get_dimension_length( id_dynamic, init_3d%nzs, 'depth' )
+!
+!--          Read also the horizontal dimensions. These are used just used fo
+!--          checking the compatibility with the PALM grid before reading. 
+             CALL get_dimension_length( id_dynamic, init_3d%nx,  'x'  )
+             CALL get_dimension_length( id_dynamic, init_3d%nxu, 'xu' )
+             CALL get_dimension_length( id_dynamic, init_3d%ny,  'y'  )
+             CALL get_dimension_length( id_dynamic, init_3d%nyv, 'yv' )
+!
+!--          Check for correct horizontal dimension. Please note, u- and v-grid
+!--          hase 1 grid point less on Inifor grid. 
+             IF ( init_3d%nx-1 /= nx  .OR.  init_3d%nxu-1 /= nx - 1  .OR.      &
+                  init_3d%ny-1 /= ny  .OR.  init_3d%nyv-1 /= ny - 1 )  THEN
+                message_string = 'Number of inifor grid points does not '  //  &
+                                 'match the number of numeric grid points.'
+                CALL message( 'netcdf_data_input_mod', 'PA0999', 1, 2, 0, 6, 0 )
+             ENDIF
+!
+!--          Read vertical dimensions. Later, these are required for eventual
+!--          inter- and extrapolations of the initialization data.
+             IF ( check_existence( var_names, 'z' ) )  THEN
+                ALLOCATE( init_3d%zu_atmos(1:init_3d%nzu) )
+                CALL get_variable( id_dynamic, 'z', init_3d%zu_atmos )
+             ENDIF
+             IF ( check_existence( var_names, 'zw' ) )  THEN
+                ALLOCATE( init_3d%zw_atmos(1:init_3d%nzw) )
+                CALL get_variable( id_dynamic, 'zw', init_3d%zw_atmos )
+             ENDIF
+             IF ( check_existence( var_names, 'depth' ) )  THEN
+                ALLOCATE( init_3d%z_soil(1:init_3d%nzs) )
+                CALL get_variable( id_dynamic, 'depth', init_3d%z_soil )
+             ENDIF
+!
+!--          Read geostrophic wind components
+!              IF ( check_existence( var_names, 'ls_forcing_ug' ) )  THEN
+! 
+!              ENDIF
+!              IF ( check_existence( var_names, 'ls_forcing_vg' ) )  THEN
+! 
+!              ENDIF
+
+!
+!--          Read inital 3D data of u, v, w, pt and q, 
+!--          derived from COSMO model. Read PE-wise yz-slices.
+!--          Please note, the u-, v- and w-component are defined on different 
+!--          grids with one element less in the x-, y-,
+!--          and z-direction, respectively. Hence, reading is subdivided
+!--          into separate loops. Moreover, i and j are used 
+!--          as start index in the NF90 interface.
+!--          The passed arguments for u, and v are (i,j)-1, respectively, 
+!--          in contrast to the remaining quantities. This is because in case
+!--          of forcing is applied, the input data for u and v has one 
+!--          element less along the x- and y-direction respectively. 
+!--          Read u-component
+             IF ( check_existence( var_names, 'init_u' ) )  THEN
+!
+!--             Read attributes for the fill value and level-of-detail
+                CALL get_attribute( id_dynamic, char_fill, init_3d%fill_u,     &
+                                    .FALSE., 'init_u' )
+                CALL get_attribute( id_dynamic, char_lod, init_3d%lod_u,       &
+                                    .FALSE., 'init_u' )
+!
+!--             level-of-detail 1 - read initialization profile
+                IF ( init_3d%lod_u == 1 )  THEN
+                   ALLOCATE( init_3d%u_init(nzb:nzt+1) )
+                   init_3d%u_init = 0.0_wp
+
+                   CALL get_variable( id_dynamic, 'init_u',                    &
+                                      init_3d%u_init(nzb+1:nzt+1) )
+!
+!--             level-of-detail 2 - read 3D initialization data
+                ELSEIF ( init_3d%lod_u == 2 )  THEN
+!
+!--                Set offset value. In case of Dirichlet conditions at the left 
+!--                domain boundary, the u component starts at nxl+1. This case, 
+!--                the passed start-index for reading the NetCDF data is shifted
+!--                by -1.  
+                   off_i = 1 !MERGE( 1, 0, forcing )
+
+                   DO  i = nxlu, nxr
+                      DO  j = nys, nyn    
+                         CALL get_variable( id_dynamic, 'init_u', i-off_i, j,  &
+                                            u(nzb+1:nzt+1,j,i) )
+                      ENDDO
+                   ENDDO
+
+                ENDIF
+                init_3d%from_file_u = .TRUE.
+             ENDIF
+!
+!--          Read v-component
+             IF ( check_existence( var_names, 'init_v' ) )  THEN
+!
+!--             Read attributes for the fill value and level-of-detail
+                CALL get_attribute( id_dynamic, char_fill, init_3d%fill_v,     &
+                                    .FALSE., 'init_v' )
+                CALL get_attribute( id_dynamic, char_lod, init_3d%lod_v,       &
+                                    .FALSE., 'init_v' )
+!
+!--             level-of-detail 1 - read initialization profile
+                IF ( init_3d%lod_v == 1 )  THEN
+                   ALLOCATE( init_3d%v_init(nzb:nzt+1) )
+                   init_3d%v_init = 0.0_wp
+
+                   CALL get_variable( id_dynamic, 'init_v',                    &
+                                      init_3d%v_init(nzb+1:nzt+1) )
+
+!
+!--             level-of-detail 2 - read 3D initialization data
+                ELSEIF ( init_3d%lod_v == 2 )  THEN
+!
+!--                Set offset value. In case of Dirichlet conditions at the south 
+!--                domain boundary, the v component starts at nys+1. This case, 
+!--                the passed start-index for reading the NetCDF data is shifted
+!--                by -1.  
+                   off_j = 1 !MERGE( 1, 0, forcing )
+
+                   DO  i = nxl, nxr
+                      DO  j = nysv, nyn   
+                         CALL get_variable( id_dynamic, 'init_v', i, j-off_j,  &
+                                            v(nzb+1:nzt+1,j,i) )
+                      ENDDO
+                   ENDDO
+
+                ENDIF
+                init_3d%from_file_v = .TRUE.
+             ENDIF
+!
+!--          Read w-component
+             IF ( check_existence( var_names, 'init_w' ) )  THEN
+!
+!--             Read attributes for the fill value and level-of-detail
+                CALL get_attribute( id_dynamic, char_fill, init_3d%fill_w,     &
+                                    .FALSE., 'init_w' )
+                CALL get_attribute( id_dynamic, char_lod, init_3d%lod_w,       &
+                                    .FALSE., 'init_w' )
+!
+!--             level-of-detail 1 - read initialization profile
+                IF ( init_3d%lod_w == 1 )  THEN
+                   ALLOCATE( init_3d%w_init(nzb:nzt+1) )
+                   init_3d%w_init = 0.0_wp
+
+                   CALL get_variable( id_dynamic, 'init_w',                    &
+                                      init_3d%w_init(nzb+1:nzt) )
+
+!
+!--             level-of-detail 2 - read 3D initialization data
+                ELSEIF ( init_3d%lod_w == 2 )  THEN
+                   DO  i = nxl, nxr
+                      DO  j = nys, nyn
+                         CALL get_variable( id_dynamic, 'init_w', i, j,        &
+                                            w(nzb+1:nzt,j,i) )
+                      ENDDO
+                   ENDDO
+
+                ENDIF
+                init_3d%from_file_w = .TRUE.
+             ENDIF
+!
+!--          Read potential temperature
+             IF ( .NOT. neutral )  THEN      
+                IF ( check_existence( var_names, 'init_pt' ) )  THEN   
+!
+!--                Read attributes for the fill value and level-of-detail
+                   CALL get_attribute( id_dynamic, char_fill, init_3d%fill_pt, &
+                                       .FALSE., 'init_pt' )
+                   CALL get_attribute( id_dynamic, char_lod, init_3d%lod_pt,   &
+                                       .FALSE., 'init_pt' )
+!
+!--                level-of-detail 1 - read initialization profile
+                   IF ( init_3d%lod_pt == 1 )  THEN
+                      ALLOCATE( init_3d%pt_init(nzb:nzt+1) )
+
+                      CALL get_variable( id_dynamic, 'init_pt',                &
+                                         init_3d%pt_init(nzb+1:nzt+1) )
+!
+!--                   Set Neumann surface boundary condition for initial profil
+                      init_3d%pt_init(nzb) = init_3d%pt_init(nzb+1)
+!
+!--                level-of-detail 2 - read 3D initialization data
+                   ELSEIF ( init_3d%lod_pt == 2 )  THEN
+                      DO  i = nxl, nxr
+                         DO  j = nys, nyn
+                            CALL get_variable( id_dynamic, 'init_pt', i, j,    &
+                                               pt(nzb+1:nzt+1,j,i) )
+                         ENDDO
+                      ENDDO
+
+                   ENDIF 
+                   init_3d%from_file_pt = .TRUE.
+                ENDIF
+             ENDIF
+!
+!--          Read mixing ratio
+             IF ( humidity )  THEN
+                IF ( check_existence( var_names, 'init_qv' ) )  THEN
+!
+!--                Read attributes for the fill value and level-of-detail
+                   CALL get_attribute( id_dynamic, char_fill, init_3d%fill_q,  &
+                                       .FALSE., 'init_qv' )
+                   CALL get_attribute( id_dynamic, char_lod, init_3d%lod_q,    &
+                                       .FALSE., 'init_qv' )
+!
+!--                level-of-detail 1 - read initialization profile
+                   IF ( init_3d%lod_q == 1 )  THEN
+                      ALLOCATE( init_3d%q_init(nzb:nzt+1) )
+
+                      CALL get_variable( id_dynamic, 'init_qv',               &
+                                         init_3d%q_init(nzb+1:nzt+1) )
+!
+!--                   Set Neumann surface boundary condition for initial profil
+                      init_3d%q_init(nzb) = init_3d%q_init(nzb+1)
+
+!
+!--                level-of-detail 2 - read 3D initialization data
+                   ELSEIF ( init_3d%lod_q == 2 )  THEN
+                      DO  i = nxl, nxr
+                         DO  j = nys, nyn
+                            CALL get_variable( id_dynamic, 'init_qv', i, j,    &
+                                               q(nzb+1:nzt+1,j,i) )
+                         ENDDO
+                      ENDDO
+
+                   ENDIF
+                   init_3d%from_file_q = .TRUE.
+                ENDIF
+             ENDIF
+!
+!--          Read soil moisture
+             IF ( check_existence( var_names, 'init_soil_m' ) )  THEN
+!
+!--             Read attributes for the fill value and level-of-detail
+                CALL get_attribute( id_dynamic, char_fill, init_3d%fill_msoil, &
+                                    .FALSE., 'init_soil_m' )
+                CALL get_attribute( id_dynamic, char_lod, init_3d%lod_msoil,   &
+                                    .FALSE., 'init_soil_m' )
+!
+!--             level-of-detail 1 - read initialization profile
+                IF ( init_3d%lod_msoil == 1 )  THEN
+                   ALLOCATE( init_3d%msoil_init(0:init_3d%nzs-1) )
+
+                   CALL get_variable( id_dynamic, 'init_soil_m',               &
+                                      init_3d%msoil_init(0:init_3d%nzs-1) )
+!
+!--             level-of-detail 2 - read 3D initialization data
+                ELSEIF ( init_3d%lod_msoil == 2 )  THEN  ! need to be corrected
+                   ALLOCATE ( init_3d%msoil(0:init_3d%nzs-1,nys:nyn,nxl:nxr) )
+                   DO  i = nxl, nxr
+                      DO  j = nys, nyn
+                         CALL get_variable( id_dynamic, 'init_soil_m', i, j,   &
+                                            init_3d%msoil(0:init_3d%nzs-1,j,i) )
+                      ENDDO
+                   ENDDO
+                ENDIF
+                init_3d%from_file_msoil = .TRUE.
+             ENDIF
+!
+!--          Read soil temperature
+             IF ( check_existence( var_names, 'init_soil_t' ) )  THEN
+!
+!--             Read attributes for the fill value and level-of-detail
+                CALL get_attribute( id_dynamic, char_fill, init_3d%fill_tsoil, &
+                                    .FALSE., 'init_soil_t' )
+                CALL get_attribute( id_dynamic, char_lod, init_3d%lod_tsoil,   &
+                                    .FALSE., 'init_soil_t' )
+!
+!--             level-of-detail 1 - read initialization profile
+                IF ( init_3d%lod_tsoil == 1 )  THEN
+                   ALLOCATE( init_3d%tsoil_init(0:init_3d%nzs-1) )
+
+                   CALL get_variable( id_dynamic, 'init_soil_t',               &
+                                      init_3d%tsoil_init(0:init_3d%nzs-1) )
+
+!
+!--             level-of-detail 2 - read 3D initialization data
+                ELSEIF ( init_3d%lod_tsoil == 2 )  THEN  ! need to be corrected
+                   ALLOCATE ( init_3d%tsoil(0:init_3d%nzs-1,nys:nyn,nxl:nxr) )
+                   DO  i = nxl, nxr
+                      DO  j = nys, nyn
+                         CALL get_variable( id_dynamic, 'init_soil_t', i, j,   &
+                                            init_3d%tsoil(0:init_3d%nzs-1,j,i) )
+                      ENDDO
+                   ENDDO
+                ENDIF
+                init_3d%from_file_tsoil = .TRUE.
+             ENDIF
+!
+!--          Close input file
+             CALL close_file( id_dynamic )
+#endif
+          ENDIF
+#if defined( __parallel )
+          CALL MPI_BARRIER( comm2d, ierr )
+#endif
+       ENDDO
+!
+!--    Finally, check if the input data has any fill values.
+       IF ( init_3d%from_file_u )  THEN
+          IF ( ANY( u(nzb+1:nzt+1,nys:nyn,nxlu:nxr) == init_3d%fill_u ) )  THEN
+             message_string = 'NetCDF input for u_init must not contain ' //   &
+                              'any _FillValues'
+             CALL message( 'netcdf_data_input_mod', 'PA0999', 2, 2, 0, 6, 0 )
+          ENDIF
+       ENDIF
+       IF ( init_3d%from_file_v )  THEN
+          IF ( ANY( v(nzb+1:nzt+1,nysv:nyn,nxl:nxr) == init_3d%fill_v ) )  THEN
+             message_string = 'NetCDF input for v_init must not contain ' //   &
+                              'any _FillValues'
+             CALL message( 'netcdf_data_input_mod', 'PA0999', 2, 2, 0, 6, 0 )
+          ENDIF
+       ENDIF
+       IF ( init_3d%from_file_w )  THEN
+          IF ( ANY( w(nzb+1:nzt,nys:nyn,nxl:nxr) == init_3d%fill_w ) )  THEN
+             message_string = 'NetCDF input for w_init must not contain ' //   &
+                              'any _FillValues'
+             CALL message( 'netcdf_data_input_mod', 'PA0999', 2, 2, 0, 6, 0 )
+          ENDIF
+       ENDIF
+       IF ( init_3d%from_file_pt )  THEN
+          IF ( ANY( pt(nzb+1:nzt+1,nys:nyn,nxl:nxr) == init_3d%fill_pt ) )  THEN
+             message_string = 'NetCDF input for pt_init must not contain ' //  &
+                              'any _FillValues'
+             CALL message( 'netcdf_data_input_mod', 'PA0999', 2, 2, 0, 6, 0 )
+          ENDIF
+       ENDIF
+       IF ( init_3d%from_file_q )  THEN
+          IF ( ANY( q(nzb+1:nzt+1,nys:nyn,nxl:nxr) == init_3d%fill_q ) )  THEN
+             message_string = 'NetCDF input for q_init must not contain ' //   &
+                              'any _FillValues'
+             CALL message( 'netcdf_data_input_mod', 'PA0999', 2, 2, 0, 6, 0 )
+          ENDIF
+       ENDIF
+!
+!--    Workaround for cyclic conditions. Please see above for further explanation.
+       IF ( bc_lr_cyc  .AND.  nxl == 0 )  nxlu = nxl  
+       IF ( bc_ns_cyc  .AND.  nys == 0 )  nysv = nys
+
+    END SUBROUTINE netcdf_data_input_init_3d
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Reads data at lateral and top boundaries derived from larger-scale model 
+!> (COSMO) by Inifor.
+!------------------------------------------------------------------------------!
+    SUBROUTINE netcdf_data_input_lsf
+
+       USE control_parameters,                                                 &
+           ONLY:  force_bound_l, force_bound_n, force_bound_r, force_bound_s,  &
+                  forcing, humidity, message_string, neutral, simulated_time
+
+       USE indices,                                                            &
+           ONLY:  nx, nxl, nxlu, nxr, ny, nyn, nys, nysv, nzb, nzt
+
+       IMPLICIT NONE
+
+
+       INTEGER(iwp) ::  i          !< running index along x-direction
+       INTEGER(iwp) ::  ii         !< running index for IO blocks
+       INTEGER(iwp) ::  id_dynamic !< NetCDF id of dynamic input file
+       INTEGER(iwp) ::  j          !< running index along y-direction
+       INTEGER(iwp) ::  k          !< running index along z-direction
+       INTEGER(iwp) ::  num_vars   !< number of variables in netcdf input file
+       INTEGER(iwp) ::  t          !< running index time dimension
+
+       REAL(wp) ::  dum           !< dummy variable to skip columns while reading topography file   
+
+       force%from_file = MERGE( .TRUE., .FALSE., input_pids_dynamic ) 
+!
+!--    Skip input if no forcing from larger-scale models is applied.
+       IF ( .NOT. forcing )  RETURN
+
+       DO  ii = 0, io_blocks-1
+          IF ( ii == io_group )  THEN
+#if defined ( __netcdf )
+!
+!--          Open file in read-only mode
+             CALL open_read_file( TRIM( input_file_dynamic ) //                &
+                                  TRIM( coupling_char ), id_dynamic )  
+!
+!--          Initialize INIFOR forcing. 
+             IF ( .NOT. force%init )  THEN
+!
+!--             At first, inquire all variable names. 
+                CALL inquire_num_variables( id_dynamic, num_vars )
+!
+!--             Allocate memory to store variable names.
+                ALLOCATE( force%var_names(1:num_vars) )
+                CALL inquire_variable_names( id_dynamic, force%var_names )
+!
+!--             Read time dimension, allocate memory and finally read time array
+                CALL get_dimension_length( id_dynamic, force%nt, 'time' )
+
+                IF ( check_existence( force%var_names, 'time' ) )  THEN
+                   ALLOCATE( force%time(0:force%nt-1) )
+                   CALL get_variable( id_dynamic, 'time', force%time )
+                ENDIF
+!
+!--             Read vertical dimension of scalar und w grid
+                CALL get_dimension_length( id_dynamic, force%nzu, 'z' )
+                CALL get_dimension_length( id_dynamic, force%nzw, 'zw' )
+
+                IF ( check_existence( force%var_names, 'z' ) )  THEN
+                   ALLOCATE( force%zu_atmos(1:force%nzu) )
+                   CALL get_variable( id_dynamic, 'z', force%zu_atmos )
+                ENDIF
+                IF ( check_existence( force%var_names, 'zw' ) )  THEN
+                   ALLOCATE( force%zw_atmos(1:force%nzw) )
+                   CALL get_variable( id_dynamic, 'zw', force%zw_atmos )
+                ENDIF
+
+!
+!--             Read surface pressure
+                IF ( check_existence( force%var_names,                         &
+                                  'surface_forcing_surface_pressure' ) )  THEN
+                   ALLOCATE( force%surface_pressure(0:force%nt-1) )
+                   CALL get_variable( id_dynamic,                              &
+                                      'surface_forcing_surface_pressure',      &
+                                      force%surface_pressure )
+                ENDIF
+!
+!--             Set control flag to indicate that initialization is already done
+                force%init = .TRUE.
+
+             ENDIF
+
+!
+!--          Obtain time index for current input starting at 0. 
+!--          @todo: At the moment time, in INIFOR and simulated time correspond 
+!--                 to each other. If required, adjust to daytime. 
+             force%tind = MINLOC( ABS( force%time - simulated_time ), DIM = 1 )&
+                          - 1
+             force%tind_p = force%tind + 1  
+!
+!--          Read data at lateral and top boundaries. Please note, at left and 
+!--          right domain boundary, yz-layers are read for u, v, w, pt and q. 
+!--          For the v-component, the data starts at nysv, while for the other
+!--          quantities the data starts at nys. This is equivalent at the north 
+!--          and south domain boundary for the u-component. 
+!--          The function get_variable_bc assumes the start indices with respect
+!--          to the netcdf file convention (data starts at index 1). For this 
+!--          reason, nys+1 / nxl+1 are passed instead of nys / nxl. For the 
+!--          the u- and v-component at the north/south, and left/right boundary,
+!--          nxlu and nysv are passed, respectively, since these always starts 
+!--          at index 1 in case of forcing. 
+
+             IF ( force_bound_l )  THEN
+                DO  j = nys, nyn
+                   DO  t = force%tind, force%tind_p
+                      CALL get_variable_bc( id_dynamic, 'ls_forcing_left_u',   &
+                                      t+1,                                     &
+                                      nzb+1, nzt+1-(nzb+1)+1,                  &
+                                      j+1, 1,                                  &
+                                      force%u_left(t-force%tind,nzb+1:nzt+1,j) )
+                   ENDDO
+                ENDDO
+
+                DO  j = nysv, nyn
+                   DO  t = force%tind, force%tind_p
+                      CALL get_variable_bc( id_dynamic, 'ls_forcing_left_v',   &
+                                      t+1,                                     &
+                                      nzb+1, nzt+1-(nzb+1)+1,                  &
+                                      j, 1,                                    &
+                                      force%v_left(t-force%tind,nzb+1:nzt+1,j) )
+                   ENDDO
+                ENDDO
+                DO  j = nys, nyn
+                   DO  t = force%tind, force%tind_p
+                      CALL get_variable_bc( id_dynamic,                        &
+                                      'ls_forcing_left_w',                     &
+                                      t+1,                                     &
+                                      nzb+1, nzt-(nzb+1) + 1,                  &
+                                      j+1, 1,                                  &
+                                      force%w_left(t-force%tind,nzb+1:nzt,j) )
+                   ENDDO
+                ENDDO
+                IF ( .NOT. neutral )  THEN
+                   DO  j = nys, nyn
+                      DO  t = force%tind, force%tind_p
+                         CALL get_variable_bc( id_dynamic,                     &
+                                      'ls_forcing_left_pt',                    &
+                                      t+1,                                     &
+                                      nzb+1, nzt+1-(nzb+1)+1,                  &
+                                      j+1, 1,                                  &
+                                      force%pt_left(t-force%tind,nzb+1:nzt+1,j) )
+                      ENDDO
+                   ENDDO
+                ENDIF
+                IF ( humidity )  THEN
+                   DO  j = nys, nyn
+                      DO  t = force%tind, force%tind_p
+                         CALL get_variable_bc( id_dynamic,                     &
+                                      'ls_forcing_left_qv',                    &
+                                      t+1,                                     &
+                                      nzb+1, nzt+1-(nzb+1)+1,                  &
+                                      j+1, 1,                                  &
+                                      force%q_left(t-force%tind,nzb+1:nzt+1,j) )
+                      ENDDO
+                   ENDDO
+                ENDIF
+             ENDIF
+
+             IF ( force_bound_r )  THEN
+                DO  j = nys, nyn
+                   DO  t = force%tind, force%tind_p
+                      CALL get_variable_bc( id_dynamic, 'ls_forcing_right_u',  &
+                                      t+1,                                     &
+                                      nzb+1, nzt+1-(nzb+1)+1,                  &
+                                      j+1, 1,                                  &
+                                      force%u_right(t-force%tind,nzb+1:nzt+1,j) )
+                   ENDDO
+                ENDDO
+                DO  j = nysv, nyn
+                   DO  t = force%tind, force%tind_p
+                      CALL get_variable_bc( id_dynamic, 'ls_forcing_right_v',  &
+                                      t+1,                                     &
+                                      nzb+1, nzt+1-(nzb+1)+1,                  &
+                                      j, 1,                                    &
+                                      force%v_right(t-force%tind,nzb+1:nzt+1,j) )
+                   ENDDO
+                ENDDO
+                DO  j = nys, nyn
+                   DO  t = force%tind, force%tind_p
+                      CALL get_variable_bc( id_dynamic, 'ls_forcing_right_w',  &
+                                      t+1,                                     &
+                                      nzb+1, nzt-(nzb+1)+1,                    &
+                                      j+1, 1,                                  &
+                                      force%w_right(t-force%tind,nzb+1:nzt,j) )
+                   ENDDO
+                ENDDO
+                IF ( .NOT. neutral )  THEN
+                   DO  j = nys, nyn
+                      DO  t = force%tind, force%tind_p
+                         CALL get_variable_bc( id_dynamic,                     &
+                                      'ls_forcing_right_pt',                   &
+                                      t+1,                                     &
+                                      nzb+1, nzt+1-(nzb+1)+1,                  &
+                                      j+1, 1,                                  &
+                                      force%pt_right(t-force%tind,nzb+1:nzt+1,j) )
+                      ENDDO
+                   ENDDO
+                ENDIF
+                IF ( humidity )  THEN
+                   DO  j = nys, nyn
+                      DO  t = force%tind, force%tind_p
+                         CALL get_variable_bc( id_dynamic,                     &
+                                      'ls_forcing_right_qv',                   &
+                                      t+1,                                     &
+                                      nzb+1, nzt+1-(nzb+1)+1,                  &
+                                      j+1, 1,                                  &
+                                      force%q_right(t-force%tind,nzb+1:nzt+1,j) )
+                      ENDDO
+                   ENDDO
+                ENDIF
+             ENDIF
+
+             IF ( force_bound_n )  THEN
+                DO  i = nxlu, nxr
+                   DO  t = force%tind, force%tind_p
+                      CALL get_variable_bc( id_dynamic, 'ls_forcing_north_u',  &
+                                      t+1,                                     &
+                                      nzb+1, nzt+1-(nzb+1)+1,                  &
+                                      i, 1,                                    &
+                                      force%u_north(t-force%tind,nzb+1:nzt+1,i) )
+                   ENDDO
+                ENDDO
+                DO  i = nxl, nxr
+                   DO  t = force%tind, force%tind_p
+                      CALL get_variable_bc( id_dynamic, 'ls_forcing_north_v',  &
+                                      t+1,                                     &
+                                      nzb+1, nzt+1-(nzb+1)+1,                  &
+                                      i+1, 1,                                  &
+                                      force%v_north(t-force%tind,nzb+1:nzt+1,i) )
+                   ENDDO
+                ENDDO
+                DO  i = nxl, nxr
+                   DO  t = force%tind, force%tind_p
+                      CALL get_variable_bc( id_dynamic, 'ls_forcing_north_w',  &
+                                      t+1,                                     &
+                                      nzb+1, nzt-(nzb+1)+1,                    &
+                                      i+1, 1,                                  &
+                                      force%w_north(t-force%tind,nzb+1:nzt,i) )
+                   ENDDO
+                ENDDO
+                IF ( .NOT. neutral )  THEN
+                   DO  i = nxl, nxr
+                      DO  t = force%tind, force%tind_p
+                         CALL get_variable_bc( id_dynamic,                     &
+                                      'ls_forcing_north_pt',                   &
+                                      t+1,                                     &
+                                      nzb+1, nzt+1-(nzb+1)+1,                  &
+                                      i+1, 1,                                  &
+                                      force%pt_north(t-force%tind,nzb+1:nzt+1,i) )
+                      ENDDO
+                   ENDDO
+                ENDIF
+                IF ( humidity )  THEN
+                   DO  i = nxl, nxr
+                      DO  t = force%tind, force%tind_p
+                         CALL get_variable_bc( id_dynamic,                     &
+                                      'ls_forcing_north_qv',                   &
+                                      t+1,                                     &
+                                      nzb+1, nzt+1-(nzb+1)+1,                  &
+                                      i+1, 1,                                  &
+                                      force%q_north(t-force%tind,nzb+1:nzt+1,i) )
+                      ENDDO
+                   ENDDO
+                ENDIF
+             ENDIF
+
+             IF ( force_bound_s )  THEN
+                DO  i = nxlu, nxr
+                   DO  t = force%tind, force%tind_p
+                      CALL get_variable_bc( id_dynamic, 'ls_forcing_south_u',  &
+                                      t+1,                                     &
+                                      nzb+1, nzt+1-(nzb+1)+1,                  &
+                                      i, 1,                                    &
+                                      force%u_south(t-force%tind,nzb+1:nzt+1,i) )
+                   ENDDO
+                ENDDO
+                DO  i = nxl, nxr
+                   DO  t = force%tind, force%tind_p
+                      CALL get_variable_bc( id_dynamic, 'ls_forcing_south_v',  &
+                                      t+1,                                     &
+                                      nzb+1, nzt+1-(nzb+1)+1,                  &
+                                      i+1, 1,                                  &
+                                      force%v_south(t-force%tind,nzb+1:nzt+1,i) )
+                   ENDDO
+                ENDDO
+                DO  i = nxl, nxr
+                   DO  t = force%tind, force%tind_p
+                      CALL get_variable_bc( id_dynamic, 'ls_forcing_south_w',  &
+                                      t+1,                                     &
+                                      nzb+1, nzt-(nzb+1)+1,                    &
+                                      i+1, 1,                                  &
+                                      force%w_south(t-force%tind,nzb+1:nzt,i) )
+                   ENDDO
+                ENDDO
+                IF ( .NOT. neutral )  THEN
+                   DO  i = nxl, nxr
+                      DO  t = force%tind, force%tind_p
+                         CALL get_variable_bc( id_dynamic,                     &
+                                      'ls_forcing_south_pt',                   &
+                                      t+1,                                     &
+                                      nzb+1, nzt+1-(nzb+1)+1,                  &
+                                      i+1, 1,                                  &
+                                      force%pt_south(t-force%tind,nzb+1:nzt+1,i) )
+                      ENDDO
+                   ENDDO
+                ENDIF
+                IF ( humidity )  THEN
+                   DO  i = nxl, nxr
+                      DO  t = force%tind, force%tind_p
+                         CALL get_variable_bc( id_dynamic,                     &
+                                      'ls_forcing_south_qv',                   &
+                                      t+1,                                     &
+                                      nzb+1, nzt+1-(nzb+1)+1,                  &
+                                      i+1, 1,                                  &
+                                      force%q_south(t-force%tind,nzb+1:nzt+1,i) )
+                      ENDDO
+                   ENDDO
+                ENDIF
+             ENDIF
+!
+!--          Top boundary
+             DO  i = nxlu, nxr
+                DO  t = force%tind, force%tind_p
+                   CALL get_variable_bc( id_dynamic, 'ls_forcing_top_u',       &
+                                   t+1,                                        &
+                                   nys+1, nyn-nys+1,                           &
+                                   i, 1,                                       &
+                                   force%u_top(t-force%tind,nys:nyn,i) )
+                ENDDO
+             ENDDO
+             DO  i = nxl, nxr
+                DO  t = force%tind, force%tind_p
+                   CALL get_variable_bc( id_dynamic, 'ls_forcing_top_v',       &
+                                   t+1,                                        &
+                                   nysv, nyn-nysv+1,                           &
+                                   i+1, 1,                                     &
+                                   force%v_top(t-force%tind,nysv:nyn,i) )
+                ENDDO
+             ENDDO
+             DO  i = nxl, nxr
+                DO  t = force%tind, force%tind_p
+                   CALL get_variable_bc( id_dynamic, 'ls_forcing_top_w',       &
+                                   t+1,                                        &
+                                   nys+1, nyn-nys+1,                           &
+                                   i+1, 1,                                     &
+                                   force%w_top(t-force%tind,nys:nyn,i) )
+                ENDDO
+             ENDDO
+             IF ( .NOT. neutral )  THEN
+                DO  i = nxl, nxr
+                   DO  t = force%tind, force%tind_p
+                      CALL get_variable_bc( id_dynamic, 'ls_forcing_top_pt',   &
+                                      t+1,                                     &
+                                      nys+1, nyn-nys+1,                        &
+                                      i+1, 1,                                  &
+                                      force%pt_top(t-force%tind,nys:nyn,i) )
+                   ENDDO
+                ENDDO
+             ENDIF
+             IF ( humidity )  THEN
+                DO  i = nxl, nxr
+                   DO  t = force%tind, force%tind_p
+                      CALL get_variable_bc( id_dynamic, 'ls_forcing_top_qv',   &
+                                      t+1,                                     &
+                                      nys+1, nyn-nys+1,                        &
+                                      i+1, 1,                                  &
+                                      force%q_top(t-force%tind,nys:nyn,i) )
+                   ENDDO
+                ENDDO
+             ENDIF
+
+!
+!--          Close input file
+             CALL close_file( id_dynamic )
+#endif
+          ENDIF
+#if defined( __parallel )
+          CALL MPI_BARRIER( comm2d, ierr )
+#endif
+       ENDDO
+
+!
+!--    Finally, after data input set control flag indicating that vertical 
+!--    inter- and/or extrapolation is required. 
+!--    Please note, inter/extrapolation of INIFOR data is only a workaroud, 
+!--    as long as INIFOR delivers vertically equidistant data. 
+       force%interpolated = .FALSE. 
+
+    END SUBROUTINE netcdf_data_input_lsf
+
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Checks input file for consistency and minimum requirements.
+!------------------------------------------------------------------------------!
+    SUBROUTINE netcdf_data_input_check_dynamic
+
+       USE control_parameters,                                                 &
+           ONLY:  initializing_actions, forcing, message_string
+
+       USE pmc_interface,                                                      &
+           ONLY:  nested_run
+
+       IMPLICIT NONE
+
+       LOGICAL      ::  check_nest !< flag indicating if a check passed 
+
+!
+!--    In case of forcing, check whether dynamic input file is present
+       IF ( .NOT. input_pids_dynamic  .AND.  forcing )  THEN
+          message_string = 'forcing = .TRUE. requires dynamic input file ' //  &
+                            TRIM( input_file_dynamic ) // TRIM( coupling_char )
+          CALL message( 'netcdf_data_input_mod', 'PA0430', 1, 2, 0, 6, 0 )
+       ENDIF
+!
+!--    Dynamic input file must also be present if initialization via inifor is
+!--    prescribed. 
+       IF ( .NOT. input_pids_dynamic  .AND.                                    &
+            TRIM( initializing_actions ) == 'inifor' )  THEN
+          message_string = 'initializing_actions = inifor requires dynamic ' //&
+                           'input file ' // TRIM( input_file_dynamic ) //      &
+                           TRIM( coupling_char )
+          CALL message( 'netcdf_data_input_mod', 'PA0430', 1, 2, 0, 6, 0 )
+       ENDIF
+!
+!--    In case of nested run assure that all domains are initialized the same
+!--    way, i.e. if at least at one domain is initialized with soil and 
+!--    atmospheric data provided by COSMO, all domains must be initialized the 
+!--    same way, to assure that soil and atmospheric quantities are 
+!--    consistent. 
+       IF ( nested_run )  THEN
+          check_nest = .TRUE.
+#if defined( __parallel )
+          CALL MPI_ALLREDUCE( TRIM( initializing_actions ) == 'inifor',        &
+                              check_nest, 1, MPI_LOGICAL,                      &
+                              MPI_LAND, MPI_COMM_WORLD, ierr )
+
+          IF ( TRIM( initializing_actions ) == 'inifor'  .AND.                 &
+               .NOT.  check_nest )  THEN
+             message_string = 'In case of nesting, if at least in one ' //     &
+                              'domain initializing_actions = inifor, '  //     &
+                              'all domains need to be initialized that way.'
+             CALL message( 'netcdf_data_input_mod', 'PA0430', 3, 2, 0, 6, 0 )
+          ENDIF
+#endif
+       ENDIF
+
+    END SUBROUTINE netcdf_data_input_check_dynamic
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Checks input file for consistency and minimum requirements.
+!------------------------------------------------------------------------------!
+    SUBROUTINE netcdf_data_input_check_static
+
+       USE control_parameters,                                                 &
+           ONLY:  land_surface, message_string, urban_surface
+
+       USE indices,                                                            &
+           ONLY:  nxl, nxr, nyn, nys
+
+       IMPLICIT NONE
+
+       INTEGER(iwp) ::  i      !< loop index along x-direction
+       INTEGER(iwp) ::  j      !< loop index along y-direction
+       INTEGER(iwp) ::  n_surf !< number of different surface types at given location
+
+       LOGICAL      ::  check_passed !< flag indicating if a check passed 
+
+!
+!--    Return if no static input file is available
+       IF ( .NOT. input_pids_static )  RETURN  
+!
+!--    Check orography for fill-values. For the moment, give an error message.
+!--    More advanced methods, e.g. a nearest neighbor algorithm as used in GIS
+!--    systems might be implemented later. 
+       IF ( ANY( terrain_height_f%var == terrain_height_f%fill ) )  THEN
+          message_string = 'NetCDF variable orography_2D is not ' //           &
+                           'allowed to have missing data'
+          CALL message( 'netcdf_data_input_mod', 'PA0999', 2, 2, 0, 6, 0 )
+       ENDIF
+!
+!--    Skip further checks concerning buildings and natural surface properties
+!--    if no urban surface and land surface model are applied.
+       IF (  .NOT. land_surface  .OR.  .NOT. urban_surface )  RETURN 
+!
+!--    Check for minimum requirement of surface-classification data in case
+!--    static input file is used.
+       IF ( .NOT. vegetation_type_f%from_file  .OR.                            &
+            .NOT. pavement_type_f%from_file    .OR.                            &
+            .NOT. building_type_f%from_file    .OR.                            &
+            .NOT. water_type_f%from_file       .OR.                            &
+            .NOT. soil_type_f%from_file             )  THEN
+          message_string = 'Minimum requirement for surface classification ' //&
+                           'is not fulfilled. At least ' //                    &
+                           'vegetation_type, pavement_type, ' //               &
+                           'building_type, soil_type and water_type are '//    &
+                           'required.'
+          CALL message( 'netcdf_data_input_mod', 'PA0999', 1, 2, 0, 6, 0 )
+       ENDIF
+!
+!--    Check for general availability of input variables.
+!--    If vegetation_type is 0 at any location, vegetation_pars as well as 
+!--    root_area_density_lsm are required.
+       IF ( vegetation_type_f%from_file )  THEN
+          IF ( ANY( vegetation_type_f%var == 0 ) )  THEN
+             IF ( .NOT. vegetation_pars_f%from_file )  THEN
+                message_string = 'If vegegation_type = 0 at any location, ' // &
+                                 'vegetation_pars is required'
+                CALL message( 'netcdf_data_input_mod', 'PA0999', 2, 2, 0, 6, 0 )
+             ENDIF
+             IF ( .NOT. root_area_density_lsm_f%from_file )  THEN
+                message_string = 'If vegegation_type = 0 at any location, ' // &
+                                 'root_area_density_lsm is required'
+                CALL message( 'netcdf_data_input_mod', 'PA0999', 2, 2, 0, 6, 0 )
+             ENDIF
+          ENDIF
+       ENDIF
+!
+!--    If soil_type is zero at any location, soil_pars is required.
+       IF ( soil_type_f%from_file )  THEN
+          check_passed = .TRUE. 
+          IF ( ALLOCATED( soil_type_f%var_2d ) )  THEN
+             IF ( ANY( soil_type_f%var_2d == 0 ) )  THEN
+                IF ( .NOT. soil_pars_f%from_file )  check_passed = .FALSE.
+             ENDIF
+          ELSE
+             IF ( ANY( soil_type_f%var_3d == 0 ) )  THEN
+                IF ( .NOT. soil_pars_f%from_file )  check_passed = .FALSE.
+             ENDIF
+          ENDIF
+          IF ( .NOT. check_passed )  THEN
+             message_string = 'If soil_type = 0 at any location, ' //          &
+                              'soil_pars is required'
+             CALL message( 'netcdf_data_input_mod', 'PA0999', 2, 2, 0, 6, 0 )          
+          ENDIF
+       ENDIF
+!
+!--    If building_type is zero at any location, building_pars is required.
+       IF ( building_type_f%from_file )  THEN
+          IF ( ANY( building_type_f%var == 0 ) )  THEN
+             IF ( .NOT. building_pars_f%from_file )  THEN
+                message_string = 'If building_type = 0 at any location, ' //   &
+                                 'building_pars is required'
+                CALL message( 'netcdf_data_input_mod', 'PA0999', 2, 2, 0, 6, 0 )          
+             ENDIF
+          ENDIF
+       ENDIF
+!
+!--    If albedo_type is zero at any location, albedo_pars is required.
+       IF ( albedo_type_f%from_file )  THEN
+          IF ( ANY( albedo_type_f%var == 0 ) )  THEN
+             IF ( .NOT. albedo_pars_f%from_file )  THEN
+                message_string = 'If albedo_type = 0 at any location, ' //     &
+                                 'albedo_pars is required'
+                CALL message( 'netcdf_data_input_mod', 'PA0999', 2, 2, 0, 6, 0 )     
+             ENDIF     
+          ENDIF
+       ENDIF
+!
+!--    If pavement_type is zero at any location, pavement_pars is required.
+       IF ( pavement_type_f%from_file )  THEN
+          IF ( ANY( pavement_type_f%var == 0 ) )  THEN
+             IF ( .NOT. pavement_pars_f%from_file )  THEN
+                message_string = 'If pavement_type = 0 at any location, ' //   &
+                                 'pavement_pars is required'
+                CALL message( 'netcdf_data_input_mod', 'PA0999', 2, 2, 0, 6, 0 )     
+             ENDIF     
+          ENDIF
+       ENDIF
+!
+!--    If pavement_type is zero at any location, also pavement_subsurface_pars
+!--    is required.
+       IF ( pavement_type_f%from_file )  THEN
+          IF ( ANY( pavement_type_f%var == 0 ) )  THEN
+             IF ( .NOT. pavement_subsurface_pars_f%from_file )  THEN
+                message_string = 'If pavement_type = 0 at any location, ' //   &
+                                 'pavement_subsurface_pars is required'
+                CALL message( 'netcdf_data_input_mod', 'PA0999', 2, 2, 0, 6, 0 )     
+             ENDIF     
+          ENDIF
+       ENDIF
+!
+!--    If water_type is zero at any location, water_pars is required.
+       IF ( water_type_f%from_file )  THEN
+          IF ( ANY( water_type_f%var == 0 ) )  THEN
+             IF ( .NOT. water_pars_f%from_file )  THEN
+                message_string = 'If water_type = 0 at any location, ' //      &
+                                 'water_pars is required'
+                CALL message( 'netcdf_data_input_mod', 'PA0999', 2, 2, 0, 6, 0 )     
+             ENDIF     
+          ENDIF
+       ENDIF
+!
+!--    Check for local consistency of the input data.
+       DO  i = nxl, nxr
+          DO  j = nys, nyn
+!
+!--          For each (y,x)-location at least one of the parameters 
+!--          vegetation_type, pavement_type, building_type, or water_type
+!--          must be set to a nonÂ­missing value.
+             IF ( vegetation_type_f%var(j,i) == vegetation_type_f%fill  .AND.  &
+                  pavement_type_f%var(j,i)   == pavement_type_f%fill    .AND.  &
+                  building_type_f%var(j,i)   == building_type_f%fill    .AND.  &
+                  water_type_f%var(j,i)      == water_type_f%fill )  THEN
+                message_string = 'At least one of the paramters '       //     &
+                                 'vegetation_type, pavement_type, '     //     &
+                                 'building_type, or water_type must be set '// &
+                                 'to a non-missing value'
+                CALL message( 'netcdf_data_input_mod', 'PA0999', 2, 2, 0, 6, 0 )
+             ENDIF
+!
+!--          Note that a soil_type is required for each location (y,x) where 
+!--          either vegetation_type or pavement_type is a nonÂ­missing value.
+             IF ( ( vegetation_type_f%var(j,i) /= vegetation_type_f%fill  .OR. &
+                    pavement_type_f%var(j,i)   /= pavement_type_f%fill ) )  THEN
+                check_passed = .TRUE.
+                IF ( ALLOCATED( soil_type_f%var_2d ) )  THEN
+                   IF ( soil_type_f%var_2d(j,i) == soil_type_f%fill )          &
+                      check_passed = .FALSE.
+                ELSE
+                   IF ( ANY( soil_type_f%var_3d(:,j,i) == soil_type_f%fill) )  &
+                      check_passed = .FALSE.
+                ENDIF
+
+                IF ( .NOT. check_passed )  THEN
+                   message_string = 'soil_type is required for each '//        &
+                                 'location (y,x) where vegetation_type or ' // &
+                                 'pavement_type is a non-missing value.'
+                   CALL message( 'netcdf_data_input_mod', 'PA0999',            &
+                                  2, 2, 0, 6, 0 )
+                ENDIF
+             ENDIF
+!
+!--          Check for consistency of surface fraction. If more than one type 
+!--          is set, surface fraction need to be given and the sum must not 
+!--          be larger than 1.
+             n_surf = 0
+             IF ( vegetation_type_f%var(j,i) /= vegetation_type_f%fill )       &
+                n_surf = n_surf + 1
+             IF ( water_type_f%var(j,i)      /= water_type_f%fill )            &
+                n_surf = n_surf + 1
+             IF ( pavement_type_f%var(j,i)   /= pavement_type_f%fill )         &
+                n_surf = n_surf + 1
+             
+             IF ( n_surf > 1 )  THEN
+                IF ( ANY ( surface_fraction_f%frac(:,j,i) ==                   &
+                     surface_fraction_f%fill ) )  THEN
+                   message_string = 'If more than one surface type is ' //     &
+                                 'given at a location, surface_fraction ' //   &
+                                 'must be provided.'
+                   CALL message( 'netcdf_data_input_mod', 'PA0999',            &
+                                  2, 2, 0, 6, 0 )
+                ENDIF
+                IF ( SUM ( surface_fraction_f%frac(:,j,i) ) > 1.0_wp )  THEN
+                   message_string = 'surface_fraction must not exceed 1'
+                   CALL message( 'netcdf_data_input_mod', 'PA0999',            &
+                                  2, 2, 0, 6, 0 )
+                ENDIF
+             ENDIF
+!
+!--          Check vegetation_pars. If vegetation_type is 0, all parameters 
+!--          need to be set, otherwise, single parameters set by 
+!--          vegetation_type can be overwritten.
+             IF ( vegetation_type_f%from_file )  THEN
+                IF ( vegetation_type_f%var(j,i) == 0 )  THEN
+                   IF ( ANY( vegetation_pars_f%pars_xy(:,j,i) ==               &
+                             vegetation_pars_f%fill ) )  THEN
+                      message_string = 'If vegetation_type(y,x) = 0, all '  // &
+                                       'parameters of vegetation_pars at '//   &  
+                                       'this location must be set.' 
+                      CALL message( 'netcdf_data_input_mod', 'PA0999',         &
+                                     2, 2, 0, 6, 0 )
+                   ENDIF
+                ENDIF
+             ENDIF
+!
+!--          Check root distribution. If vegetation_type is 0, all levels must 
+!--          be set.
+             IF ( vegetation_type_f%from_file )  THEN
+                IF ( vegetation_type_f%var(j,i) == 0 )  THEN
+                   IF ( ANY( root_area_density_lsm_f%var(:,j,i) ==             &
+                             root_area_density_lsm_f%fill ) )  THEN
+                      message_string = 'If vegetation_type(y,x) = 0, all ' //  &
+                                       'levels of root_area_density_lsm ' //   &
+                                       'must be set at this location.' 
+                      CALL message( 'netcdf_data_input_mod', 'PA0999',         &
+                                     2, 2, 0, 6, 0 )
+                   ENDIF
+                ENDIF
+             ENDIF
+!
+!--          Check soil parameters. If soil_type is 0, all parameters  
+!--          must be set.
+             IF ( soil_type_f%from_file )  THEN
+                check_passed = .TRUE.
+                IF ( ALLOCATED( soil_type_f%var_2d ) )  THEN
+                   IF ( soil_type_f%var_2d(j,i) == 0 )  THEN
+                      IF ( ANY( soil_pars_f%pars_xy(:,j,i) ==                  &
+                                soil_pars_f%fill ) )  check_passed = .FALSE.
+                   ENDIF
+                ELSE
+                   IF ( ANY( soil_type_f%var_3d(:,j,i) == 0 ) )  THEN
+                      IF ( ANY( soil_pars_f%pars_xy(:,j,i) ==                  &
+                                soil_pars_f%fill ) )  check_passed = .FALSE.
+                   ENDIF
+                ENDIF
+                IF ( .NOT. check_passed )  THEN
+                   message_string = 'If soil_type(y,x) = 0, all levels of '  //&  
+                                    'soil_pars at this location must be set.' 
+                   CALL message( 'netcdf_data_input_mod', 'PA0999',            &
+                                  2, 2, 0, 6, 0 )
+                ENDIF
+             ENDIF
+
+!
+!--          Check building parameters. If building_type is 0, all parameters  
+!--          must be set.
+             IF ( building_type_f%from_file )  THEN
+                IF ( building_type_f%var(j,i) == 0 )  THEN
+                   IF ( ANY( building_pars_f%pars_xy(:,j,i) ==                 &
+                             building_pars_f%fill ) )  THEN
+                      message_string = 'If building_type(y,x) = 0, all ' //    &
+                                       'parameters of building_pars at this '//&
+                                       'location must be set.' 
+                      CALL message( 'netcdf_data_input_mod', 'PA0999',         &
+                                     2, 2, 0, 6, 0 )
+                   ENDIF
+                ENDIF
+             ENDIF
+!
+!--          Check if building_type is set at each building
+!              IF ( building_type_f%from_file  .AND.  buildings_f%from_file )  THEN
+!                 IF ( buildings_f%var_2d(j,i) /= buildings_f%fill1  .AND.       &
+!                      building_type_f%var(j,i) == building_type_f%fill )  THEN
+!                       WRITE( message_string, * ) 'Each building requires ' //  &
+!                                        ' a type. i, j = ', i, j
+!                       CALL message( 'netcdf_data_input_mod', 'PA0999',         &
+!                                      2, 2, 0, 6, 0 )
+!                 ENDIF
+!              ENDIF
+!
+!--          Check albedo parameters. If albedo_type is 0, all parameters  
+!--          must be set.
+             IF ( albedo_type_f%from_file )  THEN
+                IF ( albedo_type_f%var(j,i) == 0 )  THEN
+                   IF ( ANY( albedo_pars_f%pars_xy(:,j,i) ==                   &
+                             albedo_pars_f%fill ) )  THEN
+                      message_string = 'If albedo_type(y,x) = 0, all ' //      &
+                                       'parameters of albedo_pars at this ' // &
+                                       'location must be set.' 
+                      CALL message( 'netcdf_data_input_mod', 'PA0999',         &
+                                     2, 2, 0, 6, 0 )
+                   ENDIF
+                ENDIF
+             ENDIF
+
+!
+!--          Check pavement parameters. If pavement_type is 0, all parameters  
+!--          of pavement_pars must be set at this location.
+             IF ( pavement_type_f%from_file )  THEN
+                IF ( pavement_type_f%var(j,i) == 0 )  THEN
+                   IF ( ANY( pavement_pars_f%pars_xy(:,j,i) ==                 &
+                             pavement_pars_f%fill ) )  THEN
+                      message_string = 'If pavement_type(y,x) = 0, all ' //    &
+                                       'parameters of pavement_pars at this '//&
+                                       'location must be set.' 
+                      CALL message( 'netcdf_data_input_mod', 'PA0999',         &
+                                     2, 2, 0, 6, 0 )
+                   ENDIF
+                ENDIF
+             ENDIF
+!
+!--          Check pavement-subsurface parameters. If pavement_type is 0, 
+!--          all parameters of pavement_subsurface_pars must be set  at this 
+!--          location.
+             IF ( pavement_type_f%from_file )  THEN
+                IF ( pavement_type_f%var(j,i) == 0 )  THEN
+                   IF ( ANY( pavement_subsurface_pars_f%pars_xyz(:,:,j,i) ==   &
+                             pavement_subsurface_pars_f%fill ) )  THEN
+                      message_string = 'If pavement_type(y,x) = 0, all ' //    &
+                                       'parameters of '                  //    &
+                                       'pavement_subsurface_pars at this '//   &
+                                       'location must be set.' 
+                      CALL message( 'netcdf_data_input_mod', 'PA0999',         &
+                                     2, 2, 0, 6, 0 )
+                   ENDIF
+                ENDIF
+             ENDIF
+
+!
+!--          Check water parameters. If water_type is 0, all parameters  
+!--          must be set  at this location.
+             IF ( water_type_f%from_file )  THEN
+                IF ( water_type_f%var(j,i) == 0 )  THEN
+                   IF ( ANY( water_pars_f%pars_xy(:,j,i) ==                    &
+                             water_pars_f%fill ) )  THEN
+                      message_string = 'If water_type(y,x) = 0, all ' //       &
+                                       'parameters of water_pars at this ' //  &
+                                       'location must be set.' 
+                      CALL message( 'netcdf_data_input_mod', 'PA0999',         &
+                                     2, 2, 0, 6, 0 )
+                   ENDIF
+                ENDIF
+             ENDIF
+
+          ENDDO
+       ENDDO
+
+    END SUBROUTINE netcdf_data_input_check_static
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Vertical interpolation and extrapolation of 1D variables.
+!------------------------------------------------------------------------------!
+    SUBROUTINE netcdf_data_input_interpolate_1d( var, z_grid, z_file)
+
+       IMPLICIT NONE
+
+       LOGICAL      ::  top     !< flag indicating extrapolation at model top
+
+       INTEGER(iwp) ::  k       !< running index z-direction file
+       INTEGER(iwp) ::  kk      !< running index z-direction stretched model grid
+       INTEGER(iwp) ::  kl      !< lower index bound along z-direction
+       INTEGER(iwp) ::  ku      !< upper index bound along z-direction
+       INTEGER(iwp) ::  nz_file !< number of vertical levels on file 
+
+
+       REAL(wp), DIMENSION(:) ::  z_grid                  !< grid levels on numeric grid 
+       REAL(wp), DIMENSION(:) ::  z_file                  !< grid levels on file grid 
+       REAL(wp), DIMENSION(:), INTENT(INOUT) ::  var      !< treated variable
+       REAL(wp), DIMENSION(:), ALLOCATABLE   ::  var_tmp  !< temporary variable
+
+
+       kl = LBOUND(var,1)
+       ku = UBOUND(var,1)
+       ALLOCATE( var_tmp(kl:ku) )
+
+       DO  k = kl, ku
+
+          kk = MINLOC( ABS( z_file - z_grid(k) ), DIM = 1 )
+
+          IF ( kk < ku )  THEN
+             IF ( z_file(kk) - z_grid(k) <= 0.0_wp )  THEN
+                var_tmp(k) = var(kk) +                                         &
+                                       ( var(kk+1)        - var(kk)    ) /     &
+                                       ( z_file(kk+1)     - z_file(kk) ) *     &
+                                       ( z_grid(k)        - z_file(kk) ) 
+
+             ELSEIF ( z_file(kk) - z_grid(k) > 0.0_wp )  THEN
+                var_tmp(k) = var(kk-1) +                                       &
+                                         ( var(kk)     - var(kk-1)    ) /      &
+                                         ( z_file(kk)  - z_file(kk-1) ) *      &
+                                         ( z_grid(k)   - z_file(kk-1) ) 
+             ENDIF
+!
+!--       Extrapolate
+          ELSE
+     
+             var_tmp(k) = var(ku) +   ( var(ku)    - var(ku-1)      ) /        &
+                                      ( z_file(ku) - z_file(ku-1)   ) *        &
+                                      ( z_grid(k)  - z_file(ku)     )  
+    
+          ENDIF
+
+       ENDDO
+       var(:) = var_tmp(:)
+
+       DEALLOCATE( var_tmp )
+
+
+    END SUBROUTINE netcdf_data_input_interpolate_1d
+
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Vertical interpolation and extrapolation of 1D variables from Inifor grid
+!> onto Palm grid, where both have same dimension. Please note, the passed
+!> paramter list in 1D version is different compared to 2D version.
+!------------------------------------------------------------------------------!
+    SUBROUTINE netcdf_data_input_interpolate_1d_soil( var, var_file,           &
+                                                      z_grid, z_file,          &
+                                                      nzb_var, nzt_var,        & 
+                                                      nzb_file, nzt_file )
+
+       IMPLICIT NONE
+
+       INTEGER(iwp) ::  i        !< running index x-direction
+       INTEGER(iwp) ::  j        !< running index y-direction
+       INTEGER(iwp) ::  k        !< running index z-direction file
+       INTEGER(iwp) ::  kk       !< running index z-direction stretched model grid
+       INTEGER(iwp) ::  ku       !< upper index bound along z-direction for varialbe from file
+       INTEGER(iwp) ::  nzb_var  !< lower bound of final array 
+       INTEGER(iwp) ::  nzt_var  !< upper bound of final array 
+       INTEGER(iwp) ::  nzb_file !< lower bound of file array 
+       INTEGER(iwp) ::  nzt_file !< upper bound of file array 
+
+!        LOGICAL, OPTIONAL ::  depth !< flag indicating reverse z-axis, i.e. depth instead of height, e.g. in case of ocean or soil
+
+       REAL(wp), DIMENSION(nzb_var:nzt_var)   ::  z_grid   !< grid levels on numeric grid 
+       REAL(wp), DIMENSION(nzb_file:nzt_file) ::  z_file   !< grid levels on file grid 
+       REAL(wp), DIMENSION(nzb_var:nzt_var)   ::  var      !< treated variable
+       REAL(wp), DIMENSION(nzb_file:nzt_file) ::  var_file !< temporary variable
+
+       ku = nzt_file
+
+       DO  k = nzb_var, nzt_var
+!
+!--       Determine index on Inifor grid which is closest to the actual height
+          kk = MINLOC( ABS( z_file - z_grid(k) ), DIM = 1 )
+!
+!--       If closest index on Inifor grid is smaller than top index, 
+!--       interpolate the data
+          IF ( kk < nzt_file )  THEN
+             IF ( z_file(kk) - z_grid(k) <= 0.0_wp )  THEN
+                var(k) = var_file(kk) + ( var_file(kk+1) - var_file(kk) ) /    &
+                                        ( z_file(kk+1)   - z_file(kk)   ) *    &
+                                        ( z_grid(k)      - z_file(kk)   ) 
+
+             ELSEIF ( z_file(kk) - z_grid(k) > 0.0_wp )  THEN
+                var(k) = var_file(kk-1) + ( var_file(kk) - var_file(kk-1) ) /  &
+                                          ( z_file(kk)   - z_file(kk-1)   ) *  &
+                                          ( z_grid(k)    - z_file(kk-1)   ) 
+             ENDIF
+!
+!--       Extrapolate if actual height is above the highest Inifor level
+          ELSE
+             var(k) = var_file(ku) + ( var_file(ku) - var_file(ku-1) ) /       &
+                                     ( z_file(ku)   - z_file(ku-1)   ) *       &
+                                     ( z_grid(k)    - z_file(ku)     )  
+
+          ENDIF
+
+       ENDDO
+
+    END SUBROUTINE netcdf_data_input_interpolate_1d_soil
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Vertical interpolation and extrapolation of 2D variables at lateral boundaries.
+!------------------------------------------------------------------------------!
+    SUBROUTINE netcdf_data_input_interpolate_2d( var, z_grid, z_file)
+
+       IMPLICIT NONE
+
+       LOGICAL      ::  top     !< flag indicating extrapolation at model top
+
+       INTEGER(iwp) ::  i       !< running index x- or y -direction
+       INTEGER(iwp) ::  il      !< lower index bound along x- or y-direction
+       INTEGER(iwp) ::  iu      !< upper index bound along x- or y-direction
+       INTEGER(iwp) ::  k       !< running index z-direction file
+       INTEGER(iwp) ::  kk      !< running index z-direction stretched model grid
+       INTEGER(iwp) ::  kl      !< lower index bound along z-direction
+       INTEGER(iwp) ::  ku      !< upper index bound along z-direction
+       INTEGER(iwp) ::  nz_file !< number of vertical levels on file 
+
+
+       REAL(wp), DIMENSION(:) ::  z_grid                  !< grid levels on numeric grid 
+       REAL(wp), DIMENSION(:) ::  z_file                  !< grid levels on file grid 
+       REAL(wp), DIMENSION(:,:), INTENT(INOUT) ::  var    !< treated variable
+       REAL(wp), DIMENSION(:), ALLOCATABLE   ::  var_tmp  !< temporary variable
+
+
+       il = LBOUND(var,2)
+       iu = UBOUND(var,2)
+       kl = LBOUND(var,1)
+       ku = UBOUND(var,1)
+       ALLOCATE( var_tmp(kl:ku) )
+
+       DO  i = il, iu
+          DO  k = kl, ku
+
+             kk = MINLOC( ABS( z_file - z_grid(k) ), DIM = 1 )
+
+             IF ( kk < ku )  THEN
+                IF ( z_file(kk) - z_grid(k) <= 0.0_wp )  THEN
+                   var_tmp(k) = var(kk,i) +                                    &
+                                          ( var(kk+1,i)      - var(kk,i)  ) /  &
+                                          ( z_file(kk+1)     - z_file(kk) ) *  &
+                                          ( z_grid(k)        - z_file(kk) ) 
+
+                ELSEIF ( z_file(kk) - z_grid(k) > 0.0_wp )  THEN
+                   var_tmp(k) = var(kk-1,i) +                                  &
+                                            ( var(kk,i)   - var(kk-1,i)  ) /   &
+                                            ( z_file(kk)  - z_file(kk-1) ) *   &
+                                            ( z_grid(k)   - z_file(kk-1) ) 
+                ENDIF
+!
+!--          Extrapolate
+             ELSE
+     
+                var_tmp(k) = var(ku,i) + ( var(ku,i)  - var(ku-1,i)    ) /     &
+                                         ( z_file(ku) - z_file(ku-1)   ) *     &
+                                         ( z_grid(k)  - z_file(ku)     )  
+    
+             ENDIF
+
+          ENDDO
+          var(:,i) = var_tmp(:)
+
+       ENDDO
+
+       DEALLOCATE( var_tmp )
+
+
+    END SUBROUTINE netcdf_data_input_interpolate_2d
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Vertical interpolation and extrapolation of 3D variables.
+!------------------------------------------------------------------------------!
+    SUBROUTINE netcdf_data_input_interpolate_3d( var, z_grid, z_file )
+
+       IMPLICIT NONE
+
+       INTEGER(iwp) ::  i       !< running index x-direction
+       INTEGER(iwp) ::  il      !< lower index bound along x-direction
+       INTEGER(iwp) ::  iu      !< upper index bound along x-direction
+       INTEGER(iwp) ::  j       !< running index y-direction
+       INTEGER(iwp) ::  jl      !< lower index bound along x-direction
+       INTEGER(iwp) ::  ju      !< upper index bound along x-direction
+       INTEGER(iwp) ::  k       !< running index z-direction file
+       INTEGER(iwp) ::  kk      !< running index z-direction stretched model grid
+       INTEGER(iwp) ::  kl      !< lower index bound along z-direction
+       INTEGER(iwp) ::  ku      !< upper index bound along z-direction
+       INTEGER(iwp) ::  nz_file !< number of vertical levels on file 
+
+       REAL(wp), DIMENSION(:) ::  z_grid                      !< grid levels on numeric grid 
+       REAL(wp), DIMENSION(:) ::  z_file                      !< grid levels on file grid
+       REAL(wp), DIMENSION(:,:,:), INTENT(INOUT) ::  var      !< treated variable
+       REAL(wp), DIMENSION(:), ALLOCATABLE       ::  var_tmp  !< temporary variable
+
+       il = LBOUND(var,3)
+       iu = UBOUND(var,3)
+       jl = LBOUND(var,2)
+       ju = UBOUND(var,2)
+       kl = LBOUND(var,1)
+       ku = UBOUND(var,1)
+
+       ALLOCATE( var_tmp(kl:ku) )
+
+       DO  i = il, iu
+          DO  j = jl, ju
+             DO  k = kl, ku
+
+                kk = MINLOC( ABS( z_file - z_grid(k) ), DIM = 1 ) 
+
+                IF ( kk < ku )  THEN
+                   IF ( z_file(kk) - z_grid(k) <= 0.0_wp )  THEN
+                      var_tmp(k) = var(kk,j,i) +                               &
+                                             ( var(kk+1,j,i) - var(kk,j,i) ) / &
+                                             ( z_file(kk+1)  - z_file(kk)  ) * &
+                                             ( z_grid(k)     - z_file(kk)  ) 
+
+                   ELSEIF ( z_file(kk) - z_grid(k) > 0.0_wp )  THEN
+                      var_tmp(k) = var(kk-1,j,i) +                             &
+                                             ( var(kk,j,i) - var(kk-1,j,i) ) / &
+                                             ( z_file(kk)  - z_file(kk-1)  ) * &
+                                             ( z_grid(k)   - z_file(kk-1)  ) 
+                   ENDIF
+!
+!--             Extrapolate
+                ELSE
+                   var_tmp(k) = var(ku,j,i) +                                  &
+                                       ( var(ku,j,i)  - var(ku-1,j,i)   ) /    &
+                                       ( z_file(ku)   - z_file(ku-1)    ) *    &
+                                       ( z_grid(k)    - z_file(ku)      )  
+
+                ENDIF
+             ENDDO
+             var(:,j,i) = var_tmp(:)
+          ENDDO
+       ENDDO
+
+       DEALLOCATE( var_tmp )
+
+
+    END SUBROUTINE netcdf_data_input_interpolate_3d
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Checks if a given variables is on file
+!------------------------------------------------------------------------------!
+    FUNCTION check_existence( vars_in_file, var_name )
+
+       IMPLICIT NONE
+
+       CHARACTER(LEN=*) ::  var_name                   !< variable to be checked
+       CHARACTER(LEN=*), DIMENSION(:) ::  vars_in_file !< list of variables in file
+
+       INTEGER(iwp) ::  i                              !< loop variable
+
+       LOGICAL ::  check_existence                     !< flag indicating whether a variable exist or not - actual return value
+
+       i = 1
+       check_existence = .FALSE.
+       DO  WHILE ( i <= SIZE( vars_in_file ) )
+          check_existence = TRIM( vars_in_file(i) ) == TRIM( var_name )  .OR.  &
+                            check_existence
+          i = i + 1
+       ENDDO
+
+       RETURN
+
+    END FUNCTION check_existence
+
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Closes an existing netCDF file.
+!------------------------------------------------------------------------------!
+    SUBROUTINE close_file( id )
+#if defined( __netcdf )
+
+       USE pegrid
+
+       IMPLICIT NONE
+
+       INTEGER(iwp), INTENT(INOUT)        ::  id        !< file id
+
+       nc_stat = NF90_CLOSE( id )
+       CALL handle_error( 'close', 537 )
+#endif
+    END SUBROUTINE close_file
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Opens an existing netCDF file for reading only and returns its id.
+!------------------------------------------------------------------------------!
+    SUBROUTINE open_read_file( filename, id )
+#if defined( __netcdf )
+
+       USE pegrid
+
+       IMPLICIT NONE
+
+       CHARACTER (LEN=*), INTENT(IN) ::  filename  !< filename
+       INTEGER(iwp), INTENT(INOUT)   ::  id        !< file id
+       LOGICAL                       ::  file_open = .FALSE.
+
+       nc_stat = NF90_OPEN( filename, NF90_NOWRITE, id )
+
+       CALL handle_error( 'open_read_file', 536 )
+
+#endif
+    END SUBROUTINE open_read_file
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Reads global or variable-related attributes of type INTEGER (32-bit)
+!------------------------------------------------------------------------------!
+     SUBROUTINE get_attribute_int32( id, attribute_name, value, global,        &
+                                     variable_name )
+#if defined( __netcdf )
+
+       USE pegrid
+
+       IMPLICIT NONE
+
+       CHARACTER(LEN=*)            ::  attribute_name   !< attribute name
+       CHARACTER(LEN=*), OPTIONAL  ::  variable_name    !< variable name 
+
+       INTEGER(iwp), INTENT(IN)    ::  id               !< file id
+       INTEGER(iwp)                ::  id_var           !< variable id
+       INTEGER(iwp), INTENT(INOUT) ::  value            !< read value
+
+       LOGICAL, INTENT(IN) ::  global                   !< flag indicating global attribute
+
+!
+!--    Read global attribute
+       IF ( global )  THEN
+          nc_stat = NF90_GET_ATT( id, NF90_GLOBAL, TRIM( attribute_name ), value )
+          CALL handle_error( 'get_attribute_int32 global', 522 )
+!
+!--    Read attributes referring to a single variable. Therefore, first inquire 
+!--    variable id
+       ELSE
+          nc_stat = NF90_INQ_VARID( id, TRIM( variable_name ), id_var )
+          CALL handle_error( 'get_attribute_int32', 522 )
+          nc_stat = NF90_GET_ATT( id, id_var, TRIM( attribute_name ), value )
+          CALL handle_error( 'get_attribute_int32', 522 )       
+       ENDIF
+#endif
+    END SUBROUTINE get_attribute_int32
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Reads global or variable-related attributes of type INTEGER (8-bit)
+!------------------------------------------------------------------------------!
+     SUBROUTINE get_attribute_int8( id, attribute_name, value, global,         &
+                                    variable_name )
+#if defined( __netcdf )
+
+       USE pegrid
+
+       IMPLICIT NONE
+
+       CHARACTER(LEN=*)            ::  attribute_name   !< attribute name
+       CHARACTER(LEN=*), OPTIONAL  ::  variable_name    !< variable name 
+
+       INTEGER(iwp), INTENT(IN)    ::  id               !< file id
+       INTEGER(iwp)                ::  id_var           !< variable id
+       INTEGER(KIND=1), INTENT(INOUT) ::  value         !< read value
+
+       LOGICAL, INTENT(IN) ::  global                   !< flag indicating global attribute
+
+!
+!--    Read global attribute
+       IF ( global )  THEN
+          nc_stat = NF90_GET_ATT( id, NF90_GLOBAL, TRIM( attribute_name ), value )
+          CALL handle_error( 'get_attribute_int8 global', 523 )
+!
+!--    Read attributes referring to a single variable. Therefore, first inquire 
+!--    variable id
+       ELSE
+          nc_stat = NF90_INQ_VARID( id, TRIM( variable_name ), id_var )
+          CALL handle_error( 'get_attribute_int8', 523 )
+          nc_stat = NF90_GET_ATT( id, id_var, TRIM( attribute_name ), value )
+          CALL handle_error( 'get_attribute_int8', 523 )       
+       ENDIF
+#endif
+    END SUBROUTINE get_attribute_int8
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Reads global or variable-related attributes of type REAL
+!------------------------------------------------------------------------------!
+     SUBROUTINE get_attribute_real( id, attribute_name, value, global,         &
+                                    variable_name )
+#if defined( __netcdf )
+
+       USE pegrid
+
+       IMPLICIT NONE
+
+       CHARACTER(LEN=*)            ::  attribute_name   !< attribute name
+       CHARACTER(LEN=*), OPTIONAL  ::  variable_name    !< variable name 
+
+       INTEGER(iwp), INTENT(IN)    ::  id               !< file id
+       INTEGER(iwp)                ::  id_var           !< variable id
+
+       LOGICAL, INTENT(IN) ::  global                   !< flag indicating global attribute
+
+       REAL(wp), INTENT(INOUT)     ::  value            !< read value
+
+
+!
+!-- Read global attribute
+       IF ( global )  THEN
+          nc_stat = NF90_GET_ATT( id, NF90_GLOBAL, TRIM( attribute_name ), value )
+          CALL handle_error( 'get_attribute_real global', 524 )
+!
+!-- Read attributes referring to a single variable. Therefore, first inquire 
+!-- variable id
+       ELSE
+          nc_stat = NF90_INQ_VARID( id, TRIM( variable_name ), id_var )
+          CALL handle_error( 'get_attribute_real', 524 )
+          nc_stat = NF90_GET_ATT( id, id_var, TRIM( attribute_name ), value )
+          CALL handle_error( 'get_attribute_real', 524 )       
+       ENDIF
+#endif
+    END SUBROUTINE get_attribute_real
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Reads global or variable-related attributes of type CHARACTER
+!> Remark: reading attributes of type NF_STRING return an error code 56 -
+!> Attempt to convert between text & numbers.
+!------------------------------------------------------------------------------!
+     SUBROUTINE get_attribute_string( id, attribute_name, value, global,       &
+                                      variable_name )
+#if defined( __netcdf )
+
+       USE pegrid
+
+       IMPLICIT NONE
+
+       CHARACTER(LEN=*)                ::  attribute_name   !< attribute name
+       CHARACTER(LEN=*), OPTIONAL      ::  variable_name    !< variable name 
+       CHARACTER(LEN=*), INTENT(INOUT) ::  value            !< read value
+
+       INTEGER(iwp), INTENT(IN)    ::  id               !< file id
+       INTEGER(iwp)                ::  id_var           !< variable id
+
+       LOGICAL, INTENT(IN) ::  global                   !< flag indicating global attribute
+
+!
+!--    Read global attribute
+       IF ( global )  THEN
+          nc_stat = NF90_GET_ATT( id, NF90_GLOBAL, TRIM( attribute_name ), value )
+          CALL handle_error( 'get_attribute_string global', 525 )
+!
+!--    Read attributes referring to a single variable. Therefore, first inquire 
+!--    variable id
+       ELSE
+          nc_stat = NF90_INQ_VARID( id, TRIM( variable_name ), id_var )
+          CALL handle_error( 'get_attribute_string', 525 )
+
+          nc_stat = NF90_GET_ATT( id, id_var, TRIM( attribute_name ), value )
+          CALL handle_error( 'get_attribute_string',525 ) 
+
+       ENDIF
+#endif
+    END SUBROUTINE get_attribute_string
+
+
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Get dimension array for a given dimension
+!------------------------------------------------------------------------------!
+     SUBROUTINE get_dimension_length( id, dim_len, variable_name )
+#if defined( __netcdf )
+
+       USE pegrid
+
+       IMPLICIT NONE
+
+       CHARACTER(LEN=*)            ::  variable_name    !< dimension name 
+       CHARACTER(LEN=100)          ::  dum              !< dummy variable to receive return character
+
+       INTEGER(iwp)                ::  dim_len          !< dimension size
+       INTEGER(iwp), INTENT(IN)    ::  id               !< file id
+       INTEGER(iwp)                ::  id_dim           !< dimension id
+
+!
+!--    First, inquire dimension ID
+       nc_stat = NF90_INQ_DIMID( id, TRIM( variable_name ), id_dim )
+       CALL handle_error( 'get_dimension_length', 526 )
+!
+!--    Inquire dimension length
+       nc_stat = NF90_INQUIRE_DIMENSION( id, id_dim, dum, LEN = dim_len )
+       CALL handle_error( 'get_dimension_length', 526 ) 
+
+#endif
+    END SUBROUTINE get_dimension_length
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Reads a 1D integer variable from file. 
+!------------------------------------------------------------------------------!
+     SUBROUTINE get_variable_1d_int( id, variable_name, var )
+#if defined( __netcdf )
+
+       USE pegrid
+
+       IMPLICIT NONE
+
+       CHARACTER(LEN=*)            ::  variable_name    !< variable name 
+
+       INTEGER(iwp), INTENT(IN)    ::  id               !< file id
+       INTEGER(iwp)                ::  id_var           !< dimension id
+
+       INTEGER(iwp), DIMENSION(:), INTENT(INOUT) ::  var  !< variable to be read
+
+!
+!--    First, inquire variable ID
+       nc_stat = NF90_INQ_VARID( id, TRIM( variable_name ), id_var )
+       CALL handle_error( 'get_variable_1d_int', 527 )
+!
+!--    Inquire dimension length
+       nc_stat = NF90_GET_VAR( id, id_var, var )
+       CALL handle_error( 'get_variable_1d_int', 527 ) 
+
+#endif
+    END SUBROUTINE get_variable_1d_int
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Reads a 1D float variable from file. 
+!------------------------------------------------------------------------------!
+     SUBROUTINE get_variable_1d_real( id, variable_name, var )
+#if defined( __netcdf )
+
+       USE pegrid
+
+       IMPLICIT NONE
+
+       CHARACTER(LEN=*)            ::  variable_name    !< variable name 
+
+       INTEGER(iwp), INTENT(IN)    ::  id               !< file id
+       INTEGER(iwp)                ::  id_var           !< dimension id
+
+       REAL(wp), DIMENSION(:), INTENT(INOUT) ::  var  !< variable to be read
+
+!
+!--    First, inquire variable ID
+       nc_stat = NF90_INQ_VARID( id, TRIM( variable_name ), id_var )
+       CALL handle_error( 'get_variable_1d_real', 527 )
+!
+!--    Inquire dimension length
+       nc_stat = NF90_GET_VAR( id, id_var, var )
+       CALL handle_error( 'get_variable_1d_real', 527 ) 
+
+#endif
+    END SUBROUTINE get_variable_1d_real
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Reads a 2D REAL variable from a file. Reading is done processor-wise, 
+!> i.e. each core reads its own domain in slices along x. 
+!------------------------------------------------------------------------------! 
+    SUBROUTINE get_variable_2d_real( id, variable_name, i, var )
+#if defined( __netcdf )
+
+       USE indices
+       USE pegrid
+
+       IMPLICIT NONE
+
+       CHARACTER(LEN=*)              ::  variable_name   !< variable name
+
+       INTEGER(iwp), INTENT(IN)      ::  i               !< index along x direction
+       INTEGER(iwp), INTENT(IN)      ::  id              !< file id
+       INTEGER(iwp)                  ::  id_var          !< variable id
+
+       REAL(wp), DIMENSION(nys:nyn), INTENT(INOUT) ::  var  !< variable to be read
+!
+!--    Inquire variable id
+       nc_stat = NF90_INQ_VARID( id, TRIM( variable_name ), id_var )
+!
+!--    Get variable
+       nc_stat = NF90_GET_VAR( id, id_var, var(nys:nyn),                       &
+                               start = (/ i+1, nys+1 /),                       &
+                               count = (/ 1, nyn - nys + 1 /) )
+
+       CALL handle_error( 'get_variable_2d_real', 528 )
+#endif
+    END SUBROUTINE get_variable_2d_real
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Reads a 2D 32-bit INTEGER variable from file. Reading is done processor-wise, 
+!> i.e. each core reads its own domain in slices along x. 
+!------------------------------------------------------------------------------!
+    SUBROUTINE get_variable_2d_int32( id, variable_name, i, var )
+#if defined( __netcdf )
+
+       USE indices
+       USE pegrid
+
+       IMPLICIT NONE
+
+       CHARACTER(LEN=*)              ::  variable_name   !< variable name
+
+       INTEGER(iwp), INTENT(IN)      ::  i               !< index along x direction
+       INTEGER(iwp), INTENT(IN)      ::  id              !< file id
+       INTEGER(iwp)                  ::  id_var          !< variable id
+       INTEGER(iwp), DIMENSION(nys:nyn), INTENT(INOUT) ::  var  !< variable to be read
+!
+!--    Inquire variable id
+       nc_stat = NF90_INQ_VARID( id, TRIM( variable_name ), id_var )
+!
+!--    Get variable
+       nc_stat = NF90_GET_VAR( id, id_var, var(nys:nyn),                       &
+                               start = (/ i+1, nys+1 /),                       &
+                               count = (/ 1, nyn - nys + 1 /) )
+
+       CALL handle_error( 'get_variable_2d_int32', 529 )
+#endif
+    END SUBROUTINE get_variable_2d_int32
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Reads a 2D 8-bit INTEGER variable from file. Reading is done processor-wise, 
+!> i.e. each core reads its own domain in slices along x. 
+!------------------------------------------------------------------------------!
+    SUBROUTINE get_variable_2d_int8( id, variable_name, i, var )
+#if defined( __netcdf )
+
+       USE indices
+       USE pegrid
+
+       IMPLICIT NONE
+
+       CHARACTER(LEN=*)              ::  variable_name   !< variable name
+
+       INTEGER(iwp), INTENT(IN)      ::  i               !< index along x direction
+       INTEGER(iwp), INTENT(IN)      ::  id              !< file id
+       INTEGER(iwp)                  ::  id_var          !< variable id
+       INTEGER(KIND=1), DIMENSION(nys:nyn), INTENT(INOUT) ::  var  !< variable to be read
+!
+!--    Inquire variable id
+       nc_stat = NF90_INQ_VARID( id, TRIM( variable_name ), id_var )
+!
+!--    Get variable
+       nc_stat = NF90_GET_VAR( id, id_var, var(nys:nyn),                       &
+                               start = (/ i+1, nys+1 /),                       &
+                               count = (/ 1, nyn - nys + 1 /) )
+
+       CALL handle_error( 'get_variable_2d_int8', 530 )
+#endif
+    END SUBROUTINE get_variable_2d_int8
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Reads a 3D 8-bit INTEGER variable from file.
+!------------------------------------------------------------------------------!
+    SUBROUTINE get_variable_3d_int8( id, variable_name, i, j, var )
+#if defined( __netcdf )
+
+       USE indices
+       USE pegrid
+
+       IMPLICIT NONE
+
+       CHARACTER(LEN=*)              ::  variable_name   !< variable name
+
+       INTEGER(iwp), INTENT(IN)      ::  i               !< index along x direction
+       INTEGER(iwp), INTENT(IN)      ::  id              !< file id
+       INTEGER(iwp)                  ::  id_var          !< variable id
+       INTEGER(iwp), INTENT(IN)      ::  j               !< index along y direction
+       INTEGER(iwp)                  ::  n_file          !< number of data-points along 3rd dimension
+
+       INTEGER(iwp), DIMENSION(1:3)  ::  id_dim
+
+       INTEGER( KIND = 1 ), DIMENSION(nzb:nzt+1), INTENT(INOUT) ::  var  !< variable to be read
+
+!
+!--    Inquire variable id
+       nc_stat = NF90_INQ_VARID( id, TRIM( variable_name ), id_var )
+!
+!--    Get length of first dimension, required for the count parameter.
+!--    Therefore, first inquired dimension ids
+       nc_stat = NF90_INQUIRE_VARIABLE( id, id_var, DIMIDS = id_dim )
+       nc_stat = NF90_INQUIRE_DIMENSION( id, id_dim(3), LEN = n_file )
+!
+!--    Get variable
+       nc_stat = NF90_GET_VAR( id, id_var, var,                  &
+                               start = (/ i+1, j+1, 1 /),                      &
+                               count = (/ 1, 1, n_file /) )
+
+       CALL handle_error( 'get_variable_3d_int8', 531 )
+#endif
+    END SUBROUTINE get_variable_3d_int8
+
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Reads a 3D float variable from file.  
+!------------------------------------------------------------------------------!
+    SUBROUTINE get_variable_3d_real( id, variable_name, i, j, var )
+#if defined( __netcdf )
+
+       USE indices
+       USE pegrid
+
+       IMPLICIT NONE
+
+       CHARACTER(LEN=*)              ::  variable_name   !< variable name
+
+       INTEGER(iwp), INTENT(IN)      ::  i               !< index along x direction
+       INTEGER(iwp), INTENT(IN)      ::  id              !< file id
+       INTEGER(iwp)                  ::  id_var          !< variable id
+       INTEGER(iwp), INTENT(IN)      ::  j               !< index along y direction
+       INTEGER(iwp)                  ::  n3              !< number of data-points along 3rd dimension
+
+       INTEGER(iwp), DIMENSION(3)    ::  id_dim
+
+       REAL(wp), DIMENSION(:), INTENT(INOUT) ::  var     !< variable to be read
+
+!
+!--    Inquire variable id
+       nc_stat = NF90_INQ_VARID( id, TRIM( variable_name ), id_var )
+!
+!--    Get length of first dimension, required for the count parameter.
+!--    Therefore, first inquired dimension ids
+       nc_stat = NF90_INQUIRE_VARIABLE( id, id_var, DIMIDS = id_dim )
+       nc_stat = NF90_INQUIRE_DIMENSION( id, id_dim(3), LEN = n3 )
+!
+!--    Get variable
+       nc_stat = NF90_GET_VAR( id, id_var, var,                                &
+                               start = (/ i+1, j+1, 1 /),                      &
+                               count = (/ 1, 1, n3 /) )
+
+       CALL handle_error( 'get_variable_3d_real', 532 )
+#endif
+    END SUBROUTINE get_variable_3d_real
+
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Reads a 4D float variable from file. Note, in constrast to 3D versions, 
+!> dimensions are already inquired and passed so that they are known here.
+!------------------------------------------------------------------------------!
+    SUBROUTINE get_variable_4d_real( id, variable_name, i, j, var, n3, n4 )
+#if defined( __netcdf )
+
+       USE indices
+       USE pegrid
+
+       IMPLICIT NONE
+
+       CHARACTER(LEN=*)              ::  variable_name   !< variable name
+
+       INTEGER(iwp), INTENT(IN)      ::  i               !< index along x direction
+       INTEGER(iwp), INTENT(IN)      ::  id              !< file id
+       INTEGER(iwp)                  ::  id_var          !< variable id
+       INTEGER(iwp), INTENT(IN)      ::  j               !< index along y direction
+       INTEGER(iwp), INTENT(IN)      ::  n3              !< number of data-points along 3rd dimension
+       INTEGER(iwp), INTENT(IN)      ::  n4              !< number of data-points along 4th dimension
+
+       INTEGER(iwp), DIMENSION(3)    ::  id_dim
+
+       REAL(wp), DIMENSION(:,:), INTENT(INOUT) ::  var     !< variable to be read
+
+!
+!--    Inquire variable id
+       nc_stat = NF90_INQ_VARID( id, TRIM( variable_name ), id_var )
+!
+!--    Get variable
+       nc_stat = NF90_GET_VAR( id, id_var, var,                                &
+                               start = (/ i+1, j+1, 1, 1 /),                   &
+                               count = (/ 1, 1, n3, n4 /) )
+
+       CALL handle_error( 'get_variable_4d_real', 533 )
+#endif
+    END SUBROUTINE get_variable_4d_real
+
+
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Reads a 3D float variable at left, right, north, south and top boundaries. 
+!------------------------------------------------------------------------------!
+    SUBROUTINE get_variable_bc( id, variable_name, t_start,                    &
+                                i2_s, count_2, i3_s, count_3,  var )
+#if defined( __netcdf )
+
+       USE indices
+       USE pegrid
+
+       IMPLICIT NONE
+
+       CHARACTER(LEN=*)              ::  variable_name   !< variable name
+
+       INTEGER(iwp)                  ::  count_2         !< number of elements in second dimension
+       INTEGER(iwp)                  ::  count_3         !< number of elements in third dimension (usually 1)
+       INTEGER(iwp)                  ::  i2_s            !< start index of second dimension
+       INTEGER(iwp)                  ::  i3_s            !< start index of third dimension
+       INTEGER(iwp), INTENT(IN)      ::  id              !< file id
+       INTEGER(iwp)                  ::  id_var          !< variable id
+       INTEGER(iwp)                  ::  t_start         !< start index at time dimension with respect to netcdf convention
+
+       REAL(wp), DIMENSION(:), INTENT(INOUT) ::  var     !< input variable 
+
+!
+!--    Inquire variable id
+       nc_stat = NF90_INQ_VARID( id, TRIM( variable_name ), id_var )
+!
+!--    Get variable
+       nc_stat = NF90_GET_VAR( id, id_var, var,                              &
+                               start = (/ i3_s, i2_s, t_start /),            & 
+                               count = (/ count_3, count_2, 1 /) )        
+
+       CALL handle_error( 'get_variable_bc', 532 )
+#endif
+    END SUBROUTINE get_variable_bc
+
+
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Inquires the number of variables in a file  
+!------------------------------------------------------------------------------!
+    SUBROUTINE inquire_num_variables( id, num_vars )
+#if defined( __netcdf )
+
+       USE indices
+       USE pegrid
+
+       IMPLICIT NONE
+
+       INTEGER(iwp), INTENT(IN)      ::  id              !< file id
+       INTEGER(iwp), INTENT(INOUT)   ::  num_vars        !< number of variables in a file
+
+       nc_stat = NF90_INQUIRE( id, NVARIABLES = num_vars )
+       CALL handle_error( 'inquire_num_variables', 534 )
+
+#endif
+    END SUBROUTINE inquire_num_variables
+
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Inquires the variable names belonging to a file. 
+!------------------------------------------------------------------------------!
+    SUBROUTINE inquire_variable_names( id, var_names )
+#if defined( __netcdf )
+
+       USE indices
+       USE pegrid
+
+       IMPLICIT NONE
+
+       CHARACTER(LEN=*), DIMENSION(:), INTENT(INOUT) ::  var_names   !< return variable - variable names
+       INTEGER(iwp)                                  ::  i           !< loop variable
+       INTEGER(iwp), INTENT(IN)                      ::  id          !< file id
+       INTEGER(iwp)                                  ::  num_vars    !< number of variables (unused return parameter)
+       INTEGER(iwp), DIMENSION(:), ALLOCATABLE       ::  varids      !< dummy array to strore variable ids temporarily
+
+       ALLOCATE( varids(1:SIZE(var_names)) )
+       nc_stat = NF90_INQ_VARIDS( id, NVARS = num_vars, VARIDS = varids )
+       CALL handle_error( 'inquire_variable_names', 535 )
+
+       DO  i = 1, SIZE(var_names)
+          nc_stat = NF90_INQUIRE_VARIABLE( id, varids(i), NAME = var_names(i) )
+          CALL handle_error( 'inquire_variable_names', 535 )
+       ENDDO
+
+       DEALLOCATE( varids )
+#endif
+    END SUBROUTINE inquire_variable_names
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Prints out a text message corresponding to the current status.
+!------------------------------------------------------------------------------!
+    SUBROUTINE handle_error( routine_name, errno )
+#if defined( __netcdf )
+
+       USE control_parameters,                                                 &
+           ONLY:  message_string
+
+       IMPLICIT NONE
+
+       CHARACTER(LEN=6) ::  message_identifier
+       CHARACTER(LEN=*) ::  routine_name
+
+       INTEGER(iwp) ::  errno
+
+       IF ( nc_stat /= NF90_NOERR )  THEN
+
+          WRITE( message_identifier, '(''NC'',I4.4)' )  errno
+          message_string = TRIM( NF90_STRERROR( nc_stat ) )
+
+          CALL message( routine_name, message_identifier, 2, 2, 0, 6, 1 )
+
+       ENDIF
+
+#endif
+    END SUBROUTINE handle_error
+
+
+ END MODULE netcdf_data_input_mod
Index: palm/trunk/SOURCE/netcdf_interface_mod.f90
===================================================================
--- palm/trunk/SOURCE/netcdf_interface_mod.f90	(revision 2693)
+++ palm/trunk/SOURCE/netcdf_interface_mod.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file netcdf_interface_mod.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
@@ -25,4 +25,11 @@
 ! -----------------
 ! $Id$
+! Implementation of uv exposure model (FK)
+! Implemented checks for turbulence_closure_mod (TG)
+! Implementation of chemistry module (FK)
+! Bugfix in setting netcdf grids for LSM variables
+! Enable setting of _FillValue attribute in output files (MS)
+!
+! 2512 2017-10-04 08:26:59Z raasch
 ! upper bounds of cross section and 3d output changed from nx+1,ny+1 to nx,ny
 ! no output of ghost layer data any more
@@ -410,9 +417,12 @@
     INTEGER(iwp), DIMENSION(1:max_masks,0:1,100) ::  id_var_domask
 
+    REAL(wp) ::  fill_value = -999.0_wp    !< value for the _FillValue attribute
+
 
     PUBLIC  dofl_dim_label_x, dofl_dim_label_y, dofl_dim_label_z, dofl_label,  &
             dofl_time_count, dofl_unit, domask_unit, dopr_unit, dopts_num,     &
             dots_label, dots_max, dots_num, dots_rad, dots_soil, dots_unit,    &
-            do2d_unit, do3d_unit, id_set_fl, id_set_mask, id_set_pr,           &
+            do2d_unit, do3d_unit, fill_value,                                  & 
+            id_set_fl, id_set_mask, id_set_pr,                                 &
             id_set_prt, id_set_pts, id_set_sp, id_set_ts, id_set_xy, id_set_xz,&
             id_set_yz, id_set_3d, id_var_domask, id_var_dofl, id_var_dopr,     &
@@ -432,8 +442,4 @@
     END INTERFACE netcdf_create_dim
 
-    INTERFACE netcdf_close_file
-       MODULE PROCEDURE netcdf_close_file
-    END INTERFACE netcdf_close_file
-
     INTERFACE netcdf_create_file
        MODULE PROCEDURE netcdf_create_file
@@ -448,28 +454,14 @@
     END INTERFACE netcdf_define_header
 
-    INTERFACE netcdf_get_attribute
-       MODULE PROCEDURE netcdf_get_attribute
-    END INTERFACE netcdf_get_attribute
-
-    INTERFACE netcdf_get_variable
-       MODULE PROCEDURE netcdf_get_variable_2d
-       MODULE PROCEDURE netcdf_get_variable_3d
-    END INTERFACE netcdf_get_variable
-
     INTERFACE netcdf_handle_error
        MODULE PROCEDURE netcdf_handle_error
     END INTERFACE netcdf_handle_error
 
-    INTERFACE netcdf_open_read_file
-       MODULE PROCEDURE netcdf_open_read_file
-    END INTERFACE netcdf_open_read_file
-
     INTERFACE netcdf_open_write_file
        MODULE PROCEDURE netcdf_open_write_file
     END INTERFACE netcdf_open_write_file
 
-    PUBLIC netcdf_create_file, netcdf_close_file, netcdf_define_header,        &
-           netcdf_handle_error, netcdf_get_attribute, netcdf_get_variable,     &
-           netcdf_open_read_file, netcdf_open_write_file
+    PUBLIC netcdf_create_file, netcdf_define_header,                           &
+           netcdf_handle_error, netcdf_open_write_file
 
  CONTAINS
@@ -482,9 +474,14 @@
         ONLY:  zu, zw
 
+#if defined( __chem )
+    USE chemistry_model_mod,                                                   &
+        ONLY:  chem_define_netcdf_grid 
+#endif
+
     USE constants,                                                             &
         ONLY:  pi
 
     USE control_parameters,                                                    &
-        ONLY:  averaging_interval, averaging_interval_pr,                      &
+        ONLY:  air_chemistry, averaging_interval, averaging_interval_pr,       &
                data_output_pr, domask, dopr_n,                                 &
                dopr_time_count, dopts_time_count, dots_time_count,             &
@@ -493,5 +490,5 @@
                dt_do2d_yz, dt_do3d, mask_size, do2d_xy_time_count,             &
                do3d_time_count, domask_time_count, end_time, land_surface,     &
-               lod, mask_size_l, mask_i, mask_i_global, mask_j, mask_j_global, &
+               mask_size_l, mask_i, mask_i_global, mask_j, mask_j_global,      &
                mask_k_global, message_string, mid, ntdim_2d_xy,                &
                ntdim_2d_xz, ntdim_2d_yz, ntdim_3d, nz_do3d, prt_time_count,    &
@@ -500,5 +497,5 @@
                skip_time_do2d_xy, skip_time_do2d_xz, skip_time_do2d_yz,        &
                skip_time_do3d, topography, num_leg, num_var_fl,                &
-               urban_surface
+               urban_surface, uv_exposure
 
     USE grid_variables,                                                        &
@@ -533,6 +530,12 @@
         ONLY:  hom, statistic_regions
 
+    USE turbulence_closure_mod,                                                &
+        ONLY:  tcm_define_netcdf_grid
+
     USE urban_surface_mod,                                                     &
         ONLY:  usm_define_netcdf_grid
+
+    USE uv_exposure_model_mod,                                                 &
+        ONLY:  uvem_define_netcdf_grid
 
 
@@ -894,4 +897,7 @@
                 CASE DEFAULT
 
+                   CALL tcm_define_netcdf_grid( domask(mid,av,i), found, &
+                                                        grid_x, grid_y, grid_z )
+
 !
 !--                Check for land surface quantities
@@ -900,8 +906,7 @@
                                                    grid_x, grid_y, grid_z )
                    ENDIF
-                   
 !
 !--                Check for plant canopy quantities
-                   IF ( plant_canopy )  THEN
+                   IF ( .NOT. found  .AND.  plant_canopy )  THEN
                       CALL pcm_define_netcdf_grid( domask(mid,av,i), found,    &
                                                    grid_x, grid_y, grid_z )
@@ -915,4 +920,14 @@
                                                          grid_z )
                    ENDIF
+
+!
+!--                Check for chemistry quantities                   
+#if defined( __chem )
+                   IF ( .NOT. found  .AND.  air_chemistry )  THEN
+                      CALL chem_define_netcdf_grid( domask(mid,av,i),          &
+                                                    found, grid_x, grid_y,     &
+                                                    grid_z )
+                   ENDIF
+#endif
 
 !
@@ -961,5 +976,5 @@
                                      id_var_domask(mid,av,i),                  &
                                      TRIM( domask_unit(mid,av,i) ),            &
-                                     domask(mid,av,i), 494, 495, 496 )
+                                     domask(mid,av,i), 494, 495, 496, .TRUE. )
 
              var_list = TRIM( var_list ) // TRIM( domask(mid,av,i) ) // ';'
@@ -1425,4 +1440,7 @@
                 CASE DEFAULT
 
+                   CALL tcm_define_netcdf_grid( do3d(av,i), found, &
+                                                   grid_x, grid_y, grid_z )
+
 !
 !--                Check for land surface quantities
@@ -1434,5 +1452,5 @@
 !
 !--                Check for plant canopy quantities
-                   IF ( plant_canopy )  THEN
+                   IF ( .NOT. found  .AND.  plant_canopy )  THEN
                       CALL pcm_define_netcdf_grid( do3d(av,i), found, grid_x,  &
                                                    grid_y, grid_z )
@@ -1446,5 +1464,14 @@
                                                          grid_z )
                    ENDIF
-                   
+
+!
+!--                Check for chemistry quantities                   
+#if defined( __chem )
+                   IF ( .NOT. found  .AND.  air_chemistry )  THEN
+                      CALL chem_define_netcdf_grid( do3d(av,i), found,         &
+                                                    grid_x, grid_y, grid_z )
+                   ENDIF
+#endif
+
 !--                Check for user-defined quantities
                    IF ( .NOT. found )  THEN
@@ -1490,5 +1517,5 @@
                                      nc_precision(4), id_var_do3d(av,i),       &
                                      TRIM( do3d_unit(av,i) ), do3d(av,i), 79,  &
-                                     80, 357 )
+                                     80, 357, .TRUE. )
 #if defined( __netcdf4_parallel )
              IF ( netcdf_data_format > 4 )  THEN
@@ -2029,5 +2056,5 @@
                                            nc_precision(1), id_var_do2d(av,i), &
                                            TRIM( do2d_unit(av,i) ),            &
-                                           do2d(av,i), 119, 120, 354 )
+                                           do2d(av,i), 119, 120, 354, .TRUE. )
 
                 ELSE
@@ -2079,4 +2106,10 @@
                          ENDIF
 
+                         IF ( .NOT. found )  THEN
+                            CALL tcm_define_netcdf_grid( do2d(av,i), found,    &
+                                                         grid_x, grid_y,       &
+                                                         grid_z )
+                         ENDIF
+
 !
 !--                      Check for radiation quantities
@@ -2085,4 +2118,21 @@
                                                          found, grid_x, grid_y,&
                                                          grid_z )
+                         ENDIF
+
+!
+!--                      Check for chemistry quantities
+#if defined( __chem )
+                         IF ( .NOT. found  .AND.  air_chemistry )  THEN
+                            CALL chem_define_netcdf_grid( do2d(av,i), found,   &
+                                                          grid_x, grid_y,      &
+                                                          grid_z )
+                         ENDIF
+#endif
+
+!
+!--                      Check for UV exposure quantities
+                         IF ( .NOT. found  .AND.  uv_exposure )  THEN
+                            CALL uvem_define_netcdf_grid( do2d(av,i), found,    &
+                                                          grid_x, grid_y, grid_z )
                          ENDIF
 
@@ -2132,5 +2182,5 @@
                                            nc_precision(1), id_var_do2d(av,i), &
                                            TRIM( do2d_unit(av,i) ),            &
-                                           do2d(av,i), 119, 120, 354 )
+                                           do2d(av,i), 119, 120, 354, .TRUE. )
 
                 ENDIF
@@ -2777,4 +2827,9 @@
                       ENDIF
 
+                      IF ( .NOT. found )  THEN
+                         CALL tcm_define_netcdf_grid( do2d(av,i), found,       &
+                                                      grid_x, grid_y, grid_z )
+                      ENDIF
+
 !
 !--                   Check for radiation quantities
@@ -2784,4 +2839,14 @@
                                                             grid_z )
                       ENDIF
+
+!
+!--                   Check for chemistry quantities
+#if defined( __chem )
+                      IF ( .NOT. found  .AND.  air_chemistry )  THEN
+                         CALL chem_define_netcdf_grid( do2d(av,i), found,      &
+                                                       grid_x, grid_y,         &
+                                                       grid_z )
+                      ENDIF
+#endif
 
 !
@@ -2829,5 +2894,5 @@
                                         nc_precision(2), id_var_do2d(av,i),    &
                                         TRIM( do2d_unit(av,i) ), do2d(av,i),   &
-                                        159, 160, 355 )
+                                        159, 160, 355, .TRUE. )
 
 #if defined( __netcdf4_parallel )
@@ -3431,4 +3496,9 @@
                       ENDIF
 
+                      IF ( .NOT. found )  THEN
+                         CALL tcm_define_netcdf_grid( do2d(av,i), found,       &
+                                                      grid_x, grid_y, grid_z )
+                      ENDIF
+
 !
 !--                   Check for radiation quantities
@@ -3439,4 +3509,13 @@
                       ENDIF
 
+!
+!--                   Check for chemistry quantities
+#if defined( __chem )
+                      IF ( .NOT. found  .AND.  air_chemistry )  THEN
+                         CALL chem_define_netcdf_grid( do2d(av,i), found,      &
+                                                       grid_x, grid_y,         &
+                                                       grid_z )
+                      ENDIF
+#endif
 !
 !--                   Check for user-defined quantities
@@ -3483,5 +3562,5 @@
                                         nc_precision(3), id_var_do2d(av,i),    &
                                         TRIM( do2d_unit(av,i) ), do2d(av,i),   &
-                                        198, 199, 356 )
+                                        198, 199, 356, .TRUE. )
 
 #if defined( __netcdf4_parallel )
@@ -5453,174 +5532,4 @@
  END SUBROUTINE netcdf_create_file
 
-
-!------------------------------------------------------------------------------!
-! Description:
-! ------------
-!> Closes an existing netCDF file.
-!------------------------------------------------------------------------------!
- 
- SUBROUTINE netcdf_close_file( id, errno )
-#if defined( __netcdf )
-
-    USE pegrid
-
-    IMPLICIT NONE
-
-    INTEGER(iwp), INTENT(IN)           ::  errno     !< error number
-    INTEGER(iwp), INTENT(INOUT)        ::  id        !< file id
-
-    nc_stat = NF90_CLOSE( id )
-    CALL netcdf_handle_error( 'netcdf_close', errno )
-#endif
- END SUBROUTINE netcdf_close_file
-
-!------------------------------------------------------------------------------!
-! Description:
-! ------------
-!> Opens an existing netCDF file for reading only and gives back the id.
-!------------------------------------------------------------------------------!
- 
- SUBROUTINE netcdf_open_read_file( filename, id, errno )
-#if defined( __netcdf )
-
-    USE pegrid
-
-    IMPLICIT NONE
-
-    CHARACTER (LEN=*), INTENT(IN) ::  filename  !< filename
-    INTEGER(iwp), INTENT(IN)      ::  errno     !< error number
-    INTEGER(iwp), INTENT(INOUT)   ::  id        !< file id
-    LOGICAL                       ::  file_open = .FALSE.
-
-    nc_stat = NF90_OPEN( filename, NF90_NOWRITE, id )
-
-    CALL netcdf_handle_error( 'netcdf_open_read_file', errno )
-
-#endif
- END SUBROUTINE netcdf_open_read_file
-
-!------------------------------------------------------------------------------!
-! Description:
-! ------------
-!> Reads the global attributes of a file
-!------------------------------------------------------------------------------!
- 
- SUBROUTINE netcdf_get_attribute( id, attribute_name, value, global, errno, variable_name )
-#if defined( __netcdf )
-
-    USE pegrid
-
-    IMPLICIT NONE
-
-    CHARACTER(LEN=*)            ::  attribute_name   !< attribute name
-    CHARACTER(LEN=*), OPTIONAL  ::  variable_name    !< variable name 
-
-    INTEGER(iwp), INTENT(IN)    ::  errno            !< error number
-    INTEGER(iwp), INTENT(INOUT) ::  id               !< file id
-    INTEGER(iwp), INTENT(INOUT) ::  value            !< read value
-
-    INTEGER(iwp)                ::  id_var           !< variable id
-
-    LOGICAL, INTENT(IN) ::  global                   !< flag indicating global attributes
-
-!
-!-- Read global attribute
-    IF ( global )  THEN
-       nc_stat = NF90_GET_ATT( id, NF90_GLOBAL, TRIM( attribute_name ), value )
-       CALL netcdf_handle_error( 'netcdf_get_attribute global', errno )
-!
-!-- Read attributes referring to a single variable. Therefore, first inquire 
-!-- variable id
-    ELSE
-       nc_stat = NF90_INQ_VARID( id, TRIM( variable_name ), id_var )
-       CALL netcdf_handle_error( 'netcdf_get_attribute', errno )
-       nc_stat = NF90_GET_ATT( id, id_var, TRIM( attribute_name ), value )
-       CALL netcdf_handle_error( 'netcdf_get_attribute', errno )       
-    ENDIF
-#endif
- END SUBROUTINE netcdf_get_attribute
-
-!------------------------------------------------------------------------------!
-! Description:
-! ------------
-!> Reads a 2D REAL variable of a file. Reading is done processor-wise, 
-!> i.e. each core reads its own domain, as well as in slices along x. 
-!------------------------------------------------------------------------------!
- 
- SUBROUTINE netcdf_get_variable_2d( id, variable_name, i, var, errno )
-#if defined( __netcdf )
-
-    USE indices
-    USE pegrid
-
-    IMPLICIT NONE
-
-    CHARACTER(LEN=*)              ::  variable_name   !< attribute name
-    INTEGER(iwp), INTENT(IN)      ::  errno           !< error number
-    INTEGER(iwp), INTENT(IN)      ::  i               !< index along x direction
-
-    INTEGER(iwp), INTENT(INOUT)   ::  id              !< file id
-
-    INTEGER(iwp)                  ::  id_var          !< variable id
-
-    REAL(wp), DIMENSION(nys:nyn), INTENT(INOUT) ::  var  !< variable to be read
-    REAL(wp) :: var_dum
-!
-!-- Inquire variable id
-    nc_stat = NF90_INQ_VARID( id, TRIM( variable_name ), id_var )
-!
-!-- Get variable
-    nc_stat = NF90_GET_VAR( id, id_var, var(nys:nyn),                        &
-                            start = (/ i+1, nys+1 /),                          &
-                            count = (/ 1, nyn - nys + 1 /) )
-
-    CALL netcdf_handle_error( 'netcdf_get_variable', errno )
-#endif
- END SUBROUTINE netcdf_get_variable_2d
-
-!------------------------------------------------------------------------------!
-! Description:
-! ------------
-!> Reads a 3D INTEGER variable of a file. Reading is done processor-wise, 
-!> i.e. each core reads its own domain, as well as in slices along x. 
-!------------------------------------------------------------------------------!
- 
- SUBROUTINE netcdf_get_variable_3d( id, variable_name, i, j, var, errno )
-#if defined( __netcdf )
-
-    USE indices
-    USE pegrid
-
-    IMPLICIT NONE
-
-    CHARACTER(LEN=*)              ::  variable_name   !< attribute name
-    INTEGER(iwp), INTENT(IN)      ::  errno           !< error number
-    INTEGER(iwp), INTENT(IN)      ::  i               !< index along x direction
-    INTEGER(iwp), INTENT(IN)      ::  j               !< index along y direction
-
-    INTEGER(iwp), INTENT(INOUT)   ::  id              !< file id
-
-    INTEGER(iwp)                  ::  id_var          !< variable id
-    INTEGER(iwp)                  ::  id_z            !< id of z-dimension
-    INTEGER(iwp)                  ::  nz_file         !< number of grid-points in file
-
-    INTEGER( KIND = 1 ), DIMENSION(nzb:nzt+1), INTENT(INOUT) ::  var  !< variable to be read
-!
-!-- Get dimension of z-axis
-    nc_stat = NF90_INQ_DIMID( id, "z", id_z )
-    nc_stat = NF90_INQUIRE_DIMENSION( id, id_z, len = nz_file )
-!
-!-- Inquire variable id
-    nc_stat = NF90_INQ_VARID( id, TRIM( variable_name ), id_var )
-!
-!-- Get variable
-    nc_stat = NF90_GET_VAR( id, id_var, var(0:nz_file-1),                  &
-                            start = (/ i+1, j+1, 1 /),                         &
-                            count = (/ 1, 1, nz_file /) )
-
-    CALL netcdf_handle_error( 'netcdf_get_variable', errno )
-#endif
- END SUBROUTINE netcdf_get_variable_3d
-
 !------------------------------------------------------------------------------!
 ! Description:
@@ -5629,5 +5538,4 @@
 !> The parallel flag has to be TRUE for parallel netCDF output support.
 !------------------------------------------------------------------------------!
- 
  SUBROUTINE netcdf_open_write_file( filename, id, parallel, errno )
 #if defined( __netcdf )
@@ -5731,5 +5639,5 @@
  SUBROUTINE netcdf_create_var( ncid, dim_id, var_name, var_type, var_id,       &
                                unit_name, long_name, error_no1, error_no2,     &
-                               error_no3 )
+                               error_no3, fill )
 
 #if defined( __netcdf )
@@ -5739,4 +5647,6 @@
     CHARACTER(LEN=*), INTENT(IN) ::  unit_name
     CHARACTER(LEN=*), INTENT(IN) ::  var_name
+
+    LOGICAL, OPTIONAL ::  fill  !< indicates setting of _FillValue attribute 
 
     INTEGER, INTENT(IN)  ::  error_no1
@@ -5777,4 +5687,19 @@
     ENDIF
 
+!
+!-- Set _FillValue for all variables, except for dimension variables.
+!-- Set the fill values accordingly to the corresponding output precision. 
+    IF ( PRESENT( fill ) )  THEN
+       IF ( var_type == NF90_REAL4 )  THEN
+          nc_stat = NF90_PUT_ATT( ncid, var_id, '_FillValue',                  &
+                                  REAL( fill_value, KIND = 4 ) )
+          CALL netcdf_handle_error( 'netcdf_create_var', 0 )
+       ELSE
+          nc_stat = NF90_PUT_ATT( ncid, var_id, '_FillValue',                  &
+                                  REAL( fill_value, KIND = 8 ) )
+          CALL netcdf_handle_error( 'netcdf_create_var', 0 )
+       ENDIF
+    ENDIF
+
 #endif
  END SUBROUTINE netcdf_create_var
Index: palm/trunk/SOURCE/outflow_turbulence.f90
===================================================================
--- palm/trunk/SOURCE/outflow_turbulence.f90	(revision 2693)
+++ palm/trunk/SOURCE/outflow_turbulence.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file outflow_turbulence.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/package_parin.f90
===================================================================
--- palm/trunk/SOURCE/package_parin.f90	(revision 2693)
+++ palm/trunk/SOURCE/package_parin.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file package_parin.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/palm.f90
===================================================================
--- palm/trunk/SOURCE/palm.f90	(revision 2693)
+++ palm/trunk/SOURCE/palm.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file palm.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
@@ -25,4 +25,10 @@
 ! -----------------
 ! $Id$
+! Implementation of chemistry module (FK)
+! Introduce input-data standard
+! Rename lsm_last_actions into lsm_write_restart_data
+! Move usm_write_restart_data into io_blocks loop (MS)
+! 
+! 2512 2017-10-04 08:26:59Z raasch
 ! user interface required revision updated
 ! 
@@ -185,4 +191,5 @@
 !> @todo create routine last_actions instead of calling lsm_last_actions etc.
 !> @todo eventually move CALL usm_write_restart_data to suitable location
+!> @todo move chem_init call to init_3d_model or to check_parameters
 !------------------------------------------------------------------------------!
  PROGRAM palm
@@ -191,6 +198,14 @@
     USE arrays_3d
 
+#if defined( __chem )
+    USE chemistry_model_mod,                                                   &
+        ONLY:  chem_init, chem_last_actions
+    USE chem_photolysis_mod,                                                   &
+        ONLY:  photolysis_init
+#endif
+
     USE control_parameters,                                                    &
-        ONLY:  cloud_physics, constant_diffusion, coupling_char, coupling_mode,&
+        ONLY:  air_chemistry,                                                  &
+               cloud_physics, constant_diffusion, coupling_char, coupling_mode,&
                do2d_at_begin, do3d_at_begin, humidity, initializing_actions,   &
                io_blocks, io_group, land_surface, large_scale_forcing,         &
@@ -208,8 +223,12 @@
         ONLY:  nbgp
 
+    USE netcdf_data_input_mod,                                                 &
+        ONLY:  netcdf_data_input_inquire_file, netcdf_data_input_init,         &
+               netcdf_data_input_surface_data, netcdf_data_input_topo
+
     USE kinds
 
     USE land_surface_model_mod,                                                &
-        ONLY:  lsm_last_actions
+        ONLY:  lsm_write_restart_data
 
     USE particle_attributes,                                                   &
@@ -326,9 +345,34 @@
 !-- Determine processor topology and local array indices
     CALL init_pegrid
-
-!
-!-- Generate grid parameters
+!
+!-- Check if input file according to input-data standard exists
+    CALL netcdf_data_input_inquire_file
+!
+!-- Read topography input data if required. This is required before the 
+!-- numerical grid is finally created in init_grid
+    CALL netcdf_data_input_topo  
+!
+!-- Generate grid parameters, initialize generic topography and further process
+!-- topography information if required
     CALL init_grid
-
+!
+!-- Read global attributes if available.  
+    CALL netcdf_data_input_init 
+!
+!-- Read surface classification data, e.g. vegetation and soil types, water 
+!-- surfaces, etc., if available. Some of these data is required before 
+!-- check parameters is invoked.     
+    CALL netcdf_data_input_surface_data
+!
+!-- Initialize chemistry (called before check_parameters due to dependencies)
+!-- --> Needs to be moved!! What is the dependency about?
+#if defined( __chem )
+! IF (  TRIM( initializing_actions ) /= 'read_restart_data' )  THEN
+    IF ( air_chemistry )  THEN
+       CALL chem_init
+       CALL photolysis_init   ! probably also required for restart
+    ENDIF
+! END IF
+#endif
 !
 !-- Check control parameters and deduce further quantities
@@ -443,7 +487,4 @@
 !--    If required, write particle data
        IF ( particle_advection )  CALL lpm_write_restart_file
-!
-!--    If required, write urban surface data
-       IF (urban_surface)  CALL usm_write_restart_data
        
     ENDIF
@@ -460,10 +501,20 @@
     DO  i = 0, io_blocks-1
        IF ( i == io_group )  THEN
+
+          IF ( urban_surface )  THEN
+             CALL usm_write_restart_data
+          ENDIF
           IF ( land_surface )  THEN
-             CALL lsm_last_actions
+             CALL lsm_write_restart_data
           ENDIF
           IF ( radiation )  THEN
              CALL radiation_last_actions
           ENDIF
+#if defined( __chem )
+          IF ( air_chemistry )  THEN
+             CALL chem_last_actions
+          ENDIF
+#endif
+          
           CALL user_last_actions
           IF ( write_binary )  CALL close_file( 14 )
Index: palm/trunk/SOURCE/parin.f90
===================================================================
--- palm/trunk/SOURCE/parin.f90	(revision 2693)
+++ palm/trunk/SOURCE/parin.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file parin.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
@@ -25,4 +25,11 @@
 ! -----------------
 ! $Id$
+! Implementation of uv exposure model (FK)
+! Added rans_mode and turbulence_closure to inipar (TG)
+! Implementation of chemistry module
+! Sorting of USE list (FK)
+! Forcing implemented, and initialization with inifor (MS)
+! 
+! 2600 2017-11-01 14:11:20Z raasch
 ! some comments added and variables renamed concerning r2599
 ! 
@@ -316,17 +323,21 @@
 
     USE arrays_3d,                                                             &
-        ONLY:  pt_init, q_init, ref_state, s_init, sa_init, ug, u_init, v_init,&
-               vg
+        ONLY:  pt_init, q_init, ref_state, s_init, sa_init,                    &     
+               ug, u_init, v_init, vg
+
+#if defined( __chem )
+    USE chemistry_model_mod,                                                   &
+        ONLY:  chem_parin
+        
+    USE chem_modules
+#endif
+
+    USE control_parameters
+
+    USE cpulog,                                                                &
+        ONLY:  cpu_log_barrierwait
 
     USE date_and_time_mod,                                                     &
         ONLY:  day_of_year_init, time_utc_init
-               
-    USE plant_canopy_model_mod,                                                &
-         ONLY: pcm_parin  
-
-    USE control_parameters
-
-    USE cpulog,                                                                &
-        ONLY:  cpu_log_barrierwait
 
     USE dvrp_variables,                                                        &
@@ -353,13 +364,15 @@
                sigma_bulk, ventilation_effect
 
-
     USE model_1d_mod,                                                          &
         ONLY:  damp_level_1d, dt_pr_1d, dt_run_control_1d, end_time_1d
 
-    USE pegrid
-
     USE netcdf_interface,                                                      &
         ONLY:  netcdf_data_format, netcdf_deflate, netcdf_precision
 
+    USE pegrid
+               
+    USE plant_canopy_model_mod,                                                &
+         ONLY: pcm_parin
+
     USE pmc_interface,                                                         &
         ONLY:  nested_run, nesting_mode
@@ -386,9 +399,13 @@
         ONLY: usm_parin
 
+    USE uv_exposure_model_mod,                                                 &
+        ONLY:  uvem_parin
+
+    USE vertical_nesting_mod,                                                  &
+        ONLY:  vnest_start_time
+
     USE wind_turbine_model_mod,                                                &
         ONLY:  wtm_parin
 
-    USE vertical_nesting_mod,                                                  &
-        ONLY:  vnest_start_time
 
     IMPLICIT NONE
@@ -422,5 +439,5 @@
              dz_stretch_factor, dz_stretch_level, end_time_1d,                 &
              ensemble_member_nr, e_init, e_min, fft_method,                    &
-             flux_input_mode, flux_output_mode,                                &
+             flux_input_mode, flux_output_mode, forcing,                       &
              galilei_transformation, humidity,                                 &
              inflow_damping_height, inflow_damping_width,                      &
@@ -439,5 +456,5 @@
              pt_vertical_gradient_level, q_surface, q_surface_initial_change,  &
              q_vertical_gradient, q_vertical_gradient_level,                   &
-             random_generator, random_heatflux,                                &
+             random_generator, random_heatflux, rans_mode,                     &
              rayleigh_damping_factor, rayleigh_damping_height,                 &
              recycling_width, recycling_yshift,                                &
@@ -456,5 +473,5 @@
              top_scalarflux, transpose_compute_overlap,                        &
              tunnel_height, tunnel_length, tunnel_width_x, tunnel_width_y,     &
-             tunnel_wall_depth,                                                &
+             tunnel_wall_depth, turbulence_closure,                            &
              turbulent_inflow, turbulent_outflow,                              &
              use_subsidence_tendencies, ug_surface, ug_vertical_gradient,      &
@@ -617,4 +634,15 @@
           ENDIF
 
+          IF ( forcing )  THEN
+             bc_lr   = 'forcing'
+             bc_ns   = 'forcing'
+             bc_uv_t = 'forcing'
+             bc_pt_t = 'forcing'
+             bc_q_t  = 'forcing'
+             bc_s_t  = 'forcing'  ! scalar boundary condition is not clear
+             bc_p_t  = 'neumann'
+
+          ENDIF
+
 !         
 !--       In case of nested runs, make sure that initializing_actions =
@@ -625,8 +653,9 @@
 !--       are set properly. An exception is made in case of restart runs and
 !--       if user decides to do everything by its own.
-!--       MS: is this setting really necessary?
-          IF ( nest_domain  .AND.  (                                           &
-               TRIM( initializing_actions ) /= 'read_restart_data'  .OR.       &
-               TRIM( initializing_actions ) /= 'by_user' ) )  THEN
+!--       MS: is this really necessary?
+          IF ( nest_domain  .AND.  .NOT. (                                     &
+               TRIM( initializing_actions ) == 'read_restart_data'  .OR.       &
+               TRIM( initializing_actions ) == 'by_user'            .OR.       &
+               TRIM( initializing_actions ) == 'inifor' ) )  THEN
              initializing_actions = 'set_constant_profiles'
           ENDIF
@@ -637,5 +666,6 @@
 !--       therefore cannot be check in check_parameters
           IF ( bc_lr /= 'cyclic'  .AND.  bc_lr /= 'dirichlet/radiation'  .AND. &
-               bc_lr /= 'radiation/dirichlet'  .AND.  bc_lr /= 'nested' )  THEN
+               bc_lr /= 'radiation/dirichlet'  .AND.  bc_lr /= 'nested'  .AND. &
+               bc_lr /= 'forcing' )  THEN
              message_string = 'unknown boundary condition: bc_lr = "' // &
                               TRIM( bc_lr ) // '"'
@@ -643,10 +673,10 @@
           ENDIF
           IF ( bc_ns /= 'cyclic'  .AND.  bc_ns /= 'dirichlet/radiation'  .AND. &
-               bc_ns /= 'radiation/dirichlet'  .AND.  bc_ns /= 'nested' )  THEN
+               bc_ns /= 'radiation/dirichlet'  .AND.  bc_ns /= 'nested'  .AND. &
+               bc_ns /= 'forcing' )  THEN
              message_string = 'unknown boundary condition: bc_ns = "' // &
                               TRIM( bc_ns ) // '"'
              CALL message( 'check_parameters', 'PA0050', 1, 2, 0, 6, 0 )
           ENDIF
-
 !
 !--       Set internal variables used for speed optimization in if clauses
@@ -707,4 +737,12 @@
 !--       required
           CALL stg_parin
+!
+!--       Read chemistry variables
+#if defined( __chem )
+          CALL chem_parin
+#endif
+!
+!--       Check if uv exposure model is used and read &uvexposure_par
+          CALL uvem_parin
 !
 !--       Read user-defined variables
Index: palm/trunk/SOURCE/plant_canopy_model_mod.f90
===================================================================
--- palm/trunk/SOURCE/plant_canopy_model_mod.f90	(revision 2693)
+++ palm/trunk/SOURCE/plant_canopy_model_mod.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file plant_canopy_model_mod.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
@@ -25,4 +25,12 @@
 ! -----------------
 ! $Id$
+! Bugfix for vertical loop index pch_index in case of Netcdf input
+! Introduce 2D index array incorporate canopy top index
+! Check if canopy on top of topography do not exceed vertical dimension 
+! Add check for canopy_mode in case of Netcdf input.
+! Enable _FillValue output for 3d quantities
+! Bugfix in reading of PIDS leaf area density (MS)
+! 
+! 2669 2017-12-06 16:03:27Z raasch
 ! coupling_char removed
 ! 
@@ -151,31 +159,30 @@
     CHARACTER (LEN=20)   ::  canopy_mode = 'block' !< canopy coverage
 
-    INTEGER(iwp) ::  pch_index = 0                 !< plant canopy height/top index
-    INTEGER(iwp) ::                                                            &
-       lad_vertical_gradient_level_ind(10) = -9999 !< lad-profile levels (index)
+    INTEGER(iwp) ::  pch_index = 0                               !< plant canopy height/top index
+    INTEGER(iwp) ::  lad_vertical_gradient_level_ind(10) = -9999 !< lad-profile levels (index)
+
+    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  pch_index_ji   !< local plant canopy top
 
     LOGICAL ::  calc_beta_lad_profile = .FALSE. !< switch for calc. of lad from beta func.
     LOGICAL ::  plant_canopy = .FALSE.          !< switch for use of canopy model
-
-    REAL(wp) ::  alpha_lad = 9999999.9_wp   !< coefficient for lad calculation
-    REAL(wp) ::  beta_lad = 9999999.9_wp    !< coefficient for lad calculation
-    REAL(wp) ::  canopy_drag_coeff = 0.0_wp !< canopy drag coefficient (parameter)
-    REAL(wp) ::  cdc = 0.0_wp               !< canopy drag coeff. (abbreviation used in equations)
-    REAL(wp) ::  cthf = 0.0_wp              !< canopy top heat flux
-    REAL(wp) ::  dt_plant_canopy = 0.0_wp   !< timestep account. for canopy drag
-    REAL(wp) ::  ext_coef = 0.6_wp          !< extinction coefficient
-    REAL(wp) ::  lad_surface = 0.0_wp       !< lad surface value
-    REAL(wp) ::  lai_beta = 0.0_wp          !< leaf area index (lai) for lad calc.
-    REAL(wp) ::                                                                &
-       leaf_scalar_exch_coeff = 0.0_wp      !< canopy scalar exchange coeff.
-    REAL(wp) ::                                                                &
-       leaf_surface_conc = 0.0_wp           !< leaf surface concentration
-    REAL(wp) ::  lsec = 0.0_wp              !< leaf scalar exchange coeff.
-    REAL(wp) ::  lsc = 0.0_wp               !< leaf surface concentration
-
-    REAL(wp) ::                                                                &
-       lad_vertical_gradient(10) = 0.0_wp              !< lad gradient
-    REAL(wp) ::                                                                &
-       lad_vertical_gradient_level(10) = -9999999.9_wp !< lad-prof. levels (in m)
+    LOGICAL ::  usm_lad_rma = .TRUE.            !< use MPI RMA to access LAD for raytracing (instead of global array)
+
+    REAL(wp) ::  alpha_lad = 9999999.9_wp         !< coefficient for lad calculation
+    REAL(wp) ::  beta_lad = 9999999.9_wp          !< coefficient for lad calculation
+    REAL(wp) ::  canopy_drag_coeff = 0.0_wp       !< canopy drag coefficient (parameter)
+    REAL(wp) ::  cdc = 0.0_wp                     !< canopy drag coeff. (abbreviation used in equations)
+    REAL(wp) ::  cthf = 0.0_wp                    !< canopy top heat flux
+    REAL(wp) ::  dt_plant_canopy = 0.0_wp         !< timestep account. for canopy drag
+    REAL(wp) ::  ext_coef = 0.6_wp                !< extinction coefficient
+    REAL(wp) ::  lad_surface = 0.0_wp             !< lad surface value
+    REAL(wp) ::  lai_beta = 0.0_wp                !< leaf area index (lai) for lad calc.
+    REAL(wp) ::  leaf_scalar_exch_coeff = 0.0_wp  !< canopy scalar exchange coeff.
+    REAL(wp) ::  leaf_surface_conc = 0.0_wp       !< leaf surface concentration
+    REAL(wp) ::  lsec = 0.0_wp                    !< leaf scalar exchange coeff.
+    REAL(wp) ::  lsc = 0.0_wp                     !< leaf surface concentration
+    REAL(wp) ::  prototype_lad                    !< prototype leaf area density for computing effective optical depth
+
+    REAL(wp) ::  lad_vertical_gradient(10) = 0.0_wp              !< lad gradient
+    REAL(wp) ::  lad_vertical_gradient_level(10) = -9999999.9_wp !< lad-prof. levels (in m)
 
     REAL(wp), DIMENSION(:), ALLOCATABLE ::  lad            !< leaf area density
@@ -201,5 +208,5 @@
 !-- Public variables and constants
     PUBLIC pc_heating_rate, canopy_mode, cthf, dt_plant_canopy, lad, lad_s,   &
-           pch_index, plant_canopy
+           pch_index, plant_canopy, prototype_lad, usm_lad_rma
            
 
@@ -288,5 +295,9 @@
 
        USE control_parameters,                                                 &
-           ONLY: cloud_physics, message_string, microphysics_seifert
+           ONLY: cloud_physics, coupling_char, message_string,                 &
+                 microphysics_seifert
+
+       USE netcdf_data_input_mod,                                              &
+           ONLY:  input_file_static, input_pids_static
                  
     
@@ -331,4 +342,14 @@
           CALL message( 'check_parameters', 'PA0360', 1, 2, 0, 6, 0 )
        ENDIF
+!
+!--    If dynamic input file is used, canopy need to be read from file
+       IF ( input_pids_static  .AND.                                           &
+            TRIM( canopy_mode ) /= 'read_from_file_3d' )  THEN
+          message_string = 'Usage of dynamic input file ' //                   &
+                           TRIM( input_file_static ) //                        &
+                           TRIM( coupling_char ) // ' requires ' //            &
+                           'canopy_mode = read_from_file_3d'
+          CALL message( 'check_parameters', 'PA0999', 1, 2, 0, 6, 0 )
+       ENDIF
 
  
@@ -342,5 +363,5 @@
 !> Subroutine defining 3D output variables
 !------------------------------------------------------------------------------!
- SUBROUTINE pcm_data_output_3d( av, variable, found, local_pf )
+ SUBROUTINE pcm_data_output_3d( av, variable, found, local_pf, fill_value )
  
     USE control_parameters,                                                    &
@@ -356,11 +377,13 @@
     CHARACTER (LEN=*) ::  variable !< 
 
-    INTEGER(iwp) ::  av    !< 
-    INTEGER(iwp) ::  i     !< 
-    INTEGER(iwp) ::  j     !< 
-    INTEGER(iwp) ::  k     !< 
+    INTEGER(iwp) ::  av     !< 
+    INTEGER(iwp) ::  i      !< 
+    INTEGER(iwp) ::  j      !< 
+    INTEGER(iwp) ::  k      !< 
+    INTEGER(iwp) ::  k_topo !< topography top index
 
     LOGICAL      ::  found !< 
 
+    REAL(wp)     ::  fill_value
     REAL(sp), DIMENSION(nxl:nxr,nys:nyn,nzb:nz_do3d) ::  local_pf !< 
 
@@ -368,4 +391,5 @@
     found = .TRUE.
 
+    local_pf = REAL( fill_value, KIND = 4 )
 
     SELECT CASE ( TRIM( variable ) )
@@ -375,7 +399,10 @@
             DO  i = nxl, nxr
                DO  j = nys, nyn
-                  DO  k = nzb_s_inner(j,i), nz_do3d
-                     local_pf(i,j,k) = pc_heating_rate(k-nzb_s_inner(j,i),j,i)
-                  ENDDO
+                  IF ( pch_index_ji(j,i) /= 0 )  THEN
+                     k_topo = get_topography_top_index( j, i, 's' )
+                     DO  k = k_topo, k_topo + pch_index_ji(j,i)
+                        local_pf(i,j,k) = pc_heating_rate(k-k_topo,j,i)
+                     ENDDO
+                  ENDIF
                ENDDO
             ENDDO
@@ -387,7 +414,10 @@
             DO  i = nxl, nxr
                DO  j = nys, nyn
-                  DO  k = nzb_s_inner(j,i), nz_do3d
-                     local_pf(i,j,k) = lad_s(k-nzb_s_inner(j,i),j,i)
-                  ENDDO
+                  IF ( pch_index_ji(j,i) /= 0 )  THEN
+                     k_topo = get_topography_top_index( j, i, 's' )
+                     DO  k = k_topo, k_topo + pch_index_ji(j,i)
+                        local_pf(i,j,k) = lad_s(k-k_topo,j,i)
+                     ENDDO
+                  ENDIF
                ENDDO
             ENDDO
@@ -570,4 +600,7 @@
                  passive_scalar, urban_surface
 
+       USE netcdf_data_input_mod,                                              &
+           ONLY:  leaf_area_density_f
+
        USE surface_mod,                                                        &
            ONLY: surf_def_h, surf_lsm_h, surf_usm_h
@@ -716,9 +749,34 @@
           CASE ( 'read_from_file_3d' )
 !
+!--          Initialize LAD with data from file. If LAD is given in NetCDF file,
+!--          use these values, else take LAD profiles from ASCII file. 
+!--          Please note, in NetCDF file LAD is only given up to the maximum 
+!--          canopy top, indicated by leaf_area_density_f%nz.  
+             lad_s = 0.0_wp
+             IF ( leaf_area_density_f%from_file )  THEN
+!
+!--             Set also pch_index, used to be the upper bound of the vertical 
+!--             loops. Therefore, use the global top of the canopy layer. 
+                pch_index = leaf_area_density_f%nz - 1
+
+                DO  i = nxl, nxr
+                   DO  j = nys, nyn
+                      DO  k = 0, leaf_area_density_f%nz - 1
+                      IF ( leaf_area_density_f%var(k,j,i) /=                   &
+                           leaf_area_density_f%fill )                          &
+                         lad_s(k,j,i) = leaf_area_density_f%var(k,j,i)
+                      ENDDO
+                   ENDDO
+                ENDDO
+                CALL exchange_horiz( lad_s, nbgp )
+!
+!            ASCII file
 !--          Initialize canopy parameters cdc (canopy drag coefficient),
 !--          lsec (leaf scalar exchange coefficient), lsc (leaf surface concentration)
 !--          from file which contains complete 3D data (separate vertical profiles for
 !--          each location).
-             CALL pcm_read_plant_canopy_3d
+             ELSE
+                CALL pcm_read_plant_canopy_3d
+             ENDIF
 
           CASE DEFAULT
@@ -732,4 +790,28 @@
  
        END SELECT
+!
+!--    Initialize 2D index array indicating canopy top index. 
+       ALLOCATE( pch_index_ji(nysg:nyng,nxlg:nxrg) )
+       pch_index_ji = 0
+
+       DO  i = nxl, nxr
+          DO  j = nys, nyn
+             DO  k = 0, pch_index
+                IF ( lad_s(k,j,i) /= 0 )  pch_index_ji(j,i) = k
+             ENDDO
+!
+!--          Check whether topography and local vegetation on top exceed 
+!--          height of the model domain.
+             k = get_topography_top_index( j, i, 's' )
+             IF ( k + pch_index_ji(j,i) >= nzt + 1 )  THEN
+                message_string =  'Local vegetation height on top of ' //      &
+                                  'topography exceeds height of model domain.'
+                CALL message( 'pcm_init', 'PA0999', 2, 2, 0, 6, 0 )
+             ENDIF
+
+          ENDDO
+       ENDDO
+
+       CALL exchange_horiz_2d_int( pch_index_ji, nys, nyn, nxl, nxr, nbgp )
 
 !
@@ -757,6 +839,6 @@
           DO  i = nxlg, nxrg
              DO  j = nysg, nyng
-                DO  k = pch_index-1, 0, -1
-                   IF ( k == pch_index-1 )  THEN
+                DO  k = pch_index_ji(j,i)-1, 0, -1
+                   IF ( k == pch_index_ji(j,i)-1 )  THEN
                       cum_lai_hf(k,j,i) = cum_lai_hf(k+1,j,i) +                &
                          ( 0.5_wp * lad_s(k+1,j,i) *                           &
@@ -815,5 +897,5 @@
           DO  i = nxlg, nxrg
              DO  j = nysg, nyng
-                DO  k = 1, pch_index
+                DO  k = 1, pch_index_ji(j,i)
                    IF ( cum_lai_hf(0,j,i) /= 0.0_wp )  THEN
                       pc_heating_rate(k,j,i) = cthf *                             &
@@ -945,5 +1027,5 @@
                     
                 CASE DEFAULT
-                   write(message_string, '(a,i2,a)')   &
+                   WRITE(message_string, '(a,i2,a)')   &
                       'Unknown record type in file PLANT_CANOPY_DATA_3D: "', dtype, '"'
                    CALL message( 'pcm_read_plant_canopy_3d', 'PA0530', 1, 2, 0, 6, 0 )
@@ -1029,5 +1111,5 @@
 !--                Determine topography-top index on u-grid
                    k_wall = get_topography_top_index( j, i, 'u' )
-                   DO  k = k_wall+1, k_wall+pch_index
+                   DO  k = k_wall+1, k_wall + pch_index_ji(j,i)
 
                       kk = k - k_wall   !- lad arrays are defined flat
@@ -1094,5 +1176,5 @@
                    k_wall = get_topography_top_index( j, i, 'v' )
 
-                   DO  k = k_wall+1, k_wall+pch_index
+                   DO  k = k_wall+1, k_wall + pch_index_ji(j,i)
 
                       kk = k - k_wall   !- lad arrays are defined flat
@@ -1159,5 +1241,5 @@
                    k_wall = get_topography_top_index( j, i, 'w' )
 
-                   DO  k = k_wall+1, k_wall+pch_index-1
+                   DO  k = k_wall+1, k_wall + pch_index_ji(j,i) - 1
 
                       kk = k - k_wall   !- lad arrays are defined flat
@@ -1211,5 +1293,5 @@
                    k_wall = get_topography_top_index( j, i, 's' )
 
-                   DO  k = k_wall+1, k_wall+pch_index
+                   DO  k = k_wall+1, k_wall + pch_index_ji(j,i)
 
                       kk = k - k_wall   !- lad arrays are defined flat
@@ -1228,5 +1310,5 @@
                    k_wall = get_topography_top_index( j, i, 's' )
 
-                   DO  k = k_wall+1, k_wall+pch_index
+                   DO  k = k_wall+1, k_wall + pch_index_ji(j,i)
 
                       kk = k - k_wall   !- lad arrays are defined flat
@@ -1258,5 +1340,5 @@
                    k_wall = get_topography_top_index( j, i, 's' )
 
-                   DO  k = k_wall+1, k_wall+pch_index
+                   DO  k = k_wall+1, k_wall + pch_index_ji(j,i)
 
                       kk = k - k_wall   !- lad arrays are defined flat
@@ -1287,5 +1369,5 @@
                    k_wall = get_topography_top_index( j, i, 's' )
 
-                   DO  k = k_wall+1, k_wall+pch_index
+                   DO  k = k_wall+1, k_wall + pch_index_ji(j,i)
 
                       kk = k - k_wall   !- lad arrays are defined flat
@@ -1370,5 +1452,4 @@
 
        ddt_3d = 1.0_wp / dt_3d
-
 !
 !--    Compute drag for the three velocity components and the SGS-TKE
@@ -1381,8 +1462,8 @@
 !--          Determine topography-top index on u-grid
              k_wall = get_topography_top_index( j, i, 'u' )
-
-             DO  k = k_wall+1, k_wall+pch_index
+             DO  k = k_wall + 1, k_wall + pch_index_ji(j,i)
 
                 kk = k - k_wall  !- lad arrays are defined flat
+
 !
 !--             In order to create sharp boundaries of the plant canopy, 
@@ -1442,5 +1523,5 @@
              k_wall = get_topography_top_index( j, i, 'v' )
 
-             DO  k = k_wall+1, k_wall+pch_index
+             DO  k = k_wall + 1, k_wall + pch_index_ji(j,i)
 
                 kk = k - k_wall  !- lad arrays are defined flat
@@ -1502,5 +1583,5 @@
              k_wall = get_topography_top_index( j, i, 'w' )
 
-             DO  k = k_wall+1, k_wall+pch_index-1
+             DO  k = k_wall + 1, k_wall + pch_index_ji(j,i) - 1
 
                 kk = k - k_wall  !- lad arrays are defined flat
@@ -1549,5 +1630,5 @@
              k_wall = get_topography_top_index( j, i, 's' )
 
-             DO  k = k_wall+1, k_wall+pch_index
+             DO  k = k_wall + 1, k_wall + pch_index_ji(j,i)
                 kk = k - k_wall  !- lad arrays are defined flat
                 tend(k,j,i) = tend(k,j,i) + pc_heating_rate(kk,j,i)
@@ -1562,5 +1643,5 @@
              k_wall = get_topography_top_index( j, i, 's' )
 
-             DO  k = k_wall+1, k_wall+pch_index
+             DO  k = k_wall + 1, k_wall + pch_index_ji(j,i)
 
                 kk = k - k_wall
@@ -1588,5 +1669,5 @@
              k_wall = get_topography_top_index( j, i, 's' )
 
-             DO  k = k_wall+1, k_wall+pch_index
+             DO  k = k_wall + 1, k_wall + pch_index_ji(j,i)
 
                 kk = k - k_wall
@@ -1614,5 +1695,5 @@
              k_wall = get_topography_top_index( j, i, 's' )
 
-             DO  k = k_wall+1, k_wall+pch_index
+             DO  k = k_wall + 1, k_wall + pch_index_ji(j,i)
 
                 kk = k - k_wall
Index: palm/trunk/SOURCE/pmc_child_mod.f90
===================================================================
--- palm/trunk/SOURCE/pmc_child_mod.f90	(revision 2693)
+++ palm/trunk/SOURCE/pmc_child_mod.f90	(revision 2696)
@@ -2,5 +2,5 @@
 
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/pmc_general_mod.f90
===================================================================
--- palm/trunk/SOURCE/pmc_general_mod.f90	(revision 2693)
+++ palm/trunk/SOURCE/pmc_general_mod.f90	(revision 2696)
@@ -2,5 +2,5 @@
 
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/pmc_handle_communicator_mod.f90
===================================================================
--- palm/trunk/SOURCE/pmc_handle_communicator_mod.f90	(revision 2693)
+++ palm/trunk/SOURCE/pmc_handle_communicator_mod.f90	(revision 2696)
@@ -1,6 +1,5 @@
-  MODULE PMC_handle_communicator
-
+!> @file pmc_handle_communicator_mod.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
@@ -26,4 +25,7 @@
 ! -----------------
 ! $Id$
+! Bugfix, give Intent(inout) attributes in routine reading nestpar-namelist (MS)
+! 
+! 2599 2017-11-01 13:18:45Z hellstea
 ! Separate peer communicator peer_comm introduced for MPI_INTERCOMM_CREATE.
 ! Some cleanup and commenting improvements. 
@@ -99,5 +101,5 @@
 ! Handle MPI communicator in PALM model coupler
 !-------------------------------------------------------------------------------!
-
+ MODULE PMC_handle_communicator
 #if defined( __parallel )
     USE kinds
@@ -168,5 +170,5 @@
 
  SUBROUTINE pmc_init_model( comm, nesting_datatransfer_mode, nesting_mode,      &
-                              pmc_status )
+                            pmc_status )
 
     USE control_parameters,                                                     &
@@ -178,9 +180,9 @@
       IMPLICIT NONE
 
-    CHARACTER(LEN=8), INTENT(OUT) ::  nesting_mode               !<
-    CHARACTER(LEN=7), INTENT(OUT) ::  nesting_datatransfer_mode  !<
-
-    INTEGER, INTENT(OUT) ::  comm        !<
-    INTEGER, INTENT(OUT) ::  pmc_status  !<
+    CHARACTER(LEN=8), INTENT(INOUT) ::  nesting_mode               !<
+    CHARACTER(LEN=7), INTENT(INOUT) ::  nesting_datatransfer_mode  !<
+
+    INTEGER, INTENT(INOUT) ::  comm        !<
+    INTEGER, INTENT(INOUT) ::  pmc_status  !<
 
     INTEGER ::  childcount     !<
Index: palm/trunk/SOURCE/pmc_interface_mod.f90
===================================================================
--- palm/trunk/SOURCE/pmc_interface_mod.f90	(revision 2693)
+++ palm/trunk/SOURCE/pmc_interface_mod.f90	(revision 2696)
@@ -1,6 +1,5 @@
-MODULE pmc_interface
-
+!> @file pmc_interface_mod.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
@@ -26,4 +25,7 @@
 ! -----------------
 ! $Id$
+! - Bugfix in init_tke_factor (MS)
+! 
+! 2669 2017-12-06 16:03:27Z raasch
 ! file extension for nested domains changed to "_N##",
 ! created flag file in order to enable combine_plot_fields to process nest data
@@ -194,4 +196,5 @@
 ! @todo Data transfer of qc and nc is prepared but not activated
 !-------------------------------------------------------------------------------!
+ MODULE pmc_interface
 
 #if defined( __nopointer )
@@ -2685,5 +2688,5 @@
              
              DO  k = k_wall + 1, nzt
-                
+ 
                 kc     = kco(k) + 1
                 glsf   = ( dx * dy * dzu(k) )**p13
@@ -3066,6 +3069,6 @@
                    w(k,j,i)   = MERGE( w(k,j,i), 0.0_wp,                       &
                                        BTEST( wall_flags_0(k,j,i), 3 ) )
-                   e(k,j,i)   = MERGE( e(k,j,i), 0.0_wp,                       &
-                                       BTEST( wall_flags_0(k,j,i), 0 ) )
+!                    e(k,j,i)   = MERGE( e(k,j,i), 0.0_wp,                       &
+!                                        BTEST( wall_flags_0(k,j,i), 0 ) )
                    u_p(k,j,i) = MERGE( u_p(k,j,i), 0.0_wp,                     &
                                        BTEST( wall_flags_0(k,j,i), 1 ) )
@@ -3074,6 +3077,6 @@
                    w_p(k,j,i) = MERGE( w_p(k,j,i), 0.0_wp,                     &
                                        BTEST( wall_flags_0(k,j,i), 3 ) )
-                   e_p(k,j,i) = MERGE( e_p(k,j,i), 0.0_wp,                     &
-                                       BTEST( wall_flags_0(k,j,i), 0 ) )
+!                    e_p(k,j,i) = MERGE( e_p(k,j,i), 0.0_wp,                     &
+!                                        BTEST( wall_flags_0(k,j,i), 0 ) )
                 ENDDO
              ENDDO
@@ -4492,5 +4495,7 @@
       ENDIF
 !
-!--   Store the boundary values also into the other redundant ghost node layers
+!--   Store the boundary values also into the other redundant ghost node layers.
+!--   Please note, in case of only one ghost node layer, e.g. for the PW 
+!--   scheme, the following loops will not be entered.
       IF ( edge == 'l' )  THEN
          DO  ibgp = -nbgp, ib
@@ -4713,5 +4718,7 @@
       ENDIF
 !
-!--   Store the boundary values also into the other redundant ghost node layers
+!--   Store the boundary values also into the other redundant ghost node layers.
+!--   Please note, in case of only one ghost node layer, e.g. for the PW 
+!--   scheme, the following loops will not be entered.
       IF ( edge == 's' )  THEN
          DO  jbgp = -nbgp, jb
Index: palm/trunk/SOURCE/pmc_mpi_wrapper_mod.f90
===================================================================
--- palm/trunk/SOURCE/pmc_mpi_wrapper_mod.f90	(revision 2693)
+++ palm/trunk/SOURCE/pmc_mpi_wrapper_mod.f90	(revision 2696)
@@ -2,5 +2,5 @@
 
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/pmc_parent_mod.f90
===================================================================
--- palm/trunk/SOURCE/pmc_parent_mod.f90	(revision 2693)
+++ palm/trunk/SOURCE/pmc_parent_mod.f90	(revision 2696)
@@ -2,5 +2,5 @@
 
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/poisfft_mod.f90
===================================================================
--- palm/trunk/SOURCE/poisfft_mod.f90	(revision 2693)
+++ palm/trunk/SOURCE/poisfft_mod.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file poisfft_mod.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/poismg_mod.f90
===================================================================
--- palm/trunk/SOURCE/poismg_mod.f90	(revision 2693)
+++ palm/trunk/SOURCE/poismg_mod.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file poismg.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
@@ -25,4 +25,7 @@
 ! -----------------
 ! $Id$
+! - Large-scale forcing implemented (MS)
+! 
+! 2298 2017-06-29 09:28:18Z raasch
 ! sendrecv_in_background related parts removed
 ! 
@@ -96,4 +99,9 @@
  MODULE poismg_mod
  
+    USE control_parameters,                                                    &
+        ONLY:  grid_level, force_bound_l, force_bound_n, force_bound_r,        &
+               force_bound_s, forcing, inflow_l, inflow_n, inflow_r, inflow_s, &
+               nest_bound_l, nest_bound_n, nest_bound_r, nest_bound_s,         &
+               outflow_l, outflow_n, outflow_r, outflow_s
 
     USE cpulog,                                                                &
@@ -274,9 +282,5 @@
 
        USE control_parameters,                                                 &
-           ONLY:  bc_lr_cyc, bc_ns_cyc, grid_level, ibc_p_b, ibc_p_t, inflow_l,&
-                  inflow_n, inflow_r, inflow_s, nest_bound_l, nest_bound_n,    &
-                  nest_bound_r, nest_bound_s, outflow_l, outflow_n, outflow_r, &
-                  outflow_s
-
+           ONLY:  bc_lr_cyc, bc_ns_cyc, ibc_p_b, ibc_p_t
        USE grid_variables,                                                     &
            ONLY:  ddx2_mg, ddy2_mg
@@ -347,8 +351,10 @@
 
        IF ( .NOT. bc_lr_cyc )  THEN
-          IF ( inflow_l .OR. outflow_l .OR. nest_bound_l )  THEN
+          IF ( inflow_l  .OR.  outflow_l  .OR.  nest_bound_l  .OR.             &
+               force_bound_l )  THEN
              r(:,:,nxl_mg(l)-1) = r(:,:,nxl_mg(l))
           ENDIF
-          IF ( inflow_r .OR. outflow_r .OR. nest_bound_r )  THEN
+          IF ( inflow_r  .OR.  outflow_r  .OR.  nest_bound_r  .OR.             &
+               force_bound_r )  THEN
              r(:,:,nxr_mg(l)+1) = r(:,:,nxr_mg(l))
           ENDIF
@@ -356,8 +362,10 @@
 
        IF ( .NOT. bc_ns_cyc )  THEN
-          IF ( inflow_n .OR. outflow_n .OR. nest_bound_n )  THEN
+          IF ( inflow_n  .OR.  outflow_n  .OR.  nest_bound_n  .OR.             &
+               force_bound_n )  THEN
              r(:,nyn_mg(l)+1,:) = r(:,nyn_mg(l),:)
           ENDIF
-          IF ( inflow_s .OR. outflow_s .OR. nest_bound_s )  THEN
+          IF ( inflow_s  .OR.  outflow_s  .OR.  nest_bound_s  .OR.             &
+               force_bound_s )  THEN
              r(:,nys_mg(l)-1,:) = r(:,nys_mg(l),:)
           ENDIF
@@ -398,8 +406,5 @@
 
        USE control_parameters,                                                 &
-           ONLY:  bc_lr_cyc, bc_ns_cyc, grid_level, ibc_p_b, ibc_p_t, inflow_l,&
-                  inflow_n, inflow_r, inflow_s, nest_bound_l, nest_bound_n,    &
-                  nest_bound_r, nest_bound_s, outflow_l, outflow_n, outflow_r, &
-                  outflow_s
+           ONLY:  bc_lr_cyc, bc_ns_cyc, ibc_p_b, ibc_p_t
 
        USE indices,                                                            &
@@ -481,8 +486,10 @@
 !--    Horizontal boundary conditions
        IF ( .NOT. bc_lr_cyc )  THEN
-          IF ( inflow_l .OR. outflow_l .OR. nest_bound_l )  THEN
+          IF ( inflow_l  .OR.  outflow_l  .OR.  nest_bound_l  .OR.             &
+               force_bound_l )  THEN
              f_mg(:,:,nxl_mg(l)-1) = f_mg(:,:,nxl_mg(l))
           ENDIF
-          IF ( inflow_r .OR. outflow_r .OR. nest_bound_r )  THEN
+          IF ( inflow_r  .OR.  outflow_r  .OR.  nest_bound_r  .OR.             &
+               force_bound_r )  THEN
              f_mg(:,:,nxr_mg(l)+1) = f_mg(:,:,nxr_mg(l))
           ENDIF
@@ -490,8 +497,10 @@
 
        IF ( .NOT. bc_ns_cyc )  THEN
-          IF ( inflow_n .OR. outflow_n .OR. nest_bound_n )  THEN
+          IF ( inflow_n  .OR.  outflow_n  .OR.  nest_bound_n  .OR.             &
+               force_bound_n )  THEN
              f_mg(:,nyn_mg(l)+1,:) = f_mg(:,nyn_mg(l),:)
           ENDIF
-          IF ( inflow_s .OR. outflow_s .OR. nest_bound_s )  THEN
+          IF ( inflow_s  .OR.  outflow_s  .OR.  nest_bound_s  .OR.             &
+               force_bound_s )  THEN
              f_mg(:,nys_mg(l)-1,:) = f_mg(:,nys_mg(l),:)
           ENDIF
@@ -535,9 +544,5 @@
 
        USE control_parameters,                                                 &
-           ONLY:  bc_lr_cyc, bc_ns_cyc, grid_level, ibc_p_b, ibc_p_t, inflow_l,&
-                  inflow_n, inflow_r, inflow_s, nest_bound_l, nest_bound_n,    &
-                  nest_bound_r, nest_bound_s, outflow_l, outflow_n,            &
-                  outflow_r, outflow_s
-
+           ONLY:  bc_lr_cyc, bc_ns_cyc, ibc_p_b, ibc_p_t
        USE indices,                                                            &
            ONLY:  nxl_mg, nxr_mg, nys_mg, nyn_mg, nzb, nzt_mg
@@ -652,8 +657,10 @@
 
        IF ( .NOT. bc_lr_cyc )  THEN
-          IF ( inflow_l .OR. outflow_l .OR. nest_bound_l )  THEN
+          IF ( inflow_l  .OR.  outflow_l  .OR.  nest_bound_l  .OR.             &
+               force_bound_l )  THEN
              temp(:,:,nxl_mg(l)-1) = temp(:,:,nxl_mg(l))
           ENDIF
-          IF ( inflow_r .OR. outflow_r .OR. nest_bound_r )  THEN
+          IF ( inflow_r  .OR.  outflow_r  .OR.  nest_bound_r  .OR.             &
+               force_bound_r )  THEN
              temp(:,:,nxr_mg(l)+1) = temp(:,:,nxr_mg(l))
           ENDIF
@@ -661,8 +668,10 @@
 
        IF ( .NOT. bc_ns_cyc )  THEN
-          IF ( inflow_n .OR. outflow_n .OR. nest_bound_n )  THEN
+          IF ( inflow_n  .OR.  outflow_n  .OR.  nest_bound_n  .OR.             &
+               force_bound_n )  THEN
              temp(:,nyn_mg(l)+1,:) = temp(:,nyn_mg(l),:)
           ENDIF
-          IF ( inflow_s .OR. outflow_s .OR. nest_bound_s )  THEN
+          IF ( inflow_s  .OR.  outflow_s  .OR.  nest_bound_s  .OR.             &
+               force_bound_s )  THEN
              temp(:,nys_mg(l)-1,:) = temp(:,nys_mg(l),:)
           ENDIF
@@ -705,8 +714,5 @@
 
        USE control_parameters,                                                 &
-           ONLY:  bc_lr_cyc, bc_ns_cyc, grid_level, ibc_p_b, ibc_p_t, inflow_l,&
-                  inflow_n, inflow_r, inflow_s, nest_bound_l, nest_bound_n,    &
-                  nest_bound_r, nest_bound_s, ngsrb, outflow_l, outflow_n,     &
-                  outflow_r, outflow_s
+           ONLY:  bc_lr_cyc, bc_ns_cyc, ibc_p_b, ibc_p_t, ngsrb 
 
        USE grid_variables,                                                     &
@@ -961,8 +967,10 @@
 
              IF ( .NOT. bc_lr_cyc )  THEN
-                IF ( inflow_l .OR. outflow_l .OR. nest_bound_l )  THEN
+                IF ( inflow_l  .OR.  outflow_l  .OR.  nest_bound_l  .OR.       &
+                     force_bound_l )  THEN
                    p_mg(:,:,nxl_mg(l)-1) = p_mg(:,:,nxl_mg(l))
                 ENDIF
-                IF ( inflow_r .OR. outflow_r .OR. nest_bound_r )  THEN
+                IF ( inflow_r  .OR.  outflow_r  .OR.  nest_bound_r  .OR.       &
+                     force_bound_r )  THEN
                    p_mg(:,:,nxr_mg(l)+1) = p_mg(:,:,nxr_mg(l))
                 ENDIF
@@ -970,8 +978,10 @@
 
              IF ( .NOT. bc_ns_cyc )  THEN
-                IF ( inflow_n .OR. outflow_n .OR. nest_bound_n )  THEN
+                IF ( inflow_n  .OR.  outflow_n  .OR.  nest_bound_n  .OR.       &
+                     force_bound_n )  THEN
                    p_mg(:,nyn_mg(l)+1,:) = p_mg(:,nyn_mg(l),:)
                 ENDIF
-                IF ( inflow_s .OR. outflow_s .OR. nest_bound_s )  THEN
+                IF ( inflow_s  .OR.  outflow_s  .OR.  nest_bound_s  .OR.       &
+                     force_bound_s )  THEN
                    p_mg(:,nys_mg(l)-1,:) = p_mg(:,nys_mg(l),:)
                 ENDIF
@@ -1389,9 +1399,7 @@
        USE control_parameters,                                                 &
            ONLY:  bc_lr_dirrad, bc_lr_raddir, bc_ns_dirrad, bc_ns_raddir,      &
-                  gamma_mg, grid_level, grid_level_count, ibc_p_b, ibc_p_t,    &
-                  inflow_l, inflow_n, inflow_r, inflow_s, maximum_grid_level,  &
-                  mg_switch_to_pe0_level, mg_switch_to_pe0, nest_domain,       &
-                  nest_bound_l, nest_bound_n, nest_bound_r, nest_bound_s,      &
-                  ngsrb, outflow_l, outflow_n, outflow_r, outflow_s
+                  gamma_mg, grid_level_count, ibc_p_b, ibc_p_t,                &
+                  maximum_grid_level,  mg_switch_to_pe0_level,                 &
+                  mg_switch_to_pe0, nest_domain, ngsrb 
 
        USE indices,                                                            &
@@ -1544,4 +1552,7 @@
                 nest_bound_l = .TRUE.
                 nest_bound_r = .TRUE.
+             ELSEIF ( forcing )  THEN
+                force_bound_l = .TRUE.
+                force_bound_r = .TRUE.
              ENDIF
 
@@ -1559,4 +1570,7 @@
                 nest_bound_s = .TRUE.
                 nest_bound_n = .TRUE.
+             ELSEIF ( forcing )  THEN
+                force_bound_s = .TRUE.
+                force_bound_n = .TRUE.
              ENDIF
 
@@ -1626,5 +1640,5 @@
              outflow_n = .FALSE.;  outflow_s = .FALSE.
 !
-!--          In case of nesting, restore lateral boundary conditions
+!--          In case of nesting or forcing, restore lateral boundary conditions
              IF ( nest_domain )  THEN
                 nest_bound_l = .FALSE.
@@ -1632,4 +1646,10 @@
                 nest_bound_s = .FALSE.
                 nest_bound_n = .FALSE.      
+             ENDIF
+             IF ( forcing )  THEN
+                force_bound_l = .FALSE.
+                force_bound_r = .FALSE.
+                force_bound_s = .FALSE.
+                force_bound_n = .FALSE.      
              ENDIF
 
@@ -1641,4 +1661,6 @@
                 ELSEIF ( nest_domain )  THEN
                    nest_bound_l = .TRUE.
+                ELSEIF ( forcing )  THEN
+                   force_bound_l = .TRUE.
                 ENDIF
              ENDIF
@@ -1651,4 +1673,6 @@
                 ELSEIF ( nest_domain )  THEN
                    nest_bound_r = .TRUE.
+                ELSEIF ( forcing )  THEN
+                   force_bound_r = .TRUE.
                 ENDIF
              ENDIF
@@ -1661,4 +1685,6 @@
                 ELSEIF ( nest_domain )  THEN
                    nest_bound_s = .TRUE.
+                ELSEIF ( forcing )  THEN
+                   force_bound_s = .TRUE.
                 ENDIF
              ENDIF
@@ -1671,4 +1697,6 @@
                 ELSEIF ( nest_domain )  THEN
                    nest_bound_n = .TRUE.
+                ELSEIF ( forcing )  THEN
+                   force_bound_n = .TRUE.
                 ENDIF
              ENDIF
@@ -1821,7 +1849,6 @@
        USE control_parameters,                                                 &
            ONLY:  bc_lr_cyc, bc_ns_cyc, grid_level, ibc_p_b, ibc_p_t,          &
-                  inflow_l, inflow_n, inflow_r, inflow_s, maximum_grid_level,  &
-                  mg_switch_to_pe0_level, outflow_l, outflow_n, outflow_r,     &
-                  outflow_s, synchronous_exchange
+                  maximum_grid_level,                                          &
+                  mg_switch_to_pe0_level, synchronous_exchange
 
        USE indices,                                                            &
Index: palm/trunk/SOURCE/poismg_noopt.f90
===================================================================
--- palm/trunk/SOURCE/poismg_noopt.f90	(revision 2693)
+++ 	(revision )
@@ -1,1696 +1,0 @@
-!> @file poismg_noopt.f90
-!------------------------------------------------------------------------------!
-! This file is part of PALM.
-!
-! PALM is free software: you can redistribute it and/or modify it under the
-! terms of the GNU General Public License as published by the Free Software
-! Foundation, either version 3 of the License, or (at your option) any later
-! version.
-!
-! PALM is distributed in the hope that it will be useful, but WITHOUT ANY
-! WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
-! A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
-!
-! You should have received a copy of the GNU General Public License along with
-! PALM. If not, see <http://www.gnu.org/licenses/>.
-!
-! Copyright 1997-2017 Leibniz Universitaet Hannover
-!------------------------------------------------------------------------------!
-!
-! Current revisions:
-! -----------------
-! 
-! 
-! Former revisions:
-! -----------------
-! $Id$
-!
-! 2232 2017-05-30 17:47:52Z suehring
-! Bugfixes OpenMP
-! 
-! 2037 2016-10-26 11:15:40Z knoop
-! Anelastic approximation implemented
-! 
-! 2021 2016-10-07 14:08:57Z suehring
-! Bugfix: restore nest_bound_(l/r/s/n) in case of mg_switch_to_pe0
-! 
-! 2000 2016-08-20 18:09:15Z knoop
-! Forced header and separation lines into 80 columns
-! 
-! 1934 2016-06-13 09:46:57Z hellstea
-! Rename subroutines and cpu-measure log points to indicate _noopt version
-! 
-! 1762 2016-02-25 12:31:13Z hellstea
-! Introduction of nested domain feature
-!
-! 1682 2015-10-07 23:56:08Z knoop
-! Code annotations made doxygen readable 
-! 
-! 1353 2014-04-08 15:21:23Z heinze
-! REAL constants provided with KIND-attribute
-!
-! 1322 2014-03-20 16:38:49Z raasch
-! REAL constants defined as wp-kind
-!
-! 1320 2014-03-20 08:40:49Z raasch
-! ONLY-attribute added to USE-statements,
-! kind-parameters added to all INTEGER and REAL declaration statements,
-! kinds are defined in new module kinds,
-! old module precision_kind is removed,
-! revision history before 2012 removed,
-! comment fields (!:) to be used for variable explanations added to
-! all variable declaration statements
-!
-! 1318 2014-03-17 13:35:16Z raasch
-! module interfaces removed
-!
-! 1159 2013-05-21 11:58:22Z fricke
-! bc_lr/ns_dirneu/neudir removed
-!
-! 1092 2013-02-02 11:24:22Z raasch
-! unused variables removed
-!
-! 1056 2012-11-16 15:28:04Z raasch
-! Bugfix: all ghost points have to be used for allocating p3
-! arrays p2, f2, and f2_l changed from allocatable to automatic
-!
-! 1036 2012-10-22 13:43:42Z raasch
-! code put under GPL (PALM 3.9)
-!
-! 996 2012-09-07 10:41:47Z raasch
-! little reformatting
-!
-! 978 2012-08-09 08:28:32Z fricke
-! bc_lr/ns_dirneu/neudir added
-!
-! 880 2012-04-13 06:28:59Z raasch
-! Bugfix: preprocessor statements for parallel execution added
-!
-! 778 2011-11-07 14:18:25Z fricke
-! Allocation of p3 changes when multigrid is used and the collected field on PE0
-! has more grid points than the subdomain of an PE.
-!
-! 707 2011-03-29 11:39:40Z raasch
-! p_loc is used instead of p in the main routine (poismg).
-! On coarse grid levels, gathered data are identically processed on all PEs
-! (before, on PE0 only), so that the subsequent scattering of data is not
-! neccessary any more.
-! bc_lr/ns replaced by bc_lr/ns_cyc/dirrad/raddir
-! Bugfix: bottom (nzb) and top (nzt+1) boundary conditions set in routines
-! resid and restrict. They were missed before which may have led to
-! unpredictable results.
-!
-! 667 2010-12-23 12:06:00Z suehring/gryschka
-! Calls of exchange_horiz are modified.
-!
-! 622 2010-12-10 08:08:13Z raasch
-! optional barriers included in order to speed up collective operations
-!
-! 257 2009-03-11 15:17:42Z heinze
-! Output of messages replaced by message handling routine.
-!
-! 181 2008-07-30 07:07:47Z raasch
-! Bugfix: grid_level+1 has to be used in restrict for flags-array
-!
-! 114 2007-10-10 00:03:15Z raasch
-! Boundary conditions at walls are implicitly set using flag arrays. Only
-! Neumann BC is allowed. Upper walls are still not realized.
-! Bottom and top BCs for array f_mg in restrict removed because boundary
-! values are not needed (right hand side of SOR iteration).
-!
-! 75 2007-03-22 09:54:05Z raasch
-! 2nd+3rd argument removed from exchange horiz
-!
-! RCS Log replace by Id keyword, revision history cleaned up
-!
-! Revision 1.6  2005/03/26 20:55:54  raasch
-! Implementation of non-cyclic (Neumann) horizontal boundary conditions,
-! routine prolong simplified (one call of exchange_horiz spared)
-!
-! Revision 1.1  2001/07/20 13:10:51  raasch
-! Initial revision
-!
-!
-! Description:
-! ------------
-!> Solves the Poisson equation for the perturbation pressure with a multigrid
-!> V- or W-Cycle scheme.
-!>
-!> This multigrid method was originally developed for PALM by Joerg Uhlenbrock,
-!> September 2000 - July 2001.
-!> 
-!> @attention Loop unrolling and cache optimization in SOR-Red/Black method
-!>            still does not give the expected speedup! 
-!>
-!> @todo Further work required.
-!------------------------------------------------------------------------------!
- SUBROUTINE poismg_noopt( r )
- 
-
-    USE arrays_3d,                                                             &
-        ONLY:  d, p_loc
-
-    USE control_parameters,                                                    &
-        ONLY:  gathered_size, grid_level, grid_level_count,                    &
-               maximum_grid_level, message_string, mgcycles, mg_cycles,        &
-               mg_switch_to_pe0_level, residual_limit, subdomain_size
-
-    USE cpulog,                                                                &
-        ONLY:  cpu_log, log_point_s
-
-    USE indices,                                                               &
-        ONLY:  nxl, nxlg, nxl_mg, nxr, nxrg, nxr_mg, nys, nysg, nys_mg, nyn,   &
-               nyng, nyn_mg, nzb, nzt, nzt_mg
-
-    USE kinds
-
-    USE pegrid
-
-    IMPLICIT NONE
-
-    REAL(wp) ::  maxerror          !<
-    REAL(wp) ::  maximum_mgcycles  !<
-    REAL(wp) ::  residual_norm     !<
-
-    REAL(wp), DIMENSION(nzb:nzt+1,nys-1:nyn+1,nxl-1:nxr+1) ::  r  !<
-
-    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  p3  !<
-
-
-    CALL cpu_log( log_point_s(29), 'poismg_noopt', 'start' )
-!
-!-- Initialize arrays and variables used in this subroutine
-
-!-- If the number of grid points of the gathered grid, which is collected
-!-- on PE0, is larger than the number of grid points of an PE, than array
-!-- p3 will be enlarged.
-    IF ( gathered_size > subdomain_size )  THEN 
-       ALLOCATE( p3(nzb:nzt_mg(mg_switch_to_pe0_level)+1,nys_mg(               &
-                    mg_switch_to_pe0_level)-1:nyn_mg(mg_switch_to_pe0_level)+1,&
-                    nxl_mg(mg_switch_to_pe0_level)-1:nxr_mg(                   &
-                    mg_switch_to_pe0_level)+1) )
-    ELSE
-       ALLOCATE ( p3(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
-    ENDIF
-
-    p3 = 0.0_wp
- 
-!
-!-- Ghost boundaries have to be added to divergence array.
-!-- Exchange routine needs to know the grid level!
-    grid_level = maximum_grid_level
-    CALL exchange_horiz( d, 1)
-    d(nzb,:,:) = d(nzb+1,:,:)
-
-!
-!-- Initiation of the multigrid scheme. Does n cycles until the 
-!-- residual is smaller than the given limit. The accuracy of the solution 
-!-- of the poisson equation will increase with the number of cycles.
-!-- If the number of cycles is preset by the user, this number will be
-!-- carried out regardless of the accuracy.
-    grid_level_count =  0
-    mgcycles         =  0
-    IF ( mg_cycles == -1 )  THEN
-       maximum_mgcycles = 0
-       residual_norm    = 1.0_wp
-    ELSE
-       maximum_mgcycles = mg_cycles
-       residual_norm    = 0.0_wp
-    ENDIF
-
-    DO WHILE ( residual_norm > residual_limit  .OR. &
-               mgcycles < maximum_mgcycles )
- 
-       CALL next_mg_level_noopt( d, p_loc, p3, r)
-
-!
-!--    Calculate the residual if the user has not preset the number of
-!--    cycles to be performed
-       IF ( maximum_mgcycles == 0 )  THEN
-          CALL resid_noopt( d, p_loc, r )
-          maxerror = SUM( r(nzb+1:nzt,nys:nyn,nxl:nxr)**2 )
-
-#if defined( __parallel )
-          IF ( collective_wait )  CALL MPI_BARRIER( comm2d, ierr )
-             CALL MPI_ALLREDUCE( maxerror, residual_norm, 1, MPI_REAL, MPI_SUM, &
-                              comm2d, ierr)
-#else
-             residual_norm = maxerror
-#endif
-          residual_norm = SQRT( residual_norm )
-       ENDIF
-
-       mgcycles = mgcycles + 1
-
-!
-!--    If the user has not limited the number of cycles, stop the run in case
-!--    of insufficient convergence
-       IF ( mgcycles > 1000  .AND.  mg_cycles == -1 )  THEN
-          message_string = 'no sufficient convergence within 1000 cycles'
-          CALL message( 'poismg_noopt', 'PA0283', 1, 2, 0, 6, 0 )
-       ENDIF
-
-    ENDDO
-
-    DEALLOCATE( p3 )
-
-!
-!-- Unset the grid level. Variable is used to determine the MPI datatypes for
-!-- ghost point exchange
-    grid_level = 0 
-
-    CALL cpu_log( log_point_s(29), 'poismg_noopt', 'stop' )
-
- END SUBROUTINE poismg_noopt
-
-
-!------------------------------------------------------------------------------!
-! Description:
-! ------------
-!> Computes the residual of the perturbation pressure.
-!------------------------------------------------------------------------------!
- SUBROUTINE resid_noopt( f_mg, p_mg, r )
-
-
-    USE arrays_3d,                                                             &
-        ONLY:  f1_mg, f2_mg, f3_mg, rho_air_mg
-
-    USE control_parameters,                                                    &
-        ONLY:  bc_lr_cyc, bc_ns_cyc, grid_level, ibc_p_b, ibc_p_t, inflow_l,   &
-               inflow_n, inflow_r, inflow_s, nest_bound_l, nest_bound_n,       &
-               nest_bound_r, nest_bound_s, outflow_l, outflow_n, outflow_r,    &
-               outflow_s
-
-    USE grid_variables,                                                        &
-        ONLY:  ddx2_mg, ddy2_mg
-
-    USE indices,                                                               &
-        ONLY:  flags, wall_flags_1, wall_flags_2, wall_flags_3, wall_flags_4,  &
-               wall_flags_5, wall_flags_6, wall_flags_7, wall_flags_8,         &
-               wall_flags_9, wall_flags_10, nxl_mg, nxr_mg, nys_mg, nyn_mg,    &
-               nzb, nzt_mg
-
-    USE kinds
-
-    IMPLICIT NONE
-
-    INTEGER(iwp) ::  i
-    INTEGER(iwp) ::  j
-    INTEGER(iwp) ::  k
-    INTEGER(iwp) ::  l
-
-    REAL(wp), DIMENSION(nzb:nzt_mg(grid_level)+1,                              &
-                    nys_mg(grid_level)-1:nyn_mg(grid_level)+1,                 &
-                    nxl_mg(grid_level)-1:nxr_mg(grid_level)+1) ::  f_mg  !<
-    REAL(wp), DIMENSION(nzb:nzt_mg(grid_level)+1,                              &
-                    nys_mg(grid_level)-1:nyn_mg(grid_level)+1,                 &
-                    nxl_mg(grid_level)-1:nxr_mg(grid_level)+1) ::  p_mg  !<
-    REAL(wp), DIMENSION(nzb:nzt_mg(grid_level)+1,                              &
-                    nys_mg(grid_level)-1:nyn_mg(grid_level)+1,                 &
-                    nxl_mg(grid_level)-1:nxr_mg(grid_level)+1) ::  r     !<
-
-!
-!-- Calculate the residual
-    l = grid_level
-
-!
-!-- Choose flag array of this level
-    SELECT CASE ( l )
-       CASE ( 1 )
-          flags => wall_flags_1
-       CASE ( 2 )
-          flags => wall_flags_2
-       CASE ( 3 )
-          flags => wall_flags_3
-       CASE ( 4 )
-          flags => wall_flags_4
-       CASE ( 5 )
-          flags => wall_flags_5
-       CASE ( 6 )
-          flags => wall_flags_6
-       CASE ( 7 )
-          flags => wall_flags_7
-       CASE ( 8 )
-          flags => wall_flags_8
-       CASE ( 9 )
-          flags => wall_flags_9
-       CASE ( 10 )
-          flags => wall_flags_10
-    END SELECT
-
-!$OMP PARALLEL PRIVATE (i,j,k)
-!$OMP DO
-    DO  i = nxl_mg(l), nxr_mg(l)
-       DO  j = nys_mg(l), nyn_mg(l) 
-          DO  k = nzb+1, nzt_mg(l)
-             r(k,j,i) = f_mg(k,j,i)                                         &
-                        - rho_air_mg(k,l) * ddx2_mg(l) *                    &
-                            ( p_mg(k,j,i+1) + IBITS( flags(k,j,i), 5, 1 ) * &
-                                          ( p_mg(k,j,i) - p_mg(k,j,i+1) ) + &
-                              p_mg(k,j,i-1) + IBITS( flags(k,j,i), 4, 1 ) * &
-                                          ( p_mg(k,j,i) - p_mg(k,j,i-1) ) ) &
-                        - rho_air_mg(k,l) * ddy2_mg(l) *                    &
-                            ( p_mg(k,j+1,i) + IBITS( flags(k,j,i), 3, 1 ) * &
-                                          ( p_mg(k,j,i) - p_mg(k,j+1,i) ) + &
-                              p_mg(k,j-1,i) + IBITS( flags(k,j,i), 2, 1 ) * &
-                                          ( p_mg(k,j,i) - p_mg(k,j-1,i) ) ) &
-                        - f2_mg(k,l) * p_mg(k+1,j,i)                        &
-                        - f3_mg(k,l) *                                      &
-                            ( p_mg(k-1,j,i) + IBITS( flags(k,j,i), 0, 1 ) * &
-                                          ( p_mg(k,j,i) - p_mg(k-1,j,i) ) ) &
-                        + f1_mg(k,l) * p_mg(k,j,i)
-!
-!--          Residual within topography should be zero
-             r(k,j,i) = r(k,j,i) * ( 1.0_wp - IBITS( flags(k,j,i), 6, 1 ) )
-          ENDDO
-       ENDDO
-    ENDDO
-!$OMP END PARALLEL
-
-!
-!-- Horizontal boundary conditions
-    CALL exchange_horiz( r, 1)
-
-    IF ( .NOT. bc_lr_cyc )  THEN
-       IF ( inflow_l .OR. outflow_l .OR. nest_bound_l )  THEN
-          r(:,:,nxl_mg(l)-1) = r(:,:,nxl_mg(l))
-       ENDIF
-       IF ( inflow_r .OR. outflow_r .OR. nest_bound_r )  THEN
-          r(:,:,nxr_mg(l)+1) = r(:,:,nxr_mg(l))
-       ENDIF
-    ENDIF
-
-    IF ( .NOT. bc_ns_cyc )  THEN
-       IF ( inflow_n .OR. outflow_n .OR. nest_bound_n )  THEN
-          r(:,nyn_mg(l)+1,:) = r(:,nyn_mg(l),:)
-       ENDIF
-       IF ( inflow_s .OR. outflow_s .OR. nest_bound_s )  THEN
-          r(:,nys_mg(l)-1,:) = r(:,nys_mg(l),:)
-       ENDIF
-    ENDIF
-
-!
-!-- Boundary conditions at bottom and top of the domain.
-!-- These points are not handled by the above loop. Points may be within
-!-- buildings, but that doesn't matter. 
-    IF ( ibc_p_b == 1 )  THEN
-       r(nzb,:,: ) = r(nzb+1,:,:)
-    ELSE
-       r(nzb,:,: ) = 0.0_wp
-    ENDIF
-
-    IF ( ibc_p_t == 1 )  THEN
-       r(nzt_mg(l)+1,:,: ) = r(nzt_mg(l),:,:)
-    ELSE
-       r(nzt_mg(l)+1,:,: ) = 0.0_wp
-    ENDIF
-
-
- END SUBROUTINE resid_noopt
-
-
-!------------------------------------------------------------------------------!
-! Description:
-! ------------
-!> Interpolates the residual on the next coarser grid with "full weighting"
-!> scheme.
-!------------------------------------------------------------------------------!
- SUBROUTINE restrict_noopt( f_mg, r )
-
-
-    USE control_parameters,                                                    &
-        ONLY:  bc_lr_cyc, bc_ns_cyc, grid_level, ibc_p_b, ibc_p_t, inflow_l,   &
-               inflow_n, inflow_r, inflow_s, nest_bound_l, nest_bound_n,       &
-               nest_bound_r, nest_bound_s, outflow_l, outflow_n, outflow_r,    &
-               outflow_s
-
-    USE indices,                                                               &
-        ONLY:  flags, wall_flags_1, wall_flags_2, wall_flags_3, wall_flags_4,  &
-               wall_flags_5, wall_flags_6, wall_flags_7, wall_flags_8,         &
-               wall_flags_9, wall_flags_10, nxl_mg, nxr_mg, nys_mg, nyn_mg,    &
-               nzb, nzt_mg
-
-    USE kinds
-
-    IMPLICIT NONE
-
-    INTEGER(iwp) ::  i    !<
-    INTEGER(iwp) ::  ic   !<
-    INTEGER(iwp) ::  j    !<
-    INTEGER(iwp) ::  jc   !<
-    INTEGER(iwp) ::  k    !<
-    INTEGER(iwp) ::  kc   !<
-    INTEGER(iwp) ::  l    !<
-
-    REAL(wp) ::  rkjim    !<
-    REAL(wp) ::  rkjip    !<
-    REAL(wp) ::  rkjmi    !<
-    REAL(wp) ::  rkjmim   !<
-    REAL(wp) ::  rkjmip   !<
-    REAL(wp) ::  rkjpi    !<
-    REAL(wp) ::  rkjpim   !<
-    REAL(wp) ::  rkjpip   !<
-    REAL(wp) ::  rkmji    !<
-    REAL(wp) ::  rkmjim   !<
-    REAL(wp) ::  rkmjip   !<
-    REAL(wp) ::  rkmjmi   !<
-    REAL(wp) ::  rkmjmim  !<
-    REAL(wp) ::  rkmjmip  !<
-    REAL(wp) ::  rkmjpi   !<
-    REAL(wp) ::  rkmjpim  !<
-    REAL(wp) ::  rkmjpip  !<
-
-    REAL(wp), DIMENSION(nzb:nzt_mg(grid_level)+1,                            &
-                        nys_mg(grid_level)-1:nyn_mg(grid_level)+1,           &
-                        nxl_mg(grid_level)-1:nxr_mg(grid_level)+1) ::  f_mg  !<
-
-    REAL(wp), DIMENSION(nzb:nzt_mg(grid_level+1)+1,                          &
-                        nys_mg(grid_level+1)-1:nyn_mg(grid_level+1)+1,       &
-                        nxl_mg(grid_level+1)-1:nxr_mg(grid_level+1)+1) ::  r !<
-
-!
-!-- Interpolate the residual
-    l = grid_level
-
-!
-!-- Choose flag array of the upper level
-    SELECT CASE ( l+1 )
-       CASE ( 1 )
-          flags => wall_flags_1
-       CASE ( 2 )
-          flags => wall_flags_2
-       CASE ( 3 )
-          flags => wall_flags_3
-       CASE ( 4 )
-          flags => wall_flags_4
-       CASE ( 5 )
-          flags => wall_flags_5
-       CASE ( 6 )
-          flags => wall_flags_6
-       CASE ( 7 )
-          flags => wall_flags_7
-       CASE ( 8 )
-          flags => wall_flags_8
-       CASE ( 9 )
-          flags => wall_flags_9
-       CASE ( 10 )
-          flags => wall_flags_10
-    END SELECT
-    
-!$OMP PARALLEL PRIVATE (i,j,k,ic,jc,kc, rkjim,rkjip,rkjpi,rkjmi,rkjmim,rkjpim, &
-!$OMP rkjmip, rkjpip,rkmji,rkmjim,rkmjip,rkmjpi,rkmjmi,rkmjmim,rkmjpim,rkmjmip,&
-!$OMP rkmjpip          )
-!$OMP DO
-    DO  ic = nxl_mg(l), nxr_mg(l)    
-       i = 2*ic 
-       DO  jc = nys_mg(l), nyn_mg(l)  
-          j = 2*jc
-          DO  kc = nzb+1, nzt_mg(l)
-             k = 2*kc-1
-!
-!--          Use implicit Neumann BCs if the respective gridpoint is inside
-!--          the building
-             rkjim   = r(k,j,i-1)     + IBITS( flags(k,j,i-1), 6, 1 ) *     &
-                                        ( r(k,j,i) - r(k,j,i-1) )
-             rkjip   = r(k,j,i+1)     + IBITS( flags(k,j,i+1), 6, 1 ) *     &
-                                        ( r(k,j,i) - r(k,j,i+1) )
-             rkjpi   = r(k,j+1,i)     + IBITS( flags(k,j+1,i), 6, 1 ) *     &
-                                        ( r(k,j,i) - r(k,j+1,i) )
-             rkjmi   = r(k,j-1,i)     + IBITS( flags(k,j-1,i), 6, 1 ) *     &
-                                        ( r(k,j,i) - r(k,j-1,i) )
-             rkjmim  = r(k,j-1,i-1)   + IBITS( flags(k,j-1,i-1), 6, 1 ) *   &
-                                        ( r(k,j,i) - r(k,j-1,i-1) )
-             rkjpim  = r(k,j+1,i-1)   + IBITS( flags(k,j+1,i-1), 6, 1 ) *   &
-                                        ( r(k,j,i) - r(k,j+1,i-1) )
-             rkjmip  = r(k,j-1,i+1)   + IBITS( flags(k,j-1,i+1), 6, 1 ) *   &
-                                        ( r(k,j,i) - r(k,j-1,i+1) )
-             rkjpip  = r(k,j+1,i+1)   + IBITS( flags(k,j+1,i+1), 6, 1 ) *   &
-                                        ( r(k,j,i) - r(k,j+1,i+1) )
-             rkmji   = r(k-1,j,i)     + IBITS( flags(k-1,j,i), 6, 1 ) *     &
-                                        ( r(k,j,i) - r(k-1,j,i) )
-             rkmjim  = r(k-1,j,i-1)   + IBITS( flags(k-1,j,i-1), 6, 1 ) *   &
-                                        ( r(k,j,i) - r(k-1,j,i-1) )
-             rkmjip  = r(k-1,j,i+1)   + IBITS( flags(k-1,j,i+1), 6, 1 ) *   &
-                                        ( r(k,j,i) - r(k-1,j,i+1) )
-             rkmjpi  = r(k-1,j+1,i)   + IBITS( flags(k-1,j+1,i), 6, 1 ) *   &
-                                        ( r(k,j,i) - r(k-1,j+1,i) )
-             rkmjmi  = r(k-1,j-1,i)   + IBITS( flags(k-1,j-1,i), 6, 1 ) *   &
-                                        ( r(k,j,i) - r(k-1,j-1,i) )
-             rkmjmim = r(k-1,j-1,i-1) + IBITS( flags(k-1,j-1,i-1), 6, 1 ) * &
-                                        ( r(k,j,i) - r(k-1,j-1,i-1) )
-             rkmjpim = r(k-1,j+1,i-1) + IBITS( flags(k-1,j+1,i-1), 6, 1 ) * &
-                                        ( r(k,j,i) - r(k-1,j+1,i-1) )
-             rkmjmip = r(k-1,j-1,i+1) + IBITS( flags(k-1,j-1,i+1), 6, 1 ) * &
-                                        ( r(k,j,i) - r(k-1,j-1,i+1) )
-             rkmjpip = r(k-1,j+1,i+1) + IBITS( flags(k-1,j+1,i+1), 6, 1 ) * &
-                                        ( r(k,j,i) - r(k-1,j+1,i+1) )
-
-             f_mg(kc,jc,ic) = 1.0_wp / 64.0_wp * (                         &
-                              8.0_wp * r(k,j,i)                            &
-                            + 4.0_wp * ( rkjim   + rkjip   +               &
-                                         rkjpi   + rkjmi   )               &
-                            + 2.0_wp * ( rkjmim  + rkjpim  +               &
-                                         rkjmip  + rkjpip  )               &
-                            + 4.0_wp * rkmji                               &
-                            + 2.0_wp * ( rkmjim  + rkmjim  +               &
-                                         rkmjpi  + rkmjmi  )               &
-                            +          ( rkmjmim + rkmjpim +               &
-                                         rkmjmip + rkmjpip )               &
-                            + 4.0_wp * r(k+1,j,i)                          &
-                            + 2.0_wp * ( r(k+1,j,i-1)   + r(k+1,j,i+1)   + &
-                                         r(k+1,j+1,i)   + r(k+1,j-1,i)   ) &
-                            +          ( r(k+1,j-1,i-1) + r(k+1,j+1,i-1) + &
-                                         r(k+1,j-1,i+1) + r(k+1,j+1,i+1) ) &
-                                                 )
-
-!             f_mg(kc,jc,ic) = 1.0_wp / 64.0_wp * (                         &
-!                              8.0_wp * r(k,j,i)                            &
-!                            + 4.0_wp * ( r(k,j,i-1)     + r(k,j,i+1)     + &
-!                                         r(k,j+1,i)     + r(k,j-1,i)     ) &
-!                            + 2.0_wp * ( r(k,j-1,i-1)   + r(k,j+1,i-1)   + &
-!                                         r(k,j-1,i+1)   + r(k,j+1,i+1)   ) &
-!                            + 4.0_wp * r(k-1,j,i)                          &
-!                            + 2.0_wp * ( r(k-1,j,i-1)   + r(k-1,j,i+1)   + &
-!                                         r(k-1,j+1,i)   + r(k-1,j-1,i)   ) &
-!                            +          ( r(k-1,j-1,i-1) + r(k-1,j+1,i-1) + &
-!                                         r(k-1,j-1,i+1) + r(k-1,j+1,i+1) ) &
-!                            + 4.0_wp * r(k+1,j,i)                          &
-!                            + 2.0_wp * ( r(k+1,j,i-1)   + r(k+1,j,i+1)   + &
-!                                         r(k+1,j+1,i)   + r(k+1,j-1,i)   ) &
-!                            +          ( r(k+1,j-1,i-1) + r(k+1,j+1,i-1) + &
-!                                         r(k+1,j-1,i+1) + r(k+1,j+1,i+1) ) &
-!                                                )
-          ENDDO
-       ENDDO
-    ENDDO
-!$OMP END PARALLEL
-
-!
-!-- Horizontal boundary conditions
-    CALL exchange_horiz( f_mg, 1)
-
-    IF ( .NOT. bc_lr_cyc )  THEN
-       IF ( inflow_l .OR. outflow_l .OR. nest_bound_l )  THEN
-          f_mg(:,:,nxl_mg(l)-1) = f_mg(:,:,nxl_mg(l))
-       ENDIF
-       IF ( inflow_r .OR. outflow_r .OR. nest_bound_r )  THEN
-          f_mg(:,:,nxr_mg(l)+1) = f_mg(:,:,nxr_mg(l))
-       ENDIF
-    ENDIF
-
-    IF ( .NOT. bc_ns_cyc )  THEN
-       IF ( inflow_n .OR. outflow_n .OR. nest_bound_n )  THEN
-          f_mg(:,nyn_mg(l)+1,:) = f_mg(:,nyn_mg(l),:)
-       ENDIF
-       IF ( inflow_s .OR. outflow_s .OR. nest_bound_s )  THEN
-          f_mg(:,nys_mg(l)-1,:) = f_mg(:,nys_mg(l),:)
-       ENDIF
-    ENDIF
-
-!
-!-- Boundary conditions at bottom and top of the domain.
-!-- These points are not handled by the above loop. Points may be within
-!-- buildings, but that doesn't matter. 
-    IF ( ibc_p_b == 1 )  THEN
-       f_mg(nzb,:,: ) = f_mg(nzb+1,:,:)
-    ELSE
-       f_mg(nzb,:,: ) = 0.0_wp
-    ENDIF
-
-    IF ( ibc_p_t == 1 )  THEN
-       f_mg(nzt_mg(l)+1,:,: ) = f_mg(nzt_mg(l),:,:)
-    ELSE
-       f_mg(nzt_mg(l)+1,:,: ) = 0.0_wp
-    ENDIF
-
-
-END SUBROUTINE restrict_noopt
-
-
-!------------------------------------------------------------------------------!
-! Description:
-! ------------
-!> Interpolates the correction of the perturbation pressure 
-!> to the next finer grid.
-!------------------------------------------------------------------------------!
- SUBROUTINE prolong_noopt( p, temp )
-
-
-    USE control_parameters,                                                    &
-        ONLY:  bc_lr_cyc, bc_ns_cyc, grid_level, ibc_p_b, ibc_p_t, inflow_l,   &
-               inflow_n, inflow_r, inflow_s, nest_bound_l, nest_bound_n,       &
-               nest_bound_r, nest_bound_s, outflow_l, outflow_n, outflow_r,    &
-               outflow_s
-
-    USE indices,                                                               &
-        ONLY:  nxl_mg, nxr_mg, nys_mg, nyn_mg, nzb, nzt_mg
-
-    USE kinds
-
-    IMPLICIT NONE
-
-    INTEGER(iwp) ::  i  !<
-    INTEGER(iwp) ::  j  !<
-    INTEGER(iwp) ::  k  !<
-    INTEGER(iwp) ::  l  !<
-
-    REAL(wp), DIMENSION(nzb:nzt_mg(grid_level-1)+1,                           &
-                        nys_mg(grid_level-1)-1:nyn_mg(grid_level-1)+1,        &
-                        nxl_mg(grid_level-1)-1:nxr_mg(grid_level-1)+1 ) ::  p  !<
-
-    REAL(wp), DIMENSION(nzb:nzt_mg(grid_level)+1,                           &
-                        nys_mg(grid_level)-1:nyn_mg(grid_level)+1,          &
-                        nxl_mg(grid_level)-1:nxr_mg(grid_level)+1) ::  temp  !<
-
-
-!
-!-- First, store elements of the coarser grid on the next finer grid
-    l = grid_level
-
-!$OMP PARALLEL PRIVATE (i,j,k)
-!$OMP DO
-    DO  i = nxl_mg(l-1), nxr_mg(l-1)
-       DO  j = nys_mg(l-1), nyn_mg(l-1)
-!CDIR NODEP
-          DO  k = nzb+1, nzt_mg(l-1)
-!
-!--          Points of the coarse grid are directly stored on the next finer
-!--          grid
-             temp(2*k-1,2*j,2*i) = p(k,j,i) 
-! 
-!--          Points between two coarse-grid points
-             temp(2*k-1,2*j,2*i+1) = 0.5_wp * ( p(k,j,i) + p(k,j,i+1) )
-             temp(2*k-1,2*j+1,2*i) = 0.5_wp * ( p(k,j,i) + p(k,j+1,i) )
-             temp(2*k,2*j,2*i)     = 0.5_wp * ( p(k,j,i) + p(k+1,j,i) )
-!
-!--          Points in the center of the planes stretched by four points
-!--          of the coarse grid cube
-             temp(2*k-1,2*j+1,2*i+1) = 0.25_wp * ( p(k,j,i)   + p(k,j,i+1) + &
-                                                   p(k,j+1,i) + p(k,j+1,i+1) )
-             temp(2*k,2*j,2*i+1)     = 0.25_wp * ( p(k,j,i)   + p(k,j,i+1) + &
-                                                   p(k+1,j,i) + p(k+1,j,i+1) )
-             temp(2*k,2*j+1,2*i)     = 0.25_wp * ( p(k,j,i)   + p(k,j+1,i) + &
-                                                   p(k+1,j,i) + p(k+1,j+1,i) )
-!
-!--          Points in the middle of coarse grid cube
-             temp(2*k,2*j+1,2*i+1) = 0.125_wp * ( p(k,j,i)     + p(k,j,i+1)   + &
-                                                  p(k,j+1,i)   + p(k,j+1,i+1) + &
-                                                  p(k+1,j,i)   + p(k+1,j,i+1) + &
-                                                  p(k+1,j+1,i) + p(k+1,j+1,i+1) )
-          ENDDO
-       ENDDO
-    ENDDO
-!$OMP END PARALLEL 
-                          
-!
-!-- Horizontal boundary conditions
-    CALL exchange_horiz( temp, 1)
-
-    IF ( .NOT. bc_lr_cyc )  THEN
-       IF ( inflow_l .OR. outflow_l .OR. nest_bound_l )  THEN
-          temp(:,:,nxl_mg(l)-1) = temp(:,:,nxl_mg(l))
-       ENDIF
-       IF ( inflow_r .OR. outflow_r .OR. nest_bound_r )  THEN
-          temp(:,:,nxr_mg(l)+1) = temp(:,:,nxr_mg(l))
-       ENDIF
-    ENDIF
-
-    IF ( .NOT. bc_ns_cyc )  THEN
-       IF ( inflow_n .OR. outflow_n .OR. nest_bound_n )  THEN
-          temp(:,nyn_mg(l)+1,:) = temp(:,nyn_mg(l),:)
-       ENDIF
-       IF ( inflow_s .OR. outflow_s .OR. nest_bound_s )  THEN
-          temp(:,nys_mg(l)-1,:) = temp(:,nys_mg(l),:)
-       ENDIF
-    ENDIF
-
-!
-!-- Bottom and top boundary conditions
-    IF ( ibc_p_b == 1 )  THEN
-       temp(nzb,:,: ) = temp(nzb+1,:,:)
-    ELSE
-       temp(nzb,:,: ) = 0.0_wp
-    ENDIF
-
-    IF ( ibc_p_t == 1 )  THEN
-       temp(nzt_mg(l)+1,:,: ) = temp(nzt_mg(l),:,:)
-    ELSE
-       temp(nzt_mg(l)+1,:,: ) = 0.0_wp
-    ENDIF
-
-  
- END SUBROUTINE prolong_noopt
-
-
-!------------------------------------------------------------------------------!
-! Description:
-! ------------
-!> Relaxation method for the multigrid scheme. A Gauss-Seidel iteration with
-!> 3D-Red-Black decomposition (GS-RB) is used.
-!------------------------------------------------------------------------------!
- SUBROUTINE redblack_noopt( f_mg, p_mg )
-
-
-    USE arrays_3d,                                                             &
-        ONLY:  f1_mg, f2_mg, f3_mg, rho_air_mg
-
-    USE control_parameters,                                                    &
-        ONLY:  bc_lr_cyc, bc_ns_cyc, grid_level, ibc_p_b, ibc_p_t, inflow_l,   &
-               inflow_n, inflow_r, inflow_s, ngsrb, nest_bound_l,              &
-               nest_bound_n, nest_bound_r, nest_bound_s, outflow_l, outflow_n, &
-               outflow_r, outflow_s
-
-    USE cpulog,                                                                &
-        ONLY:  cpu_log, log_point_s
-
-    USE grid_variables,                                                        &
-        ONLY:  ddx2_mg, ddy2_mg
-
-    USE indices,                                                               &
-        ONLY:  flags, wall_flags_1, wall_flags_2, wall_flags_3, wall_flags_4,  &
-               wall_flags_5, wall_flags_6, wall_flags_7, wall_flags_8,         &
-               wall_flags_9, wall_flags_10, nxl_mg, nxr_mg, nys_mg, nyn_mg,    &
-               nzb, nzt_mg
-
-    USE kinds
-
-    IMPLICIT NONE
-
-    INTEGER(iwp) :: color    !<
-    INTEGER(iwp) :: i        !<
-    INTEGER(iwp) :: ic       !<
-    INTEGER(iwp) :: j        !<
-    INTEGER(iwp) :: jc       !<
-    INTEGER(iwp) :: jj       !<
-    INTEGER(iwp) :: k        !<
-    INTEGER(iwp) :: l        !<
-    INTEGER(iwp) :: n        !<
-
-    LOGICAL :: unroll        !<
-
-    REAL(wp) ::  wall_left   !<
-    REAL(wp) ::  wall_north  !<
-    REAL(wp) ::  wall_right  !<
-    REAL(wp) ::  wall_south  !<
-    REAL(wp) ::  wall_total  !<
-    REAL(wp) ::  wall_top    !<
-
-    REAL(wp), DIMENSION(nzb:nzt_mg(grid_level)+1,                              &
-                        nys_mg(grid_level)-1:nyn_mg(grid_level)+1,             &
-                        nxl_mg(grid_level)-1:nxr_mg(grid_level)+1) ::  f_mg  !<
-    REAL(wp), DIMENSION(nzb:nzt_mg(grid_level)+1,                              &
-                        nys_mg(grid_level)-1:nyn_mg(grid_level)+1,             &
-                        nxl_mg(grid_level)-1:nxr_mg(grid_level)+1) ::  p_mg  !<
-
-    l = grid_level
-
-!
-!-- Choose flag array of this level
-    SELECT CASE ( l )
-       CASE ( 1 )
-          flags => wall_flags_1
-       CASE ( 2 )
-          flags => wall_flags_2
-       CASE ( 3 )
-          flags => wall_flags_3
-       CASE ( 4 )
-          flags => wall_flags_4
-       CASE ( 5 )
-          flags => wall_flags_5
-       CASE ( 6 )
-          flags => wall_flags_6
-       CASE ( 7 )
-          flags => wall_flags_7
-       CASE ( 8 )
-          flags => wall_flags_8
-       CASE ( 9 )
-          flags => wall_flags_9
-       CASE ( 10 )
-          flags => wall_flags_10
-    END SELECT
-
-    unroll = ( MOD( nyn_mg(l)-nys_mg(l)+1, 4 ) == 0  .AND. &
-               MOD( nxr_mg(l)-nxl_mg(l)+1, 2 ) == 0 )
-
-    DO  n = 1, ngsrb
-       
-       DO  color = 1, 2
-
-          IF ( .NOT. unroll )  THEN
-
-             CALL cpu_log( log_point_s(36), 'redblack_no_unroll_noopt', 'start' )
-
-!
-!--          Without unrolling of loops, no cache optimization
-             DO  i = nxl_mg(l), nxr_mg(l), 2
-                DO  j = nys_mg(l) + 2 - color, nyn_mg(l), 2 
-                   DO  k = nzb+1, nzt_mg(l), 2
-!                      p_mg(k,j,i) = 1.0_wp / f1_mg(k,l) * (                    &
-!                                ddx2_mg(l) * ( p_mg(k,j,i+1) + p_mg(k,j,i-1) ) &
-!                              + ddy2_mg(l) * ( p_mg(k,j+1,i) + p_mg(k,j-1,i) ) &
-!                              + f2_mg(k,l) * p_mg(k+1,j,i)                     &
-!                              + f3_mg(k,l) * p_mg(k-1,j,i) - f_mg(k,j,i)       &
-!                                                       )
-
-                      p_mg(k,j,i) = 1.0_wp / f1_mg(k,l) * (                    &
-                             rho_air_mg(k,l) * ddx2_mg(l) *                    &
-                               ( p_mg(k,j,i+1) + IBITS( flags(k,j,i), 5, 1 ) * &
-                                             ( p_mg(k,j,i) - p_mg(k,j,i+1) ) + &
-                                 p_mg(k,j,i-1) + IBITS( flags(k,j,i), 4, 1 ) * &
-                                             ( p_mg(k,j,i) - p_mg(k,j,i-1) ) ) &
-                           + rho_air_mg(k,l) * ddy2_mg(l) *                    &
-                               ( p_mg(k,j+1,i) + IBITS( flags(k,j,i), 3, 1 ) * &
-                                             ( p_mg(k,j,i) - p_mg(k,j+1,i) ) + &
-                                 p_mg(k,j-1,i) + IBITS( flags(k,j,i), 2, 1 ) * &
-                                             ( p_mg(k,j,i) - p_mg(k,j-1,i) ) ) &
-                           + f2_mg(k,l) * p_mg(k+1,j,i)                        &
-                           + f3_mg(k,l) *                                      &
-                               ( p_mg(k-1,j,i) + IBITS( flags(k,j,i), 0, 1 ) * &
-                                             ( p_mg(k,j,i) - p_mg(k-1,j,i) ) ) &
-                           - f_mg(k,j,i)               )
-                   ENDDO
-                ENDDO
-             ENDDO
-   
-             DO  i = nxl_mg(l)+1, nxr_mg(l), 2
-                DO  j = nys_mg(l) + (color-1), nyn_mg(l), 2
-                   DO  k = nzb+1, nzt_mg(l), 2 
-                      p_mg(k,j,i) = 1.0_wp / f1_mg(k,l) * (                    &
-                             rho_air_mg(k,l) * ddx2_mg(l) *                    &
-                               ( p_mg(k,j,i+1) + IBITS( flags(k,j,i), 5, 1 ) * &
-                                             ( p_mg(k,j,i) - p_mg(k,j,i+1) ) + &
-                                 p_mg(k,j,i-1) + IBITS( flags(k,j,i), 4, 1 ) * &
-                                             ( p_mg(k,j,i) - p_mg(k,j,i-1) ) ) &
-                           + rho_air_mg(k,l) * ddy2_mg(l) *                    &
-                               ( p_mg(k,j+1,i) + IBITS( flags(k,j,i), 3, 1 ) * &
-                                             ( p_mg(k,j,i) - p_mg(k,j+1,i) ) + &
-                                 p_mg(k,j-1,i) + IBITS( flags(k,j,i), 2, 1 ) * &
-                                             ( p_mg(k,j,i) - p_mg(k,j-1,i) ) ) &
-                           + f2_mg(k,l) * p_mg(k+1,j,i)                        &
-                           + f3_mg(k,l) *                                      &
-                               ( p_mg(k-1,j,i) + IBITS( flags(k,j,i), 0, 1 ) * &
-                                             ( p_mg(k,j,i) - p_mg(k-1,j,i) ) ) &
-                           - f_mg(k,j,i)               )
-                   ENDDO
-                ENDDO
-             ENDDO
-  
-             DO  i = nxl_mg(l), nxr_mg(l), 2
-                DO  j = nys_mg(l) + (color-1), nyn_mg(l), 2
-                   DO  k = nzb+2, nzt_mg(l), 2
-                      p_mg(k,j,i) = 1.0_wp / f1_mg(k,l) * (                    &
-                             rho_air_mg(k,l) * ddx2_mg(l) *                    &
-                               ( p_mg(k,j,i+1) + IBITS( flags(k,j,i), 5, 1 ) * &
-                                             ( p_mg(k,j,i) - p_mg(k,j,i+1) ) + &
-                                 p_mg(k,j,i-1) + IBITS( flags(k,j,i), 4, 1 ) * &
-                                             ( p_mg(k,j,i) - p_mg(k,j,i-1) ) ) &
-                           + rho_air_mg(k,l) * ddy2_mg(l) *                    &
-                               ( p_mg(k,j+1,i) + IBITS( flags(k,j,i), 3, 1 ) * &
-                                             ( p_mg(k,j,i) - p_mg(k,j+1,i) ) + &
-                                 p_mg(k,j-1,i) + IBITS( flags(k,j,i), 2, 1 ) * &
-                                             ( p_mg(k,j,i) - p_mg(k,j-1,i) ) ) &
-                           + f2_mg(k,l) * p_mg(k+1,j,i)                        &
-                           + f3_mg(k,l) *                                      &
-                               ( p_mg(k-1,j,i) + IBITS( flags(k,j,i), 0, 1 ) * &
-                                             ( p_mg(k,j,i) - p_mg(k-1,j,i) ) ) &
-                           - f_mg(k,j,i)               )
-                   ENDDO
-                ENDDO
-             ENDDO
-
-             DO  i = nxl_mg(l)+1, nxr_mg(l), 2
-                DO  j = nys_mg(l) + 2 - color, nyn_mg(l), 2
-                   DO  k = nzb+2, nzt_mg(l), 2
-                      p_mg(k,j,i) = 1.0_wp / f1_mg(k,l) * (                    &
-                             rho_air_mg(k,l) * ddx2_mg(l) *                    &
-                               ( p_mg(k,j,i+1) + IBITS( flags(k,j,i), 5, 1 ) * &
-                                             ( p_mg(k,j,i) - p_mg(k,j,i+1) ) + &
-                                 p_mg(k,j,i-1) + IBITS( flags(k,j,i), 4, 1 ) * &
-                                             ( p_mg(k,j,i) - p_mg(k,j,i-1) ) ) &
-                           + rho_air_mg(k,l) * ddy2_mg(l) *                    &
-                               ( p_mg(k,j+1,i) + IBITS( flags(k,j,i), 3, 1 ) * &
-                                             ( p_mg(k,j,i) - p_mg(k,j+1,i) ) + &
-                                 p_mg(k,j-1,i) + IBITS( flags(k,j,i), 2, 1 ) * &
-                                             ( p_mg(k,j,i) - p_mg(k,j-1,i) ) ) &
-                           + f2_mg(k,l) * p_mg(k+1,j,i)                        &
-                           + f3_mg(k,l) *                                      &
-                               ( p_mg(k-1,j,i) + IBITS( flags(k,j,i), 0, 1 ) * &
-                                             ( p_mg(k,j,i) - p_mg(k-1,j,i) ) ) &
-                           - f_mg(k,j,i)               )
-                   ENDDO
-                ENDDO
-             ENDDO
-             CALL cpu_log( log_point_s(36), 'redblack_no_unroll_noopt', 'stop' )
-
-          ELSE
-
-!
-!--          Loop unrolling along y, only one i loop for better cache use
-             CALL cpu_log( log_point_s(38), 'redblack_unroll_noopt', 'start' )
-             DO  ic = nxl_mg(l), nxr_mg(l), 2
-                DO  jc = nys_mg(l), nyn_mg(l), 4
-                   i  = ic
-                   jj = jc+2-color
-                   DO  k = nzb+1, nzt_mg(l), 2
-                      j = jj
-                      p_mg(k,j,i) = 1.0_wp / f1_mg(k,l) * (                    &
-                             rho_air_mg(k,l) * ddx2_mg(l) *                    &
-                               ( p_mg(k,j,i+1) + IBITS( flags(k,j,i), 5, 1 ) * &
-                                             ( p_mg(k,j,i) - p_mg(k,j,i+1) ) + &
-                                 p_mg(k,j,i-1) + IBITS( flags(k,j,i), 4, 1 ) * &
-                                             ( p_mg(k,j,i) - p_mg(k,j,i-1) ) ) &
-                           + rho_air_mg(k,l) * ddy2_mg(l) *                    &
-                               ( p_mg(k,j+1,i) + IBITS( flags(k,j,i), 3, 1 ) * &
-                                             ( p_mg(k,j,i) - p_mg(k,j+1,i) ) + &
-                                 p_mg(k,j-1,i) + IBITS( flags(k,j,i), 2, 1 ) * &
-                                             ( p_mg(k,j,i) - p_mg(k,j-1,i) ) ) &
-                           + f2_mg(k,l) * p_mg(k+1,j,i)                        &
-                           + f3_mg(k,l) *                                      &
-                               ( p_mg(k-1,j,i) + IBITS( flags(k,j,i), 0, 1 ) * &
-                                             ( p_mg(k,j,i) - p_mg(k-1,j,i) ) ) &
-                           - f_mg(k,j,i)               )
-                      j = jj+2
-                      p_mg(k,j,i) = 1.0_wp / f1_mg(k,l) * (                    &
-                             rho_air_mg(k,l) * ddx2_mg(l) *                    &
-                               ( p_mg(k,j,i+1) + IBITS( flags(k,j,i), 5, 1 ) * &
-                                             ( p_mg(k,j,i) - p_mg(k,j,i+1) ) + &
-                                 p_mg(k,j,i-1) + IBITS( flags(k,j,i), 4, 1 ) * &
-                                             ( p_mg(k,j,i) - p_mg(k,j,i-1) ) ) &
-                           + rho_air_mg(k,l) * ddy2_mg(l) *                    &
-                               ( p_mg(k,j+1,i) + IBITS( flags(k,j,i), 3, 1 ) * &
-                                             ( p_mg(k,j,i) - p_mg(k,j+1,i) ) + &
-                                 p_mg(k,j-1,i) + IBITS( flags(k,j,i), 2, 1 ) * &
-                                             ( p_mg(k,j,i) - p_mg(k,j-1,i) ) ) &
-                           + f2_mg(k,l) * p_mg(k+1,j,i)                        &
-                           + f3_mg(k,l) *                                      &
-                               ( p_mg(k-1,j,i) + IBITS( flags(k,j,i), 0, 1 ) * &
-                                             ( p_mg(k,j,i) - p_mg(k-1,j,i) ) ) &
-                           - f_mg(k,j,i)               )
-                   ENDDO
-   
-                   i  = ic+1
-                   jj = jc+color-1
-                   DO  k = nzb+1, nzt_mg(l), 2 
-                      j =jj
-                      p_mg(k,j,i) = 1.0_wp / f1_mg(k,l) * (                    &
-                             rho_air_mg(k,l) * ddx2_mg(l) *                    &
-                               ( p_mg(k,j,i+1) + IBITS( flags(k,j,i), 5, 1 ) * &
-                                             ( p_mg(k,j,i) - p_mg(k,j,i+1) ) + &
-                                 p_mg(k,j,i-1) + IBITS( flags(k,j,i), 4, 1 ) * &
-                                             ( p_mg(k,j,i) - p_mg(k,j,i-1) ) ) &
-                           + rho_air_mg(k,l) * ddy2_mg(l) *                    &
-                               ( p_mg(k,j+1,i) + IBITS( flags(k,j,i), 3, 1 ) * &
-                                             ( p_mg(k,j,i) - p_mg(k,j+1,i) ) + &
-                                 p_mg(k,j-1,i) + IBITS( flags(k,j,i), 2, 1 ) * &
-                                             ( p_mg(k,j,i) - p_mg(k,j-1,i) ) ) &
-                           + f2_mg(k,l) * p_mg(k+1,j,i)                        &
-                           + f3_mg(k,l) *                                      &
-                               ( p_mg(k-1,j,i) + IBITS( flags(k,j,i), 0, 1 ) * &
-                                             ( p_mg(k,j,i) - p_mg(k-1,j,i) ) ) &
-                           - f_mg(k,j,i)               )
-                      j = jj+2
-                      p_mg(k,j,i) = 1.0_wp / f1_mg(k,l) * (                    &
-                             rho_air_mg(k,l) * ddx2_mg(l) *                    &
-                               ( p_mg(k,j,i+1) + IBITS( flags(k,j,i), 5, 1 ) * &
-                                             ( p_mg(k,j,i) - p_mg(k,j,i+1) ) + &
-                                 p_mg(k,j,i-1) + IBITS( flags(k,j,i), 4, 1 ) * &
-                                             ( p_mg(k,j,i) - p_mg(k,j,i-1) ) ) &
-                           + rho_air_mg(k,l) * ddy2_mg(l) *                    &
-                               ( p_mg(k,j+1,i) + IBITS( flags(k,j,i), 3, 1 ) * &
-                                             ( p_mg(k,j,i) - p_mg(k,j+1,i) ) + &
-                                 p_mg(k,j-1,i) + IBITS( flags(k,j,i), 2, 1 ) * &
-                                             ( p_mg(k,j,i) - p_mg(k,j-1,i) ) ) &
-                           + f2_mg(k,l) * p_mg(k+1,j,i)                        &
-                           + f3_mg(k,l) *                                      &
-                               ( p_mg(k-1,j,i) + IBITS( flags(k,j,i), 0, 1 ) * &
-                                             ( p_mg(k,j,i) - p_mg(k-1,j,i) ) ) &
-                           - f_mg(k,j,i)               )
-                   ENDDO
-
-                   i  = ic
-                   jj = jc+color-1
-                   DO  k = nzb+2, nzt_mg(l), 2
-                      j =jj
-                      p_mg(k,j,i) = 1.0_wp / f1_mg(k,l) * (                    &
-                             rho_air_mg(k,l) * ddx2_mg(l) *                    &
-                               ( p_mg(k,j,i+1) + IBITS( flags(k,j,i), 5, 1 ) * &
-                                             ( p_mg(k,j,i) - p_mg(k,j,i+1) ) + &
-                                 p_mg(k,j,i-1) + IBITS( flags(k,j,i), 4, 1 ) * &
-                                             ( p_mg(k,j,i) - p_mg(k,j,i-1) ) ) &
-                           + rho_air_mg(k,l) * ddy2_mg(l) *                    &
-                               ( p_mg(k,j+1,i) + IBITS( flags(k,j,i), 3, 1 ) * &
-                                             ( p_mg(k,j,i) - p_mg(k,j+1,i) ) + &
-                                 p_mg(k,j-1,i) + IBITS( flags(k,j,i), 2, 1 ) * &
-                                             ( p_mg(k,j,i) - p_mg(k,j-1,i) ) ) &
-                           + f2_mg(k,l) * p_mg(k+1,j,i)                        &
-                           + f3_mg(k,l) *                                      &
-                               ( p_mg(k-1,j,i) + IBITS( flags(k,j,i), 0, 1 ) * &
-                                             ( p_mg(k,j,i) - p_mg(k-1,j,i) ) ) &
-                           - f_mg(k,j,i)               )
-                      j = jj+2
-                      p_mg(k,j,i) = 1.0_wp / f1_mg(k,l) * (                    &
-                             rho_air_mg(k,l) * ddx2_mg(l) *                    &
-                               ( p_mg(k,j,i+1) + IBITS( flags(k,j,i), 5, 1 ) * &
-                                             ( p_mg(k,j,i) - p_mg(k,j,i+1) ) + &
-                                 p_mg(k,j,i-1) + IBITS( flags(k,j,i), 4, 1 ) * &
-                                             ( p_mg(k,j,i) - p_mg(k,j,i-1) ) ) &
-                           + rho_air_mg(k,l) * ddy2_mg(l) *                    &
-                               ( p_mg(k,j+1,i) + IBITS( flags(k,j,i), 3, 1 ) * &
-                                             ( p_mg(k,j,i) - p_mg(k,j+1,i) ) + &
-                                 p_mg(k,j-1,i) + IBITS( flags(k,j,i), 2, 1 ) * &
-                                             ( p_mg(k,j,i) - p_mg(k,j-1,i) ) ) &
-                           + f2_mg(k,l) * p_mg(k+1,j,i)                        &
-                           + f3_mg(k,l) *                                      &
-                               ( p_mg(k-1,j,i) + IBITS( flags(k,j,i), 0, 1 ) * &
-                                             ( p_mg(k,j,i) - p_mg(k-1,j,i) ) ) &
-                           - f_mg(k,j,i)               )
-                   ENDDO
-
-                   i  = ic+1
-                   jj = jc+2-color
-                   DO  k = nzb+2, nzt_mg(l), 2
-                      j =jj
-                      p_mg(k,j,i) = 1.0_wp / f1_mg(k,l) * (                    &
-                             rho_air_mg(k,l) * ddx2_mg(l) *                    &
-                               ( p_mg(k,j,i+1) + IBITS( flags(k,j,i), 5, 1 ) * &
-                                             ( p_mg(k,j,i) - p_mg(k,j,i+1) ) + &
-                                 p_mg(k,j,i-1) + IBITS( flags(k,j,i), 4, 1 ) * &
-                                             ( p_mg(k,j,i) - p_mg(k,j,i-1) ) ) &
-                           + rho_air_mg(k,l) * ddy2_mg(l) *                    &
-                               ( p_mg(k,j+1,i) + IBITS( flags(k,j,i), 3, 1 ) * &
-                                             ( p_mg(k,j,i) - p_mg(k,j+1,i) ) + &
-                                 p_mg(k,j-1,i) + IBITS( flags(k,j,i), 2, 1 ) * &
-                                             ( p_mg(k,j,i) - p_mg(k,j-1,i) ) ) &
-                           + f2_mg(k,l) * p_mg(k+1,j,i)                        &
-                           + f3_mg(k,l) *                                      &
-                               ( p_mg(k-1,j,i) + IBITS( flags(k,j,i), 0, 1 ) * &
-                                             ( p_mg(k,j,i) - p_mg(k-1,j,i) ) ) &
-                           - f_mg(k,j,i)               )
-                      j = jj+2
-                      p_mg(k,j,i) = 1.0_wp / f1_mg(k,l) * (                    &
-                             rho_air_mg(k,l) * ddx2_mg(l) *                    &
-                               ( p_mg(k,j,i+1) + IBITS( flags(k,j,i), 5, 1 ) * &
-                                             ( p_mg(k,j,i) - p_mg(k,j,i+1) ) + &
-                                 p_mg(k,j,i-1) + IBITS( flags(k,j,i), 4, 1 ) * &
-                                             ( p_mg(k,j,i) - p_mg(k,j,i-1) ) ) &
-                           + rho_air_mg(k,l) * ddy2_mg(l) *                    &
-                               ( p_mg(k,j+1,i) + IBITS( flags(k,j,i), 3, 1 ) * &
-                                             ( p_mg(k,j,i) - p_mg(k,j+1,i) ) + &
-                                 p_mg(k,j-1,i) + IBITS( flags(k,j,i), 2, 1 ) * &
-                                             ( p_mg(k,j,i) - p_mg(k,j-1,i) ) ) &
-                           + f2_mg(k,l) * p_mg(k+1,j,i)                        &
-                           + f3_mg(k,l) *                                      &
-                               ( p_mg(k-1,j,i) + IBITS( flags(k,j,i), 0, 1 ) * &
-                                             ( p_mg(k,j,i) - p_mg(k-1,j,i) ) ) &
-                           - f_mg(k,j,i)               )
-                   ENDDO
-
-                ENDDO
-             ENDDO
-             CALL cpu_log( log_point_s(38), 'redblack_unroll_noopt', 'stop' )
-
-          ENDIF
-
-!
-!--       Horizontal boundary conditions
-          CALL exchange_horiz( p_mg, 1 )
-
-          IF ( .NOT. bc_lr_cyc )  THEN
-             IF ( inflow_l .OR. outflow_l .OR. nest_bound_l )  THEN
-                p_mg(:,:,nxl_mg(l)-1) = p_mg(:,:,nxl_mg(l))
-             ENDIF
-             IF ( inflow_r .OR. outflow_r .OR. nest_bound_r )  THEN
-                p_mg(:,:,nxr_mg(l)+1) = p_mg(:,:,nxr_mg(l))
-             ENDIF
-          ENDIF
-
-          IF ( .NOT. bc_ns_cyc )  THEN
-             IF ( inflow_n .OR. outflow_n .OR. nest_bound_n )  THEN
-                p_mg(:,nyn_mg(l)+1,:) = p_mg(:,nyn_mg(l),:)
-             ENDIF
-             IF ( inflow_s .OR. outflow_s .OR. nest_bound_s )  THEN
-                p_mg(:,nys_mg(l)-1,:) = p_mg(:,nys_mg(l),:)
-             ENDIF
-          ENDIF
-
-!
-!--       Bottom and top boundary conditions
-          IF ( ibc_p_b == 1 )  THEN
-             p_mg(nzb,:,: ) = p_mg(nzb+1,:,:)
-          ELSE
-             p_mg(nzb,:,: ) = 0.0_wp
-          ENDIF
-
-          IF ( ibc_p_t == 1 )  THEN
-             p_mg(nzt_mg(l)+1,:,: ) = p_mg(nzt_mg(l),:,:)
-          ELSE
-             p_mg(nzt_mg(l)+1,:,: ) = 0.0_wp
-          ENDIF
-
-       ENDDO
-
-    ENDDO
-
-!
-!-- Set pressure within topography and at the topography surfaces
-!$OMP PARALLEL PRIVATE (i,j,k,wall_left,wall_north,wall_right,wall_south,wall_top,wall_total)
-!$OMP DO
-    DO  i = nxl_mg(l), nxr_mg(l)
-       DO  j = nys_mg(l), nyn_mg(l) 
-          DO  k = nzb, nzt_mg(l)
-!
-!--          First, set pressure inside topography to zero
-             p_mg(k,j,i) = p_mg(k,j,i) * ( 1.0_wp - IBITS( flags(k,j,i), 6, 1 ) )
-!
-!--          Second, determine if the gridpoint inside topography is adjacent
-!--          to a wall and set its value to a value given by the average of
-!--          those values obtained from Neumann boundary condition
-             wall_left  = IBITS( flags(k,j,i-1), 5, 1 )
-             wall_right = IBITS( flags(k,j,i+1), 4, 1 )
-             wall_south = IBITS( flags(k,j-1,i), 3, 1 )
-             wall_north = IBITS( flags(k,j+1,i), 2, 1 )
-             wall_top   = IBITS( flags(k+1,j,i), 0, 1 )
-             wall_total = wall_left + wall_right + wall_south + wall_north + &
-                          wall_top
-
-             IF ( wall_total > 0.0_wp )  THEN
-                p_mg(k,j,i) = 1.0_wp / wall_total *                 &
-                                     ( wall_left  * p_mg(k,j,i-1) + &
-                                       wall_right * p_mg(k,j,i+1) + &
-                                       wall_south * p_mg(k,j-1,i) + &
-                                       wall_north * p_mg(k,j+1,i) + &
-                                       wall_top   * p_mg(k+1,j,i) )
-             ENDIF
-          ENDDO
-       ENDDO
-    ENDDO
-!$OMP END PARALLEL
-
-!
-!-- One more time horizontal boundary conditions
-    CALL exchange_horiz( p_mg, 1)
-
-
- END SUBROUTINE redblack_noopt
-
-
-
-!------------------------------------------------------------------------------!
-! Description:
-! ------------
-!> Gather subdomain data from all PEs.
-!------------------------------------------------------------------------------!
- SUBROUTINE mg_gather_noopt( f2, f2_sub )
-
-    USE control_parameters,                                                    &
-        ONLY:  grid_level
-
-    USE cpulog,                                                                &
-        ONLY:  cpu_log, log_point_s
-
-    USE indices,                                                               &
-        ONLY:  mg_loc_ind, nxl_mg, nxr_mg, nys_mg, nyn_mg, nzb, nzt_mg
-
-    USE kinds
-
-    USE pegrid
-
-    IMPLICIT NONE
-
-    INTEGER(iwp) ::  i       !<
-    INTEGER(iwp) ::  il      !<
-    INTEGER(iwp) ::  ir      !<
-    INTEGER(iwp) ::  j       !<
-    INTEGER(iwp) ::  jn      !<
-    INTEGER(iwp) ::  js      !<
-    INTEGER(iwp) ::  k       !<
-    INTEGER(iwp) ::  nwords  !<
-
-    REAL(wp), DIMENSION(nzb:nzt_mg(grid_level)+1,                              &
-                    nys_mg(grid_level)-1:nyn_mg(grid_level)+1,                 &
-                    nxl_mg(grid_level)-1:nxr_mg(grid_level)+1) ::  f2    !<
-    REAL(wp), DIMENSION(nzb:nzt_mg(grid_level)+1,                              &
-                    nys_mg(grid_level)-1:nyn_mg(grid_level)+1,                 &
-                    nxl_mg(grid_level)-1:nxr_mg(grid_level)+1) ::  f2_l  !<
-
-    REAL(wp), DIMENSION(nzb:mg_loc_ind(5,myid)+1,                              &
-                        mg_loc_ind(3,myid)-1:mg_loc_ind(4,myid)+1,             &
-                        mg_loc_ind(1,myid)-1:mg_loc_ind(2,myid)+1) ::  f2_sub  !<
-
-
-#if defined( __parallel )
-    CALL cpu_log( log_point_s(34), 'mg_gather_noopt', 'start' )
-
-    f2_l = 0.0_wp
-
-!
-!-- Store the local subdomain array on the total array
-    js = mg_loc_ind(3,myid)
-    IF ( south_border_pe )  js = js - 1
-    jn = mg_loc_ind(4,myid)
-    IF ( north_border_pe )  jn = jn + 1
-    il = mg_loc_ind(1,myid)
-    IF ( left_border_pe )   il = il - 1
-    ir = mg_loc_ind(2,myid)
-    IF ( right_border_pe )  ir = ir + 1
-    DO  i = il, ir
-       DO  j = js, jn
-          DO  k = nzb, nzt_mg(grid_level)+1
-             f2_l(k,j,i) = f2_sub(k,j,i)
-          ENDDO
-       ENDDO
-    ENDDO
-
-!
-!-- Find out the number of array elements of the total array
-    nwords = SIZE( f2 )
-
-!
-!-- Gather subdomain data from all PEs
-    IF ( collective_wait )  CALL MPI_BARRIER( comm2d, ierr )
-    CALL MPI_ALLREDUCE( f2_l(nzb,nys_mg(grid_level)-1,nxl_mg(grid_level)-1), &
-                        f2(nzb,nys_mg(grid_level)-1,nxl_mg(grid_level)-1),   &
-                        nwords, MPI_REAL, MPI_SUM, comm2d, ierr )
-
-    CALL cpu_log( log_point_s(34), 'mg_gather_noopt', 'stop' )
-#endif
-    
- END SUBROUTINE mg_gather_noopt
-
-
-
-!------------------------------------------------------------------------------!
-! Description:
-! ------------
-!> @todo It may be possible to improve the speed of this routine by using
-!>       non-blocking communication
-!------------------------------------------------------------------------------!
- SUBROUTINE mg_scatter_noopt( p2, p2_sub )
-
-    USE control_parameters,                                                    &
-        ONLY:  grid_level
-
-    USE cpulog,                                                                &
-        ONLY:  cpu_log, log_point_s
-
-    USE indices,                                                               &
-        ONLY:  mg_loc_ind, nxl_mg, nxr_mg, nys_mg, nyn_mg, nzb, nzt_mg
-
-    USE kinds
-
-    USE pegrid
-
-    IMPLICIT NONE
-
-    INTEGER(iwp) ::  nwords  !<
-
-    REAL(wp), DIMENSION(nzb:nzt_mg(grid_level-1)+1,                            &
-                        nys_mg(grid_level-1)-1:nyn_mg(grid_level-1)+1,         &
-                        nxl_mg(grid_level-1)-1:nxr_mg(grid_level-1)+1) ::  p2  !<
-
-    REAL(wp), DIMENSION(nzb:mg_loc_ind(5,myid)+1,                              &
-                        mg_loc_ind(3,myid)-1:mg_loc_ind(4,myid)+1,             &
-                        mg_loc_ind(1,myid)-1:mg_loc_ind(2,myid)+1) ::  p2_sub  !<
-
-!
-!-- Find out the number of array elements of the subdomain array
-    nwords = SIZE( p2_sub )
-
-#if defined( __parallel )
-    CALL cpu_log( log_point_s(35), 'mg_scatter_noopt', 'start' )
-
-    p2_sub = p2(:,mg_loc_ind(3,myid)-1:mg_loc_ind(4,myid)+1, &
-                  mg_loc_ind(1,myid)-1:mg_loc_ind(2,myid)+1)
-
-    CALL cpu_log( log_point_s(35), 'mg_scatter_noopt', 'stop' )
-#endif
-    
- END SUBROUTINE mg_scatter_noopt
-
-
-!------------------------------------------------------------------------------!
-! Description:
-! ------------
-!> This is where the multigrid technique takes place. V- and W- Cycle are
-!> implemented and steered by the parameter "gamma". Parameter "nue" determines
-!> the convergence of the multigrid iterative solution. There are nue times
-!> RB-GS iterations. It should be set to "1" or "2", considering the time effort
-!> one would like to invest. Last choice shows a very good converging factor,
-!> but leads to an increase in computing time.
-!------------------------------------------------------------------------------!
- RECURSIVE SUBROUTINE next_mg_level_noopt( f_mg, p_mg, p3, r )
-
-    USE control_parameters,                                                    &
-        ONLY:  bc_lr_dirrad, bc_lr_raddir, bc_ns_dirrad, bc_ns_raddir,         &
-               gamma_mg, grid_level, grid_level_count, ibc_p_b, ibc_p_t,       &
-               inflow_l, inflow_n, inflow_r, inflow_s, maximum_grid_level,     &
-               mg_switch_to_pe0_level, mg_switch_to_pe0, nest_domain,          &
-               nest_bound_l, nest_bound_n, nest_bound_r, nest_bound_s, ngsrb,  &
-               outflow_l, outflow_n, outflow_r, outflow_s
-
-
-    USE indices,                                                               &
-        ONLY:  mg_loc_ind, nxl, nxl_mg, nxr, nxr_mg, nys, nys_mg, nyn,         &
-               nyn_mg, nzb, nzt, nzt_mg
-
-    USE kinds
-
-    USE pegrid
-
-    IMPLICIT NONE
-
-    INTEGER(iwp) ::  i            !<
-    INTEGER(iwp) ::  j            !<
-    INTEGER(iwp) ::  k            !<
-    INTEGER(iwp) ::  nxl_mg_save  !<
-    INTEGER(iwp) ::  nxr_mg_save  !<
-    INTEGER(iwp) ::  nyn_mg_save  !<
-    INTEGER(iwp) ::  nys_mg_save  !<
-    INTEGER(iwp) ::  nzt_mg_save  !<
-
-    REAL(wp), DIMENSION(nzb:nzt_mg(grid_level)+1,                              &
-                        nys_mg(grid_level)-1:nyn_mg(grid_level)+1,             &
-                        nxl_mg(grid_level)-1:nxr_mg(grid_level)+1) :: f_mg  !<
-    REAL(wp), DIMENSION(nzb:nzt_mg(grid_level)+1,                              &
-                        nys_mg(grid_level)-1:nyn_mg(grid_level)+1,             &
-                        nxl_mg(grid_level)-1:nxr_mg(grid_level)+1) :: p_mg  !<
-    REAL(wp), DIMENSION(nzb:nzt_mg(grid_level)+1,                              &
-                        nys_mg(grid_level)-1:nyn_mg(grid_level)+1,             &
-                        nxl_mg(grid_level)-1:nxr_mg(grid_level)+1) :: p3    !<
-    REAL(wp), DIMENSION(nzb:nzt_mg(grid_level)+1,                              &
-                        nys_mg(grid_level)-1:nyn_mg(grid_level)+1,             &
-                        nxl_mg(grid_level)-1:nxr_mg(grid_level)+1) :: r     !<
-
-    REAL(wp), DIMENSION(nzb:nzt_mg(grid_level-1)+1,                            &
-                        nys_mg(grid_level-1)-1:nyn_mg(grid_level-1)+1,         &
-                        nxl_mg(grid_level-1)-1:nxr_mg(grid_level-1)+1) ::  f2  !<
-    REAL(wp), DIMENSION(nzb:nzt_mg(grid_level-1)+1,                            &
-                        nys_mg(grid_level-1)-1:nyn_mg(grid_level-1)+1,         &
-                        nxl_mg(grid_level-1)-1:nxr_mg(grid_level-1)+1) ::  p2  !<
-
-    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  f2_sub  !<
-    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  p2_sub  !<
-
-!
-!-- Restriction to the coarsest grid
- 10 IF ( grid_level == 1 )  THEN
-
-!
-!--    Solution on the coarsest grid. Double the number of Gauss-Seidel
-!--    iterations in order to get a more accurate solution.
-       ngsrb = 2 * ngsrb
-
-       CALL redblack_noopt( f_mg, p_mg )
-
-       ngsrb = ngsrb / 2
-
-
-    ELSEIF ( grid_level /= 1 )  THEN
-
-       grid_level_count(grid_level) = grid_level_count(grid_level) + 1
-
-!
-!--    Solution on the actual grid level
-       CALL redblack_noopt( f_mg, p_mg )
-
-!
-!--    Determination of the actual residual
-       CALL resid_noopt( f_mg, p_mg, r )
-
-!
-!--    Restriction of the residual (finer grid values!) to the next coarser
-!--    grid. Therefore, the grid level has to be decremented now. nxl..nzt have
-!--    to be set to the coarse grid values, because these variables are needed
-!--    for the exchange of ghost points in routine exchange_horiz
-       grid_level = grid_level - 1
-       nxl = nxl_mg(grid_level)
-       nys = nys_mg(grid_level)
-       nxr = nxr_mg(grid_level)
-       nyn = nyn_mg(grid_level)
-       nzt = nzt_mg(grid_level)
-
-       IF ( grid_level == mg_switch_to_pe0_level )  THEN
-
-!
-!--       From this level on, calculations are done on PE0 only.
-!--       First, carry out restriction on the subdomain.
-!--       Therefore, indices of the level have to be changed to subdomain values
-!--       in between (otherwise, the restrict routine would expect
-!--       the gathered array)
-
-          nxl_mg_save = nxl_mg(grid_level)
-          nxr_mg_save = nxr_mg(grid_level)
-          nys_mg_save = nys_mg(grid_level)
-          nyn_mg_save = nyn_mg(grid_level)
-          nzt_mg_save = nzt_mg(grid_level)
-          nxl_mg(grid_level) = mg_loc_ind(1,myid)
-          nxr_mg(grid_level) = mg_loc_ind(2,myid)
-          nys_mg(grid_level) = mg_loc_ind(3,myid)
-          nyn_mg(grid_level) = mg_loc_ind(4,myid)
-          nzt_mg(grid_level) = mg_loc_ind(5,myid)
-          nxl = mg_loc_ind(1,myid)
-          nxr = mg_loc_ind(2,myid)
-          nys = mg_loc_ind(3,myid)
-          nyn = mg_loc_ind(4,myid)
-          nzt = mg_loc_ind(5,myid)
-
-          ALLOCATE( f2_sub(nzb:nzt_mg(grid_level)+1,                    &
-                           nys_mg(grid_level)-1:nyn_mg(grid_level)+1,   &
-                           nxl_mg(grid_level)-1:nxr_mg(grid_level)+1) )
-
-          CALL restrict_noopt( f2_sub, r )
-
-!
-!--       Restore the correct indices of this level
-          nxl_mg(grid_level) = nxl_mg_save
-          nxr_mg(grid_level) = nxr_mg_save
-          nys_mg(grid_level) = nys_mg_save
-          nyn_mg(grid_level) = nyn_mg_save
-          nzt_mg(grid_level) = nzt_mg_save
-          nxl = nxl_mg(grid_level)
-          nxr = nxr_mg(grid_level)
-          nys = nys_mg(grid_level)
-          nyn = nyn_mg(grid_level)
-          nzt = nzt_mg(grid_level)
-!
-!--       Gather all arrays from the subdomains on PE0
-          CALL mg_gather_noopt( f2, f2_sub )
-
-!
-!--       Set switch for routine exchange_horiz, that no ghostpoint exchange
-!--       has to be carried out from now on
-          mg_switch_to_pe0 = .TRUE.
-
-!
-!--       In case of non-cyclic lateral boundary conditions, both in- and
-!--       outflow conditions have to be used on all PEs after the switch,
-!--       because then they have the total domain.
-          IF ( bc_lr_dirrad )  THEN
-             inflow_l  = .TRUE.
-             inflow_r  = .FALSE.
-             outflow_l = .FALSE.
-             outflow_r = .TRUE.
-          ELSEIF ( bc_lr_raddir )  THEN
-             inflow_l  = .FALSE.
-             inflow_r  = .TRUE.
-             outflow_l = .TRUE.
-             outflow_r = .FALSE.
-          ELSEIF ( nest_domain )  THEN
-             nest_bound_l = .TRUE.
-             nest_bound_r = .TRUE.
-          ENDIF
-
-          IF ( bc_ns_dirrad )  THEN
-             inflow_n  = .TRUE.
-             inflow_s  = .FALSE.
-             outflow_n = .FALSE.
-             outflow_s = .TRUE.
-          ELSEIF ( bc_ns_raddir )  THEN
-             inflow_n  = .FALSE.
-             inflow_s  = .TRUE.
-             outflow_n = .TRUE.
-             outflow_s = .FALSE.
-          ELSEIF ( nest_domain )  THEN
-             nest_bound_s = .TRUE.
-             nest_bound_n = .TRUE.
-          ENDIF
-
-          DEALLOCATE( f2_sub )
-
-       ELSE
-
-          CALL restrict_noopt( f2, r )
-
-       ENDIF
-
-       p2 = 0.0_wp
-
-!
-!--    Repeat the same procedure till the coarsest grid is reached
-       CALL next_mg_level_noopt( f2, p2, p3, r )
-
-    ENDIF
-
-!
-!-- Now follows the prolongation
-    IF ( grid_level >= 2 )  THEN
-
-!
-!--    Prolongation of the new residual. The values are transferred 
-!--    from the coarse to the next finer grid.
-       IF ( grid_level == mg_switch_to_pe0_level+1 )  THEN
-
-#if defined( __parallel )
-!
-!--       At this level, the new residual first has to be scattered from
-!--       PE0 to the other PEs
-          ALLOCATE( p2_sub(nzb:mg_loc_ind(5,myid)+1,             &
-                    mg_loc_ind(3,myid)-1:mg_loc_ind(4,myid)+1,   &
-                    mg_loc_ind(1,myid)-1:mg_loc_ind(2,myid)+1) )
-
-          CALL mg_scatter_noopt( p2, p2_sub )
-
-!
-!--       Therefore, indices of the previous level have to be changed to
-!--       subdomain values in between (otherwise, the prolong routine would
-!--       expect the gathered array)
-          nxl_mg_save = nxl_mg(grid_level-1)
-          nxr_mg_save = nxr_mg(grid_level-1)
-          nys_mg_save = nys_mg(grid_level-1)
-          nyn_mg_save = nyn_mg(grid_level-1)
-          nzt_mg_save = nzt_mg(grid_level-1)
-          nxl_mg(grid_level-1) = mg_loc_ind(1,myid)
-          nxr_mg(grid_level-1) = mg_loc_ind(2,myid)
-          nys_mg(grid_level-1) = mg_loc_ind(3,myid)
-          nyn_mg(grid_level-1) = mg_loc_ind(4,myid)
-          nzt_mg(grid_level-1) = mg_loc_ind(5,myid)
-
-!
-!--       Set switch for routine exchange_horiz, that ghostpoint exchange
-!--       has to be carried again out from now on
-          mg_switch_to_pe0 = .FALSE.
-
-!
-!--       For non-cyclic lateral boundary conditions and in case of nesting, 
-!--       restore the in-/outflow conditions. 
-          inflow_l  = .FALSE.;  inflow_r  = .FALSE.
-          inflow_n  = .FALSE.;  inflow_s  = .FALSE.
-          outflow_l = .FALSE.;  outflow_r = .FALSE.
-          outflow_n = .FALSE.;  outflow_s = .FALSE.
-!
-!--       In case of nesting, restore lateral boundary conditions
-          IF ( nest_domain )  THEN
-             nest_bound_l = .FALSE.
-             nest_bound_r = .FALSE.
-             nest_bound_s = .FALSE.
-             nest_bound_n = .FALSE.      
-          ENDIF
-
-          IF ( pleft == MPI_PROC_NULL )  THEN
-             IF ( bc_lr_dirrad )  THEN
-                inflow_l  = .TRUE.
-             ELSEIF ( bc_lr_raddir )  THEN
-                outflow_l = .TRUE.
-             ELSEIF ( nest_domain )  THEN
-                nest_bound_l = .TRUE.
-             ENDIF
-          ENDIF
-
-          IF ( pright == MPI_PROC_NULL )  THEN
-             IF ( bc_lr_dirrad )  THEN
-                outflow_r = .TRUE.
-             ELSEIF ( bc_lr_raddir )  THEN
-                inflow_r  = .TRUE.
-             ELSEIF ( nest_domain )  THEN
-                nest_bound_r = .TRUE.
-             ENDIF
-          ENDIF
-
-          IF ( psouth == MPI_PROC_NULL )  THEN
-             IF ( bc_ns_dirrad )  THEN
-                outflow_s = .TRUE.
-             ELSEIF ( bc_ns_raddir )  THEN
-                inflow_s  = .TRUE.
-             ELSEIF ( nest_domain )  THEN
-                nest_bound_s = .TRUE.
-             ENDIF
-          ENDIF
-
-          IF ( pnorth == MPI_PROC_NULL )  THEN
-             IF ( bc_ns_dirrad )  THEN
-                inflow_n  = .TRUE.
-             ELSEIF ( bc_ns_raddir )  THEN
-                outflow_n = .TRUE.
-             ELSEIF ( nest_domain )  THEN
-                nest_bound_n = .TRUE.
-             ENDIF
-          ENDIF
-
-          CALL prolong_noopt( p2_sub, p3 )
-
-!
-!--       Restore the correct indices of the previous level
-          nxl_mg(grid_level-1) = nxl_mg_save
-          nxr_mg(grid_level-1) = nxr_mg_save
-          nys_mg(grid_level-1) = nys_mg_save
-          nyn_mg(grid_level-1) = nyn_mg_save
-          nzt_mg(grid_level-1) = nzt_mg_save
-
-          DEALLOCATE( p2_sub )
-#endif
-
-       ELSE
-
-          CALL prolong_noopt( p2, p3 )
-
-       ENDIF
-
-!
-!--    Computation of the new pressure correction. Therefore, 
-!--    values from prior grids are added up automatically stage by stage.
-       DO  i = nxl_mg(grid_level)-1, nxr_mg(grid_level)+1
-          DO  j = nys_mg(grid_level)-1, nyn_mg(grid_level)+1
-             DO  k = nzb, nzt_mg(grid_level)+1 
-                p_mg(k,j,i) = p_mg(k,j,i) + p3(k,j,i)
-             ENDDO
-          ENDDO
-       ENDDO
-
-!
-!--    Relaxation of the new solution
-       CALL redblack_noopt( f_mg, p_mg )
-
-    ENDIF
-
-
-!
-!-- The following few lines serve the steering of the multigrid scheme 
-    IF ( grid_level == maximum_grid_level )  THEN
-
-       GOTO 20
-
-    ELSEIF ( grid_level /= maximum_grid_level  .AND.  grid_level /= 1  .AND. &
-             grid_level_count(grid_level) /= gamma_mg )  THEN
-
-       GOTO 10
-
-    ENDIF
-
-!
-!-- Reset counter for the next call of poismg_noopt
-    grid_level_count(grid_level) = 0
-
-!
-!-- Continue with the next finer level. nxl..nzt have to be
-!-- set to the finer grid values, because these variables are needed for the
-!-- exchange of ghost points in routine exchange_horiz
-    grid_level = grid_level + 1
-    nxl = nxl_mg(grid_level)
-    nxr = nxr_mg(grid_level)
-    nys = nys_mg(grid_level)
-    nyn = nyn_mg(grid_level)
-    nzt = nzt_mg(grid_level)
-
- 20 CONTINUE
-
- END SUBROUTINE next_mg_level_noopt
Index: palm/trunk/SOURCE/poismg_noopt_mod.f90
===================================================================
--- palm/trunk/SOURCE/poismg_noopt_mod.f90	(revision 2696)
+++ palm/trunk/SOURCE/poismg_noopt_mod.f90	(revision 2696)
@@ -0,0 +1,1956 @@
+!> @file poismg_noopt_mod.f90
+!------------------------------------------------------------------------------!
+! This file is part of the PALM model system.
+!
+! PALM is free software: you can redistribute it and/or modify it under the
+! terms of the GNU General Public License as published by the Free Software
+! Foundation, either version 3 of the License, or (at your option) any later
+! version.
+!
+! PALM is distributed in the hope that it will be useful, but WITHOUT ANY
+! WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+! A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+!
+! You should have received a copy of the GNU General Public License along with
+! PALM. If not, see <http://www.gnu.org/licenses/>.
+!
+! Copyright 1997-2017 Leibniz Universitaet Hannover
+!------------------------------------------------------------------------------!
+!
+! Current revisions:
+! -----------------
+! 
+! 
+! Former revisions:
+! -----------------
+! $Id$
+! - Rename file into poismg_noopt_mod
+! - Modularize poismg_noopt - initialization of masking flags moved from 
+!   init_grid
+! - Masking of downward-facing walls walls 
+! - Large-scale forcing implemented (MS) 
+! 
+! 2591 2017-10-30 08:07:25Z maronga
+! 
+! 2586 2017-10-27 13:03:50Z kanani
+!
+! 2232 2017-05-30 17:47:52Z suehring
+! Bugfixes OpenMP
+! 
+! 2037 2016-10-26 11:15:40Z knoop
+! Anelastic approximation implemented
+! 
+! 2021 2016-10-07 14:08:57Z suehring
+! Bugfix: restore nest_bound_(l/r/s/n) in case of mg_switch_to_pe0
+! 
+! 2000 2016-08-20 18:09:15Z knoop
+! Forced header and separation lines into 80 columns
+! 
+! 1934 2016-06-13 09:46:57Z hellstea
+! Rename subroutines and cpu-measure log points to indicate _noopt version
+! 
+! 1762 2016-02-25 12:31:13Z hellstea
+! Introduction of nested domain feature
+!
+! 1682 2015-10-07 23:56:08Z knoop
+! Code annotations made doxygen readable 
+! 
+! 1353 2014-04-08 15:21:23Z heinze
+! REAL constants provided with KIND-attribute
+!
+! 1322 2014-03-20 16:38:49Z raasch
+! REAL constants defined as wp-kind
+!
+! 1320 2014-03-20 08:40:49Z raasch
+! ONLY-attribute added to USE-statements,
+! kind-parameters added to all INTEGER and REAL declaration statements,
+! kinds are defined in new module kinds,
+! old module precision_kind is removed,
+! revision history before 2012 removed,
+! comment fields (!:) to be used for variable explanations added to
+! all variable declaration statements
+!
+! 1318 2014-03-17 13:35:16Z raasch
+! module interfaces removed
+!
+! 1159 2013-05-21 11:58:22Z fricke
+! bc_lr/ns_dirneu/neudir removed
+!
+! 1092 2013-02-02 11:24:22Z raasch
+! unused variables removed
+!
+! 1056 2012-11-16 15:28:04Z raasch
+! Bugfix: all ghost points have to be used for allocating p3
+! arrays p2, f2, and f2_l changed from allocatable to automatic
+!
+! 1036 2012-10-22 13:43:42Z raasch
+! code put under GPL (PALM 3.9)
+!
+! 996 2012-09-07 10:41:47Z raasch
+! little reformatting
+!
+! 978 2012-08-09 08:28:32Z fricke
+! bc_lr/ns_dirneu/neudir added
+!
+! 880 2012-04-13 06:28:59Z raasch
+! Bugfix: preprocessor statements for parallel execution added
+!
+! 778 2011-11-07 14:18:25Z fricke
+! Allocation of p3 changes when multigrid is used and the collected field on PE0
+! has more grid points than the subdomain of an PE.
+!
+! 707 2011-03-29 11:39:40Z raasch
+! p_loc is used instead of p in the main routine (poismg).
+! On coarse grid levels, gathered data are identically processed on all PEs
+! (before, on PE0 only), so that the subsequent scattering of data is not
+! neccessary any more.
+! bc_lr/ns replaced by bc_lr/ns_cyc/dirrad/raddir
+! Bugfix: bottom (nzb) and top (nzt+1) boundary conditions set in routines
+! resid and restrict. They were missed before which may have led to
+! unpredictable results.
+!
+! 667 2010-12-23 12:06:00Z suehring/gryschka
+! Calls of exchange_horiz are modified.
+!
+! 622 2010-12-10 08:08:13Z raasch
+! optional barriers included in order to speed up collective operations
+!
+! 257 2009-03-11 15:17:42Z heinze
+! Output of messages replaced by message handling routine.
+!
+! 181 2008-07-30 07:07:47Z raasch
+! Bugfix: grid_level+1 has to be used in restrict for flags-array
+!
+! 114 2007-10-10 00:03:15Z raasch
+! Boundary conditions at walls are implicitly set using flag arrays. Only
+! Neumann BC is allowed. Upper walls are still not realized.
+! Bottom and top BCs for array f_mg in restrict removed because boundary
+! values are not needed (right hand side of SOR iteration).
+!
+! 75 2007-03-22 09:54:05Z raasch
+! 2nd+3rd argument removed from exchange horiz
+!
+! RCS Log replace by Id keyword, revision history cleaned up
+!
+! Revision 1.6  2005/03/26 20:55:54  raasch
+! Implementation of non-cyclic (Neumann) horizontal boundary conditions,
+! routine prolong simplified (one call of exchange_horiz spared)
+!
+! Revision 1.1  2001/07/20 13:10:51  raasch
+! Initial revision
+!
+!
+! Description:
+! ------------
+!> Solves the Poisson equation for the perturbation pressure with a multigrid
+!> V- or W-Cycle scheme.
+!>
+!> This multigrid method was originally developed for PALM by Joerg Uhlenbrock,
+!> September 2000 - July 2001.
+!> 
+!> @attention Loop unrolling and cache optimization in SOR-Red/Black method
+!>            still does not give the expected speedup! 
+!>
+!> @todo Further work required.
+!> @todo Formatting adjustments required (indention after modularization) 
+!------------------------------------------------------------------------------!
+ MODULE poismg_noopt_mod
+ 
+    USE control_parameters,                                                    &
+        ONLY:  grid_level, force_bound_l, force_bound_n, force_bound_r,        &
+               force_bound_s, forcing, inflow_l, inflow_n, inflow_r, inflow_s, &
+               nest_bound_l, nest_bound_n, nest_bound_r, nest_bound_s,         &
+               outflow_l, outflow_n, outflow_r, outflow_s
+
+    USE cpulog,                                                                &
+        ONLY:  cpu_log, log_point_s
+
+    USE kinds
+
+    USE pegrid
+
+    PRIVATE
+
+    INTERFACE poismg_noopt
+       MODULE PROCEDURE poismg_noopt
+    END INTERFACE poismg_noopt
+
+    INTERFACE poismg_noopt_init
+       MODULE PROCEDURE poismg_noopt_init
+    END INTERFACE poismg_noopt_init
+
+    PUBLIC poismg_noopt, poismg_noopt_init
+
+ CONTAINS
+
+    SUBROUTINE poismg_noopt( r )
+    
+
+       USE arrays_3d,                                                          &
+           ONLY:  d, p_loc
+
+       USE control_parameters,                                                 &
+           ONLY:  gathered_size, grid_level_count,                             &
+                  maximum_grid_level, message_string, mgcycles, mg_cycles,     &
+                  mg_switch_to_pe0_level, residual_limit, subdomain_size
+
+       USE cpulog,                                                             &
+           ONLY:  cpu_log, log_point_s
+
+       USE indices,                                                            &
+           ONLY:  nxl, nxlg, nxl_mg, nxr, nxrg, nxr_mg, nys, nysg, nys_mg, nyn,&
+                  nyng, nyn_mg, nzb, nzt, nzt_mg
+
+       USE kinds
+
+       USE pegrid
+
+       IMPLICIT NONE
+
+       REAL(wp) ::  maxerror          !<
+       REAL(wp) ::  maximum_mgcycles  !<
+       REAL(wp) ::  residual_norm     !<
+
+       REAL(wp), DIMENSION(nzb:nzt+1,nys-1:nyn+1,nxl-1:nxr+1) ::  r  !<
+
+       REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  p3  !<
+
+
+       CALL cpu_log( log_point_s(29), 'poismg_noopt', 'start' )
+!
+!--    Initialize arrays and variables used in this subroutine
+
+!--    If the number of grid points of the gathered grid, which is collected
+!--    on PE0, is larger than the number of grid points of an PE, than array
+!--    p3 will be enlarged.
+       IF ( gathered_size > subdomain_size )  THEN 
+          ALLOCATE( p3(nzb:nzt_mg(mg_switch_to_pe0_level)+1,nys_mg(               &
+                       mg_switch_to_pe0_level)-1:nyn_mg(mg_switch_to_pe0_level)+1,&
+                       nxl_mg(mg_switch_to_pe0_level)-1:nxr_mg(                   &
+                       mg_switch_to_pe0_level)+1) )
+       ELSE
+          ALLOCATE ( p3(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
+       ENDIF
+
+       p3 = 0.0_wp
+    
+!
+!--    Ghost boundaries have to be added to divergence array.
+!--    Exchange routine needs to know the grid level!
+       grid_level = maximum_grid_level
+       CALL exchange_horiz( d, 1)
+       d(nzb,:,:) = d(nzb+1,:,:)
+
+!
+!--    Initiation of the multigrid scheme. Does n cycles until the 
+!--    residual is smaller than the given limit. The accuracy of the solution 
+!--    of the poisson equation will increase with the number of cycles.
+!--    If the number of cycles is preset by the user, this number will be
+!--    carried out regardless of the accuracy.
+       grid_level_count =  0
+       mgcycles         =  0
+       IF ( mg_cycles == -1 )  THEN
+          maximum_mgcycles = 0
+          residual_norm    = 1.0_wp
+       ELSE
+          maximum_mgcycles = mg_cycles
+          residual_norm    = 0.0_wp
+       ENDIF
+
+       DO WHILE ( residual_norm > residual_limit  .OR. &
+                  mgcycles < maximum_mgcycles )
+    
+          CALL next_mg_level_noopt( d, p_loc, p3, r)
+
+!
+!--       Calculate the residual if the user has not preset the number of
+!--       cycles to be performed
+          IF ( maximum_mgcycles == 0 )  THEN
+             CALL resid_noopt( d, p_loc, r )
+             maxerror = SUM( r(nzb+1:nzt,nys:nyn,nxl:nxr)**2 )
+
+#if defined( __parallel )
+             IF ( collective_wait )  CALL MPI_BARRIER( comm2d, ierr )
+                CALL MPI_ALLREDUCE( maxerror, residual_norm, 1, MPI_REAL,      &
+                                    MPI_SUM, comm2d, ierr)
+#else
+                residual_norm = maxerror
+#endif
+             residual_norm = SQRT( residual_norm )
+          ENDIF
+
+          mgcycles = mgcycles + 1
+
+!
+!--       If the user has not limited the number of cycles, stop the run in case
+!--       of insufficient convergence
+          IF ( mgcycles > 1000  .AND.  mg_cycles == -1 )  THEN
+             message_string = 'no sufficient convergence within 1000 cycles'
+             CALL message( 'poismg_noopt', 'PA0283', 1, 2, 0, 6, 0 )
+          ENDIF
+
+       ENDDO
+
+       DEALLOCATE( p3 )
+
+!
+!--    Unset the grid level. Variable is used to determine the MPI datatypes for
+!--    ghost point exchange
+       grid_level = 0 
+
+       CALL cpu_log( log_point_s(29), 'poismg_noopt', 'stop' )
+
+    END SUBROUTINE poismg_noopt
+
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Computes the residual of the perturbation pressure.
+!------------------------------------------------------------------------------!
+    SUBROUTINE resid_noopt( f_mg, p_mg, r )
+
+
+       USE arrays_3d,                                                          &
+           ONLY:  f1_mg, f2_mg, f3_mg, rho_air_mg
+
+       USE control_parameters,                                                 &
+           ONLY:  bc_lr_cyc, bc_ns_cyc, ibc_p_b, ibc_p_t
+
+       USE grid_variables,                                                     &
+           ONLY:  ddx2_mg, ddy2_mg
+
+       USE indices,                                                            &
+           ONLY:  flags, wall_flags_1, wall_flags_2, wall_flags_3, wall_flags_4,&
+                  wall_flags_5, wall_flags_6, wall_flags_7, wall_flags_8,      &
+                  wall_flags_9, wall_flags_10, nxl_mg, nxr_mg, nys_mg, nyn_mg, &
+                  nzb, nzt_mg
+
+       USE kinds
+
+       IMPLICIT NONE
+
+       INTEGER(iwp) ::  i
+       INTEGER(iwp) ::  j
+       INTEGER(iwp) ::  k
+       INTEGER(iwp) ::  l
+
+       REAL(wp), DIMENSION(nzb:nzt_mg(grid_level)+1,                           &
+                       nys_mg(grid_level)-1:nyn_mg(grid_level)+1,              &
+                       nxl_mg(grid_level)-1:nxr_mg(grid_level)+1) ::  f_mg  !<
+       REAL(wp), DIMENSION(nzb:nzt_mg(grid_level)+1,                           &
+                       nys_mg(grid_level)-1:nyn_mg(grid_level)+1,              &
+                       nxl_mg(grid_level)-1:nxr_mg(grid_level)+1) ::  p_mg  !<
+       REAL(wp), DIMENSION(nzb:nzt_mg(grid_level)+1,                           &
+                       nys_mg(grid_level)-1:nyn_mg(grid_level)+1,              &
+                       nxl_mg(grid_level)-1:nxr_mg(grid_level)+1) ::  r     !<
+
+!
+!--    Calculate the residual
+       l = grid_level
+
+!
+!--    Choose flag array of this level
+       SELECT CASE ( l )
+          CASE ( 1 )
+             flags => wall_flags_1
+          CASE ( 2 )
+             flags => wall_flags_2
+          CASE ( 3 )
+             flags => wall_flags_3
+          CASE ( 4 )
+             flags => wall_flags_4
+          CASE ( 5 )
+             flags => wall_flags_5
+          CASE ( 6 )
+             flags => wall_flags_6
+          CASE ( 7 )
+             flags => wall_flags_7
+          CASE ( 8 )
+             flags => wall_flags_8
+          CASE ( 9 )
+             flags => wall_flags_9
+          CASE ( 10 )
+             flags => wall_flags_10
+       END SELECT
+
+!$OMP PARALLEL PRIVATE (i,j,k)
+!$OMP DO
+       DO  i = nxl_mg(l), nxr_mg(l)
+          DO  j = nys_mg(l), nyn_mg(l) 
+             DO  k = nzb+1, nzt_mg(l)
+                r(k,j,i) = f_mg(k,j,i)                                         &
+                           - rho_air_mg(k,l) * ddx2_mg(l) *                    &
+                               ( p_mg(k,j,i+1) + IBITS( flags(k,j,i), 5, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k,j,i+1) ) + &
+                                 p_mg(k,j,i-1) + IBITS( flags(k,j,i), 4, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k,j,i-1) ) ) &
+                           - rho_air_mg(k,l) * ddy2_mg(l) *                    &
+                               ( p_mg(k,j+1,i) + IBITS( flags(k,j,i), 3, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k,j+1,i) ) + &
+                                 p_mg(k,j-1,i) + IBITS( flags(k,j,i), 2, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k,j-1,i) ) ) &
+                           - f2_mg(k,l) *                                      &
+                               ( p_mg(k+1,j,i) + IBITS( flags(k,j,i), 0, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k+1,j,i) ) ) &
+                           - f3_mg(k,l) *                                      &
+                               ( p_mg(k-1,j,i) + IBITS( flags(k,j,i), 0, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k-1,j,i) ) ) &
+                           + f1_mg(k,l) * p_mg(k,j,i)
+!
+!--             Residual within topography should be zero
+                r(k,j,i) = r(k,j,i) * ( 1.0_wp - IBITS( flags(k,j,i), 6, 1 ) )
+             ENDDO
+          ENDDO
+       ENDDO
+!$OMP END PARALLEL
+
+!
+!--    Horizontal boundary conditions
+       CALL exchange_horiz( r, 1)
+
+       IF ( .NOT. bc_lr_cyc )  THEN
+          IF ( inflow_l .OR. outflow_l .OR. nest_bound_l .OR. force_bound_l )  THEN
+             r(:,:,nxl_mg(l)-1) = r(:,:,nxl_mg(l))
+          ENDIF
+          IF ( inflow_r .OR. outflow_r .OR. nest_bound_r .OR. force_bound_r )  THEN
+             r(:,:,nxr_mg(l)+1) = r(:,:,nxr_mg(l))
+          ENDIF
+       ENDIF
+
+       IF ( .NOT. bc_ns_cyc )  THEN
+          IF ( inflow_n .OR. outflow_n .OR. nest_bound_n .OR. force_bound_n )  THEN
+             r(:,nyn_mg(l)+1,:) = r(:,nyn_mg(l),:)
+          ENDIF
+          IF ( inflow_s .OR. outflow_s .OR. nest_bound_s .OR. force_bound_s )  THEN
+             r(:,nys_mg(l)-1,:) = r(:,nys_mg(l),:)
+          ENDIF
+       ENDIF
+
+!
+!--    Boundary conditions at bottom and top of the domain.
+!--    These points are not handled by the above loop. Points may be within
+!--    buildings, but that doesn't matter. 
+       IF ( ibc_p_b == 1 )  THEN
+          r(nzb,:,: ) = r(nzb+1,:,:)
+       ELSE
+          r(nzb,:,: ) = 0.0_wp
+       ENDIF
+
+       IF ( ibc_p_t == 1 )  THEN
+          r(nzt_mg(l)+1,:,: ) = r(nzt_mg(l),:,:)
+       ELSE
+          r(nzt_mg(l)+1,:,: ) = 0.0_wp
+       ENDIF
+
+
+    END SUBROUTINE resid_noopt
+
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Interpolates the residual on the next coarser grid with "full weighting"
+!> scheme.
+!------------------------------------------------------------------------------!
+    SUBROUTINE restrict_noopt( f_mg, r )
+
+
+       USE control_parameters,                                                 &
+           ONLY:  bc_lr_cyc, bc_ns_cyc, grid_level, ibc_p_b, ibc_p_t
+
+       USE indices,                                                            &
+           ONLY:  flags, wall_flags_1, wall_flags_2, wall_flags_3, wall_flags_4,&
+                  wall_flags_5, wall_flags_6, wall_flags_7, wall_flags_8,      &
+                  wall_flags_9, wall_flags_10, nxl_mg, nxr_mg, nys_mg, nyn_mg, &
+                  nzb, nzt_mg
+
+       USE kinds
+
+       IMPLICIT NONE
+
+       INTEGER(iwp) ::  i    !<
+       INTEGER(iwp) ::  ic   !<
+       INTEGER(iwp) ::  j    !<
+       INTEGER(iwp) ::  jc   !<
+       INTEGER(iwp) ::  k    !<
+       INTEGER(iwp) ::  kc   !<
+       INTEGER(iwp) ::  l    !<
+
+       REAL(wp) ::  rkjim    !<
+       REAL(wp) ::  rkjip    !<
+       REAL(wp) ::  rkjmi    !<
+       REAL(wp) ::  rkjmim   !<
+       REAL(wp) ::  rkjmip   !<
+       REAL(wp) ::  rkjpi    !<
+       REAL(wp) ::  rkjpim   !<
+       REAL(wp) ::  rkjpip   !<
+       REAL(wp) ::  rkmji    !<
+       REAL(wp) ::  rkmjim   !<
+       REAL(wp) ::  rkmjip   !<
+       REAL(wp) ::  rkmjmi   !<
+       REAL(wp) ::  rkmjmim  !<
+       REAL(wp) ::  rkmjmip  !<
+       REAL(wp) ::  rkmjpi   !<
+       REAL(wp) ::  rkmjpim  !<
+       REAL(wp) ::  rkmjpip  !<
+
+       REAL(wp), DIMENSION(nzb:nzt_mg(grid_level)+1,                           &
+                           nys_mg(grid_level)-1:nyn_mg(grid_level)+1,          &
+                           nxl_mg(grid_level)-1:nxr_mg(grid_level)+1) ::  f_mg  !<
+
+       REAL(wp), DIMENSION(nzb:nzt_mg(grid_level+1)+1,                         &
+                           nys_mg(grid_level+1)-1:nyn_mg(grid_level+1)+1,      &
+                           nxl_mg(grid_level+1)-1:nxr_mg(grid_level+1)+1) ::  r !<
+
+!
+!--    Interpolate the residual
+       l = grid_level
+
+!
+!--    Choose flag array of the upper level
+       SELECT CASE ( l+1 )
+          CASE ( 1 )
+             flags => wall_flags_1
+          CASE ( 2 )
+             flags => wall_flags_2
+          CASE ( 3 )
+             flags => wall_flags_3
+          CASE ( 4 )
+             flags => wall_flags_4
+          CASE ( 5 )
+             flags => wall_flags_5
+          CASE ( 6 )
+             flags => wall_flags_6
+          CASE ( 7 )
+             flags => wall_flags_7
+          CASE ( 8 )
+             flags => wall_flags_8
+          CASE ( 9 )
+             flags => wall_flags_9
+          CASE ( 10 )
+             flags => wall_flags_10
+       END SELECT
+       
+!$OMP PARALLEL PRIVATE (i,j,k,ic,jc,kc, rkjim,rkjip,rkjpi,rkjmi,rkjmim,rkjpim, &
+!$OMP rkjmip, rkjpip,rkmji,rkmjim,rkmjip,rkmjpi,rkmjmi,rkmjmim,rkmjpim,rkmjmip,&
+!$OMP rkmjpip          )
+!$OMP DO
+       DO  ic = nxl_mg(l), nxr_mg(l)    
+          i = 2*ic 
+          DO  jc = nys_mg(l), nyn_mg(l)  
+             j = 2*jc
+             DO  kc = nzb+1, nzt_mg(l)
+                k = 2*kc-1
+!
+!--             Use implicit Neumann BCs if the respective gridpoint is inside
+!--             the building
+                rkjim   = r(k,j,i-1)     + IBITS( flags(k,j,i-1), 6, 1 ) *     &
+                                           ( r(k,j,i) - r(k,j,i-1) )
+                rkjip   = r(k,j,i+1)     + IBITS( flags(k,j,i+1), 6, 1 ) *     &
+                                           ( r(k,j,i) - r(k,j,i+1) )
+                rkjpi   = r(k,j+1,i)     + IBITS( flags(k,j+1,i), 6, 1 ) *     &
+                                           ( r(k,j,i) - r(k,j+1,i) )
+                rkjmi   = r(k,j-1,i)     + IBITS( flags(k,j-1,i), 6, 1 ) *     &
+                                           ( r(k,j,i) - r(k,j-1,i) )
+                rkjmim  = r(k,j-1,i-1)   + IBITS( flags(k,j-1,i-1), 6, 1 ) *   &
+                                           ( r(k,j,i) - r(k,j-1,i-1) )
+                rkjpim  = r(k,j+1,i-1)   + IBITS( flags(k,j+1,i-1), 6, 1 ) *   &
+                                           ( r(k,j,i) - r(k,j+1,i-1) )
+                rkjmip  = r(k,j-1,i+1)   + IBITS( flags(k,j-1,i+1), 6, 1 ) *   &
+                                           ( r(k,j,i) - r(k,j-1,i+1) )
+                rkjpip  = r(k,j+1,i+1)   + IBITS( flags(k,j+1,i+1), 6, 1 ) *   &
+                                           ( r(k,j,i) - r(k,j+1,i+1) )
+                rkmji   = r(k-1,j,i)     + IBITS( flags(k-1,j,i), 6, 1 ) *     &
+                                           ( r(k,j,i) - r(k-1,j,i) )
+                rkmjim  = r(k-1,j,i-1)   + IBITS( flags(k-1,j,i-1), 6, 1 ) *   &
+                                           ( r(k,j,i) - r(k-1,j,i-1) )
+                rkmjip  = r(k-1,j,i+1)   + IBITS( flags(k-1,j,i+1), 6, 1 ) *   &
+                                           ( r(k,j,i) - r(k-1,j,i+1) )
+                rkmjpi  = r(k-1,j+1,i)   + IBITS( flags(k-1,j+1,i), 6, 1 ) *   &
+                                           ( r(k,j,i) - r(k-1,j+1,i) )
+                rkmjmi  = r(k-1,j-1,i)   + IBITS( flags(k-1,j-1,i), 6, 1 ) *   &
+                                           ( r(k,j,i) - r(k-1,j-1,i) )
+                rkmjmim = r(k-1,j-1,i-1) + IBITS( flags(k-1,j-1,i-1), 6, 1 ) * &
+                                           ( r(k,j,i) - r(k-1,j-1,i-1) )
+                rkmjpim = r(k-1,j+1,i-1) + IBITS( flags(k-1,j+1,i-1), 6, 1 ) * &
+                                           ( r(k,j,i) - r(k-1,j+1,i-1) )
+                rkmjmip = r(k-1,j-1,i+1) + IBITS( flags(k-1,j-1,i+1), 6, 1 ) * &
+                                           ( r(k,j,i) - r(k-1,j-1,i+1) )
+                rkmjpip = r(k-1,j+1,i+1) + IBITS( flags(k-1,j+1,i+1), 6, 1 ) * &
+                                           ( r(k,j,i) - r(k-1,j+1,i+1) )
+
+                f_mg(kc,jc,ic) = 1.0_wp / 64.0_wp * (                         &
+                                 8.0_wp * r(k,j,i)                            &
+                               + 4.0_wp * ( rkjim   + rkjip   +               &
+                                            rkjpi   + rkjmi   )               &
+                               + 2.0_wp * ( rkjmim  + rkjpim  +               &
+                                            rkjmip  + rkjpip  )               &
+                               + 4.0_wp * rkmji                               &
+                               + 2.0_wp * ( rkmjim  + rkmjim  +               &
+                                            rkmjpi  + rkmjmi  )               &
+                               +          ( rkmjmim + rkmjpim +               &
+                                            rkmjmip + rkmjpip )               &
+                               + 4.0_wp * r(k+1,j,i)                          &
+                               + 2.0_wp * ( r(k+1,j,i-1)   + r(k+1,j,i+1)   + &
+                                            r(k+1,j+1,i)   + r(k+1,j-1,i)   ) &
+                               +          ( r(k+1,j-1,i-1) + r(k+1,j+1,i-1) + &
+                                            r(k+1,j-1,i+1) + r(k+1,j+1,i+1) ) &
+                                                    )
+
+!             f_mg(kc,jc,ic) = 1.0_wp / 64.0_wp * (                         &
+!                              8.0_wp * r(k,j,i)                            &
+!                            + 4.0_wp * ( r(k,j,i-1)     + r(k,j,i+1)     + &
+!                                         r(k,j+1,i)     + r(k,j-1,i)     ) &
+!                            + 2.0_wp * ( r(k,j-1,i-1)   + r(k,j+1,i-1)   + &
+!                                         r(k,j-1,i+1)   + r(k,j+1,i+1)   ) &
+!                            + 4.0_wp * r(k-1,j,i)                          &
+!                            + 2.0_wp * ( r(k-1,j,i-1)   + r(k-1,j,i+1)   + &
+!                                         r(k-1,j+1,i)   + r(k-1,j-1,i)   ) &
+!                            +          ( r(k-1,j-1,i-1) + r(k-1,j+1,i-1) + &
+!                                         r(k-1,j-1,i+1) + r(k-1,j+1,i+1) ) &
+!                            + 4.0_wp * r(k+1,j,i)                          &
+!                            + 2.0_wp * ( r(k+1,j,i-1)   + r(k+1,j,i+1)   + &
+!                                         r(k+1,j+1,i)   + r(k+1,j-1,i)   ) &
+!                            +          ( r(k+1,j-1,i-1) + r(k+1,j+1,i-1) + &
+!                                         r(k+1,j-1,i+1) + r(k+1,j+1,i+1) ) &
+!                                                )
+             ENDDO
+          ENDDO
+       ENDDO
+!$OMP END PARALLEL
+
+!
+!--    Horizontal boundary conditions
+       CALL exchange_horiz( f_mg, 1)
+
+       IF ( .NOT. bc_lr_cyc )  THEN
+          IF ( inflow_l .OR. outflow_l .OR. nest_bound_l .OR. force_bound_l )  THEN
+             f_mg(:,:,nxl_mg(l)-1) = f_mg(:,:,nxl_mg(l))
+          ENDIF
+          IF ( inflow_r .OR. outflow_r .OR. nest_bound_r .OR. force_bound_r )  THEN
+             f_mg(:,:,nxr_mg(l)+1) = f_mg(:,:,nxr_mg(l))
+          ENDIF
+       ENDIF
+
+       IF ( .NOT. bc_ns_cyc )  THEN
+          IF ( inflow_n .OR. outflow_n .OR. nest_bound_n .OR. force_bound_n )  THEN
+             f_mg(:,nyn_mg(l)+1,:) = f_mg(:,nyn_mg(l),:)
+          ENDIF
+          IF ( inflow_s .OR. outflow_s .OR. nest_bound_s .OR. force_bound_s )  THEN
+             f_mg(:,nys_mg(l)-1,:) = f_mg(:,nys_mg(l),:)
+          ENDIF
+       ENDIF
+
+!
+!--    Boundary conditions at bottom and top of the domain.
+!--    These points are not handled by the above loop. Points may be within
+!--    buildings, but that doesn't matter. 
+       IF ( ibc_p_b == 1 )  THEN
+          f_mg(nzb,:,: ) = f_mg(nzb+1,:,:)
+       ELSE
+          f_mg(nzb,:,: ) = 0.0_wp
+       ENDIF
+
+       IF ( ibc_p_t == 1 )  THEN
+          f_mg(nzt_mg(l)+1,:,: ) = f_mg(nzt_mg(l),:,:)
+       ELSE
+          f_mg(nzt_mg(l)+1,:,: ) = 0.0_wp
+       ENDIF
+
+
+   END SUBROUTINE restrict_noopt
+
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Interpolates the correction of the perturbation pressure 
+!> to the next finer grid.
+!------------------------------------------------------------------------------!
+ SUBROUTINE prolong_noopt( p, temp )
+
+
+    USE control_parameters,                                                    &
+        ONLY:  bc_lr_cyc, bc_ns_cyc, ibc_p_b, ibc_p_t
+    USE indices,                                                               &
+        ONLY:  nxl_mg, nxr_mg, nys_mg, nyn_mg, nzb, nzt_mg
+
+    USE kinds
+
+    IMPLICIT NONE
+
+    INTEGER(iwp) ::  i  !<
+    INTEGER(iwp) ::  j  !<
+    INTEGER(iwp) ::  k  !<
+    INTEGER(iwp) ::  l  !<
+
+    REAL(wp), DIMENSION(nzb:nzt_mg(grid_level-1)+1,                           &
+                        nys_mg(grid_level-1)-1:nyn_mg(grid_level-1)+1,        &
+                        nxl_mg(grid_level-1)-1:nxr_mg(grid_level-1)+1 ) ::  p  !<
+
+    REAL(wp), DIMENSION(nzb:nzt_mg(grid_level)+1,                           &
+                        nys_mg(grid_level)-1:nyn_mg(grid_level)+1,          &
+                        nxl_mg(grid_level)-1:nxr_mg(grid_level)+1) ::  temp  !<
+
+
+!
+!-- First, store elements of the coarser grid on the next finer grid
+    l = grid_level
+
+!$OMP PARALLEL PRIVATE (i,j,k)
+!$OMP DO
+    DO  i = nxl_mg(l-1), nxr_mg(l-1)
+       DO  j = nys_mg(l-1), nyn_mg(l-1)
+!CDIR NODEP
+          DO  k = nzb+1, nzt_mg(l-1)
+!
+!--          Points of the coarse grid are directly stored on the next finer
+!--          grid
+             temp(2*k-1,2*j,2*i) = p(k,j,i) 
+! 
+!--          Points between two coarse-grid points
+             temp(2*k-1,2*j,2*i+1) = 0.5_wp * ( p(k,j,i) + p(k,j,i+1) )
+             temp(2*k-1,2*j+1,2*i) = 0.5_wp * ( p(k,j,i) + p(k,j+1,i) )
+             temp(2*k,2*j,2*i)     = 0.5_wp * ( p(k,j,i) + p(k+1,j,i) )
+!
+!--          Points in the center of the planes stretched by four points
+!--          of the coarse grid cube
+             temp(2*k-1,2*j+1,2*i+1) = 0.25_wp * ( p(k,j,i)   + p(k,j,i+1) + &
+                                                   p(k,j+1,i) + p(k,j+1,i+1) )
+             temp(2*k,2*j,2*i+1)     = 0.25_wp * ( p(k,j,i)   + p(k,j,i+1) + &
+                                                   p(k+1,j,i) + p(k+1,j,i+1) )
+             temp(2*k,2*j+1,2*i)     = 0.25_wp * ( p(k,j,i)   + p(k,j+1,i) + &
+                                                   p(k+1,j,i) + p(k+1,j+1,i) )
+!
+!--          Points in the middle of coarse grid cube
+             temp(2*k,2*j+1,2*i+1) = 0.125_wp * ( p(k,j,i)     + p(k,j,i+1)   + &
+                                                  p(k,j+1,i)   + p(k,j+1,i+1) + &
+                                                  p(k+1,j,i)   + p(k+1,j,i+1) + &
+                                                  p(k+1,j+1,i) + p(k+1,j+1,i+1) )
+          ENDDO
+       ENDDO
+    ENDDO
+!$OMP END PARALLEL 
+                          
+!
+!-- Horizontal boundary conditions
+    CALL exchange_horiz( temp, 1)
+
+    IF ( .NOT. bc_lr_cyc )  THEN
+       IF ( inflow_l .OR. outflow_l .OR. nest_bound_l .OR. force_bound_l )  THEN
+          temp(:,:,nxl_mg(l)-1) = temp(:,:,nxl_mg(l))
+       ENDIF
+       IF ( inflow_r .OR. outflow_r .OR. nest_bound_r .OR. force_bound_r )  THEN
+          temp(:,:,nxr_mg(l)+1) = temp(:,:,nxr_mg(l))
+       ENDIF
+    ENDIF
+
+    IF ( .NOT. bc_ns_cyc )  THEN
+       IF ( inflow_n .OR. outflow_n .OR. nest_bound_n .OR. force_bound_n )  THEN
+          temp(:,nyn_mg(l)+1,:) = temp(:,nyn_mg(l),:)
+       ENDIF
+       IF ( inflow_s .OR. outflow_s .OR. nest_bound_s .OR. force_bound_s )  THEN
+          temp(:,nys_mg(l)-1,:) = temp(:,nys_mg(l),:)
+       ENDIF
+    ENDIF
+
+!
+!-- Bottom and top boundary conditions
+    IF ( ibc_p_b == 1 )  THEN
+       temp(nzb,:,: ) = temp(nzb+1,:,:)
+    ELSE
+       temp(nzb,:,: ) = 0.0_wp
+    ENDIF
+
+    IF ( ibc_p_t == 1 )  THEN
+       temp(nzt_mg(l)+1,:,: ) = temp(nzt_mg(l),:,:)
+    ELSE
+       temp(nzt_mg(l)+1,:,: ) = 0.0_wp
+    ENDIF
+
+  
+ END SUBROUTINE prolong_noopt
+
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Relaxation method for the multigrid scheme. A Gauss-Seidel iteration with
+!> 3D-Red-Black decomposition (GS-RB) is used.
+!------------------------------------------------------------------------------!
+    SUBROUTINE redblack_noopt( f_mg, p_mg )
+
+
+       USE arrays_3d,                                                          &
+           ONLY:  f1_mg, f2_mg, f3_mg, rho_air_mg
+
+       USE control_parameters,                                                 &
+           ONLY:  bc_lr_cyc, bc_ns_cyc, ibc_p_b, ibc_p_t, ngsrb
+
+       USE cpulog,                                                             &
+           ONLY:  cpu_log, log_point_s
+
+       USE grid_variables,                                                     &
+           ONLY:  ddx2_mg, ddy2_mg
+
+       USE indices,                                                            &
+           ONLY:  flags, wall_flags_1, wall_flags_2, wall_flags_3, wall_flags_4,&
+                  wall_flags_5, wall_flags_6, wall_flags_7, wall_flags_8,      &
+                  wall_flags_9, wall_flags_10, nxl_mg, nxr_mg, nys_mg, nyn_mg, &
+                  nzb, nzt_mg
+
+       USE kinds
+
+       IMPLICIT NONE
+
+       INTEGER(iwp) :: color    !<
+       INTEGER(iwp) :: i        !<
+       INTEGER(iwp) :: ic       !<
+       INTEGER(iwp) :: j        !<
+       INTEGER(iwp) :: jc       !<
+       INTEGER(iwp) :: jj       !<
+       INTEGER(iwp) :: k        !<
+       INTEGER(iwp) :: l        !<
+       INTEGER(iwp) :: n        !<
+
+       LOGICAL :: unroll        !<
+
+       REAL(wp) ::  wall_left   !<
+       REAL(wp) ::  wall_north  !<
+       REAL(wp) ::  wall_right  !<
+       REAL(wp) ::  wall_south  !<
+       REAL(wp) ::  wall_total  !<
+       REAL(wp) ::  wall_top    !<
+
+       REAL(wp), DIMENSION(nzb:nzt_mg(grid_level)+1,                           &
+                           nys_mg(grid_level)-1:nyn_mg(grid_level)+1,          &
+                           nxl_mg(grid_level)-1:nxr_mg(grid_level)+1) ::  f_mg  !<
+       REAL(wp), DIMENSION(nzb:nzt_mg(grid_level)+1,                           &
+                           nys_mg(grid_level)-1:nyn_mg(grid_level)+1,          &
+                           nxl_mg(grid_level)-1:nxr_mg(grid_level)+1) ::  p_mg  !<
+
+       l = grid_level
+
+!
+!--    Choose flag array of this level
+       SELECT CASE ( l )
+          CASE ( 1 )
+             flags => wall_flags_1
+          CASE ( 2 )
+             flags => wall_flags_2
+          CASE ( 3 )
+             flags => wall_flags_3
+          CASE ( 4 )
+             flags => wall_flags_4
+          CASE ( 5 )
+             flags => wall_flags_5
+          CASE ( 6 )
+             flags => wall_flags_6
+          CASE ( 7 )
+             flags => wall_flags_7
+          CASE ( 8 )
+             flags => wall_flags_8
+          CASE ( 9 )
+             flags => wall_flags_9
+          CASE ( 10 )
+             flags => wall_flags_10
+       END SELECT
+
+       unroll = ( MOD( nyn_mg(l)-nys_mg(l)+1, 4 ) == 0  .AND. &
+                  MOD( nxr_mg(l)-nxl_mg(l)+1, 2 ) == 0 )
+
+       DO  n = 1, ngsrb
+          
+          DO  color = 1, 2
+
+             IF ( .NOT. unroll )  THEN
+
+                CALL cpu_log( log_point_s(36), 'redblack_no_unroll_noopt', 'start' )
+
+!
+!--             Without unrolling of loops, no cache optimization
+                DO  i = nxl_mg(l), nxr_mg(l), 2
+                   DO  j = nys_mg(l) + 2 - color, nyn_mg(l), 2 
+                      DO  k = nzb+1, nzt_mg(l), 2
+!                      p_mg(k,j,i) = 1.0_wp / f1_mg(k,l) * (                    &
+!                                ddx2_mg(l) * ( p_mg(k,j,i+1) + p_mg(k,j,i-1) ) &
+!                              + ddy2_mg(l) * ( p_mg(k,j+1,i) + p_mg(k,j-1,i) ) &
+!                              + f2_mg(k,l) * p_mg(k+1,j,i)                     &
+!                              + f3_mg(k,l) * p_mg(k-1,j,i) - f_mg(k,j,i)       &
+!                                                       )
+
+                         p_mg(k,j,i) = 1.0_wp / f1_mg(k,l) * (                 &
+                             rho_air_mg(k,l) * ddx2_mg(l) *                    &
+                               ( p_mg(k,j,i+1) + IBITS( flags(k,j,i), 5, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k,j,i+1) ) + &
+                                 p_mg(k,j,i-1) + IBITS( flags(k,j,i), 4, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k,j,i-1) ) ) &
+                           + rho_air_mg(k,l) * ddy2_mg(l) *                    &
+                               ( p_mg(k,j+1,i) + IBITS( flags(k,j,i), 3, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k,j+1,i) ) + &
+                                 p_mg(k,j-1,i) + IBITS( flags(k,j,i), 2, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k,j-1,i) ) ) &
+                           + f2_mg(k,l) *                                      &
+                               ( p_mg(k+1,j,i) + IBITS( flags(k,j,i), 7, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k+1,j,i) ) ) &
+                           + f3_mg(k,l) *                                      &
+                               ( p_mg(k-1,j,i) + IBITS( flags(k,j,i), 0, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k-1,j,i) ) ) &
+                           - f_mg(k,j,i)                    )
+                      ENDDO
+                   ENDDO
+                ENDDO
+      
+                DO  i = nxl_mg(l)+1, nxr_mg(l), 2
+                   DO  j = nys_mg(l) + (color-1), nyn_mg(l), 2
+                      DO  k = nzb+1, nzt_mg(l), 2 
+                         p_mg(k,j,i) = 1.0_wp / f1_mg(k,l) * (                 &
+                               rho_air_mg(k,l) * ddx2_mg(l) *                  &
+                               ( p_mg(k,j,i+1) + IBITS( flags(k,j,i), 5, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k,j,i+1) ) + &
+                                 p_mg(k,j,i-1) + IBITS( flags(k,j,i), 4, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k,j,i-1) ) ) &
+                           + rho_air_mg(k,l) * ddy2_mg(l) *                    &
+                               ( p_mg(k,j+1,i) + IBITS( flags(k,j,i), 3, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k,j+1,i) ) + &
+                                 p_mg(k,j-1,i) + IBITS( flags(k,j,i), 2, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k,j-1,i) ) ) &
+                           + f2_mg(k,l) *                                      &
+                               ( p_mg(k+1,j,i) + IBITS( flags(k,j,i), 7, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k+1,j,i) ) ) &
+                           + f3_mg(k,l) *                                      &
+                               ( p_mg(k-1,j,i) + IBITS( flags(k,j,i), 0, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k-1,j,i) ) ) &
+                           - f_mg(k,j,i)                     )
+                      ENDDO
+                   ENDDO
+                ENDDO
+     
+                DO  i = nxl_mg(l), nxr_mg(l), 2
+                   DO  j = nys_mg(l) + (color-1), nyn_mg(l), 2
+                      DO  k = nzb+2, nzt_mg(l), 2
+                        p_mg(k,j,i) = 1.0_wp / f1_mg(k,l) * (                  &
+                             rho_air_mg(k,l) * ddx2_mg(l) *                    &
+                               ( p_mg(k,j,i+1) + IBITS( flags(k,j,i), 5, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k,j,i+1) ) + &
+                                 p_mg(k,j,i-1) + IBITS( flags(k,j,i), 4, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k,j,i-1) ) ) &
+                           + rho_air_mg(k,l) * ddy2_mg(l) *                    &
+                               ( p_mg(k,j+1,i) + IBITS( flags(k,j,i), 3, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k,j+1,i) ) + &
+                                 p_mg(k,j-1,i) + IBITS( flags(k,j,i), 2, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k,j-1,i) ) ) &
+                           + f2_mg(k,l) *                                      &
+                               ( p_mg(k+1,j,i) + IBITS( flags(k,j,i), 7, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k+1,j,i) ) ) &
+                           + f3_mg(k,l) *                                      &
+                               ( p_mg(k-1,j,i) + IBITS( flags(k,j,i), 0, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k-1,j,i) ) ) &
+                           - f_mg(k,j,i)                    )
+                      ENDDO
+                   ENDDO
+                ENDDO
+
+                DO  i = nxl_mg(l)+1, nxr_mg(l), 2
+                   DO  j = nys_mg(l) + 2 - color, nyn_mg(l), 2
+                      DO  k = nzb+2, nzt_mg(l), 2
+                         p_mg(k,j,i) = 1.0_wp / f1_mg(k,l) * (                 &
+                             rho_air_mg(k,l) * ddx2_mg(l) *                    &
+                               ( p_mg(k,j,i+1) + IBITS( flags(k,j,i), 5, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k,j,i+1) ) + &
+                                 p_mg(k,j,i-1) + IBITS( flags(k,j,i), 4, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k,j,i-1) ) ) &
+                           + rho_air_mg(k,l) * ddy2_mg(l) *                    &
+                               ( p_mg(k,j+1,i) + IBITS( flags(k,j,i), 3, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k,j+1,i) ) + &
+                                 p_mg(k,j-1,i) + IBITS( flags(k,j,i), 2, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k,j-1,i) ) ) &
+                           + f2_mg(k,l) *                                      &
+                               ( p_mg(k+1,j,i) + IBITS( flags(k,j,i), 7, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k+1,j,i) ) ) &
+                           + f3_mg(k,l) *                                      &
+                               ( p_mg(k-1,j,i) + IBITS( flags(k,j,i), 0, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k-1,j,i) ) ) &
+                           - f_mg(k,j,i)                    )
+                      ENDDO
+                   ENDDO
+                ENDDO
+                CALL cpu_log( log_point_s(36), 'redblack_no_unroll_noopt', 'stop' )
+
+             ELSE
+
+!
+!--             Loop unrolling along y, only one i loop for better cache use
+                CALL cpu_log( log_point_s(38), 'redblack_unroll_noopt', 'start' )
+                DO  ic = nxl_mg(l), nxr_mg(l), 2
+                   DO  jc = nys_mg(l), nyn_mg(l), 4
+                      i  = ic
+                      jj = jc+2-color
+                      DO  k = nzb+1, nzt_mg(l), 2
+                         j = jj
+                         p_mg(k,j,i) = 1.0_wp / f1_mg(k,l) * (                 &
+                             rho_air_mg(k,l) * ddx2_mg(l) *                    &
+                               ( p_mg(k,j,i+1) + IBITS( flags(k,j,i), 5, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k,j,i+1) ) + &
+                                 p_mg(k,j,i-1) + IBITS( flags(k,j,i), 4, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k,j,i-1) ) ) &
+                           + rho_air_mg(k,l) * ddy2_mg(l) *                    &
+                               ( p_mg(k,j+1,i) + IBITS( flags(k,j,i), 3, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k,j+1,i) ) + &
+                                 p_mg(k,j-1,i) + IBITS( flags(k,j,i), 2, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k,j-1,i) ) ) &
+                           + f2_mg(k,l) *                                      &
+                               ( p_mg(k+1,j,i) + IBITS( flags(k,j,i), 7, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k+1,j,i) ) ) &
+                           + f3_mg(k,l) *                                      &
+                               ( p_mg(k-1,j,i) + IBITS( flags(k,j,i), 0, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k-1,j,i) ) ) &
+                           - f_mg(k,j,i)               )
+                         j = jj+2
+                         p_mg(k,j,i) = 1.0_wp / f1_mg(k,l) * (                 &
+                             rho_air_mg(k,l) * ddx2_mg(l) *                    &
+                               ( p_mg(k,j,i+1) + IBITS( flags(k,j,i), 5, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k,j,i+1) ) + &
+                                 p_mg(k,j,i-1) + IBITS( flags(k,j,i), 4, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k,j,i-1) ) ) &
+                           + rho_air_mg(k,l) * ddy2_mg(l) *                    &
+                               ( p_mg(k,j+1,i) + IBITS( flags(k,j,i), 3, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k,j+1,i) ) + &
+                                 p_mg(k,j-1,i) + IBITS( flags(k,j,i), 2, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k,j-1,i) ) ) &
+                           + f2_mg(k,l) *                                      &
+                               ( p_mg(k+1,j,i) + IBITS( flags(k,j,i), 7, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k+1,j,i) ) ) &
+                           + f3_mg(k,l) *                                      &
+                               ( p_mg(k-1,j,i) + IBITS( flags(k,j,i), 0, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k-1,j,i) ) ) &
+                           - f_mg(k,j,i)                     )
+                      ENDDO
+      
+                      i  = ic+1
+                      jj = jc+color-1
+                      DO  k = nzb+1, nzt_mg(l), 2 
+                         j =jj
+                         p_mg(k,j,i) = 1.0_wp / f1_mg(k,l) * (                 &
+                             rho_air_mg(k,l) * ddx2_mg(l) *                    &
+                               ( p_mg(k,j,i+1) + IBITS( flags(k,j,i), 5, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k,j,i+1) ) + &
+                                 p_mg(k,j,i-1) + IBITS( flags(k,j,i), 4, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k,j,i-1) ) ) &
+                           + rho_air_mg(k,l) * ddy2_mg(l) *                    &
+                               ( p_mg(k,j+1,i) + IBITS( flags(k,j,i), 3, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k,j+1,i) ) + &
+                                 p_mg(k,j-1,i) + IBITS( flags(k,j,i), 2, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k,j-1,i) ) ) &
+                           + f2_mg(k,l) *                                      &
+                               ( p_mg(k+1,j,i) + IBITS( flags(k,j,i), 7, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k+1,j,i) ) ) &
+                           + f3_mg(k,l) *                                      &
+                               ( p_mg(k-1,j,i) + IBITS( flags(k,j,i), 0, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k-1,j,i) ) ) &
+                           - f_mg(k,j,i)                     )
+                         j = jj+2
+                         p_mg(k,j,i) = 1.0_wp / f1_mg(k,l) * (                &
+                            rho_air_mg(k,l) * ddx2_mg(l) *                    &
+                              ( p_mg(k,j,i+1) + IBITS( flags(k,j,i), 5, 1 ) * &
+                                            ( p_mg(k,j,i) - p_mg(k,j,i+1) ) + &
+                                p_mg(k,j,i-1) + IBITS( flags(k,j,i), 4, 1 ) * &
+                                            ( p_mg(k,j,i) - p_mg(k,j,i-1) ) ) &
+                          + rho_air_mg(k,l) * ddy2_mg(l) *                    &
+                              ( p_mg(k,j+1,i) + IBITS( flags(k,j,i), 3, 1 ) * &
+                                            ( p_mg(k,j,i) - p_mg(k,j+1,i) ) + &
+                                p_mg(k,j-1,i) + IBITS( flags(k,j,i), 2, 1 ) * &
+                                            ( p_mg(k,j,i) - p_mg(k,j-1,i) ) ) &
+                          + f2_mg(k,l) *                                      &
+                              ( p_mg(k+1,j,i) + IBITS( flags(k,j,i), 7, 1 ) * &
+                                            ( p_mg(k,j,i) - p_mg(k+1,j,i) ) ) &
+                          + f3_mg(k,l) *                                      &
+                              ( p_mg(k-1,j,i) + IBITS( flags(k,j,i), 0, 1 ) * &
+                                            ( p_mg(k,j,i) - p_mg(k-1,j,i) ) ) &
+                          - f_mg(k,j,i)                    )
+                      ENDDO
+
+                      i  = ic
+                      jj = jc+color-1
+                      DO  k = nzb+2, nzt_mg(l), 2
+                         j =jj
+                         p_mg(k,j,i) = 1.0_wp / f1_mg(k,l) * (                 &
+                             rho_air_mg(k,l) * ddx2_mg(l) *                    &
+                               ( p_mg(k,j,i+1) + IBITS( flags(k,j,i), 5, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k,j,i+1) ) + &
+                                 p_mg(k,j,i-1) + IBITS( flags(k,j,i), 4, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k,j,i-1) ) ) &
+                           + rho_air_mg(k,l) * ddy2_mg(l) *                    &
+                               ( p_mg(k,j+1,i) + IBITS( flags(k,j,i), 3, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k,j+1,i) ) + &
+                                 p_mg(k,j-1,i) + IBITS( flags(k,j,i), 2, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k,j-1,i) ) ) &
+                           + f2_mg(k,l) *                                      &
+                               ( p_mg(k+1,j,i) + IBITS( flags(k,j,i), 7, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k+1,j,i) ) ) &
+                           + f3_mg(k,l) *                                      &
+                               ( p_mg(k-1,j,i) + IBITS( flags(k,j,i), 0, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k-1,j,i) ) ) &
+                           - f_mg(k,j,i)                    )
+                         j = jj+2
+                         p_mg(k,j,i) = 1.0_wp / f1_mg(k,l) * (                 &
+                             rho_air_mg(k,l) * ddx2_mg(l) *                    &
+                               ( p_mg(k,j,i+1) + IBITS( flags(k,j,i), 5, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k,j,i+1) ) + &
+                                 p_mg(k,j,i-1) + IBITS( flags(k,j,i), 4, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k,j,i-1) ) ) &
+                           + rho_air_mg(k,l) * ddy2_mg(l) *                    &
+                               ( p_mg(k,j+1,i) + IBITS( flags(k,j,i), 3, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k,j+1,i) ) + &
+                                 p_mg(k,j-1,i) + IBITS( flags(k,j,i), 2, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k,j-1,i) ) ) &
+                           + f2_mg(k,l) *                                      &
+                               ( p_mg(k+1,j,i) + IBITS( flags(k,j,i), 7, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k+1,j,i) ) ) &
+                           + f3_mg(k,l) *                                      &
+                               ( p_mg(k-1,j,i) + IBITS( flags(k,j,i), 0, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k-1,j,i) ) ) &
+                           - f_mg(k,j,i)                     )
+                      ENDDO
+
+                      i  = ic+1
+                      jj = jc+2-color
+                      DO  k = nzb+2, nzt_mg(l), 2
+                         j =jj
+                         p_mg(k,j,i) = 1.0_wp / f1_mg(k,l) * (                 &
+                             rho_air_mg(k,l) * ddx2_mg(l) *                    &
+                               ( p_mg(k,j,i+1) + IBITS( flags(k,j,i), 5, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k,j,i+1) ) + &
+                                 p_mg(k,j,i-1) + IBITS( flags(k,j,i), 4, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k,j,i-1) ) ) &
+                           + rho_air_mg(k,l) * ddy2_mg(l) *                    &
+                               ( p_mg(k,j+1,i) + IBITS( flags(k,j,i), 3, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k,j+1,i) ) + &
+                                 p_mg(k,j-1,i) + IBITS( flags(k,j,i), 2, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k,j-1,i) ) ) &
+                           + f2_mg(k,l) *                                      &
+                               ( p_mg(k+1,j,i) + IBITS( flags(k,j,i), 7, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k+1,j,i) ) ) &
+                           + f3_mg(k,l) *                                      &
+                               ( p_mg(k-1,j,i) + IBITS( flags(k,j,i), 0, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k-1,j,i) ) ) &
+                           - f_mg(k,j,i)                     )
+                         j = jj+2
+                         p_mg(k,j,i) = 1.0_wp / f1_mg(k,l) * (                 &
+                             rho_air_mg(k,l) * ddx2_mg(l) *                    &
+                               ( p_mg(k,j,i+1) + IBITS( flags(k,j,i), 5, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k,j,i+1) ) + &
+                                 p_mg(k,j,i-1) + IBITS( flags(k,j,i), 4, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k,j,i-1) ) ) &
+                           + rho_air_mg(k,l) * ddy2_mg(l) *                    &
+                               ( p_mg(k,j+1,i) + IBITS( flags(k,j,i), 3, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k,j+1,i) ) + &
+                                 p_mg(k,j-1,i) + IBITS( flags(k,j,i), 2, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k,j-1,i) ) ) &
+                           + f2_mg(k,l) *                                      &
+                               ( p_mg(k+1,j,i) + IBITS( flags(k,j,i), 7, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k+1,j,i) ) ) &
+                           + f3_mg(k,l) *                                      &
+                               ( p_mg(k-1,j,i) + IBITS( flags(k,j,i), 0, 1 ) * &
+                                             ( p_mg(k,j,i) - p_mg(k-1,j,i) ) ) &
+                           - f_mg(k,j,i)                     )
+                      ENDDO
+
+                   ENDDO
+                ENDDO
+                CALL cpu_log( log_point_s(38), 'redblack_unroll_noopt', 'stop' )
+
+             ENDIF
+
+!
+!--          Horizontal boundary conditions
+             CALL exchange_horiz( p_mg, 1 )
+
+             IF ( .NOT. bc_lr_cyc )  THEN
+                IF ( inflow_l .OR. outflow_l .OR. nest_bound_l .OR. force_bound_l )  THEN
+                   p_mg(:,:,nxl_mg(l)-1) = p_mg(:,:,nxl_mg(l))
+                ENDIF
+                IF ( inflow_r .OR. outflow_r .OR. nest_bound_r .OR. force_bound_r )  THEN
+                   p_mg(:,:,nxr_mg(l)+1) = p_mg(:,:,nxr_mg(l))
+                ENDIF
+             ENDIF
+
+             IF ( .NOT. bc_ns_cyc )  THEN
+                IF ( inflow_n .OR. outflow_n .OR. nest_bound_n .OR. force_bound_n )  THEN
+                   p_mg(:,nyn_mg(l)+1,:) = p_mg(:,nyn_mg(l),:)
+                ENDIF
+                IF ( inflow_s .OR. outflow_s .OR. nest_bound_s .OR. force_bound_s )  THEN
+                   p_mg(:,nys_mg(l)-1,:) = p_mg(:,nys_mg(l),:)
+                ENDIF
+             ENDIF
+
+!
+!--          Bottom and top boundary conditions
+             IF ( ibc_p_b == 1 )  THEN
+                p_mg(nzb,:,: ) = p_mg(nzb+1,:,:)
+             ELSE
+                p_mg(nzb,:,: ) = 0.0_wp
+             ENDIF
+
+             IF ( ibc_p_t == 1 )  THEN
+                p_mg(nzt_mg(l)+1,:,: ) = p_mg(nzt_mg(l),:,:)
+             ELSE
+                p_mg(nzt_mg(l)+1,:,: ) = 0.0_wp
+             ENDIF
+
+          ENDDO
+
+       ENDDO
+
+!
+!--    Set pressure within topography and at the topography surfaces
+!$OMP PARALLEL PRIVATE (i,j,k,wall_left,wall_north,wall_right,wall_south,wall_top,wall_total)
+!$OMP DO
+       DO  i = nxl_mg(l), nxr_mg(l)
+          DO  j = nys_mg(l), nyn_mg(l) 
+             DO  k = nzb, nzt_mg(l)
+!
+!--             First, set pressure inside topography to zero
+                p_mg(k,j,i) = p_mg(k,j,i) * ( 1.0_wp - IBITS( flags(k,j,i), 6, 1 ) )
+!
+!--             Second, determine if the gridpoint inside topography is adjacent
+!--             to a wall and set its value to a value given by the average of
+!--             those values obtained from Neumann boundary condition
+                wall_left  = IBITS( flags(k,j,i-1), 5, 1 )
+                wall_right = IBITS( flags(k,j,i+1), 4, 1 )
+                wall_south = IBITS( flags(k,j-1,i), 3, 1 )
+                wall_north = IBITS( flags(k,j+1,i), 2, 1 )
+                wall_top   = IBITS( flags(k+1,j,i), 0, 1 )
+                wall_total = wall_left + wall_right + wall_south + wall_north + &
+                             wall_top
+
+                IF ( wall_total > 0.0_wp )  THEN
+                   p_mg(k,j,i) = 1.0_wp / wall_total *                 &
+                                        ( wall_left  * p_mg(k,j,i-1) + &
+                                          wall_right * p_mg(k,j,i+1) + &
+                                          wall_south * p_mg(k,j-1,i) + &
+                                          wall_north * p_mg(k,j+1,i) + &
+                                          wall_top   * p_mg(k+1,j,i) )
+                ENDIF
+             ENDDO
+          ENDDO
+       ENDDO
+!$OMP END PARALLEL
+
+!
+!--    One more time horizontal boundary conditions
+       CALL exchange_horiz( p_mg, 1)
+
+
+    END SUBROUTINE redblack_noopt
+
+
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Gather subdomain data from all PEs.
+!------------------------------------------------------------------------------!
+    SUBROUTINE mg_gather_noopt( f2, f2_sub )
+
+       USE cpulog,                                                             &
+           ONLY:  cpu_log, log_point_s
+
+       USE indices,                                                            &
+           ONLY:  mg_loc_ind, nxl_mg, nxr_mg, nys_mg, nyn_mg, nzb, nzt_mg
+
+       USE kinds
+
+       USE pegrid
+
+       IMPLICIT NONE
+
+       INTEGER(iwp) ::  i       !<
+       INTEGER(iwp) ::  il      !<
+       INTEGER(iwp) ::  ir      !<
+       INTEGER(iwp) ::  j       !<
+       INTEGER(iwp) ::  jn      !<
+       INTEGER(iwp) ::  js      !<
+       INTEGER(iwp) ::  k       !<
+       INTEGER(iwp) ::  nwords  !<
+
+       REAL(wp), DIMENSION(nzb:nzt_mg(grid_level)+1,                           &
+                       nys_mg(grid_level)-1:nyn_mg(grid_level)+1,              &
+                       nxl_mg(grid_level)-1:nxr_mg(grid_level)+1) ::  f2    !<
+       REAL(wp), DIMENSION(nzb:nzt_mg(grid_level)+1,                           &
+                       nys_mg(grid_level)-1:nyn_mg(grid_level)+1,              &
+                       nxl_mg(grid_level)-1:nxr_mg(grid_level)+1) ::  f2_l  !<
+
+       REAL(wp), DIMENSION(nzb:mg_loc_ind(5,myid)+1,                           &
+                           mg_loc_ind(3,myid)-1:mg_loc_ind(4,myid)+1,          &
+                           mg_loc_ind(1,myid)-1:mg_loc_ind(2,myid)+1) ::  f2_sub  !<
+
+
+#if defined( __parallel )
+       CALL cpu_log( log_point_s(34), 'mg_gather_noopt', 'start' )
+
+       f2_l = 0.0_wp
+
+!
+!--    Store the local subdomain array on the total array
+       js = mg_loc_ind(3,myid)
+       IF ( south_border_pe )  js = js - 1
+       jn = mg_loc_ind(4,myid)
+       IF ( north_border_pe )  jn = jn + 1
+       il = mg_loc_ind(1,myid)
+       IF ( left_border_pe )   il = il - 1
+       ir = mg_loc_ind(2,myid)
+       IF ( right_border_pe )  ir = ir + 1
+       DO  i = il, ir
+          DO  j = js, jn
+             DO  k = nzb, nzt_mg(grid_level)+1
+                f2_l(k,j,i) = f2_sub(k,j,i)
+             ENDDO
+          ENDDO
+       ENDDO
+
+!
+!--    Find out the number of array elements of the total array
+       nwords = SIZE( f2 )
+
+!
+!--    Gather subdomain data from all PEs
+       IF ( collective_wait )  CALL MPI_BARRIER( comm2d, ierr )
+       CALL MPI_ALLREDUCE( f2_l(nzb,nys_mg(grid_level)-1,nxl_mg(grid_level)-1),&
+                           f2(nzb,nys_mg(grid_level)-1,nxl_mg(grid_level)-1),  &
+                           nwords, MPI_REAL, MPI_SUM, comm2d, ierr )
+
+       CALL cpu_log( log_point_s(34), 'mg_gather_noopt', 'stop' )
+#endif
+       
+    END SUBROUTINE mg_gather_noopt
+
+
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> @todo It may be possible to improve the speed of this routine by using
+!>       non-blocking communication
+!------------------------------------------------------------------------------!
+    SUBROUTINE mg_scatter_noopt( p2, p2_sub )
+
+       USE cpulog,                                                             &
+           ONLY:  cpu_log, log_point_s
+
+       USE indices,                                                            &
+           ONLY:  mg_loc_ind, nxl_mg, nxr_mg, nys_mg, nyn_mg, nzb, nzt_mg
+
+       USE kinds
+
+       USE pegrid
+
+       IMPLICIT NONE
+
+       INTEGER(iwp) ::  nwords  !<
+
+       REAL(wp), DIMENSION(nzb:nzt_mg(grid_level-1)+1,                         &
+                           nys_mg(grid_level-1)-1:nyn_mg(grid_level-1)+1,      &
+                           nxl_mg(grid_level-1)-1:nxr_mg(grid_level-1)+1) ::  p2  !<
+
+       REAL(wp), DIMENSION(nzb:mg_loc_ind(5,myid)+1,                           &
+                           mg_loc_ind(3,myid)-1:mg_loc_ind(4,myid)+1,          &
+                           mg_loc_ind(1,myid)-1:mg_loc_ind(2,myid)+1) ::  p2_sub  !<
+
+!
+!--    Find out the number of array elements of the subdomain array
+       nwords = SIZE( p2_sub )
+
+#if defined( __parallel )
+       CALL cpu_log( log_point_s(35), 'mg_scatter_noopt', 'start' )
+
+       p2_sub = p2(:,mg_loc_ind(3,myid)-1:mg_loc_ind(4,myid)+1, &
+                     mg_loc_ind(1,myid)-1:mg_loc_ind(2,myid)+1)
+
+       CALL cpu_log( log_point_s(35), 'mg_scatter_noopt', 'stop' )
+#endif
+       
+    END SUBROUTINE mg_scatter_noopt
+
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> This is where the multigrid technique takes place. V- and W- Cycle are
+!> implemented and steered by the parameter "gamma". Parameter "nue" determines
+!> the convergence of the multigrid iterative solution. There are nue times
+!> RB-GS iterations. It should be set to "1" or "2", considering the time effort
+!> one would like to invest. Last choice shows a very good converging factor,
+!> but leads to an increase in computing time.
+!------------------------------------------------------------------------------!
+    RECURSIVE SUBROUTINE next_mg_level_noopt( f_mg, p_mg, p3, r )
+
+       USE control_parameters,                                                 &
+           ONLY:  bc_lr_dirrad, bc_lr_raddir, bc_ns_dirrad, bc_ns_raddir,      &
+                  gamma_mg, grid_level_count, ibc_p_b, ibc_p_t,                &
+                  maximum_grid_level,                                          &
+                  mg_switch_to_pe0_level, mg_switch_to_pe0, nest_domain, ngsrb
+
+
+       USE indices,                                                            &
+           ONLY:  mg_loc_ind, nxl, nxl_mg, nxr, nxr_mg, nys, nys_mg, nyn,      &
+                  nyn_mg, nzb, nzt, nzt_mg
+
+       USE kinds
+
+       USE pegrid
+
+       IMPLICIT NONE
+
+       INTEGER(iwp) ::  i            !<
+       INTEGER(iwp) ::  j            !<
+       INTEGER(iwp) ::  k            !<
+       INTEGER(iwp) ::  nxl_mg_save  !<
+       INTEGER(iwp) ::  nxr_mg_save  !<
+       INTEGER(iwp) ::  nyn_mg_save  !<
+       INTEGER(iwp) ::  nys_mg_save  !<
+       INTEGER(iwp) ::  nzt_mg_save  !<
+
+       REAL(wp), DIMENSION(nzb:nzt_mg(grid_level)+1,                           &
+                           nys_mg(grid_level)-1:nyn_mg(grid_level)+1,          &
+                           nxl_mg(grid_level)-1:nxr_mg(grid_level)+1) :: f_mg  !<
+       REAL(wp), DIMENSION(nzb:nzt_mg(grid_level)+1,                           &
+                           nys_mg(grid_level)-1:nyn_mg(grid_level)+1,          &
+                           nxl_mg(grid_level)-1:nxr_mg(grid_level)+1) :: p_mg  !<
+       REAL(wp), DIMENSION(nzb:nzt_mg(grid_level)+1,                           &
+                           nys_mg(grid_level)-1:nyn_mg(grid_level)+1,          &
+                           nxl_mg(grid_level)-1:nxr_mg(grid_level)+1) :: p3    !<
+       REAL(wp), DIMENSION(nzb:nzt_mg(grid_level)+1,                           &
+                           nys_mg(grid_level)-1:nyn_mg(grid_level)+1,          &
+                           nxl_mg(grid_level)-1:nxr_mg(grid_level)+1) :: r     !<
+
+       REAL(wp), DIMENSION(nzb:nzt_mg(grid_level-1)+1,                         &
+                           nys_mg(grid_level-1)-1:nyn_mg(grid_level-1)+1,      &
+                           nxl_mg(grid_level-1)-1:nxr_mg(grid_level-1)+1) ::  f2  !<
+       REAL(wp), DIMENSION(nzb:nzt_mg(grid_level-1)+1,                         &
+                           nys_mg(grid_level-1)-1:nyn_mg(grid_level-1)+1,      &
+                           nxl_mg(grid_level-1)-1:nxr_mg(grid_level-1)+1) ::  p2  !<
+
+       REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  f2_sub  !<
+       REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  p2_sub  !<
+
+!
+!--    Restriction to the coarsest grid
+    10 IF ( grid_level == 1 )  THEN
+
+!
+!--       Solution on the coarsest grid. Double the number of Gauss-Seidel
+!--       iterations in order to get a more accurate solution.
+          ngsrb = 2 * ngsrb
+
+          CALL redblack_noopt( f_mg, p_mg )
+
+          ngsrb = ngsrb / 2
+
+
+       ELSEIF ( grid_level /= 1 )  THEN
+
+          grid_level_count(grid_level) = grid_level_count(grid_level) + 1
+
+!
+!--       Solution on the actual grid level
+          CALL redblack_noopt( f_mg, p_mg )
+
+!
+!--       Determination of the actual residual
+          CALL resid_noopt( f_mg, p_mg, r )
+
+!
+!--       Restriction of the residual (finer grid values!) to the next coarser
+!--       grid. Therefore, the grid level has to be decremented now. nxl..nzt have
+!--       to be set to the coarse grid values, because these variables are needed
+!--       for the exchange of ghost points in routine exchange_horiz
+          grid_level = grid_level - 1
+          nxl = nxl_mg(grid_level)
+          nys = nys_mg(grid_level)
+          nxr = nxr_mg(grid_level)
+          nyn = nyn_mg(grid_level)
+          nzt = nzt_mg(grid_level)
+
+          IF ( grid_level == mg_switch_to_pe0_level )  THEN
+
+!
+!--          From this level on, calculations are done on PE0 only.
+!--          First, carry out restriction on the subdomain.
+!--          Therefore, indices of the level have to be changed to subdomain values
+!--          in between (otherwise, the restrict routine would expect
+!--          the gathered array)
+
+             nxl_mg_save = nxl_mg(grid_level)
+             nxr_mg_save = nxr_mg(grid_level)
+             nys_mg_save = nys_mg(grid_level)
+             nyn_mg_save = nyn_mg(grid_level)
+             nzt_mg_save = nzt_mg(grid_level)
+             nxl_mg(grid_level) = mg_loc_ind(1,myid)
+             nxr_mg(grid_level) = mg_loc_ind(2,myid)
+             nys_mg(grid_level) = mg_loc_ind(3,myid)
+             nyn_mg(grid_level) = mg_loc_ind(4,myid)
+             nzt_mg(grid_level) = mg_loc_ind(5,myid)
+             nxl = mg_loc_ind(1,myid)
+             nxr = mg_loc_ind(2,myid)
+             nys = mg_loc_ind(3,myid)
+             nyn = mg_loc_ind(4,myid)
+             nzt = mg_loc_ind(5,myid)
+
+             ALLOCATE( f2_sub(nzb:nzt_mg(grid_level)+1,                    &
+                              nys_mg(grid_level)-1:nyn_mg(grid_level)+1,   &
+                              nxl_mg(grid_level)-1:nxr_mg(grid_level)+1) )
+
+             CALL restrict_noopt( f2_sub, r )
+
+!
+!--          Restore the correct indices of this level
+             nxl_mg(grid_level) = nxl_mg_save
+             nxr_mg(grid_level) = nxr_mg_save
+             nys_mg(grid_level) = nys_mg_save
+             nyn_mg(grid_level) = nyn_mg_save
+             nzt_mg(grid_level) = nzt_mg_save
+             nxl = nxl_mg(grid_level)
+             nxr = nxr_mg(grid_level)
+             nys = nys_mg(grid_level)
+             nyn = nyn_mg(grid_level)
+             nzt = nzt_mg(grid_level)
+!
+!--          Gather all arrays from the subdomains on PE0
+             CALL mg_gather_noopt( f2, f2_sub )
+
+!
+!--          Set switch for routine exchange_horiz, that no ghostpoint exchange
+!--          has to be carried out from now on
+             mg_switch_to_pe0 = .TRUE.
+
+!
+!--          In case of non-cyclic lateral boundary conditions, both in- and
+!--          outflow conditions have to be used on all PEs after the switch,
+!--          because then they have the total domain.
+             IF ( bc_lr_dirrad )  THEN
+                inflow_l  = .TRUE.
+                inflow_r  = .FALSE.
+                outflow_l = .FALSE.
+                outflow_r = .TRUE.
+             ELSEIF ( bc_lr_raddir )  THEN
+                inflow_l  = .FALSE.
+                inflow_r  = .TRUE.
+                outflow_l = .TRUE.
+                outflow_r = .FALSE.
+             ELSEIF ( nest_domain )  THEN
+                nest_bound_l = .TRUE.
+                nest_bound_r = .TRUE.
+             ELSEIF ( forcing )  THEN
+                force_bound_l = .TRUE.
+                force_bound_r = .TRUE.
+             ENDIF
+
+             IF ( bc_ns_dirrad )  THEN
+                inflow_n  = .TRUE.
+                inflow_s  = .FALSE.
+                outflow_n = .FALSE.
+                outflow_s = .TRUE.
+             ELSEIF ( bc_ns_raddir )  THEN
+                inflow_n  = .FALSE.
+                inflow_s  = .TRUE.
+                outflow_n = .TRUE.
+                outflow_s = .FALSE.
+             ELSEIF ( nest_domain )  THEN
+                nest_bound_s = .TRUE.
+                nest_bound_n = .TRUE.
+             ELSEIF ( forcing )  THEN
+                force_bound_s = .TRUE.
+                force_bound_n = .TRUE.
+             ENDIF
+
+             DEALLOCATE( f2_sub )
+
+          ELSE
+
+             CALL restrict_noopt( f2, r )
+
+          ENDIF
+
+          p2 = 0.0_wp
+
+!
+!--       Repeat the same procedure till the coarsest grid is reached
+          CALL next_mg_level_noopt( f2, p2, p3, r )
+
+       ENDIF
+
+!
+!--    Now follows the prolongation
+       IF ( grid_level >= 2 )  THEN
+
+!
+!--       Prolongation of the new residual. The values are transferred 
+!--       from the coarse to the next finer grid.
+          IF ( grid_level == mg_switch_to_pe0_level+1 )  THEN
+
+#if defined( __parallel )
+!
+!--          At this level, the new residual first has to be scattered from
+!--          PE0 to the other PEs
+             ALLOCATE( p2_sub(nzb:mg_loc_ind(5,myid)+1,             &
+                       mg_loc_ind(3,myid)-1:mg_loc_ind(4,myid)+1,   &
+                       mg_loc_ind(1,myid)-1:mg_loc_ind(2,myid)+1) )
+
+             CALL mg_scatter_noopt( p2, p2_sub )
+
+!
+!--          Therefore, indices of the previous level have to be changed to
+!--          subdomain values in between (otherwise, the prolong routine would
+!--          expect the gathered array)
+             nxl_mg_save = nxl_mg(grid_level-1)
+             nxr_mg_save = nxr_mg(grid_level-1)
+             nys_mg_save = nys_mg(grid_level-1)
+             nyn_mg_save = nyn_mg(grid_level-1)
+             nzt_mg_save = nzt_mg(grid_level-1)
+             nxl_mg(grid_level-1) = mg_loc_ind(1,myid)
+             nxr_mg(grid_level-1) = mg_loc_ind(2,myid)
+             nys_mg(grid_level-1) = mg_loc_ind(3,myid)
+             nyn_mg(grid_level-1) = mg_loc_ind(4,myid)
+             nzt_mg(grid_level-1) = mg_loc_ind(5,myid)
+
+!
+!--          Set switch for routine exchange_horiz, that ghostpoint exchange
+!--          has to be carried again out from now on
+             mg_switch_to_pe0 = .FALSE.
+
+!
+!--          For non-cyclic lateral boundary conditions and in case of nesting, 
+!--          restore the in-/outflow conditions. 
+             inflow_l  = .FALSE.;  inflow_r  = .FALSE.
+             inflow_n  = .FALSE.;  inflow_s  = .FALSE.
+             outflow_l = .FALSE.;  outflow_r = .FALSE.
+             outflow_n = .FALSE.;  outflow_s = .FALSE.
+!
+!--          In case of nesting, restore lateral boundary conditions
+             IF ( nest_domain )  THEN
+                nest_bound_l = .FALSE.
+                nest_bound_r = .FALSE.
+                nest_bound_s = .FALSE.
+                nest_bound_n = .FALSE.      
+             ENDIF
+             IF ( forcing )  THEN
+                force_bound_l = .FALSE.
+                force_bound_r = .FALSE.
+                force_bound_s = .FALSE.
+                force_bound_n = .FALSE.      
+             ENDIF
+
+             IF ( pleft == MPI_PROC_NULL )  THEN
+                IF ( bc_lr_dirrad )  THEN
+                   inflow_l  = .TRUE.
+                ELSEIF ( bc_lr_raddir )  THEN
+                   outflow_l = .TRUE.
+                ELSEIF ( nest_domain )  THEN
+                   nest_bound_l = .TRUE.
+                ELSEIF ( forcing )  THEN
+                   force_bound_l = .TRUE.
+                ENDIF
+             ENDIF
+
+             IF ( pright == MPI_PROC_NULL )  THEN
+                IF ( bc_lr_dirrad )  THEN
+                   outflow_r = .TRUE.
+                ELSEIF ( bc_lr_raddir )  THEN
+                   inflow_r  = .TRUE.
+                ELSEIF ( nest_domain )  THEN
+                   nest_bound_r = .TRUE.
+                ELSEIF ( forcing )  THEN
+                   force_bound_r = .TRUE.
+                ENDIF
+             ENDIF
+
+             IF ( psouth == MPI_PROC_NULL )  THEN
+                IF ( bc_ns_dirrad )  THEN
+                   outflow_s = .TRUE.
+                ELSEIF ( bc_ns_raddir )  THEN
+                   inflow_s  = .TRUE.
+                ELSEIF ( nest_domain )  THEN
+                   nest_bound_s = .TRUE.
+                ELSEIF ( forcing )  THEN
+                   force_bound_s = .TRUE.
+                ENDIF
+             ENDIF
+
+             IF ( pnorth == MPI_PROC_NULL )  THEN
+                IF ( bc_ns_dirrad )  THEN
+                   inflow_n  = .TRUE.
+                ELSEIF ( bc_ns_raddir )  THEN
+                   outflow_n = .TRUE.
+                ELSEIF ( nest_domain )  THEN
+                   nest_bound_n = .TRUE.
+                ELSEIF ( forcing )  THEN
+                   force_bound_n = .TRUE.
+                ENDIF
+             ENDIF
+
+             CALL prolong_noopt( p2_sub, p3 )
+
+!
+!--          Restore the correct indices of the previous level
+             nxl_mg(grid_level-1) = nxl_mg_save
+             nxr_mg(grid_level-1) = nxr_mg_save
+             nys_mg(grid_level-1) = nys_mg_save
+             nyn_mg(grid_level-1) = nyn_mg_save
+             nzt_mg(grid_level-1) = nzt_mg_save
+
+             DEALLOCATE( p2_sub )
+#endif
+
+          ELSE
+
+             CALL prolong_noopt( p2, p3 )
+
+          ENDIF
+
+!
+!--       Computation of the new pressure correction. Therefore, 
+!--       values from prior grids are added up automatically stage by stage.
+          DO  i = nxl_mg(grid_level)-1, nxr_mg(grid_level)+1
+             DO  j = nys_mg(grid_level)-1, nyn_mg(grid_level)+1
+                DO  k = nzb, nzt_mg(grid_level)+1 
+                   p_mg(k,j,i) = p_mg(k,j,i) + p3(k,j,i)
+                ENDDO
+             ENDDO
+          ENDDO
+
+!
+!--       Relaxation of the new solution
+          CALL redblack_noopt( f_mg, p_mg )
+
+       ENDIF
+
+
+!
+!--    The following few lines serve the steering of the multigrid scheme 
+       IF ( grid_level == maximum_grid_level )  THEN
+
+          GOTO 20
+
+       ELSEIF ( grid_level /= maximum_grid_level  .AND.  grid_level /= 1  .AND. &
+                grid_level_count(grid_level) /= gamma_mg )  THEN
+
+          GOTO 10
+
+       ENDIF
+
+!
+!--    Reset counter for the next call of poismg_noopt
+       grid_level_count(grid_level) = 0
+
+!
+!--    Continue with the next finer level. nxl..nzt have to be
+!--    set to the finer grid values, because these variables are needed for the
+!--    exchange of ghost points in routine exchange_horiz
+       grid_level = grid_level + 1
+       nxl = nxl_mg(grid_level)
+       nxr = nxr_mg(grid_level)
+       nys = nys_mg(grid_level)
+       nyn = nyn_mg(grid_level)
+       nzt = nzt_mg(grid_level)
+
+    20 CONTINUE
+
+    END SUBROUTINE next_mg_level_noopt
+
+
+
+    SUBROUTINE poismg_noopt_init
+
+       USE control_parameters,                                                 &
+           ONLY:  bc_lr_cyc, bc_ns_cyc, masking_method, maximum_grid_level
+
+       USE indices,                                                            &
+           ONLY:  flags, nxl_mg, nxr_mg, nyn_mg, nys_mg, nzb, nzt_mg,          &
+                  wall_flags_0, wall_flags_1,                                  &
+                  wall_flags_10, wall_flags_2, wall_flags_3,  wall_flags_4,    &
+                  wall_flags_5, wall_flags_6, wall_flags_7, wall_flags_8,      &
+                  wall_flags_9
+
+       IMPLICIT NONE
+
+       INTEGER(iwp) ::  i             !< index variable along x 
+       INTEGER(iwp) ::  inc           !< incremental parameter for coarsening grid level
+       INTEGER(iwp) ::  j             !< index variable along y
+       INTEGER(iwp) ::  k             !< index variable along z
+       INTEGER(iwp) ::  l             !< loop variable indication current grid level
+       INTEGER(iwp) ::  nxl_l         !< index of left PE boundary for multigrid level
+       INTEGER(iwp) ::  nxr_l         !< index of right PE boundary for multigrid level
+       INTEGER(iwp) ::  nyn_l         !< index of north PE boundary for multigrid level
+       INTEGER(iwp) ::  nys_l         !< index of south PE boundary for multigrid level
+       INTEGER(iwp) ::  nzt_l         !< index of top PE boundary for multigrid level
+
+       INTEGER(iwp), DIMENSION(:,:,:), ALLOCATABLE ::  topo_tmp
+!
+!--    Gridpoint increment of the current level. 
+       inc = 1
+       DO  l = maximum_grid_level, 1 , -1
+!
+!--       Set grid_level as it is required for exchange_horiz_2d_int
+          grid_level = l
+
+          nxl_l = nxl_mg(l)
+          nxr_l = nxr_mg(l)
+          nys_l = nys_mg(l)
+          nyn_l = nyn_mg(l)
+          nzt_l = nzt_mg(l)
+!
+!--       Assign the flag level to be calculated
+          SELECT CASE ( l )
+             CASE ( 1 )
+                flags => wall_flags_1
+             CASE ( 2 )
+                flags => wall_flags_2
+             CASE ( 3 )
+                flags => wall_flags_3
+             CASE ( 4 )
+                flags => wall_flags_4
+             CASE ( 5 )
+                flags => wall_flags_5
+             CASE ( 6 )
+                flags => wall_flags_6
+             CASE ( 7 )
+                flags => wall_flags_7
+             CASE ( 8 )
+                flags => wall_flags_8
+             CASE ( 9 )
+                flags => wall_flags_9
+             CASE ( 10 )
+                flags => wall_flags_10
+          END SELECT
+
+!
+!--       Depending on the grid level, set the respective bits in case of
+!--       neighbouring walls
+!--       Bit 0:  wall to the bottom
+!--       Bit 1:  wall to the top (not realized in remaining PALM code so far)
+!--       Bit 2:  wall to the south
+!--       Bit 3:  wall to the north
+!--       Bit 4:  wall to the left
+!--       Bit 5:  wall to the right
+!--       Bit 6:  inside building
+
+          flags = 0
+!
+!--       In case of masking method, flags are not set and multigrid method
+!--       works like FFT-solver
+          IF ( .NOT. masking_method )  THEN
+
+!
+!--          Allocate temporary array for topography heights on coarser grid
+!--          level. Please note, 2 ghoist points are required, in order to
+!--          calculate flags() on the interior ghost point. 
+             ALLOCATE( topo_tmp(nzb:nzt_l+1,nys_l-1:nyn_l+1,nxl_l-1:nxr_l+1) )
+             topo_tmp = 0
+             
+             DO  i = nxl_l, nxr_l
+                DO  j = nys_l, nyn_l
+                   DO  k = nzb, nzt_l
+                      topo_tmp(k,j,i) = wall_flags_0(k*inc,j*inc,i*inc)
+                   ENDDO
+                ENDDO
+             ENDDO
+             topo_tmp(nzt_l+1,:,:) = topo_tmp(nzt_l,:,:)
+!
+!--          Exchange ghost points on respective multigrid level. 2 ghost points
+!--          are required, in order to calculate flags on 
+!--          nys_l-1 / nyn_l+1 / nxl_l-1 / nxr_l+1. 
+             CALL exchange_horiz_int( topo_tmp, nys_l, nyn_l, nxl_l, nxr_l, nzt_l, 1 )
+!
+!--          Set non-cyclic boundary conditions on respective multigrid level
+             IF ( .NOT. bc_ns_cyc )  THEN
+                IF ( inflow_s  .OR.  outflow_s  .OR.  nest_bound_s  .OR.       &
+                     force_bound_s )  THEN
+!                    topo_tmp(:,-2,:) = topo_tmp(:,0,:)
+                   topo_tmp(:,-1,:) = topo_tmp(:,0,:)
+                ENDIF
+                IF ( inflow_n  .OR.  outflow_n  .OR.  nest_bound_n  .OR.       &
+                     force_bound_n )  THEN
+!                    topo_tmp(:,nyn_l+2,:) = topo_tmp(:,nyn_l,:)
+                   topo_tmp(:,nyn_l+1,:) = topo_tmp(:,nyn_l,:)
+                ENDIF
+             ENDIF
+             IF ( .NOT. bc_lr_cyc )  THEN
+                IF ( inflow_l  .OR.  outflow_l  .OR.  nest_bound_l  .OR.       &
+                     force_bound_l )  THEN
+!                    topo_tmp(:,:,-2) = topo_tmp(:,:,0)
+                   topo_tmp(:,:,-1) = topo_tmp(:,:,0)
+                ENDIF
+                IF ( inflow_r  .OR.  outflow_r  .OR.  nest_bound_r  .OR.       &
+                     force_bound_r )  THEN
+!                    topo_tmp(:,:,nxr_l+2) = topo_tmp(:,:,nxr_l)      
+                   topo_tmp(:,:,nxr_l+1) = topo_tmp(:,:,nxr_l)    
+                ENDIF        
+             ENDIF
+                       
+             DO  i = nxl_l, nxr_l
+                DO  j = nys_l, nyn_l
+                   DO  k = nzb, nzt_l     
+!
+!--                   Inside/outside building (inside building does not need
+!--                   further tests for walls)
+                      IF ( .NOT. BTEST( topo_tmp(k,j,i), 0 ) )  THEN
+
+                         flags(k,j,i) = IBSET( flags(k,j,i), 6 )
+
+                      ELSE
+!
+!--                      Bottom wall
+                         IF ( .NOT. BTEST( topo_tmp(k-1,j,i), 0 ) )  THEN
+                            flags(k,j,i) = IBSET( flags(k,j,i), 0 )
+                         ENDIF
+!
+!--                      South wall
+                         IF ( .NOT. BTEST( topo_tmp(k,j-1,i), 0 ) )  THEN
+                            flags(k,j,i) = IBSET( flags(k,j,i), 2 )
+                         ENDIF
+!
+!--                      North wall
+                         IF ( .NOT. BTEST( topo_tmp(k,j+1,i), 0 ) )  THEN
+                            flags(k,j,i) = IBSET( flags(k,j,i), 3 )
+                         ENDIF
+!
+!--                      Left wall
+                         IF ( .NOT. BTEST( topo_tmp(k,j,i-1), 0 ) )  THEN
+                            flags(k,j,i) = IBSET( flags(k,j,i), 4 )
+                         ENDIF
+!
+!--                      Right wall
+                         IF ( .NOT. BTEST( topo_tmp(k,j,i+1), 0 ) )  THEN
+                            flags(k,j,i) = IBSET( flags(k,j,i), 5 )
+                         ENDIF
+!
+!--                      Top wall
+                         IF ( .NOT. BTEST( topo_tmp(k+1,j,i), 0 ) )  THEN
+                            flags(k,j,i) = IBSET( flags(k,j,i), 7 )
+                         ENDIF
+
+                      ENDIF
+                            
+                   ENDDO
+                ENDDO
+             ENDDO
+             flags(nzt_l+1,:,:) = flags(nzt_l,:,:)
+
+             CALL exchange_horiz_int( flags, nys_l, nyn_l, nxl_l, nxr_l, nzt_l, 1 )
+
+             DEALLOCATE( topo_tmp )
+
+          ENDIF
+
+          inc = inc * 2
+
+       ENDDO
+!
+!--    Reset grid_level to "normal" grid
+       grid_level = 0
+
+    END SUBROUTINE poismg_noopt_init
+
+ END MODULE poismg_noopt_mod
Index: palm/trunk/SOURCE/posix_calls_from_fortran.f90
===================================================================
--- palm/trunk/SOURCE/posix_calls_from_fortran.f90	(revision 2693)
+++ palm/trunk/SOURCE/posix_calls_from_fortran.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @posix_calls_from_fortran.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
@@ -12,5 +12,5 @@
 ! A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 !
-! You should have received a copy of the GNU fGeneral Public License along with
+! You should have received a copy of the GNU General Public License along with
 ! PALM. If not, see <http://www.gnu.org/licenses/>.
 !
Index: palm/trunk/SOURCE/pres.f90
===================================================================
--- palm/trunk/SOURCE/pres.f90	(revision 2693)
+++ palm/trunk/SOURCE/pres.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file pres.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
@@ -24,5 +24,8 @@
 ! Former revisions:
 ! -----------------
-! $Id$
+! Id: pres.f90 2298 2017-06-29 09:28:18Z raasch $
+! - poismg_noopt modularized (MS)
+! 
+! 2298 2017-06-29 09:28:18Z raasch
 ! comment changed + some formatting
 ! 
@@ -176,4 +179,6 @@
 
     USE poismg_mod
+
+    USE poismg_noopt_mod
 
     USE statistics,                                                            &
Index: palm/trunk/SOURCE/print_1d.f90
===================================================================
--- palm/trunk/SOURCE/print_1d.f90	(revision 2693)
+++ palm/trunk/SOURCE/print_1d.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file print_1d.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/production_e.f90
===================================================================
--- palm/trunk/SOURCE/production_e.f90	(revision 2693)
+++ 	(revision )
@@ -1,1698 +1,0 @@
-!> @file production_e.f90
-!------------------------------------------------------------------------------!
-! This file is part of PALM.
-!
-! PALM is free software: you can redistribute it and/or modify it under the
-! terms of the GNU General Public License as published by the Free Software
-! Foundation, either version 3 of the License, or (at your option) any later
-! version.
-!
-! PALM is distributed in the hope that it will be useful, but WITHOUT ANY
-! WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
-! A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
-!
-! You should have received a copy of the GNU General Public License along with
-! PALM. If not, see <http://www.gnu.org/licenses/>.
-!
-! Copyright 1997-2017 Leibniz Universitaet Hannover
-!------------------------------------------------------------------------------!
-!
-! Current revisions:
-! -----------------
-! 
-! 
-! Former revisions:
-! -----------------
-! $Id$
-! - Bugfix in buoyancy production term, wrong base state was set.
-! - Consider use_single_reference_value case if humidity is used.
-! - In case of use_top_fluxes, use correct inverse density at model top
-! - Consider use_surface_fluxes and use_top_fluxes in ocean case  
-! 
-! 2478 2017-09-18 13:37:24Z suehring
-! Bugfix, consider case where no constant-flux layer and no surfaces fluxes 
-! are used
-! 
-! 2329 2017-08-03 14:24:56Z knoop
-! Bugfix: added division by density as kinematic fluxes are needed
-! 
-! 2233 2017-05-30 18:08:54Z suehring
-!
-! 2232 2017-05-30 17:47:52Z suehring
-! Adjustments to new surface concept
-!
-! 2126 2017-01-20 15:54:21Z raasch
-! density in ocean case replaced by potential density
-!
-! 2118 2017-01-17 16:38:49Z raasch
-! OpenACC version of subroutine removed
-! 
-! 2031 2016-10-21 15:11:58Z knoop
-! renamed variable rho to rho_ocean
-! 
-! 2000 2016-08-20 18:09:15Z knoop
-! Forced header and separation lines into 80 columns
-! 
-! 1873 2016-04-18 14:50:06Z maronga
-! Module renamed (removed _mod)
-! 
-! 
-! 1850 2016-04-08 13:29:27Z maronga
-! Module renamed
-! 
-! 
-! 1691 2015-10-26 16:17:44Z maronga
-! Renamed prandtl_layer to constant_flux_layer.
-! 
-! 1682 2015-10-07 23:56:08Z knoop
-! Code annotations made doxygen readable 
-! 
-! 1374 2014-04-25 12:55:07Z raasch
-! nzb_s_outer removed from acc-present-list
-! 
-! 1353 2014-04-08 15:21:23Z heinze
-! REAL constants provided with KIND-attribute
-! 
-! 1342 2014-03-26 17:04:47Z kanani
-! REAL constants defined as wp-kind
-!
-! 1320 2014-03-20 08:40:49Z raasch
-! ONLY-attribute added to USE-statements,
-! kind-parameters added to all INTEGER and REAL declaration statements,
-! kinds are defined in new module kinds,
-! old module precision_kind is removed,
-! revision history before 2012 removed,
-! comment fields (!:) to be used for variable explanations added to
-! all variable declaration statements
-!
-! 1257 2013-11-08 15:18:40Z raasch
-! openacc loop and loop vector clauses removed, declare create moved after
-! the FORTRAN declaration statement
-!
-! 1179 2013-06-14 05:57:58Z raasch
-! use_reference renamed use_single_reference_value
-!
-! 1128 2013-04-12 06:19:32Z raasch
-! loop index bounds in accelerator version replaced by i_left, i_right, j_south,
-! j_north
-!
-! 1036 2012-10-22 13:43:42Z raasch
-! code put under GPL (PALM 3.9)
-!
-! 1015 2012-09-27 09:23:24Z raasch
-! accelerator version (*_acc) added
-!
-! 1007 2012-09-19 14:30:36Z franke
-! Bugfix: calculation of buoyancy production has to consider the liquid water
-! mixing ratio in case of cloud droplets
-!
-! 940 2012-07-09 14:31:00Z raasch
-! TKE production by buoyancy can be switched off in case of runs with pure
-! neutral stratification
-!
-! Revision 1.1  1997/09/19 07:45:35  raasch
-! Initial revision
-!
-!
-! Description:
-! ------------
-!> Production terms (shear + buoyancy) of the TKE.
-!> @warning The case with constant_flux_layer = F and use_surface_fluxes = T is
-!>          not considered well!
-!------------------------------------------------------------------------------!
- MODULE production_e_mod
-
-    USE kinds
-
-    PRIVATE
-    PUBLIC production_e, production_e_init
-
-    INTERFACE production_e
-       MODULE PROCEDURE production_e
-       MODULE PROCEDURE production_e_ij
-    END INTERFACE production_e
-    
-    INTERFACE production_e_init
-       MODULE PROCEDURE production_e_init
-    END INTERFACE production_e_init
- 
- CONTAINS
-
-
-!------------------------------------------------------------------------------!
-! Description:
-! ------------
-!> Call for all grid points
-!------------------------------------------------------------------------------!
-    SUBROUTINE production_e
-
-       USE arrays_3d,                                                          &
-           ONLY:  ddzw, dd2zu, drho_air_zw, kh, km, prho, pt, q, ql, tend, u,  &
-                  v, vpt, w
-
-       USE cloud_parameters,                                                   &
-           ONLY:  l_d_cp, l_d_r, pt_d_t, t_d_pt
-
-       USE control_parameters,                                                 &
-           ONLY:  cloud_droplets, cloud_physics, constant_flux_layer, g,       &
-                  humidity, kappa, neutral, ocean, pt_reference,               &
-                  rho_reference, use_single_reference_value,                   &
-                  use_surface_fluxes, use_top_fluxes, vpt_reference
-
-       USE grid_variables,                                                     &
-           ONLY:  ddx, dx, ddy, dy
-
-       USE indices,                                                            &
-           ONLY:  nxl, nxr, nys, nyn, nzb, nzt, wall_flags_0
-
-       USE surface_mod,                                                        &
-           ONLY :  surf_def_h, surf_def_v, surf_lsm_h, surf_lsm_v, surf_usm_h, &
-                   surf_usm_v
-
-       IMPLICIT NONE
-
-       INTEGER(iwp) ::  i       !< running index x-direction
-       INTEGER(iwp) ::  j       !< running index y-direction
-       INTEGER(iwp) ::  k       !< running index z-direction
-       INTEGER(iwp) ::  l       !< running index for different surface type orientation
-       INTEGER(iwp) ::  m       !< running index surface elements
-       INTEGER(iwp) ::  surf_e  !< end index of surface elements at given i-j position
-       INTEGER(iwp) ::  surf_s  !< start index of surface elements at given i-j position
-
-       REAL(wp)     ::  def         !< 
-       REAL(wp)     ::  flag        !< flag to mask topography
-       REAL(wp)     ::  k1          !<
-       REAL(wp)     ::  k2          !<
-       REAL(wp)     ::  km_neutral  !< diffusion coefficient assuming neutral conditions - used to compute shear production at surfaces
-       REAL(wp)     ::  theta       !<
-       REAL(wp)     ::  temp        !<
-       REAL(wp)     ::  sign_dir    !< sign of wall-tke flux, depending on wall orientation 
-       REAL(wp)     ::  usvs        !< momentum flux u"v"
-       REAL(wp)     ::  vsus        !< momentum flux v"u"
-       REAL(wp)     ::  wsus        !< momentum flux w"u"
-       REAL(wp)     ::  wsvs        !< momentum flux w"v"
-
-       REAL(wp), DIMENSION(nzb+1:nzt,nys:nyn) ::  dudx  !< Gradient of u-component in x-direction
-       REAL(wp), DIMENSION(nzb+1:nzt,nys:nyn) ::  dudy  !< Gradient of u-component in y-direction
-       REAL(wp), DIMENSION(nzb+1:nzt,nys:nyn) ::  dudz  !< Gradient of u-component in z-direction
-       REAL(wp), DIMENSION(nzb+1:nzt,nys:nyn) ::  dvdx  !< Gradient of v-component in x-direction
-       REAL(wp), DIMENSION(nzb+1:nzt,nys:nyn) ::  dvdy  !< Gradient of v-component in y-direction
-       REAL(wp), DIMENSION(nzb+1:nzt,nys:nyn) ::  dvdz  !< Gradient of v-component in z-direction
-       REAL(wp), DIMENSION(nzb+1:nzt,nys:nyn) ::  dwdx  !< Gradient of w-component in x-direction
-       REAL(wp), DIMENSION(nzb+1:nzt,nys:nyn) ::  dwdy  !< Gradient of w-component in y-direction
-       REAL(wp), DIMENSION(nzb+1:nzt,nys:nyn) ::  dwdz  !< Gradient of w-component in z-direction
-
-       DO  i = nxl, nxr
-
-          IF ( constant_flux_layer )  THEN
-
-!
-!--          Calculate TKE production by shear. Calculate gradients at all grid 
-!--          points first, gradients at surface-bounded grid points will be 
-!--          overwritten further below. 
-             DO  j = nys, nyn
-                DO  k = nzb+1, nzt
-
-                   dudx(k,j) =           ( u(k,j,i+1) - u(k,j,i)     ) * ddx
-                   dudy(k,j) = 0.25_wp * ( u(k,j+1,i) + u(k,j+1,i+1) -         &
-                                           u(k,j-1,i) - u(k,j-1,i+1) ) * ddy
-                   dudz(k,j) = 0.5_wp  * ( u(k+1,j,i) + u(k+1,j,i+1) -         &
-                                           u(k-1,j,i) - u(k-1,j,i+1) ) *       &
-                                                            dd2zu(k)
-   
-                   dvdx(k,j) = 0.25_wp * ( v(k,j,i+1) + v(k,j+1,i+1) -         &
-                                           v(k,j,i-1) - v(k,j+1,i-1) ) * ddx
-                   dvdy(k,j) =           ( v(k,j+1,i) - v(k,j,i)     ) * ddy
-                   dvdz(k,j) = 0.5_wp  * ( v(k+1,j,i) + v(k+1,j+1,i) -         &
-                                           v(k-1,j,i) - v(k-1,j+1,i) ) *       &
-                                                            dd2zu(k)
-
-                   dwdx(k,j) = 0.25_wp * ( w(k,j,i+1) + w(k-1,j,i+1) -         &
-                                           w(k,j,i-1) - w(k-1,j,i-1) ) * ddx
-                   dwdy(k,j) = 0.25_wp * ( w(k,j+1,i) + w(k-1,j+1,i) -         &
-                                           w(k,j-1,i) - w(k-1,j-1,i) ) * ddy
-                   dwdz(k,j) =           ( w(k,j,i)   - w(k-1,j,i)   ) * ddzw(k)
-
-                ENDDO
-             ENDDO
-
-!
-!--          Position beneath wall
-!--          (2) - Will allways be executed.
-!--          'bottom and wall: use u_0,v_0 and wall functions'
-             DO  j = nys, nyn
-!
-!--             Compute gradients at north- and south-facing surfaces.
-!--             First, for default surfaces, then for urban surfaces. 
-!--             Note, so far no natural vertical surfaces implemented
-                DO  l = 0, 1
-                   surf_s = surf_def_v(l)%start_index(j,i)
-                   surf_e = surf_def_v(l)%end_index(j,i)
-                   DO  m = surf_s, surf_e
-                      k           = surf_def_v(l)%k(m)
-                      usvs        = surf_def_v(l)%mom_flux_tke(0,m)
-                      wsvs        = surf_def_v(l)%mom_flux_tke(1,m)
-      
-                      km_neutral = kappa * ( usvs**2 + wsvs**2 )**0.25_wp      &
-                                      * 0.5_wp * dy
-!
-!--                   -1.0 for right-facing wall, 1.0 for left-facing wall
-                      sign_dir = MERGE( 1.0_wp, -1.0_wp,                       &
-                                        BTEST( wall_flags_0(k,j-1,i), 0 ) ) 
-                      dudy(k,j) = sign_dir * usvs / ( km_neutral + 1E-10_wp )
-                      dwdy(k,j) = sign_dir * wsvs / ( km_neutral + 1E-10_wp )
-                   ENDDO
-!
-!--                Natural surfaces
-                   surf_s = surf_lsm_v(l)%start_index(j,i)
-                   surf_e = surf_lsm_v(l)%end_index(j,i)
-                   DO  m = surf_s, surf_e
-                      k           = surf_lsm_v(l)%k(m)
-                      usvs        = surf_lsm_v(l)%mom_flux_tke(0,m)
-                      wsvs        = surf_lsm_v(l)%mom_flux_tke(1,m)
-      
-                      km_neutral = kappa * ( usvs**2 + wsvs**2 )**0.25_wp      &
-                                      * 0.5_wp * dy
-!
-!--                   -1.0 for right-facing wall, 1.0 for left-facing wall
-                      sign_dir = MERGE( 1.0_wp, -1.0_wp,                       &
-                                        BTEST( wall_flags_0(k,j-1,i), 0 ) ) 
-                      dudy(k,j) = sign_dir * usvs / ( km_neutral + 1E-10_wp )
-                      dwdy(k,j) = sign_dir * wsvs / ( km_neutral + 1E-10_wp )
-                   ENDDO 
-!
-!--                Urban surfaces
-                   surf_s = surf_usm_v(l)%start_index(j,i)
-                   surf_e = surf_usm_v(l)%end_index(j,i)
-                   DO  m = surf_s, surf_e
-                      k           = surf_usm_v(l)%k(m)
-                      usvs        = surf_usm_v(l)%mom_flux_tke(0,m)
-                      wsvs        = surf_usm_v(l)%mom_flux_tke(1,m)
-      
-                      km_neutral = kappa * ( usvs**2 + wsvs**2 )**0.25_wp      &
-                                      * 0.5_wp * dy
-!
-!--                   -1.0 for right-facing wall, 1.0 for left-facing wall
-                      sign_dir = MERGE( 1.0_wp, -1.0_wp,                       &
-                                        BTEST( wall_flags_0(k,j-1,i), 0 ) ) 
-                      dudy(k,j) = sign_dir * usvs / ( km_neutral + 1E-10_wp )
-                      dwdy(k,j) = sign_dir * wsvs / ( km_neutral + 1E-10_wp )
-                   ENDDO  
-                ENDDO
-!
-!--             Compute gradients at east- and west-facing walls
-                DO  l = 2, 3
-                   surf_s = surf_def_v(l)%start_index(j,i)
-                   surf_e = surf_def_v(l)%end_index(j,i)
-                   DO  m = surf_s, surf_e
-                      k     = surf_def_v(l)%k(m)
-                      vsus  = surf_def_v(l)%mom_flux_tke(0,m)
-                      wsus  = surf_def_v(l)%mom_flux_tke(1,m)
-
-                      km_neutral = kappa * ( vsus**2 + wsus**2 )**0.25_wp      &
-                                         * 0.5_wp * dx
-!
-!--                   -1.0 for right-facing wall, 1.0 for left-facing wall
-                      sign_dir = MERGE( 1.0_wp, -1.0_wp,                       &
-                                        BTEST( wall_flags_0(k,j,i-1), 0 ) ) 
-                      dvdx(k,j) = sign_dir * vsus / ( km_neutral + 1E-10_wp )
-                      dwdx(k,j) = sign_dir * wsus / ( km_neutral + 1E-10_wp )
-                   ENDDO 
-!
-!--                Natural surfaces                   
-                   surf_s = surf_lsm_v(l)%start_index(j,i)
-                   surf_e = surf_lsm_v(l)%end_index(j,i)
-                   DO  m = surf_s, surf_e
-                      k     = surf_lsm_v(l)%k(m)
-                      vsus  = surf_lsm_v(l)%mom_flux_tke(0,m)
-                      wsus  = surf_lsm_v(l)%mom_flux_tke(1,m)
-
-                      km_neutral = kappa * ( vsus**2 + wsus**2 )**0.25_wp      &
-                                         * 0.5_wp * dx
-!
-!--                   -1.0 for right-facing wall, 1.0 for left-facing wall
-                      sign_dir = MERGE( 1.0_wp, -1.0_wp,                       &
-                                        BTEST( wall_flags_0(k,j,i-1), 0 ) ) 
-                      dvdx(k,j) = sign_dir * vsus / ( km_neutral + 1E-10_wp )
-                      dwdx(k,j) = sign_dir * wsus / ( km_neutral + 1E-10_wp )
-                   ENDDO   
-!
-!--                Urban surfaces                   
-                   surf_s = surf_usm_v(l)%start_index(j,i)
-                   surf_e = surf_usm_v(l)%end_index(j,i)
-                   DO  m = surf_s, surf_e
-                      k     = surf_usm_v(l)%k(m)
-                      vsus  = surf_usm_v(l)%mom_flux_tke(0,m)
-                      wsus  = surf_usm_v(l)%mom_flux_tke(1,m)
-
-                      km_neutral = kappa * ( vsus**2 + wsus**2 )**0.25_wp      &
-                                         * 0.5_wp * dx
-!
-!--                   -1.0 for right-facing wall, 1.0 for left-facing wall
-                      sign_dir = MERGE( 1.0_wp, -1.0_wp,                       &
-                                        BTEST( wall_flags_0(k,j,i-1), 0 ) ) 
-                      dvdx(k,j) = sign_dir * vsus / ( km_neutral + 1E-10_wp )
-                      dwdx(k,j) = sign_dir * wsus / ( km_neutral + 1E-10_wp )
-                   ENDDO 
-                ENDDO
-!
-!--             Compute gradients at upward-facing surfaces
-                surf_s = surf_def_h(0)%start_index(j,i)
-                surf_e = surf_def_h(0)%end_index(j,i)
-                DO  m = surf_s, surf_e
-                   k = surf_def_h(0)%k(m)
-!
-!--                Please note, actually, an interpolation of u_0 and v_0 
-!--                onto the grid center would be required. However, this 
-!--                would require several data transfers between 2D-grid and
-!--                wall type. The effect of this missing interpolation is 
-!--                negligible. (See also production_e_init).
-                   dudz(k,j) = ( u(k+1,j,i) - surf_def_h(0)%u_0(m) ) * dd2zu(k)   
-                   dvdz(k,j) = ( v(k+1,j,i) - surf_def_h(0)%v_0(m) ) * dd2zu(k)
-            
-                ENDDO
-!
-!--             Natural surfaces
-                surf_s = surf_lsm_h%start_index(j,i)
-                surf_e = surf_lsm_h%end_index(j,i)
-                DO  m = surf_s, surf_e
-                   k = surf_lsm_h%k(m)
-
-                   dudz(k,j) = ( u(k+1,j,i) - surf_lsm_h%u_0(m) ) * dd2zu(k)   
-                   dvdz(k,j) = ( v(k+1,j,i) - surf_lsm_h%v_0(m) ) * dd2zu(k)
-            
-                ENDDO
-!
-!--             Urban surfaces
-                surf_s = surf_usm_h%start_index(j,i)
-                surf_e = surf_usm_h%end_index(j,i)
-                DO  m = surf_s, surf_e
-                   k = surf_usm_h%k(m)
-
-                   dudz(k,j) = ( u(k+1,j,i) - surf_usm_h%u_0(m) ) * dd2zu(k)   
-                   dvdz(k,j) = ( v(k+1,j,i) - surf_usm_h%v_0(m) ) * dd2zu(k)
-            
-                ENDDO
-!
-!--             Compute gradients at downward-facing walls, only for 
-!--             non-natural default surfaces
-                surf_s = surf_def_h(1)%start_index(j,i)
-                surf_e = surf_def_h(1)%end_index(j,i)
-                DO  m = surf_s, surf_e
-                   k = surf_def_h(1)%k(m)
-
-                   dudz(k,j) = ( surf_def_h(1)%u_0(m) - u(k-1,j,i) ) * dd2zu(k)   
-                   dvdz(k,j) = ( surf_def_h(1)%v_0(m) - v(k-1,j,i) ) * dd2zu(k)
-
-                ENDDO
-             ENDDO
-
-             DO  j = nys, nyn
-                DO  k = nzb+1, nzt
-
-                   def = 2.0_wp * ( dudx(k,j)**2 + dvdy(k,j)**2 + dwdz(k,j)**2 ) + &
-                                    dudy(k,j)**2 + dvdx(k,j)**2 + dwdx(k,j)**2 +   &
-                                    dwdy(k,j)**2 + dudz(k,j)**2 + dvdz(k,j)**2 +   &
-                         2.0_wp * ( dvdx(k,j)*dudy(k,j) + dwdx(k,j)*dudz(k,j)  +   &
-                                    dwdy(k,j)*dvdz(k,j) )
-
-                   IF ( def < 0.0_wp )  def = 0.0_wp
-
-                   flag  = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_0(k,j,i), 0 ) ) 
-
-                   tend(k,j,i) = tend(k,j,i) + km(k,j,i) * def * flag
-
-                ENDDO
-             ENDDO
-
-          ELSE
-
-             DO  j = nys, nyn
-!
-!--             Calculate TKE production by shear. Here, no additional
-!--             wall-bounded code is considered. 
-!--             Why?
-                DO  k = nzb+1, nzt
-
-                   dudx(k,j)  =           ( u(k,j,i+1) - u(k,j,i)     ) * ddx
-                   dudy(k,j)  = 0.25_wp * ( u(k,j+1,i) + u(k,j+1,i+1) -        &
-                                            u(k,j-1,i) - u(k,j-1,i+1) ) * ddy
-                   dudz(k,j)  = 0.5_wp  * ( u(k+1,j,i) + u(k+1,j,i+1) -        &
-                                            u(k-1,j,i) - u(k-1,j,i+1) ) *      &
-                                                                        dd2zu(k)
-
-                   dvdx(k,j)  = 0.25_wp * ( v(k,j,i+1) + v(k,j+1,i+1) -        &
-                                            v(k,j,i-1) - v(k,j+1,i-1) ) * ddx
-                   dvdy(k,j)  =           ( v(k,j+1,i) - v(k,j,i)     ) * ddy
-                   dvdz(k,j)  = 0.5_wp  * ( v(k+1,j,i) + v(k+1,j+1,i) -        &
-                                            v(k-1,j,i) - v(k-1,j+1,i) ) *      &
-                                                                        dd2zu(k)
-
-                   dwdx(k,j)  = 0.25_wp * ( w(k,j,i+1) + w(k-1,j,i+1) -        &
-                                            w(k,j,i-1) - w(k-1,j,i-1) ) * ddx
-                   dwdy(k,j)  = 0.25_wp * ( w(k,j+1,i) + w(k-1,j+1,i) -        &
-                                            w(k,j-1,i) - w(k-1,j-1,i) ) * ddy
-                   dwdz(k,j)  =           ( w(k,j,i)   - w(k-1,j,i)   ) *      &
-                                                                        ddzw(k)
-      
-                   def = 2.0_wp * (                                            &
-                                dudx(k,j)**2 + dvdy(k,j)**2 + dwdz(k,j)**2     &
-                                  ) +                                          &
-                                dudy(k,j)**2 + dvdx(k,j)**2 + dwdx(k,j)**2 +   &
-                                dwdy(k,j)**2 + dudz(k,j)**2 + dvdz(k,j)**2 +   &
-                         2.0_wp * (                                            &
-                                dvdx(k,j)*dudy(k,j) + dwdx(k,j)*dudz(k,j)  +   &
-                                dwdy(k,j)*dvdz(k,j)                            &
-                                  )
-
-                   IF ( def < 0.0_wp )  def = 0.0_wp
-
-                   flag  = MERGE( 1.0_wp, 0.0_wp,                              &
-                                  BTEST( wall_flags_0(k,j,i), 29 ) ) 
-                   tend(k,j,i) = tend(k,j,i) + km(k,j,i) * def * flag
-      
-                ENDDO
-             ENDDO
-
-          ENDIF
-
-!
-!--       If required, calculate TKE production by buoyancy
-          IF ( .NOT. neutral )  THEN
-
-             IF ( .NOT. humidity )  THEN
-
-                IF ( ocean )  THEN
-!
-!--                So far in the ocean no special treatment of density flux
-!--                in the bottom and top surface layer
-                   DO  j = nys, nyn
-                      DO  k = nzb+1, nzt
-                         tend(k,j,i) = tend(k,j,i) +                           &
-                                       kh(k,j,i) * g /                         &
-                              MERGE( rho_reference, prho(k,j,i),               &
-                                     use_single_reference_value ) *            &
-                                       ( prho(k+1,j,i) - prho(k-1,j,i) ) *     &
-                                       dd2zu(k) *                              &
-                                   MERGE( 1.0_wp, 0.0_wp,                      &
-                                          BTEST( wall_flags_0(k,j,i), 30 )     &
-                                        )                            *         &
-                                   MERGE( 1.0_wp, 0.0_wp,                      &
-                                          BTEST( wall_flags_0(k,j,i), 9 )      &
-                                        )  
-                      ENDDO
-!
-!--                   Treatment of near-surface grid points, at up- and down-
-!--                   ward facing surfaces
-                      IF ( use_surface_fluxes )  THEN
-                         DO  l = 0, 1
-                            surf_s = surf_def_h(l)%start_index(j,i)
-                            surf_e = surf_def_h(l)%end_index(j,i)
-                            DO  m = surf_s, surf_e
-                               k = surf_def_h(l)%k(m)
-                               tend(k,j,i) = tend(k,j,i) + g /                 &
-                                         MERGE( rho_reference, prho(k,j,i),    &
-                                                use_single_reference_value ) * &
-                                         drho_air_zw(k-1) *                    &
-                                         surf_def_h(l)%shf(m)
-                            ENDDO
-                         ENDDO
-
-                      ENDIF
-
-                      IF ( use_top_fluxes )  THEN
-                         surf_s = surf_def_h(2)%start_index(j,i)
-                         surf_e = surf_def_h(2)%end_index(j,i)
-                         DO  m = surf_s, surf_e
-                            k = surf_def_h(2)%k(m)
-                            tend(k,j,i) = tend(k,j,i) + g /                    &
-                                         MERGE( rho_reference, prho(k,j,i),    &
-                                                use_single_reference_value ) * &
-                                         drho_air_zw(k) *                      &
-                                         surf_def_h(2)%shf(m) 
-                         ENDDO
-                      ENDIF
-
-                   ENDDO
-
-                ELSE
-
-                   DO  j = nys, nyn
-                      DO  k = nzb+1, nzt
-!
-!--                      Flag 9 is used to mask top fluxes, flag 30 to mask
-!--                      surface fluxes
-                         tend(k,j,i) = tend(k,j,i) -                           &
-                                       kh(k,j,i) * g /                         &
-                                   MERGE( pt_reference, pt(k,j,i),             &
-                                           use_single_reference_value ) *      &
-                                       ( pt(k+1,j,i) - pt(k-1,j,i) ) *         &
-                                       dd2zu(k)                      *         &
-                                   MERGE( 1.0_wp, 0.0_wp,                      &
-                                          BTEST( wall_flags_0(k,j,i), 30 )     &
-                                        )                            *         &
-                                   MERGE( 1.0_wp, 0.0_wp,                      &
-                                          BTEST( wall_flags_0(k,j,i), 9 )      &
-                                        )  
-                      ENDDO
-
-                      IF ( use_surface_fluxes )  THEN
-!
-!--                      Default surfaces, up- and downward-facing
-                         DO  l = 0, 1
-                            surf_s = surf_def_h(l)%start_index(j,i)
-                            surf_e = surf_def_h(l)%end_index(j,i)
-                            DO  m = surf_s, surf_e
-                               k = surf_def_h(l)%k(m)
-                               tend(k,j,i) = tend(k,j,i) + g /                 &
-                                    MERGE( pt_reference, pt(k,j,i),            &
-                                           use_single_reference_value )        &
-                                                      * drho_air_zw(k-1)       &
-                                                      * surf_def_h(l)%shf(m)    
-                            ENDDO      
-                         ENDDO
-!
-!--                      Natural surfaces
-                         surf_s = surf_lsm_h%start_index(j,i)
-                         surf_e = surf_lsm_h%end_index(j,i)
-                         DO  m = surf_s, surf_e
-                            k = surf_lsm_h%k(m)
-                            tend(k,j,i) = tend(k,j,i) + g /                    &
-                                    MERGE( pt_reference, pt(k,j,i),            &
-                                           use_single_reference_value )        &
-                                                      * drho_air_zw(k-1)       &
-                                                      * surf_lsm_h%shf(m)   
-                         ENDDO
-!
-!--                      Urban surfaces
-                         surf_s = surf_usm_h%start_index(j,i)
-                         surf_e = surf_usm_h%end_index(j,i)
-                         DO  m = surf_s, surf_e
-                            k = surf_usm_h%k(m)
-                            tend(k,j,i) = tend(k,j,i) + g /                    &
-                                    MERGE( pt_reference, pt(k,j,i),            &
-                                           use_single_reference_value )        &
-                                                      * drho_air_zw(k-1)       &
-                                                      * surf_usm_h%shf(m)   
-                         ENDDO                          
-                      ENDIF
-
-                      IF ( use_top_fluxes )  THEN
-                         surf_s = surf_def_h(2)%start_index(j,i)
-                         surf_e = surf_def_h(2)%end_index(j,i)
-                         DO  m = surf_s, surf_e
-                            k = surf_def_h(2)%k(m)
-                            tend(k,j,i) = tend(k,j,i) + g /                    &
-                                    MERGE( pt_reference, pt(k,j,i),            &
-                                           use_single_reference_value )        &
-                                                      * drho_air_zw(k)         &
-                                                      * surf_def_h(2)%shf(m) 
-                         ENDDO
-                      ENDIF
-                   ENDDO
-
-                ENDIF
-
-             ELSE
-
-                DO  j = nys, nyn
-
-                   DO  k = nzb+1, nzt
-!
-!--                   Flag 9 is used to mask top fluxes, flag 30 to mask
-!--                   surface fluxes
-                      IF ( .NOT. cloud_physics .AND. .NOT. cloud_droplets ) THEN
-                         k1 = 1.0_wp + 0.61_wp * q(k,j,i)
-                         k2 = 0.61_wp * pt(k,j,i)
-                         tend(k,j,i) = tend(k,j,i) - kh(k,j,i) *               &
-                                         g /                                   &
-                                    MERGE( vpt_reference, vpt(k,j,i),          &
-                                           use_single_reference_value ) *      &
-                                         ( k1 * ( pt(k+1,j,i)-pt(k-1,j,i) ) +  &
-                                           k2 * ( q(k+1,j,i) - q(k-1,j,i) )    &
-                                         ) * dd2zu(k) *                        &
-                                      MERGE( 1.0_wp, 0.0_wp,                   &
-                                             BTEST( wall_flags_0(k,j,i), 30 )  &
-                                           )          *                        &
-                                      MERGE( 1.0_wp, 0.0_wp,                   &
-                                             BTEST( wall_flags_0(k,j,i), 9 )   &
-                                           )
-                      ELSE IF ( cloud_physics )  THEN
-                         IF ( ql(k,j,i) == 0.0_wp )  THEN
-                            k1 = 1.0_wp + 0.61_wp * q(k,j,i)
-                            k2 = 0.61_wp * pt(k,j,i)
-                         ELSE
-                            theta = pt(k,j,i) + pt_d_t(k) * l_d_cp * ql(k,j,i)
-                            temp  = theta * t_d_pt(k)
-                            k1 = ( 1.0_wp - q(k,j,i) + 1.61_wp *               &
-                                          ( q(k,j,i) - ql(k,j,i) ) *           &
-                                 ( 1.0_wp + 0.622_wp * l_d_r / temp ) ) /      &
-                                 ( 1.0_wp + 0.622_wp * l_d_r * l_d_cp *        &
-                                 ( q(k,j,i) - ql(k,j,i) ) / ( temp * temp ) )
-                            k2 = theta * ( l_d_cp / temp * k1 - 1.0_wp )
-                         ENDIF
-                         tend(k,j,i) = tend(k,j,i) - kh(k,j,i) *               &
-                                         g /                                   &
-                                    MERGE( vpt_reference, vpt(k,j,i),          &
-                                           use_single_reference_value ) *      &
-                                         ( k1 * ( pt(k+1,j,i)-pt(k-1,j,i) ) +  &
-                                           k2 * ( q(k+1,j,i) - q(k-1,j,i) )    &
-                                         ) * dd2zu(k) *                        &
-                                      MERGE( 1.0_wp, 0.0_wp,                   &
-                                             BTEST( wall_flags_0(k,j,i), 30 )  &
-                                           )          *                        &
-                                      MERGE( 1.0_wp, 0.0_wp,                   &
-                                             BTEST( wall_flags_0(k,j,i), 9 )   &
-                                           )
-                      ELSE IF ( cloud_droplets )  THEN
-                         k1 = 1.0_wp + 0.61_wp * q(k,j,i) - ql(k,j,i)
-                         k2 = 0.61_wp * pt(k,j,i)
-                         tend(k,j,i) = tend(k,j,i) -                           & 
-                                       kh(k,j,i) * g /                         &
-                                    MERGE( vpt_reference, vpt(k,j,i),          &
-                                           use_single_reference_value ) *      &
-                                       ( k1 * ( pt(k+1,j,i)- pt(k-1,j,i) ) +   &
-                                         k2 * ( q(k+1,j,i) -  q(k-1,j,i) ) -   &
-                                         pt(k,j,i) * ( ql(k+1,j,i) -           &
-                                         ql(k-1,j,i) ) ) * dd2zu(k) *          &
-                                      MERGE( 1.0_wp, 0.0_wp,                   &
-                                             BTEST( wall_flags_0(k,j,i), 30 )  &
-                                           )                        *          &
-                                      MERGE( 1.0_wp, 0.0_wp,                   &
-                                             BTEST( wall_flags_0(k,j,i), 9 )   &
-                                           )
-                      ENDIF
-
-                   ENDDO
-
-                ENDDO
-
-                IF ( use_surface_fluxes )  THEN
-
-                   DO  j = nys, nyn
-!
-!--                   Treat horizontal default surfaces
-                      DO  l = 0, 1
-                         surf_s = surf_def_h(l)%start_index(j,i)
-                         surf_e = surf_def_h(l)%end_index(j,i)
-                         DO  m = surf_s, surf_e
-                            k = surf_def_h(l)%k(m)
-
-                            IF ( .NOT. cloud_physics .AND. .NOT. cloud_droplets ) THEN
-                               k1 = 1.0_wp + 0.61_wp * q(k,j,i)
-                               k2 = 0.61_wp * pt(k,j,i)
-                            ELSE IF ( cloud_physics )  THEN
-                               IF ( ql(k,j,i) == 0.0_wp )  THEN
-                                  k1 = 1.0_wp + 0.61_wp * q(k,j,i)
-                                  k2 = 0.61_wp * pt(k,j,i)
-                               ELSE
-                                  theta = pt(k,j,i) + pt_d_t(k) * l_d_cp * ql(k,j,i)
-                                  temp  = theta * t_d_pt(k)
-                                  k1 = ( 1.0_wp - q(k,j,i) + 1.61_wp *         &
-                                             ( q(k,j,i) - ql(k,j,i) ) *        &
-                                    ( 1.0_wp + 0.622_wp * l_d_r / temp ) ) /   &
-                                    ( 1.0_wp + 0.622_wp * l_d_r * l_d_cp *     &
-                                    ( q(k,j,i) - ql(k,j,i) ) / ( temp * temp ) )
-                                  k2 = theta * ( l_d_cp / temp * k1 - 1.0_wp )
-                               ENDIF
-                            ELSE IF ( cloud_droplets )  THEN
-                               k1 = 1.0_wp + 0.61_wp * q(k,j,i) - ql(k,j,i)
-                               k2 = 0.61_wp * pt(k,j,i)
-                            ENDIF
-
-                            tend(k,j,i) = tend(k,j,i) + g /                    &
-                                    MERGE( vpt_reference, vpt(k,j,i),          &
-                                           use_single_reference_value ) *      &
-                                               ( k1 * surf_def_h(l)%shf(m) +   &
-                                                 k2 * surf_def_h(l)%qsws(m)    &
-                                               ) * drho_air_zw(k-1)
-                         ENDDO
-                      ENDDO
-!
-!--                   Treat horizontal natural surfaces
-                      surf_s = surf_lsm_h%start_index(j,i)
-                      surf_e = surf_lsm_h%end_index(j,i)
-                      DO  m = surf_s, surf_e
-                         k = surf_lsm_h%k(m)
-
-                         IF ( .NOT. cloud_physics .AND. .NOT. cloud_droplets ) THEN
-                            k1 = 1.0_wp + 0.61_wp * q(k,j,i)
-                            k2 = 0.61_wp * pt(k,j,i)
-                         ELSE IF ( cloud_physics )  THEN
-                            IF ( ql(k,j,i) == 0.0_wp )  THEN
-                               k1 = 1.0_wp + 0.61_wp * q(k,j,i)
-                               k2 = 0.61_wp * pt(k,j,i)
-                            ELSE
-                               theta = pt(k,j,i) + pt_d_t(k) * l_d_cp * ql(k,j,i)
-                               temp  = theta * t_d_pt(k)
-                               k1 = ( 1.0_wp - q(k,j,i) + 1.61_wp *            &
-                                             ( q(k,j,i) - ql(k,j,i) ) *        &
-                                    ( 1.0_wp + 0.622_wp * l_d_r / temp ) ) /   &
-                                    ( 1.0_wp + 0.622_wp * l_d_r * l_d_cp *     &
-                                    ( q(k,j,i) - ql(k,j,i) ) / ( temp * temp ) )
-                               k2 = theta * ( l_d_cp / temp * k1 - 1.0_wp )
-                            ENDIF
-                         ELSE IF ( cloud_droplets )  THEN
-                            k1 = 1.0_wp + 0.61_wp * q(k,j,i) - ql(k,j,i)
-                            k2 = 0.61_wp * pt(k,j,i)
-                         ENDIF
-
-                         tend(k,j,i) = tend(k,j,i) + g /                       &
-                                    MERGE( vpt_reference, vpt(k,j,i),          &
-                                           use_single_reference_value ) *      &
-                                               ( k1 * surf_lsm_h%shf(m) +      &
-                                                 k2 * surf_lsm_h%qsws(m)       &
-                                               ) * drho_air_zw(k-1)
-                      ENDDO
-!
-!--                   Treat horizontal urban surfaces
-                      surf_s = surf_usm_h%start_index(j,i)
-                      surf_e = surf_usm_h%end_index(j,i)
-                      DO  m = surf_s, surf_e
-                         k = surf_lsm_h%k(m)
-
-                         IF ( .NOT. cloud_physics .AND. .NOT. cloud_droplets ) THEN
-                            k1 = 1.0_wp + 0.61_wp * q(k,j,i)
-                            k2 = 0.61_wp * pt(k,j,i)
-                         ELSE IF ( cloud_physics )  THEN
-                            IF ( ql(k,j,i) == 0.0_wp )  THEN
-                               k1 = 1.0_wp + 0.61_wp * q(k,j,i)
-                               k2 = 0.61_wp * pt(k,j,i)
-                            ELSE
-                               theta = pt(k,j,i) + pt_d_t(k) * l_d_cp * ql(k,j,i)
-                               temp  = theta * t_d_pt(k)
-                               k1 = ( 1.0_wp - q(k,j,i) + 1.61_wp *            &
-                                             ( q(k,j,i) - ql(k,j,i) ) *        &
-                                    ( 1.0_wp + 0.622_wp * l_d_r / temp ) ) /   &
-                                    ( 1.0_wp + 0.622_wp * l_d_r * l_d_cp *     &
-                                    ( q(k,j,i) - ql(k,j,i) ) / ( temp * temp ) )
-                               k2 = theta * ( l_d_cp / temp * k1 - 1.0_wp )
-                            ENDIF
-                         ELSE IF ( cloud_droplets )  THEN
-                            k1 = 1.0_wp + 0.61_wp * q(k,j,i) - ql(k,j,i)
-                            k2 = 0.61_wp * pt(k,j,i)
-                         ENDIF
-
-                         tend(k,j,i) = tend(k,j,i) + g /                       &
-                                    MERGE( vpt_reference, vpt(k,j,i),          &
-                                           use_single_reference_value ) *      &
-                                               ( k1 * surf_usm_h%shf(m) +      &
-                                                 k2 * surf_usm_h%qsws(m)       &
-                                               ) * drho_air_zw(k-1)
-                      ENDDO
-
-                   ENDDO
-
-                ENDIF
-
-                IF ( use_top_fluxes )  THEN
-
-                   DO  j = nys, nyn
-
-                      surf_s = surf_def_h(2)%start_index(j,i)
-                      surf_e = surf_def_h(2)%end_index(j,i)
-                      DO  m = surf_s, surf_e
-                         k = surf_def_h(2)%k(m)
-
-                         IF ( .NOT. cloud_physics .AND. .NOT. cloud_droplets ) THEN
-                            k1 = 1.0_wp + 0.61_wp * q(k,j,i)
-                            k2 = 0.61_wp * pt(k,j,i)
-                         ELSE IF ( cloud_physics )  THEN
-                            IF ( ql(k,j,i) == 0.0_wp )  THEN
-                               k1 = 1.0_wp + 0.61_wp * q(k,j,i)
-                               k2 = 0.61_wp * pt(k,j,i)
-                            ELSE
-                               theta = pt(k,j,i) + pt_d_t(k) * l_d_cp * ql(k,j,i)
-                               temp  = theta * t_d_pt(k)
-                               k1 = ( 1.0_wp - q(k,j,i) + 1.61_wp *            &
-                                          ( q(k,j,i) - ql(k,j,i) ) *           &
-                                 ( 1.0_wp + 0.622_wp * l_d_r / temp ) ) /      &
-                                 ( 1.0_wp + 0.622_wp * l_d_r * l_d_cp *        &
-                                 ( q(k,j,i) - ql(k,j,i) ) / ( temp * temp ) )
-                               k2 = theta * ( l_d_cp / temp * k1 - 1.0_wp )
-                            ENDIF
-                         ELSE IF ( cloud_droplets )  THEN
-                            k1 = 1.0_wp + 0.61_wp * q(k,j,i) - ql(k,j,i)
-                            k2 = 0.61_wp * pt(k,j,i)
-                         ENDIF
-
-                         tend(k,j,i) = tend(k,j,i) + g /                       &
-                                    MERGE( vpt_reference, vpt(k,j,i),          &
-                                           use_single_reference_value ) *      &
-                                               ( k1 * surf_def_h(2)%shf(m) +   &
-                                                 k2 * surf_def_h(2)%qsws(m)    &
-                                               ) * drho_air_zw(k)
-
-                      ENDDO
-
-                   ENDDO
-
-                ENDIF
-
-             ENDIF
-
-          ENDIF
-
-       ENDDO
-
-    END SUBROUTINE production_e
-
-
-!------------------------------------------------------------------------------!
-! Description:
-! ------------
-!> Call for grid point i,j
-!------------------------------------------------------------------------------!
-    SUBROUTINE production_e_ij( i, j )
-
-       USE arrays_3d,                                                          &
-           ONLY:  ddzw, dd2zu, drho_air_zw, kh, km, prho, pt, q, ql, tend, u,  &
-                  v, vpt, w
-
-       USE cloud_parameters,                                                   &
-           ONLY:  l_d_cp, l_d_r, pt_d_t, t_d_pt
-
-       USE control_parameters,                                                 &
-           ONLY:  cloud_droplets, cloud_physics, constant_flux_layer, g,       &
-                  humidity, kappa, neutral, ocean, pt_reference,               &
-                  rho_reference, use_single_reference_value,                   &
-                  use_surface_fluxes, use_top_fluxes, vpt_reference
-
-       USE grid_variables,                                                     &
-           ONLY:  ddx, dx, ddy, dy
-
-       USE indices,                                                            &
-           ONLY:  nxl, nxr, nys, nyn, nzb, nzb, nzt, wall_flags_0
-
-       USE surface_mod,                                                        &
-           ONLY :  surf_def_h, surf_def_v, surf_lsm_h, surf_lsm_v, surf_usm_h, &
-                   surf_usm_v 
-
-       IMPLICIT NONE
-
-       INTEGER(iwp) ::  i       !< running index x-direction
-       INTEGER(iwp) ::  j       !< running index y-direction
-       INTEGER(iwp) ::  k       !< running index z-direction
-       INTEGER(iwp) ::  l       !< running index for different surface type orientation
-       INTEGER(iwp) ::  m       !< running index surface elements
-       INTEGER(iwp) ::  surf_e  !< end index of surface elements at given i-j position
-       INTEGER(iwp) ::  surf_s  !< start index of surface elements at given i-j position
-
-       REAL(wp)     ::  def         !<
-       REAL(wp)     ::  flag        !< flag to mask topography
-       REAL(wp)     ::  k1          !<
-       REAL(wp)     ::  k2          !<
-       REAL(wp)     ::  km_neutral  !< diffusion coefficient assuming neutral conditions - used to compute shear production at surfaces
-       REAL(wp)     ::  theta       !<
-       REAL(wp)     ::  temp        !<
-       REAL(wp)     ::  sign_dir    !< sign of wall-tke flux, depending on wall orientation 
-       REAL(wp)     ::  usvs        !< momentum flux u"v"
-       REAL(wp)     ::  vsus        !< momentum flux v"u"
-       REAL(wp)     ::  wsus        !< momentum flux w"u"
-       REAL(wp)     ::  wsvs        !< momentum flux w"v"
-
-
-       REAL(wp), DIMENSION(nzb+1:nzt)  ::  dudx        !< Gradient of u-component in x-direction
-       REAL(wp), DIMENSION(nzb+1:nzt)  ::  dudy        !< Gradient of u-component in y-direction
-       REAL(wp), DIMENSION(nzb+1:nzt)  ::  dudz        !< Gradient of u-component in z-direction
-       REAL(wp), DIMENSION(nzb+1:nzt)  ::  dvdx        !< Gradient of v-component in x-direction
-       REAL(wp), DIMENSION(nzb+1:nzt)  ::  dvdy        !< Gradient of v-component in y-direction
-       REAL(wp), DIMENSION(nzb+1:nzt)  ::  dvdz        !< Gradient of v-component in z-direction
-       REAL(wp), DIMENSION(nzb+1:nzt)  ::  dwdx        !< Gradient of w-component in x-direction
-       REAL(wp), DIMENSION(nzb+1:nzt)  ::  dwdy        !< Gradient of w-component in y-direction
-       REAL(wp), DIMENSION(nzb+1:nzt)  ::  dwdz        !< Gradient of w-component in z-direction
-
-
-       IF ( constant_flux_layer )  THEN
-!
-!--       Calculate TKE production by shear. Calculate gradients at all grid 
-!--       points first, gradients at surface-bounded grid points will be 
-!--       overwritten further below. 
-          DO  k = nzb+1, nzt
-
-             dudx(k)  =           ( u(k,j,i+1) - u(k,j,i)     ) * ddx
-             dudy(k)  = 0.25_wp * ( u(k,j+1,i) + u(k,j+1,i+1) -                &
-                                    u(k,j-1,i) - u(k,j-1,i+1) ) * ddy 
-             dudz(k)  = 0.5_wp  * ( u(k+1,j,i) + u(k+1,j,i+1) -                &
-                                    u(k-1,j,i) - u(k-1,j,i+1) ) * dd2zu(k) 
-
-             dvdx(k)  = 0.25_wp * ( v(k,j,i+1) + v(k,j+1,i+1) -                &
-                                    v(k,j,i-1) - v(k,j+1,i-1) ) * ddx      
-             dvdy(k)  =           ( v(k,j+1,i) - v(k,j,i)     ) * ddy
-             dvdz(k)  = 0.5_wp  * ( v(k+1,j,i) + v(k+1,j+1,i) -                &
-                                    v(k-1,j,i) - v(k-1,j+1,i) ) * dd2zu(k) 
-
-             dwdx(k)  = 0.25_wp * ( w(k,j,i+1) + w(k-1,j,i+1) -                &
-                                    w(k,j,i-1) - w(k-1,j,i-1) ) * ddx      
-             dwdy(k)  = 0.25_wp * ( w(k,j+1,i) + w(k-1,j+1,i) -                &
-                                    w(k,j-1,i) - w(k-1,j-1,i) ) * ddy      
-             dwdz(k)  =           ( w(k,j,i)   - w(k-1,j,i)   ) * ddzw(k)
-
-          ENDDO
-!
-!--       Compute gradients at north- and south-facing surfaces.
-!--       Note, no vertical natural surfaces so far.
-          DO  l = 0, 1
-!
-!--          Default surfaces
-             surf_s = surf_def_v(l)%start_index(j,i)
-             surf_e = surf_def_v(l)%end_index(j,i)
-             DO  m = surf_s, surf_e
-                k           = surf_def_v(l)%k(m)
-                usvs        = surf_def_v(l)%mom_flux_tke(0,m)
-                wsvs        = surf_def_v(l)%mom_flux_tke(1,m)
-
-                km_neutral = kappa * ( usvs**2 + wsvs**2 )**0.25_wp            &
-                                * 0.5_wp * dy
-!
-!--             -1.0 for right-facing wall, 1.0 for left-facing wall
-                sign_dir = MERGE( 1.0_wp, -1.0_wp,                             &
-                                  BTEST( wall_flags_0(k,j-1,i), 0 ) ) 
-                dudy(k) = sign_dir * usvs / ( km_neutral + 1E-10_wp )
-                dwdy(k) = sign_dir * wsvs / ( km_neutral + 1E-10_wp )
-             ENDDO   
-!
-!--          Natural surfaces
-             surf_s = surf_lsm_v(l)%start_index(j,i)
-             surf_e = surf_lsm_v(l)%end_index(j,i)
-             DO  m = surf_s, surf_e
-                k           = surf_lsm_v(l)%k(m)
-                usvs        = surf_lsm_v(l)%mom_flux_tke(0,m)
-                wsvs        = surf_lsm_v(l)%mom_flux_tke(1,m)
-
-                km_neutral = kappa * ( usvs**2 + wsvs**2 )**0.25_wp            &
-                                * 0.5_wp * dy
-!
-!--             -1.0 for right-facing wall, 1.0 for left-facing wall
-                sign_dir = MERGE( 1.0_wp, -1.0_wp,                             &
-                                  BTEST( wall_flags_0(k,j-1,i), 0 ) ) 
-                dudy(k) = sign_dir * usvs / ( km_neutral + 1E-10_wp )
-                dwdy(k) = sign_dir * wsvs / ( km_neutral + 1E-10_wp )
-             ENDDO 
-!
-!--          Urban surfaces
-             surf_s = surf_usm_v(l)%start_index(j,i)
-             surf_e = surf_usm_v(l)%end_index(j,i)
-             DO  m = surf_s, surf_e
-                k           = surf_usm_v(l)%k(m)
-                usvs        = surf_usm_v(l)%mom_flux_tke(0,m)
-                wsvs        = surf_usm_v(l)%mom_flux_tke(1,m)
-
-                km_neutral = kappa * ( usvs**2 + wsvs**2 )**0.25_wp            &
-                                * 0.5_wp * dy
-!
-!--             -1.0 for right-facing wall, 1.0 for left-facing wall
-                sign_dir = MERGE( 1.0_wp, -1.0_wp,                             &
-                                  BTEST( wall_flags_0(k,j-1,i), 0 ) ) 
-                dudy(k) = sign_dir * usvs / ( km_neutral + 1E-10_wp )
-                dwdy(k) = sign_dir * wsvs / ( km_neutral + 1E-10_wp )
-             ENDDO 
-          ENDDO
-!
-!--       Compute gradients at east- and west-facing walls
-          DO  l = 2, 3
-!
-!--          Default surfaces
-             surf_s = surf_def_v(l)%start_index(j,i)
-             surf_e = surf_def_v(l)%end_index(j,i)
-             DO  m = surf_s, surf_e
-                k           = surf_def_v(l)%k(m)
-                vsus        = surf_def_v(l)%mom_flux_tke(0,m)
-                wsus        = surf_def_v(l)%mom_flux_tke(1,m)
-
-                km_neutral = kappa * ( vsus**2 + wsus**2 )**0.25_wp            &
-                                   * 0.5_wp * dx
-!
-!--             -1.0 for right-facing wall, 1.0 for left-facing wall
-                sign_dir = MERGE( 1.0_wp, -1.0_wp,                             &
-                                  BTEST( wall_flags_0(k,j,i-1), 0 ) )
-                dvdx(k) = sign_dir * vsus / ( km_neutral + 1E-10_wp )
-                dwdx(k) = sign_dir * wsus / ( km_neutral + 1E-10_wp )
-             ENDDO 
-!
-!--          Natural surfaces
-             surf_s = surf_lsm_v(l)%start_index(j,i)
-             surf_e = surf_lsm_v(l)%end_index(j,i)
-             DO  m = surf_s, surf_e
-                k           = surf_lsm_v(l)%k(m)
-                vsus        = surf_lsm_v(l)%mom_flux_tke(0,m)
-                wsus        = surf_lsm_v(l)%mom_flux_tke(1,m)
-
-                km_neutral = kappa * ( vsus**2 + wsus**2 )**0.25_wp            &
-                                   * 0.5_wp * dx
-!
-!--             -1.0 for right-facing wall, 1.0 for left-facing wall
-                sign_dir = MERGE( 1.0_wp, -1.0_wp,                             &
-                                  BTEST( wall_flags_0(k,j,i-1), 0 ) ) 
-                dvdx(k) = sign_dir * vsus / ( km_neutral + 1E-10_wp )
-                dwdx(k) = sign_dir * wsus / ( km_neutral + 1E-10_wp )
-             ENDDO 
-!
-!--          Urban surfaces
-             surf_s = surf_usm_v(l)%start_index(j,i)
-             surf_e = surf_usm_v(l)%end_index(j,i)
-             DO  m = surf_s, surf_e
-                k           = surf_usm_v(l)%k(m)
-                vsus        = surf_usm_v(l)%mom_flux_tke(0,m)
-                wsus        = surf_usm_v(l)%mom_flux_tke(1,m)
-
-                km_neutral = kappa * ( vsus**2 + wsus**2 )**0.25_wp            &
-                                   * 0.5_wp * dx
-!
-!--             -1.0 for right-facing wall, 1.0 for left-facing wall
-                sign_dir = MERGE( 1.0_wp, -1.0_wp,                             &
-                                  BTEST( wall_flags_0(k,j,i-1), 0 ) ) 
-                dvdx(k) = sign_dir * vsus / ( km_neutral + 1E-10_wp )
-                dwdx(k) = sign_dir * wsus / ( km_neutral + 1E-10_wp )
-             ENDDO 
-          ENDDO
-!
-!--       Compute gradients at upward-facing walls, first for 
-!--       non-natural default surfaces
-          surf_s = surf_def_h(0)%start_index(j,i)
-          surf_e = surf_def_h(0)%end_index(j,i)
-          DO  m = surf_s, surf_e
-             k = surf_def_h(0)%k(m)
-!
-!--          Please note, actually, an interpolation of u_0 and v_0 
-!--          onto the grid center would be required. However, this 
-!--          would require several data transfers between 2D-grid and
-!--          wall type. The effect of this missing interpolation is 
-!--          negligible. (See also production_e_init).
-             dudz(k)     = ( u(k+1,j,i) - surf_def_h(0)%u_0(m) ) * dd2zu(k)   
-             dvdz(k)     = ( v(k+1,j,i) - surf_def_h(0)%v_0(m) ) * dd2zu(k)
-
-          ENDDO
-!
-!--       Natural surfaces
-          surf_s = surf_lsm_h%start_index(j,i)
-          surf_e = surf_lsm_h%end_index(j,i)
-          DO  m = surf_s, surf_e
-             k = surf_lsm_h%k(m)
-
-             dudz(k)     = ( u(k+1,j,i) - surf_lsm_h%u_0(m) ) * dd2zu(k)   
-             dvdz(k)     = ( v(k+1,j,i) - surf_lsm_h%v_0(m) ) * dd2zu(k)
-          ENDDO
-!
-!--       Urban surfaces
-          surf_s = surf_usm_h%start_index(j,i)
-          surf_e = surf_usm_h%end_index(j,i)
-          DO  m = surf_s, surf_e
-             k = surf_usm_h%k(m)
-
-             dudz(k)     = ( u(k+1,j,i) - surf_usm_h%u_0(m) ) * dd2zu(k)   
-             dvdz(k)     = ( v(k+1,j,i) - surf_usm_h%v_0(m) ) * dd2zu(k)
-          ENDDO
-!
-!--       Compute gradients at downward-facing walls, only for 
-!--       non-natural default surfaces
-          surf_s = surf_def_h(1)%start_index(j,i)
-          surf_e = surf_def_h(1)%end_index(j,i)
-          DO  m = surf_s, surf_e
-             k = surf_def_h(1)%k(m)
-
-             dudz(k)     = ( surf_def_h(1)%u_0(m) - u(k-1,j,i) ) * dd2zu(k)   
-             dvdz(k)     = ( surf_def_h(1)%v_0(m) - v(k-1,j,i) ) * dd2zu(k) 
-
-          ENDDO
-
-          DO  k = nzb+1, nzt
-
-             def = 2.0_wp * ( dudx(k)**2 + dvdy(k)**2 + dwdz(k)**2 ) +         &
-                              dudy(k)**2 + dvdx(k)**2 + dwdx(k)**2   +         &
-                              dwdy(k)**2 + dudz(k)**2 + dvdz(k)**2   +         &
-                   2.0_wp * ( dvdx(k)*dudy(k) + dwdx(k)*dudz(k) + dwdy(k)*dvdz(k) )
-
-             IF ( def < 0.0_wp )  def = 0.0_wp
-
-             flag  = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_0(k,j,i), 0 ) ) 
-
-             tend(k,j,i) = tend(k,j,i) + km(k,j,i) * def * flag
-
-          ENDDO
-
-       ELSE
-!
-!--       Calculate TKE production by shear. Here, no additional
-!--       wall-bounded code is considered. 
-!--       Why?
-          DO  k = nzb+1, nzt
-
-             dudx(k)  =           ( u(k,j,i+1) - u(k,j,i)     ) * ddx
-             dudy(k)  = 0.25_wp * ( u(k,j+1,i) + u(k,j+1,i+1) -                &
-                                    u(k,j-1,i) - u(k,j-1,i+1) ) * ddy
-             dudz(k)  = 0.5_wp  * ( u(k+1,j,i) + u(k+1,j,i+1) -                &
-                                    u(k-1,j,i) - u(k-1,j,i+1) ) * dd2zu(k)
-
-             dvdx(k)  = 0.25_wp * ( v(k,j,i+1) + v(k,j+1,i+1) -                &
-                                    v(k,j,i-1) - v(k,j+1,i-1) ) * ddx
-             dvdy(k)  =           ( v(k,j+1,i) - v(k,j,i)     ) * ddy
-             dvdz(k)  = 0.5_wp  * ( v(k+1,j,i) + v(k+1,j+1,i) -                &
-                                    v(k-1,j,i) - v(k-1,j+1,i) ) * dd2zu(k)
-
-             dwdx(k)  = 0.25_wp * ( w(k,j,i+1) + w(k-1,j,i+1) -                &
-                                    w(k,j,i-1) - w(k-1,j,i-1) ) * ddx
-             dwdy(k)  = 0.25_wp * ( w(k,j+1,i) + w(k-1,j+1,i) -                &
-                                    w(k,j-1,i) - w(k-1,j-1,i) ) * ddy
-             dwdz(k)  =           ( w(k,j,i)   - w(k-1,j,i)   ) * ddzw(k)
-
-             def = 2.0_wp * ( dudx(k)**2 + dvdy(k)**2 + dwdz(k)**2 ) +         &
-                              dudy(k)**2 + dvdx(k)**2 + dwdx(k)**2   +         &
-                              dwdy(k)**2 + dudz(k)**2 + dvdz(k)**2   +         &
-                   2.0_wp * ( dvdx(k)*dudy(k) + dwdx(k)*dudz(k) + dwdy(k)*dvdz(k) )
-
-             IF ( def < 0.0_wp )  def = 0.0_wp
-
-             flag        = MERGE( 1.0_wp, 0.0_wp,                              &
-                                  BTEST( wall_flags_0(k,j,i), 29 ) ) 
-             tend(k,j,i) = tend(k,j,i) + km(k,j,i) * def * flag
-
-          ENDDO
-
-       ENDIF
-
-!
-!--    If required, calculate TKE production by buoyancy
-       IF ( .NOT. neutral )  THEN
-
-          IF ( .NOT. humidity )  THEN
-
-             IF ( ocean )  THEN
-!
-!--             So far in the ocean no special treatment of density flux in
-!--             the bottom and top surface layer
-                DO  k = nzb+1, nzt
- 
-                   tend(k,j,i) = tend(k,j,i) +                                 &
-                                 kh(k,j,i) * g /                               &
-                                 MERGE( rho_reference, prho(k,j,i),            &
-                                        use_single_reference_value ) *         &
-                                 ( prho(k+1,j,i) - prho(k-1,j,i) ) *           &
-                                 dd2zu(k) *                                    &
-                                   MERGE( 1.0_wp, 0.0_wp,                      &
-                                          BTEST( wall_flags_0(k,j,i), 30 )     &
-                                        ) *                                    &
-                                   MERGE( 1.0_wp, 0.0_wp,                      &
-                                          BTEST( wall_flags_0(k,j,i), 9 )      &
-                                        )           
-                ENDDO
-
-                IF ( use_surface_fluxes )  THEN
-!
-!--                Default surfaces, up- and downward-facing
-                   DO  l = 0, 1
-                      surf_s = surf_def_h(l)%start_index(j,i)
-                      surf_e = surf_def_h(l)%end_index(j,i)
-                      DO  m = surf_s, surf_e
-                         k = surf_def_h(l)%k(m)
-                         tend(k,j,i) = tend(k,j,i) + g /                       &
-                                   MERGE( rho_reference, prho(k,j,i),          &
-                                          use_single_reference_value ) *       &
-                                   drho_air_zw(k-1) *                          &
-                                   surf_def_h(l)%shf(m)
-                      ENDDO
-                   ENDDO
-
-                ENDIF
-
-                IF ( use_top_fluxes )  THEN
-                   surf_s = surf_def_h(2)%start_index(j,i)
-                   surf_e = surf_def_h(2)%end_index(j,i)
-                   DO  m = surf_s, surf_e
-                      k = surf_def_h(2)%k(m)
-                      tend(k,j,i) = tend(k,j,i) + g /                          &
-                                   MERGE( rho_reference, prho(k,j,i),          &
-                                          use_single_reference_value ) *       &
-                                   drho_air_zw(k) *                            &
-                                   surf_def_h(2)%shf(m) 
-                   ENDDO
-                ENDIF
-
-             ELSE
-
-                DO  k = nzb+1, nzt
-!
-!--                Flag 9 is used to mask top fluxes, flag 30 to mask
-!--                surface fluxes
-                   tend(k,j,i) = tend(k,j,i) -                                 &
-                                 kh(k,j,i) * g /                               &
-                                   MERGE( pt_reference, pt(k,j,i),             &
-                                          use_single_reference_value ) *       &
-                                 ( pt(k+1,j,i) - pt(k-1,j,i) ) * dd2zu(k) *    &
-                                   MERGE( 1.0_wp, 0.0_wp,                      &
-                                          BTEST( wall_flags_0(k,j,i), 30 )     &
-                                        ) *                                    &
-                                   MERGE( 1.0_wp, 0.0_wp,                      &
-                                          BTEST( wall_flags_0(k,j,i), 9 )      &
-                                        )
-
-                ENDDO
-
-                IF ( use_surface_fluxes )  THEN
-!
-!--                Default surfaces, up- and downward-facing
-                   DO  l = 0, 1
-                      surf_s = surf_def_h(l)%start_index(j,i)
-                      surf_e = surf_def_h(l)%end_index(j,i)
-                      DO  m = surf_s, surf_e
-                         k = surf_def_h(l)%k(m)
-                         tend(k,j,i) = tend(k,j,i) + g /                       &
-                                   MERGE( pt_reference, pt(k,j,i),             &
-                                          use_single_reference_value ) *       &
-                                   drho_air_zw(k-1) *                          &
-                                   surf_def_h(l)%shf(m)
-                      ENDDO
-                   ENDDO
-!
-!--                Natural surfaces
-                   surf_s = surf_lsm_h%start_index(j,i)
-                   surf_e = surf_lsm_h%end_index(j,i)
-                   DO  m = surf_s, surf_e
-                      k = surf_lsm_h%k(m)
-                      tend(k,j,i) = tend(k,j,i) + g /                          &
-                                   MERGE( pt_reference, pt(k,j,i),             &
-                                          use_single_reference_value ) *       &
-                                   drho_air_zw(k-1) *                          &
-                                   surf_lsm_h%shf(m) 
-                   ENDDO
-!
-!--                Urban surfaces
-                   surf_s = surf_usm_h%start_index(j,i)
-                   surf_e = surf_usm_h%end_index(j,i)
-                   DO  m = surf_s, surf_e
-                      k = surf_usm_h%k(m)
-                      tend(k,j,i) = tend(k,j,i) + g /                          &
-                                   MERGE( pt_reference, pt(k,j,i),             &
-                                          use_single_reference_value ) *       &
-                                   drho_air_zw(k-1) *                          &
-                                   surf_usm_h%shf(m) 
-                   ENDDO
-                ENDIF
-
-                IF ( use_top_fluxes )  THEN
-                   surf_s = surf_def_h(2)%start_index(j,i)
-                   surf_e = surf_def_h(2)%end_index(j,i)
-                   DO  m = surf_s, surf_e
-                      k = surf_def_h(2)%k(m)
-                      tend(k,j,i) = tend(k,j,i) + g /                          &
-                                   MERGE( pt_reference, pt(k,j,i),             &
-                                          use_single_reference_value ) *       &
-                                   drho_air_zw(k) *                            &
-                                   surf_def_h(2)%shf(m) 
-                   ENDDO
-                ENDIF
-
-             ENDIF
-
-          ELSE
-
-             DO  k = nzb+1, nzt
-!
-!--             Flag 9 is used to mask top fluxes, flag 30 to mask surface fluxes
-                IF ( .NOT. cloud_physics .AND. .NOT. cloud_droplets )  THEN
-                   k1 = 1.0_wp + 0.61_wp * q(k,j,i)
-                   k2 = 0.61_wp * pt(k,j,i)
-                   tend(k,j,i) = tend(k,j,i) - kh(k,j,i) * g /                 &
-                                   MERGE( vpt_reference, vpt(k,j,i),           &
-                                          use_single_reference_value ) *       &
-                                         ( k1 * ( pt(k+1,j,i)-pt(k-1,j,i) ) +  &
-                                           k2 * ( q(k+1,j,i) - q(k-1,j,i) )    &
-                                         ) * dd2zu(k) *                        &
-                                      MERGE( 1.0_wp, 0.0_wp,                   &
-                                             BTEST( wall_flags_0(k,j,i), 30 )  &
-                                           )          *                        &
-                                      MERGE( 1.0_wp, 0.0_wp,                   &
-                                             BTEST( wall_flags_0(k,j,i), 9 )   &
-                                           )
-
-                ELSE IF ( cloud_physics )  THEN
-                   IF ( ql(k,j,i) == 0.0_wp )  THEN
-                      k1 = 1.0_wp + 0.61_wp * q(k,j,i)
-                      k2 = 0.61_wp * pt(k,j,i)
-                   ELSE
-                      theta = pt(k,j,i) + pt_d_t(k) * l_d_cp * ql(k,j,i)
-                      temp  = theta * t_d_pt(k)
-                      k1 = ( 1.0_wp - q(k,j,i) + 1.61_wp *                     &
-                                    ( q(k,j,i) - ql(k,j,i) ) *                 &
-                           ( 1.0_wp + 0.622_wp * l_d_r / temp ) ) /            &
-                           ( 1.0_wp + 0.622_wp * l_d_r * l_d_cp *              &
-                           ( q(k,j,i) - ql(k,j,i) ) / ( temp * temp ) )
-                      k2 = theta * ( l_d_cp / temp * k1 - 1.0_wp )
-                   ENDIF
-                   tend(k,j,i) = tend(k,j,i) - kh(k,j,i) * g /                 &
-                                   MERGE( vpt_reference, vpt(k,j,i),           &
-                                          use_single_reference_value ) *       &
-                                         ( k1 * ( pt(k+1,j,i)-pt(k-1,j,i) ) +  &
-                                           k2 * ( q(k+1,j,i) - q(k-1,j,i) )    &
-                                         ) * dd2zu(k) *                        &
-                                      MERGE( 1.0_wp, 0.0_wp,                   &
-                                             BTEST( wall_flags_0(k,j,i), 30 )  &
-                                           )          *                        &
-                                      MERGE( 1.0_wp, 0.0_wp,                   &
-                                             BTEST( wall_flags_0(k,j,i), 9 )   &
-                                           )
-                ELSE IF ( cloud_droplets )  THEN
-                   k1 = 1.0_wp + 0.61_wp * q(k,j,i) - ql(k,j,i)
-                   k2 = 0.61_wp * pt(k,j,i)
-                   tend(k,j,i) = tend(k,j,i) - kh(k,j,i) * g /                 &
-                                   MERGE( vpt_reference, vpt(k,j,i),           &
-                                          use_single_reference_value ) *       &
-                                     ( k1 * ( pt(k+1,j,i)-pt(k-1,j,i) ) +      &
-                                       k2 * ( q(k+1,j,i) - q(k-1,j,i) ) -      &
-                                       pt(k,j,i) * ( ql(k+1,j,i) -             &
-                                                     ql(k-1,j,i) ) ) * dd2zu(k)&
-                                    * MERGE( 1.0_wp, 0.0_wp,                   &
-                                             BTEST( wall_flags_0(k,j,i), 30 )  &
-                                           )                                   &
-                                    * MERGE( 1.0_wp, 0.0_wp,                   &
-                                             BTEST( wall_flags_0(k,j,i), 9 )   &
-                                           )    
-                ENDIF
-             ENDDO
-
-             IF ( use_surface_fluxes )  THEN
-!
-!--             Treat horizontal default surfaces, up- and downward-facing
-                DO  l = 0, 1
-                   surf_s = surf_def_h(l)%start_index(j,i)
-                   surf_e = surf_def_h(l)%end_index(j,i)
-                   DO  m = surf_s, surf_e
-                      k = surf_def_h(l)%k(m)
-
-                      IF ( .NOT. cloud_physics .AND. .NOT. cloud_droplets ) THEN
-                         k1 = 1.0_wp + 0.61_wp * q(k,j,i)
-                         k2 = 0.61_wp * pt(k,j,i)
-                      ELSE IF ( cloud_physics )  THEN
-                         IF ( ql(k,j,i) == 0.0_wp )  THEN
-                            k1 = 1.0_wp + 0.61_wp * q(k,j,i)
-                            k2 = 0.61_wp * pt(k,j,i)
-                         ELSE
-                           theta = pt(k,j,i) + pt_d_t(k) * l_d_cp * ql(k,j,i)
-                           temp  = theta * t_d_pt(k)
-                           k1 = ( 1.0_wp - q(k,j,i) + 1.61_wp *                &
-                                      ( q(k,j,i) - ql(k,j,i) ) *               &
-                             ( 1.0_wp + 0.622_wp * l_d_r / temp ) ) /          &
-                             ( 1.0_wp + 0.622_wp * l_d_r * l_d_cp *            & 
-                             ( q(k,j,i) - ql(k,j,i) ) / ( temp * temp ) )
-                           k2 = theta * ( l_d_cp / temp * k1 - 1.0_wp )
-                         ENDIF
-                      ELSE IF ( cloud_droplets )  THEN
-                         k1 = 1.0_wp + 0.61_wp * q(k,j,i) - ql(k,j,i)
-                         k2 = 0.61_wp * pt(k,j,i)
-                      ENDIF
-
-                      tend(k,j,i) = tend(k,j,i) + g /                          &
-                                   MERGE( vpt_reference, vpt(k,j,i),           &
-                                          use_single_reference_value ) *       &
-                                         ( k1 * surf_def_h(l)%shf(m) +         &
-                                           k2 * surf_def_h(l)%qsws(m)          &
-                                         ) * drho_air_zw(k-1)
-                   ENDDO
-                ENDDO
-!
-!--             Treat horizontal natural surfaces
-                surf_s = surf_lsm_h%start_index(j,i)
-                surf_e = surf_lsm_h%end_index(j,i)
-                DO  m = surf_s, surf_e
-                   k = surf_lsm_h%k(m)
-
-                   IF ( .NOT. cloud_physics .AND. .NOT. cloud_droplets ) THEN
-                       k1 = 1.0_wp + 0.61_wp * q(k,j,i)
-                       k2 = 0.61_wp * pt(k,j,i)
-                   ELSE IF ( cloud_physics )  THEN
-                       IF ( ql(k,j,i) == 0.0_wp )  THEN
-                          k1 = 1.0_wp + 0.61_wp * q(k,j,i)
-                          k2 = 0.61_wp * pt(k,j,i)
-                       ELSE
-                          theta = pt(k,j,i) + pt_d_t(k) * l_d_cp * ql(k,j,i)
-                          temp  = theta * t_d_pt(k)
-                          k1 = ( 1.0_wp - q(k,j,i) + 1.61_wp *                 &
-                                        ( q(k,j,i) - ql(k,j,i) ) *             &
-                               ( 1.0_wp + 0.622_wp * l_d_r / temp ) ) /        &
-                               ( 1.0_wp + 0.622_wp * l_d_r * l_d_cp *          &
-                               ( q(k,j,i) - ql(k,j,i) ) / ( temp * temp ) )
-                          k2 = theta * ( l_d_cp / temp * k1 - 1.0_wp )
-                      ENDIF
-                   ELSE IF ( cloud_droplets )  THEN
-                      k1 = 1.0_wp + 0.61_wp * q(k,j,i) - ql(k,j,i)
-                      k2 = 0.61_wp * pt(k,j,i)
-                   ENDIF
-
-                   tend(k,j,i) = tend(k,j,i) + g /                             &
-                                   MERGE( vpt_reference, vpt(k,j,i),           &
-                                          use_single_reference_value ) *       &
-                                            ( k1 * surf_lsm_h%shf(m) +         &
-                                              k2 * surf_lsm_h%qsws(m)          &
-                                            ) * drho_air_zw(k-1)
-                ENDDO
-!
-!--             Treat horizontal urban surfaces
-                surf_s = surf_usm_h%start_index(j,i)
-                surf_e = surf_usm_h%end_index(j,i)
-                DO  m = surf_s, surf_e
-                   k = surf_usm_h%k(m)
-
-                   IF ( .NOT. cloud_physics .AND. .NOT. cloud_droplets ) THEN
-                       k1 = 1.0_wp + 0.61_wp * q(k,j,i)
-                       k2 = 0.61_wp * pt(k,j,i)
-                   ELSE IF ( cloud_physics )  THEN
-                       IF ( ql(k,j,i) == 0.0_wp )  THEN
-                          k1 = 1.0_wp + 0.61_wp * q(k,j,i)
-                          k2 = 0.61_wp * pt(k,j,i)
-                       ELSE
-                          theta = pt(k,j,i) + pt_d_t(k) * l_d_cp * ql(k,j,i)
-                          temp  = theta * t_d_pt(k)
-                          k1 = ( 1.0_wp - q(k,j,i) + 1.61_wp *                 &
-                                        ( q(k,j,i) - ql(k,j,i) ) *             &
-                               ( 1.0_wp + 0.622_wp * l_d_r / temp ) ) /        &
-                               ( 1.0_wp + 0.622_wp * l_d_r * l_d_cp *          &
-                               ( q(k,j,i) - ql(k,j,i) ) / ( temp * temp ) )
-                          k2 = theta * ( l_d_cp / temp * k1 - 1.0_wp )
-                      ENDIF
-                   ELSE IF ( cloud_droplets )  THEN
-                      k1 = 1.0_wp + 0.61_wp * q(k,j,i) - ql(k,j,i)
-                      k2 = 0.61_wp * pt(k,j,i)
-                   ENDIF
-
-                   tend(k,j,i) = tend(k,j,i) + g /                             &
-                                   MERGE( vpt_reference, vpt(k,j,i),           &
-                                          use_single_reference_value ) *       &
-                                            ( k1 * surf_usm_h%shf(m) +         &
-                                              k2 * surf_usm_h%qsws(m)          &
-                                            ) * drho_air_zw(k-1)
-                ENDDO
-
-             ENDIF
-
-             IF ( use_top_fluxes )  THEN
-                surf_s = surf_def_h(2)%start_index(j,i)
-                surf_e = surf_def_h(2)%end_index(j,i)
-                DO  m = surf_s, surf_e
-                   k = surf_def_h(2)%k(m)
-
-
-
-                   IF ( .NOT. cloud_physics .AND. .NOT. cloud_droplets )  THEN
-                      k1 = 1.0_wp + 0.61_wp * q(k,j,i)
-                      k2 = 0.61_wp * pt(k,j,i)
-                   ELSE IF ( cloud_physics )  THEN
-                      IF ( ql(k,j,i) == 0.0_wp )  THEN
-                         k1 = 1.0_wp + 0.61_wp * q(k,j,i)
-                         k2 = 0.61_wp * pt(k,j,i)
-                      ELSE
-                         theta = pt(k,j,i) + pt_d_t(k) * l_d_cp * ql(k,j,i)
-                         temp  = theta * t_d_pt(k)
-                         k1 = ( 1.0_wp - q(k,j,i) + 1.61_wp *                  &
-                                    ( q(k,j,i) - ql(k,j,i) ) *                 &
-                           ( 1.0_wp + 0.622_wp * l_d_r / temp ) ) /            &
-                           ( 1.0_wp + 0.622_wp * l_d_r * l_d_cp *              &
-                           ( q(k,j,i) - ql(k,j,i) ) / ( temp * temp ) )
-                         k2 = theta * ( l_d_cp / temp * k1 - 1.0_wp )
-                      ENDIF
-                   ELSE IF ( cloud_droplets )  THEN
-                      k1 = 1.0_wp + 0.61_wp * q(k,j,i) - ql(k,j,i)
-                      k2 = 0.61_wp * pt(k,j,i)
-                   ENDIF
-
-                   tend(k,j,i) = tend(k,j,i) + g /                             &
-                                   MERGE( vpt_reference, vpt(k,j,i),           &
-                                          use_single_reference_value ) *       &
-                               ( k1* surf_def_h(2)%shf(m) +                    &
-                                 k2 * surf_def_h(2)%qsws(m)                    &
-                               ) * drho_air_zw(k)
-                ENDDO
-
-             ENDIF
-
-          ENDIF
-
-       ENDIF
-
-    END SUBROUTINE production_e_ij
-
-
-!------------------------------------------------------------------------------!
-! Description:
-! ------------
-!> @todo Missing subroutine description.
-!------------------------------------------------------------------------------!
-    SUBROUTINE production_e_init
-
-       USE arrays_3d,                                                          &
-           ONLY:  kh, km, drho_air_zw, u, v, zu
-
-       USE control_parameters,                                                 &
-           ONLY:  constant_flux_layer, kappa
-
-       USE indices,                                                            &
-           ONLY:  nxl, nxlg, nxr, nxrg, nys, nysg, nyn, nyng, nzb_u_inner,     &
-                  nzb_v_inner
-
-       USE surface_mod,                                                        &
-           ONLY :  surf_def_h, surf_def_v, surf_lsm_h, surf_usm_h 
-
-       IMPLICIT NONE
-
-       INTEGER(iwp) ::  i   !< grid index x-direction
-       INTEGER(iwp) ::  j   !< grid index y-direction
-       INTEGER(iwp) ::  k   !< grid index z-direction
-       INTEGER(iwp) ::  l   !< running index surface type (up- or downward-facing)
-       INTEGER(iwp) ::  m   !< running index surface elements
-
-       IF ( constant_flux_layer )  THEN
-!
-!--       Calculate a virtual velocity at the surface in a way that the
-!--       vertical velocity gradient at k = 1 (u(k+1)-u_0) matches the
-!--       Prandtl law (-w'u'/km). This gradient is used in the TKE shear
-!--       production term at k=1 (see production_e_ij).
-!--       The velocity gradient has to be limited in case of too small km
-!--       (otherwise the timestep may be significantly reduced by large
-!--       surface winds).
-!--       not available in case of non-cyclic boundary conditions.
-!--       WARNING: the exact analytical solution would require the determination
-!--                of the eddy diffusivity by km = u* * kappa * zp / phi_m.
-!--       Default surfaces, upward-facing
-          !$OMP PARALLEL DO PRIVATE(i,j,k,m)
-          DO  m = 1, surf_def_h(0)%ns
-
-             i = surf_def_h(0)%i(m)            
-             j = surf_def_h(0)%j(m)
-             k = surf_def_h(0)%k(m)
-!
-!--          Note, calculatione of u_0 and v_0 is not fully accurate, as u/v 
-!--          and km are not on the same grid. Actually, a further 
-!--          interpolation of km onto the u/v-grid is necessary. However, the
-!--          effect of this error is negligible. 
-             surf_def_h(0)%u_0(m) = u(k+1,j,i) + surf_def_h(0)%usws(m) *       &
-                                        drho_air_zw(k-1) *                     &
-                                        ( zu(k+1)    - zu(k-1)    )  /         &
-                                        ( km(k,j,i)  + 1.0E-20_wp )  
-             surf_def_h(0)%v_0(m) = v(k+1,j,i) + surf_def_h(0)%vsws(m) *       &
-                                        drho_air_zw(k-1) *                     &
-                                        ( zu(k+1)    - zu(k-1)    )  /         &
-                                        ( km(k,j,i)  + 1.0E-20_wp )  
-
-             IF ( ABS( u(k+1,j,i) - surf_def_h(0)%u_0(m) )  >                  &
-                  ABS( u(k+1,j,i) - u(k-1,j,i)           )                     &
-                )  surf_def_h(0)%u_0(m) = u(k-1,j,i)
-
-             IF ( ABS( v(k+1,j,i) - surf_def_h(0)%v_0(m) )  >                  &
-                  ABS( v(k+1,j,i) - v(k-1,j,i)           )                     &
-                )  surf_def_h(0)%v_0(m) = v(k-1,j,i)
-
-          ENDDO
-!
-!--       Default surfaces, downward-facing surfaces
-          !$OMP PARALLEL DO PRIVATE(i,j,k,m)
-          DO  m = 1, surf_def_h(1)%ns
-
-             i = surf_def_h(1)%i(m)            
-             j = surf_def_h(1)%j(m)
-             k = surf_def_h(1)%k(m)
-
-             surf_def_h(1)%u_0(m) = u(k-1,j,i) - surf_def_h(1)%usws(m) *    &
-                                        drho_air_zw(k-1) *                  &
-                                        ( zu(k+1)    - zu(k-1)    )  /      &
-                                        ( km(k,j,i)  + 1.0E-20_wp )  
-             surf_def_h(1)%v_0(m) = v(k-1,j,i) - surf_def_h(1)%vsws(m) *    &
-                                        drho_air_zw(k-1) *                  &
-                                        ( zu(k+1)    - zu(k-1)    )  /      &
-                                        ( km(k,j,i)  + 1.0E-20_wp )  
-
-             IF ( ABS( surf_def_h(1)%u_0(m) - u(k-1,j,i) )  >               &
-                  ABS( u(k+1,j,i)           - u(k-1,j,i) )                  &
-                )  surf_def_h(1)%u_0(m) = u(k+1,j,i)
-
-             IF ( ABS( surf_def_h(1)%v_0(m) - v(k-1,j,i) )  >               &
-                  ABS( v(k+1,j,i)           - v(k-1,j,i) )                  &
-                )  surf_def_h(1)%v_0(m) = v(k+1,j,i)
-
-          ENDDO
-!
-!--       Natural surfaces, upward-facing
-          !$OMP PARALLEL DO PRIVATE(i,j,k,m)
-          DO  m = 1, surf_lsm_h%ns
-
-             i = surf_lsm_h%i(m)            
-             j = surf_lsm_h%j(m)
-             k = surf_lsm_h%k(m)
-!
-!--          Note, calculatione of u_0 and v_0 is not fully accurate, as u/v 
-!--          and km are not on the same grid. Actually, a further 
-!--          interpolation of km onto the u/v-grid is necessary. However, the
-!--          effect of this error is negligible. 
-             surf_lsm_h%u_0(m) = u(k+1,j,i) + surf_lsm_h%usws(m)      *        &
-                                           drho_air_zw(k-1) *                  &
-                                           ( zu(k+1)   - zu(k-1)    )  /       &
-                                           ( km(k,j,i) + 1.0E-20_wp )  
-             surf_lsm_h%v_0(m) = v(k+1,j,i) + surf_lsm_h%vsws(m)      *        &
-                                           drho_air_zw(k-1) *                  &
-                                           ( zu(k+1)   - zu(k-1)    )  /       &
-                                           ( km(k,j,i) + 1.0E-20_wp )
-
-             IF ( ABS( u(k+1,j,i) - surf_lsm_h%u_0(m) )  >                     &
-                  ABS( u(k+1,j,i) - u(k-1,j,i)   )                             &
-                )  surf_lsm_h%u_0(m) = u(k-1,j,i)
-
-             IF ( ABS( v(k+1,j,i) - surf_lsm_h%v_0(m) )  >                     &
-                  ABS( v(k+1,j,i) - v(k-1,j,i)   )                             &
-                )  surf_lsm_h%v_0(m) = v(k-1,j,i)
-
-          ENDDO
-!
-!--       Urban surfaces, upward-facing
-          !$OMP PARALLEL DO PRIVATE(i,j,k,m)
-          DO  m = 1, surf_usm_h%ns
-
-             i = surf_usm_h%i(m)            
-             j = surf_usm_h%j(m)
-             k = surf_usm_h%k(m)
-!
-!--          Note, calculatione of u_0 and v_0 is not fully accurate, as u/v 
-!--          and km are not on the same grid. Actually, a further 
-!--          interpolation of km onto the u/v-grid is necessary. However, the
-!--          effect of this error is negligible. 
-             surf_usm_h%u_0(m) = u(k+1,j,i) + surf_usm_h%usws(m)      *        &
-                                           drho_air_zw(k-1) *                  &
-                                           ( zu(k+1)   - zu(k-1)    )  /       &
-                                           ( km(k,j,i) + 1.0E-20_wp )  
-             surf_usm_h%v_0(m) = v(k+1,j,i) + surf_usm_h%vsws(m)      *        &
-                                           drho_air_zw(k-1) *                  &
-                                           ( zu(k+1)   - zu(k-1)    )  /       &
-                                           ( km(k,j,i) + 1.0E-20_wp )
-
-             IF ( ABS( u(k+1,j,i) - surf_usm_h%u_0(m) )  >                     &
-                  ABS( u(k+1,j,i) - u(k-1,j,i)   )                             &
-                )  surf_usm_h%u_0(m) = u(k-1,j,i)
-
-             IF ( ABS( v(k+1,j,i) - surf_usm_h%v_0(m) )  >                     &
-                  ABS( v(k+1,j,i) - v(k-1,j,i)   )                             &
-                )  surf_usm_h%v_0(m) = v(k-1,j,i)
-
-          ENDDO
-
-       ENDIF
-
-    END SUBROUTINE production_e_init
-
- END MODULE production_e_mod
Index: palm/trunk/SOURCE/prognostic_equations.f90
===================================================================
--- palm/trunk/SOURCE/prognostic_equations.f90	(revision 2693)
+++ palm/trunk/SOURCE/prognostic_equations.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file prognostic_equations.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
@@ -25,4 +25,9 @@
 ! -----------------
 ! $Id$
+! - Moved TKE equation to tcm_prognostic (TG)
+! - Added switch for chemical reactions (RF, FK)
+! - Implementation of chemistry module (RF, BK, FK)
+! 
+! 2563 2017-10-19 15:36:10Z Giersch
 ! Variable wind_turbine moved to module control_parameters
 ! 
@@ -107,5 +112,5 @@
 ! 1484 2014-10-21 10:53:05Z kanani
 ! Changes due to new module structure of the plant canopy model:
-!   parameters cthf and plant_canopy moved to module plant_canopy_model_mod.
+! parameters cthf and plant_canopy moved to module plant_canopy_model_mod.
 ! Removed double-listing of use_upstream_for_tke in ONLY-list of module
 ! control_parameters
@@ -251,8 +256,21 @@
                w, w_p
 
+#if defined( __chem )
+    USE chemistry_model_mod,                                                   &
+        ONLY:  chem_integrate, chem_species,                                   &
+               chem_tendency, nspec, nvar, spc_names
+           
+    USE chem_photolysis_mod,                                                   &
+        ONLY:  photolysis_control
+
+    USE chem_modules,                                                          &
+        ONLY:  call_chem_at_all_substeps, chem_gasphase_on
+#endif
+
     USE control_parameters,                                                    &
-        ONLY:  call_microphysics_at_all_substeps, cloud_physics,               &
-               cloud_top_radiation, constant_diffusion, dp_external,           &
-               dp_level_ind_b, dp_smooth_factor, dpdxy, dt_3d, humidity,       &
+        ONLY:  air_chemistry, call_microphysics_at_all_substeps,               &
+               cloud_physics, cloud_top_radiation, constant_diffusion,         &
+               dp_external, dp_level_ind_b, dp_smooth_factor, dpdxy, dt_3d,    &
+               humidity,                                                       &
                inflow_l, intermediate_timestep_count,                          &
                intermediate_timestep_count_max, large_scale_forcing,           &
@@ -267,5 +285,6 @@
 
     USE cpulog,                                                                &
-        ONLY:  cpu_log, log_point
+        ONLY:  cpu_log, log_point, log_point_s
+
 
     USE eqn_state_seawater_mod,                                                &
@@ -273,6 +292,6 @@
 
     USE indices,                                                               &
-        ONLY:  nxl, nxlg, nxlu, nxr, nxrg, nyn, nyng, nys, nysg, nysv, nzb,    &
-               nzt, wall_flags_0
+        ONLY:  nbgp, nxl, nxlg, nxlu, nxr, nxrg, nyn, nyng, nys, nysg, nysv,   &
+               nzb, nzt, wall_flags_0
 
     USE advec_ws,                                                              &
@@ -315,7 +334,4 @@
         ONLY:  coriolis
 
-    USE diffusion_e_mod,                                                       &
-        ONLY:  diffusion_e
-
     USE diffusion_s_mod,                                                       &
         ONLY:  diffusion_s
@@ -340,7 +356,4 @@
     USE plant_canopy_model_mod,                                                &
         ONLY:  cthf, plant_canopy, pcm_tendency
-
-    USE production_e_mod,                                                      &
-        ONLY:  production_e
 
     USE radiation_model_mod,                                                   &
@@ -353,4 +366,7 @@
     USE subsidence_mod,                                                        &
         ONLY:  subsidence
+
+    USE turbulence_closure_mod,                                                &
+        ONLY:  tcm_prognostic
 
     USE user_actions_mod,                                                      &
@@ -406,4 +422,5 @@
 
     LOGICAL      ::  loop_start          !<
+    INTEGER      ::  n, lsp              !< lsp running index for chem spcs
 
 
@@ -411,4 +428,44 @@
 !-- Time measurement can only be performed for the whole set of equations
     CALL cpu_log( log_point(32), 'all progn.equations', 'start' )
+
+!
+!-- Calculation of chemical reactions. This is done outside of main loop,
+!-- since exchange of ghost points is required after this update of the
+!-- concentrations of chemical species                                    
+#if defined( __chem )
+    IF ( air_chemistry )  THEN
+!
+!--    If required, calculate photolysis frequencies - 
+!--    UNFINISHED: Why not before the intermediate timestep loop?
+       IF ( intermediate_timestep_count ==  1 )  THEN
+          CALL photolysis_control
+       ENDIF
+!
+!--    Chemical reactions
+       CALL cpu_log( log_point(82), '(chem react + exch_h)', 'start' )
+  
+       IF ( chem_gasphase_on ) THEN
+          DO  i = nxl, nxr
+             DO  j = nys, nyn
+
+                IF ( intermediate_timestep_count == 1 .OR.                        &
+                     call_chem_at_all_substeps ) THEN
+                   CALL chem_integrate (i,j)                                                
+                ENDIF
+             ENDDO
+          ENDDO
+       ENDIF
+!
+!--    Loop over chemical species       
+       CALL cpu_log( log_point_s(84), 'chemistry exch-horiz ', 'start' )
+       DO  n = 1, nspec
+          CALL exchange_horiz( chem_species(n)%conc, nbgp )     
+       ENDDO
+       CALL cpu_log( log_point_s(84), 'chemistry exch-horiz ', 'stop' )
+     
+       CALL cpu_log( log_point(82), '(chem react + exch_h)', 'stop' )
+
+    ENDIF       
+#endif     
 
 !
@@ -1225,72 +1282,29 @@
           ENDIF
 !
-!--       If required, compute prognostic equation for turbulent kinetic
-!--       energy (TKE)
-          IF ( .NOT. constant_diffusion )  THEN
-
-!
-!--          Tendency-terms for TKE
-             tend(:,j,i) = 0.0_wp
-             IF ( timestep_scheme(1:5) == 'runge'  &
-                 .AND.  .NOT. use_upstream_for_tke )  THEN
-                 IF ( ws_scheme_sca )  THEN
-                     CALL advec_s_ws( i, j, e, 'e', flux_s_e, diss_s_e, &
-                                      flux_l_e, diss_l_e , i_omp_start, tn )
-                 ELSE
-                     CALL advec_s_pw( i, j, e )
-                 ENDIF
-             ELSE
-                CALL advec_s_up( i, j, e )
-             ENDIF
-             IF ( .NOT. humidity )  THEN
-                IF ( ocean )  THEN
-                   CALL diffusion_e( i, j, prho, prho_reference )
-                ELSE
-                   CALL diffusion_e( i, j, pt, pt_reference )
-                ENDIF
-             ELSE
-                CALL diffusion_e( i, j, vpt, pt_reference )
-             ENDIF
-             CALL production_e( i, j )
-
-!
-!--          Additional sink term for flows through plant canopies
-             IF ( plant_canopy )  CALL pcm_tendency( i, j, 6 )
-
-             CALL user_actions( i, j, 'e-tendency' )
-
-!
-!--          Prognostic equation for TKE.
-!--          Eliminate negative TKE values, which can occur due to numerical
-!--          reasons in the course of the integration. In such cases the old
-!--          TKE value is reduced by 90%.
-             DO  k = nzb+1, nzt
-                e_p(k,j,i) = e(k,j,i) + ( dt_3d *                              &
-                                                ( tsc(2) * tend(k,j,i) +       &
-                                                  tsc(3) * te_m(k,j,i) )       &
-                                        )                                      &
-                                       * MERGE( 1.0_wp, 0.0_wp,                &
-                                                BTEST( wall_flags_0(k,j,i), 0 )&
-                                              )
-                IF ( e_p(k,j,i) < 0.0_wp )  e_p(k,j,i) = 0.1_wp * e(k,j,i)
-             ENDDO
-
-!
-!--          Calculate tendencies for the next Runge-Kutta step
-             IF ( timestep_scheme(1:5) == 'runge' )  THEN
-                IF ( intermediate_timestep_count == 1 )  THEN
-                   DO  k = nzb+1, nzt
-                      te_m(k,j,i) = tend(k,j,i)
-                   ENDDO
-                ELSEIF ( intermediate_timestep_count < &
-                         intermediate_timestep_count_max )  THEN
-                   DO  k = nzb+1, nzt
-                      te_m(k,j,i) =   -9.5625_wp * tend(k,j,i) +               &
-                                       5.3125_wp * te_m(k,j,i)
-                   ENDDO
-                ENDIF
-             ENDIF
-
-          ENDIF   ! TKE equation
+!--       Calculate prognostic equations for turbulence closure
+          CALL tcm_prognostic( i, j, i_omp_start, tn )
+
+!
+!--       If required, compute prognostic equation for chemical quantites
+#if defined( __chem )
+          IF ( air_chemistry )  THEN
+             CALL cpu_log( log_point(83), '(chem advec+diff+prog)', 'start' )
+!
+!--          Loop over chemical species
+             DO  lsp = 1,nvar                         
+                CALL chem_tendency ( chem_species(lsp)%conc_p,                 &
+                                     chem_species(lsp)%conc,                   &
+                                     chem_species(lsp)%tconc_m,                &
+                                     chem_species(lsp)%conc_pr_init,           &
+                                     i, j, i_omp_start, tn, lsp,               &
+                                     chem_species(lsp)%flux_s_cs,              &
+                                     chem_species(lsp)%diss_s_cs,              &
+                                     chem_species(lsp)%flux_l_cs,              &
+                                     chem_species(lsp)%diss_l_cs )       
+             ENDDO
+
+             CALL cpu_log( log_point(83), '(chem advec+diff+prog)', 'stop' )             
+          ENDIF   ! Chemicals equations                     
+#endif
 
        ENDDO
@@ -2411,109 +2425,7 @@
 
     ENDIF
-!
-!-- If required, compute prognostic equation for turbulent kinetic
-!-- energy (TKE)
-    IF ( .NOT. constant_diffusion )  THEN
-
-       CALL cpu_log( log_point(16), 'tke-equation', 'start' )
-
-       sbt = tsc(2)
-       IF ( .NOT. use_upstream_for_tke )  THEN
-          IF ( scalar_advec == 'bc-scheme' )  THEN
-
-             IF ( timestep_scheme(1:5) /= 'runge' )  THEN
-!
-!--             Bott-Chlond scheme always uses Euler time step. Thus:
-                sbt = 1.0_wp
-             ENDIF
-             tend = 0.0_wp
-             CALL advec_s_bc( e, 'e' )
-
-          ENDIF
-       ENDIF
-
-!
-!--    TKE-tendency terms with no communication
-       IF ( scalar_advec /= 'bc-scheme'  .OR.  use_upstream_for_tke )  THEN
-          IF ( use_upstream_for_tke )  THEN
-             tend = 0.0_wp
-             CALL advec_s_up( e )
-          ELSE
-             tend = 0.0_wp
-             IF ( timestep_scheme(1:5) == 'runge' )  THEN
-                IF ( ws_scheme_sca )  THEN
-                   CALL advec_s_ws( e, 'e' )
-                ELSE
-                   CALL advec_s_pw( e )
-                ENDIF
-             ELSE
-                CALL advec_s_up( e )
-             ENDIF
-          ENDIF
-       ENDIF
-
-       IF ( .NOT. humidity )  THEN
-          IF ( ocean )  THEN
-             CALL diffusion_e( prho, prho_reference )
-          ELSE
-             CALL diffusion_e( pt, pt_reference )
-          ENDIF
-       ELSE
-          CALL diffusion_e( vpt, pt_reference )
-       ENDIF
-
-       CALL production_e
-
-!
-!--    Additional sink term for flows through plant canopies
-       IF ( plant_canopy )  CALL pcm_tendency( 6 )
-       CALL user_actions( 'e-tendency' )
-
-!
-!--    Prognostic equation for TKE.
-!--    Eliminate negative TKE values, which can occur due to numerical
-!--    reasons in the course of the integration. In such cases the old TKE
-!--    value is reduced by 90%.
-       DO  i = nxl, nxr
-          DO  j = nys, nyn
-             DO  k = nzb+1, nzt
-                e_p(k,j,i) = e(k,j,i) + ( dt_3d * ( sbt * tend(k,j,i) +        &
-                                                 tsc(3) * te_m(k,j,i) )        &
-                                        )                                      &
-                                   * MERGE( 1.0_wp, 0.0_wp,                    &
-                                             BTEST( wall_flags_0(k,j,i), 0 )   &
-                                          )
-                IF ( e_p(k,j,i) < 0.0_wp )  e_p(k,j,i) = 0.1_wp * e(k,j,i)
-             ENDDO
-          ENDDO
-       ENDDO
-
-!
-!--    Calculate tendencies for the next Runge-Kutta step
-       IF ( timestep_scheme(1:5) == 'runge' )  THEN
-          IF ( intermediate_timestep_count == 1 )  THEN
-             DO  i = nxl, nxr
-                DO  j = nys, nyn
-                   DO  k = nzb+1, nzt
-                      te_m(k,j,i) = tend(k,j,i)
-                   ENDDO
-                ENDDO
-             ENDDO
-          ELSEIF ( intermediate_timestep_count < &
-                   intermediate_timestep_count_max )  THEN
-             DO  i = nxl, nxr
-                DO  j = nys, nyn
-                   DO  k = nzb+1, nzt
-                      te_m(k,j,i) =   -9.5625_wp * tend(k,j,i)                 &
-                                     + 5.3125_wp * te_m(k,j,i)
-                   ENDDO
-                ENDDO
-             ENDDO
-          ENDIF
-       ENDIF
-
-       CALL cpu_log( log_point(16), 'tke-equation', 'stop' )
-
-    ENDIF
+
+    CALL tcm_prognostic()
+
 
  END SUBROUTINE prognostic_equations_vector
Index: palm/trunk/SOURCE/progress_bar_mod.f90
===================================================================
--- palm/trunk/SOURCE/progress_bar_mod.f90	(revision 2693)
+++ palm/trunk/SOURCE/progress_bar_mod.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file progress_bar_mod.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/radiation_model_mod.f90
===================================================================
--- palm/trunk/SOURCE/radiation_model_mod.f90	(revision 2693)
+++ palm/trunk/SOURCE/radiation_model_mod.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file radiation_model_mod.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
@@ -25,4 +25,14 @@
 ! -----------------
 ! $Id$
+! - Improved reading/writing of SVF from/to file (BM)
+! - Bugfixes concerning RRTMG as well as average_radiation options (M. Salim)
+! - Revised initialization of surface albedo and some minor bugfixes (MS)
+! - Update net radiation after running radiation interaction routine (MS)
+! - Revisions from M Salim included
+! - Adjustment to topography and surface structure (MS)
+! - Initialization of albedo and surface emissivity via input file (MS)
+! - albedo_pars extended (MS)
+! 
+! 2604 2017-11-06 13:29:00Z schwenkel
 ! bugfix for calculation of effective radius using morrison microphysics
 ! 
@@ -179,4 +189,5 @@
 !> @todo Output of other rrtm arrays (such as volume mixing ratios)
 !> @todo Adapt for use with topography
+!> @todo Optimize radiation_tendency routines
 !>
 !> @note Many variables have a leading dummy dimension (0:0) in order to
@@ -188,6 +199,9 @@
         ONLY:  dzw, hyp, nc, pt, q, ql, zu, zw
 
+    USE calc_mean_profile_mod,                                                 &
+        ONLY:  calc_mean_profile
+
     USE cloud_parameters,                                                      &
-        ONLY:  cp, l_d_cp, rho_l
+        ONLY:  cp, l_d_cp, r_d, rho_l
 
     USE constants,                                                             &
@@ -195,8 +209,15 @@
 
     USE control_parameters,                                                    &
-        ONLY:  cloud_droplets, cloud_physics, g, initializing_actions,         &
+        ONLY:  cloud_droplets, cloud_physics, coupling_char, dz, g,            &
+               initializing_actions, io_blocks, io_group,                      &
                latitude, longitude, large_scale_forcing, lsf_surf,             &
-               microphysics_morrison, pt_surface, rho_surface,                 &
-               surface_pressure, time_since_reference_point
+               message_string, microphysics_morrison, pt_surface,              &
+               rho_surface, surface_pressure, time_since_reference_point
+
+    USE cpulog,                                                                &
+        ONLY:  cpu_log, log_point, log_point_s
+
+    USE grid_variables,                                                        &
+         ONLY:  ddx, ddy, dx, dy 
 
     USE date_and_time_mod,                                                     &
@@ -205,5 +226,8 @@
 
     USE indices,                                                               &
-        ONLY:  nxl, nxlg, nxr, nxrg, nyn, nyng, nys, nysg, nzb, nzt
+        ONLY:  nnx, nny, nx, nxl, nxlg, nxr, nxrg, ny, nyn, nyng, nys, nysg,   &
+               nzb, nzt
+
+    USE, INTRINSIC :: iso_c_binding
 
     USE kinds
@@ -216,4 +240,13 @@
 #endif
 
+    USE netcdf_data_input_mod,                                                 &
+        ONLY:  albedo_type_f, albedo_pars_f, building_type_f, pavement_type_f, &
+               vegetation_type_f, water_type_f
+
+    USE plant_canopy_model_mod,                                                &
+        ONLY:  plant_canopy, pc_heating_rate, lad_s, usm_lad_rma
+
+    USE pegrid
+
 #if defined ( __rrtmg )
     USE parrrsw,                                                               &
@@ -235,6 +268,10 @@
         ONLY:  rrtmg_sw
 #endif
+    USE statistics,                                                            &
+        ONLY:  hom
+
     USE surface_mod,                                                           &
-        ONLY:  get_topography_top_index
+        ONLY:  get_topography_top_index, surf_def_h, surf_def_v, surf_lsm_h,   &
+               surf_lsm_v, surf_type, surf_usm_h, surf_usm_v
 
     IMPLICIT NONE
@@ -281,5 +318,4 @@
                                                          /)
 
-
     INTEGER(iwp) :: albedo_type  = 9999999, & !< Albedo surface type
                     dots_rad     = 0          !< starting index for timeseries output 
@@ -291,6 +327,12 @@
                 radiation = .FALSE.,                  & !< flag parameter indicating whether the radiation model is used
                 sun_up    = .TRUE.,                   & !< flag parameter indicating whether the sun is up or down
-                sw_radiation = .TRUE.,                 & !< flag parameter indicing whether shortwave radiation shall be calculated
-                sun_direction = .FALSE.                 !< flag parameter indicing whether solar direction shall be calculated
+                sw_radiation = .TRUE.,                & !< flag parameter indicating whether shortwave radiation shall be calculated
+                sun_direction = .FALSE.,              & !< flag parameter indicating whether solar direction shall be calculated
+                average_radiation = .TRUE.,           & !< flag to set the calculation of radiation averaging for the domain
+                atm_surfaces = .FALSE.,               & !< flag parameter indicating wheather surfaces of atmospheric cells will be considered in calculating SVF
+                radiation_interactions = .TRUE.,      & !< flag to control if radiation interactions via sky-view factors shall be considered
+                surf_reflections = .TRUE.               !< flag to switch the calculation of radiation interaction between surfaces.
+                                                        !< When it switched off, only the effect of buildings and trees shadow will
+                                                        !< will be considered. However fewer SVFs are expected.
 
 
@@ -320,11 +362,5 @@
                                  sun_dir_lon       !< solar directional vector in longitudes
 
-    REAL(wp), DIMENSION(:,:), ALLOCATABLE :: &
-                alpha,                       & !< surface broadband albedo (used for clear-sky scheme)
-                emis,                        & !< surface broadband emissivity
-                rad_lw_out_change_0,         & !< change in LW out due to change in surface temperature
-                rad_net,                     & !< net radiation at the surface
-                rad_net_av                     !< average of rad_net
-
+    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  rad_net_av   !< average of rad_net
 !
 !-- Land surface albedos for solar zenith angle of 60Â° after Briegleb (1992)     
@@ -420,9 +456,5 @@
                                            t_snd          !< actual temperature from sounding data (hPa)
 
-    REAL(wp), DIMENSION(:,:), ALLOCATABLE :: aldif,          & !< longwave diffuse albedo solar angle of 60Â°
-                                             aldir,          & !< longwave direct albedo solar angle of 60Â°
-                                             asdif,          & !< shortwave diffuse albedo solar angle of 60Â°
-                                             asdir,          & !< shortwave direct albedo solar angle of 60Â°
-                                             rrtm_ccl4vmr,   & !< CCL4 volume mixing ratio (g/mol)
+    REAL(wp), DIMENSION(:,:), ALLOCATABLE :: rrtm_ccl4vmr,   & !< CCL4 volume mixing ratio (g/mol)
                                              rrtm_cfc11vmr,  & !< CFC11 volume mixing ratio (g/mol)
                                              rrtm_cfc12vmr,  & !< CFC12 volume mixing ratio (g/mol)
@@ -433,5 +465,5 @@
                                              rrtm_cliqwp,    & !< in-cloud liquid water path (g/mÂ²)
                                              rrtm_co2vmr,    & !< CO2 volume mixing ratio (g/mol)
-                                             rrtm_emis,      & !< surface emissivity (0-1)    
+                                             rrtm_emis,      & !< surface emissivity (0-1)  
                                              rrtm_h2ovmr,    & !< H2O volume mixing ratio
                                              rrtm_n2ovmr,    & !< N2O volume mixing ratio
@@ -459,4 +491,10 @@
                                              rrtm_swhrc        !< RRTM output of incoming shortwave clear sky radiation heating rate (K/d) 
 
+
+    REAL(wp), DIMENSION(1) ::                rrtm_aldif,     & !< surface albedo for longwave diffuse radiation
+                                             rrtm_aldir,     & !< surface albedo for longwave direct radiation
+                                             rrtm_asdif,     & !< surface albedo for shortwave diffuse radiation
+                                             rrtm_asdir        !< surface albedo for shortwave direct radiation
+
 !
 !-- Definition of arrays that are currently not used for calling RRTMG (due to setting of flag parameters)
@@ -465,8 +503,4 @@
                                                 rad_sw_cs_in,   & !< incoming clear sky shortwave radiation (W/m2) (not used)
                                                 rad_sw_cs_out,  & !< outgoing clear sky shortwave radiation (W/m2) (not used)
-                                                rrtm_aldif,     & !< surface albedo for longwave diffuse radiation
-                                                rrtm_aldir,     & !< surface albedo for longwave direct radiation
-                                                rrtm_asdif,     & !< surface albedo for shortwave diffuse radiation
-                                                rrtm_asdir,     & !< surface albedo for shortwave direct radiation
                                                 rrtm_lw_tauaer, & !< lw aerosol optical depth
                                                 rrtm_lw_taucld, & !< lw in-cloud optical depth
@@ -481,4 +515,199 @@
 
 #endif
+!
+!-- Parameters of urban and land surface models
+    INTEGER(iwp)                                   ::  nzu                                !< number of layers of urban surface (will be calculated)
+    INTEGER(iwp)                                   ::  nzub,nzut                          !< bottom and top layer of urban surface (will be calculated)
+!-- parameters of urban and land surface models
+    INTEGER(iwp), PARAMETER                        ::  nzut_free = 3                      !< number of free layers above top of of topography
+    INTEGER(iwp), PARAMETER                        ::  ndsvf = 2                          !< number of dimensions of real values in SVF
+    INTEGER(iwp), PARAMETER                        ::  idsvf = 2                          !< number of dimensions of integer values in SVF
+    INTEGER(iwp), PARAMETER                        ::  ndcsf = 2                          !< number of dimensions of real values in CSF
+    INTEGER(iwp), PARAMETER                        ::  idcsf = 2                          !< number of dimensions of integer values in CSF
+    INTEGER(iwp), PARAMETER                        ::  kdcsf = 4                          !< number of dimensions of integer values in CSF calculation array
+    INTEGER(iwp), PARAMETER                        ::  id = 1                             !< position of d-index in surfl and surf
+    INTEGER(iwp), PARAMETER                        ::  iz = 2                             !< position of k-index in surfl and surf
+    INTEGER(iwp), PARAMETER                        ::  iy = 3                             !< position of j-index in surfl and surf
+    INTEGER(iwp), PARAMETER                        ::  ix = 4                             !< position of i-index in surfl and surf
+
+    INTEGER(iwp), PARAMETER                        ::  nsurf_type = 21                    !< number of surf types incl. phys.(land+urban) & (atm.,sky,boundary) surfaces - 1
+
+    INTEGER(iwp), PARAMETER                        ::  iup_u    = 0                       !< 0 - index of urban ubward surface (ground or roof)
+    INTEGER(iwp), PARAMETER                        ::  idown_u  = 1                       !< 1 - index of urban downward surface (overhanging)
+    INTEGER(iwp), PARAMETER                        ::  inorth_u = 2                       !< 2 - index of urban northward facing wall
+    INTEGER(iwp), PARAMETER                        ::  isouth_u = 3                       !< 3 - index of urban southward facing wall
+    INTEGER(iwp), PARAMETER                        ::  ieast_u  = 4                       !< 4 - index of urban eastward facing wall
+    INTEGER(iwp), PARAMETER                        ::  iwest_u  = 5                       !< 5 - index of urban westward facing wall
+
+    INTEGER(iwp), PARAMETER                        ::  iup_l    = 6                       !< 6 - index of land ubward surface (ground or roof)
+    INTEGER(iwp), PARAMETER                        ::  inorth_l = 7                       !< 7 - index of land northward facing wall
+    INTEGER(iwp), PARAMETER                        ::  isouth_l = 8                       !< 8 - index of land southward facing wall
+    INTEGER(iwp), PARAMETER                        ::  ieast_l  = 9                       !< 9 - index of land eastward facing wall
+    INTEGER(iwp), PARAMETER                        ::  iwest_l  = 10                      !< 10- index of land westward facing wall
+
+    INTEGER(iwp), PARAMETER                        ::  iup_a    = 11                      !< 11- index of atm. cell ubward virtual surface
+    INTEGER(iwp), PARAMETER                        ::  idown_a  = 12                      !< 12- index of atm. cell downward virtual surface
+    INTEGER(iwp), PARAMETER                        ::  inorth_a = 13                      !< 13- index of atm. cell northward facing virtual surface
+    INTEGER(iwp), PARAMETER                        ::  isouth_a = 14                      !< 14- index of atm. cell southward facing virtual surface
+    INTEGER(iwp), PARAMETER                        ::  ieast_a  = 15                      !< 15- index of atm. cell eastward facing virtual surface
+    INTEGER(iwp), PARAMETER                        ::  iwest_a  = 16                      !< 16- index of atm. cell westward facing virtual surface
+
+    INTEGER(iwp), PARAMETER                        ::  isky     = 17                      !< 17 - index of top border of the urban surface layer ("urban sky")
+    INTEGER(iwp), PARAMETER                        ::  inorth_b = 18                      !< 18 - index of free north border of the domain (south facing)
+    INTEGER(iwp), PARAMETER                        ::  isouth_b = 19                      !< 19 - index of north south border of the domain (north facing)
+    INTEGER(iwp), PARAMETER                        ::  ieast_b  = 20                      !< 20 - index of east border of the domain (west facing)
+    INTEGER(iwp), PARAMETER                        ::  iwest_b  = 21                      !< 21 - index of wast border of the domain (east facing)
+
+    INTEGER(iwp), DIMENSION(0:nsurf_type), PARAMETER ::  idir = (/0, 0,0, 0,1,-1,0,0, 0,1,-1,0, 0,0, 0,1,-1, 0, 0,0,-1,1/)   !< surface normal direction x indices
+    INTEGER(iwp), DIMENSION(0:nsurf_type), PARAMETER ::  jdir = (/0, 0,1,-1,0, 0,0,1,-1,0, 0,0, 0,1,-1,0, 0, 0,-1,1, 0,0/)   !< surface normal direction y indices
+    INTEGER(iwp), DIMENSION(0:nsurf_type), PARAMETER ::  kdir = (/1,-1,0, 0,0, 0,1,0, 0,0, 0,1,-1,0, 0,0, 0,-1, 0,0, 0,0/)   !< surface normal direction z indices
+                                                                                          !< parameter but set in the code
+
+
+!-- indices and sizes of urban and land surface models
+    INTEGER(iwp)                                   ::  nskys            !< number of sky surfaces in local processor
+    INTEGER(iwp)                                   ::  startland        !< start index of block of land and roof surfaces!-- block variables needed for calculation of the plant canopy model inside the urban surface model
+    INTEGER(iwp)                                   ::  endland          !< end index of block of land and roof surfaces    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE      ::  pct              !< top layer of the plant canopy
+    INTEGER(iwp)                                   ::  nlands           !< number of land and roof surfaces in local processor    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE      ::  pch              !< heights of the plant canopy
+    INTEGER(iwp)                                   ::  startwall        !< start index of block of wall surfaces    INTEGER(iwp)                                   ::  npcbl            !< number of the plant canopy gridboxes in local processor
+    INTEGER(iwp)                                   ::  endwall          !< end index of block of wall surfaces    INTEGER(wp), DIMENSION(:,:), ALLOCATABLE       ::  pcbl             !< k,j,i coordinates of l-th local plant canopy box pcbl[:,l] = [k, j,
+    INTEGER(iwp)                                   ::  nwalls           !< number of wall surfaces in local processor    REAL(wp), DIMENSION(:), ALLOCATABLE            ::  pcbinsw          !< array of absorbed sw radiation for local plant canopy box
+    INTEGER(iwp)                                   ::  nborder          !< number of border surfaces in local processor    REAL(wp), DIMENSION(:), ALLOCATABLE            ::  pcbinlw          !< array of absorbed lw radiation for local plant canopy box
+
+
+!-- indices and sizes of urban and land surface models
+    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE      ::  surfl            !< coordinates of i-th local surface in local grid - surfl[:,k] = [d, z, y, x]
+    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE      ::  surf             !< coordinates of i-th surface in grid - surf[:,k] = [d, z, y, x]
+    INTEGER(iwp)                                   ::  nsurfl           !< number of all surfaces in local processor
+    INTEGER(iwp), DIMENSION(:), ALLOCATABLE        ::  nsurfs           !< array of number of all surfaces in individual processors
+    INTEGER(iwp)                                   ::  startsky         !< start index of block of sky
+    INTEGER(iwp)                                   ::  endsky           !< end index of block of sky
+    INTEGER(iwp)                                   ::  startenergy      !< start index of block of real surfaces (land, walls and roofs)
+    INTEGER(iwp)                                   ::  endenergy        !< end index of block of real surfaces (land, walls and roofs)
+    INTEGER(iwp)                                   ::  nenergy          !< number of real surfaces in local processor
+    INTEGER(iwp)                                   ::  nsurf            !< global number of surfaces in index array of surfaces (nsurf = proc nsurfs)
+    INTEGER(iwp)                                   ::  startborder      !< start index of block of border
+    INTEGER(iwp)                                   ::  endborder        !< end index of block of border
+    INTEGER(iwp), DIMENSION(:), ALLOCATABLE        ::  surfstart        !< starts of blocks of surfaces for individual processors in array surf
+                                                                        !< respective block for particular processor is surfstart[iproc]+1 : surfstart[iproc+1]
+
+!-- block variables needed for calculation of the plant canopy model inside the urban surface model
+    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE      ::  pct              !< top layer of the plant canopy
+    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE      ::  pch              !< heights of the plant canopy
+    INTEGER(iwp)                                   ::  npcbl            !< number of the plant canopy gridboxes in local processor
+    INTEGER(wp), DIMENSION(:,:), ALLOCATABLE       ::  pcbl             !< k,j,i coordinates of l-th local plant canopy box pcbl[:,l] = [k, j, i]
+    REAL(wp), DIMENSION(:), ALLOCATABLE            ::  pcbinsw          !< array of absorbed sw radiation for local plant canopy box
+    REAL(wp), DIMENSION(:), ALLOCATABLE            ::  pcbinlw          !< array of absorbed lw radiation for local plant canopy box
+
+!-- configuration parameters (they can be setup in PALM config)
+    LOGICAL                                        ::  split_diffusion_radiation = .TRUE. !< split direct and diffusion dw radiation
+                                                                                          !< (.F. in case the radiation model already does it)    
+    LOGICAL                                        ::  energy_balance_surf_h = .TRUE.     !< flag parameter indicating wheather the energy balance is calculated for horizontal surfaces
+    LOGICAL                                        ::  energy_balance_surf_v = .TRUE.     !< flag parameter indicating wheather the energy balance is calculated for vertical surfaces
+    LOGICAL                                        ::  read_svf_on_init = .FALSE.         !< flag parameter indicating wheather SVFs will be read from a file at initialization
+    LOGICAL                                        ::  write_svf_on_init = .FALSE.        !< flag parameter indicating wheather SVFs will be written out to a file
+    LOGICAL                                        ::  mrt_factors = .FALSE.              !< whether to generate MRT factor files during init
+    INTEGER(iwp)                                   ::  nrefsteps = 0                      !< number of reflection steps to perform
+    REAL(wp), PARAMETER                            ::  ext_coef = 0.6_wp                  !< extinction coefficient (a.k.a. alpha)
+    INTEGER(iwp), PARAMETER                        ::  svf_code_len = 15                  !< length of code for verification of the end of svf file
+    CHARACTER(svf_code_len), PARAMETER             ::  svf_code = '*** end svf ***'       !< code for verification of the end of svf file
+    INTEGER(iwp), PARAMETER                        ::  usm_version_len = 10               !< length of identification string of usm version
+    CHARACTER(usm_version_len), PARAMETER          ::  usm_version = 'USM v. 1.0'         !< identification of version of binary svf and restart files
+
+!-- radiation related arrays to be used in radiation_interaction routine
+    REAL(wp), DIMENSION(:,:), ALLOCATABLE          ::  rad_sw_in_dir    !< direct sw radiation
+    REAL(wp), DIMENSION(:,:), ALLOCATABLE          ::  rad_sw_in_diff   !< diffusion sw radiation
+    REAL(wp), DIMENSION(:,:), ALLOCATABLE          ::  rad_lw_in_diff   !< diffusion lw radiation
+
+!-- parameters required for RRTMG lower boundary condition
+    REAL(wp)                   :: albedo_urb      !< albedo value retuned to RRTMG boundary cond.
+    REAL(wp)                   :: emissivity_urb  !< emissivity value retuned to RRTMG boundary cond.
+    REAL(wp)                   :: t_rad_urb       !< temperature value retuned to RRTMG boundary cond.
+
+!-- type for calculation of svf
+    TYPE t_svf
+        INTEGER(iwp)                               :: isurflt           !< 
+        INTEGER(iwp)                               :: isurfs            !< 
+        REAL(wp)                                   :: rsvf              !< 
+        REAL(wp)                                   :: rtransp           !< 
+    END TYPE
+
+!-- type for calculation of csf
+    TYPE t_csf
+        INTEGER(iwp)                               :: ip                !< 
+        INTEGER(iwp)                               :: itx               !< 
+        INTEGER(iwp)                               :: ity               !< 
+        INTEGER(iwp)                               :: itz               !< 
+        INTEGER(iwp)                               :: isurfs            !< 
+        REAL(wp)                                   :: rsvf              !< 
+        REAL(wp)                                   :: rtransp           !< 
+    END TYPE
+
+!-- arrays storing the values of USM
+    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE      ::  svfsurf          !< svfsurf[:,isvf] = index of source and target surface for svf[isvf]
+    REAL(wp), DIMENSION(:,:), ALLOCATABLE          ::  svf              !< array of shape view factors+direct irradiation factors for local surfaces
+    REAL(wp), DIMENSION(:), ALLOCATABLE            ::  surfins          !< array of sw radiation falling to local surface after i-th reflection
+    REAL(wp), DIMENSION(:), ALLOCATABLE            ::  surfinl          !< array of lw radiation for local surface after i-th reflection
+    
+                                                                        !< Inward radiation is also valid for virtual surfaces (radiation leaving domain)
+    REAL(wp), DIMENSION(:), ALLOCATABLE            ::  surfinsw         !< array of sw radiation falling to local surface including radiation from reflections
+    REAL(wp), DIMENSION(:), ALLOCATABLE            ::  surfinlw         !< array of lw radiation falling to local surface including radiation from reflections
+    REAL(wp), DIMENSION(:), ALLOCATABLE            ::  surfinswdir      !< array of direct sw radiation falling to local surface
+    REAL(wp), DIMENSION(:), ALLOCATABLE            ::  surfinswdif      !< array of diffuse sw radiation from sky and model boundary falling to local surface
+    REAL(wp), DIMENSION(:), ALLOCATABLE            ::  surfinlwdif      !< array of diffuse lw radiation from sky and model boundary falling to local surface
+    
+                                                                        !< Outward radiation is only valid for nonvirtual surfaces
+    REAL(wp), DIMENSION(:), ALLOCATABLE            ::  surfoutsl        !< array of reflected sw radiation for local surface in i-th reflection
+    REAL(wp), DIMENSION(:), ALLOCATABLE            ::  surfoutll        !< array of reflected + emitted lw radiation for local surface in i-th reflection
+    REAL(wp), DIMENSION(:), ALLOCATABLE            ::  surfouts         !< array of reflected sw radiation for all surfaces in i-th reflection
+    REAL(wp), DIMENSION(:), ALLOCATABLE            ::  surfoutl         !< array of reflected + emitted lw radiation for all surfaces in i-th reflection
+    REAL(wp), DIMENSION(:), ALLOCATABLE            ::  surfoutsw        !< array of total sw radiation outgoing from nonvirtual surfaces surfaces after all reflection
+    REAL(wp), DIMENSION(:), ALLOCATABLE            ::  surfoutlw        !< array of total lw radiation outgoing from nonvirtual surfaces surfaces after all reflection
+    REAL(wp), DIMENSION(:), ALLOCATABLE            ::  surfhf           !< array of total radiation flux incoming to minus outgoing from local surface
+    REAL(wp), DIMENSION(:), ALLOCATABLE            ::  rad_net_l        !< local copy of rad_net (net radiation at surface)
+
+!-- block variables needed for calculation of the plant canopy model inside the urban surface model
+    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE      ::  csfsurf          !< csfsurf[:,icsf] = index of target surface and csf grid index for csf[icsf]
+    REAL(wp), DIMENSION(:,:), ALLOCATABLE          ::  csf              !< array of plant canopy sink fators + direct irradiation factors (transparency)
+    REAL(wp), DIMENSION(:,:,:), POINTER            ::  usm_lad          !< subset of lad_s within urban surface, transformed to plain Z coordinate
+    REAL(wp), DIMENSION(:), POINTER                ::  usm_lad_g        !< usm_lad globalized (used to avoid MPI RMA calls in raytracing)
+    INTEGER(iwp), DIMENSION(:), ALLOCATABLE        ::  nzterr, plantt   !< temporary global arrays for raytracing
+
+!-- arrays and variables for calculation of svf and csf
+    TYPE(t_svf), DIMENSION(:), POINTER             ::  asvf             !< pointer to growing svc array
+    TYPE(t_csf), DIMENSION(:), POINTER             ::  acsf             !< pointer to growing csf array
+    TYPE(t_svf), DIMENSION(:), ALLOCATABLE, TARGET ::  asvf1, asvf2     !< realizations of svf array
+    TYPE(t_csf), DIMENSION(:), ALLOCATABLE, TARGET ::  acsf1, acsf2     !< realizations of csf array
+    INTEGER(iwp)                                   ::  nsvfla           !< dimmension of array allocated for storage of svf in local processor
+    INTEGER(iwp)                                   ::  ncsfla           !< dimmension of array allocated for storage of csf in local processor
+    INTEGER(iwp)                                   ::  msvf, mcsf       !< mod for swapping the growing array
+    INTEGER(iwp), PARAMETER                        ::  gasize = 10000   !< initial size of growing arrays
+    REAL(wp)                                       ::  dist_max_svf = -9999.0 !< maximum distance to calculate the minimum svf to be considered. It is
+                                                                        !< used to avoid very small SVFs resulting from too far surfaces with mutual visibility
+    INTEGER(iwp)                                   ::  nsvfl            !< number of svf for local processor
+    INTEGER(iwp)                                   ::  ncsfl            !< no. of csf in local processor
+                                                                        !< needed only during calc_svf but must be here because it is
+                                                                        !< shared between subroutines usm_calc_svf and usm_raytrace
+    INTEGER(iwp), DIMENSION(:,:,:), ALLOCATABLE    ::  gridpcbl         !< index of local pcb[k,j,i]
+
+!-- temporary arrays for calculation of csf in raytracing
+    INTEGER(iwp)                                   ::  maxboxesg        !< max number of boxes ray can cross in the domain
+    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE      ::  boxes            !< coordinates of gridboxes being crossed by ray
+    REAL(wp), DIMENSION(:), ALLOCATABLE            ::  crlens           !< array of crossing lengths of ray for particular grid boxes
+    INTEGER(iwp), DIMENSION(:), ALLOCATABLE        ::  lad_ip           !< array of numbers of process where lad is stored 
+#if defined( __parallel )
+    INTEGER(kind=MPI_ADDRESS_KIND), &
+                  DIMENSION(:), ALLOCATABLE        ::  lad_disp         !< array of displaycements of lad in local array of proc lad_ip
+#endif
+    REAL(wp), DIMENSION(:), ALLOCATABLE            ::  lad_s_ray        !< array of received lad_s for appropriate gridboxes crossed by ray 
+
+
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+!-- Energy balance variables
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+!-- parameters of the land, roof and wall surfaces
+    REAL(wp), DIMENSION(:), ALLOCATABLE            :: albedo_surf        !< albedo of the surface
+    REAL(wp), DIMENSION(:), ALLOCATABLE            :: emiss_surf         !< emissivity of the wall surface
+
 
     INTERFACE radiation_check_data_output
@@ -555,4 +784,29 @@
     END INTERFACE radiation_last_actions
 
+    INTERFACE radiation_interaction
+       MODULE PROCEDURE radiation_interaction
+    END INTERFACE radiation_interaction
+
+    INTERFACE radiation_interaction_init
+       MODULE PROCEDURE radiation_interaction_init
+    END INTERFACE radiation_interaction_init
+
+    INTERFACE radiation_radflux_gridbox
+       MODULE PROCEDURE radiation_radflux_gridbox
+    END INTERFACE radiation_radflux_gridbox
+
+    INTERFACE radiation_calc_svf
+       MODULE PROCEDURE radiation_calc_svf
+    END INTERFACE radiation_calc_svf
+
+    INTERFACE radiation_write_svf
+       MODULE PROCEDURE radiation_write_svf
+    END INTERFACE radiation_write_svf
+
+    INTERFACE radiation_read_svf
+       MODULE PROCEDURE radiation_read_svf
+    END INTERFACE radiation_read_svf
+
+
     SAVE
 
@@ -567,17 +821,37 @@
            radiation_data_output_2d, radiation_data_output_3d,                 &
            radiation_define_netcdf_grid, radiation_last_actions,               &
-           radiation_read_restart_data, radiation_data_output_mask
+           radiation_read_restart_data, radiation_data_output_mask,            &
+           radiation_radflux_gridbox, radiation_calc_svf, radiation_write_svf, &
+           radiation_interaction, radiation_interaction_init,                  &
+           radiation_read_svf
+            
+
     
 !
 !-- Public variables and constants / NEEDS SORTING
-    PUBLIC albedo, albedo_type, decl_1, decl_2, decl_3, dots_rad, dt_radiation, emissivity, force_radiation_call,&
-           lat, lon, rad_net, rad_net_av, radiation, radiation_scheme, rad_lw_in,        &
-           rad_lw_in_av, rad_lw_out, rad_lw_out_av, rad_lw_out_change_0,       &
+    PUBLIC albedo, albedo_type, decl_1, decl_2, decl_3, dots_rad, dt_radiation,&
+           emissivity, force_radiation_call,                                   &
+           lat, lon, rad_net_av, radiation, radiation_scheme, rad_lw_in,       &
+           rad_lw_in_av, rad_lw_out, rad_lw_out_av,                            &
            rad_lw_cs_hr, rad_lw_cs_hr_av, rad_lw_hr, rad_lw_hr_av, rad_sw_in,  &
            rad_sw_in_av, rad_sw_out, rad_sw_out_av, rad_sw_cs_hr,              &
-           rad_sw_cs_hr_av, rad_sw_hr, rad_sw_hr_av, sigma_sb,                 &
-           skip_time_do_radiation, solar_constant, time_radiation,             &
-           unscheduled_radiation_calls, zenith, calc_zenith, sun_direction,    &
-           sun_dir_lat, sun_dir_lon
+           rad_sw_cs_hr_av, rad_sw_hr, rad_sw_hr_av, sigma_sb, solar_constant, &
+           skip_time_do_radiation, time_radiation, unscheduled_radiation_calls,&
+           zenith, calc_zenith, sun_direction, sun_dir_lat, sun_dir_lon,       &
+           split_diffusion_radiation,                                          &
+           energy_balance_surf_h, energy_balance_surf_v, write_svf_on_init,    &
+           read_svf_on_init, nrefsteps, mrt_factors, dist_max_svf, nsvfl, svf, &
+           svfsurf, surfinsw, surfinlw, surfins, surfinl, surfinswdir,         &
+           surfinswdif, surfoutsw, surfoutlw, surfinlwdif, rad_sw_in_dir,      &
+           rad_sw_in_diff, rad_lw_in_diff, surfouts, surfoutl, surfoutsl,      &
+           surfoutll, idir, jdir, kdir, id, iz, iy, ix, isky, nenergy, nsurfs, &
+           surfstart, surf, surfl, nsurfl, pcbinsw, pcbinlw, pcbl, npcbl,      &
+           startenergy, endenergy, iup_u, inorth_u, isouth_u, ieast_u, iwest_u,&
+           iup_l, inorth_l, isouth_l, ieast_l, iwest_l, startsky, endsky,      &
+           startborder, endborder, nsurf_type, nzub, nzut, inorth_b,idown_a,   &
+           isouth_b, ieast_b, iwest_b, nzu, pch, nsurf, iup_a, inorth_a,       &
+           isouth_a, ieast_a, iwest_a, idsvf, ndsvf, idcsf, ndcsf, kdcsf, pct, &
+           radiation_interactions, startwall, startland, endland, endwall
+
 
 
@@ -605,5 +879,5 @@
              CALL radiation_constant
           
-          CASE ( 'clear-sky' )
+          CASE ( 'clear-sky' ) 
              CALL radiation_clearsky
        
@@ -648,13 +922,4 @@
              ENDIF
              unit = 'K/h'     
-
-         CASE ( 'rad_lw_in', 'rad_lw_out', 'rad_sw_in', 'rad_sw_out' )
-             IF (  .NOT.  radiation  .OR.  radiation_scheme /= 'rrtmg' )  THEN
-                message_string = '"output of "' // TRIM( var ) // '" requi' // &
-                                 'res radiation = .TRUE. and ' //              &
-                                 'radiation_scheme = "rrtmg"'
-                CALL message( 'check_parameters', 'PA0406', 1, 2, 0, 6, 0 )
-             ENDIF
-             unit = 'W/m2'   
 
           CASE ( 'rad_net*', 'rrtm_aldif*', 'rrtm_aldir*', 'rrtm_asdif*',      &
@@ -878,5 +1143,7 @@
        USE control_parameters,                                                 &
            ONLY: message_string, topography, urban_surface
-                 
+
+       USE netcdf_data_input_mod,                                              &
+           ONLY:  input_pids_static                 
     
        IMPLICIT NONE
@@ -904,35 +1171,37 @@
 
        ENDIF
-
-       IF ( albedo_type == 0  .AND.  albedo == 9999999.9_wp  .AND.             &
-            radiation_scheme == 'clear-sky')  THEN
-          message_string = 'radiation_scheme = "clear-sky" in combination' //  & 
-                           'with albedo_type = 0 requires setting of albedo'// &
-                           ' /= 9999999.9'
-          CALL message( 'check_parameters', 'PA0410', 1, 2, 0, 6, 0 )
+!
+!--    Checks performed only if data is given via namelist only. 
+       IF ( .NOT. input_pids_static )  THEN
+          IF ( albedo_type == 0  .AND.  albedo == 9999999.9_wp  .AND.          &
+               radiation_scheme == 'clear-sky')  THEN
+             message_string = 'radiation_scheme = "clear-sky" in combination' //& 
+                              'with albedo_type = 0 requires setting of albedo'//&
+                              ' /= 9999999.9'
+             CALL message( 'check_parameters', 'PA0410', 1, 2, 0, 6, 0 )
+          ENDIF
+
+          IF ( albedo_type == 0  .AND.  radiation_scheme == 'rrtmg'  .AND.     &
+             ( albedo_lw_dif == 9999999.9_wp .OR. albedo_lw_dir == 9999999.9_wp&
+          .OR. albedo_sw_dif == 9999999.9_wp .OR. albedo_sw_dir == 9999999.9_wp& 
+             ) ) THEN
+             message_string = 'radiation_scheme = "rrtmg" in combination' //   & 
+                              'with albedo_type = 0 requires setting of ' //   &
+                              'albedo_lw_dif /= 9999999.9' //                  &
+                              'albedo_lw_dir /= 9999999.9' //                  &
+                              'albedo_sw_dif /= 9999999.9 and' //              &
+                              'albedo_sw_dir /= 9999999.9'
+             CALL message( 'check_parameters', 'PA0411', 1, 2, 0, 6, 0 )
+          ENDIF
        ENDIF
 
-       IF ( albedo_type == 0  .AND.  radiation_scheme == 'rrtmg'  .AND.        &
-          (    albedo_lw_dif == 9999999.9_wp .OR. albedo_lw_dir == 9999999.9_wp&
-          .OR. albedo_sw_dif == 9999999.9_wp .OR. albedo_sw_dir == 9999999.9_wp& 
-          ) ) THEN
-          message_string = 'radiation_scheme = "rrtmg" in combination' //      & 
-                           'with albedo_type = 0 requires setting of ' //      &
-                           'albedo_lw_dif /= 9999999.9' //                     &
-                           'albedo_lw_dir /= 9999999.9' //                     &
-                           'albedo_sw_dif /= 9999999.9 and' //                 &
-                           'albedo_sw_dir /= 9999999.9'
-          CALL message( 'check_parameters', 'PA0411', 1, 2, 0, 6, 0 )
+!
+!--    Radiation interactions
+       IF ( urban_surface .AND.  .NOT. radiation_interactions )  THEN
+          message_string = 'radiation_interactions = .T. is required '//       &
+                           'when using the urban surface model'
+          CALL message( 'check_parameters', 'PA0999', 1, 2, 0, 6, 0 )
        ENDIF
 
-!
-!--    The following paramter check is temporarily extended by the urban_surface
-!--    flag, until a better solution comes up to omit this check in case of
-!--    urban surface model is used.
-       IF ( topography /= 'flat'  .AND.  .NOT.  urban_surface )  THEN
-          message_string = 'radiation scheme cannot be used ' //               & 
-                           'in combination with  topography /= "flat"'
-          CALL message( 'check_parameters', 'PA0414', 1, 2, 0, 6, 0 )
-       ENDIF
  
     END SUBROUTINE radiation_check_parameters 
@@ -948,29 +1217,224 @@
        IMPLICIT NONE
 
-!
-!--    Allocate array for storing emissivity
-       IF ( .NOT. ALLOCATED ( emis ) )  THEN
-          ALLOCATE ( emis(nysg:nyng,nxlg:nxrg) )
-          emis = emissivity
+       INTEGER(iwp) ::  i         !< running index x-direction 
+       INTEGER(iwp) ::  ind_type  !< index of natural land-surface type with respect to albedo array 
+       INTEGER(iwp) ::  ioff      !< offset in x between surface element reference grid point in atmosphere and actual surface 
+       INTEGER(iwp) ::  j         !< running index y-direction 
+       INTEGER(iwp) ::  joff      !< offset in y between surface element reference grid point in atmosphere and actual surface 
+       INTEGER(iwp) ::  l         !< running index for orientation of vertical surfaces 
+       INTEGER(iwp) ::  m         !< running index for surface elements  
+
+!
+!--    Allocate array for storing the surface net radiation
+       IF ( .NOT. ALLOCATED ( surf_def_h(0)%rad_net )  .AND.                   &
+                  surf_def_h(0)%ns > 0  )  THEN
+          ALLOCATE( surf_def_h(0)%rad_net(1:surf_def_h(0)%ns) )
+          surf_def_h(0)%rad_net = 0.0_wp 
        ENDIF
-
-!
-!--    Allocate array for storing the surface net radiation
-       IF ( .NOT. ALLOCATED ( rad_net ) )  THEN
-          ALLOCATE ( rad_net(nysg:nyng,nxlg:nxrg) )
-          rad_net = 0.0_wp
+       IF ( .NOT. ALLOCATED ( surf_lsm_h%rad_net )  .AND.                      &
+                  surf_lsm_h%ns > 0  )   THEN
+          ALLOCATE( surf_lsm_h%rad_net(1:surf_lsm_h%ns) )
+          surf_lsm_h%rad_net = 0.0_wp 
        ENDIF
-
-!
-!--    Allocate array for storing the surface net radiation
-       IF ( .NOT. ALLOCATED ( rad_lw_out_change_0 ) )  THEN
-          ALLOCATE ( rad_lw_out_change_0(nysg:nyng,nxlg:nxrg) )
-          rad_lw_out_change_0 = 0.0_wp
+       IF ( .NOT. ALLOCATED ( surf_usm_h%rad_net )  .AND.                      &
+                  surf_usm_h%ns > 0  )  THEN
+          ALLOCATE( surf_usm_h%rad_net(1:surf_usm_h%ns) )
+          surf_usm_h%rad_net = 0.0_wp 
        ENDIF
+       DO  l = 0, 3
+          IF ( .NOT. ALLOCATED ( surf_def_v(l)%rad_net )  .AND.                &
+                     surf_def_v(l)%ns > 0  )  THEN
+             ALLOCATE( surf_def_v(l)%rad_net(1:surf_def_v(l)%ns) )
+             surf_def_v(l)%rad_net = 0.0_wp 
+          ENDIF
+          IF ( .NOT. ALLOCATED ( surf_lsm_v(l)%rad_net )  .AND.                &
+                     surf_lsm_v(l)%ns > 0  )  THEN
+             ALLOCATE( surf_lsm_v(l)%rad_net(1:surf_lsm_v(l)%ns) )
+             surf_lsm_v(l)%rad_net = 0.0_wp 
+          ENDIF
+          IF ( .NOT. ALLOCATED ( surf_usm_v(l)%rad_net )  .AND.                &
+                     surf_usm_v(l)%ns > 0  )  THEN
+             ALLOCATE( surf_usm_v(l)%rad_net(1:surf_usm_v(l)%ns) )
+             surf_usm_v(l)%rad_net = 0.0_wp 
+          ENDIF
+       ENDDO
+
+
+!
+!--    Allocate array for storing the surface longwave (out) radiation change
+       IF ( .NOT. ALLOCATED ( surf_def_h(0)%rad_lw_out_change_0 )  .AND.       &
+                  surf_def_h(0)%ns > 0  )  THEN
+          ALLOCATE( surf_def_h(0)%rad_lw_out_change_0(1:surf_def_h(0)%ns) )
+          surf_def_h(0)%rad_lw_out_change_0 = 0.0_wp 
+       ENDIF
+       IF ( .NOT. ALLOCATED ( surf_lsm_h%rad_lw_out_change_0 )  .AND.          &
+                  surf_lsm_h%ns > 0  )   THEN
+          ALLOCATE( surf_lsm_h%rad_lw_out_change_0(1:surf_lsm_h%ns) )
+          surf_lsm_h%rad_lw_out_change_0 = 0.0_wp 
+       ENDIF
+       IF ( .NOT. ALLOCATED ( surf_usm_h%rad_lw_out_change_0 )  .AND.          &
+                  surf_usm_h%ns > 0  )  THEN
+          ALLOCATE( surf_usm_h%rad_lw_out_change_0(1:surf_usm_h%ns) )
+          surf_usm_h%rad_lw_out_change_0 = 0.0_wp 
+       ENDIF
+       DO  l = 0, 3
+          IF ( .NOT. ALLOCATED ( surf_def_v(l)%rad_lw_out_change_0 )  .AND.    &
+                     surf_def_v(l)%ns > 0  )  THEN
+             ALLOCATE( surf_def_v(l)%rad_lw_out_change_0(1:surf_def_v(l)%ns) )
+             surf_def_v(l)%rad_lw_out_change_0 = 0.0_wp 
+          ENDIF
+          IF ( .NOT. ALLOCATED ( surf_lsm_v(l)%rad_lw_out_change_0 )  .AND.    &
+                     surf_lsm_v(l)%ns > 0  )  THEN
+             ALLOCATE( surf_lsm_v(l)%rad_lw_out_change_0(1:surf_lsm_v(l)%ns) )
+             surf_lsm_v(l)%rad_lw_out_change_0 = 0.0_wp 
+          ENDIF
+          IF ( .NOT. ALLOCATED ( surf_usm_v(l)%rad_lw_out_change_0 )  .AND.    &
+                     surf_usm_v(l)%ns > 0  )  THEN
+             ALLOCATE( surf_usm_v(l)%rad_lw_out_change_0(1:surf_usm_v(l)%ns) )
+             surf_usm_v(l)%rad_lw_out_change_0 = 0.0_wp 
+          ENDIF
+       ENDDO
+
+!
+!--    Allocate surface arrays for incoming/outgoing short/longwave radiation
+       IF ( .NOT. ALLOCATED ( surf_def_h(0)%rad_sw_in )  .AND.                 &
+                  surf_def_h(0)%ns > 0  )  THEN
+          ALLOCATE( surf_def_h(0)%rad_sw_in(1:surf_def_h(0)%ns)  )
+          ALLOCATE( surf_def_h(0)%rad_sw_out(1:surf_def_h(0)%ns) )
+          ALLOCATE( surf_def_h(0)%rad_lw_in(1:surf_def_h(0)%ns)  )
+          ALLOCATE( surf_def_h(0)%rad_lw_out(1:surf_def_h(0)%ns) )
+          surf_def_h(0)%rad_sw_in  = 0.0_wp 
+          surf_def_h(0)%rad_sw_out = 0.0_wp 
+          surf_def_h(0)%rad_lw_in  = 0.0_wp 
+          surf_def_h(0)%rad_lw_out = 0.0_wp 
+       ENDIF
+       IF ( .NOT. ALLOCATED ( surf_lsm_h%rad_sw_in )  .AND.                    &
+                  surf_lsm_h%ns > 0  )   THEN
+          ALLOCATE( surf_lsm_h%rad_sw_in(1:surf_lsm_h%ns)  )
+          ALLOCATE( surf_lsm_h%rad_sw_out(1:surf_lsm_h%ns) )
+          ALLOCATE( surf_lsm_h%rad_lw_in(1:surf_lsm_h%ns)  )
+          ALLOCATE( surf_lsm_h%rad_lw_out(1:surf_lsm_h%ns) )
+          surf_lsm_h%rad_sw_in  = 0.0_wp 
+          surf_lsm_h%rad_sw_out = 0.0_wp 
+          surf_lsm_h%rad_lw_in  = 0.0_wp 
+          surf_lsm_h%rad_lw_out = 0.0_wp 
+       ENDIF
+       IF ( .NOT. ALLOCATED ( surf_usm_h%rad_sw_in )  .AND.                    &
+                  surf_usm_h%ns > 0  )  THEN
+          ALLOCATE( surf_usm_h%rad_sw_in(1:surf_usm_h%ns)  )
+          ALLOCATE( surf_usm_h%rad_sw_out(1:surf_usm_h%ns) )
+          ALLOCATE( surf_usm_h%rad_lw_in(1:surf_usm_h%ns)  )
+          ALLOCATE( surf_usm_h%rad_lw_out(1:surf_usm_h%ns) )
+          surf_usm_h%rad_sw_in  = 0.0_wp 
+          surf_usm_h%rad_sw_out = 0.0_wp 
+          surf_usm_h%rad_lw_in  = 0.0_wp 
+          surf_usm_h%rad_lw_out = 0.0_wp 
+       ENDIF
+       DO  l = 0, 3
+          IF ( .NOT. ALLOCATED ( surf_def_v(l)%rad_sw_in )  .AND.              &
+                     surf_def_v(l)%ns > 0  )  THEN
+             ALLOCATE( surf_def_v(l)%rad_sw_in(1:surf_def_v(l)%ns)  )
+             ALLOCATE( surf_def_v(l)%rad_sw_out(1:surf_def_v(l)%ns) )
+             ALLOCATE( surf_def_v(l)%rad_lw_in(1:surf_def_v(l)%ns)  )
+             ALLOCATE( surf_def_v(l)%rad_lw_out(1:surf_def_v(l)%ns) )
+             surf_def_v(l)%rad_sw_in  = 0.0_wp 
+             surf_def_v(l)%rad_sw_out = 0.0_wp 
+             surf_def_v(l)%rad_lw_in  = 0.0_wp 
+             surf_def_v(l)%rad_lw_out = 0.0_wp 
+          ENDIF
+          IF ( .NOT. ALLOCATED ( surf_lsm_v(l)%rad_sw_in )  .AND.              &
+                     surf_lsm_v(l)%ns > 0  )  THEN
+             ALLOCATE( surf_lsm_v(l)%rad_sw_in(1:surf_lsm_v(l)%ns)  )
+             ALLOCATE( surf_lsm_v(l)%rad_sw_out(1:surf_lsm_v(l)%ns) )
+             ALLOCATE( surf_lsm_v(l)%rad_lw_in(1:surf_lsm_v(l)%ns)  )
+             ALLOCATE( surf_lsm_v(l)%rad_lw_out(1:surf_lsm_v(l)%ns) )
+             surf_lsm_v(l)%rad_sw_in  = 0.0_wp 
+             surf_lsm_v(l)%rad_sw_out = 0.0_wp 
+             surf_lsm_v(l)%rad_lw_in  = 0.0_wp 
+             surf_lsm_v(l)%rad_lw_out = 0.0_wp 
+          ENDIF
+          IF ( .NOT. ALLOCATED ( surf_usm_v(l)%rad_sw_in )  .AND.              &
+                     surf_usm_v(l)%ns > 0  )  THEN
+             ALLOCATE( surf_usm_v(l)%rad_sw_in(1:surf_usm_v(l)%ns)  )
+             ALLOCATE( surf_usm_v(l)%rad_sw_out(1:surf_usm_v(l)%ns) )
+             ALLOCATE( surf_usm_v(l)%rad_lw_in(1:surf_usm_v(l)%ns)  )
+             ALLOCATE( surf_usm_v(l)%rad_lw_out(1:surf_usm_v(l)%ns) )
+             surf_usm_v(l)%rad_sw_in  = 0.0_wp 
+             surf_usm_v(l)%rad_sw_out = 0.0_wp 
+             surf_usm_v(l)%rad_lw_in  = 0.0_wp 
+             surf_usm_v(l)%rad_lw_out = 0.0_wp 
+          ENDIF
+       ENDDO
+!
+!--    If necessary, allocate surface attribute albedo_type. 
+!--    Only for default-surfaces, In case urban- or land-surface scheme is 
+!--    utilized, this has been already allocated. For default surfaces,
+!--    no tile approach between different surface fractions is considered,
+!--    so first dimension is allocated with zero.
+!--    Initialize them with namelist parameter.
+       ALLOCATE ( surf_def_h(0)%albedo_type(0:0,1:surf_def_h(0)%ns) )
+       surf_def_h(0)%albedo_type = albedo_type
+
+       DO  l = 0, 3
+          ALLOCATE ( surf_def_v(l)%albedo_type(0:0,1:surf_def_v(l)%ns) )
+          surf_def_v(l)%albedo_type = albedo_type
+       ENDDO
+!
+!--    If available, overwrite albedo_type by values read from file.
+!--    Again, only required for default-type surfaces.
+       IF ( albedo_type_f%from_file )  THEN
+          DO  i = nxl, nxr
+             DO  j = nys, nyn 
+                IF ( albedo_type_f%var(j,i) /= albedo_type_f%fill )  THEN
+
+                   DO  m = surf_def_h(0)%start_index(j,i),                     &
+                           surf_def_h(0)%end_index(j,i)
+                      surf_def_h(0)%albedo_type(0,m) = albedo_type_f%var(j,i)
+                   ENDDO
+                   DO  l = 0, 3
+                      ioff = surf_def_v(l)%ioff
+                      joff = surf_def_v(l)%joff
+                      DO  m = surf_def_v(l)%start_index(j,i),                  &
+                              surf_def_v(l)%end_index(j,i)
+                         surf_def_v(l)%albedo_type(0,m) =                      &
+                                                albedo_type_f%var(j+joff,i+ioff)
+                      ENDDO
+                   ENDDO
+                ENDIF
+             ENDDO
+          ENDDO
+       ENDIF
+
+!
+!--    If necessary, allocate surface attribute emissivity. 
+!--    Only for default-type surfaces. In case urband- or
+!--    land-surface scheme is utilized, this has been already allocated.
+!--    Initialize them with namelist parameter.
+       ALLOCATE ( surf_def_h(0)%emissivity(0:0,1:surf_def_h(0)%ns) )
+       surf_def_h(0)%emissivity = emissivity
+
+       DO  l = 0, 3
+          ALLOCATE ( surf_def_v(l)%emissivity(0:0,1:surf_def_v(l)%ns) )
+       ENDDO
 
 !
 !--    Fix net radiation in case of radiation_scheme = 'constant'
        IF ( radiation_scheme == 'constant' )  THEN
-          rad_net = net_radiation
+          IF ( ALLOCATED( surf_def_h(0)%rad_net ) )                            &
+             surf_def_h(0)%rad_net = net_radiation
+          IF ( ALLOCATED( surf_lsm_h%rad_net ) )                               &
+             surf_lsm_h%rad_net    = net_radiation
+          IF ( ALLOCATED( surf_usm_h%rad_net ) )                               &
+             surf_usm_h%rad_net    = net_radiation
+!
+!--       Todo: weight with inclination angle
+          DO  l = 0, 3
+             IF ( ALLOCATED( surf_def_v(l)%rad_net ) )                         &
+                surf_def_v(l)%rad_net = net_radiation
+             IF ( ALLOCATED( surf_lsm_v(l)%rad_net ) )                         &
+                surf_lsm_v(l)%rad_net = net_radiation
+             IF ( ALLOCATED( surf_usm_v(l)%rad_net ) )                         &
+                surf_usm_v(l)%rad_net = net_radiation
+          ENDDO
 !          radiation = .FALSE.
 !
@@ -986,14 +1450,6 @@
        IF ( radiation_scheme == 'clear-sky'  .OR.                              &
             radiation_scheme == 'constant')  THEN
-
-          ALLOCATE ( alpha(nysg:nyng,nxlg:nxrg) )
-
-          IF ( .NOT. ALLOCATED ( rad_sw_in ) )  THEN
-             ALLOCATE ( rad_sw_in(0:0,nysg:nyng,nxlg:nxrg) )
-          ENDIF
-          IF ( .NOT. ALLOCATED ( rad_sw_out ) )  THEN
-             ALLOCATE ( rad_sw_out(0:0,nysg:nyng,nxlg:nxrg) )
-          ENDIF
-
+!
+!--       Allocate average arrays for incoming/outgoing short/longwave radiation
           IF ( .NOT. ALLOCATED ( rad_sw_in_av ) )  THEN
              ALLOCATE ( rad_sw_in_av(0:0,nysg:nyng,nxlg:nxrg) )
@@ -1003,11 +1459,4 @@
           ENDIF
 
-          IF ( .NOT. ALLOCATED ( rad_lw_in ) )  THEN
-             ALLOCATE ( rad_lw_in(0:0,nysg:nyng,nxlg:nxrg) )
-          ENDIF
-          IF ( .NOT. ALLOCATED ( rad_lw_out ) )  THEN
-             ALLOCATE ( rad_lw_out(0:0,nysg:nyng,nxlg:nxrg) )
-          ENDIF
-
           IF ( .NOT. ALLOCATED ( rad_lw_in_av ) )  THEN
              ALLOCATE ( rad_lw_in_av(0:0,nysg:nyng,nxlg:nxrg) )
@@ -1016,19 +1465,176 @@
              ALLOCATE ( rad_lw_out_av(0:0,nysg:nyng,nxlg:nxrg) )
           ENDIF
-
-          rad_sw_in  = 0.0_wp
-          rad_sw_out = 0.0_wp
-          rad_lw_in  = 0.0_wp
-          rad_lw_out = 0.0_wp
-
-!
-!--       Overwrite albedo if manually set in parameter file
-          IF ( albedo_type /= 0  .AND.  albedo_type /= 9999999 .AND. albedo == 9999999.9_wp )  THEN
-             albedo = albedo_pars(2,albedo_type)
-          ENDIF
-!
-!--       Write albedo to 2d array alpha to allow surface heterogeneities    
-          alpha = albedo
-  
+!
+!--       Allocate arrays for broadband albedo, and level 1 initialization
+!--       via namelist paramter. 
+          IF ( .NOT. ALLOCATED(surf_def_h(0)%albedo) )                         &
+             ALLOCATE( surf_def_h(0)%albedo(0:0,1:surf_def_h(0)%ns) )
+          IF ( .NOT. ALLOCATED(surf_lsm_h%albedo) )                            &
+             ALLOCATE( surf_lsm_h%albedo(0:2,1:surf_lsm_h%ns)     )
+          IF ( .NOT. ALLOCATED(surf_usm_h%albedo) )                            &
+             ALLOCATE( surf_usm_h%albedo(0:2,1:surf_usm_h%ns)     )
+
+          surf_def_h(0)%albedo = albedo
+          surf_lsm_h%albedo    = albedo
+          surf_usm_h%albedo    = albedo
+          DO  l = 0, 3
+             IF ( .NOT. ALLOCATED( surf_def_v(l)%albedo ) )                    &
+                ALLOCATE( surf_def_v(l)%albedo(0:0,1:surf_def_v(l)%ns) )
+             IF ( .NOT. ALLOCATED( surf_lsm_v(l)%albedo ) )                    &
+                ALLOCATE( surf_lsm_v(l)%albedo(0:2,1:surf_lsm_v(l)%ns) )
+             IF ( .NOT. ALLOCATED( surf_usm_v(l)%albedo ) )                    &
+                ALLOCATE( surf_usm_v(l)%albedo(0:2,1:surf_usm_v(l)%ns) )
+
+             surf_def_v(l)%albedo = albedo
+             surf_lsm_v(l)%albedo = albedo
+             surf_usm_v(l)%albedo = albedo
+          ENDDO
+!
+!--       Level 2 initialization of broadband albedo via given albedo_type. 
+!--       Only if albedo_type is non-zero
+          DO  m = 1, surf_def_h(0)%ns
+             IF ( surf_def_h(0)%albedo_type(0,m) /= 0 )                        &
+                surf_def_h(0)%albedo(0,m) =                                    &
+                                albedo_pars(2,surf_def_h(0)%albedo_type(0,m))
+          ENDDO
+          DO  m = 1, surf_lsm_h%ns
+             IF ( surf_lsm_h%albedo_type(0,m) /= 0 )                           &
+                surf_lsm_h%albedo(0,m) =                                       &
+                                      albedo_pars(2,surf_lsm_h%albedo_type(0,m))
+             IF ( surf_lsm_h%albedo_type(1,m) /= 0 )                           &
+                surf_lsm_h%albedo(1,m) =                                       &
+                                      albedo_pars(2,surf_lsm_h%albedo_type(1,m))
+             IF ( surf_lsm_h%albedo_type(2,m) /= 0 )                           &
+                surf_lsm_h%albedo(2,m) =                                       &
+                                      albedo_pars(2,surf_lsm_h%albedo_type(2,m))
+          ENDDO
+          DO  m = 1, surf_usm_h%ns
+             IF ( surf_usm_h%albedo_type(0,m) /= 0 )                           &
+                surf_usm_h%albedo(0,m) =                                       &
+                                      albedo_pars(2,surf_usm_h%albedo_type(0,m))
+             IF ( surf_usm_h%albedo_type(1,m) /= 0 )                           &
+                surf_usm_h%albedo(1,m) =                                       &
+                                      albedo_pars(2,surf_usm_h%albedo_type(1,m))
+             IF ( surf_usm_h%albedo_type(2,m) /= 0 )                           &
+                surf_usm_h%albedo(2,m) =                                       &
+                                      albedo_pars(2,surf_usm_h%albedo_type(2,m))
+          ENDDO
+
+          DO  l = 0, 3
+             DO  m = 1, surf_def_v(l)%ns
+                IF ( surf_def_v(l)%albedo_type(0,m) /= 0 )                     &
+                   surf_def_v(l)%albedo(0,m) =                                 &
+                                albedo_pars(2,surf_def_v(l)%albedo_type(0,m))
+             ENDDO
+             DO  m = 1, surf_lsm_v(l)%ns
+                IF ( surf_lsm_v(l)%albedo_type(0,m) /= 0 )                     &
+                   surf_lsm_v(l)%albedo(0,m) =                                 &
+                                   albedo_pars(2,surf_lsm_v(l)%albedo_type(0,m))
+                IF ( surf_lsm_v(l)%albedo_type(1,m) /= 0 )                     &
+                   surf_lsm_v(l)%albedo(1,m) =                                 &
+                                   albedo_pars(2,surf_lsm_v(l)%albedo_type(1,m))
+                IF ( surf_lsm_v(l)%albedo_type(2,m) /= 0 )                     &
+                   surf_lsm_v(l)%albedo(2,m) =                                 &
+                                   albedo_pars(2,surf_lsm_v(l)%albedo_type(2,m))
+             ENDDO
+             DO  m = 1, surf_usm_v(l)%ns
+                IF ( surf_usm_v(l)%albedo_type(0,m) /= 0 )                     &
+                   surf_usm_v(l)%albedo(0,m) =                                 &
+                                   albedo_pars(2,surf_usm_v(l)%albedo_type(0,m))
+                IF ( surf_usm_v(l)%albedo_type(1,m) /= 0 )                     &
+                   surf_usm_v(l)%albedo(1,m) =                                 &
+                                   albedo_pars(2,surf_usm_v(l)%albedo_type(1,m))
+                IF ( surf_usm_v(l)%albedo_type(2,m) /= 0 )                     &
+                   surf_usm_v(l)%albedo(2,m) =                                 &
+                                   albedo_pars(2,surf_usm_v(l)%albedo_type(2,m))
+             ENDDO
+          ENDDO
+
+!
+!--       Level 3 initialization at grid points where albedo type is zero.
+!--       This case, albedo is taken from file. In case of constant radiation
+!--       or clear sky, only broadband albedo is given.
+          IF ( albedo_pars_f%from_file )  THEN
+!
+!--          Horizontal surfaces
+             DO  m = 1, surf_def_h(0)%ns
+                i = surf_def_h(0)%i(m)
+                j = surf_def_h(0)%j(m)
+                IF ( albedo_pars_f%pars_xy(0,j,i) /= albedo_pars_f%fill  .AND. &
+                     surf_def_h(0)%albedo_type(0,m) == 0 )  THEN
+                   surf_def_h(0)%albedo(0,m) = albedo_pars_f%pars_xy(0,j,i)
+                ENDIF
+             ENDDO
+             DO  m = 1, surf_lsm_h%ns
+                i = surf_lsm_h%i(m)
+                j = surf_lsm_h%j(m)
+                IF ( albedo_pars_f%pars_xy(0,j,i) /= albedo_pars_f%fill )  THEN
+                   IF ( surf_lsm_h%albedo_type(0,m) == 0 )                     &
+                      surf_lsm_h%albedo(0,m) = albedo_pars_f%pars_xy(0,j,i)
+                   IF ( surf_lsm_h%albedo_type(1,m) == 0 )                     &
+                      surf_lsm_h%albedo(1,m) = albedo_pars_f%pars_xy(0,j,i)
+                   IF ( surf_lsm_h%albedo_type(2,m) == 0 )                     &
+                      surf_lsm_h%albedo(2,m) = albedo_pars_f%pars_xy(0,j,i)
+                ENDIF
+             ENDDO
+             DO  m = 1, surf_usm_h%ns
+                i = surf_usm_h%i(m)
+                j = surf_usm_h%j(m)
+                IF ( albedo_pars_f%pars_xy(0,j,i) /= albedo_pars_f%fill )  THEN
+                   IF ( surf_usm_h%albedo_type(0,m) == 0 )                     &
+                      surf_usm_h%albedo(0,m) = albedo_pars_f%pars_xy(0,j,i)
+                   IF ( surf_usm_h%albedo_type(1,m) == 0 )                     &
+                      surf_usm_h%albedo(1,m) = albedo_pars_f%pars_xy(0,j,i)
+                   IF ( surf_usm_h%albedo_type(2,m) == 0 )                     &
+                      surf_usm_h%albedo(2,m) = albedo_pars_f%pars_xy(0,j,i)
+                ENDIF
+             ENDDO 
+!
+!--          Vertical surfaces            
+             DO  l = 0, 3
+
+                ioff = surf_def_v(l)%ioff
+                joff = surf_def_v(l)%joff
+                DO  m = 1, surf_def_v(l)%ns
+                   i = surf_def_v(l)%i(m) + ioff
+                   j = surf_def_v(l)%j(m) + joff
+                   IF ( albedo_pars_f%pars_xy(0,j,i) /= albedo_pars_f%fill  .AND. &
+                        surf_def_v(l)%albedo_type(0,m) == 0 )  THEN
+                      surf_def_v(l)%albedo(0,m) = albedo_pars_f%pars_xy(0,j,i)
+                   ENDIF
+                ENDDO
+
+                ioff = surf_lsm_v(l)%ioff
+                joff = surf_lsm_v(l)%joff
+                DO  m = 1, surf_lsm_v(l)%ns
+                   i = surf_lsm_v(l)%i(m) + ioff
+                   j = surf_lsm_v(l)%j(m) + joff
+                   IF ( albedo_pars_f%pars_xy(0,j,i) /= albedo_pars_f%fill )  THEN
+                      IF ( surf_lsm_v(l)%albedo_type(0,m) == 0 )               &
+                         surf_lsm_v(l)%albedo(1,m) = albedo_pars_f%pars_xy(0,j,i)
+                      IF ( surf_lsm_v(l)%albedo_type(1,m) == 0 )               &
+                         surf_lsm_v(l)%albedo(1,m) = albedo_pars_f%pars_xy(0,j,i)
+                      IF ( surf_lsm_v(l)%albedo_type(2,m) == 0 )               &
+                         surf_lsm_v(l)%albedo(2,m) = albedo_pars_f%pars_xy(0,j,i)
+                   ENDIF
+                ENDDO
+
+                ioff = surf_usm_v(l)%ioff
+                joff = surf_usm_v(l)%joff
+                DO  m = 1, surf_usm_h%ns
+                   i = surf_usm_h%i(m) + joff
+                   j = surf_usm_h%j(m) + joff
+                   IF ( albedo_pars_f%pars_xy(0,j,i) /= albedo_pars_f%fill )  THEN
+                      IF ( surf_usm_v(l)%albedo_type(0,m) == 0 )               &
+                         surf_usm_v(l)%albedo(1,m) = albedo_pars_f%pars_xy(0,j,i)
+                      IF ( surf_usm_v(l)%albedo_type(1,m) == 0 )               &
+                         surf_usm_v(l)%albedo(1,m) = albedo_pars_f%pars_xy(0,j,i)
+                      IF ( surf_usm_v(l)%albedo_type(2,m) == 0 )               &
+                         surf_lsm_v(l)%albedo(2,m) = albedo_pars_f%pars_xy(0,j,i)
+                   ENDIF
+                ENDDO
+             ENDDO
+
+          ENDIF  
 !
 !--    Initialization actions for RRTMG
@@ -1036,29 +1642,417 @@
 #if defined ( __rrtmg )
 !
-!--       Allocate albedos
-          ALLOCATE ( rrtm_aldif(0:0,nysg:nyng,nxlg:nxrg) )
-          ALLOCATE ( rrtm_aldir(0:0,nysg:nyng,nxlg:nxrg) )
-          ALLOCATE ( rrtm_asdif(0:0,nysg:nyng,nxlg:nxrg) )
-          ALLOCATE ( rrtm_asdir(0:0,nysg:nyng,nxlg:nxrg) )
-          ALLOCATE ( aldif(nysg:nyng,nxlg:nxrg) )
-          ALLOCATE ( aldir(nysg:nyng,nxlg:nxrg) )
-          ALLOCATE ( asdif(nysg:nyng,nxlg:nxrg) )
-          ALLOCATE ( asdir(nysg:nyng,nxlg:nxrg) )
-
-          IF ( albedo_type /= 0 )  THEN
-             IF ( albedo_sw_dif == 9999999.9_wp )  THEN
-                albedo_sw_dif = albedo_pars(0,albedo_type)
-                albedo_sw_dir = albedo_sw_dif
+!--       Allocate albedos for short/longwave radiation, horizontal surfaces.
+          ALLOCATE ( surf_def_h(0)%aldif(1:surf_def_h(0)%ns) )
+          ALLOCATE ( surf_def_h(0)%aldir(1:surf_def_h(0)%ns) )
+          ALLOCATE ( surf_def_h(0)%asdif(1:surf_def_h(0)%ns) )
+          ALLOCATE ( surf_def_h(0)%asdir(1:surf_def_h(0)%ns) )
+          ALLOCATE ( surf_def_h(0)%rrtm_aldif(1:surf_def_h(0)%ns) )
+          ALLOCATE ( surf_def_h(0)%rrtm_aldir(1:surf_def_h(0)%ns) )
+          ALLOCATE ( surf_def_h(0)%rrtm_asdif(1:surf_def_h(0)%ns) )
+          ALLOCATE ( surf_def_h(0)%rrtm_asdir(1:surf_def_h(0)%ns) )
+
+          ALLOCATE ( surf_lsm_h%aldif(1:surf_lsm_h%ns)       )
+          ALLOCATE ( surf_lsm_h%aldir(1:surf_lsm_h%ns)       )
+          ALLOCATE ( surf_lsm_h%asdif(1:surf_lsm_h%ns)       )
+          ALLOCATE ( surf_lsm_h%asdir(1:surf_lsm_h%ns)       )
+          ALLOCATE ( surf_lsm_h%rrtm_aldif(1:surf_lsm_h%ns)  )
+          ALLOCATE ( surf_lsm_h%rrtm_aldir(1:surf_lsm_h%ns)  )
+          ALLOCATE ( surf_lsm_h%rrtm_asdif(1:surf_lsm_h%ns)  )
+          ALLOCATE ( surf_lsm_h%rrtm_asdir(1:surf_lsm_h%ns)  )
+
+          ALLOCATE ( surf_usm_h%aldif(1:surf_usm_h%ns)       )
+          ALLOCATE ( surf_usm_h%aldir(1:surf_usm_h%ns)       )
+          ALLOCATE ( surf_usm_h%asdif(1:surf_usm_h%ns)       )
+          ALLOCATE ( surf_usm_h%asdir(1:surf_usm_h%ns)       )
+          ALLOCATE ( surf_usm_h%rrtm_aldif(1:surf_usm_h%ns)  )
+          ALLOCATE ( surf_usm_h%rrtm_aldir(1:surf_usm_h%ns)  )
+          ALLOCATE ( surf_usm_h%rrtm_asdif(1:surf_usm_h%ns)  )
+          ALLOCATE ( surf_usm_h%rrtm_asdir(1:surf_usm_h%ns)  )
+
+!
+!--       Allocate broadband albedo (temporary for the current radiation 
+!--       implementations)
+          IF ( .NOT. ALLOCATED(surf_def_h(0)%albedo) )                         &
+             ALLOCATE( surf_def_h(0)%albedo(0:0,1:surf_def_h(0)%ns) )
+          IF ( .NOT. ALLOCATED(surf_lsm_h%albedo) )                            &
+             ALLOCATE( surf_lsm_h%albedo(0:2,1:surf_lsm_h%ns)     )
+          IF ( .NOT. ALLOCATED(surf_usm_h%albedo) )                            &
+             ALLOCATE( surf_usm_h%albedo(0:2,1:surf_usm_h%ns)     )
+
+!
+!--       Allocate albedos for short/longwave radiation, vertical surfaces 
+          DO  l = 0, 3
+             ALLOCATE ( surf_def_v(l)%aldif(1:surf_def_v(l)%ns)      )
+             ALLOCATE ( surf_def_v(l)%aldir(1:surf_def_v(l)%ns)      )
+             ALLOCATE ( surf_def_v(l)%asdif(1:surf_def_v(l)%ns)      )
+             ALLOCATE ( surf_def_v(l)%asdir(1:surf_def_v(l)%ns)      )
+
+             ALLOCATE ( surf_def_v(l)%rrtm_aldif(1:surf_def_v(l)%ns) )
+             ALLOCATE ( surf_def_v(l)%rrtm_aldir(1:surf_def_v(l)%ns) )
+             ALLOCATE ( surf_def_v(l)%rrtm_asdif(1:surf_def_v(l)%ns) )
+             ALLOCATE ( surf_def_v(l)%rrtm_asdir(1:surf_def_v(l)%ns) )
+
+             ALLOCATE ( surf_lsm_v(l)%aldif(1:surf_lsm_v(l)%ns)      )
+             ALLOCATE ( surf_lsm_v(l)%aldir(1:surf_lsm_v(l)%ns)      )
+             ALLOCATE ( surf_lsm_v(l)%asdif(1:surf_lsm_v(l)%ns)      )
+             ALLOCATE ( surf_lsm_v(l)%asdir(1:surf_lsm_v(l)%ns)      )
+
+             ALLOCATE ( surf_lsm_v(l)%rrtm_aldif(1:surf_lsm_v(l)%ns) )
+             ALLOCATE ( surf_lsm_v(l)%rrtm_aldir(1:surf_lsm_v(l)%ns) )
+             ALLOCATE ( surf_lsm_v(l)%rrtm_asdif(1:surf_lsm_v(l)%ns) )
+             ALLOCATE ( surf_lsm_v(l)%rrtm_asdir(1:surf_lsm_v(l)%ns) )
+
+             ALLOCATE ( surf_usm_v(l)%aldif(1:surf_usm_v(l)%ns)      )
+             ALLOCATE ( surf_usm_v(l)%aldir(1:surf_usm_v(l)%ns)      )
+             ALLOCATE ( surf_usm_v(l)%asdif(1:surf_usm_v(l)%ns)      )
+             ALLOCATE ( surf_usm_v(l)%asdir(1:surf_usm_v(l)%ns)      )
+
+             ALLOCATE ( surf_usm_v(l)%rrtm_aldif(1:surf_usm_v(l)%ns) )
+             ALLOCATE ( surf_usm_v(l)%rrtm_aldir(1:surf_usm_v(l)%ns) )
+             ALLOCATE ( surf_usm_v(l)%rrtm_asdif(1:surf_usm_v(l)%ns) )
+             ALLOCATE ( surf_usm_v(l)%rrtm_asdir(1:surf_usm_v(l)%ns) )
+!
+!--          Allocate broadband albedo (temporary for the current radiation
+!--          implementations)
+             IF ( .NOT. ALLOCATED( surf_def_v(l)%albedo ) )                    &
+                ALLOCATE( surf_def_v(l)%albedo(0,1:surf_def_v(l)%ns) )
+             IF ( .NOT. ALLOCATED( surf_lsm_v(l)%albedo ) )                    &
+                ALLOCATE( surf_lsm_v(l)%albedo(0:2,1:surf_lsm_v(l)%ns) )
+             IF ( .NOT. ALLOCATED( surf_usm_v(l)%albedo ) )                    &
+                ALLOCATE( surf_usm_v(l)%albedo(0:2,1:surf_usm_v(l)%ns) )
+
+          ENDDO
+!
+!--       Level 1 initialization of spectral albedos via namelist 
+!--       paramters
+          IF ( surf_def_h(0)%ns > 0 )  THEN
+             surf_def_h(0)%aldif  = albedo_lw_dif
+             surf_def_h(0)%aldir  = albedo_lw_dir
+             surf_def_h(0)%asdif  = albedo_sw_dif
+             surf_def_h(0)%asdir  = albedo_sw_dir
+             surf_def_h(0)%albedo = albedo_sw_dif
+          ENDIF
+          IF ( surf_lsm_h%ns > 0 )  THEN
+             surf_lsm_h%aldif  = albedo_lw_dif
+             surf_lsm_h%aldir  = albedo_lw_dir
+             surf_lsm_h%asdif  = albedo_sw_dif
+             surf_lsm_h%asdir  = albedo_sw_dir
+             surf_lsm_h%albedo = albedo_sw_dif
+          ENDIF
+          IF ( surf_usm_h%ns > 0 )  THEN
+             surf_usm_h%aldif  = albedo_lw_dif
+             surf_usm_h%aldir  = albedo_lw_dir
+             surf_usm_h%asdif  = albedo_sw_dif
+             surf_usm_h%asdir  = albedo_sw_dir
+             surf_usm_h%albedo = albedo_sw_dif
+          ENDIF
+
+          DO  l = 0, 3
+             IF ( surf_def_v(l)%ns > 0 )  THEN
+                surf_def_v(l)%aldif  = albedo_lw_dif
+                surf_def_v(l)%aldir  = albedo_lw_dir
+                surf_def_v(l)%asdif  = albedo_sw_dif
+                surf_def_v(l)%asdir  = albedo_sw_dir
+                surf_def_v(l)%albedo = albedo_sw_dif
              ENDIF
-             IF ( albedo_lw_dif == 9999999.9_wp )  THEN
-                albedo_lw_dif = albedo_pars(1,albedo_type)
-                albedo_lw_dir = albedo_lw_dif
+
+             IF ( surf_lsm_v(l)%ns > 0 )  THEN
+                surf_lsm_v(l)%aldif  = albedo_lw_dif
+                surf_lsm_v(l)%aldir  = albedo_lw_dir
+                surf_lsm_v(l)%asdif  = albedo_sw_dif
+                surf_lsm_v(l)%asdir  = albedo_sw_dir
+                surf_lsm_v(l)%albedo = albedo_sw_dif
              ENDIF
+
+             IF ( surf_usm_v(l)%ns > 0 )  THEN
+                surf_usm_v(l)%aldif  = albedo_lw_dif
+                surf_usm_v(l)%aldir  = albedo_lw_dir
+                surf_usm_v(l)%asdif  = albedo_sw_dif
+                surf_usm_v(l)%asdir  = albedo_sw_dir
+                surf_usm_v(l)%albedo = albedo_sw_dif
+             ENDIF
+          ENDDO
+
+!
+!--       Level 2 initialization of spectral albedos via albedo_type. 
+!--       Only diffusive albedos (why?)
+          DO  m = 1, surf_def_h(0)%ns
+             IF ( surf_def_h(0)%albedo_type(0,m) /= 0 )  THEN
+                surf_def_h(0)%aldif(m) =                                       &
+                                albedo_pars(0,surf_def_h(0)%albedo_type(0,m))
+                surf_def_h(0)%asdif(m) =                                       &
+                                albedo_pars(1,surf_def_h(0)%albedo_type(0,m))
+                surf_def_h(0)%aldir(m) =                                       &
+                                albedo_pars(0,surf_def_h(0)%albedo_type(0,m))
+                surf_def_h(0)%asdir(m) =                                       &
+                                albedo_pars(1,surf_def_h(0)%albedo_type(0,m))
+                surf_def_h(0)%albedo(0,m) =                                    &
+                                albedo_pars(2,surf_def_h(0)%albedo_type(0,m))
+             ENDIF
+          ENDDO
+          DO  m = 1, surf_lsm_h%ns
+!
+!--          Determine surface type
+             IF ( surf_lsm_h%vegetation_surface(m) )  ind_type = 0
+             IF ( surf_lsm_h%pavement_surface(m)   )  ind_type = 1
+             IF ( surf_lsm_h%water_surface(m)      )  ind_type = 2
+
+             IF ( surf_lsm_h%albedo_type(ind_type,m) /= 0 )  THEN
+                surf_lsm_h%aldif(m) =                                          &
+                               albedo_pars(0,surf_lsm_h%albedo_type(ind_type,m))
+                surf_lsm_h%asdif(m) =                                          &
+                               albedo_pars(1,surf_lsm_h%albedo_type(ind_type,m))
+                surf_lsm_h%aldir(m) =                                          &
+                               albedo_pars(0,surf_lsm_h%albedo_type(ind_type,m))
+                surf_lsm_h%asdir(m) =                                          &
+                               albedo_pars(1,surf_lsm_h%albedo_type(ind_type,m))
+                surf_lsm_h%albedo(:,m) =                                       &
+                               albedo_pars(2,surf_lsm_h%albedo_type(ind_type,m))
+             ENDIF
+
+          ENDDO
+
+          DO  m = 1, surf_usm_h%ns
+!
+!--          Initialize spectral albedos for urban-type surfaces. Please note,
+!--          for urban surfaces a tile approach is applied, so that the 
+!--          resulting albedo should be calculated via the weighted average of  
+!--          respective surface fractions. However, for the moment the albedo
+!--          is set to the wall-surface value. 
+             IF ( surf_usm_h%albedo_type(0,m) /= 0 )  THEN
+                surf_usm_h%aldif(m) =                                          &
+                                albedo_pars(0,surf_usm_h%albedo_type(0,m))
+                surf_usm_h%asdif(m) =                                          &
+                                albedo_pars(1,surf_usm_h%albedo_type(0,m))
+                surf_usm_h%aldir(m) =                                          &
+                               albedo_pars(0,surf_usm_h%albedo_type(0,m))
+                surf_usm_h%asdir(m) =                                          &
+                               albedo_pars(1,surf_usm_h%albedo_type(0,m))
+                surf_usm_h%albedo(:,m) =                                       &
+                                albedo_pars(2,surf_usm_h%albedo_type(0,m))
+             ENDIF
+          ENDDO
+
+          DO l = 0, 3
+             DO  m = 1, surf_def_v(l)%ns
+                IF ( surf_def_v(l)%albedo_type(0,m) /= 0 )  THEN
+                    surf_def_v(l)%aldif(m) =                                   &
+                               albedo_pars(0,surf_def_v(l)%albedo_type(0,m))
+                    surf_def_v(l)%asdif(m) =                                   &
+                               albedo_pars(1,surf_def_v(l)%albedo_type(0,m))
+                    surf_def_v(l)%aldir(m) =                                   &
+                               albedo_pars(0,surf_def_v(l)%albedo_type(0,m))
+                    surf_def_v(l)%asdir(m) =                                   &
+                               albedo_pars(1,surf_def_v(l)%albedo_type(0,m))
+                    surf_def_v(l)%albedo(:,m) =                                &
+                               albedo_pars(2,surf_def_v(l)%albedo_type(0,m))
+                ENDIF
+             ENDDO
+             DO  m = 1, surf_lsm_v(l)%ns
+                IF ( surf_lsm_v(l)%vegetation_surface(m) )  ind_type = 0
+                IF ( surf_lsm_v(l)%pavement_surface(m)   )  ind_type = 1
+                IF ( surf_lsm_v(l)%water_surface(m)      )  ind_type = 2
+
+                IF ( surf_lsm_v(l)%albedo_type(0,m) /= 0 )  THEN
+                   surf_lsm_v(l)%aldif(m) =                                    &
+                            albedo_pars(0,surf_lsm_v(l)%albedo_type(ind_type,m))
+                   surf_lsm_v(l)%asdif(m) =                                    &
+                            albedo_pars(1,surf_lsm_v(l)%albedo_type(ind_type,m))
+                   surf_lsm_v(l)%aldir(m) =                                    &
+                            albedo_pars(0,surf_lsm_v(l)%albedo_type(ind_type,m))
+                   surf_lsm_v(l)%asdir(m) =                                    &
+                            albedo_pars(1,surf_lsm_v(l)%albedo_type(ind_type,m))
+                   surf_lsm_v(l)%albedo(:,m) =                                 &
+                            albedo_pars(2,surf_lsm_v(l)%albedo_type(ind_type,m))
+                ENDIF
+            ENDDO
+
+            DO  m = 1, surf_usm_v(l)%ns
+!
+!--            Initialize spectral albedos for urban-type surfaces. Please note,
+!--            for urban surfaces a tile approach is applied, so that the 
+!--            resulting albedo should be calculated via the weighted average of  
+!--            respective surface fractions. However, for the moment the albedo
+!--            is set to the wall-surface value. 
+               IF ( surf_usm_v(l)%albedo_type(0,m) /= 0 )  THEN
+                  surf_usm_v(l)%aldif(m) =                                    &
+                               albedo_pars(0,surf_usm_v(l)%albedo_type(0,m))
+                  surf_usm_v(l)%asdif(m) =                                    &
+                               albedo_pars(1,surf_usm_v(l)%albedo_type(0,m))
+                  surf_usm_v(l)%aldir(m) =                                    &
+                               albedo_pars(0,surf_usm_v(l)%albedo_type(0,m))
+                  surf_usm_v(l)%asdir(m) =                                    &
+                               albedo_pars(1,surf_usm_v(l)%albedo_type(0,m))
+                  surf_usm_v(l)%albedo(:,m) =                                 &
+                               albedo_pars(2,surf_usm_v(l)%albedo_type(0,m))
+               ENDIF
+            ENDDO
+          ENDDO
+!
+!--       Level 3 initialization at grid points where albedo type is zero.
+!--       This case, spectral albedos are taken from file if available
+          IF ( albedo_pars_f%from_file )  THEN
+!
+!--          Horizontal
+             DO  m = 1, surf_def_h(0)%ns
+                i = surf_def_h(0)%i(m)
+                j = surf_def_h(0)%j(m)
+                IF ( surf_def_h(0)%albedo_type(0,m) == 0 )  THEN
+
+                   IF ( albedo_pars_f%pars_xy(1,j,i) /= albedo_pars_f%fill )   &
+                      surf_def_h(0)%albedo(0,m) = albedo_pars_f%pars_xy(1,j,i)
+                   IF ( albedo_pars_f%pars_xy(1,j,i) /= albedo_pars_f%fill )   &
+                      surf_def_h(0)%aldir(m) = albedo_pars_f%pars_xy(1,j,i)
+                   IF ( albedo_pars_f%pars_xy(2,j,i) /= albedo_pars_f%fill )   &
+                      surf_def_h(0)%aldif(m) = albedo_pars_f%pars_xy(2,j,i)
+                   IF ( albedo_pars_f%pars_xy(3,j,i) /= albedo_pars_f%fill )   &
+                      surf_def_h(0)%asdir(m) = albedo_pars_f%pars_xy(3,j,i)
+                   IF ( albedo_pars_f%pars_xy(4,j,i) /= albedo_pars_f%fill )   &
+                      surf_def_h(0)%asdif(m) = albedo_pars_f%pars_xy(4,j,i)
+                ENDIF
+             ENDDO
+
+             DO  m = 1, surf_lsm_h%ns
+                i = surf_lsm_h%i(m)
+                j = surf_lsm_h%j(m)
+
+                IF ( surf_lsm_h%vegetation_surface(m) )  ind_type = 0
+                IF ( surf_lsm_h%pavement_surface(m)   )  ind_type = 1
+                IF ( surf_lsm_h%water_surface(m)      )  ind_type = 2
+
+                IF ( surf_lsm_h%albedo_type(ind_type,m) == 0 )  THEN
+                   IF ( albedo_pars_f%pars_xy(1,j,i) /= albedo_pars_f%fill )   &
+                      surf_lsm_h%albedo(ind_type,m) = albedo_pars_f%pars_xy(1,j,i)
+                   IF ( albedo_pars_f%pars_xy(1,j,i) /= albedo_pars_f%fill )   &
+                      surf_lsm_h%aldir(m) = albedo_pars_f%pars_xy(1,j,i)
+                   IF ( albedo_pars_f%pars_xy(2,j,i) /= albedo_pars_f%fill )   &
+                      surf_lsm_h%aldif(m) = albedo_pars_f%pars_xy(2,j,i)
+                   IF ( albedo_pars_f%pars_xy(3,j,i) /= albedo_pars_f%fill )   &
+                      surf_lsm_h%asdir(m) = albedo_pars_f%pars_xy(3,j,i)
+                   IF ( albedo_pars_f%pars_xy(4,j,i) /= albedo_pars_f%fill )   &
+                      surf_lsm_h%asdif(m) = albedo_pars_f%pars_xy(4,j,i)
+                ENDIF
+             ENDDO
+
+             DO  m = 1, surf_usm_h%ns
+                i = surf_usm_h%i(m)
+                j = surf_usm_h%j(m)
+!
+!--             At the moment, consider only wall surfaces (index 0)
+                IF ( surf_usm_h%albedo_type(0,m) == 0 )  THEN
+                   IF ( albedo_pars_f%pars_xy(1,j,i) /= albedo_pars_f%fill )   &
+                      surf_usm_h%albedo(:,m) = albedo_pars_f%pars_xy(1,j,i)
+                   IF ( albedo_pars_f%pars_xy(1,j,i) /= albedo_pars_f%fill )   &
+                      surf_usm_h%aldir(m) = albedo_pars_f%pars_xy(1,j,i)
+                   IF ( albedo_pars_f%pars_xy(2,j,i) /= albedo_pars_f%fill )   &
+                      surf_usm_h%aldif(m) = albedo_pars_f%pars_xy(2,j,i)
+                   IF ( albedo_pars_f%pars_xy(3,j,i) /= albedo_pars_f%fill )   &
+                      surf_usm_h%asdir(m) = albedo_pars_f%pars_xy(3,j,i)
+                   IF ( albedo_pars_f%pars_xy(4,j,i) /= albedo_pars_f%fill )   &
+                      surf_usm_h%asdif(m) = albedo_pars_f%pars_xy(4,j,i)
+                ENDIF
+             ENDDO
+!
+!--          Vertical
+             DO  l = 0, 3
+                ioff = surf_def_v(l)%ioff
+                joff = surf_def_v(l)%joff
+
+                DO  m = 1, surf_def_v(l)%ns
+                   i = surf_def_v(l)%i(m)
+                   j = surf_def_v(l)%j(m)
+                   IF ( surf_def_v(l)%albedo_type(0,m) == 0 )  THEN
+
+                      IF ( albedo_pars_f%pars_xy(1,j+joff,i+ioff) /=           &
+                           albedo_pars_f%fill )                                &
+                         surf_def_v(l)%albedo(0,m) =                           &
+                                          albedo_pars_f%pars_xy(1,j+joff,i+ioff)
+                      IF ( albedo_pars_f%pars_xy(1,j+joff,i+ioff) /=           &
+                           albedo_pars_f%fill )                                &
+                         surf_def_v(l)%aldir(m) =                              &
+                                          albedo_pars_f%pars_xy(1,j+joff,i+ioff)
+                      IF ( albedo_pars_f%pars_xy(2,j+joff,i+ioff) /=           &
+                           albedo_pars_f%fill )                                &
+                         surf_def_v(l)%aldif(m) =                              &
+                                          albedo_pars_f%pars_xy(2,j+joff,i+ioff)
+                      IF ( albedo_pars_f%pars_xy(3,j+joff,i+ioff) /=           &
+                           albedo_pars_f%fill )                                &
+                         surf_def_v(l)%asdir(m) =                              &
+                                          albedo_pars_f%pars_xy(3,j+joff,i+ioff)
+                      IF ( albedo_pars_f%pars_xy(4,j+joff,i+ioff) /=           &
+                           albedo_pars_f%fill )                                &
+                         surf_def_v(l)%asdif(m) =                              &
+                                          albedo_pars_f%pars_xy(4,j+joff,i+ioff)
+                   ENDIF
+                ENDDO
+
+                ioff = surf_lsm_v(l)%ioff
+                joff = surf_lsm_v(l)%joff
+                DO  m = 1, surf_lsm_v(l)%ns
+                   i = surf_lsm_v(l)%i(m)
+                   j = surf_lsm_v(l)%j(m)
+
+                   IF ( surf_lsm_v(l)%vegetation_surface(m) )  ind_type = 0
+                   IF ( surf_lsm_v(l)%pavement_surface(m)   )  ind_type = 1
+                   IF ( surf_lsm_v(l)%water_surface(m)      )  ind_type = 2
+
+                   IF ( surf_lsm_v(l)%albedo_type(ind_type,m) == 0 )  THEN
+                      IF ( albedo_pars_f%pars_xy(1,j+joff,i+ioff) /=           &
+                           albedo_pars_f%fill )                                &
+                         surf_lsm_v(l)%albedo(:,m) =                           &
+                                          albedo_pars_f%pars_xy(1,j+joff,i+ioff)
+                      IF ( albedo_pars_f%pars_xy(1,j+joff,i+ioff) /=           &
+                           albedo_pars_f%fill )                                &
+                         surf_lsm_v(l)%aldir(m) =                              &
+                                          albedo_pars_f%pars_xy(1,j+joff,i+ioff)
+                      IF ( albedo_pars_f%pars_xy(2,j+joff,i+ioff) /=           &
+                           albedo_pars_f%fill )                                &
+                         surf_lsm_v(l)%aldif(m) =                              &
+                                          albedo_pars_f%pars_xy(2,j+joff,i+ioff)
+                      IF ( albedo_pars_f%pars_xy(3,j+joff,i+ioff) /=           &
+                           albedo_pars_f%fill )                                &
+                         surf_lsm_v(l)%asdir(m) =                              &
+                                          albedo_pars_f%pars_xy(3,j+joff,i+ioff)
+                      IF ( albedo_pars_f%pars_xy(4,j+joff,i+ioff) /=           &
+                           albedo_pars_f%fill )                                &
+                         surf_lsm_v(l)%asdif(m) =                              &
+                                          albedo_pars_f%pars_xy(4,j+joff,i+ioff)
+                   ENDIF
+                ENDDO
+
+                ioff = surf_usm_v(l)%ioff
+                joff = surf_usm_v(l)%joff
+                DO  m = 1, surf_usm_v(l)%ns
+                   i = surf_usm_v(l)%i(m)
+                   j = surf_usm_v(l)%j(m)
+
+!--                At the moment, consider only wall surfaces (index 0)
+                   IF ( surf_usm_v(l)%albedo_type(0,m) == 0 )  THEN
+                      IF ( albedo_pars_f%pars_xy(1,j+joff,i+ioff) /=           &
+                           albedo_pars_f%fill )                                &
+                         surf_usm_v(l)%albedo(:,m) =                           &
+                                          albedo_pars_f%pars_xy(1,j+joff,i+ioff)
+                      IF ( albedo_pars_f%pars_xy(1,j+joff,i+ioff) /=           &
+                           albedo_pars_f%fill )                                &
+                         surf_usm_v(l)%aldir(m) =                              &
+                                          albedo_pars_f%pars_xy(1,j+joff,i+ioff)
+                      IF ( albedo_pars_f%pars_xy(2,j+joff,i+ioff) /=           &
+                           albedo_pars_f%fill )                                &
+                         surf_usm_v(l)%aldif(m) =                              &
+                                          albedo_pars_f%pars_xy(2,j+joff,i+ioff)
+                      IF ( albedo_pars_f%pars_xy(3,j+joff,i+ioff) /=           &
+                           albedo_pars_f%fill )                                &
+                         surf_usm_v(l)%asdir(m) =                              &
+                                          albedo_pars_f%pars_xy(3,j+joff,i+ioff)
+                      IF ( albedo_pars_f%pars_xy(4,j+joff,i+ioff) /=           &
+                           albedo_pars_f%fill )                                &
+                         surf_usm_v(l)%asdif(m) =                              &
+                                          albedo_pars_f%pars_xy(4,j+joff,i+ioff)
+                   ENDIF
+                ENDDO
+             ENDDO
+
           ENDIF
 
-          aldif(:,:) = albedo_lw_dif
-          aldir(:,:) = albedo_lw_dir
-          asdif(:,:) = albedo_sw_dif
-          asdir(:,:) = albedo_sw_dir
 !
 !--       Calculate initial values of current (cosine of) the zenith angle and 
@@ -1066,18 +2060,64 @@
           CALL calc_zenith     
 !
-!--       Calculate initial surface albedo
+!--       Calculate initial surface albedo for different surfaces
           IF ( .NOT. constant_albedo )  THEN
-             CALL calc_albedo
+!
+!--          Horizontally aligned default, natural and urban surfaces
+             CALL calc_albedo( surf_def_h(0) )
+             CALL calc_albedo( surf_lsm_h    )
+             CALL calc_albedo( surf_usm_h    )
+!
+!--          Vertically aligned default, natural and urban surfaces
+             DO  l = 0, 3
+                CALL calc_albedo( surf_def_v(l) )
+                CALL calc_albedo( surf_lsm_v(l) )
+                CALL calc_albedo( surf_usm_v(l) )
+             ENDDO
           ELSE
-             rrtm_aldif(0,:,:) = aldif(:,:)
-             rrtm_aldir(0,:,:) = aldir(:,:)
-             rrtm_asdif(0,:,:) = asdif(:,:) 
-             rrtm_asdir(0,:,:) = asdir(:,:)   
+!
+!--          Initialize sun-inclination independent spectral albedos
+!--          Horizontal surfaces
+             IF ( surf_def_h(0)%ns > 0 )  THEN
+                surf_def_h(0)%rrtm_aldir = surf_def_h(0)%aldir
+                surf_def_h(0)%rrtm_asdir = surf_def_h(0)%asdir
+                surf_def_h(0)%rrtm_aldif = surf_def_h(0)%aldif
+                surf_def_h(0)%rrtm_asdif = surf_def_h(0)%asdif
+             ENDIF
+             IF ( surf_lsm_h%ns > 0 )  THEN
+                surf_lsm_h%rrtm_aldir = surf_lsm_h%aldir
+                surf_lsm_h%rrtm_asdir = surf_lsm_h%asdir
+                surf_lsm_h%rrtm_aldif = surf_lsm_h%aldif
+                surf_lsm_h%rrtm_asdif = surf_lsm_h%asdif
+             ENDIF
+             IF ( surf_usm_h%ns > 0 )  THEN
+                surf_usm_h%rrtm_aldir = surf_usm_h%aldir
+                surf_usm_h%rrtm_asdir = surf_usm_h%asdir
+                surf_usm_h%rrtm_aldif = surf_usm_h%aldif
+                surf_usm_h%rrtm_asdif = surf_usm_h%asdif
+             ENDIF
+!
+!--          Vertical surfaces
+             DO  l = 0, 3
+                IF ( surf_def_h(0)%ns > 0 )  THEN
+                   surf_def_v(l)%rrtm_aldir = surf_def_v(l)%aldir
+                   surf_def_v(l)%rrtm_asdir = surf_def_v(l)%asdir
+                   surf_def_v(l)%rrtm_aldif = surf_def_v(l)%aldif
+                   surf_def_v(l)%rrtm_asdif = surf_def_v(l)%asdif
+                ENDIF
+                IF ( surf_lsm_v(l)%ns > 0 )  THEN
+                   surf_lsm_v(l)%rrtm_aldir = surf_lsm_v(l)%aldir
+                   surf_lsm_v(l)%rrtm_asdir = surf_lsm_v(l)%asdir
+                   surf_lsm_v(l)%rrtm_aldif = surf_lsm_v(l)%aldif
+                   surf_lsm_v(l)%rrtm_asdif = surf_lsm_v(l)%asdif
+                ENDIF
+                IF ( surf_usm_v(l)%ns > 0 )  THEN
+                   surf_usm_v(l)%rrtm_aldir = surf_usm_v(l)%aldir
+                   surf_usm_v(l)%rrtm_asdir = surf_usm_v(l)%asdir
+                   surf_usm_v(l)%rrtm_aldif = surf_usm_v(l)%aldif
+                   surf_usm_v(l)%rrtm_asdif = surf_usm_v(l)%asdif
+                ENDIF
+             ENDDO
+
           ENDIF
-
-!
-!--       Allocate surface emissivity
-          ALLOCATE ( rrtm_emis(0:0,1:nbndlw+1) )
-          rrtm_emis = emissivity
 
 !
@@ -1170,6 +2210,11 @@
 
 !
-!--       Allocate dummy array for storing surface temperature
+!--       Allocate 1-element array for surface temperature 
+!--       (RRTMG anticipates an array as passed argument).
           ALLOCATE ( rrtm_tsfc(1) )
+!
+!--       Allocate surface emissivity. 
+!--       Values will be given directly before calling rrtm_lw.
+          ALLOCATE ( rrtm_emis(0:0,1:nbndlw+1) )
 
 !
@@ -1234,8 +2279,14 @@
        IMPLICIT NONE
 
-       INTEGER(iwp) :: i, j, k   !< loop indices
-       REAL(wp)     :: exn,   &  !< Exner functions at surface
-                       exn1,  &  !< Exner functions at first grid level
-                       pt1       !< potential temperature at first grid level
+       INTEGER(iwp) ::  l         !< running index for surface orientation
+
+       REAL(wp)     ::  exn       !< Exner functions at surface
+       REAL(wp)     ::  exn1      !< Exner functions at first grid level or at urban layer top 
+       REAL(wp)     ::  pt1       !< potential temperature at first grid level or mean value at urban layer top 
+       REAL(wp)     ::  pt1_l     !< potential temperature at first grid level or mean value at urban layer top at local subdomain 
+       REAL(wp)     ::  ql1       !< liquid water mixing ratio at first grid level or mean value at urban layer top 
+       REAL(wp)     ::  ql1_l     !< liquid water mixing ratio at first grid level or mean value at urban layer top at local subdomain 
+
+       TYPE(surf_type), POINTER ::  surf !< pointer on respective surface type, used to generalize routine   
 
 !
@@ -1246,39 +2297,169 @@
 !--    Calculate sky transmissivity
        sky_trans = 0.6_wp + 0.2_wp * zenith(0)
-
-!
-!--    Calculate value of the Exner function
+!
+!--    Calculate value of the Exner function at model surface
        exn = (surface_pressure / 1000.0_wp )**0.286_wp
 !
-!--    Calculate radiation fluxes and net radiation (rad_net) for each grid 
-!--    point
-       DO i = nxlg, nxrg
-          DO j = nysg, nyng
-!
-!--          Obtain vertical index of topography top 
-             k = get_topography_top_index( j, i, 's' )
-
-             exn1 = (hyp(k+1) / 100000.0_wp )**0.286_wp
-
-             rad_sw_in(0,j,i)  = solar_constant * sky_trans * zenith(0)
-             rad_sw_out(0,j,i) = alpha(j,i) * rad_sw_in(0,j,i)
-             rad_lw_out(0,j,i) = emis(j,i) * sigma_sb * (pt(k,j,i) * exn)**4
-
-             IF ( cloud_physics  .OR.  cloud_droplets )  THEN
-                pt1 = pt(k+1,j,i) + l_d_cp / exn1 * ql(k+1,j,i)
-                rad_lw_in(0,j,i)  = 0.8_wp * sigma_sb * (pt1 * exn1)**4
+!--    In case averaged radiation is used, calculate mean temperature and 
+!--    liquid water mixing ratio at the urban-layer top.
+       IF ( average_radiation ) THEN   
+          pt1   = 0.0_wp
+          IF ( cloud_physics )  ql1   = 0.0_wp
+
+          pt1_l = SUM( pt(nzut,nys:nyn,nxl:nxr) )
+          IF ( cloud_physics )  ql1_l = SUM( ql(nzut,nys:nyn,nxl:nxr) )
+
+#if defined( __parallel )      
+          IF ( collective_wait )  CALL MPI_BARRIER( comm2d, ierr )
+          CALL MPI_ALLREDUCE( pt1_l, pt1, 1, MPI_REAL, MPI_SUM, comm2d, ierr )
+          IF ( cloud_physics )                                                 &
+             CALL MPI_ALLREDUCE( ql1_l, ql1, 1, MPI_REAL, MPI_SUM, comm2d, ierr )
+#else
+          pt1 = pt1_l 
+          IF ( cloud_physics )  ql1 = ql1_l
+#endif
+          IF ( cloud_physics )  pt1 = pt1 + l_d_cp / exn1 * ql1
+!
+!--       Finally, divide by number of grid points
+          pt1 = pt1 / REAL( ( nx + 1 ) * ( ny + 1 ), KIND=wp )
+       ENDIF
+!
+!--    Call clear-sky calculation for each surface orientation. 
+!--    First, horizontal surfaces
+       surf => surf_def_h(0)
+       CALL radiation_clearsky_surf
+       surf => surf_lsm_h
+       CALL radiation_clearsky_surf
+       surf => surf_usm_h
+       CALL radiation_clearsky_surf
+!
+!--    Vertical surfaces
+       DO  l = 0, 3
+          surf => surf_def_v(l)
+          CALL radiation_clearsky_surf
+          surf => surf_lsm_v(l)
+          CALL radiation_clearsky_surf
+          surf => surf_usm_v(l)
+          CALL radiation_clearsky_surf
+       ENDDO
+
+       CONTAINS
+
+          SUBROUTINE radiation_clearsky_surf
+
+             IMPLICIT NONE
+
+             INTEGER(iwp) ::  i         !< index x-direction
+             INTEGER(iwp) ::  ioff      !< offset between surface element and adjacent grid point along x
+             INTEGER(iwp) ::  j         !< index y-direction
+             INTEGER(iwp) ::  joff      !< offset between surface element and adjacent grid point along y
+             INTEGER(iwp) ::  k         !< index z-direction
+             INTEGER(iwp) ::  koff      !< offset between surface element and adjacent grid point along z
+             INTEGER(iwp) ::  m         !< running index for surface elements
+
+             IF ( surf%ns < 1 )  RETURN
+
+!
+!--          Calculate radiation fluxes and net radiation (rad_net) assuming 
+!--          homogeneous urban radiation conditions. 
+             IF ( average_radiation ) THEN       
+
+                k = nzut
+!
+!-- MS: Why k+1 ? 
+!-- MS: @Mohamed: emissivity belongs now to surface type with 3 different values for each 
+!--               surface element (due to tile approach).
+                exn1 = ( hyp(k+1) / 100000.0_wp )**0.286_wp
+
+                surf%rad_sw_in  = solar_constant * sky_trans * zenith(0)
+                surf%rad_sw_out = albedo_urb * surf%rad_sw_in
+                
+                surf%rad_lw_in  = 0.8_wp * sigma_sb * (pt1 * exn1)**4
+
+                surf%rad_lw_out = emissivity_urb * sigma_sb * (t_rad_urb)**4   &
+                                    + (1.0_wp - emissivity_urb) * surf%rad_lw_in
+
+                surf%rad_net = surf%rad_sw_in - surf%rad_sw_out                &
+                             + surf%rad_lw_in - surf%rad_lw_out
+
+                surf%rad_lw_out_change_0 = 3.0_wp * emissivity_urb * sigma_sb  &
+                                           * (t_rad_urb)**3
+
+!
+!--          Calculate radiation fluxes and net radiation (rad_net) for each surface 
+!--          element.
              ELSE
-                rad_lw_in(0,j,i)  = 0.8_wp * sigma_sb * (pt(k+1,j,i) * exn1)**4
+!
+!--             Determine index offset between surface element and adjacent 
+!--             atmospheric grid point (depends on surface orientation). 
+                ioff = surf%ioff
+                joff = surf%joff
+                koff = surf%koff
+
+                DO  m = 1, surf%ns
+                   i = surf%i(m)
+                   j = surf%j(m)
+                   k = surf%k(m)
+
+                   exn1 = (hyp(k) / 100000.0_wp )**0.286_wp
+
+                   surf%rad_sw_in(m)  = solar_constant * sky_trans * zenith(0)
+!
+!--                Weighted average according to surface fraction. 
+!--                In case no surface fraction is given ( default-type )
+!--                no weighted averaging is performed ( only one surface type per
+!--                surface element ). 
+                   IF ( ALLOCATED( surf%frac ) )  THEN
+
+                      surf%rad_sw_out(m) = ( surf%frac(0,m) * surf%albedo(0,m)    &
+                                           + surf%frac(1,m) * surf%albedo(1,m)    &
+                                           + surf%frac(2,m) * surf%albedo(2,m) )  &
+                                           * surf%rad_sw_in(m)
+
+                      surf%rad_lw_out(m) = ( surf%frac(0,m) * surf%emissivity(0,m)&
+                                           + surf%frac(1,m) * surf%emissivity(1,m)&
+                                           + surf%frac(2,m) * surf%emissivity(2,m)&
+                                           )                                      &
+                                           * sigma_sb                             &
+                                           * ( pt(k+koff,j+joff,i+ioff) * exn )**4
+
+
+                      surf%rad_lw_out_change_0(m) =                               &
+                                         ( surf%frac(0,m) * surf%emissivity(0,m)  &
+                                         + surf%frac(1,m) * surf%emissivity(1,m)  &
+                                         + surf%frac(2,m) * surf%emissivity(2,m)  &
+                                         ) * 3.0_wp * sigma_sb                    &
+                                         * ( pt(k+koff,j+joff,i+ioff) * exn )** 3
+
+                   ELSE
+
+                      surf%rad_sw_out(m) = surf%albedo(0,m) * surf%rad_sw_in(m)
+
+                      surf%rad_lw_out(m) = surf%emissivity(0,m)                   &
+                                           * sigma_sb                             &
+                                           * ( pt(k+koff,j+joff,i+ioff) * exn )**4
+
+
+                      surf%rad_lw_out_change_0(m) = surf%emissivity(0,m)          &
+                                           * 3.0_wp * sigma_sb                    &
+                                           * ( pt(k+koff,j+joff,i+ioff) * exn )** 3
+
+                   ENDIF
+
+                   IF ( cloud_physics )  THEN
+                      pt1 = pt(k,j,i) + l_d_cp / exn1 * ql(k,j,i)
+                      surf%rad_lw_in(m)  = 0.8_wp * sigma_sb * (pt1 * exn1)**4
+                   ELSE
+                      surf%rad_lw_in(m)  = 0.8_wp * sigma_sb * (pt(k,j,i) * exn1)**4
+                   ENDIF
+
+                   surf%rad_net(m) = surf%rad_sw_in(m) - surf%rad_sw_out(m)       &
+                                   + surf%rad_lw_in(m) - surf%rad_lw_out(m)
+
+                ENDDO
+
              ENDIF
 
-             rad_net(j,i) = rad_sw_in(0,j,i) - rad_sw_out(0,j,i)               &
-                            + rad_lw_in(0,j,i) - rad_lw_out(0,j,i)
-
-
-             rad_lw_out_change_0(j,i) = 3.0_wp * sigma_sb * emis(j,i)         &
-                                        * (pt(k,j,i) * exn) ** 3
-
-          ENDDO
-       ENDDO
+          END SUBROUTINE radiation_clearsky_surf
 
     END SUBROUTINE radiation_clearsky
@@ -1295,8 +2476,14 @@
        IMPLICIT NONE
 
-       INTEGER(iwp) :: i, j, k   !< loop indices
-       REAL(wp)     :: exn,   &  !< Exner functions at surface
-                       exn1,  &  !< Exner functions at first grid level
-                       pt1       !< potential temperature at first grid level
+       INTEGER(iwp) ::  l         !< running index for surface orientation
+
+       REAL(wp)     ::  exn       !< Exner functions at surface
+       REAL(wp)     ::  exn1      !< Exner functions at first grid level
+       REAL(wp)     ::  pt1       !< potential temperature at first grid level or mean value at urban layer top 
+       REAL(wp)     ::  pt1_l     !< potential temperature at first grid level or mean value at urban layer top at local subdomain 
+       REAL(wp)     ::  ql1       !< liquid water mixing ratio at first grid level or mean value at urban layer top 
+       REAL(wp)     ::  ql1_l     !< liquid water mixing ratio at first grid level or mean value at urban layer top at local subdomain 
+
+       TYPE(surf_type), POINTER ::  surf !< pointer on respective surface type, used to generalize routine   
 
 !
@@ -1304,33 +2491,165 @@
        exn = (surface_pressure / 1000.0_wp )**0.286_wp
 !
-!--    Prescribe net radiation and estimate the remaining radiative fluxes
-       DO i = nxlg, nxrg
-          DO j = nysg, nyng
-!
-!--          Obtain vertical index of topography top. So far it is identical to
-!--          nzb.
-             k = get_topography_top_index( j, i, 's' )
-
-             rad_net(j,i)      = net_radiation
-
-             exn1 = (hyp(k+1) / 100000.0_wp )**0.286_wp
-
-             IF ( cloud_physics  .OR.  cloud_droplets )  THEN
-                pt1 = pt(k+1,j,i) + l_d_cp / exn1 * ql(k+1,j,i)
-                rad_lw_in(0,j,i)  = 0.8_wp * sigma_sb * (pt1 * exn1)**4
+!--    In case averaged radiation is used, calculate mean temperature and 
+!--    liquid water mixing ratio at the urban-layer top.
+       IF ( average_radiation ) THEN   
+          pt1   = 0.0_wp
+          IF ( cloud_physics )  ql1   = 0.0_wp
+
+          pt1_l = SUM( pt(nzut,nys:nyn,nxl:nxr) )
+          IF ( cloud_physics )  ql1_l = SUM( ql(nzut,nys:nyn,nxl:nxr) )
+
+#if defined( __parallel )      
+          IF ( collective_wait )  CALL MPI_BARRIER( comm2d, ierr )
+          CALL MPI_ALLREDUCE( pt1_l, pt1, 1, MPI_REAL, MPI_SUM, comm2d, ierr )
+          IF ( cloud_physics )                                                 &
+             CALL MPI_ALLREDUCE( ql1_l, ql1, 1, MPI_REAL, MPI_SUM, comm2d, ierr )
+#else
+          pt1 = pt1_l
+          IF ( cloud_physics )  ql1 = ql1_l
+#endif
+          IF ( cloud_physics )  pt1 = pt1 + l_d_cp / exn1 * ql1
+!
+!--       Finally, divide by number of grid points
+          pt1 = pt1 / REAL( ( nx + 1 ) * ( ny + 1 ), KIND=wp )
+       ENDIF
+
+!
+!--    First, horizontal surfaces
+       surf => surf_def_h(0)
+       CALL radiation_constant_surf
+       surf => surf_lsm_h
+       CALL radiation_constant_surf
+       surf => surf_usm_h
+       CALL radiation_constant_surf
+!
+!--    Vertical surfaces
+       DO  l = 0, 3
+          surf => surf_def_v(l)
+          CALL radiation_constant_surf
+          surf => surf_lsm_v(l)
+          CALL radiation_constant_surf
+          surf => surf_usm_v(l)
+          CALL radiation_constant_surf
+       ENDDO
+
+       CONTAINS
+
+          SUBROUTINE radiation_constant_surf
+
+             IMPLICIT NONE
+
+             INTEGER(iwp) ::  i         !< index x-direction
+             INTEGER(iwp) ::  ioff      !< offset between surface element and adjacent grid point along x
+             INTEGER(iwp) ::  j         !< index y-direction
+             INTEGER(iwp) ::  joff      !< offset between surface element and adjacent grid point along y
+             INTEGER(iwp) ::  k         !< index z-direction
+             INTEGER(iwp) ::  koff      !< offset between surface element and adjacent grid point along z
+             INTEGER(iwp) ::  m         !< running index for surface elements
+
+             IF ( surf%ns < 1 )  RETURN
+
+!--          Calculate homogenoeus urban radiation fluxes
+             IF ( average_radiation ) THEN
+
+                ! set height above canopy
+                k = nzut
+
+                surf%rad_net = net_radiation
+! MS: Wyh k + 1 ?
+                exn1 = (hyp(k+1) / 100000.0_wp )**0.286_wp
+
+                surf%rad_lw_in  = 0.8_wp * sigma_sb * (pt1 * exn1)**4
+
+                surf%rad_lw_out = emissivity_urb * sigma_sb * (t_rad_urb)**4   &
+                                    + ( 10.0_wp - emissivity_urb )             & ! shouldn't be this a bulk value -- emissivity_urb?
+                                    * surf%rad_lw_in
+
+                surf%rad_lw_out_change_0 = 3.0_wp * emissivity_urb * sigma_sb  &
+                                           * t_rad_urb**3
+
+                surf%rad_sw_in = ( surf%rad_net - surf%rad_lw_in               &
+                                     + surf%rad_lw_out )                       &
+                                     / ( 1.0_wp - albedo_urb )
+
+                surf%rad_sw_out =  albedo_urb * surf%rad_sw_in
+
+!
+!--          Calculate radiation fluxes for each surface element
              ELSE
-                rad_lw_in(0,j,i)  = 0.8_wp * sigma_sb * (pt(k+1,j,i) * exn1)**4
+!
+!--             Determine index offset between surface element and adjacent 
+!--             atmospheric grid point
+                ioff = surf%ioff
+                joff = surf%joff
+                koff = surf%koff
+
+!
+!--             Prescribe net radiation and estimate the remaining radiative fluxes
+                DO  m = 1, surf%ns
+                   i = surf%i(m)
+                   j = surf%j(m)
+                   k = surf%k(m)
+
+                   surf%rad_net(m) = net_radiation
+
+                   exn1 = (hyp(k) / 100000.0_wp )**0.286_wp
+
+                   IF ( cloud_physics )  THEN
+                      pt1 = pt(k,j,i) + l_d_cp / exn1 * ql(k,j,i)
+                      surf%rad_lw_in(m)  = 0.8_wp * sigma_sb * (pt1 * exn1)**4
+                   ELSE
+                      surf%rad_lw_in(m)  = 0.8_wp * sigma_sb *                    &
+                                             ( pt(k,j,i) * exn1 )**4
+                   ENDIF
+
+!
+!--                Weighted average according to surface fraction. 
+!--                In case no surface fraction is given ( default-type )
+!--                no weighted averaging is performed ( only one surface type per
+!--                surface element ). 
+                   IF ( ALLOCATED( surf%frac ) )  THEN
+
+                      surf%rad_lw_out(m) = ( surf%frac(0,m) * surf%emissivity(0,m)&
+                                           + surf%frac(1,m) * surf%emissivity(1,m)&
+                                           + surf%frac(2,m) * surf%emissivity(2,m)&
+                                           )                                      &
+                                         * sigma_sb                               &
+                                         * ( pt(k+koff,j+joff,i+ioff) * exn )**4
+
+                      surf%rad_sw_in(m) = ( surf%rad_net(m) - surf%rad_lw_in(m)   &
+                                          + surf%rad_lw_out(m) )                  &
+                                          / ( 1.0_wp -                            &
+                                             ( surf%frac(0,m) * surf%albedo(0,m) +&
+                                               surf%frac(1,m) * surf%albedo(1,m) +&
+                                               surf%frac(1,m) * surf%albedo(1,m) )&
+                                            )
+
+                      surf%rad_sw_out(m) = ( surf%frac(0,m) * surf%albedo(0,m)    &
+                                           + surf%frac(1,m) * surf%albedo(1,m)    &
+                                           + surf%frac(2,m) * surf%albedo(2,m) )  &
+                                         * surf%rad_sw_in(m)
+
+                   ELSE
+                      surf%rad_lw_out(m) = surf%emissivity(0,m)                   &
+                                         * sigma_sb                               &
+                                         * ( pt(k+koff,j+joff,i+ioff) * exn )**4
+
+                      surf%rad_sw_in(m) = ( surf%rad_net(m) - surf%rad_lw_in(m)   &
+                                          + surf%rad_lw_out(m) )                  &
+                                          / ( 1.0_wp -                            &
+                                             ( surf%frac(0,m) * surf%albedo(0,m) )&
+                                            )
+
+                      surf%rad_sw_out(m) = ( surf%frac(0,m) * surf%albedo(0,m) )  &
+                                         * surf%rad_sw_in(m)
+                   ENDIF
+
+                ENDDO
+
              ENDIF
 
-             rad_lw_out(0,j,i) = emis(j,i) * sigma_sb * (pt(k,j,i) * exn)**4
-
-             rad_sw_in(0,j,i) = ( rad_net(j,i) - rad_lw_in(0,j,i)              &
-                                  + rad_lw_out(0,j,i) )                        &
-                                  / ( 1.0_wp - alpha(j,i) )
-
-             rad_sw_out(0,j,i) =  alpha(j,i) * rad_sw_in(0,j,i)
-
-          ENDDO
-       ENDDO
+          END SUBROUTINE radiation_constant_surf
+          
 
     END SUBROUTINE radiation_constant
@@ -1364,8 +2683,14 @@
        ENDIF 
 
-       IF ( albedo_type == 0 )  THEN
-          WRITE( io, 7 ) albedo
-       ELSE
-          WRITE( io, 8 ) TRIM( albedo_type_name(albedo_type) )
+       IF ( albedo_type_f%from_file  .OR.  vegetation_type_f%from_file  .OR.   &
+            pavement_type_f%from_file  .OR.  water_type_f%from_file  .OR.      &
+            building_type_f%from_file )  THEN
+             WRITE( io, 13 )
+       ELSE  
+          IF ( albedo_type == 0 )  THEN
+             WRITE( io, 7 ) albedo
+          ELSE
+             WRITE( io, 8 ) TRIM( albedo_type_name(albedo_type) )
+          ENDIF
        ENDIF
        IF ( constant_albedo )  THEN
@@ -1389,4 +2714,6 @@
 11 FORMAT (/'    --> Shortwave radiation is disabled.')
 12 FORMAT  ('    Timestep: dt_radiation = ', F6.2, '  s')
+13 FORMAT (/'    Albedo is set individually for each xy-location, according '  &
+                 'to given surface type.')
 
 
@@ -1411,5 +2738,16 @@
                                   lw_radiation, net_radiation,                 &
                                   radiation_scheme, skip_time_do_radiation,    &
-                                  sw_radiation, unscheduled_radiation_calls
+                                  sw_radiation, unscheduled_radiation_calls,   &
+                                  split_diffusion_radiation,                   &
+                                  energy_balance_surf_h,                       &
+                                  energy_balance_surf_v,                       &
+                                  read_svf_on_init,                            &
+                                  nrefsteps,                                   &
+                                  write_svf_on_init,                           &
+                                  mrt_factors,                                 &
+                                  dist_max_svf,                                &
+                                  average_radiation,                           &
+                                  radiation_interactions, atm_surfaces,        &
+                                  surf_reflections
        
        line = ' '
@@ -1456,5 +2794,6 @@
 #if defined ( __rrtmg )
 
-       INTEGER(iwp) :: i, j, k, n !< loop indices
+       INTEGER(iwp) ::  i, j, k, l, m, n !< loop indices
+       INTEGER(iwp) ::  k_topo     !< topography top index
 
        REAL(wp)     ::  nc_rad, &    !< number concentration of cloud droplets
@@ -1462,11 +2801,37 @@
                         s_r3         !< weighted sum over all droplets with r^3
 
+       REAL(wp), DIMENSION(0:nzt+1) :: pt_av, q_av, ql_av
+!
+!--    Just dummy arguments
+       REAL(wp), DIMENSION(:,:,:), ALLOCATABLE :: rrtm_lw_taucld_dum,          &
+                                                  rrtm_lw_tauaer_dum,          &
+                                                  rrtm_sw_taucld_dum,          &
+                                                  rrtm_sw_ssacld_dum,          &
+                                                  rrtm_sw_asmcld_dum,          &
+                                                  rrtm_sw_fsfcld_dum,          &
+                                                  rrtm_sw_tauaer_dum,          &
+                                                  rrtm_sw_ssaaer_dum,          &
+                                                  rrtm_sw_asmaer_dum,          &
+                                                  rrtm_sw_ecaer_dum
+
 !
 !--    Calculate current (cosine of) zenith angle and whether the sun is up
        CALL calc_zenith     
 !
-!--    Calculate surface albedo
+!--    Calculate surface albedo. In case average radiation is applied, 
+!--    this is not required.
        IF ( .NOT. constant_albedo )  THEN
-          CALL calc_albedo
+!
+!--       Horizontally aligned default, natural and urban surfaces
+          CALL calc_albedo( surf_def_h(0) )
+          CALL calc_albedo( surf_lsm_h    )
+          CALL calc_albedo( surf_usm_h    )
+!
+!--       Vertically aligned default, natural and urban surfaces
+          DO  l = 0, 3
+             CALL calc_albedo( surf_def_v(l) )
+             CALL calc_albedo( surf_lsm_v(l) )
+             CALL calc_albedo( surf_usm_v(l) )
+          ENDDO
        ENDIF
 
@@ -1482,211 +2847,742 @@
           CALL read_trace_gas_data
        ENDIF
-!
-!--    Loop over all grid points
-       DO i = nxl, nxr
-          DO j = nys, nyn
-
-!
-!--          Prepare profiles of temperature and H2O volume mixing ratio
-             rrtm_tlev(0,nzb+1) = pt(nzb,j,i) * ( surface_pressure             &
-                                                  / 1000.0_wp )**0.286_wp
-
-
-             IF ( cloud_physics )  THEN
-                DO k = nzb+1, nzt+1
-                   rrtm_tlay(0,k) = pt(k,j,i) * ( (hyp(k) ) / 100000.0_wp      &
-                                    )**0.286_wp + l_d_cp * ql(k,j,i)
-                   rrtm_h2ovmr(0,k) = mol_mass_air_d_wv * (q(k,j,i) - ql(k,j,i))
-                ENDDO
-             ELSEIF ( cloud_droplets ) THEN
-                DO k = nzb+1, nzt+1
-                   rrtm_tlay(0,k) = pt(k,j,i) * ( (hyp(k) ) / 100000.0_wp      &
-                                    )**0.286_wp + l_d_cp * ql(k,j,i)
-                   rrtm_h2ovmr(0,k) = mol_mass_air_d_wv * q(k,j,i) 
-                ENDDO     
-             ELSE
-                DO k = nzb+1, nzt+1
-                   rrtm_tlay(0,k) = pt(k,j,i) * ( (hyp(k) ) / 100000.0_wp      &
-                                    )**0.286_wp
-                   rrtm_h2ovmr(0,k) = 0.0_wp
-                ENDDO
+
+
+       IF ( average_radiation ) THEN
+
+          rrtm_asdir(1)  = albedo_urb
+          rrtm_asdif(1)  = albedo_urb
+          rrtm_aldir(1)  = albedo_urb
+          rrtm_aldif(1)  = albedo_urb
+
+          rrtm_emis = emissivity_urb
+!
+!--       Calculate mean pt profile. Actually, only one height level is required.
+          CALL calc_mean_profile( pt, 4 )
+          pt_av = hom(:, 1, 4, 0)
+
+!
+!--       Prepare profiles of temperature and H2O volume mixing ratio
+          rrtm_tlev(0,nzb+1) = t_rad_urb
+
+          IF ( cloud_physics )  THEN
+             CALL calc_mean_profile( q, 41 )
+             ! average  q is now in hom(:, 1, 41, 0)
+             q_av = hom(:, 1, 41, 0)
+             CALL calc_mean_profile( ql, 54 )
+             ! average ql is now in hom(:, 1, 54, 0)
+             ql_av = hom(:, 1, 54, 0)
+             
+             DO k = nzb+1, nzt+1
+                rrtm_tlay(0,k) = pt_av(k) * ( (hyp(k) ) / 100000._wp       &
+                                 )**.286_wp + l_d_cp * ql_av(k)
+                rrtm_h2ovmr(0,k) = mol_mass_air_d_wv * (q_av(k) - ql_av(k))
+             ENDDO
+          ELSE
+             DO k = nzb+1, nzt+1
+                rrtm_tlay(0,k) = pt_av(k) * ( (hyp(k) ) / 100000._wp       &
+                                 )**.286_wp
+                rrtm_h2ovmr(0,k) = 0._wp
+              ENDDO
+          ENDIF
+
+!
+!--       Avoid temperature/humidity jumps at the top of the LES domain by 
+!--       linear interpolation from nzt+2 to nzt+7
+          DO k = nzt+2, nzt+7
+             rrtm_tlay(0,k) = rrtm_tlay(0,nzt+1)                            &
+                           + ( rrtm_tlay(0,nzt+8) - rrtm_tlay(0,nzt+1) )    &
+                           / ( rrtm_play(0,nzt+8) - rrtm_play(0,nzt+1) )    &
+                           * ( rrtm_play(0,k) - rrtm_play(0,nzt+1) )
+
+             rrtm_h2ovmr(0,k) = rrtm_h2ovmr(0,nzt+1)                        &
+                           + ( rrtm_h2ovmr(0,nzt+8) - rrtm_h2ovmr(0,nzt+1) )&
+                           / ( rrtm_play(0,nzt+8)   - rrtm_play(0,nzt+1)   )&
+                           * ( rrtm_play(0,k) - rrtm_play(0,nzt+1) )
+
+          ENDDO
+
+!--       Linear interpolate to zw grid
+          DO k = nzb+2, nzt+8
+             rrtm_tlev(0,k)   = rrtm_tlay(0,k-1) + (rrtm_tlay(0,k) -        &
+                                rrtm_tlay(0,k-1))                           &
+                                / ( rrtm_play(0,k) - rrtm_play(0,k-1) )     &
+                                * ( rrtm_plev(0,k) - rrtm_play(0,k-1) )
+          ENDDO
+
+
+!
+!--       Calculate liquid water path and cloud fraction for each column.
+!--       Note that LWP is required in g/mÂ² instead of kg/kg m.
+          rrtm_cldfr  = 0.0_wp
+          rrtm_reliq  = 0.0_wp
+          rrtm_cliqwp = 0.0_wp
+          rrtm_icld   = 0
+
+          IF ( cloud_physics )  THEN
+             DO k = nzb+1, nzt+1
+                rrtm_cliqwp(0,k) =  ql_av(k) * 1000._wp *                  &
+                                    (rrtm_plev(0,k) - rrtm_plev(0,k+1))     &
+                                    * 100._wp / g 
+
+                IF ( rrtm_cliqwp(0,k) > 0._wp )  THEN
+                   rrtm_cldfr(0,k) = 1._wp
+                   IF ( rrtm_icld == 0 )  rrtm_icld = 1
+
+!
+!--                Calculate cloud droplet effective radius
+                   IF ( cloud_physics )  THEN
+                      rrtm_reliq(0,k) = 1.0E6_wp * ( 3._wp * ql_av(k)      &
+                                        * rho_surface                       &
+                                        / ( 4._wp * pi * nc_const * rho_l )&
+                                        )**.33333333333333_wp              &
+                                        * EXP( LOG( sigma_gc )**2 )
+
+                   ENDIF
+
+!
+!--                Limit effective radius
+                   IF ( rrtm_reliq(0,k) > 0.0_wp )  THEN
+                      rrtm_reliq(0,k) = MAX(rrtm_reliq(0,k),2.5_wp)
+                      rrtm_reliq(0,k) = MIN(rrtm_reliq(0,k),60.0_wp)
+                   ENDIF
+                ENDIF
+             ENDDO
+          ENDIF
+
+!
+!--       Set surface temperature
+          rrtm_tsfc = t_rad_urb
+
+          IF ( lw_radiation )  THEN
+             CALL rrtmg_lw( 1, nzt_rad      , rrtm_icld    , rrtm_idrv      ,&
+             rrtm_play       , rrtm_plev    , rrtm_tlay    , rrtm_tlev      ,&
+             rrtm_tsfc       , rrtm_h2ovmr  , rrtm_o3vmr   , rrtm_co2vmr    ,&
+             rrtm_ch4vmr     , rrtm_n2ovmr  , rrtm_o2vmr   , rrtm_cfc11vmr  ,&
+             rrtm_cfc12vmr   , rrtm_cfc22vmr, rrtm_ccl4vmr , rrtm_emis      ,&
+             rrtm_inflglw    , rrtm_iceflglw, rrtm_liqflglw, rrtm_cldfr     ,&
+             rrtm_lw_taucld  , rrtm_cicewp  , rrtm_cliqwp  , rrtm_reice     ,& 
+             rrtm_reliq      , rrtm_lw_tauaer,                               &
+             rrtm_lwuflx     , rrtm_lwdflx  , rrtm_lwhr  ,                   &
+             rrtm_lwuflxc    , rrtm_lwdflxc , rrtm_lwhrc ,                   &
+             rrtm_lwuflx_dt  ,  rrtm_lwuflxc_dt )
+
+!
+!--          Save fluxes
+             DO k = nzb, nzt+1
+                rad_lw_in(k,:,:)  = rrtm_lwdflx(0,k)
+                rad_lw_out(k,:,:) = rrtm_lwuflx(0,k)
+             ENDDO
+
+!
+!--          Save heating rates (convert from K/d to K/h)
+             DO k = nzb+1, nzt+1
+                rad_lw_hr(k,:,:)     = rrtm_lwhr(0,k)  * d_hours_day
+                rad_lw_cs_hr(k,:,:)  = rrtm_lwhrc(0,k) * d_hours_day
+             ENDDO
+
+!
+!--          Save surface radiative fluxes and change in LW heating rate 
+!--          onto respective surface elements
+!--          Horizontal surfaces
+             IF ( surf_def_h(0)%ns > 0 )  THEN
+                surf_def_h(0)%rad_lw_in           = rrtm_lwdflx(0,nzb)
+                surf_def_h(0)%rad_lw_out          = rrtm_lwuflx(0,nzb)
+                surf_def_h(0)%rad_lw_out_change_0 = rrtm_lwuflx_dt(0,nzb)
              ENDIF
-
-!
-!--          Avoid temperature/humidity jumps at the top of the LES domain by 
-!--          linear interpolation from nzt+2 to nzt+7
-             DO k = nzt+2, nzt+7
-                rrtm_tlay(0,k) = rrtm_tlay(0,nzt+1)                            &
-                              + ( rrtm_tlay(0,nzt+8) - rrtm_tlay(0,nzt+1) )    &
-                              / ( rrtm_play(0,nzt+8) - rrtm_play(0,nzt+1) )    &
-                              * ( rrtm_play(0,k) - rrtm_play(0,nzt+1) )
-
-                rrtm_h2ovmr(0,k) = rrtm_h2ovmr(0,nzt+1)                        &
+             IF ( surf_lsm_h%ns > 0 )  THEN
+                surf_lsm_h%rad_lw_in           = rrtm_lwdflx(0,nzb)
+                surf_lsm_h%rad_lw_out          = rrtm_lwuflx(0,nzb)
+                surf_lsm_h%rad_lw_out_change_0 = rrtm_lwuflx_dt(0,nzb)
+             ENDIF             
+             IF ( surf_usm_h%ns > 0 )  THEN
+                surf_usm_h%rad_lw_in           = rrtm_lwdflx(0,nzb)
+                surf_usm_h%rad_lw_out          = rrtm_lwuflx(0,nzb)
+                surf_usm_h%rad_lw_out_change_0 = rrtm_lwuflx_dt(0,nzb)
+             ENDIF
+!
+!--          Vertical surfaces. 
+             DO  l = 0, 3
+                IF ( surf_def_v(l)%ns > 0 )  THEN
+                   surf_def_v(l)%rad_lw_in           = rrtm_lwdflx(0,nzb)
+                   surf_def_v(l)%rad_lw_out          = rrtm_lwuflx(0,nzb)
+                   surf_def_v(l)%rad_lw_out_change_0 = rrtm_lwuflx_dt(0,nzb)
+                ENDIF
+                IF ( surf_lsm_v(l)%ns > 0 )  THEN
+                   surf_lsm_v(l)%rad_lw_in           = rrtm_lwdflx(0,nzb)
+                   surf_lsm_v(l)%rad_lw_out          = rrtm_lwuflx(0,nzb)
+                   surf_lsm_v(l)%rad_lw_out_change_0 = rrtm_lwuflx_dt(0,nzb)
+                ENDIF
+                IF ( surf_usm_v(l)%ns > 0 )  THEN
+                   surf_usm_v(l)%rad_lw_in           = rrtm_lwdflx(0,nzb)
+                   surf_usm_v(l)%rad_lw_out          = rrtm_lwuflx(0,nzb)
+                   surf_usm_v(l)%rad_lw_out_change_0 = rrtm_lwuflx_dt(0,nzb)
+                ENDIF
+             ENDDO
+
+          ENDIF
+
+          IF ( sw_radiation .AND. sun_up )  THEN
+             CALL rrtmg_sw( 1, nzt_rad      , rrtm_icld  , rrtm_iaer        ,&
+             rrtm_play       , rrtm_plev    , rrtm_tlay  , rrtm_tlev        ,&
+             rrtm_tsfc       , rrtm_h2ovmr  , rrtm_o3vmr , rrtm_co2vmr      ,&
+             rrtm_ch4vmr     , rrtm_n2ovmr  , rrtm_o2vmr , rrtm_asdir       ,&
+             rrtm_asdif      , rrtm_aldir   , rrtm_aldif , zenith,           &
+             0.0_wp          , day_of_year  , solar_constant,   rrtm_inflgsw,&
+             rrtm_iceflgsw   , rrtm_liqflgsw, rrtm_cldfr , rrtm_sw_taucld   ,&
+             rrtm_sw_ssacld  , rrtm_sw_asmcld, rrtm_sw_fsfcld, rrtm_cicewp  ,&
+             rrtm_cliqwp     , rrtm_reice   , rrtm_reliq , rrtm_sw_tauaer   ,&
+             rrtm_sw_ssaaer  , rrtm_sw_asmaer  , rrtm_sw_ecaer ,             &
+             rrtm_swuflx     , rrtm_swdflx  , rrtm_swhr  ,                   &
+             rrtm_swuflxc    , rrtm_swdflxc , rrtm_swhrc )
+  
+!
+!--          Save fluxes
+             DO k = nzb, nzt+1
+                rad_sw_in(k,:,:)  = rrtm_swdflx(0,k)
+                rad_sw_out(k,:,:) = rrtm_swuflx(0,k)
+             ENDDO
+
+!
+!--          Save heating rates (convert from K/d to K/s)
+             DO k = nzb+1, nzt+1
+                rad_sw_hr(k,:,:)     = rrtm_swhr(0,k)  * d_hours_day
+                rad_sw_cs_hr(k,:,:)  = rrtm_swhrc(0,k) * d_hours_day
+             ENDDO
+
+!
+!--          Save surface radiative fluxes onto respective surface elements
+!--          Horizontal surfaces
+             IF ( surf_def_h(0)%ns > 0 )  THEN
+                surf_def_h(0)%rad_lw_in           = rrtm_swdflx(0,nzb)
+                surf_def_h(0)%rad_lw_out          = rrtm_swuflx(0,nzb)
+             ENDIF
+             IF ( surf_lsm_h%ns > 0 )  THEN
+                   surf_lsm_h%rad_sw_in     = rrtm_swdflx(0,nzb)
+                   surf_lsm_h%rad_sw_out    = rrtm_swuflx(0,nzb)
+             ENDIF
+             IF ( surf_usm_h%ns > 0 )  THEN
+                   surf_usm_h%rad_sw_in     = rrtm_swdflx(0,nzb)
+                   surf_usm_h%rad_sw_out    = rrtm_swuflx(0,nzb)
+             ENDIF
+!
+!--          Vertical surfaces. Fluxes are obtain at respective vertical 
+!--          level of the surface element
+             DO  l = 0, 3
+                IF ( surf_def_v(l)%ns > 0 )  THEN
+                      surf_def_v(l)%rad_sw_in  = rrtm_swdflx(0,nzb)
+                      surf_def_v(l)%rad_sw_out = rrtm_swuflx(0,nzb)
+                ENDIF
+                IF ( surf_lsm_v(l)%ns > 0 )  THEN
+                      surf_lsm_v(l)%rad_sw_in  = rrtm_swdflx(0,nzb)
+                      surf_lsm_v(l)%rad_sw_out = rrtm_swuflx(0,nzb)
+                ENDIF             
+                IF ( surf_usm_v(l)%ns > 0 )  THEN
+                      surf_usm_v(l)%rad_sw_in  = rrtm_swdflx(0,nzb)
+                      surf_usm_v(l)%rad_sw_out = rrtm_swuflx(0,nzb)
+                ENDIF       
+             ENDDO
+
+          ENDIF
+!
+!--    RRTMG is called for each (j,i) grid point separately, starting at the 
+!--    highest topography level
+       ELSE
+!
+!--       Loop over all grid points
+          DO i = nxl, nxr
+             DO j = nys, nyn
+
+!
+!--             Prepare profiles of temperature and H2O volume mixing ratio
+                rrtm_tlev(0,nzb+1) = pt(nzb,j,i) * ( surface_pressure          &
+                                                     / 1000.0_wp )**0.286_wp
+
+
+                IF ( cloud_physics )  THEN
+                   DO k = nzb+1, nzt+1
+                      rrtm_tlay(0,k) = pt(k,j,i) * ( (hyp(k) ) / 100000.0_wp   &
+                                       )**0.286_wp + l_d_cp * ql(k,j,i)
+                      rrtm_h2ovmr(0,k) = mol_mass_air_d_wv * (q(k,j,i) - ql(k,j,i))
+                   ENDDO
+                ELSE
+                   DO k = nzb+1, nzt+1
+                      rrtm_tlay(0,k) = pt(k,j,i) * ( (hyp(k) ) / 100000.0_wp   &
+                                       )**0.286_wp
+                      rrtm_h2ovmr(0,k) = 0.0_wp
+                   ENDDO
+                ENDIF
+
+!
+!--             Avoid temperature/humidity jumps at the top of the LES domain by 
+!--             linear interpolation from nzt+2 to nzt+7
+                DO k = nzt+2, nzt+7
+                   rrtm_tlay(0,k) = rrtm_tlay(0,nzt+1)                         &
+                                 + ( rrtm_tlay(0,nzt+8) - rrtm_tlay(0,nzt+1) ) &
+                                 / ( rrtm_play(0,nzt+8) - rrtm_play(0,nzt+1) ) &
+                                 * ( rrtm_play(0,k)     - rrtm_play(0,nzt+1) )
+
+                   rrtm_h2ovmr(0,k) = rrtm_h2ovmr(0,nzt+1)                     &
                               + ( rrtm_h2ovmr(0,nzt+8) - rrtm_h2ovmr(0,nzt+1) )&
                               / ( rrtm_play(0,nzt+8)   - rrtm_play(0,nzt+1)   )&
-                              * ( rrtm_play(0,k) - rrtm_play(0,nzt+1) )
+                              * ( rrtm_play(0,k)       - rrtm_play(0,nzt+1) )
+
+                ENDDO
+
+!--             Linear interpolate to zw grid
+                DO k = nzb+2, nzt+8
+                   rrtm_tlev(0,k)   = rrtm_tlay(0,k-1) + (rrtm_tlay(0,k) -     &
+                                      rrtm_tlay(0,k-1))                        &
+                                      / ( rrtm_play(0,k) - rrtm_play(0,k-1) )  &
+                                      * ( rrtm_plev(0,k) - rrtm_play(0,k-1) )
+                ENDDO
+
+
+!
+!--             Calculate liquid water path and cloud fraction for each column.
+!--             Note that LWP is required in g/mÂ² instead of kg/kg m.
+                rrtm_cldfr  = 0.0_wp
+                rrtm_reliq  = 0.0_wp
+                rrtm_cliqwp = 0.0_wp
+                rrtm_icld   = 0
+
+                IF ( cloud_physics  .OR.  cloud_droplets )  THEN
+                   DO k = nzb+1, nzt+1
+                      rrtm_cliqwp(0,k) =  ql(k,j,i) * 1000.0_wp *              &
+                                          (rrtm_plev(0,k) - rrtm_plev(0,k+1))  &
+                                          * 100.0_wp / g 
+
+                      IF ( rrtm_cliqwp(0,k) > 0.0_wp )  THEN
+                         rrtm_cldfr(0,k) = 1.0_wp
+                         IF ( rrtm_icld == 0 )  rrtm_icld = 1
+
+!
+!--                      Calculate cloud droplet effective radius
+                         IF ( cloud_physics )  THEN
+!
+!--                         Calculete effective droplet radius. In case of using 
+!--                         cloud_scheme = 'morrison' and a non reasonable number 
+!--                         of cloud droplets the inital aerosol number  
+!--                         concentration is considered.
+                            IF ( microphysics_morrison )  THEN
+                               IF ( nc(k,j,i) > 1.0E-20_wp )  THEN
+                                  nc_rad = nc(k,j,i)
+                               ELSE
+                                  nc_rad = na_init
+                               ENDIF 
+                            ELSE
+                               nc_rad = nc_const
+                            ENDIF  
+
+                            rrtm_reliq(0,k) = 1.0E6_wp * ( 3.0_wp * ql(k,j,i)     &
+                                              * rho_surface                       &
+                                              / ( 4.0_wp * pi * nc_rad * rho_l )  &
+                                              )**0.33333333333333_wp              &
+                                              * EXP( LOG( sigma_gc )**2 )
+
+                         ELSEIF ( cloud_droplets )  THEN
+                            number_of_particles = prt_count(k,j,i)
+
+                            IF (number_of_particles <= 0)  CYCLE
+                            particles => grid_particles(k,j,i)%particles(1:number_of_particles)
+                            s_r2 = 0.0_wp
+                            s_r3 = 0.0_wp
+
+                            DO  n = 1, number_of_particles
+                               IF ( particles(n)%particle_mask )  THEN
+                                  s_r2 = s_r2 + particles(n)%radius**2 *       &
+                                         particles(n)%weight_factor
+                                  s_r3 = s_r3 + particles(n)%radius**3 *       &
+                                         particles(n)%weight_factor
+                               ENDIF
+                            ENDDO
+
+                            IF ( s_r2 > 0.0_wp )  rrtm_reliq(0,k) = s_r3 / s_r2
+
+                         ENDIF
+
+!
+!--                      Limit effective radius
+                         IF ( rrtm_reliq(0,k) > 0.0_wp )  THEN
+                            rrtm_reliq(0,k) = MAX(rrtm_reliq(0,k),2.5_wp)
+                            rrtm_reliq(0,k) = MIN(rrtm_reliq(0,k),60.0_wp)
+                        ENDIF
+                      ENDIF
+                   ENDDO
+                ENDIF
+
+!
+!--             Write surface emissivity and surface temperature at current 
+!--             surface element on RRTMG-shaped array.
+!--             Please note, as RRTMG is a single column model, surface attributes
+!--             are only obtained from horizontally aligned surfaces (for 
+!--             simplicity). Taking surface attributes from horizontal and 
+!--             vertical walls would lead to multiple solutions.  
+!--             Moreover, for natural- and urban-type surfaces, several surface
+!--             classes can exist at a surface element next to each other. 
+!--             To obtain bulk parameters, apply a weighted average for these 
+!--             surfaces. 
+                DO  m = surf_def_h(0)%start_index(j,i), surf_def_h(0)%end_index(j,i)
+                   rrtm_emis = surf_def_h(0)%emissivity(0,m)
+                   rrtm_tsfc = pt(surf_def_h(0)%k(m)+surf_def_h(0)%koff,j,i) * &
+                                       (surface_pressure / 1000.0_wp )**0.286_wp
+                ENDDO
+                DO  m = surf_lsm_h%start_index(j,i), surf_lsm_h%end_index(j,i)
+                   rrtm_emis = surf_lsm_h%frac(0,m) * surf_lsm_h%emissivity(0,m) +&
+                               surf_lsm_h%frac(1,m) * surf_lsm_h%emissivity(1,m) +& 
+                               surf_lsm_h%frac(2,m) * surf_lsm_h%emissivity(2,m)
+                   rrtm_tsfc = pt(surf_lsm_h%k(m)+surf_lsm_h%koff,j,i) *          &
+                                       (surface_pressure / 1000.0_wp )**0.286_wp
+                ENDDO             
+                DO  m = surf_usm_h%start_index(j,i), surf_usm_h%end_index(j,i)
+                   rrtm_emis = surf_usm_h%frac(0,m) * surf_usm_h%emissivity(0,m) +&
+                               surf_usm_h%frac(1,m) * surf_usm_h%emissivity(1,m) +& 
+                               surf_usm_h%frac(2,m) * surf_usm_h%emissivity(2,m)
+                   rrtm_tsfc = pt(surf_usm_h%k(m)+surf_usm_h%koff,j,i) *          &
+                                       (surface_pressure / 1000.0_wp )**0.286_wp
+                ENDDO
+!
+!--             Obtain topography top index (lower bound of RRTMG)
+                k_topo = get_topography_top_index( j, i, 's' )
+
+                IF ( lw_radiation )  THEN
+!
+!--                Due to technical reasons, copy optical depth to dummy arguments
+!--                which are allocated on the exact size as the rrtmg_lw is called.
+!--                As one dimesion is allocated with zero size, compiler complains
+!--                that rank of the array does not match that of the 
+!--                assumed-shaped arguments in the RRTMG library. In order to 
+!--                avoid this, write to dummy arguments and give pass the entire 
+!--                dummy array. Seems to be the only existing work-around.  
+                   ALLOCATE( rrtm_lw_taucld_dum(1:nbndlw+1,0:0,k_topo+1:nzt_rad+1) )
+                   ALLOCATE( rrtm_lw_tauaer_dum(0:0,k_topo+1:nzt_rad+1,1:nbndlw+1) )
+
+                   rrtm_lw_taucld_dum =                                        &
+                               rrtm_lw_taucld(1:nbndlw+1,0:0,k_topo+1:nzt_rad+1)
+                   rrtm_lw_tauaer_dum =                                        &
+                               rrtm_lw_tauaer(0:0,k_topo+1:nzt_rad+1,1:nbndlw+1)
+
+                   CALL rrtmg_lw( 1,                                           &                                        
+                                  nzt_rad-k_topo,                              &
+                                  rrtm_icld,                                   &
+                                  rrtm_idrv,                                   &
+                                  rrtm_play(:,k_topo+1:nzt_rad+1),             &
+                                  rrtm_plev(:,k_topo+1:nzt_rad+2),             &
+                                  rrtm_tlay(:,k_topo+1:nzt_rad+1),             &
+                                  rrtm_tlev(:,k_topo+1:nzt_rad+2),             &
+                                  rrtm_tsfc,                                   &
+                                  rrtm_h2ovmr(:,k_topo+1:nzt_rad+1),           &
+                                  rrtm_o3vmr(:,k_topo+1:nzt_rad+1),            &
+                                  rrtm_co2vmr(:,k_topo+1:nzt_rad+1),           &
+                                  rrtm_ch4vmr(:,k_topo+1:nzt_rad+1),           &
+                                  rrtm_n2ovmr(:,k_topo+1:nzt_rad+1),           &
+                                  rrtm_o2vmr(:,k_topo+1:nzt_rad+1),            &
+                                  rrtm_cfc11vmr(:,k_topo+1:nzt_rad+1),         &
+                                  rrtm_cfc12vmr(:,k_topo+1:nzt_rad+1),         &
+                                  rrtm_cfc22vmr(:,k_topo+1:nzt_rad+1),         &
+                                  rrtm_ccl4vmr(:,k_topo+1:nzt_rad+1),          &
+                                  rrtm_emis,                                   &
+                                  rrtm_inflglw,                                &
+                                  rrtm_iceflglw,                               &
+                                  rrtm_liqflglw,                               &
+                                  rrtm_cldfr(:,k_topo+1:nzt_rad+1),            &
+                                  rrtm_lw_taucld_dum,                          &
+                                  rrtm_cicewp(:,k_topo+1:nzt_rad+1),           &
+                                  rrtm_cliqwp(:,k_topo+1:nzt_rad+1),           &
+                                  rrtm_reice(:,k_topo+1:nzt_rad+1),            & 
+                                  rrtm_reliq(:,k_topo+1:nzt_rad+1),            &
+                                  rrtm_lw_tauaer_dum,                          &
+                                  rrtm_lwuflx(:,k_topo:nzt_rad+1),             &
+                                  rrtm_lwdflx(:,k_topo:nzt_rad+1),             &
+                                  rrtm_lwhr(:,k_topo+1:nzt_rad+1),             &
+                                  rrtm_lwuflxc(:,k_topo:nzt_rad+1),            &
+                                  rrtm_lwdflxc(:,k_topo:nzt_rad+1),            &
+                                  rrtm_lwhrc(:,k_topo+1:nzt_rad+1),            &
+                                  rrtm_lwuflx_dt(:,k_topo:nzt_rad+1),          &
+                                  rrtm_lwuflxc_dt(:,k_topo:nzt_rad+1) )
+
+                   DEALLOCATE ( rrtm_lw_taucld_dum )
+                   DEALLOCATE ( rrtm_lw_tauaer_dum )
+!
+!--                Save fluxes
+                   DO k = k_topo, nzt+1
+                      rad_lw_in(k,j,i)  = rrtm_lwdflx(0,k)
+                      rad_lw_out(k,j,i) = rrtm_lwuflx(0,k)
+                   ENDDO
+
+!
+!--                Save heating rates (convert from K/d to K/h)
+                   DO k = k_topo+1, nzt+1
+                      rad_lw_hr(k,j,i)     = rrtm_lwhr(0,k)  * d_hours_day
+                      rad_lw_cs_hr(k,j,i)  = rrtm_lwhrc(0,k) * d_hours_day
+                   ENDDO
+
+!
+!--                Save surface radiative fluxes and change in LW heating rate 
+!--                onto respective surface elements
+!--                Horizontal surfaces
+                   DO  m = surf_def_h(0)%start_index(j,i),                     &
+                           surf_def_h(0)%end_index(j,i)
+                      surf_def_h(0)%rad_lw_in(m)           = rrtm_lwdflx(0,k_topo)
+                      surf_def_h(0)%rad_lw_out(m)          = rrtm_lwuflx(0,k_topo)
+                      surf_def_h(0)%rad_lw_out_change_0(m) = rrtm_lwuflx_dt(0,k_topo)
+                   ENDDO
+                   DO  m = surf_lsm_h%start_index(j,i),                        &
+                           surf_lsm_h%end_index(j,i)
+                      surf_lsm_h%rad_lw_in(m)           = rrtm_lwdflx(0,k_topo)
+                      surf_lsm_h%rad_lw_out(m)          = rrtm_lwuflx(0,k_topo)
+                      surf_lsm_h%rad_lw_out_change_0(m) = rrtm_lwuflx_dt(0,k_topo)
+                   ENDDO             
+                   DO  m = surf_usm_h%start_index(j,i),                        &
+                           surf_usm_h%end_index(j,i)
+                      surf_usm_h%rad_lw_in(m)           = rrtm_lwdflx(0,k_topo)
+                      surf_usm_h%rad_lw_out(m)          = rrtm_lwuflx(0,k_topo)
+                      surf_usm_h%rad_lw_out_change_0(m) = rrtm_lwuflx_dt(0,k_topo)
+                   ENDDO 
+!
+!--                Vertical surfaces. Fluxes are obtain at vertical level of the 
+!--                respective surface element
+                   DO  l = 0, 3
+                      DO  m = surf_def_v(l)%start_index(j,i),                  &
+                              surf_def_v(l)%end_index(j,i)
+                         k                                    = surf_def_v(l)%k(m)
+                         surf_def_v(l)%rad_lw_in(m)           = rrtm_lwdflx(0,k)
+                         surf_def_v(l)%rad_lw_out(m)          = rrtm_lwuflx(0,k)
+                         surf_def_v(l)%rad_lw_out_change_0(m) = rrtm_lwuflx_dt(0,k)
+                      ENDDO
+                      DO  m = surf_lsm_v(l)%start_index(j,i),                  &
+                              surf_lsm_v(l)%end_index(j,i)
+                         k                                    = surf_lsm_v(l)%k(m)
+                         surf_lsm_v(l)%rad_lw_in(m)           = rrtm_lwdflx(0,k)
+                         surf_lsm_v(l)%rad_lw_out(m)          = rrtm_lwuflx(0,k)
+                         surf_lsm_v(l)%rad_lw_out_change_0(m) = rrtm_lwuflx_dt(0,k)
+                      ENDDO             
+                      DO  m = surf_usm_v(l)%start_index(j,i),                  &
+                              surf_usm_v(l)%end_index(j,i)
+                         k                                    = surf_usm_v(l)%k(m)
+                         surf_usm_v(l)%rad_lw_in(m)           = rrtm_lwdflx(0,k)
+                         surf_usm_v(l)%rad_lw_out(m)          = rrtm_lwuflx(0,k)
+                         surf_usm_v(l)%rad_lw_out_change_0(m) = rrtm_lwuflx_dt(0,k)
+                      ENDDO 
+                   ENDDO
+
+                ENDIF
+
+                IF ( sw_radiation .AND. sun_up )  THEN
+!
+!--                Get albedo for direct/diffusive long/shortwave radiation at 
+!--                current (y,x)-location from surface variables. 
+!--                Only obtain it from horizontal surfaces, as RRTMG is a single 
+!--                column model
+!--                (Please note, only one loop will entered, controlled by 
+!--                start-end index.)
+                   DO  m = surf_def_h(0)%start_index(j,i),                     &
+                           surf_def_h(0)%end_index(j,i)
+                      rrtm_asdir(1)  = surf_def_h(0)%rrtm_asdir(m)
+                      rrtm_asdif(1)  = surf_def_h(0)%rrtm_asdif(m)
+                      rrtm_aldir(1)  = surf_def_h(0)%rrtm_aldir(m)
+                      rrtm_aldif(1)  = surf_def_h(0)%rrtm_aldif(m)
+                   ENDDO
+                   DO  m = surf_lsm_h%start_index(j,i),                        &
+                           surf_lsm_h%end_index(j,i)
+                      rrtm_asdir(1)  = surf_lsm_h%rrtm_asdir(m)
+                      rrtm_asdif(1)  = surf_lsm_h%rrtm_asdif(m)
+                      rrtm_aldir(1)  = surf_lsm_h%rrtm_aldir(m)
+                      rrtm_aldif(1)  = surf_lsm_h%rrtm_aldif(m)
+                   ENDDO             
+                   DO  m = surf_usm_h%start_index(j,i),                        &
+                           surf_usm_h%end_index(j,i)
+                      rrtm_asdir(1)  = surf_usm_h%rrtm_asdir(m)
+                      rrtm_asdif(1)  = surf_usm_h%rrtm_asdif(m)
+                      rrtm_aldir(1)  = surf_usm_h%rrtm_aldir(m)
+                      rrtm_aldif(1)  = surf_usm_h%rrtm_aldif(m)
+                   ENDDO
+!
+!--                Due to technical reasons, copy optical depths and other 
+!--                to dummy arguments which are allocated on the exact size as the 
+!--                rrtmg_sw is called.
+!--                As one dimesion is allocated with zero size, compiler complains
+!--                that rank of the array does not match that of the 
+!--                assumed-shaped arguments in the RRTMG library. In order to 
+!--                avoid this, write to dummy arguments and give pass the entire 
+!--                dummy array. Seems to be the only existing work-around.  
+                   ALLOCATE( rrtm_sw_taucld_dum(1:nbndsw+1,0:0,k_topo+1:nzt_rad+1) )
+                   ALLOCATE( rrtm_sw_ssacld_dum(1:nbndsw+1,0:0,k_topo+1:nzt_rad+1) )
+                   ALLOCATE( rrtm_sw_asmcld_dum(1:nbndsw+1,0:0,k_topo+1:nzt_rad+1) )
+                   ALLOCATE( rrtm_sw_fsfcld_dum(1:nbndsw+1,0:0,k_topo+1:nzt_rad+1) )
+                   ALLOCATE( rrtm_sw_tauaer_dum(0:0,k_topo+1:nzt_rad+1,1:nbndsw+1) )
+                   ALLOCATE( rrtm_sw_ssaaer_dum(0:0,k_topo+1:nzt_rad+1,1:nbndsw+1) )
+                   ALLOCATE( rrtm_sw_asmaer_dum(0:0,k_topo+1:nzt_rad+1,1:nbndsw+1) )
+                   ALLOCATE( rrtm_sw_ecaer_dum(0:0,k_topo+1:nzt_rad+1,1:naerec+1)  )
+     
+                   rrtm_sw_taucld_dum = rrtm_sw_taucld(1:nbndsw+1,0:0,k_topo+1:nzt_rad+1)
+                   rrtm_sw_ssacld_dum = rrtm_sw_ssacld(1:nbndsw+1,0:0,k_topo+1:nzt_rad+1)
+                   rrtm_sw_asmcld_dum = rrtm_sw_asmcld(1:nbndsw+1,0:0,k_topo+1:nzt_rad+1)
+                   rrtm_sw_fsfcld_dum = rrtm_sw_fsfcld(1:nbndsw+1,0:0,k_topo+1:nzt_rad+1)
+                   rrtm_sw_tauaer_dum = rrtm_sw_tauaer(0:0,k_topo+1:nzt_rad+1,1:nbndsw+1)
+                   rrtm_sw_ssaaer_dum = rrtm_sw_ssaaer(0:0,k_topo+1:nzt_rad+1,1:nbndsw+1)
+                   rrtm_sw_asmaer_dum = rrtm_sw_asmaer(0:0,k_topo+1:nzt_rad+1,1:nbndsw+1)
+                   rrtm_sw_ecaer_dum  = rrtm_sw_ecaer(0:0,k_topo+1:nzt_rad+1,1:naerec+1)
+
+                   CALL rrtmg_sw( 1,                                           &
+                                  nzt_rad-k_topo,                              &
+                                  rrtm_icld,                                   &
+                                  rrtm_iaer,                                   &
+                                  rrtm_play(:,k_topo+1:nzt_rad+1),             &
+                                  rrtm_plev(:,k_topo+1:nzt_rad+2),             &
+                                  rrtm_tlay(:,k_topo+1:nzt_rad+1),             &
+                                  rrtm_tlev(:,k_topo+1:nzt_rad+2),             &
+                                  rrtm_tsfc,                                   &
+                                  rrtm_h2ovmr(:,k_topo+1:nzt_rad+1),           &                               
+                                  rrtm_o3vmr(:,k_topo+1:nzt_rad+1),            &        
+                                  rrtm_co2vmr(:,k_topo+1:nzt_rad+1),           &
+                                  rrtm_ch4vmr(:,k_topo+1:nzt_rad+1),           &
+                                  rrtm_n2ovmr(:,k_topo+1:nzt_rad+1),           &
+                                  rrtm_o2vmr(:,k_topo+1:nzt_rad+1),            &
+                                  rrtm_asdir,                                  & 
+                                  rrtm_asdif,                                  &
+                                  rrtm_aldir,                                  &
+                                  rrtm_aldif,                                  &
+                                  zenith,                                      &
+                                  0.0_wp,                                      &
+                                  day_of_year,                                 &
+                                  solar_constant,                              &
+                                  rrtm_inflgsw,                                &
+                                  rrtm_iceflgsw,                               &
+                                  rrtm_liqflgsw,                               &
+                                  rrtm_cldfr(:,k_topo+1:nzt_rad+1),            &
+                                  rrtm_sw_taucld_dum,                          &
+                                  rrtm_sw_ssacld_dum,                          &
+                                  rrtm_sw_asmcld_dum,                          &
+                                  rrtm_sw_fsfcld_dum,                          &
+                                  rrtm_cicewp(:,k_topo+1:nzt_rad+1),           &
+                                  rrtm_cliqwp(:,k_topo+1:nzt_rad+1),           &
+                                  rrtm_reice(:,k_topo+1:nzt_rad+1),            &
+                                  rrtm_reliq(:,k_topo+1:nzt_rad+1),            &
+                                  rrtm_sw_tauaer_dum,                          &
+                                  rrtm_sw_ssaaer_dum,                          &
+                                  rrtm_sw_asmaer_dum,                          &
+                                  rrtm_sw_ecaer_dum,                           &
+                                  rrtm_swuflx(:,k_topo:nzt_rad+1),             &  
+                                  rrtm_swdflx(:,k_topo:nzt_rad+1),             & 
+                                  rrtm_swhr(:,k_topo+1:nzt_rad+1),             & 
+                                  rrtm_swuflxc(:,k_topo:nzt_rad+1),            & 
+                                  rrtm_swdflxc(:,k_topo:nzt_rad+1),            &
+                                  rrtm_swhrc(:,k_topo+1:nzt_rad+1) )
+
+                   DEALLOCATE( rrtm_sw_taucld_dum )
+                   DEALLOCATE( rrtm_sw_ssacld_dum )
+                   DEALLOCATE( rrtm_sw_asmcld_dum )
+                   DEALLOCATE( rrtm_sw_fsfcld_dum )
+                   DEALLOCATE( rrtm_sw_tauaer_dum )
+                   DEALLOCATE( rrtm_sw_ssaaer_dum )
+                   DEALLOCATE( rrtm_sw_asmaer_dum )
+                   DEALLOCATE( rrtm_sw_ecaer_dum )
+!
+!--                Save fluxes
+                   DO k = nzb, nzt+1
+                      rad_sw_in(k,j,i)  = rrtm_swdflx(0,k)
+                      rad_sw_out(k,j,i) = rrtm_swuflx(0,k)
+                   ENDDO
+!
+!--                Save heating rates (convert from K/d to K/s)
+                   DO k = nzb+1, nzt+1
+                      rad_sw_hr(k,j,i)     = rrtm_swhr(0,k)  * d_hours_day
+                      rad_sw_cs_hr(k,j,i)  = rrtm_swhrc(0,k) * d_hours_day
+                   ENDDO
+
+!
+!--                Save surface radiative fluxes onto respective surface elements
+!--                Horizontal surfaces
+                   DO  m = surf_def_h(0)%start_index(j,i),                     &
+                           surf_def_h(0)%end_index(j,i)
+                      surf_def_h(0)%rad_sw_in(m)  = rrtm_swdflx(0,k_topo)
+                      surf_def_h(0)%rad_sw_out(m) = rrtm_swuflx(0,k_topo)
+                   ENDDO
+                   DO  m = surf_lsm_h%start_index(j,i),                        &
+                           surf_lsm_h%end_index(j,i)
+                      surf_lsm_h%rad_sw_in(m)     = rrtm_swdflx(0,k_topo)
+                      surf_lsm_h%rad_sw_out(m)    = rrtm_swuflx(0,k_topo)
+                   ENDDO             
+                   DO  m = surf_usm_h%start_index(j,i),                        &
+                           surf_usm_h%end_index(j,i)
+                      surf_usm_h%rad_sw_in(m)     = rrtm_swdflx(0,k_topo)
+                      surf_usm_h%rad_sw_out(m)    = rrtm_swuflx(0,k_topo)
+                   ENDDO 
+!
+!--                Vertical surfaces. Fluxes are obtain at respective vertical 
+!--                level of the surface element
+                   DO  l = 0, 3
+                      DO  m = surf_def_v(l)%start_index(j,i),                  &
+                              surf_def_v(l)%end_index(j,i)
+                         k                           = surf_def_v(l)%k(m)
+                         surf_def_v(l)%rad_sw_in(m)  = rrtm_swdflx(0,k)
+                         surf_def_v(l)%rad_sw_out(m) = rrtm_swuflx(0,k)
+                      ENDDO
+                      DO  m = surf_lsm_v(l)%start_index(j,i),                  &
+                              surf_lsm_v(l)%end_index(j,i)
+                         k                           = surf_lsm_v(l)%k(m)
+                         surf_lsm_v(l)%rad_sw_in(m)  = rrtm_swdflx(0,k)
+                         surf_lsm_v(l)%rad_sw_out(m) = rrtm_swuflx(0,k)
+                      ENDDO             
+                      DO  m = surf_usm_v(l)%start_index(j,i),                  &
+                              surf_usm_v(l)%end_index(j,i)
+                         k                           = surf_usm_v(l)%k(m)
+                         surf_usm_v(l)%rad_sw_in(m)  = rrtm_swdflx(0,k)
+                         surf_usm_v(l)%rad_sw_out(m) = rrtm_swuflx(0,k)
+                      ENDDO 
+                   ENDDO
+
+                ENDIF
 
              ENDDO
-
-!--          Linear interpolate to zw grid
-             DO k = nzb+2, nzt+8
-                rrtm_tlev(0,k)   = rrtm_tlay(0,k-1) + (rrtm_tlay(0,k) -        &
-                                   rrtm_tlay(0,k-1))                           &
-                                   / ( rrtm_play(0,k) - rrtm_play(0,k-1) )     &
-                                   * ( rrtm_plev(0,k) - rrtm_play(0,k-1) )
-             ENDDO
-
-
-!
-!--          Calculate liquid water path and cloud fraction for each column.
-!--          Note that LWP is required in g/mÂ² instead of kg/kg m.
-             rrtm_cldfr  = 0.0_wp
-             rrtm_reliq  = 0.0_wp
-             rrtm_cliqwp = 0.0_wp
-             rrtm_icld   = 0
-
-             IF ( cloud_physics  .OR.  cloud_droplets )  THEN
-                DO k = nzb+1, nzt+1
-                   rrtm_cliqwp(0,k) =  ql(k,j,i) * 1000.0_wp *                 &
-                                       (rrtm_plev(0,k) - rrtm_plev(0,k+1))     &
-                                       * 100.0_wp / g 
-
-                   IF ( rrtm_cliqwp(0,k) > 0.0_wp )  THEN
-                      rrtm_cldfr(0,k) = 1.0_wp
-                      IF ( rrtm_icld == 0 )  rrtm_icld = 1
-
-!
-!--                   Calculate cloud droplet effective radius
-                      IF ( cloud_physics )  THEN
-!
-!--                      Calculete effective droplet radius. In case of using 
-!--                      cloud_scheme = 'morrison' and a non reasonable number 
-!--                      of cloud droplets the inital aerosol number  
-!--                      concentration is considered.
-                         IF ( microphysics_morrison ) THEN
-                            IF ( nc(k,j,i) > 1.0E-20_wp ) THEN
-                               nc_rad = nc(k,j,i)
-                            ELSE
-                               nc_rad = na_init
-                            ENDIF 
-                         ELSE
-                            nc_rad = nc_const
-                         ENDIF  
-
-                         rrtm_reliq(0,k) = 1.0E6_wp * ( 3.0_wp * ql(k,j,i)     &
-                                           * rho_surface                       &
-                                           / ( 4.0_wp * pi * nc_rad * rho_l )&
-                                           )**0.33333333333333_wp              &
-                                           * EXP( LOG( sigma_gc )**2 )
-
-                      ELSEIF ( cloud_droplets )  THEN
-                         number_of_particles = prt_count(k,j,i)
-
-                         IF (number_of_particles <= 0)  CYCLE
-                         particles => grid_particles(k,j,i)%particles(1:number_of_particles)
-                         s_r2 = 0.0_wp
-                         s_r3 = 0.0_wp
-
-                         DO  n = 1, number_of_particles
-                            IF ( particles(n)%particle_mask )  THEN
-                               s_r2 = s_r2 + particles(n)%radius**2 * &
-                                      particles(n)%weight_factor
-                               s_r3 = s_r3 + particles(n)%radius**3 * &
-                                      particles(n)%weight_factor
-                            ENDIF
-                         ENDDO
-
-                         IF ( s_r2 > 0.0_wp )  rrtm_reliq(0,k) = s_r3 / s_r2
-
-                      ENDIF
-
-!
-!--                   Limit effective radius
-                      IF ( rrtm_reliq(0,k) > 0.0_wp )  THEN
-                         rrtm_reliq(0,k) = MAX(rrtm_reliq(0,k),2.5_wp)
-                         rrtm_reliq(0,k) = MIN(rrtm_reliq(0,k),60.0_wp)
-                     ENDIF
-                   ENDIF
-                ENDDO
-             ENDIF
-
-!
-!--          Set surface temperature
-             rrtm_tsfc = pt(nzb,j,i) * (surface_pressure / 1000.0_wp )**0.286_wp
-
-!
-!--          Set surface emissivity
-             rrtm_emis = emis(j,i)
-
-             IF ( lw_radiation )  THEN
-               CALL rrtmg_lw( 1, nzt_rad      , rrtm_icld    , rrtm_idrv      ,&
-               rrtm_play       , rrtm_plev    , rrtm_tlay    , rrtm_tlev      ,&
-               rrtm_tsfc       , rrtm_h2ovmr  , rrtm_o3vmr   , rrtm_co2vmr    ,&
-               rrtm_ch4vmr     , rrtm_n2ovmr  , rrtm_o2vmr   , rrtm_cfc11vmr  ,&
-               rrtm_cfc12vmr   , rrtm_cfc22vmr, rrtm_ccl4vmr , rrtm_emis      ,&
-               rrtm_inflglw    , rrtm_iceflglw, rrtm_liqflglw, rrtm_cldfr     ,&
-               rrtm_lw_taucld  , rrtm_cicewp  , rrtm_cliqwp  , rrtm_reice     ,& 
-               rrtm_reliq      , rrtm_lw_tauaer,                               &
-               rrtm_lwuflx     , rrtm_lwdflx  , rrtm_lwhr  ,                   &
-               rrtm_lwuflxc    , rrtm_lwdflxc , rrtm_lwhrc ,                   &
-               rrtm_lwuflx_dt  ,  rrtm_lwuflxc_dt )
-
-!
-!--             Save fluxes
-                DO k = nzb, nzt+1
-                   rad_lw_in(k,j,i)  = rrtm_lwdflx(0,k)
-                   rad_lw_out(k,j,i) = rrtm_lwuflx(0,k)
-                ENDDO
-
-!
-!--             Save heating rates (convert from K/d to K/h)
-                DO k = nzb+1, nzt+1
-                   rad_lw_hr(k,j,i)     = rrtm_lwhr(0,k)  * d_hours_day
-                   rad_lw_cs_hr(k,j,i)  = rrtm_lwhrc(0,k) * d_hours_day
-                ENDDO
-
-!
-!--             Save change in LW heating rate
-                rad_lw_out_change_0(j,i) = rrtm_lwuflx_dt(0,nzb)
-
-             ENDIF
-
-             IF ( sw_radiation .AND. sun_up )  THEN
-                CALL rrtmg_sw( 1, nzt_rad      , rrtm_icld  , rrtm_iaer       ,&
-               rrtm_play       , rrtm_plev    , rrtm_tlay  , rrtm_tlev        ,&
-               rrtm_tsfc       , rrtm_h2ovmr  , rrtm_o3vmr , rrtm_co2vmr      ,&
-               rrtm_ch4vmr     , rrtm_n2ovmr  , rrtm_o2vmr , rrtm_asdir(:,j,i),&
-               rrtm_asdif(:,j,i), rrtm_aldir(:,j,i), rrtm_aldif(:,j,i), zenith,&
-               0.0_wp          , day_of_year  , solar_constant,   rrtm_inflgsw,&
-               rrtm_iceflgsw   , rrtm_liqflgsw, rrtm_cldfr , rrtm_sw_taucld   ,&
-               rrtm_sw_ssacld  , rrtm_sw_asmcld, rrtm_sw_fsfcld, rrtm_cicewp  ,&
-               rrtm_cliqwp     , rrtm_reice   , rrtm_reliq , rrtm_sw_tauaer   ,&
-               rrtm_sw_ssaaer     , rrtm_sw_asmaer  , rrtm_sw_ecaer ,          &
-               rrtm_swuflx     , rrtm_swdflx  , rrtm_swhr  ,                   &
-               rrtm_swuflxc    , rrtm_swdflxc , rrtm_swhrc )
-  
-!
-!--             Save fluxes
-                DO k = nzb, nzt+1
-                   rad_sw_in(k,j,i)  = rrtm_swdflx(0,k)
-                   rad_sw_out(k,j,i) = rrtm_swuflx(0,k)
-                ENDDO
-
-!
-!--             Save heating rates (convert from K/d to K/s)
-                DO k = nzb+1, nzt+1
-                   rad_sw_hr(k,j,i)     = rrtm_swhr(0,k)  * d_hours_day
-                   rad_sw_cs_hr(k,j,i)  = rrtm_swhrc(0,k) * d_hours_day
-                ENDDO
-
-             ENDIF
-
-!
-!--          Calculate surface net radiation
-             rad_net(j,i) = rad_sw_in(nzb,j,i) - rad_sw_out(nzb,j,i)           &
-                            + rad_lw_in(nzb,j,i) - rad_lw_out(nzb,j,i)
-
+          ENDDO
+
+       ENDIF
+!
+!--    Finally, calculate surface net radiation for surface elements.
+!--    First, for horizontal surfaces
+       DO  m = 1, surf_def_h(0)%ns
+          surf_def_h(0)%rad_net(m) = surf_def_h(0)%rad_sw_in(m)                &
+                                   - surf_def_h(0)%rad_sw_out(m)               &
+                                   + surf_def_h(0)%rad_lw_in(m)                &
+                                   - surf_def_h(0)%rad_lw_out(m)
+       ENDDO       
+       DO  m = 1, surf_lsm_h%ns
+          surf_lsm_h%rad_net(m) = surf_lsm_h%rad_sw_in(m)                      &
+                                - surf_lsm_h%rad_sw_out(m)                     &
+                                + surf_lsm_h%rad_lw_in(m)                      &
+                                - surf_lsm_h%rad_lw_out(m)
+       ENDDO
+       DO  m = 1, surf_usm_h%ns
+          surf_usm_h%rad_net(m) = surf_usm_h%rad_sw_in(m)                      &
+                                - surf_usm_h%rad_sw_out(m)                     &
+                                + surf_usm_h%rad_lw_in(m)                      &
+                                - surf_usm_h%rad_lw_out(m)
+       ENDDO
+!
+!--    Vertical surfaces. 
+!--    Todo: weight with azimuth and zenith angle according to their orientation!
+       DO  l = 0, 3
+          DO  m = 1, surf_def_v(l)%ns
+             surf_def_v(l)%rad_net(m) = surf_def_v(l)%rad_sw_in(m)             &
+                                      - surf_def_v(l)%rad_sw_out(m)            &
+                                      + surf_def_v(l)%rad_lw_in(m)             &
+                                      - surf_def_v(l)%rad_lw_out(m)
+          ENDDO       
+          DO  m = 1, surf_lsm_v(l)%ns
+             surf_lsm_v(l)%rad_net(m) = surf_lsm_v(l)%rad_sw_in(m)             &
+                                      - surf_lsm_v(l)%rad_sw_out(m)            &
+                                      + surf_lsm_v(l)%rad_lw_in(m)             &
+                                      - surf_lsm_v(l)%rad_lw_out(m)
+          ENDDO
+          DO  m = 1, surf_usm_v(l)%ns
+             surf_usm_v(l)%rad_net(m) = surf_usm_v(l)%rad_sw_in(m)             &
+                                      - surf_usm_v(l)%rad_sw_out(m)            &
+                                      + surf_usm_v(l)%rad_lw_in(m)             &
+                                      - surf_usm_v(l)%rad_lw_out(m)
           ENDDO
        ENDDO
+
 
        CALL exchange_horiz( rad_lw_in,  nbgp )
@@ -1700,6 +3596,4 @@
        CALL exchange_horiz( rad_sw_cs_hr, nbgp )
 
-       CALL exchange_horiz_2d( rad_net )
-       CALL exchange_horiz_2d( rad_lw_out_change_0 )
 #endif
 
@@ -1765,87 +3659,105 @@
 !> Briegleb et al. (1986)
 !------------------------------------------------------------------------------!
-    SUBROUTINE calc_albedo
+    SUBROUTINE calc_albedo( surf )
 
         IMPLICIT NONE
 
-        IF ( sun_up )  THEN
-!
-!--        Ocean
-           IF ( albedo_type == 1 )  THEN
-              rrtm_aldir(0,:,:) = 0.026_wp / ( zenith(0)**1.7_wp + 0.065_wp )  &
+        INTEGER(iwp)    ::  m    !< running index surface elements
+
+        TYPE(surf_type) ::  surf !< treated surfaces
+
+        IF ( sun_up  .AND.  .NOT. average_radiation)  THEN
+
+           DO  m = 1, surf%ns
+!
+!--           Ocean
+              IF ( surf%albedo_type(0,m) == 1 )  THEN
+                 surf%rrtm_aldir(m) = 0.026_wp /                               &
+                                             ( zenith(0)**1.7_wp + 0.065_wp )  &
                                   + 0.15_wp * ( zenith(0) - 0.1_wp )           &
                                             * ( zenith(0) - 0.5_wp )           &
                                             * ( zenith(0) - 1.0_wp )
-              rrtm_asdir(0,:,:) = rrtm_aldir(0,:,:)
-!
-!--        Snow
-           ELSEIF ( albedo_type == 16 )  THEN
-              IF ( zenith(0) < 0.5_wp )  THEN
-                 rrtm_aldir(0,:,:) = 0.5_wp * (1.0_wp - aldif)                 &
+                 surf%rrtm_asdir(m) = surf%rrtm_aldir(m)
+!
+!--           Snow
+              ELSEIF ( surf%albedo_type(0,m) == 16 )  THEN
+                 IF ( zenith(0) < 0.5_wp )  THEN
+                    surf%rrtm_aldir(m) = 0.5_wp * (1.0_wp - surf%aldif(m))     &
                                      * ( 3.0_wp / (1.0_wp + 4.0_wp             &
                                      * zenith(0))) - 1.0_wp
-                 rrtm_asdir(0,:,:) = 0.5_wp * (1.0_wp - asdif)                 &
+                    surf%rrtm_asdir(m) = 0.5_wp * (1.0_wp - surf%asdif(m))     &
                                      * ( 3.0_wp / (1.0_wp + 4.0_wp             &
                                      * zenith(0))) - 1.0_wp
 
-                 rrtm_aldir(0,:,:) = MIN(0.98_wp, rrtm_aldir(0,:,:))
-                 rrtm_asdir(0,:,:) = MIN(0.98_wp, rrtm_asdir(0,:,:))
+                    surf%rrtm_aldir(m) = MIN(0.98_wp, surf%rrtm_aldir(m))
+                    surf%rrtm_asdir(m) = MIN(0.98_wp, surf%rrtm_asdir(m))
+                 ELSE
+                    surf%rrtm_aldir(m) = surf%aldif(m)
+                    surf%rrtm_asdir(m) = surf%asdif(m)
+                 ENDIF
+!
+!--           Sea ice
+              ELSEIF ( surf%albedo_type(0,m) == 15 )  THEN
+                 surf%rrtm_aldir(m) = surf%aldif(m)
+                 surf%rrtm_asdir(m) = surf%asdif(m)
+
+!
+!--           Asphalt
+              ELSEIF ( surf%albedo_type(0,m) == 17 )  THEN
+                 surf%rrtm_aldir(m) = surf%aldif(m)
+                 surf%rrtm_asdir(m) = surf%asdif(m)
+
+
+!
+!--           Bare soil
+              ELSEIF ( surf%albedo_type(0,m) == 18 )  THEN
+                 surf%rrtm_aldir(m) = surf%aldif(m)
+                 surf%rrtm_asdir(m) = surf%asdif(m)
+
+!
+!--           Land surfaces
               ELSE
-                 rrtm_aldir(0,:,:) = aldif
-                 rrtm_asdir(0,:,:) = asdif
+                 SELECT CASE ( surf%albedo_type(0,m) )
+
+!
+!--                 Surface types with strong zenith dependence
+                    CASE ( 1, 2, 3, 4, 11, 12, 13 )
+                       surf%rrtm_aldir(m) = surf%aldif(m) * 1.4_wp /                       &
+                                        (1.0_wp + 0.8_wp * zenith(0))
+                       surf%rrtm_asdir(m) = surf%asdif(m) * 1.4_wp /                       &
+                                        (1.0_wp + 0.8_wp * zenith(0))
+!
+!--                 Surface types with weak zenith dependence
+                    CASE ( 5, 6, 7, 8, 9, 10, 14 )
+                       surf%rrtm_aldir(m) = surf%aldif(m) * 1.1_wp /                       &
+                                        (1.0_wp + 0.2_wp * zenith(0))
+                       surf%rrtm_asdir(m) = surf%asdif(m) * 1.1_wp /                       &
+                                        (1.0_wp + 0.2_wp * zenith(0))
+
+                    CASE DEFAULT
+
+                 END SELECT
               ENDIF
 !
-!--        Sea ice
-           ELSEIF ( albedo_type == 15 )  THEN
-                 rrtm_aldir(0,:,:) = aldif
-                 rrtm_asdir(0,:,:) = asdif
-
-!
-!--        Bare soil
-           ELSEIF ( albedo_type == 17 )  THEN
-                 rrtm_aldir(0,:,:) = aldif
-                 rrtm_asdir(0,:,:) = asdif
-
-!
-!--        For impermeable surfaces, use values from the lookup table
-           ELSEIF ( albedo_type > 17 )  THEN
-                 rrtm_aldir(0,:,:) = aldif
-                 rrtm_asdir(0,:,:) = asdif
-!
-!--        Land surfaces
-           ELSE
-               SELECT CASE ( albedo_type )
-
-!
-!--              Surface types with strong zenith dependence
-                 CASE ( 1, 2, 3, 4, 11, 12, 13 )
-                    rrtm_aldir(0,:,:) = aldif * 1.4_wp /                       &
-                                        (1.0_wp + 0.8_wp * zenith(0))
-                    rrtm_asdir(0,:,:) = asdif * 1.4_wp /                       &
-                                        (1.0_wp + 0.8_wp * zenith(0))
-!
-!--              Surface types with weak zenith dependence
-                 CASE ( 5, 6, 7, 8, 9, 10, 14 )
-                    rrtm_aldir(0,:,:) = aldif * 1.1_wp /                       &
-                                        (1.0_wp + 0.2_wp * zenith(0))
-                    rrtm_asdir(0,:,:) = asdif * 1.1_wp /                       &
-                                        (1.0_wp + 0.2_wp * zenith(0))
-
-                 CASE DEFAULT
-
-              END SELECT
-           ENDIF
-!
-!--        Diffusive albedo is taken from Table 2
-           rrtm_aldif(0,:,:) = aldif
-           rrtm_asdif(0,:,:) = asdif
-
+!--           Diffusive albedo is taken from Table 2
+              surf%rrtm_aldif(m) = surf%aldif(m)
+              surf%rrtm_asdif(m) = surf%asdif(m)
+           ENDDO
+!
+!--     Set albedo in case of average radiation
+        ELSEIF ( sun_up  .AND.  average_radiation )  THEN
+           surf%rrtm_asdir = albedo_urb
+           surf%rrtm_asdif = albedo_urb
+           surf%rrtm_aldir = albedo_urb
+           surf%rrtm_aldif = albedo_urb  
+!
+!--     Darkness
         ELSE
-
-           rrtm_aldir(0,:,:) = 0.0_wp
-           rrtm_asdir(0,:,:) = 0.0_wp
-           rrtm_aldif(0,:,:) = 0.0_wp
-           rrtm_asdif(0,:,:) = 0.0_wp
+           surf%rrtm_aldir = 0.0_wp
+           surf%rrtm_asdir = 0.0_wp
+           surf%rrtm_aldif = 0.0_wp
+           surf%rrtm_asdif = 0.0_wp
         ENDIF
+
     END SUBROUTINE calc_albedo
 
@@ -2478,4 +4390,2587 @@
  END SUBROUTINE radiation_tendency
 
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> This subroutine calculates interaction of the solar radiation
+!> with urban and land surfaces and updates all surface heatfluxes, including
+!> the vertual atmospheric cell faces. It calculates also the required parameters
+!> for RRTMG lower BC.
+!>  
+!> For more info. see Resler et al. 2017
+!>  
+!------------------------------------------------------------------------------!
+    SUBROUTINE radiation_interaction_init
+    
+       USE netcdf_data_input_mod,                                              &
+           ONLY:  leaf_area_density_f
+
+       USE plant_canopy_model_mod,                                             &      
+           ONLY:  plant_canopy, pch_index,                                     &
+                  pc_heating_rate, lad_s, prototype_lad, usm_lad_rma       
+       
+       USE surface_mod,                                                        &
+           ONLY:  get_topography_top_index, surf_lsm_h, surf_lsm_v, surf_usm_h,&
+                  surf_usm_v
+
+       IMPLICIT NONE
+
+       INTEGER(iwp) :: i, j, k, d, l, ir, jr, ids, m
+       INTEGER(iwp) :: k_topo     !< vertical index indicating topography top for given (j,i)
+       INTEGER(iwp) :: k_topo2    !< vertical index indicating topography top for given (j,i)
+       INTEGER(iwp) :: nzubl, nzutl, isurf, ipcgb
+       INTEGER(iwp) :: procid
+
+       INTEGER(iwp), DIMENSION(1:4,inorth_b:iwest_b)  ::  ijdb                               !< start and end of the local domain border coordinates (set in code)
+       LOGICAL, DIMENSION(inorth_b:iwest_b)           ::  isborder                           !< is PE on the border of the domain in four corresponding directions
+
+!
+!--    Find nzub, nzut, nzu via wall_flag_0 array (nzb_s_inner will be 
+!--    removed later). The following contruct finds the lowest / largest index
+!--    for any upward-facing wall (see bit 12). 
+       nzubl = MINVAL( get_topography_top_index( 's' ) )
+       nzutl = MAXVAL( get_topography_top_index( 's' ) )
+
+       nzubl = MAX( nzubl, nzb )
+
+       IF ( plant_canopy )  THEN
+!--        allocate needed arrays
+           ALLOCATE( pct(nys:nyn,nxl:nxr) )
+           ALLOCATE( pch(nys:nyn,nxl:nxr) )
+
+!--        calculate plant canopy height
+           npcbl = 0
+           pct   = 0
+           pch   = 0
+           DO i = nxl, nxr
+               DO j = nys, nyn
+!
+!--                Find topography top index
+                   k_topo = get_topography_top_index( j, i, 's' )
+
+                   DO k = nzt+1, 0, -1
+                       IF ( lad_s(k,j,i) /= 0.0_wp )  THEN
+!--                        we are at the top of the pcs
+                           pct(j,i) = k + k_topo
+                           pch(j,i) = k
+                           npcbl = npcbl + pch(j,i)
+                           EXIT
+                       ENDIF
+                   ENDDO
+               ENDDO
+           ENDDO
+           
+           nzutl = MAX( nzutl, MAXVAL( pct ) )
+!--        code of plant canopy model uses parameter pch_index
+!--        we need to setup it here to right value
+!--        (pch_index, lad_s and other arrays in PCM are defined flat)
+           pch_index = MERGE( leaf_area_density_f%nz - 1, MAXVAL( pch ),       &
+                              leaf_area_density_f%from_file ) 
+
+           prototype_lad = MAXVAL( lad_s ) * .9_wp  !< better be *1.0 if lad is either 0 or maxval(lad) everywhere
+           IF ( prototype_lad <= 0._wp ) prototype_lad = .3_wp
+           !WRITE(message_string, '(a,f6.3)') 'Precomputing effective box optical ' &
+           !    // 'depth using prototype leaf area density = ', prototype_lad
+           !CALL message('usm_init_urban_surface', 'PA0520', 0, 0, -1, 6, 0)
+       ENDIF
+       
+       nzutl = MIN( nzutl + nzut_free, nzt )
+
+#if defined( __parallel )
+       CALL MPI_AllReduce(nzubl, nzub, 1, MPI_INTEGER, MPI_MIN, comm2d, ierr )
+       CALL MPI_AllReduce(nzutl, nzut, 1, MPI_INTEGER, MPI_MAX, comm2d, ierr )
+#else
+       nzub = nzubl
+       nzut = nzutl
+#endif
+!
+!--    global number of urban layers
+       nzu = nzut - nzub + 1
+!
+!--    allocate urban surfaces grid
+!--    calc number of surfaces in local proc
+       CALL location_message( '    calculation of indices for surfaces', .TRUE. )
+       nsurfl = 0
+!
+!--    Number of horizontal surfaces including land- and roof surfaces in both USM and LSM. Note that
+!--    All horizontal surface elements are already counted in surface_mod.
+       startland = 1
+       nsurfl    = surf_usm_h%ns + surf_lsm_h%ns
+       endland   = nsurfl
+       nlands    = endland - startland + 1
+
+!
+!--    Number of vertical surfaces in both USM and LSM. Note that all vertical surface elements are 
+!--    already counted in surface_mod.
+       startwall = nsurfl+1
+       DO  i = 0,3
+          nsurfl = nsurfl + surf_usm_v(i)%ns + surf_lsm_v(i)%ns
+       ENDDO
+       endwall = nsurfl
+       nwalls  = endwall - startwall + 1
+       
+!--    range of energy balance surfaces  ! will be treated separately by surf_usm_h and surf_usm_v
+!--    Do we really need usm_energy_balance_land??!!
+!--    !!! Attention: if usm_energy_balance_land = false then only vertical surfaces will be considered here
+       nenergy = 0
+       IF ( energy_balance_surf_h )  THEN
+           startenergy = startland
+           nenergy = nenergy + nlands
+       ELSE
+           startenergy = startwall
+       ENDIF
+       IF ( energy_balance_surf_v )  THEN
+           endenergy = endwall
+           nenergy = nenergy + nwalls
+       ELSE
+           endenergy = endland
+       ENDIF
+
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+!--    block of virtual surfaces
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+!--    calculate sky surfaces  ! not used so far!
+       startsky = nsurfl+1
+       nsurfl = nsurfl+(nxr-nxl+1)*(nyn-nys+1)
+       endsky = nsurfl
+       nskys = endsky-startsky+1
+       
+!--    border flags
+#if defined( __parallel )
+       isborder = (/ north_border_pe, south_border_pe, right_border_pe, left_border_pe /)
+#else
+       isborder = (/.TRUE.,.TRUE.,.TRUE.,.TRUE./)
+#endif
+!--    fill array of the limits of the local domain borders
+       ijdb = RESHAPE( (/ nxl,nxr,nyn,nyn,nxl,nxr,nys,nys,nxr,nxr,nys,nyn,nxl,nxl,nys,nyn /), (/4, 4/) )
+!--    calulation of the free borders of the domain
+       startborder = nsurfl + 1
+       DO  ids = inorth_b,iwest_b
+          IF ( isborder(ids) )  THEN
+!--          free border of the domain in direction ids
+             DO  i = ijdb(1,ids), ijdb(2,ids)
+                DO  j = ijdb(3,ids), ijdb(4,ids)
+
+                   k_topo  = get_topography_top_index( j, i, 's' )
+                   k_topo2 = get_topography_top_index( j-jdir(ids), i-idir(ids), 's' )
+
+
+                   k = nzut - MAX( k_topo, k_topo2 )
+                   nsurfl = nsurfl + k
+                ENDDO
+             ENDDO
+          ENDIF
+       ENDDO
+       endborder = nsurfl
+       nborder = endborder - startborder + 1
+
+!--    calulation of the atmospheric virtual surfaces
+!--    each atmospheric cell has 6 faces
+       IF ( atm_surfaces ) THEN
+          DO i = nxl, nxr
+             DO j = nys, nyn
+!--              Find topography top index
+                 k_topo = get_topography_top_index( j, i, 's' )
+                 k = nzut - k_topo
+                 nsurfl = nsurfl + 6 * k
+             ENDDO
+          ENDDO
+!--       exclude the local physical surfaces
+          nsurfl = nsurfl - nlands - nwalls
+!--       exclude the local virtual surfaces
+          nsurfl = nsurfl - nskys - nborder
+       ENDIF
+
+!--    fill gridpcbl and pcbl
+       IF ( plant_canopy )  THEN
+           ALLOCATE( pcbl(iz:ix, 1:npcbl) )
+           ALLOCATE( gridpcbl(nzub:nzut,nys:nyn,nxl:nxr) )
+           gridpcbl(:,:,:) = 0
+           ipcgb = 0
+           DO i = nxl, nxr
+               DO j = nys, nyn
+!
+!--                Find topography top index
+                   k_topo = get_topography_top_index( j, i, 's' )
+
+                   DO k = k_topo + 1, pct(j,i)
+                       ipcgb = ipcgb + 1
+                       gridpcbl(k,j,i) = ipcgb
+                       pcbl(:,ipcgb) = (/ k, j, i /)
+                   ENDDO
+               ENDDO
+           ENDDO
+
+           ALLOCATE( pcbinsw( 1:npcbl ) )
+           ALLOCATE( pcbinlw( 1:npcbl ) )
+       ENDIF
+
+!--    fill surfl
+       ALLOCATE(surfl(5,nsurfl))  ! is it mecessary to allocate it with (5,nsurfl)?        
+       isurf = 0
+       
+!--    add horizontal surface elements (land and urban surfaces)
+!--    TODO: add urban overhanging surfaces (idown_u)
+       DO i = nxl, nxr
+           DO j = nys, nyn
+              DO  m = surf_usm_h%start_index(j,i), surf_usm_h%end_index(j,i)
+                 k = surf_usm_h%k(m)
+
+                 isurf = isurf + 1
+                 surfl(:,isurf) = (/iup_u,k,j,i,m/)
+              ENDDO
+
+              DO  m = surf_lsm_h%start_index(j,i), surf_lsm_h%end_index(j,i)
+                 k = surf_lsm_h%k(m)
+
+                 isurf = isurf + 1
+                 surfl(:,isurf) = (/iup_l,k,j,i,m/)
+              ENDDO
+              
+           ENDDO
+       ENDDO
+
+!--    add vertical surface elements (land and urban surfaces)
+!--    TODO: remove the hard coding of l = 0 to l = idirection        
+       DO i = nxl, nxr
+           DO j = nys, nyn
+              l = 0
+              DO  m = surf_usm_v(l)%start_index(j,i), surf_usm_v(l)%end_index(j,i)
+                 k = surf_usm_v(l)%k(m)
+
+                 isurf          = isurf + 1
+                 surfl(:,isurf) = (/inorth_u,k,j,i,m/)
+              ENDDO
+              DO  m = surf_lsm_v(l)%start_index(j,i), surf_lsm_v(l)%end_index(j,i)
+                 k = surf_lsm_v(l)%k(m)
+
+                 isurf          = isurf + 1
+                 surfl(:,isurf) = (/inorth_l,k,j,i,m/)
+              ENDDO
+
+              l = 1
+              DO  m = surf_usm_v(l)%start_index(j,i), surf_usm_v(l)%end_index(j,i)
+                 k = surf_usm_v(l)%k(m)
+
+                 isurf          = isurf + 1
+                 surfl(:,isurf) = (/isouth_u,k,j,i,m/)
+              ENDDO
+              DO  m = surf_lsm_v(l)%start_index(j,i), surf_lsm_v(l)%end_index(j,i)
+                 k = surf_lsm_v(l)%k(m)
+
+                 isurf          = isurf + 1
+                 surfl(:,isurf) = (/isouth_l,k,j,i,m/)
+              ENDDO
+
+              l = 2
+              DO  m = surf_usm_v(l)%start_index(j,i), surf_usm_v(l)%end_index(j,i)
+                 k = surf_usm_v(l)%k(m)
+
+                 isurf          = isurf + 1
+                 surfl(:,isurf) = (/ieast_u,k,j,i,m/)
+              ENDDO
+              DO  m = surf_lsm_v(l)%start_index(j,i), surf_lsm_v(l)%end_index(j,i)
+                 k = surf_lsm_v(l)%k(m)
+
+                 isurf          = isurf + 1
+                 surfl(:,isurf) = (/ieast_l,k,j,i,m/)
+              ENDDO
+
+              l = 3
+              DO  m = surf_usm_v(l)%start_index(j,i), surf_usm_v(l)%end_index(j,i)
+                 k = surf_usm_v(l)%k(m)
+
+                 isurf          = isurf + 1
+                 surfl(:,isurf) = (/iwest_u,k,j,i,m/)
+              ENDDO
+              DO  m = surf_lsm_v(l)%start_index(j,i), surf_lsm_v(l)%end_index(j,i)
+                 k = surf_lsm_v(l)%k(m)
+
+                 isurf          = isurf + 1
+                 surfl(:,isurf) = (/iwest_l,k,j,i,m/)
+              ENDDO
+           ENDDO
+       ENDDO
+
+!--    add sky
+       DO i = nxl, nxr
+           DO j = nys, nyn
+               isurf = isurf + 1
+               k = nzut
+               surfl(:,isurf) = (/isky,k,j,i,-1/)
+           ENDDO
+       ENDDO
+       
+!--    calulation of the free borders of the domain
+       DO ids = inorth_b,iwest_b
+           IF ( isborder(ids) )  THEN
+!--            free border of the domain in direction ids
+               DO i = ijdb(1,ids), ijdb(2,ids)
+                   DO j = ijdb(3,ids), ijdb(4,ids)
+                       k_topo  = get_topography_top_index( j, i, 's' )
+                       k_topo2 = get_topography_top_index( j-jdir(ids), i-idir(ids), 's' )
+
+                       DO k = MAX(k_topo,k_topo2)+1, nzut
+                           isurf = isurf + 1
+                           surfl(:,isurf) = (/ids,k,j,i,-1/)
+                       ENDDO
+                   ENDDO
+               ENDDO
+           ENDIF
+       ENDDO
+
+!--    adding the atmospheric virtual surfaces 
+       IF ( atm_surfaces ) THEN
+!-- TODO: use flags to identfy atmospheric cells and its coresponding surfaces           
+!--    add horizontal surface
+          DO i = nxl, nxr
+             DO j = nys, nyn
+                k_topo = get_topography_top_index( j, i, 's' )
+
+!--             add upward surface
+                DO k = (k_topo+1), nzut-1
+                   isurf = isurf + 1
+                   surfl(:,isurf) = (/iup_a,k+1,j,i,-1/)
+                ENDDO
+
+!--             add downward surface
+                DO k = (k_topo+1), nzut-1
+                   isurf = isurf + 1
+                   surfl(:,isurf) = (/idown_a,k,j,i,-1/)
+                ENDDO
+             ENDDO
+          ENDDO
+
+!--       add vertical surfaces
+          DO i = nxl, nxr
+             DO j = nys, nyn
+                k_topo = get_topography_top_index( j, i, 's' )
+!--             north
+                IF ( j /= ny ) THEN
+                   ids = inorth_a
+                   jr = min(max(j-jdir(ids),0),ny)
+                   ir = min(max(i-idir(ids),0),nx)
+                   k_topo2 = get_topography_top_index( jr, ir, 's' )
+                   DO k = MAX(k_topo,k_topo2)+1, nzut
+                      isurf = isurf + 1
+                      surfl(:,isurf) = (/inorth_a,k,j,i,-1/)
+                   ENDDO
+                END IF
+!--             south
+                IF ( j /= 0 ) THEN
+                   ids = isouth_a
+                   jr = min(max(j-jdir(ids),0),ny)
+                   ir = min(max(i-idir(ids),0),nx)
+                   k_topo2 = get_topography_top_index( jr, ir, 's' )
+
+                   DO k = MAX(k_topo,k_topo2)+1, nzut
+                      isurf = isurf + 1
+                      surfl(:,isurf) = (/isouth_a,k,j,i,-1/)
+                   ENDDO
+                END IF
+!--             east
+                IF ( i /= nx ) THEN
+                   ids = ieast_a
+                   jr = min(max(j-jdir(ids),0),ny)
+                   ir = min(max(i-idir(ids),0),nx)
+                   k_topo2 = get_topography_top_index( jr, ir, 's' )
+
+                   DO k = MAX(k_topo,k_topo2)+1, nzut
+                      isurf = isurf + 1
+                      surfl(:,isurf) = (/ieast_a,k,j,i,-1/)
+                   ENDDO
+                END IF
+!--             west
+                IF ( i /= 0 ) THEN
+                   ids = iwest_a
+                   jr = min(max(j-jdir(ids),0),ny)
+                   ir = min(max(i-idir(ids),0),nx)
+                   k_topo2 = get_topography_top_index( jr, ir, 's' )
+
+                   DO k = MAX(k_topo,k_topo2)+1, nzut
+                      isurf = isurf + 1
+                      surfl(:,isurf) = (/iwest_a,k,j,i,-1/)
+                   ENDDO
+                END IF
+             ENDDO
+          ENDDO
+
+       ENDIF
+
+!
+!--     broadband albedo of the land, roof and wall surface
+!--     for domain border and sky set artifically to 1.0
+!--     what allows us to calculate heat flux leaving over
+!--     side and top borders of the domain
+        ALLOCATE ( albedo_surf(nsurfl) )
+        albedo_surf = 1.0_wp
+!
+!--     Also allocate further array for emissivity with identical order of 
+!--     surface elements as radiation arrays. 
+!--     MS: Why startenergy:endenergy and albedo surf from 1:nsurfl ?  
+        ALLOCATE ( emiss_surf(startenergy:endenergy)  )
+
+
+!
+!--    global array surf of indices of surfaces and displacement index array surfstart
+       ALLOCATE(nsurfs(0:numprocs-1))
+        
+#if defined( __parallel )
+       CALL MPI_Allgather(nsurfl,1,MPI_INTEGER,nsurfs,1,MPI_INTEGER,comm2d,ierr)
+#else
+       nsurfs(0) = nsurfl
+#endif
+       ALLOCATE(surfstart(0:numprocs))
+       k = 0
+       DO i=0,numprocs-1
+           surfstart(i) = k
+           k = k+nsurfs(i)
+       ENDDO
+       surfstart(numprocs) = k
+       nsurf = k
+       ALLOCATE(surf(5,nsurf))
+       
+#if defined( __parallel )
+       CALL MPI_AllGatherv(surfl, nsurfl*5, MPI_INTEGER, surf, nsurfs*5, surfstart*5, MPI_INTEGER, comm2d, ierr)
+#else
+       surf = surfl
+#endif
+
+!--
+!--    allocation of the arrays for direct and diffusion radiation
+       CALL location_message( '    allocation of radiation arrays', .TRUE. )
+!--    rad_sw_in, rad_lw_in are computed in radiation model,
+!--    splitting of direct and diffusion part is done
+!--    in usm_calc_diffusion_radiation for now
+
+       ALLOCATE( rad_sw_in_dir(nysg:nyng,nxlg:nxrg) )
+       ALLOCATE( rad_sw_in_diff(nysg:nyng,nxlg:nxrg) )
+       ALLOCATE( rad_lw_in_diff(nysg:nyng,nxlg:nxrg) )
+       rad_sw_in_dir  = 0.0_wp
+       rad_sw_in_diff = 0.0_wp
+       rad_lw_in_diff = 0.0_wp 
+       
+!--    allocate radiation arrays
+       ALLOCATE( surfins(nsurfl) )
+       ALLOCATE( surfinl(nsurfl) )
+       ALLOCATE( surfinsw(nsurfl) )
+       ALLOCATE( surfinlw(nsurfl) )
+       ALLOCATE( surfinswdir(nsurfl) )
+       ALLOCATE( surfinswdif(nsurfl) )
+       ALLOCATE( surfinlwdif(nsurfl) )
+       ALLOCATE( surfoutsl(startenergy:endenergy) )
+       ALLOCATE( surfoutll(startenergy:endenergy) )
+       ALLOCATE( surfoutsw(startenergy:endenergy) )
+       ALLOCATE( surfoutlw(startenergy:endenergy) )
+       ALLOCATE( surfouts(nsurf) ) !TODO: global surfaces without virtual
+       ALLOCATE( surfoutl(nsurf) ) !TODO: global surfaces without virtual
+
+!
+!--    @Mohamed
+!--    In case of average_radiation, aggregated surface albedo and emissivity,
+!--    also set initial value of t_rad_urb.
+!--    For the moment set an arbitrary initial value. 
+       IF ( average_radiation )  THEN
+          albedo_urb = 0.5_wp
+          emissivity_urb = 0.5_wp
+          t_rad_urb = pt_surface    
+       ENDIF 
+
+    END SUBROUTINE radiation_interaction_init
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> This subroutine calculates interaction of the solar radiation
+!> with urban and land surfaces and updates all surface heatfluxes, including
+!> the vertual atmospheric cell faces. It calculates also the required parameters
+!> for RRTMG lower BC.
+!>  
+!> For more info. see Resler et al. 2017
+!>  
+!------------------------------------------------------------------------------!
+    SUBROUTINE radiation_interaction
+    
+      
+      USE control_parameters
+
+      USE plant_canopy_model_mod,                                                &
+           ONLY: prototype_lad
+    
+        IMPLICIT NONE
+       
+        INTEGER(iwp)               :: i, j, k, kk, is, js, d, ku, refstep, m, mm, l, ll
+        INTEGER(iwp)               :: ii, jj !< running indices
+        INTEGER(iwp)               :: nzubl, nzutl, isurf, isurfsrc, isurf1, isvf, icsf, ipcgb
+        INTEGER(iwp), DIMENSION(4) :: bdycross
+        REAL(wp), DIMENSION(3,3)   :: mrot            !< grid rotation matrix (xyz)
+        REAL(wp), DIMENSION(3,0:nsurf_type) :: vnorm  !< face direction normal vectors (xyz)
+        REAL(wp), DIMENSION(3)     :: sunorig         !< grid rotated solar direction unit vector (xyz)
+        REAL(wp), DIMENSION(3)     :: sunorig_grid    !< grid squashed solar direction unit vector (zyx)
+        REAL(wp), DIMENSION(0:nsurf_type)  :: costheta        !< direct irradiance factor of solar angle
+        REAL(wp), DIMENSION(nzub:nzut) :: pchf_prep   !< precalculated factor for canopy temp tendency
+        REAL(wp), PARAMETER        :: alpha = 0._wp   !< grid rotation (TODO: add to namelist or remove)
+        REAL(wp)                   :: rx, ry, rz
+        REAL(wp)                   :: pc_box_area, pc_abs_frac, pc_abs_eff
+        INTEGER(iwp)               :: pc_box_dimshift !< transform for best accuracy
+        INTEGER(iwp), DIMENSION(0:3) :: reorder = (/ 1, 0, 3, 2 /)
+        REAL(wp),     DIMENSION(0:nsurf_type)       :: facearea
+        REAL(wp)                   :: pabsswl  = 0.0_wp  !< total absorbed SW radiation energy in local processor (W)
+        REAL(wp)                   :: pabssw   = 0.0_wp  !< total absorbed SW radiation energy in all processors (W)
+        REAL(wp)                   :: pabslwl  = 0.0_wp  !< total absorbed LW radiation energy in local processor (W)
+        REAL(wp)                   :: pabslw   = 0.0_wp  !< total absorbed LW radiation energy in all processors (W)
+        REAL(wp)                   :: pemitlwl = 0.0_wp  !< total emitted LW radiation energy in all processors (W)
+        REAL(wp)                   :: pemitlw  = 0.0_wp  !< total emitted LW radiation energy in all processors (W)
+        REAL(wp)                   :: pinswl   = 0.0_wp  !< total received SW radiation energy in local processor (W)
+        REAL(wp)                   :: pinsw    = 0.0_wp  !< total received SW radiation energy in all processor (W)
+        REAL(wp)                   :: pinlwl   = 0.0_wp  !< total received LW radiation energy in local processor (W)
+        REAL(wp)                   :: pinlw    = 0.0_wp  !< total received LW radiation energy in all processor (W)
+        REAL(wp)                   :: emiss_sum_surfl    !< sum of emissisivity of surfaces in local processor
+        REAL(wp)                   :: emiss_sum_surf     !< sum of emissisivity of surfaces in all processor
+        REAL(wp)                   :: area_surfl         !< total area of surfaces in local processor
+        REAL(wp)                   :: area_surf          !< total area of surfaces in all processor
+        
+        IF ( plant_canopy )  THEN
+            pchf_prep(:) = r_d * (hyp(nzub:nzut) / 100000.0_wp)**0.286_wp &
+                        / (cp * hyp(nzub:nzut) * dx*dy*dz) !< equals to 1 / (rho * c_p * Vbox * T)
+        ENDIF
+
+        sun_direction = .TRUE.
+        CALL calc_zenith  !< required also for diffusion radiation
+
+!--     prepare rotated normal vectors and irradiance factor
+        vnorm(1,:) = idir(:)
+        vnorm(2,:) = jdir(:)
+        vnorm(3,:) = kdir(:)
+        mrot(1, :) = (/ cos(alpha), -sin(alpha), 0._wp /)
+        mrot(2, :) = (/ sin(alpha),  cos(alpha), 0._wp /)
+        mrot(3, :) = (/ 0._wp,       0._wp,      1._wp /)
+        sunorig = (/ sun_dir_lon, sun_dir_lat, zenith(0) /)
+        sunorig = matmul(mrot, sunorig)
+        DO d = 0, nsurf_type
+            costheta(d) = dot_product(sunorig, vnorm(:,d))
+        ENDDO
+        
+        IF ( zenith(0) > 0 )  THEN
+!--         now we will "squash" the sunorig vector by grid box size in
+!--         each dimension, so that this new direction vector will allow us
+!--         to traverse the ray path within grid coordinates directly
+            sunorig_grid = (/ sunorig(3)/dz, sunorig(2)/dy, sunorig(1)/dx /)
+!--         sunorig_grid = sunorig_grid / norm2(sunorig_grid)
+            sunorig_grid = sunorig_grid / SQRT(SUM(sunorig_grid**2))
+
+            IF ( plant_canopy )  THEN
+!--            precompute effective box depth with prototype Leaf Area Density
+               pc_box_dimshift = maxloc(sunorig, 1) - 1
+               CALL box_absorb(cshift((/dx,dy,dz/), pc_box_dimshift),          &
+                                   60, prototype_lad,                          &
+                                   cshift(sunorig, pc_box_dimshift),           &
+                                   pc_box_area, pc_abs_frac)
+               pc_box_area = pc_box_area * sunorig(pc_box_dimshift+1) / sunorig(3)
+               pc_abs_eff = log(1._wp - pc_abs_frac) / prototype_lad
+            ENDIF
+        ENDIF
+        
+!--     split diffusion and direct part of the solar downward radiation
+!--     comming from radiation model and store it in 2D arrays
+!--     rad_sw_in_diff, rad_sw_in_dir and rad_lw_in_diff
+        IF ( split_diffusion_radiation )  THEN
+            CALL calc_diffusion_radiation
+        ELSE
+           DO  i = nxl, nxr
+              DO  j = nys, nyn
+                 DO  m = surf_def_h(0)%start_index(j,i),                       &
+                         surf_def_h(0)%end_index(j,i)
+                    rad_sw_in_diff(j,i) = 0.0_wp
+                    rad_sw_in_dir(j,i)  = surf_def_h(0)%rad_sw_in(m)
+                    rad_lw_in_diff(j,i) = surf_def_h(0)%rad_lw_in(m)
+                 ENDDO
+                 DO  m = surf_lsm_h%start_index(j,i),                          &
+                         surf_lsm_h%end_index(j,i)
+                    rad_sw_in_diff(j,i) = 0.0_wp
+                    rad_sw_in_dir(j,i)  = surf_lsm_h%rad_sw_in(m)
+                    rad_lw_in_diff(j,i) = surf_lsm_h%rad_lw_in(m)
+                 ENDDO
+                 DO  m = surf_usm_h%start_index(j,i),                          &
+                         surf_usm_h%end_index(j,i)
+                    rad_sw_in_diff(j,i) = 0.0_wp
+                    rad_sw_in_dir(j,i)  = surf_usm_h%rad_sw_in(m)
+                    rad_lw_in_diff(j,i) = surf_usm_h%rad_lw_in(m)
+                 ENDDO
+              ENDDO
+           ENDDO
+        ENDIF
+
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+!--     First pass: direct + diffuse irradiance
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+        surfinswdir   = 0._wp !nsurfl
+        surfinswdif   = 0._wp !nsurfl
+        surfinlwdif   = 0._wp !nsurfl
+        surfins       = 0._wp !nsurfl
+        surfinl       = 0._wp !nsurfl
+        surfoutsl(:)  = 0.0_wp !start-end
+        surfoutll(:)  = 0.0_wp !start-end
+        
+!--     Set up thermal radiation from surfaces
+!--     emiss_surf is defined only for surfaces for which energy balance is calculated
+!--     Workaround: reorder surface data type back on 1D array including all surfaces, 
+!--     which implies to reorder horizontal and vertical surfaces
+!
+!--     Horizontal walls
+        mm = 1
+        DO  i = nxl, nxr
+           DO  j = nys, nyn
+!--           urban
+              DO  m = surf_usm_h%start_index(j,i), surf_usm_h%end_index(j,i)
+                 surfoutll(mm) = SUM ( surf_usm_h%frac(:,m) *                  &
+                                       surf_usm_h%emissivity(:,m) )            &
+                                     * sigma_sb                                &
+                                     * surf_usm_h%pt_surface(m)**4
+                 albedo_surf(mm) = SUM ( surf_usm_h%frac(:,m) *                &
+                                         surf_usm_h%albedo(:,m) )       
+                 emiss_surf(mm)  = SUM ( surf_usm_h%frac(:,m) *                &
+                                         surf_usm_h%emissivity(:,m) )  
+                 mm = mm + 1
+              ENDDO
+!--           land
+              DO  m = surf_lsm_h%start_index(j,i), surf_lsm_h%end_index(j,i)
+                 surfoutll(mm) = SUM ( surf_lsm_h%frac(:,m) *                  &
+                                       surf_lsm_h%emissivity(:,m) )            &
+                                     * sigma_sb                                &
+                                     * surf_lsm_h%pt_surface(m)**4
+                 albedo_surf(mm) = SUM ( surf_lsm_h%frac(:,m) *                &
+                                         surf_lsm_h%albedo(:,m) )       
+                 emiss_surf(mm)  = SUM ( surf_lsm_h%frac(:,m) *                &
+                                         surf_lsm_h%emissivity(:,m) )   
+                 mm = mm + 1
+              ENDDO
+           ENDDO
+        ENDDO
+!
+!--     Vertical walls
+        DO  i = nxl, nxr
+           DO  j = nys, nyn
+              DO  ll = 0, 3
+                 l = reorder(ll)
+!--              urban
+                 DO  m = surf_usm_v(l)%start_index(j,i),                       &
+                         surf_usm_v(l)%end_index(j,i)
+                    surfoutll(mm) = SUM ( surf_usm_v(l)%frac(:,m) *            &
+                                          surf_usm_v(l)%emissivity(:,m) )      &
+                                     * sigma_sb                                &
+                                     * surf_usm_v(l)%pt_surface(m)**4
+                    albedo_surf(mm) = SUM ( surf_usm_v(l)%frac(:,m) *          &
+                                            surf_usm_v(l)%albedo(:,m) )   
+                    emiss_surf(mm)  = SUM ( surf_usm_v(l)%frac(:,m) *          &
+                                            surf_usm_v(l)%emissivity(:,m) )  
+                    mm = mm + 1
+                 ENDDO
+!--              land
+                 DO  m = surf_lsm_v(l)%start_index(j,i),                       &
+                         surf_lsm_v(l)%end_index(j,i)
+                    surfoutll(mm) = SUM ( surf_lsm_v(l)%frac(:,m) *            &
+                                          surf_lsm_v(l)%emissivity(:,m) )      &
+                                     * sigma_sb                                &
+                                     * surf_lsm_v(l)%pt_surface(m)**4
+                    albedo_surf(mm) = SUM ( surf_lsm_v(l)%frac(:,m) *          &
+                                            surf_lsm_v(l)%albedo(:,m) )   
+                    emiss_surf(mm)  = SUM ( surf_lsm_v(l)%frac(:,m) *          &
+                                            surf_lsm_v(l)%emissivity(:,m) ) 
+                    mm = mm + 1
+                 ENDDO
+              ENDDO
+           ENDDO
+        ENDDO
+
+#if defined( __parallel )
+!--     might be optimized and gather only values relevant for current processor
+        
+        CALL MPI_AllGatherv(surfoutll, nenergy, MPI_REAL, &
+                            surfoutl, nsurfs, surfstart, MPI_REAL, comm2d, ierr) !nsurf global
+#else
+        surfoutl(:) = surfoutll(:) !nsurf global
+#endif
+        
+        isurf1 = -1   !< previous processed surface
+        DO isvf = 1, nsvfl
+            isurf = svfsurf(1, isvf)
+            k = surfl(iz, isurf)
+            j = surfl(iy, isurf)
+            i = surfl(ix, isurf)
+            isurfsrc = svfsurf(2, isvf)
+            IF ( zenith(0) > 0  .AND.  isurf /= isurf1 )  THEN
+!--             locate the virtual surface where the direct solar ray crosses domain boundary
+!--             (once per target surface)
+                d = surfl(id, isurf)
+                rz = REAL(k, wp) - 0.5_wp * kdir(d)
+                ry = REAL(j, wp) - 0.5_wp * jdir(d)
+                rx = REAL(i, wp) - 0.5_wp * idir(d)
+                
+                CALL find_boundary_face( (/ rz, ry, rx /), sunorig_grid, bdycross)
+                
+                isurf1 = isurf
+            ENDIF
+
+            IF ( surf(id, isurfsrc) >= isky )  THEN
+!--             diffuse rad from boundary surfaces. Since it is a simply
+!--             calculated value, it is not assigned to surfref(s/l),
+!--             instead it is used directly here
+!--             we consider the radiation from the radiation model falling on surface
+!--             as the radiation falling on the top of urban layer into the place of the source surface
+!--             we consider it as a very reasonable simplification which allow as avoid
+!--             necessity of other global range arrays and some all to all mpi communication
+                surfinswdif(isurf) = surfinswdif(isurf) + rad_sw_in_diff(j,i) * svf(1,isvf) * svf(2,isvf)
+                                                                !< canopy shading is applied only to shortwave
+                surfinlwdif(isurf) = surfinlwdif(isurf) + rad_lw_in_diff(j,i) * svf(1,isvf)
+            ELSE
+!--             for surface-to-surface factors we calculate thermal radiation in 1st pass
+                surfinl(isurf) = surfinl(isurf) + svf(1,isvf) * surfoutl(isurfsrc)
+            ENDIF
+
+            IF ( zenith(0) > 0  .AND.  all( surf(1:4,isurfsrc) == bdycross ) )  THEN
+!--             found svf between model boundary and the face => face isn't shaded
+                surfinswdir(isurf) = rad_sw_in_dir(j,i) &
+                    * costheta(surfl(id, isurf)) * svf(2,isvf) / zenith(0)
+
+            ENDIF
+        ENDDO
+
+        IF ( plant_canopy )  THEN
+        
+            pcbinsw(:) = 0._wp
+            pcbinlw(:) = 0._wp  !< will stay always 0 since we don't absorb lw anymore
+            !
+!--         pcsf first pass
+            isurf1 = -1  !< previous processed pcgb
+            DO icsf = 1, ncsfl
+                ipcgb = csfsurf(1, icsf)
+                i = pcbl(ix,ipcgb)
+                j = pcbl(iy,ipcgb)
+                k = pcbl(iz,ipcgb)
+                isurfsrc = csfsurf(2, icsf)
+
+                IF ( zenith(0) > 0  .AND.  ipcgb /= isurf1 )  THEN
+!--                 locate the virtual surface where the direct solar ray crosses domain boundary
+!--                 (once per target PC gridbox)
+                    rz = REAL(k, wp)
+                    ry = REAL(j, wp)
+                    rx = REAL(i, wp)
+                    CALL find_boundary_face( (/ rz, ry, rx /), &
+                        sunorig_grid, bdycross)
+
+                    isurf1 = ipcgb
+                ENDIF
+
+                IF ( surf(id, isurfsrc) >= isky )  THEN
+!--                 Diffuse rad from boundary surfaces. See comments for svf above.
+                    pcbinsw(ipcgb) = pcbinsw(ipcgb) + csf(1,icsf) * csf(2,icsf) * rad_sw_in_diff(j,i)
+!--                 canopy shading is applied only to shortwave, therefore no absorbtion for lw
+!--                 pcbinlw(ipcgb) = pcbinlw(ipcgb) + svf(1,isvf) * rad_lw_in_diff(j,i)
+                !ELSE
+!--                 Thermal radiation in 1st pass
+!--                 pcbinlw(ipcgb) = pcbinlw(ipcgb) + svf(1,isvf) * surfoutl(isurfsrc)
+                ENDIF
+
+                IF ( zenith(0) > 0  .AND.  ALL( surf(1:4,isurfsrc) == bdycross ) )  THEN
+!--                 found svf between model boundary and the pcgb => pcgb isn't shaded
+                    pc_abs_frac = 1._wp - EXP(pc_abs_eff * lad_s(k,j,i))
+                    pcbinsw(ipcgb) = pcbinsw(ipcgb) &
+                        + rad_sw_in_dir(j, i) * pc_box_area * csf(2,icsf) * pc_abs_frac
+                ENDIF
+            ENDDO
+        ENDIF
+
+        surfins(startenergy:endenergy) = surfinswdir(startenergy:endenergy) + surfinswdif(startenergy:endenergy)
+        surfinl(startenergy:endenergy) = surfinl(startenergy:endenergy) + surfinlwdif(startenergy:endenergy)
+        surfinsw(:) = surfins(:)
+        surfinlw(:) = surfinl(:)
+        surfoutsw(:) = 0.0_wp
+        surfoutlw(:) = surfoutll(:)
+!         surfhf(startenergy:endenergy) = surfinsw(startenergy:endenergy) + surfinlw(startenergy:endenergy) &
+!                                       - surfoutsw(startenergy:endenergy) - surfoutlw(startenergy:endenergy)
+        
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+!--     Next passes - reflections
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+        DO refstep = 1, nrefsteps
+        
+            surfoutsl(startenergy:endenergy) = albedo_surf(startenergy:endenergy) * surfins(startenergy:endenergy)
+!--         for non-transparent surfaces, longwave albedo is 1 - emissivity
+            surfoutll(startenergy:endenergy) = (1._wp - emiss_surf(startenergy:endenergy)) * surfinl(startenergy:endenergy)
+
+#if defined( __parallel )
+            CALL MPI_AllGatherv(surfoutsl, nsurfl, MPI_REAL, &
+                surfouts, nsurfs, surfstart, MPI_REAL, comm2d, ierr)
+            CALL MPI_AllGatherv(surfoutll, nsurfl, MPI_REAL, &
+                surfoutl, nsurfs, surfstart, MPI_REAL, comm2d, ierr)
+#else
+            surfouts(:) = surfoutsl(:)
+            surfoutl(:) = surfoutll(:)
+#endif
+
+!--         reset for next pass input
+            surfins(:) = 0._wp
+            surfinl(:) = 0._wp
+            
+!--         reflected radiation
+            DO isvf = 1, nsvfl
+                isurf = svfsurf(1, isvf)
+                isurfsrc = svfsurf(2, isvf)
+
+!--             TODO: to remove if, use start+end for isvf
+                IF ( surf(id, isurfsrc) < isky )  THEN
+                    surfins(isurf) = surfins(isurf) + svf(1,isvf) * svf(2,isvf) * surfouts(isurfsrc)
+                    surfinl(isurf) = surfinl(isurf) + svf(1,isvf) * surfoutl(isurfsrc)
+                ENDIF
+            ENDDO
+
+!--         radiation absorbed by plant canopy
+            DO icsf = 1, ncsfl
+                ipcgb = csfsurf(1, icsf)
+                isurfsrc = csfsurf(2, icsf)
+
+                IF ( surf(id, isurfsrc) < isky )  THEN
+                    pcbinsw(ipcgb) = pcbinsw(ipcgb) + csf(1,icsf) * csf(2,icsf) * surfouts(isurfsrc)
+!--                 pcbinlw(ipcgb) = pcbinlw(ipcgb) + csf(1,icsf) * surfoutl(isurfsrc)
+                ENDIF
+            ENDDO
+            
+            surfinsw(:) = surfinsw(:)  + surfins(:)
+            surfinlw(:) = surfinlw(:)  + surfinl(:)
+            surfoutsw(startenergy:endenergy) = surfoutsw(startenergy:endenergy) + surfoutsl(startenergy:endenergy)
+            surfoutlw(startenergy:endenergy) = surfoutlw(startenergy:endenergy) + surfoutll(startenergy:endenergy)
+!             surfhf(startenergy:endenergy) = surfinsw(startenergy:endenergy) + surfinlw(startenergy:endenergy) &
+!                                           - surfoutsw(startenergy:endenergy) - surfoutlw(startenergy:endenergy)
+        
+        ENDDO
+
+!--     push heat flux absorbed by plant canopy to respective 3D arrays
+        IF ( plant_canopy )  THEN
+            pc_heating_rate(:,:,:) = 0._wp
+            DO ipcgb = 1, npcbl
+                j = pcbl(iy, ipcgb)
+                i = pcbl(ix, ipcgb)
+                k = pcbl(iz, ipcgb)
+!
+!--             Following expression equals former kk = k - nzb_s_inner(j,i) 
+                kk = k - get_topography_top_index( j, i, 's' )  !- lad arrays are defined flat
+                pc_heating_rate(kk, j, i) = (pcbinsw(ipcgb) + pcbinlw(ipcgb)) &
+                    * pchf_prep(k) * pt(k, j, i) !-- = dT/dt
+            ENDDO
+        ENDIF
+!
+!--     Transfer radiation arrays required for energy balance to the respective data types
+        DO  i = startenergy, endenergy
+           m  = surfl(5,i)          
+!
+!--        (1) Urban surfaces
+!--        upward-facing
+           IF ( surfl(1,i) == iup_u )  THEN
+              surf_usm_h%rad_sw_in(m)  = surfinsw(i)
+              surf_usm_h%rad_sw_out(m) = surfoutsw(i)
+              surf_usm_h%rad_lw_in(m)  = surfinlw(i)
+              surf_usm_h%rad_lw_out(m) = surfoutlw(i)
+              surf_usm_h%rad_net(m)    = surfinsw(i) - surfoutsw(i) +          &
+                                         surfinlw(i) - surfoutlw(i)
+!
+!--        northward-facding
+           ELSEIF ( surfl(1,i) == inorth_u )  THEN
+              surf_usm_v(0)%rad_sw_in(m)  = surfinsw(i) 
+              surf_usm_v(0)%rad_sw_out(m) = surfoutsw(i) 
+              surf_usm_v(0)%rad_lw_in(m)  = surfinlw(i)
+              surf_usm_v(0)%rad_lw_out(m) = surfoutlw(i)
+              surf_usm_v(0)%rad_net(m)    = surfinsw(i) - surfoutsw(i) +       &
+                                            surfinlw(i) - surfoutlw(i)
+!
+!--        southward-facding
+           ELSEIF ( surfl(1,i) == isouth_u )  THEN
+              surf_usm_v(1)%rad_sw_in(m)  = surfinsw(i) 
+              surf_usm_v(1)%rad_sw_out(m) = surfoutsw(i) 
+              surf_usm_v(1)%rad_lw_in(m)  = surfinlw(i)
+              surf_usm_v(1)%rad_lw_out(m) = surfoutlw(i)
+              surf_usm_v(1)%rad_net(m)    = surfinsw(i) - surfoutsw(i) +       &
+                                            surfinlw(i) - surfoutlw(i)
+!
+!--        eastward-facing
+           ELSEIF ( surfl(1,i) == ieast_u )  THEN
+              surf_usm_v(2)%rad_sw_in(m)  = surfinsw(i) 
+              surf_usm_v(2)%rad_sw_out(m) = surfoutsw(i) 
+              surf_usm_v(2)%rad_lw_in(m)  = surfinlw(i)
+              surf_usm_v(2)%rad_lw_out(m) = surfoutlw(i)
+              surf_usm_v(2)%rad_net(m)    = surfinsw(i) - surfoutsw(i) +       &
+                                            surfinlw(i) - surfoutlw(i)
+!
+!--        westward-facding
+           ELSEIF ( surfl(1,i) == iwest_u )  THEN
+              surf_usm_v(3)%rad_sw_in(m)  = surfinsw(i) 
+              surf_usm_v(3)%rad_sw_out(m) = surfoutsw(i) 
+              surf_usm_v(3)%rad_lw_in(m)  = surfinlw(i)
+              surf_usm_v(3)%rad_lw_out(m) = surfoutlw(i)
+              surf_usm_v(3)%rad_net(m)    = surfinsw(i) - surfoutsw(i) +       &
+                                            surfinlw(i) - surfoutlw(i)
+!
+!--        (2) land surfaces
+!--        upward-facing
+           ELSEIF ( surfl(1,i) == iup_l )  THEN
+              surf_lsm_h%rad_sw_in(m)  = surfinsw(i) 
+              surf_lsm_h%rad_sw_out(m) = surfoutsw(i) 
+              surf_lsm_h%rad_lw_in(m)  = surfinlw(i)
+              surf_lsm_h%rad_lw_out(m) = surfoutlw(i)
+              surf_lsm_h%rad_net(m)    = surfinsw(i) - surfoutsw(i) +          &
+                                         surfinlw(i) - surfoutlw(i)
+!
+!--        northward-facding
+           ELSEIF ( surfl(1,i) == inorth_l )  THEN
+              surf_lsm_v(0)%rad_sw_in(m)  = surfinsw(i) 
+              surf_lsm_v(0)%rad_sw_out(m) = surfoutsw(i) 
+              surf_lsm_v(0)%rad_lw_in(m)  = surfinlw(i)
+              surf_lsm_v(0)%rad_lw_out(m) = surfoutlw(i)
+              surf_lsm_v(0)%rad_net(m)    = surfinsw(i) - surfoutsw(i) +       &
+                                            surfinlw(i) - surfoutlw(i)
+!
+!--        southward-facding
+           ELSEIF ( surfl(1,i) == isouth_l )  THEN
+              surf_lsm_v(1)%rad_sw_in(m)  = surfinsw(i) 
+              surf_lsm_v(1)%rad_sw_out(m) = surfoutsw(i) 
+              surf_lsm_v(1)%rad_lw_in(m)  = surfinlw(i)
+              surf_lsm_v(1)%rad_lw_out(m) = surfoutlw(i)
+              surf_lsm_v(1)%rad_net(m)    = surfinsw(i) - surfoutsw(i) +       &
+                                            surfinlw(i) - surfoutlw(i)
+!
+!--        eastward-facing
+           ELSEIF ( surfl(1,i) == ieast_l )  THEN
+              surf_lsm_v(2)%rad_sw_in(m)  = surfinsw(i) 
+              surf_lsm_v(2)%rad_sw_out(m) = surfoutsw(i) 
+              surf_lsm_v(2)%rad_lw_in(m)  = surfinlw(i)
+              surf_lsm_v(2)%rad_lw_out(m) = surfoutlw(i)
+              surf_lsm_v(2)%rad_net(m)    = surfinsw(i) - surfoutsw(i) +       &
+                                            surfinlw(i) - surfoutlw(i)
+!
+!--        westward-facding
+           ELSEIF ( surfl(1,i) == iwest_l )  THEN
+              surf_lsm_v(3)%rad_sw_in(m)  = surfinsw(i) 
+              surf_lsm_v(3)%rad_sw_out(m) = surfoutsw(i) 
+              surf_lsm_v(3)%rad_lw_in(m)  = surfinlw(i)
+              surf_lsm_v(3)%rad_lw_out(m) = surfoutlw(i)
+              surf_lsm_v(3)%rad_net(m)    = surfinsw(i) - surfoutsw(i) +       &
+                                            surfinlw(i) - surfoutlw(i)
+           ENDIF
+
+        ENDDO
+
+        DO  m = 1, surf_usm_h%ns
+           surf_usm_h%surfhf(m) = surf_usm_h%rad_sw_in(m)  +                   &
+                                  surf_usm_h%rad_lw_in(m)  -                   &
+                                  surf_usm_h%rad_sw_out(m) -                   &
+                                  surf_usm_h%rad_lw_out(m)
+        ENDDO
+        DO  m = 1, surf_lsm_h%ns
+           surf_lsm_h%surfhf(m) = surf_lsm_h%rad_sw_in(m)  +                   &
+                                  surf_lsm_h%rad_lw_in(m)  -                   &
+                                  surf_lsm_h%rad_sw_out(m) -                   &
+                                  surf_lsm_h%rad_lw_out(m)
+        ENDDO
+
+        DO  l = 0, 3
+!--        urban
+           DO  m = 1, surf_usm_v(l)%ns
+              surf_usm_v(l)%surfhf(m) = surf_usm_v(l)%rad_sw_in(m)  +          &
+                                        surf_usm_v(l)%rad_lw_in(m)  -          &
+                                        surf_usm_v(l)%rad_sw_out(m) -          &
+                                        surf_usm_v(l)%rad_lw_out(m)
+           ENDDO
+!--        land
+           DO  m = 1, surf_lsm_v(l)%ns
+              surf_lsm_v(l)%surfhf(m) = surf_lsm_v(l)%rad_sw_in(m)  +          &
+                                        surf_lsm_v(l)%rad_lw_in(m)  -          &
+                                        surf_lsm_v(l)%rad_sw_out(m) -          &
+                                        surf_lsm_v(l)%rad_lw_out(m)
+
+           ENDDO
+        ENDDO
+!
+!--     Calculate the average temperature, albedo, and emissivity for urban/land domain
+!--     in case of using average_radiation in the respective radiation model
+        IF ( average_radiation )  THEN
+
+!--
+!--        precalculate face areas for different face directions using normal vector
+!--        TODO: make facearea a globale variable because it is used in more than one subroutine
+           DO d = 0, nsurf_type
+               facearea(d) = 1._wp
+               IF ( idir(d) == 0 ) facearea(d) = facearea(d) * dx
+               IF ( jdir(d) == 0 ) facearea(d) = facearea(d) * dy
+               IF ( kdir(d) == 0 ) facearea(d) = facearea(d) * dz
+           ENDDO
+!
+!--        total absorbed SW & LW and emitted LW energy by all physical surfaces (land and urban) in local processor
+           pabsswl = 0._wp
+           pabslwl = 0._wp
+           pemitlwl = 0._wp
+           emiss_sum_surfl = 0._wp
+           area_surfl = 0._wp
+           DO  i = startenergy, endenergy
+              d = surfl(id, i)
+              pabsswl = pabsswl + (1._wp - albedo_surf(i)) * surfinsw(i) * facearea(d)
+              pabslwl = pabslwl + emiss_surf(i) * surfinlw(i) * facearea(d)
+              pemitlwl = pemitlwl + surfoutlw(i) * facearea(d)
+              emiss_sum_surfl = emiss_sum_surfl + emiss_surf(i) * facearea(d)
+              area_surfl = area_surfl + facearea(d)
+           END DO
+!
+!--        add the absorbed SW energy by plant canopy
+           IF ( plant_canopy )  THEN
+              pabsswl = pabsswl + SUM(pcbinsw)
+              pabslwl = pabslwl + SUM(pcbinlw)
+           ENDIF
+!
+!--        gather all absorbed SW energy in all processors
+#if defined( __parallel )
+           CALL MPI_ALLREDUCE( pabsswl, pabssw, 1, MPI_REAL, MPI_SUM, comm2d, ierr )
+           CALL MPI_ALLREDUCE( pabslwl, pabslw, 1, MPI_REAL, MPI_SUM, comm2d, ierr )
+           CALL MPI_ALLREDUCE( pemitlwl, pemitlw, 1, MPI_REAL, MPI_SUM, comm2d, ierr )
+           CALL MPI_ALLREDUCE( emiss_sum_surfl, emiss_sum_surf, 1, MPI_REAL, MPI_SUM, comm2d, ierr )
+           CALL MPI_ALLREDUCE( area_surfl, area_surf, 1, MPI_REAL, MPI_SUM, comm2d, ierr )
+#else
+           pabssw = pabsswl
+           pabslwl = pabslw
+           pemitlwl = pemitlw
+           emiss_sum_surf = emiss_sum_surfl
+           area_surf = area_surfl
+#endif
+!
+!--        total received SW energy in local processor !!!!!! cos??!!!!
+           pinswl = 0._wp
+           pinlwl = 0._wp
+!-- sky 
+           DO  i = startsky, endsky
+              d = surfl(id, i)
+              ii = surfl(ix, i)
+              jj = surfl(iy, i)
+              pinswl = pinswl + (rad_sw_in_dir(jj,ii) + rad_sw_in_diff(jj,ii)) * facearea(d)
+              pinlwl = pinlwl + rad_lw_in_diff(jj,ii) * facearea(d)
+           ENDDO
+!-- boundary
+           DO  i = startborder, endborder
+              d = surfl(id, i)
+              ii = surfl(ix, i)
+              jj = surfl(iy, i)
+              pinswl = pinswl + (rad_sw_in_dir(jj,ii) + rad_sw_in_diff(jj,ii)) * facearea(d)
+              pinlwl = pinlwl + rad_lw_in_diff(jj,ii) * facearea(d)
+           ENDDO
+!--        gather all received SW energy in all processors
+#if defined( __parallel )
+           CALL MPI_ALLREDUCE( pinswl, pinsw, 1, MPI_REAL, MPI_SUM, comm2d, ierr)
+           CALL MPI_ALLREDUCE( pinlwl, pinlw, 1, MPI_REAL, MPI_SUM, comm2d, ierr)
+#else
+           pinsw = pinswl
+           pinlw = pinlwl
+#endif
+!--        (1) albedo
+           IF ( pinsw /= 0.0_wp )  albedo_urb = 1._wp - pabssw / pinsw
+        
+!--        (2) average emmsivity
+           emissivity_urb = emiss_sum_surf / area_surf
+
+!--        (3) temerature
+           t_rad_urb = ((pemitlw - pabslw + emissivity_urb*pinlw)/(emissivity_urb*sigma_sb*area_surf))**0.25_wp
+
+        ENDIF
+        
+!--     return surface radiation to horizontal surfaces 
+!--     to rad_sw_in, rad_lw_in and rad_net for outputs
+        !!!!!!!!!!
+!--     we need the original radiation on urban top layer
+!--     for calculation of MRT so we can't do adjustment here for now
+        !!!!!!!!!!
+        !!!DO isurf = 1, nsurfl
+        !!!    i = surfl(ix,isurf)
+        !!!    j = surfl(iy,isurf)
+        !!!    k = surfl(iz,isurf)
+        !!!    d = surfl(id,isurf)
+        !!!    IF ( d==iroof )  THEN
+        !!!        rad_sw_in(:,j,i) = surfinsw(isurf)
+        !!!        rad_lw_in(:,j,i) = surfinlw(isurf)
+        !!!        rad_net(j,i) = rad_sw_in(k,j,i) - rad_sw_out(k,j,i) + rad_lw_in(k,j,i) - rad_lw_out(k,j,i)
+        !!!    ENDIF
+        !!!ENDDO
+
+      CONTAINS
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> This subroutine splits direct and diffusion dw radiation
+!> It sould not be called in case the radiation model already does it
+!> It follows <CITATION>
+!------------------------------------------------------------------------------!
+        SUBROUTINE calc_diffusion_radiation 
+
+          USE date_and_time_mod,                                               &
+              ONLY:  day_of_year_init, time_utc_init
+          
+          REAL(wp), PARAMETER                          ::  sol_const = 1367.0_wp   !< solar conbstant
+          REAL(wp), PARAMETER                          ::  lowest_solarUp = 0.1_wp  !< limit the sun elevation to protect stability of the calculation
+          INTEGER(iwp)                                 ::  i, j
+          REAL(wp), PARAMETER                          ::  year_seconds = 86400._wp * 365._wp
+          REAL(wp)                                     ::  year_angle              !< angle
+          REAL(wp)                                     ::  etr                     !< extraterestrial radiation
+          REAL(wp)                                     ::  corrected_solarUp       !< corrected solar up radiation
+          REAL(wp)                                     ::  horizontalETR           !< horizontal extraterestrial radiation
+          REAL(wp)                                     ::  clearnessIndex          !< clearness index
+          REAL(wp)                                     ::  diff_frac               !< diffusion fraction of the radiation
+          
+        
+!--     Calculate current day and time based on the initial values and simulation time
+          year_angle = ((day_of_year_init*86400)                               &
+                                  +  time_utc_init+time_since_reference_point) &
+                                  /  year_seconds * 2.0_wp * pi
+          
+          etr = sol_const * (1.00011_wp +                               &
+               0.034221_wp * cos(year_angle) +                          &
+               0.001280_wp * sin(year_angle) +                          &
+               0.000719_wp * cos(2.0_wp * year_angle) +                 &
+               0.000077_wp * sin(2.0_wp * year_angle))
+          
+!--    
+!--     Under a very low angle, we keep extraterestrial radiation at
+!--     the last small value, therefore the clearness index will be pushed
+!--     towards 0 while keeping full continuity.
+!--    
+          IF ( zenith(0) <= lowest_solarUp )  THEN
+             corrected_solarUp = lowest_solarUp
+          ELSE
+             corrected_solarUp = zenith(0)
+          ENDIF
+          
+          horizontalETR = etr * corrected_solarUp
+          
+          DO i = nxl, nxr
+             DO j = nys, nyn
+
+                DO  m = surf_def_h(0)%start_index(j,i),                        &
+                        surf_def_h(0)%end_index(j,i)
+                   clearnessIndex = surf_def_h(0)%rad_sw_in(m) / horizontalETR
+                   diff_frac      = 1.0_wp /                                   &
+                        (1.0_wp + exp(-5.0033_wp + 8.6025_wp * clearnessIndex))
+                   rad_sw_in_diff(j,i) = surf_def_h(0)%rad_sw_in(m) * diff_frac
+                   rad_sw_in_dir(j,i)  = surf_def_h(0)%rad_sw_in(m) *          &
+                                            (1.0_wp - diff_frac)
+                   rad_lw_in_diff(j,i) = surf_def_h(0)%rad_lw_in(m)
+                ENDDO
+                DO  m = surf_lsm_h%start_index(j,i),                           &
+                        surf_lsm_h%end_index(j,i)
+                   clearnessIndex = surf_lsm_h%rad_sw_in(m) / horizontalETR
+                   diff_frac      = 1.0_wp /                                   &
+                        (1.0_wp + exp(-5.0033_wp + 8.6025_wp * clearnessIndex))
+                   rad_sw_in_diff(j,i) = surf_lsm_h%rad_sw_in(m) * diff_frac
+                   rad_sw_in_dir(j,i)  = surf_lsm_h%rad_sw_in(m) *             & 
+                                            (1.0_wp - diff_frac)
+                   rad_lw_in_diff(j,i) = surf_lsm_h%rad_lw_in(m)
+                ENDDO
+                DO  m = surf_usm_h%start_index(j,i),                           &
+                        surf_usm_h%end_index(j,i)
+                   clearnessIndex = surf_usm_h%rad_sw_in(m) / horizontalETR
+                   diff_frac      = 1.0_wp /                                   &
+                        (1.0_wp + exp(-5.0033_wp + 8.6025_wp * clearnessIndex))
+                   rad_sw_in_diff(j,i) = surf_usm_h%rad_sw_in(m) * diff_frac
+                   rad_sw_in_dir(j,i)  = surf_usm_h%rad_sw_in(m) *             & 
+                                            (1.0_wp - diff_frac)
+                   rad_lw_in_diff(j,i) = surf_usm_h%rad_lw_in(m)
+                ENDDO
+             ENDDO
+          ENDDO
+          
+        END SUBROUTINE calc_diffusion_radiation
+
+!------------------------------------------------------------------------------!
+!> Finds first model boundary crossed by a ray
+!------------------------------------------------------------------------------!
+        PURE SUBROUTINE find_boundary_face(origin, uvect, bdycross)
+          
+          IMPLICIT NONE
+          
+          INTEGER(iwp) ::  d       !<
+          INTEGER(iwp) ::  seldim  !< found fist crossing index
+          
+          INTEGER(iwp), DIMENSION(3)              ::  bdyd      !< boundary direction       
+          INTEGER(iwp), DIMENSION(4), INTENT(out) ::  bdycross  !< found boundary crossing (d, z, y, x)
+          
+          REAL(wp)                                ::  bdydim  !< 
+          REAL(wp)                                ::  dist    !<
+          
+          REAL(wp), DIMENSION(3)             ::  crossdist  !< crossing distance
+          REAL(wp), DIMENSION(3), INTENT(in) ::  origin     !< ray origin
+          REAL(wp), DIMENSION(3), INTENT(in) ::  uvect      !< ray unit vector
+          
+          
+          bdydim       = nzut + .5_wp  !< top boundary
+          bdyd(1)      = isky
+          crossdist(1) = ( bdydim - origin(1) ) / uvect(1)  !< subroutine called only when uvect(1)>0
+          
+          IF ( uvect(2) == 0._wp )  THEN
+             crossdist(2) = huge(1._wp)
+          ELSE
+             IF ( uvect(2) >= 0._wp )  THEN
+                bdydim  = ny + .5_wp  !< north global boundary
+                bdyd(2) = inorth_b
+             ELSE
+                bdydim  = -.5_wp  !< south global boundary
+                bdyd(2) = isouth_b
+             ENDIF
+             crossdist(2) = ( bdydim - origin(2) ) / uvect(2)
+          ENDIF
+          
+          IF ( uvect(3) == 0._wp )  THEN
+             crossdist(3) = huge(1._wp)
+          ELSE
+             IF ( uvect(3) >= 0._wp )  THEN
+                bdydim  = nx + .5_wp  !< east global boundary
+                bdyd(3) = ieast_b
+             ELSE
+                bdydim  = -.5_wp  !< west global boundary
+                bdyd(3) = iwest_b
+             ENDIF
+             crossdist(3) = ( bdydim - origin(3) ) / uvect(3)
+          ENDIF
+          
+          seldim = minloc(crossdist, 1)
+          dist   = crossdist(seldim)
+          d      = bdyd(seldim)
+          
+          bdycross(1)   = d
+          bdycross(2:4) = NINT( origin(:) + uvect(:) * dist &
+               + .5_wp * (/ kdir(d), jdir(d), idir(d) /) )
+          
+        END SUBROUTINE find_boundary_face
+!------------------------------------------------------------------------------!
+!> Calculates radiation absorbed by box with given size and LAD.
+!>
+!> Simulates resol**2 rays (by equally spacing a bounding horizontal square
+!> conatining all possible rays that would cross the box) and calculates
+!> average transparency per ray. Returns fraction of absorbed radiation flux
+!> and area for which this fraction is effective.
+!------------------------------------------------------------------------------!
+        PURE SUBROUTINE box_absorb(boxsize, resol, dens, uvec, area, absorb)
+          IMPLICIT NONE
+          
+          REAL(wp), DIMENSION(3), INTENT(in) :: &
+               boxsize, &      !< z, y, x size of box in m
+               uvec            !< z, y, x unit vector of incoming flux
+          INTEGER(iwp), INTENT(in) :: &
+               resol           !< No. of rays in x and y dimensions
+          REAL(wp), INTENT(in) :: &
+               dens            !< box density (e.g. Leaf Area Density)
+          REAL(wp), INTENT(out) :: &
+               area, &         !< horizontal area for flux absorbtion
+               absorb          !< fraction of absorbed flux
+          REAL(wp) :: &
+               xshift, yshift, &
+               xmin, xmax, ymin, ymax, &
+               xorig, yorig, &
+               dx1, dy1, dz1, dx2, dy2, dz2, &
+               crdist, &
+               transp
+          INTEGER(iwp) :: &
+               i, j
+          
+          xshift = uvec(3) / uvec(1) * boxsize(1)
+          xmin = min(0._wp, -xshift)
+          xmax = boxsize(3) + max(0._wp, -xshift)
+          yshift = uvec(2) / uvec(1) * boxsize(1)
+          ymin = min(0._wp, -yshift)
+          ymax = boxsize(2) + max(0._wp, -yshift)
+          
+          transp = 0._wp
+          DO i = 1, resol
+             xorig = xmin + (xmax-xmin) * (i-.5_wp) / resol
+             DO j = 1, resol
+                yorig = ymin + (ymax-ymin) * (j-.5_wp) / resol
+                
+                dz1 = 0._wp
+                dz2 = boxsize(1)/uvec(1)
+                
+                IF ( uvec(2) > 0._wp )  THEN
+                   dy1 = -yorig             / uvec(2) !< crossing with y=0
+                   dy2 = (boxsize(2)-yorig) / uvec(2) !< crossing with y=boxsize(2)
+                ELSE IF ( uvec(2) < 0._wp )  THEN
+                   dy1 = (boxsize(2)-yorig) / uvec(2) !< crossing with y=boxsize(2)
+                   dy2 = -yorig             / uvec(2) !< crossing with y=0
+                ELSE !uvec(2)==0
+                   dy1 = -huge(1._wp)
+                   dy2 = huge(1._wp)
+                ENDIF
+                
+                IF ( uvec(3) > 0._wp )  THEN
+                   dx1 = -xorig             / uvec(3) !< crossing with x=0
+                   dx2 = (boxsize(3)-xorig) / uvec(3) !< crossing with x=boxsize(3)
+                ELSE IF ( uvec(3) < 0._wp )  THEN
+                   dx1 = (boxsize(3)-xorig) / uvec(3) !< crossing with x=boxsize(3)
+                   dx2 = -xorig             / uvec(3) !< crossing with x=0
+                ELSE !uvec(1)==0
+                   dx1 = -huge(1._wp)
+                   dx2 = huge(1._wp)
+                ENDIF
+                
+                crdist = max(0._wp, (min(dz2, dy2, dx2) - max(dz1, dy1, dx1)))
+                transp = transp + exp(-ext_coef * dens * crdist)
+             ENDDO
+          ENDDO
+          transp = transp / resol**2
+          area = (boxsize(3)+xshift)*(boxsize(2)+yshift)
+          absorb = 1._wp - transp
+          
+        END SUBROUTINE box_absorb
+
+        
+    END SUBROUTINE radiation_interaction
+
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Calculates shape view factors SVF and plant sink canopy factors PSCF
+!> !!!!!DESCRIPTION!!!!!!!!!!
+!------------------------------------------------------------------------------!
+    SUBROUTINE radiation_calc_svf
+
+        IMPLICIT NONE
+        
+        INTEGER(iwp)                                :: i, j, k, l, d, ip, jp
+        INTEGER(iwp)                                :: isvf, ksvf, icsf, kcsf, npcsfl, isvf_surflt, imrtt, imrtf
+        INTEGER(iwp)                                :: sd, td, ioln, iproc
+        REAL(wp),     DIMENSION(0:nsurf_type)       :: facearea
+        INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE   :: nzterrl, planthl
+        REAL(wp),     DIMENSION(:,:), ALLOCATABLE   :: csflt, pcsflt
+        INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE   :: kcsflt,kpcsflt
+        INTEGER(iwp), DIMENSION(:), ALLOCATABLE     :: icsflt,dcsflt,ipcsflt,dpcsflt
+        REAL(wp), DIMENSION(3)                      :: uv
+        LOGICAL                                     :: visible
+        REAL(wp), DIMENSION(3)                      :: sa, ta          !< real coordinates z,y,x of source and target
+        REAL(wp)                                    :: transparency, rirrf, sqdist, svfsum
+        INTEGER(iwp)                                :: isurflt, isurfs, isurflt_prev
+        INTEGER(iwp)                                :: itx, ity, itz
+        CHARACTER(len=7)                            :: pid_char = ''
+        INTEGER(iwp)                                :: win_lad, minfo
+        REAL(wp), DIMENSION(:,:,:), POINTER         :: lad_s_rma       !< fortran pointer, but lower bounds are 1
+        TYPE(c_ptr)                                 :: lad_s_rma_p     !< allocated c pointer
+#if defined( __parallel )
+        INTEGER(kind=MPI_ADDRESS_KIND)              :: size_lad_rma
+#endif
+        REAL(wp), DIMENSION(0:nsurf_type)           :: svf_threshold   !< threshold to ignore very small svf between far surfaces
+        
+!    
+!--     calculation of the SVF
+        CALL location_message( '    calculation of SVF and CSF', .TRUE. )
+        CALL cpu_log( log_point_s(79), 'radiation_calc_svf', 'start' )
+!
+!--     precalculate face areas for different face directions using normal vector
+        DO d = 0, nsurf_type
+            facearea(d) = 1._wp
+            IF ( idir(d) == 0 ) facearea(d) = facearea(d) * dx
+            IF ( jdir(d) == 0 ) facearea(d) = facearea(d) * dy
+            IF ( kdir(d) == 0 ) facearea(d) = facearea(d) * dz
+        ENDDO
+
+!--     calculate the svf threshold
+        svf_threshold = 0._wp
+        IF ( dist_max_svf > 0._wp ) THEN
+            DO d = 0, nsurf_type
+               sqdist = dist_max_svf * dist_max_svf
+               svf_threshold(d) = 1._wp / (pi * sqdist) * facearea(d)
+            ENDDO
+         ENDIF
+         
+!--     initialize variables and temporary arrays for calculation of svf and csf
+        nsvfl  = 0
+        ncsfl  = 0
+        nsvfla = gasize
+        msvf   = 1
+        ALLOCATE( asvf1(nsvfla) )
+        asvf => asvf1
+        IF ( plant_canopy )  THEN
+            ncsfla = gasize
+            mcsf   = 1
+            ALLOCATE( acsf1(ncsfla) )
+            acsf => acsf1
+        ENDIF
+        
+!--     initialize temporary terrain and plant canopy height arrays (global 2D array!)
+        ALLOCATE( nzterr(0:(nx+1)*(ny+1)-1) )
+#if defined( __parallel )
+        ALLOCATE( nzterrl(nys:nyn,nxl:nxr) )
+        nzterrl = get_topography_top_index( 's' )
+        CALL MPI_AllGather( nzterrl, nnx*nny, MPI_INTEGER, &
+                            nzterr, nnx*nny, MPI_INTEGER, comm2d, ierr )
+        DEALLOCATE(nzterrl)
+#else
+        nzterr = RESHAPE( get_topography_top_index( 's' ), (/(nx+1)*(ny+1)/) )
+#endif
+        IF ( plant_canopy )  THEN
+            ALLOCATE( plantt(0:(nx+1)*(ny+1)-1) )
+            maxboxesg = nx + ny + nzu + 1
+!--         temporary arrays storing values for csf calculation during raytracing
+            ALLOCATE( boxes(3, maxboxesg) )
+            ALLOCATE( crlens(maxboxesg) )
+
+#if defined( __parallel )
+            ALLOCATE( planthl(nys:nyn,nxl:nxr) )
+            planthl = pch(nys:nyn,nxl:nxr)
+        
+            CALL MPI_AllGather( planthl, nnx*nny, MPI_INTEGER, &
+                                plantt, nnx*nny, MPI_INTEGER, comm2d, ierr )
+            DEALLOCATE( planthl )
+            
+!--         temporary arrays storing values for csf calculation during raytracing
+            ALLOCATE( lad_ip(maxboxesg) )
+            ALLOCATE( lad_disp(maxboxesg) )
+
+            IF ( usm_lad_rma )  THEN
+                ALLOCATE( lad_s_ray(maxboxesg) )
+                
+                ! set conditions for RMA communication
+                CALL MPI_Info_create(minfo, ierr)
+                CALL MPI_Info_set(minfo, 'accumulate_ordering', '', ierr)
+                CALL MPI_Info_set(minfo, 'accumulate_ops', 'same_op', ierr)
+                CALL MPI_Info_set(minfo, 'same_size', 'true', ierr)
+                CALL MPI_Info_set(minfo, 'same_disp_unit', 'true', ierr)
+
+!--             Allocate and initialize the MPI RMA window
+!--             must be in accordance with allocation of lad_s in plant_canopy_model
+!--             optimization of memory should be done
+!--             Argument X of function c_sizeof(X) needs arbitrary REAL(wp) value, set to 1.0_wp for now
+                size_lad_rma = c_sizeof(1.0_wp)*nnx*nny*nzu
+                CALL MPI_Win_allocate(size_lad_rma, c_sizeof(1.0_wp), minfo, comm2d, &
+                                        lad_s_rma_p, win_lad, ierr)
+                CALL c_f_pointer(lad_s_rma_p, lad_s_rma, (/ nzu, nny, nnx /))
+                usm_lad(nzub:, nys:, nxl:) => lad_s_rma(:,:,:)
+            ELSE
+                ALLOCATE(usm_lad(nzub:nzut, nys:nyn, nxl:nxr))
+            ENDIF
+#else
+            plantt = RESHAPE( pct(nys:nyn,nxl:nxr), (/(nx+1)*(ny+1)/) )
+            ALLOCATE(usm_lad(nzub:nzut, nys:nyn, nxl:nxr))
+#endif
+            usm_lad(:,:,:) = 0._wp
+            DO i = nxl, nxr
+                DO j = nys, nyn
+                    k = get_topography_top_index( j, i, 's' )
+
+                    usm_lad(k:nzut, j, i) = lad_s(0:nzut-k, j, i)
+                ENDDO
+            ENDDO
+
+#if defined( __parallel )
+            IF ( usm_lad_rma )  THEN
+                CALL MPI_Info_free(minfo, ierr)
+                CALL MPI_Win_lock_all(0, win_lad, ierr)
+            ELSE
+                ALLOCATE( usm_lad_g(0:(nx+1)*(ny+1)*nzu-1) )
+                CALL MPI_AllGather( usm_lad, nnx*nny*nzu, MPI_REAL, &
+                                    usm_lad_g, nnx*nny*nzu, MPI_REAL, comm2d, ierr )
+            ENDIF
+#endif
+        ENDIF
+
+        IF ( mrt_factors )  THEN
+            OPEN(153, file='MRT_TARGETS', access='SEQUENTIAL', &
+                    action='READ', status='OLD', form='FORMATTED', err=524)
+            OPEN(154, file='MRT_FACTORS'//myid_char, access='DIRECT', recl=(5*4+2*8), &
+                    action='WRITE', status='REPLACE', form='UNFORMATTED', err=525)
+            imrtf = 1
+            DO
+                READ(153, *, end=526, err=524) imrtt, i, j, k
+                IF ( i < nxl  .OR.  i > nxr &
+                     .OR.  j < nys  .OR.  j > nyn ) CYCLE
+                ta = (/ REAL(k), REAL(j), REAL(i) /)
+
+                DO isurfs = 1, nsurf
+                    IF ( .NOT.  surface_facing(i, j, k, -1, &
+                        surf(ix, isurfs), surf(iy, isurfs), &
+                        surf(iz, isurfs), surf(id, isurfs)) )  THEN
+                        CYCLE
+                    ENDIF
+                      
+                    sd = surf(id, isurfs)
+                    sa = (/ REAL(surf(iz, isurfs), wp) - 0.5_wp * kdir(sd), &
+                            REAL(surf(iy, isurfs), wp) - 0.5_wp * jdir(sd), &
+                            REAL(surf(ix, isurfs), wp) - 0.5_wp * idir(sd) /)
+
+!--                 unit vector source -> target
+                    uv = (/ (ta(1)-sa(1))*dz, (ta(2)-sa(2))*dy, (ta(3)-sa(3))*dx /)
+                    sqdist = SUM(uv(:)**2)
+                    uv = uv / SQRT(sqdist)
+
+!--                 irradiance factor - see svf. Here we consider that target face is always normal,
+!--                 i.e. the second dot product equals 1
+                    rirrf = dot_product((/ kdir(sd), jdir(sd), idir(sd) /), uv) &
+                        / (pi * sqdist) * facearea(sd)
+
+!--                 raytrace while not creating any canopy sink factors
+                    CALL raytrace(sa, ta, isurfs, rirrf, 1._wp, .FALSE., &
+                            visible, transparency, win_lad)
+                    IF ( .NOT.  visible ) CYCLE
+
+                    !rsvf = rirrf * transparency
+                    WRITE(154, rec=imrtf, err=525) INT(imrtt, kind=4), &
+                        INT(surf(id, isurfs), kind=4), &
+                        INT(surf(iz, isurfs), kind=4), &
+                        INT(surf(iy, isurfs), kind=4), &
+                        INT(surf(ix, isurfs), kind=4), &
+                        REAL(rirrf, kind=8), REAL(transparency, kind=8)
+                    imrtf = imrtf + 1
+
+                ENDDO !< isurfs
+            ENDDO !< MRT_TARGETS record
+
+524         message_string = 'error reading file MRT_TARGETS'
+            CALL message( 'radiation_calc_svf', 'PA0524', 1, 2, 0, 6, 0 )
+
+525         message_string = 'error writing file MRT_FACTORS'//myid_char
+            CALL message( 'radiation_calc_svf', 'PA0525', 1, 2, 0, 6, 0 )
+
+526         CLOSE(153)
+            CLOSE(154)
+        ENDIF  !< mrt_factors
+
+        
+        DO isurflt = 1, nsurfl
+!--         determine face centers
+            td = surfl(id, isurflt)
+            IF ( td >= isky  .AND.  .NOT.  plant_canopy ) CYCLE
+            ta = (/ REAL(surfl(iz, isurflt), wp) - 0.5_wp * kdir(td),  &
+                      REAL(surfl(iy, isurflt), wp) - 0.5_wp * jdir(td),  &
+                      REAL(surfl(ix, isurflt), wp) - 0.5_wp * idir(td)  /)
+            DO isurfs = 1, nsurf
+!--             cycle for atmospheric surfaces since they are not source surfaces
+                sd = surf(id, isurfs)
+                IF ( sd > iwest_l  .AND.  sd < isky ) CYCLE
+!--             if reflections between target surfaces (urban and land) are neglected (surf_reflection set to
+!--             FALSE) cycle. This will reduce the number of SVFs and keep SVFs between only ertual surfaces to
+!--             physical surfaces
+                IF ( .NOT.  surf_reflections  .AND. sd < isky ) CYCLE
+!--             cycle if the target and the source surfaces are not facing each other
+                IF ( .NOT.  surface_facing(surfl(ix, isurflt), surfl(iy, isurflt), &
+                    surfl(iz, isurflt), surfl(id, isurflt), &
+                    surf(ix, isurfs), surf(iy, isurfs), &
+                    surf(iz, isurfs), surf(id, isurfs)) )  THEN
+                    CYCLE
+                ENDIF
+                  
+                sa = (/ REAL(surf(iz, isurfs), wp) - 0.5_wp * kdir(sd),  &
+                        REAL(surf(iy, isurfs), wp) - 0.5_wp * jdir(sd),  &
+                        REAL(surf(ix, isurfs), wp) - 0.5_wp * idir(sd)  /)
+
+!--             unit vector source -> target
+                uv = (/ (ta(1)-sa(1))*dz, (ta(2)-sa(2))*dy, (ta(3)-sa(3))*dx /)
+                sqdist = SUM(uv(:)**2)
+                uv = uv / SQRT(sqdist)
+                
+!--             irradiance factor (our unshaded shape view factor) = view factor per differential target area * source area
+                rirrf = dot_product((/ kdir(sd), jdir(sd), idir(sd) /), uv) & ! cosine of source normal and direction
+                    * dot_product((/ kdir(td), jdir(td), idir(td) /), -uv) &  ! cosine of target normal and reverse direction
+                    / (pi * sqdist) & ! square of distance between centers
+                    * facearea(sd)
+
+!--             skip svf less than svf_threshold
+                IF ( rirrf < svf_threshold(sd) .AND.  sd < isky ) CYCLE
+
+!--             raytrace + process plant canopy sinks within
+                CALL raytrace(sa, ta, isurfs, rirrf, facearea(td), .TRUE., &
+                        visible, transparency, win_lad)
+                
+                IF ( .NOT.  visible ) CYCLE
+                IF ( td >= isky ) CYCLE !< we calculated these only for raytracing
+                                        !< to find plant canopy sinks, we don't need svf for them
+
+!--             write to the svf array
+                nsvfl = nsvfl + 1
+!--             check dimmension of asvf array and enlarge it if needed
+                IF ( nsvfla < nsvfl )  THEN
+                    k = nsvfla * 2
+                    IF ( msvf == 0 )  THEN
+                        msvf = 1
+                        ALLOCATE( asvf1(k) )
+                        asvf => asvf1
+                        asvf1(1:nsvfla) = asvf2
+                        DEALLOCATE( asvf2 )
+                    ELSE
+                        msvf = 0
+                        ALLOCATE( asvf2(k) )
+                        asvf => asvf2
+                        asvf2(1:nsvfla) = asvf1
+                        DEALLOCATE( asvf1 )
+                    ENDIF
+                    nsvfla = k
+                ENDIF
+!--             write svf values into the array
+                asvf(nsvfl)%isurflt = isurflt
+                asvf(nsvfl)%isurfs = isurfs
+                asvf(nsvfl)%rsvf = rirrf !we postopne multiplication by transparency
+                asvf(nsvfl)%rtransp = transparency !a.k.a. Direct Irradiance Factor
+            ENDDO
+        ENDDO
+
+        CALL location_message( '    waiting for completion of SVF and CSF calculation in all processes', .TRUE. )
+!--     deallocate temporary global arrays
+        DEALLOCATE(nzterr)
+        
+        IF ( plant_canopy )  THEN
+!--         finalize mpi_rma communication and deallocate temporary arrays
+#if defined( __parallel )
+            IF ( usm_lad_rma )  THEN
+                CALL MPI_Win_flush_all(win_lad, ierr)
+!--             unlock MPI window
+                CALL MPI_Win_unlock_all(win_lad, ierr)
+!--             free MPI window
+                CALL MPI_Win_free(win_lad, ierr)
+                
+!--             deallocate temporary arrays storing values for csf calculation during raytracing
+                DEALLOCATE( lad_s_ray )
+!--             usm_lad is the pointer to lad_s_rma in case of usm_lad_rma
+!--             and must not be deallocated here
+            ELSE
+                DEALLOCATE(usm_lad)
+                DEALLOCATE(usm_lad_g)
+            ENDIF
+#else
+            DEALLOCATE(usm_lad)
+#endif
+            DEALLOCATE( boxes )
+            DEALLOCATE( crlens )
+            DEALLOCATE( plantt )
+        ENDIF
+
+        CALL location_message( '    calculation of the complete SVF array', .TRUE. )
+
+!--     sort svf ( a version of quicksort )
+        CALL quicksort_svf(asvf,1,nsvfl)
+
+        ALLOCATE( svf(ndsvf,nsvfl) )
+        ALLOCATE( svfsurf(idsvf,nsvfl) )
+
+        !< load svf from the structure array to plain arrays
+        isurflt_prev = -1
+        ksvf = 1
+        svfsum = 0._wp
+        DO isvf = 1, nsvfl
+!--         normalize svf per target face
+            IF ( asvf(ksvf)%isurflt /= isurflt_prev )  THEN
+                IF ( isurflt_prev /= -1  .AND.  svfsum /= 0._wp )  THEN
+!--                 TODO detect and log when normalization differs too much from 1
+                    svf(1, isvf_surflt:isvf-1) = svf(1, isvf_surflt:isvf-1) / svfsum
+                ENDIF
+                isurflt_prev = asvf(ksvf)%isurflt
+                isvf_surflt = isvf
+                svfsum = asvf(ksvf)%rsvf !?? / asvf(ksvf)%rtransp
+            ELSE
+                svfsum = svfsum + asvf(ksvf)%rsvf !?? / asvf(ksvf)%rtransp
+            ENDIF
+
+            svf(:, isvf) = (/ asvf(ksvf)%rsvf, asvf(ksvf)%rtransp /)
+            svfsurf(:, isvf) = (/ asvf(ksvf)%isurflt, asvf(ksvf)%isurfs /)
+
+!--         next element
+            ksvf = ksvf + 1
+        ENDDO
+
+        IF ( isurflt_prev /= -1  .AND.  svfsum /= 0._wp )  THEN
+!--         TODO detect and log when normalization differs too much from 1
+            svf(1, isvf_surflt:nsvfl) = svf(1, isvf_surflt:nsvfl) / svfsum
+        ENDIF
+
+!--     deallocate temporary asvf array
+!--     DEALLOCATE(asvf) - ifort has a problem with deallocation of allocatable target
+!--     via pointing pointer - we need to test original targets
+        IF ( ALLOCATED(asvf1) )  THEN
+            DEALLOCATE(asvf1)
+        ENDIF
+        IF ( ALLOCATED(asvf2) )  THEN
+            DEALLOCATE(asvf2)
+        ENDIF
+
+        npcsfl = 0
+        IF ( plant_canopy )  THEN
+
+            CALL location_message( '    calculation of the complete CSF array', .TRUE. )
+
+!--         sort and merge csf for the last time, keeping the array size to minimum
+            CALL merge_and_grow_csf(-1)
+            
+!--         aggregate csb among processors
+!--         allocate necessary arrays
+            ALLOCATE( csflt(ndcsf,max(ncsfl,ndcsf)) )
+            ALLOCATE( kcsflt(kdcsf,max(ncsfl,kdcsf)) )
+            ALLOCATE( icsflt(0:numprocs-1) )
+            ALLOCATE( dcsflt(0:numprocs-1) )
+            ALLOCATE( ipcsflt(0:numprocs-1) )
+            ALLOCATE( dpcsflt(0:numprocs-1) )
+            
+!--         fill out arrays of csf values and 
+!--         arrays of number of elements and displacements
+!--         for particular precessors
+            icsflt = 0
+            dcsflt = 0
+            ip = -1
+            j = -1
+            d = 0
+            DO kcsf = 1, ncsfl
+                j = j+1
+                IF ( acsf(kcsf)%ip /= ip )  THEN
+!--                 new block of the processor
+!--                 number of elements of previous block
+                    IF ( ip>=0) icsflt(ip) = j
+                    d = d+j
+!--                 blank blocks
+                    DO jp = ip+1, acsf(kcsf)%ip-1
+!--                     number of elements is zero, displacement is equal to previous
+                        icsflt(jp) = 0
+                        dcsflt(jp) = d
+                    ENDDO
+!--                 the actual block
+                    ip = acsf(kcsf)%ip
+                    dcsflt(ip) = d
+                    j = 0
+                ENDIF
+!--             fill out real values of rsvf, rtransp
+                csflt(1,kcsf) = acsf(kcsf)%rsvf
+                csflt(2,kcsf) = acsf(kcsf)%rtransp
+!--             fill out integer values of itz,ity,itx,isurfs
+                kcsflt(1,kcsf) = acsf(kcsf)%itz
+                kcsflt(2,kcsf) = acsf(kcsf)%ity
+                kcsflt(3,kcsf) = acsf(kcsf)%itx
+                kcsflt(4,kcsf) = acsf(kcsf)%isurfs
+            ENDDO
+!--         last blank blocks at the end of array
+            j = j+1
+            IF ( ip>=0 ) icsflt(ip) = j
+            d = d+j
+            DO jp = ip+1, numprocs-1
+!--             number of elements is zero, displacement is equal to previous
+                icsflt(jp) = 0
+                dcsflt(jp) = d
+            ENDDO
+            
+!--         deallocate temporary acsf array
+!--         DEALLOCATE(acsf) - ifort has a problem with deallocation of allocatable target
+!--         via pointing pointer - we need to test original targets
+            IF ( ALLOCATED(acsf1) )  THEN
+                DEALLOCATE(acsf1)
+            ENDIF
+            IF ( ALLOCATED(acsf2) )  THEN
+                DEALLOCATE(acsf2)
+            ENDIF
+                    
+#if defined( __parallel )
+!--         scatter and gather the number of elements to and from all processor
+!--         and calculate displacements
+            CALL MPI_AlltoAll(icsflt,1,MPI_INTEGER,ipcsflt,1,MPI_INTEGER,comm2d, ierr)
+            
+            npcsfl = SUM(ipcsflt)
+            d = 0
+            DO i = 0, numprocs-1
+                dpcsflt(i) = d
+                d = d + ipcsflt(i)
+            ENDDO
+        
+!--         exchange csf fields between processors
+            ALLOCATE( pcsflt(ndcsf,max(npcsfl,ndcsf)) )
+            ALLOCATE( kpcsflt(kdcsf,max(npcsfl,kdcsf)) )
+            CALL MPI_AlltoAllv(csflt, ndcsf*icsflt, ndcsf*dcsflt, MPI_REAL, &
+                pcsflt, ndcsf*ipcsflt, ndcsf*dpcsflt, MPI_REAL, comm2d, ierr)
+            CALL MPI_AlltoAllv(kcsflt, kdcsf*icsflt, kdcsf*dcsflt, MPI_INTEGER, &
+                kpcsflt, kdcsf*ipcsflt, kdcsf*dpcsflt, MPI_INTEGER, comm2d, ierr)
+            
+#else
+            npcsfl = ncsfl
+            ALLOCATE( pcsflt(ndcsf,max(npcsfl,ndcsf)) )
+            ALLOCATE( kpcsflt(kdcsf,max(npcsfl,kdcsf)) )
+            pcsflt = csflt
+            kpcsflt = kcsflt
+#endif
+
+!--         deallocate temporary arrays
+            DEALLOCATE( csflt )
+            DEALLOCATE( kcsflt )
+            DEALLOCATE( icsflt )
+            DEALLOCATE( dcsflt )
+            DEALLOCATE( ipcsflt )
+            DEALLOCATE( dpcsflt )
+
+!--         sort csf ( a version of quicksort )
+            CALL quicksort_csf2(kpcsflt, pcsflt, 1, npcsfl)
+
+!--         aggregate canopy sink factor records with identical box & source
+!--         againg across all values from all processors
+            IF ( npcsfl > 0 )  THEN
+                icsf = 1 !< reading index
+                kcsf = 1 !< writing index
+                DO while (icsf < npcsfl)
+!--                 here kpcsf(kcsf) already has values from kpcsf(icsf)
+                    IF ( kpcsflt(3,icsf) == kpcsflt(3,icsf+1)  .AND.  &
+                         kpcsflt(2,icsf) == kpcsflt(2,icsf+1)  .AND.  &
+                         kpcsflt(1,icsf) == kpcsflt(1,icsf+1)  .AND.  &
+                         kpcsflt(4,icsf) == kpcsflt(4,icsf+1) )  THEN
+!--                     We could simply take either first or second rtransp, both are valid. As a very simple heuristic about which ray
+!--                     probably passes nearer the center of the target box, we choose DIF from the entry with greater CSF, since that
+!--                     might mean that the traced beam passes longer through the canopy box.
+                        IF ( pcsflt(1,kcsf) < pcsflt(1,icsf+1) )  THEN
+                            pcsflt(2,kcsf) = pcsflt(2,icsf+1)
+                        ENDIF
+                        pcsflt(1,kcsf) = pcsflt(1,kcsf) + pcsflt(1,icsf+1)
+
+!--                     advance reading index, keep writing index
+                        icsf = icsf + 1
+                    ELSE
+!--                     not identical, just advance and copy
+                        icsf = icsf + 1
+                        kcsf = kcsf + 1
+                        kpcsflt(:,kcsf) = kpcsflt(:,icsf)
+                        pcsflt(:,kcsf) = pcsflt(:,icsf)
+                    ENDIF
+                ENDDO
+!--             last written item is now also the last item in valid part of array
+                npcsfl = kcsf
+            ENDIF
+
+            ncsfl = npcsfl
+            IF ( ncsfl > 0 )  THEN
+                ALLOCATE( csf(ndcsf,ncsfl) )
+                ALLOCATE( csfsurf(idcsf,ncsfl) )
+                DO icsf = 1, ncsfl
+                    csf(:,icsf) = pcsflt(:,icsf)
+                    csfsurf(1,icsf) =  gridpcbl(kpcsflt(1,icsf),kpcsflt(2,icsf),kpcsflt(3,icsf))
+                    csfsurf(2,icsf) =  kpcsflt(4,icsf)
+                ENDDO
+            ENDIF
+            
+!--         deallocation of temporary arrays
+            DEALLOCATE( pcsflt )
+            DEALLOCATE( kpcsflt )
+            IF ( ALLOCATED( gridpcbl ) )  DEALLOCATE( gridpcbl )
+            
+        ENDIF
+        
+        RETURN
+        
+301     WRITE( message_string, * )  &
+            'I/O error when processing shape view factors / ',  &
+            'plant canopy sink factors / direct irradiance factors.'
+        CALL message( 'init_urban_surface', 'PA0502', 2, 2, 0, 6, 0 )
+
+        CALL cpu_log( log_point_s(79), 'radiation_calc_svf', 'stop' )
+
+
+    END SUBROUTINE radiation_calc_svf
+
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Raytracing for detecting obstacles and calculating compound canopy sink
+!> factors. (A simple obstacle detection would only need to process faces in
+!> 3 dimensions without any ordering.)
+!> Assumtions:
+!> -----------
+!> 1. The ray always originates from a face midpoint (only one coordinate equals
+!>    *.5, i.e. wall) and doesn't travel parallel to the surface (that would mean
+!>    shape factor=0). Therefore, the ray may never travel exactly along a face
+!>    or an edge.
+!> 2. From grid bottom to urban surface top the grid has to be *equidistant*
+!>    within each of the dimensions, including vertical (but the resolution
+!>    doesn't need to be the same in all three dimensions).
+!------------------------------------------------------------------------------!
+    SUBROUTINE raytrace(src, targ, isrc, rirrf, atarg, create_csf, visible, transparency, win_lad)
+        IMPLICIT NONE
+
+        REAL(wp), DIMENSION(3), INTENT(in)     :: src, targ    !< real coordinates z,y,x
+        INTEGER(iwp), INTENT(in)               :: isrc         !< index of source face for csf
+        REAL(wp), INTENT(in)                   :: rirrf        !< irradiance factor for csf
+        REAL(wp), INTENT(in)                   :: atarg        !< target surface area for csf
+        LOGICAL, INTENT(in)                    :: create_csf   !< whether to generate new CSFs during raytracing
+        LOGICAL, INTENT(out)                   :: visible
+        REAL(wp), INTENT(out)                  :: transparency !< along whole path
+        INTEGER(iwp), INTENT(in)               :: win_lad
+        INTEGER(iwp)                           :: i, j, k, d
+        INTEGER(iwp)                           :: seldim       !< dimension to be incremented
+        INTEGER(iwp)                           :: ncsb         !< no of written plant canopy sinkboxes
+        INTEGER(iwp)                           :: maxboxes     !< max no of gridboxes visited
+        REAL(wp)                               :: distance     !< euclidean along path
+        REAL(wp)                               :: crlen        !< length of gridbox crossing
+        REAL(wp)                               :: lastdist     !< beginning of current crossing
+        REAL(wp)                               :: nextdist     !< end of current crossing
+        REAL(wp)                               :: realdist     !< distance in meters per unit distance
+        REAL(wp)                               :: crmid        !< midpoint of crossing
+        REAL(wp)                               :: cursink      !< sink factor for current canopy box
+        REAL(wp), DIMENSION(3)                 :: delta        !< path vector
+        REAL(wp), DIMENSION(3)                 :: uvect        !< unit vector
+        REAL(wp), DIMENSION(3)                 :: dimnextdist  !< distance for each dimension increments
+        INTEGER(iwp), DIMENSION(3)             :: box          !< gridbox being crossed
+        INTEGER(iwp), DIMENSION(3)             :: dimnext      !< next dimension increments along path
+        INTEGER(iwp), DIMENSION(3)             :: dimdelta     !< dimension direction = +- 1
+        INTEGER(iwp)                           :: px, py       !< number of processors in x and y dir before 
+                                                               !< the processor in the question
+        INTEGER(iwp)                           :: ip           !< number of processor where gridbox reside
+        INTEGER(iwp)                           :: ig           !< 1D index of gridbox in global 2D array
+        REAL(wp)                               :: lad_s_target !< recieved lad_s of particular grid box
+        REAL(wp), PARAMETER                    :: grow_factor = 1.5_wp !< factor of expansion of grow arrays
+
+!
+!--     Maximum number of gridboxes visited equals to maximum number of boundaries crossed in each dimension plus one. That's also
+!--     the maximum number of plant canopy boxes written. We grow the acsf array accordingly using exponential factor.
+        maxboxes = SUM(ABS(NINT(targ) - NINT(src))) + 1
+        IF ( plant_canopy  .AND.  ncsfl + maxboxes > ncsfla )  THEN
+!--         use this code for growing by fixed exponential increments (equivalent to case where ncsfl always increases by 1)
+!--         k = CEILING(grow_factor ** real(CEILING(log(real(ncsfl + maxboxes, kind=wp)) &
+!--                                                / log(grow_factor)), kind=wp))
+!--         or use this code to simply always keep some extra space after growing
+            k = CEILING(REAL(ncsfl + maxboxes, kind=wp) * grow_factor)
+
+            CALL merge_and_grow_csf(k)
+        ENDIF
+        
+        transparency = 1._wp
+        ncsb = 0
+
+        delta(:) = targ(:) - src(:)
+        distance = SQRT(SUM(delta(:)**2))
+        IF ( distance == 0._wp )  THEN
+            visible = .TRUE.
+            RETURN
+        ENDIF
+        uvect(:) = delta(:) / distance
+        realdist = SQRT(SUM( (uvect(:)*(/dz,dy,dx/))**2 ))
+
+        lastdist = 0._wp
+
+!--     Since all face coordinates have values *.5 and we'd like to use
+!--     integers, all these have .5 added
+        DO d = 1, 3
+            IF ( uvect(d) == 0._wp )  THEN
+                dimnext(d) = 999999999
+                dimdelta(d) = 999999999
+                dimnextdist(d) = 1.0E20_wp
+            ELSE IF ( uvect(d) > 0._wp )  THEN
+                dimnext(d) = CEILING(src(d) + .5_wp)
+                dimdelta(d) = 1
+                dimnextdist(d) = (dimnext(d) - .5_wp - src(d)) / uvect(d)
+            ELSE
+                dimnext(d) = FLOOR(src(d) + .5_wp)
+                dimdelta(d) = -1
+                dimnextdist(d) = (dimnext(d) - .5_wp - src(d)) / uvect(d)
+            ENDIF
+        ENDDO
+
+        DO
+!--         along what dimension will the next wall crossing be?
+            seldim = minloc(dimnextdist, 1)
+            nextdist = dimnextdist(seldim)
+            IF ( nextdist > distance ) nextdist = distance
+
+            crlen = nextdist - lastdist
+            IF ( crlen > .001_wp )  THEN
+                crmid = (lastdist + nextdist) * .5_wp
+                box = NINT(src(:) + uvect(:) * crmid)
+
+!--             calculate index of the grid with global indices (box(2),box(3))
+!--             in the array nzterr and plantt and id of the coresponding processor
+                px = box(3)/nnx
+                py = box(2)/nny
+                ip = px*pdims(2)+py
+                ig = ip*nnx*nny + (box(3)-px*nnx)*nny + box(2)-py*nny
+                IF ( box(1) <= nzterr(ig) )  THEN
+                    visible = .FALSE.
+                    RETURN
+                ENDIF
+
+                IF ( plant_canopy )  THEN
+                    IF ( box(1) <= plantt(ig) )  THEN
+                        ncsb = ncsb + 1
+                        boxes(:,ncsb) = box
+                        crlens(ncsb) = crlen
+#if defined( __parallel )
+                        lad_ip(ncsb) = ip
+                        lad_disp(ncsb) = (box(3)-px*nnx)*(nny*nzu) + (box(2)-py*nny)*nzu + box(1)-nzub
+#endif
+                    ENDIF
+                ENDIF
+            ENDIF
+
+            IF ( nextdist >= distance ) EXIT
+            lastdist = nextdist
+            dimnext(seldim) = dimnext(seldim) + dimdelta(seldim)
+            dimnextdist(seldim) = (dimnext(seldim) - .5_wp - src(seldim)) / uvect(seldim)
+        ENDDO
+        
+        IF ( plant_canopy )  THEN
+#if defined( __parallel )
+            IF ( usm_lad_rma )  THEN
+!--             send requests for lad_s to appropriate processor
+                CALL cpu_log( log_point_s(77), 'usm_init_rma', 'start' )
+                DO i = 1, ncsb
+                    CALL MPI_Get(lad_s_ray(i), 1, MPI_REAL, lad_ip(i), lad_disp(i), &
+                                 1, MPI_REAL, win_lad, ierr)
+                    IF ( ierr /= 0 )  THEN
+                        WRITE(message_string, *) 'MPI error ', ierr, ' at MPI_Get'
+                        CALL message( 'raytrace', 'PA0519', 1, 2, 0, 6, 0 )
+                    ENDIF
+                ENDDO
+                
+!--             wait for all pending local requests complete
+                CALL MPI_Win_flush_local_all(win_lad, ierr)
+                IF ( ierr /= 0 )  THEN
+                    WRITE(message_string, *) 'MPI error ', ierr, ' at MPI_Win_flush_local_all'
+                    CALL message( 'raytrace', 'PA0519', 1, 2, 0, 6, 0 )
+                ENDIF
+                CALL cpu_log( log_point_s(77), 'usm_init_rma', 'stop' )
+                
+            ENDIF
+#endif
+
+!--         calculate csf and transparency
+            DO i = 1, ncsb
+#if defined( __parallel )
+                IF ( usm_lad_rma )  THEN
+                    lad_s_target = lad_s_ray(i)
+                ELSE
+                    lad_s_target = usm_lad_g(lad_ip(i)*nnx*nny*nzu + lad_disp(i))
+                ENDIF
+#else
+                lad_s_target = usm_lad(boxes(1,i),boxes(2,i),boxes(3,i))
+#endif
+                cursink = 1._wp - exp(-ext_coef * lad_s_target * crlens(i)*realdist)
+
+                IF ( create_csf )  THEN
+!--                 write svf values into the array
+                    ncsfl = ncsfl + 1
+                    acsf(ncsfl)%ip = lad_ip(i)
+                    acsf(ncsfl)%itx = boxes(3,i)
+                    acsf(ncsfl)%ity = boxes(2,i)
+                    acsf(ncsfl)%itz = boxes(1,i)
+                    acsf(ncsfl)%isurfs = isrc
+                    acsf(ncsfl)%rsvf = REAL(cursink*rirrf*atarg, wp) !-- we postpone multiplication by transparency
+                    acsf(ncsfl)%rtransp = REAL(transparency, wp)
+                ENDIF  !< create_csf
+
+                transparency = transparency * (1._wp - cursink)
+                
+            ENDDO
+        ENDIF
+        
+        visible = .TRUE.
+
+    END SUBROUTINE raytrace
+
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Determines whether two faces are oriented towards each other. Since the 
+!> surfaces follow the gird box surfaces, it checks first whether the two surfaces 
+!> are directed in the same direction, then it checks if the two surfaces are     
+!> located in confronted direction but facing away from each other, e.g. <--| |-->
+!------------------------------------------------------------------------------!
+    PURE LOGICAL FUNCTION surface_facing(x, y, z, d, x2, y2, z2, d2)
+        IMPLICIT NONE
+        INTEGER(iwp),   INTENT(in)  :: x, y, z, d, x2, y2, z2, d2
+      
+        surface_facing = .FALSE.
+
+!-- first check: are the two surfaces directed in the same direction
+        IF ( (d==iup_u  .OR.  d==iup_l  .OR.  d==iup_a )                             &
+             .AND. (d2==iup_u  .OR. d2==iup_l) ) RETURN
+        IF ( (d==isky  .OR.  d==idown_a)  .AND.  d2==isky ) RETURN
+        IF ( (d==isouth_u  .OR.  d==isouth_l  .OR.  d==isouth_a  .OR.  d==inorth_b ) &
+             .AND.  (d2==isouth_u  .OR.  d2==isouth_l  .OR.  d2==inorth_b) ) RETURN
+        IF ( (d==inorth_u  .OR.  d==inorth_l  .OR.  d==inorth_a  .OR.  d==isouth_b ) &
+             .AND.  (d2==inorth_u  .OR.  d2==inorth_l  .OR.  d2==isouth_b) ) RETURN
+        IF ( (d==iwest_u  .OR.  d==iwest_l  .OR.  d==iwest_a  .OR.  d==ieast_b )     &
+             .AND.  (d2==iwest_u  .OR.  d2==iwest_l  .OR.  d2==ieast_b ) ) RETURN
+        IF ( (d==ieast_u  .OR.  d==ieast_l  .OR.  d==ieast_a  .OR.  d==iwest_b )     &
+             .AND.  (d2==ieast_u  .OR.  d2==ieast_l  .OR.  d2==iwest_b ) ) RETURN
+
+!-- second check: are surfaces facing away from each other
+        SELECT CASE (d)
+            CASE (iup_u, iup_l, iup_a)                    !< upward facing surfaces
+                IF ( z2 < z ) RETURN
+            CASE (isky, idown_a)                          !< downward facing surfaces
+                IF ( z2 > z ) RETURN
+            CASE (isouth_u, isouth_l, isouth_a, inorth_b) !< southward facing surfaces
+                IF ( y2 > y ) RETURN
+            CASE (inorth_u, inorth_l, inorth_a, isouth_b) !< northward facing surfaces
+                IF ( y2 < y ) RETURN
+            CASE (iwest_u, iwest_l, iwest_a, ieast_b)     !< westward facing surfaces
+                IF ( x2 > x ) RETURN
+            CASE (ieast_u, ieast_l, ieast_a, iwest_b)     !< eastward facing surfaces
+                IF ( x2 < x ) RETURN
+        END SELECT
+
+        SELECT CASE (d2)
+            CASE (iup_u)                        !< ground, roof
+                IF ( z < z2 ) RETURN
+            CASE (isky)                         !< sky
+                IF ( z > z2 ) RETURN
+            CASE (isouth_u, isouth_l, inorth_b) !< south facing
+                IF ( y > y2 ) RETURN
+            CASE (inorth_u, inorth_l, isouth_b) !< north facing
+                IF ( y < y2 ) RETURN
+            CASE (iwest_u, iwest_l, ieast_b)    !< west facing
+                IF ( x > x2 ) RETURN
+            CASE (ieast_u, ieast_l, iwest_b)    !< east facing
+                IF ( x < x2 ) RETURN
+            CASE (-1)
+                CONTINUE
+        END SELECT
+
+        surface_facing = .TRUE.
+        
+    END FUNCTION surface_facing
+
+!------------------------------------------------------------------------------!
+!
+! Description:
+! ------------
+!> Soubroutine reads svf and svfsurf data from saved file
+!------------------------------------------------------------------------------!
+    SUBROUTINE radiation_read_svf
+
+        IMPLICIT NONE
+        INTEGER(iwp)                 :: fsvf = 89
+        INTEGER(iwp)                 :: i
+        CHARACTER(usm_version_len)   :: usm_version_field
+        CHARACTER(svf_code_len)      :: svf_code_field
+
+        DO  i = 0, io_blocks-1
+            IF ( i == io_group )  THEN
+                OPEN ( fsvf, FILE='SVFIN'//TRIM(coupling_char)//'/'//myid_char,&
+                    form='unformatted', status='old' )
+
+!--             read and check version
+                READ ( fsvf ) usm_version_field
+                IF ( TRIM(usm_version_field) /= TRIM(usm_version) )  THEN
+                    WRITE( message_string, * ) 'Version of binary SVF file "',           &
+                                            TRIM(usm_version_field), '" does not match ',            &
+                                            'the version of model "', TRIM(usm_version), '"'
+                    CALL message( 'radiation_read_svf', 'UI0012', 1, 2, 0, 6, 0 )
+                ENDIF
+                
+!--             read nsvfl, ncsfl
+                READ ( fsvf ) nsvfl, ncsfl
+                IF ( nsvfl <= 0  .OR.  ncsfl < 0 )  THEN
+                    WRITE( message_string, * ) 'Wrong number of SVF or CSF'
+                    CALL message( 'radiation_read_svf', 'UI0012', 1, 2, 0, 6, 0 )
+                ELSE
+                    WRITE(message_string,*) '    Number of SVF and CSF to read', nsvfl, ncsfl
+                    CALL location_message( message_string, .TRUE. )
+                ENDIF
+                
+                ALLOCATE(svf(ndsvf,nsvfl))
+                ALLOCATE(svfsurf(idsvf,nsvfl))
+                READ(fsvf) svf
+                READ(fsvf) svfsurf
+                IF ( plant_canopy )  THEN
+                    ALLOCATE(csf(ndcsf,ncsfl))
+                    ALLOCATE(csfsurf(idcsf,ncsfl))
+                    READ(fsvf) csf
+                    READ(fsvf) csfsurf
+                ENDIF
+                READ ( fsvf ) svf_code_field
+                
+                IF ( TRIM(svf_code_field) /= TRIM(svf_code) )  THEN
+                    WRITE( message_string, * ) 'Wrong structure of binary svf file'
+                    CALL message( 'radiation_read_svf', 'UI0012', 1, 2, 0, 6, 0 )
+                ENDIF
+                
+                CLOSE (fsvf)
+                
+            ENDIF
+#if defined( __parallel )
+            CALL MPI_BARRIER( comm2d, ierr )
+#endif
+        ENDDO
+
+    END SUBROUTINE radiation_read_svf
+
+
+!------------------------------------------------------------------------------!
+!
+! Description:
+! ------------
+!> Subroutine stores svf, svfsurf, csf and csfsurf data to a file.
+!------------------------------------------------------------------------------!
+    SUBROUTINE radiation_write_svf
+
+        IMPLICIT NONE
+        INTEGER(iwp)        :: fsvf = 89
+        INTEGER(iwp)        :: i
+
+        DO  i = 0, io_blocks-1
+            IF ( i == io_group )  THEN
+                OPEN ( fsvf, FILE='SVFOUT'//TRIM( coupling_char )//'/'//myid_char,   &
+                    form='unformatted', status='new' )
+
+                WRITE ( fsvf )  usm_version
+                WRITE ( fsvf )  nsvfl, ncsfl
+                WRITE ( fsvf )  svf
+                WRITE ( fsvf )  svfsurf
+                IF ( plant_canopy )  THEN
+                    WRITE ( fsvf )  csf
+                    WRITE ( fsvf )  csfsurf
+                ENDIF
+                WRITE ( fsvf )  TRIM(svf_code)
+                
+                CLOSE (fsvf)
+#if defined( __parallel )
+                CALL MPI_BARRIER( comm2d, ierr )
+#endif
+            ENDIF
+        ENDDO
+
+    END SUBROUTINE radiation_write_svf
+
+
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!
+!> radiation_radflux_gridbox subroutine gives the sw and lw radiation fluxes at the 
+!> faces of a gridbox defined at i,j,k and located in the urban layer.
+!> The total sw and the diffuse sw radiation as well as the lw radiation fluxes at
+!> the gridbox 6 faces are stored in sw_gridbox, swd_gridbox, and lw_gridbox arrays, 
+!> respectively, in the following order:
+!>  up_face, down_face, north_face, south_face, east_face, west_face
+!> 
+!> The subroutine reports also how successful was the search process via the parameter
+!> i_feedback as follow:
+!> - i_feedback =  1 : successful
+!> - i_feedback = -1 : unsuccessful; the requisted point is outside the urban domain
+!> - i_feedback =  0 : uncomplete; some gridbox faces fluxes are missing
+!> 
+!> 
+!> It is called outside from usm_urban_surface_mod whenever the radiation fluxes
+!> are needed.
+!>
+!> TODO:
+!>    - Compare performance when using some combination of the Fortran intrinsic 
+!>      functions, e.g. MINLOC, MAXLOC, ALL, ANY and COUNT functions, which search
+!>      surfl array for elements meeting user-specified criterion, i.e. i,j,k
+!>    - Report non-found or incomplete radiation fluxes arrays , if any, at the 
+!>      gridbox faces in an error message form
+!>
+!------------------------------------------------------------------------------!
+    SUBROUTINE radiation_radflux_gridbox(i,j,k,sw_gridbox,swd_gridbox,lw_gridbox,i_feedback)
+        
+        IMPLICIT NONE
+
+        INTEGER(iwp),                 INTENT(in)  :: i,j,k                 !< gridbox indices at which fluxes are required
+        INTEGER(iwp)                              :: ii,jj,kk,d            !< surface indices and type
+        INTEGER(iwp)                              :: l                     !< surface id
+        REAL(wp)    , DIMENSION(1:6), INTENT(out) :: sw_gridbox,lw_gridbox !< total sw and lw radiation fluxes of 6 faces of a gridbox, w/m2 
+        REAL(wp)    , DIMENSION(1:6), INTENT(out) :: swd_gridbox           !< diffuse sw radiation from sky and model boundary of 6 faces of a gridbox, w/m2
+        INTEGER(iwp),                 INTENT(out) :: i_feedback            !< feedback to report how the search was successful 
+
+
+!-- initialize variables
+        i_feedback  = -999999
+        sw_gridbox  = -999999.9_wp
+        lw_gridbox  = -999999.9_wp
+        swd_gridbox = -999999.9_wp
+        
+!-- check the requisted grid indices
+        IF ( k < nzb   .OR.  k > nzut  .OR.   &
+             j < nysg  .OR.  j > nyng  .OR.   &
+             i < nxlg  .OR.  i > nxrg         &
+             ) THEN
+           i_feedback = -1
+           RETURN
+        ENDIF
+
+!-- search for the required grid and formulate the fluxes at the 6 gridbox faces
+        DO l = 1, nsurfl
+            ii = surfl(ix,l)
+            jj = surfl(iy,l)
+            kk = surfl(iz,l)
+
+            IF ( ii == i  .AND.  jj == j  .AND.  kk == k ) THEN
+               d = surfl(id,l)
+
+               SELECT CASE ( d )
+
+               CASE (iup_u,iup_l,iup_a)                    !- gridbox up_facing face
+                  sw_gridbox(1) = surfinsw(l)
+                  lw_gridbox(1) = surfinlw(l)
+                  swd_gridbox(1) = surfinswdif(l)
+
+               CASE (isky,idown_a)                         !- gridbox down_facing face
+                  sw_gridbox(2) = surfinsw(l)
+                  lw_gridbox(2) = surfinlw(l)
+                  swd_gridbox(2) = surfinswdif(l)
+
+               CASE (inorth_u,inorth_l,inorth_a,isouth_b)  !- gridbox north_facing face
+                  sw_gridbox(3) = surfinsw(l)
+                  lw_gridbox(3) = surfinlw(l)
+                  swd_gridbox(3) = surfinswdif(l)
+
+               CASE (isouth_u,isouth_l,isouth_a,inorth_b)  !- gridbox south_facing face
+                  sw_gridbox(4) = surfinsw(l)
+                  lw_gridbox(4) = surfinlw(l)
+                  swd_gridbox(4) = surfinswdif(l)
+
+               CASE (ieast_u,ieast_l,ieast_a,iwest_b)      !- gridbox east_facing face
+                  sw_gridbox(5) = surfinsw(l)
+                  lw_gridbox(5) = surfinlw(l)
+                  swd_gridbox(5) = surfinswdif(l)
+
+               CASE (iwest_u,iwest_l,iwest_a,ieast_b)      !- gridbox west_facing face
+                  sw_gridbox(6) = surfinsw(l)
+                  lw_gridbox(6) = surfinlw(l)
+                  swd_gridbox(6) = surfinswdif(l)
+
+               END SELECT
+
+            ENDIF
+
+        IF ( ALL( sw_gridbox(:)  /= -999999.9_wp )  ) EXIT
+        ENDDO
+
+!-- check the completeness of the fluxes at all gidbox faces        
+!-- TODO: report non-found or incomplete rad fluxes arrays in an error message form
+        IF ( ANY( sw_gridbox(:)  <= -999999.9_wp )  .OR.   &
+             ANY( swd_gridbox(:) <= -999999.9_wp )  .OR.   &
+             ANY( lw_gridbox(:)  <= -999999.9_wp ) ) THEN
+           i_feedback = 0
+        ELSE
+           i_feedback = 1
+        ENDIF
+        
+        RETURN
+        
+    END SUBROUTINE radiation_radflux_gridbox
+
+
+!------------------------------------------------------------------------------!
+!
+! Description:
+! ------------
+!> Block of auxiliary subroutines:
+!> 1. quicksort and corresponding comparison
+!> 2. merge_and_grow_csf for implementation of "dynamical growing"
+!>    array for csf
+!------------------------------------------------------------------------------!    
+    PURE FUNCTION svf_lt(svf1,svf2) result (res)
+      TYPE (t_svf), INTENT(in) :: svf1,svf2
+      LOGICAL                  :: res
+      IF ( svf1%isurflt < svf2%isurflt  .OR.    &
+          (svf1%isurflt == svf2%isurflt  .AND.  svf1%isurfs < svf2%isurfs) )  THEN
+          res = .TRUE.
+      ELSE
+          res = .FALSE.
+      ENDIF
+    END FUNCTION svf_lt
+    
+ 
+!-- quicksort.f -*-f90-*-
+!-- Author: t-nissie, adaptation J.Resler
+!-- License: GPLv3
+!-- Gist: https://gist.github.com/t-nissie/479f0f16966925fa29ea
+    RECURSIVE SUBROUTINE quicksort_svf(svfl, first, last)
+        IMPLICIT NONE
+        TYPE(t_svf), DIMENSION(:), INTENT(INOUT)  :: svfl
+        INTEGER(iwp), INTENT(IN)                  :: first, last
+        TYPE(t_svf)                               :: x, t
+        INTEGER(iwp)                              :: i, j
+
+        IF ( first>=last ) RETURN
+        x = svfl( (first+last) / 2 )
+        i = first
+        j = last
+        DO
+            DO while ( svf_lt(svfl(i),x) )
+                i=i+1
+            ENDDO
+            DO while ( svf_lt(x,svfl(j)) )
+                j=j-1
+            ENDDO
+            IF ( i >= j ) EXIT
+            t = svfl(i);  svfl(i) = svfl(j);  svfl(j) = t
+            i=i+1
+            j=j-1
+        ENDDO
+        IF ( first < i-1 ) CALL quicksort_svf(svfl, first, i-1)
+        IF ( j+1 < last )  CALL quicksort_svf(svfl, j+1, last)
+    END SUBROUTINE quicksort_svf
+
+    
+    PURE FUNCTION csf_lt(csf1,csf2) result (res)
+      TYPE (t_csf), INTENT(in) :: csf1,csf2
+      LOGICAL                  :: res
+      IF ( csf1%ip < csf2%ip  .OR.    &
+           (csf1%ip == csf2%ip  .AND.  csf1%itx < csf2%itx)  .OR.  &
+           (csf1%ip == csf2%ip  .AND.  csf1%itx == csf2%itx  .AND.  csf1%ity < csf2%ity)  .OR.  &
+           (csf1%ip == csf2%ip  .AND.  csf1%itx == csf2%itx  .AND.  csf1%ity == csf2%ity  .AND.   &
+            csf1%itz < csf2%itz)  .OR.  &
+           (csf1%ip == csf2%ip  .AND.  csf1%itx == csf2%itx  .AND.  csf1%ity == csf2%ity  .AND.   &
+            csf1%itz == csf2%itz  .AND.  csf1%isurfs < csf2%isurfs) )  THEN
+          res = .TRUE.
+      ELSE
+          res = .FALSE.
+      ENDIF
+    END FUNCTION csf_lt
+
+
+!-- quicksort.f -*-f90-*-
+!-- Author: t-nissie, adaptation J.Resler
+!-- License: GPLv3
+!-- Gist: https://gist.github.com/t-nissie/479f0f16966925fa29ea
+    RECURSIVE SUBROUTINE quicksort_csf(csfl, first, last)
+        IMPLICIT NONE
+        TYPE(t_csf), DIMENSION(:), INTENT(INOUT)  :: csfl
+        INTEGER(iwp), INTENT(IN)                  :: first, last
+        TYPE(t_csf)                               :: x, t
+        INTEGER(iwp)                              :: i, j
+
+        IF ( first>=last ) RETURN
+        x = csfl( (first+last)/2 )
+        i = first
+        j = last
+        DO
+            DO while ( csf_lt(csfl(i),x) )
+                i=i+1
+            ENDDO
+            DO while ( csf_lt(x,csfl(j)) )
+                j=j-1
+            ENDDO
+            IF ( i >= j ) EXIT
+            t = csfl(i);  csfl(i) = csfl(j);  csfl(j) = t
+            i=i+1
+            j=j-1
+        ENDDO
+        IF ( first < i-1 ) CALL quicksort_csf(csfl, first, i-1)
+        IF ( j+1 < last )  CALL quicksort_csf(csfl, j+1, last)
+    END SUBROUTINE quicksort_csf
+
+    
+    SUBROUTINE merge_and_grow_csf(newsize)
+        INTEGER(iwp), INTENT(in)                :: newsize  !< new array size after grow, must be >= ncsfl
+                                                            !< or -1 to shrink to minimum
+        INTEGER(iwp)                            :: iread, iwrite
+        TYPE(t_csf), DIMENSION(:), POINTER      :: acsfnew
+
+        IF ( newsize == -1 )  THEN
+!--         merge in-place
+            acsfnew => acsf
+        ELSE
+!--         allocate new array
+            IF ( mcsf == 0 )  THEN
+                ALLOCATE( acsf1(newsize) )
+                acsfnew => acsf1
+            ELSE
+                ALLOCATE( acsf2(newsize) )
+                acsfnew => acsf2
+            ENDIF
+        ENDIF
+
+        IF ( ncsfl >= 1 )  THEN
+!--         sort csf in place (quicksort)
+            CALL quicksort_csf(acsf,1,ncsfl)
+
+!--         while moving to a new array, aggregate canopy sink factor records with identical box & source
+            acsfnew(1) = acsf(1)
+            iwrite = 1
+            DO iread = 2, ncsfl
+!--             here acsf(kcsf) already has values from acsf(icsf)
+                IF ( acsfnew(iwrite)%itx == acsf(iread)%itx &
+                         .AND.  acsfnew(iwrite)%ity == acsf(iread)%ity &
+                         .AND.  acsfnew(iwrite)%itz == acsf(iread)%itz &
+                         .AND.  acsfnew(iwrite)%isurfs == acsf(iread)%isurfs )  THEN
+!--                 We could simply take either first or second rtransp, both are valid. As a very simple heuristic about which ray
+!--                 probably passes nearer the center of the target box, we choose DIF from the entry with greater CSF, since that
+!--                 might mean that the traced beam passes longer through the canopy box.
+                    IF ( acsfnew(iwrite)%rsvf < acsf(iread)%rsvf )  THEN
+                        acsfnew(iwrite)%rtransp = acsf(iread)%rtransp
+                    ENDIF
+                    acsfnew(iwrite)%rsvf = acsfnew(iwrite)%rsvf + acsf(iread)%rsvf
+!--                 advance reading index, keep writing index
+                ELSE
+!--                 not identical, just advance and copy
+                    iwrite = iwrite + 1
+                    acsfnew(iwrite) = acsf(iread)
+                ENDIF
+            ENDDO
+            ncsfl = iwrite
+        ENDIF
+
+        IF ( newsize == -1 )  THEN
+!--         allocate new array and copy shrinked data
+            IF ( mcsf == 0 )  THEN
+                ALLOCATE( acsf1(ncsfl) )
+                acsf1(1:ncsfl) = acsf2(1:ncsfl)
+            ELSE
+                ALLOCATE( acsf2(ncsfl) )
+                acsf2(1:ncsfl) = acsf1(1:ncsfl)
+            ENDIF
+        ENDIF
+
+!--     deallocate old array
+        IF ( mcsf == 0 )  THEN
+            mcsf = 1
+            acsf => acsf1
+            DEALLOCATE( acsf2 )
+        ELSE
+            mcsf = 0
+            acsf => acsf2
+            DEALLOCATE( acsf1 )
+        ENDIF
+        ncsfla = newsize
+    END SUBROUTINE merge_and_grow_csf
+
+    
+!-- quicksort.f -*-f90-*-
+!-- Author: t-nissie, adaptation J.Resler
+!-- License: GPLv3
+!-- Gist: https://gist.github.com/t-nissie/479f0f16966925fa29ea
+    RECURSIVE SUBROUTINE quicksort_csf2(kpcsflt, pcsflt, first, last)
+        IMPLICIT NONE
+        INTEGER(iwp), DIMENSION(:,:), INTENT(INOUT)  :: kpcsflt
+        REAL(wp), DIMENSION(:,:), INTENT(INOUT)      :: pcsflt
+        INTEGER(iwp), INTENT(IN)                     :: first, last
+        REAL(wp), DIMENSION(ndcsf)                   :: t2
+        INTEGER(iwp), DIMENSION(kdcsf)               :: x, t1
+        INTEGER(iwp)                                 :: i, j
+
+        IF ( first>=last ) RETURN
+        x = kpcsflt(:, (first+last)/2 )
+        i = first
+        j = last
+        DO
+            DO while ( csf_lt2(kpcsflt(:,i),x) )
+                i=i+1
+            ENDDO
+            DO while ( csf_lt2(x,kpcsflt(:,j)) )
+                j=j-1
+            ENDDO
+            IF ( i >= j ) EXIT
+            t1 = kpcsflt(:,i);  kpcsflt(:,i) = kpcsflt(:,j);  kpcsflt(:,j) = t1
+            t2 = pcsflt(:,i);  pcsflt(:,i) = pcsflt(:,j);  pcsflt(:,j) = t2
+            i=i+1
+            j=j-1
+        ENDDO
+        IF ( first < i-1 ) CALL quicksort_csf2(kpcsflt, pcsflt, first, i-1)
+        IF ( j+1 < last )  CALL quicksort_csf2(kpcsflt, pcsflt, j+1, last)
+    END SUBROUTINE quicksort_csf2
+    
+
+    PURE FUNCTION csf_lt2(item1, item2) result(res)
+        INTEGER(iwp), DIMENSION(kdcsf), INTENT(in)  :: item1, item2
+        LOGICAL                                     :: res
+        res = ( (item1(3) < item2(3))                                                        &
+             .OR.  (item1(3) == item2(3)  .AND.  item1(2) < item2(2))                            &
+             .OR.  (item1(3) == item2(3)  .AND.  item1(2) == item2(2)  .AND.  item1(1) < item2(1)) &
+             .OR.  (item1(3) == item2(3)  .AND.  item1(2) == item2(2)  .AND.  item1(1) == item2(1) &
+                 .AND.  item1(4) < item2(4)) )
+    END FUNCTION csf_lt2
+
 !------------------------------------------------------------------------------!
 !
@@ -2501,4 +6996,5 @@
     INTEGER(iwp) ::  j !< 
     INTEGER(iwp) ::  k !< 
+    INTEGER(iwp) ::  m !< index of current surface element 
 
     IF ( mode == 'allocate' )  THEN
@@ -2570,7 +7066,16 @@
 
           CASE ( 'rad_net*' )
-             DO  i = nxlg, nxrg
-                DO  j = nysg, nyng
-                   rad_net_av(j,i) = rad_net_av(j,i) + rad_net(j,i)
+             DO  i = nxl, nxr
+                DO  j = nys, nyn
+                   DO m = surf_def_h(0)%start_index(j,i),                      &
+                          surf_def_h(0)%end_index(j,i)
+                      rad_net_av(j,i) = rad_net_av(j,i) + surf_def_h(0)%rad_net(m)
+                   ENDDO
+                   DO m = surf_lsm_h%start_index(j,i), surf_lsm_h%end_index(j,i)
+                      rad_net_av(j,i) = rad_net_av(j,i) + surf_lsm_h%rad_net(m)
+                   ENDDO
+                   DO m = surf_usm_h%start_index(j,i), surf_usm_h%end_index(j,i)
+                      rad_net_av(j,i) = rad_net_av(j,i) + surf_usm_h%rad_net(m)
+                   ENDDO
                 ENDDO
              ENDDO
@@ -2835,4 +7340,5 @@
     INTEGER(iwp) ::  j  !< 
     INTEGER(iwp) ::  k  !< 
+    INTEGER(iwp) ::  m  !< index of surface element at grid point (j,i)
 
     LOGICAL      ::  found !< 
@@ -2849,5 +7355,23 @@
              DO  i = nxl, nxr
                 DO  j = nys, nyn
-                   local_pf(i,j,nzb+1) = rad_net(j,i)
+!
+!--                Obtain rad_net from its respective surface type
+!--                Default-type surfaces
+                   DO  m = surf_def_h(0)%start_index(j,i),                     &
+                           surf_def_h(0)%end_index(j,i) 
+                      local_pf(i,j,nzb+1) = surf_def_h(0)%rad_net(m)
+                   ENDDO
+!
+!--                Natural-type surfaces
+                   DO  m = surf_lsm_h%start_index(j,i),                        &
+                           surf_lsm_h%end_index(j,i)  
+                      local_pf(i,j,nzb+1) = surf_lsm_h%rad_net(m)
+                   ENDDO
+!
+!--                Urban-type surfaces
+                   DO  m = surf_usm_h%start_index(j,i),                        &
+                           surf_usm_h%end_index(j,i)  
+                      local_pf(i,j,nzb+1) = surf_usm_h%rad_net(m)
+                   ENDDO
                 ENDDO
              ENDDO
@@ -3454,7 +7978,4 @@
 
     IF ( write_binary )  THEN
-       IF ( ALLOCATED( rad_net ) )  THEN
-          WRITE ( 14 )  'rad_net             ';  WRITE ( 14 )  rad_net  
-       ENDIF
        IF ( ALLOCATED( rad_net_av ) )  THEN
           WRITE ( 14 )  'rad_net_av          ';  WRITE ( 14 )  rad_net_av  
@@ -3472,8 +7993,4 @@
           WRITE ( 14 )  'rad_lw_out_av       ';  WRITE ( 14 )  rad_lw_out_av  
        ENDIF 
-       IF ( ALLOCATED( rad_lw_out_change_0 ) )  THEN
-          WRITE ( 14 )  'rad_lw_out_change_0 '
-          WRITE ( 14 )  rad_lw_out_change_0
-       ENDIF
        IF ( ALLOCATED( rad_lw_cs_hr ) )  THEN
           WRITE ( 14 )  'rad_lw_cs_hr        ';  WRITE ( 14 )  rad_lw_cs_hr
@@ -3594,12 +8111,4 @@
             SELECT CASE ( TRIM( field_char ) )
 
-                CASE ( 'rad_net' )
-                   IF ( .NOT. ALLOCATED( rad_net ) )  THEN
-                      ALLOCATE( rad_net(nysg:nyng,nxlg:nxrg) )
-                   ENDIF  
-                   IF ( k == 1 )  READ ( 13 )  tmp_2d
-                   rad_net(nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp)  =         &
-                                 tmp_2d(nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
-
                 CASE ( 'rad_net_av' )
                    IF ( .NOT. ALLOCATED( rad_net_av ) )  THEN
@@ -3697,12 +8206,4 @@
                    ENDIF
 
-                CASE ( 'rad_lw_out_change_0' )
-                   IF ( .NOT. ALLOCATED( rad_lw_out_change_0 ) )  THEN
-                      ALLOCATE( rad_lw_out_change_0(nysg:nyng,nxlg:nxrg) )
-                   ENDIF
-                   IF ( k == 1 )  READ ( 13 )  tmp_2d
-                   rad_lw_out_change_0(nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp)&
-                              = tmp_2d(nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
-
                 CASE ( 'rad_lw_cs_hr' )
                    IF ( .NOT. ALLOCATED( rad_lw_cs_hr ) )  THEN
Index: palm/trunk/SOURCE/random_function_mod.f90
===================================================================
--- palm/trunk/SOURCE/random_function_mod.f90	(revision 2693)
+++ palm/trunk/SOURCE/random_function_mod.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file random_function_mod.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/random_gauss.f90
===================================================================
--- palm/trunk/SOURCE/random_gauss.f90	(revision 2693)
+++ palm/trunk/SOURCE/random_gauss.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file random_gauss.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/random_generator_parallel_mod.f90
===================================================================
--- palm/trunk/SOURCE/random_generator_parallel_mod.f90	(revision 2693)
+++ palm/trunk/SOURCE/random_generator_parallel_mod.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file random_generator_parallel_mod.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
@@ -25,4 +25,7 @@
 ! -----------------
 ! $Id$
+! Formatting (MS)
+! 
+! 2255 2017-06-07 11:58:09Z knoop
 ! Implemented PALM specific error message handling
 ! 
@@ -158,22 +161,22 @@
       id_random_array  = 0
 
-!--       Asigning an ID to every vertical gridpoint column 
-!--       dependig on the ensemble run number.
-          DO i=nxl, nxr
-             DO j=nys, nyn
-                id_random_array(j,i) = j*(nx+1.0_wp) + i + 1.0_wp + 1E6 * &
-                                       ( ensemble_member_nr - 1000 )
-             ENDDO
-          ENDDO
-!--       Initializing with random_seed_parallel for every vertical 
-!--       gridpoint column.
-          random_dummy=0
-          DO i = nxl, nxr
-             DO j = nys, nyn
-                CALL random_seed_parallel (random_sequence=id_random_array(j, i))
-                CALL random_number_parallel (random_dummy)
-                CALL random_seed_parallel (get=seq_random_array(:, j, i))
-             ENDDO
-          ENDDO
+!--   Asigning an ID to every vertical gridpoint column 
+!--   dependig on the ensemble run number.
+      DO i=nxl, nxr
+         DO j=nys, nyn
+            id_random_array(j,i) = j*(nx+1.0_wp) + i + 1.0_wp + 1E6 * &
+                                   ( ensemble_member_nr - 1000 )
+         ENDDO
+      ENDDO
+!--   Initializing with random_seed_parallel for every vertical 
+!--   gridpoint column.
+      random_dummy=0
+      DO i = nxl, nxr
+         DO j = nys, nyn
+            CALL random_seed_parallel (random_sequence=id_random_array(j, i))
+            CALL random_number_parallel (random_dummy)
+            CALL random_seed_parallel (get=seq_random_array(:, j, i))
+         ENDDO
+      ENDDO
 
    END SUBROUTINE init_parallel_random_generator
Index: palm/trunk/SOURCE/read_3d_binary.f90
===================================================================
--- palm/trunk/SOURCE/read_3d_binary.f90	(revision 2693)
+++ palm/trunk/SOURCE/read_3d_binary.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file read_3d_binary.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
@@ -21,8 +21,13 @@
 ! -----------------
 ! 
-!
+! 
 ! Former revisions:
 ! -----------------
 ! $Id$
+! - kh_av, km_av (TG)
+! - Implementation of chemistry module (FK)
+! - Changes from trunk concerning random generator added (MS)
+! 
+! 2644 2017-11-27 09:27:09Z raasch
 ! further bugfix for r2636 (wrong datatype used for allocation)
 !
@@ -144,7 +149,12 @@
     USE averaging
 
+#if defined( __chem )
+    USE chemistry_model_mod,                                                   &
+        ONLY:  chem_read_restart_data, chem_species, nspec                                
+#endif
+
     USE control_parameters,                                                    &
-        ONLY:  iran, land_surface, message_string, outflow_l, outflow_n,       &
-               outflow_r, outflow_s, urban_surface
+        ONLY:  air_chemistry, iran, land_surface, message_string, outflow_l,   &
+               outflow_n, outflow_r, outflow_s, urban_surface
 
     USE cpulog,                                                                &
@@ -234,5 +244,5 @@
     REAL(wp) ::  rdummy
 
-    REAL(wp), DIMENSION(:,:), ALLOCATABLE     ::  tmp_2d      !< temporary array for storing 2D data
+    REAL(wp), DIMENSION(:,:),   ALLOCATABLE   ::  tmp_2d      !< temporary array for storing 2D data
     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE   ::  tmp_3d      !< temporary array for storing 3D data
     REAL(wp), DIMENSION(:,:,:), ALLOCATABLE   ::  tmp_3dwul   !<
@@ -360,5 +370,5 @@
 !--    First compare the version numbers
        READ ( 13 )  version_on_file
-       binary_version = '4.5'
+       binary_version = '4.6'
        IF ( TRIM( version_on_file ) /= TRIM( binary_version ) )  THEN
           WRITE( message_string, * ) 'version mismatch concerning data ',      &
@@ -460,7 +470,4 @@
              nync = nynfa(i,k) + offset_ya(i,k)
 
-             write(9,*) "f", nxlf, nxrf, nysf, nynf
-             write(9,*) "c", nxlc, nxrc, nysc, nync
-
 
 
@@ -489,8 +496,24 @@
                              tmp_3d(:,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
 
+                CASE ( 'kh_av' )
+                   IF ( .NOT. ALLOCATED( kh_av ) )  THEN
+                      ALLOCATE( kh_av(nzb:nzt+1,nysg:nyng,nxlg:nxrg ))
+                   ENDIF
+                   IF ( k == 1 )  READ ( 13 )  tmp_3d
+                   kh_av(:,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) = &
+                                tmp_3d(:,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
+
                 CASE ( 'km' )
                    IF ( k == 1 )  READ ( 13 )  tmp_3d
                    km(:,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) = &
                                tmp_3d(:,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
+
+                CASE ( 'km_av' )
+                   IF ( .NOT. ALLOCATED( km_av ) )  THEN
+                      ALLOCATE( km_av(nzb:nzt+1,nysg:nyng,nxlg:nxrg ))
+                   ENDIF
+                   IF ( k == 1 )  READ ( 13 )  tmp_3d
+                   km_av(:,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) = &
+                                tmp_3d(:,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
 
                 CASE ( 'lpt_av' )
@@ -703,5 +726,5 @@
                    IF ( k == 1 )  READ ( 13 )  random_iv
                    IF ( k == 1 )  READ ( 13 )  random_iy
-                   
+
                 CASE ( 'seq_random_array' )
                    ALLOCATE( tmp_2d_id_random(nys_on_file:nyn_on_file,         &
@@ -722,4 +745,5 @@
                                        tmp_2d_seq_random(:,nysf:nynf,nxlf:nxrf)
                    DEALLOCATE( tmp_2d_id_random, tmp_2d_seq_random )
+
                 CASE ( 'rho_ocean_av' )
                    IF ( .NOT. ALLOCATED( rho_ocean_av ) )  THEN
@@ -1054,4 +1078,13 @@
 
 !
+!--    Read urban surface restart data
+       IF ( urban_surface )  THEN
+          CALL usm_read_restart_data( i, nxlfa, nxl_on_file, nxrfa,            &
+                                      nxr_on_file, nynfa, nyn_on_file, nysfa,  &
+                                      nys_on_file, offset_xa, offset_ya,       &
+                                      overlap_count(i) )
+       ENDIF
+
+!
 !--    Read land surface restart data
        IF ( land_surface )  THEN
@@ -1061,13 +1094,4 @@
                                       overlap_count(i), tmp_2d )
 
-       ENDIF
-       
-!
-!--    Read land surface restart data
-       IF ( urban_surface )  THEN
-          CALL usm_read_restart_data( i, nxlfa, nxl_on_file, nxrfa,            &
-                                      nxr_on_file, nynfa, nyn_on_file, nysfa,  &
-                                      nys_on_file, offset_xa, offset_ya,       &
-                                      overlap_count(i) )
        ENDIF
 
@@ -1083,4 +1107,16 @@
 
 !
+!--    Read chemistry restart data
+#if defined( __chem )
+       IF ( air_chemistry )  THEN
+          CALL chem_read_restart_data( i, nxlfa, nxl_on_file, nxrfa,           &
+                                       nxr_on_file, nynfa, nyn_on_file,        &
+                                       nysfa, nys_on_file, offset_xa,          &
+                                       offset_ya, overlap_count(i),            &
+                                       tmp_2d, tmp_3d )
+       ENDIF
+#endif
+
+!
 !--    Read user-defined restart data
        CALL user_read_restart_data( i, nxlfa, nxl_on_file, nxrfa, nxr_on_file, &
Index: palm/trunk/SOURCE/read_var_list.f90
===================================================================
--- palm/trunk/SOURCE/read_var_list.f90	(revision 2693)
+++ palm/trunk/SOURCE/read_var_list.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file read_var_list.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
@@ -25,4 +25,7 @@
 ! -----------------
 ! $Id$
+! + rans_mode, turbulence_closure (TG)
+! 
+! 2576 2017-10-24 13:49:46Z Giersch
 ! *** end *** marks the end of the standard parameter list of restart files
 ! like it was before revision 2563. To skip also the variables of the modules  
@@ -283,5 +286,5 @@
 !-- Make version number check first
     READ ( 13 )  version_on_file
-    binary_version = '4.4'
+    binary_version = '4.5'
     IF ( TRIM( version_on_file ) /= TRIM( binary_version ) )  THEN
        WRITE( message_string, * ) 'version mismatch concerning control ', &
@@ -636,4 +639,6 @@
           CASE ( 'random_heatflux' )
              READ ( 13 )  random_heatflux
+          CASE ( 'rans_mode' )
+             READ ( 13 )  rans_mode
           CASE ( 'rayleigh_damping_factor' )
              READ ( 13 )  rayleigh_damping_factor
@@ -758,4 +763,6 @@
           CASE ( 'tunnel_wall_depth' )
              READ ( 13 )  tunnel_wall_depth
+          CASE ( 'turbulence_closure' )
+             READ ( 13 )  turbulence_closure
           CASE ( 'turbulent_inflow' )
              READ ( 13 )  turbulent_inflow
Index: palm/trunk/SOURCE/run_control.f90
===================================================================
--- palm/trunk/SOURCE/run_control.f90	(revision 2693)
+++ palm/trunk/SOURCE/run_control.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file run_control.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/set_slicer_attributes_dvrp.f90
===================================================================
--- palm/trunk/SOURCE/set_slicer_attributes_dvrp.f90	(revision 2693)
+++ palm/trunk/SOURCE/set_slicer_attributes_dvrp.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file set_slicer_attributes_dvrp.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/sor.f90
===================================================================
--- palm/trunk/SOURCE/sor.f90	(revision 2693)
+++ palm/trunk/SOURCE/sor.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file sor.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
@@ -25,4 +25,7 @@
 ! -----------------
 ! $Id$
+! - Large-scale forcing implemented (MS)
+! 
+! 2101 2017-01-05 16:42:31Z suehring
 !
 ! 2037 2016-10-26 11:15:40Z knoop
@@ -75,8 +78,9 @@
 
     USE control_parameters,                                                    &
-        ONLY:  bc_lr_cyc, bc_ns_cyc, ibc_p_b, ibc_p_t, inflow_l, inflow_n,     &
-               inflow_r, inflow_s, nest_bound_l, nest_bound_n, nest_bound_r,   &
-               nest_bound_s, n_sor, omega_sor, outflow_l, outflow_n,           &
-               outflow_r, outflow_s
+        ONLY:  bc_lr_cyc, bc_ns_cyc, force_bound_l, force_bound_n,             &
+               force_bound_r, force_bound_s, ibc_p_b, ibc_p_t, inflow_l,       &
+               inflow_n, inflow_r, inflow_s, nest_bound_l, nest_bound_n,       &
+               nest_bound_r, nest_bound_s, n_sor, omega_sor, outflow_l,        &
+               outflow_n, outflow_r, outflow_s
 
     IMPLICIT NONE
@@ -167,10 +171,14 @@
 !--    Horizontal (Neumann) boundary conditions in case of non-cyclic boundaries
        IF ( .NOT. bc_lr_cyc )  THEN
-          IF ( inflow_l .OR. outflow_l .OR. nest_bound_l )  p(:,:,nxl-1) = p(:,:,nxl)
-          IF ( inflow_r .OR. outflow_r .OR. nest_bound_r )  p(:,:,nxr+1) = p(:,:,nxr)
+          IF ( inflow_l      .OR.  outflow_l  .OR.                                 &
+               nest_bound_l  .OR.  force_bound_l )  p(:,:,nxl-1) = p(:,:,nxl)
+          IF ( inflow_r      .OR.  outflow_r  .OR.                                 &
+               nest_bound_r  .OR.  force_bound_r )  p(:,:,nxr+1) = p(:,:,nxr)
        ENDIF
        IF ( .NOT. bc_ns_cyc )  THEN
-          IF ( inflow_n .OR. outflow_n .OR. nest_bound_n )  p(:,nyn+1,:) = p(:,nyn,:)
-          IF ( inflow_s .OR. outflow_s .OR. nest_bound_s )  p(:,nys-1,:) = p(:,nys,:)
+          IF ( inflow_n      .OR.  outflow_n  .OR.                                 &
+               nest_bound_n  .OR.  force_bound_n )  p(:,nyn+1,:) = p(:,nyn,:)
+          IF ( inflow_s      .OR.  outflow_s  .OR.                                 &
+               nest_bound_s  .OR.  force_bound_s )  p(:,nys-1,:) = p(:,nys,:)
        ENDIF
 
@@ -229,10 +237,14 @@
 !--    Horizontal (Neumann) boundary conditions in case of non-cyclic boundaries
        IF ( .NOT. bc_lr_cyc )  THEN
-          IF ( inflow_l .OR. outflow_l .OR. nest_bound_l )  p(:,:,nxl-1) = p(:,:,nxl)
-          IF ( inflow_r .OR. outflow_r .OR. nest_bound_r )  p(:,:,nxr+1) = p(:,:,nxr)
+          IF ( inflow_l      .OR.  outflow_l  .OR.                             &
+               nest_bound_l  .OR.  force_bound_l )  p(:,:,nxl-1) = p(:,:,nxl)
+          IF ( inflow_r      .OR.  outflow_r  .OR.                             &
+               nest_bound_r  .OR.  force_bound_r )  p(:,:,nxr+1) = p(:,:,nxr)
        ENDIF
        IF ( .NOT. bc_ns_cyc )  THEN
-          IF ( inflow_n .OR. outflow_n .OR. nest_bound_n )  p(:,nyn+1,:) = p(:,nyn,:)
-          IF ( inflow_s .OR. outflow_s .OR. nest_bound_s )  p(:,nys-1,:) = p(:,nys,:)
+          IF ( inflow_n      .OR.  outflow_n  .OR.                             &
+               nest_bound_n  .OR.  force_bound_n )  p(:,nyn+1,:) = p(:,nyn,:)
+          IF ( inflow_s      .OR.  outflow_s  .OR.                             &
+               nest_bound_s  .OR.  force_bound_s )  p(:,nys-1,:) = p(:,nys,:)
        ENDIF
 
Index: palm/trunk/SOURCE/spectra_mod.f90
===================================================================
--- palm/trunk/SOURCE/spectra_mod.f90	(revision 2693)
+++ palm/trunk/SOURCE/spectra_mod.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file spectra_mod.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/subsidence_mod.f90
===================================================================
--- palm/trunk/SOURCE/subsidence_mod.f90	(revision 2693)
+++ palm/trunk/SOURCE/subsidence_mod.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file subsidence_mod.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/sum_up_3d_data.f90
===================================================================
--- palm/trunk/SOURCE/sum_up_3d_data.f90	(revision 2693)
+++ palm/trunk/SOURCE/sum_up_3d_data.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file sum_up_3d_data.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
@@ -25,4 +25,11 @@
 ! -----------------
 ! $Id$
+! - Implementation of uv exposure model (FK)
+! - output of diss_av, kh_av, km_av (turbulence_closure_mod) (TG)
+! - Implementation of chemistry module (FK)
+! - Workaround for sum-up usm arrays in case of restart runs, to avoid program 
+!   crash (MS)
+! 
+! 2292 2017-06-20 09:51:42Z schwenkel
 ! Implementation of new microphysic scheme: cloud_scheme = 'morrison' 
 ! includes two more prognostic equations for cloud drop concentration (nc)  
@@ -144,9 +151,13 @@
 
     USE averaging,                                                             &
-        ONLY:  e_av, lpt_av, lwp_av, nc_av, nr_av, ol_av, p_av, pc_av, pr_av,  &
-               prr_av, precipitation_rate_av, pt_av, q_av, qc_av, ql_av,       &
-               ql_c_av, ql_v_av, ql_vp_av, qr_av, qsws_av, qv_av, rho_ocean_av,&
-               s_av, sa_av, shf_av, ssws_av, ts_av, u_av, us_av, v_av, vpt_av, &
-               w_av, z0_av, z0h_av, z0q_av
+        ONLY:  diss_av, e_av, kh_av, km_av, lpt_av, lwp_av, nc_av, nr_av,      &
+               ol_av, p_av, pc_av, pr_av, prr_av, precipitation_rate_av, pt_av,&
+               q_av, qc_av, ql_av, ql_c_av, ql_v_av, ql_vp_av, qr_av, qsws_av, &
+               qv_av, rho_ocean_av, s_av, sa_av, shf_av, ssws_av, ts_av, u_av, &
+               us_av, v_av, vpt_av, w_av, z0_av, z0h_av, z0q_av
+#if defined( __chem )
+    USE chemistry_model_mod,                                                   &
+        ONLY:  chem_3d_data_averaging, chem_integrate, chem_species, nspec                                   
+#endif
 
     USE cloud_parameters,                                                      &
@@ -154,6 +165,7 @@
 
     USE control_parameters,                                                    &
-        ONLY:  average_count_3d, cloud_physics, doav, doav_n, land_surface,    &
-               rho_surface, urban_surface, varnamelength
+        ONLY:  air_chemistry, average_count_3d, cloud_physics, doav, doav_n,   &
+               land_surface, rho_surface, urban_surface, uv_exposure,          &
+               varnamelength
 
     USE cpulog,                                                                &
@@ -177,6 +189,12 @@
         ONLY:  surf_def_h, surf_lsm_h, surf_usm_h
 
+    USE turbulence_closure_mod,                                                &
+        ONLY:  tcm_3d_data_averaging
+
     USE urban_surface_mod,                                                     &
         ONLY:  usm_average_3d_data
+
+    USE uv_exposure_model_mod,                                                &
+        ONLY:  uvem_3d_data_averaging
 
 
@@ -436,4 +454,8 @@
 
 !
+!--             Turbulence closure module
+                CALL tcm_3d_data_averaging( 'allocate', doav(ii) )
+
+!
 !--             Land surface quantity
                 IF ( land_surface )  THEN
@@ -445,4 +467,18 @@
                 IF ( radiation )  THEN
                    CALL radiation_3d_data_averaging( 'allocate', doav(ii) )
+                ENDIF
+
+!
+!--             Chemical quantity                                           
+#if defined( __chem )                
+                IF ( air_chemistry  .AND.  trimvar(1:3) == 'kc_')  THEN
+                   CALL chem_3d_data_averaging( 'allocate', doav(ii) )
+                ENDIF
+#endif
+
+!
+!--             UV exposure quantity
+                IF ( uv_exposure  .AND.  trimvar(1:5) == 'uvem_')  THEN
+                   CALL uvem_3d_data_averaging( 'allocate', doav(ii) )
                 ENDIF
 
@@ -889,9 +925,17 @@
              ENDDO
 !             
-!--       Block of urban surface model outputs 
+!--       Block of urban surface model outputs. 
+!--       In case of urban surface variables it should be always checked
+!--       if respective arrays are allocated, at least in case of a restart 
+!--       run, as usm arrays are not read from file at the moment. 
           CASE ( 'usm_output' )
+             CALL usm_average_3d_data( 'allocate', doav(ii) )
              CALL usm_average_3d_data( 'sum', doav(ii) )
 
           CASE DEFAULT
+!
+!--          Turbulence closure module
+             CALL tcm_3d_data_averaging( 'sum', doav(ii) )
+
 !
 !--          Land surface quantity
@@ -907,4 +951,18 @@
 
 !
+!--          Chemical quantity
+#if defined( __chem )                
+             IF ( air_chemistry  .AND.  trimvar(1:3) == 'kc_')  THEN
+                CALL chem_3d_data_averaging( 'sum',doav(ii) )
+             ENDIF
+#endif
+
+!
+!--          UV exposure quantity
+             IF ( uv_exposure )  THEN
+                CALL uvem_3d_data_averaging( 'sum', doav(ii) )
+             ENDIF
+
+!
 !--          User-defined quantity
              CALL user_3d_data_averaging( 'sum', doav(ii) )
Index: palm/trunk/SOURCE/surface_coupler.f90
===================================================================
--- palm/trunk/SOURCE/surface_coupler.f90	(revision 2693)
+++ palm/trunk/SOURCE/surface_coupler.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file surface_coupler.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/surface_layer_fluxes_mod.f90
===================================================================
--- palm/trunk/SOURCE/surface_layer_fluxes_mod.f90	(revision 2693)
+++ palm/trunk/SOURCE/surface_layer_fluxes_mod.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file surface_layer_fluxes_mod.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
@@ -18,4 +18,5 @@
 !
 !------------------------------------------------------------------------------!
+!
 ! Current revisions:
 ! ------------------
@@ -25,4 +26,10 @@
 ! -----------------
 ! $Id$
+! - Implementation of chemistry module (FK)
+! - Added calculation of pt1 and qv1 for all surface types. Added calculation of
+!   pt_surface for default-type surfaces (BM)
+! - Add flag to disable computation of qsws in case of urban surface (MS)
+! 
+! 2547 2017-10-16 12:41:56Z schwenkel
 ! extended by cloud_droplets option
 ! 
@@ -188,4 +195,5 @@
 !> @todo (re)move large_scale_forcing actions
 !> @todo check/optimize OpenMP directives
+!> @todo simplify if conditions (which flux need to be computed in which case)
 !------------------------------------------------------------------------------!
  MODULE surface_layer_fluxes_mod
@@ -195,4 +203,9 @@
                drho_air_zw, rho_air_zw
 
+#if defined( __chem )
+    USE chem_modules,                                                          &
+        ONLY:  constant_csflux, nvar
+#endif
+
     USE cloud_parameters,                                                      &
         ONLY:  l_d_cp, pt_d_t
@@ -204,7 +217,8 @@
 
     USE control_parameters,                                                    &
-        ONLY:  cloud_droplets, cloud_physics, constant_heatflux,               &
-               constant_scalarflux, constant_waterflux, coupling_mode, g,      &
-               humidity, ibc_e_b, ibc_pt_b, initializing_actions, kappa,       &
+        ONLY:  air_chemistry, cloud_droplets, cloud_physics,                   &
+               constant_heatflux, constant_scalarflux,                         &     
+               constant_waterflux, coupling_mode, g, humidity, ibc_e_b,        &
+               ibc_pt_b, initializing_actions, kappa,                          &
                intermediate_timestep_count, intermediate_timestep_count_max,   &
                land_surface, large_scale_forcing, lsf_surf,                    &
@@ -291,30 +305,45 @@
        downward      = .FALSE.
 !
-!--    In case cloud physics is used, it is required to derive potential
-!--    temperature and specific humidity at first grid level from the fields pt 
-!--    and q
-       IF ( cloud_physics  .OR.  cloud_droplets )  THEN
-!
-!--       First call for horizontal default-type surfaces (l=0 - upward facing, 
-!--       l=1 - downward facing)
-          DO  l = 0, 1
-             IF ( surf_def_h(l)%ns >= 1  )  THEN
-                surf => surf_def_h(l)
-                CALL calc_pt_q
-             ENDIF
-          ENDDO
-!
-!--       Call for natural-type surfaces
-          IF ( surf_lsm_h%ns >= 1  )  THEN
-             surf => surf_lsm_h
+!--    Derive potential temperature and specific humidity at first grid level 
+!--    from the fields pt and q
+!
+!--    First call for horizontal default-type surfaces (l=0 - upward facing, 
+!--    l=1 - downward facing)
+       DO  l = 0, 1
+          IF ( surf_def_h(l)%ns >= 1  )  THEN
+             surf => surf_def_h(l)
              CALL calc_pt_q
-          ENDIF
-!
-!--       Call for urban-type surfaces
-          IF ( surf_usm_h%ns >= 1  )  THEN
-             surf => surf_usm_h
+             IF ( .NOT. neutral )  CALL calc_pt_surface
+          ENDIF
+       ENDDO
+!
+!--    Call for natural-type horizontal surfaces
+       IF ( surf_lsm_h%ns >= 1  )  THEN
+          surf => surf_lsm_h
+          CALL calc_pt_q
+       ENDIF
+
+!
+!--    Call for urban-type horizontal surfaces
+       IF ( surf_usm_h%ns >= 1  )  THEN
+          surf => surf_usm_h
+          CALL calc_pt_q
+       ENDIF
+
+!
+!--    Call for natural-type vertical surfaces
+       DO  l = 0, 3
+          IF ( surf_lsm_v(l)%ns >= 1  )  THEN
+             surf => surf_lsm_v(l)
              CALL calc_pt_q
           ENDIF
-       ENDIF
+
+!
+!--    Call for urban-type vertical surfaces
+          IF ( surf_usm_v(l)%ns >= 1  )  THEN
+             surf => surf_usm_v(l)
+             CALL calc_pt_q
+          ENDIF
+       ENDDO
 
 !
@@ -923,5 +952,4 @@
 !--       However, this do not apply for downward-facing walls. To mask this, 
 !--       use ibit, which checks for upward/downward-facing surfaces. 
-
           surf%uvw_abs(m) = SQRT(                                              &
                               ( 0.5_wp * (   u(k,j,i)   + u(k,j,i+1)           &
@@ -1538,4 +1566,11 @@
              surf%pt1(m) = pt(k,j,i) + l_d_cp * pt_d_t(k) * ql(k,j,i)
              surf%qv1(m) = q(k,j,i) 
+          ELSE
+             surf%pt1(m) = pt(k,j,i)
+             IF ( humidity )  THEN
+                surf%qv1(m) = q(k,j,i)
+             ELSE
+                surf%qv1(m) = 0.0_wp
+             ENDIF
           ENDIF 
 
@@ -1543,4 +1578,29 @@
 
     END SUBROUTINE calc_pt_q
+
+
+!
+!-- Calculate potential temperature and specific humidity at first grid level
+!-- ( only for upward-facing surfs )
+    SUBROUTINE calc_pt_surface
+
+       IMPLICIT NONE
+
+       INTEGER(iwp) ::  koff    !< index offset between surface and atmosphere grid point (-1 for upward-, +1 for downward-facing walls) 
+       INTEGER(iwp) ::  m       !< loop variable over all horizontal surf elements 
+       
+       koff = surf%koff
+       !$OMP PARALLEL DO PRIVATE( i, j, k )
+       DO  m = 1, surf%ns 
+
+          i   = surf%i(m)            
+          j   = surf%j(m)
+          k   = surf%k(m)
+
+          surf%pt_surface(m) = pt(k+koff,j,i)
+
+       ENDDO
+
+    END SUBROUTINE calc_pt_surface
 
 !
@@ -1552,5 +1612,5 @@
 
        INTEGER(iwp)  ::  m       !< loop variable over all horizontal surf elements 
-
+       INTEGER(iwp)  ::  lsp     !< running index for chemical species
 ! 
 !--    Compute theta* at horizontal surfaces
@@ -1592,36 +1652,16 @@
           ENDIF
 
-          IF ( cloud_physics  .OR.  cloud_droplets )  THEN
-             !$OMP PARALLEL DO PRIVATE( i, j, k, z_mo )
-             DO  m = 1, surf%ns   
-
-                i   = surf%i(m)            
-                j   = surf%j(m)
-                k   = surf%k(m)
-
-                z_mo = surf%z_mo(m)
-
-                surf%ts(m) = kappa * ( surf%pt1(m) - pt(k-1,j,i) )             &
-                                     / ( LOG( z_mo / surf%z0h(m) )             &
-                                         - psi_h( z_mo / surf%ol(m) )          &
-                                         + psi_h( surf%z0h(m) / surf%ol(m) ) )
-
-             ENDDO
-          ELSE
-             !$OMP PARALLEL DO PRIVATE( i, j, k, z_mo )
-             DO  m = 1, surf%ns   
-
-                i   = surf%i(m)            
-                j   = surf%j(m)
-                k   = surf%k(m)
-
-                z_mo = surf%z_mo(m)
-
-                surf%ts(m) = kappa * ( pt(k,j,i) - pt(k-1,j,i) )               &
-                                     / ( LOG( z_mo / surf%z0h(m) )             &
-                                         - psi_h( z_mo / surf%ol(m) )          &
-                                         + psi_h( surf%z0h(m) / surf%ol(m) ) )
-             ENDDO
-          ENDIF
+          !$OMP PARALLEL DO PRIVATE( z_mo )
+          DO  m = 1, surf%ns   
+
+             z_mo = surf%z_mo(m)
+
+             surf%ts(m) = kappa * ( surf%pt1(m) - surf%pt_surface(m) )      &
+                                  / ( LOG( z_mo / surf%z0h(m) )             &
+                                      - psi_h( z_mo / surf%ol(m) )          &
+                                      + psi_h( surf%z0h(m) / surf%ol(m) ) )
+
+          ENDDO
+
        ENDIF
 ! 
@@ -1769,4 +1809,36 @@
 
 !
+!--    If required compute cs* (chemical species)
+#if defined( __chem )
+       IF ( air_chemistry  )  THEN  
+!
+!--       At horizontal surfaces                             
+          DO  lsp = 1, nvar
+             IF ( constant_csflux(lsp)  .AND.  .NOT.  surf_vertical )  THEN
+!--             For a given chemical species' flux in the surface layer
+                !$OMP PARALLEL DO PRIVATE( i, j )
+                DO  m = 1, surf%ns  
+                   i   = surf%i(m)            
+                   j   = surf%j(m)
+                   surf%css(lsp,m) = -surf%cssws(lsp,m) / ( surf%us(m) + 1E-30_wp )
+                ENDDO
+             ENDIF
+          ENDDO
+!
+!--       At vertical surfaces
+          IF ( surf_vertical )  THEN
+             DO  lsp = 1, nvar
+                !$OMP PARALLEL DO PRIVATE( i, j )
+                DO  m = 1, surf%ns  
+                   i   = surf%i(m)            
+                   j   = surf%j(m)
+                   surf%css(lsp,m) = -surf%cssws(lsp,m) / ( surf%us(m) + 1E-30_wp )
+                ENDDO
+             ENDDO
+          ENDIF
+       ENDIF
+#endif
+
+!
 !--    If required compute qc* and nc*
        IF ( cloud_physics  .AND.  microphysics_morrison  .AND.                 &
@@ -1830,5 +1902,6 @@
        IMPLICIT NONE
 
-       INTEGER(iwp)  ::  m       !< loop variable over all horizontal surf elements 
+       INTEGER(iwp)  ::  m       !< loop variable over all horizontal surf elements
+       INTEGER(iwp)  ::  lsp     !< running index for chemical species
 
        REAL(wp)                            ::  dum     !< dummy to precalculate logarithm
@@ -1883,6 +1956,4 @@
 
                 surf%usws(m) = kappa * u(k,j,i) / LOG( z_mo / surf%z0(m) )
-!
-!--        To Do: Is the sign correct???
                 surf%usws(m) = surf%usws(m) * surf%us(m) * rho_air_zw(k)
 
@@ -1929,5 +2000,4 @@
 
                 surf%vsws(m) = kappa * v(k,j,i) / LOG( z_mo / surf%z0(m) )
- 
                 surf%vsws(m) = surf%vsws(m) * surf%us(m) * rho_air_zw(k)
              ENDDO
@@ -1937,5 +2007,5 @@
           IF (  .NOT.  constant_heatflux  .AND.  ( ( time_since_reference_point&
                <=  skip_time_do_lsm  .AND. simulated_time > 0.0_wp ) .OR.      &
-               .NOT.  land_surface )  .AND.  .NOT.  urban_surface  .AND.       &
+               .NOT.  land_surface )  .AND.  .NOT. urban_surface  .AND.        &
                .NOT. downward )  THEN
              !$OMP PARALLEL DO PRIVATE( i, j, k )
@@ -1951,6 +2021,6 @@
           IF (  .NOT.  constant_waterflux  .AND.  humidity  .AND.              &
                ( ( time_since_reference_point <= skip_time_do_lsm  .AND.       &
-               simulated_time > 0.0_wp ) .OR.  .NOT.  land_surface )  .AND.    &
-               .NOT. downward )  THEN
+               simulated_time > 0.0_wp ) .OR.  .NOT.  land_surface  )  .AND.   &
+               .NOT.  urban_surface  .AND.  .NOT. downward )  THEN
              !$OMP PARALLEL DO PRIVATE( i, j, k )
              DO  m = 1, surf%ns 
@@ -1974,4 +2044,20 @@
              ENDDO
           ENDIF   
+!
+!--       Compute the vertical chemical species' flux
+#if defined( __chem )
+          DO  lsp = 1, nvar
+             IF (  .NOT.  constant_csflux(lsp)  .AND.  air_chemistry  .AND.    &
+                   .NOT.  downward )  THEN
+                !$OMP PARALLEL DO PRIVATE( i, j )
+                DO  m = 1, surf%ns   
+                   i     = surf%i(m)            
+                   j     = surf%j(m)
+                   surf%cssws(lsp,m) = -surf%css(lsp,m) * surf%us(m)
+                ENDDO
+             ENDIF   
+          ENDDO
+#endif
+
 !
 !--       Compute (turbulent) fluxes of cloud water content and cloud drop conc.
Index: palm/trunk/SOURCE/surface_mod.f90
===================================================================
--- palm/trunk/SOURCE/surface_mod.f90	(revision 2693)
+++ palm/trunk/SOURCE/surface_mod.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file surface_mod.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
@@ -26,4 +26,16 @@
 ! -----------------
 ! $Id$
+! - Missing code for css added to surf_*, handling of surface_csflux updated (FK)
+! - Bugfixes in reading/writing restart data in case several surface types are 
+!   present at the same time (MS)
+! - Implementation of chemistry module (FK)
+! - Allocation of pt1 and qv1 now done for all surface types (MS)
+! - Revised classification of surface types
+! - Introduce offset values to simplify index determination of surface elements
+! - Dimensions of function get_topo_top_index (MS)
+! - added variables for USM 
+! - adapted to changes in USM (RvT)
+! 
+! 2688 2017-12-12 17:27:04Z Giersch
 ! Allocation and initialization of the latent heat flux (qsws) at the top of 
 ! the ocean domain in case of coupled runs. In addtion, a double if-query has 
@@ -84,4 +96,8 @@
 !> In addition, a further derived data structure is defined, in order to set
 !> boundary conditions at surfaces.  
+!> @todo For the moment, downward-facing surfaces are only classified as  
+!>        default type 
+!> @todo Clean up urban-surface variables (some of them are not used any more) 
+!> @todo Revise chemistry surface flux part (reduce loops?!) 
 !------------------------------------------------------------------------------!
  MODULE surface_mod
@@ -91,4 +107,8 @@
                momentumflux_input_conversion
 
+#if defined( __chem )
+    USE chem_modules
+#endif
+
     USE control_parameters               
 
@@ -126,5 +146,9 @@
     TYPE surf_type
 
+       INTEGER(iwp) :: ioff                                !< offset value in x-direction, used to determine index of surface element
+       INTEGER(iwp) :: joff                                !< offset value in y-direction, used to determine index of surface element
+       INTEGER(iwp) :: koff                                !< offset value in z-direction, used to determine index of surface element
        INTEGER(iwp) :: ns                                  !< number of surface elements on the PE
+
        INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::  i       !< x-index linking to the PALM 3D-grid  
        INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::  j       !< y-index linking to the PALM 3D-grid    
@@ -154,6 +178,7 @@
        REAL(wp), DIMENSION(:), ALLOCATABLE ::  z0q       !< roughness length for humidity
 
-       REAL(wp), DIMENSION(:), ALLOCATABLE ::  pt1       !< Specific humidity at first grid level (required for cloud_physics = .T. or cloud_droplets = .T.)
-       REAL(wp), DIMENSION(:), ALLOCATABLE ::  qv1       !< Potential temperature at first grid level (required for cloud_physics = .T. or cloud_droplets = .T.)
+       REAL(wp), DIMENSION(:), ALLOCATABLE ::  pt1       !< Potential temperature at first grid level
+       REAL(wp), DIMENSION(:), ALLOCATABLE ::  qv1       !< Specific humidity at first grid level
+       REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  css     !< scaling parameter chemical species
 !
 !--    Define arrays for surface fluxes
@@ -169,4 +194,6 @@
        REAL(wp), DIMENSION(:), ALLOCATABLE ::  nrsws     !< surface flux nr
        REAL(wp), DIMENSION(:), ALLOCATABLE ::  sasws     !< surface flux salinity
+       
+       REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  cssws   !< surface flux chemical species
 !
 !--    Required for horizontal walls in production_e
@@ -179,25 +206,52 @@
 !
 !--    Variables required for LSM as well as for USM
-       REAL(wp), DIMENSION(:), ALLOCATABLE   ::  pt_surface        !< skin-surface temperature
-       REAL(wp), DIMENSION(:), ALLOCATABLE   ::  rad_net_l         !< net radiation 
-       REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  lambda_h          !< heat conductivity of soil (W/m/K) 
-       REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  lambda_h_def      !< default heat conductivity of soil (W/m/K)   
-       
+       INTEGER(iwp), DIMENSION(:), ALLOCATABLE   ::  nzt_pavement  !< top index for pavement in soil
+       INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE ::  albedo_type   !< albedo type, for each fraction (wall,green,window or vegetation,pavement water)
+
        LOGICAL, DIMENSION(:), ALLOCATABLE  ::  building_surface    !< flag parameter indicating that the surface element is covered by buildings (no LSM actions, not implemented yet)
+       LOGICAL, DIMENSION(:), ALLOCATABLE  ::  building_covered    !< flag indicating that buildings are on top of orography, only used for vertical surfaces in LSM
        LOGICAL, DIMENSION(:), ALLOCATABLE  ::  pavement_surface    !< flag parameter for pavements
        LOGICAL, DIMENSION(:), ALLOCATABLE  ::  water_surface       !< flag parameter for water surfaces
-       LOGICAL, DIMENSION(:), ALLOCATABLE  ::  vegetation_surface     !< flag parameter for natural land surfaces
+       LOGICAL, DIMENSION(:), ALLOCATABLE  ::  vegetation_surface  !< flag parameter for natural land surfaces
+
+       REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  albedo            !< broadband albedo for each surface fraction (LSM: vegetation, water, pavement; USM: wall, green, window)
+       REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  emissivity        !< emissivity of the surface, for each fraction  (LSM: vegetation, water, pavement; USM: wall, green, window)
+       REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  frac              !< relative surface fraction (LSM: vegetation, water, pavement; USM: wall, green, window)
+
+       REAL(wp), DIMENSION(:), ALLOCATABLE   ::  aldif             !< albedo for longwave diffusive radiation, solar angle of 60Â°
+       REAL(wp), DIMENSION(:), ALLOCATABLE   ::  aldir             !< albedo for longwave direct radiation, solar angle of 60Â°
+       REAL(wp), DIMENSION(:), ALLOCATABLE   ::  asdif             !< albedo for shortwave diffusive radiation, solar angle of 60Â°
+       REAL(wp), DIMENSION(:), ALLOCATABLE   ::  asdir             !< albedo for shortwave direct radiation, solar angle of 60Â°
+       REAL(wp), DIMENSION(:), ALLOCATABLE   ::  rrtm_aldif        !< albedo for longwave diffusive radiation, solar angle of 60Â°
+       REAL(wp), DIMENSION(:), ALLOCATABLE   ::  rrtm_aldir        !< albedo for longwave direct radiation, solar angle of 60Â°
+       REAL(wp), DIMENSION(:), ALLOCATABLE   ::  rrtm_asdif        !< albedo for shortwave diffusive radiation, solar angle of 60Â°
+       REAL(wp), DIMENSION(:), ALLOCATABLE   ::  rrtm_asdir        !< albedo for shortwave direct radiation, solar angle of 60Â°
+
+       REAL(wp), DIMENSION(:), ALLOCATABLE   ::  pt_surface        !< skin-surface temperature
+       REAL(wp), DIMENSION(:), ALLOCATABLE   ::  rad_net           !< net radiation 
+       REAL(wp), DIMENSION(:), ALLOCATABLE   ::  rad_net_l         !< net radiation, used in USM
+       REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  lambda_h          !< heat conductivity of soil/ wall (W/m/K) 
+       REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  lambda_h_green    !< heat conductivity of green soil (W/m/K) 
+       REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  lambda_h_window   !< heat conductivity of windows (W/m/K) 
+       REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  lambda_h_def      !< default heat conductivity of soil (W/m/K)   
+
+       REAL(wp), DIMENSION(:), ALLOCATABLE ::  rad_lw_in           !< incoming longwave radiation
+       REAL(wp), DIMENSION(:), ALLOCATABLE ::  rad_lw_out          !< emitted longwave radiation
+       REAL(wp), DIMENSION(:), ALLOCATABLE ::  rad_sw_in           !< incoming shortwave radiation
+       REAL(wp), DIMENSION(:), ALLOCATABLE ::  rad_sw_out          !< emitted shortwave radiation
+       
+
 
        REAL(wp), DIMENSION(:), ALLOCATABLE ::  c_liq               !< liquid water coverage (of vegetated area)
        REAL(wp), DIMENSION(:), ALLOCATABLE ::  c_veg               !< vegetation coverage
        REAL(wp), DIMENSION(:), ALLOCATABLE ::  f_sw_in             !< fraction of absorbed shortwave radiation by the surface layer (not implemented yet)
-       REAL(wp), DIMENSION(:), ALLOCATABLE ::  ghf              !< ground heat flux
+       REAL(wp), DIMENSION(:), ALLOCATABLE ::  ghf                 !< ground heat flux
        REAL(wp), DIMENSION(:), ALLOCATABLE ::  g_d                 !< coefficient for dependence of r_canopy on water vapour pressure deficit
        REAL(wp), DIMENSION(:), ALLOCATABLE ::  lai                 !< leaf area index
        REAL(wp), DIMENSION(:), ALLOCATABLE ::  lambda_surface_u    !< coupling between surface and soil (depends on vegetation type) (W/m2/K)
        REAL(wp), DIMENSION(:), ALLOCATABLE ::  lambda_surface_s    !< coupling between surface and soil (depends on vegetation type) (W/m2/K)
-       REAL(wp), DIMENSION(:), ALLOCATABLE ::  qsws_liq         !< surface flux of latent heat (liquid water portion)
-       REAL(wp), DIMENSION(:), ALLOCATABLE ::  qsws_soil        !< surface flux of latent heat (soil portion)
-       REAL(wp), DIMENSION(:), ALLOCATABLE ::  qsws_veg         !< surface flux of latent heat (vegetation portion)
+       REAL(wp), DIMENSION(:), ALLOCATABLE ::  qsws_liq            !< surface flux of latent heat (liquid water portion)
+       REAL(wp), DIMENSION(:), ALLOCATABLE ::  qsws_soil           !< surface flux of latent heat (soil portion)
+       REAL(wp), DIMENSION(:), ALLOCATABLE ::  qsws_veg            !< surface flux of latent heat (vegetation portion)
        REAL(wp), DIMENSION(:), ALLOCATABLE ::  r_a                 !< aerodynamic resistance 
        REAL(wp), DIMENSION(:), ALLOCATABLE ::  r_canopy            !< canopy resistance
@@ -224,12 +278,20 @@
        INTEGER(iwp), DIMENSION(:), ALLOCATABLE ::  surface_types   !< array of types of wall parameters
 
-       LOGICAL, DIMENSION(:), ALLOCATABLE  ::  isroof_surf         !< flag indication roof surfaces
-
-       REAL(wp), DIMENSION(:), ALLOCATABLE ::  albedo_surf         !< albedo of the surface
+       LOGICAL, DIMENSION(:), ALLOCATABLE  ::  isroof_surf          !< flag indicating roof surfaces
+       LOGICAL, DIMENSION(:), ALLOCATABLE  ::  ground_level         !< flag indicating ground floor level surfaces 
+
+       REAL(wp), DIMENSION(:), ALLOCATABLE ::  target_temp_summer  !< indoor target temperature summer
+       REAL(wp), DIMENSION(:), ALLOCATABLE ::  target_temp_winter  !< indoor target temperature summer        
+
        REAL(wp), DIMENSION(:), ALLOCATABLE ::  c_surface           !< heat capacity of the wall surface skin (J/m2/K)
-       REAL(wp), DIMENSION(:), ALLOCATABLE ::  emiss_surf          !< emissivity of the wall surface
+       REAL(wp), DIMENSION(:), ALLOCATABLE ::  c_surface_green     !< heat capacity of the green surface skin (J/m2/K)
+       REAL(wp), DIMENSION(:), ALLOCATABLE ::  c_surface_window    !< heat capacity of the window surface skin (J/m2/K)
        REAL(wp), DIMENSION(:), ALLOCATABLE ::  lambda_surf         !< heat conductivity between air and surface (W/m2/K)
-       REAL(wp), DIMENSION(:), ALLOCATABLE ::  roughness_wall      !< roughness relative to concrete
+       REAL(wp), DIMENSION(:), ALLOCATABLE ::  lambda_surf_green   !< heat conductivity between air and green surface (W/m2/K)
+       REAL(wp), DIMENSION(:), ALLOCATABLE ::  lambda_surf_window  !< heat conductivity between air and window surface (W/m2/K)
        REAL(wp), DIMENSION(:), ALLOCATABLE ::  thickness_wall      !< thickness of the wall, roof and soil layers
+       REAL(wp), DIMENSION(:), ALLOCATABLE ::  thickness_green     !< thickness of the green wall, roof and soil layers
+       REAL(wp), DIMENSION(:), ALLOCATABLE ::  thickness_window    !< thickness of the window wall, roof and soil layers
+       REAL(wp), DIMENSION(:), ALLOCATABLE ::  transmissivity      !< transmissivity of windows
 
        REAL(wp), DIMENSION(:), ALLOCATABLE ::  surfoutsl           !< reflected shortwave radiation for local surface in i-th reflection
@@ -238,14 +300,16 @@
 
        REAL(wp), DIMENSION(:), ALLOCATABLE ::  tt_surface_m        !< surface temperature tendency (K)
+       REAL(wp), DIMENSION(:), ALLOCATABLE ::  tt_surface_window_m !< window surface temperature tendency (K)
+       REAL(wp), DIMENSION(:), ALLOCATABLE ::  tt_surface_green_m  !< green surface temperature tendency (K)
        REAL(wp), DIMENSION(:), ALLOCATABLE ::  wshf                !< kinematic wall heat flux of sensible heat (actually no longer needed)
        REAL(wp), DIMENSION(:), ALLOCATABLE ::  wshf_eb             !< wall heat flux of sensible heat in wall normal direction
 
-
        REAL(wp), DIMENSION(:), ALLOCATABLE ::  wghf_eb             !< wall ground heat flux
-
-       REAL(wp), DIMENSION(:), ALLOCATABLE ::  rad_in_sw           !< incoming shortwave radiation
-       REAL(wp), DIMENSION(:), ALLOCATABLE ::  rad_out_sw          !< emitted shortwave radiation
-       REAL(wp), DIMENSION(:), ALLOCATABLE ::  rad_in_lw           !< incoming longwave radiation
-       REAL(wp), DIMENSION(:), ALLOCATABLE ::  rad_out_lw          !< emitted longwave radiation
+       REAL(wp), DIMENSION(:), ALLOCATABLE ::  wghf_eb_window      !< window ground heat flux
+       REAL(wp), DIMENSION(:), ALLOCATABLE ::  wghf_eb_green       !< green ground heat flux
+       REAL(wp), DIMENSION(:), ALLOCATABLE ::  iwghf_eb            !< indoor wall ground heat flux
+       REAL(wp), DIMENSION(:), ALLOCATABLE ::  iwghf_eb_window     !< indoor window ground heat flux
+
+       REAL(wp), DIMENSION(:), ALLOCATABLE ::  rad_lw_out_change_0
 
        REAL(wp), DIMENSION(:), ALLOCATABLE ::  surfinsw            !< shortwave radiation falling to local surface including radiation from reflections
@@ -262,4 +326,18 @@
        REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  tt_wall_m         !< t_wall prognostic array 
        REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  zw                !< wall layer depths (m)
+       REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  rho_c_window      !< volumetric heat capacity of the window material ( J m-3 K-1 ) (= 2.19E6)
+       REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  dz_window         !< window grid spacing (center-center)
+       REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  ddz_window        !< 1/dz_window
+       REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  dz_window_stag    !< window grid spacing (edge-edge)
+       REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  ddz_window_stag   !< 1/dz_window_stag
+       REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  tt_window_m       !< t_window prognostic array 
+       REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  zw_window         !< window layer depths (m)
+       REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  rho_c_green       !< volumetric heat capacity of the green material ( J m-3 K-1 ) (= 2.19E6)
+       REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  dz_green          !< green grid spacing (center-center)
+       REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  ddz_green         !< 1/dz_green
+       REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  dz_green_stag     !< green grid spacing (edge-edge)
+       REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  ddz_green_stag    !< 1/dz_green_stag
+       REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  tt_green_m        !< t_green prognostic array 
+       REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  zw_green          !< green layer depths (m)
 
 
@@ -279,8 +357,18 @@
        REAL(wp), DIMENSION(:), ALLOCATABLE ::  surfhf_av        !< average of total radiation flux incoming to minus outgoing from local surface  
        REAL(wp), DIMENSION(:), ALLOCATABLE ::  wghf_eb_av       !< average of wghf_eb
+       REAL(wp), DIMENSION(:), ALLOCATABLE ::  wghf_eb_window_av  !< average of wghf_eb window
+       REAL(wp), DIMENSION(:), ALLOCATABLE ::  wghf_eb_green_av   !< average of wghf_eb window
+       REAL(wp), DIMENSION(:), ALLOCATABLE ::  iwghf_eb_av        !< indoor average of wghf_eb
+       REAL(wp), DIMENSION(:), ALLOCATABLE ::  iwghf_eb_window_av !< indoor average of wghf_eb window
        REAL(wp), DIMENSION(:), ALLOCATABLE ::  wshf_eb_av       !< average of wshf_eb
        REAL(wp), DIMENSION(:), ALLOCATABLE ::  t_surf_av        !< average of wall surface temperature (K)
+       REAL(wp), DIMENSION(:), ALLOCATABLE ::  t_surf_window_av !< average of window surface temperature (K)
+       REAL(wp), DIMENSION(:), ALLOCATABLE ::  t_surf_green_av  !< average of green wall surface temperature (K)
+       REAL(wp), DIMENSION(:), ALLOCATABLE ::  t_surf_whole_av  !< average of whole wall surface temperature (K)
+       REAL(wp), DIMENSION(:), ALLOCATABLE ::  t_surf_10cm_av   !< average of the near surface temperature (K)
 
        REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  t_wall_av      !< Average of t_wall
+       REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  t_window_av    !< Average of t_window
+       REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  t_green_av     !< Average of t_green
 
     END TYPE surf_type
@@ -305,4 +393,5 @@
     INTERFACE get_topography_top_index
        MODULE PROCEDURE get_topography_top_index
+       MODULE PROCEDURE get_topography_top_index_ji
     END  INTERFACE get_topography_top_index
 
@@ -331,4 +420,9 @@
     END INTERFACE surface_last_actions
 
+    INTERFACE surface_restore_elements
+       MODULE PROCEDURE surface_restore_elements_1d
+       MODULE PROCEDURE surface_restore_elements_2d
+    END INTERFACE surface_restore_elements
+
 !
 !-- Public variables
@@ -338,6 +432,7 @@
 !-- Public subroutines and functions
     PUBLIC get_topography_top_index, init_bc, init_surfaces,                   &
-           init_surface_arrays, surface_read_restart_data,                     &
-           surface_write_restart_data, surface_last_actions
+           init_surface_arrays, surface_read_restart_data,                     & 
+           surface_restore_elements, surface_write_restart_data,               &
+           surface_last_actions
 
 
@@ -473,4 +568,6 @@
        INTEGER(iwp), DIMENSION(0:3) ::  num_usm_v !< number of vertically-aligned urban surfaces 
 
+       LOGICAL ::  building                       !< flag indicating building grid point
+       LOGICAL ::  terrain                        !< flag indicating natural terrain grid point
 
        num_def_h = 0
@@ -481,4 +578,10 @@
        num_usm_v = 0
 !
+!--    Surfaces are classified according to the input data read from static
+!--    input file. If no input file is present, all surfaces are classified
+!--    either as natural, urban, or default, depending on the setting of 
+!--    land_surface and urban_surface. To control this, use the control
+!--    flag topo_no_distinct
+!
 !--    Count number of horizontal surfaces on local domain 
        DO  i = nxl, nxr
@@ -491,17 +594,34 @@
 !--                Check if grid point adjoins to any upward-facing horizontal
 !--                surface, e.g. the Earth surface, plane roofs, or ceilings.
+
                    IF ( .NOT. BTEST( wall_flags_0(k-1,j,i), 0 ) )  THEN
 !
+!--                   Determine flags indicating terrain or building. 
+                      terrain  = BTEST( wall_flags_0(k-1,j,i), 5 )  .OR.       &
+                                 topo_no_distinct
+                      building = BTEST( wall_flags_0(k-1,j,i), 6 )  .OR.       &
+                                 topo_no_distinct
+!
 !--                   Land-surface type
-                      IF ( land_surface )  THEN
+                      IF ( land_surface  .AND.  terrain )  THEN
                          num_lsm_h    = num_lsm_h    + 1 
 !
 !--                   Urban surface tpye
-                      ELSEIF ( urban_surface )  THEN 
+                      ELSEIF ( urban_surface  .AND.  building )  THEN
                          num_usm_h    = num_usm_h    + 1 
 !
 !--                   Default-surface type
-                      ELSE
-                         num_def_h(0) = num_def_h(0) + 1 
+                      ELSEIF ( .NOT. land_surface    .AND.                     &
+                               .NOT. urban_surface )  THEN
+                               
+                         num_def_h(0) = num_def_h(0) + 1
+!
+!--                   Unclassifified surface-grid point. Give error message.
+                      ELSE 
+                         WRITE( message_string, * )                           &
+                                          'Unclassified upward-facing ' //    &
+                                          'surface element at '//             &
+                                          'grid point (k,j,i) = ', k, j, i
+                         CALL message( 'surface_mod', 'PA0999', 1, 2, 0, 6, 0 )
                       ENDIF
 
@@ -531,10 +651,29 @@
 !--                Northward-facing
                    IF ( .NOT. BTEST( wall_flags_0(k,j-1,i), 0 ) )  THEN
-                      IF ( urban_surface )  THEN
+!
+!--                   Determine flags indicating terrain or building
+
+                      terrain  = BTEST( wall_flags_0(k,j-1,i), 5 )  .OR.       &
+                                 topo_no_distinct
+                      building = BTEST( wall_flags_0(k,j-1,i), 6 )   .OR.       &
+                                 topo_no_distinct
+                      IF (  land_surface  .AND.  terrain )  THEN
+                         num_lsm_v(0) = num_lsm_v(0) + 1 
+                      ELSEIF ( urban_surface  .AND.  building )  THEN
                          num_usm_v(0) = num_usm_v(0) + 1 
-                      ELSEIF ( land_surface )  THEN
-                         num_lsm_v(0) = num_lsm_v(0) + 1 
-                      ELSE
+!
+!--                   Default-surface type
+                      ELSEIF ( .NOT. land_surface    .AND.                     &
+                               .NOT. urban_surface )  THEN
                          num_def_v(0) = num_def_v(0) + 1 
+!
+!--                   Unclassifified surface-grid point. Give error message.
+                      ELSE 
+                         WRITE( message_string, * )                           &
+                                          'Unclassified northward-facing ' // &
+                                          'surface element at '//             &
+                                          'grid point (k,j,i) = ', k, j, i
+                         CALL message( 'surface_mod', 'PA0999', 1, 2, 0, 6, 0 ) 
+
                       ENDIF
                    ENDIF
@@ -542,10 +681,28 @@
 !--                Southward-facing
                    IF ( .NOT. BTEST( wall_flags_0(k,j+1,i), 0 ) )  THEN
-                      IF ( urban_surface )  THEN
+!
+!--                   Determine flags indicating terrain or building
+                      terrain  = BTEST( wall_flags_0(k,j+1,i), 5 )  .OR.       &
+                                 topo_no_distinct
+                      building = BTEST( wall_flags_0(k,j+1,i), 6 )  .OR.       &
+                                 topo_no_distinct
+                      IF (  land_surface  .AND.  terrain )  THEN
+                         num_lsm_v(1) = num_lsm_v(1) + 1 
+                      ELSEIF ( urban_surface  .AND.  building )  THEN
                          num_usm_v(1) = num_usm_v(1) + 1 
-                      ELSEIF ( land_surface )  THEN
-                         num_lsm_v(1) = num_lsm_v(1) + 1 
-                      ELSE
+!
+!--                   Default-surface type
+                      ELSEIF ( .NOT. land_surface    .AND.                     &
+                               .NOT. urban_surface )  THEN
                          num_def_v(1) = num_def_v(1) + 1 
+!
+!--                   Unclassifified surface-grid point. Give error message.
+                      ELSE 
+                         WRITE( message_string, * )                           &
+                                          'Unclassified southward-facing ' // &
+                                          'surface element at '//             &
+                                          'grid point (k,j,i) = ', k, j, i
+                         CALL message( 'surface_mod', 'PA0999', 1, 2, 0, 6, 0 ) 
+
                       ENDIF
                    ENDIF
@@ -553,10 +710,28 @@
 !--                Eastward-facing
                    IF ( .NOT. BTEST( wall_flags_0(k,j,i-1), 0 ) )  THEN
-                      IF ( urban_surface )  THEN
+!
+!--                   Determine flags indicating terrain or building
+                      terrain  = BTEST( wall_flags_0(k,j,i-1), 5 )  .OR.       &
+                                 topo_no_distinct
+                      building = BTEST( wall_flags_0(k,j,i-1), 6 )  .OR.       &
+                                 topo_no_distinct
+                      IF (  land_surface  .AND.  terrain )  THEN
+                         num_lsm_v(2) = num_lsm_v(2) + 1 
+                      ELSEIF ( urban_surface  .AND.  building )  THEN
                          num_usm_v(2) = num_usm_v(2) + 1 
-                      ELSEIF ( land_surface )  THEN
-                         num_lsm_v(2) = num_lsm_v(2) + 1 
-                      ELSE
+!
+!--                   Default-surface type
+                      ELSEIF ( .NOT. land_surface    .AND.                     &
+                               .NOT. urban_surface )  THEN
                          num_def_v(2) = num_def_v(2) + 1 
+!
+!--                   Unclassifified surface-grid point. Give error message.
+                      ELSE 
+                         WRITE( message_string, * )                           &
+                                          'Unclassified eastward-facing ' //  &
+                                          'surface element at '//             &
+                                          'grid point (k,j,i) = ', k, j, i
+                         CALL message( 'surface_mod', 'PA0999', 1, 2, 0, 6, 0 ) 
+
                       ENDIF
                    ENDIF
@@ -564,10 +739,28 @@
 !--                Westward-facing
                    IF ( .NOT. BTEST( wall_flags_0(k,j,i+1), 0 ) )  THEN
-                      IF ( urban_surface )  THEN
-                         num_usm_v(3) = num_usm_v(3) + 1
-                      ELSEIF ( land_surface )  THEN
-                         num_lsm_v(3) = num_lsm_v(3) + 1  
-                      ELSE
+!
+!--                   Determine flags indicating terrain or building
+                      terrain  = BTEST( wall_flags_0(k,j,i+1), 5 )  .OR.       &
+                                 topo_no_distinct
+                      building = BTEST( wall_flags_0(k,j,i+1), 6 )  .OR.       &
+                                 topo_no_distinct
+                      IF (  land_surface  .AND.  terrain )  THEN
+                         num_lsm_v(3) = num_lsm_v(3) + 1 
+                      ELSEIF ( urban_surface  .AND.  building )  THEN
+                         num_usm_v(3) = num_usm_v(3) + 1 
+!
+!--                   Default-surface type
+                      ELSEIF ( .NOT. land_surface    .AND.                     &
+                               .NOT. urban_surface )  THEN
                          num_def_v(3) = num_def_v(3) + 1 
+!
+!--                   Unclassifified surface-grid point. Give error message.
+                      ELSE 
+                         WRITE( message_string, * )                           &
+                                          'Unclassified westward-facing ' //  &
+                                          'surface element at '//             &
+                                          'grid point (k,j,i) = ', k, j, i
+                         CALL message( 'surface_mod', 'PA0999', 1, 2, 0, 6, 0 ) 
+
                       ENDIF
                    ENDIF
@@ -651,5 +844,5 @@
 !--    Default type.
        DO  l = 0, 3
-          CALL allocate_surface_attributes_v ( surf_def_v(l), .FALSE.,         &
+          CALL allocate_surface_attributes_v ( surf_def_v(l),                  &
                                                nys, nyn, nxl, nxr )
        ENDDO
@@ -657,5 +850,5 @@
 !--    Natural type
        DO  l = 0, 3
-          CALL allocate_surface_attributes_v ( surf_lsm_v(l), .TRUE.,          &
+          CALL allocate_surface_attributes_v ( surf_lsm_v(l),                  &
                                                nys, nyn, nxl, nxr )
        ENDDO
@@ -663,5 +856,5 @@
 !--    Urban type
        DO  l = 0, 3
-          CALL allocate_surface_attributes_v ( surf_usm_v(l), .FALSE.,         &
+          CALL allocate_surface_attributes_v ( surf_usm_v(l),                  &
                                                nys, nyn, nxl, nxr )
        ENDDO
@@ -716,5 +909,4 @@
 !--    Surface-parallel wind velocity
        ALLOCATE ( surfaces%uvw_abs(1:surfaces%ns) )
-!      ALLOCATE ( surfaces%pt_surface(1:surfaces%ns) )
 !
 !--    Roughness
@@ -746,4 +938,7 @@
        ALLOCATE ( surfaces%shf(1:surfaces%ns) )    
 !
+!--    surface temperature
+       ALLOCATE ( surfaces%pt_surface(1:surfaces%ns) ) 
+!
 !--    Characteristic humidity and surface flux of latent heat
        IF ( humidity )  THEN
@@ -758,10 +953,16 @@
        ENDIF 
 !
-!--    When cloud physics is used, arrays for storing potential temperature and
-!--    specific humidity at first grid level are required. 
-       IF ( cloud_physics  .OR.  cloud_droplets )  THEN
-          ALLOCATE ( surfaces%pt1(1:surfaces%ns) )
-          ALLOCATE ( surfaces%qv1(1:surfaces%ns) )
-       ENDIF
+!--    Scaling parameter (cs*) and surface flux of chemical species
+#if defined ( __chem )
+       IF ( air_chemistry )  THEN
+          ALLOCATE ( surfaces%css(1:nvar,1:surfaces%ns)   )   
+          ALLOCATE ( surfaces%cssws(1:nvar,1:surfaces%ns) ) 
+       ENDIF 
+#endif 
+!
+!--    Arrays for storing potential temperature and
+!--    specific humidity at first grid level
+       ALLOCATE ( surfaces%pt1(1:surfaces%ns) )
+       ALLOCATE ( surfaces%qv1(1:surfaces%ns) )
 !
 !--       
@@ -836,4 +1037,11 @@
        ENDIF 
 !
+!--    Chemical species flux
+#if defined( __chem )
+       IF ( air_chemistry )  THEN
+          ALLOCATE ( surfaces%cssws(1:nvar,1:surfaces%ns) ) 
+       ENDIF 
+#endif 
+!
 !--       
        IF ( cloud_physics .AND. microphysics_morrison)  THEN
@@ -858,5 +1066,5 @@
 !> Allocating memory for vertical surface types. 
 !------------------------------------------------------------------------------!
-    SUBROUTINE allocate_surface_attributes_v( surfaces, lsm,                   &
+    SUBROUTINE allocate_surface_attributes_v( surfaces,                        &
                                               nys_l, nyn_l, nxl_l, nxr_l )
 
@@ -867,6 +1075,4 @@
        INTEGER(iwp) ::  nxl_l  !< west bound of local 2d array start/end_index, is equal to nyn, except for restart-array
        INTEGER(iwp) ::  nxr_l  !< east bound of local 2d array start/end_index, is equal to nyn, except for restart-array
-
-       LOGICAL         ::  lsm      !< flag indicating data type of natural land surface
 
        TYPE(surf_type) ::  surfaces !< respective surface type
@@ -909,10 +1115,9 @@
        ALLOCATE ( surfaces%us(1:surfaces%ns) )
 !
-!--    Allocate Obukhov length and bulk Richardson number. Only required 
+!--    Allocate Obukhov length and bulk Richardson number. Actually, at
+!--    vertical surfaces these are only required for natural surfaces.  
 !--    for natural land surfaces
-       IF ( lsm )  THEN
-          ALLOCATE( surfaces%ol(1:surfaces%ns)  ) 
-          ALLOCATE( surfaces%rib(1:surfaces%ns) ) 
-       ENDIF
+       ALLOCATE( surfaces%ol(1:surfaces%ns)  ) 
+       ALLOCATE( surfaces%rib(1:surfaces%ns) ) 
 !
 !--    Allocate arrays for surface momentum fluxes for u and v. For u at north- 
@@ -930,5 +1135,8 @@
 !--    Characteristic temperature and surface flux of sensible heat
        ALLOCATE ( surfaces%ts(1:surfaces%ns)  )    
-       ALLOCATE ( surfaces%shf(1:surfaces%ns) )    
+       ALLOCATE ( surfaces%shf(1:surfaces%ns) )
+!
+!--    surface temperature
+       ALLOCATE ( surfaces%pt_surface(1:surfaces%ns) ) 
 !
 !--    Characteristic humidity and surface flux of latent heat
@@ -942,5 +1150,18 @@
           ALLOCATE ( surfaces%ss(1:surfaces%ns)   )   
           ALLOCATE ( surfaces%ssws(1:surfaces%ns) ) 
+       ENDIF
+!
+!--    Scaling parameter (cs*) and surface flux of chemical species
+#if defined( __chem )
+       IF ( air_chemistry )  THEN
+             ALLOCATE ( surfaces%css(1:nvar,1:surfaces%ns)   )   
+             ALLOCATE ( surfaces%cssws(1:nvar,1:surfaces%ns) ) 
        ENDIF 
+#endif
+!
+!--    Arrays for storing potential temperature and
+!--    specific humidity at first grid level
+       ALLOCATE ( surfaces%pt1(1:surfaces%ns) )
+       ALLOCATE ( surfaces%qv1(1:surfaces%ns) )
 
        IF ( cloud_physics .AND. microphysics_seifert)  THEN
@@ -966,5 +1187,10 @@
 ! Description:
 ! ------------
-!> Initialize surface elements. 
+!> Initialize surface elements, i.e. set initial values for surface fluxes, 
+!> friction velocity, calcuation of start/end indices, etc. . 
+!> Please note, further initialization concerning 
+!> special surface characteristics, e.g. soil- and vegatation type, 
+!> building type, etc., is done in the land-surface and urban-surface module, 
+!> respectively.  
 !------------------------------------------------------------------------------!
     SUBROUTINE init_surfaces
@@ -1001,4 +1227,63 @@
        INTEGER(iwp), DIMENSION(0:3) ::  start_index_usm_v !< dummy to determing local start index in surface type for given (j,i), for vertical urban surfaces
 
+       LOGICAL ::  building     !< flag indicating building grid point
+       LOGICAL ::  terrain      !< flag indicating natural terrain grid point
+
+!
+!--    Set offset indices, i.e. index difference between surface element and 
+!--    surface-bounded grid point.
+!--    Upward facing - no horizontal offsets
+       surf_def_h(0:2)%ioff = 0
+       surf_def_h(0:2)%joff = 0
+
+       surf_lsm_h%ioff = 0
+       surf_lsm_h%joff = 0
+
+       surf_usm_h%ioff = 0
+       surf_usm_h%joff = 0
+!
+!--    Upward facing vertical offsets
+       surf_def_h(0)%koff   = -1
+       surf_lsm_h%koff      = -1
+       surf_usm_h%koff      = -1
+!
+!--    Downward facing vertical offset
+       surf_def_h(1:2)%koff = 1
+!
+!--    Vertical surfaces - no vertical offset
+       surf_def_v(0:3)%koff = 0
+       surf_lsm_v(0:3)%koff = 0
+       surf_usm_v(0:3)%koff = 0
+!
+!--    North- and southward facing - no offset in x
+       surf_def_v(0:1)%ioff = 0
+       surf_lsm_v(0:1)%ioff = 0
+       surf_usm_v(0:1)%ioff = 0
+!
+!--    Northward facing offset in y
+       surf_def_v(0)%joff = -1
+       surf_lsm_v(0)%joff = -1
+       surf_usm_v(0)%joff = -1
+!
+!--    Southward facing offset in y
+       surf_def_v(1)%joff = 1
+       surf_lsm_v(1)%joff = 1
+       surf_usm_v(1)%joff = 1
+
+!
+!--    East- and westward facing - no offset in y
+       surf_def_v(2:3)%joff = 0
+       surf_lsm_v(2:3)%joff = 0
+       surf_usm_v(2:3)%joff = 0
+!
+!--    Eastward facing offset in x
+       surf_def_v(2)%ioff = -1
+       surf_lsm_v(2)%ioff = -1
+       surf_usm_v(2)%ioff = -1
+!
+!--    Westward facing offset in y
+       surf_def_v(3)%ioff = 1
+       surf_lsm_v(3)%ioff = 1
+       surf_usm_v(3)%ioff = 1
 
 !
@@ -1039,10 +1324,15 @@
 !--                Upward-facing surface. Distinguish between differet surface types.
 !--                To do, think about method to flag natural and non-natural 
-!--                surfaces. Only to ask for land_surface or urban surface 
-!--                is just a work-around. 
+!--                surfaces. 
                    IF ( .NOT. BTEST( wall_flags_0(k-1,j,i), 0 ) )  THEN 
 !
+!--                   Determine flags indicating terrain or building
+                      terrain  = BTEST( wall_flags_0(k-1,j,i), 5 )  .OR.       &
+                                 topo_no_distinct
+                      building = BTEST( wall_flags_0(k-1,j,i), 6 )  .OR.       &
+                                 topo_no_distinct
+!
 !--                   Natural surface type          
-                      IF ( land_surface )  THEN
+                      IF ( land_surface  .AND.  terrain )  THEN
                          CALL initialize_horizontal_surfaces( k, j, i,         &
                                                               surf_lsm_h,      &
@@ -1052,5 +1342,5 @@
 !
 !--                   Urban surface tpye
-                      ELSEIF ( urban_surface )  THEN
+                      ELSEIF ( urban_surface  .AND.  building )  THEN
                          CALL initialize_horizontal_surfaces( k, j, i,         &
                                                               surf_usm_h,      &
@@ -1069,5 +1359,7 @@
                    ENDIF  
 !
-!--                downward-facing surface, first, model top
+!--                downward-facing surface, first, model top. Please note, 
+!--                for the moment, downward-facing surfaces are always of 
+!--                default type
                    IF ( k == nzt  .AND.  use_top_fluxes )  THEN
                       CALL initialize_top( k, j, i, surf_def_h(2),             &
@@ -1087,5 +1379,11 @@
 !                  Start with northward-facing surface.
                    IF ( .NOT. BTEST( wall_flags_0(k,j-1,i), 0 ) )  THEN
-                      IF ( urban_surface )  THEN
+!
+!--                   Determine flags indicating terrain or building
+                      terrain  = BTEST( wall_flags_0(k,j-1,i), 5 )  .OR.       &
+                                 topo_no_distinct
+                      building = BTEST( wall_flags_0(k,j-1,i), 6 )  .OR.       &
+                                 topo_no_distinct
+                      IF ( urban_surface  .AND.  building )  THEN
                          CALL initialize_vertical_surfaces( 0, k, j, i,        &
                                                             surf_usm_v(0),     &
@@ -1094,5 +1392,5 @@
                                                             .FALSE., .FALSE.,  &             
                                                             .FALSE., .TRUE. ) 
-                      ELSEIF ( land_surface )  THEN
+                      ELSEIF ( land_surface  .AND.  terrain )  THEN
                          CALL initialize_vertical_surfaces( 0, k, j, i,        &
                                                             surf_lsm_v(0),     &
@@ -1113,5 +1411,11 @@
 !--                southward-facing surface
                    IF ( .NOT. BTEST( wall_flags_0(k,j+1,i), 0 ) )  THEN
-                      IF ( urban_surface )  THEN
+!
+!--                   Determine flags indicating terrain or building
+                      terrain  = BTEST( wall_flags_0(k,j+1,i), 5 )  .OR.       &
+                                 topo_no_distinct
+                      building = BTEST( wall_flags_0(k,j+1,i), 6 )  .OR.       &
+                                 topo_no_distinct
+                      IF ( urban_surface  .AND.  building )  THEN
                          CALL initialize_vertical_surfaces( 1, k, j, i,        &
                                                             surf_usm_v(1),     &
@@ -1120,5 +1424,5 @@
                                                             .FALSE., .FALSE.,  &
                                                             .TRUE., .FALSE. )
-                      ELSEIF ( land_surface )  THEN
+                      ELSEIF ( land_surface  .AND.  terrain )  THEN
                          CALL initialize_vertical_surfaces( 1, k, j, i,        &
                                                             surf_lsm_v(1),     &
@@ -1139,5 +1443,11 @@
 !--                eastward-facing surface
                    IF ( .NOT. BTEST( wall_flags_0(k,j,i-1), 0 ) )  THEN
-                      IF ( urban_surface )  THEN
+!
+!--                   Determine flags indicating terrain or building
+                      terrain  = BTEST( wall_flags_0(k,j,i-1), 5 )  .OR.       &
+                                 topo_no_distinct
+                      building = BTEST( wall_flags_0(k,j,i-1), 6 )  .OR.       &
+                                 topo_no_distinct
+                      IF ( urban_surface  .AND.  building )  THEN
                          CALL initialize_vertical_surfaces( 2, k, j, i,        &
                                                             surf_usm_v(2),     &
@@ -1146,5 +1456,5 @@
                                                             .TRUE., .FALSE.,   &
                                                             .FALSE., .FALSE. ) 
-                      ELSEIF ( land_surface )  THEN
+                      ELSEIF ( land_surface  .AND.  terrain )  THEN
                          CALL initialize_vertical_surfaces( 2, k, j, i,        &
                                                             surf_lsm_v(2),     &
@@ -1165,5 +1475,11 @@
 !--                westward-facing surface
                    IF ( .NOT. BTEST( wall_flags_0(k,j,i+1), 0 ) )  THEN
-                      IF ( urban_surface )  THEN
+!
+!--                   Determine flags indicating terrain or building
+                      terrain  = BTEST( wall_flags_0(k,j,i+1), 5 )  .OR.       &
+                                 topo_no_distinct
+                      building = BTEST( wall_flags_0(k,j,i+1), 6 )  .OR.       &
+                                 topo_no_distinct
+                      IF ( urban_surface  .AND.  building )  THEN
                          CALL initialize_vertical_surfaces( 3, k, j, i,        &
                                                             surf_usm_v(3),     &
@@ -1172,5 +1488,5 @@
                                                            .FALSE., .TRUE.,    &
                                                            .FALSE., .FALSE. ) 
-                      ELSEIF ( land_surface )  THEN
+                      ELSEIF ( land_surface  .AND.  terrain )  THEN
                          CALL initialize_vertical_surfaces( 3, k, j, i,        &
                                                             surf_lsm_v(3),     &
@@ -1285,4 +1601,5 @@
        ENDDO
 
+
        CONTAINS
 
@@ -1305,4 +1622,6 @@
              INTEGER(iwp)  ::  num_h            !< current number of surface element
              INTEGER(iwp)  ::  num_h_kji        !< dummy increment
+             INTEGER(iwp)  ::  lsp              !< running index chemical species
+             INTEGER(iwp)  ::  lsp_pr           !< running index chemical species??
 
              LOGICAL       ::  upward_facing    !< flag indicating upward-facing surface
@@ -1356,6 +1675,6 @@
 !
 !--          Initialization in case of constant profiles
-             ELSEIF ( INDEX(initializing_actions, 'set_constant_profiles') /= 0 )&
-             THEN
+             ELSEIF ( INDEX(initializing_actions, 'set_constant_profiles') /= 0&
+                .OR.  INDEX(initializing_actions, 'inifor' ) /= 0 )  THEN
 
                 surf%ol(num_h)   = surf%z_mo(num_h) / zeta_min
@@ -1403,4 +1722,13 @@
 
              IF ( passive_scalar )  surf%ss(num_h) = 0.0_wp
+
+#if defined( __chem )
+             DO  lsp = 1, nvar
+                IF ( air_chemistry )  surf%css(lsp,num_h) = 0.0_wp
+             ENDDO
+#endif
+!
+!--          Set initial value for surface temperature
+             surf%pt_surface(num_h) = pt_surface
 !
 !--          Inititalize surface fluxes of sensible and latent heat, as well as
@@ -1414,5 +1742,5 @@
 !--                   if random_heatflux is set. This case, shf is initialized later.
                       IF ( .NOT. random_heatflux )  THEN
-                         surf%shf(num_h) = surface_heatflux *               &
+                         surf%shf(num_h) = surface_heatflux *                  &
                                                  heatflux_input_conversion(nzb)
 !
@@ -1420,5 +1748,5 @@
 !--                      prescribed wall heatflux
                          IF ( k-1 /= 0 )  THEN
-                            surf%shf(num_h) = wall_heatflux(0) *            &
+                            surf%shf(num_h) = wall_heatflux(0) *               &
                                                  heatflux_input_conversion(k-1)
                          ENDIF
@@ -1476,4 +1804,31 @@
                 ENDIF
 
+#if defined( __chem )
+                IF ( air_chemistry )  THEN
+                   lsp_pr = 1
+                   DO  WHILE ( TRIM( surface_csflux_name( lsp_pr ) ) /= 'novalue' )   !<'novalue' is the default
+                      DO  lsp = 1, nvar
+!
+!--                      Assign surface flux for each variable species
+                         IF ( TRIM( spc_names(lsp) ) == TRIM( surface_csflux_name(lsp_pr) ) )  THEN   
+                            IF ( upward_facing )  THEN
+                               IF ( constant_csflux(lsp_pr) )  THEN
+                                  surf%cssws(lsp,num_h) = surface_csflux(lsp_pr)
+
+                                  IF ( k-1 /= 0 )                                    &
+                                     surf%cssws(lsp,num_h) = wall_csflux(lsp,0)
+                               ELSE
+                                  surf%cssws(lsp,num_h) = 0.0_wp
+                               ENDIF
+                            ELSE
+                               surf%cssws(lsp,num_h) = wall_csflux(lsp,5)
+                            ENDIF
+                         ENDIF
+                      ENDDO
+                      lsp_pr = lsp_pr + 1
+                   ENDDO
+                ENDIF
+#endif
+
                 IF ( ocean )  THEN
                    IF ( upward_facing )  THEN 
@@ -1508,4 +1863,5 @@
              INTEGER(iwp)  ::  num_h            !< current number of surface element
              INTEGER(iwp)  ::  num_h_kji        !< dummy increment
+             INTEGER(iwp)  ::  lsp              !< running index for chemical species
 
              TYPE( surf_type ) :: surf          !< respective surface type
@@ -1543,4 +1899,13 @@
                 surf%ssws(num_h) = top_scalarflux
 !
+!--          Prescribe top chemical species' flux
+#if defined( __chem )
+             DO  lsp = 1, nvar
+                IF ( air_chemistry  .AND.  constant_top_csflux(lsp) )  THEN 
+                   surf%cssws(lsp,num_h) = top_csflux(lsp)
+                ENDIF
+             ENDDO
+#endif
+!
 !--          Prescribe top salinity flux
              IF ( ocean .AND. constant_top_salinityflux)                       &
@@ -1575,5 +1940,5 @@
              IMPLICIT NONE 
 
-             INTEGER(iwp)  ::  component !<
+             INTEGER(iwp)  ::  component       !< index of wall_fluxes_ array for respective orientation 
              INTEGER(iwp)  ::  i               !< running index x-direction
              INTEGER(iwp)  ::  j               !< running index x-direction
@@ -1582,4 +1947,5 @@
              INTEGER(iwp)  ::  num_v           !< current number of surface element
              INTEGER(iwp)  ::  num_v_kji       !< current number of surface element at (j,i)
+             INTEGER(iwp)  ::  lsp             !< running index for chemical species
 
 
@@ -1609,20 +1975,20 @@
 !--          etc., on surface type (further below)
              IF ( north_facing )  THEN
-                surf%facing(num_v) = IBSET( surf%facing(num_v), 0 )  
+                surf%facing(num_v) = 5 !IBSET( surf%facing(num_v), 0 )  
                 component          = 4
              ENDIF
 
              IF ( south_facing )  THEN
-                surf%facing(num_v) = IBSET( surf%facing(num_v), 1 ) 
+                surf%facing(num_v) = 6 !IBSET( surf%facing(num_v), 1 ) 
                 component          = 3
              ENDIF
 
              IF ( east_facing )  THEN
-                surf%facing(num_v) = IBSET( surf%facing(num_v), 2 )
+                surf%facing(num_v) = 7 !IBSET( surf%facing(num_v), 2 )
                 component          = 2
              ENDIF
 
              IF ( west_facing )  THEN
-                surf%facing(num_v) = IBSET( surf%facing(num_v), 3 ) 
+                surf%facing(num_v) = 8 !IBSET( surf%facing(num_v), 3 ) 
                 component          = 1
              ENDIF
@@ -1647,4 +2013,7 @@
              surf%ts(num_v)    = 0.0_wp
              surf%shf(num_v)   = wall_heatflux(component)
+!
+!--          Set initial value for surface temperature
+             surf%pt_surface(num_v) = pt_surface
 
              IF ( humidity )  THEN
@@ -1673,4 +2042,14 @@
                 surf%ssws(num_v) = wall_scalarflux(component)
              ENDIF
+
+#if defined( __chem )
+             IF ( air_chemistry )  THEN        
+                DO  lsp = 1, nvar
+                   surf%css(lsp,num_v)   = 0.0_wp
+                   surf%cssws(lsp,num_v) = wall_csflux(lsp,component)
+                ENDDO
+             ENDIF
+#endif
+
 !
 !--          So far, salinityflux at vertical surfaces is simply zero 
@@ -1692,15 +2071,13 @@
 !> Determines topography-top index at given (j,i)-position.  
 !------------------------------------------------------------------------------!
-    FUNCTION get_topography_top_index( j, i, grid )
-
-       USE kinds
+    FUNCTION get_topography_top_index_ji( j, i, grid )
 
        IMPLICIT NONE 
 
-       CHARACTER(LEN=*) ::  grid                      !< flag to distinquish between staggered grids
-       INTEGER(iwp)     ::  i                         !< grid index in x-dimension
-       INTEGER(iwp)     ::  ibit                      !< bit position where topography information is stored on respective grid
-       INTEGER(iwp)     ::  j                         !< grid index in y-dimension
-       INTEGER(iwp)     ::  get_topography_top_index  !< topography top index
+       CHARACTER(LEN=*) ::  grid                         !< flag to distinquish between staggered grids
+       INTEGER(iwp)     ::  i                            !< grid index in x-dimension
+       INTEGER(iwp)     ::  ibit                         !< bit position where topography information is stored on respective grid
+       INTEGER(iwp)     ::  j                            !< grid index in y-dimension
+       INTEGER(iwp)     ::  get_topography_top_index_ji  !< topography top index
 
        SELECT CASE ( TRIM( grid ) )
@@ -1729,9 +2106,57 @@
        END SELECT
 
-       get_topography_top_index = MAXLOC(                                      &
+       get_topography_top_index_ji = MAXLOC(                                   &
                                      MERGE( 1, 0,                              &
                                             BTEST( wall_flags_0(:,j,i), ibit ) &
                                           ), DIM = 1                           &
-                                        ) - 1
+                                           ) - 1
+
+       RETURN
+
+    END FUNCTION get_topography_top_index_ji
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Determines topography-top index at each (j,i)-position.  
+!------------------------------------------------------------------------------!
+    FUNCTION get_topography_top_index( grid )
+
+       IMPLICIT NONE 
+
+       CHARACTER(LEN=*) ::  grid                      !< flag to distinquish between staggered grids
+       INTEGER(iwp)     ::  ibit                      !< bit position where topography information is stored on respective grid
+       INTEGER(iwp), DIMENSION(nys:nyn,nxl:nxr) ::  get_topography_top_index  !< topography top index
+
+       SELECT CASE ( TRIM( grid ) )
+
+          CASE ( 's'     )
+             ibit = 12
+          CASE ( 'u'     )
+             ibit = 14
+          CASE ( 'v'     )
+             ibit = 16
+          CASE ( 'w'     )
+             ibit = 18
+          CASE ( 's_out' )
+             ibit = 24
+          CASE ( 'u_out' )
+             ibit = 26
+          CASE ( 'v_out' )
+             ibit = 27
+          CASE ( 'w_out' )
+             ibit = 28
+          CASE DEFAULT
+!
+!--          Set default to scalar grid
+             ibit = 12 
+
+       END SELECT
+
+       get_topography_top_index(nys:nyn,nxl:nxr) = MAXLOC(                     &
+                         MERGE( 1, 0,                                          &
+                                 BTEST( wall_flags_0(:,nys:nyn,nxl:nxr), ibit )&
+                              ), DIM = 1                                       &
+                                                         ) - 1
 
        RETURN
@@ -1754,4 +2179,5 @@
        INTEGER(iwp)                 ::  j    !< running index y-direction
        INTEGER(iwp)                 ::  l    !< index surface type orientation
+       INTEGER(iwp)                 ::  lsp  !< running index chemical species
        INTEGER(iwp)                 ::  m    !< running index for surface elements on individual surface array
        INTEGER(iwp), DIMENSION(0:3) ::  mm   !< running index for surface elements on gathered surface array
@@ -1781,5 +2207,5 @@
        DO  l = 0, 3
           surf_v(l)%ns = ns_v_on_file(l)
-          CALL allocate_surface_attributes_v( surf_v(l), .FALSE.,              &
+          CALL allocate_surface_attributes_v( surf_v(l),                       &
                                               nys, nyn, nxl, nxr )
        ENDDO
@@ -1823,4 +2249,16 @@
                    IF ( ALLOCATED( surf_def_h(l)%ssws ) )                      &
                       surf_h(l)%ssws(mm(l))    = surf_def_h(l)%ssws(m)
+#if defined( __chem )
+                   IF ( ALLOCATED( surf_def_h(l)%css ) )  THEN 
+                      DO  lsp = 1,nvar
+                         surf_h(l)%css(lsp,mm(l)) = surf_def_h(l)%css(lsp,m)
+                      ENDDO
+                   ENDIF
+                   IF ( ALLOCATED( surf_def_h(l)%cssws ) )  THEN 
+                      DO  lsp = 1,nvar
+                         surf_h(l)%cssws(lsp,mm(l)) = surf_def_h(l)%cssws(lsp,m)
+                      ENDDO
+                   ENDIF
+#endif
                    IF ( ALLOCATED( surf_def_h(l)%ncsws ) )                     &
                       surf_h(l)%ncsws(mm(l))   = surf_def_h(l)%ncsws(m)
@@ -1866,4 +2304,16 @@
                       IF ( ALLOCATED( surf_lsm_h%ssws ) )                      &
                          surf_h(0)%ssws(mm(0))    = surf_lsm_h%ssws(m)
+#if defined( __chem )
+                      IF ( ALLOCATED( surf_lsm_h%css ) )  THEN                  
+                         DO  lsp = 1, nvar
+                            surf_h(0)%css(lsp,mm(0)) = surf_lsm_h%css(lsp,m)
+                         ENDDO
+                      ENDIF
+                      IF ( ALLOCATED( surf_lsm_h%cssws ) )  THEN
+                         DO  lsp = 1, nvar
+                            surf_h(0)%cssws(lsp,mm(0)) = surf_lsm_h%cssws(lsp,m)
+                         ENDDO 
+                      ENDIF
+#endif
                       IF ( ALLOCATED( surf_lsm_h%ncsws ) )                     &
                          surf_h(0)%ncsws(mm(0))   = surf_lsm_h%ncsws(m)
@@ -1909,4 +2359,16 @@
                       IF ( ALLOCATED( surf_usm_h%ssws ) )                      &
                          surf_h(0)%ssws(mm(0))    = surf_usm_h%ssws(m)
+#if defined( __chem )
+                      IF ( ALLOCATED( surf_usm_h%css ) )  THEN             
+                         DO lsp = 1, nvar
+                            surf_h(0)%css(lsp,mm(0)) = surf_usm_h%css(lsp,m)
+                         ENDDO
+                      ENDIF
+                      IF ( ALLOCATED( surf_usm_h%cssws ) )  THEN             
+                         DO lsp = 1, nvar
+                            surf_h(0)%cssws(lsp,mm(0)) = surf_usm_h%cssws(lsp,m)
+                         ENDDO
+                      ENDIF
+#endif
                       IF ( ALLOCATED( surf_usm_h%ncsws ) )                     &
                          surf_h(0)%ncsws(mm(0))   = surf_usm_h%ncsws(m)
@@ -1926,15 +2388,27 @@
 
           ENDDO
-          IF ( l == 0 )  THEN
-             surf_h(l)%start_index = MAX( surf_def_h(l)%start_index,           &
-                                          surf_lsm_h%start_index,              &
-                                          surf_usm_h%start_index )
-             surf_h(l)%end_index   = MAX( surf_def_h(l)%end_index,             &
-                                          surf_lsm_h%end_index,                &
-                                          surf_usm_h%end_index )
-          ELSE
-             surf_h(l)%start_index = surf_def_h(l)%start_index
-             surf_h(l)%end_index   = surf_def_h(l)%end_index
-          ENDIF
+!
+!--       Gather start- and end indices                                        
+          DO  i = nxl, nxr
+             DO  j = nys, nyn
+                IF ( surf_def_h(l)%start_index(j,i) <=                         &
+                     surf_def_h(l)%end_index(j,i) )  THEN
+                   surf_h(l)%start_index(j,i) = surf_def_h(l)%start_index(j,i)
+                   surf_h(l)%end_index(j,i)   = surf_def_h(l)%end_index(j,i)
+                ENDIF
+                IF ( l == 0 )  THEN
+                   IF ( surf_lsm_h%start_index(j,i) <=                         &
+                        surf_lsm_h%end_index(j,i) )  THEN
+                      surf_h(l)%start_index(j,i) = surf_lsm_h%start_index(j,i)
+                      surf_h(l)%end_index(j,i)   = surf_lsm_h%end_index(j,i)
+                   ENDIF
+                   IF ( surf_usm_h%start_index(j,i) <=                         &
+                        surf_usm_h%end_index(j,i) )  THEN
+                      surf_h(l)%start_index(j,i) = surf_usm_h%start_index(j,i)
+                      surf_h(l)%end_index(j,i)   = surf_usm_h%end_index(j,i)
+                   ENDIF
+                ENDIF
+             ENDDO
+          ENDDO
        ENDDO
 
@@ -1972,4 +2446,16 @@
                    IF ( ALLOCATED( surf_def_v(l)%ssws ) )                      &
                       surf_v(l)%ssws(mm(l))    = surf_def_v(l)%ssws(m)
+#if defined( __chem )
+                   IF ( ALLOCATED( surf_def_v(l)%css ) )  THEN               
+                      DO  lsp = 1, nvar
+                         surf_v(l)%css(lsp,mm(l)) = surf_def_v(l)%css(lsp,m)
+                      ENDDO
+                   ENDIF
+                   IF ( ALLOCATED( surf_def_v(l)%cssws ) )  THEN               
+                      DO  lsp = 1, nvar
+                         surf_v(l)%cssws(lsp,mm(l)) = surf_def_v(l)%cssws(lsp,m)
+                      ENDDO
+                   ENDIF
+#endif
                    IF ( ALLOCATED( surf_def_v(l)%ncsws ) )                     &
                       surf_v(l)%ncsws(mm(l))   = surf_def_v(l)%ncsws(m)
@@ -2020,4 +2506,16 @@
                    IF ( ALLOCATED( surf_lsm_v(l)%ssws ) )                      &
                       surf_v(l)%ssws(mm(l))    = surf_lsm_v(l)%ssws(m)
+#if defined( __chem )
+                   IF ( ALLOCATED( surf_lsm_v(l)%css ) )  THEN              
+                      DO  lsp = 1, nvar
+                         surf_v(l)%css(lsp,mm(l)) = surf_lsm_v(l)%css(lsp,m)
+                      ENDDO
+                   ENDIF
+                   IF ( ALLOCATED( surf_lsm_v(l)%cssws ) )  THEN              
+                      DO  lsp = 1, nvar
+                         surf_v(l)%cssws(lsp,mm(l)) = surf_lsm_v(l)%cssws(lsp,m)
+                      ENDDO
+                   ENDIF
+#endif
                    IF ( ALLOCATED( surf_lsm_v(l)%ncsws ) )                     &
                       surf_v(l)%ncsws(mm(l))   = surf_lsm_v(l)%ncsws(m)
@@ -2068,4 +2566,16 @@
                    IF ( ALLOCATED( surf_usm_v(l)%ssws ) )                      &
                       surf_v(l)%ssws(mm(l))    = surf_usm_v(l)%ssws(m)
+#if defined( __chem )
+                   IF ( ALLOCATED( surf_usm_v(l)%css ) )  THEN              
+                      DO  lsp = 1, nvar
+                         surf_v(l)%css(lsp,mm(l)) = surf_usm_v(l)%css(lsp,m)
+                      ENDDO
+                   ENDIF
+                   IF ( ALLOCATED( surf_usm_v(l)%cssws ) )  THEN              
+                      DO  lsp = 1, nvar
+                         surf_v(l)%cssws(lsp,mm(l)) = surf_usm_v(l)%cssws(lsp,m)
+                      ENDDO
+                   ENDIF
+#endif
                    IF ( ALLOCATED( surf_usm_v(l)%ncsws ) )                     &
                       surf_v(l)%ncsws(mm(l))   = surf_usm_v(l)%ncsws(m)
@@ -2171,4 +2681,14 @@
              WRITE ( 14 )  surf_h(l)%ssws
           ENDIF
+#if defined ( __chem )
+          WRITE ( 14 )  'surf_h(' // dum // ')%css                 '
+          IF ( ALLOCATED ( surf_h(l)%css ) )  THEN 
+             WRITE ( 14 )  surf_h(l)%css
+          ENDIF
+          WRITE ( 14 )  'surf_h(' // dum // ')%cssws               '
+          IF ( ALLOCATED ( surf_h(l)%cssws ) )  THEN 
+             WRITE ( 14 )  surf_h(l)%cssws
+          ENDIF
+#endif
           WRITE ( 14 )  'surf_h(' // dum // ')%qcsws               '  
           IF ( ALLOCATED ( surf_h(l)%qcsws ) )  THEN
@@ -2254,4 +2774,14 @@
              WRITE ( 14 )  surf_v(l)%ssws
           ENDIF
+#if defined( __chem )
+          WRITE ( 14 )  'surf_v(' // dum // ')%css                 '  
+          IF ( ALLOCATED ( surf_v(l)%css ) )  THEN
+             WRITE ( 14 )  surf_v(l)%css
+          ENDIF
+          WRITE ( 14 )  'surf_v(' // dum // ')%cssws               '  
+          IF ( ALLOCATED ( surf_v(l)%cssws ) )  THEN
+             WRITE ( 14 )  surf_v(l)%cssws
+          ENDIF
+#endif
           WRITE ( 14 )  'surf_v(' // dum // ')%qcsws               '  
           IF ( ALLOCATED ( surf_v(l)%qcsws ) )  THEN
@@ -2399,5 +2929,5 @@
        DO  l = 0, 3
           surf_v(l)%ns = ns_v_on_file(l)
-          CALL allocate_surface_attributes_v( surf_v(l), .FALSE.,              &
+          CALL allocate_surface_attributes_v( surf_v(l),                       &
                                               nys_on_file, nyn_on_file,        &
                                               nxl_on_file, nxr_on_file )
@@ -2486,4 +3016,12 @@
                       IF ( ALLOCATED( surf_h(0)%ssws )  .AND.  kk == 1 )       &
                          READ ( 13 )  surf_h(0)%ssws
+#if defined( __chem )
+                   CASE ( 'surf_h(0)%css' )
+                      IF ( ALLOCATED( surf_h(0)%css )  .AND.  kk == 1 )        &
+                         READ ( 13 )  surf_h(0)%css
+                   CASE ( 'surf_h(0)%cssws' )         
+                      IF ( ALLOCATED( surf_h(0)%cssws )  .AND.  kk == 1 )      &
+                         READ ( 13 )  surf_h(0)%cssws
+#endif
                    CASE ( 'surf_h(0)%qcsws' )         
                       IF ( ALLOCATED( surf_h(0)%qcsws )  .AND.  kk == 1 )      &
@@ -2554,4 +3092,12 @@
                       IF ( ALLOCATED( surf_h(1)%ssws )  .AND.  kk == 1 )       &
                          READ ( 13 )  surf_h(1)%ssws
+#if defined( __chem )
+                   CASE ( 'surf_h(1)%css' )
+                      IF ( ALLOCATED( surf_h(1)%css )  .AND.  kk == 1 )        &
+                         READ ( 13 )  surf_h(1)%css
+                   CASE ( 'surf_h(1)%cssws' )         
+                      IF ( ALLOCATED( surf_h(1)%cssws )  .AND.  kk == 1 )      &
+                         READ ( 13 )  surf_h(1)%cssws
+#endif
                    CASE ( 'surf_h(1)%qcsws' )         
                       IF ( ALLOCATED( surf_h(1)%qcsws )  .AND.  kk == 1 )      &
@@ -2622,4 +3168,12 @@
                       IF ( ALLOCATED( surf_h(2)%ssws )  .AND.  kk == 1 )       &
                          READ ( 13 )  surf_h(2)%ssws
+#if defined( __chem )
+                   CASE ( 'surf_h(2)%css' )
+                      IF ( ALLOCATED( surf_h(2)%css )  .AND.  kk == 1 )        &
+                         READ ( 13 )  surf_h(2)%css
+                   CASE ( 'surf_h(2)%cssws' )         
+                      IF ( ALLOCATED( surf_h(2)%cssws )  .AND.  kk == 1 )      &
+                         READ ( 13 )  surf_h(2)%cssws
+#endif
                    CASE ( 'surf_h(2)%qcsws' )         
                       IF ( ALLOCATED( surf_h(2)%qcsws )  .AND.  kk == 1 )      &
@@ -2686,4 +3240,12 @@
                       IF ( ALLOCATED( surf_v(0)%ssws )  .AND.  kk == 1 )       &
                          READ ( 13 )  surf_v(0)%ssws
+#if defined( __chem )
+                   CASE ( 'surf_v(0)%css' ) 
+                      IF ( ALLOCATED( surf_v(0)%css )  .AND.  kk == 1 )        &
+                         READ ( 13 )  surf_v(0)%css
+                   CASE ( 'surf_v(0)%cssws' )         
+                      IF ( ALLOCATED( surf_v(0)%cssws )  .AND.  kk == 1 )      &
+                         READ ( 13 )  surf_v(0)%cssws
+#endif
                    CASE ( 'surf_v(0)%qcsws' )         
                       IF ( ALLOCATED( surf_v(0)%qcsws )  .AND.  kk == 1 )      &
@@ -2757,4 +3319,12 @@
                       IF ( ALLOCATED( surf_v(1)%ssws )  .AND.  kk == 1 )       &
                          READ ( 13 )  surf_v(1)%ssws
+#if defined( __chem )
+                   CASE ( 'surf_v(1)%css' ) 
+                      IF ( ALLOCATED( surf_v(1)%css )  .AND.  kk == 1 )        &
+                         READ ( 13 )  surf_v(1)%css
+                   CASE ( 'surf_v(1)%cssws' )         
+                      IF ( ALLOCATED( surf_v(1)%cssws )  .AND.  kk == 1 )      &
+                         READ ( 13 )  surf_v(1)%cssws
+#endif
                    CASE ( 'surf_v(1)%qcsws' )         
                       IF ( ALLOCATED( surf_v(1)%qcsws )  .AND.  kk == 1 )      &
@@ -2828,4 +3398,12 @@
                       IF ( ALLOCATED( surf_v(2)%ssws )  .AND.  kk == 1 )       &
                          READ ( 13 )  surf_v(2)%ssws
+#if defined( __chem )
+                   CASE ( 'surf_v(2)%css' ) 
+                      IF ( ALLOCATED( surf_v(2)%css )  .AND.  kk == 1 )        &
+                         READ ( 13 )  surf_v(2)%css
+                   CASE ( 'surf_v(2)%cssws' )         
+                      IF ( ALLOCATED( surf_v(2)%cssws )  .AND.  kk == 1 )      &
+                         READ ( 13 )  surf_v(2)%cssws
+#endif
                    CASE ( 'surf_v(2)%qcsws' )         
                       IF ( ALLOCATED( surf_v(2)%qcsws )  .AND.  kk == 1 )      &
@@ -2899,4 +3477,12 @@
                       IF ( ALLOCATED( surf_v(3)%ssws )  .AND.  kk == 1 )       &
                          READ ( 13 )  surf_v(3)%ssws
+#if defined( __chem )
+                   CASE ( 'surf_v(3)%css' ) 
+                      IF ( ALLOCATED( surf_v(3)%css )  .AND.  kk == 1 )        &
+                         READ ( 13 )  surf_v(3)%css
+                   CASE ( 'surf_v(3)%cssws' )         
+                      IF ( ALLOCATED( surf_v(3)%cssws )  .AND.  kk == 1 )      &
+                         READ ( 13 )  surf_v(3)%cssws
+#endif
                    CASE ( 'surf_v(3)%qcsws' )         
                       IF ( ALLOCATED( surf_v(3)%qcsws )  .AND.  kk == 1 )      &
@@ -3047,9 +3633,10 @@
              INTEGER(iwp)      ::  m_file      !< respective surface-element index of current surface array 
              INTEGER(iwp)      ::  m_target    !< respecitve surface-element index of surface array on file
+             INTEGER(iwp)      ::  lsp         !< running index chemical species
 
              TYPE( surf_type ) ::  surf_target !< target surface type
              TYPE( surf_type ) ::  surf_file   !< surface type on file
 
-             IF ( SCAN( TRIM( field_chr ), '%us' ) /= 0 )  THEN 
+             IF ( INDEX( TRIM( field_chr ), '%us' ) /= 0 )  THEN 
                 IF ( ALLOCATED( surf_target%us )  .AND.                        &
                      ALLOCATED( surf_file%us   ) )                             & 
@@ -3057,5 +3644,5 @@
              ENDIF
 
-             IF ( SCAN( TRIM( field_chr ), '%ol' ) /= 0 )  THEN 
+             IF ( INDEX( TRIM( field_chr ), '%ol' ) /= 0 )  THEN 
                 IF ( ALLOCATED( surf_target%ol )  .AND.                        &
                      ALLOCATED( surf_file%ol   ) )                             & 
@@ -3063,5 +3650,5 @@
              ENDIF
 
-             IF ( SCAN( TRIM( field_chr ), '%usws' ) /= 0 )  THEN 
+             IF ( INDEX( TRIM( field_chr ), '%usws' ) /= 0 )  THEN 
                 IF ( ALLOCATED( surf_target%usws )  .AND.                      &
                      ALLOCATED( surf_file%usws   ) )                           & 
@@ -3069,5 +3656,5 @@
              ENDIF
 
-             IF ( SCAN( TRIM( field_chr ), '%vsws' ) /= 0 )  THEN 
+             IF ( INDEX( TRIM( field_chr ), '%vsws' ) /= 0 )  THEN 
                 IF ( ALLOCATED( surf_target%vsws )  .AND.                      &
                      ALLOCATED( surf_file%vsws   ) )                           & 
@@ -3075,5 +3662,5 @@
              ENDIF
 
-             IF ( SCAN( TRIM( field_chr ), '%ts' ) /= 0 )  THEN 
+             IF ( INDEX( TRIM( field_chr ), '%ts' ) /= 0 )  THEN 
                 IF ( ALLOCATED( surf_target%ts )  .AND.                        &
                      ALLOCATED( surf_file%ts   ) )                             & 
@@ -3081,5 +3668,5 @@
              ENDIF
 
-             IF ( SCAN( TRIM( field_chr ), '%shf' ) /= 0 )  THEN 
+             IF ( INDEX( TRIM( field_chr ), '%shf' ) /= 0 )  THEN 
                 IF ( ALLOCATED( surf_target%shf )  .AND.                       &
                      ALLOCATED( surf_file%shf   ) )                            & 
@@ -3087,5 +3674,5 @@
              ENDIF
 
-             IF ( SCAN( TRIM( field_chr ), '%qs' ) /= 0 )  THEN 
+             IF ( INDEX( TRIM( field_chr ), '%qs' ) /= 0 )  THEN 
                 IF ( ALLOCATED( surf_target%qs )  .AND.                        &
                      ALLOCATED( surf_file%qs   ) )                             & 
@@ -3093,5 +3680,5 @@
              ENDIF
 
-             IF ( SCAN( TRIM( field_chr ), '%qsws' ) /= 0 )  THEN 
+             IF ( INDEX( TRIM( field_chr ), '%qsws' ) /= 0 )  THEN 
                 IF ( ALLOCATED( surf_target%qsws )  .AND.                      &
                      ALLOCATED( surf_file%qsws   ) )                           & 
@@ -3099,5 +3686,5 @@
              ENDIF
 
-             IF ( SCAN( TRIM( field_chr ), '%ss' ) /= 0 )  THEN 
+             IF ( INDEX( TRIM( field_chr ), '%ss' ) /= 0 )  THEN 
                 IF ( ALLOCATED( surf_target%ss )  .AND.                        &
                      ALLOCATED( surf_file%ss   ) )                             & 
@@ -3105,5 +3692,5 @@
              ENDIF
 
-             IF ( SCAN( TRIM( field_chr ), '%ssws' ) /= 0 )  THEN 
+             IF ( INDEX( TRIM( field_chr ), '%ssws' ) /= 0 )  THEN 
                 IF ( ALLOCATED( surf_target%ssws )  .AND.                      &
                      ALLOCATED( surf_file%ssws   ) )                           & 
@@ -3111,5 +3698,24 @@
              ENDIF
 
-             IF ( SCAN( TRIM( field_chr ), '%qcs' ) /= 0 )  THEN 
+#if defined( __chem )
+             IF ( INDEX( TRIM( field_chr ), '%css' ) /= 0 )  THEN 
+                IF ( ALLOCATED( surf_target%css )  .AND.                     &
+                     ALLOCATED( surf_file%css   ) )  THEN                  
+                   DO  lsp = 1, nvar
+                      surf_target%css(lsp,m_target) = surf_file%css(lsp,m_file)
+                   ENDDO
+                ENDIF
+             ENDIF
+             IF ( INDEX( TRIM( field_chr ), '%cssws' ) /= 0 )  THEN 
+                IF ( ALLOCATED( surf_target%cssws )  .AND.                     &
+                     ALLOCATED( surf_file%cssws   ) )  THEN                  
+                   DO  lsp = 1, nvar
+                      surf_target%cssws(lsp,m_target) = surf_file%cssws(lsp,m_file)
+                   ENDDO
+                ENDIF
+             ENDIF
+#endif
+
+             IF ( INDEX( TRIM( field_chr ), '%qcs' ) /= 0 )  THEN 
                 IF ( ALLOCATED( surf_target%qcs )  .AND.                       &
                      ALLOCATED( surf_file%qcs   ) )                            & 
@@ -3117,5 +3723,5 @@
              ENDIF
 
-             IF ( SCAN( TRIM( field_chr ), '%qcsws' ) /= 0 )  THEN 
+             IF ( INDEX( TRIM( field_chr ), '%qcsws' ) /= 0 )  THEN 
                 IF ( ALLOCATED( surf_target%qcsws )  .AND.                     &
                      ALLOCATED( surf_file%qcsws   ) )                          & 
@@ -3123,5 +3729,5 @@
              ENDIF
 
-             IF ( SCAN( TRIM( field_chr ), '%ncs' ) /= 0 )  THEN 
+             IF ( INDEX( TRIM( field_chr ), '%ncs' ) /= 0 )  THEN 
                 IF ( ALLOCATED( surf_target%ncs )  .AND.                       &
                      ALLOCATED( surf_file%ncs   ) )                            & 
@@ -3129,5 +3735,5 @@
              ENDIF
 
-             IF ( SCAN( TRIM( field_chr ), '%ncsws' ) /= 0 )  THEN 
+             IF ( INDEX( TRIM( field_chr ), '%ncsws' ) /= 0 )  THEN 
                 IF ( ALLOCATED( surf_target%ncsws )  .AND.                     &
                      ALLOCATED( surf_file%ncsws   ) )                          & 
@@ -3135,5 +3741,5 @@
              ENDIF
 
-             IF ( SCAN( TRIM( field_chr ), '%qrs' ) /= 0 )  THEN 
+             IF ( INDEX( TRIM( field_chr ), '%qrs' ) /= 0 )  THEN 
                 IF ( ALLOCATED( surf_target%qrs )  .AND.                       &
                      ALLOCATED( surf_file%qrs   ) )                            & 
@@ -3141,5 +3747,5 @@
              ENDIF
 
-             IF ( SCAN( TRIM( field_chr ), '%qrsws' ) /= 0 )  THEN 
+             IF ( INDEX( TRIM( field_chr ), '%qrsws' ) /= 0 )  THEN 
                 IF ( ALLOCATED( surf_target%qrsws )  .AND.                     &
                      ALLOCATED( surf_file%qrsws   ) )                          & 
@@ -3147,5 +3753,5 @@
              ENDIF
 
-             IF ( SCAN( TRIM( field_chr ), '%nrs' ) /= 0 )  THEN 
+             IF ( INDEX( TRIM( field_chr ), '%nrs' ) /= 0 )  THEN 
                 IF ( ALLOCATED( surf_target%nrs )  .AND.                       &
                      ALLOCATED( surf_file%nrs   ) )                            & 
@@ -3153,5 +3759,5 @@
              ENDIF
 
-             IF ( SCAN( TRIM( field_chr ), '%nrsws' ) /= 0 )  THEN 
+             IF ( INDEX( TRIM( field_chr ), '%nrsws' ) /= 0 )  THEN 
                 IF ( ALLOCATED( surf_target%nrsws )  .AND.                     &
                      ALLOCATED( surf_file%nrsws   ) )                          & 
@@ -3159,5 +3765,5 @@
              ENDIF
 
-             IF ( SCAN( TRIM( field_chr ), '%sasws' ) /= 0 )  THEN 
+             IF ( INDEX( TRIM( field_chr ), '%sasws' ) /= 0 )  THEN 
                 IF ( ALLOCATED( surf_target%sasws )  .AND.                     &
                      ALLOCATED( surf_file%sasws   ) )                          & 
@@ -3165,5 +3771,5 @@
              ENDIF
 
-             IF ( SCAN( TRIM( field_chr ), '%mom_uv' ) /= 0 )  THEN 
+             IF ( INDEX( TRIM( field_chr ), '%mom_uv' ) /= 0 )  THEN 
                 IF ( ALLOCATED( surf_target%mom_flux_uv )  .AND.               &
                      ALLOCATED( surf_file%mom_flux_uv   ) )                    & 
@@ -3172,5 +3778,5 @@
              ENDIF
 
-             IF ( SCAN( TRIM( field_chr ), '%mom_w' ) /= 0 )  THEN 
+             IF ( INDEX( TRIM( field_chr ), '%mom_w' ) /= 0 )  THEN 
                 IF ( ALLOCATED( surf_target%mom_flux_w )  .AND.                &
                      ALLOCATED( surf_file%mom_flux_w   ) )                     & 
@@ -3179,5 +3785,5 @@
              ENDIF
 
-             IF ( SCAN( TRIM( field_chr ), '%mom_tke' ) /= 0 )  THEN 
+             IF ( INDEX( TRIM( field_chr ), '%mom_tke' ) /= 0 )  THEN 
                 IF ( ALLOCATED( surf_target%mom_flux_tke )  .AND.              &
                      ALLOCATED( surf_file%mom_flux_tke   ) )                   & 
@@ -3214,4 +3820,124 @@
     END SUBROUTINE surface_last_actions
 
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Routine maps surface data read from file after restart - 1D arrays
+!------------------------------------------------------------------------------!
+    SUBROUTINE surface_restore_elements_1d( surf_target, surf_file,            &
+                                            start_index_c,                     &
+                                            start_index_on_file,               &
+                                            end_index_on_file,                 &
+                                            nxlc, nysc, nxlf, nxrf, nysf, nynf,&
+                                            nys_on_file, nyn_on_file,          &
+                                            nxl_on_file,nxr_on_file )
+
+       IMPLICIT NONE
+    
+       INTEGER(iwp) ::  i         !< running index along x-direction, refers to former domain size
+       INTEGER(iwp) ::  ic        !< running index along x-direction, refers to current domain size
+       INTEGER(iwp) ::  j         !< running index along y-direction, refers to former domain size
+       INTEGER(iwp) ::  jc        !< running index along y-direction, refers to former domain size        
+       INTEGER(iwp) ::  m         !< surface-element index on file
+       INTEGER(iwp) ::  mm        !< surface-element index on current subdomain
+       INTEGER(iwp) ::  nxlc      !< index of left boundary on current subdomain
+       INTEGER(iwp) ::  nxlf      !< index of left boundary on former subdomain 
+       INTEGER(iwp) ::  nxrf      !< index of right boundary on former subdomain
+       INTEGER(iwp) ::  nysc      !< index of north boundary on current subdomain
+       INTEGER(iwp) ::  nynf      !< index of north boundary on former subdomain
+       INTEGER(iwp) ::  nysf      !< index of south boundary on former subdomain
+
+       INTEGER(iwp) ::  nxl_on_file !< leftmost index on file
+       INTEGER(iwp) ::  nxr_on_file !< rightmost index on file
+       INTEGER(iwp) ::  nyn_on_file !< northmost index on file
+       INTEGER(iwp) ::  nys_on_file !< southmost index on file
+
+       INTEGER(iwp), DIMENSION(nys:nyn,nxl:nxr) ::  start_index_c             
+       INTEGER(iwp), DIMENSION(nys_on_file:nyn_on_file,nxl_on_file:nxr_on_file) :: & 
+                            start_index_on_file   !< start index of surface elements on file
+       INTEGER(iwp), DIMENSION(nys_on_file:nyn_on_file,nxl_on_file:nxr_on_file) :: & 
+                            end_index_on_file     !< end index of surface elements on file
+       
+       REAL(wp), DIMENSION(:) ::  surf_target !< target surface type
+       REAL(wp), DIMENSION(:) ::  surf_file   !< surface type on file
+       
+       ic = nxlc
+       DO  i = nxlf, nxrf
+          jc = nysc
+          DO  j = nysf, nynf
+
+             mm = start_index_c(jc,ic)
+             DO  m = start_index_on_file(j,i), end_index_on_file(j,i)
+                surf_target(mm) = surf_file(m)
+                mm = mm + 1
+             ENDDO
+
+             jc = jc + 1
+          ENDDO
+          ic = ic + 1
+       ENDDO
+
+
+    END SUBROUTINE surface_restore_elements_1d
+   
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Routine maps surface data read from file after restart - 2D arrays
+!------------------------------------------------------------------------------! 
+    SUBROUTINE surface_restore_elements_2d( surf_target, surf_file,            &
+                                            start_index_c,                     &
+                                            start_index_on_file,               &
+                                            end_index_on_file,                 &
+                                            nxlc, nysc, nxlf, nxrf, nysf, nynf,&
+                                            nys_on_file, nyn_on_file,          &
+                                            nxl_on_file,nxr_on_file )
+
+       IMPLICIT NONE
+    
+       INTEGER(iwp) ::  i         !< running index along x-direction, refers to former domain size
+       INTEGER(iwp) ::  ic        !< running index along x-direction, refers to current domain size
+       INTEGER(iwp) ::  j         !< running index along y-direction, refers to former domain size
+       INTEGER(iwp) ::  jc        !< running index along y-direction, refers to former domain size        
+       INTEGER(iwp) ::  m         !< surface-element index on file
+       INTEGER(iwp) ::  mm        !< surface-element index on current subdomain
+       INTEGER(iwp) ::  nxlc      !< index of left boundary on current subdomain
+       INTEGER(iwp) ::  nxlf      !< index of left boundary on former subdomain 
+       INTEGER(iwp) ::  nxrf      !< index of right boundary on former subdomain
+       INTEGER(iwp) ::  nysc      !< index of north boundary on current subdomain
+       INTEGER(iwp) ::  nynf      !< index of north boundary on former subdomain
+       INTEGER(iwp) ::  nysf      !< index of south boundary on former subdomain
+
+       INTEGER(iwp) ::  nxl_on_file !< leftmost index on file
+       INTEGER(iwp) ::  nxr_on_file !< rightmost index on file
+       INTEGER(iwp) ::  nyn_on_file !< northmost index on file
+       INTEGER(iwp) ::  nys_on_file !< southmost index on file
+
+       INTEGER(iwp), DIMENSION(nys:nyn,nxl:nxr) ::  start_index_c !< start index of surface type
+       INTEGER(iwp), DIMENSION(nys_on_file:nyn_on_file,nxl_on_file:nxr_on_file) :: & 
+                            start_index_on_file   !< start index of surface elements on file
+       INTEGER(iwp), DIMENSION(nys_on_file:nyn_on_file,nxl_on_file:nxr_on_file) :: & 
+                            end_index_on_file     !< end index of surface elements on file
+       
+       REAL(wp), DIMENSION(:,:) ::  surf_target !< target surface type
+       REAL(wp), DIMENSION(:,:) ::  surf_file   !< surface type on file
+       
+       ic = nxlc
+       DO  i = nxlf, nxrf
+          jc = nysc
+          DO  j = nysf, nynf
+             mm = start_index_c(jc,ic)
+             DO  m = start_index_on_file(j,i), end_index_on_file(j,i)
+                surf_target(:,mm) = surf_file(:,m)
+                mm = mm + 1
+             ENDDO
+
+             jc = jc + 1
+          ENDDO
+          ic = ic + 1
+       ENDDO
+
+    END SUBROUTINE surface_restore_elements_2d
+
 
  END MODULE surface_mod
Index: palm/trunk/SOURCE/swap_timelevel.f90
===================================================================
--- palm/trunk/SOURCE/swap_timelevel.f90	(revision 2693)
+++ palm/trunk/SOURCE/swap_timelevel.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file swap_timelevel.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
@@ -25,4 +25,8 @@
 ! -----------------
 ! $Id$
+! Moved TKE to turbulence_closure_mod (TG)
+! Implementation of chemistry module (FK)
+! 
+! 2350 2017-08-15 11:48:26Z kanani
 ! Bugfix in nopointer version
 ! 
@@ -122,4 +126,9 @@
 #endif
 
+#if defined( __chem )
+    USE chemistry_model_mod,                                                   &
+        ONLY:  chem_swap_timelevel 
+#endif
+
     USE land_surface_model_mod,                                                &
         ONLY: lsm_swap_timelevel
@@ -129,5 +138,6 @@
 
     USE control_parameters,                                                    &
-        ONLY:  cloud_physics, constant_diffusion, humidity, land_surface,      &
+        ONLY:  air_chemistry, cloud_physics, constant_diffusion,               &
+               humidity, land_surface,                                         &
                microphysics_morrison, microphysics_seifert, neutral, ocean,    &
                passive_scalar, timestep_count, urban_surface
@@ -138,4 +148,7 @@
     USE pmc_interface,                                                         &
         ONLY: nested_run, pmci_set_swaplevel
+
+    USE turbulence_closure_mod,                                                &
+        ONLY:  tcm_swap_timelevel
 
     USE urban_surface_mod,                                                     &
@@ -168,13 +181,5 @@
     ENDDO
 
-    IF ( .NOT. constant_diffusion )  THEN
-       DO  i = nxlg, nxrg
-          DO  j = nysg, nyng
-             DO  k = nzb, nzt+1
-                e(k,j,i) = e_p(k,j,i)
-             ENDDO
-          ENDDO
-       ENDDO
-    ENDIF
+    CALL tcm_swap_timelevel ( 0 )
 
     IF ( ocean )  THEN
@@ -219,7 +224,4 @@
              pt => pt_1;  pt_p => pt_2
           ENDIF
-          IF ( .NOT. constant_diffusion )  THEN
-             e => e_1;    e_p => e_2
-          ENDIF
           IF ( ocean )  THEN
              sa => sa_1;  sa_p => sa_2
@@ -240,4 +242,8 @@
           ENDIF
 
+#if defined( __chem )
+          IF ( air_chemistry )  CALL chem_swap_timelevel(0)
+#endif
+
           swap_level = 1
 
@@ -249,7 +255,4 @@
           IF ( .NOT. neutral )  THEN
              pt => pt_2;  pt_p => pt_1
-          ENDIF
-          IF ( .NOT. constant_diffusion )  THEN
-             e => e_2;    e_p => e_1
           ENDIF
           IF ( ocean )  THEN
@@ -271,7 +274,13 @@
           ENDIF
 
+#if defined( __chem )
+          IF ( air_chemistry )  CALL chem_swap_timelevel(1)
+#endif
+
           swap_level = 2
 
     END SELECT
+
+    CALL tcm_swap_timelevel ( MOD( timestep_count, 2) )
 
     IF ( land_surface )  THEN
Index: palm/trunk/SOURCE/synthetic_turbulence_generator_mod.f90
===================================================================
--- palm/trunk/SOURCE/synthetic_turbulence_generator_mod.f90	(revision 2693)
+++ palm/trunk/SOURCE/synthetic_turbulence_generator_mod.f90	(revision 2696)
@@ -1,12 +1,12 @@
 !> @synthetic_turbulence_generator_mod.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM-4U.
-!
-! PALM-4U is free software: you can redistribute it and/or modify it under the
+! This file is part of the PALM model system.
+!
+! PALM is free software: you can redistribute it and/or modify it under the
 ! terms of the GNU General Public License as published by the Free Software
 ! Foundation, either version 3 of the License, or (at your option) any later
 ! version.
 !
-! PALM-4U is distributed in the hope that it will be useful, but WITHOUT ANY
+! PALM is distributed in the hope that it will be useful, but WITHOUT ANY
 ! WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
 ! A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
Index: palm/trunk/SOURCE/time_integration.f90
===================================================================
--- palm/trunk/SOURCE/time_integration.f90	(revision 2693)
+++ palm/trunk/SOURCE/time_integration.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file time_integration.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
@@ -25,4 +25,19 @@
 ! -----------------
 ! $Id$
+! - Implementation of uv exposure model (FK)
+! - Moved vnest_boundary_conds_khkm from tcm_diffusivities to here (TG)
+! - renamed diffusivities to tcm_diffusivities (TG)
+! - implement prognostic equation for diss (TG)
+! - Moved/commented CALL to chem_emissions (FK)
+! - Added CALL to chem_emissions (FK)
+! - Implementation of chemistry module (FK)
+! - Calls for setting boundary conditions in USM and LSM (MS)
+! - Large-scale forcing with larger-scale models implemented (MS)
+! - Rename usm_radiation into radiation_interactions; merge with branch 
+!   radiation (MS)
+! - added call for usm_green_heat_model for green building surfaces (RvT)
+! - added call for usm_temperature_near_surface for use in indoor model (RvT)
+! 
+! 2617 2017-11-16 12:47:24Z suehring
 ! Bugfix, assure that the reference state does not become zero.
 ! 
@@ -287,5 +302,5 @@
 
     USE arrays_3d,                                                             &
-        ONLY:  diss, dzu, e, e_p, nc, nc_p, nr, nr_p, prho, pt, pt_p, pt_init, &
+        ONLY:  diss, diss_p, dzu, e, e_p, nc, nc_p, nr, nr_p, prho, pt, pt_p, pt_init, &
                q_init, q, qc, qc_p, ql, ql_c, ql_v, ql_vp, qr, qr_p, q_p,      &
                ref_state, rho_ocean, s, s_p, sa_p, tend, u, u_p, v, vpt,       &
@@ -295,7 +310,15 @@
         ONLY:  calc_mean_profile
 
+#if defined( __chem )
+    USE chemistry_model_mod,                                                   &
+        ONLY:  chem_emissions, chem_species
+
+    USE chem_modules,                                                          &
+        ONLY:  nspec 
+#endif
+
     USE control_parameters,                                                    &
-        ONLY:  advected_distance_x, advected_distance_y, average_count_3d,     &
-               averaging_interval, averaging_interval_pr,                      &
+        ONLY:  advected_distance_x, advected_distance_y, air_chemistry,        &
+               average_count_3d, averaging_interval, averaging_interval_pr,    &
                bc_lr_cyc, bc_ns_cyc, bc_pt_t_val,                              &
                bc_q_t_val, call_psolver_at_all_substeps, cloud_droplets,       &
@@ -307,6 +330,6 @@
                dt_coupling, dt_data_output_av, dt_disturb, dt_do2d_xy,         &
                dt_do2d_xz, dt_do2d_yz, dt_do3d, dt_domask,dt_dopts, dt_dopr,   &
-               dt_dopr_listing, dt_dots, dt_dvrp, dt_run_control,              &
-               end_time, first_call_lpm, galilei_transformation, humidity,     &
+               dt_dopr_listing, dt_dots, dt_dvrp, dt_run_control, end_time,    &
+               first_call_lpm, forcing, galilei_transformation, humidity,      &
                intermediate_timestep_count, intermediate_timestep_count_max,   &
                land_surface, large_scale_forcing,                              &
@@ -316,5 +339,5 @@
                ocean, passive_scalar,                                          &
                prho_reference, pt_reference, pt_slope_offset, random_heatflux, &
-               run_coupled, simulated_time, simulated_time_chr,                &
+               rans_tke_e, run_coupled, simulated_time, simulated_time_chr,    &
                skip_time_do2d_xy, skip_time_do2d_xz, skip_time_do2d_yz,        &
                skip_time_do3d, skip_time_domask, skip_time_dopr,               &
@@ -328,6 +351,6 @@
                turbulent_inflow, turbulent_outflow, urban_surface,             &
                use_initial_profile_as_reference,                               &
-               use_single_reference_value, u_gtrans, v_gtrans, virtual_flight, &
-               wind_turbine, ws_scheme_mom, ws_scheme_sca
+               use_single_reference_value, uv_exposure, u_gtrans, v_gtrans,    &
+               virtual_flight, wind_turbine, ws_scheme_mom, ws_scheme_sca
 
     USE cpulog,                                                                &
@@ -349,9 +372,13 @@
 
     USE land_surface_model_mod,                                                &
-        ONLY:  lsm_energy_balance, lsm_soil_model,                             &
+        ONLY:  lsm_boundary_condition, lsm_energy_balance, lsm_soil_model,     &
                skip_time_do_lsm
 
     USE lsf_nudging_mod,                                                       &
-        ONLY:  calc_tnudge, ls_forcing_surf, ls_forcing_vert, nudge_ref
+        ONLY:  calc_tnudge, ls_forcing_surf, ls_forcing_vert, nudge_ref,       &
+               forcing_bc, forcing_bc_mass_conservation
+
+    USE netcdf_data_input_mod,                                                 &
+        ONLY:  force, netcdf_data_input_lsf
 
     USE microphysics_mod,                                                      &
@@ -368,7 +395,4 @@
                pmci_ensure_nest_mass_conservation, pmci_synchronize
 
-    USE production_e_mod,                                                      &
-        ONLY:  production_e_init
-
     USE progress_bar,                                                          &
         ONLY:  finish_progress_bar, output_progress_bar
@@ -379,4 +403,5 @@
     USE radiation_model_mod,                                                   &
         ONLY: dt_radiation, force_radiation_call, radiation, radiation_control,&
+              radiation_interaction, radiation_interactions,                   &
               skip_time_do_radiation, time_radiation
 
@@ -395,7 +420,12 @@
         ONLY:  surf_def_h, surf_lsm_h, surf_usm_h
 
+    USE turbulence_closure_mod,                                                &
+        ONLY:  tcm_diffusivities, production_e_init
+
     USE urban_surface_mod,                                                     &
-        ONLY:  usm_material_heat_model, usm_material_model,                    &
-               usm_radiation, usm_surface_energy_balance
+        ONLY:  usm_boundary_condition, usm_material_heat_model,                &
+               usm_material_model,                                             &
+               usm_surface_energy_balance, usm_green_heat_model,               &
+               usm_temperature_near_surface
 
     USE synthetic_turbulence_generator_mod,                                    &
@@ -404,4 +434,7 @@
     USE user_actions_mod,                                                      &
         ONLY:  user_actions
+
+    USE uv_exposure_model_mod,                                                 &
+        ONLY:  uvem_calc_exposure
 
     USE wind_turbine_model_mod,                                                &
@@ -417,8 +450,9 @@
 
     CHARACTER (LEN=9) ::  time_to_string          !< 
+    INTEGER           ::  n
+    INTEGER           ::  lsp
 
     REAL(wp) ::  dt_3d_old  !< temporary storage of timestep to be used for
                             !< steering of run control output interval
-
 !
 !-- At beginning determine the first time step
@@ -501,4 +535,11 @@
            bc_q_t_val  = ( q_init(nzt+1) - q_init(nzt) ) / dzu(nzt+1)
        ENDIF
+!
+!--    If forcing by larger-scale models is applied, check if new data
+!--    at domain boundaries need to be read.
+       IF ( forcing )  THEN
+          IF ( force%time(force%tind_p) <= simulated_time )                    &
+             CALL netcdf_data_input_lsf
+       ENDIF
 
 !
@@ -617,4 +658,12 @@
           CALL exchange_horiz( pt_p, nbgp )
           IF ( .NOT. constant_diffusion )  CALL exchange_horiz( e_p, nbgp )
+          IF ( rans_tke_e  .OR.  wang_kernel  .OR.  collision_turbulence       &
+               .OR.  use_sgs_for_particles )  THEN
+             IF ( rans_tke_e )  THEN
+                CALL exchange_horiz( diss_p, nbgp )
+             ELSE
+                CALL exchange_horiz( diss, nbgp )
+             ENDIF
+          ENDIF
           IF ( ocean )  THEN
              CALL exchange_horiz( sa_p, nbgp )
@@ -639,10 +688,12 @@
              CALL exchange_horiz( ql_vp, nbgp )
           ENDIF
-          IF ( wang_kernel  .OR.  collision_turbulence  .OR.                &
-               use_sgs_for_particles )  THEN
-             CALL exchange_horiz( diss, nbgp )
-          ENDIF
           IF ( passive_scalar )  CALL exchange_horiz( s_p, nbgp )
-
+#if defined( __chem )
+          IF ( air_chemistry )  THEN
+             DO  n = 1, nspec     
+                CALL exchange_horiz( chem_species(n)%conc_p, nbgp ) 
+             ENDDO
+          ENDIF
+#endif
           CALL cpu_log( log_point(26), 'exchange-horiz-progn', 'stop' )
 
@@ -756,5 +807,5 @@
                    CALL disturb_field( 'v', tend, v )
                 ELSEIF ( ( .NOT. bc_lr_cyc  .OR.  .NOT. bc_ns_cyc )            &
-                     .AND. .NOT. nest_domain )  THEN
+                     .AND. .NOT. nest_domain  .AND.  .NOT.  forcing )  THEN
 !
 !--                Runs with a non-cyclic lateral wall need perturbations
@@ -770,4 +821,15 @@
 
 !
+!--       Map forcing data derived from larger scale model onto domain 
+!--       boundaries. 
+          IF ( forcing  .AND.  intermediate_timestep_count ==                  &
+                               intermediate_timestep_count_max  )  THEN
+             CALL forcing_bc
+          ENDIF
+!
+!--       Moreover, ensure mass conservation at each RK substep.
+          IF ( forcing )  CALL forcing_bc_mass_conservation
+
+!
 !--       Reduce the velocity divergence via the equation for perturbation
 !--       pressure.
@@ -833,9 +895,8 @@
                 CALL cpu_log( log_point(19), 'surface_layer_fluxes', 'stop' )
              ENDIF
-
 !
 !--          If required, solve the energy balance for the surface and run soil 
 !--          model. Call for horizontal as well as vertical surfaces
-             IF ( land_surface .AND. time_since_reference_point > skip_time_do_lsm)  THEN
+             IF ( land_surface .AND. time_since_reference_point >= skip_time_do_lsm)  THEN
 
                 CALL cpu_log( log_point(54), 'land_surface', 'start' )
@@ -860,8 +921,12 @@
                 CALL lsm_energy_balance( .FALSE., 3 )
                 CALL lsm_soil_model( .FALSE., 3, .TRUE. )
+!
+!--             At the end, set boundary conditons for potential temperature
+!--             and humidity after running the land-surface model. This 
+!--             might be important for the nesting, where arrays are transfered.
+                CALL lsm_boundary_condition
 
                 CALL cpu_log( log_point(54), 'land_surface', 'stop' )
              ENDIF
-
 !
 !--          If required, solve the energy balance for urban surfaces and run 
@@ -871,9 +936,17 @@
                 CALL usm_surface_energy_balance
                 IF ( usm_material_model )  THEN
+                   CALL usm_green_heat_model
                    CALL usm_material_heat_model
                 ENDIF
+
+                CALL usm_temperature_near_surface
+!
+!--             At the end, set boundary conditons for potential temperature
+!--             and humidity after running the urban-surface model. This 
+!--             might be important for the nesting, where arrays are transfered.
+                CALL usm_boundary_condition
+
                 CALL cpu_log( log_point(74), 'urban_surface', 'stop' )
              ENDIF
-
 !
 !--          Compute the diffusion coefficients
@@ -881,13 +954,15 @@
              IF ( .NOT. humidity ) THEN
                 IF ( ocean )  THEN
-                   CALL diffusivities( prho, prho_reference )
+                   CALL tcm_diffusivities( prho, prho_reference )
                 ELSE
-                   CALL diffusivities( pt, pt_reference )
+                   CALL tcm_diffusivities( pt, pt_reference )
                 ENDIF
              ELSE
-                CALL diffusivities( vpt, pt_reference )
-             ENDIF
-
+                CALL tcm_diffusivities( vpt, pt_reference )
+             ENDIF
              CALL cpu_log( log_point(17), 'diffusivities', 'stop' )
+!
+!--          Vertical nesting: set fine grid eddy viscosity top boundary condition
+             IF ( vnest_init )  CALL vnest_boundary_conds_khkm
 
           ENDIF
@@ -914,8 +989,9 @@
                 CALL cpu_log( log_point(50), 'radiation', 'stop' )
 
-                IF (urban_surface)  THEN
-                   CALL cpu_log( log_point(75), 'usm_radiation', 'start' )
-                   CALL usm_radiation
-                   CALL cpu_log( log_point(75), 'usm_radiation', 'stop' )
+                IF ( urban_surface  .OR.  land_surface  .AND.                  &
+                     radiation_interactions )  THEN
+                   CALL cpu_log( log_point(75), 'radiation_interaction', 'start' )
+                   CALL radiation_interaction
+                   CALL cpu_log( log_point(75), 'radiation_interaction', 'stop' )
                 ENDIF
 
@@ -924,5 +1000,19 @@
 
        ENDDO   ! Intermediate step loop
-
+!
+!--          If required, consider chemical emissions
+!--          (todo (FK): Implement hourly call of emissions, using time_utc from
+!--                      data_and_time_mod.f90;
+!--                      move the CALL to appropriate location)
+! #if defined( __chem )
+!              IF ( air_chemistry ) THEN
+!                 CALL chem_emissions
+!              ENDIF
+! #endif
+!
+!--    If required, do UV exposure calculations
+       IF ( uv_exposure )  THEN
+          CALL uvem_calc_exposure
+       ENDIF
 !
 !--    Increase simulation time and output times
Index: palm/trunk/SOURCE/time_integration_spinup.f90
===================================================================
--- palm/trunk/SOURCE/time_integration_spinup.f90	(revision 2693)
+++ palm/trunk/SOURCE/time_integration_spinup.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file time_integration_spinup.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
@@ -25,4 +25,7 @@
 ! -----------------
 ! $Id$
+! Added radiation interactions (moved from USM) (MS)
+! 
+! 2544 2017-10-13 18:09:32Z maronga
 ! Date and time quantities are now read from date_and_time_mod 
 ! 
@@ -87,5 +90,6 @@
     USE radiation_model_mod,                                                   &
         ONLY:  dt_radiation, force_radiation_call, radiation,                  &
-               radiation_control, rad_sw_in, time_radiation 
+               radiation_control, rad_sw_in, time_radiation,                   &
+               radiation_interaction, radiation_interactions
 
     USE statistics,                                                            &
@@ -101,5 +105,6 @@
     USE urban_surface_mod,                                                     &
         ONLY:  usm_material_heat_model, usm_material_model,                    &
-               usm_radiation, usm_surface_energy_balance, usm_swap_timelevel
+               usm_surface_energy_balance, usm_swap_timelevel,                 &
+               usm_green_heat_model, usm_temperature_near_surface
 
 
@@ -274,5 +279,9 @@
                 CALL usm_surface_energy_balance
                 IF ( usm_material_model )  THEN
+                   CALL usm_green_heat_model
                    CALL usm_material_heat_model
+                ENDIF
+                IF ( urban_surface ) THEN
+                   CALL usm_temperature_near_surface
                 ENDIF
                 CALL cpu_log( log_point(74), 'urban_surface', 'stop' )
@@ -301,8 +310,8 @@
                 CALL cpu_log( log_point(50), 'radiation', 'stop' )
 
-                IF (urban_surface)  THEN
-                   CALL cpu_log( log_point(75), 'usm_radiation', 'start' )
-                   CALL usm_radiation
-                   CALL cpu_log( log_point(75), 'usm_radiation', 'stop' )
+                IF ( radiation_interactions )  THEN
+                   CALL cpu_log( log_point(75), 'radiation_interaction', 'start' )
+                   CALL radiation_interaction
+                   CALL cpu_log( log_point(75), 'radiation_interaction', 'stop' )
                 ENDIF
              ENDIF
Index: palm/trunk/SOURCE/time_to_string.f90
===================================================================
--- palm/trunk/SOURCE/time_to_string.f90	(revision 2693)
+++ palm/trunk/SOURCE/time_to_string.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file time_to_string.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/timestep.f90
===================================================================
--- palm/trunk/SOURCE/timestep.f90	(revision 2693)
+++ palm/trunk/SOURCE/timestep.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file timestep.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/timestep_scheme_steering.f90
===================================================================
--- palm/trunk/SOURCE/timestep_scheme_steering.f90	(revision 2693)
+++ palm/trunk/SOURCE/timestep_scheme_steering.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file timestep_scheme_steering.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/transpose.f90
===================================================================
--- palm/trunk/SOURCE/transpose.f90	(revision 2693)
+++ palm/trunk/SOURCE/transpose.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file transpose.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/tridia_solver_mod.f90
===================================================================
--- palm/trunk/SOURCE/tridia_solver_mod.f90	(revision 2693)
+++ palm/trunk/SOURCE/tridia_solver_mod.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file tridia_solver_mod.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/turbulence_closure_mod.f90
===================================================================
--- palm/trunk/SOURCE/turbulence_closure_mod.f90	(revision 2696)
+++ palm/trunk/SOURCE/turbulence_closure_mod.f90	(revision 2696)
@@ -0,0 +1,3917 @@
+!> @file turbulence_closure_mod.f90
+!------------------------------------------------------------------------------!
+! This file is part of the PALM model system.
+!
+! PALM is free software: you can redistribute it and/or modify it under the
+! terms of the GNU General Public License as published by the Free Software
+! Foundation, either version 3 of the License, or (at your option) any later
+! version.
+!
+! PALM is distributed in the hope that it will be useful, but WITHOUT ANY
+! WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+! A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+!
+! You should have received a copy of the GNU General Public License along with
+! PALM. If not, see <http://www.gnu.org/licenses/>.
+!
+! Copyright 2017-2017 Leibniz Universitaet Hannover
+!--------------------------------------------------------------------------------!
+!
+! Current revisions:
+! -----------------
+! 
+! 
+! Former revisions:
+! -----------------
+! $Id$
+! Initial revision
+!
+! 
+! 
+!
+! Authors:
+! --------
+! @author Tobias Gronemeier
+!
+!
+! Description:
+! ------------
+!> This module contains the available turbulence closures for PALM.
+!>
+!>
+!> @todo test initialization for all possibilities
+!>       add OpenMP directives whereever possible
+!>       remove debug output variables (dummy1, dummy2, dummy3)
+!> @note <Enter notes on the module>
+!> @bug  TKE-e closure still crashes due to too small dt
+!------------------------------------------------------------------------------!
+ MODULE turbulence_closure_mod
+ 
+
+#if defined( __nopointer )
+    USE arrays_3d,                                                             &
+        ONLY:  diss, diss_p, dzu, e, e_p, kh, km, l_grid,                      &
+               mean_inflow_profiles, prho, pt, tdiss_m, te_m, tend, u, v, vpt, w
+#else
+    USE arrays_3d,                                                             &
+        ONLY:  diss, diss_1, diss_2, diss_3, diss_p, dzu, e, e_1, e_2, e_3,    &
+               e_p, kh, km, l_grid, mean_inflow_profiles, prho, pt, tdiss_m,   &
+               te_m, tend, u, v, vpt, w
+#endif
+
+    USE control_parameters,                                                    &
+        ONLY:  constant_diffusion, dt_3d, e_init, humidity, inflow_l,          &
+               initializing_actions, intermediate_timestep_count,              &
+               intermediate_timestep_count_max, kappa, km_constant, les_mw,    &
+               ocean, prandtl_number, prho_reference, pt_reference, rans_mode, &
+               rans_tke_e, rans_tke_l, simulated_time, timestep_scheme,        &
+               turbulence_closure, turbulent_inflow, use_upstream_for_tke,     &
+               vpt_reference, ws_scheme_sca
+
+    USE advec_ws,                                                              &
+        ONLY:  advec_s_ws
+
+    USE advec_s_bc_mod,                                                        &
+        ONLY:  advec_s_bc
+
+    USE advec_s_pw_mod,                                                        &
+        ONLY:  advec_s_pw
+
+    USE advec_s_up_mod,                                                        &
+        ONLY:  advec_s_up
+
+    USE cpulog,                                                                &
+        ONLY:  cpu_log, log_point, log_point_s
+
+    USE indices,                                                               &
+        ONLY:  nbgp, nxl, nxlg, nxr, nxrg, nyn, nyng, nys, nysg,               &
+               nzb, nzb_s_inner, nzb_u_inner, nzb_v_inner, nzb_w_inner, nzt,   &
+               wall_flags_0
+
+    USE kinds
+
+    USE pegrid
+
+    USE plant_canopy_model_mod,                                                &
+        ONLY:  pcm_tendency, plant_canopy
+
+    USE statistics,                                                            &
+        ONLY:  hom, hom_sum, statistic_regions
+
+    USE user_actions_mod,                                                      &
+        ONLY:  user_actions
+
+
+    IMPLICIT NONE
+
+
+    REAL(wp) ::  c_1  = 1.44_wp    !< model constant for RANS mode
+    REAL(wp) ::  c_2  = 1.92_wp    !< model constant for RANS mode
+    REAL(wp) ::  c_3  = 1.44_wp    !< model constant for RANS mode
+    REAL(wp) ::  c_h  = 0.0015_wp  !< model constant for RANS mode
+    REAL(wp) ::  c_m               !< constant used for diffusion coefficient and dissipation (dependent on mode RANS/LES)
+    REAL(wp) ::  c_mu = 0.09_wp    !< model constant for RANS mode
+    REAL(wp) ::  l_max             !< maximum length scale for Blackadar mixing length
+    REAL(wp) ::  sig_e = 1.0_wp    !< factor to calculate Ke from Km
+    REAL(wp) ::  sig_diss = 1.3_wp !< factor to calculate K_diss from Km
+    INTEGER(iwp) ::  surf_e        !< end index of surface elements at given i-j position
+    INTEGER(iwp) ::  surf_s        !< start index of surface elements at given i-j position
+
+    REAL(wp), DIMENSION(:), ALLOCATABLE ::  l_black      !< mixing length according to Blackadar
+
+    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, SAVE :: dummy1 !< debug output variable
+    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, SAVE :: dummy2 !< debug output variable
+    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, SAVE :: dummy3 !< debug output variable
+
+
+    PUBLIC c_m, dummy1, dummy2, dummy3
+
+!
+!-- PALM interfaces:
+!-- Input parameter checks to be done in check_parameters
+    INTERFACE tcm_check_parameters
+       MODULE PROCEDURE tcm_check_parameters
+    END INTERFACE tcm_check_parameters
+
+!
+!-- Data output checks for 2D/3D data to be done in check_parameters
+    INTERFACE tcm_check_data_output
+       MODULE PROCEDURE tcm_check_data_output
+    END INTERFACE tcm_check_data_output
+
+!
+!-- Definition of data output quantities
+    INTERFACE tcm_define_netcdf_grid
+       MODULE PROCEDURE tcm_define_netcdf_grid
+    END INTERFACE tcm_define_netcdf_grid
+
+!
+!-- Averaging of 3D data for output
+    INTERFACE tcm_3d_data_averaging
+       MODULE PROCEDURE tcm_3d_data_averaging
+    END INTERFACE tcm_3d_data_averaging
+
+!
+!-- Data output of 2D quantities
+    INTERFACE tcm_data_output_2d
+       MODULE PROCEDURE tcm_data_output_2d
+    END INTERFACE tcm_data_output_2d
+
+!
+!-- Data output of 3D data
+    INTERFACE tcm_data_output_3d
+       MODULE PROCEDURE tcm_data_output_3d
+    END INTERFACE tcm_data_output_3d
+
+!
+!-- Initialization actions  
+    INTERFACE tcm_init
+       MODULE PROCEDURE tcm_init
+    END INTERFACE tcm_init
+
+!
+!-- Initialization of arrays
+    INTERFACE tcm_init_arrays
+       MODULE PROCEDURE tcm_init_arrays
+    END INTERFACE tcm_init_arrays
+
+!
+!-- Initialization of TKE production term
+    INTERFACE production_e_init
+       MODULE PROCEDURE production_e_init
+    END INTERFACE production_e_init
+
+!
+!-- Prognostic equations for TKE and TKE dissipation rate
+    INTERFACE tcm_prognostic
+       MODULE PROCEDURE tcm_prognostic
+       MODULE PROCEDURE tcm_prognostic_ij
+    END INTERFACE tcm_prognostic
+
+!
+!-- Production term for TKE
+    INTERFACE production_e
+       MODULE PROCEDURE production_e
+       MODULE PROCEDURE production_e_ij
+    END INTERFACE production_e
+
+!
+!-- Diffusion term for TKE
+    INTERFACE diffusion_e
+       MODULE PROCEDURE diffusion_e
+       MODULE PROCEDURE diffusion_e_ij
+    END INTERFACE diffusion_e
+
+!
+!-- Diffusion term for TKE dissipation rate
+    INTERFACE diffusion_diss
+       MODULE PROCEDURE diffusion_diss
+       MODULE PROCEDURE diffusion_diss_ij
+    END INTERFACE diffusion_diss
+
+!
+!-- Mixing length for LES case
+    INTERFACE mixing_length_les
+       MODULE PROCEDURE mixing_length_les
+    END INTERFACE mixing_length_les
+
+!
+!-- Mixing length for RANS case
+    INTERFACE mixing_length_rans
+       MODULE PROCEDURE mixing_length_rans
+    END INTERFACE mixing_length_rans
+
+!
+!-- Calculate diffusivities
+    INTERFACE tcm_diffusivities
+       MODULE PROCEDURE tcm_diffusivities
+    END INTERFACE tcm_diffusivities
+
+!
+!-- Swapping of time levels (required for prognostic variables)
+    INTERFACE tcm_swap_timelevel
+       MODULE PROCEDURE tcm_swap_timelevel
+    END INTERFACE tcm_swap_timelevel
+
+    SAVE
+
+    PRIVATE
+!
+!-- Add INTERFACES that must be available to other modules (alphabetical order)
+    PUBLIC production_e_init, tcm_3d_data_averaging, tcm_check_data_output,    &
+           tcm_check_parameters, tcm_data_output_2d, tcm_data_output_3d,       &
+           tcm_define_netcdf_grid, tcm_diffusivities, tcm_init,                &
+           tcm_init_arrays, tcm_prognostic, tcm_swap_timelevel
+
+
+ CONTAINS
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Check parameters routine for turbulence closure module.
+!------------------------------------------------------------------------------!
+ SUBROUTINE tcm_check_parameters
+
+    USE control_parameters,                                                    &
+        ONLY:  message_string, neutral, turbulent_inflow, turbulent_outflow
+
+    IMPLICIT NONE
+
+!
+!-- Define which turbulence closure is going to be used
+    IF ( rans_mode )  THEN
+
+       c_m = 0.4_wp  !according to Detering and Etling (1985)
+
+       SELECT CASE ( TRIM( turbulence_closure ) )
+
+          CASE ( 'TKE-l' )
+             rans_tke_l = .TRUE.
+
+          CASE ( 'TKE-e' )
+             rans_tke_e = .TRUE.
+
+             IF ( INDEX( initializing_actions, 'set_1d-model_profiles' )       &
+                  == 0 )  THEN
+                message_string = 'Initializing without 1D model while ' //     &
+                                 'using TKE-e closure&' //                     &
+                                 'is not possible at the moment!'
+                CALL message( 'tcm_check_parameters', 'TG0005', 1, 2, 0, 6, 0 )
+             ENDIF
+
+          CASE DEFAULT
+             message_string = 'Unknown turbulence closure: ' //                &
+                              TRIM( turbulence_closure )
+             CALL message( 'tcm_check_parameters', 'TG0001', 1, 2, 0, 6, 0 )
+
+       END SELECT
+
+       message_string = 'RANS mode is still in development! ' //               &
+                        '&Not all features of PALM are yet compatible '//      &
+                        'with RANS mode. &Use at own risk!'
+       CALL message( 'tcm_check_parameters', 'TG0003', 0, 1, 0, 6, 0 )
+
+    ELSE
+
+       c_m = 0.1_wp !according to Lilly (1967) and Deardorff (1980)
+
+       SELECT CASE ( TRIM( turbulence_closure ) )
+
+          CASE ( 'Moeng_Wyngaard' )
+             les_mw = .TRUE.
+
+          CASE DEFAULT
+             message_string = 'Unknown turbulence closure: ' //                &
+                              TRIM( turbulence_closure )
+             CALL message( 'tcm_check_parameters', 'TG0001', 1, 2, 0, 6, 0 )
+
+       END SELECT
+
+    ENDIF
+
+    IF ( rans_tke_e )  THEN
+
+       IF ( turbulent_inflow .OR. turbulent_outflow )  THEN
+          message_string = 'turbulent inflow/outflow is not yet '//            &
+                           'implemented for TKE-e closure'
+          CALL message( 'tcm_check_parameters', 'TG0002', 1, 2, 0, 6, 0 )
+       ENDIF
+
+    ENDIF
+
+ END SUBROUTINE tcm_check_parameters
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Check data output.
+!------------------------------------------------------------------------------!
+ SUBROUTINE tcm_check_data_output( var, unit, i, ilen, k )
+ 
+    USE control_parameters,                                                    &
+        ONLY:  data_output, message_string
+
+    IMPLICIT NONE
+
+    CHARACTER (LEN=*) ::  unit     !< 
+    CHARACTER (LEN=*) ::  var      !<
+
+    INTEGER(iwp) ::  i      !<
+    INTEGER(iwp) ::  ilen   !<
+    INTEGER(iwp) ::  k      !<
+
+    SELECT CASE ( TRIM( var ) )
+
+       CASE ( 'diss' )
+          IF ( .NOT.  rans_tke_e )  THEN
+             message_string = 'output of "' // TRIM( var ) // '" requi' //  &
+                      'res TKE-e closure for RANS mode.'
+             CALL message( 'tcm_check_data_output', 'TG0101', 1, 2, 0, 6, 0 )
+          ENDIF
+          unit = 'm2/s3'
+
+       CASE ( 'dummy2', 'dummy3', 'dummy1' )
+          unit = '?'
+
+       CASE ( 'kh', 'km' )
+          unit = 'm2/s'
+
+       CASE DEFAULT
+          unit = 'illegal'
+
+    END SELECT
+
+ END SUBROUTINE tcm_check_data_output
+
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Define appropriate grid for netcdf variables.
+!> It is called out from subroutine netcdf.
+!------------------------------------------------------------------------------!
+ SUBROUTINE tcm_define_netcdf_grid( var, found, grid_x, grid_y, grid_z )
+    
+    IMPLICIT NONE
+
+    CHARACTER (LEN=*), INTENT(OUT) ::  grid_x   !< 
+    CHARACTER (LEN=*), INTENT(OUT) ::  grid_y   !< 
+    CHARACTER (LEN=*), INTENT(OUT) ::  grid_z   !< 
+    CHARACTER (LEN=*), INTENT(IN)  ::  var      !<
+    
+    LOGICAL, INTENT(OUT) ::  found   !<
+    
+    found  = .TRUE.
+
+!
+!-- Check for the grid
+    SELECT CASE ( TRIM( var ) )
+
+       CASE ( 'diss', 'diss_xy', 'diss_xz', 'diss_yz' )
+          grid_x = 'x'
+          grid_y = 'y'
+          grid_z = 'zu'
+
+       CASE ( 'dummy2', 'dummy3', 'dummy1' )                                    !### remove later
+          grid_x = 'x'
+          grid_y = 'y'
+          grid_z = 'zu'
+
+       CASE ( 'kh', 'kh_xy', 'kh_xz', 'kh_yz' )
+          grid_x = 'x'
+          grid_y = 'y'
+          grid_z = 'zu'
+
+       CASE ( 'km', 'km_xy', 'km_xz', 'km_yz' )
+          grid_x = 'x'
+          grid_y = 'y'
+          grid_z = 'zu'
+
+       CASE DEFAULT
+          found  = .FALSE.
+          grid_x = 'none'
+          grid_y = 'none'
+          grid_z = 'none'
+
+    END SELECT
+
+ END SUBROUTINE tcm_define_netcdf_grid
+
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Average 3D data.
+!------------------------------------------------------------------------------!
+ SUBROUTINE tcm_3d_data_averaging( mode, variable )
+ 
+
+    USE averaging,                                                             &
+        ONLY:  diss_av, kh_av, km_av
+
+    USE control_parameters,                                                    &
+        ONLY:  average_count_3d
+
+    IMPLICIT NONE
+
+    CHARACTER (LEN=*) ::  mode       !< 
+    CHARACTER (LEN=*) ::  variable   !< 
+
+    INTEGER(iwp) ::  i   !< 
+    INTEGER(iwp) ::  j   !< 
+    INTEGER(iwp) ::  k   !< 
+
+    IF ( mode == 'allocate' )  THEN
+
+       SELECT CASE ( TRIM( variable ) )
+
+          CASE ( 'diss' )
+             IF ( .NOT. ALLOCATED( diss_av ) )  THEN
+                ALLOCATE( diss_av(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
+             ENDIF
+             diss_av = 0.0_wp
+
+          CASE ( 'kh' )
+             IF ( .NOT. ALLOCATED( kh_av ) )  THEN
+                ALLOCATE( kh_av(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
+             ENDIF
+             kh_av = 0.0_wp
+
+          CASE ( 'km' )
+             IF ( .NOT. ALLOCATED( km_av ) )  THEN
+                ALLOCATE( km_av(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
+             ENDIF
+             km_av = 0.0_wp
+
+          CASE DEFAULT
+             CONTINUE
+
+       END SELECT
+
+    ELSEIF ( mode == 'sum' )  THEN
+
+       SELECT CASE ( TRIM( variable ) )
+
+          CASE ( 'diss' )
+             DO  i = nxlg, nxrg
+                DO  j = nysg, nyng
+                   DO  k = nzb, nzt+1
+                      diss_av(k,j,i) = diss_av(k,j,i) + diss(k,j,i)
+                   ENDDO
+                ENDDO
+             ENDDO
+
+          CASE ( 'kh' )
+             DO  i = nxlg, nxrg
+                DO  j = nysg, nyng
+                   DO  k = nzb, nzt+1
+                      kh_av(k,j,i) = kh_av(k,j,i) + kh(k,j,i)
+                   ENDDO
+                ENDDO
+             ENDDO
+
+          CASE ( 'km' )
+             DO  i = nxlg, nxrg
+                DO  j = nysg, nyng
+                   DO  k = nzb, nzt+1
+                      km_av(k,j,i) = km_av(k,j,i) + km(k,j,i)
+                   ENDDO
+                ENDDO
+             ENDDO
+
+          CASE DEFAULT
+             CONTINUE
+
+       END SELECT
+
+    ELSEIF ( mode == 'average' )  THEN
+
+       SELECT CASE ( TRIM( variable ) )
+
+          CASE ( 'diss' )
+             DO  i = nxlg, nxrg
+                DO  j = nysg, nyng
+                   DO  k = nzb, nzt+1
+                      diss_av(k,j,i) = diss_av(k,j,i)                          & 
+                                     / REAL( average_count_3d, KIND=wp )
+                   ENDDO
+                ENDDO
+             ENDDO
+
+          CASE ( 'kh' )
+             DO  i = nxlg, nxrg
+                DO  j = nysg, nyng
+                   DO  k = nzb, nzt+1
+                      kh_av(k,j,i) = kh_av(k,j,i)                              & 
+                                     / REAL( average_count_3d, KIND=wp )
+                   ENDDO
+                ENDDO
+             ENDDO
+
+          CASE ( 'km' )
+             DO  i = nxlg, nxrg
+                DO  j = nysg, nyng
+                   DO  k = nzb, nzt+1
+                      km_av(k,j,i) = km_av(k,j,i)                              & 
+                                     / REAL( average_count_3d, KIND=wp )
+                   ENDDO
+                ENDDO
+             ENDDO
+
+       END SELECT
+
+    ENDIF
+
+ END SUBROUTINE tcm_3d_data_averaging
+
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Define 2D output variables.
+!------------------------------------------------------------------------------!
+ SUBROUTINE tcm_data_output_2d( av, variable, found, grid, mode, local_pf,     &
+                                two_d, nzb_do, nzt_do )
+ 
+    USE averaging,                                                             &
+        ONLY:  diss_av, kh_av, km_av
+
+    IMPLICIT NONE
+
+    CHARACTER (LEN=*) ::  grid       !< 
+    CHARACTER (LEN=*) ::  mode       !< 
+    CHARACTER (LEN=*) ::  variable   !< 
+
+    INTEGER(iwp) ::  av   !< 
+    INTEGER(iwp) ::  i    !< 
+    INTEGER(iwp) ::  j    !< 
+    INTEGER(iwp) ::  k    !< 
+    INTEGER(iwp) ::  nzb_do   !< 
+    INTEGER(iwp) ::  nzt_do   !< 
+
+    LOGICAL ::  found   !< 
+    LOGICAL ::  two_d   !< flag parameter that indicates 2D variables (horizontal cross sections)
+
+    REAL(wp), DIMENSION(nxl:nxr,nys:nyn,nzb:nzt+1) ::  local_pf !< local
+       !< array to which output data is resorted to
+
+    found = .TRUE.
+
+    SELECT CASE ( TRIM( variable ) )
+
+
+       CASE ( 'diss_xy', 'diss_xz', 'diss_yz' )
+          IF ( av == 0 )  THEN
+             DO  i = nxl, nxr
+                DO  j = nys, nyn
+                   DO k = nzb_do, nzt_do
+                      local_pf(i,j,k) = diss(k,j,i)
+                   ENDDO
+                ENDDO
+             ENDDO
+          ELSE
+             DO  i = nxl, nxr
+                DO  j = nys, nyn
+                   DO k = nzb_do, nzt_do
+                      local_pf(i,j,k) = diss_av(k,j,i)
+                   ENDDO
+                ENDDO
+             ENDDO
+          ENDIF
+
+          IF ( mode == 'xy' ) grid = 'zu'
+
+       CASE ( 'kh_xy', 'kh_xz', 'kh_yz' )
+          IF ( av == 0 )  THEN
+             DO  i = nxl, nxr
+                DO  j = nys, nyn
+                   DO k = nzb_do, nzt_do
+                      local_pf(i,j,k) = kh(k,j,i)
+                   ENDDO
+                ENDDO
+             ENDDO
+          ELSE
+             DO  i = nxl, nxr
+                DO  j = nys, nyn
+                   DO k = nzb_do, nzt_do
+                      local_pf(i,j,k) = kh_av(k,j,i)
+                   ENDDO
+                ENDDO
+             ENDDO
+          ENDIF
+
+          IF ( mode == 'xy' ) grid = 'zu'
+
+       CASE ( 'km_xy', 'km_xz', 'km_yz' )
+          IF ( av == 0 )  THEN
+             DO  i = nxl, nxr
+                DO  j = nys, nyn
+                   DO k = nzb_do, nzt_do
+                      local_pf(i,j,k) = km(k,j,i)
+                   ENDDO
+                ENDDO
+             ENDDO
+          ELSE
+             DO  i = nxl, nxr
+                DO  j = nys, nyn
+                   DO k = nzb_do, nzt_do
+                      local_pf(i,j,k) = km_av(k,j,i)
+                   ENDDO
+                ENDDO
+             ENDDO
+          ENDIF
+
+          IF ( mode == 'xy' ) grid = 'zu'
+
+       CASE DEFAULT
+          found = .FALSE.
+          grid  = 'none'
+
+    END SELECT
+ 
+ END SUBROUTINE tcm_data_output_2d
+
+ 
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Define 3D output variables.
+!------------------------------------------------------------------------------!
+ SUBROUTINE tcm_data_output_3d( av, variable, found, local_pf )
+ 
+
+    USE averaging,                                                             &
+        ONLY:  diss_av, kh_av, km_av
+
+    IMPLICIT NONE
+
+    CHARACTER (LEN=*) ::  variable   !< 
+
+    INTEGER(iwp) ::  av   !< 
+    INTEGER(iwp) ::  i    !< 
+    INTEGER(iwp) ::  j    !< 
+    INTEGER(iwp) ::  k    !< 
+
+    LOGICAL ::  found   !< 
+
+    REAL(sp), DIMENSION(nxl:nxr,nys:nyn,nzb:nzt+1) ::  local_pf   !< local
+       !< array to which output data is resorted to
+
+
+    found = .TRUE.
+
+
+    SELECT CASE ( TRIM( variable ) )
+
+
+       CASE ( 'diss' )
+          IF ( av == 0 )  THEN
+             DO  i = nxl, nxr
+                DO  j = nys, nyn
+                   DO  k = nzb, nzt+1
+                      local_pf(i,j,k) = diss(k,j,i)
+                   ENDDO
+                ENDDO
+             ENDDO
+          ELSE
+             DO  i = nxl, nxr
+                DO  j = nys, nyn
+                   DO  k = nzb, nzt+1
+                      local_pf(i,j,k) = diss_av(k,j,i)
+                   ENDDO
+                ENDDO
+             ENDDO
+          ENDIF
+
+       CASE ( 'kh' )
+          IF ( av == 0 )  THEN
+             DO  i = nxl, nxr
+                DO  j = nys, nyn
+                   DO  k = nzb, nzt+1
+                      local_pf(i,j,k) = kh(k,j,i)
+                   ENDDO
+                ENDDO
+             ENDDO
+          ELSE
+             DO  i = nxl, nxr
+                DO  j = nys, nyn
+                   DO  k = nzb, nzt+1
+                      local_pf(i,j,k) = kh_av(k,j,i)
+                   ENDDO
+                ENDDO
+             ENDDO
+          ENDIF
+
+       CASE ( 'km' )
+          IF ( av == 0 )  THEN
+             DO  i = nxl, nxr
+                DO  j = nys, nyn
+                   DO  k = nzb, nzt+1
+                      local_pf(i,j,k) = km(k,j,i)
+                   ENDDO
+                ENDDO
+             ENDDO
+          ELSE
+             DO  i = nxl, nxr
+                DO  j = nys, nyn
+                   DO  k = nzb, nzt+1
+                      local_pf(i,j,k) = km_av(k,j,i)
+                   ENDDO
+                ENDDO
+             ENDDO
+          ENDIF
+
+       CASE ( 'dummy1' )                                                        !### remove later
+          IF ( av == 0 )  THEN
+             DO  i = nxl, nxr
+                DO  j = nys, nyn
+                   DO  k = nzb, nzt+1
+                      local_pf(i,j,k) = dummy1(k,j,i)
+                   ENDDO
+                ENDDO
+             ENDDO
+          ENDIF
+
+       CASE ( 'dummy2' )                                                        !### remove later
+          IF ( av == 0 )  THEN
+             DO  i = nxl, nxr
+                DO  j = nys, nyn
+                   DO  k = nzb, nzt+1
+                      local_pf(i,j,k) = dummy2(k,j,i)
+                   ENDDO
+                ENDDO
+             ENDDO
+          ENDIF
+
+       CASE ( 'dummy3' )                                                        !### remove later
+          IF ( av == 0 )  THEN
+             DO  i = nxl, nxr
+                DO  j = nys, nyn
+                   DO  k = nzb, nzt+1
+                      local_pf(i,j,k) = dummy3(k,j,i)
+                   ENDDO
+                ENDDO
+             ENDDO
+          ENDIF
+
+       CASE DEFAULT
+          found = .FALSE.
+
+    END SELECT
+
+ END SUBROUTINE tcm_data_output_3d
+
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Allocate arrays and assign pointers.
+!------------------------------------------------------------------------------!
+ SUBROUTINE tcm_init_arrays
+
+    USE microphysics_mod,                                                      &
+        ONLY:  collision_turbulence
+
+    USE particle_attributes,                                                   &
+        ONLY:  use_sgs_for_particles, wang_kernel
+
+    IMPLICIT NONE
+
+    ALLOCATE( kh(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
+    ALLOCATE( km(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
+
+    ALLOCATE( dummy1(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )                           !### remove later
+    ALLOCATE( dummy2(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
+    ALLOCATE( dummy3(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
+
+    IF ( rans_mode )  ALLOCATE( l_black(nzb:nzt+1) )
+
+#if defined( __nopointer )
+    ALLOCATE( e(nzb:nzt+1,nysg:nyng,nxlg:nxrg)    )
+    ALLOCATE( e_p(nzb:nzt+1,nysg:nyng,nxlg:nxrg)  )
+    ALLOCATE( te_m(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
+
+#else
+    ALLOCATE( e_1(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
+    ALLOCATE( e_2(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
+    ALLOCATE( e_3(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
+#endif
+
+    IF ( rans_tke_e  .OR.  use_sgs_for_particles  .OR.  wang_kernel  .OR.      &
+         collision_turbulence )  THEN
+#if defined( __nopointer )
+       ALLOCATE( diss(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
+       IF ( rans_tke_e )  THEN
+          ALLOCATE( diss_p(nzb:nzt+1,nysg:nyng,nxlg:nxrg)  )
+          ALLOCATE( tdiss_m(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
+       ENDIF
+#else
+       ALLOCATE( diss_1(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
+       IF ( rans_tke_e )  THEN
+          ALLOCATE( diss_2(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
+          ALLOCATE( diss_3(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
+       ENDIF
+#endif
+    ENDIF
+
+#if ! defined( __nopointer )
+!
+!-- Initial assignment of pointers
+    e  => e_1;   e_p  => e_2;   te_m  => e_3
+
+    IF ( rans_tke_e  .OR.  use_sgs_for_particles  .OR.     &
+         wang_kernel  .OR.  collision_turbulence )  THEN
+       diss => diss_1
+       IF ( rans_tke_e )  THEN
+       diss_p => diss_2; tdiss_m => diss_3
+       ENDIF
+    ENDIF
+#endif
+
+ END SUBROUTINE tcm_init_arrays
+
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Initialization of turbulence closure module.
+!------------------------------------------------------------------------------!
+ SUBROUTINE tcm_init
+
+    USE arrays_3d,                                                             &
+        ONLY:  ug, vg, zu
+
+    USE control_parameters,                                                    &
+        ONLY:  complex_terrain, f, kappa, dissipation_1d, topography
+
+    USE model_1d_mod,                                                          &
+        ONLY:  diss1d, e1d, kh1d, km1d, l1d
+
+    USE surface_mod,                                                           &
+        ONLY:  get_topography_top_index
+
+    IMPLICIT NONE
+
+    INTEGER(iwp) :: i            !< loop index
+    INTEGER(iwp) :: j            !< loop index
+    INTEGER(iwp) :: k            !< loop index
+    INTEGER(iwp) :: nz_s_shift   !<
+    INTEGER(iwp) :: nz_s_shift_l !< 
+
+!
+!-- Actions for initial runs
+    IF ( TRIM( initializing_actions ) /= 'read_restart_data'  .AND.            &
+         TRIM( initializing_actions ) /= 'cyclic_fill' )  THEN
+
+       IF ( INDEX( initializing_actions, 'set_1d-model_profiles' ) /= 0 )  THEN
+!
+!--       Transfer initial profiles to the arrays of the 3D model
+          DO  i = nxlg, nxrg
+             DO  j = nysg, nyng
+                e(:,j,i)  = e1d
+                kh(:,j,i) = kh1d
+                km(:,j,i) = km1d
+             ENDDO
+          ENDDO
+
+          IF ( constant_diffusion )  THEN
+             e = 0.0_wp
+          ENDIF
+
+          IF ( rans_tke_e )  THEN
+             IF ( dissipation_1d == 'prognostic' )  THEN    !### Why must this be checked?
+                DO  i = nxlg, nxrg                          !### Should 'diss' not always
+                   DO  j = nysg, nyng                       !### be prognostic in case rans_tke_e?
+                      diss(:,j,i) = diss1d
+                   ENDDO
+                ENDDO
+             ELSE
+                DO  i = nxlg, nxrg
+                   DO  j = nysg, nyng
+                      DO  k = nzb+1, nzt
+                         diss(k,j,i) = e(k,j,i) * SQRT( e(k,j,i) ) / l1d(k)
+                      ENDDO
+                   ENDDO
+                ENDDO
+             ENDIF
+          ENDIF
+
+       ELSEIF ( INDEX(initializing_actions, 'set_constant_profiles') /= 0 .OR. &
+                INDEX( initializing_actions, 'inifor' ) /= 0 )  THEN
+
+          IF ( constant_diffusion )  THEN
+             km   = km_constant
+             kh   = km / prandtl_number
+             e    = 0.0_wp
+          ELSEIF ( e_init > 0.0_wp )  THEN
+             DO  k = nzb+1, nzt
+                km(k,:,:) = c_m * l_grid(k) * SQRT( e_init )
+             ENDDO
+             km(nzb,:,:)   = km(nzb+1,:,:)
+             km(nzt+1,:,:) = km(nzt,:,:)
+             kh   = km / prandtl_number
+             e    = e_init
+          ELSE
+             IF ( .NOT. ocean )  THEN
+                kh   = 0.01_wp   ! there must exist an initial diffusion, because 
+                km   = 0.01_wp   ! otherwise no TKE would be produced by the
+                                 ! production terms, as long as not yet
+                                 ! e = (u*/cm)**2 at k=nzb+1
+             ELSE
+                kh   = 0.00001_wp
+                km   = 0.00001_wp
+             ENDIF
+             e    = 0.0_wp
+          ENDIF
+
+       ENDIF
+!
+!--    Store initial profiles for output purposes etc.
+       hom(:,1,23,:) = SPREAD( km(:,nys,nxl), 2, statistic_regions+1 )
+       hom(:,1,24,:) = SPREAD( kh(:,nys,nxl), 2, statistic_regions+1 )
+!
+!--    Initialize old and new time levels.
+       te_m = 0.0_wp
+       e_p = e
+       IF ( rans_tke_e )  THEN
+          tdiss_m = 0.0_wp
+          diss_p = diss
+       ENDIF
+
+    ELSEIF ( TRIM( initializing_actions ) == 'read_restart_data'  .OR.         &
+             TRIM( initializing_actions ) == 'cyclic_fill' )                   &
+    THEN
+
+!
+!--    In case of complex terrain and cyclic fill method as initialization,
+!--    shift initial data in the vertical direction for each point in the 
+!--    x-y-plane depending on local surface height
+       IF ( complex_terrain  .AND.                                             &
+            TRIM( initializing_actions ) == 'cyclic_fill' )  THEN
+          DO  i = nxlg, nxrg
+             DO  j = nysg, nyng
+                nz_s_shift = get_topography_top_index( j, i, 's' )
+
+                e(nz_s_shift:nzt+1,j,i)  =  e(0:nzt+1-nz_s_shift,j,i)
+                km(nz_s_shift:nzt+1,j,i) = km(0:nzt+1-nz_s_shift,j,i)
+                kh(nz_s_shift:nzt+1,j,i) = kh(0:nzt+1-nz_s_shift,j,i)
+             ENDDO
+          ENDDO
+       ENDIF
+
+!
+!--    Initialization of the turbulence recycling method
+       IF ( TRIM( initializing_actions ) == 'cyclic_fill'  .AND.               &
+            turbulent_inflow )  THEN
+          mean_inflow_profiles(:,5) = hom_sum(:,8,0)   ! e
+!
+!--       In case of complex terrain, determine vertical displacement at inflow 
+!--       boundary and adjust mean inflow profiles
+          IF ( complex_terrain )  THEN
+             IF ( nxlg <= 0 .AND. nxrg >= 0 .AND. nysg <= 0 .AND. nyng >= 0 )  THEN
+                nz_s_shift_l = get_topography_top_index( 0, 0, 's' )
+             ELSE
+                nz_s_shift_l = 0
+             ENDIF
+#if defined( __parallel )
+             CALL MPI_ALLREDUCE(nz_s_shift_l, nz_s_shift, 1, MPI_INTEGER,      &
+                                MPI_MAX, comm2d, ierr)
+#else
+             nz_s_shift = nz_s_shift_l
+#endif
+             mean_inflow_profiles(nz_s_shift:nzt+1,5) = hom_sum(0:nzt+1-nz_s_shift,8,0)  ! e
+          ENDIF
+!
+!--       Use these mean profiles at the inflow (provided that Dirichlet
+!--       conditions are used)
+          IF ( inflow_l )  THEN
+             DO  j = nysg, nyng
+                DO  k = nzb, nzt+1
+                   e(k,j,nxlg:-1)  = mean_inflow_profiles(k,5)
+                ENDDO
+             ENDDO
+          ENDIF
+       ENDIF
+!
+!--    Inside buildings set TKE back to zero
+       IF ( TRIM( initializing_actions ) == 'cyclic_fill' .AND.                &
+            topography /= 'flat' )  THEN
+!
+!--       Inside buildings set TKE back to zero.
+!--       Other scalars (km, kh, diss, ...) are ignored at present,
+!--       maybe revise later.
+          DO  i = nxlg, nxrg
+             DO  j = nysg, nyng
+                DO  k = nzb, nzt
+                   e(k,j,i)     = MERGE( e(k,j,i), 0.0_wp,                     &
+                                         BTEST( wall_flags_0(k,j,i), 0 ) )
+                   te_m(k,j,i)  = MERGE( te_m(k,j,i), 0.0_wp,                  &
+                                         BTEST( wall_flags_0(k,j,i), 0 ) )
+                ENDDO
+             ENDDO
+          ENDDO
+
+       ENDIF
+!
+!--    Initialize new time levels (only done in order to set boundary values
+!--    including ghost points)
+       e_p = e
+!
+!--    Allthough tendency arrays are set in prognostic_equations, they have
+!--    have to be predefined here because they are used (but multiplied with 0)
+!--    there before they are set. 
+       te_m = 0.0_wp
+
+    ENDIF
+
+!
+!-- Calculate mixing length according to Blackadar (1962)
+    IF ( rans_mode )  THEN
+
+       IF ( f /= 0.0_wp )  THEN
+          l_max = 2.7E-4 * SQRT( ug(nzt+1)**2 + vg(nzt+1)**2 ) /        &
+                  ABS( f ) + 1E-10_wp
+       ELSE
+          l_max = 30.0_wp
+       ENDIF
+
+       DO  k = nzb, nzt
+          l_black(k) = kappa * zu(k) / ( 1.0_wp + kappa * zu(k) / l_max )
+       ENDDO
+
+       l_black(nzt+1) = l_black(nzt)
+
+    ENDIF
+
+ END SUBROUTINE tcm_init
+
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Initialize virtual velocities used later in production_e.
+!------------------------------------------------------------------------------!
+ SUBROUTINE production_e_init
+
+    USE arrays_3d,                                                             &
+        ONLY:  drho_air_zw, zu
+
+    USE control_parameters,                                                    &
+        ONLY:  constant_flux_layer
+
+    USE surface_mod,                                                           &
+        ONLY :  surf_def_h, surf_def_v, surf_lsm_h, surf_usm_h 
+
+    IMPLICIT NONE
+
+    INTEGER(iwp) ::  i   !< grid index x-direction
+    INTEGER(iwp) ::  j   !< grid index y-direction
+    INTEGER(iwp) ::  k   !< grid index z-direction
+    INTEGER(iwp) ::  m   !< running index surface elements
+
+    IF ( constant_flux_layer )  THEN
+!
+!--    Calculate a virtual velocity at the surface in a way that the
+!--    vertical velocity gradient at k = 1 (u(k+1)-u_0) matches the
+!--    Prandtl law (-w'u'/km). This gradient is used in the TKE shear
+!--    production term at k=1 (see production_e_ij).
+!--    The velocity gradient has to be limited in case of too small km
+!--    (otherwise the timestep may be significantly reduced by large
+!--    surface winds).
+!--    not available in case of non-cyclic boundary conditions.
+!--    WARNING: the exact analytical solution would require the determination
+!--             of the eddy diffusivity by km = u* * kappa * zp / phi_m.
+!--    Default surfaces, upward-facing
+       !$OMP PARALLEL DO PRIVATE(i,j,k,m)
+       DO  m = 1, surf_def_h(0)%ns
+
+          i = surf_def_h(0)%i(m)            
+          j = surf_def_h(0)%j(m)
+          k = surf_def_h(0)%k(m)
+!
+!--       Note, calculatione of u_0 and v_0 is not fully accurate, as u/v 
+!--       and km are not on the same grid. Actually, a further 
+!--       interpolation of km onto the u/v-grid is necessary. However, the
+!--       effect of this error is negligible. 
+          surf_def_h(0)%u_0(m) = u(k+1,j,i) + surf_def_h(0)%usws(m) *          &
+                                     drho_air_zw(k-1) *                        &
+                                     ( zu(k+1)    - zu(k-1)    )  /            &
+                                     ( km(k,j,i)  + 1.0E-20_wp )  
+          surf_def_h(0)%v_0(m) = v(k+1,j,i) + surf_def_h(0)%vsws(m) *          &
+                                     drho_air_zw(k-1) *                        &
+                                     ( zu(k+1)    - zu(k-1)    )  /            &
+                                     ( km(k,j,i)  + 1.0E-20_wp )  
+
+          IF ( ABS( u(k+1,j,i) - surf_def_h(0)%u_0(m) )  >                     &
+               ABS( u(k+1,j,i) - u(k-1,j,i)           )                        &
+             )  surf_def_h(0)%u_0(m) = u(k-1,j,i)
+
+          IF ( ABS( v(k+1,j,i) - surf_def_h(0)%v_0(m) )  >                     &
+               ABS( v(k+1,j,i) - v(k-1,j,i)           )                        &
+             )  surf_def_h(0)%v_0(m) = v(k-1,j,i)
+
+       ENDDO
+!
+!--    Default surfaces, downward-facing surfaces
+       !$OMP PARALLEL DO PRIVATE(i,j,k,m)
+       DO  m = 1, surf_def_h(1)%ns
+
+          i = surf_def_h(1)%i(m)            
+          j = surf_def_h(1)%j(m)
+          k = surf_def_h(1)%k(m)
+
+          surf_def_h(1)%u_0(m) = u(k-1,j,i) - surf_def_h(1)%usws(m) *          &
+                                     drho_air_zw(k-1) *                        &
+                                     ( zu(k+1)    - zu(k-1)    )  /            &
+                                     ( km(k,j,i)  + 1.0E-20_wp )  
+          surf_def_h(1)%v_0(m) = v(k-1,j,i) - surf_def_h(1)%vsws(m) *          &
+                                     drho_air_zw(k-1) *                        &
+                                     ( zu(k+1)    - zu(k-1)    )  /            &
+                                     ( km(k,j,i)  + 1.0E-20_wp )  
+
+          IF ( ABS( surf_def_h(1)%u_0(m) - u(k-1,j,i) )  >                     &
+               ABS( u(k+1,j,i)           - u(k-1,j,i) )                        &
+             )  surf_def_h(1)%u_0(m) = u(k+1,j,i)
+
+          IF ( ABS( surf_def_h(1)%v_0(m) - v(k-1,j,i) )  >                     &
+               ABS( v(k+1,j,i)           - v(k-1,j,i) )                        &
+             )  surf_def_h(1)%v_0(m) = v(k+1,j,i)
+
+       ENDDO
+!
+!--    Natural surfaces, upward-facing
+       !$OMP PARALLEL DO PRIVATE(i,j,k,m)
+       DO  m = 1, surf_lsm_h%ns
+
+          i = surf_lsm_h%i(m)            
+          j = surf_lsm_h%j(m)
+          k = surf_lsm_h%k(m)
+!
+!--       Note, calculatione of u_0 and v_0 is not fully accurate, as u/v 
+!--       and km are not on the same grid. Actually, a further 
+!--       interpolation of km onto the u/v-grid is necessary. However, the
+!--       effect of this error is negligible. 
+          surf_lsm_h%u_0(m) = u(k+1,j,i) + surf_lsm_h%usws(m)      *           &
+                                        drho_air_zw(k-1) *                     &
+                                        ( zu(k+1)   - zu(k-1)    )  /          &
+                                        ( km(k,j,i) + 1.0E-20_wp )  
+          surf_lsm_h%v_0(m) = v(k+1,j,i) + surf_lsm_h%vsws(m)      *           &
+                                        drho_air_zw(k-1) *                     &
+                                        ( zu(k+1)   - zu(k-1)    )  /          &
+                                        ( km(k,j,i) + 1.0E-20_wp )
+
+          IF ( ABS( u(k+1,j,i) - surf_lsm_h%u_0(m) )  >                        &
+               ABS( u(k+1,j,i) - u(k-1,j,i)   )                                &
+             )  surf_lsm_h%u_0(m) = u(k-1,j,i)
+
+          IF ( ABS( v(k+1,j,i) - surf_lsm_h%v_0(m) )  >                        &
+               ABS( v(k+1,j,i) - v(k-1,j,i)   )                                &
+             )  surf_lsm_h%v_0(m) = v(k-1,j,i)
+
+       ENDDO
+!
+!--    Urban surfaces, upward-facing
+       !$OMP PARALLEL DO PRIVATE(i,j,k,m)
+       DO  m = 1, surf_usm_h%ns
+
+          i = surf_usm_h%i(m)            
+          j = surf_usm_h%j(m)
+          k = surf_usm_h%k(m)
+!
+!--       Note, calculatione of u_0 and v_0 is not fully accurate, as u/v 
+!--       and km are not on the same grid. Actually, a further 
+!--       interpolation of km onto the u/v-grid is necessary. However, the
+!--       effect of this error is negligible. 
+          surf_usm_h%u_0(m) = u(k+1,j,i) + surf_usm_h%usws(m)      *           &
+                                        drho_air_zw(k-1) *                     &
+                                        ( zu(k+1)   - zu(k-1)    )  /          &
+                                        ( km(k,j,i) + 1.0E-20_wp )  
+          surf_usm_h%v_0(m) = v(k+1,j,i) + surf_usm_h%vsws(m)      *           &
+                                        drho_air_zw(k-1) *                     &
+                                        ( zu(k+1)   - zu(k-1)    )  /          &
+                                        ( km(k,j,i) + 1.0E-20_wp )
+
+          IF ( ABS( u(k+1,j,i) - surf_usm_h%u_0(m) )  >                        &
+               ABS( u(k+1,j,i) - u(k-1,j,i)   )                                &
+             )  surf_usm_h%u_0(m) = u(k-1,j,i)
+
+          IF ( ABS( v(k+1,j,i) - surf_usm_h%v_0(m) )  >                        &
+               ABS( v(k+1,j,i) - v(k-1,j,i)   )                                &
+             )  surf_usm_h%v_0(m) = v(k-1,j,i)
+
+       ENDDO
+
+    ENDIF
+
+ END SUBROUTINE production_e_init
+
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Prognostic equation for subgrid-scale TKE and TKE dissipation rate.
+!> Vector-optimized version
+!------------------------------------------------------------------------------!
+ SUBROUTINE tcm_prognostic
+
+    USE arrays_3d,                                                             &
+        ONLY:  ddzu
+
+    USE control_parameters,                                                    &
+        ONLY:  f, scalar_advec, tsc
+
+    USE surface_mod,                                                           &
+        ONLY :  surf_def_h, surf_def_v, surf_lsm_h, surf_lsm_v, surf_usm_h,    &
+                surf_usm_v 
+
+    IMPLICIT NONE
+
+    INTEGER(iwp) ::  i       !< loop index
+    INTEGER(iwp) ::  j       !< loop index
+    INTEGER(iwp) ::  k       !< loop index
+    INTEGER(iwp) ::  m       !< loop index
+    INTEGER(iwp) ::  surf_e  !< end index of surface elements at given i-j position
+    INTEGER(iwp) ::  surf_s  !< start index of surface elements at given i-j position
+
+    REAL(wp)     ::  sbt     !< wheighting factor for sub-time step
+
+    REAL(wp), DIMENSION(nzb:nzt+1,nysg:nyng,nxlg:nxrg) :: advec  !< advection term of TKE tendency
+    REAL(wp), DIMENSION(nzb:nzt+1,nysg:nyng,nxlg:nxrg) :: produc !< production term of TKE tendency
+
+!
+!-- If required, compute prognostic equation for turbulent kinetic
+!-- energy (TKE)
+    IF ( .NOT. constant_diffusion )  THEN
+
+       CALL cpu_log( log_point(16), 'tke-equation', 'start' )
+
+       sbt = tsc(2)
+       IF ( .NOT. use_upstream_for_tke )  THEN
+          IF ( scalar_advec == 'bc-scheme' )  THEN
+
+             IF ( timestep_scheme(1:5) /= 'runge' )  THEN
+!
+!--             Bott-Chlond scheme always uses Euler time step. Thus:
+                sbt = 1.0_wp
+             ENDIF
+             tend = 0.0_wp
+             CALL advec_s_bc( e, 'e' )
+
+          ENDIF
+       ENDIF
+
+!
+!--    TKE-tendency terms with no communication
+       IF ( scalar_advec /= 'bc-scheme'  .OR.  use_upstream_for_tke )  THEN
+          IF ( use_upstream_for_tke )  THEN
+             tend = 0.0_wp
+             CALL advec_s_up( e )
+          ELSE
+             tend = 0.0_wp
+             IF ( timestep_scheme(1:5) == 'runge' )  THEN
+                IF ( ws_scheme_sca )  THEN
+                   CALL advec_s_ws( e, 'e' )
+                ELSE
+                   CALL advec_s_pw( e )
+                ENDIF
+             ELSE
+                CALL advec_s_up( e )
+             ENDIF
+          ENDIF
+       ENDIF
+
+       IF ( rans_tke_e )  advec = tend
+
+       CALL production_e
+
+!
+!--    Save production term for prognostic equation of TKE dissipation rate
+       IF ( rans_tke_e )  produc = tend - advec
+
+       IF ( .NOT. humidity )  THEN
+          IF ( ocean )  THEN
+             CALL diffusion_e( prho, prho_reference )
+          ELSE
+             CALL diffusion_e( pt, pt_reference )
+          ENDIF
+       ELSE
+          CALL diffusion_e( vpt, pt_reference )
+       ENDIF
+
+!
+!--    Additional sink term for flows through plant canopies
+       IF ( plant_canopy )  CALL pcm_tendency( 6 )
+
+       CALL user_actions( 'e-tendency' )
+
+!
+!--    Prognostic equation for TKE.
+!--    Eliminate negative TKE values, which can occur due to numerical
+!--    reasons in the course of the integration. In such cases the old TKE
+!--    value is reduced by 90%.
+       DO  i = nxl, nxr
+          DO  j = nys, nyn
+             DO  k = nzb+1, nzt
+                e_p(k,j,i) = e(k,j,i) + ( dt_3d * ( sbt * tend(k,j,i) +        &
+                                                 tsc(3) * te_m(k,j,i) )        &
+                                        )                                      &
+                                   * MERGE( 1.0_wp, 0.0_wp,                    &
+                                             BTEST( wall_flags_0(k,j,i), 0 )   &
+                                          )
+                IF ( e_p(k,j,i) < 0.0_wp )  e_p(k,j,i) = 0.1_wp * e(k,j,i)
+             ENDDO
+          ENDDO
+       ENDDO
+
+!
+!--    Use special boundary condition in case of TKE-e closure
+       IF ( rans_tke_e )  THEN
+          DO  i = nxl, nxr
+             DO  j = nys, nyn
+                surf_s = surf_def_h(0)%start_index(j,i)
+                surf_e = surf_def_h(0)%end_index(j,i)
+                DO  m = surf_s, surf_e
+                   k = surf_def_h(0)%k(m)
+                   e_p(k,j,i) = surf_def_h(0)%us(m)**2 / c_m**2
+                ENDDO
+             ENDDO
+          ENDDO
+       ENDIF
+
+!
+!--    Calculate tendencies for the next Runge-Kutta step
+       IF ( timestep_scheme(1:5) == 'runge' )  THEN
+          IF ( intermediate_timestep_count == 1 )  THEN
+             DO  i = nxl, nxr
+                DO  j = nys, nyn
+                   DO  k = nzb+1, nzt
+                      te_m(k,j,i) = tend(k,j,i)
+                   ENDDO
+                ENDDO
+             ENDDO
+          ELSEIF ( intermediate_timestep_count < &
+                   intermediate_timestep_count_max )  THEN
+             DO  i = nxl, nxr
+                DO  j = nys, nyn
+                   DO  k = nzb+1, nzt
+                      te_m(k,j,i) =   -9.5625_wp * tend(k,j,i)                 &
+                                     + 5.3125_wp * te_m(k,j,i)
+                   ENDDO
+                ENDDO
+             ENDDO
+          ENDIF
+       ENDIF
+
+       CALL cpu_log( log_point(16), 'tke-equation', 'stop' )
+
+    ENDIF   ! TKE equation
+
+!
+!-- If required, compute prognostic equation for TKE dissipation rate
+    IF ( rans_tke_e )  THEN
+
+       CALL cpu_log( log_point(33), 'diss-equation', 'start' )
+
+       sbt = tsc(2)
+       IF ( .NOT. use_upstream_for_tke )  THEN
+          IF ( scalar_advec == 'bc-scheme' )  THEN
+
+             IF ( timestep_scheme(1:5) /= 'runge' )  THEN
+!
+!--             Bott-Chlond scheme always uses Euler time step. Thus:
+                sbt = 1.0_wp
+             ENDIF
+             tend = 0.0_wp
+             CALL advec_s_bc( diss, 'diss' )
+
+          ENDIF
+       ENDIF
+
+!
+!--    dissipation-tendency terms with no communication
+       IF ( scalar_advec /= 'bc-scheme'  .OR.  use_upstream_for_tke )  THEN
+          IF ( use_upstream_for_tke )  THEN
+             tend = 0.0_wp
+             CALL advec_s_up( diss )
+          ELSE
+             tend = 0.0_wp
+             IF ( timestep_scheme(1:5) == 'runge' )  THEN
+                IF ( ws_scheme_sca )  THEN
+                   CALL advec_s_ws( diss, 'diss' )
+                ELSE
+                   CALL advec_s_pw( diss )
+                ENDIF
+             ELSE
+                CALL advec_s_up( diss )
+             ENDIF
+          ENDIF
+       ENDIF
+
+!
+!--    Production of TKE dissipation rate
+       DO  i = nxl, nxr
+          DO  j = nys, nyn
+             DO  k = nzb+1, nzt
+!                tend(k,j,i) = tend(k,j,i) + c_1 * diss(k,j,i) / ( e(k,j,i) + 1.0E-20_wp ) * produc(k)
+                tend(k,j,i) = tend(k,j,i) + c_1 * c_mu * f / c_h               &  !### needs revision
+                      / surf_def_h(0)%us(surf_def_h(0)%start_index(j,i))       &
+                      * SQRT(e(k,j,i)) * produc(k,j,i)
+             ENDDO
+          ENDDO
+       ENDDO
+
+       CALL diffusion_diss
+
+!
+!--    Additional sink term for flows through plant canopies
+!        IF ( plant_canopy )  CALL pcm_tendency( ? )                            !### what to do with this?
+
+!        CALL user_actions( 'diss-tendency' )                                   !### not yet implemented
+
+!
+!--    Prognostic equation for TKE dissipation.
+!--    Eliminate negative dissipation values, which can occur due to numerical
+!--    reasons in the course of the integration. In such cases the old
+!--    dissipation value is reduced by 90%.
+       DO  i = nxl, nxr
+          DO  j = nys, nyn
+             DO  k = nzb+1, nzt
+                diss_p(k,j,i) = diss(k,j,i) + ( dt_3d * ( sbt * tend(k,j,i) +  &
+                                                 tsc(3) * tdiss_m(k,j,i) )     &
+                                        )                                      &
+                                   * MERGE( 1.0_wp, 0.0_wp,                    &
+                                             BTEST( wall_flags_0(k,j,i), 0 )   &
+                                          )
+                IF ( diss_p(k,j,i) < 0.0_wp )                                  &
+                   diss_p(k,j,i) = 0.1_wp * diss(k,j,i)
+             ENDDO
+          ENDDO
+       ENDDO
+
+!
+!--    Use special boundary condition in case of TKE-e closure
+       DO  i = nxl, nxr
+          DO  j = nys, nyn
+             surf_s = surf_def_h(0)%start_index(j,i)
+             surf_e = surf_def_h(0)%end_index(j,i)
+             DO  m = surf_s, surf_e
+                k = surf_def_h(0)%k(m)
+                diss_p(k,j,i) = surf_def_h(0)%us(m)**3 / kappa * ddzu(k)
+             ENDDO
+          ENDDO
+       ENDDO
+
+!
+!--    Calculate tendencies for the next Runge-Kutta step
+       IF ( timestep_scheme(1:5) == 'runge' )  THEN
+          IF ( intermediate_timestep_count == 1 )  THEN
+             DO  i = nxl, nxr
+                DO  j = nys, nyn
+                   DO  k = nzb+1, nzt
+                      tdiss_m(k,j,i) = tend(k,j,i)
+                   ENDDO
+                ENDDO
+             ENDDO
+          ELSEIF ( intermediate_timestep_count < &
+                   intermediate_timestep_count_max )  THEN
+             DO  i = nxl, nxr
+                DO  j = nys, nyn
+                   DO  k = nzb+1, nzt
+                      tdiss_m(k,j,i) =   -9.5625_wp * tend(k,j,i)              &
+                                        + 5.3125_wp * tdiss_m(k,j,i)
+                   ENDDO
+                ENDDO
+             ENDDO
+          ENDIF
+       ENDIF
+
+       CALL cpu_log( log_point(33), 'diss-equation', 'stop' )
+
+    ENDIF
+
+ END SUBROUTINE tcm_prognostic
+
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Prognostic equation for subgrid-scale TKE and TKE dissipation rate.
+!> Cache-optimized version
+!------------------------------------------------------------------------------!
+ SUBROUTINE tcm_prognostic_ij( i, j, i_omp, tn )
+
+    USE arrays_3d,                                                             &
+        ONLY:  ddzu, diss_l_diss, diss_l_e, diss_s_diss, diss_s_e,             &
+               flux_l_diss, flux_l_e, flux_s_diss, flux_s_e
+
+    USE control_parameters,                                                    &
+        ONLY:  f, tsc
+
+    USE surface_mod,                                                           &
+        ONLY :  surf_def_h, surf_def_v, surf_lsm_h, surf_lsm_v, surf_usm_h,    &
+                surf_usm_v 
+
+    IMPLICIT NONE
+
+    INTEGER(iwp) ::  i       !< loop index x direction
+    INTEGER(iwp) ::  i_omp   !< 
+    INTEGER(iwp) ::  j       !< loop index y direction
+    INTEGER(iwp) ::  k       !< loop index z direction
+    INTEGER(iwp) ::  m       !< loop index
+    INTEGER(iwp) ::  surf_e  !< end index of surface elements at given i-j position
+    INTEGER(iwp) ::  surf_s  !< start index of surface elements at given i-j position
+    INTEGER(iwp) ::  tn      !<
+
+    REAL(wp), DIMENSION(nzb:nzt+1) :: advec  !< advection term of TKE tendency
+    REAL(wp), DIMENSION(nzb:nzt+1) :: produc !< production term of TKE tendency
+
+!
+!-- If required, compute prognostic equation for turbulent kinetic
+!-- energy (TKE)
+    IF ( .NOT. constant_diffusion )  THEN
+
+!
+!--    Tendency-terms for TKE
+       tend(:,j,i) = 0.0_wp
+       IF ( timestep_scheme(1:5) == 'runge'  &
+           .AND.  .NOT. use_upstream_for_tke )  THEN
+           IF ( ws_scheme_sca )  THEN
+               CALL advec_s_ws( i, j, e, 'e', flux_s_e, diss_s_e, &
+                                flux_l_e, diss_l_e , i_omp, tn )
+           ELSE
+               CALL advec_s_pw( i, j, e )
+           ENDIF
+       ELSE
+          CALL advec_s_up( i, j, e )
+       ENDIF
+
+       advec(:) = tend(:,j,i)
+
+       CALL production_e( i, j )
+
+       produc(:) = tend(:,j,i) - advec(:)
+
+       IF ( .NOT. humidity )  THEN
+          IF ( ocean )  THEN
+             CALL diffusion_e( i, j, prho, prho_reference )
+          ELSE
+             CALL diffusion_e( i, j, pt, pt_reference )
+          ENDIF
+       ELSE
+          CALL diffusion_e( i, j, vpt, pt_reference )
+       ENDIF
+
+!
+!--    Additional sink term for flows through plant canopies
+       IF ( plant_canopy )  CALL pcm_tendency( i, j, 6 )
+
+       CALL user_actions( i, j, 'e-tendency' )
+
+!
+!--    Prognostic equation for TKE.
+!--    Eliminate negative TKE values, which can occur due to numerical
+!--    reasons in the course of the integration. In such cases the old
+!--    TKE value is reduced by 90%.
+       DO  k = nzb+1, nzt
+          e_p(k,j,i) = e(k,j,i) + ( dt_3d * ( tsc(2) * tend(k,j,i) +           &
+                                              tsc(3) * te_m(k,j,i) )           &
+                                  )                                            &
+                                 * MERGE( 1.0_wp, 0.0_wp,                      &
+                                          BTEST( wall_flags_0(k,j,i), 0 )      &
+                                        )
+          IF ( e_p(k,j,i) <= 0.0_wp )  e_p(k,j,i) = 0.1_wp * e(k,j,i)
+       ENDDO
+
+!
+!--    Use special boundary condition in case of TKE-e closure
+       IF ( rans_tke_e )  THEN
+          surf_s = surf_def_h(0)%start_index(j,i)
+          surf_e = surf_def_h(0)%end_index(j,i)
+          DO  m = surf_s, surf_e
+             k = surf_def_h(0)%k(m)
+             e_p(k,j,i) = surf_def_h(0)%us(m)**2 / c_m**2
+          ENDDO
+       ENDIF
+
+!
+!--    Calculate tendencies for the next Runge-Kutta step
+       IF ( timestep_scheme(1:5) == 'runge' )  THEN
+          IF ( intermediate_timestep_count == 1 )  THEN
+             DO  k = nzb+1, nzt
+                te_m(k,j,i) = tend(k,j,i)
+             ENDDO
+          ELSEIF ( intermediate_timestep_count < &
+                   intermediate_timestep_count_max )  THEN
+             DO  k = nzb+1, nzt
+                te_m(k,j,i) =   -9.5625_wp * tend(k,j,i) +                     &
+                                 5.3125_wp * te_m(k,j,i)
+             ENDDO
+          ENDIF
+       ENDIF
+
+    ENDIF   ! TKE equation
+
+!
+!-- If required, compute prognostic equation for TKE dissipation rate
+    IF ( rans_tke_e )  THEN
+
+!
+!--    Tendency-terms for dissipation
+       tend(:,j,i) = 0.0_wp
+       IF ( timestep_scheme(1:5) == 'runge'  &
+           .AND.  .NOT. use_upstream_for_tke )  THEN
+           IF ( ws_scheme_sca )  THEN
+               CALL advec_s_ws( i, j, diss, 'diss', flux_s_diss, diss_s_diss,  &
+                                flux_l_diss, diss_l_diss, i_omp, tn )
+           ELSE
+               CALL advec_s_pw( i, j, diss )
+           ENDIF
+       ELSE
+          CALL advec_s_up( i, j, diss )
+       ENDIF
+
+!
+!--    Production of TKE dissipation rate
+       DO  k = nzb+1, nzt
+!              tend(k,j,i) = tend(k,j,i) + c_1 * diss(k,j,i) / ( e(k,j,i) + 1.0E-20_wp ) * produc(k)
+          tend(k,j,i) = tend(k,j,i) + c_1 * c_mu * f / c_h                     &  !### needs revision
+                      / surf_def_h(0)%us(surf_def_h(0)%start_index(j,i))       &
+                      * SQRT(e(k,j,i)) * produc(k)
+       ENDDO
+
+       CALL diffusion_diss( i, j )
+
+!
+!--    Additional sink term for flows through plant canopies
+!        IF ( plant_canopy )  CALL pcm_tendency( i, j, ? )                      !### not yet implemented
+
+!        CALL user_actions( i, j, 'diss-tendency' )                             !### not yet implemented
+
+!
+!--    Prognostic equation for TKE dissipation
+!--    Eliminate negative dissipation values, which can occur due to
+!--    numerical reasons in the course of the integration. In such cases
+!--    the old dissipation value is reduced by 90%.
+       DO  k = nzb+1, nzt
+          diss_p(k,j,i) = diss(k,j,i) + ( dt_3d * ( tsc(2) * tend(k,j,i) +     &
+                                                    tsc(3) * tdiss_m(k,j,i) )  &
+                                        )                                      &
+                                        * MERGE( 1.0_wp, 0.0_wp,               &
+                                                BTEST( wall_flags_0(k,j,i), 0 )&
+                                               )
+          IF ( diss_p(k,j,i) <= 0.0_wp )  diss_p(k,j,i) = 0.1_wp * diss(k,j,i)
+       ENDDO
+
+!
+!--    Use special boundary condition in case of TKE-e closure
+       surf_s = surf_def_h(0)%start_index(j,i)
+       surf_e = surf_def_h(0)%end_index(j,i)
+       DO  m = surf_s, surf_e
+          k = surf_def_h(0)%k(m)
+          diss_p(k,j,i) = surf_def_h(0)%us(m)**3 / kappa * ddzu(k)
+       ENDDO
+
+!
+!--    Calculate tendencies for the next Runge-Kutta step
+       IF ( timestep_scheme(1:5) == 'runge' )  THEN
+          IF ( intermediate_timestep_count == 1 )  THEN
+             DO  k = nzb+1, nzt
+                tdiss_m(k,j,i) = tend(k,j,i)
+             ENDDO
+          ELSEIF ( intermediate_timestep_count < &
+                   intermediate_timestep_count_max )  THEN
+             DO  k = nzb+1, nzt
+                tdiss_m(k,j,i) =   -9.5625_wp * tend(k,j,i) +                  &
+                                    5.3125_wp * tdiss_m(k,j,i)
+             ENDDO
+          ENDIF
+       ENDIF
+
+!        IF ( intermediate_timestep_count == 1 )  dummy1(:,j,i) = e_p(:,j,i)
+!        IF ( intermediate_timestep_count == 2 )  dummy2(:,j,i) = e_p(:,j,i)
+!        IF ( intermediate_timestep_count == 3 )  dummy3(:,j,i) = e_p(:,j,i)
+
+    ENDIF   ! dissipation equation
+
+ END SUBROUTINE tcm_prognostic_ij
+
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Production terms (shear + buoyancy) of the TKE.
+!> Vector-optimized version
+!> @warning The case with constant_flux_layer = F and use_surface_fluxes = T is
+!>          not considered well!
+!------------------------------------------------------------------------------!
+ SUBROUTINE production_e
+
+    USE arrays_3d,                                                             &
+        ONLY:  ddzw, dd2zu, drho_air_zw, q, ql
+
+    USE cloud_parameters,                                                      &
+        ONLY:  l_d_cp, l_d_r, pt_d_t, t_d_pt
+
+    USE control_parameters,                                                    &
+        ONLY:  cloud_droplets, cloud_physics, constant_flux_layer, g, neutral, &
+               rho_reference, use_single_reference_value, use_surface_fluxes,  &
+               use_top_fluxes
+
+    USE grid_variables,                                                        &
+        ONLY:  ddx, dx, ddy, dy
+
+    USE surface_mod,                                                           &
+        ONLY :  surf_def_h, surf_def_v, surf_lsm_h, surf_lsm_v, surf_usm_h,    &
+                surf_usm_v
+
+    IMPLICIT NONE
+
+    INTEGER(iwp) ::  i       !< running index x-direction
+    INTEGER(iwp) ::  j       !< running index y-direction
+    INTEGER(iwp) ::  k       !< running index z-direction
+    INTEGER(iwp) ::  l       !< running index for different surface type orientation
+    INTEGER(iwp) ::  m       !< running index surface elements
+    INTEGER(iwp) ::  surf_e  !< end index of surface elements at given i-j position
+    INTEGER(iwp) ::  surf_s  !< start index of surface elements at given i-j position
+
+    REAL(wp)     ::  def         !< 
+    REAL(wp)     ::  flag        !< flag to mask topography
+    REAL(wp)     ::  k1          !<
+    REAL(wp)     ::  k2          !<
+    REAL(wp)     ::  km_neutral  !< diffusion coefficient assuming neutral conditions - used to compute shear production at surfaces
+    REAL(wp)     ::  theta       !<
+    REAL(wp)     ::  temp        !<
+    REAL(wp)     ::  sign_dir    !< sign of wall-tke flux, depending on wall orientation 
+    REAL(wp)     ::  usvs        !< momentum flux u"v"
+    REAL(wp)     ::  vsus        !< momentum flux v"u"
+    REAL(wp)     ::  wsus        !< momentum flux w"u"
+    REAL(wp)     ::  wsvs        !< momentum flux w"v"
+
+    REAL(wp), DIMENSION(nzb+1:nzt,nys:nyn) ::  dudx  !< Gradient of u-component in x-direction
+    REAL(wp), DIMENSION(nzb+1:nzt,nys:nyn) ::  dudy  !< Gradient of u-component in y-direction
+    REAL(wp), DIMENSION(nzb+1:nzt,nys:nyn) ::  dudz  !< Gradient of u-component in z-direction
+    REAL(wp), DIMENSION(nzb+1:nzt,nys:nyn) ::  dvdx  !< Gradient of v-component in x-direction
+    REAL(wp), DIMENSION(nzb+1:nzt,nys:nyn) ::  dvdy  !< Gradient of v-component in y-direction
+    REAL(wp), DIMENSION(nzb+1:nzt,nys:nyn) ::  dvdz  !< Gradient of v-component in z-direction
+    REAL(wp), DIMENSION(nzb+1:nzt,nys:nyn) ::  dwdx  !< Gradient of w-component in x-direction
+    REAL(wp), DIMENSION(nzb+1:nzt,nys:nyn) ::  dwdy  !< Gradient of w-component in y-direction
+    REAL(wp), DIMENSION(nzb+1:nzt,nys:nyn) ::  dwdz  !< Gradient of w-component in z-direction
+
+    DO  i = nxl, nxr
+
+       IF ( constant_flux_layer )  THEN
+
+!
+!--       Calculate TKE production by shear. Calculate gradients at all grid 
+!--       points first, gradients at surface-bounded grid points will be 
+!--       overwritten further below. 
+          DO  j = nys, nyn
+             DO  k = nzb+1, nzt
+
+                dudx(k,j) =           ( u(k,j,i+1) - u(k,j,i)     ) * ddx
+                dudy(k,j) = 0.25_wp * ( u(k,j+1,i) + u(k,j+1,i+1) -            &
+                                        u(k,j-1,i) - u(k,j-1,i+1) ) * ddy
+                dudz(k,j) = 0.5_wp  * ( u(k+1,j,i) + u(k+1,j,i+1) -            &
+                                        u(k-1,j,i) - u(k-1,j,i+1) ) *          &
+                                                         dd2zu(k)
+   
+                dvdx(k,j) = 0.25_wp * ( v(k,j,i+1) + v(k,j+1,i+1) -            &
+                                        v(k,j,i-1) - v(k,j+1,i-1) ) * ddx
+                dvdy(k,j) =           ( v(k,j+1,i) - v(k,j,i)     ) * ddy
+                dvdz(k,j) = 0.5_wp  * ( v(k+1,j,i) + v(k+1,j+1,i) -            &
+                                        v(k-1,j,i) - v(k-1,j+1,i) ) *          &
+                                                         dd2zu(k)
+
+                dwdx(k,j) = 0.25_wp * ( w(k,j,i+1) + w(k-1,j,i+1) -            &
+                                        w(k,j,i-1) - w(k-1,j,i-1) ) * ddx
+                dwdy(k,j) = 0.25_wp * ( w(k,j+1,i) + w(k-1,j+1,i) -            &
+                                        w(k,j-1,i) - w(k-1,j-1,i) ) * ddy
+                dwdz(k,j) =           ( w(k,j,i)   - w(k-1,j,i)   ) * ddzw(k)
+
+             ENDDO
+          ENDDO
+
+!
+!--       Position beneath wall
+!--       (2) - Will allways be executed.
+!--       'bottom and wall: use u_0,v_0 and wall functions'
+          DO  j = nys, nyn
+!
+!--          Compute gradients at north- and south-facing surfaces.
+!--          First, for default surfaces, then for urban surfaces. 
+!--          Note, so far no natural vertical surfaces implemented
+             DO  l = 0, 1
+                surf_s = surf_def_v(l)%start_index(j,i)
+                surf_e = surf_def_v(l)%end_index(j,i)
+                DO  m = surf_s, surf_e
+                   k           = surf_def_v(l)%k(m)
+                   usvs        = surf_def_v(l)%mom_flux_tke(0,m)
+                   wsvs        = surf_def_v(l)%mom_flux_tke(1,m)
+   
+                   km_neutral = kappa * ( usvs**2 + wsvs**2 )**0.25_wp         &
+                                   * 0.5_wp * dy
+!
+!--                -1.0 for right-facing wall, 1.0 for left-facing wall
+                   sign_dir = MERGE( 1.0_wp, -1.0_wp,                          &
+                                     BTEST( wall_flags_0(k,j-1,i), 0 ) ) 
+                   dudy(k,j) = sign_dir * usvs / ( km_neutral + 1E-10_wp )
+                   dwdy(k,j) = sign_dir * wsvs / ( km_neutral + 1E-10_wp )
+                ENDDO
+!
+!--             Natural surfaces
+                surf_s = surf_lsm_v(l)%start_index(j,i)
+                surf_e = surf_lsm_v(l)%end_index(j,i)
+                DO  m = surf_s, surf_e
+                   k           = surf_lsm_v(l)%k(m)
+                   usvs        = surf_lsm_v(l)%mom_flux_tke(0,m)
+                   wsvs        = surf_lsm_v(l)%mom_flux_tke(1,m)
+   
+                   km_neutral = kappa * ( usvs**2 + wsvs**2 )**0.25_wp         &
+                                   * 0.5_wp * dy
+!
+!--                -1.0 for right-facing wall, 1.0 for left-facing wall
+                   sign_dir = MERGE( 1.0_wp, -1.0_wp,                          &
+                                     BTEST( wall_flags_0(k,j-1,i), 0 ) ) 
+                   dudy(k,j) = sign_dir * usvs / ( km_neutral + 1E-10_wp )
+                   dwdy(k,j) = sign_dir * wsvs / ( km_neutral + 1E-10_wp )
+                ENDDO 
+!
+!--             Urban surfaces
+                surf_s = surf_usm_v(l)%start_index(j,i)
+                surf_e = surf_usm_v(l)%end_index(j,i)
+                DO  m = surf_s, surf_e
+                   k           = surf_usm_v(l)%k(m)
+                   usvs        = surf_usm_v(l)%mom_flux_tke(0,m)
+                   wsvs        = surf_usm_v(l)%mom_flux_tke(1,m)
+   
+                   km_neutral = kappa * ( usvs**2 + wsvs**2 )**0.25_wp         &
+                                   * 0.5_wp * dy
+!
+!--                -1.0 for right-facing wall, 1.0 for left-facing wall
+                   sign_dir = MERGE( 1.0_wp, -1.0_wp,                          &
+                                     BTEST( wall_flags_0(k,j-1,i), 0 ) ) 
+                   dudy(k,j) = sign_dir * usvs / ( km_neutral + 1E-10_wp )
+                   dwdy(k,j) = sign_dir * wsvs / ( km_neutral + 1E-10_wp )
+                ENDDO  
+             ENDDO
+!
+!--          Compute gradients at east- and west-facing walls
+             DO  l = 2, 3
+                surf_s = surf_def_v(l)%start_index(j,i)
+                surf_e = surf_def_v(l)%end_index(j,i)
+                DO  m = surf_s, surf_e
+                   k     = surf_def_v(l)%k(m)
+                   vsus  = surf_def_v(l)%mom_flux_tke(0,m)
+                   wsus  = surf_def_v(l)%mom_flux_tke(1,m)
+
+                   km_neutral = kappa * ( vsus**2 + wsus**2 )**0.25_wp         &
+                                      * 0.5_wp * dx
+!
+!--                -1.0 for right-facing wall, 1.0 for left-facing wall
+                   sign_dir = MERGE( 1.0_wp, -1.0_wp,                          &
+                                     BTEST( wall_flags_0(k,j,i-1), 0 ) ) 
+                   dvdx(k,j) = sign_dir * vsus / ( km_neutral + 1E-10_wp )
+                   dwdx(k,j) = sign_dir * wsus / ( km_neutral + 1E-10_wp )
+                ENDDO 
+!
+!--             Natural surfaces                   
+                surf_s = surf_lsm_v(l)%start_index(j,i)
+                surf_e = surf_lsm_v(l)%end_index(j,i)
+                DO  m = surf_s, surf_e
+                   k     = surf_lsm_v(l)%k(m)
+                   vsus  = surf_lsm_v(l)%mom_flux_tke(0,m)
+                   wsus  = surf_lsm_v(l)%mom_flux_tke(1,m)
+
+                   km_neutral = kappa * ( vsus**2 + wsus**2 )**0.25_wp         &
+                                      * 0.5_wp * dx
+!
+!--                -1.0 for right-facing wall, 1.0 for left-facing wall
+                   sign_dir = MERGE( 1.0_wp, -1.0_wp,                          &
+                                     BTEST( wall_flags_0(k,j,i-1), 0 ) ) 
+                   dvdx(k,j) = sign_dir * vsus / ( km_neutral + 1E-10_wp )
+                   dwdx(k,j) = sign_dir * wsus / ( km_neutral + 1E-10_wp )
+                ENDDO   
+!
+!--             Urban surfaces                   
+                surf_s = surf_usm_v(l)%start_index(j,i)
+                surf_e = surf_usm_v(l)%end_index(j,i)
+                DO  m = surf_s, surf_e
+                   k     = surf_usm_v(l)%k(m)
+                   vsus  = surf_usm_v(l)%mom_flux_tke(0,m)
+                   wsus  = surf_usm_v(l)%mom_flux_tke(1,m)
+
+                   km_neutral = kappa * ( vsus**2 + wsus**2 )**0.25_wp         &
+                                      * 0.5_wp * dx
+!
+!--                -1.0 for right-facing wall, 1.0 for left-facing wall
+                   sign_dir = MERGE( 1.0_wp, -1.0_wp,                          &
+                                     BTEST( wall_flags_0(k,j,i-1), 0 ) ) 
+                   dvdx(k,j) = sign_dir * vsus / ( km_neutral + 1E-10_wp )
+                   dwdx(k,j) = sign_dir * wsus / ( km_neutral + 1E-10_wp )
+                ENDDO 
+             ENDDO
+!
+!--          Compute gradients at upward-facing surfaces
+             surf_s = surf_def_h(0)%start_index(j,i)
+             surf_e = surf_def_h(0)%end_index(j,i)
+             DO  m = surf_s, surf_e
+                k = surf_def_h(0)%k(m)
+!
+!--             Please note, actually, an interpolation of u_0 and v_0 
+!--             onto the grid center would be required. However, this 
+!--             would require several data transfers between 2D-grid and
+!--             wall type. The effect of this missing interpolation is 
+!--             negligible. (See also production_e_init).
+                dudz(k,j) = ( u(k+1,j,i) - surf_def_h(0)%u_0(m) ) * dd2zu(k)   
+                dvdz(k,j) = ( v(k+1,j,i) - surf_def_h(0)%v_0(m) ) * dd2zu(k)
+         
+             ENDDO
+!
+!--          Natural surfaces
+             surf_s = surf_lsm_h%start_index(j,i)
+             surf_e = surf_lsm_h%end_index(j,i)
+             DO  m = surf_s, surf_e
+                k = surf_lsm_h%k(m)
+
+                dudz(k,j) = ( u(k+1,j,i) - surf_lsm_h%u_0(m) ) * dd2zu(k)   
+                dvdz(k,j) = ( v(k+1,j,i) - surf_lsm_h%v_0(m) ) * dd2zu(k)
+         
+             ENDDO
+!
+!--          Urban surfaces
+             surf_s = surf_usm_h%start_index(j,i)
+             surf_e = surf_usm_h%end_index(j,i)
+             DO  m = surf_s, surf_e
+                k = surf_usm_h%k(m)
+
+                dudz(k,j) = ( u(k+1,j,i) - surf_usm_h%u_0(m) ) * dd2zu(k)   
+                dvdz(k,j) = ( v(k+1,j,i) - surf_usm_h%v_0(m) ) * dd2zu(k)
+         
+             ENDDO
+!
+!--          Compute gradients at downward-facing walls, only for 
+!--          non-natural default surfaces
+             surf_s = surf_def_h(1)%start_index(j,i)
+             surf_e = surf_def_h(1)%end_index(j,i)
+             DO  m = surf_s, surf_e
+                k = surf_def_h(1)%k(m)
+
+                dudz(k,j) = ( surf_def_h(1)%u_0(m) - u(k-1,j,i) ) * dd2zu(k)   
+                dvdz(k,j) = ( surf_def_h(1)%v_0(m) - v(k-1,j,i) ) * dd2zu(k)
+
+             ENDDO
+          ENDDO
+
+          DO  j = nys, nyn
+             DO  k = nzb+1, nzt
+
+                def = 2.0_wp * ( dudx(k,j)**2 + dvdy(k,j)**2 + dwdz(k,j)**2 ) + &
+                                 dudy(k,j)**2 + dvdx(k,j)**2 + dwdx(k,j)**2 +   &
+                                 dwdy(k,j)**2 + dudz(k,j)**2 + dvdz(k,j)**2 +   &
+                      2.0_wp * ( dvdx(k,j)*dudy(k,j) + dwdx(k,j)*dudz(k,j)  +   &
+                                 dwdy(k,j)*dvdz(k,j) )
+
+                IF ( def < 0.0_wp )  def = 0.0_wp
+
+                flag  = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_0(k,j,i), 0 ) ) 
+
+                tend(k,j,i) = tend(k,j,i) + km(k,j,i) * def * flag
+
+             ENDDO
+          ENDDO
+
+       ELSE
+
+          DO  j = nys, nyn
+!
+!--          Calculate TKE production by shear. Here, no additional
+!--          wall-bounded code is considered. 
+!--          Why?
+             DO  k = nzb+1, nzt
+
+                dudx(k,j)  =           ( u(k,j,i+1) - u(k,j,i)     ) * ddx
+                dudy(k,j)  = 0.25_wp * ( u(k,j+1,i) + u(k,j+1,i+1) -           &
+                                         u(k,j-1,i) - u(k,j-1,i+1) ) * ddy
+                dudz(k,j)  = 0.5_wp  * ( u(k+1,j,i) + u(k+1,j,i+1) -           &
+                                         u(k-1,j,i) - u(k-1,j,i+1) ) *         &
+                                                                     dd2zu(k)
+
+                dvdx(k,j)  = 0.25_wp * ( v(k,j,i+1) + v(k,j+1,i+1) -           &
+                                         v(k,j,i-1) - v(k,j+1,i-1) ) * ddx
+                dvdy(k,j)  =           ( v(k,j+1,i) - v(k,j,i)     ) * ddy
+                dvdz(k,j)  = 0.5_wp  * ( v(k+1,j,i) + v(k+1,j+1,i) -           &
+                                         v(k-1,j,i) - v(k-1,j+1,i) ) *         &
+                                                                     dd2zu(k)
+
+                dwdx(k,j)  = 0.25_wp * ( w(k,j,i+1) + w(k-1,j,i+1) -           &
+                                         w(k,j,i-1) - w(k-1,j,i-1) ) * ddx
+                dwdy(k,j)  = 0.25_wp * ( w(k,j+1,i) + w(k-1,j+1,i) -           &
+                                         w(k,j-1,i) - w(k-1,j-1,i) ) * ddy
+                dwdz(k,j)  =           ( w(k,j,i)   - w(k-1,j,i)   ) *         &
+                                                                     ddzw(k)
+   
+                def = 2.0_wp * (                                               &
+                             dudx(k,j)**2 + dvdy(k,j)**2 + dwdz(k,j)**2        &
+                               ) +                                             &
+                             dudy(k,j)**2 + dvdx(k,j)**2 + dwdx(k,j)**2 +      &
+                             dwdy(k,j)**2 + dudz(k,j)**2 + dvdz(k,j)**2 +      &
+                      2.0_wp * (                                               &
+                             dvdx(k,j)*dudy(k,j) + dwdx(k,j)*dudz(k,j)  +      &
+                             dwdy(k,j)*dvdz(k,j)                               &
+                               )
+
+                IF ( def < 0.0_wp )  def = 0.0_wp
+
+                flag  = MERGE( 1.0_wp, 0.0_wp,                                 &
+                               BTEST( wall_flags_0(k,j,i), 29 ) ) 
+                tend(k,j,i) = tend(k,j,i) + km(k,j,i) * def * flag
+   
+             ENDDO
+          ENDDO
+
+       ENDIF
+
+!
+!--    If required, calculate TKE production by buoyancy
+       IF ( .NOT. neutral )  THEN
+
+          IF ( .NOT. humidity )  THEN
+
+             IF ( ocean )  THEN
+!
+!--             So far in the ocean no special treatment of density flux
+!--             in the bottom and top surface layer
+                DO  j = nys, nyn
+                   DO  k = nzb+1, nzt
+                      tend(k,j,i) = tend(k,j,i) +                              &
+                                    kh(k,j,i) * g /                            &
+                           MERGE( rho_reference, prho(k,j,i),                  &
+                                  use_single_reference_value ) *               &
+                                    ( prho(k+1,j,i) - prho(k-1,j,i) ) *        &
+                                    dd2zu(k) *                                 &
+                                MERGE( 1.0_wp, 0.0_wp,                         &
+                                       BTEST( wall_flags_0(k,j,i), 30 )        &
+                                     )                            *            &
+                                MERGE( 1.0_wp, 0.0_wp,                         &
+                                       BTEST( wall_flags_0(k,j,i), 9 )         &
+                                     )  
+                   ENDDO
+!
+!--                Treatment of near-surface grid points, at up- and down-
+!--                ward facing surfaces
+                   IF ( use_surface_fluxes )  THEN
+                      DO  l = 0, 1
+                         surf_s = surf_def_h(l)%start_index(j,i)
+                         surf_e = surf_def_h(l)%end_index(j,i)
+                         DO  m = surf_s, surf_e
+                            k = surf_def_h(l)%k(m)
+                            tend(k,j,i) = tend(k,j,i) + g /                    &
+                                      MERGE( rho_reference, prho(k,j,i),       &
+                                             use_single_reference_value ) *    &
+                                      drho_air_zw(k-1) *                       &
+                                      surf_def_h(l)%shf(m)
+                         ENDDO
+                      ENDDO
+
+                   ENDIF
+
+                   IF ( use_top_fluxes )  THEN
+                      surf_s = surf_def_h(2)%start_index(j,i)
+                      surf_e = surf_def_h(2)%end_index(j,i)
+                      DO  m = surf_s, surf_e
+                         k = surf_def_h(2)%k(m)
+                         tend(k,j,i) = tend(k,j,i) + g /                       &
+                                      MERGE( rho_reference, prho(k,j,i),       &
+                                             use_single_reference_value ) *    &
+                                      drho_air_zw(k) *                         &
+                                      surf_def_h(2)%shf(m) 
+                      ENDDO
+                   ENDIF
+
+                ENDDO
+
+             ELSE
+
+                DO  j = nys, nyn
+                   DO  k = nzb+1, nzt
+!
+!--                   Flag 9 is used to mask top fluxes, flag 30 to mask
+!--                   surface fluxes
+                      tend(k,j,i) = tend(k,j,i) -                              &
+                                    kh(k,j,i) * g /                            &
+                                MERGE( pt_reference, pt(k,j,i),                &
+                                        use_single_reference_value ) *         &
+                                    ( pt(k+1,j,i) - pt(k-1,j,i) ) *            &
+                                    dd2zu(k)                      *            &
+                                MERGE( 1.0_wp, 0.0_wp,                         &
+                                       BTEST( wall_flags_0(k,j,i), 30 )        &
+                                     )                            *            &
+                                MERGE( 1.0_wp, 0.0_wp,                         &
+                                       BTEST( wall_flags_0(k,j,i), 9 )         &
+                                     )  
+                   ENDDO
+
+                   IF ( use_surface_fluxes )  THEN
+!
+!--                   Default surfaces, up- and downward-facing
+                      DO  l = 0, 1
+                         surf_s = surf_def_h(l)%start_index(j,i)
+                         surf_e = surf_def_h(l)%end_index(j,i)
+                         DO  m = surf_s, surf_e
+                            k = surf_def_h(l)%k(m)
+                            tend(k,j,i) = tend(k,j,i) + g /                    &
+                                 MERGE( pt_reference, pt(k,j,i),               &
+                                        use_single_reference_value )           &
+                                                   * drho_air_zw(k-1)          &
+                                                   * surf_def_h(l)%shf(m)       
+                         ENDDO      
+                      ENDDO
+!
+!--                   Natural surfaces
+                      surf_s = surf_lsm_h%start_index(j,i)
+                      surf_e = surf_lsm_h%end_index(j,i)
+                      DO  m = surf_s, surf_e
+                         k = surf_lsm_h%k(m)
+                         tend(k,j,i) = tend(k,j,i) + g /                       &
+                                 MERGE( pt_reference, pt(k,j,i),               &
+                                        use_single_reference_value )           &
+                                                   * drho_air_zw(k-1)          &
+                                                   * surf_lsm_h%shf(m)   
+                      ENDDO
+!
+!--                   Urban surfaces
+                      surf_s = surf_usm_h%start_index(j,i)
+                      surf_e = surf_usm_h%end_index(j,i)
+                      DO  m = surf_s, surf_e
+                         k = surf_usm_h%k(m)
+                         tend(k,j,i) = tend(k,j,i) + g /                       &
+                                 MERGE( pt_reference, pt(k,j,i),               &
+                                        use_single_reference_value )           &
+                                                   * drho_air_zw(k-1)          &
+                                                   * surf_usm_h%shf(m)   
+                      ENDDO                          
+                   ENDIF
+
+                   IF ( use_top_fluxes )  THEN
+                      surf_s = surf_def_h(2)%start_index(j,i)
+                      surf_e = surf_def_h(2)%end_index(j,i)
+                      DO  m = surf_s, surf_e
+                         k = surf_def_h(2)%k(m)
+                         tend(k,j,i) = tend(k,j,i) + g /                       &
+                                 MERGE( pt_reference, pt(k,j,i),               &
+                                        use_single_reference_value )           &
+                                                   * drho_air_zw(k)            &
+                                                   * surf_def_h(2)%shf(m) 
+                      ENDDO
+                   ENDIF
+                ENDDO
+
+             ENDIF
+
+          ELSE
+
+             DO  j = nys, nyn
+
+                DO  k = nzb+1, nzt
+!
+!--                Flag 9 is used to mask top fluxes, flag 30 to mask
+!--                surface fluxes
+                   IF ( .NOT. cloud_physics .AND. .NOT. cloud_droplets ) THEN
+                      k1 = 1.0_wp + 0.61_wp * q(k,j,i)
+                      k2 = 0.61_wp * pt(k,j,i)
+                      tend(k,j,i) = tend(k,j,i) - kh(k,j,i) *                  &
+                                      g /                                      &
+                                 MERGE( vpt_reference, vpt(k,j,i),             &
+                                        use_single_reference_value ) *         &
+                                      ( k1 * ( pt(k+1,j,i)-pt(k-1,j,i) ) +     &
+                                        k2 * ( q(k+1,j,i) - q(k-1,j,i) )       &
+                                      ) * dd2zu(k) *                           &
+                                   MERGE( 1.0_wp, 0.0_wp,                      &
+                                          BTEST( wall_flags_0(k,j,i), 30 )     &
+                                        )          *                           &
+                                   MERGE( 1.0_wp, 0.0_wp,                      &
+                                          BTEST( wall_flags_0(k,j,i), 9 )      &
+                                        )
+                   ELSE IF ( cloud_physics )  THEN
+                      IF ( ql(k,j,i) == 0.0_wp )  THEN
+                         k1 = 1.0_wp + 0.61_wp * q(k,j,i)
+                         k2 = 0.61_wp * pt(k,j,i)
+                      ELSE
+                         theta = pt(k,j,i) + pt_d_t(k) * l_d_cp * ql(k,j,i)
+                         temp  = theta * t_d_pt(k)
+                         k1 = ( 1.0_wp - q(k,j,i) + 1.61_wp *                  &
+                                       ( q(k,j,i) - ql(k,j,i) ) *              &
+                              ( 1.0_wp + 0.622_wp * l_d_r / temp ) ) /         &
+                              ( 1.0_wp + 0.622_wp * l_d_r * l_d_cp *           &
+                              ( q(k,j,i) - ql(k,j,i) ) / ( temp * temp ) )
+                         k2 = theta * ( l_d_cp / temp * k1 - 1.0_wp )
+                      ENDIF
+                      tend(k,j,i) = tend(k,j,i) - kh(k,j,i) *                  &
+                                      g /                                      &
+                                 MERGE( vpt_reference, vpt(k,j,i),             &
+                                        use_single_reference_value ) *         &
+                                      ( k1 * ( pt(k+1,j,i)-pt(k-1,j,i) ) +     &
+                                        k2 * ( q(k+1,j,i) - q(k-1,j,i) )       &
+                                      ) * dd2zu(k) *                           &
+                                   MERGE( 1.0_wp, 0.0_wp,                      &
+                                          BTEST( wall_flags_0(k,j,i), 30 )     &
+                                        )          *                           &
+                                   MERGE( 1.0_wp, 0.0_wp,                      &
+                                          BTEST( wall_flags_0(k,j,i), 9 )      &
+                                        )
+                   ELSE IF ( cloud_droplets )  THEN
+                      k1 = 1.0_wp + 0.61_wp * q(k,j,i) - ql(k,j,i)
+                      k2 = 0.61_wp * pt(k,j,i)
+                      tend(k,j,i) = tend(k,j,i) -                              & 
+                                    kh(k,j,i) * g /                            &
+                                 MERGE( vpt_reference, vpt(k,j,i),             &
+                                        use_single_reference_value ) *         &
+                                    ( k1 * ( pt(k+1,j,i)- pt(k-1,j,i) ) +      &
+                                      k2 * ( q(k+1,j,i) -  q(k-1,j,i) ) -      &
+                                      pt(k,j,i) * ( ql(k+1,j,i) -              &
+                                      ql(k-1,j,i) ) ) * dd2zu(k) *             &
+                                   MERGE( 1.0_wp, 0.0_wp,                      &
+                                          BTEST( wall_flags_0(k,j,i), 30 )     &
+                                        )                        *             &
+                                   MERGE( 1.0_wp, 0.0_wp,                      &
+                                          BTEST( wall_flags_0(k,j,i), 9 )      &
+                                        )
+                   ENDIF
+
+                ENDDO
+
+             ENDDO
+
+             IF ( use_surface_fluxes )  THEN
+
+                DO  j = nys, nyn
+!
+!--                Treat horizontal default surfaces
+                   DO  l = 0, 1
+                      surf_s = surf_def_h(l)%start_index(j,i)
+                      surf_e = surf_def_h(l)%end_index(j,i)
+                      DO  m = surf_s, surf_e
+                         k = surf_def_h(l)%k(m)
+
+                         IF ( .NOT. cloud_physics .AND. .NOT. cloud_droplets ) THEN
+                            k1 = 1.0_wp + 0.61_wp * q(k,j,i)
+                            k2 = 0.61_wp * pt(k,j,i)
+                         ELSE IF ( cloud_physics )  THEN
+                            IF ( ql(k,j,i) == 0.0_wp )  THEN
+                               k1 = 1.0_wp + 0.61_wp * q(k,j,i)
+                               k2 = 0.61_wp * pt(k,j,i)
+                            ELSE
+                               theta = pt(k,j,i) + pt_d_t(k) * l_d_cp * ql(k,j,i)
+                               temp  = theta * t_d_pt(k)
+                               k1 = ( 1.0_wp - q(k,j,i) + 1.61_wp *            &
+                                          ( q(k,j,i) - ql(k,j,i) ) *           &
+                                 ( 1.0_wp + 0.622_wp * l_d_r / temp ) ) /      &
+                                 ( 1.0_wp + 0.622_wp * l_d_r * l_d_cp *        &
+                                 ( q(k,j,i) - ql(k,j,i) ) / ( temp * temp ) )
+                               k2 = theta * ( l_d_cp / temp * k1 - 1.0_wp )
+                            ENDIF
+                         ELSE IF ( cloud_droplets )  THEN
+                            k1 = 1.0_wp + 0.61_wp * q(k,j,i) - ql(k,j,i)
+                            k2 = 0.61_wp * pt(k,j,i)
+                         ENDIF
+
+                         tend(k,j,i) = tend(k,j,i) + g /                       &
+                                 MERGE( vpt_reference, vpt(k,j,i),             &
+                                        use_single_reference_value ) *         &
+                                            ( k1 * surf_def_h(l)%shf(m) +      &
+                                              k2 * surf_def_h(l)%qsws(m)       &
+                                            ) * drho_air_zw(k-1)
+                      ENDDO
+                   ENDDO
+!
+!--                Treat horizontal natural surfaces
+                   surf_s = surf_lsm_h%start_index(j,i)
+                   surf_e = surf_lsm_h%end_index(j,i)
+                   DO  m = surf_s, surf_e
+                      k = surf_lsm_h%k(m)
+
+                      IF ( .NOT. cloud_physics .AND. .NOT. cloud_droplets ) THEN
+                         k1 = 1.0_wp + 0.61_wp * q(k,j,i)
+                         k2 = 0.61_wp * pt(k,j,i)
+                      ELSE IF ( cloud_physics )  THEN
+                         IF ( ql(k,j,i) == 0.0_wp )  THEN
+                            k1 = 1.0_wp + 0.61_wp * q(k,j,i)
+                            k2 = 0.61_wp * pt(k,j,i)
+                         ELSE
+                            theta = pt(k,j,i) + pt_d_t(k) * l_d_cp * ql(k,j,i)
+                            temp  = theta * t_d_pt(k)
+                            k1 = ( 1.0_wp - q(k,j,i) + 1.61_wp *               &
+                                          ( q(k,j,i) - ql(k,j,i) ) *           &
+                                 ( 1.0_wp + 0.622_wp * l_d_r / temp ) ) /      &
+                                 ( 1.0_wp + 0.622_wp * l_d_r * l_d_cp *        &
+                                 ( q(k,j,i) - ql(k,j,i) ) / ( temp * temp ) )
+                            k2 = theta * ( l_d_cp / temp * k1 - 1.0_wp )
+                         ENDIF
+                      ELSE IF ( cloud_droplets )  THEN
+                         k1 = 1.0_wp + 0.61_wp * q(k,j,i) - ql(k,j,i)
+                         k2 = 0.61_wp * pt(k,j,i)
+                      ENDIF
+
+                      tend(k,j,i) = tend(k,j,i) + g /                          &
+                                 MERGE( vpt_reference, vpt(k,j,i),             &
+                                        use_single_reference_value ) *         &
+                                            ( k1 * surf_lsm_h%shf(m) +         &
+                                              k2 * surf_lsm_h%qsws(m)          &
+                                            ) * drho_air_zw(k-1)
+                   ENDDO
+!
+!--                Treat horizontal urban surfaces
+                   surf_s = surf_usm_h%start_index(j,i)
+                   surf_e = surf_usm_h%end_index(j,i)
+                   DO  m = surf_s, surf_e
+                      k = surf_lsm_h%k(m)
+
+                      IF ( .NOT. cloud_physics .AND. .NOT. cloud_droplets ) THEN
+                         k1 = 1.0_wp + 0.61_wp * q(k,j,i)
+                         k2 = 0.61_wp * pt(k,j,i)
+                      ELSE IF ( cloud_physics )  THEN
+                         IF ( ql(k,j,i) == 0.0_wp )  THEN
+                            k1 = 1.0_wp + 0.61_wp * q(k,j,i)
+                            k2 = 0.61_wp * pt(k,j,i)
+                         ELSE
+                            theta = pt(k,j,i) + pt_d_t(k) * l_d_cp * ql(k,j,i)
+                            temp  = theta * t_d_pt(k)
+                            k1 = ( 1.0_wp - q(k,j,i) + 1.61_wp *               &
+                                          ( q(k,j,i) - ql(k,j,i) ) *           &
+                                 ( 1.0_wp + 0.622_wp * l_d_r / temp ) ) /      &
+                                 ( 1.0_wp + 0.622_wp * l_d_r * l_d_cp *        &
+                                 ( q(k,j,i) - ql(k,j,i) ) / ( temp * temp ) )
+                            k2 = theta * ( l_d_cp / temp * k1 - 1.0_wp )
+                         ENDIF
+                      ELSE IF ( cloud_droplets )  THEN
+                         k1 = 1.0_wp + 0.61_wp * q(k,j,i) - ql(k,j,i)
+                         k2 = 0.61_wp * pt(k,j,i)
+                      ENDIF
+
+                      tend(k,j,i) = tend(k,j,i) + g /                          &
+                                 MERGE( vpt_reference, vpt(k,j,i),             &
+                                        use_single_reference_value ) *         &
+                                            ( k1 * surf_usm_h%shf(m) +         &
+                                              k2 * surf_usm_h%qsws(m)          &
+                                            ) * drho_air_zw(k-1)
+                   ENDDO
+
+                ENDDO
+
+             ENDIF
+
+             IF ( use_top_fluxes )  THEN
+
+                DO  j = nys, nyn
+
+                   surf_s = surf_def_h(2)%start_index(j,i)
+                   surf_e = surf_def_h(2)%end_index(j,i)
+                   DO  m = surf_s, surf_e
+                      k = surf_def_h(2)%k(m)
+
+                      IF ( .NOT. cloud_physics .AND. .NOT. cloud_droplets ) THEN
+                         k1 = 1.0_wp + 0.61_wp * q(k,j,i)
+                         k2 = 0.61_wp * pt(k,j,i)
+                      ELSE IF ( cloud_physics )  THEN
+                         IF ( ql(k,j,i) == 0.0_wp )  THEN
+                            k1 = 1.0_wp + 0.61_wp * q(k,j,i)
+                            k2 = 0.61_wp * pt(k,j,i)
+                         ELSE
+                            theta = pt(k,j,i) + pt_d_t(k) * l_d_cp * ql(k,j,i)
+                            temp  = theta * t_d_pt(k)
+                            k1 = ( 1.0_wp - q(k,j,i) + 1.61_wp *               &
+                                       ( q(k,j,i) - ql(k,j,i) ) *              &
+                              ( 1.0_wp + 0.622_wp * l_d_r / temp ) ) /         &
+                              ( 1.0_wp + 0.622_wp * l_d_r * l_d_cp *           &
+                              ( q(k,j,i) - ql(k,j,i) ) / ( temp * temp ) )
+                            k2 = theta * ( l_d_cp / temp * k1 - 1.0_wp )
+                         ENDIF
+                      ELSE IF ( cloud_droplets )  THEN
+                         k1 = 1.0_wp + 0.61_wp * q(k,j,i) - ql(k,j,i)
+                         k2 = 0.61_wp * pt(k,j,i)
+                      ENDIF
+
+                      tend(k,j,i) = tend(k,j,i) + g /                          &
+                                 MERGE( vpt_reference, vpt(k,j,i),             &
+                                        use_single_reference_value ) *         &
+                                            ( k1 * surf_def_h(2)%shf(m) +      &
+                                              k2 * surf_def_h(2)%qsws(m)       &
+                                            ) * drho_air_zw(k)
+
+                   ENDDO
+
+                ENDDO
+
+             ENDIF
+
+          ENDIF
+
+       ENDIF
+
+    ENDDO
+
+ END SUBROUTINE production_e
+
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Production terms (shear + buoyancy) of the TKE.
+!> Cache-optimized version
+!> @warning The case with constant_flux_layer = F and use_surface_fluxes = T is
+!>          not considered well!
+!------------------------------------------------------------------------------!
+ SUBROUTINE production_e_ij( i, j )
+
+    USE arrays_3d,                                                             &
+        ONLY:  ddzw, dd2zu, drho_air_zw, q, ql
+
+    USE cloud_parameters,                                                      &
+        ONLY:  l_d_cp, l_d_r, pt_d_t, t_d_pt
+
+    USE control_parameters,                                                    &
+        ONLY:  cloud_droplets, cloud_physics, constant_flux_layer, g, neutral, &
+               rho_reference, use_single_reference_value, use_surface_fluxes,  &
+               use_top_fluxes
+
+    USE grid_variables,                                                        &
+        ONLY:  ddx, dx, ddy, dy
+
+    USE surface_mod,                                                           &
+        ONLY :  surf_def_h, surf_def_v, surf_lsm_h, surf_lsm_v, surf_usm_h,    &
+                surf_usm_v 
+
+    IMPLICIT NONE
+
+    INTEGER(iwp) ::  i       !< running index x-direction
+    INTEGER(iwp) ::  j       !< running index y-direction
+    INTEGER(iwp) ::  k       !< running index z-direction
+    INTEGER(iwp) ::  l       !< running index for different surface type orientation
+    INTEGER(iwp) ::  m       !< running index surface elements
+    INTEGER(iwp) ::  surf_e  !< end index of surface elements at given i-j position
+    INTEGER(iwp) ::  surf_s  !< start index of surface elements at given i-j position
+
+    REAL(wp)     ::  def         !<
+    REAL(wp)     ::  flag        !< flag to mask topography
+    REAL(wp)     ::  k1          !<
+    REAL(wp)     ::  k2          !<
+    REAL(wp)     ::  km_neutral  !< diffusion coefficient assuming neutral conditions - used to compute shear production at surfaces
+    REAL(wp)     ::  theta       !<
+    REAL(wp)     ::  temp        !<
+    REAL(wp)     ::  sign_dir    !< sign of wall-tke flux, depending on wall orientation 
+    REAL(wp)     ::  usvs        !< momentum flux u"v"
+    REAL(wp)     ::  vsus        !< momentum flux v"u"
+    REAL(wp)     ::  wsus        !< momentum flux w"u"
+    REAL(wp)     ::  wsvs        !< momentum flux w"v"
+
+
+    REAL(wp), DIMENSION(nzb+1:nzt)  ::  dudx        !< Gradient of u-component in x-direction
+    REAL(wp), DIMENSION(nzb+1:nzt)  ::  dudy        !< Gradient of u-component in y-direction
+    REAL(wp), DIMENSION(nzb+1:nzt)  ::  dudz        !< Gradient of u-component in z-direction
+    REAL(wp), DIMENSION(nzb+1:nzt)  ::  dvdx        !< Gradient of v-component in x-direction
+    REAL(wp), DIMENSION(nzb+1:nzt)  ::  dvdy        !< Gradient of v-component in y-direction
+    REAL(wp), DIMENSION(nzb+1:nzt)  ::  dvdz        !< Gradient of v-component in z-direction
+    REAL(wp), DIMENSION(nzb+1:nzt)  ::  dwdx        !< Gradient of w-component in x-direction
+    REAL(wp), DIMENSION(nzb+1:nzt)  ::  dwdy        !< Gradient of w-component in y-direction
+    REAL(wp), DIMENSION(nzb+1:nzt)  ::  dwdz        !< Gradient of w-component in z-direction
+
+
+    IF ( constant_flux_layer )  THEN
+!
+!--    Calculate TKE production by shear. Calculate gradients at all grid 
+!--    points first, gradients at surface-bounded grid points will be 
+!--    overwritten further below. 
+       DO  k = nzb+1, nzt
+
+          dudx(k)  =           ( u(k,j,i+1) - u(k,j,i)     ) * ddx
+          dudy(k)  = 0.25_wp * ( u(k,j+1,i) + u(k,j+1,i+1) -                   &
+                                 u(k,j-1,i) - u(k,j-1,i+1) ) * ddy 
+          dudz(k)  = 0.5_wp  * ( u(k+1,j,i) + u(k+1,j,i+1) -                   &
+                                 u(k-1,j,i) - u(k-1,j,i+1) ) * dd2zu(k) 
+
+          dvdx(k)  = 0.25_wp * ( v(k,j,i+1) + v(k,j+1,i+1) -                   &
+                                 v(k,j,i-1) - v(k,j+1,i-1) ) * ddx      
+          dvdy(k)  =           ( v(k,j+1,i) - v(k,j,i)     ) * ddy
+          dvdz(k)  = 0.5_wp  * ( v(k+1,j,i) + v(k+1,j+1,i) -                   &
+                                 v(k-1,j,i) - v(k-1,j+1,i) ) * dd2zu(k) 
+
+          dwdx(k)  = 0.25_wp * ( w(k,j,i+1) + w(k-1,j,i+1) -                   &
+                                 w(k,j,i-1) - w(k-1,j,i-1) ) * ddx      
+          dwdy(k)  = 0.25_wp * ( w(k,j+1,i) + w(k-1,j+1,i) -                   &
+                                 w(k,j-1,i) - w(k-1,j-1,i) ) * ddy      
+          dwdz(k)  =           ( w(k,j,i)   - w(k-1,j,i)   ) * ddzw(k)
+
+       ENDDO
+!
+!--    Compute gradients at north- and south-facing surfaces.
+!--    Note, no vertical natural surfaces so far.
+       DO  l = 0, 1
+!
+!--       Default surfaces
+          surf_s = surf_def_v(l)%start_index(j,i)
+          surf_e = surf_def_v(l)%end_index(j,i)
+          DO  m = surf_s, surf_e
+             k           = surf_def_v(l)%k(m)
+             usvs        = surf_def_v(l)%mom_flux_tke(0,m)
+             wsvs        = surf_def_v(l)%mom_flux_tke(1,m)
+
+             km_neutral = kappa * ( usvs**2 + wsvs**2 )**0.25_wp               &
+                             * 0.5_wp * dy
+!
+!--          -1.0 for right-facing wall, 1.0 for left-facing wall
+             sign_dir = MERGE( 1.0_wp, -1.0_wp,                                &
+                               BTEST( wall_flags_0(k,j-1,i), 0 ) ) 
+             dudy(k) = sign_dir * usvs / ( km_neutral + 1E-10_wp )
+             dwdy(k) = sign_dir * wsvs / ( km_neutral + 1E-10_wp )
+          ENDDO   
+!
+!--       Natural surfaces
+          surf_s = surf_lsm_v(l)%start_index(j,i)
+          surf_e = surf_lsm_v(l)%end_index(j,i)
+          DO  m = surf_s, surf_e
+             k           = surf_lsm_v(l)%k(m)
+             usvs        = surf_lsm_v(l)%mom_flux_tke(0,m)
+             wsvs        = surf_lsm_v(l)%mom_flux_tke(1,m)
+
+             km_neutral = kappa * ( usvs**2 + wsvs**2 )**0.25_wp               &
+                             * 0.5_wp * dy
+!
+!--          -1.0 for right-facing wall, 1.0 for left-facing wall
+             sign_dir = MERGE( 1.0_wp, -1.0_wp,                                &
+                               BTEST( wall_flags_0(k,j-1,i), 0 ) ) 
+             dudy(k) = sign_dir * usvs / ( km_neutral + 1E-10_wp )
+             dwdy(k) = sign_dir * wsvs / ( km_neutral + 1E-10_wp )
+          ENDDO 
+!
+!--       Urban surfaces
+          surf_s = surf_usm_v(l)%start_index(j,i)
+          surf_e = surf_usm_v(l)%end_index(j,i)
+          DO  m = surf_s, surf_e
+             k           = surf_usm_v(l)%k(m)
+             usvs        = surf_usm_v(l)%mom_flux_tke(0,m)
+             wsvs        = surf_usm_v(l)%mom_flux_tke(1,m)
+
+             km_neutral = kappa * ( usvs**2 + wsvs**2 )**0.25_wp               &
+                             * 0.5_wp * dy
+!
+!--          -1.0 for right-facing wall, 1.0 for left-facing wall
+             sign_dir = MERGE( 1.0_wp, -1.0_wp,                                &
+                               BTEST( wall_flags_0(k,j-1,i), 0 ) ) 
+             dudy(k) = sign_dir * usvs / ( km_neutral + 1E-10_wp )
+             dwdy(k) = sign_dir * wsvs / ( km_neutral + 1E-10_wp )
+          ENDDO 
+       ENDDO
+!
+!--    Compute gradients at east- and west-facing walls
+       DO  l = 2, 3
+!
+!--       Default surfaces
+          surf_s = surf_def_v(l)%start_index(j,i)
+          surf_e = surf_def_v(l)%end_index(j,i)
+          DO  m = surf_s, surf_e
+             k           = surf_def_v(l)%k(m)
+             vsus        = surf_def_v(l)%mom_flux_tke(0,m)
+             wsus        = surf_def_v(l)%mom_flux_tke(1,m)
+
+             km_neutral = kappa * ( vsus**2 + wsus**2 )**0.25_wp               &
+                                * 0.5_wp * dx
+!
+!--          -1.0 for right-facing wall, 1.0 for left-facing wall
+             sign_dir = MERGE( 1.0_wp, -1.0_wp,                                &
+                               BTEST( wall_flags_0(k,j,i-1), 0 ) )
+             dvdx(k) = sign_dir * vsus / ( km_neutral + 1E-10_wp )
+             dwdx(k) = sign_dir * wsus / ( km_neutral + 1E-10_wp )
+          ENDDO 
+!
+!--       Natural surfaces
+          surf_s = surf_lsm_v(l)%start_index(j,i)
+          surf_e = surf_lsm_v(l)%end_index(j,i)
+          DO  m = surf_s, surf_e
+             k           = surf_lsm_v(l)%k(m)
+             vsus        = surf_lsm_v(l)%mom_flux_tke(0,m)
+             wsus        = surf_lsm_v(l)%mom_flux_tke(1,m)
+
+             km_neutral = kappa * ( vsus**2 + wsus**2 )**0.25_wp               &
+                                * 0.5_wp * dx
+!
+!--          -1.0 for right-facing wall, 1.0 for left-facing wall
+             sign_dir = MERGE( 1.0_wp, -1.0_wp,                                &
+                               BTEST( wall_flags_0(k,j,i-1), 0 ) ) 
+             dvdx(k) = sign_dir * vsus / ( km_neutral + 1E-10_wp )
+             dwdx(k) = sign_dir * wsus / ( km_neutral + 1E-10_wp )
+          ENDDO 
+!
+!--       Urban surfaces
+          surf_s = surf_usm_v(l)%start_index(j,i)
+          surf_e = surf_usm_v(l)%end_index(j,i)
+          DO  m = surf_s, surf_e
+             k           = surf_usm_v(l)%k(m)
+             vsus        = surf_usm_v(l)%mom_flux_tke(0,m)
+             wsus        = surf_usm_v(l)%mom_flux_tke(1,m)
+
+             km_neutral = kappa * ( vsus**2 + wsus**2 )**0.25_wp               &
+                                * 0.5_wp * dx
+!
+!--          -1.0 for right-facing wall, 1.0 for left-facing wall
+             sign_dir = MERGE( 1.0_wp, -1.0_wp,                                &
+                               BTEST( wall_flags_0(k,j,i-1), 0 ) ) 
+             dvdx(k) = sign_dir * vsus / ( km_neutral + 1E-10_wp )
+             dwdx(k) = sign_dir * wsus / ( km_neutral + 1E-10_wp )
+          ENDDO 
+       ENDDO
+!
+!--    Compute gradients at upward-facing walls, first for 
+!--    non-natural default surfaces
+       surf_s = surf_def_h(0)%start_index(j,i)
+       surf_e = surf_def_h(0)%end_index(j,i)
+       DO  m = surf_s, surf_e
+          k = surf_def_h(0)%k(m)
+!
+!--       Please note, actually, an interpolation of u_0 and v_0 
+!--       onto the grid center would be required. However, this 
+!--       would require several data transfers between 2D-grid and
+!--       wall type. The effect of this missing interpolation is 
+!--       negligible. (See also production_e_init).
+          dudz(k)     = ( u(k+1,j,i) - surf_def_h(0)%u_0(m) ) * dd2zu(k)   
+          dvdz(k)     = ( v(k+1,j,i) - surf_def_h(0)%v_0(m) ) * dd2zu(k)
+
+       ENDDO
+!
+!--    Natural surfaces
+       surf_s = surf_lsm_h%start_index(j,i)
+       surf_e = surf_lsm_h%end_index(j,i)
+       DO  m = surf_s, surf_e
+          k = surf_lsm_h%k(m)
+
+          dudz(k)     = ( u(k+1,j,i) - surf_lsm_h%u_0(m) ) * dd2zu(k)   
+          dvdz(k)     = ( v(k+1,j,i) - surf_lsm_h%v_0(m) ) * dd2zu(k)
+       ENDDO
+!
+!--    Urban surfaces
+       surf_s = surf_usm_h%start_index(j,i)
+       surf_e = surf_usm_h%end_index(j,i)
+       DO  m = surf_s, surf_e
+          k = surf_usm_h%k(m)
+
+          dudz(k)     = ( u(k+1,j,i) - surf_usm_h%u_0(m) ) * dd2zu(k)   
+          dvdz(k)     = ( v(k+1,j,i) - surf_usm_h%v_0(m) ) * dd2zu(k)
+       ENDDO
+!
+!--    Compute gradients at downward-facing walls, only for 
+!--    non-natural default surfaces
+       surf_s = surf_def_h(1)%start_index(j,i)
+       surf_e = surf_def_h(1)%end_index(j,i)
+       DO  m = surf_s, surf_e
+          k = surf_def_h(1)%k(m)
+
+          dudz(k)     = ( surf_def_h(1)%u_0(m) - u(k-1,j,i) ) * dd2zu(k)   
+          dvdz(k)     = ( surf_def_h(1)%v_0(m) - v(k-1,j,i) ) * dd2zu(k) 
+
+       ENDDO
+
+       DO  k = nzb+1, nzt
+
+          def = 2.0_wp * ( dudx(k)**2 + dvdy(k)**2 + dwdz(k)**2 ) +            &
+                           dudy(k)**2 + dvdx(k)**2 + dwdx(k)**2   +            &
+                           dwdy(k)**2 + dudz(k)**2 + dvdz(k)**2   +            &
+                2.0_wp * ( dvdx(k)*dudy(k) + dwdx(k)*dudz(k) + dwdy(k)*dvdz(k) )
+
+!
+!--       Production term according to Kato and Launder (1993)
+!           def = SQRT( ( dudx(k) + dudy(k) + dudz(k) +                       &
+!                         dvdx(k) + dvdy(k) + dvdz(k) +                       &
+!                         dwdx(k) + dwdy(k) + dwdz(k)                         &
+!                       )**4 -                                                &
+!                       ( dudx(k)**2 + dvdy(k)**2 + dwdz(k)**2 +              &
+!                         2.0_wp * ( dudy(k) * dvdx(k) +                      &
+!                                    dudz(k) * dwdx(k) +                      &
+!                                    dvdz(k) * dwdy(k) )                      &
+!                       )**2                                                  &
+!                     )
+
+          IF ( def < 0.0_wp )  def = 0.0_wp
+
+          flag  = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_0(k,j,i), 0 ) ) 
+
+          tend(k,j,i) = tend(k,j,i) + km(k,j,i) * def * flag
+
+       ENDDO
+
+    ELSE
+!
+!--    Calculate TKE production by shear. Here, no additional
+!--    wall-bounded code is considered. 
+!--    Why?
+       DO  k = nzb+1, nzt
+
+          dudx(k)  =           ( u(k,j,i+1) - u(k,j,i)     ) * ddx
+          dudy(k)  = 0.25_wp * ( u(k,j+1,i) + u(k,j+1,i+1) -                   &
+                                 u(k,j-1,i) - u(k,j-1,i+1) ) * ddy
+          dudz(k)  = 0.5_wp  * ( u(k+1,j,i) + u(k+1,j,i+1) -                   &
+                                 u(k-1,j,i) - u(k-1,j,i+1) ) * dd2zu(k)
+
+          dvdx(k)  = 0.25_wp * ( v(k,j,i+1) + v(k,j+1,i+1) -                   &
+                                 v(k,j,i-1) - v(k,j+1,i-1) ) * ddx
+          dvdy(k)  =           ( v(k,j+1,i) - v(k,j,i)     ) * ddy
+          dvdz(k)  = 0.5_wp  * ( v(k+1,j,i) + v(k+1,j+1,i) -                   &
+                                 v(k-1,j,i) - v(k-1,j+1,i) ) * dd2zu(k)
+
+          dwdx(k)  = 0.25_wp * ( w(k,j,i+1) + w(k-1,j,i+1) -                   &
+                                 w(k,j,i-1) - w(k-1,j,i-1) ) * ddx
+          dwdy(k)  = 0.25_wp * ( w(k,j+1,i) + w(k-1,j+1,i) -                   &
+                                 w(k,j-1,i) - w(k-1,j-1,i) ) * ddy
+          dwdz(k)  =           ( w(k,j,i)   - w(k-1,j,i)   ) * ddzw(k)
+
+          def = 2.0_wp * ( dudx(k)**2 + dvdy(k)**2 + dwdz(k)**2 ) +            &
+                           dudy(k)**2 + dvdx(k)**2 + dwdx(k)**2   +            &
+                           dwdy(k)**2 + dudz(k)**2 + dvdz(k)**2   +            &
+                2.0_wp * ( dvdx(k)*dudy(k) + dwdx(k)*dudz(k) + dwdy(k)*dvdz(k) )
+
+!
+!--       Production term according to Kato and Launder (1993)
+!           def = SQRT( ( dudx(k) + dudy(k) + dudz(k) +                        &
+!                         dvdx(k) + dvdy(k) + dvdz(k) +                        &
+!                         dwdx(k) + dwdy(k) + dwdz(k)                          &
+!                       )**4 -                                                 &
+!                       ( dudx(k)**2 + dvdy(k)**2 + dwdz(k)**2 +               &
+!                         2.0_wp * ( dudy(k) * dvdx(k) +                       &
+!                                    dudz(k) * dwdx(k) +                       &
+!                                    dvdz(k) * dwdy(k) )                       &
+!                       )**2                                                   &
+!                     )
+
+          IF ( def < 0.0_wp )  def = 0.0_wp
+
+          flag        = MERGE( 1.0_wp, 0.0_wp,                                 &
+                               BTEST( wall_flags_0(k,j,i), 29 ) ) 
+          tend(k,j,i) = tend(k,j,i) + km(k,j,i) * def * flag
+
+       ENDDO
+
+    ENDIF
+
+!
+!-- If required, calculate TKE production by buoyancy
+    IF ( .NOT. neutral )  THEN
+
+       IF ( .NOT. humidity )  THEN
+
+          IF ( ocean )  THEN
+!
+!--          So far in the ocean no special treatment of density flux in
+!--          the bottom and top surface layer
+             DO  k = nzb+1, nzt
+ 
+                tend(k,j,i) = tend(k,j,i) +                                    &
+                              kh(k,j,i) * g /                                  &
+                              MERGE( rho_reference, prho(k,j,i),               &
+                                     use_single_reference_value ) *            &
+                              ( prho(k+1,j,i) - prho(k-1,j,i) ) *              &
+                              dd2zu(k) *                                       &
+                                MERGE( 1.0_wp, 0.0_wp,                         &
+                                       BTEST( wall_flags_0(k,j,i), 30 )        &
+                                     ) *                                       &
+                                MERGE( 1.0_wp, 0.0_wp,                         &
+                                       BTEST( wall_flags_0(k,j,i), 9 )         &
+                                     )           
+             ENDDO
+
+             IF ( use_surface_fluxes )  THEN
+!
+!--             Default surfaces, up- and downward-facing
+                DO  l = 0, 1
+                   surf_s = surf_def_h(l)%start_index(j,i)
+                   surf_e = surf_def_h(l)%end_index(j,i)
+                   DO  m = surf_s, surf_e
+                      k = surf_def_h(l)%k(m)
+                      tend(k,j,i) = tend(k,j,i) + g /                          &
+                                MERGE( rho_reference, prho(k,j,i),             &
+                                       use_single_reference_value ) *          &
+                                drho_air_zw(k-1) *                             &
+                                surf_def_h(l)%shf(m)
+                   ENDDO
+                ENDDO
+
+             ENDIF
+
+             IF ( use_top_fluxes )  THEN
+                surf_s = surf_def_h(2)%start_index(j,i)
+                surf_e = surf_def_h(2)%end_index(j,i)
+                DO  m = surf_s, surf_e
+                   k = surf_def_h(2)%k(m)
+                   tend(k,j,i) = tend(k,j,i) + g /                             &
+                                MERGE( rho_reference, prho(k,j,i),             &
+                                       use_single_reference_value ) *          &
+                                drho_air_zw(k) *                               &
+                                surf_def_h(2)%shf(m) 
+                ENDDO
+             ENDIF
+
+          ELSE
+
+             DO  k = nzb+1, nzt
+!
+!--             Flag 9 is used to mask top fluxes, flag 30 to mask
+!--             surface fluxes
+                tend(k,j,i) = tend(k,j,i) -                                    &
+                              kh(k,j,i) * g /                                  &
+                                MERGE( pt_reference, pt(k,j,i),                &
+                                       use_single_reference_value ) *          &
+                              ( pt(k+1,j,i) - pt(k-1,j,i) ) * dd2zu(k) *       &
+                                MERGE( 1.0_wp, 0.0_wp,                         &
+                                       BTEST( wall_flags_0(k,j,i), 30 )        &
+                                     ) *                                       &
+                                MERGE( 1.0_wp, 0.0_wp,                         &
+                                       BTEST( wall_flags_0(k,j,i), 9 )         &
+                                     )
+
+             ENDDO
+
+             IF ( use_surface_fluxes )  THEN
+!
+!--             Default surfaces, up- and downward-facing
+                DO  l = 0, 1
+                   surf_s = surf_def_h(l)%start_index(j,i)
+                   surf_e = surf_def_h(l)%end_index(j,i)
+                   DO  m = surf_s, surf_e
+                      k = surf_def_h(l)%k(m)
+                      tend(k,j,i) = tend(k,j,i) + g /                          &
+                                MERGE( pt_reference, pt(k,j,i),                &
+                                       use_single_reference_value ) *          &
+                                drho_air_zw(k-1) *                             &
+                                surf_def_h(l)%shf(m)
+                   ENDDO
+                ENDDO
+!
+!--             Natural surfaces
+                surf_s = surf_lsm_h%start_index(j,i)
+                surf_e = surf_lsm_h%end_index(j,i)
+                DO  m = surf_s, surf_e
+                   k = surf_lsm_h%k(m)
+                   tend(k,j,i) = tend(k,j,i) + g /                             &
+                                MERGE( pt_reference, pt(k,j,i),                &
+                                       use_single_reference_value ) *          &
+                                drho_air_zw(k-1) *                             &
+                                surf_lsm_h%shf(m) 
+                ENDDO
+!
+!--             Urban surfaces
+                surf_s = surf_usm_h%start_index(j,i)
+                surf_e = surf_usm_h%end_index(j,i)
+                DO  m = surf_s, surf_e
+                   k = surf_usm_h%k(m)
+                   tend(k,j,i) = tend(k,j,i) + g /                             &
+                                MERGE( pt_reference, pt(k,j,i),                &
+                                       use_single_reference_value ) *          &
+                                drho_air_zw(k-1) *                             &
+                                surf_usm_h%shf(m) 
+                ENDDO
+             ENDIF
+
+             IF ( use_top_fluxes )  THEN
+                surf_s = surf_def_h(2)%start_index(j,i)
+                surf_e = surf_def_h(2)%end_index(j,i)
+                DO  m = surf_s, surf_e
+                   k = surf_def_h(2)%k(m)
+                   tend(k,j,i) = tend(k,j,i) + g /                             &
+                                MERGE( pt_reference, pt(k,j,i),                &
+                                       use_single_reference_value ) *          &
+                                drho_air_zw(k) *                               &
+                                surf_def_h(2)%shf(m) 
+                ENDDO
+             ENDIF
+
+          ENDIF
+
+       ELSE
+
+          DO  k = nzb+1, nzt
+!
+!--          Flag 9 is used to mask top fluxes, flag 30 to mask surface fluxes
+             IF ( .NOT. cloud_physics .AND. .NOT. cloud_droplets )  THEN
+                k1 = 1.0_wp + 0.61_wp * q(k,j,i)
+                k2 = 0.61_wp * pt(k,j,i)
+                tend(k,j,i) = tend(k,j,i) - kh(k,j,i) * g /                    &
+                                MERGE( vpt_reference, vpt(k,j,i),              &
+                                       use_single_reference_value ) *          &
+                                      ( k1 * ( pt(k+1,j,i)-pt(k-1,j,i) ) +     &
+                                        k2 * ( q(k+1,j,i) - q(k-1,j,i) )       &
+                                      ) * dd2zu(k) *                           &
+                                   MERGE( 1.0_wp, 0.0_wp,                      &
+                                          BTEST( wall_flags_0(k,j,i), 30 )     &
+                                        )          *                           &
+                                   MERGE( 1.0_wp, 0.0_wp,                      &
+                                          BTEST( wall_flags_0(k,j,i), 9 )      &
+                                        )
+
+             ELSE IF ( cloud_physics )  THEN
+                IF ( ql(k,j,i) == 0.0_wp )  THEN
+                   k1 = 1.0_wp + 0.61_wp * q(k,j,i)
+                   k2 = 0.61_wp * pt(k,j,i)
+                ELSE
+                   theta = pt(k,j,i) + pt_d_t(k) * l_d_cp * ql(k,j,i)
+                   temp  = theta * t_d_pt(k)
+                   k1 = ( 1.0_wp - q(k,j,i) + 1.61_wp *                        &
+                                 ( q(k,j,i) - ql(k,j,i) ) *                    &
+                        ( 1.0_wp + 0.622_wp * l_d_r / temp ) ) /               &
+                        ( 1.0_wp + 0.622_wp * l_d_r * l_d_cp *                 &
+                        ( q(k,j,i) - ql(k,j,i) ) / ( temp * temp ) )
+                   k2 = theta * ( l_d_cp / temp * k1 - 1.0_wp )
+                ENDIF
+                tend(k,j,i) = tend(k,j,i) - kh(k,j,i) * g /                    &
+                                MERGE( vpt_reference, vpt(k,j,i),              &
+                                       use_single_reference_value ) *          &
+                                      ( k1 * ( pt(k+1,j,i)-pt(k-1,j,i) ) +     &
+                                        k2 * ( q(k+1,j,i) - q(k-1,j,i) )       &
+                                      ) * dd2zu(k) *                           &
+                                   MERGE( 1.0_wp, 0.0_wp,                      &
+                                          BTEST( wall_flags_0(k,j,i), 30 )     &
+                                        )          *                           &
+                                   MERGE( 1.0_wp, 0.0_wp,                      &
+                                          BTEST( wall_flags_0(k,j,i), 9 )      &
+                                        )
+             ELSE IF ( cloud_droplets )  THEN
+                k1 = 1.0_wp + 0.61_wp * q(k,j,i) - ql(k,j,i)
+                k2 = 0.61_wp * pt(k,j,i)
+                tend(k,j,i) = tend(k,j,i) - kh(k,j,i) * g /                    &
+                                MERGE( vpt_reference, vpt(k,j,i),              &
+                                       use_single_reference_value ) *          &
+                                  ( k1 * ( pt(k+1,j,i)-pt(k-1,j,i) ) +         &
+                                    k2 * ( q(k+1,j,i) - q(k-1,j,i) ) -         &
+                                    pt(k,j,i) * ( ql(k+1,j,i) -                &
+                                                  ql(k-1,j,i) ) ) * dd2zu(k)   &
+                                 * MERGE( 1.0_wp, 0.0_wp,                      &
+                                          BTEST( wall_flags_0(k,j,i), 30 )     &
+                                        )                                      &
+                                 * MERGE( 1.0_wp, 0.0_wp,                      &
+                                          BTEST( wall_flags_0(k,j,i), 9 )      &
+                                        )    
+             ENDIF
+          ENDDO
+
+          IF ( use_surface_fluxes )  THEN
+!
+!--          Treat horizontal default surfaces, up- and downward-facing
+             DO  l = 0, 1
+                surf_s = surf_def_h(l)%start_index(j,i)
+                surf_e = surf_def_h(l)%end_index(j,i)
+                DO  m = surf_s, surf_e
+                   k = surf_def_h(l)%k(m)
+
+                   IF ( .NOT. cloud_physics .AND. .NOT. cloud_droplets ) THEN
+                      k1 = 1.0_wp + 0.61_wp * q(k,j,i)
+                      k2 = 0.61_wp * pt(k,j,i)
+                   ELSE IF ( cloud_physics )  THEN
+                      IF ( ql(k,j,i) == 0.0_wp )  THEN
+                         k1 = 1.0_wp + 0.61_wp * q(k,j,i)
+                         k2 = 0.61_wp * pt(k,j,i)
+                      ELSE
+                        theta = pt(k,j,i) + pt_d_t(k) * l_d_cp * ql(k,j,i)
+                        temp  = theta * t_d_pt(k)
+                        k1 = ( 1.0_wp - q(k,j,i) + 1.61_wp *                   &
+                                   ( q(k,j,i) - ql(k,j,i) ) *                  &
+                          ( 1.0_wp + 0.622_wp * l_d_r / temp ) ) /             &
+                          ( 1.0_wp + 0.622_wp * l_d_r * l_d_cp *               & 
+                          ( q(k,j,i) - ql(k,j,i) ) / ( temp * temp ) )
+                        k2 = theta * ( l_d_cp / temp * k1 - 1.0_wp )
+                      ENDIF
+                   ELSE IF ( cloud_droplets )  THEN
+                      k1 = 1.0_wp + 0.61_wp * q(k,j,i) - ql(k,j,i)
+                      k2 = 0.61_wp * pt(k,j,i)
+                   ENDIF
+
+                   tend(k,j,i) = tend(k,j,i) + g /                             &
+                                MERGE( vpt_reference, vpt(k,j,i),              &
+                                       use_single_reference_value ) *          &
+                                      ( k1 * surf_def_h(l)%shf(m) +            &
+                                        k2 * surf_def_h(l)%qsws(m)             &
+                                      ) * drho_air_zw(k-1)
+                ENDDO
+             ENDDO
+!
+!--          Treat horizontal natural surfaces
+             surf_s = surf_lsm_h%start_index(j,i)
+             surf_e = surf_lsm_h%end_index(j,i)
+             DO  m = surf_s, surf_e
+                k = surf_lsm_h%k(m)
+
+                IF ( .NOT. cloud_physics .AND. .NOT. cloud_droplets ) THEN
+                    k1 = 1.0_wp + 0.61_wp * q(k,j,i)
+                    k2 = 0.61_wp * pt(k,j,i)
+                ELSE IF ( cloud_physics )  THEN
+                    IF ( ql(k,j,i) == 0.0_wp )  THEN
+                       k1 = 1.0_wp + 0.61_wp * q(k,j,i)
+                       k2 = 0.61_wp * pt(k,j,i)
+                    ELSE
+                       theta = pt(k,j,i) + pt_d_t(k) * l_d_cp * ql(k,j,i)
+                       temp  = theta * t_d_pt(k)
+                       k1 = ( 1.0_wp - q(k,j,i) + 1.61_wp *                    &
+                                     ( q(k,j,i) - ql(k,j,i) ) *                &
+                            ( 1.0_wp + 0.622_wp * l_d_r / temp ) ) /           &
+                            ( 1.0_wp + 0.622_wp * l_d_r * l_d_cp *             &
+                            ( q(k,j,i) - ql(k,j,i) ) / ( temp * temp ) )
+                       k2 = theta * ( l_d_cp / temp * k1 - 1.0_wp )
+                   ENDIF
+                ELSE IF ( cloud_droplets )  THEN
+                   k1 = 1.0_wp + 0.61_wp * q(k,j,i) - ql(k,j,i)
+                   k2 = 0.61_wp * pt(k,j,i)
+                ENDIF
+
+                tend(k,j,i) = tend(k,j,i) + g /                                &
+                                MERGE( vpt_reference, vpt(k,j,i),              &
+                                       use_single_reference_value ) *          &
+                                         ( k1 * surf_lsm_h%shf(m) +            &
+                                           k2 * surf_lsm_h%qsws(m)             &
+                                         ) * drho_air_zw(k-1)
+             ENDDO
+!
+!--          Treat horizontal urban surfaces
+             surf_s = surf_usm_h%start_index(j,i)
+             surf_e = surf_usm_h%end_index(j,i)
+             DO  m = surf_s, surf_e
+                k = surf_usm_h%k(m)
+
+                IF ( .NOT. cloud_physics .AND. .NOT. cloud_droplets ) THEN
+                    k1 = 1.0_wp + 0.61_wp * q(k,j,i)
+                    k2 = 0.61_wp * pt(k,j,i)
+                ELSE IF ( cloud_physics )  THEN
+                    IF ( ql(k,j,i) == 0.0_wp )  THEN
+                       k1 = 1.0_wp + 0.61_wp * q(k,j,i)
+                       k2 = 0.61_wp * pt(k,j,i)
+                    ELSE
+                       theta = pt(k,j,i) + pt_d_t(k) * l_d_cp * ql(k,j,i)
+                       temp  = theta * t_d_pt(k)
+                       k1 = ( 1.0_wp - q(k,j,i) + 1.61_wp *                    &
+                                     ( q(k,j,i) - ql(k,j,i) ) *                &
+                            ( 1.0_wp + 0.622_wp * l_d_r / temp ) ) /           &
+                            ( 1.0_wp + 0.622_wp * l_d_r * l_d_cp *             &
+                            ( q(k,j,i) - ql(k,j,i) ) / ( temp * temp ) )
+                       k2 = theta * ( l_d_cp / temp * k1 - 1.0_wp )
+                   ENDIF
+                ELSE IF ( cloud_droplets )  THEN
+                   k1 = 1.0_wp + 0.61_wp * q(k,j,i) - ql(k,j,i)
+                   k2 = 0.61_wp * pt(k,j,i)
+                ENDIF
+
+                tend(k,j,i) = tend(k,j,i) + g /                                &
+                                MERGE( vpt_reference, vpt(k,j,i),              &
+                                       use_single_reference_value ) *          &
+                                         ( k1 * surf_usm_h%shf(m) +            &
+                                           k2 * surf_usm_h%qsws(m)             &
+                                         ) * drho_air_zw(k-1)
+             ENDDO
+
+          ENDIF
+
+          IF ( use_top_fluxes )  THEN
+             surf_s = surf_def_h(2)%start_index(j,i)
+             surf_e = surf_def_h(2)%end_index(j,i)
+             DO  m = surf_s, surf_e
+                k = surf_def_h(2)%k(m)
+
+
+
+                IF ( .NOT. cloud_physics .AND. .NOT. cloud_droplets )  THEN
+                   k1 = 1.0_wp + 0.61_wp * q(k,j,i)
+                   k2 = 0.61_wp * pt(k,j,i)
+                ELSE IF ( cloud_physics )  THEN
+                   IF ( ql(k,j,i) == 0.0_wp )  THEN
+                      k1 = 1.0_wp + 0.61_wp * q(k,j,i)
+                      k2 = 0.61_wp * pt(k,j,i)
+                   ELSE
+                      theta = pt(k,j,i) + pt_d_t(k) * l_d_cp * ql(k,j,i)
+                      temp  = theta * t_d_pt(k)
+                      k1 = ( 1.0_wp - q(k,j,i) + 1.61_wp *                     &
+                                 ( q(k,j,i) - ql(k,j,i) ) *                    &
+                        ( 1.0_wp + 0.622_wp * l_d_r / temp ) ) /               &
+                        ( 1.0_wp + 0.622_wp * l_d_r * l_d_cp *                 &
+                        ( q(k,j,i) - ql(k,j,i) ) / ( temp * temp ) )
+                      k2 = theta * ( l_d_cp / temp * k1 - 1.0_wp )
+                   ENDIF
+                ELSE IF ( cloud_droplets )  THEN
+                   k1 = 1.0_wp + 0.61_wp * q(k,j,i) - ql(k,j,i)
+                   k2 = 0.61_wp * pt(k,j,i)
+                ENDIF
+
+                tend(k,j,i) = tend(k,j,i) + g /                                &
+                                MERGE( vpt_reference, vpt(k,j,i),              &
+                                       use_single_reference_value ) *          &
+                            ( k1* surf_def_h(2)%shf(m) +                       &
+                              k2 * surf_def_h(2)%qsws(m)                       &
+                            ) * drho_air_zw(k)
+             ENDDO
+
+          ENDIF
+
+       ENDIF
+
+    ENDIF
+
+  END SUBROUTINE production_e_ij
+
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Diffusion and dissipation terms for the TKE.
+!> Vector-optimized version
+!------------------------------------------------------------------------------!
+ SUBROUTINE diffusion_e( var, var_reference )
+
+    USE arrays_3d,                                                             &
+        ONLY:  ddzu, ddzw, drho_air, rho_air_zw
+
+    USE grid_variables,                                                        &
+        ONLY:  ddx2, ddy2
+
+    USE microphysics_mod,                                                      &
+        ONLY:  collision_turbulence
+
+    USE particle_attributes,                                                   &
+        ONLY:  use_sgs_for_particles, wang_kernel
+
+    USE surface_mod,                                                           &
+       ONLY :  bc_h
+
+    IMPLICIT NONE
+
+    INTEGER(iwp) ::  i              !< running index x direction
+    INTEGER(iwp) ::  j              !< running index y direction
+    INTEGER(iwp) ::  k              !< running index z direction
+    INTEGER(iwp) ::  m              !< running index surface elements
+
+    REAL(wp)     ::  flag           !< flag to mask topography
+    REAL(wp)     ::  l              !< mixing length
+    REAL(wp)     ::  ll             !< adjusted l
+    REAL(wp)     ::  var_reference  !< 
+
+#if defined( __nopointer )
+    REAL(wp), DIMENSION(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ::  var  !< 
+#else
+    REAL(wp), DIMENSION(:,:,:), POINTER ::  var  !< 
+#endif
+    REAL(wp), DIMENSION(nzb+1:nzt,nys:nyn) ::  dissipation  !< TKE dissipation
+
+
+!
+!-- Calculate the tendency terms
+    DO  i = nxl, nxr
+       DO  j = nys, nyn
+          DO  k = nzb+1, nzt
+
+!
+!--          Calculate dissipation
+             IF ( les_mw )  THEN
+
+                CALL mixing_length_les( i, j, k, l, ll, var, var_reference )
+
+                dissipation(k,j) = ( 0.19_wp + 0.74_wp * l / ll )              &
+                                   * e(k,j,i) * SQRT( e(k,j,i) ) / l
+
+             ELSEIF ( rans_tke_l )  THEN
+
+                CALL mixing_length_rans( i, j, k, l, ll, var, var_reference )
+
+                dissipation(k,j) = c_m**3 * e(k,j,i) * SQRT( e(k,j,i) ) / ll
+
+             ELSEIF ( rans_tke_e )  THEN
+
+                dissipation(k,j) = diss(k,j,i)
+
+             ENDIF
+
+!
+!--          Predetermine flag to mask topography
+             flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_0(k,j,i), 0 ) )
+
+             tend(k,j,i) = tend(k,j,i)                                         &
+                                     + (                                       &
+                       ( km(k,j,i)+km(k,j,i+1) ) * ( e(k,j,i+1)-e(k,j,i) )     &
+                     - ( km(k,j,i)+km(k,j,i-1) ) * ( e(k,j,i)-e(k,j,i-1) )     &
+                                       ) * ddx2  * flag                        &
+                                     + (                                       &
+                       ( km(k,j,i)+km(k,j+1,i) ) * ( e(k,j+1,i)-e(k,j,i) )     &
+                     - ( km(k,j,i)+km(k,j-1,i) ) * ( e(k,j,i)-e(k,j-1,i) )     &
+                                       ) * ddy2  * flag                        &
+                                     + (                                       &
+            ( km(k,j,i)+km(k+1,j,i) ) * ( e(k+1,j,i)-e(k,j,i) ) * ddzu(k+1)    &
+                                                          * rho_air_zw(k)      &
+          - ( km(k,j,i)+km(k-1,j,i) ) * ( e(k,j,i)-e(k-1,j,i) ) * ddzu(k)      &
+                                                          * rho_air_zw(k-1)    &
+                                       ) * ddzw(k) * drho_air(k) * flag        &
+                          - dissipation(k,j) * flag
+
+          ENDDO
+       ENDDO
+
+!
+!--    Store dissipation if needed for calculating the sgs particle
+!--    velocities
+       IF ( .NOT. rans_tke_e .AND. ( use_sgs_for_particles  .OR.               &
+            wang_kernel  .OR.  collision_turbulence  ) )  THEN
+          DO  j = nys, nyn
+             DO  k = nzb+1, nzt
+                diss(k,j,i) = dissipation(k,j) * MERGE( 1.0_wp, 0.0_wp,        &
+                                               BTEST( wall_flags_0(k,j,i), 0 ) )
+             ENDDO
+          ENDDO
+       ENDIF
+
+    ENDDO
+
+!
+!-- Neumann boundary condition for dissipation diss(nzb,:,:) = diss(nzb+1,:,:)
+    IF ( .NOT. rans_tke_e .AND. ( use_sgs_for_particles  .OR.                  &
+         wang_kernel  .OR.  collision_turbulence  ) )  THEN
+!
+!--    Upward facing surfaces
+       DO  m = 1, bc_h(0)%ns
+          i = bc_h(0)%i(m)            
+          j = bc_h(0)%j(m)
+          k = bc_h(0)%k(m)
+          diss(k-1,j,i) = diss(k,j,i)
+       ENDDO
+!
+!--    Downward facing surfaces
+       DO  m = 1, bc_h(1)%ns
+          i = bc_h(1)%i(m)            
+          j = bc_h(1)%j(m)
+          k = bc_h(1)%k(m)
+          diss(k+1,j,i) = diss(k,j,i)
+       ENDDO
+
+    ENDIF
+
+ END SUBROUTINE diffusion_e
+
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Diffusion and dissipation terms for the TKE.
+!> Cache-optimized version
+!------------------------------------------------------------------------------!
+ SUBROUTINE diffusion_e_ij( i, j, var, var_reference )
+
+    USE arrays_3d,                                                             &
+        ONLY:  ddzu, ddzw, drho_air, rho_air_zw
+
+    USE grid_variables,                                                        &
+        ONLY:  ddx2, ddy2
+        
+    USE microphysics_mod,                                                      &
+        ONLY:  collision_turbulence
+
+    USE particle_attributes,                                                   &
+        ONLY:  use_sgs_for_particles, wang_kernel
+
+    USE surface_mod,                                                           &
+       ONLY :  bc_h
+
+    IMPLICIT NONE
+
+    INTEGER(iwp) ::  i              !< running index x direction
+    INTEGER(iwp) ::  j              !< running index y direction
+    INTEGER(iwp) ::  k              !< running index z direction
+    INTEGER(iwp) ::  m              !< running index surface elements
+    INTEGER(iwp) ::  surf_e         !< End index of surface elements at (j,i)-gridpoint
+    INTEGER(iwp) ::  surf_s         !< Start index of surface elements at (j,i)-gridpoint
+
+    REAL(wp)     ::  flag           !< flag to mask topography
+    REAL(wp)     ::  l              !< mixing length
+    REAL(wp)     ::  ll             !< adjusted l
+    REAL(wp)     ::  var_reference  !< 
+
+#if defined( __nopointer )
+    REAL(wp), DIMENSION(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ::  var  !<
+#else
+    REAL(wp), DIMENSION(:,:,:), POINTER ::  var     !<
+#endif
+    REAL(wp), DIMENSION(nzb+1:nzt) ::  dissipation  !< dissipation of TKE
+
+!
+!-- Calculate the mixing length (for dissipation)
+    DO  k = nzb+1, nzt
+!
+!--    Predetermine flag to mask topography
+       flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_0(k,j,i), 0 ) )
+
+!
+!--    Calculate dissipation...
+!--    ...in case of LES
+       IF ( les_mw )  THEN
+
+          CALL mixing_length_les( i, j, k, l, ll, var, var_reference )
+
+          dissipation(k) = ( 0.19_wp + 0.74_wp * l / ll )                      &
+                           * e(k,j,i) * SQRT( e(k,j,i) ) / l
+
+!
+!--    ...in case of RANS
+       ELSEIF ( rans_tke_l )  THEN
+
+          CALL mixing_length_rans( i, j, k, l, ll, var, var_reference  )
+
+          dissipation(k) = c_m**3 * e(k,j,i) * SQRT( e(k,j,i) ) / ll
+
+       ELSEIF ( rans_tke_e )  THEN
+
+          dissipation(k) = diss(k,j,i)
+
+       ENDIF
+
+!
+!--    Calculate the tendency term
+       tend(k,j,i) = tend(k,j,i)                                               &
+                                    + (                                        &
+                      ( km(k,j,i)+km(k,j,i+1) ) * ( e(k,j,i+1)-e(k,j,i) )      &
+                    - ( km(k,j,i)+km(k,j,i-1) ) * ( e(k,j,i)-e(k,j,i-1) )      &
+                                      ) * ddx2  * flag / sig_e                 &
+                                    + (                                        &
+                      ( km(k,j,i)+km(k,j+1,i) ) * ( e(k,j+1,i)-e(k,j,i) )      &
+                    - ( km(k,j,i)+km(k,j-1,i) ) * ( e(k,j,i)-e(k,j-1,i) )      &
+                                      ) * ddy2  * flag / sig_e                 &
+                                    + (                                        &
+           ( km(k,j,i)+km(k+1,j,i) ) * ( e(k+1,j,i)-e(k,j,i) ) * ddzu(k+1)     &
+                                                         * rho_air_zw(k)       &
+         - ( km(k,j,i)+km(k-1,j,i) ) * ( e(k,j,i)-e(k-1,j,i) ) * ddzu(k)       &
+                                                         * rho_air_zw(k-1)     &
+                                      ) * ddzw(k) * drho_air(k) * flag / sig_e &
+                                    - dissipation(k) * flag
+
+    ENDDO
+
+!
+!-- Store dissipation if needed for calculating the sgs particle velocities
+    IF ( .NOT. rans_tke_e .AND.  ( use_sgs_for_particles  .OR.  wang_kernel    &
+          .OR.  collision_turbulence ) )  THEN
+       DO  k = nzb+1, nzt
+          diss(k,j,i) = dissipation(k) * MERGE( 1.0_wp, 0.0_wp,                &
+                                               BTEST( wall_flags_0(k,j,i), 0 ) )
+       ENDDO
+!
+!--    Neumann boundary condition for dissipation diss(nzb,:,:) = diss(nzb+1,:,:)
+!--    For each surface type determine start and end index (in case of elevated
+!--    topography several up/downward facing surfaces may exist.
+       surf_s = bc_h(0)%start_index(j,i)   
+       surf_e = bc_h(0)%end_index(j,i)   
+       DO  m = surf_s, surf_e
+          k             = bc_h(0)%k(m)
+          diss(k-1,j,i) = diss(k,j,i)
+       ENDDO
+!
+!--    Downward facing surfaces
+       surf_s = bc_h(1)%start_index(j,i)   
+       surf_e = bc_h(1)%end_index(j,i)   
+       DO  m = surf_s, surf_e
+          k             = bc_h(1)%k(m)
+          diss(k+1,j,i) = diss(k,j,i)
+       ENDDO
+    ENDIF
+
+ END SUBROUTINE diffusion_e_ij
+
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Diffusion term for the TKE dissipation rate
+!> Vector-optimized version
+!------------------------------------------------------------------------------!
+ SUBROUTINE diffusion_diss()
+    USE arrays_3d,                                                             &
+        ONLY:  ddzu, ddzw, drho_air, rho_air_zw
+
+    USE grid_variables,                                                        &
+        ONLY:  ddx2, ddy2
+
+    IMPLICIT NONE
+
+    INTEGER(iwp) ::  i              !< running index x direction
+    INTEGER(iwp) ::  j              !< running index y direction
+    INTEGER(iwp) ::  k              !< running index z direction
+
+    REAL(wp)     ::  flag           !< flag to mask topography
+
+!
+!-- Calculate the tendency terms
+    DO  i = nxl, nxr
+       DO  j = nys, nyn
+          DO  k = nzb+1, nzt
+
+!
+!--          Predetermine flag to mask topography
+             flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_0(k,j,i), 0 ) )
+
+             tend(k,j,i) = tend(k,j,i)                                         &
+                               + (                                             &
+                 ( km(k,j,i)+km(k,j,i+1) ) * ( diss(k,j,i+1)-diss(k,j,i) )     &
+               - ( km(k,j,i)+km(k,j,i-1) ) * ( diss(k,j,i)-diss(k,j,i-1) )     &
+                                 ) * ddx2  * flag                              &
+                               + (                                             &
+                 ( km(k,j,i)+km(k,j+1,i) ) * ( diss(k,j+1,i)-diss(k,j,i) )     &
+               - ( km(k,j,i)+km(k,j-1,i) ) * ( diss(k,j,i)-diss(k,j-1,i) )     &
+                                 ) * ddy2  * flag                              &
+                               + (                                             &
+      ( km(k,j,i)+km(k+1,j,i) ) * ( diss(k+1,j,i)-diss(k,j,i) ) * ddzu(k+1)    &
+                                                    * rho_air_zw(k)            &
+    - ( km(k,j,i)+km(k-1,j,i) ) * ( diss(k,j,i)-diss(k-1,j,i) ) * ddzu(k)      &
+                                                    * rho_air_zw(k-1)          &
+                                 ) * ddzw(k) * drho_air(k) * flag              &
+                               - c_2 * diss(k,j,i)**2                          &
+                                     / ( e(k,j,i) + 1.0E-20_wp ) * flag
+
+          ENDDO
+       ENDDO
+    ENDDO
+
+ END SUBROUTINE diffusion_diss
+
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Diffusion term for the TKE dissipation rate
+!> Cache-optimized version
+!------------------------------------------------------------------------------!
+ SUBROUTINE diffusion_diss_ij( i, j )
+
+    USE arrays_3d,                                                             &
+        ONLY:  ddzu, ddzw, drho_air, rho_air_zw
+
+    USE grid_variables,                                                        &
+        ONLY:  ddx2, ddy2
+
+    IMPLICIT NONE
+
+    INTEGER(iwp) ::  i              !< running index x direction
+    INTEGER(iwp) ::  j              !< running index y direction
+    INTEGER(iwp) ::  k              !< running index z direction
+
+    REAL(wp)     ::  flag           !< flag to mask topography
+
+    REAL(wp), DIMENSION(nzb+1:nzt) :: tend_temp
+
+!
+!-- Calculate the mixing length (for dissipation)
+    DO  k = nzb+1, nzt
+
+!
+!--    Predetermine flag to mask topography
+       flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_0(k,j,i), 0 ) )
+
+!
+!--    Calculate the tendency term
+       tend_temp(k) =           (                                              &
+                ( km(k,j,i)+km(k,j,i+1) ) * ( diss(k,j,i+1)-diss(k,j,i) )      &
+              - ( km(k,j,i)+km(k,j,i-1) ) * ( diss(k,j,i)-diss(k,j,i-1) )      &
+                                ) * ddx2  * flag / sig_diss                    &
+                              + (                                              &
+                ( km(k,j,i)+km(k,j+1,i) ) * ( diss(k,j+1,i)-diss(k,j,i) )      &
+              - ( km(k,j,i)+km(k,j-1,i) ) * ( diss(k,j,i)-diss(k,j-1,i) )      &
+                                ) * ddy2  * flag / sig_diss                    &
+                              + (                                              &
+     ( km(k,j,i)+km(k+1,j,i) ) * ( diss(k+1,j,i)-diss(k,j,i) ) * ddzu(k+1)     &
+                                                   * rho_air_zw(k)             &
+   - ( km(k,j,i)+km(k-1,j,i) ) * ( diss(k,j,i)-diss(k-1,j,i) ) * ddzu(k)       &
+                                                   * rho_air_zw(k-1)           &
+                                ) * ddzw(k) * drho_air(k) * flag / sig_diss    &
+                              - c_2 * diss(k,j,i)**2                           &
+                                    / ( e(k,j,i) + 1.0E-20_wp ) * flag
+
+       tend(k,j,i) = tend(k,j,i) + tend_temp(k)
+
+    ENDDO
+
+ END SUBROUTINE diffusion_diss_ij
+
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Calculate mixing length for LES mode.
+!------------------------------------------------------------------------------!
+ SUBROUTINE mixing_length_les( i, j, k, l, ll, var, var_reference )
+
+    USE arrays_3d,                                                             &
+        ONLY:  dd2zu, l_grid, l_wall
+
+    USE control_parameters,                                                    &
+        ONLY:  atmos_ocean_sign, g, use_single_reference_value,                &
+               wall_adjustment, wall_adjustment_factor
+
+    IMPLICIT NONE
+
+    INTEGER(iwp) :: i   !< loop index
+    INTEGER(iwp) :: j   !< loop index
+    INTEGER(iwp) :: k   !< loop index
+
+    REAL(wp)     :: dvar_dz         !< vertical gradient of var
+    REAL(wp)     :: l               !< mixing length
+    REAL(wp)     :: l_stable        !< mixing length according to stratification
+    REAL(wp)     :: ll              !< adjusted l_grid
+    REAL(wp)     :: var_reference   !< var at reference height
+
+#if defined( __nopointer )
+    REAL(wp), DIMENSION(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ::  var  !< temperature
+#else
+    REAL(wp), DIMENSION(:,:,:), POINTER ::  var     !< temperature
+#endif
+
+    dvar_dz = atmos_ocean_sign * ( var(k+1,j,i) - var(k-1,j,i) ) * dd2zu(k)
+    IF ( dvar_dz > 0.0_wp ) THEN
+       IF ( use_single_reference_value )  THEN
+          l_stable = 0.76_wp * SQRT( e(k,j,i) )                                &
+                             / SQRT( g / var_reference * dvar_dz ) + 1E-5_wp
+       ELSE
+          l_stable = 0.76_wp * SQRT( e(k,j,i) )                                &
+                             / SQRT( g / var(k,j,i) * dvar_dz ) + 1E-5_wp
+       ENDIF
+    ELSE
+       l_stable = l_grid(k)
+    ENDIF
+!
+!-- Adjustment of the mixing length
+    IF ( wall_adjustment )  THEN
+       l  = MIN( wall_adjustment_factor * l_wall(k,j,i), l_grid(k), l_stable )
+       ll = MIN( wall_adjustment_factor * l_wall(k,j,i), l_grid(k) )
+    ELSE
+       l  = MIN( l_grid(k), l_stable )
+       ll = l_grid(k)
+    ENDIF
+
+ END SUBROUTINE mixing_length_les
+
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Calculate mixing length for RANS mode.
+!------------------------------------------------------------------------------!
+ SUBROUTINE mixing_length_rans( i, j, k, l, l_diss, var, var_reference  )
+
+    USE arrays_3d,                                                             &
+        ONLY:  dd2zu
+
+    USE control_parameters,                                                    &
+        ONLY:  atmos_ocean_sign, g, use_single_reference_value
+
+    IMPLICIT NONE
+
+    INTEGER(iwp) :: i   !< loop index
+    INTEGER(iwp) :: j   !< loop index
+    INTEGER(iwp) :: k   !< loop index
+
+    REAL(wp)     :: duv2_dz2        !< squared vertical gradient of wind vector
+    REAL(wp)     :: dvar_dz         !< vertical gradient of var
+    REAL(wp)     :: l               !< mixing length
+    REAL(wp)     :: l_diss          !< mixing length for dissipation
+    REAL(wp)     :: rif             !< Richardson flux number
+    REAL(wp)     :: var_reference   !< var at reference height
+
+#if defined( __nopointer )
+    REAL(wp), DIMENSION(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ::  var  !< temperature
+#else
+    REAL(wp), DIMENSION(:,:,:), POINTER ::  var     !< temperature
+#endif
+
+    dvar_dz = atmos_ocean_sign * ( var(k+1,j,i) - var(k-1,j,i) ) * dd2zu(k)
+
+    duv2_dz2 =   ( ( u(k+1,j,i) - u(k-1,j,i) ) * dd2zu(k) )**2                 &
+               + ( ( v(k+1,j,i) - v(k-1,j,i) ) * dd2zu(k) )**2                 &
+               + 1E-30_wp
+
+    IF ( use_single_reference_value )  THEN
+       rif = g / var_reference * dvar_dz / duv2_dz2
+    ELSE
+       rif = g / var(k,j,i) * dvar_dz / duv2_dz2
+    ENDIF
+
+    rif = MAX( rif, -5.0_wp )
+    rif = MIN( rif,  1.0_wp )
+
+!
+!-- Calculate diabatic mixing length using Dyer-profile functions
+    IF ( rif >= 0.0_wp )  THEN
+       l      = l_black(k) / ( 1.0_wp + 5.0_wp * rif )
+       l_diss = l
+    ELSE
+!
+!--    In case of unstable stratification, use mixing length of neutral case
+!--    for l, but consider profile functions for l_diss
+       l      = l_black(k)
+       l_diss = l_black(k) * SQRT( 1.0_wp - 16.0_wp * rif )
+    ENDIF
+
+ END SUBROUTINE mixing_length_rans
+
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Computation of the turbulent diffusion coefficients for momentum and heat 
+!> according to Prandtl-Kolmogorov.
+!------------------------------------------------------------------------------!
+ SUBROUTINE tcm_diffusivities( var, var_reference )
+ 
+
+    USE control_parameters,                                                    &
+        ONLY:  e_min, outflow_l, outflow_n, outflow_r, outflow_s
+
+    USE statistics,                                                            &
+        ONLY :  rmask, sums_l_l
+
+    USE surface_mod,                                                           &
+        ONLY :  bc_h, surf_def_h
+
+    IMPLICIT NONE
+
+    INTEGER(iwp) ::  i                   !<
+    INTEGER(iwp) ::  j                   !<
+    INTEGER(iwp) ::  k                   !<
+    INTEGER(iwp) ::  m                   !<
+    INTEGER(iwp) ::  n                   !<
+    INTEGER(iwp) ::  omp_get_thread_num  !<
+    INTEGER(iwp) ::  sr                  !<
+    INTEGER(iwp) ::  tn                  !<
+
+    REAL(wp)     ::  flag                !<
+    REAL(wp)     ::  l                   !<
+    REAL(wp)     ::  ll                  !<
+    REAL(wp)     ::  var_reference       !<
+
+#if defined( __nopointer )
+    REAL(wp), DIMENSION(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ::  var  !< 
+#else
+    REAL(wp), DIMENSION(:,:,:), POINTER ::  var  !< 
+#endif
+
+!
+!-- Default thread number in case of one thread
+    tn = 0
+
+!
+!-- Initialization for calculation of the mixing length profile
+    sums_l_l = 0.0_wp
+
+!
+!-- Compute the turbulent diffusion coefficient for momentum
+    !$OMP PARALLEL PRIVATE (i,j,k,l,ll,sr,tn,flag)
+!$  tn = omp_get_thread_num()
+
+!
+!-- Introduce an optional minimum tke
+    IF ( e_min > 0.0_wp )  THEN
+       !$OMP DO
+       DO  i = nxlg, nxrg
+          DO  j = nysg, nyng
+             DO  k = nzb+1, nzt
+                e(k,j,i) = MAX( e(k,j,i), e_min ) *                            &
+                        MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_0(k,j,i), 0 ) )
+             ENDDO
+          ENDDO
+       ENDDO
+    ENDIF
+
+    IF ( les_mw )  THEN
+       !$OMP DO
+       DO  i = nxlg, nxrg
+          DO  j = nysg, nyng
+             DO  k = nzb+1, nzt
+
+                flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_0(k,j,i), 0 ) )
+
+!
+!--             Determine the mixing length for LES closure
+                CALL mixing_length_les( i, j, k, l, ll, var, var_reference )
+!
+!--             Compute diffusion coefficients for momentum and heat
+                km(k,j,i) = c_m * l * SQRT( e(k,j,i) ) * flag
+                kh(k,j,i) = ( 1.0_wp + 2.0_wp * l / ll ) * km(k,j,i) * flag
+!
+!--             Summation for averaged profile (cf. flow_statistics)
+                DO  sr = 0, statistic_regions
+                   sums_l_l(k,sr,tn) = sums_l_l(k,sr,tn) + l * rmask(j,i,sr)   &
+                                                             * flag
+                ENDDO
+
+             ENDDO
+          ENDDO
+       ENDDO
+
+    ELSEIF ( rans_tke_l )  THEN
+
+       !$OMP DO
+       DO  i = nxlg, nxrg
+          DO  j = nysg, nyng
+             DO  k = nzb+1, nzt
+
+                flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_0(k,j,i), 0 ) )
+!
+!--             Mixing length for RANS mode with TKE-l closure
+                CALL mixing_length_rans( i, j, k, l, ll, var, var_reference )
+!
+!--             Compute diffusion coefficients for momentum and heat
+                km(k,j,i) = c_m * l * SQRT( e(k,j,i) ) * flag
+                kh(k,j,i) = km(k,j,i) / prandtl_number * flag
+!
+!--             Summation for averaged profile (cf. flow_statistics)
+                DO  sr = 0, statistic_regions
+                   sums_l_l(k,sr,tn) = sums_l_l(k,sr,tn) + l * rmask(j,i,sr)   &
+                                                             * flag
+                ENDDO
+
+             ENDDO
+          ENDDO
+       ENDDO
+
+    ELSEIF ( rans_tke_e )  THEN
+
+       !$OMP DO
+       DO  i = nxlg, nxrg
+          DO  j = nysg, nyng
+             DO  k = nzb+1, nzt
+
+                flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_0(k,j,i), 0 ) )
+!
+!--             Compute diffusion coefficients for momentum and heat
+                km(k,j,i) = c_mu * e(k,j,i)**2 / ( diss(k,j,i) + 1.E-10 ) * flag
+                kh(k,j,i) = km(k,j,i) / prandtl_number * flag
+
+             ENDDO
+          ENDDO
+       ENDDO
+
+    ENDIF
+
+    sums_l_l(nzt+1,:,tn) = sums_l_l(nzt,:,tn)   ! quasi boundary-condition for
+                                                ! data output
+!$OMP END PARALLEL
+
+!
+!-- Set vertical boundary values (Neumann conditions both at upward- and 
+!-- downward facing walls. To set wall-boundary values, the surface data type 
+!-- is applied.
+!-- Horizontal boundary conditions at vertical walls are not set because
+!-- so far vertical surfaces require usage of a Prandtl-layer where the boundary
+!-- values of the diffusivities are not needed.
+
+    IF ( .NOT. rans_tke_e )  THEN
+!
+!--    Upward-facing
+       !$OMP PARALLEL DO PRIVATE( i, j, k )
+       DO  m = 1, bc_h(0)%ns
+          i = bc_h(0)%i(m)            
+          j = bc_h(0)%j(m)
+          k = bc_h(0)%k(m)
+          km(k-1,j,i) = km(k,j,i)
+          kh(k-1,j,i) = kh(k,j,i)
+       ENDDO
+!
+!--    Downward facing surfaces
+       !$OMP PARALLEL DO PRIVATE( i, j, k )
+       DO  m = 1, bc_h(1)%ns
+          i = bc_h(1)%i(m)            
+          j = bc_h(1)%j(m)
+          k = bc_h(1)%k(m)
+          km(k+1,j,i) = km(k,j,i)
+          kh(k+1,j,i) = kh(k,j,i)
+       ENDDO
+    ELSE
+!
+!--    Up- and downward facing surfaces
+       DO  n = 0, 1
+          DO  m = 1, surf_def_h(n)%ns
+             i = surf_def_h(n)%i(m)
+             j = surf_def_h(n)%j(m)
+             k = surf_def_h(n)%k(m)
+             km(k,j,i) = kappa * surf_def_h(n)%us(m) * dzu(k)
+             kh(k,j,i) = 1.35_wp * km(k,j,i)
+          ENDDO
+       ENDDO
+
+       CALL exchange_horiz( km, nbgp )
+       CALL exchange_horiz( kh, nbgp )
+
+    ENDIF
+!
+!-- Model top
+    !$OMP PARALLEL DO
+    DO  i = nxlg, nxrg
+       DO  j = nysg, nyng
+          km(nzt+1,j,i) = km(nzt,j,i)
+          kh(nzt+1,j,i) = kh(nzt,j,i)
+       ENDDO
+    ENDDO
+
+!
+!-- Set Neumann boundary conditions at the outflow boundaries in case of
+!-- non-cyclic lateral boundaries
+    IF ( outflow_l )  THEN
+       km(:,:,nxl-1) = km(:,:,nxl)
+       kh(:,:,nxl-1) = kh(:,:,nxl)
+    ENDIF
+    IF ( outflow_r )  THEN
+       km(:,:,nxr+1) = km(:,:,nxr)
+       kh(:,:,nxr+1) = kh(:,:,nxr)
+    ENDIF
+    IF ( outflow_s )  THEN
+       km(:,nys-1,:) = km(:,nys,:)
+       kh(:,nys-1,:) = kh(:,nys,:)
+    ENDIF
+    IF ( outflow_n )  THEN
+       km(:,nyn+1,:) = km(:,nyn,:)
+       kh(:,nyn+1,:) = kh(:,nyn,:)
+    ENDIF
+
+ END SUBROUTINE tcm_diffusivities
+
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Swapping of timelevels.
+!------------------------------------------------------------------------------!
+ SUBROUTINE tcm_swap_timelevel ( mod_count )
+
+    IMPLICIT NONE
+
+    INTEGER(iwp) ::  i      !< loop index x direction
+    INTEGER(iwp) ::  j      !< loop index y direction
+    INTEGER(iwp) ::  k      !< loop index z direction
+    INTEGER, INTENT(IN) ::  mod_count  !<
+
+#if defined( __nopointer )
+
+    IF ( .NOT. constant_diffusion )  THEN
+       DO  i = nxlg, nxrg
+          DO  j = nysg, nyng
+             DO  k = nzb, nzt+1
+                e(k,j,i) = e_p(k,j,i)
+             ENDDO
+          ENDDO
+       ENDDO
+    ENDIF
+
+    IF ( rans_tke_e )  THEN
+       DO  i = nxlg, nxrg
+          DO  j = nysg, nyng
+             DO  k = nzb, nzt+1
+                diss(k,j,i) = diss_p(k,j,i)
+             ENDDO
+          ENDDO
+       ENDDO
+    ENDIF
+
+#else
+    
+    SELECT CASE ( mod_count )
+
+       CASE ( 0 )
+
+          IF ( .NOT. constant_diffusion )  THEN
+             e => e_1;    e_p => e_2
+          ENDIF
+
+          IF ( rans_tke_e )  THEN
+             diss => diss_1;    diss_p => diss_2
+          ENDIF
+
+       CASE ( 1 )
+
+          IF ( .NOT. constant_diffusion )  THEN
+             e => e_2;    e_p => e_1
+          ENDIF
+
+          IF ( rans_tke_e )  THEN
+             diss => diss_2;    diss_p => diss_1
+          ENDIF
+
+    END SELECT
+#endif
+
+ END SUBROUTINE tcm_swap_timelevel
+
+
+ END MODULE turbulence_closure_mod
Index: palm/trunk/SOURCE/urban_surface_mod.f90
===================================================================
--- palm/trunk/SOURCE/urban_surface_mod.f90	(revision 2693)
+++ palm/trunk/SOURCE/urban_surface_mod.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file urban_surface_mod.f90
-!--------------------------------------------------------------------------------!
-! This file is part of PALM.
+!------------------------------------------------------------------------------!
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
@@ -26,4 +26,31 @@
 ! -----------------
 ! $Id$
+! - Bugfix in calculation of pt_surface and related fluxes. (BM)
+! - Do not write surface temperatures onto pt array as this might cause 
+!   problems with nesting. (MS)
+! - Revised calculation of pt1 (now done in surface_layer_fluxes).
+!   Bugfix, f_shf_window and f_shf_green were not set at vertical surface 
+!   elements. (MS)
+! - merged with branch ebsolver
+!   green building surfaces do not evaporate yet
+!   properties of green wall layers and window layers are taken from wall layers
+!   this input data is missing. (RvT)
+! - Merged with branch radiation (developed by Mohamed Salim)
+! - Revised initialization. (MS)
+! - Rename emiss_surf into emissivity, roughness_wall into z0, albedo_surf into 
+!   albedo. (MS)
+! - Move first call of usm_radiatin from usm_init to init_3d_model
+! - fixed problem with near surface temperature
+! - added near surface temperature t_surf_10cm_h(m), t_surf_10cm_v(l)%t(m)
+! - does not work with temp profile including stability, ol
+!   t_surf_10cm = pt1 now
+! - merged with 2357 bugfix, error message for nopointer version
+! - added indoor model coupling with wall heat flux
+! - added green substrate/ dry vegetation layer for buildings
+! - merged with 2232 new surface-type structure
+! - added transmissivity of window tiles
+! - added MOSAIK tile approach for 3 different surfaces (RvT)
+! 
+! 2583 2017-10-26 13:58:38Z knoop
 ! Date and time quantities are now read from date_and_time_mod. Solar constant is
 ! read from radiation_model_mod
@@ -142,4 +169,5 @@
 !>    1.2 Km/s, which seem to be not realistic.
 !>
+!> @todo Output of _av variables in case of restarts
 !> @todo Revise flux conversion in energy-balance solver
 !> @todo Bugfixing in nopointer branch 
@@ -148,4 +176,8 @@
 !> @todo Check for load imbalances in CPU measures, e.g. for exchange_horiz_prog
 !>       factor 3 between min and max time
+!> @todo Move setting of flag indoor_model to indoor_model_mod once available
+!> @todo Check divisions in wtend (etc.) calculations for possible division
+!>       by zero, e.g. in case fraq(0,m) + fraq(1,m) = 0?!
+!> @todo Use unit 90 for OPEN/CLOSE of input files (FK)
 !------------------------------------------------------------------------------!
  MODULE urban_surface_mod
@@ -170,15 +202,15 @@
                g, pt_surface, large_scale_forcing, lsf_surf, spinup,           &
                spinup_pt_mean, spinup_time, time_do3d, dt_do3d,                &
-               average_count_3d, varnamelength, urban_surface
+               average_count_3d, varnamelength, urban_surface, kappa
 
     USE cpulog,                                                                &
         ONLY:  cpu_log, log_point, log_point_s
-     
+
     USE date_and_time_mod,                                                     &
         ONLY:  d_seconds_year, day_of_year_init, time_utc_init
-   
+
     USE grid_variables,                                                        &
         ONLY:  dx, dy, ddx, ddy, ddx2, ddy2
-    
+
     USE indices,                                                               &
         ONLY:  nx, ny, nnx, nny, nnz, nxl, nxlg, nxr, nxrg, nyn, nyng, nys,    &
@@ -192,12 +224,23 @@
     
     USE plant_canopy_model_mod,                                                &
-        ONLY:  plant_canopy, pch_index,                                        &
-               pc_heating_rate, lad_s
+        ONLY:  pc_heating_rate, plant_canopy, usm_lad_rma
     
     USE radiation_model_mod,                                                   &
-        ONLY:  radiation, calc_zenith, zenith,                                 &
-               rad_net, rad_sw_in, rad_lw_in, rad_sw_out, rad_lw_out,          &
+        ONLY:  albedo_type, radiation, calc_zenith, zenith,                    &
+               rad_sw_in, rad_lw_in, rad_sw_out, rad_lw_out,                   &
                sigma_sb, solar_constant, sun_direction, sun_dir_lat,           &
-               sun_dir_lon, force_radiation_call
+               sun_dir_lon,                                                    &
+               force_radiation_call, surfinsw, surfinlw, surfinswdir,          &
+               surfinswdif, surfoutsw, surfoutlw, surfins,nsvfl, svf, svfsurf, &
+               surfinl, surfinlwdif, energy_balance_surf_h,                    &
+               energy_balance_surf_v, rad_sw_in_dir, rad_sw_in_diff,           &
+               rad_lw_in_diff, surfouts, surfoutl, surfoutsl, surfoutll, surf, &
+               surfl, nsurfl, nsurfs, surfstart, pcbinsw, pcbinlw, pcbl, npcbl, startenergy,      &
+               endenergy, nenergy, iup_u, inorth_u, isouth_u, ieast_u, iwest_u, iup_l,  &
+               inorth_l, isouth_l, ieast_l, iwest_l, startsky, endsky,id,      &
+               iz, iy, ix, idir, jdir, kdir, startborder, endborder, nsurf_type, nzub, nzut,   &
+               isky, inorth_b,idown_a, isouth_b, ieast_b, iwest_b, nzu, pch, nsurf,  &
+               iup_a, inorth_a, isouth_a, ieast_a, iwest_a, idsvf, ndsvf,      &
+               idcsf, ndcsf, kdcsf, pct, startland, endland, startwall, endwall
 
     USE statistics,                                                            &
@@ -206,111 +249,176 @@
     USE surface_mod
 
-               
 
     IMPLICIT NONE
 
+
 !-- configuration parameters (they can be setup in PALM config)
-    LOGICAL                                        ::  split_diffusion_radiation = .TRUE. !< split direct and diffusion dw radiation
-                                                                                          !< (.F. in case the radiation model already does it)    
-    LOGICAL                                        ::  usm_energy_balance_land = .TRUE.   !< flag parameter indicating wheather the energy balance is calculated for land and roofs
-    LOGICAL                                        ::  usm_energy_balance_wall = .TRUE.   !< flag parameter indicating wheather the energy balance is calculated for land and roofs
     LOGICAL                                        ::  usm_material_model = .TRUE.        !< flag parameter indicating wheather the  model of heat in materials is used
     LOGICAL                                        ::  usm_anthropogenic_heat = .FALSE.   !< flag parameter indicating wheather the anthropogenic heat sources (e.g.transportation) are used
     LOGICAL                                        ::  force_radiation_call_l = .FALSE.   !< flag parameter for unscheduled radiation model calls
-    LOGICAL                                        ::  mrt_factors = .FALSE.              !< whether to generate MRT factor files during init
-    LOGICAL                                        ::  write_svf_on_init = .FALSE.
-    LOGICAL                                        ::  read_svf_on_init = .FALSE.
-    LOGICAL                                        ::  usm_lad_rma = .TRUE.               !< use MPI RMA to access LAD for raytracing (instead of global array)
-    
-    INTEGER(iwp)                                   ::  nrefsteps = 0                      !< number of reflection steps to perform
-    
+    LOGICAL                                        ::  indoor_model = .FALSE.              !< whether to use the indoor model
+
+   
+    INTEGER(iwp)                                   ::  building_type = 1                  !< default building type (preleminary setting)
     INTEGER(iwp)                                   ::  land_category = 2                  !< default category for land surface
     INTEGER(iwp)                                   ::  wall_category = 2                  !< default category for wall surface over pedestrian zone
     INTEGER(iwp)                                   ::  pedestrant_category = 2            !< default category for wall surface in pedestrian zone
     INTEGER(iwp)                                   ::  roof_category = 2                  !< default category for root surface
-    REAL(wp)                                       ::  roof_height_limit = 4._wp          !< height for distinguish between land surfaces and roofs
-
-    REAL(wp), PARAMETER                            ::  ext_coef = 0.6_wp                  !< extinction coefficient (a.k.a. alpha)
-    REAL(wp)                                       ::  ra_horiz_coef = 5.0_wp             !< mysterious coefficient for correction of overestimation
+
+!
+!-- Indices of input attributes for (above) ground floor level 
+    INTEGER(iwp) ::  ind_alb_wall          = 38 !< index in input list for albedo_type of wall fraction
+    INTEGER(iwp) ::  ind_alb_green         = 39 !< index in input list for albedo_type of green fraction
+    INTEGER(iwp) ::  ind_alb_win           = 40 !< index in input list for albedo_type of window fraction
+    INTEGER(iwp) ::  ind_emis_wall_agfl    = 14 !< index in input list for wall emissivity, above ground floor level
+    INTEGER(iwp) ::  ind_emis_wall_gfl     = 32 !< index in input list for wall emissivity, ground floor level
+    INTEGER(iwp) ::  ind_emis_green_agfl   = 15 !< index in input list for green emissivity, above ground floor level
+    INTEGER(iwp) ::  ind_emis_green_gfl    = 33 !< index in input list for green emissivity, ground floor level
+    INTEGER(iwp) ::  ind_emis_win_agfl     = 16 !< index in input list for window emissivity, above ground floor level
+    INTEGER(iwp) ::  ind_emis_win_gfl      = 34 !< index in input list for window emissivity, ground floor level
+    INTEGER(iwp) ::  ind_green_frac_w_agfl = 2  !< index in input list for green fraction on wall, above ground floor level
+    INTEGER(iwp) ::  ind_green_frac_w_gfl  = 23 !< index in input list for green fraction on wall, ground floor level
+    INTEGER(iwp) ::  ind_green_frac_r_agfl = 3  !< index in input list for green fraction on roof, above ground floor level
+    INTEGER(iwp) ::  ind_green_frac_r_gfl  = 24 !< index in input list for green fraction on roof, ground floor level
+    INTEGER(iwp) ::  ind_hc1_agfl          =  6 !< index in input list for heat capacity at first wall layer, above ground floor level
+    INTEGER(iwp) ::  ind_hc1_gfl           = 26 !< index in input list for heat capacity at first wall layer, ground floor level
+    INTEGER(iwp) ::  ind_hc2_agfl          = 7  !< index in input list for heat capacity at second wall layer, above ground floor level
+    INTEGER(iwp) ::  ind_hc2_gfl           = 27 !< index in input list for heat capacity at second wall layer, ground floor level
+    INTEGER(iwp) ::  ind_hc3_agfl          = 8  !< index in input list for heat capacity at third wall layer, above ground floor level
+    INTEGER(iwp) ::  ind_hc3_gfl           = 28 !< index in input list for heat capacity at third wall layer, ground floor level
+    INTEGER(iwp) ::  ind_gflh              = 20 !< index in input list for ground floor level height
+    INTEGER(iwp) ::  ind_lai_r_agfl        = 4  !< index in input list for LAI on roof, above ground floor level
+    INTEGER(iwp) ::  ind_lai_r_gfl         = 4  !< index in input list for LAI on roof, ground floor level
+    INTEGER(iwp) ::  ind_lai_w_agfl        = 5  !< index in input list for LAI on wall, above ground floor level
+    INTEGER(iwp) ::  ind_lai_w_gfl         = 25 !< index in input list for LAI on wall, ground floor level
+    INTEGER(iwp) ::  ind_tc1_agfl          = 9  !< index in input list for thermal conductivity at first wall layer, above ground floor level
+    INTEGER(iwp) ::  ind_tc1_gfl           = 29 !< index in input list for thermal conductivity at first wall layer, ground floor level
+    INTEGER(iwp) ::  ind_tc2_agfl          = 10 !< index in input list for thermal conductivity at second wall layer, above ground floor level
+    INTEGER(iwp) ::  ind_tc2_gfl           = 30 !< index in input list for thermal conductivity at second wall layer, ground floor level
+    INTEGER(iwp) ::  ind_tc3_agfl          = 11 !< index in input list for thermal conductivity at third wall layer, above ground floor level
+    INTEGER(iwp) ::  ind_tc3_gfl           = 31 !< index in input list for thermal conductivity at third wall layer, ground floor level
+    INTEGER(iwp) ::  ind_thick_1           = 41 !< index for wall layer thickness - 1st layer
+    INTEGER(iwp) ::  ind_thick_2           = 42 !< index for wall layer thickness - 2nd layer
+    INTEGER(iwp) ::  ind_thick_3           = 43 !< index for wall layer thickness - 3rd layer
+    INTEGER(iwp) ::  ind_thick_4           = 44 !< index for wall layer thickness - 4th layer
+    INTEGER(iwp) ::  ind_trans_agfl        = 17 !< index in input list for window transmissivity, above ground floor level
+    INTEGER(iwp) ::  ind_trans_gfl         = 35 !< index in input list for window transmissivity, ground floor level
+    INTEGER(iwp) ::  ind_wall_frac_agfl    = 0  !< index in input list for wall fraction, above ground floor level
+    INTEGER(iwp) ::  ind_wall_frac_gfl     = 21 !< index in input list for wall fraction, ground floor level
+    INTEGER(iwp) ::  ind_win_frac_agfl     = 1  !< index in input list for window fraction, above ground floor level
+    INTEGER(iwp) ::  ind_win_frac_gfl      = 22 !< index in input list for window fraction, ground floor level
+    INTEGER(iwp) ::  ind_z0_agfl           = 18 !< index in input list for z0, above ground floor level
+    INTEGER(iwp) ::  ind_z0_gfl            = 36 !< index in input list for z0, ground floor level
+    INTEGER(iwp) ::  ind_z0qh_agfl         = 19 !< index in input list for z0h / z0q, above ground floor level
+    INTEGER(iwp) ::  ind_z0qh_gfl          = 37 !< index in input list for z0h / z0q, ground floor level
+
+
+    REAL(wp)  ::  roof_height_limit = 4._wp          !< height for distinguish between land surfaces and roofs
+    REAL(wp)  ::  ground_floor_level = 4.0_wp        !< default ground floor level
+    REAL(wp)  ::  ra_horiz_coef = 5.0_wp             !< mysterious coefficient for correction of overestimation
                                                                                           !< of r_a for horizontal surfaces -> TODO
-    
-!-- parameters of urban surface model
-    INTEGER(iwp), PARAMETER                        ::  usm_version_len = 10               !< length of identification string of usm version
-    CHARACTER(usm_version_len), PARAMETER          ::  usm_version = 'USM v. 1.0'         !< identification of version of binary svf and restart files
-    INTEGER(iwp), PARAMETER                        ::  svf_code_len = 15                  !< length of code for verification of the end of svf file
-    CHARACTER(svf_code_len), PARAMETER             ::  svf_code = '*** end svf ***'       !< code for verification of the end of svf file
-    INTEGER(iwp)                                   ::  nzu                                !< number of layers of urban surface (will be calculated)
-    INTEGER(iwp)                                   ::  nzub,nzut                          !< bottom and top layer of urban surface (will be calculated)
-    INTEGER(iwp), PARAMETER                        ::  nzut_free = 3                      !< number of free layers in urban surface layer above top of buildings 
-    INTEGER(iwp), PARAMETER                        ::  ndsvf = 2                          !< number of dimensions of real values in SVF
-    INTEGER(iwp), PARAMETER                        ::  idsvf = 2                          !< number of dimensions of integer values in SVF
-    INTEGER(iwp), PARAMETER                        ::  ndcsf = 2                          !< number of dimensions of real values in CSF
-    INTEGER(iwp), PARAMETER                        ::  idcsf = 2                          !< number of dimensions of integer values in CSF
-    INTEGER(iwp), PARAMETER                        ::  kdcsf = 4                          !< number of dimensions of integer values in CSF calculation array
-    INTEGER(iwp), PARAMETER                        ::  id = 1                             !< position of d-index in surfl and surf
-    INTEGER(iwp), PARAMETER                        ::  iz = 2                             !< position of k-index in surfl and surf
-    INTEGER(iwp), PARAMETER                        ::  iy = 3                             !< position of j-index in surfl and surf
-    INTEGER(iwp), PARAMETER                        ::  ix = 4                             !< position of i-index in surfl and surf
-    INTEGER(iwp), PARAMETER                        ::  iroof = 0                          !< 0 - index of ground or roof
-    INTEGER(iwp), PARAMETER                        ::  isouth = 1                         !< 1 - index of south facing wall
-    INTEGER(iwp), PARAMETER                        ::  inorth = 2                         !< 2 - index of north facing wall
-    INTEGER(iwp), PARAMETER                        ::  iwest  = 3                         !< 3 - index of west facing wall
-    INTEGER(iwp), PARAMETER                        ::  ieast  = 4                         !< 4 - index of east facing wall
-    INTEGER(iwp), PARAMETER                        ::  isky = 5                           !< 5 - index of top border of the urban surface layer ("urban sky")
-    INTEGER(iwp), PARAMETER                        ::  inorthb = 6                        !< 6 - index of free north border of the domain (south facing)
-    INTEGER(iwp), PARAMETER                        ::  isouthb = 7                        !< 7 - index of north south border of the domain (north facing)
-    INTEGER(iwp), PARAMETER                        ::  ieastb  = 8                        !< 8 - index of east border of the domain (west facing)
-    INTEGER(iwp), PARAMETER                        ::  iwestb  = 9                        !< 9 - index of wast border of the domain (east facing)
-    INTEGER(iwp), DIMENSION(0:9), PARAMETER        ::  idir = (/0,0,0,-1,1,0,0,0,-1,1/)   !< surface normal direction x indices
-    INTEGER(iwp), DIMENSION(0:9), PARAMETER        ::  jdir = (/0,-1,1,0,0,0,-1,1,0,0/)   !< surface normal direction y indices
-    INTEGER(iwp), DIMENSION(0:9), PARAMETER        ::  kdir = (/1,0,0,0,0,-1,0,0,0,0/)    !< surface normal direction z indices
-    REAL(wp), DIMENSION(1:4)                       ::  ddxy2                              !< 1/dx^2 or 1/dy^2 (in surface normal direction)
-    INTEGER(iwp), DIMENSION(1:4,6:9)               ::  ijdb                               !< start and end of the local domain border coordinates (set in code)
-    LOGICAL, DIMENSION(6:9)                        ::  isborder                           !< is PE on the border of the domain in four corresponding directions
-                                                                                          !< parameter but set in the code
-
-!-- indices and sizes of urban surface model
-    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE      ::  surfl            !< coordinates of i-th local surface in local grid - surfl[:,k] = [d, z, y, x]
-    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE      ::  surf             !< coordinates of i-th surface in grid - surf[:,k] = [d, z, y, x]
-    INTEGER(iwp)                                   ::  nsurfl           !< number of all surfaces in local processor
-    INTEGER(iwp), DIMENSION(:), ALLOCATABLE        ::  nsurfs           !< array of number of all surfaces in individual processors
-    INTEGER(iwp)                                   ::  startsky         !< start index of block of sky
-    INTEGER(iwp)                                   ::  endsky           !< end index of block of sky
-    INTEGER(iwp)                                   ::  nskys            !< number of sky surfaces in local processor
-    INTEGER(iwp)                                   ::  startland        !< start index of block of land and roof surfaces
-    INTEGER(iwp)                                   ::  endland          !< end index of block of land and roof surfaces
-    INTEGER(iwp)                                   ::  nlands           !< number of land and roof surfaces in local processor
-    INTEGER(iwp)                                   ::  startwall        !< start index of block of wall surfaces
-    INTEGER(iwp)                                   ::  endwall          !< end index of block of wall surfaces
-    INTEGER(iwp)                                   ::  nwalls           !< number of wall surfaces in local processor
-    INTEGER(iwp)                                   ::  startenergy      !< start index of block of real surfaces (land, walls and roofs)
-    INTEGER(iwp)                                   ::  endenergy        !< end index of block of real surfaces (land, walls and roofs)
-    INTEGER(iwp)                                   ::  nenergy          !< number of real surfaces in local processor
-    INTEGER(iwp)                                   ::  nsurf            !< global number of surfaces in index array of surfaces (nsurf = Î£proc nsurfs)
-    INTEGER(iwp), DIMENSION(:), ALLOCATABLE        ::  surfstart        !< starts of blocks of surfaces for individual processors in array surf
-                                                                        !< respective block for particular processor is surfstart[iproc]+1 : surfstart[iproc+1]
-    INTEGER(iwp)                                   ::  nsvfl            !< number of svf for local processor
-    INTEGER(iwp)                                   ::  ncsfl            !< no. of csf in local processor
-                                                                        !< needed only during calc_svf but must be here because it is
-                                                                        !< shared between subroutines usm_calc_svf and usm_raytrace
-
-!-- type for calculation of svf
-    TYPE t_svf
-        INTEGER(iwp)                               :: isurflt           !< 
-        INTEGER(iwp)                               :: isurfs            !< 
-        REAL(wp)                                   :: rsvf              !< 
-        REAL(wp)                                   :: rtransp           !< 
-    END TYPE
-
-!-- type for calculation of csf
-    TYPE t_csf
-        INTEGER(iwp)                               :: ip                !< 
-        INTEGER(iwp)                               :: itx               !< 
-        INTEGER(iwp)                               :: ity               !< 
-        INTEGER(iwp)                               :: itz               !< 
-        INTEGER(iwp)                               :: isurfs            !< 
-        REAL(wp)                                   :: rsvf              !< 
-        REAL(wp)                                   :: rtransp           !< 
-    END TYPE
+
+    CHARACTER(37), DIMENSION(0:6), PARAMETER :: building_type_name = (/     &
+                                   'user-defined                         ', & !  0 
+                                   'residential - 1950                   ', & !  1 
+                                   'residential 1951 - 2000              ', & !  2
+                                   'residential 2001 -                   ', & !  3
+                                   'office - 1950                        ', & !  4 
+                                   'office 1951 - 2000                   ', & !  5
+                                   'office 2001 -                        '  & !  6
+                                                                     /)
+!
+!-- building parameters, 4 different types
+!-- 0 - wall fraction, 1- window fraction, 2 - green fraction on wall, 3- green fraction 
+!-- at roof, 4 - lai of green fraction at roof,  5 - lai of green fraction at wall, 
+!-- 6 - heat capacity of wall layer 1, 7 - heat capacity of wall layer 2, 
+!-- 8 - heat capacity of wall layer 3, 9 - thermal conductivity of wall layer 1, 
+!-- 10 - thermal conductivity of wall layer 2, 11 - thermal conductivity of wall layer 3,  
+!-- 12 - indoor target summer temperature ( K ), 13 - indoor target winter temperature (K),
+!-- 14 - emissivity of wall fraction, 15 - emissivity of green fraction, 16 - emissivity of window fraction,
+!-- 17 - transmissivity of window fraction, 18 - z0, 19 - z0h/z0q, 20 - ground floor height, 
+!-- 21 - ground floor wall fraction, 22 - ground floor window fraction, 23 ground floor green fraction,
+!-- 24 - ground floor green fraction on roof, 25 - ground floor lai of green fraction, 
+!-- 26 - ground floor heat capacity of wall layer 1, 27 - ground floor heat capacity of wall layer 1,
+!-- 28 - ground floor heat capacity of wall layer 3, 29 - ground floor thermal conductivity of wall layer 1,
+!-- 30 - ground floor thermal conductivity of wall layer 2, 31 - ground floor thermal conductivity of wall layer 3,
+!-- 32 - ground floor emissivity of wall fraction, 33 - ground floor emissivity of green fraction,
+!-- 34 - ground floor emissivity of window fraction, 35 - ground floor transmissivity of window fraction, 
+!-- 36 - ground floor z0, 37 - ground floor z0h/z0q, 38 - albedo type wall fraction
+!-- 39 - albedo type green fraction, 40 - albedo type window fraction
+!-- 41 - wall layer thickness - 1st layer, 42 - wall layer thickness - 2nd layer,
+!-- 43 - wall layer thickness - 3rd layer, 44 - wall layer thickness - 4th layer,
+!-- 45 - heat capacity of the wall surface, 46 - heat conductivity
+!-- Please note, only preleminary dummy values so far!
+    REAL(wp), DIMENSION(0:46,1:6), PARAMETER :: building_pars = RESHAPE( (/    &
+        1.0_wp, 0.0_wp, 0.0_wp, 0.0_wp, 1.0_wp, 1.0_wp,                        & !parameter 0-5
+        1000000.0_wp, 1000000.0_wp, 1000000.0_wp, 0.3_wp, 0.3_wp, 0.3_wp,      & !parameter 6-11
+        296.15_wp, 293.15_wp, 0.9_wp, 0.9_wp, 0.01_wp, 0.99_wp,                & !parameter 12-17
+        0.01_wp, 0.001_wp, 4.0_wp,                                             & !parameter 18-20
+        1.0_wp, 0.0_wp, 0.0_wp, 0.0_wp, 3.0_wp,                                & !parameter 21-25
+        1000000.0_wp, 1000000.0_wp, 1000000.0_wp,                              & !parameter 26-28                     
+        0.3_wp, 0.3_wp, 0.3_wp,                                                & !parameter 29-31       
+        0.4_wp, 0.4_wp, 0.4_wp, 0.4_wp, 0.01_wp, 0.001_wp,                     & !parameter 32-37
+        24.0_wp, 24.0_wp, 24.0_wp,                                             & !parameter 38-40
+        0.0242_wp, 0.0969_wp, 0.346_wp, 1.0_wp,                                & !parameter 41-44
+        20000.0_wp, 10.0_wp,                                                   & !parameter 45-46 - end of type 1
+        1.0_wp, 0.0_wp, 0.0_wp, 0.0_wp, 1.0_wp, 1.0_wp,                        & !parameter 0-5
+        1000000.0_wp, 1000000.0_wp, 1000000.0_wp, 0.3_wp, 0.3_wp, 0.3_wp,      & !parameter 6-11
+        296.15_wp, 293.15_wp, 0.9_wp, 0.9_wp, 0.01_wp, 0.99_wp,                & !parameter 12-17
+        0.01_wp, 0.001_wp, 4.0_wp,                                             & !parameter 18-20
+        1.0_wp, 0.0_wp, 0.0_wp, 0.0_wp, 3.0_wp,                                & !parameter 21-25
+        1000000.0_wp, 1000000.0_wp, 1000000.0_wp,                              & !parameter 26-28                     
+        0.3_wp, 0.3_wp, 0.3_wp,                                                & !parameter 29-31       
+        0.4_wp, 0.4_wp, 0.4_wp, 0.4_wp, 0.01_wp, 0.001_wp,                     & !parameter 32-37
+        24.0_wp, 24.0_wp, 24.0_wp,                                             & !parameter 38-40
+        0.0242_wp, 0.0969_wp, 0.346_wp, 1.0_wp,                                & !parameter 41-44
+        20000.0_wp, 10.0_wp,                                                   & !parameter 45-46 - end of type 2
+        1.0_wp, 0.0_wp, 0.0_wp, 0.0_wp, 1.0_wp, 1.0_wp,                        & !parameter 0-5
+        1000000.0_wp, 1000000.0_wp, 1000000.0_wp, 0.3_wp, 0.3_wp, 0.3_wp,      & !parameter 6-11
+        296.15_wp, 293.15_wp, 0.9_wp, 0.9_wp, 0.01_wp, 0.99_wp,                & !parameter 12-17
+        0.01_wp, 0.001_wp, 4.0_wp,                                             & !parameter 18-20
+        1.0_wp, 0.0_wp, 0.0_wp, 0.0_wp, 3.0_wp,                                & !parameter 21-25
+        1000000.0_wp, 1000000.0_wp, 1000000.0_wp,                              & !parameter 26-28                     
+        0.3_wp, 0.3_wp, 0.3_wp,                                                & !parameter 29-31       
+        0.4_wp, 0.4_wp, 0.4_wp, 0.4_wp, 0.01_wp, 0.001_wp,                     & !parameter 32-37
+        24.0_wp, 24.0_wp, 24.0_wp,                                             & !parameter 38-40
+        0.0242_wp, 0.0969_wp, 0.346_wp, 1.0_wp,                                & !parameter 41-44
+        20000.0_wp, 10.0_wp,                                                   & !parameter 45-46 - end of type 3
+        1.0_wp, 0.0_wp, 0.0_wp, 0.0_wp, 1.0_wp, 1.0_wp,                        & !parameter 0-5
+        1000000.0_wp, 1000000.0_wp, 1000000.0_wp, 0.3_wp, 0.3_wp, 0.3_wp,      & !parameter 6-11
+        296.15_wp, 293.15_wp, 0.9_wp, 0.9_wp, 0.01_wp, 0.99_wp,                & !parameter 12-17
+        0.01_wp, 0.001_wp, 4.0_wp,                                             & !parameter 18-20
+        1.0_wp, 0.0_wp, 0.0_wp, 0.0_wp, 3.0_wp,                                & !parameter 21-25
+        1000000.0_wp, 1000000.0_wp, 1000000.0_wp,                              & !parameter 26-28                     
+        0.3_wp, 0.3_wp, 0.3_wp,                                                & !parameter 29-31       
+        0.4_wp, 0.4_wp, 0.4_wp, 0.4_wp, 0.01_wp, 0.001_wp,                     & !parameter 32-37
+        24.0_wp, 24.0_wp, 24.0_wp,                                             & !parameter 38-40
+        0.0242_wp, 0.0969_wp, 0.346_wp, 1.0_wp,                                & !parameter 41-44
+        20000.0_wp, 10.0_wp,                                                   & !parameter 45-46 - end of type 4
+        1.0_wp, 0.0_wp, 0.0_wp, 0.0_wp, 1.0_wp, 1.0_wp,                        & !parameter 0-5
+        1000000.0_wp, 1000000.0_wp, 1000000.0_wp, 0.3_wp, 0.3_wp, 0.3_wp,      & !parameter 6-11
+        296.15_wp, 293.15_wp, 0.9_wp, 0.9_wp, 0.01_wp, 0.99_wp,                & !parameter 12-17
+        0.01_wp, 0.001_wp, 4.0_wp,                                             & !parameter 18-20
+        1.0_wp, 0.0_wp, 0.0_wp, 0.0_wp, 3.0_wp,                                & !parameter 21-25
+        1000000.0_wp, 1000000.0_wp, 1000000.0_wp,                              & !parameter 26-28                     
+        0.3_wp, 0.3_wp, 0.3_wp,                                                & !parameter 29-31       
+        0.4_wp, 0.4_wp, 0.4_wp, 0.4_wp, 0.01_wp, 0.001_wp,                     & !parameter 32-37
+        24.0_wp, 24.0_wp, 24.0_wp,                                             & !parameter 38-40
+        0.0242_wp, 0.0969_wp, 0.346_wp, 1.0_wp,                                & !parameter 41-44
+        20000.0_wp, 10.0_wp,                                                   & !parameter 45-46 - end of type 5
+        1.0_wp, 0.0_wp, 0.0_wp, 0.0_wp, 1.0_wp, 1.0_wp,                        & !parameter 0-5
+        1000000.0_wp, 1000000.0_wp, 1000000.0_wp, 0.3_wp, 0.3_wp, 0.3_wp,      & !parameter 6-11
+        296.15_wp, 293.15_wp, 0.9_wp, 0.9_wp, 0.01_wp, 0.99_wp,                & !parameter 12-17
+        0.01_wp, 0.001_wp, 4.0_wp,                                             & !parameter 18-20
+        1.0_wp, 0.0_wp, 0.0_wp, 0.0_wp, 3.0_wp,                                & !parameter 21-25
+        1000000.0_wp, 1000000.0_wp, 1000000.0_wp,                              & !parameter 26-28                     
+        0.3_wp, 0.3_wp, 0.3_wp,                                                & !parameter 29-31       
+        0.4_wp, 0.4_wp, 0.4_wp, 0.4_wp, 0.01_wp, 0.001_wp,                     & !parameter 32-37
+        24.0_wp, 24.0_wp, 24.0_wp,                                             & !parameter 38-40
+        0.0242_wp, 0.0969_wp, 0.346_wp, 1.0_wp,                                & !parameter 41-44
+        20000.0_wp, 10.0_wp                                                    & !parameter 45-46 - end of type 6
+                                                                          /),  &
+                                                               (/47, 6/) )
+
 !
 !-- Type for surface temperatures at vertical walls. Is not necessary for horizontal walls. 
@@ -324,48 +432,7 @@
     END TYPE t_wall_vertical
 
-!-- arrays for calculation of svf and csf
-    TYPE(t_svf), DIMENSION(:), POINTER             ::  asvf             !< pointer to growing svc array
-    TYPE(t_csf), DIMENSION(:), POINTER             ::  acsf             !< pointer to growing csf array
-    TYPE(t_svf), DIMENSION(:), ALLOCATABLE, TARGET ::  asvf1, asvf2     !< realizations of svf array
-    TYPE(t_csf), DIMENSION(:), ALLOCATABLE, TARGET ::  acsf1, acsf2     !< realizations of csf array
-    INTEGER(iwp)                                   ::  nsvfla           !< dimmension of array allocated for storage of svf in local processor
-    INTEGER(iwp)                                   ::  ncsfla           !< dimmension of array allocated for storage of csf in local processor
-    INTEGER(iwp)                                   ::  msvf, mcsf       !< mod for swapping the growing array
-    INTEGER(iwp), PARAMETER                        ::  gasize = 10000   !< initial size of growing arrays
-!-- temporary arrays for calculation of csf in raytracing
-    INTEGER(iwp)                                   ::  maxboxesg        !< max number of boxes ray can cross in the domain
-    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE      ::  boxes            !< coordinates of gridboxes being crossed by ray
-    REAL(wp), DIMENSION(:), ALLOCATABLE            ::  crlens           !< array of crossing lengths of ray for particular grid boxes
-    INTEGER(iwp), DIMENSION(:), ALLOCATABLE        ::  lad_ip           !< array of numbers of process where lad is stored 
-#if defined( __parallel )
-    INTEGER(kind=MPI_ADDRESS_KIND), &
-                  DIMENSION(:), ALLOCATABLE        ::  lad_disp         !< array of displaycements of lad in local array of proc lad_ip
-#endif
-    REAL(wp), DIMENSION(:), ALLOCATABLE            ::  lad_s_ray        !< array of received lad_s for appropriate gridboxes crossed by ray 
-
-!-- arrays storing the values of USM
-    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE      ::  svfsurf          !< svfsurf[:,isvf] = index of source and target surface for svf[isvf]
-    REAL(wp), DIMENSION(:,:), ALLOCATABLE          ::  svf              !< array of shape view factors+direct irradiation factors for local surfaces
-    REAL(wp), DIMENSION(:), ALLOCATABLE            ::  surfins          !< array of sw radiation falling to local surface after i-th reflection
-    REAL(wp), DIMENSION(:), ALLOCATABLE            ::  surfinl          !< array of lw radiation for local surface after i-th reflection
-    
-                                                                        !< Inward radiation is also valid for virtual surfaces (radiation leaving domain)
-    REAL(wp), DIMENSION(:), ALLOCATABLE            ::  surfinsw         !< array of sw radiation falling to local surface including radiation from reflections
-    REAL(wp), DIMENSION(:), ALLOCATABLE            ::  surfinlw         !< array of lw radiation falling to local surface including radiation from reflections
-    REAL(wp), DIMENSION(:), ALLOCATABLE            ::  surfinswdir      !< array of direct sw radiation falling to local surface
-    REAL(wp), DIMENSION(:), ALLOCATABLE            ::  surfinswdif      !< array of diffuse sw radiation from sky and model boundary falling to local surface
-    REAL(wp), DIMENSION(:), ALLOCATABLE            ::  surfinlwdif      !< array of diffuse lw radiation from sky and model boundary falling to local surface
-    
-                                                                        !< Outward radiation is only valid for nonvirtual surfaces
-    REAL(wp), DIMENSION(:), ALLOCATABLE            ::  surfoutsl        !< array of reflected sw radiation for local surface in i-th reflection
-    REAL(wp), DIMENSION(:), ALLOCATABLE            ::  surfoutll        !< array of reflected + emitted lw radiation for local surface in i-th reflection
-    REAL(wp), DIMENSION(:), ALLOCATABLE            ::  surfouts         !< array of reflected sw radiation for all surfaces in i-th reflection
-    REAL(wp), DIMENSION(:), ALLOCATABLE            ::  surfoutl         !< array of reflected + emitted lw radiation for all surfaces in i-th reflection
-    REAL(wp), DIMENSION(:), ALLOCATABLE            ::  surfoutsw        !< array of total sw radiation outgoing from nonvirtual surfaces surfaces after all reflection
-    REAL(wp), DIMENSION(:), ALLOCATABLE            ::  surfoutlw        !< array of total lw radiation outgoing from nonvirtual surfaces surfaces after all reflection
-    REAL(wp), DIMENSION(:), ALLOCATABLE            ::  surfhf           !< array of total radiation flux incoming to minus outgoing from local surface
-    REAL(wp), DIMENSION(:), ALLOCATABLE            ::  rad_net_l        !< local copy of rad_net (net radiation at surface)
 
 !-- arrays for time averages
+!-- Attention: the variable rad_net_av is also used in the 3d field variable in radiation_model_mod.f90. It may be better to rename it 
     REAL(wp), DIMENSION(:), ALLOCATABLE            ::  rad_net_av       !< average of rad_net_l
     REAL(wp), DIMENSION(:), ALLOCATABLE            ::  surfinsw_av      !< average of sw radiation falling to local surface including radiation from reflections
@@ -381,25 +448,12 @@
     REAL(wp), DIMENSION(:), ALLOCATABLE            ::  surfinl_av       !< average of array of residua of lw radiation absorbed in surface after last reflection
     REAL(wp), DIMENSION(:), ALLOCATABLE            ::  surfhf_av        !< average of total radiation flux incoming to minus outgoing from local surface  
+    REAL(wp), DIMENSION(:), ALLOCATABLE            ::  wghf_eb_av       !< average of wghf_eb
+    REAL(wp), DIMENSION(:), ALLOCATABLE            ::  wshf_eb_av       !< average of wshf_eb
+    REAL(wp), DIMENSION(:,:), ALLOCATABLE          ::  t_wall_av        !< Average of t_wall
+    REAL(wp), DIMENSION(:), ALLOCATABLE            ::  wghf_eb_green_av !< average of wghf_eb_green
+    REAL(wp), DIMENSION(:,:), ALLOCATABLE          ::  t_green_av       !< Average of t_green
+    REAL(wp), DIMENSION(:), ALLOCATABLE            ::  wghf_eb_window_av !< average of wghf_eb_window
+    REAL(wp), DIMENSION(:,:), ALLOCATABLE          ::  t_window_av      !< Average of t_window    
     
-!-- block variables needed for calculation of the plant canopy model inside the urban surface model
-    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE      ::  csfsurf          !< csfsurf[:,icsf] = index of target surface and csf grid index for csf[icsf]
-    REAL(wp), DIMENSION(:,:), ALLOCATABLE          ::  csf              !< array of plant canopy sink fators + direct irradiation factors (transparency)
-                                                                        !< for local surfaces
-    INTEGER(wp), DIMENSION(:,:), ALLOCATABLE       ::  pcbl             !< k,j,i coordinates of l-th local plant canopy box pcbl[:,l] = [k, j, i]
-    INTEGER(iwp), DIMENSION(:,:,:), ALLOCATABLE    ::  gridpcbl         !< index of local pcb[k,j,i]
-    REAL(wp), DIMENSION(:), ALLOCATABLE            ::  pcbinsw          !< array of absorbed sw radiation for local plant canopy box
-    REAL(wp), DIMENSION(:), ALLOCATABLE            ::  pcbinlw          !< array of absorbed lw radiation for local plant canopy box
-    INTEGER(iwp)                                   ::  npcbl            !< number of the plant canopy gridboxes in local processor
-    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE      ::  pch              !< heights of the plant canopy
-    INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE      ::  pct              !< top layer of the plant canopy
-    REAL(wp), DIMENSION(:,:,:), POINTER            ::  usm_lad          !< subset of lad_s within urban surface, transformed to plain Z coordinate
-    REAL(wp), DIMENSION(:), POINTER                ::  usm_lad_g        !< usm_lad globalized (used to avoid MPI RMA calls in raytracing)
-    REAL(wp)                                       ::  prototype_lad    !< prototype leaf area density for computing effective optical depth
-    INTEGER(iwp), DIMENSION(:), ALLOCATABLE        ::  nzterr, plantt   !< temporary global arrays for raytracing
-    
-!-- radiation related arrays (it should be better in interface of radiation module of PALM
-    REAL(wp), DIMENSION(:,:), ALLOCATABLE          ::  rad_sw_in_dir    !< direct sw radiation
-    REAL(wp), DIMENSION(:,:), ALLOCATABLE          ::  rad_sw_in_diff   !< diffusion sw radiation
-    REAL(wp), DIMENSION(:,:), ALLOCATABLE          ::  rad_lw_in_diff   !< diffusion lw radiation
 
 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
@@ -419,8 +473,19 @@
     REAL(wp), DIMENSION(nzb_wall:nzt_wall)         :: zwn_default = (/0.0242_wp, 0.0969_wp, 0.346_wp, 1.0_wp /)
                                                                          !< normalized soil, wall and roof layer depths (m/m)
+!    REAL(wp), DIMENSION(nzb_wall:nzt_wall)         :: zwn_default = (/0.33_wp, 0.66_wp, 1.0_wp /)
+    REAL(wp), DIMENSION(nzb_wall:nzt_wall)         :: zwn_default_window = (/0.25_wp, 0.5_wp, 0.75_wp, 1.0_wp /)
+!    REAL(wp), DIMENSION(nzb_wall:nzt_wall)         :: zwn_default_window = (/0.33_wp, 0.66_wp, 1.0_wp /)
+!    REAL(wp), DIMENSION(nzb_wall:nzt_wall)         :: zwn_default_window = (/0.0242_wp, 0.0969_wp, 0.346_wp, 1.0_wp /)
+                                                                         !< normalized window layer depths (m/m)
+!    REAL(wp), DIMENSION(nzb_wall:nzt_wall)         :: zwn_default_green = (/0.0242_wp, 0.0969_wp, 0.346_wp, 1.0_wp /)
+                                                                         !< normalized green layer depths (m/m)
+    REAL(wp), DIMENSION(nzb_wall:nzt_wall)         :: zwn_default_green = (/0.25_wp, 0.5_wp, 0.75_wp, 1.0_wp /)
+!    REAL(wp), DIMENSION(nzb_wall:nzt_wall)         :: zwn_default_green = (/0.33_wp, 0.66_wp, 1.0_wp /)
+
                                                                         
     REAL(wp)                                       ::   wall_inner_temperature = 296.0_wp    !< temperature of the inner wall surface (~23 degrees C) (K)
     REAL(wp)                                       ::   roof_inner_temperature = 296.0_wp    !< temperature of the inner roof surface (~23 degrees C) (K)
     REAL(wp)                                       ::   soil_inner_temperature = 283.0_wp    !< temperature of the deep soil (~10 degrees C) (K)
+    REAL(wp)                                       ::   window_inner_temperature = 296.0_wp  !< temperature of the inner window surface (~23 degrees C) (K)
 
 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
@@ -428,28 +493,84 @@
 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     REAL(wp), DIMENSION(:), ALLOCATABLE            :: zwn                !< normalized wall layer depths (m)
+    REAL(wp), DIMENSION(:), ALLOCATABLE            :: zwn_window         !< normalized window layer depths (m)
+    REAL(wp), DIMENSION(:), ALLOCATABLE            :: zwn_green          !< normalized green layer depths (m)
 
 #if defined( __nopointer )
     REAL(wp), DIMENSION(:), ALLOCATABLE, TARGET    :: t_surf_h           !< wall surface temperature (K) at horizontal walls
     REAL(wp), DIMENSION(:), ALLOCATABLE, TARGET    :: t_surf_h_p         !< progn. wall surface temperature (K) at horizontal walls
-
+    REAL(wp), DIMENSION(:), ALLOCATABLE, TARGET    :: t_surf_window_h    !< window surface temperature (K) at horizontal walls
+    REAL(wp), DIMENSION(:), ALLOCATABLE, TARGET    :: t_surf_window_h_p  !< progn. window surface temperature (K) at horizontal walls
+    REAL(wp), DIMENSION(:), ALLOCATABLE, TARGET    :: t_surf_green_h     !< green surface temperature (K) at horizontal walls
+    REAL(wp), DIMENSION(:), ALLOCATABLE, TARGET    :: t_surf_green_h_p   !< progn. green surface temperature (K) at horizontal walls
+    REAL(wp), DIMENSION(:), ALLOCATABLE, TARGET    :: t_surf_whole_h     !< whole surface temperature (K) at horizontal walls
+    REAL(wp), DIMENSION(:), ALLOCATABLE, TARGET    :: t_surf_whole_h_p   !< progn. whole surface temperature (K) at horizontal walls
+    REAL(wp), DIMENSION(:), ALLOCATABLE, TARGET    :: t_surf_10cm_h      !< near surface temperature (10cm) (K) at horizontal walls
+    REAL(wp), DIMENSION(:), ALLOCATABLE, TARGET    :: t_surf_10cm_h_p    !< progn. near surface temperature (10cm) (K) at horizontal walls
     TYPE(t_surf_vertical), DIMENSION(0:3), TARGET  ::  t_surf_v
     TYPE(t_surf_vertical), DIMENSION(0:3), TARGET  ::  t_surf_v_p
+    TYPE(t_surf_vertical), DIMENSION(0:3), TARGET  ::  t_surf_window_v
+    TYPE(t_surf_vertical), DIMENSION(0:3), TARGET  ::  t_surf_window_v_p
+    TYPE(t_surf_vertical), DIMENSION(0:3), TARGET  ::  t_surf_green_v
+    TYPE(t_surf_vertical), DIMENSION(0:3), TARGET  ::  t_surf_green_v_p
+    TYPE(t_surf_vertical), DIMENSION(0:3), TARGET  ::  t_surf_whole_v
+    TYPE(t_surf_vertical), DIMENSION(0:3), TARGET  ::  t_surf_whole_v_p
+    TYPE(t_surf_vertical), DIMENSION(0:3), TARGET  ::  t_surf_10cm_v
+    TYPE(t_surf_vertical), DIMENSION(0:3), TARGET  ::  t_surf_10cm_v_p
 #else
     REAL(wp), DIMENSION(:), POINTER                :: t_surf_h
     REAL(wp), DIMENSION(:), POINTER                :: t_surf_h_p 
+    REAL(wp), DIMENSION(:), POINTER                :: t_surf_window_h
+    REAL(wp), DIMENSION(:), POINTER                :: t_surf_window_h_p 
+    REAL(wp), DIMENSION(:), POINTER                :: t_surf_green_h
+    REAL(wp), DIMENSION(:), POINTER                :: t_surf_green_h_p 
+    REAL(wp), DIMENSION(:), POINTER                :: t_surf_whole_h
+    REAL(wp), DIMENSION(:), POINTER                :: t_surf_whole_h_p 
+    REAL(wp), DIMENSION(:), POINTER                :: t_surf_10cm_h
+    REAL(wp), DIMENSION(:), POINTER                :: t_surf_10cm_h_p
 
     REAL(wp), DIMENSION(:), ALLOCATABLE, TARGET    :: t_surf_h_1
     REAL(wp), DIMENSION(:), ALLOCATABLE, TARGET    :: t_surf_h_2
+    REAL(wp), DIMENSION(:), ALLOCATABLE, TARGET    :: t_surf_window_h_1
+    REAL(wp), DIMENSION(:), ALLOCATABLE, TARGET    :: t_surf_window_h_2
+    REAL(wp), DIMENSION(:), ALLOCATABLE, TARGET    :: t_surf_green_h_1
+    REAL(wp), DIMENSION(:), ALLOCATABLE, TARGET    :: t_surf_green_h_2
+    REAL(wp), DIMENSION(:), ALLOCATABLE, TARGET    :: t_surf_whole_h_1
+    REAL(wp), DIMENSION(:), ALLOCATABLE, TARGET    :: t_surf_whole_h_2
+    REAL(wp), DIMENSION(:), ALLOCATABLE, TARGET    :: t_surf_10cm_h_1
+    REAL(wp), DIMENSION(:), ALLOCATABLE, TARGET    :: t_surf_10cm_h_2
 
     TYPE(t_surf_vertical), DIMENSION(:), POINTER ::  t_surf_v
     TYPE(t_surf_vertical), DIMENSION(:), POINTER ::  t_surf_v_p
+    TYPE(t_surf_vertical), DIMENSION(:), POINTER ::  t_surf_window_v
+    TYPE(t_surf_vertical), DIMENSION(:), POINTER ::  t_surf_window_v_p
+    TYPE(t_surf_vertical), DIMENSION(:), POINTER ::  t_surf_green_v
+    TYPE(t_surf_vertical), DIMENSION(:), POINTER ::  t_surf_green_v_p
+    TYPE(t_surf_vertical), DIMENSION(:), POINTER ::  t_surf_whole_v
+    TYPE(t_surf_vertical), DIMENSION(:), POINTER ::  t_surf_whole_v_p
+    TYPE(t_surf_vertical), DIMENSION(:), POINTER ::  t_surf_10cm_v
+    TYPE(t_surf_vertical), DIMENSION(:), POINTER ::  t_surf_10cm_v_p
 
     TYPE(t_surf_vertical), DIMENSION(0:3), TARGET  :: t_surf_v_1
     TYPE(t_surf_vertical), DIMENSION(0:3), TARGET  :: t_surf_v_2
+    TYPE(t_surf_vertical), DIMENSION(0:3), TARGET  :: t_surf_window_v_1
+    TYPE(t_surf_vertical), DIMENSION(0:3), TARGET  :: t_surf_window_v_2
+    TYPE(t_surf_vertical), DIMENSION(0:3), TARGET  :: t_surf_green_v_1
+    TYPE(t_surf_vertical), DIMENSION(0:3), TARGET  :: t_surf_green_v_2
+    TYPE(t_surf_vertical), DIMENSION(0:3), TARGET  :: t_surf_whole_v_1
+    TYPE(t_surf_vertical), DIMENSION(0:3), TARGET  :: t_surf_whole_v_2
+    TYPE(t_surf_vertical), DIMENSION(0:3), TARGET  :: t_surf_10cm_v_1
+    TYPE(t_surf_vertical), DIMENSION(0:3), TARGET  :: t_surf_10cm_v_2
+    
 #endif
     REAL(wp), DIMENSION(:), ALLOCATABLE, TARGET    :: t_surf_av          !< average of wall surface temperature (K)
+    REAL(wp), DIMENSION(:), ALLOCATABLE, TARGET    :: t_surf_window_av   !< average of window surface temperature (K)
+    REAL(wp), DIMENSION(:), ALLOCATABLE, TARGET    :: t_surf_green_av    !< average of green wall surface temperature (K)
+    REAL(wp), DIMENSION(:), ALLOCATABLE, TARGET    :: t_surf_whole_av    !< average of whole wall surface temperature (K)
+    REAL(wp), DIMENSION(:), ALLOCATABLE, TARGET    :: t_surf_10cm_av    !< average of whole wall surface temperature (K)
 
 !-- Temporal tendencies for time stepping            
-    REAL(wp), DIMENSION(:), ALLOCATABLE            :: tt_surface_m       !< surface temperature tendency (K)
+    REAL(wp), DIMENSION(:), ALLOCATABLE            :: tt_surface_m       !< surface temperature tendency of wall (K)
+    REAL(wp), DIMENSION(:), ALLOCATABLE            :: tt_surface_window_m !< surface temperature tendency of window (K)
+    REAL(wp), DIMENSION(:), ALLOCATABLE            :: tt_surface_green_m !< surface temperature tendency of green wall (K)
 
 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
@@ -457,7 +578,4 @@
 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 !-- parameters of the land, roof and wall surfaces
-    REAL(wp), DIMENSION(:), ALLOCATABLE            :: albedo_surf        !< albedo of the surface
-!-- parameters of the wall surfaces
-    REAL(wp), DIMENSION(:), ALLOCATABLE            :: emiss_surf         !< emissivity of the wall surface
 
 #if defined( __nopointer )
@@ -465,18 +583,40 @@
     REAL(wp), DIMENSION(:,:), ALLOCATABLE, TARGET    :: t_wall_h_av          !< Average of t_wall
     REAL(wp), DIMENSION(:,:), ALLOCATABLE, TARGET    :: t_wall_h_p           !< Prog. wall temperature (K)
+    REAL(wp), DIMENSION(:,:), ALLOCATABLE, TARGET    :: t_window_h           !< Window temperature (K)
+    REAL(wp), DIMENSION(:,:), ALLOCATABLE, TARGET    :: t_window_h_av        !< Average of t_window
+    REAL(wp), DIMENSION(:,:), ALLOCATABLE, TARGET    :: t_window_h_p         !< Prog. window temperature (K)
+    REAL(wp), DIMENSION(:,:), ALLOCATABLE, TARGET    :: t_green_h            !< Green temperature (K)
+    REAL(wp), DIMENSION(:,:), ALLOCATABLE, TARGET    :: t_green_h_av         !< Average of t_green
+    REAL(wp), DIMENSION(:,:), ALLOCATABLE, TARGET    :: t_green_h_p          !< Prog. green temperature (K)
 
     TYPE(t_wall_vertical), DIMENSION(0:3), TARGET  :: t_wall_v             !< Wall temperature (K)
     TYPE(t_wall_vertical), DIMENSION(0:3), TARGET  :: t_wall_v_av          !< Average of t_wall
     TYPE(t_wall_vertical), DIMENSION(0:3), TARGET  :: t_wall_v_p           !< Prog. wall temperature (K)
+    TYPE(t_wall_vertical), DIMENSION(0:3), TARGET  :: t_window_v           !< Window temperature (K)
+    TYPE(t_wall_vertical), DIMENSION(0:3), TARGET  :: t_window_v_av        !< Average of t_window
+    TYPE(t_wall_vertical), DIMENSION(0:3), TARGET  :: t_window_v_p         !< Prog. window temperature (K)
+    TYPE(t_wall_vertical), DIMENSION(0:3), TARGET  :: t_green_v            !< Green temperature (K)
+    TYPE(t_wall_vertical), DIMENSION(0:3), TARGET  :: t_green_v_av         !< Average of t_green
+    TYPE(t_wall_vertical), DIMENSION(0:3), TARGET  :: t_green_v_p          !< Prog. green temperature (K)
 #else
     REAL(wp), DIMENSION(:,:), POINTER                :: t_wall_h, t_wall_h_p
     REAL(wp), DIMENSION(:,:), ALLOCATABLE, TARGET    :: t_wall_h_av, t_wall_h_1, t_wall_h_2
+    REAL(wp), DIMENSION(:,:), POINTER                :: t_window_h, t_window_h_p
+    REAL(wp), DIMENSION(:,:), ALLOCATABLE, TARGET    :: t_window_h_av, t_window_h_1, t_window_h_2
+    REAL(wp), DIMENSION(:,:), POINTER                :: t_green_h, t_green_h_p
+    REAL(wp), DIMENSION(:,:), ALLOCATABLE, TARGET    :: t_green_h_av, t_green_h_1, t_green_h_2
 
     TYPE(t_wall_vertical), DIMENSION(:), POINTER   :: t_wall_v, t_wall_v_p
     TYPE(t_wall_vertical), DIMENSION(0:3), TARGET  :: t_wall_v_av, t_wall_v_1, t_wall_v_2
+    TYPE(t_wall_vertical), DIMENSION(:), POINTER   :: t_window_v, t_window_v_p
+    TYPE(t_wall_vertical), DIMENSION(0:3), TARGET  :: t_window_v_av, t_window_v_1, t_window_v_2
+    TYPE(t_wall_vertical), DIMENSION(:), POINTER   :: t_green_v, t_green_v_p
+    TYPE(t_wall_vertical), DIMENSION(0:3), TARGET  :: t_green_v_av, t_green_v_1, t_green_v_2
 #endif
 
 !-- Wall temporal tendencies for time stepping
     REAL(wp), DIMENSION(:,:), ALLOCATABLE          :: tt_wall_m          !< t_wall prognostic array 
+    REAL(wp), DIMENSION(:,:), ALLOCATABLE          :: tt_window_m        !< t_window prognostic array 
+    REAL(wp), DIMENSION(:,:), ALLOCATABLE          :: tt_green_m         !< t_green prognostic array 
 
 !-- Surface and material parameters classes (surface_type)
@@ -495,8 +635,11 @@
     INTEGER(iwp), DIMENSION(:), ALLOCATABLE        :: surface_type_codes   !< codes of wall types
     REAL(wp), DIMENSION(:,:), ALLOCATABLE          :: surface_params       !< parameters of wall types
-    
-    CHARACTER(len=*), PARAMETER                    :: svf_file_name='usm_svf'
+
     
 !-- interfaces of subroutines accessed from outside of this module
+    INTERFACE usm_boundary_condition
+       MODULE PROCEDURE usm_boundary_condition
+    END INTERFACE usm_boundary_condition
+
     INTERFACE usm_check_data_output
        MODULE PROCEDURE usm_check_data_output
@@ -523,12 +666,16 @@
     END INTERFACE usm_material_heat_model
     
+    INTERFACE usm_green_heat_model
+       MODULE PROCEDURE usm_green_heat_model
+    END INTERFACE usm_green_heat_model
+    
     INTERFACE usm_parin
        MODULE PROCEDURE usm_parin
     END INTERFACE usm_parin
-
-    INTERFACE usm_radiation
-       MODULE PROCEDURE usm_radiation
-    END INTERFACE usm_radiation
     
+    INTERFACE usm_temperature_near_surface
+       MODULE PROCEDURE usm_temperature_near_surface
+    END INTERFACE usm_temperature_near_surface
+
     INTERFACE usm_read_restart_data 
        MODULE PROCEDURE usm_read_restart_data
@@ -546,4 +693,13 @@
        MODULE PROCEDURE usm_write_restart_data
     END INTERFACE usm_write_restart_data
+
+    INTERFACE usm_allocate_surface
+       MODULE PROCEDURE usm_allocate_surface
+    END INTERFACE usm_allocate_surface
+
+    INTERFACE usm_average_3d_data
+       MODULE PROCEDURE usm_average_3d_data
+    END INTERFACE usm_average_3d_data
+
     
     SAVE
@@ -551,22 +707,20 @@
     PRIVATE 
     
+!-- Public functions
+    PUBLIC usm_boundary_condition, usm_check_parameters, usm_init_urban_surface,&
+           usm_read_restart_data,                                               & 
+           usm_surface_energy_balance, usm_material_heat_model,                 &
+           usm_swap_timelevel, usm_check_data_output, usm_average_3d_data,      &
+           usm_data_output_3d, usm_define_netcdf_grid, usm_parin,               &
+           usm_write_restart_data, usm_allocate_surface
+
 !-- Public parameters, constants and initial values
-    PUBLIC split_diffusion_radiation,                                          &
-           usm_anthropogenic_heat, usm_material_model, mrt_factors,            &
-           usm_check_parameters,                                               &
-           usm_energy_balance_land, usm_energy_balance_wall, nrefsteps,        &
-           usm_init_urban_surface, usm_radiation, usm_read_restart_data,       &
-           usm_surface_energy_balance, usm_material_heat_model,                &
-           usm_swap_timelevel, usm_check_data_output, usm_average_3d_data,     &
-           usm_data_output_3d, usm_define_netcdf_grid, usm_parin,              &
-           usm_write_restart_data,                                             &
-           nzub, nzut, ra_horiz_coef, usm_lad_rma,                             &
-           land_category, pedestrant_category, wall_category, roof_category,   &
-           write_svf_on_init, read_svf_on_init
+    PUBLIC usm_anthropogenic_heat, usm_material_model, ra_horiz_coef,           &
+           usm_green_heat_model, usm_temperature_near_surface
+
 
 
  CONTAINS
 
- 
 !------------------------------------------------------------------------------!
 ! Description:
@@ -575,318 +729,9 @@
 !> and plant canopy and it allocates the needed arrays for USM
 !------------------------------------------------------------------------------!
-    SUBROUTINE usm_allocate_urban_surface
+    SUBROUTINE usm_allocate_surface
     
         IMPLICIT NONE
        
-        INTEGER(iwp) :: i, j, k, d, l, ir, jr, ids, m
-        INTEGER(iwp) :: k_topo     !< vertical index indicating topography top for given (j,i)
-        INTEGER(iwp) :: k_topo2    !< vertical index indicating topography top for given (j,i)
-        INTEGER(iwp) :: nzubl, nzutl, isurf, ipcgb
-        INTEGER(iwp) :: procid
-
-        
-
-        
-!--     auxiliary vars
-        ddxy2 = (/ddy2,ddy2,ddx2,ddx2/)      !< 1/dx^2 or 1/dy^2 (in surface normal direction)
-        
-        CALL location_message( '', .TRUE. )
-        CALL location_message( '    allocation of needed arrays', .TRUE. )
-!
-!--     Find nzub, nzut, nzu via wall_flag_0 array (nzb_s_inner will be 
-!--     removed later). The following contruct finds the lowest / largest index
-!--     for any upward-facing wall (see bit 12). 
-        nzubl = MINVAL(                                                        &
-                    MAXLOC(                                                    &
-                          MERGE( 1, 0,                                         &
-                                 BTEST( wall_flags_0(:,nys:nyn,nxl:nxr), 12 )  &
-                               ), DIM = 1                                      &
-                          ) - 1                                                & 
-                            )
-        nzutl = MAXVAL(                                                        &
-                   MAXLOC(                                                     &
-                          MERGE( 1, 0,                                         &
-                                 BTEST( wall_flags_0(:,nys:nyn,nxl:nxr), 12 )  &
-                               ), DIM = 1                                      &
-                          ) - 1                                                &
-                            )
-        nzubl = max(nzubl,nzb)
-
-        
-        IF ( plant_canopy )  THEN
-!--         allocate needed arrays
-            ALLOCATE( pct(nys:nyn,nxl:nxr) )
-            ALLOCATE( pch(nys:nyn,nxl:nxr) )
-
-!--         calculate plant canopy height
-            npcbl = 0
-            pct = 0.0_wp
-            pch = 0.0_wp
-            DO i = nxl, nxr
-                DO j = nys, nyn
-!
-!--                 Find topography top index
-                    k_topo = get_topography_top_index( j, i, 's' )
-
-                    DO k = nzt+1, 0, -1
-                        IF ( lad_s(k,j,i) /= 0.0_wp )  THEN
-!--                         we are at the top of the pcs
-                            pct(j,i) = k + k_topo
-                            pch(j,i) = k
-                            npcbl = npcbl + pch(j,i)
-                            EXIT
-                        ENDIF
-                    ENDDO
-                ENDDO
-            ENDDO
-            
-            nzutl = max(nzutl, maxval(pct))
-!--         code of plant canopy model uses parameter pch_index
-!--         we need to setup it here to right value
-!--         (pch_index, lad_s and other arrays in PCM are defined flat)
-            pch_index = maxval(pch)
-
-            prototype_lad = maxval(lad_s) * .9_wp  !< better be *1.0 if lad is either 0 or maxval(lad) everywhere
-            IF ( prototype_lad <= 0._wp ) prototype_lad = .3_wp
-            !WRITE(message_string, '(a,f6.3)') 'Precomputing effective box optical ' &
-            !    // 'depth using prototype leaf area density = ', prototype_lad
-            !CALL message('usm_init_urban_surface', 'PA0520', 0, 0, -1, 6, 0)
-        ENDIF
-        
-        nzutl = min(nzutl+nzut_free, nzt)
-                  
-#if defined( __parallel )
-        CALL MPI_AllReduce(nzubl,nzub,1,MPI_INTEGER,MPI_MIN,comm2d,ierr);
-        CALL MPI_AllReduce(nzutl,nzut,1,MPI_INTEGER,MPI_MAX,comm2d,ierr);
-#else
-        nzub = nzubl
-        nzut = nzutl
-#endif
-
-!--     global number of urban layers
-        nzu = nzut - nzub + 1
-        
-!--     allocate urban surfaces grid
-!--     calc number of surfaces in local proc
-        CALL location_message( '    calculation of indices for surfaces', .TRUE. )
-        nsurfl = 0
-!
-!--     Number of land- and roof surfaces. Note, since horizontal surface elements
-!--     are already counted in surface_mod, in case be simply reused here.
-        startland = 1
-        nsurfl    = surf_usm_h%ns
-        endland   = nsurfl
-        nlands    = endland-startland+1
-
-!
-!--     Number of vertical surfaces. As vertical surfaces are already 
-!--     counted in surface mod, it can be reused here. 
-        startwall = nsurfl+1
-        nsurfl = nsurfl + surf_usm_v(0)%ns + surf_usm_v(1)%ns +        &
-                          surf_usm_v(2)%ns + surf_usm_v(3)%ns 
-        endwall = nsurfl
-        nwalls = endwall-startwall+1
-
-        
-!--     range of energy balance surfaces  ! will be treated separately by surf_usm_h and surf_usm_v
-        nenergy = 0
-        IF ( usm_energy_balance_land )  THEN
-            startenergy = startland
-            nenergy = nenergy + nlands
-        ELSE
-            startenergy = startwall
-        ENDIF
-        IF ( usm_energy_balance_wall )  THEN
-            endenergy = endwall
-            nenergy = nenergy + nwalls
-        ELSE
-            endenergy = endland
-        ENDIF
-
-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-!--     block of virtual surfaces
-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-!--     calculate sky surfaces  ! not used so far!
-        startsky = nsurfl+1
-        nsurfl = nsurfl+(nxr-nxl+1)*(nyn-nys+1)
-        endsky = nsurfl
-        nskys = endsky-startsky+1
-        
-!--     border flags
-#if defined( __parallel )
-        isborder = (/ north_border_pe, south_border_pe, right_border_pe, left_border_pe /)
-#else
-        isborder = (/.TRUE.,.TRUE.,.TRUE.,.TRUE./)
-#endif
-!--     fill array of the limits of the local domain borders
-        ijdb = RESHAPE( (/ nxl,nxr,nyn,nyn,nxl,nxr,nys,nys,nxr,nxr,nys,nyn,nxl,nxl,nys,nyn /), (/4, 4/) )
-!--     calulation of the free borders of the domain
-        DO  ids = 6,9
-           IF ( isborder(ids) )  THEN
-!--           free border of the domain in direction ids
-              DO  i = ijdb(1,ids), ijdb(2,ids)
-                 DO  j = ijdb(3,ids), ijdb(4,ids)
-
-                    k_topo  = get_topography_top_index( j, i, 's' )
-                    k_topo2 = get_topography_top_index( j-jdir(ids), i-idir(ids), 's' )
-
-                    k = nzut - MAX( k_topo, k_topo2 )
-                    nsurfl = nsurfl + k
-                 ENDDO
-              ENDDO
-           ENDIF
-        ENDDO
-        
-!--     fill gridpcbl and pcbl
-        IF ( plant_canopy )  THEN
-            ALLOCATE( pcbl(iz:ix, 1:npcbl) )
-            ALLOCATE( gridpcbl(nzub:nzut,nys:nyn,nxl:nxr) )
-            gridpcbl(:,:,:) = 0
-            ipcgb = 0
-            DO i = nxl, nxr
-                DO j = nys, nyn
-!
-!--                 Find topography top index
-                    k_topo = get_topography_top_index( j, i, 's' )
-
-                    DO k = k_topo + 1, pct(j,i)
-                        ipcgb = ipcgb + 1
-                        gridpcbl(k,j,i) = ipcgb
-                        pcbl(:,ipcgb) = (/ k, j, i /)
-                    ENDDO
-                ENDDO
-            ENDDO
-
-            ALLOCATE( pcbinsw( 1:npcbl ) )
-            ALLOCATE( pcbinlw( 1:npcbl ) )
-        ENDIF
-
-!--     fill surfl
-        ALLOCATE(surfl(5,nsurfl))
-        isurf = 0
-        
-!--     add land surfaces or roofs
-        DO i = nxl, nxr
-            DO j = nys, nyn
-               DO  m = surf_usm_h%start_index(j,i), surf_usm_h%end_index(j,i)
-                  k = surf_usm_h%k(m)
-
-                  isurf = isurf + 1
-                  surfl(:,isurf) = (/iroof,k,j,i,m/)
-               ENDDO
-            ENDDO
-        ENDDO
-
-!--     add walls
-        DO i = nxl, nxr
-            DO j = nys, nyn
-               l = 0
-               DO  m = surf_usm_v(l)%start_index(j,i), surf_usm_v(l)%end_index(j,i)
-                  k = surf_usm_v(l)%k(m)
-
-                  isurf          = isurf + 1
-                  surfl(:,isurf) = (/2,k,j,i,m/)
-               ENDDO
-               l = 1
-               DO  m = surf_usm_v(l)%start_index(j,i), surf_usm_v(l)%end_index(j,i)
-                  k = surf_usm_v(l)%k(m)
-
-                  isurf          = isurf + 1
-                  surfl(:,isurf) = (/1,k,j,i,m/)
-               ENDDO
-               l = 2
-               DO  m = surf_usm_v(l)%start_index(j,i), surf_usm_v(l)%end_index(j,i)
-                  k = surf_usm_v(l)%k(m)
-
-                  isurf          = isurf + 1
-                  surfl(:,isurf) = (/4,k,j,i,m/)
-               ENDDO
-               l = 3
-               DO  m = surf_usm_v(l)%start_index(j,i), surf_usm_v(l)%end_index(j,i)
-                  k = surf_usm_v(l)%k(m)
-
-                  isurf          = isurf + 1
-                  surfl(:,isurf) = (/3,k,j,i,m/)
-               ENDDO
-            ENDDO
-        ENDDO
-
-!--     add sky
-        DO i = nxl, nxr
-            DO j = nys, nyn
-                isurf = isurf + 1
-                k = nzut
-                surfl(:,isurf) = (/isky,k,j,i,-1/)
-            ENDDO
-        ENDDO
-        
-!--     calulation of the free borders of the domain
-        DO ids = 6,9
-            IF ( isborder(ids) )  THEN
-!--             free border of the domain in direction ids
-                DO i = ijdb(1,ids), ijdb(2,ids)
-                    DO j = ijdb(3,ids), ijdb(4,ids)
-                        k_topo  = get_topography_top_index( j, i, 's' )
-                        k_topo2 = get_topography_top_index( j-jdir(ids), i-idir(ids), 's' )
-
-                        DO k = MAX(k_topo,k_topo2)+1, nzut
-                            isurf = isurf + 1
-                            surfl(:,isurf) = (/ids,k,j,i,-1/)
-                        ENDDO
-                    ENDDO
-                ENDDO
-            ENDIF
-        ENDDO
-        
-!--     global array surf of indices of surfaces and displacement index array surfstart
-        ALLOCATE(nsurfs(0:numprocs-1))
-        
-#if defined( __parallel )
-        CALL MPI_Allgather(nsurfl,1,MPI_INTEGER,nsurfs,1,MPI_INTEGER,comm2d,ierr)
-#else
-        nsurfs(0) = nsurfl
-#endif
-        ALLOCATE(surfstart(0:numprocs))
-        k = 0
-        DO i=0,numprocs-1
-            surfstart(i) = k
-            k = k+nsurfs(i)
-        ENDDO
-        surfstart(numprocs) = k
-        nsurf = k
-        ALLOCATE(surf(5,nsurf))
-        
-#if defined( __parallel )
-        CALL MPI_AllGatherv(surfl, nsurfl*5, MPI_INTEGER, surf, nsurfs*5, surfstart*5, MPI_INTEGER, comm2d, ierr)
-#else
-        surf = surfl
-#endif
-        
-!--
-!--     allocation of the arrays for direct and diffusion radiation
-        CALL location_message( '    allocation of radiation arrays', .TRUE. )
-!--     rad_sw_in, rad_lw_in are computed in radiation model,
-!--     splitting of direct and diffusion part is done
-!--     in usm_calc_diffusion_radiation for now
-        ALLOCATE( rad_sw_in_dir(nysg:nyng,nxlg:nxrg) )
-        ALLOCATE( rad_sw_in_diff(nysg:nyng,nxlg:nxrg) )
-        ALLOCATE( rad_lw_in_diff(nysg:nyng,nxlg:nxrg) )
-        
-!--     allocate radiation arrays
-        ALLOCATE( surfins(nsurfl) )
-        ALLOCATE( surfinl(nsurfl) )
-        ALLOCATE( surfinsw(nsurfl) )
-        ALLOCATE( surfinlw(nsurfl) )
-        ALLOCATE( surfinswdir(nsurfl) )
-        ALLOCATE( surfinswdif(nsurfl) )
-        ALLOCATE( surfinlwdif(nsurfl) )
-        ALLOCATE( surfoutsl(startenergy:endenergy) )
-        ALLOCATE( surfoutll(startenergy:endenergy) )
-        ALLOCATE( surfoutsw(startenergy:endenergy) )
-        ALLOCATE( surfoutlw(startenergy:endenergy) )
-        ALLOCATE( surfouts(nsurf) ) !TODO: global surfaces without virtual
-        ALLOCATE( surfoutl(nsurf) ) !TODO: global surfaces without virtual
-
-
+        INTEGER(iwp) ::  l
 
 !
@@ -896,18 +741,8 @@
         ALLOCATE( surf_usm_h%rad_net_l(1:surf_usm_h%ns) )
 !
-!--  New
-        ALLOCATE( surf_usm_h%rad_in_sw(1:surf_usm_h%ns)  )
-        ALLOCATE( surf_usm_h%rad_out_sw(1:surf_usm_h%ns) )
-        ALLOCATE( surf_usm_h%rad_in_lw(1:surf_usm_h%ns)  )
-        ALLOCATE( surf_usm_h%rad_out_lw(1:surf_usm_h%ns) )
-!
 !--     For vertical surfaces
         DO  l = 0, 3
            ALLOCATE( surf_usm_v(l)%surfhf(1:surf_usm_v(l)%ns)    )
            ALLOCATE( surf_usm_v(l)%rad_net_l(1:surf_usm_v(l)%ns) )
-           ALLOCATE( surf_usm_v(l)%rad_in_sw(1:surf_usm_v(l)%ns)  )
-           ALLOCATE( surf_usm_v(l)%rad_out_sw(1:surf_usm_v(l)%ns) )
-           ALLOCATE( surf_usm_v(l)%rad_in_lw(1:surf_usm_v(l)%ns)  )
-           ALLOCATE( surf_usm_v(l)%rad_out_lw(1:surf_usm_v(l)%ns) )
         ENDDO
 
@@ -920,43 +755,92 @@
            ALLOCATE( surf_usm_v(l)%surface_types(1:surf_usm_v(l)%ns) )
         ENDDO
-       
-!--     broadband albedo of the land, roof and wall surface
-!--     for domain border and sky set artifically to 1.0
-!--     what allows us to calculate heat flux leaving over
-!--     side and top borders of the domain
-        ALLOCATE ( albedo_surf(nsurfl) )
-        albedo_surf = 1.0_wp
-        ALLOCATE ( surf_usm_h%albedo_surf(1:surf_usm_h%ns) )
+!
+!--     Allocate albedo_type and albedo. Each surface element
+!--     has 3 values, 0: wall fraction, 1: green fraction, 2: window fraction.
+        ALLOCATE( surf_usm_h%albedo_type(0:2,1:surf_usm_h%ns) )
+        ALLOCATE( surf_usm_h%albedo(0:2,1:surf_usm_h%ns)      )
+        surf_usm_h%albedo_type = albedo_type
         DO  l = 0, 3
-           ALLOCATE( surf_usm_v(l)%albedo_surf(1:surf_usm_v(l)%ns) )
-        ENDDO
+           ALLOCATE( surf_usm_v(l)%albedo_type(0:2,1:surf_usm_v(l)%ns) )
+           ALLOCATE( surf_usm_v(l)%albedo(0:2,1:surf_usm_v(l)%ns)      )
+           surf_usm_v(l)%albedo_type = albedo_type
+        ENDDO       
+
+
+!
+!--     Allocate indoor target temperature for summer and winter
+        ALLOCATE( surf_usm_h%target_temp_summer(1:surf_usm_h%ns) )
+        ALLOCATE( surf_usm_h%target_temp_winter(1:surf_usm_h%ns) )
+        DO  l = 0, 3
+           ALLOCATE( surf_usm_v(l)%target_temp_summer(1:surf_usm_v(l)%ns) )
+           ALLOCATE( surf_usm_v(l)%target_temp_winter(1:surf_usm_v(l)%ns) )
+        ENDDO   
+!
+!--     Allocate flag indicating ground floor level surface elements
+        ALLOCATE ( surf_usm_h%ground_level(1:surf_usm_h%ns) ) 
+        DO  l = 0, 3
+           ALLOCATE( surf_usm_v(l)%ground_level(1:surf_usm_v(l)%ns) )
+        ENDDO   
+!
+!--      Allocate arrays for relative surface fraction. 
+!--      0 - wall fraction, 1 - green fraction, 2 - window fraction
+         ALLOCATE( surf_usm_h%frac(0:2,1:surf_usm_h%ns) )
+         surf_usm_h%frac = 0.0_wp
+         DO  l = 0, 3
+            ALLOCATE( surf_usm_v(l)%frac(0:2,1:surf_usm_v(l)%ns) )
+            surf_usm_v(l)%frac = 0.0_wp
+         ENDDO
        
 !--     wall and roof surface parameters. First for horizontal surfaces
-        ALLOCATE ( emiss_surf(startenergy:endenergy) )
-
-        ALLOCATE ( surf_usm_h%isroof_surf(1:surf_usm_h%ns)    )
-        ALLOCATE ( surf_usm_h%emiss_surf(1:surf_usm_h%ns)     )
-        ALLOCATE ( surf_usm_h%lambda_surf(1:surf_usm_h%ns)    )
-        ALLOCATE ( surf_usm_h%c_surface(1:surf_usm_h%ns)      )
-        ALLOCATE ( surf_usm_h%roughness_wall(1:surf_usm_h%ns) )
+        ALLOCATE ( surf_usm_h%isroof_surf(1:surf_usm_h%ns)     )
+        ALLOCATE ( surf_usm_h%lambda_surf(1:surf_usm_h%ns)     )
+        ALLOCATE ( surf_usm_h%lambda_surf_window(1:surf_usm_h%ns) )
+        ALLOCATE ( surf_usm_h%lambda_surf_green(1:surf_usm_h%ns)  )
+        ALLOCATE ( surf_usm_h%c_surface(1:surf_usm_h%ns)       )
+        ALLOCATE ( surf_usm_h%c_surface_window(1:surf_usm_h%ns)   )
+        ALLOCATE ( surf_usm_h%c_surface_green(1:surf_usm_h%ns)    )
+        ALLOCATE ( surf_usm_h%transmissivity(1:surf_usm_h%ns)  )
+        ALLOCATE ( surf_usm_h%lai(1:surf_usm_h%ns)             )
+        ALLOCATE ( surf_usm_h%emissivity(0:2,1:surf_usm_h%ns)  )
+
 !
 !--     For vertical surfaces.
         DO  l = 0, 3
-           ALLOCATE ( surf_usm_v(l)%emiss_surf(1:surf_usm_v(l)%ns)     )
-           ALLOCATE ( surf_usm_v(l)%lambda_surf(1:surf_usm_v(l)%ns)    )
-           ALLOCATE ( surf_usm_v(l)%c_surface(1:surf_usm_v(l)%ns)      )
-           ALLOCATE ( surf_usm_v(l)%roughness_wall(1:surf_usm_v(l)%ns) )
+           ALLOCATE ( surf_usm_v(l)%lambda_surf(1:surf_usm_v(l)%ns)     )
+           ALLOCATE ( surf_usm_v(l)%c_surface(1:surf_usm_v(l)%ns)       )
+           ALLOCATE ( surf_usm_v(l)%lambda_surf_window(1:surf_usm_v(l)%ns) )
+           ALLOCATE ( surf_usm_v(l)%c_surface_window(1:surf_usm_v(l)%ns)   )
+           ALLOCATE ( surf_usm_v(l)%lambda_surf_green(1:surf_usm_v(l)%ns)  )
+           ALLOCATE ( surf_usm_v(l)%c_surface_green(1:surf_usm_v(l)%ns)    )
+           ALLOCATE ( surf_usm_v(l)%transmissivity(1:surf_usm_v(l)%ns)  )
+           ALLOCATE ( surf_usm_v(l)%lai(1:surf_usm_v(l)%ns)             )
+
+           ALLOCATE ( surf_usm_v(l)%emissivity(0:2,1:surf_usm_v(l)%ns)  )
         ENDDO
-       
+
+!       
 !--     allocate wall and roof material parameters. First for horizontal surfaces
         ALLOCATE ( surf_usm_h%thickness_wall(1:surf_usm_h%ns)               )
+        ALLOCATE ( surf_usm_h%thickness_window(1:surf_usm_h%ns)                  )
+        ALLOCATE ( surf_usm_h%thickness_green(1:surf_usm_h%ns)                   )
         ALLOCATE ( surf_usm_h%lambda_h(nzb_wall:nzt_wall,1:surf_usm_h%ns)   )
         ALLOCATE ( surf_usm_h%rho_c_wall(nzb_wall:nzt_wall,1:surf_usm_h%ns) )
+        ALLOCATE ( surf_usm_h%lambda_h_window(nzb_wall:nzt_wall,1:surf_usm_h%ns) )
+        ALLOCATE ( surf_usm_h%rho_c_window(nzb_wall:nzt_wall,1:surf_usm_h%ns)    )
+        ALLOCATE ( surf_usm_h%lambda_h_green(nzb_wall:nzt_wall,1:surf_usm_h%ns)  )
+        ALLOCATE ( surf_usm_h%rho_c_green(nzb_wall:nzt_wall,1:surf_usm_h%ns)     )
+
 !
 !--     For vertical surfaces.
         DO  l = 0, 3
            ALLOCATE ( surf_usm_v(l)%thickness_wall(1:surf_usm_v(l)%ns)               )
+           ALLOCATE ( surf_usm_v(l)%thickness_window(1:surf_usm_v(l)%ns)                  )
+           ALLOCATE ( surf_usm_v(l)%thickness_green(1:surf_usm_v(l)%ns)                   )
            ALLOCATE ( surf_usm_v(l)%lambda_h(nzb_wall:nzt_wall,1:surf_usm_v(l)%ns)   )
            ALLOCATE ( surf_usm_v(l)%rho_c_wall(nzb_wall:nzt_wall,1:surf_usm_v(l)%ns) )
+           ALLOCATE ( surf_usm_v(l)%lambda_h_window(nzb_wall:nzt_wall,1:surf_usm_v(l)%ns) )
+           ALLOCATE ( surf_usm_v(l)%rho_c_window(nzb_wall:nzt_wall,1:surf_usm_v(l)%ns)    )
+           ALLOCATE ( surf_usm_v(l)%lambda_h_green(nzb_wall:nzt_wall,1:surf_usm_v(l)%ns)  )
+           ALLOCATE ( surf_usm_v(l)%rho_c_green(nzb_wall:nzt_wall,1:surf_usm_v(l)%ns)     )
         ENDDO
 
@@ -964,16 +848,38 @@
         ALLOCATE ( zwn(nzb_wall:nzt_wall) )
         ALLOCATE ( surf_usm_h%dz_wall(nzb_wall:nzt_wall+1,1:surf_usm_h%ns)     )
+        ALLOCATE ( zwn_window(nzb_wall:nzt_wall) )
+        ALLOCATE ( surf_usm_h%dz_window(nzb_wall:nzt_wall+1,1:surf_usm_h%ns)     )
+        ALLOCATE ( zwn_green(nzb_wall:nzt_wall) )
+        ALLOCATE ( surf_usm_h%dz_green(nzb_wall:nzt_wall+1,1:surf_usm_h%ns)      )
         ALLOCATE ( surf_usm_h%ddz_wall(nzb_wall:nzt_wall+1,1:surf_usm_h%ns)    )
         ALLOCATE ( surf_usm_h%dz_wall_stag(nzb_wall:nzt_wall,1:surf_usm_h%ns)  )
         ALLOCATE ( surf_usm_h%ddz_wall_stag(nzb_wall:nzt_wall,1:surf_usm_h%ns) )
         ALLOCATE ( surf_usm_h%zw(nzb_wall:nzt_wall,1:surf_usm_h%ns)            )
+        ALLOCATE ( surf_usm_h%ddz_window(nzb_wall:nzt_wall+1,1:surf_usm_h%ns)    )
+        ALLOCATE ( surf_usm_h%dz_window_stag(nzb_wall:nzt_wall,1:surf_usm_h%ns)  )
+        ALLOCATE ( surf_usm_h%ddz_window_stag(nzb_wall:nzt_wall,1:surf_usm_h%ns) )
+        ALLOCATE ( surf_usm_h%zw_window(nzb_wall:nzt_wall,1:surf_usm_h%ns)       )
+        ALLOCATE ( surf_usm_h%ddz_green(nzb_wall:nzt_wall+1,1:surf_usm_h%ns)     )
+        ALLOCATE ( surf_usm_h%dz_green_stag(nzb_wall:nzt_wall,1:surf_usm_h%ns)   )
+        ALLOCATE ( surf_usm_h%ddz_green_stag(nzb_wall:nzt_wall,1:surf_usm_h%ns)  )
+        ALLOCATE ( surf_usm_h%zw_green(nzb_wall:nzt_wall,1:surf_usm_h%ns)        )
 !
 !--     For vertical surfaces.
         DO  l = 0, 3
            ALLOCATE ( surf_usm_v(l)%dz_wall(nzb_wall:nzt_wall+1,1:surf_usm_v(l)%ns)     )
+           ALLOCATE ( surf_usm_v(l)%dz_window(nzb_wall:nzt_wall+1,1:surf_usm_v(l)%ns)     )
+           ALLOCATE ( surf_usm_v(l)%dz_green(nzb_wall:nzt_wall+1,1:surf_usm_v(l)%ns)      )
            ALLOCATE ( surf_usm_v(l)%ddz_wall(nzb_wall:nzt_wall+1,1:surf_usm_v(l)%ns)    )
            ALLOCATE ( surf_usm_v(l)%dz_wall_stag(nzb_wall:nzt_wall,1:surf_usm_v(l)%ns)  )
            ALLOCATE ( surf_usm_v(l)%ddz_wall_stag(nzb_wall:nzt_wall,1:surf_usm_v(l)%ns) )
            ALLOCATE ( surf_usm_v(l)%zw(nzb_wall:nzt_wall,1:surf_usm_v(l)%ns)            )
+           ALLOCATE ( surf_usm_v(l)%ddz_window(nzb_wall:nzt_wall+1,1:surf_usm_v(l)%ns)    )
+           ALLOCATE ( surf_usm_v(l)%dz_window_stag(nzb_wall:nzt_wall,1:surf_usm_v(l)%ns)  )
+           ALLOCATE ( surf_usm_v(l)%ddz_window_stag(nzb_wall:nzt_wall,1:surf_usm_v(l)%ns) )
+           ALLOCATE ( surf_usm_v(l)%zw_window(nzb_wall:nzt_wall,1:surf_usm_v(l)%ns)       )
+           ALLOCATE ( surf_usm_v(l)%ddz_green(nzb_wall:nzt_wall+1,1:surf_usm_v(l)%ns)     )
+           ALLOCATE ( surf_usm_v(l)%dz_green_stag(nzb_wall:nzt_wall,1:surf_usm_v(l)%ns)   )
+           ALLOCATE ( surf_usm_v(l)%ddz_green_stag(nzb_wall:nzt_wall,1:surf_usm_v(l)%ns)  )
+           ALLOCATE ( surf_usm_v(l)%zw_green(nzb_wall:nzt_wall,1:surf_usm_v(l)%ns)        )
         ENDDO
 
@@ -988,4 +894,28 @@
         IF ( .NOT. ALLOCATED( t_wall_h_p ) )                                   &           
            ALLOCATE ( t_wall_h_p(nzb_wall:nzt_wall+1,1:surf_usm_h%ns) )  
+        IF ( .NOT. ALLOCATED( t_surf_window_h ) )                              &
+           ALLOCATE ( t_surf_window_h(1:surf_usm_h%ns) )
+        IF ( .NOT. ALLOCATED( t_surf_window_h_p ) )                            &
+           ALLOCATE ( t_surf_window_h_p(1:surf_usm_h%ns) )
+        IF ( .NOT. ALLOCATED( t_window_h ) )                                   &           
+           ALLOCATE ( t_window_h(nzb_wall:nzt_wall+1,1:surf_usm_h%ns) ) 
+        IF ( .NOT. ALLOCATED( t_window_h_p ) )                                 &           
+           ALLOCATE ( t_window_h_p(nzb_wall:nzt_wall+1,1:surf_usm_h%ns) )  
+        IF ( .NOT. ALLOCATED( t_surf_green_h ) )                               &
+           ALLOCATE ( t_surf_green_h(1:surf_usm_h%ns) )
+        IF ( .NOT. ALLOCATED( t_surf_green_h_p ) )                             &
+           ALLOCATE ( t_surf_green_h_p(1:surf_usm_h%ns) )           
+        IF ( .NOT. ALLOCATED( t_green_h ) )                                    &           
+           ALLOCATE ( t_green_h(nzb_wall:nzt_wall+1,1:surf_usm_h%ns) ) 
+        IF ( .NOT. ALLOCATED( t_green_h_p ) )                                  &           
+           ALLOCATE ( t_green_h_p(nzb_wall:nzt_wall+1,1:surf_usm_h%ns) )  
+        IF ( .NOT. ALLOCATED( t_surf_whole_h ) )                               &
+           ALLOCATE ( t_surf_whole_h(1:surf_usm_h%ns) )
+        IF ( .NOT. ALLOCATED( t_surf_whole_h_p ) )                             &
+           ALLOCATE ( t_surf_whole_h_p(1:surf_usm_h%ns) )           
+        IF ( .NOT. ALLOCATED( t_surf_10cm_h ) )                                &
+           ALLOCATE ( t_surf_10cm_h(1:surf_usm_h%ns) )
+        IF ( .NOT. ALLOCATED( t_surf_10cm_h_p ) )                              &
+           ALLOCATE ( t_surf_10cm_h_p(1:surf_usm_h%ns) )
 #else
 !
@@ -1000,8 +930,39 @@
         IF ( .NOT. ALLOCATED( t_wall_h_2 ) )                                   &           
            ALLOCATE ( t_wall_h_2(nzb_wall:nzt_wall+1,1:surf_usm_h%ns) )          
+        IF ( .NOT. ALLOCATED( t_surf_window_h_1 ) )                            &
+           ALLOCATE ( t_surf_window_h_1(1:surf_usm_h%ns) )
+        IF ( .NOT. ALLOCATED( t_surf_window_h_2 ) )                            &
+           ALLOCATE ( t_surf_window_h_2(1:surf_usm_h%ns) )
+        IF ( .NOT. ALLOCATED( t_window_h_1 ) )                                 &           
+           ALLOCATE ( t_window_h_1(nzb_wall:nzt_wall+1,1:surf_usm_h%ns) ) 
+        IF ( .NOT. ALLOCATED( t_window_h_2 ) )                                 &           
+           ALLOCATE ( t_window_h_2(nzb_wall:nzt_wall+1,1:surf_usm_h%ns) )          
+        IF ( .NOT. ALLOCATED( t_surf_green_h_1 ) )                             &
+           ALLOCATE ( t_surf_green_h_1(1:surf_usm_h%ns) )
+        IF ( .NOT. ALLOCATED( t_surf_green_h_2 ) )                             &
+           ALLOCATE ( t_surf_green_h_2(1:surf_usm_h%ns) )
+        IF ( .NOT. ALLOCATED( t_green_h_1 ) )                                  &           
+           ALLOCATE ( t_green_h_1(nzb_wall:nzt_wall+1,1:surf_usm_h%ns) ) 
+        IF ( .NOT. ALLOCATED( t_green_h_2 ) )                                  &           
+           ALLOCATE ( t_green_h_2(nzb_wall:nzt_wall+1,1:surf_usm_h%ns) )          
+        IF ( .NOT. ALLOCATED( t_surf_whole_h_1 ) )                             &
+           ALLOCATE ( t_surf_whole_h_1(1:surf_usm_h%ns) )
+        IF ( .NOT. ALLOCATED( t_surf_whole_h_2 ) )                             &
+           ALLOCATE ( t_surf_whole_h_2(1:surf_usm_h%ns) )
+        IF ( .NOT. ALLOCATED( t_surf_10cm_h_1 ) )                              &
+           ALLOCATE ( t_surf_10cm_h_1(1:surf_usm_h%ns) )
+        IF ( .NOT. ALLOCATED( t_surf_10cm_h_2 ) )                              &
+           ALLOCATE ( t_surf_10cm_h_2(1:surf_usm_h%ns) )
 !           
 !--     initial assignment of the pointers
         t_wall_h    => t_wall_h_1;    t_wall_h_p    => t_wall_h_2
+        t_window_h    => t_window_h_1;    t_window_h_p    => t_window_h_2
+        t_green_h    => t_green_h_1;    t_green_h_p    => t_green_h_2
         t_surf_h => t_surf_h_1; t_surf_h_p => t_surf_h_2           
+        t_surf_window_h => t_surf_window_h_1; t_surf_window_h_p => t_surf_window_h_2  
+        t_surf_green_h => t_surf_green_h_1; t_surf_green_h_p => t_surf_green_h_2           
+        t_surf_whole_h => t_surf_whole_h_1; t_surf_whole_h_p => t_surf_whole_h_2
+        t_surf_10cm_h => t_surf_10cm_h_1; t_surf_10cm_h_p => t_surf_10cm_h_2  
+ 
 #endif
 
@@ -1017,4 +978,28 @@
            IF ( .NOT. ALLOCATED( t_wall_v_p(l)%t ) )                           &                 
               ALLOCATE ( t_wall_v_p(l)%t(nzb_wall:nzt_wall+1,1:surf_usm_v(l)%ns) )
+           IF ( .NOT. ALLOCATED( t_surf_window_v(l)%t ) )                      &
+              ALLOCATE ( t_surf_window_v(l)%t(1:surf_usm_v(l)%ns) )
+           IF ( .NOT. ALLOCATED( t_surf_window_v_p(l)%t ) )                    &
+              ALLOCATE ( t_surf_window_v_p(l)%t(1:surf_usm_v(l)%ns) )
+           IF ( .NOT. ALLOCATED( t_window_v(l)%t ) )                           &
+              ALLOCATE ( t_window_v(l)%t(nzb_wall:nzt_wall+1,1:surf_usm_v(l)%ns) )
+           IF ( .NOT. ALLOCATED( t_window_v_p(l)%t ) )                         &                 
+              ALLOCATE ( t_window_v_p(l)%t(nzb_wall:nzt_wall+1,1:surf_usm_v(l)%ns) )
+           IF ( .NOT. ALLOCATED( t_green_v(l)%t ) )                            &
+              ALLOCATE ( t_green_v(l)%t(nzb_wall:nzt_wall+1,1:surf_usm_v(l)%ns) )
+           IF ( .NOT. ALLOCATED( t_green_v_p(l)%t ) )                          &                 
+              ALLOCATE ( t_green_v_p(l)%t(nzb_wall:nzt_wall+1,1:surf_usm_v(l)%ns) )
+           IF ( .NOT. ALLOCATED( t_surf_green_v(l)%t ) )                       &
+              ALLOCATE ( t_surf_green_v(l)%t(1:surf_usm_v(l)%ns) )
+           IF ( .NOT. ALLOCATED( t_surf_green_v_p(l)%t ) )                     &
+              ALLOCATE ( t_surf_green_v_p(l)%t(1:surf_usm_v(l)%ns) )
+           IF ( .NOT. ALLOCATED( t_surf_whole_v(l)%t ) )                       &
+              ALLOCATE ( t_surf_whole_v(l)%t(1:surf_usm_v(l)%ns) )
+           IF ( .NOT. ALLOCATED( t_surf_whole_v_p(l)%t ) )                     &
+              ALLOCATE ( t_surf_whole_v_p(l)%t(1:surf_usm_v(l)%ns) )
+           IF ( .NOT. ALLOCATED( t_surf_10cm_v(l)%t ) )                        &
+              ALLOCATE ( t_surf_10cm_v(l)%t(1:surf_usm_v(l)%ns) )
+           IF ( .NOT. ALLOCATED( t_surf_10cm_v_p(l)%t ) )                        &
+              ALLOCATE ( t_surf_10cm_v_p(l)%t(1:surf_usm_v(l)%ns) )
         ENDDO
 #else
@@ -1031,4 +1016,28 @@
            IF ( .NOT. ALLOCATED( t_wall_v_2(l)%t ) )                           &           
               ALLOCATE ( t_wall_v_2(l)%t(nzb_wall:nzt_wall+1,1:surf_usm_v(l)%ns) )  
+           IF ( .NOT. ALLOCATED( t_surf_window_v_1(l)%t ) )                    &
+              ALLOCATE ( t_surf_window_v_1(l)%t(1:surf_usm_v(l)%ns) )
+           IF ( .NOT. ALLOCATED( t_surf_window_v_2(l)%t ) )                    &
+              ALLOCATE ( t_surf_window_v_2(l)%t(1:surf_usm_v(l)%ns) )
+           IF ( .NOT. ALLOCATED( t_window_v_1(l)%t ) )                         &           
+              ALLOCATE ( t_window_v_1(l)%t(nzb_wall:nzt_wall+1,1:surf_usm_v(l)%ns) ) 
+           IF ( .NOT. ALLOCATED( t_window_v_2(l)%t ) )                         &           
+              ALLOCATE ( t_window_v_2(l)%t(nzb_wall:nzt_wall+1,1:surf_usm_v(l)%ns) )  
+           IF ( .NOT. ALLOCATED( t_surf_green_v_1(l)%t ) )                     &
+              ALLOCATE ( t_surf_green_v_1(l)%t(1:surf_usm_v(l)%ns) )
+           IF ( .NOT. ALLOCATED( t_surf_green_v_2(l)%t ) )                     &
+              ALLOCATE ( t_surf_green_v_2(l)%t(1:surf_usm_v(l)%ns) )
+           IF ( .NOT. ALLOCATED( t_green_v_1(l)%t ) )                          &           
+              ALLOCATE ( t_green_v_1(l)%t(nzb_wall:nzt_wall+1,1:surf_usm_v(l)%ns) ) 
+           IF ( .NOT. ALLOCATED( t_green_v_2(l)%t ) )                          &           
+              ALLOCATE ( t_green_v_2(l)%t(nzb_wall:nzt_wall+1,1:surf_usm_v(l)%ns) )  
+           IF ( .NOT. ALLOCATED( t_surf_whole_v_1(l)%t ) )                     &
+              ALLOCATE ( t_surf_whole_v_1(l)%t(1:surf_usm_v(l)%ns) )
+           IF ( .NOT. ALLOCATED( t_surf_whole_v_2(l)%t ) )                     &
+              ALLOCATE ( t_surf_whole_v_2(l)%t(1:surf_usm_v(l)%ns) )
+           IF ( .NOT. ALLOCATED( t_surf_10cm_v_1(l)%t ) )                     &
+              ALLOCATE ( t_surf_10cm_v_1(l)%t(1:surf_usm_v(l)%ns) )
+           IF ( .NOT. ALLOCATED( t_surf_10cm_v_2(l)%t ) )                     &
+              ALLOCATE ( t_surf_10cm_v_2(l)%t(1:surf_usm_v(l)%ns) )
         ENDDO
 !
@@ -1036,4 +1045,11 @@
         t_wall_v    => t_wall_v_1;    t_wall_v_p    => t_wall_v_2
         t_surf_v => t_surf_v_1; t_surf_v_p => t_surf_v_2
+        t_window_v    => t_window_v_1;    t_window_v_p    => t_window_v_2
+        t_green_v    => t_green_v_1;    t_green_v_p    => t_green_v_2
+        t_surf_window_v => t_surf_window_v_1; t_surf_window_v_p => t_surf_window_v_2
+        t_surf_green_v => t_surf_green_v_1; t_surf_green_v_p => t_surf_green_v_2
+        t_surf_whole_v => t_surf_whole_v_1; t_surf_whole_v_p => t_surf_whole_v_2
+        t_surf_10cm_v => t_surf_10cm_v_1; t_surf_10cm_v_p => t_surf_10cm_v_2
+
 #endif
 !
@@ -1041,8 +1057,17 @@
         ALLOCATE ( surf_usm_h%tt_surface_m(1:surf_usm_h%ns)                  )
         ALLOCATE ( surf_usm_h%tt_wall_m(nzb_wall:nzt_wall+1,1:surf_usm_h%ns) )
+        ALLOCATE ( surf_usm_h%tt_surface_window_m(1:surf_usm_h%ns)             )
+        ALLOCATE ( surf_usm_h%tt_window_m(nzb_wall:nzt_wall+1,1:surf_usm_h%ns) )
+        ALLOCATE ( surf_usm_h%tt_green_m(nzb_wall:nzt_wall+1,1:surf_usm_h%ns)  )
+        ALLOCATE ( surf_usm_h%tt_surface_green_m(1:surf_usm_h%ns)              )
+
 !
 !--     Set inital values for prognostic quantities
         IF ( ALLOCATED( surf_usm_h%tt_surface_m ) )  surf_usm_h%tt_surface_m = 0.0_wp
         IF ( ALLOCATED( surf_usm_h%tt_wall_m    ) )  surf_usm_h%tt_wall_m    = 0.0_wp
+        IF ( ALLOCATED( surf_usm_h%tt_surface_window_m ) )  surf_usm_h%tt_surface_window_m = 0.0_wp
+        IF ( ALLOCATED( surf_usm_h%tt_window_m    )      )  surf_usm_h%tt_window_m         = 0.0_wp
+        IF ( ALLOCATED( surf_usm_h%tt_green_m    )       )  surf_usm_h%tt_green_m          = 0.0_wp
+        IF ( ALLOCATED( surf_usm_h%tt_surface_green_m )  )  surf_usm_h%tt_surface_green_m  = 0.0_wp
 !
 !--     Now, for vertical surfaces
@@ -1052,4 +1077,12 @@
            IF ( ALLOCATED( surf_usm_v(l)%tt_surface_m ) )  surf_usm_v(l)%tt_surface_m = 0.0_wp
            IF ( ALLOCATED( surf_usm_v(l)%tt_wall_m    ) )  surf_usm_v(l)%tt_wall_m    = 0.0_wp
+           ALLOCATE ( surf_usm_v(l)%tt_surface_window_m(1:surf_usm_v(l)%ns)             )
+           ALLOCATE ( surf_usm_v(l)%tt_window_m(nzb_wall:nzt_wall+1,1:surf_usm_v(l)%ns) )
+           IF ( ALLOCATED( surf_usm_v(l)%tt_surface_window_m ) )  surf_usm_v(l)%tt_surface_window_m = 0.0_wp
+           IF ( ALLOCATED( surf_usm_v(l)%tt_window_m  ) )  surf_usm_v(l)%tt_window_m    = 0.0_wp
+           ALLOCATE ( surf_usm_v(l)%tt_surface_green_m(1:surf_usm_v(l)%ns)              )
+           IF ( ALLOCATED( surf_usm_v(l)%tt_surface_green_m ) )  surf_usm_v(l)%tt_surface_green_m = 0.0_wp
+           ALLOCATE ( surf_usm_v(l)%tt_green_m(nzb_wall:nzt_wall+1,1:surf_usm_v(l)%ns)  )
+           IF ( ALLOCATED( surf_usm_v(l)%tt_green_m   ) )  surf_usm_v(l)%tt_green_m    = 0.0_wp
         ENDDO
 
@@ -1058,7 +1091,15 @@
         ALLOCATE ( surf_usm_h%wshf_eb(1:surf_usm_h%ns) )
         ALLOCATE ( surf_usm_h%wghf_eb(1:surf_usm_h%ns) )
+        ALLOCATE ( surf_usm_h%wghf_eb_window(1:surf_usm_h%ns) )
+        ALLOCATE ( surf_usm_h%wghf_eb_green(1:surf_usm_h%ns) )
+        ALLOCATE ( surf_usm_h%iwghf_eb(1:surf_usm_h%ns) )
+        ALLOCATE ( surf_usm_h%iwghf_eb_window(1:surf_usm_h%ns) )
         IF ( ALLOCATED( surf_usm_h%wshf    ) )  surf_usm_h%wshf    = 0.0_wp
         IF ( ALLOCATED( surf_usm_h%wshf_eb ) )  surf_usm_h%wshf_eb = 0.0_wp
         IF ( ALLOCATED( surf_usm_h%wghf_eb ) )  surf_usm_h%wghf_eb = 0.0_wp
+        IF ( ALLOCATED( surf_usm_h%wghf_eb_window ) )  surf_usm_h%wghf_eb_window = 0.0_wp
+        IF ( ALLOCATED( surf_usm_h%wghf_eb_green ) )  surf_usm_h%wghf_eb_green = 0.0_wp
+        IF ( ALLOCATED( surf_usm_h%iwghf_eb ) )  surf_usm_h%iwghf_eb = 0.0_wp
+        IF ( ALLOCATED( surf_usm_h%iwghf_eb_window ) )  surf_usm_h%iwghf_eb_window = 0.0_wp
 !
 !--     Now, for vertical surfaces
@@ -1067,11 +1108,18 @@
            ALLOCATE ( surf_usm_v(l)%wshf_eb(1:surf_usm_v(l)%ns) )
            ALLOCATE ( surf_usm_v(l)%wghf_eb(1:surf_usm_v(l)%ns) )
+           ALLOCATE ( surf_usm_v(l)%wghf_eb_window(1:surf_usm_v(l)%ns) )
+           ALLOCATE ( surf_usm_v(l)%wghf_eb_green(1:surf_usm_v(l)%ns) )
+           ALLOCATE ( surf_usm_v(l)%iwghf_eb(1:surf_usm_v(l)%ns) )
+           ALLOCATE ( surf_usm_v(l)%iwghf_eb_window(1:surf_usm_v(l)%ns) )
            IF ( ALLOCATED( surf_usm_v(l)%wshf    ) )  surf_usm_v(l)%wshf    = 0.0_wp
            IF ( ALLOCATED( surf_usm_v(l)%wshf_eb ) )  surf_usm_v(l)%wshf_eb = 0.0_wp
            IF ( ALLOCATED( surf_usm_v(l)%wghf_eb ) )  surf_usm_v(l)%wghf_eb = 0.0_wp
+           IF ( ALLOCATED( surf_usm_v(l)%wghf_eb_window ) )  surf_usm_v(l)%wghf_eb_window = 0.0_wp
+           IF ( ALLOCATED( surf_usm_v(l)%wghf_eb_green ) )  surf_usm_v(l)%wghf_eb_green = 0.0_wp
+           IF ( ALLOCATED( surf_usm_v(l)%iwghf_eb ) )  surf_usm_v(l)%iwghf_eb = 0.0_wp
+           IF ( ALLOCATED( surf_usm_v(l)%iwghf_eb_window ) )  surf_usm_v(l)%iwghf_eb_window = 0.0_wp
         ENDDO
         
-    END SUBROUTINE usm_allocate_urban_surface
-
+    END SUBROUTINE usm_allocate_surface
 
 
@@ -1115,4 +1163,24 @@
             ELSE
 !--             wrong wall layer index
+                RETURN
+            ENDIF
+        ENDIF
+        IF ( var(1:13) == 'usm_t_window_'  .AND.  len(TRIM(var)) >= 14 )  THEN
+!--          wall layers
+            READ(var(14:14), '(I1)', iostat=istat ) iwl
+            IF ( istat == 0  .AND.  iwl >= nzb_wall  .AND.  iwl <= nzt_wall )  THEN
+                var = var(1:12)
+            ELSE
+!--             wrong window layer index
+                RETURN
+            ENDIF
+        ENDIF
+        IF ( var(1:12) == 'usm_t_green_'  .AND.  len(TRIM(var)) >= 13 )  THEN
+!--          wall layers
+            READ(var(13:13), '(I1)', iostat=istat ) iwl
+            IF ( istat == 0  .AND.  iwl >= nzb_wall  .AND.  iwl <= nzt_wall )  THEN
+                var = var(1:11)
+            ELSE
+!--             wrong green layer index
                 RETURN
             ENDIF
@@ -1264,4 +1332,56 @@
                     ENDDO
 
+                CASE ( 'usm_wghf_window' )
+!--                 array of heat flux from window ground (wall, roof, land)
+                    IF ( .NOT.  ALLOCATED(surf_usm_h%wghf_eb_window_av) )  THEN
+                        ALLOCATE( surf_usm_h%wghf_eb_window_av(1:surf_usm_h%ns) )
+                        surf_usm_h%wghf_eb_window_av = 0.0_wp
+                    ENDIF
+                    DO  l = 0, 3
+                       IF ( .NOT.  ALLOCATED(surf_usm_v(l)%wghf_eb_window_av) )  THEN
+                           ALLOCATE( surf_usm_v(l)%wghf_eb_window_av(1:surf_usm_v(l)%ns) )
+                           surf_usm_v(l)%wghf_eb_window_av = 0.0_wp
+                       ENDIF
+                    ENDDO
+
+                CASE ( 'usm_wghf_green' )
+!--                 array of heat flux from green ground (wall, roof, land)
+                    IF ( .NOT.  ALLOCATED(surf_usm_h%wghf_eb_green_av) )  THEN
+                        ALLOCATE( surf_usm_h%wghf_eb_green_av(1:surf_usm_h%ns) )
+                        surf_usm_h%wghf_eb_green_av = 0.0_wp
+                    ENDIF
+                    DO  l = 0, 3
+                       IF ( .NOT.  ALLOCATED(surf_usm_v(l)%wghf_eb_green_av) )  THEN
+                           ALLOCATE( surf_usm_v(l)%wghf_eb_green_av(1:surf_usm_v(l)%ns) )
+                           surf_usm_v(l)%wghf_eb_green_av = 0.0_wp
+                       ENDIF
+                    ENDDO
+
+                CASE ( 'usm_iwghf' )
+!--                 array of heat flux from indoor ground (wall, roof, land)
+                    IF ( .NOT.  ALLOCATED(surf_usm_h%iwghf_eb_av) )  THEN
+                        ALLOCATE( surf_usm_h%iwghf_eb_av(1:surf_usm_h%ns) )
+                        surf_usm_h%iwghf_eb_av = 0.0_wp
+                    ENDIF
+                    DO  l = 0, 3
+                       IF ( .NOT.  ALLOCATED(surf_usm_v(l)%iwghf_eb_av) )  THEN
+                           ALLOCATE( surf_usm_v(l)%iwghf_eb_av(1:surf_usm_v(l)%ns) )
+                           surf_usm_v(l)%iwghf_eb_av = 0.0_wp
+                       ENDIF
+                    ENDDO
+
+                CASE ( 'usm_iwghf_window' )
+!--                 array of heat flux from indoor window ground (wall, roof, land)
+                    IF ( .NOT.  ALLOCATED(surf_usm_h%iwghf_eb_window_av) )  THEN
+                        ALLOCATE( surf_usm_h%iwghf_eb_window_av(1:surf_usm_h%ns) )
+                        surf_usm_h%iwghf_eb_window_av = 0.0_wp
+                    ENDIF
+                    DO  l = 0, 3
+                       IF ( .NOT.  ALLOCATED(surf_usm_v(l)%iwghf_eb_window_av) )  THEN
+                           ALLOCATE( surf_usm_v(l)%iwghf_eb_window_av(1:surf_usm_v(l)%ns) )
+                           surf_usm_v(l)%iwghf_eb_window_av = 0.0_wp
+                       ENDIF
+                    ENDDO
+                    
                 CASE ( 'usm_t_surf' )
 !--                 surface temperature for surfaces
@@ -1277,4 +1397,56 @@
                     ENDDO
 
+                CASE ( 'usm_t_surf_window' )
+!--                 surface temperature for window surfaces
+                    IF ( .NOT.  ALLOCATED(surf_usm_h%t_surf_window_av) )  THEN
+                        ALLOCATE( surf_usm_h%t_surf_window_av(1:surf_usm_h%ns) )
+                        surf_usm_h%t_surf_window_av = 0.0_wp
+                    ENDIF
+                    DO  l = 0, 3
+                       IF ( .NOT.  ALLOCATED(surf_usm_v(l)%t_surf_window_av) )  THEN
+                           ALLOCATE( surf_usm_v(l)%t_surf_window_av(1:surf_usm_v(l)%ns) )
+                           surf_usm_v(l)%t_surf_window_av = 0.0_wp
+                       ENDIF
+                    ENDDO
+                    
+                CASE ( 'usm_t_surf_green' )
+!--                 surface temperature for green surfaces
+                    IF ( .NOT.  ALLOCATED(surf_usm_h%t_surf_green_av) )  THEN
+                        ALLOCATE( surf_usm_h%t_surf_green_av(1:surf_usm_h%ns) )
+                        surf_usm_h%t_surf_green_av = 0.0_wp
+                    ENDIF
+                    DO  l = 0, 3
+                       IF ( .NOT.  ALLOCATED(surf_usm_v(l)%t_surf_green_av) )  THEN
+                           ALLOCATE( surf_usm_v(l)%t_surf_green_av(1:surf_usm_v(l)%ns) )
+                           surf_usm_v(l)%t_surf_green_av = 0.0_wp
+                       ENDIF
+                    ENDDO
+                
+                CASE ( 'usm_t_surf_whole' )
+!--                 surface temperature for whole surfaces
+                    IF ( .NOT.  ALLOCATED(surf_usm_h%t_surf_whole_av) )  THEN
+                        ALLOCATE( surf_usm_h%t_surf_whole_av(1:surf_usm_h%ns) )
+                        surf_usm_h%t_surf_whole_av = 0.0_wp
+                    ENDIF
+                    DO  l = 0, 3
+                       IF ( .NOT.  ALLOCATED(surf_usm_v(l)%t_surf_whole_av) )  THEN
+                           ALLOCATE( surf_usm_v(l)%t_surf_whole_av(1:surf_usm_v(l)%ns) )
+                           surf_usm_v(l)%t_surf_whole_av = 0.0_wp
+                       ENDIF
+                    ENDDO
+                    
+                CASE ( 'usm_t_surf_10cm' )
+!--                 near surface temperature for whole surfaces
+                    IF ( .NOT.  ALLOCATED(surf_usm_h%t_surf_10cm_av) )  THEN
+                        ALLOCATE( surf_usm_h%t_surf_10cm_av(1:surf_usm_h%ns) )
+                        surf_usm_h%t_surf_10cm_av = 0.0_wp
+                    ENDIF
+                    DO  l = 0, 3
+                       IF ( .NOT.  ALLOCATED(surf_usm_v(l)%t_surf_10cm_av) )  THEN
+                           ALLOCATE( surf_usm_v(l)%t_surf_10cm_av(1:surf_usm_v(l)%ns) )
+                           surf_usm_v(l)%t_surf_10cm_av = 0.0_wp
+                       ENDIF
+                    ENDDO
+
                 CASE ( 'usm_t_wall' )
 !--                 wall temperature for iwl layer of walls and land
@@ -1290,4 +1462,30 @@
                     ENDDO
 
+                CASE ( 'usm_t_window' )
+!--                 window temperature for iwl layer of walls and land
+                    IF ( .NOT.  ALLOCATED(surf_usm_h%t_window_av) )  THEN
+                        ALLOCATE( surf_usm_h%t_window_av(nzb_wall:nzt_wall,1:surf_usm_h%ns) )
+                        surf_usm_h%t_window_av = 0.0_wp
+                    ENDIF
+                    DO  l = 0, 3
+                       IF ( .NOT.  ALLOCATED(surf_usm_v(l)%t_window_av) )  THEN
+                           ALLOCATE( surf_usm_v(l)%t_window_av(nzb_wall:nzt_wall,1:surf_usm_v(l)%ns) )
+                           surf_usm_v(l)%t_window_av = 0.0_wp
+                       ENDIF
+                    ENDDO
+
+                CASE ( 'usm_t_green' )
+!--                 green temperature for iwl layer of walls and land
+                    IF ( .NOT.  ALLOCATED(surf_usm_h%t_green_av) )  THEN
+                        ALLOCATE( surf_usm_h%t_green_av(nzb_wall:nzt_wall,1:surf_usm_h%ns) )
+                        surf_usm_h%t_green_av = 0.0_wp
+                    ENDIF
+                    DO  l = 0, 3
+                       IF ( .NOT.  ALLOCATED(surf_usm_v(l)%t_green_av) )  THEN
+                           ALLOCATE( surf_usm_v(l)%t_green_av(nzb_wall:nzt_wall,1:surf_usm_v(l)%ns) )
+                           surf_usm_v(l)%t_green_av = 0.0_wp
+                       ENDIF
+                    ENDDO
+
                CASE DEFAULT
                    CONTINUE
@@ -1451,4 +1649,64 @@
                     ENDDO
                     
+                CASE ( 'usm_wghf_window' )
+!--                 array of heat flux from window ground (wall, roof, land)
+                    DO  m = 1, surf_usm_h%ns
+                       surf_usm_h%wghf_eb_window_av(m) =                              &
+                                          surf_usm_h%wghf_eb_window_av(m) +           &
+                                          surf_usm_h%wghf_eb_window(m)
+                    ENDDO
+                    DO  l = 0, 3
+                       DO  m = 1, surf_usm_v(l)%ns
+                          surf_usm_v(l)%wghf_eb_window_av(m) =                        &
+                                          surf_usm_v(l)%wghf_eb_window_av(m) +        &
+                                          surf_usm_v(l)%wghf_eb_window(m)
+                       ENDDO
+                    ENDDO
+
+                CASE ( 'usm_wghf_green' )
+!--                 array of heat flux from green ground (wall, roof, land)
+                    DO  m = 1, surf_usm_h%ns
+                       surf_usm_h%wghf_eb_green_av(m) =                              &
+                                          surf_usm_h%wghf_eb_green_av(m) +           &
+                                          surf_usm_h%wghf_eb_green(m)
+                    ENDDO
+                    DO  l = 0, 3
+                       DO  m = 1, surf_usm_v(l)%ns
+                          surf_usm_v(l)%wghf_eb_green_av(m) =                        &
+                                          surf_usm_v(l)%wghf_eb_green_av(m) +        &
+                                          surf_usm_v(l)%wghf_eb_green(m)
+                       ENDDO
+                    ENDDO
+                    
+                CASE ( 'usm_iwghf' )
+!--                 array of heat flux from indoor ground (wall, roof, land)
+                    DO  m = 1, surf_usm_h%ns
+                       surf_usm_h%iwghf_eb_av(m) =                              &
+                                          surf_usm_h%iwghf_eb_av(m) +           &
+                                          surf_usm_h%iwghf_eb(m)
+                    ENDDO
+                    DO  l = 0, 3
+                       DO  m = 1, surf_usm_v(l)%ns
+                          surf_usm_v(l)%iwghf_eb_av(m) =                        &
+                                          surf_usm_v(l)%iwghf_eb_av(m) +        &
+                                          surf_usm_v(l)%iwghf_eb(m)
+                       ENDDO
+                    ENDDO
+                    
+                CASE ( 'usm_iwghf_window' )
+!--                 array of heat flux from indoor window ground (wall, roof, land)
+                    DO  m = 1, surf_usm_h%ns
+                       surf_usm_h%iwghf_eb_window_av(m) =                              &
+                                          surf_usm_h%iwghf_eb_window_av(m) +           &
+                                          surf_usm_h%iwghf_eb_window(m)
+                    ENDDO
+                    DO  l = 0, 3
+                       DO  m = 1, surf_usm_v(l)%ns
+                          surf_usm_v(l)%iwghf_eb_window_av(m) =                        &
+                                          surf_usm_v(l)%iwghf_eb_window_av(m) +        &
+                                          surf_usm_v(l)%iwghf_eb_window(m)
+                       ENDDO
+                    ENDDO
+                    
                 CASE ( 'usm_t_surf' )
 !--                 surface temperature for surfaces
@@ -1465,4 +1723,65 @@
                        ENDDO
                     ENDDO
+                    
+                CASE ( 'usm_t_surf_window' )
+!--                 surface temperature for window surfaces
+                    DO  m = 1, surf_usm_h%ns
+                       surf_usm_h%t_surf_window_av(m) =                               & 
+                                          surf_usm_h%t_surf_window_av(m) +            &
+                                          t_surf_window_h(m)
+                    ENDDO
+                    DO  l = 0, 3
+                       DO  m = 1, surf_usm_v(l)%ns
+                          surf_usm_v(l)%t_surf_window_av(m) =                         &
+                                          surf_usm_v(l)%t_surf_window_av(m) +         &
+                                          t_surf_window_v(l)%t(m)
+                       ENDDO
+                    ENDDO
+                    
+                CASE ( 'usm_t_surf_green' )
+!--                 surface temperature for green surfaces
+                    DO  m = 1, surf_usm_h%ns
+                       surf_usm_h%t_surf_green_av(m) =                               & 
+                                          surf_usm_h%t_surf_green_av(m) +            &
+                                          t_surf_green_h(m)
+                    ENDDO
+                    DO  l = 0, 3
+                       DO  m = 1, surf_usm_v(l)%ns
+                          surf_usm_v(l)%t_surf_green_av(m) =                         &
+                                          surf_usm_v(l)%t_surf_green_av(m) +         &
+                                          t_surf_green_v(l)%t(m)
+                       ENDDO
+                    ENDDO
+                
+                CASE ( 'usm_t_surf_whole' )
+!--                 surface temperature for whole surfaces
+                    DO  m = 1, surf_usm_h%ns
+                       surf_usm_h%t_surf_whole_av(m) =                               & 
+                                          surf_usm_h%t_surf_whole_av(m) +            &
+                                          t_surf_whole_h(m)
+                    ENDDO
+                    DO  l = 0, 3
+                       DO  m = 1, surf_usm_v(l)%ns
+                          surf_usm_v(l)%t_surf_whole_av(m) =                         &
+                                          surf_usm_v(l)%t_surf_whole_av(m) +         &
+                                          t_surf_whole_v(l)%t(m)
+                       ENDDO
+                    ENDDO
+                    
+                CASE ( 'usm_t_surf_10cm' )
+!--                 near surface temperature for whole surfaces
+                    DO  m = 1, surf_usm_h%ns
+                       surf_usm_h%t_surf_10cm_av(m) =                               & 
+                                          surf_usm_h%t_surf_10cm_av(m) +            &
+                                          t_surf_10cm_h(m)
+                    ENDDO
+                    DO  l = 0, 3
+                       DO  m = 1, surf_usm_v(l)%ns
+                          surf_usm_v(l)%t_surf_10cm_av(m) =                         &
+                                          surf_usm_v(l)%t_surf_10cm_av(m) +         &
+                                          t_surf_10cm_v(l)%t(m)
+                       ENDDO
+                    ENDDO
+
                     
                 CASE ( 'usm_t_wall' )
@@ -1481,4 +1800,34 @@
                     ENDDO
                     
+                CASE ( 'usm_t_window' )
+!--                 window temperature for  iwl layer of walls and land
+                    DO  m = 1, surf_usm_h%ns
+                       surf_usm_h%t_window_av(iwl,m) =                           &
+                                          surf_usm_h%t_window_av(iwl,m) +        &
+                                          t_window_h(iwl,m)
+                    ENDDO
+                    DO  l = 0, 3
+                       DO  m = 1, surf_usm_v(l)%ns
+                          surf_usm_v(l)%t_window_av(iwl,m) =                     &
+                                          surf_usm_v(l)%t_window_av(iwl,m) +     &
+                                          t_window_v(l)%t(iwl,m)
+                       ENDDO
+                    ENDDO
+
+                CASE ( 'usm_t_green' )
+!--                 green temperature for  iwl layer of walls and land
+                    DO  m = 1, surf_usm_h%ns
+                       surf_usm_h%t_green_av(iwl,m) =                           &
+                                          surf_usm_h%t_green_av(iwl,m) +        &
+                                          t_green_h(iwl,m)
+                    ENDDO
+                    DO  l = 0, 3
+                       DO  m = 1, surf_usm_v(l)%ns
+                          surf_usm_v(l)%t_green_av(iwl,m) =                     &
+                                          surf_usm_v(l)%t_green_av(iwl,m) +     &
+                                          t_green_v(l)%t(iwl,m)
+                       ENDDO
+                    ENDDO
+
                 CASE DEFAULT
                     CONTINUE
@@ -1638,4 +1987,64 @@
                     ENDDO
                     
+                CASE ( 'usm_wghf_window' )
+!--                 array of heat flux from window ground (wall, roof, land)
+                    DO  m = 1, surf_usm_h%ns
+                       surf_usm_h%wghf_eb_window_av(m) =                              &
+                                          surf_usm_h%wghf_eb_window_av(m) /           &
+                                          REAL( average_count_3d, kind=wp )
+                    ENDDO
+                    DO  l = 0, 3
+                       DO  m = 1, surf_usm_v(l)%ns
+                          surf_usm_v(l)%wghf_eb_window_av(m) =                        &
+                                          surf_usm_v(l)%wghf_eb_window_av(m) /        &
+                                          REAL( average_count_3d, kind=wp )
+                       ENDDO
+                    ENDDO
+
+                CASE ( 'usm_wghf_green' )
+!--                 array of heat flux from green ground (wall, roof, land)
+                    DO  m = 1, surf_usm_h%ns
+                       surf_usm_h%wghf_eb_green_av(m) =                              &
+                                          surf_usm_h%wghf_eb_green_av(m) /           &
+                                          REAL( average_count_3d, kind=wp )
+                    ENDDO
+                    DO  l = 0, 3
+                       DO  m = 1, surf_usm_v(l)%ns
+                          surf_usm_v(l)%wghf_eb_green_av(m) =                        &
+                                          surf_usm_v(l)%wghf_eb_green_av(m) /        &
+                                          REAL( average_count_3d, kind=wp )
+                       ENDDO
+                    ENDDO
+
+                CASE ( 'usm_iwghf' )
+!--                 array of heat flux from indoor ground (wall, roof, land)
+                    DO  m = 1, surf_usm_h%ns
+                       surf_usm_h%iwghf_eb_av(m) =                              &
+                                          surf_usm_h%iwghf_eb_av(m) /           &
+                                          REAL( average_count_3d, kind=wp )
+                    ENDDO
+                    DO  l = 0, 3
+                       DO  m = 1, surf_usm_v(l)%ns
+                          surf_usm_v(l)%iwghf_eb_av(m) =                        &
+                                          surf_usm_v(l)%iwghf_eb_av(m) /        &
+                                          REAL( average_count_3d, kind=wp )
+                       ENDDO
+                    ENDDO
+                    
+                CASE ( 'usm_iwghf_window' )
+!--                 array of heat flux from indoor window ground (wall, roof, land)
+                    DO  m = 1, surf_usm_h%ns
+                       surf_usm_h%iwghf_eb_window_av(m) =                              &
+                                          surf_usm_h%iwghf_eb_window_av(m) /           &
+                                          REAL( average_count_3d, kind=wp )
+                    ENDDO
+                    DO  l = 0, 3
+                       DO  m = 1, surf_usm_v(l)%ns
+                          surf_usm_v(l)%iwghf_eb_window_av(m) =                        &
+                                          surf_usm_v(l)%iwghf_eb_window_av(m) /        &
+                                          REAL( average_count_3d, kind=wp )
+                       ENDDO
+                    ENDDO
+                    
                 CASE ( 'usm_t_surf' )
 !--                 surface temperature for surfaces
@@ -1649,4 +2058,64 @@
                           surf_usm_v(l)%t_surf_av(m) =                         &
                                           surf_usm_v(l)%t_surf_av(m) /         &
+                                          REAL( average_count_3d, kind=wp )
+                       ENDDO
+                    ENDDO
+                    
+                CASE ( 'usm_t_surf_window' )
+!--                 surface temperature for window surfaces
+                    DO  m = 1, surf_usm_h%ns
+                       surf_usm_h%t_surf_window_av(m) =                               & 
+                                          surf_usm_h%t_surf_window_av(m) /            &
+                                          REAL( average_count_3d, kind=wp )
+                    ENDDO
+                    DO  l = 0, 3
+                       DO  m = 1, surf_usm_v(l)%ns
+                          surf_usm_v(l)%t_surf_window_av(m) =                         &
+                                          surf_usm_v(l)%t_surf_window_av(m) /         &
+                                          REAL( average_count_3d, kind=wp )
+                       ENDDO
+                    ENDDO
+                    
+                CASE ( 'usm_t_surf_green' )
+!--                 surface temperature for green surfaces
+                    DO  m = 1, surf_usm_h%ns
+                       surf_usm_h%t_surf_green_av(m) =                               & 
+                                          surf_usm_h%t_surf_green_av(m) /            &
+                                          REAL( average_count_3d, kind=wp )
+                    ENDDO
+                    DO  l = 0, 3
+                       DO  m = 1, surf_usm_v(l)%ns
+                          surf_usm_v(l)%t_surf_green_av(m) =                         &
+                                          surf_usm_v(l)%t_surf_green_av(m) /         &
+                                          REAL( average_count_3d, kind=wp )
+                       ENDDO
+                    ENDDO
+                    
+                CASE ( 'usm_t_surf_whole' )
+!--                 surface temperature for whole surfaces
+                    DO  m = 1, surf_usm_h%ns
+                       surf_usm_h%t_surf_whole_av(m) =                               & 
+                                          surf_usm_h%t_surf_whole_av(m) /            &
+                                          REAL( average_count_3d, kind=wp )
+                    ENDDO
+                    DO  l = 0, 3
+                       DO  m = 1, surf_usm_v(l)%ns
+                          surf_usm_v(l)%t_surf_whole_av(m) =                         &
+                                          surf_usm_v(l)%t_surf_whole_av(m) /         &
+                                          REAL( average_count_3d, kind=wp )
+                       ENDDO
+                    ENDDO
+                    
+                CASE ( 'usm_t_surf_10cm' )
+!--                 near surface temperature for whole surfaces
+                    DO  m = 1, surf_usm_h%ns
+                       surf_usm_h%t_surf_10cm_av(m) =                               & 
+                                          surf_usm_h%t_surf_10cm_av(m) /            &
+                                          REAL( average_count_3d, kind=wp )
+                    ENDDO
+                    DO  l = 0, 3
+                       DO  m = 1, surf_usm_v(l)%ns
+                          surf_usm_v(l)%t_surf_10cm_av(m) =                         &
+                                          surf_usm_v(l)%t_surf_10cm_av(m) /         &
                                           REAL( average_count_3d, kind=wp )
                        ENDDO
@@ -1668,4 +2137,35 @@
                     ENDDO
 
+                CASE ( 'usm_t_window' )
+!--                 window temperature for  iwl layer of walls and land
+                    DO  m = 1, surf_usm_h%ns
+                       surf_usm_h%t_window_av(iwl,m) =                           &
+                                          surf_usm_h%t_window_av(iwl,m) /        &
+                                          REAL( average_count_3d, kind=wp )
+                    ENDDO
+                    DO  l = 0, 3
+                       DO  m = 1, surf_usm_v(l)%ns
+                          surf_usm_v(l)%t_window_av(iwl,m) =                     &
+                                          surf_usm_v(l)%t_window_av(iwl,m) /     &
+                                          REAL( average_count_3d, kind=wp )
+                       ENDDO
+                    ENDDO
+
+                CASE ( 'usm_t_green' )
+!--                 green temperature for  iwl layer of walls and land
+                    DO  m = 1, surf_usm_h%ns
+                       surf_usm_h%t_green_av(iwl,m) =                           &
+                                          surf_usm_h%t_green_av(iwl,m) /        &
+                                          REAL( average_count_3d, kind=wp )
+                    ENDDO
+                    DO  l = 0, 3
+                       DO  m = 1, surf_usm_v(l)%ns
+                          surf_usm_v(l)%t_green_av(iwl,m) =                     &
+                                          surf_usm_v(l)%t_green_av(iwl,m) /     &
+                                          REAL( average_count_3d, kind=wp )
+                       ENDDO
+                    ENDDO
+
+
            END SELECT
 
@@ -1675,661 +2175,44 @@
 
 
-!------------------------------------------------------------------------------!
-!> Calculates radiation absorbed by box with given size and LAD.
-!>
-!> Simulates resol**2 rays (by equally spacing a bounding horizontal square
-!> conatining all possible rays that would cross the box) and calculates
-!> average transparency per ray. Returns fraction of absorbed radiation flux
-!> and area for which this fraction is effective.
-!------------------------------------------------------------------------------!
-    PURE SUBROUTINE usm_box_absorb(boxsize, resol, dens, uvec, area, absorb)
-        IMPLICIT NONE
-
-        REAL(wp), DIMENSION(3), INTENT(in) :: &
-            boxsize, &      !< z, y, x size of box in m
-            uvec            !< z, y, x unit vector of incoming flux
-        INTEGER(iwp), INTENT(in) :: &
-            resol           !< No. of rays in x and y dimensions
-        REAL(wp), INTENT(in) :: &
-            dens            !< box density (e.g. Leaf Area Density)
-        REAL(wp), INTENT(out) :: &
-            area, &         !< horizontal area for flux absorbtion
-            absorb          !< fraction of absorbed flux
-        REAL(wp) :: &
-            xshift, yshift, &
-            xmin, xmax, ymin, ymax, &
-            xorig, yorig, &
-            dx1, dy1, dz1, dx2, dy2, dz2, &
-            crdist, &
-            transp
-        INTEGER(iwp) :: &
-            i, j
-
-        xshift = uvec(3) / uvec(1) * boxsize(1)
-        xmin = min(0._wp, -xshift)
-        xmax = boxsize(3) + max(0._wp, -xshift)
-        yshift = uvec(2) / uvec(1) * boxsize(1)
-        ymin = min(0._wp, -yshift)
-        ymax = boxsize(2) + max(0._wp, -yshift)
-
-        transp = 0._wp
-        DO i = 1, resol
-            xorig = xmin + (xmax-xmin) * (i-.5_wp) / resol
-            DO j = 1, resol
-                yorig = ymin + (ymax-ymin) * (j-.5_wp) / resol
-
-                dz1 = 0._wp
-                dz2 = boxsize(1)/uvec(1)
-
-                IF ( uvec(2) > 0._wp )  THEN
-                    dy1 = -yorig             / uvec(2) !< crossing with y=0
-                    dy2 = (boxsize(2)-yorig) / uvec(2) !< crossing with y=boxsize(2)
-                ELSE IF ( uvec(2) < 0._wp )  THEN
-                    dy1 = (boxsize(2)-yorig) / uvec(2) !< crossing with y=boxsize(2)
-                    dy2 = -yorig             / uvec(2) !< crossing with y=0
-                ELSE !uvec(2)==0
-                    dy1 = -huge(1._wp)
-                    dy2 = huge(1._wp)
-                ENDIF
-
-                IF ( uvec(3) > 0._wp )  THEN
-                    dx1 = -xorig             / uvec(3) !< crossing with x=0
-                    dx2 = (boxsize(3)-xorig) / uvec(3) !< crossing with x=boxsize(3)
-                ELSE IF ( uvec(3) < 0._wp )  THEN
-                    dx1 = (boxsize(3)-xorig) / uvec(3) !< crossing with x=boxsize(3)
-                    dx2 = -xorig             / uvec(3) !< crossing with x=0
-                ELSE !uvec(1)==0
-                    dx1 = -huge(1._wp)
-                    dx2 = huge(1._wp)
-                ENDIF
-
-                crdist = max(0._wp, (min(dz2, dy2, dx2) - max(dz1, dy1, dx1)))
-                transp = transp + exp(-ext_coef * dens * crdist)
-            ENDDO
-        ENDDO
-        transp = transp / resol**2
-        area = (boxsize(3)+xshift)*(boxsize(2)+yshift)
-        absorb = 1._wp - transp
-        
-    END SUBROUTINE usm_box_absorb
-    
-    
+
 !------------------------------------------------------------------------------!
 ! Description:
 ! ------------
-!> This subroutine splits direct and diffusion dw radiation
-!> It sould not be called in case the radiation model already does it
-!> It follows <CITATION>
+!> Set internal Neumann boundary condition at outer soil grid points 
+!> for temperature and humidity. 
 !------------------------------------------------------------------------------!
-    SUBROUTINE usm_calc_diffusion_radiation 
-    
-        REAL(wp), PARAMETER                          :: lowest_solarUp = 0.1_wp  !< limit the sun elevation to protect stability of the calculation
-        INTEGER(iwp)                                 :: i, j
-        REAL(wp)                                     ::  year_angle              !< angle
-        REAL(wp)                                     ::  etr                     !< extraterestrial radiation
-        REAL(wp)                                     ::  corrected_solarUp       !< corrected solar up radiation
-        REAL(wp)                                     ::  horizontalETR           !< horizontal extraterestrial radiation
-        REAL(wp)                                     ::  clearnessIndex          !< clearness index
-        REAL(wp)                                     ::  diff_frac               !< diffusion fraction of the radiation
-
-        
-!--     Calculate current day and time based on the initial values and simulation time
-        year_angle = ( (day_of_year_init * 86400) + time_utc_init              &
-                        + time_since_reference_point )  * d_seconds_year       &
-                        * 2.0_wp * pi
-        
-        etr = solar_constant * (1.00011_wp +                                   &
-                          0.034221_wp * cos(year_angle) +                      &
-                          0.001280_wp * sin(year_angle) +                      &
-                          0.000719_wp * cos(2.0_wp * year_angle) +             &
-                          0.000077_wp * sin(2.0_wp * year_angle))
-        
-!--    
-!--     Under a very low angle, we keep extraterestrial radiation at
-!--     the last small value, therefore the clearness index will be pushed
-!--     towards 0 while keeping full continuity.
-!--    
-        IF ( zenith(0) <= lowest_solarUp )  THEN
-            corrected_solarUp = lowest_solarUp
-        ELSE
-            corrected_solarUp = zenith(0)
-        ENDIF
-        
-        horizontalETR = etr * corrected_solarUp
-        
-        DO i = nxlg, nxrg
-            DO j = nysg, nyng
-                clearnessIndex = rad_sw_in(0,j,i) / horizontalETR
-                diff_frac = 1.0_wp / (1.0_wp + exp(-5.0033_wp + 8.6025_wp * clearnessIndex))
-                rad_sw_in_diff(j,i) = rad_sw_in(0,j,i) * diff_frac
-                rad_sw_in_dir(j,i)  = rad_sw_in(0,j,i) * (1.0_wp - diff_frac)
-                rad_lw_in_diff(j,i) = rad_lw_in(0,j,i)
-            ENDDO
-        ENDDO
-        
-    END SUBROUTINE usm_calc_diffusion_radiation
-    
-
-!------------------------------------------------------------------------------!
-! Description:
-! ------------
-!> Calculates shape view factors SVF and plant sink canopy factors PSCF
-!> !!!!!DESCRIPTION!!!!!!!!!!
-!------------------------------------------------------------------------------!
-    SUBROUTINE usm_calc_svf
-    
-        IMPLICIT NONE
-        
-        INTEGER(iwp)                                :: i, j, k, l, d, ip, jp
-        INTEGER(iwp)                                :: isvf, ksvf, icsf, kcsf, npcsfl, isvf_surflt, imrtt, imrtf
-        INTEGER(iwp)                                :: sd, td, ioln, iproc
-        REAL(wp),     DIMENSION(0:9)                :: facearea
-        INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE   :: nzterrl, planthl
-        REAL(wp),     DIMENSION(:,:), ALLOCATABLE   :: csflt, pcsflt
-        INTEGER(iwp), DIMENSION(:,:), ALLOCATABLE   :: kcsflt,kpcsflt
-        INTEGER(iwp), DIMENSION(:), ALLOCATABLE     :: icsflt,dcsflt,ipcsflt,dpcsflt
-        REAL(wp), DIMENSION(3)                      :: uv
-        LOGICAL                                     :: visible
-        REAL(wp), DIMENSION(3)                      :: sa, ta          !< real coordinates z,y,x of source and target
-        REAL(wp)                                    :: transparency, rirrf, sqdist, svfsum
-        INTEGER(iwp)                                :: isurflt, isurfs, isurflt_prev
-        INTEGER(iwp)                                :: itx, ity, itz
-        CHARACTER(len=7)                            :: pid_char = ''
-        INTEGER(iwp)                                :: win_lad, minfo
-        REAL(wp), DIMENSION(:,:,:), POINTER         :: lad_s_rma       !< fortran pointer, but lower bounds are 1
-        TYPE(c_ptr)                                 :: lad_s_rma_p     !< allocated c pointer
-#if defined( __parallel )
-        INTEGER(kind=MPI_ADDRESS_KIND)              :: size_lad_rma
-#endif
-!    
-!--     calculation of the SVF
-        CALL location_message( '    calculation of SVF and CSF', .TRUE. )
-!
-!--     precalculate face areas for different face directions using normal vector
-        DO d = 0, 9
-            facearea(d) = 1._wp
-            IF ( idir(d) == 0 ) facearea(d) = facearea(d) * dx
-            IF ( jdir(d) == 0 ) facearea(d) = facearea(d) * dy
-            IF ( kdir(d) == 0 ) facearea(d) = facearea(d) * dz
-        ENDDO
-
-!--     initialize variables and temporary arrays for calculation of svf and csf
-        nsvfl  = 0
-        ncsfl  = 0
-        nsvfla = gasize
-        msvf   = 1
-        ALLOCATE( asvf1(nsvfla) )
-        asvf => asvf1
-        IF ( plant_canopy )  THEN
-            ncsfla = gasize
-            mcsf   = 1
-            ALLOCATE( acsf1(ncsfla) )
-            acsf => acsf1
-        ENDIF
-        
-!--     initialize temporary terrain and plant canopy height arrays (global 2D array!)
-        ALLOCATE( nzterr(0:(nx+1)*(ny+1)-1) )
-#if defined( __parallel )
-        ALLOCATE( nzterrl(nys:nyn,nxl:nxr) )
-        nzterrl = MAXLOC(                                                      &
-                          MERGE( 1, 0,                                         &
-                                 BTEST( wall_flags_0(:,nys:nyn,nxl:nxr), 12 )  &
-                               ), DIM = 1                                      &
-                        ) - 1  ! = nzb_s_inner(nys:nyn,nxl:nxr)
-        CALL MPI_AllGather( nzterrl, nnx*nny, MPI_INTEGER, &
-                            nzterr, nnx*nny, MPI_INTEGER, comm2d, ierr )
-        DEALLOCATE(nzterrl)
-#else
-        nzterr = RESHAPE( MAXLOC(                                              &
-                          MERGE( 1, 0,                                         &
-                                 BTEST( wall_flags_0(:,nys:nyn,nxl:nxr), 12 )  &
-                               ), DIM = 1                                      &
-                                ) - 1,                                         &
-                          (/(nx+1)*(ny+1)/)                                    &
-                        )
-#endif
-        IF ( plant_canopy )  THEN
-            ALLOCATE( plantt(0:(nx+1)*(ny+1)-1) )
-            maxboxesg = nx + ny + nzu + 1
-!--         temporary arrays storing values for csf calculation during raytracing
-            ALLOCATE( boxes(3, maxboxesg) )
-            ALLOCATE( crlens(maxboxesg) )
-
-#if defined( __parallel )
-            ALLOCATE( planthl(nys:nyn,nxl:nxr) )
-            planthl = pch(nys:nyn,nxl:nxr)
-        
-            CALL MPI_AllGather( planthl, nnx*nny, MPI_INTEGER, &
-                                plantt, nnx*nny, MPI_INTEGER, comm2d, ierr )
-            DEALLOCATE( planthl )
-            
-!--         temporary arrays storing values for csf calculation during raytracing
-            ALLOCATE( lad_ip(maxboxesg) )
-            ALLOCATE( lad_disp(maxboxesg) )
-
-            IF ( usm_lad_rma )  THEN
-                ALLOCATE( lad_s_ray(maxboxesg) )
-                
-                ! set conditions for RMA communication
-                CALL MPI_Info_create(minfo, ierr)
-                CALL MPI_Info_set(minfo, 'accumulate_ordering', '', ierr)
-                CALL MPI_Info_set(minfo, 'accumulate_ops', 'same_op', ierr)
-                CALL MPI_Info_set(minfo, 'same_size', 'true', ierr)
-                CALL MPI_Info_set(minfo, 'same_disp_unit', 'true', ierr)
-
-!--             Allocate and initialize the MPI RMA window
-!--             must be in accordance with allocation of lad_s in plant_canopy_model
-!--             optimization of memory should be done
-!--             Argument X of function c_sizeof(X) needs arbitrary REAL(wp) value, set to 1.0_wp for now
-                size_lad_rma = c_sizeof(1.0_wp)*nnx*nny*nzu
-                CALL MPI_Win_allocate(size_lad_rma, c_sizeof(1.0_wp), minfo, comm2d, &
-                                        lad_s_rma_p, win_lad, ierr)
-                CALL c_f_pointer(lad_s_rma_p, lad_s_rma, (/ nzu, nny, nnx /))
-                usm_lad(nzub:, nys:, nxl:) => lad_s_rma(:,:,:)
-            ELSE
-                ALLOCATE(usm_lad(nzub:nzut, nys:nyn, nxl:nxr))
-            ENDIF
-#else
-            plantt = RESHAPE( pct(nys:nyn,nxl:nxr), (/(nx+1)*(ny+1)/) )
-            ALLOCATE(usm_lad(nzub:nzut, nys:nyn, nxl:nxr))
-#endif
-            usm_lad(:,:,:) = 0._wp
-            DO i = nxl, nxr
-                DO j = nys, nyn
-                    k = get_topography_top_index( j, i, 's' )
-
-                    usm_lad(k:nzut, j, i) = lad_s(0:nzut-k, j, i)
-                ENDDO
-            ENDDO
-
-#if defined( __parallel )
-            IF ( usm_lad_rma )  THEN
-                CALL MPI_Info_free(minfo, ierr)
-                CALL MPI_Win_lock_all(0, win_lad, ierr)
-            ELSE
-                ALLOCATE( usm_lad_g(0:(nx+1)*(ny+1)*nzu-1) )
-                CALL MPI_AllGather( usm_lad, nnx*nny*nzu, MPI_REAL, &
-                                    usm_lad_g, nnx*nny*nzu, MPI_REAL, comm2d, ierr )
-            ENDIF
-#endif
-        ENDIF
-
-        IF ( mrt_factors )  THEN
-            OPEN(153, file='MRT_TARGETS', access='SEQUENTIAL', &
-                    action='READ', status='OLD', form='FORMATTED', err=524)
-            OPEN(154, file='MRT_FACTORS'//myid_char, access='DIRECT', recl=(5*4+2*8), &
-                    action='WRITE', status='REPLACE', form='UNFORMATTED', err=525)
-            imrtf = 1
-            DO
-                READ(153, *, end=526, err=524) imrtt, i, j, k
-                IF ( i < nxl  .OR.  i > nxr &
-                     .OR.  j < nys  .OR.  j > nyn ) CYCLE
-                ta = (/ REAL(k), REAL(j), REAL(i) /)
-
-                DO isurfs = 1, nsurf
-                    IF ( .NOT.  usm_facing(i, j, k, -1, &
-                        surf(ix, isurfs), surf(iy, isurfs), &
-                        surf(iz, isurfs), surf(id, isurfs)) )  THEN
-                        CYCLE
-                    ENDIF
-                      
-                    sd = surf(id, isurfs)
-                    sa = (/ REAL(surf(iz, isurfs), wp) - 0.5_wp * kdir(sd), &
-                            REAL(surf(iy, isurfs), wp) - 0.5_wp * jdir(sd), &
-                            REAL(surf(ix, isurfs), wp) - 0.5_wp * idir(sd) /)
-
-!--                 unit vector source -> target
-                    uv = (/ (ta(1)-sa(1))*dz, (ta(2)-sa(2))*dy, (ta(3)-sa(3))*dx /)
-                    sqdist = SUM(uv(:)**2)
-                    uv = uv / SQRT(sqdist)
-
-!--                 irradiance factor - see svf. Here we consider that target face is always normal,
-!--                 i.e. the second dot product equals 1
-                    rirrf = dot_product((/ kdir(sd), jdir(sd), idir(sd) /), uv) &
-                        / (pi * sqdist) * facearea(sd)
-
-!--                 raytrace while not creating any canopy sink factors
-                    CALL usm_raytrace(sa, ta, isurfs, rirrf, 1._wp, .FALSE., &
-                            visible, transparency, win_lad)
-                    IF ( .NOT.  visible ) CYCLE
-
-                    !rsvf = rirrf * transparency
-                    WRITE(154, rec=imrtf, err=525) INT(imrtt, kind=4), &
-                        INT(surf(id, isurfs), kind=4), &
-                        INT(surf(iz, isurfs), kind=4), &
-                        INT(surf(iy, isurfs), kind=4), &
-                        INT(surf(ix, isurfs), kind=4), &
-                        REAL(rirrf, kind=8), REAL(transparency, kind=8)
-                    imrtf = imrtf + 1
-
-                ENDDO !< isurfs
-            ENDDO !< MRT_TARGETS record
-
-524         message_string = 'error reading file MRT_TARGETS'
-            CALL message( 'usm_calc_svf', 'PA0524', 1, 2, 0, 6, 0 )
-
-525         message_string = 'error writing file MRT_FACTORS'//myid_char
-            CALL message( 'usm_calc_svf', 'PA0525', 1, 2, 0, 6, 0 )
-
-526         CLOSE(153)
-            CLOSE(154)
-        ENDIF  !< mrt_factors
-
-        
-        DO isurflt = 1, nsurfl
-!--         determine face centers
-            td = surfl(id, isurflt)
-            IF ( td >= isky  .AND.  .NOT.  plant_canopy ) CYCLE
-            ta = (/ REAL(surfl(iz, isurflt), wp) - 0.5_wp * kdir(td),  &
-                      REAL(surfl(iy, isurflt), wp) - 0.5_wp * jdir(td),  &
-                      REAL(surfl(ix, isurflt), wp) - 0.5_wp * idir(td)  /)
-            DO isurfs = 1, nsurf
-                IF ( .NOT.  usm_facing(surfl(ix, isurflt), surfl(iy, isurflt), &
-                    surfl(iz, isurflt), surfl(id, isurflt), &
-                    surf(ix, isurfs), surf(iy, isurfs), &
-                    surf(iz, isurfs), surf(id, isurfs)) )  THEN
-                    CYCLE
-                ENDIF
-                  
-                sd = surf(id, isurfs)
-                sa = (/ REAL(surf(iz, isurfs), wp) - 0.5_wp * kdir(sd),  &
-                        REAL(surf(iy, isurfs), wp) - 0.5_wp * jdir(sd),  &
-                        REAL(surf(ix, isurfs), wp) - 0.5_wp * idir(sd)  /)
-
-!--             unit vector source -> target
-                uv = (/ (ta(1)-sa(1))*dz, (ta(2)-sa(2))*dy, (ta(3)-sa(3))*dx /)
-                sqdist = SUM(uv(:)**2)
-                uv = uv / SQRT(sqdist)
-                
-!--             irradiance factor (our unshaded shape view factor) = view factor per differential target area * source area
-                rirrf = dot_product((/ kdir(sd), jdir(sd), idir(sd) /), uv) & ! cosine of source normal and direction
-                    * dot_product((/ kdir(td), jdir(td), idir(td) /), -uv) &  ! cosine of target normal and reverse direction
-                    / (pi * sqdist) & ! square of distance between centers
-                    * facearea(sd)
-
-!--             raytrace + process plant canopy sinks within
-                CALL usm_raytrace(sa, ta, isurfs, rirrf, facearea(td), .TRUE., &
-                        visible, transparency, win_lad)
-                
-                IF ( .NOT.  visible ) CYCLE
-                IF ( td >= isky ) CYCLE !< we calculated these only for raytracing
-                                        !< to find plant canopy sinks, we don't need svf for them
-                ! rsvf = rirrf * transparency
-
-!--             write to the svf array
-                nsvfl = nsvfl + 1
-!--             check dimmension of asvf array and enlarge it if needed
-                IF ( nsvfla < nsvfl )  THEN
-                    k = nsvfla * 2
-                    IF ( msvf == 0 )  THEN
-                        msvf = 1
-                        ALLOCATE( asvf1(k) )
-                        asvf => asvf1
-                        asvf1(1:nsvfla) = asvf2
-                        DEALLOCATE( asvf2 )
-                    ELSE
-                        msvf = 0
-                        ALLOCATE( asvf2(k) )
-                        asvf => asvf2
-                        asvf2(1:nsvfla) = asvf1
-                        DEALLOCATE( asvf1 )
-                    ENDIF
-                    nsvfla = k
-                ENDIF
-!--             write svf values into the array
-                asvf(nsvfl)%isurflt = isurflt
-                asvf(nsvfl)%isurfs = isurfs
-                asvf(nsvfl)%rsvf = rirrf !we postopne multiplication by transparency
-                asvf(nsvfl)%rtransp = transparency !a.k.a. Direct Irradiance Factor
-            ENDDO
-        ENDDO
-
-        CALL location_message( '    waiting for completion of SVF and CSF calculation in all processes', .TRUE. )
-!--     deallocate temporary global arrays
-        DEALLOCATE(nzterr)
-        
-        IF ( plant_canopy )  THEN
-!--         finalize mpi_rma communication and deallocate temporary arrays
-#if defined( __parallel )
-            IF ( usm_lad_rma )  THEN
-                CALL MPI_Win_flush_all(win_lad, ierr)
-!--             unlock MPI window
-                CALL MPI_Win_unlock_all(win_lad, ierr)
-!--             free MPI window
-                CALL MPI_Win_free(win_lad, ierr)
-                
-!--             deallocate temporary arrays storing values for csf calculation during raytracing
-                DEALLOCATE( lad_s_ray )
-!--             usm_lad is the pointer to lad_s_rma in case of usm_lad_rma
-!--             and must not be deallocated here
-            ELSE
-                DEALLOCATE(usm_lad)
-                DEALLOCATE(usm_lad_g)
-            ENDIF
-#else
-            DEALLOCATE(usm_lad)
-#endif
-            DEALLOCATE( boxes )
-            DEALLOCATE( crlens )
-            DEALLOCATE( plantt )
-        ENDIF
-
-        CALL location_message( '    calculation of the complete SVF array', .TRUE. )
-
-!--     sort svf ( a version of quicksort )
-        CALL quicksort_svf(asvf,1,nsvfl)
-
-        ALLOCATE( svf(ndsvf,nsvfl) )
-        ALLOCATE( svfsurf(idsvf,nsvfl) )
-
-        !< load svf from the structure array to plain arrays
-        isurflt_prev = -1
-        ksvf = 1
-        svfsum = 0._wp
-        DO isvf = 1, nsvfl
-!--         normalize svf per target face
-            IF ( asvf(ksvf)%isurflt /= isurflt_prev )  THEN
-                IF ( isurflt_prev /= -1  .AND.  svfsum /= 0._wp )  THEN
-!--                 TODO detect and log when normalization differs too much from 1
-                    svf(1, isvf_surflt:isvf-1) = svf(1, isvf_surflt:isvf-1) / svfsum
-                ENDIF
-                isurflt_prev = asvf(ksvf)%isurflt
-                isvf_surflt = isvf
-                svfsum = asvf(ksvf)%rsvf !?? / asvf(ksvf)%rtransp
-            ELSE
-                svfsum = svfsum + asvf(ksvf)%rsvf !?? / asvf(ksvf)%rtransp
-            ENDIF
-
-            svf(:, isvf) = (/ asvf(ksvf)%rsvf, asvf(ksvf)%rtransp /)
-            svfsurf(:, isvf) = (/ asvf(ksvf)%isurflt, asvf(ksvf)%isurfs /)
-
-!--         next element
-            ksvf = ksvf + 1
-        ENDDO
-
-        IF ( isurflt_prev /= -1  .AND.  svfsum /= 0._wp )  THEN
-!--         TODO detect and log when normalization differs too much from 1
-            svf(1, isvf_surflt:nsvfl) = svf(1, isvf_surflt:nsvfl) / svfsum
-        ENDIF
-
-!--     deallocate temporary asvf array
-!--     DEALLOCATE(asvf) - ifort has a problem with deallocation of allocatable target
-!--     via pointing pointer - we need to test original targets
-        IF ( ALLOCATED(asvf1) )  THEN
-            DEALLOCATE(asvf1)
-        ENDIF
-        IF ( ALLOCATED(asvf2) )  THEN
-            DEALLOCATE(asvf2)
-        ENDIF
-
-        npcsfl = 0
-        IF ( plant_canopy )  THEN
-
-            CALL location_message( '    calculation of the complete CSF array', .TRUE. )
-
-!--         sort and merge csf for the last time, keeping the array size to minimum
-            CALL usm_merge_and_grow_csf(-1)
-            
-!--         aggregate csb among processors
-!--         allocate necessary arrays
-            ALLOCATE( csflt(ndcsf,max(ncsfl,ndcsf)) )
-            ALLOCATE( kcsflt(kdcsf,max(ncsfl,kdcsf)) )
-            ALLOCATE( icsflt(0:numprocs-1) )
-            ALLOCATE( dcsflt(0:numprocs-1) )
-            ALLOCATE( ipcsflt(0:numprocs-1) )
-            ALLOCATE( dpcsflt(0:numprocs-1) )
-            
-!--         fill out arrays of csf values and 
-!--         arrays of number of elements and displacements
-!--         for particular precessors
-            icsflt = 0
-            dcsflt = 0
-            ip = -1
-            j = -1
-            d = 0
-            DO kcsf = 1, ncsfl
-                j = j+1
-                IF ( acsf(kcsf)%ip /= ip )  THEN
-!--                 new block of the processor
-!--                 number of elements of previous block
-                    IF ( ip>=0) icsflt(ip) = j
-                    d = d+j
-!--                 blank blocks
-                    DO jp = ip+1, acsf(kcsf)%ip-1
-!--                     number of elements is zero, displacement is equal to previous
-                        icsflt(jp) = 0
-                        dcsflt(jp) = d
-                    ENDDO
-!--                 the actual block
-                    ip = acsf(kcsf)%ip
-                    dcsflt(ip) = d
-                    j = 0
-                ENDIF
-!--             fill out real values of rsvf, rtransp
-                csflt(1,kcsf) = acsf(kcsf)%rsvf
-                csflt(2,kcsf) = acsf(kcsf)%rtransp
-!--             fill out integer values of itz,ity,itx,isurfs
-                kcsflt(1,kcsf) = acsf(kcsf)%itz
-                kcsflt(2,kcsf) = acsf(kcsf)%ity
-                kcsflt(3,kcsf) = acsf(kcsf)%itx
-                kcsflt(4,kcsf) = acsf(kcsf)%isurfs
-            ENDDO
-!--         last blank blocks at the end of array
-            j = j+1
-            IF ( ip>=0 ) icsflt(ip) = j
-            d = d+j
-            DO jp = ip+1, numprocs-1
-!--             number of elements is zero, displacement is equal to previous
-                icsflt(jp) = 0
-                dcsflt(jp) = d
-            ENDDO
-            
-!--         deallocate temporary acsf array
-!--         DEALLOCATE(acsf) - ifort has a problem with deallocation of allocatable target
-!--         via pointing pointer - we need to test original targets
-            IF ( ALLOCATED(acsf1) )  THEN
-                DEALLOCATE(acsf1)
-            ENDIF
-            IF ( ALLOCATED(acsf2) )  THEN
-                DEALLOCATE(acsf2)
-            ENDIF
-                    
-#if defined( __parallel )
-!--         scatter and gather the number of elements to and from all processor
-!--         and calculate displacements
-            CALL MPI_AlltoAll(icsflt,1,MPI_INTEGER,ipcsflt,1,MPI_INTEGER,comm2d, ierr)
-            
-            npcsfl = SUM(ipcsflt)
-            d = 0
-            DO i = 0, numprocs-1
-                dpcsflt(i) = d
-                d = d + ipcsflt(i)
-            ENDDO
-        
-!--         exchange csf fields between processors
-            ALLOCATE( pcsflt(ndcsf,max(npcsfl,ndcsf)) )
-            ALLOCATE( kpcsflt(kdcsf,max(npcsfl,kdcsf)) )
-            CALL MPI_AlltoAllv(csflt, ndcsf*icsflt, ndcsf*dcsflt, MPI_REAL, &
-                pcsflt, ndcsf*ipcsflt, ndcsf*dpcsflt, MPI_REAL, comm2d, ierr)
-            CALL MPI_AlltoAllv(kcsflt, kdcsf*icsflt, kdcsf*dcsflt, MPI_INTEGER, &
-                kpcsflt, kdcsf*ipcsflt, kdcsf*dpcsflt, MPI_INTEGER, comm2d, ierr)
-            
-#else
-            npcsfl = ncsfl
-            ALLOCATE( pcsflt(ndcsf,max(npcsfl,ndcsf)) )
-            ALLOCATE( kpcsflt(kdcsf,max(npcsfl,kdcsf)) )
-            pcsflt = csflt
-            kpcsflt = kcsflt
-#endif
-
-!--         deallocate temporary arrays
-            DEALLOCATE( csflt )
-            DEALLOCATE( kcsflt )
-            DEALLOCATE( icsflt )
-            DEALLOCATE( dcsflt )
-            DEALLOCATE( ipcsflt )
-            DEALLOCATE( dpcsflt )
-
-!--         sort csf ( a version of quicksort )
-            CALL quicksort_csf2(kpcsflt, pcsflt, 1, npcsfl)
-
-!--         aggregate canopy sink factor records with identical box & source
-!--         againg across all values from all processors
-            IF ( npcsfl > 0 )  THEN
-                icsf = 1 !< reading index
-                kcsf = 1 !< writing index
-                DO while (icsf < npcsfl)
-!--                 here kpcsf(kcsf) already has values from kpcsf(icsf)
-                    IF ( kpcsflt(3,icsf) == kpcsflt(3,icsf+1)  .AND.  &
-                         kpcsflt(2,icsf) == kpcsflt(2,icsf+1)  .AND.  &
-                         kpcsflt(1,icsf) == kpcsflt(1,icsf+1)  .AND.  &
-                         kpcsflt(4,icsf) == kpcsflt(4,icsf+1) )  THEN
-!--                     We could simply take either first or second rtransp, both are valid. As a very simple heuristic about which ray
-!--                     probably passes nearer the center of the target box, we choose DIF from the entry with greater CSF, since that
-!--                     might mean that the traced beam passes longer through the canopy box.
-                        IF ( pcsflt(1,kcsf) < pcsflt(1,icsf+1) )  THEN
-                            pcsflt(2,kcsf) = pcsflt(2,icsf+1)
-                        ENDIF
-                        pcsflt(1,kcsf) = pcsflt(1,kcsf) + pcsflt(1,icsf+1)
-
-!--                     advance reading index, keep writing index
-                        icsf = icsf + 1
-                    ELSE
-!--                     not identical, just advance and copy
-                        icsf = icsf + 1
-                        kcsf = kcsf + 1
-                        kpcsflt(:,kcsf) = kpcsflt(:,icsf)
-                        pcsflt(:,kcsf) = pcsflt(:,icsf)
-                    ENDIF
-                ENDDO
-!--             last written item is now also the last item in valid part of array
-                npcsfl = kcsf
-            ENDIF
-
-            ncsfl = npcsfl
-            IF ( ncsfl > 0 )  THEN
-                ALLOCATE( csf(ndcsf,ncsfl) )
-                ALLOCATE( csfsurf(idcsf,ncsfl) )
-                DO icsf = 1, ncsfl
-                    csf(:,icsf) = pcsflt(:,icsf)
-                    csfsurf(1,icsf) =  gridpcbl(kpcsflt(1,icsf),kpcsflt(2,icsf),kpcsflt(3,icsf))
-                    csfsurf(2,icsf) =  kpcsflt(4,icsf)
-                ENDDO
-            ENDIF
-            
-!--         deallocation of temporary arrays
-            DEALLOCATE( pcsflt )
-            DEALLOCATE( kpcsflt )
-            
-        ENDIF
-        
-        RETURN
-        
-301     WRITE( message_string, * )  &
-            'I/O error when processing shape view factors / ',  &
-            'plant canopy sink factors / direct irradiance factors.'
-        CALL message( 'init_urban_surface', 'PA0502', 2, 2, 0, 6, 0 )
-       
-    END SUBROUTINE usm_calc_svf
+ SUBROUTINE usm_boundary_condition
+ 
+    IMPLICIT NONE
+
+    INTEGER(iwp) :: i      !< grid index x-direction
+    INTEGER(iwp) :: ioff   !< offset index x-direction indicating location of soil grid point
+    INTEGER(iwp) :: j      !< grid index y-direction
+    INTEGER(iwp) :: joff   !< offset index x-direction indicating location of soil grid point
+    INTEGER(iwp) :: k      !< grid index z-direction
+    INTEGER(iwp) :: koff   !< offset index x-direction indicating location of soil grid point
+    INTEGER(iwp) :: l      !< running index surface-orientation
+    INTEGER(iwp) :: m      !< running index surface elements
+
+    koff = surf_usm_h%koff
+    DO  m = 1, surf_usm_h%ns
+       i = surf_usm_h%i(m)
+       j = surf_usm_h%j(m)
+       k = surf_usm_h%k(m)
+       pt(k+koff,j,i) = pt(k,j,i)
+    ENDDO
+
+    DO  l = 0, 3
+       ioff = surf_usm_v(l)%ioff
+       joff = surf_usm_v(l)%joff
+       DO  m = 1, surf_usm_v(l)%ns
+          i = surf_usm_v(l)%i(m)
+          j = surf_usm_v(l)%j(m)
+          k = surf_usm_v(l)%k(m)
+          pt(k,j+joff,i+ioff) = pt(k,j,i)
+       ENDDO
+    ENDDO
+
+ END SUBROUTINE usm_boundary_condition
 
 
@@ -2339,5 +2222,5 @@
 ! ------------
 !> Subroutine checks variables and assigns units.
-!> It is caaled out from subroutine check_parameters.
+!> It is called out from subroutine check_parameters.
 !------------------------------------------------------------------------------!
     SUBROUTINE usm_check_data_output( variable, unit )
@@ -2358,7 +2241,13 @@
              var(1:14) == 'usm_rad_ressw_'  .OR.  var(1:14) == 'usm_rad_reslw_'  .OR.     &
              var(1:11) == 'usm_rad_hf_'  .OR.                                             &
-             var(1:9)  == 'usm_wshf_'  .OR.  var(1:9) == 'usm_wghf_' )  THEN
+             var(1:9)  == 'usm_wshf_'  .OR.  var(1:9) == 'usm_wghf_' .OR.                 &
+             var(1:16) == 'usm_wghf_window_' .OR. var(1:15) == 'usm_wghf_green_' .OR.     &
+             var(1:10) == 'usm_iwghf_' .OR. var(1:17) == 'usm_iwghf_window_' )  THEN
             unit = 'W/m2'
-        ELSE IF ( var(1:10) == 'usm_t_surf'  .OR.  var(1:10) == 'usm_t_wall' )  THEN
+        ELSE IF ( var(1:10) == 'usm_t_surf'  .OR.  var(1:10) == 'usm_t_wall' .OR.         &
+                  var(1:12) == 'usm_t_window' .OR. var(1:17) == 'usm_t_surf_window' .OR.  &
+                  var(1:16) == 'usm_t_surf_green'  .OR.                                   &
+                  var(1:16) == 'usm_t_surf_whole' .OR. var(1:11) == 'usm_t_green' .OR.    &
+                  var(1:15) == 'usm_t_surf_10cm')  THEN
             unit = 'K'
         ELSE IF ( var(1:9) == 'usm_surfz'  .OR.  var(1:7) == 'usm_svf'  .OR.              & 
@@ -2414,5 +2303,4 @@
        ENDIF
 
-
     END SUBROUTINE usm_check_parameters
 
@@ -2443,5 +2331,5 @@
         INTEGER(iwp), PARAMETER                                :: nd = 5
         CHARACTER(len=6), DIMENSION(0:nd-1), PARAMETER         :: dirname = (/ '_roof ', '_south', '_north', '_west ', '_east ' /)
-        INTEGER(iwp), DIMENSION(0:nd-1), PARAMETER             :: dirint = (/ iroof, isouth, inorth, iwest, ieast /)
+        INTEGER(iwp), DIMENSION(0:nd-1), PARAMETER             :: dirint = (/ iup_u, isouth_u, inorth_u, iwest_u, ieast_u /)
         INTEGER(iwp), DIMENSION(0:nd-1)                        :: dirstart
         INTEGER(iwp), DIMENSION(0:nd-1)                        :: dirend
@@ -2477,4 +2365,18 @@
             ENDIF
         ENDIF
+        IF ( var(1:13) == 'usm_t_window_'  .AND.  len(TRIM(var)) >= 14 )  THEN
+!--         window layers
+            READ(var(14:14), '(I1)', iostat=istat ) iwl
+            IF ( istat == 0  .AND.  iwl >= nzb_wall  .AND.  iwl <= nzt_wall )  THEN
+                var = var(1:12)
+            ENDIF
+        ENDIF
+        IF ( var(1:12) == 'usm_t_green_'  .AND.  len(TRIM(var)) >= 13 )  THEN
+!--         green layers
+            READ(var(13:13), '(I1)', iostat=istat ) iwl
+            IF ( istat == 0  .AND.  iwl >= nzb_wall  .AND.  iwl <= nzt_wall )  THEN
+                var = var(1:11)
+            ENDIF
+        ENDIF
         IF ( (var(1:8) == 'usm_svf_'  .OR.  var(1:8) == 'usm_dif_')  .AND.  len(TRIM(var)) >= 13 )  THEN
 !--         svf values to particular surface
@@ -2531,10 +2433,15 @@
               
           CASE ( 'usm_surfalb' )
-!--           surface albedo
+!--           surface albedo, weighted average
               DO  m = 1, surf_usm_h%ns
                  i = surf_usm_h%i(m)
                  j = surf_usm_h%j(m)
                  k = surf_usm_h%k(m)
-                 temp_pf(k,j,i) = surf_usm_h%albedo_surf(m)
+                 temp_pf(k,j,i) = surf_usm_h%frac(0,m)     *                   &
+                                  surf_usm_h%albedo(0,m) +                     &
+                                  surf_usm_h%frac(1,m)     *                   &
+                                  surf_usm_h%albedo(1,m) +                     &
+                                  surf_usm_h%frac(2,m)     *                   &
+                                  surf_usm_h%albedo(2,m)
               ENDDO
               DO  l = 0, 3
@@ -2543,15 +2450,25 @@
                     j = surf_usm_v(l)%j(m)
                     k = surf_usm_v(l)%k(m)
-                    temp_pf(k,j,i) = surf_usm_v(l)%albedo_surf(m)
+                    temp_pf(k,j,i) = surf_usm_v(l)%frac(0,m)     *             &
+                                     surf_usm_v(l)%albedo(0,m) +               &
+                                     surf_usm_v(l)%frac(1,m)     *             &
+                                     surf_usm_v(l)%albedo(1,m) +               &
+                                     surf_usm_v(l)%frac(2,m)     *             &
+                                     surf_usm_v(l)%albedo(2,m)
                  ENDDO
               ENDDO
               
           CASE ( 'usm_surfemis' )
-!--           surface albedo
+!--           surface emissivity, weighted average
               DO  m = 1, surf_usm_h%ns
                  i = surf_usm_h%i(m)
                  j = surf_usm_h%j(m)
                  k = surf_usm_h%k(m)
-                 temp_pf(k,j,i) = surf_usm_h%emiss_surf(m)
+                 temp_pf(k,j,i) =  surf_usm_h%frac(0,m)     *                  &
+                                   surf_usm_h%emissivity(0,m) +                &
+                                   surf_usm_h%frac(1,m)     *                  &
+                                   surf_usm_h%emissivity(1,m) +                &
+                                   surf_usm_h%frac(2,m)     *                  &
+                                   surf_usm_h%emissivity(2,m)
               ENDDO
               DO  l = 0, 3
@@ -2560,7 +2477,31 @@
                     j = surf_usm_v(l)%j(m)
                     k = surf_usm_v(l)%k(m)
-                    temp_pf(k,j,i) = surf_usm_v(l)%emiss_surf(m)
+                    temp_pf(k,j,i) = surf_usm_v(l)%frac(0,m)       *           &
+                                     surf_usm_v(l)%emissivity(0,m) +           &
+                                     surf_usm_v(l)%frac(1,m) *                 &
+                                     surf_usm_v(l)%emissivity(1,m) +           &
+                                     surf_usm_v(l)%frac(2,m)     *             &
+                                     surf_usm_v(l)%emissivity(2,m)
                  ENDDO
               ENDDO
+
+          CASE ( 'usm_surfwintrans' )
+!--           transmissivity window tiles
+              DO  m = 1, surf_usm_h%ns
+                 i = surf_usm_h%i(m)
+                 j = surf_usm_h%j(m)
+                 k = surf_usm_h%k(m)
+                 temp_pf(k,j,i) = surf_usm_h%transmissivity(m)
+              ENDDO
+              DO  l = 0, 3
+                 DO  m = 1, surf_usm_v(l)%ns
+                    i = surf_usm_v(l)%i(m)
+                    j = surf_usm_v(l)%j(m)
+                    k = surf_usm_v(l)%k(m)
+                    temp_pf(k,j,i) = surf_usm_v(l)%transmissivity(m)
+                 ENDDO
+
+              ENDDO
+
 !
 !-- Not adjusted so far              
@@ -2841,4 +2782,143 @@
               ENDIF
 
+          CASE ( 'usm_wghf_window' )
+!--           array of heat flux from window ground (land, wall, roof)
+
+              IF ( av == 0 )  THEN
+                 DO  m = 1, surf_usm_h%ns
+                    i = surf_usm_h%i(m)
+                    j = surf_usm_h%j(m)
+                    k = surf_usm_h%k(m)
+                    temp_pf(k,j,i) = surf_usm_h%wghf_eb_window(m)
+                 ENDDO
+                 DO  l = 0, 3
+                    DO  m = 1, surf_usm_v(l)%ns
+                       i = surf_usm_v(l)%i(m)
+                       j = surf_usm_v(l)%j(m)
+                       k = surf_usm_v(l)%k(m)
+                       temp_pf(k,j,i) = surf_usm_v(l)%wghf_eb_window(m)
+                    ENDDO
+                 ENDDO
+              ELSE
+                 DO  m = 1, surf_usm_h%ns
+                    i = surf_usm_h%i(m)
+                    j = surf_usm_h%j(m)
+                    k = surf_usm_h%k(m)
+                    temp_pf(k,j,i) = surf_usm_h%wghf_eb_window_av(m)
+                 ENDDO
+                 DO  l = 0, 3
+                    DO  m = 1, surf_usm_v(l)%ns
+                       i = surf_usm_v(l)%i(m)
+                       j = surf_usm_v(l)%j(m)
+                       k = surf_usm_v(l)%k(m)
+                       temp_pf(k,j,i) = surf_usm_v(l)%wghf_eb_window_av(m)
+                    ENDDO
+                 ENDDO
+              ENDIF
+
+          CASE ( 'usm_wghf_green' )
+!--           array of heat flux from green ground (land, wall, roof)
+
+              IF ( av == 0 )  THEN
+                 DO  m = 1, surf_usm_h%ns
+                    i = surf_usm_h%i(m)
+                    j = surf_usm_h%j(m)
+                    k = surf_usm_h%k(m)
+                    temp_pf(k,j,i) = surf_usm_h%wghf_eb_green(m)
+                 ENDDO
+                 DO  l = 0, 3
+                    DO  m = 1, surf_usm_v(l)%ns
+                       i = surf_usm_v(l)%i(m)
+                       j = surf_usm_v(l)%j(m)
+                       k = surf_usm_v(l)%k(m)
+                       temp_pf(k,j,i) = surf_usm_v(l)%wghf_eb_green(m)
+                    ENDDO
+                 ENDDO
+              ELSE
+                 DO  m = 1, surf_usm_h%ns
+                    i = surf_usm_h%i(m)
+                    j = surf_usm_h%j(m)
+                    k = surf_usm_h%k(m)
+                    temp_pf(k,j,i) = surf_usm_h%wghf_eb_green_av(m)
+                 ENDDO
+                 DO  l = 0, 3
+                    DO  m = 1, surf_usm_v(l)%ns
+                       i = surf_usm_v(l)%i(m)
+                       j = surf_usm_v(l)%j(m)
+                       k = surf_usm_v(l)%k(m)
+                       temp_pf(k,j,i) = surf_usm_v(l)%wghf_eb_green_av(m)
+                    ENDDO
+                 ENDDO
+              ENDIF
+
+          CASE ( 'usm_iwghf' )
+!--           array of heat flux from indoor ground (land, wall, roof)
+              IF ( av == 0 )  THEN
+                 DO  m = 1, surf_usm_h%ns
+                    i = surf_usm_h%i(m)
+                    j = surf_usm_h%j(m)
+                    k = surf_usm_h%k(m)
+                    temp_pf(k,j,i) = surf_usm_h%iwghf_eb(m)
+                 ENDDO
+                 DO  l = 0, 3
+                    DO  m = 1, surf_usm_v(l)%ns
+                       i = surf_usm_v(l)%i(m)
+                       j = surf_usm_v(l)%j(m)
+                       k = surf_usm_v(l)%k(m)
+                       temp_pf(k,j,i) = surf_usm_v(l)%iwghf_eb(m)
+                    ENDDO
+                 ENDDO
+              ELSE
+                 DO  m = 1, surf_usm_h%ns
+                    i = surf_usm_h%i(m)
+                    j = surf_usm_h%j(m)
+                    k = surf_usm_h%k(m)
+                    temp_pf(k,j,i) = surf_usm_h%iwghf_eb_av(m)
+                 ENDDO
+                 DO  l = 0, 3
+                    DO  m = 1, surf_usm_v(l)%ns
+                       i = surf_usm_v(l)%i(m)
+                       j = surf_usm_v(l)%j(m)
+                       k = surf_usm_v(l)%k(m)
+                       temp_pf(k,j,i) = surf_usm_v(l)%iwghf_eb_av(m)
+                    ENDDO
+                 ENDDO
+              ENDIF
+
+          CASE ( 'usm_iwghf_window' )
+!--           array of heat flux from indoor window ground (land, wall, roof)
+
+              IF ( av == 0 )  THEN
+                 DO  m = 1, surf_usm_h%ns
+                    i = surf_usm_h%i(m)
+                    j = surf_usm_h%j(m)
+                    k = surf_usm_h%k(m)
+                    temp_pf(k,j,i) = surf_usm_h%iwghf_eb_window(m)
+                 ENDDO
+                 DO  l = 0, 3
+                    DO  m = 1, surf_usm_v(l)%ns
+                       i = surf_usm_v(l)%i(m)
+                       j = surf_usm_v(l)%j(m)
+                       k = surf_usm_v(l)%k(m)
+                       temp_pf(k,j,i) = surf_usm_v(l)%iwghf_eb_window(m)
+                    ENDDO
+                 ENDDO
+              ELSE
+                 DO  m = 1, surf_usm_h%ns
+                    i = surf_usm_h%i(m)
+                    j = surf_usm_h%j(m)
+                    k = surf_usm_h%k(m)
+                    temp_pf(k,j,i) = surf_usm_h%iwghf_eb_window_av(m)
+                 ENDDO
+                 DO  l = 0, 3
+                    DO  m = 1, surf_usm_v(l)%ns
+                       i = surf_usm_v(l)%i(m)
+                       j = surf_usm_v(l)%j(m)
+                       k = surf_usm_v(l)%k(m)
+                       temp_pf(k,j,i) = surf_usm_v(l)%iwghf_eb_window_av(m)
+                    ENDDO
+                 ENDDO
+              ENDIF
+              
           CASE ( 'usm_t_surf' )
 !--           surface temperature for surfaces
@@ -2874,4 +2954,157 @@
                  ENDDO
               ENDIF
+              
+          CASE ( 'usm_t_surf_window' )
+!--           surface temperature for window surfaces
+
+              IF ( av == 0 )  THEN
+                 DO  m = 1, surf_usm_h%ns
+                    i = surf_usm_h%i(m)
+                    j = surf_usm_h%j(m)
+                    k = surf_usm_h%k(m)
+                    temp_pf(k,j,i) = t_surf_window_h(m)
+                 ENDDO
+                 DO  l = 0, 3
+                    DO  m = 1, surf_usm_v(l)%ns
+                       i = surf_usm_v(l)%i(m)
+                       j = surf_usm_v(l)%j(m)
+                       k = surf_usm_v(l)%k(m)
+                       temp_pf(k,j,i) = t_surf_window_v(l)%t(m)
+                    ENDDO
+                 ENDDO
+
+              ELSE
+                 DO  m = 1, surf_usm_h%ns
+                    i = surf_usm_h%i(m)
+                    j = surf_usm_h%j(m)
+                    k = surf_usm_h%k(m)
+                    temp_pf(k,j,i) = surf_usm_h%t_surf_window_av(m)
+                 ENDDO
+                 DO  l = 0, 3
+                    DO  m = 1, surf_usm_v(l)%ns
+                       i = surf_usm_v(l)%i(m)
+                       j = surf_usm_v(l)%j(m)
+                       k = surf_usm_v(l)%k(m)
+                       temp_pf(k,j,i) = surf_usm_v(l)%t_surf_window_av(m)
+                    ENDDO
+
+                 ENDDO
+
+              ENDIF
+
+          CASE ( 'usm_t_surf_green' )
+!--           surface temperature for green surfaces
+
+              IF ( av == 0 )  THEN
+                 DO  m = 1, surf_usm_h%ns
+                    i = surf_usm_h%i(m)
+                    j = surf_usm_h%j(m)
+                    k = surf_usm_h%k(m)
+                    temp_pf(k,j,i) = t_surf_green_h(m)
+                 ENDDO
+                 DO  l = 0, 3
+                    DO  m = 1, surf_usm_v(l)%ns
+                       i = surf_usm_v(l)%i(m)
+                       j = surf_usm_v(l)%j(m)
+                       k = surf_usm_v(l)%k(m)
+                       temp_pf(k,j,i) = t_surf_green_v(l)%t(m)
+                    ENDDO
+                 ENDDO
+
+              ELSE
+                 DO  m = 1, surf_usm_h%ns
+                    i = surf_usm_h%i(m)
+                    j = surf_usm_h%j(m)
+                    k = surf_usm_h%k(m)
+                    temp_pf(k,j,i) = surf_usm_h%t_surf_green_av(m)
+                 ENDDO
+                 DO  l = 0, 3
+                    DO  m = 1, surf_usm_v(l)%ns
+                       i = surf_usm_v(l)%i(m)
+                       j = surf_usm_v(l)%j(m)
+                       k = surf_usm_v(l)%k(m)
+                       temp_pf(k,j,i) = surf_usm_v(l)%t_surf_green_av(m)
+                    ENDDO
+
+                 ENDDO
+
+              ENDIF
+
+          CASE ( 'usm_t_surf_whole' )
+!--           surface temperature for whole surfaces
+
+              IF ( av == 0 )  THEN
+                 DO  m = 1, surf_usm_h%ns
+                    i = surf_usm_h%i(m)
+                    j = surf_usm_h%j(m)
+                    k = surf_usm_h%k(m)
+                    temp_pf(k,j,i) = t_surf_whole_h(m)
+                 ENDDO
+                 DO  l = 0, 3
+                    DO  m = 1, surf_usm_v(l)%ns
+                       i = surf_usm_v(l)%i(m)
+                       j = surf_usm_v(l)%j(m)
+                       k = surf_usm_v(l)%k(m)
+                       temp_pf(k,j,i) = t_surf_whole_v(l)%t(m)
+                    ENDDO
+                 ENDDO
+
+              ELSE
+                 DO  m = 1, surf_usm_h%ns
+                    i = surf_usm_h%i(m)
+                    j = surf_usm_h%j(m)
+                    k = surf_usm_h%k(m)
+                    temp_pf(k,j,i) = surf_usm_h%t_surf_whole_av(m)
+                 ENDDO
+                 DO  l = 0, 3
+                    DO  m = 1, surf_usm_v(l)%ns
+                       i = surf_usm_v(l)%i(m)
+                       j = surf_usm_v(l)%j(m)
+                       k = surf_usm_v(l)%k(m)
+                       temp_pf(k,j,i) = surf_usm_v(l)%t_surf_whole_av(m)
+                    ENDDO
+
+                 ENDDO
+
+              ENDIF
+              
+          CASE ( 'usm_t_surf_10cm' )
+!--           near surface temperature for whole surfaces
+
+              IF ( av == 0 )  THEN
+                 DO  m = 1, surf_usm_h%ns
+                    i = surf_usm_h%i(m)
+                    j = surf_usm_h%j(m)
+                    k = surf_usm_h%k(m)
+                    temp_pf(k,j,i) = t_surf_10cm_h(m)
+                 ENDDO
+                 DO  l = 0, 3
+                    DO  m = 1, surf_usm_v(l)%ns
+                       i = surf_usm_v(l)%i(m)
+                       j = surf_usm_v(l)%j(m)
+                       k = surf_usm_v(l)%k(m)
+                       temp_pf(k,j,i) = t_surf_10cm_v(l)%t(m)
+                    ENDDO
+                 ENDDO
+
+              ELSE
+                 DO  m = 1, surf_usm_h%ns
+                    i = surf_usm_h%i(m)
+                    j = surf_usm_h%j(m)
+                    k = surf_usm_h%k(m)
+                    temp_pf(k,j,i) = surf_usm_h%t_surf_10cm_av(m)
+                 ENDDO
+                 DO  l = 0, 3
+                    DO  m = 1, surf_usm_v(l)%ns
+                       i = surf_usm_v(l)%i(m)
+                       j = surf_usm_v(l)%j(m)
+                       k = surf_usm_v(l)%k(m)
+                       temp_pf(k,j,i) = surf_usm_v(l)%t_surf_10cm_av(m)
+                    ENDDO
+
+                 ENDDO
+
+              ENDIF
+
               
           CASE ( 'usm_t_wall' )
@@ -2909,8 +3142,78 @@
               ENDIF
              
+          CASE ( 'usm_t_window' )
+!--           window temperature for iwl layer of walls and land
+              IF ( av == 0 )  THEN
+                 DO  m = 1, surf_usm_h%ns
+                    i = surf_usm_h%i(m)
+                    j = surf_usm_h%j(m)
+                    k = surf_usm_h%k(m)
+                    temp_pf(k,j,i) = t_window_h(iwl,m)
+                 ENDDO
+                 DO  l = 0, 3
+                    DO  m = 1, surf_usm_v(l)%ns
+                       i = surf_usm_v(l)%i(m)
+                       j = surf_usm_v(l)%j(m)
+                       k = surf_usm_v(l)%k(m)
+                       temp_pf(k,j,i) = t_window_v(l)%t(iwl,m)
+                    ENDDO
+                 ENDDO
+              ELSE
+                 DO  m = 1, surf_usm_h%ns
+                    i = surf_usm_h%i(m)
+                    j = surf_usm_h%j(m)
+                    k = surf_usm_h%k(m)
+                    temp_pf(k,j,i) = surf_usm_h%t_window_av(iwl,m)
+                 ENDDO
+                 DO  l = 0, 3
+                    DO  m = 1, surf_usm_v(l)%ns
+                       i = surf_usm_v(l)%i(m)
+                       j = surf_usm_v(l)%j(m)
+                       k = surf_usm_v(l)%k(m)
+                       temp_pf(k,j,i) = surf_usm_v(l)%t_window_av(iwl,m)
+                    ENDDO
+                 ENDDO
+              ENDIF
+
+          CASE ( 'usm_t_green' )
+!--           green temperature for  iwl layer of walls and land
+              IF ( av == 0 )  THEN
+                 DO  m = 1, surf_usm_h%ns
+                    i = surf_usm_h%i(m)
+                    j = surf_usm_h%j(m)
+                    k = surf_usm_h%k(m)
+                    temp_pf(k,j,i) = t_green_h(iwl,m)
+                 ENDDO
+                 DO  l = 0, 3
+                    DO  m = 1, surf_usm_v(l)%ns
+                       i = surf_usm_v(l)%i(m)
+                       j = surf_usm_v(l)%j(m)
+                       k = surf_usm_v(l)%k(m)
+                       temp_pf(k,j,i) = t_green_v(l)%t(iwl,m)
+                    ENDDO
+                 ENDDO
+              ELSE
+                 DO  m = 1, surf_usm_h%ns
+                    i = surf_usm_h%i(m)
+                    j = surf_usm_h%j(m)
+                    k = surf_usm_h%k(m)
+                    temp_pf(k,j,i) = surf_usm_h%t_green_av(iwl,m)
+                 ENDDO
+                 DO  l = 0, 3
+                    DO  m = 1, surf_usm_v(l)%ns
+                       i = surf_usm_v(l)%i(m)
+                       j = surf_usm_v(l)%j(m)
+                       k = surf_usm_v(l)%k(m)
+                       temp_pf(k,j,i) = surf_usm_v(l)%t_green_av(iwl,m)
+                    ENDDO
+                 ENDDO
+              ENDIF
+
+             
           CASE DEFAULT
               found = .FALSE.
               
         END SELECT
+
 !
 !--     Rearrange dimensions for NetCDF output
@@ -2954,8 +3257,14 @@
              var(1:11) == 'usm_rad_hf_'  .OR.                                               &
              var(1:9) == 'usm_wshf_'  .OR.  var(1:9) == 'usm_wghf_'  .OR.                   &
+             var(1:16) == 'usm_wghf_window_'  .OR. var(1:15) == 'usm_wghf_green_' .OR.      &
+             var(1:10) == 'usm_iwghf_'  .OR. var(1:17) == 'usm_iwghf_window_' .OR.          &
              var(1:10) == 'usm_t_surf'  .OR.  var(1:10) == 'usm_t_wall'  .OR.               &
+             var(1:17) == 'usm_t_surf_window'  .OR.  var(1:12) == 'usm_t_window'  .OR.      &
+             var(1:16) == 'usm_t_surf_green'  .OR.  var(1:16) == 'usm_t_surf_whole' .OR.    &
+             var(1:15) == 'usm_t_surf_10cm' .OR.                                            &
              var(1:9) == 'usm_surfz'  .OR.  var(1:7) == 'usm_svf'  .OR.                     & 
              var(1:7) == 'usm_dif'  .OR.  var(1:11) == 'usm_surfcat'  .OR.                  &
-             var(1:11) == 'usm_surfalb'  .OR.  var(1:12) == 'usm_surfemis' )  THEN
+             var(1:11) == 'usm_surfalb'  .OR.  var(1:12) == 'usm_surfemis'  .OR.            &
+             var(1:16) == 'usm_surfwintrans' )  THEN
 
             found = .TRUE.
@@ -2972,118 +3281,4 @@
     END SUBROUTINE usm_define_netcdf_grid
     
-    
-!------------------------------------------------------------------------------!
-!> Finds first model boundary crossed by a ray
-!------------------------------------------------------------------------------!
-    PURE SUBROUTINE usm_find_boundary_face(origin, uvect, bdycross)
-    
-       IMPLICIT NONE
-       
-       INTEGER(iwp) ::  d       !<
-       INTEGER(iwp) ::  seldim  !< found fist crossing index
-
-       INTEGER(iwp), DIMENSION(3)              ::  bdyd      !< boundary direction       
-       INTEGER(iwp), DIMENSION(4), INTENT(out) ::  bdycross  !< found boundary crossing (d, z, y, x)
-       
-       REAL(wp)                                ::  bdydim  !< 
-       REAL(wp)                                ::  dist    !<
-       
-       REAL(wp), DIMENSION(3)             ::  crossdist  !< crossing distance
-       REAL(wp), DIMENSION(3), INTENT(in) ::  origin     !< ray origin
-       REAL(wp), DIMENSION(3), INTENT(in) ::  uvect      !< ray unit vector
- 
-
-       bdydim       = nzut + .5_wp  !< top boundary
-       bdyd(1)      = isky
-       crossdist(1) = ( bdydim - origin(1) ) / uvect(1)  !< subroutine called only when uvect(1)>0
-
-       IF ( uvect(2) == 0._wp )  THEN
-          crossdist(2) = huge(1._wp)
-       ELSE
-          IF ( uvect(2) >= 0._wp )  THEN
-             bdydim  = ny + .5_wp  !< north global boundary
-             bdyd(2) = inorthb
-          ELSE
-             bdydim  = -.5_wp  !< south global boundary
-             bdyd(2) = isouthb
-          ENDIF
-          crossdist(2) = ( bdydim - origin(2) ) / uvect(2)
-       ENDIF
-
-       IF ( uvect(3) == 0._wp )  THEN
-          crossdist(3) = huge(1._wp)
-       ELSE
-          IF ( uvect(3) >= 0._wp )  THEN
-             bdydim  = nx + .5_wp  !< east global boundary
-             bdyd(3) = ieastb
-          ELSE
-             bdydim  = -.5_wp  !< west global boundary
-             bdyd(3) = iwestb
-          ENDIF
-          crossdist(3) = ( bdydim - origin(3) ) / uvect(3)
-       ENDIF
-
-       seldim = minloc(crossdist, 1)
-       dist   = crossdist(seldim)
-       d      = bdyd(seldim)
-
-       bdycross(1)   = d
-       bdycross(2:4) = NINT( origin(:) + uvect(:) * dist &
-                                       + .5_wp * (/ kdir(d), jdir(d), idir(d) /) )
-                        
-    END SUBROUTINE
-
-
-!------------------------------------------------------------------------------!
-!> Determines whether two faces are oriented towards each other
-!------------------------------------------------------------------------------!
-    PURE LOGICAL FUNCTION usm_facing(x, y, z, d, x2, y2, z2, d2)
-        IMPLICIT NONE
-        INTEGER(iwp),   INTENT(in)  :: x, y, z, d, x2, y2, z2, d2
-      
-        usm_facing = .FALSE.
-        IF ( d==iroof  .AND.  d2==iroof ) RETURN
-        IF ( d==isky  .AND.  d2==isky ) RETURN
-        IF ( (d==isouth  .OR.  d==inorthb)  .AND.  (d2==isouth.OR.d2==inorthb) ) RETURN
-        IF ( (d==inorth  .OR.  d==isouthb)  .AND.  (d2==inorth.OR.d2==isouthb) ) RETURN
-        IF ( (d==iwest  .OR.  d==ieastb)  .AND.  (d2==iwest.OR.d2==ieastb) ) RETURN
-        IF ( (d==ieast  .OR.  d==iwestb)  .AND.  (d2==ieast.OR.d2==iwestb) ) RETURN
-
-        SELECT CASE (d)
-            CASE (iroof)                   !< ground, roof
-                IF ( z2 < z ) RETURN
-            CASE (isky)                    !< sky
-                IF ( z2 > z ) RETURN
-            CASE (isouth, inorthb)         !< south facing
-                IF ( y2 > y ) RETURN
-            CASE (inorth, isouthb)         !< north facing
-                IF ( y2 < y ) RETURN
-            CASE (iwest, ieastb)           !< west facing
-                IF ( x2 > x ) RETURN
-            CASE (ieast, iwestb)           !< east facing
-                IF ( x2 < x ) RETURN
-        END SELECT
-
-        SELECT CASE (d2)
-            CASE (iroof)                   !< ground, roof
-                IF ( z < z2 ) RETURN
-            CASE (isky)                    !< sky
-                IF ( z > z2 ) RETURN
-            CASE (isouth, inorthb)         !< south facing
-                IF ( y > y2 ) RETURN
-            CASE (inorth, isouthb)         !< north facing
-                IF ( y < y2 ) RETURN
-            CASE (iwest, ieastb)           !< west facing
-                IF ( x > x2 ) RETURN
-            CASE (ieast, iwestb)           !< east facing
-                IF ( x < x2 ) RETURN
-            CASE (-1)
-                CONTINUE
-        END SELECT
-
-        usm_facing = .TRUE.
-        
-    END FUNCTION usm_facing
-    
 
 !------------------------------------------------------------------------------!
@@ -3102,13 +3297,8 @@
 !--     Calculate wall grid spacings. 
 !--     Temperature is defined at the center of the wall layers,
-!--     whereas gradients/fluxes are defined at the edges (_stag)
-        DO k = nzb_wall, nzt_wall
-           zwn(k) = zwn_default(k)
-        ENDDO
-!        
+!--     whereas gradients/fluxes are defined at the edges (_stag)      
 !--     apply for all particular surface grids. First for horizontal surfaces
         DO  m = 1, surf_usm_h%ns
-           surf_usm_h%zw(:,m)             = zwn(:) *                           &
-                                            surf_usm_h%thickness_wall(m)
+
            surf_usm_h%dz_wall(nzb_wall,m) = surf_usm_h%zw(nzb_wall,m)
            DO k = nzb_wall+1, nzt_wall
@@ -3116,4 +3306,14 @@
                                          surf_usm_h%zw(k-1,m)
            ENDDO
+           surf_usm_h%dz_window(nzb_wall,m) = surf_usm_h%zw_window(nzb_wall,m)
+           DO k = nzb_wall+1, nzt_wall
+               surf_usm_h%dz_window(k,m) = surf_usm_h%zw_window(k,m) -         &
+                                         surf_usm_h%zw_window(k-1,m)
+           ENDDO
+           surf_usm_h%dz_green(nzb_wall,m) = surf_usm_h%zw_green(nzb_wall,m)
+           DO k = nzb_wall+1, nzt_wall
+               surf_usm_h%dz_green(k,m) = surf_usm_h%zw_green(k,m) -           &
+                                         surf_usm_h%zw_green(k-1,m)
+           ENDDO
            
            surf_usm_h%dz_wall(nzt_wall+1,m) = surf_usm_h%dz_wall(nzt_wall,m)
@@ -3124,17 +3324,45 @@
            ENDDO
            surf_usm_h%dz_wall_stag(nzt_wall,m) = surf_usm_h%dz_wall(nzt_wall,m)
+           
+           surf_usm_h%dz_window(nzt_wall+1,m) = surf_usm_h%dz_window(nzt_wall,m)
+
+           DO k = nzb_wall, nzt_wall-1
+               surf_usm_h%dz_window_stag(k,m) = 0.5 * (                        &
+                           surf_usm_h%dz_window(k+1,m) + surf_usm_h%dz_window(k,m) )
+           ENDDO
+           surf_usm_h%dz_window_stag(nzt_wall,m) = surf_usm_h%dz_window(nzt_wall,m)
+
+           surf_usm_h%dz_green(nzt_wall+1,m) = surf_usm_h%dz_green(nzt_wall,m)
+
+           DO k = nzb_wall, nzt_wall-1
+               surf_usm_h%dz_green_stag(k,m) = 0.5 * (                         &
+                           surf_usm_h%dz_green(k+1,m) + surf_usm_h%dz_green(k,m) )
+           ENDDO
+           surf_usm_h%dz_green_stag(nzt_wall,m) = surf_usm_h%dz_green(nzt_wall,m)
         ENDDO
-        surf_usm_h%ddz_wall      = 1.0_wp / surf_usm_h%dz_wall
-        surf_usm_h%ddz_wall_stag = 1.0_wp / surf_usm_h%dz_wall_stag
+        surf_usm_h%ddz_wall        = 1.0_wp / surf_usm_h%dz_wall
+        surf_usm_h%ddz_wall_stag   = 1.0_wp / surf_usm_h%dz_wall_stag
+        surf_usm_h%ddz_window      = 1.0_wp / surf_usm_h%dz_window
+        surf_usm_h%ddz_window_stag = 1.0_wp / surf_usm_h%dz_window_stag
+        surf_usm_h%ddz_green       = 1.0_wp / surf_usm_h%dz_green
+        surf_usm_h%ddz_green_stag  = 1.0_wp / surf_usm_h%dz_green_stag
 !        
 !--     For vertical surfaces
         DO  l = 0, 3
            DO  m = 1, surf_usm_v(l)%ns
-              surf_usm_v(l)%zw(:,m)             = zwn(:) *                     &
-                                                  surf_usm_v(l)%thickness_wall(m)
               surf_usm_v(l)%dz_wall(nzb_wall,m) = surf_usm_v(l)%zw(nzb_wall,m)
               DO k = nzb_wall+1, nzt_wall
                   surf_usm_v(l)%dz_wall(k,m) = surf_usm_v(l)%zw(k,m) -         &
                                                surf_usm_v(l)%zw(k-1,m)
+              ENDDO
+              surf_usm_v(l)%dz_window(nzb_wall,m) = surf_usm_v(l)%zw_window(nzb_wall,m)
+              DO k = nzb_wall+1, nzt_wall
+                  surf_usm_v(l)%dz_window(k,m) = surf_usm_v(l)%zw_window(k,m) - &
+                                               surf_usm_v(l)%zw_window(k-1,m)
+              ENDDO
+              surf_usm_v(l)%dz_green(nzb_wall,m) = surf_usm_v(l)%zw_green(nzb_wall,m)
+              DO k = nzb_wall+1, nzt_wall
+                  surf_usm_v(l)%dz_green(k,m) = surf_usm_v(l)%zw_green(k,m) - &
+                                               surf_usm_v(l)%zw_green(k-1,m)
               ENDDO
            
@@ -3149,7 +3377,31 @@
               surf_usm_v(l)%dz_wall_stag(nzt_wall,m) =                         &
                                               surf_usm_v(l)%dz_wall(nzt_wall,m)
+              surf_usm_v(l)%dz_window(nzt_wall+1,m) =                            &
+                                              surf_usm_v(l)%dz_window(nzt_wall,m)
+
+              DO k = nzb_wall, nzt_wall-1
+                  surf_usm_v(l)%dz_window_stag(k,m) = 0.5 * (                    &
+                                                surf_usm_v(l)%dz_window(k+1,m) + &
+                                                surf_usm_v(l)%dz_window(k,m) )
+              ENDDO
+              surf_usm_v(l)%dz_window_stag(nzt_wall,m) =                         &
+                                              surf_usm_v(l)%dz_window(nzt_wall,m)
+              surf_usm_v(l)%dz_green(nzt_wall+1,m) =                            &
+                                              surf_usm_v(l)%dz_green(nzt_wall,m)
+
+              DO k = nzb_wall, nzt_wall-1
+                  surf_usm_v(l)%dz_green_stag(k,m) = 0.5 * (                    &
+                                                surf_usm_v(l)%dz_green(k+1,m) + &
+                                                surf_usm_v(l)%dz_green(k,m) )
+              ENDDO
+              surf_usm_v(l)%dz_green_stag(nzt_wall,m) =                         &
+                                              surf_usm_v(l)%dz_green(nzt_wall,m)
            ENDDO
-           surf_usm_v(l)%ddz_wall      = 1.0_wp / surf_usm_v(l)%dz_wall
-           surf_usm_v(l)%ddz_wall_stag = 1.0_wp / surf_usm_v(l)%dz_wall_stag
+           surf_usm_v(l)%ddz_wall        = 1.0_wp / surf_usm_v(l)%dz_wall
+           surf_usm_v(l)%ddz_wall_stag   = 1.0_wp / surf_usm_v(l)%dz_wall_stag
+           surf_usm_v(l)%ddz_window      = 1.0_wp / surf_usm_v(l)%dz_window
+           surf_usm_v(l)%ddz_window_stag = 1.0_wp / surf_usm_v(l)%dz_window_stag
+           surf_usm_v(l)%ddz_green       = 1.0_wp / surf_usm_v(l)%dz_green
+           surf_usm_v(l)%ddz_green_stag  = 1.0_wp / surf_usm_v(l)%dz_green_stag
         ENDDO      
 
@@ -3168,9 +3420,41 @@
 !------------------------------------------------------------------------------!
     SUBROUTINE usm_init_urban_surface
+
+        USE arrays_3d,                                                         &
+            ONLY:  zw
+
+        USE netcdf_data_input_mod,                                             &
+            ONLY:  building_pars_f, building_type_f, terrain_height_f
     
         IMPLICIT NONE
 
-        INTEGER(iwp) ::  i, j, k, l, m            !< running indices
-        REAL(wp)     ::  c, d, tin, exn
+        INTEGER(iwp) ::  i                   !< loop index x-dirction
+        INTEGER(iwp) ::  ind_emis_wall       !< index in input list for wall emissivity
+        INTEGER(iwp) ::  ind_emis_green      !< index in input list for green emissivity
+        INTEGER(iwp) ::  ind_emis_win        !< index in input list for window emissivity
+        INTEGER(iwp) ::  ind_green_frac_w    !< index in input list for green fraction on wall
+        INTEGER(iwp) ::  ind_green_frac_r    !< index in input list for green fraction on roof
+        INTEGER(iwp) ::  ind_hc1             !< index in input list for heat capacity at first wall layer
+        INTEGER(iwp) ::  ind_hc2             !< index in input list for heat capacity at second wall layer
+        INTEGER(iwp) ::  ind_hc3             !< index in input list for heat capacity at third wall layer
+        INTEGER(iwp) ::  ind_lai_r           !< index in input list for LAI on roof
+        INTEGER(iwp) ::  ind_lai_w           !< index in input list for LAI on wall
+        INTEGER(iwp) ::  ind_tc1             !< index in input list for thermal conductivity at first wall layer
+        INTEGER(iwp) ::  ind_tc2             !< index in input list for thermal conductivity at second wall layer
+        INTEGER(iwp) ::  ind_tc3             !< index in input list for thermal conductivity at third wall layer
+        INTEGER(iwp) ::  ind_trans           !< index in input list for window transmissivity
+        INTEGER(iwp) ::  ind_wall_frac       !< index in input list for wall fraction
+        INTEGER(iwp) ::  ind_win_frac        !< index in input list for window fraction
+        INTEGER(iwp) ::  ind_z0              !< index in input list for z0
+        INTEGER(iwp) ::  ind_z0qh            !< index in input list for z0h / z0q
+        INTEGER(iwp) ::  j                   !< loop index y-dirction
+        INTEGER(iwp) ::  k                   !< loop index z-dirction
+        INTEGER(iwp) ::  l                   !< loop index surface orientation
+        INTEGER(iwp) ::  m                   !< loop index surface element
+        INTEGER(iwp) ::  st                  !< dummy  
+
+        REAL(wp)     ::  c, d, tin, twin, exn
+        REAL(wp)     ::  ground_floor_level_l         !< local height of ground floor level
+        REAL(wp)     ::  z_agl                        !< height above ground
 
 !
@@ -3187,9 +3471,949 @@
             lsf_surf = .FALSE.
         ENDIF
-       
-!--     init anthropogenic sources of heat
-        CALL usm_allocate_urban_surface()
-       
-!--     read the surface_types array somewhere
+
+!
+!--     Flag surface elements belonging to the ground floor level. Therefore, 
+!--     use terrain height array from file, if available. This flag is later used
+!--     to control initialization of surface attributes.
+        surf_usm_h%ground_level = .FALSE. 
+        DO  m = 1, surf_usm_h%ns
+           i = surf_usm_h%i(m)
+           j = surf_usm_h%j(m)
+           k = surf_usm_h%k(m)
+!
+!--        Get local ground level. If no ground level is given in input file,
+!--        use default value.
+           ground_floor_level_l = ground_floor_level
+           IF ( building_pars_f%from_file )  THEN
+              IF ( building_pars_f%pars_xy(ind_gflh,j,i) /=                    &
+                   building_pars_f%fill )  &
+                 ground_floor_level_l = building_pars_f%pars_xy(ind_gflh,j,i)          
+           ENDIF
+!
+!--        Determine height of surface element above ground level
+           IF (  terrain_height_f%from_file )  THEN
+              z_agl = zw(k) - terrain_height_f%var(j,i)
+           ELSE
+              z_agl = zw(k)
+           ENDIF
+!
+!--        Set flag for ground level
+           IF ( z_agl <= ground_floor_level_l )                                &
+              surf_usm_h%ground_level(m) = .TRUE.
+        ENDDO
+
+        DO  l = 0, 3
+           surf_usm_v(l)%ground_level = .FALSE.
+           DO  m = 1, surf_usm_v(l)%ns
+              i = surf_usm_v(l)%i(m) + surf_usm_v(l)%ioff
+              j = surf_usm_v(l)%j(m) + surf_usm_v(l)%joff
+              k = surf_usm_v(l)%k(m)
+!
+!--           Get local ground level. If no ground level is given in input file,
+!--           use default value.
+              ground_floor_level_l = ground_floor_level
+              IF ( building_pars_f%from_file )  THEN
+                 IF ( building_pars_f%pars_xy(ind_gflh,j,i) /=                 &
+                      building_pars_f%fill ) &
+                    ground_floor_level_l = building_pars_f%pars_xy(ind_gflh,j,i)
+              ENDIF
+!
+!--           Determine height of surface element above ground level. Please 
+!--           note, height of surface element is determined with respect to
+!--           its height of the adjoing atmospheric grid point. 
+              IF (  terrain_height_f%from_file )  THEN
+                 z_agl = zw(k) - terrain_height_f%var(j-surf_usm_v(l)%joff,    &
+                                                      i-surf_usm_v(l)%ioff)
+              ELSE
+                 z_agl = zw(k)
+              ENDIF
+!
+!--           Set flag for ground level
+              IF ( z_agl <= ground_floor_level_l )                                &
+                 surf_usm_v(l)%ground_level(m) = .TRUE.
+
+           ENDDO
+        ENDDO
+!
+!--     Initialize urban-type surface attribute. According to initialization in 
+!--     land-surface model, follow a 3-level approach.
+!--     Level 1 - initialization via default attributes 
+        DO  m = 1, surf_usm_h%ns
+!
+!--        Now, all horizontal surfaces are roof surfaces (?)
+           surf_usm_h%isroof_surf(m)   = .TRUE.
+           surf_usm_h%surface_types(m) = roof_category         !< default category for root surface
+!
+!--        In order to distinguish between ground floor level and 
+!--        above-ground-floor level surfaces, set input indices. 
+           ind_wall_frac    = MERGE( ind_wall_frac_gfl,    ind_wall_frac_agfl,    &
+                                     surf_usm_h%ground_level(m) )
+           ind_win_frac     = MERGE( ind_win_frac_gfl,     ind_win_frac_agfl,     &
+                                     surf_usm_h%ground_level(m) )
+           ind_green_frac_w = MERGE( ind_green_frac_w_gfl, ind_green_frac_w_agfl, &
+                                     surf_usm_h%ground_level(m) )
+           ind_green_frac_r = MERGE( ind_green_frac_r_gfl, ind_green_frac_r_agfl, &
+                                     surf_usm_h%ground_level(m) )
+           ind_lai_r        = MERGE( ind_lai_r_gfl,        ind_lai_r_agfl,        &
+                                     surf_usm_h%ground_level(m) )
+           ind_lai_w        = MERGE( ind_lai_w_gfl,        ind_lai_w_agfl,        &
+                                     surf_usm_h%ground_level(m) )
+           ind_hc1          = MERGE( ind_hc1_gfl,          ind_hc1_agfl,          &
+                                     surf_usm_h%ground_level(m) )
+           ind_hc2          = MERGE( ind_hc2_gfl,          ind_hc2_agfl,          &
+                                     surf_usm_h%ground_level(m) )
+           ind_hc3          = MERGE( ind_hc3_gfl,          ind_hc3_agfl,          &
+                                     surf_usm_h%ground_level(m) )
+           ind_tc1          = MERGE( ind_tc1_gfl,          ind_tc1_agfl,          &
+                                     surf_usm_h%ground_level(m) )
+           ind_tc2          = MERGE( ind_tc2_gfl,          ind_tc2_agfl,          &
+                                     surf_usm_h%ground_level(m) )
+           ind_tc3          = MERGE( ind_tc3_gfl,          ind_tc3_agfl,          &
+                                     surf_usm_h%ground_level(m) )
+           ind_emis_wall    = MERGE( ind_emis_wall_gfl,    ind_emis_wall_agfl,    &
+                                     surf_usm_h%ground_level(m) )
+           ind_emis_green   = MERGE( ind_emis_green_gfl,   ind_emis_green_agfl,   &
+                                     surf_usm_h%ground_level(m) )
+           ind_emis_win     = MERGE( ind_emis_win_gfl,     ind_emis_win_agfl,     &
+                                     surf_usm_h%ground_level(m) )
+           ind_trans        = MERGE( ind_trans_gfl,        ind_trans_agfl,        &
+                                     surf_usm_h%ground_level(m) )
+           ind_z0           = MERGE( ind_z0_gfl,           ind_z0_agfl,           &
+                                     surf_usm_h%ground_level(m) )
+           ind_z0qh         = MERGE( ind_z0qh_gfl,         ind_z0qh_agfl,         &
+                                     surf_usm_h%ground_level(m) )
+!
+!--        Initialize relatvie wall- (0), green- (1) and window (2) fractions
+           surf_usm_h%frac(0,m)  = building_pars(ind_wall_frac,building_type)   
+           surf_usm_h%frac(1,m)  = building_pars(ind_green_frac_r,building_type)  
+           surf_usm_h%frac(2,m)  = building_pars(ind_win_frac,building_type)  
+           surf_usm_h%lai(m)     = building_pars(ind_green_frac_r,building_type)  
+
+           surf_usm_h%rho_c_wall(nzb_wall,m)   = building_pars(ind_hc1,building_type)  
+           surf_usm_h%rho_c_wall(nzb_wall+1,m) = building_pars(ind_hc1,building_type)
+           surf_usm_h%rho_c_wall(nzb_wall+2,m) = building_pars(ind_hc2,building_type)
+           surf_usm_h%rho_c_wall(nzb_wall+3,m) = building_pars(ind_hc3,building_type)    
+           surf_usm_h%lambda_h(nzb_wall,m)   = building_pars(ind_tc1,building_type)  
+           surf_usm_h%lambda_h(nzb_wall+1,m) = building_pars(ind_tc1,building_type) 
+           surf_usm_h%lambda_h(nzb_wall+2,m) = building_pars(ind_tc2,building_type)
+           surf_usm_h%lambda_h(nzb_wall+3,m) = building_pars(ind_tc3,building_type)    
+           surf_usm_h%rho_c_green(nzb_wall,m)   = building_pars(ind_hc1,building_type)  
+           surf_usm_h%rho_c_green(nzb_wall+1,m) = building_pars(ind_hc1,building_type)
+           surf_usm_h%rho_c_green(nzb_wall+2,m) = building_pars(ind_hc2,building_type)
+           surf_usm_h%rho_c_green(nzb_wall+3,m) = building_pars(ind_hc3,building_type)    
+           surf_usm_h%lambda_h_green(nzb_wall,m)   = building_pars(ind_tc1,building_type)  
+           surf_usm_h%lambda_h_green(nzb_wall+1,m) = building_pars(ind_tc1,building_type) 
+           surf_usm_h%lambda_h_green(nzb_wall+2,m) = building_pars(ind_tc2,building_type)
+           surf_usm_h%lambda_h_green(nzb_wall+3,m) = building_pars(ind_tc3,building_type)
+           surf_usm_h%rho_c_window(nzb_wall,m)   = building_pars(ind_hc1,building_type)  
+           surf_usm_h%rho_c_window(nzb_wall+1,m) = building_pars(ind_hc1,building_type)
+           surf_usm_h%rho_c_window(nzb_wall+2,m) = building_pars(ind_hc2,building_type)
+           surf_usm_h%rho_c_window(nzb_wall+3,m) = building_pars(ind_hc3,building_type)    
+           surf_usm_h%lambda_h_window(nzb_wall,m)   = building_pars(ind_tc1,building_type)  
+           surf_usm_h%lambda_h_window(nzb_wall+1,m) = building_pars(ind_tc1,building_type) 
+           surf_usm_h%lambda_h_window(nzb_wall+2,m) = building_pars(ind_tc2,building_type)
+           surf_usm_h%lambda_h_window(nzb_wall+3,m) = building_pars(ind_tc3,building_type)    
+
+           surf_usm_h%target_temp_summer(m)  = building_pars(12,building_type)    
+           surf_usm_h%target_temp_winter(m)  = building_pars(13,building_type)    
+!
+!--        emissivity of wall-, green- and window fraction 
+           surf_usm_h%emissivity(0,m)        = building_pars(ind_emis_wall,building_type)
+           surf_usm_h%emissivity(1,m)        = building_pars(ind_emis_green,building_type)
+           surf_usm_h%emissivity(2,m)        = building_pars(ind_emis_win,building_type)
+
+           surf_usm_h%transmissivity(m)      = building_pars(ind_trans,building_type)
+
+           surf_usm_h%z0(m)                  = building_pars(ind_z0,building_type)
+           surf_usm_h%z0h(m)                 = building_pars(ind_z0qh,building_type)
+           surf_usm_h%z0q(m)                 = building_pars(ind_z0qh,building_type)
+!
+!--        albedo type for wall fraction, green fraction, window fraction
+           surf_usm_h%albedo_type(0,m)       = INT( building_pars(ind_alb_wall,building_type)  )
+           surf_usm_h%albedo_type(1,m)       = INT( building_pars(ind_alb_green,building_type) )
+           surf_usm_h%albedo_type(2,m)       = INT( building_pars(ind_alb_win,building_type)   )
+
+           surf_usm_h%zw(nzb_wall,m)         = building_pars(ind_thick_1,building_type)
+           surf_usm_h%zw(nzb_wall+1,m)       = building_pars(ind_thick_2,building_type)
+           surf_usm_h%zw(nzb_wall+2,m)       = building_pars(ind_thick_3,building_type)
+           surf_usm_h%zw(nzb_wall+3,m)       = building_pars(ind_thick_4,building_type)
+           
+           surf_usm_h%zw_green(nzb_wall,m)         = building_pars(ind_thick_1,building_type)
+           surf_usm_h%zw_green(nzb_wall+1,m)       = building_pars(ind_thick_2,building_type)
+           surf_usm_h%zw_green(nzb_wall+2,m)       = building_pars(ind_thick_3,building_type)
+           surf_usm_h%zw_green(nzb_wall+3,m)       = building_pars(ind_thick_4,building_type)
+           
+           surf_usm_h%zw_window(nzb_wall,m)         = building_pars(ind_thick_1,building_type)
+           surf_usm_h%zw_window(nzb_wall+1,m)       = building_pars(ind_thick_2,building_type)
+           surf_usm_h%zw_window(nzb_wall+2,m)       = building_pars(ind_thick_3,building_type)
+           surf_usm_h%zw_window(nzb_wall+3,m)       = building_pars(ind_thick_4,building_type)
+
+           surf_usm_h%c_surface(m)           = building_pars(45,building_type)  
+           surf_usm_h%lambda_surf(m)         = building_pars(46,building_type)  
+           surf_usm_h%c_surface_green(m)     = building_pars(45,building_type)  
+           surf_usm_h%lambda_surf_green(m)   = building_pars(46,building_type)  
+           surf_usm_h%c_surface_window(m)    = building_pars(45,building_type)  
+           surf_usm_h%lambda_surf_window(m)  = building_pars(46,building_type)  
+
+        ENDDO
+
+        DO  l = 0, 3
+           DO  m = 1, surf_usm_v(l)%ns
+
+              surf_usm_v(l)%surface_types(m) = wall_category         !< default category for root surface
+!
+!--           In order to distinguish between ground floor level and 
+!--           above-ground-floor level surfaces, set input indices. 
+              ind_wall_frac    = MERGE( ind_wall_frac_gfl,    ind_wall_frac_agfl,    &
+                                        surf_usm_v(l)%ground_level(m) )
+              ind_win_frac     = MERGE( ind_win_frac_gfl,     ind_win_frac_agfl,     &
+                                        surf_usm_v(l)%ground_level(m) )
+              ind_green_frac_w = MERGE( ind_green_frac_w_gfl, ind_green_frac_w_agfl, &
+                                        surf_usm_v(l)%ground_level(m) )
+              ind_green_frac_r = MERGE( ind_green_frac_r_gfl, ind_green_frac_r_agfl, &
+                                        surf_usm_v(l)%ground_level(m) )
+              ind_lai_r        = MERGE( ind_lai_r_gfl,        ind_lai_r_agfl,        &
+                                        surf_usm_v(l)%ground_level(m) )
+              ind_lai_w        = MERGE( ind_lai_w_gfl,        ind_lai_w_agfl,        &
+                                        surf_usm_v(l)%ground_level(m) )
+              ind_hc1          = MERGE( ind_hc1_gfl,          ind_hc1_agfl,          &
+                                        surf_usm_v(l)%ground_level(m) )
+              ind_hc2          = MERGE( ind_hc2_gfl,          ind_hc2_agfl,          &
+                                        surf_usm_v(l)%ground_level(m) )
+              ind_hc3          = MERGE( ind_hc3_gfl,          ind_hc3_agfl,          &
+                                        surf_usm_v(l)%ground_level(m) )
+              ind_tc1          = MERGE( ind_tc1_gfl,          ind_tc1_agfl,          &
+                                        surf_usm_v(l)%ground_level(m) )
+              ind_tc2          = MERGE( ind_tc2_gfl,          ind_tc2_agfl,          &
+                                        surf_usm_v(l)%ground_level(m) )
+              ind_tc3          = MERGE( ind_tc3_gfl,          ind_tc3_agfl,          &
+                                        surf_usm_v(l)%ground_level(m) )
+              ind_emis_wall    = MERGE( ind_emis_wall_gfl,    ind_emis_wall_agfl,    &
+                                        surf_usm_v(l)%ground_level(m) )
+              ind_emis_green   = MERGE( ind_emis_green_gfl,   ind_emis_green_agfl,   &
+                                        surf_usm_v(l)%ground_level(m) )
+              ind_emis_win     = MERGE( ind_emis_win_gfl,     ind_emis_win_agfl,     &
+                                        surf_usm_v(l)%ground_level(m) )
+              ind_trans        = MERGE( ind_trans_gfl,       ind_trans_agfl,         &
+                                        surf_usm_v(l)%ground_level(m) )
+              ind_z0           = MERGE( ind_z0_gfl,           ind_z0_agfl,           &
+                                        surf_usm_v(l)%ground_level(m) )
+              ind_z0qh         = MERGE( ind_z0qh_gfl,         ind_z0qh_agfl,         &
+                                        surf_usm_v(l)%ground_level(m) )
+
+!
+!--           Initialize relatvie wall- (0), green- (1) and window (2) fractions
+              surf_usm_v(l)%frac(0,m)              = building_pars(ind_wall_frac,building_type)   
+              surf_usm_v(l)%frac(1,m)              = building_pars(ind_green_frac_w,building_type) 
+              surf_usm_v(l)%frac(2,m)              = building_pars(ind_win_frac,building_type)  
+              surf_usm_v(l)%lai(m)                 = building_pars(ind_lai_w,building_type)  
+
+              surf_usm_v(l)%rho_c_wall(nzb_wall,m)   = building_pars(ind_hc1,building_type)  
+              surf_usm_v(l)%rho_c_wall(nzb_wall+1,m) = building_pars(ind_hc1,building_type)
+              surf_usm_v(l)%rho_c_wall(nzb_wall+2,m) = building_pars(ind_hc2,building_type)
+              surf_usm_v(l)%rho_c_wall(nzb_wall+3,m) = building_pars(ind_hc3,building_type)    
+              
+              surf_usm_v(l)%rho_c_green(nzb_wall,m)   = building_pars(ind_hc1,building_type)  
+              surf_usm_v(l)%rho_c_green(nzb_wall+1,m) = building_pars(ind_hc1,building_type)
+              surf_usm_v(l)%rho_c_green(nzb_wall+2,m) = building_pars(ind_hc2,building_type)
+              surf_usm_v(l)%rho_c_green(nzb_wall+3,m) = building_pars(ind_hc3,building_type)    
+              
+              surf_usm_v(l)%rho_c_window(nzb_wall,m)   = building_pars(ind_hc1,building_type)  
+              surf_usm_v(l)%rho_c_window(nzb_wall+1,m) = building_pars(ind_hc1,building_type)
+              surf_usm_v(l)%rho_c_window(nzb_wall+2,m) = building_pars(ind_hc2,building_type)
+              surf_usm_v(l)%rho_c_window(nzb_wall+3,m) = building_pars(ind_hc3,building_type)    
+
+              surf_usm_v(l)%lambda_h(nzb_wall,m)   = building_pars(ind_tc1,building_type)  
+              surf_usm_v(l)%lambda_h(nzb_wall+1,m) = building_pars(ind_tc1,building_type) 
+              surf_usm_v(l)%lambda_h(nzb_wall+2,m) = building_pars(ind_tc2,building_type)
+              surf_usm_v(l)%lambda_h(nzb_wall+3,m) = building_pars(ind_tc3,building_type)    
+              
+              surf_usm_v(l)%lambda_h_green(nzb_wall,m)   = building_pars(ind_tc1,building_type)  
+              surf_usm_v(l)%lambda_h_green(nzb_wall+1,m) = building_pars(ind_tc1,building_type) 
+              surf_usm_v(l)%lambda_h_green(nzb_wall+2,m) = building_pars(ind_tc2,building_type)
+              surf_usm_v(l)%lambda_h_green(nzb_wall+3,m) = building_pars(ind_tc3,building_type)    
+
+              surf_usm_v(l)%lambda_h_window(nzb_wall,m)   = building_pars(ind_tc1,building_type)  
+              surf_usm_v(l)%lambda_h_window(nzb_wall+1,m) = building_pars(ind_tc1,building_type) 
+              surf_usm_v(l)%lambda_h_window(nzb_wall+2,m) = building_pars(ind_tc2,building_type)
+              surf_usm_v(l)%lambda_h_window(nzb_wall+3,m) = building_pars(ind_tc3,building_type)    
+
+              surf_usm_v(l)%target_temp_summer(m)  = building_pars(12,building_type)    
+              surf_usm_v(l)%target_temp_winter(m)  = building_pars(13,building_type)    
+!
+!--           emissivity of wall-, green- and window fraction 
+              surf_usm_v(l)%emissivity(0,m)        = building_pars(ind_emis_wall,building_type)
+              surf_usm_v(l)%emissivity(1,m)        = building_pars(ind_emis_green,building_type)
+              surf_usm_v(l)%emissivity(2,m)        = building_pars(ind_emis_win,building_type)
+
+              surf_usm_v(l)%transmissivity(m)      = building_pars(ind_trans,building_type)
+
+              surf_usm_v(l)%z0(m)                  = building_pars(ind_z0,building_type)
+              surf_usm_v(l)%z0h(m)                 = building_pars(ind_z0qh,building_type)
+              surf_usm_v(l)%z0q(m)                 = building_pars(ind_z0qh,building_type)
+
+              surf_usm_v(l)%albedo_type(0,m)       = INT( building_pars(ind_alb_wall,building_type) )
+              surf_usm_v(l)%albedo_type(1,m)       = INT( building_pars(ind_alb_green,building_type) )
+              surf_usm_v(l)%albedo_type(2,m)       = INT( building_pars(ind_alb_win,building_type) )
+
+              surf_usm_v(l)%zw(nzb_wall,m)         = building_pars(ind_thick_1,building_type)
+              surf_usm_v(l)%zw(nzb_wall+1,m)       = building_pars(ind_thick_2,building_type)
+              surf_usm_v(l)%zw(nzb_wall+2,m)       = building_pars(ind_thick_3,building_type)
+              surf_usm_v(l)%zw(nzb_wall+3,m)       = building_pars(ind_thick_4,building_type)
+              
+              surf_usm_v(l)%zw_green(nzb_wall,m)         = building_pars(ind_thick_1,building_type)
+              surf_usm_v(l)%zw_green(nzb_wall+1,m)       = building_pars(ind_thick_2,building_type)
+              surf_usm_v(l)%zw_green(nzb_wall+2,m)       = building_pars(ind_thick_3,building_type)
+              surf_usm_v(l)%zw_green(nzb_wall+3,m)       = building_pars(ind_thick_4,building_type)
+
+              surf_usm_v(l)%zw_window(nzb_wall,m)         = building_pars(ind_thick_1,building_type)
+              surf_usm_v(l)%zw_window(nzb_wall+1,m)       = building_pars(ind_thick_2,building_type)
+              surf_usm_v(l)%zw_window(nzb_wall+2,m)       = building_pars(ind_thick_3,building_type)
+              surf_usm_v(l)%zw_window(nzb_wall+3,m)       = building_pars(ind_thick_4,building_type)
+
+              surf_usm_v(l)%c_surface(m)           = building_pars(45,building_type)  
+              surf_usm_v(l)%lambda_surf(m)         = building_pars(46,building_type)
+              surf_usm_v(l)%c_surface_green(m)     = building_pars(45,building_type)  
+              surf_usm_v(l)%lambda_surf_green(m)   = building_pars(46,building_type)
+              surf_usm_v(l)%c_surface_window(m)    = building_pars(45,building_type)  
+              surf_usm_v(l)%lambda_surf_window(m)  = building_pars(46,building_type)
+
+           ENDDO
+        ENDDO
+!
+!--     Level 2 - initialization via building type read from file
+        IF ( building_type_f%from_file )  THEN
+           DO  m = 1, surf_usm_h%ns
+              i = surf_usm_h%i(m)
+              j = surf_usm_h%j(m)
+!
+!--           For the moment, limit building type to 6 (to overcome errors in input file).
+              st = building_type_f%var(j,i)
+              IF ( st /= building_type_f%fill )  THEN
+
+!
+!--              In order to distinguish between ground floor level and 
+!--              above-ground-floor level surfaces, set input indices. 
+                 ind_wall_frac    = MERGE( ind_wall_frac_gfl,    ind_wall_frac_agfl,    &
+                                           surf_usm_h%ground_level(m) )
+                 ind_win_frac     = MERGE( ind_win_frac_gfl,     ind_win_frac_agfl,     &
+                                           surf_usm_h%ground_level(m) )
+                 ind_green_frac_w = MERGE( ind_green_frac_w_gfl, ind_green_frac_w_agfl, &
+                                           surf_usm_h%ground_level(m) )
+                 ind_green_frac_r = MERGE( ind_green_frac_r_gfl, ind_green_frac_r_agfl, &
+                                           surf_usm_h%ground_level(m) )
+                 ind_lai_r        = MERGE( ind_lai_r_gfl,        ind_lai_r_agfl,        &
+                                           surf_usm_h%ground_level(m) )
+                 ind_lai_w        = MERGE( ind_lai_w_gfl,        ind_lai_w_agfl,        &
+                                           surf_usm_h%ground_level(m) )
+                 ind_hc1          = MERGE( ind_hc1_gfl,          ind_hc1_agfl,          &
+                                           surf_usm_h%ground_level(m) )
+                 ind_hc2          = MERGE( ind_hc2_gfl,          ind_hc2_agfl,          &
+                                           surf_usm_h%ground_level(m) )
+                 ind_hc3          = MERGE( ind_hc3_gfl,          ind_hc3_agfl,          &
+                                           surf_usm_h%ground_level(m) )
+                 ind_tc1          = MERGE( ind_tc1_gfl,          ind_tc1_agfl,          &
+                                           surf_usm_h%ground_level(m) )
+                 ind_tc2          = MERGE( ind_tc2_gfl,          ind_tc2_agfl,          &
+                                           surf_usm_h%ground_level(m) )
+                 ind_tc3          = MERGE( ind_tc3_gfl,          ind_tc3_agfl,          &
+                                           surf_usm_h%ground_level(m) )
+                 ind_emis_wall    = MERGE( ind_emis_wall_gfl,    ind_emis_wall_agfl,    &
+                                           surf_usm_h%ground_level(m) )
+                 ind_emis_green   = MERGE( ind_emis_green_gfl,   ind_emis_green_agfl,   &
+                                           surf_usm_h%ground_level(m) )
+                 ind_emis_win     = MERGE( ind_emis_win_gfl,     ind_emis_win_agfl,     &
+                                           surf_usm_h%ground_level(m) )
+                 ind_trans        = MERGE( ind_trans_gfl,        ind_trans_agfl,        &
+                                           surf_usm_h%ground_level(m) )
+                 ind_z0           = MERGE( ind_z0_gfl,           ind_z0_agfl,           &
+                                           surf_usm_h%ground_level(m) )
+                 ind_z0qh         = MERGE( ind_z0qh_gfl,         ind_z0qh_agfl,         &
+                                           surf_usm_h%ground_level(m) )
+
+!
+!--              Initialize relatvie wall- (0), green- (1) and window (2) fractions
+                 surf_usm_h%frac(0,m)   = building_pars(ind_wall_frac,st)   
+                 surf_usm_h%frac(1,m)   = building_pars(ind_green_frac_r,st)  
+                 surf_usm_h%frac(2,m)   = building_pars(ind_win_frac,st)  
+                 surf_usm_h%lai(m)      = building_pars(ind_green_frac_r,st)  
+
+                 surf_usm_h%rho_c_wall(nzb_wall,m)   = building_pars(ind_hc1,st)  
+                 surf_usm_h%rho_c_wall(nzb_wall+1,m) = building_pars(ind_hc1,st)
+                 surf_usm_h%rho_c_wall(nzb_wall+2,m) = building_pars(ind_hc2,st)
+                 surf_usm_h%rho_c_wall(nzb_wall+3,m) = building_pars(ind_hc3,st)    
+                 surf_usm_h%lambda_h(nzb_wall,m)   = building_pars(ind_tc1,st)  
+                 surf_usm_h%lambda_h(nzb_wall+1,m) = building_pars(ind_tc1,st) 
+                 surf_usm_h%lambda_h(nzb_wall+2,m) = building_pars(ind_tc2,st)
+                 surf_usm_h%lambda_h(nzb_wall+3,m) = building_pars(ind_tc3,st)    
+                 
+                 surf_usm_h%rho_c_green(nzb_wall,m)   = building_pars(ind_hc1,st)  
+                 surf_usm_h%rho_c_green(nzb_wall+1,m) = building_pars(ind_hc1,st)
+                 surf_usm_h%rho_c_green(nzb_wall+2,m) = building_pars(ind_hc2,st)
+                 surf_usm_h%rho_c_green(nzb_wall+3,m) = building_pars(ind_hc3,st)    
+                 surf_usm_h%lambda_h_green(nzb_wall,m)   = building_pars(ind_tc1,st)  
+                 surf_usm_h%lambda_h_green(nzb_wall+1,m) = building_pars(ind_tc1,st) 
+                 surf_usm_h%lambda_h_green(nzb_wall+2,m) = building_pars(ind_tc2,st)
+                 surf_usm_h%lambda_h_green(nzb_wall+3,m) = building_pars(ind_tc3,st)    
+                
+                 surf_usm_h%rho_c_window(nzb_wall,m)   = building_pars(ind_hc1,st)  
+                 surf_usm_h%rho_c_window(nzb_wall+1,m) = building_pars(ind_hc1,st)
+                 surf_usm_h%rho_c_window(nzb_wall+2,m) = building_pars(ind_hc2,st)
+                 surf_usm_h%rho_c_window(nzb_wall+3,m) = building_pars(ind_hc3,st)    
+                 surf_usm_h%lambda_h_window(nzb_wall,m)   = building_pars(ind_tc1,st)  
+                 surf_usm_h%lambda_h_window(nzb_wall+1,m) = building_pars(ind_tc1,st) 
+                 surf_usm_h%lambda_h_window(nzb_wall+2,m) = building_pars(ind_tc2,st)
+                 surf_usm_h%lambda_h_window(nzb_wall+3,m) = building_pars(ind_tc3,st)    
+
+                 surf_usm_h%target_temp_summer(m)  = building_pars(12,st)    
+                 surf_usm_h%target_temp_winter(m)  = building_pars(13,st)    
+!
+!--              emissivity of wall-, green- and window fraction 
+                 surf_usm_h%emissivity(0,m)        = building_pars(ind_emis_wall,st)
+                 surf_usm_h%emissivity(1,m)        = building_pars(ind_emis_green,st)
+                 surf_usm_h%emissivity(2,m)        = building_pars(ind_emis_win,st)
+
+                 surf_usm_h%transmissivity(m)      = building_pars(ind_trans,st)
+
+                 surf_usm_h%z0(m)                  = building_pars(ind_z0,st)
+                 surf_usm_h%z0h(m)                 = building_pars(ind_z0qh,st)
+                 surf_usm_h%z0q(m)                 = building_pars(ind_z0qh,st)
+!
+!--              albedo type for wall fraction, green fraction, window fraction
+                 surf_usm_h%albedo_type(0,m)       = INT( building_pars(ind_alb_wall,st) )
+                 surf_usm_h%albedo_type(1,m)       = INT( building_pars(ind_alb_green,st) )
+                 surf_usm_h%albedo_type(2,m)       = INT( building_pars(ind_alb_win,st) )
+
+                 surf_usm_h%zw(nzb_wall,m)         = building_pars(ind_thick_1,st)
+                 surf_usm_h%zw(nzb_wall+1,m)       = building_pars(ind_thick_2,st)
+                 surf_usm_h%zw(nzb_wall+2,m)       = building_pars(ind_thick_3,st)
+                 surf_usm_h%zw(nzb_wall+3,m)       = building_pars(ind_thick_4,st)
+                 
+                 surf_usm_h%zw_green(nzb_wall,m)         = building_pars(ind_thick_1,st)
+                 surf_usm_h%zw_green(nzb_wall+1,m)       = building_pars(ind_thick_2,st)
+                 surf_usm_h%zw_green(nzb_wall+2,m)       = building_pars(ind_thick_3,st)
+                 surf_usm_h%zw_green(nzb_wall+3,m)       = building_pars(ind_thick_4,st)
+
+                 surf_usm_h%zw_window(nzb_wall,m)         = building_pars(ind_thick_1,st)
+                 surf_usm_h%zw_window(nzb_wall+1,m)       = building_pars(ind_thick_2,st)
+                 surf_usm_h%zw_window(nzb_wall+2,m)       = building_pars(ind_thick_3,st)
+                 surf_usm_h%zw_window(nzb_wall+3,m)       = building_pars(ind_thick_4,st)
+
+                 surf_usm_h%c_surface(m)           = building_pars(45,st)  
+                 surf_usm_h%lambda_surf(m)         = building_pars(46,st)
+                 surf_usm_h%c_surface_green(m)     = building_pars(45,st)  
+                 surf_usm_h%lambda_surf_green(m)   = building_pars(46,st)
+                 surf_usm_h%c_surface_window(m)    = building_pars(45,st)  
+                 surf_usm_h%lambda_surf_window(m)  = building_pars(46,st)
+
+              ENDIF
+           ENDDO
+
+           DO  l = 0, 3
+              DO  m = 1, surf_usm_v(l)%ns
+                 i = surf_usm_v(l)%i(m) + surf_usm_v(l)%ioff
+                 j = surf_usm_v(l)%j(m) + surf_usm_v(l)%joff
+!
+!--              For the moment, limit building type to 6 (to overcome errors in input file).
+
+                 st = building_type_f%var(j,i)
+                 IF ( st /= building_type_f%fill )  THEN
+
+!
+!--                 In order to distinguish between ground floor level and 
+!--                 above-ground-floor level surfaces, set input indices. 
+                    ind_wall_frac    = MERGE( ind_wall_frac_gfl,    ind_wall_frac_agfl,    &
+                                              surf_usm_v(l)%ground_level(m) )
+                    ind_win_frac     = MERGE( ind_win_frac_gfl,     ind_win_frac_agfl,     &
+                                              surf_usm_v(l)%ground_level(m) )
+                    ind_green_frac_w = MERGE( ind_green_frac_w_gfl, ind_green_frac_w_agfl, &
+                                              surf_usm_v(l)%ground_level(m) )
+                    ind_green_frac_r = MERGE( ind_green_frac_r_gfl, ind_green_frac_r_agfl, &
+                                              surf_usm_v(l)%ground_level(m) )
+                    ind_lai_r        = MERGE( ind_lai_r_gfl,        ind_lai_r_agfl,        &
+                                              surf_usm_v(l)%ground_level(m) )
+                    ind_lai_w        = MERGE( ind_lai_w_gfl,        ind_lai_w_agfl,        &
+                                              surf_usm_v(l)%ground_level(m) )
+                    ind_hc1          = MERGE( ind_hc1_gfl,          ind_hc1_agfl,          &
+                                              surf_usm_v(l)%ground_level(m) )
+                    ind_hc2          = MERGE( ind_hc2_gfl,          ind_hc2_agfl,          &
+                                              surf_usm_v(l)%ground_level(m) )
+                    ind_hc3          = MERGE( ind_hc3_gfl,          ind_hc3_agfl,          &
+                                              surf_usm_v(l)%ground_level(m) )
+                    ind_tc1          = MERGE( ind_tc1_gfl,          ind_tc1_agfl,          &
+                                              surf_usm_v(l)%ground_level(m) )
+                    ind_tc2          = MERGE( ind_tc2_gfl,          ind_tc2_agfl,          &
+                                              surf_usm_v(l)%ground_level(m) )
+                    ind_tc3          = MERGE( ind_tc3_gfl,          ind_tc3_agfl,          &
+                                              surf_usm_v(l)%ground_level(m) )
+                    ind_emis_wall    = MERGE( ind_emis_wall_gfl,    ind_emis_wall_agfl,    &
+                                              surf_usm_v(l)%ground_level(m) )
+                    ind_emis_green   = MERGE( ind_emis_green_gfl,   ind_emis_green_agfl,   &
+                                              surf_usm_v(l)%ground_level(m) )
+                    ind_emis_win     = MERGE( ind_emis_win_gfl,     ind_emis_win_agfl,     &
+                                              surf_usm_v(l)%ground_level(m) )
+                    ind_trans        = MERGE( ind_trans_gfl,       ind_trans_agfl,         &
+                                        surf_usm_v(l)%ground_level(m) )
+                    ind_z0           = MERGE( ind_z0_gfl,           ind_z0_agfl,           &
+                                              surf_usm_v(l)%ground_level(m) )
+                    ind_z0qh         = MERGE( ind_z0qh_gfl,         ind_z0qh_agfl,         &
+                                              surf_usm_v(l)%ground_level(m) )
+
+!
+!--                 Initialize relatvie wall- (0), green- (1) and window (2) fractions
+                    surf_usm_v(l)%frac(0,m) = building_pars(ind_wall_frac,st)   
+                    surf_usm_v(l)%frac(1,m) = building_pars(ind_green_frac_w,st)  
+                    surf_usm_v(l)%frac(2,m) = building_pars(ind_win_frac,st)   
+                    surf_usm_v(l)%lai(m)    = building_pars(ind_lai_w,st)  
+
+                    surf_usm_v(l)%rho_c_wall(nzb_wall,m)   = building_pars(ind_hc1,st)  
+                    surf_usm_v(l)%rho_c_wall(nzb_wall+1,m) = building_pars(ind_hc1,st)
+                    surf_usm_v(l)%rho_c_wall(nzb_wall+2,m) = building_pars(ind_hc2,st)
+                    surf_usm_v(l)%rho_c_wall(nzb_wall+3,m) = building_pars(ind_hc3,st)
+                    
+                    surf_usm_v(l)%rho_c_green(nzb_wall,m)   = building_pars(ind_hc1,st)  
+                    surf_usm_v(l)%rho_c_green(nzb_wall+1,m) = building_pars(ind_hc1,st)
+                    surf_usm_v(l)%rho_c_green(nzb_wall+2,m) = building_pars(ind_hc2,st)
+                    surf_usm_v(l)%rho_c_green(nzb_wall+3,m) = building_pars(ind_hc3,st)
+                    
+                    surf_usm_v(l)%rho_c_window(nzb_wall,m)   = building_pars(ind_hc1,st)  
+                    surf_usm_v(l)%rho_c_window(nzb_wall+1,m) = building_pars(ind_hc1,st)
+                    surf_usm_v(l)%rho_c_window(nzb_wall+2,m) = building_pars(ind_hc2,st)
+                    surf_usm_v(l)%rho_c_window(nzb_wall+3,m) = building_pars(ind_hc3,st)
+
+                    surf_usm_v(l)%lambda_h(nzb_wall,m)   = building_pars(ind_tc1,st)  
+                    surf_usm_v(l)%lambda_h(nzb_wall+1,m) = building_pars(ind_tc1,st) 
+                    surf_usm_v(l)%lambda_h(nzb_wall+2,m) = building_pars(ind_tc2,st)
+                    surf_usm_v(l)%lambda_h(nzb_wall+3,m) = building_pars(ind_tc3,st) 
+                    
+                    surf_usm_v(l)%lambda_h_green(nzb_wall,m)   = building_pars(ind_tc1,st)  
+                    surf_usm_v(l)%lambda_h_green(nzb_wall+1,m) = building_pars(ind_tc1,st) 
+                    surf_usm_v(l)%lambda_h_green(nzb_wall+2,m) = building_pars(ind_tc2,st)
+                    surf_usm_v(l)%lambda_h_green(nzb_wall+3,m) = building_pars(ind_tc3,st) 
+                    
+                    surf_usm_v(l)%lambda_h_window(nzb_wall,m)   = building_pars(ind_tc1,st)  
+                    surf_usm_v(l)%lambda_h_window(nzb_wall+1,m) = building_pars(ind_tc1,st) 
+                    surf_usm_v(l)%lambda_h_window(nzb_wall+2,m) = building_pars(ind_tc2,st)
+                    surf_usm_v(l)%lambda_h_window(nzb_wall+3,m) = building_pars(ind_tc3,st) 
+
+                    surf_usm_v(l)%target_temp_summer(m)  = building_pars(12,st)    
+                    surf_usm_v(l)%target_temp_winter(m)  = building_pars(13,st)    
+!
+!--                 emissivity of wall-, green- and window fraction 
+                    surf_usm_v(l)%emissivity(0,m)        = building_pars(ind_emis_wall,st)
+                    surf_usm_v(l)%emissivity(1,m)        = building_pars(ind_emis_green,st)
+                    surf_usm_v(l)%emissivity(2,m)        = building_pars(ind_emis_win,st)
+
+                    surf_usm_v(l)%transmissivity(m)      = building_pars(ind_trans,st)
+
+                    surf_usm_v(l)%z0(m)                  = building_pars(ind_z0,st)
+                    surf_usm_v(l)%z0h(m)                 = building_pars(ind_z0qh,st)
+                    surf_usm_v(l)%z0q(m)                 = building_pars(ind_z0qh,st)
+
+                    surf_usm_v(l)%albedo_type(0,m)       = INT( building_pars(ind_alb_wall,st) )
+                    surf_usm_v(l)%albedo_type(1,m)       = INT( building_pars(ind_alb_green,st) )
+                    surf_usm_v(l)%albedo_type(2,m)       = INT( building_pars(ind_alb_win,st) )
+
+                    surf_usm_v(l)%zw(nzb_wall,m)         = building_pars(ind_thick_1,st)
+                    surf_usm_v(l)%zw(nzb_wall+1,m)       = building_pars(ind_thick_2,st)
+                    surf_usm_v(l)%zw(nzb_wall+2,m)       = building_pars(ind_thick_3,st)
+                    surf_usm_v(l)%zw(nzb_wall+3,m)       = building_pars(ind_thick_4,st)
+                    
+                    surf_usm_v(l)%zw_green(nzb_wall,m)         = building_pars(ind_thick_1,st)
+                    surf_usm_v(l)%zw_green(nzb_wall+1,m)       = building_pars(ind_thick_2,st)
+                    surf_usm_v(l)%zw_green(nzb_wall+2,m)       = building_pars(ind_thick_3,st)
+                    surf_usm_v(l)%zw_green(nzb_wall+3,m)       = building_pars(ind_thick_4,st)
+                    
+                    surf_usm_v(l)%zw_window(nzb_wall,m)         = building_pars(ind_thick_1,st)
+                    surf_usm_v(l)%zw_window(nzb_wall+1,m)       = building_pars(ind_thick_2,st)
+                    surf_usm_v(l)%zw_window(nzb_wall+2,m)       = building_pars(ind_thick_3,st)
+                    surf_usm_v(l)%zw_window(nzb_wall+3,m)       = building_pars(ind_thick_4,st)
+
+                    surf_usm_v(l)%c_surface(m)           = building_pars(45,st)  
+                    surf_usm_v(l)%lambda_surf(m)         = building_pars(46,st) 
+                    surf_usm_v(l)%c_surface_green(m)     = building_pars(45,st)  
+                    surf_usm_v(l)%lambda_surf_green(m)   = building_pars(46,st) 
+                    surf_usm_v(l)%c_surface_window(m)    = building_pars(45,st)  
+                    surf_usm_v(l)%lambda_surf_window(m)  = building_pars(46,st) 
+
+
+                 ENDIF
+              ENDDO
+           ENDDO
+        ENDIF 
+
+!
+!--     Level 3 - initialization via building_pars read from file
+        IF ( building_pars_f%from_file )  THEN
+           DO  m = 1, surf_usm_h%ns
+              i = surf_usm_h%i(m)
+              j = surf_usm_h%j(m)
+
+!
+!--           In order to distinguish between ground floor level and 
+!--           above-ground-floor level surfaces, set input indices. 
+              ind_wall_frac    = MERGE( ind_wall_frac_gfl,    ind_wall_frac_agfl,    &
+                                        surf_usm_h%ground_level(m) )
+              ind_win_frac     = MERGE( ind_win_frac_gfl,     ind_win_frac_agfl,     &
+                                        surf_usm_h%ground_level(m) )
+              ind_green_frac_w = MERGE( ind_green_frac_w_gfl, ind_green_frac_w_agfl, &
+                                        surf_usm_h%ground_level(m) )
+              ind_green_frac_r = MERGE( ind_green_frac_r_gfl, ind_green_frac_r_agfl, &
+                                        surf_usm_h%ground_level(m) )
+              ind_lai_r        = MERGE( ind_lai_r_gfl,        ind_lai_r_agfl,        &
+                                        surf_usm_h%ground_level(m) )
+              ind_lai_w        = MERGE( ind_lai_w_gfl,        ind_lai_w_agfl,        &
+                                        surf_usm_h%ground_level(m) )
+              ind_hc1          = MERGE( ind_hc1_gfl,          ind_hc1_agfl,          &
+                                        surf_usm_h%ground_level(m) )
+              ind_hc2          = MERGE( ind_hc2_gfl,          ind_hc2_agfl,          &
+                                        surf_usm_h%ground_level(m) )
+              ind_hc3          = MERGE( ind_hc3_gfl,          ind_hc3_agfl,          &
+                                        surf_usm_h%ground_level(m) )
+              ind_tc1          = MERGE( ind_tc1_gfl,          ind_tc1_agfl,          &
+                                        surf_usm_h%ground_level(m) )
+              ind_tc2          = MERGE( ind_tc2_gfl,          ind_tc2_agfl,          &
+                                        surf_usm_h%ground_level(m) )
+              ind_tc3          = MERGE( ind_tc3_gfl,          ind_tc3_agfl,          &
+                                        surf_usm_h%ground_level(m) )
+              ind_emis_wall    = MERGE( ind_emis_wall_gfl,    ind_emis_wall_agfl,    &
+                                        surf_usm_h%ground_level(m) )
+              ind_emis_green   = MERGE( ind_emis_green_gfl,   ind_emis_green_agfl,   &
+                                        surf_usm_h%ground_level(m) )
+              ind_emis_win     = MERGE( ind_emis_win_gfl,     ind_emis_win_agfl,     &
+                                        surf_usm_h%ground_level(m) )
+              ind_trans        = MERGE( ind_trans_gfl,        ind_trans_agfl,        &
+                                        surf_usm_h%ground_level(m) )
+              ind_z0           = MERGE( ind_z0_gfl,           ind_z0_agfl,           &
+                                        surf_usm_h%ground_level(m) )
+              ind_z0qh         = MERGE( ind_z0qh_gfl,         ind_z0qh_agfl,         &
+                                        surf_usm_h%ground_level(m) )
+
+!
+!--           Initialize relatvie wall- (0), green- (1) and window (2) fractions
+              IF ( building_pars_f%pars_xy(ind_wall_frac,j,i) /= building_pars_f%fill )    &
+                 surf_usm_h%frac(0,m)  = building_pars_f%pars_xy(ind_wall_frac,j,i)   
+              IF ( building_pars_f%pars_xy(ind_green_frac_r,j,i) /= building_pars_f%fill ) & 
+                 surf_usm_h%frac(1,m)  = building_pars_f%pars_xy(ind_green_frac_r,j,i) 
+              IF ( building_pars_f%pars_xy(ind_win_frac,j,i) /= building_pars_f%fill )     & 
+                 surf_usm_h%frac(2,m)  = building_pars_f%pars_xy(ind_win_frac,j,i)
+
+ 
+              IF ( building_pars_f%pars_xy(ind_lai_r,j,i) /= building_pars_f%fill )        &
+                 surf_usm_h%lai(m)             = building_pars_f%pars_xy(ind_lai_r,j,i)
+
+              IF ( building_pars_f%pars_xy(ind_hc1,j,i) /= building_pars_f%fill )  THEN 
+                 surf_usm_h%rho_c_wall(nzb_wall,m)   = building_pars_f%pars_xy(ind_hc1,j,i)  
+                 surf_usm_h%rho_c_wall(nzb_wall+1,m) = building_pars_f%pars_xy(ind_hc1,j,i)
+              ENDIF
+              IF ( building_pars_f%pars_xy(ind_hc2,j,i) /= building_pars_f%fill )    &
+                 surf_usm_h%rho_c_wall(nzb_wall+2,m) = building_pars_f%pars_xy(ind_hc2,j,i)
+              IF ( building_pars_f%pars_xy(ind_hc3,j,i) /= building_pars_f%fill )    & 
+                 surf_usm_h%rho_c_wall(nzb_wall+3,m) = building_pars_f%pars_xy(ind_hc3,j,i)
+              IF ( building_pars_f%pars_xy(ind_hc1,j,i) /= building_pars_f%fill )  THEN 
+                 surf_usm_h%rho_c_green(nzb_wall,m)   = building_pars_f%pars_xy(ind_hc1,j,i)  
+                 surf_usm_h%rho_c_green(nzb_wall+1,m) = building_pars_f%pars_xy(ind_hc1,j,i)
+              ENDIF
+              IF ( building_pars_f%pars_xy(ind_hc2,j,i) /= building_pars_f%fill )    &
+                 surf_usm_h%rho_c_green(nzb_wall+2,m) = building_pars_f%pars_xy(ind_hc2,j,i)
+              IF ( building_pars_f%pars_xy(ind_hc3,j,i) /= building_pars_f%fill )    & 
+                 surf_usm_h%rho_c_green(nzb_wall+3,m) = building_pars_f%pars_xy(ind_hc3,j,i)
+              IF ( building_pars_f%pars_xy(ind_hc1,j,i) /= building_pars_f%fill )  THEN 
+                 surf_usm_h%rho_c_window(nzb_wall,m)   = building_pars_f%pars_xy(ind_hc1,j,i)  
+                 surf_usm_h%rho_c_window(nzb_wall+1,m) = building_pars_f%pars_xy(ind_hc1,j,i)
+              ENDIF
+              IF ( building_pars_f%pars_xy(ind_hc2,j,i) /= building_pars_f%fill )    &
+                 surf_usm_h%rho_c_window(nzb_wall+2,m) = building_pars_f%pars_xy(ind_hc2,j,i)
+              IF ( building_pars_f%pars_xy(ind_hc3,j,i) /= building_pars_f%fill )    & 
+                 surf_usm_h%rho_c_window(nzb_wall+3,m) = building_pars_f%pars_xy(ind_hc3,j,i)
+
+              IF ( building_pars_f%pars_xy(ind_tc1,j,i) /= building_pars_f%fill )  THEN
+                 surf_usm_h%lambda_h(nzb_wall,m)   = building_pars_f%pars_xy(ind_tc1,j,i)         
+                 surf_usm_h%lambda_h(nzb_wall+1,m) = building_pars_f%pars_xy(ind_tc1,j,i)        
+              ENDIF
+              IF ( building_pars_f%pars_xy(ind_tc2,j,i) /= building_pars_f%fill )    &
+                 surf_usm_h%lambda_h(nzb_wall+2,m) = building_pars_f%pars_xy(ind_tc2,j,i)
+              IF ( building_pars_f%pars_xy(ind_tc3,j,i) /= building_pars_f%fill )    & 
+                 surf_usm_h%lambda_h(nzb_wall+3,m) = building_pars_f%pars_xy(ind_tc3,j,i)    
+              IF ( building_pars_f%pars_xy(ind_tc1,j,i) /= building_pars_f%fill )  THEN
+                 surf_usm_h%lambda_h_green(nzb_wall,m)   = building_pars_f%pars_xy(ind_tc1,j,i)         
+                 surf_usm_h%lambda_h_green(nzb_wall+1,m) = building_pars_f%pars_xy(ind_tc1,j,i)        
+              ENDIF
+              IF ( building_pars_f%pars_xy(ind_tc2,j,i) /= building_pars_f%fill )    &
+                 surf_usm_h%lambda_h_green(nzb_wall+2,m) = building_pars_f%pars_xy(ind_tc2,j,i)
+              IF ( building_pars_f%pars_xy(ind_tc3,j,i) /= building_pars_f%fill )    & 
+                 surf_usm_h%lambda_h_green(nzb_wall+3,m) = building_pars_f%pars_xy(ind_tc3,j,i)    
+              IF ( building_pars_f%pars_xy(ind_tc1,j,i) /= building_pars_f%fill )  THEN
+                 surf_usm_h%lambda_h_window(nzb_wall,m)   = building_pars_f%pars_xy(ind_tc1,j,i)         
+                 surf_usm_h%lambda_h_window(nzb_wall+1,m) = building_pars_f%pars_xy(ind_tc1,j,i)        
+              ENDIF
+              IF ( building_pars_f%pars_xy(ind_tc2,j,i) /= building_pars_f%fill )    &
+                 surf_usm_h%lambda_h_window(nzb_wall+2,m) = building_pars_f%pars_xy(ind_tc2,j,i)
+              IF ( building_pars_f%pars_xy(ind_tc3,j,i) /= building_pars_f%fill )    & 
+                 surf_usm_h%lambda_h_window(nzb_wall+3,m) = building_pars_f%pars_xy(ind_tc3,j,i)    
+
+              IF ( building_pars_f%pars_xy(12,j,i) /= building_pars_f%fill )         & 
+                 surf_usm_h%target_temp_summer(m)  = building_pars_f%pars_xy(12,j,i)   
+              IF ( building_pars_f%pars_xy(13,j,i) /= building_pars_f%fill )         & 
+                 surf_usm_h%target_temp_winter(m)  = building_pars_f%pars_xy(13,j,i)   
+
+              IF ( building_pars_f%pars_xy(ind_emis_wall,j,i) /= building_pars_f%fill ) & 
+                 surf_usm_h%emissivity(0,m)        = building_pars_f%pars_xy(ind_emis_wall,j,i)
+              IF ( building_pars_f%pars_xy(ind_emis_green,j,i) /= building_pars_f%fill )& 
+                 surf_usm_h%emissivity(1,m)        = building_pars_f%pars_xy(ind_emis_green,j,i)
+              IF ( building_pars_f%pars_xy(ind_emis_win,j,i) /= building_pars_f%fill )  & 
+                 surf_usm_h%emissivity(2,m)        = building_pars_f%pars_xy(ind_emis_win,j,i)
+
+              IF ( building_pars_f%pars_xy(ind_trans,j,i) /= building_pars_f%fill )    & 
+                 surf_usm_h%transmissivity(m)      = building_pars_f%pars_xy(ind_trans,j,i)
+
+              IF ( building_pars_f%pars_xy(ind_z0,j,i) /= building_pars_f%fill )    & 
+                 surf_usm_h%z0(m)                  = building_pars_f%pars_xy(ind_z0,j,i)
+              IF ( building_pars_f%pars_xy(ind_z0qh,j,i) /= building_pars_f%fill )  & 
+                 surf_usm_h%z0h(m)                 = building_pars_f%pars_xy(ind_z0qh,j,i)
+              IF ( building_pars_f%pars_xy(ind_z0qh,j,i) /= building_pars_f%fill )  & 
+                 surf_usm_h%z0q(m)                 = building_pars_f%pars_xy(ind_z0qh,j,i)
+
+              IF ( building_pars_f%pars_xy(ind_alb_wall,j,i) /= building_pars_f%fill )    & 
+                 surf_usm_h%albedo_type(0,m)       = building_pars_f%pars_xy(ind_alb_wall,j,i)
+              IF ( building_pars_f%pars_xy(ind_alb_green,j,i) /= building_pars_f%fill )    & 
+                 surf_usm_h%albedo_type(1,m)       = building_pars_f%pars_xy(ind_alb_green,j,i)
+              IF ( building_pars_f%pars_xy(ind_alb_win,j,i) /= building_pars_f%fill )    & 
+                 surf_usm_h%albedo_type(2,m)       = building_pars_f%pars_xy(ind_alb_win,j,i)
+
+              IF ( building_pars_f%pars_xy(ind_thick_1,j,i) /= building_pars_f%fill )    & 
+                 surf_usm_h%zw(nzb_wall,m) = building_pars_f%pars_xy(ind_thick_1,j,i)
+              IF ( building_pars_f%pars_xy(ind_thick_2,j,i) /= building_pars_f%fill )    & 
+                 surf_usm_h%zw(nzb_wall+1,m) = building_pars_f%pars_xy(ind_thick_2,j,i)
+              IF ( building_pars_f%pars_xy(ind_thick_3,j,i) /= building_pars_f%fill )    & 
+                 surf_usm_h%zw(nzb_wall+2,m) = building_pars_f%pars_xy(ind_thick_3,j,i)
+              IF ( building_pars_f%pars_xy(ind_thick_4,j,i) /= building_pars_f%fill )    & 
+                 surf_usm_h%zw(nzb_wall+3,m) = building_pars_f%pars_xy(ind_thick_4,j,i)
+              IF ( building_pars_f%pars_xy(ind_thick_1,j,i) /= building_pars_f%fill )    & 
+                 surf_usm_h%zw_green(nzb_wall,m) = building_pars_f%pars_xy(ind_thick_1,j,i)
+              IF ( building_pars_f%pars_xy(ind_thick_2,j,i) /= building_pars_f%fill )    & 
+                 surf_usm_h%zw_green(nzb_wall+1,m) = building_pars_f%pars_xy(ind_thick_2,j,i)
+              IF ( building_pars_f%pars_xy(ind_thick_3,j,i) /= building_pars_f%fill )    & 
+                 surf_usm_h%zw_green(nzb_wall+2,m) = building_pars_f%pars_xy(ind_thick_3,j,i)
+              IF ( building_pars_f%pars_xy(ind_thick_4,j,i) /= building_pars_f%fill )    & 
+                 surf_usm_h%zw_green(nzb_wall+3,m) = building_pars_f%pars_xy(ind_thick_4,j,i)
+              IF ( building_pars_f%pars_xy(ind_thick_1,j,i) /= building_pars_f%fill )    & 
+                 surf_usm_h%zw_window(nzb_wall,m) = building_pars_f%pars_xy(ind_thick_1,j,i)
+              IF ( building_pars_f%pars_xy(ind_thick_2,j,i) /= building_pars_f%fill )    & 
+                 surf_usm_h%zw_window(nzb_wall+1,m) = building_pars_f%pars_xy(ind_thick_2,j,i)
+              IF ( building_pars_f%pars_xy(ind_thick_3,j,i) /= building_pars_f%fill )    & 
+                 surf_usm_h%zw_window(nzb_wall+2,m) = building_pars_f%pars_xy(ind_thick_3,j,i)
+              IF ( building_pars_f%pars_xy(ind_thick_4,j,i) /= building_pars_f%fill )    & 
+                 surf_usm_h%zw_window(nzb_wall+3,m) = building_pars_f%pars_xy(ind_thick_4,j,i)
+
+              IF ( building_pars_f%pars_xy(45,j,i) /= building_pars_f%fill )    & 
+                 surf_usm_h%c_surface(m)           = building_pars_f%pars_xy(45,j,i)
+              IF ( building_pars_f%pars_xy(46,j,i) /= building_pars_f%fill )    & 
+                 surf_usm_h%lambda_surf(m)         = building_pars_f%pars_xy(46,j,i)
+              IF ( building_pars_f%pars_xy(45,j,i) /= building_pars_f%fill )    & 
+                 surf_usm_h%c_surface_green(m)           = building_pars_f%pars_xy(45,j,i)
+              IF ( building_pars_f%pars_xy(46,j,i) /= building_pars_f%fill )    & 
+                 surf_usm_h%lambda_surf_green(m)         = building_pars_f%pars_xy(46,j,i)
+              IF ( building_pars_f%pars_xy(45,j,i) /= building_pars_f%fill )    & 
+                 surf_usm_h%c_surface_window(m)           = building_pars_f%pars_xy(45,j,i)
+              IF ( building_pars_f%pars_xy(46,j,i) /= building_pars_f%fill )    & 
+                 surf_usm_h%lambda_surf_window(m)         = building_pars_f%pars_xy(46,j,i)
+           ENDDO
+
+
+
+           DO  l = 0, 3
+              DO  m = 1, surf_usm_v(l)%ns
+                 i = surf_usm_v(l)%i(m) + surf_usm_v(l)%ioff
+                 j = surf_usm_v(l)%j(m) + surf_usm_v(l)%joff
+                
+!
+!--              In order to distinguish between ground floor level and 
+!--              above-ground-floor level surfaces, set input indices. 
+                 ind_wall_frac    = MERGE( ind_wall_frac_gfl,    ind_wall_frac_agfl,     &
+                                           surf_usm_v(l)%ground_level(m) )
+                 ind_win_frac     = MERGE( ind_win_frac_gfl,     ind_win_frac_agfl,     &
+                                           surf_usm_v(l)%ground_level(m) )
+                 ind_green_frac_w = MERGE( ind_green_frac_w_gfl, ind_green_frac_w_agfl, &
+                                           surf_usm_v(l)%ground_level(m) )
+                 ind_green_frac_r = MERGE( ind_green_frac_r_gfl, ind_green_frac_r_agfl, &
+                                           surf_usm_v(l)%ground_level(m) )
+                 ind_lai_r        = MERGE( ind_lai_r_gfl,        ind_lai_r_agfl,        &
+                                           surf_usm_v(l)%ground_level(m) )
+                 ind_lai_w        = MERGE( ind_lai_w_gfl,        ind_lai_w_agfl,        &
+                                           surf_usm_v(l)%ground_level(m) )
+                 ind_hc1          = MERGE( ind_hc1_gfl,          ind_hc1_agfl,          &
+                                           surf_usm_v(l)%ground_level(m) )
+                 ind_hc2          = MERGE( ind_hc2_gfl,          ind_hc2_agfl,          &
+                                           surf_usm_v(l)%ground_level(m) )
+                 ind_hc3          = MERGE( ind_hc3_gfl,          ind_hc3_agfl,          &
+                                           surf_usm_v(l)%ground_level(m) )
+                 ind_tc1          = MERGE( ind_tc1_gfl,          ind_tc1_agfl,          &
+                                           surf_usm_v(l)%ground_level(m) )
+                 ind_tc2          = MERGE( ind_tc2_gfl,          ind_tc2_agfl,          &
+                                           surf_usm_v(l)%ground_level(m) )
+                 ind_tc3          = MERGE( ind_tc3_gfl,          ind_tc3_agfl,          &
+                                           surf_usm_v(l)%ground_level(m) )
+                 ind_emis_wall    = MERGE( ind_emis_wall_gfl,    ind_emis_wall_agfl,    &
+                                           surf_usm_v(l)%ground_level(m) )
+                 ind_emis_green   = MERGE( ind_emis_green_gfl,   ind_emis_green_agfl,   &
+                                           surf_usm_v(l)%ground_level(m) )
+                 ind_emis_win     = MERGE( ind_emis_win_gfl,     ind_emis_win_agfl,     &
+                                           surf_usm_v(l)%ground_level(m) )
+                 ind_trans        = MERGE( ind_trans_gfl,       ind_trans_agfl,         &
+                                           surf_usm_v(l)%ground_level(m) )
+                 ind_z0           = MERGE( ind_z0_gfl,           ind_z0_agfl,           &
+                                           surf_usm_v(l)%ground_level(m) )
+                 ind_z0qh         = MERGE( ind_z0qh_gfl,         ind_z0qh_agfl,         &
+                                              surf_usm_v(l)%ground_level(m) )
+
+!
+!--              Initialize relatvie wall- (0), green- (1) and window (2) fractions
+                 IF ( building_pars_f%pars_xy(ind_wall_frac,j,i) /=                     &
+                      building_pars_f%fill )                                            &
+                    surf_usm_v(l)%frac(0,m)  = building_pars_f%pars_xy(ind_wall_frac,j,i)   
+                 IF ( building_pars_f%pars_xy(ind_green_frac_w,j,i) /=                  &
+                      building_pars_f%fill )                                            & 
+                    surf_usm_v(l)%frac(1,m)  = building_pars_f%pars_xy(ind_green_frac_w,j,i) 
+                 IF ( building_pars_f%pars_xy(ind_win_frac,j,i) /=                      &
+                      building_pars_f%fill )                                            & 
+                    surf_usm_v(l)%frac(2,m)  = building_pars_f%pars_xy(ind_win_frac,j,i)
+  
+                 IF ( building_pars_f%pars_xy(ind_lai_w,j,i) /= building_pars_f%fill )  & 
+                    surf_usm_v(l)%lai(m) = building_pars_f%pars_xy(ind_lai_w,j,i)
+
+                 IF ( building_pars_f%pars_xy(ind_hc1,j,i) /= building_pars_f%fill )    &
+                 THEN 
+                    surf_usm_v(l)%rho_c_wall(nzb_wall,m)   =                            &
+                                                    building_pars_f%pars_xy(ind_hc1,j,i)  
+                    surf_usm_v(l)%rho_c_wall(nzb_wall+1,m) =                            &
+                                                    building_pars_f%pars_xy(ind_hc1,j,i)
+                 ENDIF
+                 IF ( building_pars_f%pars_xy(ind_hc2,j,i) /= building_pars_f%fill )    &
+                    surf_usm_v(l)%rho_c_wall(nzb_wall+2,m) =                            &                            
+                                                    building_pars_f%pars_xy(ind_hc2,j,i)
+                 IF ( building_pars_f%pars_xy(ind_hc3,j,i) /= building_pars_f%fill )    & 
+                    surf_usm_v(l)%rho_c_wall(nzb_wall+3,m) =                            &
+                                                    building_pars_f%pars_xy(ind_hc3,j,i)
+                 IF ( building_pars_f%pars_xy(ind_hc1,j,i) /= building_pars_f%fill )  THEN 
+                    surf_usm_v(l)%rho_c_green(nzb_wall,m)   =                           &
+                                                    building_pars_f%pars_xy(ind_hc1,j,i)  
+                    surf_usm_v(l)%rho_c_green(nzb_wall+1,m) =                           &
+                                                    building_pars_f%pars_xy(ind_hc1,j,i)
+                 ENDIF
+                 IF ( building_pars_f%pars_xy(ind_hc2,j,i) /= building_pars_f%fill )    &
+                    surf_usm_v(l)%rho_c_green(nzb_wall+2,m) = building_pars_f%pars_xy(ind_hc2,j,i)
+                 IF ( building_pars_f%pars_xy(ind_hc3,j,i) /= building_pars_f%fill )    & 
+                    surf_usm_v(l)%rho_c_green(nzb_wall+3,m) = building_pars_f%pars_xy(ind_hc3,j,i)    
+                 IF ( building_pars_f%pars_xy(ind_hc1,j,i) /= building_pars_f%fill )  THEN 
+                    surf_usm_v(l)%rho_c_window(nzb_wall,m)   = building_pars_f%pars_xy(ind_hc1,j,i)  
+                    surf_usm_v(l)%rho_c_window(nzb_wall+1,m) = building_pars_f%pars_xy(ind_hc1,j,i)
+                 ENDIF
+                 IF ( building_pars_f%pars_xy(ind_hc2,j,i) /= building_pars_f%fill )    &
+                    surf_usm_v(l)%rho_c_window(nzb_wall+2,m) = building_pars_f%pars_xy(ind_hc2,j,i)
+                 IF ( building_pars_f%pars_xy(ind_hc3,j,i) /= building_pars_f%fill )    &
+                    surf_usm_v(l)%rho_c_window(nzb_wall+3,m) = building_pars_f%pars_xy(ind_hc3,j,i)
+
+                 IF ( building_pars_f%pars_xy(ind_tc1,j,i) /= building_pars_f%fill )  THEN
+                    surf_usm_v(l)%lambda_h(nzb_wall,m)   = building_pars_f%pars_xy(ind_tc1,j,i)         
+                    surf_usm_v(l)%lambda_h(nzb_wall+1,m) = building_pars_f%pars_xy(ind_tc1,j,i)        
+                 ENDIF
+                 IF ( building_pars_f%pars_xy(ind_tc2,j,i) /= building_pars_f%fill )    &
+                    surf_usm_v(l)%lambda_h(nzb_wall+2,m) = building_pars_f%pars_xy(ind_tc2,j,i)
+                 IF ( building_pars_f%pars_xy(ind_tc3,j,i) /= building_pars_f%fill )    & 
+                    surf_usm_v(l)%lambda_h(nzb_wall+3,m) = building_pars_f%pars_xy(ind_tc3,j,i)    
+                 IF ( building_pars_f%pars_xy(ind_tc1,j,i) /= building_pars_f%fill )  THEN
+                    surf_usm_v(l)%lambda_h_green(nzb_wall,m)   = building_pars_f%pars_xy(ind_tc1,j,i)         
+                    surf_usm_v(l)%lambda_h_green(nzb_wall+1,m) = building_pars_f%pars_xy(ind_tc1,j,i)        
+                 ENDIF
+                 IF ( building_pars_f%pars_xy(ind_tc2,j,i) /= building_pars_f%fill )    &
+                    surf_usm_v(l)%lambda_h_green(nzb_wall+2,m) = building_pars_f%pars_xy(ind_tc2,j,i)
+                 IF ( building_pars_f%pars_xy(ind_tc3,j,i) /= building_pars_f%fill )    & 
+                    surf_usm_v(l)%lambda_h_green(nzb_wall+3,m) = building_pars_f%pars_xy(ind_tc3,j,i)    
+                 IF ( building_pars_f%pars_xy(ind_tc1,j,i) /= building_pars_f%fill )  THEN
+                    surf_usm_v(l)%lambda_h_window(nzb_wall,m)   = building_pars_f%pars_xy(ind_tc1,j,i)         
+                    surf_usm_v(l)%lambda_h_window(nzb_wall+1,m) = building_pars_f%pars_xy(ind_tc1,j,i)        
+                 ENDIF
+                 IF ( building_pars_f%pars_xy(ind_tc2,j,i) /= building_pars_f%fill )    &
+                    surf_usm_v(l)%lambda_h_window(nzb_wall+2,m) = building_pars_f%pars_xy(ind_tc2,j,i)
+                 IF ( building_pars_f%pars_xy(ind_tc3,j,i) /= building_pars_f%fill )    & 
+                    surf_usm_v(l)%lambda_h_window(nzb_wall+3,m) = building_pars_f%pars_xy(ind_tc3,j,i)
+
+                 IF ( building_pars_f%pars_xy(12,j,i) /= building_pars_f%fill )         & 
+                    surf_usm_v(l)%target_temp_summer(m)  = building_pars_f%pars_xy(12,j,i)   
+                 IF ( building_pars_f%pars_xy(13,j,i) /= building_pars_f%fill )         & 
+                    surf_usm_v(l)%target_temp_winter(m)  = building_pars_f%pars_xy(13,j,i)   
+
+                 IF ( building_pars_f%pars_xy(ind_emis_wall,j,i) /= building_pars_f%fill ) & 
+                    surf_usm_v(l)%emissivity(0,m)        = building_pars_f%pars_xy(ind_emis_wall,j,i)
+                 IF ( building_pars_f%pars_xy(ind_emis_green,j,i) /= building_pars_f%fill )& 
+                    surf_usm_v(l)%emissivity(1,m)        = building_pars_f%pars_xy(ind_emis_green,j,i)
+                 IF ( building_pars_f%pars_xy(ind_emis_win,j,i) /= building_pars_f%fill )  & 
+                    surf_usm_v(l)%emissivity(2,m)        = building_pars_f%pars_xy(ind_emis_win,j,i)
+
+                 IF ( building_pars_f%pars_xy(ind_trans,j,i) /= building_pars_f%fill )    & 
+                    surf_usm_v(l)%transmissivity(m)      = building_pars_f%pars_xy(ind_trans,j,i)
+
+                 IF ( building_pars_f%pars_xy(ind_z0,j,i) /= building_pars_f%fill )    & 
+                    surf_usm_v(l)%z0(m)                  = building_pars_f%pars_xy(ind_z0,j,i)
+                 IF ( building_pars_f%pars_xy(ind_z0qh,j,i) /= building_pars_f%fill )  & 
+                    surf_usm_v(l)%z0h(m)                 = building_pars_f%pars_xy(ind_z0qh,j,i)
+                 IF ( building_pars_f%pars_xy(ind_z0qh,j,i) /= building_pars_f%fill )  & 
+                    surf_usm_v(l)%z0q(m)                 = building_pars_f%pars_xy(ind_z0qh,j,i)
+
+                 IF ( building_pars_f%pars_xy(ind_alb_wall,j,i) /= building_pars_f%fill )    & 
+                    surf_usm_v(l)%albedo_type(0,m)       = building_pars_f%pars_xy(ind_alb_wall,j,i)
+                 IF ( building_pars_f%pars_xy(ind_alb_green,j,i) /= building_pars_f%fill )    & 
+                    surf_usm_v(l)%albedo_type(1,m)       = building_pars_f%pars_xy(ind_alb_green,j,i)
+                 IF ( building_pars_f%pars_xy(ind_alb_win,j,i) /= building_pars_f%fill )    & 
+                    surf_usm_v(l)%albedo_type(2,m)       = building_pars_f%pars_xy(ind_alb_win,j,i)
+
+                 IF ( building_pars_f%pars_xy(ind_thick_1,j,i) /= building_pars_f%fill )    & 
+                    surf_usm_v(l)%zw(nzb_wall,m) = building_pars_f%pars_xy(ind_thick_1,j,i)
+                 IF ( building_pars_f%pars_xy(ind_thick_2,j,i) /= building_pars_f%fill )    & 
+                    surf_usm_v(l)%zw(nzb_wall+1,m) = building_pars_f%pars_xy(ind_thick_2,j,i)
+                 IF ( building_pars_f%pars_xy(ind_thick_3,j,i) /= building_pars_f%fill )    & 
+                    surf_usm_v(l)%zw(nzb_wall+2,m) = building_pars_f%pars_xy(ind_thick_3,j,i)
+                 IF ( building_pars_f%pars_xy(ind_thick_4,j,i) /= building_pars_f%fill )    & 
+                    surf_usm_v(l)%zw(nzb_wall+3,m) = building_pars_f%pars_xy(ind_thick_4,j,i)
+                 IF ( building_pars_f%pars_xy(ind_thick_1,j,i) /= building_pars_f%fill )    & 
+                    surf_usm_v(l)%zw_green(nzb_wall,m) = building_pars_f%pars_xy(ind_thick_1,j,i)
+                 IF ( building_pars_f%pars_xy(ind_thick_2,j,i) /= building_pars_f%fill )    & 
+                    surf_usm_v(l)%zw_green(nzb_wall+1,m) = building_pars_f%pars_xy(ind_thick_2,j,i)
+                 IF ( building_pars_f%pars_xy(ind_thick_3,j,i) /= building_pars_f%fill )    & 
+                    surf_usm_v(l)%zw_green(nzb_wall+2,m) = building_pars_f%pars_xy(ind_thick_3,j,i)
+                 IF ( building_pars_f%pars_xy(ind_thick_4,j,i) /= building_pars_f%fill )    & 
+                    surf_usm_v(l)%zw_green(nzb_wall+3,m) = building_pars_f%pars_xy(ind_thick_4,j,i)
+                 IF ( building_pars_f%pars_xy(ind_thick_1,j,i) /= building_pars_f%fill )    & 
+                    surf_usm_v(l)%zw_window(nzb_wall,m) = building_pars_f%pars_xy(ind_thick_1,j,i)
+                 IF ( building_pars_f%pars_xy(ind_thick_2,j,i) /= building_pars_f%fill )    & 
+                    surf_usm_v(l)%zw_window(nzb_wall+1,m) = building_pars_f%pars_xy(ind_thick_2,j,i)
+                 IF ( building_pars_f%pars_xy(ind_thick_3,j,i) /= building_pars_f%fill )    & 
+                    surf_usm_v(l)%zw_window(nzb_wall+2,m) = building_pars_f%pars_xy(ind_thick_3,j,i)
+                 IF ( building_pars_f%pars_xy(ind_thick_4,j,i) /= building_pars_f%fill )    & 
+                    surf_usm_v(l)%zw_window(nzb_wall+3,m) = building_pars_f%pars_xy(ind_thick_4,j,i)
+
+                 IF ( building_pars_f%pars_xy(45,j,i) /= building_pars_f%fill )    & 
+                    surf_usm_v(l)%c_surface(m)           = building_pars_f%pars_xy(45,j,i)
+                 IF ( building_pars_f%pars_xy(46,j,i) /= building_pars_f%fill )    & 
+                    surf_usm_v(l)%lambda_surf(m)         = building_pars_f%pars_xy(46,j,i)
+                 IF ( building_pars_f%pars_xy(45,j,i) /= building_pars_f%fill )    & 
+                    surf_usm_v(l)%c_surface_green(m)     = building_pars_f%pars_xy(45,j,i)
+                 IF ( building_pars_f%pars_xy(46,j,i) /= building_pars_f%fill )    & 
+                    surf_usm_v(l)%lambda_surf_green(m)   = building_pars_f%pars_xy(46,j,i)
+                 IF ( building_pars_f%pars_xy(45,j,i) /= building_pars_f%fill )    & 
+                    surf_usm_v(l)%c_surface_window(m)    = building_pars_f%pars_xy(45,j,i)
+                 IF ( building_pars_f%pars_xy(46,j,i) /= building_pars_f%fill )    & 
+                    surf_usm_v(l)%lambda_surf_window(m)  = building_pars_f%pars_xy(46,j,i)
+
+              ENDDO
+           ENDDO
+        ENDIF 
+!       
+!--     Read the surface_types array.
+!--     Please note, here also initialization of surface attributes is done as
+!--     long as _urbsurf and _surfpar files are available. Values from above
+!--     will be overwritten. This might be removed later, but is still in the 
+!--     code to enable compatibility with older model version.
         CALL usm_read_urban_surface_types()
         
@@ -3197,33 +4421,13 @@
         CALL usm_init_material_model()
         
+!--     init anthropogenic sources of heat
         IF ( usm_anthropogenic_heat )  THEN
 !--         init anthropogenic sources of heat (from transportation for now)
             CALL usm_read_anthropogenic_heat()
         ENDIF
-        
-        IF ( read_svf_on_init )  THEN
-!--         read svf, csf, svfsurf and csfsurf data from file
-            CALL location_message( '    Start reading SVF from file', .TRUE. )
-            CALL usm_read_svf_from_file()
-            CALL location_message( '    Reading SVF from file has finished', .TRUE. )
-        ELSE
-!--         calculate SFV and CSF
-            CALL location_message( '    Start calculation of SVF', .TRUE. )
-            CALL cpu_log( log_point_s(79), 'usm_calc_svf', 'start' )
-            CALL usm_calc_svf()
-            CALL cpu_log( log_point_s(79), 'usm_calc_svf', 'stop' )
-            CALL location_message( '    Calculation of SVF has finished', .TRUE. )
-        ENDIF
-
-        IF ( write_svf_on_init )  THEN
-!--         write svf, csf svfsurf and csfsurf data to file
-            CALL location_message( '    Store SVF and CSF to file', .TRUE. )
-            CALL usm_write_svf_to_file()
-        ENDIF
-        
+                
         IF ( plant_canopy )  THEN
-!--         gridpcbl was only necessary for initialization
-            DEALLOCATE( gridpcbl )
-            IF ( .NOT.  ALLOCATED(pc_heating_rate) )  THEN
+            
+            IF ( .NOT.  ALLOCATED( pc_heating_rate) )  THEN
 !--             then pc_heating_rate is allocated in init_plant_canopy
 !--             in case of cthf /= 0 => we need to allocate it for our use here
@@ -3251,4 +4455,7 @@
 
                t_surf_h(m) = pt(k,j,i) * exn
+               t_surf_window_h(m) = pt(k,j,i) * exn
+               t_surf_green_h(m) = pt(k,j,i) * exn
+               t_surf_whole_h(m) = pt(k,j,i) * exn
             ENDDO
 !
@@ -3261,4 +4468,7 @@
 
                   t_surf_v(l)%t(m) = pt(k,j,i) * exn
+                  t_surf_window_v(l)%t(m) = pt(k,j,i) * exn
+                  t_surf_green_v(l)%t(m) = pt(k,j,i) * exn
+                  t_surf_whole_v(l)%t(m) = pt(k,j,i) * exn
                ENDDO
             ENDDO
@@ -3275,8 +4485,10 @@
                IF ( surf_usm_h%isroof_surf(m) )  THEN
                    tin = roof_inner_temperature
+                   twin = window_inner_temperature
 !
 !--            Normal land surface
                ELSE 
                    tin = soil_inner_temperature
+                   twin = window_inner_temperature
                ENDIF
 
@@ -3286,4 +4498,6 @@
 
                    t_wall_h(k,m) = ( 1.0_wp - c ) * t_surf_h(m) + c * tin
+                   t_window_h(k,m) = ( 1.0_wp - c ) * t_surf_window_h(m) + c * twin
+                   t_green_h(k,m) = t_surf_h(m)
                ENDDO
             ENDDO
@@ -3295,11 +4509,12 @@
 !--               Inner wall
                   tin = wall_inner_temperature
+                  twin = window_inner_temperature
 
                   DO k = nzb_wall, nzt_wall+1
                      c = REAL( k - nzb_wall, wp ) /                            &
                          REAL( nzt_wall + 1 - nzb_wall , wp )
-
-                     t_wall_v(l)%t(k,m) = ( 1.0_wp - c ) * t_surf_v(l)%t(m) +  &
-                                          c * tin
+                     t_wall_v(l)%t(k,m) = ( 1.0_wp - c ) * t_surf_v(l)%t(m) + c * tin
+                     t_window_v(l)%t(k,m) = ( 1.0_wp - c ) * t_surf_window_v(l)%t(m) + c * twin
+                     t_green_v(l)%t(k,m) = t_surf_v(l)%t(m)
                   ENDDO
                ENDDO
@@ -3315,14 +4530,22 @@
         t_surf_h_p = t_surf_h
         t_surf_v_p = t_surf_v
+        t_surf_window_h_p = t_surf_window_h
+        t_surf_window_v_p = t_surf_window_v
+        t_surf_whole_h_p = t_surf_whole_h
+        t_surf_whole_v_p = t_surf_whole_v
+        t_surf_green_h_p = t_surf_green_h
+        t_surf_green_v_p = t_surf_green_v
+        t_surf_10cm_h_p = t_surf_10cm_h
+        t_surf_10cm_v_p = t_surf_10cm_v
 
         t_wall_h_p = t_wall_h
         t_wall_v_p = t_wall_v
-        
-!--     Adjust radiative fluxes for urban surface at model start
-        CALL usm_radiation
+        t_window_h_p = t_window_h
+        t_window_v_p = t_window_v
+        t_green_h_p = t_green_h
+        t_green_v_p = t_green_v
         
         CALL cpu_log( log_point_s(78), 'usm_init', 'stop' )
 
-        
     END SUBROUTINE usm_init_urban_surface
 
@@ -3342,5 +4565,5 @@
         INTEGER(iwp) ::  i,j,k,l,kw, m                      !< running indices
 
-        REAL(wp), DIMENSION(nzb_wall:nzt_wall) :: wtend  !< tendency
+        REAL(wp), DIMENSION(nzb_wall:nzt_wall) :: wtend, wintend  !< tendency
 
 !
@@ -3355,22 +4578,59 @@
 !--        prognostic equation for ground/roof temperature t_wall_h
            wtend(:) = 0.0_wp
-           wtend(nzb_wall) = (1.0_wp / surf_usm_h%rho_c_wall(nzb_wall,m)) *    &
-                                      ( surf_usm_h%lambda_h(nzb_wall,m) *      &
-                                        ( t_wall_h(nzb_wall+1,m)               &
-                                        - t_wall_h(nzb_wall,m) ) *             &
-                                        surf_usm_h%ddz_wall(nzb_wall+1,m)      &
-                                      + surf_usm_h%wghf_eb(m) ) *              &
-                                        surf_usm_h%ddz_wall_stag(nzb_wall,m)
-            
-           DO  kw = nzb_wall+1, nzt_wall
-               wtend(kw) = (1.0_wp / surf_usm_h%rho_c_wall(kw,m))              &
-                              * (   surf_usm_h%lambda_h(kw,m)                  &
-                                 * ( t_wall_h(kw+1,m) - t_wall_h(kw,m) )       &
-                                 * surf_usm_h%ddz_wall(kw+1,m)                 &
-                              - surf_usm_h%lambda_h(kw-1,m)                    &
-                                 * ( t_wall_h(kw,m) - t_wall_h(kw-1,m) )       &
-                                 * surf_usm_h%ddz_wall(kw,m)                   &
-                              ) * surf_usm_h%ddz_wall_stag(kw,m)
-            ENDDO
+           wtend(nzb_wall) = (1.0_wp / surf_usm_h%rho_c_wall(nzb_wall,m)) *        &
+                                       ( surf_usm_h%lambda_h(nzb_wall,m) *         &
+                                         ( t_wall_h(nzb_wall+1,m)                  &
+                                         - t_wall_h(nzb_wall,m) ) *                &
+                                         surf_usm_h%ddz_wall(nzb_wall+1,m)         &
+                                       + surf_usm_h%frac(0,m)                      &
+                                         / (surf_usm_h%frac(0,m)                   &
+                                           + surf_usm_h%frac(1,m) )                &
+                                         * surf_usm_h%wghf_eb(m)                   &
+                                       - surf_usm_h%frac(1,m)                      &
+                                          / (surf_usm_h%frac(0,m)                  &
+                                            + surf_usm_h%frac(1,m) )               &
+                                         * ( surf_usm_h%lambda_h_green(nzt_wall,m) &
+                                           * surf_usm_h%ddz_green(nzt_wall,m)      &
+                                           + surf_usm_h%lambda_h(nzb_wall,m)       &
+                                           * surf_usm_h%ddz_wall(nzb_wall,m) )     &
+                                         / ( surf_usm_h%ddz_green(nzt_wall,m)      &
+                                           + surf_usm_h%ddz_wall(nzb_wall,m) )     &
+                                         * ( t_wall_h(nzb_wall,m)                  &
+                                           - t_green_h(nzt_wall,m) ) ) *           &
+                                       surf_usm_h%ddz_wall_stag(nzb_wall,m)
+
+!dummy value for testing
+surf_usm_h%iwghf_eb(m) = 0.
+
+           IF ( indoor_model ) then 
+              DO  kw = nzb_wall+1, nzt_wall-1
+                  wtend(kw) = (1.0_wp / surf_usm_h%rho_c_wall(kw,m))              &
+                                 * (   surf_usm_h%lambda_h(kw,m)                  &
+                                    * ( t_wall_h(kw+1,m) - t_wall_h(kw,m) )       &
+                                    * surf_usm_h%ddz_wall(kw+1,m)                 &
+                                 - surf_usm_h%lambda_h(kw-1,m)                    &
+                                    * ( t_wall_h(kw,m) - t_wall_h(kw-1,m) )       &
+                                    * surf_usm_h%ddz_wall(kw,m)                   &
+                                   ) * surf_usm_h%ddz_wall_stag(kw,m)
+              ENDDO
+              wtend(nzt_wall) = (1.0_wp / surf_usm_h%rho_c_wall(nzt_wall,m)) *    &
+                                         ( surf_usm_h%lambda_h(nzt_wall-1,m) *    &
+                                           ( t_wall_h(nzt_wall,m)                 &
+                                           - t_wall_h(nzt_wall-1,m) ) *           &
+                                           surf_usm_h%ddz_wall(nzt_wall,m)        &
+                                         + surf_usm_h%iwghf_eb(m) ) *             &
+                                           surf_usm_h%ddz_wall_stag(nzt_wall,m)
+           ELSE
+              DO  kw = nzb_wall+1, nzt_wall
+                  wtend(kw) = (1.0_wp / surf_usm_h%rho_c_wall(kw,m))              &
+                                 * (   surf_usm_h%lambda_h(kw,m)                  &
+                                    * ( t_wall_h(kw+1,m) - t_wall_h(kw,m) )       &
+                                    * surf_usm_h%ddz_wall(kw+1,m)                 &
+                                 - surf_usm_h%lambda_h(kw-1,m)                    &
+                                    * ( t_wall_h(kw,m) - t_wall_h(kw-1,m) )       &
+                                    * surf_usm_h%ddz_wall(kw,m)                   &
+                                   ) * surf_usm_h%ddz_wall_stag(kw,m)
+              ENDDO
+           ENDIF
 
            t_wall_h_p(nzb_wall:nzt_wall,m) = t_wall_h(nzb_wall:nzt_wall,m)     &
@@ -3378,5 +4638,69 @@
                                  * wtend(nzb_wall:nzt_wall) + tsc(3)           &
                                  * surf_usm_h%tt_wall_m(nzb_wall:nzt_wall,m) )   
-            
+
+!--        prognostic equation for ground/roof window temperature t_window_h
+           wintend(:) = 0.0_wp
+           wintend(nzb_wall) = (1.0_wp / surf_usm_h%rho_c_window(nzb_wall,m)) *   &
+                                      ( surf_usm_h%lambda_h_window(nzb_wall,m) *  &
+                                        ( t_window_h(nzb_wall+1,m)                &
+                                        - t_window_h(nzb_wall,m) ) *              &
+                                        surf_usm_h%ddz_window(nzb_wall+1,m)       &
+                                      + surf_usm_h%wghf_eb_window(m)              &
+                                      + surf_usm_h%rad_sw_in(m)                   &
+                                        * (1.0_wp - exp(-surf_usm_h%transmissivity(m) &
+                                        * surf_usm_h%zw_window(nzb_wall,m) ) )    &
+                                      ) * surf_usm_h%ddz_window_stag(nzb_wall,m)
+
+           IF ( indoor_model ) then 
+              DO  kw = nzb_wall+1, nzt_wall-1
+                  wintend(kw) = (1.0_wp / surf_usm_h%rho_c_window(kw,m))          &
+                                 * (   surf_usm_h%lambda_h_window(kw,m)           &
+                                    * ( t_window_h(kw+1,m) - t_window_h(kw,m) )   &
+                                    * surf_usm_h%ddz_window(kw+1,m)               &
+                                 - surf_usm_h%lambda_h_window(kw-1,m)             &
+                                    * ( t_window_h(kw,m) - t_window_h(kw-1,m) )   &
+                                    * surf_usm_h%ddz_window(kw,m)                 &
+                                 + surf_usm_h%rad_sw_in(m)                        &
+                                    * (exp(-surf_usm_h%transmissivity(m)       &
+                                        * surf_usm_h%zw_window(kw-1,m) )          &
+                                        - exp(-surf_usm_h%transmissivity(m)    &
+                                        * surf_usm_h%zw_window(kw,m) ) )          &
+                                   ) * surf_usm_h%ddz_window_stag(kw,m)
+
+              ENDDO
+              wintend(nzt_wall) = (1.0_wp / surf_usm_h%rho_c_window(nzt_wall,m)) *     &
+                                         ( surf_usm_h%lambda_h_window(nzt_wall-1,m) *  &
+                                           ( t_window_h(nzt_wall,m)                    &
+                                           - t_window_h(nzt_wall-1,m) ) *              &
+                                           surf_usm_h%ddz_window(nzt_wall,m)           &
+                                         + surf_usm_h%iwghf_eb_window(m)               &
+                                         + surf_usm_h%rad_sw_in(m)                     &
+                                           * (1.0_wp - exp(-surf_usm_h%transmissivity(m) &
+                                           * surf_usm_h%zw_window(nzt_wall,m) ) )      &
+                                         ) * surf_usm_h%ddz_window_stag(nzt_wall,m)
+           ELSE
+              DO  kw = nzb_wall+1, nzt_wall
+                  wintend(kw) = (1.0_wp / surf_usm_h%rho_c_window(kw,m))          &
+                                 * (   surf_usm_h%lambda_h_window(kw,m)           &
+                                    * ( t_window_h(kw+1,m) - t_window_h(kw,m) )   &
+                                    * surf_usm_h%ddz_window(kw+1,m)               &
+                                 - surf_usm_h%lambda_h_window(kw-1,m)             &
+                                    * ( t_window_h(kw,m) - t_window_h(kw-1,m) )   &
+                                    * surf_usm_h%ddz_window(kw,m)                 &
+                                 + surf_usm_h%rad_sw_in(m)                        &
+                                    * (exp(-surf_usm_h%transmissivity(m)       &
+                                        * surf_usm_h%zw_window(kw-1,m) )          &
+                                        - exp(-surf_usm_h%transmissivity(m)    &
+                                        * surf_usm_h%zw_window(kw,m) ) )          &
+                                   ) * surf_usm_h%ddz_window_stag(kw,m)
+
+              ENDDO
+           ENDIF
+
+           t_window_h_p(nzb_wall:nzt_wall,m) = t_window_h(nzb_wall:nzt_wall,m)    &
+                                 + dt_3d * ( tsc(2)                               &
+                                 * wintend(nzb_wall:nzt_wall) + tsc(3)            &
+                                 * surf_usm_h%tt_window_m(nzb_wall:nzt_wall,m) )   
+           
 !
 !--        calculate t_wall tendencies for the next Runge-Kutta step
@@ -3394,5 +4718,21 @@
                ENDIF
            ENDIF
+
+!--        calculate t_window tendencies for the next Runge-Kutta step
+           IF ( timestep_scheme(1:5) == 'runge' )  THEN
+               IF ( intermediate_timestep_count == 1 )  THEN
+                  DO  kw = nzb_wall, nzt_wall
+                     surf_usm_h%tt_window_m(kw,m) = wintend(kw)
+                  ENDDO
+               ELSEIF ( intermediate_timestep_count <                          &
+                        intermediate_timestep_count_max )  THEN
+                   DO  kw = nzb_wall, nzt_wall
+                      surf_usm_h%tt_window_m(kw,m) = -9.5625_wp * wintend(kw) +    &
+                                         5.3125_wp * surf_usm_h%tt_window_m(kw,m)
+                   ENDDO
+               ENDIF
+           ENDIF
         ENDDO
+
 !
 !--     For vertical surfaces     
@@ -3407,22 +4747,60 @@
 !--           prognostic equation for wall temperature t_wall_v
               wtend(:) = 0.0_wp
-              wtend(nzb_wall) = (1.0_wp / surf_usm_v(l)%rho_c_wall(nzb_wall,m)) * &
-                                      ( surf_usm_v(l)%lambda_h(nzb_wall,m) *   &
-                                        ( t_wall_v(l)%t(nzb_wall+1,m)          &
-                                        - t_wall_v(l)%t(nzb_wall,m) ) *        &
-                                        surf_usm_v(l)%ddz_wall(nzb_wall+1,m)   &
-                                      + surf_usm_v(l)%wghf_eb(m) ) *           &
-                                        surf_usm_v(l)%ddz_wall_stag(nzb_wall,m)
-            
-              DO  kw = nzb_wall+1, nzt_wall
-                  wtend(kw) = (1.0_wp / surf_usm_v(l)%rho_c_wall(kw,m))        &
-                           * (   surf_usm_v(l)%lambda_h(kw,m)                  &
-                              * ( t_wall_v(l)%t(kw+1,m) - t_wall_v(l)%t(kw,m) )&
-                              * surf_usm_v(l)%ddz_wall(kw+1,m)                 &
-                           - surf_usm_v(l)%lambda_h(kw-1,m)                    &
-                              * ( t_wall_v(l)%t(kw,m) - t_wall_v(l)%t(kw-1,m) )&
-                              * surf_usm_v(l)%ddz_wall(kw,m)                   &
-                              ) * surf_usm_v(l)%ddz_wall_stag(kw,m)
-               ENDDO
+
+               wtend(nzb_wall) = (1.0_wp / surf_usm_v(l)%rho_c_wall(nzb_wall,m)) *    &
+                                       ( surf_usm_v(l)%lambda_h(nzb_wall,m) *         &
+                                         ( t_wall_v(l)%t(nzb_wall+1,m)                &
+                                         - t_wall_v(l)%t(nzb_wall,m) ) *              &
+                                         surf_usm_v(l)%ddz_wall(nzb_wall+1,m)         &
+                                       + surf_usm_v(l)%frac(0,m)                      &
+                                         / (surf_usm_v(l)%frac(0,m)                   &
+                                           + surf_usm_v(l)%frac(1,m) )                &
+                                         * surf_usm_v(l)%wghf_eb(m)                   &
+                                       - surf_usm_v(l)%frac(1,m)                      &
+                                         / (surf_usm_v(l)%frac(0,m)                    &
+                                           + surf_usm_v(l)%frac(1,m) )                &
+                                         * ( surf_usm_v(l)%lambda_h_green(nzt_wall,m) &
+                                           * surf_usm_v(l)%ddz_green(nzt_wall,m)      &
+                                           + surf_usm_v(l)%lambda_h(nzb_wall,m)       &
+                                           * surf_usm_v(l)%ddz_wall(nzb_wall,m) )     &
+                                         / ( surf_usm_v(l)%ddz_green(nzt_wall,m)      &
+                                           + surf_usm_v(l)%ddz_wall(nzb_wall,m) )     &
+                                         * ( t_wall_v(l)%t(nzb_wall,m)                &
+                                           - t_green_v(l)%t(nzt_wall,m) ) ) *         &
+                                         surf_usm_v(l)%ddz_wall_stag(nzb_wall,m)
+
+!dummy value for testing
+surf_usm_v(l)%iwghf_eb(m) = 0.
+
+              IF ( indoor_model ) then 
+                 DO  kw = nzb_wall+1, nzt_wall-1
+                     wtend(kw) = (1.0_wp / surf_usm_v(l)%rho_c_wall(kw,m))        &
+                              * (   surf_usm_v(l)%lambda_h(kw,m)                  &
+                                 * ( t_wall_v(l)%t(kw+1,m) - t_wall_v(l)%t(kw,m) )&
+                                 * surf_usm_v(l)%ddz_wall(kw+1,m)                 &
+                              - surf_usm_v(l)%lambda_h(kw-1,m)                    &
+                                 * ( t_wall_v(l)%t(kw,m) - t_wall_v(l)%t(kw-1,m) )&
+                                 * surf_usm_v(l)%ddz_wall(kw,m)                   &
+                                 ) * surf_usm_v(l)%ddz_wall_stag(kw,m)
+                 ENDDO
+                 wtend(nzt_wall) = (1.0_wp / surf_usm_v(l)%rho_c_wall(nzt_wall,m)) * &
+                                         ( surf_usm_v(l)%lambda_h(nzt_wall-1,m) *    &
+                                           ( t_wall_v(l)%t(nzt_wall,m)               &
+                                           - t_wall_v(l)%t(nzt_wall-1,m) ) *         &
+                                           surf_usm_v(l)%ddz_wall(nzt_wall,m)        &
+                                         + surf_usm_v(l)%iwghf_eb(m) ) *             &
+                                           surf_usm_v(l)%ddz_wall_stag(nzt_wall,m)
+              ELSE
+                 DO  kw = nzb_wall+1, nzt_wall
+                     wtend(kw) = (1.0_wp / surf_usm_v(l)%rho_c_wall(kw,m))        &
+                              * (   surf_usm_v(l)%lambda_h(kw,m)                  &
+                                 * ( t_wall_v(l)%t(kw+1,m) - t_wall_v(l)%t(kw,m) )&
+                                 * surf_usm_v(l)%ddz_wall(kw+1,m)                 &
+                              - surf_usm_v(l)%lambda_h(kw-1,m)                    &
+                                 * ( t_wall_v(l)%t(kw,m) - t_wall_v(l)%t(kw-1,m) )&
+                                 * surf_usm_v(l)%ddz_wall(kw,m)                   &
+                                 ) * surf_usm_v(l)%ddz_wall_stag(kw,m)
+                 ENDDO
+              ENDIF
 
               t_wall_v_p(l)%t(nzb_wall:nzt_wall,m) =                           &
@@ -3431,5 +4809,68 @@
                                  * wtend(nzb_wall:nzt_wall) + tsc(3)           &
                                  * surf_usm_v(l)%tt_wall_m(nzb_wall:nzt_wall,m) )   
-            
+
+!--           prognostic equation for window temperature t_window_v
+              wintend(:) = 0.0_wp
+              wintend(nzb_wall) = (1.0_wp / surf_usm_v(l)%rho_c_window(nzb_wall,m)) * &
+                                      ( surf_usm_v(l)%lambda_h_window(nzb_wall,m) *   &
+                                        ( t_window_v(l)%t(nzb_wall+1,m)               &
+                                        - t_window_v(l)%t(nzb_wall,m) ) *             &
+                                        surf_usm_v(l)%ddz_window(nzb_wall+1,m)        &
+                                      + surf_usm_v(l)%wghf_eb_window(m)               &
+                                      + surf_usm_v(l)%rad_sw_in(m)                    &
+                                        * (1.0_wp - exp(-surf_usm_v(l)%transmissivity(m) &
+                                        * surf_usm_v(l)%zw_window(nzb_wall,m) ) )     &
+                                      ) * surf_usm_v(l)%ddz_window_stag(nzb_wall,m)
+
+              IF ( indoor_model ) then 
+                 DO  kw = nzb_wall+1, nzt_wall -1
+                     wintend(kw) = (1.0_wp / surf_usm_v(l)%rho_c_window(kw,m))         &
+                              * (   surf_usm_v(l)%lambda_h_window(kw,m)                &
+                                 * ( t_window_v(l)%t(kw+1,m) - t_window_v(l)%t(kw,m) ) &
+                                 * surf_usm_v(l)%ddz_window(kw+1,m)                    &
+                              - surf_usm_v(l)%lambda_h_window(kw-1,m)                  &
+                                 * ( t_window_v(l)%t(kw,m) - t_window_v(l)%t(kw-1,m) ) &
+                                 * surf_usm_v(l)%ddz_window(kw,m)                      &
+                              + surf_usm_v(l)%rad_sw_in(m)                             &
+                                 * (exp(-surf_usm_v(l)%transmissivity(m)            &
+                                    * surf_usm_v(l)%zw_window(kw-1,m)       )          &
+                                        - exp(-surf_usm_v(l)%transmissivity(m)      &
+                                        * surf_usm_v(l)%zw_window(kw,m) ) )            &
+                                 ) * surf_usm_v(l)%ddz_window_stag(kw,m)
+                  ENDDO
+                  wintend(nzt_wall) = (1.0_wp / surf_usm_v(l)%rho_c_window(nzt_wall,m)) * &
+                                          ( surf_usm_v(l)%lambda_h_window(nzt_wall-1,m) * &
+                                            ( t_window_v(l)%t(nzt_wall,m)                 &
+                                            - t_window_v(l)%t(nzt_wall-1,m) ) *           &
+                                            surf_usm_v(l)%ddz_window(nzt_wall,m)          &
+                                          + surf_usm_v(l)%iwghf_eb_window(m)              &
+                                          + surf_usm_v(l)%rad_sw_in(m)                    &
+                                            * (1.0_wp - exp(-surf_usm_v(l)%transmissivity(m) &
+                                            * surf_usm_v(l)%zw_window(nzt_wall,m) ) )     &
+                                          ) * surf_usm_v(l)%ddz_window_stag(nzt_wall,m)
+              ELSE
+                 DO  kw = nzb_wall+1, nzt_wall
+                     wintend(kw) = (1.0_wp / surf_usm_v(l)%rho_c_window(kw,m))         &
+                              * (   surf_usm_v(l)%lambda_h_window(kw,m)                &
+                                 * ( t_window_v(l)%t(kw+1,m) - t_window_v(l)%t(kw,m) ) &
+                                 * surf_usm_v(l)%ddz_window(kw+1,m)                    &
+                              - surf_usm_v(l)%lambda_h_window(kw-1,m)                  &
+                                 * ( t_window_v(l)%t(kw,m) - t_window_v(l)%t(kw-1,m) ) &
+                                 * surf_usm_v(l)%ddz_window(kw,m)                      &
+                              + surf_usm_v(l)%rad_sw_in(m)                             &
+                                 * (exp(-surf_usm_v(l)%transmissivity(m)            &
+                                    * surf_usm_v(l)%zw_window(kw-1,m)       )          &
+                                        - exp(-surf_usm_v(l)%transmissivity(m)      &
+                                        * surf_usm_v(l)%zw_window(kw,m) ) )            &
+                                 ) * surf_usm_v(l)%ddz_window_stag(kw,m)
+                 ENDDO
+              ENDIF
+
+              t_window_v_p(l)%t(nzb_wall:nzt_wall,m) =                           &
+                                   t_window_v(l)%t(nzb_wall:nzt_wall,m)          &
+                                 + dt_3d * ( tsc(2)                              &
+                                 * wintend(nzb_wall:nzt_wall) + tsc(3)           &
+                                 * surf_usm_v(l)%tt_window_m(nzb_wall:nzt_wall,m) )   
+
 !
 !--           calculate t_wall tendencies for the next Runge-Kutta step
@@ -3448,4 +4889,19 @@
                   ENDIF
               ENDIF
+!--           calculate t_window tendencies for the next Runge-Kutta step
+              IF ( timestep_scheme(1:5) == 'runge' )  THEN
+                  IF ( intermediate_timestep_count == 1 )  THEN
+                     DO  kw = nzb_wall, nzt_wall
+                        surf_usm_v(l)%tt_window_m(kw,m) = wintend(kw)
+                     ENDDO
+                  ELSEIF ( intermediate_timestep_count <                       &
+                           intermediate_timestep_count_max )  THEN
+                      DO  kw = nzb_wall, nzt_wall
+                         surf_usm_v(l)%tt_window_m(kw,m) =                     &
+                                     - 9.5625_wp * wintend(kw) +               &
+                                       5.3125_wp * surf_usm_v(l)%tt_window_m(kw,m)
+                      ENDDO
+                  ENDIF
+              ENDIF
            ENDDO
         ENDDO
@@ -3453,4 +4909,135 @@
     END SUBROUTINE usm_material_heat_model
 
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!
+!> Green and substrate model as part of the urban surface model. The model predicts ground
+!> temperatures.
+!------------------------------------------------------------------------------!
+    SUBROUTINE usm_green_heat_model
+
+
+        IMPLICIT NONE
+
+        INTEGER(iwp) ::  i,j,k,l,kw, m                      !< running indices
+
+        REAL(wp), DIMENSION(nzb_wall:nzt_wall) :: gtend  !< tendency
+
+!
+!--     For horizontal surfaces                                   
+        DO  m = 1, surf_usm_h%ns
+!
+!--        Obtain indices
+           i = surf_usm_h%i(m)            
+           j = surf_usm_h%j(m)
+           k = surf_usm_h%k(m)
+
+           t_green_h(nzt_wall+1,m) = t_wall_h(nzb_wall,m)
+!
+!--        prognostic equation for ground/roof temperature t_green_h
+           gtend(:) = 0.0_wp
+           gtend(nzb_wall) = (1.0_wp / surf_usm_h%rho_c_green(nzb_wall,m)) *    &
+                                      ( surf_usm_h%lambda_h_green(nzb_wall,m) * &
+                                        ( t_green_h(nzb_wall+1,m)               &
+                                        - t_green_h(nzb_wall,m) ) *             &
+                                        surf_usm_h%ddz_green(nzb_wall+1,m)      &
+                                      + surf_usm_h%wghf_eb_green(m) ) *         &
+                                        surf_usm_h%ddz_green_stag(nzb_wall,m)
+           
+            DO  kw = nzb_wall+1, nzt_wall
+                gtend(kw) = (1.0_wp / surf_usm_h%rho_c_green(kw,m))             &
+                               * (   surf_usm_h%lambda_h_green(kw,m)            &
+                                  * ( t_green_h(kw+1,m) - t_green_h(kw,m) )     &
+                                  * surf_usm_h%ddz_green(kw+1,m)                &
+                               - surf_usm_h%lambda_h_green(kw-1,m)              &
+                                  * ( t_green_h(kw,m) - t_green_h(kw-1,m) )     &
+                                  * surf_usm_h%ddz_green(kw,m)                  &
+                                 ) * surf_usm_h%ddz_green_stag(kw,m)
+            ENDDO
+
+           t_green_h_p(nzb_wall:nzt_wall,m) = t_green_h(nzb_wall:nzt_wall,m)    &
+                                 + dt_3d * ( tsc(2)                             &
+                                 * gtend(nzb_wall:nzt_wall) + tsc(3)            &
+                                 * surf_usm_h%tt_green_m(nzb_wall:nzt_wall,m) )   
+
+          
+!
+!--        calculate t_green tendencies for the next Runge-Kutta step
+           IF ( timestep_scheme(1:5) == 'runge' )  THEN
+               IF ( intermediate_timestep_count == 1 )  THEN
+                  DO  kw = nzb_wall, nzt_wall
+                     surf_usm_h%tt_green_m(kw,m) = gtend(kw)
+                  ENDDO
+               ELSEIF ( intermediate_timestep_count <                           &
+                        intermediate_timestep_count_max )  THEN
+                   DO  kw = nzb_wall, nzt_wall
+                      surf_usm_h%tt_green_m(kw,m) = -9.5625_wp * gtend(kw) +    &
+                                         5.3125_wp * surf_usm_h%tt_green_m(kw,m)
+                   ENDDO
+               ENDIF
+           ENDIF
+        ENDDO
+
+!
+!--     For vertical surfaces     
+        DO  l = 0, 3                              
+           DO  m = 1, surf_usm_v(l)%ns
+!
+!--           Obtain indices
+              i = surf_usm_v(l)%i(m)            
+              j = surf_usm_v(l)%j(m)
+              k = surf_usm_v(l)%k(m)
+
+              t_green_v(l)%t(nzt_wall+1,m) = t_wall_v(l)%t(nzb_wall,m)
+!
+!--           prognostic equation for green temperature t_green_v
+              gtend(:) = 0.0_wp
+              gtend(nzb_wall) = (1.0_wp / surf_usm_v(l)%rho_c_green(nzb_wall,m)) * &
+                                      ( surf_usm_v(l)%lambda_h_green(nzb_wall,m) * &
+                                        ( t_green_v(l)%t(nzb_wall+1,m)             &
+                                        - t_green_v(l)%t(nzb_wall,m) ) *           &
+                                        surf_usm_v(l)%ddz_green(nzb_wall+1,m)      &
+                                      + surf_usm_v(l)%wghf_eb(m) ) *               &
+                                        surf_usm_v(l)%ddz_green_stag(nzb_wall,m)
+            
+              DO  kw = nzb_wall+1, nzt_wall
+                 gtend(kw) = (1.0_wp / surf_usm_v(l)%rho_c_green(kw,m))          &
+                           * (   surf_usm_v(l)%lambda_h_green(kw,m)              &
+                             * ( t_green_v(l)%t(kw+1,m) - t_green_v(l)%t(kw,m) ) &
+                             * surf_usm_v(l)%ddz_green(kw+1,m)                   &
+                           - surf_usm_v(l)%lambda_h(kw-1,m)                      &
+                             * ( t_green_v(l)%t(kw,m) - t_green_v(l)%t(kw-1,m) ) &
+                             * surf_usm_v(l)%ddz_green(kw,m) )                   &
+                           * surf_usm_v(l)%ddz_green_stag(kw,m)
+              ENDDO
+
+              t_green_v_p(l)%t(nzb_wall:nzt_wall,m) =                              &
+                                   t_green_v(l)%t(nzb_wall:nzt_wall,m)             &
+                                 + dt_3d * ( tsc(2)                                &
+                                 * gtend(nzb_wall:nzt_wall) + tsc(3)               &
+                                 * surf_usm_v(l)%tt_green_m(nzb_wall:nzt_wall,m) )   
+
+!
+!--           calculate t_green tendencies for the next Runge-Kutta step
+              IF ( timestep_scheme(1:5) == 'runge' )  THEN
+                  IF ( intermediate_timestep_count == 1 )  THEN
+                     DO  kw = nzb_wall, nzt_wall
+                        surf_usm_v(l)%tt_green_m(kw,m) = gtend(kw)
+                     ENDDO
+                  ELSEIF ( intermediate_timestep_count <                           &
+                           intermediate_timestep_count_max )  THEN
+                      DO  kw = nzb_wall, nzt_wall
+                         surf_usm_v(l)%tt_green_m(kw,m) =                          &
+                                     - 9.5625_wp * gtend(kw) +                     &
+                                       5.3125_wp * surf_usm_v(l)%tt_green_m(kw,m)
+                      ENDDO
+                  ENDIF
+              ENDIF
+
+           ENDDO
+        ENDDO
+
+    END SUBROUTINE usm_green_heat_model
 
 !------------------------------------------------------------------------------!
@@ -3466,20 +5053,15 @@
 
        NAMELIST /urban_surface_par/                                            &
+                           building_type,                                      &
                            land_category,                                      &
-                           mrt_factors,                                        &
-                           nrefsteps,                                          &
                            pedestrant_category,                                &
                            ra_horiz_coef,                                      &
-                           read_svf_on_init,                                   &
                            roof_category,                                      &
-                           split_diffusion_radiation,                          &
                            urban_surface,                                      &
                            usm_anthropogenic_heat,                             &
-                           usm_energy_balance_land,                            &
-                           usm_energy_balance_wall,                            &
                            usm_material_model,                                 &
                            usm_lad_rma,                                        &
                            wall_category,                                      &
-                           write_svf_on_init
+                           indoor_model
 
        line = ' '
@@ -3516,586 +5098,52 @@
     END SUBROUTINE usm_parin
 
-
 !------------------------------------------------------------------------------!
 ! Description:
 ! ------------
-!> This subroutine calculates interaction of the solar radiation
-!> with urban surface and updates surface, roofs and walls heatfluxes.
-!> It also updates rad_sw_out and rad_lw_out.
+!> Calculates temperature near surface (10 cm) for indoor model
 !------------------------------------------------------------------------------!
-    SUBROUTINE usm_radiation
-    
-        IMPLICIT NONE
-       
-        INTEGER(iwp)               :: i, j, k, kk, is, js, d, ku, refstep, m, mm, l, ll
-        INTEGER(iwp)               :: nzubl, nzutl, isurf, isurfsrc, isurf1, isvf, icsf, ipcgb
-        INTEGER(iwp), DIMENSION(4) :: bdycross
-        REAL(wp), DIMENSION(3,3)   :: mrot            !< grid rotation matrix (xyz)
-        REAL(wp), DIMENSION(3,0:9) :: vnorm           !< face direction normal vectors (xyz)
-        REAL(wp), DIMENSION(3)     :: sunorig         !< grid rotated solar direction unit vector (xyz)
-        REAL(wp), DIMENSION(3)     :: sunorig_grid    !< grid squashed solar direction unit vector (zyx)
-        REAL(wp), DIMENSION(0:9)   :: costheta        !< direct irradiance factor of solar angle
-        REAL(wp), DIMENSION(nzub:nzut) :: pchf_prep   !< precalculated factor for canopy temp tendency
-        REAL(wp), PARAMETER        :: alpha = 0._wp   !< grid rotation (TODO: add to namelist or remove)
-        REAL(wp)                   :: rx, ry, rz
-        REAL(wp)                   :: pc_box_area, pc_abs_frac, pc_abs_eff
-        INTEGER(iwp)               :: pc_box_dimshift !< transform for best accuracy
-        INTEGER(iwp), DIMENSION(0:3) :: reorder = (/ 1, 0, 3, 2 /)
-        
-#if ! defined( __nopointer )
-        IF ( plant_canopy )  THEN
-            pchf_prep(:) = r_d * (hyp(nzub:nzut) / 100000.0_wp)**0.286_wp &
-                        / (cp * hyp(nzub:nzut) * dx*dy*dz) !< equals to 1 / (rho * c_p * Vbox * T)
-        ENDIF
-#endif
-        sun_direction = .TRUE.
-        CALL calc_zenith  !< required also for diffusion radiation
-
-!--     prepare rotated normal vectors and irradiance factor
-        vnorm(1,:) = idir(:)
-        vnorm(2,:) = jdir(:)
-        vnorm(3,:) = kdir(:)
-        mrot(1, :) = (/ cos(alpha), -sin(alpha), 0._wp /)
-        mrot(2, :) = (/ sin(alpha),  cos(alpha), 0._wp /)
-        mrot(3, :) = (/ 0._wp,       0._wp,      1._wp /)
-        sunorig = (/ sun_dir_lon, sun_dir_lat, zenith(0) /)
-        sunorig = matmul(mrot, sunorig)
-        DO d = 0, 9
-            costheta(d) = dot_product(sunorig, vnorm(:,d))
-        ENDDO
-        
-        IF ( zenith(0) > 0 )  THEN
-!--         now we will "squash" the sunorig vector by grid box size in
-!--         each dimension, so that this new direction vector will allow us
-!--         to traverse the ray path within grid coordinates directly
-            sunorig_grid = (/ sunorig(3)/dz, sunorig(2)/dy, sunorig(1)/dx /)
-!--         sunorig_grid = sunorig_grid / norm2(sunorig_grid)
-            sunorig_grid = sunorig_grid / SQRT(SUM(sunorig_grid**2))
-
-            IF ( plant_canopy )  THEN
-!--            precompute effective box depth with prototype Leaf Area Density
-               pc_box_dimshift = maxloc(sunorig, 1) - 1
-               CALL usm_box_absorb(cshift((/dx,dy,dz/), pc_box_dimshift),      &
-                                   60, prototype_lad,                          &
-                                   cshift(sunorig, pc_box_dimshift),           &
-                                   pc_box_area, pc_abs_frac)
-               pc_box_area = pc_box_area * sunorig(pc_box_dimshift+1) / sunorig(3)
-               pc_abs_eff = log(1._wp - pc_abs_frac) / prototype_lad
-            ENDIF
-        ENDIF
-        
-!--     split diffusion and direct part of the solar downward radiation
-!--     comming from radiation model and store it in 2D arrays
-!--     rad_sw_in_diff, rad_sw_in_dir and rad_lw_in_diff
-        IF ( split_diffusion_radiation )  THEN
-            CALL usm_calc_diffusion_radiation
-        ELSE
-            rad_sw_in_diff = 0.0_wp
-            rad_sw_in_dir(:,:)  = rad_sw_in(0,:,:)
-            rad_lw_in_diff(:,:) = rad_lw_in(0,:,:)
-        ENDIF
-
-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-!--     First pass: direct + diffuse irradiance
-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-        surfinswdir   = 0._wp !nsurfl
-        surfinswdif   = 0._wp !nsurfl
-        surfinlwdif   = 0._wp !nsurfl
-        surfins       = 0._wp !nsurfl
-        surfinl       = 0._wp !nsurfl
-        surfoutsl(:)  = 0.0_wp !start-end
-        surfoutll(:)  = 0.0_wp !start-end
-        
-!--     Set up thermal radiation from surfaces
-!--     emiss_surf is defined only for surfaces for which energy balance is calculated
-!--     Workaround: reorder surface data type back on 1D array including all surfaces, 
-!--     which implies to reorder horizontal and vertical surfaces
-!
-!--     Horizontal walls
-        mm = 1
-        DO  i = nxl, nxr
-           DO  j = nys, nyn
-
-              DO  m = surf_usm_h%start_index(j,i), surf_usm_h%end_index(j,i)
-                 surfoutll(mm) = surf_usm_h%emiss_surf(m) * sigma_sb   &
-                                     * t_surf_h(m)**4
-                 albedo_surf(mm) = surf_usm_h%albedo_surf(m)
-                 emiss_surf(mm)  = surf_usm_h%emiss_surf(m)
-                 mm = mm + 1
-              ENDDO
-           ENDDO
-        ENDDO
-!
-!--     Vertical walls
-        DO  i = nxl, nxr
-           DO  j = nys, nyn
-              DO  ll = 0, 3
-                 l = reorder(ll)
-                 DO  m = surf_usm_v(l)%start_index(j,i), surf_usm_v(l)%end_index(j,i)
-                    surfoutll(mm) = surf_usm_v(l)%emiss_surf(m) * sigma_sb   &
-                                     * t_surf_v(l)%t(m)**4
-                    albedo_surf(mm) = surf_usm_v(l)%albedo_surf(m)
-                    emiss_surf(mm) = surf_usm_v(l)%emiss_surf(m)
-                    mm = mm + 1
-                 ENDDO
-              ENDDO
-           ENDDO
-        ENDDO
-        
-#if defined( __parallel )
-!--     might be optimized and gather only values relevant for current processor
-        
-        CALL MPI_AllGatherv(surfoutll, nenergy, MPI_REAL, &
-                            surfoutl, nsurfs, surfstart, MPI_REAL, comm2d, ierr) !nsurf global
-#else
-        surfoutl(:) = surfoutll(:) !nsurf global
-#endif
-        
-        isurf1 = -1   !< previous processed surface
-        DO isvf = 1, nsvfl
-            isurf = svfsurf(1, isvf)
-            k = surfl(iz, isurf)
-            j = surfl(iy, isurf)
-            i = surfl(ix, isurf)
-            isurfsrc = svfsurf(2, isvf)
-            IF ( zenith(0) > 0  .AND.  isurf /= isurf1 )  THEN
-!--             locate the virtual surface where the direct solar ray crosses domain boundary
-!--             (once per target surface)
-                d = surfl(id, isurf)
-                rz = REAL(k, wp) - 0.5_wp * kdir(d)
-                ry = REAL(j, wp) - 0.5_wp * jdir(d)
-                rx = REAL(i, wp) - 0.5_wp * idir(d)
-                
-                CALL usm_find_boundary_face( (/ rz, ry, rx /), sunorig_grid, bdycross)
-                
-                isurf1 = isurf
-            ENDIF
-
-            IF ( surf(id, isurfsrc) >= isky )  THEN
-!--             diffuse rad from boundary surfaces. Since it is a simply
-!--             calculated value, it is not assigned to surfref(s/l),
-!--             instead it is used directly here
-!--             we consider the radiation from the radiation model falling on surface
-!--             as the radiation falling on the top of urban layer into the place of the source surface
-!--             we consider it as a very reasonable simplification which allow as avoid
-!--             necessity of other global range arrays and some all to all mpi communication
-                surfinswdif(isurf) = surfinswdif(isurf) + rad_sw_in_diff(j,i) * svf(1,isvf) * svf(2,isvf)
-                                                                !< canopy shading is applied only to shortwave
-                surfinlwdif(isurf) = surfinlwdif(isurf) + rad_lw_in_diff(j,i) * svf(1,isvf)
-            ELSE
-!--             for surface-to-surface factors we calculate thermal radiation in 1st pass
-                surfinl(isurf) = surfinl(isurf) + svf(1,isvf) * surfoutl(isurfsrc)
-            ENDIF
-
-            IF ( zenith(0) > 0  .AND.  all( surf(1:4,isurfsrc) == bdycross ) )  THEN
-!--             found svf between model boundary and the face => face isn't shaded
-                surfinswdir(isurf) = rad_sw_in_dir(j,i) &
-                    * costheta(surfl(id, isurf)) * svf(2,isvf) / zenith(0)
-
-            ENDIF
-        ENDDO
-
-        IF ( plant_canopy )  THEN
-        
-            pcbinsw(:) = 0._wp
-            pcbinlw(:) = 0._wp  !< will stay always 0 since we don't absorb lw anymore
-            !
-!--         pcsf first pass
-            isurf1 = -1  !< previous processed pcgb
-            DO icsf = 1, ncsfl
-                ipcgb = csfsurf(1, icsf)
-                i = pcbl(ix,ipcgb)
-                j = pcbl(iy,ipcgb)
-                k = pcbl(iz,ipcgb)
-                isurfsrc = csfsurf(2, icsf)
-
-                IF ( zenith(0) > 0  .AND.  ipcgb /= isurf1 )  THEN
-!--                 locate the virtual surface where the direct solar ray crosses domain boundary
-!--                 (once per target PC gridbox)
-                    rz = REAL(k, wp)
-                    ry = REAL(j, wp)
-                    rx = REAL(i, wp)
-                    CALL usm_find_boundary_face( (/ rz, ry, rx /), &
-                        sunorig_grid, bdycross)
-
-                    isurf1 = ipcgb
-                ENDIF
-
-                IF ( surf(id, isurfsrc) >= isky )  THEN
-!--                 Diffuse rad from boundary surfaces. See comments for svf above.
-                    pcbinsw(ipcgb) = pcbinsw(ipcgb) + csf(1,icsf) * csf(2,icsf) * rad_sw_in_diff(j,i)
-!--                 canopy shading is applied only to shortwave, therefore no absorbtion for lw
-!--                 pcbinlw(ipcgb) = pcbinlw(ipcgb) + svf(1,isvf) * rad_lw_in_diff(j,i)
-                !ELSE
-!--                 Thermal radiation in 1st pass
-!--                 pcbinlw(ipcgb) = pcbinlw(ipcgb) + svf(1,isvf) * surfoutl(isurfsrc)
-                ENDIF
-
-                IF ( zenith(0) > 0  .AND.  all( surf(1:4,isurfsrc) == bdycross ) )  THEN
-!--                 found svf between model boundary and the pcgb => pcgb isn't shaded
-                    pc_abs_frac = 1._wp - exp(pc_abs_eff * lad_s(k,j,i))
-                    pcbinsw(ipcgb) = pcbinsw(ipcgb) &
-                        + rad_sw_in_dir(j, i) * pc_box_area * csf(2,icsf) * pc_abs_frac
-                ENDIF
-            ENDDO
-        ENDIF
-
-        surfins(startenergy:endenergy) = surfinswdir(startenergy:endenergy) + surfinswdif(startenergy:endenergy)
-        surfinl(startenergy:endenergy) = surfinl(startenergy:endenergy) + surfinlwdif(startenergy:endenergy)
-        surfinsw(:) = surfins(:)
-        surfinlw(:) = surfinl(:)
-        surfoutsw(:) = 0.0_wp
-        surfoutlw(:) = surfoutll(:)
-!         surfhf(startenergy:endenergy) = surfinsw(startenergy:endenergy) + surfinlw(startenergy:endenergy) &
-!                                       - surfoutsw(startenergy:endenergy) - surfoutlw(startenergy:endenergy)
-        
-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-!--     Next passes - reflections
-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-        DO refstep = 1, nrefsteps
-        
-            surfoutsl(startenergy:endenergy) = albedo_surf(startenergy:endenergy) * surfins(startenergy:endenergy)
-!--         for non-transparent surfaces, longwave albedo is 1 - emissivity
-            surfoutll(startenergy:endenergy) = (1._wp - emiss_surf(startenergy:endenergy)) * surfinl(startenergy:endenergy)
-
-#if defined( __parallel )
-            CALL MPI_AllGatherv(surfoutsl, nsurfl, MPI_REAL, &
-                surfouts, nsurfs, surfstart, MPI_REAL, comm2d, ierr)
-            CALL MPI_AllGatherv(surfoutll, nsurfl, MPI_REAL, &
-                surfoutl, nsurfs, surfstart, MPI_REAL, comm2d, ierr)
-#else
-            surfouts(:) = surfoutsl(:)
-            surfoutl(:) = surfoutll(:)
-#endif
-
-!--         reset for next pass input
-            surfins(:) = 0._wp
-            surfinl(:) = 0._wp
-            
-!--         reflected radiation
-            DO isvf = 1, nsvfl
-                isurf = svfsurf(1, isvf)
-                isurfsrc = svfsurf(2, isvf)
-
-!--             TODO: to remove if, use start+end for isvf
-                IF ( surf(id, isurfsrc) < isky )  THEN
-                    surfins(isurf) = surfins(isurf) + svf(1,isvf) * svf(2,isvf) * surfouts(isurfsrc)
-                    surfinl(isurf) = surfinl(isurf) + svf(1,isvf) * surfoutl(isurfsrc)
-                ENDIF
-            ENDDO
-
-!--         radiation absorbed by plant canopy
-            DO icsf = 1, ncsfl
-                ipcgb = csfsurf(1, icsf)
-                isurfsrc = csfsurf(2, icsf)
-
-                IF ( surf(id, isurfsrc) < isky )  THEN
-                    pcbinsw(ipcgb) = pcbinsw(ipcgb) + csf(1,icsf) * csf(2,icsf) * surfouts(isurfsrc)
-!--                 pcbinlw(ipcgb) = pcbinlw(ipcgb) + csf(1,icsf) * surfoutl(isurfsrc)
-                ENDIF
-            ENDDO
-            
-            surfinsw(:) = surfinsw(:)  + surfins(:)
-            surfinlw(:) = surfinlw(:)  + surfinl(:)
-            surfoutsw(startenergy:endenergy) = surfoutsw(startenergy:endenergy) + surfoutsl(startenergy:endenergy)
-            surfoutlw(startenergy:endenergy) = surfoutlw(startenergy:endenergy) + surfoutll(startenergy:endenergy)
-!             surfhf(startenergy:endenergy) = surfinsw(startenergy:endenergy) + surfinlw(startenergy:endenergy) &
-!                                           - surfoutsw(startenergy:endenergy) - surfoutlw(startenergy:endenergy)
-        
-        ENDDO
-
-!--     push heat flux absorbed by plant canopy to respective 3D arrays
-#if ! defined( __nopointer )
-        IF ( plant_canopy )  THEN
-            pc_heating_rate(:,:,:) = 0._wp
-            DO ipcgb = 1, npcbl
-                j = pcbl(iy, ipcgb)
-                i = pcbl(ix, ipcgb)
-                k = pcbl(iz, ipcgb)
-!
-!--             Following expression equals former kk = k - nzb_s_inner(j,i) 
-                kk = k - ( get_topography_top_index( j, i, 's' ) )  !- lad arrays are defined flat
-                pc_heating_rate(kk, j, i) = (pcbinsw(ipcgb) + pcbinlw(ipcgb)) &
-                    * pchf_prep(k) * pt(k, j, i) !-- = dT/dt
-            ENDDO
-        ENDIF
-#endif
-!
-!--     Transfer radiation arrays required for energy balance to the respective data types
-        DO  i = startenergy, endenergy
-           m  = surfl(5,i)          
-!
-!--        upward-facing
-           IF ( surfl(1,i) == 0 )  THEN
-              surf_usm_h%rad_in_sw(m)  = surfinsw(i) 
-              surf_usm_h%rad_out_sw(m) = surfoutsw(i) 
-              surf_usm_h%rad_in_lw(m)  = surfinlw(i)
-              surf_usm_h%rad_out_lw(m) = surfoutlw(i)
-!
-!--        southward-facding
-           ELSEIF ( surfl(1,i) == 1 )  THEN
-              surf_usm_v(1)%rad_in_sw(m)  = surfinsw(i) 
-              surf_usm_v(1)%rad_out_sw(m) = surfoutsw(i) 
-              surf_usm_v(1)%rad_in_lw(m)  = surfinlw(i)
-              surf_usm_v(1)%rad_out_lw(m) = surfoutlw(i)
-!
-!--        northward-facding
-           ELSEIF ( surfl(1,i) == 2 )  THEN
-              surf_usm_v(0)%rad_in_sw(m)  = surfinsw(i) 
-              surf_usm_v(0)%rad_out_sw(m) = surfoutsw(i) 
-              surf_usm_v(0)%rad_in_lw(m)  = surfinlw(i)
-              surf_usm_v(0)%rad_out_lw(m) = surfoutlw(i)
-!
-!--        westward-facding
-           ELSEIF ( surfl(1,i) == 3 )  THEN
-              surf_usm_v(3)%rad_in_sw(m)  = surfinsw(i) 
-              surf_usm_v(3)%rad_out_sw(m) = surfoutsw(i) 
-              surf_usm_v(3)%rad_in_lw(m)  = surfinlw(i)
-              surf_usm_v(3)%rad_out_lw(m) = surfoutlw(i)
-!
-!--        eastward-facing
-           ELSEIF ( surfl(1,i) == 4 )  THEN
-              surf_usm_v(2)%rad_in_sw(m)  = surfinsw(i) 
-              surf_usm_v(2)%rad_out_sw(m) = surfoutsw(i) 
-              surf_usm_v(2)%rad_in_lw(m)  = surfinlw(i)
-              surf_usm_v(2)%rad_out_lw(m) = surfoutlw(i)
-           ENDIF
-
-        ENDDO
-
-
-        DO  m = 1, surf_usm_h%ns
-           surf_usm_h%surfhf(m) = surf_usm_h%rad_in_sw(m)  +                   &
-                                  surf_usm_h%rad_in_lw(m)  -                   &
-                                  surf_usm_h%rad_out_sw(m) -                   &
-                                  surf_usm_h%rad_out_lw(m)
-        ENDDO
-
-        DO  l = 0, 3
-           DO  m = 1, surf_usm_v(l)%ns
-              surf_usm_v(l)%surfhf(m) = surf_usm_v(l)%rad_in_sw(m)  +          &
-                                        surf_usm_v(l)%rad_in_lw(m)  -          &
-                                        surf_usm_v(l)%rad_out_sw(m) -          &
-                                        surf_usm_v(l)%rad_out_lw(m)
-           ENDDO
-        ENDDO
-
-!--     return surface radiation to horizontal surfaces 
-!--     to rad_sw_in, rad_lw_in and rad_net for outputs
-        !!!!!!!!!!
-!--     we need the original radiation on urban top layer
-!--     for calculation of MRT so we can't do adjustment here for now
-        !!!!!!!!!!
-        !!!DO isurf = 1, nsurfl
-        !!!    i = surfl(ix,isurf)
-        !!!    j = surfl(iy,isurf)
-        !!!    k = surfl(iz,isurf)
-        !!!    d = surfl(id,isurf)
-        !!!    IF ( d==iroof )  THEN
-        !!!        rad_sw_in(:,j,i) = surfinsw(isurf)
-        !!!        rad_lw_in(:,j,i) = surfinlw(isurf)
-        !!!        rad_net(j,i) = rad_sw_in(k,j,i) - rad_sw_out(k,j,i) + rad_lw_in(k,j,i) - rad_lw_out(k,j,i)
-        !!!    ENDIF
-        !!!ENDDO
-
-    END SUBROUTINE usm_radiation
-
-    
-!------------------------------------------------------------------------------!
-! Description:
-! ------------
-!> Raytracing for detecting obstacles and calculating compound canopy sink
-!> factors. (A simple obstacle detection would only need to process faces in
-!> 3 dimensions without any ordering.)
-!> Assumtions:
-!> -----------
-!> 1. The ray always originates from a face midpoint (only one coordinate equals
-!>    *.5, i.e. wall) and doesn't travel parallel to the surface (that would mean
-!>    shape factor=0). Therefore, the ray may never travel exactly along a face
-!>    or an edge.
-!> 2. From grid bottom to urban surface top the grid has to be *equidistant*
-!>    within each of the dimensions, including vertical (but the resolution
-!>    doesn't need to be the same in all three dimensions).
-!------------------------------------------------------------------------------!
-    SUBROUTINE usm_raytrace(src, targ, isrc, rirrf, atarg, create_csf, visible, transparency, win_lad)
-        IMPLICIT NONE
-
-        REAL(wp), DIMENSION(3), INTENT(in)     :: src, targ    !< real coordinates z,y,x
-        INTEGER(iwp), INTENT(in)               :: isrc         !< index of source face for csf
-        REAL(wp), INTENT(in)                   :: rirrf        !< irradiance factor for csf
-        REAL(wp), INTENT(in)                   :: atarg        !< target surface area for csf
-        LOGICAL, INTENT(in)                    :: create_csf   !< whether to generate new CSFs during raytracing
-        LOGICAL, INTENT(out)                   :: visible
-        REAL(wp), INTENT(out)                  :: transparency !< along whole path
-        INTEGER(iwp), INTENT(in)               :: win_lad
-        INTEGER(iwp)                           :: i, j, k, d
-        INTEGER(iwp)                           :: seldim       !< dimension to be incremented
-        INTEGER(iwp)                           :: ncsb         !< no of written plant canopy sinkboxes
-        INTEGER(iwp)                           :: maxboxes     !< max no of gridboxes visited
-        REAL(wp)                               :: distance     !< euclidean along path
-        REAL(wp)                               :: crlen        !< length of gridbox crossing
-        REAL(wp)                               :: lastdist     !< beginning of current crossing
-        REAL(wp)                               :: nextdist     !< end of current crossing
-        REAL(wp)                               :: realdist     !< distance in meters per unit distance
-        REAL(wp)                               :: crmid        !< midpoint of crossing
-        REAL(wp)                               :: cursink      !< sink factor for current canopy box
-        REAL(wp), DIMENSION(3)                 :: delta        !< path vector
-        REAL(wp), DIMENSION(3)                 :: uvect        !< unit vector
-        REAL(wp), DIMENSION(3)                 :: dimnextdist  !< distance for each dimension increments
-        INTEGER(iwp), DIMENSION(3)             :: box          !< gridbox being crossed
-        INTEGER(iwp), DIMENSION(3)             :: dimnext      !< next dimension increments along path
-        INTEGER(iwp), DIMENSION(3)             :: dimdelta     !< dimension direction = +- 1
-        INTEGER(iwp)                           :: px, py       !< number of processors in x and y dir before 
-                                                               !< the processor in the question
-        INTEGER(iwp)                           :: ip           !< number of processor where gridbox reside
-        INTEGER(iwp)                           :: ig           !< 1D index of gridbox in global 2D array
-        REAL(wp)                               :: lad_s_target !< recieved lad_s of particular grid box
-        REAL(wp), PARAMETER                    :: grow_factor = 1.5_wp !< factor of expansion of grow arrays
-
-!
-!--     Maximum number of gridboxes visited equals to maximum number of boundaries crossed in each dimension plus one. That's also
-!--     the maximum number of plant canopy boxes written. We grow the acsf array accordingly using exponential factor.
-        maxboxes = SUM(ABS(NINT(targ) - NINT(src))) + 1
-        IF ( plant_canopy  .AND.  ncsfl + maxboxes > ncsfla )  THEN
-!--         use this code for growing by fixed exponential increments (equivalent to case where ncsfl always increases by 1)
-!--         k = CEILING(grow_factor ** real(CEILING(log(real(ncsfl + maxboxes, kind=wp)) &
-!--                                                / log(grow_factor)), kind=wp))
-!--         or use this code to simply always keep some extra space after growing
-            k = CEILING(REAL(ncsfl + maxboxes, kind=wp) * grow_factor)
-
-            CALL usm_merge_and_grow_csf(k)
-        ENDIF
-        
-        transparency = 1._wp
-        ncsb = 0
-
-        delta(:) = targ(:) - src(:)
-        distance = SQRT(SUM(delta(:)**2))
-        IF ( distance == 0._wp )  THEN
-            visible = .TRUE.
-            RETURN
-        ENDIF
-        uvect(:) = delta(:) / distance
-        realdist = SQRT(SUM( (uvect(:)*(/dz,dy,dx/))**2 ))
-
-        lastdist = 0._wp
-
-!--     Since all face coordinates have values *.5 and we'd like to use
-!--     integers, all these have .5 added
-        DO d = 1, 3
-            IF ( uvect(d) == 0._wp )  THEN
-                dimnext(d) = 999999999
-                dimdelta(d) = 999999999
-                dimnextdist(d) = 1.0E20_wp
-            ELSE IF ( uvect(d) > 0._wp )  THEN
-                dimnext(d) = CEILING(src(d) + .5_wp)
-                dimdelta(d) = 1
-                dimnextdist(d) = (dimnext(d) - .5_wp - src(d)) / uvect(d)
-            ELSE
-                dimnext(d) = FLOOR(src(d) + .5_wp)
-                dimdelta(d) = -1
-                dimnextdist(d) = (dimnext(d) - .5_wp - src(d)) / uvect(d)
-            ENDIF
-        ENDDO
-
-        DO
-!--         along what dimension will the next wall crossing be?
-            seldim = minloc(dimnextdist, 1)
-            nextdist = dimnextdist(seldim)
-            IF ( nextdist > distance ) nextdist = distance
-
-            crlen = nextdist - lastdist
-            IF ( crlen > .001_wp )  THEN
-                crmid = (lastdist + nextdist) * .5_wp
-                box = NINT(src(:) + uvect(:) * crmid)
-
-!--             calculate index of the grid with global indices (box(2),box(3))
-!--             in the array nzterr and plantt and id of the coresponding processor
-                px = box(3)/nnx
-                py = box(2)/nny
-                ip = px*pdims(2)+py
-                ig = ip*nnx*nny + (box(3)-px*nnx)*nny + box(2)-py*nny
-                IF ( box(1) <= nzterr(ig) )  THEN
-                    visible = .FALSE.
-                    RETURN
-                ENDIF
-
-                IF ( plant_canopy )  THEN
-                    IF ( box(1) <= plantt(ig) )  THEN
-                        ncsb = ncsb + 1
-                        boxes(:,ncsb) = box
-                        crlens(ncsb) = crlen
-#if defined( __parallel )
-                        lad_ip(ncsb) = ip
-                        lad_disp(ncsb) = (box(3)-px*nnx)*(nny*nzu) + (box(2)-py*nny)*nzu + box(1)-nzub
-#endif
-                    ENDIF
-                ENDIF
-            ENDIF
-
-            IF ( nextdist >= distance ) EXIT
-            lastdist = nextdist
-            dimnext(seldim) = dimnext(seldim) + dimdelta(seldim)
-            dimnextdist(seldim) = (dimnext(seldim) - .5_wp - src(seldim)) / uvect(seldim)
-        ENDDO
-        
-        IF ( plant_canopy )  THEN
-#if defined( __parallel )
-            IF ( usm_lad_rma )  THEN
-!--             send requests for lad_s to appropriate processor
-                CALL cpu_log( log_point_s(77), 'usm_init_rma', 'start' )
-                DO i = 1, ncsb
-                    CALL MPI_Get(lad_s_ray(i), 1, MPI_REAL, lad_ip(i), lad_disp(i), &
-                                 1, MPI_REAL, win_lad, ierr)
-                    IF ( ierr /= 0 )  THEN
-                        WRITE(message_string, *) 'MPI error ', ierr, ' at MPI_Get'
-                        CALL message( 'usm_raytrace', 'PA0519', 1, 2, 0, 6, 0 )
-                    ENDIF
-                ENDDO
-                
-!--             wait for all pending local requests complete
-                CALL MPI_Win_flush_local_all(win_lad, ierr)
-                IF ( ierr /= 0 )  THEN
-                    WRITE(message_string, *) 'MPI error ', ierr, ' at MPI_Win_flush_local_all'
-                    CALL message( 'usm_raytrace', 'PA0519', 1, 2, 0, 6, 0 )
-                ENDIF
-                CALL cpu_log( log_point_s(77), 'usm_init_rma', 'stop' )
-                
-            ENDIF
-#endif
-
-!--         calculate csf and transparency
-            DO i = 1, ncsb
-#if defined( __parallel )
-                IF ( usm_lad_rma )  THEN
-                    lad_s_target = lad_s_ray(i)
-                ELSE
-                    lad_s_target = usm_lad_g(lad_ip(i)*nnx*nny*nzu + lad_disp(i))
-                ENDIF
-#else
-                lad_s_target = usm_lad(boxes(1,i),boxes(2,i),boxes(3,i))
-#endif
-                cursink = 1._wp - exp(-ext_coef * lad_s_target * crlens(i)*realdist)
-
-                IF ( create_csf )  THEN
-!--                 write svf values into the array
-                    ncsfl = ncsfl + 1
-                    acsf(ncsfl)%ip = lad_ip(i)
-                    acsf(ncsfl)%itx = boxes(3,i)
-                    acsf(ncsfl)%ity = boxes(2,i)
-                    acsf(ncsfl)%itz = boxes(1,i)
-                    acsf(ncsfl)%isurfs = isrc
-                    acsf(ncsfl)%rsvf = REAL(cursink*rirrf*atarg, wp) !-- we postpone multiplication by transparency
-                    acsf(ncsfl)%rtransp = REAL(transparency, wp)
-                ENDIF  !< create_csf
-
-                transparency = transparency * (1._wp - cursink)
-                
-            ENDDO
-        ENDIF
-        
-        visible = .TRUE.
-
-    END SUBROUTINE usm_raytrace
+    SUBROUTINE usm_temperature_near_surface
+
+       IMPLICIT NONE
+
+       INTEGER(iwp)                          :: i, j, k, l, m   !< running indices
+
+!        
+!--    First, treat horizontal surface elements
+       DO  m = 1, surf_usm_h%ns
+
+!--       Get indices of respective grid point
+          i = surf_usm_h%i(m)
+          j = surf_usm_h%j(m)
+          k = surf_usm_h%k(m)
+
+          t_surf_10cm_h(m) = t_surf_whole_h(m) + surf_usm_h%ts(m) / kappa        &
+                             * ( log( 0.1_wp /  surf_usm_h%z0h(m) )              &
+                               - psi_h( 0.1_wp / surf_usm_h%ol(m) )              &
+                               + psi_h( surf_usm_h%z0h(m) / surf_usm_h%ol(m) ) )
+
+       ENDDO
+!
+!--    Now, treat vertical surface elements
+       DO  l = 0, 3
+          DO  m = 1, surf_usm_v(l)%ns
+
+!--          Get indices of respective grid point
+             i = surf_usm_v(l)%i(m)
+             j = surf_usm_v(l)%j(m)
+             k = surf_usm_v(l)%k(m)
+
+             t_surf_10cm_v(l)%t(m) = t_surf_whole_v(l)%t(m) + surf_usm_v(l)%ts(m) / kappa &
+                                     * ( log( 0.1_wp / surf_usm_v(l)%z0h(m) )             &
+                                       - psi_h( 0.1_wp / surf_usm_v(l)%ol(m) )            &
+                                       + psi_h( surf_usm_v(l)%z0h(m) / surf_usm_v(l)%ol(m) ) )
+
+          ENDDO
+
+       ENDDO
+
+
+    END SUBROUTINE usm_temperature_near_surface
+
     
  
@@ -4242,9 +5290,9 @@
        INTEGER(iwp), DIMENSION(nys_on_file:nyn_on_file,nxl_on_file:nxr_on_file) ::  end_index_on_file
        
-       REAL(wp), DIMENSION(:), ALLOCATABLE   ::  tmp_surf_h
-       REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  tmp_wall_h
+       REAL(wp), DIMENSION(:), ALLOCATABLE   ::  tmp_surf_h, tmp_surf_window_h, tmp_surf_green_h
+       REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  tmp_wall_h, tmp_window_h, tmp_green_h
        
-       TYPE( t_surf_vertical ), DIMENSION(0:3) ::  tmp_surf_v
-       TYPE( t_wall_vertical ), DIMENSION(0:3) ::  tmp_wall_v
+       TYPE( t_surf_vertical ), DIMENSION(0:3) ::  tmp_surf_v, tmp_surf_window_v, tmp_surf_green_v
+       TYPE( t_wall_vertical ), DIMENSION(0:3) ::  tmp_wall_v, tmp_window_v, tmp_green_v
 
        
@@ -4274,8 +5322,16 @@
           ALLOCATE( tmp_surf_h(1:ns_h_on_file_usm) )
           ALLOCATE( tmp_wall_h(nzb_wall:nzt_wall+1,1:ns_h_on_file_usm) )
+          ALLOCATE( tmp_surf_window_h(1:ns_h_on_file_usm) )
+          ALLOCATE( tmp_window_h(nzb_wall:nzt_wall+1,1:ns_h_on_file_usm) )
+          ALLOCATE( tmp_surf_green_h(1:ns_h_on_file_usm) )
+          ALLOCATE( tmp_green_h(nzb_wall:nzt_wall+1,1:ns_h_on_file_usm) )
           
           DO  l = 0, 3
              ALLOCATE( tmp_surf_v(l)%t(1:ns_v_on_file_usm(l)) )
              ALLOCATE( tmp_wall_v(l)%t(nzb_wall:nzt_wall+1,1:ns_v_on_file_usm(l) ) )
+             ALLOCATE( tmp_surf_window_v(l)%t(1:ns_v_on_file_usm(l)) )
+             ALLOCATE( tmp_window_v(l)%t(nzb_wall:nzt_wall+1,1:ns_v_on_file_usm(l) ) )
+             ALLOCATE( tmp_surf_green_v(l)%t(1:ns_v_on_file_usm(l)) )
+             ALLOCATE( tmp_green_v(l)%t(nzb_wall:nzt_wall+1,1:ns_v_on_file_usm(l) ) )
           ENDDO
           
@@ -4316,7 +5372,13 @@
                          READ ( 13 )  tmp_surf_h
                       ENDIF
-                      CALL restore_surface_elements_usm_1d(                    &
+                      CALL surface_restore_elements(                           &
                                               t_surf_h, tmp_surf_h,            &
-                                              surf_usm_h%start_index )
+                                              surf_usm_h%start_index,          & 
+                                              start_index_on_file,             &
+                                              end_index_on_file,               &
+                                              nxlc, nysc,                      &
+                                              nxlf, nxrf, nysf, nynf,          &
+                                              nys_on_file, nyn_on_file,        &
+                                              nxl_on_file,nxr_on_file )
 #else                      
                       IF ( kk == 1 )  THEN
@@ -4325,7 +5387,13 @@
                          READ ( 13 )  tmp_surf_h
                       ENDIF
-                      CALL restore_surface_elements_usm_1d(                    &
+                      CALL surface_restore_elements(                           &
                                               t_surf_h_1, tmp_surf_h,          &
-                                              surf_usm_h%start_index )
+                                              surf_usm_h%start_index,          & 
+                                              start_index_on_file,             &
+                                              end_index_on_file,               &
+                                              nxlc, nysc,                      &
+                                              nxlf, nxrf, nysf, nynf,          &
+                                              nys_on_file, nyn_on_file,        &
+                                              nxl_on_file,nxr_on_file )
 #endif
 
@@ -4337,7 +5405,13 @@
                          READ ( 13 )  tmp_surf_v(0)%t
                       ENDIF
-                      CALL restore_surface_elements_usm_1d(                    &
+                      CALL surface_restore_elements(                           &
                                               t_surf_v(0)%t, tmp_surf_v(0)%t,  &
-                                              surf_usm_v(0)%start_index )
+                                              surf_usm_v(0)%start_index,       & 
+                                              start_index_on_file,             &
+                                              end_index_on_file,               &
+                                              nxlc, nysc,                      &
+                                              nxlf, nxrf, nysf, nynf,          &
+                                              nys_on_file, nyn_on_file,        &
+                                              nxl_on_file,nxr_on_file )
 #else                      
                       IF ( kk == 1 )  THEN
@@ -4346,7 +5420,13 @@
                          READ ( 13 )  tmp_surf_v(0)%t
                       ENDIF
-                      CALL restore_surface_elements_usm_1d(                    &
+                      CALL surface_restore_elements(                           &
                                               t_surf_v_1(0)%t, tmp_surf_v(0)%t,&
-                                              surf_usm_v(0)%start_index )
+                                              surf_usm_v(0)%start_index,       & 
+                                              start_index_on_file,             &
+                                              end_index_on_file,               &
+                                              nxlc, nysc,                      &
+                                              nxlf, nxrf, nysf, nynf,          &
+                                              nys_on_file, nyn_on_file,        &
+                                              nxl_on_file,nxr_on_file )
 #endif
                          
@@ -4358,7 +5438,13 @@
                          READ ( 13 )  tmp_surf_v(1)%t
                       ENDIF
-                      CALL restore_surface_elements_usm_1d(                    &
+                      CALL surface_restore_elements(                           &
                                               t_surf_v(1)%t, tmp_surf_v(1)%t,  &
-                                              surf_usm_v(1)%start_index )                        
+                                              surf_usm_v(1)%start_index,       & 
+                                              start_index_on_file,             &
+                                              end_index_on_file,               &
+                                              nxlc, nysc,                      &
+                                              nxlf, nxrf, nysf, nynf,          &
+                                              nys_on_file, nyn_on_file,        &
+                                              nxl_on_file,nxr_on_file )                 
 #else                      
                       IF ( kk == 1 )  THEN
@@ -4367,7 +5453,13 @@
                          READ ( 13 )  tmp_surf_v(1)%t
                       ENDIF
-                      CALL restore_surface_elements_usm_1d(                    &
+                      CALL surface_restore_elements(                           &
                                               t_surf_v_1(1)%t, tmp_surf_v(1)%t,&
-                                              surf_usm_v(1)%start_index )
+                                              surf_usm_v(1)%start_index,       & 
+                                              start_index_on_file,             &
+                                              end_index_on_file,               &
+                                              nxlc, nysc,                      &
+                                              nxlf, nxrf, nysf, nynf,          &
+                                              nys_on_file, nyn_on_file,        &
+                                              nxl_on_file,nxr_on_file )
 #endif
 
@@ -4379,7 +5471,13 @@
                          READ ( 13 )  tmp_surf_v(2)%t
                       ENDIF
-                      CALL restore_surface_elements_usm_1d(                    &
+                      CALL surface_restore_elements(                           &
                                               t_surf_v(2)%t, tmp_surf_v(2)%t,  &
-                                              surf_usm_v(2)%start_index )
+                                              surf_usm_v(2)%start_index,       & 
+                                              start_index_on_file,             &
+                                              end_index_on_file,               &
+                                              nxlc, nysc,                      &
+                                              nxlf, nxrf, nysf, nynf,          &
+                                              nys_on_file, nyn_on_file,        &
+                                              nxl_on_file,nxr_on_file )
 #else                      
                       IF ( kk == 1 )  THEN
@@ -4388,7 +5486,13 @@
                          READ ( 13 )  tmp_surf_v(2)%t
                       ENDIF
-                      CALL restore_surface_elements_usm_1d(                    &
+                      CALL surface_restore_elements(                           &
                                               t_surf_v_1(2)%t, tmp_surf_v(2)%t,&
-                                              surf_usm_v(2)%start_index ) 
+                                              surf_usm_v(2)%start_index,       & 
+                                              start_index_on_file,             &
+                                              end_index_on_file,               &
+                                              nxlc, nysc,                      &
+                                              nxlf, nxrf, nysf, nynf,          &
+                                              nys_on_file, nyn_on_file,        &
+                                              nxl_on_file,nxr_on_file )
 #endif
                          
@@ -4400,7 +5504,13 @@
                          READ ( 13 )  tmp_surf_v(3)%t
                       ENDIF
-                      CALL restore_surface_elements_usm_1d(                    &
+                      CALL surface_restore_elements(                           &
                                               t_surf_v(3)%t, tmp_surf_v(3)%t,  &
-                                              surf_usm_v(3)%start_index ) 
+                                              surf_usm_v(3)%start_index,       & 
+                                              start_index_on_file,             &
+                                              end_index_on_file,               &
+                                              nxlc, nysc,                      &
+                                              nxlf, nxrf, nysf, nynf,          &
+                                              nys_on_file, nyn_on_file,        &
+                                              nxl_on_file,nxr_on_file )
 #else                      
                       IF ( kk == 1 )  THEN
@@ -4409,7 +5519,341 @@
                          READ ( 13 )  tmp_surf_v(3)%t
                       ENDIF
-                      CALL restore_surface_elements_usm_1d(                    &
+                      CALL surface_restore_elements(                           &
                                               t_surf_v_1(3)%t, tmp_surf_v(3)%t,&
-                                              surf_usm_v(3)%start_index )
+                                              surf_usm_v(3)%start_index,       & 
+                                              start_index_on_file,             &
+                                              end_index_on_file,               &
+                                              nxlc, nysc,                      &
+                                              nxlf, nxrf, nysf, nynf,          &
+                                              nys_on_file, nyn_on_file,        &
+                                              nxl_on_file,nxr_on_file )
+#endif
+                   CASE ( 't_surf_green_h' )
+#if defined( __nopointer )                   
+                      IF ( kk == 1 )  THEN
+                         IF ( .NOT.  ALLOCATED( t_surf_green_h ) )                   &
+                            ALLOCATE( t_surf_green_h(1:surf_usm_h%ns) )
+                         READ ( 13 )  tmp_surf_green_h
+                      ENDIF
+                      CALL surface_restore_elements(                           &
+                                              t_surf_green_h, tmp_surf_green_h, &
+                                              surf_usm_h%start_index,          & 
+                                              start_index_on_file,             &
+                                              end_index_on_file,               &
+                                              nxlc, nysc,                      &
+                                              nxlf, nxrf, nysf, nynf,          &
+                                              nys_on_file, nyn_on_file,        &
+                                              nxl_on_file,nxr_on_file )
+#else                      
+                      IF ( kk == 1 )  THEN
+                         IF ( .NOT.  ALLOCATED( t_surf_green_h_1 ) )                 &
+                            ALLOCATE( t_surf_green_h_1(1:surf_usm_h%ns) )
+                         READ ( 13 )  tmp_surf_green_h
+                      ENDIF
+                      CALL surface_restore_elements(                           &
+                                              t_surf_green_h_1, tmp_surf_green_h, &
+                                              surf_usm_h%start_index,          & 
+                                              start_index_on_file,             &
+                                              end_index_on_file,               &
+                                              nxlc, nysc,                      &
+                                              nxlf, nxrf, nysf, nynf,          &
+                                              nys_on_file, nyn_on_file,        &
+                                              nxl_on_file,nxr_on_file )
+#endif
+
+                   CASE ( 't_surf_green_v(0)' )
+#if defined( __nopointer )            
+                      IF ( kk == 1 )  THEN
+                         IF ( .NOT.  ALLOCATED( t_surf_green_v(0)%t ) )              &
+                            ALLOCATE( t_surf_green_v(0)%t(1:surf_usm_v(0)%ns) )
+                         READ ( 13 )  tmp_surf_green_v(0)%t
+                      ENDIF
+                      CALL surface_restore_elements(                           &
+                                              t_surf_green_v(0)%t, tmp_surf_green_v(0)%t,  &
+                                              surf_usm_v(0)%start_index,       & 
+                                              start_index_on_file,             &
+                                              end_index_on_file,               &
+                                              nxlc, nysc,                      &
+                                              nxlf, nxrf, nysf, nynf,          &
+                                              nys_on_file, nyn_on_file,        &
+                                              nxl_on_file,nxr_on_file )
+#else                      
+                      IF ( kk == 1 )  THEN
+                         IF ( .NOT.  ALLOCATED( t_surf_green_v_1(0)%t ) )            &
+                            ALLOCATE( t_surf_green_v_1(0)%t(1:surf_usm_v(0)%ns) )
+                         READ ( 13 )  tmp_surf_green_v(0)%t
+                      ENDIF
+                      CALL surface_restore_elements(                           &
+                                              t_surf_green_v_1(0)%t, tmp_surf_green_v(0)%t,&
+                                              surf_usm_v(0)%start_index,       & 
+                                              start_index_on_file,             &
+                                              end_index_on_file,               &
+                                              nxlc, nysc,                      &
+                                              nxlf, nxrf, nysf, nynf,          &
+                                              nys_on_file, nyn_on_file,        &
+                                              nxl_on_file,nxr_on_file )
+#endif
+                         
+                   CASE ( 't_surf_green_v(1)' )
+#if defined( __nopointer )        
+                      IF ( kk == 1 )  THEN
+                         IF ( .NOT.  ALLOCATED( t_surf_green_v(1)%t ) )              &
+                            ALLOCATE( t_surf_green_v(1)%t(1:surf_usm_v(1)%ns) )
+                         READ ( 13 )  tmp_surf_green_v(1)%t
+                      ENDIF
+                      CALL surface_restore_elements(                           &
+                                              t_surf_green_v(1)%t, tmp_surf_green_v(1)%t,  &
+                                              surf_usm_v(1)%start_index,       & 
+                                              start_index_on_file,             &
+                                              end_index_on_file,               &
+                                              nxlc, nysc,                      &
+                                              nxlf, nxrf, nysf, nynf,          &
+                                              nys_on_file, nyn_on_file,        &
+                                              nxl_on_file,nxr_on_file )                 
+#else                      
+                      IF ( kk == 1 )  THEN
+                         IF ( .NOT.  ALLOCATED( t_surf_green_v_1(1)%t ) )            &
+                            ALLOCATE( t_surf_green_v_1(1)%t(1:surf_usm_v(1)%ns) )
+                         READ ( 13 )  tmp_surf_green_v(1)%t
+                      ENDIF
+                      CALL surface_restore_elements(                           &
+                                              t_surf_green_v_1(1)%t, tmp_surf_green_v(1)%t,&
+                                              surf_usm_v(1)%start_index,       & 
+                                              start_index_on_file,             &
+                                              end_index_on_file,               &
+                                              nxlc, nysc,                      &
+                                              nxlf, nxrf, nysf, nynf,          &
+                                              nys_on_file, nyn_on_file,        &
+                                              nxl_on_file,nxr_on_file )
+#endif
+
+                   CASE ( 't_surf_green_v(2)' )
+#if defined( __nopointer )          
+                      IF ( kk == 1 )  THEN
+                         IF ( .NOT.  ALLOCATED( t_surf_green_v(2)%t ) )              &
+                            ALLOCATE( t_surf_green_v(2)%t(1:surf_usm_v(2)%ns) )
+                         READ ( 13 )  tmp_surf_green_v(2)%t
+                      ENDIF
+                      CALL surface_restore_elements(                           &
+                                              t_surf_green_v(2)%t, tmp_surf_green_v(2)%t,  &
+                                              surf_usm_v(2)%start_index,       & 
+                                              start_index_on_file,             &
+                                              end_index_on_file,               &
+                                              nxlc, nysc,                      &
+                                              nxlf, nxrf, nysf, nynf,          &
+                                              nys_on_file, nyn_on_file,        &
+                                              nxl_on_file,nxr_on_file )
+#else                      
+                      IF ( kk == 1 )  THEN
+                         IF ( .NOT.  ALLOCATED( t_surf_green_v_1(2)%t ) )            &
+                            ALLOCATE( t_surf_green_v_1(2)%t(1:surf_usm_v(2)%ns) )
+                         READ ( 13 )  tmp_surf_green_v(2)%t
+                      ENDIF
+                      CALL surface_restore_elements(                           &
+                                              t_surf_green_v_1(2)%t, tmp_surf_green_v(2)%t,&
+                                              surf_usm_v(2)%start_index,       & 
+                                              start_index_on_file,             &
+                                              end_index_on_file,               &
+                                              nxlc, nysc,                      &
+                                              nxlf, nxrf, nysf, nynf,          &
+                                              nys_on_file, nyn_on_file,        &
+                                              nxl_on_file,nxr_on_file )
+#endif
+                         
+                   CASE ( 't_surf_green_v(3)' )
+#if defined( __nopointer )    
+                      IF ( kk == 1 )  THEN
+                         IF ( .NOT.  ALLOCATED( t_surf_green_v(3)%t ) )              &
+                            ALLOCATE( t_surf_green_v(3)%t(1:surf_usm_v(3)%ns) )
+                         READ ( 13 )  tmp_surf_green_v(3)%t
+                      ENDIF
+                      CALL surface_restore_elements(                           &
+                                              t_surf_green_v(3)%t, tmp_surf_green_v(3)%t,  &
+                                              surf_usm_v(3)%start_index,       & 
+                                              start_index_on_file,             &
+                                              end_index_on_file,               &
+                                              nxlc, nysc,                      &
+                                              nxlf, nxrf, nysf, nynf,          &
+                                              nys_on_file, nyn_on_file,        &
+                                              nxl_on_file,nxr_on_file )
+#else                      
+                      IF ( kk == 1 )  THEN
+                         IF ( .NOT.  ALLOCATED( t_surf_green_v_1(3)%t ) )            &
+                            ALLOCATE( t_surf_green_v_1(3)%t(1:surf_usm_v(3)%ns) )
+                         READ ( 13 )  tmp_surf_green_v(3)%t
+                      ENDIF
+                      CALL surface_restore_elements(                           &
+                                              t_surf_green_v_1(3)%t, tmp_surf_green_v(3)%t,&
+                                              surf_usm_v(3)%start_index,       & 
+                                              start_index_on_file,             &
+                                              end_index_on_file,               &
+                                              nxlc, nysc,                      &
+                                              nxlf, nxrf, nysf, nynf,          &
+                                              nys_on_file, nyn_on_file,        &
+                                              nxl_on_file,nxr_on_file )
+#endif
+                   CASE ( 't_surf_window_h' )
+#if defined( __nopointer )                   
+                      IF ( kk == 1 )  THEN
+                         IF ( .NOT.  ALLOCATED( t_surf_window_h ) )                   &
+                            ALLOCATE( t_surf_window_h(1:surf_usm_h%ns) )
+                         READ ( 13 )  tmp_surf_window_h
+                      ENDIF
+                      CALL surface_restore_elements(                           &
+                                              t_surf_window_h, tmp_surf_window_h,            &
+                                              surf_usm_h%start_index,          & 
+                                              start_index_on_file,             &
+                                              end_index_on_file,               &
+                                              nxlc, nysc,                      &
+                                              nxlf, nxrf, nysf, nynf,          &
+                                              nys_on_file, nyn_on_file,        &
+                                              nxl_on_file,nxr_on_file )
+#else                      
+                      IF ( kk == 1 )  THEN
+                         IF ( .NOT.  ALLOCATED( t_surf_window_h_1 ) )                 &
+                            ALLOCATE( t_surf_window_h_1(1:surf_usm_h%ns) )
+                         READ ( 13 )  tmp_surf_window_h
+                      ENDIF
+                      CALL surface_restore_elements(                           &
+                                              t_surf_window_h_1, tmp_surf_window_h,          &
+                                              surf_usm_h%start_index,          & 
+                                              start_index_on_file,             &
+                                              end_index_on_file,               &
+                                              nxlc, nysc,                      &
+                                              nxlf, nxrf, nysf, nynf,          &
+                                              nys_on_file, nyn_on_file,        &
+                                              nxl_on_file,nxr_on_file )
+#endif
+
+                   CASE ( 't_surf_window_v(0)' )
+#if defined( __nopointer )            
+                      IF ( kk == 1 )  THEN
+                         IF ( .NOT.  ALLOCATED( t_surf_window_v(0)%t ) )              &
+                            ALLOCATE( t_surf_window_v(0)%t(1:surf_usm_v(0)%ns) )
+                         READ ( 13 )  tmp_surf_window_v(0)%t
+                      ENDIF
+                      CALL surface_restore_elements(                           &
+                                              t_surf_window_v(0)%t, tmp_surf_window_v(0)%t,  &
+                                              surf_usm_v(0)%start_index,       & 
+                                              start_index_on_file,             &
+                                              end_index_on_file,               &
+                                              nxlc, nysc,                      &
+                                              nxlf, nxrf, nysf, nynf,          &
+                                              nys_on_file, nyn_on_file,        &
+                                              nxl_on_file,nxr_on_file )
+#else                      
+                      IF ( kk == 1 )  THEN
+                         IF ( .NOT.  ALLOCATED( t_surf_window_v_1(0)%t ) )            &
+                            ALLOCATE( t_surf_window_v_1(0)%t(1:surf_usm_v(0)%ns) )
+                         READ ( 13 )  tmp_surf_window_v(0)%t
+                      ENDIF
+                      CALL surface_restore_elements(                           &
+                                              t_surf_window_v_1(0)%t, tmp_surf_window_v(0)%t,&
+                                              surf_usm_v(0)%start_index,       & 
+                                              start_index_on_file,             &
+                                              end_index_on_file,               &
+                                              nxlc, nysc,                      &
+                                              nxlf, nxrf, nysf, nynf,          &
+                                              nys_on_file, nyn_on_file,        &
+                                              nxl_on_file,nxr_on_file )
+#endif
+                         
+                   CASE ( 't_surf_window_v(1)' )
+#if defined( __nopointer )        
+                      IF ( kk == 1 )  THEN
+                         IF ( .NOT.  ALLOCATED( t_surf_window_v(1)%t ) )              &
+                            ALLOCATE( t_surf_window_v(1)%t(1:surf_usm_v(1)%ns) )
+                         READ ( 13 )  tmp_surf_window_v(1)%t
+                      ENDIF
+                      CALL surface_restore_elements(                           &
+                                              t_surf_window_v(1)%t, tmp_surf_window_v(1)%t,  &
+                                              surf_usm_v(1)%start_index,       & 
+                                              start_index_on_file,             &
+                                              end_index_on_file,               &
+                                              nxlc, nysc,                      &
+                                              nxlf, nxrf, nysf, nynf,          &
+                                              nys_on_file, nyn_on_file,        &
+                                              nxl_on_file,nxr_on_file )                 
+#else                      
+                      IF ( kk == 1 )  THEN
+                         IF ( .NOT.  ALLOCATED( t_surf_window_v_1(1)%t ) )            &
+                            ALLOCATE( t_surf_window_v_1(1)%t(1:surf_usm_v(1)%ns) )
+                         READ ( 13 )  tmp_surf_window_v(1)%t
+                      ENDIF
+                      CALL surface_restore_elements(                           &
+                                              t_surf_window_v_1(1)%t, tmp_surf_window_v(1)%t,&
+                                              surf_usm_v(1)%start_index,       & 
+                                              start_index_on_file,             &
+                                              end_index_on_file,               &
+                                              nxlc, nysc,                      &
+                                              nxlf, nxrf, nysf, nynf,          &
+                                              nys_on_file, nyn_on_file,        &
+                                              nxl_on_file,nxr_on_file )
+#endif
+
+                   CASE ( 't_surf_window_v(2)' )
+#if defined( __nopointer )          
+                      IF ( kk == 1 )  THEN
+                         IF ( .NOT.  ALLOCATED( t_surf_window_v(2)%t ) )              &
+                            ALLOCATE( t_surf_window_v(2)%t(1:surf_usm_v(2)%ns) )
+                         READ ( 13 )  tmp_surf_window_v(2)%t
+                      ENDIF
+                      CALL surface_restore_elements(                           &
+                                              t_surf_window_v(2)%t, tmp_surf_window_v(2)%t,  &
+                                              surf_usm_v(2)%start_index,       & 
+                                              start_index_on_file,             &
+                                              end_index_on_file,               &
+                                              nxlc, nysc,                      &
+                                              nxlf, nxrf, nysf, nynf,          &
+                                              nys_on_file, nyn_on_file,        &
+                                              nxl_on_file,nxr_on_file )
+#else                      
+                      IF ( kk == 1 )  THEN
+                         IF ( .NOT.  ALLOCATED( t_surf_window_v_1(2)%t ) )            &
+                            ALLOCATE( t_surf_window_v_1(2)%t(1:surf_usm_v(2)%ns) )
+                         READ ( 13 )  tmp_surf_window_v(2)%t
+                      ENDIF
+                      CALL surface_restore_elements(                           &
+                                              t_surf_window_v_1(2)%t, tmp_surf_window_v(2)%t,&
+                                              surf_usm_v(2)%start_index,       & 
+                                              start_index_on_file,             &
+                                              end_index_on_file,               &
+                                              nxlc, nysc,                      &
+                                              nxlf, nxrf, nysf, nynf,          &
+                                              nys_on_file, nyn_on_file,        &
+                                              nxl_on_file,nxr_on_file )
+#endif
+                         
+                   CASE ( 't_surf_window_v(3)' )
+#if defined( __nopointer )    
+                      IF ( kk == 1 )  THEN
+                         IF ( .NOT.  ALLOCATED( t_surf_window_v(3)%t ) )              &
+                            ALLOCATE( t_surf_window_v(3)%t(1:surf_usm_v(3)%ns) )
+                         READ ( 13 )  tmp_surf_window_v(3)%t
+                      ENDIF
+                      CALL surface_restore_elements(                           &
+                                              t_surf_window_v(3)%t, tmp_surf_window_v(3)%t,  &
+                                              surf_usm_v(3)%start_index,       & 
+                                              start_index_on_file,             &
+                                              end_index_on_file,               &
+                                              nxlc, nysc,                      &
+                                              nxlf, nxrf, nysf, nynf,          &
+                                              nys_on_file, nyn_on_file,        &
+                                              nxl_on_file,nxr_on_file )
+#else                      
+                      IF ( kk == 1 )  THEN
+                         IF ( .NOT.  ALLOCATED( t_surf_window_v_1(3)%t ) )            &
+                            ALLOCATE( t_surf_window_v_1(3)%t(1:surf_usm_v(3)%ns) )
+                         READ ( 13 )  tmp_surf_window_v(3)%t
+                      ENDIF
+                      CALL surface_restore_elements(                           &
+                                              t_surf_window_v_1(3)%t, tmp_surf_window_v(3)%t,&
+                                              surf_usm_v(3)%start_index,       & 
+                                              start_index_on_file,             &
+                                              end_index_on_file,               &
+                                              nxlc, nysc,                      &
+                                              nxlf, nxrf, nysf, nynf,          &
+                                              nys_on_file, nyn_on_file,        &
+                                              nxl_on_file,nxr_on_file )
 #endif
                    CASE ( 't_wall_h' )
@@ -4420,7 +5864,13 @@
                          READ ( 13 )  tmp_wall_h
                       ENDIF
-                      CALL restore_surface_elements_usm_2d(                    &
+                      CALL surface_restore_elements(                           &
                                               t_wall_h, tmp_wall_h,            &
-                                              surf_usm_h%start_index )
+                                              surf_usm_h%start_index,          & 
+                                              start_index_on_file,             &
+                                              end_index_on_file,               &
+                                              nxlc, nysc,                      &
+                                              nxlf, nxrf, nysf, nynf,          &
+                                              nys_on_file, nyn_on_file,        &
+                                              nxl_on_file,nxr_on_file )
 #else
                       IF ( kk == 1 )  THEN
@@ -4429,7 +5879,13 @@
                          READ ( 13 )  tmp_wall_h
                       ENDIF
-                      CALL restore_surface_elements_usm_2d(                    &
+                      CALL surface_restore_elements(                           &
                                               t_wall_h_1, tmp_wall_h,          &
-                                              surf_usm_h%start_index )
+                                              surf_usm_h%start_index,          & 
+                                              start_index_on_file,             &
+                                              end_index_on_file,               &
+                                              nxlc, nysc,                      &
+                                              nxlf, nxrf, nysf, nynf,          &
+                                              nys_on_file, nyn_on_file,        &
+                                              nxl_on_file,nxr_on_file )
 #endif
                    CASE ( 't_wall_v(0)' )
@@ -4440,7 +5896,13 @@
                          READ ( 13 )  tmp_wall_v(0)%t
                       ENDIF
-                      CALL restore_surface_elements_usm_2d(                    &
+                      CALL surface_restore_elements(                           &
                                               t_wall_v(0)%t, tmp_wall_v(0)%t,  &
-                                              surf_usm_v(0)%start_index )
+                                              surf_usm_v(0)%start_index,       & 
+                                              start_index_on_file,             &
+                                              end_index_on_file,               &
+                                              nxlc, nysc,                      &
+                                              nxlf, nxrf, nysf, nynf,          &
+                                              nys_on_file, nyn_on_file,        &
+                                              nxl_on_file,nxr_on_file )
 #else
                       IF ( kk == 1 )  THEN
@@ -4449,7 +5911,13 @@
                          READ ( 13 )  tmp_wall_v(0)%t
                       ENDIF
-                      CALL restore_surface_elements_usm_2d(                    &
+                      CALL surface_restore_elements(                           &
                                               t_wall_v_1(0)%t, tmp_wall_v(0)%t,&
-                                              surf_usm_v(0)%start_index )
+                                              surf_usm_v(0)%start_index,       & 
+                                              start_index_on_file,             &
+                                              end_index_on_file,               &
+                                              nxlc, nysc,                      &
+                                              nxlf, nxrf, nysf, nynf,          &
+                                              nys_on_file, nyn_on_file,        &
+                                              nxl_on_file,nxr_on_file )
 #endif
                    CASE ( 't_wall_v(1)' )
@@ -4460,7 +5928,12 @@
                          READ ( 13 )  tmp_wall_v(1)%t
                       ENDIF
-                      CALL restore_surface_elements_usm_2d(                    &
+                      CALL surface_restore_elements(                           &
                                               t_wall_v(1)%t, tmp_wall_v(1)%t,  &
-                                              surf_usm_v(1)%start_index )
+                                              surf_usm_v(1)%start_index,       & 
+                                              start_index_on_file,             &
+                                              end_index_on_file ,              &
+                                              nxlc, nysc,           ,          &
+                                              nys_on_file, nyn_on_file,        &
+                                              nxl_on_file,nxr_on_file )
 #else
                       IF ( kk == 1 )  THEN
@@ -4469,7 +5942,13 @@
                          READ ( 13 )  tmp_wall_v(1)%t
                       ENDIF
-                      CALL restore_surface_elements_usm_2d(                    &
+                      CALL surface_restore_elements(                           &
                                               t_wall_v_1(1)%t, tmp_wall_v(1)%t,&
-                                              surf_usm_v(1)%start_index )
+                                              surf_usm_v(1)%start_index,       & 
+                                              start_index_on_file,             &
+                                              end_index_on_file,               &
+                                              nxlc, nysc,                      &
+                                              nxlf, nxrf, nysf, nynf,          &
+                                              nys_on_file, nyn_on_file,        &
+                                              nxl_on_file,nxr_on_file )
 #endif
                    CASE ( 't_wall_v(2)' )
@@ -4480,7 +5959,13 @@
                          READ ( 13 )  tmp_wall_v(2)%t
                       ENDIF
-                      CALL restore_surface_elements_usm_2d(                    &
+                      CALL surface_restore_elements(                           &
                                               t_wall_v(2)%t, tmp_wall_v(2)%t,  &
-                                              surf_usm_v(2)%start_index )
+                                              surf_usm_v(2)%start_index,       & 
+                                              start_index_on_file,             &
+                                              end_index_on_file,               &
+                                              nxlc, nysc,                      &
+                                              nxlf, nxrf, nysf, nynf,          &
+                                              nys_on_file, nyn_on_file,        &
+                                              nxl_on_file,nxr_on_file )
 #else
                       IF ( kk == 1 )  THEN
@@ -4489,7 +5974,13 @@
                          READ ( 13 )  tmp_wall_v(2)%t
                       ENDIF
-                      CALL restore_surface_elements_usm_2d(                    &
+                      CALL surface_restore_elements(                           &
                                               t_wall_v_1(2)%t, tmp_wall_v(2)%t,&
-                                              surf_usm_v(2)%start_index )
+                                              surf_usm_v(2)%start_index,       & 
+                                              start_index_on_file,             &
+                                              end_index_on_file ,               &
+                                              nxlc, nysc,                      &
+                                              nxlf, nxrf, nysf, nynf,          &
+                                              nys_on_file, nyn_on_file,        &
+                                              nxl_on_file,nxr_on_file )
 #endif
                    CASE ( 't_wall_v(3)' )
@@ -4500,7 +5991,13 @@
                          READ ( 13 )  tmp_wall_v(3)%t
                       ENDIF
-                      CALL restore_surface_elements_usm_2d(                    &
+                      CALL surface_restore_elements(                           &
                                               t_wall_v(3)%t, tmp_wall_v(3)%t,  &
-                                              surf_usm_v(3)%start_index )
+                                              surf_usm_v(3)%start_index,       & 
+                                              start_index_on_file,             &
+                                              end_index_on_file,               &
+                                              nxlc, nysc,                      &
+                                              nxlf, nxrf, nysf, nynf,          &
+                                              nys_on_file, nyn_on_file,        &
+                                              nxl_on_file,nxr_on_file )
 #else
                       IF ( kk == 1 )  THEN
@@ -4509,9 +6006,332 @@
                          READ ( 13 )  tmp_wall_v(3)%t
                       ENDIF
-                      CALL restore_surface_elements_usm_2d(                    &
+                      CALL surface_restore_elements(                           &
                                               t_wall_v_1(3)%t, tmp_wall_v(3)%t,&
-                                              surf_usm_v(3)%start_index )
+                                              surf_usm_v(3)%start_index,       & 
+                                              start_index_on_file,             &
+                                              end_index_on_file,               &
+                                              nxlc, nysc,                      &
+                                              nxlf, nxrf, nysf, nynf,          &
+                                              nys_on_file, nyn_on_file,        &
+                                              nxl_on_file,nxr_on_file )
 #endif
-
+                   CASE ( 't_green_h' )
+#if defined( __nopointer )
+                      IF ( kk == 1 )  THEN
+                         IF ( .NOT.  ALLOCATED( t_green_h ) )                   &
+                            ALLOCATE( t_green_h(nzb_wall:nzt_wall+1,1:surf_usm_h%ns) )
+                         READ ( 13 )  tmp_green_h
+                      ENDIF
+                      CALL surface_restore_elements(                           &
+                                              t_green_h, tmp_green_h,            &
+                                              surf_usm_h%start_index,          & 
+                                              start_index_on_file,             &
+                                              end_index_on_file,               &
+                                              nxlc, nysc,                      &
+                                              nxlf, nxrf, nysf, nynf,          &
+                                              nys_on_file, nyn_on_file,        &
+                                              nxl_on_file,nxr_on_file )
+#else
+                      IF ( kk == 1 )  THEN
+                         IF ( .NOT.  ALLOCATED( t_green_h_1 ) )                 &
+                            ALLOCATE( t_green_h_1(nzb_wall:nzt_wall+1,1:surf_usm_h%ns) )
+                         READ ( 13 )  tmp_green_h
+                      ENDIF
+                      CALL surface_restore_elements(                           &
+                                              t_green_h_1, tmp_green_h,          &
+                                              surf_usm_h%start_index,          & 
+                                              start_index_on_file,             &
+                                              end_index_on_file,               &
+                                              nxlc, nysc,                      &
+                                              nxlf, nxrf, nysf, nynf,          &
+                                              nys_on_file, nyn_on_file,        &
+                                              nxl_on_file,nxr_on_file )
+#endif
+                   CASE ( 't_green_v(0)' )
+#if defined( __nopointer )
+                      IF ( kk == 1 )  THEN
+                         IF ( .NOT.  ALLOCATED( t_green_v(0)%t ) )              &
+                            ALLOCATE( t_green_v(0)%t(nzb_wall:nzt_wall+1,1:surf_usm_v(0)%ns) )
+                         READ ( 13 )  tmp_green_v(0)%t
+                      ENDIF
+                      CALL surface_restore_elements(                           &
+                                              t_green_v(0)%t, tmp_green_v(0)%t,  &
+                                              surf_usm_v(0)%start_index,       & 
+                                              start_index_on_file,             &
+                                              end_index_on_file,               &
+                                              nxlc, nysc,                      &
+                                              nxlf, nxrf, nysf, nynf,          &
+                                              nys_on_file, nyn_on_file,        &
+                                              nxl_on_file,nxr_on_file )
+#else
+                      IF ( kk == 1 )  THEN
+                         IF ( .NOT.  ALLOCATED( t_green_v_1(0)%t ) )            &
+                            ALLOCATE( t_green_v_1(0)%t(nzb_wall:nzt_wall+1,1:surf_usm_v(0)%ns) )
+                         READ ( 13 )  tmp_green_v(0)%t
+                      ENDIF
+                      CALL surface_restore_elements(                           &
+                                              t_green_v_1(0)%t, tmp_green_v(0)%t,&
+                                              surf_usm_v(0)%start_index,       & 
+                                              start_index_on_file,             &
+                                              end_index_on_file,               &
+                                              nxlc, nysc,                      &
+                                              nxlf, nxrf, nysf, nynf,          &
+                                              nys_on_file, nyn_on_file,        &
+                                              nxl_on_file,nxr_on_file )
+#endif
+                   CASE ( 't_green_v(1)' )
+#if defined( __nopointer )
+                      IF ( kk == 1 )  THEN
+                         IF ( .NOT.  ALLOCATED( t_green_v(1)%t ) )              &
+                            ALLOCATE( t_green_v(1)%t(nzb_wall:nzt_wall+1,1:surf_usm_v(1)%ns) )
+                         READ ( 13 )  tmp_green_v(1)%t
+                      ENDIF
+                      CALL surface_restore_elements(                           &
+                                              t_green_v(1)%t, tmp_green_v(1)%t,  &
+                                              surf_usm_v(1)%start_index,       & 
+                                              start_index_on_file,             &
+                                              end_index_on_file ,              &
+                                              nxlc, nysc,           ,          &
+                                              nys_on_file, nyn_on_file,        &
+                                              nxl_on_file,nxr_on_file )
+#else
+                      IF ( kk == 1 )  THEN
+                         IF ( .NOT.  ALLOCATED( t_green_v_1(1)%t ) )            &
+                            ALLOCATE( t_green_v_1(1)%t(nzb_wall:nzt_wall+1,1:surf_usm_v(1)%ns) )
+                         READ ( 13 )  tmp_green_v(1)%t
+                      ENDIF
+                      CALL surface_restore_elements(                           &
+                                              t_green_v_1(1)%t, tmp_green_v(1)%t,&
+                                              surf_usm_v(1)%start_index,       & 
+                                              start_index_on_file,             &
+                                              end_index_on_file,               &
+                                              nxlc, nysc,                      &
+                                              nxlf, nxrf, nysf, nynf,          &
+                                              nys_on_file, nyn_on_file,        &
+                                              nxl_on_file,nxr_on_file )
+#endif
+                   CASE ( 't_green_v(2)' )
+#if defined( __nopointer )
+                      IF ( kk == 1 )  THEN
+                         IF ( .NOT.  ALLOCATED( t_green_v(2)%t ) )              &
+                            ALLOCATE( t_green_v(2)%t(nzb_wall:nzt_wall+1,1:surf_usm_v(2)%ns) )
+                         READ ( 13 )  tmp_green_v(2)%t
+                      ENDIF
+                      CALL surface_restore_elements(                           &
+                                              t_green_v(2)%t, tmp_green_v(2)%t,  &
+                                              surf_usm_v(2)%start_index,       & 
+                                              start_index_on_file,             &
+                                              end_index_on_file,               &
+                                              nxlc, nysc,                      &
+                                              nxlf, nxrf, nysf, nynf,          &
+                                              nys_on_file, nyn_on_file,        &
+                                              nxl_on_file,nxr_on_file )
+#else
+                      IF ( kk == 1 )  THEN
+                         IF ( .NOT.  ALLOCATED( t_green_v_1(2)%t ) )            &
+                            ALLOCATE( t_green_v_1(2)%t(nzb_wall:nzt_wall+1,1:surf_usm_v(2)%ns) )
+                         READ ( 13 )  tmp_green_v(2)%t
+                      ENDIF
+                      CALL surface_restore_elements(                           &
+                                              t_green_v_1(2)%t, tmp_green_v(2)%t,&
+                                              surf_usm_v(2)%start_index,       & 
+                                              start_index_on_file,             &
+                                              end_index_on_file ,               &
+                                              nxlc, nysc,                      &
+                                              nxlf, nxrf, nysf, nynf,          &
+                                              nys_on_file, nyn_on_file,        &
+                                              nxl_on_file,nxr_on_file )
+#endif
+                   CASE ( 't_green_v(3)' )
+#if defined( __nopointer )
+                      IF ( kk == 1 )  THEN
+                         IF ( .NOT.  ALLOCATED( t_green_v(3)%t ) )              &
+                            ALLOCATE( t_green_v(3)%t(nzb_wall:nzt_wall+1,1:surf_usm_v(3)%ns) )
+                         READ ( 13 )  tmp_green_v(3)%t
+                      ENDIF
+                      CALL surface_restore_elements(                           &
+                                              t_green_v(3)%t, tmp_green_v(3)%t,  &
+                                              surf_usm_v(3)%start_index,       & 
+                                              start_index_on_file,             &
+                                              end_index_on_file,               &
+                                              nxlc, nysc,                      &
+                                              nxlf, nxrf, nysf, nynf,          &
+                                              nys_on_file, nyn_on_file,        &
+                                              nxl_on_file,nxr_on_file )
+#else
+                      IF ( kk == 1 )  THEN
+                         IF ( .NOT.  ALLOCATED( t_green_v_1(3)%t ) )            &
+                            ALLOCATE( t_green_v_1(3)%t(nzb_wall:nzt_wall+1,1:surf_usm_v(3)%ns) )
+                         READ ( 13 )  tmp_green_v(3)%t
+                      ENDIF
+                      CALL surface_restore_elements(                           &
+                                              t_green_v_1(3)%t, tmp_green_v(3)%t,&
+                                              surf_usm_v(3)%start_index,       & 
+                                              start_index_on_file,             &
+                                              end_index_on_file,               &
+                                              nxlc, nysc,                      &
+                                              nxlf, nxrf, nysf, nynf,          &
+                                              nys_on_file, nyn_on_file,        &
+                                              nxl_on_file,nxr_on_file )
+#endif
+                   CASE ( 't_window_h' )
+#if defined( __nopointer )
+                      IF ( kk == 1 )  THEN
+                         IF ( .NOT.  ALLOCATED( t_window_h ) )                   &
+                            ALLOCATE( t_window_h(nzb_wall:nzt_wall+1,1:surf_usm_h%ns) )
+                         READ ( 13 )  tmp_window_h
+                      ENDIF
+                      CALL surface_restore_elements(                           &
+                                              t_window_h, tmp_window_h,            &
+                                              surf_usm_h%start_index,          & 
+                                              start_index_on_file,             &
+                                              end_index_on_file,               &
+                                              nxlc, nysc,                      &
+                                              nxlf, nxrf, nysf, nynf,          &
+                                              nys_on_file, nyn_on_file,        &
+                                              nxl_on_file,nxr_on_file )
+#else
+                      IF ( kk == 1 )  THEN
+                         IF ( .NOT.  ALLOCATED( t_window_h_1 ) )                 &
+                            ALLOCATE( t_window_h_1(nzb_wall:nzt_wall+1,1:surf_usm_h%ns) )
+                         READ ( 13 )  tmp_window_h
+                      ENDIF
+                      CALL surface_restore_elements(                           &
+                                              t_window_h_1, tmp_window_h,          &
+                                              surf_usm_h%start_index,          & 
+                                              start_index_on_file,             &
+                                              end_index_on_file,               &
+                                              nxlc, nysc,                      &
+                                              nxlf, nxrf, nysf, nynf,          &
+                                              nys_on_file, nyn_on_file,        &
+                                              nxl_on_file,nxr_on_file )
+#endif
+                   CASE ( 't_window_v(0)' )
+#if defined( __nopointer )
+                      IF ( kk == 1 )  THEN
+                         IF ( .NOT.  ALLOCATED( t_window_v(0)%t ) )              &
+                            ALLOCATE( t_window_v(0)%t(nzb_wall:nzt_wall+1,1:surf_usm_v(0)%ns) )
+                         READ ( 13 )  tmp_window_v(0)%t
+                      ENDIF
+                      CALL surface_restore_elements(                           &
+                                              t_window_v(0)%t, tmp_window_v(0)%t,  &
+                                              surf_usm_v(0)%start_index,       & 
+                                              start_index_on_file,             &
+                                              end_index_on_file,               &
+                                              nxlc, nysc,                      &
+                                              nxlf, nxrf, nysf, nynf,          &
+                                              nys_on_file, nyn_on_file,        &
+                                              nxl_on_file,nxr_on_file )
+#else
+                      IF ( kk == 1 )  THEN
+                         IF ( .NOT.  ALLOCATED( t_window_v_1(0)%t ) )            &
+                            ALLOCATE( t_window_v_1(0)%t(nzb_wall:nzt_wall+1,1:surf_usm_v(0)%ns) )
+                         READ ( 13 )  tmp_window_v(0)%t
+                      ENDIF
+                      CALL surface_restore_elements(                           &
+                                              t_window_v_1(0)%t, tmp_window_v(0)%t,&
+                                              surf_usm_v(0)%start_index,       & 
+                                              start_index_on_file,             &
+                                              end_index_on_file,               &
+                                              nxlc, nysc,                      &
+                                              nxlf, nxrf, nysf, nynf,          &
+                                              nys_on_file, nyn_on_file,        &
+                                              nxl_on_file,nxr_on_file )
+#endif
+                   CASE ( 't_window_v(1)' )
+#if defined( __nopointer )
+                      IF ( kk == 1 )  THEN
+                         IF ( .NOT.  ALLOCATED( t_window_v(1)%t ) )              &
+                            ALLOCATE( t_window_v(1)%t(nzb_wall:nzt_wall+1,1:surf_usm_v(1)%ns) )
+                         READ ( 13 )  tmp_window_v(1)%t
+                      ENDIF
+                      CALL surface_restore_elements(                           &
+                                              t_window_v(1)%t, tmp_window_v(1)%t,  &
+                                              surf_usm_v(1)%start_index,       & 
+                                              start_index_on_file,             &
+                                              end_index_on_file ,              &
+                                              nxlc, nysc,           ,          &
+                                              nys_on_file, nyn_on_file,        &
+                                              nxl_on_file,nxr_on_file )
+#else
+                      IF ( kk == 1 )  THEN
+                         IF ( .NOT.  ALLOCATED( t_window_v_1(1)%t ) )            &
+                            ALLOCATE( t_window_v_1(1)%t(nzb_wall:nzt_wall+1,1:surf_usm_v(1)%ns) )
+                         READ ( 13 )  tmp_window_v(1)%t
+                      ENDIF
+                      CALL surface_restore_elements(                           &
+                                              t_window_v_1(1)%t, tmp_window_v(1)%t,&
+                                              surf_usm_v(1)%start_index,       & 
+                                              start_index_on_file,             &
+                                              end_index_on_file,               &
+                                              nxlc, nysc,                      &
+                                              nxlf, nxrf, nysf, nynf,          &
+                                              nys_on_file, nyn_on_file,        &
+                                              nxl_on_file,nxr_on_file )
+#endif
+                   CASE ( 't_window_v(2)' )
+#if defined( __nopointer )
+                      IF ( kk == 1 )  THEN
+                         IF ( .NOT.  ALLOCATED( t_window_v(2)%t ) )              &
+                            ALLOCATE( t_window_v(2)%t(nzb_wall:nzt_wall+1,1:surf_usm_v(2)%ns) )
+                         READ ( 13 )  tmp_window_v(2)%t
+                      ENDIF
+                      CALL surface_restore_elements(                           &
+                                              t_window_v(2)%t, tmp_window_v(2)%t,  &
+                                              surf_usm_v(2)%start_index,       & 
+                                              start_index_on_file,             &
+                                              end_index_on_file,               &
+                                              nxlc, nysc,                      &
+                                              nxlf, nxrf, nysf, nynf,          &
+                                              nys_on_file, nyn_on_file,        &
+                                              nxl_on_file,nxr_on_file )
+#else
+                      IF ( kk == 1 )  THEN
+                         IF ( .NOT.  ALLOCATED( t_window_v_1(2)%t ) )            &
+                            ALLOCATE( t_window_v_1(2)%t(nzb_wall:nzt_wall+1,1:surf_usm_v(2)%ns) )
+                         READ ( 13 )  tmp_window_v(2)%t
+                      ENDIF
+                      CALL surface_restore_elements(                           &
+                                              t_window_v_1(2)%t, tmp_window_v(2)%t,&
+                                              surf_usm_v(2)%start_index,       & 
+                                              start_index_on_file,             &
+                                              end_index_on_file ,               &
+                                              nxlc, nysc,                      &
+                                              nxlf, nxrf, nysf, nynf,          &
+                                              nys_on_file, nyn_on_file,        &
+                                              nxl_on_file,nxr_on_file )
+#endif
+                   CASE ( 't_window_v(3)' )
+#if defined( __nopointer )
+                      IF ( kk == 1 )  THEN
+                         IF ( .NOT.  ALLOCATED( t_window_v(3)%t ) )              &
+                            ALLOCATE( t_window_v(3)%t(nzb_wall:nzt_wall+1,1:surf_usm_v(3)%ns) )
+                         READ ( 13 )  tmp_window_v(3)%t
+                      ENDIF
+                      CALL surface_restore_elements(                           &
+                                              t_window_v(3)%t, tmp_window_v(3)%t,  &
+                                              surf_usm_v(3)%start_index,       & 
+                                              start_index_on_file,             &
+                                              end_index_on_file,               &
+                                              nxlc, nysc,                      &
+                                              nxlf, nxrf, nysf, nynf,          &
+                                              nys_on_file, nyn_on_file,        &
+                                              nxl_on_file,nxr_on_file )
+#else
+                      IF ( kk == 1 )  THEN
+                         IF ( .NOT.  ALLOCATED( t_window_v_1(3)%t ) )            &
+                            ALLOCATE( t_window_v_1(3)%t(nzb_wall:nzt_wall+1,1:surf_usm_v(3)%ns) )
+                         READ ( 13 )  tmp_window_v(3)%t
+                      ENDIF
+                      CALL surface_restore_elements(                           &
+                                              t_window_v_1(3)%t, tmp_window_v(3)%t,&
+                                              surf_usm_v(3)%start_index,       & 
+                                              start_index_on_file,             &
+                                              end_index_on_file,               &
+                                              nxlc, nysc,                      &
+                                              nxlf, nxrf, nysf, nynf,          &
+                                              nys_on_file, nyn_on_file,        &
+                                              nxl_on_file,nxr_on_file )
+#endif
                    CASE DEFAULT
                       WRITE ( message_string, * )  'unknown variable named "', &
@@ -4530,143 +6350,6 @@
        ENDIF
        
-       CONTAINS
-       
-          SUBROUTINE restore_surface_elements_usm_1d( surf_target, surf_file, start_index_c )
-
-             IMPLICIT NONE
-       
-             INTEGER(iwp) ::  i         !< running index along x-direction, refers to former domain size
-             INTEGER(iwp) ::  ic        !< running index along x-direction, refers to current domain size
-             INTEGER(iwp) ::  j         !< running index along y-direction, refers to former domain size
-             INTEGER(iwp) ::  jc        !< running index along y-direction, refers to former domain size        
-             INTEGER(iwp) ::  m         !< surface-element index on file
-             INTEGER(iwp) ::  mm        !< surface-element index on current subdomain
-
-             INTEGER(iwp), DIMENSION(nys:nyn,nxl:nxr) ::  start_index_c             
-             
-             REAL(wp), DIMENSION(:) ::  surf_target !< target surface type
-             REAL(wp), DIMENSION(:) ::  surf_file   !< surface type on file
-             
-             ic = nxlc
-             DO  i = nxlf, nxrf
-                jc = nysc
-                DO  j = nysf, nynf
-
-                   mm = start_index_c(jc,ic)
-                   DO  m = start_index_on_file(j,i), end_index_on_file(j,i)
-                      surf_target(mm) = surf_file(m)
-                      mm = mm + 1
-                   ENDDO
-
-                   jc = jc + 1
-                ENDDO
-                ic = ic + 1
-             ENDDO
-
-
-          END SUBROUTINE restore_surface_elements_usm_1d
-          
-          SUBROUTINE restore_surface_elements_usm_2d( surf_target, surf_file, start_index_c )
-
-             IMPLICIT NONE
-        
-             INTEGER(iwp) ::  i         !< running index along x-direction, refers to former domain size
-             INTEGER(iwp) ::  ic        !< running index along x-direction, refers to current domain size
-             INTEGER(iwp) ::  j         !< running index along y-direction, refers to former domain size
-             INTEGER(iwp) ::  jc        !< running index along y-direction, refers to former domain size        
-             INTEGER(iwp) ::  m         !< surface-element index on file
-             INTEGER(iwp) ::  mm        !< surface-element index on current subdomain
-
-             INTEGER(iwp), DIMENSION(nys:nyn,nxl:nxr) ::  start_index_c
-             
-             REAL(wp), DIMENSION(:,:) ::  surf_target !< target surface type
-             REAL(wp), DIMENSION(:,:) ::  surf_file   !< surface type on file
-             
-             ic = nxlc
-             DO  i = nxlf, nxrf
-                jc = nysc
-                DO  j = nysf, nynf
-
-                   mm = start_index_c(jc,ic)
-                   DO  m = start_index_on_file(j,i), end_index_on_file(j,i)
-                      surf_target(:,mm) = surf_file(:,m)
-                      mm = mm + 1
-                   ENDDO
-
-                   jc = jc + 1
-                ENDDO
-                ic = ic + 1
-             ENDDO
-
-          END SUBROUTINE restore_surface_elements_usm_2d
-
     END SUBROUTINE usm_read_restart_data
     
-
-
-!------------------------------------------------------------------------------!
-!
-! Description:
-! ------------
-!> Soubroutine reads svf and svfsurf data from saved file
-!------------------------------------------------------------------------------!
-    SUBROUTINE usm_read_svf_from_file
-
-        IMPLICIT NONE
-        INTEGER(iwp)                 :: fsvf = 89
-        INTEGER(iwp)                 :: i
-        CHARACTER(usm_version_len)   :: usm_version_field
-        CHARACTER(svf_code_len)      :: svf_code_field
-
-        DO  i = 0, io_blocks-1
-            IF ( i == io_group )  THEN
-                OPEN ( fsvf, file=TRIM(svf_file_name)//TRIM(coupling_char)//myid_char,               &
-                    form='unformatted', status='old' )
-
-!--             read and check version
-                READ ( fsvf ) usm_version_field
-                IF ( TRIM(usm_version_field) /= TRIM(usm_version) )  THEN
-                    WRITE( message_string, * ) 'Version of binary SVF file "',           &
-                                            TRIM(usm_version_field), '" does not match ',            &
-                                            'the version of model "', TRIM(usm_version), '"'
-                    CALL message( 'usm_read_svf_from_file', 'UI0012', 1, 2, 0, 6, 0 )
-                ENDIF
-                
-!--             read nsvfl, ncsfl
-                READ ( fsvf ) nsvfl, ncsfl
-                IF ( nsvfl <= 0  .OR.  ncsfl < 0 )  THEN
-                    WRITE( message_string, * ) 'Wrong number of SVF or CSF'
-                    CALL message( 'usm_read_svf_from_file', 'UI0012', 1, 2, 0, 6, 0 )
-                ELSE
-                    WRITE(message_string,*) '    Number of SVF and CSF to read', nsvfl, ncsfl
-                    CALL location_message( message_string, .TRUE. )
-                ENDIF
-                
-                ALLOCATE(svf(ndsvf,nsvfl))
-                ALLOCATE(svfsurf(idsvf,nsvfl))
-                READ(fsvf) svf
-                READ(fsvf) svfsurf
-                IF ( plant_canopy )  THEN
-                    ALLOCATE(csf(ndcsf,ncsfl))
-                    ALLOCATE(csfsurf(idcsf,ncsfl))
-                    READ(fsvf) csf
-                    READ(fsvf) csfsurf
-                ENDIF
-                READ ( fsvf ) svf_code_field
-                
-                IF ( TRIM(svf_code_field) /= TRIM(svf_code) )  THEN
-                    WRITE( message_string, * ) 'Wrong structure of binary svf file'
-                    CALL message( 'usm_read_svf_from_file', 'UI0012', 1, 2, 0, 6, 0 )
-                ENDIF
-                
-                CLOSE (fsvf)
-                
-            ENDIF
-#if defined( __parallel )
-            CALL MPI_BARRIER( comm2d, ierr )
-#endif
-        ENDDO
-
-    END SUBROUTINE usm_read_svf_from_file
 
     
@@ -4680,4 +6363,9 @@
     SUBROUTINE usm_read_urban_surface_types
     
+        USE netcdf_data_input_mod,                                             &
+            ONLY:  building_pars_f, building_type_f
+
+        IMPLICIT NONE
+
         CHARACTER(12)                                         :: wtn
         INTEGER(iwp)                                          :: wtc
@@ -4698,4 +6386,13 @@
         REAL(wp)                                              :: wealbedo3, wethick3, snalbedo3, snthick3
         
+        LOGICAL                                               ::  surfpar
+        LOGICAL                                               ::  urbsurf
+
+!
+!--     If building_pars or building_type are already read from static input 
+!--     file, skip reading ASCII file. 
+        IF ( building_type_f%from_file  .OR.  building_pars_f%from_file )      &
+           RETURN
+
 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 !--     read categories of walls and their parameters
@@ -4844,16 +6541,23 @@
               ENDIF
 #endif
-              surf_usm_h%albedo_surf(m)    = -1.0_wp
+              surf_usm_h%albedo(:,m)    = -1.0_wp
               surf_usm_h%thickness_wall(m) = -1.0_wp
+              surf_usm_h%thickness_green(m) = -1.0_wp
+              surf_usm_h%thickness_window(m) = -1.0_wp
            ELSE
               IF ( usm_par(2,jw,iw)==0 )  THEN
                  surf_usm_h%isroof_surf(m)    = .FALSE.
                  surf_usm_h%thickness_wall(m) = -1.0_wp
+                 surf_usm_h%thickness_window(m) = -1.0_wp
+                 surf_usm_h%thickness_green(m)  = -1.0_wp
               ELSE
                  surf_usm_h%isroof_surf(m)    = .TRUE.
                  surf_usm_h%thickness_wall(m) = usm_val(2,jw,iw)
+                 surf_usm_h%thickness_window(m) = usm_val(2,jw,iw)
+                 surf_usm_h%thickness_green(m)  = usm_val(2,jw,iw)
               ENDIF
               surf_usm_h%surface_types(m) = usm_par(5,jw,iw)
-              surf_usm_h%albedo_surf(m)   = usm_val(1,jw,iw)
+              surf_usm_h%albedo(:,m)   = usm_val(1,jw,iw)
+              surf_usm_h%transmissivity(m)    = 0.0_wp
            ENDIF
 !
@@ -4875,19 +6579,27 @@
 !
 !--        Albedo
-           IF ( surf_usm_h%albedo_surf(m) < 0.0_wp )  THEN
-              surf_usm_h%albedo_surf(m) = surface_params(ialbedo,ip)
+           IF ( surf_usm_h%albedo(0,m) < 0.0_wp )  THEN
+              surf_usm_h%albedo(:,m) = surface_params(ialbedo,ip)
            ENDIF
+!--        Transmissivity
+           IF ( surf_usm_h%transmissivity(m) < 0.0_wp )  THEN
+              surf_usm_h%transmissivity(m) = 0.0_wp
+           ENDIF
 !
 !--        emissivity of the wall
-           surf_usm_h%emiss_surf(m) = surface_params(iemiss,ip)
+           surf_usm_h%emissivity(:,m) = surface_params(iemiss,ip)
 !            
 !--        heat conductivity Î»S between air and wall ( W mâ2 Kâ1 )
            surf_usm_h%lambda_surf(m) = surface_params(ilambdas,ip)
+           surf_usm_h%lambda_surf_window(m) = surface_params(ilambdas,ip)
+           surf_usm_h%lambda_surf_green(m)  = surface_params(ilambdas,ip)
 !            
 !--        roughness relative to concrete
-           surf_usm_h%roughness_wall(m) = surface_params(irough,ip)
+           surf_usm_h%z0(m) = surface_params(irough,ip)
 !            
 !--        Surface skin layer heat capacity (J mâ2 Kâ1 )
            surf_usm_h%c_surface(m) = surface_params(icsurf,ip)
+           surf_usm_h%c_surface_window(m) = surface_params(icsurf,ip)
+           surf_usm_h%c_surface_green(m)  = surface_params(icsurf,ip)
 !            
 !--        wall material parameters:
@@ -4897,10 +6609,20 @@
                 surf_usm_h%thickness_wall(m) = surface_params(ithick,ip)
            ENDIF
+           IF ( surf_usm_h%thickness_window(m) <= 0.001_wp )  THEN
+                surf_usm_h%thickness_window(m) = surface_params(ithick,ip)
+           ENDIF
+           IF ( surf_usm_h%thickness_green(m) <= 0.001_wp )  THEN
+                surf_usm_h%thickness_green(m) = surface_params(ithick,ip)
+           ENDIF
 !            
 !--        volumetric heat capacity rho*C of the wall ( J mâ3 Kâ1 )
            surf_usm_h%rho_c_wall(:,m) = surface_params(irhoC,ip)
+           surf_usm_h%rho_c_window(:,m) = surface_params(irhoC,ip)
+           surf_usm_h%rho_c_green(:,m)  = surface_params(irhoC,ip)
 !            
 !--        thermal conductivity Î»H of the wall (W mâ1 Kâ1 )
            surf_usm_h%lambda_h(:,m) = surface_params(ilambdah,ip)
+           surf_usm_h%lambda_h_window(:,m) = surface_params(ilambdah,ip)
+           surf_usm_h%lambda_h_green(:,m)  = surface_params(ilambdah,ip)
 
         ENDDO
@@ -4940,10 +6662,16 @@
                  IF ( usm_par(ii+1,jw,iw) == 0 )  THEN
                      surf_usm_v(l)%surface_types(m)  = pedestrant_category   !< default category for wall surface in pedestrant zone
-                     surf_usm_v(l)%albedo_surf(m)    = -1.0_wp
+                     surf_usm_v(l)%albedo(:,m)    = -1.0_wp
                      surf_usm_v(l)%thickness_wall(m) = -1.0_wp
+                     surf_usm_v(l)%thickness_window(m)   = -1.0_wp
+                     surf_usm_v(l)%thickness_green(m)    = -1.0_wp
+                     surf_usm_v(l)%transmissivity(m)  = -1.0_wp
                  ELSE
                      surf_usm_v(l)%surface_types(m)  = usm_par(ii+1,jw,iw)
-                     surf_usm_v(l)%albedo_surf(m)    = usm_val(ij,jw,iw)
+                     surf_usm_v(l)%albedo(:,m)    = usm_val(ij,jw,iw)
                      surf_usm_v(l)%thickness_wall(m) = usm_val(ij+1,jw,iw)
+                     surf_usm_v(l)%thickness_window(m)   = usm_val(ij+1,jw,iw)
+                     surf_usm_v(l)%thickness_green(m)    = usm_val(ij+1,jw,iw)
+                     surf_usm_v(l)%transmissivity(m)  = 0.0_wp
                  ENDIF
               ELSE IF ( kw <= usm_par(ii+2,jw,iw) )  THEN
@@ -4951,10 +6679,16 @@
                  IF ( usm_par(ii+3,jw,iw) == 0 )  THEN
                      surf_usm_v(l)%surface_types(m)  = wall_category         !< default category for wall surface
-                     surf_usm_v(l)%albedo_surf(m)    = -1.0_wp
+                     surf_usm_v(l)%albedo(:,m)    = -1.0_wp
                      surf_usm_v(l)%thickness_wall(m) = -1.0_wp
+                     surf_usm_v(l)%thickness_window(m)   = -1.0_wp
+                     surf_usm_v(l)%thickness_green(m)    = -1.0_wp
+                     surf_usm_v(l)%transmissivity(m)  = -1.0_wp
                  ELSE
                      surf_usm_v(l)%surface_types(m)  = usm_par(ii+3,jw,iw)
-                     surf_usm_v(l)%albedo_surf(m)    = usm_val(ij+2,jw,iw)
+                     surf_usm_v(l)%albedo(:,m)    = usm_val(ij+2,jw,iw)
                      surf_usm_v(l)%thickness_wall(m) = usm_val(ij+3,jw,iw)
+                     surf_usm_v(l)%thickness_window(m)   = usm_val(ij+3,jw,iw)
+                     surf_usm_v(l)%thickness_green(m)    = usm_val(ij+3,jw,iw)
+                     surf_usm_v(l)%transmissivity(m)  = 0.0_wp
                  ENDIF
               ELSE IF ( kw <= usm_par(ii+4,jw,iw) )  THEN
@@ -4962,10 +6696,16 @@
                  IF ( usm_par(ii+5,jw,iw) == 0 )  THEN
                      surf_usm_v(l)%surface_types(m)  = roof_category         !< default category for roof surface
-                     surf_usm_v(l)%albedo_surf(m)    = -1.0_wp
+                     surf_usm_v(l)%albedo(:,m)    = -1.0_wp
                      surf_usm_v(l)%thickness_wall(m) = -1.0_wp
+                     surf_usm_v(l)%thickness_window(m)   = -1.0_wp
+                     surf_usm_v(l)%thickness_green(m)    = -1.0_wp
+                     surf_usm_v(l)%transmissivity(m)  = -1.0_wp
                  ELSE
                      surf_usm_v(l)%surface_types(m)  = usm_par(ii+5,jw,iw)
-                     surf_usm_v(l)%albedo_surf(m)    = usm_val(ij+4,jw,iw)
+                     surf_usm_v(l)%albedo(:,m)    = usm_val(ij+4,jw,iw)
                      surf_usm_v(l)%thickness_wall(m) = usm_val(ij+5,jw,iw)
+                     surf_usm_v(l)%thickness_window(m)   = usm_val(ij+5,jw,iw)
+                     surf_usm_v(l)%thickness_green(m)    = usm_val(ij+5,jw,iw)
+                     surf_usm_v(l)%transmissivity(m)  = 0.0_wp
                  ENDIF
               ELSE
@@ -4992,19 +6732,27 @@
 !
 !--           Albedo
-              IF ( surf_usm_v(l)%albedo_surf(m) < 0.0_wp )  THEN
-                 surf_usm_v(l)%albedo_surf(m) = surface_params(ialbedo,ip)
+              IF ( surf_usm_v(l)%albedo(0,m) < 0.0_wp )  THEN
+                 surf_usm_v(l)%albedo(:,m) = surface_params(ialbedo,ip)
               ENDIF
+!--           Transmissivity of the windows
+              IF ( surf_usm_v(l)%transmissivity(m) < 0.0_wp )  THEN
+                 surf_usm_v(l)%transmissivity(m) = 0.0_wp
+              ENDIF
 !
 !--           emissivity of the wall
-              surf_usm_v(l)%emiss_surf(m) = surface_params(iemiss,ip)
+              surf_usm_v(l)%emissivity(:,m) = surface_params(iemiss,ip)
 !            
 !--           heat conductivity Î»S between air and wall ( W mâ2 Kâ1 )
               surf_usm_v(l)%lambda_surf(m) = surface_params(ilambdas,ip)
+              surf_usm_v(l)%lambda_surf_window(m) = surface_params(ilambdas,ip)
+              surf_usm_v(l)%lambda_surf_green(m) = surface_params(ilambdas,ip)
 !            
 !--           roughness relative to concrete
-              surf_usm_v(l)%roughness_wall(m) = surface_params(irough,ip)
+              surf_usm_v(l)%z0(m) = surface_params(irough,ip)
 !            
 !--           Surface skin layer heat capacity (J mâ2 Kâ1 )
               surf_usm_v(l)%c_surface(m) = surface_params(icsurf,ip)
+              surf_usm_v(l)%c_surface_window(m) = surface_params(icsurf,ip)
+              surf_usm_v(l)%c_surface_green(m) = surface_params(icsurf,ip)
 !            
 !--           wall material parameters:
@@ -5014,11 +6762,43 @@
                    surf_usm_v(l)%thickness_wall(m) = surface_params(ithick,ip)
               ENDIF
+              IF ( surf_usm_v(l)%thickness_window(m) <= 0.001_wp )  THEN
+                   surf_usm_v(l)%thickness_window(m) = surface_params(ithick,ip)
+              ENDIF
+              IF ( surf_usm_v(l)%thickness_green(m) <= 0.001_wp )  THEN
+                   surf_usm_v(l)%thickness_green(m) = surface_params(ithick,ip)
+              ENDIF
 !            
 !--           volumetric heat capacity rho*C of the wall ( J mâ3 Kâ1 )
               surf_usm_v(l)%rho_c_wall(:,m) = surface_params(irhoC,ip)
+              surf_usm_v(l)%rho_c_window(:,m) = surface_params(irhoC,ip)
+              surf_usm_v(l)%rho_c_green(:,m) = surface_params(irhoC,ip)
 !            
 !--           thermal conductivity Î»H of the wall (W mâ1 Kâ1 )
               surf_usm_v(l)%lambda_h(:,m) = surface_params(ilambdah,ip)
-
+              surf_usm_v(l)%lambda_h_window(:,m) = surface_params(ilambdah,ip)
+              surf_usm_v(l)%lambda_h_green(:,m) = surface_params(ilambdah,ip)
+
+           ENDDO
+        ENDDO 
+!
+!--     Initialize wall layer thicknesses. Please note, this will be removed
+!--     after migration to Palm input data standard.  
+        DO k = nzb_wall, nzt_wall
+           zwn(k) = zwn_default(k)
+           zwn_green(k) = zwn_default_green(k)
+           zwn_window(k) = zwn_default_window(k)
+        ENDDO
+!
+!--     apply for all particular surface grids. First for horizontal surfaces
+        DO  m = 1, surf_usm_h%ns
+           surf_usm_h%zw(:,m) = zwn(:) * surf_usm_h%thickness_wall(m)
+           surf_usm_h%zw_green(:,m) = zwn_green(:) * surf_usm_h%thickness_green(m)
+           surf_usm_h%zw_window(:,m) = zwn_window(:) * surf_usm_h%thickness_window(m)
+        ENDDO
+        DO  l = 0, 3
+           DO  m = 1, surf_usm_v(l)%ns
+              surf_usm_v(l)%zw(:,m) = zwn(:) * surf_usm_v(l)%thickness_wall(m)
+              surf_usm_v(l)%zw_green(:,m) = zwn_green(:) * surf_usm_v(l)%thickness_green(m)
+              surf_usm_v(l)%zw_window(:,m) = zwn_window(:) * surf_usm_v(l)%thickness_window(m)
            ENDDO
         ENDDO
@@ -5043,15 +6823,28 @@
         INTEGER(iwp)                          :: i, j, k, l, d, m   !< running indices
         
-        REAL(wp)                              :: pt1                !< temperature at first grid box adjacent to surface
         REAL(wp)                              :: u1,v1,w1           !< near wall u,v,w
         REAL(wp)                              :: stend              !< surface tendency
+        REAL(wp)                              :: stend_window       !< surface tendency
+        REAL(wp)                              :: stend_green        !< surface tendency
         REAL(wp)                              :: coef_1             !< first coeficient for prognostic equation
+        REAL(wp)                              :: coef_window_1      !< first coeficient for prognostic window equation
+        REAL(wp)                              :: coef_green_1       !< first coeficient for prognostic green wall equation
         REAL(wp)                              :: coef_2             !< second  coeficient for prognostic equation
+        REAL(wp)                              :: coef_window_2      !< second  coeficient for prognostic window equation
+        REAL(wp)                              :: coef_green_2       !< second  coeficient for prognostic green wall equation
         REAL(wp)                              :: rho_cp             !< rho_wall_surface * cp
         REAL(wp)                              :: r_a                !< aerodynamic resistance for horizontal and vertical surfaces
+        REAL(wp)                              :: r_a_window         !< aerodynamic resistance for horizontal and vertical window surfaces
+        REAL(wp)                              :: r_a_green          !< aerodynamic resistance for horizontal and vertical green surfaces
         REAL(wp)                              :: f_shf              !< factor for shf_eb
+        REAL(wp)                              :: f_shf_window       !< factor for shf_eb window
+        REAL(wp)                              :: f_shf_green        !< factor for shf_eb green wall
         REAL(wp)                              :: lambda_surface     !< current value of lambda_surface (heat conductivity between air and wall)
+        REAL(wp)                              :: lambda_surface_window !< current value of lambda_surface (heat conductivity between air and window)
+        REAL(wp)                              :: lambda_surface_green  !< current value of lambda_surface (heat conductivity between air and greeb wall)
         REAL(wp)                              :: Ueff               !< effective wind speed for calculation of heat transfer coefficients
         REAL(wp)                              :: httc               !< heat transfer coefficient
+        REAL(wp)                              :: httc_window        !< heat transfer coefficient window
+        REAL(wp)                              :: httc_green         !< heat transfer coefficient green wall
         REAL(wp), DIMENSION(nzub:nzut)        :: exn                !< value of the Exner function in layers
         
@@ -5068,5 +6861,4 @@
 !        
 !--     First, treat horizontal surface elements
-
         DO  m = 1, surf_usm_h%ns
 !
@@ -5081,12 +6873,15 @@
            IF ( surf_usm_h%ol(m) >= 0.0_wp )  THEN
               lambda_surface = surf_usm_h%lambda_surf(m)
+              lambda_surface_window = surf_usm_h%lambda_surf_window(m)
+              lambda_surface_green = surf_usm_h%lambda_surf_green(m)
            ELSE
               lambda_surface = surf_usm_h%lambda_surf(m)
+              lambda_surface_window = surf_usm_h%lambda_surf_window(m)
+              lambda_surface_green = surf_usm_h%lambda_surf_green(m)
            ENDIF
 #if ! defined( __nopointer )
-           pt1  = pt(k,j,i)
 !
 !--        calculate rho * cp coefficient at surface layer
-           rho_cp  = cp * hyp(k) / ( r_d * pt1 * exn(k) )
+           rho_cp  = cp * hyp(k) / ( r_d * surf_usm_h%pt1(m) * exn(k) )
 #endif
 !
@@ -5096,9 +6891,16 @@
 !--        data from the last time step is used here.
                
-           r_a = ( pt1 - t_surf_h(m) / exn(k) ) /                              &
-                 ( surf_usm_h%ts(m) * surf_usm_h%us(m) + 1.0E-10_wp )
+           r_a = ( surf_usm_h%pt1(m) - t_surf_h(m) / exn(k) ) /                              &
+                 ( surf_usm_h%ts(m) * surf_usm_h%us(m) + 1.0E-20_wp )
+           r_a_window = ( surf_usm_h%pt1(m) - t_surf_window_h(m) / exn(k) ) /                &
+                 ( surf_usm_h%ts(m) * surf_usm_h%us(m) + 1.0E-20_wp )
+           r_a_green = ( surf_usm_h%pt1(m) - t_surf_green_h(m) / exn(k) ) /                  &
+                 ( surf_usm_h%ts(m) * surf_usm_h%us(m) + 1.0E-20_wp )
                 
 !--        make sure that the resistance does not drop to zero
-           IF ( ABS(r_a) < 1.0E-10_wp )  r_a = 1.0E-10_wp
+           IF ( r_a        < 1.0_wp )  r_a        = 1.0_wp
+           IF ( r_a_window < 1.0_wp )  r_a_window = 1.0_wp
+           IF ( r_a_green  < 1.0_wp )  r_a_green  = 1.0_wp
+
                 
 !--        the parameterization is developed originally for larger scales
@@ -5106,27 +6908,50 @@
 !--        our first experiences show that the parameterization underestimates
 !--        r_a in meter resolution.
-!--        temporary solution - multiplication by magic constant :-(.
-           r_a = r_a * ra_horiz_coef
+!--        A temporary solution would be multiplication by magic constant :-(.
+!--        For the moment this is comment out.
+           r_a        = r_a        !* ra_horiz_coef
+           r_a_window = r_a_window !* ra_horiz_coef
+           r_a_green  = r_a_green  !* ra_horiz_coef
                 
 !--        factor for shf_eb
            f_shf  = rho_cp / r_a
+           f_shf_window  = rho_cp / r_a_window
+           f_shf_green  = rho_cp / r_a_green
         
 !--        add LW up so that it can be removed in prognostic equation
-           surf_usm_h%rad_net_l(m) = surf_usm_h%rad_in_sw(m)  -                &
-                                     surf_usm_h%rad_out_sw(m) +                &
-                                     surf_usm_h%rad_in_lw(m)  -                &
-                                     surf_usm_h%rad_out_lw(m)
+           surf_usm_h%rad_net_l(m) = surf_usm_h%rad_sw_in(m)  -                &
+                                     surf_usm_h%rad_sw_out(m) +                &
+                                     surf_usm_h%rad_lw_in(m)  -                &
+                                     surf_usm_h%rad_lw_out(m)
 
 !--        numerator of the prognostic equation
+!--     Todo: Adjust to tile approach. So far, emissivity for wall (element 0)
+!--           is used
            coef_1 = surf_usm_h%rad_net_l(m) +                                  & 
-                   ( 3.0_wp + 1.0_wp ) * surf_usm_h%emiss_surf(m) * sigma_sb * &
+                 ( 3.0_wp + 1.0_wp ) * surf_usm_h%emissivity(0,m) * sigma_sb * &
                                        t_surf_h(m) ** 4 +                      &  
-                                       f_shf * pt1 +                           &
+                                       f_shf * surf_usm_h%pt1(m) +                           &
                                        lambda_surface * t_wall_h(nzb_wall,m)
+           coef_window_1 = surf_usm_h%rad_net_l(m) +                                  & 
+                   ( 3.0_wp + 1.0_wp ) * surf_usm_h%emissivity(2,m) * sigma_sb * &
+                                       t_surf_window_h(m) ** 4 +                      &  
+                                       f_shf_window * surf_usm_h%pt1(m) +                           &
+                                       lambda_surface_window * t_window_h(nzb_wall,m)
+           coef_green_1 = surf_usm_h%rad_net_l(m) +                                  & 
+                   ( 3.0_wp + 1.0_wp ) * surf_usm_h%emissivity(1,m) * sigma_sb * &
+                                       t_surf_green_h(m) ** 4 +                      &  
+                                       f_shf_green * surf_usm_h%pt1(m) +                           &
+                                       lambda_surface_green * t_wall_h(nzb_wall,m)
 
 !--        denominator of the prognostic equation
-           coef_2 = 4.0_wp * surf_usm_h%emiss_surf(m) * sigma_sb *            &
+           coef_2 = 4.0_wp * surf_usm_h%emissivity(0,m) * sigma_sb *          &
                              t_surf_h(m) ** 3                                 &
                            + lambda_surface + f_shf / exn(k)
+           coef_window_2 = 4.0_wp * surf_usm_h%emissivity(2,m) * sigma_sb *  &
+                             t_surf_window_h(m) ** 3                              &
+                           + lambda_surface_window + f_shf_window / exn(k)
+           coef_green_2 = 4.0_wp * surf_usm_h%emissivity(1,m) * sigma_sb *    &
+                             t_surf_green_h(m) ** 3                               &
+                           + lambda_surface_green + f_shf_green / exn(k)
 
 !--        implicit solution when the surface layer has no heat capacity,
@@ -5135,12 +6960,32 @@
                              surf_usm_h%c_surface(m) * t_surf_h(m) ) /        & 
                            ( surf_usm_h%c_surface(m) + coef_2 * dt_3d * tsc(2) ) 
+           t_surf_window_h_p(m) = ( coef_window_1 * dt_3d * tsc(2) +                        &
+                             surf_usm_h%c_surface_window(m) * t_surf_window_h(m) ) /        & 
+                           ( surf_usm_h%c_surface_window(m) + coef_window_2 * dt_3d * tsc(2) ) 
+           t_surf_green_h_p(m) = ( coef_green_1 * dt_3d * tsc(2) +                        &
+                             surf_usm_h%c_surface_green(m) * t_surf_green_h(m) ) /        & 
+                           ( surf_usm_h%c_surface_green(m) + coef_green_2 * dt_3d * tsc(2) ) 
 
 !--        add RK3 term
            t_surf_h_p(m) = t_surf_h_p(m) + dt_3d * tsc(3) *                   &
                            surf_usm_h%tt_surface_m(m)
-            
+           t_surf_window_h_p(m) = t_surf_window_h_p(m) + dt_3d * tsc(3) *     &
+                           surf_usm_h%tt_surface_window_m(m)
+           t_surf_green_h_p(m) = t_surf_green_h_p(m) + dt_3d * tsc(3) *       &
+                           surf_usm_h%tt_surface_green_m(m)
+!
+!--        Store surface temperature        
+           surf_usm_h%pt_surface(m) = ( surf_usm_h%frac(0,m) * t_surf_h_p(m)   &
+                               + surf_usm_h%frac(2,m) * t_surf_window_h_p(m)   &
+                               + surf_usm_h%frac(1,m) * t_surf_green_h_p(m) )  &
+                               / exn(k)
+                       
 !--        calculate true tendency
            stend = ( t_surf_h_p(m) - t_surf_h(m) - dt_3d * tsc(3) *           &
                      surf_usm_h%tt_surface_m(m)) / ( dt_3d  * tsc(2) )
+           stend_window = ( t_surf_window_h_p(m) - t_surf_window_h(m) - dt_3d * tsc(3) *        &
+                     surf_usm_h%tt_surface_window_m(m)) / ( dt_3d  * tsc(2) )
+           stend_green = ( t_surf_green_h_p(m) - t_surf_green_h(m) - dt_3d * tsc(3) *           &
+                     surf_usm_h%tt_surface_green_m(m)) / ( dt_3d  * tsc(2) )
 
 !--        calculate t_surf tendencies for the next Runge-Kutta step
@@ -5148,8 +6993,14 @@
               IF ( intermediate_timestep_count == 1 )  THEN
                  surf_usm_h%tt_surface_m(m) = stend
+                 surf_usm_h%tt_surface_window_m(m) = stend_window
+                 surf_usm_h%tt_surface_green_m(m) = stend_green
               ELSEIF ( intermediate_timestep_count <                          &
                         intermediate_timestep_count_max )  THEN
                  surf_usm_h%tt_surface_m(m) = -9.5625_wp * stend +            &
                                      5.3125_wp * surf_usm_h%tt_surface_m(m)
+                 surf_usm_h%tt_surface_window_m(m) = -9.5625_wp * stend_window +   &
+                                     5.3125_wp * surf_usm_h%tt_surface_window_m(m)
+                 surf_usm_h%tt_surface_green_m(m) = -9.5625_wp * stend_green +     &
+                                     5.3125_wp * surf_usm_h%tt_surface_green_m(m)
               ENDIF
            ENDIF
@@ -5157,5 +7008,7 @@
 !--        in case of fast changes in the skin temperature, it is required to
 !--        update the radiative fluxes in order to keep the solution stable
-           IF ( ABS( t_surf_h_p(m) - t_surf_h(m) ) > 1.0_wp )  THEN
+           IF ( ( ABS( t_surf_h_p(m) - t_surf_h(m) ) > 1.0_wp ) .OR. &
+                ( ABS( t_surf_green_h_p(m) - t_surf_green_h(m) ) > 1.0_wp ) .OR. &
+                ( ABS( t_surf_window_h_p(m) - t_surf_window_h(m) ) > 1.0_wp ) ) THEN
               force_radiation_call_l = .TRUE.
            ENDIF
@@ -5166,18 +7019,42 @@
 !--        using surface and wall heat fluxes
 #if ! defined( __nopointer )
-           pt(k-1,j,i) = t_surf_h_p(m) / exn(k)  ! not for vertical surfaces
+!            pt(k-1,j,i) = ( surf_usm_h%frac(0,m) * t_surf_h_p(m)       &
+!                          + surf_usm_h%frac(2,m) * t_surf_window_h_p(m)  &
+!                          + surf_usm_h%frac(1,m) * t_surf_green_h_p(m) ) &
+!                          / exn(k)  ! not for vertical surfaces
 #endif
 
 !--        calculate fluxes
 !--        rad_net_l is never used!           
-           surf_usm_h%rad_net_l(m) = surf_usm_h%rad_net_l(m) +                &
-                                     3.0_wp * sigma_sb *                      &
-                                     t_surf_h(m)**4 - 4.0_wp * sigma_sb *     &
-                                     t_surf_h(m)**3 * t_surf_h_p(m)
+           surf_usm_h%rad_net_l(m) = surf_usm_h%frac(0,m) *                         &
+                                     ( surf_usm_h%rad_net_l(m) +                    &
+                                     3.0_wp * sigma_sb *                            &
+                                     t_surf_h(m)**4 - 4.0_wp * sigma_sb *           &
+                                     t_surf_h(m)**3 * t_surf_h_p(m) )               &
+                                   + surf_usm_h%frac(2,m) *                         &
+                                     ( surf_usm_h%rad_net_l(m) +                    &
+                                     3.0_wp * sigma_sb *                            &
+                                     t_surf_window_h(m)**4 - 4.0_wp * sigma_sb *    &
+                                     t_surf_window_h(m)**3 * t_surf_window_h_p(m) ) &
+                                   + surf_usm_h%frac(1,m) *                         &
+                                     ( surf_usm_h%rad_net_l(m) +                    &
+                                     3.0_wp * sigma_sb *                            &
+                                     t_surf_green_h(m)**4 - 4.0_wp * sigma_sb *     &
+                                     t_surf_green_h(m)**3 * t_surf_green_h_p(m) )
            surf_usm_h%wghf_eb(m)   = lambda_surface *                         &
                                       ( t_surf_h_p(m) - t_wall_h(nzb_wall,m) )
+           surf_usm_h%wghf_eb_green(m)  = lambda_surface_green *                        &
+                                          ( t_surf_green_h_p(m) - t_green_h(nzb_wall,m) )
+           surf_usm_h%wghf_eb_window(m) = lambda_surface_window *                       &
+                                           ( t_surf_window_h_p(m) - t_window_h(nzb_wall,m) )
+
 !
 !--        ground/wall/roof surface heat flux
-           surf_usm_h%wshf_eb(m)   = - f_shf  * ( pt1 - t_surf_h_p(m) )
+           surf_usm_h%wshf_eb(m)   = - f_shf  * ( surf_usm_h%pt1(m) - t_surf_h_p(m) / exn(k) ) *               &
+                                       surf_usm_h%frac(0,m)                         &
+                                     - f_shf_window  * ( surf_usm_h%pt1(m) - t_surf_window_h_p(m) / exn(k) ) * &
+                                       surf_usm_h%frac(2,m)                          &
+                                     - f_shf_green  * ( surf_usm_h%pt1(m) - t_surf_green_h_p(m) / exn(k) ) *   &
+                                       surf_usm_h%frac(1,m)
 !           
 !--        store kinematic surface heat fluxes for utilization in other processes
@@ -5195,4 +7072,5 @@
              j = surf_usm_v(l)%j(m)
              k = surf_usm_v(l)%k(m)
+
 !
 !--          TODO - how to calculate lambda_surface for horizontal (??? do you mean verical ???) surfaces
@@ -5201,9 +7079,11 @@
 !--          stratification is not considered in this case.
              lambda_surface = surf_usm_v(l)%lambda_surf(m)
+             lambda_surface_window = surf_usm_v(l)%lambda_surf_window(m)
+             lambda_surface_green = surf_usm_v(l)%lambda_surf_green(m)
+
 #if ! defined( __nopointer )          
-             pt1  = pt(k,j,i)
 !
 !--          calculate rho * cp coefficient at surface layer
-             rho_cp  = cp * hyp(k) / ( r_d * pt1 * exn(k) )
+             rho_cp  = cp * hyp(k) / ( r_d * surf_usm_v(l)%pt1(m) * exn(k) )
 #endif
 
@@ -5238,25 +7118,44 @@
                 
              Ueff   = SQRT( u1**2 + v1**2 + w1**2 )
-             httc   = surf_usm_v(l)%roughness_wall(m) *                       &
+             httc   = surf_usm_v(l)%z0(m) *                                    &
                        ( 11.8_wp + 4.2_wp * Ueff ) - 4.0_wp
-             f_shf  = httc
+             f_shf         = httc
+             f_shf_window  = httc
+             f_shf_green   = httc
 
 !--          add LW up so that it can be removed in prognostic equation
-             surf_usm_v(l)%rad_net_l(m) = surf_usm_v(l)%rad_in_sw(m)  -        &
-                                          surf_usm_v(l)%rad_out_sw(m) +        &
-                                          surf_usm_v(l)%rad_in_lw(m)  -        &
-                                          surf_usm_v(l)%rad_out_lw(m)
+             surf_usm_v(l)%rad_net_l(m) = surf_usm_v(l)%rad_sw_in(m)  -        &
+                                          surf_usm_v(l)%rad_sw_out(m) +        &
+                                          surf_usm_v(l)%rad_lw_in(m)  -        &
+                                          surf_usm_v(l)%rad_lw_out(m)
 
 !--           numerator of the prognostic equation
               coef_1 = surf_usm_v(l)%rad_net_l(m) +                            & ! coef +1 corresponds to -lwout included in calculation of radnet_l
-               ( 3.0_wp + 1.0_wp ) * surf_usm_v(l)%emiss_surf(m) * sigma_sb *  &
+             ( 3.0_wp + 1.0_wp ) * surf_usm_v(l)%emissivity(0,m) * sigma_sb *  &
                                      t_surf_v(l)%t(m) ** 4 +                   &  
-                                     f_shf * pt1 +                             &
+                                     f_shf * surf_usm_v(l)%pt1(m) +                             &
                                      lambda_surface * t_wall_v(l)%t(nzb_wall,m)
+              coef_window_1 = surf_usm_v(l)%rad_net_l(m) +                            & ! coef +1 corresponds to -lwout included in calculation of radnet_l
+               ( 3.0_wp + 1.0_wp ) * surf_usm_v(l)%emissivity(2,m) * sigma_sb *  &
+                                     t_surf_window_v(l)%t(m) ** 4 +                   &  
+                                     f_shf * surf_usm_v(l)%pt1(m) +                             &
+                                     lambda_surface_window * t_window_v(l)%t(nzb_wall,m)
+
+              coef_green_1 = surf_usm_v(l)%rad_net_l(m) +                            & ! coef +1 corresponds to -lwout included in calculation of radnet_l
+               ( 3.0_wp + 1.0_wp ) * surf_usm_v(l)%emissivity(1,m) * sigma_sb *  &
+                                     t_surf_green_v(l)%t(m) ** 4 +                   &  
+                                     f_shf * surf_usm_v(l)%pt1(m) +                             &
+                                     lambda_surface_green * t_wall_v(l)%t(nzb_wall,m)
 
 !--           denominator of the prognostic equation
-              coef_2 = 4.0_wp * surf_usm_v(l)%emiss_surf(m) * sigma_sb *       &
+              coef_2 = 4.0_wp * surf_usm_v(l)%emissivity(0,m) * sigma_sb *     &
                                 t_surf_v(l)%t(m) ** 3                          &
                               + lambda_surface + f_shf / exn(k)
+              coef_window_2 = 4.0_wp * surf_usm_v(l)%emissivity(2,m) * sigma_sb *     &
+                                t_surf_window_v(l)%t(m) ** 3                         &
+                              + lambda_surface_window + f_shf / exn(k)
+              coef_green_2 = 4.0_wp * surf_usm_v(l)%emissivity(1,m) * sigma_sb *       &
+                                t_surf_green_v(l)%t(m) ** 3                          &
+                              + lambda_surface_green + f_shf / exn(k)
 
 !--           implicit solution when the surface layer has no heat capacity,
@@ -5265,12 +7164,35 @@
                              surf_usm_v(l)%c_surface(m) * t_surf_v(l)%t(m) ) / & 
                            ( surf_usm_v(l)%c_surface(m) + coef_2 * dt_3d * tsc(2) ) 
+              t_surf_window_v_p(l)%t(m) = ( coef_window_1 * dt_3d * tsc(2) +                 &
+                             surf_usm_v(l)%c_surface_window(m) * t_surf_window_v(l)%t(m) ) / & 
+                           ( surf_usm_v(l)%c_surface_window(m) + coef_window_2 * dt_3d * tsc(2) ) 
+
+              t_surf_green_v_p(l)%t(m) = ( coef_green_1 * dt_3d * tsc(2) +                 &
+                             surf_usm_v(l)%c_surface_green(m) * t_surf_green_v(l)%t(m) ) / & 
+                           ( surf_usm_v(l)%c_surface_green(m) + coef_green_2 * dt_3d * tsc(2) ) 
+
+
 
 !--           add RK3 term
               t_surf_v_p(l)%t(m) = t_surf_v_p(l)%t(m) + dt_3d * tsc(3) *       &
                                 surf_usm_v(l)%tt_surface_m(m)
+              t_surf_window_v_p(l)%t(m) = t_surf_window_v_p(l)%t(m) + dt_3d * tsc(3) *     &
+                                surf_usm_v(l)%tt_surface_window_m(m)
+              t_surf_green_v_p(l)%t(m) = t_surf_green_v_p(l)%t(m) + dt_3d * tsc(3) *       &
+                                surf_usm_v(l)%tt_surface_green_m(m)
+!
+!--           Store surface temperature        
+              surf_usm_v(l)%pt_surface(m) =  ( surf_usm_v(l)%frac(0,m) * t_surf_v_p(l)%t(m)  &
+                                      + surf_usm_v(l)%frac(2,m) * t_surf_window_v_p(l)%t(m)  &
+                                      + surf_usm_v(l)%frac(1,m) * t_surf_green_v_p(l)%t(m) ) &
+                                      / exn(k) 
             
 !--           calculate true tendency
               stend = ( t_surf_v_p(l)%t(m) - t_surf_v(l)%t(m) - dt_3d * tsc(3) *&
                         surf_usm_v(l)%tt_surface_m(m) ) / ( dt_3d  * tsc(2) )
+              stend_window = ( t_surf_window_v_p(l)%t(m) - t_surf_window_v(l)%t(m) - dt_3d * tsc(3) *&
+                        surf_usm_v(l)%tt_surface_window_m(m) ) / ( dt_3d  * tsc(2) )
+              stend_green = ( t_surf_green_v_p(l)%t(m) - t_surf_green_v(l)%t(m) - dt_3d * tsc(3) *&
+                        surf_usm_v(l)%tt_surface_green_m(m) ) / ( dt_3d  * tsc(2) )
 
 !--           calculate t_surf tendencies for the next Runge-Kutta step
@@ -5278,8 +7200,14 @@
                  IF ( intermediate_timestep_count == 1 )  THEN
                     surf_usm_v(l)%tt_surface_m(m) = stend
+                    surf_usm_v(l)%tt_surface_window_m(m) = stend_window
+                    surf_usm_v(l)%tt_surface_green_m(m) = stend_green
                  ELSEIF ( intermediate_timestep_count <                        &
                           intermediate_timestep_count_max )  THEN
                     surf_usm_v(l)%tt_surface_m(m) = -9.5625_wp * stend +       &
-                                     5.3125_wp * surf_usm_h%tt_surface_m(m)
+                                     5.3125_wp * surf_usm_v(l)%tt_surface_m(m)
+                    surf_usm_v(l)%tt_surface_green_m(m) = -9.5625_wp * stend_green +       &
+                                     5.3125_wp * surf_usm_v(l)%tt_surface_green_m(m)
+                    surf_usm_v(l)%tt_surface_window_m(m) = -9.5625_wp * stend_window +       &
+                                     5.3125_wp * surf_usm_v(l)%tt_surface_window_m(m)
                  ENDIF
               ENDIF
@@ -5287,5 +7215,8 @@
 !--           in case of fast changes in the skin temperature, it is required to
 !--           update the radiative fluxes in order to keep the solution stable
-              IF ( ABS( t_surf_v_p(l)%t(m) - t_surf_v(l)%t(m) ) > 1.0_wp )  THEN
+
+              IF ( ( ABS( t_surf_v_p(l)%t(m) - t_surf_v(l)%t(m) ) > 1.0_wp ) .OR. &
+                   ( ABS( t_surf_green_v_p(l)%t(m) - t_surf_green_v(l)%t(m) ) > 1.0_wp ) .OR.  &
+                   ( ABS( t_surf_window_v_p(l)%t(m) - t_surf_window_v(l)%t(m) ) > 1.0_wp ) ) THEN
                  force_radiation_call_l = .TRUE.
               ENDIF
@@ -5293,14 +7224,31 @@
 !--           calculate fluxes
 !--           rad_net_l is never used!           
-              surf_usm_v(l)%rad_net_l(m) = surf_usm_v(l)%rad_net_l(m) +        &
-                                     3.0_wp * sigma_sb *                       &
-                                     t_surf_v(l)%t(m)**4 - 4.0_wp * sigma_sb * &
-                                     t_surf_v(l)%t(m)**3 * t_surf_v_p(l)%t(m)
-
+              surf_usm_v(l)%rad_net_l(m) = surf_usm_v(l)%frac(0,m) *                             &
+                                           ( surf_usm_v(l)%rad_net_l(m) +                            &
+                                           3.0_wp * sigma_sb *                                       &
+                                           t_surf_v(l)%t(m)**4 - 4.0_wp * sigma_sb *                 &
+                                           t_surf_v(l)%t(m)**3 * t_surf_v_p(l)%t(m) )                &
+                                         + surf_usm_v(l)%frac(2,m) *                              &
+                                           ( surf_usm_v(l)%rad_net_l(m) +                            &
+                                           3.0_wp * sigma_sb *                                       &
+                                           t_surf_window_v(l)%t(m)**4 - 4.0_wp * sigma_sb *          &
+                                           t_surf_window_v(l)%t(m)**3 * t_surf_window_v_p(l)%t(m) )  &
+                                         + surf_usm_v(l)%frac(1,m) *                            &
+                                           ( surf_usm_v(l)%rad_net_l(m) +                            &
+                                           3.0_wp * sigma_sb *                                       &
+                                           t_surf_green_v(l)%t(m)**4 - 4.0_wp * sigma_sb *           &
+                                           t_surf_green_v(l)%t(m)**3 * t_surf_green_v_p(l)%t(m) )
+
+              surf_usm_v(l)%wghf_eb_window(m) = lambda_surface_window * &
+                                                ( t_surf_window_v_p(l)%t(m) - t_window_v(l)%t(nzb_wall,m) )
               surf_usm_v(l)%wghf_eb(m)   = lambda_surface *                    &
                                      ( t_surf_v_p(l)%t(m) - t_wall_v(l)%t(nzb_wall,m) )
+              surf_usm_v(l)%wghf_eb_green(m)  = lambda_surface_green *  &
+                                                ( t_surf_green_v_p(l)%t(m) - t_green_v(l)%t(nzb_wall,m) )
 
 !--           ground/wall/roof surface heat flux
-              surf_usm_v(l)%wshf_eb(m)   = - f_shf  * ( pt1 - t_surf_v_p(l)%t(m) )
+              surf_usm_v(l)%wshf_eb(m)   = - f_shf  * ( surf_usm_v(l)%pt1(m) - t_surf_v_p(l)%t(m) / exn(k) ) * surf_usm_v(l)%frac(0,m)               &
+                                           - f_shf_window  * ( surf_usm_v(l)%pt1(m) - t_surf_window_v_p(l)%t(m) / exn(k) ) * surf_usm_v(l)%frac(2,m)  &
+                                           - f_shf_green  * ( surf_usm_v(l)%pt1(m) - t_surf_green_v_p(l)%t(m) / exn(k) ) * surf_usm_v(l)%frac(1,m)
 
 !           
@@ -5352,5 +7300,4 @@
         CALL exchange_horiz( pt, nbgp )
 #endif
-
 
 !--     calculation of force_radiation_call:
@@ -5390,4 +7337,14 @@
        t_surf_v    = t_surf_v_p
        t_wall_v    = t_wall_v_p
+       t_surf_window_h    = t_surf_window_h_p
+       t_window_h    = t_window_h_p
+       t_surf_window_v    = t_surf_window_v_p
+       t_window_v    = t_window_v_p
+       t_surf_green_h    = t_surf_green_h_p
+       t_surf_green_v    = t_surf_green_v_p
+       t_green_h    = t_green_h_p
+       t_green_v    = t_green_v_p
+       t_surf_whole_h    = t_surf_whole_h_p
+       t_surf_whole_v    = t_surf_whole_v_p
 #else
        SELECT CASE ( mod_count )
@@ -5397,8 +7354,18 @@
              t_surf_h  => t_surf_h_1; t_surf_h_p  => t_surf_h_2
              t_wall_h     => t_wall_h_1;    t_wall_h_p     => t_wall_h_2
+             t_surf_window_h  => t_surf_window_h_1; t_surf_window_h_p  => t_surf_window_h_2
+             t_window_h     => t_window_h_1;    t_window_h_p     => t_window_h_2
+             t_surf_green_h  => t_surf_green_h_1; t_surf_green_h_p  => t_surf_green_h_2
+             t_green_h     => t_green_h_1;    t_green_h_p     => t_green_h_2
+             t_surf_whole_h  => t_surf_whole_h_1; t_surf_whole_h_p  => t_surf_whole_h_2
 !
 !--          Vertical surfaces
              t_surf_v  => t_surf_v_1; t_surf_v_p  => t_surf_v_2
              t_wall_v     => t_wall_v_1;    t_wall_v_p     => t_wall_v_2
+             t_surf_window_v  => t_surf_window_v_1; t_surf_window_v_p  => t_surf_window_v_2
+             t_window_v     => t_window_v_1;    t_window_v_p     => t_window_v_2
+             t_surf_green_v  => t_surf_green_v_1; t_surf_green_v_p  => t_surf_green_v_2
+             t_green_v     => t_green_v_1;    t_green_v_p     => t_green_v_2
+             t_surf_whole_v  => t_surf_whole_v_1; t_surf_whole_v_p  => t_surf_whole_v_2
           CASE ( 1 )
 !
@@ -5406,8 +7373,18 @@
              t_surf_h  => t_surf_h_2; t_surf_h_p  => t_surf_h_1
              t_wall_h     => t_wall_h_2;    t_wall_h_p     => t_wall_h_1
+             t_surf_window_h  => t_surf_window_h_2; t_surf_window_h_p  => t_surf_window_h_1
+             t_window_h     => t_window_h_2;    t_window_h_p     => t_window_h_1
+             t_surf_green_h  => t_surf_green_h_2; t_surf_green_h_p  => t_surf_green_h_1
+             t_green_h     => t_green_h_2;    t_green_h_p     => t_green_h_1
+             t_surf_whole_h  => t_surf_whole_h_2; t_surf_whole_h_p  => t_surf_whole_h_1
 !
 !--          Vertical surfaces
              t_surf_v  => t_surf_v_2; t_surf_v_p  => t_surf_v_1
              t_wall_v     => t_wall_v_2;    t_wall_v_p     => t_wall_v_1
+             t_surf_window_v  => t_surf_window_v_2; t_surf_window_v_p  => t_surf_window_v_1
+             t_window_v     => t_window_v_2;    t_window_v_p     => t_window_v_1
+             t_surf_green_v  => t_surf_green_v_2; t_surf_green_v_p  => t_surf_green_v_1
+             t_green_v     => t_green_v_2;    t_green_v_p     => t_green_v_1
+             t_surf_whole_v  => t_surf_whole_v_2; t_surf_whole_v_p  => t_surf_whole_v_1
        END SELECT
 #endif
@@ -5444,4 +7421,8 @@
        WRITE ( 14 ) 't_surf_h                      '
        WRITE ( 14 ) t_surf_h
+       WRITE ( 14 ) 't_surf_window_h               '
+       WRITE ( 14 ) t_surf_window_h
+       WRITE ( 14 ) 't_surf_green_h                '
+       WRITE ( 14 ) t_surf_green_h
        
        DO  l = 0, 3
@@ -5453,4 +7434,8 @@
           WRITE ( 14 ) 't_surf_v(' // dum // ')                   ' 
           WRITE ( 14 ) t_surf_v(l)%t          
+          WRITE ( 14 ) 't_surf_window_v(' // dum // ')            ' 
+          WRITE ( 14 ) t_surf_window_v(l)%t          
+          WRITE ( 14 ) 't_surf_green_v(' // dum // ')             ' 
+          WRITE ( 14 ) t_surf_green_v(l)%t          
        ENDDO
 
@@ -5461,4 +7446,8 @@
        WRITE ( 14 ) 't_wall_h                      '
        WRITE ( 14 ) t_wall_h
+       WRITE ( 14 ) 't_window_h                    '
+       WRITE ( 14 ) t_window_h
+       WRITE ( 14 ) 't_green_h                     '
+       WRITE ( 14 ) t_green_h
        DO  l = 0, 3
           WRITE ( 14 ) 'usm_start_index_v             '
@@ -5469,4 +7458,8 @@
           WRITE ( 14 )  't_wall_v(' // dum // ')                   ' 
           WRITE ( 14 )  t_wall_v(l)%t          
+          WRITE ( 14 )  't_window_v(' // dum // ')                 ' 
+          WRITE ( 14 )  t_window_v(l)%t          
+          WRITE ( 14 )  't_green_v(' // dum // ')                  ' 
+          WRITE ( 14 )  t_green_v(l)%t          
        ENDDO
 
@@ -5475,263 +7468,37 @@
     END SUBROUTINE usm_write_restart_data
 
-
-!------------------------------------------------------------------------------!
-!
-! Description:
-! ------------
-!> Subroutine stores svf, svfsurf, csf and csfsurf data to a file.
-!------------------------------------------------------------------------------!
-    SUBROUTINE usm_write_svf_to_file
-
-        IMPLICIT NONE
-        INTEGER(iwp)        :: fsvf = 89
-        INTEGER(iwp)        :: i
-
-        DO  i = 0, io_blocks-1
-            IF ( i == io_group )  THEN
-                OPEN ( fsvf, file=TRIM(svf_file_name)//TRIM(coupling_char)//myid_char,               &
-                    form='unformatted', status='new' )
-
-                WRITE ( fsvf )  usm_version
-                WRITE ( fsvf )  nsvfl, ncsfl
-                WRITE ( fsvf )  svf
-                WRITE ( fsvf )  svfsurf
-                IF ( plant_canopy )  THEN
-                    WRITE ( fsvf )  csf
-                    WRITE ( fsvf )  csfsurf
-                ENDIF
-                WRITE ( fsvf )  TRIM(svf_code)
-
-                CLOSE (fsvf)
-#if defined( __parallel )
-                CALL MPI_BARRIER( comm2d, ierr )
-#endif
-            ENDIF
-        ENDDO
-    END SUBROUTINE usm_write_svf_to_file
-
-
-!------------------------------------------------------------------------------!
-!
-! Description:
-! ------------
-!> Block of auxiliary subroutines:
-!> 1. quicksort and corresponding comparison
-!> 2. usm_merge_and_grow_csf for implementation of "dynamical growing"
-!>    array for csf
-!------------------------------------------------------------------------------!    
-    PURE FUNCTION svf_lt(svf1,svf2) result (res)
-      TYPE (t_svf), INTENT(in) :: svf1,svf2
-      LOGICAL                  :: res
-      IF ( svf1%isurflt < svf2%isurflt  .OR.    &
-          (svf1%isurflt == svf2%isurflt  .AND.  svf1%isurfs < svf2%isurfs) )  THEN
-          res = .TRUE.
+!
+!-- Integrated stability function for heat and moisture
+    FUNCTION psi_h( zeta )
+
+           USE kinds
+
+       IMPLICIT NONE
+
+       REAL(wp)            :: psi_h !< Integrated similarity function result
+       REAL(wp)            :: zeta  !< Stability parameter z/L
+       REAL(wp)            :: x     !< dummy variable
+
+       REAL(wp), PARAMETER :: a = 1.0_wp            !< constant
+       REAL(wp), PARAMETER :: b = 0.66666666666_wp  !< constant
+       REAL(wp), PARAMETER :: c = 5.0_wp            !< constant
+       REAL(wp), PARAMETER :: d = 0.35_wp           !< constant
+       REAL(wp), PARAMETER :: c_d_d = c / d         !< constant
+       REAL(wp), PARAMETER :: bc_d_d = b * c / d    !< constant
+
+
+      IF ( zeta < 0.0_wp )  THEN
+         x = SQRT( 1.0_wp  - 16.0_wp * zeta )
+         psi_h = 2.0_wp * LOG( (1.0_wp + x ) / 2.0_wp )
       ELSE
-          res = .FALSE.
-      ENDIF
-    END FUNCTION svf_lt
-    
- 
-!-- quicksort.f -*-f90-*-
-!-- Author: t-nissie, adaptation J.Resler
-!-- License: GPLv3
-!-- Gist: https://gist.github.com/t-nissie/479f0f16966925fa29ea
-    RECURSIVE SUBROUTINE quicksort_svf(svfl, first, last)
-        IMPLICIT NONE
-        TYPE(t_svf), DIMENSION(:), INTENT(INOUT)  :: svfl
-        INTEGER(iwp), INTENT(IN)                  :: first, last
-        TYPE(t_svf)                               :: x, t
-        INTEGER(iwp)                              :: i, j
-
-        IF ( first>=last ) RETURN
-        x = svfl( (first+last) / 2 )
-        i = first
-        j = last
-        DO
-            DO while ( svf_lt(svfl(i),x) )
-               i=i+1
-            ENDDO
-            DO while ( svf_lt(x,svfl(j)) )
-                j=j-1
-            ENDDO
-            IF ( i >= j ) EXIT
-            t = svfl(i);  svfl(i) = svfl(j);  svfl(j) = t
-            i=i+1
-            j=j-1
-        ENDDO
-        IF ( first < i-1 ) CALL quicksort_svf(svfl, first, i-1)
-        IF ( j+1 < last )  CALL quicksort_svf(svfl, j+1, last)
-    END SUBROUTINE quicksort_svf
-
-    
-    PURE FUNCTION csf_lt(csf1,csf2) result (res)
-      TYPE (t_csf), INTENT(in) :: csf1,csf2
-      LOGICAL                  :: res
-      IF ( csf1%ip < csf2%ip  .OR.    &
-           (csf1%ip == csf2%ip  .AND.  csf1%itx < csf2%itx)  .OR.  &
-           (csf1%ip == csf2%ip  .AND.  csf1%itx == csf2%itx  .AND.  csf1%ity < csf2%ity)  .OR.  &
-           (csf1%ip == csf2%ip  .AND.  csf1%itx == csf2%itx  .AND.  csf1%ity == csf2%ity  .AND.   &
-            csf1%itz < csf2%itz)  .OR.  &
-           (csf1%ip == csf2%ip  .AND.  csf1%itx == csf2%itx  .AND.  csf1%ity == csf2%ity  .AND.   &
-            csf1%itz == csf2%itz  .AND.  csf1%isurfs < csf2%isurfs) )  THEN
-          res = .TRUE.
-      ELSE
-          res = .FALSE.
-      ENDIF
-    END FUNCTION csf_lt
-
-
-!-- quicksort.f -*-f90-*-
-!-- Author: t-nissie, adaptation J.Resler
-!-- License: GPLv3
-!-- Gist: https://gist.github.com/t-nissie/479f0f16966925fa29ea
-    RECURSIVE SUBROUTINE quicksort_csf(csfl, first, last)
-        IMPLICIT NONE
-        TYPE(t_csf), DIMENSION(:), INTENT(INOUT)  :: csfl
-        INTEGER(iwp), INTENT(IN)                  :: first, last
-        TYPE(t_csf)                               :: x, t
-        INTEGER(iwp)                              :: i, j
-
-        IF ( first>=last ) RETURN
-        x = csfl( (first+last)/2 )
-        i = first
-        j = last
-        DO
-            DO while ( csf_lt(csfl(i),x) )
-                i=i+1
-            ENDDO
-            DO while ( csf_lt(x,csfl(j)) )
-                j=j-1
-            ENDDO
-            IF ( i >= j ) EXIT
-            t = csfl(i);  csfl(i) = csfl(j);  csfl(j) = t
-            i=i+1
-            j=j-1
-        ENDDO
-        IF ( first < i-1 ) CALL quicksort_csf(csfl, first, i-1)
-        IF ( j+1 < last )  CALL quicksort_csf(csfl, j+1, last)
-    END SUBROUTINE quicksort_csf
-
-    
-    SUBROUTINE usm_merge_and_grow_csf(newsize)
-        INTEGER(iwp), INTENT(in)                :: newsize  !< new array size after grow, must be >= ncsfl
-                                                            !< or -1 to shrink to minimum
-        INTEGER(iwp)                            :: iread, iwrite
-        TYPE(t_csf), DIMENSION(:), POINTER      :: acsfnew
-
-        IF ( newsize == -1 )  THEN
-!--         merge in-place
-            acsfnew => acsf
-        ELSE
-!--         allocate new array
-            IF ( mcsf == 0 )  THEN
-                ALLOCATE( acsf1(newsize) )
-                acsfnew => acsf1
-            ELSE
-                ALLOCATE( acsf2(newsize) )
-                acsfnew => acsf2
-            ENDIF
-        ENDIF
-
-        IF ( ncsfl >= 1 )  THEN
-!--         sort csf in place (quicksort)
-            CALL quicksort_csf(acsf,1,ncsfl)
-
-!--         while moving to a new array, aggregate canopy sink factor records with identical box & source
-            acsfnew(1) = acsf(1)
-            iwrite = 1
-            DO iread = 2, ncsfl
-!--             here acsf(kcsf) already has values from acsf(icsf)
-                IF ( acsfnew(iwrite)%itx == acsf(iread)%itx &
-                         .AND.  acsfnew(iwrite)%ity == acsf(iread)%ity &
-                         .AND.  acsfnew(iwrite)%itz == acsf(iread)%itz &
-                         .AND.  acsfnew(iwrite)%isurfs == acsf(iread)%isurfs )  THEN
-!--                 We could simply take either first or second rtransp, both are valid. As a very simple heuristic about which ray
-!--                 probably passes nearer the center of the target box, we choose DIF from the entry with greater CSF, since that
-!--                 might mean that the traced beam passes longer through the canopy box.
-                    IF ( acsfnew(iwrite)%rsvf < acsf(iread)%rsvf )  THEN
-                        acsfnew(iwrite)%rtransp = acsf(iread)%rtransp
-                    ENDIF
-                    acsfnew(iwrite)%rsvf = acsfnew(iwrite)%rsvf + acsf(iread)%rsvf
-!--                 advance reading index, keep writing index
-                ELSE
-!--                 not identical, just advance and copy
-                    iwrite = iwrite + 1
-                    acsfnew(iwrite) = acsf(iread)
-                ENDIF
-            ENDDO
-            ncsfl = iwrite
-        ENDIF
-
-        IF ( newsize == -1 )  THEN
-!--         allocate new array and copy shrinked data
-            IF ( mcsf == 0 )  THEN
-                ALLOCATE( acsf1(ncsfl) )
-                acsf1(1:ncsfl) = acsf2(1:ncsfl)
-            ELSE
-                ALLOCATE( acsf2(ncsfl) )
-                acsf2(1:ncsfl) = acsf1(1:ncsfl)
-            ENDIF
-        ENDIF
-
-!--     deallocate old array
-        IF ( mcsf == 0 )  THEN
-            mcsf = 1
-            acsf => acsf1
-            DEALLOCATE( acsf2 )
-        ELSE
-            mcsf = 0
-            acsf => acsf2
-            DEALLOCATE( acsf1 )
-        ENDIF
-        ncsfla = newsize
-    END SUBROUTINE usm_merge_and_grow_csf
-
-    
-!-- quicksort.f -*-f90-*-
-!-- Author: t-nissie, adaptation J.Resler
-!-- License: GPLv3
-!-- Gist: https://gist.github.com/t-nissie/479f0f16966925fa29ea
-    RECURSIVE SUBROUTINE quicksort_csf2(kpcsflt, pcsflt, first, last)
-        IMPLICIT NONE
-        INTEGER(iwp), DIMENSION(:,:), INTENT(INOUT)  :: kpcsflt
-        REAL(wp), DIMENSION(:,:), INTENT(INOUT)      :: pcsflt
-        INTEGER(iwp), INTENT(IN)                     :: first, last
-        REAL(wp), DIMENSION(ndcsf)                   :: t2
-        INTEGER(iwp), DIMENSION(kdcsf)               :: x, t1
-        INTEGER(iwp)                                 :: i, j
-
-        IF ( first>=last ) RETURN
-        x = kpcsflt(:, (first+last)/2 )
-        i = first
-        j = last
-        DO
-            DO while ( csf_lt2(kpcsflt(:,i),x) )
-                i=i+1
-            ENDDO
-            DO while ( csf_lt2(x,kpcsflt(:,j)) )
-                j=j-1
-            ENDDO
-            IF ( i >= j ) EXIT
-            t1 = kpcsflt(:,i);  kpcsflt(:,i) = kpcsflt(:,j);  kpcsflt(:,j) = t1
-            t2 = pcsflt(:,i);  pcsflt(:,i) = pcsflt(:,j);  pcsflt(:,j) = t2
-            i=i+1
-            j=j-1
-        ENDDO
-        IF ( first < i-1 ) CALL quicksort_csf2(kpcsflt, pcsflt, first, i-1)
-        IF ( j+1 < last )  CALL quicksort_csf2(kpcsflt, pcsflt, j+1, last)
-    END SUBROUTINE quicksort_csf2
-    
-
-    PURE FUNCTION csf_lt2(item1, item2) result(res)
-        INTEGER(iwp), DIMENSION(kdcsf), INTENT(in)  :: item1, item2
-        LOGICAL                                     :: res
-        res = ( (item1(3) < item2(3))                                                        &
-             .OR.  (item1(3) == item2(3)  .AND.  item1(2) < item2(2))                            &
-             .OR.  (item1(3) == item2(3)  .AND.  item1(2) == item2(2)  .AND.  item1(1) < item2(1)) &
-             .OR.  (item1(3) == item2(3)  .AND.  item1(2) == item2(2)  .AND.  item1(1) == item2(1) &
-                 .AND.  item1(4) < item2(4)) )
-    END FUNCTION csf_lt2
-
+         psi_h = - b * ( zeta - c_d_d ) * EXP( -d * zeta ) - (1.0_wp          &
+                 + 0.66666666666_wp * a * zeta )**1.5_wp - bc_d_d             &
+                 + 1.0_wp
+!
+!--       Old version for stable conditions (only valid for z/L < 0.5)
+!--       psi_h = - 5.0_wp * zeta
+       ENDIF
+
+   END FUNCTION psi_h
     
  END MODULE urban_surface_mod
Index: palm/trunk/SOURCE/user_3d_data_averaging.f90
===================================================================
--- palm/trunk/SOURCE/user_3d_data_averaging.f90	(revision 2693)
+++ palm/trunk/SOURCE/user_3d_data_averaging.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file user_3d_data_averaging.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/user_actions.f90
===================================================================
--- palm/trunk/SOURCE/user_actions.f90	(revision 2693)
+++ palm/trunk/SOURCE/user_actions.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file user_actions.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/user_additional_routines.f90
===================================================================
--- palm/trunk/SOURCE/user_additional_routines.f90	(revision 2693)
+++ palm/trunk/SOURCE/user_additional_routines.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file user_additional_routines.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/user_check_data_output.f90
===================================================================
--- palm/trunk/SOURCE/user_check_data_output.f90	(revision 2693)
+++ palm/trunk/SOURCE/user_check_data_output.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file user_check_data_output.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/user_check_data_output_pr.f90
===================================================================
--- palm/trunk/SOURCE/user_check_data_output_pr.f90	(revision 2693)
+++ palm/trunk/SOURCE/user_check_data_output_pr.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file user_check_data_output_pr.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/user_check_parameters.f90
===================================================================
--- palm/trunk/SOURCE/user_check_parameters.f90	(revision 2693)
+++ palm/trunk/SOURCE/user_check_parameters.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file user_check_parameters.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/user_data_output_2d.f90
===================================================================
--- palm/trunk/SOURCE/user_data_output_2d.f90	(revision 2693)
+++ palm/trunk/SOURCE/user_data_output_2d.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file user_data_output_2d.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/user_data_output_3d.f90
===================================================================
--- palm/trunk/SOURCE/user_data_output_3d.f90	(revision 2693)
+++ palm/trunk/SOURCE/user_data_output_3d.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file user_data_output_3d.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/user_data_output_dvrp.f90
===================================================================
--- palm/trunk/SOURCE/user_data_output_dvrp.f90	(revision 2693)
+++ palm/trunk/SOURCE/user_data_output_dvrp.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file user_data_output_dvrp.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/user_data_output_mask.f90
===================================================================
--- palm/trunk/SOURCE/user_data_output_mask.f90	(revision 2693)
+++ palm/trunk/SOURCE/user_data_output_mask.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file user_data_output_mask.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/user_define_netcdf_grid.f90
===================================================================
--- palm/trunk/SOURCE/user_define_netcdf_grid.f90	(revision 2693)
+++ palm/trunk/SOURCE/user_define_netcdf_grid.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file user_define_netcdf_grid.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/user_dvrp_coltab.f90
===================================================================
--- palm/trunk/SOURCE/user_dvrp_coltab.f90	(revision 2693)
+++ palm/trunk/SOURCE/user_dvrp_coltab.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file user_dvrp_coltab.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/user_flight.f90
===================================================================
--- palm/trunk/SOURCE/user_flight.f90	(revision 2693)
+++ palm/trunk/SOURCE/user_flight.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file user_actions.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/user_header.f90
===================================================================
--- palm/trunk/SOURCE/user_header.f90	(revision 2693)
+++ palm/trunk/SOURCE/user_header.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file user_header.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/user_init.f90
===================================================================
--- palm/trunk/SOURCE/user_init.f90	(revision 2693)
+++ palm/trunk/SOURCE/user_init.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file user_init.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/user_init_3d_model.f90
===================================================================
--- palm/trunk/SOURCE/user_init_3d_model.f90	(revision 2693)
+++ palm/trunk/SOURCE/user_init_3d_model.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file user_init_3d_model.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/user_init_flight.f90
===================================================================
--- palm/trunk/SOURCE/user_init_flight.f90	(revision 2693)
+++ palm/trunk/SOURCE/user_init_flight.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file user_init_flight.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/user_init_grid.f90
===================================================================
--- palm/trunk/SOURCE/user_init_grid.f90	(revision 2693)
+++ palm/trunk/SOURCE/user_init_grid.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file user_init_grid.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
@@ -25,4 +25,7 @@
 ! -----------------
 ! $Id$
+! Extended argument list (MS)
+! 
+! 2233 2017-05-30 18:08:54Z suehring
 !
 ! 2232 2017-05-30 17:47:52Z suehring
@@ -111,5 +114,5 @@
 !           ENDDO 
 ! 
-!           CALL exchange_horiz_int( topo_3d, nbgp )
+!           CALL exchange_horiz_int( topo_3d, nys, nyn, nxl, nxr, nzt, nbgp )
 
        CASE DEFAULT
Index: palm/trunk/SOURCE/user_init_land_surface.f90
===================================================================
--- palm/trunk/SOURCE/user_init_land_surface.f90	(revision 2693)
+++ palm/trunk/SOURCE/user_init_land_surface.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file user_init_land_surface.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/user_init_plant_canopy.f90
===================================================================
--- palm/trunk/SOURCE/user_init_plant_canopy.f90	(revision 2693)
+++ palm/trunk/SOURCE/user_init_plant_canopy.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file user_init_plant_canopy.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/user_init_radiation.f90
===================================================================
--- palm/trunk/SOURCE/user_init_radiation.f90	(revision 2693)
+++ palm/trunk/SOURCE/user_init_radiation.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file user_init_radiation.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/user_init_urban_surface.f90
===================================================================
--- palm/trunk/SOURCE/user_init_urban_surface.f90	(revision 2693)
+++ palm/trunk/SOURCE/user_init_urban_surface.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file user_init_urban_surface.f90
-!--------------------------------------------------------------------------------!
-! This file is part of PALM.
+!------------------------------------------------------------------------------!
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/user_last_actions.f90
===================================================================
--- palm/trunk/SOURCE/user_last_actions.f90	(revision 2693)
+++ palm/trunk/SOURCE/user_last_actions.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file user_last_actions.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/user_lpm_advec.f90
===================================================================
--- palm/trunk/SOURCE/user_lpm_advec.f90	(revision 2693)
+++ palm/trunk/SOURCE/user_lpm_advec.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file user_lpm_advec.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/user_lpm_init.f90
===================================================================
--- palm/trunk/SOURCE/user_lpm_init.f90	(revision 2693)
+++ palm/trunk/SOURCE/user_lpm_init.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file user_lpm_init.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/user_lpm_set_attributes.f90
===================================================================
--- palm/trunk/SOURCE/user_lpm_set_attributes.f90	(revision 2693)
+++ palm/trunk/SOURCE/user_lpm_set_attributes.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file user_lpm_set_attributes.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/user_module.f90
===================================================================
--- palm/trunk/SOURCE/user_module.f90	(revision 2693)
+++ palm/trunk/SOURCE/user_module.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file user_module.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/user_parin.f90
===================================================================
--- palm/trunk/SOURCE/user_parin.f90	(revision 2693)
+++ palm/trunk/SOURCE/user_parin.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file user_parin.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/user_read_restart_data.f90
===================================================================
--- palm/trunk/SOURCE/user_read_restart_data.f90	(revision 2693)
+++ palm/trunk/SOURCE/user_read_restart_data.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file user_read_restart_data.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/user_spectra.f90
===================================================================
--- palm/trunk/SOURCE/user_spectra.f90	(revision 2693)
+++ palm/trunk/SOURCE/user_spectra.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file user_spectra.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/user_statistics.f90
===================================================================
--- palm/trunk/SOURCE/user_statistics.f90	(revision 2693)
+++ palm/trunk/SOURCE/user_statistics.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file user_statistics.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/uv_exposure_model_mod.f90
===================================================================
--- palm/trunk/SOURCE/uv_exposure_model_mod.f90	(revision 2696)
+++ palm/trunk/SOURCE/uv_exposure_model_mod.f90	(revision 2696)
@@ -0,0 +1,928 @@
+!> @file uv_exposure_model_mod.f90
+!------------------------------------------------------------------------------!
+! This file is part of the PALM model system.
+!
+! PALM is free software: you can redistribute it and/or modify it under the
+! terms of the GNU General Public License as published by the Free Software
+! Foundation, either version 3 of the License, or (at your option) any later
+! version.
+!
+! PALM is distributed in the hope that it will be useful, but WITHOUT ANY
+! WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+! A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+!
+! You should have received a copy of the GNU General Public License along with
+! PALM. If not, see <http://www.gnu.org/licenses/>.
+!
+! Copyright 2017-2017 Leibniz Universitaet Hannover
+!------------------------------------------------------------------------------!
+!
+! Current revisions:
+! -----------------
+! 
+! 
+! Former revisions:
+! -----------------
+! $Id$
+! Initial revision
+!
+! 
+!
+! Authors:
+! --------
+! @author Michael Schrempf
+!
+!
+! Description:
+! ------------
+!> Calculation of vitamin-D weighted UV exposure
+!>
+!>
+!> @todo uv_vitd3dose-->new output type necessary (cumulative)
+!> @todo consider upwelling radiation
+!>
+!> @note <Enter notes on the module>
+!>
+!> @bug  <Enter known bugs here>
+!------------------------------------------------------------------------------!
+ MODULE uv_exposure_model_mod
+ 
+
+    USE kinds
+
+!
+!-- Load required variables from existing modules
+!-- USE modulename,                                                            &
+!--     ONLY: ...
+
+
+    IMPLICIT NONE
+
+
+!
+!-- Declare all global variables within the module (alphabetical order)
+    INTEGER(iwp) ::  ai                      = 0 !< running index
+    INTEGER(iwp) ::  clothing                = 3 !< clothing (0=unclothed, 1=Arms,Hands Face free, 3=Hand, Face free)
+    INTEGER(iwp) ::  consider_obstructions   = 1 !< 0 = unobstructed scenario, 
+                                                 !< 1 = scenario where obstrcutions are considered
+    INTEGER(iwp) ::  orientation_angle       = 0 !< orientation of front/face of the human model
+    INTEGER(iwp) ::  saa_in_south            = 1 !< 0 = sun always in south direction, 1 = actual sun position  
+    INTEGER(iwp) ::  obstruction_direct_beam = 0 !< Obstruction information for direct beam
+    INTEGER(iwp) ::  turn_to_sun             = 1 !< 0 = orientation of human as in orientation_angle,
+                                                 !< 1 = human is always orientated towards the sun
+    INTEGER(iwp) ::  zi                      = 0 !< running index
+
+    INTEGER(iwp), DIMENSION(0:44)  ::  obstruction_temp1 = 0 !< temporary obstruction information
+                                                             !< stored with ibset as logical information 
+    INTEGER(iwp), DIMENSION(0:359) ::  obstruction_temp2 = 0 !< temporary obstruction information restored values
+                                                             !< from logical information, which where stored by ibset  
+    
+    INTEGER(iwp), DIMENSION(0:35,0:9) ::  obstruction = 0 !< final obstruction information array for all
+                                                          !< hemispherical directions
+    
+    INTEGER(KIND=1), DIMENSION(:,:,:), ALLOCATABLE ::  obstruction_lookup_table !< lookup table of obstruction
+                                                                                !< information of entire domain
+
+    REAL(wp) ::  diffuse_exposure            = 0.0_wp !< calculated exposure by diffuse radiation
+    REAL(wp) ::  direct_exposure             = 0.0_wp !< calculated exposure by direct beam   
+    REAL(wp) ::  projection_area_direct_beam = 0.0_wp !< projection area for  by direct beam
+    REAL(wp) ::  saa                         = 180.0_wp !< solar azimuth angle
+    REAL(wp) ::  startpos_human              = 0.0_wp !< start position in azimuth direction for the
+                                                      !< interpolation of the projection area              
+    REAL(wp) ::  startpos_saa_float          = 0.0_wp !< start position in azimuth direction for the
+                                                      !< interpolation of the radiance field             
+    REAL(wp) ::  sza                         = 20.0_wp !< solar zenith angle
+    REAL(wp) ::  xfactor                     = 0.0_wp !< relative x-position used for interpolation
+    REAL(wp) ::  yfactor                     = 0.0_wp !< relative y-position used for interpolation
+    
+    REAL(wp), DIMENSION(0:2)  ::  irradiance  = 0.0_wp !< iradiance values extracted from irradiance lookup table
+    
+    REAL(wp), DIMENSION(0:2,0:90) ::  irradiance_lookup_table = 0.0_wp !< irradiance lookup table contains values
+                                                                       !< for direct, diffuse and global component
+    REAL(wp), DIMENSION(0:35,0:9) ::  integration_array            = 0.0_wp
+    REAL(wp), DIMENSION(0:35,0:9) ::  projection_area              = 0.0_wp
+    REAL(wp), DIMENSION(0:35,0:9) ::  projection_area_lookup_table = 0.0_wp
+    REAL(wp), DIMENSION(0:71,0:9) ::  projection_area_temp         = 0.0_wp
+    REAL(wp), DIMENSION(0:35,0:9) ::  radiance_array               = 0.0_wp
+    REAL(wp), DIMENSION(0:71,0:9) ::  radiance_array_temp          = 0.0_wp
+    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  vitd3_exposure
+    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::  vitd3_exposure_av
+
+    REAL(wp), DIMENSION(0:35,0:9,0:90) ::  radiance_lookup_table = 0.0_wp
+
+
+    SAVE
+
+    PRIVATE
+
+    
+!
+!-- Add INTERFACES that must be available to other modules (alphabetical order)
+    PUBLIC uvem_3d_data_averaging, uvem_calc_exposure, uvem_check_data_output, &
+           uvem_data_output_2d, uvem_define_netcdf_grid, uvem_init,            &
+           uvem_init_arrays, uvem_parin
+
+!
+!-- Add VARIABLES that must be available to other modules (alphabetical order)
+!     PUBLIC 
+
+!
+!-- Add PROGNOSTIC QUANTITIES that must be available to other modules (alphabetical order)
+!-- PUBLIC ...
+
+
+!
+!-- Default procedures for all new modules (not all are necessarily required, 
+!-- alphabetical order is not essential)
+
+!
+!-- PALM interfaces:
+!-- Data output checks for 2D/3D data to be done in check_parameters
+    INTERFACE uvem_check_data_output
+       MODULE PROCEDURE uvem_check_data_output
+    END INTERFACE uvem_check_data_output
+    
+! !
+! !-- Data output checks for profile data to be done in check_parameters
+!     INTERFACE uvem_check_data_output_pr
+!        MODULE PROCEDURE uvem_check_data_output_pr
+!     END INTERFACE uvem_check_data_output_pr
+!     
+! !
+! !-- Input parameter checks to be done in check_parameters
+!     INTERFACE uvem_check_parameters
+!        MODULE PROCEDURE uvem_check_parameters
+!     END INTERFACE uvem_check_parameters
+! 
+!
+!-- Averaging of 3D data for output
+    INTERFACE uvem_3d_data_averaging
+       MODULE PROCEDURE uvem_3d_data_averaging
+    END INTERFACE uvem_3d_data_averaging
+! 
+! !
+!-- Data output of 2D quantities
+    INTERFACE uvem_data_output_2d
+       MODULE PROCEDURE uvem_data_output_2d
+    END INTERFACE uvem_data_output_2d
+! 
+! !
+! !-- Data output of 3D data
+!     INTERFACE uvem_data_output_3d
+!        MODULE PROCEDURE uvem_data_output_3d
+!     END INTERFACE uvem_data_output_3d
+! 
+! !
+! !-- Definition of data output quantities
+    INTERFACE uvem_define_netcdf_grid
+       MODULE PROCEDURE uvem_define_netcdf_grid
+    END INTERFACE uvem_define_netcdf_grid
+! 
+! !
+! !-- Output of information to the header file
+!     INTERFACE uvem_header
+!        MODULE PROCEDURE uvem_header
+!     END INTERFACE uvem_header
+  
+!
+!-- Initialization actions  
+    INTERFACE uvem_init
+       MODULE PROCEDURE uvem_init
+    END INTERFACE uvem_init
+ 
+!
+!-- Initialization of arrays
+    INTERFACE uvem_init_arrays
+       MODULE PROCEDURE uvem_init_arrays
+    END INTERFACE uvem_init_arrays
+! 
+! !
+! !-- Writing of binary output for restart runs  !!! renaming?!
+!     INTERFACE uvem_last_actions
+!        MODULE PROCEDURE uvem_last_actions
+!     END INTERFACE uvem_last_actions
+!     
+!
+!-- Reading of NAMELIST parameters
+    INTERFACE uvem_parin
+       MODULE PROCEDURE uvem_parin
+    END INTERFACE uvem_parin
+! 
+! !
+! !-- Reading of parameters for restart runs
+!     INTERFACE uvem_read_restart_data
+!        MODULE PROCEDURE uvem_read_restart_data
+!     END INTERFACE uvem_read_restart_data
+! 
+! !
+! !-- Writing of parameters for restart runs !!! renaming?!
+!     INTERFACE uvem_skip_var_list
+!        MODULE PROCEDURE uvem_skip_var_list
+!     END INTERFACE uvem_skip_var_list
+! 
+! !
+! !-- Swapping of time levels (required for prognostic variables)
+!     INTERFACE uvem_swap_timelevel
+!        MODULE PROCEDURE uvem_swap_timelevel
+!     END INTERFACE uvem_swap_timelevel
+! 
+! !
+! !-- New module-specific procedure(s) (alphabetical order):
+!     INTERFACE uvem_newprocedure
+!        MODULE PROCEDURE uvem_newprocedure
+!     END INTERFACE uvem_newprocedure
+
+ CONTAINS
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Check data output for new module.
+!------------------------------------------------------------------------------!
+ SUBROUTINE uvem_check_data_output( var, unit, i, ilen, k )
+ 
+    USE control_parameters,                                                    &
+        ONLY:  data_output, message_string, uv_exposure
+
+    IMPLICIT NONE
+
+    CHARACTER (LEN=*) ::  unit     !< string for unit of output quantity
+    CHARACTER (LEN=*) ::  var      !< string for output quantity
+
+    INTEGER(iwp) ::  i      !<
+    INTEGER(iwp) ::  ilen   !<   
+    INTEGER(iwp) ::  k      !<
+
+    SELECT CASE ( TRIM( var ) )
+
+
+       CASE ( 'uvem_vitd3*' )
+          IF (  .NOT.  uv_exposure )  THEN
+             message_string = 'output of "' // TRIM( var ) // '" requi' //  &
+                      'res a namelist &uvexposure_par'
+             CALL message( 'uvem_check_data_output', 'UV0001', 1, 2, 0, 6, 0 )
+          ENDIF
+          IF ( k == 0  .OR.  data_output(i)(ilen-2:ilen) /= '_xy' )  THEN
+             message_string = 'illegal value for data_output: "' //            &
+                              TRIM( var ) // '" & only 2d-horizontal ' //      &
+                              'cross sections are allowed for this value'
+             CALL message( 'check_parameters', 'PA0111', 1, 2, 0, 6, 0 )
+          ENDIF
+          unit = 'IU/s'
+
+       CASE ( 'uvem_vitd3dose*' )
+          IF (  .NOT.  uv_exposure )  THEN
+             message_string = 'output of "' // TRIM( var ) // '" requi' //  &
+                      'res  a namelist &uvexposure_par'
+             CALL message( 'uvem_check_data_output', 'UV0001', 1, 2, 0, 6, 0 )
+          ENDIF
+          IF ( k == 0  .OR.  data_output(i)(ilen-2:ilen) /= '_xy' )  THEN
+             message_string = 'illegal value for data_output: "' //            &
+                              TRIM( var ) // '" & only 2d-horizontal ' //      &
+                              'cross sections are allowed for this value'
+             CALL message( 'check_parameters', 'PA0111', 1, 2, 0, 6, 0 )
+          ENDIF
+          unit = 'IU/av-h'
+             
+       CASE DEFAULT
+          unit = 'illegal'
+
+    END SELECT
+
+ END SUBROUTINE uvem_check_data_output
+
+
+!-----------------------------------------------------------------------------!
+!
+! Description:
+! ------------
+!> Subroutine defining 2D output variables
+!-----------------------------------------------------------------------------!
+ SUBROUTINE uvem_data_output_2d( av, variable, found, grid, mode, local_pf,   &
+                                 two_d, nzb_do, nzt_do )
+ 
+    USE indices
+
+    USE kinds
+
+
+    IMPLICIT NONE
+
+    CHARACTER (LEN=*) ::  grid     !< 
+    CHARACTER (LEN=*) ::  mode     !< 
+    CHARACTER (LEN=*) ::  variable !< 
+
+    INTEGER(iwp) ::  av      !< 
+    INTEGER(iwp) ::  i       !< running index 
+    INTEGER(iwp) ::  j       !< running index
+    INTEGER(iwp) ::  k       !< running index
+    INTEGER(iwp) ::  m       !< running index
+    INTEGER(iwp) ::  nzb_do  !< 
+    INTEGER(iwp) ::  nzt_do  !< 
+
+    LOGICAL      ::  found !< 
+    LOGICAL      ::  two_d !< flag parameter that indicates 2D variables (horizontal cross sections)
+
+    REAL(wp), DIMENSION(nxl:nxr,nys:nyn,nzb:nzt+1) ::  local_pf !< 
+
+
+    found = .TRUE.
+
+    SELECT CASE ( TRIM( variable ) )
+!
+!--    Before data is transfered to local_pf, transfer is it 2D dummy variable and exchange ghost points therein. 
+!--    However, at this point this is only required for instantaneous arrays, time-averaged quantities are already exchanged. 
+       CASE ( 'uvem_vitd3*_xy' )        ! 2d-array
+          IF ( av == 0 )  THEN
+             DO  i = nxl, nxr
+                DO  j = nys, nyn
+                   local_pf(i,j,nzb+1) = vitd3_exposure(j,i)
+                ENDDO
+             ENDDO
+          ENDIF
+
+          two_d = .TRUE.
+          grid = 'zu1'
+
+       CASE ( 'uvem_vitd3dose*_xy' )        ! 2d-array
+          IF ( av == 1 )  THEN
+             DO  i = nxl, nxr
+                DO  j = nys, nyn
+                   local_pf(i,j,nzb+1) = vitd3_exposure_av(j,i)
+                ENDDO
+             ENDDO
+          ENDIF
+
+          two_d = .TRUE.
+          grid = 'zu1'
+
+       CASE DEFAULT
+          found = .FALSE.
+          grid  = 'none'
+
+    END SELECT
+ 
+ END SUBROUTINE uvem_data_output_2d
+
+
+!------------------------------------------------------------------------------!
+!
+! Description:
+! ------------
+!> Subroutine defining appropriate grid for netcdf variables.
+!> It is called out from subroutine netcdf.
+!------------------------------------------------------------------------------!
+ SUBROUTINE uvem_define_netcdf_grid( var, found, grid_x, grid_y, grid_z )
+    
+    IMPLICIT NONE
+
+    CHARACTER (LEN=*), INTENT(IN)  ::  var         !< 
+    CHARACTER (LEN=*), INTENT(OUT) ::  grid_x      !< 
+    CHARACTER (LEN=*), INTENT(OUT) ::  grid_y      !< 
+    CHARACTER (LEN=*), INTENT(OUT) ::  grid_z      !< 
+
+    LOGICAL, INTENT(OUT)           ::  found       !<
+
+    found  = .TRUE.
+
+!
+!-- Check for the grid
+    SELECT CASE ( TRIM( var ) )
+
+       CASE ( 'uvem_vitd3*_xy', 'uvem_vitd3dose*_xy' )
+          grid_x = 'x'
+          grid_y = 'y'
+          grid_z = 'zu1'
+
+       CASE DEFAULT
+          found  = .FALSE.
+          grid_x = 'none'
+          grid_y = 'none'
+          grid_z = 'none'
+
+    END SELECT
+
+ END SUBROUTINE uvem_define_netcdf_grid
+
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Parin for &uvexposure_par for UV exposure model
+!------------------------------------------------------------------------------!
+ SUBROUTINE uvem_parin
+
+    USE control_parameters,                                                   &
+        ONLY:  uv_exposure
+
+
+    IMPLICIT NONE
+
+    CHARACTER (LEN=80) ::  line  !< dummy string for current line in parameter file 
+    
+    NAMELIST /uvexposure_par/  clothing
+    
+    line = ' '
+    
+!
+!-- Try to find uv exposure model namelist
+    REWIND ( 11 )
+    line = ' '
+    DO   WHILE ( INDEX( line, '&uvexposure_par' ) == 0 )
+       READ ( 11, '(A)', END=10 )  line
+    ENDDO
+    BACKSPACE ( 11 )
+
+!
+!-- Read user-defined namelist
+    READ ( 11, uvexposure_par )
+
+!
+!-- Set flag that indicates that the uv exposure model is switched on
+    uv_exposure = .TRUE.
+
+
+ 10 CONTINUE
+       
+
+ END SUBROUTINE uvem_parin
+
+
+!------------------------------------------------------------------------------!
+!
+! Description:
+! ------------
+!> Subroutine for averaging 3D data
+!------------------------------------------------------------------------------!
+ SUBROUTINE uvem_3d_data_averaging( mode, variable )
+ 
+
+    USE control_parameters
+
+    USE indices
+
+    USE kinds
+
+    IMPLICIT NONE
+
+    CHARACTER (LEN=*) ::  mode    !< 
+    CHARACTER (LEN=*) :: variable !< 
+
+    INTEGER(iwp) ::  i       !< 
+    INTEGER(iwp) ::  j       !< 
+    INTEGER(iwp) ::  k       !< 
+    INTEGER(iwp) ::  m       !< running index
+
+    IF ( mode == 'allocate' )  THEN
+
+       SELECT CASE ( TRIM( variable ) )
+
+          CASE ( 'uvem_vitd3dose*' )
+             IF ( .NOT. ALLOCATED( vitd3_exposure_av ) )  THEN
+                ALLOCATE( vitd3_exposure_av(nysg:nyng,nxlg:nxrg) )
+             ENDIF
+             vitd3_exposure_av = 0.0_wp
+
+
+          CASE DEFAULT
+             CONTINUE
+
+       END SELECT
+
+    ELSEIF ( mode == 'sum' )  THEN
+
+       SELECT CASE ( TRIM( variable ) )
+
+          CASE ( 'uvem_vitd3dose*' )
+             DO  i = nxlg, nxrg
+                DO  j = nysg, nyng
+                   vitd3_exposure_av(j,i) = vitd3_exposure_av(j,i) + vitd3_exposure(j,i)
+                ENDDO
+             ENDDO
+
+
+          CASE DEFAULT
+             CONTINUE
+
+       END SELECT
+
+!
+!-- No averaging since we are calculating a dose (only sum is calculated and saved to
+!-- av.nc file)
+!    ELSEIF ( mode == 'average' )  THEN
+
+    ENDIF
+
+ END SUBROUTINE uvem_3d_data_averaging
+
+    
+
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Initialization of the new module
+!------------------------------------------------------------------------------!
+ SUBROUTINE uvem_init
+    
+
+    USE control_parameters,                                                   &
+        ONLY:  initializing_actions
+
+    IMPLICIT NONE
+
+!
+!-- Actions for initial runs
+    IF ( TRIM( initializing_actions ) /= 'read_restart_data' )  THEN
+       OPEN(90, STATUS='old',FILE=&
+       'RADIANCE', FORM='UNFORMATTED')
+       READ(90) radiance_lookup_table
+       CLOSE(90)
+       OPEN(90, STATUS='old',FILE=&
+       'IRRADIANCE', FORM='UNFORMATTED')
+       READ(90) irradiance_lookup_table
+       CLOSE(90)
+      
+      !________________________LOAD Obstruction information _______________________________
+       IF ( consider_obstructions == 1 )  THEN
+          OPEN(90, STATUS='old',FILE=&
+          'OBSTRUCTION', FORM='UNFORMATTED')
+          READ(90) obstruction_lookup_table
+          CLOSE(90)  
+      ELSEIF( consider_obstructions == 0 ) THEN
+          obstruction(:,:) = 1
+      ENDIF
+
+      !________________________LOAD integration_array ________________________________________________________________________
+      OPEN(90, STATUS='old',FILE=&
+      'SOLIDANGLE', FORM='UNFORMATTED')
+      READ(90) integration_array
+      CLOSE(90)
+
+      IF (clothing==1) THEN
+          OPEN(90, STATUS='old',FILE='HUMAN', FORM='UNFORMATTED')
+      ENDIF
+      READ(90) projection_area_lookup_table
+      CLOSE(90)
+
+!
+!-- Actions for restart runs
+    ELSE
+! ....
+
+    ENDIF
+
+ END SUBROUTINE uvem_init
+
+
+!-----------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Allocate new module arrays and define pointers if required
+!-----------------------------------------------------------------------------!
+ SUBROUTINE uvem_init_arrays
+    
+    USE indices,                                                              &
+        ONLY:  nxlg, nxrg, nyng, nysg
+
+
+    IMPLICIT NONE
+
+!
+!-- Allocate arrays
+    ALLOCATE ( vitd3_exposure(nysg:nyng,nxlg:nxrg) )
+    ALLOCATE ( vitd3_exposure_av(nysg:nyng,nxlg:nxrg) )
+    ALLOCATE ( obstruction_lookup_table(nxlg:nxrg,nysg:nyng,0:44) )
+
+!
+!-- Initialize arrays
+    vitd3_exposure = 0.0_wp
+    vitd3_exposure_av = 0.0_wp
+    obstruction_lookup_table = 0
+
+
+ END SUBROUTINE uvem_init_arrays
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Module-specific routine for new module
+!------------------------------------------------------------------------------!
+ SUBROUTINE uvem_solar_position 
+
+    USE constants,                                                             &
+       ONLY:  pi
+    
+    USE date_and_time_mod,                                                     &
+       ONLY:  calc_date_and_time, day_of_year, time_utc 
+    
+    USE control_parameters,                                                    &
+       ONLY:  latitude, longitude   
+
+    IMPLICIT NONE
+    
+   
+    REAL(wp) ::  alpha       = 0.0_wp   !< solar azimuth angle in radiant       
+    REAL(wp) ::  declination = 0.0_wp   !< declination
+    REAL(wp) ::  dtor        = 0.0_wp   !< factor to convert degree to radiant
+    REAL(wp) ::  js          = 0.0_wp   !< parameter for solar position calculation
+    REAL(wp) ::  lat         = 52.39_wp !< latitude
+    REAL(wp) ::  lon         = 9.7_wp   !< longitude        
+    REAL(wp) ::  thetar      = 0.0_wp   !< angle for solar zenith angle calculation
+    REAL(wp) ::  thetasr     = 0.0_wp   !< angle for solar azimuth angle calculation    
+    REAL(wp) ::  zgl         = 0.0_wp   !< calculated exposure by direct beam   
+    REAL(wp) ::  woz         = 0.0_wp   !< calculated exposure by diffuse radiation
+    REAL(wp) ::  wsp         = 0.0_wp   !< calculated exposure by direct beam   
+   
+
+    CALL calc_date_and_time
+       
+    dtor = pi / 180.0_wp
+    lat = latitude
+    lon = longitude
+!
+!-- calculation of js :
+    js=  72.0_wp * ( day_of_year + ( time_utc / 86400.0_wp ) ) / 73.0_wp 
+!
+!-- calculation of equation of time (zgl):
+    zgl = 0.0066_wp + 7.3525_wp * cos( ( js + 85.9_wp ) * dtor ) + 9.9359_wp *                     &
+    cos( ( 2.0_wp * js + 108.9_wp ) * dtor ) + 0.3387_wp * cos( ( 3 * js + 105.2_wp ) * dtor )
+!
+!-- calculation of apparent solar time woz:
+    woz = ( ( time_utc / 3600.0_wp ) - ( 4.0_wp * ( 15.0_wp - lon ) ) / 60.0_wp ) + ( zgl / 60.0_wp )
+!
+!-- calculation of hour angle (wsp):
+    wsp = ( woz - 12.0_wp ) * 15.0_wp
+!
+!-- calculation of declination:
+    declination = 0.3948_wp - 23.2559_wp * cos( ( js + 9.1_wp ) * dtor ) -                         &
+    0.3915_wp * cos( ( 2.0_wp * js + 5.4_wp ) * dtor ) - 0.1764_wp * cos( ( 3.0_wp * js + 26.0_wp ) * dtor )
+!
+!-- calculation of solar zenith angle
+    thetar  = acos( sin( lat * dtor) * sin( declination * dtor ) + cos( wsp * dtor ) *             &
+    cos( lat * dtor ) * cos( declination * dtor ) )
+    thetasr = asin( sin( lat * dtor) * sin( declination * dtor ) + cos( wsp * dtor ) *             & 
+    cos( lat * dtor ) * cos( declination * dtor ) )
+    sza = thetar / dtor
+!
+!-- calculation of solar azimuth angle
+    IF (woz .LE. 12.0_wp) alpha = pi - acos( sin(thetasr) * sin(lat * dtor) -                           & 
+    sin( declination * dtor ) / ( cos(thetasr) * cos( lat * dtor ) ) )    
+    IF (woz .GT. 12.0_wp) alpha = pi + acos( sin(thetasr) * sin(lat * dtor) -                           &
+    sin( declination * dtor ) / ( cos(thetasr) * cos( lat * dtor ) ) )    
+    saa = alpha / dtor
+
+ END SUBROUTINE uvem_solar_position
+
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Module-specific routine for new module
+!------------------------------------------------------------------------------!
+ SUBROUTINE uvem_calc_exposure
+    
+    USE constants,                                                             &
+        ONLY:  pi
+
+    USE indices,                                                               &
+        ONLY:  nxlg, nxrg, nyng, nysg
+    
+    
+    IMPLICIT NONE   
+    
+    INTEGER(iwp) ::  i   !< running index
+    INTEGER(iwp) ::  j   !< running index
+
+
+    CALL uvem_solar_position
+     
+    IF (sza .GE. 90) THEN
+       vitd3_exposure(:,:) = 0.0_wp
+    ELSE
+       
+!       
+!--    rotate 3D-Model human to desired direction  ----------------------------- 
+       projection_area_temp( 0:35,:) = projection_area_lookup_table
+       projection_area_temp(36:71,:) = projection_area_lookup_table               
+       IF ( Turn_to_Sun .EQ. 0 )  startpos_human = orientation_angle / 10.0_wp
+       IF ( Turn_to_Sun .EQ. 1 )  startpos_human = startpos_saa_float        
+       DO  ai = 0, 35
+           xfactor = ( startpos_human ) - INT( startpos_human )
+          DO  zi = 0, 9
+              projection_area(ai,zi) = ( projection_area_temp( ai +     INT( startpos_human ), zi) * &
+                                       (1.0_wp - xfactor ) ) &
+                                      +( projection_area_temp( ai + 1 + INT( startpos_human ), zi) * &
+                                        xfactor)
+          ENDDO
+       ENDDO
+!      
+!--    calculate Projectionarea for direct beam -----------------------------'
+       projection_area_temp( 0:35,:) = projection_area
+       projection_area_temp(36:71,:) = projection_area
+       yfactor = ( sza / 10.0_wp ) - INT( sza / 10.0_wp )
+       xfactor = ( startpos_saa_float ) - INT( startpos_saa_float )
+       projection_area_direct_beam = ( projection_area_temp( INT(startpos_saa_float)    ,INT( sza / 10.0_wp ) ) * &
+                                     ( 1.0_wp - xfactor ) * ( 1.0_wp - yfactor ) ) + &
+                                     ( projection_area_temp( INT(startpos_saa_float) + 1,INT(sza/10.0_wp))  *&
+                                     (    xfactor ) * ( 1.0_wp - yfactor ) ) + &
+                                     ( projection_area_temp( INT(startpos_saa_float)    ,INT(sza/10.0_wp)+1)*&
+                                     ( 1.0_wp - xfactor ) * (   yfactor ) ) + &
+                                     ( projection_area_temp( INT(startpos_saa_float) + 1,INT(sza/10.0_wp)+1)*&
+                                     (    xfactor ) * (   yfactor ) )
+                 
+             
+!           
+!--    interpolate to accurate Solar Zenith Angle  ------------------          
+       DO  ai = 0, 35
+          xfactor = (sza)-INT(sza)
+          DO  zi = 0, 9
+              radiance_array(ai,zi) = ( radiance_lookup_table(ai, zi, INT(sza) ) * ( 1.0_wp - xfactor) ) +&
+              ( radiance_lookup_table(ai,zi,INT(sza) + 1) * xfactor )
+          ENDDO
+       ENDDO
+       Do  ai = 0, 2            
+           irradiance(ai) = ( irradiance_lookup_table(ai, INT(sza) ) * ( 1.0_wp - xfactor)) + &
+           (irradiance_lookup_table(ai, INT(sza) + 1) * xfactor )
+       ENDDO   
+!         
+!--    interpolate to accurate Solar Azimuth Angle ------------------
+       IF ( saa_in_south .EQ. 0 )  THEN
+          startpos_saa_float = 180.0_wp / 10.0_wp
+       ELSE 
+          startpos_saa_float = saa / 10.0_wp
+       ENDIF
+       radiance_array_temp( 0:35,:) = radiance_array
+       radiance_array_temp(36:71,:) = radiance_array
+       xfactor = (startpos_saa_float) - INT(startpos_saa_float)
+       DO  ai = 0, 35
+          DO  zi = 0, 9
+             radiance_array(ai,zi) = ( radiance_array_temp( ai + INT( startpos_saa_float ), zi ) * &
+                                     (1.0_wp - xfactor)) &
+                                     + ( radiance_array_temp( ai + 1 + INT( startpos_saa_float ), zi ) &
+                                     * xfactor)
+          ENDDO
+       ENDDO 
+
+
+
+                                    
+       DO  i = nxlg, nxrg    
+          DO  j = nysg, nyng
+!            
+!--          extract obstrcution from IBSET-Integer_Array ------------------'
+             IF (consider_obstructions == 1) THEN
+                obstruction_temp1 = obstruction_lookup_table(i,j,:)
+                IF (obstruction_temp1(0) .NE. 9) THEN 
+                   DO  zi = 0, 44 
+                      DO  ai = 0, 7 
+                         IF ( btest( obstruction_temp1(zi), ai ) .EQV. .TRUE.) THEN
+                            obstruction_temp2( ( zi * 8 ) + ai ) = 1
+                         ELSE
+                            obstruction_temp2( ( zi * 8 ) + ai ) = 0
+                         ENDIF
+                      ENDDO
+                   ENDDO        
+                   DO  zi = 0, 9                                          
+                      obstruction(:,zi) = obstruction_temp2( zi * 36 :( zi * 36) + 35 )
+                   ENDDO
+                ELSE 
+                   obstruction(:,:) = 0
+                ENDIF
+             ENDIF
+!              
+!--          calculated human exposure ------------------'  
+             diffuse_exposure = SUM( radiance_array * projection_area * integration_array * obstruction )      
+         
+             obstruction_direct_beam = obstruction( nint(startpos_saa_float), nint( sza / 10.0_wp ) ) 
+             IF (sza .GE. 89.99_wp) THEN
+                sza = 89.99999_wp
+             ENDIF
+!             
+!--          calculate direct normal irradiance (direct beam) ------------------'
+             direct_exposure = ( irradiance(1) / cos( pi * sza / 180.0_wp ) ) * &
+             projection_area_direct_beam * obstruction_direct_beam  
+               
+             vitd3_exposure(j,i) = ( diffuse_exposure + direct_exposure ) / 1000.0_wp * 70.97_wp 
+             ! unit = international units vitamin D per second              
+          ENDDO
+       ENDDO
+    ENDIF
+
+ END SUBROUTINE uvem_calc_exposure
+
+
+
+
+ 
+! ------------------------------------------------------------------------------!
+! Description:
+! ------------
+! > Check parameters routine
+! ------------------------------------------------------------------------------!
+!  SUBROUTINE uvem_check_parameters
+! 
+!     USE control_parameters,                                                    &
+!         ONLY:  message_string
+! 
+!        
+!     IMPLICIT NONE
+! 
+! 
+! --    Checks go here (cf. check_parameters.f90). 
+!            
+!  END SUBROUTINE uvem_check_parameters
+
+
+ 
+! !------------------------------------------------------------------------------!
+! ! Description:
+! ! ------------
+! !> Header output
+! !------------------------------------------------------------------------------!
+!  SUBROUTINE uvem_header ( io )
+! 
+! 
+!     IMPLICIT NONE
+! 
+!  
+!     INTEGER(iwp), INTENT(IN) ::  io   !< Unit of the output file
+!  
+! !
+! !-- Header output goes here
+! !-- ...
+! 
+!  END SUBROUTINE uvem_header
+
+
+
+! !------------------------------------------------------------------------------!
+! ! Description:
+! ! ------------
+! !> This routine reads the respective restart data.
+! !------------------------------------------------------------------------------!
+!  SUBROUTINE uvem_read_restart_data  
+! 
+!     
+!     IMPLICIT NONE
+!        
+!     CHARACTER (LEN=30) ::  variable_chr  !< dummy variable to read string
+!        
+!        
+!     READ ( 13 )  variable_chr
+!     DO  WHILE ( TRIM( variable_chr ) /= '*** end new module ***' )
+! 
+!        SELECT CASE ( TRIM( variable_chr ) )
+!           
+! !           CASE ( 'param1' )
+! !              IF ( .NOT. ALLOCATED( param1 ) )  ALLOCATE( param1(...) )
+! !              READ ( 13 )  param1   
+!           
+!        END SELECT
+!           
+!        READ ( 13 )  variable_chr
+!           
+!     ENDDO
+! 
+!  END SUBROUTINE uvem_read_restart_data  
+    
+
+! !------------------------------------------------------------------------------!
+! ! Description:
+! ! ------------
+! !> This routine writes the respective restart data.
+! !------------------------------------------------------------------------------!
+!  SUBROUTINE uvem_last_actions
+! 
+!     IMPLICIT NONE
+!        
+! !      WRITE ( 14 )  'param1                            '
+! !      WRITE ( 14 )  param1       
+! 
+!        
+!     WRITE ( 14 )  '*** end new module ***            '
+!        
+!  END SUBROUTINE uvem_last_actions   
+
+
+! !------------------------------------------------------------------------------!
+! ! Description:
+! ! ------------
+! !> Skipping of parameters from restart file (binary format).
+! !------------------------------------------------------------------------------!
+!  SUBROUTINE uvem_skip_var_list  
+!            
+!     IMPLICIT NONE
+!        
+!     CHARACTER (LEN=1)  ::  param2         !<
+!     CHARACTER (LEN=30) ::  variable_chr   !<
+!        
+!     READ ( 13 )  variable_chr
+!     DO  WHILE ( TRIM( variable_chr ) /= '*** end new module ***' )
+!        READ ( 13 )  param2
+!     ENDDO    
+!        
+!  END SUBROUTINE uvem_skip_var_list 
+
+
+ END MODULE uv_exposure_model_mod
Index: palm/trunk/SOURCE/vertical_nesting_mod.f90
===================================================================
--- palm/trunk/SOURCE/vertical_nesting_mod.f90	(revision 2693)
+++ palm/trunk/SOURCE/vertical_nesting_mod.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file vertical_nesting_mod.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
@@ -16,4 +16,5 @@
 !
 ! Copyright 1997-2017 Leibniz Universitaet Hannover
+! Copyright 2017-2017 Karlsruhe Institute of Technology
 !------------------------------------------------------------------------------!
 !
@@ -25,4 +26,10 @@
 ! -----------------
 ! $Id$
+! renamed diffusivities to tcm_diffusivities (TG)
+! 
+! 2516 2017-10-04 11:03:04Z suehring
+! Remove tabs
+! 
+! 2514 2017-10-04 09:52:37Z suehring
 ! Remove tabs
 ! 
@@ -186,5 +193,6 @@
         USE surface_mod,                                                        &
             ONLY :  surf_def_h, surf_def_v
-        
+        USE turbulence_closure_mod,                                             &
+            ONLY :  tcm_diffusivities
    
         IMPLICIT NONE
@@ -554,7 +562,7 @@
            !diffusivities required
            IF ( .NOT. humidity ) THEN
-               CALL diffusivities( pt, pt_reference )
+               CALL tcm_diffusivities( pt, pt_reference )
            ELSE
-               CALL diffusivities( vpt, pt_reference )
+               CALL tcm_diffusivities( vpt, pt_reference )
            ENDIF
    
Index: palm/trunk/SOURCE/virtual_flight_mod.f90
===================================================================
--- palm/trunk/SOURCE/virtual_flight_mod.f90	(revision 2693)
+++ palm/trunk/SOURCE/virtual_flight_mod.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file virtual_flights_mod.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/wind_turbine_model_mod.f90
===================================================================
--- palm/trunk/SOURCE/wind_turbine_model_mod.f90	(revision 2693)
+++ palm/trunk/SOURCE/wind_turbine_model_mod.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file wind_turbine_model_mod.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
Index: palm/trunk/SOURCE/write_3d_binary.f90
===================================================================
--- palm/trunk/SOURCE/write_3d_binary.f90	(revision 2693)
+++ palm/trunk/SOURCE/write_3d_binary.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file write_3d_binary.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
@@ -25,4 +25,7 @@
 ! -----------------
 ! $Id$
+! + kh_av, km_av (TG)
+! 
+! 2292 2017-06-20 09:51:42Z schwenkel
 ! Implementation of new microphysic scheme: cloud_scheme = 'morrison' 
 ! includes two more prognostic equations for cloud drop concentration (nc)  
@@ -162,5 +165,5 @@
 !
 !-- Write arrays.
-    binary_version = '4.5'
+    binary_version = '4.6'
 
     WRITE ( 14 )  binary_version
@@ -179,5 +182,11 @@
     WRITE ( 14 )  'iran                ';  WRITE ( 14 )  iran, iran_part
     WRITE ( 14 )  'kh                  ';  WRITE ( 14 )  kh
+    IF ( ALLOCATED( kh_av ) )  THEN
+       WRITE ( 14 )  'kh_av               ';  WRITE ( 14 )  kh_av
+    ENDIF
     WRITE ( 14 )  'km                  ';  WRITE ( 14 )  km
+    IF ( ALLOCATED( km_av ) )  THEN
+       WRITE ( 14 )  'km_av               ';  WRITE ( 14 )  km_av
+    ENDIF
     IF ( ALLOCATED( lpt_av ) )  THEN
        WRITE ( 14 )  'lpt_av              ';  WRITE ( 14 )  lpt_av
Index: palm/trunk/SOURCE/write_var_list.f90
===================================================================
--- palm/trunk/SOURCE/write_var_list.f90	(revision 2693)
+++ palm/trunk/SOURCE/write_var_list.f90	(revision 2696)
@@ -1,5 +1,5 @@
 !> @file write_var_list.f90
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
+! This file is part of the PALM model system.
 !
 ! PALM is free software: you can redistribute it and/or modify it under the
@@ -25,4 +25,9 @@
 ! -----------------
 ! $Id$
+! + rans_mode, turbulence_closure (TG)
+! Implementation of chemistry module (FK)
+! Removal of chemistry module part. It is not needed and causes bugs (FK)
+! 
+! 2576 2017-10-24 13:49:46Z Giersch
 ! The end of the standard parameter list is again marked with *** end *** like 
 ! it was before revision 2563
@@ -256,5 +261,5 @@
 
 
-    binary_version = '4.4'
+    binary_version = '4.5'
 
     WRITE ( 14 )  binary_version
@@ -545,4 +550,6 @@
     WRITE ( 14 )  'random_heatflux               '
     WRITE ( 14 )  random_heatflux
+    WRITE ( 14 )  'rans_mode                     '
+    WRITE ( 14 )  rans_mode
     WRITE ( 14 )  'rayleigh_damping_factor       '
     WRITE ( 14 )  rayleigh_damping_factor
@@ -671,4 +678,6 @@
     WRITE ( 14 )  'tunnel_wall_depth             '
     WRITE ( 14 )  tunnel_wall_depth
+    WRITE ( 14 )  'turbulence_closure            '
+    WRITE ( 14 )  turbulence_closure
     WRITE ( 14 )  'collision_turbulence          '
     WRITE ( 14 )  collision_turbulence
@@ -762,4 +771,8 @@
     WRITE ( 14 )  '*** end ***                   '
 
+!    
+!-- ADD NEW "CALL <module>_skip_var_list" BELOW THE LAST CALL
+!-- (The order of the calls MUST be the same as in parin, and
+!--  read/skip_var_list)!
 !
 !-- If required, write restart data for wind turbine model.
@@ -775,3 +788,4 @@
 
 
+
  END SUBROUTINE write_var_list
Index: palm/trunk/UTIL/Makefile
===================================================================
--- palm/trunk/UTIL/Makefile	(revision 2693)
+++ 	(revision )
@@ -1,74 +1,0 @@
-#--------------------------------------------------------------------------------#
-# This file is part of PALM.
-#
-# PALM is free software: you can redistribute it and/or modify it under the terms
-# of the GNU General Public License as published by the Free Software Foundation,
-# either version 3 of the License, or (at your option) any later version.
-#
-# PALM is distributed in the hope that it will be useful, but WITHOUT ANY
-# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
-# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License along with
-# PALM. If not, see <http://www.gnu.org/licenses/>.
-#
-# Copyright 1997-2014  Leibniz Universitaet Hannover
-#--------------------------------------------------------------------------------#
-#
-# Current revisions:
-# -----------------
-#
-# Former revisions:
-# -----------------
-# $Id$
-#
-# 1046 2012-11-09 14:38:45Z maronga
-# code put under GPL (PALM 3.9)
-#
-# utility programs are created separately for each block in the configuration
-# file,
-# compare_palm_logs added
-# added PROG3 in 'all:' statement (line 39, bugfix)
-#
-# Initial revision somewhere in 2003/04
-#
-# Description:
-# ------------
-# Makefile for generating the utility programs needed by mrun and palm
-#--------------------------------------------------------------------------------#
-
-PROG1 =  ../SCRIPTS/combine_plot_fields$(BLOCK).x
-PROG2 =  ../SCRIPTS/compare_palm_logs$(BLOCK).x
-PROG3 =  ../SCRIPTS/interpret_config$(BLOCK).x
-
-OBJS1 =  combine_plot_fields.o
-OBJS2 =  compare_palm_logs.o
-OBJS3 =  interpret_config.o
-
-CC = cc
-CFLAGS = -O
-
-F90 =
-F90_SER =
-COPT =
-F90FLAGS =
-LDFLAGS =
-
-.SUFFIXES: $(SUFFIXES) .f90
-
-
-all: $(PROG1) $(PROG2) $(PROG3)
-
-$(PROG1): $(OBJS1)
-	$(F90_SER) -o $(PROG1) $(OBJS1) $(LDFLAGS)
-
-$(PROG2): $(OBJS2)
-	$(F90_SER) -o $(PROG2) $(OBJS2) $(LDFLAGS)
-
-$(PROG3): $(OBJS3)
-	$(F90_SER) -o $(PROG3) $(OBJS3) $(LDFLAGS)
-
-.f90.o:
-	$(F90_SER) $(F90FLAGS) $(COPT) -c $<
-
-
Index: palm/trunk/UTIL/Makefile_utilities
===================================================================
--- palm/trunk/UTIL/Makefile_utilities	(revision 2693)
+++ palm/trunk/UTIL/Makefile_utilities	(revision 2696)
@@ -1,4 +1,4 @@
-#--------------------------------------------------------------------------------#
-# This file is part of PALM.
+#------------------------------------------------------------------------------#
+# This file is part of the PALM model system.
 #
 # PALM is free software: you can redistribute it and/or modify it under the terms
@@ -13,6 +13,6 @@
 # PALM. If not, see <http://www.gnu.org/licenses/>.
 #
-# Copyright 1997-2014  Leibniz Universitaet Hannover
-#--------------------------------------------------------------------------------#
+# Copyright 1997-2017  Leibniz Universitaet Hannover
+#------------------------------------------------------------------------------#
 #
 # Current revisions:
@@ -42,5 +42,5 @@
 # ------------
 # Makefile for generating the utility programs required by mrun and palm
-#--------------------------------------------------------------------------------#
+#------------------------------------------------------------------------------#
 
 PROG1 =  combine_plot_fields.x
Index: palm/trunk/UTIL/analyze_particle_data.f90
===================================================================
--- palm/trunk/UTIL/analyze_particle_data.f90	(revision 2693)
+++ palm/trunk/UTIL/analyze_particle_data.f90	(revision 2696)
@@ -1,9 +1,10 @@
  PROGRAM analyze_particle_data
-!--------------------------------------------------------------------------------!
-! This file is part of PALM.
-!
-! PALM is free software: you can redistribute it and/or modify it under the terms
-! of the GNU General Public License as published by the Free Software Foundation,
-! either version 3 of the License, or (at your option) any later version.
+!------------------------------------------------------------------------------!
+! This file is part of the PALM model system.
+!
+! PALM is free software: you can redistribute it and/or modify it under the
+! terms of the GNU General Public License as published by the Free Software
+! Foundation, either version 3 of the License, or (at your option) any later
+! version.
 !
 ! PALM is distributed in the hope that it will be useful, but WITHOUT ANY
@@ -14,6 +15,6 @@
 ! PALM. If not, see <http://www.gnu.org/licenses/>.
 !
-! Copyright 1997-2014  Leibniz Universitaet Hannover
-!--------------------------------------------------------------------------------!
+! Copyright 1997-2017  Leibniz Universitaet Hannover
+!------------------------------------------------------------------------------!
 !
 ! Current revisions:
@@ -31,5 +32,5 @@
 ! This routine reads the particle data files generated by PALM
 ! and does some statistical analysis on these data.
-!-------------------------------------------------------------------------------!
+!------------------------------------------------------------------------------!
 
     IMPLICIT NONE
Index: palm/trunk/UTIL/analyze_particle_netcdf_data.f90
===================================================================
--- palm/trunk/UTIL/analyze_particle_netcdf_data.f90	(revision 2693)
+++ palm/trunk/UTIL/analyze_particle_netcdf_data.f90	(revision 2696)
@@ -2,9 +2,10 @@
 
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
-!
-! PALM is free software: you can redistribute it and/or modify it under the terms
-! of the GNU General Public License as published by the Free Software Foundation,
-! either version 3 of the License, or (at your option) any later version.
+! This file is part of the PALM model system.
+!
+! PALM is free software: you can redistribute it and/or modify it under the
+! terms of the GNU General Public License as published by the Free Software
+! Foundation, either version 3 of the License, or (at your option) any later
+! version.
 !
 ! PALM is distributed in the hope that it will be useful, but WITHOUT ANY
@@ -15,6 +16,6 @@
 ! PALM. If not, see <http://www.gnu.org/licenses/>.
 !
-! Copyright 1997-2014  Leibniz Universitaet Hannover
-!--------------------------------------------------------------------------------!
+! Copyright 1997-2017  Leibniz Universitaet Hannover
+!------------------------------------------------------------------------------!
 !
 ! Current revisions:
Index: palm/trunk/UTIL/check_pegrid.f90
===================================================================
--- palm/trunk/UTIL/check_pegrid.f90	(revision 2693)
+++ palm/trunk/UTIL/check_pegrid.f90	(revision 2696)
@@ -1,10 +1,11 @@
  PROGRAM check_pegrid
 
-!--------------------------------------------------------------------------------!
-! This file is part of PALM.
+!------------------------------------------------------------------------------!
+! This file is part of the PALM model system.
 !
-! PALM is free software: you can redistribute it and/or modify it under the terms
-! of the GNU General Public License as published by the Free Software Foundation,
-! either version 3 of the License, or (at your option) any later version.
+! PALM is free software: you can redistribute it and/or modify it under the
+! terms of the GNU General Public License as published by the Free Software
+! Foundation, either version 3 of the License, or (at your option) any later
+! version.
 !
 ! PALM is distributed in the hope that it will be useful, but WITHOUT ANY
@@ -15,6 +16,6 @@
 ! PALM. If not, see <http://www.gnu.org/licenses/>.
 !
-! Copyright 1997-2014  Leibniz Universitaet Hannover
-!--------------------------------------------------------------------------------!
+! Copyright 1997-2017  Leibniz Universitaet Hannover
+!------------------------------------------------------------------------------!
 !
 ! Current revisions:
@@ -32,5 +33,5 @@
 ! -------------
 ! Ueberpruefung der Konsistenz von Prozessortopologie und gewaehlten Feldgrenzen
-!-------------------------------------------------------------------------------!
+!------------------------------------------------------------------------------!
 
     IMPLICIT NONE
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/Makefile
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/Makefile	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/Makefile	(revision 2696)
@@ -0,0 +1,48 @@
+########################################################################################
+#
+#  KPP - The Kinetic PreProcessor
+#        Builds simulation code for chemical kinetic systems
+#
+#  Copyright (C) 1995-1996 Valeriu Damian and Adrian Sandu
+#  Copyright (C) 1997-2004 Adrian Sandu
+#
+#  KPP is free software; you can redistribute it and/or modify it under the
+#  terms of the GNU General Public License as published by the Free Software
+#  Foundation (http://www.gnu.org/copyleft/gpl.html); either version 2 of the
+#  License, or (at your option) any later version.
+#
+#  KPP is distributed in the hope that it will be useful, but WITHOUT ANY
+#  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+#  FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+#  details.
+#
+#  You should have received a copy of the GNU General Public License along
+##  with this program; if not, consult http://www.gnu.org/copyleft/gpl.html or
+#  write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+#  Boston, MA  02111-1307,  USA.
+#
+#  Adrian Sandu
+#  Computer Science Department
+#  Virginia Polytechnic Institute and State University
+#  Blacksburg, VA 24060
+#  E-mail: sandu@cs.vt.edu
+#
+#######################################################################################
+
+include Makefile.defs
+
+all: setup kpp
+
+setup:
+	@./cflags.guess $(CC)
+
+kpp:
+	@cd src;make;cd ..
+
+clean:
+	@cd src;make clean;cd ..
+	@rm -f *~ */*~
+
+distclean: clean
+	@cd src;make maintainer-clean;cd ..
+	@rm -f bin/kpp
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/Makefile.defs
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/Makefile.defs	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/Makefile.defs	(revision 2696)
@@ -0,0 +1,70 @@
+# -*- sh -*-
+##############################################################################
+#
+#  KPP - The Kinetic PreProcessor
+#        Builds simulation code for chemical kinetic systems
+#
+#  Copyright (C) 1995-1997 Valeriu Damian and Adrian Sandu
+#  Copyright (C) 1997-2005 Adrian Sandu
+#
+#  KPP is free software; you can redistribute it and/or modify it under the
+#  terms of the GNU General Public License as published by the Free Software
+#  Foundation (http://www.gnu.org/copyleft/gpl.html); either version 2 of the
+#  License, or (at your option) any later version.
+#
+#  KPP is distributed in the hope that it will be useful, but WITHOUT ANY
+#  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+#  FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+#  details.
+#
+#  You should have received a copy of the GNU General Public License along
+##  with this program; if not, consult http://www.gnu.org/copyleft/gpl.html or
+#  write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+#  Boston, MA  02111-1307,  USA.
+#
+#  Adrian Sandu
+#  Computer Science Department
+#  Virginia Polytechnic Institute and State University
+#  Blacksburg, VA 24060
+#  E-mail: sandu@cs.vt.edu
+#
+##############################################################################
+
+# In order to compile KPP you have to provide the following information:
+
+# 1. The name of the compiler you want to use. Normaly this 
+#    is either GNU C compiler (gcc) or the native compiler (cc)
+#    You can use the complete pathname if the compiler is not in $PATH 
+#    Note that for SUN machines is better to use gcc.
+#    For GNU C compiler use:
+#      CC=gcc
+#    For the native compiler use:
+#      CC=cc
+
+CC=cc 
+
+# 2. The name of your lexical analizer. KPP requires FLEX to be used.
+#    FLEX is a public domain lexical analizer and you can download it from
+#    http://www.gnu.org/software/flex/ or any other mirror site. If flex
+#    directory is not included in your path use the complete pathname.
+
+FLEX=flex
+
+# 3. The complete pathname of the FLEX library (libfl.a).
+#    On many systems this is either: 
+#    /usr/lib, /usr/lib64, /usr/local/util/lib/flex
+
+FLEX_LIB_DIR=/usr/lib64
+
+# 4. Platform independent C compiler flags. By default "-O" is used which 
+#    turns on optimization. If you are experiencing problems you may try 
+#    "-g" to include debuging informations.
+
+CC_FLAGS= -g -Wall
+
+# 5. Path to include additional directories
+#    Typically: /usr/include on Linux
+#               /usr/include/sys on Mac OS X
+INCLUDE_DIR = /usr/include
+
+##############################################################################
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/cflags
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/cflags	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/cflags	(revision 2696)
@@ -0,0 +1,1 @@
+ 
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/cflags.guess
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/cflags.guess	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/cflags.guess	(revision 2696)
@@ -0,0 +1,39 @@
+#!/bin/sh
+UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
+UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
+UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
+UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
+
+CC=cc
+if [ x$1 != x ]; then CC=$1; fi
+
+exec 5>./cflags
+
+# Note: order is significant - the case branches are not exclusive.
+
+case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}:${CC}" in
+
+    *:HP-UX:*:*:cc*) # For HP-UX workstations
+        echo " -Aa -D_HPUX_SOURCE " 1>&5; exit 0 ;;
+
+    *:AIX:*:*:cc*) # For machines running AIX
+        echo " -Aa " 1>&5; exit 0 ;;
+
+    *:IRIX:*:*:cc*) # For machines running IRIX
+        echo " " 1>&5; exit 0 ;;
+
+    *:IRIX64:*:*:cc*) # For machines running IRIX64 
+        echo " " 1>&5; exit 0 ;;
+
+    *:Linux:*:*:cc*) # For Linux machines
+        echo " " 1>&5; exit 0 ;;
+
+    *:SunOS:*:*:cc*) # For SUN machines
+        echo " Please use gcc compiler on SUN machines."; exit 1 ;;
+
+    *:*:*:*:gcc*) # this is the default case, for gcc
+        echo " " 1>&5; exit 0 ;;
+
+    *:*:*:*:*) # this is the default case
+        echo " " 1>&5; exit 0 ;;
+esac
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/drv/exact.c
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/drv/exact.c	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/drv/exact.c	(revision 2696)
@@ -0,0 +1,56 @@
+void main()
+{
+KPP_REAL dval[NSPEC];
+FILE * fp;
+int i;
+ 
+/* ---- TIME VARIABLES ------------------ */
+
+  RTOLS = 1e-6;
+  TSTART = 3600*12;
+  TEND = TSTART + 3600*24*5;
+  DT = 3600.;
+  TEMP = 236.21;
+
+  Initialize();
+      
+  for( i = 0; i < NVAR; i++ ) {
+    RTOL[i] = RTOLS;
+    ATOL[i] = 1;
+  }
+  STEPMIN = 0.01;
+  STEPMAX = 900;
+      
+/* ********** TIME LOOP **************************** */
+
+  InitSaveData();
+
+  printf("\n%7s %7s   ", "done[%]", "Time[h]");
+  for( i = 0; i < NMONITOR; i++ )  
+    printf( "%8s  ", SPC_NAMES[MONITOR[i]] );
+  for( i = 0; i < NMASS; i++ )  
+    printf( "(%6s)  ", SMASS[i] );
+  
+  TIME = TSTART;
+  while (TIME <= TEND) {
+    GetMass( C, dval );
+    printf("\n%6.1f%% %7.2f   ", (TIME-TSTART)/(TEND-TSTART)*100, TIME/3600 );
+    for( i = 0; i < NMONITOR; i++ ) 
+      printf( "%8.2e  ", C[ MONITOR[i] ]/CFACTOR );
+    for( i = 0; i < NMASS; i++ ) 
+      printf( "%8.2e  ", dval[i]/CFACTOR );
+    
+    SaveData();
+
+    Update_SUN(); 
+    Update_RCONST();
+
+    INTEGRATE( DT );
+  }
+
+/* *********** END TIME LOOP *********************** */
+
+  printf("\n");
+  CloseSaveData();
+  GenerateMatlab("");
+}
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/drv/exact.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/drv/exact.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/drv/exact.f	(revision 2696)
@@ -0,0 +1,67 @@
+      PROGRAM driver
+
+      INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Global.h'
+
+      KPP_REAL DVAL(NSPEC)
+      INTEGER i
+  
+C ---- TIME VARIABLES ------------------      
+
+      TSTART = 0
+      TEND = TSTART + 600
+      DT = 60.
+      TEMP = 298
+
+      STEPMIN = 0.01
+      STEPMAX = 900
+
+      RTOLS = 1e-8
+      do i=1,NVAR
+        RTOL(i) = RTOLS
+        ATOL(i) = 1e-3
+      end do
+     
+      CALL Initialize()
+
+C ********** TIME LOOP *************************
+
+      CALL InitSaveData()
+
+      write(6,990) (SPC_NAMES[MONITOR(i)], i=1,NMONITOR), 
+     *             (SMASS(i), i=1,NMASS )
+990   FORMAT('done[%] Time[h] ',20(4X,A6))
+
+      TIME = TSTART
+      do while (TIME .lt. TEND)
+
+        CALL GetMass( C, DVAL )
+        write(6,991) (TIME-TSTART)/(TEND-TSTART)*100, TIME/3600.,
+     *               (C(MONITOR(i))/CFACTOR, i=1,NMONITOR),
+     *               (DVAL(i)/CFACTOR, i=1,NMASS)
+991   FORMAT(F6.1,'% ',F7.2,3X,20(E10.4,2X))
+
+        CALL SaveData()
+
+        CALL Update_SUN() 
+        CALL Update_RCONST()
+
+        CALL INTEGRATE( TIME, TIME+DT )
+
+      end do
+
+      CALL GetMass( C, DVAL )
+      write(6,991) (TIME-TSTART)/(TEND-TSTART)*100, TIME/3600.,
+     *               (C(MONITOR(i))/CFACTOR, i=1,NMONITOR),
+     *               (DVAL(i)/CFACTOR, i=1,NMASS)
+
+      CALL SaveData()
+
+C *********** END TIME LOOP ********
+
+      CALL CloseSaveData()
+      CALL GenerateMatlab(' ')
+
+      STOP
+      END
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/drv/general.c
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/drv/general.c	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/drv/general.c	(revision 2696)
@@ -0,0 +1,63 @@
+int  InitSaveData();
+void Initialize();
+int  SaveData();
+int  CloseSaveData();
+int  GenerateMatlab( char * prefix );
+void GetMass( double CL[], double Mass[] );
+void INTEGRATE( double TIN, double TOUT );
+
+int main()
+{
+KPP_REAL dval[NSPEC];
+int i;
+ 
+/* ---- TIME VARIABLES ------------------ */
+
+  RTOLS = 1e-3;
+  TSTART = 3600*12;
+  TEND = TSTART + 3600*24*5;
+  DT = 3600.;
+  TEMP = 236.21;
+
+  Initialize();
+      
+  for( i = 0; i < NVAR; i++ ) {
+    RTOL[i] = RTOLS;
+    ATOL[i] = 1.0;
+  }
+  STEPMIN = 0.01;
+  STEPMAX = 900;
+      
+/* ********** TIME LOOP **************************** */
+
+  InitSaveData();
+
+  printf("\n%7s %7s   ", "done[%]", "Time[h]");
+  for( i = 0; i < NMONITOR; i++ )  
+    printf( "%8s  ", SPC_NAMES[MONITOR[i]] );
+  for( i = 0; i < NMASS; i++ )  
+    printf( "(%6s)  ", SMASS[i] );
+  
+  TIME = TSTART;
+  while (TIME <= TEND) {
+    GetMass( C, dval );
+    printf("\n%6.1f%% %7.2f   ", (TIME-TSTART)/(TEND-TSTART)*100, TIME/3600 );
+    for( i = 0; i < NMONITOR; i++ ) 
+      printf( "%9.3e  ", C[ MONITOR[i] ]/CFACTOR );
+    for( i = 0; i < NMASS; i++ ) 
+      printf( "%9.3e  ", dval[i]/CFACTOR );
+    
+    SaveData();
+
+    INTEGRATE( TIME , TIME+DT );
+    TIME += DT;
+  }
+
+/* *********** END TIME LOOP *********************** */
+
+  printf("\n");
+  CloseSaveData();
+
+    return 0; /*didnt return anything initially */
+
+}
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/drv/general.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/drv/general.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/drv/general.f	(revision 2696)
@@ -0,0 +1,72 @@
+      PROGRAM driver
+
+      INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Global.h'
+
+      KPP_REAL DVAL(NSPEC)
+      INTEGER i
+  
+C ---- TIME VARIABLES ------------------      
+
+      TSTART = 0
+      TEND = TSTART + 600
+      DT = 60.
+      TEMP = 298
+
+      STEPMIN = 0.01
+      STEPMAX = 900
+
+      RTOLS = 1e-3
+      DO i=1,NVAR
+        RTOL(i) = RTOLS
+        ATOL(i) = 1
+      END DO
+     
+      CALL Initialize()
+
+C ********** TIME LOOP *************************
+
+      CALL InitSaveData()
+
+      WRITE(6,990) (SPC_NAMES(MONITOR(i)), i=1,NMONITOR), 
+     *             (SMASS(i), i=1,NMASS )
+990   FORMAT('Done[%] Time[h] ',20(4X,A6))
+
+      TIME = TSTART
+      DO WHILE (TIME .lt. TEND)
+
+        CALL GetMass( C, DVAL )
+        WRITE(6,991) (TIME-TSTART)/(TEND-TSTART)*100, TIME/3600.,
+     *               (C(MONITOR(i))/CFACTOR, i=1,NMONITOR),
+     *               (DVAL(i)/CFACTOR, i=1,NMASS)
+991   FORMAT(F6.1,'% ',F7.2,3X,20(E10.4,2X))
+
+        CALL SaveData()
+
+        CALL Update_SUN() 
+        CALL Update_RCONST()
+
+        CALL INTEGRATE( TIME, TIME+DT )
+
+      END DO
+
+      CALL GetMass( C, DVAL )
+      WRITE(6,991) (TIME-TSTART)/(TEND-TSTART)*100, TIME/3600.,
+     *               (C(MONITOR(i))/CFACTOR, i=1,NMONITOR),
+     *               (DVAL(i)/CFACTOR, i=1,NMASS)
+
+      CALL SaveData()
+
+C *********** END TIME LOOP ********
+
+      CALL CloseSaveData()
+
+      open(75, file='reference.data')
+      do i=1,KPP_NVAR
+        write(75,75) VAR(i)
+      end do
+75    FORMAT(100(E24.14,1X))      
+
+      STOP
+      END
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/drv/general.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/drv/general.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/drv/general.f90	(revision 2696)
@@ -0,0 +1,54 @@
+PROGRAM KPP_ROOT_Driver
+
+  USE KPP_ROOT_Model
+  USE KPP_ROOT_Initialize, ONLY: Initialize
+
+      KPP_REAL :: T, DVAL(NSPEC)
+      KPP_REAL :: RSTATE(20)
+      INTEGER :: i
+  
+!~~~> Initialization 
+
+      STEPMIN = 0.0d0
+      STEPMAX = 0.0d0
+
+      DO i=1,NVAR
+        RTOL(i) = 1.0d-4
+        ATOL(i) = 1.0d-3
+      END DO
+     
+      CALL Initialize()
+      CALL InitSaveData()
+
+!~~~> Time loop
+      T = TSTART
+kron: DO WHILE (T < TEND)
+
+        TIME = T
+        CALL GetMass( C, DVAL )
+        WRITE(6,991) (T-TSTART)/(TEND-TSTART)*100, T,       &
+                   ( TRIM(SPC_NAMES(MONITOR(i))),           &
+                     C(MONITOR(i))/CFACTOR, i=1,NMONITOR )
+        CALL SaveData()
+        CALL Update_SUN() 
+        CALL Update_RCONST()
+
+        CALL INTEGRATE( TIN = T, TOUT = T+DT, RSTATUS_U = RSTATE, &
+        ICNTRL_U = (/ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /) )
+        T = RSTATE(1)
+
+      END DO kron
+!~~~> End Time loop
+
+      CALL GetMass( C, DVAL )
+      WRITE(6,991) (T-TSTART)/(TEND-TSTART)*100, T,     &
+               ( TRIM(SPC_NAMES(MONITOR(i))),           &
+                 C(MONITOR(i))/CFACTOR, i=1,NMONITOR ) 
+      TIME = T
+      CALL SaveData()
+      CALL CloseSaveData()
+
+991   FORMAT(F6.1,'%. T=',E9.3,2X,200(A,'=',E11.4,'; '))
+
+END PROGRAM KPP_ROOT_Driver
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/drv/general.m
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/drv/general.m	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/drv/general.m	(revision 2696)
@@ -0,0 +1,83 @@
+
+  TSTART = 0;
+  TEND = TSTART + 600;
+  DT = 60.;
+  TEMP = 298;
+
+  RTOLS = 1.0e-6;
+  ATOLS = 1.0e-3;
+     
+  KPP_ROOT_Initialize;
+  
+  Options = odeset('AbsTol',ATOLS,'RelTol',RTOLS,'Jacobian',@KPP_ROOT_Jac_Chem);
+
+% ********** TIME LOOP *************************
+
+  C(1:KPP_NVAR) = VAR(1:KPP_NVAR); 
+  C((KPP_NVAR+1):KPP_NSPEC) = FIX(1:KPP_NFIX);
+  DVAL = KPP_ROOT_GetMass( C );
+  if ( ~isempty(SMASS) )
+     fprintf('Initial Mass = %10.4e\n', DVAL(1:NMASS)/CFACTOR);
+  end   
+  
+%  KPP_ROOT_InitializeSaveData;
+
+%  disp(['Done[%] Time[h] ',SPC_NAMES(MONITOR(1:NMONITOR))])
+
+  TIME = TSTART;
+  
+  Tspan = linspace( TSTART, TEND, 100 );
+
+  [T, Y] = ode15s(@KPP_ROOT_Fun_Chem, Tspan, VAR, Options);
+
+  VAR(1:KPP_NVAR) = Y(length(T),1:KPP_NVAR)';
+  Y = [Y, ones(length(T),1)*FIX(:)'];
+  
+  C(1:KPP_NVAR) = VAR(1:KPP_NVAR); 
+  C((NVAR+1):NSPEC) = FIX(1:NFIX);
+  DVAL = KPP_ROOT_GetMass( C );
+	
+  fprintf('done %6.1f,  %7.2h hours', (TIME-TSTART)/(TEND-TSTART), TIME/3600.);
+  disp( Y(:,MONITOR(1:NMONITOR))/CFACTOR );
+  if ( ~isempty(SMASS) )
+    fprintf('Final Mass = %10.4e\n', DVAL(1:NMASS)/CFACTOR);
+  end
+  
+  for i = 1:NMONITOR
+    figure; plot( (T)/3600, Y(:,MONITOR(i))/CFACTOR );
+    title( SPC_NAMES( MONITOR(i),:) ,'FontSize',12); 
+    set(gca,'XLim',[TSTART,TEND]/3600,'FontSize',12);
+    xlabel('Time [ h ]','FontSize',12);
+    ylabel('Concentration','FontSize',12);
+  end  
+
+%   KPP_ROOT_FUNC_SaveData;
+%   KPP_ROOT_FUNC_CloseSaveData;
+
+return
+
+
+%  function P = KPP_ROOT_Fun_Chem(T, Y) 
+%       
+%    global TIME FIX RCONST  
+%   
+%    Told = TIME;
+%    TIME = T;
+%    KPP_ROOT_Update_SUN;
+%    KPP_ROOT_Update_RCONST;
+%    P = KPP_ROOT_Fun( Y, FIX, RCONST );
+%    TIME = Told;
+%  return
+%  
+%   
+%  function J =  KPP_ROOT_Jac_Chem(T, Y)   
+%    
+%    global TIME FIX RCONST ; 
+%    
+%    Told = TIME;
+%    TIME = T;
+%    KPP_ROOT_Update_SUN;
+%    KPP_ROOT_Update_RCONST;
+%    J = KPP_ROOT_Jac_SP( Y, FIX, RCONST );
+%    TIME = Told
+%  return              
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/drv/general_adj.c
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/drv/general_adj.c	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/drv/general_adj.c	(revision 2696)
@@ -0,0 +1,148 @@
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   Driver for the Adjoint (ADJ) model
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+int  InitSaveData();
+void Initialize();
+int  SaveData();
+int  CloseSaveData();
+int  GenerateMatlab( char * prefix );
+void GetMass( KPP_REAL CL[], KPP_REAL Mass[] );
+void INTEGRATE_ADJ( int NADJ, KPP_REAL Y[], KPP_REAL Lambda[][NVAR], 
+		    KPP_REAL TIN, KPP_REAL TOUT, KPP_REAL ATOL_adj[][NVAR], 
+		    KPP_REAL RTOL_adj[][NVAR], int ICNTRL_U[], 
+		    KPP_REAL RCNTRL_U[], int ISTATUS_U[], 
+		    KPP_REAL RSTATUS_U[] );
+
+int main() {
+
+  KPP_REAL T, DVAL[NSPEC];
+  int i, j, ind_1 = ind_O1D, ind_2 = ind_O3;
+
+  /*~~>  NADJ = Number of functionals for which sensitivities are computed
+     Note: the setting below is for sensitivities of all final concentrations;
+     the setting may have to be changed for other applications */
+  int NADJ = NVAR;
+  KPP_REAL Y_adj[NADJ][NVAR], ATOL_adj[NADJ][NVAR], RTOL_adj[NADJ][NVAR];
+
+/*~~>  Control (in) and status (out) arguments for the integration */
+  KPP_REAL RCNTRL[20], RSTATUS[20];
+  int ICNTRL[20], ISTATUS[20];
+  
+  STEPMIN = (double)0.0;
+  STEPMAX = (double)0.0;
+
+/*~~~> Tolerances for calculating concentrations */       
+  for( i=0; i<NVAR; i++) {
+    RTOL[i] = 1.0e-4;
+    ATOL[i] = 1.0e-3;
+  }
+      
+/*~~~> Tolerances for calculating adjoints 
+       are used for controlling adjoint truncation error
+       and for solving the linear adjoint equations by iterations  
+       Note: Adjoints typically span many orders of magnitude
+       and a careful tuning of ATOL_adj may be necessary */    
+  for(i=0; i<NADJ; i++) {
+    for(j=0; j<NVAR; j++) {
+      RTOL_adj[i][j] = 1.0e-4;
+      ATOL_adj[i][j] = 1.0e-10;
+    }
+  }
+     
+  Initialize();
+      
+/*~~~>  The adjoint values at the final time */
+  for(i=0; i<NADJ; i++) {
+    for(j=0; j<NVAR; j++)
+      Y_adj[i][j] = (double)0.0;
+  }
+  for(j=0; j<NADJ; j++)
+    Y_adj[j][j] = (double)1.0;
+
+/*~~~> Default control options */
+  for(i=0; i<20; i++) {
+    ICNTRL[i] = 0;
+    RCNTRL[i] = (double)0.0;
+    ISTATUS[i] = 0;
+    RSTATUS[i] = (double)0.0;
+  }     
+
+/*~~~> Begin time loop */
+
+  TIME = TSTART;
+  InitSaveData();
+
+  T = TSTART;
+
+  GetMass( C, DVAL );
+  printf("\n%6.1f%% %7.2f   ", (TIME-TSTART)/(TEND-TSTART)*100, TIME/3600 );
+  for( i = 0; i < NMONITOR; i++ ) 
+    printf( "%9.3e  ", C[ MONITOR[i] ]/CFACTOR );
+  for( i = 0; i < NMASS; i++ ) 
+    printf( "%9.3e  ", DVAL[i]/CFACTOR );
+
+  TIME = T;
+  SaveData();
+
+  INTEGRATE_ADJ( NADJ, VAR, Y_adj, T, TEND, ATOL_adj, RTOL_adj, ICNTRL, 
+		 RCNTRL, ISTATUS, RSTATUS );
+
+  GetMass( C, DVAL );
+
+  printf("\n%6.1f%% %7.2f   ", (TEND-TSTART)/(TEND-TSTART)*100, TIME/3600 );
+  for( i = 0; i < NMONITOR; i++ ) 
+    printf( "%9.3e  ", C[ MONITOR[i] ]/CFACTOR );
+  for( i = 0; i < NMASS; i++ ) 
+    printf( "%9.3e   ", DVAL[i]/CFACTOR );
+
+  TIME = T;
+  SaveData();
+
+/*~~~> End time loop ~~~~~~~~~~*/
+
+  printf( "\n\n****************************************************\n" );
+  printf( " Concentrations and Sensitivities at final time\n" );
+  printf( " were written in the file KPP_ROOT_ADJ_results.m\n");
+  printf( "****************************************************\n");
+
+  FILE *out;
+  out = fopen("KPP_ROOT_ADJ_results.m", "w");
+  if(out == NULL) {
+    printf("Unable to open file KPP_ROOT_ADJ_results.m\n");
+    exit(1);
+  }
+
+  for(j=0; j<NADJ; j++) {
+    for(i=0; i<NVAR; i++)
+      fprintf( out, "%7.6e   ", Y_adj[j][i] );
+    fprintf( out, "\n" );
+  }
+
+  fclose(out);
+
+  printf( "\nADJ: d[%s](tf)/d[%s](t0) = %7.6e\n", SPC_NAMES[ind_1], 
+	  SPC_NAMES[ind_1], Y_adj[ind_1][ind_1] );
+  printf( "ADJ: d[%s](tf)/d[%s](t0) = %7.6e\n", SPC_NAMES[ind_2], 
+	  SPC_NAMES[ind_2], Y_adj[ind_2][ind_2] );
+  printf( "ADJ: d[%s](tf)/d[%s](t0) = %7.6e\n", SPC_NAMES[ind_2], 
+	  SPC_NAMES[ind_1], Y_adj[ind_2][ind_1] );
+  printf( "ADJ: d[%s](tf)/d[%s](t0) =  %7.6e\n\n", SPC_NAMES[ind_1], 
+	  SPC_NAMES[ind_2], Y_adj[ind_1][ind_2] );
+
+  CloseSaveData();
+ 
+/*~~~> The entire matrix of sensitivities */
+  printf("   ");
+  for(i=0; i<NVAR; i++)
+    printf( "%15s", SPC_NAMES[i] );
+  printf("\n");
+  for(j=0; j<NVAR; j++) {
+    printf("%5s = ", SPC_NAMES[j]);
+    for(i=0; i<NADJ; i++)
+      printf( " %7.6e   ",  Y_adj[i][j] );
+    printf("\n");
+  }
+
+  return 0;
+}
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/drv/general_adj.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/drv/general_adj.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/drv/general_adj.f90	(revision 2696)
@@ -0,0 +1,122 @@
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!   Driver for the Adjoint (ADJ) model
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+PROGRAM KPP_ROOT_ADJ_Driver
+
+  USE KPP_ROOT_Model
+  USE KPP_ROOT_Initialize, ONLY: Initialize
+
+      KPP_REAL :: T, DVAL(NSPEC)
+      INTEGER :: i, j, ind_1 = 1, ind_2 = 2
+      ! INTEGER :: ind_1 = ind_NO2, ind_2 = ind_O3
+
+!~~>  NADJ = Number of functionals for which sensitivities are computed
+!     Note: the setting below is for sensitivities of all final concentrations;
+!           the setting may have to be changed for other applications
+      INTEGER, PARAMETER :: NADJ = NVAR
+      KPP_REAL, DIMENSION(NVAR,NADJ) :: Y_adj, ATOL_adj, RTOL_adj
+
+!~~>  Control (in) and status (out) arguments for the integration
+      KPP_REAL, DIMENSION(20) :: RCNTRL, RSTATUS
+      INTEGER,       DIMENSION(20) :: ICNTRL, ISTATUS
+  
+      STEPMIN = 0.0d0
+      STEPMAX = 0.0d0
+
+!~~~> Tolerances for calculating concentrations       
+      DO i=1,NVAR
+        RTOL(i) = 1.0d-4
+        ATOL(i) = 1.0d-3
+      END DO
+      
+!~~~> Tolerances for calculating adjoints 
+!     are used for controlling adjoint truncation error
+!     and for solving the linear adjoint equations by iterations  
+!     Note: Adjoints typically span many orders of magnitude
+!           and a careful tuning of ATOL_adj may be necessary     
+      DO j=1,NADJ
+        DO i=1,NVAR
+          RTOL_adj(i,j) = 1.0d-4
+          ATOL_adj(i,j) = 1.0d-10
+        END DO
+      END DO
+     
+      CALL Initialize()
+      
+!~~~>  The adjoint values at the final time
+      Y_adj(1:NVAR,1:NADJ) = 0.0d0
+      DO j=1,NADJ
+        Y_adj(j,j) = 1.0d0
+      END DO
+
+!~~~> Default control options
+      ICNTRL(1:20) = 0
+      RCNTRL(1:20) = 0.0d0       
+
+!~~~> Begin time loop
+
+      TIME = TSTART
+      CALL InitSaveData()
+
+      T = TSTART
+
+      CALL GetMass( C, DVAL )
+      WRITE(6,991) (T-TSTART)/(TEND-TSTART)*100, T,        &
+                  (TRIM(SPC_NAMES(MONITOR(i))),            &
+                    C(MONITOR(i))/CFACTOR, i=1,NMONITOR),  &
+                  (TRIM(SMASS(i)),DVAL(i)/CFACTOR, i=1,NMASS)
+
+      TIME = T
+      CALL SaveData()
+
+      CALL INTEGRATE_ADJ( NADJ, VAR, Y_adj, T, TEND,       &
+                          ATOL_adj, RTOL_adj,              &
+                          ICNTRL, RCNTRL, ISTATUS, RSTATUS )
+
+
+      CALL GetMass( C, DVAL )
+      WRITE(6,991) (TEND-TSTART)/(TEND-TSTART)*100, TEND,  &
+                  (TRIM(SPC_NAMES(MONITOR(i))),            &
+                    C(MONITOR(i))/CFACTOR, i=1,NMONITOR),  &
+                  (TRIM(SMASS(i)),DVAL(i)/CFACTOR, i=1,NMASS)
+
+      TIME = T
+      CALL SaveData()
+
+!~~~> End time loop ~~~~~~~~~~
+
+      OPEN(20, FILE='KPP_ROOT_ADJ_results.m')
+      WRITE(6,*) '**************************************************'
+      WRITE(6,*) ' Concentrations and Sensitivities at final time '
+      WRITE(6,*) ' were written in the file KPP_ROOT_ADJ_results.m'
+      WRITE(6,*) '**************************************************'
+      DO j=1,NADJ
+        WRITE(20,993) ( Y_adj(i,j), i=1,NVAR )          
+      END DO
+
+      WRITE(6,995) TRIM(SPC_NAMES(ind_1)),TRIM(SPC_NAMES(ind_1)), &
+                   Y_adj(ind_1,1)
+      WRITE(6,995) TRIM(SPC_NAMES(ind_2)),TRIM(SPC_NAMES(ind_2)), &
+                   Y_adj(ind_2,2)
+      WRITE(6,995) TRIM(SPC_NAMES(ind_2)),TRIM(SPC_NAMES(ind_1)), &
+                   Y_adj(ind_1,2)
+      WRITE(6,995) TRIM(SPC_NAMES(ind_1)),TRIM(SPC_NAMES(ind_2)), &
+                   Y_adj(ind_2,1)
+
+      CALL CloseSaveData()
+      
+ 991  FORMAT(F6.1,'%. T=',E10.3,3X,20(A,'=',E10.4,';',1X))
+ 993  FORMAT(1000(E24.16,2X))
+ 995  FORMAT('ADJ: d[',A,'](tf)/d[',A,'](t0)=',E14.7)
+ 
+      !~~~> The entire matrix of sensitivities
+      WRITE(6,996) ( 'd ',TRIM(SPC_NAMES(i)), i=1,NVAR ) 
+      DO j=1,NADJ
+        WRITE(6,997) TRIM(SPC_NAMES(j)),( Y_adj(j,i), i=1,NVAR )          
+      END DO
+ 996  FORMAT(12X,100('  ',A2,A6,4X))
+ 997  FORMAT('d/d',A6,' = ',100(E12.5,2X))
+
+END PROGRAM KPP_ROOT_ADJ_Driver
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/drv/general_complete.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/drv/general_complete.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/drv/general_complete.f90	(revision 2696)
@@ -0,0 +1,114 @@
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!   Driver for the tangent linear model
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+PROGRAM KPP_ROOT_ADJ_Driver
+
+  USE KPP_ROOT_Model
+  USE KPP_ROOT_Initialize, ONLY: Initialize
+
+      KPP_REAL :: T, DVAL(NSPEC)
+      INTEGER :: i, j, ind_1 = ind_NO2, ind_2 = ind_O3
+
+! ---  Number of functional for which sensitivities are computed
+! ---  Note: this value is set for sensitivities w.r.t. all initial values
+! ---       it may have to be changed for other applications
+      INTEGER NADJ
+      PARAMETER (NADJ = 2)
+      KPP_REAL  Y_ADJ(NVAR,NADJ)
+      REAL(kind=dble_p)  R1(NVAR), R2(NVAR), V1, V2
+  
+! ---- TIME VARIABLES ------------------      
+
+      STEPMIN = 0.0d0
+      STEPMAX = 0.0d0
+
+      CALL SRAND(89)
+      RTOLS = 1.0d-3
+      DO i=1,NVAR
+        RTOL(i) = RTOLS
+        ATOL(i) = 1.0d-2
+        R1(i) = 10*(RAND()-0.5d0)
+        R2(i) = 10*(RAND()-0.5d0)
+      END DO
+     
+      CALL Initialize()
+! ---  Note: the initial values below are adjoint values at the final time
+     Y_ADJ(1:NVAR,1) = R1(1:NVAR)
+     Y_ADJ(1:NVAR,2) = R2(1:NVAR)
+
+! ********** T LOOP *************************
+
+      CALL InitSaveData()
+
+      WRITE(6,990) (SPC_NAMES(MONITOR(i)), i=1,NMONITOR)
+990   FORMAT('DOne[%] Time[h] ',20(4X,A12))
+
+      T = TSTART
+
+        CALL GetMass( C, DVAL )
+        WRITE(6,991) (T-TSTART)/(TEND-TSTART)*100, T/3600.,   &
+                    (C(MONITOR(i))/CFACTOR, i=1,NMONITOR),  &
+                   (DVAL(i)/CFACTOR, i=1,NMASS)
+991     FORMAT(F6.1,'% ',F7.2,3X,20(E10.4,2X))
+
+        CALL SaveData()
+
+        CALL Update_SUN() 
+        CALL Update_RCONST()
+
+        CALL INTEGRATE_ADJ( NADJ, Y_ADJ, T, TEND )
+
+      V1 = 0.0d0
+      V2 = 0.0d0
+      DO i=1,NVAR
+        V1 = V1 + Y_ADJ(i,1)*R2(i)
+        V2 = V2 + Y_ADJ(i,2)*R1(i)
+      END DO
+
+      PRINT*,'**************************************************'
+      WRITE(6,887) V1
+      WRITE(6,888) V2
+      WRITE(6,889) ABS(V1-V2)/MAX(ABS(V1),ABS(V2))
+887   FORMAT('u.M''*M''.v = ',E24.14 )
+888   FORMAT('v.M''*M''.u = ',E24.14 )
+889   FORMAT('RelativeErr=',E10.3 )
+      PRINT*,'**************************************************'
+
+      CALL GetMass( C, DVAL )
+      WRITE(6,991) (T-TSTART)/(TEND-TSTART)*100, T/3600.,    &
+                    (C(MONITOR(i))/CFACTOR, i=1,NMONITOR), &
+                    (DVAL(i)/CFACTOR, i=1,NMASS)
+
+      CALL SaveData()
+
+! *********** END TIME LOOP ********
+      OPEN(20, FILE='KPP_ROOT_ADJ_results.m')
+      WRITE(6,*) '**************************************************'
+      WRITE(6,*) ' Concentrations and Sensitivities at final time '
+      WRITE(6,*) ' were written in the file KPP_ROOT_ADJ_results.m'
+      WRITE(6,*) '**************************************************'
+      DO j=1,NADJ
+        WRITE(20,993) ( Y_ADJ(i,j), i=1,NVAR )          
+      END DO
+ 993  FORMAT(1000(E24.16,2X))
+
+      PRINT*,'ADJ: d[',TRIM(SPC_NAMES(ind_1)),'](tf) / d[', &
+            TRIM(SPC_NAMES(ind_1)),'](t0)=', Y_ADJ(ind_1,1)
+      PRINT*,'ADJ: d[',TRIM(SPC_NAMES(ind_2)),'](tf) / d[', &
+            TRIM(SPC_NAMES(ind_2)),'](t0)=', Y_ADJ(ind_2,2)
+      PRINT*,'ADJ: d[',TRIM(SPC_NAMES(ind_1)),'](tf) / d[', &
+            TRIM(SPC_NAMES(ind_2)),'](t0)=', Y_ADJ(ind_1,2)
+      PRINT*,'ADJ: d[',TRIM(SPC_NAMES(ind_2)),'](tf) / d[', &
+            TRIM(SPC_NAMES(ind_1)),'](t0)=', Y_ADJ(ind_2,1)
+
+      PRINT*,'TLM: d[NO2](tf) / d[NO2](t0)=  1.714961808143527E-002'
+      PRINT*,'TLM: d[ O3](tf) / d[ O3](t0)= -4.447774183920545E-003'
+      PRINT*,'TLM: d[NO2](tf) / d[ O3](t0)=  0.897512294491540'
+      PRINT*,'TLM: d[ O3](tf) / d[NO2](t0)= -5.543729901774693E-005'
+ 
+
+      CALL CloseSaveData()
+
+END PROGRAM KPP_ROOT_ADJ_Driver
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/drv/general_ddm_ic.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/drv/general_ddm_ic.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/drv/general_ddm_ic.f	(revision 2696)
@@ -0,0 +1,117 @@
+C --- Driver for computing sensitivity coefficients w.r.t. all initial values
+      PROGRAM driver
+
+      INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Global.h'
+
+C ---  Number of sensitivity coefficients to compute
+C ---  Note: this value is set for sensitivities w.r.t. all initial values
+C ---       it may have to be changed for other applications
+      INTEGER NSENSIT
+      PARAMETER (NSENSIT = NVAR)
+      
+      KPP_REAL  DVAL(NSPEC)
+      KPP_REAL  Y(NVAR*(NSENSIT+1))
+C ---  Note: Y contains: (1:NVAR) concentrations, followed by
+C ---                   (1:NVAR) sensitivities w.r.t. first parameter, followed by
+C ---                   etc.,  followed by          
+C ---                   (1:NVAR) sensitivities w.r.t. NSENSIT's parameter
+
+      INTEGER i
+
+C --- The type of sensitivity coefficients to compute
+C --- DDMTYPE = 0 : sensitivities w.r.t. initial values
+C --- DDMTYPE = 1 : sensitivities w.r.t. parameters
+      DDMTYPE = 0
+   
+C ---- TIME VARIABLES ------------------      
+
+      TSTART = 0
+      TEND = TSTART + 600
+      DT = 60.
+      TEMP = 298
+
+      STEPMIN = 0.01
+      STEPMAX = 900
+
+      PRINT*,'Please provide: RTOL = , ATOL = '
+      READ*,RTOLS, ATOLS
+      do i=1,NVAR
+        RTOL(i) = RTOLS
+        ATOL(i) = ATOLS
+      end do
+    
+C ********** TIME LOOP *************************
+
+      CALL Initialize()
+
+C -- Initialize Concentrations and Sensitivities
+      DO i=1,NVAR
+         Y(i) = VAR(i)
+      END DO
+	
+C ---  Note: the initial values below are for sensitivities w.r.t. initial values;
+C ---       they may have to be changed for other applications
+      DO j=1,NSENSIT
+        DO i=1,NVAR
+	   Y(i+NVAR*j) = 0.0D0
+	END DO
+	Y(j+NVAR*j) = 1.0D0
+      END DO
+
+      CALL InitSaveData()
+
+      WRITE(6,990) (SPC_NAMES(MONITOR(i)), i=1,NMONITOR), 
+     *             (SMASS(i), i=1,NMASS )
+990   FORMAT('done[%] Time[h] ',20(4X,A6))
+
+      TIME = TSTART
+      DO WHILE (TIME .lt. TEND)
+
+        CALL GetMass( C, DVAL )
+        WRITE(6,991) (TIME-TSTART)/(TEND-TSTART)*100, TIME/3600.,
+     *               (C(MONITOR(i))/CFACTOR, i=1,NMONITOR),
+     *               (DVAL(i)/CFACTOR, i=1,NMASS)
+991   FORMAT(F6.1,'% ',F7.2,3X,20(E10.4,2X))
+
+        CALL SaveData()
+
+        CALL Update_SUN() 
+        CALL Update_RCONST()
+	
+        CALL INTEGRATE( NSENSIT, Y, TIME, TIME+DT )
+
+        DO i=1,NVAR
+           VAR(i) = Y(i)
+        END DO
+	
+      END DO
+
+      CALL GetMass( C, DVAL )
+      WRITE(6,991) (TIME-TSTART)/(TEND-TSTART)*100, TIME/3600.,
+     *               (C(MONITOR(i))/CFACTOR, i=1,NMONITOR),
+     *               (DVAL(i)/CFACTOR, i=1,NMASS)
+
+C      DO i=1,NSENSIT
+C        WRITE(6,992) i, ( Y(NVAR*i+j), j=1,NVAR )          
+C      END DO
+C 992  FORMAT('SEN(',I3,') = ',1000(E10.4,2X))
+
+      CALL SaveData()
+
+C *********** END TIME LOOP ********
+      OPEN(20, FILE='KPP_ROOT_results.m')
+      WRITE(6,*) '**************************************************'
+      WRITE(6,*) '* Concentrations and Sensitivities at final time *'
+      WRITE(6,*) '*  were written in the file KPP_ROOT_results.m  *'
+      WRITE(6,*) '**************************************************'
+      DO i=0,NSENSIT
+        WRITE(20,993) ( Y(NVAR*i+j), j=1,NVAR )          
+      END DO
+ 993  FORMAT(1000(E24.16,2X))
+
+      CALL CloseSaveData()
+
+      STOP
+      END
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/drv/general_hsv.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/drv/general_hsv.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/drv/general_hsv.f90	(revision 2696)
@@ -0,0 +1,299 @@
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!   Driver to test Hessian Singular Vectors
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+PROGRAM KPP_ROOT_Driver
+
+  USE KPP_ROOT_Model
+  USE KPP_ROOT_Initialize, ONLY: Initialize
+
+      KPP_REAL :: T, DVAL(NSPEC), DV(NVAR)
+      KPP_REAL :: Hs(NVAR,NVAR), SOA(NVAR)
+      INTEGER :: i, j, ind_1 = 1, ind_2 = 2, ind_COST
+      LOGICAL :: LHessian
+      INTEGER, PARAMETER :: NSOA = 1
+      KPP_REAL :: Y_tlm(NVAR,NSOA)
+      KPP_REAL :: Y_adj(NVAR,1)
+      KPP_REAL :: Y_soa(NVAR,NSOA)
+ 
+      integer          lwork, n
+      parameter        (n = NVAR)
+      
+      ! Number of desired eigenvectors
+      INTEGER, PARAMETER :: NEIG = 4
+      double complex   zwork(2000), alpha(NEIG), beta(NEIG), &
+                       eivec(n,NEIG), tmp(n), residu(n)
+
+      integer          kmax, jmax, jmin, maxstep, method, m, l, maxnmv,  &
+                       order, testspace
+      double precision tol, lock, dznrm2
+      logical          wanted
+      double complex   target
+      real             elapse
+      real             etime, tarray(2)
+
+      target = (0.0,0.0)
+      tol = 1.d-9
+      kmax = NEIG           ! Number of wanted solutions
+      jmin = 10; jmax = 20  ! min/max size of search space
+      
+      maxstep = 30  ! Max number of Jacobi-Davidson iterations
+      lock = 1.d-9
+!...     order =  0: nearest to target
+!...     order = -1: smallest real part
+!...     order =  1: largest real part
+!...     order = -2: smallest complex part
+!...     order =  2: largest complex part
+      order = 1
+
+      method = 2  ! 1=gmres(m), 2=cgstab(l)
+      m = 30      ! for gmres(m):
+      l = 2       ! for cgstab(l):
+
+      maxnmv = 20 !...     maximum number of matvecs in cgstab or gmres
+      
+      testspace = 3
+!...     Testspace 1: w = "Standard Petrov" * v (Section 3.1.1)
+!...     Testspace 2: w = "Standard 'variable' Petrov" * v (Section 3.1.2)
+!...     Testspace 3: w = "Harmonic Petrov" * v (Section 3.5.1)
+
+      if ( method .eq. 1 ) then
+         lwork =  4 +  m  + 5*jmax + 3*kmax
+      else
+         lwork = 10 + 6*l + 5*jmax + 3*kmax
+      end if
+      wanted = .true.
+
+      call jdqz(alpha, beta, eivec, wanted, n, target, tol, &
+          kmax, jmax, jmin, &
+          method, m, l, maxnmv, maxstep, &
+          lock, order, testspace, zwork, lwork )
+
+      elapse = etime( tarray )
+
+      print*,'Number of converged eigenvalues = ',kmax
+      
+!...     Compute the norms of the residuals:
+      do j = 1, kmax
+         call amul  ( n, eivec(1,j), residu )
+         call zscal ( n, beta(j), residu, 1)
+         call bmul  ( n, eivec(1,j), tmp )
+         call zaxpy( n, -alpha(j), tmp, 1, residu, 1 )
+         print '("lambda(",i2,"): (",1p,e11.4,",",e11.4, &
+             " )")', j,alpha(j)/beta(j)
+         print '(a30,d13.6)', '||beta Ax - alpha Bx||:', &
+               dznrm2( n, residu, 1 )
+      end do
+      write(*,10) tarray(1), elapse
+
+   10 format(1x,'END JDQZ AFTER ',f6.2,' SEC. CPU-TIME AND ', f6.2, &
+            ' SEC. ELAPSED TIME' )
+
+      open(120,file='KPP_ROOT_vec.m')
+      do i=1,NVAR
+        write(120,120) (eivec(i,j), j=1,NEIG)
+      end do
+      close(120)	
+
+      open(120,file='KPP_ROOT_val.m')
+      do i=1,NEIG
+        write(120,120) ALPHA(i), BETA(i), ALPHA(i)/BETA(i)
+      end do
+      close(120)	
+      
+120   format(10000(E14.7,1X))
+
+END PROGRAM KPP_ROOT_Driver
+
+
+!==========================================================================
+!     Dummy preconditioner subroutine
+!==========================================================================
+      subroutine PRECON( neq, q )
+!...............................................
+!...     Subroutine to compute q = K^-1 q
+!...............................................
+      integer        neq, i
+      double complex q(neq)
+      end subroutine PRECON
+
+
+!==========================================================================
+!     matrix vector multiplication subroutine
+!
+!
+!     Compute the matrix vector multiplication y<---A*x
+!     where A = adjoint(Model)*tlm(Model)
+!
+!     Note: we multiply the real and imaginaray parts separately
+!           x = (xr,xi)
+!           y = (yr,yi)
+!           We run the code twice such that:
+!           yr <-- A*xr and yi <-- A*xi
+!
+!==========================================================================
+      subroutine AMUL (n, u, v)
+  USE KPP_ROOT_Model
+  USE KPP_ROOT_Initialize, ONLY: Initialize
+      integer           n, j
+      Double Complex u(n), v(n)
+      Double precision xr(n), yr(n),  xi(n), yi(n), three, two 
+      parameter         (three = 3.0D+0, two = 2.0D+0)
+      INTEGER, PARAMETER :: NSOA = 1
+      KPP_REAL :: Y_tlm(NVAR,NSOA)
+      KPP_REAL :: Y_adj(NVAR,1)
+      KPP_REAL :: Y_soa(NVAR,NSOA)
+      integer, save :: indexA = 0
+      
+      indexA = indexA + 1
+      print*,'AMUL #',indexA
+
+! Real and imaginary parts of complex inputs
+      xr(1:n) = DBLE( u(1:n) )
+      xi(1:n) = DIMAG( u(1:n) )
+
+
+      DO i=1,NVAR
+        RTOL(i) = 1.0d-4
+        ATOL(i) = 1.0d-3
+      END DO
+!~~~>  The cost function is 0.5*VAR(ind_COST, tF)**2
+      ind_COST = ind_O3
+
+! First do a FWD and a TLM integration
+      CALL Initialize()
+      Y_tlm(1:NVAR,1) = xr(1:NVAR)
+      Y_adj(1:NVAR,1) = 0.0d0
+      Y_soa(1:NVAR,1) = 0.0d0
+      CALL INTEGRATE_SOA( NSOA, VAR, Y_tlm, Y_adj, Y_soa, TSTART, TEND, &
+                            ATOL, RTOL)
+
+! Set Lambda(t_final) = Y_tlm(t_final) and do backward integration
+      CALL Initialize()
+      Y_adj(1:NVAR,1) = Y_tlm(1:NVAR)
+      Y_tlm(1:NVAR,1) = 0.0d0
+      Y_soa(1:NVAR,1) = 0.0d0
+      CALL INTEGRATE_SOA( NSOA, VAR, Y_tlm, Y_adj, Y_soa, TSTART, TEND, &
+                            ATOL, RTOL)
+      yr(1:NVAR) = Y_adj(1:NVAR)
+
+! First do a FWD and a TLM integration
+      CALL Initialize()
+      Y_tlm(1:NVAR,1) = xi(1:NVAR)
+      Y_adj(1:NVAR,1) = 0.0d0
+      Y_soa(1:NVAR,1) = 0.0d0
+      CALL INTEGRATE_SOA( NSOA, VAR, Y_tlm, Y_adj, Y_soa, TSTART, TEND, &
+                            ATOL, RTOL)
+
+! Set Lambda(t_final) = Y_tlm(t_final) and do backward integration
+      CALL Initialize()
+      Y_adj(1:NVAR,1) = Y_tlm(1:NVAR)
+      Y_tlm(1:NVAR,1) = 0.0d0
+      Y_soa(1:NVAR,1) = 0.0d0
+      CALL INTEGRATE_SOA( NSOA, VAR, Y_tlm, Y_adj, Y_soa, TSTART, TEND, &
+                            ATOL, RTOL)
+      yi(1:NVAR) = Y_adj(1:NVAR)
+
+! Convert double outputs to complex
+      DO i=1,n
+        v(i) = DCMPLX( yr(i), yi(i) )
+      END DO	
+
+
+      print*,'   (END AMUL #',indexA,')'
+      
+      end  subroutine AMUL
+
+!==========================================================================
+!     matrix vector multiplication subroutine
+!
+!     Compute the matrix vector multiplication y<---B*x
+!     where B = Hessian, and y = SOA
+!
+!     Note: we multiply the real and imaginaray parts separately
+!           x = (xr,xi)
+!           y = (yr,yi)
+!           We run the code twice such that:
+!           yr <-- B*xr and yi <-- B*xi
+!==========================================================================
+
+      subroutine BMUL (n, u, v)
+  USE KPP_ROOT_Model
+  USE KPP_ROOT_Initialize, ONLY: Initialize
+      integer           n, j
+      Double Complex u(n), v(n)
+      Double precision xr(n), yr(n), xi(n), yi(n)
+      INTEGER, PARAMETER :: NSOA = 1
+      KPP_REAL :: Y_tlm(NVAR,NSOA)
+      KPP_REAL :: Y_adj(NVAR,1)
+      KPP_REAL :: Y_soa(NVAR,NSOA)
+      KPP_REAL :: Final(NVAR), FinalTlm(NVAR)
+      integer, save :: indexB = 0
+      
+      indexB = indexB + 1
+      print*,'BMUL #',indexB
+
+! Real and imaginary parts of complex inputs
+      xr(1:n) = DBLE( u(1:n) )
+      xi(1:n) = DIMAG( u(1:n) )
+
+      DO i=1,NVAR
+        RTOL(i) = 1.0d-4
+        ATOL(i) = 1.0d-3
+      END DO
+!~~~>  The cost function is 0.5*VAR(ind_COST, tF)**2
+      ind_COST = ind_O3
+
+! Forward & TLM integration
+      CALL Initialize()
+      Y_tlm(1:NVAR,1) = xr
+      Y_adj(1:NVAR,1) = 0.0d0
+      Y_soa(1:NVAR,1) = 0.0d0
+      CALL INTEGRATE_SOA( NSOA, VAR, Y_tlm, Y_adj, Y_soa, TSTART, TEND, &
+                            ATOL, RTOL)
+      Final(1:NVAR)    = VAR(1:NVAR)			    
+      FinalTlm(1:NVAR) = Y_tlm(1:NVAR)			    
+			    
+! Adjoint and SOA integration, real part
+      CALL Initialize()
+      Y_adj(1:NVAR,1) = 0.0d0; Y_adj(ind_COST,1) = Final(ind_COST)
+      Y_soa(1:NVAR,1) = 0.0d0; Y_soa(ind_COST,1) = FinalTlm(ind_COST)
+      Y_tlm(1:NVAR,1) = xr
+      CALL INTEGRATE_SOA( NSOA, VAR, Y_tlm, Y_adj, Y_soa, TSTART, TEND, &
+                            ATOL, RTOL)
+			    
+      yr(1:NVAR) = Y_soa(1:NVAR,1)			    
+
+
+! Forward & TLM integration
+      CALL Initialize()
+      Y_tlm(1:NVAR,1) = xi
+      Y_adj(1:NVAR,1) = 0.0d0
+      Y_soa(1:NVAR,1) = 0.0d0
+      CALL INTEGRATE_SOA( NSOA, VAR, Y_tlm, Y_adj, Y_soa, TSTART, TEND, &
+                            ATOL, RTOL)
+      Final(1:NVAR)    = VAR(1:NVAR)			    
+      FinalTlm(1:NVAR) = Y_tlm(1:NVAR)			    
+
+! Adjoint and SOA integration, imaginary part
+      CALL Initialize()
+      Y_adj(1:NVAR,1) = 0.0d0; Y_adj(ind_COST,1) = Final(ind_COST)
+      Y_soa(1:NVAR,1) = 0.0d0; Y_soa(ind_COST,1) = FinalTlm(ind_COST)
+      Y_tlm(1:NVAR,1) = xi
+      CALL INTEGRATE_SOA( NSOA, VAR, Y_tlm, Y_adj, Y_soa, TSTART, TEND, &
+                            ATOL, RTOL)
+			    
+      yi(1:NVAR) = Y_soa(1:NVAR,1)			    
+
+! Convert double outputs to complex
+      DO i=1,n
+        v(i) = DCMPLX( yr(i), yi(i) )
+      END DO	
+
+
+      print*,'   (END BMUL #',indexB,')'
+      
+      end subroutine BMUL 
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/drv/general_soa.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/drv/general_soa.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/drv/general_soa.f90	(revision 2696)
@@ -0,0 +1,116 @@
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!   Driver for the Second Order Adjoint (SOA) model
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+PROGRAM KPP_ROOT_SOA_Driver
+
+  USE KPP_ROOT_Model
+  USE KPP_ROOT_Initialize, ONLY: Initialize
+
+      KPP_REAL :: T, DVAL(NSPEC)
+      INTEGER :: i, j, ind_1 = 1, ind_2 = 2
+      ! INTEGER :: ind_1 = ind_NO2, ind_2 = ind_O3
+ 
+!~~~>  Number of second order adjoints
+!      i.e., number of vectors U_i s.t. SOA_i = Hess*U_i
+!      1 <= i <= NSOA
+
+      INTEGER, PARAMETER :: NSOA = 2
+
+      KPP_REAL :: Y_tlm(NVAR,NSOA)
+      KPP_REAL :: Y_adj(NVAR)
+      KPP_REAL :: Y_soa(NVAR,NSOA)
+  
+      STEPMIN = 0.0d0
+      STEPMAX = 0.0d0
+
+      DO i=1,NVAR
+        RTOL(i) = 1.0d-4
+        ATOL(i) = 1.0d-3
+      END DO
+     
+      CALL Initialize()
+!~~~>  Tangent linear variable values at the initial time
+      Y_tlm(1:NVAR,1:NSOA) = 0.0d0
+      Y_tlm(ind_1,1) = 1.0d0
+      Y_tlm(ind_2,2) = 1.0d0
+!~~~>  Adjoint values at the final time
+      Y_adj(1:NVAR) = 0.0d0
+      Y_adj(ind_1)  = 1.0d0
+!~~~>  2nd order adjoint values at the final time      
+      Y_soa(1:NVAR,1:NSOA) = 0.0d0
+      Y_soa(ind_1,1) = 1.0d0
+      Y_soa(ind_2,2) = 1.0d0
+
+!~~~~~~~~~~~ Time LOOP ~~~~~~~~~~~~~
+
+      CALL InitSaveData()
+
+      T = TSTART
+
+        CALL GetMass( C, DVAL )
+        WRITE(6,991) (T-TSTART)/(TEND-TSTART)*100, T,      &
+                    (TRIM(SPC_NAMES(MONITOR(i))),          &
+                      C(MONITOR(i))/CFACTOR, i=1,NMONITOR),&
+                    (TRIM(SMASS(i)),DVAL(i)/CFACTOR, i=1,NMASS)
+
+        CALL SaveData()
+
+        CALL Update_SUN() 
+        CALL Update_RCONST()
+
+        CALL INTEGRATE_SOA( NSOA, VAR, Y_tlm, Y_adj, Y_soa, T, TEND, &
+                            ATOL, RTOL)
+
+
+      CALL GetMass( C, DVAL )
+      WRITE(6,991) (T-TSTART)/(TEND-TSTART)*100, T,        &
+                    (TRIM(SPC_NAMES(MONITOR(i))),          &
+                      C(MONITOR(i))/CFACTOR, i=1,NMONITOR),&
+                    (TRIM(SMASS(i)),DVAL(i)/CFACTOR, i=1,NMASS)
+
+      CALL SaveData()
+
+!~~~~~~~~~~~ END Time LOOP ~~~~~~~~~~~~~
+
+      WRITE(6,*) '**************************************************'
+      WRITE(6,*) ' Results were written in the files'
+      WRITE(6,*) ' KPP_ROOT_[TLM|ADJ|SOA].m'
+      WRITE(6,*) '**************************************************'
+      
+      PRINT 995,TRIM(SPC_NAMES(ind_1)),       &
+            TRIM(SPC_NAMES(ind_1)),           &
+            Y_tlm(ind_1,1), Y_adj(ind_1)
+      PRINT 995,TRIM(SPC_NAMES(ind_1)),       &
+            TRIM(SPC_NAMES(ind_2)),           &
+            Y_tlm(ind_1,2), Y_adj(ind_2)
+
+      DO j=1,NSOA
+         PRINT 997, j,(TRIM(SPC_NAMES(i)),Y_soa(i,j),i=1,NVAR)
+      END DO
+      
+      OPEN(53,FILE='KPP_ROOT_TLM.m')
+      DO j=1, NSOA
+         WRITE(53,993) (Y_tlm(i,j),i=1,NVAR)
+      END DO
+      CLOSE(53)
+      
+      OPEN(54,FILE='KPP_ROOT_ADJ.m')
+      WRITE(54,993) (Y_adj(i),i=1,NVAR)
+      CLOSE(54)
+      
+      OPEN(55,FILE='KPP_ROOT_SOA.m')
+      DO j=1, NSOA
+         WRITE(55,993) (Y_soa(i,j),i=1,NVAR)
+      END DO
+      CLOSE(55)
+      
+ 991  FORMAT(F6.1,'%. T=',E10.3,3X,20(A,'=',E10.4,';',1X))
+ 993  FORMAT(1000(E24.16,2X))
+ 995  FORMAT('d[',A,'](tf)/d[',A,'](t0). TLM=',E14.7,'  ADJ=',E14.7)
+ 997  FORMAT('2nd ADJ (',I3,'): ',200(A,'=',E10.3,'; '))
+
+      CALL CloseSaveData()
+
+END PROGRAM KPP_ROOT_SOA_Driver
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/drv/general_soa_check.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/drv/general_soa_check.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/drv/general_soa_check.f90	(revision 2696)
@@ -0,0 +1,231 @@
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!   Driver to test the Second Order Adjoint (SOA) model
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+PROGRAM KPP_ROOT_Driver
+
+  USE KPP_ROOT_Model
+  USE KPP_ROOT_Initialize, ONLY: Initialize
+
+      KPP_REAL :: T, DVAL(NSPEC), DV(NVAR)
+      KPP_REAL :: ADJ1(NVAR), ADJ2(NVAR)
+      KPP_REAL :: FinalRef(NVAR), FinalRef_tlm(NVAR)
+      KPP_REAL :: FinalPert(NVAR), FinalPert_tlm(NVAR)
+      KPP_REAL :: Hs(NVAR,NVAR), AdjTlm(NVAR,NVAR), SOA(NVAR)
+      INTEGER :: i, j, ind_1 = 1, ind_2 = 2, ind_COST
+      LOGICAL :: LHessian, LAdjTlm
+ 
+!~~~>  Number of second order adjoints
+!      i.e., number of vectors U_i s.t. Sigma_i = Hess*U_i
+!      1 <= i <= NSOA
+
+      INTEGER, PARAMETER :: NSOA = 1
+
+      KPP_REAL :: Y_tlm(NVAR,NSOA)
+      KPP_REAL :: Y_adj(NVAR,1)
+      KPP_REAL :: Y_soa(NVAR,NSOA)
+  
+      STEPMIN = 0.0d0
+      STEPMAX = 0.0d0
+
+      DO i=1,NVAR
+        RTOL(i) = 1.0d-4
+        ATOL(i) = 1.0d-3
+      END DO
+     
+     
+!~~~>  The cost function is 0.5*VAR(ind_COST, tF)**2
+      ind_COST = ind_O3
+     
+     
+!~~~>  Compute the full Hessian NVARxNVAR (or not)
+      LHessian = .TRUE.
+     
+     
+!~~~>  Compute the full Adjoint*Tlm NVARxNVAR (or not)
+      LAdjTlm = .TRUE.
+     
+!~~~~~~~~~~~~~~~~~~~~~~~~
+      PRINT*,'FIRST RUN, Reference'
+      CALL Initialize()
+      DV = 0.0d0
+      DV(ind_NO2) =  0.02*VAR(ind_NO2)
+      DV(ind_NO)  =  0.04*VAR(ind_NO)
+!      DV(ind_PAN) = -0.2*VAR(ind_PAN)
+!      DV(ind_O3)  =  0.1*VAR(ind_O3)
+!      DO i=1,NVAR
+!        DV(i) = rand()*VAR(i)
+!      END DO	
+      Y_tlm(1:NVAR,1) = DV
+      Y_adj(1:NVAR,1) = 0.0d0
+      Y_soa(1:NVAR,1:NSOA) = 0.0d0
+      CALL INTEGRATE_SOA( NSOA, VAR, Y_tlm, Y_adj, Y_soa, TSTART, TEND, &
+                            ATOL, RTOL)
+      FinalRef     = VAR
+      FinalRef_tlm(1:NVAR) = Y_tlm(1:NVAR,1)
+!~~~~~~~~~~~~~~~~~~~~~~~~   
+     
+!~~~~~~~~~~~~~~~~~~~~~~~~
+      PRINT*,'FIRST RUN, Perturbed'
+      CALL Initialize()
+      VAR = VAR + DV
+      Y_tlm(1:NVAR,1) = DV
+      Y_adj(1:NVAR,1) = 0.0d0
+      Y_soa(1:NVAR,1:NSOA) = 0.0d0
+      CALL INTEGRATE_SOA( NSOA, VAR, Y_tlm, Y_adj, Y_soa, TSTART, TEND, &
+                            ATOL, RTOL)
+      FinalPert     = VAR
+      FinalPert_tlm(1:NVAR) = Y_tlm(1:NVAR,1)
+!~~~~~~~~~~~~~~~~~~~~~~~~
+    
+!~~~~~~~~~~~~~~~~~~~~~~~~
+      PRINT*,'PERTURBED RUN'
+      CALL Initialize()
+      VAR = VAR + DV
+      Y_tlm(1:NVAR,1) = DV
+      Y_adj(1:NVAR,1) = 0.0d0
+      Y_adj(ind_COST,1) = FinalPert(ind_COST)
+      Y_soa(1:NVAR,1) = 0.0d0
+      Y_soa(ind_COST,1) = FinalPert_tlm(ind_COST)
+      CALL INTEGRATE_SOA( NSOA, VAR, Y_tlm, Y_adj, Y_soa, TSTART, TEND, &
+                            ATOL, RTOL)
+      F2 = VAR(ind_COST)**2/2
+      ADJ2 = Y_adj(:,1)
+      PRINT*,'PERTURBED FUN = ',F2
+!~~~~~~~~~~~~~~~~~~~~~~~~      
+      
+!~~~~~~~~~~~~~~~~~~~~~~~~
+      PRINT*,'REFERENCE RUN'
+      CALL Initialize()
+      Y_tlm(1:NVAR,1) = DV
+      Y_adj(1:NVAR,1) = 0.0d0
+      Y_adj(ind_COST,1) = FinalRef(ind_COST)
+      Y_soa(1:NVAR,1) = 0.0d0
+      Y_soa(ind_COST,1) = FinalRef_tlm(ind_COST)
+      CALL INTEGRATE_SOA( NSOA, VAR, Y_tlm, Y_adj, Y_soa, TSTART, TEND, &
+                            ATOL, RTOL)
+      F1 = VAR(ind_COST)**2/2
+      ADJ1 = Y_adj(:,1)
+      SOA  = Y_soa(:,1)
+      PRINT*,'REFERENCE FUN = ',F1
+!~~~~~~~~~~~~~~~~~~~~~~~~   
+      
+!~~~~~~~~~~~~~~~~~~~~~~~~
+      IF (LHessian) THEN
+      DO i = 1,NVAR
+        PRINT*,'.... FULL HESSIAN column ',i,' of ',NVAR
+        CALL Initialize()
+        Y_tlm(1:NVAR,1) = 0.0d0
+        Y_tlm(i,1)      = 1.0d0
+        Y_adj(1:NVAR,1) = 0.0d0
+        Y_adj(ind_COST,1) = FinalRef(ind_COST)
+        Y_soa(1:NVAR,1) = 0.0d0
+        Y_soa(ind_COST,1) = FinalRef_tlm(ind_COST)
+        CALL INTEGRATE_SOA( NSOA, VAR, Y_tlm, Y_adj, Y_soa, TSTART, TEND, &
+                            ATOL, RTOL)
+        CALL Initialize()
+        Y_soa(1:NVAR,1) = 0.0d0
+        Y_soa(ind_COST,1) = Y_tlm(ind_COST,1)
+        Y_tlm(1:NVAR,1) = 0.0d0
+        Y_tlm(i,1)      = 1.0d0
+        Y_adj(1:NVAR,1) = 0.0d0
+        Y_adj(ind_COST,1) = FinalRef(ind_COST)
+        CALL INTEGRATE_soa(Nsoa, VAR, Y_tlm, Y_adj, Y_soa, TSTART, TEND, &
+                            ATOL, RTOL)
+	Hs(1:NVAR,i) = Y_soa(1:NVAR,1)
+      END DO
+      ! Write Hessian in file
+      OPEN(150,FILE='KPP_ROOT_Hess.m')
+      DO i=1,NVAR
+        WRITE(150,224) (Hs(i,j),j=1,NVAR)
+      END DO  
+      CLOSE(150)      
+      END IF
+!~~~~~~~~~~~~~~~~~~~~~~~~
+    
+!~~~~~~~~~~~~~~~~~~~~~~~~
+      IF (LAdjTlm) THEN
+      DO i = 1,NVAR
+        PRINT*,'.... FULL ADJ*TLM column ',i,' of ',NVAR
+        CALL Initialize()
+        Y_tlm(1:NVAR,1) = 0.0d0
+        Y_tlm(i,1)      = 1.0d0
+        Y_adj(1:NVAR,1) = 0.0d0
+        Y_adj(ind_COST,1) = FinalRef(ind_COST)
+        Y_soa(1:NVAR,1) = 0.0d0
+        Y_soa(ind_COST,1) = FinalRef_tlm(ind_COST)
+        CALL INTEGRATE_SOA( NSOA, VAR, Y_tlm, Y_adj, Y_soa, TSTART, TEND, &
+                            ATOL, RTOL)
+        CALL Initialize()
+        Y_adj(1:NVAR,1) = Y_tlm(1:NVAR)
+        Y_soa(1:NVAR,1) = 0.0d0
+        Y_tlm(1:NVAR,1) = 0.0d0
+        CALL INTEGRATE_soa(Nsoa, VAR, Y_tlm, Y_adj, Y_soa, TSTART, TEND, &
+                            ATOL, RTOL)
+	AdjTlm(1:NVAR,i) = Y_adj(1:NVAR,1)
+      END DO
+      ! Write Hessian in file
+      OPEN(150,FILE='KPP_ROOT_AdjTlm.m')
+      DO i=1,NVAR
+        WRITE(150,224) (AdjTlm(i,j),j=1,NVAR)
+      END DO  
+      CLOSE(150)      
+      END IF
+!~~~~~~~~~~~~~~~~~~~~~~~~
+
+      WRITE(6,*) 'FD versus SOA:'      
+      DO i=1,NVAR
+        WRITE(6,222) ADJ2(i)-ADJ1(i), SOA(i),           &
+	  ABS(ADJ2(i)-ADJ1(i)-SOA(i))/                  &
+          MAX(ABS(ADJ2(i)-ADJ1(i)),ABS(SOA(i)),1.d-16), &
+	  TRIM(SPC_NAMES(i))
+      END DO  
+222   FORMAT('FD=',E12.5,'   soa=',E12.5,'  Diff=',E12.5,'  (',A,')')      
+
+      WRITE(6,FMT="(A14,1X,E14.7)") 'F2-F1 = ',F2-F1
+      WRITE(6,FMT="(A14,1X,E14.7)") 'First = ',DOT_PRODUCT(ADJ1,DV)      
+      WRITE(6,FMT="(A14,1X,E14.7)") 'F2-F1-First = ',F2-F1-DOT_PRODUCT(ADJ1,DV)      
+      WRITE(6,FMT="(A14,1X,E14.7)") 'Second = ',DOT_PRODUCT(SOA,DV)/2      
+
+      IF (LHessian) THEN
+      WRITE(6,*) 'The Hessian:'      
+      DO i=1,NVAR
+        WRITE(6,223) (Hs(i,j),j=1,NVAR)
+      END DO  
+223   FORMAT(100(E12.5,1X))
+      END IF
+
+
+      OPEN(150,FILE='KPP_ROOT_Cost.m')
+      WRITE(150,FMT="(A14,1X,E14.7)") 'F2-F1 = ',F2-F1
+      WRITE(150,FMT="(A14,1X,E14.7)") 'First = ',DOT_PRODUCT(ADJ1,DV)      
+      WRITE(150,FMT="(A14,1X,E14.7)") 'F2-F1-First = ',F2-F1-DOT_PRODUCT(ADJ1,DV)      
+      WRITE(150,FMT="(A14,1X,E14.7)") 'Second = ',DOT_PRODUCT(SOA,DV)/2      
+      CLOSE(150)      
+
+      OPEN(150,FILE='KPP_ROOT_FD.m')
+      DO i=1,NVAR
+        WRITE(150,224) ADJ2(i)-ADJ1(i), SOA(i),        &
+	  ABS(ADJ2(i)-ADJ1(i)-SOA(i))/                 &
+          MAX(ABS(ADJ2(i)-ADJ1(i)),ABS(SOA(i)),1.d-16)
+      END DO  
+      CLOSE(150)      
+
+      OPEN(150,FILE='KPP_ROOT_Sol.m')
+      DO i=1,NVAR
+        WRITE(150,224) FinalRef(i)
+      END DO  
+      CLOSE(150)      
+
+      OPEN(150,FILE='KPP_ROOT_Adj.m')
+      DO i=1,NVAR
+        WRITE(150,224) ADJ1(i)
+      END DO  
+      CLOSE(150)      
+
+224   FORMAT(10000(E24.14,1X))      
+
+
+END PROGRAM KPP_ROOT_Driver
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/drv/general_stochastic.c
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/drv/general_stochastic.c	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/drv/general_stochastic.c	(revision 2696)
@@ -0,0 +1,64 @@
+int InitSaveData();
+int SaveData();
+int CloseSaveData();
+int GenerateMatlab( char * prefix );
+void GetMass( double CL[], double Mass[] );
+void INTEGRATE( double TIN, double TOUT );
+void Gillespie(int Nssa, double Volume, double* T, int NmlcV[], int NmlcF[]);
+void Update_RCONST();
+
+/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+int main()
+/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+{
+/*~~~> Output results file */
+  FILE* fpDat;
+/*~~~> No of molecules */
+  int NmlcV[NVAR], NmlcF[NFIX];
+/*~~~> No of reaction events per output step */
+  int Nevents;
+/*~~~> Local variables */
+  int i;
+  double T;
+
+  Initialize();  
+      
+  fpDat = fopen("KPP_ROOT_stochastic.dat", "w");
+
+  /* Translate initial values from conc. to molecules */
+  /* Volume = 100.0; */
+  Nevents = 20;
+  for( i = 0; i < NVAR; i++ ) 
+    NmlcV[i] = (int)(Volume*VAR[i]);
+  for( i = 0; i < NFIX; i++ ) 
+    NmlcF[i] = (int)(Volume*FIX[i]);
+  
+/*~~~> Begin Time Loop ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+  T = TSTART;
+  while (T <= TEND) {
+    printf("\n%6.1f%% %10.4f   ", (T-TSTART)/(TEND-TSTART)*100, T );
+    for( i = 0; i < NVAR; i++ ) 
+      printf( "%s=%d  ", SPC_NAMES[i], NmlcV[i] );
+
+    fprintf(fpDat,"\n%g ", T );
+    for( i = 0; i < NVAR; i++ ) 
+        fprintf(fpDat,"%d  ", NmlcV[i]);
+   
+    Gillespie( Nevents, Volume, &T , NmlcV, NmlcF );
+    
+  }  /* while (T <= TEND) */  
+/*~~~> End Time Loop ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+
+  fprintf(fpDat,"\n%g ", T );
+  for( i = 0; i < NVAR; i++ ) 
+      fprintf(fpDat,"%d  ", NmlcV[i]);
+  fprintf(fpDat,"\n");
+  fclose(fpDat);
+  
+  printf("\n");
+
+  return 0;
+
+}
+/*~~~> End of MAIN function ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/drv/general_stochastic.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/drv/general_stochastic.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/drv/general_stochastic.f90	(revision 2696)
@@ -0,0 +1,63 @@
+PROGRAM KPP_ROOT_Driver
+
+  USE KPP_ROOT_Model
+  USE KPP_ROOT_Initialize, ONLY: Initialize
+
+  IMPLICIT NONE
+      
+!~~~> No. of Stochastic events per simulation snaphot      
+      INTEGER :: Nevents
+!~~~> No. of Stochastic tau-steps simulation snaphot      
+      INTEGER :: Nsteps
+!~~~> No. of Molecules      
+      INTEGER :: NmlcV(NVAR), NmlcF(NFIX)
+!~~~> Random numbers     
+      REAL :: r1, r2
+!~~~> Local variables     
+      INTEGER :: i
+      KPP_REAL :: T, Tau, SCT(NREACT)
+
+!~~~~> Initialize and prescribe volume and no. of events
+      CALL Initialize()
+      Volume  = 1000.0d0
+      Nevents = 5000
+      Nsteps = 10
+      Tau = (TEND-TSTART)/100.0
+!~~~~~~~~~~~~~~~~     
+      
+!~~~> Translate initial values from conc. to NmlcVules
+      NmlcV(1:NVAR) = INT(Volume*VAR(1:NVAR))
+      NmlcF(1:NFIX) = INT(Volume*FIX(1:NFIX))
+!~~~> Compute the stochastic reaction rates 
+      CALL Update_RCONST()
+      CALL StochasticRates( RCONST, Volume, SCT )   
+
+!~~~> Save initial data
+      OPEN(10, file='KPP_ROOT_stochastic.dat')
+      WRITE(10,992) T, (NmlcV(i),i=1,NVAR)
+            
+!~~~> TIME loop starts
+      T = TSTART
+kron: DO WHILE (T < TEND)
+
+        WRITE(6,991) T,(SPC_NAMES(i),NmlcV(i), i=1,NVAR)
+
+!~~~> Choose here one of the following time-stepping routines
+        CALL Gillespie(Nevents, T, SCT, NmlcV, NmlcF)
+!        CALL TauLeap(Nsteps, Tau, T, SCT, NmlcV, NmlcF)
+        
+        WRITE(10,992) T, (NmlcV(i),i=1,NVAR)
+        
+      END DO kron
+!~~~> TIME loop ends
+
+      WRITE(6,991) T,(SPC_NAMES(i), NmlcV(i), i=1,NVAR)
+
+      CLOSE(10)
+      
+991   FORMAT('T=',F12.3,20(A,'=',I5,'; '))
+992   FORMAT(E24.14,200(1X,I12))
+
+
+END PROGRAM KPP_ROOT_Driver
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/drv/general_tlm.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/drv/general_tlm.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/drv/general_tlm.f90	(revision 2696)
@@ -0,0 +1,132 @@
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!   Driver for the tangent linear model (TLM)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+PROGRAM KPP_ROOT_TLM_Driver
+
+  USE KPP_ROOT_Model
+  USE KPP_ROOT_Initialize, ONLY: Initialize
+
+      KPP_REAL :: T, DVAL(NSPEC)
+      INTEGER :: i, j, ind_1 = 1, ind_2 = 2
+      ! INTEGER :: ind_1 = ind_NO2, ind_2 = ind_O3
+
+!~~~>  NTLM = Number of sensitivity coefficients to compute
+!      Note: this value is set for sensitivities w.r.t. all initial values
+!            the setting may have to be changed for other applications
+      INTEGER, PARAMETER :: NTLM = NVAR
+      KPP_REAL, DIMENSION(NVAR,NTLM) ::  Y_tlm, ATOL_tlm, RTOL_tlm
+
+  
+!~~~>  Control (in) and status (out) vectors for the integrator
+      INTEGER,  DIMENSION(20) :: ICNTRL, ISTATUS
+      KPP_REAL, DIMENSION(20) :: RCNTRL, RSTATUS
+
+      STEPMIN = 0.0d0
+      STEPMAX = 0.0d0
+
+!~~~> Tolerances for calculating concentrations       
+      DO i=1,NVAR
+        RTOL(i) = 1.0d-4
+        ATOL(i) = 1.0d-3
+      END DO
+      
+!~~~> Tolerances for calculating sensitivities 
+!     are used for controlling sensitivity truncation error
+!     and for solving the linear sensitivity equations by iterations  
+!     Note: Sensitivities typically span many orders of magnitude
+!           and a careful tuning of ATOL_tlm may be necessary     
+      DO j=1,NTLM
+        DO i=1,NVAR
+          RTOL_tlm(i,j) = 1.0d-4
+          ATOL_tlm(i,j) = 1.0d-3
+        END DO
+      END DO
+     
+      CALL Initialize()
+!~~~> Note: the initial values below are for sensitivities 
+!           w.r.t. initial values;
+!           they may have to be changed for other applications
+      Y_tlm(1:NVAR,1:NTLM) = 0.0d0
+      DO j=1,NTLM
+        Y_tlm(j,j) = 1.0d0
+      END DO
+
+!~~~> Default control options
+      ICNTRL(1:20) = 0
+      RCNTRL(1:20) = 0.0d0       
+
+!~~~> Begin time loop
+
+      CALL InitSaveData()
+
+      T = TSTART
+      
+kron: DO WHILE (T < TEND)
+       
+        TIME = T
+        CALL GetMass( C, DVAL )
+        WRITE(6,991) (T-TSTART)/(TEND-TSTART)*100, T,      &
+                    (TRIM(SPC_NAMES(MONITOR(i))),          &
+                      C(MONITOR(i))/CFACTOR, i=1,NMONITOR),&
+                    (TRIM(SMASS(i)),DVAL(i)/CFACTOR, i=1,NMASS)
+
+        CALL SaveData()
+        CALL Update_SUN() 
+        CALL Update_RCONST()
+
+        CALL INTEGRATE_TLM( NTLM, VAR, Y_tlm, T, T+DT,     &
+                            ATOL_tlm, RTOL_tlm,            &
+                            ICNTRL, RCNTRL, ISTATUS, RSTATUS )
+
+        T = T+DT
+
+      END DO kron
+
+      CALL GetMass( C, DVAL )
+      WRITE(6,991) (T-TSTART)/(TEND-TSTART)*100, T,        &
+                  (TRIM(SPC_NAMES(MONITOR(i))),            &
+                    C(MONITOR(i))/CFACTOR, i=1,NMONITOR),  &
+                  (TRIM(SMASS(i)),DVAL(i)/CFACTOR, i=1,NMASS)
+
+      CALL SaveData()
+
+!~~~> End time loop ~~~~~~~~~~
+
+      OPEN(20, FILE='KPP_ROOT_TLM_results.m')
+      WRITE(6,*) '**************************************************'
+      WRITE(6,*) ' Concentrations and Sensitivities at final time '
+      WRITE(6,*) ' were written in the file KPP_ROOT_TLM_results.m'
+      WRITE(6,*) '**************************************************'
+      DO j=1,NTLM
+        WRITE(20,993) ( Y_tlm(i,j), i=1,NVAR )          
+      END DO
+
+      CALL CloseSaveData()
+
+      WRITE(6,995) TRIM(SPC_NAMES(ind_1)),TRIM(SPC_NAMES(ind_1)), &
+                   Y_tlm(ind_1,1)
+      WRITE(6,995) TRIM(SPC_NAMES(ind_2)),TRIM(SPC_NAMES(ind_2)), &
+                   Y_tlm(ind_2,2)
+      WRITE(6,995) TRIM(SPC_NAMES(ind_1)),TRIM(SPC_NAMES(ind_2)), &
+                   Y_tlm(ind_2,1)
+      WRITE(6,995) TRIM(SPC_NAMES(ind_2)),TRIM(SPC_NAMES(ind_1)), &
+                   Y_tlm(ind_1,2)
+                  
+                 
+ 991  FORMAT(F6.1,'%. T=',E10.3,3X,20(A,'=',E10.4,';',1X))
+ 993  FORMAT(1000(E24.16,2X))
+ 995  FORMAT('TLM: d[',A,'](tf)/d[',A,'](t0)=',E14.7)
+ 
+ 
+      !~~~> The entire matrix of sensitivities
+      WRITE(6,996) ( 'd ',TRIM(SPC_NAMES(i)), i=1,NVAR ) 
+      DO j=1,NTLM
+        WRITE(6,997) TRIM(SPC_NAMES(j)),( Y_tlm(i,j), i=1,NVAR )          
+      END DO
+ 996  FORMAT(12X,100('  ',A2,A6,4X))
+ 997  FORMAT('d/d',A6,' = ',100(E12.5,2X))
+ 
+
+END PROGRAM KPP_ROOT_TLM_Driver
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/drv/main.c
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/drv/main.c	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/drv/main.c	(revision 2696)
@@ -0,0 +1,52 @@
+void INTEGRATE( double TIN, double TOUT );
+
+void main()
+{
+KPP_REAL rtols;
+KPP_REAL Tstart, Tend, DT;
+FILE * fp;
+int i;
+ 
+/* ---- TIME VARIABLES ------------------ */
+
+  rtols = 1e-3;
+  for( i = 0; i < NVAR; i++ ) {
+    RTOL[i] = rtols;
+    ATOL[i] = 1E-18;
+  }
+     
+  Initialize();
+      
+  fp = fopen("Extrapd.m", "w");
+  fprintf( fp, "ed=[\n");
+       
+  Tstart = 3600*12;
+  Tend = Tstart + 3600*24*5;
+  STEPMIN = 0.001;
+  STEPMAX = 900;
+  DT = 3600.;
+  TEMP = 236.21;
+      
+/* -- BELOW THIS LIMIT USE TAYLOR INSTEAD OF EXP --- */
+/* ********** TIME LOOP **************************** */
+
+  TIME = Tstart;
+  while (TIME <= Tend) {
+
+    printf("\nMonitor: ");
+    for( i = 0; i < NMONITOR; i++ ) 
+      printf( "%12.8g  ", C[ MONITOR[i] ]/CFACTOR );
+
+    fprintf( fp, "\n%6.1f ", (TIME-Tstart)/3600.0 );
+    for( i = 0; i < NLOOKAT; i++ ) 
+      fprintf( fp, "%24.16e ", C[ LOOKAT[i] ]/CFACTOR );
+
+    INTEGRATE( DT );
+  }
+
+/* *********** END TIME LOOP *********************** */
+
+  fprintf(fp, "\n];");
+  fclose( fp );
+  printf("\n");
+}
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/drv/main.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/drv/main.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/drv/main.f	(revision 2696)
@@ -0,0 +1,53 @@
+      PROGRAM driver
+
+      INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Global.h'
+
+      INTEGER i
+  
+C ---- TIME VARIABLES ------------------      
+
+      RTOLS = 1e-3
+      do i=1,NVAR
+        RTOL(i) = RTOLS
+        ATOL(i) = 1E-18
+      end do
+     
+      CALL Initialize()
+      
+      open(10, file='Extrapd.m')
+      write(10,*) 'ed=['
+       
+      TSTART = 3600*12
+      TEND = TSTART + 3600*24*5
+      STEPMIN = 0.01
+      STEPMAX = 900
+      DT = 3600.
+      TEMP = 236.21
+      
+C -- BELOW THIS LIMIT USE TAYLOR INSTEAD OF EXP ---
+C ********** TIME LOOP *************************
+      TIME = TSTART
+      do while (TIME .le. TEND)
+
+        write(6,991) (C(MONITOR(i))/CFACTOR, i=1,NMONITOR)
+
+        write(10,992) (TIME-TSTART)/3600.D0, 
+     *                (C(LOOKAT(i))/CFACTOR, i=1,NLOOKAT)
+
+        call Update_SUN() 
+        call Update_RCONST()
+
+        call INTEGRATE( TIME, TIME+DT )
+
+      end do
+C *********** END TIME LOOP ********
+
+      write(10,*) '];'
+      close(10)
+      STOP
+
+991   FORMAT('Monitor:',10(1X,E12.6))
+992   FORMAT(F6.1,100(1X,D24.16))
+      END
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/MCM/mcm.kpp
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/MCM/mcm.kpp	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/MCM/mcm.kpp	(revision 2696)
@@ -0,0 +1,22511 @@
+{********************************************************************* ;
+* A citation to the MCM website and the relevant mechanism          * ;
+* construction protocols should be given in any publication using   * ;
+* information obtained from this source, using the following or     * ;
+* comparable wording:                                               * ;
+* The chemical mechanistic information was taken from the Master    * ;
+* Chemical Mechanism, MCM v3.2 (ref), via website:                  * ;
+* http://mcm.leeds.ac.uk/MCM.                                       * ;
+* The reference should be: (Jenkin et al., Atmos. Environ., 31, 81, * ;
+* 1997; Saunders et al., Atmos. Chem. Phys., 3, 161, 2003), for     * ;
+* non aromatic schemes; and (Jenkin et al., Atmos. Chem. Phys., 3,  * ;
+* 181, 2003; Bloss et al., Atmos. Chem. Phys., 5, 641, 2005), for   * ;
+* aromatic schemes.                  * ;
+********************************************************************* ;}
+#INLINE F90_GLOBAL 
+ REAL(dp)::M, N2, O2, RO2, H2O 
+ #ENDINLINE {above lines go into MODULE KPP_ROOT_Global}
+#INCLUDE atoms 
+#DEFVAR
+C918NO3 = IGNORE ;
+C134CO = IGNORE ;
+NBUTACET = IGNORE ;
+C124O2 = IGNORE ;
+PROL1MPAN = IGNORE ;
+BCCOOH = IGNORE ;
+IPRHOCO2H = IGNORE ;
+TM124NO2O = IGNORE ;
+C3EODBCO2H = IGNORE ;
+DMEBPOXMUC = IGNORE ;
+DNMXYOLOOH = IGNORE ;
+C4ME2OHNO3 = IGNORE ;
+C920CO3 = IGNORE ;
+MIPKAO = IGNORE ;
+BUT2OLAO = IGNORE ;
+C623O = IGNORE ;
+M3BU2OLOOH = IGNORE ;
+METLBIPRO2 = IGNORE ;
+PXYCATECH = IGNORE ;
+M3HEXBNO3 = IGNORE ;
+C124OH = IGNORE ;
+PRCOOMCHO = IGNORE ;
+PTLQONE = IGNORE ;
+TM123MUCO = IGNORE ;
+C137CO = IGNORE ;
+NO2 = IGNORE ;
+NO3 = IGNORE ;
+MBOAOOH = IGNORE ;
+C4M2NO33O = IGNORE ;
+EPXDLCO2H = IGNORE ;
+BOXCOCOMO = IGNORE ;
+ME3BU2OLO = IGNORE ;
+CLOHCO3H = IGNORE ;
+BOXCOCOME = IGNORE ;
+MALDIAL = IGNORE ;
+C6PAN21 = IGNORE ;
+DEMPHOLOOH = IGNORE ;
+C6PAN23 = IGNORE ;
+C6PAN22 = IGNORE ;
+HO13C5O2 = IGNORE ;
+EBZMUCOOH = IGNORE ;
+NMETOL1O2 = IGNORE ;
+DMKOHOOH = IGNORE ;
+C9M2CO6O2 = IGNORE ;
+IPBZBPR2OH = IGNORE ;
+MPRK = IGNORE ;
+NOA = IGNORE ;
+BIACETOOH = IGNORE ;
+HEPTOH = IGNORE ;
+C6CO4MEDB = IGNORE ;
+ACBUONEAO = IGNORE ;
+PEBQONE = IGNORE ;
+C42OH = IGNORE ;
+O1D = IGNORE ;
+C63NO3 = IGNORE ;
+TBOCOCH2O = IGNORE ;
+NPETOLO2 = IGNORE ;
+NPTLQO = IGNORE ;
+C514OH = IGNORE ;
+C620O2 = IGNORE ;
+ACETC2CO2H = IGNORE ;
+C917NO3 = IGNORE ;
+METHACETO2 = IGNORE ;
+C44O = IGNORE ;
+C620OH = IGNORE ;
+C711O2 = IGNORE ;
+CNO3OCL = IGNORE ;
+NEBNZOLOOH = IGNORE ;
+C514O2 = IGNORE ;
+NPETOLOH = IGNORE ;
+C731OOH = IGNORE ;
+IC3H7O = IGNORE ;
+HO2C54O = IGNORE ;
+C42O2 = IGNORE ;
+NC524OOH = IGNORE ;
+C51NO324CO = IGNORE ;
+C62NO335CO = IGNORE ;
+C1011O = IGNORE ;
+C925OOH = IGNORE ;
+H14CO23C4 = IGNORE ;
+C624CO = IGNORE ;
+T124CAT1O2 = IGNORE ;
+CO24M3C5 = IGNORE ;
+H3C2C4CO2H = IGNORE ;
+CO2C4CHO = IGNORE ;
+MIBKBOOH = IGNORE ;
+NPETLQO2 = IGNORE ;
+C6H5OOH = IGNORE ;
+C3MDIALO = IGNORE ;
+HEPTO2 = IGNORE ;
+PXYMUCNO3 = IGNORE ;
+H13C43CO3 = IGNORE ;
+CHOC4PAN = IGNORE ;
+C624NO3 = IGNORE ;
+CO25C74OOH = IGNORE ;
+C514O = IGNORE ;
+C1010OOH = IGNORE ;
+DIIPRETOH = IGNORE ;
+ME2BUOLO = IGNORE ;
+C4MCODBCO2 = IGNORE ;
+C4MCODBCO3 = IGNORE ;
+C46PAN = IGNORE ;
+TMB2FUOOH = IGNORE ;
+MIBKHO4O = IGNORE ;
+CL2OHCH2O = IGNORE ;
+H3C25CCO3H = IGNORE ;
+ETBEAOH = IGNORE ;
+C126NO3 = IGNORE ;
+ETBEAO2 = IGNORE ;
+HM22C4O = IGNORE ;
+C823OOH = IGNORE ;
+C616O2 = IGNORE ;
+C88OOH = IGNORE ;
+C1013CO2H = IGNORE ;
+DIIPRETO2 = IGNORE ;
+M2BKAOOH = IGNORE ;
+MMALANHY = IGNORE ;
+C312COCO3H = IGNORE ;
+MEK2OO = IGNORE ;
+C7EDCOOH = IGNORE ;
+NMXYQO2 = IGNORE ;
+PXYL1O2 = IGNORE ;
+C827OOH = IGNORE ;
+NDNPBZLOOH = IGNORE ;
+CO23C5 = IGNORE ;
+CO23C6 = IGNORE ;
+TOL1O = IGNORE ;
+CH3SOO2 = IGNORE ;
+IPROPOLPER = IGNORE ;
+NDNPETLOOH = IGNORE ;
+C61O = IGNORE ;
+C3NO3COOOH = IGNORE ;
+C1312O = IGNORE ;
+PROL1MCO3 = IGNORE ;
+CH3CHOHCHO = IGNORE ;
+C78O = IGNORE ;
+MNO3COC4O = IGNORE ;
+ISOPDO2 = IGNORE ;
+MACRNB = IGNORE ;
+COHM2CO3H = IGNORE ;
+TL4OHNO2O2 = IGNORE ;
+PHIC3O = IGNORE ;
+OTNCATECO = IGNORE ;
+OTNCATECH = IGNORE ;
+DM124O = IGNORE ;
+PTCATEC1O = IGNORE ;
+DMMBO2 = IGNORE ;
+MTBKNO3 = IGNORE ;
+NISOPNO3 = IGNORE ;
+HNC524CO = IGNORE ;
+C720O = IGNORE ;
+C139NO3 = IGNORE ;
+H3M3C5CHO = IGNORE ;
+C5ONO34OOH = IGNORE ;
+IPECO = IGNORE ;
+IPROACET = IGNORE ;
+HODMSO2 = IGNORE ;
+NMXYOL1O2 = IGNORE ;
+METLOBPROH = IGNORE ;
+DMMBOH = IGNORE ;
+NPHENOOH = IGNORE ;
+SBUACONEO = IGNORE ;
+HO1C3O2 = IGNORE ;
+C57NO3 = IGNORE ;
+C1313NO3 = IGNORE ;
+HEXBOH = IGNORE ;
+M3HEXAO2 = IGNORE ;
+ETOHOCHO = IGNORE ;
+C51CO2H = IGNORE ;
+C117NO3 = IGNORE ;
+C112O = IGNORE ;
+BCALBCO = IGNORE ;
+IPBZMUCOH = IGNORE ;
+C9M2CO6OH = IGNORE ;
+H3M3C5NO3 = IGNORE ;
+C152OOH = IGNORE ;
+CO235C6CHO = IGNORE ;
+NPHENO = IGNORE ;
+C3PAN2 = IGNORE ;
+C3PAN1 = IGNORE ;
+IPBZMUCO2 = IGNORE ;
+NBUTOLBO = IGNORE ;
+HO13C3CO3H = IGNORE ;
+PE1ENEBO2 = IGNORE ;
+C82OOH = IGNORE ;
+HEXBO2 = IGNORE ;
+M3HEXAOH = IGNORE ;
+C716OOH = IGNORE ;
+HMVKBO = IGNORE ;
+C83COOHOOH = IGNORE ;
+CH3NO3 = IGNORE ;
+EPXMC4DIAL = IGNORE ;
+MTBEBOH = IGNORE ;
+HMVKANO3 = IGNORE ;
+CO2OH3MPAN = IGNORE ;
+NC4IPDCO2 = IGNORE ;
+HOACETETO2 = IGNORE ;
+C151OH = IGNORE ;
+C151O2 = IGNORE ;
+ISOPCO2 = IGNORE ;
+NC4OHCO3 = IGNORE ;
+C629OOH = IGNORE ;
+BPINBO2 = IGNORE ;
+MIBKCOOHO2 = IGNORE ;
+H2M2C4CO2H = IGNORE ;
+C134O = IGNORE ;
+C817CO3 = IGNORE ;
+MTBEBO2 = IGNORE ;
+C917O = IGNORE ;
+ACPRONEOH = IGNORE ;
+DMC = IGNORE ;
+C920CO3H = IGNORE ;
+LIMCOH = IGNORE ;
+IPRBQONE = IGNORE ;
+MO2EOLB2OH = IGNORE ;
+C7M3CO = IGNORE ;
+DMM = IGNORE ;
+DMS = IGNORE ;
+C6PAN20 = IGNORE ;
+C71O2 = IGNORE ;
+PXYFUOOH = IGNORE ;
+C735OOA = IGNORE ;
+MO2EOLBO = IGNORE ;
+C735OOH = IGNORE ;
+ACPRONEO2 = IGNORE ;
+CATEC1O = IGNORE ;
+LIMCO2 = IGNORE ;
+C8M2CO6OH = IGNORE ;
+TM123BO = IGNORE ;
+PETCATECH = IGNORE ;
+CO25C6CO2H = IGNORE ;
+NDNT124LO = IGNORE ;
+PETLMUCO2H = IGNORE ;
+C88PAN = IGNORE ;
+BIACETO = IGNORE ;
+ACEC2CHO = IGNORE ;
+C822PAN = IGNORE ;
+C89NO3 = IGNORE ;
+C720OH = IGNORE ;
+C121OOH = IGNORE ;
+BCALBOOH = IGNORE ;
+C5MDICARB = IGNORE ;
+C720O2 = IGNORE ;
+MCATECHOL = IGNORE ;
+C1011CO3H = IGNORE ;
+C617PAN = IGNORE ;
+PENT1ENE = IGNORE ;
+LIMALACO = IGNORE ;
+C8M2CO6O2 = IGNORE ;
+MOCOCH2OOH = IGNORE ;
+HO1C5OOH = IGNORE ;
+NC623O = IGNORE ;
+LIMBOOH = IGNORE ;
+CH3SCH2O = IGNORE ;
+CHOC4CO3H = IGNORE ;
+C733OOH = IGNORE ;
+C78O2 = IGNORE ;
+C815CO2OOH = IGNORE ;
+MC3CODBCO3 = IGNORE ;
+MC3CODBCO2 = IGNORE ;
+H2M3C4O = IGNORE ;
+C42O = IGNORE ;
+C918CO3H = IGNORE ;
+DM23BU2ENE = IGNORE ;
+MET1O2 = IGNORE ;
+ETBEANO3 = IGNORE ;
+HO2C6OOH = IGNORE ;
+C78OH = IGNORE ;
+NOPINCO = IGNORE ;
+DNPHEN = IGNORE ;
+TM135BPNO3 = IGNORE ;
+MIBKAOH3CO = IGNORE ;
+MXYBIPERO = IGNORE ;
+HO3C6O = IGNORE ;
+M33C4O2 = IGNORE ;
+MPRBNO3O2 = IGNORE ;
+C84O2 = IGNORE ;
+PECO = IGNORE ;
+DMKOHO = IGNORE ;
+EOX2ETCHO = IGNORE ;
+C617CO2H = IGNORE ;
+CHCL2OOH = IGNORE ;
+NDNCRESO2 = IGNORE ;
+PXYLO = IGNORE ;
+METACETNO3 = IGNORE ;
+PXYMUCO = IGNORE ;
+DNPXYOL = IGNORE ;
+TM124MUO2H = IGNORE ;
+C5OCO3M = IGNORE ;
+PXY1OOH = IGNORE ;
+CH3COCO3H = IGNORE ;
+C9DCCO = IGNORE ;
+C816O = IGNORE ;
+C512O = IGNORE ;
+C522CO3 = IGNORE ;
+MIBKOHAOOH = IGNORE ;
+C510OH = IGNORE ;
+NEOPNO3 = IGNORE ;
+EBFUOOH = IGNORE ;
+C41CO3H = IGNORE ;
+OXYOLO2 = IGNORE ;
+T123NCATO = IGNORE ;
+C1310O = IGNORE ;
+CO1H63O = IGNORE ;
+NCRESO = IGNORE ;
+CHCL3OOH = IGNORE ;
+BUTAL2NO3 = IGNORE ;
+EOX2OLBNO3 = IGNORE ;
+C6H5C2CO3H = IGNORE ;
+HOC2H4CO3H = IGNORE ;
+NC3OOA = IGNORE ;
+BCLKET = IGNORE ;
+C89CO2 = IGNORE ;
+C89CO3 = IGNORE ;
+C1013O2 = IGNORE ;
+C726CO3OH = IGNORE ;
+M33C3CO2H = IGNORE ;
+CCLOHCH2O2 = IGNORE ;
+TMBO2 = IGNORE ;
+DNPHENO = IGNORE ;
+C6DCRBBOOH = IGNORE ;
+M2BUOL2OH = IGNORE ;
+C63O = IGNORE ;
+C1210OOH = IGNORE ;
+NPXYOLO = IGNORE ;
+ACCOMECO3 = IGNORE ;
+C4CO2DCO3H = IGNORE ;
+DIME35EB = IGNORE ;
+MBOOOA = IGNORE ;
+BOX2COMOOH = IGNORE ;
+C919OH = IGNORE ;
+NISOPO = IGNORE ;
+PTNCATECH = IGNORE ;
+PTNCATECO = IGNORE ;
+M2BUOL2O2 = IGNORE ;
+CO3H4CO3 = IGNORE ;
+DMMBNO3 = IGNORE ;
+C84O = IGNORE ;
+MTCATEC1O = IGNORE ;
+C7M2CO5O2 = IGNORE ;
+H3C2C4PAN = IGNORE ;
+C4MALOHOOH = IGNORE ;
+C1211CO3 = IGNORE ;
+C515O2 = IGNORE ;
+MVKOHBOOH = IGNORE ;
+C1213OOH = IGNORE ;
+CO24C6O2 = IGNORE ;
+C9M2CO6OOH = IGNORE ;
+C7CO3OHOOH = IGNORE ;
+C722O = IGNORE ;
+HM33C4O = IGNORE ;
+CH3SOO2NO2 = IGNORE ;
+HEXCNO3 = IGNORE ;
+NBUACETAO2 = IGNORE ;
+CNO3CLOOH = IGNORE ;
+DNCRESO2 = IGNORE ;
+HO2C5O = IGNORE ;
+C5MCO2OHO2 = IGNORE ;
+C4MCODBPAN = IGNORE ;
+NO3CH2PAN = IGNORE ;
+BCBNO3 = IGNORE ;
+C4DBMECO3 = IGNORE ;
+C7M2CO5OH = IGNORE ;
+H3M3C6NO3 = IGNORE ;
+C5DICARBO2 = IGNORE ;
+BOX2PROL = IGNORE ;
+C5COCHOO = IGNORE ;
+C524CO = IGNORE ;
+BRETPAN = IGNORE ;
+C6CODIAL = IGNORE ;
+MXYFUOH = IGNORE ;
+CL2OHPAN = IGNORE ;
+PROPALO2 = IGNORE ;
+HO3C106NO3 = IGNORE ;
+DNIPBNZLO2 = IGNORE ;
+M2C43CO2H = IGNORE ;
+C8BCO = IGNORE ;
+MXYFUO2 = IGNORE ;
+TM123BP2OH = IGNORE ;
+C65NO3CO3H = IGNORE ;
+C89O = IGNORE ;
+HO3C86NO3 = IGNORE ;
+NTMB2FUO = IGNORE ;
+H13M3C5O2 = IGNORE ;
+C915O = IGNORE ;
+C830O2 = IGNORE ;
+INAHPCO3 = IGNORE ;
+IPBZMUCO3H = IGNORE ;
+CO3C75O = IGNORE ;
+C43NO3CO3H = IGNORE ;
+HO2MC5NO3 = IGNORE ;
+DETLMUOOH = IGNORE ;
+C6H5C2OH = IGNORE ;
+C4M2NO32O2 = IGNORE ;
+H13M3C5O = IGNORE ;
+NPEBQOOH = IGNORE ;
+ETBEACHO = IGNORE ;
+H2M4C65O = IGNORE ;
+PETLMUCCO3 = IGNORE ;
+C4MNO32OOH = IGNORE ;
+C5CO234O2 = IGNORE ;
+C830OH = IGNORE ;
+HO3C126NO3 = IGNORE ;
+C624CHO = IGNORE ;
+C136O = IGNORE ;
+M22C3CO3 = IGNORE ;
+PXYLOOH = IGNORE ;
+TM124QOOH = IGNORE ;
+IPNNCATOOH = IGNORE ;
+C5DICARBO = IGNORE ;
+HO2NO2 = IGNORE ;
+C96NO3 = IGNORE ;
+TM123O = IGNORE ;
+TM123B = IGNORE ;
+C1312OOH = IGNORE ;
+PHAN = IGNORE ;
+COO2C4OOH = IGNORE ;
+C916NO3 = IGNORE ;
+EBENZOLOH = IGNORE ;
+EBENZOLO2 = IGNORE ;
+IBUTALCO2 = IGNORE ;
+MC5CO2OHO = IGNORE ;
+C928NO3 = IGNORE ;
+IPBZMUCO = IGNORE ;
+HO3C116OOH = IGNORE ;
+HO5C6OOH = IGNORE ;
+DNEBNZLO2 = IGNORE ;
+C3H7CHO = IGNORE ;
+INANCO3H = IGNORE ;
+CO2HOC61O2 = IGNORE ;
+EBENZOLOOH = IGNORE ;
+NBPINAO2 = IGNORE ;
+C71OOH = IGNORE ;
+M3PECO = IGNORE ;
+INANCOCO3 = IGNORE ;
+C919O2 = IGNORE ;
+NEOP = IGNORE ;
+ME3BUOLNO3 = IGNORE ;
+HM23C4OOH = IGNORE ;
+DNPETOLO2 = IGNORE ;
+NC6PAN1 = IGNORE ;
+INANPAN = IGNORE ;
+C823PAN = IGNORE ;
+C830NO3 = IGNORE ;
+ISOPDNO3 = IGNORE ;
+NMBOAO = IGNORE ;
+MTBEACHOHO = IGNORE ;
+C624PAN = IGNORE ;
+C8CO2DBAL = IGNORE ;
+TLFUOOH = IGNORE ;
+C9DCOOH = IGNORE ;
+INB1NBCO3H = IGNORE ;
+HO3C4O = IGNORE ;
+PET1OHNO2 = IGNORE ;
+IPRBQO2 = IGNORE ;
+MMALNACO3 = IGNORE ;
+MXYBPER2OH = IGNORE ;
+C827CO2H = IGNORE ;
+HC4ACHO = IGNORE ;
+IC4H10 = IGNORE ;
+PE1ENEAO2 = IGNORE ;
+EMPONO2OOH = IGNORE ;
+CO36C8 = IGNORE ;
+A2PANO = IGNORE ;
+TM123BPOOH = IGNORE ;
+TM124OLOOH = IGNORE ;
+H3M3C5OOH = IGNORE ;
+EBZMUCCO2H = IGNORE ;
+NOPINAO = IGNORE ;
+NLIMALO = IGNORE ;
+MXYQOOH = IGNORE ;
+HMVKAO2 = IGNORE ;
+NC4H10 = IGNORE ;
+PEAO = IGNORE ;
+HO36C11 = IGNORE ;
+HO36C10 = IGNORE ;
+C826CO3OH = IGNORE ;
+MALDALCO3H = IGNORE ;
+CO234C6 = IGNORE ;
+C1213OH = IGNORE ;
+OXYQO2 = IGNORE ;
+DNCRESO = IGNORE ;
+NC623OOH = IGNORE ;
+IC7DCPAN = IGNORE ;
+MC6OTKETO2 = IGNORE ;
+C7MJPCO3H = IGNORE ;
+C1213O2 = IGNORE ;
+OXYQOH = IGNORE ;
+C826CO3O2 = IGNORE ;
+C133CO = IGNORE ;
+INB1NBCHO = IGNORE ;
+ACCOCOETO2 = IGNORE ;
+C510O = IGNORE ;
+C3COCPAN = IGNORE ;
+PBFUONE = IGNORE ;
+H134M3C5 = IGNORE ;
+C95O2 = IGNORE ;
+VINCL = IGNORE ;
+ETHFORMNO3 = IGNORE ;
+C623NO3 = IGNORE ;
+LMKOOA = IGNORE ;
+LMKOOB = IGNORE ;
+HEX1ENE = IGNORE ;
+IPRACBOOH = IGNORE ;
+BUTALAOOH = IGNORE ;
+BCLKCO = IGNORE ;
+NOAOOA = IGNORE ;
+H1MC5O = IGNORE ;
+CATECOOA = IGNORE ;
+CHOOMPAN = IGNORE ;
+C7BDCO = IGNORE ;
+C818OOH = IGNORE ;
+HO2M2C4O = IGNORE ;
+PC3ODBCO2H = IGNORE ;
+MBOOO = IGNORE ;
+C6COOHCO3H = IGNORE ;
+C6O132OH = IGNORE ;
+IPROC21NO3 = IGNORE ;
+NPETLQOOH = IGNORE ;
+C57O2 = IGNORE ;
+HOHOC4DIAL = IGNORE ;
+TLEMUCOOH = IGNORE ;
+C4DBMECO3H = IGNORE ;
+H2M2C65OOH = IGNORE ;
+NC61CO3 = IGNORE ;
+DNOXYOLOOH = IGNORE ;
+OCCOHCO = IGNORE ;
+HO2C3CO3H = IGNORE ;
+LMLKBOOH = IGNORE ;
+C57OH = IGNORE ;
+MNNCATECO = IGNORE ;
+DMPHGLYOX = IGNORE ;
+HO3C5NO3 = IGNORE ;
+C6CO243OH = IGNORE ;
+MO2EOLBNO3 = IGNORE ;
+NBCALOH = IGNORE ;
+PXY1O2 = IGNORE ;
+C7DCOH = IGNORE ;
+IPBZBPROOH = IGNORE ;
+C4NO3PAN = IGNORE ;
+C4DBM2CO3H = IGNORE ;
+PNNCATECO2 = IGNORE ;
+IPROPOLPAN = IGNORE ;
+HYETHO2H = IGNORE ;
+C7DCO2 = IGNORE ;
+NAPINBOOH = IGNORE ;
+EOX2EOL = IGNORE ;
+NBCALO2 = IGNORE ;
+A2PANOO = IGNORE ;
+ACCOETOOH = IGNORE ;
+C717OOH = IGNORE ;
+MXYLNO3 = IGNORE ;
+HMACR = IGNORE ;
+HM23C4O2 = IGNORE ;
+C5PAN18 = IGNORE ;
+CHOC3DIOL = IGNORE ;
+DE35TO = IGNORE ;
+MCATECOOA = IGNORE ;
+C826OH = IGNORE ;
+C7DDCOOH = IGNORE ;
+BCLKCCO = IGNORE ;
+CO3C4CO2H = IGNORE ;
+COO2C4CO3H = IGNORE ;
+PEBQCO = IGNORE ;
+NMETLQO = IGNORE ;
+C6H5C2H4O2 = IGNORE ;
+C116O = IGNORE ;
+C6COALCO2H = IGNORE ;
+HM22CO3H = IGNORE ;
+CO3C5CO2H = IGNORE ;
+H2M3C4CO3 = IGNORE ;
+C23O3MCHO = IGNORE ;
+NDNOETLOOH = IGNORE ;
+C616OH = IGNORE ;
+C826O2 = IGNORE ;
+C6H5CH2PAN = IGNORE ;
+DE35TOOH = IGNORE ;
+NBUACBOH = IGNORE ;
+HM23C4OH = IGNORE ;
+OXYMUCOOH = IGNORE ;
+C62NO33CO = IGNORE ;
+LIMBCO = IGNORE ;
+MTBEAALOOH = IGNORE ;
+NC71O2 = IGNORE ;
+EOCOCH2O2 = IGNORE ;
+METLMUCCO3 = IGNORE ;
+C728NO3 = IGNORE ;
+C43OHCOCHO = IGNORE ;
+IPBZMUCCO = IGNORE ;
+C736OOH = IGNORE ;
+C8CO2DCO3H = IGNORE ;
+MCOCOMOXO2 = IGNORE ;
+MEKCOOH = IGNORE ;
+CL12CO3 = IGNORE ;
+NPBFUO = IGNORE ;
+HM22C3CO2H = IGNORE ;
+C2CL32OH = IGNORE ;
+NOPINAO2 = IGNORE ;
+H13M3C5 = IGNORE ;
+CH3SCHO = IGNORE ;
+BUT2OLO2 = IGNORE ;
+CL2OHCH2O2 = IGNORE ;
+TCE2OH = IGNORE ;
+COO2C4CO3 = IGNORE ;
+TM123OLOH = IGNORE ;
+BOX2EOHAO2 = IGNORE ;
+C4OCCOHOOH = IGNORE ;
+M2PEBOOH = IGNORE ;
+C5CODBCO3H = IGNORE ;
+MSIA = IGNORE ;
+IBUTOLBO = IGNORE ;
+HMVKBCO3 = IGNORE ;
+PCATECHOL = IGNORE ;
+LIMBO = IGNORE ;
+HO4CO7C9 = IGNORE ;
+TM123OLO2 = IGNORE ;
+HEX2ONCOOH = IGNORE ;
+BUT2OLOH = IGNORE ;
+DETLMUPAN = IGNORE ;
+CL2OHCH2OH = IGNORE ;
+NOPINAOH = IGNORE ;
+IPBENZOLOH = IGNORE ;
+MC7CO2O = IGNORE ;
+EPXMDLPAN = IGNORE ;
+LIMALAOH = IGNORE ;
+C87PAN = IGNORE ;
+MC4CONO3O2 = IGNORE ;
+H2M4C65O2 = IGNORE ;
+C62CPAN = IGNORE ;
+ME3BU2OLO2 = IGNORE ;
+SBUACETBO2 = IGNORE ;
+M3PEAO = IGNORE ;
+HC3CCO3 = IGNORE ;
+NBCKO2 = IGNORE ;
+CO1C6NO3 = IGNORE ;
+NDNT124LO2 = IGNORE ;
+LIMALAO2 = IGNORE ;
+IPBENZOLO2 = IGNORE ;
+C5CONO3OOH = IGNORE ;
+HOIPRCO2H = IGNORE ;
+ETBEBNO3 = IGNORE ;
+M2CO5C6 = IGNORE ;
+IBUTOLBNO3 = IGNORE ;
+MACO3 = IGNORE ;
+MEBFUOH = IGNORE ;
+METLBIPNO3 = IGNORE ;
+ACBUONBOH = IGNORE ;
+C57NO3PAN = IGNORE ;
+MEBFUO2 = IGNORE ;
+NOPINOO = IGNORE ;
+NMXYOLOOH = IGNORE ;
+H2M3C4O2 = IGNORE ;
+NC3CO3 = IGNORE ;
+HM2C43O = IGNORE ;
+C23O3EHO = IGNORE ;
+CO25C73OOH = IGNORE ;
+NEBFUONE = IGNORE ;
+HM22C3OH = IGNORE ;
+CLCOCLO = IGNORE ;
+C7DDCO2 = IGNORE ;
+INB1NBPAN = IGNORE ;
+C619OH = IGNORE ;
+PECO2 = IGNORE ;
+NO = IGNORE ;
+NA = IGNORE ;
+CO24C63OOH = IGNORE ;
+HC3CO3H = IGNORE ;
+HO2C54CO3 = IGNORE ;
+TBUTCHO = IGNORE ;
+MTBEBPAN = IGNORE ;
+MVKOOH = IGNORE ;
+COHCCLOOH = IGNORE ;
+MVKOOA = IGNORE ;
+DMEOBPROH = IGNORE ;
+C81O2 = IGNORE ;
+CLCOCH2O = IGNORE ;
+PXYOLO = IGNORE ;
+C1213O = IGNORE ;
+M3PEAOH = IGNORE ;
+NOPINBCO = IGNORE ;
+PECOH = IGNORE ;
+EOX2EOLAO2 = IGNORE ;
+CH3OCH2NO3 = IGNORE ;
+C7DDCOH = IGNORE ;
+HM22C3O2 = IGNORE ;
+C812O = IGNORE ;
+C2CL3OHOOH = IGNORE ;
+PROPOLNO3 = IGNORE ;
+NPRACAOOH = IGNORE ;
+BUTDBOH = IGNORE ;
+BCAOH = IGNORE ;
+BCAOO = IGNORE ;
+C1013CO = IGNORE ;
+HO5C5CHO = IGNORE ;
+CLCOCCL2O = IGNORE ;
+TM123BCO3 = IGNORE ;
+OXYQONE = IGNORE ;
+BCAO2 = IGNORE ;
+BCLKAO = IGNORE ;
+MMALNAPAN = IGNORE ;
+C144O = IGNORE ;
+C511O2 = IGNORE ;
+DNOXYOLO2 = IGNORE ;
+ISOPBO = IGNORE ;
+C6OTKETCO = IGNORE ;
+C522PAN = IGNORE ;
+MALANHY = IGNORE ;
+C6DICARB = IGNORE ;
+C131CO3 = IGNORE ;
+TBUTOLO = IGNORE ;
+ETHENO3O = IGNORE ;
+MO2EOL = IGNORE ;
+NDNMETOLO = IGNORE ;
+IPBFUOH = IGNORE ;
+SC4H9NO3 = IGNORE ;
+ACECOCOCH3 = IGNORE ;
+C9DC = IGNORE ;
+CL2OHCO3H = IGNORE ;
+IPBFUO2 = IGNORE ;
+NTMB1FUO = IGNORE ;
+PXYFUO = IGNORE ;
+C627OOH = IGNORE ;
+T124CAT1O = IGNORE ;
+C4COMOHCO3 = IGNORE ;
+C72NO3 = IGNORE ;
+NEBNZOLO2 = IGNORE ;
+C123CO = IGNORE ;
+CH3BR = IGNORE ;
+ETOC2O = IGNORE ;
+VGLYOX = IGNORE ;
+HEX2ONBNO3 = IGNORE ;
+CRESO = IGNORE ;
+C5COCHOO2 = IGNORE ;
+HO2C43CO3H = IGNORE ;
+IBUTOLBO2H = IGNORE ;
+C1H4C5PAN = IGNORE ;
+BZEMUCO = IGNORE ;
+HO2C4OH = IGNORE ;
+C42NO33OOH = IGNORE ;
+PETLMUCO = IGNORE ;
+IEB1OOH = IGNORE ;
+CCLOHCO3 = IGNORE ;
+M2BU2OLNO3 = IGNORE ;
+NEBNZOLOH = IGNORE ;
+ETOLOH = IGNORE ;
+MIBKBO = IGNORE ;
+INAOOH = IGNORE ;
+TM124OL = IGNORE ;
+NDNPXYOLO2 = IGNORE ;
+H2M2C3CHO = IGNORE ;
+LMKANO3 = IGNORE ;
+C517CO3 = IGNORE ;
+BOXPROLBO2 = IGNORE ;
+C103OH = IGNORE ;
+C114O = IGNORE ;
+HOCH2COCHO = IGNORE ;
+CH3COCH3 = IGNORE ;
+HC3CHO = IGNORE ;
+C6NO3CO5O2 = IGNORE ;
+COO2C4PAN = IGNORE ;
+C6NO3CO5OH = IGNORE ;
+C103O2 = IGNORE ;
+PETLMUCOOH = IGNORE ;
+HMVKBOOH = IGNORE ;
+NBCKO = IGNORE ;
+MC5DICARB = IGNORE ;
+HO1C6OOH = IGNORE ;
+TM124O2 = IGNORE ;
+HO2M2C4OOH = IGNORE ;
+PRNO3CO3H = IGNORE ;
+CO235C6O = IGNORE ;
+TC4H9O2 = IGNORE ;
+C127O2 = IGNORE ;
+NDNPETOLO = IGNORE ;
+METHTOL = IGNORE ;
+C1311OOH = IGNORE ;
+C511PAN = IGNORE ;
+CHOC2H4OOH = IGNORE ;
+PRNOCOMOOH = IGNORE ;
+HEPTO = IGNORE ;
+C5DICAROOH = IGNORE ;
+ENNCATECO = IGNORE ;
+TBUTOLO2 = IGNORE ;
+C127OH = IGNORE ;
+C3M3CHONO3 = IGNORE ;
+HO2CO4C5O2 = IGNORE ;
+C145OOH = IGNORE ;
+C918OOH = IGNORE ;
+PXYMUCO2 = IGNORE ;
+DIBRETO = IGNORE ;
+ENCATECH = IGNORE ;
+MVKOHAO = IGNORE ;
+ACCOETO2 = IGNORE ;
+C3ME3PAN = IGNORE ;
+BPINAOOH = IGNORE ;
+EBZMUCNO3 = IGNORE ;
+T124NCTOOH = IGNORE ;
+PBZOBPEROH = IGNORE ;
+MC5COOHOOH = IGNORE ;
+C923CO3 = IGNORE ;
+MMALNACO3H = IGNORE ;
+C727PAN = IGNORE ;
+DNIPBNZOL = IGNORE ;
+NTMB2FUO2 = IGNORE ;
+DETLBIPNO3 = IGNORE ;
+DMMBO = IGNORE ;
+PXYMUCOH = IGNORE ;
+HEPTNO3 = IGNORE ;
+C92OOH = IGNORE ;
+BOXPROOOH = IGNORE ;
+C6NO324CO = IGNORE ;
+TM124MUCCO = IGNORE ;
+SBUACEONE = IGNORE ;
+DIBRET = IGNORE ;
+HEX3ONDOH = IGNORE ;
+MXYMUCO = IGNORE ;
+NIPBFUO = IGNORE ;
+C1310O2 = IGNORE ;
+C928CO3H = IGNORE ;
+CH3S = IGNORE ;
+ACBUONBOOH = IGNORE ;
+C828PAN = IGNORE ;
+CH3O = IGNORE ;
+C4ME2NO3O2 = IGNORE ;
+C830CO = IGNORE ;
+ME2BUT1ENE = IGNORE ;
+CO23C4CO3H = IGNORE ;
+PCATEC1O = IGNORE ;
+HEX3ONDO2 = IGNORE ;
+MACRNOO = IGNORE ;
+C5NO3OAOOH = IGNORE ;
+C4M3NO31O2 = IGNORE ;
+C734OH = IGNORE ;
+CH2BROH = IGNORE ;
+OCTO = IGNORE ;
+C7M15CO2O2 = IGNORE ;
+BOXMOOH = IGNORE ;
+HMVKNO3 = IGNORE ;
+PHCOMEO2 = IGNORE ;
+PHGLYOX = IGNORE ;
+ACETETCHO = IGNORE ;
+PHENOH = IGNORE ;
+PHENOL = IGNORE ;
+MXY1O2 = IGNORE ;
+NEBNZ1OOH = IGNORE ;
+MGLYOO = IGNORE ;
+PHENO2 = IGNORE ;
+INB1NACO2H = IGNORE ;
+C141CO = IGNORE ;
+NPRACAOH = IGNORE ;
+MGLYOX = IGNORE ;
+CL12PRCHO = IGNORE ;
+MVKOHAO2 = IGNORE ;
+C7M15CO2OH = IGNORE ;
+CH2BRO2 = IGNORE ;
+C734O2 = IGNORE ;
+ISOPDO = IGNORE ;
+PXYQOOH = IGNORE ;
+C810O = IGNORE ;
+C118OH = IGNORE ;
+C626PAN = IGNORE ;
+EBZOBPEROH = IGNORE ;
+IEACO3 = IGNORE ;
+IPBZOLOOH = IGNORE ;
+C6M5CO2OH = IGNORE ;
+C2CL3OHAO = IGNORE ;
+C128O = IGNORE ;
+C823NO3 = IGNORE ;
+C1213CO = IGNORE ;
+NT123L1O2 = IGNORE ;
+H3M3C4CO3H = IGNORE ;
+NTM124LOOH = IGNORE ;
+C615O2 = IGNORE ;
+C65OH4NO3 = IGNORE ;
+C6CO2OHOOH = IGNORE ;
+OXYQCO = IGNORE ;
+HO13C5NO3 = IGNORE ;
+C6M5CO2O2 = IGNORE ;
+DIETETNO3 = IGNORE ;
+NC4CO3H = IGNORE ;
+HO14MC5 = IGNORE ;
+C8BCCO = IGNORE ;
+C1311NO3 = IGNORE ;
+C133OH = IGNORE ;
+C118O2 = IGNORE ;
+C53O2 = IGNORE ;
+INB1CO = IGNORE ;
+C137PAN = IGNORE ;
+GAOOB = IGNORE ;
+GAOOA = IGNORE ;
+CHOOMCO3 = IGNORE ;
+HO1CO3C5 = IGNORE ;
+C53NO32O = IGNORE ;
+C923OH = IGNORE ;
+C624CO3 = IGNORE ;
+CL12CO3H = IGNORE ;
+EPXMKTPAN = IGNORE ;
+CLCOCH2OOH = IGNORE ;
+MALDIALOOH = IGNORE ;
+C923O2 = IGNORE ;
+C6CO34O2 = IGNORE ;
+C146O = IGNORE ;
+BOX2EOHAO = IGNORE ;
+DMEBMUCO = IGNORE ;
+C7CODBPAN = IGNORE ;
+PXNNCATCO = IGNORE ;
+C927O = IGNORE ;
+C3EDIALOOH = IGNORE ;
+MACROHOOH = IGNORE ;
+C88CO = IGNORE ;
+TC4H9NO3 = IGNORE ;
+TM135O = IGNORE ;
+C816OOH = IGNORE ;
+TM135B = IGNORE ;
+M2HEXAO2 = IGNORE ;
+MTCATEC1O2 = IGNORE ;
+DETLBIPRO2 = IGNORE ;
+MXYCATECH = IGNORE ;
+INB1HPCO3 = IGNORE ;
+DDECNO3 = IGNORE ;
+MIBKHO4OOH = IGNORE ;
+MET1OHNO2 = IGNORE ;
+M2HEXAOH = IGNORE ;
+NISOPOOH = IGNORE ;
+C54OOH = IGNORE ;
+HIEB2OOH = IGNORE ;
+C87CO3 = IGNORE ;
+C815CO2O = IGNORE ;
+HO3C3CO3 = IGNORE ;
+LIMCOOH = IGNORE ;
+CO2HO3C6 = IGNORE ;
+C3MNO3CO2H = IGNORE ;
+C5MCO2OHO = IGNORE ;
+C7DDCCO3 = IGNORE ;
+C7DDCCO2 = IGNORE ;
+HM33C3OOH = IGNORE ;
+NTLFUO = IGNORE ;
+CCL3CH2O = IGNORE ;
+C1210O = IGNORE ;
+CCLNO3COH = IGNORE ;
+HEX2ONAO = IGNORE ;
+DM124O2 = IGNORE ;
+C5CO234 = IGNORE ;
+COCL2 = IGNORE ;
+HOCH2CH2O = IGNORE ;
+NIPBZOLOOH = IGNORE ;
+C42AOH = IGNORE ;
+CH3CH2CL = IGNORE ;
+HOC3H6OH = IGNORE ;
+EPXC4DIAL = IGNORE ;
+NOPINDOOH = IGNORE ;
+PXYBPER2OH = IGNORE ;
+CHCL3OH = IGNORE ;
+C5TRONCO3H = IGNORE ;
+BPINCOH = IGNORE ;
+OTCATECOOA = IGNORE ;
+MXYBPEROOH = IGNORE ;
+MTBEAOH = IGNORE ;
+ACCOMECO3H = IGNORE ;
+HO2MC5O2 = IGNORE ;
+NC71O = IGNORE ;
+NMXYOLO2 = IGNORE ;
+C729CO3 = IGNORE ;
+PGLOOB = IGNORE ;
+PGLOOA = IGNORE ;
+TM123MUCCO = IGNORE ;
+NMXYOLOH = IGNORE ;
+MXYLCO3H = IGNORE ;
+CH2CLCOCH3 = IGNORE ;
+CO2C4DIAL = IGNORE ;
+NCRES1O2 = IGNORE ;
+C812OOH = IGNORE ;
+C5CO23O = IGNORE ;
+UDECO = IGNORE ;
+BPINCO2 = IGNORE ;
+C726CO5O = IGNORE ;
+MTBEAO2 = IGNORE ;
+OXYLOOH = IGNORE ;
+MPAN = IGNORE ;
+CHCL3O2 = IGNORE ;
+HMVKAOOH = IGNORE ;
+MMCF = IGNORE ;
+BOXPOLBOOH = IGNORE ;
+HO2M2C5O2 = IGNORE ;
+BUTDAOH = IGNORE ;
+PXYLCO2H = IGNORE ;
+OXYLPAN = IGNORE ;
+OXYOLOH = IGNORE ;
+CHOC4CO3 = IGNORE ;
+LIMBOO = IGNORE ;
+O3 = IGNORE ;
+NC730O2 = IGNORE ;
+BCLKCOOH = IGNORE ;
+IPROMCCO3H = IGNORE ;
+C62CO3H = IGNORE ;
+TOLUENE = IGNORE ;
+CHCL2CO3H = IGNORE ;
+BOXPRONBO = IGNORE ;
+LMLKAOOH = IGNORE ;
+LIMBO2 = IGNORE ;
+OH = IGNORE ;
+BOXCOOLOOH = IGNORE ;
+NPBNZOLOOH = IGNORE ;
+BUTDAO2 = IGNORE ;
+ECO3CO3H = IGNORE ;
+HO2M2C5OH = IGNORE ;
+NOETOL1O = IGNORE ;
+C6DCARBPAN = IGNORE ;
+TLCOBIPEOH = IGNORE ;
+MIBKOH34 = IGNORE ;
+DMMALYOOH = IGNORE ;
+C915OH = IGNORE ;
+DM123OOH = IGNORE ;
+MTNCATECO2 = IGNORE ;
+NBCOOH = IGNORE ;
+C915O2 = IGNORE ;
+HO2M2C5NO3 = IGNORE ;
+HO6C7O = IGNORE ;
+IPRACBCHO = IGNORE ;
+SBUACANO3 = IGNORE ;
+ETOC2OOH = IGNORE ;
+C4DBM2CO3 = IGNORE ;
+TMBOH = IGNORE ;
+HM33C3CHO = IGNORE ;
+CHOCOCH2O2 = IGNORE ;
+MXYBIPENO3 = IGNORE ;
+ACR = IGNORE ;
+C520OOH = IGNORE ;
+HOC2H4CO3 = IGNORE ;
+ACEC2H4OOH = IGNORE ;
+C520OOA = IGNORE ;
+HO2C6NO3 = IGNORE ;
+MOCOCH2O2 = IGNORE ;
+BUTDBO = IGNORE ;
+CYHXONAOOH = IGNORE ;
+C517PAN = IGNORE ;
+EOX2EOLAO = IGNORE ;
+OXNNCATCO2 = IGNORE ;
+IPBZMUCCO3 = IGNORE ;
+T124NNCTO = IGNORE ;
+C614OOH = IGNORE ;
+LIMALAO = IGNORE ;
+ACBUONEAO2 = IGNORE ;
+IPROCHO = IGNORE ;
+M22C43NO3 = IGNORE ;
+MEK = IGNORE ;
+C612OOH = IGNORE ;
+CO13C4CHO = IGNORE ;
+H1C23C4O = IGNORE ;
+C85O2 = IGNORE ;
+T123NNCOOH = IGNORE ;
+C610OOH = IGNORE ;
+C102O2 = IGNORE ;
+PEBQO = IGNORE ;
+C6H13CO3 = IGNORE ;
+CH3CCH3OO = IGNORE ;
+INAHCO3H = IGNORE ;
+C4NO3COO2 = IGNORE ;
+CO24C53OOH = IGNORE ;
+NISOPO2 = IGNORE ;
+NMETOLO = IGNORE ;
+METCATECH = IGNORE ;
+MXYBIPERO2 = IGNORE ;
+C4M2ALOHO = IGNORE ;
+CO3C54CO3H = IGNORE ;
+NPETOLOOH = IGNORE ;
+C4OCCOHCO = IGNORE ;
+H2M2C4CO3 = IGNORE ;
+CO13C3CO2H = IGNORE ;
+NORPINIC = IGNORE ;
+EPXMDLCO2H = IGNORE ;
+C126O = IGNORE ;
+OXY1O = IGNORE ;
+ETBECCHO = IGNORE ;
+PEAOH = IGNORE ;
+NDNPHENO = IGNORE ;
+DETLMUOH = IGNORE ;
+EOX2OLBOOH = IGNORE ;
+NBUTDAO2 = IGNORE ;
+NBUTDAOH = IGNORE ;
+NPBFUONE = IGNORE ;
+CO3C54CHO = IGNORE ;
+NT123L1O = IGNORE ;
+ETOLO2 = IGNORE ;
+C73OOH = IGNORE ;
+C5NO3CO4O = IGNORE ;
+NC101O2 = IGNORE ;
+PEAOOH = IGNORE ;
+C125OOH = IGNORE ;
+C712O = IGNORE ;
+H1MC5OOH = IGNORE ;
+ISOPCOOH = IGNORE ;
+PRCOFORMO2 = IGNORE ;
+TM135OLOOH = IGNORE ;
+C6OTKETOH = IGNORE ;
+H2M4C65NO3 = IGNORE ;
+DMEPHOH = IGNORE ;
+C4MCO2O2 = IGNORE ;
+MXYL1O = IGNORE ;
+H2M3C4CO2H = IGNORE ;
+M3PEBNO3 = IGNORE ;
+HO2C4OOH = IGNORE ;
+C4MCO2OH = IGNORE ;
+C727CO3H = IGNORE ;
+EBZMUCO = IGNORE ;
+T123NNCTO2 = IGNORE ;
+PRONO3BO = IGNORE ;
+OTNCATCOOH = IGNORE ;
+C6OTKETO2 = IGNORE ;
+C925O = IGNORE ;
+INCOOH = IGNORE ;
+ISOPBOOH = IGNORE ;
+NDNCRESO = IGNORE ;
+NC730OH = IGNORE ;
+NOAOO = IGNORE ;
+C6DICAROOH = IGNORE ;
+IPMALANHY = IGNORE ;
+DNMETOLO2 = IGNORE ;
+IC7DCCO3H = IGNORE ;
+IPRACBO = IGNORE ;
+IPBFUCO = IGNORE ;
+CO2HOC61O = IGNORE ;
+MEMOXYCO3H = IGNORE ;
+METOLO2 = IGNORE ;
+METOLOH = IGNORE ;
+HO2C5OOH = IGNORE ;
+C33CO = IGNORE ;
+PRCOOMCO3H = IGNORE ;
+BCAL = IGNORE ;
+C1213NO3 = IGNORE ;
+M2C43CHO = IGNORE ;
+M3C4CO3 = IGNORE ;
+BRETO3 = IGNORE ;
+C61OOH = IGNORE ;
+C64NO3 = IGNORE ;
+C4NO3CO2H = IGNORE ;
+C5CO2DBPAN = IGNORE ;
+ETHFORM = IGNORE ;
+C131PAN = IGNORE ;
+DECO = IGNORE ;
+M2BKBOH = IGNORE ;
+NNCATECO2 = IGNORE ;
+MBOBOOH = IGNORE ;
+C827CHO = IGNORE ;
+HOCOC4DIAL = IGNORE ;
+C1212O = IGNORE ;
+C123OH = IGNORE ;
+C515CO3 = IGNORE ;
+C1313OH = IGNORE ;
+BOXPRONBO2 = IGNORE ;
+ETBE = IGNORE ;
+OXYLCO2H = IGNORE ;
+C67CO3 = IGNORE ;
+EPXALMKT = IGNORE ;
+TMBCHO = IGNORE ;
+BOXPRONBOH = IGNORE ;
+HO13C4OOH = IGNORE ;
+C1313O2 = IGNORE ;
+C123O2 = IGNORE ;
+EBZMUCCO3 = IGNORE ;
+C519CO3 = IGNORE ;
+M2BKBO2 = IGNORE ;
+PXYL1O = IGNORE ;
+C7MCO2DBAL = IGNORE ;
+CH3CCL2OOH = IGNORE ;
+PHC3OH = IGNORE ;
+NC4H9O = IGNORE ;
+NBCO2 = IGNORE ;
+OTNNCATOOH = IGNORE ;
+CO2C3CO3 = IGNORE ;
+TM124MUNO3 = IGNORE ;
+MIBKHO4CHO = IGNORE ;
+IECCO3H = IGNORE ;
+PXYMUCCO3 = IGNORE ;
+HM22CHO = IGNORE ;
+BOXPRONE = IGNORE ;
+HEX2ONCO = IGNORE ;
+UDECOH = IGNORE ;
+DETLPOXMUC = IGNORE ;
+MTNNCATOOH = IGNORE ;
+CYHXOLANO3 = IGNORE ;
+C5DIALOOH = IGNORE ;
+HO3C96OOH = IGNORE ;
+OETLMUCO = IGNORE ;
+NOETLQO2 = IGNORE ;
+EPXKTMCO3H = IGNORE ;
+PHC3O2 = IGNORE ;
+HCHO = IGNORE ;
+HO36C9 = IGNORE ;
+HO36C8 = IGNORE ;
+C102OOH = IGNORE ;
+C718OH = IGNORE ;
+PHCOMEO = IGNORE ;
+C6H5C2NO3 = IGNORE ;
+NPHENOH = IGNORE ;
+T124NCATO2 = IGNORE ;
+C613O2 = IGNORE ;
+PRONOCOMO = IGNORE ;
+C831O = IGNORE ;
+CH2CLOH = IGNORE ;
+NLMKAO = IGNORE ;
+CLOHPAN = IGNORE ;
+C6H13CO2H = IGNORE ;
+CHOC3COCO3 = IGNORE ;
+MACROHNO3 = IGNORE ;
+CO234C65O = IGNORE ;
+C1312NO3 = IGNORE ;
+OXYMUCCO3 = IGNORE ;
+C8CO4DB = IGNORE ;
+C102O = IGNORE ;
+NPHENO2 = IGNORE ;
+C6CONO34O = IGNORE ;
+NORLIMO = IGNORE ;
+HO5C6O2 = IGNORE ;
+CO1M22CO3 = IGNORE ;
+NBZFUO2 = IGNORE ;
+PHCOETOH = IGNORE ;
+C520O2 = IGNORE ;
+C57NO3CO3H = IGNORE ;
+C719NO3 = IGNORE ;
+C77CO = IGNORE ;
+MGLOO = IGNORE ;
+C823OH = IGNORE ;
+TCEOHOOH = IGNORE ;
+NC4H9OOH = IGNORE ;
+C817CO3H = IGNORE ;
+H13C43CO3H = IGNORE ;
+C823O2 = IGNORE ;
+NBUACAOH = IGNORE ;
+NDNOXYOLO2 = IGNORE ;
+C62NO33O = IGNORE ;
+C109O = IGNORE ;
+PHC3O = IGNORE ;
+C6CO2OHPAN = IGNORE ;
+MACRNBCO3H = IGNORE ;
+EMPOHNO2O2 = IGNORE ;
+PHCOETO2 = IGNORE ;
+NPHEN1OOH = IGNORE ;
+C811NO3 = IGNORE ;
+C2H5CHO = IGNORE ;
+INDHCO3H = IGNORE ;
+CH2OHCL2O2H = IGNORE ;
+C2CL3OHBO2 = IGNORE ;
+HIEB2O2 = IGNORE ;
+NC728O = IGNORE ;
+TM124MUCOH = IGNORE ;
+MTCTEC1OOH = IGNORE ;
+C137OH = IGNORE ;
+C137O2 = IGNORE ;
+TM124MUCO2 = IGNORE ;
+TM124MUCO3 = IGNORE ;
+C3MDIALOOH = IGNORE ;
+MXYLO = IGNORE ;
+CO2MC5OH = IGNORE ;
+DDECO = IGNORE ;
+C6CO3HO4 = IGNORE ;
+CH3COCCLO = IGNORE ;
+C151NO3 = IGNORE ;
+C73O2 = IGNORE ;
+C816CO3H = IGNORE ;
+C8CO2DBCO3 = IGNORE ;
+ETOMEOOH = IGNORE ;
+PRCOOMOOH = IGNORE ;
+C816PAN = IGNORE ;
+NPBFUOOH = IGNORE ;
+C732O = IGNORE ;
+PTCTEC1OOH = IGNORE ;
+NDNPHENOOH = IGNORE ;
+TL4OHNO2O = IGNORE ;
+C517CO2H = IGNORE ;
+PXYMUCCO3H = IGNORE ;
+MECOFORMO2 = IGNORE ;
+NOETOL1OOH = IGNORE ;
+HO2C54NO3 = IGNORE ;
+MACRNCO3 = IGNORE ;
+NPXYOL1O2 = IGNORE ;
+C62O2 = IGNORE ;
+IC4H9O = IGNORE ;
+BZEMUCNO3 = IGNORE ;
+PXYBIPERO = IGNORE ;
+C3H6 = IGNORE ;
+ACEETOHO2 = IGNORE ;
+OXYBPER2OH = IGNORE ;
+HO7C8OOH = IGNORE ;
+C118CO = IGNORE ;
+C3H8 = IGNORE ;
+BCKOOA = IGNORE ;
+BCKOOB = IGNORE ;
+C6135COOOH = IGNORE ;
+NPRACCOH = IGNORE ;
+MEBFUONE = IGNORE ;
+C124O = IGNORE ;
+BOXCOEOLO = IGNORE ;
+HO1C4O = IGNORE ;
+MPRKNO3 = IGNORE ;
+NBUTOLANO3 = IGNORE ;
+OETLMUCOOH = IGNORE ;
+HO5C5CO3H = IGNORE ;
+ETHFORMOOH = IGNORE ;
+EBENZO = IGNORE ;
+MOXYCOCHO = IGNORE ;
+TM135MUO3H = IGNORE ;
+C714O = IGNORE ;
+NLIMO2 = IGNORE ;
+ACCOC3H6O = IGNORE ;
+MXOHNO2OOH = IGNORE ;
+C817CO = IGNORE ;
+CCLCONO3 = IGNORE ;
+C56O2 = IGNORE ;
+H2C3OCOH = IGNORE ;
+M3HEXBOH = IGNORE ;
+M3HEXBO2 = IGNORE ;
+METLMUCO3H = IGNORE ;
+ACOMCOMOOH = IGNORE ;
+CHOC3COO2 = IGNORE ;
+TM124BCHO = IGNORE ;
+HO3C96O2 = IGNORE ;
+HO3C3CO3H = IGNORE ;
+C56OH = IGNORE ;
+DETLOBPROH = IGNORE ;
+M2PROPAL2O = IGNORE ;
+NC4EDCO2H = IGNORE ;
+MBOACO = IGNORE ;
+C6CYTONO = IGNORE ;
+BOXCOCHOO2 = IGNORE ;
+C142O = IGNORE ;
+MXYQO = IGNORE ;
+MIBKAOHAO2 = IGNORE ;
+HMVKBCO2H = IGNORE ;
+PXYLPAN = IGNORE ;
+C51NO32OOH = IGNORE ;
+DIET35TOL = IGNORE ;
+C86O2 = IGNORE ;
+MBOBCO = IGNORE ;
+C8CO2OHPAN = IGNORE ;
+CHOC2PAN = IGNORE ;
+PBZBPERNO3 = IGNORE ;
+DM35EBOH = IGNORE ;
+C53OH = IGNORE ;
+HCOCOHCO3H = IGNORE ;
+BOXPOLAOOH = IGNORE ;
+NBUTDBO2 = IGNORE ;
+NIPRBQOOH = IGNORE ;
+C5CO2DCO3H = IGNORE ;
+HO34CO6C8 = IGNORE ;
+OXYMUCCO = IGNORE ;
+NTMB2FUOOH = IGNORE ;
+DNOETOLO2 = IGNORE ;
+M3CO5C6 = IGNORE ;
+C9PAN1 = IGNORE ;
+NC4CO2H = IGNORE ;
+C9PAN2 = IGNORE ;
+MXCATEC1O = IGNORE ;
+C6OH5OOH = IGNORE ;
+PNNCATECO = IGNORE ;
+OXYEPOXMUC = IGNORE ;
+DNPBNZLO = IGNORE ;
+BOXCOCOMO2 = IGNORE ;
+CYC613DION = IGNORE ;
+TM123MUCO2 = IGNORE ;
+HOCO3C5OOH = IGNORE ;
+C4CODIAL = IGNORE ;
+IC3H7NO3 = IGNORE ;
+NDNMXYLOOH = IGNORE ;
+INCNCO3H = IGNORE ;
+C7MCO3OHO = IGNORE ;
+T123CTCOOA = IGNORE ;
+TM123MUCOH = IGNORE ;
+C5NO3O4OOH = IGNORE ;
+BCSOZO = IGNORE ;
+H2C3OCOOH = IGNORE ;
+HEX3ONCO = IGNORE ;
+C615O = IGNORE ;
+CO356C10 = IGNORE ;
+CO356C11 = IGNORE ;
+CO356C12 = IGNORE ;
+TDICLETH = IGNORE ;
+MC6OTRIKET = IGNORE ;
+CHOMOHPAN = IGNORE ;
+CLCOCCL2O2 = IGNORE ;
+EGLYOOD = IGNORE ;
+BCALCOOH = IGNORE ;
+C6NO3CO5O = IGNORE ;
+METLMUCO2H = IGNORE ;
+BCALBO2 = IGNORE ;
+HOCO3C4OOH = IGNORE ;
+C92O = IGNORE ;
+MVKOHAOH = IGNORE ;
+C7CO2OCO3H = IGNORE ;
+C4M2ALOHNO3 = IGNORE ;
+C732PAN = IGNORE ;
+CO2C4GLYOX = IGNORE ;
+DIEK = IGNORE ;
+BCALBOH = IGNORE ;
+ETBECOOH = IGNORE ;
+BCALBOC = IGNORE ;
+TM135BP2OH = IGNORE ;
+MXYOHNO2O = IGNORE ;
+INANCO3 = IGNORE ;
+C106OH = IGNORE ;
+C813O2 = IGNORE ;
+MXYMUCCO = IGNORE ;
+CO25C73O = IGNORE ;
+HM2C43CO3 = IGNORE ;
+C126CO3 = IGNORE ;
+EIPK = IGNORE ;
+MACR = IGNORE ;
+PRCATC1OOH = IGNORE ;
+MACRNCO3H = IGNORE ;
+CCL3CH2OOH = IGNORE ;
+NC2OOA = IGNORE ;
+IBUTOL = IGNORE ;
+NBUACETBO = IGNORE ;
+BCOOA = IGNORE ;
+BCOOB = IGNORE ;
+C106O2 = IGNORE ;
+CO3C4NO3 = IGNORE ;
+CH3CHCLOH = IGNORE ;
+C617OOH = IGNORE ;
+CLCOCLMEO2 = IGNORE ;
+HO1MC5OOH = IGNORE ;
+HO13C4O = IGNORE ;
+MO2EOLBO2 = IGNORE ;
+IPROPOL = IGNORE ;
+C715CO2O = IGNORE ;
+MET1OOH = IGNORE ;
+M2BUOL2O = IGNORE ;
+MEKAOOH = IGNORE ;
+C1010NO3 = IGNORE ;
+NOPINANO3 = IGNORE ;
+HONO = IGNORE ;
+C1012NO3 = IGNORE ;
+HO3C76O = IGNORE ;
+HOEMPHNO2 = IGNORE ;
+DNCRESOOH = IGNORE ;
+APINBOOH = IGNORE ;
+C133OOH = IGNORE ;
+OETLMUCNO3 = IGNORE ;
+C42CO3H = IGNORE ;
+C2OHOCOOH = IGNORE ;
+TMBPAN = IGNORE ;
+C58NO3 = IGNORE ;
+BCALOOH = IGNORE ;
+BUT2CO2H = IGNORE ;
+BCALOOA = IGNORE ;
+C1010O2 = IGNORE ;
+C126PAN = IGNORE ;
+C810OOH = IGNORE ;
+C622OH = IGNORE ;
+C6COCHOPAN = IGNORE ;
+CONM2CO3H = IGNORE ;
+NC4H9CHOOA = IGNORE ;
+C3COCCO3H = IGNORE ;
+HOCH2CHO = IGNORE ;
+C1010OH = IGNORE ;
+IEB1O2 = IGNORE ;
+HO24C5O2 = IGNORE ;
+C1H4C5CO2H = IGNORE ;
+ETHACETO2 = IGNORE ;
+IEPOXC = IGNORE ;
+IEPOXB = IGNORE ;
+IEPOXA = IGNORE ;
+APINCOOH = IGNORE ;
+IPRACOOH = IGNORE ;
+CO2N3CO3 = IGNORE ;
+C713OH = IGNORE ;
+C512OH = IGNORE ;
+C7M15CO2O = IGNORE ;
+IPRACBPAN = IGNORE ;
+MACO2H = IGNORE ;
+C122O = IGNORE ;
+NC91CO3 = IGNORE ;
+M2PEBO = IGNORE ;
+CO123C5CHO = IGNORE ;
+C730O = IGNORE ;
+HO2C4CO2H = IGNORE ;
+TMB1FUOOH = IGNORE ;
+IPRCHOO = IGNORE ;
+C512CO2H = IGNORE ;
+CH2OHCL2O2 = IGNORE ;
+CO23C54O = IGNORE ;
+HM2C43NO3 = IGNORE ;
+INB1NACHO = IGNORE ;
+M33C4O = IGNORE ;
+ETHACETOH = IGNORE ;
+PRCOOETOH = IGNORE ;
+ISOPANO3 = IGNORE ;
+PBZQO2 = IGNORE ;
+BOXPROLAO = IGNORE ;
+EPXDLPAN = IGNORE ;
+C921O = IGNORE ;
+PBNZOHNO2 = IGNORE ;
+C23O3MCOOH = IGNORE ;
+C923PAN = IGNORE ;
+C64OH5O = IGNORE ;
+C88CO2H = IGNORE ;
+CCL3CO3 = IGNORE ;
+C6OTRIKET = IGNORE ;
+C928CO3 = IGNORE ;
+HO3C86O = IGNORE ;
+HM33C3CO2H = IGNORE ;
+HO1C6O = IGNORE ;
+NOXYOL1OOH = IGNORE ;
+NPTLQO2 = IGNORE ;
+NC4H9CHOO = IGNORE ;
+NDEMPHOLO = IGNORE ;
+OXYBIPERO2 = IGNORE ;
+NPXYOLOOH = IGNORE ;
+PHCOOH = IGNORE ;
+C112OOH = IGNORE ;
+C5NO3COAO2 = IGNORE ;
+THEX2ENE = IGNORE ;
+C6DCARBBO = IGNORE ;
+H1C23C4PAN = IGNORE ;
+NBUACBNO3 = IGNORE ;
+IBUTALOH = IGNORE ;
+IPBZMUCPAN = IGNORE ;
+CH3CO3H = IGNORE ;
+PBZQOH = IGNORE ;
+INANO3 = IGNORE ;
+C610OH = IGNORE ;
+M23C43O = IGNORE ;
+DMEBMUCO3 = IGNORE ;
+DMEBMUCO2 = IGNORE ;
+APINBOO = IGNORE ;
+M2BU2OLOOH = IGNORE ;
+CO235C6O2 = IGNORE ;
+ETOLOOH = IGNORE ;
+IPBENZO = IGNORE ;
+NDNEBZLOOH = IGNORE ;
+TM135OBPOH = IGNORE ;
+M2HEXBOOH = IGNORE ;
+LMKBCO = IGNORE ;
+NC4CHO = IGNORE ;
+APINBO2 = IGNORE ;
+C521O = IGNORE ;
+C7CO2M5O2 = IGNORE ;
+MPRNO3CO2H = IGNORE ;
+C4OHCHO = IGNORE ;
+C610O2 = IGNORE ;
+C141NO3 = IGNORE ;
+T123CATECH = IGNORE ;
+PEN2ONE1O = IGNORE ;
+APINANO3 = IGNORE ;
+C515CO = IGNORE ;
+HMACRO2 = IGNORE ;
+IPCATECHOL = IGNORE ;
+PRCOFORM = IGNORE ;
+LMLKACO = IGNORE ;
+EBENZOL = IGNORE ;
+C811PAN = IGNORE ;
+ALLYLOH = IGNORE ;
+C87OOH = IGNORE ;
+C729PAN = IGNORE ;
+C141CO3H = IGNORE ;
+NLMKAO2 = IGNORE ;
+C926O2 = IGNORE ;
+CHCL2CHOH = IGNORE ;
+OETLMUCO2H = IGNORE ;
+EBENZO2 = IGNORE ;
+PCATEC1OOH = IGNORE ;
+C127NO3 = IGNORE ;
+C4NO32M1O = IGNORE ;
+IPROPOLO2H = IGNORE ;
+ETOC2O2 = IGNORE ;
+EPXEKTCO3 = IGNORE ;
+HMACROH = IGNORE ;
+EIPKBO = IGNORE ;
+NC8H18 = IGNORE ;
+H1C23C4CHO = IGNORE ;
+LMKAOOH = IGNORE ;
+C929O2 = IGNORE ;
+C6H5CH2CHO = IGNORE ;
+PROPGLY = IGNORE ;
+CO2C54CO3 = IGNORE ;
+C6H5C2H4O = IGNORE ;
+IEC2OOH = IGNORE ;
+TM135BZOL = IGNORE ;
+OXYLOH = IGNORE ;
+OXYLOL = IGNORE ;
+SBUACAOH = IGNORE ;
+C524OH = IGNORE ;
+OXYFUONE = IGNORE ;
+CO23C4CO3 = IGNORE ;
+C524O2 = IGNORE ;
+SC4H9O = IGNORE ;
+OXYLO2 = IGNORE ;
+CCL2OHCOCL = IGNORE ;
+C72O = IGNORE ;
+C621OOH = IGNORE ;
+TM124BO2 = IGNORE ;
+CO1M22CO2H = IGNORE ;
+LMKBOOH = IGNORE ;
+C96OOH = IGNORE ;
+HOCHOCOOH = IGNORE ;
+PETLMUCPAN = IGNORE ;
+HEX3ONAO = IGNORE ;
+C617O = IGNORE ;
+CHOC3COOOH = IGNORE ;
+C52OH3OOH = IGNORE ;
+MMALNBCO2H = IGNORE ;
+C94O = IGNORE ;
+NMBOBCO = IGNORE ;
+C56NO3 = IGNORE ;
+DNOETOLOOH = IGNORE ;
+MACROHO = IGNORE ;
+EBZBPERNO3 = IGNORE ;
+C620OOH = IGNORE ;
+NBUTOLBOOH = IGNORE ;
+MIPKBOOH = IGNORE ;
+C624CO3H = IGNORE ;
+C97OOH = IGNORE ;
+PBZQOOH = IGNORE ;
+NPPRBQO = IGNORE ;
+CH3COCH2O2 = IGNORE ;
+DM124OOH = IGNORE ;
+ISOPAOH = IGNORE ;
+C5DCO2CO3H = IGNORE ;
+PAN = IGNORE ;
+C77OH = IGNORE ;
+OXNCATECH = IGNORE ;
+OXNCATECO = IGNORE ;
+C8CO2OHCO3 = IGNORE ;
+DETLMUO3H = IGNORE ;
+C77O2 = IGNORE ;
+EBZMUCCO = IGNORE ;
+MPRKBOOH = IGNORE ;
+BCKSOZ = IGNORE ;
+PCATECOOA = IGNORE ;
+LIMAO2 = IGNORE ;
+CCL3CH2OH = IGNORE ;
+M22C4OOH = IGNORE ;
+NPETLQO = IGNORE ;
+EPXMEDLPAN = IGNORE ;
+HMACO3 = IGNORE ;
+C42OOH = IGNORE ;
+CH3CHOHCO3 = IGNORE ;
+CO3C85OOH = IGNORE ;
+ETBEBOH = IGNORE ;
+C520OH = IGNORE ;
+MEMOXYCHO = IGNORE ;
+HO24C4CHO = IGNORE ;
+HOC3H6CO3H = IGNORE ;
+NIPBFUONE = IGNORE ;
+OCTOOH = IGNORE ;
+C6DIALO = IGNORE ;
+MACRNOOA = IGNORE ;
+MCOOTBOOH = IGNORE ;
+LIMAOH = IGNORE ;
+CCL3CH2O2 = IGNORE ;
+EBZPOXMUC = IGNORE ;
+TM123OBPOH = IGNORE ;
+MIBKAOHBO = IGNORE ;
+CO3C4CHO = IGNORE ;
+C52OH = IGNORE ;
+DIETETHER = IGNORE ;
+C43NO3PAN = IGNORE ;
+NOPINCOH = IGNORE ;
+C829O2 = IGNORE ;
+BUT2OLOOH = IGNORE ;
+C74O = IGNORE ;
+IPROACETO = IGNORE ;
+NOPINCO2 = IGNORE ;
+C829OH = IGNORE ;
+C42MNO3OOH = IGNORE ;
+C52O2 = IGNORE ;
+C722O2 = IGNORE ;
+HC4ACO2H = IGNORE ;
+DICLETO2H = IGNORE ;
+C55O = IGNORE ;
+C7CDCCO2H = IGNORE ;
+C818O = IGNORE ;
+DNOXYOLO = IGNORE ;
+H2M2C65O2 = IGNORE ;
+CO2C3CO3H = IGNORE ;
+DMKCOOH = IGNORE ;
+NC12H26 = IGNORE ;
+M33C4NO3 = IGNORE ;
+C65OH4OOH = IGNORE ;
+C4OH2CO3 = IGNORE ;
+ACETC2H4O2 = IGNORE ;
+DDECOOH = IGNORE ;
+M2PEDO = IGNORE ;
+HOCH2CO3H = IGNORE ;
+C6EO2OHPAN = IGNORE ;
+PR2O2HNO3 = IGNORE ;
+TLEMUCCO3H = IGNORE ;
+SBUACCOOH = IGNORE ;
+ME3BUOLO2 = IGNORE ;
+C6COCHOO = IGNORE ;
+CH3COCH2O = IGNORE ;
+MXYQOH = IGNORE ;
+HEX2ONBO2 = IGNORE ;
+C6H5CH2O = IGNORE ;
+LMKAO = IGNORE ;
+C87CO3H = IGNORE ;
+C84OH = IGNORE ;
+HO4C5CO3H = IGNORE ;
+MXYQO2 = IGNORE ;
+MTBEAALNO3 = IGNORE ;
+PHCOME = IGNORE ;
+PMALNHY2OH = IGNORE ;
+C732NO3 = IGNORE ;
+C1011OH = IGNORE ;
+HO2C4CO3 = IGNORE ;
+NOXYOLO2 = IGNORE ;
+C6DCARBBO2 = IGNORE ;
+METLBPROOH = IGNORE ;
+MPRKAO = IGNORE ;
+ETBEBO = IGNORE ;
+HO1CO24C5 = IGNORE ;
+HO1CO24C6 = IGNORE ;
+EIPEO = IGNORE ;
+PETOH = IGNORE ;
+C5O5OHCO3H = IGNORE ;
+H3M3C5CO2H = IGNORE ;
+NOXYOLOH = IGNORE ;
+C1011O2 = IGNORE ;
+HC4CCO3H = IGNORE ;
+EIPKBNO3 = IGNORE ;
+C5DICARB = IGNORE ;
+M23C4 = IGNORE ;
+INB2O = IGNORE ;
+PXYLOH = IGNORE ;
+C3EDIALO2 = IGNORE ;
+PXYLOL = IGNORE ;
+BCSOZOOH = IGNORE ;
+NC730O = IGNORE ;
+NT124L1O = IGNORE ;
+HMACROOH = IGNORE ;
+PE2ENEBO2 = IGNORE ;
+OXYLNO3 = IGNORE ;
+DM124OHNO2 = IGNORE ;
+M2PEDNO3 = IGNORE ;
+HO4C5CO3 = IGNORE ;
+C3H7CHOOB = IGNORE ;
+C3H7CHOOA = IGNORE ;
+CO3C5CO3 = IGNORE ;
+BCSOZ = IGNORE ;
+ACEBUTBONE = IGNORE ;
+C7MCO3OHO2 = IGNORE ;
+C3EDIALOH = IGNORE ;
+PXYLO2 = IGNORE ;
+CO245C7 = IGNORE ;
+PTLQCO = IGNORE ;
+BOXPOLBNO3 = IGNORE ;
+CO2H3CO3 = IGNORE ;
+NPBNZOLO = IGNORE ;
+CHOC4O = IGNORE ;
+MTBKOH = IGNORE ;
+NBUTDBNO3 = IGNORE ;
+PNCATECO = IGNORE ;
+PNCATECH = IGNORE ;
+C4MCONO3OH = IGNORE ;
+C1013OH = IGNORE ;
+C5H11CHO = IGNORE ;
+C7DICARB = IGNORE ;
+C5DBECO3 = IGNORE ;
+C108OOH = IGNORE ;
+NMXYOL1OOH = IGNORE ;
+CLGLYOX = IGNORE ;
+TMB2FUOH = IGNORE ;
+PRONEMOOOH = IGNORE ;
+DIBRETO2H = IGNORE ;
+TM123O2 = IGNORE ;
+OETLQONE = IGNORE ;
+C4MCONO3O2 = IGNORE ;
+C4PAN10 = IGNORE ;
+C62NO33O2 = IGNORE ;
+C524OOH = IGNORE ;
+C4H9CO3 = IGNORE ;
+C611O = IGNORE ;
+MTBKO2 = IGNORE ;
+C67OOH = IGNORE ;
+SBUACONEO2 = IGNORE ;
+HCC7CO = IGNORE ;
+PRONEMOX = IGNORE ;
+C2H5MECOO = IGNORE ;
+C61CO3H = IGNORE ;
+C23O3ECO3H = IGNORE ;
+TMBNO3 = IGNORE ;
+PEBQO2 = IGNORE ;
+BCCNO3 = IGNORE ;
+NPETOL1O = IGNORE ;
+C77OOH = IGNORE ;
+NC101O = IGNORE ;
+C96O = IGNORE ;
+HO3C5CO2H = IGNORE ;
+C4OH2CO3H = IGNORE ;
+PPRBQONE = IGNORE ;
+BUTALO = IGNORE ;
+MIBK = IGNORE ;
+PEBQOH = IGNORE ;
+CCL2CH2 = IGNORE ;
+ACO3B = IGNORE ;
+INAHCO3 = IGNORE ;
+NBUTOL = IGNORE ;
+C137OOH = IGNORE ;
+C525OOH = IGNORE ;
+C4CHOAO2 = IGNORE ;
+C137CO2H = IGNORE ;
+MTNNCATCO2 = IGNORE ;
+HO2C6O2 = IGNORE ;
+NC71CO = IGNORE ;
+CHOC4OHO = IGNORE ;
+C4ME2OHO2 = IGNORE ;
+C3DIOLOOH = IGNORE ;
+C45IC5CHO = IGNORE ;
+TM124OXMUC = IGNORE ;
+HCOCH2CHO = IGNORE ;
+PBENZOL = IGNORE ;
+NLIMALOH = IGNORE ;
+C614NO3 = IGNORE ;
+C74OOH = IGNORE ;
+HEX3ONBOOH = IGNORE ;
+CNO3CLO = IGNORE ;
+BOXEOHBNO3 = IGNORE ;
+TLBIPERO = IGNORE ;
+M2HEX = IGNORE ;
+MPRANO3O2 = IGNORE ;
+C518CO3H = IGNORE ;
+PRNFORMOOH = IGNORE ;
+HM22C3CHO = IGNORE ;
+OXNCATCOOH = IGNORE ;
+ACBUONEBO2 = IGNORE ;
+CYC6DIONE = IGNORE ;
+ACEC2H4NO3 = IGNORE ;
+CYC6DIONO = IGNORE ;
+C4ALDB = IGNORE ;
+NTMB1FUO2 = IGNORE ;
+HO13C3CHO = IGNORE ;
+C85CO3H = IGNORE ;
+BPINBOOH = IGNORE ;
+MXNCATCOOH = IGNORE ;
+C58NO3CO3 = IGNORE ;
+C811OH = IGNORE ;
+C101O2 = IGNORE ;
+ETHACETOOH = IGNORE ;
+HM22C3NO3 = IGNORE ;
+C7DCO = IGNORE ;
+HO12C5 = IGNORE ;
+NCRESO2 = IGNORE ;
+C6CO134PAN = IGNORE ;
+PE2ENEANO3 = IGNORE ;
+METLQOH = IGNORE ;
+MCATEC1O = IGNORE ;
+PXYOLOH = IGNORE ;
+CO2C54CO2H = IGNORE ;
+METLQO2 = IGNORE ;
+PETOLOOH = IGNORE ;
+TC4H9O = IGNORE ;
+H3C25CCO2H = IGNORE ;
+H3C25C6OOH = IGNORE ;
+NCRESOH = IGNORE ;
+OETHTOL = IGNORE ;
+C829NO3 = IGNORE ;
+C811O2 = IGNORE ;
+HNMVKO = IGNORE ;
+OTNCATECO2 = IGNORE ;
+MMF = IGNORE ;
+C610NO3 = IGNORE ;
+NORPINAL = IGNORE ;
+C6H5CH2NO3 = IGNORE ;
+CLETO2H = IGNORE ;
+C95OOH = IGNORE ;
+H3C25C6PAN = IGNORE ;
+DNEBNZLO = IGNORE ;
+PETOLO = IGNORE ;
+C23O3CCO2H = IGNORE ;
+PEANO3 = IGNORE ;
+HYPROPO2H = IGNORE ;
+METLMUCNO3 = IGNORE ;
+C9M3CO = IGNORE ;
+T124CATECH = IGNORE ;
+NDMMALYOOH = IGNORE ;
+INCNCHO = IGNORE ;
+C7MCO2OOH = IGNORE ;
+C57O = IGNORE ;
+H3M2C4CO3H = IGNORE ;
+OXYBIPENO3 = IGNORE ;
+DMEBMUOOH = IGNORE ;
+NC61CO3H = IGNORE ;
+C517OOH = IGNORE ;
+CHOBR = IGNORE ;
+MTNNCATCO = IGNORE ;
+C89PAN = IGNORE ;
+C52NO31OOH = IGNORE ;
+NT124L1OOH = IGNORE ;
+CHOC4DOLO = IGNORE ;
+C134OOH = IGNORE ;
+C734O = IGNORE ;
+C2H5O = IGNORE ;
+APINOOB = IGNORE ;
+APINOOA = IGNORE ;
+C3M3OH2CO3 = IGNORE ;
+NDNMXYOLO = IGNORE ;
+C113OOH = IGNORE ;
+HO7CO10C12 = IGNORE ;
+DNPHENOOH = IGNORE ;
+ECO4 = IGNORE ;
+C62CO3 = IGNORE ;
+H2M4C65OOH = IGNORE ;
+C518CO3 = IGNORE ;
+NBUACAOOH = IGNORE ;
+C148O = IGNORE ;
+C103OOH = IGNORE ;
+ME3BUT1ENE = IGNORE ;
+H13CO2CO3H = IGNORE ;
+IPRCHO = IGNORE ;
+CO24C6O = IGNORE ;
+DNMETOLOOH = IGNORE ;
+C65NO36O2 = IGNORE ;
+PHCHOO = IGNORE ;
+IECCHO = IGNORE ;
+M3PEAOOH = IGNORE ;
+M3PEBOOH = IGNORE ;
+MC3CODBPAN = IGNORE ;
+IPROMC2NO3 = IGNORE ;
+OETLBPR2OH = IGNORE ;
+OETLBIPNO3 = IGNORE ;
+C5O45OHCO3 = IGNORE ;
+HO3C5CHO = IGNORE ;
+PROL11MO2 = IGNORE ;
+MALANHYO2 = IGNORE ;
+DMEPHOLOOH = IGNORE ;
+NDMMALYO2 = IGNORE ;
+NPBFUO2 = IGNORE ;
+LMKBO2 = IGNORE ;
+CO25C6O2 = IGNORE ;
+HO13C4NO3 = IGNORE ;
+C4DBDIKET = IGNORE ;
+APINBCO = IGNORE ;
+TLFUONE = IGNORE ;
+C64OH5OOH = IGNORE ;
+C617CHO = IGNORE ;
+C136NO3 = IGNORE ;
+MMALNHYOOH = IGNORE ;
+NC4H9O2 = IGNORE ;
+CO25C6OH = IGNORE ;
+LMKBOO = IGNORE ;
+CO234C6OOH = IGNORE ;
+C3DBCO3H = IGNORE ;
+C7BDICARB = IGNORE ;
+PETLBIPNO3 = IGNORE ;
+C525O = IGNORE ;
+MTBKOOH = IGNORE ;
+C52OH1OOH = IGNORE ;
+HO24C5OOH = IGNORE ;
+HO3C96NO3 = IGNORE ;
+GAOO = IGNORE ;
+BOXCOCHOO = IGNORE ;
+PXYLCO3H = IGNORE ;
+BUT2OLNO3 = IGNORE ;
+T124CT1OOH = IGNORE ;
+M3C4CO3H = IGNORE ;
+C628O = IGNORE ;
+C51O2 = IGNORE ;
+IECPAN = IGNORE ;
+HIEB1O = IGNORE ;
+INB1HPCO3H = IGNORE ;
+BPINENE = IGNORE ;
+C107OOH = IGNORE ;
+C51OH = IGNORE ;
+LMLKBO = IGNORE ;
+CH2CLO2 = IGNORE ;
+C142OH = IGNORE ;
+MMALNBPAN = IGNORE ;
+PBFUO = IGNORE ;
+C3ME3CHO = IGNORE ;
+MXYFUOOH = IGNORE ;
+CHOC2CO2H = IGNORE ;
+MEKCO = IGNORE ;
+C618CO3H = IGNORE ;
+C613O = IGNORE ;
+C612O2 = IGNORE ;
+EMALANHYO = IGNORE ;
+PHENOOH = IGNORE ;
+CHCL2CL2O = IGNORE ;
+NPETOLO = IGNORE ;
+ETOMECO2H = IGNORE ;
+C5124COCO3 = IGNORE ;
+BCBO = IGNORE ;
+COHM2CO3 = IGNORE ;
+CH3CHCLOOH = IGNORE ;
+C4M22CONO3 = IGNORE ;
+LIMKET = IGNORE ;
+HO2C43CHO = IGNORE ;
+METOH = IGNORE ;
+HNO3 = IGNORE ;
+PETLPOXMUC = IGNORE ;
+C53NO32CO = IGNORE ;
+C514NO3 = IGNORE ;
+PPEN = IGNORE ;
+C612OH = IGNORE ;
+C6H5C2OOH = IGNORE ;
+C76O = IGNORE ;
+MO2EOLANO3 = IGNORE ;
+DMPHOHNO2 = IGNORE ;
+EOCOCHO = IGNORE ;
+IPEBOH = IGNORE ;
+OETOLOOH = IGNORE ;
+ACCOPRONE = IGNORE ;
+C523OH = IGNORE ;
+CHCL2CL2O2 = IGNORE ;
+M2PECOH = IGNORE ;
+H13M3CO4C5 = IGNORE ;
+NC826O = IGNORE ;
+COHM2PAN = IGNORE ;
+CO45C5CHO = IGNORE ;
+CHOOCH2O2 = IGNORE ;
+C98O = IGNORE ;
+C7BDCO2 = IGNORE ;
+C64OH5NO3 = IGNORE ;
+C7BDCOH = IGNORE ;
+NMBOBO2 = IGNORE ;
+CHOOCH2OH = IGNORE ;
+CH3COCCLO2 = IGNORE ;
+CHCL2CH2O2 = IGNORE ;
+IBUTDIAL = IGNORE ;
+PBZBIPERO = IGNORE ;
+M2PECO2 = IGNORE ;
+CHCL2CL2OH = IGNORE ;
+C729CO3H = IGNORE ;
+IPEBO2 = IGNORE ;
+PRPAL2CO3H = IGNORE ;
+ETACETOH = IGNORE ;
+C1310CO = IGNORE ;
+LIMALNO3 = IGNORE ;
+UDECOOH = IGNORE ;
+CO356OCO = IGNORE ;
+C84OOH = IGNORE ;
+HO2M2C4O2 = IGNORE ;
+NC4H9NO3 = IGNORE ;
+CH3CCH3OOA = IGNORE ;
+NMXYOL1O = IGNORE ;
+NC102O2 = IGNORE ;
+ACCOMCOMO = IGNORE ;
+CL12PRBO = IGNORE ;
+IPBFUONE = IGNORE ;
+NAPINAOOH = IGNORE ;
+C101O = IGNORE ;
+NLIMO = IGNORE ;
+LIMALO2 = IGNORE ;
+C72OH = IGNORE ;
+METACETO2H = IGNORE ;
+DM123O2 = IGNORE ;
+COCCOHNO3 = IGNORE ;
+CH3CCL2OH = IGNORE ;
+HCOCH2OOH = IGNORE ;
+MCOCOMOOOH = IGNORE ;
+C63NO32CO = IGNORE ;
+C720OOH = IGNORE ;
+C7M6CO2OOH = IGNORE ;
+C7M6CO2OH = IGNORE ;
+NBZFUONE = IGNORE ;
+DMCO = IGNORE ;
+C7M6CO2O2 = IGNORE ;
+ETOMENO3 = IGNORE ;
+NIPBNZOLO2 = IGNORE ;
+BUT2CHO = IGNORE ;
+HO2C3CHO = IGNORE ;
+CH3CCL2O2 = IGNORE ;
+NOPINOOA = IGNORE ;
+C43NO34OOH = IGNORE ;
+EPXM2DCO3H = IGNORE ;
+C72O2 = IGNORE ;
+COCCOHCO = IGNORE ;
+IP3ODBCO2H = IGNORE ;
+C23O3ECHO = IGNORE ;
+LIMALOH = IGNORE ;
+C7CO3OHO = IGNORE ;
+PE1ENEAO = IGNORE ;
+BUFORMO = IGNORE ;
+NDMMALYO = IGNORE ;
+C23O3CCHO = IGNORE ;
+INDHPCHO = IGNORE ;
+DMMALYOH = IGNORE ;
+C734CO = IGNORE ;
+HO1MC5O = IGNORE ;
+TM123BNO3 = IGNORE ;
+MBOBO = IGNORE ;
+DMMALYO = IGNORE ;
+C23O3MOH = IGNORE ;
+C65NO36CO3 = IGNORE ;
+C78OOH = IGNORE ;
+C4M2NO3OOH = IGNORE ;
+C721OOH = IGNORE ;
+PBZMUCCO2H = IGNORE ;
+INCNPAN = IGNORE ;
+C4CO2O2 = IGNORE ;
+HO3C4CHO = IGNORE ;
+IPEAOOH = IGNORE ;
+NBUTOLAOOH = IGNORE ;
+OETLQO = IGNORE ;
+OETLPOXMUC = IGNORE ;
+DMMALYO2 = IGNORE ;
+C5124COPAN = IGNORE ;
+HOC6H4NO2 = IGNORE ;
+C4CO2DBCO3 = IGNORE ;
+C66NO35O2 = IGNORE ;
+DECOOH = IGNORE ;
+C51O = IGNORE ;
+MBOANO3 = IGNORE ;
+MNCATECH = IGNORE ;
+C8BCOH = IGNORE ;
+MNCATECO = IGNORE ;
+INB1OH = IGNORE ;
+IPRCOMO = IGNORE ;
+MO2EOLAO2 = IGNORE ;
+NC5MDCO2H = IGNORE ;
+EBZBIPERO2 = IGNORE ;
+C116CHO = IGNORE ;
+PEAO2 = IGNORE ;
+NOPINCNO3 = IGNORE ;
+MPRKAOOH = IGNORE ;
+C8CO3OHO2 = IGNORE ;
+CO2M33CO3H = IGNORE ;
+CHOC2CO3 = IGNORE ;
+HO3C6OOH = IGNORE ;
+INB1O2 = IGNORE ;
+C1011OOH = IGNORE ;
+DMCOOH = IGNORE ;
+C8BCO2 = IGNORE ;
+HO1CO34C5 = IGNORE ;
+HO3C106O = IGNORE ;
+LIMCNO3 = IGNORE ;
+DNMETOL = IGNORE ;
+NMGLYOX = IGNORE ;
+HM22C3OOH = IGNORE ;
+STYRENO = IGNORE ;
+STYRENE = IGNORE ;
+BRETO3H = IGNORE ;
+CO25C6CO3H = IGNORE ;
+C87OH = IGNORE ;
+C823O = IGNORE ;
+IPROMCCHO = IGNORE ;
+CH3SO = IGNORE ;
+CO23C54OOH = IGNORE ;
+C46CO3H = IGNORE ;
+C87O2 = IGNORE ;
+BUTONENO3 = IGNORE ;
+C5CO2OHCO3 = IGNORE ;
+PERPINONIC = IGNORE ;
+NC4DCO2 = IGNORE ;
+C830CO3H = IGNORE ;
+ECATEC1O2 = IGNORE ;
+CHOCOCH2O = IGNORE ;
+C88OH = IGNORE ;
+C108O2 = IGNORE ;
+C519O2 = IGNORE ;
+H2C3OCO2 = IGNORE ;
+BRETAL = IGNORE ;
+HEXBO = IGNORE ;
+CHCL3O = IGNORE ;
+C68NO3 = IGNORE ;
+C108OH = IGNORE ;
+BZBIPER2OH = IGNORE ;
+C88O2 = IGNORE ;
+ETBEACO3H = IGNORE ;
+C6CO3HO14 = IGNORE ;
+HMPAN = IGNORE ;
+C7EDCO = IGNORE ;
+OETLMUCO2 = IGNORE ;
+HO1CO3CHO = IGNORE ;
+H2C3OCNO3 = IGNORE ;
+H13M3C5NO3 = IGNORE ;
+C4CONO3OOH = IGNORE ;
+C6O4KETOOH = IGNORE ;
+ACEBUTONE = IGNORE ;
+C147OOH = IGNORE ;
+DIIPRETNO3 = IGNORE ;
+C131CO2H = IGNORE ;
+C645OH = IGNORE ;
+NMXYFUO = IGNORE ;
+CY6DIONOOH = IGNORE ;
+MTBEBOOH = IGNORE ;
+NC4IPDCO2H = IGNORE ;
+MIBKHO4O2 = IGNORE ;
+H3NCO2CHO = IGNORE ;
+C7DDCCO3H = IGNORE ;
+MEKAO = IGNORE ;
+C828O = IGNORE ;
+C7ADCCO2 = IGNORE ;
+C7ADCCO3 = IGNORE ;
+C6H5O2 = IGNORE ;
+EBFUCO = IGNORE ;
+INCCO = IGNORE ;
+PEBNO3 = IGNORE ;
+C923O = IGNORE ;
+MC7CO2OOH = IGNORE ;
+C512CO3 = IGNORE ;
+C4ME2OHO = IGNORE ;
+PRONFORM = IGNORE ;
+LIMALBOOH = IGNORE ;
+DMEBPR2OH = IGNORE ;
+CH3OCH3 = IGNORE ;
+NDNPETOLO2 = IGNORE ;
+H3M3C6O2 = IGNORE ;
+HEX3ONCOOH = IGNORE ;
+MIPKAOOH = IGNORE ;
+C7CO3OHO2 = IGNORE ;
+C1211OOH = IGNORE ;
+NAPINAO = IGNORE ;
+C812O2 = IGNORE ;
+MIBKAOOH = IGNORE ;
+EMPHPAN = IGNORE ;
+OXYOLOOH = IGNORE ;
+C4M2ALOHO2 = IGNORE ;
+M3BUTAL2O = IGNORE ;
+DETLBPROOH = IGNORE ;
+NMXYOLO = IGNORE ;
+H25M2C6 = IGNORE ;
+C812OH = IGNORE ;
+OXYLAL = IGNORE ;
+C105O2 = IGNORE ;
+C5CO23O2 = IGNORE ;
+C718CO2H = IGNORE ;
+HOC4H8OH = IGNORE ;
+OXCATEC1O2 = IGNORE ;
+NBPINBO2 = IGNORE ;
+BOX2OHAOOH = IGNORE ;
+IPCATC1OOH = IGNORE ;
+C515PAN = IGNORE ;
+SA = IGNORE ;
+CH3OCHO = IGNORE ;
+C6DIAL = IGNORE ;
+C6NO3COOOH = IGNORE ;
+C6EO2OHCO3 = IGNORE ;
+DNT123LOOH = IGNORE ;
+PXNCATECO2 = IGNORE ;
+EIPEOH = IGNORE ;
+M2PEDOOH = IGNORE ;
+PRNO3PAN = IGNORE ;
+C6O4KETO = IGNORE ;
+C129OH = IGNORE ;
+C4ME2OHOOH = IGNORE ;
+MIPKBOH = IGNORE ;
+C4MCONO3O = IGNORE ;
+NC4MDCO2 = IGNORE ;
+INCO = IGNORE ;
+H25M3C6 = IGNORE ;
+MIPKBO2 = IGNORE ;
+ME3BUOLOOH = IGNORE ;
+MTCATECOOA = IGNORE ;
+EPXKTMCO2H = IGNORE ;
+HO3C96O = IGNORE ;
+C152O = IGNORE ;
+EIPEO2 = IGNORE ;
+CH3O2NO2 = IGNORE ;
+C136OOH = IGNORE ;
+C88CO3 = IGNORE ;
+C823CO3 = IGNORE ;
+NMBOBOOH = IGNORE ;
+C103O = IGNORE ;
+DIEKAOH = IGNORE ;
+C66NO35OH = IGNORE ;
+HOC2H4CHO = IGNORE ;
+PHIC3OH = IGNORE ;
+HEXAOH = IGNORE ;
+PHCOMEOOH = IGNORE ;
+C141CO2H = IGNORE ;
+C4DBMEPAN = IGNORE ;
+DNMXYOL = IGNORE ;
+SBUACETAO = IGNORE ;
+C3ME3CO2H = IGNORE ;
+HEXAO2 = IGNORE ;
+PHIC3O2 = IGNORE ;
+C61CO3 = IGNORE ;
+PXNCATCOOH = IGNORE ;
+HOIPRCO3 = IGNORE ;
+PE1ENEBNO3 = IGNORE ;
+DIEKAO2 = IGNORE ;
+APINBNO3 = IGNORE ;
+OETLBIPRO2 = IGNORE ;
+HCOOH = IGNORE ;
+C58NO3PAN = IGNORE ;
+BZFUONE = IGNORE ;
+NMEBFUO = IGNORE ;
+C5CO23CHO = IGNORE ;
+C4CHOAOOH = IGNORE ;
+C4ME3HO12 = IGNORE ;
+BPINBO = IGNORE ;
+HO3C126O = IGNORE ;
+C718NO3 = IGNORE ;
+C810NO3 = IGNORE ;
+C710O2 = IGNORE ;
+HOCH2CO3 = IGNORE ;
+C917OOH = IGNORE ;
+CH2OOG = IGNORE ;
+CH2OOF = IGNORE ;
+CH2OOE = IGNORE ;
+CH2OOD = IGNORE ;
+CH2OOC = IGNORE ;
+CH2OOB = IGNORE ;
+CH2OOA = IGNORE ;
+CO3H4CO3H = IGNORE ;
+C63OOH = IGNORE ;
+C4NO3CHO = IGNORE ;
+SO2 = IGNORE ;
+PETLBIPRO = IGNORE ;
+BUT2OLO = IGNORE ;
+NMETOL1O = IGNORE ;
+C511OOH = IGNORE ;
+MC4CODBCO2 = IGNORE ;
+MC4CODBCO3 = IGNORE ;
+PRCOOMO = IGNORE ;
+ETOMEO = IGNORE ;
+CLOHCO2H = IGNORE ;
+NBUACBOOH = IGNORE ;
+PXYMUCOOH = IGNORE ;
+MPRBNO3O = IGNORE ;
+C53O = IGNORE ;
+C828CO3 = IGNORE ;
+MEKAO2 = IGNORE ;
+IPNNCATCO2 = IGNORE ;
+PE2ONE1OOH = IGNORE ;
+MC7CO2O2 = IGNORE ;
+METLBIPRO = IGNORE ;
+C68O = IGNORE ;
+ACETMECO3H = IGNORE ;
+MC7CO2OH = IGNORE ;
+LIMALAOOH = IGNORE ;
+MEKAOH = IGNORE ;
+C65OOH = IGNORE ;
+C7DCOOH = IGNORE ;
+PROL1MCHO = IGNORE ;
+C4MCO2O = IGNORE ;
+H1CO23CHO = IGNORE ;
+NMXYFUOOH = IGNORE ;
+DMSO2 = IGNORE ;
+HEX3ONE = IGNORE ;
+C929O = IGNORE ;
+HOC4CHOO = IGNORE ;
+C126OOH = IGNORE ;
+MPHCOMEOOH = IGNORE ;
+C82O = IGNORE ;
+C617OH = IGNORE ;
+DIEKAO = IGNORE ;
+NLIMOOH = IGNORE ;
+CH3CCL2O = IGNORE ;
+C821O = IGNORE ;
+C522CO2H = IGNORE ;
+C7DCCO3H = IGNORE ;
+CHCL2CHCL2 = IGNORE ;
+HOCH2CH2O2 = IGNORE ;
+NSTYRENEO = IGNORE ;
+CO12C4CHO = IGNORE ;
+IEAPAN = IGNORE ;
+C617O2 = IGNORE ;
+DETLMUCO = IGNORE ;
+BUTALNO3 = IGNORE ;
+DE35TNO3 = IGNORE ;
+C729O = IGNORE ;
+ME3BUOL = IGNORE ;
+COC4NO3OOH = IGNORE ;
+NCATECHOL = IGNORE ;
+ETBEAPAN = IGNORE ;
+C622CO3 = IGNORE ;
+MACROHO2 = IGNORE ;
+C629OOA = IGNORE ;
+C127OOH = IGNORE ;
+ETOLNO3 = IGNORE ;
+NPXYQOOH = IGNORE ;
+H1C23C4CO3 = IGNORE ;
+C823CO3H = IGNORE ;
+ETACETNO3 = IGNORE ;
+C711OOH = IGNORE ;
+INB1NO3 = IGNORE ;
+BUTALAO2 = IGNORE ;
+CH3CO2H = IGNORE ;
+CL2OHCHO = IGNORE ;
+EMPHCOMOOH = IGNORE ;
+C3COCCHO = IGNORE ;
+APINAOOH = IGNORE ;
+IPMLNHYOOH = IGNORE ;
+CO25C6 = IGNORE ;
+CO25C7 = IGNORE ;
+C928O2 = IGNORE ;
+C4CHOBNO3 = IGNORE ;
+C715OOH = IGNORE ;
+C5DBCOCO2H = IGNORE ;
+HO3C4O2 = IGNORE ;
+C6CO3OH5O = IGNORE ;
+NMETOL1OOH = IGNORE ;
+C3DIALO2 = IGNORE ;
+EPXEKTCO2H = IGNORE ;
+EMPHOOH = IGNORE ;
+ACETMEPAN = IGNORE ;
+CPENT2ENE = IGNORE ;
+NORLIMOOH = IGNORE ;
+DNOETOLO = IGNORE ;
+MCOOTBO = IGNORE ;
+NOPINBOOH = IGNORE ;
+NDNT123OOH = IGNORE ;
+C928OH = IGNORE ;
+HO3C4OOH = IGNORE ;
+C114OOH = IGNORE ;
+C519OOH = IGNORE ;
+BOX2E2OH = IGNORE ;
+NBUTOLBNO3 = IGNORE ;
+ECO3CO3 = IGNORE ;
+INB2O2 = IGNORE ;
+BCALCCO = IGNORE ;
+TM123OLO = IGNORE ;
+C624O = IGNORE ;
+C6O4KETO2 = IGNORE ;
+PBENZOOH = IGNORE ;
+CH3COCL = IGNORE ;
+NIPRBQO2 = IGNORE ;
+M2BUOL2NO3 = IGNORE ;
+DNT124LOOH = IGNORE ;
+DIETETOH = IGNORE ;
+PINONIC = IGNORE ;
+C1211CO2H = IGNORE ;
+C2OHOCO2H = IGNORE ;
+C85OOH = IGNORE ;
+ISOPBOH = IGNORE ;
+C135O2 = IGNORE ;
+HOBUT2CO2H = IGNORE ;
+CCL3CO3H = IGNORE ;
+BCALCO = IGNORE ;
+C69OOH = IGNORE ;
+ISOPBO2 = IGNORE ;
+C6COCHOO2 = IGNORE ;
+BOXPR2OH = IGNORE ;
+C6TRONOHO = IGNORE ;
+C126OOA = IGNORE ;
+M3HEXBO = IGNORE ;
+DIIPRETO = IGNORE ;
+PHPTN = IGNORE ;
+PRONFORMO = IGNORE ;
+MCOOTBNO3 = IGNORE ;
+PBZMUCO2 = IGNORE ;
+C5134CO2OH = IGNORE ;
+CHCL2CO3 = IGNORE ;
+C4CONO3O = IGNORE ;
+H3M3C6O = IGNORE ;
+C519O = IGNORE ;
+OCTNO3 = IGNORE ;
+INAO = IGNORE ;
+C76O2 = IGNORE ;
+NC524O = IGNORE ;
+TMBCO2H = IGNORE ;
+C151O = IGNORE ;
+DMEBMUO3H = IGNORE ;
+CH2CL3O = IGNORE ;
+NCATECO2 = IGNORE ;
+M2PEANO3 = IGNORE ;
+EOX2OLAOOH = IGNORE ;
+M22C4NO3 = IGNORE ;
+C51OH2CO = IGNORE ;
+INAHPCO3H = IGNORE ;
+PBZMUCOH = IGNORE ;
+C105O = IGNORE ;
+CHCL2CH2O = IGNORE ;
+C721CO3 = IGNORE ;
+IPRMEETO2 = IGNORE ;
+IPBENZOOH = IGNORE ;
+HYPROPO2 = IGNORE ;
+MVKO2 = IGNORE ;
+PHCOCOME = IGNORE ;
+EBZBPER2OH = IGNORE ;
+OXYMUCCO3H = IGNORE ;
+C5CO234OOH = IGNORE ;
+MVKOH = IGNORE ;
+C89OOH = IGNORE ;
+ACETC2CO3 = IGNORE ;
+MVKOO = IGNORE ;
+C8DBCO2PAN = IGNORE ;
+C721O2 = IGNORE ;
+NNCATECO = IGNORE ;
+NC3CO2H = IGNORE ;
+NCRESOOH = IGNORE ;
+IPRMEETOH = IGNORE ;
+NMETOLOH = IGNORE ;
+CH3COPAN = IGNORE ;
+TM135BPOOH = IGNORE ;
+C619OOH = IGNORE ;
+C519CO2H = IGNORE ;
+TBOCOCH2O2 = IGNORE ;
+TBOCOCH2OH = IGNORE ;
+NC72OOH = IGNORE ;
+PTCATEC1O2 = IGNORE ;
+OXYMUCO = IGNORE ;
+NDEMPLOOH = IGNORE ;
+C622CO3H = IGNORE ;
+BOXCOALOOH = IGNORE ;
+HO25C7 = IGNORE ;
+HO25C6 = IGNORE ;
+DMEBIPRO = IGNORE ;
+C5124COO = IGNORE ;
+NMETOLO2 = IGNORE ;
+HO2C54O2 = IGNORE ;
+PROL11MOOH = IGNORE ;
+BZOBIPEROH = IGNORE ;
+NO3CH2CO2H = IGNORE ;
+C51NO32O = IGNORE ;
+HOC3H6CHO = IGNORE ;
+C618CO3 = IGNORE ;
+NIPRBQO = IGNORE ;
+ACCOCOMEO2 = IGNORE ;
+NMEBFUO2 = IGNORE ;
+C42CHO = IGNORE ;
+CLCO2H = IGNORE ;
+H2M5C65OOH = IGNORE ;
+C4M3NO32O = IGNORE ;
+HOC4CHOOOH = IGNORE ;
+MALDIALO2 = IGNORE ;
+HEX3ONDNO3 = IGNORE ;
+M2HEXBO = IGNORE ;
+BOXMCO2H = IGNORE ;
+MTBEAO = IGNORE ;
+C1012OH = IGNORE ;
+C69OH = IGNORE ;
+MXYEPOXMUC = IGNORE ;
+CO235C6CO3 = IGNORE ;
+PHCOET = IGNORE ;
+BCKBO = IGNORE ;
+OETOLO2 = IGNORE ;
+NC7H16 = IGNORE ;
+C145O2 = IGNORE ;
+CH2CLCH2OH = IGNORE ;
+C827O = IGNORE ;
+NOXYOLO = IGNORE ;
+EOX2COMEOH = IGNORE ;
+CH2CLCH2O2 = IGNORE ;
+C145OH = IGNORE ;
+EPXMEDCO3H = IGNORE ;
+C106NO3 = IGNORE ;
+OETOLOH = IGNORE ;
+C41OH = IGNORE ;
+NPROACEBO = IGNORE ;
+MBOAO2 = IGNORE ;
+C732OOH = IGNORE ;
+C1012O2 = IGNORE ;
+C69O2 = IGNORE ;
+C615CO2O = IGNORE ;
+C615CO2H = IGNORE ;
+CO1C6O = IGNORE ;
+C5CO234O = IGNORE ;
+ECATECHOL = IGNORE ;
+C7ADCOOH = IGNORE ;
+C924OOH = IGNORE ;
+PRONFORMO2 = IGNORE ;
+IC4H9NO3 = IGNORE ;
+C131O = IGNORE ;
+C8CO3OHO = IGNORE ;
+NBUACCNO3 = IGNORE ;
+PROPACID = IGNORE ;
+IBUTOLBO2 = IGNORE ;
+PINALO = IGNORE ;
+NC1313O = IGNORE ;
+C1210NO3 = IGNORE ;
+C5EDBPAN = IGNORE ;
+DMMBOOH = IGNORE ;
+HO5C6CO3H = IGNORE ;
+METACETHO = IGNORE ;
+MXYMUCCO2H = IGNORE ;
+C524NO3 = IGNORE ;
+C14O3PCHO = IGNORE ;
+C67NO3 = IGNORE ;
+PETHTOL = IGNORE ;
+M3PECNO3 = IGNORE ;
+MC6CO2O = IGNORE ;
+CO2C5OH = IGNORE ;
+C7M2CO5O = IGNORE ;
+MTBEALCO2H = IGNORE ;
+C3MCOCO2H = IGNORE ;
+C65OH4O = IGNORE ;
+C5CO23OOH = IGNORE ;
+NONO2 = IGNORE ;
+NONOH = IGNORE ;
+C23C54CHO = IGNORE ;
+CO2M33CHO = IGNORE ;
+H3M3C4CO3 = IGNORE ;
+ETBEBO2 = IGNORE ;
+TM123BPRO2 = IGNORE ;
+NBUTDBOOH = IGNORE ;
+C92O2 = IGNORE ;
+C822CO2H = IGNORE ;
+C924CO = IGNORE ;
+C619O = IGNORE ;
+OXYMUCO2 = IGNORE ;
+C716O2 = IGNORE ;
+BUOHFORM = IGNORE ;
+TM135MUPAN = IGNORE ;
+INCOH = IGNORE ;
+PRCOOPROL = IGNORE ;
+INCO2 = IGNORE ;
+NOXYQOOH = IGNORE ;
+C716OH = IGNORE ;
+TM124O = IGNORE ;
+C4MCO2OOH = IGNORE ;
+OXYMUCOH = IGNORE ;
+C626O = IGNORE ;
+TM124B = IGNORE ;
+C121O2 = IGNORE ;
+METLQONE = IGNORE ;
+MXYOLO = IGNORE ;
+OXYL1OOH = IGNORE ;
+TM124MUCO = IGNORE ;
+H3M3C6OOH = IGNORE ;
+C619CO = IGNORE ;
+TMBOOH = IGNORE ;
+HO3C126OOH = IGNORE ;
+BCKBNO3 = IGNORE ;
+C4NO32MOOH = IGNORE ;
+BPINANO3 = IGNORE ;
+C626CO2H = IGNORE ;
+EGLYOOB = IGNORE ;
+BUTDCOOH = IGNORE ;
+T124NCATO = IGNORE ;
+M22C43OH = IGNORE ;
+M22C43O2 = IGNORE ;
+NC3H7OOH = IGNORE ;
+BCALAO = IGNORE ;
+M2BKAO = IGNORE ;
+DETLMUNO3 = IGNORE ;
+ACROO = IGNORE ;
+DNOETOL = IGNORE ;
+PINALNO3 = IGNORE ;
+PE2ENEBNO3 = IGNORE ;
+DIEKAOOH = IGNORE ;
+C3M3OHCO3H = IGNORE ;
+C136CO3H = IGNORE ;
+C7CO2DBPAN = IGNORE ;
+IEB1O = IGNORE ;
+ETOMEOH = IGNORE ;
+CO1M22PAN = IGNORE ;
+PETLQOOH = IGNORE ;
+C42CHO2O = IGNORE ;
+C23O3MCPAN = IGNORE ;
+TLEMUCO = IGNORE ;
+PRCOOMO2 = IGNORE ;
+C511CO3 = IGNORE ;
+T123CAT1O2 = IGNORE ;
+METHCOACET = IGNORE ;
+PXYLNO3 = IGNORE ;
+CL12PRAOOH = IGNORE ;
+KLIMONIC = IGNORE ;
+TLEMUCCO3 = IGNORE ;
+MC6CO2OOH = IGNORE ;
+C107O = IGNORE ;
+MALDIALO = IGNORE ;
+C830OOH = IGNORE ;
+NT124L1O2 = IGNORE ;
+DNT124LO = IGNORE ;
+C143OOH = IGNORE ;
+M2BUOL2OOH = IGNORE ;
+TM124OOH = IGNORE ;
+MXYMUCO2 = IGNORE ;
+HO2C54CO2H = IGNORE ;
+C58NO3CO2H = IGNORE ;
+MXYMUCOH = IGNORE ;
+C7DCCO2 = IGNORE ;
+C7DCCO3 = IGNORE ;
+C116CO = IGNORE ;
+C821O2 = IGNORE ;
+C6H5O = IGNORE ;
+C512OOH = IGNORE ;
+HCOC5 = IGNORE ;
+C113NO3 = IGNORE ;
+MBKCOOHOOH = IGNORE ;
+PHIC3OOH = IGNORE ;
+C7EDCO2 = IGNORE ;
+EPXMKTCO2H = IGNORE ;
+PBFUO2 = IGNORE ;
+BCKBO2 = IGNORE ;
+C4MOHOCO3 = IGNORE ;
+TLFUO2 = IGNORE ;
+C139OH = IGNORE ;
+H2MC5NO3 = IGNORE ;
+IPEANO3 = IGNORE ;
+OCCOHCOH = IGNORE ;
+NDNIPBZLO2 = IGNORE ;
+NDNMXYOLO2 = IGNORE ;
+OCCOHCO2 = IGNORE ;
+C59O2 = IGNORE ;
+TLFUOH = IGNORE ;
+C139O2 = IGNORE ;
+C112O2 = IGNORE ;
+NMXYFUO2 = IGNORE ;
+MTBEACHOO = IGNORE ;
+CHCL2PAN = IGNORE ;
+C23O3MCO3H = IGNORE ;
+BCKBOO = IGNORE ;
+C7EDCOH = IGNORE ;
+HPNC524CO = IGNORE ;
+PBFUOH = IGNORE ;
+ACCOMECHO = IGNORE ;
+COO2C3CO3 = IGNORE ;
+OXYLO = IGNORE ;
+HMVKBO2 = IGNORE ;
+IPRACBCO2H = IGNORE ;
+BIACET = IGNORE ;
+DMEBMUPAN = IGNORE ;
+APINAO2 = IGNORE ;
+HCOCO3H = IGNORE ;
+NOXYOLOOH = IGNORE ;
+OXYBPEROOH = IGNORE ;
+C3ME3CHOO2 = IGNORE ;
+C7MOCOCO3H = IGNORE ;
+DETLBIPRO = IGNORE ;
+C64O = IGNORE ;
+M33C3CHO = IGNORE ;
+NOETOL1O2 = IGNORE ;
+PRONOCOMO2 = IGNORE ;
+LIMONONIC = IGNORE ;
+C65NO36OOH = IGNORE ;
+NBPINBO = IGNORE ;
+NC91CO3H = IGNORE ;
+C4MOHOCO3H = IGNORE ;
+ENCATECOOH = IGNORE ;
+EOX2EOLBO = IGNORE ;
+C5CO34CO3 = IGNORE ;
+PBZQCO = IGNORE ;
+C86O = IGNORE ;
+PRCOOPRONE = IGNORE ;
+NONO = IGNORE ;
+CH3OOH = IGNORE ;
+CH3SCH2OOH = IGNORE ;
+H2MC5O = IGNORE ;
+CH2CLO = IGNORE ;
+CO3C85O = IGNORE ;
+CH2CL2 = IGNORE ;
+PHENO = IGNORE ;
+IPRACBNO3 = IGNORE ;
+C2H6 = IGNORE ;
+C2H4 = IGNORE ;
+C2H2 = IGNORE ;
+C6CO2M2OH = IGNORE ;
+CO13C4OH = IGNORE ;
+HM33C3O = IGNORE ;
+MPRBNO3CO3 = IGNORE ;
+C626CHO = IGNORE ;
+OXYMUCPAN = IGNORE ;
+C728OH = IGNORE ;
+C712OOH = IGNORE ;
+INANCO = IGNORE ;
+NC728O2 = IGNORE ;
+CH3COCLOOH = IGNORE ;
+C4NO3COOOH = IGNORE ;
+C133O = IGNORE ;
+CBUT2ENE = IGNORE ;
+DNOXYOL = IGNORE ;
+C65NO3PAN = IGNORE ;
+NDNOETOLO2 = IGNORE ;
+COO2C3CO3H = IGNORE ;
+HM2C43CO3H = IGNORE ;
+CO1H63OOH = IGNORE ;
+NC728OH = IGNORE ;
+HO3C5OOH = IGNORE ;
+C728O2 = IGNORE ;
+HO14CO2C4 = IGNORE ;
+MO2EOLAOOH = IGNORE ;
+HO2C54OOH = IGNORE ;
+C41NO3 = IGNORE ;
+PPN = IGNORE ;
+PXYLAL = IGNORE ;
+CO1C6O2 = IGNORE ;
+HEX3ONDOOH = IGNORE ;
+C727O2 = IGNORE ;
+IPBENZO2 = IGNORE ;
+C915OOH = IGNORE ;
+TBUT2ENE = IGNORE ;
+CO36C9 = IGNORE ;
+CO1C6OH = IGNORE ;
+IPBENZOL = IGNORE ;
+MALANHYO = IGNORE ;
+CHOOMCO3H = IGNORE ;
+TM124BCO2H = IGNORE ;
+DNT124LO2 = IGNORE ;
+MO2EOLBOOH = IGNORE ;
+NDNIPBLOOH = IGNORE ;
+H2M5C65NO3 = IGNORE ;
+NPBNZ1O = IGNORE ;
+PBENZOLOH = IGNORE ;
+PETOLOH = IGNORE ;
+NEBFUO = IGNORE ;
+NC4DCO2H = IGNORE ;
+BR = IGNORE ;
+PETLMUCO3H = IGNORE ;
+C116CO2H = IGNORE ;
+C42NO33O = IGNORE ;
+C914OOH = IGNORE ;
+LMLKAO2 = IGNORE ;
+APINCO = IGNORE ;
+LMLKAOH = IGNORE ;
+CHOC4OHOOH = IGNORE ;
+IPRBQOH = IGNORE ;
+CH3SO2OOH = IGNORE ;
+EPXMALKT = IGNORE ;
+C620O = IGNORE ;
+MNO3COC4O2 = IGNORE ;
+IPEAO2 = IGNORE ;
+PBENZOLO2 = IGNORE ;
+APINENE = IGNORE ;
+CHEXO2 = IGNORE ;
+C6PAN18 = IGNORE ;
+C6PAN19 = IGNORE ;
+HEXBOOH = IGNORE ;
+C6PAN10 = IGNORE ;
+C6PAN11 = IGNORE ;
+C6PAN12 = IGNORE ;
+C6PAN13 = IGNORE ;
+C6PAN14 = IGNORE ;
+C6PAN15 = IGNORE ;
+C6PAN16 = IGNORE ;
+C6PAN17 = IGNORE ;
+C916O2 = IGNORE ;
+PGLYOX = IGNORE ;
+C6H5CH2OH = IGNORE ;
+C23O3EOH = IGNORE ;
+ACCOCOMEO = IGNORE ;
+C23O3EO2 = IGNORE ;
+M2BKBOOH = IGNORE ;
+C6H5CH2O2 = IGNORE ;
+C916OH = IGNORE ;
+C4M2NO32O = IGNORE ;
+HM33C4OOH = IGNORE ;
+C919OOH = IGNORE ;
+EPXDLCO3H = IGNORE ;
+LIMALOOH = IGNORE ;
+NC2OO = IGNORE ;
+LIMALOOA = IGNORE ;
+OXYQO = IGNORE ;
+NLIMALOOH = IGNORE ;
+IC4H9O2 = IGNORE ;
+PBZMUCCO = IGNORE ;
+C914CO = IGNORE ;
+CHOOCHO = IGNORE ;
+C515O = IGNORE ;
+TM124MUPAN = IGNORE ;
+NEBNZOLO = IGNORE ;
+C813OH = IGNORE ;
+C918CO3 = IGNORE ;
+DM35EBO2 = IGNORE ;
+ACBUONEBO = IGNORE ;
+PEBQOOH = IGNORE ;
+NEOPO = IGNORE ;
+C131OOH = IGNORE ;
+HOCO4C5OOH = IGNORE ;
+PR2OHMOX = IGNORE ;
+PETLBPROOH = IGNORE ;
+C53NO32OOH = IGNORE ;
+IPECNO3 = IGNORE ;
+HO36C12 = IGNORE ;
+C66CO = IGNORE ;
+ACETC2H4O = IGNORE ;
+C8OHCO2PAN = IGNORE ;
+CCLNO3CO = IGNORE ;
+OXYLCO3 = IGNORE ;
+C6HOCOOOH = IGNORE ;
+HO2C54CHO = IGNORE ;
+CO2C4CO2H = IGNORE ;
+NDNT124OOH = IGNORE ;
+C618OOH = IGNORE ;
+OETLBPROOH = IGNORE ;
+MSA = IGNORE ;
+CO2C4CO3 = IGNORE ;
+CO3C75O2 = IGNORE ;
+CHOOCH2NO3 = IGNORE ;
+C818OH = IGNORE ;
+C720NO3 = IGNORE ;
+NPEBQO = IGNORE ;
+C1012O = IGNORE ;
+C818O2 = IGNORE ;
+H3C2C4CO3H = IGNORE ;
+C4COMOHOOH = IGNORE ;
+TM123BOOH = IGNORE ;
+C4CODBCO3H = IGNORE ;
+IPMLNHY2OH = IGNORE ;
+ECO3PAN = IGNORE ;
+IPROACETO2 = IGNORE ;
+C61CO = IGNORE ;
+C6M5CO2OOH = IGNORE ;
+BCLKBOH = IGNORE ;
+NC826OH = IGNORE ;
+C128OH = IGNORE ;
+HEX3ONANO3 = IGNORE ;
+BCLKBOC = IGNORE ;
+M23C4O2 = IGNORE ;
+CHOPRNO3 = IGNORE ;
+C1011NO3 = IGNORE ;
+HM22COCHO = IGNORE ;
+PENTACID = IGNORE ;
+MACROH = IGNORE ;
+MACROO = IGNORE ;
+ETHO2HNO3 = IGNORE ;
+HM33C4OH = IGNORE ;
+CH2OHCCLOH = IGNORE ;
+C732CO3 = IGNORE ;
+CH2OHCCLO2 = IGNORE ;
+NBZQO2 = IGNORE ;
+HM33C4O2 = IGNORE ;
+MACRO2 = IGNORE ;
+C2H5CHOO = IGNORE ;
+BOX2COMOH = IGNORE ;
+NPETOL1O2 = IGNORE ;
+MXYOBPEROH = IGNORE ;
+IPNCATECO2 = IGNORE ;
+DECNO3 = IGNORE ;
+M23C4OH = IGNORE ;
+C4ECO2O = IGNORE ;
+C128O2 = IGNORE ;
+C822OOH = IGNORE ;
+BCLKBO2 = IGNORE ;
+IPEBO = IGNORE ;
+TOL1OHNO2 = IGNORE ;
+EOX2ETB2OH = IGNORE ;
+HO2C6O = IGNORE ;
+CH3OCH2OOH = IGNORE ;
+C731CO3H = IGNORE ;
+MPRANO3OOH = IGNORE ;
+C59O = IGNORE ;
+NBZQO = IGNORE ;
+C65O2 = IGNORE ;
+CO2H3MCO3H = IGNORE ;
+MECOACETO = IGNORE ;
+HOIBUTCHO = IGNORE ;
+PEBO2 = IGNORE ;
+PEBOH = IGNORE ;
+NTM123OLO = IGNORE ;
+C65OH = IGNORE ;
+C14O3IPCHO = IGNORE ;
+DNEBNZLOOH = IGNORE ;
+CCL3PAN = IGNORE ;
+C61NO3 = IGNORE ;
+HOCO3C54O2 = IGNORE ;
+NBUTDAO = IGNORE ;
+MXNNCATCO2 = IGNORE ;
+CLCOCLOOH = IGNORE ;
+C1311O = IGNORE ;
+C1012CO = IGNORE ;
+C6COCHOCO3 = IGNORE ;
+NC91PAN = IGNORE ;
+C3EDIALO = IGNORE ;
+PTLQO = IGNORE ;
+C89CO3H = IGNORE ;
+CCL2CL2OOH = IGNORE ;
+HMVKAO = IGNORE ;
+IPBZBIPRO2 = IGNORE ;
+C927OOH = IGNORE ;
+CL12PAN = IGNORE ;
+OET1O2 = IGNORE ;
+HO24C4CO3H = IGNORE ;
+C510O2 = IGNORE ;
+C151OOH = IGNORE ;
+C715O2 = IGNORE ;
+C67OH = IGNORE ;
+C7ADICARB = IGNORE ;
+HM22C4NO3 = IGNORE ;
+MTBEBNO3 = IGNORE ;
+PXCATECOOA = IGNORE ;
+C1014O2 = IGNORE ;
+HC3CO3 = IGNORE ;
+C2CL2OHO2 = IGNORE ;
+HO124C5 = IGNORE ;
+C4OCCOHCOH = IGNORE ;
+C135O = IGNORE ;
+C1011CO = IGNORE ;
+MO2EOLA2OH = IGNORE ;
+C96OH = IGNORE ;
+C5NO3CO4O2 = IGNORE ;
+C96O2 = IGNORE ;
+C5NO3CO4OH = IGNORE ;
+CO2M3C4CO3 = IGNORE ;
+PECOOH = IGNORE ;
+C4NO3OCO = IGNORE ;
+C51CO3H = IGNORE ;
+C4OCCOHCO2 = IGNORE ;
+DEC3ONE = IGNORE ;
+C113O = IGNORE ;
+NPXYFUO2 = IGNORE ;
+MC3ODBCO3H = IGNORE ;
+CH3CHCLO = IGNORE ;
+LIMALBCO = IGNORE ;
+TM124OLO2 = IGNORE ;
+C918PAN = IGNORE ;
+HO3C126O2 = IGNORE ;
+PTLQOH = IGNORE ;
+C4CHOBO2 = IGNORE ;
+C821OOH = IGNORE ;
+C622OOH = IGNORE ;
+C4CO2O = IGNORE ;
+C1210PAN = IGNORE ;
+M22C3CHO = IGNORE ;
+HO2C5O2 = IGNORE ;
+C6NO3CO4OH = IGNORE ;
+HO2C5OH = IGNORE ;
+ECATEC1O = IGNORE ;
+CHEXNO3 = IGNORE ;
+CO25C6O = IGNORE ;
+C923OOH = IGNORE ;
+HEX2ONBOOH = IGNORE ;
+PEBOOH = IGNORE ;
+PTLQO2 = IGNORE ;
+HO2CO4C5 = IGNORE ;
+TM124OLOH = IGNORE ;
+C137NO3 = IGNORE ;
+CLETO3 = IGNORE ;
+HO1C6NO3 = IGNORE ;
+C1011CO2H = IGNORE ;
+C924OH = IGNORE ;
+C830PAN = IGNORE ;
+C920PAN = IGNORE ;
+NMBOBO = IGNORE ;
+PR2OHMOOOH = IGNORE ;
+C53OH2OOH = IGNORE ;
+PROH2MOX = IGNORE ;
+C622O = IGNORE ;
+APINAO = IGNORE ;
+C924O2 = IGNORE ;
+DMPHO2 = IGNORE ;
+C126OH = IGNORE ;
+IPRHOCO3H = IGNORE ;
+DIEKBOOH = IGNORE ;
+C619O2 = IGNORE ;
+CL12PRCOH = IGNORE ;
+PBZMUCO = IGNORE ;
+NOPINBO = IGNORE ;
+TM124BPAN = IGNORE ;
+C817NO3 = IGNORE ;
+SBUACCOH = IGNORE ;
+NONNO3 = IGNORE ;
+C5DBECO3H = IGNORE ;
+C64NO335CO = IGNORE ;
+PTLQOOH = IGNORE ;
+EMALANHYO2 = IGNORE ;
+HO3C116O = IGNORE ;
+CL12PRCO2 = IGNORE ;
+C6CO2OHCO3 = IGNORE ;
+C6M5CO2O = IGNORE ;
+TM123BCO2H = IGNORE ;
+HOACETEOOH = IGNORE ;
+C7ODLBCO3H = IGNORE ;
+C83OOH = IGNORE ;
+C4MOHOPAN = IGNORE ;
+M2PE = IGNORE ;
+C51NO3 = IGNORE ;
+C628OOH = IGNORE ;
+C628OOA = IGNORE ;
+EBENZOLO = IGNORE ;
+CH3COCO2H = IGNORE ;
+C142OOH = IGNORE ;
+ENCATECO2 = IGNORE ;
+C6CYTONOOH = IGNORE ;
+C6125CO = IGNORE ;
+BZFUOH = IGNORE ;
+C513O = IGNORE ;
+NC3CHO = IGNORE ;
+PXYBIPENO3 = IGNORE ;
+BZFUO2 = IGNORE ;
+CH3CO3 = IGNORE ;
+DIEKBO2 = IGNORE ;
+PMALANHYO2 = IGNORE ;
+C813NO3 = IGNORE ;
+CO356C9 = IGNORE ;
+ACETC2CO3H = IGNORE ;
+HO3CO6C7 = IGNORE ;
+C1014OOH = IGNORE ;
+TM124BNO3 = IGNORE ;
+CHEX = IGNORE ;
+HO3CO6C8 = IGNORE ;
+HOC2H4CO2H = IGNORE ;
+C116O2 = IGNORE ;
+PE2ENEAO = IGNORE ;
+BUTDCO2 = IGNORE ;
+C1013CO3H = IGNORE ;
+C2CL2OHOOH = IGNORE ;
+BZFUONOOA = IGNORE ;
+C729OOH = IGNORE ;
+CCLNO3COOH = IGNORE ;
+PXYOLOOH = IGNORE ;
+PR2OHMOXO2 = IGNORE ;
+PXYL1OOH = IGNORE ;
+HC4CCHO = IGNORE ;
+MMFNO3 = IGNORE ;
+C718OOH = IGNORE ;
+CHOOCH2O = IGNORE ;
+C75O2 = IGNORE ;
+OTCTEC1OOH = IGNORE ;
+C1010O = IGNORE ;
+C5H11CO3H = IGNORE ;
+MXY1O = IGNORE ;
+C116OH = IGNORE ;
+C54CO3 = IGNORE ;
+C617CO3H = IGNORE ;
+NIPBNZ1OOH = IGNORE ;
+C122OOH = IGNORE ;
+TMB1FUO = IGNORE ;
+HC4CCO3 = IGNORE ;
+HOACETETO = IGNORE ;
+C622O2 = IGNORE ;
+PHCOETO = IGNORE ;
+C630O = IGNORE ;
+BOXPROANO3 = IGNORE ;
+COHM2CO2H = IGNORE ;
+C816CO3 = IGNORE ;
+M2PEAO2 = IGNORE ;
+C6CO3MOH = IGNORE ;
+M2PEAOH = IGNORE ;
+IPBNZOHNO2 = IGNORE ;
+C4CHOBO = IGNORE ;
+C41CO2H = IGNORE ;
+DMMAOOH = IGNORE ;
+TMB2FUONE = IGNORE ;
+BCKBCO = IGNORE ;
+C7EDCCO = IGNORE ;
+C123OOH = IGNORE ;
+EPXKTMCO3 = IGNORE ;
+ME2BUT2ENE = IGNORE ;
+C132O2 = IGNORE ;
+C3DBPAN = IGNORE ;
+MIBK3COO = IGNORE ;
+HO2C4O = IGNORE ;
+MIBK3CO = IGNORE ;
+BUTALO2H = IGNORE ;
+C3DIOLO2 = IGNORE ;
+DMEBIPRO2 = IGNORE ;
+TMBO = IGNORE ;
+C137CO3 = IGNORE ;
+M33C3CO3H = IGNORE ;
+CO = IGNORE ;
+CL = IGNORE ;
+M2PEAOOH = IGNORE ;
+C512PAN = IGNORE ;
+C1313O = IGNORE ;
+C132OH = IGNORE ;
+NPROPOL = IGNORE ;
+M2C43CO3H = IGNORE ;
+C517CHO = IGNORE ;
+HO6C7O2 = IGNORE ;
+NPXYQO = IGNORE ;
+C65NO3CO2H = IGNORE ;
+MCOCOMOX = IGNORE ;
+C109CO = IGNORE ;
+C6CONO3OOH = IGNORE ;
+METLMUCO = IGNORE ;
+CATEC1O2 = IGNORE ;
+ACCOCOC2H5 = IGNORE ;
+C823CO = IGNORE ;
+C2H5NO3 = IGNORE ;
+C729CHO = IGNORE ;
+C721O = IGNORE ;
+HO2MC5O = IGNORE ;
+IPRGLYOX = IGNORE ;
+CO24C6 = IGNORE ;
+CO24C5 = IGNORE ;
+NOPINBNO3 = IGNORE ;
+HO3C5O2 = IGNORE ;
+NOXYOL1O = IGNORE ;
+C7DDCPAN = IGNORE ;
+IBUDIALPAN = IGNORE ;
+M2HEXBO2 = IGNORE ;
+H2M2C4CO3H = IGNORE ;
+NBUTOLAO2 = IGNORE ;
+C4NO32M2O2 = IGNORE ;
+C916O = IGNORE ;
+INAHPCHO = IGNORE ;
+C137O = IGNORE ;
+C829O = IGNORE ;
+NBUTOLAOH = IGNORE ;
+M2PECNO3 = IGNORE ;
+M2HEXBOH = IGNORE ;
+MACROOH = IGNORE ;
+C716O = IGNORE ;
+C111O = IGNORE ;
+TC4H9OOH = IGNORE ;
+C4MDIAL = IGNORE ;
+PR1O2HNO3 = IGNORE ;
+ETBEACO3 = IGNORE ;
+PGLYOXOH = IGNORE ;
+C4CHOBOOH = IGNORE ;
+TLEMUCO2 = IGNORE ;
+PXYFUONE = IGNORE ;
+PNCATECOOH = IGNORE ;
+BCKAO = IGNORE ;
+CO24C53O2 = IGNORE ;
+NDNPHENO2 = IGNORE ;
+C5MEJPAN = IGNORE ;
+NDMEPHOLOH = IGNORE ;
+NMETOLOOH = IGNORE ;
+PTCATECOOA = IGNORE ;
+CO25C6CHO = IGNORE ;
+C6DICARBO = IGNORE ;
+C43NO3CO2H = IGNORE ;
+HM33C3NO3 = IGNORE ;
+NDMEPHOLO2 = IGNORE ;
+TLEMUCOH = IGNORE ;
+C7DDICARB = IGNORE ;
+IPBZOBPROH = IGNORE ;
+MOCOCH2O = IGNORE ;
+HEXANO3 = IGNORE ;
+C614CO = IGNORE ;
+NC11H24 = IGNORE ;
+C625OH = IGNORE ;
+TM124OLO = IGNORE ;
+IPRFORMO = IGNORE ;
+ETHACET = IGNORE ;
+DICLETOH = IGNORE ;
+M33C3CO3 = IGNORE ;
+ENNCATECO2 = IGNORE ;
+DICLETO2 = IGNORE ;
+M2BKANO3 = IGNORE ;
+IPNCATCOOH = IGNORE ;
+INAHPCO2H = IGNORE ;
+NDNPBNZLO = IGNORE ;
+TM124QONE = IGNORE ;
+C625O2 = IGNORE ;
+C811OOH = IGNORE ;
+C622PAN = IGNORE ;
+C826CO3O = IGNORE ;
+M3PE = IGNORE ;
+CH3CCH3OOC = IGNORE ;
+CH3CCH3OOB = IGNORE ;
+M2HEXANO3 = IGNORE ;
+CH2CLCOOH = IGNORE ;
+BCLKAOOH = IGNORE ;
+HO3C86O2 = IGNORE ;
+TM123OLOOH = IGNORE ;
+C6H13CHO = IGNORE ;
+C41O = IGNORE ;
+CHOMOHCO3H = IGNORE ;
+T123CT1OOH = IGNORE ;
+MXYQONE = IGNORE ;
+OETLQOH = IGNORE ;
+HO2 = IGNORE ;
+C3H7CO3 = IGNORE ;
+ME2BUOLOOH = IGNORE ;
+OETLQO2 = IGNORE ;
+INANCO2H = IGNORE ;
+CO24M3C5OH = IGNORE ;
+HO6CO9C11 = IGNORE ;
+MBOCOCO = IGNORE ;
+IPRMEETO = IGNORE ;
+ME3BUOLO = IGNORE ;
+ISOPDOH = IGNORE ;
+HO2M2C4OH = IGNORE ;
+EOX2MECO3 = IGNORE ;
+PECNO3 = IGNORE ;
+C1212OOH = IGNORE ;
+C4PAN1 = IGNORE ;
+C4PAN2 = IGNORE ;
+C4PAN3 = IGNORE ;
+C4PAN4 = IGNORE ;
+C4PAN5 = IGNORE ;
+C4PAN6 = IGNORE ;
+C4PAN7 = IGNORE ;
+C4PAN8 = IGNORE ;
+C4PAN9 = IGNORE ;
+C914OH = IGNORE ;
+ETOC2NO3 = IGNORE ;
+HO2M2C5OOH = IGNORE ;
+EIPKAOOH = IGNORE ;
+C512O2 = IGNORE ;
+PROPALOOH = IGNORE ;
+C511O = IGNORE ;
+C1310OH = IGNORE ;
+CHOC3COO = IGNORE ;
+HMGLOOA = IGNORE ;
+C817O = IGNORE ;
+C713O2 = IGNORE ;
+INB1NBCO2H = IGNORE ;
+MXYFUO = IGNORE ;
+HO3C5O = IGNORE ;
+C2CL3HOOOH = IGNORE ;
+NOPINAOOH = IGNORE ;
+CO23C65O2 = IGNORE ;
+C5COO2NO2 = IGNORE ;
+C914O2 = IGNORE ;
+C1214O = IGNORE ;
+NAPINAO2 = IGNORE ;
+C921OOH = IGNORE ;
+BCLKBO = IGNORE ;
+CO356OCOOH = IGNORE ;
+C61OH = IGNORE ;
+C734OOH = IGNORE ;
+MMALANHYO2 = IGNORE ;
+NORLIMO2 = IGNORE ;
+C6H5C2CO2H = IGNORE ;
+HO2M2C5O = IGNORE ;
+H2O2 = IGNORE ;
+C614CO23OH = IGNORE ;
+NTM124QO2 = IGNORE ;
+C63NO32O2 = IGNORE ;
+PRONO3AO2 = IGNORE ;
+C10PAN1 = IGNORE ;
+C10PAN2 = IGNORE ;
+C23O3MO = IGNORE ;
+PEBO = IGNORE ;
+H13C43CHO = IGNORE ;
+ACPRONEOOH = IGNORE ;
+C3DIALO = IGNORE ;
+TLBIPERNO3 = IGNORE ;
+MCOCOMOXO = IGNORE ;
+C61O2 = IGNORE ;
+CYHXDIOLA = IGNORE ;
+ETOMEPAN = IGNORE ;
+HEX3ONBO2 = IGNORE ;
+TMB1FUOH = IGNORE ;
+HO5C5CO3 = IGNORE ;
+CO25C73O2 = IGNORE ;
+MXYMUCNO3 = IGNORE ;
+C630OOH = IGNORE ;
+HO3C3CHO = IGNORE ;
+CH3SO2O2 = IGNORE ;
+NNCATECOOH = IGNORE ;
+METLPOXMUC = IGNORE ;
+HO1C3OOH = IGNORE ;
+C818CO = IGNORE ;
+MXNNCATOOH = IGNORE ;
+C1310OOH = IGNORE ;
+EBFUONE = IGNORE ;
+TM123BCHO = IGNORE ;
+MACRNCO2H = IGNORE ;
+CO25C73OH = IGNORE ;
+HO14M3C5 = IGNORE ;
+TMB1FUO2 = IGNORE ;
+EPXMDLCO3 = IGNORE ;
+C128CO = IGNORE ;
+CH2OHCL2O = IGNORE ;
+NDNCRESOOH = IGNORE ;
+MIBKAO = IGNORE ;
+C732O2 = IGNORE ;
+OETOH = IGNORE ;
+C144O2 = IGNORE ;
+H3C25C6OH = IGNORE ;
+H3C25C6O2 = IGNORE ;
+IPRFORMNO3 = IGNORE ;
+M3C4CHO = IGNORE ;
+C732OH = IGNORE ;
+CO3H4CHO = IGNORE ;
+C6COHOCHO = IGNORE ;
+C5EDBCO3 = IGNORE ;
+NAOO = IGNORE ;
+C62O = IGNORE ;
+C4DBM2PAN = IGNORE ;
+CH3CLCOCL = IGNORE ;
+CYHEXOL = IGNORE ;
+HM33C3O2 = IGNORE ;
+TLBIPEROOH = IGNORE ;
+CO3C5CO3H = IGNORE ;
+ISOPBNO3 = IGNORE ;
+C93NO3 = IGNORE ;
+MMFO = IGNORE ;
+NBUTOLAO = IGNORE ;
+NOXYFUO = IGNORE ;
+C825CO = IGNORE ;
+C1215O = IGNORE ;
+NC524NO3 = IGNORE ;
+CONM2CO3 = IGNORE ;
+IC4H9OOH = IGNORE ;
+BZBIPERNO3 = IGNORE ;
+C23O3MCO3 = IGNORE ;
+NC102OOH = IGNORE ;
+H3M3C5CO3 = IGNORE ;
+CCL3O = IGNORE ;
+MEKCOH = IGNORE ;
+EOCOCH2O = IGNORE ;
+TM124BP2OH = IGNORE ;
+CHCL2COCL = IGNORE ;
+C139O = IGNORE ;
+NOPINDCO = IGNORE ;
+C2H5OOH = IGNORE ;
+C5M2OHOCO3 = IGNORE ;
+HM22C3CO3H = IGNORE ;
+TBUTOL = IGNORE ;
+C87CO = IGNORE ;
+C88O = IGNORE ;
+NDNOXYLOOH = IGNORE ;
+C518PAN = IGNORE ;
+H3M3C5O2 = IGNORE ;
+C824CO = IGNORE ;
+DMEBMUOH = IGNORE ;
+MEKCO2 = IGNORE ;
+C117O = IGNORE ;
+C923CO3H = IGNORE ;
+IPRMETOOH = IGNORE ;
+NOETOLO2 = IGNORE ;
+MO2EOLAO = IGNORE ;
+C717O2 = IGNORE ;
+C521O2 = IGNORE ;
+PXYFUOH = IGNORE ;
+DNPXYOLO = IGNORE ;
+INDOH = IGNORE ;
+INDO2 = IGNORE ;
+C914O = IGNORE ;
+HO3C106O2 = IGNORE ;
+ALCOMOXOOH = IGNORE ;
+PXYFUO2 = IGNORE ;
+IPBZMUCO2H = IGNORE ;
+C4COMOHPAN = IGNORE ;
+PTNNCATCO2 = IGNORE ;
+NDNEBNZLO = IGNORE ;
+IPRACBCO3 = IGNORE ;
+IPEBNO3 = IGNORE ;
+C91O2 = IGNORE ;
+NOETOLOH = IGNORE ;
+IBUTOLCO = IGNORE ;
+ACPRONEO = IGNORE ;
+M3PEBO = IGNORE ;
+CYHXOLAOOH = IGNORE ;
+H2M2CO5C6 = IGNORE ;
+CYHEXONE = IGNORE ;
+C4COMOH3O2 = IGNORE ;
+M23C43NO3 = IGNORE ;
+MXYLCO3 = IGNORE ;
+MXYOLOOH = IGNORE ;
+C4COMOH3OH = IGNORE ;
+C826OOH = IGNORE ;
+TM124MUOOH = IGNORE ;
+BZEMUCOOH = IGNORE ;
+TM124OHNO2 = IGNORE ;
+ETBECNO3 = IGNORE ;
+SBUACBNO3 = IGNORE ;
+C5CODBCO2H = IGNORE ;
+C6OH5NO3 = IGNORE ;
+T123NCATEC = IGNORE ;
+PCATEC1O2 = IGNORE ;
+H2M5C65O = IGNORE ;
+COO2C4CHO = IGNORE ;
+C8M2CO6O = IGNORE ;
+PRCOOMCO3 = IGNORE ;
+EBZMUCCO3H = IGNORE ;
+EBFUO2 = IGNORE ;
+EBFUOH = IGNORE ;
+TM124BPNO3 = IGNORE ;
+IBUTOLCO2H = IGNORE ;
+NPPRBQO2 = IGNORE ;
+C718CO3 = IGNORE ;
+MMCFNO3 = IGNORE ;
+MTBEALCO3H = IGNORE ;
+CO3C54CO3 = IGNORE ;
+HOPINONIC = IGNORE ;
+HC4ACO3 = IGNORE ;
+PXYQO = IGNORE ;
+APINBOH = IGNORE ;
+PBZMUCPAN = IGNORE ;
+METLMUCOOH = IGNORE ;
+C5CO14O2 = IGNORE ;
+BZFUCO = IGNORE ;
+C822OH = IGNORE ;
+HOBUT2CHO = IGNORE ;
+C822O2 = IGNORE ;
+C719OOH = IGNORE ;
+NPROACECO2 = IGNORE ;
+C5DBEPAN = IGNORE ;
+C5CO14OH = IGNORE ;
+M3HEXANO3 = IGNORE ;
+INB1NBCO3 = IGNORE ;
+C730OOH = IGNORE ;
+TLBIPERO2 = IGNORE ;
+C7CO4EDB = IGNORE ;
+PBZMUCCO3 = IGNORE ;
+IPGLOOB = IGNORE ;
+C521OH = IGNORE ;
+IBUDIALCO3 = IGNORE ;
+TM124BCO3 = IGNORE ;
+CO24C53O = IGNORE ;
+BCKAO2 = IGNORE ;
+NMETLQO2 = IGNORE ;
+ACROOA = IGNORE ;
+C8CO2DBPAN = IGNORE ;
+IPMALNHYO2 = IGNORE ;
+C726CO5OOH = IGNORE ;
+C136OH = IGNORE ;
+IBUTACID = IGNORE ;
+PXNCATECO = IGNORE ;
+PXNCATECH = IGNORE ;
+C66NO35CO = IGNORE ;
+TLEPOXMUC = IGNORE ;
+C113OH = IGNORE ;
+C113O2 = IGNORE ;
+NEBFUOOH = IGNORE ;
+C1014O = IGNORE ;
+H2M3C4OOH = IGNORE ;
+C136O2 = IGNORE ;
+C1210CO3H = IGNORE ;
+LIMALO = IGNORE ;
+H2MC5OOH = IGNORE ;
+MALDALCO2H = IGNORE ;
+BCKAOO = IGNORE ;
+PBENZO = IGNORE ;
+BCKAOH = IGNORE ;
+NPXYFUOOH = IGNORE ;
+CHOCOMOXO = IGNORE ;
+HC3CO2H = IGNORE ;
+C515CO3H = IGNORE ;
+IPROMC2O2 = IGNORE ;
+MIBKHO14 = IGNORE ;
+C152O2 = IGNORE ;
+LIMANO3 = IGNORE ;
+C827CO3H = IGNORE ;
+HO2C3CO2H = IGNORE ;
+MXYLAL = IGNORE ;
+CLCOCH2O2 = IGNORE ;
+C58O2 = IGNORE ;
+PBFUOOH = IGNORE ;
+C6MOCOCO3H = IGNORE ;
+C58OH = IGNORE ;
+IC5H12 = IGNORE ;
+BCLKBOOH = IGNORE ;
+C727CO3 = IGNORE ;
+DNT124BOL = IGNORE ;
+BOXPROBOOH = IGNORE ;
+C152OH = IGNORE ;
+IPROMC2OH = IGNORE ;
+C810OH = IGNORE ;
+M2C43CO3 = IGNORE ;
+INDHCO3 = IGNORE ;
+OTCATEC1O = IGNORE ;
+COO2C4O = IGNORE ;
+M22C4OH = IGNORE ;
+C6DIALOOH = IGNORE ;
+OXYFUO2 = IGNORE ;
+C6CO34HO1 = IGNORE ;
+NTM135OLO2 = IGNORE ;
+C615CO2O2 = IGNORE ;
+METLMUCPAN = IGNORE ;
+C615CO2OH = IGNORE ;
+NTM135OLOH = IGNORE ;
+OXYFUOH = IGNORE ;
+M22C4O2 = IGNORE ;
+PBZBPER2OH = IGNORE ;
+TBUACCO3 = IGNORE ;
+C6COALCO3H = IGNORE ;
+HM22CO2H = IGNORE ;
+IC4CHOAOOH = IGNORE ;
+C4COMEOH = IGNORE ;
+METLMUCCO = IGNORE ;
+C65NO36O = IGNORE ;
+M3HEXBOOH = IGNORE ;
+C59OOH = IGNORE ;
+HNMVKOH = IGNORE ;
+MIBKOHBOOH = IGNORE ;
+BOX2MO = IGNORE ;
+IC7DCOOH = IGNORE ;
+METHACETO = IGNORE ;
+HNMVKO2 = IGNORE ;
+H1MC5O2 = IGNORE ;
+C126CHO = IGNORE ;
+C628O2 = IGNORE ;
+HO2CO35C7 = IGNORE ;
+C3M3OH2PAN = IGNORE ;
+H2M2C3CO3 = IGNORE ;
+PNCATECO2 = IGNORE ;
+MEPROPENE = IGNORE ;
+DNMXYOLO2 = IGNORE ;
+LIMBNO3 = IGNORE ;
+MNNCATCOOH = IGNORE ;
+HO13C4OH = IGNORE ;
+HO13C4O2 = IGNORE ;
+C3NO3COO2 = IGNORE ;
+C5CO243OH = IGNORE ;
+C615CO2OOH = IGNORE ;
+C628OH = IGNORE ;
+C7DDCO = IGNORE ;
+NC3H7O2 = IGNORE ;
+CO3C4CO3H = IGNORE ;
+C115O = IGNORE ;
+MOXY2CHO = IGNORE ;
+NCATECOOH = IGNORE ;
+MMALNACO2H = IGNORE ;
+BOXPOLANO3 = IGNORE ;
+C3MDIALO2 = IGNORE ;
+C6OH5O = IGNORE ;
+CONO3C6OOH = IGNORE ;
+LIMCO = IGNORE ;
+C621O2 = IGNORE ;
+PETLMUCNO3 = IGNORE ;
+CO1M22CHO = IGNORE ;
+OCT3ONE = IGNORE ;
+C915NO3 = IGNORE ;
+MVKOHBO = IGNORE ;
+C61CPAN = IGNORE ;
+CHCLOHCO = IGNORE ;
+IPGLYOXOH = IGNORE ;
+HO2C5NO3 = IGNORE ;
+MIBKCOOHO = IGNORE ;
+C7MOHCOCO3 = IGNORE ;
+C63NO32OOH = IGNORE ;
+C3MDIALOH = IGNORE ;
+METHACET = IGNORE ;
+C624OOH = IGNORE ;
+TM135BPRO2 = IGNORE ;
+HM33C4NO3 = IGNORE ;
+NC3OO = IGNORE ;
+CHOCOHCO = IGNORE ;
+C919NO3 = IGNORE ;
+EBNZOHNO2 = IGNORE ;
+HO6C7OOH = IGNORE ;
+IC7DCOH = IGNORE ;
+C917O2 = IGNORE ;
+C926OH = IGNORE ;
+MBOAOH = IGNORE ;
+C4ME2NO3O = IGNORE ;
+C148OOH = IGNORE ;
+NDNIPBZLO = IGNORE ;
+MPHCOME = IGNORE ;
+IC7DCO2 = IGNORE ;
+METLQO = IGNORE ;
+C917OH = IGNORE ;
+NTLFUO2 = IGNORE ;
+TLBIPER2OH = IGNORE ;
+ACCOMCOMO2 = IGNORE ;
+HYPERACET = IGNORE ;
+C5MO132OH = IGNORE ;
+MIPK = IGNORE ;
+C930OH = IGNORE ;
+BCALO2 = IGNORE ;
+INB1NACO3H = IGNORE ;
+IEACO3H = IGNORE ;
+DEMPHOH = IGNORE ;
+BCALCO2 = IGNORE ;
+MEMOXYPAN = IGNORE ;
+C918O2 = IGNORE ;
+C717OH = IGNORE ;
+MALNHYOHCO = IGNORE ;
+C131NO3 = IGNORE ;
+C41O2 = IGNORE ;
+BOX2MO2 = IGNORE ;
+BUTDAO = IGNORE ;
+C918OH = IGNORE ;
+BCALCOH = IGNORE ;
+HCL = IGNORE ;
+IC3H7O2 = IGNORE ;
+HC3CCHO = IGNORE ;
+CHOC2H4O = IGNORE ;
+CO25C74O2 = IGNORE ;
+C920OOH = IGNORE ;
+C930O2 = IGNORE ;
+BCALOH = IGNORE ;
+C928CO2H = IGNORE ;
+PXNNCATOOH = IGNORE ;
+BCALOO = IGNORE ;
+C1214O2 = IGNORE ;
+NMXYQOOH = IGNORE ;
+CO2N3CHO = IGNORE ;
+C107OH = IGNORE ;
+MXCTEC1OOH = IGNORE ;
+CO35C5CHO = IGNORE ;
+OET1OOH = IGNORE ;
+MC6CO2OH = IGNORE ;
+C813O = IGNORE ;
+NLMKAOOH = IGNORE ;
+C711O = IGNORE ;
+OETLQCO = IGNORE ;
+C3M2COCO2H = IGNORE ;
+MC6CO2O2 = IGNORE ;
+BCLKACO = IGNORE ;
+HOIPRCO3H = IGNORE ;
+C721CO3H = IGNORE ;
+BOXEOHANO3 = IGNORE ;
+C731CO3 = IGNORE ;
+C731CO2 = IGNORE ;
+C6135COO = IGNORE ;
+C107O2 = IGNORE ;
+C1214OH = IGNORE ;
+C626NO3 = IGNORE ;
+C144OOH = IGNORE ;
+CO356OCO2 = IGNORE ;
+HM22C3O = IGNORE ;
+PRONO3AO = IGNORE ;
+CH2BROOH = IGNORE ;
+HO3C86OOH = IGNORE ;
+C145O = IGNORE ;
+C66O = IGNORE ;
+BOX2EOHBO = IGNORE ;
+ACETC2PAN = IGNORE ;
+C4MCNO3OOH = IGNORE ;
+C926O = IGNORE ;
+BUTDBNO3 = IGNORE ;
+IPRHOCO3 = IGNORE ;
+TMB2FUO = IGNORE ;
+C6H5CO3 = IGNORE ;
+INB2OOH = IGNORE ;
+DMSO = IGNORE ;
+C824OOH = IGNORE ;
+HO1MC5NO3 = IGNORE ;
+HEXCOH = IGNORE ;
+C1313OOH = IGNORE ;
+MTBEBCO3 = IGNORE ;
+INB1HPCHO = IGNORE ;
+CO3C4NO3O = IGNORE ;
+CO2N3PAN = IGNORE ;
+C2H5CHOOB = IGNORE ;
+TM135OXMUC = IGNORE ;
+H1C23C4O2 = IGNORE ;
+C2H5CHOOA = IGNORE ;
+C76OOH = IGNORE ;
+BUTAL2O = IGNORE ;
+C52NO33O = IGNORE ;
+HCOCH2O2 = IGNORE ;
+T123NNCTO = IGNORE ;
+CH3CCL3 = IGNORE ;
+IEB2O2 = IGNORE ;
+HO1MC5O2 = IGNORE ;
+CL12CO2H = IGNORE ;
+HO2C4CO3H = IGNORE ;
+HEXCO2 = IGNORE ;
+C3DIALOOH = IGNORE ;
+PHCHOOA = IGNORE ;
+CATECHOL = IGNORE ;
+C4M2AL2OH = IGNORE ;
+C712OH = IGNORE ;
+HO8C9CO3H = IGNORE ;
+C3MNO3CO3H = IGNORE ;
+CYHEXOLAO2 = IGNORE ;
+NBCKOOH = IGNORE ;
+IPRBQO = IGNORE ;
+DMEBPROOH = IGNORE ;
+CO24C6OOH = IGNORE ;
+C712O2 = IGNORE ;
+DIBRETO2 = IGNORE ;
+C96CO3 = IGNORE ;
+H3C25C6CO3 = IGNORE ;
+APINCNO3 = IGNORE ;
+IPRACNO3 = IGNORE ;
+MXYLCO2H = IGNORE ;
+EIPKAO2 = IGNORE ;
+ALC4DOLOOH = IGNORE ;
+C727O = IGNORE ;
+BZEMUCCO2H = IGNORE ;
+CO2HOC6OOH = IGNORE ;
+NOXYQO2 = IGNORE ;
+CO2OH3MCO3 = IGNORE ;
+C98OOH = IGNORE ;
+C827CO3 = IGNORE ;
+C43NO34O = IGNORE ;
+C730OH = IGNORE ;
+OCCOHCOOH = IGNORE ;
+DMEBIPNO3 = IGNORE ;
+C6OH5O2 = IGNORE ;
+MVKOHAOOH = IGNORE ;
+CLCOCLO2 = IGNORE ;
+BOXFORMO2 = IGNORE ;
+C730O2 = IGNORE ;
+C1211O = IGNORE ;
+CH3CL = IGNORE ;
+EIPKAOH = IGNORE ;
+C94OOH = IGNORE ;
+CH3COCO3 = IGNORE ;
+APINCOH = IGNORE ;
+PPRBQO = IGNORE ;
+H3C25C6O = IGNORE ;
+C611OH = IGNORE ;
+C23C54CO3H = IGNORE ;
+IEC1O = IGNORE ;
+C824O2 = IGNORE ;
+NOXYOL1O2 = IGNORE ;
+NC623O2 = IGNORE ;
+TM123BO2 = IGNORE ;
+TM123BOL = IGNORE ;
+TM123BOH = IGNORE ;
+NC623OH = IGNORE ;
+C824OH = IGNORE ;
+CH2CLCH2CL = IGNORE ;
+C46CO3 = IGNORE ;
+EPXM2DLCO3 = IGNORE ;
+C611O2 = IGNORE ;
+BZEMUCCO3 = IGNORE ;
+C23O3CHO = IGNORE ;
+APINCO2 = IGNORE ;
+OCATEC1OOH = IGNORE ;
+HO7C8O2 = IGNORE ;
+HO1C5NO3 = IGNORE ;
+PBENZOLO = IGNORE ;
+OETLBIPRO = IGNORE ;
+CO3C85O2 = IGNORE ;
+LIMAL = IGNORE ;
+NTM123OLO2 = IGNORE ;
+LIMAO = IGNORE ;
+IPCATECOOA = IGNORE ;
+PRCOFORMO = IGNORE ;
+NOPINDO2 = IGNORE ;
+PROL11MO = IGNORE ;
+C927OH = IGNORE ;
+ETBEAOOH = IGNORE ;
+CHCL2COOH = IGNORE ;
+TM123BPAN = IGNORE ;
+NOPINDOH = IGNORE ;
+C918O = IGNORE ;
+C618O2 = IGNORE ;
+HO8C9O = IGNORE ;
+MCOOTBO2 = IGNORE ;
+CL12PROP = IGNORE ;
+NTM123OLOH = IGNORE ;
+C8BCOOH = IGNORE ;
+HO13C3CO3 = IGNORE ;
+MIBKAO2 = IGNORE ;
+CO1H63OH = IGNORE ;
+CO2N3CO3H = IGNORE ;
+MECOACEOOH = IGNORE ;
+CL12PRBOH = IGNORE ;
+C7BDCOOH = IGNORE ;
+C5OH2CO4O = IGNORE ;
+LIMALBO = IGNORE ;
+PBZMUCNO3 = IGNORE ;
+SBUACBOH = IGNORE ;
+C56OOH = IGNORE ;
+C630O2 = IGNORE ;
+MXYLPAN = IGNORE ;
+TCE = IGNORE ;
+IPNCATECO = IGNORE ;
+IPNCATECH = IGNORE ;
+C630OH = IGNORE ;
+C55OOH = IGNORE ;
+C929OH = IGNORE ;
+C525O2 = IGNORE ;
+HCOCOHCO3 = IGNORE ;
+NC101OOH = IGNORE ;
+CL12PRBO2 = IGNORE ;
+NONOOH = IGNORE ;
+M22C43O = IGNORE ;
+MIBKAOH = IGNORE ;
+CO1H63O2 = IGNORE ;
+C817OOH = IGNORE ;
+PTNCATECO2 = IGNORE ;
+C813OOH = IGNORE ;
+HO8C9O2 = IGNORE ;
+C66NO35OOH = IGNORE ;
+IC3H7OOH = IGNORE ;
+SBUTACET = IGNORE ;
+C3H7CHOO = IGNORE ;
+C53NO324CO = IGNORE ;
+MTBEACHOO2 = IGNORE ;
+DM35EBOOH = IGNORE ;
+ISOPCO = IGNORE ;
+BUTDCO = IGNORE ;
+MPHCOMEO = IGNORE ;
+C51OOH = IGNORE ;
+PBENZOLOOH = IGNORE ;
+EBENZ = IGNORE ;
+C87CO2H = IGNORE ;
+EMPHCOME = IGNORE ;
+C117O2 = IGNORE ;
+EMPHCOMO = IGNORE ;
+MALANHYOOH = IGNORE ;
+HMACO2H = IGNORE ;
+MEKBOOH = IGNORE ;
+NTM124QO = IGNORE ;
+PETLQOH = IGNORE ;
+C811CO3H = IGNORE ;
+DNPXYOLOOH = IGNORE ;
+LIMOOB = IGNORE ;
+LIMOOA = IGNORE ;
+C713O = IGNORE ;
+MTBEAOOH = IGNORE ;
+NTM124QOOH = IGNORE ;
+PETLQO2 = IGNORE ;
+C514CO23OH = IGNORE ;
+C74O2 = IGNORE ;
+INAHCO2H = IGNORE ;
+PXYBIPERO2 = IGNORE ;
+OXCATECOOA = IGNORE ;
+C117OH = IGNORE ;
+H2M3C4CO3H = IGNORE ;
+NC4EDCO2 = IGNORE ;
+C919O = IGNORE ;
+C1013O = IGNORE ;
+PRONOCOPO2 = IGNORE ;
+BCBOOA = IGNORE ;
+C147O = IGNORE ;
+NDNPXYOLO = IGNORE ;
+BCBOOH = IGNORE ;
+CO346C8 = IGNORE ;
+C7CO2DBCO3 = IGNORE ;
+STYRENO2 = IGNORE ;
+C5DBCO2CO3 = IGNORE ;
+C924O = IGNORE ;
+PXYQONE = IGNORE ;
+C811O = IGNORE ;
+C816CO = IGNORE ;
+MPRBNO3OOH = IGNORE ;
+C2CL3OHBO = IGNORE ;
+C129O = IGNORE ;
+NTM124OLOH = IGNORE ;
+IC7DICARB = IGNORE ;
+PRONEMOXO2 = IGNORE ;
+PBFUCO = IGNORE ;
+C4NO3CO3H = IGNORE ;
+C5CONO34O2 = IGNORE ;
+C6PRCO4DB = IGNORE ;
+C23O3ECPAN = IGNORE ;
+BCAOOH = IGNORE ;
+NPBNZOLO2 = IGNORE ;
+NPBNZOLOH = IGNORE ;
+C113CO = IGNORE ;
+O = IGNORE ;
+OXCATEC1O = IGNORE ;
+C627PAN = IGNORE ;
+PHCOCOCO = IGNORE ;
+RGDCO2H = IGNORE ;
+C6PAN5 = IGNORE ;
+CHOMOHCO3 = IGNORE ;
+PRONEMOXOH = IGNORE ;
+C5OHCO4OOH = IGNORE ;
+HCOCH2CO2H = IGNORE ;
+NTM124OLO2 = IGNORE ;
+MXCATECOOA = IGNORE ;
+IC7DCCO2 = IGNORE ;
+IC7DCCO3 = IGNORE ;
+C7ADCCO3H = IGNORE ;
+NTM135OLO = IGNORE ;
+MMALNHY2OH = IGNORE ;
+TM124MUO3H = IGNORE ;
+C616OOH = IGNORE ;
+M33C4OOH = IGNORE ;
+HEPT3ONE = IGNORE ;
+C52NO31O = IGNORE ;
+PHC3OOH = IGNORE ;
+GLYPAN = IGNORE ;
+NPHEN1O = IGNORE ;
+IC7DCCO2H = IGNORE ;
+C143CO = IGNORE ;
+ACBUONAOH = IGNORE ;
+C79O = IGNORE ;
+PMALANHYO = IGNORE ;
+PHCOETOOH = IGNORE ;
+METLMUCOH = IGNORE ;
+C89O2 = IGNORE ;
+CO2C54CHO = IGNORE ;
+PROL1MCO3H = IGNORE ;
+C4NO32M1O2 = IGNORE ;
+CO3C75OOH = IGNORE ;
+C147OH = IGNORE ;
+C147O2 = IGNORE ;
+C519CHO = IGNORE ;
+OXNNCATOOH = IGNORE ;
+C89OH = IGNORE ;
+MC52CO2OH = IGNORE ;
+DNCRES = IGNORE ;
+METLMUCO2 = IGNORE ;
+EMPHCO3 = IGNORE ;
+MMALANHYO = IGNORE ;
+HEX2ONBO = IGNORE ;
+C6H13CO3H = IGNORE ;
+H2M3C4CHO = IGNORE ;
+HM22CO3 = IGNORE ;
+C930OOH = IGNORE ;
+NC72O = IGNORE ;
+C721PAN = IGNORE ;
+OETLMUCPAN = IGNORE ;
+TM124BPRO = IGNORE ;
+ISOPDOOH = IGNORE ;
+C6CO34 = IGNORE ;
+MTBEBCO3H = IGNORE ;
+TM124BO = IGNORE ;
+C6134CO2OH = IGNORE ;
+IC4CHOAO2 = IGNORE ;
+INDOOH = IGNORE ;
+CL12PRCOOH = IGNORE ;
+C108O = IGNORE ;
+M22C4 = IGNORE ;
+HO6C7CO3 = IGNORE ;
+DNIPBNZLO = IGNORE ;
+CHCLOOA = IGNORE ;
+CO24C63O = IGNORE ;
+C6IPRCO4DB = IGNORE ;
+H3M3C5CO3H = IGNORE ;
+PXNNCATCO2 = IGNORE ;
+C7MJPCO3 = IGNORE ;
+BUTDAOOH = IGNORE ;
+OXYCATECH = IGNORE ;
+C131CO = IGNORE ;
+C727CO = IGNORE ;
+C830O = IGNORE ;
+BCSOZNO3 = IGNORE ;
+C66OOH = IGNORE ;
+CO235C6 = IGNORE ;
+CO235C7 = IGNORE ;
+PHXN = IGNORE ;
+ACETMECO3 = IGNORE ;
+C1211NO3 = IGNORE ;
+EIPKBOH = IGNORE ;
+C1210OH = IGNORE ;
+MPHGLYOX = IGNORE ;
+C7EDICARB = IGNORE ;
+DMMAO = IGNORE ;
+C1210O2 = IGNORE ;
+EIPKBO2 = IGNORE ;
+NBPINBOOH = IGNORE ;
+DFC = IGNORE ;
+SC4H9O2 = IGNORE ;
+PXYL = IGNORE ;
+MACRNBPAN = IGNORE ;
+M2HEXAOOH = IGNORE ;
+T123NCATO2 = IGNORE ;
+INANCOCHO = IGNORE ;
+INAOH = IGNORE ;
+PXYLCO3 = IGNORE ;
+C94O2 = IGNORE ;
+IBUTOLOHC = IGNORE ;
+IBUTOLOHB = IGNORE ;
+ISOPAO = IGNORE ;
+C3MCODBCO3 = IGNORE ;
+C718O2 = IGNORE ;
+UDECO2 = IGNORE ;
+STYRENOOH = IGNORE ;
+IEB2OOH = IGNORE ;
+MGLYOOB = IGNORE ;
+MGLYOOA = IGNORE ;
+C6CO4M2DB = IGNORE ;
+MXY1OOH = IGNORE ;
+CH3CHOO = IGNORE ;
+C94OH = IGNORE ;
+INAO2 = IGNORE ;
+C77NO3 = IGNORE ;
+INCNCO3 = IGNORE ;
+C656OH = IGNORE ;
+C66OH = IGNORE ;
+BPINBNO3 = IGNORE ;
+C6145COO2 = IGNORE ;
+C5PAN9 = IGNORE ;
+C5PAN8 = IGNORE ;
+C5PAN5 = IGNORE ;
+C5PAN4 = IGNORE ;
+C5PAN7 = IGNORE ;
+C5PAN6 = IGNORE ;
+C5PAN1 = IGNORE ;
+C5PAN3 = IGNORE ;
+C5PAN2 = IGNORE ;
+C828CO3H = IGNORE ;
+C715O = IGNORE ;
+C5CO3OH = IGNORE ;
+NBCO = IGNORE ;
+BCLKAO2 = IGNORE ;
+BCLKAOH = IGNORE ;
+C4OHCO3H = IGNORE ;
+TLEMUCNO3 = IGNORE ;
+C626CO3H = IGNORE ;
+OTNNCATCO2 = IGNORE ;
+C718O = IGNORE ;
+TLFUONOOA = IGNORE ;
+CCLNO3O2 = IGNORE ;
+C733O = IGNORE ;
+C825OOH = IGNORE ;
+PXYMUCCO2H = IGNORE ;
+C43NO34O2 = IGNORE ;
+C5CONO34O = IGNORE ;
+C66O2 = IGNORE ;
+HEX3ONCO2 = IGNORE ;
+IPMALANHYO = IGNORE ;
+NCRES1O = IGNORE ;
+TM123OXMUC = IGNORE ;
+C1310NO3 = IGNORE ;
+C141O = IGNORE ;
+C101OOH = IGNORE ;
+IBUTALBO = IGNORE ;
+C829OOH = IGNORE ;
+HO1C3NO3 = IGNORE ;
+PETLBPR2OH = IGNORE ;
+C922O = IGNORE ;
+BOXCHO = IGNORE ;
+MXYMUCOOH = IGNORE ;
+C127O = IGNORE ;
+NC91CHO = IGNORE ;
+C3NO3COO = IGNORE ;
+HO1C5O = IGNORE ;
+HC23C4CO3H = IGNORE ;
+C717NO3 = IGNORE ;
+NPXYQO2 = IGNORE ;
+HEX3ONCOH = IGNORE ;
+C23O3EO = IGNORE ;
+HO6C7CO3H = IGNORE ;
+C733O2 = IGNORE ;
+M3PEAO2 = IGNORE ;
+C827OH = IGNORE ;
+DMCO2 = IGNORE ;
+CH2OHCCLO = IGNORE ;
+C1013PAN = IGNORE ;
+BCLKBCO = IGNORE ;
+C921O2 = IGNORE ;
+NPRACBOOH = IGNORE ;
+DNPETOLOOH = IGNORE ;
+TM124BOH = IGNORE ;
+C7CO2OHCO3 = IGNORE ;
+HMACO3H = IGNORE ;
+IBUTALO2H = IGNORE ;
+DMCOH = IGNORE ;
+C733OH = IGNORE ;
+C827O2 = IGNORE ;
+T124NNCOOH = IGNORE ;
+BCKSZOO = IGNORE ;
+BZEMUCO2 = IGNORE ;
+PINALOH = IGNORE ;
+DM35EBNO3 = IGNORE ;
+MACRNBCO3 = IGNORE ;
+TCEOHO2 = IGNORE ;
+HMGLOO = IGNORE ;
+EOX2EOLBO2 = IGNORE ;
+INCGLYOX = IGNORE ;
+NPRACCOOH = IGNORE ;
+IBUALANO3 = IGNORE ;
+ACETOL = IGNORE ;
+EMPHO = IGNORE ;
+PINALO2 = IGNORE ;
+NPHEN1O2 = IGNORE ;
+C828O2 = IGNORE ;
+BZEMUCOH = IGNORE ;
+MEMOXYCO2H = IGNORE ;
+C93OOH = IGNORE ;
+C3H5CO2H = IGNORE ;
+BOX2EOHBO2 = IGNORE ;
+DMSO2O = IGNORE ;
+IPROMC2OOH = IGNORE ;
+H13CO2CHO = IGNORE ;
+IC7DCO = IGNORE ;
+C51NO32CO = IGNORE ;
+ETHFORMO = IGNORE ;
+C614O = IGNORE ;
+MET1O = IGNORE ;
+BZEMUCPAN = IGNORE ;
+CH3OCH2O = IGNORE ;
+M2PEBNO3 = IGNORE ;
+C831CO = IGNORE ;
+COO2C3PAN = IGNORE ;
+GLYOO = IGNORE ;
+C103NO3 = IGNORE ;
+CCLOHCHO = IGNORE ;
+GLYOX = IGNORE ;
+OXYLCO3H = IGNORE ;
+INCNCO2H = IGNORE ;
+NIPBNZOLOH = IGNORE ;
+C53OOH = IGNORE ;
+LIMALBOH = IGNORE ;
+CH2OO = IGNORE ;
+MXYOHNO2O2 = IGNORE ;
+IPROMC2O = IGNORE ;
+NEBNZ1O = IGNORE ;
+CYHXOLACO = IGNORE ;
+CO235C5CHO = IGNORE ;
+NPPRBQOOH = IGNORE ;
+PHCOCOCO2 = IGNORE ;
+BZFUO = IGNORE ;
+NPRACCNO3 = IGNORE ;
+HO7C8CO3 = IGNORE ;
+C1H4C5CO3 = IGNORE ;
+C5OH2CO4O2 = IGNORE ;
+LIMALBO2 = IGNORE ;
+CL1GLYOX = IGNORE ;
+HCOCH2O = IGNORE ;
+PERIBUACID = IGNORE ;
+ME2BUOLNO3 = IGNORE ;
+C625OOH = IGNORE ;
+OETLMUCOH = IGNORE ;
+MACRNBCO2H = IGNORE ;
+NDMEPLOOH = IGNORE ;
+C5CO14OOH = IGNORE ;
+INAHPPAN = IGNORE ;
+CO36C11 = IGNORE ;
+C91O = IGNORE ;
+C5EDBCO3H = IGNORE ;
+HO24C5NO3 = IGNORE ;
+HMVKBCHO = IGNORE ;
+HO134C5 = IGNORE ;
+PETLQO = IGNORE ;
+M3PEBO2 = IGNORE ;
+OXYL = IGNORE ;
+MMCFOOH = IGNORE ;
+MVKNO3 = IGNORE ;
+MBO = IGNORE ;
+HCOCH2CO3 = IGNORE ;
+BOXCOEOLO2 = IGNORE ;
+OXY1OHNO2 = IGNORE ;
+C6CO34OOH = IGNORE ;
+NDNT123LO2 = IGNORE ;
+SO3 = IGNORE ;
+PR2OHMOXO = IGNORE ;
+C1210CO2H = IGNORE ;
+C57NO3CO2H = IGNORE ;
+EOX2OLANO3 = IGNORE ;
+M3PEBOH = IGNORE ;
+BUT1ENE = IGNORE ;
+C731NO3 = IGNORE ;
+EIPKAO = IGNORE ;
+HO24C4CO3 = IGNORE ;
+IPECOH = IGNORE ;
+TM123MUNO3 = IGNORE ;
+NDEMPHOLOH = IGNORE ;
+C732CO3H = IGNORE ;
+BIACETO2 = IGNORE ;
+M2PEDOH = IGNORE ;
+C52NO33OOH = IGNORE ;
+CYHEXOLAO = IGNORE ;
+PERBUACID = IGNORE ;
+NC1313OOH = IGNORE ;
+BCBOO = IGNORE ;
+C82O2 = IGNORE ;
+C2H5CO3 = IGNORE ;
+C8PAN1 = IGNORE ;
+METOLOOH = IGNORE ;
+C726CO5O2 = IGNORE ;
+BCBO2 = IGNORE ;
+IPBZBPRNO3 = IGNORE ;
+DNPBNZLOOH = IGNORE ;
+C1215OOH = IGNORE ;
+M2PEDO2 = IGNORE ;
+BIACETOH = IGNORE ;
+IPECO2 = IGNORE ;
+NDEMPHOLO2 = IGNORE ;
+C5CO24O = IGNORE ;
+DMSO2OOH = IGNORE ;
+M2PEAO = IGNORE ;
+ME2BU2OLO = IGNORE ;
+CO2C3PAN = IGNORE ;
+CHCL3 = IGNORE ;
+PRNO3CO2H = IGNORE ;
+TMB1FUONE = IGNORE ;
+C512CO3H = IGNORE ;
+NIPBNZOLO = IGNORE ;
+DMPHCOMO2 = IGNORE ;
+CO3C4CO3 = IGNORE ;
+EPXDLCO3 = IGNORE ;
+IEACHO = IGNORE ;
+TM135MUO2H = IGNORE ;
+NPROACEBO2 = IGNORE ;
+C827PAN = IGNORE ;
+INB1NACO3 = IGNORE ;
+TM123BCO3H = IGNORE ;
+DMPHCOMOH = IGNORE ;
+C6145COOOH = IGNORE ;
+BUT2CO3H = IGNORE ;
+MIBK3COO2 = IGNORE ;
+SC4H9OOH = IGNORE ;
+C731O = IGNORE ;
+MMALNBCO3 = IGNORE ;
+ETBECCO3 = IGNORE ;
+HOCH2COCO2H = IGNORE ;
+C1312CO = IGNORE ;
+N2O5 = IGNORE ;
+TCEOHO = IGNORE ;
+C143O = IGNORE ;
+HO14C6 = IGNORE ;
+C717O = IGNORE ;
+C820OOH = IGNORE ;
+MTNCATCOOH = IGNORE ;
+CY6COCOOOH = IGNORE ;
+C5DIALCO = IGNORE ;
+C514OOH = IGNORE ;
+LIMAOOH = IGNORE ;
+C5MEJCO3 = IGNORE ;
+MEBFUOOH = IGNORE ;
+TBUTCO3 = IGNORE ;
+T123NCTOOH = IGNORE ;
+C125O = IGNORE ;
+C817O2 = IGNORE ;
+M22C4O = IGNORE ;
+BOXPROLAO2 = IGNORE ;
+MPRNO3CO3H = IGNORE ;
+C515OOH = IGNORE ;
+HOIPRGLYOX = IGNORE ;
+PTNNCATCO = IGNORE ;
+C520O = IGNORE ;
+C6MOHCOCO3 = IGNORE ;
+IPRCO3 = IGNORE ;
+DNT123BOL = IGNORE ;
+C928OOH = IGNORE ;
+C615OOH = IGNORE ;
+MTBEAALCO3 = IGNORE ;
+C920O = IGNORE ;
+C517O = IGNORE ;
+NBCALO = IGNORE ;
+BCALAOOH = IGNORE ;
+MACRNPAN = IGNORE ;
+HO3C4CO3H = IGNORE ;
+EPXEALKT = IGNORE ;
+C88CO3H = IGNORE ;
+HM33C3CO3H = IGNORE ;
+C817OH = IGNORE ;
+C42NO33O2 = IGNORE ;
+C126O2 = IGNORE ;
+TBUACET = IGNORE ;
+NOETLQOOH = IGNORE ;
+C617CO3 = IGNORE ;
+C143O2 = IGNORE ;
+OETCATECH = IGNORE ;
+MNNCATECO2 = IGNORE ;
+C6MOHCOPAN = IGNORE ;
+IBUTOLCNO3 = IGNORE ;
+C146CO = IGNORE ;
+ETHGLY = IGNORE ;
+HO3C6NO3 = IGNORE ;
+C1014OH = IGNORE ;
+NC9H20 = IGNORE ;
+M23C4NO3 = IGNORE ;
+C67O2 = IGNORE ;
+HMVKBCO3H = IGNORE ;
+MMCFO = IGNORE ;
+C143OH = IGNORE ;
+NIPBNZ1O2 = IGNORE ;
+NSTYRENOOH = IGNORE ;
+C817PAN = IGNORE ;
+HO1CO3C4O = IGNORE ;
+C521OOH = IGNORE ;
+NC826O2 = IGNORE ;
+C126OO = IGNORE ;
+C141PAN = IGNORE ;
+CHOC3COPAN = IGNORE ;
+CO3C4NO3O2 = IGNORE ;
+IBUTOLCO2 = IGNORE ;
+DMSO2OH = IGNORE ;
+NAOOA = IGNORE ;
+C629O2 = IGNORE ;
+IPRACBOH = IGNORE ;
+HEX3ONBO = IGNORE ;
+PBZBIPERO2 = IGNORE ;
+C147CO = IGNORE ;
+EMPHCOMO2 = IGNORE ;
+C616O = IGNORE ;
+EMPHCOMOH = IGNORE ;
+C136PAN = IGNORE ;
+IPRACBO2 = IGNORE ;
+C611OOH = IGNORE ;
+DMSO2O2 = IGNORE ;
+C629OH = IGNORE ;
+NC3H7O = IGNORE ;
+BENZENE = IGNORE ;
+EMPHCO3H = IGNORE ;
+CO3C4NO3OH = IGNORE ;
+MACROOA = IGNORE ;
+TM135OLOH = IGNORE ;
+HEPTOOH = IGNORE ;
+ETOMEO2 = IGNORE ;
+CL12PRBOOH = IGNORE ;
+BOXPRONOH = IGNORE ;
+C109O2 = IGNORE ;
+TBUTOLOOH = IGNORE ;
+H2M5C65O2 = IGNORE ;
+C626O2 = IGNORE ;
+C126CO2H = IGNORE ;
+PBZQONE = IGNORE ;
+C5M2OHCO3H = IGNORE ;
+EBZMUCPAN = IGNORE ;
+BUFORMOOH = IGNORE ;
+PERPENACID = IGNORE ;
+ACETCOC3H7 = IGNORE ;
+BENZAL = IGNORE ;
+C51OH2OOH = IGNORE ;
+ISOPCNO3 = IGNORE ;
+C109OH = IGNORE ;
+C44O2 = IGNORE ;
+M3CO25C6 = IGNORE ;
+C135OOH = IGNORE ;
+C735OH = IGNORE ;
+INB1OOH = IGNORE ;
+DETLMUO2H = IGNORE ;
+H2MC5O2 = IGNORE ;
+TLEMUCCO = IGNORE ;
+ETHACETO = IGNORE ;
+C811CO3 = IGNORE ;
+NBUACETCO = IGNORE ;
+C98OH = IGNORE ;
+C828OOH = IGNORE ;
+HO1CO4C6 = IGNORE ;
+IPROC21OH = IGNORE ;
+C1211CO = IGNORE ;
+C513OOH = IGNORE ;
+IPROC21O2 = IGNORE ;
+MMALNBCO3H = IGNORE ;
+SBUACBOOH = IGNORE ;
+DNPXYOLO2 = IGNORE ;
+C98O2 = IGNORE ;
+INCNO3 = IGNORE ;
+NC102O = IGNORE ;
+C93O = IGNORE ;
+H13M3C5OOH = IGNORE ;
+PRONOCOPO = IGNORE ;
+C32OH13CO = IGNORE ;
+C735O2 = IGNORE ;
+BOX2OHBOOH = IGNORE ;
+NC826OOH = IGNORE ;
+CH3C2H2O2 = IGNORE ;
+OETOLO = IGNORE ;
+C6H5CO3H = IGNORE ;
+CLETAL = IGNORE ;
+NIPBFUOOH = IGNORE ;
+PMALANHY = IGNORE ;
+HO13C5OOH = IGNORE ;
+DIETETOOH = IGNORE ;
+C614OH = IGNORE ;
+CH4 = IGNORE ;
+HMGLYOO = IGNORE ;
+NC4CO3 = IGNORE ;
+C54CO = IGNORE ;
+C614O2 = IGNORE ;
+EBZBPEROOH = IGNORE ;
+OXYL1O2 = IGNORE ;
+MIPKBNO3 = IGNORE ;
+EMALNHYOOH = IGNORE ;
+PRONO3BO2 = IGNORE ;
+ECOCO2H = IGNORE ;
+ACCOC3H6O2 = IGNORE ;
+HIEPOXB = IGNORE ;
+PNNCATCOOH = IGNORE ;
+C86OOH = IGNORE ;
+CONM2CO2H = IGNORE ;
+BU1ENO3OOH = IGNORE ;
+C1215OH = IGNORE ;
+C141CO3 = IGNORE ;
+PBZPOXMUC = IGNORE ;
+C57OOH = IGNORE ;
+MXNCATECH = IGNORE ;
+MXNCATECO = IGNORE ;
+ISOPAOOH = IGNORE ;
+BCKANO3 = IGNORE ;
+CO25C74OH = IGNORE ;
+C52NO33O2 = IGNORE ;
+CH2CLCOCL = IGNORE ;
+C1H4C5CO3H = IGNORE ;
+M2BKAOH = IGNORE ;
+M2BKAO2 = IGNORE ;
+C736O = IGNORE ;
+C81OOH = IGNORE ;
+A2PAN = IGNORE ;
+CHEXO = IGNORE ;
+HO13C5O = IGNORE ;
+IPEBOOH = IGNORE ;
+EMPOHNO2O = IGNORE ;
+C922O2 = IGNORE ;
+C1215O2 = IGNORE ;
+DM35EBO = IGNORE ;
+MVKOHBO2 = IGNORE ;
+C106OOH = IGNORE ;
+IEC1OOH = IGNORE ;
+H14M4C6 = IGNORE ;
+CL12PRAO2 = IGNORE ;
+C52NO31CO = IGNORE ;
+HMVKNGLYOX = IGNORE ;
+M2PECO = IGNORE ;
+C54NO3 = IGNORE ;
+MIPKAOH = IGNORE ;
+CHOC4DOLO2 = IGNORE ;
+HOCH2CO2H = IGNORE ;
+TLEMUCCO2H = IGNORE ;
+INDHPCO3 = IGNORE ;
+C23O3CCO3 = IGNORE ;
+HC3CCO3H = IGNORE ;
+M2BK = IGNORE ;
+TLFUONOO = IGNORE ;
+BUTDBOOH = IGNORE ;
+C116NO3 = IGNORE ;
+MIPKAO2 = IGNORE ;
+C626OOH = IGNORE ;
+HO14CO3C5 = IGNORE ;
+CL12PRAOH = IGNORE ;
+CCLOHCOOH = IGNORE ;
+C6CONO34OH = IGNORE ;
+CCL3CHO = IGNORE ;
+BOXMCO3 = IGNORE ;
+EPXKTMPAN = IGNORE ;
+C128NO3 = IGNORE ;
+BUOX2ETOH = IGNORE ;
+INDHPPAN = IGNORE ;
+C23O3CPAN = IGNORE ;
+C518CHO = IGNORE ;
+NEBFUO2 = IGNORE ;
+DNPETOL = IGNORE ;
+NDNEBNZLO2 = IGNORE ;
+ACCOETO = IGNORE ;
+C719O = IGNORE ;
+PPRBQCO = IGNORE ;
+C54O = IGNORE ;
+HO2C4O2 = IGNORE ;
+C62CHO = IGNORE ;
+MACO3H = IGNORE ;
+C6CONO34O2 = IGNORE ;
+C123O = IGNORE ;
+METLBPR2OH = IGNORE ;
+C4M3NO32O2 = IGNORE ;
+C114O2 = IGNORE ;
+HYPROPO = IGNORE ;
+CHCL2OH = IGNORE ;
+C731OH = IGNORE ;
+HC4CCO2H = IGNORE ;
+HO2C4CHO = IGNORE ;
+BOXPROLBO = IGNORE ;
+CHCL2O2 = IGNORE ;
+C114OH = IGNORE ;
+MALDIALCO2 = IGNORE ;
+MALDIALCO3 = IGNORE ;
+C7OHCO2PAN = IGNORE ;
+C733CO = IGNORE ;
+NPROACEAO2 = IGNORE ;
+NTMB1FUOOH = IGNORE ;
+C4NO32M2O = IGNORE ;
+OETLMUCO3H = IGNORE ;
+CO23C4NO3 = IGNORE ;
+HOBUT2CO3 = IGNORE ;
+TM135MUCO2 = IGNORE ;
+TM135MUCO3 = IGNORE ;
+LIMONIC = IGNORE ;
+DNPETOLO = IGNORE ;
+OET1O = IGNORE ;
+ETBEAO = IGNORE ;
+C44OOH = IGNORE ;
+METOLO = IGNORE ;
+DMPHOOH = IGNORE ;
+CO1H63NO3 = IGNORE ;
+CO2C54O2 = IGNORE ;
+BZEMUCCO = IGNORE ;
+DIETETO2 = IGNORE ;
+C52OOH = IGNORE ;
+C73O = IGNORE ;
+C825O2 = IGNORE ;
+C134O2 = IGNORE ;
+IEC1O2 = IGNORE ;
+C65OH4O2 = IGNORE ;
+CO1M22CO3H = IGNORE ;
+ALCOCH2OOH = IGNORE ;
+SBUACAOOH = IGNORE ;
+NO3CH2CO3 = IGNORE ;
+C610O = IGNORE ;
+MVKOHANO3 = IGNORE ;
+C51NO32O2 = IGNORE ;
+NC72O2 = IGNORE ;
+M3HEX = IGNORE ;
+NSTYRENO2 = IGNORE ;
+MECOFORMO = IGNORE ;
+C825OH = IGNORE ;
+C134OH = IGNORE ;
+MEK2OOC = IGNORE ;
+MEK2OOA = IGNORE ;
+C5CO14CO2 = IGNORE ;
+C8BCNO3 = IGNORE ;
+MXYOLO2 = IGNORE ;
+DMK2OH = IGNORE ;
+M22C43OOH = IGNORE ;
+C85CO3 = IGNORE ;
+C624CO2H = IGNORE ;
+C7PAN3 = IGNORE ;
+C7PAN2 = IGNORE ;
+C7PAN1 = IGNORE ;
+OTNNCATCO = IGNORE ;
+ACEETOHO = IGNORE ;
+HOIBUTCO3 = IGNORE ;
+H3M2C4CO3 = IGNORE ;
+CYHXONANO3 = IGNORE ;
+DNPBNZOL = IGNORE ;
+C4COMOH3O = IGNORE ;
+ACCOCOMOOH = IGNORE ;
+MXYOLOH = IGNORE ;
+TM123OHNO2 = IGNORE ;
+NPXYOL1O = IGNORE ;
+OXYFUOOH = IGNORE ;
+H1C23C4OOH = IGNORE ;
+H3C2C4CO3 = IGNORE ;
+MTBE = IGNORE ;
+OXNCATECO2 = IGNORE ;
+C511CO3H = IGNORE ;
+MTBK = IGNORE ;
+ACLOOA = IGNORE ;
+NBUACETAO = IGNORE ;
+INANCHO = IGNORE ;
+PROL2FORM = IGNORE ;
+MIBKAOHBO2 = IGNORE ;
+ETBECCO3H = IGNORE ;
+C4CO2OOH = IGNORE ;
+PBZMUCOOH = IGNORE ;
+PET1OOH = IGNORE ;
+C95O = IGNORE ;
+EPXM2C4DAL = IGNORE ;
+C312COPAN = IGNORE ;
+C6CO3OH5O2 = IGNORE ;
+HOC3H6CO2H = IGNORE ;
+M3BU2OLNO3 = IGNORE ;
+C7OHCO2CO3 = IGNORE ;
+C721CHO = IGNORE ;
+CHOCOMOXO2 = IGNORE ;
+NC4OO = IGNORE ;
+MC4CODBPAN = IGNORE ;
+HM33C3CO3 = IGNORE ;
+OETLMUCCO3 = IGNORE ;
+CHOC4OOH = IGNORE ;
+DIIPRETHER = IGNORE ;
+ACO3 = IGNORE ;
+PBN = IGNORE ;
+C5CO2OHPAN = IGNORE ;
+H2 = IGNORE ;
+CO25C74O = IGNORE ;
+H1MC5NO3 = IGNORE ;
+C613OOH = IGNORE ;
+C7CO2DCO3H = IGNORE ;
+ECATEC1OOH = IGNORE ;
+LMLKBOH = IGNORE ;
+C627OH = IGNORE ;
+C7ADCOH = IGNORE ;
+ECATECOOA = IGNORE ;
+EGLYOO = IGNORE ;
+HO2C4NO3 = IGNORE ;
+C54CO3H = IGNORE ;
+HC4ACO3H = IGNORE ;
+PIPN = IGNORE ;
+EGLYOX = IGNORE ;
+NC524O2 = IGNORE ;
+BOXMOH = IGNORE ;
+PET1O2 = IGNORE ;
+MBOBO2 = IGNORE ;
+C7ADCO2 = IGNORE ;
+HM22C4OOH = IGNORE ;
+LMLKBO2 = IGNORE ;
+PINIC = IGNORE ;
+C627O2 = IGNORE ;
+C735O = IGNORE ;
+C517O2 = IGNORE ;
+MTNCATECO = IGNORE ;
+MTNCATECH = IGNORE ;
+C64OOH = IGNORE ;
+NBCALOOH = IGNORE ;
+TBUTCO3H = IGNORE ;
+CNO3CLOH = IGNORE ;
+NAPINBO2 = IGNORE ;
+CNO3CLO2 = IGNORE ;
+CLETO3H = IGNORE ;
+H2M2C4CHO = IGNORE ;
+INDHPCO3H = IGNORE ;
+C23O3CCO3H = IGNORE ;
+HOCO3C54O = IGNORE ;
+NBPINAOOH = IGNORE ;
+C517OH = IGNORE ;
+C5DIALO = IGNORE ;
+HO1C3O = IGNORE ;
+C513CO = IGNORE ;
+NORLIMAL = IGNORE ;
+UDECNO3 = IGNORE ;
+C5DIALO2 = IGNORE ;
+C1312OH = IGNORE ;
+C3MCODBPAN = IGNORE ;
+OCTOH = IGNORE ;
+C6TONOHOOH = IGNORE ;
+NBUACETCO2 = IGNORE ;
+HM2C43O2 = IGNORE ;
+C122O2 = IGNORE ;
+OCTO2 = IGNORE ;
+C126CO3H = IGNORE ;
+CCL3OOH = IGNORE ;
+MBOBNO3 = IGNORE ;
+C819O = IGNORE ;
+BCANO3 = IGNORE ;
+C1312O2 = IGNORE ;
+MTBEAALPAN = IGNORE ;
+C5DIALOH = IGNORE ;
+C8M3CO = IGNORE ;
+C121O = IGNORE ;
+C6DCRBBOH = IGNORE ;
+HEXAO = IGNORE ;
+C63O2 = IGNORE ;
+C312COCO3 = IGNORE ;
+BPINCOOH = IGNORE ;
+PHC3NO3 = IGNORE ;
+BU1ENO3O2 = IGNORE ;
+NC5H12 = IGNORE ;
+C524O = IGNORE ;
+C9M2CO6O = IGNORE ;
+C3COCCO3 = IGNORE ;
+C7CO2M5O = IGNORE ;
+CO2H3CO3H = IGNORE ;
+C7ADCO = IGNORE ;
+C63OH = IGNORE ;
+HO24C5 = IGNORE ;
+C75OOH = IGNORE ;
+MXYMUCCO3 = IGNORE ;
+C129CO = IGNORE ;
+LMKBO = IGNORE ;
+C23C54CO3 = IGNORE ;
+C53NO32O2 = IGNORE ;
+C126CO = IGNORE ;
+C67CHO = IGNORE ;
+INANCOCO2H = IGNORE ;
+MXYFUONE = IGNORE ;
+MPRBNO3PAN = IGNORE ;
+C515CHO = IGNORE ;
+BOXOHETOH = IGNORE ;
+MC6OTKTOOH = IGNORE ;
+C146OH = IGNORE ;
+CHOC2CO3H = IGNORE ;
+C4M3NO3ONE = IGNORE ;
+C146O2 = IGNORE ;
+PEN2ONE1O2 = IGNORE ;
+NC101CO = IGNORE ;
+NC4OHCPAN = IGNORE ;
+TMBCO3 = IGNORE ;
+ETBECO = IGNORE ;
+TM124BPRO2 = IGNORE ;
+MXYL1OOH = IGNORE ;
+BCBOCOO = IGNORE ;
+EMPHO2 = IGNORE ;
+C68OH = IGNORE ;
+OXYQOOH = IGNORE ;
+C4CONO3O2 = IGNORE ;
+CRESOOH = IGNORE ;
+OETLQOOH = IGNORE ;
+C831NO3 = IGNORE ;
+C71O = IGNORE ;
+HOC4CHOO2 = IGNORE ;
+C8OHCO2CO3 = IGNORE ;
+INB1O = IGNORE ;
+CO3C5CHO = IGNORE ;
+HO3C76OOH = IGNORE ;
+C629O = IGNORE ;
+C68O2 = IGNORE ;
+C132OOH = IGNORE ;
+C6CO3OHOOH = IGNORE ;
+HIEB1O2 = IGNORE ;
+HO3C5CO3H = IGNORE ;
+PPRBQOOH = IGNORE ;
+C8DBCO2CO3 = IGNORE ;
+NPETOL1OOH = IGNORE ;
+ACO2H = IGNORE ;
+C5H11CO3 = IGNORE ;
+BUTDANO3 = IGNORE ;
+NPROACET = IGNORE ;
+C137CO3H = IGNORE ;
+C6H5CH2CO3 = IGNORE ;
+NBUACCOOH = IGNORE ;
+C6TRONOHO2 = IGNORE ;
+IPRCHOOA = IGNORE ;
+C618CO2H = IGNORE ;
+C612O = IGNORE ;
+CO24C63O2 = IGNORE ;
+NC4MDCO2H = IGNORE ;
+C79OOH = IGNORE ;
+NDNT123LO = IGNORE ;
+BCCO = IGNORE ;
+MC5CO2OHO2 = IGNORE ;
+ETBECO2 = IGNORE ;
+IPBFUOOH = IGNORE ;
+C518CO2H = IGNORE ;
+C2CL2OH2 = IGNORE ;
+HM23C4O = IGNORE ;
+NBUTDAOOH = IGNORE ;
+HM2C43CHO = IGNORE ;
+NOETLQO = IGNORE ;
+MACRO = IGNORE ;
+ACCOPROOH = IGNORE ;
+C111OOH = IGNORE ;
+PRONEMOXO = IGNORE ;
+C23O3ECO2H = IGNORE ;
+M3PECOOH = IGNORE ;
+C2CL2OHO = IGNORE ;
+ETBECOH = IGNORE ;
+C104OOH = IGNORE ;
+C97O = IGNORE ;
+CO2C54CO3H = IGNORE ;
+NC728OOH = IGNORE ;
+C93O2 = IGNORE ;
+C235C6CO3H = IGNORE ;
+HO1C4NO3 = IGNORE ;
+C5COCHOOOH = IGNORE ;
+NEOPO2 = IGNORE ;
+CH3SOO = IGNORE ;
+C719O2 = IGNORE ;
+C9DCO2 = IGNORE ;
+NPRACBOH = IGNORE ;
+HO1C4O2 = IGNORE ;
+EPXM2DCO2H = IGNORE ;
+C615PAN = IGNORE ;
+C1211O2 = IGNORE ;
+C830CO3 = IGNORE ;
+C23O3ECO3 = IGNORE ;
+C1211OH = IGNORE ;
+OXYBIPERO = IGNORE ;
+C9DCOH = IGNORE ;
+C719OH = IGNORE ;
+C8236CO = IGNORE ;
+BUT2CO3 = IGNORE ;
+CH3SO2 = IGNORE ;
+CH3SO3 = IGNORE ;
+NEOPOH = IGNORE ;
+C918CHO = IGNORE ;
+MEMOXYCO3 = IGNORE ;
+C105OOH = IGNORE ;
+HO5CO8C10 = IGNORE ;
+C93OH = IGNORE ;
+CY6DIONOH = IGNORE ;
+C6CO4DB = IGNORE ;
+MALANHY2OH = IGNORE ;
+C55O2 = IGNORE ;
+NOETOLO = IGNORE ;
+C1215CO = IGNORE ;
+ACCOMEPAN = IGNORE ;
+C4ME22OH = IGNORE ;
+HO3C4NO3 = IGNORE ;
+CH3OCH2O2 = IGNORE ;
+CY6TRIONO2 = IGNORE ;
+CH3OCH2OH = IGNORE ;
+C517CO3H = IGNORE ;
+M33C4OH = IGNORE ;
+H3C25C5CHO = IGNORE ;
+INB1HPPAN = IGNORE ;
+BCKBOOH = IGNORE ;
+CY6DIONO2 = IGNORE ;
+BOXCOEOL = IGNORE ;
+MC6OTKETOH = IGNORE ;
+PBZBPEROOH = IGNORE ;
+M23C43O2 = IGNORE ;
+HSO3 = IGNORE ;
+PXYMUCCO = IGNORE ;
+ME2BUOLO2 = IGNORE ;
+DMKOHO2 = IGNORE ;
+NTM135LOOH = IGNORE ;
+ENCATECO = IGNORE ;
+DNEBNZOL = IGNORE ;
+M23C43OH = IGNORE ;
+DEMPHSMS1O = IGNORE ;
+C52NO31O2 = IGNORE ;
+MBOAO = IGNORE ;
+BPINAO = IGNORE ;
+MXCATEC1O2 = IGNORE ;
+PBZMUCCO3H = IGNORE ;
+C7MO3OHOOH = IGNORE ;
+C4NO3M2OOH = IGNORE ;
+BZFUONOO = IGNORE ;
+NEOPOOH = IGNORE ;
+MTBKO = IGNORE ;
+TM135MUOOH = IGNORE ;
+C116CO3 = IGNORE ;
+C920O2 = IGNORE ;
+C512NO3 = IGNORE ;
+C8OHO2CO3H = IGNORE ;
+TM124NO2O2 = IGNORE ;
+PPRBQO2 = IGNORE ;
+C5PAN19 = IGNORE ;
+MTBEACHO13 = IGNORE ;
+C5PAN11 = IGNORE ;
+C5PAN10 = IGNORE ;
+C5PAN13 = IGNORE ;
+C5PAN12 = IGNORE ;
+C5PAN15 = IGNORE ;
+C5PAN14 = IGNORE ;
+C5PAN17 = IGNORE ;
+C5PAN16 = IGNORE ;
+C820O2 = IGNORE ;
+PPRBQOH = IGNORE ;
+C7DCPAN = IGNORE ;
+BOXPRONEAO = IGNORE ;
+HO3C5CO3 = IGNORE ;
+HO3C3PAN = IGNORE ;
+HO12CO3C4 = IGNORE ;
+C3MNO3PAN = IGNORE ;
+CHOCL = IGNORE ;
+C826CO3OOH = IGNORE ;
+HEXCO = IGNORE ;
+H13CO2CO3 = IGNORE ;
+HO13M2C4 = IGNORE ;
+PHIC3NO3 = IGNORE ;
+EOX2ETA2OH = IGNORE ;
+CHCL2O = IGNORE ;
+PMALNHYOOH = IGNORE ;
+HEX2ONANO3 = IGNORE ;
+NPRACBNO3 = IGNORE ;
+C622CHO = IGNORE ;
+BUTDBO2 = IGNORE ;
+C4ECO2O2 = IGNORE ;
+MPRBNO3CHO = IGNORE ;
+C4OHCO3 = IGNORE ;
+BCKET = IGNORE ;
+C111O2 = IGNORE ;
+BRETO2H = IGNORE ;
+DMMALANHY = IGNORE ;
+KLIMONONIC = IGNORE ;
+MECOACETO2 = IGNORE ;
+IPGLOO = IGNORE ;
+C142NO3 = IGNORE ;
+TBUACCO = IGNORE ;
+CH2CL3O2 = IGNORE ;
+MXYLO2 = IGNORE ;
+NIPBNZ1O = IGNORE ;
+NT123L1OOH = IGNORE ;
+MXYLOH = IGNORE ;
+MXYLOL = IGNORE ;
+CHCLOO = IGNORE ;
+TM123BPRO = IGNORE ;
+CH2CL3OH = IGNORE ;
+C830CO2H = IGNORE ;
+HO3C6O2 = IGNORE ;
+IPBZMUCOOH = IGNORE ;
+C58NO3CO3H = IGNORE ;
+NC524OH = IGNORE ;
+C5COOHCO3H = IGNORE ;
+C128OOH = IGNORE ;
+C1013OOH = IGNORE ;
+CH3OH = IGNORE ;
+IPECOOH = IGNORE ;
+C1014NO3 = IGNORE ;
+DEMPHOLO2 = IGNORE ;
+C722OOH = IGNORE ;
+INB1NAPAN = IGNORE ;
+C77O = IGNORE ;
+MIBKBOH = IGNORE ;
+HOIBUTCO3H = IGNORE ;
+MIBKBO2 = IGNORE ;
+TMB2FUO2 = IGNORE ;
+C413COOOH = IGNORE ;
+MCATEC1O2 = IGNORE ;
+DEMPHOLOH = IGNORE ;
+NC10H22 = IGNORE ;
+CH3O2 = IGNORE ;
+CLCOCLMEO = IGNORE ;
+HIEB2O = IGNORE ;
+NBZFUO = IGNORE ;
+C1012OOH = IGNORE ;
+C712NO3 = IGNORE ;
+MIBKAOHNO3 = IGNORE ;
+NBZQOOH = IGNORE ;
+DMCNO3 = IGNORE ;
+M3HEXAO = IGNORE ;
+C718CO3H = IGNORE ;
+MEKANO3 = IGNORE ;
+NMVK = IGNORE ;
+EPXM2DLPAN = IGNORE ;
+C729CO2H = IGNORE ;
+HEX3ONDO = IGNORE ;
+MEKBO = IGNORE ;
+CH3SOOOH = IGNORE ;
+BCALO = IGNORE ;
+BCAO = IGNORE ;
+ETOMECO3H = IGNORE ;
+C8M2CO6OOH = IGNORE ;
+NPBNZ1O2 = IGNORE ;
+C729O2 = IGNORE ;
+NPBNZ1OOH = IGNORE ;
+EPXMEC4DAL = IGNORE ;
+CL12PRCO = IGNORE ;
+C715CO2O2 = IGNORE ;
+PXCATEC1O2 = IGNORE ;
+M3PECO2 = IGNORE ;
+C148CO = IGNORE ;
+HO5C6O = IGNORE ;
+C623OH = IGNORE ;
+EPXMKTCO3 = IGNORE ;
+IPRBQCO = IGNORE ;
+PRPAL2CO2H = IGNORE ;
+HNMVKOOH = IGNORE ;
+BCALNO3 = IGNORE ;
+C41OOH = IGNORE ;
+MACRNO3 = IGNORE ;
+C623O2 = IGNORE ;
+C133NO3 = IGNORE ;
+HM22C3CO3 = IGNORE ;
+PRNO3CO3 = IGNORE ;
+MNCATECO2 = IGNORE ;
+M3PECOH = IGNORE ;
+C715CO2OH = IGNORE ;
+PXCATEC1O = IGNORE ;
+C6CO134OOH = IGNORE ;
+NBUTOLBO2 = IGNORE ;
+HO3C116O2 = IGNORE ;
+C3ME3CO3H = IGNORE ;
+C6DIALO2 = IGNORE ;
+C1215NO3 = IGNORE ;
+HM2C43OOH = IGNORE ;
+NOPINONE = IGNORE ;
+T124NCATEC = IGNORE ;
+INAHPAN = IGNORE ;
+C825O = IGNORE ;
+HCOCOHPAN = IGNORE ;
+ETHFORMO2 = IGNORE ;
+C83O2 = IGNORE ;
+C6COCHOOOH = IGNORE ;
+C513OH = IGNORE ;
+ETHFORMOH = IGNORE ;
+C513O2 = IGNORE ;
+TBUACPAN = IGNORE ;
+C7236CO = IGNORE ;
+PXYEPOXMUC = IGNORE ;
+C6DIALOH = IGNORE ;
+C630CO = IGNORE ;
+INDO = IGNORE ;
+TM123MUOOH = IGNORE ;
+DMEPHOLO2 = IGNORE ;
+VINOH = IGNORE ;
+C5DBCO2PAN = IGNORE ;
+ETHOX = IGNORE ;
+ACCOCOETO = IGNORE ;
+MIPKBO = IGNORE ;
+LMLKBCO = IGNORE ;
+C7CO2M5OH = IGNORE ;
+TBUACCO3H = IGNORE ;
+MMCFO2 = IGNORE ;
+OTCATEC1O2 = IGNORE ;
+COO2C4O2 = IGNORE ;
+BCCO2 = IGNORE ;
+C4OCCOHNO3 = IGNORE ;
+BCCOH = IGNORE ;
+MMCFOH = IGNORE ;
+TM135BPRO = IGNORE ;
+C4ME3HO23 = IGNORE ;
+HOIPRCHO = IGNORE ;
+PROL11MNO3 = IGNORE ;
+HEXBNO3 = IGNORE ;
+DMEPHOLOH = IGNORE ;
+BOXPRONAO2 = IGNORE ;
+CO23C65OOH = IGNORE ;
+NC4OOA = IGNORE ;
+NBZFUOOH = IGNORE ;
+C141OOH = IGNORE ;
+C69O = IGNORE ;
+C141OOA = IGNORE ;
+HO2CO3C4O = IGNORE ;
+CO2M33CO2H = IGNORE ;
+C109OOH = IGNORE ;
+DICLETO = IGNORE ;
+C4M3NO31O = IGNORE ;
+M2HEXBNO3 = IGNORE ;
+C63NO32O = IGNORE ;
+C7OHO2CO3H = IGNORE ;
+BCALAO2 = IGNORE ;
+CH3SO4NO2 = IGNORE ;
+BCALAOH = IGNORE ;
+NC4PDCO2H = IGNORE ;
+C146OOH = IGNORE ;
+PE1ENEBO = IGNORE ;
+DNT123LO = IGNORE ;
+NC3H7NO3 = IGNORE ;
+BPINCO = IGNORE ;
+C4M2NO3ONE = IGNORE ;
+ME3CO2BUOL = IGNORE ;
+MXYL1O2 = IGNORE ;
+CL2OHOOH = IGNORE ;
+C816O2 = IGNORE ;
+PTNCATCOOH = IGNORE ;
+C46CO2H = IGNORE ;
+C728O = IGNORE ;
+C139OOH = IGNORE ;
+C8DCO2CO3H = IGNORE ;
+MXYLOOH = IGNORE ;
+C819O2 = IGNORE ;
+C732CO = IGNORE ;
+C519PAN = IGNORE ;
+CHOOCH2OOH = IGNORE ;
+H2M3CO4CHO = IGNORE ;
+ACRPAN = IGNORE ;
+C52O = IGNORE ;
+PXYMUCPAN = IGNORE ;
+C626CO3 = IGNORE ;
+TM124BPOOH = IGNORE ;
+EPXMDLCO3H = IGNORE ;
+C3M3CHOOOH = IGNORE ;
+C43NO3CO3 = IGNORE ;
+LMKBNO3 = IGNORE ;
+C142O2 = IGNORE ;
+DNT123LO2 = IGNORE ;
+IPROMCCO3 = IGNORE ;
+C129O2 = IGNORE ;
+C6CYTONO2 = IGNORE ;
+BCLKCOH = IGNORE ;
+CHOC4O2 = IGNORE ;
+ISOPAO2 = IGNORE ;
+MPRANO3O = IGNORE ;
+C64OH = IGNORE ;
+TLOBIPEROH = IGNORE ;
+C67CO3H = IGNORE ;
+C4CO2DBPAN = IGNORE ;
+C64O2 = IGNORE ;
+C56O = IGNORE ;
+C928O = IGNORE ;
+TM124QO = IGNORE ;
+PERPROACID = IGNORE ;
+DMEPH1O = IGNORE ;
+C24O3CCO2H = IGNORE ;
+NEBNZ1O2 = IGNORE ;
+IPROC21O = IGNORE ;
+C83O = IGNORE ;
+HEX3ONAOOH = IGNORE ;
+PXYOLO2 = IGNORE ;
+C136CO2 = IGNORE ;
+C136CO3 = IGNORE ;
+BCLKCO2 = IGNORE ;
+C822O = IGNORE ;
+T123CAT1O = IGNORE ;
+DIEKBO = IGNORE ;
+C131CO3H = IGNORE ;
+IPRACOH = IGNORE ;
+ACO3H = IGNORE ;
+C143NO3 = IGNORE ;
+C916OOH = IGNORE ;
+CO4DBC8 = IGNORE ;
+CO4DBC9 = IGNORE ;
+LMLKAO = IGNORE ;
+C82NO3 = IGNORE ;
+C152NO3 = IGNORE ;
+TM124QOH = IGNORE ;
+M23C4OOH = IGNORE ;
+MVKO = IGNORE ;
+TM124QO2 = IGNORE ;
+C3ME3CO3 = IGNORE ;
+CHOC4OHO2 = IGNORE ;
+CO2M3C4CHO = IGNORE ;
+PROPALO = IGNORE ;
+ETHENO3O2 = IGNORE ;
+C625O = IGNORE ;
+LIMONENE = IGNORE ;
+EBZMUCOH = IGNORE ;
+CYC6DIONO2 = IGNORE ;
+C714OH = IGNORE ;
+MIBKAOHAO = IGNORE ;
+C75O = IGNORE ;
+C7MOHCOPAN = IGNORE ;
+BU1ENO3O = IGNORE ;
+NCRES1OOH = IGNORE ;
+H2M3CO5C6 = IGNORE ;
+TM135MUNO3 = IGNORE ;
+NMBOAOOH = IGNORE ;
+C6OTKETOOH = IGNORE ;
+TBUTOLNO3 = IGNORE ;
+C927NO3 = IGNORE ;
+C7CO4DB = IGNORE ;
+HO3CO46C8 = IGNORE ;
+C714O2 = IGNORE ;
+NOETOLOOH = IGNORE ;
+IPBZPOXMUC = IGNORE ;
+C930NO3 = IGNORE ;
+EBZMUCO2 = IGNORE ;
+BOX2ECHO = IGNORE ;
+EPXEKTCO3H = IGNORE ;
+MTBEACHO = IGNORE ;
+IPBENZ = IGNORE ;
+CO23C4CHO = IGNORE ;
+BUTACID = IGNORE ;
+NPTLQOOH = IGNORE ;
+C736OH = IGNORE ;
+BCALBO = IGNORE ;
+HO7C8O = IGNORE ;
+C97OH = IGNORE ;
+C4CONO3CO = IGNORE ;
+PINALOOH = IGNORE ;
+NC1313OH = IGNORE ;
+PET1O = IGNORE ;
+HO7C8CO3H = IGNORE ;
+C7DDCCO2H = IGNORE ;
+CO2H3CHO = IGNORE ;
+NC1313O2 = IGNORE ;
+NDNMETLOOH = IGNORE ;
+TM135MUCO = IGNORE ;
+C97O2 = IGNORE ;
+INANCOPAN = IGNORE ;
+IPRFORMOOH = IGNORE ;
+CH3SO2CHO = IGNORE ;
+C736O2 = IGNORE ;
+TM123OOH = IGNORE ;
+C131OH = IGNORE ;
+TMBCO3H = IGNORE ;
+C6145COO = IGNORE ;
+CLETPAN = IGNORE ;
+CL12PRAO = IGNORE ;
+C923NO3 = IGNORE ;
+CHCL2CHO = IGNORE ;
+CO2C54O = IGNORE ;
+DNC524CO = IGNORE ;
+PE2ENEBO = IGNORE ;
+NOPINBOH = IGNORE ;
+CHEXOOH = IGNORE ;
+C104O = IGNORE ;
+ETHOXOOH = IGNORE ;
+NOPINBO2 = IGNORE ;
+UDEC3ONE = IGNORE ;
+C4MNO31OOH = IGNORE ;
+C622NO3 = IGNORE ;
+CHCL2CH3 = IGNORE ;
+NDNMETOLO2 = IGNORE ;
+NAPINBO = IGNORE ;
+C715CO2OOH = IGNORE ;
+C131O2 = IGNORE ;
+PXY1O = IGNORE ;
+NIPBFUO2 = IGNORE ;
+BCSOZOH = IGNORE ;
+BOCOCH2OOH = IGNORE ;
+C124OOH = IGNORE ;
+EPXMEDLCO3 = IGNORE ;
+BOXCOCHO = IGNORE ;
+DIEKBNO3 = IGNORE ;
+IPCATEC1O = IGNORE ;
+C713OOH = IGNORE ;
+C79O2 = IGNORE ;
+PHCOMEOH = IGNORE ;
+HMGLYOOA = IGNORE ;
+BZFUOOH = IGNORE ;
+PR2OHMONO3 = IGNORE ;
+CH2OHCOCL = IGNORE ;
+C925O2 = IGNORE ;
+C129OOH = IGNORE ;
+ETHOHNO3 = IGNORE ;
+BCKAOOH = IGNORE ;
+C730NO3 = IGNORE ;
+C929CO = IGNORE ;
+C93CO = IGNORE ;
+BCSOZO2 = IGNORE ;
+MXNCATECO2 = IGNORE ;
+IPEAOH = IGNORE ;
+CO234C65O2 = IGNORE ;
+PBZQO = IGNORE ;
+C3MNO3CHO = IGNORE ;
+CO23C65O = IGNORE ;
+HEX2ONAO2 = IGNORE ;
+C731PAN = IGNORE ;
+BZEPOXMUC = IGNORE ;
+DMPHCOMOOH = IGNORE ;
+EMALANHY = IGNORE ;
+C116OOH = IGNORE ;
+IPBENZOLO = IGNORE ;
+C6CO34O = IGNORE ;
+HO1C6O2 = IGNORE ;
+HO3C4CO3 = IGNORE ;
+HO14CO2C5 = IGNORE ;
+HO2C43CO2H = IGNORE ;
+CO3H4PAN = IGNORE ;
+EIPKBOOH = IGNORE ;
+NLIMALO2 = IGNORE ;
+CHCL2CO2H = IGNORE ;
+HO8C9CO3 = IGNORE ;
+COO2C3CHO = IGNORE ;
+C98NO3 = IGNORE ;
+M2HEXAO = IGNORE ;
+C115OOH = IGNORE ;
+EMPHGLYOX = IGNORE ;
+PBENZO2 = IGNORE ;
+C1011PAN = IGNORE ;
+C133O2 = IGNORE ;
+EMALNHY2OH = IGNORE ;
+CH2BRO = IGNORE ;
+C42CO3 = IGNORE ;
+BZBIPERO = IGNORE ;
+HNBIACET = IGNORE ;
+IPBFUO = IGNORE ;
+C522CO3H = IGNORE ;
+C7DCCO2H = IGNORE ;
+HO13CO4C5 = IGNORE ;
+MXYMUCPAN = IGNORE ;
+NPROACEAO = IGNORE ;
+C7CO2DBAL = IGNORE ;
+HEXAOOH = IGNORE ;
+MMFOOH = IGNORE ;
+PETLMUCCO = IGNORE ;
+C115O2 = IGNORE ;
+CATEC1OOH = IGNORE ;
+C815CO2OH = IGNORE ;
+TOL4OHNO2 = IGNORE ;
+NO3CH2CO3H = IGNORE ;
+ACBUOAOOH = IGNORE ;
+C815CO2O2 = IGNORE ;
+NOXYFUOOH = IGNORE ;
+C819OOH = IGNORE ;
+HMACRO = IGNORE ;
+C64OH5O2 = IGNORE ;
+C729NO3 = IGNORE ;
+CCLOHCOCL = IGNORE ;
+C3M3OH2CHO = IGNORE ;
+CH2CLCHCL2 = IGNORE ;
+NDMEPHOLO = IGNORE ;
+MMFO2 = IGNORE ;
+TPENT2ENE = IGNORE ;
+MIBK3COOOH = IGNORE ;
+NCATECO = IGNORE ;
+EPXEKTPAN = IGNORE ;
+DMMANO3 = IGNORE ;
+C118O = IGNORE ;
+C123NO3 = IGNORE ;
+C103CO = IGNORE ;
+C7ADCPAN = IGNORE ;
+PETOLO2 = IGNORE ;
+PHCOCOCOOH = IGNORE ;
+ACEETOHOOH = IGNORE ;
+ETOLO = IGNORE ;
+BPINAO2 = IGNORE ;
+M2PEBO2 = IGNORE ;
+MXYMUCCO3H = IGNORE ;
+C4OHPAN = IGNORE ;
+DDEC3ONE = IGNORE ;
+NTM123LOOH = IGNORE ;
+HO3C76O2 = IGNORE ;
+C108NO3 = IGNORE ;
+M2PEBOH = IGNORE ;
+BPINAOH = IGNORE ;
+HEXCOOH = IGNORE ;
+EIPEOOH = IGNORE ;
+NDNOXYOLO = IGNORE ;
+C615OH = IGNORE ;
+M22C3CO3H = IGNORE ;
+GLYOOB = IGNORE ;
+GLYOOC = IGNORE ;
+GLYOOA = IGNORE ;
+C81O = IGNORE ;
+MTBEBCHO = IGNORE ;
+C820O = IGNORE ;
+MMFOH = IGNORE ;
+CDICLETH = IGNORE ;
+C6ETCO4DB = IGNORE ;
+CYHXONAO2 = IGNORE ;
+DMPHO = IGNORE ;
+TBUACOH = IGNORE ;
+C6CO3HO25 = IGNORE ;
+CH3SCH2O2 = IGNORE ;
+MC4CONO3O = IGNORE ;
+DDECO2 = IGNORE ;
+HO3C106OOH = IGNORE ;
+C1013CO3 = IGNORE ;
+C66NO35O = IGNORE ;
+C615CO3H = IGNORE ;
+C5NO3COAO = IGNORE ;
+DNMXYOLO = IGNORE ;
+PRCOOMPAN = IGNORE ;
+DNIPBZLOOH = IGNORE ;
+DDECOH = IGNORE ;
+CH2CLCH2O = IGNORE ;
+CH3SCH2OH = IGNORE ;
+C52NO3 = IGNORE ;
+TRICLETH = IGNORE ;
+ACETCOC2H5 = IGNORE ;
+MOXCOCH2OH = IGNORE ;
+CYHXONAOH = IGNORE ;
+CO25C6CO3 = IGNORE ;
+C831O2 = IGNORE ;
+C627O = IGNORE ;
+M23C4O = IGNORE ;
+CY6DIONO = IGNORE ;
+DE35TOH = IGNORE ;
+TLFUO = IGNORE ;
+NON3ONE = IGNORE ;
+NTM124OLO = IGNORE ;
+C7ECO4DB = IGNORE ;
+DIETETO = IGNORE ;
+C4M2NO33O2 = IGNORE ;
+C5DBCOCO3H = IGNORE ;
+HO2MC5OOH = IGNORE ;
+H3M3C4CHO = IGNORE ;
+C1214OOH = IGNORE ;
+HMVKBPAN = IGNORE ;
+HCOCH2CO3H = IGNORE ;
+NDNOETOLO = IGNORE ;
+DE35TO2 = IGNORE ;
+C831OH = IGNORE ;
+HO2CO4CHO = IGNORE ;
+HOBUT2CO3H = IGNORE ;
+HO3C116NO3 = IGNORE ;
+EBZBIPERO = IGNORE ;
+C118OOH = IGNORE ;
+C141OO = IGNORE ;
+C141OH = IGNORE ;
+NOPINDO = IGNORE ;
+C822CO3H = IGNORE ;
+C4H6 = IGNORE ;
+C810O2 = IGNORE ;
+C141O2 = IGNORE ;
+C710O = IGNORE ;
+IBUTALBO2 = IGNORE ;
+C618O = IGNORE ;
+DIBRETOH = IGNORE ;
+CHOC2H4O2 = IGNORE ;
+BUTALO2 = IGNORE ;
+CO235C6OOH = IGNORE ;
+DMEBMUO2H = IGNORE ;
+C5MEJCO3H = IGNORE ;
+CO14O3CO2H = IGNORE ;
+HM23C4NO3 = IGNORE ;
+C148OH = IGNORE ;
+C106O = IGNORE ;
+COCCOHCOOH = IGNORE ;
+H2M3C4NO3 = IGNORE ;
+CLCOCLMOOH = IGNORE ;
+CO24C4CHO = IGNORE ;
+HO2CO4C5O = IGNORE ;
+MXY1OHNO2 = IGNORE ;
+C148O2 = IGNORE ;
+C1211CO3H = IGNORE ;
+C5M2OHOPAN = IGNORE ;
+C4H9CHO = IGNORE ;
+HEX2ONE = IGNORE ;
+INAHCHO = IGNORE ;
+IPROPOLO = IGNORE ;
+C6H5CH2OOH = IGNORE ;
+C118NO3 = IGNORE ;
+C624OH = IGNORE ;
+IPCATEC1O2 = IGNORE ;
+OXYMUCCO2H = IGNORE ;
+SBUACETBO = IGNORE ;
+PRCOFOROOH = IGNORE ;
+HM22C4O2 = IGNORE ;
+C615CO = IGNORE ;
+C6HO1CO3O = IGNORE ;
+OETLMUCCO = IGNORE ;
+C58OOH = IGNORE ;
+DNPBNZLO2 = IGNORE ;
+NC3CO3H = IGNORE ;
+TM123BPNO3 = IGNORE ;
+TM135OLO = IGNORE ;
+INB1GLYOX = IGNORE ;
+NBPINAO = IGNORE ;
+IPRFORMO2 = IGNORE ;
+C517NO3 = IGNORE ;
+IPRFORMOH = IGNORE ;
+C6HO1CO3O2 = IGNORE ;
+C928PAN = IGNORE ;
+C926OOH = IGNORE ;
+CH3CHO = IGNORE ;
+DMEBMUNO3 = IGNORE ;
+C511CHO = IGNORE ;
+NMXYQO = IGNORE ;
+DMEPHOLO = IGNORE ;
+C7CO2M5OOH = IGNORE ;
+C9DCNO3 = IGNORE ;
+C624O2 = IGNORE ;
+PINAL = IGNORE ;
+C1212NO3 = IGNORE ;
+C922OOH = IGNORE ;
+EOCOCH2OOH = IGNORE ;
+PGLOO = IGNORE ;
+C6PAN2 = IGNORE ;
+C6PAN3 = IGNORE ;
+C6PAN1 = IGNORE ;
+C6PAN6 = IGNORE ;
+C6PAN7 = IGNORE ;
+C6PAN4 = IGNORE ;
+C622CO2H = IGNORE ;
+C1212OH = IGNORE ;
+C6PAN8 = IGNORE ;
+C6PAN9 = IGNORE ;
+PROLNO3 = IGNORE ;
+BUT2OL = IGNORE ;
+C6EO2HCO3H = IGNORE ;
+NDNPBNZLO2 = IGNORE ;
+C4NO3CO3 = IGNORE ;
+C54CHO = IGNORE ;
+MGLOOA = IGNORE ;
+MGLOOB = IGNORE ;
+MGLOOC = IGNORE ;
+C1212O2 = IGNORE ;
+C5COHOCO3H = IGNORE ;
+NPXYFUO = IGNORE ;
+MVK = IGNORE ;
+ACLOO = IGNORE ;
+NMEBFUOOH = IGNORE ;
+NBUACANO3 = IGNORE ;
+HO2C54CO3H = IGNORE ;
+HEX2ONAOOH = IGNORE ;
+C61CHO = IGNORE ;
+LMKAO2 = IGNORE ;
+C927O2 = IGNORE ;
+NPXYOL1OOH = IGNORE ;
+C8O2OHCO3H = IGNORE ;
+C65O = IGNORE ;
+HO13C5 = IGNORE ;
+C3DIOLO = IGNORE ;
+C3MCODBCO2 = IGNORE ;
+H2M2C3CO3H = IGNORE ;
+IPROMCPAN = IGNORE ;
+C91OOH = IGNORE ;
+MTBEBO = IGNORE ;
+NBUACETBO2 = IGNORE ;
+C1311OH = IGNORE ;
+M3PEANO3 = IGNORE ;
+BOXMCO3H = IGNORE ;
+BOXOHPROL = IGNORE ;
+C1311O2 = IGNORE ;
+INANCOCO3H = IGNORE ;
+BCALACO = IGNORE ;
+C4CHO2O = IGNORE ;
+C125O2 = IGNORE ;
+COCCOH2CO2 = IGNORE ;
+EPXMKTCO3H = IGNORE ;
+C615CO3 = IGNORE ;
+C2H5MECOOA = IGNORE ;
+ACBUONANO3 = IGNORE ;
+C623OOH = IGNORE ;
+C519CO3H = IGNORE ;
+H2M2C65O = IGNORE ;
+LMKAOH = IGNORE ;
+EPXMEDCO2H = IGNORE ;
+CH3CHOOA = IGNORE ;
+CH3CHOOC = IGNORE ;
+CH3CHOOB = IGNORE ;
+DETLBPR2OH = IGNORE ;
+NPROACECO = IGNORE ;
+CO36C10 = IGNORE ;
+HCOCO3 = IGNORE ;
+CO36C12 = IGNORE ;
+H2M2C65NO3 = IGNORE ;
+IPBZBIPRO = IGNORE ;
+HO8C9OOH = IGNORE ;
+BPINCNO3 = IGNORE ;
+IPROC21OOH = IGNORE ;
+IPRACBCO3H = IGNORE ;
+HCOCO2H = IGNORE ;
+PBENZ = IGNORE ;
+DETLMUCO2 = IGNORE ;
+DETLMUCO3 = IGNORE ;
+NPXYOLOH = IGNORE ;
+CH3CHCLO2 = IGNORE ;
+HEX3ONAO2 = IGNORE ;
+HIEB1OOH = IGNORE ;
+C822CO2 = IGNORE ;
+C822CO3 = IGNORE ;
+TM135OLO2 = IGNORE ;
+BCARY = IGNORE ;
+METACETOH = IGNORE ;
+CLCOCL2OOH = IGNORE ;
+C6OTKETO = IGNORE ;
+CONM2CHO = IGNORE ;
+M3CO245C6 = IGNORE ;
+C929OOH = IGNORE ;
+C87O = IGNORE ;
+HEX3ONAOH = IGNORE ;
+IECCO3 = IGNORE ;
+C826O = IGNORE ;
+BZEMUCCO3H = IGNORE ;
+CY6TRION = IGNORE ;
+NPXYOLO2 = IGNORE ;
+HO3C76NO3 = IGNORE ;
+OXYMUCNO3 = IGNORE ;
+CHOOMCO2H = IGNORE ;
+OXNNCATCO = IGNORE ;
+NDNPXYLOOH = IGNORE ;
+C7CO2OHPAN = IGNORE ;
+DMMAOH = IGNORE ;
+C731O2 = IGNORE ;
+ETHOXO2 = IGNORE ;
+HO5C6CO3 = IGNORE ;
+C62OOH = IGNORE ;
+LMLKET = IGNORE ;
+PTNNCATOOH = IGNORE ;
+PXY1OHNO2 = IGNORE ;
+TL4ONO2OOH = IGNORE ;
+NBUACCOH = IGNORE ;
+DMMAO2 = IGNORE ;
+C23O3ECOOH = IGNORE ;
+PBZN = IGNORE ;
+NC4PDCO2 = IGNORE ;
+C831OOH = IGNORE ;
+MCATEC1OOH = IGNORE ;
+APINBO = IGNORE ;
+OET1OHNO2 = IGNORE ;
+BZBIPEROOH = IGNORE ;
+NCO23CHO = IGNORE ;
+OXYOLO = IGNORE ;
+C621O = IGNORE ;
+PETLBIPRO2 = IGNORE ;
+METLQOOH = IGNORE ;
+CO2C3CHO = IGNORE ;
+MPRKAO2 = IGNORE ;
+CH2CL3OOH = IGNORE ;
+C510OOH = IGNORE ;
+MPRKAOH = IGNORE ;
+NC6H14 = IGNORE ;
+C5H8 = IGNORE ;
+C728OOH = IGNORE ;
+MC6OTKETO = IGNORE ;
+IPNNCATCO = IGNORE ;
+INB1HPCO2H = IGNORE ;
+C1014CO = IGNORE ;
+ACCOCOEOOH = IGNORE ;
+IPROPOLO2 = IGNORE ;
+CONM2PAN = IGNORE ;
+CO2M3C5OH = IGNORE ;
+IPRBQOOH = IGNORE ;
+CH2CLOOH = IGNORE ;
+T124NNCTO2 = IGNORE ;
+ACEPROPONE = IGNORE ;
+DECOH = IGNORE ;
+CO23C54O2 = IGNORE ;
+C736CO = IGNORE ;
+C3MNO3CO3 = IGNORE ;
+PE2ENEAO2 = IGNORE ;
+M2BKBO = IGNORE ;
+C5124COOOH = IGNORE ;
+MNCATECOOH = IGNORE ;
+DEMPHOLO = IGNORE ;
+C57NO3CO3 = IGNORE ;
+C822NO3 = IGNORE ;
+C116CO3H = IGNORE ;
+TM135MUOH = IGNORE ;
+DECO2 = IGNORE ;
+NOXYFUO2 = IGNORE ;
+MEKBO2 = IGNORE ;
+HO2C43CO3 = IGNORE ;
+TM124NOOH = IGNORE ;
+M2PECOOH = IGNORE ;
+CRESOH = IGNORE ;
+MTBEANO3 = IGNORE ;
+CRESOL = IGNORE ;
+HO1C5O2 = IGNORE ;
+C7M2CO5OOH = IGNORE ;
+C7CODBCO3 = IGNORE ;
+MXYL = IGNORE ;
+TM124BOOH = IGNORE ;
+CO2HO4C6 = IGNORE ;
+MPHCOMEOH = IGNORE ;
+C710OOH = IGNORE ;
+C4NO3M1OOH = IGNORE ;
+C78CO = IGNORE ;
+MPHCOMEO2 = IGNORE ;
+CO2C43CHO = IGNORE ;
+MECOFOROOH = IGNORE ;
+MTBEBCO2H = IGNORE ;
+C4ECO2OOH = IGNORE ;
+EBFUO = IGNORE ;
+CRESO2 = IGNORE ;
+C7M6CO2O = IGNORE ;
+HO1C4OOH = IGNORE ;
+C41CO3 = IGNORE ;
+H2C3OCO = IGNORE ;
+C54O2 = IGNORE ;
+C826NO3 = IGNORE ;
+C14O3ECHO = IGNORE ;
+TLEMUCPAN = IGNORE ;
+C618PAN = IGNORE ;
+NO3CH2CHO = IGNORE ;
+C117OOH = IGNORE ;
+M23C43OOH = IGNORE ;
+C718PAN = IGNORE ;
+NOPINCOOH = IGNORE ;
+CO2C4CO3H = IGNORE ;
+C930O = IGNORE ;
+C5124COO2 = IGNORE ;
+HO2C3CO3 = IGNORE ;
+ETBEBOOH = IGNORE ;
+EBENZOOH = IGNORE ;
+C136CO2H = IGNORE ;
+C54OH = IGNORE ;
+C88CHO = IGNORE ;
+IEB2O = IGNORE ;
+DNMETOLO = IGNORE ;
+NMETLQOOH = IGNORE ;
+PETLQONE = IGNORE ;
+H3M3C5O = IGNORE ;
+DNPHENO2 = IGNORE ;
+NC71OOH = IGNORE ;
+DMPHCOMO = IGNORE ;
+C65NO36CHO = IGNORE ;
+CO14O3CHO = IGNORE ;
+DMPHCOME = IGNORE ;
+C3ME3CHOO = IGNORE ;
+HO24C5O = IGNORE ;
+C23O3MCO2H = IGNORE ;
+OXYFUO = IGNORE ;
+CO1C6OOH = IGNORE ;
+CCOCOCOH = IGNORE ;
+C714OOH = IGNORE ;
+C727OOH = IGNORE ;
+C7MJPPAN = IGNORE ;
+C52NO33CO = IGNORE ;
+ME2BU2OLO2 = IGNORE ;
+BZBIPERO2 = IGNORE ;
+C6CO134 = IGNORE ;
+MXNNCATCO = IGNORE ;
+C2H5O2 = IGNORE ;
+C5O45OHPAN = IGNORE ;
+C67O = IGNORE ;
+T124CTCOOA = IGNORE ;
+NBUTDBO = IGNORE ;
+INDHCHO = IGNORE ;
+C68OOH = IGNORE ;
+C23O3MO2 = IGNORE ;
+M3HEXAOOH = IGNORE ;
+C828CHO = IGNORE ;
+C9DCO = IGNORE ;
+IBUTALBO2H = IGNORE ;
+C2CL3OHAO2 = IGNORE ;
+PXYQO2 = IGNORE ;
+PXYQOH = IGNORE ;
+HEX2ONCO2 = IGNORE ;
+NMBOAO2 = IGNORE ;
+NOXYQO = IGNORE ;
+NPRACANO3 = IGNORE ;
+C2H5OH = IGNORE ;
+CHEX2ENE = IGNORE ;
+C4OH2CPAN = IGNORE ;
+HOC3H6CO3 = IGNORE ;
+C116PAN = IGNORE ;
+H2M4CO5C6 = IGNORE ;
+C8BC = IGNORE ;
+PETLMUCOH = IGNORE ;
+CO25C6OOH = IGNORE ;
+PETLMUCO2 = IGNORE ;
+C1011CO3 = IGNORE ;
+DIIPRETOOH = IGNORE ;
+H13CO2C3 = IGNORE ;
+IPEAO = IGNORE ;
+C731CO2H = IGNORE ;
+C1211PAN = IGNORE ;
+C5CO2DBCO3 = IGNORE ;
+BCBCO = IGNORE ;
+NC4OHCO3H = IGNORE ;
+C58O = IGNORE ;
+HO2CO5C7 = IGNORE ;
+HO2CO5C6 = IGNORE ;
+BOXMPAN = IGNORE ;
+ETOHCO2M = IGNORE ;
+HO1CO3C4O2 = IGNORE ;
+IPBZMUCNO3 = IGNORE ;
+C824O = IGNORE ;
+C1210CO3 = IGNORE ;
+C1210CO2 = IGNORE ;
+INDHPAN = IGNORE ;
+PE1ENEANO3 = IGNORE ;
+NPEBQO2 = IGNORE ;
+C6CO23HO5 = IGNORE ;
+HM2C43CO2H = IGNORE ;
+MC3ODBCO2H = IGNORE ;
+MALDIALPAN = IGNORE ;
+C89CO2H = IGNORE ;
+C6DICARBO2 = IGNORE ;
+CL2OHCO3 = IGNORE ;
+C3DBCO3 = IGNORE ;
+C72OOH = IGNORE ;
+CO23C3CHO = IGNORE ;
+ETBECPAN = IGNORE ;
+PRNOCOPOOH = IGNORE ;
+NTLFUOOH = IGNORE ;
+C62NO33OOH = IGNORE ;
+C85O = IGNORE ;
+ENNCATCOOH = IGNORE ;
+PXYBPEROOH = IGNORE ;
+HO2M2C4NO3 = IGNORE ;
+SBUACETAO2 = IGNORE ;
+C7ADCCO2H = IGNORE ;
+TM124BCO3H = IGNORE ;
+CO24M3CHO = IGNORE ;
+CYHXONAO = IGNORE ;
+CCL3O2 = IGNORE ;
+TBOCOCHO = IGNORE ;
+C104OH = IGNORE ;
+C104O2 = IGNORE ;
+MEBFUO = IGNORE ;
+MIBKANO3 = IGNORE ;
+CCL3OH = IGNORE ;
+CO2M33CO3 = IGNORE ;
+C132O = IGNORE ;
+C1013NO3 = IGNORE ;
+NC730OOH = IGNORE ;
+{ Peroxy radicals. }
+{ WARNING: The following species do not have SMILES strings in the database. 
+          If any of these are peroxy radicals the RO2 sum will be wrong. 
+    }
+#INLINE F90_RCONST 
+ USE constants
+ !end of USE statements 
+ !
+ ! start of executable statements
+ RO2 = & 
+ C(ind_HOCH2CH2O2) + C(ind_HO1C3O2) + C(ind_HYPROPO2) + C(ind_IPROPOLO2) + & 
+   C(ind_NBUTOLAO2) + C(ind_NBUTOLBO2) + C(ind_BUT2OLO2) + &  
+   C(ind_IBUTOLBO2) + C(ind_IBUTOLCO2) + C(ind_TBUTOLO2) + C(ind_HO3C5O2) &  
+   + C(ind_PE2ENEBO2) + C(ind_HM2C43O2) + C(ind_M2BUOL2O2) + &  
+   C(ind_HM33C3O2) + C(ind_ME3BUOLO2) + C(ind_HO2M2C4O2) + &  
+   C(ind_ME2BU2OLO2) + C(ind_PROL11MO2) + C(ind_H2M3C4O2) + &  
+   C(ind_ME2BUOLO2) + C(ind_CYHEXOLAO2) + C(ind_MIBKAOHAO2) + &  
+   C(ind_MIBKAOHBO2) + C(ind_MIBKHO4O2) + C(ind_CH3CO3) + C(ind_NMBOAO2) &  
+   + C(ind_NMBOBO2) + C(ind_MBOAO2) + C(ind_MBOBO2) + C(ind_CH3O2) + &  
+   C(ind_HCOCH2O2) + C(ind_C2H5CO3) + C(ind_C2H5O2) + C(ind_C3H7CO3) + &  
+   C(ind_BUTALO2) + C(ind_NC3H7O2) + C(ind_IPRCO3) + C(ind_IBUTALBO2) + &  
+   C(ind_IBUTALCO2) + C(ind_IC3H7O2) + C(ind_C4H9CO3) + C(ind_C4CHOBO2) + &  
+   C(ind_NC4H9O2) + C(ind_ACO3) + C(ind_ACO3B) + C(ind_OCCOHCO2) + &  
+   C(ind_CH3C2H2O2) + C(ind_MACO3) + C(ind_MACRO2) + C(ind_MACROHO2) + &  
+   C(ind_C3DBCO3) + C(ind_C4CONO3O2) + C(ind_C4NO3COO2) + &  
+   C(ind_C4OCCOHCO2) + C(ind_COCCOH2CO2) + C(ind_SC4H9O2) + &  
+   C(ind_IC4H9O2) + C(ind_TC4H9O2) + C(ind_PEAO2) + C(ind_PEBO2) + &  
+   C(ind_PECO2) + C(ind_IPEAO2) + C(ind_IPEBO2) + C(ind_IPECO2) + &  
+   C(ind_NEOPO2) + C(ind_HEXAO2) + C(ind_HEXBO2) + C(ind_HEXCO2) + &  
+   C(ind_M2PEAO2) + C(ind_M2PEBO2) + C(ind_M2PECO2) + C(ind_M2PEDO2) + &  
+   C(ind_M3PEAO2) + C(ind_M3PEBO2) + C(ind_M3PECO2) + C(ind_M22C43O2) + &  
+   C(ind_M22C4O2) + C(ind_M33C4O2) + C(ind_M23C43O2) + C(ind_M23C4O2) + &  
+   C(ind_HEPTO2) + C(ind_M2HEXAO2) + C(ind_M2HEXBO2) + C(ind_M3HEXAO2) + &  
+   C(ind_M3HEXBO2) + C(ind_OCTO2) + C(ind_NONO2) + C(ind_DECO2) + &  
+   C(ind_UDECO2) + C(ind_DDECO2) + C(ind_CHEXO2) + C(ind_ETHENO3O2) + &  
+   C(ind_PRONO3AO2) + C(ind_PRONO3BO2) + C(ind_BU1ENO3O2) + &  
+   C(ind_C43NO34O2) + C(ind_HO3C4O2) + C(ind_C42NO33O2) + &  
+   C(ind_MPRANO3O2) + C(ind_MPRBNO3O2) + C(ind_C51NO32O2) + &  
+   C(ind_C52NO31O2) + C(ind_PE1ENEAO2) + C(ind_PE1ENEBO2) + &  
+   C(ind_C52NO33O2) + C(ind_C53NO32O2) + C(ind_PE2ENEAO2) + &  
+   C(ind_C4NO32M1O2) + C(ind_C4NO32M2O2) + C(ind_C4M3NO31O2) + &  
+   C(ind_C4M3NO32O2) + C(ind_IPRCHOOA) + C(ind_ME3BU2OLO2) + &  
+   C(ind_C4M2NO32O2) + C(ind_C4M2NO33O2) + C(ind_C65NO36O2) + &  
+   C(ind_C66NO35O2) + C(ind_C6OH5O2) + C(ind_HO5C6O2) + C(ind_C62NO33O2) &  
+   + C(ind_C63NO32O2) + C(ind_C64OH5O2) + C(ind_C65OH4O2) + &  
+   C(ind_C4ME2NO3O2) + C(ind_C4ME2OHO2) + C(ind_BZBIPERO2) + &  
+   C(ind_C6H5CH2O2) + C(ind_TLBIPERO2) + C(ind_OXYLO2) + &  
+   C(ind_OXYBIPERO2) + C(ind_MXYLO2) + C(ind_MXYBIPERO2) + C(ind_PXYLO2) &  
+   + C(ind_PXYBIPERO2) + C(ind_C6H5C2H4O2) + C(ind_EBZBIPERO2) + &  
+   C(ind_PHC3O2) + C(ind_PBZBIPERO2) + C(ind_PHIC3O2) + C(ind_IPBZBIPRO2) &  
+   + C(ind_TM123BO2) + C(ind_TM123BPRO2) + C(ind_TM124BO2) + &  
+   C(ind_TM124BPRO2) + C(ind_TMBO2) + C(ind_TM135BPRO2) + C(ind_ETOLO2) + &  
+   C(ind_OETLBIPRO2) + C(ind_METLBIPRO2) + C(ind_PETLBIPRO2) + &  
+   C(ind_DM35EBO2) + C(ind_DMEBIPRO2) + C(ind_DE35TO2) + &  
+   C(ind_DETLBIPRO2) + C(ind_NSTYRENO2) + C(ind_STYRENO2) + &  
+   C(ind_C6H5CO3) + C(ind_C6H5O2) + C(ind_CH2CLO2) + C(ind_CHCL2O2) + &  
+   C(ind_CCL3O2) + C(ind_CCL3CH2O2) + C(ind_TCEOHO2) + C(ind_C2CL3OHAO2) &  
+   + C(ind_C2CL3OHBO2) + C(ind_C2CL2OHO2) + C(ind_DICLETO2) + &  
+   C(ind_CH2OHCL2O2) + C(ind_CL2OHCH2O2) + C(ind_CL12PRAO2) + &  
+   C(ind_CL12PRBO2) + C(ind_CL12PRCO2) + C(ind_CH3CCL2O2) + &  
+   C(ind_CHCL2CH2O2) + C(ind_CH2CLCH2O2) + C(ind_CH3CHCLO2) + &  
+   C(ind_CHCL2CL2O2) + C(ind_CH2CL3O2) + C(ind_CHCL3O2) + C(ind_CCLNO3O2) &  
+   + C(ind_CNO3CLO2) + C(ind_CCLOHCH2O2) + C(ind_CH2OHCCLO2) + &  
+   C(ind_NBUTDAO2) + C(ind_NBUTDBO2) + C(ind_BUTDAO2) + C(ind_BUTDBO2) + &  
+   C(ind_BUTDCO2) + C(ind_NISOPO2) + C(ind_ISOPAO2) + C(ind_ISOPBO2) + &  
+   C(ind_ISOPCO2) + C(ind_ISOPDO2) + C(ind_CHOOCH2O2) + C(ind_METHACETO2) &  
+   + C(ind_MOCOCH2O2) + C(ind_ACETC2H4O2) + C(ind_EOCOCH2O2) + &  
+   C(ind_ETHACETO2) + C(ind_NPROACEAO2) + C(ind_NPROACEBO2) + &  
+   C(ind_NPROACECO2) + C(ind_IPRACBO2) + C(ind_IPROACETO2) + &  
+   C(ind_NBUACETAO2) + C(ind_NBUACETBO2) + C(ind_NBUACETCO2) + &  
+   C(ind_SBUACETAO2) + C(ind_SBUACETBO2) + C(ind_MCOOTBO2) + &  
+   C(ind_TBOCOCH2O2) + C(ind_CH3OCH2O2) + C(ind_DIETETO2) + &  
+   C(ind_ETOC2O2) + C(ind_MTBEAO2) + C(ind_MTBEBO2) + C(ind_DIIPRETO2) + &  
+   C(ind_IPROMC2O2) + C(ind_ETBEAO2) + C(ind_ETBEBO2) + C(ind_ETBECO2) + &  
+   C(ind_MO2EOLAO2) + C(ind_MO2EOLBO2) + C(ind_EOX2EOLAO2) + &  
+   C(ind_EOX2EOLBO2) + C(ind_PR2OHMOXO2) + C(ind_H2C3OCO2) + &  
+   C(ind_BOX2EOHAO2) + C(ind_BOX2EOHBO2) + C(ind_BOXPROLAO2) + &  
+   C(ind_BOXPROLBO2) + C(ind_CH2BRO2) + C(ind_DIBRETO2) + &  
+   C(ind_CH3COCH2O2) + C(ind_MEKAO2) + C(ind_MEKBO2) + C(ind_MEKCO2) + &  
+   C(ind_CO2C54O2) + C(ind_MPRKAO2) + C(ind_DIEKAO2) + C(ind_DIEKBO2) + &  
+   C(ind_MIPKAO2) + C(ind_MIPKBO2) + C(ind_HEX2ONAO2) + C(ind_HEX2ONBO2) &  
+   + C(ind_HEX2ONCO2) + C(ind_HEX3ONAO2) + C(ind_HEX3ONBO2) + &  
+   C(ind_HEX3ONCO2) + C(ind_HEX3ONDO2) + C(ind_MIBKAO2) + C(ind_MIBKBO2) &  
+   + C(ind_MTBKO2) + C(ind_CYHXONAO2) + C(ind_NAPINAO2) + C(ind_NAPINBO2) &  
+   + C(ind_APINAO2) + C(ind_APINBO2) + C(ind_APINCO2) + C(ind_NBPINAO2) + &  
+   C(ind_NBPINBO2) + C(ind_BPINAO2) + C(ind_BPINBO2) + C(ind_BPINCO2) + &  
+   C(ind_NLIMO2) + C(ind_LIMAO2) + C(ind_LIMBO2) + C(ind_LIMCO2) + &  
+   C(ind_NBCO2) + C(ind_BCAO2) + C(ind_BCBO2) + C(ind_BCCO2) + &  
+   C(ind_DMMAO2) + C(ind_DMMBO2) + C(ind_DMCO2) + C(ind_CH3SCH2O2) + &  
+   C(ind_HODMSO2) + C(ind_ETHOXO2) + C(ind_BUT2CO3) + C(ind_C3ME3CO3) + &  
+   C(ind_C3ME3CHOO2) + C(ind_HOCH2CO3) + C(ind_CH3CHOHCO3) + &  
+   C(ind_IPRHOCO3) + C(ind_HCOCO3) + C(ind_IPRCHOO) + C(ind_BZEMUCCO3) + &  
+   C(ind_BZEMUCO2) + C(ind_C5DIALO2) + C(ind_NPHENO2) + C(ind_PHENO2) + &  
+   C(ind_CRESO2) + C(ind_NCRESO2) + C(ind_TLEMUCCO3) + C(ind_TLEMUCO2) + &  
+   C(ind_C615CO2O2) + C(ind_OXYMUCCO3) + C(ind_OXYMUCO2) + &  
+   C(ind_MC6CO2O2) + C(ind_NOXYOLO2) + C(ind_OXYOLO2) + C(ind_MXYMUCCO3) &  
+   + C(ind_MXYMUCO2) + C(ind_C726CO5O2) + C(ind_MXYOLO2) + &  
+   C(ind_NMXYOLO2) + C(ind_PXYMUCCO3) + C(ind_PXYMUCO2) + &  
+   C(ind_C6M5CO2O2) + C(ind_NPXYOLO2) + C(ind_PXYOLO2) + C(ind_EBENZOLO2) &  
+   + C(ind_NEBNZOLO2) + C(ind_EBZMUCCO3) + C(ind_EBZMUCO2) + &  
+   C(ind_C715CO2O2) + C(ind_NPBNZOLO2) + C(ind_PBENZOLO2) + &  
+   C(ind_PBZMUCCO3) + C(ind_PBZMUCO2) + C(ind_C815CO2O2) + &  
+   C(ind_IPBENZOLO2) + C(ind_NIPBNZOLO2) + C(ind_IPBZMUCCO3) + &  
+   C(ind_IPGLOOB) + C(ind_IPBZMUCO2) + C(ind_C7M15CO2O2) + &  
+   C(ind_NTM123OLO2) + C(ind_TM123OLO2) + C(ind_TM123MUCO2) + &  
+   C(ind_NTM124OLO2) + C(ind_TM124OLO2) + C(ind_TM124MUCO3) + &  
+   C(ind_TM124MUCO2) + C(ind_C7CO2M5O2) + C(ind_NTM135OLO2) + &  
+   C(ind_TM135OLO2) + C(ind_TM135MUCO3) + C(ind_TM135MUCO2) + &  
+   C(ind_C7M2CO5O2) + C(ind_OETLMUCCO3) + C(ind_OETLMUCO2) + &  
+   C(ind_MC7CO2O2) + C(ind_NOETOLO2) + C(ind_OETOLO2) + C(ind_METLMUCCO3) &  
+   + C(ind_METLMUCO2) + C(ind_C826CO3O2) + C(ind_METOLO2) + &  
+   C(ind_NMETOLO2) + C(ind_PETLMUCCO3) + C(ind_PETLMUCO2) + &  
+   C(ind_C7M6CO2O2) + C(ind_NPETOLO2) + C(ind_PETOLO2) + C(ind_DMEBMUCO3) &  
+   + C(ind_DMEBMUCO2) + C(ind_C8M2CO6O2) + C(ind_NDMEPHOLO2) + &  
+   C(ind_DMEPHOLO2) + C(ind_NDEMPHOLO2) + C(ind_DEMPHOLO2) + &  
+   C(ind_DETLMUCO3) + C(ind_DETLMUCO2) + C(ind_C9M2CO6O2) + &  
+   C(ind_HMVKAO2) + C(ind_HMVKBO2) + C(ind_MVKO2) + C(ind_MEMOXYCO3) + &  
+   C(ind_EOX2MECO3) + C(ind_ETOMEO2) + C(ind_PRONEMOXO2) + C(ind_BOXMCO3) &  
+   + C(ind_BOX2MO2) + C(ind_BOXPRONAO2) + C(ind_BOXPRONBO2) + &  
+   C(ind_C107O2) + C(ind_C109O2) + C(ind_C96O2) + C(ind_NOPINAO2) + &  
+   C(ind_NOPINBO2) + C(ind_NOPINCO2) + C(ind_NOPINDO2) + C(ind_LIMALAO2) &  
+   + C(ind_LIMALBO2) + C(ind_C923O2) + C(ind_BCALAO2) + C(ind_BCALBO2) + &  
+   C(ind_C136O2) + C(ind_BCALCO2) + C(ind_C141O2) + C(ind_HOC2H4CO3) + &  
+   C(ind_HOIPRCO3) + C(ind_HO13C5O2) + C(ind_HO3C4CO3) + C(ind_C54O2) + &  
+   C(ind_H2M2C3CO3) + C(ind_PROL1MCO3) + C(ind_C56O2) + C(ind_HO2C43CO3) &  
+   + C(ind_MIBKCOOHO2) + C(ind_NC4OHCO3) + C(ind_C4OH2CO3) + &  
+   C(ind_CO2C3CO3) + C(ind_HO2C3CO3) + C(ind_IBUDIALCO3) + &  
+   C(ind_PROPALO2) + C(ind_CO3C4CO3) + C(ind_HO1C4O2) + C(ind_A2PANOO) + &  
+   C(ind_HCOCOHCO3) + C(ind_CHOMOHCO3) + C(ind_CO2H3CO3) + C(ind_HO1C5O2) &  
+   + C(ind_HO2C5O2) + C(ind_C52O2) + C(ind_TBUTCO3) + C(ind_HO1C6O2) + &  
+   C(ind_C5H11CO3) + C(ind_HO2C6O2) + C(ind_HO3C6O2) + C(ind_HO1MC5O2) + &  
+   C(ind_C54CO3) + C(ind_HO2MC5O2) + C(ind_EIPKAO2) + C(ind_EIPKBO2) + &  
+   C(ind_HO2M2C5O2) + C(ind_H1MC5O2) + C(ind_M3C4CO3) + C(ind_H2MC5O2) + &  
+   C(ind_M2BKAO2) + C(ind_M2BKBO2) + C(ind_HM33C4O2) + C(ind_M22C3CO3) + &  
+   C(ind_HM22C4O2) + C(ind_M33C3CO3) + C(ind_HM23C4O2) + C(ind_M2C43CO3) &  
+   + C(ind_HO3C76O2) + C(ind_CO3C75O2) + C(ind_H2M5C65O2) + C(ind_C75O2) &  
+   + C(ind_H2M2C65O2) + C(ind_H2M4C65O2) + C(ind_C710O2) + &  
+   C(ind_H3M3C6O2) + C(ind_HO3C86O2) + C(ind_CO3C85O2) + C(ind_HO3C96O2) &  
+   + C(ind_C91O2) + C(ind_HO3C106O2) + C(ind_C101O2) + C(ind_HO3C116O2) + &  
+   C(ind_C111O2) + C(ind_HO3C126O2) + C(ind_C121O2) + C(ind_CO1C6O2) + &  
+   C(ind_NO3CH2CO3) + C(ind_PRNO3CO3) + C(ind_CO3C4NO3O2) + &  
+   C(ind_HO3C3CO3) + C(ind_MPRBNO3CO3) + C(ind_C5NO3COAO2) + &  
+   C(ind_C4NO3CO3) + C(ind_C5OH2CO4O2) + C(ind_C4OHCO3) + &  
+   C(ind_C5NO3CO4O2) + C(ind_C5CONO34O2) + C(ind_C43NO3CO3) + &  
+   C(ind_C4MCONO3O2) + C(ind_C3MNO3CO3) + C(ind_C3M3OH2CO3) + &  
+   C(ind_MC4CONO3O2) + C(ind_C65NO36CO3) + C(ind_MNO3COC4O2) + &  
+   C(ind_C4COMOH3O2) + C(ind_HO5C5CO3) + C(ind_C6NO3CO5O2) + &  
+   C(ind_C6CONO34O2) + C(ind_MALDIALCO3) + C(ind_EPXDLCO3) + &  
+   C(ind_C3DIALO2) + C(ind_MALDIALO2) + C(ind_OXYL1O2) + C(ind_C5CO14O2) &  
+   + C(ind_OXYLCO3) + C(ind_EPXM2DLCO3) + C(ind_C4MCO2O2) + &  
+   C(ind_DM123O2) + C(ind_MXYLCO3) + C(ind_MXYL1O2) + C(ind_C3MCODBCO3) + &  
+   C(ind_EPXMDLCO3) + C(ind_C3MDIALO2) + C(ind_MXY1O2) + C(ind_PXYLCO3) + &  
+   C(ind_PXYL1O2) + C(ind_PXY1O2) + C(ind_C6H5CH2CO3) + C(ind_EBENZO2) + &  
+   C(ind_C6DCARBBO2) + C(ind_PHCOETO2) + C(ind_PBENZO2) + C(ind_C7DCCO3) &  
+   + C(ind_IPBENZO2) + C(ind_IC7DCCO3) + C(ind_IPGLOO) + C(ind_TM123BCO3) &  
+   + C(ind_TM123O2) + C(ind_EPXKTMCO3) + C(ind_C4CO2O2) + &  
+   C(ind_TM124BCO3) + C(ind_DM124O2) + C(ind_TM124O2) + C(ind_TMBCO3) + &  
+   C(ind_DMPHO2) + C(ind_C4MCODBCO3) + C(ind_EPXMKTCO3) + &  
+   C(ind_CO24C53O2) + C(ind_MPHCOMEO2) + C(ind_EPXMEDLCO3) + &  
+   C(ind_C4ECO2O2) + C(ind_OET1O2) + C(ind_MET1O2) + C(ind_PET1O2) + &  
+   C(ind_DMPHCOMO2) + C(ind_EMPHCOMO2) + C(ind_EMPHCO3) + &  
+   C(ind_C7CODBCO3) + C(ind_EPXEKTCO3) + C(ind_C3EDIALO2) + &  
+   C(ind_CO24C63O2) + C(ind_CCL3CO3) + C(ind_CLETO3) + C(ind_CL2OHCO3) + &  
+   C(ind_CL12CO3) + C(ind_CLCOCLMEO2) + C(ind_CHCL2CO3) + &  
+   C(ind_CLCOCH2O2) + C(ind_CLCOCLO2) + C(ind_CCLOHCO3) + C(ind_HNMVKO2) &  
+   + C(ind_NC3CO3) + C(ind_C42O2) + C(ind_HC3CO3) + C(ind_C41O2) + &  
+   C(ind_MVKOHAO2) + C(ind_MVKOHBO2) + C(ind_HC3CCO3) + C(ind_INCO2) + &  
+   C(ind_NC4CO3) + C(ind_C510O2) + C(ind_INAO2) + C(ind_C524O2) + &  
+   C(ind_HC4ACO3) + C(ind_C58O2) + C(ind_INB1O2) + C(ind_INB2O2) + &  
+   C(ind_HC4CCO3) + C(ind_C57O2) + C(ind_INDO2) + C(ind_C59O2) + &  
+   C(ind_CHOCOMOXO2) + C(ind_ACETMECO3) + C(ind_HOACETETO2) + &  
+   C(ind_MECOACETO2) + C(ind_ACPRONEO2) + C(ind_ACCOETO2) + &  
+   C(ind_ACETC2CO3) + C(ind_IPRACBCO3) + C(ind_ACBUONEAO2) + &  
+   C(ind_ACBUONEBO2) + C(ind_ACCOC3H6O2) + C(ind_SBUACONEO2) + &  
+   C(ind_TBUACCO3) + C(ind_MTBEACHOO2) + C(ind_MTBEBCO3) + &  
+   C(ind_IPROC21O2) + C(ind_IPROMCCO3) + C(ind_EIPEO2) + C(ind_ETBEACO3) &  
+   + C(ind_ETBECCO3) + C(ind_BOXCOEOLO2) + C(ind_BRETO3) + &  
+   C(ind_HO1CO3C4O2) + C(ind_BIACETO2) + C(ind_HO2CO4C5O2) + &  
+   C(ind_CO23C54O2) + C(ind_HOCO3C54O2) + C(ind_C53O2) + C(ind_C41CO3) + &  
+   C(ind_CO2HOC61O2) + C(ind_CO24C6O2) + C(ind_CO25C6O2) + C(ind_HO2C4O2) &  
+   + C(ind_C61O2) + C(ind_CO23C65O2) + C(ind_C6CO3OH5O2) + &  
+   C(ind_C6CO34O2) + C(ind_C6HO1CO3O2) + C(ind_C3COCCO3) + &  
+   C(ind_PEN2ONE1O2) + C(ind_MIBK3COO2) + C(ind_C612O2) + &  
+   C(ind_CO2M33CO3) + C(ind_C6COCHOO2) + C(ind_CY6DIONO2) + &  
+   C(ind_NC101O2) + C(ind_C96CO3) + C(ind_C720O2) + C(ind_NC91CO3) + &  
+   C(ind_C8BCO2) + C(ind_C918CO3) + C(ind_C923CO3) + C(ind_C141CO3) + &  
+   C(ind_NBCALO2) + C(ind_BCALO2) + C(ind_BCSOZO2) + C(ind_C151O2) + &  
+   C(ind_C152O2) + C(ind_MMFO2) + C(ind_MMCFO2) + C(ind_DMSO2O2) + &  
+   C(ind_CHOC4CO3) + C(ind_C6DIALO2) + C(ind_CHOC4O2) + C(ind_CYC6DIONO2) &  
+   + C(ind_NBZFUO2) + C(ind_BZFUO2) + C(ind_CATEC1O2) + C(ind_MCATEC1O2) &  
+   + C(ind_MC3CODBCO3) + C(ind_C4M2ALOHO2) + C(ind_C5DICARBO2) + &  
+   C(ind_NTLFUO2) + C(ind_TLFUO2) + C(ind_MC4CODBCO3) + C(ind_MC5CO2OHO2) &  
+   + C(ind_NOXYFUO2) + C(ind_C6OTKETO2) + C(ind_OXYFUO2) + &  
+   C(ind_OXCATEC1O2) + C(ind_C5MCO2OHO2) + C(ind_NMXYFUO2) + &  
+   C(ind_C23O3MO2) + C(ind_MXYFUO2) + C(ind_NPXYFUO2) + C(ind_MCOCOMOXO2) &  
+   + C(ind_PXYFUO2) + C(ind_MXCATEC1O2) + C(ind_DMKOHO2) + &  
+   C(ind_PXCATEC1O2) + C(ind_ECATEC1O2) + C(ind_C6DICARBO2) + &  
+   C(ind_NEBFUO2) + C(ind_BUTALAO2) + C(ind_EBFUO2) + C(ind_C7CO3OHO2) + &  
+   C(ind_PCATEC1O2) + C(ind_C7DCO2) + C(ind_NPBFUO2) + C(ind_C4CHOAO2) + &  
+   C(ind_PBFUO2) + C(ind_C8CO3OHO2) + C(ind_PHCOMEO2) + C(ind_IPCATEC1O2) &  
+   + C(ind_IC7DCO2) + C(ind_NIPBFUO2) + C(ind_IC4CHOAO2) + C(ind_IPBFUO2) &  
+   + C(ind_C7MCO3OHO2) + C(ind_T123CAT1O2) + C(ind_C7ADCCO3) + &  
+   C(ind_C7ADCO2) + C(ind_NTMB1FUO2) + C(ind_TMB1FUO2) + C(ind_NTMB2FUO2) &  
+   + C(ind_MC6OTKETO2) + C(ind_TMB2FUO2) + C(ind_C7BDCO2) + &  
+   C(ind_T124CAT1O2) + C(ind_OTCATEC1O2) + C(ind_MTCATEC1O2) + &  
+   C(ind_C7EDCO2) + C(ind_PTCATEC1O2) + C(ind_C7DDCCO3) + C(ind_C7DDCO2) &  
+   + C(ind_NMEBFUO2) + C(ind_C23O3EO2) + C(ind_MEBFUO2) + C(ind_EMPHO2) + &  
+   C(ind_CH3COCCLO2) + C(ind_CLCOCCL2O2) + C(ind_IEB1O2) + C(ind_IEB2O2) &  
+   + C(ind_MACRNCO3) + C(ind_IEC1O2) + C(ind_ETHFORMO2) + &  
+   C(ind_IPRMEETO2) + C(ind_CHOOMCO3) + C(ind_PRONFORMO2) + &  
+   C(ind_PRCOOMCO3) + C(ind_PRCOOMO2) + C(ind_BOXCOCHOO2) + &  
+   C(ind_BOXFORMO2) + C(ind_PRONOCOPO2) + C(ind_BOXCOCOMO2) + &  
+   C(ind_PINALO2) + C(ind_C108O2) + C(ind_C89CO3) + C(ind_C920CO3) + &  
+   C(ind_C920O2) + C(ind_C97O2) + C(ind_C85CO3) + C(ind_C85O2) + &  
+   C(ind_C719O2) + C(ind_C918O2) + C(ind_C9DCO2) + C(ind_C915O2) + &  
+   C(ind_C917O2) + C(ind_NLIMALO2) + C(ind_LIMALO2) + C(ind_C729CO3) + &  
+   C(ind_C822CO3) + C(ind_C924O2) + C(ind_C816CO3) + C(ind_NORLIMO2) + &  
+   C(ind_C816O2) + C(ind_NLMKAO2) + C(ind_LMKAO2) + C(ind_LMKBO2) + &  
+   C(ind_C146O2) + C(ind_C131CO3) + C(ind_BCLKAO2) + C(ind_BCLKBO2) + &  
+   C(ind_BCLKCO2) + C(ind_C131O2) + C(ind_C147O2) + C(ind_C126CO3) + &  
+   C(ind_C136CO3) + C(ind_C148O2) + C(ind_C1311O2) + C(ind_NC1313O2) + &  
+   C(ind_C1313O2) + C(ind_C126O2) + C(ind_C144O2) + C(ind_C142O2) + &  
+   C(ind_NBCKO2) + C(ind_BCKAO2) + C(ind_BCKBO2) + C(ind_CH3SOO) + &  
+   C(ind_H13C43CO3) + C(ind_C42CO3) + C(ind_HOC3H6CO3) + C(ind_C3DIOLO2) &  
+   + C(ind_C51O2) + C(ind_HO2C4CO3) + C(ind_HOIBUTCO3) + C(ind_C63O2) + &  
+   C(ind_HO3C5CO3) + C(ind_C64O2) + C(ind_HO2C54O2) + C(ind_HO2C54CO3) + &  
+   C(ind_C66O2) + C(ind_CO3C54CO3) + C(ind_H2M2C4CO3) + C(ind_C67O2) + &  
+   C(ind_C610O2) + C(ind_H2M3C4CO3) + C(ind_C68O2) + C(ind_C69O2) + &  
+   C(ind_C611O2) + C(ind_HM33C3CO3) + C(ind_HM22C3O2) + C(ind_HM22C3CO3) &  
+   + C(ind_HM2C43CO3) + C(ind_C71O2) + C(ind_C76O2) + C(ind_C77O2) + &  
+   C(ind_C78O2) + C(ind_C711O2) + C(ind_H3M3C5O2) + C(ind_H3M3C5CO3) + &  
+   C(ind_C82O2) + C(ind_C81O2) + C(ind_C93O2) + C(ind_C92O2) + &  
+   C(ind_HO6C7O2) + C(ind_C103O2) + C(ind_C102O2) + C(ind_HO7C8O2) + &  
+   C(ind_C113O2) + C(ind_C112O2) + C(ind_HO8C9O2) + C(ind_C123O2) + &  
+   C(ind_C122O2) + C(ind_CO1H63O2) + C(ind_C3NO3COO2) + C(ind_NPHEN1O2) + &  
+   C(ind_NNCATECO2) + C(ind_NCATECO2) + C(ind_NBZQO2) + C(ind_PBZQO2) + &  
+   C(ind_NPTLQO2) + C(ind_PTLQO2) + C(ind_NCRES1O2) + C(ind_MNNCATECO2) + &  
+   C(ind_MNCATECO2) + C(ind_NOXYOL1O2) + C(ind_NOXYQO2) + C(ind_OXYQO2) + &  
+   C(ind_OXNNCATCO2) + C(ind_OXNCATECO2) + C(ind_NMXYOL1O2) + &  
+   C(ind_NMXYQO2) + C(ind_MXYQO2) + C(ind_MXNNCATCO2) + C(ind_MXNCATECO2) &  
+   + C(ind_NPXYOL1O2) + C(ind_NPXYQO2) + C(ind_PXYQO2) + &  
+   C(ind_PXNNCATCO2) + C(ind_PXNCATECO2) + C(ind_NEBNZ1O2) + &  
+   C(ind_NPEBQO2) + C(ind_PEBQO2) + C(ind_ENNCATECO2) + C(ind_ENCATECO2) &  
+   + C(ind_CO3H4CO3) + C(ind_PHCOCOCO2) + C(ind_NPBNZ1O2) + &  
+   C(ind_NPPRBQO2) + C(ind_PPRBQO2) + C(ind_PNNCATECO2) + &  
+   C(ind_PNCATECO2) + C(ind_C5O45OHCO3) + C(ind_NIPBNZ1O2) + &  
+   C(ind_NIPRBQO2) + C(ind_IPRBQO2) + C(ind_IPNNCATCO2) + &  
+   C(ind_IPNCATECO2) + C(ind_C4MOHOCO3) + C(ind_NT123L1O2) + &  
+   C(ind_T123NNCTO2) + C(ind_T123NCATO2) + C(ind_NT124L1O2) + &  
+   C(ind_NTM124QO2) + C(ind_TM124QO2) + C(ind_T124NNCTO2) + &  
+   C(ind_T124NCATO2) + C(ind_C5CO234O2) + C(ind_NOETOL1O2) + &  
+   C(ind_NOETLQO2) + C(ind_OETLQO2) + C(ind_OTNNCATCO2) + &  
+   C(ind_OTNCATECO2) + C(ind_NMETOL1O2) + C(ind_NMETLQO2) + &  
+   C(ind_METLQO2) + C(ind_MTNNCATCO2) + C(ind_MTNCATECO2) + &  
+   C(ind_NPETOL1O2) + C(ind_NPETLQO2) + C(ind_PETLQO2) + &  
+   C(ind_PTNNCATCO2) + C(ind_PTNCATECO2) + C(ind_CO234C65O2) + &  
+   C(ind_H13CO2CO3) + C(ind_IEACO3) + C(ind_NC524O2) + C(ind_C525O2) + &  
+   C(ind_C58NO3CO3) + C(ind_CONM2CO3) + C(ind_IECCO3) + C(ind_CO2N3CO3) + &  
+   C(ind_ACCOCOMEO2) + C(ind_ACEETOHO2) + C(ind_ACCOMCOMO2) + &  
+   C(ind_ACCOCOETO2) + C(ind_MTBEAALCO3) + C(ind_C62O2) + C(ind_HO13C4O2) &  
+   + C(ind_HM22CO3) + C(ind_C6COCHOCO3) + C(ind_C5COCHOO2) + &  
+   C(ind_CHOC2H4O2) + C(ind_HCOCH2CO3) + C(ind_CY6TRIONO2) + &  
+   C(ind_C6CYTONO2) + C(ind_NC102O2) + C(ind_C512CO3) + C(ind_C89O2) + &  
+   C(ind_C926O2) + C(ind_C817CO3) + C(ind_C817O2) + C(ind_NC826O2) + &  
+   C(ind_C826O2) + C(ind_C729O2) + C(ind_LMLKAO2) + C(ind_LMLKBO2) + &  
+   C(ind_C116CO3) + C(ind_C116O2) + C(ind_C129O2) + C(ind_C1210O2) + &  
+   C(ind_CH3SOO2) + C(ind_C1H4C5CO3) + C(ind_CHOC4OHO2) + &  
+   C(ind_HOC4CHOO2) + C(ind_C6145COO2) + C(ind_CO2C4CO3) + &  
+   C(ind_HOBUT2CO3) + C(ind_CO3C5CO3) + C(ind_CO2C54CO3) + C(ind_C65O2) + &  
+   C(ind_CO2M3C4CO3) + C(ind_C72O2) + C(ind_CO25C73O2) + C(ind_CO25C74O2) &  
+   + C(ind_C712O2) + C(ind_C713O2) + C(ind_C714O2) + C(ind_C84O2) + &  
+   C(ind_C94O2) + C(ind_C104O2) + C(ind_C114O2) + C(ind_C6H13CO3) + &  
+   C(ind_C124O2) + C(ind_MALANHYO2) + C(ind_NDNPHENO2) + C(ind_DNPHENO2) &  
+   + C(ind_NDNCRESO2) + C(ind_DNCRESO2) + C(ind_C6O4KETO2) + &  
+   C(ind_NDNOXYOLO2) + C(ind_DNOXYOLO2) + C(ind_MMALANHYO2) + &  
+   C(ind_NDNMXYOLO2) + C(ind_DNMXYOLO2) + C(ind_TL4OHNO2O2) + &  
+   C(ind_NDNPXYOLO2) + C(ind_DNPXYOLO2) + C(ind_NDNEBNZLO2) + &  
+   C(ind_DNEBNZLO2) + C(ind_NDNPBNZLO2) + C(ind_DNPBNZLO2) + &  
+   C(ind_C61CO3) + C(ind_NDNIPBZLO2) + C(ind_DNIPBNZLO2) + C(ind_C62CO3) &  
+   + C(ind_NDNT123LO2) + C(ind_DNT123LO2) + C(ind_TM124NO2O2) + &  
+   C(ind_NDNT124LO2) + C(ind_DNT124LO2) + C(ind_MXYOHNO2O2) + &  
+   C(ind_NDNOETOLO2) + C(ind_DNOETOLO2) + C(ind_NDNMETOLO2) + &  
+   C(ind_DNMETOLO2) + C(ind_NDNPETOLO2) + C(ind_DNPETOLO2) + &  
+   C(ind_CO356OCO2) + C(ind_INCNCO3) + C(ind_MACRNBCO3) + C(ind_INAHPCO3) &  
+   + C(ind_INANCO3) + C(ind_INAHCO3) + C(ind_HIEB1O2) + C(ind_HIEB2O2) + &  
+   C(ind_HMACO3) + C(ind_HMACRO2) + C(ind_INB1HPCO3) + C(ind_INB1NACO3) + &  
+   C(ind_INB1NBCO3) + C(ind_C57NO3CO3) + C(ind_INDHPCO3) + C(ind_INDHCO3) &  
+   + C(ind_ACCOMECO3) + C(ind_IPRFORMO2) + C(ind_PRCOFORMO2) + &  
+   C(ind_PRONOCOMO2) + C(ind_CO23C4CO3) + C(ind_C5CO34CO3) + &  
+   C(ind_C106O2) + C(ind_C717O2) + C(ind_C811CO3) + C(ind_C921O2) + &  
+   C(ind_C98O2) + C(ind_C86O2) + C(ind_C919O2) + C(ind_C914O2) + &  
+   C(ind_C916O2) + C(ind_C88CO3) + C(ind_C88O2) + C(ind_C512O2) + &  
+   C(ind_C619O2) + C(ind_C626CO3) + C(ind_C626O2) + C(ind_C735O2) + &  
+   C(ind_C822O2) + C(ind_C823CO3) + C(ind_C925O2) + C(ind_C622CO3) + &  
+   C(ind_C1011CO3) + C(ind_C1210CO3) + C(ind_C132O2) + C(ind_C137CO3) + &  
+   C(ind_C1013CO3) + C(ind_C1312O2) + C(ind_C127O2) + C(ind_C143O2) + &  
+   C(ind_CH3SO2O2) + C(ind_HO24C5O2) + C(ind_C55O2) + C(ind_C67CO3) + &  
+   C(ind_H3M2C4CO3) + C(ind_C79O2) + C(ind_H3M3C4CO3) + C(ind_H13M3C5O2) &  
+   + C(ind_HO4C5CO3) + C(ind_HO5C6CO3) + C(ind_HO6C7CO3) + &  
+   C(ind_HO7C8CO3) + C(ind_HO8C9CO3) + C(ind_C5CO2OHCO3) + &  
+   C(ind_C6CO2OHCO3) + C(ind_CH3COCO3) + C(ind_C5M2OHOCO3) + &  
+   C(ind_C4COMOHCO3) + C(ind_C23O3MCO3) + C(ind_C23O3CCO3) + &  
+   C(ind_C7CO2OHCO3) + C(ind_C6MOHCOCO3) + C(ind_C7OHCO2CO3) + &  
+   C(ind_ECO3CO3) + C(ind_C8OHCO2CO3) + C(ind_C8CO2OHCO3) + &  
+   C(ind_NDMMALYO2) + C(ind_DMMALYO2) + C(ind_C7MOHCOCO3) + &  
+   C(ind_C5MEJCO3) + C(ind_C6EO2OHCO3) + C(ind_C7MJPCO3) + &  
+   C(ind_C23O3ECO3) + C(ind_EMPOHNO2O2) + C(ind_INANCOCO3) + &  
+   C(ind_MMALNACO3) + C(ind_MMALNBCO3) + C(ind_HO13C3CO3) + &  
+   C(ind_C5CO23O2) + C(ind_CHOC2CO3) + C(ind_CHOC3COCO3) + &  
+   C(ind_C5124COCO3) + C(ind_CO235C6CO3) + C(ind_NC71O2) + C(ind_C811O2) &  
+   + C(ind_CHOC3COO2) + C(ind_H3C25C6CO3) + C(ind_H3C25C6O2) + &  
+   C(ind_C810O2) + C(ind_C818O2) + C(ind_C727CO3) + C(ind_NC728O2) + &  
+   C(ind_C728O2) + C(ind_C622O2) + C(ind_C823O2) + C(ind_C819O2) + &  
+   C(ind_C731CO3) + C(ind_C1011O2) + C(ind_C137O2) + C(ind_C1013O2) + &  
+   C(ind_C1010O2) + C(ind_C117O2) + C(ind_C830CO3) + C(ind_C145O2) + &  
+   C(ind_C927O2) + C(ind_C1214O2) + C(ind_CHOC4DOLO2) + C(ind_C6TRONOHO2) &  
+   + C(ind_C23C54CO3) + C(ind_C73O2) + C(ind_C74O2) + C(ind_C715O2) + &  
+   C(ind_C83O2) + C(ind_C95O2) + C(ind_C105O2) + C(ind_C115O2) + &  
+   C(ind_C125O2) + C(ind_C4CO2DBCO3) + C(ind_C5CO2DBCO3) + &  
+   C(ind_C4DBM2CO3) + C(ind_C5DBCO2CO3) + C(ind_C7CO2DBCO3) + &  
+   C(ind_C8CO2DBCO3) + C(ind_C8DBCO2CO3) + C(ind_C4DBMECO3) + &  
+   C(ind_C5DBECO3) + C(ind_C5EDBCO3) + C(ind_MECOFORMO2) + &  
+   C(ind_C5124COO2) + C(ind_CO235C6O2) + C(ind_C716O2) + C(ind_C922O2) + &  
+   C(ind_C614O2) + C(ind_C511O2) + C(ind_C620O2) + C(ind_C87CO3) + &  
+   C(ind_C616O2) + C(ind_C718CO3) + C(ind_C513O2) + C(ind_CO25C6CO3) + &  
+   C(ind_C727O2) + C(ind_C511CO3) + C(ind_C517CO3) + C(ind_C517O2) + &  
+   C(ind_C628O2) + C(ind_C824O2) + C(ind_C133O2) + C(ind_C830O2) + &  
+   C(ind_C128O2) + C(ind_HO24C4CO3) + C(ind_C613O2) + C(ind_CO2OH3MCO3) + &  
+   C(ind_COHM2CO3) + C(ind_C812O2) + C(ind_C721CO3) + C(ind_C721O2) + &  
+   C(ind_H3C2C4CO3) + C(ind_C87O2) + C(ind_C718O2) + C(ind_C514O2) + &  
+   C(ind_C820O2) + C(ind_C518CO3) + C(ind_NC623O2) + C(ind_C623O2) + &  
+   C(ind_C825O2) + C(ind_C731O2) + C(ind_C732CO3) + C(ind_C1012O2) + &  
+   C(ind_C1211O2) + C(ind_C139O2) + C(ind_C1014O2) + C(ind_C736O2) + &  
+   C(ind_C118O2) + C(ind_C928CO3) + C(ind_C630O2) + C(ind_C1215O2) + &  
+   C(ind_EMALANHYO2) + C(ind_PMALANHYO2) + C(ind_IPMALNHYO2) + &  
+   C(ind_C312COCO3) + C(ind_CHOCOCH2O2) + C(ind_NC72O2) + C(ind_C621O2) + &  
+   C(ind_C515CO3) + C(ind_C515O2) + C(ind_C821O2) + C(ind_HMVKBCO3) + &  
+   C(ind_C520O2) + C(ind_C624CO3) + C(ind_C732O2) + C(ind_C829O2) + &  
+   C(ind_C134O2) + C(ind_C827CO3) + C(ind_C522CO3) + C(ind_C831O2) + &  
+   C(ind_C928O2) + C(ind_C46CO3) + C(ind_C930O2) + C(ind_C813O2) + &  
+   C(ind_C722O2) + C(ind_C615CO3) + C(ind_C617CO3) + C(ind_C618CO3) + &  
+   C(ind_C617O2) + C(ind_C618O2) + C(ind_NC730O2) + C(ind_C730O2) + &  
+   C(ind_C624O2) + C(ind_C733O2) + C(ind_C1212O2) + C(ind_C1310O2) + &  
+   C(ind_NC61CO3) + C(ind_C615O2) + C(ind_C519CO3) + C(ind_C629O2) + &  
+   C(ind_C734O2) + C(ind_C521O2) + C(ind_C135O2) + C(ind_COO2C4CO3) + &  
+   C(ind_COO2C4O2) + C(ind_C929O2) + C(ind_C44O2) + C(ind_H1C23C4CO3) + &  
+   C(ind_H1C23C4O2) + C(ind_CO1M22CO3) + C(ind_C519O2) + C(ind_C625O2) + &  
+   C(ind_C1213O2) + C(ind_COO2C3CO3) + C(ind_C828CO3) + C(ind_C828O2 ) 
+KRO2NO = 2.7D-12*EXP(360/TEMP)
+KRO2HO2 = 2.91D-13*EXP(1300/TEMP)
+KAPHO2 = 5.2D-13*EXP(980/TEMP)
+KAPNO = 7.5D-12*EXP(290/TEMP)
+KRO2NO3 = 2.3D-12
+KNO3AL = 1.4D-12*EXP(-1860/TEMP)
+KDEC = 1.00D+06
+KROPRIM = 2.50D-14*EXP(-300/TEMP)
+KROSEC = 2.50D-14*EXP(-300/TEMP)
+KCH3O2 = 1.03D-13*EXP(365/TEMP)
+K298CH3O2 = 3.5D-13
+KMT18 = 9.5D-39*O2*EXP(5270/TEMP)/(1+7.5D-29*O2*EXP(5610/TEMP))
+CALL mcm_constants(time, temp, M, N2, O2, RO2, H2O) 
+ #ENDINLINE 
+{above lines go into the SUBROUTINES UPDATE_RCONST and UPDATE_PHOTO}
+#EQUATIONS
+{1.} 	 O = O3 : 	5.6D-34*N2*(TEMP/300)**-2.6*O2+6.0D-34*O2*(TEMP/300)**-2.6*O2 	;
+{2.} 	 O + O3 = : 	8.0D-12*EXP(-2060/TEMP) 	;
+{3.} 	 O + NO = NO2 : 	KMT01 	;
+{4.} 	 O + NO2 = NO : 	5.5D-12*EXP(188/TEMP) 	;
+{5.} 	 O + NO2 = NO3 : 	KMT02 	;
+{6.} 	 O1D = O : 	3.2D-11*EXP(67/TEMP)*O2+2.0D-11*EXP(130/TEMP)*N2 	;
+{7.} 	 NO + O3 = NO2 : 	1.4D-12*EXP(-1310/TEMP) 	;
+{8.} 	 NO2 + O3 = NO3 : 	1.4D-13*EXP(-2470/TEMP) 	;
+{9.} 	 NO + NO = NO2 + NO2 : 	3.3D-39*EXP(530/TEMP)*O2 	;
+{10.} 	 NO + NO3 = NO2 + NO2 : 	1.8D-11*EXP(110/TEMP) 	;
+{11.} 	 NO2 + NO3 = NO + NO2 : 	4.50D-14*EXP(-1260/TEMP) 	;
+{12.} 	 NO2 + NO3 = N2O5 : 	KMT03 	;
+{13.} 	 O1D = OH + OH : 	2.14D-10*H2O 	;
+{14.} 	 OH + O3 = HO2 : 	1.70D-12*EXP(-940/TEMP) 	;
+{15.} 	 OH + H2 = HO2 : 	7.7D-12*EXP(-2100/TEMP) 	;
+{16.} 	 OH + CO = HO2 : 	KMT05 	;
+{17.} 	 OH + H2O2 = HO2 : 	2.9D-12*EXP(-160/TEMP) 	;
+{18.} 	 HO2 + O3 = OH : 	2.03D-16*(TEMP/300)**4.57*EXP(693/TEMP) 	;
+{19.} 	 OH + HO2 = : 	4.8D-11*EXP(250/TEMP) 	;
+{20.} 	 HO2 + HO2 = H2O2 : 	2.20D-13*KMT06*EXP(600/TEMP)+1.90D-33*M*KMT06*EXP(980/TEMP) 	;
+{21.} 	 OH + NO = HONO : 	KMT07 	;
+{22.} 	 OH + NO2 = HNO3 : 	KMT08 	;
+{23.} 	 OH + NO3 = HO2 + NO2 : 	2.0D-11 	;
+{24.} 	 HO2 + NO = OH + NO2 : 	3.45D-12*EXP(270/TEMP) 	;
+{25.} 	 HO2 + NO2 = HO2NO2 : 	KMT09 	;
+{26.} 	 OH + HO2NO2 = NO2 : 	3.2D-13*EXP(690/TEMP)*1.0 	;
+{27.} 	 HO2 + NO3 = OH + NO2 : 	4.0D-12 	;
+{28.} 	 OH + HONO = NO2 : 	2.5D-12*EXP(260/TEMP) 	;
+{29.} 	 OH + HNO3 = NO3 : 	KMT11 	;
+{30.} 	 O + SO2 = SO3 : 	4.0D-32*EXP(-1000/TEMP)*M 	;
+{31.} 	 OH + SO2 = HSO3 : 	KMT12 	;
+{32.} 	 HSO3 = HO2 + SO3 : 	1.3D-12*EXP(-330/TEMP)*O2 	;
+{33.} 	 HNO3 = NA : 	6.00D-06 	;
+{34.} 	 N2O5 = NA + NA : 	4.00D-04 	;
+{35.} 	 SO3 = SA : 	1.20D-15*H2O 	;
+{36.} 	 O3 = O1D : 	J(1) 	;
+{37.} 	 O3 = O : 	J(2) 	;
+{38.} 	 H2O2 = OH + OH : 	J(3) 	;
+{39.} 	 NO2 = NO + O : 	J(4) 	;
+{40.} 	 NO3 = NO : 	J(5) 	;
+{41.} 	 NO3 = NO2 + O : 	J(6) 	;
+{42.} 	 HONO = OH + NO : 	J(7) 	;
+{43.} 	 HNO3 = OH + NO2 : 	J(8) 	;
+{44.} 	 N2O5 = NO2 + NO3 : 	KMT04 	;
+{45.} 	 HO2NO2 = HO2 + NO2 : 	KMT10 	;
+{46.} 	 CH3OH + OH = HO2 + HCHO : 	2.85D-12*EXP(-345/TEMP) 	;
+{47.} 	 C2H5OH + OH = C2H5O : 	3.0D-12*EXP(20/TEMP)*0.05 	;
+{48.} 	 C2H5OH + OH = CH3CHO + HO2 : 	3.0D-12*EXP(20/TEMP)*0.9 	;
+{49.} 	 C2H5OH + OH = HOCH2CH2O2 : 	3.0D-12*EXP(20/TEMP)*0.05 	;
+{50.} 	 NPROPOL + OH = C2H5CHO + HO2 : 	4.6D-12*EXP(70/TEMP)*0.494 	;
+{51.} 	 NPROPOL + OH = HO1C3O2 : 	4.6D-12*EXP(70/TEMP)*0.063 	;
+{52.} 	 NPROPOL + OH = HYPROPO2 : 	4.6D-12*EXP(70/TEMP)*0.443 	;
+{53.} 	 IPROPOL + OH = CH3COCH3 + HO2 : 	2.6D-12*EXP(200/TEMP)*0.861 	;
+{54.} 	 IPROPOL + OH = IPROPOLO2 : 	2.6D-12*EXP(200/TEMP)*0.139 	;
+{55.} 	 NBUTOL + OH = C3H7CHO + HO2 : 	5.3D-12*EXP(140/TEMP)*0.358 	;
+{56.} 	 NBUTOL + OH = NBUTOLAO2 : 	5.3D-12*EXP(140/TEMP)*0.321 	;
+{57.} 	 NBUTOL + OH = NBUTOLBO2 : 	5.3D-12*EXP(140/TEMP)*0.321 	;
+{58.} 	 BUT2OL + OH = BUT2OLO2 : 	8.7D-12*0.361 	;
+{59.} 	 BUT2OL + OH = MEK + HO2 : 	8.7D-12*0.639 	;
+{60.} 	 IBUTOL + OH = IBUTOLBO2 : 	2.73D-12*EXP(352/TEMP)*0.558 	;
+{61.} 	 IBUTOL + OH = IBUTOLCO2 : 	2.73D-12*EXP(352/TEMP)*0.090 	;
+{62.} 	 IBUTOL + OH = IPRCHO + HO2 : 	2.73D-12*EXP(352/TEMP)*0.352 	;
+{63.} 	 OH + TBUTOL = TBUTOLO2 : 	1.6D-12*EXP(-121/TEMP)*0.888 	;
+{64.} 	 OH + TBUTOL = TC4H9O : 	1.6D-12*EXP(-121/TEMP)*0.112 	;
+{65.} 	 OH + PECOH = DIEK + HO2 : 	1.22D-11*0.436 	;
+{66.} 	 OH + PECOH = HO3C5O2 : 	1.22D-11*0.070 	;
+{67.} 	 OH + PECOH = PE2ENEBO2 : 	1.22D-11*0.493 	;
+{68.} 	 OH + IPEAOH = BUT2CHO + HO2 : 	1.12D-11*0.288 	;
+{69.} 	 OH + IPEAOH = HM2C43O2 : 	1.12D-11*0.258 	;
+{70.} 	 OH + IPEAOH = M2BUOL2O2 : 	1.12D-11*0.454 	;
+{71.} 	 ME3BUOL + OH = C3ME3CHO + HO2 : 	1.31D-11*0.288 	;
+{72.} 	 ME3BUOL + OH = HM33C3O2 : 	1.31D-11*0.454 	;
+{73.} 	 ME3BUOL + OH = ME3BUOLO2 : 	1.31D-11*0.258 	;
+{74.} 	 OH + IPECOH = HO2M2C4O2 : 	3.85D-12*0.100 	;
+{75.} 	 OH + IPECOH = ME2BU2OLO2 : 	3.85D-12*0.701 	;
+{76.} 	 OH + IPECOH = PROL11MO2 : 	3.85D-12*0.199 	;
+{77.} 	 OH + IPEBOH = H2M3C4O2 : 	1.24D-11*0.074 	;
+{78.} 	 OH + IPEBOH = ME2BUOLO2 : 	1.24D-11*0.463 	;
+{79.} 	 OH + IPEBOH = MIPK + HO2 : 	1.24D-11*0.463 	;
+{80.} 	 CYHEXOL + OH = CYHEXOLAO2 : 	1.77D-11*0.739 	;
+{81.} 	 CYHEXOL + OH = CYHEXONE + HO2 : 	1.77D-11*0.261 	;
+{82.} 	 MIBKAOH + OH = MIBKAOHAO2 : 	2.88D-12*0.693 	;
+{83.} 	 MIBKAOH + OH = MIBKAOHBO2 : 	2.88D-12*0.270 	;
+{84.} 	 MIBKAOH + OH = MIBKHO4O2 : 	2.88D-12*0.037 	;
+{85.} 	 MIBKAOH = TBUTOLO2 + CH3CO3 : 	J(22) 	;
+{86.} 	 ETHGLY + OH = HOCH2CHO + HO2 : 	1.45D-11 	;
+{87.} 	 PROPGLY + OH = ACETOL + HO2 : 	1.20D-11*0.613 	;
+{88.} 	 PROPGLY + OH = CH3CHOHCHO + HO2 : 	1.20D-11*0.387 	;
+{89.} 	 MBO + NO3 = NMBOAO2 : 	4.6D-14*EXP(-400/TEMP)*0.65 	;
+{90.} 	 MBO + NO3 = NMBOBO2 : 	4.6D-14*EXP(-400/TEMP)*0.35 	;
+{91.} 	 MBO + O3 = HCHO + MBOOOA : 	1.0D-17*0.3 	;
+{92.} 	 MBO + O3 = IBUTALOH + CH2OOB : 	1.0D-17*0.7 	;
+{93.} 	 MBO + OH = MBOAO2 : 	8.1D-12*EXP(610/TEMP)*0.67 	;
+{94.} 	 MBO + OH = MBOBO2 : 	8.1D-12*EXP(610/TEMP)*0.33 	;
+{95.} 	 HCHO = CO + HO2 + HO2 : 	J(11) 	;
+{96.} 	 HCHO = H2 + CO : 	J(12) 	;
+{97.} 	 NO3 + HCHO = HNO3 + CO + HO2 : 	5.5D-16 	;
+{98.} 	 OH + HCHO = HO2 + CO : 	5.4D-12*EXP(135/TEMP) 	;
+{99.} 	 CH3CHO = CH3O2 + HO2 + CO : 	J(13) 	;
+{100.} 	 NO3 + CH3CHO = HNO3 + CH3CO3 : 	1.4D-12*EXP(-1860/TEMP) 	;
+{101.} 	 OH + CH3CHO = CH3CO3 : 	4.7D-12*EXP(345/TEMP)*0.95 	;
+{102.} 	 OH + CH3CHO = HCOCH2O2 : 	4.7D-12*EXP(345/TEMP)*0.05 	;
+{103.} 	 C2H5CHO + NO3 = C2H5CO3 + HNO3 : 	3.24D-12*EXP(1860/TEMP) 	;
+{104.} 	 C2H5CHO + OH = C2H5CO3 : 	4.9D-12*EXP(405/TEMP) 	;
+{105.} 	 C2H5CHO = C2H5O2 + HO2 + CO : 	J(14) 	;
+{106.} 	 C3H7CHO + NO3 = HNO3 + C3H7CO3 : 	1.7D-12*EXP(-1500/TEMP) 	;
+{107.} 	 C3H7CHO + OH = BUTALO2 : 	6.0D-12*EXP(410/TEMP)*0.151 	;
+{108.} 	 C3H7CHO + OH = C3H7CO3 : 	6.0D-12*EXP(410/TEMP)*0.849 	;
+{109.} 	 C3H7CHO = CH3CHO + C2H4 : 	J(16) 	;
+{110.} 	 C3H7CHO = NC3H7O2 + CO + HO2 : 	J(15) 	;
+{111.} 	 IPRCHO + NO3 = HNO3 + IPRCO3 : 	1.67D-12*EXP(-1460/TEMP) 	;
+{112.} 	 IPRCHO + OH = IBUTALBO2 : 	6.8D-12*EXP(410/TEMP)*0.054 	;
+{113.} 	 IPRCHO + OH = IBUTALCO2 : 	6.8D-12*EXP(410/TEMP)*0.059 	;
+{114.} 	 IPRCHO + OH = IPRCO3 : 	6.8D-12*EXP(410/TEMP)*0.887 	;
+{115.} 	 IPRCHO = IC3H7O2 + HO2 + CO : 	J(17) 	;
+{116.} 	 C4H9CHO + NO3 = C4H9CO3 + HNO3 : 	KNO3AL*5.5 	;
+{117.} 	 C4H9CHO + OH = C4CHOBO2 : 	6.34D-12*EXP(448/TEMP)*0.19 	;
+{118.} 	 C4H9CHO + OH = C4H9CO3 : 	6.34D-12*EXP(448/TEMP)*0.81 	;
+{119.} 	 C4H9CHO = NC4H9O2 + HO2 + CO : 	J(15) 	;
+{120.} 	 ACR + NO3 = ACO3 + HNO3 : 	1.72D-13*EXP(-1190/TEMP) 	;
+{121.} 	 ACR + OH = ACO3 : 	0.68*2.00E-11 	;
+{122.} 	 ACR + OH = ACO3B : 	0.255*2.00E-11 	;
+{123.} 	 ACR + OH = OCCOHCO2 : 	0.065*2.00E-11 	;
+{124.} 	 ACR = ACO3 : 	0.3*J(18) 	;
+{125.} 	 ACR = C2H4 + CO : 	0.4*J(18) 	;
+{126.} 	 ACR = HCHO + HO2 + CO : 	0.3*J(18) 	;
+{127.} 	 O3 + ACR = CH2OOB + GLYOX : 	0.5*2.9E-19 	;
+{128.} 	 O3 + ACR = GLYOOB + HCHO : 	0.5*2.9E-19 	;
+{129.} 	 MACR = CH3C2H2O2 + CO + HO2 : 	J(18) 	;
+{130.} 	 MACR = MACO3 + HO2 : 	J(19) 	;
+{131.} 	 NO3 + MACR = MACO3 + HNO3 : 	3.4D-15 	;
+{132.} 	 O3 + MACR = HCHO + MGLYOOB : 	1.4D-15*EXP(-2100/TEMP)*0.12 	;
+{133.} 	 O3 + MACR = MGLYOX + CH2OOG : 	1.4D-15*EXP(-2100/TEMP)*0.88 	;
+{134.} 	 OH + MACR = MACO3 : 	8.0D-12*EXP(380/TEMP)*0.45 	;
+{135.} 	 OH + MACR = MACRO2 : 	8.0D-12*EXP(380/TEMP)*0.47 	;
+{136.} 	 OH + MACR = MACROHO2 : 	8.0D-12*EXP(380/TEMP)*0.08 	;
+{137.} 	 C4ALDB + NO3 = C3DBCO3 + HNO3 : 	6D-15*0.65 	;
+{138.} 	 C4ALDB + NO3 = C4CONO3O2 : 	6D-15*0.175 	;
+{139.} 	 C4ALDB + NO3 = C4NO3COO2 : 	6D-15*0.175 	;
+{140.} 	 C4ALDB + O3 = CH3CHO + GLYOOB : 	1.58E-18*0.5 	;
+{141.} 	 C4ALDB + O3 = GLYOX + CH3CHOOB : 	1.58E-18*0.5 	;
+{142.} 	 C4ALDB + OH = C3DBCO3 : 	0.5*3.4E-11 	;
+{143.} 	 C4ALDB + OH = C4OCCOHCO2 : 	0.25*3.4E-11 	;
+{144.} 	 C4ALDB + OH = COCCOH2CO2 : 	0.25*3.4E-11 	;
+{145.} 	 C4ALDB = CH3CHO + CO + HO2 + CO + HO2 : 	J(18)*1.44 	;
+{146.} 	 CL + CH4 = CH3O2 : 	6.6D-12*EXP(-1240/TEMP) 	;
+{147.} 	 OH + CH4 = CH3O2 : 	1.85D-12*EXP(-1690/TEMP) 	;
+{148.} 	 CL + C2H6 = C2H5O2 : 	8.3D-11*EXP(-100/TEMP) 	;
+{149.} 	 OH + C2H6 = C2H5O2 : 	6.9D-12*EXP(-1000/TEMP) 	;
+{150.} 	 CL + C3H8 = IC3H7O2 : 	1.4D-10*0.43*EXP(75/TEMP) 	;
+{151.} 	 CL + C3H8 = NC3H7O2 : 	1.4D-10*0.59*EXP(-90/TEMP) 	;
+{152.} 	 OH + C3H8 = IC3H7O2 : 	7.6D-12*EXP(-585/TEMP)*0.736 	;
+{153.} 	 OH + C3H8 = NC3H7O2 : 	7.6D-12*EXP(-585/TEMP)*0.264 	;
+{154.} 	 CL + NC4H10 = NC4H9O2 : 	2.05D-10*0.44*EXP(-120/TEMP) 	;
+{155.} 	 CL + NC4H10 = SC4H9O2 : 	2.05D-10*0.59*EXP(55/TEMP) 	;
+{156.} 	 OH + NC4H10 = NC4H9O2 : 	9.8D-12*EXP(-425/TEMP)*0.127 	;
+{157.} 	 OH + NC4H10 = SC4H9O2 : 	9.8D-12*EXP(-425/TEMP)*0.873 	;
+{158.} 	 CL + IC4H10 = IC4H9O2 : 	1.43D-10*0.564 	;
+{159.} 	 CL + IC4H10 = TC4H9O2 : 	1.43D-10*0.436 	;
+{160.} 	 OH + IC4H10 = IC4H9O2 : 	1.16D-17*TEMP**2*EXP(225/TEMP)*0.206 	;
+{161.} 	 OH + IC4H10 = TC4H9O2 : 	1.16D-17*TEMP**2*EXP(225/TEMP)*0.794 	;
+{162.} 	 CL + NC5H12 = PEAO2 : 	2.80D-10*0.222 	;
+{163.} 	 CL + NC5H12 = PEBO2 : 	2.80D-10*0.558 	;
+{164.} 	 CL + NC5H12 = PECO2 : 	2.80D-10*0.220 	;
+{165.} 	 OH + NC5H12 = PEAO2 : 	2.44D-17*TEMP**2*EXP(183/TEMP)*0.083 	;
+{166.} 	 OH + NC5H12 = PEBO2 : 	2.44D-17*TEMP**2*EXP(183/TEMP)*0.568 	;
+{167.} 	 OH + NC5H12 = PECO2 : 	2.44D-17*TEMP**2*EXP(183/TEMP)*0.349 	;
+{168.} 	 CL + IC5H12 = IPEAO2 : 	2.20D-10*0.408 	;
+{169.} 	 CL + IC5H12 = IPEBO2 : 	2.20D-10*0.342 	;
+{170.} 	 CL + IC5H12 = IPECO2 : 	2.20D-10*0.250 	;
+{171.} 	 OH + IC5H12 = IPEAO2 : 	3.70D-12*0.087 	;
+{172.} 	 OH + IC5H12 = IPEBO2 : 	3.70D-12*0.297 	;
+{173.} 	 OH + IC5H12 = IPECO2 : 	3.70D-12*0.616 	;
+{174.} 	 CL + NEOP = NEOPO2 : 	1.11D-10 	;
+{175.} 	 OH + NEOP = NEOPO2 : 	1.80D-17*TEMP**2*EXP(-189/TEMP) 	;
+{176.} 	 CL + NC6H14 = HEXAO2 : 	3.40D-10*0.182 	;
+{177.} 	 CL + NC6H14 = HEXBO2 : 	3.40D-10*0.457 	;
+{178.} 	 CL + NC6H14 = HEXCO2 : 	3.40D-10*0.361 	;
+{179.} 	 OH + NC6H14 = HEXAO2 : 	1.53D-17*TEMP**2*EXP(414/TEMP)*0.061 	;
+{180.} 	 OH + NC6H14 = HEXBO2 : 	1.53D-17*TEMP**2*EXP(414/TEMP)*0.421 	;
+{181.} 	 OH + NC6H14 = HEXCO2 : 	1.53D-17*TEMP**2*EXP(414/TEMP)*0.518 	;
+{182.} 	 CL + M2PE = M2PEAO2 : 	2.90D-10*0.321 	;
+{183.} 	 CL + M2PE = M2PEBO2 : 	2.90D-10*0.269 	;
+{184.} 	 CL + M2PE = M2PECO2 : 	2.90D-10*0.213 	;
+{185.} 	 CL + M2PE = M2PEDO2 : 	2.90D-10*0.197 	;
+{186.} 	 OH + M2PE = M2PEAO2 : 	5.30D-12*0.063 	;
+{187.} 	 OH + M2PE = M2PEBO2 : 	5.30D-12*0.218 	;
+{188.} 	 OH + M2PE = M2PECO2 : 	5.30D-12*0.267 	;
+{189.} 	 OH + M2PE = M2PEDO2 : 	5.30D-12*0.452 	;
+{190.} 	 CL + M3PE = M3PEAO2 : 	2.80D-10*0.317 	;
+{191.} 	 CL + M3PE = M3PEBO2 : 	2.80D-10*0.530 	;
+{192.} 	 CL + M3PE = M3PECO2 : 	2.80D-10*0.153 	;
+{193.} 	 OH + M3PE = M3PEAO2 : 	5.40D-12*0.060 	;
+{194.} 	 OH + M3PE = M3PEBO2 : 	5.40D-12*0.413 	;
+{195.} 	 OH + M3PE = M3PECO2 : 	5.40D-12*0.527 	;
+{196.} 	 CL + M22C4 = M22C43O2 : 	1.71D-10*0.461 	;
+{197.} 	 CL + M22C4 = M22C4O2 : 	1.71D-10*0.154 	;
+{198.} 	 CL + M22C4 = M33C4O2 : 	1.71D-10*0.386 	;
+{199.} 	 OH + M22C4 = M22C43O2 : 	3.22D-11*EXP(-781/TEMP)*0.632 	;
+{200.} 	 OH + M22C4 = M22C4O2 : 	3.22D-11*EXP(-781/TEMP)*0.092 	;
+{201.} 	 OH + M22C4 = M33C4O2 : 	3.22D-11*EXP(-781/TEMP)*0.276 	;
+{202.} 	 CL + M23C4 = M23C43O2 : 	2.30D-10*0.478 	;
+{203.} 	 CL + M23C4 = M23C4O2 : 	2.30D-10*0.522 	;
+{204.} 	 OH + M23C4 = M23C43O2 : 	1.24D-17*TEMP**2*EXP(494/TEMP)*0.877 	;
+{205.} 	 OH + M23C4 = M23C4O2 : 	1.24D-17*TEMP**2*EXP(494/TEMP)*0.123 	;
+{206.} 	 CL + NC7H16 = HEPTO2 : 	3.90D-10 	;
+{207.} 	 OH + NC7H16 = HEPTO2 : 	1.59D-17*TEMP**2*EXP(478/TEMP) 	;
+{208.} 	 CL + M2HEX = M2HEXAO2 : 	3.50D-10*0.779 	;
+{209.} 	 CL + M2HEX = M2HEXBO2 : 	3.50D-10*0.221 	;
+{210.} 	 OH + M2HEX = M2HEXAO2 : 	6.86D-12*0.625 	;
+{211.} 	 OH + M2HEX = M2HEXBO2 : 	6.86D-12*0.375 	;
+{212.} 	 CL + M3HEX = M3HEXAO2 : 	3.11D-10*0.793 	;
+{213.} 	 CL + M3HEX = M3HEXBO2 : 	3.11D-10*0.207 	;
+{214.} 	 OH + M3HEX = M3HEXAO2 : 	7.15D-12*0.558 	;
+{215.} 	 OH + M3HEX = M3HEXBO2 : 	7.15D-12*0.442 	;
+{216.} 	 CL + NC8H18 = OCTO2 : 	4.60D-10 	;
+{217.} 	 OH + NC8H18 = OCTO2 : 	2.76D-17*TEMP**2*EXP(378/TEMP) 	;
+{218.} 	 CL + NC9H20 = NONO2 : 	4.80D-10 	;
+{219.} 	 OH + NC9H20 = NONO2 : 	2.51D-17*TEMP**2*EXP(447/TEMP) 	;
+{220.} 	 CL + NC10H22 = DECO2 : 	5.55D-10 	;
+{221.} 	 OH + NC10H22 = DECO2 : 	3.13D-17*TEMP**2*EXP(416/TEMP) 	;
+{222.} 	 CL + NC11H24 = UDECO2 : 	6.17D-10 	;
+{223.} 	 OH + NC11H24 = UDECO2 : 	1.29D-11 	;
+{224.} 	 CL + NC12H26 = DDECO2 : 	6.74D-10 	;
+{225.} 	 OH + NC12H26 = DDECO2 : 	1.39D-11 	;
+{226.} 	 CL + CHEX = CHEXO2 : 	3.50D-10 	;
+{227.} 	 OH + CHEX = CHEXO2 : 	2.88D-17*TEMP**2*EXP(309/TEMP) 	;
+{228.} 	 C2H4 + NO3 = ETHENO3O2 : 	3.3D-12*EXP(-2880/TEMP) 	;
+{229.} 	 C2H4 + O3 = HCHO + CH2OOA : 	9.1D-15*EXP(-2580/TEMP) 	;
+{230.} 	 C2H4 + OH = HOCH2CH2O2 : 	KMT15 	;
+{231.} 	 NO3 + C3H6 = PRONO3AO2 : 	4.6D-13*EXP(-1155/TEMP)*0.35 	;
+{232.} 	 NO3 + C3H6 = PRONO3BO2 : 	4.6D-13*EXP(-1155/TEMP)*0.65 	;
+{233.} 	 O3 + C3H6 = CH2OOB + CH3CHO : 	5.5D-15*EXP(-1880/TEMP)*0.5 	;
+{234.} 	 O3 + C3H6 = CH3CHOOA + HCHO : 	5.5D-15*EXP(-1880/TEMP)*0.5 	;
+{235.} 	 OH + C3H6 = HYPROPO2 : 	KMT16*0.87 	;
+{236.} 	 OH + C3H6 = IPROPOLO2 : 	KMT16*0.13 	;
+{237.} 	 BUT1ENE + NO3 = BU1ENO3O2 : 	3.2D-13*EXP(-950/TEMP)*0.65 	;
+{238.} 	 BUT1ENE + NO3 = C43NO34O2 : 	3.2D-13*EXP(-950/TEMP)*0.35 	;
+{239.} 	 BUT1ENE + O3 = C2H5CHOOA + HCHO : 	3.55D-15*EXP(-1745/TEMP)*0.5 	;
+{240.} 	 BUT1ENE + O3 = CH2OOB + C2H5CHO : 	3.55D-15*EXP(-1745/TEMP)*0.5 	;
+{241.} 	 BUT1ENE + OH = HO3C4O2 : 	6.6D-12*EXP(465/TEMP)*0.13 	;
+{242.} 	 BUT1ENE + OH = NBUTOLAO2 : 	6.6D-12*EXP(465/TEMP)*0.87 	;
+{243.} 	 CBUT2ENE + NO3 = C42NO33O2 : 	3.50D-13 	;
+{244.} 	 CBUT2ENE + O3 = CH3CHO + CH3CHOOB : 	3.22D-15*EXP(-968/TEMP) 	;
+{245.} 	 CBUT2ENE + OH = BUT2OLO2 : 	1.10D-11*EXP(487/TEMP) 	;
+{246.} 	 TBUT2ENE + NO3 = C42NO33O2 : 	3.90D-13 	;
+{247.} 	 TBUT2ENE + O3 = CH3CHO + CH3CHOOB : 	6.64D-15*EXP(-1059/TEMP) 	;
+{248.} 	 TBUT2ENE + OH = BUT2OLO2 : 	1.01D-11*EXP(550/TEMP) 	;
+{249.} 	 MEPROPENE + NO3 = MPRANO3O2 : 	3.4D-13*0.8 	;
+{250.} 	 MEPROPENE + NO3 = MPRBNO3O2 : 	3.4D-13*0.2 	;
+{251.} 	 MEPROPENE + O3 = CH2OOC + CH3COCH3 : 	2.7D-15*EXP(-1630/TEMP)*0.5 	;
+{252.} 	 MEPROPENE + O3 = CH3CCH3OOA + HCHO : 	2.7D-15*EXP(-1630/TEMP)*0.5 	;
+{253.} 	 MEPROPENE + OH = IBUTOLBO2 : 	9.4D-12*EXP(505/TEMP)*0.924 	;
+{254.} 	 MEPROPENE + OH = TBUTOLO2 : 	9.4D-12*EXP(505/TEMP)*0.076 	;
+{255.} 	 PENT1ENE + NO3 = C51NO32O2 : 	1.20D-14*0.65 	;
+{256.} 	 PENT1ENE + NO3 = C52NO31O2 : 	1.20D-14*0.35 	;
+{257.} 	 PENT1ENE + O3 = C3H7CHOOA + HCHO : 	1.00D-17*0.5 	;
+{258.} 	 PENT1ENE + O3 = CH2OOB + C3H7CHO : 	1.00D-17*0.5 	;
+{259.} 	 PENT1ENE + OH = PE1ENEAO2 : 	5.86D-12*EXP(500/TEMP)*0.87 	;
+{260.} 	 PENT1ENE + OH = PE1ENEBO2 : 	5.86D-12*EXP(500/TEMP)*0.13 	;
+{261.} 	 CPENT2ENE + NO3 = C52NO33O2 : 	3.70D-13*0.5 	;
+{262.} 	 CPENT2ENE + NO3 = C53NO32O2 : 	3.70D-13*0.5 	;
+{263.} 	 CPENT2ENE + O3 = C2H5CHOOB + CH3CHO : 	1.60D-16*0.5 	;
+{264.} 	 CPENT2ENE + O3 = CH3CHOOB + C2H5CHO : 	1.60D-16*0.5 	;
+{265.} 	 CPENT2ENE + OH = PE2ENEAO2 : 	6.54D-11*0.5 	;
+{266.} 	 CPENT2ENE + OH = PE2ENEBO2 : 	6.54D-11*0.5 	;
+{267.} 	 TPENT2ENE + NO3 = C52NO33O2 : 	3.70D-13*0.5 	;
+{268.} 	 TPENT2ENE + NO3 = C53NO32O2 : 	3.70D-13*0.5 	;
+{269.} 	 TPENT2ENE + O3 = C2H5CHOOB + CH3CHO : 	1.60D-16*0.5 	;
+{270.} 	 TPENT2ENE + O3 = CH3CHOOB + C2H5CHO : 	1.60D-16*0.5 	;
+{271.} 	 TPENT2ENE + OH = PE2ENEAO2 : 	6.69D-11*0.5 	;
+{272.} 	 TPENT2ENE + OH = PE2ENEBO2 : 	6.69D-11*0.5 	;
+{273.} 	 ME2BUT1ENE + NO3 = C4NO32M1O2 : 	3.30D-13*0.2 	;
+{274.} 	 ME2BUT1ENE + NO3 = C4NO32M2O2 : 	3.30D-13*0.8 	;
+{275.} 	 ME2BUT1ENE + O3 = C2H5MECOOA + HCHO : 	1.60D-17*0.5 	;
+{276.} 	 ME2BUT1ENE + O3 = CH2OOC + MEK : 	1.60D-17*0.5 	;
+{277.} 	 ME2BUT1ENE + OH = M2BUOL2O2 : 	6.07D-11*0.924 	;
+{278.} 	 ME2BUT1ENE + OH = PROL11MO2 : 	6.07D-11*0.076 	;
+{279.} 	 ME3BUT1ENE + NO3 = C4M3NO31O2 : 	1.20D-14*0.65 	;
+{280.} 	 ME3BUT1ENE + NO3 = C4M3NO32O2 : 	1.20D-14*0.35 	;
+{281.} 	 ME3BUT1ENE + O3 = CH2OOB + IPRCHO : 	1.10D-17*0.5 	;
+{282.} 	 ME3BUT1ENE + O3 = IPRCHOOA + HCHO : 	1.10D-17*0.5 	;
+{283.} 	 ME3BUT1ENE + OH = ME3BU2OLO2 : 	5.32D-12*EXP(533/TEMP)*0.130 	;
+{284.} 	 ME3BUT1ENE + OH = ME3BUOLO2 : 	5.32D-12*EXP(533/TEMP)*0.870 	;
+{285.} 	 ME2BUT2ENE + NO3 = C4M2NO32O2 : 	9.37D-12*0.35 	;
+{286.} 	 ME2BUT2ENE + NO3 = C4M2NO33O2 : 	9.37D-12*0.65 	;
+{287.} 	 ME2BUT2ENE + O3 = CH3CHO + CH3CCH3OOB : 	6.51D-15*EXP(-829/TEMP)*0.50 	;
+{288.} 	 ME2BUT2ENE + O3 = CH3COCH3 + CH3CHOOC : 	6.51D-15*EXP(-829/TEMP)*0.50 	;
+{289.} 	 ME2BUT2ENE + OH = ME2BU2OLO2 : 	1.92D-11*EXP(450/TEMP)*0.353 	;
+{290.} 	 ME2BUT2ENE + OH = ME2BUOLO2 : 	1.92D-11*EXP(450/TEMP)*0.647 	;
+{291.} 	 HEX1ENE + NO3 = C65NO36O2 : 	1.20D-14*0.35 	;
+{292.} 	 HEX1ENE + NO3 = C66NO35O2 : 	1.20D-14*0.65 	;
+{293.} 	 HEX1ENE + O3 = C4H9CHO + CH2OOB : 	1.10D-17*0.5 	;
+{294.} 	 HEX1ENE + O3 = HCHO + NC4H9CHOOA : 	1.10D-17*0.5 	;
+{295.} 	 HEX1ENE + OH = C6OH5O2 : 	3.70D-11*0.870 	;
+{296.} 	 HEX1ENE + OH = HO5C6O2 : 	3.70D-11*0.130 	;
+{297.} 	 CHEX2ENE + NO3 = C62NO33O2 : 	3.70D-13*0.5 	;
+{298.} 	 CHEX2ENE + NO3 = C63NO32O2 : 	3.70D-13*0.5 	;
+{299.} 	 CHEX2ENE + O3 = C3H7CHO + CH3CHOOB : 	1.60D-16*0.5 	;
+{300.} 	 CHEX2ENE + O3 = CH3CHO + C3H7CHOOB : 	1.60D-16*0.5 	;
+{301.} 	 CHEX2ENE + OH = C64OH5O2 : 	6.00D-11*0.5 	;
+{302.} 	 CHEX2ENE + OH = C65OH4O2 : 	6.00D-11*0.5 	;
+{303.} 	 THEX2ENE + NO3 = C62NO33O2 : 	3.70D-13*0.5 	;
+{304.} 	 THEX2ENE + NO3 = C63NO32O2 : 	3.70D-13*0.5 	;
+{305.} 	 THEX2ENE + O3 = C3H7CHO + CH3CHOOB : 	1.60D-16*0.5 	;
+{306.} 	 THEX2ENE + O3 = CH3CHO + C3H7CHOOB : 	1.60D-16*0.5 	;
+{307.} 	 THEX2ENE + OH = C64OH5O2 : 	6.00D-11*0.5 	;
+{308.} 	 THEX2ENE + OH = C65OH4O2 : 	6.00D-11*0.5 	;
+{309.} 	 DM23BU2ENE + NO3 = C4ME2NO3O2 : 	5.72D-11 	;
+{310.} 	 DM23BU2ENE + O3 = CH3CCH3OOC + CH3COCH3 : 	3.03D-15*EXP(-294/TEMP) 	;
+{311.} 	 DM23BU2ENE + OH = C4ME2OHO2 : 	1.10D-10 	;
+{312.} 	 C2H2 + OH = GLYOX + OH : 	KMT17*0.636 	;
+{313.} 	 C2H2 + OH = HCOOH + CO + HO2 : 	KMT17*0.364 	;
+{314.} 	 BENZENE + OH = BZBIPERO2 : 	2.3D-12*EXP(-190/TEMP)*0.352 	;
+{315.} 	 BENZENE + OH = BZEPOXMUC + HO2 : 	2.3D-12*EXP(-190/TEMP)*0.118 	;
+{316.} 	 BENZENE + OH = PHENOL + HO2 : 	2.3D-12*EXP(-190/TEMP)*0.53 	;
+{317.} 	 TOLUENE + OH = C6H5CH2O2 : 	1.8D-12*EXP(340/TEMP)*0.07 	;
+{318.} 	 TOLUENE + OH = CRESOL + HO2 : 	1.8D-12*EXP(340/TEMP)*0.18 	;
+{319.} 	 TOLUENE + OH = TLBIPERO2 : 	1.8D-12*EXP(340/TEMP)*0.65 	;
+{320.} 	 TOLUENE + OH = TLEPOXMUC + HO2 : 	1.8D-12*EXP(340/TEMP)*0.10 	;
+{321.} 	 OXYL + NO3 = OXYLO2 + HNO3 : 	4.10D-16 	;
+{322.} 	 OXYL + OH = OXYBIPERO2 : 	1.36D-11*0.55 	;
+{323.} 	 OXYL + OH = OXYEPOXMUC + HO2 : 	1.36D-11*0.24 	;
+{324.} 	 OXYL + OH = OXYLO2 : 	1.36D-11*0.05 	;
+{325.} 	 OXYL + OH = OXYLOL + HO2 : 	1.36D-11*0.16 	;
+{326.} 	 MXYL + NO3 = MXYLO2 + HNO3 : 	2.60D-16 	;
+{327.} 	 MXYL + OH = MXYBIPERO2 : 	2.31D-11*0.50 	;
+{328.} 	 MXYL + OH = MXYEPOXMUC + HO2 : 	2.31D-11*0.29 	;
+{329.} 	 MXYL + OH = MXYLO2 : 	2.31D-11*0.04 	;
+{330.} 	 MXYL + OH = MXYLOL + HO2 : 	2.31D-11*0.17 	;
+{331.} 	 PXYL + NO3 = PXYLO2 + HNO3 : 	5.00D-16 	;
+{332.} 	 PXYL + OH = PXYBIPERO2 : 	1.43D-11*0.625 	;
+{333.} 	 PXYL + OH = PXYEPOXMUC + HO2 : 	1.43D-11*0.155 	;
+{334.} 	 PXYL + OH = PXYLO2 : 	1.43D-11*0.10 	;
+{335.} 	 PXYL + OH = PXYLOL + HO2 : 	1.43D-11*0.12 	;
+{336.} 	 EBENZ + NO3 = C6H5C2H4O2 + HNO3 : 	1.20D-16 	;
+{337.} 	 EBENZ + OH = C6H5C2H4O2 : 	7.00D-12*0.07 	;
+{338.} 	 EBENZ + OH = EBENZOL + HO2 : 	7.00D-12*0.18 	;
+{339.} 	 EBENZ + OH = EBZBIPERO2 : 	7.00D-12*0.65 	;
+{340.} 	 EBENZ + OH = EBZPOXMUC + HO2 : 	7.00D-12*0.10 	;
+{341.} 	 PBENZ + NO3 = PHC3O2 + HNO3 : 	1.40D-16 	;
+{342.} 	 PBENZ + OH = PBENZOL + HO2 : 	5.80D-12*0.18 	;
+{343.} 	 PBENZ + OH = PBZBIPERO2 : 	5.80D-12*0.65 	;
+{344.} 	 PBENZ + OH = PBZPOXMUC + HO2 : 	5.80D-12*0.10 	;
+{345.} 	 PBENZ + OH = PHC3O2 : 	5.80D-12*0.07 	;
+{346.} 	 IPBENZ + NO3 = PHIC3O2 + HNO3 : 	1.40D-16 	;
+{347.} 	 IPBENZ + OH = IPBENZOL + HO2 : 	6.30D-12*0.18 	;
+{348.} 	 IPBENZ + OH = IPBZBIPRO2 : 	6.30D-12*0.65 	;
+{349.} 	 IPBENZ + OH = IPBZPOXMUC + HO2 : 	6.30D-12*0.10 	;
+{350.} 	 IPBENZ + OH = PHIC3O2 : 	6.30D-12*0.07 	;
+{351.} 	 TM123B + NO3 = TM123BO2 + HNO3 : 	1.90D-15 	;
+{352.} 	 TM123B + OH = TM123BO2 : 	3.27D-11*0.06 	;
+{353.} 	 TM123B + OH = TM123BOL + HO2 : 	3.27D-11*0.03 	;
+{354.} 	 TM123B + OH = TM123BPRO2 : 	3.27D-11*0.70 	;
+{355.} 	 TM123B + OH = TM123OXMUC + HO2 : 	3.27D-11*0.21 	;
+{356.} 	 TM124B + NO3 = TM124BO2 + HNO3 : 	1.80D-15 	;
+{357.} 	 TM124B + OH = TM124BO2 : 	3.25D-11*0.06 	;
+{358.} 	 TM124B + OH = TM124BPRO2 : 	3.25D-11*0.61 	;
+{359.} 	 TM124B + OH = TM124OL + HO2 : 	3.25D-11*0.03 	;
+{360.} 	 TM124B + OH = TM124OXMUC + HO2 : 	3.25D-11*0.30 	;
+{361.} 	 TM135B + NO3 = TMBO2 + HNO3 : 	8.80D-16 	;
+{362.} 	 TM135B + OH = TM135BPRO2 : 	5.67D-11*0.79 	;
+{363.} 	 TM135B + OH = TM135BZOL + HO2 : 	5.67D-11*0.04 	;
+{364.} 	 TM135B + OH = TM135OXMUC + HO2 : 	5.67D-11*0.14 	;
+{365.} 	 TM135B + OH = TMBO2 : 	5.67D-11*0.03 	;
+{366.} 	 OETHTOL + NO3 = ETOLO2 + HNO3 : 	7.10D-16 	;
+{367.} 	 OETHTOL + OH = ETOLO2 : 	1.19D-11*0.05 	;
+{368.} 	 OETHTOL + OH = OETLBIPRO2 : 	1.19D-11*0.55 	;
+{369.} 	 OETHTOL + OH = OETLPOXMUC + HO2 : 	1.19D-11*0.24 	;
+{370.} 	 OETHTOL + OH = OETOH + HO2 : 	1.19D-11*0.16 	;
+{371.} 	 METHTOL + NO3 = ETOLO2 + HNO3 : 	4.50D-16 	;
+{372.} 	 METHTOL + OH = ETOLO2 : 	1.86D-11*0.04 	;
+{373.} 	 METHTOL + OH = METLBIPRO2 : 	1.86D-11*0.50 	;
+{374.} 	 METHTOL + OH = METLPOXMUC + HO2 : 	1.86D-11*0.29 	;
+{375.} 	 METHTOL + OH = METOH + HO2 : 	1.86D-11*0.17 	;
+{376.} 	 PETHTOL + NO3 = ETOLO2 + HNO3 : 	8.60D-16 	;
+{377.} 	 PETHTOL + OH = ETOLO2 : 	1.18D-11*0.10 	;
+{378.} 	 PETHTOL + OH = PETLBIPRO2 : 	1.18D-11*0.625 	;
+{379.} 	 PETHTOL + OH = PETLPOXMUC + HO2 : 	1.18D-11*0.155 	;
+{380.} 	 PETHTOL + OH = PETOH + HO2 : 	1.18D-11*0.12 	;
+{381.} 	 DIME35EB + NO3 = DM35EBO2 + HNO3 : 	1.50D-15 	;
+{382.} 	 DIME35EB + OH = DM35EBO2 : 	5.67D-11*0.03 	;
+{383.} 	 DIME35EB + OH = DMEBIPRO2 : 	5.67D-11*0.79 	;
+{384.} 	 DIME35EB + OH = DMEBPOXMUC + HO2 : 	5.67D-11*0.14 	;
+{385.} 	 DIME35EB + OH = DMEPHOH + HO2 : 	5.67D-11*0.04 	;
+{386.} 	 DIET35TOL + NO3 = DE35TO2 + HNO3 : 	2.60D-15 	;
+{387.} 	 DIET35TOL + OH = DE35TO2 : 	5.67D-11*0.03 	;
+{388.} 	 DIET35TOL + OH = DEMPHOH + HO2 : 	5.67D-11*0.04 	;
+{389.} 	 DIET35TOL + OH = DETLBIPRO2 : 	5.67D-11*0.79 	;
+{390.} 	 DIET35TOL + OH = DETLPOXMUC + HO2 : 	5.67D-11*0.14 	;
+{391.} 	 NO3 + STYRENE = NSTYRENO2 : 	1.50D-12 	;
+{392.} 	 O3 + STYRENE = CH2OOB + BENZAL : 	1.70D-17*0.5 	;
+{393.} 	 O3 + STYRENE = HCHO + PHCHOOA : 	1.70D-17*0.5 	;
+{394.} 	 OH + STYRENE = STYRENO2 : 	5.80D-11 	;
+{395.} 	 BENZAL = HO2 + C6H5CO3 : 	J(19) 	;
+{396.} 	 BENZAL = HO2 + CO + C6H5O2 : 	J(18) 	;
+{397.} 	 NO3 + BENZAL = C6H5CO3 + HNO3 : 	2.40D-15 	;
+{398.} 	 OH + BENZAL = C6H5CO3 : 	5.9D-12*EXP(225/TEMP) 	;
+{399.} 	 CH3CL + OH = CH2CLO2 : 	7.33D-18*TEMP**2*EXP(-809/TEMP) 	;
+{400.} 	 CH2CL2 + OH = CHCL2O2 : 	6.14D-18*TEMP**2*EXP(-389/TEMP) 	;
+{401.} 	 CHCL3 + OH = CCL3O2 : 	1.80D-18*TEMP**2*EXP(-129/TEMP) 	;
+{402.} 	 CH3CCL3 + OH = CCL3CH2O2 : 	2.25D-18*TEMP**2*EXP(-910/TEMP) 	;
+{403.} 	 TCE + OH = TCEOHO2 : 	3.5D-12*EXP(-920/TEMP) 	;
+{404.} 	 TRICLETH + OH = C2CL3OHAO2 : 	3.0D-13*EXP(565/TEMP)*0.50 	;
+{405.} 	 TRICLETH + OH = C2CL3OHBO2 : 	3.0D-13*EXP(565/TEMP)*0.50 	;
+{406.} 	 CDICLETH + OH = C2CL2OHO2 : 	1.94D-12*EXP(90/TEMP) 	;
+{407.} 	 TDICLETH + OH = C2CL2OHO2 : 	1.01D-12*EXP(250/TEMP) 	;
+{408.} 	 CH2CLCH2CL + OH = DICLETO2 : 	8.69D-12*EXP(-1070/TEMP) 	;
+{409.} 	 CCL2CH2 + OH = CH2OHCL2O2 : 	2.00D-12*EXP(506/TEMP)*0.50 	;
+{410.} 	 CCL2CH2 + OH = CL2OHCH2O2 : 	2.00D-12*EXP(506/TEMP)*0.50 	;
+{411.} 	 CL12PROP + OH = CL12PRAO2 : 	4.42D-13*0.11 	;
+{412.} 	 CL12PROP + OH = CL12PRBO2 : 	4.42D-13*0.60 	;
+{413.} 	 CL12PROP + OH = CL12PRCO2 : 	4.42D-13*0.29 	;
+{414.} 	 CHCL2CH3 + OH = CH3CCL2O2 : 	2.0D-12*EXP(-596/TEMP)*0.85 	;
+{415.} 	 CHCL2CH3 + OH = CHCL2CH2O2 : 	2.0D-12*EXP(-596/TEMP)*0.15 	;
+{416.} 	 CH3CH2CL + OH = CH2CLCH2O2 : 	7.78D-18*TEMP**2*EXP(-152/TEMP)*0.87 	;
+{417.} 	 CH3CH2CL + OH = CH3CHCLO2 : 	7.78D-18*TEMP**2*EXP(-152/TEMP)*0.13 	;
+{418.} 	 CHCL2CHCL2 + OH = CHCL2CL2O2 : 	5.13D-13 	;
+{419.} 	 CH2CLCHCL2 + OH = CH2CL3O2 : 	4.44D-18*TEMP**2*EXP(-208/TEMP)*0.5 	;
+{420.} 	 CH2CLCHCL2 + OH = CHCL3O2 : 	4.44D-18*TEMP**2*EXP(-208/TEMP)*0.5 	;
+{421.} 	 VINCL + NO3 = CCLNO3O2 : 	0.35*2.3D-16 	;
+{422.} 	 VINCL + NO3 = CNO3CLO2 : 	0.65*2.3D-16 	;
+{423.} 	 VINCL + O3 = CHOCL + CH2OOB : 	0.76*2.45D-19 	;
+{424.} 	 VINCL + O3 = HCHO + CHCLOOA : 	0.24*2.45D-19 	;
+{425.} 	 VINCL + OH = CCLOHCH2O2 : 	0.5 *8.49D-12 	;
+{426.} 	 VINCL + OH = CH2OHCCLO2 : 	0.5 *8.49D-12 	;
+{427.} 	 NO3 + C4H6 = NBUTDAO2 : 	1.03D-13*0.5 	;
+{428.} 	 NO3 + C4H6 = NBUTDBO2 : 	1.03D-13*0.5 	;
+{429.} 	 O3 + C4H6 = ACR + CH2OOD : 	1.34D-14*EXP(-2283/TEMP)*0.5 	;
+{430.} 	 O3 + C4H6 = HCHO + ACROOA : 	1.34D-14*EXP(-2283/TEMP)*0.5 	;
+{431.} 	 OH + C4H6 = BUTDAO2 : 	1.48D-11*EXP(448/TEMP)*0.217 	;
+{432.} 	 OH + C4H6 = BUTDBO2 : 	1.48D-11*EXP(448/TEMP)*0.649 	;
+{433.} 	 OH + C4H6 = BUTDCO2 : 	1.48D-11*EXP(448/TEMP)*0.134 	;
+{434.} 	 NO3 + C5H8 = NISOPO2 : 	3.15D-12*EXP(-450/TEMP) 	;
+{435.} 	 O3 + C5H8 = CH2OOE + MACR : 	1.03D-14*EXP(-1995/TEMP)*0.3 	;
+{436.} 	 O3 + C5H8 = CH2OOE + MVK : 	1.03D-14*EXP(-1995/TEMP)*0.2 	;
+{437.} 	 O3 + C5H8 = HCHO + MACROOA : 	1.03D-14*EXP(-1995/TEMP)*0.3 	;
+{438.} 	 O3 + C5H8 = HCHO + MVKOOA : 	1.03D-14*EXP(-1995/TEMP)*0.2 	;
+{439.} 	 OH + C5H8 = ISOPAO2 : 	2.7D-11*EXP(390/TEMP)*0.148 	;
+{440.} 	 OH + C5H8 = ISOPBO2 : 	2.7D-11*EXP(390/TEMP)*0.444 	;
+{441.} 	 OH + C5H8 = ISOPCO2 : 	2.7D-11*EXP(390/TEMP)*0.102 	;
+{442.} 	 OH + C5H8 = ISOPDO2 : 	2.7D-11*EXP(390/TEMP)*0.306 	;
+{443.} 	 CH3OCHO + OH = CH3O2 : 	9.39D-13*EXP(-461/TEMP)*0.450 	;
+{444.} 	 CH3OCHO + OH = CHOOCH2O2 : 	9.39D-13*EXP(-461/TEMP)*0.550 	;
+{445.} 	 METHACET + OH = METHACETO2 : 	8.54D-19*TEMP**2*EXP(455/TEMP)*0.685 	;
+{446.} 	 METHACET + OH = MOCOCH2O2 : 	8.54D-19*TEMP**2*EXP(455/TEMP)*0.315 	;
+{447.} 	 ETHACET + OH = ACETC2H4O2 : 	6.92D-19*TEMP**2*EXP(986/TEMP)*0.095 	;
+{448.} 	 ETHACET + OH = EOCOCH2O2 : 	6.92D-19*TEMP**2*EXP(986/TEMP)*0.057 	;
+{449.} 	 ETHACET + OH = ETHACETO2 : 	6.92D-19*TEMP**2*EXP(986/TEMP)*0.848 	;
+{450.} 	 NPROACET + OH = NPROACEAO2 : 	1.39D-18*TEMP**2*EXP(991/TEMP)*0.364 	;
+{451.} 	 NPROACET + OH = NPROACEBO2 : 	1.39D-18*TEMP**2*EXP(991/TEMP)*0.583 	;
+{452.} 	 NPROACET + OH = NPROACECO2 : 	1.39D-18*TEMP**2*EXP(991/TEMP)*0.053 	;
+{453.} 	 IPROACET + OH = IPRACBO2 : 	2.64D-13*EXP(770/TEMP)*0.098 	;
+{454.} 	 IPROACET + OH = IPROACETO2 : 	2.64D-13*EXP(770/TEMP)*0.902 	;
+{455.} 	 NBUTACET + OH = NBUACETAO2 : 	2.48D-18*TEMP**2*EXP(926/TEMP)*0.261 	;
+{456.} 	 NBUTACET + OH = NBUACETBO2 : 	2.48D-18*TEMP**2*EXP(926/TEMP)*0.321 	;
+{457.} 	 NBUTACET + OH = NBUACETCO2 : 	2.48D-18*TEMP**2*EXP(926/TEMP)*0.417 	;
+{458.} 	 SBUTACET + OH = SBUACETAO2 : 	6.66D-13*EXP(640/TEMP)*0.768 	;
+{459.} 	 SBUTACET + OH = SBUACETBO2 : 	6.66D-13*EXP(640/TEMP)*0.232 	;
+{460.} 	 TBUACET + OH = MCOOTBO2 : 	1.88D-12*EXP(-395/TEMP)*0.834 	;
+{461.} 	 TBUACET + OH = TBOCOCH2O2 : 	1.88D-12*EXP(-395/TEMP)*0.166 	;
+{462.} 	 CH3OCH3 + NO3 = HNO3 + CH3OCH2O2 : 	2.60D-16 	;
+{463.} 	 CH3OCH3 + OH = CH3OCH2O2 : 	5.7D-12*EXP(-215/TEMP) 	;
+{464.} 	 DIETETHER + NO3 = DIETETO2 + HNO3 : 	2.80D-15 	;
+{465.} 	 DIETETHER + OH = DIETETO2 : 	8.91D-18*TEMP**2*EXP(837/TEMP)*0.928 	;
+{466.} 	 DIETETHER + OH = ETOC2O2 : 	8.91D-18*TEMP**2*EXP(837/TEMP)*0.072 	;
+{467.} 	 MTBE + NO3 = MTBEAO2 + HNO3 : 	6.40D-16*0.20 	;
+{468.} 	 MTBE + NO3 = MTBEBO2 + HNO3 : 	6.40D-16*0.80 	;
+{469.} 	 MTBE + OH = MTBEAO2 : 	6.54D-18*TEMP**2*EXP(483/TEMP)*0.510 	;
+{470.} 	 MTBE + OH = MTBEBO2 : 	6.54D-18*TEMP**2*EXP(483/TEMP)*0.490 	;
+{471.} 	 DIIPRETHER + NO3 = DIIPRETO2 + HNO3 : 	6.50D-15 	;
+{472.} 	 DIIPRETHER + OH = DIIPRETO2 : 	2.20D-12*EXP(457/TEMP)*0.827 	;
+{473.} 	 DIIPRETHER + OH = IPROMC2O2 : 	2.20D-12*EXP(457/TEMP)*0.173 	;
+{474.} 	 ETBE + NO3 = ETBEAO2 + HNO3 : 	1.91D-15*0.267 	;
+{475.} 	 ETBE + NO3 = ETBEBO2 + HNO3 : 	1.91D-15*0.733 	;
+{476.} 	 ETBE + OH = ETBEAO2 : 	6.82D-18*TEMP**2*EXP(800/TEMP)*0.180 	;
+{477.} 	 ETBE + OH = ETBEBO2 : 	6.82D-18*TEMP**2*EXP(800/TEMP)*0.760 	;
+{478.} 	 ETBE + OH = ETBECO2 : 	6.82D-18*TEMP**2*EXP(800/TEMP)*0.060 	;
+{479.} 	 MO2EOL + NO3 = MO2EOLAO2 + HNO3 : 	1.53D-15*0.915 	;
+{480.} 	 MO2EOL + NO3 = MO2EOLBO2 + HNO3 : 	1.53D-15*0.085 	;
+{481.} 	 MO2EOL + OH = MEMOXYCHO + HO2 : 	4.10D-12*EXP(325/TEMP)*0.358 	;
+{482.} 	 MO2EOL + OH = MO2EOLAO2 : 	4.10D-12*EXP(325/TEMP)*0.533 	;
+{483.} 	 MO2EOL + OH = MO2EOLBO2 : 	4.10D-12*EXP(325/TEMP)*0.109 	;
+{484.} 	 EOX2EOL + NO3 = EOX2EOLAO2 + HNO3 : 	2.80D-15*0.5 	;
+{485.} 	 EOX2EOL + NO3 = EOX2EOLBO2 + HNO3 : 	2.80D-15*0.5 	;
+{486.} 	 EOX2EOL + OH = EOX2EOLAO2 : 	1.80D-11*0.399 	;
+{487.} 	 EOX2EOL + OH = EOX2EOLBO2 : 	1.80D-11*0.333 	;
+{488.} 	 EOX2EOL + OH = EOX2ETCHO + HO2 : 	1.80D-11*0.268 	;
+{489.} 	 PR2OHMOX + NO3 = PR2OHMOXO2 + HNO3 : 	3.76D-15 	;
+{490.} 	 PR2OHMOX + OH = H2C3OCO2 : 	1.59D-11*0.099 	;
+{491.} 	 PR2OHMOX + OH = PR2OHMOXO2 : 	1.59D-11*0.484 	;
+{492.} 	 PR2OHMOX + OH = PRONEMOX + HO2 : 	1.59D-11*0.417 	;
+{493.} 	 BUOX2ETOH + NO3 = BOX2EOHAO2 + HNO3 : 	4.65D-15*0.70 	;
+{494.} 	 BUOX2ETOH + NO3 = BOX2EOHBO2 + HNO3 : 	4.65D-15*0.30 	;
+{495.} 	 BUOX2ETOH + OH = BOX2ECHO + HO2 : 	2.31D-11*0.196 	;
+{496.} 	 BUOX2ETOH + OH = BOX2EOHAO2 : 	2.31D-11*0.513 	;
+{497.} 	 BUOX2ETOH + OH = BOX2EOHBO2 : 	2.31D-11*0.291 	;
+{498.} 	 BOX2PROL + NO3 = BOXPROLAO2 + HNO3 : 	6.5D-15*0.5 	;
+{499.} 	 BOX2PROL + NO3 = BOXPROLBO2 + HNO3 : 	6.5D-15*0.5 	;
+{500.} 	 BOX2PROL + OH = BOXPROLAO2 : 	2.78D-11*0.486 	;
+{501.} 	 BOX2PROL + OH = BOXPROLBO2 : 	2.78D-11*0.276 	;
+{502.} 	 BOX2PROL + OH = BOXPRONE + HO2 : 	2.78D-11*0.238 	;
+{503.} 	 CH3BR + OH = CH2BRO2 : 	7.40D-13*EXP(-875/TEMP) 	;
+{504.} 	 DIBRET + OH = DIBRETO2 : 	1.03D-17*TEMP**2*EXP(-422/TEMP) 	;
+{505.} 	 CH3COCH3 + OH = CH3COCH2O2 : 	8.8D-12*EXP(-1320/TEMP) + 1.7D-14*EXP(423/TEMP) 	;
+{506.} 	 CH3COCH3 = CH3CO3 + CH3O2 : 	J(21) 	;
+{507.} 	 MEK + OH = MEKAO2 : 	1.5D-12*EXP(-90/TEMP)*0.459 	;
+{508.} 	 MEK + OH = MEKBO2 : 	1.5D-12*EXP(-90/TEMP)*0.462 	;
+{509.} 	 MEK + OH = MEKCO2 : 	1.5D-12*EXP(-90/TEMP)*0.079 	;
+{510.} 	 MEK = CH3CO3 + C2H5O2 : 	J(22) 	;
+{511.} 	 MPRK + OH = CO2C54O2 : 	4.90D-12*0.818 	;
+{512.} 	 MPRK + OH = MPRKAO2 : 	4.90D-12*0.182 	;
+{513.} 	 MPRK = CH3CO3 + NC3H7O2 : 	J(22) 	;
+{514.} 	 DIEK + OH = DIEKAO2 : 	2.00D-12*0.501 	;
+{515.} 	 DIEK + OH = DIEKBO2 : 	2.00D-12*0.499 	;
+{516.} 	 DIEK = C2H5CHO + C2H5O2 : 	J(22) 	;
+{517.} 	 MIPK = CH3CO3 + IC3H7O2 : 	J(22) 	;
+{518.} 	 OH + MIPK = MIPKAO2 : 	2.77D-12*0.523 	;
+{519.} 	 OH + MIPK = MIPKBO2 : 	2.77D-12*0.477 	;
+{520.} 	 HEX2ONE + OH = HEX2ONAO2 : 	9.10D-12*0.715 	;
+{521.} 	 HEX2ONE + OH = HEX2ONBO2 : 	9.10D-12*0.162 	;
+{522.} 	 HEX2ONE + OH = HEX2ONCO2 : 	9.10D-12*0.123 	;
+{523.} 	 HEX2ONE = CH3CO3 + NC4H9O2 : 	J(22) 	;
+{524.} 	 HEX3ONE + OH = HEX3ONAO2 : 	6.90D-12*0.638 	;
+{525.} 	 HEX3ONE + OH = HEX3ONBO2 : 	6.90D-12*0.142 	;
+{526.} 	 HEX3ONE + OH = HEX3ONCO2 : 	6.90D-12*0.110 	;
+{527.} 	 HEX3ONE + OH = HEX3ONDO2 : 	6.90D-12*0.110 	;
+{528.} 	 HEX3ONE = C2H5CO3 + NC3H7O2 : 	J(22) 	;
+{529.} 	 MIBK + OH = MIBKAO2 : 	1.41D-11*0.91 	;
+{530.} 	 MIBK + OH = MIBKBO2 : 	1.41D-11*0.09 	;
+{531.} 	 MIBK = CH3CO3 + IC4H9O2 : 	J(22) 	;
+{532.} 	 MTBK = TC4H9O2 + CH3CO3 : 	J(22) 	;
+{533.} 	 OH + MTBK = MTBKO2 : 	1.21D-12 	;
+{534.} 	 CYHEXONE + OH = CYHXONAO2 : 	5.40D-12 	;
+{535.} 	 CYHEXONE = C2H4 + C3H6 + CO : 	J(22)*0.5 	;
+{536.} 	 CYHEXONE = PENT1ENE + CO : 	J(22)*0.5 	;
+{537.} 	 APINENE + NO3 = NAPINAO2 : 	1.2D-12*EXP(490/TEMP)*0.65 	;
+{538.} 	 APINENE + NO3 = NAPINBO2 : 	1.2D-12*EXP(490/TEMP)*0.35 	;
+{539.} 	 APINENE + O3 = APINOOA : 	6.3D-16*EXP(-580/TEMP)*0.6 	;
+{540.} 	 APINENE + O3 = APINOOB : 	6.3D-16*EXP(-580/TEMP)*0.4 	;
+{541.} 	 APINENE + OH = APINAO2 : 	1.2D-11*EXP(440/TEMP)*0.572 	;
+{542.} 	 APINENE + OH = APINBO2 : 	1.2D-11*EXP(440/TEMP)*0.353 	;
+{543.} 	 APINENE + OH = APINCO2 : 	1.2D-11*EXP(440/TEMP)*0.075 	;
+{544.} 	 BPINENE + NO3 = NBPINAO2 : 	2.51D-12*0.8 	;
+{545.} 	 BPINENE + NO3 = NBPINBO2 : 	2.51D-12*0.2 	;
+{546.} 	 BPINENE + O3 = NOPINONE + CH2OOF : 	1.50D-17*0.4 	;
+{547.} 	 BPINENE + O3 = NOPINOOA + HCHO : 	1.50D-17*0.6 	;
+{548.} 	 BPINENE + OH = BPINAO2 : 	2.38D-11*EXP(357/TEMP)*0.849 	;
+{549.} 	 BPINENE + OH = BPINBO2 : 	2.38D-11*EXP(357/TEMP)*0.076 	;
+{550.} 	 BPINENE + OH = BPINCO2 : 	2.38D-11*EXP(357/TEMP)*0.075 	;
+{551.} 	 LIMONENE + NO3 = NLIMO2 : 	1.22D-11 	;
+{552.} 	 LIMONENE + O3 = LIMOOA : 	2.95D-15*EXP(-783/TEMP)*0.730 	;
+{553.} 	 LIMONENE + O3 = LIMOOB : 	2.95D-15*EXP(-783/TEMP)*0.270 	;
+{554.} 	 LIMONENE + OH = LIMAO2 : 	4.28D-11*EXP(401/TEMP)*0.408 	;
+{555.} 	 LIMONENE + OH = LIMBO2 : 	4.28D-11*EXP(401/TEMP)*0.222 	;
+{556.} 	 LIMONENE + OH = LIMCO2 : 	4.28D-11*EXP(401/TEMP)*0.370 	;
+{557.} 	 BCARY + NO3 = NBCO2 : 	1.90D-11 	;
+{558.} 	 BCARY + O3 = BCAOO : 	1.16D-14*0.435 	;
+{559.} 	 BCARY + O3 = BCBOO : 	1.16D-14*0.435 	;
+{560.} 	 BCARY + O3 = BCOOA : 	1.16D-14*0.100 	;
+{561.} 	 BCARY + O3 = BCOOB : 	1.16D-14*0.030 	;
+{562.} 	 BCARY + OH = BCAO2 : 	1.97D-10*0.408 	;
+{563.} 	 BCARY + OH = BCBO2 : 	1.97D-10*0.222 	;
+{564.} 	 BCARY + OH = BCCO2 : 	1.97D-10*0.370 	;
+{565.} 	 HCOOH + OH = HO2 : 	4.5D-13 	;
+{566.} 	 CH3CO2H + OH = CH3O2 : 	8.00D-13 	;
+{567.} 	 PROPACID + OH = C2H5O2 : 	1.2D-12 	;
+{568.} 	 DMM + NO3 = DMMAO2 + HNO3 : 	2.60D-16 	;
+{569.} 	 DMM + OH = DMMAO2 : 	4.93D-12*0.76 	;
+{570.} 	 DMM + OH = DMMBO2 : 	4.93D-12*0.24 	;
+{571.} 	 DMC + OH = DMCO2 : 	3.20D-13 	;
+{572.} 	 DMS + NO3 = CH3SCH2O2 + HNO3 : 	1.9D-13*EXP(520/TEMP) 	;
+{573.} 	 DMS + OH = CH3SCH2O2 : 	1.12D-11*EXP(-250/TEMP) 	;
+{574.} 	 DMS + OH = HODMSO2 : 	KMT18 	;
+{575.} 	 ETHOX + OH = ETHOXO2 : 	0.95D-13 	;
+{576.} 	 C2H5O = CH3CHO + HO2 : 	2.4D-14*EXP(-325/TEMP)*O2 	;
+{577.} 	 HOCH2CH2O2 + HO2 = HYETHO2H : 	1.53D-13*EXP(1300/TEMP) 	;
+{578.} 	 HOCH2CH2O2 + NO = ETHOHNO3 : 	KRO2NO*0.005 	;
+{579.} 	 HOCH2CH2O2 + NO = HOCH2CH2O + NO2 : 	KRO2NO*0.995 	;
+{580.} 	 HOCH2CH2O2 + NO3 = HOCH2CH2O + NO2 : 	KRO2NO3 	;
+{581.} 	 HOCH2CH2O2 = ETHGLY : 	2*(KCH3O2*7.8D-14*EXP(1000/TEMP))**0.5*RO2*0.2 	;
+{582.} 	 HOCH2CH2O2 = HOCH2CH2O : 	2*(KCH3O2*7.8D-14*EXP(1000/TEMP))**0.5*RO2*0.6 	;
+{583.} 	 HOCH2CH2O2 = HOCH2CHO : 	2*(KCH3O2*7.8D-14*EXP(1000/TEMP))**0.5*RO2*0.2 	;
+{584.} 	 HO1C3O2 + HO2 = HO1C3OOH : 	KRO2HO2*0.520 	;
+{585.} 	 HO1C3O2 + NO = HO1C3NO3 : 	KRO2NO*0.019 	;
+{586.} 	 HO1C3O2 + NO = HO1C3O + NO2 : 	KRO2NO*0.981 	;
+{587.} 	 HO1C3O2 + NO3 = HO1C3O + NO2 : 	KRO2NO3 	;
+{588.} 	 HO1C3O2 = HO1C3O : 	6.00D-13*0.6*RO2 	;
+{589.} 	 HO1C3O2 = HOC2H4CHO : 	6.00D-13*0.2*RO2 	;
+{590.} 	 HO1C3O2 = HOC3H6OH : 	6.00D-13*0.2*RO2 	;
+{591.} 	 HYPROPO2 + HO2 = HYPROPO2H : 	KRO2HO2*0.520 	;
+{592.} 	 HYPROPO2 + NO3 = HYPROPO + NO2 : 	KRO2NO3 	;
+{593.} 	 HYPROPO2 = ACETOL : 	8.80D-13*0.2*RO2 	;
+{594.} 	 HYPROPO2 = HYPROPO : 	8.80D-13*0.6*RO2 	;
+{595.} 	 HYPROPO2 = PROPGLY : 	8.80D-13*0.2*RO2 	;
+{596.} 	 NO + HYPROPO2 = HYPROPO + NO2 : 	KRO2NO*0.977 	;
+{597.} 	 NO + HYPROPO2 = PROPOLNO3 : 	KRO2NO*0.023 	;
+{598.} 	 IPROPOLO2 + HO2 = IPROPOLO2H : 	KRO2HO2*0.520 	;
+{599.} 	 IPROPOLO2 + NO = IPROPOLO + NO2 : 	KRO2NO*0.991 	;
+{600.} 	 IPROPOLO2 + NO = PROLNO3 : 	KRO2NO*0.009 	;
+{601.} 	 IPROPOLO2 + NO3 = IPROPOLO + NO2 : 	KRO2NO3 	;
+{602.} 	 IPROPOLO2 = CH3CHOHCHO : 	2.00D-12*0.2*RO2 	;
+{603.} 	 IPROPOLO2 = IPROPOLO : 	2.00D-12*0.6*RO2 	;
+{604.} 	 IPROPOLO2 = PROPGLY : 	2.00D-12*0.2*RO2 	;
+{605.} 	 NBUTOLAO2 + HO2 = NBUTOLAOOH : 	KRO2HO2*0.625 	;
+{606.} 	 NBUTOLAO2 + NO = NBUTOLANO3 : 	KRO2NO*0.042 	;
+{607.} 	 NBUTOLAO2 + NO = NBUTOLAO + NO2 : 	KRO2NO*0.958 	;
+{608.} 	 NBUTOLAO2 + NO3 = NBUTOLAO + NO2 : 	KRO2NO3 	;
+{609.} 	 NBUTOLAO2 = MEKCOH : 	8.80D-13*0.2*RO2 	;
+{610.} 	 NBUTOLAO2 = NBUTOLAO : 	8.80D-13*0.6*RO2 	;
+{611.} 	 NBUTOLAO2 = NBUTOLAOH : 	8.80D-13*0.2*RO2 	;
+{612.} 	 NBUTOLBO2 + HO2 = NBUTOLBOOH : 	KRO2HO2*0.625 	;
+{613.} 	 NBUTOLBO2 + NO = NBUTOLBNO3 : 	KRO2NO*0.083 	;
+{614.} 	 NBUTOLBO2 + NO = NBUTOLBO + NO2 : 	KRO2NO*0.917 	;
+{615.} 	 NBUTOLBO2 + NO3 = NBUTOLBO + NO2 : 	KRO2NO3 	;
+{616.} 	 NBUTOLBO2 = HO2C4OH : 	8.80D-13*0.2*RO2 	;
+{617.} 	 NBUTOLBO2 = MEKAOH : 	8.80D-13*0.2*RO2 	;
+{618.} 	 NBUTOLBO2 = NBUTOLBO : 	8.80D-13*0.6*RO2 	;
+{619.} 	 BUT2OLO2 + HO2 = BUT2OLOOH : 	KRO2HO2*0.625 	;
+{620.} 	 BUT2OLO2 + NO = BUT2OLAO + NO2 : 	KRO2NO*0.959 	;
+{621.} 	 BUT2OLO2 + NO = BUT2OLNO3 : 	KRO2NO*0.041 	;
+{622.} 	 BUT2OLO2 + NO3 = BUT2OLAO + NO2 : 	KRO2NO3 	;
+{623.} 	 BUT2OLO2 = BUT2OLAO : 	8.80D-13*0.6*RO2 	;
+{624.} 	 BUT2OLO2 = BUT2OLO : 	8.80D-13*0.2*RO2 	;
+{625.} 	 BUT2OLO2 = BUT2OLOH : 	8.80D-13*0.2*RO2 	;
+{626.} 	 IBUTOLBO2 + HO2 = IBUTOLBO2H : 	KRO2HO2*0.625 	;
+{627.} 	 IBUTOLBO2 + NO = IBUTOLBNO3 : 	KRO2NO*0.012 	;
+{628.} 	 IBUTOLBO2 + NO = IBUTOLBO + NO2 : 	KRO2NO*0.988 	;
+{629.} 	 IBUTOLBO2 + NO3 = IBUTOLBO + NO2 : 	KRO2NO3 	;
+{630.} 	 IBUTOLBO2 = IBUTOLBO : 	9.20D-14*0.7*RO2 	;
+{631.} 	 IBUTOLBO2 = IBUTOLOHB : 	9.20D-14*0.3*RO2 	;
+{632.} 	 IBUTOLCO2 + HO2 = IBUTOLCO2H : 	KRO2HO2*0.625 	;
+{633.} 	 IBUTOLCO2 + NO = IBUTOLCNO3 : 	KRO2NO*0.041 	;
+{634.} 	 IBUTOLCO2 + NO = IBUTOLCO + NO2 : 	KRO2NO*0.959 	;
+{635.} 	 IBUTOLCO2 + NO3 = IBUTOLCO + NO2 : 	KRO2NO3 	;
+{636.} 	 IBUTOLCO2 = HOIPRCHO : 	1.30D-12*0.2*RO2 	;
+{637.} 	 IBUTOLCO2 = IBUTOLCO : 	1.30D-12*0.6*RO2 	;
+{638.} 	 IBUTOLCO2 = IBUTOLOHC : 	1.30D-12*0.2*RO2 	;
+{639.} 	 TBUTOLO2 + HO2 = TBUTOLOOH : 	5.60D-14*EXP(1650/TEMP) 	;
+{640.} 	 TBUTOLO2 + NO = TBUTOLNO3 : 	KRO2NO*0.017 	;
+{641.} 	 TBUTOLO2 + NO = TBUTOLO + NO2 : 	KRO2NO*0.983 	;
+{642.} 	 TBUTOLO2 + NO3 = NO2 + TBUTOLO : 	KRO2NO3 	;
+{643.} 	 TBUTOLO2 = IBUTALOH : 	2.00D-13*0.2*RO2 	;
+{644.} 	 TBUTOLO2 = IBUTOLOHB : 	2.00D-13*0.2*RO2 	;
+{645.} 	 TBUTOLO2 = TBUTOLO : 	2.00D-13*0.6*RO2 	;
+{646.} 	 TC4H9O = CH3COCH3 + CH3O2 : 	6.00D+14*EXP(-8153/TEMP) 	;
+{647.} 	 HO3C5O2 + HO2 = HO3C5OOH : 	KRO2HO2*0.706 	;
+{648.} 	 HO3C5O2 + NO = HO3C5NO3 : 	KRO2NO*0.052 	;
+{649.} 	 HO3C5O2 + NO = HO3C5O + NO2 : 	KRO2NO*0.948 	;
+{650.} 	 HO3C5O2 + NO3 = HO3C5O + NO2 : 	KRO2NO3 	;
+{651.} 	 HO3C5O2 = HO13C5 : 	1.30D-12*0.2*RO2 	;
+{652.} 	 HO3C5O2 = HO3C4CHO : 	1.30D-12*0.2*RO2 	;
+{653.} 	 HO3C5O2 = HO3C5O : 	1.30D-12*0.6*RO2 	;
+{654.} 	 PE2ENEBO2 + HO2 = C53OH2OOH : 	KRO2HO2*0.706 	;
+{655.} 	 PE2ENEBO2 + NO = PE2ENEBNO3 : 	KRO2NO*0.064 	;
+{656.} 	 PE2ENEBO2 + NO = PE2ENEBO + NO2 : 	KRO2NO*0.936 	;
+{657.} 	 PE2ENEBO2 + NO3 = PE2ENEBO + NO2 : 	KRO2NO3 	;
+{658.} 	 PE2ENEBO2 = C523OH : 	8.80D-13*0.2*RO2 	;
+{659.} 	 PE2ENEBO2 = MPRKAOH : 	8.80D-13*0.2*RO2 	;
+{660.} 	 PE2ENEBO2 = PE2ENEBO : 	8.80D-13*0.6*RO2 	;
+{661.} 	 BUT2CHO = CH3CHO + C3H6 : 	J(16) 	;
+{662.} 	 BUT2CHO = SC4H9O2 + HO2 + CO : 	J(17) 	;
+{663.} 	 NO3 + BUT2CHO = BUT2CO3 + HNO3 : 	KNO3AL*8.5 	;
+{664.} 	 OH + BUT2CHO = BUT2CO3 : 	2.69D-11 	;
+{665.} 	 HM2C43O2 + HO2 = HM2C43OOH : 	KRO2HO2*0.706 	;
+{666.} 	 HM2C43O2 + NO = HM2C43NO3 : 	KRO2NO*0.129 	;
+{667.} 	 HM2C43O2 + NO = HM2C43O + NO2 : 	KRO2NO*0.871 	;
+{668.} 	 HM2C43O2 + NO3 = HM2C43O + NO2 : 	KRO2NO3 	;
+{669.} 	 HM2C43O2 = HM2C43O : 	1.30D-12*0.6*RO2 	;
+{670.} 	 HM2C43O2 = HO13M2C4 : 	1.30D-12*0.2*RO2 	;
+{671.} 	 HM2C43O2 = MIPKBOH : 	1.30D-12*0.2*RO2 	;
+{672.} 	 M2BUOL2O2 + HO2 = M2BUOL2OOH : 	KRO2HO2*0.706 	;
+{673.} 	 M2BUOL2O2 + NO = M2BUOL2NO3 : 	KRO2NO*0.019 	;
+{674.} 	 M2BUOL2O2 + NO = M2BUOL2O + NO2 : 	KRO2NO*0.981 	;
+{675.} 	 M2BUOL2O2 + NO3 = M2BUOL2O + NO2 : 	KRO2NO3 	;
+{676.} 	 M2BUOL2O2 = M2BUOL2O : 	9.20D-14*0.7*RO2 	;
+{677.} 	 M2BUOL2O2 = M2BUOL2OH : 	9.20D-14*0.3*RO2 	;
+{678.} 	 C3ME3CHO + NO3 = C3ME3CO3 + HNO3 : 	KNO3AL*8.5 	;
+{679.} 	 C3ME3CHO + OH = C3ME3CHOO2 : 	2.95D-11*0.267 	;
+{680.} 	 C3ME3CHO + OH = C3ME3CO3 : 	2.95D-11*0.733 	;
+{681.} 	 HM33C3O2 + HO2 = HM33C3OOH : 	KRO2HO2*0.706 	;
+{682.} 	 HM33C3O2 + NO = HM33C3NO3 : 	KRO2NO*0.039 	;
+{683.} 	 HM33C3O2 + NO = HM33C3O + NO2 : 	KRO2NO*0.961 	;
+{684.} 	 HM33C3O2 + NO3 = HM33C3O + NO2 : 	KRO2NO3 	;
+{685.} 	 HM33C3O2 = HM33C3O : 	6.70D-15*0.7*RO2 	;
+{686.} 	 HM33C3O2 = HO2M2C4OH : 	6.70D-15*0.3*RO2 	;
+{687.} 	 ME3BUOLO2 + HO2 = ME3BUOLOOH : 	KRO2HO2*0.706 	;
+{688.} 	 ME3BUOLO2 + NO = ME3BUOLNO3 : 	KRO2NO*0.064 	;
+{689.} 	 ME3BUOLO2 + NO = ME3BUOLO + NO2 : 	KRO2NO*0.936 	;
+{690.} 	 ME3BUOLO2 + NO3 = ME3BUOLO + NO2 : 	KRO2NO3 	;
+{691.} 	 ME3BUOLO2 = C4ME3HO12 : 	8.80D-13*0.2*RO2 	;
+{692.} 	 ME3BUOLO2 = ME3BUOLO : 	8.80D-13*0.6*RO2 	;
+{693.} 	 ME3BUOLO2 = ME3CO2BUOL : 	8.80D-13*0.2*RO2 	;
+{694.} 	 HO2M2C4O2 + HO2 = HO2M2C4OOH : 	KRO2HO2*0.706 	;
+{695.} 	 HO2M2C4O2 + NO = HO2M2C4NO3 : 	KRO2NO*0.052 	;
+{696.} 	 HO2M2C4O2 + NO = HO2M2C4O + NO2 : 	KRO2NO*0.948 	;
+{697.} 	 HO2M2C4O2 + NO3 = HO2M2C4O + NO2 : 	KRO2NO3 	;
+{698.} 	 HO2M2C4O2 = H2M2C3CHO : 	1.30D-12*0.2*RO2 	;
+{699.} 	 HO2M2C4O2 = HO2M2C4O : 	1.30D-12*0.6*RO2 	;
+{700.} 	 HO2M2C4O2 = HO2M2C4OH : 	1.30D-12*0.2*RO2 	;
+{701.} 	 ME2BU2OLO2 + HO2 = M2BU2OLOOH : 	KRO2HO2*0.706 	;
+{702.} 	 ME2BU2OLO2 + NO = M2BU2OLNO3 : 	KRO2NO*0.062 	;
+{703.} 	 ME2BU2OLO2 + NO = ME2BU2OLO + NO2 : 	KRO2NO*0.938 	;
+{704.} 	 ME2BU2OLO2 + NO3 = ME2BU2OLO + NO2 : 	KRO2NO3 	;
+{705.} 	 ME2BU2OLO2 = C4ME3HO23 : 	8.80D-13*0.20*RO2 	;
+{706.} 	 ME2BU2OLO2 = ME2BU2OLO : 	8.80D-13*0.60*RO2 	;
+{707.} 	 ME2BU2OLO2 = MIPKAOH : 	8.80D-13*0.20*RO2 	;
+{708.} 	 PROL11MO2 + HO2 = PROL11MOOH : 	KRO2HO2*0.706 	;
+{709.} 	 PROL11MO2 + NO = PROL11MNO3 : 	KRO2NO*0.024 	;
+{710.} 	 PROL11MO2 + NO = PROL11MO + NO2 : 	KRO2NO*0.976 	;
+{711.} 	 PROL11MO2 + NO3 = PROL11MO + NO2 : 	KRO2NO3 	;
+{712.} 	 PROL11MO2 = M2BUOL2OH : 	2.00D-12*0.2*RO2 	;
+{713.} 	 PROL11MO2 = PROL11MO : 	2.00D-12*0.6*RO2 	;
+{714.} 	 PROL11MO2 = PROL1MCHO : 	2.00D-12*0.2*RO2 	;
+{715.} 	 H2M3C4O2 + HO2 = H2M3C4OOH : 	KRO2HO2*0.706 	;
+{716.} 	 H2M3C4O2 + NO = H2M3C4NO3 : 	KRO2NO*0.033 	;
+{717.} 	 H2M3C4O2 + NO = H2M3C4O + NO2 : 	KRO2NO*0.967 	;
+{718.} 	 H2M3C4O2 + NO3 = H2M3C4O + NO2 : 	KRO2NO3 	;
+{719.} 	 H2M3C4O2 = H2M3C4O : 	1.30D-12*0.6*RO2 	;
+{720.} 	 H2M3C4O2 = HO13M2C4 : 	1.30D-12*0.2*RO2 	;
+{721.} 	 H2M3C4O2 = HO2C43CHO : 	1.30D-12*0.2*RO2 	;
+{722.} 	 ME2BUOLO2 + HO2 = ME2BUOLOOH : 	KRO2HO2*0.706 	;
+{723.} 	 ME2BUOLO2 + NO = ME2BUOLNO3 : 	KRO2NO*0.019 	;
+{724.} 	 ME2BUOLO2 + NO = ME2BUOLO + NO2 : 	KRO2NO*0.981 	;
+{725.} 	 ME2BUOLO2 + NO3 = ME2BUOLO + NO2 : 	KRO2NO3 	;
+{726.} 	 ME2BUOLO2 = C4ME3HO23 : 	9.20D-14*0.3*RO2 	;
+{727.} 	 ME2BUOLO2 = ME2BUOLO : 	9.20D-14*0.7*RO2 	;
+{728.} 	 CYHEXOLAO2 + HO2 = CYHXOLAOOH : 	KRO2HO2*0.770 	;
+{729.} 	 CYHEXOLAO2 + NO = CYHEXOLAO + NO2 : 	KRO2NO*0.938 	;
+{730.} 	 CYHEXOLAO2 + NO = CYHXOLANO3 : 	KRO2NO*0.062 	;
+{731.} 	 CYHEXOLAO2 + NO3 = CYHEXOLAO + NO2 : 	KRO2NO3 	;
+{732.} 	 CYHEXOLAO2 = CYHEXOLAO : 	8.80D-13*0.6*RO2 	;
+{733.} 	 CYHEXOLAO2 = CYHXDIOLA : 	8.80D-13*0.2*RO2 	;
+{734.} 	 CYHEXOLAO2 = CYHXOLACO : 	8.80D-13*0.2*RO2 	;
+{735.} 	 MIBKAOHAO2 + HO2 = MIBKOHAOOH : 	KRO2HO2*0.770 	;
+{736.} 	 MIBKAOHAO2 + NO = MIBKAOHAO + NO2 : 	KRO2NO 	;
+{737.} 	 MIBKAOHAO2 + NO3 = MIBKAOHAO + NO2 : 	KRO2NO3 	;
+{738.} 	 MIBKAOHAO2 = MIBKAOH3CO : 	8.80D-13*0.2*RO2 	;
+{739.} 	 MIBKAOHAO2 = MIBKAOHAO : 	8.80D-13*0.6*RO2 	;
+{740.} 	 MIBKAOHAO2 = MIBKOH34 : 	8.80D-13*0.2*RO2 	;
+{741.} 	 MIBKAOHBO2 + HO2 = MIBKOHBOOH : 	KRO2HO2*0.770 	;
+{742.} 	 MIBKAOHBO2 + NO = MIBKAOHBO + NO2 : 	KRO2NO*0.961 	;
+{743.} 	 MIBKAOHBO2 + NO = MIBKAOHNO3 : 	KRO2NO*0.039 	;
+{744.} 	 MIBKAOHBO2 + NO3 = MIBKAOHBO + NO2 : 	KRO2NO3 	;
+{745.} 	 MIBKAOHBO2 = C64OH : 	2.00D-12*0.2*RO2 	;
+{746.} 	 MIBKAOHBO2 = C65OH : 	2.00D-12*0.2*RO2 	;
+{747.} 	 MIBKAOHBO2 = MIBKAOHBO : 	2.00D-12*0.6*RO2 	;
+{748.} 	 MIBKHO4O2 + HO2 = MIBKHO4OOH : 	KRO2HO2*0.770 	;
+{749.} 	 MIBKHO4O2 + NO = MIBKHO4O + NO2 : 	KRO2NO 	;
+{750.} 	 MIBKHO4O2 + NO3 = MIBKHO4O + NO2 : 	KRO2NO3 	;
+{751.} 	 MIBKHO4O2 = MIBKHO14 : 	2.00D-12*0.2*RO2 	;
+{752.} 	 MIBKHO4O2 = MIBKHO4CHO : 	2.00D-12*0.2*RO2 	;
+{753.} 	 MIBKHO4O2 = MIBKHO4O : 	2.00D-12*0.6*RO2 	;
+{754.} 	 CH3CO3 + HO2 = CH3CO2H + O3 : 	KAPHO2*0.15 	;
+{755.} 	 CH3CO3 + HO2 = CH3CO3H : 	KAPHO2*0.41 	;
+{756.} 	 CH3CO3 + HO2 = CH3O2 + OH : 	KAPHO2*0.44 	;
+{757.} 	 CH3CO3 + NO = NO2 + CH3O2 : 	7.5D-12*EXP(290/TEMP) 	;
+{758.} 	 CH3CO3 + NO2 = PAN : 	KFPAN 	;
+{759.} 	 CH3CO3 + NO3 = NO2 + CH3O2 : 	4.0D-12 	;
+{760.} 	 CH3CO3 = CH3CO2H : 	2*(K298CH3O2*2.9D-12*EXP(500/TEMP))**0.5*RO2*0.3 	;
+{761.} 	 CH3CO3 = CH3O2 : 	2*(K298CH3O2*2.9D-12*EXP(500/TEMP))**0.5*RO2*0.7 	;
+{762.} 	 HOCH2CHO + NO3 = HOCH2CO3 + HNO3 : 	KNO3AL 	;
+{763.} 	 HOCH2CHO + OH = GLYOX + HO2 : 	1.00D-11*0.200 	;
+{764.} 	 HOCH2CHO + OH = HOCH2CO3 : 	1.00D-11*0.800 	;
+{765.} 	 HOCH2CHO = HO2 + HCHO + HO2 + CO : 	J(15) 	;
+{766.} 	 ACETOL + OH = MGLYOX + HO2 : 	1.6D-12*EXP(-305/TEMP) 	;
+{767.} 	 ACETOL = CH3CO3 + HCHO + HO2 : 	J(22) 	;
+{768.} 	 CH3CHOHCHO + NO3 = CH3CHOHCO3 + HNO3 : 	KNO3AL*2.4 	;
+{769.} 	 CH3CHOHCHO + OH = CH3CHOHCO3 : 	1.7D-11 	;
+{770.} 	 CH3CHOHCHO = CH3CHO + HO2 + CO + HO2 : 	J(17) 	;
+{771.} 	 NMBOAO2 + HO2 = NMBOAOOH : 	KRO2HO2*0.706 	;
+{772.} 	 NMBOAO2 + NO = NMBOAO + NO2 : 	KRO2NO 	;
+{773.} 	 NMBOAO2 + NO3 = NMBOAO + NO2 : 	KRO2NO3 	;
+{774.} 	 NMBOAO2 = C4MCONO3OH : 	8.8D-13*RO2*0.2 	;
+{775.} 	 NMBOAO2 = MBOBNO3 : 	8.8D-13*RO2*0.2 	;
+{776.} 	 NMBOAO2 = NMBOAO : 	8.8D-13*RO2*0.6 	;
+{777.} 	 NMBOBO2 + HO2 = NMBOBOOH : 	KRO2HO2*0.706 	;
+{778.} 	 NMBOBO2 + NO = NMBOBO + NO2 : 	KRO2NO 	;
+{779.} 	 NMBOBO2 + NO3 = NMBOBO + NO2 : 	KRO2NO3 	;
+{780.} 	 NMBOBO2 = MBOANO3 : 	1.3D-12*RO2*0.2 	;
+{781.} 	 NMBOBO2 = NMBOBCO : 	1.3D-12*RO2*0.2 	;
+{782.} 	 NMBOBO2 = NMBOBO : 	1.3D-12*RO2*0.6 	;
+{783.} 	 MBOOOA = CH3COCH3 + HO2 + CO + OH : 	KDEC*0.36 	;
+{784.} 	 MBOOOA = CH3COCH3 + HO2 + HO2 : 	KDEC*0.20 	;
+{785.} 	 MBOOOA = IPROPOL : 	KDEC*0.20 	;
+{786.} 	 MBOOOA = MBOOO : 	KDEC*0.24 	;
+{787.} 	 IBUTALOH + OH = IPRHOCO3 : 	1.4D-11 	;
+{788.} 	 IBUTALOH = CH3COCH3 + HO2 + HO2 + CO : 	J(17) 	;
+{789.} 	 CH2OOB = CH2OO : 	KDEC*0.24 	;
+{790.} 	 CH2OOB = CO : 	KDEC*0.40 	;
+{791.} 	 CH2OOB = HO2 + CO + OH : 	KDEC*0.36 	;
+{792.} 	 MBOAO2 + HO2 = MBOAOOH : 	KRO2HO2*0.706 	;
+{793.} 	 MBOAO2 + NO = MBOANO3 : 	KRO2NO*0.064 	;
+{794.} 	 MBOAO2 + NO = MBOAO + NO2 : 	KRO2NO*0.936 	;
+{795.} 	 MBOAO2 + NO3 = MBOAO + NO2 : 	KRO2NO3 	;
+{796.} 	 MBOAO2 = MBOACO : 	8.8D-13*RO2*0.2 	;
+{797.} 	 MBOAO2 = MBOAO : 	8.8D-13*RO2*0.6 	;
+{798.} 	 MBOAO2 = MBOAOH : 	8.8D-13*RO2*0.2 	;
+{799.} 	 MBOBO2 + HO2 = MBOBOOH : 	KRO2HO2*0.706 	;
+{800.} 	 MBOBO2 + NO = MBOBNO3 : 	KRO2NO*0.026 	;
+{801.} 	 MBOBO2 + NO = MBOBO + NO2 : 	KRO2NO*0.974 	;
+{802.} 	 MBOBO2 + NO3 = MBOBO + NO2 : 	KRO2NO3 	;
+{803.} 	 MBOBO2 = MBOAOH : 	2.0D-12*RO2*0.2 	;
+{804.} 	 MBOBO2 = MBOBCO : 	2.0D-12*RO2*0.2 	;
+{805.} 	 MBOBO2 = MBOBO : 	2.0D-12*RO2*0.6 	;
+{806.} 	 CH3O2 + HO2 = CH3OOH : 	3.8D-13*EXP(780/TEMP)*(1-1/(1+498*EXP(-1160/TEMP))) 	;
+{807.} 	 CH3O2 + HO2 = HCHO : 	3.8D-13*EXP(780/TEMP)*(1/(1+498*EXP(-1160/TEMP))) 	;
+{808.} 	 CH3O2 + NO = CH3NO3 : 	2.3D-12*EXP(360/TEMP)*0.001 	;
+{809.} 	 CH3O2 + NO = CH3O + NO2 : 	2.3D-12*EXP(360/TEMP)*0.999 	;
+{810.} 	 CH3O2 + NO2 = CH3O2NO2 : 	KMT13 	;
+{811.} 	 CH3O2 + NO3 = CH3O + NO2 : 	1.2D-12 	;
+{812.} 	 CH3O2 = CH3O : 	2*KCH3O2*RO2*7.18*EXP(-885/TEMP) 	;
+{813.} 	 CH3O2 = CH3OH : 	2*KCH3O2*RO2*0.5*(1-7.18*EXP(-885/TEMP)) 	;
+{814.} 	 CH3O2 = HCHO : 	2*KCH3O2*RO2*0.5*(1-7.18*EXP(-885/TEMP)) 	;
+{815.} 	 HCOCH2O2 + HO2 = HCOCH2OOH : 	KRO2HO2*0.387 	;
+{816.} 	 HCOCH2O2 + NO = NO2 + HCOCH2O : 	KRO2NO 	;
+{817.} 	 HCOCH2O2 + NO3 = HCOCH2O + NO2 : 	KRO2NO3 	;
+{818.} 	 HCOCH2O2 = GLYOX : 	2.00D-12*0.2*RO2 	;
+{819.} 	 HCOCH2O2 = HCOCH2O : 	2.00D-12*0.6*RO2 	;
+{820.} 	 HCOCH2O2 = HOCH2CHO : 	2.00D-12*0.2*RO2 	;
+{821.} 	 C2H5CO3 + HO2 = C2H5O2 + OH : 	KAPHO2*0.44 	;
+{822.} 	 C2H5CO3 + HO2 = PERPROACID : 	KAPHO2*0.41 	;
+{823.} 	 C2H5CO3 + HO2 = PROPACID + O3 : 	KAPHO2*0.15 	;
+{824.} 	 C2H5CO3 + NO = NO2 + C2H5O2 : 	6.7D-12*EXP(340/TEMP) 	;
+{825.} 	 C2H5CO3 + NO2 = PPN : 	KFPAN 	;
+{826.} 	 C2H5CO3 + NO3 = C2H5O2 + NO2 : 	KRO2NO3*1.74 	;
+{827.} 	 C2H5CO3 = C2H5O2 : 	1.00D-11*0.7*RO2 	;
+{828.} 	 C2H5CO3 = PROPACID : 	1.00D-11*0.3*RO2 	;
+{829.} 	 C2H5O2 + HO2 = C2H5OOH : 	4.3D-13*EXP(870/TEMP) 	;
+{830.} 	 C2H5O2 + NO = C2H5NO3 : 	2.55D-12*EXP(380/TEMP)*0.009 	;
+{831.} 	 C2H5O2 + NO = C2H5O + NO2 : 	2.55D-12*EXP(380/TEMP)*0.991 	;
+{832.} 	 C2H5O2 + NO3 = C2H5O + NO2 : 	KRO2NO3 	;
+{833.} 	 C2H5O2 = C2H5O : 	2*(KCH3O2*6.4D-14*(TEMP/300)**0*EXP(0/TEMP))**0.5*RO2*0.6 	;
+{834.} 	 C2H5O2 = C2H5OH : 	2*(KCH3O2*6.4D-14*(TEMP/300)**0*EXP(0/TEMP))**0.5*RO2*0.2 	;
+{835.} 	 C2H5O2 = CH3CHO : 	2*(KCH3O2*6.4D-14*(TEMP/300)**0*EXP(0/TEMP))**0.5*RO2*0.2 	;
+{836.} 	 C3H7CO3 + HO2 = BUTACID + O3 : 	KAPHO2*0.15 	;
+{837.} 	 C3H7CO3 + HO2 = NC3H7O2 + OH : 	KAPHO2*0.44 	;
+{838.} 	 C3H7CO3 + HO2 = PERBUACID : 	KAPHO2*0.41 	;
+{839.} 	 C3H7CO3 + NO = NO2 + NC3H7O2 : 	KAPNO 	;
+{840.} 	 C3H7CO3 + NO2 = PBN : 	KFPAN 	;
+{841.} 	 C3H7CO3 + NO3 = NC3H7O2 + NO2 : 	KRO2NO3*1.74 	;
+{842.} 	 C3H7CO3 = BUTACID : 	1.00D-11*0.3*RO2 	;
+{843.} 	 C3H7CO3 = NC3H7O2 : 	1.00D-11*0.7*RO2 	;
+{844.} 	 BUTALO2 + HO2 = BUTALO2H : 	KRO2HO2*0.625 	;
+{845.} 	 BUTALO2 + NO = BUTALNO3 : 	KRO2NO*0.083 	;
+{846.} 	 BUTALO2 + NO = BUTALO + NO2 : 	KRO2NO*0.917 	;
+{847.} 	 BUTALO2 + NO3 = BUTALO + NO2 : 	KRO2NO3 	;
+{848.} 	 BUTALO2 = BUTALO : 	2.50D-13*0.6*RO2 	;
+{849.} 	 BUTALO2 = CO2C3CHO : 	2.50D-13*0.2*RO2 	;
+{850.} 	 BUTALO2 = HO2C3CHO : 	2.50D-13*0.2*RO2 	;
+{851.} 	 NC3H7O2 + HO2 = NC3H7OOH : 	KRO2HO2*0.520 	;
+{852.} 	 NC3H7O2 + NO = NC3H7NO3 : 	2.9D-12*EXP(350/TEMP)*0.020 	;
+{853.} 	 NC3H7O2 + NO = NC3H7O + NO2 : 	2.9D-12*EXP(350/TEMP)*0.980 	;
+{854.} 	 NC3H7O2 + NO3 = NC3H7O + NO2 : 	KRO2NO3 	;
+{855.} 	 NC3H7O2 = C2H5CHO : 	2*(K298CH3O2*3D-13)**0.5*RO2*0.2 	;
+{856.} 	 NC3H7O2 = NC3H7O : 	2*(K298CH3O2*3D-13)**0.5*RO2*0.6 	;
+{857.} 	 NC3H7O2 = NPROPOL : 	2*(K298CH3O2*3D-13)**0.5*RO2*0.2 	;
+{858.} 	 IPRCO3 + HO2 = IBUTACID + O3 : 	KAPHO2*0.15 	;
+{859.} 	 IPRCO3 + HO2 = IC3H7O2 + OH : 	KAPHO2*0.44 	;
+{860.} 	 IPRCO3 + HO2 = PERIBUACID : 	KAPHO2*0.41 	;
+{861.} 	 IPRCO3 + NO = IC3H7O2 + NO2 : 	KAPNO 	;
+{862.} 	 IPRCO3 + NO2 = PIPN : 	KFPAN 	;
+{863.} 	 IPRCO3 + NO3 = IC3H7O2 + NO2 : 	KRO2NO3*1.74 	;
+{864.} 	 IPRCO3 = IBUTACID : 	1.00D-11*0.3*RO2 	;
+{865.} 	 IPRCO3 = IC3H7O2 : 	1.00D-11*0.7*RO2 	;
+{866.} 	 IBUTALBO2 + HO2 = IBUTALBO2H : 	KRO2HO2*0.625 	;
+{867.} 	 IBUTALBO2 + NO = IBUALANO3 : 	KRO2NO*0.033 	;
+{868.} 	 IBUTALBO2 + NO = IBUTALBO + NO2 : 	KRO2NO*0.967 	;
+{869.} 	 IBUTALBO2 + NO3 = IBUTALBO + NO2 : 	KRO2NO3 	;
+{870.} 	 IBUTALBO2 = HOIPRCHO : 	1.30D-12*0.2*RO2 	;
+{871.} 	 IBUTALBO2 = IBUTALBO : 	1.30D-12*0.6*RO2 	;
+{872.} 	 IBUTALBO2 = IBUTDIAL : 	1.30D-12*0.2*RO2 	;
+{873.} 	 IBUTALCO2 + HO2 = IBUTALO2H : 	KRO2HO2*0.625 	;
+{874.} 	 IBUTALCO2 + NO = M2PROPAL2O + NO2 : 	KRO2NO 	;
+{875.} 	 IBUTALCO2 + NO3 = M2PROPAL2O + NO2 : 	KRO2NO3 	;
+{876.} 	 IBUTALCO2 = IBUTALOH : 	9.20D-14*0.3*RO2 	;
+{877.} 	 IBUTALCO2 = M2PROPAL2O : 	9.20D-14*0.7*RO2 	;
+{878.} 	 IC3H7O2 + HO2 = IC3H7OOH : 	KRO2HO2*0.520 	;
+{879.} 	 IC3H7O2 + NO = IC3H7NO3 : 	2.7D-12*EXP(360/TEMP)*0.042 	;
+{880.} 	 IC3H7O2 + NO = IC3H7O + NO2 : 	2.7D-12*EXP(360/TEMP)*0.958 	;
+{881.} 	 IC3H7O2 + NO3 = IC3H7O + NO2 : 	KRO2NO3 	;
+{882.} 	 IC3H7O2 = CH3COCH3 : 	2*(KCH3O2*1.6D-12*EXP(-2200/TEMP))**0.5*RO2*0.2 	;
+{883.} 	 IC3H7O2 = IC3H7O : 	2*(KCH3O2*1.6D-12*EXP(-2200/TEMP))**0.5*RO2*0.6 	;
+{884.} 	 IC3H7O2 = IPROPOL : 	2*(KCH3O2*1.6D-12*EXP(-2200/TEMP))**0.5*RO2*0.2 	;
+{885.} 	 C4H9CO3 + HO2 = NC4H9O2 + OH : 	KAPHO2*0.44 	;
+{886.} 	 C4H9CO3 + HO2 = PENTACID + O3 : 	KAPHO2*0.15 	;
+{887.} 	 C4H9CO3 + HO2 = PERPENACID : 	KAPHO2*0.41 	;
+{888.} 	 C4H9CO3 + NO = NC4H9O2 + NO2 : 	KAPNO 	;
+{889.} 	 C4H9CO3 + NO2 = PPEN : 	KFPAN 	;
+{890.} 	 C4H9CO3 + NO3 = NC4H9O2 + NO2 : 	KRO2NO3*1.74 	;
+{891.} 	 C4H9CO3 = NC4H9O2 : 	1.00D-11*0.7*RO2 	;
+{892.} 	 C4H9CO3 = PENTACID : 	1.00D-11*0.3*RO2 	;
+{893.} 	 C4CHOBO2 + HO2 = C4CHOBOOH : 	KRO2HO2*0.706 	;
+{894.} 	 C4CHOBO2 + NO = C4CHOBNO3 : 	KRO2NO*0.129 	;
+{895.} 	 C4CHOBO2 + NO = C4CHOBO + NO2 : 	KRO2NO*0.871 	;
+{896.} 	 C4CHOBO2 + NO3 = C4CHOBO + NO2 : 	KRO2NO3 	;
+{897.} 	 C4CHOBO2 = C4CHOBO : 	2.00D-12*0.6*RO2 	;
+{898.} 	 C4CHOBO2 = CO3C4CHO : 	2.00D-12*0.2*RO2 	;
+{899.} 	 C4CHOBO2 = HO3C4CHO : 	2.00D-12*0.2*RO2 	;
+{900.} 	 NC4H9O2 + HO2 = NC4H9OOH : 	KRO2HO2*0.625 	;
+{901.} 	 NC4H9O2 + NO = NC4H9NO3 : 	KRO2NO*0.033 	;
+{902.} 	 NC4H9O2 + NO = NC4H9O + NO2 : 	KRO2NO*0.967 	;
+{903.} 	 NC4H9O2 + NO3 = NC4H9O + NO2 : 	KRO2NO3 	;
+{904.} 	 NC4H9O2 = C3H7CHO : 	1.30D-12*0.2*RO2 	;
+{905.} 	 NC4H9O2 = NBUTOL : 	1.30D-12*0.2*RO2 	;
+{906.} 	 NC4H9O2 = NC4H9O : 	1.30D-12*0.6*RO2 	;
+{907.} 	 ACO3 + HO2 = ACO2H + O3 : 	KAPHO2*0.15 	;
+{908.} 	 ACO3 + HO2 = ACO3H : 	KAPHO2*0.41 	;
+{909.} 	 ACO3 + HO2 = HO2 + CO + HCHO + OH : 	KAPHO2*0.44 	;
+{910.} 	 ACO3 + NO = HO2 + CO + HCHO + NO2 : 	KAPNO 	;
+{911.} 	 ACO3 + NO2 = ACRPAN : 	KFPAN 	;
+{912.} 	 ACO3 + NO3 = HO2 + CO + HCHO + NO2 : 	KRO2NO3*1.74 	;
+{913.} 	 ACO3 = ACO2H : 	1.00D-11*0.3*RO2 	;
+{914.} 	 ACO3 = HO2 + CO + HCHO : 	1.00D-11*0.7*RO2 	;
+{915.} 	 ACO3B + HO2 = HOCHOCOOH : 	KRO2HO2*0.52 	;
+{916.} 	 ACO3B + NO = CHOCOHCO + NO2 : 	KRO2NO 	;
+{917.} 	 ACO3B + NO3 = CHOCOHCO + NO2 : 	KRO2NO3 	;
+{918.} 	 ACO3B = CHOCOHCO : 	8.8D-13*RO2*0.6 	;
+{919.} 	 ACO3B = HOCH2COCHO : 	8.8D-13*RO2*0.2 	;
+{920.} 	 ACO3B = OCCOHCOH : 	8.8D-13*RO2*0.2 	;
+{921.} 	 OCCOHCO2 + HO2 = C32OH13CO + O3 : 	0.4*0.52*KRO2HO2 	;
+{922.} 	 OCCOHCO2 + HO2 = OCCOHCOOH : 	0.6*0.52*KRO2HO2 	;
+{923.} 	 OCCOHCO2 + NO = C42AOH : 	0.05*KRO2NO 	;
+{924.} 	 OCCOHCO2 + NO = OCCOHCO + NO2 : 	0.95*KRO2NO 	;
+{925.} 	 OCCOHCO2 + NO3 = C42AOH + NO2 : 	KRO2NO3 	;
+{926.} 	 OCCOHCO2 = C32OH13CO : 	2.0D-12*RO2*0.2 	;
+{927.} 	 OCCOHCO2 = OCCOHCO : 	2.0D-12*RO2*0.6 	;
+{928.} 	 OCCOHCO2 = OCCOHCOH : 	2.0D-12*RO2*0.2 	;
+{929.} 	 GLYOX = CO + CO + H2 : 	J(31) 	;
+{930.} 	 GLYOX = CO + CO + HO2 + HO2 : 	J(33) 	;
+{931.} 	 GLYOX = HCHO + CO : 	J(32) 	;
+{932.} 	 NO3 + GLYOX = CO + CO + HO2 + HNO3 : 	KNO3AL*0.6 	;
+{933.} 	 NO3 + GLYOX = HCOCO3 + HNO3 : 	KNO3AL*0.4 	;
+{934.} 	 OH + GLYOX = CO + CO + HO2 : 	3.1D-12*EXP(340/TEMP)*0.6 	;
+{935.} 	 OH + GLYOX = HCOCO3 : 	3.1D-12*EXP(340/TEMP)*0.4 	;
+{936.} 	 GLYOOB = GLYOO : 	KDEC*0.24 	;
+{937.} 	 GLYOOB = HCHO : 	KDEC*0.20 	;
+{938.} 	 GLYOOB = HO2 + HO2 + CO : 	KDEC*0.20 	;
+{939.} 	 GLYOOB = OH + CO + CO + HO2 : 	KDEC*0.36 	;
+{940.} 	 CH3C2H2O2 = CH3CO3 + HCHO : 	KDEC*0.35 	;
+{941.} 	 CH3C2H2O2 = HCHO + CH3O2 + CO : 	KDEC*0.65 	;
+{942.} 	 MACO3 + HO2 = CH3C2H2O2 + OH : 	KAPHO2*0.44 	;
+{943.} 	 MACO3 + HO2 = MACO2H + O3 : 	KAPHO2*0.15 	;
+{944.} 	 MACO3 + HO2 = MACO3H : 	KAPHO2*0.41 	;
+{945.} 	 MACO3 + NO = CH3C2H2O2 + NO2 : 	8.70D-12*EXP(290/TEMP) 	;
+{946.} 	 MACO3 + NO2 = MPAN : 	KFPAN 	;
+{947.} 	 MACO3 + NO3 = CH3C2H2O2 + NO2 : 	KRO2NO3*1.74 	;
+{948.} 	 MACO3 = CH3C2H2O2 : 	1.00D-11*0.7*RO2 	;
+{949.} 	 MACO3 = MACO2H : 	1.00D-11*0.3*RO2 	;
+{950.} 	 MGLYOOB = MGLYOO : 	KDEC*0.18 	;
+{951.} 	 MGLYOOB = OH + CO + CH3CO3 : 	KDEC*0.82 	;
+{952.} 	 MGLYOX = CH3CO3 + CO + HO2 : 	J(34) 	;
+{953.} 	 NO3 + MGLYOX = CH3CO3 + CO + HNO3 : 	KNO3AL*2.4 	;
+{954.} 	 OH + MGLYOX = CH3CO3 + CO : 	1.9D-12*EXP(575/TEMP) 	;
+{955.} 	 CH2OOG = CH2OO : 	KDEC*0.37 	;
+{956.} 	 CH2OOG = CO : 	KDEC*0.47 	;
+{957.} 	 CH2OOG = HO2 + CO + OH : 	KDEC*0.16 	;
+{958.} 	 MACRO2 + HO2 = MACROOH : 	KRO2HO2*0.625 	;
+{959.} 	 MACRO2 + NO = MACRO + NO2 : 	KRO2NO 	;
+{960.} 	 MACRO2 + NO3 = MACRO + NO2 : 	KRO2NO3 	;
+{961.} 	 MACRO2 = MACRO : 	9.20D-14*0.7*RO2 	;
+{962.} 	 MACRO2 = MACROH : 	9.20D-14*0.3*RO2 	;
+{963.} 	 MACROHO2 + HO2 = MACROHOOH : 	KRO2HO2*0.625 	;
+{964.} 	 MACROHO2 + NO = MACROHNO3 : 	KRO2NO*0.017 	;
+{965.} 	 MACROHO2 + NO = MACROHO + NO2 : 	KRO2NO*0.983 	;
+{966.} 	 MACROHO2 + NO3 = MACROHO + NO2 : 	KRO2NO3 	;
+{967.} 	 MACROHO2 = C3MDIALOH : 	1.4D-12*0.2*RO2 	;
+{968.} 	 MACROHO2 = MACROH : 	1.4D-12*0.2*RO2 	;
+{969.} 	 MACROHO2 = MACROHO : 	1.4D-12*0.6*RO2 	;
+{970.} 	 C3DBCO3 + HO2 = C3DBCO3H : 	KAPHO2*0.41 	;
+{971.} 	 C3DBCO3 + HO2 = C3H5CO2H + O3 : 	KAPHO2*0.15 	;
+{972.} 	 C3DBCO3 + HO2 = CH3CHO + HO2 + CO + OH : 	KAPHO2*0.44 	;
+{973.} 	 C3DBCO3 + NO = CH3CHO + HO2 + CO + NO2 : 	KAPNO 	;
+{974.} 	 C3DBCO3 + NO2 = C3DBPAN : 	KFPAN 	;
+{975.} 	 C3DBCO3 + NO3 = CH3CHO + HO2 + CO + NO2 : 	KRO2NO3*1.74 	;
+{976.} 	 C3DBCO3 = C3H5CO2H : 	1.00D-11*RO2*0.3 	;
+{977.} 	 C3DBCO3=CH3CHO + HO2 + CO : 	1.00D-11*RO2*0.7 	;
+{978.} 	 C4CONO3O2 + HO2 = C4CONO3OOH : 	KRO2HO2*0.625 	;
+{979.} 	 C4CONO3O2 + NO = C4CONO3O + NO2 : 	KRO2NO 	;
+{980.} 	 C4CONO3O2 + NO3 = C4CONO3O + NO2 : 	KRO2NO3 	;
+{981.} 	 C4CONO3O2 = C4CONO3CO : 	8.80D-13*RO2*0.2 	;
+{982.} 	 C4CONO3O2 = C4CONO3O : 	8.80D-13*RO2*0.6 	;
+{983.} 	 C4CONO3O2 = COCCOHNO3 : 	8.80D-13*RO2*0.2 	;
+{984.} 	 C4NO3COO2 + HO2 = C4NO3COOOH : 	KRO2HO2*0.625 	;
+{985.} 	 C4NO3COO2 + NO = C4NO3OCO + NO2 : 	KRO2NO 	;
+{986.} 	 C4NO3COO2 + NO3 = C4NO3OCO + NO2 : 	KRO2NO3 	;
+{987.} 	 C4NO3COO2 = C4CONO3CO : 	8.80D-13*RO2*0.2 	;
+{988.} 	 C4NO3COO2 = C4NO3OCO : 	8.80D-13*RO2*0.6 	;
+{989.} 	 C4NO3COO2 = C4OCCOHNO3 : 	8.80D-13*RO2*0.2 	;
+{990.} 	 CH3CHOOB = CH3CHOO : 	KDEC*0.18 	;
+{991.} 	 CH3CHOOB = CH3O2 + CO + OH : 	KDEC*0.57 	;
+{992.} 	 CH3CHOOB = CH3O2 + HO2 : 	KDEC*0.125 	;
+{993.} 	 CH3CHOOB = CH4 : 	KDEC*0.125 	;
+{994.} 	 C4OCCOHCO2 + HO2 = C4OCCOHOOH : 	KRO2HO2*0.625 	;
+{995.} 	 C4OCCOHCO2 + NO = C4OCCOHCO + NO2 : 	KRO2NO*0.957 	;
+{996.} 	 C4OCCOHCO2 + NO = C4OCCOHNO3 : 	KRO2NO*0.043 	;
+{997.} 	 C4OCCOHCO2 + NO3 = C4OCCOHCO + NO2 : 	KRO2NO3 	;
+{998.} 	 C4OCCOHCO2 = C4OCCOHCO : 	8.80D-13*RO2*0.60 	;
+{999.} 	 C4OCCOHCO2 = C4OCCOHCOH : 	8.80D-13*RO2*0.20 	;
+{1000.} 	 C4OCCOHCO2 = CO2H3CHO : 	8.80D-13*RO2*0.20 	;
+{1001.} 	 COCCOH2CO2 + HO2 = COCCOHCOOH : 	KRO2HO2*0.625 	;
+{1002.} 	 COCCOH2CO2 + NO = COCCOHCO + NO2 : 	KRO2NO 	;
+{1003.} 	 COCCOH2CO2 + NO3 = COCCOHCO + NO2 : 	KRO2NO3 	;
+{1004.} 	 COCCOH2CO2 = C4OCCOHCOH : 	0.2*8.8E-13*RO2 	;
+{1005.} 	 COCCOH2CO2 = CCOCOCOH : 	0.2*8.8E-13*RO2 	;
+{1006.} 	 COCCOH2CO2 = COCCOHCO : 	0.6*8.8E-13*RO2 	;
+{1007.} 	 SC4H9O2 + HO2 = SC4H9OOH : 	KRO2HO2*0.625 	;
+{1008.} 	 SC4H9O2 + NO = SC4H9NO3 : 	KRO2NO*0.090 	;
+{1009.} 	 SC4H9O2 + NO = SC4H9O + NO2 : 	KRO2NO*0.910 	;
+{1010.} 	 SC4H9O2 + NO3 = SC4H9O + NO2 : 	KRO2NO3 	;
+{1011.} 	 SC4H9O2 = BUT2OL : 	2.50D-13*0.2*RO2 	;
+{1012.} 	 SC4H9O2 = MEK : 	2.50D-13*0.2*RO2 	;
+{1013.} 	 SC4H9O2 = SC4H9O : 	2.50D-13*0.6*RO2 	;
+{1014.} 	 IC4H9O2 + HO2 = IC4H9OOH : 	KRO2HO2*0.625 	;
+{1015.} 	 IC4H9O2 + NO = IC4H9NO3 : 	KRO2NO*0.033 	;
+{1016.} 	 IC4H9O2 + NO = IC4H9O + NO2 : 	KRO2NO*0.967 	;
+{1017.} 	 IC4H9O2 + NO3 = IC4H9O + NO2 : 	KRO2NO3 	;
+{1018.} 	 IC4H9O2 = IBUTOL : 	1.30D-12*0.2*RO2 	;
+{1019.} 	 IC4H9O2 = IC4H9O : 	1.30D-12*0.6*RO2 	;
+{1020.} 	 IC4H9O2 = IPRCHO : 	1.30D-12*0.2*RO2 	;
+{1021.} 	 TC4H9O2 + HO2 = TC4H9OOH : 	KRO2HO2*0.625 	;
+{1022.} 	 TC4H9O2 + NO = TC4H9NO3 : 	KRO2NO*0.025 	;
+{1023.} 	 TC4H9O2 + NO = TC4H9O + NO2 : 	KRO2NO*0.975 	;
+{1024.} 	 TC4H9O2 + NO3 = TC4H9O + NO2 : 	KRO2NO3 	;
+{1025.} 	 TC4H9O2 = TBUTOL : 	6.70D-15*0.3*RO2 	;
+{1026.} 	 TC4H9O2 = TC4H9O : 	6.70D-15*0.7*RO2 	;
+{1027.} 	 PEAO2 + HO2 = PEAOOH : 	KRO2HO2*0.706 	;
+{1028.} 	 PEAO2 + NO = PEANO3 : 	KRO2NO*0.052 	;
+{1029.} 	 PEAO2 + NO = PEAO + NO2 : 	KRO2NO*0.948 	;
+{1030.} 	 PEAO2 + NO3 = PEAO + NO2 : 	KRO2NO3 	;
+{1031.} 	 PEAO2 = C4H9CHO : 	1.30D-12*0.2*RO2 	;
+{1032.} 	 PEAO2 = PEAO : 	1.30D-12*0.6*RO2 	;
+{1033.} 	 PEAO2 = PEAOH : 	1.30D-12*0.2*RO2 	;
+{1034.} 	 PEBO2 + HO2 = PEBOOH : 	KRO2HO2*0.706 	;
+{1035.} 	 PEBO2 + NO = PEBNO3 : 	KRO2NO*0.129 	;
+{1036.} 	 PEBO2 + NO = PEBO + NO2 : 	KRO2NO*0.871 	;
+{1037.} 	 PEBO2 + NO3 = PEBO + NO2 : 	KRO2NO3 	;
+{1038.} 	 PEBO2 = MPRK : 	2.50D-13*0.2*RO2 	;
+{1039.} 	 PEBO2 = PEBO : 	2.50D-13*0.6*RO2 	;
+{1040.} 	 PEBO2 = PEBOH : 	2.50D-13*0.2*RO2 	;
+{1041.} 	 PECO2 + HO2 = PECOOH : 	KRO2HO2*0.706 	;
+{1042.} 	 PECO2 + NO = PECNO3 : 	KRO2NO*0.131 	;
+{1043.} 	 PECO2 + NO = PECO + NO2 : 	KRO2NO*0.869 	;
+{1044.} 	 PECO2 + NO3 = PECO + NO2 : 	KRO2NO3 	;
+{1045.} 	 PECO2 = DIEK : 	2.50D-13*0.2*RO2 	;
+{1046.} 	 PECO2 = PECO : 	2.50D-13*0.6*RO2 	;
+{1047.} 	 PECO2 = PECOH : 	2.50D-13*0.2*RO2 	;
+{1048.} 	 IPEAO2 + HO2 = IPEAOOH : 	KRO2HO2*0.706 	;
+{1049.} 	 IPEAO2 + NO = IPEANO3 : 	KRO2NO*0.052 	;
+{1050.} 	 IPEAO2 + NO = IPEAO + NO2 : 	KRO2NO*0.948 	;
+{1051.} 	 IPEAO2 + NO3 = IPEAO + NO2 : 	KRO2NO3 	;
+{1052.} 	 IPEAO2 = BUT2CHO : 	1.30D-12*0.2*RO2 	;
+{1053.} 	 IPEAO2 = IPEAO : 	1.30D-12*0.6*RO2 	;
+{1054.} 	 IPEAO2 = IPEAOH : 	1.30D-12*0.2*RO2 	;
+{1055.} 	 IPEBO2 + HO2 = IPEBOOH : 	KRO2HO2*0.706 	;
+{1056.} 	 IPEBO2 + NO = IPEBNO3 : 	KRO2NO*0.141 	;
+{1057.} 	 IPEBO2 + NO = IPEBO + NO2 : 	KRO2NO*0.859 	;
+{1058.} 	 IPEBO2 + NO3 = IPEBO + NO2 : 	KRO2NO3 	;
+{1059.} 	 IPEBO2 = IPEBO : 	2.50D-13*0.6*RO2 	;
+{1060.} 	 IPEBO2 = IPEBOH : 	2.50D-13*0.2*RO2 	;
+{1061.} 	 IPEBO2 = MIPK : 	2.50D-13*0.2*RO2 	;
+{1062.} 	 IPECO2 + HO2 = IPECOOH : 	KRO2HO2*0.706 	;
+{1063.} 	 IPECO2 + NO = IPECNO3 : 	KRO2NO*0.047 	;
+{1064.} 	 IPECO2 + NO = IPECO + NO2 : 	KRO2NO*0.953 	;
+{1065.} 	 IPECO2 + NO3 = IPECO + NO2 : 	KRO2NO3 	;
+{1066.} 	 IPECO2 = IPECO : 	6.70D-15*0.7*RO2 	;
+{1067.} 	 IPECO2 = IPECOH : 	6.70D-15*0.3*RO2 	;
+{1068.} 	 NEOPO2 + HO2 = NEOPOOH : 	1.43D-13*EXP(1380/TEMP) 	;
+{1069.} 	 NEOPO2 + NO = NEOPNO3 : 	KRO2NO*0.051 	;
+{1070.} 	 NEOPO2 + NO = NEOPO + NO2 : 	KRO2NO*0.949 	;
+{1071.} 	 NEOPO2 + NO3 = NEOPO + NO2 : 	KRO2NO3 	;
+{1072.} 	 NEOPO2 = IPECO : 	1.3D-12*0.6*RO2 	;
+{1073.} 	 NEOPO2 = NEOPOH : 	1.3D-12*0.2*RO2 	;
+{1074.} 	 NEOPO2 = TBUTCHO : 	1.3D-12*0.2*RO2 	;
+{1075.} 	 HEXAO2 + HO2 = HEXAOOH : 	KRO2HO2*0.770 	;
+{1076.} 	 HEXAO2 + NO = HEXANO3 : 	KRO2NO*0.078 	;
+{1077.} 	 HEXAO2 + NO = HEXAO + NO2 : 	KRO2NO*0.922 	;
+{1078.} 	 HEXAO2 + NO3 = HEXAO + NO2 : 	KRO2NO3 	;
+{1079.} 	 HEXAO2 = C5H11CHO : 	1.30D-12*0.2*RO2 	;
+{1080.} 	 HEXAO2 = HEXAO : 	1.30D-12*0.6*RO2 	;
+{1081.} 	 HEXAO2 = HEXAOH : 	1.30D-12*0.2*RO2 	;
+{1082.} 	 HEXBO2 + HO2 = HEXBOOH : 	KRO2HO2*0.770 	;
+{1083.} 	 HEXBO2 + NO = HEXBNO3 : 	KRO2NO*0.209 	;
+{1084.} 	 HEXBO2 + NO = HEXBO + NO2 : 	KRO2NO*0.791 	;
+{1085.} 	 HEXBO2 + NO3 = HEXBO + NO2 : 	KRO2NO3 	;
+{1086.} 	 HEXBO2 = HEX2ONE : 	2.50D-13*0.2*RO2 	;
+{1087.} 	 HEXBO2 = HEXBO : 	2.50D-13*0.6*RO2 	;
+{1088.} 	 HEXBO2 = HEXBOH : 	2.50D-13*0.2*RO2 	;
+{1089.} 	 HEXCO2 + HO2 = HEXCOOH : 	KRO2HO2*0.770 	;
+{1090.} 	 HEXCO2 + NO = HEXCNO3 : 	KRO2NO*0.230 	;
+{1091.} 	 HEXCO2 + NO = HEXCO + NO2 : 	KRO2NO*0.770 	;
+{1092.} 	 HEXCO2 + NO3 = HEXCO + NO2 : 	KRO2NO3 	;
+{1093.} 	 HEXCO2 = HEX3ONE : 	2.50D-13*0.2*RO2 	;
+{1094.} 	 HEXCO2 = HEXCO : 	2.50D-13*0.6*RO2 	;
+{1095.} 	 HEXCO2 = HEXCOH : 	2.50D-13*0.2*RO2 	;
+{1096.} 	 M2PEAO2 + HO2 = M2PEAOOH : 	KRO2HO2*0.770 	;
+{1097.} 	 M2PEAO2 + NO = M2PEANO3 : 	KRO2NO*0.078 	;
+{1098.} 	 M2PEAO2 + NO = M2PEAO + NO2 : 	KRO2NO*0.922 	;
+{1099.} 	 M2PEAO2 + NO3 = M2PEAO + NO2 : 	KRO2NO3 	;
+{1100.} 	 M2PEAO2 = C54CHO : 	1.30D-12*0.2*RO2 	;
+{1101.} 	 M2PEAO2 = M2PEAO : 	1.30D-12*0.6*RO2 	;
+{1102.} 	 M2PEAO2 = M2PEAOH : 	1.30D-12*0.2*RO2 	;
+{1103.} 	 M2PEBO2 + HO2 = M2PEBOOH : 	KRO2HO2*0.770 	;
+{1104.} 	 M2PEBO2 + NO = M2PEBNO3 : 	KRO2NO*0.190 	;
+{1105.} 	 M2PEBO2 + NO = M2PEBO + NO2 : 	KRO2NO*0.810 	;
+{1106.} 	 M2PEBO2 + NO3 = M2PEBO + NO2 : 	KRO2NO3 	;
+{1107.} 	 M2PEBO2 = M2PEBO : 	2.50D-13*0.6*RO2 	;
+{1108.} 	 M2PEBO2 = M2PEBOH : 	2.50D-13*0.2*RO2 	;
+{1109.} 	 M2PEBO2 = MIBK : 	2.50D-13*0.2*RO2 	;
+{1110.} 	 M2PECO2 + HO2 = M2PECOOH : 	KRO2HO2*0.770 	;
+{1111.} 	 M2PECO2 + NO = M2PECNO3 : 	KRO2NO*0.190 	;
+{1112.} 	 M2PECO2 + NO = M2PECO + NO2 : 	KRO2NO*0.810 	;
+{1113.} 	 M2PECO2 + NO3 = M2PECO + NO2 : 	KRO2NO3 	;
+{1114.} 	 M2PECO2 = EIPK : 	2.50D-13*0.2*RO2 	;
+{1115.} 	 M2PECO2 = M2PECO : 	2.50D-13*0.6*RO2 	;
+{1116.} 	 M2PECO2 = M2PECOH : 	2.50D-13*0.2*RO2 	;
+{1117.} 	 M2PEDO2 + HO2 = M2PEDOOH : 	KRO2HO2*0.770 	;
+{1118.} 	 M2PEDO2 + NO = M2PEDNO3 : 	KRO2NO*0.031 	;
+{1119.} 	 M2PEDO2 + NO = M2PEDO + NO2 : 	KRO2NO*0.969 	;
+{1120.} 	 M2PEDO2 + NO3 = M2PEDO + NO2 : 	KRO2NO3 	;
+{1121.} 	 M2PEDO2 = M2PEDO : 	6.70D-15*0.7*RO2 	;
+{1122.} 	 M2PEDO2 = M2PEDOH : 	6.70D-15*0.3*RO2 	;
+{1123.} 	 M3PEAO2 + HO2 = M3PEAOOH : 	KRO2HO2*0.770 	;
+{1124.} 	 M3PEAO2 + NO = M3PEANO3 : 	KRO2NO*0.078 	;
+{1125.} 	 M3PEAO2 + NO = M3PEAO + NO2 : 	KRO2NO*0.922 	;
+{1126.} 	 M3PEAO2 + NO3 = M3PEAO + NO2 : 	KRO2NO3 	;
+{1127.} 	 M3PEAO2 = M3C4CHO : 	1.30D-12*0.2*RO2 	;
+{1128.} 	 M3PEAO2 = M3PEAO : 	1.30D-12*0.6*RO2 	;
+{1129.} 	 M3PEAO2 = M3PEAOH : 	1.30D-12*0.2*RO2 	;
+{1130.} 	 M3PEBO2 + HO2 = M3PEBOOH : 	KRO2HO2*0.770 	;
+{1131.} 	 M3PEBO2 + NO = M3PEBNO3 : 	KRO2NO*0.178 	;
+{1132.} 	 M3PEBO2 + NO = M3PEBO + NO2 : 	KRO2NO*0.822 	;
+{1133.} 	 M3PEBO2 + NO3 = M3PEBO + NO2 : 	KRO2NO3 	;
+{1134.} 	 M3PEBO2 = M2BK : 	2.50D-13*0.2*RO2 	;
+{1135.} 	 M3PEBO2 = M3PEBO : 	2.50D-13*0.6*RO2 	;
+{1136.} 	 M3PEBO2 = M3PEBOH : 	2.50D-13*0.2*RO2 	;
+{1137.} 	 M3PECO2 + HO2 = M3PECOOH : 	KRO2HO2*0.770 	;
+{1138.} 	 M3PECO2 + NO = M3PECNO3 : 	KRO2NO*0.059 	;
+{1139.} 	 M3PECO2 + NO = M3PECO + NO2 : 	KRO2NO*0.941 	;
+{1140.} 	 M3PECO2 + NO3 = M3PECO + NO2 : 	KRO2NO3 	;
+{1141.} 	 M3PECO2 = M3PECO : 	6.70D-15*0.7*RO2 	;
+{1142.} 	 M3PECO2 = M3PECOH : 	6.70D-15*0.3*RO2 	;
+{1143.} 	 M22C43O2 + HO2 = M22C43OOH : 	KRO2HO2*0.770 	;
+{1144.} 	 M22C43O2 + NO = M22C43NO3 : 	KRO2NO*0.195 	;
+{1145.} 	 M22C43O2 + NO = M22C43O + NO2 : 	KRO2NO*0.805 	;
+{1146.} 	 M22C43O2 + NO3 = M22C43O + NO2 : 	KRO2NO3 	;
+{1147.} 	 M22C43O2 = M22C43O : 	2.50D-13*0.6*RO2 	;
+{1148.} 	 M22C43O2 = M22C43OH : 	2.50D-13*0.2*RO2 	;
+{1149.} 	 M22C43O2 = MTBK : 	2.50D-13*0.2*RO2 	;
+{1150.} 	 M22C4O2 + HO2 = M22C4OOH : 	KRO2HO2*0.770 	;
+{1151.} 	 M22C4O2 + NO = M22C4NO3 : 	KRO2NO*0.078 	;
+{1152.} 	 M22C4O2 + NO = M22C4O + NO2 : 	KRO2NO*0.922 	;
+{1153.} 	 M22C4O2 + NO3 = M22C4O + NO2 : 	KRO2NO3 	;
+{1154.} 	 M22C4O2 = M22C3CHO : 	1.30D-12*0.2*RO2 	;
+{1155.} 	 M22C4O2 = M22C4O : 	1.30D-12*0.6*RO2 	;
+{1156.} 	 M22C4O2 = M22C4OH : 	1.30D-12*0.2*RO2 	;
+{1157.} 	 M33C4O2 + HO2 = M33C4OOH : 	KRO2HO2*0.770 	;
+{1158.} 	 M33C4O2 + NO = M33C4NO3 : 	KRO2NO*0.078 	;
+{1159.} 	 M33C4O2 + NO = M33C4O + NO2 : 	KRO2NO*0.922 	;
+{1160.} 	 M33C4O2 + NO3 = M33C4O + NO2 : 	KRO2NO3 	;
+{1161.} 	 M33C4O2 = M33C3CHO : 	1.30D-12*0.2*RO2 	;
+{1162.} 	 M33C4O2 = M33C4O : 	1.30D-12*0.6*RO2 	;
+{1163.} 	 M33C4O2 = M33C4OH : 	1.30D-12*0.2*RO2 	;
+{1164.} 	 M23C43O2 + HO2 = M23C43OOH : 	KRO2HO2*0.770 	;
+{1165.} 	 M23C43O2 + NO = M23C43NO3 : 	KRO2NO*0.059 	;
+{1166.} 	 M23C43O2 + NO = M23C43O + NO2 : 	KRO2NO*0.941 	;
+{1167.} 	 M23C43O2 + NO3 = M23C43O + NO2 : 	KRO2NO3 	;
+{1168.} 	 M23C43O2 = M23C43O : 	6.70D-15*0.7*RO2 	;
+{1169.} 	 M23C43O2 = M23C43OH : 	6.70D-15*0.3*RO2 	;
+{1170.} 	 M23C4O2 + HO2 = M23C4OOH : 	KRO2HO2*0.770 	;
+{1171.} 	 M23C4O2 + NO = M23C4NO3 : 	KRO2NO*0.078 	;
+{1172.} 	 M23C4O2 + NO = M23C4O + NO2 : 	KRO2NO*0.922 	;
+{1173.} 	 M23C4O2 + NO3 = M23C4O + NO2 : 	KRO2NO3 	;
+{1174.} 	 M23C4O2 = M23C4O : 	1.30D-12*0.6*RO2 	;
+{1175.} 	 M23C4O2 = M23C4OH : 	1.30D-12*0.2*RO2 	;
+{1176.} 	 M23C4O2 = M2C43CHO : 	1.30D-12*0.2*RO2 	;
+{1177.} 	 HEPTO2 + HO2 = HEPTOOH : 	KRO2HO2*0.820 	;
+{1178.} 	 HEPTO2 + NO = HEPTNO3 : 	KRO2NO*0.278 	;
+{1179.} 	 HEPTO2 + NO = HEPTO + NO2 : 	KRO2NO*0.722 	;
+{1180.} 	 HEPTO2 + NO3 = HEPTO + NO2 : 	KRO2NO3 	;
+{1181.} 	 HEPTO2 = HEPT3ONE : 	2.50D-13*0.2*RO2 	;
+{1182.} 	 HEPTO2 = HEPTO : 	2.50D-13*0.6*RO2 	;
+{1183.} 	 HEPTO2 = HEPTOH : 	2.50D-13*0.2*RO2 	;
+{1184.} 	 M2HEXAO2 + HO2 = M2HEXAOOH : 	KRO2HO2*0.820 	;
+{1185.} 	 M2HEXAO2 + NO = M2HEXANO3 : 	KRO2NO*0.278 	;
+{1186.} 	 M2HEXAO2 + NO = M2HEXAO + NO2 : 	KRO2NO*0.722 	;
+{1187.} 	 M2HEXAO2 + NO3 = M2HEXAO + NO2 : 	KRO2NO3 	;
+{1188.} 	 M2HEXAO2 = M2CO5C6 : 	2.50D-13*0.2*RO2 	;
+{1189.} 	 M2HEXAO2 = M2HEXAO : 	2.50D-13*0.6*RO2 	;
+{1190.} 	 M2HEXAO2 = M2HEXAOH : 	2.50D-13*0.2*RO2 	;
+{1191.} 	 M2HEXBO2 + HO2 = M2HEXBOOH : 	KRO2HO2*0.820 	;
+{1192.} 	 M2HEXBO2 + NO = M2HEXBNO3 : 	KRO2NO*0.083 	;
+{1193.} 	 M2HEXBO2 + NO = M2HEXBO + NO2 : 	KRO2NO*0.917 	;
+{1194.} 	 M2HEXBO2 + NO3 = M2HEXBO + NO2 : 	KRO2NO3 	;
+{1195.} 	 M2HEXBO2 = M2HEXBO : 	6.70D-15*0.7*RO2 	;
+{1196.} 	 M2HEXBO2 = M2HEXBOH : 	6.70D-15*0.3*RO2 	;
+{1197.} 	 M3HEXAO2 + HO2 = M3HEXAOOH : 	KRO2HO2*0.820 	;
+{1198.} 	 M3HEXAO2 + NO = M3HEXANO3 : 	KRO2NO*0.278 	;
+{1199.} 	 M3HEXAO2 + NO = M3HEXAO + NO2 : 	KRO2NO*0.722 	;
+{1200.} 	 M3HEXAO2 + NO3 = M3HEXAO + NO2 : 	KRO2NO3 	;
+{1201.} 	 M3HEXAO2 = M3CO5C6 : 	2.50D-13*0.2*RO2 	;
+{1202.} 	 M3HEXAO2 = M3HEXAO : 	2.50D-13*0.6*RO2 	;
+{1203.} 	 M3HEXAO2 = M3HEXAOH : 	2.50D-13*0.2*RO2 	;
+{1204.} 	 M3HEXBO2 + HO2 = M3HEXBOOH : 	KRO2HO2*0.820 	;
+{1205.} 	 M3HEXBO2 + NO = M3HEXBNO3 : 	KRO2NO*0.083 	;
+{1206.} 	 M3HEXBO2 + NO = M3HEXBO + NO2 : 	KRO2NO*0.917 	;
+{1207.} 	 M3HEXBO2 + NO3 = M3HEXBO + NO2 : 	KRO2NO3 	;
+{1208.} 	 M3HEXBO2 = M3HEXBO : 	6.70D-15*0.7*RO2 	;
+{1209.} 	 M3HEXBO2 = M3HEXBOH : 	6.70D-15*0.3*RO2 	;
+{1210.} 	 OCTO2 + HO2 = OCTOOH : 	KRO2HO2*0.859 	;
+{1211.} 	 OCTO2 + NO = OCTNO3 : 	KRO2NO*0.346 	;
+{1212.} 	 OCTO2 + NO = OCTO + NO2 : 	KRO2NO*0.654 	;
+{1213.} 	 OCTO2 + NO3 = OCTO + NO2 : 	KRO2NO3 	;
+{1214.} 	 OCTO2 = OCT3ONE : 	2.50D-13*0.2*RO2 	;
+{1215.} 	 OCTO2 = OCTO : 	2.50D-13*0.6*RO2 	;
+{1216.} 	 OCTO2 = OCTOH : 	2.50D-13*0.2*RO2 	;
+{1217.} 	 NONO2 + HO2 = NONOOH : 	KRO2HO2*0.890 	;
+{1218.} 	 NONO2 + NO = NONNO3 : 	KRO2NO*0.393 	;
+{1219.} 	 NONO2 + NO = NONO + NO2 : 	KRO2NO*0.607 	;
+{1220.} 	 NONO2 + NO3 = NONO + NO2 : 	KRO2NO3 	;
+{1221.} 	 NONO2 = NON3ONE : 	2.50D-13*0.2*RO2 	;
+{1222.} 	 NONO2 = NONO : 	2.50D-13*0.6*RO2 	;
+{1223.} 	 NONO2 = NONOH : 	2.50D-13*0.2*RO2 	;
+{1224.} 	 DECO2 + HO2 = DECOOH : 	KRO2HO2*0.914 	;
+{1225.} 	 DECO2 + NO = DECNO3 : 	KRO2NO*0.417 	;
+{1226.} 	 DECO2 + NO = DECO + NO2 : 	KRO2NO*0.583 	;
+{1227.} 	 DECO2 + NO3 = DECO + NO2 : 	KRO2NO3 	;
+{1228.} 	 DECO2 = DEC3ONE : 	2.50D-13*0.2*RO2 	;
+{1229.} 	 DECO2 = DECO : 	2.50D-13*0.6*RO2 	;
+{1230.} 	 DECO2 = DECOH : 	2.50D-13*0.2*RO2 	;
+{1231.} 	 UDECO2 + HO2 = UDECOOH : 	KRO2HO2*0.932 	;
+{1232.} 	 UDECO2 + NO = UDECNO3 : 	KRO2NO*0.431 	;
+{1233.} 	 UDECO2 + NO = UDECO + NO2 : 	KRO2NO*0.569 	;
+{1234.} 	 UDECO2 + NO3 = UDECO + NO2 : 	KRO2NO3 	;
+{1235.} 	 UDECO2 = UDEC3ONE : 	2.50D-13*0.2*RO2 	;
+{1236.} 	 UDECO2 = UDECO : 	2.50D-13*0.6*RO2 	;
+{1237.} 	 UDECO2 = UDECOH : 	2.50D-13*0.2*RO2 	;
+{1238.} 	 DDECO2 + HO2 = DDECOOH : 	KRO2HO2*0.947 	;
+{1239.} 	 DDECO2 + NO = DDECNO3 : 	KRO2NO*0.440 	;
+{1240.} 	 DDECO2 + NO = DDECO + NO2 : 	KRO2NO*0.560 	;
+{1241.} 	 DDECO2 + NO3 = DDECO + NO2 : 	KRO2NO3 	;
+{1242.} 	 DDECO2 = DDEC3ONE : 	2.50D-13*0.2*RO2 	;
+{1243.} 	 DDECO2 = DDECO : 	2.50D-13*0.6*RO2 	;
+{1244.} 	 DDECO2 = DDECOH : 	2.50D-13*0.2*RO2 	;
+{1245.} 	 CHEXO2 + HO2 = CHEXOOH : 	KRO2HO2*0.770 	;
+{1246.} 	 CHEXO2 + NO = CHEXNO3 : 	KRO2NO*0.078 	;
+{1247.} 	 CHEXO2 + NO = CHEXO + NO2 : 	KRO2NO*0.922 	;
+{1248.} 	 CHEXO2 + NO3 = CHEXO + NO2 : 	KRO2NO3 	;
+{1249.} 	 CHEXO2 = CHEXO : 	2.50D-13*0.6*RO2 	;
+{1250.} 	 CHEXO2 = CYHEXOL : 	2.50D-13*0.2*RO2 	;
+{1251.} 	 CHEXO2 = CYHEXONE : 	2.50D-13*0.2*RO2 	;
+{1252.} 	 ETHENO3O2 + HO2 = ETHO2HNO3 : 	KRO2HO2*0.387 	;
+{1253.} 	 ETHENO3O2 + NO = ETHENO3O + NO2 : 	KRO2NO 	;
+{1254.} 	 ETHENO3O2 + NO3 = ETHENO3O + NO2 : 	KRO2NO3 	;
+{1255.} 	 ETHENO3O2 = ETHENO3O : 	6.00D-13*0.6*RO2 	;
+{1256.} 	 ETHENO3O2 = ETHOHNO3 : 	6.00D-13*0.2*RO2 	;
+{1257.} 	 ETHENO3O2 = NO3CH2CHO : 	6.00D-13*0.2*RO2 	;
+{1258.} 	 CH2OOA = CH2OO : 	KDEC*0.37 	;
+{1259.} 	 CH2OOA = CO : 	KDEC*0.50 	;
+{1260.} 	 CH2OOA = HO2 + CO + OH : 	KDEC*0.13 	;
+{1261.} 	 PRONO3AO2 + HO2 = PR1O2HNO3 : 	KRO2HO2*0.520 	;
+{1262.} 	 PRONO3AO2 + NO = PRONO3AO + NO2 : 	KRO2NO 	;
+{1263.} 	 PRONO3AO2 + NO3 = PRONO3AO + NO2 : 	KRO2NO3 	;
+{1264.} 	 PRONO3AO2 = CHOPRNO3 : 	6.00D-13*0.2*RO2 	;
+{1265.} 	 PRONO3AO2 = PRONO3AO : 	6.00D-13*0.6*RO2 	;
+{1266.} 	 PRONO3AO2 = PROPOLNO3 : 	6.00D-13*0.2*RO2 	;
+{1267.} 	 PRONO3BO2 + HO2 = PR2O2HNO3 : 	KRO2HO2*0.520 	;
+{1268.} 	 PRONO3BO2 + NO = PRONO3BO + NO2 : 	KRO2NO 	;
+{1269.} 	 PRONO3BO2 + NO3 = PRONO3BO + NO2 : 	KRO2NO3 	;
+{1270.} 	 PRONO3BO2 = NOA : 	4.00D-14*0.2*RO2 	;
+{1271.} 	 PRONO3BO2 = PROLNO3 : 	4.00D-14*0.2*RO2 	;
+{1272.} 	 PRONO3BO2 = PRONO3BO : 	4.00D-14*0.6*RO2 	;
+{1273.} 	 CH3CHOOA = CH3CHOO : 	KDEC*0.24 	;
+{1274.} 	 CH3CHOOA = CH3O2 + CO + OH : 	KDEC*0.36 	;
+{1275.} 	 CH3CHOOA = CH3O2 + HO2 : 	KDEC*0.20 	;
+{1276.} 	 CH3CHOOA = CH4 : 	KDEC*0.20 	;
+{1277.} 	 BU1ENO3O2 + HO2 = BU1ENO3OOH : 	KRO2HO2*0.625 	;
+{1278.} 	 BU1ENO3O2 + NO = BU1ENO3O + NO2 : 	KRO2NO 	;
+{1279.} 	 BU1ENO3O2 + NO3 = BU1ENO3O + NO2 : 	KRO2NO3 	;
+{1280.} 	 BU1ENO3O2 = BU1ENO3O : 	2.50D-13*0.6*RO2 	;
+{1281.} 	 BU1ENO3O2 = CO3C4NO3 : 	2.50D-13*0.2*RO2 	;
+{1282.} 	 BU1ENO3O2 = HO3C4NO3 : 	2.50D-13*0.2*RO2 	;
+{1283.} 	 C43NO34O2 + HO2 = C43NO34OOH : 	KRO2HO2*0.625 	;
+{1284.} 	 C43NO34O2 + NO = C43NO34O + NO2 : 	KRO2NO 	;
+{1285.} 	 C43NO34O2 + NO3 = C43NO34O + NO2 : 	KRO2NO3 	;
+{1286.} 	 C43NO34O2 = BUTAL2NO3 : 	2.00D-12*0.2*RO2 	;
+{1287.} 	 C43NO34O2 = C43NO34O : 	2.00D-12*0.6*RO2 	;
+{1288.} 	 C43NO34O2 = NBUTOLANO3 : 	2.00D-12*0.2*RO2 	;
+{1289.} 	 C2H5CHOOA = C2H5CHOO : 	KDEC*0.24 	;
+{1290.} 	 C2H5CHOOA = C2H5O2 + CO + OH : 	KDEC*0.36 	;
+{1291.} 	 C2H5CHOOA = C2H5O2 + HO2 : 	KDEC*0.20 	;
+{1292.} 	 C2H5CHOOA = C2H6 : 	KDEC*0.20 	;
+{1293.} 	 HO3C4O2 + HO2 = HO3C4OOH : 	KRO2HO2*0.625 	;
+{1294.} 	 HO3C4O2 + NO = HO3C4NO3 : 	KRO2NO*0.017 	;
+{1295.} 	 HO3C4O2 + NO = HO3C4O + NO2 : 	KRO2NO*0.983 	;
+{1296.} 	 HO3C4O2 + NO3 = HO3C4O + NO2 : 	KRO2NO3 	;
+{1297.} 	 HO3C4O2 = HO3C3CHO : 	2.00D-12*0.2*RO2 	;
+{1298.} 	 HO3C4O2 = HO3C4O : 	2.00D-12*0.6*RO2 	;
+{1299.} 	 HO3C4O2 = NBUTOLAOH : 	2.00D-12*0.2*RO2 	;
+{1300.} 	 C42NO33O2 + HO2 = C42NO33OOH : 	KRO2HO2*0.625 	;
+{1301.} 	 C42NO33O2 + NO = C42NO33O + NO2 : 	KRO2NO 	;
+{1302.} 	 C42NO33O2 + NO3 = C42NO33O + NO2 : 	KRO2NO3 	;
+{1303.} 	 C42NO33O2 = BUT2OLNO3 : 	2.50D-13*0.2*RO2 	;
+{1304.} 	 C42NO33O2 = BUTONENO3 : 	2.50D-13*0.2*RO2 	;
+{1305.} 	 C42NO33O2 = C42NO33O : 	2.50D-13*0.6*RO2 	;
+{1306.} 	 MPRANO3O2 + HO2 = MPRANO3OOH : 	KRO2HO2*0.625 	;
+{1307.} 	 MPRANO3O2 + NO = MPRANO3O + NO2 : 	KRO2NO 	;
+{1308.} 	 MPRANO3O2 + NO3 = MPRANO3O + NO2 : 	KRO2NO3 	;
+{1309.} 	 MPRANO3O2 = MPRANO3O : 	6.70D-15*0.7*RO2 	;
+{1310.} 	 MPRANO3O2 = TBUTOLNO3 : 	6.70D-15*0.3*RO2 	;
+{1311.} 	 MPRBNO3O2 + HO2 = MPRBNO3OOH : 	KRO2HO2*0.625 	;
+{1312.} 	 MPRBNO3O2 + NO = MPRBNO3O + NO2 : 	KRO2NO 	;
+{1313.} 	 MPRBNO3O2 + NO3 = MPRBNO3O + NO2 : 	KRO2NO3 	;
+{1314.} 	 MPRBNO3O2 = IBUTOLBNO3 : 	1.30D-12*0.2*RO2 	;
+{1315.} 	 MPRBNO3O2 = MPRBNO3CHO : 	1.30D-12*0.2*RO2 	;
+{1316.} 	 MPRBNO3O2 = MPRBNO3O : 	1.30D-12*0.6*RO2 	;
+{1317.} 	 CH2OOC = CH2OO : 	KDEC*0.18 	;
+{1318.} 	 CH2OOC = HO2 + CO + OH : 	KDEC*0.82 	;
+{1319.} 	 CH3CCH3OOA = CH3CCH3OO : 	KDEC*0.18 	;
+{1320.} 	 CH3CCH3OOA = CH3COCH2O2 + OH : 	KDEC*0.82 	;
+{1321.} 	 C51NO32O2 + HO2 = C51NO32OOH : 	KRO2HO2*0.706 	;
+{1322.} 	 C51NO32O2 + NO = C51NO32O + NO2 : 	KRO2NO 	;
+{1323.} 	 C51NO32O2 + NO3 = C51NO32O + NO2 : 	KRO2NO3 	;
+{1324.} 	 C51NO32O2 = C51NO32CO : 	2.50D-13*0.2*RO2 	;
+{1325.} 	 C51NO32O2 = C51NO32O : 	2.50D-13*0.6*RO2 	;
+{1326.} 	 C51NO32O2 = PE1ENEBNO3 : 	2.50D-13*0.2*RO2 	;
+{1327.} 	 C52NO31O2 + HO2 = C52NO31OOH : 	KRO2HO2*0.706 	;
+{1328.} 	 C52NO31O2 + NO = C52NO31O + NO2 : 	KRO2NO 	;
+{1329.} 	 C52NO31O2 + NO3 = C52NO31O + NO2 : 	KRO2NO3 	;
+{1330.} 	 C52NO31O2 = C52NO31CO : 	1.30D-12*0.2*RO2 	;
+{1331.} 	 C52NO31O2 = C52NO31O : 	1.30D-12*0.6*RO2 	;
+{1332.} 	 C52NO31O2 = PE1ENEANO3 : 	1.30D-12*0.2*RO2 	;
+{1333.} 	 C3H7CHOOA = C3H7CHOO : 	KDEC*0.24 	;
+{1334.} 	 C3H7CHOOA = C3H8 : 	KDEC*0.20 	;
+{1335.} 	 C3H7CHOOA = NC3H7O2 + CO + OH : 	KDEC*0.36 	;
+{1336.} 	 C3H7CHOOA = NC3H7O2 + HO2 : 	KDEC*0.20 	;
+{1337.} 	 PE1ENEAO2 + HO2 = C51OH2OOH : 	KRO2HO2*0.706 	;
+{1338.} 	 PE1ENEAO2 + NO = PE1ENEANO3 : 	KRO2NO*0.064 	;
+{1339.} 	 PE1ENEAO2 + NO = PE1ENEAO + NO2 : 	KRO2NO*0.936 	;
+{1340.} 	 PE1ENEAO2 + NO3 = PE1ENEAO + NO2 : 	KRO2NO3 	;
+{1341.} 	 PE1ENEAO2 = C51OH2CO : 	8.80D-13*0.2*RO2 	;
+{1342.} 	 PE1ENEAO2 = HO12C5 : 	8.80D-13*0.2*RO2 	;
+{1343.} 	 PE1ENEAO2 = PE1ENEAO : 	8.80D-13*0.6*RO2 	;
+{1344.} 	 PE1ENEBO2 + HO2 = C52OH1OOH : 	KRO2HO2*0.706 	;
+{1345.} 	 PE1ENEBO2 + NO = PE1ENEBNO3 : 	KRO2NO*0.026 	;
+{1346.} 	 PE1ENEBO2 + NO = PE1ENEBO + NO2 : 	KRO2NO*0.974 	;
+{1347.} 	 PE1ENEBO2 + NO3 = PE1ENEBO + NO2 : 	KRO2NO3 	;
+{1348.} 	 PE1ENEBO2 = C4OHCHO : 	2.00D-12*0.2*RO2 	;
+{1349.} 	 PE1ENEBO2 = HO12C5 : 	2.00D-12*0.2*RO2 	;
+{1350.} 	 PE1ENEBO2 = PE1ENEBO : 	2.00D-12*0.6*RO2 	;
+{1351.} 	 C52NO33O2 + HO2 = C52NO33OOH : 	KRO2HO2*0.706 	;
+{1352.} 	 C52NO33O2 + NO = C52NO33O + NO2 : 	KRO2NO 	;
+{1353.} 	 C52NO33O2 + NO3 = C52NO33O + NO2 : 	KRO2NO3 	;
+{1354.} 	 C52NO33O2 = C52NO33CO : 	2.50D-13*0.2*RO2 	;
+{1355.} 	 C52NO33O2 = C52NO33O : 	2.50D-13*0.6*RO2 	;
+{1356.} 	 C52NO33O2 = PE2ENEBNO3 : 	2.50D-13*0.2*RO2 	;
+{1357.} 	 C53NO32O2 + HO2 = C53NO32OOH : 	KRO2HO2*0.706 	;
+{1358.} 	 C53NO32O2 + NO = C53NO32O + NO2 : 	KRO2NO 	;
+{1359.} 	 C53NO32O2 + NO3 = C53NO32O + NO2 : 	KRO2NO3 	;
+{1360.} 	 C53NO32O2 = C53NO32CO : 	2.50D-13*0.2*RO2 	;
+{1361.} 	 C53NO32O2 = C53NO32O : 	2.50D-13*0.6*RO2 	;
+{1362.} 	 C53NO32O2 = PE2ENEANO3 : 	2.50D-13*0.2*RO2 	;
+{1363.} 	 C2H5CHOOB = C2H5CHOO : 	KDEC*0.18 	;
+{1364.} 	 C2H5CHOOB = C2H5O2 + CO + OH : 	KDEC*0.57 	;
+{1365.} 	 C2H5CHOOB = C2H5O2 + HO2 : 	KDEC*0.125 	;
+{1366.} 	 C2H5CHOOB = C2H6 : 	KDEC*0.125 	;
+{1367.} 	 PE2ENEAO2 + HO2 = C52OH3OOH : 	KRO2HO2*0.706 	;
+{1368.} 	 PE2ENEAO2 + NO = PE2ENEANO3 : 	KRO2NO*0.064 	;
+{1369.} 	 PE2ENEAO2 + NO = PE2ENEAO + NO2 : 	KRO2NO*0.936 	;
+{1370.} 	 PE2ENEAO2 + NO3 = PE2ENEAO + NO2 : 	KRO2NO3 	;
+{1371.} 	 PE2ENEAO2 = C523OH : 	8.80D-13*0.2*RO2 	;
+{1372.} 	 PE2ENEAO2 = DIEKAOH : 	8.80D-13*0.2*RO2 	;
+{1373.} 	 PE2ENEAO2 = PE2ENEAO : 	8.80D-13*0.6*RO2 	;
+{1374.} 	 C4NO32M1O2 + HO2 = C4NO3M1OOH : 	KRO2HO2*0.706 	;
+{1375.} 	 C4NO32M1O2 + NO = C4NO32M1O + NO2 : 	KRO2NO 	;
+{1376.} 	 C4NO32M1O2 + NO3 = C4NO32M1O + NO2 : 	KRO2NO3 	;
+{1377.} 	 C4NO32M1O2 = C4NO32M1O : 	1.30D-12*0.6*RO2 	;
+{1378.} 	 C4NO32M1O2 = C4NO3CHO : 	1.30D-12*0.2*RO2 	;
+{1379.} 	 C4NO32M1O2 = M2BUOL2NO3 : 	1.30D-12*0.2*RO2 	;
+{1380.} 	 C4NO32M2O2 + HO2 = C4NO32MOOH : 	KRO2HO2*0.706 	;
+{1381.} 	 C4NO32M2O2 + NO = C4NO32M2O + NO2 : 	KRO2NO 	;
+{1382.} 	 C4NO32M2O2 + NO3 = C4NO32M2O + NO2 : 	KRO2NO3 	;
+{1383.} 	 C4NO32M2O2 = C4NO32M2O : 	6.70D-15*0.7*RO2 	;
+{1384.} 	 C4NO32M2O2 = PROL11MNO3 : 	6.70D-15*0.3*RO2 	;
+{1385.} 	 C2H5MECOOA = C2H5MECOO : 	KDEC*0.18 	;
+{1386.} 	 C2H5MECOOA = MEKBO2 + OH : 	KDEC*0.82 	;
+{1387.} 	 C4M3NO31O2 + HO2 = C4MNO31OOH : 	KRO2HO2*0.706 	;
+{1388.} 	 C4M3NO31O2 + NO = C4M3NO31O + NO2 : 	KRO2NO 	;
+{1389.} 	 C4M3NO31O2 + NO3 = C4M3NO31O + NO2 : 	KRO2NO3 	;
+{1390.} 	 C4M3NO31O2 = C4M3NO31O : 	9.20D-14*0.6*RO2 	;
+{1391.} 	 C4M3NO31O2 = C4M3NO3ONE : 	9.20D-14*0.2*RO2 	;
+{1392.} 	 C4M3NO31O2 = M3BU2OLNO3 : 	9.20D-14*0.2*RO2 	;
+{1393.} 	 C4M3NO32O2 + HO2 = C4MNO32OOH : 	KRO2HO2*0.706 	;
+{1394.} 	 C4M3NO32O2 + NO = C4M3NO32O + NO2 : 	KRO2NO 	;
+{1395.} 	 C4M3NO32O2 + NO3 = C4M3NO32O + NO2 : 	KRO2NO3 	;
+{1396.} 	 C4M3NO32O2 = C3MNO3CHO : 	2.00D-12*0.2*RO2 	;
+{1397.} 	 C4M3NO32O2 = C4M3NO32O : 	2.00D-12*0.6*RO2 	;
+{1398.} 	 C4M3NO32O2 = ME3BUOLNO3 : 	2.00D-12*0.2*RO2 	;
+{1399.} 	 IPRCHOOA = C3H8 : 	KDEC*0.20 	;
+{1400.} 	 IPRCHOOA = IC3H7O2 + CO + OH : 	KDEC*0.36 	;
+{1401.} 	 IPRCHOOA = IC3H7O2 + HO2 : 	KDEC*0.20 	;
+{1402.} 	 IPRCHOOA = IPRCHOO : 	KDEC*0.24 	;
+{1403.} 	 ME3BU2OLO2 + HO2 = M3BU2OLOOH : 	KRO2HO2*0.706 	;
+{1404.} 	 ME3BU2OLO2 + NO = M3BU2OLNO3 : 	KRO2NO*0.026 	;
+{1405.} 	 ME3BU2OLO2 + NO = ME3BU2OLO + NO2 : 	KRO2NO*0.974 	;
+{1406.} 	 ME3BU2OLO2 + NO3 = ME3BU2OLO + NO2 : 	KRO2NO3 	;
+{1407.} 	 ME3BU2OLO2 = C3M3OH2CHO : 	2.00D-12*0.2*RO2 	;
+{1408.} 	 ME3BU2OLO2 = C4ME3HO12 : 	2.00D-12*0.2*RO2 	;
+{1409.} 	 ME3BU2OLO2 = ME3BU2OLO : 	2.00D-12*0.6*RO2 	;
+{1410.} 	 C4M2NO32O2 + HO2 = C4NO3M2OOH : 	KRO2HO2*0.706 	;
+{1411.} 	 C4M2NO32O2 + NO = C4M2NO32O + NO2 : 	KRO2NO 	;
+{1412.} 	 C4M2NO32O2 + NO3 = C4M2NO32O + NO2 : 	KRO2NO3 	;
+{1413.} 	 C4M2NO32O2 = C4M2NO32O : 	8.80D-13*0.6*RO2 	;
+{1414.} 	 C4M2NO32O2 = C4M2NO3ONE : 	8.80D-13*0.2*RO2 	;
+{1415.} 	 C4M2NO32O2 = ME2BUOLNO3 : 	8.80D-13*0.2*RO2 	;
+{1416.} 	 C4M2NO33O2 + HO2 = C4M2NO3OOH : 	KRO2HO2*0.706 	;
+{1417.} 	 C4M2NO33O2 + NO = C4M2NO33O + NO2 : 	KRO2NO 	;
+{1418.} 	 C4M2NO33O2 + NO3 = C4M2NO33O + NO2 : 	KRO2NO3 	;
+{1419.} 	 C4M2NO33O2 = C4M2NO33O : 	6.70D-15*0.7*RO2 	;
+{1420.} 	 C4M2NO33O2 = M2BU2OLNO3 : 	6.70D-15*0.3*RO2 	;
+{1421.} 	 CH3CCH3OOB = CH3CCH3OO : 	KDEC*0.11 	;
+{1422.} 	 CH3CCH3OOB = CH3COCH2O2 + OH : 	KDEC*0.89 	;
+{1423.} 	 CH3CHOOC = CH3CHOO : 	KDEC*0.11 	;
+{1424.} 	 CH3CHOOC = CH3O2 + CO + OH : 	KDEC*0.89 	;
+{1425.} 	 C65NO36O2 + HO2 = C65NO36OOH : 	KRO2HO2*0.770 	;
+{1426.} 	 C65NO36O2 + NO = C65NO36O + NO2 : 	KRO2NO 	;
+{1427.} 	 C65NO36O2 + NO3 = C65NO36O + NO2 : 	KRO2NO3 	;
+{1428.} 	 C65NO36O2 = C65NO36CHO : 	2.00D-12*0.2*RO2 	;
+{1429.} 	 C65NO36O2 = C65NO36O : 	2.00D-12*0.6*RO2 	;
+{1430.} 	 C65NO36O2 = C6OH5NO3 : 	2.00D-12*0.2*RO2 	;
+{1431.} 	 C66NO35O2 + HO2 = C66NO35OOH : 	KRO2HO2*0.770 	;
+{1432.} 	 C66NO35O2 + NO = C66NO35O + NO2 : 	KRO2NO 	;
+{1433.} 	 C66NO35O2 + NO3 = C66NO35O + NO2 : 	KRO2NO3 	;
+{1434.} 	 C66NO35O2 = C66NO35CO : 	8.80D-13*0.2*RO2 	;
+{1435.} 	 C66NO35O2 = C66NO35O : 	8.80D-13*0.6*RO2 	;
+{1436.} 	 C66NO35O2 = C66NO35OH : 	8.80D-13*0.2*RO2 	;
+{1437.} 	 NC4H9CHOOA = NC4H10 : 	KDEC*0.20 	;
+{1438.} 	 NC4H9CHOOA = NC4H9CHOO : 	KDEC*0.24 	;
+{1439.} 	 NC4H9CHOOA = NC4H9O2 + CO + OH : 	KDEC*0.36 	;
+{1440.} 	 NC4H9CHOOA = NC4H9O2 + HO2 : 	KDEC*0.20 	;
+{1441.} 	 C6OH5O2 + HO2 = C6OH5OOH : 	KRO2HO2*0.770 	;
+{1442.} 	 C6OH5O2 + NO = C6OH5NO3 : 	KRO2NO*0.097 	;
+{1443.} 	 C6OH5O2 + NO = C6OH5O + NO2 : 	KRO2NO*0.903 	;
+{1444.} 	 C6OH5O2 + NO3 = C6OH5O + NO2 : 	KRO2NO3 	;
+{1445.} 	 C6OH5O2 = C4COMEOH : 	8.80D-13*0.2*RO2 	;
+{1446.} 	 C6OH5O2 = C656OH : 	8.80D-13*0.2*RO2 	;
+{1447.} 	 C6OH5O2 = C6OH5O : 	8.80D-13*0.6*RO2 	;
+{1448.} 	 HO5C6O2 + HO2 = HO5C6OOH : 	KRO2HO2*0.770 	;
+{1449.} 	 HO5C6O2 + NO = C66NO35OH : 	KRO2NO*0.039 	;
+{1450.} 	 HO5C6O2 + NO = HO5C6O + NO2 : 	KRO2NO*0.961 	;
+{1451.} 	 HO5C6O2 + NO3 = HO5C6O + NO2 : 	KRO2NO3 	;
+{1452.} 	 HO5C6O2 = C656OH : 	2.00D-12*0.2*RO2 	;
+{1453.} 	 HO5C6O2 = HO5C5CHO : 	2.00D-12*0.2*RO2 	;
+{1454.} 	 HO5C6O2 = HO5C6O : 	2.00D-12*0.6*RO2 	;
+{1455.} 	 C62NO33O2 + HO2 = C62NO33OOH : 	KRO2HO2*0.770 	;
+{1456.} 	 C62NO33O2 + NO = C62NO33O + NO2 : 	KRO2NO 	;
+{1457.} 	 C62NO33O2 + NO3 = C62NO33O + NO2 : 	KRO2NO3 	;
+{1458.} 	 C62NO33O2 = C62NO33CO : 	8.80D-13*0.2*RO2 	;
+{1459.} 	 C62NO33O2 = C62NO33O : 	8.80D-13*0.6*RO2 	;
+{1460.} 	 C62NO33O2 = C64OH5NO3 : 	8.80D-13*0.2*RO2 	;
+{1461.} 	 C63NO32O2 + HO2 = C63NO32OOH : 	KRO2HO2*0.770 	;
+{1462.} 	 C63NO32O2 + NO = C63NO32O + NO2 : 	KRO2NO 	;
+{1463.} 	 C63NO32O2 + NO3 = C63NO32O + NO2 : 	KRO2NO3 	;
+{1464.} 	 C63NO32O2 = C63NO32CO : 	8.80D-13*0.2*RO2 	;
+{1465.} 	 C63NO32O2 = C63NO32O : 	8.80D-13*0.6*RO2 	;
+{1466.} 	 C63NO32O2 = C65OH4NO3 : 	8.80D-13*0.2*RO2 	;
+{1467.} 	 C3H7CHOOB = C3H7CHOO : 	KDEC*0.18 	;
+{1468.} 	 C3H7CHOOB = C3H8 : 	KDEC*0.125 	;
+{1469.} 	 C3H7CHOOB = NC3H7O2 + CO + OH : 	KDEC*0.57 	;
+{1470.} 	 C3H7CHOOB = NC3H7O2 + HO2 : 	KDEC*0.125 	;
+{1471.} 	 C64OH5O2 + HO2 = C64OH5OOH : 	KRO2HO2*0.770 	;
+{1472.} 	 C64OH5O2 + NO = C64OH5NO3 : 	KRO2NO*0.097 	;
+{1473.} 	 C64OH5O2 + NO = C64OH5O + NO2 : 	KRO2NO*0.903 	;
+{1474.} 	 C64OH5O2 + NO3 = C64OH5O + NO2 : 	KRO2NO3 	;
+{1475.} 	 C64OH5O2 = C645OH : 	8.80D-13*0.2*RO2 	;
+{1476.} 	 C64OH5O2 = C64OH5O : 	8.80D-13*0.6*RO2 	;
+{1477.} 	 C64OH5O2 = CO2HO3C6 : 	8.80D-13*0.2*RO2 	;
+{1478.} 	 C65OH4O2 + HO2 = C65OH4OOH : 	KRO2HO2*0.770 	;
+{1479.} 	 C65OH4O2 + NO = C65OH4NO3 : 	KRO2NO*0.097 	;
+{1480.} 	 C65OH4O2 + NO = C65OH4O + NO2 : 	KRO2NO*0.903 	;
+{1481.} 	 C65OH4O2 + NO3 = C65OH4O + NO2 : 	KRO2NO3 	;
+{1482.} 	 C65OH4O2 = C645OH : 	8.80D-13*0.2*RO2 	;
+{1483.} 	 C65OH4O2 = C65OH4O : 	8.80D-13*0.6*RO2 	;
+{1484.} 	 C65OH4O2 = HEX3ONCOH : 	8.80D-13*0.2*RO2 	;
+{1485.} 	 C4ME2NO3O2 + HO2 = C42MNO3OOH : 	KRO2HO2*0.770 	;
+{1486.} 	 C4ME2NO3O2 + NO = C4ME2NO3O + NO2 : 	KRO2NO 	;
+{1487.} 	 C4ME2NO3O2 + NO3 = C4ME2NO3O + NO2 : 	KRO2NO3 	;
+{1488.} 	 C4ME2NO3O2 = C4ME2NO3O : 	9.20D-14*RO2*0.70 	;
+{1489.} 	 C4ME2NO3O2 = C4ME2OHNO3 : 	9.20D-14*RO2*0.30 	;
+{1490.} 	 CH3CCH3OOC = CH3COCH2O2 + OH : 	KDEC 	;
+{1491.} 	 C4ME2OHO2 + HO2 = C4ME2OHOOH : 	KRO2HO2*0.770 	;
+{1492.} 	 C4ME2OHO2 + NO = C4ME2OHNO3 : 	KRO2NO*0.031 	;
+{1493.} 	 C4ME2OHO2 + NO = C4ME2OHO + NO2 : 	KRO2NO*0.969 	;
+{1494.} 	 C4ME2OHO2 + NO3 = C4ME2OHO + NO2 : 	KRO2NO3 	;
+{1495.} 	 C4ME2OHO2 = C4ME22OH : 	9.20D-14*RO2*0.30 	;
+{1496.} 	 C4ME2OHO2 = C4ME2OHO : 	9.20D-14*RO2*0.70 	;
+{1497.} 	 BZBIPERO2 + HO2 = BZBIPEROOH : 	KRO2HO2*0.770 	;
+{1498.} 	 BZBIPERO2 + NO = BZBIPERNO3 : 	KRO2NO*0.082 	;
+{1499.} 	 BZBIPERO2 + NO = NO2 + BZBIPERO : 	KRO2NO*0.918 	;
+{1500.} 	 BZBIPERO2 + NO3 = NO2 + BZBIPERO : 	KRO2NO3 	;
+{1501.} 	 BZBIPERO2 = BZBIPER2OH : 	8.80D-13*RO2*0.2 	;
+{1502.} 	 BZBIPERO2 = BZBIPERO : 	8.80D-13*RO2*0.6 	;
+{1503.} 	 BZBIPERO2 = BZOBIPEROH : 	8.80D-13*RO2*0.2 	;
+{1504.} 	 BZEPOXMUC + NO3 = BZEMUCCO3 + HNO3 : 	2*KNO3AL*2.75 	;
+{1505.} 	 BZEPOXMUC + O3 = EPXC4DIAL + GLYOOA : 	2.00D-18 	;
+{1506.} 	 BZEPOXMUC + OH = BZEMUCCO3 : 	6.08D-11*0.31 	;
+{1507.} 	 BZEPOXMUC + OH = BZEMUCO2 : 	6.08D-11*0.69 	;
+{1508.} 	 BZEPOXMUC = C5DIALO2 + HO2 + CO : 	J(4)*0.1*0.5 	;
+{1509.} 	 BZEPOXMUC = MALDIAL + HO2 + CO + HO2 + CO : 	J(4)*0.1*0.5 	;
+{1510.} 	 PHENOL + NO3 = C6H5O + HNO3 : 	3.8D-12*0.742 	;
+{1511.} 	 PHENOL + NO3 = NPHENO2 : 	3.8D-12*0.258 	;
+{1512.} 	 PHENOL + OH = C6H5O : 	4.7D-13*EXP(1220/TEMP)*0.06 	;
+{1513.} 	 PHENOL + OH = CATECHOL + HO2 : 	4.7D-13*EXP(1220/TEMP)*0.8 	;
+{1514.} 	 PHENOL + OH = PHENO2 : 	4.7D-13*EXP(1220/TEMP)*0.14 	;
+{1515.} 	 C6H5CH2O2 + HO2 = C6H5CH2OOH : 	1.5D-13*EXP(1310/TEMP) 	;
+{1516.} 	 C6H5CH2O2 + NO = C6H5CH2NO3 : 	KRO2NO*0.105 	;
+{1517.} 	 C6H5CH2O2 + NO = C6H5CH2O + NO2 : 	KRO2NO*0.895 	;
+{1518.} 	 C6H5CH2O2 + NO3 = C6H5CH2O + NO2 : 	KRO2NO3 	;
+{1519.} 	 C6H5CH2O2 = BENZAL : 	2*(KCH3O2*2.4D-14*EXP(1620/TEMP))**0.5*RO2*0.2 	;
+{1520.} 	 C6H5CH2O2 = C6H5CH2O : 	2*(KCH3O2*2.4D-14*EXP(1620/TEMP))**0.5*RO2*0.6 	;
+{1521.} 	 C6H5CH2O2 = C6H5CH2OH : 	2*(KCH3O2*2.4D-14*EXP(1620/TEMP))**0.5*RO2*0.2 	;
+{1522.} 	 CRESOL + NO3 = CRESO2 + HNO3 : 	1.4D-11*0.103 	;
+{1523.} 	 CRESOL + NO3 = NCRESO2 : 	1.4D-11*0.506 	;
+{1524.} 	 CRESOL + NO3 = TOL1O + HNO3 : 	1.4D-11*0.391 	;
+{1525.} 	 CRESOL + OH = CRESO2 : 	4.65D-11*0.200 	;
+{1526.} 	 CRESOL + OH = MCATECHOL + HO2 : 	4.65D-11*0.727 	;
+{1527.} 	 CRESOL + OH = TOL1O : 	4.65D-11*0.073 	;
+{1528.} 	 TLBIPERO2 + HO2 = TLBIPEROOH : 	KRO2HO2*0.820 	;
+{1529.} 	 TLBIPERO2 + NO = NO2 + TLBIPERO : 	KRO2NO*0.889 	;
+{1530.} 	 TLBIPERO2 + NO = TLBIPERNO3 : 	KRO2NO*0.111 	;
+{1531.} 	 TLBIPERO2 + NO3 = NO2 + TLBIPERO : 	KRO2NO3 	;
+{1532.} 	 TLBIPERO2 = TLBIPER2OH : 	8.80D-13*RO2*0.20 	;
+{1533.} 	 TLBIPERO2 = TLBIPERO : 	8.80D-13*RO2*0.60 	;
+{1534.} 	 TLBIPERO2 = TLOBIPEROH : 	8.80D-13*RO2*0.20 	;
+{1535.} 	 TLEPOXMUC + NO3 = TLEMUCCO3 + HNO3 : 	KNO3AL*2.75 	;
+{1536.} 	 TLEPOXMUC + O3 = EPXC4DIAL + MGLOOB : 	5.00D-18 	;
+{1537.} 	 TLEPOXMUC + OH = TLEMUCCO3 : 	7.99D-11*0.31 	;
+{1538.} 	 TLEPOXMUC + OH = TLEMUCO2 : 	7.99D-11*0.69 	;
+{1539.} 	 TLEPOXMUC = C615CO2O2 + HO2 + CO : 	J(4)*0.1*0.5 	;
+{1540.} 	 TLEPOXMUC = EPXC4DIAL + CH3CO3 + HO2 + CO : 	J(4)*0.1*0.5 	;
+{1541.} 	 OXYLO2 + HO2 = OXYLOOH : 	KRO2HO2*0.859 	;
+{1542.} 	 OXYLO2 + NO = OXYLNO3 : 	KRO2NO*0.105 	;
+{1543.} 	 OXYLO2 + NO = OXYLO + NO2 : 	KRO2NO*0.895 	;
+{1544.} 	 OXYLO2 + NO3 = OXYLO + NO2 : 	KRO2NO3 	;
+{1545.} 	 OXYLO2 = OXYLAL : 	1.30D-12*0.20*RO2 	;
+{1546.} 	 OXYLO2 = OXYLO : 	1.30D-12*0.60*RO2 	;
+{1547.} 	 OXYLO2 = OXYLOH : 	1.30D-12*0.20*RO2 	;
+{1548.} 	 OXYBIPERO2 + HO2 = OXYBPEROOH : 	KRO2HO2*0.859 	;
+{1549.} 	 OXYBIPERO2 + NO = OXYBIPENO3 : 	KRO2NO*0.138 	;
+{1550.} 	 OXYBIPERO2 + NO = OXYBIPERO + NO2 : 	KRO2NO*0.862 	;
+{1551.} 	 OXYBIPERO2 + NO3 = OXYBIPERO + NO2 : 	KRO2NO3 	;
+{1552.} 	 OXYBIPERO2 = OXYBIPERO : 	9.20D-14*RO2*0.70 	;
+{1553.} 	 OXYBIPERO2 = OXYBPER2OH : 	9.20D-14*RO2*0.30 	;
+{1554.} 	 OXYEPOXMUC + NO3 = OXYMUCCO3 + HNO3 : 	2*KNO3AL*4.25 	;
+{1555.} 	 OXYEPOXMUC + O3 = EPXM2C4DAL + GLYOOA : 	2.00D-18 	;
+{1556.} 	 OXYEPOXMUC + OH = OXYMUCCO3 : 	5.99D-11*0.632 	;
+{1557.} 	 OXYEPOXMUC + OH = OXYMUCO2 : 	5.99D-11*0.368 	;
+{1558.} 	 OXYEPOXMUC = EPXM2C4DAL + HO2 + CO + HO2 + CO : 	J(4)*0.05*0.5 	;
+{1559.} 	 OXYEPOXMUC = MC6CO2O2 + HO2 + CO : 	J(4)*0.05*0.5 	;
+{1560.} 	 OXYLOL + NO3 = NOXYOLO2 : 	3.20D-11*0.51 	;
+{1561.} 	 OXYLOL + NO3 = OXY1O + HNO3 : 	3.20D-11*0.39 	;
+{1562.} 	 OXYLOL + NO3 = OXYOLO2 + HNO3 : 	3.20D-11*0.10 	;
+{1563.} 	 OXYLOL + OH = OXY1O : 	8.00D-11*0.07 	;
+{1564.} 	 OXYLOL + OH = OXYCATECH + HO2 : 	8.00D-11*0.73 	;
+{1565.} 	 OXYLOL + OH = OXYOLO2 : 	8.00D-11*0.20 	;
+{1566.} 	 MXYLO2 + HO2 = MXYLOOH : 	KRO2HO2*0.859 	;
+{1567.} 	 MXYLO2 + NO = MXYLNO3 : 	KRO2NO*0.105 	;
+{1568.} 	 MXYLO2 + NO = MXYLO + NO2 : 	KRO2NO*0.895 	;
+{1569.} 	 MXYLO2 + NO3 = MXYLO + NO2 : 	KRO2NO3 	;
+{1570.} 	 MXYLO2 = MXYLAL : 	1.30D-12*0.20*RO2 	;
+{1571.} 	 MXYLO2 = MXYLO : 	1.30D-12*0.60*RO2 	;
+{1572.} 	 MXYLO2 = MXYLOH : 	1.30D-12*0.20*RO2 	;
+{1573.} 	 MXYBIPERO2 + HO2 = MXYBPEROOH : 	KRO2HO2*0.859 	;
+{1574.} 	 MXYBIPERO2 + NO = MXYBIPENO3 : 	KRO2NO*0.138 	;
+{1575.} 	 MXYBIPERO2 + NO = MXYBIPERO + NO2 : 	KRO2NO*0.862 	;
+{1576.} 	 MXYBIPERO2 + NO3 = MXYBIPERO + NO2 : 	KRO2NO3 	;
+{1577.} 	 MXYBIPERO2 = MXYBIPERO : 	8.80D-13*RO2*0.6 	;
+{1578.} 	 MXYBIPERO2 = MXYBPER2OH : 	8.80D-13*RO2*0.2 	;
+{1579.} 	 MXYBIPERO2 = MXYOBPEROH : 	8.80D-13*RO2*0.2 	;
+{1580.} 	 MXYEPOXMUC + NO3 = MXYMUCCO3 + HNO3 : 	KNO3AL*4.25 	;
+{1581.} 	 MXYEPOXMUC + O3 = EPXMC4DIAL + MGLOOB : 	2.00D-18 	;
+{1582.} 	 MXYEPOXMUC + OH = MXYMUCCO3 : 	8.02D-11*0.26 	;
+{1583.} 	 MXYEPOXMUC + OH = MXYMUCO2 : 	8.02D-11*0.74 	;
+{1584.} 	 MXYEPOXMUC = C726CO5O2 + HO2 + CO : 	J(4)*0.028*0.5 	;
+{1585.} 	 MXYEPOXMUC = EPXMC4DIAL + CH3CO3 + HO2 + CO : 	J(4)*0.028*0.5 	;
+{1586.} 	 MXYLOL + NO3 = MXY1O + HNO3 : 	4.50D-11*0.39 	;
+{1587.} 	 MXYLOL + NO3 = MXYOLO2 + HNO3 : 	4.50D-11*0.10 	;
+{1588.} 	 MXYLOL + NO3 = NMXYOLO2 : 	4.50D-11*0.51 	;
+{1589.} 	 MXYLOL + OH = MXY1O : 	9.10D-11*0.07 	;
+{1590.} 	 MXYLOL + OH = MXYCATECH + HO2 : 	9.10D-11*0.42 	;
+{1591.} 	 MXYLOL + OH = MXYOLO2 : 	9.10D-11*0.51 	;
+{1592.} 	 PXYLO2 + HO2 = PXYLOOH : 	KRO2HO2*0.820 	;
+{1593.} 	 PXYLO2 + NO = PXYLNO3 : 	KRO2NO*0.105 	;
+{1594.} 	 PXYLO2 + NO = PXYLO + NO2 : 	KRO2NO*0.895 	;
+{1595.} 	 PXYLO2 + NO3 = PXYLO + NO2 : 	KRO2NO3 	;
+{1596.} 	 PXYLO2 = PXYLAL : 	1.30D-12*0.20*RO2 	;
+{1597.} 	 PXYLO2 = PXYLO : 	1.30D-12*0.60*RO2 	;
+{1598.} 	 PXYLO2 = PXYLOH : 	1.30D-12*0.20*RO2 	;
+{1599.} 	 PXYBIPERO2 + HO2 = PXYBPEROOH : 	KRO2HO2*0.859 	;
+{1600.} 	 PXYBIPERO2 + NO = PXYBIPENO3 : 	KRO2NO*0.138 	;
+{1601.} 	 PXYBIPERO2 + NO = PXYBIPERO + NO2 : 	KRO2NO*0.862 	;
+{1602.} 	 PXYBIPERO2 + NO3 = PXYBIPERO + NO2 : 	KRO2NO3 	;
+{1603.} 	 PXYBIPERO2 = PXYBIPERO : 	9.20D-14*RO2*0.70 	;
+{1604.} 	 PXYBIPERO2 = PXYBPER2OH : 	9.20D-14*RO2*0.30 	;
+{1605.} 	 PXYEPOXMUC + NO3 = PXYMUCCO3 + HNO3 : 	KNO3AL*4.25 	;
+{1606.} 	 PXYEPOXMUC + O3 = EPXMC4DIAL + MGLOOB : 	5.00D-18 	;
+{1607.} 	 PXYEPOXMUC + OH = PXYMUCCO3 : 	7.88D-11*0.26 	;
+{1608.} 	 PXYEPOXMUC + OH = PXYMUCO2 : 	7.88D-11*0.74 	;
+{1609.} 	 PXYEPOXMUC = C6M5CO2O2 + HO2 + CO : 	J(4)*0.1*0.5 	;
+{1610.} 	 PXYEPOXMUC = EPXMC4DIAL + CH3CO3 + HO2 + CO : 	J(4)*0.1*0.5 	;
+{1611.} 	 PXYLOL + NO3 = NPXYOLO2 : 	3.48D-11*0.51 	;
+{1612.} 	 PXYLOL + NO3 = PXY1O + HNO3 : 	3.48D-11*0.39 	;
+{1613.} 	 PXYLOL + NO3 = PXYOLO2 + HNO3 : 	3.48D-11*0.10 	;
+{1614.} 	 PXYLOL + OH = PXY1O : 	8.00D-11*0.07 	;
+{1615.} 	 PXYLOL + OH = PXYCATECH + HO2 : 	8.00D-11*0.73 	;
+{1616.} 	 PXYLOL + OH = PXYOLO2 : 	8.00D-11*0.2 	;
+{1617.} 	 C6H5C2H4O2 + HO2 = C6H5C2OOH : 	KRO2HO2*0.859 	;
+{1618.} 	 C6H5C2H4O2 + NO = C6H5C2H4O + NO2 : 	KRO2NO*0.900 	;
+{1619.} 	 C6H5C2H4O2 + NO = C6H5C2NO3 : 	KRO2NO*0.100 	;
+{1620.} 	 C6H5C2H4O2 + NO3 = C6H5C2H4O + NO2 : 	KRO2NO3 	;
+{1621.} 	 C6H5C2H4O2 = C6H5C2H4O : 	1.30D-12*0.60*RO2 	;
+{1622.} 	 C6H5C2H4O2 = C6H5C2OH : 	1.30D-12*0.20*RO2 	;
+{1623.} 	 C6H5C2H4O2 = C6H5CH2CHO : 	1.30D-12*0.20*RO2 	;
+{1624.} 	 EBENZOL + NO3 = EBENZO + HNO3 : 	1.25D-11*0.391 	;
+{1625.} 	 EBENZOL + NO3 = EBENZOLO2 + HNO3 : 	1.25D-11*0.103 	;
+{1626.} 	 EBENZOL + NO3 = NEBNZOLO2 : 	1.25D-11*0.506 	;
+{1627.} 	 EBENZOL + OH = EBENZO : 	5.10D-11*0.073 	;
+{1628.} 	 EBENZOL + OH = EBENZOLO2 : 	5.10D-11*0.200 	;
+{1629.} 	 EBENZOL + OH = ECATECHOL + HO2 : 	5.10D-11*0.727 	;
+{1630.} 	 EBZBIPERO2 + HO2 = EBZBPEROOH : 	KRO2HO2*0.859 	;
+{1631.} 	 EBZBIPERO2 + NO = EBZBIPERO + NO2 : 	KRO2NO*0.90 	;
+{1632.} 	 EBZBIPERO2 + NO = EBZBPERNO3 : 	KRO2NO*0.10 	;
+{1633.} 	 EBZBIPERO2 + NO3 = EBZBIPERO + NO2 : 	KRO2NO3 	;
+{1634.} 	 EBZBIPERO2 = EBZBIPERO : 	8.80D-13*RO2*0.60 	;
+{1635.} 	 EBZBIPERO2 = EBZBPER2OH : 	8.80D-13*RO2*0.20 	;
+{1636.} 	 EBZBIPERO2 = EBZOBPEROH : 	8.80D-13*RO2*0.20 	;
+{1637.} 	 EBZPOXMUC + NO3 = EBZMUCCO3 + HNO3 : 	KNO3AL*2.75 	;
+{1638.} 	 EBZPOXMUC + O3 = EPXC4DIAL + EGLYOOB : 	5.00D-18 	;
+{1639.} 	 EBZPOXMUC + OH = EBZMUCCO3 : 	8.10D-11*0.26 	;
+{1640.} 	 EBZPOXMUC + OH = EBZMUCO2 : 	8.10D-11*0.76 	;
+{1641.} 	 EBZPOXMUC = C715CO2O2 + HO2 + CO : 	J(4)*0.028*0.5 	;
+{1642.} 	 EBZPOXMUC = EPXC4DIAL + C2H5CO3 + HO2 + CO : 	J(4)*0.028*0.5 	;
+{1643.} 	 PHC3O2 + HO2 = PHC3OOH : 	KRO2HO2*0.890 	;
+{1644.} 	 PHC3O2 + NO = PHC3NO3 : 	KRO2NO*0.393 	;
+{1645.} 	 PHC3O2 + NO = PHC3O + NO2 : 	KRO2NO*0.607 	;
+{1646.} 	 PHC3O2 + NO3 = PHC3O + NO2 : 	KRO2NO3 	;
+{1647.} 	 PHC3O2 = PHC3O : 	2.50D-13*RO2*0.6 	;
+{1648.} 	 PHC3O2 = PHC3OH : 	2.50D-13*RO2*0.2 	;
+{1649.} 	 PHC3O2 = PHCOET : 	2.50D-13*RO2*0.2 	;
+{1650.} 	 PBENZOL + NO3 = NPBNZOLO2 : 	1.25D-11*0.506 	;
+{1651.} 	 PBENZOL + NO3 = PBENZO + HNO3 : 	1.25D-11*0.391 	;
+{1652.} 	 PBENZOL + NO3 = PBENZOLO2 + HNO3 : 	1.25D-11*0.103 	;
+{1653.} 	 PBENZOL + OH = PBENZO : 	5.10D-11*0.073 	;
+{1654.} 	 PBENZOL + OH = PBENZOLO2 : 	5.10D-11*0.200 	;
+{1655.} 	 PBENZOL + OH = PCATECHOL + HO2 : 	5.10D-11*0.727 	;
+{1656.} 	 PBZBIPERO2 + HO2 = PBZBPEROOH : 	KRO2HO2*0.890 	;
+{1657.} 	 PBZBIPERO2 + NO = PBZBIPERO + NO2 : 	KRO2NO*0.90 	;
+{1658.} 	 PBZBIPERO2 + NO = PBZBPERNO3 : 	KRO2NO*0.10 	;
+{1659.} 	 PBZBIPERO2 + NO3 = PBZBIPERO + NO2 : 	KRO2NO3 	;
+{1660.} 	 PBZBIPERO2 = PBZBIPERO : 	8.80D-13*RO2*0.60 	;
+{1661.} 	 PBZBIPERO2 = PBZBPER2OH : 	8.80D-13*RO2*0.20 	;
+{1662.} 	 PBZBIPERO2 = PBZOBPEROH : 	8.80D-13*RO2*0.20 	;
+{1663.} 	 PBZPOXMUC + NO3 = PBZMUCCO3 + HNO3 : 	KNO3AL*2.75 	;
+{1664.} 	 PBZPOXMUC + O3 = EPXC4DIAL + PGLOOA : 	5.00D-18 	;
+{1665.} 	 PBZPOXMUC + OH = PBZMUCCO3 : 	8.45D-11*0.74 	;
+{1666.} 	 PBZPOXMUC + OH = PBZMUCO2 : 	8.45D-11*0.26 	;
+{1667.} 	 PBZPOXMUC = C815CO2O2 + HO2 + CO : 	J(4)*0.028*0.5 	;
+{1668.} 	 PBZPOXMUC = EPXC4DIAL + C3H7CO3 + HO2 + CO : 	J(4)*0.028*0.5 	;
+{1669.} 	 PHIC3O2 + HO2 = PHIC3OOH : 	KRO2HO2*0.890 	;
+{1670.} 	 PHIC3O2 + NO = PHIC3NO3 : 	KRO2NO*0.118 	;
+{1671.} 	 PHIC3O2 + NO = PHIC3O + NO2 : 	KRO2NO*0.882 	;
+{1672.} 	 PHIC3O2 + NO3 = PHIC3O + NO2 : 	KRO2NO3 	;
+{1673.} 	 PHIC3O2 = PHIC3O : 	6.70D-15*RO2*0.7 	;
+{1674.} 	 PHIC3O2 = PHIC3OH : 	6.70D-15*RO2*0.3 	;
+{1675.} 	 IPBENZOL + NO3 = IPBENZO + HNO3 : 	1.25D-11*0.391 	;
+{1676.} 	 IPBENZOL + NO3 = IPBENZOLO2 + HNO3 : 	1.25D-11*0.103 	;
+{1677.} 	 IPBENZOL + NO3 = NIPBNZOLO2 : 	1.25D-11*0.506 	;
+{1678.} 	 IPBENZOL + OH = IPBENZO : 	5.10D-11*0.073 	;
+{1679.} 	 IPBENZOL + OH = IPBENZOLO2 : 	5.10D-11*0.200 	;
+{1680.} 	 IPBENZOL + OH = IPCATECHOL + HO2 : 	5.10D-11*0.727 	;
+{1681.} 	 IPBZBIPRO2 + HO2 = IPBZBPROOH : 	KRO2HO2*0.890 	;
+{1682.} 	 IPBZBIPRO2 + NO = IPBZBIPRO + NO2 : 	KRO2NO*0.90 	;
+{1683.} 	 IPBZBIPRO2 + NO = IPBZBPRNO3 : 	KRO2NO*0.10 	;
+{1684.} 	 IPBZBIPRO2 + NO3 = IPBZBIPRO + NO2 : 	KRO2NO3 	;
+{1685.} 	 IPBZBIPRO2 = IPBZBIPRO : 	8.80D-13*RO2*0.60 	;
+{1686.} 	 IPBZBIPRO2 = IPBZBPR2OH : 	8.80D-13*RO2*0.20 	;
+{1687.} 	 IPBZBIPRO2 = IPBZOBPROH : 	8.80D-13*RO2*0.20 	;
+{1688.} 	 IPBZPOXMUC + NO3 = IPBZMUCCO3 + HNO3 : 	KNO3AL*4.25 	;
+{1689.} 	 IPBZPOXMUC + O3 = EPXC4DIAL + IPGLOOB : 	5.00D-18 	;
+{1690.} 	 IPBZPOXMUC + OH = IPBZMUCCO3 : 	8.23D-11*0.26 	;
+{1691.} 	 IPBZPOXMUC + OH = IPBZMUCO2 : 	8.23D-11*0.74 	;
+{1692.} 	 IPBZPOXMUC = C7M15CO2O2 + HO2 + CO : 	J(4)*0.028*0.5 	;
+{1693.} 	 IPBZPOXMUC = EPXC4DIAL + IPRCO3 + HO2 + CO : 	J(4)*0.028*0.5 	;
+{1694.} 	 TM123BO2 + HO2 = TM123BOOH : 	KRO2HO2*0.890 	;
+{1695.} 	 TM123BO2 + NO = TM123BNO3 : 	KRO2NO*0.157 	;
+{1696.} 	 TM123BO2 + NO = TM123BO + NO2 : 	KRO2NO*0.843 	;
+{1697.} 	 TM123BO2 + NO3 = TM123BO + NO2 : 	KRO2NO3 	;
+{1698.} 	 TM123BO2 = TM123BCHO : 	1.30D-12*RO2*0.20 	;
+{1699.} 	 TM123BO2 = TM123BO : 	1.30D-12*RO2*0.60 	;
+{1700.} 	 TM123BO2 = TM123BOH : 	1.30D-12*RO2*0.20 	;
+{1701.} 	 TM123BOL + NO3 = NTM123OLO2 : 	3.20D-11*0.51 	;
+{1702.} 	 TM123BOL + NO3 = TM123O + HNO3 : 	3.20D-11*0.39 	;
+{1703.} 	 TM123BOL + NO3 = TM123OLO2 + HNO3 : 	3.20D-11*0.10 	;
+{1704.} 	 TM123BOL + OH = T123CATECH + HO2 : 	8.20D-11*0.73 	;
+{1705.} 	 TM123BOL + OH = TM123O : 	8.20D-11*0.07 	;
+{1706.} 	 TM123BOL + OH = TM123OLO2 : 	8.20D-11*0.20 	;
+{1707.} 	 TM123BPRO2 + HO2 = TM123BPOOH : 	KRO2HO2*0.890 	;
+{1708.} 	 TM123BPRO2 + NO = TM123BPNO3 : 	KRO2NO*0.157 	;
+{1709.} 	 TM123BPRO2 + NO = TM123BPRO + NO2 : 	KRO2NO*0.843 	;
+{1710.} 	 TM123BPRO2 + NO3 = TM123BPRO + NO2 : 	KRO2NO3 	;
+{1711.} 	 TM123BPRO2 = TM123BP2OH : 	8.80D-13*RO2*0.20 	;
+{1712.} 	 TM123BPRO2 = TM123BPRO : 	8.80D-13*RO2*0.60 	;
+{1713.} 	 TM123BPRO2 = TM123OBPOH : 	8.80D-13*RO2*0.20 	;
+{1714.} 	 TM123OXMUC + O3 = EPXALMKT + MGLOOB : 	5.00D-18 	;
+{1715.} 	 TM123OXMUC + OH = TM123MUCO2 : 	5.96D-11 	;
+{1716.} 	 TM123OXMUC = C726CO5O2 + CH3CO3 : 	J(22) 	;
+{1717.} 	 TM123OXMUC = EPXALMKT + HO2 + CO + CH3CO3 : 	J(24) 	;
+{1718.} 	 TM124BO2 + HO2 = TM124BOOH : 	KRO2HO2*0.890 	;
+{1719.} 	 TM124BO2 + NO = TM124BNO3 : 	KRO2NO*0.157 	;
+{1720.} 	 TM124BO2 + NO = TM124BO + NO2 : 	KRO2NO*0.843 	;
+{1721.} 	 TM124BO2 + NO3 = TM124BO + NO2 : 	KRO2NO3 	;
+{1722.} 	 TM124BO2 = TM124BCHO : 	1.30D-12*RO2*0.20 	;
+{1723.} 	 TM124BO2 = TM124BO : 	1.30D-12*RO2*0.60 	;
+{1724.} 	 TM124BO2 = TM124BOH : 	1.30D-12*RO2*0.20 	;
+{1725.} 	 TM124BPRO2 + HO2 = TM124BPOOH : 	KRO2HO2*0.890 	;
+{1726.} 	 TM124BPRO2 + NO = TM124BPNO3 : 	KRO2NO*0.157 	;
+{1727.} 	 TM124BPRO2 + NO = TM124BPRO + NO2 : 	KRO2NO*0.843 	;
+{1728.} 	 TM124BPRO2 + NO3 = TM124BPRO + NO2 : 	KRO2NO3 	;
+{1729.} 	 TM124BPRO2 = TM124BP2OH : 	9.20D-14*RO2*0.30 	;
+{1730.} 	 TM124BPRO2 = TM124BPRO : 	9.20D-14*RO2*0.70 	;
+{1731.} 	 TM124OL + NO3 = NTM124OLO2 : 	3.20D-11*0.51 	;
+{1732.} 	 TM124OL + NO3 = TM124O + HNO3 : 	3.20D-11*0.39 	;
+{1733.} 	 TM124OL + NO3 = TM124OLO2 + HNO3 : 	3.20D-11*0.10 	;
+{1734.} 	 TM124OL + OH = T124CATECH + HO2 : 	8.20D-11*0.26 	;
+{1735.} 	 TM124OL + OH = TM124O : 	8.20D-11*0.07 	;
+{1736.} 	 TM124OL + OH = TM124OLO2 : 	8.20D-11*0.67 	;
+{1737.} 	 TM124OXMUC + NO3 = TM124MUCO3 + HNO3 : 	KNO3AL*4.25 	;
+{1738.} 	 TM124OXMUC + O3 = EPXM2C4DAL + MGLOOB : 	5.00D-18 	;
+{1739.} 	 TM124OXMUC + OH = TM124MUCO2 : 	7.91D-11*0.736 	;
+{1740.} 	 TM124OXMUC + OH = TM124MUCO3 : 	7.91D-11*0.264 	;
+{1741.} 	 TM124OXMUC = C7CO2M5O2 + HO2 + CO : 	J(4)*0.028*0.5 	;
+{1742.} 	 TM124OXMUC = EPXM2C4DAL + CH3CO3 + HO2 + CO : 	J(4)*0.028*0.5 	;
+{1743.} 	 TMBO2 + HO2 = TMBOOH : 	KRO2HO2*0.890 	;
+{1744.} 	 TMBO2 + NO = TMBNO3 : 	KRO2NO*0.105 	;
+{1745.} 	 TMBO2 + NO = TMBO + NO2 : 	KRO2NO*0.895 	;
+{1746.} 	 TMBO2 + NO3 = TMBO + NO2 : 	KRO2NO3 	;
+{1747.} 	 TMBO2 = TMBCHO : 	1.30D-12*0.20*RO2 	;
+{1748.} 	 TMBO2 = TMBO : 	1.30D-12*0.60*RO2 	;
+{1749.} 	 TMBO2 = TMBOH : 	1.30D-12*0.20*RO2 	;
+{1750.} 	 TM135BPRO2 + HO2 = TM135BPOOH : 	KRO2HO2*0.890 	;
+{1751.} 	 TM135BPRO2 + NO = TM135BPNO3 : 	KRO2NO*0.157 	;
+{1752.} 	 TM135BPRO2 + NO = TM135BPRO + NO2 : 	KRO2NO*0.843 	;
+{1753.} 	 TM135BPRO2 + NO3 = TM135BPRO + NO2 : 	KRO2NO3 	;
+{1754.} 	 TM135BPRO2 = TM135BP2OH : 	8.80D-13*RO2*0.2 	;
+{1755.} 	 TM135BPRO2 = TM135BPRO : 	8.80D-13*RO2*0.6 	;
+{1756.} 	 TM135BPRO2 = TM135OBPOH : 	8.80D-13*RO2*0.2 	;
+{1757.} 	 TM135BZOL + NO3 = NTM135OLO2 : 	1.30D-11*0.787 	;
+{1758.} 	 TM135BZOL + NO3 = TM135O + HNO3 : 	1.30D-11*0.213 	;
+{1759.} 	 TM135BZOL + OH = TM135O : 	8.20D-11*0.054 	;
+{1760.} 	 TM135BZOL + OH = TM135OLO2 : 	8.20D-11*0.946 	;
+{1761.} 	 TM135OXMUC + NO3 = TM135MUCO3 + HNO3 : 	KNO3AL*4.25 	;
+{1762.} 	 TM135OXMUC + O3 = EPXMALKT + MGLOOC : 	1.25D-17 	;
+{1763.} 	 TM135OXMUC + OH = TM135MUCO2 : 	1.01D-10*0.79 	;
+{1764.} 	 TM135OXMUC + OH = TM135MUCO3 : 	1.01D-10*0.21 	;
+{1765.} 	 TM135OXMUC = C7M2CO5O2 + HO2 + CO : 	J(4)*0.1*0.5 	;
+{1766.} 	 TM135OXMUC = EPXMALKT + CH3CO3 + HO2 + CO : 	J(4)*0.1*0.5 	;
+{1767.} 	 ETOLO2 + HO2 = ETOLOOH : 	KRO2HO2*0.890 	;
+{1768.} 	 ETOLO2 + NO = ETOLNO3 : 	KRO2NO*0.393 	;
+{1769.} 	 ETOLO2 + NO = ETOLO + NO2 : 	KRO2NO*0.607 	;
+{1770.} 	 ETOLO2 + NO3 = ETOLO + NO2 : 	KRO2NO3 	;
+{1771.} 	 ETOLO2 = ETOLO : 	2.50D-13*RO2*0.6 	;
+{1772.} 	 ETOLO2 = ETOLOH : 	2.50D-13*RO2*0.2 	;
+{1773.} 	 ETOLO2 = MPHCOME : 	2.50D-13*RO2*0.2 	;
+{1774.} 	 OETLBIPRO2 + HO2 = OETLBPROOH : 	KRO2HO2*0.890 	;
+{1775.} 	 OETLBIPRO2 + NO = OETLBIPNO3 : 	KRO2NO*0.157 	;
+{1776.} 	 OETLBIPRO2 + NO = OETLBIPRO + NO2 : 	KRO2NO*0.843 	;
+{1777.} 	 OETLBIPRO2 + NO3 = OETLBIPRO + NO2 : 	KRO2NO3 	;
+{1778.} 	 OETLBIPRO2 = OETLBIPRO : 	9.20D-14*RO2*0.70 	;
+{1779.} 	 OETLBIPRO2 = OETLBPR2OH : 	9.20D-14*RO2*0.30 	;
+{1780.} 	 OETLPOXMUC + NO3 = OETLMUCCO3 + HNO3 : 	2*KNO3AL*4.25 	;
+{1781.} 	 OETLPOXMUC + O3 = EPXMEC4DAL + GLYOOA : 	2.00D-18 	;
+{1782.} 	 OETLPOXMUC + OH = OETLMUCCO3 : 	6.32D-11*0.49 	;
+{1783.} 	 OETLPOXMUC + OH = OETLMUCO2 : 	6.32D-11*0.51 	;
+{1784.} 	 OETLPOXMUC = EPXMEC4DAL + HO2 + CO + HO2 + CO : 	J(4)*0.05*0.5 	;
+{1785.} 	 OETLPOXMUC = MC7CO2O2 + HO2 + CO : 	J(4)*0.05*0.5 	;
+{1786.} 	 OETOH + NO3 = NOETOLO2 : 	3.20D-11*0.51 	;
+{1787.} 	 OETOH + NO3 = OET1O + HNO3 : 	3.20D-11*0.39 	;
+{1788.} 	 OETOH + NO3 = OETOLO2 + HNO3 : 	3.20D-11*0.10 	;
+{1789.} 	 OETOH + OH = OET1O : 	8.20D-11*0.07 	;
+{1790.} 	 OETOH + OH = OETCATECH + HO2 : 	8.20D-11*0.73 	;
+{1791.} 	 OETOH + OH = OETOLO2 : 	8.20D-11*0.20 	;
+{1792.} 	 METLBIPRO2 + HO2 = METLBPROOH : 	KRO2HO2*0.890 	;
+{1793.} 	 METLBIPRO2 + NO = METLBIPNO3 : 	KRO2NO*0.157 	;
+{1794.} 	 METLBIPRO2 + NO = METLBIPRO + NO2 : 	KRO2NO*0.843 	;
+{1795.} 	 METLBIPRO2 + NO3 = METLBIPRO + NO2 : 	KRO2NO3 	;
+{1796.} 	 METLBIPRO2 = METLBIPRO : 	8.80D-13*RO2*0.6 	;
+{1797.} 	 METLBIPRO2 = METLBPR2OH : 	8.80D-13*RO2*0.2 	;
+{1798.} 	 METLBIPRO2 = METLOBPROH : 	8.80D-13*RO2*0.2 	;
+{1799.} 	 METLPOXMUC + NO3 = METLMUCCO3 + HNO3 : 	KNO3AL*4.25 	;
+{1800.} 	 METLPOXMUC + O3 = EPXMC4DIAL + EGLYOOB : 	5.00D-18 	;
+{1801.} 	 METLPOXMUC + OH = METLMUCCO3 : 	8.13D-11*0.26 	;
+{1802.} 	 METLPOXMUC + OH = METLMUCO2 : 	8.13D-11*0.74 	;
+{1803.} 	 METLPOXMUC = C826CO3O2 + HO2 + CO : 	J(4)*0.028*0.5 	;
+{1804.} 	 METLPOXMUC = EPXMC4DIAL + C2H5CO3 + HO2 + CO : 	J(4)*0.028*0.5 	;
+{1805.} 	 METOH + NO3 = MET1O + HNO3 : 	4.50D-11*0.39 	;
+{1806.} 	 METOH + NO3 = METOLO2 + HNO3 : 	4.50D-11*0.10 	;
+{1807.} 	 METOH + NO3 = NMETOLO2 : 	4.50D-11*0.51 	;
+{1808.} 	 METOH + OH = MET1O : 	8.20D-11*0.07 	;
+{1809.} 	 METOH + OH = METCATECH + HO2 : 	8.20D-11*0.42 	;
+{1810.} 	 METOH + OH = METOLO2 : 	8.20D-11*0.51 	;
+{1811.} 	 PETLBIPRO2 + HO2 = PETLBPROOH : 	KRO2HO2*0.890 	;
+{1812.} 	 PETLBIPRO2 + NO = PETLBIPNO3 : 	KRO2NO*0.157 	;
+{1813.} 	 PETLBIPRO2 + NO = PETLBIPRO + NO2 : 	KRO2NO*0.843 	;
+{1814.} 	 PETLBIPRO2 + NO3 = PETLBIPRO + NO2 : 	KRO2NO3 	;
+{1815.} 	 PETLBIPRO2 = PETLBIPRO : 	9.20D-14*RO2*0.7 	;
+{1816.} 	 PETLBIPRO2 = PETLBPR2OH : 	9.20D-14*RO2*0.3 	;
+{1817.} 	 PETLPOXMUC + NO3 = PETLMUCCO3 + HNO3 : 	KNO3AL*4.25 	;
+{1818.} 	 PETLPOXMUC + O3 = EPXMC4DIAL + EGLYOOB : 	5.00D-18 	;
+{1819.} 	 PETLPOXMUC + OH = PETLMUCCO3 : 	8.00D-11*0.26 	;
+{1820.} 	 PETLPOXMUC + OH = PETLMUCO2 : 	8.00D-11*0.74 	;
+{1821.} 	 PETLPOXMUC = C7M6CO2O2 + C2H5CO3 : 	J(4)*0.028*0.5 	;
+{1822.} 	 PETLPOXMUC = EPXMC4DIAL + CH3CO3 + HO2 + CO : 	J(4)*0.028*0.5 	;
+{1823.} 	 PETOH + NO3 = NPETOLO2 : 	3.48D-11*0.51 	;
+{1824.} 	 PETOH + NO3 = PET1O + HNO3 : 	3.48D-11*0.39 	;
+{1825.} 	 PETOH + NO3 = PETOLO2 + HNO3 : 	3.48D-11*0.10 	;
+{1826.} 	 PETOH + OH = PET1O : 	8.20D-11*0.07 	;
+{1827.} 	 PETOH + OH = PETCATECH + HO2 : 	8.20D-11*0.73 	;
+{1828.} 	 PETOH + OH = PETOLO2 : 	8.20D-11*0.20 	;
+{1829.} 	 DM35EBO2 + HO2 = DM35EBOOH : 	KRO2HO2*0.914 	;
+{1830.} 	 DM35EBO2 + NO = DM35EBNO3 : 	KRO2NO*0.417 	;
+{1831.} 	 DM35EBO2 + NO = DM35EBO + NO2 : 	KRO2NO*0.583 	;
+{1832.} 	 DM35EBO2 + NO3 = DM35EBO + NO2 : 	KRO2NO3 	;
+{1833.} 	 DM35EBO2 = DM35EBO : 	2.50D-13*RO2*0.6 	;
+{1834.} 	 DM35EBO2 = DM35EBOH : 	2.50D-13*RO2*0.2 	;
+{1835.} 	 DM35EBO2 = DMPHCOME : 	2.50D-13*RO2*0.2 	;
+{1836.} 	 DMEBIPRO2 + HO2 = DMEBPROOH : 	KRO2HO2*0.914 	;
+{1837.} 	 DMEBIPRO2 + NO = DMEBIPNO3 : 	KRO2NO*0.167 	;
+{1838.} 	 DMEBIPRO2 + NO = DMEBIPRO + NO2 : 	KRO2NO*0.833 	;
+{1839.} 	 DMEBIPRO2 + NO3 = DMEBIPRO + NO2 : 	KRO2NO3 	;
+{1840.} 	 DMEBIPRO2 = DMEBIPRO : 	8.80D-13*RO2*0.6 	;
+{1841.} 	 DMEBIPRO2 = DMEBPR2OH : 	8.80D-13*RO2*0.2 	;
+{1842.} 	 DMEBIPRO2 = DMEOBPROH : 	8.80D-13*RO2*0.2 	;
+{1843.} 	 DMEBPOXMUC + NO3 = DMEBMUCO3 + HNO3 : 	KNO3AL*4.25 	;
+{1844.} 	 DMEBPOXMUC + O3 = EPXMALKT + EGLYOOD : 	1.25D-17 	;
+{1845.} 	 DMEBPOXMUC + OH = DMEBMUCO2 : 	1.02D-10*0.79 	;
+{1846.} 	 DMEBPOXMUC + OH = DMEBMUCO3 : 	1.02D-10*0.21 	;
+{1847.} 	 DMEBPOXMUC = C8M2CO6O2 + HO2 + CO : 	J(4)*0.028*0.5 	;
+{1848.} 	 DMEBPOXMUC = EPXMALKT + C2H5CO3 + HO2 + CO : 	J(4)*0.028*0.5 	;
+{1849.} 	 DMEPHOH + NO3 = DMEPH1O + HNO3 : 	1.30D-11*0.213 	;
+{1850.} 	 DMEPHOH + NO3 = NDMEPHOLO2 : 	1.30D-11*0.787 	;
+{1851.} 	 DMEPHOH + OH = DMEPH1O : 	8.20D-11*0.054 	;
+{1852.} 	 DMEPHOH + OH = DMEPHOLO2 : 	8.20D-11*0.946 	;
+{1853.} 	 DE35TO2 + HO2 = DE35TOOH : 	KRO2HO2*0.932 	;
+{1854.} 	 DE35TO2 + NO = DE35TNO3 : 	KRO2NO*0.431 	;
+{1855.} 	 DE35TO2 + NO = DE35TO + NO2 : 	KRO2NO*0.569 	;
+{1856.} 	 DE35TO2 + NO3 = DE35TO + NO2 : 	KRO2NO3 	;
+{1857.} 	 DE35TO2 = DE35TO : 	2.50D-13*RO2*0.6 	;
+{1858.} 	 DE35TO2 = DE35TOH : 	2.50D-13*RO2*0.2 	;
+{1859.} 	 DE35TO2 = EMPHCOME : 	2.50D-13*RO2*0.2 	;
+{1860.} 	 DEMPHOH + NO3 = DEMPHSMS1O + HNO3 : 	1.30D-11*0.213 	;
+{1861.} 	 DEMPHOH + NO3 = NDEMPHOLO2 : 	1.30D-11*0.787 	;
+{1862.} 	 DEMPHOH + OH = DEMPHOLO2 : 	8.20D-11*0.946 	;
+{1863.} 	 DEMPHOH + OH = DEMPHSMS1O : 	8.20D-11*0.054 	;
+{1864.} 	 DETLBIPRO2 + HO2 = DETLBPROOH : 	KRO2HO2*0.932 	;
+{1865.} 	 DETLBIPRO2 + NO = DETLBIPNO3 : 	KRO2NO*0.172 	;
+{1866.} 	 DETLBIPRO2 + NO = DETLBIPRO + NO2 : 	KRO2NO*0.828 	;
+{1867.} 	 DETLBIPRO2 + NO3 = DETLBIPRO + NO2 : 	KRO2NO3 	;
+{1868.} 	 DETLBIPRO2 = DETLBIPRO : 	8.80D-13*RO2*0.6 	;
+{1869.} 	 DETLBIPRO2 = DETLBPR2OH : 	8.80D-13*RO2*0.2 	;
+{1870.} 	 DETLBIPRO2 = DETLOBPROH : 	8.80D-13*RO2*0.2 	;
+{1871.} 	 DETLPOXMUC + NO3 = DETLMUCO3 + HNO3 : 	KNO3AL*4.25 	;
+{1872.} 	 DETLPOXMUC + O3 = EPXEALKT + EGLYOOD : 	1.25D-17 	;
+{1873.} 	 DETLPOXMUC + OH = DETLMUCO2 : 	1.05D-10*0.79 	;
+{1874.} 	 DETLPOXMUC + OH = DETLMUCO3 : 	1.05D-10*0.21 	;
+{1875.} 	 DETLPOXMUC = C9M2CO6O2 + HO2 + CO : 	J(4)*0.028*0.5 	;
+{1876.} 	 DETLPOXMUC = EPXEALKT + C2H5CO3 + HO2 + CO : 	J(4)*0.028*0.5 	;
+{1877.} 	 NSTYRENO2 + HO2 = NSTYRENOOH : 	KRO2HO2*0.859 	;
+{1878.} 	 NSTYRENO2 + NO = NO2 + NSTYRENEO : 	KRO2NO 	;
+{1879.} 	 NSTYRENO2 + NO3 = NO2 + NSTYRENEO : 	KRO2NO3 	;
+{1880.} 	 NSTYRENO2 = NSTYRENEO : 	2.50D-13*RO2 	;
+{1881.} 	 PHCHOOA = BENZENE : 	KDEC*0.20 	;
+{1882.} 	 PHCHOOA = C6H5O2 + CO + OH : 	KDEC*0.36 	;
+{1883.} 	 PHCHOOA = C6H5O2 + HO2 : 	KDEC*0.20 	;
+{1884.} 	 PHCHOOA = PHCHOO : 	KDEC*0.24 	;
+{1885.} 	 STYRENO2 + HO2 = STYRENOOH : 	KRO2HO2*0.859 	;
+{1886.} 	 STYRENO2 + NO = NO2 + STYRENO : 	KRO2NO 	;
+{1887.} 	 STYRENO2 + NO3 = NO2 + STYRENO : 	KRO2NO3 	;
+{1888.} 	 STYRENO2 = STYRENO : 	2.50D-13*RO2 	;
+{1889.} 	 C6H5CO3 + HO2 = C6H5CO3H : 	KAPHO2*0.41 	;
+{1890.} 	 C6H5CO3 + HO2 = C6H5O2 + OH : 	KAPHO2*0.44 	;
+{1891.} 	 C6H5CO3 + HO2 = PHCOOH + O3 : 	KAPHO2*0.15 	;
+{1892.} 	 C6H5CO3 + NO = C6H5O2 + NO2 : 	KAPNO 	;
+{1893.} 	 C6H5CO3 + NO2 = PBZN : 	KFPAN 	;
+{1894.} 	 C6H5CO3 + NO3 = C6H5O2 + NO2 : 	KRO2NO3*1.74 	;
+{1895.} 	 C6H5CO3 = C6H5O2 : 	1.00D-11*RO2*0.7 	;
+{1896.} 	 C6H5CO3 = PHCOOH : 	1.00D-11*RO2*0.3 	;
+{1897.} 	 C6H5O2 + HO2 = C6H5OOH : 	KRO2HO2*0.770 	;
+{1898.} 	 C6H5O2 + NO = C6H5O + NO2 : 	KRO2NO 	;
+{1899.} 	 C6H5O2 + NO3 = C6H5O + NO2 : 	KRO2NO3 	;
+{1900.} 	 C6H5O2 = C6H5O : 	2.50D-13*RO2 	;
+{1901.} 	 CH2CLO2 + HO2 = CH2CLOOH : 	3.2D-13*EXP(820/TEMP)*0.3 	;
+{1902.} 	 CH2CLO2 + HO2 = CHOCL : 	3.2D-13*EXP(820/TEMP)*0.7 	;
+{1903.} 	 CH2CLO2 + NO = CH2CLO + NO2 : 	KRO2NO*1.5 	;
+{1904.} 	 CH2CLO2 + NO3 = CH2CLO + NO2 : 	KRO2NO3 	;
+{1905.} 	 CH2CLO2 = CH2CLO : 	2*(KCH3O2*1.9D-13*EXP(870/TEMP))**0.5*RO2*0.6 	;
+{1906.} 	 CH2CLO2 = CH2CLOH : 	2*(KCH3O2*1.9D-13*EXP(870/TEMP))**0.5*RO2*0.2 	;
+{1907.} 	 CH2CLO2 = CHOCL : 	2*(KCH3O2*1.9D-13*EXP(870/TEMP))**0.5*RO2*0.2 	;
+{1908.} 	 CHCL2O2 + HO2 = CHCL2OOH : 	5.6D-13*EXP(700/TEMP) 	;
+{1909.} 	 CHCL2O2 + NO = CHCL2O + NO2 : 	KRO2NO*1.5 	;
+{1910.} 	 CHCL2O2 + NO3 = CHCL2O + NO2 : 	KRO2NO3 	;
+{1911.} 	 CHCL2O2 = CHCL2O : 	2.00D-12*0.6*RO2 	;
+{1912.} 	 CHCL2O2 = CHCL2OH : 	2.00D-12*0.2*RO2 	;
+{1913.} 	 CHCL2O2 = COCL2 : 	2.00D-12*0.2*RO2 	;
+{1914.} 	 CCL3O2 + HO2 = CCL3OOH : 	4.7D-13*EXP(710/TEMP) 	;
+{1915.} 	 CCL3O2 + NO = CCL3O + NO2 : 	KRO2NO*1.8 	;
+{1916.} 	 CCL3O2 + NO3 = CCL3O + NO2 : 	KRO2NO3 	;
+{1917.} 	 CCL3O2 = CCL3O : 	2*(KCH3O2*3.3D-13*EXP(740/TEMP))**0.5*RO2*0.7 	;
+{1918.} 	 CCL3O2 = CCL3OH : 	2*(KCH3O2*3.3D-13*EXP(740/TEMP))**0.5*RO2*0.3 	;
+{1919.} 	 CCL3CH2O2 + HO2 = CCL3CH2OOH : 	3.30D-13*EXP(820/TEMP) 	;
+{1920.} 	 CCL3CH2O2 + NO = CCL3CH2O + NO2 : 	KRO2NO*1.5 	;
+{1921.} 	 CCL3CH2O2 + NO3 = CCL3CH2O + NO2 : 	KRO2NO3 	;
+{1922.} 	 CCL3CH2O2 = CCL3CH2O : 	2.00D-12*0.6*RO2 	;
+{1923.} 	 CCL3CH2O2 = CCL3CH2OH : 	2.00D-12*0.2*RO2 	;
+{1924.} 	 CCL3CH2O2 = CCL3CHO : 	2.00D-12*0.2*RO2 	;
+{1925.} 	 TCEOHO2 + HO2 = TCEOHOOH : 	3.30D-13*EXP(820/TEMP) 	;
+{1926.} 	 TCEOHO2 + NO = TCEOHO + NO2 : 	KRO2NO*1.5 	;
+{1927.} 	 TCEOHO2 + NO3 = TCEOHO + NO2 : 	KRO2NO3 	;
+{1928.} 	 TCEOHO2 = TCE2OH : 	9.20D-14*0.3*RO2 	;
+{1929.} 	 TCEOHO2 = TCEOHO : 	9.20D-14*0.7*RO2 	;
+{1930.} 	 C2CL3OHAO2 + HO2 = C2CL3OHOOH : 	3.30D-13*EXP(820/TEMP) 	;
+{1931.} 	 C2CL3OHAO2 + NO = C2CL3OHAO + NO2 : 	KRO2NO*1.5 	;
+{1932.} 	 C2CL3OHAO2 + NO3 = C2CL3OHAO + NO2 : 	KRO2NO3 	;
+{1933.} 	 C2CL3OHAO2 = C2CL32OH : 	9.20D-14*0.3*RO2 	;
+{1934.} 	 C2CL3OHAO2 = C2CL3OHAO : 	9.20D-14*0.7*RO2 	;
+{1935.} 	 C2CL3OHBO2 + HO2 = C2CL3HOOOH : 	3.30D-13*EXP(820/TEMP) 	;
+{1936.} 	 C2CL3OHBO2 + NO = C2CL3OHBO + NO2 : 	KRO2NO*1.5 	;
+{1937.} 	 C2CL3OHBO2 + NO3 = C2CL3OHBO + NO2 : 	KRO2NO3 	;
+{1938.} 	 C2CL3OHBO2 = C2CL32OH : 	8.80D-13*0.2*RO2 	;
+{1939.} 	 C2CL3OHBO2 = C2CL3OHBO : 	8.80D-13*0.6*RO2 	;
+{1940.} 	 C2CL3OHBO2 = CCL2OHCOCL : 	8.80D-13*0.2*RO2 	;
+{1941.} 	 C2CL2OHO2 + HO2 = C2CL2OHOOH : 	3.30D-13*EXP(820/TEMP) 	;
+{1942.} 	 C2CL2OHO2 + NO = C2CL2OHO + NO2 : 	KRO2NO*1.5 	;
+{1943.} 	 C2CL2OHO2 + NO3 = C2CL2OHO + NO2 : 	KRO2NO3 	;
+{1944.} 	 C2CL2OHO2 = C2CL2OH2 : 	8.80D-13*0.2*RO2 	;
+{1945.} 	 C2CL2OHO2 = C2CL2OHO : 	8.80D-13*0.6*RO2 	;
+{1946.} 	 C2CL2OHO2 = CCLOHCOCL : 	8.80D-13*0.2*RO2 	;
+{1947.} 	 DICLETO2 + HO2 = DICLETO2H : 	3.30D-13*EXP(820/TEMP) 	;
+{1948.} 	 DICLETO2 + NO = DICLETO + NO2 : 	KRO2NO*1.5 	;
+{1949.} 	 DICLETO2 + NO3 = DICLETO + NO2 : 	KRO2NO3 	;
+{1950.} 	 DICLETO2 = CLETAL : 	8.80D-13*0.2*RO2 	;
+{1951.} 	 DICLETO2 = DICLETO : 	8.80D-13*0.6*RO2 	;
+{1952.} 	 DICLETO2 = DICLETOH : 	8.80D-13*0.2*RO2 	;
+{1953.} 	 CH2OHCL2O2 + HO2 = CH2OHCL2O2H : 	KRO2HO2 	;
+{1954.} 	 CH2OHCL2O2 + NO = CH2OHCL2O + NO2 : 	KRO2NO*1.5 	;
+{1955.} 	 CH2OHCL2O2 + NO3 = CH2OHCL2O + NO2 : 	KRO2NO3 	;
+{1956.} 	 CH2OHCL2O2 = CH2OHCL2O : 	8.80D-13*0.7*RO2 	;
+{1957.} 	 CH2OHCL2O2 = CL2OHCH2OH : 	8.80D-13*0.3*RO2 	;
+{1958.} 	 CL2OHCH2O2 + HO2 = CL2OHOOH : 	3.30D-13*EXP(820/TEMP) 	;
+{1959.} 	 CL2OHCH2O2 + NO = CL2OHCH2O + NO2 : 	KRO2NO*1.2 	;
+{1960.} 	 CL2OHCH2O2 + NO3 = CL2OHCH2O + NO2 : 	KRO2NO3 	;
+{1961.} 	 CL2OHCH2O2 = CL2OHCH2O : 	2.00D-12*0.60*RO2 	;
+{1962.} 	 CL2OHCH2O2 = CL2OHCH2OH : 	2.00D-12*0.20*RO2 	;
+{1963.} 	 CL2OHCH2O2 = CL2OHCHO : 	2.00D-12*0.20*RO2 	;
+{1964.} 	 CL12PRAO2 + HO2 = CL12PRAOOH : 	3.30D-13*EXP(820/TEMP) 	;
+{1965.} 	 CL12PRAO2 + NO = CL12PRAO + NO2 : 	KRO2NO 	;
+{1966.} 	 CL12PRAO2 + NO3 = CL12PRAO + NO2 : 	KRO2NO3 	;
+{1967.} 	 CL12PRAO2 = CL12PRAO : 	2.00D-12*0.60*RO2 	;
+{1968.} 	 CL12PRAO2 = CL12PRAOH : 	2.00D-12*0.20*RO2 	;
+{1969.} 	 CL12PRAO2 = CL12PRCHO : 	2.00D-12*0.20*RO2 	;
+{1970.} 	 CL12PRBO2 + HO2 = CL12PRBOOH : 	3.30D-13*EXP(820/TEMP) 	;
+{1971.} 	 CL12PRBO2 + NO = CL12PRBO + NO2 : 	KRO2NO 	;
+{1972.} 	 CL12PRBO2 + NO3 = CL12PRBO + NO2 : 	KRO2NO3 	;
+{1973.} 	 CL12PRBO2 = CL12PRBO : 	9.20D-13*0.70*RO2 	;
+{1974.} 	 CL12PRBO2 = CL12PRBOH : 	9.20D-13*0.30*RO2 	;
+{1975.} 	 CL12PRCO2 + HO2 = CL12PRCOOH : 	3.30D-13*EXP(820/TEMP) 	;
+{1976.} 	 CL12PRCO2 + NO = CL12PRCO + NO2 : 	KRO2NO 	;
+{1977.} 	 CL12PRCO2 + NO3 = CL12PRCO + NO2 : 	KRO2NO3 	;
+{1978.} 	 CL12PRCO2 = CH3CLCOCL : 	8.80D-13*0.20*RO2 	;
+{1979.} 	 CL12PRCO2 = CL12PRCO : 	8.80D-13*0.60*RO2 	;
+{1980.} 	 CL12PRCO2 = CL12PRCOH : 	8.80D-13*0.20*RO2 	;
+{1981.} 	 CH3CCL2O2 + HO2 = CH3CCL2OOH : 	3.30D-13*EXP(820/TEMP) 	;
+{1982.} 	 CH3CCL2O2 + NO = CH3CCL2O + NO2 : 	KRO2NO*1.5 	;
+{1983.} 	 CH3CCL2O2 + NO3 = CH3CCL2O + NO2 : 	KRO2NO3 	;
+{1984.} 	 CH3CCL2O2 = CH3CCL2O : 	9.20D-14*0.70*RO2 	;
+{1985.} 	 CH3CCL2O2 = CH3CCL2OH : 	9.20D-14*0.30*RO2 	;
+{1986.} 	 CHCL2CH2O2 + HO2 = CHCL2COOH : 	3.30D-13*EXP(820/TEMP) 	;
+{1987.} 	 CHCL2CH2O2 + NO = CHCL2CH2O + NO2 : 	KRO2NO*1.2 	;
+{1988.} 	 CHCL2CH2O2 + NO3 = CHCL2CH2O + NO2 : 	KRO2NO3 	;
+{1989.} 	 CHCL2CH2O2 = CHCL2CH2O : 	2.00D-12*0.60*RO2 	;
+{1990.} 	 CHCL2CH2O2 = CHCL2CHO : 	2.00D-12*0.20*RO2 	;
+{1991.} 	 CHCL2CH2O2 = CHCL2CHOH : 	2.00D-12*0.20*RO2 	;
+{1992.} 	 CH2CLCH2O2 + HO2 = CH2CLCOOH : 	3.30D-13*EXP(820/TEMP) 	;
+{1993.} 	 CH2CLCH2O2 + NO = CH2CLCH2O + NO2 : 	KRO2NO*1.2 	;
+{1994.} 	 CH2CLCH2O2 + NO3 = CH2CLCH2O + NO2 : 	KRO2NO3 	;
+{1995.} 	 CH2CLCH2O2 = CH2CLCH2O : 	2*(KCH3O2*4.2D-14*EXP(1300/TEMP))**0.5*RO2*0.6 	;
+{1996.} 	 CH2CLCH2O2 = CH2CLCH2OH : 	2*(KCH3O2*4.2D-14*EXP(1300/TEMP))**0.5*RO2*0.2 	;
+{1997.} 	 CH2CLCH2O2 = CLETAL : 	2*(KCH3O2*4.2D-14*EXP(1300/TEMP))**0.5*RO2*0.2 	;
+{1998.} 	 CH3CHCLO2 + HO2 = CH3CHCLOOH : 	3.30D-13*EXP(820/TEMP) 	;
+{1999.} 	 CH3CHCLO2 + NO = CH3CHCLO + NO2 : 	KRO2NO*1.5 	;
+{2000.} 	 CH3CHCLO2 + NO3 = CH3CHCLO + NO2 : 	KRO2NO3 	;
+{2001.} 	 CH3CHCLO2 = CH3CHCLO : 	2*(K298CH3O2*5D-12)**0.5*RO2*0.60 	;
+{2002.} 	 CH3CHCLO2 = CH3CHCLOH : 	2*(K298CH3O2*5D-12)**0.5*RO2*0.20 	;
+{2003.} 	 CH3CHCLO2 = CH3COCL : 	2*(K298CH3O2*5D-12)**0.5*RO2*0.20 	;
+{2004.} 	 CHCL2CL2O2 + HO2 = CCL2CL2OOH : 	3.30D-13*EXP(820/TEMP) 	;
+{2005.} 	 CHCL2CL2O2 + NO = CHCL2CL2O + NO2 : 	KRO2NO*1.5 	;
+{2006.} 	 CHCL2CL2O2 + NO3 = CHCL2CL2O + NO2 : 	KRO2NO3 	;
+{2007.} 	 CHCL2CL2O2 = CHCL2CL2O : 	9.20D-14*0.70*RO2 	;
+{2008.} 	 CHCL2CL2O2 = CHCL2CL2OH : 	9.20D-14*0.30*RO2 	;
+{2009.} 	 CH2CL3O2 + HO2 = CH2CL3OOH : 	3.30D-13*EXP(820/TEMP) 	;
+{2010.} 	 CH2CL3O2 + NO = CH2CL3O + NO2 : 	KRO2NO*1.5 	;
+{2011.} 	 CH2CL3O2 + NO3 = CH2CL3O + NO2 : 	KRO2NO3 	;
+{2012.} 	 CH2CL3O2 = CH2CL3O : 	9.20D-14*0.60*RO2 	;
+{2013.} 	 CH2CL3O2 = CH2CL3OH : 	9.20D-14*0.20*RO2 	;
+{2014.} 	 CH2CL3O2 = CH2CLCOCL : 	9.20D-14*0.20*RO2 	;
+{2015.} 	 CHCL3O2 + HO2 = CHCL3OOH : 	3.30D-13*EXP(820/TEMP) 	;
+{2016.} 	 CHCL3O2 + NO = CHCL3O + NO2 : 	KRO2NO*1.5 	;
+{2017.} 	 CHCL3O2 + NO3 = CHCL3O + NO2 : 	KRO2NO3 	;
+{2018.} 	 CHCL3O2 = CHCL2CHO : 	2.00D-12*0.20*RO2 	;
+{2019.} 	 CHCL3O2 = CHCL3O : 	2.00D-12*0.60*RO2 	;
+{2020.} 	 CHCL3O2 = CHCL3OH : 	2.00D-12*0.20*RO2 	;
+{2021.} 	 CCLNO3O2 + HO2 = CCLNO3COOH + OH : 	KRO2HO2*0.387 	;
+{2022.} 	 CCLNO3O2 + NO = CCLNO3CO + NO2 : 	KRO2NO*1.6 	;
+{2023.} 	 CCLNO3O2 + NO3 = CCLNO3CO + NO2 : 	KRO2NO3 	;
+{2024.} 	 CCLNO3O2 = CCLCONO3 : 	0.2*2E-12*RO2 	;
+{2025.} 	 CCLNO3O2 = CCLNO3CO : 	0.6*2E-12*RO2 	;
+{2026.} 	 CCLNO3O2 = CCLNO3COH : 	0.2*2E-12*RO2 	;
+{2027.} 	 CNO3CLO2 + HO2 = CNO3CLOOH + OH : 	3.30D-13*EXP(820/TEMP) 	;
+{2028.} 	 CNO3CLO2 + NO = CNO3CLO + NO2 : 	KRO2NO*2.2 	;
+{2029.} 	 CNO3CLO2 + NO3 = CNO3CLO + NO2 : 	KRO2NO3 	;
+{2030.} 	 CNO3CLO2 = CNO3CLO : 	0.6*2E-12*RO2 	;
+{2031.} 	 CNO3CLO2 = CNO3CLOH : 	0.2*2E-12*RO2 	;
+{2032.} 	 CNO3CLO2 = CNO3OCL : 	0.2*2E-12*RO2 	;
+{2033.} 	 CHOCL + NO3 = CO + CL + HNO3 : 	KNO3AL 	;
+{2034.} 	 CHOCL + OH = CO + CL : 	6.12D-12 	;
+{2035.} 	 CHOCL = HO2 + CO + CL : 	J(11) 	;
+{2036.} 	 CHCLOOA = CHCLOO : 	KDEC*0.25 	;
+{2037.} 	 CHCLOOA = HCL : 	KDEC*0.5*0.395 	;
+{2038.} 	 CHCLOOA = HO2 + CL : 	KDEC*0.5*0.395 	;
+{2039.} 	 CHCLOOA = OH + CO + CL : 	KDEC*0.355 	;
+{2040.} 	 CCLOHCH2O2 + HO2 = CCLOHCOOH : 	KRO2HO2*0.387 	;
+{2041.} 	 CCLOHCH2O2 + NO = CHCLOHCO + NO2 : 	KRO2NO*1.6 	;
+{2042.} 	 CCLOHCH2O2 + NO3 = CHCLOHCO + NO2 : 	KRO2NO3 	;
+{2043.} 	 CCLOHCH2O2 = CCLOHCHO : 	0.2*2.0D-12*RO2 	;
+{2044.} 	 CCLOHCH2O2 = CH2OHCCLOH : 	0.2*2.0D-12*RO2 	;
+{2045.} 	 CCLOHCH2O2 = CHCLOHCO : 	0.6*2.0D-12*RO2 	;
+{2046.} 	 CH2OHCCLO2 + HO2 = COHCCLOOH : 	3.30D-13*EXP(820/TEMP) 	;
+{2047.} 	 CH2OHCCLO2 + NO = CH2OHCCLO + NO2 : 	KRO2NO*2.2 	;
+{2048.} 	 CH2OHCCLO2 + NO3 = CH2OHCCLO + NO2 : 	KRO2NO3 	;
+{2049.} 	 CH2OHCCLO2 = CH2OHCCLO : 	0.6*8.8D-13*RO2 	;
+{2050.} 	 CH2OHCCLO2 = CH2OHCCLOH : 	0.2*8.8D-13*RO2 	;
+{2051.} 	 CH2OHCCLO2 = CH2OHCOCL : 	0.2*8.8D-13*RO2 	;
+{2052.} 	 NBUTDAO2 + HO2 = NBUTDAOOH : 	KRO2HO2*0.625 	;
+{2053.} 	 NBUTDAO2 + NO = NBUTDAO + NO2 : 	KRO2NO 	;
+{2054.} 	 NBUTDAO2 + NO3 = NBUTDAO + NO2 : 	KRO2NO3 	;
+{2055.} 	 NBUTDAO2 = NBUTDAO : 	2.50D-13*0.6*RO2 	;
+{2056.} 	 NBUTDAO2 = NBUTDAOH : 	2.50D-13*0.2*RO2 	;
+{2057.} 	 NBUTDAO2 = NMVK : 	2.50D-13*0.2*RO2 	;
+{2058.} 	 NBUTDBO2 + HO2 = NBUTDBOOH : 	KRO2HO2*0.625 	;
+{2059.} 	 NBUTDBO2 + NO = NBUTDBNO3 : 	KRO2NO*0.033 	;
+{2060.} 	 NBUTDBO2 + NO = NBUTDBO + NO2 : 	KRO2NO*0.967 	;
+{2061.} 	 NBUTDBO2 + NO3 = NBUTDBO + NO2 : 	KRO2NO3 	;
+{2062.} 	 NBUTDBO2 = BUTDANO3 : 	1.30D-12*0.2*RO2 	;
+{2063.} 	 NBUTDBO2 = NBUTDBO : 	1.30D-12*0.6*RO2 	;
+{2064.} 	 NBUTDBO2 = NC3CHO : 	1.30D-12*0.2*RO2 	;
+{2065.} 	 CH2OOD = CH2OO : 	KDEC*0.24 	;
+{2066.} 	 CH2OOD = CO : 	KDEC*0.68 	;
+{2067.} 	 CH2OOD = HO2 + CO + OH : 	KDEC*0.08 	;
+{2068.} 	 ACROOA = ACROO : 	KDEC*0.24 	;
+{2069.} 	 ACROOA = C2H4 : 	KDEC*0.34 	;
+{2070.} 	 ACROOA = HO2 + CO + HCHO + CO + OH : 	KDEC*0.08 	;
+{2071.} 	 ACROOA = HO2 + CO + HCHO + HO2 : 	KDEC*0.34 	;
+{2072.} 	 BUTDAO2 + HO2 = BUTDAOOH : 	KRO2HO2*0.625 	;
+{2073.} 	 BUTDAO2 + NO = BUTDANO3 : 	KRO2NO*0.053 	;
+{2074.} 	 BUTDAO2 + NO = BUTDAO + NO2 : 	KRO2NO*0.947 	;
+{2075.} 	 BUTDAO2 + NO3 = BUTDAO + NO2 : 	KRO2NO3 	;
+{2076.} 	 BUTDAO2 = BUTDAO : 	2.00D-12*0.8*RO2 	;
+{2077.} 	 BUTDAO2 = BUTDAOH : 	2.00D-12*0.1*RO2 	;
+{2078.} 	 BUTDAO2 = HC3CHO : 	2.00D-12*0.1*RO2 	;
+{2079.} 	 BUTDBO2 + HO2 = BUTDBOOH : 	KRO2HO2*0.625 	;
+{2080.} 	 BUTDBO2 + NO = BUTDBNO3 : 	KRO2NO*0.071 	;
+{2081.} 	 BUTDBO2 + NO = BUTDBO + NO2 : 	KRO2NO*0.929 	;
+{2082.} 	 BUTDBO2 + NO3 = BUTDBO + NO2 : 	KRO2NO3 	;
+{2083.} 	 BUTDBO2 = BUTDBO : 	2.90D-12*0.8*RO2 	;
+{2084.} 	 BUTDBO2 = BUTDBOH : 	2.90D-12*0.1*RO2 	;
+{2085.} 	 BUTDBO2 = MVKOH : 	2.90D-12*0.1*RO2 	;
+{2086.} 	 BUTDCO2 + HO2 = BUTDCOOH : 	KRO2HO2*0.625 	;
+{2087.} 	 BUTDCO2 + NO = BUTDCO + NO2 : 	KRO2NO*0.947 	;
+{2088.} 	 BUTDCO2 + NO = NBUTDAOH : 	KRO2NO*0.053 	;
+{2089.} 	 BUTDCO2 + NO3 = BUTDCO + NO2 : 	KRO2NO3 	;
+{2090.} 	 BUTDCO2 = BUTDBOH : 	2.65D-12*0.1*RO2 	;
+{2091.} 	 BUTDCO2 = BUTDCO : 	2.65D-12*0.8*RO2 	;
+{2092.} 	 BUTDCO2 = HC3CCHO : 	2.65D-12*0.1*RO2 	;
+{2093.} 	 NISOPO2 + HO2 = NISOPOOH : 	KRO2HO2*0.706 	;
+{2094.} 	 NISOPO2 + NO = NISOPNO3 : 	KRO2NO*0.052 	;
+{2095.} 	 NISOPO2 + NO = NISOPO + NO2 : 	KRO2NO*0.948 	;
+{2096.} 	 NISOPO2 + NO3 = NISOPO + NO2 : 	KRO2NO3 	;
+{2097.} 	 NISOPO2 = ISOPCNO3 : 	1.30D-12*0.2*RO2 	;
+{2098.} 	 NISOPO2 = NC4CHO : 	1.30D-12*0.2*RO2 	;
+{2099.} 	 NISOPO2 = NISOPO : 	1.30D-12*0.6*RO2 	;
+{2100.} 	 CH2OOE = CH2OO : 	KDEC*0.22 	;
+{2101.} 	 CH2OOE = CO : 	KDEC*0.51 	;
+{2102.} 	 CH2OOE = HO2 + CO + OH : 	KDEC*0.27 	;
+{2103.} 	 MVK = C3H6 + CO : 	J(23) 	;
+{2104.} 	 MVK = CH3CO3 + HCHO + CO + HO2 : 	J(24) 	;
+{2105.} 	 O3 + MVK = MGLOOA + HCHO : 	8.5D-16*EXP(-1520/TEMP)*0.5 	;
+{2106.} 	 O3 + MVK = MGLYOX + CH2OOB : 	8.5D-16*EXP(-1520/TEMP)*0.5 	;
+{2107.} 	 OH + MVK = HMVKAO2 : 	2.6D-12*EXP(610/TEMP)*0.3 	;
+{2108.} 	 OH + MVK = HMVKBO2 : 	2.6D-12*EXP(610/TEMP)*0.7 	;
+{2109.} 	 MACROOA = C3H6 : 	KDEC*0.255 	;
+{2110.} 	 MACROOA = CH3CO3 + HCHO + HO2 : 	KDEC*0.255 	;
+{2111.} 	 MACROOA = MACROO : 	KDEC*0.22 	;
+{2112.} 	 MACROOA = OH + CO + CH3CO3 + HCHO : 	KDEC*0.27 	;
+{2113.} 	 MVKOOA = C3H6 : 	KDEC*0.255 	;
+{2114.} 	 MVKOOA = CH3O2 + HCHO + CO + HO2 : 	KDEC*0.255 	;
+{2115.} 	 MVKOOA = MVKOO : 	KDEC*0.22 	;
+{2116.} 	 MVKOOA = OH + MVKO2 : 	KDEC*0.27 	;
+{2117.} 	 ISOPAO2 + HO2 = ISOPAOOH : 	KRO2HO2*0.706 	;
+{2118.} 	 ISOPAO2 + NO = ISOPANO3 : 	KRO2NO*0.100 	;
+{2119.} 	 ISOPAO2 + NO = ISOPAO + NO2 : 	KRO2NO*0.900 	;
+{2120.} 	 ISOPAO2 + NO3 = ISOPAO + NO2 : 	KRO2NO3 	;
+{2121.} 	 ISOPAO2 = HC4ACHO : 	2.40D-12*0.1*RO2 	;
+{2122.} 	 ISOPAO2 = ISOPAO : 	2.40D-12*0.8*RO2 	;
+{2123.} 	 ISOPAO2 = ISOPAOH : 	2.40D-12*0.1*RO2 	;
+{2124.} 	 ISOPBO2 + HO2 = ISOPBOOH : 	KRO2HO2*0.706 	;
+{2125.} 	 ISOPBO2 + NO = ISOPBNO3 : 	KRO2NO*0.066 	;
+{2126.} 	 ISOPBO2 + NO = ISOPBO + NO2 : 	KRO2NO*0.934 	;
+{2127.} 	 ISOPBO2 + NO3 = ISOPBO + NO2 : 	KRO2NO3 	;
+{2128.} 	 ISOPBO2 = ISOPBO : 	8.00D-13*0.8*RO2 	;
+{2129.} 	 ISOPBO2 = ISOPBOH : 	8.00D-13*0.2*RO2 	;
+{2130.} 	 ISOPCO2 + HO2 = ISOPCOOH : 	KRO2HO2*0.706 	;
+{2131.} 	 ISOPCO2 + NO = ISOPCNO3 : 	KRO2NO*0.100 	;
+{2132.} 	 ISOPCO2 + NO = ISOPCO + NO2 : 	KRO2NO*0.900 	;
+{2133.} 	 ISOPCO2 + NO3 = ISOPCO + NO2 : 	KRO2NO3 	;
+{2134.} 	 ISOPCO2 = HC4CCHO : 	2.00D-12*0.1*RO2 	;
+{2135.} 	 ISOPCO2 = ISOPAOH : 	2.00D-12*0.1*RO2 	;
+{2136.} 	 ISOPCO2 = ISOPCO : 	2.00D-12*0.8*RO2 	;
+{2137.} 	 ISOPDO2 + HO2 = ISOPDOOH : 	KRO2HO2*0.706 	;
+{2138.} 	 ISOPDO2 + NO = ISOPDNO3 : 	KRO2NO*0.134 	;
+{2139.} 	 ISOPDO2 + NO = ISOPDO + NO2 : 	KRO2NO*0.866 	;
+{2140.} 	 ISOPDO2 + NO3 = ISOPDO + NO2 : 	KRO2NO3 	;
+{2141.} 	 ISOPDO2 = HCOC5 : 	2.90D-12*0.1*RO2 	;
+{2142.} 	 ISOPDO2 = ISOPDO : 	2.90D-12*0.8*RO2 	;
+{2143.} 	 ISOPDO2 = ISOPDOH : 	2.90D-12*0.1*RO2 	;
+{2144.} 	 CHOOCH2O2 + HO2 = CHOOCH2OOH : 	KRO2HO2*0.387 	;
+{2145.} 	 CHOOCH2O2 + NO = CHOOCH2NO3 : 	KRO2NO*0.009 	;
+{2146.} 	 CHOOCH2O2 + NO = NO2 + CHOOCH2O : 	KRO2NO*0.991 	;
+{2147.} 	 CHOOCH2O2 + NO3 = CHOOCH2O + NO2 : 	KRO2NO3 	;
+{2148.} 	 CHOOCH2O2 = CHOOCH2O : 	2.00D-12*0.6*RO2 	;
+{2149.} 	 CHOOCH2O2 = CHOOCH2OH : 	2.00D-12*0.2*RO2 	;
+{2150.} 	 CHOOCH2O2 = CHOOCHO : 	2.00D-12*0.2*RO2 	;
+{2151.} 	 METHACETO2 + HO2 = METACETHO : 	KRO2HO2*0.520*0.4 	;
+{2152.} 	 METHACETO2 + HO2 = METACETO2H : 	KRO2HO2*0.520*0.6 	;
+{2153.} 	 METHACETO2 + NO = METACETNO3 : 	KRO2NO*0.019 	;
+{2154.} 	 METHACETO2 + NO = METHACETO + NO2 : 	KRO2NO*0.981 	;
+{2155.} 	 METHACETO2 + NO3 = METHACETO + NO2 : 	KRO2NO3 	;
+{2156.} 	 METHACETO2 = METACETHO : 	2.00D-12*0.2*RO2 	;
+{2157.} 	 METHACETO2 = METACETOH : 	2.00D-12*0.2*RO2 	;
+{2158.} 	 METHACETO2 = METHACETO : 	2.00D-12*0.6*RO2 	;
+{2159.} 	 MOCOCH2O2 + HO2 = MOCOCH2OOH : 	KRO2HO2*0.520 	;
+{2160.} 	 MOCOCH2O2 + NO = MOCOCH2O + NO2 : 	KRO2NO 	;
+{2161.} 	 MOCOCH2O2 + NO3 = MOCOCH2O + NO2 : 	KRO2NO3 	;
+{2162.} 	 MOCOCH2O2 = MOCOCH2O : 	2.00D-12*0.6*RO2 	;
+{2163.} 	 MOCOCH2O2 = MOXCOCH2OH : 	2.00D-12*0.2*RO2 	;
+{2164.} 	 MOCOCH2O2 = MOXYCOCHO : 	2.00D-12*0.2*RO2 	;
+{2165.} 	 ACETC2H4O2 + HO2 = ACEC2H4OOH : 	KRO2HO2*0.625 	;
+{2166.} 	 ACETC2H4O2 + NO = ACEC2H4NO3 : 	KRO2NO*0.033 	;
+{2167.} 	 ACETC2H4O2 + NO = ACETC2H4O + NO2 : 	KRO2NO*0.967 	;
+{2168.} 	 ACETC2H4O2 + NO3 = ACETC2H4O + NO2 : 	KRO2NO3 	;
+{2169.} 	 ACETC2H4O2 = ACETC2H4O : 	1.30D-12*0.6*RO2 	;
+{2170.} 	 ACETC2H4O2 = ACETETCHO : 	1.30D-12*0.2*RO2 	;
+{2171.} 	 ACETC2H4O2 = ETACETOH : 	1.30D-12*0.2*RO2 	;
+{2172.} 	 EOCOCH2O2 + HO2 = EOCOCH2OOH : 	KRO2HO2*0.625 	;
+{2173.} 	 EOCOCH2O2 + NO = EOCOCH2O + NO2 : 	KRO2NO 	;
+{2174.} 	 EOCOCH2O2 + NO3 = EOCOCH2O + NO2 : 	KRO2NO3 	;
+{2175.} 	 EOCOCH2O2 = EOCOCH2O : 	2.00D-12*0.60*RO2 	;
+{2176.} 	 EOCOCH2O2 = EOCOCHO : 	2.00D-12*0.20*RO2 	;
+{2177.} 	 EOCOCH2O2 = EOX2COMEOH : 	2.00D-12*0.20*RO2 	;
+{2178.} 	 ETHACETO2 + HO2 = ETHACETOOH : 	KRO2HO2*0.625*0.6 	;
+{2179.} 	 ETHACETO2 + HO2 = METHCOACET : 	KRO2HO2*0.625*0.4 	;
+{2180.} 	 ETHACETO2 + NO = ETACETNO3 : 	KRO2NO*0.083 	;
+{2181.} 	 ETHACETO2 + NO = ETHACETO + NO2 : 	KRO2NO*0.917 	;
+{2182.} 	 ETHACETO2 + NO3 = ETHACETO + NO2 : 	KRO2NO3 	;
+{2183.} 	 ETHACETO2 = ETHACETO : 	2.00D-12*0.6*RO2 	;
+{2184.} 	 ETHACETO2 = ETHACETOH : 	2.00D-12*0.2*RO2 	;
+{2185.} 	 ETHACETO2 = METHCOACET : 	2.00D-12*0.2*RO2 	;
+{2186.} 	 NPROACEAO2 + HO2 = NPRACAOOH : 	KRO2HO2*0.706 	;
+{2187.} 	 NPROACEAO2 + NO = NPRACANO3 : 	KRO2NO*0.129 	;
+{2188.} 	 NPROACEAO2 + NO = NPROACEAO + NO2 : 	KRO2NO*0.871 	;
+{2189.} 	 NPROACEAO2 + NO3 = NPROACEAO + NO2 : 	KRO2NO3 	;
+{2190.} 	 NPROACEAO2 = ACEPROPONE : 	2.50D-13*0.2*RO2 	;
+{2191.} 	 NPROACEAO2 = NPRACAOH : 	2.50D-13*0.2*RO2 	;
+{2192.} 	 NPROACEAO2 = NPROACEAO : 	2.50D-13*0.6*RO2 	;
+{2193.} 	 NPROACEBO2 + HO2 = NPRACBOOH : 	KRO2HO2*0.706 	;
+{2194.} 	 NPROACEBO2 + NO = NPRACBNO3 : 	KRO2NO*0.129 	;
+{2195.} 	 NPROACEBO2 + NO = NPROACEBO + NO2 : 	KRO2NO*0.871 	;
+{2196.} 	 NPROACEBO2 + NO3 = NPROACEBO + NO2 : 	KRO2NO3 	;
+{2197.} 	 NPROACEBO2 = ACETCOC2H5 : 	8.80D-13*0.2*RO2 	;
+{2198.} 	 NPROACEBO2 = NPRACBOH : 	8.80D-13*0.2*RO2 	;
+{2199.} 	 NPROACEBO2 = NPROACEBO : 	8.80D-13*0.6*RO2 	;
+{2200.} 	 NPROACECO2 + HO2 = NPRACCOOH : 	KRO2HO2*0.706 	;
+{2201.} 	 NPROACECO2 + NO = NPRACCNO3 : 	KRO2NO*0.052 	;
+{2202.} 	 NPROACECO2 + NO = NPROACECO + NO2 : 	KRO2NO*0.948 	;
+{2203.} 	 NPROACECO2 + NO3 = NPROACECO + NO2 : 	KRO2NO3 	;
+{2204.} 	 NPROACECO2 = ACEC2CHO : 	1.30D-12*0.2*RO2 	;
+{2205.} 	 NPROACECO2 = NPRACCOH : 	1.30D-12*0.2*RO2 	;
+{2206.} 	 NPROACECO2 = NPROACECO : 	1.30D-12*0.6*RO2 	;
+{2207.} 	 IPRACBO2 + HO2 = IPRACBOOH : 	KRO2HO2*0.706 	;
+{2208.} 	 IPRACBO2 + NO = IPRACBNO3 : 	KRO2NO*0.052 	;
+{2209.} 	 IPRACBO2 + NO = IPRACBO + NO2 : 	KRO2NO*0.948 	;
+{2210.} 	 IPRACBO2 + NO3 = IPRACBO + NO2 : 	KRO2NO3 	;
+{2211.} 	 IPRACBO2 = IPRACBCHO : 	1.30D-12*0.2*RO2 	;
+{2212.} 	 IPRACBO2 = IPRACBO : 	1.30D-12*0.6*RO2 	;
+{2213.} 	 IPRACBO2 = IPRACBOH : 	1.30D-12*0.2*RO2 	;
+{2214.} 	 IPROACETO2 + HO2 = IPRACOOH : 	KRO2HO2*0.706 	;
+{2215.} 	 IPROACETO2 + NO = IPRACNO3 : 	KRO2NO*0.039 	;
+{2216.} 	 IPROACETO2 + NO = IPROACETO + NO2 : 	KRO2NO*0.961 	;
+{2217.} 	 IPROACETO2 + NO3 = IPROACETO + NO2 : 	KRO2NO3 	;
+{2218.} 	 IPROACETO2 = IPRACOH : 	2.00D-12*0.3*RO2 	;
+{2219.} 	 IPROACETO2 = IPROACETO : 	2.00D-12*0.7*RO2 	;
+{2220.} 	 NBUACETAO2 + HO2 = NBUACAOOH : 	KRO2HO2*0.770 	;
+{2221.} 	 NBUACETAO2 + NO = NBUACANO3 : 	KRO2NO*0.195 	;
+{2222.} 	 NBUACETAO2 + NO = NBUACETAO + NO2 : 	KRO2NO*0.805 	;
+{2223.} 	 NBUACETAO2 + NO3 = NBUACETAO + NO2 : 	KRO2NO3 	;
+{2224.} 	 NBUACETAO2 = ACEBUTONE : 	2.50D-13*0.2*RO2 	;
+{2225.} 	 NBUACETAO2 = NBUACAOH : 	2.50D-13*0.2*RO2 	;
+{2226.} 	 NBUACETAO2 = NBUACETAO : 	2.50D-13*0.6*RO2 	;
+{2227.} 	 NBUACETBO2 + HO2 = NBUACBOOH : 	KRO2HO2*0.770 	;
+{2228.} 	 NBUACETBO2 + NO = NBUACBNO3 : 	KRO2NO*0.195 	;
+{2229.} 	 NBUACETBO2 + NO = NBUACETBO + NO2 : 	KRO2NO*0.805 	;
+{2230.} 	 NBUACETBO2 + NO3 = NBUACETBO + NO2 : 	KRO2NO3 	;
+{2231.} 	 NBUACETBO2 = ACEBUTBONE : 	2.50D-13*0.2*RO2 	;
+{2232.} 	 NBUACETBO2 = NBUACBOH : 	2.50D-13*0.2*RO2 	;
+{2233.} 	 NBUACETBO2 = NBUACETBO : 	2.50D-13*0.6*RO2 	;
+{2234.} 	 NBUACETCO2 + HO2 = NBUACCOOH : 	KRO2HO2*0.770 	;
+{2235.} 	 NBUACETCO2 + NO = NBUACCNO3 : 	KRO2NO*0.195 	;
+{2236.} 	 NBUACETCO2 + NO = NBUACETCO + NO2 : 	KRO2NO*0.805 	;
+{2237.} 	 NBUACETCO2 + NO3 = NBUACETCO + NO2 : 	KRO2NO3 	;
+{2238.} 	 NBUACETCO2 = ACETCOC3H7 : 	8.80D-13*0.2*RO2 	;
+{2239.} 	 NBUACETCO2 = NBUACCOH : 	8.80D-13*0.2*RO2 	;
+{2240.} 	 NBUACETCO2 = NBUACETCO : 	8.80D-13*0.6*RO2 	;
+{2241.} 	 SBUACETAO2 + HO2 = SBUACAOOH : 	KRO2HO2*0.770 	;
+{2242.} 	 SBUACETAO2 + NO = SBUACANO3 : 	KRO2NO*0.058 	;
+{2243.} 	 SBUACETAO2 + NO = SBUACETAO + NO2 : 	KRO2NO*0.942 	;
+{2244.} 	 SBUACETAO2 + NO3 = SBUACETAO + NO2 : 	KRO2NO3 	;
+{2245.} 	 SBUACETAO2 = SBUACAOH : 	9.20D-14*0.3*RO2 	;
+{2246.} 	 SBUACETAO2 = SBUACETAO : 	9.20D-14*0.7*RO2 	;
+{2247.} 	 SBUACETBO2 + HO2 = SBUACBOOH : 	KRO2HO2*0.770 	;
+{2248.} 	 SBUACETBO2 + NO = SBUACBNO3 : 	KRO2NO*0.195 	;
+{2249.} 	 SBUACETBO2 + NO = SBUACETBO + NO2 : 	KRO2NO*0.805 	;
+{2250.} 	 SBUACETBO2 + NO3 = SBUACETBO + NO2 : 	KRO2NO3 	;
+{2251.} 	 SBUACETBO2 = SBUACBOH : 	2.50D-13*0.2*RO2 	;
+{2252.} 	 SBUACETBO2 = SBUACEONE : 	2.50D-13*0.2*RO2 	;
+{2253.} 	 SBUACETBO2 = SBUACETBO : 	2.50D-13*0.6*RO2 	;
+{2254.} 	 MCOOTBO2 + HO2 = MCOOTBOOH : 	KRO2HO2*0.770 	;
+{2255.} 	 MCOOTBO2 + NO = MCOOTBNO3 : 	KRO2NO*0.078 	;
+{2256.} 	 MCOOTBO2 + NO = MCOOTBO + NO2 : 	KRO2NO*0.922 	;
+{2257.} 	 MCOOTBO2 + NO3 = MCOOTBO + NO2 : 	KRO2NO3 	;
+{2258.} 	 MCOOTBO2 = MCOOTBO : 	1.30D-12*0.6*RO2 	;
+{2259.} 	 MCOOTBO2 = TBUACCO : 	1.30D-12*0.2*RO2 	;
+{2260.} 	 MCOOTBO2 = TBUACOH : 	1.30D-12*0.2*RO2 	;
+{2261.} 	 TBOCOCH2O2 + HO2 = BOCOCH2OOH : 	KRO2HO2*0.770 	;
+{2262.} 	 TBOCOCH2O2 + NO = TBOCOCH2O + NO2 : 	KRO2NO 	;
+{2263.} 	 TBOCOCH2O2 + NO3 = TBOCOCH2O + NO2 : 	KRO2NO3 	;
+{2264.} 	 TBOCOCH2O2 = TBOCOCH2O : 	2.00D-12*0.60*RO2 	;
+{2265.} 	 TBOCOCH2O2 = TBOCOCH2OH : 	2.00D-12*0.20*RO2 	;
+{2266.} 	 TBOCOCH2O2 = TBOCOCHO : 	2.00D-12*0.20*RO2 	;
+{2267.} 	 CH3OCH2O2 + HO2 = CH3OCH2OOH : 	KRO2HO2*0.387*0.6 	;
+{2268.} 	 CH3OCH2O2 + HO2 = CH3OCHO : 	KRO2HO2*0.387*0.4 	;
+{2269.} 	 CH3OCH2O2 + NO = CH3OCH2NO3 : 	KRO2NO*0.009 	;
+{2270.} 	 CH3OCH2O2 + NO = CH3OCH2O + NO2 : 	KRO2NO*0.991 	;
+{2271.} 	 CH3OCH2O2 + NO3 = CH3OCH2O + NO2 : 	KRO2NO3 	;
+{2272.} 	 CH3OCH2O2 = CH3OCH2O : 	2*(K298CH3O2*2.1D-12)**0.5*RO2*0.6 	;
+{2273.} 	 CH3OCH2O2 = CH3OCH2OH : 	2*(K298CH3O2*2.1D-12)**0.5*RO2*0.2 	;
+{2274.} 	 CH3OCH2O2 = CH3OCHO : 	2*(K298CH3O2*2.1D-12)**0.5*RO2*0.2 	;
+{2275.} 	 DIETETO2 + HO2 = DIETETOOH : 	KRO2HO2*0.625*0.6 	;
+{2276.} 	 DIETETO2 + HO2 = ETHACET : 	KRO2HO2*0.625*0.4 	;
+{2277.} 	 DIETETO2 + NO = DIETETNO3 : 	KRO2NO*0.083 	;
+{2278.} 	 DIETETO2 + NO = DIETETO + NO2 : 	KRO2NO*0.917 	;
+{2279.} 	 DIETETO2 + NO3 = DIETETO + NO2 : 	KRO2NO3 	;
+{2280.} 	 DIETETO2 = DIETETO : 	8.80D-13*0.6*RO2 	;
+{2281.} 	 DIETETO2 = DIETETOH : 	8.80D-13*0.2*RO2 	;
+{2282.} 	 DIETETO2 = ETHACET : 	8.80D-13*0.2*RO2 	;
+{2283.} 	 ETOC2O2 + HO2 = ETOC2OOH : 	KRO2HO2*0.625 	;
+{2284.} 	 ETOC2O2 + NO = ETOC2NO3 : 	KRO2NO*0.033 	;
+{2285.} 	 ETOC2O2 + NO = ETOC2O + NO2 : 	KRO2NO*0.967 	;
+{2286.} 	 ETOC2O2 + NO3 = ETOC2O + NO2 : 	KRO2NO3 	;
+{2287.} 	 ETOC2O2 = EOX2EOL : 	2.00D-12*0.2*RO2 	;
+{2288.} 	 ETOC2O2 = EOX2ETCHO : 	2.00D-12*0.2*RO2 	;
+{2289.} 	 ETOC2O2 = ETOC2O : 	2.00D-12*0.6*RO2 	;
+{2290.} 	 MTBEAO2 + HO2 = MTBEACHO : 	KRO2HO2*0.706*0.4 	;
+{2291.} 	 MTBEAO2 + HO2 = MTBEAOOH : 	KRO2HO2*0.706*0.6 	;
+{2292.} 	 MTBEAO2 + NO = MTBEANO3 : 	KRO2NO*0.052 	;
+{2293.} 	 MTBEAO2 + NO = MTBEAO + NO2 : 	KRO2NO*0.948 	;
+{2294.} 	 MTBEAO2 + NO3 = MTBEAO + NO2 : 	KRO2NO3 	;
+{2295.} 	 MTBEAO2 = MTBEACHO : 	2.00D-12*0.2*RO2 	;
+{2296.} 	 MTBEAO2 = MTBEAO : 	2.00D-12*0.6*RO2 	;
+{2297.} 	 MTBEAO2 = MTBEAOH : 	2.00D-12*0.2*RO2 	;
+{2298.} 	 MTBEBO2 + HO2 = MTBEBOOH : 	KRO2HO2*0.706 	;
+{2299.} 	 MTBEBO2 + NO = MTBEBNO3 : 	KRO2NO*0.052 	;
+{2300.} 	 MTBEBO2 + NO = MTBEBO + NO2 : 	KRO2NO*0.948 	;
+{2301.} 	 MTBEBO2 + NO3 = MTBEBO + NO2 : 	KRO2NO3 	;
+{2302.} 	 MTBEBO2 = MTBEBCHO : 	1.30D-12*0.2*RO2 	;
+{2303.} 	 MTBEBO2 = MTBEBO : 	1.30D-12*0.6*RO2 	;
+{2304.} 	 MTBEBO2 = MTBEBOH : 	1.30D-12*0.2*RO2 	;
+{2305.} 	 DIIPRETO2 + HO2 = DIIPRETOOH : 	KRO2HO2*0.770 	;
+{2306.} 	 DIIPRETO2 + NO = DIIPRETNO3 : 	KRO2NO*0.059 	;
+{2307.} 	 DIIPRETO2 + NO = DIIPRETO + NO2 : 	KRO2NO*0.941 	;
+{2308.} 	 DIIPRETO2 + NO3 = DIIPRETO + NO2 : 	KRO2NO3 	;
+{2309.} 	 DIIPRETO2 = DIIPRETO : 	9.20D-14*0.7*RO2 	;
+{2310.} 	 DIIPRETO2 = DIIPRETOH : 	9.20D-14*0.3*RO2 	;
+{2311.} 	 IPROMC2O2 + HO2 = IPROMC2OOH : 	KRO2HO2*0.770 	;
+{2312.} 	 IPROMC2O2 + NO = IPROMC2NO3 : 	KRO2NO*0.078 	;
+{2313.} 	 IPROMC2O2 + NO = IPROMC2O + NO2 : 	KRO2NO*0.922 	;
+{2314.} 	 IPROMC2O2 + NO3 = IPROMC2O + NO2 : 	KRO2NO3 	;
+{2315.} 	 IPROMC2O2 = IPROMC2O : 	2.00D-12*0.6*RO2 	;
+{2316.} 	 IPROMC2O2 = IPROMC2OH : 	2.00D-12*0.2*RO2 	;
+{2317.} 	 IPROMC2O2 = IPROMCCHO : 	2.00D-12*0.2*RO2 	;
+{2318.} 	 ETBEAO2 + HO2 = ETBEAOOH : 	KRO2HO2*0.770 	;
+{2319.} 	 ETBEAO2 + NO = ETBEANO3 : 	KRO2NO*0.078 	;
+{2320.} 	 ETBEAO2 + NO = ETBEAO + NO2 : 	KRO2NO*0.922 	;
+{2321.} 	 ETBEAO2 + NO3 = ETBEAO + NO2 : 	KRO2NO3 	;
+{2322.} 	 ETBEAO2 = ETBEACHO : 	1.30D-12*0.2*RO2 	;
+{2323.} 	 ETBEAO2 = ETBEAO : 	1.30D-12*0.6*RO2 	;
+{2324.} 	 ETBEAO2 = ETBEAOH : 	1.30D-12*0.2*RO2 	;
+{2325.} 	 ETBEBO2 + HO2 = ETBEBOOH : 	KRO2HO2*0.770 	;
+{2326.} 	 ETBEBO2 + NO = ETBEBNO3 : 	KRO2NO*0.195 	;
+{2327.} 	 ETBEBO2 + NO = ETBEBO + NO2 : 	KRO2NO*0.805 	;
+{2328.} 	 ETBEBO2 + NO3 = ETBEBO + NO2 : 	KRO2NO3 	;
+{2329.} 	 ETBEBO2 = ETBEBO : 	2.00D-12*0.6*RO2 	;
+{2330.} 	 ETBEBO2 = ETBEBOH : 	2.00D-12*0.2*RO2 	;
+{2331.} 	 ETBEBO2 = TBUACET : 	2.00D-12*0.2*RO2 	;
+{2332.} 	 ETBECO2 + HO2 = ETBECOOH : 	KRO2HO2*0.770 	;
+{2333.} 	 ETBECO2 + NO = ETBECNO3 : 	KRO2NO*0.078 	;
+{2334.} 	 ETBECO2 + NO = ETBECO + NO2 : 	KRO2NO*0.922 	;
+{2335.} 	 ETBECO2 + NO3 = ETBECO + NO2 : 	KRO2NO3 	;
+{2336.} 	 ETBECO2 = ETBECCHO : 	2.00D-12*0.2*RO2 	;
+{2337.} 	 ETBECO2 = ETBECO : 	2.00D-12*0.6*RO2 	;
+{2338.} 	 ETBECO2 = ETBECOH : 	2.00D-12*0.2*RO2 	;
+{2339.} 	 MO2EOLAO2 + HO2 = MO2EOLAOOH : 	KRO2HO2*0.520*0.6 	;
+{2340.} 	 MO2EOLAO2 + HO2 = MOXCOCH2OH : 	KRO2HO2*0.520*0.4 	;
+{2341.} 	 MO2EOLAO2 + NO = MO2EOLANO3 : 	KRO2NO*0.023 	;
+{2342.} 	 MO2EOLAO2 + NO = MO2EOLAO + NO2 : 	KRO2NO*0.977 	;
+{2343.} 	 MO2EOLAO2 + NO3 = MO2EOLAO + NO2 : 	KRO2NO3 	;
+{2344.} 	 MO2EOLAO2 = MO2EOLA2OH : 	8.80D-13*0.2*RO2 	;
+{2345.} 	 MO2EOLAO2 = MO2EOLAO : 	8.80D-13*0.6*RO2 	;
+{2346.} 	 MO2EOLAO2 = MOXCOCH2OH : 	8.80D-13*0.2*RO2 	;
+{2347.} 	 MO2EOLBO2 + HO2 = ETOHOCHO : 	KRO2HO2*0.520*0.4 	;
+{2348.} 	 MO2EOLBO2 + HO2 = MO2EOLBOOH : 	KRO2HO2*0.520*0.6 	;
+{2349.} 	 MO2EOLBO2 + NO = MO2EOLBNO3 : 	KRO2NO*0.019 	;
+{2350.} 	 MO2EOLBO2 + NO = MO2EOLBO + NO2 : 	KRO2NO*0.981 	;
+{2351.} 	 MO2EOLBO2 + NO3 = MO2EOLBO + NO2 : 	KRO2NO3 	;
+{2352.} 	 MO2EOLBO2 = ETOHOCHO : 	8.80D-13*0.2*RO2 	;
+{2353.} 	 MO2EOLBO2 = MO2EOLB2OH : 	8.80D-13*0.2*RO2 	;
+{2354.} 	 MO2EOLBO2 = MO2EOLBO : 	8.80D-13*0.6*RO2 	;
+{2355.} 	 MEMOXYCHO + NO3 = HNO3 + MEMOXYCO3 : 	KNO3AL*2.4 	;
+{2356.} 	 MEMOXYCHO + OH = MEMOXYCO3 : 	2.56D-11 	;
+{2357.} 	 MEMOXYCHO = HO2 + CO + CH3OCH2O2 : 	J(15) 	;
+{2358.} 	 EOX2EOLAO2 + HO2 = EOX2COMEOH : 	KRO2HO2*0.625*0.4 	;
+{2359.} 	 EOX2EOLAO2 + HO2 = EOX2OLAOOH : 	KRO2HO2*0.625*0.6 	;
+{2360.} 	 EOX2EOLAO2 + NO = EOX2EOLAO + NO2 : 	KRO2NO*0.959 	;
+{2361.} 	 EOX2EOLAO2 + NO = EOX2OLANO3 : 	KRO2NO*0.041 	;
+{2362.} 	 EOX2EOLAO2 + NO3 = EOX2EOLAO + NO2 : 	KRO2NO3 	;
+{2363.} 	 EOX2EOLAO2 = EOX2COMEOH : 	8.80D-13*0.2*RO2 	;
+{2364.} 	 EOX2EOLAO2 = EOX2EOLAO : 	8.80D-13*0.6*RO2 	;
+{2365.} 	 EOX2EOLAO2 = EOX2ETA2OH : 	8.80D-13*0.2*RO2 	;
+{2366.} 	 EOX2EOLBO2 + HO2 = EOX2OLBOOH : 	KRO2HO2*0.625*0.6 	;
+{2367.} 	 EOX2EOLBO2 + HO2 = ETACETOH : 	KRO2HO2*0.625*0.4 	;
+{2368.} 	 EOX2EOLBO2 + NO = EOX2EOLBO + NO2 : 	KRO2NO*0.917 	;
+{2369.} 	 EOX2EOLBO2 + NO = EOX2OLBNO3 : 	KRO2NO*0.083 	;
+{2370.} 	 EOX2EOLBO2 + NO3 = EOX2EOLBO + NO2 : 	KRO2NO3 	;
+{2371.} 	 EOX2EOLBO2 = EOX2EOLBO : 	8.80D-13*0.6*RO2 	;
+{2372.} 	 EOX2EOLBO2 = EOX2ETB2OH : 	8.80D-13*0.2*RO2 	;
+{2373.} 	 EOX2EOLBO2 = ETACETOH : 	8.80D-13*0.2*RO2 	;
+{2374.} 	 EOX2ETCHO + NO3 = HNO3 + EOX2MECO3 : 	KNO3AL*4.0 	;
+{2375.} 	 EOX2ETCHO + OH = EOX2MECO3 : 	3.00D-11 	;
+{2376.} 	 EOX2ETCHO = HO2 + CO + ETOMEO2 : 	J(15) 	;
+{2377.} 	 PR2OHMOXO2 + HO2 = ETOHCO2M : 	KRO2HO2*0.625*0.4 	;
+{2378.} 	 PR2OHMOXO2 + HO2 = PR2OHMOOOH : 	KRO2HO2*0.625*0.6 	;
+{2379.} 	 PR2OHMOXO2 + NO = PR2OHMONO3 : 	KRO2NO*0.041 	;
+{2380.} 	 PR2OHMOXO2 + NO = PR2OHMOXO + NO2 : 	KRO2NO*0.959 	;
+{2381.} 	 PR2OHMOXO2 + NO3 = PR2OHMOXO + NO2 : 	KRO2NO3 	;
+{2382.} 	 PR2OHMOXO2 = ETOHCO2M : 	8.80D-13*0.2*RO2 	;
+{2383.} 	 PR2OHMOXO2 = PR2OHMOXO : 	8.80D-13*0.6*RO2 	;
+{2384.} 	 PR2OHMOXO2 = PROH2MOX : 	8.80D-13*0.2*RO2 	;
+{2385.} 	 H2C3OCO2 + HO2 = H2C3OCOOH : 	KRO2HO2*0.625*0.60 	;
+{2386.} 	 H2C3OCO2 + HO2 = PROL2FORM : 	KRO2HO2*0.625*0.40 	;
+{2387.} 	 H2C3OCO2 + NO = H2C3OCNO3 : 	KRO2NO*0.033 	;
+{2388.} 	 H2C3OCO2 + NO = H2C3OCO + NO2 : 	KRO2NO*0.967 	;
+{2389.} 	 H2C3OCO2 + NO3 = H2C3OCO + NO2 : 	KRO2NO3 	;
+{2390.} 	 H2C3OCO2 = H2C3OCO : 	2.00D-12*0.6*RO2 	;
+{2391.} 	 H2C3OCO2 = H2C3OCOH : 	2.00D-12*0.2*RO2 	;
+{2392.} 	 H2C3OCO2 = PROL2FORM : 	2.00D-12*0.2*RO2 	;
+{2393.} 	 PRONEMOX + OH = PRONEMOXO2 : 	4.87D-12 	;
+{2394.} 	 PRONEMOX = CH3CO3 + CH3OCH2O2 : 	J(22) 	;
+{2395.} 	 BOX2EOHAO2 + HO2 = BOX2OHAOOH : 	KRO2HO2*0.770*0.6 	;
+{2396.} 	 BOX2EOHAO2 + HO2 = PRCOOETOH : 	KRO2HO2*0.770*0.4 	;
+{2397.} 	 BOX2EOHAO2 + NO = BOX2EOHAO + NO2 : 	KRO2NO*0.805 	;
+{2398.} 	 BOX2EOHAO2 + NO = BOXEOHANO3 : 	KRO2NO*0.195 	;
+{2399.} 	 BOX2EOHAO2 + NO3 = BOX2EOHAO + NO2 : 	KRO2NO3 	;
+{2400.} 	 BOX2EOHAO2 = BOX2EOHAO : 	8.80D-13*0.6*RO2 	;
+{2401.} 	 BOX2EOHAO2 = BOXOHETOH : 	8.80D-13*0.2*RO2 	;
+{2402.} 	 BOX2EOHAO2 = PRCOOETOH : 	8.80D-13*0.2*RO2 	;
+{2403.} 	 BOX2EOHBO2 + HO2 = BOX2COMOH : 	KRO2HO2*0.770*0.4 	;
+{2404.} 	 BOX2EOHBO2 + HO2 = BOX2OHBOOH : 	KRO2HO2*0.770*0.6 	;
+{2405.} 	 BOX2EOHBO2 + NO = BOX2EOHBO + NO2 : 	KRO2NO*0.903 	;
+{2406.} 	 BOX2EOHBO2 + NO = BOXEOHBNO3 : 	KRO2NO*0.097 	;
+{2407.} 	 BOX2EOHBO2 + NO3 = BOX2EOHBO + NO2 : 	KRO2NO3 	;
+{2408.} 	 BOX2EOHBO2 = BOX2COMOH : 	8.80D-13*0.2*RO2 	;
+{2409.} 	 BOX2EOHBO2 = BOX2E2OH : 	8.80D-13*0.2*RO2 	;
+{2410.} 	 BOX2EOHBO2 = BOX2EOHBO : 	8.80D-13*0.6*RO2 	;
+{2411.} 	 BOX2ECHO + NO3 = BOXMCO3 + HNO3 : 	KNO3AL*5.5 	;
+{2412.} 	 BOX2ECHO + OH = BOXMCO3 : 	3.39D-11 	;
+{2413.} 	 BOX2ECHO = HO2 + CO + BOX2MO2 : 	J(15) 	;
+{2414.} 	 BOXPROLAO2 + HO2 = BOXPOLAOOH : 	KRO2HO2*0.820*0.6 	;
+{2415.} 	 BOXPROLAO2 + HO2 = PRCOOPROL : 	KRO2HO2*0.820*0.4 	;
+{2416.} 	 BOXPROLAO2 + NO = BOXPOLANO3 : 	KRO2NO*0.278 	;
+{2417.} 	 BOXPROLAO2 + NO = BOXPROLAO + NO2 : 	KRO2NO*0.722 	;
+{2418.} 	 BOXPROLAO2 + NO3 = BOXPROLAO + NO2 : 	KRO2NO3 	;
+{2419.} 	 BOXPROLAO2 = BOXOHPROL : 	8.80D-13*0.2*RO2 	;
+{2420.} 	 BOXPROLAO2 = BOXPROLAO : 	8.80D-13*0.6*RO2 	;
+{2421.} 	 BOXPROLAO2 = PRCOOPROL : 	8.80D-13*0.2*RO2 	;
+{2422.} 	 BOXPROLBO2 + HO2 = BOXCOEOL : 	KRO2HO2*0.820*0.4 	;
+{2423.} 	 BOXPROLBO2 + HO2 = BOXPOLBOOH : 	KRO2HO2*0.820*0.6 	;
+{2424.} 	 BOXPROLBO2 + NO = BOXPOLBNO3 : 	KRO2NO*0.139 	;
+{2425.} 	 BOXPROLBO2 + NO = BOXPROLBO + NO2 : 	KRO2NO*0.861 	;
+{2426.} 	 BOXPROLBO2 + NO3 = BOXPROLBO + NO2 : 	KRO2NO3 	;
+{2427.} 	 BOXPROLBO2 = BOXCOEOL : 	8.80D-13*0.2*RO2 	;
+{2428.} 	 BOXPROLBO2 = BOXPR2OH : 	8.80D-13*0.2*RO2 	;
+{2429.} 	 BOXPROLBO2 = BOXPROLBO : 	8.80D-13*0.6*RO2 	;
+{2430.} 	 BOXPRONE + OH = BOXPRONAO2 : 	1.32D-11*0.63 	;
+{2431.} 	 BOXPRONE + OH = BOXPRONBO2 : 	1.32D-11*0.37 	;
+{2432.} 	 BOXPRONE = CH3CO3 + BOX2MO2 : 	J(22) 	;
+{2433.} 	 CH2BRO2 + HO2 = CH2BROOH : 	4.28D-13*EXP(820/TEMP) 	;
+{2434.} 	 CH2BRO2 + NO = CH2BRO + NO2 : 	KRO2NO*1.5 	;
+{2435.} 	 CH2BRO2 + NO3 = CH2BRO + NO2 : 	KRO2NO3 	;
+{2436.} 	 CH2BRO2 = CH2BRO : 	2.00D-12*0.60*RO2 	;
+{2437.} 	 CH2BRO2 = CH2BROH : 	2.00D-12*0.20*RO2 	;
+{2438.} 	 CH2BRO2 = CHOBR : 	2.00D-12*0.20*RO2 	;
+{2439.} 	 DIBRETO2 + HO2 = DIBRETO2H : 	3.30D-13*EXP(820/TEMP) 	;
+{2440.} 	 DIBRETO2 + NO = DIBRETO + NO2 : 	KRO2NO*1.5 	;
+{2441.} 	 DIBRETO2 + NO3 = DIBRETO + NO2 : 	KRO2NO3 	;
+{2442.} 	 DIBRETO2 = BRETAL : 	8.80D-13*0.2*RO2 	;
+{2443.} 	 DIBRETO2 = DIBRETOH : 	8.80D-13*0.6*RO2+8.80D-13*0.2*RO2 	;
+{2444.} 	 CH3COCH2O2 + HO2 = CH3COCH2O + OH : 	1.36D-13*EXP(1250/TEMP)*0.15 	;
+{2445.} 	 CH3COCH2O2 + HO2 = HYPERACET : 	1.36D-13*EXP(1250/TEMP)*0.85 	;
+{2446.} 	 CH3COCH2O2 + NO = CH3COCH2O + NO2 : 	KRO2NO 	;
+{2447.} 	 CH3COCH2O2 + NO3 = CH3COCH2O + NO2 : 	KRO2NO3 	;
+{2448.} 	 CH3COCH2O2 = ACETOL : 	2*(K298CH3O2*8.0D-12)**0.5*RO2*0.2 	;
+{2449.} 	 CH3COCH2O2 = CH3COCH2O : 	2*(K298CH3O2*8.0D-12)**0.5*RO2*0.6 	;
+{2450.} 	 CH3COCH2O2 = MGLYOX : 	2*(K298CH3O2*8.0D-12)**0.5*RO2*0.2 	;
+{2451.} 	 MEKAO2 + HO2 = MEKAOOH : 	KRO2HO2*0.625 	;
+{2452.} 	 MEKAO2 + NO = MEKANO3 : 	KRO2NO*0.033 	;
+{2453.} 	 MEKAO2 + NO = MEKAO + NO2 : 	KRO2NO*0.967 	;
+{2454.} 	 MEKAO2 + NO3 = MEKAO + NO2 : 	KRO2NO3 	;
+{2455.} 	 MEKAO2 = CO2C3CHO : 	2.00D-12*0.2*RO2 	;
+{2456.} 	 MEKAO2 = MEKAO : 	2.00D-12*0.6*RO2 	;
+{2457.} 	 MEKAO2 = MEKAOH : 	2.00D-12*0.2*RO2 	;
+{2458.} 	 MEKBO2 + HO2 = MEKBOOH : 	KRO2HO2*0.625 	;
+{2459.} 	 MEKBO2 + NO = MEKBO + NO2 : 	KRO2NO 	;
+{2460.} 	 MEKBO2 + NO3 = MEKBO + NO2 : 	KRO2NO3 	;
+{2461.} 	 MEKBO2 = BIACET : 	8.80D-13*0.2*RO2 	;
+{2462.} 	 MEKBO2 = BUT2OLO : 	8.80D-13*0.2*RO2 	;
+{2463.} 	 MEKBO2 = MEKBO : 	8.80D-13*0.6*RO2 	;
+{2464.} 	 MEKCO2 + HO2 = MEKCOOH : 	KRO2HO2*0.625 	;
+{2465.} 	 MEKCO2 + NO = MEKCO + NO2 : 	KRO2NO 	;
+{2466.} 	 MEKCO2 + NO3 = MEKCO + NO2 : 	KRO2NO3 	;
+{2467.} 	 MEKCO2 = EGLYOX : 	2.00D-12*0.2*RO2 	;
+{2468.} 	 MEKCO2 = MEKCO : 	2.00D-12*0.6*RO2 	;
+{2469.} 	 MEKCO2 = MEKCOH : 	2.00D-12*0.2*RO2 	;
+{2470.} 	 CO2C54O2 + HO2 = MPRKBOOH : 	KRO2HO2*0.706 	;
+{2471.} 	 CO2C54O2 + NO = CO2C54O + NO2 : 	KRO2NO*0.871 	;
+{2472.} 	 CO2C54O2 + NO = MPRKNO3 : 	KRO2NO*0.129 	;
+{2473.} 	 CO2C54O2 + NO3 = CO2C54O + NO2 : 	KRO2NO3 	;
+{2474.} 	 CO2C54O2 = CO24C5 : 	8.80D-13*0.2*RO2 	;
+{2475.} 	 CO2C54O2 = CO2C54O : 	8.80D-13*0.6*RO2 	;
+{2476.} 	 CO2C54O2 = HO2CO4C5 : 	8.80D-13*0.2*RO2 	;
+{2477.} 	 MPRKAO2 + HO2 = MPRKAOOH : 	KRO2HO2*0.706 	;
+{2478.} 	 MPRKAO2 + NO = MPRKAO + NO2 : 	KRO2NO 	;
+{2479.} 	 MPRKAO2 + NO3 = MPRKAO + NO2 : 	KRO2NO3 	;
+{2480.} 	 MPRKAO2 = CO23C5 : 	8.80D-13*0.2*RO2 	;
+{2481.} 	 MPRKAO2 = MPRKAO : 	8.80D-13*0.6*RO2 	;
+{2482.} 	 MPRKAO2 = MPRKAOH : 	8.80D-13*0.2*RO2 	;
+{2483.} 	 DIEKAO2 + HO2 = DIEKAOOH : 	KRO2HO2*0.706 	;
+{2484.} 	 DIEKAO2 + NO = DIEKAO + NO2 : 	KRO2NO 	;
+{2485.} 	 DIEKAO2 + NO3 = DIEKAO + NO2 : 	KRO2NO3 	;
+{2486.} 	 DIEKAO2 = CO23C5 : 	8.80D-13*0.2*RO2 	;
+{2487.} 	 DIEKAO2 = DIEKAO : 	8.80D-13*0.6*RO2 	;
+{2488.} 	 DIEKAO2 = DIEKAOH : 	8.80D-13*0.2*RO2 	;
+{2489.} 	 DIEKBO2 + HO2 = DIEKBOOH : 	KRO2HO2*0.706 	;
+{2490.} 	 DIEKBO2 + NO = DIEKBNO3 : 	KRO2NO*0.052 	;
+{2491.} 	 DIEKBO2 + NO = DIEKBO + NO2 : 	KRO2NO*0.948 	;
+{2492.} 	 DIEKBO2 + NO3 = DIEKBO + NO2 : 	KRO2NO3 	;
+{2493.} 	 DIEKBO2 = CO3C4CHO : 	2.00D-12*0.2*RO2 	;
+{2494.} 	 DIEKBO2 = DIEKBO : 	2.00D-12*0.6*RO2 	;
+{2495.} 	 DIEKBO2 = HO1CO3C5 : 	2.00D-12*0.2*RO2 	;
+{2496.} 	 MIPKAO2 + HO2 = MIPKAOOH : 	KRO2HO2*0.706 	;
+{2497.} 	 MIPKAO2 + NO = MIPKAO + NO2 : 	KRO2NO 	;
+{2498.} 	 MIPKAO2 + NO3 = MIPKAO + NO2 : 	KRO2NO3 	;
+{2499.} 	 MIPKAO2 = MIPKAO : 	9.20D-14*0.7*RO2 	;
+{2500.} 	 MIPKAO2 = MIPKAOH : 	9.20D-14*0.3*RO2 	;
+{2501.} 	 MIPKBO2 + HO2 = MIPKBOOH : 	KRO2HO2*0.706 	;
+{2502.} 	 MIPKBO2 + NO = MIPKBNO3 : 	KRO2NO*0.052 	;
+{2503.} 	 MIPKBO2 + NO = MIPKBO + NO2 : 	KRO2NO*0.948 	;
+{2504.} 	 MIPKBO2 + NO3 = MIPKBO + NO2 : 	KRO2NO3 	;
+{2505.} 	 MIPKBO2 = CO2C43CHO : 	1.30D-12*0.2*RO2 	;
+{2506.} 	 MIPKBO2 = MIPKBO : 	1.30D-12*0.6*RO2 	;
+{2507.} 	 MIPKBO2 = MIPKBOH : 	1.30D-12*0.2*RO2 	;
+{2508.} 	 HEX2ONAO2 + HO2 = HEX2ONAOOH : 	KRO2HO2*0.770 	;
+{2509.} 	 HEX2ONAO2 + NO = HEX2ONANO3 : 	KRO2NO*0.195 	;
+{2510.} 	 HEX2ONAO2 + NO = HEX2ONAO + NO2 : 	KRO2NO*0.805 	;
+{2511.} 	 HEX2ONAO2 + NO3 = HEX2ONAO + NO2 : 	KRO2NO3 	;
+{2512.} 	 HEX2ONAO2 = CO24C6 : 	8.80D-13*0.2*RO2 	;
+{2513.} 	 HEX2ONAO2 = CO2HO4C6 : 	8.80D-13*0.2*RO2 	;
+{2514.} 	 HEX2ONAO2 = HEX2ONAO : 	8.80D-13*0.6*RO2 	;
+{2515.} 	 HEX2ONBO2 + HO2 = HEX2ONBOOH : 	KRO2HO2*0.770 	;
+{2516.} 	 HEX2ONBO2 + NO = HEX2ONBNO3 : 	KRO2NO*0.195 	;
+{2517.} 	 HEX2ONBO2 + NO = HEX2ONBO + NO2 : 	KRO2NO*0.805 	;
+{2518.} 	 HEX2ONBO2 + NO3 = HEX2ONBO + NO2 : 	KRO2NO3 	;
+{2519.} 	 HEX2ONBO2 = CO25C6 : 	2.50D-13*0.2*RO2 	;
+{2520.} 	 HEX2ONBO2 = HEX2ONBO : 	2.50D-13*0.6*RO2 	;
+{2521.} 	 HEX2ONBO2 = HO2CO5C6 : 	2.50D-13*0.2*RO2 	;
+{2522.} 	 HEX2ONCO2 + HO2 = HEX2ONCOOH : 	KRO2HO2*0.770 	;
+{2523.} 	 HEX2ONCO2 + NO = HEX2ONCO + NO2 : 	KRO2NO 	;
+{2524.} 	 HEX2ONCO2 + NO3 = HEX2ONCO + NO2 : 	KRO2NO3 	;
+{2525.} 	 HEX2ONCO2 = CO23C6 : 	8.80D-13*0.2*RO2 	;
+{2526.} 	 HEX2ONCO2 = CO2HO3C6 : 	8.80D-13*0.2*RO2 	;
+{2527.} 	 HEX2ONCO2 = HEX2ONCO : 	8.80D-13*0.6*RO2 	;
+{2528.} 	 HEX3ONAO2 + HO2 = HEX3ONAOOH : 	KRO2HO2*0.770 	;
+{2529.} 	 HEX3ONAO2 + NO = HEX3ONANO3 : 	KRO2NO*0.195 	;
+{2530.} 	 HEX3ONAO2 + NO = HEX3ONAO + NO2 : 	KRO2NO*0.805 	;
+{2531.} 	 HEX3ONAO2 + NO3 = HEX3ONAO + NO2 : 	KRO2NO3 	;
+{2532.} 	 HEX3ONAO2 = CO24C6 : 	2.50D-13*0.2*RO2 	;
+{2533.} 	 HEX3ONAO2 = HEX3ONAO : 	2.50D-13*0.6*RO2 	;
+{2534.} 	 HEX3ONAO2 = HEX3ONAOH : 	2.50D-13*0.2*RO2 	;
+{2535.} 	 HEX3ONBO2 + HO2 = HEX3ONBOOH : 	KRO2HO2*0.770 	;
+{2536.} 	 HEX3ONBO2 + NO = HEX3ONBO + NO2 : 	KRO2NO 	;
+{2537.} 	 HEX3ONBO2 + NO3 = HEX3ONBO + NO2 : 	KRO2NO3 	;
+{2538.} 	 HEX3ONBO2 = C6CO34 : 	2.50D-13*0.2*RO2 	;
+{2539.} 	 HEX3ONBO2 = C6CO3HO4 : 	2.50D-13*0.2*RO2 	;
+{2540.} 	 HEX3ONBO2 = HEX3ONBO : 	2.50D-13*0.6*RO2 	;
+{2541.} 	 HEX3ONCO2 + HO2 = HEX3ONCOOH : 	KRO2HO2*0.770 	;
+{2542.} 	 HEX3ONCO2 + NO = HEX3ONCO + NO2 : 	KRO2NO 	;
+{2543.} 	 HEX3ONCO2 + NO3 = HEX3ONCO + NO2 : 	KRO2NO3 	;
+{2544.} 	 HEX3ONCO2 = CO23C6 : 	2.50D-13*0.2*RO2 	;
+{2545.} 	 HEX3ONCO2 = HEX3ONCO : 	2.50D-13*0.6*RO2 	;
+{2546.} 	 HEX3ONCO2 = HEX3ONCOH : 	2.50D-13*0.2*RO2 	;
+{2547.} 	 HEX3ONDO2 + HO2 = HEX3ONDOOH : 	KRO2HO2*0.770 	;
+{2548.} 	 HEX3ONDO2 + NO = HEX3ONDNO3 : 	KRO2NO*0.078 	;
+{2549.} 	 HEX3ONDO2 + NO = HEX3ONDO + NO2 : 	KRO2NO*0.922 	;
+{2550.} 	 HEX3ONDO2 + NO3 = HEX3ONDO + NO2 : 	KRO2NO3 	;
+{2551.} 	 HEX3ONDO2 = C3COCCHO : 	2.50D-13*0.2*RO2 	;
+{2552.} 	 HEX3ONDO2 = HEX3ONDO : 	2.50D-13*0.6*RO2 	;
+{2553.} 	 HEX3ONDO2 = HEX3ONDOH : 	2.50D-13*0.2*RO2 	;
+{2554.} 	 MIBKAO2 + HO2 = MIBKAOOH : 	KRO2HO2*0.770 	;
+{2555.} 	 MIBKAO2 + NO = MIBKANO3 : 	KRO2NO*0.058 	;
+{2556.} 	 MIBKAO2 + NO = MIBKAO + NO2 : 	KRO2NO*0.942 	;
+{2557.} 	 MIBKAO2 + NO3 = MIBKAO + NO2 : 	KRO2NO3 	;
+{2558.} 	 MIBKAO2 = MIBKAO : 	6.70D-15*0.7*RO2 	;
+{2559.} 	 MIBKAO2 = MIBKAOH : 	6.70D-15*0.3*RO2 	;
+{2560.} 	 MIBKBO2 + HO2 = MIBKBOOH : 	KRO2HO2*0.770 	;
+{2561.} 	 MIBKBO2 + NO = MIBKBO + NO2 : 	KRO2NO 	;
+{2562.} 	 MIBKBO2 + NO3 = MIBKBO + NO2 : 	KRO2NO3 	;
+{2563.} 	 MIBKBO2 = MIBK3CO : 	8.80D-13*0.2*RO2 	;
+{2564.} 	 MIBKBO2 = MIBKBO : 	8.80D-13*0.6*RO2 	;
+{2565.} 	 MIBKBO2 = MIBKBOH : 	8.80D-13*0.2*RO2 	;
+{2566.} 	 MTBKO2 + HO2 = MTBKOOH : 	KRO2HO2*0.770 	;
+{2567.} 	 MTBKO2 + NO = MTBKNO3 : 	KRO2NO*0.078 	;
+{2568.} 	 MTBKO2 + NO = MTBKO + NO2 : 	KRO2NO*0.922 	;
+{2569.} 	 MTBKO2 + NO3 = MTBKO + NO2 : 	KRO2NO3 	;
+{2570.} 	 MTBKO2 = CO2M33CHO : 	1.30D-12*0.2*RO2 	;
+{2571.} 	 MTBKO2 = MTBKO : 	1.30D-12*0.6*RO2 	;
+{2572.} 	 MTBKO2 = MTBKOH : 	1.30D-12*0.2*RO2 	;
+{2573.} 	 CYHXONAO2 + HO2 = CYHXONAOOH : 	KRO2HO2*0.770 	;
+{2574.} 	 CYHXONAO2 + NO = CYHXONANO3 : 	KRO2NO*0.068 	;
+{2575.} 	 CYHXONAO2 + NO = CYHXONAO + NO2 : 	KRO2NO*0.932 	;
+{2576.} 	 CYHXONAO2 + NO3 = CYHXONAO + NO2 : 	KRO2NO3 	;
+{2577.} 	 CYHXONAO2 = CYC613DION : 	2.50D-13*0.2*RO2 	;
+{2578.} 	 CYHXONAO2 = CYHXONAO : 	2.50D-13*0.6*RO2 	;
+{2579.} 	 CYHXONAO2 = CYHXONAOH : 	2.50D-13*0.2*RO2 	;
+{2580.} 	 NAPINAO2 + HO2 = NAPINAOOH : 	KRO2HO2*0.914 	;
+{2581.} 	 NAPINAO2 + NO = NAPINAO + NO2 : 	KRO2NO 	;
+{2582.} 	 NAPINAO2 + NO3 = NAPINAO + NO2 : 	KRO2NO3 	;
+{2583.} 	 NAPINAO2 = APINBNO3 : 	6.70D-15*0.1*RO2 	;
+{2584.} 	 NAPINAO2 = NAPINAO : 	6.70D-15*0.9*RO2 	;
+{2585.} 	 NAPINBO2 + HO2 = NAPINBOOH : 	KRO2HO2*0.914 	;
+{2586.} 	 NAPINBO2 + NO = NAPINBO + NO2 : 	KRO2NO 	;
+{2587.} 	 NAPINBO2 + NO3 = NAPINBO + NO2 : 	KRO2NO3 	;
+{2588.} 	 NAPINBO2 = APINANO3 : 	2.50D-13*0.1*RO2 	;
+{2589.} 	 NAPINBO2 = NAPINBO : 	2.50D-13*0.8*RO2 	;
+{2590.} 	 NAPINBO2 = NC101CO : 	2.50D-13*0.1*RO2 	;
+{2591.} 	 APINOOA = C107O2 + OH : 	KDEC*0.55 	;
+{2592.} 	 APINOOA = C109O2 + OH : 	KDEC*0.45 	;
+{2593.} 	 APINOOB = APINBOO : 	KDEC*0.50 	;
+{2594.} 	 APINOOB = C96O2 + OH + CO : 	KDEC*0.50 	;
+{2595.} 	 APINAO2 + HO2 = APINAOOH : 	KRO2HO2*0.914 	;
+{2596.} 	 APINAO2 + NO = APINANO3 : 	KRO2NO*0.230 	;
+{2597.} 	 APINAO2 + NO = APINAO + NO2 : 	KRO2NO*0.770 	;
+{2598.} 	 APINAO2 + NO3 = APINAO + NO2 : 	KRO2NO3 	;
+{2599.} 	 APINAO2 = APINAO : 	9.20D-14*RO2*0.7 	;
+{2600.} 	 APINAO2 = APINBOH : 	9.20D-14*RO2*0.3 	;
+{2601.} 	 APINBO2 + HO2 = APINBOOH : 	KRO2HO2*0.914 	;
+{2602.} 	 APINBO2 + NO = APINBNO3 : 	KRO2NO*0.230 	;
+{2603.} 	 APINBO2 + NO = APINBO + NO2 : 	KRO2NO*0.770 	;
+{2604.} 	 APINBO2 + NO3 = APINBO + NO2 : 	KRO2NO3 	;
+{2605.} 	 APINBO2 = APINBCO : 	8.80D-13*RO2*0.2 	;
+{2606.} 	 APINBO2 = APINBO : 	8.80D-13*RO2*0.6 	;
+{2607.} 	 APINBO2 = APINBOH : 	8.80D-13*RO2*0.2 	;
+{2608.} 	 APINCO2 + HO2 = APINCOOH : 	KRO2HO2*0.914 	;
+{2609.} 	 APINCO2 + NO = APINCNO3 : 	KRO2NO*0.125 	;
+{2610.} 	 APINCO2 + NO = APINCO + NO2 : 	KRO2NO*0.875 	;
+{2611.} 	 APINCO2 + NO3 = APINCO + NO2 : 	KRO2NO3 	;
+{2612.} 	 APINCO2 = APINCO : 	6.70D-15*RO2*0.7 	;
+{2613.} 	 APINCO2 = APINCOH : 	6.70D-15*RO2*0.3 	;
+{2614.} 	 NBPINAO2 + HO2 = NBPINAOOH : 	KRO2HO2*0.914 	;
+{2615.} 	 NBPINAO2 + NO = NBPINAO + NO2 : 	KRO2NO 	;
+{2616.} 	 NBPINAO2 + NO3 = NBPINAO + NO2 : 	KRO2NO3 	;
+{2617.} 	 NBPINAO2 = BPINBNO3 : 	9.20D-14*RO2*0.3 	;
+{2618.} 	 NBPINAO2 = NBPINAO : 	9.20D-14*RO2*0.7 	;
+{2619.} 	 NBPINBO2 + HO2 = NBPINBOOH : 	KRO2HO2*0.914 	;
+{2620.} 	 NBPINBO2 + NO = NBPINBO + NO2 : 	KRO2NO 	;
+{2621.} 	 NBPINBO2 + NO3 = NBPINBO + NO2 : 	KRO2NO3 	;
+{2622.} 	 NBPINBO2 = BPINANO3 : 	2.00D-12*RO2*0.2 	;
+{2623.} 	 NBPINBO2 = NBPINBO : 	2.00D-12*RO2*0.6 	;
+{2624.} 	 NBPINBO2 = NC91CHO : 	2.00D-12*RO2*0.6 	;
+{2625.} 	 NOPINONE + OH = NOPINAO2 : 	1.55D-11*0.535 	;
+{2626.} 	 NOPINONE + OH = NOPINBO2 : 	1.55D-11*0.199 	;
+{2627.} 	 NOPINONE + OH = NOPINCO2 : 	1.55D-11*0.130 	;
+{2628.} 	 NOPINONE + OH = NOPINDO2 : 	1.55D-11*0.136 	;
+{2629.} 	 CH2OOF = CH2OO : 	KDEC*0.370 	;
+{2630.} 	 CH2OOF = CO : 	KDEC*0.500 	;
+{2631.} 	 CH2OOF = HO2 + CO + OH : 	KDEC*0.130 	;
+{2632.} 	 NOPINOOA = C8BC : 	KDEC*0.330 	;
+{2633.} 	 NOPINOOA = NOPINDO2 + OH : 	KDEC*0.500 	;
+{2634.} 	 NOPINOOA = NOPINOO : 	KDEC*0.170 	;
+{2635.} 	 BPINAO2 + HO2 = BPINAOOH : 	KRO2HO2*0.914 	;
+{2636.} 	 BPINAO2 + NO = BPINANO3 : 	KRO2NO*0.240 	;
+{2637.} 	 BPINAO2 + NO = BPINAO + NO2 : 	KRO2NO*0.760 	;
+{2638.} 	 BPINAO2 + NO3 = BPINAO + NO2 : 	KRO2NO3 	;
+{2639.} 	 BPINAO2 = BPINAO : 	9.20D-14*RO2*0.7 	;
+{2640.} 	 BPINAO2 = BPINAOH : 	9.20D-14*RO2*0.3 	;
+{2641.} 	 BPINBO2 + HO2 = BPINBOOH : 	KRO2HO2*0.914 	;
+{2642.} 	 BPINBO2 + NO = BPINBNO3 : 	KRO2NO*0.240 	;
+{2643.} 	 BPINBO2 + NO = BPINBO + NO2 : 	KRO2NO*0.760 	;
+{2644.} 	 BPINBO2 + NO3 = BPINBO + NO2 : 	KRO2NO3 	;
+{2645.} 	 BPINBO2 = BPINAOH : 	2.00D-12*RO2*0.2 	;
+{2646.} 	 BPINBO2 = BPINBO : 	2.00D-12*RO2*0.6 	;
+{2647.} 	 BPINBO2 = C918CHO : 	2.00D-12*RO2*0.2 	;
+{2648.} 	 BPINCO2 + HO2 = BPINCOOH : 	KRO2HO2*0.914 	;
+{2649.} 	 BPINCO2 + NO = BPINCNO3 : 	KRO2NO*0.125 	;
+{2650.} 	 BPINCO2 + NO = BPINCO + NO2 : 	KRO2NO*0.875 	;
+{2651.} 	 BPINCO2 + NO3 = BPINCO + NO2 : 	KRO2NO3 	;
+{2652.} 	 BPINCO2 = BPINCO : 	6.70D-15*RO2*0.7 	;
+{2653.} 	 BPINCO2 = BPINCOH : 	6.70D-15*RO2*0.3 	;
+{2654.} 	 NLIMO2 + HO2 = NLIMOOH : 	KRO2HO2*0.914 	;
+{2655.} 	 NLIMO2 + NO = NLIMO + NO2 : 	KRO2NO 	;
+{2656.} 	 NLIMO2 + NO3 = NLIMO + NO2 : 	KRO2NO3 	;
+{2657.} 	 NLIMO2 = LIMBNO3 : 	9.20D-14*RO2*0.3 	;
+{2658.} 	 NLIMO2 = NLIMO : 	9.20D-14*RO2*0.7 	;
+{2659.} 	 LIMOOA = LIMALAO2 + OH : 	KDEC*0.5 	;
+{2660.} 	 LIMOOA = LIMALBO2 + OH : 	KDEC*0.5 	;
+{2661.} 	 LIMOOB = C923O2 + CO + OH : 	KDEC*0.5 	;
+{2662.} 	 LIMOOB = LIMBOO : 	KDEC*0.5 	;
+{2663.} 	 LIMAO2 + HO2 = LIMAOOH : 	KRO2HO2*0.914 	;
+{2664.} 	 LIMAO2 + NO = LIMANO3 : 	KRO2NO*0.228 	;
+{2665.} 	 LIMAO2 + NO = LIMAO + NO2 : 	KRO2NO*0.772 	;
+{2666.} 	 LIMAO2 + NO3 = LIMAO + NO2 : 	KRO2NO3 	;
+{2667.} 	 LIMAO2 = LIMAO : 	9.20D-14*RO2*0.7 	;
+{2668.} 	 LIMAO2 = LIMAOH : 	9.20D-14*RO2*0.3 	;
+{2669.} 	 LIMBO2 + HO2 = LIMBOOH : 	KRO2HO2*0.914 	;
+{2670.} 	 LIMBO2 + NO = LIMBNO3 : 	KRO2NO*0.228 	;
+{2671.} 	 LIMBO2 + NO = LIMBO + NO2 : 	KRO2NO*0.772 	;
+{2672.} 	 LIMBO2 + NO3 = LIMBO + NO2 : 	KRO2NO3 	;
+{2673.} 	 LIMBO2 = LIMAOH : 	8.80D-13*RO2*0.2 	;
+{2674.} 	 LIMBO2 = LIMBCO : 	8.80D-13*RO2*0.2 	;
+{2675.} 	 LIMBO2 = LIMBO : 	8.80D-13*RO2*0.6 	;
+{2676.} 	 LIMCO2 + HO2 = LIMCOOH : 	KRO2HO2*0.914 	;
+{2677.} 	 LIMCO2 + NO = LIMCNO3 : 	KRO2NO*0.228 	;
+{2678.} 	 LIMCO2 + NO = LIMCO + NO2 : 	KRO2NO*0.772 	;
+{2679.} 	 LIMCO2 + NO3 = LIMCO + NO2 : 	KRO2NO3 	;
+{2680.} 	 LIMCO2 = LIMCO : 	9.20D-14*RO2*0.7 	;
+{2681.} 	 LIMCO2 = LIMCOH : 	9.20D-14*RO2*0.3 	;
+{2682.} 	 NBCO2 + HO2 = NBCOOH : 	KRO2HO2*0.975 	;
+{2683.} 	 NBCO2 + NO = NBCO + NO2 : 	KRO2NO 	;
+{2684.} 	 NBCO2 + NO3 = NBCO + NO2 : 	KRO2NO3 	;
+{2685.} 	 NBCO2 = BCBNO3 : 	9.20D-14*RO2*0.3 	;
+{2686.} 	 NBCO2 = NBCO : 	9.20D-14*RO2*0.7 	;
+{2687.} 	 BCAOO + CO = BCAL : 	1.20D-15 	;
+{2688.} 	 BCAOO + NO = BCAL + NO2 : 	1.00D-14 	;
+{2689.} 	 BCAOO + NO2 = BCAL + NO3 : 	1.00D-15 	;
+{2690.} 	 BCAOO + SO2 = BCAL + SO3 : 	7.00D-14 	;
+{2691.} 	 BCAOO = BCAL + H2O2 : 	2.00D-16*H2O 	;
+{2692.} 	 BCAOO = BCSOZ : 	8.00D+01 	;
+{2693.} 	 BCBOO + CO = BCAL : 	1.20D-15 	;
+{2694.} 	 BCBOO + NO = BCAL + NO2 : 	1.00D-14 	;
+{2695.} 	 BCBOO + NO2 = BCAL + NO3 : 	1.00D-15 	;
+{2696.} 	 BCBOO + SO2 = BCAL + SO3 : 	7.00D-14 	;
+{2697.} 	 BCBOO = BCSOZ : 	1.20D+02 	;
+{2698.} 	 BCBOO = C141CO2H : 	2.00D-16*H2O 	;
+{2699.} 	 BCOOA = BCALAO2 + OH : 	KDEC*0.13 	;
+{2700.} 	 BCOOA = BCALBO2 + OH : 	KDEC*0.67 	;
+{2701.} 	 BCOOA = BCALBOC : 	KDEC*0.15 	;
+{2702.} 	 BCOOA = C136O2 + CH3O2 : 	KDEC*0.05 	;
+{2703.} 	 BCOOB = BCALCO2 + OH : 	KDEC*0.66 	;
+{2704.} 	 BCOOB = C141CO2H : 	KDEC*0.17 	;
+{2705.} 	 BCOOB = C141O2 + HO2 : 	KDEC*0.17 	;
+{2706.} 	 BCAO2 + HO2 = BCAOOH : 	KRO2HO2*0.975 	;
+{2707.} 	 BCAO2 + NO = BCANO3 : 	KRO2NO*0.247 	;
+{2708.} 	 BCAO2 + NO = BCAO + NO2 : 	KRO2NO*0.753 	;
+{2709.} 	 BCAO2 + NO3 = BCAO + NO2 : 	KRO2NO3 	;
+{2710.} 	 BCAO2 = BCAO : 	9.20D-14*RO2*0.7 	;
+{2711.} 	 BCAO2 = BCAOH : 	9.20D-14*RO2*0.3 	;
+{2712.} 	 BCBO2 + HO2 = BCBOOH : 	KRO2HO2*0.975 	;
+{2713.} 	 BCBO2 + NO = BCBNO3 : 	KRO2NO*0.247 	;
+{2714.} 	 BCBO2 + NO = BCBO + NO2 : 	KRO2NO*0.753 	;
+{2715.} 	 BCBO2 + NO3 = BCBO + NO2 : 	KRO2NO3 	;
+{2716.} 	 BCBO2 = BCAOH : 	8.80D-13*RO2*0.2 	;
+{2717.} 	 BCBO2 = BCBCO : 	8.80D-13*RO2*0.2 	;
+{2718.} 	 BCBO2 = BCBO : 	8.80D-13*RO2*0.6 	;
+{2719.} 	 BCCO2 + HO2 = BCCOOH : 	KRO2HO2*0.975 	;
+{2720.} 	 BCCO2 + NO = BCCNO3 : 	KRO2NO*0.247 	;
+{2721.} 	 BCCO2 + NO = BCCO + NO2 : 	KRO2NO*0.753 	;
+{2722.} 	 BCCO2 + NO3 = BCCO + NO2 : 	KRO2NO3 	;
+{2723.} 	 BCCO2 = BCCO : 	9.20D-14*RO2*0.7 	;
+{2724.} 	 BCCO2 = BCCOH : 	9.20D-14*RO2*0.3 	;
+{2725.} 	 DMMAO2 + HO2 = DMMAOOH : 	KRO2HO2*0.520 	;
+{2726.} 	 DMMAO2 + NO = DMMANO3 : 	KRO2NO*0.017 	;
+{2727.} 	 DMMAO2 + NO = DMMAO + NO2 : 	KRO2NO*0.983 	;
+{2728.} 	 DMMAO2 + NO3 = DMMAO + NO2 : 	KRO2NO3 	;
+{2729.} 	 DMMAO2 = DMMAO : 	2.00D-12*RO2*0.6 	;
+{2730.} 	 DMMAO2 = DMMAOH : 	2.00D-12*RO2*0.2 	;
+{2731.} 	 DMMAO2 = MMF : 	2.00D-12*RO2*0.2 	;
+{2732.} 	 DMMBO2 + HO2 = DMMBOOH : 	KRO2HO2*0.520 	;
+{2733.} 	 DMMBO2 + NO = DMMBNO3 : 	KRO2NO*0.042 	;
+{2734.} 	 DMMBO2 + NO = DMMBO + NO2 : 	KRO2NO*0.958 	;
+{2735.} 	 DMMBO2 + NO3 = DMMBO + NO2 : 	KRO2NO3 	;
+{2736.} 	 DMMBO2 = DMC : 	8.80D-13*RO2*0.2 	;
+{2737.} 	 DMMBO2 = DMMBO : 	8.80D-13*RO2*0.6 	;
+{2738.} 	 DMMBO2 = DMMBOH : 	8.80D-13*RO2*0.2 	;
+{2739.} 	 DMCO2 + HO2 = DMCOOH : 	KRO2HO2*0.520 	;
+{2740.} 	 DMCO2 + NO = DMCNO3 : 	KRO2NO*0.017 	;
+{2741.} 	 DMCO2 + NO = DMCO + NO2 : 	KRO2NO*0.983 	;
+{2742.} 	 DMCO2 + NO3 = DMCO + NO2 : 	KRO2NO3 	;
+{2743.} 	 DMCO2 = DMCO : 	2.00D-12*RO2*0.6 	;
+{2744.} 	 DMCO2 = DMCOH : 	2.00D-12*RO2*0.2 	;
+{2745.} 	 DMCO2 = MMCF : 	2.00D-12*RO2*0.2 	;
+{2746.} 	 CH3SCH2O2 + HO2 = CH3SCH2OOH : 	KRO2HO2*0.387*0.6 	;
+{2747.} 	 CH3SCH2O2 + HO2 = CH3SCHO : 	KRO2HO2*0.387*0.4 	;
+{2748.} 	 CH3SCH2O2 + NO = CH3SCH2O + NO2 : 	4.9D-12*EXP(260/TEMP) 	;
+{2749.} 	 CH3SCH2O2 + NO3 = CH3SCH2O + NO2 : 	KRO2NO3 	;
+{2750.} 	 CH3SCH2O2 = CH3SCH2O : 	2*(K298CH3O2*1.0D-11)**0.5*RO2*0.8 	;
+{2751.} 	 CH3SCH2O2 = CH3SCH2OH : 	2*(K298CH3O2*1.0D-11)**0.5*RO2*0.1 	;
+{2752.} 	 CH3SCH2O2 = CH3SCHO : 	2*(K298CH3O2*1.0D-11)**0.5*RO2*0.1 	;
+{2753.} 	 HODMSO2 + NO = DMSO2 + HO2 + NO2 : 	KRO2NO 	;
+{2754.} 	 HODMSO2 = DMSO + HO2 : 	3.10D+00 	;
+{2755.} 	 ETHOXO2 + HO2 = ETHOXOOH : 	KRO2HO2*0.387 	;
+{2756.} 	 ETHOXO2 + NO = CHOOCH2O2 + NO2 : 	KRONO 	;
+{2757.} 	 ETHOXO2 + NO3 = CHOOCH2O2 + NO2 : 	KRO2NO3 	;
+{2758.} 	 ETHOXO2 = CHOOCH2O2 : 	8.8D-13*RO2 	;
+{2759.} 	 HYETHO2H + OH = HOCH2CH2O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{2760.} 	 HYETHO2H + OH = HOCH2CHO + OH : 	1.38D-11 	;
+{2761.} 	 HYETHO2H = HOCH2CH2O + OH : 	J(41) 	;
+{2762.} 	 ETHOHNO3 + OH = HOCH2CHO + NO2 : 	8.40D-13 	;
+{2763.} 	 HOCH2CH2O = HO2 + HCHO + HCHO : 	9.50D+13*EXP(-5988/TEMP) 	;
+{2764.} 	 HOCH2CH2O = HO2 + HOCH2CHO : 	KROPRIM*O2 	;
+{2765.} 	 HO1C3OOH = HO1C3O + OH : 	J(41) 	;
+{2766.} 	 OH + HO1C3OOH = HO1C3O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{2767.} 	 OH + HO1C3OOH = HOC2H4CHO + OH : 	1.52D-11 	;
+{2768.} 	 HO1C3NO3 = HO1C3O + NO2 : 	J(53) 	;
+{2769.} 	 OH + HO1C3NO3 = HOC2H4CHO + NO2 : 	4.44D-12 	;
+{2770.} 	 HO1C3O = HOC2H4CHO + HO2 : 	KROPRIM*O2 	;
+{2771.} 	 HOC2H4CHO = HOCH2CH2O2 + HO2 + CO : 	J(15) 	;
+{2772.} 	 NO3 + HOC2H4CHO = HOC2H4CO3 + HNO3 : 	KNO3AL*2.4 	;
+{2773.} 	 OH + HOC2H4CHO = HOC2H4CO3 : 	3.06D-11 	;
+{2774.} 	 OH + HOC3H6OH = HOC2H4CHO + HO2 : 	9.73D-12 	;
+{2775.} 	 HYPROPO2H + OH = ACETOL + OH : 	2.44D-11 	;
+{2776.} 	 HYPROPO2H + OH = HYPROPO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{2777.} 	 HYPROPO2H = HYPROPO + OH : 	J(41) 	;
+{2778.} 	 HYPROPO = CH3CHO + HCHO + HO2 : 	2.00D+14*EXP(-6410/TEMP) 	;
+{2779.} 	 PROPOLNO3 + OH = ACETOL + NO2 : 	9.16D-13 	;
+{2780.} 	 IPROPOLO2H + OH = CH3CHOHCHO + OH : 	1.83D-11 	;
+{2781.} 	 IPROPOLO2H + OH = IPROPOLO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{2782.} 	 IPROPOLO2H = IPROPOLO + OH : 	J(41) 	;
+{2783.} 	 IPROPOLO = CH3CHO + HCHO + HO2 : 	2.00D+14*EXP(-5505/TEMP) 	;
+{2784.} 	 PROLNO3 + OH = CH3CHOHCHO + NO2 : 	1.71D-12 	;
+{2785.} 	 NBUTOLAOOH + OH = MEKCOH + OH : 	3.01D-11 	;
+{2786.} 	 NBUTOLAOOH + OH = NBUTOLAO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{2787.} 	 NBUTOLAOOH = NBUTOLAO + OH : 	J(41) 	;
+{2788.} 	 NBUTOLANO3 + OH = MEKCOH + NO2 : 	1.27D-12 	;
+{2789.} 	 NBUTOLAO = C2H5CHO + HCHO + HO2 : 	2.00D+14*EXP(-6354/TEMP) 	;
+{2790.} 	 MEKCOH + OH = EGLYOX + HO2 : 	3.44D-12 	;
+{2791.} 	 MEKCOH = C2H5CO3 + HCHO + HO2 : 	J(22) 	;
+{2792.} 	 NBUTOLAOH + OH = MEKCOH + HO2 : 	1.59D-11 	;
+{2793.} 	 NBUTOLBOOH + OH = MEKAOH + OH : 	2.58D-11 	;
+{2794.} 	 NBUTOLBOOH + OH = NBUTOLBO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{2795.} 	 NBUTOLBOOH = NBUTOLBO + OH : 	J(41) 	;
+{2796.} 	 NBUTOLBNO3 + OH = MEKAOH + NO2 : 	4.51D-12 	;
+{2797.} 	 NBUTOLBNO3 = NBUTOLBO + NO2 : 	J(54) 	;
+{2798.} 	 NBUTOLBO = CH3CHO + HOCH2CH2O2 : 	2.70D+14*EXP(-7398/TEMP) 	;
+{2799.} 	 NBUTOLBO = MEKAOH + HO2 : 	KROSEC*O2 	;
+{2800.} 	 OH + HO2C4OH = MEKAOH + HO2 : 	1.42D-11 	;
+{2801.} 	 MEKAOH + OH = CO2C3CHO + HO2 : 	1.35D-11 	;
+{2802.} 	 MEKAOH = HOCH2CH2O2 + CH3CO3 : 	J(22) 	;
+{2803.} 	 BUT2OLOOH + OH = BUT2OLO + OH : 	2.89D-11 	;
+{2804.} 	 BUT2OLOOH + OH = BUT2OLO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{2805.} 	 BUT2OLOOH = BUT2OLAO + OH : 	J(41) 	;
+{2806.} 	 BUT2OLAO = CH3CHO + CH3CHO + HO2 : 	2.00D+14*EXP(-4714/TEMP) 	;
+{2807.} 	 BUT2OLNO3 + OH = BUT2OLO + NO2 : 	1.79D-12 	;
+{2808.} 	 BUT2OLO + OH = BIACET + HO2 : 	5.86D-12 	;
+{2809.} 	 BUT2OLO = CH3CO3 + CH3CHO + HO2 : 	J(22) 	;
+{2810.} 	 BUT2OLOH + OH = BUT2OLO + HO2 : 	1.73D-11 	;
+{2811.} 	 IBUTOLBO2H + OH = IBUTOLBO2 : 	8.10D-12 	;
+{2812.} 	 IBUTOLBO2H = IBUTOLBO + OH : 	J(41) 	;
+{2813.} 	 IBUTOLBNO3 + OH = CH3COCH3 + HCHO + NO2 : 	8.48D-13 	;
+{2814.} 	 IBUTOLBO = CH3COCH3 + HCHO + HO2 : 	2.00D+14*EXP(-5902/TEMP) 	;
+{2815.} 	 IBUTOLOHB + OH = IBUTALOH + HO2 : 	4.64D-12 	;
+{2816.} 	 IBUTOLCO2H + OH = HOIPRCHO + OH : 	1.69D-11 	;
+{2817.} 	 IBUTOLCO2H + OH = IBUTOLCO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{2818.} 	 IBUTOLCO2H = IBUTOLCO + OH : 	J(41) 	;
+{2819.} 	 IBUTOLCNO3 + OH = HOIPRCHO + NO2 : 	4.85D-12 	;
+{2820.} 	 IBUTOLCNO3 = IBUTOLCO + NO2 : 	J(53) 	;
+{2821.} 	 IBUTOLCO = HOIPRCHO + HO2 : 	KROPRIM*O2 	;
+{2822.} 	 HOIPRCHO = HYPROPO2 + CO + HO2 : 	J(17) 	;
+{2823.} 	 NO3 + HOIPRCHO = HOIPRCO3 + HNO3 : 	KNO3AL*4.0 	;
+{2824.} 	 OH + HOIPRCHO = HOIPRCO3 : 	3.60D-11 	;
+{2825.} 	 IBUTOLOHC + OH = HOIPRCHO : 	1.14D-11 	;
+{2826.} 	 TBUTOLOOH + OH = IBUTALOH + OH : 	9.98D-12 	;
+{2827.} 	 TBUTOLOOH + OH = TBUTOLO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{2828.} 	 TBUTOLOOH = TBUTOLO + OH : 	J(41) 	;
+{2829.} 	 TBUTOLNO3 + OH = IBUTALOH + NO2 : 	5.21D-13 	;
+{2830.} 	 TBUTOLO = CH3COCH3 + HCHO + HO2 : 	2.00D+14*EXP(-4909/TEMP) 	;
+{2831.} 	 HO3C5OOH = HO3C5O + OH : 	J(41) 	;
+{2832.} 	 OH + HO3C5OOH = HO3C4CHO + OH : 	2.28D-11 	;
+{2833.} 	 OH + HO3C5OOH = HO3C5O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{2834.} 	 HO3C5NO3 = HO3C5O + NO2 : 	J(53) 	;
+{2835.} 	 OH + HO3C5NO3 = HO3C4CHO + NO2 : 	1.20D-11 	;
+{2836.} 	 HO3C5O = HO13C5O2 : 	2.03D+11*EXP(-3430/TEMP) 	;
+{2837.} 	 OH + HO13C5 = HO1CO3C5 + HO2 : 	1.61D-11 	;
+{2838.} 	 HO3C4CHO = HO3C4O2 + HO2 + CO : 	J(15) 	;
+{2839.} 	 NO3 + HO3C4CHO = HO3C4CO3 + HNO3 : 	KNO3AL*5.5 	;
+{2840.} 	 OH + HO3C4CHO = CO3C4CHO + HO2 : 	5.56D-11*0.611 	;
+{2841.} 	 OH + HO3C4CHO = HO3C4CO3 : 	5.56D-11*0.389 	;
+{2842.} 	 C53OH2OOH + OH = MPRKAOH + OH : 	3.19D-11 	;
+{2843.} 	 C53OH2OOH + OH = PE2ENEBO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{2844.} 	 C53OH2OOH = PE2ENEBO + OH : 	J(41) 	;
+{2845.} 	 PE2ENEBNO3 + OH = MPRKAOH + NO2 : 	3.25D-12 	;
+{2846.} 	 PE2ENEBO = CH3CHO + C2H5CHO + HO2 : 	2.00D+14*EXP(-4714/TEMP) 	;
+{2847.} 	 C523OH + OH = DIEKAOH + HO2 : 	2.14D-11 	;
+{2848.} 	 MPRKAOH + OH = CO23C5 + HO2 : 	1.00D-11 	;
+{2849.} 	 MPRKAOH = C2H5CHO + CH3CO3 + HO2 : 	J(22) 	;
+{2850.} 	 BUT2CO3 + HO2 = BUT2CO2H + O3 : 	KAPHO2*0.15 	;
+{2851.} 	 BUT2CO3 + HO2 = BUT2CO3H : 	KAPHO2*0.41 	;
+{2852.} 	 BUT2CO3 + HO2 = SC4H9O2 + OH : 	KAPHO2*0.44 	;
+{2853.} 	 BUT2CO3 + NO = SC4H9O2 + NO2 : 	KAPNO 	;
+{2854.} 	 BUT2CO3 + NO2 = C5PAN4 : 	KFPAN 	;
+{2855.} 	 BUT2CO3 + NO3 = SC4H9O2 + NO2 : 	KRO2NO3*1.74 	;
+{2856.} 	 BUT2CO3 = BUT2CO2H : 	1.00D-11*0.3*RO2 	;
+{2857.} 	 BUT2CO3 = SC4H9O2 : 	1.00D-11*0.7*RO2 	;
+{2858.} 	 HM2C43OOH = HM2C43O + OH : 	J(41) 	;
+{2859.} 	 OH + HM2C43OOH = MIPKBOH + OH : 	3.11D-11 	;
+{2860.} 	 HM2C43NO3 = HM2C43O + NO2 : 	J(54) 	;
+{2861.} 	 OH + HM2C43NO3 = MIPKBOH + NO2 : 	4.93D-12 	;
+{2862.} 	 HM2C43O = MIPKBOH + HO2 : 	KROSEC*O2 	;
+{2863.} 	 OH + HO13M2C4 = MIPKBOH + HO2 : 	1.59D-11 	;
+{2864.} 	 MIPKBOH = CH3CO3 + HYPROPO2 : 	J(22) 	;
+{2865.} 	 OH + MIPKBOH = CO2C43CHO + HO2 : 	1.51D-11 	;
+{2866.} 	 M2BUOL2OOH + OH = M2BUOL2O2 : 	9.24D-12 	;
+{2867.} 	 M2BUOL2OOH = M2BUOL2O + OH : 	J(41) 	;
+{2868.} 	 M2BUOL2NO3 + OH = ACETOL + CH3CHO + NO2 : 	1.18D-12 	;
+{2869.} 	 M2BUOL2O = MEK + HCHO + HO2 : 	2.00D+14*EXP(-5902/TEMP) 	;
+{2870.} 	 M2BUOL2OH + OH = PROL1MCHO + HO2 : 	5.78D-12 	;
+{2871.} 	 C3ME3CO3 + HO2 = C3ME3CO2H + O3 : 	KAPHO2*0.15 	;
+{2872.} 	 C3ME3CO3 + HO2 = C3ME3CO3H : 	KAPHO2*0.41 	;
+{2873.} 	 C3ME3CO3 + HO2 = IC4H9O2 + OH : 	KAPHO2*0.44 	;
+{2874.} 	 C3ME3CO3 + NO = IC4H9O2 + NO2 : 	KAPNO 	;
+{2875.} 	 C3ME3CO3 + NO2 = C3ME3PAN : 	KFPAN 	;
+{2876.} 	 C3ME3CO3 + NO3 = IC4H9O2 + NO2 : 	KRO2NO3*1.74 	;
+{2877.} 	 C3ME3CO3 = C3ME3CO2H : 	1.00D-11*0.3*RO2 	;
+{2878.} 	 C3ME3CO3 = IC4H9O2 : 	1.00D-11*0.7*RO2 	;
+{2879.} 	 C3ME3CHOO2 + HO2 = C3M3CHOOOH : 	KRO2HO2*0.706 	;
+{2880.} 	 C3ME3CHOO2 + NO = C3M3CHONO3 : 	KRO2NO*0.039 	;
+{2881.} 	 C3ME3CHOO2 + NO = C3ME3CHOO + NO2 : 	KRO2NO*0.961 	;
+{2882.} 	 C3ME3CHOO2 + NO3 = C3ME3CHOO + NO2 : 	KRO2NO3 	;
+{2883.} 	 C3ME3CHOO2 = C3ME3CHOO : 	6.70D-15*0.7*RO2 	;
+{2884.} 	 C3ME3CHOO2 = H2M2C3CHO : 	6.70D-15*0.3*RO2 	;
+{2885.} 	 HM33C3OOH = HM33C3O + OH : 	J(41) 	;
+{2886.} 	 OH + HM33C3OOH = HM33C3O2 : 	9.51D-12 	;
+{2887.} 	 HM33C3NO3 = HM33C3O + NO2 : 	J(55) 	;
+{2888.} 	 OH + HM33C3NO3 = CH3COCH3 + HOCH2CHO + NO2 : 	4.45D-12 	;
+{2889.} 	 HM33C3O = CH3COCH3 + HOCH2CH2O2 : 	2.70D+14*EXP(-6542/TEMP) 	;
+{2890.} 	 OH + HO2M2C4OH = H2M2C3CHO + HO2 : 	5.91D-12 	;
+{2891.} 	 ME3BUOLOOH + OH = ME3BUOLO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{2892.} 	 ME3BUOLOOH + OH = ME3CO2BUOL + OH : 	3.15D-11 	;
+{2893.} 	 ME3BUOLOOH = ME3BUOLO + OH : 	J(41) 	;
+{2894.} 	 ME3BUOLNO3 + OH = ME3CO2BUOL + NO2 : 	1.63D-12 	;
+{2895.} 	 ME3BUOLO = IPRCHO + HCHO + HO2 : 	KDEC 	;
+{2896.} 	 C4ME3HO12 + OH = ME3CO2BUOL + HO2 : 	1.73D-11 	;
+{2897.} 	 ME3CO2BUOL + OH = IPRGLYOX + HO2 : 	5.11D-12 	;
+{2898.} 	 ME3CO2BUOL = HOCH2CO3 + IC3H7O2 : 	J(22) 	;
+{2899.} 	 HO2M2C4OOH = HO2M2C4O + OH : 	J(41) 	;
+{2900.} 	 OH + HO2M2C4OOH = H2M2C3CHO + OH : 	1.15D-11 	;
+{2901.} 	 OH + HO2M2C4OOH = HO2M2C4O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{2902.} 	 HO2M2C4NO3 = HO2M2C4O + NO2 : 	J(53) 	;
+{2903.} 	 OH + HO2M2C4NO3 = H2M2C3CHO + NO2 : 	7.50D-13 	;
+{2904.} 	 HO2M2C4O = C54O2 : 	6.10D+11*EXP(-4240/TEMP) 	;
+{2905.} 	 HO2M2C4O = H2M2C3CHO + HO2 : 	KROPRIM*O2 	;
+{2906.} 	 H2M2C3CHO = TBUTOLO2 + HO2 + CO : 	J(15) 	;
+{2907.} 	 NO3 + H2M2C3CHO = H2M2C3CO3 + HNO3 : 	KNO3AL*8.5 	;
+{2908.} 	 OH + H2M2C3CHO = H2M2C3CO3 : 	2.21D-11 	;
+{2909.} 	 M2BU2OLOOH + OH = ME2BU2OLO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{2910.} 	 M2BU2OLOOH + OH = MIPKAOH + OH : 	2.07D-11 	;
+{2911.} 	 M2BU2OLOOH = ME2BU2OLO + OH : 	J(41) 	;
+{2912.} 	 M2BU2OLNO3 + OH = MIPKAOH + NO2 : 	5.97D-13 	;
+{2913.} 	 ME2BU2OLO = CH3COCH3 + CH3CHO + HO2 : 	2.70D+14*EXP(-6643/TEMP) 	;
+{2914.} 	 ME2BU2OLO = MIPKAOH + HO2 : 	KROSEC*O2 	;
+{2915.} 	 C4ME3HO23 + OH = MIPKAOH + HO2 : 	8.63D-12 	;
+{2916.} 	 OH + MIPKAOH = MIPKAO : 	1.38D-12 	;
+{2917.} 	 PROL11MOOH + OH = PROL11MO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{2918.} 	 PROL11MOOH + OH = PROL1MCHO + OH : 	1.13D-11 	;
+{2919.} 	 PROL11MOOH = PROL11MO + OH : 	J(41) 	;
+{2920.} 	 PROL11MNO3 + OH = PROL1MCHO + NO2 : 	1.67D-12 	;
+{2921.} 	 PROL11MO = MEK + HCHO + HO2 : 	2.00D+14*EXP(-4909/TEMP) 	;
+{2922.} 	 PROL1MCHO + NO3 = PROL1MCO3 + HNO3 : 	KNO3AL*8.5 	;
+{2923.} 	 PROL1MCHO + OH = PROL1MCO3 : 	2.52D-11 	;
+{2924.} 	 PROL1MCHO = MEK + HO2 + HO2 + CO : 	J(17) 	;
+{2925.} 	 H2M3C4OOH = H2M3C4O + OH : 	J(41) 	;
+{2926.} 	 OH + H2M3C4OOH = H2M3C4O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{2927.} 	 OH + H2M3C4OOH = HO2C43CHO + OH : 	2.14D-11 	;
+{2928.} 	 H2M3C4NO3 = H2M3C4O + NO2 : 	J(53) 	;
+{2929.} 	 OH + H2M3C4NO3 = HO2C43CHO + NO2 : 	9.35D-12 	;
+{2930.} 	 H2M3C4O = C56O2 : 	2.03D+11*EXP(-4240/TEMP) 	;
+{2931.} 	 H2M3C4O = HO2C43CHO + HO2 : 	KROPRIM*O2 	;
+{2932.} 	 HO2C43CHO = BUT2OLO2 + HO2 + CO : 	J(17) 	;
+{2933.} 	 NO3 + HO2C43CHO = HO2C43CO3 + HNO3 : 	KNO3AL*8.5 	;
+{2934.} 	 OH + HO2C43CHO = CO2C43CHO + HO2 : 	4.99D-11*0.561 	;
+{2935.} 	 OH + HO2C43CHO = HO2C43CO3 : 	4.99D-11*0.439 	;
+{2936.} 	 ME2BUOLOOH + OH = ME2BUOLO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{2937.} 	 ME2BUOLOOH + OH = MIPKAOOH + HO2 : 	8.85D-12 	;
+{2938.} 	 ME2BUOLOOH = ME2BUOLO + OH : 	J(41) 	;
+{2939.} 	 ME2BUOLNO3 + OH = CH3CHO + CH3COCH3 + NO2 : 	1.72D-12 	;
+{2940.} 	 ME2BUOLO = CH3COCH3 + CH3CHO + HO2 : 	KDEC 	;
+{2941.} 	 CYHXOLAOOH + OH = CYHEXOLAO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{2942.} 	 CYHXOLAOOH + OH = CYHXOLACO + OH : 	4.07D-11 	;
+{2943.} 	 CYHXOLAOOH = CYHEXOLAO + OH : 	J(41) 	;
+{2944.} 	 CYHEXOLAO = C6DIAL + HO2 : 	KDEC 	;
+{2945.} 	 CYHXOLANO3 + OH = CYHXOLACO + NO2 : 	6.08D-12 	;
+{2946.} 	 CYHXDIOLA + OH = CYHXOLACO + HO2 : 	2.65D-11 	;
+{2947.} 	 CYHXOLACO + OH = CYC6DIONE + HO2 : 	1.76D-11 	;
+{2948.} 	 CYHXOLACO = C2H4 + CO + ALLYLOH : 	J(22) 	;
+{2949.} 	 MIBKOHAOOH + OH = MIBKAOH3CO + OH : 	1.56D-11 	;
+{2950.} 	 MIBKOHAOOH + OH = MIBKAOHAO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{2951.} 	 MIBKOHAOOH = IBUTALOH + CH3CO3 + OH : 	J(22) 	;
+{2952.} 	 MIBKOHAOOH = MIBKAOHAO + OH : 	J(41) 	;
+{2953.} 	 MIBKAOHAO = MGLYOX + CH3COCH3 + HO2 : 	KDEC 	;
+{2954.} 	 MIBKAOH3CO + OH = MIBKCOOHO2 : 	1.30D-12 	;
+{2955.} 	 MIBKAOH3CO = IPRHOCO3 + CH3CO3 : 	J(35) 	;
+{2956.} 	 MIBKOH34 + OH = MIBKAOH3CO + HO2 : 	6.98D-12 	;
+{2957.} 	 MIBKOH34 = IBUTALOH + CH3CO3 + HO2 : 	J(22) 	;
+{2958.} 	 MIBKOHBOOH + OH = C65OH + OH : 	1.08D-11 	;
+{2959.} 	 MIBKOHBOOH + OH = MIBKAOHBO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{2960.} 	 MIBKOHBOOH = MIBKAOHBO + OH : 	J(41)+J(22) 	;
+{2961.} 	 MIBKAOHBO = CO24C5 + HCHO + HO2 : 	KDEC 	;
+{2962.} 	 MIBKAOHNO3 + OH = C65OH + NO2 : 	1.18D-12 	;
+{2963.} 	 C64OH = C64O + HO2 : 	J(22) 	;
+{2964.} 	 OH + C64OH = C65OH + HO2 : 	5.43D-12 	;
+{2965.} 	 C65OH = CO24C5 + HO2 + HO2 + CO : 	J(17) 	;
+{2966.} 	 OH + C65OH = C65O : 	2.43D-11 	;
+{2967.} 	 MIBKHO4OOH + OH = MIBKHO4O2 : 	1.31D-11 	;
+{2968.} 	 MIBKHO4OOH = MIBKHO4O + OH : 	J(41) 	;
+{2969.} 	 MIBKHO4OOH = TBUTOLO2 + HCHO + CO + OH : 	J(22) 	;
+{2970.} 	 MIBKHO4O = H2M2C3CO3 + HCHO : 	KDEC 	;
+{2971.} 	 MIBKHO14 + OH = MIBKHO4CHO + HO2 : 	3.44D-12 	;
+{2972.} 	 MIBKHO14 = TBUTOLO2 + HOCH2CO3 : 	J(22) 	;
+{2973.} 	 MIBKHO4CHO + NO3 = TBUTOLO2 + CO + CO + HNO3 : 	KNO3AL*8.5 	;
+{2974.} 	 MIBKHO4CHO + OH = TBUTOLO2 + CO + CO : 	1.34D-11 	;
+{2975.} 	 MIBKHO4CHO = H2M2C3CO3 + HO2 + CO : 	J(34) 	;
+{2976.} 	 CH3CO3H + OH = CH3CO3 : 	3.70D-12 	;
+{2977.} 	 CH3CO3H = CH3O2 + OH : 	J(41) 	;
+{2978.} 	 PAN + OH = HCHO + CO + NO2 : 	3D-14 	;
+{2979.} 	 PAN = CH3CO3 + NO2 : 	KBPAN 	;
+{2980.} 	 HOCH2CO3 + HO2 = HO2 + HCHO + OH : 	KAPHO2*0.44 	;
+{2981.} 	 HOCH2CO3 + HO2 = HOCH2CO2H + O3 : 	KAPHO2*0.15 	;
+{2982.} 	 HOCH2CO3 + HO2 = HOCH2CO3H : 	KAPHO2*0.41 	;
+{2983.} 	 HOCH2CO3 + NO = NO2 + HO2 + HCHO : 	KAPNO 	;
+{2984.} 	 HOCH2CO3 + NO2 = PHAN : 	KFPAN 	;
+{2985.} 	 HOCH2CO3 + NO3 = NO2 + HO2 + HCHO : 	KRO2NO3*1.74 	;
+{2986.} 	 HOCH2CO3 = HCHO + HO2 : 	1.00D-11*0.7*RO2 	;
+{2987.} 	 HOCH2CO3 = HOCH2CO2H : 	1.00D-11*0.3*RO2 	;
+{2988.} 	 CH3CHOHCO3 + HO2 = CH3CHO + HO2 + OH : 	KAPHO2*0.44 	;
+{2989.} 	 CH3CHOHCO3 + HO2 = IPROPOLPER : 	KAPHO2*0.56 	;
+{2990.} 	 CH3CHOHCO3 + NO = CH3CHO + HO2 + NO2 : 	KAPNO 	;
+{2991.} 	 CH3CHOHCO3 + NO2 = IPROPOLPAN : 	KFPAN 	;
+{2992.} 	 CH3CHOHCO3 + NO3 = CH3CHO + HO2 + NO2 : 	KRO2NO3*1.74 	;
+{2993.} 	 CH3CHOHCO3 = CH3CHO + HO2 : 	1.00D-11*RO2 	;
+{2994.} 	 NMBOAOOH + OH = C4MCONO3OH + OH : 	4.89D-12 	;
+{2995.} 	 NMBOAOOH + OH = NMBOAO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{2996.} 	 NMBOAOOH = NMBOAO + OH : 	J(41) 	;
+{2997.} 	 NMBOAO = NO3CH2CHO + CH3COCH3 + HO2 : 	KDEC 	;
+{2998.} 	 C4MCONO3OH + OH = C4MCONO3O : 	1.23D-12 	;
+{2999.} 	 MBOBNO3 + OH = MBOBCO + NO2 : 	2.69D-12 	;
+{3000.} 	 NMBOBOOH + OH = NMBOBCO + OH : 	2.52D-12 	;
+{3001.} 	 NMBOBOOH + OH = NMBOBO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{3002.} 	 NMBOBOOH = NMBOBO + OH : 	J(41) 	;
+{3003.} 	 NMBOBO = IBUTALOH + HCHO + NO2 : 	KDEC 	;
+{3004.} 	 MBOANO3 + OH = MBOACO + NO2 : 	1.75D-12 	;
+{3005.} 	 NMBOBCO + OH = NC4OHCO3 : 	4.26D-12 	;
+{3006.} 	 MBOOO + CO = IBUTALOH : 	1.20D-15 	;
+{3007.} 	 MBOOO + NO = IBUTALOH + NO2 : 	1.00D-14 	;
+{3008.} 	 MBOOO + NO2 = IBUTALOH + NO3 : 	1.00D-15 	;
+{3009.} 	 MBOOO + SO2 = IBUTALOH + SO3 : 	7.00D-14 	;
+{3010.} 	 MBOOO = IBUTALOH + H2O2 : 	6.00D-18*H2O 	;
+{3011.} 	 MBOOO = IPRHOCO2H : 	1.00D-17*H2O 	;
+{3012.} 	 IPRHOCO3 + HO2 = CH3COCH3 + HO2 + OH : 	KAPHO2*0.44 	;
+{3013.} 	 IPRHOCO3 + HO2 = IPRHOCO2H + O3 : 	KAPHO2*0.15 	;
+{3014.} 	 IPRHOCO3 + HO2 = IPRHOCO3H : 	KAPHO2*0.41 	;
+{3015.} 	 IPRHOCO3 + NO = CH3COCH3 + HO2 + NO2 : 	KAPNO 	;
+{3016.} 	 IPRHOCO3 + NO2 = C4PAN5 : 	KFPAN 	;
+{3017.} 	 IPRHOCO3 + NO3 = CH3COCH3 + HO2 + NO2 : 	KRO2NO3*1.74 	;
+{3018.} 	 IPRHOCO3 = CH3COCH3 + HO2 : 	1.00D-11*RO2*0.7 	;
+{3019.} 	 IPRHOCO3 = IPRHOCO2H : 	1.00D-11*RO2*0.3 	;
+{3020.} 	 CH2OO + CO = HCHO : 	1.20D-15 	;
+{3021.} 	 CH2OO + NO = HCHO + NO2 : 	1.00D-14 	;
+{3022.} 	 CH2OO + NO2 = HCHO + NO3 : 	1.00D-15 	;
+{3023.} 	 CH2OO + SO2 = HCHO + SO3 : 	7.00D-14 	;
+{3024.} 	 CH2OO = HCHO + H2O2 : 	6.00D-18*H2O 	;
+{3025.} 	 CH2OO = HCOOH : 	1.00D-17*H2O 	;
+{3026.} 	 MBOAOOH + OH = MBOACO + OH : 	2.93D-11 	;
+{3027.} 	 MBOAOOH + OH = MBOAO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{3028.} 	 MBOAOOH = MBOAO + OH : 	J(41) 	;
+{3029.} 	 MBOAO = HOCH2CHO + CH3COCH3 + HO2 : 	KDEC 	;
+{3030.} 	 MBOACO + OH = MBOCOCO + HO2 : 	3.79D-12 	;
+{3031.} 	 MBOACO = HCHO + HO2 + IPRHOCO3 : 	J(22) 	;
+{3032.} 	 MBOAOH + OH = MBOACO + HO2 : 	1.51D-11 	;
+{3033.} 	 MBOBOOH + OH = MBOBCO + OH : 	2.05D-12 	;
+{3034.} 	 MBOBOOH + OH = MBOBO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{3035.} 	 MBOBOOH = MBOBO + OH : 	J(41) 	;
+{3036.} 	 MBOBO = IBUTALOH + HCHO + HO2 : 	KDEC 	;
+{3037.} 	 MBOBCO + OH = C4OH2CO3 : 	2.75D-11 	;
+{3038.} 	 MBOBCO = CO + HO2 + HO2 + IBUTALOH : 	J(17) 	;
+{3039.} 	 CH3OOH = CH3O + OH : 	J(41) 	;
+{3040.} 	 OH + CH3OOH = CH3O2 : 	5.3D-12*EXP(190/TEMP)*0.6 	;
+{3041.} 	 OH + CH3OOH = HCHO + OH : 	5.3D-12*EXP(190/TEMP)*0.4 	;
+{3042.} 	 CH3NO3 = CH3O + NO2 : 	J(51) 	;
+{3043.} 	 OH + CH3NO3 = HCHO + NO2 : 	4.0D-13*EXP(-845/TEMP) 	;
+{3044.} 	 CH3O = HCHO + HO2 : 	7.2D-14*EXP(-1080/TEMP)*O2 	;
+{3045.} 	 CH3O2NO2 = CH3O2 + NO2 : 	KMT14 	;
+{3046.} 	 HCOCH2OOH + OH = GLYOX + OH : 	2.91D-11 	;
+{3047.} 	 HCOCH2OOH + OH = HCOCH2O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{3048.} 	 HCOCH2OOH = HCOCH2O + OH : 	J(41) 	;
+{3049.} 	 HCOCH2OOH = HO2 + CO + HCHO + OH : 	J(15) 	;
+{3050.} 	 HCOCH2O = HCHO + CO + HO2 : 	KDEC 	;
+{3051.} 	 PERPROACID + OH = C2H5CO3 : 	4.42D-12 	;
+{3052.} 	 PERPROACID = C2H5O2 + OH : 	J(41) 	;
+{3053.} 	 PPN + OH = CH3CHO + CO + NO2 : 	1.27D-12 	;
+{3054.} 	 PPN = C2H5CO3 + NO2 : 	1.7D-3*EXP(-11280/TEMP) 	;
+{3055.} 	 C2H5OOH = C2H5O + OH : 	J(41) 	;
+{3056.} 	 OH + C2H5OOH = C2H5O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{3057.} 	 OH + C2H5OOH = CH3CHO + OH : 	8.01D-12 	;
+{3058.} 	 C2H5NO3 = C2H5O + NO2 : 	J(52) 	;
+{3059.} 	 OH + C2H5NO3 = CH3CHO + NO2 : 	6.7D-13*EXP(-395/TEMP) 	;
+{3060.} 	 BUTACID + OH = NC3H7O2 : 	1.8D-12 	;
+{3061.} 	 PERBUACID + OH = C3H7CO3 : 	8.29D-12 	;
+{3062.} 	 PERBUACID = NC3H7O2 + OH : 	J(41) 	;
+{3063.} 	 PBN + OH = C2H5CHO + CO + NO2 : 	4.70D-12 	;
+{3064.} 	 PBN = C3H7CO3 + NO2 : 	KBPAN 	;
+{3065.} 	 BUTALO2H + OH = BUTALO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{3066.} 	 BUTALO2H + OH = CO2C3CHO + OH : 	1.27D-10 	;
+{3067.} 	 BUTALO2H = BUTALO + OH : 	J(41) 	;
+{3068.} 	 BUTALO2H = HO2 + CO + IC3H7O2 : 	J(15) 	;
+{3069.} 	 BUTALNO3 + OH = CO2C3CHO + NO2 : 	2.25D-11 	;
+{3070.} 	 BUTALNO3 = NO2 + BUTALO : 	J(54)+J(15) 	;
+{3071.} 	 BUTALO = CH3CHO + HCOCH2O2 : 	2.70D+14*EXP(-7398/TEMP) 	;
+{3072.} 	 BUTALO = CO2C3CHO + HO2 : 	KROSEC*O2 	;
+{3073.} 	 CO2C3CHO + NO3 = CO2C3CO3 + HNO3 : 	KNO3AL*4.0 	;
+{3074.} 	 CO2C3CHO + OH = CO2C3CO3 : 	7.15D-11 	;
+{3075.} 	 CO2C3CHO = CH3COCH2O2 + HCHO : 	J(15) 	;
+{3076.} 	 HO2C3CHO = HO2 + CO + IPROPOLO2 : 	J(15) 	;
+{3077.} 	 NO3 + HO2C3CHO = HO2C3CO3 + HNO3 : 	KNO3AL*4.0 	;
+{3078.} 	 OH + HO2C3CHO = CO2C3CHO + HO2 : 	4.88D-11*0.561 	;
+{3079.} 	 OH + HO2C3CHO = HO2C3CO3 : 	4.88D-11*0.439 	;
+{3080.} 	 NC3H7OOH = NC3H7O + OH : 	J(41) 	;
+{3081.} 	 OH + NC3H7OOH = C2H5CHO + OH : 	1.10D-11 	;
+{3082.} 	 OH + NC3H7OOH = NC3H7O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{3083.} 	 NC3H7NO3 = NC3H7O + NO2 : 	J(53) 	;
+{3084.} 	 OH + NC3H7NO3 = C2H5CHO + NO2 : 	5.8D-13 	;
+{3085.} 	 NC3H7O = C2H5CHO + HO2 : 	2.6D-14*EXP(-255/TEMP)*O2 	;
+{3086.} 	 IBUTACID + OH = IC3H7O2 : 	2.00D-12 	;
+{3087.} 	 PERIBUACID + OH = IPRCO3 : 	6.26D-12 	;
+{3088.} 	 PERIBUACID = IC3H7O2 + OH : 	J(41) 	;
+{3089.} 	 PIPN + OH = CH3COCH3 + CO + NO2 : 	2.66D-12 	;
+{3090.} 	 PIPN = IPRCO3 + NO2 : 	KBPAN 	;
+{3091.} 	 IBUTALBO2H + OH = IBUTALBO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{3092.} 	 IBUTALBO2H + OH = IBUTDIAL + OH : 	7.11D-11 	;
+{3093.} 	 IBUTALBO2H = IBUTALBO + OH : 	J(41)+J(17) 	;
+{3094.} 	 IBUALANO3 + OH = IBUTDIAL + NO2 : 	2.25D-11 	;
+{3095.} 	 IBUALANO3 = IBUTALBO + NO2 : 	J(53)+J(17) 	;
+{3096.} 	 IBUTALBO = IBUTDIAL + HO2 : 	KROPRIM*O2 	;
+{3097.} 	 IBUTDIAL + NO3 = IBUDIALCO3 + HNO3 : 	2*KNO3AL*4.0 	;
+{3098.} 	 IBUTDIAL + OH = IBUDIALCO3 : 	1.44D-10 	;
+{3099.} 	 IBUTDIAL = PROPALO2 + HO2 + CO : 	J(17)*2.0 	;
+{3100.} 	 IBUTALO2H + OH = IBUTALCO2 : 	2.57D-11 	;
+{3101.} 	 IBUTALO2H = CH3COCH3 + OH + HO2 + CO : 	J(17) 	;
+{3102.} 	 IBUTALO2H = M2PROPAL2O + OH : 	J(41) 	;
+{3103.} 	 M2PROPAL2O = CH3COCH3 + HO2 + CO : 	KDEC 	;
+{3104.} 	 IC3H7OOH = IC3H7O + OH : 	J(41) 	;
+{3105.} 	 OH + IC3H7OOH = CH3COCH3 + OH : 	1.66D-11 	;
+{3106.} 	 OH + IC3H7OOH = IC3H7O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{3107.} 	 IC3H7NO3 = IC3H7O + NO2 : 	J(54) 	;
+{3108.} 	 OH + IC3H7NO3 = CH3COCH3 + NO2 : 	6.2D-13*EXP(-230/TEMP) 	;
+{3109.} 	 IC3H7O = CH3COCH3 + HO2 : 	1.5D-14*EXP(-230/TEMP)*O2 	;
+{3110.} 	 PENTACID + OH = NC4H9O2 : 	6.88D-12 	;
+{3111.} 	 PERPENACID + OH = C4H9CO3 : 	1.04D-11 	;
+{3112.} 	 PERPENACID = NC4H9O2 + OH : 	J(41) 	;
+{3113.} 	 PPEN + OH = C3H7CHO + CO + NO2 : 	6.85D-12 	;
+{3114.} 	 PPEN = C4H9CO3 + NO2 : 	KBPAN 	;
+{3115.} 	 C4CHOBOOH + OH = C4CHOBO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{3116.} 	 C4CHOBOOH + OH = CO3C4CHO + OH : 	1.57D-10 	;
+{3117.} 	 C4CHOBOOH = C4CHOBO + OH : 	J(41)+J(15) 	;
+{3118.} 	 C4CHOBNO3 + OH = CO3C4CHO + NO2 : 	2.33D-11 	;
+{3119.} 	 C4CHOBNO3 = C4CHOBO + NO2 : 	J(54)+J(15) 	;
+{3120.} 	 C4CHOBO = CO3C4CHO + HO2 : 	KROPRIM*O2 	;
+{3121.} 	 CO3C4CHO = MEKCO2 + HO2 + CO : 	J(15) 	;
+{3122.} 	 NO3 + CO3C4CHO = CO3C4CO3 + HNO3 : 	KNO3AL*5.5 	;
+{3123.} 	 OH + CO3C4CHO = CO3C4CO3 : 	6.76D-11 	;
+{3124.} 	 NC4H9OOH = NC4H9O + OH : 	J(41) 	;
+{3125.} 	 OH + NC4H9OOH = C3H7CHO + OH : 	1.24D-11 	;
+{3126.} 	 OH + NC4H9OOH = NC4H9O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{3127.} 	 NC4H9NO3 = NC4H9O + NO2 : 	J(53) 	;
+{3128.} 	 OH + NC4H9NO3 = C3H7CHO + NO2 : 	1.6D-12 	;
+{3129.} 	 NC4H9O = C3H7CHO + HO2 : 	8.9D-14*EXP(-550/TEMP)*O2 	;
+{3130.} 	 NC4H9O = HO1C4O2 : 	4.6D10*EXP(-3570/TEMP) 	;
+{3131.} 	 OH + ACO2H = HO2 + CO + HCHO : 	8.66D-12 	;
+{3132.} 	 ACO3H = HO2 + CO + HCHO + OH : 	J(41) 	;
+{3133.} 	 OH + ACO3H = ACO3 : 	1.22D-11 	;
+{3134.} 	 ACRPAN = ACO3 + NO2 : 	KBPAN 	;
+{3135.} 	 OH + ACRPAN = HOCH2CHO + CO + NO2 : 	8.63D-12 	;
+{3136.} 	 HOCHOCOOH + OH = HOCH2COCHO + OH : 	4.77D-11 	;
+{3137.} 	 HOCHOCOOH = CHOCOHCO + OH : 	J(41) 	;
+{3138.} 	 CHOCOHCO = HOCH2CHO + HO2 + CO : 	KDEC 	;
+{3139.} 	 HOCH2COCHO = HOCH2CO3 + CO + HO2 : 	J(34) 	;
+{3140.} 	 NO3 + HOCH2COCHO = HOCH2CO3 + CO + HNO3 : 	KNO3AL*2.4 	;
+{3141.} 	 OH + HOCH2COCHO = HOCH2CO3 + CO : 	1.44D-11 	;
+{3142.} 	 OCCOHCOH + OH = A2PANOO : 	6.22D-11 	;
+{3143.} 	 C32OH13CO + OH = HCOCOHCO3 : 	1.36D-10 	;
+{3144.} 	 C32OH13CO = GLYOX + HO2 + HO2 + CO : 	J(15)*2 	;
+{3145.} 	 OCCOHCOOH + OH = OCCOHCO2 : 	9.258E-11 	;
+{3146.} 	 OCCOHCOOH = OCCOHCO + OH : 	J(41) 	;
+{3147.} 	 C42AOH = HO2 + CO + HO2 + NO3CH2CHO : 	J(15) 	;
+{3148.} 	 OH + C42AOH = NMGLYOX + HO2 : 	2.92D-11 	;
+{3149.} 	 OCCOHCO = HCHO + GLYOX + HO2 : 	KDEC 	;
+{3150.} 	 HCOCO3 + HO2 = HCOCO2H + O3 : 	KAPHO2*0.15 	;
+{3151.} 	 HCOCO3 + HO2 = HCOCO3H : 	KAPHO2*0.41 	;
+{3152.} 	 HCOCO3 + HO2 = HO2 + CO + OH : 	KAPHO2*0.44 	;
+{3153.} 	 HCOCO3 + NO = HO2 + CO + NO2 : 	KAPNO 	;
+{3154.} 	 HCOCO3 + NO2 = GLYPAN : 	KFPAN 	;
+{3155.} 	 HCOCO3 + NO3 = HO2 + CO + NO2 : 	KRO2NO3*1.74 	;
+{3156.} 	 HCOCO3 = CO + HO2 : 	1.00D-11*0.7*RO2 	;
+{3157.} 	 HCOCO3 = HCOCO2H : 	1.00D-11*0.3*RO2 	;
+{3158.} 	 GLYOO + CO = GLYOX : 	1.2D-15 	;
+{3159.} 	 GLYOO + NO = GLYOX + NO2 : 	1.0D-14 	;
+{3160.} 	 GLYOO + NO2 = GLYOX + NO3 : 	1.0D-15 	;
+{3161.} 	 GLYOO + SO2 = GLYOX + SO3 : 	7.0D-14 	;
+{3162.} 	 GLYOO = GLYOX + H2O2 : 	6.0D-18*H2O 	;
+{3163.} 	 GLYOO = HCOCO2H : 	1.0D-17*H2O 	;
+{3164.} 	 OH + MACO2H = CH3C2H2O2 : 	1.51D-11 	;
+{3165.} 	 MACO3H = CH3C2H2O2 + OH : 	J(41) 	;
+{3166.} 	 OH + MACO3H = MACO3 : 	1.661D-11 	;
+{3167.} 	 MPAN = MACO3 + NO2 : 	1.6D+16*EXP(-13500/TEMP) 	;
+{3168.} 	 O3 + MPAN = HCHO + CH3CO3 + NO3 : 	8.2D-18 	;
+{3169.} 	 OH + MPAN = ACETOL + CO + NO2 : 	2.9D-11 	;
+{3170.} 	 MGLYOO + CO = MGLYOX : 	1.2D-15 	;
+{3171.} 	 MGLYOO + NO = MGLYOX + NO2 : 	1.0D-14 	;
+{3172.} 	 MGLYOO + NO2 = MGLYOX + NO3 : 	1.0D-15 	;
+{3173.} 	 MGLYOO + SO2 = MGLYOX + SO3 : 	7.0D-14 	;
+{3174.} 	 MGLYOO = MGLYOX + H2O2 : 	6.0D-18*H2O 	;
+{3175.} 	 MACROOH = ACETOL + CO + HO2 + OH : 	J(17) 	;
+{3176.} 	 MACROOH = MACRO + OH : 	J(41) 	;
+{3177.} 	 OH + MACROOH = ACETOL + CO + OH : 	3.77D-11 	;
+{3178.} 	 MACRO = ACETOL + CO + HO2 : 	KDEC 	;
+{3179.} 	 MACROH = ACETOL + CO + HO2 + HO2 : 	J(17) 	;
+{3180.} 	 OH + MACROH = C3MDIALOH + HO2 : 	3.42D-11 	;
+{3181.} 	 MACROHOOH + OH = C3MDIALOH + OH : 	5.55D-11 	;
+{3182.} 	 MACROHOOH = IBUTALOH + CO + HO2  + OH : 	J(17) 	;
+{3183.} 	 MACROHOOH = MACROHO + OH : 	J(41) 	;
+{3184.} 	 MACROHNO3 + OH = NOA + CO + HO2 : 	2.18D-11 	;
+{3185.} 	 MACROHNO3 = MACROHO + NO2 : 	J(55) 	;
+{3186.} 	 MACROHNO3 = NOA + HO2 + CO + HO2 : 	J(17) 	;
+{3187.} 	 MACROHO = MGLYOX + HCHO + HO2 : 	KDEC 	;
+{3188.} 	 C3MDIALOH + OH = CHOMOHCO3 : 	1.32D-10 	;
+{3189.} 	 C3MDIALOH = MGLYOX + HO2 + CO + HO2 : 	J(17)*2 	;
+{3190.} 	 C3DBCO3H + OH = C3DBCO3 : 	1.97D-11 	;
+{3191.} 	 C3DBCO3H = CH3CHO + HO2 + CO + OH : 	J(41) 	;
+{3192.} 	 C3H5CO2H + OH = CH3CHO + HO2 + CO : 	6.48D-11 	;
+{3193.} 	 C3DBPAN + OH = CH3CHO + CO + CO + NO2 : 	1.65D-11 	;
+{3194.} 	 C3DBPAN = C3DBCO3 + NO2 : 	KBPAN 	;
+{3195.} 	 C4CONO3OOH + NO3 = C4CONO3O2 + HNO3 : 	KNO3AL*4.0 	;
+{3196.} 	 C4CONO3OOH + OH = C4CONO3O2 : 	3.45D-12 	;
+{3197.} 	 C4CONO3OOH = C4CONO3O + OH : 	J(17)+J(41) 	;
+{3198.} 	 C4CONO3O = CH3CHO + GLYOX + NO2 : 	KDEC 	;
+{3199.} 	 C4CONO3CO + NO3 = C4CONO3O2 + HNO3 : 	KNO3AL*4.0 	;
+{3200.} 	 C4CONO3CO + OH = C4CONO3O2 : 	4.27D-12 	;
+{3201.} 	 C4CONO3CO =  C4CONO3O2 + CO + HO2 : 	J(34) 	;
+{3202.} 	 C4CONO3CO = C4CO2O + NO2 : 	J(55) 	;
+{3203.} 	 COCCOHNO3 + OH = CCOCOCOH + NO2 : 	5.51D-12 	;
+{3204.} 	 COCCOHNO3 = CO + HO2 + NO2 + CH3CHOHCHO : 	J(17)+J(55) 	;
+{3205.} 	 C4NO3COOOH + NO3 = CH3CHO + GLYOX + HNO3 + NO2 + OH : 	KNO3AL*4.0 	;
+{3206.} 	 C4NO3COOOH + OH = C4NO3COO2 : 	2.74D-11 	;
+{3207.} 	 C4NO3COOOH = C4CONO3O + OH : 	J(17)+J(41) 	;
+{3208.} 	 C4NO3OCO = CH3CHO + GLYOX + NO2 : 	KDEC 	;
+{3209.} 	 C4OCCOHNO3 + OH = CO2H3CHO+ NO2 : 	4.55D-11 	;
+{3210.} 	 C4OCCOHNO3 = CHOPRNO3 + HO2 + CO : 	J(17) 	;
+{3211.} 	 CH3CHOO + CO = CH3CHO : 	1.20D-15 	;
+{3212.} 	 CH3CHOO + NO = CH3CHO + NO2 : 	1.00D-14 	;
+{3213.} 	 CH3CHOO + NO2 = CH3CHO + NO3 : 	1.00D-15 	;
+{3214.} 	 CH3CHOO + SO2 = CH3CHO + SO3 : 	7.00D-14 	;
+{3215.} 	 CH3CHOO = CH3CHO + H2O2 : 	6.00D-18*H2O 	;
+{3216.} 	 CH3CHOO = CH3CO2H : 	1.00D-17*H2O 	;
+{3217.} 	 C4OCCOHOOH + OH = CO2H3CHO + OH : 	9.53D-11 	;
+{3218.} 	 C4OCCOHOOH = C4OCCOHCO + OH : 	J(41)+J(17) 	;
+{3219.} 	 C4OCCOHCO = CH3CHO + GLYOX + HO2 : 	KDEC 	;
+{3220.} 	 C4OCCOHCOH + OH = CO2H3CHO + HO2 : 	7.01D-11 	;
+{3221.} 	 C4OCCOHCOH = CH3CHOHCHO + CO + HO2 + HO2 : 	J(17) 	;
+{3222.} 	 CO2H3CHO = MGLYOX + CO + HO2 + HO2 : 	J(15) 	;
+{3223.} 	 NO3 + CO2H3CHO = CO2H3CO3 + HNO3 : 	KNO3AL*4.0 	;
+{3224.} 	 OH + CO2H3CHO = CO2H3CO3 : 	2.45D-11 	;
+{3225.} 	 COCCOHCOOH + OH = CCOCOCOH + OH : 	6.35D-11 	;
+{3226.} 	 COCCOHCOOH = CO + HO2 + OH + CH3CHOHCHO : 	J(17) 	;
+{3227.} 	 COCCOHCOOH = COCCOHCO + OH : 	J(41) 	;
+{3228.} 	 COCCOHCO = CO + HO2 + CH3CHOHCHO : 	KDEC 	;
+{3229.} 	 CCOCOCOH + OH = CH3CHOHCO3 + CO : 	5.39D-11 	;
+{3230.} 	 CCOCOCOH = CH3CHOHCO3 + CO + HO2 : 	J(34) 	;
+{3231.} 	 OH + SC4H9OOH = MEK + OH : 	2.15D-11 	;
+{3232.} 	 OH + SC4H9OOH = SC4H9O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{3233.} 	 SC4H9OOH = SC4H9O + OH : 	J(41) 	;
+{3234.} 	 OH + SC4H9NO3 = MEK + NO2 : 	8.6D-13 	;
+{3235.} 	 SC4H9NO3 = SC4H9O + NO2 : 	J(54) 	;
+{3236.} 	 SC4H9O = CH3CHO + C2H5O2 : 	5.6D12*EXP(-5780/TEMP) 	;
+{3237.} 	 SC4H9O = MEK + HO2 : 	1.5D-14*EXP(-200/TEMP)*O2 	;
+{3238.} 	 IC4H9OOH = IC4H9O + OH : 	J(41) 	;
+{3239.} 	 OH + IC4H9OOH = IC4H9O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{3240.} 	 OH + IC4H9OOH = IPRCHO + OH : 	1.24D-11 	;
+{3241.} 	 IC4H9NO3 = IC4H9O + NO2 : 	J(53) 	;
+{3242.} 	 OH + IC4H9NO3 = IPRCHO + NO2 : 	7.69D-13 	;
+{3243.} 	 IC4H9O = IPRCHO + HO2 : 	KROPRIM*O2 	;
+{3244.} 	 OH + TC4H9OOH = TC4H9O2 : 	2.17D-12*EXP(190/TEMP) 	;
+{3245.} 	 TC4H9OOH = TC4H9O + OH : 	J(41) 	;
+{3246.} 	 OH + TC4H9NO3 = CH3COCH3 + HCHO + NO2 : 	8.16D-14 	;
+{3247.} 	 TC4H9NO3 = TC4H9O + NO2 : 	J(55) 	;
+{3248.} 	 OH + PEAOOH = C4H9CHO + OH : 	1.41D-11 	;
+{3249.} 	 OH + PEAOOH = PEAO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{3250.} 	 PEAOOH = PEAO + OH : 	J(41) 	;
+{3251.} 	 OH + PEANO3 = C4H9CHO + NO2 : 	3.00D-12 	;
+{3252.} 	 PEANO3 = PEAO + NO2 : 	J(53) 	;
+{3253.} 	 PEAO = HO1C5O2 : 	2.03D+11*EXP(-3430/TEMP) 	;
+{3254.} 	 OH + PEAOH = C4H9CHO + HO2 : 	8.57D-12 	;
+{3255.} 	 OH + PEBOOH = MPRK + OH : 	2.30D-11 	;
+{3256.} 	 OH + PEBOOH = PEBO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{3257.} 	 PEBOOH = PEBO + OH : 	J(41) 	;
+{3258.} 	 OH + PEBNO3 = MPRK + NO2 : 	1.85D-12 	;
+{3259.} 	 PEBNO3 = PEBO + NO2 : 	J(54) 	;
+{3260.} 	 PEBO = HO2C5O2 : 	3.05D+11*EXP(-4240/TEMP) 	;
+{3261.} 	 PEBO = MPRK + HO2 : 	KROSEC*O2 	;
+{3262.} 	 OH + PEBOH = MPRK + HO2 : 	1.14D-11 	;
+{3263.} 	 OH + PECOOH = DIEK + OH : 	2.73D-11 	;
+{3264.} 	 PECOOH = PECO + OH : 	J(41) 	;
+{3265.} 	 OH + PECNO3 = DIEK + NO2 : 	1.12D-12 	;
+{3266.} 	 PECNO3 = PECO + NO2 : 	J(54) 	;
+{3267.} 	 PECO = C2H5O2 + C2H5CHO : 	4.00D+14*EXP(-6990/TEMP) 	;
+{3268.} 	 PECO = DIEK + HO2 : 	KROSEC*O2 	;
+{3269.} 	 IPEAOOH = IPEAO + OH : 	J(41) 	;
+{3270.} 	 OH + IPEAOOH = BUT2CHO + OH : 	1.41D-11 	;
+{3271.} 	 OH + IPEAOOH = IPEAO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{3272.} 	 IPEANO3 = IPEAO + NO2 : 	J(53) 	;
+{3273.} 	 OH + IPEANO3 = BUT2CHO + NO2 : 	2.01D-12 	;
+{3274.} 	 IPEAO = BUT2CHO + HO2 : 	KROPRIM*O2 	;
+{3275.} 	 IPEAO = C52O2 : 	3.05D+11*EXP(-4240/TEMP) 	;
+{3276.} 	 IPEBOOH = IPEBO + OH : 	J(41) 	;
+{3277.} 	 OH + IPEBOOH = IPEBO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{3278.} 	 OH + IPEBOOH = MIPK + OH : 	2.29D-11 	;
+{3279.} 	 IPEBNO3 = IPEBO + NO2 : 	J(54) 	;
+{3280.} 	 OH + IPEBNO3 = MIPK + NO2 : 	1.82D-12 	;
+{3281.} 	 IPEBO = CH3CHO + IC3H7O2 : 	2.70D+14*EXP(-7398/TEMP) 	;
+{3282.} 	 IPEBO = MIPK + HO2 : 	KROSEC*O2 	;
+{3283.} 	 IPECOOH = IPECO + OH : 	J(41) 	;
+{3284.} 	 OH + IPECOOH = IPECO2 : 	5.25D-12 	;
+{3285.} 	 IPECNO3 = IPECO + NO2 : 	J(55) 	;
+{3286.} 	 OH + IPECNO3 = CH3COCH3 + CH3CHO + NO2 : 	4.08D-13 	;
+{3287.} 	 IPECO = CH3COCH3 + C2H5O2 : 	2.00D+14*EXP(-6995/TEMP) 	;
+{3288.} 	 NEOPOOH = NEOPO + OH : 	J(41) 	;
+{3289.} 	 OH + NEOPOOH = NEOPO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{3290.} 	 OH + NEOPOOH = TBUTCHO + OH : 	1.02D-11 	;
+{3291.} 	 NEOPNO3 = NEOPO + NO2 : 	J(53) 	;
+{3292.} 	 OH + NEOPNO3 = TBUTCHO + NO2 : 	8.50D-13 	;
+{3293.} 	 NEOPO = TC4H9O2 + HCHO : 	2.00D+14*EXP(-5505/TEMP) 	;
+{3294.} 	 OH + NEOPOH = TBUTCHO + HO2 : 	4.66D-12 	;
+{3295.} 	 NO3 + TBUTCHO = TBUTCO3 + HNO3 : 	KNO3AL*8.5 	;
+{3296.} 	 OH + TBUTCHO = TBUTCO3 : 	6.82D-12*EXP(405/TEMP) 	;
+{3297.} 	 TBUTCHO = TC4H9O2 + CO + HO2 : 	J(17) 	;
+{3298.} 	 HEXAOOH = HEXAO + OH : 	J(41) 	;
+{3299.} 	 OH + HEXAOOH = C5H11CHO + OH : 	1.52D-11 	;
+{3300.} 	 OH + HEXAOOH = HEXAO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{3301.} 	 HEXANO3 = HEXAO + NO2 : 	J(53) 	;
+{3302.} 	 OH + HEXANO3 = C5H11CHO + NO2 : 	4.68D-12 	;
+{3303.} 	 HEXAO = HO1C6O2 : 	2.58D+11*EXP(-3430/TEMP) 	;
+{3304.} 	 C5H11CHO = CH3CHO + BUT1ENE : 	J(16) 	;
+{3305.} 	 C5H11CHO = PEAO2 + HO2 + CO : 	J(15) 	;
+{3306.} 	 NO3 + C5H11CHO = C5H11CO3 + HNO3 : 	KNO3AL*5.5 	;
+{3307.} 	 OH + C5H11CHO = C5H11CO3 : 	2.88D-11 	;
+{3308.} 	 OH + HEXAOH = C5H11CHO + HO2 : 	9.72D-12 	;
+{3309.} 	 HEXBOOH = HEXBO + OH : 	J(41) 	;
+{3310.} 	 OH + HEXBOOH = HEX2ONE + OH : 	2.80D-11 	;
+{3311.} 	 OH + HEXBOOH = HEXBO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{3312.} 	 HEXBNO3 = HEXBO + NO2 : 	J(54) 	;
+{3313.} 	 OH + HEXBNO3 = HEX2ONE + NO2 : 	3.17D-12 	;
+{3314.} 	 HEXBO = HO2C6O2 : 	2.03D+11*EXP(-3430/TEMP) 	;
+{3315.} 	 OH + HEXBOH = HEX2ONE + HO2 : 	1.28D-11 	;
+{3316.} 	 HEXCOOH = HEXCO + OH : 	J(41) 	;
+{3317.} 	 OH + HEXCOOH = HEX3ONE + OH : 	3.23D-11 	;
+{3318.} 	 HEXCNO3 = HEXCO + NO2 : 	J(54) 	;
+{3319.} 	 OH + HEXCNO3 = HEX3ONE + NO2 : 	2.70D-12 	;
+{3320.} 	 HEXCO = HEX3ONE + HO2 : 	KROSEC*O2 	;
+{3321.} 	 HEXCO = HO3C6O2 : 	3.05D+11*EXP(-4240/TEMP) 	;
+{3322.} 	 OH + HEXCOH = HEX3ONE + HO2 : 	1.45D-11 	;
+{3323.} 	 M2PEAOOH = M2PEAO + OH : 	J(41) 	;
+{3324.} 	 OH + M2PEAOOH = C54CHO + OH : 	1.79D-11 	;
+{3325.} 	 OH + M2PEAOOH = M2PEAO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{3326.} 	 M2PEANO3 = M2PEAO + NO2 : 	J(53) 	;
+{3327.} 	 OH + M2PEANO3 = C54CHO + NO2 : 	3.53D-12 	;
+{3328.} 	 M2PEAO = HO1MC5O2 : 	2.03D+11*EXP(-3430/TEMP) 	;
+{3329.} 	 C54CHO = PEBO2 + HO2 + CO : 	J(17) 	;
+{3330.} 	 NO3 + C54CHO = C54CO3 + HNO3 : 	KNO3AL*8.5 	;
+{3331.} 	 OH + C54CHO = C54CO3 : 	2.89D-11 	;
+{3332.} 	 OH + M2PEAOH = C54CHO + HO2 : 	8.83D-12 	;
+{3333.} 	 M2PEBOOH = M2PEBO + OH : 	J(41) 	;
+{3334.} 	 OH + M2PEBOOH = M2PEBO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{3335.} 	 OH + M2PEBOOH = MIBK + OH : 	2.44D-11 	;
+{3336.} 	 M2PEBNO3 = M2PEBO + NO2 : 	J(54) 	;
+{3337.} 	 OH + M2PEBNO3 = MIBK + NO2 : 	3.07D-12 	;
+{3338.} 	 M2PEBO = HO2MC5O2 : 	6.10D+11*EXP(-4240/TEMP) 	;
+{3339.} 	 M2PEBO = MIBK + HO2 : 	KROSEC*O2 	;
+{3340.} 	 OH + M2PEBOH = MIBK + HO2 : 	1.28D-11 	;
+{3341.} 	 M2PECOOH = M2PECO + OH : 	J(41) 	;
+{3342.} 	 OH + M2PECOOH = EIPK + OH : 	2.87D-11 	;
+{3343.} 	 OH + M2PECOOH = M2PECO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{3344.} 	 M2PECNO3 = M2PECO + NO2 : 	J(54) 	;
+{3345.} 	 OH + M2PECNO3 = EIPK + NO2 : 	3.02D-12 	;
+{3346.} 	 M2PECO = C2H5O2 + IPRCHO : 	2.00D+14*EXP(-6975/TEMP) 	;
+{3347.} 	 M2PECO = EIPK + HO2 : 	KROSEC*O2 	;
+{3348.} 	 M2PECO = IC3H7O2 + C2H5CHO : 	2.00D+14*EXP(-6773/TEMP) 	;
+{3349.} 	 EIPK = C2H5CO3 + IC3H7O2 : 	J(22) 	;
+{3350.} 	 EIPK = C2H5O2 + IPRCO3 : 	J(22) 	;
+{3351.} 	 OH + EIPK = EIPKAO2 : 	3.75D-12*0.578 	;
+{3352.} 	 OH + EIPK = EIPKBO2 : 	3.75D-12*0.422 	;
+{3353.} 	 OH + M2PECOH = EIPK + HO2 : 	1.44D-11 	;
+{3354.} 	 M2PEDOOH = M2PEDO + OH : 	J(41) 	;
+{3355.} 	 OH + M2PEDOOH = M2PEDO2 : 	6.66D-12 	;
+{3356.} 	 M2PEDNO3 = M2PEDO + NO2 : 	J(55) 	;
+{3357.} 	 OH + M2PEDNO3 = CH3COCH3 + C2H5CHO + NO2 : 	1.72D-12 	;
+{3358.} 	 M2PEDO = CH3COCH3 + NC3H7O2 : 	2.70D+14*EXP(-6542/TEMP) 	;
+{3359.} 	 M2PEDO = HO2M2C5O2 : 	3.05D+11*EXP(-4240/TEMP) 	;
+{3360.} 	 OH + M2PEDOH = M2PEDO : 	3.20D-12 	;
+{3361.} 	 M3PEAOOH = M3PEAO + OH : 	J(41) 	;
+{3362.} 	 OH + M3PEAOOH = M3C4CHO + OH : 	1.57D-11 	;
+{3363.} 	 OH + M3PEAOOH = M3PEAO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{3364.} 	 M3PEANO3 = M3PEAO + NO2 : 	J(53) 	;
+{3365.} 	 OH + M3PEANO3 = M3C4CHO + NO2 : 	4.96D-12 	;
+{3366.} 	 M3PEAO = H1MC5O2 : 	2.03D+11*EXP(-3430/TEMP) 	;
+{3367.} 	 M3C4CHO = IPEAO2 + HO2 + CO : 	J(15) 	;
+{3368.} 	 NO3 + M3C4CHO = M3C4CO3 + HNO3 : 	KNO3AL*8.5 	;
+{3369.} 	 OH + M3C4CHO = M3C4CO3 : 	3.27D-11 	;
+{3370.} 	 OH + M3PEAOH = M3C4CHO + HO2 : 	1.03D-11 	;
+{3371.} 	 M3PEBOOH = M3PEBO + OH : 	J(41) 	;
+{3372.} 	 OH + M3PEBOOH = M2BK + OH : 	2.46D-11 	;
+{3373.} 	 OH + M3PEBOOH = M3PEBO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{3374.} 	 M3PEBNO3 = M3PEBO + NO2 : 	J(54) 	;
+{3375.} 	 OH + M3PEBNO3 = M2BK + NO2 : 	3.02D-12 	;
+{3376.} 	 M3PEBO = H2MC5O2 : 	2.03D+11*EXP(-4240/TEMP) 	;
+{3377.} 	 M3PEBO = M2BK + HO2 : 	KROSEC*O2 	;
+{3378.} 	 M2BK = CH3CO3 + SC4H9O2 : 	J(22) 	;
+{3379.} 	 OH + M2BK = M2BKAO2 : 	6.23D-12*0.671 	;
+{3380.} 	 OH + M2BK = M2BKBO2 : 	6.23D-12*0.329 	;
+{3381.} 	 OH + M3PEBOH = M2BK + HO2 : 	1.31D-11 	;
+{3382.} 	 M3PECOOH = M3PECO + OH : 	J(41) 	;
+{3383.} 	 OH + M3PECOOH = M3PECO2 : 	6.40D-12 	;
+{3384.} 	 M3PECNO3 = M3PECO + NO2 : 	J(55) 	;
+{3385.} 	 OH + M3PECNO3 = CH3CHO + MEK + NO2 : 	7.35D-13 	;
+{3386.} 	 M3PECO = C2H5O2 + MEK : 	2.70D+14*EXP(-7196/TEMP)*2.0 	;
+{3387.} 	 OH + M3PECOH = M3PECO : 	2.94D-12 	;
+{3388.} 	 M22C43OOH = M22C43O + OH : 	J(41) 	;
+{3389.} 	 OH + M22C43OOH = M22C43O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{3390.} 	 OH + M22C43OOH = MTBK + OH : 	9.51D-12 	;
+{3391.} 	 M22C43NO3 = M22C43O + NO2 : 	J(54) 	;
+{3392.} 	 OH + M22C43NO3 = MTBK + NO2 : 	6.24D-13 	;
+{3393.} 	 M22C43O = MTBK + HO2 : 	KROSEC*O2 	;
+{3394.} 	 M22C43O = TC4H9O2 + CH3CHO : 	2.70D+14*EXP(-6643/TEMP) 	;
+{3395.} 	 OH + M22C43OH = MTBK + HO2 : 	9.16D-12 	;
+{3396.} 	 M22C4OOH = M22C4O + OH : 	J(41) 	;
+{3397.} 	 OH + M22C4OOH = M22C3CHO + OH : 	1.16D-11 	;
+{3398.} 	 OH + M22C4OOH = M22C4O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{3399.} 	 M22C4NO3 = M22C4O + NO2 : 	J(53) 	;
+{3400.} 	 OH + M22C4NO3 = M22C3CHO + NO2 : 	7.78D-13 	;
+{3401.} 	 M22C4O = HM33C4O2 : 	9.14D+11*EXP(-4240/TEMP) 	;
+{3402.} 	 M22C3CHO = NEOPO2 + HO2 + CO : 	J(15) 	;
+{3403.} 	 NO3 + M22C3CHO = M22C3CO3 + HNO3 : 	KNO3AL*8.5 	;
+{3404.} 	 OH + M22C3CHO = M22C3CO3 : 	2.21D-11 	;
+{3405.} 	 OH + M22C4OH = M22C3CHO + HO2 : 	6.08D-12 	;
+{3406.} 	 M33C4OOH = M33C4O + OH : 	J(41) 	;
+{3407.} 	 OH + M33C4OOH = M33C3CHO + OH : 	1.13D-11 	;
+{3408.} 	 OH + M33C4OOH = M33C4O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{3409.} 	 M33C4NO3 = M33C4O + NO2 : 	J(53) 	;
+{3410.} 	 OH + M33C4NO3 = M33C3CHO + NO2 : 	1.96D-12 	;
+{3411.} 	 M33C4O = HM22C4O2 : 	3.05D+11*EXP(-4240/TEMP) 	;
+{3412.} 	 M33C4O = M33C3CHO + HO2 : 	KROPRIM*O2 	;
+{3413.} 	 M33C3CHO = IPECO2 + HO2 + CO : 	J(17) 	;
+{3414.} 	 NO3 + M33C3CHO = M33C3CO3 + HNO3 : 	KNO3AL*8.5 	;
+{3415.} 	 OH + M33C3CHO = M33C3CO3 : 	2.56D-11 	;
+{3416.} 	 OH + M33C4OH = M33C3CHO + HO2 : 	5.81D-12 	;
+{3417.} 	 M23C43OOH = M23C43O + OH : 	J(41) 	;
+{3418.} 	 OH + M23C43OOH = M23C43O2 : 	6.66D-12 	;
+{3419.} 	 M23C43NO3 = M23C43O + NO2 : 	J(55) 	;
+{3420.} 	 OH + M23C43NO3 = CH3COCH3 + CH3COCH3 + NO2 : 	7.77D-13 	;
+{3421.} 	 M23C43O = IC3H7O2 + CH3COCH3 : 	2.70D+14*EXP(-6391/TEMP) 	;
+{3422.} 	 OH + M23C43OH = M23C43O : 	3.20D-12 	;
+{3423.} 	 M23C4OOH = M23C4O + OH : 	J(41) 	;
+{3424.} 	 OH + M23C4OOH = M23C4O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{3425.} 	 OH + M23C4OOH = M2C43CHO + OH : 	1.55D-11 	;
+{3426.} 	 M23C4NO3 = M23C4O + NO2 : 	J(53) 	;
+{3427.} 	 OH + M23C4NO3 = M2C43CHO + NO2 : 	3.41D-12 	;
+{3428.} 	 M23C4O = HM23C4O2 : 	6.10D+11*EXP(-4240/TEMP) 	;
+{3429.} 	 M23C4O = M2C43CHO + HO2 : 	KROPRIM*O2 	;
+{3430.} 	 OH + M23C4OH = M2C43CHO + HO2 : 	1.05D-11 	;
+{3431.} 	 M2C43CHO = IPEBO2 + HO2 + CO : 	J(17) 	;
+{3432.} 	 NO3 + M2C43CHO = M2C43CO3 + HNO3 : 	KNO3AL*8.5 	;
+{3433.} 	 OH + M2C43CHO = M2C43CO3 : 	3.01D-11 	;
+{3434.} 	 HEPTOOH = HEPTO + OH : 	J(41) 	;
+{3435.} 	 OH + HEPTOOH = HEPT3ONE + OH : 	3.37D-11 	;
+{3436.} 	 HEPTNO3 = HEPTO + NO2 : 	J(54) 	;
+{3437.} 	 OH + HEPTNO3 = HEPT3ONE + NO2 : 	3.69D-12 	;
+{3438.} 	 HEPTO = HO3C76O2 : 	2.58D+11*EXP(-3430/TEMP) 	;
+{3439.} 	 HEPT3ONE = C2H5CO3 + NC4H9O2 : 	J(22) 	;
+{3440.} 	 OH + HEPT3ONE = CO3C75O2 : 	7.89D-12 	;
+{3441.} 	 OH + HEPTOH = HEPT3ONE + HO2 : 	1.59D-11 	;
+{3442.} 	 M2HEXAOOH = M2HEXAO + OH : 	J(41) 	;
+{3443.} 	 OH + M2HEXAOOH = M2CO5C6 + OH : 	2.94D-11 	;
+{3444.} 	 M2HEXANO3 = M2HEXAO + NO2 : 	J(54) 	;
+{3445.} 	 OH + M2HEXANO3 = M2CO5C6 + NO2 : 	4.49D-12 	;
+{3446.} 	 M2HEXAO = H2M5C65O2 : 	1.02D+11*EXP(-2945/TEMP) 	;
+{3447.} 	 M2CO5C6 = CH3CO3 + IPEAO2 : 	J(22) 	;
+{3448.} 	 OH + M2CO5C6 = C75O2 : 	8.16D-12 	;
+{3449.} 	 OH + M2HEXAOH = M2CO5C6 + HO2 : 	1.42D-11 	;
+{3450.} 	 M2HEXBOOH = M2HEXBO + OH : 	J(41) 	;
+{3451.} 	 OH + M2HEXBOOH = M2HEXBO2 : 	8.08D-12 	;
+{3452.} 	 M2HEXBNO3 = M2HEXBO + NO2 : 	J(55) 	;
+{3453.} 	 OH + M2HEXBNO3 = CH3COCH3 + NO2 + C3H7CHO : 	3.01D-12 	;
+{3454.} 	 M2HEXBO = H2M2C65O2 : 	2.03D+11*EXP(-3430/TEMP) 	;
+{3455.} 	 OH + M2HEXBOH = M2HEXBO : 	4.62D-12 	;
+{3456.} 	 M3HEXAOOH = M3HEXAO + OH : 	J(41) 	;
+{3457.} 	 OH + M3HEXAOOH = M3CO5C6 + OH : 	2.96D-11 	;
+{3458.} 	 M3HEXANO3 = M3HEXAO + NO2 : 	J(54) 	;
+{3459.} 	 OH + M3HEXANO3 = M3CO5C6 + NO2 : 	4.60D-12 	;
+{3460.} 	 M3HEXAO = H2M4C65O2 : 	2.58D+11*EXP(-3430/TEMP) 	;
+{3461.} 	 M3CO5C6 = CH3CO3 + IPEAO2 : 	J(22) 	;
+{3462.} 	 OH + M3CO5C6 = C710O2 : 	1.18D-11 	;
+{3463.} 	 OH + M3HEXAOH = M3CO5C6 + HO2 : 	1.45D-11 	;
+{3464.} 	 M3HEXBOOH = M3HEXBO + OH : 	J(41) 	;
+{3465.} 	 OH + M3HEXBOOH = M3HEXBO2 : 	7.81D-12 	;
+{3466.} 	 M3HEXBNO3 = M3HEXBO + NO2 : 	J(55) 	;
+{3467.} 	 OH + M3HEXBNO3 = MEK + C2H5CHO + NO2 : 	1.93D-12 	;
+{3468.} 	 M3HEXBO = H3M3C6O2 : 	3.05D+11*EXP(-4240/TEMP) 	;
+{3469.} 	 OH + M3HEXBOH = M3HEXBO : 	4.35D-12 	;
+{3470.} 	 OCTOOH = OCTO + OH : 	J(41) 	;
+{3471.} 	 OH + OCTOOH = OCT3ONE + OH : 	3.51D-11 	;
+{3472.} 	 OCTNO3 = OCTO + NO2 : 	J(54) 	;
+{3473.} 	 OH + OCTNO3 = OCT3ONE + NO2 : 	3.88D-12 	;
+{3474.} 	 OCTO = HO3C86O2 : 	2.58D+11*EXP(-3430/TEMP) 	;
+{3475.} 	 OCT3ONE = C2H5CO3 + PEAO2 : 	J(22) 	;
+{3476.} 	 OH + OCT3ONE = CO3C85O2 : 	9.30D-12 	;
+{3477.} 	 OH + OCTOH = OCT3ONE + HO2 : 	1.73D-11 	;
+{3478.} 	 NONOOH = NONO + OH : 	J(41) 	;
+{3479.} 	 OH + NONOOH = NON3ONE + OH : 	3.65D-11 	;
+{3480.} 	 NONNO3 = NONO + NO2 : 	J(54) 	;
+{3481.} 	 OH + NONNO3 = NON3ONE + NO2 : 	6.26D-12 	;
+{3482.} 	 NONO = HO3C96O2 : 	2.58D+11*EXP(-3430/TEMP) 	;
+{3483.} 	 NON3ONE = C2H5CO3 + HEXAO2 : 	J(22) 	;
+{3484.} 	 OH + NON3ONE = C91O2 : 	1.07D-11 	;
+{3485.} 	 OH + NONOH = NON3ONE + HO2 : 	1.87D-11 	;
+{3486.} 	 DECOOH = DECO + OH : 	J(41) 	;
+{3487.} 	 OH + DECOOH = DEC3ONE + OH : 	3.79D-11 	;
+{3488.} 	 DECNO3 = DECO + NO2 : 	J(54) 	;
+{3489.} 	 OH + DECNO3 = DEC3ONE + NO2 : 	7.67D-12 	;
+{3490.} 	 DECO = HO3C106O2 : 	2.58D+11*EXP(-3430/TEMP) 	;
+{3491.} 	 DEC3ONE = C2H5CO3 + HEPTO2 : 	J(22) 	;
+{3492.} 	 OH + DEC3ONE = C101O2 : 	1.21D-11 	;
+{3493.} 	 OH + DECOH = DEC3ONE + HO2 : 	2.01D-11 	;
+{3494.} 	 OH + UDECOOH = UDEC3ONE + OH : 	3.93D-11 	;
+{3495.} 	 UDECOOH = UDECO + OH : 	J(41) 	;
+{3496.} 	 OH + UDECNO3 = UDEC3ONE + NO2 : 	9.08D-12 	;
+{3497.} 	 UDECNO3 = UDECO + NO2 : 	J(54) 	;
+{3498.} 	 UDECO = HO3C116O2 : 	2.58D+11*EXP(-3430/TEMP) 	;
+{3499.} 	 OH + UDEC3ONE = C111O2 : 	1.35D-11 	;
+{3500.} 	 UDEC3ONE = C2H5CO3 + OCTO2 : 	J(22) 	;
+{3501.} 	 OH + UDECOH = UDEC3ONE + HO2 : 	2.15D-11 	;
+{3502.} 	 DDECOOH = DDECO + OH : 	J(41) 	;
+{3503.} 	 OH + DDECOOH = DDEC3ONE + OH : 	4.07D-11 	;
+{3504.} 	 DDECNO3 = DDECO + NO2 : 	J(54) 	;
+{3505.} 	 OH + DDECNO3 = DDEC3ONE + NO2 : 	1.05D-11 	;
+{3506.} 	 DDECO = HO3C126O2 : 	2.58D+11*EXP(-3430/TEMP) 	;
+{3507.} 	 DDEC3ONE = C2H5CO3 + NONO2 : 	J(22) 	;
+{3508.} 	 OH + DDEC3ONE = C121O2 : 	1.49D-11 	;
+{3509.} 	 OH + DDECOH = DDEC3ONE + HO2 : 	2.29D-11 	;
+{3510.} 	 CHEXOOH = CHEXO + OH : 	J(41) 	;
+{3511.} 	 OH + CHEXOOH = CYHEXONE + OH : 	3.53D-11 	;
+{3512.} 	 CHEXNO3 = CHEXO + NO2 : 	J(54) 	;
+{3513.} 	 OH + CHEXNO3 = CYHEXONE + NO2 : 	3.30D-12 	;
+{3514.} 	 CHEXO = CO1C6O2 : 	3.80D+13*EXP(-6026/TEMP) 	;
+{3515.} 	 CHEXO = CYHEXONE + HO2 : 	KROSEC*O2 	;
+{3516.} 	 ETHO2HNO3 + OH = ETHENO3O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{3517.} 	 ETHO2HNO3 + OH = NO3CH2CHO + OH : 	1.62D-12 	;
+{3518.} 	 ETHO2HNO3 = ETHENO3O + OH : 	J(41) 	;
+{3519.} 	 ETHENO3O = NO2 + HCHO + HCHO : 	7.00D+03 	;
+{3520.} 	 ETHENO3O = NO3CH2CHO + HO2 : 	KROPRIM*O2 	;
+{3521.} 	 NO3CH2CHO + NO3 = NO3CH2CO3 + HNO3 : 	KNO3AL 	;
+{3522.} 	 NO3CH2CHO + OH = NO3CH2CO3 : 	3.40D-12 	;
+{3523.} 	 NO3CH2CHO = HO2 + CO + HCHO + NO2 : 	J(57) 	;
+{3524.} 	 NO3CH2CHO = NO2 + HCOCH2O : 	J(56) 	;
+{3525.} 	 PR1O2HNO3 + OH = CHOPRNO3 + OH : 	1.69D-12 	;
+{3526.} 	 PR1O2HNO3 + OH = PRONO3AO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{3527.} 	 PR1O2HNO3 = PRONO3AO + OH : 	J(41) 	;
+{3528.} 	 PRONO3AO = CHOPRNO3 + HO2 : 	KROPRIM*O2 	;
+{3529.} 	 PRONO3AO = HCHO + CH3CHO + NO2 : 	7.00D+03 	;
+{3530.} 	 CHOPRNO3 + NO3 = PRNO3CO3 + HNO3 : 	KNO3AL*2.4 	;
+{3531.} 	 CHOPRNO3 + OH = PRNO3CO3 : 	3.55D-12 	;
+{3532.} 	 CHOPRNO3 = HO2 + CO + CH3CHO + NO2 : 	J(57) 	;
+{3533.} 	 CHOPRNO3 = PROPALO + NO2 : 	J(56) 	;
+{3534.} 	 PR2O2HNO3 + OH = NOA + OH : 	3.47D-12 	;
+{3535.} 	 PR2O2HNO3 + OH = PRONO3BO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{3536.} 	 PR2O2HNO3 = PRONO3BO + OH : 	J(41) 	;
+{3537.} 	 PRONO3BO = CH3CHO + HCHO + NO2 : 	7.00D+03 	;
+{3538.} 	 PRONO3BO = NOA + HO2 : 	KROSEC*O2 	;
+{3539.} 	 NOA + OH = MGLYOX + NO2 : 	1D-12 	;
+{3540.} 	 NOA = CH3CO3 + HCHO + NO2 : 	J(57) 	;
+{3541.} 	 NOA = CH3COCH2O + NO2 : 	J(56) 	;
+{3542.} 	 BU1ENO3OOH + OH = BU1ENO3O2 : 	8.97D-12 	;
+{3543.} 	 BU1ENO3OOH = BU1ENO3O + OH : 	J(41) 	;
+{3544.} 	 BU1ENO3O = C2H5CHO + HCHO + NO2 : 	7.00D+03 	;
+{3545.} 	 BU1ENO3O = CO3C4NO3 + HO2 : 	KROSEC*O2 	;
+{3546.} 	 CO3C4NO3 + OH = CO3C4NO3O2 : 	8.2D-13 	;
+{3547.} 	 CO3C4NO3 = C2H5CO3 + HCHO + NO2 : 	J(57) 	;
+{3548.} 	 CO3C4NO3 = MEKCO + NO2 : 	J(56) 	;
+{3549.} 	 HO3C4NO3 + OH = HO3C3CHO + NO2 : 	3.03D-12 	;
+{3550.} 	 C43NO34OOH + OH = C43NO34O2 : 	5.64D-12 	;
+{3551.} 	 C43NO34OOH = C43NO34O + OH : 	J(41) 	;
+{3552.} 	 C43NO34O = BUTAL2NO3 + HO2 : 	KROPRIM*O2 	;
+{3553.} 	 C43NO34O = C2H5CHO + HCHO + NO2 : 	7.00D+03 	;
+{3554.} 	 BUTAL2NO3 + OH = EGLYOX + NO2 : 	4.44D-12 	;
+{3555.} 	 BUTAL2NO3 = BUTAL2O + NO2 : 	J(54) 	;
+{3556.} 	 BUTAL2NO3 = C2H5CHO + HO2 + CO + NO2 : 	J(17) 	;
+{3557.} 	 C2H5CHOO + CO = C2H5CHO : 	1.20D-15 	;
+{3558.} 	 C2H5CHOO + NO = C2H5CHO + NO2 : 	1.00D-14 	;
+{3559.} 	 C2H5CHOO + NO2 = C2H5CHO + NO3 : 	1.00D-15 	;
+{3560.} 	 C2H5CHOO + SO2 = C2H5CHO + SO3 : 	7.00D-14 	;
+{3561.} 	 C2H5CHOO = C2H5CHO + H2O2 : 	6.00D-18*H2O 	;
+{3562.} 	 C2H5CHOO = PROPACID : 	1.00D-17*H2O 	;
+{3563.} 	 HO3C4OOH + OH = HO3C3CHO + OH : 	2.14D-11 	;
+{3564.} 	 HO3C4OOH + OH = HO3C4O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{3565.} 	 HO3C4OOH = HO3C4O + OH : 	J(41) 	;
+{3566.} 	 HO3C4O = C2H5CHO + HCHO + HO2 : 	2.00D+14*EXP(-5538/TEMP) 	;
+{3567.} 	 HO3C3CHO + NO3 = HO3C3CO3 + HNO3 : 	KNO3AL*4.0 	;
+{3568.} 	 HO3C3CHO + OH = HO3C3CO3 : 	3.08D-11 	;
+{3569.} 	 HO3C3CHO = C2H5CHO + HCHO + HO2 : 	J(15) 	;
+{3570.} 	 C42NO33OOH + OH = BUTONENO3 + OH : 	7.15D-12 	;
+{3571.} 	 C42NO33OOH = C42NO33O + OH : 	J(41) 	;
+{3572.} 	 C42NO33O = BUTONENO3 + HO2 : 	KROSEC*O2 	;
+{3573.} 	 C42NO33O = CH3CHO + CH3CHO + NO2 : 	4.00D+04 	;
+{3574.} 	 BUTONENO3 + OH = BIACET + NO2 : 	1.2D-12 	;
+{3575.} 	 BUTONENO3 = CH3CHO + CH3CO3 + NO2 : 	J(57) 	;
+{3576.} 	 BUTONENO3 = MEKBO + NO2 : 	J(56) 	;
+{3577.} 	 MPRANO3OOH + OH = MPRANO3O2 : 	3.98D-12 	;
+{3578.} 	 MPRANO3OOH = MPRANO3O + OH : 	J(41) 	;
+{3579.} 	 MPRANO3O = CH3COCH3 + HCHO + NO2 : 	KDEC 	;
+{3580.} 	 MPRBNO3OOH + OH = MPRBNO3O2 : 	5.22D-12 	;
+{3581.} 	 MPRBNO3OOH = MPRBNO3O + OH : 	J(41) 	;
+{3582.} 	 MPRBNO3O = CH3COCH3 + HCHO + NO2 : 	7.00D+03 	;
+{3583.} 	 MPRBNO3O = MPRBNO3CHO + HO2 : 	KROPRIM*O2 	;
+{3584.} 	 MPRBNO3CHO + NO3 = MPRBNO3CO3 + HNO3 : 	KNO3AL*4.0 	;
+{3585.} 	 MPRBNO3CHO + OH = MPRBNO3CO3 : 	3.61D-12 	;
+{3586.} 	 MPRBNO3CHO = CH3COCH3 + NO2 + HO2 + CO : 	J(15) 	;
+{3587.} 	 MPRBNO3CHO = M2PROPAL2O + NO2 : 	J(56) 	;
+{3588.} 	 CH3CCH3OO + CO = CH3COCH3 : 	1.20D-15 	;
+{3589.} 	 CH3CCH3OO + NO = CH3COCH3 + NO2 : 	1.00D-14 	;
+{3590.} 	 CH3CCH3OO + NO2 = CH3COCH3 + NO3 : 	1.00D-15 	;
+{3591.} 	 CH3CCH3OO + SO2 = CH3COCH3 + SO3 : 	7.00D-14 	;
+{3592.} 	 CH3CCH3OO = CH3COCH3 + H2O2 : 	6.00D-18*H2O 	;
+{3593.} 	 C51NO32OOH + OH = C51NO32CO + OH : 	1.06D-11 	;
+{3594.} 	 C51NO32OOH + OH = C51NO32O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{3595.} 	 C51NO32OOH = C51NO32O + OH : 	J(41) 	;
+{3596.} 	 C51NO32O = C3H7CHO + HCHO + NO2 : 	7.00D+03 	;
+{3597.} 	 C51NO32O = C51NO32CO + HO2 : 	KROSEC*O2 	;
+{3598.} 	 C51NO32CO + OH = C5NO3COAO2 : 	4.70D-12 	;
+{3599.} 	 C51NO32CO = C3H7CO3 + HCHO + NO2 : 	J(57) 	;
+{3600.} 	 C51NO32CO = PEN2ONE1O + NO2 : 	J(56) 	;
+{3601.} 	 PE1ENEBNO3 + OH = C4OHCHO + NO2 : 	3.43D-12 	;
+{3602.} 	 C52NO31OOH + OH = C52NO31CO + OH : 	3.23D-12 	;
+{3603.} 	 C52NO31OOH + OH = C52NO31O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{3604.} 	 C52NO31OOH = C52NO31O + OH : 	J(41) 	;
+{3605.} 	 C52NO31O = C3H7CHO + HCHO + NO2 : 	7.00D+03 	;
+{3606.} 	 C52NO31O = C52NO31CO + HO2 : 	KROPRIM*O2 	;
+{3607.} 	 C52NO31CO + NO3 = C4NO3CO3 + HNO3 : 	KNO3AL*5.5 	;
+{3608.} 	 C52NO31CO + OH = C4NO3CO3 : 	5.77D-12 	;
+{3609.} 	 C52NO31CO = C3H7CHO + CO + HO2 + NO2 : 	J(57) 	;
+{3610.} 	 C52NO31CO = C4CHO2O + NO2 : 	J(56) 	;
+{3611.} 	 PE1ENEANO3 + OH = C51OH2CO + NO2 : 	2.46D-12 	;
+{3612.} 	 C3H7CHOO + CO = C3H7CHO : 	1.20D-15 	;
+{3613.} 	 C3H7CHOO + NO = C3H7CHO + NO2 : 	1.00D-14 	;
+{3614.} 	 C3H7CHOO + NO2 = C3H7CHO + NO3 : 	1.00D-15 	;
+{3615.} 	 C3H7CHOO + SO2 = C3H7CHO + SO3 : 	7.00D-14 	;
+{3616.} 	 C3H7CHOO = BUTACID : 	1.00D-17*H2O 	;
+{3617.} 	 C3H7CHOO = C3H7CHO + H2O2 : 	6.00D-18*H2O 	;
+{3618.} 	 C51OH2OOH + OH = C51OH2CO + OH : 	3.15D-11 	;
+{3619.} 	 C51OH2OOH + OH = PE1ENEAO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{3620.} 	 C51OH2OOH = PE1ENEAO + OH : 	J(41) 	;
+{3621.} 	 PE1ENEAO = C3H7CHO + HCHO + HO2 : 	2.00D+14*EXP(-6382/TEMP) 	;
+{3622.} 	 C51OH2CO + OH = C5OH2CO4O2 : 	7.26D-12 	;
+{3623.} 	 C51OH2CO = HOCH2CO3 + NC3H7O2 : 	J(22) 	;
+{3624.} 	 HO12C5 + OH = C51OH2CO + HO2 : 	1.73D-11 	;
+{3625.} 	 C52OH1OOH + OH = C4OHCHO + OH : 	2.16D-11 	;
+{3626.} 	 C52OH1OOH + OH = PE1ENEBO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{3627.} 	 C52OH1OOH = PE1ENEBO + OH : 	J(41) 	;
+{3628.} 	 PE1ENEBO = C3H7CHO + HCHO + HO2 : 	2.00D+14*EXP(-5489/TEMP) 	;
+{3629.} 	 C4OHCHO + NO3 = C4OHCO3 + HNO3 : 	KNO3AL*5.5 	;
+{3630.} 	 C4OHCHO + OH = C4OHCO3 : 	3.30D-11 	;
+{3631.} 	 C4OHCHO = C3H7CHO + CO + HO2 + HO2 : 	J(15) 	;
+{3632.} 	 C52NO33OOH + OH = C52NO33CO + OH : 	5.45D-12 	;
+{3633.} 	 C52NO33OOH + OH = C52NO33O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{3634.} 	 C52NO33OOH = C52NO33O + OH : 	J(41) 	;
+{3635.} 	 C52NO33O = C2H5CHO + CH3CHO + NO2 : 	4.00D+04 	;
+{3636.} 	 C52NO33O = C52NO33CO + HO2 : 	KROSEC*O2 	;
+{3637.} 	 C52NO33CO + OH = C5NO3CO4O2 : 	1.41D-12 	;
+{3638.} 	 C52NO33CO = C2H5CO3 + CH3CHO + NO2 : 	J(57) 	;
+{3639.} 	 C52NO33CO = DIEKAO + NO2 : 	J(56) 	;
+{3640.} 	 C53NO32OOH + OH = C53NO32CO + OH : 	3.90D-12 	;
+{3641.} 	 C53NO32OOH + OH = C53NO32O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{3642.} 	 C53NO32OOH = C53NO32O + OH : 	J(41) 	;
+{3643.} 	 C53NO32O = C53NO32CO + HO2 : 	KROSEC*O2 	;
+{3644.} 	 C53NO32O = CH3CHO + C2H5CHO + NO2 : 	4.00D+04 	;
+{3645.} 	 C53NO32CO + OH = C5CONO34O2 : 	1.16D-12 	;
+{3646.} 	 C53NO32CO = CH3CO3 + C2H5CHO + NO2 : 	J(57) 	;
+{3647.} 	 C53NO32CO = MPRKAO + NO2 : 	J(56) 	;
+{3648.} 	 PE2ENEANO3 + OH = DIEKAOH + NO2 : 	2.14D-12 	;
+{3649.} 	 C52OH3OOH + OH = DIEKAOH + OH : 	3.56D-11 	;
+{3650.} 	 C52OH3OOH + OH = PE2ENEAO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{3651.} 	 C52OH3OOH = PE2ENEAO + OH : 	J(41) 	;
+{3652.} 	 PE2ENEAO = C2H5CHO + CH3CHO + HO2 : 	2.00D+14*EXP(-4714/TEMP) 	;
+{3653.} 	 DIEKAOH + OH = CO23C5 : 	1.02D-11 	;
+{3654.} 	 DIEKAOH = CH3CHO + C2H5CO3 : 	J(22) 	;
+{3655.} 	 C4NO3M1OOH + OH = C4NO32M1O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{3656.} 	 C4NO3M1OOH + OH = C4NO3CHO + OH : 	1.95D-12 	;
+{3657.} 	 C4NO3M1OOH = C4NO32M1O + OH : 	J(41) 	;
+{3658.} 	 C4NO32M1O = C4NO3CHO + HO2 : 	KROPRIM*O2 	;
+{3659.} 	 C4NO32M1O = MEK + HCHO + NO2 : 	7.00D+03 	;
+{3660.} 	 C4NO3CHO + NO3 = C43NO3CO3 + HNO3 : 	KNO3AL*8.5 	;
+{3661.} 	 C4NO3CHO + OH = C43NO3CO3 : 	4.48D-12 	;
+{3662.} 	 C4NO3CHO = C42CHO2O + NO2 : 	J(56) 	;
+{3663.} 	 C4NO3CHO = MEK + NO2 + HO2 + CO : 	J(15) 	;
+{3664.} 	 C4NO32MOOH + OH = C4NO32M2O2 : 	5.13D-12 	;
+{3665.} 	 C4NO32MOOH = C4NO32M2O + OH : 	J(41) 	;
+{3666.} 	 C4NO32M2O = MEK + HCHO + NO2 : 	KDEC 	;
+{3667.} 	 C2H5MECOO + CO = MEK : 	1.20D-15 	;
+{3668.} 	 C2H5MECOO + NO = MEK + NO2 : 	1.00D-14 	;
+{3669.} 	 C2H5MECOO + NO2 = MEK + NO3 : 	1.00D-15 	;
+{3670.} 	 C2H5MECOO + SO2 = MEK + SO3 : 	7.00D-14 	;
+{3671.} 	 C2H5MECOO = MEK + H2O2 : 	6.00D-18*H2O 	;
+{3672.} 	 C4MNO31OOH + OH = C4M3NO31O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{3673.} 	 C4MNO31OOH + OH = C4M3NO3ONE + OH : 	6.78D-12 	;
+{3674.} 	 C4MNO31OOH = C4M3NO31O + OH : 	J(41) 	;
+{3675.} 	 C4M3NO31O = C4M3NO3ONE + HO2 : 	KROSEC*O2 	;
+{3676.} 	 C4M3NO31O = IPRCHO + HCHO + NO2 : 	7.00D+03 	;
+{3677.} 	 C4M3NO3ONE + OH = C4MCONO3O2 : 	1.73D-12 	;
+{3678.} 	 C4M3NO3ONE = IPRCO3 + HCHO + NO2 : 	J(57) 	;
+{3679.} 	 C4M3NO3ONE = IPRCOMO + NO2 : 	J(56) 	;
+{3680.} 	 M3BU2OLNO3 + OH = C3M3OH2CHO + NO2 : 	4.58D-12 	;
+{3681.} 	 M3BU2OLNO3 = ME3BU2OLO + NO2 : 	J(53) 	;
+{3682.} 	 C4MNO32OOH + OH = C3MNO3CHO + OH : 	2.41D-12 	;
+{3683.} 	 C4MNO32OOH + OH = C4M3NO32O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{3684.} 	 C4MNO32OOH = C4M3NO32O + OH : 	J(41) 	;
+{3685.} 	 C4M3NO32O = C3MNO3CHO + HO2 : 	KROPRIM*O2 	;
+{3686.} 	 C4M3NO32O = IPRCHO + HCHO + NO2 : 	7.00D+03 	;
+{3687.} 	 C3MNO3CHO + NO3 = C3MNO3CO3 + HNO3 : 	KNO3AL*8.5 	;
+{3688.} 	 C3MNO3CHO + OH = C3MNO3CO3 : 	5.49D-12 	;
+{3689.} 	 C3MNO3CHO = IPRCHO + HO2 + CO + NO2 : 	J(57) 	;
+{3690.} 	 C3MNO3CHO = M3BUTAL2O + NO2 : 	J(56) 	;
+{3691.} 	 IPRCHOO + CO = IPRCHO : 	1.20D-15 	;
+{3692.} 	 IPRCHOO + NO = IPRCHO + NO2 : 	1.00D-14 	;
+{3693.} 	 IPRCHOO + NO2 = IPRCHO + NO3 : 	1.00D-15 	;
+{3694.} 	 IPRCHOO + SO2 = IPRCHO + SO3 : 	7.00D-14 	;
+{3695.} 	 IPRCHOO = IBUTACID : 	1.00D-17*H2O 	;
+{3696.} 	 IPRCHOO = IPRCHO + H2O2 : 	6.00D-18*H2O 	;
+{3697.} 	 M3BU2OLOOH + OH = C3M3OH2CHO + OH : 	2.28D-11 	;
+{3698.} 	 M3BU2OLOOH + OH = ME3BU2OLO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{3699.} 	 M3BU2OLOOH = ME3BU2OLO + OH : 	J(41) 	;
+{3700.} 	 ME3BU2OLO = IPRCHO + HCHO + HO2 : 	KDEC 	;
+{3701.} 	 C3M3OH2CHO + NO3 = C3M3OH2CO3 + HNO3 : 	KNO3AL*8.5 	;
+{3702.} 	 C3M3OH2CHO + OH = C3M3OH2CO3 : 	3.51D-11 	;
+{3703.} 	 C3M3OH2CHO = IPRCHO + HO2 + CO : 	J(17) 	;
+{3704.} 	 C4NO3M2OOH + OH = C4M2NO32O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{3705.} 	 C4NO3M2OOH + OH = C4M2NO3ONE + OH : 	7.08D-12 	;
+{3706.} 	 C4NO3M2OOH = C4M2NO32O + OH : 	J(41) 	;
+{3707.} 	 C4M2NO32O = C4M2NO3ONE + HO2 : 	KROSEC*O2 	;
+{3708.} 	 C4M2NO32O = CH3COCH3 + CH3CHO + NO2 : 	4.00D+04 	;
+{3709.} 	 C4M2NO3ONE + OH = MC4CONO3O2 : 	3.41D-13 	;
+{3710.} 	 C4M2NO3ONE = CH3CO3 + CH3COCH3 + NO2 : 	J(57) 	;
+{3711.} 	 C4M2NO3ONE = MIPKAO + NO2 : 	J(56) 	;
+{3712.} 	 C4M2NO3OOH + OH = C4M2NO33O2 : 	4.06D-12 	;
+{3713.} 	 C4M2NO3OOH = C4M2NO33O + OH : 	J(41) 	;
+{3714.} 	 C4M2NO33O = CH3CHO + CH3COCH3 + NO2 : 	KDEC 	;
+{3715.} 	 C65NO36OOH + OH = C65NO36CHO + OH : 	4.65D-12 	;
+{3716.} 	 C65NO36OOH + OH = C65NO36O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{3717.} 	 C65NO36O = C4H9CHO + HCHO + NO2 : 	7.00D+03 	;
+{3718.} 	 C65NO36O = C65NO36CHO + HO2 : 	KROPRIM*O2 	;
+{3719.} 	 C65NO36CHO + NO3 = C65NO36CO3 + HNO3 : 	KNO3AL*5.5 	;
+{3720.} 	 C65NO36CHO + OH = C65NO36CO3 : 	7.19D-12 	;
+{3721.} 	 C65NO36CHO = C4H9CHO + HO2 + CO + NO2 : 	J(56) 	;
+{3722.} 	 C65NO36CHO = HO2 + CO + C4H9CHO + NO2 : 	J(15) 	;
+{3723.} 	 C6OH5NO3 + OH = C4COMEOH + NO2 : 	3.87D-12 	;
+{3724.} 	 C66NO35OOH + OH = C66NO35CO + OH : 	8.20D-12 	;
+{3725.} 	 C66NO35OOH + OH = C66NO35O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{3726.} 	 C66NO35OOH = C66NO35O + OH : 	J(41) 	;
+{3727.} 	 C66NO35O = C4H9CHO + HCHO + NO2 : 	7.00D+03 	;
+{3728.} 	 C66NO35O = C66NO35CO + HO2 : 	KROSEC*O2 	;
+{3729.} 	 C66NO35CO + OH = MNO3COC4O2 : 	6.69D-12 	;
+{3730.} 	 C66NO35CO = C4H9CO3 + HCHO + NO2 : 	J(56)+J(57) 	;
+{3731.} 	 OH + C66NO35OH = HO5C5CHO + NO2 : 	6.00D-12 	;
+{3732.} 	 NC4H9CHOO + CO = C4H9CHO : 	1.20D-15 	;
+{3733.} 	 NC4H9CHOO + NO = C4H9CHO + NO2 : 	1.00D-14 	;
+{3734.} 	 NC4H9CHOO + NO2 = C4H9CHO + NO3 : 	1.00D-15 	;
+{3735.} 	 NC4H9CHOO + SO2 = C4H9CHO + SO3 : 	7.00D-14 	;
+{3736.} 	 NC4H9CHOO = C4H9CHO + H2O2 : 	6.00D-18*H2O 	;
+{3737.} 	 NC4H9CHOO = PENTACID : 	1.00D-17*H2O 	;
+{3738.} 	 C6OH5OOH + OH = C4COMEOH + OH : 	3.30D-11 	;
+{3739.} 	 C6OH5OOH + OH = C6OH5O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{3740.} 	 C6OH5OOH = C6OH5O + OH : 	J(41) 	;
+{3741.} 	 C6OH5O = C4H9CHO + HCHO + HO2 : 	KDEC 	;
+{3742.} 	 C4COMEOH + OH = C4COMOH3O2 : 	8.09D-12 	;
+{3743.} 	 C4COMEOH = HOCH2CO3 + NC4H9O2 : 	J(22) 	;
+{3744.} 	 C656OH + OH = C4COMEOH + HO2 : 	1.86D-11 	;
+{3745.} 	 HO5C6OOH = HO5C6O + OH : 	J(41) 	;
+{3746.} 	 OH + HO5C6OOH = HO5C5CHO + OH : 	2.42D-11 	;
+{3747.} 	 OH + HO5C6OOH = HO5C6O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{3748.} 	 HO5C6O = HCHO + C4H9CHO + HO2 : 	KDEC 	;
+{3749.} 	 HO5C5CHO = HO2 + CO + C4H9CHO + HO2 : 	J(15) 	;
+{3750.} 	 NO3 + HO5C5CHO = HO5C5CO3 + HNO3 : 	KNO3AL*5.5 	;
+{3751.} 	 OH + HO5C5CHO = HO5C5CO3 : 	3.44D-11 	;
+{3752.} 	 C62NO33OOH + OH = C62NO33CO + OH : 	7.24D-12 	;
+{3753.} 	 C62NO33OOH + OH = C62NO33O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{3754.} 	 C62NO33OOH = C62NO33O + OH : 	J(41) 	;
+{3755.} 	 C62NO33O = C3H7CHO + CH3CHO + NO2 : 	4.00D+04 	;
+{3756.} 	 C62NO33O = C62NO33CO + HO2 : 	KROSEC*O2 	;
+{3757.} 	 C62NO33CO + OH = C6NO3CO5O2 : 	4.85D-12 	;
+{3758.} 	 C62NO33CO = CH3CHO + C3H7CO3 + NO2 : 	J(57) 	;
+{3759.} 	 C62NO33CO = HEX3ONCO + NO2 : 	J(56) 	;
+{3760.} 	 C64OH5NO3 + OH = CO2HO3C6 + NO2 : 	2.06D-12 	;
+{3761.} 	 C63NO32OOH + OH = C63NO32CO + OH : 	5.09D-12 	;
+{3762.} 	 C63NO32OOH + OH = C63NO32O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{3763.} 	 C63NO32OOH = C63NO32O + OH : 	J(41) 	;
+{3764.} 	 C63NO32O = C3H7CHO + CH3CHO + NO2 : 	4.00D+04 	;
+{3765.} 	 C63NO32O = C63NO32CO + HO2 : 	KROSEC*O2 	;
+{3766.} 	 C63NO32CO + OH = C6CONO34O2 : 	2.49D-12 	;
+{3767.} 	 C63NO32CO = C3H7CHO + CH3CO3 + NO2 : 	J(57) 	;
+{3768.} 	 C63NO32CO = HEX2ONCO + NO2 : 	J(56) 	;
+{3769.} 	 C65OH4NO3 + OH = HEX3ONCOH + NO2 : 	3.33D-12 	;
+{3770.} 	 C64OH5OOH + OH = C64OH5O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{3771.} 	 C64OH5OOH + OH = CO2HO3C6 + OH : 	3.34D-11 	;
+{3772.} 	 C64OH5OOH = C64OH5O + OH : 	J(41) 	;
+{3773.} 	 C64OH5O = CH3CHO + C3H7CHO + HO2 : 	KDEC 	;
+{3774.} 	 C645OH + OH = HEX3ONCOH + HO2 : 	2.18D-11 	;
+{3775.} 	 CO2HO3C6 + OH = CO23C6 : 	1.23D-11 	;
+{3776.} 	 CO2HO3C6 = CH3CO3 + C3H7CHO : 	J(22) 	;
+{3777.} 	 C65OH4OOH + OH = C65OH4O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{3778.} 	 C65OH4OOH + OH = HEX3ONCOH + OH : 	3.60D-11 	;
+{3779.} 	 C65OH4OOH = C65OH4O + OH : 	J(41) 	;
+{3780.} 	 C65OH4O = C3H7CHO + CH3CHO + HO2 : 	KDEC 	;
+{3781.} 	 HEX3ONCOH + OH = CO23C6 + HO2 : 	1.01D-11 	;
+{3782.} 	 HEX3ONCOH = C3H7CO3 + CH3CHO + HO2 : 	J(22) 	;
+{3783.} 	 C42MNO3OOH + OH = C4ME2NO3O2 : 	4.34D-12 	;
+{3784.} 	 C42MNO3OOH = C4ME2NO3O + OH : 	J(41) 	;
+{3785.} 	 C4ME2NO3O = CH3COCH3 + CH3COCH3 + NO2 : 	KDEC 	;
+{3786.} 	 C4ME2OHNO3 + OH = C4ME2OHO + NO2 : 	8.89D-13 	;
+{3787.} 	 C4ME2OHOOH + OH = C4ME2OHO2 : 	4.40D-12 	;
+{3788.} 	 C4ME2OHOOH = C4ME2OHO + OH : 	J(41) 	;
+{3789.} 	 C4ME2OHO = CH3COCH3 + CH3COCH3 + HO2 : 	KDEC 	;
+{3790.} 	 C4ME22OH + OH = C4ME2OHO : 	9.49D-13 	;
+{3791.} 	 BZBIPEROOH + OH = BZOBIPEROH + OH : 	9.77D-11 	;
+{3792.} 	 BZBIPEROOH = BZBIPERO + OH : 	J(41) 	;
+{3793.} 	 BZBIPERNO3 + OH = BZOBIPEROH + NO2 : 	7.30D-11 	;
+{3794.} 	 BZBIPERNO3 = BZBIPERO + NO2 : 	J(54) 	;
+{3795.} 	 BZBIPERO = GLYOX + BZFUONE + HO2 : 	KDEC*0.50 	;
+{3796.} 	 BZBIPERO = GLYOX + MALDIAL + HO2 : 	KDEC*0.50 	;
+{3797.} 	 BZBIPER2OH + OH = BZOBIPEROH + HO2 : 	1.21D-10 	;
+{3798.} 	 BZOBIPEROH + OH = MALDIALCO3 + GLYOX : 	8.16D-11 	;
+{3799.} 	 BZOBIPEROH = MALDIALCO3 + GLYOX + HO2 : 	J(22) 	;
+{3800.} 	 BZEMUCCO3 + HO2 = BZEMUCCO2H + O3 : 	KAPHO2*0.15 	;
+{3801.} 	 BZEMUCCO3 + HO2 = BZEMUCCO3H : 	KAPHO2*0.41 	;
+{3802.} 	 BZEMUCCO3 + HO2 = C5DIALO2 + OH : 	KAPHO2*0.44 	;
+{3803.} 	 BZEMUCCO3 + NO = C5DIALO2 + NO2 : 	KAPNO 	;
+{3804.} 	 BZEMUCCO3 + NO2 = BZEMUCPAN : 	KFPAN 	;
+{3805.} 	 BZEMUCCO3 + NO3 = C5DIALO2 + NO2 : 	KRO2NO3*1.74 	;
+{3806.} 	 BZEMUCCO3 = BZEMUCCO2H : 	1.00D-11*RO2*0.3 	;
+{3807.} 	 BZEMUCCO3 = C5DIALO2 : 	1.00D-11*RO2*0.7 	;
+{3808.} 	 EPXC4DIAL + NO3 = EPXDLCO3 + HNO3 : 	2*KNO3AL*4.0 	;
+{3809.} 	 EPXC4DIAL + OH = EPXDLCO3 : 	4.32D-11 	;
+{3810.} 	 EPXC4DIAL = C3DIALO2 + CO + HO2 : 	J(17)*2 	;
+{3811.} 	 GLYOOA = GLYOO : 	KDEC*0.18 	;
+{3812.} 	 GLYOOA = HCHO : 	KDEC*0.125 	;
+{3813.} 	 GLYOOA = HO2 + HO2 + CO : 	KDEC*0.125 	;
+{3814.} 	 GLYOOA = OH + HO2 + CO + CO : 	KDEC*0.57 	;
+{3815.} 	 BZEMUCO2 + HO2 = BZEMUCOOH : 	KRO2HO2*0.77 	;
+{3816.} 	 BZEMUCO2 + NO = BZEMUCNO3 : 	KRO2NO*0.105 	;
+{3817.} 	 BZEMUCO2 + NO = BZEMUCO + NO2 : 	KRO2NO*0.895 	;
+{3818.} 	 BZEMUCO2 + NO3 = BZEMUCO + NO2 : 	KRO2NO3 	;
+{3819.} 	 BZEMUCO2 = BZEMUCCO : 	8.80D-13*0.2*RO2 	;
+{3820.} 	 BZEMUCO2 = BZEMUCO : 	8.80D-13*0.6*RO2 	;
+{3821.} 	 BZEMUCO2 = BZEMUCOH : 	8.80D-13*0.2*RO2 	;
+{3822.} 	 C5DIALO2 + HO2 = C5DIALOOH : 	KRO2HO2*0.706 	;
+{3823.} 	 C5DIALO2 + NO = C5DIALO + NO2 : 	KRO2NO 	;
+{3824.} 	 C5DIALO2 + NO3 = C5DIALO + NO2 : 	KRO2NO3 	;
+{3825.} 	 C5DIALO2 = C5DIALCO : 	8.80D-13*RO2*0.2 	;
+{3826.} 	 C5DIALO2 = C5DIALO : 	8.80D-13*RO2*0.6 	;
+{3827.} 	 C5DIALO2 = C5DIALOH : 	8.80D-13*RO2*0.2 	;
+{3828.} 	 MALDIAL + NO3 = MALDIALCO3 + HNO3 : 	2*KNO3AL*2.0 	;
+{3829.} 	 MALDIAL + O3 = GLYOX + GLYOOA : 	2.00D-18 	;
+{3830.} 	 MALDIAL + OH = MALDIALCO3 : 	5.20D-11*0.83 	;
+{3831.} 	 MALDIAL + OH = MALDIALO2 : 	5.20D-11*0.17 	;
+{3832.} 	 MALDIAL = BZFUONE : 	J(4)*0.14*0.4 	;
+{3833.} 	 MALDIAL = MALDIALCO3 + HO2 : 	J(4)*0.14*0.6 	;
+{3834.} 	 C6H5O + NO2 = HOC6H4NO2 : 	2.08D-12 	;
+{3835.} 	 C6H5O + O3 = C6H5O2 : 	2.86D-13 	;
+{3836.} 	 NPHENO2 + HO2 = NPHENOOH : 	KRO2HO2*0.770 	;
+{3837.} 	 NPHENO2 + NO = NPHENO + NO2 : 	KRO2NO 	;
+{3838.} 	 NPHENO2 + NO3 = NPHENO + NO2 : 	KRO2NO3 	;
+{3839.} 	 NPHENO2 = NPHENO : 	8.00D-13*RO2*0.7 	;
+{3840.} 	 NPHENO2 = NPHENOH : 	8.00D-13*RO2*0.3 	;
+{3841.} 	 CATECHOL + NO3 = CATEC1O + HNO3 : 	9.9D-11 	;
+{3842.} 	 CATECHOL + O3 = CATECOOA : 	9.2D-18 	;
+{3843.} 	 CATECHOL + OH = CATEC1O : 	1.0D-10 	;
+{3844.} 	 PHENO2 + HO2 = PHENOOH : 	KRO2HO2*0.770 	;
+{3845.} 	 PHENO2 + NO = PHENO + NO2 : 	KRO2NO 	;
+{3846.} 	 PHENO2 + NO3 = PHENO + NO2 : 	KRO2NO3 	;
+{3847.} 	 PHENO2 = PHENO : 	8.00D-13*RO2*0.7 	;
+{3848.} 	 PHENO2 = PHENOH : 	8.00D-13*RO2*0.3 	;
+{3849.} 	 C6H5CH2OOH + OH = BENZAL + OH : 	2.05D-11 	;
+{3850.} 	 C6H5CH2OOH = C6H5CH2O + OH : 	J(41) 	;
+{3851.} 	 C6H5CH2NO3 + OH = BENZAL + NO2 : 	6.03D-12 	;
+{3852.} 	 C6H5CH2NO3 = C6H5CH2O + NO2 : 	J(53) 	;
+{3853.} 	 C6H5CH2O = BENZAL + HO2 : 	KROPRIM*O2 	;
+{3854.} 	 C6H5CH2OH + OH = BENZAL + HO2 : 	2.7D-11 	;
+{3855.} 	 CRESO2 + HO2 = CRESOOH : 	KRO2HO2*0.820 	;
+{3856.} 	 CRESO2 + NO = CRESO + NO2 : 	KRO2NO 	;
+{3857.} 	 CRESO2 + NO3 = CRESO + NO2 : 	KRO2NO3 	;
+{3858.} 	 CRESO2 = CRESO : 	8.00D-13*RO2*0.70 	;
+{3859.} 	 CRESO2 = CRESOH : 	8.00D-13*RO2*0.30 	;
+{3860.} 	 NCRESO2 + HO2 = NCRESOOH : 	KRO2HO2*0.820 	;
+{3861.} 	 NCRESO2 + NO = NCRESO + NO2 : 	KRO2NO 	;
+{3862.} 	 NCRESO2 + NO3 = NCRESO + NO2 : 	KRO2NO3 	;
+{3863.} 	 NCRESO2 = NCRESO : 	8.00D-13*RO2*0.70 	;
+{3864.} 	 NCRESO2 = NCRESOH : 	8.00D-13*RO2*0.30 	;
+{3865.} 	 TOL1O + NO2 = TOL1OHNO2 : 	2.08D-12 	;
+{3866.} 	 TOL1O + O3 = OXYL1O2 : 	2.86D-13 	;
+{3867.} 	 MCATECHOL + NO3 = MCATEC1O + HNO3 : 	1.7D-10*1.0 	;
+{3868.} 	 MCATECHOL + O3 = MCATECOOA : 	2.8D-17 	;
+{3869.} 	 MCATECHOL + OH = MCATEC1O : 	2.0D-10*1.0 	;
+{3870.} 	 TLBIPEROOH + OH = TLOBIPEROH + OH : 	9.64D-11 	;
+{3871.} 	 TLBIPEROOH = TLBIPERO + OH : 	J(41) 	;
+{3872.} 	 TLBIPERO = GLYOX + C4MDIAL + HO2 : 	KDEC*0.2 	;
+{3873.} 	 TLBIPERO = GLYOX + C5DICARB + HO2 : 	KDEC*0.2 	;
+{3874.} 	 TLBIPERO = GLYOX + TLFUONE + HO2 : 	KDEC*0.2 	;
+{3875.} 	 TLBIPERO = MGLYOX + BZFUONE + HO2 : 	KDEC*0.2 	;
+{3876.} 	 TLBIPERO = MGLYOX + MALDIAL + HO2 : 	KDEC*0.2 	;
+{3877.} 	 TLBIPERNO3 + OH = TLOBIPEROH + NO2 : 	7.16D-11 	;
+{3878.} 	 TLBIPERNO3 = TLBIPERO + NO2 : 	J(54) 	;
+{3879.} 	 TLBIPER2OH + OH = TLOBIPEROH + HO2 : 	1.20D-10 	;
+{3880.} 	 TLOBIPEROH + OH = C5CO14O2 + GLYOX : 	7.99D-11 	;
+{3881.} 	 TLOBIPEROH = C5CO14O2 + GLYOX + HO2 : 	J(22) 	;
+{3882.} 	 TLEMUCCO3 + HO2 = C615CO2O2 + OH : 	KAPHO2*0.44 	;
+{3883.} 	 TLEMUCCO3 + HO2 = TLEMUCCO2H + O3 : 	KAPHO2*0.15 	;
+{3884.} 	 TLEMUCCO3 + HO2 = TLEMUCCO3H : 	KAPHO2*0.41 	;
+{3885.} 	 TLEMUCCO3 + NO = C615CO2O2 + NO2 : 	KAPNO 	;
+{3886.} 	 TLEMUCCO3 + NO2 = TLEMUCPAN : 	KFPAN 	;
+{3887.} 	 TLEMUCCO3 + NO3 = C615CO2O2 + NO2 : 	KRO2NO3*1.74 	;
+{3888.} 	 TLEMUCCO3 = C615CO2O2 : 	1.00D-11*RO2*0.7 	;
+{3889.} 	 TLEMUCCO3 = TLEMUCCO2H : 	1.00D-11*RO2*0.3 	;
+{3890.} 	 MGLOOB = CH3CHO : 	KDEC*0.125 	;
+{3891.} 	 MGLOOB = CH3CO3 + CO + OH : 	KDEC*0.57 	;
+{3892.} 	 MGLOOB = CH3CO3 + HO2 : 	KDEC*0.125 	;
+{3893.} 	 MGLOOB = MGLOO : 	KDEC*0.18 	;
+{3894.} 	 TLEMUCO2 + HO2 = TLEMUCOOH : 	KRO2HO2*0.820 	;
+{3895.} 	 TLEMUCO2 + NO = TLEMUCNO3 : 	KRO2NO*0.105 	;
+{3896.} 	 TLEMUCO2 + NO = TLEMUCO + NO2 : 	KRO2NO*0.895 	;
+{3897.} 	 TLEMUCO2 + NO3 = TLEMUCO + NO2 : 	KRO2NO3 	;
+{3898.} 	 TLEMUCO2 = TLEMUCCO : 	8.80D-13*RO2*0.20 	;
+{3899.} 	 TLEMUCO2 = TLEMUCO : 	8.80D-13*RO2*0.60 	;
+{3900.} 	 TLEMUCO2 = TLEMUCOH : 	8.80D-13*RO2*0.20 	;
+{3901.} 	 C615CO2O2 + HO2 = C615CO2OOH : 	KRO2HO2*0.770 	;
+{3902.} 	 C615CO2O2 + NO = C615CO2O + NO2 : 	KRO2NO 	;
+{3903.} 	 C615CO2O2 + NO3 = C615CO2O + NO2 : 	KRO2NO3 	;
+{3904.} 	 C615CO2O2 = C6125CO : 	8.80D-13*RO2*0.2 	;
+{3905.} 	 C615CO2O2 = C615CO2O : 	8.80D-13*RO2*0.6 	;
+{3906.} 	 C615CO2O2 = C615CO2OH : 	8.80D-13*RO2*0.2 	;
+{3907.} 	 OXYLOOH + OH = OXYLAL + OH : 	2.75D-11 	;
+{3908.} 	 OXYLOOH = OXYLO + OH : 	J(41) 	;
+{3909.} 	 OXYLNO3 + OH = OXYLAL + NO2 : 	1.31D-11 	;
+{3910.} 	 OXYLNO3 = OXYLO + NO2 : 	J(53) 	;
+{3911.} 	 OXYLO = OXYLAL + HO2 : 	KROPRIM*O2 	;
+{3912.} 	 OXYLAL + NO3 = OXYLCO3 + HNO3 : 	KNO3AL 	;
+{3913.} 	 OXYLAL + OH = OXYLCO3 : 	1.29D-11 	;
+{3914.} 	 OXYLAL = OXYL1O2 + HO2 + CO : 	J(19) 	;
+{3915.} 	 OXYLAL = OXYLCO3 + HO2 : 	J(18) 	;
+{3916.} 	 OXYLOH + OH = OXYLAL + HO2 : 	1.60D-11 	;
+{3917.} 	 OXYBPEROOH + OH = OXYBIPERO2 : 	7.62D-11 	;
+{3918.} 	 OXYBPEROOH = OXYBIPERO + OH : 	J(41) 	;
+{3919.} 	 OXYBIPENO3 + OH = TLCOBIPEOH + CH3O2 + NO2 : 	7.28D-11 	;
+{3920.} 	 OXYBIPENO3 = OXYBIPERO + NO2 : 	J(55) 	;
+{3921.} 	 OXYBIPERO = BZFUONE + BIACET + HO2 : 	KDEC*0.175 	;
+{3922.} 	 OXYBIPERO = C5DICARB + MGLYOX + HO2 : 	KDEC*0.245 	;
+{3923.} 	 OXYBIPERO = MALDIAL + BIACET + HO2 : 	KDEC*0.175 	;
+{3924.} 	 OXYBIPERO = MC5DICARB + GLYOX + HO2 : 	KDEC*0.08 	;
+{3925.} 	 OXYBIPERO = OXYFUONE + GLYOX + HO2 : 	KDEC*0.08 	;
+{3926.} 	 OXYBIPERO = TLFUONE + MGLYOX + HO2 : 	KDEC*0.245 	;
+{3927.} 	 OXYBPER2OH + OH = OXYBIPERO : 	1.11D-10 	;
+{3928.} 	 OXYMUCCO3 + HO2 = MC6CO2O2 + OH : 	KAPHO2*0.44 	;
+{3929.} 	 OXYMUCCO3 + HO2 = OXYMUCCO2H + O3 : 	KAPHO2*0.15 	;
+{3930.} 	 OXYMUCCO3 + HO2 = OXYMUCCO3H : 	KAPHO2*0.41 	;
+{3931.} 	 OXYMUCCO3 + NO = MC6CO2O2 + NO2 : 	KAPNO 	;
+{3932.} 	 OXYMUCCO3 + NO2 = OXYMUCPAN : 	KFPAN 	;
+{3933.} 	 OXYMUCCO3 + NO3 = MC6CO2O2 + NO2 : 	KRO2NO3*1.74 	;
+{3934.} 	 OXYMUCCO3 = MC6CO2O2 : 	1.00D-11*RO2*0.70 	;
+{3935.} 	 OXYMUCCO3 = OXYMUCCO2H : 	1.00D-11*RO2*0.30 	;
+{3936.} 	 EPXM2C4DAL + NO3 = EPXM2DLCO3 + HNO3 : 	2*KNO3AL*8.5 	;
+{3937.} 	 EPXM2C4DAL + OH = EPXM2DLCO3 : 	4.24D-11 	;
+{3938.} 	 EPXM2C4DAL = C4MCO2O2 + HO2 + CO : 	J(17)*2 	;
+{3939.} 	 OXYMUCO2 + HO2 = OXYMUCOOH : 	KRO2HO2*0.859 	;
+{3940.} 	 OXYMUCO2 + NO = OXYMUCNO3 : 	KRO2NO*0.173 	;
+{3941.} 	 OXYMUCO2 + NO = OXYMUCO + NO2 : 	KRO2NO*0.827 	;
+{3942.} 	 OXYMUCO2 + NO3 = OXYMUCO + NO2 : 	KRO2NO3 	;
+{3943.} 	 OXYMUCO2 = OXYMUCCO : 	8.80D-12*RO2*0.20 	;
+{3944.} 	 OXYMUCO2 = OXYMUCO : 	8.80D-12*RO2*0.60 	;
+{3945.} 	 OXYMUCO2 = OXYMUCOH : 	8.80D-12*RO2*0.20 	;
+{3946.} 	 MC6CO2O2 + HO2 = MC6CO2OOH : 	KRO2HO2*0.820 	;
+{3947.} 	 MC6CO2O2 + NO = MC6CO2O + NO2 : 	KRO2NO 	;
+{3948.} 	 MC6CO2O2 + NO3 = MC6CO2O + NO2 : 	KRO2NO3 	;
+{3949.} 	 MC6CO2O2 = MC6CO2O : 	9.20D-14*RO2*0.70 	;
+{3950.} 	 MC6CO2O2 = MC6CO2OH : 	9.20D-14*RO2*0.30 	;
+{3951.} 	 NOXYOLO2 + HO2 = NOXYOLOOH : 	KRO2HO2*0.859 	;
+{3952.} 	 NOXYOLO2 + NO = NOXYOLO + NO2 : 	KRO2NO 	;
+{3953.} 	 NOXYOLO2 + NO3 = NOXYOLO + NO2 : 	KRO2NO3 	;
+{3954.} 	 NOXYOLO2 = NOXYOLO : 	8.00D-13*RO2*0.70 	;
+{3955.} 	 NOXYOLO2 = NOXYOLOH : 	8.00D-13*RO2*0.30 	;
+{3956.} 	 OXY1O + NO2 = OXY1OHNO2 : 	2.08D-12 	;
+{3957.} 	 OXY1O + O3 = DM123O2 : 	2.86D-13 	;
+{3958.} 	 OXYOLO2 + HO2 = OXYOLOOH : 	KRO2HO2*0.859 	;
+{3959.} 	 OXYOLO2 + NO = OXYOLO + NO2 : 	KRO2NO 	;
+{3960.} 	 OXYOLO2 + NO3 = OXYOLO + NO2 : 	KRO2NO3 	;
+{3961.} 	 OXYOLO2 = OXYOLO : 	8.00D-13*RO2*0.70 	;
+{3962.} 	 OXYOLO2 = OXYOLOH : 	8.00D-13*RO2*0.30 	;
+{3963.} 	 OXYCATECH + NO3 = OXCATEC1O + HNO3 : 	2.01D-10 	;
+{3964.} 	 OXYCATECH + O3 = OXCATECOOA : 	2.81D-17 	;
+{3965.} 	 OXYCATECH + OH = OXCATEC1O : 	2.05D-10 	;
+{3966.} 	 MXYLOOH + OH = MXYLAL + OH : 	2.05D-11 	;
+{3967.} 	 MXYLOOH = MXYLO + OH : 	J(41) 	;
+{3968.} 	 MXYLNO3 + OH = MXYLAL + NO2 : 	6.03D-12 	;
+{3969.} 	 MXYLNO3 = MXYLO + NO2 : 	J(53) 	;
+{3970.} 	 MXYLO = MXYLAL + HO2 : 	KROPRIM*O2 	;
+{3971.} 	 MXYLAL + NO3 = MXYLCO3 + HNO3 : 	KNO3AL 	;
+{3972.} 	 MXYLAL + OH = MXYLCO3 : 	1.29D-11 	;
+{3973.} 	 MXYLAL = MXYL1O2 + HO2 + CO : 	J(19) 	;
+{3974.} 	 MXYLAL = MXYLCO3 + HO2 : 	J(18) 	;
+{3975.} 	 MXYLOH + OH = MXYLAL + HO2 : 	8.93D-12 	;
+{3976.} 	 MXYBPEROOH + OH = MXYOBPEROH + OH : 	1.17D-10 	;
+{3977.} 	 MXYBPEROOH = MXYBIPERO + OH : 	J(41) 	;
+{3978.} 	 MXYBIPENO3 + OH = MXYOBPEROH + NO2 : 	7.15D-11 	;
+{3979.} 	 MXYBIPENO3 = MXYBIPERO + NO2 : 	J(54) 	;
+{3980.} 	 MXYBIPERO = GLYOX + C5MDICARB + HO2 : 	KDEC*0.11 	;
+{3981.} 	 MXYBIPERO = GLYOX + MXYFUONE + HO2 : 	KDEC*0.11 	;
+{3982.} 	 MXYBIPERO = MGLYOX + C4MDIAL + HO2 : 	KDEC*0.26 	;
+{3983.} 	 MXYBIPERO = MGLYOX + C5DICARB + HO2 : 	KDEC*0.26 	;
+{3984.} 	 MXYBIPERO = MGLYOX + PXYFUONE + HO2 : 	KDEC*0.26 	;
+{3985.} 	 MXYBPER2OH + OH = MXYOBPEROH + HO2 : 	2.50D-10 	;
+{3986.} 	 MXYOBPEROH + OH = C3MCODBCO3 + MGLYOX : 	7.93D-11*0.5 	;
+{3987.} 	 MXYOBPEROH + OH = C5CO14O2 + MGLYOX : 	7.93D-11*0.5 	;
+{3988.} 	 MXYOBPEROH = C3MCODBCO3 + MGLYOX + HO2 : 	J(22)*0.5 	;
+{3989.} 	 MXYOBPEROH = C5CO14O2 + MGLYOX + HO2 : 	J(22)*0.5 	;
+{3990.} 	 MXYMUCCO3 + HO2 = C726CO5O2 + OH : 	KAPHO2*0.44 	;
+{3991.} 	 MXYMUCCO3 + HO2 = MXYMUCCO2H + O3 : 	KAPHO2*0.15 	;
+{3992.} 	 MXYMUCCO3 + HO2 = MXYMUCCO3H : 	KAPHO2*0.41 	;
+{3993.} 	 MXYMUCCO3 + NO = C726CO5O2 + NO2 : 	KAPNO 	;
+{3994.} 	 MXYMUCCO3 + NO2 = MXYMUCPAN : 	KFPAN 	;
+{3995.} 	 MXYMUCCO3 + NO3 = C726CO5O2 + NO2 : 	KRO2NO3*1.74 	;
+{3996.} 	 MXYMUCCO3 = C726CO5O2 : 	1.00D-11*RO2*0.70 	;
+{3997.} 	 MXYMUCCO3 = MXYMUCCO2H : 	1.00D-11*RO2*0.30 	;
+{3998.} 	 EPXMC4DIAL + NO3 = EPXMDLCO3 + HNO3 : 	2*KNO3AL*8.5 	;
+{3999.} 	 EPXMC4DIAL + OH = EPXMDLCO3 : 	4.28D-11 	;
+{4000.} 	 EPXMC4DIAL = C3MDIALO2 + CO + HO2 : 	J(17)*2 	;
+{4001.} 	 MXYMUCO2 + HO2 = MXYMUCOOH : 	KRO2HO2*0.859 	;
+{4002.} 	 MXYMUCO2 + NO = MXYMUCNO3 : 	KRO2NO*0.173 	;
+{4003.} 	 MXYMUCO2 + NO = MXYMUCO + NO2 : 	KRO2NO*0.827 	;
+{4004.} 	 MXYMUCO2 + NO3 = MXYMUCO + NO2 : 	KRO2NO3 	;
+{4005.} 	 MXYMUCO2 = MXYMUCCO : 	8.80D-13*RO2*0.2 	;
+{4006.} 	 MXYMUCO2 = MXYMUCO : 	8.80D-13*RO2*0.6 	;
+{4007.} 	 MXYMUCO2 = MXYMUCOH : 	8.80D-13*RO2*0.2 	;
+{4008.} 	 C726CO5O2 + HO2 = C726CO5OOH : 	KRO2HO2*0.820 	;
+{4009.} 	 C726CO5O2 + NO = C726CO5O + NO2 : 	KRO2NO 	;
+{4010.} 	 C726CO5O2 + NO3 = C726CO5O + NO2 : 	KRO2NO3 	;
+{4011.} 	 C726CO5O2 = C7236CO : 	8.80D-13*RO2*0.2 	;
+{4012.} 	 C726CO5O2 = C726CO3OH : 	8.80D-13*RO2*0.2 	;
+{4013.} 	 C726CO5O2 = C726CO5O : 	8.80D-13*RO2*0.6 	;
+{4014.} 	 MXY1O + NO2 = MXY1OHNO2 : 	2.08D-12 	;
+{4015.} 	 MXY1O + O3 = MXY1O2 : 	2.86D-13 	;
+{4016.} 	 MXYOLO2 + HO2 = MXYOLOOH : 	KRO2HO2*0.859 	;
+{4017.} 	 MXYOLO2 + NO = MXYOLO + NO2 : 	KRO2NO 	;
+{4018.} 	 MXYOLO2 + NO3 = MXYOLO + NO2 : 	KRO2NO3 	;
+{4019.} 	 MXYOLO2 = MXYOLO : 	8.00D-13*RO2*0.70 	;
+{4020.} 	 MXYOLO2 = MXYOLOH : 	8.00D-13*RO2*0.30 	;
+{4021.} 	 NMXYOLO2 + HO2 = NMXYOLOOH : 	KRO2HO2*0.859 	;
+{4022.} 	 NMXYOLO2 + NO = NMXYOLO + NO2 : 	KRO2NO 	;
+{4023.} 	 NMXYOLO2 + NO3 = NMXYOLO + NO2 : 	KRO2NO3 	;
+{4024.} 	 NMXYOLO2 = NMXYOLO : 	8.00D-13*RO2*0.70 	;
+{4025.} 	 NMXYOLO2 = NMXYOLOH : 	8.00D-13*RO2*0.30 	;
+{4026.} 	 MXYCATECH + NO3 = MXCATEC1O + HNO3 : 	2.01D-10 	;
+{4027.} 	 MXYCATECH + O3 = MXCATECOOA : 	2.81D-17 	;
+{4028.} 	 MXYCATECH + OH = MXCATEC1O : 	2.05D-10 	;
+{4029.} 	 PXYLOOH + OH = PXYLAL + OH : 	2.05D-11 	;
+{4030.} 	 PXYLOOH = PXYLO + OH : 	J(41) 	;
+{4031.} 	 PXYLNO3 + OH = PXYLAL + NO2 : 	6.03D-12 	;
+{4032.} 	 PXYLNO3 = PXYLO + NO2 : 	J(53) 	;
+{4033.} 	 PXYLO = PXYLAL + HO2 : 	KROPRIM*O2 	;
+{4034.} 	 PXYLAL + NO3 = PXYLCO3 + HNO3 : 	KNO3AL 	;
+{4035.} 	 PXYLAL + OH = PXYLCO3 : 	1.29D-11 	;
+{4036.} 	 PXYLAL = PXYL1O2 + HO2 + CO : 	J(19) 	;
+{4037.} 	 PXYLAL = PXYLCO3 + HO2 : 	J(18) 	;
+{4038.} 	 PXYLOH + OH = PXYLAL + HO2 : 	8.93D-12 	;
+{4039.} 	 PXYBPEROOH + OH = PXYBIPERO2 : 	7.65D-11 	;
+{4040.} 	 PXYBPEROOH = PXYBIPERO + OH : 	J(41) 	;
+{4041.} 	 PXYBIPENO3 + OH = CH3O2 + TLOBIPEROH + NO2 : 	7.16D-11 	;
+{4042.} 	 PXYBIPENO3 = PXYBIPERO + NO2 : 	J(55) 	;
+{4043.} 	 PXYBIPERO = C4DBDIKET + GLYOX + HO2 : 	KDEC*0.64 	;
+{4044.} 	 PXYBIPERO = C4MDIAL + MGLYOX + HO2 : 	KDEC*0.18 	;
+{4045.} 	 PXYBIPERO = PXYFUONE + MGLYOX + HO2 : 	KDEC*0.18 	;
+{4046.} 	 PXYBPER2OH + OH = PXYBIPERO : 	1.12D-10 	;
+{4047.} 	 PXYMUCCO3 + HO2 = C6M5CO2O2 + OH : 	KAPHO2*0.44 	;
+{4048.} 	 PXYMUCCO3 + HO2 = PXYMUCCO2H + O3 : 	KAPHO2*0.15 	;
+{4049.} 	 PXYMUCCO3 + HO2 = PXYMUCCO3H : 	KAPHO2*0.41 	;
+{4050.} 	 PXYMUCCO3 + NO = C6M5CO2O2 + NO2 : 	KAPNO 	;
+{4051.} 	 PXYMUCCO3 + NO2 = PXYMUCPAN : 	KFPAN 	;
+{4052.} 	 PXYMUCCO3 + NO3 = C6M5CO2O2 + NO2 : 	KRO2NO3*1.74 	;
+{4053.} 	 PXYMUCCO3 = C6M5CO2O2 : 	1.00D-11*RO2*0.70 	;
+{4054.} 	 PXYMUCCO3 = PXYMUCCO2H : 	1.00D-11*RO2*0.30 	;
+{4055.} 	 PXYMUCO2 + HO2 = PXYMUCOOH : 	KRO2HO2*0.859 	;
+{4056.} 	 PXYMUCO2 + NO = PXYMUCNO3 : 	KRO2NO*0.173 	;
+{4057.} 	 PXYMUCO2 + NO = PXYMUCO + NO2 : 	KRO2NO*0.827 	;
+{4058.} 	 PXYMUCO2 + NO3 = PXYMUCO + NO2 : 	KRO2NO3 	;
+{4059.} 	 PXYMUCO2 = PXYMUCCO : 	8.80D-12*RO2*0.2 	;
+{4060.} 	 PXYMUCO2 = PXYMUCO : 	8.80D-12*RO2*0.6 	;
+{4061.} 	 PXYMUCO2 = PXYMUCOH : 	8.80D-12*RO2*0.2 	;
+{4062.} 	 C6M5CO2O2 + HO2 = C6M5CO2OOH : 	KRO2HO2*0.820 	;
+{4063.} 	 C6M5CO2O2 + NO = C6M5CO2O + NO2 : 	KRO2NO 	;
+{4064.} 	 C6M5CO2O2 + NO3 = C6M5CO2O + NO2 : 	KRO2NO3 	;
+{4065.} 	 C6M5CO2O2 = C6M5CO2O : 	9.20D-14*RO2*0.70 	;
+{4066.} 	 C6M5CO2O2 = C6M5CO2OH : 	9.20D-14*RO2*0.30 	;
+{4067.} 	 NPXYOLO2 + HO2 = NPXYOLOOH : 	KRO2HO2*0.859 	;
+{4068.} 	 NPXYOLO2 + NO = NPXYOLO + NO2 : 	KRO2NO 	;
+{4069.} 	 NPXYOLO2 + NO3 = NPXYOLO + NO2 : 	KRO2NO3 	;
+{4070.} 	 NPXYOLO2 = NPXYOLO : 	8.00D-13*RO2*0.70 	;
+{4071.} 	 NPXYOLO2 = NPXYOLOH : 	8.00D-13*RO2*0.30 	;
+{4072.} 	 PXY1O + NO2 = PXY1OHNO2 : 	2.08D-12 	;
+{4073.} 	 PXY1O + O3 = PXY1O2 : 	2.86D-13 	;
+{4074.} 	 PXYOLO2 + HO2 = PXYOLOOH : 	KRO2HO2*0.859 	;
+{4075.} 	 PXYOLO2 + NO = PXYOLO + NO2 : 	KRO2NO 	;
+{4076.} 	 PXYOLO2 + NO3 = PXYOLO + NO2 : 	KRO2NO3 	;
+{4077.} 	 PXYOLO2 = PXYOLO : 	8.00D-13*RO2*0.70 	;
+{4078.} 	 PXYOLO2 = PXYOLOH : 	8.00D-13*RO2*0.30 	;
+{4079.} 	 PXYCATECH + NO3 = PXCATEC1O + HNO3 : 	2.01D-10 	;
+{4080.} 	 PXYCATECH + O3 = PXCATECOOA : 	2.81D-17 	;
+{4081.} 	 PXYCATECH + OH = PXCATEC1O : 	2.05D-10 	;
+{4082.} 	 C6H5C2OOH + OH = C6H5CH2CHO + OH : 	2.17D-11 	;
+{4083.} 	 C6H5C2OOH = C6H5C2H4O + OH : 	J(41) 	;
+{4084.} 	 C6H5C2H4O = C6H5CH2CHO + HO2 : 	KROPRIM*O2 	;
+{4085.} 	 C6H5C2NO3 + OH = C6H5CH2CHO + NO2 : 	7.18D-12 	;
+{4086.} 	 C6H5C2NO3 = C6H5C2H4O + NO2 : 	J(53) 	;
+{4087.} 	 C6H5C2OH + OH = C6H5CH2CHO + HO2 : 	1.01D-11 	;
+{4088.} 	 C6H5CH2CHO + NO3 = C6H5CH2CO3 + HNO3 : 	KNO3AL 	;
+{4089.} 	 C6H5CH2CHO + OH = C6H5CH2CO3 : 	2.08D-11 	;
+{4090.} 	 C6H5CH2CHO = C6H5CH2O2 + HO2 + CO : 	J(17) 	;
+{4091.} 	 EBENZO + NO2 = EBNZOHNO2 : 	2.08D-12 	;
+{4092.} 	 EBENZO + O3 = EBENZO2 : 	2.86D-13 	;
+{4093.} 	 EBENZOLO2 + HO2 = EBENZOLOOH : 	KRO2HO2*0.859 	;
+{4094.} 	 EBENZOLO2 + NO = EBENZOLO + NO2 : 	KRO2NO 	;
+{4095.} 	 EBENZOLO2 + NO3 = EBENZOLO + NO2 : 	KRO2NO3 	;
+{4096.} 	 EBENZOLO2 = EBENZOLO : 	8.00D-13*RO2*0.70 	;
+{4097.} 	 EBENZOLO2 = EBENZOLOH : 	8.00D-13*RO2*0.30 	;
+{4098.} 	 NEBNZOLO2 + HO2 = NEBNZOLOOH : 	KRO2HO2*0.859 	;
+{4099.} 	 NEBNZOLO2 + NO = NEBNZOLO + NO2 : 	KRO2NO 	;
+{4100.} 	 NEBNZOLO2 + NO3 = NEBNZOLO + NO2 : 	KRO2NO3 	;
+{4101.} 	 NEBNZOLO2 = NEBNZOLO : 	8.00D-13*RO2*0.70 	;
+{4102.} 	 NEBNZOLO2 = NEBNZOLOH : 	8.00D-13*RO2*0.30 	;
+{4103.} 	 ECATECHOL + NO3 = ECATEC1O + HNO3 : 	2.01D-10*1.0 	;
+{4104.} 	 ECATECHOL + O3 = ECATECOOA : 	2.81D-17 	;
+{4105.} 	 ECATECHOL + OH = ECATEC1O : 	2.05D-10*1.0 	;
+{4106.} 	 EBZBPEROOH + OH = EBZOBPEROH + OH : 	9.75D-11 	;
+{4107.} 	 EBZBPEROOH = EBZBIPERO + OH : 	J(41) 	;
+{4108.} 	 EBZBIPERO = BZFUONE + EGLYOX + HO2 : 	KDEC*0.2 	;
+{4109.} 	 EBZBIPERO = C6DICARB + GLYOX + HO2 : 	KDEC*0.3 	;
+{4110.} 	 EBZBIPERO = EBFUONE + GLYOX + HO2 : 	KDEC*0.3 	;
+{4111.} 	 EBZBIPERO = MALDIAL + EGLYOX + HO2 : 	KDEC*0.2 	;
+{4112.} 	 EBZBPERNO3 + OH = EBZOBPEROH + NO2 : 	7.28D-11 	;
+{4113.} 	 EBZBPERNO3 = EBZBIPERO + NO2 : 	J(54) 	;
+{4114.} 	 EBZBPER2OH + OH = EBZOBPEROH + HO2 : 	1.21D-10 	;
+{4115.} 	 EBZOBPEROH + OH = C6DCARBBO2 + GLYOX : 	8.11D-11 	;
+{4116.} 	 EBZOBPEROH = C6DCARBBO2 + GLYOX + HO2 : 	J(22) 	;
+{4117.} 	 EBZMUCCO3 + HO2 = C715CO2O2 + OH : 	KAPHO2*0.44 	;
+{4118.} 	 EBZMUCCO3 + HO2 = EBZMUCCO2H + O3 : 	KAPHO2*0.15 	;
+{4119.} 	 EBZMUCCO3 + HO2 = EBZMUCCO3H : 	KAPHO2*0.41 	;
+{4120.} 	 EBZMUCCO3 + NO = C715CO2O2 + NO2 : 	KAPNO 	;
+{4121.} 	 EBZMUCCO3 + NO2 = EBZMUCPAN : 	KFPAN 	;
+{4122.} 	 EBZMUCCO3 + NO3 = C715CO2O2 + NO2 : 	KRO2NO3*1.74 	;
+{4123.} 	 EBZMUCCO3 = C715CO2O2 : 	1.00D-11*RO2*0.70 	;
+{4124.} 	 EBZMUCCO3 = EBZMUCCO2H : 	1.00D-11*RO2*0.30 	;
+{4125.} 	 EGLYOOB = C2H5CHO : 	KDEC*0.125 	;
+{4126.} 	 EGLYOOB = C2H5CO3 + CO + OH : 	KDEC*0.57 	;
+{4127.} 	 EGLYOOB = C2H5CO3 + HO2 : 	KDEC*0.125 	;
+{4128.} 	 EGLYOOB = EGLYOO : 	KDEC*0.18 	;
+{4129.} 	 EBZMUCO2 + HO2 = EBZMUCOOH : 	KRO2HO2*0.859 	;
+{4130.} 	 EBZMUCO2 + NO = EBZMUCNO3 : 	KRO2NO*0.173 	;
+{4131.} 	 EBZMUCO2 + NO = EBZMUCO + NO2 : 	KRO2NO*0.827 	;
+{4132.} 	 EBZMUCO2 + NO3 = EBZMUCO + NO2 : 	KRO2NO3 	;
+{4133.} 	 EBZMUCO2 = EBZMUCCO : 	8.80D-13*RO2*0.20 	;
+{4134.} 	 EBZMUCO2 = EBZMUCO : 	8.80D-13*RO2*0.60 	;
+{4135.} 	 EBZMUCO2 = EBZMUCOH : 	8.80D-13*RO2*0.20 	;
+{4136.} 	 C715CO2O2 + HO2 = C715CO2OOH : 	KRO2HO2*0.820 	;
+{4137.} 	 C715CO2O2 + NO = C715CO2O + NO2 : 	KRO2NO 	;
+{4138.} 	 C715CO2O2 + NO3 = C715CO2O + NO2 : 	KRO2NO3 	;
+{4139.} 	 C715CO2O2 = C715CO2O : 	8.80D-13*RO2*0.60 	;
+{4140.} 	 C715CO2O2 = C715CO2OH : 	8.80D-13*RO2*0.20 	;
+{4141.} 	 C715CO2O2 = C7CO2DBAL : 	8.80D-13*RO2*0.20 	;
+{4142.} 	 PHC3OOH + OH = PHCOET + OH : 	2.05D-11 	;
+{4143.} 	 PHC3OOH = PHC3O + OH : 	J(41) 	;
+{4144.} 	 PHC3NO3 + OH = PHCOET + NO2 : 	6.03D-12 	;
+{4145.} 	 PHC3NO3 = PHC3O + NO2 : 	J(54) 	;
+{4146.} 	 PHC3O = PHCOET + HO2 : 	KROSEC*O2 	;
+{4147.} 	 PHC3OH + OH = PHCOET + HO2 : 	8.93D-12 	;
+{4148.} 	 PHCOET + OH = PHCOETO2 : 	6.00D-12 	;
+{4149.} 	 PHCOET = C6H5CO3 + C2H5O2 : 	J(22) 	;
+{4150.} 	 NPBNZOLO2 + HO2 = NPBNZOLOOH : 	KRO2HO2*0.90 	;
+{4151.} 	 NPBNZOLO2 + NO = NPBNZOLO + NO2 : 	KRO2NO 	;
+{4152.} 	 NPBNZOLO2 + NO3 = NPBNZOLO + NO2 : 	KRO2NO3 	;
+{4153.} 	 NPBNZOLO2 = NPBNZOLO : 	8.00D-13*RO2*0.70 	;
+{4154.} 	 NPBNZOLO2 = NPBNZOLOH : 	8.00D-13*RO2*0.30 	;
+{4155.} 	 PBENZO + NO2 = PBNZOHNO2 : 	2.08D-12 	;
+{4156.} 	 PBENZO + O3 = PBENZO2 : 	2.86D-13 	;
+{4157.} 	 PBENZOLO2 + HO2 = PBENZOLOOH : 	KRO2HO2*0.90 	;
+{4158.} 	 PBENZOLO2 + NO = PBENZOLO + NO2 : 	KRO2NO 	;
+{4159.} 	 PBENZOLO2 + NO3 = PBENZOLO + NO2 : 	KRO2NO3 	;
+{4160.} 	 PBENZOLO2 = PBENZOLO : 	8.00D-13*RO2*0.70 	;
+{4161.} 	 PBENZOLO2 = PBENZOLOH : 	8.00D-13*RO2*0.30 	;
+{4162.} 	 PCATECHOL + NO3 = PCATEC1O + HNO3 : 	2.01D-10*1.0 	;
+{4163.} 	 PCATECHOL + O3 = PCATECOOA : 	2.81D-17 	;
+{4164.} 	 PCATECHOL + OH = PCATEC1O : 	2.05D-10*1.0 	;
+{4165.} 	 PBZBPEROOH + OH = PBZOBPEROH + OH : 	9.90D-11 	;
+{4166.} 	 PBZBPEROOH = PBZBIPERO + OH : 	J(41) 	;
+{4167.} 	 PBZBIPERO = BZFUONE + PGLYOX + HO2 : 	KDEC*0.2 	;
+{4168.} 	 PBZBIPERO = C7DICARB + GLYOX + HO2 : 	KDEC*0.3 	;
+{4169.} 	 PBZBIPERO = MALDIAL + PGLYOX + HO2 : 	KDEC*0.2 	;
+{4170.} 	 PBZBIPERO = PBFUONE + GLYOX + HO2 : 	KDEC*0.3 	;
+{4171.} 	 PBZBPERNO3 + OH = PBZOBPEROH + NO2 : 	7.42D-11 	;
+{4172.} 	 PBZBPERNO3 = PBZBIPERO + NO2 : 	J(54) 	;
+{4173.} 	 PBZBPER2OH + OH = PBZOBPEROH + HO2 : 	1.22D-10 	;
+{4174.} 	 PBZOBPEROH + OH = C7DCCO3 + GLYOX : 	8.25D-11 	;
+{4175.} 	 PBZOBPEROH = C7DCCO3 + GLYOX + HO2 : 	J(22) 	;
+{4176.} 	 PBZMUCCO3 + HO2 = C815CO2O2 + OH : 	KAPHO2*0.44 	;
+{4177.} 	 PBZMUCCO3 + HO2 = PBZMUCCO2H + O3 : 	KAPHO2*0.15 	;
+{4178.} 	 PBZMUCCO3 + HO2 = PBZMUCCO3H : 	KAPHO2*0.41 	;
+{4179.} 	 PBZMUCCO3 + NO = C815CO2O2 + NO2 : 	KAPNO 	;
+{4180.} 	 PBZMUCCO3 + NO2 = PBZMUCPAN : 	KFPAN 	;
+{4181.} 	 PBZMUCCO3 + NO3 = C815CO2O2 + NO2 : 	KRO2NO3*1.74 	;
+{4182.} 	 PBZMUCCO3 = C815CO2O2 : 	1.00D-11*RO2*0.70 	;
+{4183.} 	 PBZMUCCO3 = PBZMUCCO2H : 	1.00D-11*RO2*0.30 	;
+{4184.} 	 PGLOOA = C3H7CHO : 	KDEC*0.34 	;
+{4185.} 	 PGLOOA = C3H7CO3 + CO + OH : 	KDEC*0.08 	;
+{4186.} 	 PGLOOA = C3H7CO3 + HO2 : 	KDEC*0.34 	;
+{4187.} 	 PGLOOA = PGLOO : 	KDEC*0.24 	;
+{4188.} 	 PBZMUCO2 + HO2 = PBZMUCOOH : 	KRO2HO2*0.890 	;
+{4189.} 	 PBZMUCO2 + NO = PBZMUCNO3 : 	KRO2NO*0.197 	;
+{4190.} 	 PBZMUCO2 + NO = PBZMUCO + NO2 : 	KRO2NO*0.803 	;
+{4191.} 	 PBZMUCO2 + NO3 = PBZMUCO + NO2 : 	KRO2NO3 	;
+{4192.} 	 PBZMUCO2 = PBZMUCCO : 	8.80D-13*RO2*0.20 	;
+{4193.} 	 PBZMUCO2 = PBZMUCO : 	8.80D-13*RO2*0.60 	;
+{4194.} 	 PBZMUCO2 = PBZMUCOH : 	8.80D-13*RO2*0.20 	;
+{4195.} 	 C815CO2O2 + HO2 = C815CO2OOH : 	KRO2HO2*0.859 	;
+{4196.} 	 C815CO2O2 + NO = C815CO2O + NO2 : 	KRO2NO 	;
+{4197.} 	 C815CO2O2 + NO3 = C815CO2O + NO2 : 	KRO2NO3 	;
+{4198.} 	 C815CO2O2 = C815CO2O : 	8.80D-13*RO2*0.60 	;
+{4199.} 	 C815CO2O2 = C815CO2OH : 	8.80D-13*RO2*0.20 	;
+{4200.} 	 C815CO2O2 = C8CO2DBAL : 	8.80D-13*RO2*0.20 	;
+{4201.} 	 PHIC3OOH + OH = PHIC3O2 : 	2.05D-11 	;
+{4202.} 	 PHIC3OOH = PHIC3O + OH : 	J(41) 	;
+{4203.} 	 PHIC3NO3 + OH = PHCOME + HCHO + NO2 : 	6.03D-12 	;
+{4204.} 	 PHIC3NO3 = PHIC3O + NO2 : 	J(55) 	;
+{4205.} 	 PHIC3O = PHCOME + CH3O2 : 	KDEC 	;
+{4206.} 	 PHIC3OH + OH = PHIC3O : 	8.93D-12 	;
+{4207.} 	 IPBENZO + NO2 = IPBNZOHNO2 : 	2.08D-12 	;
+{4208.} 	 IPBENZO + O3 = IPBENZO2 : 	2.86D-13 	;
+{4209.} 	 IPBENZOLO2 + HO2 = IPBZOLOOH : 	KRO2HO2*0.90 	;
+{4210.} 	 IPBENZOLO2 + NO = IPBENZOLO + NO2 : 	KRO2NO 	;
+{4211.} 	 IPBENZOLO2 + NO3 = IPBENZOLO + NO2 : 	KRO2NO3 	;
+{4212.} 	 IPBENZOLO2 = IPBENZOLO : 	8.00D-13*RO2*0.70 	;
+{4213.} 	 IPBENZOLO2 = IPBENZOLOH : 	8.00D-13*RO2*0.30 	;
+{4214.} 	 NIPBNZOLO2 + HO2 = NIPBZOLOOH : 	KRO2HO2*0.90 	;
+{4215.} 	 NIPBNZOLO2 + NO = NIPBNZOLO + NO2 : 	KRO2NO 	;
+{4216.} 	 NIPBNZOLO2 + NO3 = NIPBNZOLO + NO2 : 	KRO2NO3 	;
+{4217.} 	 NIPBNZOLO2 = NIPBNZOLO : 	8.00D-13*RO2*0.70 	;
+{4218.} 	 NIPBNZOLO2 = NIPBNZOLOH : 	8.00D-13*RO2*0.30 	;
+{4219.} 	 IPCATECHOL + NO3 = IPCATEC1O + HNO3 : 	2.01D-10*1.0 	;
+{4220.} 	 IPCATECHOL + O3 = IPCATECOOA : 	2.81D-17 	;
+{4221.} 	 IPCATECHOL + OH = IPCATEC1O : 	2.05D-10*1.0 	;
+{4222.} 	 IPBZBPROOH + OH = IPBZOBPROH + OH : 	9.90D-11 	;
+{4223.} 	 IPBZBPROOH = IPBZBIPRO + OH : 	J(41) 	;
+{4224.} 	 IPBZBIPRO = BZFUONE + IPRGLYOX + HO2 : 	KDEC*0.2 	;
+{4225.} 	 IPBZBIPRO = IC7DICARB + GLYOX + HO2 : 	KDEC*0.3 	;
+{4226.} 	 IPBZBIPRO = IPBFUONE + GLYOX + HO2 : 	KDEC*0.3 	;
+{4227.} 	 IPBZBIPRO = MALDIAL + IPRGLYOX + HO2 : 	KDEC*0.2 	;
+{4228.} 	 IPBZBPRNO3 + OH = IPBZOBPROH + NO2 : 	7.42D-11 	;
+{4229.} 	 IPBZBPRNO3 = IPBZBIPRO + NO2 : 	J(54) 	;
+{4230.} 	 IPBZBPR2OH + OH = IPBZOBPROH + HO2 : 	1.22D-10 	;
+{4231.} 	 IPBZOBPROH + OH = IC7DCCO3 + GLYOX : 	8.25D-11 	;
+{4232.} 	 IPBZOBPROH = IC7DCCO3 + GLYOX + HO2 : 	J(22) 	;
+{4233.} 	 IPBZMUCCO3 + HO2 = C7M15CO2O2 + OH : 	KAPHO2*0.44 	;
+{4234.} 	 IPBZMUCCO3 + HO2 = IPBZMUCO2H + O3 : 	KAPHO2*0.15 	;
+{4235.} 	 IPBZMUCCO3 + HO2 = IPBZMUCO3H : 	KAPHO2*0.41 	;
+{4236.} 	 IPBZMUCCO3 + NO = C7M15CO2O2 + NO2 : 	KAPNO 	;
+{4237.} 	 IPBZMUCCO3 + NO2 = IPBZMUCPAN : 	KFPAN 	;
+{4238.} 	 IPBZMUCCO3 + NO3 = C7M15CO2O2 + NO2 : 	KRO2NO3*1.74 	;
+{4239.} 	 IPBZMUCCO3 = C7M15CO2O2 : 	1.00D-11*RO2*0.70 	;
+{4240.} 	 IPBZMUCCO3 = IPBZMUCO2H : 	1.00D-11*RO2*0.30 	;
+{4241.} 	 IPGLOOB = IPGLOO : 	KDEC*0.18 	;
+{4242.} 	 IPGLOOB = IPRCHO : 	KDEC*0.125 	;
+{4243.} 	 IPGLOOB = IPRCO3 + CO + OH : 	KDEC*0.57 	;
+{4244.} 	 IPGLOOB = IPRCO3 + HO2 : 	KDEC*0.125 	;
+{4245.} 	 IPBZMUCO2 + HO2 = IPBZMUCOOH : 	KRO2HO2*0.890 	;
+{4246.} 	 IPBZMUCO2 + NO = IPBZMUCNO3 : 	KRO2NO*0.197 	;
+{4247.} 	 IPBZMUCO2 + NO = IPBZMUCO + NO2 : 	KRO2NO*0.803 	;
+{4248.} 	 IPBZMUCO2 + NO3 = IPBZMUCO + NO2 : 	KRO2NO3 	;
+{4249.} 	 IPBZMUCO2 = IPBZMUCCO : 	8.80D-13*RO2*0.20 	;
+{4250.} 	 IPBZMUCO2 = IPBZMUCO : 	8.80D-13*RO2*0.60 	;
+{4251.} 	 IPBZMUCO2 = IPBZMUCOH : 	8.80D-13*RO2*0.20 	;
+{4252.} 	 C7M15CO2O2 + HO2 = C7MCO2OOH : 	KRO2HO2*0.859 	;
+{4253.} 	 C7M15CO2O2 + NO = C7M15CO2O + NO2 : 	KRO2NO 	;
+{4254.} 	 C7M15CO2O2 + NO3 = C7M15CO2O + NO2 : 	KRO2NO3 	;
+{4255.} 	 C7M15CO2O2 = C7M15CO2O : 	8.80D-13*RO2*0.60 	;
+{4256.} 	 C7M15CO2O2 = C7M15CO2OH : 	8.80D-13*RO2*0.20 	;
+{4257.} 	 C7M15CO2O2 = C7MCO2DBAL : 	8.80D-13*RO2*0.20 	;
+{4258.} 	 TM123BOOH + OH = TM123BCHO + OH : 	1.17D-11 	;
+{4259.} 	 TM123BOOH = TM123BO + OH : 	J(41) 	;
+{4260.} 	 TM123BNO3 + OH = TM123BCHO + NO2 : 	6.03D-12 	;
+{4261.} 	 TM123BNO3 = TM123BO + NO2 : 	J(53) 	;
+{4262.} 	 TM123BO = TM123BCHO + HO2 : 	KROPRIM*O2 	;
+{4263.} 	 TM123BCHO + NO3 = TM123BCO3 + NO2 : 	KNO3AL 	;
+{4264.} 	 TM123BCHO + OH = TM123BCO3 : 	1.29D-11 	;
+{4265.} 	 TM123BCHO = DM123O2 + HO2 + CO : 	J(19) 	;
+{4266.} 	 TM123BCHO = TM123BCO3 + HO2 : 	J(18) 	;
+{4267.} 	 TM123BOH + OH = TM123BCHO + HO2 : 	3.68D-12 	;
+{4268.} 	 NTM123OLO2 + HO2 = NTM123LOOH : 	KRO2HO2*0.90 	;
+{4269.} 	 NTM123OLO2 + NO = NTM123OLO + NO2 : 	KRO2NO 	;
+{4270.} 	 NTM123OLO2 + NO3 = NTM123OLO + NO2 : 	KRO2NO3 	;
+{4271.} 	 NTM123OLO2 = NTM123OLO : 	8.00D-13*RO2*0.70 	;
+{4272.} 	 NTM123OLO2 = NTM123OLOH : 	8.00D-13*RO2*0.30 	;
+{4273.} 	 TM123O + NO2 = TM123OHNO2 : 	2.08D-12 	;
+{4274.} 	 TM123O + O3 = TM123O2 : 	2.86D-13 	;
+{4275.} 	 TM123OLO2 + HO2 = TM123OLOOH : 	KRO2HO2*0.90 	;
+{4276.} 	 TM123OLO2 + NO = TM123OLO + NO2 : 	KRO2NO 	;
+{4277.} 	 TM123OLO2 + NO3 = TM123OLO + NO2 : 	KRO2NO3 	;
+{4278.} 	 TM123OLO2 = TM123OLO : 	8.00D-13*RO2*0.70 	;
+{4279.} 	 TM123OLO2 = TM123OLOH : 	8.00D-13*RO2*0.30 	;
+{4280.} 	 T123CATECH + NO3 = T123CAT1O + HNO3 : 	2.01D-10 	;
+{4281.} 	 T123CATECH + O3 = T123CTCOOA : 	2.81D-17 	;
+{4282.} 	 T123CATECH + OH = T123CAT1O : 	2.05D-10 	;
+{4283.} 	 TM123BPOOH + OH = TM123OBPOH + OH : 	8.83D-11 	;
+{4284.} 	 TM123BPOOH = TM123BPRO + OH : 	J(41) 	;
+{4285.} 	 TM123BPNO3 + OH = TM123OBPOH + NO2 : 	6.51D-11 	;
+{4286.} 	 TM123BPNO3 = TM123BPRO + NO2 : 	J(54) 	;
+{4287.} 	 TM123BPRO = C5DICARB + BIACET + HO2 : 	KDEC*0.32 	;
+{4288.} 	 TM123BPRO = C7ADICARB + GLYOX + HO2 : 	KDEC*0.05 	;
+{4289.} 	 TM123BPRO = MC5DICARB + MGLYOX + HO2 : 	KDEC*0.13 	;
+{4290.} 	 TM123BPRO = TLFUONE + BIACET + HO2 : 	KDEC*0.32 	;
+{4291.} 	 TM123BPRO = TMB1FUONE + MGLYOX + HO2 : 	KDEC*0.13 	;
+{4292.} 	 TM123BPRO = TMB2FUONE + GLYOX + HO2 : 	KDEC*0.05 	;
+{4293.} 	 TM123BP2OH + OH = TM123OBPOH + HO2 : 	1.12D-10 	;
+{4294.} 	 TM123OBPOH + OH = C5CO14O2 + BIACET : 	5.86D-11 	;
+{4295.} 	 TM123OBPOH = C5CO14O2 + BIACET + HO2 : 	J(22) 	;
+{4296.} 	 EPXALMKT + NO3 = EPXKTMCO3 + HNO3 : 	KNO3AL*8.5 	;
+{4297.} 	 EPXALMKT + OH = EPXKTMCO3 : 	2.22D-11 	;
+{4298.} 	 EPXALMKT = C4CO2O2 + CH3CO3 : 	J(22) 	;
+{4299.} 	 EPXALMKT = C4MCO2O2 + HO2 + CO : 	J(17) 	;
+{4300.} 	 TM123MUCO2 + HO2 = TM123MUOOH : 	KRO2HO2*0.890 	;
+{4301.} 	 TM123MUCO2 + NO = TM123MUCO + NO2 : 	KRO2NO*0.941 	;
+{4302.} 	 TM123MUCO2 + NO = TM123MUNO3 : 	KRO2NO*0.059 	;
+{4303.} 	 TM123MUCO2 + NO3 = TM123MUCO + NO2 : 	KRO2NO3 	;
+{4304.} 	 TM123MUCO2 = TM123MUCCO : 	8.80D-13*RO2*0.20 	;
+{4305.} 	 TM123MUCO2 = TM123MUCO : 	8.80D-13*RO2*0.60 	;
+{4306.} 	 TM123MUCO2 = TM123MUCOH : 	8.80D-13*RO2*0.20 	;
+{4307.} 	 TM124BOOH + OH = TM124BCHO + OH : 	1.17D-11 	;
+{4308.} 	 TM124BOOH = TM124BO + OH : 	J(41) 	;
+{4309.} 	 TM124BNO3 + OH = TM124BCHO + NO2 : 	6.03D-12 	;
+{4310.} 	 TM124BNO3 = TM124BO + NO2 : 	J(53) 	;
+{4311.} 	 TM124BO = TM124BCHO + HO2 : 	KROPRIM*O2 	;
+{4312.} 	 TM124BCHO + NO3 = TM124BCO3 + HNO3 : 	KNO3AL 	;
+{4313.} 	 TM124BCHO + OH = TM124BCO3 : 	1.29D-11 	;
+{4314.} 	 TM124BCHO = DM124O2 + HO2 + CO : 	J(19) 	;
+{4315.} 	 TM124BCHO = TM124BCO3 + HO2 : 	J(18) 	;
+{4316.} 	 TM124BOH + OH = TM124BCHO + HO2 : 	3.68D-12 	;
+{4317.} 	 TM124BPOOH + OH = TM124BPRO2 : 	7.48D-11 	;
+{4318.} 	 TM124BPOOH = TM124BPRO + OH : 	J(41) 	;
+{4319.} 	 TM124BPNO3 + OH = CH3O2 + MXYOBPEROH + NO2 : 	7.14D-11 	;
+{4320.} 	 TM124BPNO3 = TM124BPRO + NO2 : 	J(55) 	;
+{4321.} 	 TM124BPRO = C4DBDIKET + MGLYOX + HO2 : 	KDEC*0.292 	;
+{4322.} 	 TM124BPRO = C4MDIAL + BIACET + HO2 : 	KDEC*0.084 	;
+{4323.} 	 TM124BPRO = C7BDICARB + GLYOX + HO2 : 	KDEC*0.118 	;
+{4324.} 	 TM124BPRO = MC5DICARB + MGLYOX + HO2 : 	KDEC*0.211 	;
+{4325.} 	 TM124BPRO = PXYFUONE + BIACET + HO2 : 	KDEC*0.084 	;
+{4326.} 	 TM124BPRO = TMB1FUONE + MGLYOX + HO2 : 	KDEC*0.211 	;
+{4327.} 	 TM124BP2OH + OH = TM124BPRO : 	1.10D-10 	;
+{4328.} 	 NTM124OLO2 + HO2 = NTM124LOOH : 	KRO2HO2*0.90 	;
+{4329.} 	 NTM124OLO2 + NO = NTM124OLO + NO2 : 	KRO2NO 	;
+{4330.} 	 NTM124OLO2 + NO3 = NTM124OLO + NO2 : 	KRO2NO3 	;
+{4331.} 	 NTM124OLO2 = NTM124OLO : 	8.00D-13*RO2*0.70 	;
+{4332.} 	 NTM124OLO2 = NTM124OLOH : 	8.00D-13*RO2*0.30 	;
+{4333.} 	 TM124O + NO2 = TM124OHNO2 : 	2.08D-12 	;
+{4334.} 	 TM124O + O3 = TM124O2 : 	2.86D-13 	;
+{4335.} 	 TM124OLO2 + HO2 = TM124OLOOH : 	KRO2HO2*0.90 	;
+{4336.} 	 TM124OLO2 + NO = TM124OLO + NO2 : 	KRO2NO 	;
+{4337.} 	 TM124OLO2 + NO3 = TM124OLO + NO2 : 	KRO2NO3 	;
+{4338.} 	 TM124OLO2 = TM124OLO : 	8.00D-13*RO2*0.70 	;
+{4339.} 	 TM124OLO2 = TM124OLOH : 	8.00D-13*RO2*0.30 	;
+{4340.} 	 T124CATECH + NO3 = T124CAT1O + HNO3 : 	2.01D-10 	;
+{4341.} 	 T124CATECH + O3 = T124CTCOOA : 	2.81D-17 	;
+{4342.} 	 T124CATECH + OH = T124CAT1O : 	2.05D-10 	;
+{4343.} 	 TM124MUCO3 + HO2 = C7CO2M5O2 + OH : 	KAPHO2*0.44 	;
+{4344.} 	 TM124MUCO3 + HO2 = TM124MUO2H + O3 : 	KAPHO2*0.15 	;
+{4345.} 	 TM124MUCO3 + HO2 = TM124MUO3H : 	KAPHO2*0.41 	;
+{4346.} 	 TM124MUCO3 + NO = C7CO2M5O2 + NO2 : 	KAPNO 	;
+{4347.} 	 TM124MUCO3 + NO2 = TM124MUPAN : 	KFPAN 	;
+{4348.} 	 TM124MUCO3 + NO3 = C7CO2M5O2 + NO2 : 	KRO2NO3*1.74 	;
+{4349.} 	 TM124MUCO3 = C7CO2M5O2 : 	1.00D-11*RO2*0.70 	;
+{4350.} 	 TM124MUCO3 = TM124MUO2H : 	1.00D-11*RO2*0.30 	;
+{4351.} 	 TM124MUCO2 + HO2 = TM124MUOOH : 	KRO2HO2*0.890 	;
+{4352.} 	 TM124MUCO2 + NO = TM124MUCO + NO2 : 	KRO2NO*0.941 	;
+{4353.} 	 TM124MUCO2 + NO = TM124MUNO3 : 	KRO2NO*0.059 	;
+{4354.} 	 TM124MUCO2 + NO3 = TM124MUCO + NO2 : 	KRO2NO3 	;
+{4355.} 	 TM124MUCO2 = TM124MUCCO : 	8.80D-13*RO2*0.20 	;
+{4356.} 	 TM124MUCO2 = TM124MUCO : 	8.80D-13*RO2*0.60 	;
+{4357.} 	 TM124MUCO2 = TM124MUCOH : 	8.80D-13*RO2*0.20 	;
+{4358.} 	 C7CO2M5O2 + HO2 = C7CO2M5OOH : 	KRO2HO2*0.859 	;
+{4359.} 	 C7CO2M5O2 + NO = C7CO2M5O + NO2 : 	KRO2NO 	;
+{4360.} 	 C7CO2M5O2 + NO3 = C7CO2M5O + NO2 : 	KRO2NO3 	;
+{4361.} 	 C7CO2M5O2 = C7CO2M5O : 	9.20D-14*RO2*0.70 	;
+{4362.} 	 C7CO2M5O2 = C7CO2M5OH : 	9.20D-14*RO2*0.30 	;
+{4363.} 	 TMBOOH + OH = TMBCHO + OH : 	2.05D-11 	;
+{4364.} 	 TMBOOH = TMBO + OH : 	J(41) 	;
+{4365.} 	 TMBNO3 + OH = TMBCHO + NO2 : 	6.03D-12 	;
+{4366.} 	 TMBNO3 = TMBO + NO2 : 	J(53) 	;
+{4367.} 	 TMBO = TMBCHO + HO2 : 	KROPRIM*O2 	;
+{4368.} 	 TMBCHO + NO3 = TMBCO3 + HNO3 : 	KNO3AL 	;
+{4369.} 	 TMBCHO + OH = TMBCO3 : 	1.29D-11 	;
+{4370.} 	 TMBCHO = DMPHO2 + HO2 + CO : 	J(19) 	;
+{4371.} 	 TMBCHO = TMBCO3 + HO2 : 	J(18) 	;
+{4372.} 	 TMBOH + OH = TMBCHO + HO2 : 	8.93D-12 	;
+{4373.} 	 TM135BPOOH + OH = TM135OBPOH + OH : 	1.28D-10 	;
+{4374.} 	 TM135BPOOH = TM135BPRO + OH : 	J(41) 	;
+{4375.} 	 TM135BPNO3 + OH = TM135OBPOH + NO2 : 	9.45D-11 	;
+{4376.} 	 TM135BPNO3 = TM135BPRO + NO2 : 	J(54) 	;
+{4377.} 	 TM135BPRO = MGLYOX + C5MDICARB + HO2 : 	KDEC*0.50 	;
+{4378.} 	 TM135BPRO = MGLYOX + MXYFUONE + HO2 : 	KDEC*0.50 	;
+{4379.} 	 TM135BP2OH + OH = TM135OBPOH + HO2 : 	1.55D-10 	;
+{4380.} 	 TM135OBPOH + OH = C4MCODBCO3 + MGLYOX : 	1.00D-10 	;
+{4381.} 	 TM135OBPOH = C4MCODBCO3 + MGLYOX + HO2 : 	J(22) 	;
+{4382.} 	 NTM135OLO2 + HO2 = NTM135LOOH : 	KRO2HO2*0.890 	;
+{4383.} 	 NTM135OLO2 + NO = NTM135OLO + NO2 : 	KRO2NO 	;
+{4384.} 	 NTM135OLO2 + NO3 = NTM135OLO + NO2 : 	KRO2NO3 	;
+{4385.} 	 NTM135OLO2 = NTM135OLO : 	8.00D-13*RO2*0.70 	;
+{4386.} 	 NTM135OLO2 = NTM135OLOH : 	8.00D-13*RO2*0.30 	;
+{4387.} 	 TM135O + HO2 = TM135BZOL : 	1.00D-13 	;
+{4388.} 	 TM135OLO2 + HO2 = TM135OLOOH : 	KRO2HO2*0.890 	;
+{4389.} 	 TM135OLO2 + NO = TM135OLO + NO2 : 	KRO2NO 	;
+{4390.} 	 TM135OLO2 + NO3 = TM135OLO + NO2 : 	KRO2NO3 	;
+{4391.} 	 TM135OLO2 = TM135OLO : 	8.00D-13*RO2*0.70 	;
+{4392.} 	 TM135OLO2 = TM135OLOH : 	8.00D-13*RO2*0.30 	;
+{4393.} 	 TM135MUCO3 + HO2 = C7M2CO5O2 + OH : 	KAPHO2*0.44 	;
+{4394.} 	 TM135MUCO3 + HO2 = TM135MUO2H + O3 : 	KAPHO2*0.15 	;
+{4395.} 	 TM135MUCO3 + HO2 = TM135MUO3H : 	KAPHO2*0.41 	;
+{4396.} 	 TM135MUCO3 + NO = C7M2CO5O2 + NO2 : 	KAPNO 	;
+{4397.} 	 TM135MUCO3 + NO2 = TM135MUPAN : 	KFPAN 	;
+{4398.} 	 TM135MUCO3 + NO3 = C7M2CO5O2 + NO2 : 	KRO2NO3*1.74 	;
+{4399.} 	 TM135MUCO3 = C7M2CO5O2 : 	1.00D-11*RO2*0.70 	;
+{4400.} 	 TM135MUCO3 = TM135MUO2H : 	1.00D-11*RO2*0.30 	;
+{4401.} 	 EPXMALKT + NO3 = EPXMKTCO3 + HNO3 : 	KNO3AL*8.5 	;
+{4402.} 	 EPXMALKT + OH = EPXMKTCO3 : 	2.22D-11 	;
+{4403.} 	 EPXMALKT = C3MDIALO2 + CH3CO3 : 	J(22) 	;
+{4404.} 	 EPXMALKT = CO24C53O2 + HO2 + CO : 	J(17) 	;
+{4405.} 	 MGLOOC = CH3CO3 + CO + OH : 	KDEC*0.89 	;
+{4406.} 	 MGLOOC = MGLOO : 	KDEC*0.11 	;
+{4407.} 	 TM135MUCO2 + HO2 = TM135MUOOH : 	KRO2HO2*0.890 	;
+{4408.} 	 TM135MUCO2 + NO = TM135MUCO + NO2 : 	KRO2NO*0.941 	;
+{4409.} 	 TM135MUCO2 + NO = TM135MUNO3 : 	KRO2NO*0.059 	;
+{4410.} 	 TM135MUCO2 + NO3 = TM135MUCO + NO2 : 	KRO2NO3 	;
+{4411.} 	 TM135MUCO2 = TM135MUCO : 	9.20D-14*RO2*0.70 	;
+{4412.} 	 TM135MUCO2 = TM135MUOH : 	9.20D-14*RO2*0.30 	;
+{4413.} 	 C7M2CO5O2 + HO2 = C7M2CO5OOH : 	KRO2HO2*0.859 	;
+{4414.} 	 C7M2CO5O2 + NO = C7M2CO5O + NO2 : 	KRO2NO 	;
+{4415.} 	 C7M2CO5O2 + NO3 = C7M2CO5O + NO2 : 	KRO2NO3 	;
+{4416.} 	 C7M2CO5O2 = C7M2CO5O : 	8.80D-11*RO2*0.60 	;
+{4417.} 	 C7M2CO5O2 = C7M2CO5OH : 	8.80D-11*RO2*0.20 	;
+{4418.} 	 C7M2CO5O2 = C7M3CO : 	8.80D-11*RO2*0.20 	;
+{4419.} 	 ETOLOOH + OH = MPHCOME + OH : 	2.05D-11 	;
+{4420.} 	 ETOLOOH = ETOLO + OH : 	J(41) 	;
+{4421.} 	 ETOLNO3 + OH = MPHCOME + NO2 : 	6.03D-12 	;
+{4422.} 	 ETOLNO3 = ETOLO + NO2 : 	J(54) 	;
+{4423.} 	 ETOLO = MPHCOME + HO2 : 	KROSEC*O2 	;
+{4424.} 	 ETOLOH + OH = MPHCOME + HO2 : 	8.93D-12 	;
+{4425.} 	 MPHCOME + OH = MPHCOMEO2 : 	6.00D-12 	;
+{4426.} 	 MPHCOME = OXYLCO3 + CH3O2 : 	J(22) 	;
+{4427.} 	 OETLBPROOH + OH = OETLBIPRO2 : 	7.73D-11 	;
+{4428.} 	 OETLBPROOH = OETLBIPRO + OH : 	J(41) 	;
+{4429.} 	 OETLBIPNO3 + OH = TLCOBIPEOH + C2H5O2 + NO2 : 	7.31D-11 	;
+{4430.} 	 OETLBIPNO3 = OETLBIPRO + NO2 : 	J(55) 	;
+{4431.} 	 OETLBIPRO = BZFUONE + CO23C5 + HO2 : 	KDEC*0.167 	;
+{4432.} 	 OETLBIPRO = C5DICARB + EGLYOX + HO2 : 	KDEC*0.166 	;
+{4433.} 	 OETLBIPRO = C6DICARB + MGLYOX + HO2 : 	KDEC*0.167 	;
+{4434.} 	 OETLBIPRO = EBFUONE + MGLYOX + HO2 : 	KDEC*0.166 	;
+{4435.} 	 OETLBIPRO = MALDIAL + CO23C5 + HO2 : 	KDEC*0.167 	;
+{4436.} 	 OETLBIPRO = TLFUONE + EGLYOX + HO2 : 	KDEC*0.167 	;
+{4437.} 	 OETLBPR2OH + OH = OETLBIPRO : 	1.12D-10 	;
+{4438.} 	 OETLMUCCO3 + HO2 = MC7CO2O2 + OH : 	KAPHO2*0.44 	;
+{4439.} 	 OETLMUCCO3 + HO2 = OETLMUCO2H + O3 : 	KAPHO2*0.15 	;
+{4440.} 	 OETLMUCCO3 + HO2 = OETLMUCO3H : 	KAPHO2*0.41 	;
+{4441.} 	 OETLMUCCO3 + NO = MC7CO2O2 + NO2 : 	KAPNO 	;
+{4442.} 	 OETLMUCCO3 + NO2 = OETLMUCPAN : 	KFPAN 	;
+{4443.} 	 OETLMUCCO3 + NO3 = MC7CO2O2 + NO2 : 	KRO2NO3*1.74 	;
+{4444.} 	 OETLMUCCO3 = MC7CO2O2 : 	1.00D-11*RO2*0.70 	;
+{4445.} 	 OETLMUCCO3 = OETLMUCO2H : 	1.00D-11*RO2*0.30 	;
+{4446.} 	 EPXMEC4DAL + NO3 = EPXMEDLCO3 + HNO3 : 	2*KNO3AL*8.5 	;
+{4447.} 	 EPXMEC4DAL + OH = EPXMEDLCO3 : 	4.57D-11 	;
+{4448.} 	 EPXMEC4DAL = C4ECO2O2 + HO2 + CO : 	J(17)*2 	;
+{4449.} 	 OETLMUCO2 + HO2 = OETLMUCOOH : 	KRO2HO2*0.890 	;
+{4450.} 	 OETLMUCO2 + NO = OETLMUCNO3 : 	KRO2NO*0.196 	;
+{4451.} 	 OETLMUCO2 + NO = OETLMUCO + NO2 : 	KRO2NO*0.804 	;
+{4452.} 	 OETLMUCO2 + NO3 = OETLMUCO + NO2 : 	KRO2NO3 	;
+{4453.} 	 OETLMUCO2 = OETLMUCCO : 	8.80D-12*RO2*0.20 	;
+{4454.} 	 OETLMUCO2 = OETLMUCO : 	8.80D-12*RO2*0.60 	;
+{4455.} 	 OETLMUCO2 = OETLMUCOH : 	8.80D-12*RO2*0.20 	;
+{4456.} 	 MC7CO2O2 + HO2 = MC7CO2OOH : 	KRO2HO2*0.859 	;
+{4457.} 	 MC7CO2O2 + NO = MC7CO2O + NO2 : 	KRO2NO 	;
+{4458.} 	 MC7CO2O2 + NO3 = MC7CO2O + NO2 : 	KRO2NO3 	;
+{4459.} 	 MC7CO2O2 = MC7CO2O : 	9.20D-14*RO2*0.70 	;
+{4460.} 	 MC7CO2O2 = MC7CO2OH : 	9.20D-14*RO2*0.30 	;
+{4461.} 	 NOETOLO2 + HO2 = NOETOLOOH : 	KRO2HO2*0.90 	;
+{4462.} 	 NOETOLO2 + NO = NOETOLO + NO2 : 	KRO2NO 	;
+{4463.} 	 NOETOLO2 + NO3 = NOETOLO + NO2 : 	KRO2NO3 	;
+{4464.} 	 NOETOLO2 = NOETOLO : 	8.00D-13*RO2*0.70 	;
+{4465.} 	 NOETOLO2 = NOETOLOH : 	8.00D-13*RO2*0.30 	;
+{4466.} 	 OET1O + NO2 = OET1OHNO2 : 	2.08D-12 	;
+{4467.} 	 OET1O + O3 = OET1O2 : 	2.86D-13 	;
+{4468.} 	 OETOLO2 + HO2 = OETOLOOH : 	KRO2HO2*0.90 	;
+{4469.} 	 OETOLO2 + NO = OETOLO + NO2 : 	KRO2NO 	;
+{4470.} 	 OETOLO2 + NO3 = OETOLO + NO2 : 	KRO2NO3 	;
+{4471.} 	 OETOLO2 = OETOLO : 	8.00D-13*RO2*0.70 	;
+{4472.} 	 OETOLO2 = OETOLOH : 	8.00D-13*RO2*0.30 	;
+{4473.} 	 OETCATECH + NO3 = OTCATEC1O + HNO3 : 	2.01D-10 	;
+{4474.} 	 OETCATECH + O3 = OTCATECOOA : 	2.81D-17 	;
+{4475.} 	 OETCATECH + OH = OTCATEC1O : 	2.05D-10 	;
+{4476.} 	 METLBPROOH + OH = METLBIPRO2 : 	9.58D-11 	;
+{4477.} 	 METLBPROOH = METLBIPRO + OH : 	J(41) 	;
+{4478.} 	 METLBIPNO3 + OH = METLOBPROH + NO2 : 	7.27D-11 	;
+{4479.} 	 METLBIPNO3 = METLBIPRO + NO2 : 	J(55) 	;
+{4480.} 	 METLBIPRO = C4MDIAL + EGLYOX + HO2 : 	KDEC*0.167 	;
+{4481.} 	 METLBIPRO = C5DICARB + EGLYOX + HO2 : 	KDEC*0.166 	;
+{4482.} 	 METLBIPRO = C6DICARB + MGLYOX + HO2 : 	KDEC*0.25 	;
+{4483.} 	 METLBIPRO = EBFUONE + MGLYOX + HO2 : 	KDEC*0.25 	;
+{4484.} 	 METLBIPRO = TLFUONE + EGLYOX + HO2 : 	KDEC*0.167 	;
+{4485.} 	 METLBPR2OH + OH = METLBIPRO : 	1.19D-10 	;
+{4486.} 	 METLOBPROH + OH = C5CO14O2 + EGLYOX : 	8.27D-11 	;
+{4487.} 	 METLOBPROH = C5CO14O2 + EGLYOX + HO2 : 	J(22) 	;
+{4488.} 	 METLMUCCO3 + HO2 = C826CO3O2 + OH : 	KAPHO2*0.44 	;
+{4489.} 	 METLMUCCO3 + HO2 = METLMUCO2H + O3 : 	KAPHO2*0.15 	;
+{4490.} 	 METLMUCCO3 + HO2 = METLMUCO3H : 	KAPHO2*0.41 	;
+{4491.} 	 METLMUCCO3 + NO2 = C826CO3O2 + NO2 : 	KAPNO 	;
+{4492.} 	 METLMUCCO3 + NO2 = METLMUCPAN : 	KFPAN 	;
+{4493.} 	 METLMUCCO3 + NO3 = C826CO3O2 + NO2 : 	KRO2NO3*1.74 	;
+{4494.} 	 METLMUCCO3 = C826CO3O2 : 	1.00D-11*RO2*0.70 	;
+{4495.} 	 METLMUCCO3 = METLMUCO2H : 	1.00D-11*RO2*0.30 	;
+{4496.} 	 METLMUCO2 + HO2 = METLMUCOOH : 	KRO2HO2*0.890 	;
+{4497.} 	 METLMUCO2 + NO = METLMUCNO3 : 	KRO2NO*0.196 	;
+{4498.} 	 METLMUCO2 + NO = METLMUCO + NO2 : 	KRO2NO*0.804 	;
+{4499.} 	 METLMUCO2 + NO3 = METLMUCO + NO2 : 	KRO2NO3 	;
+{4500.} 	 METLMUCO2 = METLMUCCO : 	8.80D-12*RO2*0.20 	;
+{4501.} 	 METLMUCO2 = METLMUCO : 	8.80D-12*RO2*0.60 	;
+{4502.} 	 METLMUCO2 = METLMUCOH : 	8.80D-12*RO2*0.20 	;
+{4503.} 	 C826CO3O2 + HO2 = C826CO3OOH : 	KRO2HO2*0.859 	;
+{4504.} 	 C826CO3O2 + NO = C826CO3O + NO2 : 	KRO2NO 	;
+{4505.} 	 C826CO3O2 + NO3 = C826CO3O + NO2 : 	KRO2NO3 	;
+{4506.} 	 C826CO3O2 = C8236CO : 	8.80D-12*RO2*0.20 	;
+{4507.} 	 C826CO3O2 = C826CO3O : 	8.80D-12*RO2*0.60 	;
+{4508.} 	 C826CO3O2 = C826CO3OH : 	8.80D-12*RO2*0.20 	;
+{4509.} 	 MET1O + NO2 = MET1OHNO2 : 	2.08D-12 	;
+{4510.} 	 MET1O + O3 = MET1O2 : 	2.86D-13 	;
+{4511.} 	 METOLO2 + HO2 = METOLOOH : 	KRO2HO2*0.90 	;
+{4512.} 	 METOLO2 + NO = METOLO + NO2 : 	KRO2NO 	;
+{4513.} 	 METOLO2 + NO3 = METOLO + NO2 : 	KRO2NO3 	;
+{4514.} 	 METOLO2 = METOLO : 	8.00D-13*RO2*0.70 	;
+{4515.} 	 METOLO2 = METOLOH : 	8.00D-13*RO2*0.30 	;
+{4516.} 	 NMETOLO2 + HO2 = NMETOLOOH : 	KRO2HO2*0.90 	;
+{4517.} 	 NMETOLO2 + NO = NMETOLO + NO2 : 	KRO2NO 	;
+{4518.} 	 NMETOLO2 + NO3 = NMETOLO + NO2 : 	KRO2NO3 	;
+{4519.} 	 NMETOLO2 = NMETOLO : 	8.00D-13*RO2*0.70 	;
+{4520.} 	 NMETOLO2 = NMETOLOH : 	8.00D-13*RO2*0.30 	;
+{4521.} 	 METCATECH + NO3 = MTCATEC1O + HNO3 : 	2.01D-10 	;
+{4522.} 	 METCATECH + O3 = MTCATECOOA : 	2.81D-17 	;
+{4523.} 	 METCATECH + OH = MTCATEC1O : 	2.05D-10 	;
+{4524.} 	 PETLBPROOH + OH = PETLBIPRO2 : 	7.77D-11 	;
+{4525.} 	 PETLBPROOH = PETLBIPRO + OH : 	J(41) 	;
+{4526.} 	 PETLBIPNO3 + OH = PETLBIPRO + NO2 : 	7.27D-11 	;
+{4527.} 	 PETLBIPNO3 = PETLBIPRO + NO2 : 	J(55) 	;
+{4528.} 	 PETLBIPRO = C4MDIAL + EGLYOX + HO2 : 	KDEC*0.18 	;
+{4529.} 	 PETLBIPRO = C7EDICARB + GLYOX + HO2 : 	KDEC*0.64 	;
+{4530.} 	 PETLBIPRO = EBFUONE + MGLYOX + HO2 : 	KDEC*0.09 	;
+{4531.} 	 PETLBIPRO = TLFUONE + EGLYOX + HO2 : 	KDEC*0.09 	;
+{4532.} 	 PETLBPR2OH + OH = PETLBIPRO : 	1.13D-10 	;
+{4533.} 	 PETLMUCCO3 + HO2 = C7M6CO2O2 + OH : 	KAPHO2*0.44 	;
+{4534.} 	 PETLMUCCO3 + HO2 = PETLMUCO2H + O3 : 	KAPHO2*0.15 	;
+{4535.} 	 PETLMUCCO3 + HO2 = PETLMUCO3H : 	KAPHO2*0.41 	;
+{4536.} 	 PETLMUCCO3 + NO = C7M6CO2O2 + NO2 : 	KAPNO 	;
+{4537.} 	 PETLMUCCO3 + NO2 = PETLMUCPAN : 	KFPAN 	;
+{4538.} 	 PETLMUCCO3 + NO3 = C7M6CO2O2 + NO2 : 	KRO2NO3*1.74 	;
+{4539.} 	 PETLMUCCO3 = C7M6CO2O2 : 	1.00D-11*RO2*0.70 	;
+{4540.} 	 PETLMUCCO3 = PETLMUCO2H : 	1.00D-11*RO2*0.30 	;
+{4541.} 	 PETLMUCO2 + HO2 = PETLMUCOOH : 	KRO2HO2*0.890 	;
+{4542.} 	 PETLMUCO2 + NO = PETLMUCNO3 : 	KRO2NO*0.173 	;
+{4543.} 	 PETLMUCO2 + NO = PETLMUCO + NO2 : 	KRO2NO*0.827 	;
+{4544.} 	 PETLMUCO2 + NO3 = PETLMUCO + NO2 : 	KRO2NO3 	;
+{4545.} 	 PETLMUCO2 = PETLMUCCO : 	8.80D-12*RO2*0.2 	;
+{4546.} 	 PETLMUCO2 = PETLMUCO : 	8.80D-12*RO2*0.6 	;
+{4547.} 	 PETLMUCO2 = PETLMUCOH : 	8.80D-12*RO2*0.2 	;
+{4548.} 	 C7M6CO2O2 + HO2 = C7M6CO2OOH : 	KRO2HO2*0.859 	;
+{4549.} 	 C7M6CO2O2 + NO = C7M6CO2O + NO2 : 	KRO2NO 	;
+{4550.} 	 C7M6CO2O2 + NO3 = C7M6CO2O + NO2 : 	KRO2NO3 	;
+{4551.} 	 C7M6CO2O2 = C7M6CO2O : 	9.20D-14*RO2*0.70 	;
+{4552.} 	 C7M6CO2O2 = C7M6CO2OH : 	9.20D-14*RO2*0.30 	;
+{4553.} 	 NPETOLO2 + HO2 = NPETOLOOH : 	KRO2HO2*0.90 	;
+{4554.} 	 NPETOLO2 + NO = NPETOLO + NO2 : 	KRO2NO 	;
+{4555.} 	 NPETOLO2 + NO3 = NPETOLO + NO2 : 	KRO2NO3 	;
+{4556.} 	 NPETOLO2 = NPETOLO : 	8.00D-13*RO2*0.70 	;
+{4557.} 	 NPETOLO2 = NPETOLOH : 	8.00D-13*RO2*0.30 	;
+{4558.} 	 PET1O + NO2 = PET1OHNO2 : 	2.08D-12 	;
+{4559.} 	 PET1O + O3 = PET1O2 : 	2.86D-13 	;
+{4560.} 	 PETOLO2 + HO2 = PETOLOOH : 	KRO2HO2*0.90 	;
+{4561.} 	 PETOLO2 + NO = PETOLO + NO2 : 	KRO2NO 	;
+{4562.} 	 PETOLO2 + NO3 = PETOLO + NO2 : 	KRO2NO3 	;
+{4563.} 	 PETOLO2 = PETOLO : 	8.00D-13*RO2*0.70 	;
+{4564.} 	 PETOLO2 = PETOLOH : 	8.00D-13*RO2*0.30 	;
+{4565.} 	 PETCATECH + NO3 = PTCATEC1O + HNO3 : 	2.01D-10 	;
+{4566.} 	 PETCATECH + O3 = PTCATECOOA : 	2.81D-17 	;
+{4567.} 	 PETCATECH + OH = PTCATEC1O : 	2.05D-10 	;
+{4568.} 	 DM35EBOOH + OH = DMPHCOME + OH : 	2.05D-11 	;
+{4569.} 	 DM35EBOOH = DM35EBO + OH : 	J(41) 	;
+{4570.} 	 DM35EBNO3 + OH = DMPHCOME + NO2 : 	6.03D-12 	;
+{4571.} 	 DM35EBNO3 = DM35EBO + NO2 : 	J(54) 	;
+{4572.} 	 DM35EBO = DMPHCOME + HO2 : 	KROSEC*O2 	;
+{4573.} 	 DM35EBOH + OH = DMPHCOME + HO2 : 	8.93D-12 	;
+{4574.} 	 DMPHCOME + OH = DMPHCOMO2 : 	6.00D-12 	;
+{4575.} 	 DMPHCOME = TMBCO3 + CH3O2 : 	J(22) 	;
+{4576.} 	 DMEBPROOH + OH = DMEBIPRO2 : 	1.19D-10 	;
+{4577.} 	 DMEBPROOH = DMEBIPRO + OH : 	J(41) 	;
+{4578.} 	 DMEBIPNO3 + OH = DMEBIPRO + NO2 : 	9.57D-11 	;
+{4579.} 	 DMEBIPNO3 = DMEBIPRO + NO2 : 	J(54) 	;
+{4580.} 	 DMEBIPRO = C5MDICARB + EGLYOX + HO2 : 	KDEC*0.25 	;
+{4581.} 	 DMEBIPRO = C7DDICARB + MGLYOX + HO2 : 	KDEC*0.25 	;
+{4582.} 	 DMEBIPRO = MEBFUONE + MGLYOX + HO2 : 	KDEC*0.25 	;
+{4583.} 	 DMEBIPRO = MXYFUONE + EGLYOX + HO2 : 	KDEC*0.25 	;
+{4584.} 	 DMEBPR2OH + OH = DMEBIPRO : 	1.56D-10 	;
+{4585.} 	 DMEOBPROH + OH = C4MCODBCO3 + EGLYOX : 	1.01D-10 	;
+{4586.} 	 DMEOBPROH = C4MCODBCO3 + EGLYOX + HO2 : 	J(22) 	;
+{4587.} 	 DMEBMUCO3 + HO2 = C8M2CO6O2 + OH : 	KAPHO2*0.44 	;
+{4588.} 	 DMEBMUCO3 + HO2 = DMEBMUO2H + O3 : 	KAPHO2*0.15 	;
+{4589.} 	 DMEBMUCO3 + HO2 = DMEBMUO3H : 	KAPHO2*0.41 	;
+{4590.} 	 DMEBMUCO3 + NO = C8M2CO6O2 + NO2 : 	KAPNO 	;
+{4591.} 	 DMEBMUCO3 + NO2 = DMEBMUPAN : 	KFPAN 	;
+{4592.} 	 DMEBMUCO3 + NO3 = C8M2CO6O2 + NO2 : 	KRO2NO3*1.74 	;
+{4593.} 	 DMEBMUCO3 = C8M2CO6O2 : 	1.00D-11*RO2*0.70 	;
+{4594.} 	 DMEBMUCO3 = DMEBMUO2H : 	1.00D-11*RO2*0.30 	;
+{4595.} 	 EGLYOOD = C2H5CO3 + CO + OH : 	KDEC*0.89 	;
+{4596.} 	 EGLYOOD = EGLYOO : 	KDEC*0.11 	;
+{4597.} 	 DMEBMUCO2 + HO2 = DMEBMUOOH : 	KRO2HO2*0.914 	;
+{4598.} 	 DMEBMUCO2 + NO = DMEBMUCO + NO2 : 	KRO2NO*0.937 	;
+{4599.} 	 DMEBMUCO2 + NO = DMEBMUNO3 : 	KRO2NO*0.063 	;
+{4600.} 	 DMEBMUCO2 + NO3 = DMEBMUCO + NO2 : 	KRO2NO3 	;
+{4601.} 	 DMEBMUCO2 = DMEBMUCO : 	9.20D-14*RO2*0.70 	;
+{4602.} 	 DMEBMUCO2 = DMEBMUOH : 	9.20D-14*RO2*0.30 	;
+{4603.} 	 C8M2CO6O2 + HO2 = C8M2CO6OOH : 	KRO2HO2*0.890 	;
+{4604.} 	 C8M2CO6O2 + NO = C8M2CO6O + NO2 : 	KRO2NO 	;
+{4605.} 	 C8M2CO6O2 + NO3 = C8M2CO6O + NO2 : 	KRO2NO3 	;
+{4606.} 	 C8M2CO6O2 = C8M2CO6O : 	8.80D-11*RO2*0.60 	;
+{4607.} 	 C8M2CO6O2 = C8M2CO6OH : 	8.80D-11*RO2*0.20 	;
+{4608.} 	 C8M2CO6O2 = C8M3CO : 	8.80D-11*RO2*0.20 	;
+{4609.} 	 DMEPH1O + HO2 = DMEPHOH : 	1.00D-13 	;
+{4610.} 	 NDMEPHOLO2 + HO2 = NDMEPLOOH : 	KRO2HO2*0.914 	;
+{4611.} 	 NDMEPHOLO2 + NO = NDMEPHOLO + NO2 : 	KRO2NO 	;
+{4612.} 	 NDMEPHOLO2 + NO3 = NDMEPHOLO + NO2 : 	KRO2NO3 	;
+{4613.} 	 NDMEPHOLO2 = NDMEPHOLO : 	8.00D-13*RO2*0.70 	;
+{4614.} 	 NDMEPHOLO2 = NDMEPHOLOH : 	8.00D-13*RO2*0.30 	;
+{4615.} 	 DMEPHOLO2 + HO2 = DMEPHOLOOH : 	KRO2HO2*0.914 	;
+{4616.} 	 DMEPHOLO2 + NO = DMEPHOLO + NO2 : 	KRO2NO 	;
+{4617.} 	 DMEPHOLO2 + NO3 = DMEPHOLO + NO2 : 	KRO2NO3 	;
+{4618.} 	 DMEPHOLO2 = DMEPHOLO : 	8.00D-13*RO2*0.70 	;
+{4619.} 	 DMEPHOLO2 = DMEPHOLOH : 	8.00D-13*RO2*0.30 	;
+{4620.} 	 DE35TOOH + OH = EMPHCOME + OH : 	2.05D-11 	;
+{4621.} 	 DE35TOOH = DE35TO + OH : 	J(41) 	;
+{4622.} 	 DE35TNO3 + OH = EMPHCOME + NO2 : 	6.03D-12 	;
+{4623.} 	 DE35TNO3 = DE35TO + NO2 : 	J(54) 	;
+{4624.} 	 DE35TO = EMPHCOME + HO2 : 	KROSEC*O2 	;
+{4625.} 	 DE35TOH + OH = EMPHCOME + HO2 : 	8.93D-12 	;
+{4626.} 	 EMPHCOME + OH = EMPHCOMO2 : 	6.00D-12 	;
+{4627.} 	 EMPHCOME = EMPHCO3 + CH3O2 : 	J(22) 	;
+{4628.} 	 DEMPHSMS1O + HO2 = DEMPHOH : 	1.00D-13 	;
+{4629.} 	 NDEMPHOLO2 + HO2 = NDEMPLOOH : 	KRO2HO2*0.932 	;
+{4630.} 	 NDEMPHOLO2 + NO = NDEMPHOLO + NO2 : 	KRO2NO 	;
+{4631.} 	 NDEMPHOLO2 + NO3 = NDEMPHOLO + NO2 : 	KRO2NO3 	;
+{4632.} 	 NDEMPHOLO2 = NDEMPHOLO : 	8.00D-13*RO2*0.70 	;
+{4633.} 	 NDEMPHOLO2 = NDEMPHOLOH : 	8.00D-13*RO2*0.30 	;
+{4634.} 	 DEMPHOLO2 + HO2 = DEMPHOLOOH : 	KRO2HO2*0.932 	;
+{4635.} 	 DEMPHOLO2 + NO = DEMPHOLO + NO2 : 	KRO2NO 	;
+{4636.} 	 DEMPHOLO2 + NO3 = DEMPHOLO + NO2 : 	KRO2NO3 	;
+{4637.} 	 DEMPHOLO2 = DEMPHOLO : 	8.00D-13*RO2*0.70 	;
+{4638.} 	 DEMPHOLO2 = DEMPHOLOH : 	8.00D-13*RO2*0.30 	;
+{4639.} 	 DETLBPROOH + OH = DETLBIPRO2 : 	1.20D-10 	;
+{4640.} 	 DETLBPROOH = DETLBIPRO + OH : 	J(41) 	;
+{4641.} 	 DETLBIPNO3 + OH = DETLBIPRO + NO2 : 	9.67D-11 	;
+{4642.} 	 DETLBIPNO3 = DETLBIPRO + NO2 : 	J(54) 	;
+{4643.} 	 DETLBIPRO = C7DDICARB + EGLYOX + HO2 : 	KDEC*0.50 	;
+{4644.} 	 DETLBIPRO = MEBFUONE + EGLYOX + HO2 : 	KDEC*0.50 	;
+{4645.} 	 DETLBPR2OH + OH = DETLBIPRO : 	1.57D-10 	;
+{4646.} 	 DETLOBPROH + OH = C7CODBCO3 + MGLYOX : 	1.03D-10 	;
+{4647.} 	 DETLOBPROH = C7CODBCO3 + MGLYOX + HO2 : 	J(22) 	;
+{4648.} 	 DETLMUCO3 + HO2 = C9M2CO6O2 + OH : 	KAPHO2*0.44 	;
+{4649.} 	 DETLMUCO3 + HO2 = DETLMUO2H + O3 : 	KAPHO2*0.15 	;
+{4650.} 	 DETLMUCO3 + HO2 = DETLMUO3H : 	KAPHO2*0.41 	;
+{4651.} 	 DETLMUCO3 + NO = C9M2CO6O2 + NO2 : 	KAPNO 	;
+{4652.} 	 DETLMUCO3 + NO2 = DETLMUPAN : 	KFPAN 	;
+{4653.} 	 DETLMUCO3 + NO3 = C9M2CO6O2 + NO2 : 	KRO2NO3*1.74 	;
+{4654.} 	 DETLMUCO3 = C9M2CO6O2 : 	1.00D-11*RO2*0.70 	;
+{4655.} 	 DETLMUCO3 = DETLMUO2H : 	1.00D-11*RO2*0.30 	;
+{4656.} 	 EPXEALKT + NO3 = EPXEKTCO3 + HNO3 : 	KNO3AL*8.5 	;
+{4657.} 	 EPXEALKT + OH = EPXEKTCO3 : 	2.55D-11 	;
+{4658.} 	 EPXEALKT = C3EDIALO2 + CH3CO3 : 	J(22) 	;
+{4659.} 	 EPXEALKT = CO24C63O2 + HO2 + CO : 	J(17) 	;
+{4660.} 	 DETLMUCO2 + HO2 = DETLMUOOH : 	KRO2HO2*0.932 	;
+{4661.} 	 DETLMUCO2 + NO = DETLMUCO + NO2 : 	KRO2NO*0.934 	;
+{4662.} 	 DETLMUCO2 + NO = DETLMUNO3 : 	KRO2NO*0.066 	;
+{4663.} 	 DETLMUCO2 + NO3 = DETLMUCO + NO2 : 	KRO2NO3 	;
+{4664.} 	 DETLMUCO2 = DETLMUCO : 	9.20D-14*RO2*0.70 	;
+{4665.} 	 DETLMUCO2 = DETLMUOH : 	9.20D-14*RO2*0.30 	;
+{4666.} 	 C9M2CO6O2 + HO2 = C9M2CO6OOH : 	KRO2HO2*0.914 	;
+{4667.} 	 C9M2CO6O2 + NO = C9M2CO6O + NO2 : 	KRO2NO 	;
+{4668.} 	 C9M2CO6O2 + NO3 = C9M2CO6O + NO2 : 	KRO2NO3 	;
+{4669.} 	 C9M2CO6O2 = C9M2CO6O : 	8.80D-11*RO2*0.60 	;
+{4670.} 	 C9M2CO6O2 = C9M2CO6OH : 	8.80D-11*RO2*0.20 	;
+{4671.} 	 C9M2CO6O2 = C9M3CO : 	8.80D-11*RO2*0.20 	;
+{4672.} 	 OH + NSTYRENOOH = NSTYRENO2 : 	6.16D-11 	;
+{4673.} 	 NSTYRENEO = NO2 + HCHO + BENZAL : 	KDEC 	;
+{4674.} 	 PHCHOO + CO = BENZAL : 	1.20D-15 	;
+{4675.} 	 PHCHOO + NO = BENZAL + NO2 : 	1.00D-14 	;
+{4676.} 	 PHCHOO + NO2 = BENZAL + NO3 : 	1.00D-15 	;
+{4677.} 	 PHCHOO + SO2 = BENZAL + SO3 : 	7.00D-14 	;
+{4678.} 	 PHCHOO = BENZAL + H2O2 : 	6.00D-18*H2O 	;
+{4679.} 	 PHCHOO = PHCOOH : 	1.00D-17*H2O 	;
+{4680.} 	 OH + STYRENOOH = STYRENO2 : 	6.16D-11 	;
+{4681.} 	 STYRENOOH = STYRENO + OH : 	J(41) 	;
+{4682.} 	 STYRENO = HO2 + HCHO + BENZAL : 	KDEC 	;
+{4683.} 	 C6H5CO3H + OH = C6H5CO3 : 	4.66D-12 	;
+{4684.} 	 C6H5CO3H = C6H5O2 + OH : 	J(41) 	;
+{4685.} 	 PHCOOH + OH = C6H5O2 : 	1.10D-12 	;
+{4686.} 	 PBZN + OH = C6H5OOH + CO + NO2 : 	1.06D-12 	;
+{4687.} 	 PBZN = C6H5CO3 + NO2 : 	KBPAN*0.67 	;
+{4688.} 	 C6H5OOH + OH = C6H5O2 : 	3.60D-12 	;
+{4689.} 	 C6H5OOH = C6H5O + OH : 	J(41) 	;
+{4690.} 	 CH2CLOOH + OH = CH2CLO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{4691.} 	 CH2CLOOH + OH = CHOCL + OH : 	4.14D-12 	;
+{4692.} 	 CH2CLOOH = CH2CLO + OH : 	J(41) 	;
+{4693.} 	 CH2CLO = CHOCL + HO2 : 	KROPRIM*O2 	;
+{4694.} 	 CH2CLOH + OH = CHOCL + HO2 : 	1.08D-12 	;
+{4695.} 	 CHCL2OOH + OH = CHCL2O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{4696.} 	 CHCL2OOH + OH = COCL2 + OH : 	3.44D-12 	;
+{4697.} 	 CHCL2OOH = CHCL2O + OH : 	J(41) 	;
+{4698.} 	 CHCL2O = CHOCL + CL : 	KDEC 	;
+{4699.} 	 CHCL2OH + OH = COCL2 + HO2 : 	9.34D-13 	;
+{4700.} 	 COCL2 = CO + CL + CL : 	J(15) 	;
+{4701.} 	 CCL3OOH + OH = CCL3O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{4702.} 	 CCL3OOH = CCL3O + OH : 	J(41) 	;
+{4703.} 	 CCL3O = COCL2 + CL : 	KDEC 	;
+{4704.} 	 CCL3OH + OH = CCL3O : 	3.60D-14 	;
+{4705.} 	 CCL3CH2OOH + OH = CCL3CH2O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{4706.} 	 CCL3CH2OOH + OH = CCL3CHO + OH : 	9.80D-13 	;
+{4707.} 	 CCL3CH2OOH = CCL3CH2O + OH : 	J(41) 	;
+{4708.} 	 CCL3CH2O = CCL3CHO + HO2 : 	KROPRIM*O2 	;
+{4709.} 	 CCL3CH2OH + OH = CCL3CHO + HO2 : 	2.56D-12 	;
+{4710.} 	 CCL3CHO + NO3 = CCL3CO3 + HNO3 : 	KNO3AL 	;
+{4711.} 	 CCL3CHO + OH = CCL3CO3 : 	1.45D-12 	;
+{4712.} 	 CCL3CHO = CCL3O2 + HO2 + CO : 	J(11) 	;
+{4713.} 	 TCEOHOOH + OH = TCEOHO2 : 	3.63D-12 	;
+{4714.} 	 TCEOHOOH = TCEOHO + OH : 	J(41) 	;
+{4715.} 	 TCEOHO = COCL2 + COCL2 + HO2 : 	KDEC 	;
+{4716.} 	 TCE2OH + OH = TCEOHO : 	7.18D-14 	;
+{4717.} 	 C2CL3OHOOH + OH = C2CL3OHAO2 : 	3.84D-12 	;
+{4718.} 	 C2CL3OHOOH = C2CL3OHAO + OH : 	J(41) 	;
+{4719.} 	 C2CL3OHAO = COCL2 + CHOCL + HO2 : 	KDEC 	;
+{4720.} 	 C2CL32OH + OH = CCL2OHCOCL + HO2 : 	2.85D-13 	;
+{4721.} 	 C2CL3HOOOH + OH = C2CL3OHBO2 : 	4.44D-12 	;
+{4722.} 	 C2CL3HOOOH = C2CL3OHBO + OH : 	J(41) 	;
+{4723.} 	 C2CL3OHBO = COCL2 + CHOCL + HO2 : 	KDEC 	;
+{4724.} 	 CCL2OHCOCL + OH = COCL2 + CO + CL : 	3.59D-14 	;
+{4725.} 	 CCL2OHCOCL = COCL2 + CO + CL + HO2 : 	J(15) 	;
+{4726.} 	 C2CL2OHOOH + OH = C2CL2OHO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{4727.} 	 C2CL2OHOOH + OH = CCLOHCOCL + OH : 	6.54D-12 	;
+{4728.} 	 C2CL2OHOOH = C2CL2OHO + OH : 	J(41) 	;
+{4729.} 	 C2CL2OHO = CHOCL + CHOCL + HO2 : 	KDEC 	;
+{4730.} 	 C2CL2OH2 + OH = CCLOHCOCL + HO2 : 	2.77D-12 	;
+{4731.} 	 CCLOHCOCL + OH = CLGLYOX + HO2 : 	1.84D-12 	;
+{4732.} 	 CCLOHCOCL = CHOCL + CHOCL + HO2 : 	J(15) 	;
+{4733.} 	 DICLETO2H + OH = DICLETO2 : 	1.16D-11 	;
+{4734.} 	 DICLETO2H = DICLETO + OH : 	J(41) 	;
+{4735.} 	 DICLETO = CLETAL + CL : 	KDEC 	;
+{4736.} 	 CLETAL + NO3 = CLETO3 + HNO3 : 	KNO3AL 	;
+{4737.} 	 CLETAL + OH = CLETO3 : 	2.09D-11 	;
+{4738.} 	 CLETAL = CH2CLO2 + HO2 + CO : 	J(11) 	;
+{4739.} 	 DICLETOH + OH = DICLETO : 	3.75D-12 	;
+{4740.} 	 CH2OHCL2O2H + OH = CH2OHCL2O2 : 	4.91D-12 	;
+{4741.} 	 CH2OHCL2O2H = CH2OHCL2O + OH : 	J(41) 	;
+{4742.} 	 CH2OHCL2O = COCL2 + HCHO + HO2 : 	KDEC 	;
+{4743.} 	 CL2OHCH2OH + OH = CH2OHCL2O : 	1.46D-12 	;
+{4744.} 	 CL2OHCH2OH + OH = CL2OHCHO + HO2 : 	1.10D-12 	;
+{4745.} 	 CL2OHOOH + OH = CL2OHCH2O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{4746.} 	 CL2OHOOH + OH = CL2OHCHO + OH : 	6.55D-12 	;
+{4747.} 	 CL2OHOOH = CL2OHCH2O + OH : 	J(41) 	;
+{4748.} 	 CL2OHCH2O = HCHO + COCL2 + HO2 : 	KDEC 	;
+{4749.} 	 CL2OHCHO + NO3 = CL2OHCO3 + HNO3 : 	KNO3AL 	;
+{4750.} 	 CL2OHCHO + OH = CL2OHCO3 : 	6.18D-12 	;
+{4751.} 	 CL2OHCHO = COCL2 + HO2 + HO2 + CO : 	J(17) 	;
+{4752.} 	 CL12PRAOOH + OH = CL12PRAO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{4753.} 	 CL12PRAOOH + OH = CL12PRCHO + OH : 	6.87D-12 	;
+{4754.} 	 CL12PRAOOH = CL12PRAO + OH : 	J(41) 	;
+{4755.} 	 CL12PRAO = CL12PRCHO + HO2 : 	KROPRIM*O2 	;
+{4756.} 	 CL12PRAOH + OH = CL12PRCHO + HO2 : 	1.10D-12 	;
+{4757.} 	 CL12PRCHO + NO3 = CL12CO3 + HNO3 : 	KNO3AL*2.4 	;
+{4758.} 	 CL12PRCHO + OH = CL12CO3 : 	7.63D-12 	;
+{4759.} 	 CL12PRCHO = DICLETO2 + HO2 + CO : 	J(17) 	;
+{4760.} 	 CL12PRBOOH + OH = CL12PRBO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{4761.} 	 CL12PRBOOH = CL12PRBO + OH : 	J(41) 	;
+{4762.} 	 CL12PRBO = CH2CLCOCH3 + CL : 	KDEC 	;
+{4763.} 	 CL12PRBOH + OH = CL12PRBO : 	7.44D-13 	;
+{4764.} 	 CL12PRCOOH + OH = CH3CLCOCL + OH : 	6.08D-12 	;
+{4765.} 	 CL12PRCOOH + OH = CL12PRCO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{4766.} 	 CL12PRCOOH = CL12PRCO + OH : 	J(41) 	;
+{4767.} 	 CL12PRCO = CH3CLCOCL + HO2 : 	KROSEC*O2 	;
+{4768.} 	 CH3CLCOCL + OH = CLCOCLMEO2 : 	1.08D-12 	;
+{4769.} 	 CH3CLCOCL = CH3CHCLO2 + CO + CL : 	J(22) 	;
+{4770.} 	 CL12PRCOH + OH = CH3CLCOCL + HO2 : 	1.10D-12 	;
+{4771.} 	 CH3CCL2OOH + OH = CH3CCL2O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{4772.} 	 CH3CCL2OOH = CH3CCL2O + OH : 	J(41) 	;
+{4773.} 	 CH3CCL2O = CH3COCL + CL : 	KDEC 	;
+{4774.} 	 CH3CCL2OH + OH = CH3CCL2O : 	3.07D-13 	;
+{4775.} 	 CHCL2COOH + OH = CHCL2CH2O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{4776.} 	 CHCL2COOH + OH = CHCL2CHO + OH : 	9.64D-12 	;
+{4777.} 	 CHCL2COOH = CHCL2CH2O + OH : 	J(41) 	;
+{4778.} 	 CHCL2CH2O = CHCL2CHO + HO2 : 	KROPRIM*O2 	;
+{4779.} 	 CHCL2CHO + NO3 = CHCL2CO3 + HNO3 : 	KNO3AL 	;
+{4780.} 	 CHCL2CHO + OH = CHCL2CO3 : 	3.09D-11 	;
+{4781.} 	 CHCL2CHO = CHCL2O2 + HO2 + CO : 	J(17) 	;
+{4782.} 	 CHCL2CHOH + OH = CHCL2CHO + HO2 : 	1.10D-12 	;
+{4783.} 	 CH2CLCOOH + OH = CH2CLCH2O2 : 	1.9D-12*EXP(190/TEMP) 	;
+{4784.} 	 CH2CLCOOH + OH = CLETAL + OH : 	1.37D-11 	;
+{4785.} 	 CH2CLCOOH = CH2CLCH2O + OH : 	J(41) 	;
+{4786.} 	 CH2CLCH2O = CLETAL + HO2 : 	KROPRIM*O2 	;
+{4787.} 	 CH2CLCH2OH + OH = CLETAL + HO2 : 	4.60D-12 	;
+{4788.} 	 CH3CHCLOOH + OH = CH3CHCLO2 : 	1.9D-12*EXP(190/TEMP) 	;
+{4789.} 	 CH3CHCLOOH + OH = CH3COCL + OH : 	9.95D-12 	;
+{4790.} 	 CH3CHCLOOH = CH3CHCLO + OH : 	J(41) 	;
+{4791.} 	 CH3CHCLO = CH3CHO + CL : 	KDEC 	;
+{4792.} 	 CH3CHCLOH + OH = CH3COCL + HO2 : 	2.77D-12 	;
+{4793.} 	 CH3COCL + OH = CLCOCH2O2 : 	3.88D-14 	;
+{4794.} 	 CH3COCL = CH3CO3 + CL : 	J(22) 	;
+{4795.} 	 CCL2CL2OOH + OH = CHCL2CL2O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{4796.} 	 CCL2CL2OOH = CHCL2CL2O + OH : 	J(41) 	;
+{4797.} 	 CHCL2CL2O = CHCL2COCL + CL : 	KDEC 	;
+{4798.} 	 CHCL2CL2OH + OH = CHCL2CL2O : 	4.85D-13 	;
+{4799.} 	 CH2CL3OOH + OH = CH2CL3O2 : 	4.03D-12 	;
+{4800.} 	 CH2CL3OOH = CH2CL3O + OH : 	J(41) 	;
+{4801.} 	 CH2CL3O = CH2CLCOCL + CL : 	KDEC 	;
+{4802.} 	 CH2CL3OH + OH = CH2CL3O : 	5.77D-13 	;
+{4803.} 	 CH2CLCOCL + OH = CLCOCLO2 : 	6.26D-14 	;
+{4804.} 	 CH2CLCOCL = CH2CLO2 + CO + CL : 	J(22) 	;
+{4805.} 	 CHCL3OOH + OH = CHCL2CHO + OH : 	1.16D-11 	;
+{4806.} 	 CHCL3OOH + OH = CHCL3O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{4807.} 	 CHCL3OOH = CHCL3O + OH : 	J(41) 	;
+{4808.} 	 CHCL3O = CHCL2CHO + CL : 	KDEC 	;
+{4809.} 	 CHCL3OH + OH = CHCL3O : 	3.66D-12 	;
+{4810.} 	 CCLNO3COOH + OH = CCLNO3O2 : 	7.22D-12 	;
+{4811.} 	 CCLNO3COOH = CCLNO3CO + OH : 	J(41) 	;
+{4812.} 	 CCLNO3CO = CCLCONO3 + HO2 : 	KROPRIM*O2 	;
+{4813.} 	 CCLNO3CO = HCHO +CHOCL + NO2 : 	7.00D-03 	;
+{4814.} 	 CCLCONO3 + OH = CO + CHOCL + NO2 : 	7.33D-12 	;
+{4815.} 	 CCLCONO3 = CHOCL + CO + HO2 + NO2 : 	J(56)+J(57) 	;
+{4816.} 	 CCLCONO3 = HO2 +CO +  CHOCL + NO2 : 	J(15) 	;
+{4817.} 	 CCLNO3COH + OH = CCLCONO3 + HO2 : 	1.88D-12 	;
+{4818.} 	 CNO3CLOOH + OH = CNO3CLO2 : 	5.20D-12 	;
+{4819.} 	 CNO3CLOOH = CNO3CLO + OH : 	J(41) 	;
+{4820.} 	 CNO3CLO = CNO3OCL + HO2 : 	KROSEC*O2 	;
+{4821.} 	 CNO3CLO = NO2 + HCHO + CHOCL : 	7.00D-03 	;
+{4822.} 	 CNO3CLOH + OH = CCLOHCHO + NO2 : 	1.03D-12 	;
+{4823.} 	 CNO3OCL + OH = CL1GLYOX + NO2 : 	3.91D-13 	;
+{4824.} 	 CNO3OCL = CHCLOHCO + NO2 : 	J(56) 	;
+{4825.} 	 CNO3OCL = HCHO + CO + CL + NO2 : 	J(57) 	;
+{4826.} 	 CNO3OCL = HCHO + NO2 + CO + CL : 	J(15) 	;
+{4827.} 	 CHCLOO + CO = CHOCL : 	1.2D-15 	;
+{4828.} 	 CHCLOO + NO = CHOCL + NO2 : 	1.0D-14 	;
+{4829.} 	 CHCLOO + NO2 = CHOCL + NO3 : 	1.0D-15 	;
+{4830.} 	 CHCLOO + SO2 = CHOCL + SO3 : 	7.0D-14 	;
+{4831.} 	 CHCLOO = CHOCL + H2O2 : 	6D-18*H2O 	;
+{4832.} 	 CHCLOO = CLCO2H : 	1D-17*H2O 	;
+{4833.} 	 CCLOHCOOH + OH = CCLOHCH2O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{4834.} 	 CCLOHCOOH + OH = CCLOHCHO + OH : 	6.05D-12 	;
+{4835.} 	 CCLOHCOOH = CHCLOHCO + OH : 	J(41) 	;
+{4836.} 	 CHCLOHCO = HCHO + CHOCL + HO2 : 	KDEC 	;
+{4837.} 	 CCLOHCHO + NO3 = CCLOHCO3 + HNO3 : 	KNO3AL 	;
+{4838.} 	 CCLOHCHO + OH = CCLOHCO3 : 	8.80D-12 	;
+{4839.} 	 CCLOHCHO = CHCLOHCO + OH : 	J(15) 	;
+{4840.} 	 CH2OHCCLOH + OH = CCLOHCHO + HO2 : 	4.63D-12 	;
+{4841.} 	 COHCCLOOH + OH = CH2OHCCLO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{4842.} 	 COHCCLOOH + OH = CH2OHCOCL + OH : 	8.90D-12 	;
+{4843.} 	 COHCCLOOH = CH2OHCCLO + OH : 	J(41) 	;
+{4844.} 	 CH2OHCCLO = HCHO + CHOCL + HO2 : 	KDEC 	;
+{4845.} 	 CH2OHCOCL + OH = CL1GLYOX + HO2 : 	2.86D-12 	;
+{4846.} 	 CH2OHCOCL = HCHO + HO2 + CL + CO : 	J (15) 	;
+{4847.} 	 NBUTDAOOH = NBUTDAO + OH : 	J(41) 	;
+{4848.} 	 OH + NBUTDAOOH = NMVK + OH : 	4.87D-11 	;
+{4849.} 	 NBUTDAO = NMVK + HO2 : 	KROSEC*O2 	;
+{4850.} 	 OH + NBUTDAOH = HC3CCHO + NO2 : 	3.71D-11 	;
+{4851.} 	 NMVK = NO3CH2CO3 + HO2 + CO + HCHO : 	J(24) 	;
+{4852.} 	 OH + NMVK = HNMVKO2 : 	2.08D-11 	;
+{4853.} 	 NBUTDBOOH = NBUTDBO + OH : 	J(41) 	;
+{4854.} 	 OH + NBUTDBOOH = NC3CHO + OH : 	7.78D-11 	;
+{4855.} 	 NBUTDBNO3 = NBUTDBO + NO2 : 	J(53)*2.0 	;
+{4856.} 	 OH + NBUTDBNO3 = NC3CHO + NO2 : 	6.04D-11 	;
+{4857.} 	 NBUTDBO = NC3CHO + HO2 : 	KROPRIM*O2 	;
+{4858.} 	 BUTDANO3 = BUTDAO + NO2 : 	J(53) 	;
+{4859.} 	 OH + BUTDANO3 = HC3CHO + NO2 : 	6.39D-11 	;
+{4860.} 	 NC3CHO = CO + CO + HO2 + HO2 + NO3CH2CHO : 	J(15) 	;
+{4861.} 	 NO3 + NC3CHO = NC3CO3 + HNO3 : 	KNO3AL*2.0 	;
+{4862.} 	 O3 + NC3CHO = GLYOX + NAOOA : 	9.60D-18*0.5 	;
+{4863.} 	 O3 + NC3CHO = NO3CH2CHO + GLYOOA : 	9.60D-18*0.5 	;
+{4864.} 	 OH + NC3CHO = C42O2 : 	3.52D-11*0.43 	;
+{4865.} 	 OH + NC3CHO = NC3CO3 : 	3.52D-11*0.57 	;
+{4866.} 	 ACROO + CO = ACR : 	1.20D-15 	;
+{4867.} 	 ACROO + NO = ACR + NO2 : 	1.00D-14 	;
+{4868.} 	 ACROO + NO2 = ACR + NO3 : 	1.00D-15 	;
+{4869.} 	 ACROO + SO2 = ACR + SO3 : 	7.00D-14 	;
+{4870.} 	 ACROO = ACO2H : 	1.00D-17*H2O 	;
+{4871.} 	 ACROO = ACR + H2O2 : 	6.00D-18*H2O 	;
+{4872.} 	 BUTDAOOH = BUTDAO + OH : 	J(41) 	;
+{4873.} 	 OH + BUTDAOOH = HC3CHO + OH : 	8.14D-11 	;
+{4874.} 	 BUTDAO = HC3CHO + HO2 : 	8.40D+10*EXP(-3523/TEMP) 	;
+{4875.} 	 OH + BUTDAOH = HC3CHO + HO2 : 	7.10D-11 	;
+{4876.} 	 HC3CHO = HC3CO3 + HO2 : 	J(19) 	;
+{4877.} 	 HC3CHO = HOCH2CHO + HO2 + CO + HO2 + CO : 	J(18) 	;
+{4878.} 	 NO3 + HC3CHO = HC3CO3 + HNO3 : 	KNO3AL*2.4 	;
+{4879.} 	 O3 + HC3CHO = GLYOX + GAOOA : 	9.60D-18*0.5 	;
+{4880.} 	 O3 + HC3CHO = HOCH2CHO + GLYOOA : 	9.60D-18*0.5 	;
+{4881.} 	 OH + HC3CHO = C41O2 : 	3.87D-11*0.43 	;
+{4882.} 	 OH + HC3CHO = HC3CO3 : 	3.87D-11*0.57 	;
+{4883.} 	 BUTDBOOH = BUTDBO + OH : 	J(41) 	;
+{4884.} 	 OH + BUTDBOOH = MVKOH + OH : 	8.14D-11 	;
+{4885.} 	 OH + BUTDBNO3 = MVKOH + NO2 : 	3.59D-11 	;
+{4886.} 	 BUTDBO = ACR + HCHO + HO2 : 	KDEC 	;
+{4887.} 	 OH + BUTDBOH = MVKOH + HO2 : 	4.86D-11 	;
+{4888.} 	 MVKOH + O3 = HMGLOOA + HCHO : 	7.51D-16*EXP(-1521/TEMP)*0.5 	;
+{4889.} 	 MVKOH + O3 = HOCH2COCHO + CH2OOB : 	7.51D-16*EXP(-1521/TEMP)*0.5 	;
+{4890.} 	 MVKOH + OH = MVKOHAO2 : 	4.60D-12*EXP(452/TEMP)*0.3 	;
+{4891.} 	 MVKOH + OH = MVKOHBO2 : 	4.60D-12*EXP(452/TEMP)*0.7 	;
+{4892.} 	 MVKOH = ALLYLOH + CO : 	J(23) 	;
+{4893.} 	 MVKOH = HCHO + HO2 + HOCH2CO3 + CO : 	J(24) 	;
+{4894.} 	 BUTDCOOH = BUTDCO + OH : 	J(41) 	;
+{4895.} 	 OH + BUTDCOOH = HC3CCHO + OH : 	6.25D-11 	;
+{4896.} 	 BUTDCO = ACR + HCHO + HO2 : 	KDEC 	;
+{4897.} 	 HC3CCHO = ACR + CO + HO2 + HO2 : 	J(15) 	;
+{4898.} 	 NO3 + HC3CCHO = HC3CCO3 + HNO3 : 	KNO3AL*4.0 	;
+{4899.} 	 OH + HC3CCHO = HC3CCO3 : 	6.14D-11 	;
+{4900.} 	 NISOPOOH = NISOPO + OH : 	J(41) 	;
+{4901.} 	 OH + NISOPOOH = NC4CHO + OH : 	1.03D-10 	;
+{4902.} 	 NISOPNO3 = NISOPO + NO2 : 	J(53)*2.0 	;
+{4903.} 	 OH + NISOPNO3 = NC4CHO + NO2 : 	8.55D-11 	;
+{4904.} 	 NISOPO = NC4CHO + HO2 : 	KROPRIM*O2 	;
+{4905.} 	 ISOPCNO3 = ISOPCO + NO2 : 	J(53) 	;
+{4906.} 	 O3 + ISOPCNO3 = GAOOB + NOA : 	5.30D-17*0.5 	;
+{4907.} 	 O3 + ISOPCNO3 = HOCH2CHO + NC3OOA : 	5.30D-17*0.5 	;
+{4908.} 	 OH + ISOPCNO3 = INCO2 : 	6.93D-11 	;
+{4909.} 	 NC4CHO = NOA + CO + CO + HO2 + HO2 : 	J(18) 	;
+{4910.} 	 NO3 + NC4CHO = NC4CO3 + HNO3 : 	KNO3AL*4.25 	;
+{4911.} 	 O3 + NC4CHO = NOA + GLYOOC : 	2.40D-17*0.5 	;
+{4912.} 	 O3 + NC4CHO = NOAOOA + GLYOX : 	2.40D-17*0.5 	;
+{4913.} 	 OH + NC4CHO = C510O2 : 	4.16D-11*0.52 	;
+{4914.} 	 OH + NC4CHO = NC4CO3 : 	4.16D-11*0.48 	;
+{4915.} 	 MGLOOA = CH3CHO : 	KDEC*0.20 	;
+{4916.} 	 MGLOOA = CH3CO3 + HCHO + HO2 : 	KDEC*0.20 	;
+{4917.} 	 MGLOOA = MGLOO : 	KDEC*0.24 	;
+{4918.} 	 MGLOOA = OH + CO + CH3CO3 : 	KDEC*0.36 	;
+{4919.} 	 HMVKAO2 + HO2 = HMVKAOOH : 	KRO2HO2*0.625 	;
+{4920.} 	 HMVKAO2 + NO = HMVKANO3 : 	KRO2NO*0.017 	;
+{4921.} 	 HMVKAO2 + NO = HMVKAO + NO2 : 	KRO2NO*0.983 	;
+{4922.} 	 HMVKAO2 + NO3 = HMVKAO + NO2 : 	KRO2NO3 	;
+{4923.} 	 HMVKAO2 = CO2H3CHO : 	2.00D-12*0.2*RO2 	;
+{4924.} 	 HMVKAO2 = HMVKAO : 	2.00D-12*0.6*RO2 	;
+{4925.} 	 HMVKAO2 = HO12CO3C4 : 	2.00D-12*0.2*RO2 	;
+{4926.} 	 HMVKBO2 + HO2 = HMVKBOOH : 	KRO2HO2*0.625 	;
+{4927.} 	 HMVKBO2 + NO = HMVKBO + NO2 : 	KRO2NO 	;
+{4928.} 	 HMVKBO2 + NO3 = HMVKBO + NO2 : 	KRO2NO3 	;
+{4929.} 	 HMVKBO2 = BIACETOH : 	8.80D-13*0.2*RO2 	;
+{4930.} 	 HMVKBO2 = HMVKBO : 	8.80D-13*0.6*RO2 	;
+{4931.} 	 HMVKBO2 = HO12CO3C4 : 	8.80D-13*0.2*RO2 	;
+{4932.} 	 MACROO + CO = MACR : 	1.2D-15 	;
+{4933.} 	 MACROO + NO = MACR + NO2 : 	1.0D-14 	;
+{4934.} 	 MACROO + NO2 = MACR + NO3 : 	1.0D-15 	;
+{4935.} 	 MACROO + SO2 = MACR + SO3 : 	7.0D-14 	;
+{4936.} 	 MACROO = MACO2H : 	1.0D-17*H2O 	;
+{4937.} 	 MACROO = MACR + H2O2 : 	6.0D-18*H2O 	;
+{4938.} 	 MVKOO + CO = MVK : 	1.2D-15 	;
+{4939.} 	 MVKOO + NO = MVK + NO2 : 	1.0D-14 	;
+{4940.} 	 MVKOO + NO2 = MVK + NO3 : 	1.0D-15 	;
+{4941.} 	 MVKOO + SO2 = MVK + SO3 : 	7.0D-14 	;
+{4942.} 	 MVKOO = MVK + H2O2 : 	6.0D-18*H2O 	;
+{4943.} 	 MVKO2 + HO2 = MVKOOH : 	KRO2HO2*0.625 	;
+{4944.} 	 MVKO2 + NO = MVKO + NO2 : 	KRO2NO 	;
+{4945.} 	 MVKO2 + NO3 = MVKO + NO2 : 	KRO2NO3 	;
+{4946.} 	 MVKO2 = MVKO : 	2.00D-12*0.6*RO2 	;
+{4947.} 	 MVKO2 = MVKOH : 	2.00D-12*0.2*RO2 	;
+{4948.} 	 MVKO2 = VGLYOX : 	2.00D-12*0.2*RO2 	;
+{4949.} 	 ISOPAOOH = ISOPAO + OH : 	J(41) 	;
+{4950.} 	 OH + ISOPAOOH = HC4ACHO + OH : 	1.54D-10*0.05 	;
+{4951.} 	 OH + ISOPAOOH = IEPOXA + OH : 	1.54D-10*0.93 	;
+{4952.} 	 OH + ISOPAOOH = ISOPAO2 : 	1.54D-10*0.02 	;
+{4953.} 	 ISOPANO3 = ISOPAO + NO2 : 	J(53) 	;
+{4954.} 	 O3 + ISOPANO3 = ACETOL + NC2OOA : 	5.30D-17*0.5 	;
+{4955.} 	 O3 + ISOPANO3 = ACLOOA + NO3CH2CHO : 	5.30D-17*0.5 	;
+{4956.} 	 OH + ISOPANO3 = INAO2 : 	6.93D-11 	;
+{4957.} 	 ISOPAO = C524O2 : 	KDEC*0.25 	;
+{4958.} 	 ISOPAO = HC4CCHO + HO2 : 	KDEC*0.75 	;
+{4959.} 	 HC4ACHO = ACETOL + HO2 + HO2 + CO + CO : 	J(18) 	;
+{4960.} 	 HC4ACHO = HC4ACO3 + HO2 : 	J(19) 	;
+{4961.} 	 NO3 + HC4ACHO = HC4ACO3 + HNO3 : 	KNO3AL*4.25 	;
+{4962.} 	 O3 + HC4ACHO = ACETOL + GLYOOC : 	2.40D-17*0.5 	;
+{4963.} 	 O3 + HC4ACHO = ACLOOA + GLYOX : 	2.40D-17*0.5 	;
+{4964.} 	 OH + HC4ACHO = C58O2 : 	4.52D-11*0.52 	;
+{4965.} 	 OH + HC4ACHO = HC4ACO3 : 	4.52D-11*0.48 	;
+{4966.} 	 OH + ISOPAOH = HC4ACHO + HO2 : 	9.30D-11*0.5 	;
+{4967.} 	 OH + ISOPAOH = HC4CCHO + HO2 : 	9.30D-11*0.5 	;
+{4968.} 	 ISOPBOOH = ISOPBO + OH : 	J(41) 	;
+{4969.} 	 OH + ISOPBOOH = IEPOXB + OH : 	5.00D-11*0.92 	;
+{4970.} 	 OH + ISOPBOOH = ISOPBO2 : 	5.00D-11*0.08 	;
+{4971.} 	 ISOPBNO3 = ISOPBO + NO2 : 	J(55) 	;
+{4972.} 	 O3 + ISOPBNO3 = HCHO + MACRNOOA : 	1.06D-16*0.50 	;
+{4973.} 	 O3 + ISOPBNO3 = MACRNO3 + CH2OOB : 	1.06D-16*0.50 	;
+{4974.} 	 OH + ISOPBNO3 = INB1O2 : 	1.36D-11*0.72 	;
+{4975.} 	 OH + ISOPBNO3 = INB2O2 : 	1.36D-11*0.28 	;
+{4976.} 	 ISOPBO = MVK + HCHO + HO2 : 	KDEC 	;
+{4977.} 	 OH + ISOPBOH = ISOPBO : 	3.85D-11 	;
+{4978.} 	 ISOPCOOH = ISOPCO + OH : 	J(41) 	;
+{4979.} 	 OH + ISOPCOOH = HC4CCHO + OH : 	1.54D-10*0.05 	;
+{4980.} 	 OH + ISOPCOOH = IEPOXC + OH : 	1.54D-10*0.93 	;
+{4981.} 	 OH + ISOPCOOH = ISOPCO2 : 	1.54D-10*0.02 	;
+{4982.} 	 ISOPCO = HC4ACHO + HO2 : 	KDEC*0.75 	;
+{4983.} 	 ISOPCO = HC4CCHO + HO2 : 	KDEC*0.25 	;
+{4984.} 	 HC4CCHO = CH3CO3 + HO2 + CO + HOCH2CHO : 	J(18) 	;
+{4985.} 	 HC4CCHO = HC4CCO3 + HO2 : 	J(19) 	;
+{4986.} 	 NO3 + HC4CCHO = HC4CCO3 + HNO3 : 	KNO3AL*4.25 	;
+{4987.} 	 O3 + HC4CCHO = MGLYOOA + HOCH2CHO : 	2.40D-17*0.5 	;
+{4988.} 	 O3 + HC4CCHO = MGLYOX + GAOOB : 	2.40D-17*0.5 	;
+{4989.} 	 OH + HC4CCHO = C57O2 : 	4.52D-11*0.52 	;
+{4990.} 	 OH + HC4CCHO = HC4CCO3 : 	4.52D-11*0.48 	;
+{4991.} 	 ISOPDOOH = ISOPDO + OH : 	J(41) 	;
+{4992.} 	 OH + ISOPDOOH = HCOC5 + OH : 	1.15D-10*0.22 	;
+{4993.} 	 OH + ISOPDOOH = IEPOXB + OH : 	1.15D-10*0.75 	;
+{4994.} 	 OH + ISOPDOOH = ISOPDO2 : 	1.15D-10*0.03 	;
+{4995.} 	 ISOPDNO3 = ISOPDO + NO2 : 	J(54) 	;
+{4996.} 	 O3 + ISOPDNO3 = CH2OOC + MVKNO3 : 	1.06D-16*0.50 	;
+{4997.} 	 O3 + ISOPDNO3 = HCHO + NC4OOA : 	1.06D-16*0.50 	;
+{4998.} 	 OH + ISOPDNO3 = INDO2 : 	2.54D-11 	;
+{4999.} 	 ISOPDO = MACR + HCHO + HO2 : 	KDEC 	;
+{5000.} 	 HCOC5 = CH3CO3 + HCHO + HOCH2CO3 : 	J(24) 	;
+{5001.} 	 OH + HCOC5 = C59O2 : 	3.81D-11 	;
+{5002.} 	 OH + ISOPDOH = HCOC5 + HO2 : 	7.38D-11 	;
+{5003.} 	 CHOOCH2OOH + OH = CHOOCH2O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{5004.} 	 CHOOCH2OOH + OH = CHOOCHO + OH : 	1.63D-11 	;
+{5005.} 	 CHOOCH2OOH = CHOOCH2O + OH : 	J(41) 	;
+{5006.} 	 CHOOCH2NO3 + OH = CHOOCHO + NO2 : 	2.26D-13 	;
+{5007.} 	 CHOOCH2NO3 = CHOOCH2O + NO2 : 	J(53) 	;
+{5008.} 	 CHOOCH2O = CHOOCHO + HO2 : 	KROPRIM*O2 	;
+{5009.} 	 CHOOCH2O = HCOOH + HO2 + CO : 	2.00D+14*EXP(-6850/TEMP) 	;
+{5010.} 	 CHOOCH2OH + OH = CHOOCHO + HO2 : 	4.31D-12 	;
+{5011.} 	 CHOOCHO + OH = HO2 + CO : 	1.80D-13 	;
+{5012.} 	 METACETHO + OH = CH3CO3 : 	9.82D-11 	;
+{5013.} 	 METACETO2H + OH = METACETHO + OH : 	6.65D-11 	;
+{5014.} 	 METACETO2H + OH = METHACETO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{5015.} 	 METACETO2H = METHACETO + OH : 	J(41) 	;
+{5016.} 	 METACETNO3 + OH = METACETHO + NO2 : 	2.26D-13 	;
+{5017.} 	 METACETNO3 = METHACETO + NO2 : 	J(53) 	;
+{5018.} 	 METHACETO = HCHO + CH3O2 : 	KDEC 	;
+{5019.} 	 METACETOH + OH = METACETHO + HO2 : 	1.74D-11 	;
+{5020.} 	 MOCOCH2OOH + OH = MOCOCH2O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{5021.} 	 MOCOCH2OOH + OH = MOXYCOCHO + OH : 	9.22D-12 	;
+{5022.} 	 MOCOCH2OOH = MOCOCH2O + OH : 	J(41) 	;
+{5023.} 	 MOCOCH2O = CH3O2 : 	KDEC 	;
+{5024.} 	 MOXCOCH2OH + OH = MOXYCOCHO + HO2 : 	2.52D-13 	;
+{5025.} 	 MOXYCOCHO + OH = CHOCOMOXO2 : 	2.16D-13 	;
+{5026.} 	 MOXYCOCHO = HO2 + CO + CH3O2 : 	J(34) 	;
+{5027.} 	 ACEC2H4OOH + OH = ACETC2H4O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{5028.} 	 ACEC2H4OOH + OH = ACETETCHO + OH : 	1.57D-11 	;
+{5029.} 	 ACEC2H4OOH = ACETC2H4O + OH : 	J(41) 	;
+{5030.} 	 ACEC2H4NO3 + OH = ACETETCHO + NO2 : 	5.72D-13 	;
+{5031.} 	 ACEC2H4NO3 = ACETC2H4O + NO2 : 	J(53) 	;
+{5032.} 	 ACETC2H4O = ACETETCHO + HO2 : 	KROPRIM*O2 	;
+{5033.} 	 ACETETCHO + NO3 = HNO3 + ACETMECO3 : 	KNO3AL*4.0 	;
+{5034.} 	 ACETETCHO + OH = ACETMECO3 : 	2.18D-11 	;
+{5035.} 	 ACETETCHO = HO2 + CO + METHACETO2 : 	J(15) 	;
+{5036.} 	 ETACETOH + OH = ACETETCHO + HO2 : 	5.34D-12 	;
+{5037.} 	 EOCOCH2OOH + OH = EOCOCH2O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{5038.} 	 EOCOCH2OOH + OH = EOCOCHO + OH : 	1.07D-11 	;
+{5039.} 	 EOCOCH2OOH = EOCOCH2O + OH : 	J(41) 	;
+{5040.} 	 EOCOCH2O = C2H5O2 : 	KDEC 	;
+{5041.} 	 EOCOCHO + NO3 = C2H5O2 + CO + HNO3 : 	KNO3AL*4.0 	;
+{5042.} 	 EOCOCHO + OH = C2H5O2 + CO : 	1.42D-11 	;
+{5043.} 	 EOCOCHO = C2H5O2 + CO + HO2 : 	J(34) 	;
+{5044.} 	 EOX2COMEOH + OH = HOACETETO2 : 	1.48D-12 	;
+{5045.} 	 ETHACETOOH + OH = ETHACETO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{5046.} 	 ETHACETOOH + OH = METHCOACET + OH : 	3.59D-11 	;
+{5047.} 	 ETHACETOOH = ETHACETO + OH : 	J(41) 	;
+{5048.} 	 METHCOACET + OH = MECOACETO2 : 	1.00D-14 	;
+{5049.} 	 ETACETNO3 + OH = METHCOACET + NO2 : 	5.37D-13 	;
+{5050.} 	 ETACETNO3 = ETHACETO + NO2 : 	J(54) 	;
+{5051.} 	 ETHACETO = CH3CHO + CH3O2 : 	KDEC 	;
+{5052.} 	 ETHACETOH + OH = METHCOACET + HO2 : 	9.55D-12 	;
+{5053.} 	 NPRACAOOH + OH = ACEPROPONE + OH : 	3.75D-11 	;
+{5054.} 	 NPRACAOOH + OH = NPROACEAO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{5055.} 	 NPRACAOOH = NPROACEAO + OH : 	J(41) 	;
+{5056.} 	 NPRACANO3 + OH = ACEPROPONE + NO2 : 	2.00D-12 	;
+{5057.} 	 NPRACANO3 = NPROACEAO + NO2 : 	J(54) 	;
+{5058.} 	 NPROACEAO = ACEPROPONE + HO2 : 	KROSEC*O2 	;
+{5059.} 	 NPROACEAO = METHACETO2 + CH3CHO : 	2.70D+14*EXP(-7398/TEMP) 	;
+{5060.} 	 ACEPROPONE + OH = ACPRONEO2 : 	1.06D-12 	;
+{5061.} 	 ACEPROPONE = METHACETO2 + CH3CO3 : 	J(22) 	;
+{5062.} 	 NPRACAOH + OH = ACEPROPONE + HO2 : 	9.87D-12 	;
+{5063.} 	 NPRACBOOH + OH = NPROACEBO2 : 	5.09D-11 	;
+{5064.} 	 NPRACBOOH = NPROACEBO + OH : 	J(41) 	;
+{5065.} 	 NPRACBNO3 + OH = ACETCOC2H5 + NO2 : 	3.03D-12 	;
+{5066.} 	 NPRACBNO3 = NPROACEBO + NO2 : 	J(54) 	;
+{5067.} 	 NPROACEBO = C2H5CHO + CH3O2 : 	KDEC 	;
+{5068.} 	 ACETCOC2H5 + OH = ACCOETO2 : 	1.86D-13 	;
+{5069.} 	 NPRACBOH + OH = ACETCOC2H5 + HO2 : 	1.33D-11 	;
+{5070.} 	 NPRACCOOH + OH = NPROACECO2 : 	2.07D-11 	;
+{5071.} 	 NPRACCOOH = NPROACECO + OH : 	J(41) 	;
+{5072.} 	 NPRACCNO3 + OH = ACEC2CHO + NO2 : 	2.14D-12 	;
+{5073.} 	 NPRACCNO3 = NPROACECO + NO2 : 	J(53) 	;
+{5074.} 	 NPROACECO = ACEC2CHO + HO2 : 	KROPRIM*O2 	;
+{5075.} 	 ACEC2CHO + NO3 = ACETC2CO3 + HNO3 : 	KNO3AL*5.5 	;
+{5076.} 	 ACEC2CHO + OH = ACETC2CO3 : 	2.72D-11 	;
+{5077.} 	 ACEC2CHO = ACETC2H4O2 + HO2 + CO : 	J(15) 	;
+{5078.} 	 NPRACCOH + OH = ACEC2CHO + HO2 : 	6.73D-12 	;
+{5079.} 	 IPRACBOOH + OH = IPRACBCHO + OH : 	1.78D-11 	;
+{5080.} 	 IPRACBOOH + OH = IPRACBO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{5081.} 	 IPRACBOOH = IPRACBO + OH : 	J(41) 	;
+{5082.} 	 IPRACBNO3 + OH = IPRACBCHO + NO2 : 	1.21D-12 	;
+{5083.} 	 IPRACBNO3 = IPRACBO + NO2 : 	J(53) 	;
+{5084.} 	 IPRACBO = IPRACBCHO + HO2 : 	KROPRIM*O2 	;
+{5085.} 	 IPRACBCHO + NO3 = IPRACBCO3 + HNO3 : 	KNO3AL*8.5 	;
+{5086.} 	 IPRACBCHO + OH = IPRACBCO3 : 	2.35D-11 	;
+{5087.} 	 IPRACBCHO = ETHACETO2 + HO2 + CO : 	J(17) 	;
+{5088.} 	 IPRACBOH + OH = IPRACBCHO + HO2 : 	7.44D-12 	;
+{5089.} 	 IPRACOOH + OH = IPROACETO2 : 	3.96D-12 	;
+{5090.} 	 IPRACOOH = IPROACETO + OH : 	J(41) 	;
+{5091.} 	 IPRACNO3 + OH = CH3COCH3 + HCHO + NO2 : 	8.64D-14 	;
+{5092.} 	 IPRACNO3 = IPROACETO + NO2 : 	J(55) 	;
+{5093.} 	 IPROACETO = CH3COCH3 + CH3O2 : 	KDEC 	;
+{5094.} 	 IPRACOH + OH = IPROACETO : 	4.07D-13 	;
+{5095.} 	 NBUACAOOH + OH = ACEBUTONE + OH : 	3.39D-11 	;
+{5096.} 	 NBUACAOOH + OH = NBUACETAO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{5097.} 	 NBUACAOOH = NBUACETAO + OH : 	J(41) 	;
+{5098.} 	 NBUACANO3 + OH = ACEBUTONE + NO2 : 	2.41D-12 	;
+{5099.} 	 NBUACANO3 = NBUACETAO + NO2 : 	J(54) 	;
+{5100.} 	 NBUACETAO = ACEBUTONE + HO2 : 	KROSEC*O2 	;
+{5101.} 	 NBUACETAO = ACETC2H4O2 + CH3CHO : 	2.70D+14*EXP(-7398/TEMP) 	;
+{5102.} 	 ACEBUTONE + OH = ACBUONEAO2 : 	2.55D-12 	;
+{5103.} 	 ACEBUTONE = ACETC2H4O2 + CH3CO3 : 	J(22) 	;
+{5104.} 	 NBUACAOH + OH = ACEBUTONE + HO2 : 	1.13D-11 	;
+{5105.} 	 NBUACBOOH + OH = ACEBUTBONE + OH : 	4.25D-11 	;
+{5106.} 	 NBUACBOOH + OH = NBUACETBO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{5107.} 	 NBUACBOOH = NBUACETBO + OH : 	J(41) 	;
+{5108.} 	 NBUACBNO3 + OH = ACEBUTBONE + NO2 : 	1.36D-12 	;
+{5109.} 	 NBUACBNO3 = NBUACETBO + NO2 : 	J(54) 	;
+{5110.} 	 NBUACETBO = ACEBUTBONE + HO2 : 	KROSEC*O2 	;
+{5111.} 	 NBUACETBO = METHACETO2 + C2H5CHO : 	2.70D+14*EXP(-7398/TEMP) 	;
+{5112.} 	 ACEBUTBONE + OH = ACBUONEBO2 : 	2.23D-12 	;
+{5113.} 	 ACEBUTBONE = METHACETO2 + C2H5CO3 : 	J(22) 	;
+{5114.} 	 NBUACBOH + OH = ACEBUTBONE + HO2 : 	1.33D-11 	;
+{5115.} 	 NBUACCOOH + OH = ACETCOC3H7 + OH : 	4.87D-11 	;
+{5116.} 	 NBUACCOOH + OH = NBUACETCO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{5117.} 	 NBUACCOOH = NBUACETCO + OH : 	J(41) 	;
+{5118.} 	 NBUACCNO3 + OH = ACETCOC3H7 + NO2 : 	2.23D-12 	;
+{5119.} 	 NBUACCNO3 = NBUACETCO + NO2 : 	J(54) 	;
+{5120.} 	 NBUACETCO = C3H7CHO + CH3O2 : 	KDEC 	;
+{5121.} 	 ACETCOC3H7 + OH = ACCOC3H6O2 : 	3.88D-12 	;
+{5122.} 	 NBUACCOH + OH = ACETCOC3H7 + HO2 : 	1.47D-11 	;
+{5123.} 	 SBUACAOOH + OH = SBUACETAO2 : 	5.04D-12 	;
+{5124.} 	 SBUACAOOH = SBUACETAO + OH : 	J(41) 	;
+{5125.} 	 SBUACANO3 + OH = METHCOACET + CH3CHO + NO2 : 	4.80D-13 	;
+{5126.} 	 SBUACANO3 = SBUACETAO + NO2 : 	J(55) 	;
+{5127.} 	 SBUACETAO = MEK + CH3O2 : 	KDEC 	;
+{5128.} 	 SBUACAOH + OH = SBUACETAO : 	1.49D-12 	;
+{5129.} 	 SBUACBOOH + OH = SBUACEONE + OH : 	3.46D-11 	;
+{5130.} 	 SBUACBOOH + OH = SBUACETBO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{5131.} 	 SBUACBOOH = SBUACETBO + OH : 	J(41) 	;
+{5132.} 	 SBUACBNO3 + OH = SBUACEONE + NO2 : 	4.00D-12 	;
+{5133.} 	 SBUACBNO3 = SBUACETBO + NO2 : 	J(54) 	;
+{5134.} 	 SBUACETBO = ETHACETO2 + CH3CHO : 	2.70D+14*EXP(-7197/TEMP) 	;
+{5135.} 	 SBUACETBO = SBUACEONE + HO2 : 	KROSEC*O2 	;
+{5136.} 	 SBUACBOH + OH = SBUACEONE + HO2 : 	1.20D-11 	;
+{5137.} 	 SBUACEONE + OH = SBUACONEO2 : 	2.83D-12 	;
+{5138.} 	 SBUACEONE = ETHACETO2 + CH3CO3 : 	J(22) 	;
+{5139.} 	 MCOOTBOOH + OH = MCOOTBO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{5140.} 	 MCOOTBOOH + OH = TBUACCO + OH : 	1.45D-11 	;
+{5141.} 	 MCOOTBOOH = MCOOTBO + OH : 	J(41) 	;
+{5142.} 	 MCOOTBNO3 + OH = TBUACCO + NO2 : 	5.66D-13 	;
+{5143.} 	 MCOOTBNO3 = MCOOTBO + NO2 : 	J(53) 	;
+{5144.} 	 MCOOTBO = IPROACETO2 + HCHO : 	KDEC 	;
+{5145.} 	 TBUACCO + NO3 = TBUACCO3 + HNO3 : 	KNO3AL*8.5 	;
+{5146.} 	 TBUACCO + OH = TBUACCO3 : 	2.24D-11 	;
+{5147.} 	 TBUACCO = HO2 + CO + IPROACETO2 : 	J(15) 	;
+{5148.} 	 TBUACOH + OH = TBUACCO + HO2 : 	4.08D-12 	;
+{5149.} 	 BOCOCH2OOH + OH = TBOCOCH2O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{5150.} 	 BOCOCH2OOH + OH = TBOCOCHO + OH : 	9.49D-12 	;
+{5151.} 	 BOCOCH2OOH = TBOCOCH2O + OH : 	J(41) 	;
+{5152.} 	 TBOCOCH2O = TC4H9O2 : 	KDEC 	;
+{5153.} 	 TBOCOCH2OH + OH = TBOCOCHO + HO2 : 	3.06D-12 	;
+{5154.} 	 TBOCOCHO + NO3 = TC4H9O2 + CO + HNO3 : 	KNO3AL*8.5 	;
+{5155.} 	 TBOCOCHO + OH = TC4H9O2 + CO : 	1.30D-11 	;
+{5156.} 	 TBOCOCHO = TC4H9O2 + CO + HO2 : 	J(34) 	;
+{5157.} 	 CH3OCH2OOH + OH = CH3OCHO + OH : 	7.10D-11 	;
+{5158.} 	 CH3OCH2OOH = CH3OCH2O + OH : 	J(41) 	;
+{5159.} 	 CH3OCH2NO3 + OH = CH3OCHO + NO2 : 	1.80D-12 	;
+{5160.} 	 CH3OCH2NO3 = CH3OCH2O + NO2 : 	J(53) 	;
+{5161.} 	 CH3OCH2O = CH3OCHO + HO2 : 	KROPRIM*O2 	;
+{5162.} 	 CH3OCH2OH + OH = CH3OCHO + HO2 : 	1.83D-11 	;
+{5163.} 	 DIETETOOH + OH = ETHACET + OH : 	1.54D-10 	;
+{5164.} 	 DIETETOOH = DIETETO + OH : 	J(41) 	;
+{5165.} 	 DIETETNO3 + OH = ETHACET + NO2 : 	7.74D-12 	;
+{5166.} 	 DIETETNO3 = DIETETO + NO2 : 	J(54) 	;
+{5167.} 	 DIETETO = ETHFORM + CH3O2 : 	KDEC 	;
+{5168.} 	 DIETETOH + OH = ETHACET + HO2 : 	6.35D-11 	;
+{5169.} 	 ETOC2OOH + OH = EOX2ETCHO + OH : 	3.48D-11 	;
+{5170.} 	 ETOC2OOH = ETOC2O + OH : 	J(41) 	;
+{5171.} 	 ETOC2NO3 + OH = EOX2ETCHO + NO2 : 	8.20D-12 	;
+{5172.} 	 ETOC2NO3 = ETOC2O + NO2 : 	J(53) 	;
+{5173.} 	 ETOC2O = ETOMEO2 + HCHO : 	KDEC 	;
+{5174.} 	 MTBEACHO + OH = MTBEACHOO2 : 	3.35D-12*EXP(-449/TEMP)*0.879 	;
+{5175.} 	 MTBEACHO + OH = TC4H9O2 : 	3.35D-12*EXP(-449/TEMP)*0.121 	;
+{5176.} 	 MTBEAOOH + OH = MTBEACHO + OH : 	6.71D-11 	;
+{5177.} 	 MTBEAOOH + OH = MTBEAO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{5178.} 	 MTBEAOOH = MTBEAO + OH : 	J(41) 	;
+{5179.} 	 MTBEANO3 + OH = MTBEACHO + NO2 : 	1.48D-12 	;
+{5180.} 	 MTBEANO3 = MTBEAO + NO2 : 	J(53) 	;
+{5181.} 	 MTBEAO = MTBEACHO + HO2 : 	KROPRIM*O2 	;
+{5182.} 	 MTBEAOH + OH = MTBEACHO + HO2 : 	1.80D-11 	;
+{5183.} 	 MTBEBOOH + OH = MTBEBCHO + OH : 	1.54D-11 	;
+{5184.} 	 MTBEBOOH + OH = MTBEBO2 + OH : 	1.90D-12*EXP(190/TEMP) 	;
+{5185.} 	 MTBEBOOH = MTBEBO + OH : 	J(41) 	;
+{5186.} 	 MTBEBNO3 + OH = MTBEBCHO + NO2 : 	1.45D-12 	;
+{5187.} 	 MTBEBNO3 = MTBEBO + NO2 : 	J(53) 	;
+{5188.} 	 MTBEBO = MTBEBCHO + HO2 : 	KROPRIM*O2 	;
+{5189.} 	 MTBEBCHO + NO3 = MTBEBCO3 + HNO3 : 	KNO3AL*8.5 	;
+{5190.} 	 MTBEBCHO + OH = MTBEBCO3 : 	2.29D-11 	;
+{5191.} 	 MTBEBOH + OH = MTBEBCHO + HO2 : 	4.97D-12 	;
+{5192.} 	 DIIPRETOOH + OH = DIIPRETO2 : 	1.55D-11 	;
+{5193.} 	 DIIPRETOOH = DIIPRETO + OH : 	J(41) 	;
+{5194.} 	 DIIPRETNO3 + OH = IPROACET + HCHO + NO2 : 	1.17D-11 	;
+{5195.} 	 DIIPRETNO3 = DIIPRETO + NO2 : 	J(55) 	;
+{5196.} 	 DIIPRETO = IPROACET + CH3O2 : 	KDEC 	;
+{5197.} 	 DIIPRETOH + OH = DIIPRETO : 	1.19D-11 	;
+{5198.} 	 IPROMC2OOH + OH = IPROMCCHO + OH : 	4.43D-11 	;
+{5199.} 	 IPROMC2OOH = IPROMC2O + OH : 	J(41) 	;
+{5200.} 	 IPROMC2NO3 + OH = IPROMCCHO + NO2 : 	1.02D-11 	;
+{5201.} 	 IPROMC2NO3 = IPROMC2O + NO2 : 	J(53) 	;
+{5202.} 	 IPROMC2O = IPROC21O2 + HCHO : 	KDEC 	;
+{5203.} 	 IPROMC2OH + OH = IPROMCCHO + HO2 : 	2.98D-11 	;
+{5204.} 	 IPROMCCHO + NO3 = IPROMCCO3 + HNO3 : 	KNO3AL*8.5 	;
+{5205.} 	 IPROMCCHO + OH = IPROMCCO3 : 	3.91D-11 	;
+{5206.} 	 IPROMCCHO = IPROC21O2 + CO + HO2 : 	J(17) 	;
+{5207.} 	 ETBEAOOH + OH = ETBEACHO + OH : 	1.98D-11 	;
+{5208.} 	 ETBEAOOH + OH = ETBEAO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{5209.} 	 ETBEAOOH = ETBEAO + OH : 	J(41) 	;
+{5210.} 	 ETBEANO3 + OH = ETBEACHO + NO2 : 	5.86D-12 	;
+{5211.} 	 ETBEANO3 = ETBEAO + NO2 : 	J(53) 	;
+{5212.} 	 ETBEAO = EIPEO2 + HCHO : 	2.70D+14*EXP(-8153/TEMP) 	;
+{5213.} 	 ETBEAO = ETBEACHO + HO2 : 	KROPRIM*O2 	;
+{5214.} 	 ETBEACHO + NO3 = ETBEACO3 + HNO3 : 	KNO3AL*8.5 	;
+{5215.} 	 ETBEACHO + OH = ETBEACO3 : 	2.74D-11 	;
+{5216.} 	 ETBEACHO = EIPEO2 + HO2 + CO : 	J(17) 	;
+{5217.} 	 ETBEAOH + OH = ETBEACHO + HO2 : 	9.38D-12 	;
+{5218.} 	 ETBEBOOH + OH = ETBEBO2 : 	1.90D-14*EXP(190/TEMP) 	;
+{5219.} 	 ETBEBOOH + OH = TBUACET + OH : 	7.40D-13 	;
+{5220.} 	 ETBEBOOH = ETBEBO + OH : 	J(41) 	;
+{5221.} 	 ETBEBNO3 + OH = TBUACET + NO2 : 	6.00D-13 	;
+{5222.} 	 ETBEBNO3 = ETBEBO + NO2 : 	J(54) 	;
+{5223.} 	 ETBEBO = MTBEACHO + CH3O2 : 	KDEC 	;
+{5224.} 	 ETBEBOH + OH = TBUACET + HO2 : 	3.88D-11 	;
+{5225.} 	 ETBECOOH + OH = ETBECCHO + OH : 	2.96D-11 	;
+{5226.} 	 ETBECOOH = ETBECO + OH : 	J(41) 	;
+{5227.} 	 ETBECNO3 + OH = ETBECCHO + NO2 : 	3.06D-12 	;
+{5228.} 	 ETBECNO3 = ETBECO + NO2 : 	J(53) 	;
+{5229.} 	 ETBECO = HCHO + MTBEAO2 : 	KDEC 	;
+{5230.} 	 ETBECCHO + NO3 = ETBECCO3 + HNO3 : 	KNO3AL*8.5 	;
+{5231.} 	 ETBECCHO + OH = ETBECCO3 : 	2.81D-11 	;
+{5232.} 	 ETBECCHO = MTBEAO2 + CO + HO2 : 	J(15) 	;
+{5233.} 	 ETBECOH + OH = ETBECCHO + HO2 : 	1.53D-11 	;
+{5234.} 	 MO2EOLAOOH + OH = MOXCOCH2OH + OH : 	1.96D-10 	;
+{5235.} 	 MO2EOLAOOH = MO2EOLAO + HO2 : 	J(41) 	;
+{5236.} 	 MO2EOLANO3 + OH = MOXCOCH2OH + NO2 : 	4.32D-12 	;
+{5237.} 	 MO2EOLAO = CH3OCHO + HCHO + HO2 : 	KDEC 	;
+{5238.} 	 MO2EOLA2OH + OH = MOXCOCH2OH + HO2 : 	5.36D-11 	;
+{5239.} 	 ETOHOCHO + OH = MOXY2CHO + HO2 : 	5.34D-12 	;
+{5240.} 	 MO2EOLBOOH + OH = ETOHOCHO + OH : 	7.68D-11 	;
+{5241.} 	 MO2EOLBOOH = MO2EOLBO + OH : 	J(41) 	;
+{5242.} 	 MO2EOLBNO3 + OH = MO2EOLBO + NO2 : 	1.12D-11 	;
+{5243.} 	 MO2EOLBNO3 = MO2EOLBO + NO2 : 	J(53) 	;
+{5244.} 	 MO2EOLBO = ETOHOCHO + HO2 : 	KDEC 	;
+{5245.} 	 MO2EOLB2OH + OH = ETOHOCHO + HO2 : 	2.77D-11 	;
+{5246.} 	 MEMOXYCO3 + HO2 = CH3OCH2O2 + OH : 	KAPHO2*0.44 	;
+{5247.} 	 MEMOXYCO3 + HO2 = MEMOXYCO2H + O3 : 	KAPHO2*0.15 	;
+{5248.} 	 MEMOXYCO3 + HO2 = MEMOXYCO3H : 	KAPHO2*0.41 	;
+{5249.} 	 MEMOXYCO3 + NO = CH3OCH2O2 + NO2 : 	KAPNO 	;
+{5250.} 	 MEMOXYCO3 + NO2 = MEMOXYPAN : 	KFPAN 	;
+{5251.} 	 MEMOXYCO3 + NO3 = CH3OCH2O2 + NO2 : 	KRO2NO3*1.74 	;
+{5252.} 	 MEMOXYCO3 = CH3OCH2O2 : 	1.00D-11*0.7*RO2 	;
+{5253.} 	 MEMOXYCO3 = MEMOXYCO2H : 	1.00D-11*0.3*RO2 	;
+{5254.} 	 EOX2OLAOOH + OH = EOX2COMEOH + HO2 : 	2.00D-10 	;
+{5255.} 	 EOX2OLAOOH = EOX2EOLAO + OH : 	J(41) 	;
+{5256.} 	 EOX2EOLAO = ETHFORM + HCHO + HO2 : 	KDEC 	;
+{5257.} 	 EOX2OLANO3 + OH = EOX2COMEOH + NO2 : 	8.78D-12 	;
+{5258.} 	 EOX2OLANO3 = EOX2EOLAO + NO2 : 	J(54) 	;
+{5259.} 	 EOX2ETA2OH + OH = EOX2COMEOH + HO2 : 	5.80D-11 	;
+{5260.} 	 EOX2OLBOOH + OH = ETACETOH + OH : 	1.59D-10 	;
+{5261.} 	 EOX2OLBOOH = EOX2EOLBO + OH : 	J(41) 	;
+{5262.} 	 EOX2EOLBO = ETOHOCHO + CH3O2 : 	KDEC 	;
+{5263.} 	 EOX2OLBNO3 + OH = ETACETOH + NO2 : 	1.24D-11 	;
+{5264.} 	 EOX2OLBNO3 = EOX2EOLBO + NO2 : 	J(54) 	;
+{5265.} 	 EOX2ETB2OH + OH = ETACETOH + HO2 : 	4.85D-11 	;
+{5266.} 	 EOX2MECO3 + HO2 = ETOMECO2H + O3 : 	KAPHO2*0.15 	;
+{5267.} 	 EOX2MECO3 + HO2 = ETOMECO3H : 	KAPHO2*0.41 	;
+{5268.} 	 EOX2MECO3 + HO2 = ETOMEO2 + OH : 	KAPHO2*0.44 	;
+{5269.} 	 EOX2MECO3 + NO = ETOMEO2 + NO2 : 	KAPNO 	;
+{5270.} 	 EOX2MECO3 + NO2 = ETOMEPAN : 	KFPAN 	;
+{5271.} 	 EOX2MECO3 + NO3 = ETOMEO2 + NO2 : 	KRO2NO3*1.74 	;
+{5272.} 	 EOX2MECO3 = ETOMECO2H : 	1.00D-11*0.3*RO2 	;
+{5273.} 	 EOX2MECO3 = ETOMEO2 : 	1.00D-11*0.7*RO2 	;
+{5274.} 	 ETOMEO2 + HO2 = ETHFORM : 	KRO2HO2*0.520*0.4 	;
+{5275.} 	 ETOMEO2 + HO2 = ETOMEOOH : 	KRO2HO2*0.520*0.6 	;
+{5276.} 	 ETOMEO2 + NO = ETOMENO3 : 	KRO2NO*0.019 	;
+{5277.} 	 ETOMEO2 + NO = ETOMEO + NO2 : 	KRO2NO*0.981 	;
+{5278.} 	 ETOMEO2 + NO3 = ETOMEO + NO2 : 	KRO2NO3 	;
+{5279.} 	 ETOMEO2 = ETHFORM : 	2.00D-12*0.2*RO2 	;
+{5280.} 	 ETOMEO2 = ETOMEO : 	2.00D-12*0.6*RO2 	;
+{5281.} 	 ETOMEO2 = ETOMEOH : 	2.00D-12*0.2*RO2 	;
+{5282.} 	 ETOHCO2M + OH = MCOCOMOX + HO2 : 	8.86D-12 	;
+{5283.} 	 PR2OHMOOOH + OH = ETOHCO2M + HO2 : 	2.00D-10 	;
+{5284.} 	 PR2OHMOOOH = PR2OHMOXO + OH : 	J(41) 	;
+{5285.} 	 PR2OHMONO3 + OH = ETOHCO2M + NO2 : 	5.56D-12 	;
+{5286.} 	 PR2OHMOXO = CH3OCHO + CH3CHO + HO2 : 	KDEC 	;
+{5287.} 	 PROH2MOX + OH = ETOHCO2M + HO2 : 	5.82D-11 	;
+{5288.} 	 H2C3OCOOH + OH = PROL2FORM + OH : 	1.16D-10 	;
+{5289.} 	 H2C3OCOOH = H2C3OCO + OH : 	J(41) 	;
+{5290.} 	 PROL2FORM + OH = PRONFORM + HO2 : 	9.87D-12 	;
+{5291.} 	 H2C3OCNO3 + OH = PROL2FORM + NO2 : 	1.47D-11 	;
+{5292.} 	 H2C3OCNO3 = H2C3OCO + NO2 : 	J(53) 	;
+{5293.} 	 H2C3OCO = PROL2FORM + HO2 : 	KROPRIM*O2 	;
+{5294.} 	 H2C3OCOH + OH = PROL2FORM + HO2 : 	4.19D-11 	;
+{5295.} 	 PRONEMOXO2 + HO2 = MCOCOMOX : 	KRO2HO2*0.625*0.4 	;
+{5296.} 	 PRONEMOXO2 + HO2 = PRONEMOOOH : 	KRO2HO2*0.625*0.6 	;
+{5297.} 	 PRONEMOXO2 + NO = PRONEMOXO + NO2 : 	KRO2NO 	;
+{5298.} 	 PRONEMOXO2 + NO3 = PRONEMOXO + NO2 : 	KRO2NO3 	;
+{5299.} 	 PRONEMOXO2 = MCOCOMOX : 	8.80D-13*0.2*RO2 	;
+{5300.} 	 PRONEMOXO2 = PRONEMOXO : 	8.80D-13*0.6*RO2 	;
+{5301.} 	 PRONEMOXO2 = PRONEMOXOH : 	8.80D-13*0.2*RO2 	;
+{5302.} 	 BOX2OHAOOH + OH = PRCOOETOH + HO2 : 	2.04D-10 	;
+{5303.} 	 BOX2OHAOOH = BOX2EOHAO + OH : 	J(41) 	;
+{5304.} 	 PRCOOETOH + OH = PRCOOMCHO + HO2 : 	9.16D-12 	;
+{5305.} 	 BOX2EOHAO = ETOHOCHO + NC3H7O2 : 	KDEC 	;
+{5306.} 	 BOXEOHANO3 + OH = PRCOOETOH + NO2 : 	1.45D-11 	;
+{5307.} 	 BOXEOHANO3 = BOX2EOHAO + NO2 : 	J(54) 	;
+{5308.} 	 BOXOHETOH + OH = PRCOOETOH + HO2 : 	6.20D-11 	;
+{5309.} 	 BOX2COMOH + OH = BOXCOCHO + HO2 : 	4.31D-12 	;
+{5310.} 	 BOX2OHBOOH + OH = BOX2COMOH + OH : 	2.04D-10 	;
+{5311.} 	 BOX2OHBOOH = BOX2EOHBO + OH : 	J(41) 	;
+{5312.} 	 BOX2EOHBO = BOXCHO + HCHO + HO2 : 	KDEC 	;
+{5313.} 	 BOXEOHBNO3 + OH = BOX2COMOH + NO2 : 	1.27D-11 	;
+{5314.} 	 BOXEOHBNO3 = BOX2EOHBO + NO2 : 	J(54) 	;
+{5315.} 	 BOX2E2OH + OH = BOX2COMOH + HO2 : 	6.20D-11 	;
+{5316.} 	 BOXMCO3 + HO2 = BOX2MO2 + OH : 	KAPHO2*0.44 	;
+{5317.} 	 BOXMCO3 + HO2 = BOXMCO2H + O3 : 	KAPHO2*0.15 	;
+{5318.} 	 BOXMCO3 + HO2 = BOXMCO3H : 	KAPHO2*0.41 	;
+{5319.} 	 BOXMCO3 + NO = BOX2MO2 + NO2 : 	KAPNO 	;
+{5320.} 	 BOXMCO3 + NO2 = BOXMPAN : 	KFPAN 	;
+{5321.} 	 BOXMCO3 + NO3 = BOX2MO2 + NO2 : 	KRO2NO3*1.74 	;
+{5322.} 	 BOXMCO3 = BOX2MO2 : 	1.00D-11*0.7*RO2 	;
+{5323.} 	 BOXMCO3 = BOXMCO2H : 	1.00D-11*0.3*RO2 	;
+{5324.} 	 BOX2MO2 + HO2 = BOXMOOH : 	KRO2HO2*0.706 	;
+{5325.} 	 BOX2MO2 + NO = BOX2MO + NO2 : 	KRO2NO 	;
+{5326.} 	 BOX2MO2 + NO3 = BOX2MO + NO2 : 	KRO2NO3 	;
+{5327.} 	 BOX2MO2 = BOX2MO : 	2.00D-12*0.6*RO2 	;
+{5328.} 	 BOX2MO2 = BOXCHO : 	2.00D-12*0.2*RO2 	;
+{5329.} 	 BOX2MO2 = BOXMOH : 	2.00D-12*0.2*RO2 	;
+{5330.} 	 BOXPOLAOOH + OH = PRCOOPROL + OH : 	2.08D-10 	;
+{5331.} 	 BOXPOLAOOH = BOXPROLAO + OH : 	J(41) 	;
+{5332.} 	 PRCOOPROL + OH = PRCOOPRONE + HO2 : 	1.37D-11 	;
+{5333.} 	 BOXPOLANO3 + OH = PRCOOPROL + NO2 : 	1.90D-11 	;
+{5334.} 	 BOXPOLANO3 = BOXPROLAO + NO2 : 	J(54) 	;
+{5335.} 	 BOXPROLAO = PROL2FORM + NC3H7O2 : 	KDEC 	;
+{5336.} 	 BOXOHPROL + OH = PRCOOPROL + HO2 : 	6.65D-11 	;
+{5337.} 	 BOXCOEOL + OH = BOXCOEOLO2 : 	4.95D-12 	;
+{5338.} 	 BOXPOLBOOH + OH = BOXCOEOL + OH : 	2.08D-10 	;
+{5339.} 	 BOXPOLBOOH = BOXPROLBO + OH : 	J(41) 	;
+{5340.} 	 BOXPOLBNO3 + OH = BOXCOEOL + NO2 : 	1.39D-11 	;
+{5341.} 	 BOXPROLBO = BOXCHO + CH3CHO + HO2 : 	KDEC 	;
+{5342.} 	 BOXPR2OH + OH = BOXCOEOL + HO2 : 	6.65D-11 	;
+{5343.} 	 BOXPRONAO2 + HO2 = BOXPROOOH : 	KRO2HO2*0.820*0.6 	;
+{5344.} 	 BOXPRONAO2 + HO2 = PRCOOPRONE : 	KRO2HO2*0.820*0.4 	;
+{5345.} 	 BOXPRONAO2 + NO = BOXPROANO3 : 	KRO2NO*0.278 	;
+{5346.} 	 BOXPRONAO2 + NO = BOXPRONEAO + NO2 : 	KRO2NO*0.722 	;
+{5347.} 	 BOXPRONAO2 + NO3 = BOXPRONEAO + NO2 : 	KRO2NO3 	;
+{5348.} 	 BOXPRONAO2 = BOXPRONEAO : 	8.80D-13*0.6*RO2 	;
+{5349.} 	 BOXPRONAO2 = BOXPRONOH : 	8.80D-13*0.2*RO2 	;
+{5350.} 	 BOXPRONAO2 = PRCOOPRONE : 	8.80D-13*0.2*RO2 	;
+{5351.} 	 BOXPRONBO2 + HO2 = BOXCOCOME : 	KRO2HO2*0.820*0.4 	;
+{5352.} 	 BOXPRONBO2 + HO2 = BOXPROBOOH : 	KRO2HO2*0.820*0.6 	;
+{5353.} 	 BOXPRONBO2 + NO = BOXPRONBO + NO2 : 	KRO2NO 	;
+{5354.} 	 BOXPRONBO2 + NO3 = BOXPRONBO + NO2 : 	KRO2NO3 	;
+{5355.} 	 BOXPRONBO2 = BOXCOCOME : 	8.80D-13*0.2*RO2 	;
+{5356.} 	 BOXPRONBO2 = BOXPRONBO : 	8.80D-13*0.6*RO2 	;
+{5357.} 	 BOXPRONBO2 = BOXPRONBOH : 	8.80D-13*0.2*RO2 	;
+{5358.} 	 CH2BROOH + OH = CH2BRO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{5359.} 	 CH2BROOH + OH = CHOBR + OH : 	5.79D-12 	;
+{5360.} 	 CH2BROOH = CH2BRO + OH : 	J(41) 	;
+{5361.} 	 CH2BRO = CHOBR + HO2 : 	KROPRIM*O2 	;
+{5362.} 	 CH2BROH + OH = CHOBR + HO2 : 	1.06D-12 	;
+{5363.} 	 CHOBR + NO3 = CO + BR + HNO3 : 	KNO3AL 	;
+{5364.} 	 CHOBR + OH = CO + BR : 	1.16D-12 	;
+{5365.} 	 CHOBR = HO2 + CO + BR : 	J(11) 	;
+{5366.} 	 DIBRETO2H + OH = DIBRETO2 : 	9.52D-12 	;
+{5367.} 	 DIBRETO2H = DIBRETO + OH : 	J(41) 	;
+{5368.} 	 DIBRETO = BRETAL + BR : 	KDEC 	;
+{5369.} 	 BRETAL + NO3 = BRETO3 + HNO3 : 	KNO3AL 	;
+{5370.} 	 BRETAL + OH = BRETO3 : 	2.05D-12 	;
+{5371.} 	 BRETAL = CH2BRO2 + HO2 + CO : 	J(11) 	;
+{5372.} 	 DIBRETOH + OH = DIBRETO : 	2.80D-12 	;
+{5373.} 	 CH3COCH2O = CH3CO3 + HCHO : 	KDEC 	;
+{5374.} 	 HYPERACET + OH = CH3COCH2O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{5375.} 	 HYPERACET + OH = MGLYOX + OH : 	8.39D-12 	;
+{5376.} 	 HYPERACET = CH3CO3 + HCHO + OH : 	J(22) 	;
+{5377.} 	 HYPERACET = CH3COCH2O + OH : 	J(41) 	;
+{5378.} 	 MEKAOOH + OH = CO2C3CHO + OH : 	4.88D-11 	;
+{5379.} 	 MEKAOOH + OH = MEKAO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{5380.} 	 MEKAOOH = MEKAO + OH : 	J(41)+J(22) 	;
+{5381.} 	 MEKANO3 + OH = CO2C3CHO + NO2 : 	9.64D-13 	;
+{5382.} 	 MEKANO3 = MEKAO + NO2 : 	J(53)+J(22) 	;
+{5383.} 	 MEKAO = CO2C3CHO + HO2 : 	KROPRIM*O2 	;
+{5384.} 	 MEKAO = HO1CO3C4O2 : 	1.30D+11*EXP(-4127/TEMP) 	;
+{5385.} 	 MEKBOOH + OH = BIACET + OH : 	1.88D-11 	;
+{5386.} 	 MEKBOOH + OH = MEKBO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{5387.} 	 MEKBOOH = CH3CO3 + CH3CHO + OH : 	J(22) 	;
+{5388.} 	 MEKBOOH = MEKBO + OH : 	J(41) 	;
+{5389.} 	 MEKBO = CH3CHO + CH3CO3 : 	KDEC 	;
+{5390.} 	 BIACET = CH3CO3 + CH3CO3 : 	J(35) 	;
+{5391.} 	 OH + BIACET = BIACETO2 : 	1.40D-18*TEMP**2*EXP(194/TEMP) 	;
+{5392.} 	 MEKCOOH + OH = EGLYOX + OH : 	9.55D-12 	;
+{5393.} 	 MEKCOOH + OH = MEKCO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{5394.} 	 MEKCOOH = C2H5CO3 + HCHO + OH : 	J(22) 	;
+{5395.} 	 MEKCOOH = MEKCO + OH : 	J(41) 	;
+{5396.} 	 MEKCO = C2H5CO3 + HCHO : 	KDEC 	;
+{5397.} 	 EGLYOX = C2H5CO3 + CO + HO2 : 	J(34) 	;
+{5398.} 	 NO3 + EGLYOX = C2H5CO3 + CO + HNO3 : 	KNO3AL*4.0 	;
+{5399.} 	 OH + EGLYOX = C2H5CO3 + CO : 	1.39D-11 	;
+{5400.} 	 MPRKBOOH + OH = CO24C5 + OH : 	1.06D-10 	;
+{5401.} 	 MPRKBOOH + OH = CO2C54O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{5402.} 	 MPRKBOOH = CO2C54O + OH : 	J(41) 	;
+{5403.} 	 MPRKBOOH = IC3H7O2 + CH3CO3 : 	J(22) 	;
+{5404.} 	 CO2C54O = HO2CO4C5O2 : 	1.30D+11*EXP(-4127/TEMP) 	;
+{5405.} 	 MPRKNO3 + OH = CO24C5 + NO2 : 	1.79D-12 	;
+{5406.} 	 MPRKNO3 = CO2C54O + NO2 : 	J(54)+J(22) 	;
+{5407.} 	 CO24C5 + OH = CO24C53O2 : 	7.02D-13 	;
+{5408.} 	 CO24C5 = CH3COCH2O2 + CH3CO3 : 	J(22) 	;
+{5409.} 	 HO2CO4C5 + OH = CO24C5 + HO2 : 	2.99D-11 	;
+{5410.} 	 HO2CO4C5 = IPROPOLO2 + CH3CO3 : 	J(22) 	;
+{5411.} 	 MPRKAOOH + OH = CO23C5 + OH : 	1.06D-10 	;
+{5412.} 	 MPRKAOOH + OH = MPRKAO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{5413.} 	 MPRKAOOH = C2H5CHO + CH3CO3 + OH : 	J(22) 	;
+{5414.} 	 MPRKAOOH = MPRKAO + OH : 	J(41) 	;
+{5415.} 	 MPRKAO = C2H5CHO + CH3CO3 : 	KDEC 	;
+{5416.} 	 CO23C5 + OH = CO23C54O2 : 	1.38D-12 	;
+{5417.} 	 CO23C5 = CH3CO3 + C2H5CO3 : 	J(35) 	;
+{5418.} 	 DIEKAOOH + OH = CO23C5 + OH : 	2.00D-11 	;
+{5419.} 	 DIEKAOOH + OH = DIEKAO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{5420.} 	 DIEKAOOH = CH3CHO + C2H5CO3 + OH : 	J(22) 	;
+{5421.} 	 DIEKAOOH = DIEKAO + OH : 	J(41) 	;
+{5422.} 	 DIEKAO = CH3CHO + C2H5CO3 : 	KDEC 	;
+{5423.} 	 DIEKBOOH + OH = CO3C4CHO + OH : 	5.36D-11 	;
+{5424.} 	 DIEKBOOH + OH = DIEKBO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{5425.} 	 DIEKBOOH = DIEKBO + OH : 	J(41)+J(22) 	;
+{5426.} 	 DIEKBNO3 + OH = CO3C4CHO + NO2 : 	2.13D-12 	;
+{5427.} 	 DIEKBNO3 = DIEKBO + NO2 : 	J(22)+J(53) 	;
+{5428.} 	 DIEKBO = HOCO3C54O2 : 	8.40D+10*EXP(-2567/TEMP) 	;
+{5429.} 	 HO1CO3C5 + OH = CO3C4CHO + HO2 : 	1.46D-11 	;
+{5430.} 	 HO1CO3C5 = C2H5CO3 + HOCH2CH2O2 : 	J(22) 	;
+{5431.} 	 MIPKAOOH = MIPKAO + OH : 	J(41)+J(22) 	;
+{5432.} 	 OH + MIPKAOOH = MIPKAO2 : 	4.98D-12 	;
+{5433.} 	 MIPKAO = CH3COCH3 + CH3CO3 : 	KDEC 	;
+{5434.} 	 MIPKBOOH = MIPKBO + OH : 	J(41)+J(22) 	;
+{5435.} 	 OH + MIPKBOOH = CO2C43CHO + OH : 	5.41D-11 	;
+{5436.} 	 MIPKBNO3 = MIPKBO + NO2 : 	J(53)+J(22) 	;
+{5437.} 	 OH + MIPKBNO3 = CO2C43CHO + NO2 : 	1.71D-12 	;
+{5438.} 	 MIPKBO = C53O2 : 	1.30D+11*EXP(-4127/TEMP) 	;
+{5439.} 	 MIPKBO = CO2C43CHO + HO2 : 	KROPRIM*O2 	;
+{5440.} 	 CO2C43CHO = MEKBO2 + HO2 + CO : 	J(17) 	;
+{5441.} 	 NO3 + CO2C43CHO = C41CO3 + HNO3 : 	KNO3AL*8.5 	;
+{5442.} 	 OH + CO2C43CHO = C41CO3 : 	2.26D-11 	;
+{5443.} 	 HEX2ONAOOH + OH = CO24C6 + OH : 	1.37D-10 	;
+{5444.} 	 HEX2ONAOOH + OH = HEX2ONAO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{5445.} 	 HEX2ONAOOH = HEX2ONAO + OH : 	J(22)+J(41) 	;
+{5446.} 	 HEX2ONANO3 + OH = CO24C6 + NO2 : 	2.61D-12 	;
+{5447.} 	 HEX2ONANO3 = HEX2ONAO + NO2 : 	J(22)+J(54) 	;
+{5448.} 	 HEX2ONAO = CO2HOC61O2 : 	1.30D+11*EXP(-4127/TEMP) 	;
+{5449.} 	 CO24C6 + OH = CO24C6O2 : 	1.86D-12 	;
+{5450.} 	 CO24C6 = CH3CO3 + MEKCO2 : 	J(22) 	;
+{5451.} 	 CO24C6 = CH3COCH2O2 + C2H5CO3 : 	J(22) 	;
+{5452.} 	 CO2HO4C6 + OH = CO24C6 + HO2 : 	3.75D-11 	;
+{5453.} 	 CO2HO4C6 = CH3CO3 + HO3C4O2 : 	J(22) 	;
+{5454.} 	 HEX2ONBOOH + OH = CO25C6 + OH : 	3.66D-11 	;
+{5455.} 	 HEX2ONBOOH + OH = HEX2ONBO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{5456.} 	 HEX2ONBOOH = HEX2ONBO + OH : 	J(22)+J(41) 	;
+{5457.} 	 HEX2ONBNO3 + OH = CO25C6 + NO2 : 	2.51D-12 	;
+{5458.} 	 HEX2ONBNO3 = HEX2ONBO + NO2 : 	J(22)+J(54) 	;
+{5459.} 	 HEX2ONBO = CH3CHO + MEKAO2 : 	2.70D+14*EXP(-7398/TEMP) 	;
+{5460.} 	 HEX2ONBO = CO25C6 + HO2 : 	KROSEC*O2 	;
+{5461.} 	 CO25C6 = CH3CO3 + MEKAO2 : 	J(22)*2 	;
+{5462.} 	 OH + CO25C6 = CO25C6O2 : 	5.67D-12 	;
+{5463.} 	 HO2CO5C6 = CH3CO3 + HO2C4O2 : 	J(22) 	;
+{5464.} 	 OH + HO2CO5C6 = C61O2 : 	1.39D-11*0.349 	;
+{5465.} 	 OH + HO2CO5C6 = CO25C6 + HO2 : 	1.39D-11*0.651 	;
+{5466.} 	 HEX2ONCOOH + OH = CO23C6 + OH : 	2.94D-11 	;
+{5467.} 	 HEX2ONCOOH + OH = HEX2ONCO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{5468.} 	 HEX2ONCOOH = CH3CO3 + C3H7CHO + OH : 	J(22) 	;
+{5469.} 	 HEX2ONCOOH = HEX2ONCO + OH : 	J(41) 	;
+{5470.} 	 HEX2ONCO = C3H7CHO + CH3CO3 : 	KDEC 	;
+{5471.} 	 CO23C6 + OH = CO23C65O2 : 	4.81D-12 	;
+{5472.} 	 CO23C6 = CH3CO3 + C3H7CO3 : 	J(35) 	;
+{5473.} 	 HEX3ONAOOH + OH = CO24C6 + OH : 	1.07D-10 	;
+{5474.} 	 HEX3ONAOOH + OH = HEX3ONAO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{5475.} 	 HEX3ONAOOH = HEX3ONAO + OH : 	J(41) 	;
+{5476.} 	 HEX3ONAOOH = IC3H7O2 + C2H5CO3 : 	J(22) 	;
+{5477.} 	 HEX3ONANO3 + OH = CO24C6 + NO2 : 	2.96D-12 	;
+{5478.} 	 HEX3ONANO3 = HEX3ONAO + NO2 : 	J(53)+J(22) 	;
+{5479.} 	 HEX3ONAO = C6CO3OH5O2 : 	8.40D+10*EXP(-2567/TEMP) 	;
+{5480.} 	 HEX3ONAOH + OH = CO24C6 + HO2 : 	2.97D-11 	;
+{5481.} 	 HEX3ONAOH = IPROPOLO2 + C2H5CO3 : 	J(22) 	;
+{5482.} 	 HEX3ONBOOH + OH = C6CO34 + OH : 	2.84D-11 	;
+{5483.} 	 HEX3ONBOOH + OH = HEX3ONBO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{5484.} 	 HEX3ONBOOH = C2H5CHO + C2H5CO3 + OH : 	J(22) 	;
+{5485.} 	 HEX3ONBOOH = HEX3ONBO + OH : 	J(41) 	;
+{5486.} 	 HEX3ONBO = C2H5CHO + C2H5CO3 : 	KDEC 	;
+{5487.} 	 C6CO34 + OH = C6CO34O2 : 	2.54D-12 	;
+{5488.} 	 C6CO34 = C2H5CO3 + C2H5CO3 : 	J(35) 	;
+{5489.} 	 C6CO3HO4 + OH = C6CO34 + HO2 : 	1.13D-11 	;
+{5490.} 	 C6CO3HO4 = C2H5CO3 + C2H5CHO + HO2 : 	J(22) 	;
+{5491.} 	 HEX3ONCOOH + OH = CO23C6 + OH : 	2.34D-11 	;
+{5492.} 	 HEX3ONCOOH + OH = HEX3ONCO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{5493.} 	 HEX3ONCOOH = CH3CHO + C3H7CO3 + OH : 	J(22) 	;
+{5494.} 	 HEX3ONCOOH = HEX3ONCO + OH : 	J(41) 	;
+{5495.} 	 HEX3ONCO = CH3CHO + C3H7CO3 : 	KDEC 	;
+{5496.} 	 HEX3ONDOOH + OH = C3COCCHO + OH : 	5.34D-11 	;
+{5497.} 	 HEX3ONDOOH + OH = HEX3ONDO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{5498.} 	 HEX3ONDOOH = HEX3ONDO + OH : 	J(41)+J(22) 	;
+{5499.} 	 HEX3ONDNO3 + OH = C3COCCHO + NO2 : 	3.40D-12 	;
+{5500.} 	 HEX3ONDNO3 = HEX3ONDO + NO2 : 	J(53)+J(22) 	;
+{5501.} 	 HEX3ONDO = C6HO1CO3O2 : 	8.40D+10*EXP(-2567/TEMP) 	;
+{5502.} 	 C3COCCHO + NO3 = C3COCCO3 + HNO3 : 	KNO3AL*5.5 	;
+{5503.} 	 C3COCCHO + OH = C3COCCO3 : 	7.61D-11 	;
+{5504.} 	 C3COCCHO = C3H7CO3 + HCOCH2O2 : 	J(22) 	;
+{5505.} 	 C3COCCHO = PEN2ONE1O2 + CO + HO2 : 	J(15) 	;
+{5506.} 	 HEX3ONDOH + OH = C3COCCHO + HO2 : 	1.81D-11 	;
+{5507.} 	 HEX3ONDOH = HOC2H4CO3 + NC3H7O2 : 	J(22) 	;
+{5508.} 	 MIBKAOOH + OH = MIBKAO2 : 	4.89D-12 	;
+{5509.} 	 MIBKAOOH = MIBKAO + OH : 	J(41)+J(22) 	;
+{5510.} 	 MIBKANO3 + OH = MGLYOX + CH3COCH3 + NO2 : 	3.86D-13 	;
+{5511.} 	 MIBKANO3 = MIBKAO + NO2 : 	J(55)+J(22) 	;
+{5512.} 	 MIBKAO = CH3COCH3 + CH3COCH2O2 : 	2.70D+14*EXP(-6543/TEMP) 	;
+{5513.} 	 MIBKAO = MIBKHO4O2 : 	1.30D+11*EXP(-4127/TEMP) 	;
+{5514.} 	 MIBKBOOH + OH = MIBK3CO + OH : 	3.18D-11 	;
+{5515.} 	 MIBKBOOH + OH = MIBKBO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{5516.} 	 MIBKBOOH = IPRCHO + CH3CO3 + OH : 	J(22) 	;
+{5517.} 	 MIBKBOOH = MIBKBO + OH : 	J(41) 	;
+{5518.} 	 MIBKBO = CH3CO3 + IPRCHO : 	KDEC 	;
+{5519.} 	 MIBK3CO + OH = MIBK3COO2 : 	2.77D-12 	;
+{5520.} 	 MIBK3CO = IPRCO3 + CH3CO3 : 	J(35) 	;
+{5521.} 	 MIBKBOH + OH = MIBK3CO + HO2 : 	1.45D-11 	;
+{5522.} 	 MIBKBOH = IPRCHO + CH3CO3 + HO2 : 	J(22) 	;
+{5523.} 	 MTBKOOH = MTBKO + OH : 	J(41)+J(22) 	;
+{5524.} 	 OH + MTBKOOH = CO2M33CHO + OH : 	5.29D-11 	;
+{5525.} 	 MTBKNO3 = MTBKO + NO2 : 	J(53)+J(22) 	;
+{5526.} 	 OH + MTBKNO3 = CO2M33CHO + NO2 : 	1.57D-12 	;
+{5527.} 	 MTBKO = C612O2 : 	1.30D+11*EXP(-4127/TEMP) 	;
+{5528.} 	 MTBKO = CO2M33CHO + HO2 : 	KROPRIM*O2 	;
+{5529.} 	 CO2M33CHO = MIPKBO2 + HO2 + CO : 	J(17) 	;
+{5530.} 	 NO3 + CO2M33CHO = CO2M33CO3 + HNO3 : 	KNO3AL*8.5 	;
+{5531.} 	 OH + CO2M33CHO = CO2M33CO3 : 	7.22D-11 	;
+{5532.} 	 MTBKOH = MTBKO + HO2 : 	J(22) 	;
+{5533.} 	 OH + MTBKOH = CO2M33CHO + HO2 : 	1.39D-11 	;
+{5534.} 	 CYHXONAOOH + OH = CYC613DION + OH : 	1.43D-10 	;
+{5535.} 	 CYHXONAOOH = CYHXONAO + OH : 	J(41)+J(22) 	;
+{5536.} 	 CYHXONANO3 + OH = CYC613DION + NO2 : 	6.28D-12 	;
+{5537.} 	 CYHXONANO3 = CYHXONAO + NO2 : 	J(54) 	;
+{5538.} 	 CYHXONAO = C6COCHOO2 : 	2.70D+14*EXP(-7398/TEMP) 	;
+{5539.} 	 CYHXONAO = CYC613DION + HO2 : 	KROSEC*O2 	;
+{5540.} 	 CYC613DION + OH = CY6DIONO2 : 	1.83D-11 	;
+{5541.} 	 CYC613DION = ACR + CO + C2H4 : 	J(22)*2 	;
+{5542.} 	 CYHXONAOH + OH = CYC613DION + HO2 : 	4.31D-11 	;
+{5543.} 	 CYHXONAOH = C3H6 + VINOH + OH : 	J(22) 	;
+{5544.} 	 NAPINAOOH + OH = NAPINAO2 : 	6.87D-12 	;
+{5545.} 	 NAPINAOOH = NAPINAO + OH : 	J(41) 	;
+{5546.} 	 NAPINAO = PINAL + NO2 : 	KDEC 	;
+{5547.} 	 APINBNO3 + OH = APINBCO + NO2 : 	3.64D-12 	;
+{5548.} 	 NAPINBOOH + OH = NAPINBO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{5549.} 	 NAPINBOOH + OH = NC101CO + OH : 	1.23D-11 	;
+{5550.} 	 NAPINBOOH = NAPINBO + OH : 	J(41) 	;
+{5551.} 	 NAPINBO = NC101CO + HO2 : 	KROSEC*O2 	;
+{5552.} 	 NAPINBO = PINAL + NO2 : 	4.00D+05 	;
+{5553.} 	 APINANO3 + OH = PINAL + NO2 : 	5.50D-12 	;
+{5554.} 	 NC101CO + OH = NC101O2 : 	5.55D-12 	;
+{5555.} 	 NC101CO = C96CO3 + NO2 : 	J(55) 	;
+{5556.} 	 C107O2 + HO2 = C107OOH : 	KRO2HO2*0.914 	;
+{5557.} 	 C107O2 + NO = C107O + NO2 : 	KRO2NO 	;
+{5558.} 	 C107O2 + NO3 = C107O + NO2 : 	KRO2NO3 	;
+{5559.} 	 C107O2 = C107O : 	9.20D-14*0.7*RO2 	;
+{5560.} 	 C107O2 = C107OH : 	9.20D-14*0.3*RO2 	;
+{5561.} 	 C109O2 + HO2 = C109OOH : 	KRO2HO2*0.914 	;
+{5562.} 	 C109O2 + NO = C109O + NO2 : 	KRO2NO 	;
+{5563.} 	 C109O2 + NO3 = C109O + NO2 : 	KRO2NO3 	;
+{5564.} 	 C109O2 = C109CO : 	2.00D-12*RO2*0.05 	;
+{5565.} 	 C109O2 = C109O : 	2.00D-12*RO2*0.90 	;
+{5566.} 	 C109O2 = C109OH : 	2.00D-12*RO2*0.05 	;
+{5567.} 	 APINBOO + CO = PINAL : 	1.20D-15 	;
+{5568.} 	 APINBOO + NO = PINAL + NO2 : 	1.00D-14 	;
+{5569.} 	 APINBOO + NO2 = PINAL + NO3 : 	1.00D-15 	;
+{5570.} 	 APINBOO + SO2 = PINAL + SO3 : 	7.00D-14 	;
+{5571.} 	 APINBOO = PINAL + H2O2 : 	1.40D-17*H2O 	;
+{5572.} 	 APINBOO = PINONIC : 	2.00D-18*H2O 	;
+{5573.} 	 C96O2 + HO2 = C96OOH : 	KRO2HO2*0.890 	;
+{5574.} 	 C96O2 + NO = C96NO3 : 	KRO2NO*0.157 	;
+{5575.} 	 C96O2 + NO = C96O + NO2 : 	KRO2NO*0.843 	;
+{5576.} 	 C96O2 + NO3 = C96O + NO2 : 	KRO2NO3 	;
+{5577.} 	 C96O2 = C96O : 	1.30D-12*0.6*RO2 	;
+{5578.} 	 C96O2 = C96OH : 	1.30D-12*0.2*RO2 	;
+{5579.} 	 C96O2 = NORPINAL : 	1.30D-12*0.2*RO2 	;
+{5580.} 	 APINAOOH + OH = APINAO2 : 	1.83D-11 	;
+{5581.} 	 APINAOOH = APINAO + OH : 	J(41) 	;
+{5582.} 	 APINAO = PINAL + HO2 : 	KDEC 	;
+{5583.} 	 APINBOH + OH = APINBCO + HO2 : 	1.49D-11 	;
+{5584.} 	 APINBOOH + OH = APINBCO + OH : 	3.28D-11 	;
+{5585.} 	 APINBOOH = APINBO + OH : 	J(41) 	;
+{5586.} 	 APINBO = PINAL + HO2 : 	KDEC 	;
+{5587.} 	 APINBCO + OH = C96CO3 : 	8.18D-12 	;
+{5588.} 	 APINCOOH + OH = APINCO2 : 	1.03D-10 	;
+{5589.} 	 APINCOOH = APINCO + OH : 	J(41) 	;
+{5590.} 	 APINCNO3 + OH = CH3COCH3 + HCC7CO + NO2 : 	9.87D-11 	;
+{5591.} 	 APINCNO3 = APINCO + NO2 : 	J(55) 	;
+{5592.} 	 APINCO = CH3COCH3 + C720O2 : 	KDEC 	;
+{5593.} 	 APINCOH + OH = APINCO : 	9.91D-11 	;
+{5594.} 	 NBPINAOOH + OH = NBPINAO2 : 	9.58D-12 	;
+{5595.} 	 NBPINAOOH = NBPINAO + OH : 	J(41) 	;
+{5596.} 	 NBPINAO = NOPINONE + HCHO + NO2 : 	KDEC 	;
+{5597.} 	 BPINBNO3 + OH = C918CHO + NO2 : 	6.12D-12 	;
+{5598.} 	 NBPINBOOH + OH = NC91CHO + OH : 	9.08D-12 	;
+{5599.} 	 NBPINBOOH = NBPINBO + OH : 	J(41) 	;
+{5600.} 	 NBPINBO = NOPINONE + HCHO + NO2 : 	7.00D+03 	;
+{5601.} 	 BPINANO3 + OH = NOPINONE + HCHO + NO2 : 	4.70D-12 	;
+{5602.} 	 NC91CHO + NO3 = NC91CO3 + HNO3 : 	KNO3AL*8.5 	;
+{5603.} 	 NC91CHO + OH = NC91CO3 : 	8.63D-12 	;
+{5604.} 	 NC91CHO = NOPINONE + CO + HO2 + NO2 : 	J(15) 	;
+{5605.} 	 NOPINAO2 + HO2 = NOPINAOOH : 	KRO2HO2*0.890 	;
+{5606.} 	 NOPINAO2 + NO = NOPINANO3 : 	KRO2NO*0.157 	;
+{5607.} 	 NOPINAO2 + NO = NOPINAO + NO2 : 	KRO2NO*0.843 	;
+{5608.} 	 NOPINAO2 + NO3 = NOPINAO + NO2 : 	KRO2NO3 	;
+{5609.} 	 NOPINAO2 = C9DC : 	2.50D-13*RO2*0.2 	;
+{5610.} 	 NOPINAO2 = NOPINAO : 	2.50D-13*RO2*0.6 	;
+{5611.} 	 NOPINAO2 = NOPINAOH : 	2.50D-13*RO2*0.2 	;
+{5612.} 	 NOPINBO2 + HO2 = NOPINBOOH : 	KRO2HO2*0.890 	;
+{5613.} 	 NOPINBO2 + NO = NOPINBNO3 : 	KRO2NO*0.157 	;
+{5614.} 	 NOPINBO2 + NO = NOPINBO + NO2 : 	KRO2NO*0.843 	;
+{5615.} 	 NOPINBO2 + NO3 = NOPINBO + NO2 : 	KRO2NO3 	;
+{5616.} 	 NOPINBO2 = NOPINBCO : 	2.50D-13*RO2*0.2 	;
+{5617.} 	 NOPINBO2 = NOPINBO : 	2.50D-13*RO2*0.6 	;
+{5618.} 	 NOPINBO2 = NOPINBOH : 	2.50D-13*RO2*0.2 	;
+{5619.} 	 NOPINCO2 + HO2 = NOPINCOOH : 	KRO2HO2*0.890 	;
+{5620.} 	 NOPINCO2 + NO = NOPINCNO3 : 	KRO2NO*0.118 	;
+{5621.} 	 NOPINCO2 + NO = NOPINCO + NO2 : 	KRO2NO*0.882 	;
+{5622.} 	 NOPINCO2 + NO3 = NOPINCO + NO2 : 	KRO2NO3 	;
+{5623.} 	 NOPINCO2 = NOPINCO : 	6.70D-15*RO2*0.7 	;
+{5624.} 	 NOPINCO2 = NOPINCOH : 	6.70D-15*RO2*0.3 	;
+{5625.} 	 NOPINDO2 + HO2 = NOPINDOOH : 	KRO2HO2*0.890 	;
+{5626.} 	 NOPINDO2 + NO = NOPINDO + NO2 : 	KRO2NO 	;
+{5627.} 	 NOPINDO2 + NO3 = NOPINDO + NO2 : 	KRO2NO3 	;
+{5628.} 	 NOPINDO2 = NOPINDCO : 	2.00D-12*RO2*0.05 	;
+{5629.} 	 NOPINDO2 = NOPINDO : 	2.00D-12*RO2*0.9 	;
+{5630.} 	 NOPINDO2 = NOPINDOH : 	2.00D-12*RO2*0.05 	;
+{5631.} 	 C8BC + OH = C8BCO2 : 	3.04D-12 	;
+{5632.} 	 NOPINOO + CO = NOPINONE : 	1.20D-15 	;
+{5633.} 	 NOPINOO + NO = NOPINONE + NO2 : 	1.00D-14 	;
+{5634.} 	 NOPINOO + NO2 = NOPINONE + NO3 : 	1.00D-15 	;
+{5635.} 	 NOPINOO + SO2 = NOPINONE + SO3 : 	7.00D-14 	;
+{5636.} 	 NOPINOO = NOPINONE + H2O2 : 	6.00D-18*H2O 	;
+{5637.} 	 BPINAOOH + OH = BPINAO2 : 	1.33D-11 	;
+{5638.} 	 BPINAOOH = BPINAO + OH : 	J(41) 	;
+{5639.} 	 BPINAO = NOPINONE + HCHO + HO2 : 	KDEC 	;
+{5640.} 	 BPINAOH + OH = C918CHO + HO2 : 	9.88D-12 	;
+{5641.} 	 BPINBOOH + OH = C918CHO + OH : 	1.90D-11 	;
+{5642.} 	 BPINBOOH = BPINBO + OH : 	J(41) 	;
+{5643.} 	 BPINBO = NOPINONE + HCHO + HO2 : 	KDEC 	;
+{5644.} 	 C918CHO + NO3 = C918CO3 + HNO3 : 	KNO3AL*8.5 	;
+{5645.} 	 C918CHO + OH = C918CO3 : 	3.17D-11 	;
+{5646.} 	 C918CHO = NOPINONE + CO + HO2 + HO2 : 	J(17) 	;
+{5647.} 	 BPINCOOH + OH = BPINCO2 : 	9.72D-11 	;
+{5648.} 	 BPINCOOH = BPINCO + OH : 	J(41) 	;
+{5649.} 	 BPINCNO3 + OH = HCC7CO + CH3COCH3 + NO2 : 	9.38D-11 	;
+{5650.} 	 BPINCNO3 = BPINCO + NO2 : 	J(55) 	;
+{5651.} 	 BPINCO = C720O2 + CH3COCH3 : 	KDEC 	;
+{5652.} 	 BPINCOH + OH = BPINCO : 	9.37D-11 	;
+{5653.} 	 NLIMOOH + OH = NLIMO2 : 	4.28D-11 	;
+{5654.} 	 NLIMOOH = NLIMO + OH : 	J(41) 	;
+{5655.} 	 NLIMO = LIMAL + NO2 : 	KDEC 	;
+{5656.} 	 LIMBNO3 + OH = LIMBCO + NO2 : 	5.91D-11 	;
+{5657.} 	 LIMALAO2 + HO2 = LIMALAOOH : 	KRO2HO2*0.914 	;
+{5658.} 	 LIMALAO2 + NO = LIMALAO + NO2 : 	KRO2NO 	;
+{5659.} 	 LIMALAO2 + NO3 = LIMALAO + NO2 : 	KRO2NO3 	;
+{5660.} 	 LIMALAO2 = LIMALACO : 	8.80D-13*RO2*0.2 	;
+{5661.} 	 LIMALAO2 = LIMALAO : 	8.80D-13*RO2*0.6 	;
+{5662.} 	 LIMALAO2 = LIMALAOH : 	8.80D-13*RO2*0.2 	;
+{5663.} 	 LIMALBO2 + HO2 = LIMALBOOH : 	KRO2HO2*0.914 	;
+{5664.} 	 LIMALBO2 + NO = LIMALBO + NO2 : 	KRO2NO 	;
+{5665.} 	 LIMALBO2 + NO3 = LIMALBO + NO2 : 	KRO2NO3 	;
+{5666.} 	 LIMALBO2 = LIMALBCO : 	8.80D-13*RO2*0.05 	;
+{5667.} 	 LIMALBO2 = LIMALBO : 	8.80D-13*RO2*0.9 	;
+{5668.} 	 LIMALBO2 = LIMALBOH : 	8.80D-13*RO2*0.05 	;
+{5669.} 	 C923O2 + HO2 = C923OOH : 	KRO2HO2*0.890 	;
+{5670.} 	 C923O2 + NO = C923NO3 : 	KRO2NO*0.157 	;
+{5671.} 	 C923O2 + NO = C923O + NO2 : 	KRO2NO*0.843 	;
+{5672.} 	 C923O2 + NO3 = C923O + NO2 : 	KRO2NO3 	;
+{5673.} 	 C923O2 = C923O : 	1.32D-12*RO2*0.6 	;
+{5674.} 	 C923O2 = C923OH : 	1.32D-12*RO2*0.2 	;
+{5675.} 	 C923O2 = NORLIMAL : 	1.32D-12*RO2*0.2 	;
+{5676.} 	 LIMBOO + CO = LIMAL : 	1.20D-15 	;
+{5677.} 	 LIMBOO + NO = LIMAL + NO2 : 	1.00D-14 	;
+{5678.} 	 LIMBOO + NO2 = LIMAL + NO3 : 	1.00D-15 	;
+{5679.} 	 LIMBOO + SO2 = LIMAL + SO3 : 	7.00D-14 	;
+{5680.} 	 LIMBOO = LIMAL + H2O2 : 	1.40D-17*H2O 	;
+{5681.} 	 LIMBOO = LIMONONIC : 	2.00D-18*H2O 	;
+{5682.} 	 LIMAOOH + OH = LIMAO2 : 	7.36D-11 	;
+{5683.} 	 LIMAOOH = LIMAO + OH : 	J(41) 	;
+{5684.} 	 LIMANO3 + OH = LIMAL + NO2 : 	6.20D-11 	;
+{5685.} 	 LIMAO = LIMAL + HO2 : 	KDEC 	;
+{5686.} 	 LIMAOH + OH = LIMBCO + HO2 : 	7.02D-11 	;
+{5687.} 	 LIMBOOH + OH = LIMBCO + OH : 	1.04D-10 	;
+{5688.} 	 LIMBOOH = LIMBO + OH : 	J(41) 	;
+{5689.} 	 LIMBO = LIMAL + HO2 : 	KDEC 	;
+{5690.} 	 LIMBCO + OH = C923CO3 : 	6.70D-11 	;
+{5691.} 	 LIMCOOH + OH = LIMCO2 : 	1.03D-10 	;
+{5692.} 	 LIMCOOH = LIMCO + OH : 	J(41) 	;
+{5693.} 	 LIMCNO3 + OH = LIMKET + HCHO + NO2 : 	9.31D-11 	;
+{5694.} 	 LIMCO = LIMKET + HCHO + HO2 : 	KDEC 	;
+{5695.} 	 LIMCOH + OH = LIMKET + HCHO + HO2 : 	9.94D-11 	;
+{5696.} 	 NBCOOH + OH = NBCO2 : 	6.25D-11 	;
+{5697.} 	 NBCOOH = NBCO + OH : 	J(41) 	;
+{5698.} 	 NBCO = BCAL + NO2 : 	KDEC 	;
+{5699.} 	 BCBNO3 + OH = BCBCO + NO2 : 	5.91D-11 	;
+{5700.} 	 BCAL + NO3 = C141CO3 + HNO3 : 	KNO3AL*8.5 	;
+{5701.} 	 BCAL + NO3 = NBCALO2 : 	3.30D-13 	;
+{5702.} 	 BCAL + O3 = BCALOOA + HCHO : 	1.10D-16*0.670 	;
+{5703.} 	 BCAL + O3 = BCLKET + CH2OOF : 	1.10D-16*0.330 	;
+{5704.} 	 BCAL + OH = BCALAO2 : 	8.55D-11*0.012 	;
+{5705.} 	 BCAL + OH = BCALBO2 : 	8.55D-11*0.001 	;
+{5706.} 	 BCAL + OH = BCALCO2 : 	8.55D-11*0.012 	;
+{5707.} 	 BCAL + OH = BCALO2 : 	8.55D-11*0.695 	;
+{5708.} 	 BCAL + OH = C141CO3 : 	8.55D-11*0.281 	;
+{5709.} 	 BCAL = C141O2 + CO + HO2 : 	J(15) 	;
+{5710.} 	 BCSOZ + O3 = BCKSOZ + CH2OOF : 	1.10D-16*0.4 	;
+{5711.} 	 BCSOZ + O3 = BCKSZOO + HCHO : 	1.10D-16*0.6 	;
+{5712.} 	 BCSOZ + OH = BCSOZO2 : 	7.29D-11 	;
+{5713.} 	 C141CO2H + O3 = C131CO2H + CH2OOF : 	1.10D-16*0.330 	;
+{5714.} 	 C141CO2H + O3 = C141OOA + HCHO : 	1.10D-16*0.670 	;
+{5715.} 	 C141CO2H + OH = C151O2 : 	6.98D-11 	;
+{5716.} 	 BCALAO2 + HO2 = BCALAOOH : 	KRO2HO2*0.975 	;
+{5717.} 	 BCALAO2 + NO = BCALAO + NO2 : 	KRO2NO 	;
+{5718.} 	 BCALAO2 + NO3 = BCALAO + NO2 : 	KRO2NO3 	;
+{5719.} 	 BCALAO2 = BCALACO : 	2.00D-12*RO2*0.2 	;
+{5720.} 	 BCALAO2 = BCALAO : 	2.00D-12*RO2*0.6 	;
+{5721.} 	 BCALAO2 = BCALAOH : 	2.00D-12*RO2*0.2 	;
+{5722.} 	 BCALBO2 + HO2 = BCALBOOH : 	KRO2HO2*0.975 	;
+{5723.} 	 BCALBO2 + NO = BCALBO + NO2 : 	KRO2NO 	;
+{5724.} 	 BCALBO2 + NO3 = BCALBO + NO2 : 	KRO2NO3 	;
+{5725.} 	 BCALBO2 = BCALBCO : 	2.00D-12*RO2*0.2 	;
+{5726.} 	 BCALBO2 = BCALBO : 	2.00D-12*RO2*0.6 	;
+{5727.} 	 BCALBO2 = BCALBOH : 	2.00D-12*RO2*0.2 	;
+{5728.} 	 BCALBOC + O3 = BCBOOA + HCHO : 	1.10D-16*0.670 	;
+{5729.} 	 BCALBOC + O3 = BCLKBOC + CH2OOF : 	1.10D-16*0.330 	;
+{5730.} 	 BCALBOC + OH = C152O2 : 	6.98D-11 	;
+{5731.} 	 C136O2 + HO2 = C136OOH : 	KRO2HO2*0.959 	;
+{5732.} 	 C136O2 + NO = C136NO3 : 	KRO2NO*0.178 	;
+{5733.} 	 C136O2 + NO = C136O + NO2 : 	KRO2NO*0.822 	;
+{5734.} 	 C136O2 + NO3 = C136O + NO2 : 	KRO2NO3 	;
+{5735.} 	 C136O2 = C126CHO : 	1.30D-12*RO2*0.2 	;
+{5736.} 	 C136O2 = C136O : 	1.30D-12*RO2*0.6 	;
+{5737.} 	 C136O2 = C136OH : 	1.30D-12*RO2*0.2 	;
+{5738.} 	 BCALCO2 + HO2 = BCALCOOH : 	KRO2HO2*0.975 	;
+{5739.} 	 BCALCO2 + NO = BCALCO + NO2 : 	KRO2NO 	;
+{5740.} 	 BCALCO2 + NO3 = BCALCO + NO2 : 	KRO2NO3 	;
+{5741.} 	 BCALCO2 = BCALCCO : 	2.00D-12*RO2*0.2 	;
+{5742.} 	 BCALCO2 = BCALCO : 	2.00D-12*RO2*0.6 	;
+{5743.} 	 BCALCO2 = BCALCOH : 	2.00D-12*RO2*0.2 	;
+{5744.} 	 C141O2 + HO2 = C141OOH : 	KRO2HO2*0.968 	;
+{5745.} 	 C141O2 + NO = C141NO3 : 	KRO2NO*0.180 	;
+{5746.} 	 C141O2 + NO = C141O + NO2 : 	KRO2NO*0.820 	;
+{5747.} 	 C141O2 + NO3 = C141O + NO2 : 	KRO2NO3 	;
+{5748.} 	 C141O2 = C141CO : 	1.32D-12*RO2*0.2 	;
+{5749.} 	 C141O2 = C141O : 	1.32D-12*RO2*0.6 	;
+{5750.} 	 C141O2 = C141OH : 	1.32D-12*RO2*0.2 	;
+{5751.} 	 BCAOOH + OH = BCAO2 : 	7.36D-11 	;
+{5752.} 	 BCAOOH = BCAO + OH : 	J(41) 	;
+{5753.} 	 BCANO3 + OH = BCAL + NO2 : 	6.20D-11 	;
+{5754.} 	 BCAO = BCAL + HO2 : 	KDEC 	;
+{5755.} 	 BCAOH + OH = BCBCO + HO2 : 	7.02D-11 	;
+{5756.} 	 BCBOOH + OH = BCBCO + OH : 	1.04D-10 	;
+{5757.} 	 BCBOOH = BCBO + OH : 	J(41) 	;
+{5758.} 	 BCBO = BCAL + HO2 : 	KDEC 	;
+{5759.} 	 BCBCO + OH = C141CO3 : 	6.70D-11 	;
+{5760.} 	 BCCOOH + OH = BCCO2 : 	1.03D-10 	;
+{5761.} 	 BCCOOH = BCCO + OH : 	J(41) 	;
+{5762.} 	 BCCNO3 + OH = BCKET + HCHO + NO2 : 	9.31D-11 	;
+{5763.} 	 BCCO = BCKET + HCHO + HO2 : 	KDEC 	;
+{5764.} 	 BCCOH + OH = BCKET + HCHO + HO2 : 	9.94D-11 	;
+{5765.} 	 DMMAOOH + OH = MMF + OH : 	1.09D-10 	;
+{5766.} 	 DMMAOOH = DMMAO + OH : 	J(41) 	;
+{5767.} 	 DMMANO3 + OH = MMF + NO2 : 	3.60D-12 	;
+{5768.} 	 DMMANO3 = DMMAO + NO2 : 	J(53) 	;
+{5769.} 	 DMMAO = MMF + HO2 : 	KROPRIM*O2 	;
+{5770.} 	 DMMAOH + OH = MMF + HO2 : 	3.08D-11 	;
+{5771.} 	 MMF + OH = MMFO2 : 	3.29D-12 	;
+{5772.} 	 DMMBOOH + OH = DMC + OH : 	4.29D-11 	;
+{5773.} 	 DMMBOOH = DMMBO + OH : 	J(41) 	;
+{5774.} 	 DMMBNO3 + OH = DMC + NO2 : 	4.13D-12 	;
+{5775.} 	 DMMBNO3 = DMMBO + NO2 : 	J(54) 	;
+{5776.} 	 DMMBO = DMC + HO2 : 	KROSEC*O2 	;
+{5777.} 	 DMMBOH + OH = DMC + HO2 : 	1.37D-11 	;
+{5778.} 	 DMCOOH + OH = DMCO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{5779.} 	 DMCOOH + OH = MMCF + OH : 	1.96D-11 	;
+{5780.} 	 DMCOOH = DMCO + OH : 	J(41) 	;
+{5781.} 	 DMCNO3 + OH = MMCF + NO2 : 	2.20D-13 	;
+{5782.} 	 DMCNO3 = DMCO + NO2 : 	J(53) 	;
+{5783.} 	 DMCO = HCHO + CH3O : 	2.70D+14*EXP(-6765/TEMP) 	;
+{5784.} 	 DMCO = MMCF + HO2 : 	KROPRIM*O2 	;
+{5785.} 	 DMCOH + OH = MMCF + HO2 : 	5.53D-12 	;
+{5786.} 	 MMCF + OH = MMCFO2 : 	2.50D-13 	;
+{5787.} 	 CH3SCH2OOH + OH = CH3SCHO + OH : 	7.03D-11 	;
+{5788.} 	 CH3SCH2OOH = CH3SCH2O + OH : 	J(41) 	;
+{5789.} 	 CH3SCHO + OH = CH3S + CO : 	1.11D-11 	;
+{5790.} 	 CH3SCHO = CH3S + CO + HO2 : 	J(15) 	;
+{5791.} 	 CH3SCH2O = CH3S + HCHO : 	KDEC 	;
+{5792.} 	 CH3SCH2OH + OH = CH3SCHO + HO2 : 	2.78D-11 	;
+{5793.} 	 DMSO2 + OH = DMSO2O2 : 	4.40D-14 	;
+{5794.} 	 DMSO + OH = MSIA + CH3O2 : 	6.10D-12*EXP(800/TEMP) 	;
+{5795.} 	 ETHOXOOH + OH = ETHOXO2 : 	7.15D-12 	;
+{5796.} 	 ETHOXOOH = CHOOCH2O2 + OH : 	J(41) 	;
+{5797.} 	 HOC2H4CO3 + HO2 = HOC2H4CO2H + O3 : 	KAPHO2*0.15 	;
+{5798.} 	 HOC2H4CO3 + HO2 = HOC2H4CO3H : 	KAPHO2*0.41 	;
+{5799.} 	 HOC2H4CO3 + HO2 = HOCH2CH2O2 + OH : 	KAPHO2*0.44 	;
+{5800.} 	 HOC2H4CO3 + NO = HOCH2CH2O2 + NO2 : 	KAPNO 	;
+{5801.} 	 HOC2H4CO3 + NO2 = C3PAN1 : 	KFPAN 	;
+{5802.} 	 HOC2H4CO3 + NO3 = HOCH2CH2O2 + NO2 : 	KRO2NO3*1.74 	;
+{5803.} 	 HOC2H4CO3 = HOC2H4CO2H : 	1.00D-11*0.3*RO2 	;
+{5804.} 	 HOC2H4CO3 = HOCH2CH2O2 : 	1.00D-11*0.7*RO2 	;
+{5805.} 	 HOIPRCO3 + HO2 = HOIPRCO2H + O3 : 	KAPHO2*0.15 	;
+{5806.} 	 HOIPRCO3 + HO2 = HOIPRCO3H : 	KAPHO2*0.41 	;
+{5807.} 	 HOIPRCO3 + HO2 = HYPROPO2 + OH : 	KAPHO2*0.44 	;
+{5808.} 	 HOIPRCO3 + NO = HYPROPO2 + NO2 : 	KAPNO 	;
+{5809.} 	 HOIPRCO3 + NO2 = C4PAN4 : 	KFPAN 	;
+{5810.} 	 HOIPRCO3 + NO3 = HYPROPO2 + NO2 : 	KRO2NO3*1.74 	;
+{5811.} 	 HOIPRCO3 = HOIPRCO2H : 	1.00D-11*0.3*RO2 	;
+{5812.} 	 HOIPRCO3 = HYPROPO2 : 	1.00D-11*0.7*RO2 	;
+{5813.} 	 HO13C5O2 + HO2 = HO13C5OOH : 	KRO2HO2*0.706 	;
+{5814.} 	 HO13C5O2 + NO = HO13C5NO3 : 	KRO2NO*0.026 	;
+{5815.} 	 HO13C5O2 + NO = HO13C5O + NO2 : 	KRO2NO*0.974 	;
+{5816.} 	 HO13C5O2 + NO3 = HO13C5O + NO2 : 	KRO2NO3 	;
+{5817.} 	 HO13C5O2 = HO134C5 : 	8.40D-13*0.2*RO2 	;
+{5818.} 	 HO13C5O2 = HO13C5O : 	8.40D-13*0.6*RO2 	;
+{5819.} 	 HO13C5O2 = HO13CO4C5 : 	8.40D-13*0.2*RO2 	;
+{5820.} 	 HO3C4CO3 + HO2 = HO3C4CO3H : 	KAPHO2*0.56 	;
+{5821.} 	 HO3C4CO3 + HO2 = HO3C4O2 + OH : 	KAPHO2*0.44 	;
+{5822.} 	 HO3C4CO3 + NO = HO3C4O2 + NO2 : 	KAPNO 	;
+{5823.} 	 HO3C4CO3 + NO2 = C5PAN8 : 	KFPAN 	;
+{5824.} 	 HO3C4CO3 + NO3 = HO3C4O2 + NO2 : 	KRO2NO3*1.74 	;
+{5825.} 	 HO3C4CO3 = HO3C4O2 : 	1.00D-11*RO2 	;
+{5826.} 	 OH + BUT2CO2H = SC4H9O2 : 	6.26D-12 	;
+{5827.} 	 BUT2CO3H = SC4H9O2 + OH : 	J(41) 	;
+{5828.} 	 OH + BUT2CO3H = BUT2CO3 : 	9.72D-12 	;
+{5829.} 	 C5PAN4 = BUT2CO3 + NO2 : 	KBPAN 	;
+{5830.} 	 OH + C5PAN4 = MEK + CO + NO2 : 	2.20D-12 	;
+{5831.} 	 C3ME3CO2H + OH = IC4H9O2 : 	8.88D-12 	;
+{5832.} 	 C3ME3CO3H + OH = C3ME3CO3 : 	1.23D-11 	;
+{5833.} 	 C3ME3CO3H = IC4H9O2 + OH : 	J(41) 	;
+{5834.} 	 C3ME3PAN + OH = IPRCHO + CO + NO2 : 	3.07D-12 	;
+{5835.} 	 C3ME3PAN = C3ME3CO3 + NO2 : 	KBPAN 	;
+{5836.} 	 C3M3CHOOOH + OH = C3ME3CHOO2 : 	2.56D-11 	;
+{5837.} 	 C3M3CHOOOH = C3ME3CHOO + OH : 	J(41)+J(17) 	;
+{5838.} 	 C3M3CHONO3 + OH = GLYOX + CH3COCH3 + NO2 : 	2.10D-11 	;
+{5839.} 	 C3M3CHONO3 = C3ME3CHOO + NO2 : 	J(55) 	;
+{5840.} 	 C3M3CHONO3 = MPRBNO3O2 + CO + HO2 : 	J(17) 	;
+{5841.} 	 C3ME3CHOO = HCOCH2O2 + CH3COCH3 : 	KDEC 	;
+{5842.} 	 IPRGLYOX + NO3 = IPRCO3 + CO + HNO3 : 	KNO3AL*8.5 	;
+{5843.} 	 IPRGLYOX + OH = IPRCO3 + CO : 	1.52D-11 	;
+{5844.} 	 IPRGLYOX = IPRCO3 + HO2 + CO : 	J(34) 	;
+{5845.} 	 C54O2 + HO2 = C54OOH : 	KRO2HO2*0.706 	;
+{5846.} 	 C54O2 + NO = C54NO3 : 	KRO2NO*0.010 	;
+{5847.} 	 C54O2 + NO = C54O + NO2 : 	KRO2NO*0.990 	;
+{5848.} 	 C54O2 + NO3 = C54O + NO2 : 	KRO2NO3 	;
+{5849.} 	 C54O2 = C54O : 	2.00D-12*0.6*RO2 	;
+{5850.} 	 C54O2 = C54OH : 	2.00D-12*0.2*RO2 	;
+{5851.} 	 C54O2 = H13C43CHO : 	2.00D-12*0.2*RO2 	;
+{5852.} 	 H2M2C3CO3 + HO2 = H2M2C3CO3H : 	KAPHO2*0.56 	;
+{5853.} 	 H2M2C3CO3 + HO2 = TBUTOLO2 + OH : 	KAPHO2*0.44 	;
+{5854.} 	 H2M2C3CO3 + NO = TBUTOLO2 + NO2 : 	KAPNO 	;
+{5855.} 	 H2M2C3CO3 + NO2 = C5PAN11 : 	KFPAN 	;
+{5856.} 	 H2M2C3CO3 + NO3 = TBUTOLO2 + NO2 : 	KRO2NO3*1.74 	;
+{5857.} 	 H2M2C3CO3 = TBUTOLO2 : 	1.00D-11*RO2 	;
+{5858.} 	 PROL1MCO3 + HO2 = MEK + HO2 + OH : 	KAPHO2*0.44 	;
+{5859.} 	 PROL1MCO3 + HO2 = PROL1MCO3H : 	KAPHO2*0.56 	;
+{5860.} 	 PROL1MCO3 + NO = MEK + HO2 + NO2 : 	KAPNO 	;
+{5861.} 	 PROL1MCO3 + NO2 = PROL1MPAN : 	KFPAN 	;
+{5862.} 	 PROL1MCO3 + NO3 = MEK + HO2 + NO2 : 	KRO2NO3*1.74 	;
+{5863.} 	 PROL1MCO3 = MEK + HO2 : 	1.00D-11*RO2 	;
+{5864.} 	 C56O2 + HO2 = C56OOH : 	KRO2HO2*0.706 	;
+{5865.} 	 C56O2 + NO = C56NO3 : 	KRO2NO*0.010 	;
+{5866.} 	 C56O2 + NO = C56O + NO2 : 	KRO2NO*0.990 	;
+{5867.} 	 C56O2 + NO3 = C56O + NO2 : 	KRO2NO3 	;
+{5868.} 	 C56O2 = C42CHO : 	2.00D-12*0.2*RO2 	;
+{5869.} 	 C56O2 = C56O : 	2.00D-12*0.6*RO2 	;
+{5870.} 	 C56O2 = C56OH : 	2.00D-12*0.2*RO2 	;
+{5871.} 	 HO2C43CO3 + HO2 = BUT2OLO2 + OH : 	KAPHO2*0.44 	;
+{5872.} 	 HO2C43CO3 + HO2 = HO2C43CO2H + O3 : 	KAPHO2*0.15 	;
+{5873.} 	 HO2C43CO3 + HO2 = HO2C43CO3H : 	KAPHO2*0.41 	;
+{5874.} 	 HO2C43CO3 + NO = BUT2OLO2 + NO2 : 	KAPNO 	;
+{5875.} 	 HO2C43CO3 + NO2 = C5PAN14 : 	KFPAN 	;
+{5876.} 	 HO2C43CO3 + NO3 = BUT2OLO2 + NO2 : 	KRO2NO3*1.74 	;
+{5877.} 	 HO2C43CO3 = BUT2OLO2 : 	1.00D-11*0.7*RO2 	;
+{5878.} 	 HO2C43CO3 = HO2C43CO2H : 	1.00D-11*0.3*RO2 	;
+{5879.} 	 C6DIAL + NO3 = CHOC4CO3 + HNO3 : 	2*KNO3AL*5.5 	;
+{5880.} 	 C6DIAL + OH = C6DIALO2 : 	5.22D-11*0.178 	;
+{5881.} 	 C6DIAL + OH = CHOC4CO3 : 	5.22D-11*0.822 	;
+{5882.} 	 C6DIAL = CHOC4O2 + HO2 + CO : 	J(15) 	;
+{5883.} 	 CYC6DIONE + OH = CYC6DIONO2 : 	1.07D-11 	;
+{5884.} 	 CYC6DIONE = C4H6 + CO + CO : 	J(22) 	;
+{5885.} 	 OH + ALLYLOH = ACR + HO2 : 	2.59D-11 	;
+{5886.} 	 MIBKCOOHO2 + HO2 = MBKCOOHOOH : 	KRO2HO2*0.770 	;
+{5887.} 	 MIBKCOOHO2 + NO = MIBKCOOHO + NO2 : 	KRO2NO 	;
+{5888.} 	 MIBKCOOHO2 + NO3 = MIBKCOOHO + NO2 : 	KRO2NO3 	;
+{5889.} 	 MIBKCOOHO2 = MIBKCOOHO : 	2.00D-12*RO2 	;
+{5890.} 	 C64O = HCHO + HO2 + CO24C5 : 	2.00D+14*EXP(-5902/TEMP) 	;
+{5891.} 	 C65O = CO24C5 + CO + HO2 : 	KDEC 	;
+{5892.} 	 HOCH2CO2H + OH = HCHO + HO2 : 	2.73D-12 	;
+{5893.} 	 HOCH2CO3H + OH = HOCH2CO3 : 	6.19D-12 	;
+{5894.} 	 HOCH2CO3H = HCHO + HO2 + OH : 	J(41) 	;
+{5895.} 	 PHAN + OH = HCHO + CO + NO2 : 	1.12D-12 	;
+{5896.} 	 PHAN = HOCH2CO3 + NO2 : 	KBPAN 	;
+{5897.} 	 IPROPOLPER + OH = CH3CHOHCO3 : 	9.34D-12 	;
+{5898.} 	 IPROPOLPER = CH3CHO + HO2 + OH : 	J(41) 	;
+{5899.} 	 IPROPOLPAN + OH = CH3CHO + CO + NO2 : 	2.34D-12 	;
+{5900.} 	 IPROPOLPAN = CH3CHOHCO3 + NO2 : 	KBPAN 	;
+{5901.} 	 C4MCONO3O = CH3COCH3 + NO3CH2CO3 : 	KDEC 	;
+{5902.} 	 NC4OHCO3 + HO2 = IBUTALOH + NO2 + OH : 	KAPHO2*0.44 	;
+{5903.} 	 NC4OHCO3 + HO2 = NC4OHCO3H : 	KAPHO2*0.56 	;
+{5904.} 	 NC4OHCO3 + NO = IBUTALOH + NO2 + NO2 : 	KAPNO 	;
+{5905.} 	 NC4OHCO3 + NO2 = NC4OHCPAN : 	KFPAN 	;
+{5906.} 	 NC4OHCO3 + NO3 = IBUTALOH + NO2 + NO2 : 	KRO2NO3*1.74 	;
+{5907.} 	 NC4OHCO3 = IBUTALOH + NO2 : 	1.00D-11*RO2 	;
+{5908.} 	 IPRHOCO2H + OH = CH3COCH3 + HO2 : 	1.72D-12 	;
+{5909.} 	 IPRHOCO3H = CH3COCH3 + HO2 + OH : 	J(41) 	;
+{5910.} 	 OH + IPRHOCO3H = IPRHOCO3 : 	4.80D-12 	;
+{5911.} 	 C4PAN5 = IPRHOCO3 + NO2 : 	KBPAN 	;
+{5912.} 	 OH + C4PAN5 = CH3COCH3 + CO + NO2 : 	4.75D-13 	;
+{5913.} 	 MBOCOCO + OH = CO + IPRHOCO3 : 	1.38D-11 	;
+{5914.} 	 MBOCOCO = CO + HO2 + IPRHOCO3 : 	J(34) 	;
+{5915.} 	 C4OH2CO3 + HO2 = C4OH2CO3H : 	KAPHO2*0.56 	;
+{5916.} 	 C4OH2CO3 + HO2 = IBUTALOH + HO2 + OH : 	KAPHO2*0.44 	;
+{5917.} 	 C4OH2CO3 + NO = IBUTALOH + HO2 + NO2 : 	KAPNO 	;
+{5918.} 	 C4OH2CO3 + NO2 = C4OH2CPAN : 	KFPAN 	;
+{5919.} 	 C4OH2CO3 + NO3 = IBUTALOH + HO2 + NO2 : 	KRO2NO3*1.74 	;
+{5920.} 	 C4OH2CO3 = IBUTALOH + HO2 : 	1.00D-11*RO2 	;
+{5921.} 	 CO2C3CO3 + HO2 = CH3COCH2O2 + OH : 	KAPHO2*0.44 	;
+{5922.} 	 CO2C3CO3 + HO2 = CO2C3CO3H : 	KAPHO2*0.56 	;
+{5923.} 	 CO2C3CO3 + NO = CH3COCH2O2 + NO2 : 	KAPNO 	;
+{5924.} 	 CO2C3CO3 + NO2 = CO2C3PAN : 	KFPAN 	;
+{5925.} 	 CO2C3CO3 + NO3 = CH3COCH2O2 + NO2 : 	KRO2NO3*1.74 	;
+{5926.} 	 CO2C3CO3 = CH3COCH2O2 : 	1.00D-11*RO2 	;
+{5927.} 	 HO2C3CO3 + HO2 = HO2C3CO2H + O3 : 	KAPHO2*0.15 	;
+{5928.} 	 HO2C3CO3 + HO2 = HO2C3CO3H : 	KAPHO2*0.41 	;
+{5929.} 	 HO2C3CO3 + HO2 = IPROPOLO2 + OH : 	KAPHO2*0.44 	;
+{5930.} 	 HO2C3CO3 + NO = IPROPOLO2 + NO2 : 	KAPNO 	;
+{5931.} 	 HO2C3CO3 + NO2 = C4PAN3 : 	KFPAN 	;
+{5932.} 	 HO2C3CO3 + NO3 = IPROPOLO2 + NO2 : 	KRO2NO3*1.74 	;
+{5933.} 	 HO2C3CO3 = HO2C3CO3H : 	1.00D-11*0.3*RO2 	;
+{5934.} 	 HO2C3CO3 = IPROPOLO2 : 	1.00D-11*0.7*RO2 	;
+{5935.} 	 IBUDIALCO3 + HO2 = PROPALO2 + OH : 	KAPHO2*0.44 	;
+{5936.} 	 IBUDIALCO3 + HO2 = PRPAL2CO2H + O3 : 	KAPHO2*0.15 	;
+{5937.} 	 IBUDIALCO3 + HO2 = PRPAL2CO3H : 	KAPHO2*0.41 	;
+{5938.} 	 IBUDIALCO3 + NO = PROPALO2 + NO2 : 	KAPNO 	;
+{5939.} 	 IBUDIALCO3 + NO2 = IBUDIALPAN : 	KFPAN 	;
+{5940.} 	 IBUDIALCO3 + NO3 = PROPALO2 + NO2 : 	KRO2NO3*1.74 	;
+{5941.} 	 IBUDIALCO3 = PROPALO2 : 	1.00D-11*0.7*RO2 	;
+{5942.} 	 IBUDIALCO3 = PRPAL2CO2H : 	1.00D-11*0.3*RO2 	;
+{5943.} 	 PROPALO2 + HO2 = PROPALOOH : 	KRO2HO2*0.520 	;
+{5944.} 	 PROPALO2 + NO = PROPALO + NO2 : 	KRO2NO 	;
+{5945.} 	 PROPALO2 + NO3 = PROPALO + NO2 : 	KRO2NO3 	;
+{5946.} 	 PROPALO2 = CH3CHOHCHO : 	2.00D-12*0.2*RO2 	;
+{5947.} 	 PROPALO2 = MGLYOX : 	2.00D-12*0.2*RO2 	;
+{5948.} 	 PROPALO2 = PROPALO : 	2.00D-12*0.6*RO2 	;
+{5949.} 	 CO3C4CO3 + HO2 = CO3C4CO2H + O3 : 	KAPHO2*0.15 	;
+{5950.} 	 CO3C4CO3 + HO2 = CO3C4CO3H : 	KAPHO2*0.41 	;
+{5951.} 	 CO3C4CO3 + HO2 = MEKCO2 + OH : 	KAPHO2*0.44 	;
+{5952.} 	 CO3C4CO3 + NO = MEKCO2 + NO2 : 	KAPNO 	;
+{5953.} 	 CO3C4CO3 + NO2 = C5PAN16 : 	KFPAN 	;
+{5954.} 	 CO3C4CO3 + NO3 = MEKCO2 + NO2 : 	KRO2NO3*1.74 	;
+{5955.} 	 CO3C4CO3 = CO3C4CO2H : 	1.00D-11*0.3*RO2 	;
+{5956.} 	 CO3C4CO3 = MEKCO2 : 	1.00D-11*0.7*RO2 	;
+{5957.} 	 HO1C4O2 + HO2 = HO1C4OOH : 	KRO2HO2*0.625 	;
+{5958.} 	 HO1C4O2 + NO = HO1C4NO3 : 	KRO2NO*0.013 	;
+{5959.} 	 HO1C4O2 + NO = HO1C4O + NO2 : 	KRO2NO*0.987 	;
+{5960.} 	 HO1C4O2 + NO3 = HO1C4O + NO2 : 	KRO2NO3 	;
+{5961.} 	 HO1C4O2 = HO1C4O : 	1.30D-12*0.6*RO2 	;
+{5962.} 	 HO1C4O2 = HOC3H6CHO : 	1.30D-12*0.2*RO2 	;
+{5963.} 	 HO1C4O2 = HOC4H8OH : 	1.30D-12*0.2*RO2 	;
+{5964.} 	 A2PANOO + HO2 = A2PANO + OH : 	KAPHO2*0.44 	;
+{5965.} 	 A2PANOO + HO2 = C2OHOCO2H + O3 : 	KAPHO2*0.15 	;
+{5966.} 	 A2PANOO + HO2 = C2OHOCOOH : 	KAPHO2*0.41 	;
+{5967.} 	 A2PANOO + NO = A2PANO + NO2 : 	KAPNO 	;
+{5968.} 	 A2PANOO + NO2 = A2PAN : 	KFPAN 	;
+{5969.} 	 A2PANOO + NO3 =  A2PANO + NO2 : 	KRO2NO3*1.74 	;
+{5970.} 	 A2PANOO = A2PANO : 	1.00E-11*0.7*RO2 	;
+{5971.} 	 A2PANOO = C2OHOCO2H : 	1.00E-11*0.3*RO2 	;
+{5972.} 	 HCOCOHCO3 + HO2 = GLYOX + HO2 + OH : 	KAPHO2*0.44 	;
+{5973.} 	 HCOCOHCO3 + HO2 = HCOCOHCO3H : 	KAPHO2*0.56 	;
+{5974.} 	 HCOCOHCO3 + NO = GLYOX + HO2 + NO2 : 	KAPNO 	;
+{5975.} 	 HCOCOHCO3 + NO2 = HCOCOHPAN : 	KFPAN 	;
+{5976.} 	 HCOCOHCO3 + NO3 = GLYOX + HO2 + NO2 : 	KRO2NO3*1.74 	;
+{5977.} 	 HCOCOHCO3 = GLYOX + HO2 : 	1.00D-11*RO2 	;
+{5978.} 	 NMGLYOX = NO2 + HCHO + CO + CO + HO2 : 	J(53) 	;
+{5979.} 	 NMGLYOX = NO3CH2CO3 + CO + HO2 : 	J(34) 	;
+{5980.} 	 NO3 + NMGLYOX = NO3CH2CO3 + CO + HNO3 : 	KNO3AL*2.4 	;
+{5981.} 	 OH + NMGLYOX = NO3CH2CO3 + CO : 	1.24D-11 	;
+{5982.} 	 HCOCO2H = HO2 + HO2 + CO : 	J(34) 	;
+{5983.} 	 OH + HCOCO2H = CO + HO2 : 	1.23D-11 	;
+{5984.} 	 HCOCO3H = HO2 + CO + OH : 	J(41)+J(15) 	;
+{5985.} 	 OH + HCOCO3H = HCOCO3 : 	1.58D-11 	;
+{5986.} 	 GLYPAN = HCOCO3 + NO2 : 	KBPAN 	;
+{5987.} 	 OH + GLYPAN = CO + CO + NO2 : 	1.22D-11 	;
+{5988.} 	 CHOMOHCO3 + HO2 = CHOMOHCO3H : 	KAPHO2*0.56 	;
+{5989.} 	 CHOMOHCO3 + HO2 = MGLYOX + HO2 + OH : 	KAPHO2*0.44 	;
+{5990.} 	 CHOMOHCO3 + NO = MGLYOX + NO2 + HO2 : 	KAPNO 	;
+{5991.} 	 CHOMOHCO3 + NO2 = CHOMOHPAN : 	KFPAN 	;
+{5992.} 	 CHOMOHCO3 + NO3 = MGLYOX + NO2 + HO2 : 	KRO2NO3*1.74 	;
+{5993.} 	 CHOMOHCO3 = MGLYOX + HO2 : 	1.00D-11*RO2 	;
+{5994.} 	 C4CO2O = GLYOX + CH3CO3 : 	KDEC*0.5 	;
+{5995.} 	 C4CO2O = MGLYOX + HO2 + CO : 	KDEC*0.5 	;
+{5996.} 	 CO2H3CO3 + HO2 = CO2H3CO3H : 	KAPHO2*0.56 	;
+{5997.} 	 CO2H3CO3 + HO2 = MGLYOX + HO2 + OH : 	KAPHO2*0.44 	;
+{5998.} 	 CO2H3CO3 + NO = MGLYOX + HO2 + NO2 : 	KAPNO 	;
+{5999.} 	 CO2H3CO3 + NO2 = C4PAN6 : 	KFPAN 	;
+{6000.} 	 CO2H3CO3 + NO3 = MGLYOX + HO2 + NO2 : 	KRO2NO3*1.74 	;
+{6001.} 	 CO2H3CO3 = MGLYOX + HO2 : 	1.00D-11*RO2 	;
+{6002.} 	 HO1C5O2 + HO2 = HO1C5OOH : 	KRO2HO2*0.706 	;
+{6003.} 	 HO1C5O2 + NO = HO1C5NO3 : 	KRO2NO*0.052 	;
+{6004.} 	 HO1C5O2 + NO = HO1C5O + NO2 : 	KRO2NO*0.948 	;
+{6005.} 	 HO1C5O2 + NO3 = HO1C5O + NO2 : 	KRO2NO3 	;
+{6006.} 	 HO1C5O2 = CO2C5OH : 	2.50D-13*0.2*RO2 	;
+{6007.} 	 HO1C5O2 = HO1C5O : 	2.50D-13*0.6*RO2 	;
+{6008.} 	 HO1C5O2 = HO2C5OH : 	2.50D-13*0.2*RO2 	;
+{6009.} 	 HO2C5O2 + HO2 = HO2C5OOH : 	KRO2HO2*0.706 	;
+{6010.} 	 HO2C5O2 + NO = HO2C5NO3 : 	KRO2NO*0.021 	;
+{6011.} 	 HO2C5O2 + NO = HO2C5O + NO2 : 	KRO2NO*0.979 	;
+{6012.} 	 HO2C5O2 + NO3 = HO2C5O + NO2 : 	KRO2NO3 	;
+{6013.} 	 HO2C5O2 = HO2C4CHO : 	1.30D-12*0.2*RO2 	;
+{6014.} 	 HO2C5O2 = HO2C5O : 	1.30D-12*0.6*RO2 	;
+{6015.} 	 HO2C5O2 = HO2C5OH : 	1.30D-12*0.2*RO2 	;
+{6016.} 	 C52O2 + HO2 = C52OOH : 	KRO2HO2*0.706 	;
+{6017.} 	 C52O2 + NO = C52NO3 : 	KRO2NO*0.021 	;
+{6018.} 	 C52O2 + NO = C52O + NO2 : 	KRO2NO*0.979 	;
+{6019.} 	 C52O2 + NO3 = C52O + NO2 : 	KRO2NO3 	;
+{6020.} 	 C52O2 = C52O : 	1.30D-12*0.6*RO2 	;
+{6021.} 	 C52O2 = C52OH : 	1.30D-12*0.2*RO2 	;
+{6022.} 	 C52O2 = HOIBUTCHO : 	1.30D-12*0.2*RO2 	;
+{6023.} 	 TBUTCO3 + HO2 = TBUTCO3H : 	KAPHO2*0.56 	;
+{6024.} 	 TBUTCO3 + HO2 = TC4H9O2 + OH : 	KAPHO2*0.44 	;
+{6025.} 	 TBUTCO3 + NO = TC4H9O2 + NO2 : 	KAPNO 	;
+{6026.} 	 TBUTCO3 + NO2 = C5PAN6 : 	KFPAN 	;
+{6027.} 	 TBUTCO3 + NO3 = TC4H9O2 + NO2 : 	KRO2NO3*1.74 	;
+{6028.} 	 TBUTCO3 = TC4H9O2 : 	1.00D-11*RO2 	;
+{6029.} 	 HO1C6O2 + HO2 = HO1C6OOH : 	KRO2HO2*0.770 	;
+{6030.} 	 HO1C6O2 + NO = HO1C6NO3 : 	KRO2NO*0.078 	;
+{6031.} 	 HO1C6O2 + NO = HO1C6O + NO2 : 	KRO2NO*0.922 	;
+{6032.} 	 HO1C6O2 + NO3 = HO1C6O + NO2 : 	KRO2NO3 	;
+{6033.} 	 HO1C6O2 = HO14C6 : 	2.50D-13*0.2*RO2 	;
+{6034.} 	 HO1C6O2 = HO1C6O : 	2.50D-13*0.6*RO2 	;
+{6035.} 	 HO1C6O2 = HO1CO4C6 : 	2.50D-13*0.2*RO2 	;
+{6036.} 	 C5H11CO3 + HO2 = C5H11CO3H : 	KAPHO2*0.56 	;
+{6037.} 	 C5H11CO3 + HO2 = PEAO2 + OH : 	KAPHO2*0.44 	;
+{6038.} 	 C5H11CO3 + NO = PEAO2 + NO2 : 	KAPNO 	;
+{6039.} 	 C5H11CO3 + NO2 = PHXN : 	KFPAN 	;
+{6040.} 	 C5H11CO3 + NO3 = PEAO2 + NO2 : 	KRO2NO3*1.74 	;
+{6041.} 	 C5H11CO3 = PEAO2 : 	1.00D-11*RO2 	;
+{6042.} 	 HO2C6O2 + HO2 = HO2C6OOH : 	KRO2HO2*0.770 	;
+{6043.} 	 HO2C6O2 + NO = HO2C6NO3 : 	KRO2NO*0.078 	;
+{6044.} 	 HO2C6O2 + NO = HO2C6O + NO2 : 	KRO2NO*0.922 	;
+{6045.} 	 HO2C6O2 + NO3 = HO2C6O + NO2 : 	KRO2NO3 	;
+{6046.} 	 HO2C6O2 = HO25C6 : 	2.50D-13*0.2*RO2 	;
+{6047.} 	 HO2C6O2 = HO2C6O : 	2.50D-13*0.6*RO2 	;
+{6048.} 	 HO2C6O2 = HO2CO5C6 : 	2.50D-13*0.2*RO2 	;
+{6049.} 	 HO3C6O2 + HO2 = HO3C6OOH : 	KRO2HO2*0.770 	;
+{6050.} 	 HO3C6O2 + NO = HO3C6NO3 : 	KRO2NO*0.031 	;
+{6051.} 	 HO3C6O2 + NO = HO3C6O + NO2 : 	KRO2NO*0.969 	;
+{6052.} 	 HO3C6O2 + NO3 = HO3C6O + NO2 : 	KRO2NO3 	;
+{6053.} 	 HO3C6O2 = HO14C6 : 	1.30D-12*0.2*RO2 	;
+{6054.} 	 HO3C6O2 = HO3C5CHO : 	1.30D-12*0.2*RO2 	;
+{6055.} 	 HO3C6O2 = HO3C6O : 	1.30D-12*0.6*RO2 	;
+{6056.} 	 HO1MC5O2 + HO2 = HO1MC5OOH : 	KRO2HO2*0.770 	;
+{6057.} 	 HO1MC5O2 + NO = HO1MC5NO3 : 	KRO2NO*0.078 	;
+{6058.} 	 HO1MC5O2 + NO = HO1MC5O + NO2 : 	KRO2NO*0.922 	;
+{6059.} 	 HO1MC5O2 + NO3 = HO1MC5O + NO2 : 	KRO2NO3 	;
+{6060.} 	 HO1MC5O2 = CO2MC5OH : 	2.50D-13*0.2*RO2 	;
+{6061.} 	 HO1MC5O2 = HO14MC5 : 	2.50D-13*0.2*RO2 	;
+{6062.} 	 HO1MC5O2 = HO1MC5O : 	2.50D-13*0.6*RO2 	;
+{6063.} 	 C54CO3 + HO2 = C54CO3H : 	KAPHO2*0.56 	;
+{6064.} 	 C54CO3 + HO2 = PEBO2 + OH : 	KAPHO2*0.44 	;
+{6065.} 	 C54CO3 + NO = PEBO2 + NO2 : 	KAPNO 	;
+{6066.} 	 C54CO3 + NO2 = C6PAN3 : 	KFPAN 	;
+{6067.} 	 C54CO3 + NO3 = PEBO2 + NO2 : 	KRO2NO3*1.74 	;
+{6068.} 	 C54CO3 = PEBO2 : 	1.00D-11*RO2 	;
+{6069.} 	 HO2MC5O2 + HO2 = HO2MC5OOH : 	KRO2HO2*0.770 	;
+{6070.} 	 HO2MC5O2 + NO = HO2MC5NO3 : 	KRO2NO*0.031 	;
+{6071.} 	 HO2MC5O2 + NO = HO2MC5O + NO2 : 	KRO2NO*0.969 	;
+{6072.} 	 HO2MC5O2 + NO3 = HO2MC5O + NO2 : 	KRO2NO3 	;
+{6073.} 	 HO2MC5O2 = HO14MC5 : 	1.30D-12*0.2*RO2 	;
+{6074.} 	 HO2MC5O2 = HO2C54CHO : 	1.30D-12*0.2*RO2 	;
+{6075.} 	 HO2MC5O2 = HO2MC5O : 	1.30D-12*0.6*RO2 	;
+{6076.} 	 EIPKAO2 + HO2 = EIPKAOOH : 	KRO2HO2*0.770 	;
+{6077.} 	 EIPKAO2 + NO = EIPKAO + NO2 : 	KRO2NO 	;
+{6078.} 	 EIPKAO2 + NO3 = EIPKAO + NO2 : 	KRO2NO3 	;
+{6079.} 	 EIPKAO2 = EIPKAO : 	9.20D-14*0.7*RO2 	;
+{6080.} 	 EIPKAO2 = EIPKAOH : 	9.20D-14*0.3*RO2 	;
+{6081.} 	 EIPKBO2 + HO2 = EIPKBOOH : 	KRO2HO2*0.770 	;
+{6082.} 	 EIPKBO2 + NO = EIPKBNO3 : 	KRO2NO*0.078 	;
+{6083.} 	 EIPKBO2 + NO = EIPKBO + NO2 : 	KRO2NO*0.922 	;
+{6084.} 	 EIPKBO2 + NO3 = EIPKBO + NO2 : 	KRO2NO3 	;
+{6085.} 	 EIPKBO2 = CO3C54CHO : 	1.30D-12*0.2*RO2 	;
+{6086.} 	 EIPKBO2 = EIPKBO : 	1.30D-12*0.6*RO2 	;
+{6087.} 	 EIPKBO2 = EIPKBOH : 	1.30D-12*0.2*RO2 	;
+{6088.} 	 HO2M2C5O2 + HO2 = HO2M2C5OOH : 	KRO2HO2*0.770 	;
+{6089.} 	 HO2M2C5O2 + NO = HO2M2C5NO3 : 	KRO2NO*0.031 	;
+{6090.} 	 HO2M2C5O2 + NO = HO2M2C5O + NO2 : 	KRO2NO*0.969 	;
+{6091.} 	 HO2M2C5O2 + NO3 = HO2M2C5O + NO2 : 	KRO2NO3 	;
+{6092.} 	 HO2M2C5O2 = H2M2C4CHO : 	1.30D-12*0.2*RO2 	;
+{6093.} 	 HO2M2C5O2 = HO2M2C5O : 	1.30D-12*0.6*RO2 	;
+{6094.} 	 HO2M2C5O2 = HO2M2C5OH : 	1.30D-12*0.2*RO2 	;
+{6095.} 	 H1MC5O2 + HO2 = H1MC5OOH : 	KRO2HO2*0.770 	;
+{6096.} 	 H1MC5O2 + NO = H1MC5NO3 : 	KRO2NO*0.078 	;
+{6097.} 	 H1MC5O2 + NO = H1MC5O + NO2 : 	KRO2NO*0.922 	;
+{6098.} 	 H1MC5O2 + NO3 = H1MC5O + NO2 : 	KRO2NO3 	;
+{6099.} 	 H1MC5O2 = CO2M3C5OH : 	2.50D-13*0.2*RO2 	;
+{6100.} 	 H1MC5O2 = H1MC5O : 	2.50D-13*0.6*RO2 	;
+{6101.} 	 H1MC5O2 = HO14M3C5 : 	2.50D-13*0.2*RO2 	;
+{6102.} 	 M3C4CO3 + HO2 = IPEAO2 + OH : 	KAPHO2*0.44 	;
+{6103.} 	 M3C4CO3 + HO2 = M3C4CO3H : 	KAPHO2*0.56 	;
+{6104.} 	 M3C4CO3 + NO = IPEAO2 + NO2 : 	KAPNO 	;
+{6105.} 	 M3C4CO3 + NO2 = C6PAN10 : 	KFPAN 	;
+{6106.} 	 M3C4CO3 + NO3 = IPEAO2 + NO2 : 	KRO2NO3*1.74 	;
+{6107.} 	 M3C4CO3 = IPEAO2 : 	1.00D-11*RO2 	;
+{6108.} 	 H2MC5O2 + HO2 = H2MC5OOH : 	KRO2HO2*0.770 	;
+{6109.} 	 H2MC5O2 + NO = H2MC5NO3 : 	KRO2NO*0.031 	;
+{6110.} 	 H2MC5O2 + NO = H2MC5O + NO2 : 	KRO2NO*0.969 	;
+{6111.} 	 H2MC5O2 + NO3 = H2MC5O + NO2 : 	KRO2NO3 	;
+{6112.} 	 H2MC5O2 = H2M3C4CHO : 	1.30D-12*0.2*RO2 	;
+{6113.} 	 H2MC5O2 = H2MC5O : 	1.30D-12*0.6*RO2 	;
+{6114.} 	 H2MC5O2 = HO14M3C5 : 	1.30D-12*0.2*RO2 	;
+{6115.} 	 M2BKAO2 + HO2 = M2BKAOOH : 	KRO2HO2*0.770 	;
+{6116.} 	 M2BKAO2 + NO = M2BKANO3 : 	KRO2NO*0.195 	;
+{6117.} 	 M2BKAO2 + NO = M2BKAO + NO2 : 	KRO2NO*0.805 	;
+{6118.} 	 M2BKAO2 + NO3 = M2BKAO + NO2 : 	KRO2NO3 	;
+{6119.} 	 M2BKAO2 = CO24M3C5 : 	2.50D-13*0.2*RO2 	;
+{6120.} 	 M2BKAO2 = M2BKAO : 	2.50D-13*0.6*RO2 	;
+{6121.} 	 M2BKAO2 = M2BKAOH : 	2.50D-13*0.2*RO2 	;
+{6122.} 	 M2BKBO2 + HO2 = M2BKBOOH : 	KRO2HO2*0.770 	;
+{6123.} 	 M2BKBO2 + NO = M2BKBO + NO2 : 	KRO2NO 	;
+{6124.} 	 M2BKBO2 + NO3 = M2BKBO + NO2 : 	KRO2NO3 	;
+{6125.} 	 M2BKBO2 = M2BKBO : 	9.20D-14*0.7*RO2 	;
+{6126.} 	 M2BKBO2 = M2BKBOH : 	9.20D-14*0.3*RO2 	;
+{6127.} 	 HM33C4O2 + HO2 = HM33C4OOH : 	KRO2HO2*0.770 	;
+{6128.} 	 HM33C4O2 + NO = HM33C4NO3 : 	KRO2NO*0.031 	;
+{6129.} 	 HM33C4O2 + NO = HM33C4O + NO2 : 	KRO2NO*0.969 	;
+{6130.} 	 HM33C4O2 + NO3 = HM33C4O + NO2 : 	KRO2NO3 	;
+{6131.} 	 HM33C4O2 = HM33C3CHO : 	1.30D-12*0.2*RO2 	;
+{6132.} 	 HM33C4O2 = HM33C4O : 	1.30D-12*0.6*RO2 	;
+{6133.} 	 HM33C4O2 = HM33C4OH : 	1.30D-12*0.2*RO2 	;
+{6134.} 	 M22C3CO3 + HO2 = M22C3CO3H : 	KAPHO2*0.56 	;
+{6135.} 	 M22C3CO3 + HO2 = NEOPO2 + OH : 	KAPHO2*0.44 	;
+{6136.} 	 M22C3CO3 + NO = NEOPO2 + NO2 : 	KAPNO 	;
+{6137.} 	 M22C3CO3 + NO2 = C6PAN17 : 	KFPAN 	;
+{6138.} 	 M22C3CO3 + NO3 = NEOPO2 + NO2 : 	KRO2NO3*1.74 	;
+{6139.} 	 M22C3CO3 = NEOPO2 : 	1.00D-11*RO2 	;
+{6140.} 	 HM22C4O2 + HO2 = HM22C4OOH : 	KRO2HO2*0.770 	;
+{6141.} 	 HM22C4O2 + NO = HM22C4NO3 : 	KRO2NO*0.031 	;
+{6142.} 	 HM22C4O2 + NO = HM22C4O + NO2 : 	KRO2NO*0.969 	;
+{6143.} 	 HM22C4O2 + NO3 = HM22C4O + NO2 : 	KRO2NO3 	;
+{6144.} 	 HM22C4O2 = HM22C3CHO : 	1.30D-12*0.2*RO2 	;
+{6145.} 	 HM22C4O2 = HM22C4O : 	1.30D-12*0.6*RO2 	;
+{6146.} 	 HM22C4O2 = HM33C4OH : 	1.30D-12*0.2*RO2 	;
+{6147.} 	 M33C3CO3 + HO2 = IPECO2 + OH : 	KAPHO2*0.44 	;
+{6148.} 	 M33C3CO3 + HO2 = M33C3CO2H + O3 : 	KAPHO2*0.15 	;
+{6149.} 	 M33C3CO3 + HO2 = M33C3CO3H : 	KAPHO2*0.41 	;
+{6150.} 	 M33C3CO3 + NO = IPECO2 + NO2 : 	KAPNO 	;
+{6151.} 	 M33C3CO3 + NO2 = C6PAN15 : 	KFPAN 	;
+{6152.} 	 M33C3CO3 + NO3 = IPECO2 + NO2 : 	KRO2NO3*1.74 	;
+{6153.} 	 M33C3CO3 = IPECO2 : 	1.00D-11*0.7*RO2 	;
+{6154.} 	 M33C3CO3 = M33C3CO2H : 	1.00D-11*0.3*RO2 	;
+{6155.} 	 HM23C4O2 + HO2 = HM23C4OOH : 	KRO2HO2*0.770 	;
+{6156.} 	 HM23C4O2 + NO = HM23C4NO3 : 	KRO2NO*0.031 	;
+{6157.} 	 HM23C4O2 + NO = HM23C4O + NO2 : 	KRO2NO*0.969 	;
+{6158.} 	 HM23C4O2 + NO3 = HM23C4O + NO2 : 	KRO2NO3 	;
+{6159.} 	 HM23C4O2 = HM23C4O : 	1.30D-12*0.6*RO2 	;
+{6160.} 	 HM23C4O2 = HM23C4OH : 	1.30D-12*0.2*RO2 	;
+{6161.} 	 HM23C4O2 = HM2C43CHO : 	1.30D-12*0.2*RO2 	;
+{6162.} 	 M2C43CO3 + HO2 = IPEBO2 + OH : 	KAPHO2*0.44 	;
+{6163.} 	 M2C43CO3 + HO2 = M2C43CO2H + O3 : 	KAPHO2*0.15 	;
+{6164.} 	 M2C43CO3 + HO2 = M2C43CO3H : 	KAPHO2*0.41 	;
+{6165.} 	 M2C43CO3 + NO = IPEBO2 + NO2 : 	KAPNO 	;
+{6166.} 	 M2C43CO3 + NO2 = C6PAN18 : 	KFPAN 	;
+{6167.} 	 M2C43CO3 + NO3 = IPEBO2 + NO2 : 	KRO2NO3*1.74 	;
+{6168.} 	 M2C43CO3 = IPEBO2 : 	1.00D-11*0.7*RO2 	;
+{6169.} 	 M2C43CO3 = M2C43CO2H : 	1.00D-11*0.3*RO2 	;
+{6170.} 	 HO3C76O2 + HO2 = HO3C76OOH : 	KRO2HO2*0.820 	;
+{6171.} 	 HO3C76O2 + NO = HO3C76NO3 : 	KRO2NO*0.111 	;
+{6172.} 	 HO3C76O2 + NO = HO3C76O + NO2 : 	KRO2NO*0.889 	;
+{6173.} 	 HO3C76O2 + NO3 = HO3C76O + NO2 : 	KRO2NO3 	;
+{6174.} 	 HO3C76O2 = HO25C7 : 	2.50D-13*0.2*RO2 	;
+{6175.} 	 HO3C76O2 = HO3C76O : 	2.50D-13*0.6*RO2 	;
+{6176.} 	 HO3C76O2 = HO3CO6C7 : 	2.50D-13*0.2*RO2 	;
+{6177.} 	 CO3C75O2 + HO2 = CO3C75OOH : 	KRO2HO2*0.820 	;
+{6178.} 	 CO3C75O2 + NO = CO3C75O + NO2 : 	KRO2NO 	;
+{6179.} 	 CO3C75O2 + NO3 = CO3C75O + NO2 : 	KRO2NO3 	;
+{6180.} 	 CO3C75O2 = CO3C75O : 	2.50D-13*RO2 	;
+{6181.} 	 H2M5C65O2 + HO2 = H2M5C65OOH : 	KRO2HO2*0.820 	;
+{6182.} 	 H2M5C65O2 + NO = H2M5C65NO3 : 	KRO2NO*0.033 	;
+{6183.} 	 H2M5C65O2 + NO = H2M5C65O + NO2 : 	KRO2NO*0.967 	;
+{6184.} 	 H2M5C65O2 + NO3 = H2M5C65O + NO2 : 	KRO2NO3 	;
+{6185.} 	 H2M5C65O2 = H25M2C6 : 	6.70D-15*0.3*RO2 	;
+{6186.} 	 H2M5C65O2 = H2M5C65O : 	6.70D-15*0.7*RO2 	;
+{6187.} 	 C75O2 + HO2 = C75OOH : 	KRO2HO2*0.820 	;
+{6188.} 	 C75O2 + NO = C75O + NO2 : 	KRO2NO 	;
+{6189.} 	 C75O2 + NO3 = C75O + NO2 : 	KRO2NO3 	;
+{6190.} 	 C75O2 = C75O : 	8.80D-13*RO2 	;
+{6191.} 	 H2M2C65O2 + HO2 = H2M2C65OOH : 	KRO2HO2*0.820 	;
+{6192.} 	 H2M2C65O2 + NO = H2M2C65NO3 : 	KRO2NO*0.111 	;
+{6193.} 	 H2M2C65O2 + NO = H2M2C65O + NO2 : 	KRO2NO*0.889 	;
+{6194.} 	 H2M2C65O2 + NO3 = H2M2C65O + NO2 : 	KRO2NO3 	;
+{6195.} 	 H2M2C65O2 = H25M2C6 : 	2.50D-13*0.2*RO2 	;
+{6196.} 	 H2M2C65O2 = H2M2C65O : 	2.50D-13*0.6*RO2 	;
+{6197.} 	 H2M2C65O2 = H2M2CO5C6 : 	2.50D-13*0.2*RO2 	;
+{6198.} 	 H2M4C65O2 + HO2 = H2M4C65OOH : 	KRO2HO2*0.820 	;
+{6199.} 	 H2M4C65O2 + NO = H2M4C65NO3 : 	KRO2NO*0.111 	;
+{6200.} 	 H2M4C65O2 + NO = H2M4C65O + NO2 : 	KRO2NO*0.889 	;
+{6201.} 	 H2M4C65O2 + NO3 = H2M4C65O + NO2 : 	KRO2NO3 	;
+{6202.} 	 H2M4C65O2 = H25M3C6 : 	2.50D-13*0.2*RO2 	;
+{6203.} 	 H2M4C65O2 = H2M4C65O : 	2.50D-13*0.6*RO2 	;
+{6204.} 	 H2M4C65O2 = H2M4CO5C6 : 	2.50D-13*0.2*RO2 	;
+{6205.} 	 C710O2 + HO2 = C710OOH : 	KRO2HO2*0.820 	;
+{6206.} 	 C710O2 + NO = C710O + NO2 : 	KRO2NO 	;
+{6207.} 	 C710O2 + NO3 = C710O + NO2 : 	KRO2NO3 	;
+{6208.} 	 C710O2 = C710O : 	6.70D-15*RO2 	;
+{6209.} 	 H3M3C6O2 + HO2 = H3M3C6OOH : 	KRO2HO2*0.820 	;
+{6210.} 	 H3M3C6O2 + NO = H3M3C6NO3 : 	KRO2NO*0.044 	;
+{6211.} 	 H3M3C6O2 + NO = H3M3C6O + NO2 : 	KRO2NO*0.956 	;
+{6212.} 	 H3M3C6O2 + NO3 = H3M3C6O + NO2 : 	KRO2NO3 	;
+{6213.} 	 H3M3C6O2 = H14M4C6 : 	1.30D-12*0.2*RO2 	;
+{6214.} 	 H3M3C6O2 = H3M3C5CHO : 	1.30D-12*0.2*RO2 	;
+{6215.} 	 H3M3C6O2 = H3M3C6O : 	1.30D-12*0.6*RO2 	;
+{6216.} 	 HO3C86O2 + HO2 = HO3C86OOH : 	KRO2HO2*0.859 	;
+{6217.} 	 HO3C86O2 + NO = HO3C86NO3 : 	KRO2NO*0.138 	;
+{6218.} 	 HO3C86O2 + NO = HO3C86O + NO2 : 	KRO2NO*0.862 	;
+{6219.} 	 HO3C86O2 + NO3 = HO3C86O + NO2 : 	KRO2NO3 	;
+{6220.} 	 HO3C86O2 = HO36C8 : 	2.50D-13*0.2*RO2 	;
+{6221.} 	 HO3C86O2 = HO3C86O : 	2.50D-13*0.6*RO2 	;
+{6222.} 	 HO3C86O2 = HO3CO6C8 : 	2.50D-13*0.2*RO2 	;
+{6223.} 	 CO3C85O2 + HO2 = CO3C85OOH : 	KRO2HO2*0.859 	;
+{6224.} 	 CO3C85O2 + NO = CO3C85O + NO2 : 	KRO2NO 	;
+{6225.} 	 CO3C85O2 + NO3 = CO3C85O + NO2 : 	KRO2NO3 	;
+{6226.} 	 CO3C85O2 = CO3C85O : 	2.50D-13*RO2 	;
+{6227.} 	 HO3C96O2 + HO2 = HO3C96OOH : 	KRO2HO2*0.890 	;
+{6228.} 	 HO3C96O2 + NO = HO3C96NO3 : 	KRO2NO*0.157 	;
+{6229.} 	 HO3C96O2 + NO = HO3C96O + NO2 : 	KRO2NO*0.843 	;
+{6230.} 	 HO3C96O2 + NO3 = HO3C96O + NO2 : 	KRO2NO3 	;
+{6231.} 	 HO3C96O2 = HO36C9 : 	2.50D-13*0.2*RO2 	;
+{6232.} 	 HO3C96O2 = HO3C96O : 	2.50D-13*0.6*RO2 	;
+{6233.} 	 HO3C96O2 = HO4CO7C9 : 	2.50D-13*0.2*RO2 	;
+{6234.} 	 C91O2 + HO2 = C91OOH : 	KRO2HO2*0.890 	;
+{6235.} 	 C91O2 + NO = C91O + NO2 : 	KRO2NO 	;
+{6236.} 	 C91O2 + NO3 = C91O + NO2 : 	KRO2NO3 	;
+{6237.} 	 C91O2 = C91O : 	2.50D-13*RO2 	;
+{6238.} 	 HO3C106O2 + HO2 = HO3C106OOH : 	KRO2HO2*0.914 	;
+{6239.} 	 HO3C106O2 + NO = HO3C106NO3 : 	KRO2NO*0.167 	;
+{6240.} 	 HO3C106O2 + NO = HO3C106O + NO2 : 	KRO2NO*0.833 	;
+{6241.} 	 HO3C106O2 + NO3 = HO3C106O + NO2 : 	KRO2NO3 	;
+{6242.} 	 HO3C106O2 = HO36C10 : 	2.50D-13*0.2*RO2 	;
+{6243.} 	 HO3C106O2 = HO3C106O : 	2.50D-13*0.6*RO2 	;
+{6244.} 	 HO3C106O2 = HO5CO8C10 : 	2.50D-13*0.2*RO2 	;
+{6245.} 	 C101O2 + HO2 = C101OOH : 	KRO2HO2*0.914 	;
+{6246.} 	 C101O2 + NO = C101O + NO2 : 	KRO2NO 	;
+{6247.} 	 C101O2 + NO3 = C101O + NO2 : 	KRO2NO3 	;
+{6248.} 	 C101O2 = C101O : 	2.50D-13*RO2 	;
+{6249.} 	 HO3C116O2 + HO2 = HO3C116OOH : 	KRO2HO2*0.932 	;
+{6250.} 	 HO3C116O2 + NO = HO3C116NO3 : 	KRO2NO*0.172 	;
+{6251.} 	 HO3C116O2 + NO = HO3C116O + NO2 : 	KRO2NO*0.828 	;
+{6252.} 	 HO3C116O2 + NO3 = HO3C116O + NO2 : 	KRO2NO3 	;
+{6253.} 	 HO3C116O2 = HO36C11 : 	2.50D-13*0.2*RO2 	;
+{6254.} 	 HO3C116O2 = HO3C116O : 	2.50D-13*0.6*RO2 	;
+{6255.} 	 HO3C116O2 = HO6CO9C11 : 	2.50D-13*0.2*RO2 	;
+{6256.} 	 C111O2 + HO2 = C111OOH : 	KRO2HO2*0.932 	;
+{6257.} 	 C111O2 + NO = C111O + NO2 : 	KRO2NO 	;
+{6258.} 	 C111O2 + NO3 = C111O + NO2 : 	KRO2NO3 	;
+{6259.} 	 C111O2 = C111O : 	2.50D-13*RO2 	;
+{6260.} 	 HO3C126O2 + HO2 = HO3C126OOH : 	KRO2HO2*0.947 	;
+{6261.} 	 HO3C126O2 + NO = HO3C126NO3 : 	KRO2NO*0.176 	;
+{6262.} 	 HO3C126O2 + NO = HO3C126O + NO2 : 	KRO2NO*0.824 	;
+{6263.} 	 HO3C126O2 + NO3 = HO3C126O + NO2 : 	KRO2NO3 	;
+{6264.} 	 HO3C126O2 = HO36C12 : 	2.50D-13*0.2*RO2 	;
+{6265.} 	 HO3C126O2 = HO3C126O : 	2.50D-13*0.6*RO2 	;
+{6266.} 	 HO3C126O2 = HO7CO10C12 : 	2.50D-13*0.2*RO2 	;
+{6267.} 	 C121O2 + HO2 = C121OOH : 	KRO2HO2*0.947 	;
+{6268.} 	 C121O2 + NO = C121O + NO2 : 	KRO2NO 	;
+{6269.} 	 C121O2 + NO3 = C121O + NO2 : 	KRO2NO3 	;
+{6270.} 	 C121O2 = C121O : 	2.50D-13*RO2 	;
+{6271.} 	 CO1C6O2 + HO2 = CO1C6OOH : 	KRO2HO2*0.770 	;
+{6272.} 	 CO1C6O2 + NO = CO1C6NO3 : 	KRO2NO*0.078 	;
+{6273.} 	 CO1C6O2 + NO = CO1C6O + NO2 : 	KRO2NO*0.922 	;
+{6274.} 	 CO1C6O2 + NO3 = CO1C6O + NO2 : 	KRO2NO3 	;
+{6275.} 	 CO1C6O2 = C6DIAL : 	1.30D-12*RO2*0.2 	;
+{6276.} 	 CO1C6O2 = CO1C6O : 	1.30D-12*RO2*0.6 	;
+{6277.} 	 CO1C6O2 = CO1C6OH : 	1.30D-12*RO2*0.2 	;
+{6278.} 	 NO3CH2CO3 + HO2 = HCHO + NO2 + OH : 	KAPHO2*0.44 	;
+{6279.} 	 NO3CH2CO3 + HO2 = NO3CH2CO2H + O3 : 	KAPHO2*0.15 	;
+{6280.} 	 NO3CH2CO3 + HO2 = NO3CH2CO3H : 	KAPHO2*0.41 	;
+{6281.} 	 NO3CH2CO3 + NO = HCHO + NO2 + NO2 : 	KAPNO 	;
+{6282.} 	 NO3CH2CO3 + NO2 = NO3CH2PAN : 	KFPAN 	;
+{6283.} 	 NO3CH2CO3 + NO3 = HCHO + NO2 + NO2 : 	KRO2NO3*1.74 	;
+{6284.} 	 NO3CH2CO3 = HCHO + NO2 : 	1.00D-11*0.7*RO2 	;
+{6285.} 	 NO3CH2CO3 = NO3CH2CO2H : 	1.00D-11*0.3*RO2 	;
+{6286.} 	 PRNO3CO3 + HO2 = CH3CHO + NO2 + OH : 	KAPHO2*0.44 	;
+{6287.} 	 PRNO3CO3 + HO2 = PRNO3CO2H + O3 : 	KAPHO2*0.15 	;
+{6288.} 	 PRNO3CO3 + HO2 = PRNO3CO3H : 	KAPHO2*0.41 	;
+{6289.} 	 PRNO3CO3 + NO = CH3CHO + NO2 + NO2 : 	KAPNO 	;
+{6290.} 	 PRNO3CO3 + NO2 = PRNO3PAN : 	KFPAN 	;
+{6291.} 	 PRNO3CO3 + NO3 = CH3CHO + NO2 + NO2 : 	KRO2NO3*1.74 	;
+{6292.} 	 PRNO3CO3 = CH3CHO + NO2 : 	1.00D-11*0.7*RO2 	;
+{6293.} 	 PRNO3CO3 = PRNO3CO2H : 	1.00D-11*0.3*RO2 	;
+{6294.} 	 PROPALO = CH3CHO + HO2 + CO : 	KDEC 	;
+{6295.} 	 CO3C4NO3O2 + HO2 = COC4NO3OOH : 	KRO2HO2*0.625 	;
+{6296.} 	 CO3C4NO3O2 + NO = CO3C4NO3O + NO2 : 	KRO2NO 	;
+{6297.} 	 CO3C4NO3O2 + NO3 = CO3C4NO3O + NO2 : 	KRO2NO3 	;
+{6298.} 	 CO3C4NO3O2 = CO23C4NO3 : 	2.50D-13*0.2*RO2 	;
+{6299.} 	 CO3C4NO3O2 = CO3C4NO3O : 	2.50D-13*0.6*RO2 	;
+{6300.} 	 CO3C4NO3O2 = CO3C4NO3OH : 	2.50D-13*0.2*RO2 	;
+{6301.} 	 BUTAL2O = C2H5CHO + HO2 + CO : 	KDEC 	;
+{6302.} 	 HO3C3CO3 + HO2 = C2H5CHO + HO2 + OH : 	KAPHO2*0.44 	;
+{6303.} 	 HO3C3CO3 + HO2 = HO3C3CO3H : 	KAPHO2*0.56 	;
+{6304.} 	 HO3C3CO3 + NO = C2H5CHO + HO2 + NO2 : 	KAPNO 	;
+{6305.} 	 HO3C3CO3 + NO2 = HO3C3PAN : 	KFPAN 	;
+{6306.} 	 HO3C3CO3 + NO3 = C2H5CHO + HO2 + NO2 : 	KRO2NO3*1.74 	;
+{6307.} 	 HO3C3CO3 = C2H5CHO + HO2 : 	1.00D-11*RO2 	;
+{6308.} 	 MPRBNO3CO3 + HO2 = CH3COCH3 + NO2 + OH : 	KAPHO2*0.44 	;
+{6309.} 	 MPRBNO3CO3 + HO2 = MPRNO3CO2H + O3 : 	KAPHO2*0.15 	;
+{6310.} 	 MPRBNO3CO3 + HO2 = MPRNO3CO3H : 	KAPHO2*0.41 	;
+{6311.} 	 MPRBNO3CO3 + NO = CH3COCH3 + NO2 + NO2 : 	KAPNO 	;
+{6312.} 	 MPRBNO3CO3 + NO2 = MPRBNO3PAN : 	KFPAN 	;
+{6313.} 	 MPRBNO3CO3 + NO3 = CH3COCH3 + NO2 + NO2 : 	KRO2NO3*1.74 	;
+{6314.} 	 MPRBNO3CO3 = CH3COCH3 + NO2 : 	1.00D-11*0.7*RO2 	;
+{6315.} 	 MPRBNO3CO3 = MPRNO3CO2H : 	1.00D-11*0.3*RO2 	;
+{6316.} 	 C5NO3COAO2 + HO2 = C5NO3OAOOH : 	KRO2HO2*0.706 	;
+{6317.} 	 C5NO3COAO2 + NO = C5NO3COAO + NO2 : 	KRO2NO 	;
+{6318.} 	 C5NO3COAO2 + NO3 = C5NO3COAO + NO2 : 	KRO2NO3 	;
+{6319.} 	 C5NO3COAO2 = C51NO324CO : 	8.80D-13*0.2*RO2 	;
+{6320.} 	 C5NO3COAO2 = C5NO3CO4OH : 	8.80D-13*0.2*RO2 	;
+{6321.} 	 C5NO3COAO2 = C5NO3COAO : 	8.80D-13*0.6*RO2 	;
+{6322.} 	 PEN2ONE1O = C3H7CO3 + HCHO : 	KDEC 	;
+{6323.} 	 C4NO3CO3 + HO2 = C3H7CHO + NO2 + OH : 	KAPHO2*0.44 	;
+{6324.} 	 C4NO3CO3 + HO2 = C4NO3CO2H + O3 : 	KAPHO2*0.15 	;
+{6325.} 	 C4NO3CO3 + HO2 = C4NO3CO3H : 	KAPHO2*0.41 	;
+{6326.} 	 C4NO3CO3 + NO = C3H7CHO + NO2 + NO2 : 	KAPNO 	;
+{6327.} 	 C4NO3CO3 + NO2 = C4NO3PAN : 	KFPAN 	;
+{6328.} 	 C4NO3CO3 + NO3 = C3H7CHO + NO2 + NO2 : 	KRO2NO3*1.74 	;
+{6329.} 	 C4NO3CO3 = C3H7CHO + NO2 : 	1.00D-11*0.7*RO2 	;
+{6330.} 	 C4NO3CO3 = C4NO3CO2H : 	1.00D-11*0.3*RO2 	;
+{6331.} 	 C4CHO2O = C3H7CHO + HO2 + CO : 	KDEC 	;
+{6332.} 	 C5OH2CO4O2 + HO2 = C5OHCO4OOH : 	KRO2HO2*0.706 	;
+{6333.} 	 C5OH2CO4O2 + NO = C5OH2CO4O + NO2 : 	KRO2NO 	;
+{6334.} 	 C5OH2CO4O2 + NO3 = C5OH2CO4O + NO2 : 	KRO2NO3 	;
+{6335.} 	 C5OH2CO4O2 = C5OH2CO4O : 	8.80D-13*RO2 	;
+{6336.} 	 C4OHCO3 + HO2 = C3H7CHO + HO2 + OH : 	KAPHO2*0.44 	;
+{6337.} 	 C4OHCO3 + HO2 = C4OHCO3H : 	KAPHO2*0.56 	;
+{6338.} 	 C4OHCO3 + NO = C3H7CHO + HO2 + NO2 : 	KAPNO 	;
+{6339.} 	 C4OHCO3 + NO2 = C4OHPAN : 	KFPAN 	;
+{6340.} 	 C4OHCO3 + NO3 = C3H7CHO + HO2 + NO2 : 	KRO2NO3*1.74 	;
+{6341.} 	 C4OHCO3 = C3H7CHO + HO2 : 	1.00D-11*RO2 	;
+{6342.} 	 C5NO3CO4O2 + HO2 = C5NO3O4OOH : 	KRO2HO2*0.706 	;
+{6343.} 	 C5NO3CO4O2 + NO = C5NO3CO4O + NO2 : 	KRO2NO 	;
+{6344.} 	 C5NO3CO4O2 + NO3 = C5NO3CO4O + NO2 : 	KRO2NO3 	;
+{6345.} 	 C5NO3CO4O2 = C5NO3CO4O : 	8.80D-13*RO2 	;
+{6346.} 	 C5CONO34O2 + HO2 = C5ONO34OOH : 	KRO2HO2*0.706 	;
+{6347.} 	 C5CONO34O2 + NO = C5CONO34O + NO2 : 	KRO2NO 	;
+{6348.} 	 C5CONO34O2 + NO3 = C5CONO34O + NO2 : 	KRO2NO3 	;
+{6349.} 	 C5CONO34O2 = C5CONO34O : 	8.80D-13*RO2 	;
+{6350.} 	 C43NO3CO3 + HO2 = C43NO3CO2H + O3 : 	KAPHO2*0.15 	;
+{6351.} 	 C43NO3CO3 + HO2 = C43NO3CO3H : 	KAPHO2*0.41 	;
+{6352.} 	 C43NO3CO3 + HO2 = MEK + NO2 + OH : 	KAPHO2*0.44 	;
+{6353.} 	 C43NO3CO3 + NO = MEK + NO2 + NO2 : 	KAPNO 	;
+{6354.} 	 C43NO3CO3 + NO2 = C43NO3PAN : 	KFPAN 	;
+{6355.} 	 C43NO3CO3 + NO3 = MEK + NO2 + NO2 : 	KRO2NO3*1.74 	;
+{6356.} 	 C43NO3CO3 = C43NO3CO2H : 	1.00D-11*0.3*RO2 	;
+{6357.} 	 C43NO3CO3 = MEK + NO2 : 	1.00D-11*0.7*RO2 	;
+{6358.} 	 C42CHO2O = MEK + HO2 + CO : 	KDEC 	;
+{6359.} 	 C4MCONO3O2 + HO2 = C5CONO3OOH : 	KRO2HO2*0.706 	;
+{6360.} 	 C4MCONO3O2 + NO = C4MCONO3O + NO2 : 	KRO2NO 	;
+{6361.} 	 C4MCONO3O2 + NO3 = C4MCONO3O + NO2 : 	KRO2NO3 	;
+{6362.} 	 C4MCONO3O2 = C4MCONO3O : 	9.20D-14*0.7*RO2 	;
+{6363.} 	 C4MCONO3O2 = C4MCONO3OH : 	9.20D-14*0.3*RO2 	;
+{6364.} 	 IPRCOMO = HCHO + IPRCO3 : 	KDEC 	;
+{6365.} 	 C3MNO3CO3 + HO2 = C3MNO3CO2H + O3 : 	KAPHO2*0.15 	;
+{6366.} 	 C3MNO3CO3 + HO2 = C3MNO3CO3H : 	KAPHO2*0.41 	;
+{6367.} 	 C3MNO3CO3 + HO2 = IPRCHO + NO2 + OH : 	KAPHO2*0.44 	;
+{6368.} 	 C3MNO3CO3 + NO = IPRCHO + NO2 + NO2 : 	KAPNO 	;
+{6369.} 	 C3MNO3CO3 + NO2 = C3MNO3PAN : 	KFPAN 	;
+{6370.} 	 C3MNO3CO3 + NO3 = IPRCHO + NO2 : 	KRO2NO3*1.74 	;
+{6371.} 	 C3MNO3CO3 = C3MNO3CO2H : 	1.00D-11*0.3*RO2 	;
+{6372.} 	 C3MNO3CO3 = IPRCHO + NO2 : 	1.00D-11*0.7*RO2 	;
+{6373.} 	 M3BUTAL2O = IPRCHO + HO2 + CO : 	KDEC 	;
+{6374.} 	 C3M3OH2CO3 + HO2 = C3M3OHCO3H : 	KAPHO2*0.56 	;
+{6375.} 	 C3M3OH2CO3 + HO2 = IPRCHO + HO2 + OH : 	KAPHO2*0.44 	;
+{6376.} 	 C3M3OH2CO3 + NO = IPRCHO + HO2 + NO2 : 	KAPNO 	;
+{6377.} 	 C3M3OH2CO3 + NO2 = C3M3OH2PAN : 	KFPAN 	;
+{6378.} 	 C3M3OH2CO3 + NO3 = IPRCHO + HO2 + NO2 : 	KRO2NO3*1.74 	;
+{6379.} 	 C3M3OH2CO3 = IPRCHO + HO2 : 	1.00D-11*RO2 	;
+{6380.} 	 MC4CONO3O2 + HO2 = C4MCNO3OOH : 	KRO2HO2*0.706 	;
+{6381.} 	 MC4CONO3O2 + NO = MC4CONO3O + NO2 : 	KRO2NO 	;
+{6382.} 	 MC4CONO3O2 + NO3 = MC4CONO3O + NO2 : 	KRO2NO3 	;
+{6383.} 	 MC4CONO3O2 = MC4CONO3O : 	2.00D-12*RO2 	;
+{6384.} 	 C65NO36CO3 + HO2 = C4H9CHO + NO2 + OH : 	KAPHO2*0.44 	;
+{6385.} 	 C65NO36CO3 + HO2 = C65NO3CO2H + O3 : 	KAPHO2*0.15 	;
+{6386.} 	 C65NO36CO3 + HO2 = C65NO3CO3H : 	KAPHO2*0.41 	;
+{6387.} 	 C65NO36CO3 + NO = C4H9CHO + NO2 + NO2 : 	KAPNO 	;
+{6388.} 	 C65NO36CO3 + NO2 = C65NO3PAN : 	KFPAN 	;
+{6389.} 	 C65NO36CO3 + NO3 = C4H9CHO + NO2 + NO2 : 	KRO2NO3*1.74 	;
+{6390.} 	 C65NO36CO3 = C4H9CHO + NO2 : 	1.00D-11*0.7*RO2 	;
+{6391.} 	 C65NO36CO3 = C65NO3CO2H : 	1.00D-11*0.3*RO2 	;
+{6392.} 	 MNO3COC4O2 + HO2 = C6NO3COOOH : 	KRO2HO2*0.770 	;
+{6393.} 	 MNO3COC4O2 + NO = MNO3COC4O + NO2 : 	KRO2NO 	;
+{6394.} 	 MNO3COC4O2 + NO3 = MNO3COC4O + NO2 : 	KRO2NO3 	;
+{6395.} 	 MNO3COC4O2 = C6NO324CO : 	2.50D-13*0.2*RO2 	;
+{6396.} 	 MNO3COC4O2 = C6NO3CO4OH : 	2.50D-13*0.2*RO2 	;
+{6397.} 	 MNO3COC4O2 = MNO3COC4O : 	2.50D-13*0.6*RO2 	;
+{6398.} 	 C4COMOH3O2 + HO2 = C4COMOHOOH : 	KRO2HO2*0.770 	;
+{6399.} 	 C4COMOH3O2 + NO = C4COMOH3O + NO2 : 	KRO2NO 	;
+{6400.} 	 C4COMOH3O2 + NO3 = C4COMOH3O + NO2 : 	KRO2NO3 	;
+{6401.} 	 C4COMOH3O2 = C4COMOH3O : 	2.50D-13*0.6*RO2 	;
+{6402.} 	 C4COMOH3O2 = C4COMOH3OH : 	2.50D-13*0.2*RO2 	;
+{6403.} 	 C4COMOH3O2 = HO1CO24C6 : 	2.50D-13*0.2*RO2 	;
+{6404.} 	 HO5C5CO3 + HO2 = C4H9CHO + HO2 + OH : 	KAPHO2*0.44 	;
+{6405.} 	 HO5C5CO3 + HO2 = HO5C5CO3H : 	KAPHO2*0.56 	;
+{6406.} 	 HO5C5CO3 + NO = C4H9CHO + HO2 + NO2 : 	KAPNO 	;
+{6407.} 	 HO5C5CO3 + NO2 = C6PAN23 : 	KFPAN 	;
+{6408.} 	 HO5C5CO3 + NO3 = C4H9CHO + HO2 + NO2 : 	KRO2NO3*1.74 	;
+{6409.} 	 HO5C5CO3 = C4H9CHO + HO2 : 	1.00D-11*RO2 	;
+{6410.} 	 C6NO3CO5O2 + HO2 = C6CONO3OOH : 	KRO2HO2*0.770 	;
+{6411.} 	 C6NO3CO5O2 + NO = C6NO3CO5O + NO2 : 	KRO2NO 	;
+{6412.} 	 C6NO3CO5O2 + NO3 = C6NO3CO5O + NO2 : 	KRO2NO3 	;
+{6413.} 	 C6NO3CO5O2 = C62NO335CO : 	2.50D-13*0.2*RO2 	;
+{6414.} 	 C6NO3CO5O2 = C6NO3CO5O : 	2.50D-13*0.6*RO2 	;
+{6415.} 	 C6NO3CO5O2 = C6NO3CO5OH : 	2.50D-13*0.2*RO2 	;
+{6416.} 	 C6CONO34O2 + HO2 = CONO3C6OOH : 	KRO2HO2*0.770 	;
+{6417.} 	 C6CONO34O2 + NO = C6CONO34O + NO2 : 	KRO2NO 	;
+{6418.} 	 C6CONO34O2 + NO3 = C6CONO34O + NO2 : 	KRO2NO3 	;
+{6419.} 	 C6CONO34O2 = C64NO335CO : 	8.80D-13*0.2*RO2 	;
+{6420.} 	 C6CONO34O2 = C6CONO34O : 	8.80D-13*0.6*RO2 	;
+{6421.} 	 C6CONO34O2 = C6CONO34OH : 	8.80D-13*0.2*RO2 	;
+{6422.} 	 BZFUONE + NO3 = NBZFUO2 : 	3.00D-13 	;
+{6423.} 	 BZFUONE + O3 = BZFUONOOA : 	2.20D-19 	;
+{6424.} 	 BZFUONE + OH = BZFUO2 : 	4.45D-11 	;
+{6425.} 	 MALDIALCO3 + HO2 = MALDALCO2H + O3 : 	KAPHO2*0.15 	;
+{6426.} 	 MALDIALCO3 + HO2 = MALDALCO3H : 	KAPHO2*0.41 	;
+{6427.} 	 MALDIALCO3 + HO2 = MALDIALCO2 + OH : 	KAPHO2*0.44 	;
+{6428.} 	 MALDIALCO3 + NO = MALDIALCO2 + NO2 : 	KAPNO 	;
+{6429.} 	 MALDIALCO3 + NO2 = MALDIALPAN : 	KFPAN 	;
+{6430.} 	 MALDIALCO3 + NO3 = MALDIALCO2 + NO2 : 	KRO2NO3*1.74 	;
+{6431.} 	 MALDIALCO3 = MALDALCO2H : 	1.00D-11*0.30*RO2 	;
+{6432.} 	 MALDIALCO3 = MALDIALCO2 : 	1.00D-11*0.70*RO2 	;
+{6433.} 	 BZEMUCCO2H + OH = C5DIALO2 : 	4.06D-11 	;
+{6434.} 	 BZEMUCCO2H = C5DIALO2 + HO2 : 	J(18)+J(19) 	;
+{6435.} 	 BZEMUCCO3H + OH = BZEMUCCO3 : 	4.37D-11 	;
+{6436.} 	 BZEMUCCO3H = C5DIALO2 + OH : 	J(41)+J(18)+J(19) 	;
+{6437.} 	 BZEMUCPAN + OH = MALDIAL + CO + NO2 : 	4.05D-11 	;
+{6438.} 	 BZEMUCPAN = BZEMUCCO3 + NO2 : 	KBPAN 	;
+{6439.} 	 EPXDLCO3 + HO2 = C3DIALO2 + OH : 	KAPHO2*0.44 	;
+{6440.} 	 EPXDLCO3 + HO2 = EPXDLCO2H + O3 : 	KAPHO2*0.15 	;
+{6441.} 	 EPXDLCO3 + HO2 = EPXDLCO3H : 	KAPHO2*0.41 	;
+{6442.} 	 EPXDLCO3 + NO = C3DIALO2 + NO2 : 	KAPNO 	;
+{6443.} 	 EPXDLCO3 + NO2 = EPXDLPAN : 	KFPAN 	;
+{6444.} 	 EPXDLCO3 + NO3 = C3DIALO2 + NO2 : 	KRO2NO3*1.74 	;
+{6445.} 	 EPXDLCO3 = C3DIALO2 : 	1.00D-11*RO2*0.7 	;
+{6446.} 	 EPXDLCO3 = EPXDLCO2H : 	1.00D-11*RO2*0.3 	;
+{6447.} 	 C3DIALO2 + HO2 = C3DIALOOH : 	KRO2HO2*0.520 	;
+{6448.} 	 C3DIALO2 + NO = C3DIALO + NO2 : 	KRO2NO 	;
+{6449.} 	 C3DIALO2 + NO3 = C3DIALO + NO2 : 	KRO2NO3 	;
+{6450.} 	 C3DIALO2 = C32OH13CO : 	8.80D-13*RO2*0.2 	;
+{6451.} 	 C3DIALO2 = C33CO : 	8.80D-13*RO2*0.2 	;
+{6452.} 	 C3DIALO2 = C3DIALO : 	8.80D-13*RO2*0.6 	;
+{6453.} 	 BZEMUCOOH + OH = BZEMUCCO + OH : 	1.31D-10 	;
+{6454.} 	 BZEMUCOOH = BZEMUCO + OH : 	J(41)+J(15)*2 	;
+{6455.} 	 BZEMUCNO3 + OH = BZEMUCCO + NO2 : 	4.38D-11 	;
+{6456.} 	 BZEMUCNO3 = EPXC4DIAL + NO2 + GLYOX + HO2 : 	J(17) 	;
+{6457.} 	 BZEMUCO = C3DIALO2 + C32OH13CO : 	KDEC*0.5 	;
+{6458.} 	 BZEMUCO = EPXC4DIAL + GLYOX + HO2 : 	KDEC*0.5 	;
+{6459.} 	 BZEMUCCO + OH = EPXDLCO3 + GLYOX : 	9.20D-11 	;
+{6460.} 	 BZEMUCCO = HCOCOHCO3 + C3DIALO2 : 	J(15)*2+J(22) 	;
+{6461.} 	 BZEMUCOH + OH = BZEMUCCO + HO2 : 	8.23D-11 	;
+{6462.} 	 BZEMUCOH = BZEMUCO + HO2 : 	J(15)*2 	;
+{6463.} 	 C5DIALOOH + OH = C5DIALCO + OH : 	7.52D-11 	;
+{6464.} 	 C5DIALOOH = C5DIALO + OH : 	J(41) 	;
+{6465.} 	 C5DIALOOH = MALDIAL + CO + HO2 + OH : 	J(18)+J(19) 	;
+{6466.} 	 C5DIALO = MALDIAL + CO + HO2 : 	KDEC 	;
+{6467.} 	 C5DIALCO + OH = MALDIALCO3 + CO : 	4.90D-11 	;
+{6468.} 	 C5DIALCO = MALDIALCO3 + CO + HO2 : 	J(34)+J(18)+J(19) 	;
+{6469.} 	 C5DIALOH + OH = C5DIALCO + HO2 : 	7.75D-11 	;
+{6470.} 	 C5DIALOH = MALDIAL + CO + HO2 + HO2 : 	J(18)+J(19) 	;
+{6471.} 	 MALDIALO2 + HO2 = MALDIALOOH : 	KRO2HO2*0.625 	;
+{6472.} 	 MALDIALO2 + NO = MALDIALO + NO2 : 	KRO2NO 	;
+{6473.} 	 MALDIALO2 + NO3 = MALDIALO + NO2 : 	KRO2NO3 	;
+{6474.} 	 MALDIALO2 = HOCOC4DIAL : 	8.80D-13*0.20*RO2 	;
+{6475.} 	 MALDIALO2 = HOHOC4DIAL : 	8.80D-13*0.20*RO2 	;
+{6476.} 	 MALDIALO2 = MALDIALO : 	8.80D-13*0.60*RO2 	;
+{6477.} 	 HOC6H4NO2 + NO3 = NPHEN1O + HNO3 : 	9.00D-14 	;
+{6478.} 	 HOC6H4NO2 + OH = NPHEN1O : 	9.00D-13 	;
+{6479.} 	 NPHENOOH + OH = NPHENO2 : 	1.07D-10 	;
+{6480.} 	 NPHENOOH = MALDALCO2H + GLYOX + OH + NO2 : 	J(54) 	;
+{6481.} 	 NPHENOOH = NPHENO + OH : 	J(41) 	;
+{6482.} 	 NPHENO = MALDALCO2H + GLYOX + NO2 : 	KDEC 	;
+{6483.} 	 NPHENOH + OH = NPHENO : 	1.04D-10 	;
+{6484.} 	 NPHENOH = MALDALCO2H + GLYOX + HO2 + NO2 : 	J(54) 	;
+{6485.} 	 CATEC1O + NO2 = NCATECHOL : 	2.08D-12 	;
+{6486.} 	 CATEC1O + O3 = CATEC1O2 : 	2.86D-13 	;
+{6487.} 	 CATECOOA = MALDALCO2H + HCOCO2H + HO2 + OH : 	KDEC 	;
+{6488.} 	 PHENOOH + OH = PHENO2 : 	1.16D-10 	;
+{6489.} 	 PHENOOH = PHENO + OH : 	J(41) 	;
+{6490.} 	 PHENO = MALDALCO2H + GLYOX + HO2 : 	KDEC*0.71 	;
+{6491.} 	 PHENO = PBZQONE + HO2 : 	KDEC*0.29 	;
+{6492.} 	 PHENOH + OH = PHENO : 	1.13D-10 	;
+{6493.} 	 CRESOOH + OH = CRESO2 : 	1.15D-10 	;
+{6494.} 	 CRESOOH = CRESO + OH : 	J(41) 	;
+{6495.} 	 CRESO = C5CO14OH + GLYOX + HO2 : 	KDEC*0.68 	;
+{6496.} 	 CRESO = PTLQONE + HO2 : 	KDEC*0.32 	;
+{6497.} 	 CRESOH + OH = CRESO : 	1.11D-10 	;
+{6498.} 	 NCRESOOH + OH = NCRESO2 : 	1.07D-10 	;
+{6499.} 	 NCRESOOH = CRESO + OH + NO2 : 	J(54) 	;
+{6500.} 	 NCRESOOH = NCRESO + OH : 	J(41) 	;
+{6501.} 	 NCRESO = C5CO14OH + GLYOX + NO2 : 	KDEC 	;
+{6502.} 	 NCRESOH + OH = NCRESO : 	1.04D-10 	;
+{6503.} 	 NCRESOH = CRESO + HO2 + NO2 : 	J(54) 	;
+{6504.} 	 TOL1OHNO2 + NO3 = NCRES1O + HNO3 : 	3.13D-13*1.0 	;
+{6505.} 	 TOL1OHNO2 + OH = NCRES1O : 	2.8D-12 	;
+{6506.} 	 OXYL1O2 + HO2 = OXYL1OOH : 	KRO2HO2*0.820 	;
+{6507.} 	 OXYL1O2 + NO = TOL1O + NO2 : 	KRO2NO 	;
+{6508.} 	 OXYL1O2 + NO3 = TOL1O + NO2 : 	KRO2NO3 	;
+{6509.} 	 OXYL1O2 = TOL1O : 	2.50D-13*RO2 	;
+{6510.} 	 MCATEC1O + NO2 = MNCATECH : 	2.08D-12 	;
+{6511.} 	 MCATEC1O + O3 = MCATEC1O2 : 	2.86D-13 	;
+{6512.} 	 MCATECOOA = MC3ODBCO2H + HCOCO2H + HO2 + OH : 	KDEC*1.0 	;
+{6513.} 	 C4MDIAL + NO3 = C3MCODBCO3 + HNO3 : 	KNO3AL*4.25 	;
+{6514.} 	 C4MDIAL + NO3 = MC3CODBCO3 + HNO3 : 	KNO3AL*4.25 	;
+{6515.} 	 C4MDIAL + O3 = MGLYOOA + GLYOX : 	5.00D-18*0.50 	;
+{6516.} 	 C4MDIAL + O3 = MGLYOX + GLYOOC : 	5.00D-18*0.50 	;
+{6517.} 	 C4MDIAL + OH = C3MCODBCO3 : 	4.41D-11*0.385 	;
+{6518.} 	 C4MDIAL + OH = C4M2ALOHO2 : 	4.41D-11*0.23 	;
+{6519.} 	 C4MDIAL + OH = MC3CODBCO3 : 	4.41D-11*0.385 	;
+{6520.} 	 C4MDIAL = C3MCODBCO3 + HO2 + CO : 	J(4)*0.2*0.3 	;
+{6521.} 	 C4MDIAL = MC3CODBCO3 + HO2 + CO : 	J(4)*0.2*0.3 	;
+{6522.} 	 C4MDIAL = PXYFUONE : 	J(4)*0.2*0.4 	;
+{6523.} 	 C5DICARB + NO3 = C5CO14O2 + HNO3 : 	KNO3AL*2.75 	;
+{6524.} 	 C5DICARB + O3 = GLYOX + MGLOOB : 	2.00D-18*0.5 	;
+{6525.} 	 C5DICARB + O3 = MGLYOX + GLYOOA : 	2.00D-18*0.5 	;
+{6526.} 	 C5DICARB + OH = C5CO14O2 : 	6.2D-11*0.48 	;
+{6527.} 	 C5DICARB + OH = C5DICARBO2 : 	6.2D-11*0.52 	;
+{6528.} 	 C5DICARB = C5CO14O2 + HO2 : 	J(4)*0.2*0.6 	;
+{6529.} 	 C5DICARB = TLFUONE : 	J(4)*0.2*0.4 	;
+{6530.} 	 TLFUONE + NO3 = NTLFUO2 : 	1.00D-12 	;
+{6531.} 	 TLFUONE + O3 = TLFUONOOA : 	8.00D-19 	;
+{6532.} 	 TLFUONE + OH = TLFUO2 : 	6.90D-11 	;
+{6533.} 	 C5CO14O2 + HO2 = C5CO14CO2 + OH : 	KAPHO2*0.44 	;
+{6534.} 	 C5CO14O2 + HO2 = C5CO14OH + O3 : 	KAPHO2*0.15 	;
+{6535.} 	 C5CO14O2 + HO2 = C5CO14OOH : 	KAPHO2*0.41 	;
+{6536.} 	 C5CO14O2 + NO = C5CO14CO2 + NO2 : 	KAPNO 	;
+{6537.} 	 C5CO14O2 + NO2 = C5COO2NO2 : 	KFPAN 	;
+{6538.} 	 C5CO14O2 + NO3 = C5CO14CO2 + NO2 : 	KRO2NO3*1.74 	;
+{6539.} 	 C5CO14O2 = C5CO14CO2 : 	1.00D-11*0.70*RO2 	;
+{6540.} 	 C5CO14O2 = C5CO14OH : 	1.00D-11*0.30*RO2 	;
+{6541.} 	 TLEMUCCO2H + OH = C615CO2O2 : 	5.98D-11 	;
+{6542.} 	 TLEMUCCO2H = C615CO2O2 + HO2 : 	J(18)+J(19) 	;
+{6543.} 	 TLEMUCCO3H + OH = TLEMUCCO3 : 	6.29D-11 	;
+{6544.} 	 TLEMUCCO3H = C615CO2O2 + OH : 	J(41)+J(18)+J(19) 	;
+{6545.} 	 TLEMUCPAN + OH = C5DICARB + CO + NO2 : 	5.96D-11 	;
+{6546.} 	 TLEMUCPAN = TLEMUCCO3 + NO2 : 	KBPAN 	;
+{6547.} 	 MGLOO + CO = MGLYOX : 	1.2D-15 	;
+{6548.} 	 MGLOO + NO = MGLYOX + NO2 : 	1.0D-14 	;
+{6549.} 	 MGLOO + NO2 = MGLYOX + NO3 : 	1.0D-15 	;
+{6550.} 	 MGLOO + SO2 = MGLYOX + SO3 : 	7.0D-14 	;
+{6551.} 	 MGLOO = CH3COCO2H : 	1.0D-17*H2O 	;
+{6552.} 	 MGLOO = MGLYOX + H2O2 : 	6.0D-18*H2O 	;
+{6553.} 	 TLEMUCOOH + OH = TLEMUCCO + OH : 	7.04D-11 	;
+{6554.} 	 TLEMUCOOH = TLEMUCO + OH : 	J(41)+J(17)+J(22) 	;
+{6555.} 	 TLEMUCNO3 + OH = TLEMUCCO + NO2 : 	3.06D-11 	;
+{6556.} 	 TLEMUCNO3 = EPXC4DIAL + NO2 + CH3CO3 + CO + HO2 : 	J(17)+J(22) 	;
+{6557.} 	 TLEMUCO = C3DIALO2 + CO2H3CHO : 	KDEC*0.50 	;
+{6558.} 	 TLEMUCO = EPXC4DIAL + MGLYOX + HO2 : 	KDEC*0.50 	;
+{6559.} 	 TLEMUCCO + OH = CH3CO3 + EPXC4DIAL + CO : 	4.06D-11 	;
+{6560.} 	 TLEMUCCO = CH3CO3 + EPXC4DIAL + CO + HO2 : 	J(17)+J(35) 	;
+{6561.} 	 TLEMUCOH + OH = TLEMUCCO + HO2 : 	6.17D-11 	;
+{6562.} 	 TLEMUCOH = TLEMUCO + HO2 : 	J(17)+J(22) 	;
+{6563.} 	 C615CO2OOH + OH = C6125CO + OH : 	9.42D-11 	;
+{6564.} 	 C615CO2OOH = C5DICARB + CO + HO2 + OH : 	J(23)+J(24) 	;
+{6565.} 	 C615CO2OOH = C615CO2O + OH : 	J(41) 	;
+{6566.} 	 C615CO2O = C5DICARB + CO + HO2 : 	KDEC 	;
+{6567.} 	 C6125CO + OH = C5CO14O2 + CO : 	6.45D-11 	;
+{6568.} 	 C6125CO = C5CO14O2 + CO + HO2 : 	J(34)+J(23)+J(24) 	;
+{6569.} 	 C615CO2OH + OH = C6125CO + HO2 : 	1.18D-10 	;
+{6570.} 	 C615CO2OH = C5DICARB + CO + HO2 + HO2 : 	J(23)+J(24) 	;
+{6571.} 	 OXYLCO3 + HO2 = OXYL1O2 + OH : 	KAPHO2*0.44 	;
+{6572.} 	 OXYLCO3 + HO2 = OXYLCO2H + O3 : 	KAPHO2*0.15 	;
+{6573.} 	 OXYLCO3 + HO2 = OXYLCO3H : 	KAPHO2*0.41 	;
+{6574.} 	 OXYLCO3 + NO = OXYL1O2 + NO2 : 	KAPNO 	;
+{6575.} 	 OXYLCO3 + NO2 = OXYLPAN : 	KFPAN 	;
+{6576.} 	 OXYLCO3 + NO3 = OXYL1O2 + NO2 : 	KRO2NO3*1.74 	;
+{6577.} 	 OXYLCO3 = OXYL1O2 : 	1.00D-11*0.70*RO2 	;
+{6578.} 	 OXYLCO3 = OXYLCO2H : 	1.00D-11*0.30*RO2 	;
+{6579.} 	 TLCOBIPEOH + OH = MALDIALCO3 + MGLYOX : 	8.06D-11 	;
+{6580.} 	 TLCOBIPEOH = MALDIALCO3 + MGLYOX + HO2 : 	J(22) 	;
+{6581.} 	 MC5DICARB + NO3 = MC4CODBCO3 + HNO3 : 	KNO3AL*4.25 	;
+{6582.} 	 MC5DICARB + O3 = BIACET + GLYOOC : 	5.00D-18*0.5 	;
+{6583.} 	 MC5DICARB + O3 = GLYOX + MEK2OOA : 	5.00D-18*0.5 	;
+{6584.} 	 MC5DICARB + OH = MC4CODBCO3 : 	7.10D-11*0.28 	;
+{6585.} 	 MC5DICARB + OH = MC5CO2OHO2 : 	7.10D-11*0.72 	;
+{6586.} 	 MC5DICARB = MC4CODBCO3 + HO2 : 	J(4)*0.2*0.6 	;
+{6587.} 	 MC5DICARB = TMB1FUONE : 	J(4)*0.2*0.4 	;
+{6588.} 	 OXYFUONE + NO3 = NOXYFUO2 : 	1.00D-12 	;
+{6589.} 	 OXYFUONE + O3 = C6OTKETO2 + OH : 	1.40D-18 	;
+{6590.} 	 OXYFUONE + OH = OXYFUO2 : 	3.01D-11 	;
+{6591.} 	 OXYMUCCO2H + OH = MC6CO2O2 : 	3.98D-11 	;
+{6592.} 	 OXYMUCCO2H = MC6CO2O2 + HO2 : 	J(19)+J(18) 	;
+{6593.} 	 OXYMUCCO3H + OH = OXYMUCCO3 : 	4.28D-11 	;
+{6594.} 	 OXYMUCCO3H = MC6CO2O2 + OH : 	J(41)+J(18)+J(19) 	;
+{6595.} 	 OXYMUCPAN + OH = C5DICARB + CH3O2 + CO + NO2 : 	3.96D-11 	;
+{6596.} 	 OXYMUCPAN = OXYMUCCO3 + NO2 : 	KBPAN 	;
+{6597.} 	 EPXM2DLCO3 + HO2 = C4MCO2O2 + OH : 	KAPHO2*0.44 	;
+{6598.} 	 EPXM2DLCO3 + HO2 = EPXM2DCO2H + O3 : 	KAPHO2*0.15 	;
+{6599.} 	 EPXM2DLCO3 + HO2 = EPXM2DCO3H : 	KAPHO2*0.41 	;
+{6600.} 	 EPXM2DLCO3 + NO = C4MCO2O2 + NO2 : 	KAPNO 	;
+{6601.} 	 EPXM2DLCO3 + NO2 = EPXM2DLPAN : 	KFPAN 	;
+{6602.} 	 EPXM2DLCO3 + NO3 = C4MCO2O2 + NO2 : 	KRO2NO3*1.74 	;
+{6603.} 	 EPXM2DLCO3 = C4MCO2O2 : 	1.00D-11*RO2*0.70 	;
+{6604.} 	 EPXM2DLCO3 = EPXM2DCO2H : 	1.00D-11*RO2*0.30 	;
+{6605.} 	 C4MCO2O2 + HO2 = C4MCO2OOH : 	KRO2HO2*0.706 	;
+{6606.} 	 C4MCO2O2 + NO = C4MCO2O + NO2 : 	KRO2NO 	;
+{6607.} 	 C4MCO2O2 + NO3 = C4MCO2O + NO2 : 	KRO2NO3 	;
+{6608.} 	 C4MCO2O2 = C4MCO2O : 	9.20D-14*RO2 	;
+{6609.} 	 OXYMUCOOH + OH = OXYMUCCO + OH : 	9.33D-11 	;
+{6610.} 	 OXYMUCOOH = OXYMUCO + OH : 	J(41)+J(17)*2 	;
+{6611.} 	 OXYMUCNO3 + OH = OXYMUCCO + NO2 : 	3.27D-11 	;
+{6612.} 	 OXYMUCNO3 = EPXM2C4DAL + NO2 + HO2 + CO + HO2 + CO : 	J(17)*2 	;
+{6613.} 	 OXYMUCO = C4MCO2O2 + C32OH13CO : 	KDEC*0.5 	;
+{6614.} 	 OXYMUCO = EPXM2C4DAL + GLYOX + HO2 : 	KDEC*0.5 	;
+{6615.} 	 OXYMUCCO + OH = EPXM2C4DAL + HO2 + CO : 	4.84D-11 	;
+{6616.} 	 OXYMUCCO = EPXM2C4DAL + HO2 + CO + CO + HO2 : 	J(17)+J(34) 	;
+{6617.} 	 OXYMUCOH + OH = OXYMUCCO + HO2 : 	8.11D-11 	;
+{6618.} 	 OXYMUCOH = OXYMUCO + HO2 : 	J(17)*2 	;
+{6619.} 	 MC6CO2OOH + OH = MC6CO2O2 : 	4.28D-11 	;
+{6620.} 	 MC6CO2OOH = C4MCO2OOH + HO2 + CO + HO2 + CO : 	J(18)+J(19) 	;
+{6621.} 	 MC6CO2OOH = CH3CO3 + C5DICARB + OH : 	J(22) 	;
+{6622.} 	 MC6CO2OOH = MC6CO2O + OH : 	J(41) 	;
+{6623.} 	 MC6CO2O = C5DICARB + CH3CO3 : 	KDEC 	;
+{6624.} 	 MC6CO2OH + OH = C5DICARB + CH3CO3 : 	5.24D-11 	;
+{6625.} 	 MC6CO2OH = C4MCO2OH + HO2 + CO + HO2 + CO : 	J(18)+J(19) 	;
+{6626.} 	 MC6CO2OH = C5DICARB + CH3CO3 + HO2 : 	J(22) 	;
+{6627.} 	 NOXYOLOOH + OH = NOXYOLO2 : 	1.43D-10 	;
+{6628.} 	 NOXYOLOOH = NOXYOLO + OH : 	J(41) 	;
+{6629.} 	 NOXYOLOOH = OXYOLO + OH + NO2 : 	J(54) 	;
+{6630.} 	 NOXYOLO = C5DBCOCO2H + GLYOX + NO2 : 	KDEC 	;
+{6631.} 	 NOXYOLOH + OH = NOXYOLO : 	1.40D-10 	;
+{6632.} 	 NOXYOLOH = OXYOLO + HO2 + NO2 : 	J(54) 	;
+{6633.} 	 OXY1OHNO2 + NO3 = NOXYOL1O + HNO3 : 	3.13D-13 	;
+{6634.} 	 OXY1OHNO2 + OH = NOXYOL1O : 	1.53D-12 	;
+{6635.} 	 DM123O2 + HO2 = DM123OOH : 	KRO2HO2*0.859 	;
+{6636.} 	 DM123O2 + NO = OXY1O + NO2 : 	KRO2NO 	;
+{6637.} 	 DM123O2 + NO3 = OXY1O + NO2 : 	KRO2NO3 	;
+{6638.} 	 DM123O2 = OXY1O : 	2.50D-13*RO2 	;
+{6639.} 	 OXYOLOOH + OH = OXYOLO2 : 	1.51D-10 	;
+{6640.} 	 OXYOLOOH = OXYOLO + OH : 	J(41) 	;
+{6641.} 	 OXYOLO = C5DBCOCO2H + GLYOX + HO2 : 	KDEC*0.52 	;
+{6642.} 	 OXYOLO = OXYQONE + HO2 : 	KDEC*0.48 	;
+{6643.} 	 OXYOLOH + OH = OXYOLO : 	1.48D-10 	;
+{6644.} 	 OXCATEC1O + NO2 = OXNCATECH : 	2.08D-12 	;
+{6645.} 	 OXCATEC1O + O3 = OXCATEC1O2 : 	2.86D-13 	;
+{6646.} 	 OXCATECOOA = C5CO14OH + CH3COCO2H + HO2 + OH : 	KDEC 	;
+{6647.} 	 MXYLCO3 + HO2 = MXYL1O2 + OH : 	KAPHO2*0.44 	;
+{6648.} 	 MXYLCO3 + HO2 = MXYLCO2H + O3 : 	KAPHO2*0.15 	;
+{6649.} 	 MXYLCO3 + HO2 = MXYLCO3H : 	KAPHO2*0.41 	;
+{6650.} 	 MXYLCO3 + NO = MXYL1O2 + NO2 : 	KAPNO 	;
+{6651.} 	 MXYLCO3 + NO2 = MXYLPAN : 	KFPAN 	;
+{6652.} 	 MXYLCO3 + NO3 = MXYL1O2 + NO2 : 	KRO2NO3*1.74 	;
+{6653.} 	 MXYLCO3 = MXYL1O2 : 	1.00D-11*0.70*RO2 	;
+{6654.} 	 MXYLCO3 = MXYLCO2H : 	1.00D-11*0.30*RO2 	;
+{6655.} 	 MXYL1O2 + HO2 = MXYL1OOH : 	KRO2HO2*0.820 	;
+{6656.} 	 MXYL1O2 + NO = MXYL1O + NO2 : 	KRO2NO 	;
+{6657.} 	 MXYL1O2 + NO3 = MXYL1O + NO2 : 	KRO2NO3 	;
+{6658.} 	 MXYL1O2 = MXYL1O : 	2.50D-13*RO2 	;
+{6659.} 	 C5MDICARB + NO3 = C4MCODBCO3 + HNO3 : 	KNO3AL*4.25 	;
+{6660.} 	 C5MDICARB + O3 = MGLOOC + MGLYOX : 	2.0D-18*0.5 	;
+{6661.} 	 C5MDICARB + O3 = MGLYOOA + MGLYOX : 	2.0D-18*0.5 	;
+{6662.} 	 C5MDICARB + OH = C4MCODBCO3 : 	7.00D-11*0.5 	;
+{6663.} 	 C5MDICARB + OH = C5MCO2OHO2 : 	7.00D-11*0.5 	;
+{6664.} 	 C5MDICARB = C4MCODBCO3 + HO2 : 	J(4)*0.2*0.6 	;
+{6665.} 	 C5MDICARB = MXYFUONE : 	J(4)*0.2*0.4 	;
+{6666.} 	 MXYFUONE + NO3 = NMXYFUO2 : 	1.00D-12 	;
+{6667.} 	 MXYFUONE + O3 = OH + CO + C23O3MO2 : 	8.00D-19 	;
+{6668.} 	 MXYFUONE + OH = MXYFUO2 : 	2.67D-11 	;
+{6669.} 	 PXYFUONE + NO3 = NPXYFUO2 : 	1.00D-12 	;
+{6670.} 	 PXYFUONE + O3 = OH + CO + MCOCOMOXO2 : 	8.00D-19 	;
+{6671.} 	 PXYFUONE + OH = PXYFUO2 : 	2.42D-11 	;
+{6672.} 	 C3MCODBCO3 + HO2 = C3MCODBCO2 + OH : 	KAPHO2*0.44 	;
+{6673.} 	 C3MCODBCO3 + HO2 = C4CODBCO3H : 	KAPHO2*0.56 	;
+{6674.} 	 C3MCODBCO3 + NO = C3MCODBCO2 + NO2 : 	KAPNO 	;
+{6675.} 	 C3MCODBCO3 + NO2 = C3MCODBPAN : 	KFPAN 	;
+{6676.} 	 C3MCODBCO3 + NO3 = NO2 + C3MCODBCO2 : 	KRO2NO3*1.74 	;
+{6677.} 	 C3MCODBCO3 = C3MCODBCO2 : 	1.00D-11*RO2 	;
+{6678.} 	 MXYMUCCO2H + OH = C726CO5O2 : 	6.00D-11 	;
+{6679.} 	 MXYMUCCO2H = C726CO5O2 + HO2 : 	J(23)+J(24) 	;
+{6680.} 	 MXYMUCCO3H + OH = MXYMUCCO3 : 	6.31D-11 	;
+{6681.} 	 MXYMUCCO3H = C726CO5O2 + OH : 	J(41)+J(23)+J(24) 	;
+{6682.} 	 MXYMUCPAN + OH = C5DICARB + CH3O2 + CO + NO2 : 	5.99D-11 	;
+{6683.} 	 MXYMUCPAN = MXYMUCCO3 + NO2 : 	KBPAN 	;
+{6684.} 	 EPXMDLCO3 + HO2 = C3MDIALO2 + OH : 	KAPHO2*0.44 	;
+{6685.} 	 EPXMDLCO3 + HO2 = EPXMDLCO2H + O3 : 	KAPHO2*0.15 	;
+{6686.} 	 EPXMDLCO3 + HO2 = EPXMDLCO3H : 	KAPHO2*0.41 	;
+{6687.} 	 EPXMDLCO3 + NO = C3MDIALO2 + NO2 : 	KAPNO 	;
+{6688.} 	 EPXMDLCO3 + NO2 = EPXMDLPAN : 	KFPAN 	;
+{6689.} 	 EPXMDLCO3 + NO3 = C3MDIALO2 + NO2 : 	KRO2NO3*1.74 	;
+{6690.} 	 EPXMDLCO3 = C3MDIALO2 : 	1.00D-11*RO2*0.70 	;
+{6691.} 	 EPXMDLCO3 = EPXMDLCO2H : 	1.00D-11*RO2*0.30 	;
+{6692.} 	 C3MDIALO2 + HO2 = C3MDIALOOH : 	KRO2HO2*0.625 	;
+{6693.} 	 C3MDIALO2 + NO = C3MDIALO + NO2 : 	KRO2NO 	;
+{6694.} 	 C3MDIALO2 + NO3 = C3MDIALO + NO2 : 	KRO2NO3 	;
+{6695.} 	 C3MDIALO2 = C3MDIALO : 	9.20D-14*RO2*0.7 	;
+{6696.} 	 C3MDIALO2 = C3MDIALOH : 	9.20D-14*RO2*0.3 	;
+{6697.} 	 MXYMUCOOH + OH = MXYMUCCO + OH : 	7.41D-11 	;
+{6698.} 	 MXYMUCOOH = MXYMUCO + OH : 	J(41)+J(17)+J(22) 	;
+{6699.} 	 MXYMUCNO3 + OH = MXYMUCCO + NO2 : 	3.08D-11 	;
+{6700.} 	 MXYMUCNO3 = EPXMC4DIAL + NO2 + CH3CO3 + CO + HO2 : 	J(17)+J(22) 	;
+{6701.} 	 MXYMUCO = CO2H3CHO + C3MDIALO2 : 	KDEC*0.5 	;
+{6702.} 	 MXYMUCO = EPXMC4DIAL + MGLYOX + HO2 : 	KDEC*0.5 	;
+{6703.} 	 MXYMUCCO + OH = EPXMC4DIAL + CH3CO3 + CO : 	4.08D-11 	;
+{6704.} 	 MXYMUCCO = CH3CO3 + EPXMC4DIAL + CO + HO2 : 	J(17)+J(35) 	;
+{6705.} 	 MXYMUCOH + OH = MXYMUCCO + HO2 : 	6.20D-11 	;
+{6706.} 	 MXYMUCOH = MXYMUCO + HO2 : 	J(17)+J(22) 	;
+{6707.} 	 C726CO5OOH + OH = C7236CO + OH : 	7.36D-11 	;
+{6708.} 	 C726CO5OOH = C726CO5O + OH : 	J(41)+J(23)+J(24) 	;
+{6709.} 	 C726CO5O = C5DICARB + CH3CO3 : 	KDEC 	;
+{6710.} 	 C7236CO + OH = C5CO14O2 + CH3CO3 : 	5.22D-11 	;
+{6711.} 	 C7236CO = C5CO14O2 + CH3CO3 : 	J(35)+J(23)+J(24) 	;
+{6712.} 	 C726CO3OH + OH = C7236CO + HO2 : 	9.76D-11 	;
+{6713.} 	 C726CO3OH = CH3CO3 + C5DICARB + HO2 : 	J(23)+J(24) 	;
+{6714.} 	 MXY1OHNO2 + NO3 = NMXYOL1O + HNO3 : 	3.13D-13 	;
+{6715.} 	 MXY1OHNO2 + OH = NMXYOL1O : 	1.53D-12 	;
+{6716.} 	 MXY1O2 + HO2 = MXY1OOH : 	KRO2HO2*0.859 	;
+{6717.} 	 MXY1O2 + NO = MXY1O + NO2 : 	KRO2NO 	;
+{6718.} 	 MXY1O2 + NO3 = MXY1O + NO2 : 	KRO2NO3 	;
+{6719.} 	 MXY1O2 = MXY1O : 	2.50D-13*RO2 	;
+{6720.} 	 MXYOLOOH + OH = MXYOLO2 : 	1.13D-10 	;
+{6721.} 	 MXYOLOOH = MXYOLO + OH : 	J(41) 	;
+{6722.} 	 MXYOLO = C5CO14OH + MGLYOX + HO2 : 	KDEC*0.85 	;
+{6723.} 	 MXYOLO = MXYQONE + HO2 : 	KDEC*0.15 	;
+{6724.} 	 MXYOLOH + OH = MXYOLO : 	1.10D-10 	;
+{6725.} 	 NMXYOLOOH + OH = NMXYOLO2 : 	1.07D-10 	;
+{6726.} 	 NMXYOLOOH = MXYOLO + OH + NO2 : 	J(54) 	;
+{6727.} 	 NMXYOLOOH = NMXYOLO + OH : 	J(41) 	;
+{6728.} 	 NMXYOLO = C5CO14OH + MGLYOX + NO2 : 	KDEC 	;
+{6729.} 	 NMXYOLOH + OH = NMXYOLO : 	1.03D-10 	;
+{6730.} 	 NMXYOLOH = MXYOLO + HO2 + NO2 : 	J(54) 	;
+{6731.} 	 MXCATEC1O + NO2 = MXNCATECH : 	2.08D-12 	;
+{6732.} 	 MXCATEC1O + O3 = MXCATEC1O2 : 	2.86D-13 	;
+{6733.} 	 MXCATECOOA = C3MCOCO2H + CH3COCO2H + HO2 + OH : 	KDEC 	;
+{6734.} 	 PXYLCO3 + HO2 = PXYL1O2 + OH : 	KAPHO2*0.44 	;
+{6735.} 	 PXYLCO3 + HO2 = PXYLCO2H + O3 : 	KAPHO2*0.15 	;
+{6736.} 	 PXYLCO3 + HO2 = PXYLCO3H : 	KAPHO2*0.41 	;
+{6737.} 	 PXYLCO3 + NO = PXYL1O2 + NO2 : 	KAPNO 	;
+{6738.} 	 PXYLCO3 + NO2 = PXYLPAN : 	KFPAN 	;
+{6739.} 	 PXYLCO3 + NO3 = PXYL1O2 + NO2 : 	KRO2NO3*1.74 	;
+{6740.} 	 PXYLCO3 = PXYL1O2 : 	1.00D-11*0.70*RO2 	;
+{6741.} 	 PXYLCO3 = PXYLCO2H : 	1.00D-11*0.30*RO2 	;
+{6742.} 	 PXYL1O2 + HO2 = PXYL1OOH : 	KRO2HO2*0.820 	;
+{6743.} 	 PXYL1O2 + NO = PXYL1O + NO2 : 	KRO2NO 	;
+{6744.} 	 PXYL1O2 + NO3 = PXYL1O + NO2 : 	KRO2NO3 	;
+{6745.} 	 PXYL1O2 = PXYL1O : 	2.50D-13*RO2 	;
+{6746.} 	 C4DBDIKET + O3 = MGLOOB + MGLYOX : 	5.00D-18 	;
+{6747.} 	 C4DBDIKET + OH = DMKOHO2 : 	4.90D-11 	;
+{6748.} 	 C4DBDIKET = MGLYOX + CH3CO3 + HO2 + CO : 	J(4)*0.0057 	;
+{6749.} 	 PXYMUCCO2H + OH = C6M5CO2O2 : 	5.87D-11 	;
+{6750.} 	 PXYMUCCO2H = C6M5CO2O2 + HO2 : 	J(23)+J(24) 	;
+{6751.} 	 PXYMUCCO3H + OH = PXYMUCCO3 : 	6.18D-11 	;
+{6752.} 	 PXYMUCCO3H = C6M5CO2O2 + OH : 	J(41)+J(23)+J(24) 	;
+{6753.} 	 PXYMUCPAN + OH = C4DBDIKET + CO + NO2 : 	5.85D-11 	;
+{6754.} 	 PXYMUCPAN = PXYMUCCO3 + NO2 : 	KBPAN 	;
+{6755.} 	 PXYMUCOOH + OH = PXYMUCCO + OH : 	7.26D-11 	;
+{6756.} 	 PXYMUCOOH = PXYMUCO + OH : 	J(41)+J(17)+J(22) 	;
+{6757.} 	 PXYMUCNO3 + OH = PXYMUCCO + NO2 : 	2.92D-11 	;
+{6758.} 	 PXYMUCNO3 = EPXMC4DIAL + NO2 + CH3CO3 + CO + HO2 : 	J(17)+J(22) 	;
+{6759.} 	 PXYMUCO = CO2H3CHO + C4CO2O2 : 	KDEC*0.5 	;
+{6760.} 	 PXYMUCO = EPXMC4DIAL + MGLYOX + HO2 : 	KDEC*0.5 	;
+{6761.} 	 PXYMUCCO + OH = EPXMC4DIAL + CH3CO3 + CO : 	3.58D-11 	;
+{6762.} 	 PXYMUCCO = EPXMC4DIAL + CH3CO3 + HO2 + CO : 	J(17)+J(35) 	;
+{6763.} 	 PXYMUCOH + OH = PXYMUCCO + HO2 : 	6.03D-11 	;
+{6764.} 	 PXYMUCOH = PXYMUCO + HO2 : 	J(17)+J(22) 	;
+{6765.} 	 C6M5CO2OOH + OH = C6M5CO2O2 : 	8.25D-11 	;
+{6766.} 	 C6M5CO2OOH = C3MDIALOOH + CH3CO3 + HO2 + CO : 	J(23)+J(24) 	;
+{6767.} 	 C6M5CO2OOH = C6M5CO2O + OH : 	J(41) 	;
+{6768.} 	 C6M5CO2OOH = HO2 + CO + C4DBDIKET + OH : 	J(17) 	;
+{6769.} 	 C6M5CO2O = C4DBDIKET + CO + HO2 : 	KDEC 	;
+{6770.} 	 C6M5CO2OH + OH = C6M5CO2O : 	1.14D-10 	;
+{6771.} 	 C6M5CO2OH = C3MDIALOH + CH3CO3 + HO2 + CO : 	J(23)+J(24) 	;
+{6772.} 	 C6M5CO2OH = HO2 + CO + C4DBDIKET + HO2 : 	J(17) 	;
+{6773.} 	 NPXYOLOOH + OH = NPXYOLO2 : 	1.43D-10 	;
+{6774.} 	 NPXYOLOOH = NPXYOLO + OH : 	J(41) 	;
+{6775.} 	 NPXYOLOOH = PXYOLO + OH + NO2 : 	J(54) 	;
+{6776.} 	 NPXYOLO = C3MCOCO2H + MGLYOX + NO2 : 	KDEC 	;
+{6777.} 	 NPXYOLOH + OH = NPXYOLO : 	1.40D-10 	;
+{6778.} 	 NPXYOLOH = PXYOLO + HO2 + NO2 : 	J(54) 	;
+{6779.} 	 PXY1OHNO2 + NO3 = NPXYOL1O + HNO3 : 	3.13D-13 	;
+{6780.} 	 PXY1OHNO2 + OH = NPXYOL1O : 	1.53D-12 	;
+{6781.} 	 PXY1O2 + HO2 = PXY1OOH : 	KRO2HO2*0.859 	;
+{6782.} 	 PXY1O2 + NO = PXY1O + NO2 : 	KRO2NO 	;
+{6783.} 	 PXY1O2 + NO3 = PXY1O + NO2 : 	KRO2NO3 	;
+{6784.} 	 PXY1O2 = PXY1O : 	2.50D-13*RO2 	;
+{6785.} 	 PXYOLOOH + OH = PXYOLO2 : 	1.51D-10 	;
+{6786.} 	 PXYOLOOH = PXYOLO + OH : 	J(41) 	;
+{6787.} 	 PXYOLO = C3MCOCO2H + MGLYOX + HO2 : 	KDEC*0.68 	;
+{6788.} 	 PXYOLO = PXYQONE + HO2 : 	KDEC*0.32 	;
+{6789.} 	 PXYOLOH + OH = PXYOLO : 	1.48D-10 	;
+{6790.} 	 PXCATEC1O + NO2 = PXNCATECH : 	2.08D-12 	;
+{6791.} 	 PXCATEC1O + O3 = PXCATEC1O2 : 	2.86D-13 	;
+{6792.} 	 PXCATECOOA = MC3ODBCO2H + CH3COCO2H + HO2 + OH : 	KDEC 	;
+{6793.} 	 C6H5CH2CO3 + HO2 = C6H5C2CO2H + O3 : 	KAPHO2*0.15 	;
+{6794.} 	 C6H5CH2CO3 + HO2 = C6H5C2CO3H : 	KAPHO2*0.41 	;
+{6795.} 	 C6H5CH2CO3 + HO2 = C6H5CH2O2 + OH : 	KAPHO2*0.44 	;
+{6796.} 	 C6H5CH2CO3 + NO = C6H5CH2O2 + NO2 : 	KAPNO 	;
+{6797.} 	 C6H5CH2CO3 + NO2 = C6H5CH2PAN : 	KFPAN 	;
+{6798.} 	 C6H5CH2CO3 + NO3 = C6H5CH2O2 + NO2 : 	KRO2NO3*1.74 	;
+{6799.} 	 C6H5CH2CO3 = C6H5C2CO2H : 	1.00D-11*0.30*RO2 	;
+{6800.} 	 C6H5CH2CO3 = C6H5CH2O2 : 	1.00D-11*0.70*RO2 	;
+{6801.} 	 EBNZOHNO2 + NO3 = NEBNZ1O + HNO3 : 	3.13D-13*1.0 	;
+{6802.} 	 EBNZOHNO2 + OH = NEBNZ1O : 	1.53D-12 	;
+{6803.} 	 EBENZO2 + HO2 = EBENZOOH : 	KRO2HO2*0.859 	;
+{6804.} 	 EBENZO2 + NO = EBENZO + NO2 : 	KRO2NO 	;
+{6805.} 	 EBENZO2 + NO3 = EBENZO + NO2 : 	KRO2NO3 	;
+{6806.} 	 EBENZO2 = EBENZO : 	2.50D-13*RO2 	;
+{6807.} 	 EBENZOLOOH + OH = EBENZOLO2 : 	1.15D-10 	;
+{6808.} 	 EBENZOLOOH = EBENZOLO + OH : 	J(41) 	;
+{6809.} 	 EBENZOLO = C6DCRBBOH + GLYOX + HO2 : 	KDEC*0.68 	;
+{6810.} 	 EBENZOLO = PEBQONE + HO2 : 	KDEC*0.32 	;
+{6811.} 	 EBENZOLOH + OH = EBENZOLO : 	1.11D-10 	;
+{6812.} 	 NEBNZOLOOH + OH = NEBNZOLO2 : 	1.07D-10 	;
+{6813.} 	 NEBNZOLOOH = EBENZOLO + OH + NO2 : 	J(54) 	;
+{6814.} 	 NEBNZOLOOH = NEBNZOLO + OH : 	J(41) 	;
+{6815.} 	 NEBNZOLO = C6DCRBBOH + GLYOX + NO2 : 	KDEC 	;
+{6816.} 	 NEBNZOLOH + OH = NEBNZOLO : 	1.04D-10 	;
+{6817.} 	 NEBNZOLOH = EBENZOLO + HO2 + NO2 : 	J(54) 	;
+{6818.} 	 ECATEC1O + NO2 = ENCATECH : 	2.08D-12 	;
+{6819.} 	 ECATEC1O + O3 = ECATEC1O2 : 	2.86D-13 	;
+{6820.} 	 ECATECOOA = RGDCO2H + HCOCO2H + HO2 + OH : 	KDEC*1.0 	;
+{6821.} 	 C6DICARB + NO3 = C6DCARBBO2 + HNO3 : 	KNO3AL*2.75 	;
+{6822.} 	 C6DICARB + O3 = EGLYOX + GLYOOA : 	2.00D-18*0.5 	;
+{6823.} 	 C6DICARB + O3 = GLYOX + EGLYOOB : 	2.00D-18*0.5 	;
+{6824.} 	 C6DICARB + OH = C6DCARBBO2 : 	5.58D-11*0.5 	;
+{6825.} 	 C6DICARB + OH = C6DICARBO2 : 	5.58D-11*0.5 	;
+{6826.} 	 C6DICARB = C6DCARBBO2 + HO2 + CO : 	J(4)*0.2*0.6 	;
+{6827.} 	 C6DICARB = EBFUONE : 	J(4)*0.2*0.4 	;
+{6828.} 	 EBFUONE + NO3 = NEBFUO2 : 	1.00D-12 	;
+{6829.} 	 EBFUONE + O3 = CO + BUTALAO2 + OH : 	8.00D-19 	;
+{6830.} 	 EBFUONE + OH = EBFUO2 : 	2.29D-11 	;
+{6831.} 	 C6DCARBBO2 + HO2 = C6DCARBBO + OH : 	KAPHO2*0.44 	;
+{6832.} 	 C6DCARBBO2 + HO2 = C6DCRBBOH + O3 : 	KAPHO2*0.15 	;
+{6833.} 	 C6DCARBBO2 + HO2 = C6DCRBBOOH : 	KAPHO2*0.41 	;
+{6834.} 	 C6DCARBBO2 + NO = C6DCARBBO + NO2 : 	KAPNO 	;
+{6835.} 	 C6DCARBBO2 + NO2 = C6DCARBPAN : 	KFPAN 	;
+{6836.} 	 C6DCARBBO2 + NO3 = C6DCARBBO + NO2 : 	KRO2NO3*1.74 	;
+{6837.} 	 C6DCARBBO2 = C6DCARBBO : 	1.00D-11*0.70*RO2 	;
+{6838.} 	 C6DCARBBO2 = C6DCRBBOH : 	1.00D-11*0.30*RO2 	;
+{6839.} 	 EBZMUCCO2H + OH = C715CO2O2 : 	6.09D-11 	;
+{6840.} 	 EBZMUCCO2H = C715CO2O2 + HO2 : 	J(23)+J(24) 	;
+{6841.} 	 EBZMUCCO3H + OH = EBZMUCCO3 : 	6.40D-11 	;
+{6842.} 	 EBZMUCCO3H = C715CO2O2 + OH : 	J(41)+J(23)+J(24) 	;
+{6843.} 	 EBZMUCPAN + OH = C6DICARB + CO + NO2 : 	6.08D-11 	;
+{6844.} 	 EBZMUCPAN = EBZMUCCO3 + NO2 : 	KBPAN 	;
+{6845.} 	 EGLYOO + CO = EGLYOX : 	1.20D-15 	;
+{6846.} 	 EGLYOO + NO = EGLYOX + NO2 : 	1.00D-14 	;
+{6847.} 	 EGLYOO + NO2 = EGLYOX + NO3 : 	1.00D-15 	;
+{6848.} 	 EGLYOO + SO2 = EGLYOX + SO3 : 	7.00D-14 	;
+{6849.} 	 EGLYOO = ECOCO2H : 	1.00D-17*H2O 	;
+{6850.} 	 EGLYOO = EGLYOX + H2O2 : 	6.00D-18*H2O 	;
+{6851.} 	 EBZMUCOOH + OH = EBZMUCCO + OH : 	7.51D-11 	;
+{6852.} 	 EBZMUCOOH = EBZMUCO + OH : 	J(41)+J(17)+J(22) 	;
+{6853.} 	 EBZMUCNO3 + OH = EBZMUCCO + NO2 : 	3.17D-11 	;
+{6854.} 	 EBZMUCNO3 = EPXC4DIAL + NO2 + C2H5CO3 + CO + HO2 : 	J(17)+J(22) 	;
+{6855.} 	 EBZMUCO = CO3H4CHO + C3DIALO2 : 	KDEC*0.5 	;
+{6856.} 	 EBZMUCO = EPXC4DIAL + EGLYOX + HO2 : 	KDEC*0.5 	;
+{6857.} 	 EBZMUCCO + OH = C2H5CO3 + EPXC4DIAL + CO : 	4.25D-11 	;
+{6858.} 	 EBZMUCCO = C2H5CO3 + EPXC4DIAL + CO + HO2 : 	J(17)+J(35) 	;
+{6859.} 	 EBZMUCOH + OH = EBZMUCCO + HO2 : 	6.29D-11 	;
+{6860.} 	 EBZMUCOH = EBZMUCO + HO2 : 	J(17)+J(22) 	;
+{6861.} 	 C715CO2OOH + OH = C7CO2DBAL + OH : 	9.53D-11 	;
+{6862.} 	 C715CO2OOH = C6DICARB + CO + HO2 + OH : 	J(17)+J(23) 	;
+{6863.} 	 C715CO2OOH = C715CO2O + OH : 	J(41)+J(24) 	;
+{6864.} 	 C715CO2O = C6DICARB + CO + HO2 : 	KDEC 	;
+{6865.} 	 C715CO2OH + OH = C7CO2DBAL + HO2 : 	1.19D-11 	;
+{6866.} 	 C715CO2OH = C6DICARB + CO + HO2 + HO2 : 	J(17)+J(23)+J(24) 	;
+{6867.} 	 C7CO2DBAL + OH = C7CO3OHO2 : 	6.78D-11 	;
+{6868.} 	 C7CO2DBAL = C6DCARBBO2 + HO2 + CO : 	J(34) 	;
+{6869.} 	 PHCOETO2 + HO2 = PHCOETOOH : 	KRO2HO2*0.890 	;
+{6870.} 	 PHCOETO2 + NO = PHCOETO + NO2 : 	KRO2NO 	;
+{6871.} 	 PHCOETO2 + NO3 = PHCOETO + NO2 : 	KRO2NO3 	;
+{6872.} 	 PHCOETO2 = PHCOCOME : 	8.80D-13*RO2*0.2 	;
+{6873.} 	 PHCOETO2 = PHCOETO : 	8.80D-13*RO2*0.6 	;
+{6874.} 	 PHCOETO2 = PHCOETOH : 	8.80D-13*RO2*0.2 	;
+{6875.} 	 NPBNZOLOOH + OH = NPBNZOLO2 : 	1.07D-10 	;
+{6876.} 	 NPBNZOLOOH = NPBNZOLO + OH : 	J(41) 	;
+{6877.} 	 NPBNZOLOOH = PBENZOLO + OH + NO2 : 	J(54) 	;
+{6878.} 	 NPBNZOLO = C7DCCO2H + GLYOX + NO2 : 	KDEC 	;
+{6879.} 	 NPBNZOLOH + OH = NPBNZOLO : 	1.04D-10 	;
+{6880.} 	 NPBNZOLOH = PBENZOLO + HO2 + NO2 : 	J(54) 	;
+{6881.} 	 PBNZOHNO2 + NO3 = NPBNZ1O + HNO3 : 	3.13D-13*1.0 	;
+{6882.} 	 PBNZOHNO2 + OH = NPBNZ1O : 	1.53D-12 	;
+{6883.} 	 PBENZO2 + HO2 = PBENZOOH : 	KRO2HO2*0.90 	;
+{6884.} 	 PBENZO2 + NO = PBENZO + NO2 : 	KRO2NO 	;
+{6885.} 	 PBENZO2 + NO3 = PBENZO + NO2 : 	KRO2NO3 	;
+{6886.} 	 PBENZO2 = PBENZO : 	2.50D-13*RO2 	;
+{6887.} 	 PBENZOLOOH + OH = PBENZOLO2 : 	1.15D-10 	;
+{6888.} 	 PBENZOLOOH = PBENZOLO + OH : 	J(41) 	;
+{6889.} 	 PBENZOLO = C7DCCO2H + GLYOX + HO2 : 	KDEC*0.68 	;
+{6890.} 	 PBENZOLO = PPRBQONE + HO2 : 	KDEC*0.32 	;
+{6891.} 	 PBENZOLOH + OH = PBENZOLO : 	1.11D-10 	;
+{6892.} 	 PCATEC1O + NO2 = PNCATECH : 	2.08D-12 	;
+{6893.} 	 PCATEC1O + O3 = PCATEC1O2 : 	2.86D-13 	;
+{6894.} 	 PCATECOOA = PC3ODBCO2H + HCOCO2H + HO2 + OH : 	KDEC*1.0 	;
+{6895.} 	 PGLYOX + NO3 = C3H7CO3 + CO + HNO3 : 	KNO3AL*5.5 	;
+{6896.} 	 PGLYOX + OH = C3H7CO3 + CO : 	1.67D-11 	;
+{6897.} 	 PGLYOX = C3H7CO3 + HO2 + CO : 	J(34) 	;
+{6898.} 	 C7DICARB + NO3 = C7DCCO3 + HNO3 : 	KNO3AL*2.75 	;
+{6899.} 	 C7DICARB + O3 = PGLOOB + GLYOX : 	2.00D-18*0.5 	;
+{6900.} 	 C7DICARB + O3 = PGLYOX + GLYOOA : 	2.00D-18*0.5 	;
+{6901.} 	 C7DICARB + OH = C7DCCO3 : 	5.58D-11*0.50 	;
+{6902.} 	 C7DICARB + OH = C7DCO2 : 	5.58D-11*0.50 	;
+{6903.} 	 C7DICARB = C7DCCO3 + HO2 : 	J(4)*0.2*0.6 	;
+{6904.} 	 C7DICARB = PBFUONE : 	J(4)*0.2*0.4 	;
+{6905.} 	 PBFUONE + NO3 = NPBFUO2 : 	1.00D-12 	;
+{6906.} 	 PBFUONE + O3 = CO + C4CHOAO2 + OH : 	8.00D-19 	;
+{6907.} 	 PBFUONE + OH = PBFUO2 : 	2.43D-11 	;
+{6908.} 	 C7DCCO3 + HO2 = C7DCCO2 + OH : 	KAPHO2*0.44 	;
+{6909.} 	 C7DCCO3 + HO2 = C7DCCO2H + O3 : 	KAPHO2*0.15 	;
+{6910.} 	 C7DCCO3 + HO2 = C7DCCO3H : 	KAPHO2*0.41 	;
+{6911.} 	 C7DCCO3 + NO = C7DCCO2 + NO2 : 	KAPNO 	;
+{6912.} 	 C7DCCO3 + NO2 = C7DCPAN : 	KFPAN 	;
+{6913.} 	 C7DCCO3 + NO3 = C7DCCO2 + NO2 : 	KRO2NO3*1.74 	;
+{6914.} 	 C7DCCO3 = C7DCCO2 : 	1.00D-11*RO2*0.7 	;
+{6915.} 	 C7DCCO3 = C7DCCO2H : 	1.00D-11*RO2*0.3 	;
+{6916.} 	 PBZMUCCO2H + OH = C815CO2O2 : 	6.44D-11 	;
+{6917.} 	 PBZMUCCO2H = C815CO2O2 + HO2 : 	J(23)+J(24) 	;
+{6918.} 	 PBZMUCCO3H + OH = PBZMUCCO3 : 	6.74D-11 	;
+{6919.} 	 PBZMUCCO3H = C815CO2O2 + OH : 	J(41)+J(23)+J(24) 	;
+{6920.} 	 PBZMUCPAN + OH = C7DICARB + CO + NO2 : 	6.42D-11 	;
+{6921.} 	 PBZMUCPAN = PBZMUCCO3 + NO2 : 	KBPAN 	;
+{6922.} 	 PGLOO + CO = PGLYOX : 	1.20D-15 	;
+{6923.} 	 PGLOO + NO = PGLYOX + NO2 : 	1.00D-14 	;
+{6924.} 	 PGLOO + NO2 = PGLYOX + NO3 : 	1.00D-15 	;
+{6925.} 	 PGLOO + SO2 = PGLYOX + SO3 : 	7.00D-14 	;
+{6926.} 	 PGLOO = PGLYOX + H2O2 : 	6.00D-18*H2O 	;
+{6927.} 	 PGLOO = PGLYOXOH : 	1.00D-17*H2O 	;
+{6928.} 	 PBZMUCOOH + OH = PBZMUCCO + OH : 	7.85D-11 	;
+{6929.} 	 PBZMUCOOH = PBZMUCO + OH : 	J(41)+J(17)+J(22) 	;
+{6930.} 	 PBZMUCNO3 + OH = PBZMUCCO + NO2 : 	3.51D-11 	;
+{6931.} 	 PBZMUCNO3 = EPXC4DIAL + NO2 + C3H7CO3 + CO + HO2 : 	J(17)+J(22) 	;
+{6932.} 	 PBZMUCO = C6O132OH + C3DIALO2 : 	KDEC*0.5 	;
+{6933.} 	 PBZMUCO = EPXC4DIAL + PGLYOX + HO2 : 	KDEC*0.5 	;
+{6934.} 	 PBZMUCCO + OH = C3H7CO3 + EPXC4DIAL + CO : 	4.61D-11 	;
+{6935.} 	 PBZMUCCO = C3H7CO3 + EPXC4DIAL + CO + HO2 : 	J(17)+J(35) 	;
+{6936.} 	 PBZMUCOH + OH = PBZMUCCO + HO2 : 	6.63D-11 	;
+{6937.} 	 PBZMUCOH = PBZMUCO + HO2 : 	J(17)+J(22) 	;
+{6938.} 	 C815CO2OOH + OH = C8CO2DBAL + OH : 	9.87D-11 	;
+{6939.} 	 C815CO2OOH = C7DICARB + CO + HO2 + OH : 	J(17)+J(23) 	;
+{6940.} 	 C815CO2OOH = C815CO2O + OH : 	J(41)+J(24) 	;
+{6941.} 	 C815CO2O = C7DICARB + CO + HO2 : 	KDEC 	;
+{6942.} 	 C815CO2OH + OH = C8CO2DBAL + HO2 : 	1.23D-10 	;
+{6943.} 	 C815CO2OH = C7DICARB + CO + HO2 + HO2 : 	J(17)+J(23)+J(24) 	;
+{6944.} 	 C8CO2DBAL + OH = C8CO3OHO2 : 	6.91D-11 	;
+{6945.} 	 C8CO2DBAL = C7DCCO3 + HO2 + CO : 	J(34) 	;
+{6946.} 	 PHCOME + OH = PHCOMEO2 : 	6.00D-12 	;
+{6947.} 	 PHCOME = C6H5CO3 + CH3O2 : 	J(22) 	;
+{6948.} 	 IPBNZOHNO2 + NO3 = NIPBNZ1O + HNO3 : 	3.13D-13*1.0 	;
+{6949.} 	 IPBNZOHNO2 + OH = NIPBNZ1O : 	1.53D-12 	;
+{6950.} 	 IPBENZO2 + HO2 = IPBENZOOH : 	KRO2HO2*0.90 	;
+{6951.} 	 IPBENZO2 + NO = IPBENZO + NO2 : 	KRO2NO 	;
+{6952.} 	 IPBENZO2 + NO3 = IPBENZO + NO2 : 	KRO2NO3 	;
+{6953.} 	 IPBENZO2 = IPBENZO : 	2.50D-13*RO2 	;
+{6954.} 	 IPBZOLOOH + OH = IPBENZOLO2 : 	1.15D-10 	;
+{6955.} 	 IPBZOLOOH = IPBENZOLO + OH : 	J(41) 	;
+{6956.} 	 IPBENZOLO = IC7DCCO2H + GLYOX + HO2 : 	KDEC*0.68 	;
+{6957.} 	 IPBENZOLO = IPRBQONE + HO2 : 	KDEC*0.32 	;
+{6958.} 	 IPBENZOLOH + OH = IPBENZOLO : 	1.11D-10 	;
+{6959.} 	 NIPBZOLOOH + OH = NIPBNZOLO2 : 	1.07D-10 	;
+{6960.} 	 NIPBZOLOOH = IPBENZOLO + OH + NO2 : 	J(54) 	;
+{6961.} 	 NIPBZOLOOH = NIPBNZOLO + OH : 	J(41) 	;
+{6962.} 	 NIPBNZOLO = IC7DCCO2H + GLYOX + NO2 : 	KDEC 	;
+{6963.} 	 NIPBNZOLOH + OH = NIPBNZOLO : 	1.04D-10 	;
+{6964.} 	 NIPBNZOLOH = IPBENZOLO + HO2 + NO2 : 	J(54) 	;
+{6965.} 	 IPCATEC1O + NO2 = IPNCATECH : 	2.08D-12 	;
+{6966.} 	 IPCATEC1O + O3 = IPCATEC1O2 : 	2.86D-13 	;
+{6967.} 	 IPCATECOOA = IP3ODBCO2H + HCOCO2H + HO2 + OH : 	KDEC*1.0 	;
+{6968.} 	 IC7DICARB + NO3 = IC7DCCO3 + HNO3 : 	KNO3AL*4.25 	;
+{6969.} 	 IC7DICARB + O3 = IPGLOOB + GLYOX : 	2.00D-18*0.5 	;
+{6970.} 	 IC7DICARB + O3 = IPRGLYOX + GLYOOA : 	2.00D-18*0.5 	;
+{6971.} 	 IC7DICARB + OH = IC7DCCO3 : 	5.58D-11*0.50 	;
+{6972.} 	 IC7DICARB + OH = IC7DCO2 : 	5.58D-11*0.50 	;
+{6973.} 	 IC7DICARB = IC7DCCO3 + HO2 : 	J(4)*0.2*0.6 	;
+{6974.} 	 IC7DICARB = IPBFUONE : 	J(4)*0.2*0.4 	;
+{6975.} 	 IC7DICARB = IPRCO3 + GLYOX + HO2 + CO : 	J(4)*0.05*0.34 	;
+{6976.} 	 IPBFUONE + NO3 = NIPBFUO2 : 	1.00D-12 	;
+{6977.} 	 IPBFUONE + O3 = CO + IC4CHOAO2 + OH : 	8.00D-19 	;
+{6978.} 	 IPBFUONE + OH = IPBFUO2 : 	2.43D-11 	;
+{6979.} 	 IC7DCCO3 + HO2 = IC7DCCO2 + OH : 	KAPHO2*0.44 	;
+{6980.} 	 IC7DCCO3 + HO2 = IC7DCCO2H + O3 : 	KAPHO2*0.15 	;
+{6981.} 	 IC7DCCO3 + HO2 = IC7DCCO3H : 	KAPHO2*0.41 	;
+{6982.} 	 IC7DCCO3 + NO = IC7DCCO2 + NO2 : 	KAPNO 	;
+{6983.} 	 IC7DCCO3 + NO2 = IC7DCPAN : 	KFPAN 	;
+{6984.} 	 IC7DCCO3 + NO3 = IC7DCCO2 + NO2 : 	KRO2NO3*1.74 	;
+{6985.} 	 IC7DCCO3 = IC7DCCO2 : 	1.00D-11*RO2*0.7 	;
+{6986.} 	 IC7DCCO3 = IC7DCCO2H : 	1.00D-11*RO2*0.3 	;
+{6987.} 	 IPBZMUCO2H + OH = C7M15CO2O2 : 	6.22D-11 	;
+{6988.} 	 IPBZMUCO2H = C7M15CO2O2 + HO2 : 	J(23)+J(24) 	;
+{6989.} 	 IPBZMUCO3H + OH = IPBZMUCCO3 : 	6.53D-11 	;
+{6990.} 	 IPBZMUCO3H = C7M15CO2O2 + OH : 	J(41)+J(23)+J(24) 	;
+{6991.} 	 IPBZMUCPAN + OH = IC7DICARB + CO + NO2 : 	6.21D-11 	;
+{6992.} 	 IPBZMUCPAN = IPBZMUCCO3 + NO2 : 	KBPAN 	;
+{6993.} 	 IPGLOO + CO = IPRGLYOX : 	1.20D-15 	;
+{6994.} 	 IPGLOO + NO = IPRGLYOX + NO2 : 	1.00D-14 	;
+{6995.} 	 IPGLOO + NO2 = IPRGLYOX + NO3 : 	1.00D-15 	;
+{6996.} 	 IPGLOO + SO2 = IPRGLYOX + SO3 : 	7.00D-14 	;
+{6997.} 	 IPGLOO = IPGLYOXOH : 	1.00D-17*H2O 	;
+{6998.} 	 IPGLOO = IPRGLYOX + H2O2 : 	6.00D-18*H2O 	;
+{6999.} 	 IPBZMUCOOH + OH = IPBZMUCCO + OH : 	7.64D-11 	;
+{7000.} 	 IPBZMUCOOH = IPBZMUCO + OH : 	J(41)+J(17)+J(22) 	;
+{7001.} 	 IPBZMUCNO3 + OH = IPBZMUCCO + NO2 : 	3.30D-11 	;
+{7002.} 	 IPBZMUCNO3 = EPXC4DIAL + NO2 + IPRCO3 + CO + HO2 : 	J(17)+J(22) 	;
+{7003.} 	 IPBZMUCO = C5MO132OH + C3DIALO2 : 	KDEC*0.5 	;
+{7004.} 	 IPBZMUCO = EPXC4DIAL + IPRGLYOX + HO2 : 	KDEC*0.5 	;
+{7005.} 	 IPBZMUCCO + OH = IPRCO3 + EPXC4DIAL + CO : 	4.47D-11 	;
+{7006.} 	 IPBZMUCCO = IPRCO3 + EPXC4DIAL + CO + HO2 : 	J(17)+J(35) 	;
+{7007.} 	 IPBZMUCOH + OH = IPBZMUCCO + HO2 : 	6.42D-11 	;
+{7008.} 	 IPBZMUCOH = IPBZMUCO + HO2 : 	J(17)+J(22) 	;
+{7009.} 	 C7MCO2OOH + OH = C7MCO2DBAL + OH : 	9.66D-11 	;
+{7010.} 	 C7MCO2OOH = C7M15CO2O + OH : 	J(41)+J(24) 	;
+{7011.} 	 C7MCO2OOH = IC7DICARB + CO + HO2 + OH : 	J(17)+J(23) 	;
+{7012.} 	 C7M15CO2O = IC7DICARB + CO + HO2 : 	KDEC 	;
+{7013.} 	 C7M15CO2OH + OH = C7MCO2DBAL + HO2 : 	1.21D-10 	;
+{7014.} 	 C7M15CO2OH = IC7DICARB + CO + HO2 + HO2 : 	J(17)+J(23)+J(24) 	;
+{7015.} 	 C7MCO2DBAL + OH = C7MCO3OHO2 : 	6.70D-11 	;
+{7016.} 	 C7MCO2DBAL = IC7DCCO3 + HO2 + CO : 	J(34) 	;
+{7017.} 	 TM123BCO3 + HO2 = DM123O2 + OH : 	KAPHO2*0.44 	;
+{7018.} 	 TM123BCO3 + HO2 = TM123BCO2H + O3 : 	KAPHO2*0.15 	;
+{7019.} 	 TM123BCO3 + HO2 = TM123BCO3H : 	KAPHO2*0.41 	;
+{7020.} 	 TM123BCO3 + NO = DM123O2 + NO2 : 	KAPNO 	;
+{7021.} 	 TM123BCO3 + NO2 = TM123BPAN : 	KFPAN 	;
+{7022.} 	 TM123BCO3 + NO3 = DM123O2 + NO2 : 	KRO2NO3*1.74 	;
+{7023.} 	 TM123BCO3 = DM123O2 : 	1.00D-11*RO2*0.70 	;
+{7024.} 	 TM123BCO3 = TM123BCO2H : 	1.00D-11*RO2*0.30 	;
+{7025.} 	 NTM123LOOH + OH = NTM123OLO2 : 	1.85D-10 	;
+{7026.} 	 NTM123LOOH = NTM123OLO + OH : 	J(41) 	;
+{7027.} 	 NTM123LOOH = TM123OLO + OH + NO2 : 	J(54) 	;
+{7028.} 	 NTM123OLO = C7ADCCO2H + GLYOX + NO2 : 	KDEC 	;
+{7029.} 	 NTM123OLOH + OH = NTM123OLO : 	1.81D-10 	;
+{7030.} 	 NTM123OLOH = TM123OLO + HO2 + NO2 : 	J(54) 	;
+{7031.} 	 TM123OHNO2 + NO3 = NT123L1O + HNO3 : 	3.13D-13 	;
+{7032.} 	 TM123OHNO2 + OH = NT123L1O : 	1.53D-12 	;
+{7033.} 	 TM123O2 + HO2 = TM123OOH : 	KRO2HO2*0.90 	;
+{7034.} 	 TM123O2 + NO = TM123O + NO2 : 	KRO2NO 	;
+{7035.} 	 TM123O2 + NO3 = TM123O + NO2 : 	KRO2NO3 	;
+{7036.} 	 TM123O2 = TM123O : 	2.50D-13*RO2 	;
+{7037.} 	 TM123OLOOH + OH = TM123OLO2 : 	1.89D-10 	;
+{7038.} 	 TM123OLOOH = TM123OLO + OH : 	J(41) 	;
+{7039.} 	 TM123OLO = C7ADCCO2H + GLYOX + HO2 : 	KDEC 	;
+{7040.} 	 TM123OLOH + OH = TM123OLO : 	1.85D-10 	;
+{7041.} 	 T123CAT1O + NO2 = T123NCATEC : 	2.08D-12 	;
+{7042.} 	 T123CAT1O + O3 = T123CAT1O2 : 	2.86D-13 	;
+{7043.} 	 T123CTCOOA = C5DBCOCO2H + CH3COCO2H + HO2 + OH : 	KDEC 	;
+{7044.} 	 C7ADICARB + NO3 = C7ADCCO3 + HNO3 : 	KNO3AL*4.25 	;
+{7045.} 	 C7ADICARB + OH = C7ADCCO3 : 	5.58D-11*0.50 	;
+{7046.} 	 C7ADICARB + OH = C7ADCO2 : 	5.58D-11*0.50 	;
+{7047.} 	 C7ADICARB = C7ADCCO3 + HO2 : 	J(4)*0.2*0.6 	;
+{7048.} 	 C7ADICARB = TMB2FUONE : 	J(4)*0.2*0.4 	;
+{7049.} 	 TMB1FUONE + NO3 = NTMB1FUO2 : 	1.00D-12 	;
+{7050.} 	 TMB1FUONE + O3 = C5OCO3M : 	8.00D-17 	;
+{7051.} 	 TMB1FUONE + OH = TMB1FUO2 : 	2.66D-11 	;
+{7052.} 	 TMB2FUONE + NO3 = NTMB2FUO2 : 	1.00D-12 	;
+{7053.} 	 TMB2FUONE + O3 = MC6OTKETO2 + OH : 	1.40D-18 	;
+{7054.} 	 TMB2FUONE + OH = TMB2FUO2 : 	3.26D-11 	;
+{7055.} 	 EPXKTMCO3 + HO2 = C4MCO2O2 + OH : 	KAPHO2*0.44 	;
+{7056.} 	 EPXKTMCO3 + HO2 = EPXKTMCO2H + O3 : 	KAPHO2*0.15 	;
+{7057.} 	 EPXKTMCO3 + HO2 = EPXKTMCO3H : 	KAPHO2*0.41 	;
+{7058.} 	 EPXKTMCO3 + NO = C4MCO2O2 + NO2 : 	KAPNO 	;
+{7059.} 	 EPXKTMCO3 + NO2 = EPXKTMPAN : 	KFPAN 	;
+{7060.} 	 EPXKTMCO3 + NO3 = C4MCO2O2 + NO2 : 	KRO2NO3*1.74 	;
+{7061.} 	 EPXKTMCO3 = C4MCO2O2 : 	1.00D-11*RO2*0.70 	;
+{7062.} 	 EPXKTMCO3 = EPXKTMCO2H : 	1.00D-11*RO2*0.30 	;
+{7063.} 	 C4CO2O2 + HO2 = C4CO2OOH : 	KRO2HO2*0.625 	;
+{7064.} 	 C4CO2O2 + NO = C4CO2O + NO2 : 	KRO2NO 	;
+{7065.} 	 C4CO2O2 + NO3 = C4CO2O + NO2 : 	KRO2NO3 	;
+{7066.} 	 C4CO2O2 = C4CO2O : 	8.80D-12*RO2 	;
+{7067.} 	 TM123MUOOH + OH = TM123MUCCO + OH : 	9.05D-11 	;
+{7068.} 	 TM123MUOOH = TM123MUCO + OH : 	J(41)+J(22)*2 	;
+{7069.} 	 TM123MUCO = C4MCO2O2 + CO2H3CHO : 	KDEC*0.5 	;
+{7070.} 	 TM123MUCO = EPXALMKT + MGLYOX + HO2 : 	KDEC*0.5 	;
+{7071.} 	 TM123MUNO3 + OH = TM123MUCCO + NO2 : 	2.88D-12 	;
+{7072.} 	 TM123MUNO3 = EPXALMKT + NO2 + MGLYOX + HO2 : 	J(22)*2 	;
+{7073.} 	 TM123MUCCO + OH = EPXKTMCO3 + MGLYOX : 	5.65D-12 	;
+{7074.} 	 TM123MUCCO = C4MCO2O2 + CO2H3CO3 : 	J(22) 	;
+{7075.} 	 TM123MUCCO = EPXKTMCO3 + MGLYOX + HO2 : 	J(22)*2 	;
+{7076.} 	 TM123MUCOH + OH = TM123MUCCO + HO2 : 	4.14D-11 	;
+{7077.} 	 TM123MUCOH = TM123MUCO + HO2 : 	J(22)*2 	;
+{7078.} 	 TM124BCO3 + HO2 = DM124O2 + OH : 	KAPHO2*0.44 	;
+{7079.} 	 TM124BCO3 + HO2 = TM124BCO2H + O3 : 	KAPHO2*0.15 	;
+{7080.} 	 TM124BCO3 + HO2 = TM124BCO3H : 	KAPHO2*0.41 	;
+{7081.} 	 TM124BCO3 + NO = DM124O2 + NO2 : 	KAPNO 	;
+{7082.} 	 TM124BCO3 + NO2 = TM124BPAN : 	KFPAN 	;
+{7083.} 	 TM124BCO3 + NO3 = DM124O2 + NO2 : 	KRO2NO3*1.74 	;
+{7084.} 	 TM124BCO3 = DM124O2 : 	1.00D-11*RO2*0.70 	;
+{7085.} 	 TM124BCO3 = TM124BCO2H : 	1.00D-11*RO2*0.30 	;
+{7086.} 	 DM124O2 + HO2 = DM124OOH : 	KRO2HO2*0.859 	;
+{7087.} 	 DM124O2 + NO = DM124O + NO2 : 	KRO2NO 	;
+{7088.} 	 DM124O2 + NO3 = DM124O2 + NO2 : 	KRO2NO3 	;
+{7089.} 	 DM124O2 = DM124O : 	2.50D-13*RO2 	;
+{7090.} 	 C7BDICARB + O3 = BIACET + MGLOOC : 	1.25D-17*0.5 	;
+{7091.} 	 C7BDICARB + O3 = MEK2OOC + MGLYOX : 	1.25D-17*0.5 	;
+{7092.} 	 C7BDICARB + OH = C7BDCO2 : 	6.90D-11 	;
+{7093.} 	 C7BDICARB = CH3CO3 + BIACET + HO2 + CO : 	J(4)*0.0057*0.5 	;
+{7094.} 	 C7BDICARB = CH3CO3 + CH3CO3 + MGLYOX : 	J(4)*0.0057*0.5 	;
+{7095.} 	 NTM124LOOH + OH = NTM124OLO2 : 	1.43D-10 	;
+{7096.} 	 NTM124LOOH = NTM124OLO + OH : 	J(41) 	;
+{7097.} 	 NTM124LOOH = TM124OLO + OH + NO2 : 	J(54) 	;
+{7098.} 	 NTM124OLO = C3M2COCO2H + MGLYOX + NO2 : 	KDEC 	;
+{7099.} 	 NTM124OLOH + OH = NTM124OLO : 	1.40D-10 	;
+{7100.} 	 NTM124OLOH = TM124OLO + HO2 + NO2 : 	J(54) 	;
+{7101.} 	 TM124OHNO2 + NO3 = NT124L1O + HNO3 : 	3.13D-13 	;
+{7102.} 	 TM124OHNO2 + OH = NT124L1O : 	1.53D-12 	;
+{7103.} 	 TM124O2 + HO2 = TM124OOH : 	KRO2HO2*0.90 	;
+{7104.} 	 TM124O2 + NO = TM124O + NO2 : 	KRO2NO 	;
+{7105.} 	 TM124O2 + NO3 = TM124O + NO2 : 	KRO2NO3 	;
+{7106.} 	 TM124O2 = TM124O : 	2.50D-13*RO2 	;
+{7107.} 	 TM124OLOOH + OH = TM124OLO2 : 	1.51D-10 	;
+{7108.} 	 TM124OLOOH = TM124OLO + OH : 	J(41) 	;
+{7109.} 	 TM124OLO = C3M2COCO2H + MGLYOX + HO2 : 	KDEC*0.78 	;
+{7110.} 	 TM124OLO = TM124QONE + HO2 : 	KDEC*0.22 	;
+{7111.} 	 TM124OLOH + OH = TM124OLO : 	1.48D-10 	;
+{7112.} 	 T124CAT1O + NO2 = T124NCATEC : 	2.08D-12 	;
+{7113.} 	 T124CAT1O + O3 = T124CAT1O2 : 	2.86D-13 	;
+{7114.} 	 T124CTCOOA = C5CODBCO2H + CH3COCO2H + HO2 + OH : 	KDEC 	;
+{7115.} 	 TM124MUO2H + OH = C7CO2M5O2 : 	5.89D-11 	;
+{7116.} 	 TM124MUO2H = EPXM2DCO2H + HO2 + CO + CH3CO3 : 	J(23)+J(24) 	;
+{7117.} 	 TM124MUO3H + OH = TM124MUCO3 : 	6.20D-11 	;
+{7118.} 	 TM124MUO3H = C7CO2M5O2 + OH : 	J(41) 	;
+{7119.} 	 TM124MUO3H = EPXM2DCO3H + CH3CO3 + HO2 + CO : 	J(23)+J(24) 	;
+{7120.} 	 TM124MUPAN + OH = C4DBDIKET + CH3O2 + CO + NO2 : 	5.88D-11 	;
+{7121.} 	 TM124MUPAN = TM124MUCO3 + NO2 : 	KBPAN 	;
+{7122.} 	 TM124MUOOH + OH = TM124MUCCO + OH : 	1.10D-10 	;
+{7123.} 	 TM124MUOOH = TM124MUCO + OH : 	J(41)+J(17)+J(22) 	;
+{7124.} 	 TM124MUCO = C4MCO2O2 + CO2H3CHO : 	KDEC*0.5 	;
+{7125.} 	 TM124MUCO = EPXM2C4DAL + MGLYOX + HO2 : 	KDEC*0.5 	;
+{7126.} 	 TM124MUNO3 + OH = TM124MUCCO + NO2 : 	2.33D-11 	;
+{7127.} 	 TM124MUNO3 = EPXM2C4DAL + NO2 + HO2 + MGLYOX : 	J(17)+J(22) 	;
+{7128.} 	 TM124MUCCO + OH = EPXM2DLCO3 + MGLYOX : 	2.58D-11 	;
+{7129.} 	 TM124MUCCO = CO2H3CO3 + C4MCO2O2 : 	J(17)+J(22)*2 	;
+{7130.} 	 TM124MUCOH + OH = TM124MUCCO + HO2 : 	6.06D-11 	;
+{7131.} 	 TM124MUCOH = TM124MUCO + HO2 : 	J(17)+J(22) 	;
+{7132.} 	 C7CO2M5OOH + OH = C7CO2M5O2 : 	6.19D-11 	;
+{7133.} 	 C7CO2M5OOH = C4MCO2OOH + HO2 + CO + CH3CO3 : 	J(24) 	;
+{7134.} 	 C7CO2M5OOH = C7CO2M5O + OH : 	J(41) 	;
+{7135.} 	 C7CO2M5OOH = CH3CO3 + C4DBDIKET + OH : 	J(22) 	;
+{7136.} 	 C7CO2M5O = C4DBDIKET + CH3CO3 : 	KDEC 	;
+{7137.} 	 C7CO2M5OH + OH = C7CO2M5O : 	9.30D-11 	;
+{7138.} 	 C7CO2M5OH = C4MCO2OH + HO2 + CO + CH3CO3 : 	J(24) 	;
+{7139.} 	 C7CO2M5OH = CH3CO3 + C4DBDIKET + HO2 : 	J(22) 	;
+{7140.} 	 TMBCO3 + HO2 = DMPHO2 + OH : 	KAPHO2*0.44 	;
+{7141.} 	 TMBCO3 + HO2 = TMBCO2H + O3 : 	KAPHO2*0.15 	;
+{7142.} 	 TMBCO3 + HO2 = TMBCO3H : 	KAPHO2*0.41 	;
+{7143.} 	 TMBCO3 + NO = DMPHO2 + NO2 : 	KAPNO 	;
+{7144.} 	 TMBCO3 + NO2 = TMBPAN : 	KFPAN 	;
+{7145.} 	 TMBCO3 + NO3 = DMPHO2 + NO2 : 	KRO2NO3*1.74 	;
+{7146.} 	 TMBCO3 = DMPHO2 : 	1.00D-11*0.70*RO2 	;
+{7147.} 	 TMBCO3 = TMBCO2H : 	1.00D-11*0.30*RO2 	;
+{7148.} 	 DMPHO2 + HO2 = DMPHOOH : 	KRO2HO2*0.890 	;
+{7149.} 	 DMPHO2 + NO = DMPHO + NO2 : 	KRO2NO 	;
+{7150.} 	 DMPHO2 + NO3 = DMPHO + NO2 : 	KRO2NO3 	;
+{7151.} 	 DMPHO2 = DMPHO : 	2.50D-13*RO2 	;
+{7152.} 	 C4MCODBCO3 + HO2 = C4MCODBCO2 + OH : 	KAPHO2*0.44 	;
+{7153.} 	 C4MCODBCO3 + HO2 = C5CODBCO3H : 	KAPHO2*0.56 	;
+{7154.} 	 C4MCODBCO3 + NO = NO2 + C4MCODBCO2 : 	KAPNO 	;
+{7155.} 	 C4MCODBCO3 + NO2 = C4MCODBPAN : 	KFPAN 	;
+{7156.} 	 C4MCODBCO3 + NO3 = C4MCODBCO2 + NO2 : 	KRO2NO3*1.74 	;
+{7157.} 	 C4MCODBCO3 = C4MCODBCO2 : 	1.00D-11*0.70*RO2 	;
+{7158.} 	 C4MCODBCO3 = C5CODBCO2H : 	1.00D-11*0.30*RO2 	;
+{7159.} 	 NTM135LOOH + OH = NTM135OLO2 : 	1.44D-10 	;
+{7160.} 	 NTM135LOOH = NTM135OLO + OH : 	J(41) 	;
+{7161.} 	 NTM135LOOH = TM135OLO + OH + NO2 : 	J(54) 	;
+{7162.} 	 NTM135OLO = C5CODBCO2H + MGLYOX + NO2 : 	KDEC 	;
+{7163.} 	 NTM135OLOH + OH = NTM135OLO : 	1.40D-10 	;
+{7164.} 	 NTM135OLOH = TM135OLO + HO2 + NO2 : 	J(54) 	;
+{7165.} 	 TM135OLOOH + OH = TM135OLO2 : 	1.50D-10 	;
+{7166.} 	 TM135OLOOH = TM135OLO + OH : 	J(41) 	;
+{7167.} 	 TM135OLO = C5CODBCO2H + MGLYOX + HO2 : 	KDEC 	;
+{7168.} 	 TM135OLOH + OH = TM135OLO : 	1.47D-10 	;
+{7169.} 	 TM135MUO2H + OH = C7M2CO5O2 : 	8.08D-11 	;
+{7170.} 	 TM135MUO2H = C7M2CO5O2 + HO2 : 	J(23)+J(24) 	;
+{7171.} 	 TM135MUO3H + OH = TM135MUCO3 : 	8.38D-11 	;
+{7172.} 	 TM135MUO3H = C7M2CO5O2 + OH : 	J(41)+J(23)+J(24) 	;
+{7173.} 	 TM135MUPAN + OH = C5MDICARB + CH3O2 + CO + NO2 : 	8.06D-11 	;
+{7174.} 	 TM135MUPAN = TM135MUCO3 + NO2 : 	KBPAN 	;
+{7175.} 	 EPXMKTCO3 + HO2 = CO24C53O2 + OH : 	KAPHO2*0.44 	;
+{7176.} 	 EPXMKTCO3 + HO2 = EPXMKTCO2H + O3 : 	KAPHO2*0.15 	;
+{7177.} 	 EPXMKTCO3 + HO2 = EPXMKTCO3H : 	KAPHO2*0.41 	;
+{7178.} 	 EPXMKTCO3 + NO = CO24C53O2 + NO2 : 	KAPNO 	;
+{7179.} 	 EPXMKTCO3 + NO2 = EPXMKTPAN : 	KFPAN 	;
+{7180.} 	 EPXMKTCO3 + NO3 = CO24C53O2 + NO2 : 	KRO2NO3*1.74 	;
+{7181.} 	 EPXMKTCO3 = CO24C53O2 : 	1.00D-11*RO2*0.70 	;
+{7182.} 	 EPXMKTCO3 = EPXMKTCO2H : 	1.00D-11*RO2*0.30 	;
+{7183.} 	 CO24C53O2 + HO2 = CO24C53OOH : 	KRO2HO2*0.706 	;
+{7184.} 	 CO24C53O2 + NO = CO24C53O + NO2 : 	KRO2NO 	;
+{7185.} 	 CO24C53O2 + NO3 = CO24C53O + NO2 : 	KRO2NO3 	;
+{7186.} 	 CO24C53O2 = CO24C53O : 	8.80D-13*RO2 	;
+{7187.} 	 TM135MUOOH + OH = TM135MUCO2 : 	3.30D-11 	;
+{7188.} 	 TM135MUOOH = TM135MUCO + OH : 	J(41)+J(17)+J(22) 	;
+{7189.} 	 TM135MUCO = C3MDIALO2 + C5CO243OH : 	KDEC*0.5 	;
+{7190.} 	 TM135MUCO = EPXMALKT + MGLYOX + HO2 : 	KDEC*0.5 	;
+{7191.} 	 TM135MUNO3 + OH = C3MDIALO2 + C5CO243OH + NO2 : 	2.31D-11 	;
+{7192.} 	 TM135MUNO3 = EPXMALKT + HO2 + MGLYOX + NO2 : 	J(17)+J(22) 	;
+{7193.} 	 TM135MUOH + OH = TM135MUCO : 	2.96D-11 	;
+{7194.} 	 TM135MUOH = TM135MUCO + HO2 : 	J(17)+J(22) 	;
+{7195.} 	 C7M2CO5OOH + OH = C7M3CO + OH : 	9.44D-11 	;
+{7196.} 	 C7M2CO5OOH = C5MDICARB + CH3CO3 + OH : 	J(22) 	;
+{7197.} 	 C7M2CO5OOH = C7M2CO5O + OH : 	J(41) 	;
+{7198.} 	 C7M2CO5OOH = CO24C53OOH + CH3CO3 + HO2 + CO : 	J(23) 	;
+{7199.} 	 C7M2CO5O = C5MDICARB + CH3CO3 : 	KDEC 	;
+{7200.} 	 C7M2CO5OH + OH = C7M3CO + HO2 : 	1.31D-10 	;
+{7201.} 	 C7M2CO5OH = C5MDICARB + HO2 + CH3CO3 : 	J(23)+J(22) 	;
+{7202.} 	 C7M3CO + OH = CH3CO3 + C4MCODBCO3 : 	7.10D-11 	;
+{7203.} 	 C7M3CO = C5CO234 + CH3CO3 + HO2 + CO : 	J(23) 	;
+{7204.} 	 C7M3CO = CH3CO3 + C4MCODBCO3 : 	J(35) 	;
+{7205.} 	 MPHCOMEO2 + HO2 = MPHCOMEOOH : 	KRO2HO2*0.890 	;
+{7206.} 	 MPHCOMEO2 + NO = MPHCOMEO + NO2 : 	KRO2NO 	;
+{7207.} 	 MPHCOMEO2 + NO3 = MPHCOMEO + NO2 : 	KRO2NO3 	;
+{7208.} 	 MPHCOMEO2 = MPHCOMEO : 	8.80D-13*RO2*0.6 	;
+{7209.} 	 MPHCOMEO2 = MPHCOMEOH : 	8.80D-13*RO2*0.2 	;
+{7210.} 	 MPHCOMEO2 = MPHGLYOX : 	8.80D-13*RO2*0.2 	;
+{7211.} 	 OETLMUCO2H + OH = MC7CO2O2 : 	4.31D-11 	;
+{7212.} 	 OETLMUCO2H = MC7CO2O2 + HO2 : 	J(18)+J(19) 	;
+{7213.} 	 OETLMUCO3H + OH = OETLMUCCO3 : 	4.61D-11 	;
+{7214.} 	 OETLMUCO3H = MC7CO2O2 + OH : 	J(41)+J(18)+J(19) 	;
+{7215.} 	 OETLMUCPAN + OH = C5DICARB + C2H5CHO + NO2 : 	4.29D-11 	;
+{7216.} 	 OETLMUCPAN = OETLMUCCO3 + NO2 : 	KBPAN 	;
+{7217.} 	 EPXMEDLCO3 + HO2 = C4ECO2O2 + OH : 	KAPHO2*0.44 	;
+{7218.} 	 EPXMEDLCO3 + HO2 = EPXMEDCO2H + O3 : 	KAPHO2*0.15 	;
+{7219.} 	 EPXMEDLCO3 + HO2 = EPXMEDCO3H : 	KAPHO2*0.41 	;
+{7220.} 	 EPXMEDLCO3 + NO = C4ECO2O2 + NO2 : 	KAPNO 	;
+{7221.} 	 EPXMEDLCO3 + NO2 = EPXMEDLPAN : 	KFPAN 	;
+{7222.} 	 EPXMEDLCO3 + NO3 = C4ECO2O2 + NO2 : 	KRO2NO3*1.74 	;
+{7223.} 	 EPXMEDLCO3 = C4ECO2O2 : 	1.00D-11*RO2*0.70 	;
+{7224.} 	 EPXMEDLCO3 = EPXMEDCO2H : 	1.00D-11*RO2*0.30 	;
+{7225.} 	 C4ECO2O2 + HO2 = C4ECO2OOH : 	KRO2HO2*0.770 	;
+{7226.} 	 C4ECO2O2 + NO = C4ECO2O + NO2 : 	KRO2NO 	;
+{7227.} 	 C4ECO2O2 + NO3 = C4ECO2O + NO2 : 	KRO2NO3 	;
+{7228.} 	 C4ECO2O2 = C4ECO2O : 	9.20D-14*RO2 	;
+{7229.} 	 OETLMUCOOH + OH = OETLMUCCO + OH : 	9.66D-11 	;
+{7230.} 	 OETLMUCOOH = OETLMUCO + OH : 	J(41)+J(17)*2 	;
+{7231.} 	 OETLMUCNO3 + OH = OETLMUCCO + NO2 : 	3.59D-11 	;
+{7232.} 	 OETLMUCNO3 = EPXMEC4DAL + NO2 + HO2 + CO + HO2 : 	J(17)*2 	;
+{7233.} 	 OETLMUCO = C4ECO2O2 + C32OH13CO : 	KDEC*0.5 	;
+{7234.} 	 OETLMUCO = EPXMEC4DAL + GLYOX + HO2 : 	KDEC*0.5 	;
+{7235.} 	 OETLMUCCO + OH = EPXMEC4DAL + HO2 + CO : 	5.17D-11 	;
+{7236.} 	 OETLMUCCO = EPXMEC4DAL + HO2 + CO + CO + HO2 : 	J(17)+J(34) 	;
+{7237.} 	 OETLMUCOH + OH = OETLMUCCO + HO2 : 	8.44D-11 	;
+{7238.} 	 OETLMUCOH = OETLMUCO + HO2 : 	J(17)*2 	;
+{7239.} 	 MC7CO2OOH + OH = MC7CO2O2 : 	4.39D-11 	;
+{7240.} 	 MC7CO2OOH = C5DICARB + C2H5CO3 + OH : 	J(22) 	;
+{7241.} 	 MC7CO2OOH = MC7CO2O + OH : 	J(41)+J(18)+J(19) 	;
+{7242.} 	 MC7CO2O = C5DICARB + C2H5CO3 : 	KDEC 	;
+{7243.} 	 MC7CO2OH + OH = C5DICARB + C2H5CO3 : 	5.35D-11 	;
+{7244.} 	 MC7CO2OH = C5DICARB + C2H5CO3 + HO2 : 	J(22) 	;
+{7245.} 	 MC7CO2OH = MC7CO2O + HO2 : 	J(18)+J(19) 	;
+{7246.} 	 NOETOLOOH + OH = NOETOLO2 : 	1.82D-10 	;
+{7247.} 	 NOETOLOOH = NOETOLO + OH : 	J(41) 	;
+{7248.} 	 NOETOLOOH = OETOLO + OH + NO2 : 	J(54) 	;
+{7249.} 	 NOETOLO = C7CDCCO2H + GLYOX + NO2 : 	KDEC 	;
+{7250.} 	 NOETOLOH + OH = NOETOLO : 	1.79D-10 	;
+{7251.} 	 NOETOLOH = OETOLO + HO2 + NO2 : 	J(54) 	;
+{7252.} 	 OET1OHNO2 + NO3 = NOETOL1O + HNO3 : 	3.13D-13 	;
+{7253.} 	 OET1OHNO2 + OH = NOETOL1O : 	1.53D-12 	;
+{7254.} 	 OET1O2 + HO2 = OET1OOH : 	KRO2HO2*0.90 	;
+{7255.} 	 OET1O2 + NO = OET1O + NO2 : 	KRO2NO 	;
+{7256.} 	 OET1O2 + NO3 = OET1O + NO2 : 	KRO2NO3 	;
+{7257.} 	 OET1O2 = OET1O : 	2.50D-13*RO2 	;
+{7258.} 	 OETOLOOH + OH = OETOLO2 : 	1.51D-10 	;
+{7259.} 	 OETOLOOH = OETOLO + OH : 	J(41) 	;
+{7260.} 	 OETOLO = C7CDCCO2H + GLYOX + HO2 : 	KDEC*0.52 	;
+{7261.} 	 OETOLO = OETLQONE + HO2 : 	KDEC*0.48 	;
+{7262.} 	 OETOLOH + OH = OETOLO : 	1.48D-10 	;
+{7263.} 	 OTCATEC1O + NO2 = OTNCATECH : 	2.08D-12 	;
+{7264.} 	 OTCATEC1O + O3 = OTCATEC1O2 : 	2.86D-13 	;
+{7265.} 	 OTCATECOOA = C5CO14OH + ECOCO2H + HO2 + OH : 	KDEC 	;
+{7266.} 	 METLMUCO2H + OH = C826CO3O2 : 	6.12D-11 	;
+{7267.} 	 METLMUCO2H = C826CO3O2 + HO2 : 	J(23)+J(24) 	;
+{7268.} 	 METLMUCO3H + OH = METLMUCCO3 : 	6.42D-11 	;
+{7269.} 	 METLMUCO3H = C826CO3O2 + OH : 	J(41)+J(23)+J(24) 	;
+{7270.} 	 METLMUCPAN + OH = C6DICARB + CH3CHO + NO2 : 	6.10D-11 	;
+{7271.} 	 METLMUCPAN = METLMUCCO3 + NO2 : 	KBPAN 	;
+{7272.} 	 METLMUCOOH + OH = METLMUCCO + OH : 	7.53D-11 	;
+{7273.} 	 METLMUCOOH = METLMUCO + OH : 	J(41)+J(17)+J(22) 	;
+{7274.} 	 METLMUCNO3 + OH = METLMUCCO + NO2 : 	3.19D-11 	;
+{7275.} 	 METLMUCNO3 = EPXMC4DIAL + NO2 + C2H5CO3 + HO2 : 	J(17)+J(22) 	;
+{7276.} 	 METLMUCO = C3MDIALO2 + CO3H4CHO : 	KDEC*0.5 	;
+{7277.} 	 METLMUCO = EPXMC4DIAL + EGLYOX + HO2 : 	KDEC*0.5 	;
+{7278.} 	 METLMUCCO + OH = EPXMC4DIAL + CO + C2H5CO3 : 	4.27D-11 	;
+{7279.} 	 METLMUCCO = EPXMC4DIAL + HO2 + CO + C2H5CO3 : 	J(17)+J(35) 	;
+{7280.} 	 METLMUCOH + OH = METLMUCCO + HO2 : 	6.31D-11 	;
+{7281.} 	 METLMUCOH = METLMUCO + HO2 : 	J(17)+J(22) 	;
+{7282.} 	 C826CO3OOH + OH = C826CO3O2 : 	7.47D-11 	;
+{7283.} 	 C826CO3OOH = C6DICARB + CH3CO3 + OH : 	J(22) 	;
+{7284.} 	 C826CO3OOH = C826CO3O + OH : 	J(41)+J(23)*2 	;
+{7285.} 	 C826CO3O = C6DICARB + CH3CO3 : 	KDEC 	;
+{7286.} 	 C8236CO + OH = C6DCARBBO2 + CH3CO3 : 	5.33D-11 	;
+{7287.} 	 C8236CO = C6DCARBBO2 + CH3CO3 : 	J(34) 	;
+{7288.} 	 C8236CO = CO23C3CHO + C2H5CO3 + HO2 + CO : 	J(23)*2 	;
+{7289.} 	 C826CO3OH + OH = C6DICARB + CH3CO3 : 	9.87D-11 	;
+{7290.} 	 C826CO3OH = C6DICARB + CH3CO3 + HO2 : 	J(22) 	;
+{7291.} 	 C826CO3OH = C826CO3O + HO2 : 	J(23)*2 	;
+{7292.} 	 MET1OHNO2 + NO3 = NMETOL1O + HNO3 : 	3.13D-13 	;
+{7293.} 	 MET1OHNO2 + OH = NMETOL1O : 	1.53D-12 	;
+{7294.} 	 MET1O2 + HO2 = MET1OOH : 	KRO2HO2*0.90 	;
+{7295.} 	 MET1O2 + NO = MET1O + NO2 : 	KRO2NO 	;
+{7296.} 	 MET1O2 + NO3 = MET1O + NO2 : 	KRO2NO3 	;
+{7297.} 	 MET1O2 = MET1O : 	2.50D-13*RO2 	;
+{7298.} 	 METOLOOH + OH = METOLO2 : 	1.14D-10 	;
+{7299.} 	 METOLOOH = METOLO + OH : 	J(41) 	;
+{7300.} 	 METOLO = C6DCRBBOH + MGLYOX + HO2 : 	KDEC*0.85 	;
+{7301.} 	 METOLO = METLQONE + HO2 : 	KDEC*0.15 	;
+{7302.} 	 METOLOH + OH = METOLO : 	1.11D-10 	;
+{7303.} 	 NMETOLOOH + OH = NMETOLO2 : 	1.08D-10 	;
+{7304.} 	 NMETOLOOH = METOLO + OH + NO2 : 	J(54) 	;
+{7305.} 	 NMETOLOOH = NMETOLO + OH : 	J(41) 	;
+{7306.} 	 NMETOLO = C6DCRBBOH + MGLYOX + NO2 : 	KDEC 	;
+{7307.} 	 NMETOLOH + OH = NMETOLO : 	1.05D-10 	;
+{7308.} 	 NMETOLOH = METOLO + HO2 + NO2 : 	J(54) 	;
+{7309.} 	 MTCATEC1O + NO2 = MTNCATECH : 	2.08D-12 	;
+{7310.} 	 MTCATEC1O + O3 = MTCATEC1O2 : 	2.86D-13 	;
+{7311.} 	 MTCATECOOA = C3MCOCO2H + ECOCO2H + HO2 + OH : 	KDEC 	;
+{7312.} 	 C7EDICARB + O3 = EGLYOOB + MGLYOX : 	5.00D-18*0.5 	;
+{7313.} 	 C7EDICARB + O3 = EGLYOX + MGLOOB : 	5.00D-18*0.5 	;
+{7314.} 	 C7EDICARB + OH = C7EDCO2 : 	6.90D-11 	;
+{7315.} 	 C7EDICARB = C2H5CO3 + MGLYOX + HO2 + CO : 	J(4)*0.0057*0.5 	;
+{7316.} 	 C7EDICARB = EGLYOX + CH3CO3 + HO2 + CO : 	J(4)*0.0057*0.5 	;
+{7317.} 	 PETLMUCO2H + OH = C7M6CO2O2 : 	5.98D-11 	;
+{7318.} 	 PETLMUCO2H = C7M6CO2O2 + HO2 : 	J(23)+J(24) 	;
+{7319.} 	 PETLMUCO3H + OH = PETLMUCCO3 : 	6.29D-11 	;
+{7320.} 	 PETLMUCO3H = C7M6CO2O2 + OH : 	J(41)+J(23)+J(24) 	;
+{7321.} 	 PETLMUCPAN + OH = C7EDICARB + CO + NO2 : 	5.97D-11 	;
+{7322.} 	 PETLMUCPAN = PETLMUCCO3 + NO2 : 	KBPAN 	;
+{7323.} 	 PETLMUCOOH + OH = PETLMUCCO + OH : 	7.37D-11 	;
+{7324.} 	 PETLMUCOOH = PETLMUCO + OH : 	J(41)+J(17)+J(22) 	;
+{7325.} 	 PETLMUCNO3 + OH = PETLMUCCO + NO2 : 	3.03D-11 	;
+{7326.} 	 PETLMUCNO3 = EPXMC4DIAL + NO2 + C2H5CO3 + HO2 : 	J(17)+J(22) 	;
+{7327.} 	 PETLMUCO = CO3H4CHO + C4CO2O2 : 	KDEC*0.5 	;
+{7328.} 	 PETLMUCO = EPXMC4DIAL + EGLYOX + HO2 : 	KDEC*0.5 	;
+{7329.} 	 PETLMUCCO + OH = EPXMC4DIAL + CO + C2H5CO3 : 	3.77D-11 	;
+{7330.} 	 PETLMUCCO = EPXMC4DIAL + HO2 + CO + C2H5CO3 : 	J(17)+J(35) 	;
+{7331.} 	 PETLMUCOH + OH = PETLMUCCO + HO2 : 	6.15D-11 	;
+{7332.} 	 PETLMUCOH = PETLMUCO + HO2 : 	J(17)+J(22) 	;
+{7333.} 	 C7M6CO2OOH + OH = C7M6CO2O2 : 	8.36D-11 	;
+{7334.} 	 C7M6CO2OOH = C3MDIALOOH + C2H5CO3 + HO2 + CO : 	J(23)*2 	;
+{7335.} 	 C7M6CO2OOH = C7EDICARB + HO2 + CO + OH : 	J(17) 	;
+{7336.} 	 C7M6CO2OOH = C7M6CO2O + OH : 	J(41) 	;
+{7337.} 	 C7M6CO2O = C7EDICARB + HO2 + CO : 	KDEC 	;
+{7338.} 	 C7M6CO2OH + OH = C7EDICARB + HO2 + CO : 	1.15D-10 	;
+{7339.} 	 C7M6CO2OH = C3MDIALOH + C2H5CO3 + HO2 + CO : 	J(23)*2 	;
+{7340.} 	 C7M6CO2OH = C7EDICARB + HO2 + CO + HO2 : 	J(17) 	;
+{7341.} 	 NPETOLOOH + OH = NPETOLO2 : 	1.43D-10 	;
+{7342.} 	 NPETOLOOH = NPETOLO + OH : 	J(41) 	;
+{7343.} 	 NPETOLOOH = PETOLO + OH + NO2 : 	J(54) 	;
+{7344.} 	 NPETOLO = C3MCOCO2H + EGLYOX + NO2 : 	KDEC 	;
+{7345.} 	 NPETOLOH + OH = NPETOLO : 	1.40D-10 	;
+{7346.} 	 NPETOLOH = PETOLO + HO2 + NO2 : 	J(54) 	;
+{7347.} 	 PET1OHNO2 + NO3 = NPETOL1O + HNO3 : 	3.13D-13 	;
+{7348.} 	 PET1OHNO2 + OH = NPETOL1O : 	1.53D-12 	;
+{7349.} 	 PET1O2 + HO2 = PET1OOH : 	KRO2HO2*0.90 	;
+{7350.} 	 PET1O2 + NO = PET1O + NO2 : 	KRO2NO 	;
+{7351.} 	 PET1O2 + NO3 = PET1O + NO2 : 	KRO2NO3 	;
+{7352.} 	 PET1O2 = PET1O : 	2.50D-13*RO2 	;
+{7353.} 	 PETOLOOH + OH = PETOLO2 : 	1.51D-10 	;
+{7354.} 	 PETOLOOH = PETOLO + OH : 	J(41) 	;
+{7355.} 	 PETOLO = C3MCOCO2H + EGLYOX + HO2 : 	KDEC*0.68 	;
+{7356.} 	 PETOLO = PETLQONE + HO2 : 	KDEC*0.32 	;
+{7357.} 	 PETOLOH + OH = PETOLO : 	1.48D-10 	;
+{7358.} 	 PTCATEC1O + NO2 = PTNCATECH : 	2.08D-12 	;
+{7359.} 	 PTCATEC1O + O3 = PTCATEC1O2 : 	2.86D-13 	;
+{7360.} 	 PTCATECOOA = MC3ODBCO2H + ECOCO2H + HO2 + OH : 	KDEC 	;
+{7361.} 	 DMPHCOMO2 + HO2 = DMPHCOMOOH : 	KRO2HO2*0.914 	;
+{7362.} 	 DMPHCOMO2 + NO = DMPHCOMO + NO2 : 	KRO2NO 	;
+{7363.} 	 DMPHCOMO2 + NO3 = DMPHCOMO + NO2 : 	KRO2NO3 	;
+{7364.} 	 DMPHCOMO2 = DMPHCOMO : 	8.80D-13*RO2*0.6 	;
+{7365.} 	 DMPHCOMO2 = DMPHCOMOH : 	8.80D-13*RO2*0.2 	;
+{7366.} 	 DMPHCOMO2 = DMPHGLYOX : 	8.80D-13*RO2*0.2 	;
+{7367.} 	 C7DDICARB + NO3 = C7DDCCO3 + HNO3 : 	KNO3AL*4.25 	;
+{7368.} 	 C7DDICARB + O3 = EGLYOOD + MGLYOX : 	5.00D-18*0.5 	;
+{7369.} 	 C7DDICARB + O3 = EGLYOX + MGLYOOA : 	5.00D-18*0.5 	;
+{7370.} 	 C7DDICARB + OH = C7DDCCO3 : 	5.58D-11*0.50 	;
+{7371.} 	 C7DDICARB + OH = C7DDCO2 : 	5.58D-11*0.50 	;
+{7372.} 	 C7DDICARB = C7DDCCO3 + HO2 : 	J(4)*0.2*0.6 	;
+{7373.} 	 C7DDICARB = MEBFUONE : 	J(4)*0.2*0.4 	;
+{7374.} 	 MEBFUONE + NO3 = NMEBFUO2 : 	1.00D-12 	;
+{7375.} 	 MEBFUONE + O3 = CO + C23O3EO2 + OH : 	8.00D-19 	;
+{7376.} 	 MEBFUONE + OH = MEBFUO2 : 	2.89D-11 	;
+{7377.} 	 DMEBMUO2H + OH = C8M2CO6O2 : 	8.19D-11 	;
+{7378.} 	 DMEBMUO2H = C8M2CO6O2 + HO2 : 	J(23)+J(24) 	;
+{7379.} 	 DMEBMUO3H + OH = DMEBMUCO3 : 	8.50D-11 	;
+{7380.} 	 DMEBMUO3H = C8M2CO6O2 + OH : 	J(41)+J(23)+J(24) 	;
+{7381.} 	 DMEBMUPAN + OH = C7DDICARB + CH3CHO + NO2 : 	8.17D-11 	;
+{7382.} 	 DMEBMUPAN = DMEBMUCO3 + NO2 : 	KBPAN 	;
+{7383.} 	 DMEBMUOOH + OH = DMEBMUCO2 : 	3.41D-11 	;
+{7384.} 	 DMEBMUOOH = DMEBMUCO + OH : 	J(41)+J(17)+J(22) 	;
+{7385.} 	 DMEBMUCO = C3MDIALO2 + C6CO243OH : 	KDEC*0.5 	;
+{7386.} 	 DMEBMUCO = EPXMALKT + EGLYOX + HO2 : 	KDEC*0.5 	;
+{7387.} 	 DMEBMUNO3 + OH = C3MDIALO2 + C6CO243OH + NO2 : 	2.42D-11 	;
+{7388.} 	 DMEBMUNO3 = EPXMALKT + EGLYOX + HO2 + NO2 : 	J(17)+J(22) 	;
+{7389.} 	 DMEBMUOH + OH = DMEBMUCO : 	3.07D-11 	;
+{7390.} 	 DMEBMUOH = DMEBMUCO + HO2 : 	J(17)+J(22) 	;
+{7391.} 	 C8M2CO6OOH + OH = C8M3CO + OH : 	9.55D-11 	;
+{7392.} 	 C8M2CO6OOH = C7DDICARB + CH3CO3 + OH : 	J(22) 	;
+{7393.} 	 C8M2CO6OOH = C8M2CO6O + OH : 	J(41) 	;
+{7394.} 	 C8M2CO6OOH = CO24C53OOH + C2H5CO3 + HO2 + CO : 	J(23) 	;
+{7395.} 	 C8M2CO6O = C7DDICARB + CH3CO3 : 	KDEC 	;
+{7396.} 	 C8M2CO6OH + OH = C8M3CO + HO2 : 	1.32D-10 	;
+{7397.} 	 C8M2CO6OH = C7DDICARB + HO2 + CH3CO3 : 	J(23)+J(22) 	;
+{7398.} 	 C8M3CO + OH = EGLYOX + C5CO234 + HO2 : 	7.21D-11 	;
+{7399.} 	 C8M3CO = C5CO234 + C2H5CO3 + HO2 + CO : 	J(35)+J(23) 	;
+{7400.} 	 NDMEPLOOH + OH = NDMEPHOLO2 : 	1.45D-10 	;
+{7401.} 	 NDMEPLOOH = DMEPHOLO + OH + NO2 : 	J(54) 	;
+{7402.} 	 NDMEPLOOH = NDMEPHOLO + OH : 	J(41) 	;
+{7403.} 	 NDMEPHOLO = C5CODBCO2H + EGLYOX + NO2 : 	KDEC 	;
+{7404.} 	 NDMEPHOLOH + OH = NDMEPHOLO : 	1.41D-10 	;
+{7405.} 	 NDMEPHOLOH = DMEPHOLO + HO2 + NO2 : 	J(54) 	;
+{7406.} 	 DMEPHOLOOH + OH = DMEPHOLO2 : 	1.51D-10 	;
+{7407.} 	 DMEPHOLOOH = DMEPHOLO + OH : 	J(41) 	;
+{7408.} 	 DMEPHOLO = C5CODBCO2H + EGLYOX + HO2 : 	KDEC 	;
+{7409.} 	 DMEPHOLOH + OH = DMEPHOLO : 	1.48D-10 	;
+{7410.} 	 EMPHCOMO2 + HO2 = EMPHCOMOOH : 	KRO2HO2*0.932 	;
+{7411.} 	 EMPHCOMO2 + NO = EMPHCOMO + NO2 : 	KRO2NO 	;
+{7412.} 	 EMPHCOMO2 + NO3 = EMPHCOMO + NO2 : 	KRO2NO3 	;
+{7413.} 	 EMPHCOMO2 = EMPHCOMO : 	8.80D-13*RO2*0.6 	;
+{7414.} 	 EMPHCOMO2 = EMPHCOMOH : 	8.80D-13*RO2*0.2 	;
+{7415.} 	 EMPHCOMO2 = EMPHGLYOX : 	8.80D-13*RO2*0.2 	;
+{7416.} 	 EMPHCO3 + HO2 = EMPHCO3H : 	KAPHO2*0.56 	;
+{7417.} 	 EMPHCO3 + HO2 = EMPHO2 + OH : 	KAPHO2*0.44 	;
+{7418.} 	 EMPHCO3 + NO = EMPHO2 + NO2 : 	KAPNO 	;
+{7419.} 	 EMPHCO3 + NO2 = EMPHPAN : 	KFPAN 	;
+{7420.} 	 EMPHCO3 + NO3 = EMPHO2 + NO2 : 	KRO2NO3*1.74 	;
+{7421.} 	 EMPHCO3 = EMPHO2 : 	1.00D-11*RO2 	;
+{7422.} 	 NDEMPLOOH + OH = NDEMPHOLO2 : 	1.46D-10 	;
+{7423.} 	 NDEMPLOOH = DEMPHOLO + OH + NO2 : 	J(54) 	;
+{7424.} 	 NDEMPLOOH = NDEMPHOLO + OH : 	J(41) 	;
+{7425.} 	 NDEMPHOLO = C7DDCCO2H + EGLYOX + NO2 : 	KDEC 	;
+{7426.} 	 NDEMPHOLOH + OH = NDEMPHOLO : 	1.43D-10 	;
+{7427.} 	 NDEMPHOLOH = DEMPHOLO + HO2 + NO2 : 	J(54) 	;
+{7428.} 	 DEMPHOLOOH + OH = DEMPHOLO2 : 	1.52D-10 	;
+{7429.} 	 DEMPHOLOOH = DEMPHOLO + OH : 	J(41) 	;
+{7430.} 	 DEMPHOLO = C7DDCCO2H + EGLYOX + HO2 : 	KDEC 	;
+{7431.} 	 DEMPHOLOH + OH = DEMPHOLO : 	1.49D-10 	;
+{7432.} 	 C7CODBCO3 + HO2 = C7ODLBCO3H : 	KAPHO2*0.56 	;
+{7433.} 	 C7CODBCO3 + HO2 = EGLYOX + C2H5CO3 + OH : 	KAPHO2*0.44 	;
+{7434.} 	 C7CODBCO3 + NO = EGLYOX + C2H5CO3 + NO2 : 	KAPNO 	;
+{7435.} 	 C7CODBCO3 + NO2 = C7CODBPAN : 	KFPAN 	;
+{7436.} 	 C7CODBCO3 + NO3 = EGLYOX + C2H5CO3 + NO2 : 	KRO2NO3*1.74 	;
+{7437.} 	 C7CODBCO3 = EGLYOX + C2H5CO3 : 	1.00D-11*RO2 	;
+{7438.} 	 DETLMUO2H + OH = C9M2CO6O2 : 	8.52D-11 	;
+{7439.} 	 DETLMUO2H = C9M2CO6O2 + HO2 : 	J(23)+J(24) 	;
+{7440.} 	 DETLMUO3H + OH = DETLMUCO3 : 	8.83D-11 	;
+{7441.} 	 DETLMUO3H = C9M2CO6O2 + OH : 	J(41)+J(23)+J(24) 	;
+{7442.} 	 DETLMUPAN + OH = C7DDICARB + C2H5CHO + NO2 : 	8.50D-11 	;
+{7443.} 	 DETLMUPAN = DETLMUCO3 + NO2 : 	KBPAN 	;
+{7444.} 	 EPXEKTCO3 + HO2 = CO24C63O2 + OH : 	KAPHO2*0.44 	;
+{7445.} 	 EPXEKTCO3 + HO2 = EPXEKTCO2H + O3 : 	KAPHO2*0.15 	;
+{7446.} 	 EPXEKTCO3 + HO2 = EPXEKTCO3H : 	KAPHO2*0.41 	;
+{7447.} 	 EPXEKTCO3 + NO = CO24C63O2 + NO2 : 	KAPNO 	;
+{7448.} 	 EPXEKTCO3 + NO2 = EPXEKTPAN : 	KFPAN 	;
+{7449.} 	 EPXEKTCO3 + NO3 = CO24C63O2 + NO2 : 	KRO2NO3*1.74 	;
+{7450.} 	 EPXEKTCO3 = CO24C63O2 : 	1.00D-11*RO2*0.70 	;
+{7451.} 	 EPXEKTCO3 = EPXEKTCO2H : 	1.00D-11*RO2*0.30 	;
+{7452.} 	 C3EDIALO2 + HO2 = C3EDIALOOH : 	KRO2HO2*0.706 	;
+{7453.} 	 C3EDIALO2 + NO = C3EDIALO + NO2 : 	KRO2NO 	;
+{7454.} 	 C3EDIALO2 + NO3 = C3EDIALO + NO2 : 	KRO2NO3 	;
+{7455.} 	 C3EDIALO2 = C3EDIALO : 	9.20D-14*RO2*0.7 	;
+{7456.} 	 C3EDIALO2 = C3EDIALOH : 	9.20D-14*RO2*0.3 	;
+{7457.} 	 CO24C63O2 + HO2 = CO24C63OOH : 	KRO2HO2*0.770 	;
+{7458.} 	 CO24C63O2 + NO = CO24C63O + NO2 : 	KRO2NO 	;
+{7459.} 	 CO24C63O2 + NO3 = CO24C63O + NO2 : 	KRO2NO3 	;
+{7460.} 	 CO24C63O2 = C6CO243OH : 	8.80D-13*RO2*0.20 	;
+{7461.} 	 CO24C63O2 = CO234C6 : 	8.80D-13*RO2*0.20 	;
+{7462.} 	 CO24C63O2 = CO24C63O : 	8.80D-13*RO2*0.60 	;
+{7463.} 	 DETLMUOOH + OH = DETLMUCO2 : 	3.74D-11 	;
+{7464.} 	 DETLMUOOH = DETLMUCO + OH : 	J(41)+J(17)+J(22) 	;
+{7465.} 	 DETLMUCO = C3EDIALO2 + C6CO243OH : 	KDEC*0.5 	;
+{7466.} 	 DETLMUCO = EPXEALKT + EGLYOX + HO2 : 	KDEC*0.5 	;
+{7467.} 	 DETLMUNO3 + OH = C3EDIALO2 + C6CO243OH + NO2 : 	2.75D-11 	;
+{7468.} 	 DETLMUNO3 = EPXEALKT + EGLYOX + HO2 + NO2 : 	J(17)+J(22) 	;
+{7469.} 	 DETLMUOH + OH = DETLMUCO : 	3.40D-11 	;
+{7470.} 	 DETLMUOH = DETLMUCO + HO2 : 	J(17)+J(22) 	;
+{7471.} 	 C9M2CO6OOH + OH = C9M3CO + OH : 	9.66D-11 	;
+{7472.} 	 C9M2CO6OOH = C7DDICARB + C2H5CO3 + OH : 	J(22) 	;
+{7473.} 	 C9M2CO6OOH = C9M2CO6O + OH : 	J(41)+J(23) 	;
+{7474.} 	 C9M2CO6O = C7DDICARB + C2H5CO3 : 	KDEC 	;
+{7475.} 	 C9M2CO6OH + OH = C9M3CO + HO2 : 	1.33D-10 	;
+{7476.} 	 C9M2CO6OH = C7DDICARB + HO2 + C2H5CO3 : 	J(23)+J(22) 	;
+{7477.} 	 C9M3CO + OH = EGLYOX + CO234C6 + HO2 : 	7.40D-11 	;
+{7478.} 	 C9M3CO = CO234C6 + C2H5CO3 + HO2 + CO : 	J(35)+J(23) 	;
+{7479.} 	 CCL3CO3 + HO2 = CCL3CO3H : 	KAPHO2*0.56 	;
+{7480.} 	 CCL3CO3 + HO2 = CCL3O2 + OH : 	KAPHO2*0.44 	;
+{7481.} 	 CCL3CO3 + NO = CCL3O2 + NO2 : 	KAPNO 	;
+{7482.} 	 CCL3CO3 + NO2 = CCL3PAN : 	KFPAN 	;
+{7483.} 	 CCL3CO3 + NO3 = CCL3O2 + NO2 : 	KRO2NO3*1.74 	;
+{7484.} 	 CCL3CO3 = CCL3O2 : 	1.00D-11*RO2 	;
+{7485.} 	 CLGLYOX = CO + CO + CL + CL : 	J(15)*2 	;
+{7486.} 	 CLETO3 + HO2 = CH2CLO2 + OH : 	KAPHO2*0.44 	;
+{7487.} 	 CLETO3 + HO2 = CLETO2H + O3 : 	KAPHO2*0.15 	;
+{7488.} 	 CLETO3 + HO2 = CLETO3H : 	KAPHO2*0.41 	;
+{7489.} 	 CLETO3 + NO = CH2CLO2 + NO2 : 	KAPNO 	;
+{7490.} 	 CLETO3 + NO2 = CLETPAN : 	KFPAN 	;
+{7491.} 	 CLETO3 + NO3 = CH2CLO2 + NO2 : 	KRO2NO3*1.74 	;
+{7492.} 	 CLETO3 = CH2CLO2 : 	1.00D-11*0.70*RO2 	;
+{7493.} 	 CLETO3 = CLETO2H : 	1.00D-11*0.30*RO2 	;
+{7494.} 	 CL2OHCO3 + HO2 = CL2OHCO3H : 	KAPHO2*0.56 	;
+{7495.} 	 CL2OHCO3 + HO2 = COCL2 + HO2 + OH : 	KAPHO2*0.44 	;
+{7496.} 	 CL2OHCO3 + NO = COCL2 + HO2 + NO2 : 	KAPNO 	;
+{7497.} 	 CL2OHCO3 + NO2 = CL2OHPAN : 	KFPAN 	;
+{7498.} 	 CL2OHCO3 + NO3 = COCL2 + HO2 + NO2 : 	KRO2NO3*1.74 	;
+{7499.} 	 CL2OHCO3 = COCL2 + HO2 : 	1.00D-11*0.70*RO2 	;
+{7500.} 	 CL12CO3 + HO2 = CL12CO2H + O3 : 	KAPHO2*0.15 	;
+{7501.} 	 CL12CO3 + HO2 = CL12CO3H : 	KAPHO2*0.41 	;
+{7502.} 	 CL12CO3 + HO2 = DICLETO2 + OH : 	KAPHO2*0.44 	;
+{7503.} 	 CL12CO3 + NO = DICLETO2 + NO2 : 	KAPNO 	;
+{7504.} 	 CL12CO3 + NO2 = CL12PAN : 	KFPAN 	;
+{7505.} 	 CL12CO3 + NO3 = DICLETO2 + NO2 : 	KRO2NO3*1.74 	;
+{7506.} 	 CL12CO3 = CL12CO2H : 	1.00D-11*0.30*RO2 	;
+{7507.} 	 CL12CO3 = DICLETO2 : 	1.00D-11*0.70*RO2 	;
+{7508.} 	 CH2CLCOCH3 + OH = CH3COCCLO2 : 	3.682D-13 	;
+{7509.} 	 CH2CLCOCH3 = CH3O2 + CLETO3 : 	J(22) 	;
+{7510.} 	 CLCOCLMEO2 + HO2 = CLCOCLMOOH : 	3.30D-13*EXP(820/TEMP) 	;
+{7511.} 	 CLCOCLMEO2 + NO = CLCOCLMEO + NO2 : 	KRO2NO 	;
+{7512.} 	 CLCOCLMEO2 + NO3 = CLCOCLMEO + NO2 : 	KRO2NO3 	;
+{7513.} 	 CLCOCLMEO2 = CLCOCLMEO : 	9.20D-14*RO2 	;
+{7514.} 	 CHCL2CO3 + HO2 = CHCL2CO2H + O3 : 	KAPHO2*0.15 	;
+{7515.} 	 CHCL2CO3 + HO2 = CHCL2CO3H : 	KAPHO2*0.41 	;
+{7516.} 	 CHCL2CO3 + HO2 = CHCL2O2 + OH : 	KAPHO2*0.44 	;
+{7517.} 	 CHCL2CO3 + NO = CHCL2O2 + NO2 : 	KAPNO 	;
+{7518.} 	 CHCL2CO3 + NO2 = CHCL2PAN : 	KFPAN 	;
+{7519.} 	 CHCL2CO3 + NO3 = CHCL2O2 + NO2 : 	KRO2NO3*1.74 	;
+{7520.} 	 CHCL2CO3 = CHCL2CO2H : 	1.00D-11*0.30*RO2 	;
+{7521.} 	 CHCL2CO3 = CHCL2O2 : 	1.00D-11*0.70*RO2 	;
+{7522.} 	 CLCOCH2O2 + HO2 = CLCOCH2OOH : 	3.30D-13*EXP(820/TEMP) 	;
+{7523.} 	 CLCOCH2O2 + NO = CLCOCH2O + NO2 : 	KRO2NO*1.2 	;
+{7524.} 	 CLCOCH2O2 + NO3 = CLCOCH2O + NO2 : 	KRO2NO3 	;
+{7525.} 	 CLCOCH2O2 = CLCOCH2O : 	2.00D-12*RO2 	;
+{7526.} 	 CHCL2COCL + OH = CLCOCCL2O2 : 	5.529D-12 	;
+{7527.} 	 CHCL2COCL = CHCL2O2 + CO + CL : 	J(22) 	;
+{7528.} 	 CLCOCLO2 + HO2 = CLCOCLOOH : 	3.30D-13*EXP(820/TEMP) 	;
+{7529.} 	 CLCOCLO2 + NO = CLCOCLO + NO2 : 	KRO2NO*1.5 	;
+{7530.} 	 CLCOCLO2 + NO3 = CLCOCLO + NO2 : 	KRO2NO3 	;
+{7531.} 	 CLCOCLO2 = CCLOHCOCL : 	8.80D-13*0.20*RO2 	;
+{7532.} 	 CLCOCLO2 = CLCOCLO : 	8.80D-13*0.60*RO2 	;
+{7533.} 	 CLCOCLO2 = CLGLYOX : 	8.80D-13*0.20*RO2 	;
+{7534.} 	 CL1GLYOX + NO3 = CO + CO + CL + HNO3 : 	KNO3AL 	;
+{7535.} 	 CL1GLYOX + OH = CO + CO + CL : 	1.40D-11 	;
+{7536.} 	 CL1GLYOX = CO + CO + HO2 + CL : 	J(34) 	;
+{7537.} 	 CLCO2H + OH = CL : 	5.2D-13 	;
+{7538.} 	 CCLOHCO3 + HO2 = CHOCL + HO2 + OH : 	KAPHO2*0.44 	;
+{7539.} 	 CCLOHCO3 + HO2 = CLOHCO2H + O3 : 	KAPHO2*0.15 	;
+{7540.} 	 CCLOHCO3 + HO2 = CLOHCO3H : 	KAPHO2*0.41 	;
+{7541.} 	 CCLOHCO3 + NO = CHOCL + HO2 + NO2 : 	KAPNO 	;
+{7542.} 	 CCLOHCO3 + NO2 = CLOHPAN : 	KFPAN 	;
+{7543.} 	 CCLOHCO3 + NO3 = CHOCL + HO2 + NO2 : 	KRO2NO3*1.74 	;
+{7544.} 	 CCLOHCO3 = CHOCL + HO2 : 	0.7*5.0E-12*RO2 	;
+{7545.} 	 CCLOHCO3 = CLOHCO2H : 	0.3*5.0E-12*RO2 	;
+{7546.} 	 HNMVKO2 + HO2 = HNMVKOOH : 	KRO2HO2*0.625 	;
+{7547.} 	 HNMVKO2 + NO = HNMVKO + NO2 : 	KRO2NO 	;
+{7548.} 	 HNMVKO2 + NO3 = HNMVKO + NO2 : 	KRO2NO3 	;
+{7549.} 	 HNMVKO2 = HNBIACET : 	8.80D-13*0.2*RO2 	;
+{7550.} 	 HNMVKO2 = HNMVKO : 	8.80D-13*0.6*RO2 	;
+{7551.} 	 HNMVKO2 = HNMVKOH : 	8.80D-13*0.2*RO2 	;
+{7552.} 	 NC3CO3 + HO2 = NC3CO2H + O3 : 	KAPHO2*0.15 	;
+{7553.} 	 NC3CO3 + HO2 = NC3CO3H : 	KAPHO2*0.41 	;
+{7554.} 	 NC3CO3 + HO2 = NO3CH2CHO + CO + HO2 + OH : 	KAPHO2*0.44 	;
+{7555.} 	 NC3CO3 + NO = NO3CH2CHO + CO + HO2 + NO2 : 	KAPNO 	;
+{7556.} 	 NC3CO3 + NO2 = C4PAN9 : 	KFPAN 	;
+{7557.} 	 NC3CO3 + NO3 = NO3CH2CHO + CO + HO2 + NO2 : 	KRO2NO3*1.74 	;
+{7558.} 	 NC3CO3 = NC3CO2H : 	1.00D-11*0.3*RO2 	;
+{7559.} 	 NC3CO3 = NO3CH2CHO + HO2 + CO : 	1.00D-11*0.7*RO2 	;
+{7560.} 	 NAOOA = CH3NO3 : 	KDEC*0.125 	;
+{7561.} 	 NAOOA = HO2 + NO2 + HCHO : 	KDEC*0.125 	;
+{7562.} 	 NAOOA = NAOO : 	KDEC*0.18 	;
+{7563.} 	 NAOOA = OH + NO2 + CO + HCHO : 	KDEC*0.57 	;
+{7564.} 	 C42O2 + HO2 = C42OOH : 	KRO2HO2*0.625 	;
+{7565.} 	 C42O2 + NO = C42O + NO2 : 	KRO2NO 	;
+{7566.} 	 C42O2 + NO3 = C42O + NO2 : 	KRO2NO3 	;
+{7567.} 	 C42O2 = C42O : 	8.80D-13*0.6*RO2 	;
+{7568.} 	 C42O2 = C42OH : 	8.80D-13*0.2*RO2 	;
+{7569.} 	 C42O2 = H3NCO2CHO : 	8.80D-13*0.2*RO2 	;
+{7570.} 	 HC3CO3 + HO2 = HC3CO2H + O3 : 	KAPHO2*0.15 	;
+{7571.} 	 HC3CO3 + HO2 = HC3CO3H : 	KAPHO2*0.41 	;
+{7572.} 	 HC3CO3 + HO2 = HO2 + CO + HOCH2CHO + OH : 	KAPHO2*0.44 	;
+{7573.} 	 HC3CO3 + NO = HO2 + CO + HOCH2CHO + NO2 : 	KAPNO 	;
+{7574.} 	 HC3CO3 + NO2 = C4PAN7 : 	KFPAN 	;
+{7575.} 	 HC3CO3 + NO3 = HO2 + CO + HOCH2CHO + NO2 : 	KRO2NO3*1.74 	;
+{7576.} 	 HC3CO3 = HC3CO2H : 	1.00D-11*0.3*RO2 	;
+{7577.} 	 HC3CO3 = HO2 + CO + HOCH2CHO : 	1.00D-11*0.7*RO2 	;
+{7578.} 	 GAOOA = CH3OH : 	KDEC*0.125 	;
+{7579.} 	 GAOOA = GAOO : 	KDEC*0.18 	;
+{7580.} 	 GAOOA = HO2 + HO2 + HCHO : 	KDEC*0.125 	;
+{7581.} 	 GAOOA = OH + HO2 + CO + HCHO : 	KDEC*0.57 	;
+{7582.} 	 C41O2 + HO2 = C41OOH : 	KRO2HO2*0.625 	;
+{7583.} 	 C41O2 + NO = C41NO3 : 	KRO2NO*0.021 	;
+{7584.} 	 C41O2 + NO = C41O + NO2 : 	KRO2NO*0.979 	;
+{7585.} 	 C41O2 + NO3 = C41O + NO2 : 	KRO2NO3 	;
+{7586.} 	 C41O2 = C41O : 	8.80D-13*0.6*RO2 	;
+{7587.} 	 C41O2 = C41OH : 	8.80D-13*0.2*RO2 	;
+{7588.} 	 C41O2 = H13CO2CHO : 	8.80D-13*0.2*RO2 	;
+{7589.} 	 HMGLOOA = HMGLOO : 	KDEC*0.24 	;
+{7590.} 	 HMGLOOA = HOCH2CHO : 	KDEC*0.20 	;
+{7591.} 	 HMGLOOA = HOCH2CO3 + HO2 : 	KDEC*0.20 	;
+{7592.} 	 HMGLOOA = OH + CO + HOCH2CO3 : 	KDEC*0.36 	;
+{7593.} 	 MVKOHAO2 + HO2 = MVKOHAOOH : 	KRO2HO2*0.625 	;
+{7594.} 	 MVKOHAO2 + NO = MVKOHANO3 : 	KRO2NO*0.017 	;
+{7595.} 	 MVKOHAO2 + NO = MVKOHAO + NO2 : 	KRO2NO*0.983 	;
+{7596.} 	 MVKOHAO2 + NO3 = MVKOHAO + NO2 : 	KRO2NO3 	;
+{7597.} 	 MVKOHAO2 = H13CO2CHO : 	2.00D-12*RO2*0.2 	;
+{7598.} 	 MVKOHAO2 = MVKOHAO : 	2.00D-12*RO2*0.6 	;
+{7599.} 	 MVKOHAO2 = MVKOHAOH : 	2.00D-12*RO2*0.2 	;
+{7600.} 	 MVKOHBO2 + HO2 = MVKOHBOOH : 	KRO2HO2*0.625 	;
+{7601.} 	 MVKOHBO2 + NO = MVKOHBO + NO2 : 	KRO2NO 	;
+{7602.} 	 MVKOHBO2 + NO3 = MVKOHBO + NO2 : 	KRO2NO3 	;
+{7603.} 	 MVKOHBO2 = H14CO23C4 : 	8.80D-13*RO2*0.2 	;
+{7604.} 	 MVKOHBO2 = MVKOHAOH : 	8.80D-13*RO2*0.2 	;
+{7605.} 	 MVKOHBO2 = MVKOHBO : 	8.80D-13*RO2*0.6 	;
+{7606.} 	 HC3CCO3 + HO2 = ACR + HO2 + OH : 	KAPHO2*0.44 	;
+{7607.} 	 HC3CCO3 + HO2 = HC3CCO3H : 	KAPHO2*0.56 	;
+{7608.} 	 HC3CCO3 + NO = ACR + HO2 + NO2 : 	KAPNO 	;
+{7609.} 	 HC3CCO3 + NO2 = C4PAN8 : 	KFPAN 	;
+{7610.} 	 HC3CCO3 + NO3 = ACR + HO2 + NO2 : 	KRO2NO3*1.74 	;
+{7611.} 	 HC3CCO3 = ACR + HO2 : 	1.00D-11*RO2 	;
+{7612.} 	 GAOOB = GAOO : 	KDEC*0.11 	;
+{7613.} 	 GAOOB = OH + HO2 + CO + HCHO : 	KDEC*0.89 	;
+{7614.} 	 NC3OOA = NC3OO : 	KDEC*0.11 	;
+{7615.} 	 NC3OOA = OH + NO2 + MGLYOX : 	KDEC*0.89 	;
+{7616.} 	 INCO2 + HO2 = INCOOH : 	KRO2HO2*0.706 	;
+{7617.} 	 INCO2 + NO = INCNO3 : 	KRO2NO*0.145 	;
+{7618.} 	 INCO2 + NO = INCO + NO2 : 	KRO2NO*0.855 	;
+{7619.} 	 INCO2 + NO3 = INCO + NO2 : 	KRO2NO3 	;
+{7620.} 	 INCO2 = INCCO : 	2.90D-12*0.1*RO2 	;
+{7621.} 	 INCO2 = INCO : 	2.90D-12*0.8*RO2 	;
+{7622.} 	 INCO2 = INCOH : 	2.90D-12*0.1*RO2 	;
+{7623.} 	 NC4CO3 + HO2 = NC4CO2H + O3 : 	KAPHO2*0.15 	;
+{7624.} 	 NC4CO3 + HO2 = NC4CO3H : 	KAPHO2*0.41 	;
+{7625.} 	 NC4CO3 + HO2 = NOA + CO + HO2 + OH : 	KAPHO2*0.44 	;
+{7626.} 	 NC4CO3 + NO = NOA + CO + HO2 + NO2 : 	KAPNO 	;
+{7627.} 	 NC4CO3 + NO2 = C5PAN18 : 	KFPAN 	;
+{7628.} 	 NC4CO3 + NO3 = NOA + CO + HO2 + NO2 : 	KRO2NO3*1.74 	;
+{7629.} 	 NC4CO3 = NC4CO2H : 	1.00D-11*0.3*RO2 	;
+{7630.} 	 NC4CO3 = NOA + HO2 + CO : 	1.00D-11*0.7*RO2 	;
+{7631.} 	 GLYOOC = GLYOO : 	KDEC*0.11 	;
+{7632.} 	 GLYOOC = OH + HO2 + CO + CO : 	KDEC*0.89 	;
+{7633.} 	 NOAOOA = NOAOO : 	KDEC*0.11 	;
+{7634.} 	 NOAOOA = OH + NO2 + MGLYOX : 	KDEC*0.89 	;
+{7635.} 	 C510O2 + HO2 = C510OOH : 	KRO2HO2*0.706 	;
+{7636.} 	 C510O2 + NO = C510O + NO2 : 	KRO2NO 	;
+{7637.} 	 C510O2 + NO3 = C510O + NO2 : 	KRO2NO3 	;
+{7638.} 	 C510O2 = C510O : 	9.20D-14*0.7*RO2 	;
+{7639.} 	 C510O2 = C510OH : 	9.20D-14*0.3*RO2 	;
+{7640.} 	 HMVKAOOH = HMVKAO + OH : 	J(41) 	;
+{7641.} 	 OH + HMVKAOOH = CO2H3CHO + OH : 	5.77D-11 	;
+{7642.} 	 OH + HMVKANO3 = CO2H3CHO + NO2 : 	2.23D-12 	;
+{7643.} 	 HMVKAO = MGLYOX + HCHO + HO2 : 	KDEC 	;
+{7644.} 	 HO12CO3C4 = CH3CO3 + HOCH2CHO + HO2 : 	J(22) 	;
+{7645.} 	 OH + HO12CO3C4 = BIACETOH + HO2 : 	1.88D-11 	;
+{7646.} 	 HMVKBOOH = HMVKBO + OH : 	J(41) 	;
+{7647.} 	 OH + HMVKBOOH = BIACETOH + OH : 	3.95D-11 	;
+{7648.} 	 HMVKBO = CH3CO3 + HOCH2CHO : 	KDEC 	;
+{7649.} 	 BIACETOH = CH3CO3 + HOCH2CO3 : 	J(35) 	;
+{7650.} 	 OH + BIACETOH = CO23C3CHO + HO2 : 	2.69D-12 	;
+{7651.} 	 MVKOOH = HCHO + OH + ACO3 : 	J(24) 	;
+{7652.} 	 MVKOOH = MVKO + OH : 	J(41) 	;
+{7653.} 	 OH + MVKOOH = MVKO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{7654.} 	 OH + MVKOOH = VGLYOX + OH : 	2.55D-11 	;
+{7655.} 	 MVKO = HCHO + ACO3 : 	KDEC 	;
+{7656.} 	 NO3 + VGLYOX = CO + ACO3 + HNO3 : 	KNO3AL*2.0 	;
+{7657.} 	 OH + VGLYOX = CO + ACO3 : 	2.95D-11 	;
+{7658.} 	 VGLYOX = HO2 + CO + ACO3 : 	J(34) 	;
+{7659.} 	 OH + IEPOXA = IEACHO + HO2 : 	5.23D-12 	;
+{7660.} 	 NC2OOA = NC2OO : 	KDEC*0.11 	;
+{7661.} 	 NC2OOA = OH + NO2 + GLYOX : 	KDEC*0.89 	;
+{7662.} 	 ACLOOA = ACLOO : 	KDEC*0.11 	;
+{7663.} 	 ACLOOA = OH + HO2 + MGLYOX : 	KDEC*0.89 	;
+{7664.} 	 INAO2 + HO2 = INAOOH : 	KRO2HO2*0.706 	;
+{7665.} 	 INAO2 + NO = INANO3 : 	KRO2NO*0.072 	;
+{7666.} 	 INAO2 + NO = INAO + NO2 : 	KRO2NO*0.928 	;
+{7667.} 	 INAO2 + NO3 = INAO + NO2 : 	KRO2NO3 	;
+{7668.} 	 INAO2 = INAO : 	8.00D-13*0.8*RO2 	;
+{7669.} 	 INAO2 = INAOH : 	8.00D-13*0.2*RO2 	;
+{7670.} 	 C524O2 + HO2 = C524OOH : 	KRO2HO2*0.706 	;
+{7671.} 	 C524O2 + NO = C524NO3 : 	KRO2NO*0.134 	;
+{7672.} 	 C524O2 + NO = C524O + NO2 : 	KRO2NO*0.866 	;
+{7673.} 	 C524O2 + NO3 = C524O + NO2 : 	KRO2NO3 	;
+{7674.} 	 C524O2 = C524CO : 	2.90D-12*RO2*0.1 	;
+{7675.} 	 C524O2 = C524O : 	2.90D-12*RO2*0.8 	;
+{7676.} 	 C524O2 = C524OH : 	2.90D-12*RO2*0.1 	;
+{7677.} 	 HC4ACO3 + HO2 = ACETOL + CO + HO2 + OH : 	KAPHO2*0.44 	;
+{7678.} 	 HC4ACO3 + HO2 = HC4ACO2H + O3 : 	KAPHO2*0.15 	;
+{7679.} 	 HC4ACO3 + HO2 = HC4ACO3H : 	KAPHO2*0.41 	;
+{7680.} 	 HC4ACO3 + NO = ACETOL + CO + HO2 + NO2 : 	KAPNO 	;
+{7681.} 	 HC4ACO3 + NO2 = C5PAN17 : 	KFPAN 	;
+{7682.} 	 HC4ACO3 + NO3 = ACETOL + CO + HO2 + NO2 : 	KRO2NO3*1.74 	;
+{7683.} 	 HC4ACO3 = ACETOL + HO2 + CO : 	1.00D-11*0.7*RO2 	;
+{7684.} 	 HC4ACO3 = HC4ACO2H : 	1.00D-11*0.3*RO2 	;
+{7685.} 	 C58O2 + HO2 = C58OOH : 	KRO2HO2*0.706 	;
+{7686.} 	 C58O2 + NO = C58NO3 : 	KRO2NO*0.019 	;
+{7687.} 	 C58O2 + NO = C58O + NO2 : 	KRO2NO*0.981 	;
+{7688.} 	 C58O2 + NO3 = C58O + NO2 : 	KRO2NO3 	;
+{7689.} 	 C58O2 = C58O : 	9.20D-14*0.7*RO2 	;
+{7690.} 	 C58O2 = C58OH : 	9.20D-14*0.3*RO2 	;
+{7691.} 	 OH + IEPOXB = IEB1O2 : 	9.05D-12*0.5 	;
+{7692.} 	 OH + IEPOXB = IEB2O2 : 	9.05D-12*0.5 	;
+{7693.} 	 MACRNOOA = ACETOL + NO2 + CO + OH : 	KDEC*0.36 	;
+{7694.} 	 MACRNOOA = ACETOL + NO2 + HO2 : 	KDEC*0.20 	;
+{7695.} 	 MACRNOOA = MACRNOO : 	KDEC*0.24 	;
+{7696.} 	 MACRNOOA = PROPOLNO3 : 	KDEC*0.20 	;
+{7697.} 	 MACRNO3 + OH = CONM2CHO + HO2 : 	4.34D-12*0.16 	;
+{7698.} 	 MACRNO3 + OH = MACRNCO3 : 	4.34D-12*0.84 	;
+{7699.} 	 MACRNO3 = ACETOL + NO2 + CO + HO2 : 	J(17) 	;
+{7700.} 	 INB1O2 + HO2 = INB1OOH : 	KRO2HO2*0.706 	;
+{7701.} 	 INB1O2 + NO = INB1NO3 : 	KRO2NO*0.145 	;
+{7702.} 	 INB1O2 + NO = INB1O + NO2 : 	KRO2NO*0.855 	;
+{7703.} 	 INB1O2 + NO3 = INB1O + NO2 : 	KRO2NO3 	;
+{7704.} 	 INB1O2 = INB1CO : 	2.90D-12*0.1*RO2 	;
+{7705.} 	 INB1O2 = INB1O : 	2.90D-12*0.8*RO2 	;
+{7706.} 	 INB1O2 = INB1OH : 	2.90D-12*0.1*RO2 	;
+{7707.} 	 INB2O2 + HO2 = INB2OOH : 	KRO2HO2*0.706 	;
+{7708.} 	 INB2O2 + NO = INANO3 : 	KRO2NO*0.064 	;
+{7709.} 	 INB2O2 + NO = INB2O + NO2 : 	KRO2NO*0.936 	;
+{7710.} 	 INB2O2 = C58NO3 : 	8.80D-13*0.2*RO2 	;
+{7711.} 	 INB2O2 = INB1OH : 	8.80D-13*0.2*RO2 	;
+{7712.} 	 INB2O2 = INB2O : 	8.80D-13*0.6*RO2 	;
+{7713.} 	 OH + IEPOXC = IEC1O2 : 	1.50D-11*0.719 	;
+{7714.} 	 OH + IEPOXC = IECCHO + HO2 : 	1.50D-11*0.281 	;
+{7715.} 	 HC4CCO3 + HO2 = CH3CO3 + HOCH2CHO + OH : 	KAPHO2*0.44 	;
+{7716.} 	 HC4CCO3 + HO2 = HC4CCO2H + O3 : 	KAPHO2*0.15 	;
+{7717.} 	 HC4CCO3 + HO2 = HC4CCO3H : 	KAPHO2*0.41 	;
+{7718.} 	 HC4CCO3 + NO = CH3CO3 + HOCH2CHO + NO2 : 	KAPNO 	;
+{7719.} 	 HC4CCO3 + NO2 = C5PAN19 : 	KFPAN 	;
+{7720.} 	 HC4CCO3 + NO3 = CH3CO3 + HOCH2CHO + NO2 : 	KRO2NO3*1.74 	;
+{7721.} 	 HC4CCO3 = CH3CO3 + HOCH2CHO : 	1.00D-11*0.7*RO2 	;
+{7722.} 	 HC4CCO3 = HC4CCO2H : 	1.00D-11*0.3*RO2 	;
+{7723.} 	 MGLYOOA = MGLYOO : 	KDEC*0.11 	;
+{7724.} 	 MGLYOOA = OH + CO + CH3CO3 : 	KDEC*0.89 	;
+{7725.} 	 C57O2 + HO2 = C57OOH : 	KRO2HO2*0.706 	;
+{7726.} 	 C57O2 + NO = C57O + NO2 : 	KRO2NO 	;
+{7727.} 	 C57O2 + NO3 = C57O + NO2 : 	KRO2NO3 	;
+{7728.} 	 C57O2 = C57O : 	9.20D-14*0.7*RO2 	;
+{7729.} 	 C57O2 = C57OH : 	9.20D-14*0.3*RO2 	;
+{7730.} 	 MVKNO3 + OH = BIACETOH + NO2 : 	1.33D-12*0.33 	;
+{7731.} 	 MVKNO3 + OH = CO2N3CHO + HO2 : 	1.33D-12*0.67 	;
+{7732.} 	 MVKNO3 = CH3CO3 + HOCH2CHO + NO2 : 	J(56)+J(57) 	;
+{7733.} 	 NC4OOA = NC4OO : 	KDEC*0.18 	;
+{7734.} 	 NC4OOA = OH + NO2 + BIACETOH : 	KDEC*0.82 	;
+{7735.} 	 INDO2 + HO2 = INDOOH : 	KRO2HO2*0.706 	;
+{7736.} 	 INDO2 + NO = INB1NO3 : 	KRO2NO*0.072 	;
+{7737.} 	 INDO2 + NO = INDO + NO2 : 	KRO2NO*0.928 	;
+{7738.} 	 INDO2 + NO3 = INDO + NO2 : 	KRO2NO3 	;
+{7739.} 	 INDO2 = INDO : 	8.00D-13*0.8*RO2 	;
+{7740.} 	 INDO2 = INDOH : 	8.00D-13*0.2*RO2 	;
+{7741.} 	 C59O2 + HO2 = C59OOH : 	KRO2HO2*0.706 	;
+{7742.} 	 C59O2 + NO = C59O + NO2 : 	KRO2NO 	;
+{7743.} 	 C59O2 + NO3 = C59O + NO2 : 	KRO2NO3 	;
+{7744.} 	 C59O2 = C59O : 	9.20D-14*RO2 	;
+{7745.} 	 CHOCOMOXO2 + HO2 = ALCOMOXOOH : 	KRO2HO2*0.520 	;
+{7746.} 	 CHOCOMOXO2 + NO = CHOCOMOXO + NO2 : 	KRO2NO 	;
+{7747.} 	 CHOCOMOXO2 + NO3 = CHOCOMOXO + NO2 : 	KRO2NO3 	;
+{7748.} 	 CHOCOMOXO2 = CHOCOMOXO : 	2.00D-12*RO2 	;
+{7749.} 	 ACETMECO3 + HO2 = ACETMECO3H : 	KAPHO2*0.56 	;
+{7750.} 	 ACETMECO3 + HO2 = METHACETO2 + OH : 	KAPHO2*0.44 	;
+{7751.} 	 ACETMECO3 + NO = METHACETO2 + NO2 : 	KAPNO 	;
+{7752.} 	 ACETMECO3 + NO2 = ACETMEPAN : 	KFPAN 	;
+{7753.} 	 ACETMECO3 + NO3 = METHACETO2 + NO2 : 	KRO2NO3*1.74 	;
+{7754.} 	 ACETMECO3 = METHACETO2 : 	1.00D-11*RO2 	;
+{7755.} 	 HOACETETO2 + HO2 = HOACETEOOH : 	KRO2HO2*0.625 	;
+{7756.} 	 HOACETETO2 + NO = HOACETETO + NO2 : 	KRO2NO 	;
+{7757.} 	 HOACETETO2 + NO3 = HOACETETO + NO2 : 	KRO2NO3 	;
+{7758.} 	 HOACETETO2 = HOACETETO : 	8.80D-13*RO2 	;
+{7759.} 	 MECOACETO2 + HO2 = MECOACEOOH : 	KRO2HO2*0.625 	;
+{7760.} 	 MECOACETO2 + NO = MECOACETO + NO2 : 	KRO2NO 	;
+{7761.} 	 MECOACETO2 + NO3 = MECOACETO + NO2 : 	KRO2NO3 	;
+{7762.} 	 MECOACETO2 = MECOACETO : 	2.00D-12*RO2 	;
+{7763.} 	 ACPRONEO2 + HO2 = ACPRONEOOH : 	KRO2HO2*0.706 	;
+{7764.} 	 ACPRONEO2 + NO = ACPRONEO + NO2 : 	KRO2NO 	;
+{7765.} 	 ACPRONEO2 + NO3 = ACPRONEO + NO2 : 	KRO2NO3 	;
+{7766.} 	 ACPRONEO2 = ACECOCOCH3 : 	8.80D-13*0.2*RO2 	;
+{7767.} 	 ACPRONEO2 = ACPRONEO : 	8.80D-13*0.6*RO2 	;
+{7768.} 	 ACPRONEO2 = ACPRONEOH : 	8.80D-13*0.2*RO2 	;
+{7769.} 	 ACCOETO2 + HO2 = ACCOETOOH : 	KRO2HO2*0.706 	;
+{7770.} 	 ACCOETO2 + NO = ACCOETO + NO2 : 	KRO2NO 	;
+{7771.} 	 ACCOETO2 + NO3 = ACCOETO + NO2 : 	KRO2NO3 	;
+{7772.} 	 ACCOETO2 = ACCOETO : 	1.30D-12*RO2 	;
+{7773.} 	 ACETC2CO3 + HO2 = ACETC2CO2H + O3 : 	KAPHO2*0.15 	;
+{7774.} 	 ACETC2CO3 + HO2 = ACETC2CO3H : 	KAPHO2*0.41 	;
+{7775.} 	 ACETC2CO3 + HO2 = ACETC2H4O2 + OH : 	KAPHO2*0.44 	;
+{7776.} 	 ACETC2CO3 + NO = ACETC2H4O2 + NO2 : 	KAPNO 	;
+{7777.} 	 ACETC2CO3 + NO2 = ACETC2PAN : 	KFPAN 	;
+{7778.} 	 ACETC2CO3 + NO3 = ACETC2H4O2 + NO2 : 	KRO2NO3*1.74 	;
+{7779.} 	 ACETC2CO3 = ACETC2CO2H : 	1.00D-11*0.3*RO2 	;
+{7780.} 	 ACETC2CO3 = ACETC2H4O2 : 	1.00D-11*0.7*RO2 	;
+{7781.} 	 IPRACBCO3 + HO2 = ETHACETO2 + OH : 	KAPHO2*0.44 	;
+{7782.} 	 IPRACBCO3 + HO2 = IPRACBCO2H + O3 : 	KAPHO2*0.15 	;
+{7783.} 	 IPRACBCO3 + HO2 = IPRACBCO3H : 	KAPHO2*0.41 	;
+{7784.} 	 IPRACBCO3 + NO = ETHACETO2 + NO2 : 	KAPNO 	;
+{7785.} 	 IPRACBCO3 + NO2 = IPRACBPAN : 	KFPAN 	;
+{7786.} 	 IPRACBCO3 + NO3 = ETHACETO2 + NO2 : 	KRO2NO3*1.74 	;
+{7787.} 	 IPRACBCO3 = ETHACETO2 : 	1.00D-11*0.7*RO2 	;
+{7788.} 	 IPRACBCO3 = IPRACBCO2H : 	1.00D-11*0.3*RO2 	;
+{7789.} 	 ACBUONEAO2 + HO2 = ACBUOAOOH : 	KRO2HO2*0.770 	;
+{7790.} 	 ACBUONEAO2 + NO = ACBUONANO3 : 	KRO2NO*0.195 	;
+{7791.} 	 ACBUONEAO2 + NO = ACBUONEAO + NO2 : 	KRO2NO*0.805 	;
+{7792.} 	 ACBUONEAO2 + NO3 = ACBUONEAO + NO2 : 	KRO2NO3 	;
+{7793.} 	 ACBUONEAO2 = ACBUONAOH : 	8.80D-13*0.2*RO2 	;
+{7794.} 	 ACBUONEAO2 = ACBUONEAO : 	8.80D-13*0.6*RO2 	;
+{7795.} 	 ACBUONEAO2 = ACCOPRONE : 	8.80D-13*0.2*RO2 	;
+{7796.} 	 ACBUONEBO2 + HO2 = ACBUONBOOH : 	KRO2HO2*0.770 	;
+{7797.} 	 ACBUONEBO2 + NO = ACBUONEBO + NO2 : 	KRO2NO 	;
+{7798.} 	 ACBUONEBO2 + NO3 = ACBUONEBO + NO2 : 	KRO2NO3 	;
+{7799.} 	 ACBUONEBO2 = ACBUONBOH : 	2.00D-12*0.2*RO2 	;
+{7800.} 	 ACBUONEBO2 = ACBUONEBO : 	2.00D-12*0.6*RO2 	;
+{7801.} 	 ACBUONEBO2 = ACCOCOC2H5 : 	2.00D-12*0.2*RO2 	;
+{7802.} 	 ACCOC3H6O2 + HO2 = ACCOPROOH : 	KRO2HO2*0.770 	;
+{7803.} 	 ACCOC3H6O2 + NO = ACCOC3H6O + NO2 : 	KRO2NO 	;
+{7804.} 	 ACCOC3H6O2 + NO3 = ACCOC3H6O + NO2 : 	KRO2NO3 	;
+{7805.} 	 ACCOC3H6O2 = ACCOC3H6O : 	2.50D-13*RO2 	;
+{7806.} 	 SBUACONEO2 + HO2 = SBUACCOOH : 	KRO2HO2*0.770 	;
+{7807.} 	 SBUACONEO2 + NO = SBUACONEO + NO2 : 	KRO2NO 	;
+{7808.} 	 SBUACONEO2 + NO3 = SBUACONEO + NO2 : 	KRO2NO3 	;
+{7809.} 	 SBUACONEO2 = SBUACCOH : 	9.20D-14*0.3*RO2 	;
+{7810.} 	 SBUACONEO2 = SBUACONEO : 	9.20D-14*0.7*RO2 	;
+{7811.} 	 TBUACCO3 + HO2 = IPROACETO2 + OH : 	KAPHO2*0.44 	;
+{7812.} 	 TBUACCO3 + HO2 = TBUACCO3H : 	KAPHO2*0.56 	;
+{7813.} 	 TBUACCO3 + NO = IPROACETO2 + NO2 : 	KAPNO 	;
+{7814.} 	 TBUACCO3 + NO2 = TBUACPAN : 	KFPAN 	;
+{7815.} 	 TBUACCO3 + NO3 = IPROACETO2 + NO2 : 	KRO2NO3*1.74 	;
+{7816.} 	 TBUACCO3 = IPROACETO2 : 	1.00D-11*RO2 	;
+{7817.} 	 ETHFORM + OH = C2H5O2 : 	5.97D-13*EXP(134/TEMP)*0.096 	;
+{7818.} 	 ETHFORM + OH = ETHFORMO2 : 	5.97D-13*EXP(134/TEMP)*0.904 	;
+{7819.} 	 MTBEACHOO2 + HO2 = MTBEAALOOH : 	KRO2HO2*0.706 	;
+{7820.} 	 MTBEACHOO2 + NO = MTBEAALNO3 : 	KRO2NO*0.052 	;
+{7821.} 	 MTBEACHOO2 + NO = MTBEACHOO + NO2 : 	KRO2NO*0.948 	;
+{7822.} 	 MTBEACHOO2 + NO3 = MTBEACHOO + NO2 : 	KRO2NO3 	;
+{7823.} 	 MTBEACHOO2 = MTBEACHO13 : 	2.00D-12*0.2*RO2 	;
+{7824.} 	 MTBEACHOO2 = MTBEACHOHO : 	2.00D-12*0.2*RO2 	;
+{7825.} 	 MTBEACHOO2 = MTBEACHOO : 	2.00D-12*0.6*RO2 	;
+{7826.} 	 MTBEBCO3 + HO2 = IPRMEETO2 + OH : 	KAPHO2*0.44 	;
+{7827.} 	 MTBEBCO3 + HO2 = MTBEBCO2H + O3 : 	KAPHO2*0.15 	;
+{7828.} 	 MTBEBCO3 + HO2 = MTBEBCO3H : 	KAPHO2*0.41 	;
+{7829.} 	 MTBEBCO3 + NO = IPRMEETO2 + NO2 : 	KAPNO 	;
+{7830.} 	 MTBEBCO3 + NO2 = MTBEBPAN : 	KFPAN 	;
+{7831.} 	 MTBEBCO3 + NO3 = IPRMEETO2 + NO2 : 	KRO2NO3*1.74 	;
+{7832.} 	 MTBEBCO3 = IPRMEETO2 : 	1.00D-11*0.7*RO2 	;
+{7833.} 	 MTBEBCO3 = MTBEBCO2H : 	1.00D-11*0.3*RO2 	;
+{7834.} 	 IPROC21O2 + HO2 = IPROC21OOH : 	KRO2HO2*0.706 	;
+{7835.} 	 IPROC21O2 + NO = IPROC21NO3 : 	KRO2NO*0.129 	;
+{7836.} 	 IPROC21O2 + NO = IPROC21O + NO2 : 	KRO2NO*0.871 	;
+{7837.} 	 IPROC21O2 + NO3 = IPROC21O + NO2 : 	KRO2NO3 	;
+{7838.} 	 IPROC21O2 = IPROACET : 	8.80D-13*0.2*RO2 	;
+{7839.} 	 IPROC21O2 = IPROC21O : 	8.80D-13*0.6*RO2 	;
+{7840.} 	 IPROC21O2 = IPROC21OH : 	8.80D-13*0.2*RO2 	;
+{7841.} 	 IPROMCCO3 + HO2 = IPROC21O2 + OH : 	KAPHO2*0.44 	;
+{7842.} 	 IPROMCCO3 + HO2 = IPROMCCO3H : 	KAPHO2*0.56 	;
+{7843.} 	 IPROMCCO3 + NO = IPROC21O2 + NO2 : 	KAPNO 	;
+{7844.} 	 IPROMCCO3 + NO2 = IPROMCPAN : 	KFPAN 	;
+{7845.} 	 IPROMCCO3 + NO3 = IPROC21O2 + NO2 : 	KRO2NO3*1.74 	;
+{7846.} 	 IPROMCCO3 = IPROC21O2 : 	1.00D-11*RO2 	;
+{7847.} 	 EIPEO2 + HO2 = EIPEOOH : 	KRO2HO2*0.706 	;
+{7848.} 	 EIPEO2 + NO = EIPEO + NO2 : 	KRO2NO 	;
+{7849.} 	 EIPEO2 + NO3 = EIPEO + NO2 : 	KRO2NO3 	;
+{7850.} 	 EIPEO2 = EIPEO : 	9.20D-14*0.7*RO2 	;
+{7851.} 	 EIPEO2 = EIPEOH : 	9.20D-14*0.3*RO2 	;
+{7852.} 	 ETBEACO3 + HO2 = EIPEO2 + OH : 	KAPHO2*0.44 	;
+{7853.} 	 ETBEACO3 + HO2 = ETBEACO3H : 	KAPHO2*0.56 	;
+{7854.} 	 ETBEACO3 + NO = EIPEO2 + NO2 : 	KAPNO 	;
+{7855.} 	 ETBEACO3 + NO2 = ETBEAPAN : 	KFPAN 	;
+{7856.} 	 ETBEACO3 + NO3 = EIPEO2 + NO2 : 	KRO2NO3*1.74 	;
+{7857.} 	 ETBEACO3 = EIPEO2 : 	1.00D-11*RO2 	;
+{7858.} 	 ETBECCO3 + HO2 = ETBECCO3H : 	KAPHO2*0.56 	;
+{7859.} 	 ETBECCO3 + HO2 = MTBEAO2 + OH : 	KAPHO2*0.44 	;
+{7860.} 	 ETBECCO3 + NO = MTBEAO2 + NO2 : 	KAPNO 	;
+{7861.} 	 ETBECCO3 + NO2 = ETBECPAN : 	KFPAN 	;
+{7862.} 	 ETBECCO3 + NO3 = MTBEAO2 + NO2 : 	KRO2NO3*1.74 	;
+{7863.} 	 ETBECCO3 = MTBEAO2 : 	1.00D-11*RO2 	;
+{7864.} 	 MOXY2CHO + NO3 = CHOOMCO3 + HNO3 : 	KNO3AL*2.4 	;
+{7865.} 	 MOXY2CHO + OH = CHOOMCO3 : 	2.10D-11 	;
+{7866.} 	 MOXY2CHO = CHOOCH2O2 + HO2 + CO : 	J(15) 	;
+{7867.} 	 MEMOXYCO2H + OH = CH3OCH2O2 : 	4.79D-12 	;
+{7868.} 	 MEMOXYCO3H + OH = MEMOXYCO3 : 	8.35D-12 	;
+{7869.} 	 MEMOXYCO3H = CH3OCH2O2 + OH : 	J(41) 	;
+{7870.} 	 MEMOXYPAN + OH = CH3OCHO + CO + NO2 : 	4.76D-12 	;
+{7871.} 	 MEMOXYPAN = MEMOXYCO3 + NO2 : 	KBPAN 	;
+{7872.} 	 ETOMECO2H + OH = ETOMEO2 : 	9.22D-12 	;
+{7873.} 	 ETOMECO3H + OH = EOX2MECO3 : 	1.28D-11 	;
+{7874.} 	 ETOMECO3H = ETOMEO2 + OH : 	J(41) 	;
+{7875.} 	 ETOMEPAN + OH = ETHFORM + CO + NO2 : 	9.18D-12 	;
+{7876.} 	 ETOMEPAN = EOX2MECO3 + NO2 : 	KBPAN 	;
+{7877.} 	 ETOMEOOH + OH = ETHFORM + OH : 	7.54D-11 	;
+{7878.} 	 ETOMEOOH = ETOMEO + OH : 	J(41) 	;
+{7879.} 	 ETOMENO3 + OH = ETHFORM + NO2 : 	6.22D-12 	;
+{7880.} 	 ETOMENO3 = ETOMEO + NO2 : 	J(53) 	;
+{7881.} 	 ETOMEO = HO2 + ETHFORM : 	KROPRIM*O2 	;
+{7882.} 	 ETOMEOH + OH = ETHFORM + HO2 : 	2.27D-11 	;
+{7883.} 	 MCOCOMOX + OH = MCOCOMOXO2 : 	3.25D-13 	;
+{7884.} 	 MCOCOMOX = CH3CO3 + CH3O2 : 	J(22) 	;
+{7885.} 	 PRONFORM + OH = PRONFORMO2 : 	1.06D-12 	;
+{7886.} 	 PRONFORM = CHOOCH2O2 + CH3CO3 : 	J(22) 	;
+{7887.} 	 PRONEMOOOH + OH = MCOCOMOX + OH : 	1.15D-10 	;
+{7888.} 	 PRONEMOOOH = CH3CO3 + CH3OCHO + OH : 	J(22) 	;
+{7889.} 	 PRONEMOOOH = PRONEMOXO + OH : 	J(41) 	;
+{7890.} 	 PRONEMOXO = CH3OCHO + CH3CO3 : 	KDEC 	;
+{7891.} 	 PRONEMOXOH + OH = MCOCOMOX + HO2 : 	2.98D-11 	;
+{7892.} 	 PRONEMOXOH = CH3CO3 + CH3OCHO + HO2 : 	J(22) 	;
+{7893.} 	 PRCOOMCHO + NO3 = PRCOOMCO3 + HNO3 : 	KNO3AL*5.5 	;
+{7894.} 	 PRCOOMCHO + OH = PRCOOMCO3 : 	2.56D-11 	;
+{7895.} 	 PRCOOMCHO = PRCOOMO2 + HO2 + CO : 	J(15) 	;
+{7896.} 	 BOXCOCHO + OH = BOXCOCHOO2 : 	4.28D-12 	;
+{7897.} 	 BOXCOCHO = HO2 + CO + NC4H9O2 : 	J(34) 	;
+{7898.} 	 BOXCHO + OH = BOXFORMO2 : 	3.12D-12 	;
+{7899.} 	 BOXMCO2H + OH = BOX2MO2 : 	1.32D-11 	;
+{7900.} 	 BOXMCO3H + OH = BOXMCO3 : 	1.67D-11 	;
+{7901.} 	 BOXMCO3H = BOX2MO2 + OH : 	J(41) 	;
+{7902.} 	 BOXMPAN + OH = BOXCHO + CO + NO2 : 	1.32D-11 	;
+{7903.} 	 BOXMPAN = BOXMCO3 + NO2 : 	KBPAN 	;
+{7904.} 	 BOXMOOH + OH = BOXCHO + OH : 	7.93D-11 	;
+{7905.} 	 BOXMOOH = BOX2MO + OH : 	J(41) 	;
+{7906.} 	 BOX2MO = BOXCHO + HO2 : 	KDEC 	;
+{7907.} 	 BOXMOH + OH = BOXCHO + HO2 : 	1.96D-11 	;
+{7908.} 	 PRCOOPRONE + OH = PRONOCOPO2 : 	4.94D-12 	;
+{7909.} 	 PRCOOPRONE = PRCOOMO2 + CH3CO3 : 	J(22) 	;
+{7910.} 	 BOXCOEOLO2 + HO2 = BOXCOOLOOH : 	KRO2HO2*0.820 	;
+{7911.} 	 BOXCOEOLO2 + NO = BOXCOEOLO + NO2 : 	KRO2NO 	;
+{7912.} 	 BOXCOEOLO2 + NO3 = BOXCOEOLO + NO2 : 	KRO2NO3 	;
+{7913.} 	 BOXCOEOLO2 = BOXCOEOLO : 	8.80D-13*RO2 	;
+{7914.} 	 BOXPROOOH + OH = BOXPRONAO2 : 	1.97D-10 	;
+{7915.} 	 BOXPROOOH = BOXPRONEAO + OH : 	J(41)+J(22)*2 	;
+{7916.} 	 BOXPROANO3 + OH = PRCOOPRONE + NO2 : 	8.17D-12 	;
+{7917.} 	 BOXPROANO3 = BOXPRONEAO + NO2 : 	J(54)+J(22) 	;
+{7918.} 	 BOXPRONEAO = PRONFORM + NC3H7O2 : 	KDEC 	;
+{7919.} 	 BOXPRONOH + OH = PRCOOPRONE + HO2 : 	5.57D-11 	;
+{7920.} 	 BOXCOCOME + OH = BOXCOCOMO2 : 	4.39D-12 	;
+{7921.} 	 BOXPROBOOH + OH = BOXPRONBO2 : 	1.19D-10 	;
+{7922.} 	 BOXPROBOOH = BOXCHO + CH3CO3 + OH : 	J(22) 	;
+{7923.} 	 BOXPROBOOH = BOXPRONBO + OH : 	J(41) 	;
+{7924.} 	 BOXPRONBO = BOXCHO + CH3CO3 : 	KDEC 	;
+{7925.} 	 BOXPRONBOH + OH = BOXCOCOME + HO2 : 	3.82D-11 	;
+{7926.} 	 BOXPRONBOH = BOXCHO + CH3CO3 + HO2 : 	J(22) 	;
+{7927.} 	 BRETO3 + HO2 = BRETO2H + O3 : 	KAPHO2*0.15 	;
+{7928.} 	 BRETO3 + HO2 = BRETO3H : 	KAPHO2*0.41 	;
+{7929.} 	 BRETO3 + HO2 = CH2BRO2 + OH : 	KAPHO2*0.44 	;
+{7930.} 	 BRETO3 + NO = CH2BRO2 + NO2 : 	KAPNO 	;
+{7931.} 	 BRETO3 + NO2 = BRETPAN : 	KFPAN 	;
+{7932.} 	 BRETO3 + NO3 = CH2BRO2 + NO2 : 	KRO2NO3*1.74 	;
+{7933.} 	 BRETO3 = BRETO2H : 	1.00D-11*0.30*RO2 	;
+{7934.} 	 BRETO3 = CH2BRO2 : 	1.00D-11*0.70*RO2 	;
+{7935.} 	 HO1CO3C4O2 + HO2 = HOCO3C4OOH : 	KRO2HO2*0.625 	;
+{7936.} 	 HO1CO3C4O2 + NO = HO1CO3C4O + NO2 : 	KRO2NO 	;
+{7937.} 	 HO1CO3C4O2 + NO3 = HO1CO3C4O + NO2 : 	KRO2NO3 	;
+{7938.} 	 HO1CO3C4O2 = HO14CO2C4 : 	2.00D-12*0.2*RO2 	;
+{7939.} 	 HO1CO3C4O2 = HO1CO3C4O : 	2.00D-12*0.6*RO2 	;
+{7940.} 	 HO1CO3C4O2 = HO1CO3CHO : 	2.00D-12*0.2*RO2 	;
+{7941.} 	 BIACETO2 + HO2 = BIACETOOH : 	KRO2HO2*0.625 	;
+{7942.} 	 BIACETO2 + NO = BIACETO + NO2 : 	KRO2NO 	;
+{7943.} 	 BIACETO2 + NO3 = BIACETO + NO2 : 	KRO2NO3 	;
+{7944.} 	 BIACETO2 = BIACETO : 	2.00D-12*0.6*RO2 	;
+{7945.} 	 BIACETO2 = BIACETOH : 	2.00D-12*0.2*RO2 	;
+{7946.} 	 BIACETO2 = CO23C3CHO : 	2.00D-12*0.2*RO2 	;
+{7947.} 	 HO2CO4C5O2 + HO2 = HOCO4C5OOH : 	KRO2HO2*0.706 	;
+{7948.} 	 HO2CO4C5O2 + NO = HO2CO4C5O + NO2 : 	KRO2NO 	;
+{7949.} 	 HO2CO4C5O2 + NO3 = HO2CO4C5O + NO2 : 	KRO2NO3 	;
+{7950.} 	 HO2CO4C5O2 = HO14CO2C5 : 	2.00D-12*0.2*RO2 	;
+{7951.} 	 HO2CO4C5O2 = HO2CO4C5O : 	2.00D-12*0.6*RO2 	;
+{7952.} 	 HO2CO4C5O2 = HO2CO4CHO : 	2.00D-12*0.2*RO2 	;
+{7953.} 	 CO23C54O2 + HO2 = CO23C54OOH : 	KRO2HO2*0.706 	;
+{7954.} 	 CO23C54O2 + NO = CO23C54O + NO2 : 	KRO2NO 	;
+{7955.} 	 CO23C54O2 + NO3 = CO23C54O + NO2 : 	KRO2NO3 	;
+{7956.} 	 CO23C54O2 = CO23C54O : 	8.80D-13*RO2 	;
+{7957.} 	 HOCO3C54O2 + HO2 = HOCO3C5OOH : 	KRO2HO2*0.706 	;
+{7958.} 	 HOCO3C54O2 + NO = HOCO3C54O + NO2 : 	KRO2NO 	;
+{7959.} 	 HOCO3C54O2 + NO3 = HOCO3C54O + NO2 : 	KRO2NO3 	;
+{7960.} 	 HOCO3C54O2 = HO14CO3C5 : 	8.80D-13*0.2*RO2 	;
+{7961.} 	 HOCO3C54O2 = HO1CO34C5 : 	8.80D-13*0.2*RO2 	;
+{7962.} 	 HOCO3C54O2 = HOCO3C54O : 	8.80D-13*0.6*RO2 	;
+{7963.} 	 C53O2 + HO2 = C53OOH : 	KRO2HO2*0.706 	;
+{7964.} 	 C53O2 + NO = C53O + NO2 : 	KRO2NO 	;
+{7965.} 	 C53O2 + NO3 = C53O + NO2 : 	KRO2NO3 	;
+{7966.} 	 C53O2 = C53O : 	2.00D-12*0.6*RO2 	;
+{7967.} 	 C53O2 = C53OH : 	2.00D-12*0.2*RO2 	;
+{7968.} 	 C53O2 = HOIPRGLYOX : 	2.00D-12*0.2*RO2 	;
+{7969.} 	 C41CO3 + HO2 = C41CO2H + O3 : 	KAPHO2*0.15 	;
+{7970.} 	 C41CO3 + HO2 = C41CO3H : 	KAPHO2*0.41 	;
+{7971.} 	 C41CO3 + HO2 = MEKBO2 + OH : 	KAPHO2*0.44 	;
+{7972.} 	 C41CO3 + NO = MEKBO2 + NO2 : 	KAPNO 	;
+{7973.} 	 C41CO3 + NO2 = C5PAN7 : 	KFPAN 	;
+{7974.} 	 C41CO3 + NO3 = MEKBO2 + NO2 : 	KRO2NO3*1.74 	;
+{7975.} 	 C41CO3 = C41CO2H : 	1.00D-11*0.3*RO2 	;
+{7976.} 	 C41CO3 = MEKBO2 : 	1.00D-11*0.7*RO2 	;
+{7977.} 	 CO2HOC61O2 + HO2 = CO2HOC6OOH : 	KRO2HO2*0.770 	;
+{7978.} 	 CO2HOC61O2 + NO = CO2HOC61O + NO2 : 	KRO2NO 	;
+{7979.} 	 CO2HOC61O2 + NO3 = CO2HOC61O + NO2 : 	KRO2NO3 	;
+{7980.} 	 CO2HOC61O2 = CO2HOC61O : 	2.00D-12*RO2 	;
+{7981.} 	 CO24C6O2 + HO2 = CO24C6OOH : 	KRO2HO2*0.770 	;
+{7982.} 	 CO24C6O2 + NO = CO24C6O + NO2 : 	KRO2NO 	;
+{7983.} 	 CO24C6O2 + NO3 = CO24C6O + NO2 : 	KRO2NO3 	;
+{7984.} 	 CO24C6O2 = CO24C6O : 	8.80D-13*RO2 	;
+{7985.} 	 CO25C6O2 + HO2 = CO25C6OOH : 	KRO2HO2*0.770 	;
+{7986.} 	 CO25C6O2 + NO = CO25C6O + NO2 : 	KRO2NO 	;
+{7987.} 	 CO25C6O2 + NO3 = CO25C6O + NO2 : 	KRO2NO3 	;
+{7988.} 	 CO25C6O2 = CO235C6 : 	8.40D-13*0.2*RO2 	;
+{7989.} 	 CO25C6O2 = CO25C6O : 	8.40D-13*0.6*RO2 	;
+{7990.} 	 CO25C6O2 = CO25C6OH : 	8.40D-13*0.2*RO2 	;
+{7991.} 	 HO2C4O2 + HO2 = HO2C4OOH : 	KRO2HO2*0.625 	;
+{7992.} 	 HO2C4O2 + NO = HO2C4NO3 : 	KRO2NO*0.033 	;
+{7993.} 	 HO2C4O2 + NO = HO2C4O + NO2 : 	KRO2NO*0.967 	;
+{7994.} 	 HO2C4O2 + NO3 = HO2C4O + NO2 : 	KRO2NO3 	;
+{7995.} 	 HO2C4O2 = HO2C3CHO : 	1.30D-12*0.2*RO2 	;
+{7996.} 	 HO2C4O2 = HO2C4O : 	1.30D-12*0.6*RO2 	;
+{7997.} 	 HO2C4O2 = HO2C4OH : 	1.30D-12*0.2*RO2 	;
+{7998.} 	 C61O2 + HO2 = C61OOH : 	KRO2HO2*0.770 	;
+{7999.} 	 C61O2 + NO = C61NO3 : 	KRO2NO*0.098 	;
+{8000.} 	 C61O2 + NO = C61O + NO2 : 	KRO2NO*0.902 	;
+{8001.} 	 C61O2 + NO3 = C61O + NO2 : 	KRO2NO3 	;
+{8002.} 	 C61O2 = C61CO : 	8.40D-13*0.2*RO2 	;
+{8003.} 	 C61O2 = C61O : 	8.40D-13*0.6*RO2 	;
+{8004.} 	 C61O2 = C61OH : 	8.40D-13*0.2*RO2 	;
+{8005.} 	 CO23C65O2 + HO2 = CO23C65OOH : 	KRO2HO2*0.770 	;
+{8006.} 	 CO23C65O2 + NO = CO23C65O + NO2 : 	KRO2NO 	;
+{8007.} 	 CO23C65O2 + NO3 = CO23C65O + NO2 : 	KRO2NO3 	;
+{8008.} 	 CO23C65O2 = CO23C65O : 	8.80D-13*RO2 	;
+{8009.} 	 C6CO3OH5O2 + HO2 = C6CO3OHOOH : 	KRO2HO2*0.770 	;
+{8010.} 	 C6CO3OH5O2 + NO = C6CO3OH5O + NO2 : 	KRO2NO 	;
+{8011.} 	 C6CO3OH5O2 + NO3 = C6CO3OH5O + NO2 : 	KRO2NO3 	;
+{8012.} 	 C6CO3OH5O2 = C6CO23HO5 : 	8.80D-13*0.2*RO2 	;
+{8013.} 	 C6CO3OH5O2 = C6CO3HO25 : 	8.80D-13*0.2*RO2 	;
+{8014.} 	 C6CO3OH5O2 = C6CO3OH5O : 	8.80D-13*0.6*RO2 	;
+{8015.} 	 C6CO34O2 + HO2 = C6CO34OOH : 	KRO2HO2*0.770 	;
+{8016.} 	 C6CO34O2 + NO = C6CO34O + NO2 : 	KRO2NO 	;
+{8017.} 	 C6CO34O2 + NO3 = C6CO34O + NO2 : 	KRO2NO3 	;
+{8018.} 	 C6CO34O2 = C6CO34O : 	8.80D-13*RO2 	;
+{8019.} 	 C6HO1CO3O2 + HO2 = C6HOCOOOH : 	KRO2HO2*0.770 	;
+{8020.} 	 C6HO1CO3O2 + NO = C6HO1CO3O + NO2 : 	KRO2NO 	;
+{8021.} 	 C6HO1CO3O2 + NO3 = C6HO1CO3O + NO2 : 	KRO2NO3 	;
+{8022.} 	 C6HO1CO3O2 = C6CO34HO1 : 	8.80D-13*0.2*RO2 	;
+{8023.} 	 C6HO1CO3O2 = C6CO3HO14 : 	8.80D-13*0.2*RO2 	;
+{8024.} 	 C6HO1CO3O2 = C6HO1CO3O : 	8.80D-13*0.6*RO2 	;
+{8025.} 	 C3COCCO3 + HO2 = C3COCCO3H : 	KAPHO2*0.56 	;
+{8026.} 	 C3COCCO3 + HO2 = PEN2ONE1O2 + OH : 	KAPHO2*0.44 	;
+{8027.} 	 C3COCCO3 + NO = PEN2ONE1O2 + NO2 : 	KAPNO 	;
+{8028.} 	 C3COCCO3 + NO2 = C3COCPAN : 	KFPAN 	;
+{8029.} 	 C3COCCO3 + NO3 = PEN2ONE1O2 + NO2 : 	KRO2NO3*1.74 	;
+{8030.} 	 C3COCCO3 = PEN2ONE1O2 : 	1.00D-11*RO2 	;
+{8031.} 	 PEN2ONE1O2 + HO2 = PE2ONE1OOH : 	KRO2HO2*0.706 	;
+{8032.} 	 PEN2ONE1O2 + NO = PEN2ONE1O + NO2 : 	KRO2NO 	;
+{8033.} 	 PEN2ONE1O2 + NO3 = PEN2ONE1O + NO2 : 	KRO2NO3 	;
+{8034.} 	 PEN2ONE1O2 = PEN2ONE1O : 	2.00D-12*RO2 	;
+{8035.} 	 MIBK3COO2 + HO2 = MIBK3COOOH : 	KRO2HO2*0.770 	;
+{8036.} 	 MIBK3COO2 + NO = MIBK3COO + NO2 : 	KRO2NO 	;
+{8037.} 	 MIBK3COO2 + NO3 = MIBK3COO + NO2 : 	KRO2NO3 	;
+{8038.} 	 MIBK3COO2 = MIBK3COO : 	2.00D-12*RO2 	;
+{8039.} 	 C612O2 + HO2 = C612OOH : 	KRO2HO2*0.770 	;
+{8040.} 	 C612O2 + NO = C612O + NO2 : 	KRO2NO 	;
+{8041.} 	 C612O2 + NO3 = C612O + NO2 : 	KRO2NO3 	;
+{8042.} 	 C612O2 = C612O : 	2.00D-12*0.6*RO2 	;
+{8043.} 	 C612O2 = C612OH : 	2.00D-12*0.2*RO2 	;
+{8044.} 	 C612O2 = HM22COCHO : 	2.00D-12*0.2*RO2 	;
+{8045.} 	 CO2M33CO3 + HO2 = CO2M33CO2H + O3 : 	KAPHO2*0.15 	;
+{8046.} 	 CO2M33CO3 + HO2 = CO2M33CO3H : 	KAPHO2*0.41 	;
+{8047.} 	 CO2M33CO3 + HO2 = MIPKAO2 + OH : 	KAPHO2*0.44 	;
+{8048.} 	 CO2M33CO3 + NO = MIPKAO2 + NO2 : 	KAPNO 	;
+{8049.} 	 CO2M33CO3 + NO2 = C6PAN16 : 	KFPAN 	;
+{8050.} 	 CO2M33CO3 + NO3 = MIPKAO2 + NO2 : 	KRO2NO3*1.74 	;
+{8051.} 	 CO2M33CO3 = CO2M33CO2H : 	1.00D-11*0.3*RO2 	;
+{8052.} 	 CO2M33CO3 = MIPKAO2 : 	1.00D-11*0.7*RO2 	;
+{8053.} 	 C6COCHOO2 + HO2 = C6COCHOOOH : 	KRO2HO2*0.770 	;
+{8054.} 	 C6COCHOO2 + NO = C6COCHOO + NO2 : 	KRO2NO 	;
+{8055.} 	 C6COCHOO2 + NO3 = C6COCHOO + NO2 : 	KRO2NO3 	;
+{8056.} 	 C6COCHOO2 = C6COCHOO : 	1.30D-12*0.6*RO2 	;
+{8057.} 	 C6COCHOO2 = C6CODIAL : 	1.30D-12*0.2*RO2 	;
+{8058.} 	 C6COCHOO2 = C6COHOCHO : 	1.30D-12*0.2*RO2 	;
+{8059.} 	 CY6DIONO2 + HO2 = CY6COCOOOH : 	KRO2HO2*0.770 	;
+{8060.} 	 CY6DIONO2 + NO = CY6DIONO + NO2 : 	KRO2NO 	;
+{8061.} 	 CY6DIONO2 + NO3 = CY6DIONO + NO2 : 	KRO2NO3 	;
+{8062.} 	 CY6DIONO2 = CY6DIONO : 	2.50D-13*0.6*RO2 	;
+{8063.} 	 CY6DIONO2 = CY6DIONOH : 	2.50D-13*0.2*RO2 	;
+{8064.} 	 CY6DIONO2 = CY6TRION : 	2.50D-13*0.2*RO2 	;
+{8065.} 	 VINOH + OH = HOCH2CHO + HO2 : 	9.00D-12 	;
+{8066.} 	 PINAL + NO3 = C96CO3 + HNO3 : 	2.0D-14 	;
+{8067.} 	 PINAL + OH = C96CO3 : 	5.2D-12*EXP(600/TEMP)*0.772 	;
+{8068.} 	 PINAL + OH = PINALO2 : 	5.2D-12*EXP(600/TEMP)*0.228 	;
+{8069.} 	 PINAL = C96O2 + CO + HO2 : 	J(15) 	;
+{8070.} 	 NC101O2 + HO2 = NC101OOH : 	KRO2HO2*0.914 	;
+{8071.} 	 NC101O2 + NO = NC101O + NO2 : 	KRO2NO 	;
+{8072.} 	 NC101O2 + NO3 = NC101O + NO2 : 	KRO2NO3 	;
+{8073.} 	 NC101O2 = NC101O : 	6.70D-15*RO2 	;
+{8074.} 	 C96CO3 + HO2 = C96O2 + OH : 	KAPHO2*0.44 	;
+{8075.} 	 C96CO3 + HO2 = PERPINONIC : 	KAPHO2*0.41 	;
+{8076.} 	 C96CO3 + HO2 = PINONIC + O3 : 	KAPHO2*0.15 	;
+{8077.} 	 C96CO3 + NO = C96O2 + NO2 : 	KAPNO 	;
+{8078.} 	 C96CO3 + NO2 = C10PAN2 : 	KFPAN 	;
+{8079.} 	 C96CO3 + NO3 = C96O2 + NO2 : 	KRO2NO3*1.74 	;
+{8080.} 	 C96CO3 = C96O2 : 	1.00D-11*0.7*RO2 	;
+{8081.} 	 C96CO3 = PINONIC : 	1.00D-11*0.3*RO2 	;
+{8082.} 	 C107OOH + OH = C107O2 : 	3.01D-11 	;
+{8083.} 	 C107OOH = C107O + OH : 	J(41)+J(15) 	;
+{8084.} 	 C107O = C108O2 : 	KDEC 	;
+{8085.} 	 C107OH + OH = C107O : 	2.66D-11 	;
+{8086.} 	 C107OH = C107O + HO2 : 	J(15) 	;
+{8087.} 	 C109OOH + OH = C109CO + OH : 	5.47D-11 	;
+{8088.} 	 C109OOH = C109O + OH : 	J(41)+J(15) 	;
+{8089.} 	 C109OOH = C89CO3 + HCHO + OH : 	J(22) 	;
+{8090.} 	 C109O = C89CO3 + HCHO : 	KDEC*0.80 	;
+{8091.} 	 C109O = C920CO3 : 	KDEC*0.20 	;
+{8092.} 	 C109CO + OH = C89CO3 + CO : 	5.47D-11 	;
+{8093.} 	 C109CO = C89CO3 + CO + HO2 : 	J(34)+J(15) 	;
+{8094.} 	 C109OH + OH = C109CO + HO2 : 	4.45D-11 	;
+{8095.} 	 C109OH = C89CO3 + HCHO + HO2 : 	J(22) 	;
+{8096.} 	 C109OH = C920O2 + CO + HO2 : 	J(15) 	;
+{8097.} 	 PINONIC + OH = C96O2 : 	6.65D-12 	;
+{8098.} 	 PINONIC = C96O2 + HO2 : 	J(22) 	;
+{8099.} 	 C96OOH + OH = C96O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{8100.} 	 C96OOH + OH = NORPINAL + OH : 	1.30D-11 	;
+{8101.} 	 C96OOH = C96O + OH : 	J(41)+J(22) 	;
+{8102.} 	 C96NO3 + OH = NORPINAL + NO2 : 	2.88D-12 	;
+{8103.} 	 C96NO3 = C96O + NO2 : 	J(53)+J(22) 	;
+{8104.} 	 C96O = C97O2 : 	4.20D+10*EXP(-3523/TEMP) 	;
+{8105.} 	 C96OH + OH = NORPINAL + HO2 : 	7.67D-12 	;
+{8106.} 	 C96OH = C96O + HO2 : 	J(22) 	;
+{8107.} 	 NORPINAL + NO3 = C85CO3 + HNO3 : 	KNO3AL*8.5 	;
+{8108.} 	 NORPINAL + OH = C85CO3 : 	2.64D-11 	;
+{8109.} 	 NORPINAL = C85O2 + CO + HO2 : 	J(15) 	;
+{8110.} 	 HCC7CO + OH = C719O2 : 	1.19D-10 	;
+{8111.} 	 C720O2 + HO2 = C720OOH : 	KRO2HO2*0.820 	;
+{8112.} 	 C720O2 + NO = C720NO3 : 	KRO2NO*0.278 	;
+{8113.} 	 C720O2 + NO = C720O + NO2 : 	KRO2NO*0.722 	;
+{8114.} 	 C720O2 + NO3 = C720O + NO2 : 	KRO2NO3 	;
+{8115.} 	 C720O2 = C720O : 	2.50D-13*RO2*0.6 	;
+{8116.} 	 C720O2 = C720OH : 	2.50D-13*RO2*0.2 	;
+{8117.} 	 C720O2 = HCC7CO : 	2.50D-13*RO2*0.2 	;
+{8118.} 	 NC91CO3 + HO2 = NC91CO3H : 	KAPHO2*0.56 	;
+{8119.} 	 NC91CO3 + HO2 = NOPINONE + NO2 + OH : 	KAPHO2*0.44 	;
+{8120.} 	 NC91CO3 + NO = NOPINONE + NO2 + NO2 : 	KAPNO 	;
+{8121.} 	 NC91CO3 + NO2 = NC91PAN : 	KFPAN 	;
+{8122.} 	 NC91CO3 + NO3 = NOPINONE + NO2 + NO2 : 	KRO2NO3*1.74 	;
+{8123.} 	 NC91CO3 = NOPINONE + NO2 : 	1.00D-11*RO2 	;
+{8124.} 	 NOPINAOOH + OH = C9DC + OH : 	8.59D-11 	;
+{8125.} 	 NOPINAOOH = NOPINAO + OH : 	J(41) 	;
+{8126.} 	 NOPINANO3 + OH = C9DC + NO2 : 	3.24D-12 	;
+{8127.} 	 NOPINANO3 = NOPINAO + NO2 : 	J(54) 	;
+{8128.} 	 NOPINAO = C918O2 : 	2.70D+14*EXP(-6643/TEMP) 	;
+{8129.} 	 NOPINAO = C9DC + HO2 : 	KROSEC*O2 	;
+{8130.} 	 C9DC + OH = C9DCO2 : 	6.07D-12 	;
+{8131.} 	 NOPINAOH + OH = C9DC + HO2 : 	3.68D-11 	;
+{8132.} 	 NOPINBOOH + OH = NOPINBCO + OH : 	3.44D-11 	;
+{8133.} 	 NOPINBOOH = NOPINBO + OH : 	J(41) 	;
+{8134.} 	 NOPINBNO3 + OH = NOPINBCO + NO2 : 	6.05D-12 	;
+{8135.} 	 NOPINBNO3 = NOPINBO + NO2 : 	J(54) 	;
+{8136.} 	 NOPINBO = C915O2 : 	KDEC 	;
+{8137.} 	 NOPINBCO + OH = C915O2 : 	1.64D-11 	;
+{8138.} 	 NOPINBOH + OH = NOPINBCO + HO2 : 	1.81D-11 	;
+{8139.} 	 NOPINCOOH + OH = NOPINCO2 : 	1.11D-11 	;
+{8140.} 	 NOPINCOOH = NOPINCO + OH : 	J(41) 	;
+{8141.} 	 NOPINCNO3 + OH = CH3COCH3 + C619CO + NO2 : 	6.37D-12 	;
+{8142.} 	 NOPINCNO3 = NOPINCO + NO2 : 	J(55) 	;
+{8143.} 	 NOPINCO = C917O2 : 	KDEC 	;
+{8144.} 	 NOPINCOH + OH = NOPINCO : 	7.69D-12 	;
+{8145.} 	 NOPINDOOH + OH = NOPINDCO + OH : 	2.63D-11 	;
+{8146.} 	 NOPINDOOH = NOPINDO + OH : 	J(41) 	;
+{8147.} 	 NOPINDO = C89CO3 : 	KDEC 	;
+{8148.} 	 NOPINDCO + OH = C89CO3 : 	3.07D-12 	;
+{8149.} 	 NOPINDOH + OH = NOPINDCO + HO2 : 	1.41D-11 	;
+{8150.} 	 C8BCO2 + HO2 = C8BCOOH : 	KRO2HO2*0.859 	;
+{8151.} 	 C8BCO2 + NO = C8BCNO3 : 	KRO2NO*0.138 	;
+{8152.} 	 C8BCO2 + NO = C8BCO + NO2 : 	KRO2NO*0.862 	;
+{8153.} 	 C8BCO2 + NO3 = C8BCO + NO2 : 	KRO2NO3 	;
+{8154.} 	 C8BCO2 = C8BCCO : 	2.50D-13*RO2*0.2 	;
+{8155.} 	 C8BCO2 = C8BCO : 	2.50D-13*RO2*0.6 	;
+{8156.} 	 C8BCO2 = C8BCOH : 	2.50D-13*RO2*0.2 	;
+{8157.} 	 C918CO3 + HO2 = C918CO3H : 	KAPHO2*0.56 	;
+{8158.} 	 C918CO3 + HO2 = NOPINONE + HO2 + OH : 	KAPHO2*0.44 	;
+{8159.} 	 C918CO3 + NO = NOPINONE + HO2 + NO2 : 	KAPNO 	;
+{8160.} 	 C918CO3 + NO2 = C918PAN : 	KFPAN 	;
+{8161.} 	 C918CO3 + NO3 = NOPINONE + HO2 + NO2 : 	KRO2NO3*1.74 	;
+{8162.} 	 C918CO3 = NOPINONE + HO2 : 	1.00D-11*RO2 	;
+{8163.} 	 LIMAL + NO3 = C923CO3 + HNO3 : 	2.60D-13*0.092 	;
+{8164.} 	 LIMAL + NO3 = NLIMALO2 : 	2.60D-13*0.988 	;
+{8165.} 	 LIMAL + O3 = LIMALOOA + HCHO : 	8.30D-18*0.670 	;
+{8166.} 	 LIMAL + O3 = LMLKET + CH2OOF : 	8.30D-18*0.330 	;
+{8167.} 	 LIMAL + OH = C923CO3 : 	1.10D-10*0.288 	;
+{8168.} 	 LIMAL + OH = LIMALO2 : 	1.10D-10*0.712 	;
+{8169.} 	 LIMAL = C923O2 + CO + HO2 : 	J(15) 	;
+{8170.} 	 LIMALAOOH + OH = LIMALACO + OH : 	1.06D-10 	;
+{8171.} 	 LIMALAOOH = C729CHO + OH + CH3CO3 : 	J(22) 	;
+{8172.} 	 LIMALAOOH = LIMALAO + OH : 	J(41) 	;
+{8173.} 	 LIMALAO = C729CHO + CH3CO3 : 	KDEC 	;
+{8174.} 	 LIMALACO + OH = C729CHO + CH3CO3 : 	8.34D-11 	;
+{8175.} 	 LIMALACO = C729CO3 + CH3CO3 : 	J(35) 	;
+{8176.} 	 LIMALAOH + OH = LIMALACO + HO2 : 	9.34D-11 	;
+{8177.} 	 LIMALAOH = C729CHO + HO2 + CH3CO3 : 	J(22) 	;
+{8178.} 	 LIMALBOOH + OH = LIMALBCO + OH : 	9.73D-11 	;
+{8179.} 	 LIMALBOOH = C822CO3 + HCHO + OH : 	J(22) 	;
+{8180.} 	 LIMALBOOH = LIMALBO + OH : 	J(41) 	;
+{8181.} 	 LIMALBO = C822CO3 + HCHO : 	KDEC 	;
+{8182.} 	 LIMALBCO + OH = C822CO3 + CO : 	1.01D-10 	;
+{8183.} 	 LIMALBCO = C822CO3 + CO + HO2 : 	J(34) 	;
+{8184.} 	 LIMALBOH + OH = LIMALBCO + HO2 : 	9.04D-11 	;
+{8185.} 	 LIMALBOH = C822CO3 + HCHO + HO2 : 	J(22) 	;
+{8186.} 	 C923OOH + OH = NORLIMAL + OH : 	7.39D-11 	;
+{8187.} 	 C923OOH = C923O + OH : 	J(41) 	;
+{8188.} 	 C923NO3 + OH = NORLIMAL + NO2 : 	5.82D-11 	;
+{8189.} 	 C923NO3 = C923O + NO2 : 	J(53) 	;
+{8190.} 	 C923O = C924O2 : 	KDEC 	;
+{8191.} 	 C923OH + OH = NORLIMAL + HO2 : 	6.91D-11 	;
+{8192.} 	 NORLIMAL + OH = C816CO3 : 	8.00D-11*0.288 	;
+{8193.} 	 NORLIMAL + OH = NORLIMO2 : 	8.00D-11*0.712 	;
+{8194.} 	 NORLIMAL = C816O2 + CO + HO2 : 	J(15) 	;
+{8195.} 	 LIMONONIC + OH = C923O2 : 	6.98D-11 	;
+{8196.} 	 C923CO3 + HO2 = C923CO3H : 	KAPHO2*0.41 	;
+{8197.} 	 C923CO3 + HO2 = C923O2 + OH : 	KAPHO2*0.44 	;
+{8198.} 	 C923CO3 + HO2 = LIMONONIC + O3 : 	KAPHO2*0.15 	;
+{8199.} 	 C923CO3 + NO = C923O2 + NO2 : 	KAPNO 	;
+{8200.} 	 C923CO3 + NO2 = C923PAN : 	KFPAN 	;
+{8201.} 	 C923CO3 + NO3 = C923O2 + NO2 : 	KRO2NO3*1.74 	;
+{8202.} 	 C923CO3 = C923O2 : 	1.00D-11*RO2*0.7 	;
+{8203.} 	 C923CO3 = LIMONONIC : 	1.00D-11*RO2*0.3 	;
+{8204.} 	 LIMKET + NO3 = NLMKAO2 : 	9.40D-12 	;
+{8205.} 	 LIMKET + O3 = LMKOOA : 	1.50D-16*0.730 	;
+{8206.} 	 LIMKET + O3 = LMKOOB : 	1.50D-16*0.270 	;
+{8207.} 	 LIMKET + OH = LMKAO2 : 	9.97D-11*0.647 	;
+{8208.} 	 LIMKET + OH = LMKBO2 : 	9.97D-11*0.353 	;
+{8209.} 	 C141CO3 + HO2 = C141CO2H + O3 : 	KAPHO2*0.15 	;
+{8210.} 	 C141CO3 + HO2 = C141CO3H : 	KAPHO2*0.41 	;
+{8211.} 	 C141CO3 + HO2 = C141O2 + OH : 	KAPHO2*0.44 	;
+{8212.} 	 C141CO3 + NO = C141O2 + NO2 : 	KAPNO 	;
+{8213.} 	 C141CO3 + NO2 = C141PAN : 	KFPAN 	;
+{8214.} 	 C141CO3 + NO3 = C141O2 + NO2 : 	KRO2NO3*1.74 	;
+{8215.} 	 C141CO3 = C141CO2H : 	1.00D-11*RO2*0.3 	;
+{8216.} 	 C141CO3 = C141O2 : 	1.00D-11*RO2*0.7 	;
+{8217.} 	 NBCALO2 + HO2 = NBCALOOH : 	KRO2HO2*0.975 	;
+{8218.} 	 NBCALO2 + NO = NBCALO + NO2 : 	KRO2NO 	;
+{8219.} 	 NBCALO2 + NO3 = NBCALO + NO2 : 	KRO2NO3 	;
+{8220.} 	 NBCALO2 = NBCALO : 	9.20D-14*RO2*0.7 	;
+{8221.} 	 NBCALO2 = NBCALOH : 	9.20D-14*RO2*0.3 	;
+{8222.} 	 BCALOOA = BCALOO : 	KDEC*0.5 	;
+{8223.} 	 BCALOOA = C146O2 + OH : 	KDEC*0.5 	;
+{8224.} 	 BCLKET + NO3 = C131CO3 + HNO3 : 	KNO3AL*8.5 	;
+{8225.} 	 BCLKET + OH = BCLKAO2 : 	3.79D-11*0.032 	;
+{8226.} 	 BCLKET + OH = BCLKBO2 : 	3.79D-11*0.004 	;
+{8227.} 	 BCLKET + OH = BCLKCO2 : 	3.79D-11*0.100 	;
+{8228.} 	 BCLKET + OH = C131CO3 : 	3.79D-11*0.764 	;
+{8229.} 	 BCLKET + OH = C146O2 : 	3.79D-11*0.100 	;
+{8230.} 	 BCLKET = C131O2 + CO + HO2 : 	J(15) 	;
+{8231.} 	 BCALO2 + HO2 = BCALOOH : 	KRO2HO2*0.975 	;
+{8232.} 	 BCALO2 + NO = BCALNO3 : 	KRO2NO*0.068 	;
+{8233.} 	 BCALO2 + NO = BCALO + NO2 : 	KRO2NO*0.932 	;
+{8234.} 	 BCALO2 + NO3 = BCALO + NO2 : 	KRO2NO3 	;
+{8235.} 	 BCALO2 = BCALO : 	9.20D-14*RO2*0.7 	;
+{8236.} 	 BCALO2 = BCALOH : 	9.20D-14*RO2*0.3 	;
+{8237.} 	 BCKSOZ + OH = C131O2 : 	3.65D-11 	;
+{8238.} 	 BCKSZOO + CO = BCKSOZ : 	1.20D-15 	;
+{8239.} 	 BCKSZOO + NO = BCKSOZ + NO2 : 	1.00D-14 	;
+{8240.} 	 BCKSZOO + NO2 = BCKSOZ + NO3 : 	1.00D-15 	;
+{8241.} 	 BCKSZOO + SO2 = BCKSOZ + SO3 : 	7.00D-14 	;
+{8242.} 	 BCKSZOO = BCKSOZ + H2O2 : 	1.40D-17*H2O 	;
+{8243.} 	 BCSOZO2 + HO2 = BCSOZOOH : 	KRO2HO2*0.975 	;
+{8244.} 	 BCSOZO2 + NO = BCSOZNO3 : 	KRO2NO*0.247 	;
+{8245.} 	 BCSOZO2 + NO = BCSOZO : 	KRO2NO*0.753 	;
+{8246.} 	 BCSOZO2 + NO3 = BCSOZO : 	KRO2NO3 	;
+{8247.} 	 BCSOZO2 = BCSOZO : 	9.20D-14*RO2*0.7 	;
+{8248.} 	 BCSOZO2 = BCSOZOH : 	9.20D-14*RO2*0.3 	;
+{8249.} 	 C131CO2H + OH = C147O2 : 	1.21D-11 	;
+{8250.} 	 C141OOA = C141OO : 	KDEC*0.5 	;
+{8251.} 	 C141OOA = C147O2 + OH : 	KDEC*0.5 	;
+{8252.} 	 C151O2 + HO2 = C151OOH : 	KRO2HO2*0.975 	;
+{8253.} 	 C151O2 + NO = C151NO3 : 	KRO2NO*0.136 	;
+{8254.} 	 C151O2 + NO = C151O + NO2 : 	KRO2NO*0.864 	;
+{8255.} 	 C151O2 + NO3 = C151O + NO2 : 	KRO2NO3 	;
+{8256.} 	 C151O2 = C151O : 	9.20D-14*RO2*0.7 	;
+{8257.} 	 C151O2 = C151OH : 	9.20D-14*RO2*0.3 	;
+{8258.} 	 BCALAOOH + OH = BCALACO + OH : 	1.06D-10 	;
+{8259.} 	 BCALAOOH = BCALAO + OH : 	J(41) 	;
+{8260.} 	 BCALAOOH = C126CHO + OH + CH3CO3 : 	J(22) 	;
+{8261.} 	 BCALAO = C126CHO + CH3CO3 : 	KDEC 	;
+{8262.} 	 BCALACO + OH = C126CHO + CH3CO3 : 	8.34D-11 	;
+{8263.} 	 BCALACO = C126CO3 + CH3CO3 : 	J(35) 	;
+{8264.} 	 BCALAOH + OH = BCALACO + HO2 : 	9.34D-11 	;
+{8265.} 	 BCALAOH = C126CHO + CH3CO3 + HO2 : 	J(22) 	;
+{8266.} 	 BCALBOOH + OH = BCALBCO + OH : 	9.73D-11 	;
+{8267.} 	 BCALBOOH = BCALBO + OH : 	J(41) 	;
+{8268.} 	 BCALBOOH = C136CO3 + HCHO + OH : 	J(22) 	;
+{8269.} 	 BCALBO = C136CO3 + HCHO : 	KDEC 	;
+{8270.} 	 BCALBCO + OH = C136CO3 + CO : 	1.01D-10 	;
+{8271.} 	 BCALBCO = C136CO3 + CO + HO2 : 	J(34) 	;
+{8272.} 	 BCALBOH + OH = BCALBCO + HO2 : 	9.04D-11 	;
+{8273.} 	 BCALBOH = C136CO3 + HCHO + HO2 : 	J(22) 	;
+{8274.} 	 BCBOOA = BCBOCOO : 	KDEC*0.5 	;
+{8275.} 	 BCBOOA = C148O2 + OH : 	KDEC*0.5 	;
+{8276.} 	 BCLKBOC + OH = C148O2 : 	3.78D-11 	;
+{8277.} 	 C152O2 + HO2 = C152OOH : 	KRO2HO2*0.975 	;
+{8278.} 	 C152O2 + NO = C152NO3 : 	KRO2NO*0.136 	;
+{8279.} 	 C152O2 + NO = C152O + NO2 : 	KRO2NO*0.864 	;
+{8280.} 	 C152O2 + NO3 = C152O + NO2 : 	KRO2NO3 	;
+{8281.} 	 C152O2 = C152O : 	9.20D-14*RO2*0.7 	;
+{8282.} 	 C152O2 = C152OH : 	9.20D-14*RO2*0.3 	;
+{8283.} 	 C136OOH + OH = C126CHO + OH : 	9.71D-11 	;
+{8284.} 	 C136OOH = C136O + OH : 	J(41) 	;
+{8285.} 	 C136NO3 + OH = C126CHO + NO2 : 	8.31D-11 	;
+{8286.} 	 C136NO3 = C136O + NO2 : 	J(53) 	;
+{8287.} 	 C136O = C1311O2 : 	KDEC 	;
+{8288.} 	 C126CHO + NO3 = C126CO3 + HNO3 : 	KNO3AL*17 	;
+{8289.} 	 C126CHO + NO3 = NC1313O2 : 	3.30D-13 	;
+{8290.} 	 C126CHO + O3 = C116CHO + CH2OOF : 	1.10D-16*0.330 	;
+{8291.} 	 C126CHO + O3 = C126OOA + HCHO : 	1.10D-16*0.670 	;
+{8292.} 	 C126CHO + OH = C126CO3 : 	1.10D-10*0.447 	;
+{8293.} 	 C126CHO + OH = C1313O2 : 	1.10D-10*0.553 	;
+{8294.} 	 C126CHO = C126O2 + CO + HO2 : 	J(15)*2 	;
+{8295.} 	 C136OH + OH = C126CHO + HO2 : 	8.80D-11 	;
+{8296.} 	 BCALCOOH + OH = BCALCCO + OH : 	1.02D-10 	;
+{8297.} 	 BCALCOOH = BCALCO + OH : 	J(41) 	;
+{8298.} 	 BCALCOOH = C141CO + OH + CO + HO2 : 	J(15) 	;
+{8299.} 	 BCALCO = C141CO + CO + HO2 : 	KDEC 	;
+{8300.} 	 BCALCCO + OH = C144O2 + CO : 	7.59D-11 	;
+{8301.} 	 BCALCCO = C144O2 + CO + HO2 : 	J(34) 	;
+{8302.} 	 BCALCOH + OH = BCALCCO + HO2 : 	9.02D-11 	;
+{8303.} 	 BCALCOH = C141CO + HO2 + CO + HO2 : 	J(15) 	;
+{8304.} 	 C141OOH + OH = C141CO + OH : 	7.39D-11 	;
+{8305.} 	 C141OOH = C141O + OH : 	J(41) 	;
+{8306.} 	 C141NO3 + OH = C141CO + NO2 : 	5.82D-11 	;
+{8307.} 	 C141NO3 = C141O + NO2 : 	J(53) 	;
+{8308.} 	 C141O = C142O2 : 	KDEC 	;
+{8309.} 	 C141CO + OH = C144O2 : 	8.00D-11 	;
+{8310.} 	 C141CO = C144O + HO2 : 	J(15) 	;
+{8311.} 	 C141OH + OH = C141CO + HO2 : 	6.91D-11 	;
+{8312.} 	 BCKET + NO3 = NBCKO2 : 	9.40D-12 	;
+{8313.} 	 BCKET + O3 = BCKAOO : 	1.16D-14*0.435 	;
+{8314.} 	 BCKET + O3 = BCKBOO : 	1.16D-14*0.435 	;
+{8315.} 	 BCKET + O3 = BCKOOA : 	1.16D-14*0.100 	;
+{8316.} 	 BCKET + O3 = BCKOOB : 	1.16D-14*0.030 	;
+{8317.} 	 BCKET + OH = BCKAO2 : 	9.95D-11*0.647 	;
+{8318.} 	 BCKET + OH = BCKBO2 : 	9.95D-11*0.353 	;
+{8319.} 	 MMFO2 + HO2 = MMFOOH : 	KRO2HO2*0.520 	;
+{8320.} 	 MMFO2 + NO = MMFNO3 : 	KRO2NO*0.042 	;
+{8321.} 	 MMFO2 + NO = MMFO + NO2 : 	KRO2NO*0.958 	;
+{8322.} 	 MMFO2 + NO3 = MMFO + NO2 : 	KRO2NO3 	;
+{8323.} 	 MMFO2 = MMCF : 	8.80D-13*RO2*0.2 	;
+{8324.} 	 MMFO2 = MMFO : 	8.80D-13*RO2*0.6 	;
+{8325.} 	 MMFO2 = MMFOH : 	8.80D-13*RO2*0.2 	;
+{8326.} 	 MMCFO2 + HO2 = MMCFOOH : 	KRO2HO2*0.520 	;
+{8327.} 	 MMCFO2 + NO = MMCFNO3 : 	KRO2NO*0.017 	;
+{8328.} 	 MMCFO2 + NO = MMCFO + NO2 : 	KRO2NO*0.983 	;
+{8329.} 	 MMCFO2 + NO3 = MMCFO + NO2 : 	KRO2NO3 	;
+{8330.} 	 MMCFO2 = DFC : 	2.00D-12*RO2*0.2 	;
+{8331.} 	 MMCFO2 = MMCFO : 	2.00D-12*RO2*0.6 	;
+{8332.} 	 MMCFO2 = MMCFOH : 	2.00D-12*RO2*0.2 	;
+{8333.} 	 CH3S + NO2 = CH3SO + NO : 	6.00D-11*EXP(240/TEMP) 	;
+{8334.} 	 CH3S + O3 = CH3SO : 	1.15D-12*EXP(430/TEMP) 	;
+{8335.} 	 CH3S = CH3SOO : 	1.20D-16*EXP(1580/TEMP)*O2 	;
+{8336.} 	 DMSO2O2 + HO2 = DMSO2OOH : 	KRO2HO2*0.387 	;
+{8337.} 	 DMSO2O2 + NO = DMSO2O + NO2 : 	KRO2NO 	;
+{8338.} 	 DMSO2O2 + NO3 = DMSO2O + NO2 : 	KRO2NO3 	;
+{8339.} 	 DMSO2O2 = CH3SO2CHO : 	2.00D-12*RO2*0.2 	;
+{8340.} 	 DMSO2O2 = DMSO2O : 	2.00D-12*RO2*0.6 	;
+{8341.} 	 DMSO2O2 = DMSO2OH : 	2.00D-12*RO2*0.2 	;
+{8342.} 	 MSIA + OH = CH3O2 + SO2 : 	9.00D-11 	;
+{8343.} 	 OH + HOC2H4CO2H = HOCH2CH2O2 : 	1.39D-11 	;
+{8344.} 	 HOC2H4CO3H = HOCH2CH2O2 + OH : 	J(41) 	;
+{8345.} 	 OH + HOC2H4CO3H = HOC2H4CO3 : 	1.73D-11 	;
+{8346.} 	 C3PAN1 = HOC2H4CO3 + NO2 : 	KBPAN 	;
+{8347.} 	 OH + C3PAN1 = HOCH2CHO + CO + NO2 : 	4.51D-12 	;
+{8348.} 	 OH + HOIPRCO2H = HYPROPO2 : 	1.46D-11 	;
+{8349.} 	 HOIPRCO3H = HYPROPO2 + OH : 	J(41) 	;
+{8350.} 	 OH + HOIPRCO3H = HOIPRCO3 : 	1.82D-11 	;
+{8351.} 	 C4PAN4 = HOIPRCO3 + NO2 : 	KBPAN 	;
+{8352.} 	 OH + C4PAN4 = ACETOL + CO + NO2 : 	1.45D-11 	;
+{8353.} 	 HO13C5OOH = HO13C5O + OH : 	J(41) 	;
+{8354.} 	 OH + HO13C5OOH = HO13CO4C5 + OH : 	3.98D-11 	;
+{8355.} 	 HO13C5NO3 = HO13C5O + NO2 : 	J(53) 	;
+{8356.} 	 OH + HO13C5NO3 = HO13CO4C5 + NO2 : 	7.51D-12 	;
+{8357.} 	 HO13C5O = HOC2H4CHO + CH3CHO + HO2 : 	2.00D+14*EXP(-4714/TEMP) 	;
+{8358.} 	 OH + HO134C5 = HO13CO4C5 + HO2 : 	2.46D-11 	;
+{8359.} 	 HO13CO4C5 = CH3CO3 + HOC2H4CHO + HO2 : 	J(22) 	;
+{8360.} 	 OH + HO13CO4C5 = HO1CO34C5 + HO2 : 	1.51D-11 	;
+{8361.} 	 HO3C4CO3H = HO3C4O2 + OH : 	J(41) 	;
+{8362.} 	 OH + HO3C4CO3H = HO3C4CO3 : 	3.84D-11 	;
+{8363.} 	 C5PAN8 = HO3C4CO3 + NO2 : 	KBPAN 	;
+{8364.} 	 OH + C5PAN8 = HO3C3CHO + CO + NO2 : 	1.20D-11 	;
+{8365.} 	 C54OOH = C54O + OH : 	J(41) 	;
+{8366.} 	 OH + C54OOH = C54O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{8367.} 	 OH + C54OOH = H13C43CHO + OH : 	1.54D-11 	;
+{8368.} 	 OH + C54NO3 = H13C43CHO + NO2 : 	5.93D-12 	;
+{8369.} 	 C54O = CO2C5OH + HO2 : 	2.00D+14*EXP(-4909/TEMP) 	;
+{8370.} 	 OH + C54OH = H13C43CHO + HO2 : 	9.90D-12 	;
+{8371.} 	 H13C43CHO = MEKAOH + HO2 + HO2 + CO : 	J(17) 	;
+{8372.} 	 NO3 + H13C43CHO = H13C43CO3 + HNO3 : 	KNO3AL*8.5 	;
+{8373.} 	 OH + H13C43CHO = H13C43CO3 : 	3.00D-11 	;
+{8374.} 	 H2M2C3CO3H = TBUTOLO2 + OH : 	J(41) 	;
+{8375.} 	 OH + H2M2C3CO3H = H2M2C3CO3 : 	4.83D-12 	;
+{8376.} 	 C5PAN11 = H2M2C3CO3 + NO2 : 	KBPAN 	;
+{8377.} 	 OH + C5PAN11 = IBUTALOH + CO + NO2 : 	1.23D-12 	;
+{8378.} 	 PROL1MCO3H + OH = PROL1MCO3 : 	8.08D-12 	;
+{8379.} 	 PROL1MCO3H = MEK + HO2 + OH : 	J(41) 	;
+{8380.} 	 PROL1MPAN + OH = MEK + CO + NO2 : 	1.62D-12 	;
+{8381.} 	 PROL1MPAN = PROL1MCO3 + NO2 : 	KBPAN 	;
+{8382.} 	 C56OOH = C56O + OH : 	J(41) 	;
+{8383.} 	 OH + C56OOH = C42CHO + OH : 	2.72D-11 	;
+{8384.} 	 OH + C56OOH = C56O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{8385.} 	 OH + C56NO3 = C42CHO + NO2 : 	5.22D-12 	;
+{8386.} 	 C56O = HOIPRCHO + HCHO + HO2 : 	2.00D+14*EXP(-5489/TEMP) 	;
+{8387.} 	 C42CHO = HOIPRCHO + HO2 + HO2 + CO : 	J(15) 	;
+{8388.} 	 NO3 + C42CHO = C42CO3 + HNO3 : 	KNO3AL*8.5 	;
+{8389.} 	 OH + C42CHO = C42CO3 : 	4.08D-11 	;
+{8390.} 	 OH + C56OH = C42CHO + HO2 : 	2.17D-11 	;
+{8391.} 	 OH + HO2C43CO2H = BUT2OLO2 : 	2.93D-11 	;
+{8392.} 	 HO2C43CO3H = BUT2OLO2 + OH : 	J(41) 	;
+{8393.} 	 OH + HO2C43CO3H = HO2C43CO3 : 	3.27D-11 	;
+{8394.} 	 C5PAN14 = HO2C43CO3 + NO2 : 	KBPAN 	;
+{8395.} 	 OH + C5PAN14 = BUT2OLO + CO + NO2 : 	9.54D-12 	;
+{8396.} 	 CHOC4CO3 + HO2 = CHOC4CO3H : 	KAPHO2*0.56 	;
+{8397.} 	 CHOC4CO3 + HO2 = CHOC4O2 + OH : 	KAPHO2*0.44 	;
+{8398.} 	 CHOC4CO3 + NO = CHOC4O2 + NO2 : 	KAPNO 	;
+{8399.} 	 CHOC4CO3 + NO2 = CHOC4PAN : 	KFPAN 	;
+{8400.} 	 CHOC4CO3 + NO3 = CHOC4O2 + NO2 : 	KRO2NO3 	;
+{8401.} 	 CHOC4CO3 = CHOC4O2 : 	1.00D-11*RO2 	;
+{8402.} 	 C6DIALO2 + HO2 = C6DIALOOH : 	KRO2HO2*0.770 	;
+{8403.} 	 C6DIALO2 + NO = C6DIALO + NO2 : 	KRO2NO 	;
+{8404.} 	 C6DIALO2 + NO3 = C6DIALO + NO2 : 	KRO2NO3 	;
+{8405.} 	 C6DIALO2 = C6CODIAL : 	2.50D-13*0.2*RO2 	;
+{8406.} 	 C6DIALO2 = C6DIALO : 	2.50D-13*0.6*RO2 	;
+{8407.} 	 C6DIALO2 = C6DIALOH : 	2.50D-13*0.2*RO2 	;
+{8408.} 	 CHOC4O2 + HO2 = CHOC4OOH : 	KRO2HO2*0.706 	;
+{8409.} 	 CHOC4O2 + NO = CHOC4O + NO2 : 	KRO2NO 	;
+{8410.} 	 CHOC4O2 + NO3 = CHOC4O + NO2 : 	KRO2NO3 	;
+{8411.} 	 CHOC4O2 = CHOC4O : 	1.30D-12*RO2 	;
+{8412.} 	 CYC6DIONO2 + HO2 = CY6DIONOOH : 	KRO2HO2*0.770 	;
+{8413.} 	 CYC6DIONO2 + NO = CYC6DIONO + NO2 : 	KRO2NO 	;
+{8414.} 	 CYC6DIONO2 + NO3 = CYC6DIONO + NO2 : 	KRO2NO3 	;
+{8415.} 	 CYC6DIONO2 = CYC6DIONO : 	2.50D-13*RO2 	;
+{8416.} 	 MBKCOOHOOH + OH = MIBKCOOHO2 : 	3.50D-11 	;
+{8417.} 	 MBKCOOHOOH = MIBKCOOHO + OH : 	J(41)+J(35) 	;
+{8418.} 	 MIBKCOOHO = C5CO234 + HCHO + HO2 : 	KDEC 	;
+{8419.} 	 NC4OHCO3H + OH = NC4OHCO3 : 	4.50D-12 	;
+{8420.} 	 NC4OHCO3H = IBUTALOH + NO2 + OH : 	J(41) 	;
+{8421.} 	 NC4OHCPAN + OH = IBUTALOH + CO + NO2 + NO2 : 	1.27D-12 	;
+{8422.} 	 NC4OHCPAN = NC4OHCO3 + NO2 : 	KBPAN 	;
+{8423.} 	 C4OH2CO3H + OH = C4OH2CO3 : 	1.05D-11 	;
+{8424.} 	 C4OH2CO3H = IBUTALOH + HO2 + OH : 	J(41) 	;
+{8425.} 	 C4OH2CPAN + OH = IBUTALOH + CO + NO2 : 	7.24D-12 	;
+{8426.} 	 C4OH2CPAN = C4OH2CO3 + NO2 : 	KBPAN 	;
+{8427.} 	 CO2C3CO3H + OH = CO2C3CO3 : 	4.18D-12 	;
+{8428.} 	 CO2C3CO3H = CH3COCH2O2 + OH : 	J(41)+J(22) 	;
+{8429.} 	 CO2C3PAN + OH = MGLYOX + CO + NO2 : 	5.93D-13 	;
+{8430.} 	 CO2C3PAN = CO2C3CO3 + NO2 : 	KBPAN 	;
+{8431.} 	 OH + HO2C3CO2H = IPROPOLO2 : 	2.78D-11 	;
+{8432.} 	 HO2C3CO3H = IPROPOLO2 + OH : 	J(41) 	;
+{8433.} 	 OH + HO2C3CO3H = HO2C3CO3 : 	3.12D-11 	;
+{8434.} 	 C4PAN3 = HO2C3CO3 + NO2 : 	KBPAN 	;
+{8435.} 	 OH + C4PAN3 = CH3CHOHCHO + CO + NO2 : 	9.00D-12 	;
+{8436.} 	 PRPAL2CO2H + OH = PROPALO2 : 	7.29D-11 	;
+{8437.} 	 PRPAL2CO2H = PROPALO2 + HO2 : 	J(17) 	;
+{8438.} 	 PRPAL2CO3H + OH = IBUDIALCO3 : 	7.65D-11 	;
+{8439.} 	 PRPAL2CO3H = PROPALO2 + OH : 	J(41)+J(17) 	;
+{8440.} 	 IBUDIALPAN + OH = MGLYOX + CO + NO2 : 	7.29D-11 	;
+{8441.} 	 IBUDIALPAN = IBUDIALCO3 + NO2 : 	KBPAN 	;
+{8442.} 	 PROPALOOH + OH = MGLYOX + OH : 	4.31D-11 	;
+{8443.} 	 PROPALOOH = HO2 + CO + CH3CHO + OH : 	J(15) 	;
+{8444.} 	 PROPALOOH = PROPALO + OH : 	J(41) 	;
+{8445.} 	 CO3C4CO2H = MEKCO2 + HO2 : 	J(22) 	;
+{8446.} 	 OH + CO3C4CO2H = MEKCO2 : 	1.90D-12 	;
+{8447.} 	 CO3C4CO3H = MEKCO2 + OH : 	J(41)+J(22) 	;
+{8448.} 	 OH + CO3C4CO3H = CO3C4CO3 : 	5.36D-12 	;
+{8449.} 	 C5PAN16 = CO3C4CO3 + NO2 : 	KBPAN 	;
+{8450.} 	 OH + C5PAN16 = EGLYOX + CO + NO2 : 	1.44D-12 	;
+{8451.} 	 HO1C4OOH = HO1C4O + OH : 	J(41) 	;
+{8452.} 	 OH + HO1C4OOH = HO1C4O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{8453.} 	 OH + HO1C4OOH = HOC3H6CHO + OH : 	1.66D-11 	;
+{8454.} 	 HO1C4NO3 = HO1C4O + NO2 : 	J(53) 	;
+{8455.} 	 OH + HO1C4NO3 = HOC3H6CHO + NO2 : 	5.85D-12 	;
+{8456.} 	 HO1C4O = HOC3H6CHO + HO2 : 	8.74D+11*EXP(-3430/TEMP) 	;
+{8457.} 	 HOC3H6CHO = HO1C3O2 + HO2 + CO : 	J(15) 	;
+{8458.} 	 NO3 + HOC3H6CHO = HOC3H6CO3 + HNO3 : 	KNO3AL*4.0 	;
+{8459.} 	 OH + HOC3H6CHO = HOC3H6CO3 : 	2.64D-11 	;
+{8460.} 	 OH + HOC4H8OH = HOC3H6CHO + HO2 : 	1.11D-11 	;
+{8461.} 	 A2PANO = HOCH2CHO + HO2 : 	KDEC 	;
+{8462.} 	 C2OHOCO2H + OH = C3DIOLO2 : 	1.867E-11 	;
+{8463.} 	 C2OHOCOOH + OH = A2PANOO : 	1.513E-11 	;
+{8464.} 	 C2OHOCOOH = C3DIOLO2 : 	J(41) 	;
+{8465.} 	 A2PAN + OH = HOCH2CHO + CO + NO2 : 	1.865E-11 	;
+{8466.} 	 A2PAN = A2PANOO + NO2 : 	KBPAN 	;
+{8467.} 	 HCOCOHCO3H + OH = HCOCOHCO3 : 	7.33D-11 	;
+{8468.} 	 HCOCOHCO3H = GLYOX + HO2 + OH : 	J(41) 	;
+{8469.} 	 HCOCOHPAN + OH = GLYOX + CO + NO2 : 	6.97D-11 	;
+{8470.} 	 HCOCOHPAN = HCOCOHCO3 + NO2 : 	KBPAN 	;
+{8471.} 	 CHOMOHCO3H + OH = CHOMOHCO3 : 	6.99D-11 	;
+{8472.} 	 CHOMOHCO3H = MGLYOX + OH + HO2 : 	J(41)+J(17) 	;
+{8473.} 	 CHOMOHPAN + OH = MGLYOX + CO + NO2 : 	6.64D-11 	;
+{8474.} 	 CHOMOHPAN = CHOMOHCO3 + NO2 : 	KBPAN 	;
+{8475.} 	 CO2H3CO3H = CH3CO3 + HO2 + HCOCO3H : 	J(22) 	;
+{8476.} 	 CO2H3CO3H = MGLYOX + HO2 + OH : 	J(41) 	;
+{8477.} 	 OH + CO2H3CO3H = CO2H3CO3 : 	7.34D-12 	;
+{8478.} 	 C4PAN6 = CO2H3CO3 + NO2 : 	KBPAN 	;
+{8479.} 	 OH + C4PAN6 = MGLYOX + CO + NO2 : 	3.74D-12 	;
+{8480.} 	 HO1C5OOH = HO1C5O + OH : 	J(41) 	;
+{8481.} 	 OH + HO1C5OOH = CO2C5OH + OH : 	3.08D-11 	;
+{8482.} 	 HO1C5NO3 = HO1C5O + NO2 : 	J(53) 	;
+{8483.} 	 OH + HO1C5NO3 = CO2C5OH + NO2 : 	5.93D-12 	;
+{8484.} 	 HO1C5O = HO2C4CHO + HO2 : 	8.74D+11*EXP(-3430/TEMP) 	;
+{8485.} 	 CO2C5OH = CH3CO3 + HO1C3O2 : 	J(22) 	;
+{8486.} 	 OH + CO2C5OH = C51O2 : 	9.70D-12*0.517 	;
+{8487.} 	 OH + CO2C5OH = CO2C4CHO + HO2 : 	9.60D-12*0.483 	;
+{8488.} 	 OH + HO2C5OH = CO2C5OH + HO2 : 	1.54D-11 	;
+{8489.} 	 HO2C5OOH = HO2C5O + OH : 	J(41) 	;
+{8490.} 	 OH + HO2C5OOH = HO2C4CHO + OH : 	2.09D-11 	;
+{8491.} 	 OH + HO2C5OOH = HO2C5O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{8492.} 	 HO2C5NO3 = HO2C5O + NO2 : 	J(54) 	;
+{8493.} 	 OH + HO2C5NO3 = HO2C4CHO + NO2 : 	1.03D-11 	;
+{8494.} 	 HO2C5O = CO2C5OH + HO2 : 	4.37D+11*EXP(-2945/TEMP) 	;
+{8495.} 	 HO2C4CHO = HO2C4O2 + HO2 + CO : 	J(15) 	;
+{8496.} 	 NO3 + HO2C4CHO = HO2C4CO3 + HNO3 : 	KNO3AL*5.5 	;
+{8497.} 	 OH + HO2C4CHO = HO2C4CO3 : 	3.09D-11 	;
+{8498.} 	 C52OOH = C52O + OH : 	J(41) 	;
+{8499.} 	 OH + C52OOH = C52O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{8500.} 	 OH + C52OOH = HOIBUTCHO + OH : 	1.81D-11 	;
+{8501.} 	 C52NO3 = C52O + NO2 : 	J(53) 	;
+{8502.} 	 OH + C52NO3 = HOIBUTCHO + NO2 : 	6.00D-12 	;
+{8503.} 	 C52O = HOBUT2CHO + HO2 : 	8.74D+11*EXP(-3430/TEMP) 	;
+{8504.} 	 OH + C52OH = HOBUT2CHO + HO2 : 	1.26D-11*0.5 	;
+{8505.} 	 OH + C52OH = HOIBUTCHO + HO2 : 	1.26D-11*0.5 	;
+{8506.} 	 HOIBUTCHO = IBUTOLCO2 + HO2 + CO : 	J(15) 	;
+{8507.} 	 NO3 + HOIBUTCHO = HOIBUTCO3 + HNO3 : 	KNO3AL*8.5 	;
+{8508.} 	 OH + HOIBUTCHO = HOIBUTCO3 : 	3.51D-11 	;
+{8509.} 	 OH + TBUTCO3H = TBUTCO3 : 	5.19D-12 	;
+{8510.} 	 TBUTCO3H = TC4H9O2 + OH : 	J(41) 	;
+{8511.} 	 C5PAN6 = TBUTCO3 + NO2 : 	KBPAN 	;
+{8512.} 	 OH + C5PAN6 = CH3COCH3 + HCHO + CO + NO2 : 	5.02D-13 	;
+{8513.} 	 HO1C6OOH = HO1C6O + OH : 	J(41) 	;
+{8514.} 	 OH + HO1C6OOH = HO1CO4C6 + OH : 	3.68D-11 	;
+{8515.} 	 HO1C6NO3 = HO1C6O + NO2 : 	J(54) 	;
+{8516.} 	 OH + HO1C6NO3 = HO1CO4C6 + NO2 : 	6.28D-12 	;
+{8517.} 	 HO1C6O = HO3C5CHO + HO2 : 	8.74D+11*EXP(-3430/TEMP) 	;
+{8518.} 	 OH + HO14C6 = HO1CO4C6 + HO2 : 	1.87D-11 	;
+{8519.} 	 HO1CO4C6 = C2H5CO3 + HO1C3O2 : 	J(22)*0.5 	;
+{8520.} 	 HO1CO4C6 = C2H5O2 + HOC3H6CO3 : 	J(22)*0.5 	;
+{8521.} 	 OH + HO1CO4C6 = C63O2 : 	1.07D-11*0.527 	;
+{8522.} 	 OH + HO1CO4C6 = CO3C5CHO + HO2 : 	1.07D-11*0.473 	;
+{8523.} 	 C5H11CO3H = PEAO2 + OH : 	J(41) 	;
+{8524.} 	 OH + C5H11CO3H = C5H11CO3 : 	1.16D-11 	;
+{8525.} 	 OH + PHXN = C4H9CHO + CO + NO2 : 	5.00D-12 	;
+{8526.} 	 PHXN = C5H11CO3 + NO2 : 	KBPAN 	;
+{8527.} 	 HO2C6OOH = HO2C6O + OH : 	J(41) 	;
+{8528.} 	 OH + HO2C6OOH = HO2CO5C6 + OH : 	3.53D-11 	;
+{8529.} 	 HO2C6NO3 = HO2C6O + NO2 : 	J(54) 	;
+{8530.} 	 OH + HO2C6NO3 = HO2CO5C6 + NO2 : 	1.03D-11 	;
+{8531.} 	 HO2C6O = HO2CO5C6 + HO2 : 	4.37D+11*EXP(-2945/TEMP) 	;
+{8532.} 	 OH + HO25C6 = HO2CO5C6 + HO2 : 	2.01D-11 	;
+{8533.} 	 HO3C6OOH = HO3C6O + OH : 	J(41) 	;
+{8534.} 	 OH + HO3C6OOH = HO3C5CHO + OH : 	2.42D-11 	;
+{8535.} 	 OH + HO3C6OOH = HO3C6O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{8536.} 	 HO3C6NO3 = HO3C6O + NO2 : 	J(54) 	;
+{8537.} 	 OH + HO3C6NO3 = HO3C5CHO + NO2 : 	1.34D-11 	;
+{8538.} 	 HO3C6O = HO1CO4C6 + HO2 : 	5.55D+11*EXP(-2945/TEMP) 	;
+{8539.} 	 HO3C5CHO = HO3C5O2 + HO2 + CO : 	J(15) 	;
+{8540.} 	 NO3 + HO3C5CHO = HO3C5CO3 + HNO3 : 	KNO3AL*5.5 	;
+{8541.} 	 OH + HO3C5CHO = CO3C5CHO + HO2 : 	3.78D-11*0.331 	;
+{8542.} 	 OH + HO3C5CHO = HO3C5CO3 : 	3.78D-11*0.669 	;
+{8543.} 	 HO1MC5OOH = HO1MC5O + OH : 	J(41) 	;
+{8544.} 	 OH + HO1MC5OOH = CO2MC5OH + OH : 	3.23D-11 	;
+{8545.} 	 HO1MC5NO3 = HO1MC5O + NO2 : 	J(54) 	;
+{8546.} 	 OH + HO1MC5NO3 = CO2MC5OH + NO2 : 	7.62D-12 	;
+{8547.} 	 HO1MC5O = HO2C54CHO + HO2 : 	8.74D+11*EXP(-3430/TEMP) 	;
+{8548.} 	 CO2MC5OH = CH3CO3 + IBUTOLCO2 : 	J(22) 	;
+{8549.} 	 OH + CO2MC5OH = C64O2 : 	1.46D-11*0.698 	;
+{8550.} 	 OH + CO2MC5OH = CO2C54CHO + HO2 : 	1.46D-11*0.302 	;
+{8551.} 	 OH + HO14MC5 = CO2MC5OH : 	1.72D-11 	;
+{8552.} 	 C54CO3H = PEBO2 + OH : 	J(41) 	;
+{8553.} 	 OH + C54CO3H = C54CO3 : 	1.21D-11 	;
+{8554.} 	 C6PAN3 = C54CO3 + NO2 : 	KBPAN 	;
+{8555.} 	 OH + C6PAN3 = MPRK + CO + NO2 : 	3.61D-12 	;
+{8556.} 	 HO2MC5OOH = HO2MC5O + OH : 	J(41) 	;
+{8557.} 	 OH + HO2MC5OOH = HO2C54CHO + OH : 	2.28D-11 	;
+{8558.} 	 OH + HO2MC5OOH = HO2MC5O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{8559.} 	 HO2MC5NO3 = HO2MC5O + NO2 : 	J(53) 	;
+{8560.} 	 OH + HO2MC5NO3 = HO2C54CHO + NO2 : 	1.06D-11 	;
+{8561.} 	 HO2MC5O = CO2MC5OH + HO2 : 	4.37D+11*EXP(-2945/TEMP) 	;
+{8562.} 	 HO2C54CHO = HO2C54O2 + HO2 + CO : 	J(17) 	;
+{8563.} 	 NO3 + HO2C54CHO = HO2C54CO3 + HNO3 : 	KNO3AL*8.5 	;
+{8564.} 	 OH + HO2C54CHO = CO2C54CHO + HO2 : 	3.61D-11*0.287 	;
+{8565.} 	 OH + HO2C54CHO = HO2C54CO3 : 	3.61D-11*0.713 	;
+{8566.} 	 EIPKAOOH = C2H5CO3 + CH3COCH3 + OH : 	J(22) 	;
+{8567.} 	 EIPKAOOH = EIPKAO + OH : 	J(41) 	;
+{8568.} 	 OH + EIPKAOOH = EIPKAO2 : 	5.89D-12 	;
+{8569.} 	 EIPKAO = CH3COCH3 + C2H5CO3 : 	KDEC 	;
+{8570.} 	 EIPKAOH = C2H5CO3 + CH3COCH3 + HO2 : 	J(22) 	;
+{8571.} 	 OH + EIPKAOH = EIPKAO : 	2.43D-12 	;
+{8572.} 	 EIPKBOOH = EIPKBO + OH : 	J(41)+J(22) 	;
+{8573.} 	 OH + EIPKBOOH = CO3C54CHO + OH : 	3.77D-11 	;
+{8574.} 	 EIPKBNO3 = EIPKBO + NO2 : 	J(53)+J(22) 	;
+{8575.} 	 OH + EIPKBNO3 = CO3C54CHO + NO2 : 	2.20D-12 	;
+{8576.} 	 EIPKBO = C66O2 : 	1.15D+11*EXP(-3430/TEMP) 	;
+{8577.} 	 CO3C54CHO = DIEKAO2 + HO2 + CO : 	J(17) 	;
+{8578.} 	 NO3 + CO3C54CHO = CO3C54CO3 + HNO3 : 	KNO3AL*8.5 	;
+{8579.} 	 OH + CO3C54CHO = CO3C54CO3 : 	6.87D-11 	;
+{8580.} 	 EIPKBOH = C2H5CO3 + HYPROPO2 : 	J(22) 	;
+{8581.} 	 OH + EIPKBOH = CO3C54CHO + HO2 : 	1.64D-11 	;
+{8582.} 	 HO2M2C5OOH = HO2M2C5O + OH : 	J(41) 	;
+{8583.} 	 OH + HO2M2C5OOH = H2M2C4CHO + OH : 	1.30D-11 	;
+{8584.} 	 OH + HO2M2C5OOH = HO2M2C5O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{8585.} 	 HO2M2C5NO3 = HO2M2C5O + NO2 : 	J(53) 	;
+{8586.} 	 OH + HO2M2C5NO3 = H2M2C4CHO + NO2 : 	2.16D-12 	;
+{8587.} 	 HO2M2C5O = H2M2C4CHO + HO2 : 	KROPRIM*O2 	;
+{8588.} 	 H2M2C4CHO = HO2M2C4O2 + HO2 + CO : 	J(15) 	;
+{8589.} 	 NO3 + H2M2C4CHO = H2M2C4CO3 + HNO3 : 	KNO3AL*8.5 	;
+{8590.} 	 OH + H2M2C4CHO = C67O2 : 	2.66D-11*0.177 	;
+{8591.} 	 OH + H2M2C4CHO = H2M2C4CO3 : 	2.66D-11*0.823 	;
+{8592.} 	 OH + HO2M2C5OH = H2M2C4CHO + HO2 : 	7.46D-12 	;
+{8593.} 	 H1MC5OOH = H1MC5O + OH : 	J(41) 	;
+{8594.} 	 OH + H1MC5OOH = CO2M3C5OH + OH : 	3.23D-11 	;
+{8595.} 	 H1MC5NO3 = H1MC5O + NO2 : 	J(54) 	;
+{8596.} 	 OH + H1MC5NO3 = CO2M3C5OH + NO2 : 	6.34D-12 	;
+{8597.} 	 H1MC5O = H2M3C4CHO + HO2 : 	8.74D+11*EXP(-3430/TEMP) 	;
+{8598.} 	 CO2M3C5OH = CH3CO3 + NBUTOLBO2 : 	J(22) 	;
+{8599.} 	 OH + CO2M3C5OH = C610O2 : 	1.11D-11*0.527 	;
+{8600.} 	 OH + CO2M3C5OH = CO2M3C4CHO + HO2 : 	1.11D-11*0.473 	;
+{8601.} 	 OH + HO14M3C5 = CO2M3C5OH : 	1.73D-11 	;
+{8602.} 	 M3C4CO3H = IPEAO2 + OH : 	J(41) 	;
+{8603.} 	 OH + M3C4CO3H = M3C4CO3 : 	1.55D-11 	;
+{8604.} 	 C6PAN10 = M3C4CO3 + NO2 : 	KBPAN 	;
+{8605.} 	 OH + C6PAN10 = BUT2CHO + CO + NO2 : 	5.03D-12 	;
+{8606.} 	 H2MC5OOH = H2MC5O + OH : 	J(41) 	;
+{8607.} 	 OH + H2MC5OOH = H2M3C4CHO + OH : 	2.28D-11 	;
+{8608.} 	 OH + H2MC5OOH = H2MC5O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{8609.} 	 H2MC5NO3 = H2MC5O + NO2 : 	J(54) 	;
+{8610.} 	 OH + H2MC5NO3 = H2M3C4CHO + NO2 : 	1.20D-11 	;
+{8611.} 	 H2MC5O = CO2M3C5OH + HO2 : 	4.37D+11*EXP(-2945/TEMP) 	;
+{8612.} 	 H2M3C4CHO = H2M3C4O2 + HO2 + CO : 	J(15) 	;
+{8613.} 	 NO3 + H2M3C4CHO = H2M3C4CO3 + HNO3 : 	KNO3AL*8.5 	;
+{8614.} 	 OH + H2M3C4CHO = C68O2 : 	3.98D-11*0.287 	;
+{8615.} 	 OH + H2M3C4CHO = H2M3C4CO3 : 	3.98D-11*0.713 	;
+{8616.} 	 M2BKAOOH = M2BKAO + OH : 	J(41)+J(22) 	;
+{8617.} 	 OH + M2BKAOOH = CO24M3C5 + OH : 	6.97D-11 	;
+{8618.} 	 M2BKANO3 = M2BKAO + NO2 : 	J(54)+J(22) 	;
+{8619.} 	 OH + M2BKANO3 = CO24M3C5 + NO2 : 	1.25D-12 	;
+{8620.} 	 M2BKAO = C69O2 : 	1.72D+11*EXP(-4240/TEMP) 	;
+{8621.} 	 M2BKAO = CO24M3C5 + HO2 : 	KROSEC*O2 	;
+{8622.} 	 CO24M3C5 = MEKBO2 + CH3CO3 : 	J(22) 	;
+{8623.} 	 OH + CO24M3C5 = C611O2 : 	1.83D-12 	;
+{8624.} 	 OH + M2BKAOH = CO24M3C5 + HO2 : 	2.92D-11 	;
+{8625.} 	 M2BKBOOH = M2BKBO + OH : 	J(41)+J(22) 	;
+{8626.} 	 OH + M2BKBOOH = M2BKBO2 : 	8.04D-12 	;
+{8627.} 	 M2BKBO = CH3CO3 + MEK : 	KDEC 	;
+{8628.} 	 M2BKBOH = CH3CO3 + MEK + HO2 : 	J(22) 	;
+{8629.} 	 OH + M2BKBOH = M2BKBO : 	4.58D-12 	;
+{8630.} 	 HM33C4OOH = HM33C4O + OH : 	J(41) 	;
+{8631.} 	 OH + HM33C4OOH = HM33C3CHO + OH : 	1.56D-11 	;
+{8632.} 	 OH + HM33C4OOH = HM33C4O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{8633.} 	 HM33C4NO3 = HM33C4O + NO2 : 	J(53) 	;
+{8634.} 	 OH + HM33C4NO3 = HM33C3CHO + NO2 : 	5.95D-12 	;
+{8635.} 	 HM33C4O = HM22C3CHO + HO2 : 	8.74D+11*EXP(-3430/TEMP) 	;
+{8636.} 	 HM33C3CHO = HM33C3O2 + HO2 + CO : 	J(17) 	;
+{8637.} 	 NO3 + HM33C3CHO = HM33C3CO3 + HNO3 : 	KNO3AL*8.5 	;
+{8638.} 	 OH + HM33C3CHO = HM33C3CO3 : 	2.96D-11 	;
+{8639.} 	 OH + HM33C4OH = HM22C3CHO + HO2 : 	1.01D-11*0.5 	;
+{8640.} 	 OH + HM33C4OH = HM33C3CHO + HO2 : 	1.01D-11*0.5 	;
+{8641.} 	 M22C3CO3H = NEOPO2 + OH : 	J(41) 	;
+{8642.} 	 OH + M22C3CO3H = M22C3CO3 : 	4.96D-12 	;
+{8643.} 	 C6PAN17 = M22C3CO3 + NO2 : 	KBPAN 	;
+{8644.} 	 OH + C6PAN17 = TBUTCHO + CO + NO2 : 	8.46D-13 	;
+{8645.} 	 HM22C4OOH = HM22C4O + OH : 	J(41) 	;
+{8646.} 	 OH + HM22C4OOH = HM22C3CHO + OH : 	1.56D-11 	;
+{8647.} 	 OH + HM22C4OOH = HM22C4O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{8648.} 	 HM22C4NO3 = HM22C4O + NO2 : 	J(53) 	;
+{8649.} 	 OH + HM22C4NO3 = HM22C3CHO + NO2 : 	4.77D-12 	;
+{8650.} 	 HM22C4O = HM33C3CHO + HO2 : 	8.74D+11*EXP(-3430/TEMP) 	;
+{8651.} 	 HM22C3CHO = HM22C3O2 + HO2 + CO : 	J(15) 	;
+{8652.} 	 NO3 + HM22C3CHO = HM22C3CO3 + HNO3 : 	KNO3AL*8.5 	;
+{8653.} 	 OH + HM22C3CHO = HM22C3CO3 : 	2.60D-11 	;
+{8654.} 	 OH + M33C3CO2H = IPECO2 : 	4.87D-12 	;
+{8655.} 	 M33C3CO3H = IPECO2 + OH : 	J(41) 	;
+{8656.} 	 OH + M33C3CO3H = M33C3CO3 : 	8.47D-12 	;
+{8657.} 	 C6PAN15 = M33C3CO3 + NO2 : 	KBPAN 	;
+{8658.} 	 OH + C6PAN15 = MEK + HCHO + CO + NO2 : 	1.65D-12 	;
+{8659.} 	 HM23C4OOH = HM23C4O + OH : 	J(41) 	;
+{8660.} 	 OH + HM23C4OOH = HM23C4O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{8661.} 	 OH + HM23C4OOH = HM2C43CHO + OH : 	1.95D-11 	;
+{8662.} 	 HM23C4NO3 = HM23C4O + NO2 : 	J(53) 	;
+{8663.} 	 OH + HM23C4NO3 = HM2C43CHO + NO2 : 	7.40D-12 	;
+{8664.} 	 HM23C4O = HM2C43CHO + HO2 : 	8.74D+11*EXP(-3430/TEMP) 	;
+{8665.} 	 OH + HM23C4OH = HM2C43CHO + HO2 : 	1.45D-11 	;
+{8666.} 	 HM2C43CHO = HM2C43O2 + HO2 + CO : 	J(17) 	;
+{8667.} 	 NO3 + HM2C43CHO = HM2C43CO3 + HNO3 : 	KNO3AL*8.5 	;
+{8668.} 	 OH + HM2C43CHO = HM2C43CO3 : 	3.40D-11 	;
+{8669.} 	 OH + M2C43CO2H = IPEBO2 : 	9.48D-12 	;
+{8670.} 	 M2C43CO3H = IPEBO2 + OH : 	J(41) 	;
+{8671.} 	 OH + M2C43CO3H = M2C43CO3 : 	1.29D-11 	;
+{8672.} 	 C6PAN18 = M2C43CO3 + NO2 : 	KBPAN 	;
+{8673.} 	 OH + C6PAN18 = MIPK + CO + NO2 : 	3.60D-12 	;
+{8674.} 	 HO3C76OOH = HO3C76O + OH : 	J(41) 	;
+{8675.} 	 OH + HO3C76OOH = HO3CO6C7 + OH : 	3.84D-11 	;
+{8676.} 	 HO3C76NO3 = HO3C76O + NO2 : 	J(54) 	;
+{8677.} 	 OH + HO3C76NO3 = HO3CO6C7 + NO2 : 	1.23D-11 	;
+{8678.} 	 HO3C76O = HO2CO5C7 + HO2 : 	5.55D+11*EXP(-2945/TEMP) 	;
+{8679.} 	 OH + HO25C7 = HO2CO5C7 + HO2 : 	2.32D-11 	;
+{8680.} 	 HO3CO6C7 = HO3C5O2 + CH3CO3 : 	J(22) 	;
+{8681.} 	 OH + HO3CO6C7 = CO25C7 + HO2 : 	1.72D-11 	;
+{8682.} 	 CO3C75OOH = CO3C75O + OH : 	J(41)+J(22) 	;
+{8683.} 	 OH + CO3C75OOH = CO3C75O2 : 	1.42D-10 	;
+{8684.} 	 CO3C75O = C71O2 : 	1.45D+11*EXP(-3430/TEMP) 	;
+{8685.} 	 H2M5C65OOH = H2M5C65O + OH : 	J(41) 	;
+{8686.} 	 OH + H2M5C65OOH = H2M5C65O2 : 	1.54D-11 	;
+{8687.} 	 H2M5C65NO3 = H2M5C65O + NO2 : 	J(55) 	;
+{8688.} 	 OH + H2M5C65NO3 = CH3COCH3 + NO2 + HO2C3CHO : 	1.04D-11 	;
+{8689.} 	 H2M5C65O = H2M2CO5C6 + HO2 : 	5.55D+11*EXP(-2945/TEMP) 	;
+{8690.} 	 OH + H25M2C6 = H2M2CO5C6 + HO2 : 	1.20D-11 	;
+{8691.} 	 C75OOH = C75O + OH : 	J(41)+J(22) 	;
+{8692.} 	 OH + C75OOH = C75O2 : 	8.55D-11 	;
+{8693.} 	 C75O = C76O2 : 	1.72D+11*EXP(-4240/TEMP) 	;
+{8694.} 	 H2M2C65OOH = H2M2C65O + OH : 	J(41) 	;
+{8695.} 	 OH + H2M2C65OOH = H2M2CO5C6 + OH : 	2.71D-11 	;
+{8696.} 	 H2M2C65NO3 = H2M2C65O + NO2 : 	J(54) 	;
+{8697.} 	 OH + H2M2C65NO3 = H2M2CO5C6 + NO2 : 	2.24D-12 	;
+{8698.} 	 H2M2C65O = H2M2CO5C6 + HO2 : 	KROSEC*O2 	;
+{8699.} 	 H2M2C65O = IPEAO2 + CH3CHO : 	2.70D+14*EXP(-7398/TEMP) 	;
+{8700.} 	 H2M2CO5C6 = CH3CO3 + HO2M2C4O2 : 	J(22) 	;
+{8701.} 	 OH + H2M2CO5C6 = C77O2 : 	5.92D-12*0.834 	;
+{8702.} 	 OH + H2M2CO5C6 = C78O2 : 	5.92D-12*0.166 	;
+{8703.} 	 H2M4C65OOH = H2M4C65O + OH : 	J(41) 	;
+{8704.} 	 OH + H2M4C65OOH = H2M4CO5C6 + OH : 	3.70D-11 	;
+{8705.} 	 H2M4C65NO3 = H2M4C65O + NO2 : 	J(54) 	;
+{8706.} 	 OH + H2M4C65NO3 = H2M4CO5C6 + NO2 : 	1.08D-11 	;
+{8707.} 	 H2M4C65O = H2M3CO5C6 + HO2 : 	5.55D+11*EXP(-2945/TEMP) 	;
+{8708.} 	 OH + H25M3C6 = H2M3CO5C6 + HO2 : 	2.18D-11*0.500 	;
+{8709.} 	 OH + H25M3C6 = H2M4CO5C6 + HO2 : 	2.18D-11*0.500 	;
+{8710.} 	 H2M4CO5C6 + OH = M3CO25C6 + HO2 : 	1.56D-11 	;
+{8711.} 	 H2M4CO5C6 = HO2C54O2 + CH3CO3 : 	J(22) 	;
+{8712.} 	 C710OOH = C710O + OH : 	J(41)+J(22) 	;
+{8713.} 	 OH + C710OOH = C710O2 : 	6.05D-12 	;
+{8714.} 	 C710O = C711O2 : 	1.72D+11*EXP(-4240/TEMP) 	;
+{8715.} 	 OH + H3M3C6OOH = H3M3C5CHO + OH : 	1.38D-11 	;
+{8716.} 	 OH + H3M3C6OOH = H3M3C6O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{8717.} 	 H3M3C6NO3 = H3M3C6O + NO2 : 	J(53) 	;
+{8718.} 	 OH + H3M3C6NO3 = H3M3C5CHO + NO2 : 	3.31D-12 	;
+{8719.} 	 H3M3C6O = H3M3C5CHO + HO2 : 	KROPRIM*O2 	;
+{8720.} 	 OH + H14M4C6 = H3M3C5CHO + HO2 : 	8.35D-12 	;
+{8721.} 	 H3M3C5CHO = H3M3C5O2 + HO2 + CO : 	J(15) 	;
+{8722.} 	 NO3 + H3M3C5CHO = H3M3C5CO3 + HNO3 : 	KNO3AL*8.5 	;
+{8723.} 	 OH + H3M3C5CHO = H3M3C5CO3 : 	2.77D-11 	;
+{8724.} 	 HO3C86OOH = HO3C86O + OH : 	J(41) 	;
+{8725.} 	 OH + HO3C86OOH = HO3CO6C8 + OH : 	4.41D-11 	;
+{8726.} 	 HO3C86NO3 = HO3C86O + NO2 : 	J(54) 	;
+{8727.} 	 OH + HO3C86NO3 = HO3CO6C8 + NO2 : 	1.38D-11 	;
+{8728.} 	 HO3C86O = HO3CO6C8 + HO2 : 	5.55D+11*EXP(-2945/TEMP) 	;
+{8729.} 	 OH + HO36C8 = HO3CO6C8 + HO2 : 	2.63D-11 	;
+{8730.} 	 HO3CO6C8 = C2H5CO3 + HO3C5O2 : 	J(22) 	;
+{8731.} 	 OH + HO3CO6C8 = C82O2 : 	1.85D-11*0.304 	;
+{8732.} 	 OH + HO3CO6C8 = CO36C8 + HO2 : 	1.85D-11*0.696 	;
+{8733.} 	 CO3C85OOH = CO3C85O + OH : 	J(41)+J(22) 	;
+{8734.} 	 OH + CO3C85OOH = CO3C85O2 : 	8.66D-11 	;
+{8735.} 	 CO3C85O = C81O2 : 	1.15D+11*EXP(-3430/TEMP) 	;
+{8736.} 	 HO3C96OOH = HO3C96O + OH : 	J(41) 	;
+{8737.} 	 OH + HO3C96OOH = HO4CO7C9 + OH : 	4.55D-11 	;
+{8738.} 	 HO3C96NO3 = HO3C96O + NO2 : 	J(54) 	;
+{8739.} 	 OH + HO3C96NO3 = HO4CO7C9 + NO2 : 	1.50D-11 	;
+{8740.} 	 HO3C96O = HO4CO7C9 + HO2 : 	5.55D+11*EXP(-2945/TEMP) 	;
+{8741.} 	 OH + HO36C9 = HO4CO7C9 + HO2 : 	2.43D-11 	;
+{8742.} 	 HO4CO7C9 = C2H5CO3 + HO5C6O2 : 	J(22) 	;
+{8743.} 	 OH + HO4CO7C9 = C93O2 : 	1.99D-11*0.304 	;
+{8744.} 	 OH + HO4CO7C9 = CO36C9 + HO2 : 	1.99D-11*0.696 	;
+{8745.} 	 C91OOH = C91O + OH : 	J(41)+J(22) 	;
+{8746.} 	 OH + C91OOH = C91O2 : 	8.80D-11 	;
+{8747.} 	 C91O = C92O2 : 	1.15D+11*EXP(-3430/TEMP) 	;
+{8748.} 	 HO3C106OOH = HO3C106O + OH : 	J(41) 	;
+{8749.} 	 OH + HO3C106OOH = HO5CO8C10 + OH : 	4.69D-11 	;
+{8750.} 	 HO3C106NO3 = HO3C106O + NO2 : 	J(54) 	;
+{8751.} 	 OH + HO3C106NO3 = HO5CO8C10 + NO2 : 	1.64D-11 	;
+{8752.} 	 HO3C106O = HO5CO8C10 + HO2 : 	5.55D+11*EXP(-2945/TEMP) 	;
+{8753.} 	 OH + HO36C10 = HO5CO8C10 + HO2 : 	2.57D-11 	;
+{8754.} 	 HO5CO8C10 = C2H5CO3 + HO6C7O2 : 	J(22) 	;
+{8755.} 	 OH + HO5CO8C10 = C103O2 : 	2.13D-11*0.304 	;
+{8756.} 	 OH + HO5CO8C10 = CO36C10 + HO2 : 	2.13D-11*0.696 	;
+{8757.} 	 C101OOH = C101O + OH : 	J(41)+J(22) 	;
+{8758.} 	 OH + C101OOH = C101O2 : 	8.94D-11 	;
+{8759.} 	 C101O = C102O2 : 	1.15D+11*EXP(-3430/TEMP) 	;
+{8760.} 	 HO3C116OOH = HO3C116O + OH : 	J(41) 	;
+{8761.} 	 OH + HO3C116OOH = HO6CO9C11 + OH : 	4.83D-11 	;
+{8762.} 	 HO3C116NO3 = HO3C116O + NO2 : 	J(54) 	;
+{8763.} 	 OH + HO3C116NO3 = HO6CO9C11 + NO2 : 	1.78D-11 	;
+{8764.} 	 HO3C116O = HO6CO9C11 + HO2 : 	5.55D+11*EXP(-2945/TEMP) 	;
+{8765.} 	 OH + HO36C11 = HO6CO9C11 + HO2 : 	2.71D-11 	;
+{8766.} 	 HO6CO9C11 = C2H5CO3 + HO7C8O2 : 	J(22) 	;
+{8767.} 	 OH + HO6CO9C11 = C113O2 : 	2.27D-11*0.304 	;
+{8768.} 	 OH + HO6CO9C11 = CO36C11 + HO2 : 	2.27D-11*0.696 	;
+{8769.} 	 C111OOH = C111O + OH : 	J(41)+J(22) 	;
+{8770.} 	 OH + C111OOH = C111O2 : 	9.08D-11 	;
+{8771.} 	 C111O = C112O2 : 	1.15D+11*EXP(-3430/TEMP) 	;
+{8772.} 	 HO3C126OOH = HO3C126O + OH : 	J(41) 	;
+{8773.} 	 OH + HO3C126OOH = HO7CO10C12 + OH : 	4.97D-11 	;
+{8774.} 	 HO3C126NO3 = HO3C126O + NO2 : 	J(54) 	;
+{8775.} 	 OH + HO3C126NO3 = HO7CO10C12 + NO2 : 	1.92D-11 	;
+{8776.} 	 HO3C126O = HO7CO10C12 + HO2 : 	5.55D+11*EXP(-2945/TEMP) 	;
+{8777.} 	 OH + HO36C12 = HO7CO10C12 + HO2 : 	2.85D-11 	;
+{8778.} 	 HO7CO10C12 = C2H5CO3 + HO8C9O2 : 	J(22) 	;
+{8779.} 	 OH + HO7CO10C12 = C123O2 : 	2.41D-11*0.304 	;
+{8780.} 	 OH + HO7CO10C12 = CO36C12 + HO2 : 	2.41D-11*0.696 	;
+{8781.} 	 C121OOH = C121O + OH : 	J(41)+J(22) 	;
+{8782.} 	 OH + C121OOH = C121O2 : 	9.10D-11 	;
+{8783.} 	 C121O = C122O2 : 	1.15D+11*EXP(-3430/TEMP) 	;
+{8784.} 	 CO1C6OOH + OH = C6DIAL + OH : 	4.22D-11 	;
+{8785.} 	 CO1C6OOH = CO1C6O + OH : 	J(41)+J(15) 	;
+{8786.} 	 CO1C6NO3 + OH = C6DIAL + NO2 : 	2.82D-11 	;
+{8787.} 	 CO1C6NO3 = CO1C6O + NO2 : 	J(15)+J(53) 	;
+{8788.} 	 CO1C6O = CO1H63O2 : 	KDEC 	;
+{8789.} 	 CO1C6OH + OH = C6DIAL + HO2 : 	3.31D-11 	;
+{8790.} 	 NO3CH2CO2H + OH = HCHO + NO2 : 	1.68D-13 	;
+{8791.} 	 NO3CH2CO3H + OH = NO3CH2CO3 : 	3.63D-12 	;
+{8792.} 	 NO3CH2CO3H = HCHO + NO2 + OH : 	J(41) 	;
+{8793.} 	 NO3CH2PAN + OH = HCHO + CO + NO2 + NO2 : 	1.12D-14 	;
+{8794.} 	 NO3CH2PAN = NO3CH2CO3 + NO2 : 	KBPAN 	;
+{8795.} 	 PRNO3CO2H + OH = CH3CHO + NO2 : 	3.14D-13 	;
+{8796.} 	 PRNO3CO3H + OH = PRNO3CO3 : 	3.77D-12 	;
+{8797.} 	 PRNO3CO3H = CH3CHO + NO2 + OH : 	J(41) 	;
+{8798.} 	 PRNO3PAN + OH = CH3CHO + CO + NO2 + NO2 : 	1.43D-13 	;
+{8799.} 	 PRNO3PAN = PRNO3CO3 + NO2 : 	KBPAN 	;
+{8800.} 	 COC4NO3OOH + OH = CO3C4NO3O2 : 	1.64D-11 	;
+{8801.} 	 COC4NO3OOH = CO3C4NO3O + OH : 	J(41)+J(53) 	;
+{8802.} 	 CO3C4NO3O = NO3CH2CO3 + CH3CHO : 	KDEC 	;
+{8803.} 	 CO23C4NO3 + OH = CO23C3CHO + NO2 : 	1.30D-13 	;
+{8804.} 	 CO23C4NO3 = BIACETO + NO2 : 	J(56) 	;
+{8805.} 	 CO23C4NO3 = HCHO + CH3CO3 + NO2 + CO : 	J(57) 	;
+{8806.} 	 CO23C4NO3 = NO3CH2CO3 + CH3CO3 : 	J(35) 	;
+{8807.} 	 CO3C4NO3OH + OH = CO23C4NO3 + HO2 : 	5.65D-12 	;
+{8808.} 	 CO3C4NO3OH = CH3CHOHCO3 + HCHO + NO2 : 	J(57) 	;
+{8809.} 	 CO3C4NO3OH = HO2CO3C4O + NO2 : 	J(56) 	;
+{8810.} 	 HO3C3CO3H + OH = HO3C3CO3 : 	1.38D-11 	;
+{8811.} 	 HO3C3CO3H = C2H5CHO + HO2 + OH : 	J(41) 	;
+{8812.} 	 HO3C3PAN + OH = C2H5CHO + CO + NO2 : 	3.82D-12 	;
+{8813.} 	 HO3C3PAN = HO3C3CO3 + NO2 : 	KBPAN 	;
+{8814.} 	 MPRNO3CO2H + OH = CH3COCH3 + NO2 : 	3.79D-13 	;
+{8815.} 	 MPRNO3CO3H + OH = MPRBNO3CO3 : 	4.08D-12 	;
+{8816.} 	 MPRNO3CO3H = CH3COCH3 + NO2 + OH : 	J(41) 	;
+{8817.} 	 MPRBNO3PAN + OH = CH3COCH3 + CO + NO2 + NO2 : 	5.44D-14 	;
+{8818.} 	 MPRBNO3PAN = MPRBNO3CO3 + NO2 : 	KBPAN 	;
+{8819.} 	 C5NO3OAOOH + OH = C5NO3COAO2 : 	6.82D-11 	;
+{8820.} 	 C5NO3OAOOH = C5NO3COAO + OH : 	J(41)+J(56)+J(57) 	;
+{8821.} 	 C5NO3COAO = HO2CO4CHO + NO2 : 	2.74D+09*EXP(-3430/TEMP) 	;
+{8822.} 	 C51NO324CO + OH = CO24C4CHO + NO2 : 	6.55D-13 	;
+{8823.} 	 C51NO324CO = C5CO24O + NO2 : 	J(56) 	;
+{8824.} 	 C51NO324CO = CH3CO3 + C3NO3COO2 : 	J(22) 	;
+{8825.} 	 C51NO324CO = HCHO + CO2C3CO3 + NO2 : 	J(57) 	;
+{8826.} 	 C5NO3CO4OH + OH = C51NO324CO + HO2 : 	2.77D-11 	;
+{8827.} 	 C5NO3CO4OH = HO2CO4C5O + NO2 : 	J(56) 	;
+{8828.} 	 C5NO3CO4OH = IPROPOLO2 + HCHO + CO + NO2 : 	J(57) 	;
+{8829.} 	 C4NO3CO2H + OH = C3H7CHO + NO2 : 	2.65D-12 	;
+{8830.} 	 C4NO3CO3H + OH = C4NO3CO3 : 	6.11D-12 	;
+{8831.} 	 C4NO3CO3H = C3H7CHO + NO2 + OH : 	J(41) 	;
+{8832.} 	 C4NO3PAN + OH = C3H7CHO + CO + NO2 + NO2 : 	1.57D-12 	;
+{8833.} 	 C4NO3PAN = C4NO3CO3 + NO2 : 	KBPAN 	;
+{8834.} 	 C5OHCO4OOH + OH = C5OH2CO4O2 : 	7.08D-11 	;
+{8835.} 	 C5OHCO4OOH = C5OH2CO4O + OH : 	J(41) 	;
+{8836.} 	 C5OHCO4OOH = IC3H7O2 + HOCH2CO3 : 	J(22) 	;
+{8837.} 	 C5OH2CO4O = HO1CO24C5 + HO2 : 	KROSEC*O2 	;
+{8838.} 	 C4OHCO3H + OH = C4OHCO3 : 	1.58D-11 	;
+{8839.} 	 C4OHCO3H = C3H7CHO + HO2 + OH : 	J(41) 	;
+{8840.} 	 C4OHPAN + OH = C3H7CHO + CO + NO2 : 	5.37D-12 	;
+{8841.} 	 C4OHPAN = C4OHCO3 + NO2 : 	KBPAN 	;
+{8842.} 	 C5NO3O4OOH + OH = C5NO3CO4O2 : 	1.62D-11 	;
+{8843.} 	 C5NO3O4OOH = C5NO3CO4O + OH : 	J(41)+J(56) 	;
+{8844.} 	 C5NO3O4OOH = CH3CHO + CH3CHO + CO + NO2 + OH : 	J(57) 	;
+{8845.} 	 C5NO3CO4O = CH3CHO + CH3CHO + NO2 + CO : 	KDEC 	;
+{8846.} 	 C5ONO34OOH + OH = C5CONO34O2 : 	8.92D-12 	;
+{8847.} 	 C5ONO34OOH = C5CONO34O + OH : 	J(41)+J(22) 	;
+{8848.} 	 C5CONO34O = C53NO324CO + HO2 : 	KROSEC*O2 	;
+{8849.} 	 C5CONO34O = CH3CHO + MGLYOX + NO2 : 	4.00D+04 	;
+{8850.} 	 C43NO3CO2H + OH = MEK + NO2 : 	1.25D-12 	;
+{8851.} 	 C43NO3CO3H + OH = C43NO3CO3 : 	4.71D-12 	;
+{8852.} 	 C43NO3CO3H = MEK + NO2 + OH : 	J(41) 	;
+{8853.} 	 C43NO3PAN + OH = MEK + CO + NO2 + NO2 : 	3.81D-13 	;
+{8854.} 	 C43NO3PAN = C43NO3CO3 + NO2 : 	KBPAN 	;
+{8855.} 	 C5CONO3OOH + OH = C4MCONO3O2 : 	4.69D-12 	;
+{8856.} 	 C5CONO3OOH = C4MCONO3O + OH : 	J(41) 	;
+{8857.} 	 C3MNO3CO2H + OH = IPRCHO + NO2 : 	2.25D-12 	;
+{8858.} 	 C3MNO3CO3H + OH = C3MNO3CO3 : 	5.71D-12 	;
+{8859.} 	 C3MNO3CO3H = IPRCHO + NO2 + OH : 	J(41)+J(54) 	;
+{8860.} 	 C3MNO3PAN + OH = IPRCHO + CO + NO2 + NO2 : 	7.51D-13 	;
+{8861.} 	 C3MNO3PAN = C3MNO3CO3 + NO2 : 	KBPAN 	;
+{8862.} 	 C3M3OHCO3H + OH = C3M3OH2CO3 : 	1.79D-11 	;
+{8863.} 	 C3M3OHCO3H = IPRCHO + HO2 + OH : 	J(41) 	;
+{8864.} 	 C3M3OH2PAN + OH = IPRCHO + CO + NO2 : 	2.84D-12 	;
+{8865.} 	 C3M3OH2PAN = C3M3OH2CO3 + NO2 : 	KBPAN 	;
+{8866.} 	 C4MCNO3OOH + OH = C4M22CONO3 + OH : 	7.13D-12 	;
+{8867.} 	 C4MCNO3OOH + OH = MC4CONO3O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{8868.} 	 C4MCNO3OOH = MC4CONO3O + OH : 	J(41) 	;
+{8869.} 	 MC4CONO3O = BIACET + HCHO + NO2 : 	4.00D+04 	;
+{8870.} 	 MC4CONO3O = C4M22CONO3 + HO2 : 	KROPRIM*O2 	;
+{8871.} 	 C65NO3CO2H + OH = C4H9CHO + NO2 : 	3.95D-12 	;
+{8872.} 	 C65NO3CO3H + OH = C65NO36CO3 : 	7.41D-12 	;
+{8873.} 	 C65NO3CO3H = C4H9CHO + NO2 + OH : 	J(41) 	;
+{8874.} 	 C65NO3PAN + OH = C4H9CHO + CO + NO2 + NO2 : 	2.99D-12 	;
+{8875.} 	 C65NO3PAN = C65NO36CO3 + NO2 : 	KBPAN 	;
+{8876.} 	 C6NO3COOOH + OH = MNO3COC4O2 : 	8.27D-11 	;
+{8877.} 	 C6NO3COOOH = MNO3COC4O + OH : 	J(41)+J(56)+J(57) 	;
+{8878.} 	 MNO3COC4O = C43OHCOCHO + NO2 : 	8.40D+10*EXP(-3523/TEMP) 	;
+{8879.} 	 C6NO324CO + OH = CO3C4CO3 + HCHO + NO2 : 	1.78D-12 	;
+{8880.} 	 C6NO324CO = C3NO3COO2 + C2H5CO3 : 	J(22) 	;
+{8881.} 	 C6NO324CO = CO3C4CO3 + HCHO + NO2 : 	J(56)+J(57) 	;
+{8882.} 	 C6NO3CO4OH + OH = C6NO324CO + HO2 : 	3.36D-11 	;
+{8883.} 	 C6NO3CO4OH = CO2HOC61O + NO2 : 	J(56) 	;
+{8884.} 	 C6NO3CO4OH = HO3C4CO3 + HCHO + NO2 : 	J(57) 	;
+{8885.} 	 C4COMOHOOH + OH = HO1CO24C6 + OH : 	8.65D-11 	;
+{8886.} 	 C4COMOHOOH = C4COMOH3O + OH : 	J(41)+J(22) 	;
+{8887.} 	 C4COMOH3O = C43OHCOCHO + HO2 : 	8.40D+10*EXP(-3523/TEMP) 	;
+{8888.} 	 C4COMOH3OH + OH = HO1CO24C6 + HO2 : 	3.75D-11 	;
+{8889.} 	 C4COMOH3OH = HO3C4O2 + HOCH2CO3 : 	J(22) 	;
+{8890.} 	 HO1CO24C6 = HOCH2CO3 + MEKCO2 : 	J(22)*2 	;
+{8891.} 	 OH + HO1CO24C6 = CO35C5CHO + HO2 : 	4.35D-12 	;
+{8892.} 	 HO5C5CO3H = C4H9CHO + HO2 + OH : 	J(41) 	;
+{8893.} 	 OH + HO5C5CO3H = HO5C5CO3 : 	1.72D-11 	;
+{8894.} 	 C6PAN23 = HO5C5CO3 + NO2 : 	KBPAN 	;
+{8895.} 	 OH + C6PAN23 = C4H9CHO + CO + NO2 : 	6.79D-12 	;
+{8896.} 	 C6CONO3OOH + OH = C62NO335CO + OH : 	6.84D-11 	;
+{8897.} 	 C6CONO3OOH = C6NO3CO5O + OH : 	J(41)+J(56)+J(57) 	;
+{8898.} 	 C6NO3CO5O = C6CO23HO5 + NO2 : 	4.20D+10*EXP(-1962/TEMP) 	;
+{8899.} 	 C62NO335CO + OH = CO235C6 + NO2 : 	8.05D-13 	;
+{8900.} 	 C62NO335CO = CH3CHO + CO2C3CO3 + NO2 : 	J(56)+J(57)+J(22) 	;
+{8901.} 	 C6NO3CO5OH + OH = C62NO335CO + HO2 : 	2.78D-11 	;
+{8902.} 	 C6NO3CO5OH = C6CO3OH5O + NO2 : 	J(56) 	;
+{8903.} 	 C6NO3CO5OH = HO2C3CO3 + CH3CHO + NO2 : 	J(57) 	;
+{8904.} 	 CONO3C6OOH + OH = C64NO335CO + OH : 	1.91D-11 	;
+{8905.} 	 CONO3C6OOH + OH = C6CONO34O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{8906.} 	 CONO3C6OOH = C6CONO34O + OH : 	J(41)+J(56)+J(57) 	;
+{8907.} 	 C6CONO34O = C2H5CHO + MGLYOX + NO2 : 	4.00D+04 	;
+{8908.} 	 C6CONO34O = C64NO335CO + HO2 : 	KROSEC*O2 	;
+{8909.} 	 C64NO335CO + OH = CO234C6 + NO2 : 	1.38D-12 	;
+{8910.} 	 C64NO335CO = C2H5CO3 + MGLYOX + NO2 : 	J(56)+J(57) 	;
+{8911.} 	 C64NO335CO = EGLYOX + CH3CO3 + NO2 : 	J(57) 	;
+{8912.} 	 C6CONO34OH + OH = C64NO335CO + HO2 : 	8.98D-12 	;
+{8913.} 	 C6CONO34OH = HO3C3CHO + CH3CO3 + NO2 : 	J(22) 	;
+{8914.} 	 NBZFUO2 + HO2 = NBZFUOOH : 	KRO2HO2*0.625 	;
+{8915.} 	 NBZFUO2 + NO = NBZFUO + NO2 : 	KRO2NO 	;
+{8916.} 	 NBZFUO2 + NO3 = NBZFUO + NO2 : 	KRO2NO3 	;
+{8917.} 	 NBZFUO2 = NBZFUO : 	8.80D-13*RO2 	;
+{8918.} 	 BZFUONOOA = BZFUONOO : 	KDEC*0.5 	;
+{8919.} 	 BZFUONOOA = CO + HCOCH2O2 + OH : 	KDEC*0.5 	;
+{8920.} 	 BZFUO2 + HO2 = BZFUOOH : 	KRO2HO2*0.706 	;
+{8921.} 	 BZFUO2 + NO = BZFUO + NO2 : 	KRO2NO 	;
+{8922.} 	 BZFUO2 + NO3 = BZFUO + NO2 : 	KRO2NO3 	;
+{8923.} 	 BZFUO2 = BZFUCO : 	8.80D-13*RO2*0.2 	;
+{8924.} 	 BZFUO2 = BZFUO : 	8.80D-13*RO2*0.6 	;
+{8925.} 	 BZFUO2 = BZFUOH : 	8.80D-13*RO2*0.2 	;
+{8926.} 	 MALDALCO2H + OH = MALDIALCO2 : 	3.70D-11 	;
+{8927.} 	 MALDALCO2H = HCOCO2H + HO2 + CO + HO2 + CO : 	J(18)+J(19) 	;
+{8928.} 	 MALDALCO3H + OH = MALDIALCO3 : 	4.00D-11 	;
+{8929.} 	 MALDALCO3H = HCOCO3H + HO2 + CO + HO2 + CO : 	J(18)+J(19) 	;
+{8930.} 	 MALDALCO3H = MALDIALCO2 + OH : 	J(41) 	;
+{8931.} 	 MALDIALCO2 = GLYOX + HO2 + CO : 	KDEC*0.40 	;
+{8932.} 	 MALDIALCO2 = MALANHY + HO2 : 	KDEC*0.60 	;
+{8933.} 	 MALDIALPAN + OH = GLYOX + CO + CO + NO2 : 	3.70D-11 	;
+{8934.} 	 MALDIALPAN = MALDIALCO3 + NO2 : 	KBPAN 	;
+{8935.} 	 EPXDLCO2H + OH = C3DIALO2 : 	2.31D-11 	;
+{8936.} 	 EPXDLCO2H = C3DIALO2 + HO2 : 	J(17) 	;
+{8937.} 	 EPXDLCO3H + OH = EPXDLCO3 : 	2.62D-11 	;
+{8938.} 	 EPXDLCO3H = C3DIALO2 + OH : 	J(41)+J(17) 	;
+{8939.} 	 EPXDLPAN + OH = C33CO + CO + NO2 : 	2.29D-11 	;
+{8940.} 	 EPXDLPAN = EPXDLCO3 + NO2 : 	KBPAN 	;
+{8941.} 	 C3DIALOOH + OH = C33CO + OH : 	1.44D-10 	;
+{8942.} 	 C3DIALOOH = C3DIALO + OH : 	J(41) 	;
+{8943.} 	 C3DIALOOH = GLYOX + CO + HO2 + OH : 	J(15)*2 	;
+{8944.} 	 C3DIALO = GLYOX + CO + HO2 : 	KDEC 	;
+{8945.} 	 C33CO + OH = CO + CO + CO + HO2 : 	5.77D-11 	;
+{8946.} 	 C33CO = CO + HO2 + CO + CO + HO2 : 	J(15)*2 	;
+{8947.} 	 MALDIALOOH + OH = HOCOC4DIAL + OH : 	1.22D-10 	;
+{8948.} 	 MALDIALOOH + OH = MALDIALO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{8949.} 	 MALDIALOOH = C32OH13CO + CO + OH + HO2 : 	J(15)*2 	;
+{8950.} 	 MALDIALOOH = MALDIALO + OH : 	J(41) 	;
+{8951.} 	 MALDIALO = GLYOX + GLYOX + HO2 : 	KDEC 	;
+{8952.} 	 HOCOC4DIAL + OH = CO2C4DIAL + HO2 : 	3.67D-11 	;
+{8953.} 	 HOCOC4DIAL = HCOCOHCO3 + HO2 + CO : 	J(34)+J(15) 	;
+{8954.} 	 HOHOC4DIAL + OH = HOCOC4DIAL + HO2 : 	8.13D-11 	;
+{8955.} 	 HOHOC4DIAL = C32OH13CO + HO2 + HO2 + CO : 	J(15)*2 	;
+{8956.} 	 NPHEN1O + NO2 = DNPHEN : 	2.08D-12 	;
+{8957.} 	 NPHEN1O + O3 = NPHEN1O2 : 	2.86D-13 	;
+{8958.} 	 NCATECHOL + NO3 = NNCATECO2 : 	2.60D-12 	;
+{8959.} 	 NCATECHOL + OH = NCATECO2 : 	3.47D-12 	;
+{8960.} 	 CATEC1O2 + HO2 = CATEC1OOH : 	KRO2HO2*0.770 	;
+{8961.} 	 CATEC1O2 + NO = CATEC1O + NO2 : 	KRO2NO 	;
+{8962.} 	 CATEC1O2 + NO3 = CATEC1O + NO2 : 	KRO2NO3 	;
+{8963.} 	 CATEC1O2 = CATEC1O : 	8.80D-13*RO2 	;
+{8964.} 	 PBZQONE + NO3 = NBZQO2 : 	3.00D-13 	;
+{8965.} 	 PBZQONE + OH = PBZQO2 : 	4.6D-12 	;
+{8966.} 	 C5CO14OH + OH = C5CO14CO2 : 	5.44D-11 	;
+{8967.} 	 C5CO14OH = CH3CO3 + HCOCO2H + HO2 + CO : 	J(23)+J(24) 	;
+{8968.} 	 PTLQONE + NO3 = NPTLQO2 : 	1.00D-12 	;
+{8969.} 	 PTLQONE + OH = PTLQO2 : 	2.3D-11 	;
+{8970.} 	 NCRES1O + NO2 = DNCRES : 	2.08D-12 	;
+{8971.} 	 NCRES1O + O3 = NCRES1O2 : 	2.86D-13 	;
+{8972.} 	 OXYL1OOH + OH = OXYL1O2 : 	4.65D-11 	;
+{8973.} 	 OXYL1OOH = TOL1O + OH : 	J(41) 	;
+{8974.} 	 MNCATECH + NO3 = MNNCATECO2 : 	5.03D-12 	;
+{8975.} 	 MNCATECH + OH = MNCATECO2 : 	6.83D-12 	;
+{8976.} 	 MCATEC1O2 + HO2 = MCATEC1OOH : 	KRO2HO2*0.820 	;
+{8977.} 	 MCATEC1O2 + NO = MCATEC1O + NO2 : 	KRO2NO 	;
+{8978.} 	 MCATEC1O2 + NO3 = MCATEC1O + NO2 : 	KRO2NO3 	;
+{8979.} 	 MCATEC1O2 = MCATEC1O : 	8.80D-13*RO2 	;
+{8980.} 	 MC3ODBCO2H + OH = MC3CODBCO2 : 	4.38D-11 	;
+{8981.} 	 MC3ODBCO2H = CH3COCO2H + HO2 + CO + HO2 + CO : 	J(18)+J(19) 	;
+{8982.} 	 MC3CODBCO3 + HO2 = MC3CODBCO2 + OH : 	KAPHO2*0.44 	;
+{8983.} 	 MC3CODBCO3 + HO2 = MC3ODBCO2H + O3 : 	KAPHO2*0.15 	;
+{8984.} 	 MC3CODBCO3 + HO2 = MC3ODBCO3H : 	KAPHO2*0.41 	;
+{8985.} 	 MC3CODBCO3 + NO = MC3CODBCO2 + NO2 : 	KAPNO 	;
+{8986.} 	 MC3CODBCO3 + NO2 = MC3CODBPAN : 	KFPAN 	;
+{8987.} 	 MC3CODBCO3 + NO3 = MC3CODBCO2 + NO2 : 	KRO2NO3*1.74 	;
+{8988.} 	 MC3CODBCO3 = MC3CODBCO2 : 	1.00D-11*0.70*RO2 	;
+{8989.} 	 MC3CODBCO3 = MC3ODBCO2H : 	1.00D-11*0.30*RO2 	;
+{8990.} 	 C4M2ALOHO2 + HO2 = C4MALOHOOH : 	KRO2HO2*0.706 	;
+{8991.} 	 C4M2ALOHO2 + NO = C4M2ALOHO + NO2 : 	KRO2NO 	;
+{8992.} 	 C4M2ALOHO2 + NO3 = C4M2ALOHO + NO2 : 	KRO2NO3 	;
+{8993.} 	 C4M2ALOHO2 = C4M2AL2OH : 	9.20D-14*RO2*0.30 	;
+{8994.} 	 C4M2ALOHO2 = C4M2ALOHO : 	9.20D-14*RO2*0.70 	;
+{8995.} 	 C5DICARBO2 + HO2 = C5DICAROOH : 	KRO2HO2*0.706 	;
+{8996.} 	 C5DICARBO2 + NO = C5DICARBO + NO2 : 	KRO2NO 	;
+{8997.} 	 C5DICARBO2 + NO3 = C5DICARBO + NO2 : 	KRO2NO3 	;
+{8998.} 	 C5DICARBO2 = C5134CO2OH : 	1.40D-12*0.20*RO2 	;
+{8999.} 	 C5DICARBO2 = C514CO23OH : 	1.40D-12*0.20*RO2 	;
+{9000.} 	 C5DICARBO2 = C5DICARBO : 	1.40D-12*0.60*RO2 	;
+{9001.} 	 NTLFUO2 + HO2 = NTLFUOOH : 	KRO2HO2*0.706 	;
+{9002.} 	 NTLFUO2 + NO = NTLFUO + NO2 : 	KRO2NO 	;
+{9003.} 	 NTLFUO2 + NO3 = NTLFUO + NO2 : 	KRO2NO3 	;
+{9004.} 	 NTLFUO2 = NTLFUO : 	9.20D-14*RO2 	;
+{9005.} 	 TLFUONOOA = CO + OH + MECOACETO2 : 	KDEC*0.5 	;
+{9006.} 	 TLFUONOOA = TLFUONOO : 	KDEC*0.5 	;
+{9007.} 	 TLFUO2 + HO2 = TLFUOOH : 	KRO2HO2*0.706 	;
+{9008.} 	 TLFUO2 + NO = TLFUO + NO2 : 	KRO2NO 	;
+{9009.} 	 TLFUO2 + NO3 = TLFUO + NO2 : 	KRO2NO3 	;
+{9010.} 	 TLFUO2 = TLFUO : 	9.20D-14*RO2*0.7 	;
+{9011.} 	 TLFUO2 = TLFUOH : 	9.20D-14*RO2*0.3 	;
+{9012.} 	 C5CO14CO2 = MALANHY + CH3O2 : 	KDEC*0.83 	;
+{9013.} 	 C5CO14CO2 = MGLYOX + HO2 + CO : 	KDEC*0.17 	;
+{9014.} 	 C5CO14OOH + OH = C5CO14O2 : 	3.59D-12 	;
+{9015.} 	 C5CO14OOH = C5CO14CO2 + OH : 	J(41) 	;
+{9016.} 	 C5COO2NO2 + OH = MGLYOX + CO + CO + NO2 : 	5.43D-11 	;
+{9017.} 	 C5COO2NO2 = C5CO14O2 + NO2 : 	KBPAN 	;
+{9018.} 	 CH3COCO2H = CH3CO3 + HO2 : 	J(34) 	;
+{9019.} 	 OH + CH3COCO2H = CH3CO3 : 	8.0D-13 	;
+{9020.} 	 OXYLCO2H + OH = OXYL1O2 : 	1.10D-12 	;
+{9021.} 	 OXYLCO3H + OH = OXYLCO3 : 	4.66D-12 	;
+{9022.} 	 OXYLCO3H = OXYL1O2 + OH : 	J(41) 	;
+{9023.} 	 OXYLPAN + OH = OXYL1OOH + CO + NO2 : 	1.06D-12 	;
+{9024.} 	 OXYLPAN = OXYLCO3 + NO2 : 	KBPAN*0.67 	;
+{9025.} 	 MC4CODBCO3 + HO2 = C5DBCOCO2H + O3 : 	KAPHO2*0.15 	;
+{9026.} 	 MC4CODBCO3 + HO2 = C5DBCOCO3H : 	KAPHO2*0.41 	;
+{9027.} 	 MC4CODBCO3 + HO2 = MC4CODBCO2 + OH : 	KAPHO2*0.44 	;
+{9028.} 	 MC4CODBCO3 + NO = MC4CODBCO2 + NO2 : 	KAPNO 	;
+{9029.} 	 MC4CODBCO3 + NO2 = MC4CODBPAN : 	KFPAN 	;
+{9030.} 	 MC4CODBCO3 + NO3 = MC4CODBCO2 + NO2 : 	KRO2NO3*1.74 	;
+{9031.} 	 MC4CODBCO3 = C5DBCOCO2H : 	1.00D-11*0.30*RO2 	;
+{9032.} 	 MC4CODBCO3 = MC4CODBCO2 : 	1.00D-11*0.70*RO2 	;
+{9033.} 	 MEK2OOA = BIACETO2 + OH : 	KDEC*0.27 	;
+{9034.} 	 MEK2OOA = CH3CO3 + CH3O2 : 	KDEC*0.255 	;
+{9035.} 	 MEK2OOA = CH3COCH3 : 	KDEC*0.255 	;
+{9036.} 	 MEK2OOA = MEK2OO : 	KDEC*0.22 	;
+{9037.} 	 MC5CO2OHO2 + HO2 = MC5COOHOOH : 	KRO2HO2*0.770 	;
+{9038.} 	 MC5CO2OHO2 + NO = MC5CO2OHO + NO2 : 	KRO2NO 	;
+{9039.} 	 MC5CO2OHO2 + NO3 = MC5CO2OHO + NO2 : 	KRO2NO3 	;
+{9040.} 	 MC5CO2OHO2 = MC52CO2OH : 	9.20D-14*0.3*RO2 	;
+{9041.} 	 MC5CO2OHO2 = MC5CO2OHO : 	9.20D-14*0.7*RO2 	;
+{9042.} 	 NOXYFUO2 + HO2 = NOXYFUOOH : 	KRO2HO2*0.770 	;
+{9043.} 	 NOXYFUO2 + NO = NOXYFUO + NO2 : 	KRO2NO 	;
+{9044.} 	 NOXYFUO2 + NO3 = NOXYFUO + NO2 : 	KRO2NO3 	;
+{9045.} 	 NOXYFUO2 = NOXYFUO : 	9.20D-14*RO2 	;
+{9046.} 	 C6OTKETO2 + HO2 = C6OTKETOOH : 	KRO2HO2*0.770 	;
+{9047.} 	 C6OTKETO2 + NO = C6OTKETO + NO2 : 	KRO2NO 	;
+{9048.} 	 C6OTKETO2 + NO3 = C6OTKETO + NO2 : 	KRO2NO3*1.74 	;
+{9049.} 	 C6OTKETO2 = C6OTKETCO : 	8.80D-13*RO2*0.2 	;
+{9050.} 	 C6OTKETO2 = C6OTKETO : 	8.80D-13*RO2*0.6 	;
+{9051.} 	 C6OTKETO2 = C6OTKETOH : 	8.80D-13*RO2*0.2 	;
+{9052.} 	 OXYFUO2 + HO2 = OXYFUOOH : 	KRO2HO2*0.770 	;
+{9053.} 	 OXYFUO2 + NO = OXYFUO + NO2 : 	KRO2NO 	;
+{9054.} 	 OXYFUO2 + NO3 = OXYFUO + NO2 : 	KRO2NO3 	;
+{9055.} 	 OXYFUO2 = OXYFUO : 	9.20D-14*RO2*0.70 	;
+{9056.} 	 OXYFUO2 = OXYFUOH : 	9.20D-14*RO2*0.30 	;
+{9057.} 	 EPXM2DCO2H + OH = C4MCO2O2 : 	2.22D-11 	;
+{9058.} 	 EPXM2DCO2H = C4MCO2O2 + HO2 : 	J(17) 	;
+{9059.} 	 EPXM2DCO3H + OH = EPXM2DLCO3 : 	2.53D-11 	;
+{9060.} 	 EPXM2DCO3H = C4MCO2O2 + OH : 	J(41)+J(17) 	;
+{9061.} 	 EPXM2DLPAN + OH = EPXM2DLCO3 + NO2 : 	2.21D-11 	;
+{9062.} 	 EPXM2DLPAN = EPXM2DLCO3 + NO2 : 	KBPAN 	;
+{9063.} 	 C4MCO2OOH + OH = C4MCO2O2 : 	6.97D-11 	;
+{9064.} 	 C4MCO2OOH = BIACET + OH + HO2 + CO : 	J(17) 	;
+{9065.} 	 C4MCO2OOH = C4MCO2O + OH : 	J(41) 	;
+{9066.} 	 C4MCO2OOH = CH3CO3 + MGLYOX + OH : 	J(22) 	;
+{9067.} 	 C4MCO2O = BIACET + HO2 + CO : 	KDEC*0.5 	;
+{9068.} 	 C4MCO2O = MGLYOX + CH3CO3 : 	KDEC*0.5 	;
+{9069.} 	 C4MCO2OH + OH = C4MCO2O : 	6.63D-11 	;
+{9070.} 	 C4MCO2OH = BIACET + HO2 + HO2 + CO : 	J(17) 	;
+{9071.} 	 C4MCO2OH = MGLYOX + HO2 + CH3CO3 : 	J(22) 	;
+{9072.} 	 C5DBCOCO2H + OH = MC4CODBCO2 : 	5.08D-11 	;
+{9073.} 	 C5DBCOCO2H = HCOCO2H + CH3CO3 + CH3CO3 : 	J(24) 	;
+{9074.} 	 NOXYOL1O + NO2 = DNOXYOL : 	2.08D-12 	;
+{9075.} 	 NOXYOL1O + O3 = NOXYOL1O2 : 	2.86D-13 	;
+{9076.} 	 DM123OOH + OH = DM123O2 : 	4.65D-11 	;
+{9077.} 	 DM123OOH = OXY1O + OH : 	J(41) 	;
+{9078.} 	 OXYQONE + NO3 = NOXYQO2 : 	1.00D-12 	;
+{9079.} 	 OXYQONE + OH = OXYQO2 : 	2.35D-10 	;
+{9080.} 	 OXNCATECH + NO3 = OXNNCATCO2 : 	5.03D-12 	;
+{9081.} 	 OXNCATECH + OH = OXNCATECO2 : 	6.83D-12 	;
+{9082.} 	 OXCATEC1O2 + HO2 = OCATEC1OOH : 	KRO2HO2*0.859 	;
+{9083.} 	 OXCATEC1O2 + NO = OXCATEC1O + NO2 : 	KRO2NO 	;
+{9084.} 	 OXCATEC1O2 + NO3 = OXCATEC1O + NO2 : 	KRO2NO3 	;
+{9085.} 	 OXCATEC1O2 = OXCATEC1O : 	8.80D-13*RO2 	;
+{9086.} 	 MXYLCO2H + OH = MXYL1O2 : 	1.10D-12 	;
+{9087.} 	 MXYLCO3H + OH = MXYLCO3 : 	4.66D-12 	;
+{9088.} 	 MXYLCO3H = MXYL1O2 + OH : 	J(41) 	;
+{9089.} 	 MXYLPAN + OH = MXYL1OOH + CO + NO2 : 	1.06D-12 	;
+{9090.} 	 MXYLPAN = MXYLCO3 + NO2 : 	KBPAN*0.67 	;
+{9091.} 	 MXYL1OOH + OH = MXYL1O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{9092.} 	 MXYL1OOH = MXYL1O + OH : 	J(41) 	;
+{9093.} 	 MXYL1O + NO2 = TOL1OHNO2 : 	3.90D-13 	;
+{9094.} 	 C5MCO2OHO2 + HO2 = C6CO2OHOOH : 	KRO2HO2*0.770 	;
+{9095.} 	 C5MCO2OHO2 + NO = NO2 + C5MCO2OHO : 	KRO2NO 	;
+{9096.} 	 C5MCO2OHO2 + NO3 = NO2 + C5MCO2OHO : 	KRO2NO3 	;
+{9097.} 	 C5MCO2OHO2 = C5MCO2OHO : 	9.20D-14*0.70*RO2 	;
+{9098.} 	 C5MCO2OHO2 = C6CO2M2OH : 	9.20D-14*0.30*RO2 	;
+{9099.} 	 NMXYFUO2 + HO2 = NMXYFUOOH : 	KRO2HO2*0.770 	;
+{9100.} 	 NMXYFUO2 + NO = NMXYFUO + NO2 : 	KRO2NO 	;
+{9101.} 	 NMXYFUO2 + NO3 = NMXYFUO + NO2 : 	KRO2NO3 	;
+{9102.} 	 NMXYFUO2 = NMXYFUO : 	9.20D-14*RO2 	;
+{9103.} 	 C23O3MO2 + HO2 = C23O3MCOOH : 	KRO2HO2*0.706 	;
+{9104.} 	 C23O3MO2 + NO = C23O3MO + NO2 : 	KRO2NO 	;
+{9105.} 	 C23O3MO2 + NO3 = C23O3MO + NO2 : 	KRO2NO3 	;
+{9106.} 	 C23O3MO2 = ACECOCOCH3 : 	8.80D-13*RO2*0.2 	;
+{9107.} 	 C23O3MO2 = C23O3MO : 	8.80D-13*RO2*0.6 	;
+{9108.} 	 C23O3MO2 = C23O3MOH : 	8.80D-13*RO2*0.2 	;
+{9109.} 	 MXYFUO2 + HO2 = MXYFUOOH : 	KRO2HO2*0.770 	;
+{9110.} 	 MXYFUO2 + NO = MXYFUO + NO2 : 	KRO2NO 	;
+{9111.} 	 MXYFUO2 + NO3 = MXYFUO + NO2 : 	KRO2NO3 	;
+{9112.} 	 MXYFUO2 = MXYFUO : 	9.20D-14*RO2*0.70 	;
+{9113.} 	 MXYFUO2 = MXYFUOH : 	9.20D-14*RO2*0.30 	;
+{9114.} 	 NPXYFUO2 + HO2 = NPXYFUOOH : 	KRO2HO2*0.706 	;
+{9115.} 	 NPXYFUO2 + NO = NPXYFUO + NO2 : 	KRO2NO 	;
+{9116.} 	 NPXYFUO2 + NO3 = NPXYFUO + NO2 : 	KRO2NO3 	;
+{9117.} 	 NPXYFUO2 = NPXYFUO : 	9.20D-14*RO2 	;
+{9118.} 	 MCOCOMOXO2 + HO2 = MCOCOMOOOH : 	KRO2HO2*0.625 	;
+{9119.} 	 MCOCOMOXO2 + NO = MCOCOMOXO + NO2 : 	KRO2NO 	;
+{9120.} 	 MCOCOMOXO2 + NO3 = MCOCOMOXO + NO2 : 	KRO2NO3 	;
+{9121.} 	 MCOCOMOXO2 = MCOCOMOXO : 	2.00D-12*RO2 	;
+{9122.} 	 PXYFUO2 + HO2 = PXYFUOOH : 	KRO2HO2*0.706 	;
+{9123.} 	 PXYFUO2 + NO = PXYFUO + NO2 : 	KRO2NO 	;
+{9124.} 	 PXYFUO2 + NO3 = PXYFUO + NO2 : 	KRO2NO3 	;
+{9125.} 	 PXYFUO2 = PXYFUO : 	9.20D-14*RO2*0.70 	;
+{9126.} 	 PXYFUO2 = PXYFUOH : 	9.20D-14*RO2*0.30 	;
+{9127.} 	 C3MCODBCO2 = MGLYOX + HO2 + CO : 	KDEC*0.35 	;
+{9128.} 	 C3MCODBCO2 = MMALANHY + HO2 : 	KDEC*0.65 	;
+{9129.} 	 C4CODBCO3H + OH = C3MCODBCO3 : 	4.73D-11 	;
+{9130.} 	 C4CODBCO3H = C3MCODBCO2 + OH : 	J(41) 	;
+{9131.} 	 C4CODBCO3H = HCOCO3H + HO2 + CO + CH3CO3 : 	J(18)+J(19) 	;
+{9132.} 	 C3MCODBPAN + OH = MGLYOX + CO + CO + NO2 : 	4.37D-11 	;
+{9133.} 	 C3MCODBPAN = C3MCODBCO3 + NO2 : 	KBPAN 	;
+{9134.} 	 EPXMDLCO2H + OH = C3MDIALO2 : 	2.27D-11 	;
+{9135.} 	 EPXMDLCO2H = C3MDIALO2 + HO2 : 	J(17) 	;
+{9136.} 	 EPXMDLCO3H + OH = EPXMDLCO3 : 	2.57D-11 	;
+{9137.} 	 EPXMDLCO3H = C3MDIALO2 + OH : 	J(41)+J(17) 	;
+{9138.} 	 EPXMDLPAN + OH = MGLYOX + CO + NO2 : 	2.25D-11 	;
+{9139.} 	 EPXMDLPAN = EPXMDLCO3 + NO2 : 	KBPAN 	;
+{9140.} 	 C3MDIALOOH + OH = C3MDIALO2 : 	1.35D-10 	;
+{9141.} 	 C3MDIALOOH = C3MDIALO + OH : 	J(41) 	;
+{9142.} 	 C3MDIALOOH = MGLYOX + OH + HO2 + CO : 	J(17)*2 	;
+{9143.} 	 C3MDIALO = MGLYOX + CO + HO2 : 	KDEC 	;
+{9144.} 	 NMXYOL1O + NO2 = DNMXYOL : 	2.08D-12 	;
+{9145.} 	 NMXYOL1O + O3 = NMXYOL1O2 : 	2.86D-13 	;
+{9146.} 	 MXY1OOH + OH = MXY1O2 : 	4.65D-11 	;
+{9147.} 	 MXY1OOH = MXY1O + OH : 	J(41) 	;
+{9148.} 	 MXYQONE + NO3 = NMXYQO2 : 	1.00D-12 	;
+{9149.} 	 MXYQONE + OH = MXYQO2 : 	2.35D-11 	;
+{9150.} 	 MXNCATECH + NO3 = MXNNCATCO2 : 	5.03D-12 	;
+{9151.} 	 MXNCATECH + OH = MXNCATECO2 : 	6.83D-12 	;
+{9152.} 	 MXCATEC1O2 + HO2 = MXCTEC1OOH : 	KRO2HO2*0.859 	;
+{9153.} 	 MXCATEC1O2 + NO = MXCATEC1O + NO2 : 	KRO2NO 	;
+{9154.} 	 MXCATEC1O2 + NO3 = MXCATEC1O + NO2 : 	KRO2NO3 	;
+{9155.} 	 MXCATEC1O2 = MXCATEC1O : 	8.80D-13*RO2 	;
+{9156.} 	 C3MCOCO2H + OH = MGLYOX + HO2 + CO : 	4.66D-11 	;
+{9157.} 	 C3MCOCO2H = HCOCO2H + HO2 + CO + CH3O2 + CO : 	J(18)+J(19) 	;
+{9158.} 	 PXYLCO2H + OH = PXYL1O2 : 	1.10D-12 	;
+{9159.} 	 PXYLCO3H + OH = PXYLCO3 : 	4.66D-12 	;
+{9160.} 	 PXYLCO3H = PXYL1O2 + OH : 	J(41) 	;
+{9161.} 	 PXYLPAN + OH = PXYL1OOH + CO + NO2 : 	1.06D-12 	;
+{9162.} 	 PXYLPAN = PXYLCO3 + NO2 : 	KBPAN*0.67 	;
+{9163.} 	 PXYL1OOH + OH = PXYL1O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{9164.} 	 PXYL1OOH = PXYL1O + OH : 	J(41) 	;
+{9165.} 	 PXYL1O + NO2 = TOL4OHNO2 : 	3.90D-13 	;
+{9166.} 	 DMKOHO2 + HO2 = DMKOHOOH : 	KRO2HO2*0.770 	;
+{9167.} 	 DMKOHO2 + NO = DMKOHO + NO2 : 	KRO2NO 	;
+{9168.} 	 DMKOHO2 + NO3 = DMKOHO + NO2 : 	KRO2NO3 	;
+{9169.} 	 DMKOHO2 = DMK2OH : 	8.80D-13*0.20*RO2 	;
+{9170.} 	 DMKOHO2 = DMKCOOH : 	8.80D-13*0.20*RO2 	;
+{9171.} 	 DMKOHO2 = DMKOHO : 	8.80D-13*0.60*RO2 	;
+{9172.} 	 NPXYOL1O + NO2 = DNPXYOL : 	2.08D-12 	;
+{9173.} 	 NPXYOL1O + O3 = NPXYOL1O2 : 	2.86D-13 	;
+{9174.} 	 PXY1OOH + OH = PXY1O2 : 	4.65D-11 	;
+{9175.} 	 PXY1OOH = PXY1O + OH : 	J(41) 	;
+{9176.} 	 PXYQONE + NO3 = NPXYQO2 : 	1.00D-12 	;
+{9177.} 	 PXYQONE + OH = PXYQO2 : 	2.35D-11 	;
+{9178.} 	 PXNCATECH + NO3 = PXNNCATCO2 : 	5.03D-12 	;
+{9179.} 	 PXNCATECH + OH = PXNCATECO2 : 	6.83D-12 	;
+{9180.} 	 PXCATEC1O2 + HO2 = PCATEC1OOH : 	KRO2HO2*0.859 	;
+{9181.} 	 PXCATEC1O2 + NO = PXCATEC1O + NO2 : 	KRO2NO 	;
+{9182.} 	 PXCATEC1O2 + NO3 = PXCATEC1O + NO2 : 	KRO2NO3 	;
+{9183.} 	 PXCATEC1O2 = PXCATEC1O : 	8.80D-13*RO2 	;
+{9184.} 	 C6H5C2CO2H + OH = C6H5CH2O2 : 	1.10D-12 	;
+{9185.} 	 C6H5C2CO3H + OH = C6H5CH2CO3 : 	4.66D-12 	;
+{9186.} 	 C6H5C2CO3H = C6H5CH2O2 + OH : 	J(41) 	;
+{9187.} 	 C6H5CH2PAN + OH = BENZAL + CO + NO2 : 	1.06D-12 	;
+{9188.} 	 C6H5CH2PAN = C6H5CH2CO3 + NO2 : 	KBPAN*0.67 	;
+{9189.} 	 NEBNZ1O + NO2 = DNEBNZOL : 	2.08D-12 	;
+{9190.} 	 NEBNZ1O + O3 = NEBNZ1O2 : 	2.86D-13 	;
+{9191.} 	 EBENZOOH + OH = EBENZO2 : 	4.65D-11 	;
+{9192.} 	 EBENZOOH = EBENZO + OH : 	J(41) 	;
+{9193.} 	 C6DCRBBOH + OH = C6DCARBBO : 	3.73D-11 	;
+{9194.} 	 C6DCRBBOH = HCOCO2H + C2H5CO3 + HO2 + CO : 	J(24) 	;
+{9195.} 	 PEBQONE + NO3 = NPEBQO2 : 	1.00D-12 	;
+{9196.} 	 PEBQONE + OH = PEBQO2 : 	2.35D-11 	;
+{9197.} 	 ENCATECH + NO3 = ENNCATECO2 : 	5.03D-12 	;
+{9198.} 	 ENCATECH + OH = ENCATECO2 : 	6.83D-12 	;
+{9199.} 	 ECATEC1O2 + HO2 = ECATEC1OOH : 	KRO2HO2*0.859 	;
+{9200.} 	 ECATEC1O2 + NO = ECATEC1O + NO2 : 	KRO2NO 	;
+{9201.} 	 ECATEC1O2 + NO3 = ECATEC1O + NO2 : 	KRO2NO3 	;
+{9202.} 	 ECATEC1O2 = ECATEC1O : 	8.80D-13*RO2 	;
+{9203.} 	 RGDCO2H + OH = C2H5CO3 + GLYOX : 	4.89D-11 	;
+{9204.} 	 RGDCO2H = HO2 + CO + ECOCO2H + HO2 + CO : 	J(24) 	;
+{9205.} 	 C6DICARBO2 + HO2 = C6DICAROOH : 	KRO2HO2*0.770 	;
+{9206.} 	 C6DICARBO2 + NO = C6DICARBO + NO2 : 	KRO2NO 	;
+{9207.} 	 C6DICARBO2 + NO3 = C6DICARBO + NO2 : 	KRO2NO3 	;
+{9208.} 	 C6DICARBO2 = C6134CO2OH : 	8.80D-13*0.20*RO2 	;
+{9209.} 	 C6DICARBO2 = C614CO23OH : 	8.80D-13*0.20*RO2 	;
+{9210.} 	 C6DICARBO2 = C6DICARBO : 	8.80D-13*0.60*RO2 	;
+{9211.} 	 NEBFUO2 + HO2 = NEBFUOOH : 	KRO2HO2*0.770 	;
+{9212.} 	 NEBFUO2 + NO = NEBFUO + NO2 : 	KRO2NO 	;
+{9213.} 	 NEBFUO2 + NO3 = NEBFUO + NO2 : 	KRO2NO3 	;
+{9214.} 	 NEBFUO2 = NEBFUO : 	8.80D-13*RO2 	;
+{9215.} 	 BUTALAO2 + HO2 = BUTALAOOH : 	KRO2HO2*0.625 	;
+{9216.} 	 BUTALAO2 + NO = BUTAL2O + NO2 : 	KRO2NO 	;
+{9217.} 	 BUTALAO2 + NO3 = BUTAL2O + NO2 : 	KRO2NO3 	;
+{9218.} 	 BUTALAO2 = BUTAL2O : 	8.80D-13*0.6*RO2 	;
+{9219.} 	 BUTALAO2 = EGLYOX : 	8.80D-13*0.2*RO2 	;
+{9220.} 	 BUTALAO2 = HO3C3CHO : 	8.80D-13*0.2*RO2 	;
+{9221.} 	 EBFUO2 + HO2 = EBFUOOH : 	KRO2HO2*0.770 	;
+{9222.} 	 EBFUO2 + NO = EBFUO + NO2 : 	KRO2NO 	;
+{9223.} 	 EBFUO2 + NO3 = EBFUO + NO2 : 	KRO2NO3 	;
+{9224.} 	 EBFUO2 = EBFUCO : 	8.80D-13*RO2*0.20 	;
+{9225.} 	 EBFUO2 = EBFUO : 	8.80D-13*RO2*0.60 	;
+{9226.} 	 EBFUO2 = EBFUOH : 	8.80D-13*RO2*0.20 	;
+{9227.} 	 C6DCARBBO = EGLYOX + CO + HO2 : 	KDEC*0.35 	;
+{9228.} 	 C6DCARBBO = MALANHY + C2H5O2 : 	KDEC*0.65 	;
+{9229.} 	 C6DCRBBOOH + OH = C6DCARBBO2 : 	4.09D-11 	;
+{9230.} 	 C6DCRBBOOH = C6DCARBBO + OH : 	J(41) 	;
+{9231.} 	 C6DCRBBOOH = HCOCO3H + HO2 + CO + C2H5CO3 : 	J(24) 	;
+{9232.} 	 C6DCARBPAN + OH = EGLYOX + CO + CO + NO2 : 	3.73D-11 	;
+{9233.} 	 C6DCARBPAN = C6DCARBBO2 + NO2 : 	KBPAN 	;
+{9234.} 	 ECOCO2H + OH = C2H5CO3 : 	2.53D-12 	;
+{9235.} 	 ECOCO2H = C2H5CO3 + HO2 : 	J(34) 	;
+{9236.} 	 CO3H4CHO + OH = CO3H4CO3 : 	7.09D-11 	;
+{9237.} 	 CO3H4CHO = C2H5CO3 + GLYOX + HO2 : 	J(22) 	;
+{9238.} 	 CO3H4CHO = EGLYOX + HO2 + HO2 + CO : 	J(17) 	;
+{9239.} 	 C7CO3OHO2 + HO2 = C7CO3OHOOH : 	KRO2HO2*0.820 	;
+{9240.} 	 C7CO3OHO2 + NO = C7CO3OHO + NO2 : 	KRO2NO 	;
+{9241.} 	 C7CO3OHO2 + NO3 = C7CO3OHO + NO2 : 	KRO2NO3 	;
+{9242.} 	 C7CO3OHO2 = C7CO3OHO : 	8.80D-13*RO2 	;
+{9243.} 	 PHCOETOOH + OH = PHCOCOME + OH : 	5.15D-11 	;
+{9244.} 	 PHCOETOOH = PHCOETO + OH : 	J(41) 	;
+{9245.} 	 PHCOETO = C6H5CO3 + CH3CHO : 	KDEC 	;
+{9246.} 	 PHCOCOME + OH = PHCOCOCO2 : 	6.00D-12 	;
+{9247.} 	 PHCOCOME = C6H5CO3 + CH3CO3 : 	J(35) 	;
+{9248.} 	 PHCOETOH + OH = PHCOCOME + HO2 : 	1.29D-11 	;
+{9249.} 	 C7DCCO2H + OH = C7DCCO2 : 	3.62D-11 	;
+{9250.} 	 C7DCCO2H = PGLYOX + CO + HO2 + HO2 : 	J(15)+J(22) 	;
+{9251.} 	 NPBNZ1O + NO2 = DNPBNZOL : 	2.08D-12 	;
+{9252.} 	 NPBNZ1O + O3 = NPBNZ1O2 : 	2.86D-13 	;
+{9253.} 	 PBENZOOH + OH = PBENZO2 : 	4.65D-11 	;
+{9254.} 	 PBENZOOH = PBENZO + OH : 	J(41) 	;
+{9255.} 	 PPRBQONE + NO3 = NPPRBQO2 : 	1.00D-12 	;
+{9256.} 	 PPRBQONE + OH = PPRBQO2 : 	2.35D-11 	;
+{9257.} 	 PNCATECH + NO3 = PNNCATECO2 : 	5.03D-12 	;
+{9258.} 	 PNCATECH + OH = PNCATECO2 : 	6.83D-12 	;
+{9259.} 	 PCATEC1O2 + HO2 = PRCATC1OOH : 	KRO2HO2*0.90 	;
+{9260.} 	 PCATEC1O2 + NO = PCATEC1O + NO2 : 	KRO2NO 	;
+{9261.} 	 PCATEC1O2 + NO3 = PCATEC1O + NO2 : 	KRO2NO3 	;
+{9262.} 	 PCATEC1O2 = PCATEC1O : 	8.80D-13*RO2 	;
+{9263.} 	 PC3ODBCO2H + OH = GLYOX + C3H7CO3 : 	5.00D-11 	;
+{9264.} 	 PC3ODBCO2H = PGLYOXOH + HO2 + CO + HO2 + CO : 	J(18)+J(19) 	;
+{9265.} 	 PGLOOB = C3H7CHO : 	KDEC*0.125 	;
+{9266.} 	 PGLOOB = C3H7CO3 + CO + OH : 	KDEC*0.57 	;
+{9267.} 	 PGLOOB = C3H7CO3 + HO2 : 	KDEC*0.125 	;
+{9268.} 	 PGLOOB = PGLOO : 	KDEC*0.18 	;
+{9269.} 	 C7DCO2 + HO2 = C7DCOOH : 	KRO2HO2*0.820 	;
+{9270.} 	 C7DCO2 + NO = C7DCO + NO2 : 	KRO2NO 	;
+{9271.} 	 C7DCO2 + NO3 = C7DCO + NO2 : 	KRO2NO3 	;
+{9272.} 	 C7DCO2 = C61CHO : 	8.80D-13*RO2*0.2 	;
+{9273.} 	 C7DCO2 = C7DCO : 	8.80D-13*RO2*0.6 	;
+{9274.} 	 C7DCO2 = C7DCOH : 	8.80D-13*RO2*0.2 	;
+{9275.} 	 NPBFUO2 + HO2 = NPBFUOOH : 	KRO2HO2*0.820 	;
+{9276.} 	 NPBFUO2 + NO = NPBFUO + NO2 : 	KRO2NO 	;
+{9277.} 	 NPBFUO2 + NO3 = NPBFUO + NO2 : 	KRO2NO3 	;
+{9278.} 	 NPBFUO2 = NPBFUO : 	8.80D-13*RO2 	;
+{9279.} 	 C4CHOAO2 + HO2 = C4CHOAOOH : 	KRO2HO2*0.706 	;
+{9280.} 	 C4CHOAO2 + NO = C4CHO2O + NO2 : 	KRO2NO 	;
+{9281.} 	 C4CHOAO2 + NO3 = C4CHO2O + NO2 : 	KRO2NO3 	;
+{9282.} 	 C4CHOAO2 = C4CHO2O : 	8.80D-13*0.6*RO2 	;
+{9283.} 	 C4CHOAO2 = C4OHCHO : 	8.80D-13*0.2*RO2 	;
+{9284.} 	 C4CHOAO2 = PGLYOX : 	8.80D-13*0.2*RO2 	;
+{9285.} 	 PBFUO2 + HO2 = PBFUOOH : 	KRO2HO2*0.820 	;
+{9286.} 	 PBFUO2 + NO = PBFUO + NO2 : 	KRO2NO 	;
+{9287.} 	 PBFUO2 + NO3 = PBFUO + NO2 : 	KRO2NO3 	;
+{9288.} 	 PBFUO2 = PBFUCO : 	8.80D-13*RO2*0.20 	;
+{9289.} 	 PBFUO2 = PBFUO : 	8.80D-13*RO2*0.60 	;
+{9290.} 	 PBFUO2 = PBFUOH : 	8.80D-13*RO2*0.20 	;
+{9291.} 	 C7DCCO2 = MALANHY + NC3H7O2 : 	KDEC*0.65 	;
+{9292.} 	 C7DCCO2 = PGLYOX + CO + HO2 : 	KDEC*0.35 	;
+{9293.} 	 C7DCCO3H + OH = C7DCCO3 : 	3.94D-11 	;
+{9294.} 	 C7DCCO3H = C7DCCO2 + OH : 	J(41) 	;
+{9295.} 	 C7DCCO3H = PGLYOX + CO + HO2 + OH : 	J(24) 	;
+{9296.} 	 C7DCPAN + OH = PGLYOX + CO + CO + NO2 : 	3.58D-11 	;
+{9297.} 	 C7DCPAN = C7DCCO3 + NO2 : 	KBPAN 	;
+{9298.} 	 PGLYOXOH + OH = C3H7CO3 : 	5.05D-12 	;
+{9299.} 	 PGLYOXOH = C3H7CO3 + HO2 : 	J(22) 	;
+{9300.} 	 C6O132OH + OH = C5O45OHCO3 : 	7.41D-11 	;
+{9301.} 	 C6O132OH = C3H7CO3 + GLYOX + HO2 : 	J(22) 	;
+{9302.} 	 C6O132OH = PGLYOX + HO2 + HO2 + CO : 	J(17) 	;
+{9303.} 	 C8CO3OHO2 + HO2 = C83COOHOOH : 	KRO2HO2*0.859 	;
+{9304.} 	 C8CO3OHO2 + NO = C8CO3OHO + NO2 : 	KRO2NO 	;
+{9305.} 	 C8CO3OHO2 + NO3 = C8CO3OHO + NO2 : 	KRO2NO3 	;
+{9306.} 	 C8CO3OHO2 = C8CO3OHO : 	8.80D-13*RO2 	;
+{9307.} 	 PHCOMEO2 + HO2 = PHCOMEOOH : 	KRO2HO2*0.859 	;
+{9308.} 	 PHCOMEO2 + NO = PHCOMEO + NO2 : 	KRO2NO 	;
+{9309.} 	 PHCOMEO2 + NO3 = PHCOMEO + NO2 : 	KRO2NO3 	;
+{9310.} 	 PHCOMEO2 = PHCOMEO : 	1.30D-12*RO2*0.6 	;
+{9311.} 	 PHCOMEO2 = PHCOMEOH : 	1.30D-12*RO2*0.2 	;
+{9312.} 	 PHCOMEO2 = PHGLYOX : 	1.30D-12*RO2*0.2 	;
+{9313.} 	 NIPBNZ1O + NO2 = DNIPBNZOL : 	2.08D-12 	;
+{9314.} 	 NIPBNZ1O + O3 = NIPBNZ1O2 : 	2.86D-13 	;
+{9315.} 	 IPBENZOOH + OH = IPBENZO2 : 	4.65D-11 	;
+{9316.} 	 IPBENZOOH = IPBENZO + OH : 	J(41) 	;
+{9317.} 	 IC7DCCO2H + OH = IC7DCCO2 : 	3.42D-11 	;
+{9318.} 	 IC7DCCO2H = IPRGLYOX + CO + HO2 + HO2 : 	J(15)+J(22) 	;
+{9319.} 	 IPRBQONE + NO3 = NIPRBQO2 : 	1.00D-12 	;
+{9320.} 	 IPRBQONE + OH = IPRBQO2 : 	2.35D-11 	;
+{9321.} 	 IPNCATECH + NO3 = IPNNCATCO2 : 	5.03D-12 	;
+{9322.} 	 IPNCATECH + OH = IPNCATECO2 : 	6.83D-12 	;
+{9323.} 	 IPCATEC1O2 + HO2 = IPCATC1OOH : 	KRO2HO2*0.90 	;
+{9324.} 	 IPCATEC1O2 + NO = IPCATEC1O + NO2 : 	KRO2NO 	;
+{9325.} 	 IPCATEC1O2 + NO3 = IPCATEC1O + NO2 : 	KRO2NO3 	;
+{9326.} 	 IPCATEC1O2 = IPCATEC1O : 	8.80D-13*RO2 	;
+{9327.} 	 IP3ODBCO2H + OH = GLYOX + IPRCO3 : 	5.00D-11 	;
+{9328.} 	 IP3ODBCO2H = IPGLYOXOH + HO2 + CO + HO2 + CO : 	J(18)+J(19) 	;
+{9329.} 	 IC7DCO2 + HO2 = IC7DCOOH : 	KRO2HO2*0.820 	;
+{9330.} 	 IC7DCO2 + NO = IC7DCO + NO2 : 	KRO2NO 	;
+{9331.} 	 IC7DCO2 + NO3 = IC7DCO + NO2 : 	KRO2NO3 	;
+{9332.} 	 IC7DCO2 = C62CHO : 	8.80D-13*RO2*0.2 	;
+{9333.} 	 IC7DCO2 = IC7DCO : 	8.80D-13*RO2*0.6 	;
+{9334.} 	 IC7DCO2 = IC7DCOH : 	8.80D-13*RO2*0.2 	;
+{9335.} 	 NIPBFUO2 + HO2 = NIPBFUOOH : 	KRO2HO2*0.820 	;
+{9336.} 	 NIPBFUO2 + NO = NIPBFUO + NO2 : 	KRO2NO 	;
+{9337.} 	 NIPBFUO2 + NO3 = NIPBFUO + NO2 : 	KRO2NO3 	;
+{9338.} 	 NIPBFUO2 = NIPBFUO : 	8.80D-13*RO2 	;
+{9339.} 	 IC4CHOAO2 + HO2 = IC4CHOAOOH : 	KRO2HO2*0.706 	;
+{9340.} 	 IC4CHOAO2 + NO = M3BUTAL2O + NO2 : 	KRO2NO 	;
+{9341.} 	 IC4CHOAO2 + NO3 = M3BUTAL2O + NO2 : 	KRO2NO3 	;
+{9342.} 	 IC4CHOAO2 = C3M3OH2CHO : 	8.80D-13*0.2*RO2 	;
+{9343.} 	 IC4CHOAO2 = IPRGLYOX : 	8.80D-13*0.2*RO2 	;
+{9344.} 	 IC4CHOAO2 = M3BUTAL2O : 	8.80D-13*0.6*RO2 	;
+{9345.} 	 IPBFUO2 + HO2 = IPBFUOOH : 	KRO2HO2*0.820 	;
+{9346.} 	 IPBFUO2 + NO = IPBFUO + NO2 : 	KRO2NO 	;
+{9347.} 	 IPBFUO2 + NO3 = IPBFUO + NO2 : 	KRO2NO3 	;
+{9348.} 	 IPBFUO2 = IPBFUCO : 	8.80D-13*RO2*0.20 	;
+{9349.} 	 IPBFUO2 = IPBFUO : 	8.80D-13*RO2*0.60 	;
+{9350.} 	 IPBFUO2 = IPBFUOH : 	8.80D-13*RO2*0.20 	;
+{9351.} 	 IC7DCCO2 = IPRGLYOX + CO + HO2 : 	KDEC*0.35 	;
+{9352.} 	 IC7DCCO2 = MALANHY + IC3H7O2 : 	KDEC*0.65 	;
+{9353.} 	 IC7DCCO3H + OH = IC7DCCO3 : 	3.74D-11 	;
+{9354.} 	 IC7DCCO3H = IC7DCCO2 + OH : 	J(41) 	;
+{9355.} 	 IC7DCCO3H = IPRGLYOX + CO + HO2 + OH : 	J(24) 	;
+{9356.} 	 IC7DCPAN + OH = IPRGLYOX + CO + CO + NO2 : 	3.38D-11 	;
+{9357.} 	 IC7DCPAN = IC7DCCO3 + NO2 : 	KBPAN 	;
+{9358.} 	 IPGLYOXOH + OH = IPRCO3 : 	3.05D-12 	;
+{9359.} 	 IPGLYOXOH = IPRCO3 + HO2 : 	J(22) 	;
+{9360.} 	 C5MO132OH + OH = C4MOHOCO3 : 	7.20D-11 	;
+{9361.} 	 C5MO132OH = IPRCO3 + GLYOX + HO2 : 	J(22) 	;
+{9362.} 	 C5MO132OH = IPRGLYOX + HO2 + HO2 + CO : 	J(17) 	;
+{9363.} 	 C7MCO3OHO2 + HO2 = C7MO3OHOOH : 	KRO2HO2*0.859 	;
+{9364.} 	 C7MCO3OHO2 + NO = C7MCO3OHO + NO2 : 	KRO2NO 	;
+{9365.} 	 C7MCO3OHO2 + NO3 = C7MCO3OHO + NO2 : 	KRO2NO3 	;
+{9366.} 	 C7MCO3OHO2 = C7MCO3OHO : 	8.80D-13*RO2 	;
+{9367.} 	 TM123BCO2H + OH = DM123O2 : 	7.92D-13 	;
+{9368.} 	 TM123BCO3H + OH = TM123BCO3 : 	3.86D-12 	;
+{9369.} 	 TM123BCO3H = DM123O2 + OH : 	J(41) 	;
+{9370.} 	 TM123BPAN + OH = DM123OOH + CO + NO2 : 	1.06D-12 	;
+{9371.} 	 TM123BPAN = TM123BCO3 + NO2 : 	KBPAN 	;
+{9372.} 	 C7ADCCO2H + OH = C7ADCCO2 : 	4.52D-11 	;
+{9373.} 	 C7ADCCO2H = BIACET + CH3CO3 + HO2 : 	J(15)+J(22) 	;
+{9374.} 	 NT123L1O + NO2 = DNT123BOL : 	2.08D-12 	;
+{9375.} 	 NT123L1O + O3 = NT123L1O2 : 	2.86D-13 	;
+{9376.} 	 TM123OOH + OH = TM123O2 : 	4.65D-11 	;
+{9377.} 	 TM123OOH = TM123O + OH : 	J(41) 	;
+{9378.} 	 T123NCATEC + NO3 = T123NNCTO2 : 	5.03D-12 	;
+{9379.} 	 T123NCATEC + OH = T123NCATO2 : 	6.83D-12 	;
+{9380.} 	 T123CAT1O2 + HO2 = T123CT1OOH : 	KRO2HO2*0.90 	;
+{9381.} 	 T123CAT1O2 + NO = T123CAT1O + NO2 : 	KRO2NO 	;
+{9382.} 	 T123CAT1O2 + NO3 = T123CAT1O + NO2 : 	KRO2NO3 	;
+{9383.} 	 T123CAT1O2 = T123CAT1O : 	8.80D-13*RO2 	;
+{9384.} 	 C7ADCCO3 + HO2 = C7ADCCO2 + OH : 	KAPHO2*0.44 	;
+{9385.} 	 C7ADCCO3 + HO2 = C7ADCCO2H + O3 : 	KAPHO2*0.15 	;
+{9386.} 	 C7ADCCO3 + HO2 = C7ADCCO3H : 	KAPHO2*0.41 	;
+{9387.} 	 C7ADCCO3 + NO = C7ADCCO2 + NO2 : 	KAPNO 	;
+{9388.} 	 C7ADCCO3 + NO2 = C7ADCPAN : 	KFPAN 	;
+{9389.} 	 C7ADCCO3 + NO3 = C7ADCCO2 + NO2 : 	KRO2NO3*1.74 	;
+{9390.} 	 C7ADCCO3 = C7ADCCO2 : 	1.00D-11*RO2*0.7 	;
+{9391.} 	 C7ADCCO3 = C7ADCCO2H : 	1.00D-11*RO2*0.3 	;
+{9392.} 	 C7ADCO2 + HO2 = C7ADCOOH : 	KRO2HO2*0.820 	;
+{9393.} 	 C7ADCO2 + NO = C7ADCO + NO2 : 	KRO2NO 	;
+{9394.} 	 C7ADCO2 + NO3 = C7ADCO + NO2 : 	KRO2NO3 	;
+{9395.} 	 C7ADCO2 = C7ADCO : 	9.20D-14*RO2*0.7 	;
+{9396.} 	 C7ADCO2 = C7ADCOH : 	9.20D-14*RO2*0.3 	;
+{9397.} 	 NTMB1FUO2 + HO2 = NTMB1FUOOH : 	KRO2HO2*0.706 	;
+{9398.} 	 NTMB1FUO2 + NO = NTMB1FUO + NO2 : 	KRO2NO 	;
+{9399.} 	 NTMB1FUO2 + NO3 = NTMB1FUO + NO2 : 	KRO2NO3 	;
+{9400.} 	 NTMB1FUO2 = NTMB1FUO : 	9.20D-14*RO2 	;
+{9401.} 	 C5OCO3M + OH = MEKBO2 + CO : 	1.85D-11 	;
+{9402.} 	 C5OCO3M = MEKBO2 + HO2 + CO : 	J(22)+J(34) 	;
+{9403.} 	 TMB1FUO2 + HO2 = TMB1FUOOH : 	KRO2HO2*0.770 	;
+{9404.} 	 TMB1FUO2 + NO = TMB1FUO + NO2 : 	KRO2NO 	;
+{9405.} 	 TMB1FUO2 + NO3 = TMB1FUO + NO2 : 	KRO2NO3 	;
+{9406.} 	 TMB1FUO2 = TMB1FUO : 	9.20D-14*RO2*0.70 	;
+{9407.} 	 TMB1FUO2 = TMB1FUOH : 	9.20D-14*RO2*0.30 	;
+{9408.} 	 NTMB2FUO2 + HO2 = NTMB2FUOOH : 	KRO2HO2*0.770 	;
+{9409.} 	 NTMB2FUO2 + NO = NTMB2FUO + NO2 : 	KRO2NO 	;
+{9410.} 	 NTMB2FUO2 + NO3 = NTMB2FUO + NO2 : 	KRO2NO3 	;
+{9411.} 	 NTMB2FUO2 = NTMB2FUO : 	9.20D-14*RO2 	;
+{9412.} 	 MC6OTKETO2 + HO2 = MC6OTKTOOH : 	KRO2HO2*0.820 	;
+{9413.} 	 MC6OTKETO2 + NO = MC6OTKETO + NO2 : 	KRO2NO 	;
+{9414.} 	 MC6OTKETO2 + NO3 = MC6OTKETO + NO2 : 	KRO2NO3*1.74 	;
+{9415.} 	 MC6OTKETO2 = MC6OTKETO : 	9.20D-14*RO2*0.7 	;
+{9416.} 	 MC6OTKETO2 = MC6OTKETOH : 	9.20D-14*RO2*0.3 	;
+{9417.} 	 TMB2FUO2 + HO2 = TMB2FUOOH : 	KRO2HO2*0.820 	;
+{9418.} 	 TMB2FUO2 + NO = TMB2FUO + NO2 : 	KRO2NO 	;
+{9419.} 	 TMB2FUO2 + NO3 = TMB2FUO + NO2 : 	KRO2NO3 	;
+{9420.} 	 TMB2FUO2 = TMB2FUO : 	9.20D-14*RO2*0.70 	;
+{9421.} 	 TMB2FUO2 = TMB2FUOH : 	9.20D-14*RO2*0.30 	;
+{9422.} 	 EPXKTMCO2H + OH = C4MCO2O2 : 	2.10D-12 	;
+{9423.} 	 EPXKTMCO2H = C4MCO2O2 + HO2 : 	J(22) 	;
+{9424.} 	 EPXKTMCO3H + OH = EPXKTMCO3 : 	5.18D-12 	;
+{9425.} 	 EPXKTMCO3H = C4MCO2O2 + OH : 	J(41)+J(22) 	;
+{9426.} 	 EPXKTMPAN + OH = BIACET + CO + NO2 : 	1.95D-12 	;
+{9427.} 	 EPXKTMPAN = EPXKTMCO3 + NO2 : 	KBPAN 	;
+{9428.} 	 C4CO2OOH + OH = CO23C3CHO + OH : 	7.83D-11 	;
+{9429.} 	 C4CO2OOH = C4CO2O + OH : 	J(41) 	;
+{9430.} 	 C4CO2OOH = CH3CO3 + GLYOX + OH : 	J(22) 	;
+{9431.} 	 C4CO2OOH = HO2 + CO + MGLYOX + OH : 	J(17) 	;
+{9432.} 	 TM124BCO2H + OH = DM124O2 : 	1.10D-12 	;
+{9433.} 	 TM124BCO3H + OH = TM124BCO3 : 	4.66D-12 	;
+{9434.} 	 TM124BCO3H = DM124O2 + OH : 	J(41) 	;
+{9435.} 	 TM124BPAN + OH = DM124OOH + CO + NO2 : 	1.06D-12 	;
+{9436.} 	 TM124BPAN = TM124BCO3 + NO2 : 	KBPAN 	;
+{9437.} 	 DM124OOH + OH = DM124O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{9438.} 	 DM124OOH = DM124O + OH : 	J(41) 	;
+{9439.} 	 DM124O + NO2 = DM124OHNO2 : 	3.90D-13 	;
+{9440.} 	 MEK2OOC = BIACETO2 + OH : 	KDEC*0.89 	;
+{9441.} 	 MEK2OOC = MEK2OO : 	KDEC*0.11 	;
+{9442.} 	 C7BDCO2 + HO2 = C7BDCOOH : 	KRO2HO2*0.820 	;
+{9443.} 	 C7BDCO2 + NO = C7BDCO + NO2 : 	KRO2NO 	;
+{9444.} 	 C7BDCO2 + NO3 = C7BDCO + NO2 : 	KRO2NO3 	;
+{9445.} 	 C7BDCO2 = C7BDCO : 	9.20D-14*RO2*0.7 	;
+{9446.} 	 C7BDCO2 = C7BDCOH : 	9.20D-14*RO2*0.3 	;
+{9447.} 	 C3M2COCO2H + OH = MGLYOX + CH3CO3 : 	5.52D-11 	;
+{9448.} 	 C3M2COCO2H = CH3COCO2H + CH3CO3 + HO2 + CO : 	J(18)+J(19) 	;
+{9449.} 	 NT124L1O + NO2 = DNT124BOL : 	2.08D-12 	;
+{9450.} 	 NT124L1O + O3 = NT124L1O2 : 	2.86D-13 	;
+{9451.} 	 TM124OOH + OH = TM124O2 : 	4.65D-11 	;
+{9452.} 	 TM124OOH = TM124O + OH : 	J(41) 	;
+{9453.} 	 TM124QONE + NO3 = NTM124QO2 : 	1.00D-12 	;
+{9454.} 	 TM124QONE + OH = TM124QO2 : 	2.35D-11 	;
+{9455.} 	 T124NCATEC + NO3 = T124NNCTO2 : 	5.03D-12 	;
+{9456.} 	 T124NCATEC + OH = T124NCATO2 : 	6.83D-12 	;
+{9457.} 	 T124CAT1O2 + HO2 = T124CT1OOH : 	KRO2HO2*0.90 	;
+{9458.} 	 T124CAT1O2 + NO = T124CAT1O + NO2 : 	KRO2NO 	;
+{9459.} 	 T124CAT1O2 + NO3 = T124CAT1O + NO2 : 	KRO2NO3 	;
+{9460.} 	 T124CAT1O2 = T124CAT1O : 	8.80D-13*RO2 	;
+{9461.} 	 C5CODBCO2H + OH = C4MCODBCO2 : 	3.54D-11 	;
+{9462.} 	 C5CODBCO2H = CH3COCO2H + CH3CO3 + HO2 + CO : 	J(24) 	;
+{9463.} 	 TMBCO2H + OH = DMPHO2 : 	1.10D-12 	;
+{9464.} 	 TMBCO3H + OH = TMBCO3 : 	4.66D-12 	;
+{9465.} 	 TMBCO3H = DMPHO2 + OH : 	J(41) 	;
+{9466.} 	 TMBPAN + OH = DMPHOOH + CO + NO2 : 	1.06D-12 	;
+{9467.} 	 TMBPAN = TMBCO3 + NO2 : 	KBPAN*0.67 	;
+{9468.} 	 DMPHOOH + OH = DMPHO2 : 	3.60D-12 	;
+{9469.} 	 DMPHOOH = DMPHO + OH : 	J(41) 	;
+{9470.} 	 DMPHO + NO2 = DMPHOHNO2 : 	3.90D-13 	;
+{9471.} 	 C4MCODBCO2 = MGLYOX + CH3CO3 : 	KDEC*0.35 	;
+{9472.} 	 C4MCODBCO2 = MMALANHY + CH3O2 : 	KDEC*0.65 	;
+{9473.} 	 C5CODBCO3H + OH = C4MCODBCO3 : 	3.90D-11 	;
+{9474.} 	 C5CODBCO3H = C4MCODBCO2 + OH : 	J(41) 	;
+{9475.} 	 C5CODBCO3H = OH + MGLYOX + CH3CO3 : 	J(24) 	;
+{9476.} 	 C4MCODBPAN + OH = MGLYOX + HCHO + CO + CO + NO2 : 	3.54D-11 	;
+{9477.} 	 C4MCODBPAN = C4MCODBCO3 + NO2 : 	KBPAN 	;
+{9478.} 	 EPXMKTCO2H + OH = CO24C53O2 : 	2.11D-12 	;
+{9479.} 	 EPXMKTCO2H = CO24C53O2 + HO2 : 	J(22) 	;
+{9480.} 	 EPXMKTCO3H + OH = EPXMKTCO3 : 	5.17D-12 	;
+{9481.} 	 EPXMKTCO3H = CO24C53O2 + OH : 	J(41)+J(22) 	;
+{9482.} 	 EPXMKTPAN + OH = C5CO234 + CO + NO2 : 	1.95D-12 	;
+{9483.} 	 EPXMKTPAN = EPXMKTCO3 + NO2 : 	KBPAN 	;
+{9484.} 	 CO24C53OOH + OH = CO24C53O2 : 	1.75D-11 	;
+{9485.} 	 CO24C53OOH = CO24C53O + OH : 	J(41) 	;
+{9486.} 	 CO24C53OOH = MGLYOX + CH3CO3 + OH : 	J(22) 	;
+{9487.} 	 CO24C53O = MGLYOX + CH3CO3 : 	KDEC 	;
+{9488.} 	 C5CO243OH + OH = C5CO234 + HO2 : 	4.06D-12 	;
+{9489.} 	 C5CO243OH = MGLYOX + CH3CO3 + HO2 : 	J(22)*2 	;
+{9490.} 	 C5CO234 + OH = C5CO234O2 : 	2.04D-13 	;
+{9491.} 	 C5CO234 = CH3CO3 + CH3CO3 + CO : 	J(35) 	;
+{9492.} 	 MPHCOMEOOH + OH = MPHGLYOX + OH : 	2.05D-11 	;
+{9493.} 	 MPHCOMEOOH = MPHCOMEO + OH : 	J(41) 	;
+{9494.} 	 MPHCOMEOOH = OXYLCO3 + HCHO + OH : 	J(22) 	;
+{9495.} 	 MPHCOMEO = OXYLCO3 + HCHO : 	KDEC 	;
+{9496.} 	 MPHCOMEOH + OH = MPHGLYOX + HO2 : 	8.93D-12 	;
+{9497.} 	 MPHCOMEOH = OXYLCO3 + HCHO + HO2 : 	J(22) 	;
+{9498.} 	 MPHGLYOX + OH = OXYLCO3 + CO : 	1.29D-11 	;
+{9499.} 	 MPHGLYOX = OXYLCO3 + HO2 + CO : 	J(34) 	;
+{9500.} 	 EPXMEDCO2H + OH = C4ECO2O2 : 	2.55D-11 	;
+{9501.} 	 EPXMEDCO2H = C4ECO2O2 + HO2 : 	J(17) 	;
+{9502.} 	 EPXMEDCO3H + OH = EPXMEDLCO3 : 	2.85D-11 	;
+{9503.} 	 EPXMEDCO3H = C4ECO2O2 + OH : 	J(41)+J(17) 	;
+{9504.} 	 EPXMEDLPAN + OH = EPXMEDLCO3 + NO2 : 	2.54D-11 	;
+{9505.} 	 EPXMEDLPAN = EPXMEDLCO3 + NO2 : 	KBPAN 	;
+{9506.} 	 C4ECO2OOH + OH = C4ECO2O2 : 	7.30D-11 	;
+{9507.} 	 C4ECO2OOH = C4ECO2O + OH : 	J(41) 	;
+{9508.} 	 C4ECO2OOH = CH3CO3 + EGLYOX + OH : 	J(22) 	;
+{9509.} 	 C4ECO2OOH = CO23C5 + OH + HO2 + CO : 	J(17) 	;
+{9510.} 	 C4ECO2O = CO23C5 + HO2 + CO : 	KDEC*0.5 	;
+{9511.} 	 C4ECO2O = EGLYOX + CH3CO3 : 	KDEC*0.5 	;
+{9512.} 	 C7CDCCO2H + OH = CO23C5 + HO2 + CO : 	4.56D-11 	;
+{9513.} 	 C7CDCCO2H = CO23C5 + HO2 + CO + HO2 : 	J(15)+J(22) 	;
+{9514.} 	 NOETOL1O + NO2 = DNOETOL : 	2.08D-12 	;
+{9515.} 	 NOETOL1O + O3 = NOETOL1O2 : 	2.86D-13 	;
+{9516.} 	 OET1OOH + OH = OET1O2 : 	4.65D-11 	;
+{9517.} 	 OET1OOH = OET1O + OH : 	J(41) 	;
+{9518.} 	 OETLQONE + NO3 = NOETLQO2 : 	1.00D-12 	;
+{9519.} 	 OETLQONE + OH = OETLQO2 : 	2.35D-11 	;
+{9520.} 	 OTNCATECH + NO3 = OTNNCATCO2 : 	5.03D-12 	;
+{9521.} 	 OTNCATECH + OH = OTNCATECO2 : 	6.83D-12 	;
+{9522.} 	 OTCATEC1O2 + HO2 = OTCTEC1OOH : 	KRO2HO2*0.90 	;
+{9523.} 	 OTCATEC1O2 + NO = OTCATEC1O + NO2 : 	KRO2NO 	;
+{9524.} 	 OTCATEC1O2 + NO3 = OTCATEC1O + NO2 : 	KRO2NO3 	;
+{9525.} 	 OTCATEC1O2 = OTCATEC1O : 	8.80D-13*RO2 	;
+{9526.} 	 CO23C3CHO = CH3CO3 + CO + CO + HO2 : 	J(34) 	;
+{9527.} 	 CO23C3CHO = CH3CO3 + HCOCO3 : 	J(35) 	;
+{9528.} 	 NO3 + CO23C3CHO = CH3CO3 + CO + CO + HNO3 : 	KNO3AL*4.0 	;
+{9529.} 	 OH + CO23C3CHO = CH3CO3 + CO + CO : 	1.23D-11 	;
+{9530.} 	 NMETOL1O + NO2 = DNMETOL : 	2.08D-12 	;
+{9531.} 	 NMETOL1O + O3 = NMETOL1O2 : 	2.86D-13 	;
+{9532.} 	 MET1OOH + OH = MET1O2 : 	4.65D-11 	;
+{9533.} 	 MET1OOH = MET1O + OH : 	J(41) 	;
+{9534.} 	 METLQONE + NO3 = NMETLQO2 : 	1.00D-12 	;
+{9535.} 	 METLQONE + OH = METLQO2 : 	2.35D-11 	;
+{9536.} 	 MTNCATECH + NO3 = MTNNCATCO2 : 	5.03D-12 	;
+{9537.} 	 MTNCATECH + OH = MTNCATECO2 : 	6.83D-12 	;
+{9538.} 	 MTCATEC1O2 + HO2 = MTCTEC1OOH : 	KRO2HO2*0.90 	;
+{9539.} 	 MTCATEC1O2 + NO = MTCATEC1O + NO2 : 	KRO2NO 	;
+{9540.} 	 MTCATEC1O2 + NO3 = MTCATEC1O + NO2 : 	KRO2NO3 	;
+{9541.} 	 MTCATEC1O2 = MTCATEC1O : 	8.80D-13*RO2 	;
+{9542.} 	 C7EDCO2 + HO2 = C7EDCOOH : 	KRO2HO2*0.820 	;
+{9543.} 	 C7EDCO2 + NO = C7EDCO + NO2 : 	KRO2NO 	;
+{9544.} 	 C7EDCO2 + NO3 = C7EDCO + NO2 : 	KRO2NO3 	;
+{9545.} 	 C7EDCO2 = C7EDCCO : 	8.80D-13*RO2*0.2 	;
+{9546.} 	 C7EDCO2 = C7EDCO : 	8.80D-13*RO2*0.6 	;
+{9547.} 	 C7EDCO2 = C7EDCOH : 	8.80D-13*RO2*0.2 	;
+{9548.} 	 NPETOL1O + NO2 = DNPETOL : 	2.08D-12 	;
+{9549.} 	 NPETOL1O + O3 = NPETOL1O2 : 	2.86D-13 	;
+{9550.} 	 PET1OOH + OH = PET1O2 : 	4.65D-11 	;
+{9551.} 	 PET1OOH = PET1O + OH : 	J(41) 	;
+{9552.} 	 PETLQONE + NO3 = NPETLQO2 : 	1.00D-12 	;
+{9553.} 	 PETLQONE + OH = PETLQO2 : 	2.35D-11 	;
+{9554.} 	 PTNCATECH + NO3 = PTNNCATCO2 : 	5.03D-12 	;
+{9555.} 	 PTNCATECH + OH = PTNCATECO2 : 	6.83D-12 	;
+{9556.} 	 PTCATEC1O2 + HO2 = PTCTEC1OOH : 	KRO2HO2*0.90 	;
+{9557.} 	 PTCATEC1O2 + NO = PTCATEC1O + NO2 : 	KRO2NO 	;
+{9558.} 	 PTCATEC1O2 + NO3 = PTCATEC1O + NO2 : 	KRO2NO3 	;
+{9559.} 	 PTCATEC1O2 = PTCATEC1O : 	8.80D-13*RO2 	;
+{9560.} 	 DMPHCOMOOH + OH = DMPHGLYOX + OH : 	2.05D-11 	;
+{9561.} 	 DMPHCOMOOH = DMPHCOMO + OH : 	J(41) 	;
+{9562.} 	 DMPHCOMOOH = TMBCO3 + HCHO + OH : 	J(22) 	;
+{9563.} 	 DMPHCOMO = TMBCO3 + HCHO : 	KDEC 	;
+{9564.} 	 DMPHCOMOH + OH = MPHGLYOX + HO2 : 	8.93D-12 	;
+{9565.} 	 DMPHCOMOH = TMBCO3 + HCHO + HO2 : 	J(22) 	;
+{9566.} 	 DMPHGLYOX + OH = TMBCO3 + CO : 	1.29D-11 	;
+{9567.} 	 DMPHGLYOX = TMBCO3 + HO2 + CO : 	J(34) 	;
+{9568.} 	 C7DDCCO3 + HO2 = C7DDCCO2 + OH : 	KAPHO2*0.44 	;
+{9569.} 	 C7DDCCO3 + HO2 = C7DDCCO2H + O3 : 	KAPHO2*0.15 	;
+{9570.} 	 C7DDCCO3 + HO2 = C7DDCCO3H : 	KAPHO2*0.41 	;
+{9571.} 	 C7DDCCO3 + NO = C7DDCCO2 + NO2 : 	KAPNO 	;
+{9572.} 	 C7DDCCO3 + NO2 = C7DDCPAN : 	KFPAN 	;
+{9573.} 	 C7DDCCO3 + NO3 = C7DDCCO2 + NO2 : 	KRO2NO3*1.74 	;
+{9574.} 	 C7DDCCO3 = C7DDCCO2 : 	1.00D-11*RO2*0.7 	;
+{9575.} 	 C7DDCCO3 = C7DDCCO2H : 	1.00D-11*RO2*0.3 	;
+{9576.} 	 C7DDCO2 + HO2 = C7DDCOOH : 	KRO2HO2*0.820 	;
+{9577.} 	 C7DDCO2 + NO = C7DDCO + NO2 : 	KRO2NO 	;
+{9578.} 	 C7DDCO2 + NO3 = C7DDCO + NO2 : 	KRO2NO3 	;
+{9579.} 	 C7DDCO2 = C7DDCO : 	9.20D-14*RO2*0.7 	;
+{9580.} 	 C7DDCO2 = C7DDCOH : 	9.20D-14*RO2*0.3 	;
+{9581.} 	 NMEBFUO2 + HO2 = NMEBFUOOH : 	KRO2HO2*0.820 	;
+{9582.} 	 NMEBFUO2 + NO = NMEBFUO + NO2 : 	KRO2NO 	;
+{9583.} 	 NMEBFUO2 + NO3 = NMEBFUO + NO2 : 	KRO2NO3 	;
+{9584.} 	 NMEBFUO2 = NMEBFUO : 	9.20D-14*RO2 	;
+{9585.} 	 C23O3EO2 + HO2 = C23O3ECOOH : 	KRO2HO2*0.770 	;
+{9586.} 	 C23O3EO2 + NO = C23O3EO + NO2 : 	KRO2NO 	;
+{9587.} 	 C23O3EO2 + NO3 = C23O3EO + NO2 : 	KRO2NO3 	;
+{9588.} 	 C23O3EO2 = C23O3EHO : 	8.80D-13*RO2*0.2 	;
+{9589.} 	 C23O3EO2 = C23O3EO : 	8.80D-13*RO2*0.6 	;
+{9590.} 	 C23O3EO2 = C23O3EOH : 	8.80D-13*RO2*0.2 	;
+{9591.} 	 MEBFUO2 + HO2 = MEBFUOOH : 	KRO2HO2*0.820 	;
+{9592.} 	 MEBFUO2 + NO = MEBFUO + NO2 : 	KRO2NO 	;
+{9593.} 	 MEBFUO2 + NO3 = MEBFUO + NO2 : 	KRO2NO3 	;
+{9594.} 	 MEBFUO2 = MEBFUO : 	9.20D-14*RO2*0.70 	;
+{9595.} 	 MEBFUO2 = MEBFUOH : 	9.20D-14*RO2*0.30 	;
+{9596.} 	 C6CO243OH + OH = CO234C6 + HO2 : 	5.29D-12 	;
+{9597.} 	 C6CO243OH = EGLYOX + CH3CO3 + HO2 : 	J(22) 	;
+{9598.} 	 C6CO243OH = MGLYOX + C2H5CO3 + HO2 : 	J(22) 	;
+{9599.} 	 EMPHCOMOOH + OH = EMPHGLYOX + OH : 	2.05D-11 	;
+{9600.} 	 EMPHCOMOOH = EMPHCO3 + HCHO + OH : 	J(22) 	;
+{9601.} 	 EMPHCOMOOH = EMPHCOMO + OH : 	J(41) 	;
+{9602.} 	 EMPHCOMO = EMPHCO3 + HCHO : 	KDEC 	;
+{9603.} 	 EMPHCOMOH + OH = EMPHGLYOX + HO2 : 	8.93D-12 	;
+{9604.} 	 EMPHCOMOH = EMPHCO3 + HCHO + HO2 : 	J(22) 	;
+{9605.} 	 EMPHGLYOX + OH = EMPHCO3 + CO : 	1.29D-11 	;
+{9606.} 	 EMPHGLYOX = EMPHCO3 + HO2 + CO : 	J(34) 	;
+{9607.} 	 EMPHCO3H + OH = EMPHCO3 : 	4.66D-12 	;
+{9608.} 	 EMPHCO3H = EMPHO2 + OH : 	J(41) 	;
+{9609.} 	 EMPHO2 + HO2 = EMPHOOH : 	KRO2HO2*0.890 	;
+{9610.} 	 EMPHO2 + NO = EMPHO + NO2 : 	KRO2NO 	;
+{9611.} 	 EMPHO2 + NO3 = EMPHO + NO2 : 	KRO2NO3 	;
+{9612.} 	 EMPHO2 = EMPHO : 	2.50D-13*RO2 	;
+{9613.} 	 EMPHPAN + OH = EMPHOOH + CO + NO2 : 	1.06D-12 	;
+{9614.} 	 EMPHPAN = EMPHCO3 + NO2 : 	KBPAN 	;
+{9615.} 	 C7DDCCO2H + OH = C7DDCCO2 : 	4.56D-11 	;
+{9616.} 	 C7DDCCO2H + OH = EGLYOX + CH3CO3 : 	4.56D-11 	;
+{9617.} 	 C7DDCCO2H = CH3COCO2H + CH3CO3 + HO2 + CO : 	J(22) 	;
+{9618.} 	 C7DDCCO2H = EGLYOX + CH3CO3 + HO2 : 	J(15)+J(22) 	;
+{9619.} 	 C7ODLBCO3H + OH = C7CODBCO3 : 	2.64D-11 	;
+{9620.} 	 C7ODLBCO3H = EGLYOX + C2H5CO3 + OH : 	J(41) 	;
+{9621.} 	 C7CODBPAN + OH = EGLYOX + C2H5CHO + NO2 : 	2.32D-11 	;
+{9622.} 	 C7CODBPAN = C7CODBCO3 + NO2 : 	KBPAN 	;
+{9623.} 	 EPXEKTCO2H + OH = CO24C63O2 : 	5.39D-12 	;
+{9624.} 	 EPXEKTCO2H = CO24C63O2 + HO2 : 	J(22) 	;
+{9625.} 	 EPXEKTCO3H + OH = EPXEKTCO3 : 	8.46D-12 	;
+{9626.} 	 EPXEKTCO3H = CO24C63O2 + OH : 	J(41)+J(22) 	;
+{9627.} 	 EPXEKTPAN + OH = CO24C6 + CO + NO2 : 	5.23D-12 	;
+{9628.} 	 EPXEKTPAN = EPXEKTCO3 + NO2 : 	KBPAN 	;
+{9629.} 	 C3EDIALOOH + OH = C3EDIALO2 : 	1.38D-10 	;
+{9630.} 	 C3EDIALOOH = C3EDIALO + OH : 	J(41) 	;
+{9631.} 	 C3EDIALOOH = EGLYOX + OH + HO2 + CO : 	J(17)*2 	;
+{9632.} 	 C3EDIALO = EGLYOX + CO + HO2 : 	KDEC 	;
+{9633.} 	 C3EDIALOH + OH = EGLYOX + HO2 + CO : 	1.35D-10 	;
+{9634.} 	 C3EDIALOH = EGLYOX + HO2 + HO2 + CO : 	J(17)*2 	;
+{9635.} 	 CO24C63OOH + OH = CO234C6 + OH : 	1.41D-11 	;
+{9636.} 	 CO24C63OOH = CO24C63O + OH : 	J(41) 	;
+{9637.} 	 CO24C63OOH = MGLYOX + C2H5CO3 + OH : 	J(22)*2 	;
+{9638.} 	 CO24C63O = MGLYOX + C2H5CO3 : 	KDEC 	;
+{9639.} 	 CO234C6 + OH = CO234C65O2 : 	1.33D-12 	;
+{9640.} 	 CO234C6 = C2H5CO3 + CH3CO3 + CO : 	J(35)*2 	;
+{9641.} 	 CCL3CO3H + OH = CCL3CO3 : 	1.90D-12*EXP(190/TEMP) 	;
+{9642.} 	 CCL3CO3H = CCL3O2 + OH : 	J(41) 	;
+{9643.} 	 CCL3PAN = CCL3CO3 + NO2 : 	KBPAN 	;
+{9644.} 	 CLETO2H + OH = CH2CLO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{9645.} 	 CLETO3H + OH = CLETO3 : 	4.29D-12 	;
+{9646.} 	 CLETO3H = CH2CLO2 + OH : 	J(41) 	;
+{9647.} 	 CLETPAN + OH = CHOCL + CO + NO2 : 	6.26D-13 	;
+{9648.} 	 CLETPAN = CLETO3 + NO2 : 	KBPAN 	;
+{9649.} 	 CL2OHCO3H + OH = CL2OHCO3 : 	3.59D-12 	;
+{9650.} 	 CL2OHCO3H = COCL2 + HO2 + OH : 	J(41) 	;
+{9651.} 	 CL2OHPAN + OH = CL2OHCO3 + NO2 : 	6.00D-13 	;
+{9652.} 	 CL2OHPAN = CL2OHCO3 + NO2 : 	KBPAN 	;
+{9653.} 	 CL12CO2H + OH = DICLETO2 : 	2.10D-12 	;
+{9654.} 	 CL12CO3H + OH = CL12CO3 : 	5.65D-12 	;
+{9655.} 	 CL12CO3H = DICLETO2 + OH : 	J(41) 	;
+{9656.} 	 CL12PAN + OH = CH2CLCOCL + CO + NO2 : 	2.42D-12 	;
+{9657.} 	 CL12PAN = CL12CO3 + NO2 : 	KBPAN 	;
+{9658.} 	 CH3COCCLO2 + HO2 = CH3COCLOOH : 	3.30D-13*EXP(820/TEMP) 	;
+{9659.} 	 CH3COCCLO2 + NO = CH3COCCLO + NO2 : 	KRO2NO 	;
+{9660.} 	 CH3COCCLO2 + NO3 = CH3COCCLO + NO2 : 	KRO2NO3 	;
+{9661.} 	 CH3COCCLO2 = CH3COCCLO : 	8.80D-13*RO2 	;
+{9662.} 	 CLCOCLMOOH + OH = CLCOCLMEO2 : 	4.12D-12 	;
+{9663.} 	 CLCOCLMOOH = CLCOCLMEO + OH : 	J(41) 	;
+{9664.} 	 CLCOCLMEO = CH3COCL + CO + CL : 	KDEC 	;
+{9665.} 	 CHCL2CO2H + OH = CHCL2O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{9666.} 	 CHCL2CO3H + OH = CHCL2CO3 : 	3.80D-12 	;
+{9667.} 	 CHCL2CO3H = CHCL2O2 + OH : 	J(41) 	;
+{9668.} 	 CHCL2PAN + OH = COCL2 + CO + NO2 : 	5.70D-13 	;
+{9669.} 	 CHCL2PAN = CHCL2CO3 + NO2 : 	KBPAN 	;
+{9670.} 	 CLCOCH2OOH + OH = CLCOCH2O2 : 	7.25D-12 	;
+{9671.} 	 CLCOCH2OOH = CLCOCH2O + OH : 	J(41) 	;
+{9672.} 	 CLCOCH2O = HCHO + CO + CL : 	KDEC 	;
+{9673.} 	 CLCOCCL2O2 + HO2 = CLCOCL2OOH : 	3.30D-13*EXP(820/TEMP) 	;
+{9674.} 	 CLCOCCL2O2 + NO = CLCOCCL2O + NO2 : 	KRO2NO*1.5 	;
+{9675.} 	 CLCOCCL2O2 + NO3 = CLCOCCL2O + NO2 : 	KRO2NO3 	;
+{9676.} 	 CLCOCCL2O2 = CCL2OHCOCL : 	9.20D-14*0.30*RO2 	;
+{9677.} 	 CLCOCCL2O2 = CLCOCCL2O : 	9.20D-14*0.70*RO2 	;
+{9678.} 	 CLCOCLOOH + OH = CLCOCLO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{9679.} 	 CLCOCLOOH + OH = CLGLYOX + OH : 	4.00D-12 	;
+{9680.} 	 CLCOCLOOH = CLCOCLO + OH : 	J(41) 	;
+{9681.} 	 CLCOCLO = CHOCL + CO + CL : 	KDEC 	;
+{9682.} 	 CLOHCO2H + OH = CHOCL + HO2 : 	2.57D-12 	;
+{9683.} 	 CLOHCO3H + OH = CCLOHCO3 : 	5.67D-12 	;
+{9684.} 	 CLOHCO3H = CHOCL + HO2+ OH : 	J(41) 	;
+{9685.} 	 CLOHPAN + OH = CHOCL + CO + NO2 : 	2.08D-12 	;
+{9686.} 	 CLOHPAN = CCLOHCO3 + NO2 : 	KBPAN 	;
+{9687.} 	 HNMVKOOH = HNMVKO + OH : 	J(41) 	;
+{9688.} 	 HNMVKOOH = NO3CH2CO3 + HOCH2CHO + OH : 	J(22) 	;
+{9689.} 	 OH + HNMVKOOH = HNBIACET + OH : 	3.96D-11 	;
+{9690.} 	 HNMVKO = NO3CH2CO3 + HOCH2CHO : 	KDEC 	;
+{9691.} 	 HNBIACET = NO3CH2CO3 + HOCH2CO3 : 	J(35) 	;
+{9692.} 	 OH + HNBIACET = NCO23CHO + HO2 : 	2.32D-12 	;
+{9693.} 	 HNMVKOH = NO3CH2CO3 + HOCH2CHO + HO2 : 	J(22) 	;
+{9694.} 	 OH + HNMVKOH = HNBIACET + HO2 : 	1.88D-11 	;
+{9695.} 	 OH + NC3CO2H = NO3CH2CHO + CO + HO2 : 	1.52D-11 	;
+{9696.} 	 NC3CO3H = NO3CH2CHO + CO + HO2 + OH : 	J(41) 	;
+{9697.} 	 OH + NC3CO3H = NC3CO3 : 	1.88D-11 	;
+{9698.} 	 C4PAN9 = NC3CO3 + NO2 : 	KBPAN 	;
+{9699.} 	 OH + C4PAN9 = NO3CH2CHO + CO + CO + NO2 : 	1.52D-11 	;
+{9700.} 	 NAOO + CO = NO3CH2CHO : 	1.2D-15 	;
+{9701.} 	 NAOO + NO = NO3CH2CHO + NO2 : 	1.0D-14 	;
+{9702.} 	 NAOO + NO2 = NO3CH2CHO + NO3 : 	1.0D-15 	;
+{9703.} 	 NAOO + SO2 = NO3CH2CHO + SO3 : 	7.0D-14 	;
+{9704.} 	 NAOO = NO3CH2CHO + H2O2 : 	6.0D-18*H2O 	;
+{9705.} 	 NAOO = NO3CH2CO2H : 	1.0D-17*H2O 	;
+{9706.} 	 C42OOH = C42O + OH : 	J(41) 	;
+{9707.} 	 C42OOH = HO2 + CO + HO2 + NMGLYOX : 	J(15) 	;
+{9708.} 	 OH + C42OOH = H3NCO2CHO + OH : 	6.21D-11 	;
+{9709.} 	 C42O = NO3CH2CHO + GLYOX + HO2 : 	KDEC 	;
+{9710.} 	 C42OH = HO2 + CO + HO2 + C42AOH : 	J(15) 	;
+{9711.} 	 OH + C42OH = H3NCO2CHO + HO2 : 	3.53D-11 	;
+{9712.} 	 H3NCO2CHO = NMGLYOX + CO + HO2 + HO2 : 	J(15) 	;
+{9713.} 	 NO3 + H3NCO2CHO = HNO3 + CO + NMGLYOX + HO2 : 	KNO3AL 	;
+{9714.} 	 OH + H3NCO2CHO = CO + NMGLYOX + HO2 : 	2.46D-11 	;
+{9715.} 	 OH + HC3CO2H = CO + HO2 + HOCH2CHO : 	1.88D-11 	;
+{9716.} 	 HC3CO3H = HOCH2CHO + CO + HO2 + OH : 	J(41) 	;
+{9717.} 	 OH + HC3CO3H = HC3CO3 : 	2.23D-11 	;
+{9718.} 	 C4PAN7 = HC3CO3 + NO2 : 	KBPAN 	;
+{9719.} 	 OH + C4PAN7 = HOCH2CHO + CO + CO + NO2 : 	1.87D-11 	;
+{9720.} 	 GAOO + CO = HOCH2CHO : 	1.2D-15 	;
+{9721.} 	 GAOO + NO = HOCH2CHO + NO2 : 	1.0D-14 	;
+{9722.} 	 GAOO + NO2 = HOCH2CHO + NO3 : 	1.0D-15 	;
+{9723.} 	 GAOO + SO2 = HOCH2CHO + SO3 : 	7.0D-14 	;
+{9724.} 	 GAOO = HOCH2CHO + H2O2 : 	6.0D-18*H2O 	;
+{9725.} 	 GAOO = HOCH2CO2H : 	1.0D-17*H2O 	;
+{9726.} 	 C41OOH = C41O + OH : 	J(41) 	;
+{9727.} 	 OH + C41OOH = H13CO2CHO + OH : 	1.39D-10 	;
+{9728.} 	 OH + C41NO3 = H13CO2CHO + NO2 : 	2.50D-11 	;
+{9729.} 	 C41O = GLYOX + HOCH2CHO + HO2 : 	KDEC 	;
+{9730.} 	 C41OH = HOCH2CHO + GLYOX + HO2 + HO2 : 	J(15) 	;
+{9731.} 	 OH + C41OH = H13CO2CHO + HO2 : 	6.59D-11 	;
+{9732.} 	 H13CO2CHO = HOCH2CHO + CO + HO2 + HO2 : 	J(15) 	;
+{9733.} 	 NO3 + H13CO2CHO = H13CO2CO3 + HNO3 : 	KNO3AL*4.0 	;
+{9734.} 	 OH + H13CO2CHO = H13CO2CO3 : 	2.66D-11 	;
+{9735.} 	 HMGLOO + CO = HOCH2COCHO : 	1.20D-15 	;
+{9736.} 	 HMGLOO + NO = HOCH2COCHO + NO2 : 	1.00D-14 	;
+{9737.} 	 HMGLOO + NO2 = HOCH2COCHO + NO3 : 	1.00D-15 	;
+{9738.} 	 HMGLOO + SO2 = HOCH2COCHO + SO3 : 	7.00D-14 	;
+{9739.} 	 HMGLOO = HOCH2COCHO + H2O2 : 	6.00D-18*H2O 	;
+{9740.} 	 HMGLOO = HOCH2COCO2H : 	1.00D-17*H2O 	;
+{9741.} 	 MVKOHAOOH + OH = H13CO2CHO + OH : 	5.98D-11 	;
+{9742.} 	 MVKOHAOOH = MVKOHAO + OH : 	J(41)+J(22) 	;
+{9743.} 	 MVKOHANO3 + OH = H13CO2CHO + NO2 : 	4.37D-12 	;
+{9744.} 	 MVKOHAO = HOCH2COCHO + HCHO + HO2 : 	KDEC 	;
+{9745.} 	 MVKOHAOH + OH = H13CO2CHO + HO2 : 	2.10D-11 	;
+{9746.} 	 MVKOHAOH = HOCH2CO3 + HOCH2CHO + HO2 : 	J(22) 	;
+{9747.} 	 MVKOHBOOH + OH = H14CO23C4 + OH : 	4.39D-12 	;
+{9748.} 	 MVKOHBOOH = HOCH2CHO + HOCH2CO3 + OH : 	J(22) 	;
+{9749.} 	 MVKOHBOOH = MVKOHBO + OH : 	J(41) 	;
+{9750.} 	 MVKOHBO = HOCH2CHO + HOCH2CO3 : 	KDEC 	;
+{9751.} 	 H14CO23C4 + OH = H1CO23CHO + HO2 : 	4.44D-12 	;
+{9752.} 	 H14CO23C4 = HOCH2CO3 + HOCH2CO3 : 	J(35) 	;
+{9753.} 	 HC3CCO3H = HO2 + ACR + OH : 	J(41) 	;
+{9754.} 	 OH + HC3CCO3H = HC3CCO3 : 	4.42D-11 	;
+{9755.} 	 C4PAN8 = HC3CCO3 + NO2 : 	KBPAN 	;
+{9756.} 	 OH + C4PAN8 = ACR + CO + NO2 : 	4.06D-11 	;
+{9757.} 	 NC3OO + CO = NOA : 	1.2D-15 	;
+{9758.} 	 NC3OO + NO = NOA + NO2 : 	1.0D-14 	;
+{9759.} 	 NC3OO + NO2 = NOA + NO3 : 	1.0D-15 	;
+{9760.} 	 NC3OO + SO2 = NOA + SO3 : 	7.0D-14 	;
+{9761.} 	 NC3OO = NOA + H2O2 : 	6.0D-18*H2O 	;
+{9762.} 	 INCOOH = INCO + OH : 	J(41) 	;
+{9763.} 	 OH + INCOOH = INCCO + OH : 	3.31D-11*0.89 	;
+{9764.} 	 OH + INCOOH = INCO2 : 	3.31D-11*0.11 	;
+{9765.} 	 OH + INCNO3 = INCCO + NO2 : 	1.98D-12*0.445 	;
+{9766.} 	 OH + INCNO3 = INCNCHO + HO2 : 	1.98D-12*0.414 	;
+{9767.} 	 OH + INCNO3 = NOA + HOCH2CHO + NO2 : 	1.98D-12*0.141 	;
+{9768.} 	 INCO = NOA + HO2 + HOCH2CHO : 	KDEC 	;
+{9769.} 	 OH + INCCO = INCGLYOX + HO2 : 	3.30D-12 	;
+{9770.} 	 OH + INCOH = INCCO + HO2 : 	1.53D-11 	;
+{9771.} 	 OH + NC4CO2H = NOA + CO + HO2 : 	2.16D-11 	;
+{9772.} 	 NC4CO3H = NOA + CO + HO2 + OH : 	J(41) 	;
+{9773.} 	 OH + NC4CO3H = NC4CO3 : 	2.52D-11 	;
+{9774.} 	 C5PAN18 = NC4CO3 + NO2 : 	KBPAN 	;
+{9775.} 	 OH + C5PAN18 = NOA + CO + CO + NO2 : 	2.16D-11 	;
+{9776.} 	 NOAOO + CO = NOA : 	1.2D-15 	;
+{9777.} 	 NOAOO + NO = NOA + NO2 : 	1.0D-14 	;
+{9778.} 	 NOAOO + NO2 = NOA + NO3 : 	1.0D-15 	;
+{9779.} 	 NOAOO + SO2 = NOA + SO3 : 	7.0D-14 	;
+{9780.} 	 NOAOO = NOA + H2O2 : 	6.0D-18*H2O 	;
+{9781.} 	 C510OOH = C510O + OH : 	J(41) 	;
+{9782.} 	 OH + C510OOH = C510O2 : 	2.81D-11 	;
+{9783.} 	 C510O = NOA + GLYOX + HO2 : 	KDEC 	;
+{9784.} 	 OH + C510OH = C510O : 	2.69D-11 	;
+{9785.} 	 IEACHO = HMVKBO2 + CO + HO2 : 	J(17) 	;
+{9786.} 	 NO3 + IEACHO = IEACO3 + HNO3 : 	KNO3AL*7.5 	;
+{9787.} 	 OH + IEACHO = IEACO3 : 	2.20D-11 	;
+{9788.} 	 NC2OO + CO = NO3CH2CHO : 	1.2D-15 	;
+{9789.} 	 NC2OO + NO = NO3CH2CHO + NO2 : 	1.0D-14 	;
+{9790.} 	 NC2OO + NO2 = NO3CH2CHO + NO3 : 	1.0D-15 	;
+{9791.} 	 NC2OO + SO2 = NO3CH2CHO + SO3 : 	7.0D-14 	;
+{9792.} 	 NC2OO = NO3CH2CHO + H2O2 : 	6.0D-18*H2O 	;
+{9793.} 	 NC2OO = NO3CH2CO2H : 	1.0D-17*H2O 	;
+{9794.} 	 ACLOO + CO = ACETOL : 	1.2D-15 	;
+{9795.} 	 ACLOO + NO = ACETOL + NO2 : 	1.0D-14 	;
+{9796.} 	 ACLOO + NO2 = ACETOL + NO3 : 	1.0D-15 	;
+{9797.} 	 ACLOO + SO2 = ACETOL + SO3 : 	7.0D-14 	;
+{9798.} 	 ACLOO = ACETOL + H2O2 : 	6.0D-18*H2O 	;
+{9799.} 	 INAOOH = INAO + OH : 	J(41) 	;
+{9800.} 	 OH + INAOOH = INAHPCHO + HO2 : 	1.01D-11*0.65 	;
+{9801.} 	 OH + INAOOH = INAO2 : 	1.01D-11*0.35 	;
+{9802.} 	 OH + INANO3 = ACETOL + NO2 + NO3CH2CHO : 	2.00D-12*0.07 	;
+{9803.} 	 OH + INANO3 = C58NO3 + NO2 : 	2.00D-12*0.39 	;
+{9804.} 	 OH + INANO3 = HCHO + NO2 + HMVKANO3 : 	2.00D-12*0.07 	;
+{9805.} 	 OH + INANO3 = INANCHO + HO2 : 	2.00D-12*0.33 	;
+{9806.} 	 OH + INANO3 = INANCO + HO2 : 	2.00D-12*0.14 	;
+{9807.} 	 INAO = ACETOL + NO3CH2CHO + HO2 : 	KDEC 	;
+{9808.} 	 OH + INAOH = INAHCHO + HO2 : 	6.68D-12 	;
+{9809.} 	 C524OOH + OH = C524CO + OH : 	1.18D-10*0.22 	;
+{9810.} 	 C524OOH + OH = C524O2 : 	1.18D-10*0.03 	;
+{9811.} 	 C524OOH + OH = HIEPOXB + OH : 	1.18D-10*0.75 	;
+{9812.} 	 C524OOH = C524O + OH : 	J(41) 	;
+{9813.} 	 C524NO3 + OH = C524O + NO2 : 	J(54) 	;
+{9814.} 	 C524NO3 + OH = NC524O2 : 	2.94D-11 	;
+{9815.} 	 C524O = HMACR + HCHO + HO2 : 	KDEC 	;
+{9816.} 	 C524CO + OH = C525O2 : 	4.21D-11 	;
+{9817.} 	 C524CO = HOCH2CO3 + HOCH2CO3 + HCHO : 	J(24) 	;
+{9818.} 	 C524OH + OH = C524CO + HO2 : 	7.78D-11 	;
+{9819.} 	 OH + HC4ACO2H = ACETOL + CO + HO2 : 	2.52D-11 	;
+{9820.} 	 HC4ACO3H = ACETOL + CO + HO2 + OH : 	J(41) 	;
+{9821.} 	 OH + HC4ACO3H = HC4ACO3 : 	2.88D-11 	;
+{9822.} 	 C5PAN17 = HC4ACO3 + NO2 : 	KBPAN 	;
+{9823.} 	 OH + C5PAN17 = MACROH + CO + NO2 : 	2.52D-11 	;
+{9824.} 	 C58OOH = C58O + OH : 	J(41) 	;
+{9825.} 	 OH + C58OOH = C58O2 : 	3.16D-11 	;
+{9826.} 	 C58NO3 = HO2 + CO + MACRNO3 + HO2 : 	J(15) 	;
+{9827.} 	 OH + C58NO3 = C58NO3CO3 : 	2.32D-11 	;
+{9828.} 	 C58O = ACETOL + GLYOX + HO2 : 	KDEC 	;
+{9829.} 	 OH + C58OH = C58O : 	3.04D-11 	;
+{9830.} 	 IEB1O2 + HO2 = IEB1OOH : 	KRO2HO2*0.706 	;
+{9831.} 	 IEB1O2 + NO = IEB1O + NO2 : 	KRO2NO 	;
+{9832.} 	 IEB1O2 + NO3 = IEB1O + NO2 : 	KRO2NO3 	;
+{9833.} 	 IEB1O2 = IEB1O : 	9.20D-14*RO2 	;
+{9834.} 	 IEB2O2 + HO2 = IEB2OOH : 	KRO2HO2*0.706 	;
+{9835.} 	 IEB2O2 + NO = IEB2O + NO2 : 	KRO2NO 	;
+{9836.} 	 IEB2O2 + NO3 = IEB2O + NO2 : 	KRO2NO3 	;
+{9837.} 	 IEB2O2 = IEB2O : 	8.80D-13*RO2 	;
+{9838.} 	 MACRNOO + CO = MACRNO3 : 	1.2D-15 	;
+{9839.} 	 MACRNOO + NO = MACRNO3 + NO2 : 	1.0D-14 	;
+{9840.} 	 MACRNOO + NO2 = MACRNO3 + NO3 : 	1.0D-15 	;
+{9841.} 	 MACRNOO + SO2 = MACRNO3 + SO3 : 	7.0D-14 	;
+{9842.} 	 MACRNOO = MACRNCO2H : 	1.0D-17*H2O 	;
+{9843.} 	 MACRNOO = MACRNO3 + H2O2 : 	6.0D-18*H2O 	;
+{9844.} 	 CONM2CHO + OH = CONM2CO3 : 	6.78D-12 	;
+{9845.} 	 CONM2CHO = MGLYOX + NO2 + CO + HO2 : 	J(56)+J(57)*2 	;
+{9846.} 	 MACRNCO3 + HO2 = ACETOL + NO2 + OH : 	KAPHO2*0.44 	;
+{9847.} 	 MACRNCO3 + HO2 = MACRNCO2H + O3 : 	KAPHO2*0.15 	;
+{9848.} 	 MACRNCO3 + HO2 = MACRNCO3H : 	KAPHO2*0.41 	;
+{9849.} 	 MACRNCO3 + NO = ACETOL + NO2 + NO2 : 	KAPNO 	;
+{9850.} 	 MACRNCO3 + NO2 = MACRNPAN : 	KFPAN 	;
+{9851.} 	 MACRNCO3 + NO3 = ACETOL + NO2 + NO2 : 	KRO2NO3*1.74 	;
+{9852.} 	 MACRNCO3 = ACETOL + NO2 : 	1.00D-11*0.7*RO2 	;
+{9853.} 	 MACRNCO3 = MACRNCO2H : 	1.00D-11*0.3*RO2 	;
+{9854.} 	 INB1OOH + OH = INB1CO + OH : 	1.27D-11*0.35 	;
+{9855.} 	 INB1OOH + OH = INB1HPCHO : 	1.27D-11*0.34 	;
+{9856.} 	 INB1OOH + OH = INB1O2 : 	1.27D-11*0.31 	;
+{9857.} 	 INB1OOH = INB1O + OH : 	J(41) 	;
+{9858.} 	 INB1NO3 + OH = INB1NACHO + HO2 : 	1.63D-12*0.50 	;
+{9859.} 	 INB1NO3 + OH = INB1NBCHO + HO2 : 	1.63D-12*0.50 	;
+{9860.} 	 INB1O = HOCH2CHO + ACETOL + NO2 : 	KDEC 	;
+{9861.} 	 INB1CO + OH = INB1GLYOX + HO2 : 	3.27D-12 	;
+{9862.} 	 INB1CO = ACETOL + NO2 + HOCH2CO3 : 	J(56)+J(57) 	;
+{9863.} 	 INB1OH + OH = C58NO3 + HO2 : 	6.65D-12*0.71 	;
+{9864.} 	 INB1OH + OH = INB1CO + HO2 : 	6.65D-12*0.29 	;
+{9865.} 	 INB2OOH + OH = C58NO3 + OH : 	1.59D-11*0.73 	;
+{9866.} 	 INB2OOH + OH = INB2O2 : 	1.59D-11*0.27 	;
+{9867.} 	 INB2OOH = INB2O + OH : 	J(41) 	;
+{9868.} 	 INB2O = C57NO3 + HO2 : 	KDEC 	;
+{9869.} 	 IEC1O2 + HO2 = IEC1OOH : 	KRO2HO2*0.706 	;
+{9870.} 	 IEC1O2 + NO = IEC1O + NO2 : 	KRO2NO 	;
+{9871.} 	 IEC1O2 + NO3 = IEC1O + NO2 : 	KRO2NO3 	;
+{9872.} 	 IEC1O2 = IEC1O : 	9.20D-14*RO2 	;
+{9873.} 	 IECCHO = MACRO2 + HO2 + CO : 	J(15) 	;
+{9874.} 	 NO3 + IECCHO = IECCO3 + HNO3 : 	KNO3AL*7.5 	;
+{9875.} 	 OH + IECCHO = IECCO3 : 	2.76D-11 	;
+{9876.} 	 OH + HC4CCO2H = CH3CO3 + HOCH2CHO : 	2.52D-11 	;
+{9877.} 	 HC4CCO3H = HOCH2CHO + CH3CO3 + OH : 	J(41) 	;
+{9878.} 	 OH + HC4CCO3H = HC4CCO3 : 	2.88D-11 	;
+{9879.} 	 C5PAN19 = HC4CCO3 + NO2 : 	KBPAN 	;
+{9880.} 	 OH + C5PAN19 = HO12CO3C4 + CO + NO2 : 	2.52D-11 	;
+{9881.} 	 C57OOH = C57O + OH : 	J(41) 	;
+{9882.} 	 OH + C57OOH = C57O2 : 	3.16D-11 	;
+{9883.} 	 C57O = MGLYOX + HOCH2CHO + HO2 : 	KDEC 	;
+{9884.} 	 OH + C57OH = C57O : 	3.04D-11 	;
+{9885.} 	 CO2N3CHO + OH = CO2N3CO3 : 	7.20D-12 	;
+{9886.} 	 CO2N3CHO = CO + HO2 + MGLYOX + NO2 : 	J(15) 	;
+{9887.} 	 NC4OO + CO = MVKNO3 : 	1.2D-15 	;
+{9888.} 	 NC4OO + NO = MVKNO3 + NO2 : 	1.0D-14 	;
+{9889.} 	 NC4OO + NO2 = MVKNO3 + NO3 : 	1.0D-15 	;
+{9890.} 	 NC4OO + SO2 = MVKNO3 + SO3 : 	7.0D-14 	;
+{9891.} 	 NC4OO = MVKNO3 + H2O2 : 	6.0D-18*H2O 	;
+{9892.} 	 INDOOH + OH = INDHPCHO + HO2 : 	9.20D-12*0.61 	;
+{9893.} 	 INDOOH + OH = INDO2 : 	9.20D-12*0.39 	;
+{9894.} 	 INDOOH = INDO + OH : 	J(41) 	;
+{9895.} 	 INDO = ACETOL + HOCH2CHO + NO2 : 	1.80D+13*(TEMP/298)**1.7*EXP(-4733/TEMP) 	;
+{9896.} 	 INDO = HCHO + HO2 + MVKNO3 : 	1.80D+13*(TEMP/298)**1.7*EXP(-4079/TEMP) 	;
+{9897.} 	 INDOH + OH = INDHCHO + HO2 : 	5.60D-12 	;
+{9898.} 	 C59OOH = C59O + OH : 	J(41) 	;
+{9899.} 	 C59OOH = HOCH2CO3 + ACETOL + OH : 	J(22) 	;
+{9900.} 	 OH + C59OOH = C59O2 : 	9.70D-12 	;
+{9901.} 	 C59O = ACETOL + HOCH2CO3 : 	KDEC 	;
+{9902.} 	 ALCOMOXOOH + OH = CHOCOMOXO2 : 	1.99D-11 	;
+{9903.} 	 ALCOMOXOOH = CHOCOMOXO + OH : 	J(41) 	;
+{9904.} 	 CHOCOMOXO = HCHO + HO2 + CO : 	KDEC 	;
+{9905.} 	 ACETMECO3H + OH = ACETMECO3 : 	4.55D-12 	;
+{9906.} 	 ACETMECO3H = METHACETO2 + OH : 	J(41) 	;
+{9907.} 	 ACETMEPAN + OH = METACETHO + CO + NO2 : 	9.55D-13 	;
+{9908.} 	 ACETMEPAN = ACETMECO3 + NO2 : 	KBPAN 	;
+{9909.} 	 HOACETEOOH + OH = HOACETETO2 : 	3.95D-11 	;
+{9910.} 	 HOACETEOOH = HOACETETO + OH : 	J(41) 	;
+{9911.} 	 HOACETETO = CH3CHO + HCHO + HO2 : 	KDEC 	;
+{9912.} 	 MECOACEOOH + OH = MECOACETO2 : 	3.59D-12 	;
+{9913.} 	 MECOACEOOH = MECOACETO + OH : 	J(41) 	;
+{9914.} 	 MECOACETO = CH3CO3 + HCHO : 	KDEC 	;
+{9915.} 	 ACPRONEOOH + OH = ACPRONEO2 : 	3.08D-11 	;
+{9916.} 	 ACPRONEOOH = ACPRONEO + OH : 	J(41) 	;
+{9917.} 	 ACPRONEO = METACETHO + CH3CO3 : 	KDEC 	;
+{9918.} 	 ACECOCOCH3 + OH = ACCOCOMEO2 : 	1.09D-13 	;
+{9919.} 	 ACECOCOCH3 = CH3CO3 + CH3CO3 : 	J(22) 	;
+{9920.} 	 ACPRONEOH + OH = ACECOCOCH3 + HO2 : 	2.23D-12 	;
+{9921.} 	 ACCOETOOH + OH = ACCOETO2 : 	5.15D-11 	;
+{9922.} 	 ACCOETOOH = ACCOETO + OH : 	J(41) 	;
+{9923.} 	 ACCOETO = ACCOMECHO + HO2 : 	KROPRIM*O2 	;
+{9924.} 	 ACETC2CO2H + OH = ACETC2H4O2 : 	6.39D-12 	;
+{9925.} 	 ACETC2CO3H + OH = ACETC2CO3 : 	9.94D-12 	;
+{9926.} 	 ACETC2CO3H = ACETC2H4O2 + OH : 	J(41) 	;
+{9927.} 	 ACETC2PAN + OH = ACETETCHO + CO + NO2 : 	5.53D-12 	;
+{9928.} 	 ACETC2PAN = ACETC2CO3 + NO2 : 	KBPAN 	;
+{9929.} 	 IPRACBCO2H + OH = ETHACETO2 : 	2.76D-12 	;
+{9930.} 	 IPRACBCO3H + OH = IPRACBCO3 : 	6.31D-12 	;
+{9931.} 	 IPRACBCO3H = ETHACETO2 + OH : 	J(41) 	;
+{9932.} 	 IPRACBPAN + OH = METHCOACET + CO + NO2 : 	2.72D-12 	;
+{9933.} 	 IPRACBPAN = IPRACBCO3 + NO2 : 	KBPAN 	;
+{9934.} 	 ACBUOAOOH + OH = ACBUONEAO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{9935.} 	 ACBUOAOOH + OH = ACCOPRONE + OH : 	1.58D-10 	;
+{9936.} 	 ACBUOAOOH = ACBUONEAO + OH : 	J(41)+J(22) 	;
+{9937.} 	 ACBUONANO3 + OH = ACCOPRONE + NO2 : 	2.47D-12 	;
+{9938.} 	 ACBUONANO3 = ACBUONEAO + NO2 : 	J(54) 	;
+{9939.} 	 ACBUONEAO = CO2C3CHO + CH3O2 : 	KDEC 	;
+{9940.} 	 ACBUONAOH + OH = ACCOPRONE + HO2 : 	4.21D-11 	;
+{9941.} 	 ACBUONAOH = ACEETOHO2 + CH3CO3 : 	J(22) 	;
+{9942.} 	 ACCOPRONE + OH = ACCOMCOMO2 : 	1.09D-13 	;
+{9943.} 	 ACCOPRONE = MECOACETO2 + CH3CO3 : 	J(22) 	;
+{9944.} 	 ACBUONBOOH + OH = ACBUONEBO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{9945.} 	 ACBUONBOOH + OH = ACCOCOC2H5 + OH : 	2.84D-11 	;
+{9946.} 	 ACBUONBOOH = ACBUONEBO + OH : 	J(41) 	;
+{9947.} 	 ACBUONBOOH = METACETHO + C2H5CO3 + OH : 	J(22) 	;
+{9948.} 	 ACBUONEBO = EGLYOX + CH3O2 : 	KDEC 	;
+{9949.} 	 ACBUONBOH + OH = ACCOCOC2H5 + HO2 : 	8.40D-12 	;
+{9950.} 	 ACBUONBOH = METACETHO + C2H5CO3 + HO2 : 	J(22) 	;
+{9951.} 	 ACCOCOC2H5 + OH = ACCOCOETO2 : 	1.27D-12 	;
+{9952.} 	 ACCOCOC2H5 = C2H5CO3 + CH3CO3 : 	J(22) 	;
+{9953.} 	 ACCOPROOH + OH = ACCOC3H6O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{9954.} 	 ACCOPROOH + OH = ACCOPRONE + OH : 	1.05D-10 	;
+{9955.} 	 ACCOPROOH = ACCOC3H6O + OH : 	J(41) 	;
+{9956.} 	 ACCOC3H6O = ACCOPRONE + HO2 : 	KROSEC*O2 	;
+{9957.} 	 ACCOC3H6O = MECOACETO2 + CH3CHO : 	2.70D+14*EXP(-6543/TEMP) 	;
+{9958.} 	 SBUACCOOH + OH = SBUACONEO2 : 	4.33D-12 	;
+{9959.} 	 SBUACCOOH = METHCOACET + CH3CO3 + OH : 	J(22) 	;
+{9960.} 	 SBUACCOOH = SBUACONEO + OH : 	J(41) 	;
+{9961.} 	 SBUACONEO = METHCOACET + CH3CO3 : 	KDEC 	;
+{9962.} 	 SBUACCOH + OH = METHCOACET + CH3CO3 : 	7.79D-13 	;
+{9963.} 	 SBUACCOH = METHCOACET + CH3CO3 + HO2 : 	J(22) 	;
+{9964.} 	 TBUACCO3H + OH = TBUACCO3 : 	5.23D-12 	;
+{9965.} 	 TBUACCO3H = IPROACETO2 + OH : 	J(41) 	;
+{9966.} 	 TBUACPAN + OH = METHCOACET + HCHO + CO + NO2 : 	1.63D-12 	;
+{9967.} 	 TBUACPAN = TBUACCO3 + NO2 : 	KBPAN 	;
+{9968.} 	 ETHFORMO2 + HO2 = ETHFORMOOH : 	KRO2HO2*0.520*0.6 	;
+{9969.} 	 ETHFORMO2 + HO2 = METACETHO : 	KRO2HO2*0.520*0.4 	;
+{9970.} 	 ETHFORMO2 + NO = ETHFORMNO3 : 	KRO2NO*0.047 	;
+{9971.} 	 ETHFORMO2 + NO = ETHFORMO + NO2 : 	KRO2NO*0.953 	;
+{9972.} 	 ETHFORMO2 + NO3 = ETHFORMO + NO2 : 	KRO2NO3 	;
+{9973.} 	 ETHFORMO2 = ETHFORMO : 	8.80D-13*0.6*RO2 	;
+{9974.} 	 ETHFORMO2 = ETHFORMOH : 	8.80D-13*0.2*RO2 	;
+{9975.} 	 ETHFORMO2 = METACETHO : 	8.80D-13*0.2*RO2 	;
+{9976.} 	 MTBEAALOOH + OH = MTBEACHO13 + OH : 	1.44D-11 	;
+{9977.} 	 MTBEAALOOH + OH = MTBEACHOO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{9978.} 	 MTBEAALOOH = MTBEACHOO + OH : 	J(41) 	;
+{9979.} 	 MTBEAALNO3 + OH = MTBEACHO13 + NO2 : 	5.67D-13 	;
+{9980.} 	 MTBEAALNO3 = MTBEACHOO + NO2 : 	J(53) 	;
+{9981.} 	 MTBEACHOO = MTBEACHO13 + HO2 : 	KROPRIM*O2 	;
+{9982.} 	 MTBEACHO13 + NO3 = MTBEAALCO3 + HNO3 : 	KNO3AL*8.5 	;
+{9983.} 	 MTBEACHO13 + OH = MTBEAALCO3 : 	2.12D-11 	;
+{9984.} 	 MTBEACHO13 = CH3COCH3 + HCHO + HO2 + CO : 	J(17) 	;
+{9985.} 	 MTBEACHOHO + OH = MTBEACHO13 + HO2 : 	4.08D-13 	;
+{9986.} 	 IPRMEETO2 + HO2 = IPRMETOOH : 	KRO2HO2*0.625 	;
+{9987.} 	 IPRMEETO2 + NO = IPRMEETO + NO2 : 	KRO2NO 	;
+{9988.} 	 IPRMEETO2 + NO3 = IPRMEETO + NO2 : 	KRO2NO3 	;
+{9989.} 	 IPRMEETO2 = IPRMEETO : 	9.20D-14*0.7*RO2 	;
+{9990.} 	 IPRMEETO2 = IPRMEETOH : 	9.20D-14*0.3*RO2 	;
+{9991.} 	 MTBEBCO2H + OH = IPRMEETO2 : 	2.15D-12 	;
+{9992.} 	 MTBEBCO3H + OH = MTBEBCO3 : 	5.74D-12 	;
+{9993.} 	 MTBEBCO3H = IPRMEETO2 + OH : 	J(41) 	;
+{9994.} 	 MTBEBPAN + OH = METHACET + HCHO + CO + NO2 : 	2.15D-12 	;
+{9995.} 	 MTBEBPAN = MTBEBCO3 + NO2 : 	KBPAN 	;
+{9996.} 	 IPROC21OOH + OH = IPROACET + OH : 	2.00D-10 	;
+{9997.} 	 IPROC21OOH = IPROC21O + OH : 	J(41) 	;
+{9998.} 	 IPROC21NO3 + OH = IPROACET + NO2 : 	6.24D-12 	;
+{9999.} 	 IPROC21NO3 = IPROC21O + NO2 : 	J(54) 	;
+{10000.} 	 IPROC21O = IPROCHO + CH3O2 : 	KDEC 	;
+{10001.} 	 IPROC21OH + OH = IPROACET + HO2 : 	6.28D-11 	;
+{10002.} 	 IPROMCCO3H + OH = IPROMCCO3 : 	2.19D-11 	;
+{10003.} 	 IPROMCCO3H = IPROC21O2 + OH : 	J(41) 	;
+{10004.} 	 IPROMCPAN + OH = IPROACET + CO + NO2 : 	1.83D-11 	;
+{10005.} 	 IPROMCPAN = IPROMCCO3 + NO2 : 	KBPAN 	;
+{10006.} 	 EIPEOOH + OH = EIPEO2 : 	9.26D-12 	;
+{10007.} 	 EIPEOOH = EIPEO + OH : 	J(41) 	;
+{10008.} 	 EIPEO = ETHACET + CH3O2 : 	KDEC 	;
+{10009.} 	 EIPEOH + OH = EIPEO : 	5.70D-12 	;
+{10010.} 	 ETBEACO3H + OH = ETBEACO3 : 	6.57D-12 	;
+{10011.} 	 ETBEACO3H = EIPEO2 + OH : 	J(41) 	;
+{10012.} 	 ETBEAPAN + OH = ETHACET + HCHO + CO + NO2 : 	5.57D-12 	;
+{10013.} 	 ETBEAPAN = ETBEACO3 + NO2 : 	KBPAN 	;
+{10014.} 	 ETBECCO3H + OH = ETBECCO3 : 	1.09D-11 	;
+{10015.} 	 ETBECCO3H = MTBEAO2 + OH : 	J(41) 	;
+{10016.} 	 ETBECPAN + OH = MTBEACHO + CO + NO2 : 	7.32D-12 	;
+{10017.} 	 ETBECPAN = ETBECCO3 + NO2 : 	KBPAN 	;
+{10018.} 	 CHOOMCO3 + HO2 = CHOOCH2O2 + OH : 	KAPHO2*0.44 	;
+{10019.} 	 CHOOMCO3 + HO2 = CHOOMCO2H + O3 : 	KAPHO2*0.15 	;
+{10020.} 	 CHOOMCO3 + HO2 = CHOOMCO3H : 	KAPHO2*0.41 	;
+{10021.} 	 CHOOMCO3 + NO = CHOOCH2O2 + NO2 : 	KAPNO 	;
+{10022.} 	 CHOOMCO3 + NO2 = CHOOMPAN : 	KFPAN 	;
+{10023.} 	 CHOOMCO3 + NO3 = CHOOCH2O2 + NO2 : 	KRO2NO3*1.74 	;
+{10024.} 	 CHOOMCO3 = CHOOCH2O2 : 	1.00D-11*0.7*RO2 	;
+{10025.} 	 CHOOMCO3 = CHOOMCO2H : 	1.00D-11*0.3*RO2 	;
+{10026.} 	 PRONFORMO2 + HO2 = PRNFORMOOH : 	KRO2HO2*0.625 	;
+{10027.} 	 PRONFORMO2 + NO = PRONFORMO + NO2 : 	KRO2NO 	;
+{10028.} 	 PRONFORMO2 + NO3 = PRONFORMO + NO2 : 	KRO2NO3 	;
+{10029.} 	 PRONFORMO2 = PRONFORMO : 	8.80D-13*RO2 	;
+{10030.} 	 PRCOOMCO3 + HO2 = PRCOOMCO3H : 	KAPHO2*0.56 	;
+{10031.} 	 PRCOOMCO3 + HO2 = PRCOOMO2 + OH : 	KAPHO2*0.44 	;
+{10032.} 	 PRCOOMCO3 + NO = PRCOOMO2 + NO2 : 	KAPNO 	;
+{10033.} 	 PRCOOMCO3 + NO2 = PRCOOMPAN : 	KFPAN 	;
+{10034.} 	 PRCOOMCO3 + NO3 = PRCOOMO2 + NO2 : 	KRO2NO3*1.74 	;
+{10035.} 	 PRCOOMCO3 = PRCOOMO2 : 	1.00D-11*RO2 	;
+{10036.} 	 PRCOOMO2 + HO2 = PRCOOMOOH : 	KRO2HO2*0.706 	;
+{10037.} 	 PRCOOMO2 + NO = PRCOOMO + NO2 : 	KRO2NO 	;
+{10038.} 	 PRCOOMO2 + NO3 = PRCOOMO + NO2 : 	KRO2NO3 	;
+{10039.} 	 PRCOOMO2 = PRCOOMO : 	2.00D-12*RO2 	;
+{10040.} 	 BOXCOCHOO2 + HO2 = BOXCOALOOH : 	KRO2HO2*0.770 	;
+{10041.} 	 BOXCOCHOO2 + NO = BOXCOCHOO + NO2 : 	KRO2NO 	;
+{10042.} 	 BOXCOCHOO2 + NO3 = BOXCOCHOO + NO2 : 	KRO2NO3 	;
+{10043.} 	 BOXCOCHOO2 = BOXCOCHOO : 	8.80D-13*RO2 	;
+{10044.} 	 BOXFORMO2 + HO2 = BUFORMOOH : 	KRO2HO2*0.625 	;
+{10045.} 	 BOXFORMO2 + NO = BUFORMO + NO2 : 	KRO2NO 	;
+{10046.} 	 BOXFORMO2 + NO3 = BUFORMO + NO2 : 	KRO2NO3 	;
+{10047.} 	 BOXFORMO2 = BUFORMO : 	8.80D-13*0.6*RO2 	;
+{10048.} 	 BOXFORMO2 = BUOHFORM : 	8.80D-13*0.2*RO2 	;
+{10049.} 	 BOXFORMO2 = PRCOFORM : 	8.80D-13*0.2*RO2 	;
+{10050.} 	 PRONOCOPO2 + HO2 = PRNOCOPOOH : 	KRO2HO2*0.820 	;
+{10051.} 	 PRONOCOPO2 + NO = PRONOCOPO + NO2 : 	KRO2NO 	;
+{10052.} 	 PRONOCOPO2 + NO3 = PRONOCOPO + NO2 : 	KRO2NO3 	;
+{10053.} 	 PRONOCOPO2 = PRONOCOPO : 	8.80D-13*RO2 	;
+{10054.} 	 BOXCOOLOOH + OH = BOXCOEOLO2 : 	5.29D-11 	;
+{10055.} 	 BOXCOOLOOH = BOXCOEOLO + OH : 	J(41) 	;
+{10056.} 	 BOXCOEOLO = C3H7CHO + CH3CHO + HO2 : 	KDEC 	;
+{10057.} 	 BOXCOCOMO2 + HO2 = BOX2COMOOH : 	KRO2HO2*0.820 	;
+{10058.} 	 BOXCOCOMO2 + NO = BOXCOCOMO + NO2 : 	KRO2NO 	;
+{10059.} 	 BOXCOCOMO2 + NO3 = BOXCOCOMO + NO2 : 	KRO2NO3 	;
+{10060.} 	 BOXCOCOMO2 = BOXCOCOMO : 	8.80D-13*RO2 	;
+{10061.} 	 BRETO2H + OH = CH2BRO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{10062.} 	 BRETO3H + OH = BRETO3 : 	3.79D-12 	;
+{10063.} 	 BRETO3H = CH2BRO2 + OH : 	J(41) 	;
+{10064.} 	 BRETPAN + OH = CHOBR + CO + NO2 : 	5.56D-13 	;
+{10065.} 	 BRETPAN = BRETO3 + NO2 : 	KBPAN 	;
+{10066.} 	 HOCO3C4OOH + OH = HO1CO3C4O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{10067.} 	 HOCO3C4OOH + OH = HO1CO3CHO + OH : 	2.16D-11 	;
+{10068.} 	 HOCO3C4OOH = HO1CO3C4O + OH : 	J(41)+J(22) 	;
+{10069.} 	 HO1CO3C4O = HOC2H4CO3 + HCHO : 	KDEC 	;
+{10070.} 	 HO14CO2C4 + OH = HO1CO3CHO + HO2 : 	1.57D-11 	;
+{10071.} 	 HO14CO2C4 = HOCH2CO3 + HOCH2CH2O2 : 	J(22) 	;
+{10072.} 	 HO1CO3CHO + NO3 = HOC2H4CO3 + CO + HNO3 : 	KNO3AL*4.0 	;
+{10073.} 	 HO1CO3CHO + OH = HOC2H4CO3 + CO : 	2.56D-11 	;
+{10074.} 	 HO1CO3CHO = HOC2H4CO3 + HO2 + CO : 	J(34) 	;
+{10075.} 	 BIACETOOH = BIACETO + OH : 	J(41)+J(35) 	;
+{10076.} 	 OH + BIACETOOH = BIACETO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{10077.} 	 OH + BIACETOOH = CO23C3CHO + OH : 	5.99D-12 	;
+{10078.} 	 BIACETO = CH3CO3 + HCHO + CO : 	KDEC 	;
+{10079.} 	 HOCO4C5OOH + OH = HO2CO4C5O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{10080.} 	 HOCO4C5OOH + OH = HO2CO4CHO + OH : 	3.67D-11 	;
+{10081.} 	 HOCO4C5OOH = HO2CO4C5O + OH : 	J(41)+J(22) 	;
+{10082.} 	 HO2CO4C5O = CO2C3CO3 + HCHO : 	KDEC 	;
+{10083.} 	 HO14CO2C5 + OH = HO1CO24C5 + HO2 : 	3.06D-11 	;
+{10084.} 	 HO14CO2C5 = IPROPOLO2 + HOCH2CO3 : 	J(22) 	;
+{10085.} 	 HO2CO4CHO + OH = CO24C4CHO + HO2 : 	3.02D-11 	;
+{10086.} 	 HO2CO4CHO = HO2C3CO3 + HO2 + CO : 	J(34) 	;
+{10087.} 	 CO23C54OOH + OH = CO23C54O2 : 	2.24D-11 	;
+{10088.} 	 CO23C54OOH = CO23C54O + OH : 	J(41)+J(35) 	;
+{10089.} 	 CO23C54O = CH3CHO + CH3CO3 + CO : 	KDEC 	;
+{10090.} 	 HOCO3C5OOH + OH = HOCO3C54O2 : 	3.57D-11 	;
+{10091.} 	 HOCO3C5OOH = CH3CHO + HOC2H4CO3 + OH : 	J(22) 	;
+{10092.} 	 HOCO3C5OOH = HOCO3C54O + OH : 	J(41) 	;
+{10093.} 	 HOCO3C54O = CH3CHO + HOC2H4CO3 : 	KDEC 	;
+{10094.} 	 HO14CO3C5 + OH = HO1CO34C5 + HO2 : 	1.88D-11 	;
+{10095.} 	 HO14CO3C5 = CH3CHO + HOC2H4CO3 : 	J(22) 	;
+{10096.} 	 HO1CO34C5 = CH3CO3 + HOC2H4CO3 : 	J(35) 	;
+{10097.} 	 OH + HO1CO34C5 = CO23C4CHO + HO2 : 	1.39D-11 	;
+{10098.} 	 C53OOH = C53O + OH : 	J(41) 	;
+{10099.} 	 C53OOH = HCHO + HOIPRCO3 + OH : 	J(22) 	;
+{10100.} 	 OH + C53OOH = C53O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{10101.} 	 OH + C53OOH = HOIPRGLYOX + OH : 	3.26D-11 	;
+{10102.} 	 C53O = HCHO + HOIPRCO3 : 	KDEC 	;
+{10103.} 	 C53OH = HCHO + HOIPRCO3 + HO2 : 	J(22) 	;
+{10104.} 	 OH + C53OH = HOIPRGLYOX + HO2 : 	1.72D-11 	;
+{10105.} 	 HOIPRGLYOX = HOIPRCO3 + CO + HO2 : 	J(34) 	;
+{10106.} 	 OH + HOIPRGLYOX = HOIPRCO3 + CO : 	2.72D-11 	;
+{10107.} 	 C41CO2H = CH3CO3 + C2H5O2 : 	J(22) 	;
+{10108.} 	 OH + C41CO2H = MEKBO2 : 	4.00D-12 	;
+{10109.} 	 C41CO3H = CH3CO3 + C2H5CO3 : 	J(22) 	;
+{10110.} 	 C41CO3H = MEKBO2 + OH : 	J(41) 	;
+{10111.} 	 OH + C41CO3H = C41CO3 : 	7.56D-12 	;
+{10112.} 	 C5PAN7 = C41CO3 + NO2 : 	KBPAN 	;
+{10113.} 	 OH + C5PAN7 = BIACET + CO + NO2 : 	3.96D-12 	;
+{10114.} 	 CO2HOC6OOH + OH = CO2HOC61O2 : 	4.93D-11 	;
+{10115.} 	 CO2HOC6OOH = CO2HOC61O + OH : 	J(41)+J(22) 	;
+{10116.} 	 CO2HOC61O = HO3C4CO3 + HCHO : 	KDEC 	;
+{10117.} 	 CO24C6OOH + OH = CO235C6 + OH : 	1.93D-11 	;
+{10118.} 	 CO24C6OOH + OH = CO24C6O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{10119.} 	 CO24C6OOH = CH3CHO + CO2C3CO3 : 	J(22) 	;
+{10120.} 	 CO24C6OOH = CO24C6O + OH : 	J(22)+J(41) 	;
+{10121.} 	 CO24C6O = CO2C3CO3 + CH3CHO : 	KDEC 	;
+{10122.} 	 CO25C6OOH = CH3CO3 + CO2C3CHO + OH : 	J(22)*2 	;
+{10123.} 	 CO25C6OOH = CO25C6O + OH : 	J(41) 	;
+{10124.} 	 OH + CO25C6OOH = CO235C6 + OH : 	5.42D-11 	;
+{10125.} 	 CO25C6O = CO2C3CHO + CH3CO3 : 	KDEC 	;
+{10126.} 	 CO235C6 = CH3CO3 + CH3COCH2O2 + CO : 	J(22) 	;
+{10127.} 	 CO235C6 = CH3CO3 + CO2C3CO3 : 	J(35) 	;
+{10128.} 	 OH + CO235C6 = C62O2 : 	7.29D-13 	;
+{10129.} 	 CO25C6OH = CH3CO3 + CO2C3CHO + HO2 : 	J(22)*2 	;
+{10130.} 	 OH + CO25C6OH = CO235C6 + HO2 : 	2.29D-11 	;
+{10131.} 	 HO2C4OOH = HO2C4O + OH : 	J(41) 	;
+{10132.} 	 OH + HO2C4OOH = HO2C3CHO + OH : 	1.97D-11 	;
+{10133.} 	 OH + HO2C4OOH = HO2C4O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{10134.} 	 HO2C4NO3 = HO2C4O + NO2 : 	J(53) 	;
+{10135.} 	 OH + HO2C4NO3 = HO2C3CHO + NO2 : 	8.93D-12 	;
+{10136.} 	 HO2C4O = HO13C4O2 : 	3.05D+11*EXP(-4240/TEMP) 	;
+{10137.} 	 HO2C4O = HO2C3CHO + HO2 : 	KROPRIM*O2 	;
+{10138.} 	 C61OOH = C61O + OH : 	J(41)+J(22) 	;
+{10139.} 	 OH + C61OOH = C61CO + OH : 	9.12D-11 	;
+{10140.} 	 C61NO3 = C61O + NO2 : 	J(54)+J(22) 	;
+{10141.} 	 OH + C61NO3 = C61CO + NO2 : 	2.04D-12 	;
+{10142.} 	 C61O = CO2C3CHO + CH3CHO + HO2 : 	2.00D+14*EXP(-4714/TEMP) 	;
+{10143.} 	 C61CO = CO2C3CO3 + CH3CHO + HO2 : 	J(22)*2 	;
+{10144.} 	 OH + C61CO = CO235C6 + HO2 : 	6.03D-12 	;
+{10145.} 	 C61OH = C61O + HO2 : 	J(22) 	;
+{10146.} 	 OH + C61OH = C61CO + HO2 : 	4.22D-11 	;
+{10147.} 	 CO23C65OOH + OH = CO23C65O2 : 	1.06D-10 	;
+{10148.} 	 CO23C65OOH = CO23C65O + OH : 	J(35)+J(41) 	;
+{10149.} 	 CO23C65O = CH3CHO + BIACETO2 : 	2.70D+14*EXP(-7398/TEMP) 	;
+{10150.} 	 CO23C65O = CO235C6 + HO2 : 	KROSEC*O2 	;
+{10151.} 	 C6CO3OHOOH + OH = C6CO23HO5 + OH : 	4.67D-11 	;
+{10152.} 	 C6CO3OHOOH + OH = C6CO3OH5O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{10153.} 	 C6CO3OHOOH = C6CO3OH5O + OH : 	J(41)+J(22) 	;
+{10154.} 	 C6CO3OH5O = CH3CHO + HO2C3CO3 : 	KDEC 	;
+{10155.} 	 C6CO23HO5 + OH = CO235C6 + HO2 : 	2.86D-11 	;
+{10156.} 	 C6CO23HO5 = HO2C3CO3 + CH3CO3 : 	J(35) 	;
+{10157.} 	 C6CO3HO25 + OH = C61CO + HO2 : 	3.38D-11 	;
+{10158.} 	 C6CO3HO25 = IPROPOLO2 + CH3CHOHCO3 : 	J(22) 	;
+{10159.} 	 C6CO34OOH + OH = C6CO34O2 : 	2.36D-11 	;
+{10160.} 	 C6CO34OOH = C6CO34O + OH : 	J(41)+J(35) 	;
+{10161.} 	 C6CO34O = CH3CHO + C2H5CO3 + CO : 	KDEC 	;
+{10162.} 	 C6HOCOOOH + OH = C6CO34HO1 + OH : 	4.05D-11 	;
+{10163.} 	 C6HOCOOOH + OH = C6HO1CO3O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{10164.} 	 C6HOCOOOH = C2H5CHO + HOC2H4CO3 + OH : 	J(22) 	;
+{10165.} 	 C6HOCOOOH = C6HO1CO3O + OH : 	J(41) 	;
+{10166.} 	 C6HO1CO3O = C2H5CHO + HOC2H4CO3 : 	KDEC 	;
+{10167.} 	 C6CO34HO1 + OH = C6CO134 + HO2 : 	1.46D-11 	;
+{10168.} 	 C6CO34HO1 = C2H5CO3 + HOC2H4CO3 : 	J(35) 	;
+{10169.} 	 C6CO3HO14 + OH = C6CO34HO1 + HO2 : 	2.34D-11 	;
+{10170.} 	 C6CO3HO14 = C2H5CHO + HOC2H4CO3 + HO2 : 	J(22) 	;
+{10171.} 	 C3COCCO3H + OH = C3COCCO3 : 	8.77D-12 	;
+{10172.} 	 C3COCCO3H = PEN2ONE1O2 + OH : 	J(41) 	;
+{10173.} 	 C3COCPAN + OH = PGLYOX + CO + NO2 : 	5.18D-12 	;
+{10174.} 	 C3COCPAN = C3COCCO3 + NO2 : 	KBPAN 	;
+{10175.} 	 PE2ONE1OOH + OH = PEN2ONE1O2 : 	1.66D-11 	;
+{10176.} 	 PE2ONE1OOH = PEN2ONE1O + OH : 	J(41) 	;
+{10177.} 	 MIBK3COOOH + OH = MIBK3COO2 : 	4.97D-12 	;
+{10178.} 	 MIBK3COOOH = MIBK3COO + OH : 	J(41)+J(34) 	;
+{10179.} 	 MIBK3COO = CH3COCH3 + CH3CO3 + CO : 	KDEC 	;
+{10180.} 	 C612OOH = C612O + OH : 	J(41)+J(22) 	;
+{10181.} 	 OH + C612OOH = C612O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{10182.} 	 OH + C612OOH = HM22COCHO + OH : 	2.21D-11 	;
+{10183.} 	 C612O = HM22CO3 + HCHO : 	KDEC 	;
+{10184.} 	 C612OH = C612O + HO2 : 	J(22) 	;
+{10185.} 	 OH + C612OH = HM22COCHO + HO2 : 	1.60D-11 	;
+{10186.} 	 HM22COCHO = HM22CO3 + CO + HO2 : 	J(34) 	;
+{10187.} 	 OH + HM22COCHO = HM22CO3 + CO : 	1.41D-11 	;
+{10188.} 	 OH + CO2M33CO2H = MIPKAO2 : 	1.41D-12 	;
+{10189.} 	 CO2M33CO3H = MIPKAO2 + OH : 	J(41) 	;
+{10190.} 	 OH + CO2M33CO3H = CO2M33CO3 : 	4.98D-12 	;
+{10191.} 	 C6PAN16 = CO2M33CO3 + NO2 : 	KBPAN 	;
+{10192.} 	 OH + C6PAN16 = BIACET + HCHO + CO + NO2 : 	1.38D-12 	;
+{10193.} 	 C6COCHOOOH + OH = C6COCHOO2 : 	9.13D-11 	;
+{10194.} 	 C6COCHOOOH = C6COCHOO + OH : 	J(41)+J(15)+J(22) 	;
+{10195.} 	 C6COCHOO = C6CODIAL + HO2 : 	KROPRIM*O2 	;
+{10196.} 	 C6CODIAL + NO3 = C6COCHOCO3 + HNO3 : 	2*KNO3AL*5.5 	;
+{10197.} 	 C6CODIAL + OH = C6COCHOCO3 : 	9.78D-11 	;
+{10198.} 	 C6CODIAL = C5COCHOO2 + HO2 + CO : 	J(15)*2 	;
+{10199.} 	 C6CODIAL = CHOC2H4O2 + HCOCH2CO3 : 	J(22) 	;
+{10200.} 	 C6COHOCHO + OH = C6CODIAL + HO2 : 	8.07D-11 	;
+{10201.} 	 C6COHOCHO = HCOCH2CO3 + HO1C3O2 : 	J(22)+J(15) 	;
+{10202.} 	 CY6COCOOOH + OH = CY6DIONO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{10203.} 	 CY6COCOOOH + OH = CY6TRION + OH : 	4.63D-10 	;
+{10204.} 	 CY6COCOOOH = CY6DIONO + OH : 	J(41) 	;
+{10205.} 	 CY6DIONO = CY6TRION + HO2 : 	KROSEC*O2 	;
+{10206.} 	 CY6DIONO = CY6TRIONO2 : 	2.70D+14*EXP(-7398/TEMP) 	;
+{10207.} 	 CY6DIONOH + OH = CY6TRION + HO2 : 	1.22D-10 	;
+{10208.} 	 CY6DIONOH = ACR + CO + VINOH : 	J(22) 	;
+{10209.} 	 CY6TRION + OH = C6CYTONO2 : 	1.45D-12 	;
+{10210.} 	 CY6TRION = C3H6 + CO + CO + CO : 	J(22)*3 	;
+{10211.} 	 PINALO2 + HO2 = PINALOOH : 	KRO2HO2*0.914 	;
+{10212.} 	 PINALO2 + NO = PINALNO3 : 	KRO2NO*0.050 	;
+{10213.} 	 PINALO2 + NO = PINALO + NO2 : 	KRO2NO*0.950 	;
+{10214.} 	 PINALO2 + NO3 = PINALO + NO2 : 	KRO2NO3 	;
+{10215.} 	 PINALO2 = PINALO : 	6.70D-15*0.7*RO2 	;
+{10216.} 	 PINALO2 = PINALOH : 	6.70D-15*0.3*RO2 	;
+{10217.} 	 NC101OOH + OH = NC101O2 : 	5.94D-12 	;
+{10218.} 	 NC101OOH = NC101O + OH : 	J(41) 	;
+{10219.} 	 NC101O = NC102O2 : 	KDEC 	;
+{10220.} 	 PERPINONIC + OH = C96CO3 : 	9.73D-12 	;
+{10221.} 	 PERPINONIC = C96O2 + OH : 	J(41)+J(22) 	;
+{10222.} 	 C10PAN2 + OH = NORPINAL + CO + NO2 : 	3.66D-12 	;
+{10223.} 	 C10PAN2 = C96CO3 + NO2 : 	KBPAN 	;
+{10224.} 	 C108O2 + HO2 = C108OOH : 	KRO2HO2*0.914 	;
+{10225.} 	 C108O2 + NO = C108NO3 : 	KRO2NO*0.125 	;
+{10226.} 	 C108O2 + NO = C108O + NO2 : 	KRO2NO*0.875 	;
+{10227.} 	 C108O2 + NO3 = C108O + NO2 : 	KRO2NO3 	;
+{10228.} 	 C108O2 = C108O : 	6.70D-15*0.7*RO2 	;
+{10229.} 	 C108O2 = C108OH : 	6.70D-15*0.3*RO2 	;
+{10230.} 	 C89CO3 + HO2 = C89CO2 + OH : 	KAPHO2*0.44 	;
+{10231.} 	 C89CO3 + HO2 = C89CO2H + O3 : 	KAPHO2*0.15 	;
+{10232.} 	 C89CO3 + HO2 = C89CO3H : 	KAPHO2*0.41 	;
+{10233.} 	 C89CO3 + NO = C89CO2 + NO2 : 	KAPNO 	;
+{10234.} 	 C89CO3 + NO2 = C89PAN : 	KFPAN 	;
+{10235.} 	 C89CO3 + NO3 = C89CO2 + NO2 : 	KRO2NO3*1.74 	;
+{10236.} 	 C89CO3 = C89CO2 : 	1.00D-11*RO2*0.7 	;
+{10237.} 	 C89CO3 = C89CO2H : 	1.00D-11*RO2*0.3 	;
+{10238.} 	 C920CO3 + HO2 = C920CO3H : 	KAPHO2*0.41 	;
+{10239.} 	 C920CO3 + HO2 = C920O2 + OH : 	KAPHO2*0.44 	;
+{10240.} 	 C920CO3 + HO2 = HOPINONIC + O3 : 	KAPHO2*0.15 	;
+{10241.} 	 C920CO3 + NO = C920O2 + NO2 : 	KAPNO 	;
+{10242.} 	 C920CO3 + NO2 = C920PAN : 	KFPAN 	;
+{10243.} 	 C920CO3 + NO3 = C920O2 + NO2 : 	KRO2NO3*1.74 	;
+{10244.} 	 C920CO3 = C920O2 : 	1.00D-11*RO2*0.7 	;
+{10245.} 	 C920CO3 = HOPINONIC : 	1.00D-11*RO2*0.3 	;
+{10246.} 	 C920O2 + HO2 = C920OOH : 	KRO2HO2*0.890 	;
+{10247.} 	 C920O2 + NO = C920O + NO2 : 	KRO2NO 	;
+{10248.} 	 C920O2 + NO3 = C920O + NO2 : 	KRO2NO3 	;
+{10249.} 	 C920O2 = C920O : 	1.30D-12*RO2 	;
+{10250.} 	 C97O2 + HO2 = C97OOH : 	KRO2HO2*0.890 	;
+{10251.} 	 C97O2 + NO = C97O + NO2 : 	KRO2NO 	;
+{10252.} 	 C97O2 + NO3 = C97O + NO2 : 	KRO2NO3 	;
+{10253.} 	 C97O2 = C97O : 	6.70D-15*0.7*RO2 	;
+{10254.} 	 C97O2 = C97OH : 	6.70D-15*0.3*RO2 	;
+{10255.} 	 C85CO3 + HO2 = C85CO3H : 	KAPHO2*0.56 	;
+{10256.} 	 C85CO3 + HO2 = C85O2 + OH : 	KAPHO2*0.44 	;
+{10257.} 	 C85CO3 + NO = C85O2 + NO2 : 	KAPNO 	;
+{10258.} 	 C85CO3 + NO2 = C9PAN2 : 	KFPAN 	;
+{10259.} 	 C85CO3 + NO3 = C85O2 + NO2 : 	KRO2NO3*1.74 	;
+{10260.} 	 C85CO3 = C85O2 : 	1.00D-11*RO2 	;
+{10261.} 	 C85O2 + HO2 = C85OOH : 	KRO2HO2*0.859 	;
+{10262.} 	 C85O2 + NO = C85O + NO2 : 	KRO2NO 	;
+{10263.} 	 C85O2 + NO3 = C85O + NO2 : 	KRO2NO3 	;
+{10264.} 	 C85O2 = C85O : 	6.70D-15*RO2 	;
+{10265.} 	 C719O2 + HO2 = C719OOH : 	KRO2HO2*0.820 	;
+{10266.} 	 C719O2 + NO = C719NO3 : 	KRO2NO*0.042 	;
+{10267.} 	 C719O2 + NO = C719O + NO2 : 	KRO2NO*0.958 	;
+{10268.} 	 C719O2 + NO3 = C719O + NO2 : 	KRO2NO3 	;
+{10269.} 	 C719O2 = C719O : 	9.20D-14*RO2*0.7 	;
+{10270.} 	 C719O2 = C719OH : 	9.20D-14*RO2*0.3 	;
+{10271.} 	 C720OOH + OH = HCC7CO + OH : 	1.27D-10 	;
+{10272.} 	 C720OOH = C720O + OH : 	J(41) 	;
+{10273.} 	 C720NO3 + OH = HCC7CO + NO2 : 	9.60D-11 	;
+{10274.} 	 C720NO3 = C720O + NO2 : 	J(54) 	;
+{10275.} 	 C720O = HCC7CO + HO2 : 	KROSEC*O2 	;
+{10276.} 	 C720OH + OH = HCC7CO + HO2 : 	1.09D-10 	;
+{10277.} 	 NC91CO3H + OH = NC91CO3 : 	8.85D-12 	;
+{10278.} 	 NC91CO3H = NOPINONE + NO2 + OH : 	J(41) 	;
+{10279.} 	 NC91PAN + OH = NOPINONE + CO + NO2 + NO2 : 	4.90D-12 	;
+{10280.} 	 NC91PAN = NC91CO3 + NO2 : 	KBPAN 	;
+{10281.} 	 C918O2 + HO2 = C918OOH : 	KRO2HO2*0.890 	;
+{10282.} 	 C918O2 + NO = C918NO3 : 	KRO2NO*0.047 	;
+{10283.} 	 C918O2 + NO = C918O + NO2 : 	KRO2NO*0.953 	;
+{10284.} 	 C918O2 + NO3 = C918O + NO2 : 	KRO2NO3 	;
+{10285.} 	 C918O2 = C918O : 	6.70D-15*RO2*0.7 	;
+{10286.} 	 C918O2 = C918OH : 	6.70D-15*RO2*0.3 	;
+{10287.} 	 C9DCO2 + HO2 = C9DCOOH : 	KRO2HO2*0.890 	;
+{10288.} 	 C9DCO2 + NO = C9DCNO3 : 	KRO2NO*0.157 	;
+{10289.} 	 C9DCO2 + NO = C9DCO + NO2 : 	KRO2NO*0.843 	;
+{10290.} 	 C9DCO2 + NO3 = C9DCO + NO2 : 	KRO2NO3 	;
+{10291.} 	 C9DCO2 = C9DCCO : 	2.50D-13*RO2*0.2 	;
+{10292.} 	 C9DCO2 = C9DCO : 	2.50D-13*RO2*0.6 	;
+{10293.} 	 C9DCO2 = C9DCOH : 	2.50D-13*RO2*0.2 	;
+{10294.} 	 C915O2 + HO2 = C915OOH : 	KRO2HO2*0.890 	;
+{10295.} 	 C915O2 + NO = C915NO3 : 	KRO2NO*0.157 	;
+{10296.} 	 C915O2 + NO = C915O + NO2 : 	KRO2NO*0.843 	;
+{10297.} 	 C915O2 + NO3 = C915O + NO2 : 	KRO2NO3 	;
+{10298.} 	 C915O2 = C88CHO : 	8.80D-13*RO2*0.2 	;
+{10299.} 	 C915O2 = C915O : 	8.80D-13*RO2*0.6 	;
+{10300.} 	 C915O2 = C915OH : 	8.80D-13*RO2*0.2 	;
+{10301.} 	 C619CO + OH = C512CO3 : 	5.99D-12 	;
+{10302.} 	 C917O2 + HO2 = C917OOH : 	KRO2HO2*0.890 	;
+{10303.} 	 C917O2 + NO = C917NO3 : 	KRO2NO*0.118 	;
+{10304.} 	 C917O2 + NO = C917O + NO2 : 	KRO2NO*0.882 	;
+{10305.} 	 C917O2 + NO3 = C917O + NO2 : 	KRO2NO3 	;
+{10306.} 	 C917O2 = C917O : 	6.70D-15*RO2*0.7 	;
+{10307.} 	 C917O2 = C917OH : 	6.70D-15*RO2*0.3 	;
+{10308.} 	 C8BCOOH + OH = C8BCCO + OH : 	1.62D-11 	;
+{10309.} 	 C8BCOOH = C8BCO + OH : 	J(41) 	;
+{10310.} 	 C8BCNO3 + OH = C8BCCO + NO2 : 	1.84D-12 	;
+{10311.} 	 C8BCNO3 = C8BCO + NO2 : 	J(54) 	;
+{10312.} 	 C8BCO = C89O2 : 	KDEC 	;
+{10313.} 	 C8BCCO + OH = C89O2 : 	3.94D-12 	;
+{10314.} 	 C8BCOH + OH = C8BCCO + HO2 : 	6.81D-12 	;
+{10315.} 	 C918CO3H + OH = C918CO3 : 	1.46D-11 	;
+{10316.} 	 C918CO3H = NOPINONE + HO2 + OH : 	J(41) 	;
+{10317.} 	 C918PAN + OH = NOPINONE + CO + NO2 : 	5.71D-12 	;
+{10318.} 	 C918PAN = C918CO3 + NO2 : 	KBPAN 	;
+{10319.} 	 NLIMALO2 + HO2 = NLIMALOOH : 	KRO2HO2*0.914 	;
+{10320.} 	 NLIMALO2 + NO = NLIMALO + NO2 : 	KRO2NO 	;
+{10321.} 	 NLIMALO2 + NO3 = NLIMALO + NO2 : 	KRO2NO3 	;
+{10322.} 	 NLIMALO2 = NLIMALO : 	9.20D-14*RO2*0.7 	;
+{10323.} 	 NLIMALO2 = NLIMALOH : 	9.20D-14*RO2*0.3 	;
+{10324.} 	 LIMALOOA = C926O2 + OH : 	KDEC 	;
+{10325.} 	 LMLKET + NO3 = C817CO3 + HNO3 : 	KNO3AL*8.5 	;
+{10326.} 	 LMLKET + OH = C817CO3 : 	3.60D-11*0.748 	;
+{10327.} 	 LMLKET + OH = C926O2 : 	3.60D-11*0.252 	;
+{10328.} 	 LMLKET = C817O2 + CO + HO2 : 	J(15) 	;
+{10329.} 	 LIMALO2 + HO2 = LIMALOOH : 	KRO2HO2*0.914 	;
+{10330.} 	 LIMALO2 + NO = LIMALNO3 : 	KRO2NO*0.059 	;
+{10331.} 	 LIMALO2 + NO = LIMALO + NO2 : 	KRO2NO*0.941 	;
+{10332.} 	 LIMALO2 + NO3 = LIMALO + NO2 : 	KRO2NO3 	;
+{10333.} 	 LIMALO2 = LIMALO : 	9.20D-14*RO2*0.7 	;
+{10334.} 	 LIMALO2 = LIMALOH : 	9.20D-14*RO2*0.3 	;
+{10335.} 	 C729CHO + NO3 = C729CO3 + HNO3 : 	KNO3AL*17.0 	;
+{10336.} 	 C729CHO + NO3 = NC826O2 : 	3.30D-13 	;
+{10337.} 	 C729CHO + O3 = C626CHO + CH2OOF : 	1.30D-17*0.330 	;
+{10338.} 	 C729CHO + O3 = C735OOA + HCHO : 	1.30D-17*0.670 	;
+{10339.} 	 C729CHO + OH = C729CO3 : 	1.06D-10*0.447 	;
+{10340.} 	 C729CHO + OH = C826O2 : 	1.06D-10*0.553 	;
+{10341.} 	 C729CHO = C729O2 + CO + HO2 : 	J(15)*2 	;
+{10342.} 	 C729CO3 + HO2 = C729CO2H + O3 : 	KAPHO2*0.15 	;
+{10343.} 	 C729CO3 + HO2 = C729CO3H : 	KAPHO2*0.41 	;
+{10344.} 	 C729CO3 + HO2 = C729O2 + OH : 	KAPHO2*0.44 	;
+{10345.} 	 C729CO3 + NO = C729O2 + NO2 : 	KAPNO 	;
+{10346.} 	 C729CO3 + NO2 = C729PAN : 	KFPAN 	;
+{10347.} 	 C729CO3 + NO3 = C729O2 + NO2 : 	KRO2NO3*1.74 	;
+{10348.} 	 C729CO3 = C729CO2H : 	1.00D-11*RO2*0.3 	;
+{10349.} 	 C729CO3 = C729O2 : 	1.00D-11*RO2*0.7 	;
+{10350.} 	 C822CO3 + HO2 = C822CO2 + OH : 	KAPHO2*0.44 	;
+{10351.} 	 C822CO3 + HO2 = C822CO2H + O3 : 	KAPHO2*0.15 	;
+{10352.} 	 C822CO3 + HO2 = C822CO3H : 	KAPHO2*0.41 	;
+{10353.} 	 C822CO3 + NO = C822CO2 + NO2 : 	KAPNO 	;
+{10354.} 	 C822CO3 + NO2 = C822PAN : 	KFPAN 	;
+{10355.} 	 C822CO3 + NO3 = C822CO2 + NO2 : 	KRO2NO3*1.74 	;
+{10356.} 	 C822CO3 = C822CO2 : 	1.00D-11*RO2*0.7 	;
+{10357.} 	 C822CO3 = C822CO2H : 	1.00D-11*RO2*0.3 	;
+{10358.} 	 C924O2 + HO2 = C924OOH : 	KRO2HO2*0.890 	;
+{10359.} 	 C924O2 + NO = C924O + NO2 : 	KRO2NO 	;
+{10360.} 	 C924O2 + NO3 = C924O + NO2 : 	KRO2NO3 	;
+{10361.} 	 C924O2 = C924CO : 	8.80D-13*RO2*0.2 	;
+{10362.} 	 C924O2 = C924O : 	8.80D-13*RO2*0.6 	;
+{10363.} 	 C924O2 = C924OH : 	8.80D-13*RO2*0.2 	;
+{10364.} 	 C816CO3 + HO2 = C816CO3H : 	KAPHO2*0.56 	;
+{10365.} 	 C816CO3 + HO2 = C816O2 + OH : 	KAPHO2*0.44 	;
+{10366.} 	 C816CO3 + NO = C816O2 + NO2 : 	KAPNO 	;
+{10367.} 	 C816CO3 + NO2 = C816PAN : 	KFPAN 	;
+{10368.} 	 C816CO3 + NO3 = C816O2 + NO2 : 	KRO2NO3*1.74 	;
+{10369.} 	 C816CO3 = C816O2 : 	1.00D-11*RO2 	;
+{10370.} 	 NORLIMO2 + HO2 = NORLIMOOH : 	KRO2HO2*0.890 	;
+{10371.} 	 NORLIMO2 + NO = NORLIMO + NO2 : 	KRO2NO 	;
+{10372.} 	 NORLIMO2 + NO3 = NORLIMO + NO2 : 	KRO2NO3 	;
+{10373.} 	 NORLIMO2 = NORLIMO : 	9.20D-14*RO2 	;
+{10374.} 	 C816O2 + HO2 = C816OOH : 	KRO2HO2*0.859 	;
+{10375.} 	 C816O2 + NO = C816O + NO2 : 	KRO2NO 	;
+{10376.} 	 C816O2 + NO3 = C816O + NO2 : 	KRO2NO3 	;
+{10377.} 	 C816O2 = C816O : 	2.50D-13*RO2 	;
+{10378.} 	 C923CO3H + OH = C923CO3 : 	7.29D-11 	;
+{10379.} 	 C923CO3H = C923O2 + OH : 	J(41) 	;
+{10380.} 	 C923PAN + OH = NORLIMAL + CO + NO2 : 	6.93D-11 	;
+{10381.} 	 C923PAN = C923CO3 + NO2 : 	KBPAN 	;
+{10382.} 	 NLMKAO2 + HO2 = NLMKAOOH : 	KRO2HO2*0.914 	;
+{10383.} 	 NLMKAO2 + NO = NLMKAO + NO2 : 	KRO2NO*0.760 	;
+{10384.} 	 NLMKAO2 + NO3 = NLMKAO + NO2 : 	KRO2NO3 	;
+{10385.} 	 NLMKAO2 = LMKBNO3 : 	9.20D-14*RO2*0.3 	;
+{10386.} 	 NLMKAO2 = NLMKAO : 	9.20D-14*RO2*0.7 	;
+{10387.} 	 LMKOOA = LMLKAO2 + OH : 	KDEC*0.5 	;
+{10388.} 	 LMKOOA = LMLKBO2 + OH : 	KDEC*0.5 	;
+{10389.} 	 LMKOOB = C817O2 + CO + OH : 	KDEC*0.5 	;
+{10390.} 	 LMKOOB = LMKBOO : 	KDEC*0.5 	;
+{10391.} 	 LMKAO2 + HO2 = LMKAOOH : 	KRO2HO2*0.914 	;
+{10392.} 	 LMKAO2 + NO = LMKANO3 : 	KRO2NO*0.240 	;
+{10393.} 	 LMKAO2 + NO = LMKAO + NO2 : 	KRO2NO*0.760 	;
+{10394.} 	 LMKAO2 + NO3 = LMKAO + NO2 : 	KRO2NO3 	;
+{10395.} 	 LMKAO2 = LMKAO : 	9.20D-14*RO2*0.7 	;
+{10396.} 	 LMKAO2 = LMKAOH : 	9.20D-14*RO2*0.3 	;
+{10397.} 	 LMKBO2 + HO2 = LMKBOOH : 	KRO2HO2*0.914 	;
+{10398.} 	 LMKBO2 + NO = LMKBNO3 : 	KRO2NO*0.240 	;
+{10399.} 	 LMKBO2 + NO = LMKBO + NO2 : 	KRO2NO*0.760 	;
+{10400.} 	 LMKBO2 + NO3 = LMKBO + NO2 : 	KRO2NO3 	;
+{10401.} 	 LMKBO2 = LMKAOH : 	8.80D-13*RO2*0.2 	;
+{10402.} 	 LMKBO2 = LMKBCO : 	8.80D-13*RO2*0.2 	;
+{10403.} 	 LMKBO2 = LMKBO : 	8.80D-13*RO2*0.6 	;
+{10404.} 	 C141CO3H + OH = C141CO3 : 	7.29D-11 	;
+{10405.} 	 C141CO3H = C141O2 + OH : 	J(41) 	;
+{10406.} 	 C141PAN + OH = C141CO + CO + NO2 : 	6.93D-11 	;
+{10407.} 	 C141PAN = C141CO3 + NO2 : 	KBPAN 	;
+{10408.} 	 NBCALOOH + OH = NBCALO2 : 	4.27D-11 	;
+{10409.} 	 NBCALOOH = NBCALO + OH : 	J(41) 	;
+{10410.} 	 NBCALO = BCLKET + HCHO + NO2 : 	KDEC 	;
+{10411.} 	 NBCALOH + OH = BCLKET + HCHO + NO2 : 	3.93D-11 	;
+{10412.} 	 BCALOO + CO = BCLKET : 	1.20D-15 	;
+{10413.} 	 BCALOO + NO = BCLKET + NO2 : 	1.00D-14 	;
+{10414.} 	 BCALOO + NO2 = BCLKET + NO3 : 	1.00D-15 	;
+{10415.} 	 BCALOO + SO2 = BCLKET + SO3 : 	7.00D-14 	;
+{10416.} 	 BCALOO = BCLKET + H2O2 : 	1.40D-17*H2O 	;
+{10417.} 	 C146O2 + HO2 = C146OOH : 	KRO2HO2*0.968 	;
+{10418.} 	 C146O2 + NO = C146O + NO2 : 	KRO2NO 	;
+{10419.} 	 C146O2 + NO3 = C146O + NO2 : 	KRO2NO3 	;
+{10420.} 	 C146O2 = C146CO : 	8.80D-13*RO2*0.2 	;
+{10421.} 	 C146O2 = C146O : 	8.80D-13*RO2*0.6 	;
+{10422.} 	 C146O2 = C146OH : 	8.80D-13*RO2*0.2 	;
+{10423.} 	 C131CO3 + HO2 = C131CO2H + O3 : 	KAPHO2*0.15 	;
+{10424.} 	 C131CO3 + HO2 = C131CO3H : 	KAPHO2*0.41 	;
+{10425.} 	 C131CO3 + HO2 = C131O2 + OH : 	KAPHO2*0.44 	;
+{10426.} 	 C131CO3 + NO = C131O2 + NO2 : 	KAPNO 	;
+{10427.} 	 C131CO3 + NO2 = C131PAN : 	KFPAN 	;
+{10428.} 	 C131CO3 + NO3 = C131O2 + NO2 : 	KRO2NO3*1.74 	;
+{10429.} 	 C131CO3 = C131CO2H : 	1.00D-11*RO2*0.3 	;
+{10430.} 	 C131CO3 = C131O2 : 	1.00D-11*RO2*0.7 	;
+{10431.} 	 BCLKAO2 + HO2 = BCLKAOOH : 	KRO2HO2*0.975 	;
+{10432.} 	 BCLKAO2 + NO = BCLKAO + NO2 : 	KRO2NO 	;
+{10433.} 	 BCLKAO2 + NO3 = BCLKAO + NO2 : 	KRO2NO3 	;
+{10434.} 	 BCLKAO2 = BCLKACO : 	2.00D-12*RO2*0.2 	;
+{10435.} 	 BCLKAO2 = BCLKAO : 	2.00D-12*RO2*0.6 	;
+{10436.} 	 BCLKAO2 = BCLKAOH : 	2.00D-12*RO2*0.2 	;
+{10437.} 	 BCLKBO2 + HO2 = BCLKBOOH : 	KRO2HO2*0.968 	;
+{10438.} 	 BCLKBO2 + NO = BCLKBO + NO2 : 	KRO2NO 	;
+{10439.} 	 BCLKBO2 + NO3 = BCLKBO + NO2 : 	KRO2NO3 	;
+{10440.} 	 BCLKBO2 = BCLKBCO : 	2.00D-12*RO2*0.2 	;
+{10441.} 	 BCLKBO2 = BCLKBO : 	2.00D-12*RO2*0.6 	;
+{10442.} 	 BCLKBO2 = BCLKBOH : 	2.00D-12*RO2*0.2 	;
+{10443.} 	 BCLKCO2 + HO2 = BCLKCOOH : 	KRO2HO2*0.975 	;
+{10444.} 	 BCLKCO2 + NO = BCLKCO + NO2 : 	KRO2NO 	;
+{10445.} 	 BCLKCO2 + NO3 = BCLKCO + NO2 : 	KRO2NO3 	;
+{10446.} 	 BCLKCO2 = BCLKCCO : 	2.00D-12*RO2*0.2 	;
+{10447.} 	 BCLKCO2 = BCLKCO : 	2.00D-12*RO2*0.6 	;
+{10448.} 	 BCLKCO2 = BCLKCOH : 	2.00D-12*RO2*0.2 	;
+{10449.} 	 C131O2 + HO2 = C131OOH : 	KRO2HO2*0.959 	;
+{10450.} 	 C131O2 + NO = C131NO3 : 	KRO2NO*0.178 	;
+{10451.} 	 C131O2 + NO = C131O + NO2 : 	KRO2NO*0.822 	;
+{10452.} 	 C131O2 + NO3 = C131O + NO2 : 	KRO2NO3 	;
+{10453.} 	 C131O2 = C131CO : 	1.32D-12*RO2*0.2 	;
+{10454.} 	 C131O2 = C131O : 	1.32D-12*RO2*0.6 	;
+{10455.} 	 C131O2 = C131OH : 	1.32D-12*RO2*0.2 	;
+{10456.} 	 BCALOOH + OH = BCALO2 : 	4.65D-11 	;
+{10457.} 	 BCALOOH = BCALO + OH : 	J(41) 	;
+{10458.} 	 BCALNO3 + OH = BCLKET + HCHO + NO2 : 	3.01D-11 	;
+{10459.} 	 BCALO = BCLKET + HCHO + HO2 : 	KDEC 	;
+{10460.} 	 BCALOH + OH = BCLKET + HCHO + HO2 : 	4.31D-11 	;
+{10461.} 	 BCSOZOOH + OH = BCKSOZ + HCHO + OH : 	2.57D-11 	;
+{10462.} 	 BCSOZOOH = BCSOZO + OH : 	J(41) 	;
+{10463.} 	 BCSOZNO3 + OH = BCKSOZ + HCHO + NO2 : 	1.58D-11 	;
+{10464.} 	 BCSOZO = BCKSOZ + HCHO + HO2 : 	KDEC 	;
+{10465.} 	 BCSOZOH + OH = BCKSOZ + HCHO + HO2 : 	2.21D-11 	;
+{10466.} 	 C147O2 + HO2 = C147OOH : 	KRO2HO2*0.968 	;
+{10467.} 	 C147O2 + NO = C147O + NO2 : 	KRO2NO 	;
+{10468.} 	 C147O2 + NO3 = C147O + NO2 : 	KRO2NO3 	;
+{10469.} 	 C147O2 = C147CO : 	8.80D-13*RO2*0.2 	;
+{10470.} 	 C147O2 = C147O : 	8.80D-13*RO2*0.6 	;
+{10471.} 	 C147O2 = C147OH : 	8.80D-13*RO2*0.2 	;
+{10472.} 	 C141OO + CO = C131CO2H : 	1.20D-15 	;
+{10473.} 	 C141OO + NO = C131CO2H + NO2 : 	1.00D-14 	;
+{10474.} 	 C141OO + NO2 = C131CO2H + NO3 : 	1.00D-15 	;
+{10475.} 	 C141OO + SO2 = C131CO2H + SO3 : 	7.00D-14 	;
+{10476.} 	 C141OO = C131CO2H + H2O2 : 	1.40D-17*H2O 	;
+{10477.} 	 C151OOH + OH = C131CO2H + HCHO + OH : 	2.57D-11 	;
+{10478.} 	 C151OOH = C151O + OH : 	J(41) 	;
+{10479.} 	 C151NO3 + OH = C131CO2H + HCHO + NO2 : 	1.58D-11 	;
+{10480.} 	 C151O = HCHO + C131CO2H + HO2 : 	KDEC 	;
+{10481.} 	 C151OH + OH = C131CO2H + HCHO + HO2 : 	2.21D-11 	;
+{10482.} 	 C126CO3 + HO2 = C126CO2H + O3 : 	KAPHO2*0.15 	;
+{10483.} 	 C126CO3 + HO2 = C126CO3H : 	KAPHO2*0.41 	;
+{10484.} 	 C126CO3 + HO2 = C126O2 + OH : 	KAPHO2*0.44 	;
+{10485.} 	 C126CO3 + NO = C126O2 + NO2 : 	KAPNO 	;
+{10486.} 	 C126CO3 + NO2 = C126PAN : 	KFPAN 	;
+{10487.} 	 C126CO3 + NO3 = C126O2 + NO2 : 	KRO2NO3*1.74 	;
+{10488.} 	 C126CO3 = C126CO2H : 	1.00D-11*RO2*0.3 	;
+{10489.} 	 C126CO3 = C126O2 : 	1.00D-11*RO2*0.7 	;
+{10490.} 	 C136CO3 + HO2 = C136CO2 + OH : 	KAPHO2*0.44 	;
+{10491.} 	 C136CO3 + HO2 = C136CO2H + O3 : 	KAPHO2*0.15 	;
+{10492.} 	 C136CO3 + HO2 = C136CO3H : 	KAPHO2*0.41 	;
+{10493.} 	 C136CO3 + NO = C136CO2 + NO2 : 	KAPNO 	;
+{10494.} 	 C136CO3 + NO2 = C136PAN : 	KFPAN 	;
+{10495.} 	 C136CO3 + NO3 = C136CO2 + NO2 : 	KRO2NO3*1.74 	;
+{10496.} 	 C136CO3 = C136CO2 : 	1.00D-11*RO2*0.7 	;
+{10497.} 	 C136CO3 = C136CO2H : 	1.00D-11*RO2*0.3 	;
+{10498.} 	 BCBOCOO + CO = BCLKBOC : 	1.20D-15 	;
+{10499.} 	 BCBOCOO + NO = BCLKBOC + NO2 : 	1.00D-14 	;
+{10500.} 	 BCBOCOO + NO2 = BCLKBOC + NO3 : 	1.00D-15 	;
+{10501.} 	 BCBOCOO + SO2 = BCLKBOC + SO3 : 	7.00D-14 	;
+{10502.} 	 BCBOCOO = BCLKBOC + H2O2 : 	1.40D-17*H2O 	;
+{10503.} 	 C148O2 + HO2 = C148OOH : 	KRO2HO2*0.968 	;
+{10504.} 	 C148O2 + NO = C148O + NO2 : 	KRO2NO 	;
+{10505.} 	 C148O2 + NO3 = C148O + NO2 : 	KRO2NO3 	;
+{10506.} 	 C148O2 = C148CO : 	8.80D-13*RO2*0.2 	;
+{10507.} 	 C148O2 = C148O : 	8.80D-13*RO2*0.6 	;
+{10508.} 	 C148O2 = C148OH : 	8.80D-13*RO2*0.2 	;
+{10509.} 	 C152OOH + OH = BCLKBOC + HCHO + OH : 	2.57D-11 	;
+{10510.} 	 C152OOH = C152O + OH : 	J(41) 	;
+{10511.} 	 C152NO3 + OH = BCLKBOC + HCHO + NO2 : 	1.58D-11 	;
+{10512.} 	 C152O = HCHO + BCLKBOC + HO2 : 	KDEC 	;
+{10513.} 	 C152OH + OH = BCLKBOC + HCHO + HO2 : 	2.21D-11 	;
+{10514.} 	 C1311O2 + HO2 = C1311OOH : 	KRO2HO2*0.959 	;
+{10515.} 	 C1311O2 + NO = C1311NO3 : 	KRO2NO*0.134 	;
+{10516.} 	 C1311O2 + NO = C1311O + NO2 : 	KRO2NO*0.866 	;
+{10517.} 	 C1311O2 + NO3 = C1311O + NO2 : 	KRO2NO3 	;
+{10518.} 	 C1311O2 = C1311O : 	6.70D-15*RO2*0.7 	;
+{10519.} 	 C1311O2 = C1311OH : 	6.70D-15*RO2*0.3 	;
+{10520.} 	 NC1313O2 + HO2 = NC1313OOH : 	KRO2HO2*0.959 	;
+{10521.} 	 NC1313O2 + NO = NC1313O + NO2 : 	KRO2NO 	;
+{10522.} 	 NC1313O2 + NO3 = NC1313O + NO2 : 	KRO2NO3 	;
+{10523.} 	 NC1313O2 = NC1313O : 	9.20D-14*RO2*0.7 	;
+{10524.} 	 NC1313O2 = NC1313OH : 	9.20D-14*RO2*0.3 	;
+{10525.} 	 C116CHO + NO3 = C116CO3 + HNO3 : 	KNO3AL*8.5 	;
+{10526.} 	 C116CHO + OH = C116CO3 : 	5.65D-11 	;
+{10527.} 	 C116CHO = C116O2 + CO + HO2 : 	J(15)*2 	;
+{10528.} 	 C126OOA = C126OO : 	KDEC*0.5 	;
+{10529.} 	 C126OOA = C129O2 + OH : 	KDEC*0.5 	;
+{10530.} 	 C1313O2 + HO2 = C1313OOH : 	KRO2HO2*0.957 	;
+{10531.} 	 C1313O2 + NO = C1313NO3 : 	KRO2NO*0.134 	;
+{10532.} 	 C1313O2 + NO = C1313O + NO2 : 	KRO2NO*0.866 	;
+{10533.} 	 C1313O2 + NO3 = C1313O + NO2 : 	KRO2NO3 	;
+{10534.} 	 C1313O2 = C1313O : 	9.20D-14*RO2*0.7 	;
+{10535.} 	 C1313O2 = C1313OH : 	9.20D-14*RO2*0.3 	;
+{10536.} 	 C126O2 + HO2 = C126OOH : 	KRO2HO2*0.947 	;
+{10537.} 	 C126O2 + NO = C126NO3 : 	KRO2NO*0.176 	;
+{10538.} 	 C126O2 + NO = C126O + NO2 : 	KRO2NO*0.824 	;
+{10539.} 	 C126O2 + NO3 = C126O + NO2 : 	KRO2NO3 	;
+{10540.} 	 C126O2 = C126CO : 	1.32D-12*RO2*0.2 	;
+{10541.} 	 C126O2 = C126O : 	1.32D-12*RO2*0.6 	;
+{10542.} 	 C126O2 = C126OH : 	1.32D-12*RO2*0.2 	;
+{10543.} 	 C144O2 + HO2 = C144OOH : 	KRO2HO2*0.968 	;
+{10544.} 	 C144O2 + NO = C144O + NO2 : 	KRO2NO 	;
+{10545.} 	 C144O2 + NO3 = C144O + NO2 : 	KRO2NO3 	;
+{10546.} 	 C144O2 = C144O : 	9.20D-14*RO2 	;
+{10547.} 	 C142O2 + HO2 = C142OOH : 	KRO2HO2*0.968 	;
+{10548.} 	 C142O2 + NO = C142NO3 : 	KRO2NO*0.054 	;
+{10549.} 	 C142O2 + NO = C142O + NO2 : 	KRO2NO*0.946 	;
+{10550.} 	 C142O2 + NO3 = C142O + NO2 : 	KRO2NO3 	;
+{10551.} 	 C142O2 = C142O : 	6.70D-15*RO2*0.7 	;
+{10552.} 	 C142O2 = C142OH : 	6.70D-15*RO2*0.3 	;
+{10553.} 	 C144O = C131CO + HCHO + HO2 : 	KDEC 	;
+{10554.} 	 NBCKO2 + HO2 = NBCKOOH : 	KRO2HO2*0.968 	;
+{10555.} 	 NBCKO2 + NO = NBCKO + NO2 : 	KRO2NO 	;
+{10556.} 	 NBCKO2 + NO3 = NBCKO + NO2 : 	KRO2NO3 	;
+{10557.} 	 NBCKO2 = BCKBNO3 : 	9.20D-14*RO2*0.3 	;
+{10558.} 	 NBCKO2 = NBCKO : 	9.20D-14*RO2*0.7 	;
+{10559.} 	 BCKAOO + CO = BCLKET : 	1.20D-15 	;
+{10560.} 	 BCKAOO + NO = BCLKET + NO2 : 	1.00D-14 	;
+{10561.} 	 BCKAOO + NO2 = BCLKET + NO3 : 	1.00D-15 	;
+{10562.} 	 BCKAOO + SO2 = BCLKET + SO3 : 	7.00D-14 	;
+{10563.} 	 BCKAOO = BCKSOZ : 	8.00D+01 	;
+{10564.} 	 BCKAOO = BCLKET + H2O2 : 	2.00D-16*H2O 	;
+{10565.} 	 BCKBOO + CO = BCKET : 	1.20D-15 	;
+{10566.} 	 BCKBOO + NO = BCKET + NO2 : 	1.00D-14 	;
+{10567.} 	 BCKBOO + NO2 = BCKET + NO3 : 	1.00D-15 	;
+{10568.} 	 BCKBOO + SO2 = BCKET + SO3 : 	7.00D-14 	;
+{10569.} 	 BCKBOO = BCKSOZ : 	1.20D+02 	;
+{10570.} 	 BCKBOO = C131CO2H : 	2.00D-16*H2O 	;
+{10571.} 	 BCKOOA = BCLKAO2 + OH : 	KDEC*0.13 	;
+{10572.} 	 BCKOOA = BCLKBO2 + OH : 	KDEC*0.67 	;
+{10573.} 	 BCKOOA = BCLKBOC : 	KDEC*0.15 	;
+{10574.} 	 BCKOOA = C1210O2 + CH3O2 : 	KDEC*0.05 	;
+{10575.} 	 BCKOOB = BCLKCO2 + OH : 	KDEC*0.66 	;
+{10576.} 	 BCKOOB = C131CO2H : 	KDEC*0.17 	;
+{10577.} 	 BCKOOB = C131O2 + HO2 : 	KDEC*0.17 	;
+{10578.} 	 BCKAO2 + HO2 = BCKAOOH : 	KRO2HO2*0.968 	;
+{10579.} 	 BCKAO2 + NO = BCKANO3 : 	KRO2NO*0.245 	;
+{10580.} 	 BCKAO2 + NO = BCKAO + NO2 : 	KRO2NO*0.755 	;
+{10581.} 	 BCKAO2 + NO3 = BCKAO + NO2 : 	KRO2NO3 	;
+{10582.} 	 BCKAO2 = BCKAO : 	9.20D-14*RO2*0.7 	;
+{10583.} 	 BCKAO2 = BCKAOH : 	9.20D-14*RO2*0.3 	;
+{10584.} 	 BCKBO2 + HO2 = BCKBOOH : 	KRO2HO2*0.968 	;
+{10585.} 	 BCKBO2 + NO = BCKBNO3 : 	KRO2NO*0.245 	;
+{10586.} 	 BCKBO2 + NO = BCKBO + NO2 : 	KRO2NO*0.755 	;
+{10587.} 	 BCKBO2 + NO3 = BCKBO + NO2 : 	KRO2NO3 	;
+{10588.} 	 BCKBO2 = BCKAOH : 	8.80D-13*RO2*0.2 	;
+{10589.} 	 BCKBO2 = BCKBCO : 	8.80D-13*RO2*0.2 	;
+{10590.} 	 BCKBO2 = BCKBO : 	8.80D-13*RO2*0.6 	;
+{10591.} 	 MMFOOH + OH = MMCF + OH : 	4.09D-11 	;
+{10592.} 	 MMFOOH = MMFO + OH : 	J(41) 	;
+{10593.} 	 MMFNO3 + OH = MMCF + NO2 : 	2.12D-12 	;
+{10594.} 	 MMFNO3 = MMFO + NO2 : 	J(54) 	;
+{10595.} 	 MMFO = MMCF + HO2 : 	KROSEC*O2 	;
+{10596.} 	 MMFOH + OH = MMCF + HO2 : 	1.17D-11 	;
+{10597.} 	 MMCFOOH + OH = DFC + OH : 	1.96D-11 	;
+{10598.} 	 MMCFOOH + OH = MMCFO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{10599.} 	 MMCFOOH = MMCFO + OH : 	J(41) 	;
+{10600.} 	 MMCFNO3 + OH = DFC + NO2 : 	1.50D-13 	;
+{10601.} 	 MMCFNO3 = MMCFO + NO2 : 	J(53) 	;
+{10602.} 	 MMCFO = DFC + HO2 : 	KROPRIM*O2 	;
+{10603.} 	 MMCFO = HCHO + HO2 : 	2.70D+14*EXP(-6765/TEMP) 	;
+{10604.} 	 DFC + OH = CO + HO2 : 	1.80D-13 	;
+{10605.} 	 MMCFOH + OH = DFC + HO2 : 	5.47D-12 	;
+{10606.} 	 CH3SO + NO2 = CH3O2 + SO2 + NO : 	1.20D-11*0.25 	;
+{10607.} 	 CH3SO + NO2 = CH3SO2 + NO : 	1.20D-11*0.75 	;
+{10608.} 	 CH3SO + O3 = CH3O2 + SO2 : 	4.00D-13 	;
+{10609.} 	 CH3SO = CH3SOO2 : 	3.12D-16*EXP(1580/TEMP)*O2 	;
+{10610.} 	 CH3SOO + NO = CH3SO + NO2 : 	1.1D-11 	;
+{10611.} 	 CH3SOO + NO2 = CH3SO + NO3 : 	2.2D-11 	;
+{10612.} 	 CH3SOO = CH3S : 	3.50D+10*EXP(-3560/TEMP) 	;
+{10613.} 	 CH3SOO = CH3SO2 : 	8.00D+00 	;
+{10614.} 	 DMSO2OOH + OH = CH3SO2CHO + OH : 	1.26D-12 	;
+{10615.} 	 DMSO2OOH + OH = DMSO2O2 : 	3.60D-12 	;
+{10616.} 	 DMSO2OOH = DMSO2O + OH : 	J(41) 	;
+{10617.} 	 DMSO2O = CH3SO2 + HCHO : 	KDEC 	;
+{10618.} 	 CH3SO2CHO + OH = CH3SO2 + CO : 	1.78D-12 	;
+{10619.} 	 CH3SO2CHO = CH3SO2 + CO + HO2 : 	J(15) 	;
+{10620.} 	 DMSO2OH + OH = CH3SO2CHO + HO2 : 	5.23D-13 	;
+{10621.} 	 DMSO2OH + OH = DMSO2O : 	1.40D-13 	;
+{10622.} 	 H13C43CO3 + HO2 = H13C43CO3H : 	KAPHO2*0.56 	;
+{10623.} 	 H13C43CO3 + HO2 = MEKAOH + HO2 + OH : 	KAPHO2*0.44 	;
+{10624.} 	 H13C43CO3 + NO = MEKAOH + HO2 + NO2 : 	KAPNO 	;
+{10625.} 	 H13C43CO3 + NO2 = C5PAN12 : 	KFPAN 	;
+{10626.} 	 H13C43CO3 + NO3 = MEKAOH + HO2 + NO2 : 	KRO2NO3*1.74 	;
+{10627.} 	 H13C43CO3 = MEKAOH + HO2 : 	1.00D-11*RO2 	;
+{10628.} 	 C42CO3 + HO2 = C42CO3H : 	KAPHO2*0.56 	;
+{10629.} 	 C42CO3 + HO2 = HOIPRCHO + HO2 + OH : 	KAPHO2*0.44 	;
+{10630.} 	 C42CO3 + NO = HOIPRCHO + HO2 + NO2 : 	KAPNO 	;
+{10631.} 	 C42CO3 + NO2 = C5PAN13 : 	KFPAN 	;
+{10632.} 	 C42CO3 + NO3 = HOIPRCHO + HO2 + NO2 : 	KRO2NO3*1.74 	;
+{10633.} 	 C42CO3 = HOIPRCHO + HO2 : 	1.00D-11*RO2 	;
+{10634.} 	 CHOC4CO3H + OH = CHOC4CO3 : 	3.50D-11 	;
+{10635.} 	 CHOC4CO3H = CHOC4O2 + OH : 	J(41)+J(15) 	;
+{10636.} 	 CHOC4PAN + OH = CO2C4CHO + CO + NO2 : 	2.79D-11 	;
+{10637.} 	 CHOC4PAN = CHOC4CO3 + NO2 : 	KBPAN 	;
+{10638.} 	 C6DIALOOH + OH = C6CODIAL + OH : 	1.29D-10 	;
+{10639.} 	 C6DIALOOH + OH = C6DIALO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{10640.} 	 C6DIALOOH = C6DIALO + OH : 	J(41)+J(15)*2 	;
+{10641.} 	 C6DIALO = C6CODIAL + HO2 : 	KROSEC*O2 	;
+{10642.} 	 C6DIALO = CHOC2H4O2 + HCOCH2CHO : 	2.70D+14*EXP(-7398/TEMP) 	;
+{10643.} 	 C6DIALOH + OH = C1H4C5CO3 : 	8.03D-11*0.560 	;
+{10644.} 	 C6DIALOH + OH = C6CODIAL + HO2 : 	8.03D-11*0.440 	;
+{10645.} 	 C6DIALOH = CHOC4OHO2 + HO2 + CO : 	J(15) 	;
+{10646.} 	 CHOC4OOH + OH = CHOC4O2 : 	4.08D-11 	;
+{10647.} 	 CHOC4OOH = CHOC4O + OH : 	J(41)+J(15) 	;
+{10648.} 	 CHOC4O = HOC4CHOO2 : 	8.40D+10*EXP(-2567/TEMP) 	;
+{10649.} 	 CY6DIONOOH + OH = CYC6DIONO2 : 	8.80D-11 	;
+{10650.} 	 CY6DIONOOH = CYC6DIONO + OH : 	J(41)+J(35) 	;
+{10651.} 	 CYC6DIONO = C6145COO2 : 	KDEC 	;
+{10652.} 	 HOC3H6CO3 + HO2 = HO1C3O2 + OH : 	KAPHO2*0.44 	;
+{10653.} 	 HOC3H6CO3 + HO2 = HOC3H6CO2H + O3 : 	KAPHO2*0.15 	;
+{10654.} 	 HOC3H6CO3 + HO2 = HOC3H6CO3H : 	KAPHO2*0.41 	;
+{10655.} 	 HOC3H6CO3 + NO = HO1C3O2 + NO2 : 	KAPNO*4.0 	;
+{10656.} 	 HOC3H6CO3 + NO2 = C4PAN1 : 	KFPAN 	;
+{10657.} 	 HOC3H6CO3 + NO3 = HO1C3O2 + NO2 : 	KRO2NO3*1.74 	;
+{10658.} 	 HOC3H6CO3 = HO1C3O2 : 	1.00D-11*0.7*RO2 	;
+{10659.} 	 HOC3H6CO3 = HOC3H6CO2H : 	1.00D-11*0.3*RO2 	;
+{10660.} 	 C3DIOLO2 + HO2 = C3DIOLOOH : 	KRO2HO2*0.520 	;
+{10661.} 	 C3DIOLO2 + NO = C3DIOLO + NO2 : 	KRO2NO 	;
+{10662.} 	 C3DIOLO2 + NO3 = C3DIOLO + NO2 : 	KRO2NO3 	;
+{10663.} 	 C3DIOLO2 = C3DIOLO : 	2.00D-12*RO2 	;
+{10664.} 	 C51O2 + HO2 = C51OOH : 	KRO2HO2*0.706 	;
+{10665.} 	 C51O2 + NO = C51NO3 : 	KRO2NO*0.065 	;
+{10666.} 	 C51O2 + NO = C51O + NO2 : 	KRO2NO*0.935 	;
+{10667.} 	 C51O2 + NO3 = C51O + NO2 : 	KRO2NO3 	;
+{10668.} 	 C51O2 = C51O : 	8.40D-13*0.6*RO2 	;
+{10669.} 	 C51O2 = C51OH : 	8.40D-13*0.2*RO2 	;
+{10670.} 	 C51O2 = HO1CO24C5 : 	8.40D-13*0.2*RO2 	;
+{10671.} 	 CO2C4CHO = MEKAO2 + HO2 + CO : 	J(15) 	;
+{10672.} 	 NO3 + CO2C4CHO = CO2C4CO3 + HNO3 : 	KNO3AL*5.5 	;
+{10673.} 	 OH + CO2C4CHO = CO2C4CO3 : 	2.63D-11 	;
+{10674.} 	 HO2C4CO3 + HO2 = HO2C4CO2H + O3 : 	KAPHO2*0.15 	;
+{10675.} 	 HO2C4CO3 + HO2 = HO2C4CO3H : 	KAPHO2*0.41 	;
+{10676.} 	 HO2C4CO3 + HO2 = HO2C4O2 + OH : 	KAPHO2*0.44 	;
+{10677.} 	 HO2C4CO3 + NO = HO2C4O2 + NO2 : 	KAPNO 	;
+{10678.} 	 HO2C4CO3 + NO2 = C5PAN1 : 	KFPAN 	;
+{10679.} 	 HO2C4CO3 + NO3 = HO2C4O2 + NO2 : 	KRO2NO3*1.74 	;
+{10680.} 	 HO2C4CO3 = HO2C4CO2H : 	1.00D-11*0.3*RO2 	;
+{10681.} 	 HO2C4CO3 = HO2C4O2 : 	1.00D-11*0.7*RO2 	;
+{10682.} 	 HOBUT2CHO = NBUTOLBO2 + HO2 + CO : 	J(17) 	;
+{10683.} 	 NO3 + HOBUT2CHO = HOBUT2CO3 + HNO3 : 	KNO3AL*8.5 	;
+{10684.} 	 OH + HOBUT2CHO = HOBUT2CO3 : 	3.09D-11 	;
+{10685.} 	 HOIBUTCO3 + HO2 = HOIBUTCO3H : 	KAPHO2*0.56 	;
+{10686.} 	 HOIBUTCO3 + HO2 = IBUTOLCO2 + OH : 	KAPHO2*0.44 	;
+{10687.} 	 HOIBUTCO3 + NO = IBUTOLCO2 + NO2 : 	KAPNO 	;
+{10688.} 	 HOIBUTCO3 + NO2 = C5PAN3 : 	KFPAN 	;
+{10689.} 	 HOIBUTCO3 + NO3 = IBUTOLCO2 + NO2 : 	KRO2NO3*1.74 	;
+{10690.} 	 HOIBUTCO3 = SC4H9O2 : 	1.00D-11*RO2 	;
+{10691.} 	 C63O2 + HO2 = C63OOH : 	KRO2HO2*0.770 	;
+{10692.} 	 C63O2 + NO = C63NO3 : 	KRO2NO*0.039 	;
+{10693.} 	 C63O2 + NO = C63O + NO2 : 	KRO2NO*0.961 	;
+{10694.} 	 C63O2 + NO3 = C63O + NO2 : 	KRO2NO3 	;
+{10695.} 	 C63O2 = C63O : 	8.40D-13*0.6*RO2 	;
+{10696.} 	 C63O2 = C63OH : 	8.40D-13*0.2*RO2 	;
+{10697.} 	 C63O2 = HO1CO24C6 : 	8.40D-13*0.2*RO2 	;
+{10698.} 	 CO3C5CHO = DIEKBO2 + HO2 + CO : 	J(15) 	;
+{10699.} 	 NO3 + CO3C5CHO = CO3C5CO3 + HNO3 : 	KNO3AL*5.5 	;
+{10700.} 	 OH + CO3C5CHO = CO3C5CO3 : 	2.75D-11 	;
+{10701.} 	 HO3C5CO3 + HO2 = HO3C5CO2H + O3 : 	KAPHO2*0.15 	;
+{10702.} 	 HO3C5CO3 + HO2 = HO3C5CO3H : 	KAPHO2*0.41 	;
+{10703.} 	 HO3C5CO3 + HO2 = HO3C5O2 + OH : 	KAPHO2*0.44 	;
+{10704.} 	 HO3C5CO3 + NO = HO3C5O2 + NO2 : 	KAPNO 	;
+{10705.} 	 HO3C5CO3 + NO2 = C6PAN1 : 	KFPAN 	;
+{10706.} 	 HO3C5CO3 + NO3 = HO3C5O2 + NO2 : 	KRO2NO3*1.74 	;
+{10707.} 	 HO3C5CO3 = HO3C5CO2H : 	1.00D-11*0.3*RO2 	;
+{10708.} 	 HO3C5CO3 = HO3C5O2 : 	1.00D-11*0.7*RO2 	;
+{10709.} 	 C64O2 + HO2 = C64OOH : 	KRO2HO2*0.770 	;
+{10710.} 	 C64O2 + NO = C64NO3 : 	KRO2NO*0.029 	;
+{10711.} 	 C64O2 + NO = C64O + NO2 : 	KRO2NO*0.971 	;
+{10712.} 	 C64O2 + NO3 = C64O + NO2 : 	KRO2NO3 	;
+{10713.} 	 C64O2 = C64O : 	9.20D-14*0.7*RO2 	;
+{10714.} 	 C64O2 = C64OH : 	9.20D-14*0.3*RO2 	;
+{10715.} 	 CO2C54CHO = CO2C54O2 + HO2 + CO : 	J(17) 	;
+{10716.} 	 NO3 + CO2C54CHO = CO2C54CO3 + HNO3 : 	KNO3AL*8.5 	;
+{10717.} 	 OH + CO2C54CHO = C65O2 : 	2.98D-11*0.215 	;
+{10718.} 	 OH + CO2C54CHO = CO2C54CO3 : 	2.98D-11*0.785 	;
+{10719.} 	 HO2C54O2 + HO2 = HO2C54OOH : 	KRO2HO2*0.706 	;
+{10720.} 	 HO2C54O2 + NO = HO2C54NO3 : 	KRO2NO*0.129 	;
+{10721.} 	 HO2C54O2 + NO = HO2C54O + NO2 : 	KRO2NO*0.971 	;
+{10722.} 	 HO2C54O2 + NO3 = HO2C54O + NO2 : 	KRO2NO3 	;
+{10723.} 	 HO2C54O2 = HO24C5 : 	2.50D-13*0.2*RO2 	;
+{10724.} 	 HO2C54O2 = HO2C54O : 	2.50D-13*0.6*RO2 	;
+{10725.} 	 HO2C54O2 = HO2CO4C5 : 	2.50D-13*0.2*RO2 	;
+{10726.} 	 HO2C54CO3 + HO2 = HO2C54CO2H + O3 : 	KAPHO2*0.15 	;
+{10727.} 	 HO2C54CO3 + HO2 = HO2C54CO3H : 	KAPHO2*0.41 	;
+{10728.} 	 HO2C54CO3 + HO2 = HO2C54O2 + OH : 	KAPHO2*0.44 	;
+{10729.} 	 HO2C54CO3 + NO = HO2C54O2 + NO2 : 	KAPNO 	;
+{10730.} 	 HO2C54CO3 + NO2 = C6PAN4 : 	KFPAN 	;
+{10731.} 	 HO2C54CO3 + NO3 = HO2C54O2 + NO2 : 	KRO2NO3*1.74 	;
+{10732.} 	 HO2C54CO3 = HO2C54CO2H : 	1.00D-11*0.3*RO2 	;
+{10733.} 	 HO2C54CO3 = HO2C54O2 : 	1.00D-11*0.7*RO2 	;
+{10734.} 	 C66O2 + HO2 = C66OOH : 	KRO2HO2*0.770 	;
+{10735.} 	 C66O2 + NO = C66O + NO2 : 	KRO2NO 	;
+{10736.} 	 C66O2 + NO3 = C66O + NO2 : 	KRO2NO3 	;
+{10737.} 	 C66O2 = C66CO : 	8.40D-13*0.2*RO2 	;
+{10738.} 	 C66O2 = C66O : 	8.40D-13*0.6*RO2 	;
+{10739.} 	 C66O2 = C66OH : 	8.40D-13*0.2*RO2 	;
+{10740.} 	 CO3C54CO3 + HO2 = CO3C54CO3H : 	KAPHO2*0.56 	;
+{10741.} 	 CO3C54CO3 + HO2 = DIEKAO2 + OH : 	KAPHO2*0.44 	;
+{10742.} 	 CO3C54CO3 + NO = DIEKAO2 + NO2 : 	KAPNO 	;
+{10743.} 	 CO3C54CO3 + NO2 = C6PAN6 : 	KFPAN 	;
+{10744.} 	 CO3C54CO3 + NO3 = DIEKAO2 + NO2 : 	KRO2NO3*1.74 	;
+{10745.} 	 CO3C54CO3 = DIEKAO2 : 	1.00D-11*RO2 	;
+{10746.} 	 H2M2C4CO3 + HO2 = H2M2C4CO2H + O3 : 	KAPHO2*0.15 	;
+{10747.} 	 H2M2C4CO3 + HO2 = H2M2C4CO3H : 	KAPHO2*0.41 	;
+{10748.} 	 H2M2C4CO3 + HO2 = HO2M2C4O2 + OH : 	KAPHO2*0.44 	;
+{10749.} 	 H2M2C4CO3 + NO = HO2M2C4O2 + NO2 : 	KAPNO 	;
+{10750.} 	 H2M2C4CO3 + NO2 = C6PAN8 : 	KFPAN 	;
+{10751.} 	 H2M2C4CO3 + NO3 = HO2M2C4O2 + NO2 : 	KRO2NO3*1.74 	;
+{10752.} 	 H2M2C4CO3 = H2M2C4CO2H : 	1.00D-11*0.3*RO2 	;
+{10753.} 	 H2M2C4CO3 = HO2M2C4O2 : 	1.00D-11*0.7*RO2 	;
+{10754.} 	 C67O2 + HO2 = C67OOH : 	KRO2HO2*0.770 	;
+{10755.} 	 C67O2 + NO = C67NO3 : 	KRO2NO*0.098 	;
+{10756.} 	 C67O2 + NO = C67O + NO2 : 	KRO2NO*0.902 	;
+{10757.} 	 C67O2 + NO3 = C67O + NO2 : 	KRO2NO3 	;
+{10758.} 	 C67O2 = C67CHO : 	8.40D-13*0.2*RO2 	;
+{10759.} 	 C67O2 = C67O : 	8.40D-13*0.6*RO2 	;
+{10760.} 	 C67O2 = C67OH : 	8.40D-13*0.2*RO2 	;
+{10761.} 	 C610O2 + HO2 = C610OOH : 	KRO2HO2*0.770 	;
+{10762.} 	 C610O2 + NO = C610NO3 : 	KRO2NO*0.098 	;
+{10763.} 	 C610O2 + NO = C610O + NO2 : 	KRO2NO*0.902 	;
+{10764.} 	 C610O2 + NO3 = C610O + NO2 : 	KRO2NO3 	;
+{10765.} 	 C610O2 = C610O : 	8.80D-13*0.6*RO2 	;
+{10766.} 	 C610O2 = C610OH : 	8.80D-13*0.2*RO2 	;
+{10767.} 	 C610O2 = CO24M3C5OH : 	8.80D-13*0.2*RO2 	;
+{10768.} 	 CO2M3C4CHO = MIPKBO2 + HO2 + CO : 	J(15) 	;
+{10769.} 	 NO3 + CO2M3C4CHO = CO2M3C4CO3 + HNO3 : 	KNO3AL*8.5 	;
+{10770.} 	 OH + CO2M3C4CHO = CO2M3C4CO3 : 	2.98D-11 	;
+{10771.} 	 H2M3C4CO3 + HO2 = H2M3C4CO2H + O3 : 	KAPHO2*0.15 	;
+{10772.} 	 H2M3C4CO3 + HO2 = H2M3C4CO3H : 	KAPHO2*0.41 	;
+{10773.} 	 H2M3C4CO3 + HO2 = H2M3C4O2 + OH : 	KAPHO2*0.44 	;
+{10774.} 	 H2M3C4CO3 + NO = H2M3C4O2 + NO2 : 	KAPNO 	;
+{10775.} 	 H2M3C4CO3 + NO2 = C6PAN11 : 	KFPAN 	;
+{10776.} 	 H2M3C4CO3 + NO3 = H2M3C4O2 + NO2 : 	KRO2NO3*1.74 	;
+{10777.} 	 H2M3C4CO3 = H2M3C4CO2H : 	1.00D-11*0.3*RO2 	;
+{10778.} 	 H2M3C4CO3 = H2M3C4O2 : 	1.00D-11*0.7*RO2 	;
+{10779.} 	 C68O2 + HO2 = C68OOH : 	KRO2HO2*0.770 	;
+{10780.} 	 C68O2 + NO = C68NO3 : 	KRO2NO*0.029 	;
+{10781.} 	 C68O2 + NO = C68O + NO2 : 	KRO2NO*0.971 	;
+{10782.} 	 C68O2 + NO3 = C68O + NO2 : 	KRO2NO3 	;
+{10783.} 	 C68O2 = C68O : 	9.20D-14*0.7*RO2 	;
+{10784.} 	 C68O2 = C68OH : 	9.20D-14*0.3*RO2 	;
+{10785.} 	 C69O2 + HO2 = C69OOH : 	KRO2HO2*0.770 	;
+{10786.} 	 C69O2 + NO = C69O + NO2 : 	KRO2NO 	;
+{10787.} 	 C69O2 + NO3 = C69O + NO2 : 	KRO2NO3 	;
+{10788.} 	 C69O2 = C69O : 	2.00D-12*0.6*RO2 	;
+{10789.} 	 C69O2 = C69OH : 	2.00D-12*0.2*RO2 	;
+{10790.} 	 C69O2 = H2M3CO4CHO : 	2.00D-12*0.2*RO2 	;
+{10791.} 	 C611O2 + HO2 = C611OOH : 	KRO2HO2*0.770 	;
+{10792.} 	 C611O2 + NO = C611O + NO2 : 	KRO2NO 	;
+{10793.} 	 C611O2 + NO3 = C611O + NO2 : 	KRO2NO3 	;
+{10794.} 	 C611O2 = C611O : 	9.20D-14*0.7*RO2 	;
+{10795.} 	 C611O2 = C611OH : 	9.20D-14*0.3*RO2 	;
+{10796.} 	 HM33C3CO3 + HO2 = HM33C3CO2H + O3 : 	KAPHO2*0.15 	;
+{10797.} 	 HM33C3CO3 + HO2 = HM33C3CO3H : 	KAPHO2*0.41 	;
+{10798.} 	 HM33C3CO3 + HO2 = HM33C3O2 + OH : 	KAPHO2*0.44 	;
+{10799.} 	 HM33C3CO3 + NO = HM33C3O2 + NO2 : 	KAPNO 	;
+{10800.} 	 HM33C3CO3 + NO2 = C6PAN13 : 	KFPAN 	;
+{10801.} 	 HM33C3CO3 + NO3 = HM33C3O2 + NO2 : 	KRO2NO3*1.74 	;
+{10802.} 	 HM33C3CO3 = HM33C3CO2H : 	1.00D-11*0.3*RO2 	;
+{10803.} 	 HM33C3CO3 = HM33C3O2 : 	1.00D-11*0.7*RO2 	;
+{10804.} 	 HM22C3O2 + HO2 = HM22C3OOH : 	KRO2HO2*0.706 	;
+{10805.} 	 HM22C3O2 + NO = HM22C3NO3 : 	KRO2NO*0.052 	;
+{10806.} 	 HM22C3O2 + NO = HM22C3O + NO2 : 	KRO2NO*0.948 	;
+{10807.} 	 HM22C3O2 + NO3 = HM22C3O + NO2 : 	KRO2NO3 	;
+{10808.} 	 HM22C3O2 = HM22C3O : 	1.30D-12*0.6*RO2 	;
+{10809.} 	 HM22C3O2 = HM22C3OH : 	1.30D-12*0.2*RO2 	;
+{10810.} 	 HM22C3O2 = HM22CHO : 	1.30D-12*0.2*RO2 	;
+{10811.} 	 HM22C3CO3 + HO2 = HM22C3CO2H + O3 : 	KAPHO2*0.15 	;
+{10812.} 	 HM22C3CO3 + HO2 = HM22C3CO3H : 	KAPHO2*0.41 	;
+{10813.} 	 HM22C3CO3 + HO2 = HM22C3O2 + OH : 	KAPHO2*0.44 	;
+{10814.} 	 HM22C3CO3 + NO = HM22C3O2 + NO2 : 	KAPNO 	;
+{10815.} 	 HM22C3CO3 + NO2 = C6PAN14 : 	KFPAN 	;
+{10816.} 	 HM22C3CO3 + NO3 = HM22C3O2 + NO2 : 	KRO2NO3*1.74 	;
+{10817.} 	 HM22C3CO3 = HM22C3CO2H : 	1.00D-11*0.3*RO2 	;
+{10818.} 	 HM22C3CO3 = HM22C3O2 : 	1.00D-11*0.7*RO2 	;
+{10819.} 	 HM2C43CO3 + HO2 = HM2C43CO2H + O3 : 	KAPHO2*0.15 	;
+{10820.} 	 HM2C43CO3 + HO2 = HM2C43CO3H : 	KAPHO2*0.41 	;
+{10821.} 	 HM2C43CO3 + HO2 = HM2C43O2 + OH : 	KAPHO2*0.44 	;
+{10822.} 	 HM2C43CO3 + NO = HM2C43O2 + NO2 : 	KAPNO 	;
+{10823.} 	 HM2C43CO3 + NO2 = C6PAN19 : 	KFPAN 	;
+{10824.} 	 HM2C43CO3 + NO3 = HM2C43O2 + NO2 : 	KRO2NO3*1.74 	;
+{10825.} 	 HM2C43CO3 = HM2C43CO2H : 	1.00D-11*0.3*RO2 	;
+{10826.} 	 HM2C43CO3 = HM2C43O2 : 	1.00D-11*0.7*RO2 	;
+{10827.} 	 HO2CO5C7 = C2H5CO3 + HO2C4O2 : 	J(22) 	;
+{10828.} 	 OH + HO2CO5C7 = C72O2 : 	1.52D-11*0.349 	;
+{10829.} 	 OH + HO2CO5C7 = CO25C7 + HO2 : 	1.52D-11*0.651 	;
+{10830.} 	 CO25C7 = C2H5CO3 + MEKAO2 : 	J(22) 	;
+{10831.} 	 CO25C7 = CH3CO3 + DIEKBO2 : 	J(22) 	;
+{10832.} 	 OH + CO25C7 = CO25C73O2 : 	6.60D-12*0.500 	;
+{10833.} 	 OH + CO25C7 = CO25C74O2 : 	6.60D-12*0.500 	;
+{10834.} 	 C71O2 + HO2 = C71OOH : 	KRO2HO2*0.820 	;
+{10835.} 	 C71O2 + NO = C71O + NO2 : 	KRO2NO 	;
+{10836.} 	 C71O2 + NO3 = C71O + NO2 : 	KRO2NO3 	;
+{10837.} 	 C71O2 = C71O : 	8.80D-13*RO2 	;
+{10838.} 	 C76O2 + HO2 = C76OOH : 	KRO2HO2*0.820 	;
+{10839.} 	 C76O2 + NO = C76O + NO2 : 	KRO2NO 	;
+{10840.} 	 C76O2 + NO3 = C76O + NO2 : 	KRO2NO3 	;
+{10841.} 	 C76O2 = C76O : 	2.00D-12*RO2 	;
+{10842.} 	 C77O2 + HO2 = C77OOH : 	KRO2HO2*0.820 	;
+{10843.} 	 C77O2 + NO = C77NO3 : 	KRO2NO*0.139 	;
+{10844.} 	 C77O2 + NO = C77O + NO2 : 	KRO2NO*0.861 	;
+{10845.} 	 C77O2 + NO3 = C77O + NO2 : 	KRO2NO3 	;
+{10846.} 	 C77O2 = C77CO : 	8.80D-13*0.2*RO2 	;
+{10847.} 	 C77O2 = C77O : 	8.80D-13*0.6*RO2 	;
+{10848.} 	 C77O2 = C77OH : 	8.80D-13*0.2*RO2 	;
+{10849.} 	 C78O2 + HO2 = C78OOH : 	KRO2HO2*0.820 	;
+{10850.} 	 C78O2 + NO = C78O + NO2 : 	KRO2NO 	;
+{10851.} 	 C78O2 + NO3 = C78O + NO2 : 	KRO2NO3 	;
+{10852.} 	 C78O2 = C78CO : 	8.80D-13*0.2*RO2 	;
+{10853.} 	 C78O2 = C78O : 	8.80D-13*0.6*RO2 	;
+{10854.} 	 C78O2 = C78OH : 	8.80D-13*0.2*RO2 	;
+{10855.} 	 H2M3CO5C6 = CH3CO3 + H2M3C4O2 : 	J(22) 	;
+{10856.} 	 OH + H2M3CO5C6 = C712O2 : 	1.91D-11*0.534 	;
+{10857.} 	 OH + H2M3CO5C6 = M3CO25C6 + HO2 : 	1.91D-11*0.466 	;
+{10858.} 	 M3CO25C6 = CH3CO3 + CO2C54O2 : 	J(22) 	;
+{10859.} 	 M3CO25C6 = CH3CO3 + MIPKBO2 : 	J(22) 	;
+{10860.} 	 OH + M3CO25C6 = C713O2 : 	9.14D-12*0.675 	;
+{10861.} 	 OH + M3CO25C6 = C714O2 : 	9.14D-12*0.325 	;
+{10862.} 	 C711O2 + HO2 = C711OOH : 	KRO2HO2*0.820 	;
+{10863.} 	 C711O2 + NO = C711O + NO2 : 	KRO2NO 	;
+{10864.} 	 C711O2 + NO3 = C711O + NO2 : 	KRO2NO3 	;
+{10865.} 	 C711O2 = C711O : 	2.00D-12*RO2 	;
+{10866.} 	 H3M3C5O2 + HO2 = H3M3C5OOH : 	KRO2HO2*0.706 	;
+{10867.} 	 H3M3C5O2 + NO = H3M3C5NO3 : 	KRO2NO*0.052 	;
+{10868.} 	 H3M3C5O2 + NO = H3M3C5O + NO2 : 	KRO2NO*0.948 	;
+{10869.} 	 H3M3C5O2 + NO3 = H3M3C5O + NO2 : 	KRO2NO3 	;
+{10870.} 	 H3M3C5O2 = H13M3C5 : 	1.30D-12*0.2*RO2 	;
+{10871.} 	 H3M3C5O2 = H3M3C4CHO : 	1.30D-12*0.2*RO2 	;
+{10872.} 	 H3M3C5O2 = H3M3C5O : 	1.30D-12*0.6*RO2 	;
+{10873.} 	 H3M3C5CO3 + HO2 = H3M3C5CO2H + O3 : 	KAPHO2*0.15 	;
+{10874.} 	 H3M3C5CO3 + HO2 = H3M3C5CO3H : 	KAPHO2*0.41 	;
+{10875.} 	 H3M3C5CO3 + HO2 = H3M3C5O2 + OH : 	KAPHO2*0.44 	;
+{10876.} 	 H3M3C5CO3 + NO = H3M3C5O2 + NO2 : 	KAPNO 	;
+{10877.} 	 H3M3C5CO3 + NO2 = C7PAN1 : 	KFPAN 	;
+{10878.} 	 H3M3C5CO3 + NO3 = H3M3C5O2 + NO2 : 	KRO2NO3*1.74 	;
+{10879.} 	 H3M3C5CO3 = H3M3C5CO2H : 	1.00D-11*0.3*RO2 	;
+{10880.} 	 H3M3C5CO3 = H3M3C5O2 : 	1.00D-11*0.7*RO2 	;
+{10881.} 	 C82O2 + HO2 = C82OOH : 	KRO2HO2*0.859 	;
+{10882.} 	 C82O2 + NO = C82NO3 : 	KRO2NO*0.173 	;
+{10883.} 	 C82O2 + NO = C82O + NO2 : 	KRO2NO*0.827 	;
+{10884.} 	 C82O2 + NO3 = C82O + NO2 : 	KRO2NO3 	;
+{10885.} 	 C82O2 = C82O : 	8.80D-13*0.6*RO2 	;
+{10886.} 	 C82O2 = HO34CO6C8 : 	8.80D-13*0.2*RO2 	;
+{10887.} 	 C82O2 = HO3CO46C8 : 	8.80D-13*0.2*RO2 	;
+{10888.} 	 CO36C8 = C2H5CO3 + DIEKBO2 : 	J(22)*2 	;
+{10889.} 	 OH + CO36C8 = C84O2 : 	7.93D-12 	;
+{10890.} 	 C81O2 + HO2 = C81OOH : 	KRO2HO2*0.859 	;
+{10891.} 	 C81O2 + NO = C81O + NO2 : 	KRO2NO 	;
+{10892.} 	 C81O2 + NO3 = C81O + NO2 : 	KRO2NO3 	;
+{10893.} 	 C81O2 = C81O : 	8.80D-13*RO2 	;
+{10894.} 	 C93O2 + HO2 = C93OOH : 	KRO2HO2*0.890 	;
+{10895.} 	 C93O2 + NO = C93NO3 : 	KRO2NO*0.197 	;
+{10896.} 	 C93O2 + NO = C93O + NO2 : 	KRO2NO*0.803 	;
+{10897.} 	 C93O2 + NO3 = C93O + NO2 : 	KRO2NO3 	;
+{10898.} 	 C93O2 = C93CO : 	8.80D-13*0.2*RO2 	;
+{10899.} 	 C93O2 = C93O : 	8.80D-13*0.6*RO2 	;
+{10900.} 	 C93O2 = C93OH : 	8.80D-13*0.2*RO2 	;
+{10901.} 	 CO36C9 = C3H7CO3 + DIEKBO2 : 	J(22)*2 	;
+{10902.} 	 OH + CO36C9 = C94O2 : 	1.14D-11 	;
+{10903.} 	 C92O2 + HO2 = C92OOH : 	KRO2HO2*0.890 	;
+{10904.} 	 C92O2 + NO = C92O + NO2 : 	KRO2NO 	;
+{10905.} 	 C92O2 + NO3 = C92O + NO2 : 	KRO2NO3 	;
+{10906.} 	 C92O2 = C92O : 	8.80D-13*RO2 	;
+{10907.} 	 HO6C7O2 + HO2 = HO6C7OOH : 	KRO2HO2*0.820 	;
+{10908.} 	 HO6C7O2 + NO = HO6C7O + NO2 : 	KRO2NO 	;
+{10909.} 	 HO6C7O2 + NO3 = HO6C7O + NO2 : 	KRO2NO3 	;
+{10910.} 	 HO6C7O2 = HO6C7O : 	2.00D-12*RO2 	;
+{10911.} 	 C103O2 + HO2 = C103OOH : 	KRO2HO2*0.914 	;
+{10912.} 	 C103O2 + NO = C103NO3 : 	KRO2NO*0.208 	;
+{10913.} 	 C103O2 + NO = C103O + NO2 : 	KRO2NO*0.792 	;
+{10914.} 	 C103O2 + NO3 = C103O + NO2 : 	KRO2NO3 	;
+{10915.} 	 C103O2 = C103CO : 	8.80D-13*0.2*RO2 	;
+{10916.} 	 C103O2 = C103O : 	8.80D-13*0.6*RO2 	;
+{10917.} 	 C103O2 = C103OH : 	8.80D-13*0.2*RO2 	;
+{10918.} 	 CO36C10 = C4H9CO3 + DIEKBO2 : 	J(22)*2 	;
+{10919.} 	 OH + CO36C10 = C104O2 : 	1.28D-11 	;
+{10920.} 	 C102O2 + HO2 = C102OOH : 	KRO2HO2*0.914 	;
+{10921.} 	 C102O2 + NO = C102O + NO2 : 	KRO2NO 	;
+{10922.} 	 C102O2 + NO3 = C102O + NO2 : 	KRO2NO3 	;
+{10923.} 	 C102O2 = C102O : 	8.80D-13*RO2 	;
+{10924.} 	 HO7C8O2 + HO2 = HO7C8OOH : 	KRO2HO2*0.859 	;
+{10925.} 	 HO7C8O2 + NO = HO7C8O + NO2 : 	KRO2NO 	;
+{10926.} 	 HO7C8O2 + NO3 = HO7C8O + NO2 : 	KRO2NO3 	;
+{10927.} 	 HO7C8O2 = HO7C8O : 	2.00D-12*RO2 	;
+{10928.} 	 C113O2 + HO2 = C113OOH : 	KRO2HO2*0.932 	;
+{10929.} 	 C113O2 + NO = C113NO3 : 	KRO2NO*0.215 	;
+{10930.} 	 C113O2 + NO = C113O + NO2 : 	KRO2NO*0.785 	;
+{10931.} 	 C113O2 + NO3 = C113O + NO2 : 	KRO2NO3 	;
+{10932.} 	 C113O2 = C113CO : 	8.80D-13*0.2*RO2 	;
+{10933.} 	 C113O2 = C113O : 	8.80D-13*0.6*RO2 	;
+{10934.} 	 C113O2 = C113OH : 	8.80D-13*0.2*RO2 	;
+{10935.} 	 CO36C11 = C5H11CO3 + DIEKBO2 : 	J(22)*2 	;
+{10936.} 	 OH + CO36C11 = C114O2 : 	1.42D-11 	;
+{10937.} 	 C112O2 + HO2 = C112OOH : 	KRO2HO2*0.932 	;
+{10938.} 	 C112O2 + NO = C112O + NO2 : 	KRO2NO 	;
+{10939.} 	 C112O2 + NO3 = C112O + NO2 : 	KRO2NO3 	;
+{10940.} 	 C112O2 = C112O : 	8.80D-13*RO2 	;
+{10941.} 	 HO8C9O2 + HO2 = HO8C9OOH : 	KRO2HO2*0.890 	;
+{10942.} 	 HO8C9O2 + NO = HO8C9O + NO2 : 	KRO2NO 	;
+{10943.} 	 HO8C9O2 + NO3 = HO8C9O + NO2 : 	KRO2NO3 	;
+{10944.} 	 HO8C9O2 = HO8C9O : 	2.00D-12*RO2 	;
+{10945.} 	 C123O2 + HO2 = C123OOH : 	KRO2HO2*0.947 	;
+{10946.} 	 C123O2 + NO = C123NO3 : 	KRO2NO*0.220 	;
+{10947.} 	 C123O2 + NO = C123O + NO2 : 	KRO2NO*0.780 	;
+{10948.} 	 C123O2 + NO3 = C123O + NO2 : 	KRO2NO3 	;
+{10949.} 	 C123O2 = C123CO : 	8.80D-13*0.2*RO2 	;
+{10950.} 	 C123O2 = C123O : 	8.80D-13*0.6*RO2 	;
+{10951.} 	 C123O2 = C123OH : 	8.80D-13*0.2*RO2 	;
+{10952.} 	 CO36C12 = C6H13CO3 + DIEKBO2 : 	J(22)*2 	;
+{10953.} 	 OH + CO36C12 = C124O2 : 	1.56D-11 	;
+{10954.} 	 C122O2 + HO2 = C122OOH : 	KRO2HO2*0.947 	;
+{10955.} 	 C122O2 + NO = C122O + NO2 : 	KRO2NO 	;
+{10956.} 	 C122O2 + NO3 = C122O + NO2 : 	KRO2NO3 	;
+{10957.} 	 C122O2 = C122O : 	8.80D-13*RO2 	;
+{10958.} 	 CO1H63O2 + HO2 = CO1H63OOH : 	KRO2HO2*0.770 	;
+{10959.} 	 CO1H63O2 + NO = CO1H63NO3 : 	KRO2NO*0.078 	;
+{10960.} 	 CO1H63O2 + NO = CO1H63O + NO2 : 	KRO2NO*0.922 	;
+{10961.} 	 CO1H63O2 + NO3 = CO1H63O + NO2 : 	KRO2NO3 	;
+{10962.} 	 CO1H63O2 = C6COHOCHO : 	2.50D-13*RO2*0.2 	;
+{10963.} 	 CO1H63O2 = CO1H63O : 	2.50D-13*RO2*0.6 	;
+{10964.} 	 CO1H63O2 = CO1H63OH : 	2.50D-13*RO2*0.2 	;
+{10965.} 	 HO2CO3C4O = HCHO + CH3CHOHCO3 : 	KDEC 	;
+{10966.} 	 CO24C4CHO = CO2C3CO3 + CO + HO2 : 	J(34) 	;
+{10967.} 	 NO3 + CO24C4CHO = CO2C3CO3 + CO + HNO3 : 	KNO3AL*5.5 	;
+{10968.} 	 OH + CO24C4CHO = CO2C3CO3 + CO : 	1.33D-11 	;
+{10969.} 	 C5CO24O = CO2C3CO3 + HCHO : 	KDEC 	;
+{10970.} 	 C3NO3COO2 + HO2 = C3NO3COOOH : 	KRO2HO2*0.520 	;
+{10971.} 	 C3NO3COO2 + NO = C3NO3COO + NO2 : 	KRO2NO 	;
+{10972.} 	 C3NO3COO2 + NO3 = C3NO3COO + NO2 : 	KRO2NO3 	;
+{10973.} 	 C3NO3COO2 = C3NO3COO : 	2.00D-12*RO2 	;
+{10974.} 	 HO1CO24C5 = CH3COCH2O2 + HOCH2CO3 : 	J(22)*2 	;
+{10975.} 	 OH + HO1CO24C5 = CO24C4CHO + HO2 : 	3.22D-12 	;
+{10976.} 	 C53NO324CO + OH = C5CO234 + NO2 : 	2.48D-13 	;
+{10977.} 	 C53NO324CO = CH3CO3 + MGLYOX + NO2 : 	J(57) 	;
+{10978.} 	 C53NO324CO = CO24C53O + NO2 : 	J(56) 	;
+{10979.} 	 C4M22CONO3 + OH = MGLYOX + CH3CO3 + NO2 : 	1.51D-11 	;
+{10980.} 	 C4M22CONO3 = CH3CO3 + MGLYOX + NO2 : 	J(56)+J(57) 	;
+{10981.} 	 C43OHCOCHO + OH = CO35C5CHO + HO2 : 	4.74D-11 	;
+{10982.} 	 C43OHCOCHO = HO3C4CO3 + HO2 + CO : 	J(34) 	;
+{10983.} 	 CO35C5CHO = HO2 + CO + CO + MEKCO2 : 	J(22) 	;
+{10984.} 	 CO35C5CHO = HO2 + CO + CO3C4CO3 : 	J(34) 	;
+{10985.} 	 OH + CO35C5CHO = CO3C4CO3 + CO : 	1.44D-11 	;
+{10986.} 	 NBZFUOOH + OH = NBZFUO2 : 	6.18D-12 	;
+{10987.} 	 NBZFUOOH = NBZFUO + OH : 	J(41) 	;
+{10988.} 	 NBZFUO = CO14O3CHO + NO2 : 	KDEC*0.5 	;
+{10989.} 	 NBZFUO = NBZFUONE + HO2 : 	KDEC*0.5 	;
+{10990.} 	 BZFUONOO + CO = CO14O3CHO : 	1.20D-15 	;
+{10991.} 	 BZFUONOO + NO = CO14O3CHO + NO2 : 	1.00D-14 	;
+{10992.} 	 BZFUONOO + NO2 = CO14O3CHO + NO3 : 	1.00D-15 	;
+{10993.} 	 BZFUONOO + SO2 = CO14O3CHO + SO3 : 	7.00D-14 	;
+{10994.} 	 BZFUONOO = CO14O3CHO + H2O2 : 	6.00D-18*H2O 	;
+{10995.} 	 BZFUONOO = CO14O3CO2H : 	1.00D-17*H2O 	;
+{10996.} 	 BZFUOOH + OH = BZFUO2 : 	3.68D-11 	;
+{10997.} 	 BZFUOOH = BZFUO + OH : 	J(41) 	;
+{10998.} 	 BZFUO = CO14O3CHO + HO2 : 	KDEC 	;
+{10999.} 	 BZFUCO + OH = CO14O3CHO + HO2 : 	1.78D-11 	;
+{11000.} 	 BZFUOH + OH = BZFUCO + HO2 : 	2.78D-11 	;
+{11001.} 	 MALANHY + OH = MALANHYO2 : 	1.4D-12 	;
+{11002.} 	 CO2C4DIAL + OH = CO + CO + CO + CO + HO2 : 	2.45D-11 	;
+{11003.} 	 CO2C4DIAL = CO + CO + HO2 + HO2 + CO + CO : 	J(34)*2 	;
+{11004.} 	 DNPHEN + NO3 = NDNPHENO2 : 	2.25D-15 	;
+{11005.} 	 DNPHEN + OH = DNPHENO2 : 	3.00D-14 	;
+{11006.} 	 NPHEN1O2 + HO2 = NPHEN1OOH : 	KRO2HO2*0.770 	;
+{11007.} 	 NPHEN1O2 + NO = NPHEN1O + NO2 : 	KRO2NO 	;
+{11008.} 	 NPHEN1O2 + NO3 = NPHEN1O + NO2 : 	KRO2NO3 	;
+{11009.} 	 NPHEN1O2 = NPHEN1O : 	2.50D-13*RO2 	;
+{11010.} 	 NNCATECO2 + HO2 = NNCATECOOH : 	KRO2HO2*0.770 	;
+{11011.} 	 NNCATECO2 + NO = NNCATECO + NO2 : 	KRO2NO 	;
+{11012.} 	 NNCATECO2 + NO3 = NNCATECO + NO2 : 	KRO2NO3 	;
+{11013.} 	 NNCATECO2 = NNCATECO : 	8.00D-13*RO2 	;
+{11014.} 	 NCATECO2 + HO2 = NCATECOOH : 	KRO2HO2*0.770 	;
+{11015.} 	 NCATECO2 + NO = NCATECO + NO2 : 	KRO2NO 	;
+{11016.} 	 NCATECO2 + NO3 = NCATECO + NO2 : 	KRO2NO3 	;
+{11017.} 	 NCATECO2 = NCATECO : 	8.00D-13*RO2 	;
+{11018.} 	 CATEC1OOH + OH = CATEC1O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{11019.} 	 CATEC1OOH = CATEC1O + OH : 	J(41) 	;
+{11020.} 	 NBZQO2 + HO2 = NBZQOOH : 	KRO2HO2*0.770 	;
+{11021.} 	 NBZQO2 + NO = NBZQO + NO2 : 	KRO2NO 	;
+{11022.} 	 NBZQO2 + NO3 = NBZQO + NO2 : 	KRO2NO3 	;
+{11023.} 	 NBZQO2 = NBZQO : 	8.80D-13*RO2 	;
+{11024.} 	 PBZQO2 + HO2 = PBZQOOH : 	KRO2HO2*0.770 	;
+{11025.} 	 PBZQO2 + NO = PBZQO + NO2 : 	KRO2NO 	;
+{11026.} 	 PBZQO2 + NO3 = PBZQO + NO2 : 	KRO2NO3 	;
+{11027.} 	 PBZQO2 = PBZQCO : 	8.80D-13*RO2*0.2 	;
+{11028.} 	 PBZQO2 = PBZQO : 	8.80D-13*RO2*0.6 	;
+{11029.} 	 PBZQO2 = PBZQOH : 	8.80D-13*RO2*0.2 	;
+{11030.} 	 NPTLQO2 + HO2 = NPTLQOOH : 	KRO2HO2*0.820 	;
+{11031.} 	 NPTLQO2 + NO = NPTLQO + NO2 : 	KRO2NO 	;
+{11032.} 	 NPTLQO2 + NO3 = NPTLQO + NO2 : 	KRO2NO3 	;
+{11033.} 	 NPTLQO2 = NPTLQO : 	8.80D-13*RO2 	;
+{11034.} 	 PTLQO2 + HO2 = PTLQOOH : 	KRO2HO2*0.820 	;
+{11035.} 	 PTLQO2 + NO = PTLQO + NO2 : 	KRO2NO 	;
+{11036.} 	 PTLQO2 + NO3 = PTLQO + NO2 : 	KRO2NO3 	;
+{11037.} 	 PTLQO2 = PTLQCO : 	8.80D-13*RO2*0.2 	;
+{11038.} 	 PTLQO2 = PTLQO : 	8.80D-13*RO2*0.6 	;
+{11039.} 	 PTLQO2 = PTLQOH : 	8.80D-13*RO2*0.2 	;
+{11040.} 	 DNCRES + NO3 = NDNCRESO2 : 	7.83D-15 	;
+{11041.} 	 DNCRES + OH = DNCRESO2 : 	5.10D-14 	;
+{11042.} 	 NCRES1O2 + HO2 = NCRES1OOH : 	KRO2HO2*0.820 	;
+{11043.} 	 NCRES1O2 + NO = NCRES1O + NO2 : 	KRO2NO 	;
+{11044.} 	 NCRES1O2 + NO3 = NCRES1O + NO2 : 	KRO2NO3 	;
+{11045.} 	 NCRES1O2 = NCRES1O : 	2.50D-13*RO2 	;
+{11046.} 	 MNNCATECO2 + HO2 = MNNCATCOOH : 	KRO2HO2*0.820 	;
+{11047.} 	 MNNCATECO2 + NO = MNNCATECO + NO2 : 	KRO2NO 	;
+{11048.} 	 MNNCATECO2 + NO3 = MNNCATECO + NO2 : 	KRO2NO3 	;
+{11049.} 	 MNNCATECO2 = MNNCATECO : 	8.00D-13*RO2 	;
+{11050.} 	 MNCATECO2 + HO2 = MNCATECOOH : 	KRO2HO2*0.820 	;
+{11051.} 	 MNCATECO2 + NO = MNCATECO + NO2 : 	KRO2NO 	;
+{11052.} 	 MNCATECO2 + NO3 = MNCATECO + NO2 : 	KRO2NO3 	;
+{11053.} 	 MNCATECO2 = MNCATECO : 	8.00D-13*RO2 	;
+{11054.} 	 MCATEC1OOH + OH = MCATEC1O2 : 	2.05D-10 	;
+{11055.} 	 MCATEC1OOH = MCATEC1O + OH : 	J(41) 	;
+{11056.} 	 MC3CODBCO2 = GLYOX + CH3O2 + CO : 	KDEC*0.35 	;
+{11057.} 	 MC3CODBCO2 = MMALANHY + HO2 : 	KDEC*0.65 	;
+{11058.} 	 MC3ODBCO3H + OH = MC3CODBCO3 : 	4.73D-11 	;
+{11059.} 	 MC3ODBCO3H = CH3COCO3H + HO2 + CO + HO2 + CO : 	J(18)+J(19) 	;
+{11060.} 	 MC3ODBCO3H = MC3CODBCO2 + OH : 	J(41) 	;
+{11061.} 	 MC3CODBPAN + OH = GLYOX + HCHO + CO + NO2 : 	4.37D-11 	;
+{11062.} 	 MC3CODBPAN = MC3CODBCO3 + NO2 : 	KBPAN 	;
+{11063.} 	 C4MALOHOOH + OH = C4M2ALOHO2 : 	4.58D-11 	;
+{11064.} 	 C4MALOHOOH = C4M2ALOHO + OH : 	J(41) 	;
+{11065.} 	 C4MALOHOOH = CO2H3CHO + HO2 + CO + OH : 	J(17)*2 	;
+{11066.} 	 C4M2ALOHO = GLYOX + MGLYOX + HO2 : 	KDEC 	;
+{11067.} 	 C4M2AL2OH + OH = C4M2ALOHO : 	5.70D-11 	;
+{11068.} 	 C4M2AL2OH = CO2H3CHO + HO2 + CO + HO2 : 	J(17)*2 	;
+{11069.} 	 C5DICAROOH + OH = C5134CO2OH + OH : 	1.21D-10 	;
+{11070.} 	 C5DICAROOH + OH = C5DICARBO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{11071.} 	 C5DICAROOH = C5DICARBO + OH : 	J(41)+J(15)+J(22) 	;
+{11072.} 	 C5DICARBO = MGLYOX + GLYOX + HO2 : 	KDEC 	;
+{11073.} 	 C5134CO2OH + OH = C54CO + HO2 : 	7.48D-11 	;
+{11074.} 	 C5134CO2OH = CO23C3CHO + HO2 + CO + HO2 : 	J(15)+J(35) 	;
+{11075.} 	 C514CO23OH + OH = C5134CO2OH + HO2 : 	6.26D-11 	;
+{11076.} 	 C514CO23OH = CO2H3CHO + HO2 + CO + HO2 : 	J(15)+J(22) 	;
+{11077.} 	 NTLFUOOH + OH = NTLFUO2 : 	4.44D-12 	;
+{11078.} 	 NTLFUOOH = NTLFUO + OH : 	J(41) 	;
+{11079.} 	 NTLFUO = ACCOMECHO + NO2 : 	KDEC 	;
+{11080.} 	 TLFUONOO + CO = ACCOMECHO : 	1.20D-15 	;
+{11081.} 	 TLFUONOO + NO = ACCOMECHO + NO2 : 	1.00D-14 	;
+{11082.} 	 TLFUONOO + NO2 = ACCOMECHO + NO3 : 	1.00D-15 	;
+{11083.} 	 TLFUONOO + SO2 = ACCOMECHO + SO3 : 	7.00D-14 	;
+{11084.} 	 TLFUONOO = ACCOMECHO + H2O2 : 	6.00D-18*H2O 	;
+{11085.} 	 TLFUONOO = C24O3CCO2H : 	1.00D-17*H2O 	;
+{11086.} 	 TLFUOOH + OH = TLFUO2 : 	2.53D-11 	;
+{11087.} 	 TLFUOOH = TLFUO + OH : 	J(41) 	;
+{11088.} 	 TLFUO = ACCOMECHO + HO2 : 	KDEC 	;
+{11089.} 	 TLFUOH + OH = TLFUO : 	2.19D-11 	;
+{11090.} 	 C5DBCOCO3H + OH = MC4CODBCO3 : 	5.44D-11 	;
+{11091.} 	 C5DBCOCO3H = HCOCO3H + CH3CO3 + CH3CO3 : 	J(24) 	;
+{11092.} 	 C5DBCOCO3H = MC4CODBCO2 + HO2 : 	J(41) 	;
+{11093.} 	 MC4CODBCO2 = BIACET + HO2 + CO : 	KDEC*0.35 	;
+{11094.} 	 MC4CODBCO2 = MMALANHY + CH3O2 : 	KDEC*0.65 	;
+{11095.} 	 MC4CODBPAN + OH = BIACET + CO + CO + NO2 : 	5.08D-11 	;
+{11096.} 	 MC4CODBPAN = MC4CODBCO3 + NO2 : 	KBPAN 	;
+{11097.} 	 MEK2OO + CO = BIACET : 	1.20D-15 	;
+{11098.} 	 MEK2OO + NO = BIACET + NO2 : 	1.00D-14 	;
+{11099.} 	 MEK2OO + NO2 = BIACET + NO3 : 	1.00D-15 	;
+{11100.} 	 MEK2OO + SO2 = BIACET + SO3 : 	7.00D-14 	;
+{11101.} 	 MEK2OO = BIACET + H2O2 : 	6.00D-18*H2O 	;
+{11102.} 	 MC5COOHOOH + OH = MC5CO2OHO2 : 	3.12D-11 	;
+{11103.} 	 MC5COOHOOH = CO2H3CHO + CH3CO3 + OH : 	J(22)+J(17) 	;
+{11104.} 	 MC5COOHOOH = MC5CO2OHO + OH : 	J(41) 	;
+{11105.} 	 MC5CO2OHO = BIACET + GLYOX + HO2 : 	KDEC 	;
+{11106.} 	 MC52CO2OH + OH = MC5CO2OHO : 	2.77D-11 	;
+{11107.} 	 MC52CO2OH = CO2H3CHO + CH3CO3 + HO2 : 	J(22)+J(17) 	;
+{11108.} 	 NOXYFUOOH + OH = NOXYFUO2 : 	4.95D-12 	;
+{11109.} 	 NOXYFUOOH = NOXYFUO + OH : 	J(41) 	;
+{11110.} 	 NOXYFUO = C6OTRIKET + NO2 : 	KDEC 	;
+{11111.} 	 C6OTKETOOH + OH = C6OTKETCO + OH : 	4.42D-11 	;
+{11112.} 	 C6OTKETOOH + OH = C6OTKETO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{11113.} 	 C6OTKETOOH = OH + C6OTKETO : 	J(41) 	;
+{11114.} 	 C6OTKETO = MGLYOX + CH3CO3 : 	KDEC 	;
+{11115.} 	 C6OTKETCO + OH = C6O4KETO2 : 	4.65D-13 	;
+{11116.} 	 C6OTKETCO = CH3CO3 + CO + CH3CO3 : 	J(22) 	;
+{11117.} 	 C6OTKETOH + OH = C6OTKETCO + HO2 : 	1.91D-11 	;
+{11118.} 	 OXYFUOOH + OH = OXYFUO2 : 	7.12D-12 	;
+{11119.} 	 OXYFUOOH = OXYFUO + OH : 	J(41) 	;
+{11120.} 	 OXYFUO = C6OTRIKET + HO2 : 	KDEC 	;
+{11121.} 	 OXYFUOH + OH = OXYFUO : 	3.76D-12 	;
+{11122.} 	 DNOXYOL + NO3 = NDNOXYOLO2 : 	7.83D-15 	;
+{11123.} 	 DNOXYOL + OH = DNOXYOLO2 : 	5.10D-14 	;
+{11124.} 	 NOXYOL1O2 + HO2 = NOXYOL1OOH : 	KRO2HO2*0.859 	;
+{11125.} 	 NOXYOL1O2 + NO = NOXYOL1O + NO2 : 	KRO2NO 	;
+{11126.} 	 NOXYOL1O2 + NO3 = NOXYOL1O + NO2 : 	KRO2NO3 	;
+{11127.} 	 NOXYOL1O2 = NOXYOL1O : 	2.50D-13*RO2 	;
+{11128.} 	 NOXYQO2 + HO2 = NOXYQOOH : 	KRO2HO2*0.859 	;
+{11129.} 	 NOXYQO2 + NO = NOXYQO + NO2 : 	KRO2NO 	;
+{11130.} 	 NOXYQO2 + NO3 = NOXYQO + NO2 : 	KRO2NO3 	;
+{11131.} 	 NOXYQO2 = NOXYQO : 	8.80D-13*RO2 	;
+{11132.} 	 OXYQO2 + HO2 = OXYQOOH : 	KRO2HO2*0.859 	;
+{11133.} 	 OXYQO2 + NO = OXYQO + NO2 : 	KRO2NO 	;
+{11134.} 	 OXYQO2 + NO3 = OXYQO + NO2 : 	KRO2NO3 	;
+{11135.} 	 OXYQO2 = OXYQCO : 	8.80D-13*RO2*0.2 	;
+{11136.} 	 OXYQO2 = OXYQO : 	8.80D-13*RO2*0.6 	;
+{11137.} 	 OXYQO2 = OXYQOH : 	8.80D-13*RO2*0.2 	;
+{11138.} 	 OXNNCATCO2 + HO2 = OXNNCATOOH : 	KRO2HO2*0.859 	;
+{11139.} 	 OXNNCATCO2 + NO = OXNNCATCO + NO2 : 	KRO2NO 	;
+{11140.} 	 OXNNCATCO2 + NO3 = OXNNCATCO + NO2 : 	KRO2NO3 	;
+{11141.} 	 OXNNCATCO2 = OXNNCATCO : 	8.00D-13*RO2 	;
+{11142.} 	 OXNCATECO2 + HO2 = OXNCATCOOH : 	KRO2HO2*0.859 	;
+{11143.} 	 OXNCATECO2 + NO = OXNCATECO + NO2 : 	KRO2NO 	;
+{11144.} 	 OXNCATECO2 + NO3 = OXNCATECO + NO2 : 	KRO2NO3 	;
+{11145.} 	 OXNCATECO2 = OXNCATECO : 	8.00D-13*RO2 	;
+{11146.} 	 OCATEC1OOH + OH = OXCATEC1O2 : 	2.05D-10 	;
+{11147.} 	 OCATEC1OOH = OXCATEC1O + OH : 	J(41) 	;
+{11148.} 	 C6CO2OHOOH + OH = C5MCO2OHO2 : 	4.46D-11 	;
+{11149.} 	 C6CO2OHOOH = C5CO243OH + OH + HO2 + CO : 	J(17) 	;
+{11150.} 	 C6CO2OHOOH = C5MCO2OHO + OH : 	J(41)+J(22) 	;
+{11151.} 	 C5MCO2OHO = MGLYOX + MGLYOX + HO2 : 	KDEC 	;
+{11152.} 	 C6CO2M2OH + OH = C6CO3MOH + HO2 : 	4.13D-11 	;
+{11153.} 	 C6CO2M2OH = C5CO243OH + HO2 + CO + HO2 : 	J(22)+J(17) 	;
+{11154.} 	 NMXYFUOOH + OH = NMXYFUO2 : 	5.80D-12 	;
+{11155.} 	 NMXYFUOOH = NMXYFUO + OH : 	J(41) 	;
+{11156.} 	 NMXYFUO = C23O3MCHO + NO2 : 	KDEC 	;
+{11157.} 	 C23O3MCOOH + OH = ACECOCOCH3 + OH : 	6.01D-11 	;
+{11158.} 	 C23O3MCOOH + OH = C23O3MO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{11159.} 	 C23O3MCOOH = C23O3MO + OH : 	J(41) 	;
+{11160.} 	 C23O3MO = CH3CHO + CH3CO3 : 	KDEC 	;
+{11161.} 	 C23O3MOH + OH = ACECOCOCH3 + HO2 : 	2.54D-11 	;
+{11162.} 	 MXYFUOOH + OH = MXYFUO2 : 	3.09D-11 	;
+{11163.} 	 MXYFUOOH = MXYFUO + OH : 	J(41) 	;
+{11164.} 	 MXYFUO = C23O3MCHO + HO2 : 	KDEC 	;
+{11165.} 	 MXYFUOH + OH = MXYFUO : 	2.74D-11 	;
+{11166.} 	 NPXYFUOOH + OH = NPXYFUO2 : 	5.16D-12 	;
+{11167.} 	 NPXYFUOOH = NPXYFUO + OH : 	J(41) 	;
+{11168.} 	 NPXYFUO = C23O3CCHO + NO2 : 	KDEC 	;
+{11169.} 	 MCOCOMOOOH + OH = MCOCOMOXO2 : 	2.00D-11 	;
+{11170.} 	 MCOCOMOOOH = CH3CO3 + HCHO + OH : 	J(22) 	;
+{11171.} 	 MCOCOMOOOH = MCOCOMOXO + OH : 	J(41) 	;
+{11172.} 	 MCOCOMOXO = HCHO + CH3CO3 : 	KDEC 	;
+{11173.} 	 PXYFUOOH + OH = PXYFUO2 : 	2.78D-11 	;
+{11174.} 	 PXYFUOOH = PXYFUO + OH : 	J(41) 	;
+{11175.} 	 PXYFUO = C23O3CCHO + HO2 : 	KDEC 	;
+{11176.} 	 PXYFUOH + OH = PXYFUO : 	2.44D-11 	;
+{11177.} 	 MMALANHY + OH = MMALANHYO2 : 	1.50D-12 	;
+{11178.} 	 DNMXYOL + NO3 = NDNMXYOLO2 : 	7.83D-15 	;
+{11179.} 	 DNMXYOL + OH = DNMXYOLO2 : 	5.10D-14 	;
+{11180.} 	 NMXYOL1O2 + HO2 = NMXYOL1OOH : 	KRO2HO2*0.859 	;
+{11181.} 	 NMXYOL1O2 + NO = NMXYOL1O + NO2 : 	KRO2NO 	;
+{11182.} 	 NMXYOL1O2 + NO3 = NMXYOL1O + NO2 : 	KRO2NO3 	;
+{11183.} 	 NMXYOL1O2 = NMXYOL1O : 	2.50D-13*RO2 	;
+{11184.} 	 NMXYQO2 + HO2 = NMXYQOOH : 	KRO2HO2*0.859 	;
+{11185.} 	 NMXYQO2 + NO = NMXYQO + NO2 : 	KRO2NO 	;
+{11186.} 	 NMXYQO2 + NO3 = NMXYQO + NO2 : 	KRO2NO3 	;
+{11187.} 	 NMXYQO2 = NMXYQO : 	9.20D-14*RO2 	;
+{11188.} 	 MXYQO2 + HO2 = MXYQOOH : 	KRO2HO2*0.859 	;
+{11189.} 	 MXYQO2 + NO = MXYQO + NO2 : 	KRO2NO 	;
+{11190.} 	 MXYQO2 + NO3 = MXYQO + NO2 : 	KRO2NO3 	;
+{11191.} 	 MXYQO2 = MXYQO : 	9.20D-14*RO2*0.7 	;
+{11192.} 	 MXYQO2 = MXYQOH : 	9.20D-14*RO2*0.3 	;
+{11193.} 	 MXNNCATCO2 + HO2 = MXNNCATOOH : 	KRO2HO2*0.859 	;
+{11194.} 	 MXNNCATCO2 + NO = MXNNCATCO + NO2 : 	KRO2NO 	;
+{11195.} 	 MXNNCATCO2 + NO3 = MXNNCATCO + NO2 : 	KRO2NO3 	;
+{11196.} 	 MXNNCATCO2 = MXNNCATCO : 	8.00D-13*RO2 	;
+{11197.} 	 MXNCATECO2 + HO2 = MXNCATCOOH : 	KRO2HO2*0.859 	;
+{11198.} 	 MXNCATECO2 + NO = MXNCATECO + NO2 : 	KRO2NO 	;
+{11199.} 	 MXNCATECO2 + NO3 = MXNCATECO + NO2 : 	KRO2NO3 	;
+{11200.} 	 MXNCATECO2 = MXNCATECO : 	8.00D-13*RO2 	;
+{11201.} 	 MXCTEC1OOH + OH = MXCATEC1O2 : 	2.05D-10 	;
+{11202.} 	 MXCTEC1OOH = MXCATEC1O + OH : 	J(41) 	;
+{11203.} 	 TOL4OHNO2 + OH = TL4OHNO2O2 : 	3.6D-12 	;
+{11204.} 	 DMKOHOOH + OH = DMKCOOH + OH : 	9.75D-11 	;
+{11205.} 	 DMKOHOOH + OH = DMKOHO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{11206.} 	 DMKOHOOH = CO2H3CHO + CH3CO3 + OH : 	J(22)*2 	;
+{11207.} 	 DMKOHOOH = DMKOHO + OH : 	J(41) 	;
+{11208.} 	 DMKOHO = CO2H3CHO + CH3CO3 : 	KDEC*0.7 	;
+{11209.} 	 DMKOHO = MGLYOX + MGLYOX + HO2 : 	KDEC*0.3 	;
+{11210.} 	 DMK2OH + OH = DMKCOOH + HO2 : 	4.00D-11 	;
+{11211.} 	 DMK2OH = CO2H3CHO + CH3CO3 + HO2 : 	J(22)*2 	;
+{11212.} 	 DMKCOOH + OH = C62O : 	9.04D-12 	;
+{11213.} 	 DMKCOOH = CO23C3CHO + CH3CO3 + HO2 : 	J(22) 	;
+{11214.} 	 DMKCOOH = CO2H3CO3 + CH3CO3 : 	J(35) 	;
+{11215.} 	 DNPXYOL + NO3 = NDNPXYOLO2 : 	7.83D-15 	;
+{11216.} 	 DNPXYOL + OH = DNPXYOLO2 : 	5.10D-14 	;
+{11217.} 	 NPXYOL1O2 + HO2 = NPXYOL1OOH : 	KRO2HO2*0.859 	;
+{11218.} 	 NPXYOL1O2 + NO = NPXYOL1O + NO2 : 	KRO2NO 	;
+{11219.} 	 NPXYOL1O2 + NO3 = NPXYOL1O + NO2 : 	KRO2NO3 	;
+{11220.} 	 NPXYOL1O2 = NPXYOL1O : 	2.50D-13*RO2 	;
+{11221.} 	 NPXYQO2 + HO2 = NPXYQOOH : 	KRO2HO2*0.859 	;
+{11222.} 	 NPXYQO2 + NO = NPXYQO + NO2 : 	KRO2NO 	;
+{11223.} 	 NPXYQO2 + NO3 = NPXYQO + NO2 : 	KRO2NO3 	;
+{11224.} 	 NPXYQO2 = NPXYQO : 	9.20D-14*RO2 	;
+{11225.} 	 PXYQO2 + HO2 = PXYQOOH : 	KRO2HO2*0.859 	;
+{11226.} 	 PXYQO2 + NO = PXYQO + NO2 : 	KRO2NO 	;
+{11227.} 	 PXYQO2 + NO3 = PXYQO + NO2 : 	KRO2NO3 	;
+{11228.} 	 PXYQO2 = PXYQO : 	9.20D-14*RO2*0.70 	;
+{11229.} 	 PXYQO2 = PXYQOH : 	9.20D-14*RO2*0.30 	;
+{11230.} 	 PXNNCATCO2 + HO2 = PXNNCATOOH : 	KRO2HO2*0.859 	;
+{11231.} 	 PXNNCATCO2 + NO = PXNNCATCO + NO2 : 	KRO2NO 	;
+{11232.} 	 PXNNCATCO2 + NO3 = PXNNCATCO + NO2 : 	KRO2NO3 	;
+{11233.} 	 PXNNCATCO2 = PXNNCATCO : 	8.00D-13*RO2 	;
+{11234.} 	 PXNCATECO2 + HO2 = PXNCATCOOH : 	KRO2HO2*0.859 	;
+{11235.} 	 PXNCATECO2 + NO = PXNCATECO + NO2 : 	KRO2NO 	;
+{11236.} 	 PXNCATECO2 + NO3 = PXNCATECO + NO2 : 	KRO2NO3 	;
+{11237.} 	 PXNCATECO2 = PXNCATECO : 	8.00D-13*RO2 	;
+{11238.} 	 PCATEC1OOH + OH = PXCATEC1O2 : 	2.05D-10 	;
+{11239.} 	 PCATEC1OOH = PXCATEC1O + OH : 	J(41) 	;
+{11240.} 	 DNEBNZOL + NO3 = NDNEBNZLO2 : 	7.83D-15 	;
+{11241.} 	 DNEBNZOL + OH = DNEBNZLO2 : 	5.10D-14 	;
+{11242.} 	 NEBNZ1O2 + HO2 = NEBNZ1OOH : 	KRO2HO2*0.859 	;
+{11243.} 	 NEBNZ1O2 + NO = NEBNZ1O + NO2 : 	KRO2NO 	;
+{11244.} 	 NEBNZ1O2 + NO3 = NEBNZ1O + NO2 : 	KRO2NO3 	;
+{11245.} 	 NEBNZ1O2 = NEBNZ1O : 	2.50D-13*RO2 	;
+{11246.} 	 NPEBQO2 + HO2 = NPEBQOOH : 	KRO2HO2*0.859 	;
+{11247.} 	 NPEBQO2 + NO = NPEBQO + NO2 : 	KRO2NO 	;
+{11248.} 	 NPEBQO2 + NO3 = NPEBQO + NO2 : 	KRO2NO3 	;
+{11249.} 	 NPEBQO2 = NPEBQO : 	8.80D-13*RO2 	;
+{11250.} 	 PEBQO2 + HO2 = PEBQOOH : 	KRO2HO2*0.859 	;
+{11251.} 	 PEBQO2 + NO = PEBQO + NO2 : 	KRO2NO 	;
+{11252.} 	 PEBQO2 + NO3 = PEBQO + NO2 : 	KRO2NO3 	;
+{11253.} 	 PEBQO2 = PEBQCO : 	8.80D-13*RO2*0.20 	;
+{11254.} 	 PEBQO2 = PEBQO : 	8.80D-13*RO2*0.60 	;
+{11255.} 	 PEBQO2 = PEBQOH : 	8.80D-13*RO2*0.20 	;
+{11256.} 	 ENNCATECO2 + HO2 = ENNCATCOOH : 	KRO2HO2*0.859 	;
+{11257.} 	 ENNCATECO2 + NO = ENNCATECO + NO2 : 	KRO2NO 	;
+{11258.} 	 ENNCATECO2 + NO3 = ENNCATECO + NO2 : 	KRO2NO3 	;
+{11259.} 	 ENNCATECO2 = ENNCATECO : 	8.00D-13*RO2 	;
+{11260.} 	 ENCATECO2 + HO2 = ENCATECOOH : 	KRO2HO2*0.859 	;
+{11261.} 	 ENCATECO2 + NO = ENCATECO + NO2 : 	KRO2NO 	;
+{11262.} 	 ENCATECO2 + NO3 = ENCATECO + NO2 : 	KRO2NO3 	;
+{11263.} 	 ENCATECO2 = ENCATECO : 	8.00D-13*RO2 	;
+{11264.} 	 ECATEC1OOH + OH = ECATEC1O2 : 	2.05D-10 	;
+{11265.} 	 ECATEC1OOH = ECATEC1O + OH : 	J(41) 	;
+{11266.} 	 C6DICAROOH + OH = C6DICARBO2 : 	1.16D-10 	;
+{11267.} 	 C6DICAROOH = C32OH13CO + C2H5CO3 + OH : 	J(22) 	;
+{11268.} 	 C6DICAROOH = C6DICARBO + OH : 	J(41)+J(15) 	;
+{11269.} 	 C6DICARBO = EGLYOX + GLYOX + HO2 : 	KDEC 	;
+{11270.} 	 C6134CO2OH + OH = ECO4 + HO2 : 	7.71D-11 	;
+{11271.} 	 C6134CO2OH = HCOCOHCO3 + C2H5CO3 : 	J(35) 	;
+{11272.} 	 C614CO23OH + OH = C6134CO2OH + HO2 : 	6.21D-11 	;
+{11273.} 	 C614CO23OH = C32OH13CO + C2H5CO3 + HO2 : 	J(22) 	;
+{11274.} 	 C614CO23OH = CO3H4CHO + HO2 + CO + HO2 : 	J(15) 	;
+{11275.} 	 NEBFUOOH + OH = NEBFUO2 : 	8.18D-11 	;
+{11276.} 	 NEBFUOOH = NEBFUO + OH : 	J(41) 	;
+{11277.} 	 NEBFUO = C14O3ECHO + NO2 : 	KDEC*0.5 	;
+{11278.} 	 NEBFUO = NEBFUONE + HO2 : 	KDEC*0.5 	;
+{11279.} 	 BUTALAOOH + OH = BUTALAO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{11280.} 	 BUTALAOOH + OH = EGLYOX + OH : 	3.95D-11 	;
+{11281.} 	 BUTALAOOH = BUTAL2O + OH : 	J(41) 	;
+{11282.} 	 EBFUOOH + OH = EBFUO2 : 	4.23D-11 	;
+{11283.} 	 EBFUOOH = EBFUO + OH : 	J(41) 	;
+{11284.} 	 EBFUO = C14O3ECHO + HO2 : 	KDEC 	;
+{11285.} 	 EBFUCO + OH = C14O3ECHO + HO2 : 	3.24D-11 	;
+{11286.} 	 EBFUOH + OH = EBFUCO + HO2 : 	3.33D-11 	;
+{11287.} 	 CO3H4CO3 + HO2 = CO3H4CO3H : 	KAPHO2*0.56 	;
+{11288.} 	 CO3H4CO3 + HO2 = EGLYOX + HO2 + CO + OH : 	KAPHO2*0.44 	;
+{11289.} 	 CO3H4CO3 + NO = EGLYOX + HO2 + CO + NO2 : 	KAPNO 	;
+{11290.} 	 CO3H4CO3 + NO2 = CO3H4PAN : 	KFPAN 	;
+{11291.} 	 CO3H4CO3 + NO3 = EGLYOX + HO2 + CO + NO2 : 	KRO2NO3*1.74 	;
+{11292.} 	 CO3H4CO3 = EGLYOX + HO2 + CO : 	1.00D-11*RO2 	;
+{11293.} 	 C7CO3OHOOH + OH = C7CO3OHO2 : 	5.73D-11 	;
+{11294.} 	 C7CO3OHOOH = C7CO3OHO + OH : 	J(41)+J(34) 	;
+{11295.} 	 C7CO3OHO = C33CO + EGLYOX + HO2 : 	KDEC 	;
+{11296.} 	 PHCOCOCO2 + HO2 = PHCOCOCOOH : 	KRO2HO2*0.890 	;
+{11297.} 	 PHCOCOCO2 + NO = PHCOCOCO + NO2 : 	KRO2NO 	;
+{11298.} 	 PHCOCOCO2 + NO3 = PHCOCOCO + NO2 : 	KRO2NO3 	;
+{11299.} 	 PHCOCOCO2 = PHCOCOCO : 	2.00D-12*RO2 	;
+{11300.} 	 DNPBNZOL + NO3 = NDNPBNZLO2 : 	7.83D-15 	;
+{11301.} 	 DNPBNZOL + OH = DNPBNZLO2 : 	5.10D-14 	;
+{11302.} 	 NPBNZ1O2 + HO2 = NPBNZ1OOH : 	KRO2HO2*0.90 	;
+{11303.} 	 NPBNZ1O2 + NO = NPBNZ1O + NO2 : 	KRO2NO 	;
+{11304.} 	 NPBNZ1O2 + NO3 = NPBNZ1O + NO2 : 	KRO2NO3 	;
+{11305.} 	 NPBNZ1O2 = NPBNZ1O : 	2.50D-13*RO2 	;
+{11306.} 	 NPPRBQO2 + HO2 = NPPRBQOOH : 	KRO2HO2*0.890 	;
+{11307.} 	 NPPRBQO2 + NO = NPPRBQO + NO2 : 	KRO2NO 	;
+{11308.} 	 NPPRBQO2 + NO3 = NPPRBQO + NO2 : 	KRO2NO3 	;
+{11309.} 	 NPPRBQO2 = NPPRBQO : 	8.80D-13*RO2 	;
+{11310.} 	 PPRBQO2 + HO2 = PPRBQOOH : 	KRO2HO2*0.890 	;
+{11311.} 	 PPRBQO2 + NO = PPRBQO + NO2 : 	KRO2NO 	;
+{11312.} 	 PPRBQO2 + NO3 = PPRBQO + NO2 : 	KRO2NO3 	;
+{11313.} 	 PPRBQO2 = PPRBQCO : 	8.80D-13*RO2*0.20 	;
+{11314.} 	 PPRBQO2 = PPRBQO : 	8.80D-13*RO2*0.60 	;
+{11315.} 	 PPRBQO2 = PPRBQOH : 	8.80D-13*RO2*0.20 	;
+{11316.} 	 PNNCATECO2 + HO2 = PNNCATCOOH : 	KRO2HO2*0.90 	;
+{11317.} 	 PNNCATECO2 + NO = PNNCATECO + NO2 : 	KRO2NO 	;
+{11318.} 	 PNNCATECO2 + NO3 = PNNCATECO + NO2 : 	KRO2NO3 	;
+{11319.} 	 PNNCATECO2 = PNNCATECO : 	8.00D-13*RO2 	;
+{11320.} 	 PNCATECO2 + HO2 = PNCATECOOH : 	KRO2HO2*0.90 	;
+{11321.} 	 PNCATECO2 + NO = PNCATECO + NO2 : 	KRO2NO 	;
+{11322.} 	 PNCATECO2 + NO3 = PNCATECO + NO2 : 	KRO2NO3 	;
+{11323.} 	 PNCATECO2 = PNCATECO : 	8.00D-13*RO2 	;
+{11324.} 	 PRCATC1OOH + OH = PCATEC1O2 : 	2.05D-10 	;
+{11325.} 	 PRCATC1OOH = PCATEC1O + OH : 	J(41) 	;
+{11326.} 	 C7DCOOH + OH = C61CHO + OH : 	6.50D-11 	;
+{11327.} 	 C7DCOOH = C7DCO + OH : 	J(41)+J(15)+J(22) 	;
+{11328.} 	 C7DCO = PGLYOX + GLYOX + HO2 : 	KDEC 	;
+{11329.} 	 C61CHO + NO3 = C61CO3 + HNO3 : 	KNO3AL*5.5 	;
+{11330.} 	 C61CHO + OH = C61CO3 : 	7.09D-11 	;
+{11331.} 	 C61CHO = C3H7CO3 + CO + GLYOX + OH : 	J(22) 	;
+{11332.} 	 C61CHO = C3H7CO3 + HCOCOHCO3 : 	J(35) 	;
+{11333.} 	 C61CHO = CO45C5CHO + HO2 + CO + HO2 : 	J(15) 	;
+{11334.} 	 C7DCOH + OH = C61CHO + HO2 : 	4.43D-11 	;
+{11335.} 	 C7DCOH = C7DCO + HO2 : 	J(15)+J(22) 	;
+{11336.} 	 NPBFUOOH + OH = NPBFUO2 : 	9.59D-11 	;
+{11337.} 	 NPBFUOOH = NPBFUO + OH : 	J(41) 	;
+{11338.} 	 NPBFUO = C14O3PCHO + NO2 : 	KDEC*0.5 	;
+{11339.} 	 NPBFUO = NPBFUONE + HO2 : 	KDEC*0.5 	;
+{11340.} 	 C4CHOAOOH + OH = C4CHOAO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{11341.} 	 C4CHOAOOH + OH = PGLYOX + OH : 	4.15D-11 	;
+{11342.} 	 C4CHOAOOH = C4CHO2O + OH : 	J(41) 	;
+{11343.} 	 PBFUOOH + OH = PBFUO2 : 	4.38D-11 	;
+{11344.} 	 PBFUOOH = PBFUO + OH : 	J(41) 	;
+{11345.} 	 PBFUO = C14O3PCHO + HO2 : 	KDEC 	;
+{11346.} 	 PBFUCO + OH = C14O3PCHO + HO2 : 	3.39D-11 	;
+{11347.} 	 PBFUOH + OH = PBFUCO + HO2 : 	3.47D-11 	;
+{11348.} 	 C5O45OHCO3 + HO2 = C5O5OHCO3H : 	KAPHO2*0.56 	;
+{11349.} 	 C5O45OHCO3 + HO2 = PGLYOX + HO2 + CO + OH : 	KAPHO2*0.44 	;
+{11350.} 	 C5O45OHCO3 + NO = PGLYOX + HO2 + CO + NO2 : 	KAPNO 	;
+{11351.} 	 C5O45OHCO3 + NO2 = C5O45OHPAN : 	KFPAN 	;
+{11352.} 	 C5O45OHCO3 + NO3 = PGLYOX + HO2 + CO + NO2 : 	KRO2NO3*1.74 	;
+{11353.} 	 C5O45OHCO3 = PGLYOX + HO2 + CO : 	1.00D-11*RO2 	;
+{11354.} 	 C83COOHOOH + OH = C8CO3OHO2 : 	5.73D-11 	;
+{11355.} 	 C83COOHOOH = C8CO3OHO + OH : 	J(41)+J(34) 	;
+{11356.} 	 C8CO3OHO = C33CO + PGLYOX + HO2 : 	KDEC 	;
+{11357.} 	 PHCOMEOOH + OH = PHGLYOX + OH : 	2.05D-11 	;
+{11358.} 	 PHCOMEOOH = PHCOMEO + OH : 	J(41) 	;
+{11359.} 	 PHCOMEO = C6H5CO3 + HCHO : 	KDEC 	;
+{11360.} 	 PHCOMEOH + OH = PHGLYOX + HO2 : 	8.93D-12 	;
+{11361.} 	 PHGLYOX + NO3 = C6H5CO3 + CO + HNO3 : 	KNO3AL 	;
+{11362.} 	 PHGLYOX + OH = C6H5CO3 + CO : 	1.29D-11 	;
+{11363.} 	 PHGLYOX = C6H5CO3 + CO + HO2 : 	J(34) 	;
+{11364.} 	 DNIPBNZOL + NO3 = NDNIPBZLO2 : 	7.83D-15 	;
+{11365.} 	 DNIPBNZOL + OH = DNIPBNZLO2 : 	5.10D-14 	;
+{11366.} 	 NIPBNZ1O2 + HO2 = NIPBNZ1OOH : 	KRO2HO2*0.90 	;
+{11367.} 	 NIPBNZ1O2 + NO = NIPBNZ1O + NO2 : 	KRO2NO 	;
+{11368.} 	 NIPBNZ1O2 + NO3 = NIPBNZ1O + NO2 : 	KRO2NO3 	;
+{11369.} 	 NIPBNZ1O2 = NIPBNZ1O : 	2.50D-13*RO2 	;
+{11370.} 	 NIPRBQO2 + HO2 = NIPRBQOOH : 	KRO2HO2*0.890 	;
+{11371.} 	 NIPRBQO2 + NO = NIPRBQO + NO2 : 	KRO2NO 	;
+{11372.} 	 NIPRBQO2 + NO3 = NIPRBQO + NO2 : 	KRO2NO3 	;
+{11373.} 	 NIPRBQO2 = NIPRBQO : 	8.80D-13*RO2 	;
+{11374.} 	 IPRBQO2 + HO2 = IPRBQOOH : 	KRO2HO2*0.890 	;
+{11375.} 	 IPRBQO2 + NO = IPRBQO + NO2 : 	KRO2NO 	;
+{11376.} 	 IPRBQO2 + NO3 = IPRBQO + NO2 : 	KRO2NO3 	;
+{11377.} 	 IPRBQO2 = IPRBQCO : 	8.80D-13*RO2*0.20 	;
+{11378.} 	 IPRBQO2 = IPRBQO : 	8.80D-13*RO2*0.60 	;
+{11379.} 	 IPRBQO2 = IPRBQOH : 	8.80D-13*RO2*0.20 	;
+{11380.} 	 IPNNCATCO2 + HO2 = IPNNCATOOH : 	KRO2HO2*0.90 	;
+{11381.} 	 IPNNCATCO2 + NO = IPNNCATCO + NO2 : 	KRO2NO 	;
+{11382.} 	 IPNNCATCO2 + NO3 = IPNNCATCO + NO2 : 	KRO2NO3 	;
+{11383.} 	 IPNNCATCO2 = IPNNCATCO : 	8.00D-13*RO2 	;
+{11384.} 	 IPNCATECO2 + HO2 = IPNCATCOOH : 	KRO2HO2*0.90 	;
+{11385.} 	 IPNCATECO2 + NO = IPNCATECO + NO2 : 	KRO2NO 	;
+{11386.} 	 IPNCATECO2 + NO3 = IPNCATECO + NO2 : 	KRO2NO3 	;
+{11387.} 	 IPNCATECO2 = IPNCATECO : 	8.00D-13*RO2 	;
+{11388.} 	 IPCATC1OOH + OH = IPCATEC1O2 : 	2.05D-10 	;
+{11389.} 	 IPCATC1OOH = IPCATEC1O + OH : 	J(41) 	;
+{11390.} 	 IC7DCOOH + OH = C62CHO + OH : 	6.30D-11 	;
+{11391.} 	 IC7DCOOH = IC7DCO + OH : 	J(41)+J(15)+J(22) 	;
+{11392.} 	 IC7DCO = IPRGLYOX + GLYOX + HO2 : 	KDEC 	;
+{11393.} 	 C62CHO + NO3 = C62CO3 + HNO3 : 	KNO3AL*8.5 	;
+{11394.} 	 C62CHO + OH = C62CO3 : 	6.89D-11 	;
+{11395.} 	 C62CHO = C45IC5CHO + HO2 + CO + HO2 : 	J(15) 	;
+{11396.} 	 C62CHO = IPRCO3 + CO + GLYOX + OH : 	J(22) 	;
+{11397.} 	 C62CHO = IPRCO3 + HCOCOHCO3 : 	J(35) 	;
+{11398.} 	 IC7DCOH + OH = C62CHO + HO2 : 	4.23D-11 	;
+{11399.} 	 IC7DCOH = IC7DCO + HO2 : 	J(15)+J(22) 	;
+{11400.} 	 NIPBFUOOH + OH = NIPBFUO2 : 	9.59D-12 	;
+{11401.} 	 NIPBFUOOH = NIPBFUO + OH : 	J(41) 	;
+{11402.} 	 NIPBFUO = C14O3IPCHO + NO2 : 	KDEC*0.5 	;
+{11403.} 	 NIPBFUO = NIPBFUONE + HO2 : 	KDEC*0.5 	;
+{11404.} 	 IC4CHOAOOH + OH = IC4CHOAO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{11405.} 	 IC4CHOAOOH + OH = IPRGLYOX + OH : 	4.31D-11 	;
+{11406.} 	 IC4CHOAOOH = M3BUTAL2O + OH : 	J(41) 	;
+{11407.} 	 IPBFUOOH + OH = IPBFUO2 : 	4.37D-11 	;
+{11408.} 	 IPBFUOOH = IPBFUO + OH : 	J(41) 	;
+{11409.} 	 IPBFUO = C14O3IPCHO + HO2 : 	KDEC 	;
+{11410.} 	 IPBFUCO + OH = C14O3IPCHO + HO2 : 	3.38D-11 	;
+{11411.} 	 IPBFUOH + OH = IPBFUCO + HO2 : 	3.47D-11 	;
+{11412.} 	 C4MOHOCO3 + HO2 = C4MOHOCO3H : 	KAPHO2*0.56 	;
+{11413.} 	 C4MOHOCO3 + HO2 = IPRGLYOX + HO2 + CO + OH : 	KAPHO2*0.44 	;
+{11414.} 	 C4MOHOCO3 + NO = IPRGLYOX + HO2 + CO + NO2 : 	KAPNO 	;
+{11415.} 	 C4MOHOCO3 + NO2 = C4MOHOPAN : 	KFPAN 	;
+{11416.} 	 C4MOHOCO3 + NO3 = IPRGLYOX + HO2 + CO + NO2 : 	KRO2NO3*1.74 	;
+{11417.} 	 C4MOHOCO3 = IPRGLYOX + HO2 + CO : 	1.00D-11*RO2 	;
+{11418.} 	 C7MO3OHOOH + OH = C7MCO3OHO2 : 	5.73D-11 	;
+{11419.} 	 C7MO3OHOOH = C7MCO3OHO + OH : 	J(41)+J(34) 	;
+{11420.} 	 C7MCO3OHO = C33CO + IPRGLYOX + HO2 : 	KDEC 	;
+{11421.} 	 C7ADCCO2 = BIACET + CH3CO3 : 	KDEC*0.35 	;
+{11422.} 	 C7ADCCO2 = DMMALANHY + CH3O2 : 	KDEC*0.65 	;
+{11423.} 	 DNT123BOL + NO3 = NDNT123LO2 : 	7.83D-15 	;
+{11424.} 	 DNT123BOL + OH = DNT123LO2 : 	5.10D-14 	;
+{11425.} 	 NT123L1O2 + HO2 = NT123L1OOH : 	KRO2HO2*0.90 	;
+{11426.} 	 NT123L1O2 + NO = NT123L1O + NO2 : 	KRO2NO 	;
+{11427.} 	 NT123L1O2 + NO3 = NT123L1O + NO2 : 	KRO2NO3 	;
+{11428.} 	 NT123L1O2 = NT123L1O : 	2.50D-13*RO2 	;
+{11429.} 	 T123NNCTO2 + HO2 = T123NNCOOH : 	KRO2HO2*0.90 	;
+{11430.} 	 T123NNCTO2 + NO = T123NNCTO + NO2 : 	KRO2NO 	;
+{11431.} 	 T123NNCTO2 + NO3 = T123NNCTO + NO2 : 	KRO2NO3 	;
+{11432.} 	 T123NNCTO2 = T123NNCTO : 	8.00D-13*RO2 	;
+{11433.} 	 T123NCATO2 + HO2 = T123NCTOOH : 	KRO2HO2*0.90 	;
+{11434.} 	 T123NCATO2 + NO = T123NCATO + NO2 : 	KRO2NO 	;
+{11435.} 	 T123NCATO2 + NO3 = T123NCATO + NO2 : 	KRO2NO3 	;
+{11436.} 	 T123NCATO2 = T123NCATO : 	8.00D-13*RO2 	;
+{11437.} 	 T123CT1OOH + OH = T123CAT1O2 : 	2.05D-10 	;
+{11438.} 	 T123CT1OOH = T123CAT1O + OH : 	J(41) 	;
+{11439.} 	 C7ADCCO3H + OH = C7ADCCO3 : 	4.84D-11 	;
+{11440.} 	 C7ADCCO3H = BIACET + CH3CO3 + OH : 	J(24) 	;
+{11441.} 	 C7ADCCO3H = C7ADCCO2 : 	J(41) 	;
+{11442.} 	 C7ADCPAN + OH = BIACET + HCHO + CO + CO + NO2 : 	4.48D-11 	;
+{11443.} 	 C7ADCPAN = C7ADCCO3 + NO2 : 	KBPAN 	;
+{11444.} 	 C7ADCOOH + OH = C7ADCO2 : 	7.40D-11 	;
+{11445.} 	 C7ADCOOH = C7ADCO + OH : 	J(41)+J(15)+J(22) 	;
+{11446.} 	 C7ADCO = BIACET + MGLYOX + HO2 : 	KDEC 	;
+{11447.} 	 C7ADCOH + OH = C7ADCO : 	5.33D-11 	;
+{11448.} 	 C7ADCOH = C7ADCO + HO2 : 	J(15)+J(22) 	;
+{11449.} 	 NTMB1FUOOH + OH = NTMB1FUO2 : 	9.93D-11 	;
+{11450.} 	 NTMB1FUOOH = NTMB1FUO + OH : 	J(41) 	;
+{11451.} 	 NTMB1FUO = C5OCO3M + NO2 : 	KDEC 	;
+{11452.} 	 TMB1FUOOH + OH = TMB1FUO2 : 	1.37D-11 	;
+{11453.} 	 TMB1FUOOH = TMB1FUO + OH : 	J(41) 	;
+{11454.} 	 TMB1FUO = C5OCO3M + HO2 : 	KDEC 	;
+{11455.} 	 TMB1FUOH + OH = TMB1FUO : 	1.02D-11 	;
+{11456.} 	 NTMB2FUOOH + OH = NTMB2FUO2 : 	5.59D-12 	;
+{11457.} 	 NTMB2FUOOH = NTMB2FUO + OH : 	J(41) 	;
+{11458.} 	 NTMB2FUO = MC6OTRIKET + NO2 : 	KDEC 	;
+{11459.} 	 MC6OTKTOOH + OH = MC6OTKETO2 : 	4.46D-12 	;
+{11460.} 	 MC6OTKTOOH = OH + MC6OTKETO : 	J(41) 	;
+{11461.} 	 MC6OTKETO = BIACET + CH3CO3 : 	KDEC 	;
+{11462.} 	 MC6OTKETOH + OH = MC6OTKETO : 	1.01D-12 	;
+{11463.} 	 TMB2FUOOH + OH = TMB2FUO2 : 	1.02D-11 	;
+{11464.} 	 TMB2FUOOH = TMB2FUO + OH : 	J(41) 	;
+{11465.} 	 TMB2FUO = MC6OTRIKET + HO2 : 	KDEC 	;
+{11466.} 	 TMB2FUOH + OH = TMB2FUO : 	6.75D-12 	;
+{11467.} 	 DM124OHNO2 + OH = TM124NO2O2 : 	1.53D-12 	;
+{11468.} 	 C7BDCOOH + OH = C7BDCO2 : 	2.59D-11 	;
+{11469.} 	 C7BDCOOH = C5CO243OH + CH3CO3 + OH : 	J(22)*2 	;
+{11470.} 	 C7BDCOOH = C7BDCO + OH : 	J(41) 	;
+{11471.} 	 C7BDCO = C5CO243OH + CH3CO3 : 	KDEC*0.7 	;
+{11472.} 	 C7BDCO = MGLYOX + BIACET + HO2 : 	KDEC*0.3 	;
+{11473.} 	 C7BDCOH + OH = C7BDCO : 	2.24D-11 	;
+{11474.} 	 C7BDCOH = C5CO243OH + CH3CO3 + HO2 : 	J(22)*2 	;
+{11475.} 	 DNT124BOL + NO3 = NDNT124LO2 : 	7.83D-15 	;
+{11476.} 	 DNT124BOL + OH = DNT124LO2 : 	5.10D-14 	;
+{11477.} 	 NT124L1O2 + HO2 = NT124L1OOH : 	KRO2HO2*0.90 	;
+{11478.} 	 NT124L1O2 + NO = NT124L1O + NO2 : 	KRO2NO 	;
+{11479.} 	 NT124L1O2 + NO3 = NT124L1O + NO2 : 	KRO2NO3 	;
+{11480.} 	 NT124L1O2 = NT124L1O : 	2.50D-13*RO2 	;
+{11481.} 	 NTM124QO2 + HO2 = NTM124QOOH : 	KRO2HO2*0.890 	;
+{11482.} 	 NTM124QO2 + NO = NTM124QO + NO2 : 	KRO2NO 	;
+{11483.} 	 NTM124QO2 + NO3 = NTM124QO + NO2 : 	KRO2NO3 	;
+{11484.} 	 NTM124QO2 = NTM124QO : 	9.20D-14*RO2 	;
+{11485.} 	 TM124QO2 + HO2 = TM124QOOH : 	KRO2HO2*0.890 	;
+{11486.} 	 TM124QO2 + NO = TM124QO + NO2 : 	KRO2NO 	;
+{11487.} 	 TM124QO2 + NO3 = TM124QO + NO2 : 	KRO2NO3 	;
+{11488.} 	 TM124QO2 = TM124QO : 	9.20D-14*RO2*0.70 	;
+{11489.} 	 TM124QO2 = TM124QOH : 	9.20D-14*RO2*0.30 	;
+{11490.} 	 T124NNCTO2 + HO2 = T124NNCOOH : 	KRO2HO2*0.90 	;
+{11491.} 	 T124NNCTO2 + NO = T124NNCTO + NO2 : 	KRO2NO 	;
+{11492.} 	 T124NNCTO2 + NO3 = T124NNCTO + NO2 : 	KRO2NO3 	;
+{11493.} 	 T124NNCTO2 = T124NNCTO : 	8.00D-13*RO2 	;
+{11494.} 	 T124NCATO2 + HO2 = T124NCTOOH : 	KRO2HO2*0.90 	;
+{11495.} 	 T124NCATO2 + NO = T124NCATO + NO2 : 	KRO2NO 	;
+{11496.} 	 T124NCATO2 + NO3 = T124NCATO + NO2 : 	KRO2NO3 	;
+{11497.} 	 T124NCATO2 = T124NCATO : 	8.00D-13*RO2 	;
+{11498.} 	 T124CT1OOH + OH = T124CAT1O2 : 	2.05D-10 	;
+{11499.} 	 T124CT1OOH = T124CAT1O + OH : 	J(41) 	;
+{11500.} 	 DMPHOHNO2 + OH = MXYOHNO2O2 : 	1.53D-12 	;
+{11501.} 	 C5CO234O2 + HO2 = C5CO234OOH : 	KRO2HO2*0.706 	;
+{11502.} 	 C5CO234O2 + NO = C5CO234O + NO2 : 	KRO2NO 	;
+{11503.} 	 C5CO234O2 + NO3 = C5CO234O + NO2 : 	KRO2NO3 	;
+{11504.} 	 C5CO234O2 = C5CO234O : 	2.00D-12*RO2 	;
+{11505.} 	 DNOETOL + NO3 = NDNOETOLO2 : 	7.83D-15 	;
+{11506.} 	 DNOETOL + OH = DNOETOLO2 : 	5.10D-14 	;
+{11507.} 	 NOETOL1O2 + HO2 = NOETOL1OOH : 	KRO2HO2*0.90 	;
+{11508.} 	 NOETOL1O2 + NO = NOETOL1O + NO2 : 	KRO2NO 	;
+{11509.} 	 NOETOL1O2 + NO3 = NOETOL1O + NO2 : 	KRO2NO3 	;
+{11510.} 	 NOETOL1O2 = NOETOL1O : 	2.50D-13*RO2 	;
+{11511.} 	 NOETLQO2 + HO2 = NOETLQOOH : 	KRO2HO2*0.890 	;
+{11512.} 	 NOETLQO2 + NO = NOETLQO + NO2 : 	KRO2NO 	;
+{11513.} 	 NOETLQO2 + NO3 = NOETLQO + NO2 : 	KRO2NO3 	;
+{11514.} 	 NOETLQO2 = NOETLQO : 	8.80D-13*RO2 	;
+{11515.} 	 OETLQO2 + HO2 = OETLQOOH : 	KRO2HO2*0.890 	;
+{11516.} 	 OETLQO2 + NO = OETLQO + NO2 : 	KRO2NO 	;
+{11517.} 	 OETLQO2 + NO3 = OETLQO + NO2 : 	KRO2NO3 	;
+{11518.} 	 OETLQO2 = OETLQCO : 	8.80D-13*RO2*0.2 	;
+{11519.} 	 OETLQO2 = OETLQO : 	8.80D-13*RO2*0.6 	;
+{11520.} 	 OETLQO2 = OETLQOH : 	8.80D-13*RO2*0.2 	;
+{11521.} 	 OTNNCATCO2 + HO2 = OTNNCATOOH : 	KRO2HO2*0.90 	;
+{11522.} 	 OTNNCATCO2 + NO = OTNNCATCO + NO2 : 	KRO2NO 	;
+{11523.} 	 OTNNCATCO2 + NO3 = OTNNCATCO + NO2 : 	KRO2NO3 	;
+{11524.} 	 OTNNCATCO2 = OTNNCATCO : 	8.00D-13*RO2 	;
+{11525.} 	 OTNCATECO2 + HO2 = OTNCATCOOH : 	KRO2HO2*0.90 	;
+{11526.} 	 OTNCATECO2 + NO = OTNCATECO + NO2 : 	KRO2NO 	;
+{11527.} 	 OTNCATECO2 + NO3 = OTNCATECO + NO2 : 	KRO2NO3 	;
+{11528.} 	 OTNCATECO2 = OTNCATECO : 	8.00D-13*RO2 	;
+{11529.} 	 OTCTEC1OOH + OH = OTCATEC1O2 : 	2.05D-10 	;
+{11530.} 	 OTCTEC1OOH = OTCATEC1O + OH : 	J(41) 	;
+{11531.} 	 DNMETOL + NO3 = NDNMETOLO2 : 	7.83D-15 	;
+{11532.} 	 DNMETOL + OH = DNMETOLO2 : 	5.10D-14 	;
+{11533.} 	 NMETOL1O2 + HO2 = NMETOL1OOH : 	KRO2HO2*0.90 	;
+{11534.} 	 NMETOL1O2 + NO = NMETOL1O + NO2 : 	KRO2NO 	;
+{11535.} 	 NMETOL1O2 + NO3 = NMETOL1O + NO2 : 	KRO2NO3 	;
+{11536.} 	 NMETOL1O2 = NMETOL1O : 	2.50D-13*RO2 	;
+{11537.} 	 NMETLQO2 + HO2 = NMETLQOOH : 	KRO2HO2*0.890 	;
+{11538.} 	 NMETLQO2 + NO = NMETLQO + NO2 : 	KRO2NO 	;
+{11539.} 	 NMETLQO2 + NO3 = NMETLQO + NO2 : 	KRO2NO3 	;
+{11540.} 	 NMETLQO2 = NMETLQO : 	9.20D-14*RO2 	;
+{11541.} 	 METLQO2 + HO2 = METLQOOH : 	KRO2HO2*0.890 	;
+{11542.} 	 METLQO2 + NO = METLQO + NO2 : 	KRO2NO 	;
+{11543.} 	 METLQO2 + NO3 = METLQO + NO2 : 	KRO2NO3 	;
+{11544.} 	 METLQO2 = METLQO : 	9.20D-14*RO2*0.7 	;
+{11545.} 	 METLQO2 = METLQOH : 	9.20D-14*RO2*0.3 	;
+{11546.} 	 MTNNCATCO2 + HO2 = MTNNCATOOH : 	KRO2HO2*0.90 	;
+{11547.} 	 MTNNCATCO2 + NO = MTNNCATCO + NO2 : 	KRO2NO 	;
+{11548.} 	 MTNNCATCO2 + NO3 = MTNNCATCO + NO2 : 	KRO2NO3 	;
+{11549.} 	 MTNNCATCO2 = MTNNCATCO : 	8.00D-13*RO2 	;
+{11550.} 	 MTNCATECO2 + HO2 = MTNCATCOOH : 	KRO2HO2*0.90 	;
+{11551.} 	 MTNCATECO2 + NO = MTNCATECO + NO2 : 	KRO2NO 	;
+{11552.} 	 MTNCATECO2 + NO3 = MTNCATECO + NO2 : 	KRO2NO3 	;
+{11553.} 	 MTNCATECO2 = MTNCATECO : 	8.00D-13*RO2 	;
+{11554.} 	 MTCTEC1OOH + OH = MTCATEC1O2 : 	2.05D-10 	;
+{11555.} 	 MTCTEC1OOH = MTCATEC1O + OH : 	J(41) 	;
+{11556.} 	 C7EDCOOH + OH = C7EDCCO + OH : 	2.79D-11 	;
+{11557.} 	 C7EDCOOH = C7EDCO + OH : 	J(41)+J(22)*2 	;
+{11558.} 	 C7EDCO = CO3H4CHO + CH3CO3 : 	KDEC*0.7 	;
+{11559.} 	 C7EDCO = EGLYOX + MGLYOX + HO2 : 	KDEC*0.3 	;
+{11560.} 	 C7EDCCO + OH = MGLYOX + EGLYOX + HO2 : 	5.04D-12 	;
+{11561.} 	 C7EDCCO = EGLYOX + CO + HO2 + CH3CO3 : 	J(22) 	;
+{11562.} 	 C7EDCCO = MGLYOX + CO + HO2 + C2H5CO3 : 	J(22)*2 	;
+{11563.} 	 C7EDCOH + OH = C7EDCCO + HO2 : 	1.80D-11 	;
+{11564.} 	 C7EDCOH = C7EDCO + HO2 : 	J(22)*2 	;
+{11565.} 	 DNPETOL + NO3 = NDNPETOLO2 : 	7.83D-15 	;
+{11566.} 	 DNPETOL + OH = DNPETOLO2 : 	5.10D-14 	;
+{11567.} 	 NPETOL1O2 + HO2 = NPETOL1OOH : 	KRO2HO2*0.90 	;
+{11568.} 	 NPETOL1O2 + NO = NPETOL1O + NO2 : 	KRO2NO 	;
+{11569.} 	 NPETOL1O2 + NO3 = NPETOL1O + NO2 : 	KRO2NO3 	;
+{11570.} 	 NPETOL1O2 = NPETOL1O : 	2.50D-13*RO2 	;
+{11571.} 	 NPETLQO2 + HO2 = NPETLQOOH : 	KRO2HO2*0.890 	;
+{11572.} 	 NPETLQO2 + NO = NPETLQO + NO2 : 	KRO2NO 	;
+{11573.} 	 NPETLQO2 + NO3 = NPETLQO + NO2 : 	KRO2NO3 	;
+{11574.} 	 NPETLQO2 = NPETLQO : 	9.20D-14*RO2 	;
+{11575.} 	 PETLQO2 + HO2 = PETLQOOH : 	KRO2HO2*0.890 	;
+{11576.} 	 PETLQO2 + NO = PETLQO + NO2 : 	KRO2NO 	;
+{11577.} 	 PETLQO2 + NO3 = PETLQO + NO2 : 	KRO2NO3 	;
+{11578.} 	 PETLQO2 = PETLQO : 	9.20D-14*RO2*0.7 	;
+{11579.} 	 PETLQO2 = PETLQOH : 	9.20D-14*RO2*0.3 	;
+{11580.} 	 PTNNCATCO2 + HO2 = PTNNCATOOH : 	KRO2HO2*0.90 	;
+{11581.} 	 PTNNCATCO2 + NO = PTNNCATCO + NO2 : 	KRO2NO 	;
+{11582.} 	 PTNNCATCO2 + NO3 = PTNNCATCO + NO2 : 	KRO2NO3 	;
+{11583.} 	 PTNNCATCO2 = PTNNCATCO : 	8.00D-13*RO2 	;
+{11584.} 	 PTNCATECO2 + HO2 = PTNCATCOOH : 	KRO2HO2*0.90 	;
+{11585.} 	 PTNCATECO2 + NO = PTNCATECO + NO2 : 	KRO2NO 	;
+{11586.} 	 PTNCATECO2 + NO3 = PTNCATECO + NO2 : 	KRO2NO3 	;
+{11587.} 	 PTNCATECO2 = PTNCATECO : 	8.00D-13*RO2 	;
+{11588.} 	 PTCTEC1OOH + OH = PTCATEC1O2 : 	2.05D-10 	;
+{11589.} 	 PTCTEC1OOH = PTCATEC1O + OH : 	J(41) 	;
+{11590.} 	 C7DDCCO2 = EGLYOX + CH3CO3 : 	KDEC*0.65 	;
+{11591.} 	 C7DDCCO2 = MMALANHY + C2H5O2 : 	KDEC*0.35 	;
+{11592.} 	 C7DDCCO3H + OH = C7DDCCO3 : 	4.88D-11 	;
+{11593.} 	 C7DDCCO3H = C7DDCCO2 + OH : 	J(41) 	;
+{11594.} 	 C7DDCCO3H = EGLYOX + CH3CO3 + OH : 	J(24) 	;
+{11595.} 	 C7DDCPAN + OH = EGLYOX + HCHO + CO + CO + NO2 : 	4.48D-11 	;
+{11596.} 	 C7DDCPAN = C7DDCCO3 + NO2 : 	KBPAN 	;
+{11597.} 	 C7DDCOOH + OH = C7DDCO2 : 	7.44D-11 	;
+{11598.} 	 C7DDCOOH = C7DDCO + OH : 	J(41)+J(15)+J(22) 	;
+{11599.} 	 C7DDCO = EGLYOX + MGLYOX + HO2 : 	KDEC 	;
+{11600.} 	 C7DDCOH + OH = C7DDCO : 	5.37D-11 	;
+{11601.} 	 C7DDCOH = C7DDCO + HO2 : 	J(15)+J(22) 	;
+{11602.} 	 NMEBFUOOH + OH = NMEBFUO2 : 	7.15D-12 	;
+{11603.} 	 NMEBFUOOH = NMEBFUO + OH : 	J(41) 	;
+{11604.} 	 NMEBFUO = C23O3ECHO + NO2 : 	KDEC 	;
+{11605.} 	 C23O3ECOOH + OH = C23O3EHO + OH : 	7.32D-11 	;
+{11606.} 	 C23O3ECOOH + OH = C23O3EO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{11607.} 	 C23O3ECOOH = C23O3EO + OH : 	J(41) 	;
+{11608.} 	 C23O3EO = C2H5CHO + CH3CO3 : 	KDEC 	;
+{11609.} 	 C23O3EHO + OH = CO356OCO2 : 	1.46D-12 	;
+{11610.} 	 C23O3EHO = CH3CO3 + C2H5CO3 : 	J(22) 	;
+{11611.} 	 C23O3EOH + OH = C23O3EHO + HO2 : 	3.23D-11 	;
+{11612.} 	 MEBFUOOH + OH = MEBFUO2 : 	3.33D-11 	;
+{11613.} 	 MEBFUOOH = MEBFUO + OH : 	J(41) 	;
+{11614.} 	 MEBFUO = C23O3ECHO + HO2 : 	KDEC 	;
+{11615.} 	 MEBFUOH + OH = MEBFUO : 	2.99D-11 	;
+{11616.} 	 EMPHOOH + OH = EMPHO2 : 	3.60D-12 	;
+{11617.} 	 EMPHOOH = EMPHO + OH : 	J(41) 	;
+{11618.} 	 EMPHO + NO2 = HOEMPHNO2 : 	3.90D-13 	;
+{11619.} 	 CO234C65O2 + HO2 = CO234C6OOH : 	KRO2HO2*0.770 	;
+{11620.} 	 CO234C65O2 + NO = CO234C65O + NO2 : 	KRO2NO 	;
+{11621.} 	 CO234C65O2 + NO3 = CO234C65O + NO2 : 	KRO2NO3 	;
+{11622.} 	 CO234C65O2 = CO234C65O : 	8.80D-13*RO2 	;
+{11623.} 	 CH3COCLOOH + OH = CH3COCCLO2 : 	8.34D-12 	;
+{11624.} 	 CH3COCLOOH = CH3COCCLO + OH : 	J(41) 	;
+{11625.} 	 CH3COCCLO = CHOCL + CH3CO3 : 	KDEC 	;
+{11626.} 	 CLCOCL2OOH + OH = CLCOCCL2O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{11627.} 	 CLCOCL2OOH = CLCOCCL2O + OH : 	J(41) 	;
+{11628.} 	 CLCOCCL2O = CLGLYOX + CL : 	KDEC 	;
+{11629.} 	 NCO23CHO = NO3CH2CO3 + HO2 + CO + CO : 	J(34) 	;
+{11630.} 	 NO3 + NCO23CHO = CO + CO + NO3CH2CO3 + HNO3 : 	KNO3AL*4.0 	;
+{11631.} 	 OH + NCO23CHO = CO + CO + NO3CH2CO3 : 	1.23D-11 	;
+{11632.} 	 H13CO2CO3 + HO2 = H13CO2CO3H : 	KAPHO2*0.56 	;
+{11633.} 	 H13CO2CO3 + HO2 = HOCH2COCHO + HO2 + OH : 	KAPHO2*0.44 	;
+{11634.} 	 H13CO2CO3 + NO = HOCH2COCHO + HO2 + NO2 : 	KAPNO 	;
+{11635.} 	 H13CO2CO3 + NO2 = C4PAN10 : 	KFPAN 	;
+{11636.} 	 H13CO2CO3 + NO3 = HOCH2COCHO + HO2 + NO2 : 	KRO2NO3*1.74 	;
+{11637.} 	 H13CO2CO3 = HOCH2COCHO + HO2 : 	1.00D-11*RO2 	;
+{11638.} 	 HOCH2COCO2H + OH = HOCH2CO3 : 	2.89D-12 	;
+{11639.} 	 HOCH2COCO2H = HOCH2CO3 + HO2 : 	J(34) 	;
+{11640.} 	 H1CO23CHO + OH = CO + CO + HOCH2CO3 : 	1.44D-11 	;
+{11641.} 	 H1CO23CHO = CO + CO + HOCH2CO3 + HO2 : 	J(34)+J(35) 	;
+{11642.} 	 INCNCHO + OH = INCGLYOX + NO2 : 	4.52D-12*0.19 	;
+{11643.} 	 INCNCHO + OH = INCNCO3 : 	4.52D-12*0.81 	;
+{11644.} 	 INCNCHO = MACRNB + CO + NO2 + HO2 : 	J(15) 	;
+{11645.} 	 INCGLYOX = MACRNBCO3 + CO + HO2 : 	J(34) 	;
+{11646.} 	 OH + INCGLYOX = MACRNBCO3 + CO : 	1.34D-11 	;
+{11647.} 	 IEACO3 + HO2 = HMVKBO2 + OH : 	KAPHO2*0.44 	;
+{11648.} 	 IEACO3 + HO2 = IEACO3H : 	KAPHO2*0.56 	;
+{11649.} 	 IEACO3 + NO = HMVKBO2 + NO2 : 	KAPNO 	;
+{11650.} 	 IEACO3 + NO2 = IEAPAN : 	KFPAN 	;
+{11651.} 	 IEACO3 + NO3 = HMVKBO2 + NO2 : 	KRO2NO3*1.74 	;
+{11652.} 	 IEACO3 = HMVKBO2 : 	1.00D-11*RO2 	;
+{11653.} 	 INAHPCHO = HMVKANO3 + OH + CO + HO2 : 	J(17)+J(41) 	;
+{11654.} 	 OH + INAHPCHO = INAHPCO3 : 	2.67D-11 	;
+{11655.} 	 INANCHO = HMVKANO3 + NO2 + CO + HO2 : 	J(17) 	;
+{11656.} 	 OH + INANCHO = INANCO3 : 	4.22D-12 	;
+{11657.} 	 INANCO = ACETOL + NO2 + NO3CH2CO3 : 	J(56)+J(57) 	;
+{11658.} 	 OH + INANCO = INANCOCHO + HO2 : 	1.21D-12*0.56 	;
+{11659.} 	 OH + INANCO = INB1GLYOX + NO2 : 	1.21D-12*0.44 	;
+{11660.} 	 INAHCHO = HMVKANO3 + HO2 + CO + HO2 : 	J(17) 	;
+{11661.} 	 OH + INAHCHO = INAHCO3 : 	2.29D-11 	;
+{11662.} 	 HIEPOXB + OH = HIEB1O2 : 	1.31D-11*0.667 	;
+{11663.} 	 HIEPOXB + OH = HIEB2O2 : 	1.31D-11*0.333 	;
+{11664.} 	 NC524O2 + HO2 = NC524OOH : 	KRO2HO2*0.706 	;
+{11665.} 	 NC524O2 + NO = NC524NO3 : 	KRO2NO*0.072 	;
+{11666.} 	 NC524O2 + NO = NC524O + NO2 : 	KRO2NO*0.928 	;
+{11667.} 	 NC524O2 + NO3 = NC524O + NO2 : 	KRO2NO3 	;
+{11668.} 	 NC524O2 = NC524O : 	8.00D-13*RO2*0.8 	;
+{11669.} 	 NC524O2 = NC524OH : 	8.00D-13*RO2*0.2 	;
+{11670.} 	 HMACR + NO3 = HMACO3 + HNO3 : 	3.40D-15 	;
+{11671.} 	 HMACR + O3 = CH2OOA + HOCH2COCHO : 	7.80D-19*0.5 	;
+{11672.} 	 HMACR + O3 = HCHO + HMGLYOOA : 	7.80D-19*0.5 	;
+{11673.} 	 HMACR + OH = HMACO3 : 	4.83D-11*0.376 	;
+{11674.} 	 HMACR + OH = HMACRO2 : 	4.83D-11*0.624 	;
+{11675.} 	 C525O2 + HO2 = C525OOH : 	KRO2HO2*0.706 	;
+{11676.} 	 C525O2 + NO = C525O + NO2 : 	KRO2NO 	;
+{11677.} 	 C525O2 + NO3 = C525O + NO2 : 	KRO2NO3 	;
+{11678.} 	 C525O2 = C525O : 	9.20D-14*RO2 	;
+{11679.} 	 C58NO3CO3 + HO2 = C58NO3CO2H + O3 : 	KAPHO2*0.15 	;
+{11680.} 	 C58NO3CO3 + HO2 = C58NO3CO3H : 	KAPHO2*0.41 	;
+{11681.} 	 C58NO3CO3 + HO2 = MACRNO3 + HO2 + OH : 	KAPHO2*0.44 	;
+{11682.} 	 C58NO3CO3 + NO = MACRNO3 + HO2 + NO2 : 	KAPNO 	;
+{11683.} 	 C58NO3CO3 + NO2 = C58NO3PAN : 	KFPAN 	;
+{11684.} 	 C58NO3CO3 = C58NO3CO2H : 	1.00D-11*0.3*RO2 	;
+{11685.} 	 C58NO3CO3 = MACRNO3 + HO2 : 	1.00D-11*0.7*RO2 	;
+{11686.} 	 IEB1OOH = HO12CO3C4 + OH + CO + HO2 : 	J(17) 	;
+{11687.} 	 IEB1OOH = IEB1O + OH : 	J(41) 	;
+{11688.} 	 OH + IEB1OOH = HO12CO3C4 + OH + CO : 	3.90D-11 	;
+{11689.} 	 IEB1O = MGLYOX + HOCH2CHO + HO2 : 	KDEC 	;
+{11690.} 	 IEB2OOH = IEB2O + OH : 	J(41) 	;
+{11691.} 	 IEB2OOH = MACROH + OH + CO + HO2 : 	J(15) 	;
+{11692.} 	 OH + IEB2OOH = MACROH + OH + CO : 	5.34D-11 	;
+{11693.} 	 IEB2O = GLYOX + ACETOL + HO2 : 	KDEC 	;
+{11694.} 	 MACRNCO2H + OH = ACETOL + NO2 : 	1.34D-12*0.44 	;
+{11695.} 	 MACRNCO2H + OH = CONM2CO2H + HO2 : 	1.34D-12*0.15 	;
+{11696.} 	 CONM2CO3 + HO2 = CONM2CO2H + O3 : 	KAPHO2*0.15 	;
+{11697.} 	 CONM2CO3 + HO2 = CONM2CO3H : 	KAPHO2*0.41 	;
+{11698.} 	 CONM2CO3 + HO2 = MGLYOX + NO2 + OH : 	KAPHO2*0.44 	;
+{11699.} 	 CONM2CO3 + NO = MGLYOX + NO2 + NO2 : 	KAPNO 	;
+{11700.} 	 CONM2CO3 + NO2 = CONM2PAN : 	KFPAN 	;
+{11701.} 	 CONM2CO3 + NO3 = MGLYOX + NO2 + NO2 : 	KRO2NO3*1.74 	;
+{11702.} 	 CONM2CO3 = CONM2CO2H : 	1.00D-11*0.3*RO2 	;
+{11703.} 	 CONM2CO3 = MGLYOX + NO2 : 	1.00D-11*0.7*RO2 	;
+{11704.} 	 MACRNCO3H + OH = CONM2CO3H + HO2 : 	4.42D-12*0.15 	;
+{11705.} 	 MACRNCO3H + OH = MACRNCO3 : 	4.42D-12*0.85 	;
+{11706.} 	 MACRNCO3H = ACETOL + NO2 + OH : 	J(41) 	;
+{11707.} 	 MACRNPAN + OH = CONM2PAN + HO2 : 	8.21D-13 	;
+{11708.} 	 MACRNPAN = MACRNCO3 + NO2 : 	KBPAN 	;
+{11709.} 	 INB1HPCHO = MACRNO3 + OH + CO + HO2 : 	J(15) 	;
+{11710.} 	 OH + INB1HPCHO = INB1HPCO3 : 	2.41D-11 	;
+{11711.} 	 INB1NACHO = MACRNO3 + NO2 + CO + HO2 : 	J(15) 	;
+{11712.} 	 OH + INB1NACHO = INB1NACO3 : 	1.85D-11 	;
+{11713.} 	 INB1NBCHO = MVKNO3 + NO2 + CO + HO2 : 	J(17) 	;
+{11714.} 	 OH + INB1NBCHO = INB1NBCO3 : 	1.85D-11 	;
+{11715.} 	 INB1GLYOX + OH = MACRNCO3 + CO : 	1.35D-11 	;
+{11716.} 	 INB1GLYOX = MACRNCO3 + CO + HO2 : 	J(34) 	;
+{11717.} 	 C57NO3 + OH = C4M2ALOHNO3 + HO2 : 	9.37D-12*0.54 	;
+{11718.} 	 C57NO3 + OH = C57NO3CO3 : 	9.37D-12*0.46 	;
+{11719.} 	 C57NO3 = HO2 + CO + HO12CO3C4 + NO2 : 	J(17) 	;
+{11720.} 	 IEC1OOH = ACETOL + OH + HOCH2CO3 : 	J(22) 	;
+{11721.} 	 IEC1OOH = IEC1O + OH : 	J(41) 	;
+{11722.} 	 OH + IEC1OOH = IEC1O2 : 	3.60D-12 	;
+{11723.} 	 OH + IEC1OOH = IEC2OOH + HO2 : 	1.57D-11 	;
+{11724.} 	 IEC1O = BIACETOH + HCHO + HO2 : 	KDEC 	;
+{11725.} 	 IECCO3 + HO2 = IECCO3H : 	KAPHO2*0.56 	;
+{11726.} 	 IECCO3 + HO2 = MACRO2 + OH : 	KAPHO2*0.44 	;
+{11727.} 	 IECCO3 + NO = MACRO2 + NO2 : 	KAPNO 	;
+{11728.} 	 IECCO3 + NO2 = IECPAN : 	KFPAN 	;
+{11729.} 	 IECCO3 + NO3 = MACRO2 + NO2 : 	KRO2NO3*1.74 	;
+{11730.} 	 IECCO3 = MACRO2 : 	1.00D-11*RO2 	;
+{11731.} 	 CO2N3CO3 + HO2 = CO2N3CO3H : 	KAPHO2*0.56 	;
+{11732.} 	 CO2N3CO3 + HO2 = MGLYOX + NO2 + OH : 	KAPHO2*0.44 	;
+{11733.} 	 CO2N3CO3 + NO = MGLYOX + NO2 + NO2 : 	KAPNO 	;
+{11734.} 	 CO2N3CO3 + NO2 = CO2N3PAN : 	KFPAN 	;
+{11735.} 	 CO2N3CO3 + NO3 = MGLYOX + NO2 + NO2 : 	KRO2NO3*1.74 	;
+{11736.} 	 CO2N3CO3 = MGLYOX + NO2 : 	1.00D-11*RO2 	;
+{11737.} 	 INDHPCHO + OH = INDHPCO3 : 	2.58D-11 	;
+{11738.} 	 INDHPCHO = CO + HO2 + MVKNO3 + OH : 	J(17)+J(41) 	;
+{11739.} 	 INDHCHO + OH = INDHCO3 : 	2.27D-11 	;
+{11740.} 	 INDHCHO = CO + HO2 + MVKNO3 + HO2 : 	J(17) 	;
+{11741.} 	 ACCOCOMEO2 + HO2 = ACCOCOMOOH : 	KRO2HO2*0.706 	;
+{11742.} 	 ACCOCOMEO2 + NO = ACCOCOMEO + NO2 : 	KRO2NO 	;
+{11743.} 	 ACCOCOMEO2 + NO3 = ACCOCOMEO + NO2 : 	KRO2NO3 	;
+{11744.} 	 ACCOCOMEO2 = ACCOCOMEO : 	6.00D-13*RO2 	;
+{11745.} 	 ACCOMECHO + NO3 = ACCOMECO3 + HNO3 : 	KNO3AL*5.5 	;
+{11746.} 	 ACCOMECHO + OH = ACCOMECO3 : 	7.09D-11 	;
+{11747.} 	 ACCOMECHO = MECOACETO2 + HO2 + CO : 	J(15) 	;
+{11748.} 	 ACEETOHO2 + HO2 = ACEETOHOOH : 	KRO2HO2*0.625 	;
+{11749.} 	 ACEETOHO2 + NO = ACEETOHO + NO2 : 	KRO2NO 	;
+{11750.} 	 ACEETOHO2 + NO3 = ACEETOHO + NO2 : 	KRO2NO3 	;
+{11751.} 	 ACEETOHO2 = ACEETOHO : 	2.00D-12*RO2 	;
+{11752.} 	 ACCOMCOMO2 + HO2 = ACOMCOMOOH : 	KRO2HO2*0.770 	;
+{11753.} 	 ACCOMCOMO2 + NO = ACCOMCOMO + NO2 : 	KRO2NO 	;
+{11754.} 	 ACCOMCOMO2 + NO3 = ACCOMCOMO + NO2 : 	KRO2NO3 	;
+{11755.} 	 ACCOMCOMO2 = ACCOMCOMO : 	2.00D-12*RO2 	;
+{11756.} 	 ACCOCOETO2 + HO2 = ACCOCOEOOH : 	KRO2HO2*0.770 	;
+{11757.} 	 ACCOCOETO2 + NO = ACCOCOETO + NO2 : 	KRO2NO 	;
+{11758.} 	 ACCOCOETO2 + NO3 = ACCOCOETO + NO2 : 	KRO2NO3 	;
+{11759.} 	 ACCOCOETO2 = ACCOCOETO : 	8.80D-13*RO2 	;
+{11760.} 	 ETHFORMOOH + OH = ETHFORMO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{11761.} 	 ETHFORMOOH + OH = METACETHO + OH : 	3.59D-11 	;
+{11762.} 	 ETHFORMOOH = ETHFORMO + OH : 	J(41) 	;
+{11763.} 	 ETHFORMNO3 + OH = METACETHO + NO2 : 	5.37D-13 	;
+{11764.} 	 ETHFORMNO3 = ETHFORMO + NO2 : 	J(54) 	;
+{11765.} 	 ETHFORMO = CH3CHO + HO2 : 	KDEC 	;
+{11766.} 	 ETHFORMOH + OH = METACETHO + HO2 : 	9.55D-12 	;
+{11767.} 	 MTBEAALCO3 + HO2 = IPRFORMO2 + OH : 	KAPHO2*0.44 	;
+{11768.} 	 MTBEAALCO3 + HO2 = MTBEALCO2H + O3 : 	KAPHO2*0.15 	;
+{11769.} 	 MTBEAALCO3 + HO2 = MTBEALCO3H : 	KAPHO2*0.41 	;
+{11770.} 	 MTBEAALCO3 + NO = IPRFORMO2 + NO2 : 	KAPNO 	;
+{11771.} 	 MTBEAALCO3 + NO2 = MTBEAALPAN : 	KFPAN 	;
+{11772.} 	 MTBEAALCO3 + NO3 = IPRFORMO2 + NO2 : 	KRO2NO3*1.74 	;
+{11773.} 	 MTBEAALCO3 = IPRFORMO2 : 	1.00D-11*0.7*RO2 	;
+{11774.} 	 MTBEAALCO3 = MTBEALCO2H : 	1.00D-11*0.3*RO2 	;
+{11775.} 	 IPRMETOOH + OH = IPRMEETO2 : 	4.84D-12 	;
+{11776.} 	 IPRMETOOH = IPRMEETO + OH : 	J(41) 	;
+{11777.} 	 IPRMEETO = METHACET + CH3O2 : 	KDEC 	;
+{11778.} 	 IPRMEETOH + OH = IPRMEETO : 	1.29D-12 	;
+{11779.} 	 IPROCHO + OH = IPRFORMO2 : 	3.53D-12 	;
+{11780.} 	 CHOOMCO2H + OH = CHOOCH2O2 : 	9.90D-13 	;
+{11781.} 	 CHOOMCO3H + OH = CHOOMCO3 : 	4.55D-12 	;
+{11782.} 	 CHOOMCO3H = CHOOCH2O2 + OH : 	J(41) 	;
+{11783.} 	 CHOOMPAN + OH = CHOOCHO + CO + NO2 : 	9.55D-13 	;
+{11784.} 	 CHOOMPAN = CHOOMCO3 + NO2 : 	KBPAN 	;
+{11785.} 	 PRNFORMOOH + OH = PRONFORMO2 : 	3.08D-11 	;
+{11786.} 	 PRNFORMOOH = PRONFORMO + OH : 	J(41) 	;
+{11787.} 	 PRONFORMO = MGLYOX + HO2 : 	KDEC 	;
+{11788.} 	 PRCOOMCO3H + OH = PRCOOMCO3 : 	8.41D-12 	;
+{11789.} 	 PRCOOMCO3H = PRCOOMO2 + OH : 	J(41) 	;
+{11790.} 	 PRCOOMPAN + OH = PRCOFORM + CO + NO2 : 	4.82D-12 	;
+{11791.} 	 PRCOOMPAN = PRCOOMCO3 + NO2 : 	KBPAN 	;
+{11792.} 	 PRCOOMOOH + OH = PRCOOMO2 : 	2.38D-11 	;
+{11793.} 	 PRCOOMOOH = PRCOOMO + OH : 	J(41) 	;
+{11794.} 	 PRCOOMO = HCHO + NC3H7O2 : 	KDEC 	;
+{11795.} 	 BOXCOALOOH + OH = BOXCOCHOO2 : 	5.22D-11 	;
+{11796.} 	 BOXCOALOOH = BOXCOCHOO + OH : 	J(41) 	;
+{11797.} 	 BOXCOCHOO = C3H7CHO + HO2 + CO : 	KDEC 	;
+{11798.} 	 BUFORMOOH + OH = PRCOFORM + OH : 	5.22D-11 	;
+{11799.} 	 BUFORMOOH = BUFORMO + OH : 	J(41) 	;
+{11800.} 	 BUFORMO = C3H7CHO + HO2 : 	KDEC 	;
+{11801.} 	 BUOHFORM + OH = PRCOFORM + HO2 : 	1.47D-11 	;
+{11802.} 	 PRCOFORM + OH = PRCOFORMO2 : 	3.88D-12 	;
+{11803.} 	 PRNOCOPOOH + OH = PRONOCOPO2 : 	1.10D-10 	;
+{11804.} 	 PRNOCOPOOH = PRONOCOPO + OH : 	J(41) 	;
+{11805.} 	 PRONOCOPO = PRONOCOMO2 + CH3CHO : 	KDEC 	;
+{11806.} 	 BOX2COMOOH + OH = BOXCOCOMO2 : 	5.24D-11 	;
+{11807.} 	 BOX2COMOOH = BOXCOCOMO + OH : 	J(41) 	;
+{11808.} 	 BOXCOCOMO = C3H7CHO + CH3CO3 : 	KDEC 	;
+{11809.} 	 CO23C4CHO = BIACETO2 + HO2 + CO : 	J(15) 	;
+{11810.} 	 CO23C4CHO = CH3CO3 + HCOCH2CO3 : 	J(35) 	;
+{11811.} 	 NO3 + CO23C4CHO = CO23C4CO3 + HNO3 : 	KNO3AL*5.5 	;
+{11812.} 	 OH + CO23C4CHO = CO23C4CO3 : 	6.65D-11 	;
+{11813.} 	 C62O2 + HO2 = C62OOH : 	KRO2HO2*0.770 	;
+{11814.} 	 C62O2 + NO = C62O + NO2 : 	KRO2NO 	;
+{11815.} 	 C62O2 + NO3 = C62O + NO2 : 	KRO2NO3 	;
+{11816.} 	 C62O2 = C62O : 	8.40D-13*RO2 	;
+{11817.} 	 HO13C4O2 + HO2 = HO13C4OOH : 	KRO2HO2*0.625 	;
+{11818.} 	 HO13C4O2 + NO = HO13C4NO3 : 	KRO2NO*0.007 	;
+{11819.} 	 HO13C4O2 + NO = HO13C4O + NO2 : 	KRO2NO*0.993 	;
+{11820.} 	 HO13C4O2 + NO3 = HO13C4O + NO2 : 	KRO2NO3 	;
+{11821.} 	 HO13C4O2 = HO13C3CHO : 	2.00D-12*0.2*RO2 	;
+{11822.} 	 HO13C4O2 = HO13C4O : 	2.00D-12*0.6*RO2 	;
+{11823.} 	 HO13C4O2 = HO13C4OH : 	2.00D-12*0.2*RO2 	;
+{11824.} 	 C6CO134 + OH = C5CO34CO3 : 	7.27D-11 	;
+{11825.} 	 HM22CO3 + HO2 = HM22CO2H + O3 : 	KAPHO2*0.15 	;
+{11826.} 	 HM22CO3 + HO2 = HM22CO3H : 	KAPHO2*0.41 	;
+{11827.} 	 HM22CO3 + HO2 = IBUTOLBO2 + OH : 	KAPHO2*0.44 	;
+{11828.} 	 HM22CO3 + NO = IBUTOLBO2 + NO2 : 	KAPNO 	;
+{11829.} 	 HM22CO3 + NO2 = C5PAN15 : 	KFPAN 	;
+{11830.} 	 HM22CO3 + NO3 = IBUTOLBO2 + NO2 : 	KRO2NO3*1.74 	;
+{11831.} 	 HM22CO3 = HM22CO2H : 	1.00D-11*0.3*RO2 	;
+{11832.} 	 HM22CO3 = IBUTOLBO2 : 	1.00D-11*0.7*RO2 	;
+{11833.} 	 C6COCHOCO3 + HO2 = C5COCHOO2 + OH : 	KAPHO2*0.44 	;
+{11834.} 	 C6COCHOCO3 + HO2 = C6COALCO2H + O3 : 	KAPHO2*0.15 	;
+{11835.} 	 C6COCHOCO3 + HO2 = C6COALCO3H : 	KAPHO2*0.41 	;
+{11836.} 	 C6COCHOCO3 + NO = C5COCHOO2 + NO2 : 	KAPNO 	;
+{11837.} 	 C6COCHOCO3 + NO2 = C6COCHOPAN : 	KFPAN 	;
+{11838.} 	 C6COCHOCO3 + NO3 = C5COCHOO2 + NO2 : 	KRO2NO3*1.74 	;
+{11839.} 	 C6COCHOCO3 = C5COCHOO2 : 	1.00D-11*0.7*RO2 	;
+{11840.} 	 C6COCHOCO3 = C6COALCO2H : 	1.00D-11*0.3*RO2 	;
+{11841.} 	 C5COCHOO2 + HO2 = C5COCHOOOH : 	KRO2HO2*0.706 	;
+{11842.} 	 C5COCHOO2 + NO = C5COCHOO + NO2 : 	KRO2NO 	;
+{11843.} 	 C5COCHOO2 + NO3 = C5COCHOO + NO2 : 	KRO2NO3 	;
+{11844.} 	 C5COCHOO2 = C5COCHOO : 	2.00D-12*RO2 	;
+{11845.} 	 CHOC2H4O2 + HO2 = CHOC2H4OOH : 	KRO2HO2*0.520 	;
+{11846.} 	 CHOC2H4O2 + NO = CHOC2H4O + NO2 : 	KRO2NO 	;
+{11847.} 	 CHOC2H4O2 + NO3 = CHOC2H4O + NO2 : 	KRO2NO3 	;
+{11848.} 	 CHOC2H4O2 = CHOC2H4O : 	6.00D-13*RO2 	;
+{11849.} 	 HCOCH2CO3 + HO2 = HCOCH2CO2H + O3 : 	KAPHO2*0.15 	;
+{11850.} 	 HCOCH2CO3 + HO2 = HCOCH2CO3H : 	KAPHO2*0.41 	;
+{11851.} 	 HCOCH2CO3 + HO2 = HCOCH2O2 + OH : 	KAPHO2*0.44 	;
+{11852.} 	 HCOCH2CO3 + NO = HCOCH2O2 + NO2 : 	KAPNO 	;
+{11853.} 	 HCOCH2CO3 + NO2 = C3PAN2 : 	KFPAN 	;
+{11854.} 	 HCOCH2CO3 + NO3 = HCOCH2O2 + NO2 : 	KRO2NO3*1.74 	;
+{11855.} 	 HCOCH2CO3 = HCOCH2CO2H : 	1.00D-11*0.3*RO2 	;
+{11856.} 	 HCOCH2CO3 = HCOCH2O2 : 	1.00D-11*0.7*RO2 	;
+{11857.} 	 CY6TRIONO2 + HO2 = C6135COOOH : 	KRO2HO2*0.77 	;
+{11858.} 	 CY6TRIONO2 + NO = C6135COO + NO2 : 	KRO2NO 	;
+{11859.} 	 CY6TRIONO2 + NO3 = C6135COO + NO2 : 	KRO2NO3 	;
+{11860.} 	 CY6TRIONO2 = C6135COO : 	2.00D-12*RO2 	;
+{11861.} 	 C6CYTONO2 + HO2 = C6CYTONOOH : 	KRO2HO2*0.770 	;
+{11862.} 	 C6CYTONO2 + NO = C6CYTONO + NO2 : 	KRO2NO 	;
+{11863.} 	 C6CYTONO2 + NO3 = C6CYTONO + NO2 : 	KRO2NO3 	;
+{11864.} 	 C6CYTONO2 = C6CYTONO : 	8.80D-13*RO2 	;
+{11865.} 	 PINALOOH + OH = PINALO2 : 	2.75D-11 	;
+{11866.} 	 PINALOOH = PINALO + OH : 	J(41)+J(15) 	;
+{11867.} 	 PINALNO3 + OH = CO235C6CHO + CH3COCH3 + NO2 : 	2.25D-11 	;
+{11868.} 	 PINALNO3 = PINALO + NO2 : 	J(55)+J(15) 	;
+{11869.} 	 PINALO = C106O2 : 	KDEC 	;
+{11870.} 	 PINALOH + OH = PINALO : 	2.41D-11 	;
+{11871.} 	 PINALOH = PINALO + HO2 : 	J(22) 	;
+{11872.} 	 NC102O2 + HO2 = NC102OOH : 	KRO2HO2*0.914 	;
+{11873.} 	 NC102O2 + NO = NC102O + NO2 : 	KRO2NO 	;
+{11874.} 	 NC102O2 + NO3 = NC102O + NO2 : 	KRO2NO3 	;
+{11875.} 	 NC102O2 = NC102O : 	6.70D-15*RO2 	;
+{11876.} 	 C108OOH + OH = C108O2 : 	6.28D-11 	;
+{11877.} 	 C108OOH = C108O + OH : 	J(41)+J(35) 	;
+{11878.} 	 C108NO3 + OH = CO235C6CHO + CH3COCH3 + NO2 : 	2.85D-11 	;
+{11879.} 	 C108NO3 = C108O + NO2 : 	J(55)+J(35) 	;
+{11880.} 	 C108O = C717O2 + CH3COCH3 : 	KDEC 	;
+{11881.} 	 C108OH + OH = C108O : 	5.93D-11 	;
+{11882.} 	 C108OH = C108O + HO2 : 	J(35) 	;
+{11883.} 	 C89CO2 = C811CO3 : 	KDEC*0.80 	;
+{11884.} 	 C89CO2 = C89O2 : 	KDEC*0.20 	;
+{11885.} 	 C89CO2H + OH = C89CO2 : 	2.69D-11 	;
+{11886.} 	 C89CO2H = C89CO2 + HO2 : 	J(15) 	;
+{11887.} 	 C89CO3H + OH = C89CO3 : 	3.00D-11 	;
+{11888.} 	 C89CO3H = C89CO2 + OH : 	J(41)+J(15) 	;
+{11889.} 	 C89PAN + OH = CH3COCH3 + CO13C4CHO + CO + NO2 : 	2.52D-11 	;
+{11890.} 	 C89PAN = C89CO3 + NO2 : 	KBPAN 	;
+{11891.} 	 C920CO3H + OH = C920CO3 : 	9.16D-12 	;
+{11892.} 	 C920CO3H = C920O2 + OH : 	J(41)+J(22) 	;
+{11893.} 	 HOPINONIC + OH = C920O2 : 	5.70D-12 	;
+{11894.} 	 HOPINONIC = C920O2 + HO2 : 	J(22) 	;
+{11895.} 	 C920PAN + OH = C109OH + CO + NO2 : 	5.56D-12 	;
+{11896.} 	 C920PAN = C920CO3 + NO2 : 	KBPAN 	;
+{11897.} 	 C920OOH + OH = C920O2 : 	2.36D-11 	;
+{11898.} 	 C920OOH = C920O + OH : 	J(41)+J(22) 	;
+{11899.} 	 C920O = C921O2 : 	4.20D+10*EXP(-3523/TEMP) 	;
+{11900.} 	 C97OOH + OH = C97O2 : 	1.05D-11 	;
+{11901.} 	 C97OOH = C97O + OH : 	J(41)+J(22) 	;
+{11902.} 	 C97O = C98O2 : 	KDEC 	;
+{11903.} 	 C97OH + OH = C97O : 	7.20D-12 	;
+{11904.} 	 C97OH = C97O + HO2 : 	J(22) 	;
+{11905.} 	 C85CO3H + OH = C85CO3 : 	1.02D-11 	;
+{11906.} 	 C85CO3H = C85O2 + OH : 	J(41)+J(22) 	;
+{11907.} 	 C9PAN2 + OH = C85OOH + CO + NO2 : 	6.60D-12 	;
+{11908.} 	 C9PAN2 = C85CO3 + NO2 : 	KBPAN 	;
+{11909.} 	 C85OOH + OH = C85O2 : 	1.29D-11 	;
+{11910.} 	 C85OOH = C85O + OH : 	J(41)+J(22) 	;
+{11911.} 	 C85O = C86O2 : 	KDEC 	;
+{11912.} 	 C719OOH + OH = C719O2 : 	7.06D-11 	;
+{11913.} 	 C719OOH = C719O + OH : 	J(41) 	;
+{11914.} 	 C719NO3 + OH = C716OH + NO2 : 	1.26D-11 	;
+{11915.} 	 C719O = C716OH + HO2 : 	KDEC 	;
+{11916.} 	 C719OH + OH = C719O : 	6.72D-11 	;
+{11917.} 	 C918OOH + OH = C918O2 : 	7.91D-11 	;
+{11918.} 	 C918OOH = C918O + OH : 	J(41)+J(15) 	;
+{11919.} 	 C918NO3 + OH = HCOCH2CHO + HCOCH2CHO + CH3COCH3 + NO2 : 	6.79D-11 	;
+{11920.} 	 C918NO3 = C918O + NO2 : 	J(55)+J(15) 	;
+{11921.} 	 C918O = C919O2 : 	KDEC 	;
+{11922.} 	 C918OH + OH = C918O : 	7.16D-11 	;
+{11923.} 	 C918OH = C918O + HO2 : 	J(15) 	;
+{11924.} 	 C9DCOOH + OH = C9DCCO + OH : 	7.50D-11 	;
+{11925.} 	 C9DCOOH = C9DCO + OH : 	J(41) 	;
+{11926.} 	 C9DCNO3 + OH = C9DCCO + NO2 : 	1.58D-12 	;
+{11927.} 	 C9DCNO3 = C9DCO + NO2 : 	J(54) 	;
+{11928.} 	 C9DCO = C914O2 : 	KDEC 	;
+{11929.} 	 C9DCCO + OH = C914O2 : 	1.32D-12 	;
+{11930.} 	 C9DCOH + OH = C9DCCO + HO2 : 	3.11D-11 	;
+{11931.} 	 C915OOH + OH = C88CHO + OH : 	1.01D-10 	;
+{11932.} 	 C915OOH = C915O + OH : 	J(41)+J(15) 	;
+{11933.} 	 C915NO3 + OH = C88CHO + NO2 : 	6.96D-11 	;
+{11934.} 	 C915NO3 = C915O + NO2 : 	J(54)+J(15) 	;
+{11935.} 	 C915O = C88CHO + HO2 : 	KROSEC*O2 	;
+{11936.} 	 C915O = C916O2 : 	2.70D+14*EXP(-6643/TEMP) 	;
+{11937.} 	 C88CHO + NO3 = C88CO3 + HNO3 : 	KNO3AL*8.5 	;
+{11938.} 	 C88CHO + OH = C88CO3 : 	7.30D-11 	;
+{11939.} 	 C88CHO = C88O2 + HO2 + CO : 	J(15) 	;
+{11940.} 	 C915OH + OH = C88CHO + HO2 : 	8.33D-11 	;
+{11941.} 	 C512CO3 + HO2 = C512CO2H + O3 : 	KAPHO2*0.15 	;
+{11942.} 	 C512CO3 + HO2 = C512CO3H : 	KAPHO2*0.41 	;
+{11943.} 	 C512CO3 + HO2 = C512O2 + OH : 	KAPHO2*0.44 	;
+{11944.} 	 C512CO3 + NO = C512O2 + NO2 : 	KAPNO 	;
+{11945.} 	 C512CO3 + NO2 = C512PAN : 	KFPAN 	;
+{11946.} 	 C512CO3 + NO3 = C512O2 + NO2 : 	KRO2NO3*1.74 	;
+{11947.} 	 C512CO3 = C512CO2H : 	1.00D-11*RO2*0.3 	;
+{11948.} 	 C512CO3 = C512O2 : 	1.00D-11*RO2*0.7 	;
+{11949.} 	 C917OOH + OH = C917O2 : 	1.91D-11 	;
+{11950.} 	 C917OOH = C917O + OH : 	J(41) 	;
+{11951.} 	 C917NO3 + OH = CH3COCH3 + C619CO + NO2 : 	9.97D-12 	;
+{11952.} 	 C917NO3 = C917O + NO2 : 	J(55) 	;
+{11953.} 	 C917O = C619O2 + CH3COCH3 : 	KDEC 	;
+{11954.} 	 C917OH + OH = C917O : 	1.56D-11 	;
+{11955.} 	 C89O2 + HO2 = C89OOH : 	KRO2HO2*0.859 	;
+{11956.} 	 C89O2 + NO = C89NO3 : 	KRO2NO*0.104 	;
+{11957.} 	 C89O2 + NO = C89O + NO2 : 	KRO2NO*0.896 	;
+{11958.} 	 C89O2 + NO3 = C89O + NO2 : 	KRO2NO3 	;
+{11959.} 	 C89O2 = C89O : 	6.70D-15*RO2*0.7 	;
+{11960.} 	 C89O2 = C89OH : 	6.70D-15*RO2*0.3 	;
+{11961.} 	 NLIMALOOH + OH = NLIMALO2 : 	4.28D-11 	;
+{11962.} 	 NLIMALOOH = NLIMALO + OH : 	J(41) 	;
+{11963.} 	 NLIMALO = LMLKET + HCHO + NO2 : 	KDEC 	;
+{11964.} 	 NLIMALOH + OH = LMLKET + HCHO + NO2 : 	3.93D-11 	;
+{11965.} 	 C926O2 + HO2 = C926OOH : 	KRO2HO2*0.890 	;
+{11966.} 	 C926O2 + NO = C926O + NO2 : 	KRO2NO 	;
+{11967.} 	 C926O2 + NO3 = C926O + NO2 : 	KRO2NO3 	;
+{11968.} 	 C926O2 = C926O : 	9.20D-14*RO2*0.7 	;
+{11969.} 	 C926O2 = C926OH : 	9.20D-14*RO2*0.3 	;
+{11970.} 	 C817CO3 + HO2 = C817CO3H : 	KAPHO2*0.41 	;
+{11971.} 	 C817CO3 + HO2 = C817O2 + OH : 	KAPHO2*0.44 	;
+{11972.} 	 C817CO3 + HO2 = KLIMONONIC + O3 : 	KAPHO2*0.15 	;
+{11973.} 	 C817CO3 + NO = C817O2 + NO2 : 	KAPNO 	;
+{11974.} 	 C817CO3 + NO2 = C817PAN : 	KFPAN 	;
+{11975.} 	 C817CO3 + NO3 = C817O2 + NO2 : 	KRO2NO3*1.74 	;
+{11976.} 	 C817CO3 = C817O2 : 	1.00D-11*RO2*0.7 	;
+{11977.} 	 C817CO3 = KLIMONONIC : 	1.00D-11*RO2*0.3 	;
+{11978.} 	 C817O2 + HO2 = C817OOH : 	KRO2HO2*0.859 	;
+{11979.} 	 C817O2 + NO = C817NO3 : 	KRO2NO*0.138 	;
+{11980.} 	 C817O2 + NO = C817O + NO2 : 	KRO2NO*0.862 	;
+{11981.} 	 C817O2 + NO3 = C817O + NO2 : 	KRO2NO3 	;
+{11982.} 	 C817O2 = C817CO : 	1.30D-12*RO2*0.2 	;
+{11983.} 	 C817O2 = C817O : 	1.30D-12*RO2*0.6 	;
+{11984.} 	 C817O2 = C817OH : 	1.30D-12*RO2*0.2 	;
+{11985.} 	 LIMALOOH + OH = LIMALO2 : 	4.65D-11 	;
+{11986.} 	 LIMALOOH = LIMALO + OH : 	J(41) 	;
+{11987.} 	 LIMALNO3 + OH = LMLKET + HCHO + NO2 : 	3.01D-11 	;
+{11988.} 	 LIMALO = LMLKET + HCHO + HO2 : 	KDEC 	;
+{11989.} 	 LIMALOH + OH = LMLKET + HCHO + HO2 : 	4.31D-11 	;
+{11990.} 	 NC826O2 + HO2 = NC826OOH : 	KRO2HO2*0.859 	;
+{11991.} 	 NC826O2 + NO = NC826O + NO2 : 	KRO2NO 	;
+{11992.} 	 NC826O2 + NO3 = NC826O + NO2 : 	KRO2NO3 	;
+{11993.} 	 NC826O2 = NC826O : 	9.20D-14*RO2*0.7 	;
+{11994.} 	 NC826O2 = NC826OH : 	9.20D-14*RO2*0.3 	;
+{11995.} 	 C626CHO + NO3 = C626CO3 + HNO3 : 	KNO3AL*8.5 	;
+{11996.} 	 C626CHO + OH = C626CO3 : 	5.41D-11 	;
+{11997.} 	 C626CHO = C626O2 + CO + HO2 : 	J(15)*2 	;
+{11998.} 	 C735OOA = C735O2 + OH : 	KDEC 	;
+{11999.} 	 C826O2 + HO2 = C826OOH : 	KRO2HO2*0.859 	;
+{12000.} 	 C826O2 + NO = C826NO3 : 	KRO2NO*0.069 	;
+{12001.} 	 C826O2 + NO = C826O + NO2 : 	KRO2NO*0.931 	;
+{12002.} 	 C826O2 + NO3 = C826O + NO2 : 	KRO2NO3 	;
+{12003.} 	 C826O2 = C826O : 	9.20D-14*RO2*0.7 	;
+{12004.} 	 C826O2 = C826OH : 	9.20D-14*RO2*0.3 	;
+{12005.} 	 C729O2 + HO2 = C729OOH : 	KRO2HO2*0.820 	;
+{12006.} 	 C729O2 + NO = C729NO3 : 	KRO2NO*0.111 	;
+{12007.} 	 C729O2 + NO = C729O + NO2 : 	KRO2NO*0.889 	;
+{12008.} 	 C729O2 + NO3 = C729O + NO2 : 	KRO2NO3 	;
+{12009.} 	 C729O2 = C622CHO : 	1.30D-12*RO2*0.4 	;
+{12010.} 	 C729O2 = C729O : 	1.30D-12*RO2*0.6 	;
+{12011.} 	 C729CO2H + OH = C729O2 : 	8.38D-11 	;
+{12012.} 	 C729CO2H = C729O2 + HO2 : 	J(15) 	;
+{12013.} 	 C729CO3H + OH = C729CO3 : 	8.69D-11 	;
+{12014.} 	 C729CO3H = C729O2 + OH : 	J(41)+J(15) 	;
+{12015.} 	 C729PAN + OH = C622CHO + CO + NO2 : 	8.33D-11 	;
+{12016.} 	 C729PAN = C729CO3 + NO2 : 	KBPAN 	;
+{12017.} 	 C822CO2 = C822O2 : 	KDEC*0.2 	;
+{12018.} 	 C822CO2 = C823CO3 : 	KDEC*0.8 	;
+{12019.} 	 C822CO2H + OH = C822CO2 : 	8.47D-11 	;
+{12020.} 	 C822CO3H + OH = C822CO3 : 	8.82D-11 	;
+{12021.} 	 C822CO3H = C822CO2 + OH : 	J(41) 	;
+{12022.} 	 C822PAN + OH = C729CHO + CO + NO2 : 	8.46D-11 	;
+{12023.} 	 C822PAN = C822CO3 + NO2 : 	KBPAN 	;
+{12024.} 	 C924OOH + OH = C924CO + OH : 	8.69D-11 	;
+{12025.} 	 C924OOH = C924O + OH : 	J(41) 	;
+{12026.} 	 C924O = CH3CO3 + C622CHO : 	KDEC 	;
+{12027.} 	 C924CO + OH = C925O2 : 	6.67D-11 	;
+{12028.} 	 C924CO = C622CO3 + CH3CO3 : 	J(35) 	;
+{12029.} 	 C924OH + OH = C924CO + HO2 : 	7.47D-11 	;
+{12030.} 	 C816CO3H + OH = C816CO3 : 	6.28D-11 	;
+{12031.} 	 C816CO3H = C816O2 + OH : 	J(41) 	;
+{12032.} 	 C816PAN + OH = C816CO + CO + NO2 : 	5.92D-11 	;
+{12033.} 	 C816PAN = C816CO3 + NO2 : 	KBPAN 	;
+{12034.} 	 NORLIMOOH + OH = NORLIMO2 : 	3.64D-11 	;
+{12035.} 	 NORLIMOOH = NORLIMO + OH : 	J(41) 	;
+{12036.} 	 NORLIMO = C817CO + HCHO + HO2 : 	KDEC 	;
+{12037.} 	 C816OOH + OH = C816CO + OH : 	8.06D-11 	;
+{12038.} 	 C816OOH = C816O + OH : 	J(22)+J(41) 	;
+{12039.} 	 C816O =  C816CO + HO2 : 	KROSEC*O2 	;
+{12040.} 	 C816O = MACR + MEKAO2 : 	2.00D+14*EXP(-6824/TEMP) 	;
+{12041.} 	 NLMKAOOH + OH = NLMKAO2 : 	1.01D-11 	;
+{12042.} 	 NLMKAOOH = NLMKAO + OH : 	J(41) 	;
+{12043.} 	 NLMKAO = LMLKET + NO2 : 	KDEC 	;
+{12044.} 	 LMKBNO3 + OH = LMKBCO + NO2 : 	6.30D-12 	;
+{12045.} 	 LMLKAO2 + HO2 = LMLKAOOH : 	KRO2HO2*0.914 	;
+{12046.} 	 LMLKAO2 + NO = LMLKAO + NO2 : 	KRO2NO 	;
+{12047.} 	 LMLKAO2 + NO3 = LMLKAO + NO2 : 	KRO2NO3 	;
+{12048.} 	 LMLKAO2 = LMLKACO : 	8.80D-13*RO2*0.2 	;
+{12049.} 	 LMLKAO2 = LMLKAO2 : 	8.80D-13*RO2*0.6 	;
+{12050.} 	 LMLKAO2 = LMLKAOH : 	8.80D-13*RO2*0.2 	;
+{12051.} 	 LMLKBO2 + HO2 = LMLKBOOH : 	KRO2HO2*0.914 	;
+{12052.} 	 LMLKBO2 + NO = LMLKBO + NO2 : 	KRO2NO 	;
+{12053.} 	 LMLKBO2 + NO3 = LMLKBO + NO2 : 	KRO2NO3 	;
+{12054.} 	 LMLKBO2 = LMLKBCO : 	8.80D-13*RO2*0.05 	;
+{12055.} 	 LMLKBO2 = LMLKBO : 	8.80D-13*RO2*0.9 	;
+{12056.} 	 LMLKBO2 = LMLKBOH : 	8.80D-13*RO2*0.05 	;
+{12057.} 	 LMKBOO + CO = LMLKET : 	1.20D-15 	;
+{12058.} 	 LMKBOO + NO = LMLKET + NO2 : 	1.00D-14 	;
+{12059.} 	 LMKBOO + NO2 = LMLKET + NO3 : 	1.00D-15 	;
+{12060.} 	 LMKBOO + SO2 = LMLKET + SO3 : 	7.00D-14 	;
+{12061.} 	 LMKBOO = KLIMONONIC : 	2.00D-18*H2O 	;
+{12062.} 	 LMKBOO = LMLKET + H2O2 : 	1.40D-17*H2O 	;
+{12063.} 	 LMKAOOH + OH = LMKAO2 : 	2.08D-11 	;
+{12064.} 	 LMKAOOH = LMKAO + OH : 	J(41) 	;
+{12065.} 	 LMKANO3 + OH = LMLKET + NO2 : 	9.20D-12 	;
+{12066.} 	 LMKAO = LMLKET + HO2 : 	KDEC 	;
+{12067.} 	 LMKAOH + OH = LMKBCO + HO2 : 	1.74D-11 	;
+{12068.} 	 LMKBOOH + OH = LMKBCO + OH : 	4.76D-11 	;
+{12069.} 	 LMKBOOH = LMKBO + OH : 	J(41) 	;
+{12070.} 	 LMKBO = LMLKET + HO2 : 	KDEC 	;
+{12071.} 	 LMKBCO + OH = C817CO3 : 	1.60D-11 	;
+{12072.} 	 C146OOH + OH = C146CO + OH : 	5.02D-11 	;
+{12073.} 	 C146OOH = C146O + OH : 	J(41) 	;
+{12074.} 	 C146O = C1011CO3 + HCOCH2CHO : 	KDEC 	;
+{12075.} 	 C146CO + OH = C1011CO3 + HCOCH2CHO : 	3.21D-11 	;
+{12076.} 	 C146CO = C1011CO3 + HCOCH2CO3 : 	J(35) 	;
+{12077.} 	 C146OH + OH = C146CO + HO2 : 	3.96D-11 	;
+{12078.} 	 C131CO3H + OH = C131CO3 : 	1.55D-11 	;
+{12079.} 	 C131CO3H = C131O2 + OH : 	J(41) 	;
+{12080.} 	 C131PAN + OH = C131CO + CO + NO2 : 	1.19D-11 	;
+{12081.} 	 C131PAN = C131CO3 + NO2 : 	KBPAN 	;
+{12082.} 	 BCLKAOOH + OH = BCLKACO + OH : 	1.06D-10 	;
+{12083.} 	 BCLKAOOH = BCLKAO + OH : 	J(41) 	;
+{12084.} 	 BCLKAOOH = C116CHO + OH + CH3CO3 : 	J(22) 	;
+{12085.} 	 BCLKAO = C116CHO + CH3CO3 : 	KDEC 	;
+{12086.} 	 BCLKACO + OH = C116CHO + CH3CO3 : 	8.34D-11 	;
+{12087.} 	 BCLKACO = C116CO3 + CH3CO3 : 	J(35) 	;
+{12088.} 	 BCLKAOH + OH = BCLKACO + HO2 : 	9.34D-11 	;
+{12089.} 	 BCLKAOH = C116CHO + CH3CO3 + HO2 : 	J(22) 	;
+{12090.} 	 BCLKBOOH + OH = BCLKBCO + OH : 	4.73D-11 	;
+{12091.} 	 BCLKBOOH = BCLKBO + OH : 	J(41) 	;
+{12092.} 	 BCLKBOOH = C1210CO3 + HCHO + OH : 	J(22) 	;
+{12093.} 	 BCLKBO = C1210CO3 + HCHO : 	KDEC 	;
+{12094.} 	 BCLKBCO + OH = C1210CO3 + CO : 	5.05D-11 	;
+{12095.} 	 BCLKBCO = C1210CO3 + CO + HO2 : 	J(34) 	;
+{12096.} 	 BCLKBOH + OH = BCLKBCO + HO2 : 	4.04D-11 	;
+{12097.} 	 BCLKBOH = C1210CO3 + HCHO + HO2 : 	J(22) 	;
+{12098.} 	 BCLKCOOH + OH = BCLKCCO + OH : 	5.41D-11 	;
+{12099.} 	 BCLKCOOH = BCLKCO + OH : 	J(41) 	;
+{12100.} 	 BCLKCOOH = C131CO + OH + CO + HO2 : 	J(15) 	;
+{12101.} 	 BCLKCO = C131CO + CO + HO2 : 	KDEC 	;
+{12102.} 	 BCLKCCO + OH = C132O2 + CO : 	2.52D-11 	;
+{12103.} 	 BCLKCCO = C132O2 + CO + HO2 : 	J(34) 	;
+{12104.} 	 BCLKCOH + OH = BCLKCCO + HO2 : 	4.19D-11 	;
+{12105.} 	 BCLKCOH = C131CO + HO2 + CO + HO2 : 	J(15) 	;
+{12106.} 	 C131OOH + OH = C131CO + OH : 	2.06D-11 	;
+{12107.} 	 C131OOH = C131O + OH : 	J(41) 	;
+{12108.} 	 C131NO3 + OH = C131CO + NO2 : 	7.10D-12 	;
+{12109.} 	 C131NO3 = C131O + NO2 : 	J(53) 	;
+{12110.} 	 C131O = C132O2 : 	KDEC 	;
+{12111.} 	 C131CO + OH = C132O2 : 	3.21D-11 	;
+{12112.} 	 C131OH + OH = C131CO + HO2 : 	1.15D-11 	;
+{12113.} 	 C147OOH + OH = C147CO + OH : 	3.41D-11 	;
+{12114.} 	 C147OOH = C147O + OH : 	J(41) 	;
+{12115.} 	 C147O = C1011CO3 + HCOCH2CO2H : 	KDEC 	;
+{12116.} 	 C147CO + OH = C1011CO3 + HCOCH2CO2H : 	1.55D-11 	;
+{12117.} 	 C147OH + OH = C147CO + HO2 : 	2.19D-11 	;
+{12118.} 	 C126CO2H + OH = C126O2 : 	6.98D-11 	;
+{12119.} 	 C126CO3H + OH = C126CO3 : 	7.29D-11 	;
+{12120.} 	 C126CO3H = C126O2 + OH : 	J(41) 	;
+{12121.} 	 C126PAN + OH = C126CO + CO + NO2 : 	6.93D-11 	;
+{12122.} 	 C126PAN = C126CO3 + NO2 : 	KBPAN 	;
+{12123.} 	 C136CO2 = C136O2 : 	KDEC*0.1 	;
+{12124.} 	 C136CO2 = C137CO3 : 	KDEC*0.9 	;
+{12125.} 	 C136CO2H + OH = C136CO2 : 	8.47D-11 	;
+{12126.} 	 C136CO3H + OH = C136CO3 : 	8.82D-11 	;
+{12127.} 	 C136CO3H = C136CO2 + OH : 	J(41) 	;
+{12128.} 	 C136PAN + OH = C126CHO + CO + NO2 : 	8.46D-11 	;
+{12129.} 	 C136PAN = C136CO3 + NO2 : 	KBPAN 	;
+{12130.} 	 C148OOH + OH = C148CO + OH : 	5.01D-11 	;
+{12131.} 	 C148OOH = C148O + OH : 	J(41) 	;
+{12132.} 	 C148O = C1013CO3 + HCOCH2CHO : 	KDEC 	;
+{12133.} 	 C148CO + OH = C1013CO3 + HCOCH2CHO : 	3.20D-11 	;
+{12134.} 	 C148CO = C1013CO3 + HCOCH2CO3 : 	J(35) 	;
+{12135.} 	 C148OH + OH = C148CO + HO2 : 	3.95D-11 	;
+{12136.} 	 C1311OOH + OH = C1312CO + OH : 	8.68D-11 	;
+{12137.} 	 C1311OOH = C1311O + OH : 	J(41) 	;
+{12138.} 	 C1311NO3 + OH = C1312CO + NO2 : 	7.92D-11 	;
+{12139.} 	 C1311NO3 = C1311O + NO2 : 	J(55) 	;
+{12140.} 	 C1311O = C1312O2 : 	KDEC 	;
+{12141.} 	 C1311OH + OH = C1312CO + HO2 : 	8.32D-11 	;
+{12142.} 	 NC1313OOH + OH = NC1313O2 : 	6.26D-11 	;
+{12143.} 	 NC1313OOH = NC1313O + OH : 	J(41) 	;
+{12144.} 	 NC1313O = C116CHO + HCHO + NO2 : 	KDEC 	;
+{12145.} 	 NC1313OH + OH = C116CHO + HCHO + NO2 : 	5.91D-11 	;
+{12146.} 	 C116CO3 + HO2 = C116CO2H + O3 : 	KAPHO2*0.15 	;
+{12147.} 	 C116CO3 + HO2 = C116CO3H : 	KAPHO2*0.41 	;
+{12148.} 	 C116CO3 + HO2 = C116O2 + OH : 	KAPHO2*0.44 	;
+{12149.} 	 C116CO3 + NO = C116O2 + NO2 : 	KAPNO 	;
+{12150.} 	 C116CO3 + NO2 = C116PAN : 	KFPAN 	;
+{12151.} 	 C116CO3 + NO3 = C116O2 + NO2 : 	KRO2NO3*1.74 	;
+{12152.} 	 C116CO3 = C116CO2H : 	1.00D-11*RO2*0.3 	;
+{12153.} 	 C116CO3 = C116O2 : 	1.00D-11*RO2*0.7 	;
+{12154.} 	 C116O2 + HO2 = C116OOH : 	KRO2HO2*0.932 	;
+{12155.} 	 C116O2 + NO = C116NO3 : 	KRO2NO*0.173 	;
+{12156.} 	 C116O2 + NO = C116O + NO2 : 	KRO2NO*0.827 	;
+{12157.} 	 C116O2 + NO3 = C116O + NO2 : 	KRO2NO3 	;
+{12158.} 	 C116O2 = C116CO : 	1.30D-12*RO2*0.2 	;
+{12159.} 	 C116O2 = C116O : 	1.30D-12*RO2*0.6 	;
+{12160.} 	 C116O2 = C116OH : 	1.30D-12*RO2*0.2 	;
+{12161.} 	 C126OO + CO = C116CHO : 	1.20D-15 	;
+{12162.} 	 C126OO + NO = C116CHO + NO2 : 	1.00D-14 	;
+{12163.} 	 C126OO + NO2 = C116CHO + NO3 : 	1.00D-15 	;
+{12164.} 	 C126OO + SO2 = C116CHO + SO3 : 	7.00D-14 	;
+{12165.} 	 C126OO = C116CHO + H2O2 : 	1.40D-17*H2O 	;
+{12166.} 	 C129O2 + HO2 = C129OOH : 	KRO2HO2*0.968 	;
+{12167.} 	 C129O2 + NO = C129O + NO2 : 	KRO2NO 	;
+{12168.} 	 C129O2 + NO3 = C129O + NO2 : 	KRO2NO3 	;
+{12169.} 	 C129O2 = C129CO : 	8.80D-13*RO2*0.2 	;
+{12170.} 	 C129O2 = C129O : 	8.80D-13*RO2*0.6 	;
+{12171.} 	 C129O2 = C129OH : 	8.80D-13*RO2*0.2 	;
+{12172.} 	 C1313OOH + OH = C1313O2 : 	6.64D-11 	;
+{12173.} 	 C1313OOH = C1313O + OH : 	J(41) 	;
+{12174.} 	 C1313NO3 + OH = C116CHO + HCHO + NO2 : 	5.59D-11 	;
+{12175.} 	 C1313O = C116CHO + HCHO + HO2 : 	KDEC 	;
+{12176.} 	 C1313OH + OH = C1313O : 	6.29D-11 	;
+{12177.} 	 C126OOH + OH = C126CO + OH : 	7.39D-11 	;
+{12178.} 	 C126OOH = C126O + OH : 	J(41) 	;
+{12179.} 	 C126NO3 + OH = C126CO + NO2 : 	5.82D-11 	;
+{12180.} 	 C126NO3 = C126O + NO2 : 	J(53) 	;
+{12181.} 	 C126O = C127O2 : 	KDEC 	;
+{12182.} 	 C126CO + OH = C127O2 : 	6.85D-11 	;
+{12183.} 	 C126OH + OH = C126CO + HO2 : 	6.91D-11 	;
+{12184.} 	 C144OOH + OH = C144O2 : 	3.64D-11 	;
+{12185.} 	 C144OOH = C144O + OH : 	J(41) 	;
+{12186.} 	 C142OOH + OH = C142O2 : 	8.69D-11 	;
+{12187.} 	 C142OOH = C142O + OH : 	J(41) 	;
+{12188.} 	 C142NO3 + OH = C143CO + NO2 : 	5.82D-11 	;
+{12189.} 	 C142NO3 = C142O + NO2 : 	J(55) 	;
+{12190.} 	 C142O = C143O2 : 	KDEC 	;
+{12191.} 	 C142OH + OH = C142O : 	7.47D-11 	;
+{12192.} 	 NBCKOOH + OH = NBCKO2 : 	9.73D-12 	;
+{12193.} 	 NBCKOOH = NBCKO + OH : 	J(41) 	;
+{12194.} 	 NBCKO = BCLKET + NO2 : 	KDEC 	;
+{12195.} 	 BCKBNO3 + OH = BCKBCO + NO2 : 	6.30D-12 	;
+{12196.} 	 C1210O2 + HO2 = C1210OOH : 	KRO2HO2*0.947 	;
+{12197.} 	 C1210O2 + NO = C1210NO3 : 	KRO2NO*0.176 	;
+{12198.} 	 C1210O2 + NO = C1210O + NO2 : 	KRO2NO*0.824 	;
+{12199.} 	 C1210O2 + NO3 = C1210O + NO2 : 	KRO2NO3 	;
+{12200.} 	 C1210O2 = C116CHO : 	1.30D-12*RO2*0.2 	;
+{12201.} 	 C1210O2 = C1210O : 	1.30D-12*RO2*0.6 	;
+{12202.} 	 C1210O2 = C1210OH : 	1.30D-12*RO2*0.2 	;
+{12203.} 	 BCKAOOH + OH = BCKAO2 : 	2.08D-11 	;
+{12204.} 	 BCKAOOH = BCKAO + OH : 	J(41) 	;
+{12205.} 	 BCKANO3 + OH = BCLKET + NO2 : 	9.20D-12 	;
+{12206.} 	 BCKAO = BCLKET + HO2 : 	KDEC 	;
+{12207.} 	 BCKAOH + OH = BCKBCO + HO2 : 	1.74D-11 	;
+{12208.} 	 BCKBOOH + OH = BCKBCO + OH : 	4.76D-11 	;
+{12209.} 	 BCKBOOH = BCKBO + OH : 	J(41) 	;
+{12210.} 	 BCKBO = BCLKET + HO2 : 	KDEC 	;
+{12211.} 	 BCKBCO + OH = C131CO3 : 	1.73D-11 	;
+{12212.} 	 CH3SO2 + O3 = CH3SO3 : 	3.00D-13 	;
+{12213.} 	 CH3SO2 = CH3O2 + SO2 : 	5.00D+13*EXP(-9673/TEMP) 	;
+{12214.} 	 CH3SO2 = CH3SO2O2 : 	1.03D-16*EXP(1580/TEMP)*O2 	;
+{12215.} 	 CH3SOO2 + HO2 = CH3SO2 + OH : 	KAPHO2*0.44 	;
+{12216.} 	 CH3SOO2 + HO2 = CH3SOOOH : 	KAPHO2*0.41 	;
+{12217.} 	 CH3SOO2 + HO2 = MSIA + O3 : 	KAPHO2*0.15 	;
+{12218.} 	 CH3SOO2 + NO = CH3SO2 + NO2 : 	1.00D-11 	;
+{12219.} 	 CH3SOO2 + NO2 = CH3SOO2NO2 : 	1.20D-12*(TEMP/300)**-0.9 	;
+{12220.} 	 CH3SOO2 + NO3 = CH3SO2 + NO2 : 	KRO2NO3*1.74 	;
+{12221.} 	 CH3SOO2 = CH3SO : 	9.10D+10*EXP(-3560/TEMP) 	;
+{12222.} 	 CH3SOO2 = CH3SO2 : 	1.00D-11*RO2*0.7 	;
+{12223.} 	 CH3SOO2 = MSIA : 	1.00D-11*RO2*0.3 	;
+{12224.} 	 H13C43CO3H = MEKAOH + HO2 + OH : 	J(41) 	;
+{12225.} 	 OH + H13C43CO3H = H13C43CO3 : 	1.27D-11 	;
+{12226.} 	 C5PAN12 = H13C43CO3 + NO2 : 	KBPAN 	;
+{12227.} 	 OH + C5PAN12 = MEKAOH + CO + NO2 : 	9.14D-12 	;
+{12228.} 	 C42CO3H = HOIPRCHO + HO2 + OH : 	J(41) 	;
+{12229.} 	 OH + C42CO3H = C42CO3 : 	2.36D-11 	;
+{12230.} 	 C5PAN13 = C42CO3 + NO2 : 	KBPAN 	;
+{12231.} 	 OH + C5PAN13 = HOIPRCHO + CO + NO2 : 	9.91D-12 	;
+{12232.} 	 HCOCH2CHO = HCOCH2O2 + HO2 + CO : 	J(15)*2 	;
+{12233.} 	 NO3 + HCOCH2CHO = HCOCH2CO3 + HNO3 : 	2*KNO3AL*2.4 	;
+{12234.} 	 OH + HCOCH2CHO = HCOCH2CO3 : 	4.29D-11 	;
+{12235.} 	 C1H4C5CO3 + HO2 = C1H4C5CO2H : 	KAPHO2*0.15 	;
+{12236.} 	 C1H4C5CO3 + HO2 = C1H4C5CO3H : 	KAPHO2*0.41 	;
+{12237.} 	 C1H4C5CO3 + HO2 = CHOC4OHO2 + OH : 	KAPHO2*0.44 	;
+{12238.} 	 C1H4C5CO3 + NO = CHOC4OHO2 + NO2 : 	KAPNO 	;
+{12239.} 	 C1H4C5CO3 + NO2 = C1H4C5PAN : 	KFPAN 	;
+{12240.} 	 C1H4C5CO3 + NO3 = CHOC4OHO2 + NO2 : 	KRO2NO3*1.74 	;
+{12241.} 	 C1H4C5CO3 = C1H4C5CO2H : 	1.00D-11*RO2*0.3 	;
+{12242.} 	 C1H4C5CO3 = CHOC4OHO2 : 	1.00D-11*RO2*0.7 	;
+{12243.} 	 CHOC4OHO2 + HO2 = CHOC4OHOOH : 	KRO2HO2*0.706 	;
+{12244.} 	 CHOC4OHO2 + NO = CHOC4OHO + NO2 : 	KRO2NO 	;
+{12245.} 	 CHOC4OHO2 + NO3 = CHOC4OHO + NO2 : 	KRO2NO3 	;
+{12246.} 	 CHOC4OHO2 = CHOC4OHO : 	1.30D-12*RO2 	;
+{12247.} 	 HOC4CHOO2 + HO2 = HOC4CHOOOH : 	KRO2HO2*0.706 	;
+{12248.} 	 HOC4CHOO2 + NO = HOC4CHOO + NO2 : 	KRO2NO 	;
+{12249.} 	 HOC4CHOO2 + NO3 = HOC4CHOO + NO2 : 	KRO2NO3 	;
+{12250.} 	 HOC4CHOO2 = HOC4CHOO : 	8.80D-13*RO2 	;
+{12251.} 	 C6145COO2 + HO2 = C6145COOOH : 	KRO2HO2*0.770 	;
+{12252.} 	 C6145COO2 + NO = C6145COO + NO2 : 	KRO2NO 	;
+{12253.} 	 C6145COO2 + NO3 = C6145COO + NO2 : 	KRO2NO3 	;
+{12254.} 	 C6145COO2 = C6145COO : 	2.00D-12*RO2 	;
+{12255.} 	 OH + HOC3H6CO2H = HO1C3O2 : 	9.64D-12 	;
+{12256.} 	 HOC3H6CO3H = HO1C3O2 + OH : 	J(41) 	;
+{12257.} 	 OH + HOC3H6CO3H = HOC3H6CO3 : 	1.31D-11 	;
+{12258.} 	 C4PAN1 = HOC3H6CO3 + NO2 : 	KBPAN 	;
+{12259.} 	 OH + C4PAN1 = HOC2H4CHO + CO + NO2 : 	5.92D-12 	;
+{12260.} 	 C3DIOLOOH + OH = C3DIOLO2 : 	2.78D-11 	;
+{12261.} 	 C3DIOLOOH = C3DIOLO + OH : 	J(41) 	;
+{12262.} 	 C3DIOLO = HOCH2CHO + HCHO + HO2 : 	KDEC 	;
+{12263.} 	 C51OOH = C51O + OH : 	J(41)+J(22) 	;
+{12264.} 	 OH + C51OOH = HO1CO24C5 + OH : 	8.69D-11 	;
+{12265.} 	 C51NO3 = C51O + NO2 : 	J(22) 	;
+{12266.} 	 OH + C51NO3 = HO1CO24C5 + NO2 : 	1.55D-12 	;
+{12267.} 	 C51O = CO2C3CHO + HCHO + HO2 : 	2.00D+14*EXP(-6382/TEMP) 	;
+{12268.} 	 OH + C51OH = HO1CO24C5 + OH : 	3.78D-11 	;
+{12269.} 	 CO2C4CO3 + HO2 = CO2C4CO2H + O3 : 	KAPHO2*0.15 	;
+{12270.} 	 CO2C4CO3 + HO2 = CO2C4CO3H : 	KAPHO2*0.41 	;
+{12271.} 	 CO2C4CO3 + HO2 = MEKAO2 + OH : 	KAPHO2*0.44 	;
+{12272.} 	 CO2C4CO3 + NO = MEKAO2 + NO2 : 	KAPNO 	;
+{12273.} 	 CO2C4CO3 + NO2 = C5PAN2 : 	KFPAN 	;
+{12274.} 	 CO2C4CO3 + NO3 = MEKAO2 + NO2 : 	KRO2NO3*1.74 	;
+{12275.} 	 CO2C4CO3 = CO2C4CO2H : 	1.00D-11*0.3*RO2 	;
+{12276.} 	 CO2C4CO3 = MEKAO2 : 	1.00D-11*0.7*RO2 	;
+{12277.} 	 OH + HO2C4CO2H = HO2C4O2 : 	1.11D-11 	;
+{12278.} 	 HO2C4CO3H = HO2C4O2 + OH : 	J(41) 	;
+{12279.} 	 OH + HO2C4CO3H = HO2C4CO3 : 	1.45D-11 	;
+{12280.} 	 C5PAN1 = HO2C4CO3 + NO2 : 	KBPAN 	;
+{12281.} 	 OH + C5PAN1 = HO2C3CHO + CO + NO2 : 	1.04D-11 	;
+{12282.} 	 HOBUT2CO3 + HO2 = HOBUT2CO2H + O3 : 	KAPHO2*0.15 	;
+{12283.} 	 HOBUT2CO3 + HO2 = HOBUT2CO3H : 	KAPHO2*0.41 	;
+{12284.} 	 HOBUT2CO3 + HO2 = NBUTOLBO2 + OH : 	KAPHO2*0.44 	;
+{12285.} 	 HOBUT2CO3 + NO = NBUTOLBO2 + NO2 : 	KAPNO 	;
+{12286.} 	 HOBUT2CO3 + NO2 = C5PAN5 : 	KFPAN 	;
+{12287.} 	 HOBUT2CO3 + NO3 = NBUTOLBO2 + NO2 : 	KRO2NO3*1.74 	;
+{12288.} 	 HOBUT2CO3 = HOBUT2CO2H : 	1.00D-11*0.3*RO2 	;
+{12289.} 	 HOBUT2CO3 = NBUTOLBO2 : 	1.00D-11*0.7*RO2 	;
+{12290.} 	 HOIBUTCO3H = SC4H9O2 + OH : 	J(41) 	;
+{12291.} 	 OH + HOIBUTCO3H = HOIBUTCO3 : 	1.79D-11 	;
+{12292.} 	 C5PAN3 = HOIBUTCO3 + NO2 : 	KBPAN 	;
+{12293.} 	 OH + C5PAN3 = HOIPRCHO + CO + NO2 : 	7.61D-12 	;
+{12294.} 	 C63OOH = C63O + OH : 	J(41)+J(22) 	;
+{12295.} 	 OH + C63OOH = HO1CO24C6 + OH : 	8.80D-11 	;
+{12296.} 	 C63NO3 = C63O + NO2 : 	J(22) 	;
+{12297.} 	 OH + C63NO3 = HO1CO24C6 + NO2 : 	2.54D-12 	;
+{12298.} 	 C63O = CO3C4CHO + HCHO + HO2 : 	2.00D+14*EXP(-6261/TEMP) 	;
+{12299.} 	 C63OH = C63O + HO2 : 	J(22) 	;
+{12300.} 	 OH + C63OH = HO1CO24C6 + HO2 : 	3.90D-11 	;
+{12301.} 	 CO3C5CO3 + HO2 = CO3C5CO2H + O3 : 	KAPHO2*0.15 	;
+{12302.} 	 CO3C5CO3 + HO2 = CO3C5CO3H : 	KAPHO2*0.41 	;
+{12303.} 	 CO3C5CO3 + HO2 = DIEKBO2 + OH : 	KAPHO2*0.44 	;
+{12304.} 	 CO3C5CO3 + NO = DIEKBO2 + NO2 : 	KAPNO 	;
+{12305.} 	 CO3C5CO3 + NO2 = C6PAN2 : 	KFPAN 	;
+{12306.} 	 CO3C5CO3 + NO3 = DIEKBO2 + NO2 : 	KRO2NO3*1.74 	;
+{12307.} 	 CO3C5CO3 = CO3C5CO2H : 	1.00D-11*0.3*RO2 	;
+{12308.} 	 CO3C5CO3 = DIEKBO2 : 	1.00D-11*0.7*RO2 	;
+{12309.} 	 OH + HO3C5CO2H = HO3C5O2 : 	1.72D-11 	;
+{12310.} 	 HO3C5CO3H = HO3C5O2 + OH : 	J(41) 	;
+{12311.} 	 OH + HO3C5CO3H = HO3C5CO3 : 	2.07D-11 	;
+{12312.} 	 C6PAN1 = HO3C5CO3 + NO2 : 	KBPAN 	;
+{12313.} 	 OH + C6PAN1 = HO3C4CHO + CO + NO2 : 	1.35D-11 	;
+{12314.} 	 C64OOH = C64O + OH : 	J(41)+J(22) 	;
+{12315.} 	 OH + C64OOH = C64O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{12316.} 	 OH + C64OOH = C65OOH + HO2 : 	5.29D-12 	;
+{12317.} 	 C64NO3 = C64O + NO2 : 	J(22) 	;
+{12318.} 	 OH + C64NO3 = MGLYOX + ACETOL + NO2 : 	1.06D-12 	;
+{12319.} 	 CO2C54CO3 + HO2 = CO2C54CO2H + O3 : 	KAPHO2*0.15 	;
+{12320.} 	 CO2C54CO3 + HO2 = CO2C54CO3H : 	KAPHO2*0.41 	;
+{12321.} 	 CO2C54CO3 + HO2 = CO2C54O2 + OH : 	KAPHO2*0.44 	;
+{12322.} 	 CO2C54CO3 + NO = CO2C54O2 + NO2 : 	KAPNO 	;
+{12323.} 	 CO2C54CO3 + NO2 = C6PAN5 : 	KFPAN 	;
+{12324.} 	 CO2C54CO3 + NO3 = CO2C54O2 + NO2 : 	KRO2NO3*1.74 	;
+{12325.} 	 CO2C54CO3 = CO2C54CO2H : 	1.00D-11*0.3*RO2 	;
+{12326.} 	 CO2C54CO3 = CO2C54O2 : 	1.00D-11*0.7*RO2 	;
+{12327.} 	 C65O2 + HO2 = C65OOH : 	KRO2HO2*0.770 	;
+{12328.} 	 C65O2 + NO = C65O + NO2 : 	KRO2NO 	;
+{12329.} 	 C65O2 + NO3 = C65O + NO2 : 	KRO2NO3 	;
+{12330.} 	 C65O2 = C65O : 	9.20D-14*0.7*RO2 	;
+{12331.} 	 C65O2 = C65OH : 	9.20D-14*0.3*RO2 	;
+{12332.} 	 HO2C54OOH = HO2C54O + OH : 	J(41) 	;
+{12333.} 	 OH + HO2C54OOH = HO2CO4C5 + OH : 	3.39D-11 	;
+{12334.} 	 HO2C54NO3 = HO2C54O + NO2 : 	J(54) 	;
+{12335.} 	 OH + HO2C54NO3 = HO2CO4C5 + NO2 : 	8.83D-12 	;
+{12336.} 	 HO2C54O = HO24C5O2 : 	3.05D+11*EXP(-4240/TEMP) 	;
+{12337.} 	 HO2C54O = HO2CO4C5 + HO2 : 	KROSEC*O2 	;
+{12338.} 	 OH + HO24C5 = HO2CO4C5 + HO2 : 	1.87D-11 	;
+{12339.} 	 OH + HO2C54CO2H = HO2C54O2 : 	1.52D-11 	;
+{12340.} 	 HO2C54CO3H = HO2C54O2 + OH : 	J(41) 	;
+{12341.} 	 OH + HO2C54CO3H = HO2C54CO3 : 	1.87D-11 	;
+{12342.} 	 C6PAN4 = HO2C54CO3 + NO2 : 	KBPAN 	;
+{12343.} 	 OH + C6PAN4 = HO2CO4C5 + CO + NO2 : 	1.08D-11 	;
+{12344.} 	 C66OOH = C66O + OH : 	J(41) 	;
+{12345.} 	 C66OOH = CH3CHO + HOIPRCO3 + OH : 	J(22) 	;
+{12346.} 	 OH + C66OOH = C66CO + OH : 	2.80D-11 	;
+{12347.} 	 OH + C66OOH = C66O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{12348.} 	 C66O = CH3CHO + HOIPRCO3 : 	KDEC 	;
+{12349.} 	 C66CO = IPRCO3 + CH3CO3 : 	J(35) 	;
+{12350.} 	 OH + C66CO = C23C54CHO + HO2 : 	1.53D-11 	;
+{12351.} 	 C66OH = CH3CHO + HOIPRCO3 + HO2 : 	J(22) 	;
+{12352.} 	 OH + C66OH = C66CO + HO2 : 	2.10D-11 	;
+{12353.} 	 CO3C54CO3H = DIEKAO2 + OH : 	J(41)+J(22) 	;
+{12354.} 	 OH + CO3C54CO3H = CO3C54CO3 : 	6.48D-12 	;
+{12355.} 	 C6PAN6 = CO3C54CO3 + NO2 : 	KBPAN 	;
+{12356.} 	 OH + C6PAN6 = CO23C5 + CO + NO2 : 	2.20D-12 	;
+{12357.} 	 OH + H2M2C4CO2H = HO2M2C4O2 : 	5.82D-12 	;
+{12358.} 	 H2M2C4CO3H = HO2M2C4O2 + OH : 	J(41) 	;
+{12359.} 	 OH + H2M2C4CO3H = H2M2C4CO3 : 	9.42D-12 	;
+{12360.} 	 C6PAN8 = H2M2C4CO3 + NO2 : 	KBPAN 	;
+{12361.} 	 OH + C6PAN8 = H2M2C3CHO + CO + NO2 : 	2.09D-12 	;
+{12362.} 	 C67OOH = C67O + OH : 	J(41)+J(15) 	;
+{12363.} 	 OH + C67OOH = C67CHO + OH : 	1.04D-10 	;
+{12364.} 	 C67NO3 = C67O + NO2 : 	J(15) 	;
+{12365.} 	 OH + C67NO3 = C67CHO + NO2 : 	2.17D-11 	;
+{12366.} 	 C67O = CH3COCH3 + HO2 + HCOCH2CHO : 	2.00D+14*EXP(-4909/TEMP) 	;
+{12367.} 	 C67CHO = C55O2 + HO2 + CO : 	J(15) 	;
+{12368.} 	 NO3 + C67CHO = C67CO3 + HNO3 : 	KNO3AL*8.5 	;
+{12369.} 	 OH + C67CHO = C67CO3 : 	6.76D-11 	;
+{12370.} 	 C67OH = C67O + HO2 : 	J(15) 	;
+{12371.} 	 OH + C67OH = C67CHO + HO2 : 	5.50D-11 	;
+{12372.} 	 C610OOH = C610O + OH : 	J(41)+J(22) 	;
+{12373.} 	 OH + C610OOH = CO24M3C5OH + OH : 	8.84D-11 	;
+{12374.} 	 C610NO3 = C610O + NO2 : 	J(22) 	;
+{12375.} 	 OH + C610NO3 = CO24M3C5OH + NO2 : 	2.09D-12 	;
+{12376.} 	 C610O = HCHO + HO2 + CO2C43CHO : 	2.00D+14*EXP(-6382/TEMP) 	;
+{12377.} 	 C610OH = C610O + HO2 : 	J(22) 	;
+{12378.} 	 OH + C610OH = CO24M3C5OH + HO2 : 	3.93D-11 	;
+{12379.} 	 CO24M3C5OH = HOCH2CO3 + MEKBO2 : 	J(22)*2 	;
+{12380.} 	 OH + CO24M3C5OH = CO24M3CHO + HO2 : 	4.32D-12 	;
+{12381.} 	 CO2M3C4CO3 + HO2 = C51CO2H + O3 : 	KAPHO2*0.15 	;
+{12382.} 	 CO2M3C4CO3 + HO2 = C51CO3H : 	KAPHO2*0.41 	;
+{12383.} 	 CO2M3C4CO3 + HO2 = MIPKBO2 + OH : 	KAPHO2*0.44 	;
+{12384.} 	 CO2M3C4CO3 + NO = MIPKBO2 + NO2 : 	KAPNO 	;
+{12385.} 	 CO2M3C4CO3 + NO2 = C6PAN12 : 	KFPAN 	;
+{12386.} 	 CO2M3C4CO3 + NO3 = MIPKBO2 + NO2 : 	KRO2NO3*1.74 	;
+{12387.} 	 CO2M3C4CO3 = C51CO2H : 	1.00D-11*0.3*RO2 	;
+{12388.} 	 CO2M3C4CO3 = MIPKBO2 : 	1.00D-11*0.7*RO2 	;
+{12389.} 	 OH + H2M3C4CO2H = H2M3C4O2 : 	1.90D-11 	;
+{12390.} 	 H2M3C4CO3H = H2M3C4O2 + OH : 	J(41) 	;
+{12391.} 	 OH + H2M3C4CO3H = H2M3C4CO3 : 	2.26D-11 	;
+{12392.} 	 C6PAN11 = H2M3C4CO3 + NO2 : 	KBPAN 	;
+{12393.} 	 OH + C6PAN11 = HO2C43CHO + CO + NO2 : 	1.20D-11 	;
+{12394.} 	 C68OOH = C68O + OH : 	J(41)+J(15) 	;
+{12395.} 	 OH + C68OOH = C68O2 : 	3.40D-11 	;
+{12396.} 	 C68NO3 = C68O + NO2 : 	J(15) 	;
+{12397.} 	 OH + C68NO3 = GLYOX + MEKAOH + NO2 : 	2.26D-11 	;
+{12398.} 	 C68O = CO2C3CHO + CH3CHO + HO2 : 	2.00D+14*EXP(-4909/TEMP) 	;
+{12399.} 	 C68OH = C68O + HO2 : 	J(15) 	;
+{12400.} 	 OH + C68OH = C68O : 	3.06D-11 	;
+{12401.} 	 C69OOH = C69O + OH : 	J(41)+J(22) 	;
+{12402.} 	 OH + C69OOH = H2M3CO4CHO + OH : 	3.86D-11 	;
+{12403.} 	 C69O = HO2C43CO3 + HCHO : 	KDEC 	;
+{12404.} 	 C69OH = C69O + HO2 : 	J(22) 	;
+{12405.} 	 OH + C69OH = CO24M3C5OH + HO2 : 	3.17D-11 	;
+{12406.} 	 H2M3CO4CHO = HO2C43CO3 + HO2 + CO : 	J(34) 	;
+{12407.} 	 OH + H2M3CO4CHO = HO2C43CO3 : 	4.18D-11 	;
+{12408.} 	 C611OOH = C611O + OH : 	J(41) 	;
+{12409.} 	 C611OOH = CH3CO3 + BIACET + OH : 	J(22)*2.0 	;
+{12410.} 	 OH + C611OOH = C611O2 : 	4.33D-12 	;
+{12411.} 	 C611O = CH3CO3 + BIACET : 	KDEC 	;
+{12412.} 	 C611OH = CH3CO3 + BIACET + HO2 : 	J(22)*2.0 	;
+{12413.} 	 OH + C611OH = C611O : 	8.74D-13 	;
+{12414.} 	 OH + HM33C3CO2H = HM33C3O2 : 	9.84D-12 	;
+{12415.} 	 HM33C3CO3H = HM33C3O2 + OH : 	J(41) 	;
+{12416.} 	 OH + HM33C3CO3H = HM33C3CO3 : 	1.33D-11 	;
+{12417.} 	 C6PAN13 = HM33C3CO3 + NO2 : 	KBPAN 	;
+{12418.} 	 OH + C6PAN13 = MEKAOH + HCHO + CO + NO2 : 	5.91D-12 	;
+{12419.} 	 HM22C3OOH = HM22C3O + OH : 	J(41) 	;
+{12420.} 	 OH + HM22C3OOH = HM22C3O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{12421.} 	 OH + HM22C3OOH = HM22CHO + OH : 	1.41D-11 	;
+{12422.} 	 HM22C3NO3 = HM22C3O + NO2 : 	J(53) 	;
+{12423.} 	 OH + HM22C3NO3 = HM22CHO + NO2 : 	4.54D-12 	;
+{12424.} 	 HM22C3O = HM22CHO + HO2 : 	KROPRIM*O2 	;
+{12425.} 	 OH + HM22C3OH = HM22CHO + HO2 : 	8.65D-12 	;
+{12426.} 	 HM22CHO = IBUTOLBO2 + HO2 + CO : 	J(17) 	;
+{12427.} 	 NO3 + HM22CHO = HM22CO3 + HNO3 : 	KNO3AL*8.5 	;
+{12428.} 	 OH + HM22CHO = HM22CO3 : 	3.47D-11 	;
+{12429.} 	 OH + HM22C3CO2H = HM22C3O2 : 	5.50D-12 	;
+{12430.} 	 HM22C3CO3H = HM22C3O2 + OH : 	J(41) 	;
+{12431.} 	 OH + HM22C3CO3H = HM22C3CO3 : 	8.96D-12 	;
+{12432.} 	 C6PAN14 = HM22C3CO3 + NO2 : 	KBPAN 	;
+{12433.} 	 OH + C6PAN14 = HM22CHO + CO + NO2 : 	4.67D-12 	;
+{12434.} 	 OH + HM2C43CO2H = HM2C43O2 : 	1.35D-11 	;
+{12435.} 	 HM2C43CO3H = HM2C43O2 + OH : 	J(41) 	;
+{12436.} 	 OH + HM2C43CO3H = HM2C43CO3 : 	1.69D-11 	;
+{12437.} 	 C6PAN19 = HM2C43CO3 + NO2 : 	KBPAN 	;
+{12438.} 	 OH + C6PAN19 = MIPKBOH + CO + NO2 : 	7.60D-12 	;
+{12439.} 	 C72O2 + HO2 = C72OOH : 	KRO2HO2*0.820 	;
+{12440.} 	 C72O2 + NO = C72NO3 : 	KRO2NO*0.139 	;
+{12441.} 	 C72O2 + NO = C72O + NO2 : 	KRO2NO*0.861 	;
+{12442.} 	 C72O2 + NO3 = C72O + NO2 : 	KRO2NO3 	;
+{12443.} 	 C72O2 = C72O : 	8.80D-13*0.6*RO2 	;
+{12444.} 	 C72O2 = C72OH : 	8.80D-13*0.2*RO2 	;
+{12445.} 	 C72O2 = HO2CO35C7 : 	8.80D-13*0.2*RO2 	;
+{12446.} 	 CO25C73O2 + HO2 = CO25C73OOH : 	KRO2HO2*0.820 	;
+{12447.} 	 CO25C73O2 + NO = CO25C73O + NO2 : 	KRO2NO 	;
+{12448.} 	 CO25C73O2 + NO3 = CO25C73O + NO2 : 	KRO2NO3 	;
+{12449.} 	 CO25C73O2 = CO235C7 : 	8.80D-13*0.2*RO2 	;
+{12450.} 	 CO25C73O2 = CO25C73O : 	8.80D-13*0.6*RO2 	;
+{12451.} 	 CO25C73O2 = CO25C73OH : 	8.80D-13*0.2*RO2 	;
+{12452.} 	 CO25C74O2 + HO2 = CO25C74OOH : 	KRO2HO2*0.820 	;
+{12453.} 	 CO25C74O2 + NO = CO25C74O + NO2 : 	KRO2NO 	;
+{12454.} 	 CO25C74O2 + NO3 = CO25C74O + NO2 : 	KRO2NO3 	;
+{12455.} 	 CO25C74O2 = CO245C7 : 	8.80D-13*0.2*RO2 	;
+{12456.} 	 CO25C74O2 = CO25C74O : 	8.80D-13*0.6*RO2 	;
+{12457.} 	 CO25C74O2 = CO25C74OH : 	8.80D-13*0.2*RO2 	;
+{12458.} 	 C71OOH = C71O + OH : 	J(41) 	;
+{12459.} 	 C71OOH = HO3C4CO3 + CH3CHO + OH : 	J(22) 	;
+{12460.} 	 OH + C71OOH = C71O2 : 	5.12D-11 	;
+{12461.} 	 C71O = CH3CHO + HO3C4CO3 : 	KDEC 	;
+{12462.} 	 C76OOH = C76O + OH : 	J(41)+J(22) 	;
+{12463.} 	 OH + C76OOH = C76O2 : 	4.56D-11 	;
+{12464.} 	 C76O = HCHO + H3M2C4CO3 : 	KDEC 	;
+{12465.} 	 C77OOH = C77O + OH : 	J(41)+J(22) 	;
+{12466.} 	 OH + C77OOH = C77CO + OH : 	8.31D-11 	;
+{12467.} 	 C77NO3 = C77O + NO2 : 	J(54)+J(22) 	;
+{12468.} 	 OH + C77NO3 = C77CO + NO2 : 	1.09D-12 	;
+{12469.} 	 C77O = CH3COCH3 + CO2C3CHO + HO2 : 	KDEC 	;
+{12470.} 	 C77CO = IPRHOCO3 + CH3COCH2O2 : 	J(22)*2 	;
+{12471.} 	 OH + C77CO = C79O2 : 	1.83D-12 	;
+{12472.} 	 C77OH = C77O + HO2 : 	J(22) 	;
+{12473.} 	 OH + C77OH = C77CO + HO2 : 	3.40D-11 	;
+{12474.} 	 C78OOH = C78O + OH : 	J(41) 	;
+{12475.} 	 C78OOH = H2M2C3CHO + CH3CO3 + OH : 	J(22) 	;
+{12476.} 	 OH + C78OOH = C78CO + OH : 	2.00D-11 	;
+{12477.} 	 OH + C78OOH = C78O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{12478.} 	 C78O = TBUTOLO2 + MGLYOX : 	KDEC 	;
+{12479.} 	 C78CO = H2M2C3CO3 + CH3CO3 : 	J(35) 	;
+{12480.} 	 OH + C78CO = C79O2 : 	1.30D-12 	;
+{12481.} 	 C78OH = H2M2C3CHO + CH3CO3 + HO2 : 	J(22) 	;
+{12482.} 	 OH + C78OH = C78CO + HO2 : 	1.13D-11 	;
+{12483.} 	 C712O2 + HO2 = C712OOH : 	KRO2HO2*0.820 	;
+{12484.} 	 C712O2 + NO = C712NO3 : 	KRO2NO*0.042 	;
+{12485.} 	 C712O2 + NO = C712O + NO2 : 	KRO2NO*0.958 	;
+{12486.} 	 C712O2 + NO3 = C712O + NO2 : 	KRO2NO3 	;
+{12487.} 	 C712O2 = C712O : 	9.20D-14*0.7*RO2 	;
+{12488.} 	 C712O2 = C712OH : 	9.20D-14*0.3*RO2 	;
+{12489.} 	 C713O2 + HO2 = C713OOH : 	KRO2HO2*0.820 	;
+{12490.} 	 C713O2 + NO = C713O + NO2 : 	KRO2NO 	;
+{12491.} 	 C713O2 + NO3 = C713O + NO2 : 	KRO2NO3 	;
+{12492.} 	 C713O2 = C713O : 	9.20D-14*0.7*RO2 	;
+{12493.} 	 C713O2 = C713OH : 	9.20D-14*0.3*RO2 	;
+{12494.} 	 C714O2 + HO2 = C714OOH : 	KRO2HO2*0.820 	;
+{12495.} 	 C714O2 + NO = C714O + NO2 : 	KRO2NO 	;
+{12496.} 	 C714O2 + NO3 = C714O + NO2 : 	KRO2NO3 	;
+{12497.} 	 C714O2 = C714O : 	8.80D-13*0.6*RO2 	;
+{12498.} 	 C714O2 = C714OH : 	8.80D-13*0.2*RO2 	;
+{12499.} 	 C714O2 = M3CO245C6 : 	8.80D-13*0.2*RO2 	;
+{12500.} 	 C711OOH = C711O + OH : 	J(41)+J(22) 	;
+{12501.} 	 OH + C711OOH = C711O2 : 	1.18D-11 	;
+{12502.} 	 C711O = HCHO + H3M3C4CO3 : 	KDEC 	;
+{12503.} 	 H3M3C5OOH = H3M3C5O + OH : 	J(41) 	;
+{12504.} 	 OH + H3M3C5OOH = H3M3C4CHO + OH : 	1.25D-11 	;
+{12505.} 	 OH + H3M3C5OOH = H3M3C5O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{12506.} 	 H3M3C5NO3 = H3M3C5O + NO2 : 	J(53) 	;
+{12507.} 	 OH + H3M3C5NO3 = H3M3C4CHO + NO2 : 	1.90D-12 	;
+{12508.} 	 H3M3C5O = H13M3C5O2 : 	2.58D+11*EXP(-3430/TEMP) 	;
+{12509.} 	 OH + H13M3C5 = H3M3C4CHO + HO2 : 	7.06D-12 	;
+{12510.} 	 H3M3C4CHO = PROL11MO2 + HO2 + CO : 	J(15) 	;
+{12511.} 	 NO3 + H3M3C4CHO = H3M3C4CO3 + HNO3 : 	KNO3AL*8.5 	;
+{12512.} 	 OH + H3M3C4CHO = H3M3C4CO3 : 	2.31D-11 	;
+{12513.} 	 OH + H3M3C5CO2H = H3M3C5O2 : 	7.08D-12 	;
+{12514.} 	 H3M3C5CO3H = H3M3C5O2 + OH : 	J(41) 	;
+{12515.} 	 OH + H3M3C5CO3H = H3M3C5CO3 : 	1.05D-11 	;
+{12516.} 	 C7PAN1 = H3M3C5CO3 + NO2 : 	KBPAN 	;
+{12517.} 	 OH + C7PAN1 = H3M3C4CHO + CO + NO2 : 	3.38D-12 	;
+{12518.} 	 C82OOH = C82O + OH : 	J(41)+J(22) 	;
+{12519.} 	 OH + C82OOH = HO3CO46C8 + OH : 	9.56D-11 	;
+{12520.} 	 C82NO3 = C82O + NO2 : 	J(22) 	;
+{12521.} 	 OH + C82NO3 = HO3CO46C8 + NO2 : 	5.86D-12 	;
+{12522.} 	 C82O = CO3C4CHO + C2H5CHO + HO2 : 	KDEC 	;
+{12523.} 	 HO34CO6C8 = C82O + HO2 : 	J(22) 	;
+{12524.} 	 OH + HO34CO6C8 = HO3CO46C8 + HO2 : 	4.65D-11 	;
+{12525.} 	 HO3CO46C8 = CO3C4CO3 + C2H5CHO + HO2 : 	J(22)*2 	;
+{12526.} 	 OH + HO3CO46C8 = CO346C8 + HO2 : 	1.20D-11 	;
+{12527.} 	 C84O2 + HO2 = C84OOH : 	KRO2HO2*0.859 	;
+{12528.} 	 C84O2 + NO = C84O + NO2 : 	KRO2NO 	;
+{12529.} 	 C84O2 + NO3 = C84O + NO2 : 	KRO2NO3 	;
+{12530.} 	 C84O2 = C84O : 	8.80D-13*0.6*RO2 	;
+{12531.} 	 C84O2 = C84OH : 	8.80D-13*0.2*RO2 	;
+{12532.} 	 C84O2 = CO346C8 : 	8.80D-13*0.2*RO2 	;
+{12533.} 	 C81OOH = C81O + OH : 	J(41)+J(22) 	;
+{12534.} 	 OH + C81OOH = C81O2 : 	5.27D-11 	;
+{12535.} 	 C81O = CH3CHO + HO4C5CO3 : 	KDEC 	;
+{12536.} 	 C93OOH = C93O + OH : 	J(41)+J(22) 	;
+{12537.} 	 OH + C93OOH = C93CO + OH : 	9.70D-11 	;
+{12538.} 	 C93NO3 = C93O + NO2 : 	J(22) 	;
+{12539.} 	 OH + C93NO3 = C93CO + NO2 : 	7.27D-12 	;
+{12540.} 	 C93O = CO3C4CHO + C3H7CHO + HO2 : 	2.00D+14*EXP(-4714/TEMP) 	;
+{12541.} 	 C93CO = CO3C4CO3 + C3H7CHO + HO2 : 	J(22)*2 	;
+{12542.} 	 OH + C93CO = CO356C9 + HO2 : 	1.34D-11 	;
+{12543.} 	 C93OH = C93O + HO2 : 	J(22) 	;
+{12544.} 	 OH + C93OH = C93CO + HO2 : 	4.79D-11 	;
+{12545.} 	 C94O2 + HO2 = C94OOH : 	KRO2HO2*0.890 	;
+{12546.} 	 C94O2 + NO = C94O + NO2 : 	KRO2NO 	;
+{12547.} 	 C94O2 + NO3 = C94O + NO2 : 	KRO2NO3 	;
+{12548.} 	 C94O2 = C94O : 	8.80D-13*0.6*RO2 	;
+{12549.} 	 C94O2 = C94OH : 	8.80D-13*0.2*RO2 	;
+{12550.} 	 C94O2 = CO356C9 : 	8.80D-13*0.2*RO2 	;
+{12551.} 	 C92OOH = C92O + OH : 	J(41)+J(22) 	;
+{12552.} 	 OH + C92OOH = C92O2 : 	5.41D-11 	;
+{12553.} 	 C92O = CH3CHO + HO5C6CO3 : 	KDEC 	;
+{12554.} 	 HO6C7OOH = HO6C7O + OH : 	J(41) 	;
+{12555.} 	 OH + HO6C7OOH = HO6C7O2 : 	2.92D-11 	;
+{12556.} 	 HO6C7O = HCHO + C5H11CHO + HO2 : 	KDEC 	;
+{12557.} 	 C103OOH = C103O + OH : 	J(41)+J(22) 	;
+{12558.} 	 OH + C103OOH = C103CO + OH : 	9.84D-11 	;
+{12559.} 	 C103NO3 = C103O + NO2 : 	J(22) 	;
+{12560.} 	 OH + C103NO3 = C103CO + NO2 : 	8.68D-12 	;
+{12561.} 	 C103O = CO3C4CHO + C4H9CHO + HO2 : 	2.00D+14*EXP(-4714/TEMP) 	;
+{12562.} 	 C103CO = CO3C4CO3 + C4H9CHO + HO2 : 	J(22)*2 	;
+{12563.} 	 OH + C103CO = CO356C10 + HO2 : 	1.54D-11 	;
+{12564.} 	 C103OH = C103O + HO2 : 	J(22) 	;
+{12565.} 	 OH + C103OH = C103CO + HO2 : 	4.93D-11 	;
+{12566.} 	 C104O2 + HO2 = C104OOH : 	KRO2HO2*0.914 	;
+{12567.} 	 C104O2 + NO = C104O + NO2 : 	KRO2NO 	;
+{12568.} 	 C104O2 + NO3 = C104O + NO2 : 	KRO2NO3 	;
+{12569.} 	 C104O2 = C104O : 	8.80D-13*0.6*RO2 	;
+{12570.} 	 C104O2 = C104OH : 	8.80D-13*0.2*RO2 	;
+{12571.} 	 C104O2 = CO356C10 : 	8.80D-13*0.2*RO2 	;
+{12572.} 	 C102OOH = C102O + OH : 	J(41)+J(22) 	;
+{12573.} 	 OH + C102OOH = C102O2 : 	5.55D-11 	;
+{12574.} 	 C102O = CH3CHO + HO6C7CO3 : 	KDEC 	;
+{12575.} 	 HO7C8OOH = HO7C8O + OH : 	J(41) 	;
+{12576.} 	 OH + HO7C8OOH = HO7C8O2 : 	3.06D-11 	;
+{12577.} 	 HO7C8O = HCHO + C6H13CHO + HO2 : 	KDEC 	;
+{12578.} 	 C113OOH = C113O + OH : 	J(41)+J(22) 	;
+{12579.} 	 OH + C113OOH = C113CO + OH : 	9.85D-11 	;
+{12580.} 	 C113NO3 = C113O + NO2 : 	J(22) 	;
+{12581.} 	 OH + C113NO3 = C113CO + NO2 : 	1.01D-11 	;
+{12582.} 	 C113O = CO3C4CHO + C5H11CHO + HO2 : 	2.00D+14*EXP(-4714/TEMP) 	;
+{12583.} 	 C113CO = CO3C4CO3 + C5H11CHO + HO2 : 	J(22)*2 	;
+{12584.} 	 OH + C113CO = CO356C11 + HO2 : 	1.55D-11 	;
+{12585.} 	 C113OH = C113O + HO2 : 	J(22) 	;
+{12586.} 	 OH + C113OH = C113CO + HO2 : 	4.94D-11 	;
+{12587.} 	 C114O2 + HO2 = C114OOH : 	KRO2HO2*0.932 	;
+{12588.} 	 C114O2 + NO = C114O + NO2 : 	KRO2NO 	;
+{12589.} 	 C114O2 + NO3 = C114O + NO2 : 	KRO2NO3 	;
+{12590.} 	 C114O2 = C114O : 	8.80D-13*0.6*RO2 	;
+{12591.} 	 C114O2 = C114OH : 	8.80D-13*0.2*RO2 	;
+{12592.} 	 C114O2 = CO356C11 : 	8.80D-13*0.2*RO2 	;
+{12593.} 	 C112OOH = C112O + OH : 	J(41)+J(22) 	;
+{12594.} 	 OH + C112OOH = C112O2 : 	5.69D-11 	;
+{12595.} 	 C112O = CH3CHO + HO7C8CO3 : 	KDEC 	;
+{12596.} 	 HO8C9OOH = HO8C9O + OH : 	J(41) 	;
+{12597.} 	 OH + HO8C9OOH = HO8C9O2 : 	3.20D-11 	;
+{12598.} 	 HO8C9O = CH3CHO + C6H13CHO + HO2 : 	KDEC 	;
+{12599.} 	 C123OOH = C123O + OH : 	J(41)+J(22) 	;
+{12600.} 	 OH + C123OOH = C123CO + OH : 	9.99D-11 	;
+{12601.} 	 C123NO3 = C123O + NO2 : 	J(22) 	;
+{12602.} 	 OH + C123NO3 = C123CO + NO2 : 	1.15D-11 	;
+{12603.} 	 C123O = CO3C4CHO + C6H13CHO + HO2 : 	2.00D+14*EXP(-4714/TEMP) 	;
+{12604.} 	 C123CO = CO3C4CO3 + C6H13CHO + HO2 : 	J(22)*2 	;
+{12605.} 	 OH + C123CO = CO356C12 + HO2 : 	1.69D-11 	;
+{12606.} 	 C123OH = C123O + HO2 : 	J(22) 	;
+{12607.} 	 OH + C123OH = C123CO + HO2 : 	5.08D-11 	;
+{12608.} 	 C6H13CO3 + HO2 = C6H13CO2H + O3 : 	KAPHO2*0.15 	;
+{12609.} 	 C6H13CO3 + HO2 = C6H13CO3H : 	KAPHO2*0.41 	;
+{12610.} 	 C6H13CO3 + HO2 = HEXAO2 + OH : 	KAPHO2*0.44 	;
+{12611.} 	 C6H13CO3 + NO = HEXAO2 + NO2 : 	KAPNO 	;
+{12612.} 	 C6H13CO3 + NO2 = PHPTN : 	KFPAN 	;
+{12613.} 	 C6H13CO3 + NO3 = HEXAO2 + NO2 : 	KRO2NO3*1.74 	;
+{12614.} 	 C6H13CO3 = C6H13CO2H : 	1.00D-11*0.3*RO2 	;
+{12615.} 	 C6H13CO3 = HEXAO2 : 	1.00D-11*0.7*RO2 	;
+{12616.} 	 C124O2 + HO2 = C124OOH : 	KRO2HO2*0.947 	;
+{12617.} 	 C124O2 + NO = C124O + NO2 : 	KRO2NO 	;
+{12618.} 	 C124O2 + NO3 = C124O + NO2 : 	KRO2NO3 	;
+{12619.} 	 C124O2 = C124O : 	8.80D-13*0.6*RO2 	;
+{12620.} 	 C124O2 = C124OH : 	8.80D-13*0.2*RO2 	;
+{12621.} 	 C124O2 = CO356C12 : 	8.80D-13*0.2*RO2 	;
+{12622.} 	 C122OOH = C122O + OH : 	J(41)+J(22) 	;
+{12623.} 	 OH + C122OOH = C122O2 : 	5.83D-11 	;
+{12624.} 	 C122O = CH3CHO + HO8C9CO3 : 	KDEC 	;
+{12625.} 	 CO1H63OOH + OH = C6COHOCHO + OH : 	4.80D-11 	;
+{12626.} 	 CO1H63OOH = CO1H63O + OH : 	J(41)+J(15) 	;
+{12627.} 	 CO1H63NO3 + OH = C6COHOCHO + NO2 : 	2.71D-11 	;
+{12628.} 	 CO1H63NO3 = CO1H63O + NO2 : 	J(54)+J(15) 	;
+{12629.} 	 CO1H63O = C6DIALOH + HO2 : 	KDEC 	;
+{12630.} 	 CO1H63OH + OH = C6COHOCHO + HO2 : 	3.89D-11 	;
+{12631.} 	 C3NO3COOOH + OH = C3NO3COO2 : 	9.51D-11 	;
+{12632.} 	 C3NO3COOOH = C3NO3COO + OH : 	J(41)+J(56)+J(57) 	;
+{12633.} 	 C3NO3COO = NO3CH2CO3 + HCHO : 	KDEC 	;
+{12634.} 	 CO14O3CHO + NO3 = CO + HCOCH2O2 + HNO3 : 	KNO3AL*8.0 	;
+{12635.} 	 CO14O3CHO + OH = CO + HCOCH2O2 : 	3.44D-11 	;
+{12636.} 	 CO14O3CHO = HO2 + CO + HCOCH2O2 : 	J(34) 	;
+{12637.} 	 NBZFUONE + OH = BZFUCO + NO2 : 	1.16D-12 	;
+{12638.} 	 CO14O3CO2H + OH = HCOCH2O2 : 	2.19D-11 	;
+{12639.} 	 MALANHYO2 + HO2 = MALANHYOOH : 	KRO2HO2*0.625 	;
+{12640.} 	 MALANHYO2 + NO = MALANHYO + NO2 : 	KRO2NO 	;
+{12641.} 	 MALANHYO2 + NO3 = MALANHYO + NO2 : 	KRO2NO3 	;
+{12642.} 	 MALANHYO2 = MALANHY2OH : 	8.80D-13*0.2*RO2 	;
+{12643.} 	 MALANHYO2 = MALANHYO : 	8.80D-13*0.6*RO2 	;
+{12644.} 	 MALANHYO2 = MALNHYOHCO : 	8.80D-13*0.2*RO2 	;
+{12645.} 	 NDNPHENO2 + HO2 = NDNPHENOOH : 	KRO2HO2*0.770 	;
+{12646.} 	 NDNPHENO2 + NO = NDNPHENO + NO2 : 	KRO2NO 	;
+{12647.} 	 NDNPHENO2 + NO3 = NDNPHENO + NO2 : 	KRO2NO3 	;
+{12648.} 	 NDNPHENO2 = NDNPHENO : 	8.00D-13*RO2 	;
+{12649.} 	 DNPHENO2 + HO2 = DNPHENOOH : 	KRO2HO2*0.770 	;
+{12650.} 	 DNPHENO2 + NO = DNPHENO + NO2 : 	KRO2NO 	;
+{12651.} 	 DNPHENO2 + NO3 = DNPHENO + NO2 : 	KRO2NO3 	;
+{12652.} 	 DNPHENO2 = DNPHENO : 	8.00D-13*RO2 	;
+{12653.} 	 NPHEN1OOH + OH = NPHEN1O2 : 	9.00D-13 	;
+{12654.} 	 NPHEN1OOH = NPHEN1O + OH : 	J(41) 	;
+{12655.} 	 NNCATECOOH + OH = NNCATECO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{12656.} 	 NNCATECOOH = NNCATECO + OH : 	J(41) 	;
+{12657.} 	 NNCATECO = NC4DCO2H + HCOCO2H + NO2 : 	KDEC 	;
+{12658.} 	 NCATECOOH + OH = NCATECO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{12659.} 	 NCATECOOH = NCATECO + OH : 	J(41) 	;
+{12660.} 	 NCATECO = NC4DCO2H + HCOCO2H + HO2 : 	KDEC 	;
+{12661.} 	 NBZQOOH + OH = NBZQO2 : 	6.68D-11 	;
+{12662.} 	 NBZQOOH = NBZQO + OH : 	J(41) 	;
+{12663.} 	 NBZQO = C6CO4DB + NO2 : 	KDEC 	;
+{12664.} 	 PBZQOOH + OH = PBZQCO + OH : 	1.23D-10 	;
+{12665.} 	 PBZQOOH = PBZQO + OH : 	J(41) 	;
+{12666.} 	 PBZQO = C5CO2OHCO3 : 	KDEC 	;
+{12667.} 	 PBZQCO + OH = C5CO2OHCO3 : 	6.07D-11 	;
+{12668.} 	 PBZQOH + OH = PBZQCO + HO2 : 	9.18D-11 	;
+{12669.} 	 NPTLQOOH + OH = NPTLQO2 : 	8.56D-11 	;
+{12670.} 	 NPTLQOOH = NPTLQO + OH : 	J(41) 	;
+{12671.} 	 NPTLQO = C7CO4DB + NO2 : 	KDEC 	;
+{12672.} 	 PTLQOOH + OH = PTLQCO + OH : 	1.42D-10 	;
+{12673.} 	 PTLQOOH = PTLQO + OH : 	J(41) 	;
+{12674.} 	 PTLQO = C6CO2OHCO3 : 	KDEC 	;
+{12675.} 	 PTLQCO + OH = C6CO2OHCO3 : 	7.95D-11 	;
+{12676.} 	 PTLQOH + OH = PTLQCO + HO2 : 	1.11D-10 	;
+{12677.} 	 NDNCRESO2 + HO2 = NDNCRESOOH : 	KRO2HO2*0.820 	;
+{12678.} 	 NDNCRESO2 + NO = NDNCRESO + NO2 : 	KRO2NO 	;
+{12679.} 	 NDNCRESO2 + NO3 = NDNCRESO + NO2 : 	KRO2NO3 	;
+{12680.} 	 NDNCRESO2 = NDNCRESO : 	8.00D-13*RO2 	;
+{12681.} 	 DNCRESO2 + HO2 = DNCRESOOH : 	KRO2HO2*0.820 	;
+{12682.} 	 DNCRESO2 + NO = DNCRESO + NO2 : 	KRO2NO 	;
+{12683.} 	 DNCRESO2 + NO3 = DNCRESO + NO2 : 	KRO2NO3 	;
+{12684.} 	 DNCRESO2 = DNCRESO : 	8.00D-13*RO2 	;
+{12685.} 	 NCRES1OOH + OH = NCRES1O2 : 	1.53D-12 	;
+{12686.} 	 NCRES1OOH = NCRES1O + OH : 	J(41) 	;
+{12687.} 	 MNNCATCOOH + OH = MNNCATECO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{12688.} 	 MNNCATCOOH = MNNCATECO + OH : 	J(41) 	;
+{12689.} 	 MNNCATECO = NC4MDCO2H + HCOCO2H + NO2 : 	KDEC 	;
+{12690.} 	 MNCATECOOH + OH = MNCATECO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{12691.} 	 MNCATECOOH = MNCATECO + OH : 	J(41) 	;
+{12692.} 	 MNCATECO = NC4MDCO2H + HCOCO2H + HO2 : 	KDEC 	;
+{12693.} 	 CH3COCO3H + OH = CH3COCO3 : 	3.69D-12 	;
+{12694.} 	 CH3COCO3H = CH3CO3 + OH : 	J(41)+J(35) 	;
+{12695.} 	 C54CO + NO3 = CO + CO + CO + CH3CO3 + HNO3 : 	KNO3AL*5.5 	;
+{12696.} 	 C54CO + OH = CO + CO + CO + CH3CO3 : 	1.72D-11 	;
+{12697.} 	 C54CO = HO2 + CO + CO + CO + CH3CO3 : 	J(34)+J(35)*2 	;
+{12698.} 	 C24O3CCO2H + OH = MECOACETO2 : 	8.76D-13 	;
+{12699.} 	 C6OTRIKET + OH = C6OTKETO2 : 	2.90D-12 	;
+{12700.} 	 C6OTRIKET = CH3CO3 + CH3COCH2O2 : 	J(22) 	;
+{12701.} 	 C6O4KETO2 + HO2 = C6O4KETOOH : 	KRO2HO2 	;
+{12702.} 	 C6O4KETO2 + NO = C6O4KETO + NO2 : 	KRO2NO 	;
+{12703.} 	 C6O4KETO2 + NO3 = C6O4KETO + NO2 : 	KRO2NO3 	;
+{12704.} 	 C6O4KETO2 = C6O4KETO : 	2.00D-12*RO2 	;
+{12705.} 	 NDNOXYOLO2 + HO2 = NDNOXYLOOH : 	KRO2HO2*0.859 	;
+{12706.} 	 NDNOXYOLO2 + NO = NDNOXYOLO + NO2 : 	KRO2NO 	;
+{12707.} 	 NDNOXYOLO2 + NO3 = NDNOXYOLO + NO2 : 	KRO2NO3 	;
+{12708.} 	 NDNOXYOLO2 = NDNOXYOLO : 	8.00D-13*RO2 	;
+{12709.} 	 DNOXYOLO2 + HO2 = DNOXYOLOOH : 	KRO2HO2*0.859 	;
+{12710.} 	 DNOXYOLO2 + NO = DNOXYOLO + NO2 : 	KRO2NO 	;
+{12711.} 	 DNOXYOLO2 + NO3 = DNOXYOLO + NO2 : 	KRO2NO3 	;
+{12712.} 	 DNOXYOLO2 = DNOXYOLO : 	8.00D-13*RO2 	;
+{12713.} 	 NOXYOL1OOH + OH = NOXYOL1O2 : 	1.53D-12 	;
+{12714.} 	 NOXYOL1OOH = NOXYOL1O + OH : 	J(41) 	;
+{12715.} 	 NOXYQOOH + OH = NOXYQO2 : 	1.05D-10 	;
+{12716.} 	 NOXYQOOH = NOXYQO + OH : 	J(41) 	;
+{12717.} 	 NOXYQO = C6CO4M2DB + NO2 : 	KDEC 	;
+{12718.} 	 OXYQOOH + OH = OXYQCO + OH : 	1.61D-10 	;
+{12719.} 	 OXYQOOH = OXYQO + OH : 	J(41) 	;
+{12720.} 	 OXYQO = C5M2OHOCO3 : 	KDEC 	;
+{12721.} 	 OXYQCO + OH = C5M2OHOCO3 : 	9.85D-11 	;
+{12722.} 	 OXYQOH + OH = OXYQCO + HO2 : 	1.30D-10 	;
+{12723.} 	 OXNNCATOOH + OH = OXNNCATCO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{12724.} 	 OXNNCATOOH = OXNNCATCO + OH : 	J(41) 	;
+{12725.} 	 OXNNCATCO = NC4MDCO2H + CH3COCO2H + NO2 : 	KDEC 	;
+{12726.} 	 OXNCATCOOH + OH = OXNCATECO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{12727.} 	 OXNCATCOOH = OXNCATECO + OH : 	J(41) 	;
+{12728.} 	 OXNCATECO = NC4MDCO2H + CH3COCO2H + HO2 : 	KDEC 	;
+{12729.} 	 C6CO3MOH + OH = C4COMOHCO3 : 	6.66D-11 	;
+{12730.} 	 C6CO3MOH = CHOMOHCO3 + CH3CO3 : 	J(35) 	;
+{12731.} 	 C23O3MCHO + NO3 = C23O3MCO3 + HNO3 : 	KNO3AL*8.5 	;
+{12732.} 	 C23O3MCHO + OH = C23O3MCO3 : 	2.68D-11 	;
+{12733.} 	 C23O3MCHO = CO + C23O3MO2 + HO2 : 	J(15) 	;
+{12734.} 	 C23O3CCHO + NO3 = C23O3CCO3 + HNO3 : 	KNO3AL*5.5 	;
+{12735.} 	 C23O3CCHO + OH = C23O3CCO3 : 	2.15D-11 	;
+{12736.} 	 C23O3CCHO = CO + MCOCOMOXO2 + HO2 : 	J(15) 	;
+{12737.} 	 MMALANHYO2 + HO2 = MMALNHYOOH : 	KRO2HO2*0.706 	;
+{12738.} 	 MMALANHYO2 + NO = MMALANHYO + NO2 : 	KRO2NO 	;
+{12739.} 	 MMALANHYO2 + NO3 = MMALANHYO + NO2 : 	KRO2NO3 	;
+{12740.} 	 MMALANHYO2 = MMALANHYO : 	9.20D-14*RO2*0.70 	;
+{12741.} 	 MMALANHYO2 = MMALNHY2OH : 	9.20D-14*RO2*0.30 	;
+{12742.} 	 NDNMXYOLO2 + HO2 = NDNMXYLOOH : 	KRO2HO2*0.859 	;
+{12743.} 	 NDNMXYOLO2 + NO = NDNMXYOLO + NO2 : 	KRO2NO 	;
+{12744.} 	 NDNMXYOLO2 + NO3 = NDNMXYOLO + NO2 : 	KRO2NO3 	;
+{12745.} 	 NDNMXYOLO2 = NDNMXYOLO : 	8.00D-13*RO2 	;
+{12746.} 	 DNMXYOLO2 + HO2 = DNMXYOLOOH : 	KRO2HO2*0.859 	;
+{12747.} 	 DNMXYOLO2 + NO = DNMXYOLO + NO2 : 	KRO2NO 	;
+{12748.} 	 DNMXYOLO2 + NO3 = DNMXYOLO + NO2 : 	KRO2NO3 	;
+{12749.} 	 DNMXYOLO2 = DNMXYOLO : 	8.00D-13*RO2 	;
+{12750.} 	 NMXYOL1OOH + OH = NMXYOL1O2 : 	1.53D-12 	;
+{12751.} 	 NMXYOL1OOH = NMXYOL1O + OH : 	J(41) 	;
+{12752.} 	 NMXYQOOH + OH = NMXYQO2 : 	7.54D-11 	;
+{12753.} 	 NMXYQOOH = NMXYQO + OH : 	J(41) 	;
+{12754.} 	 NMXYQO = C8CO4DB + NO2 : 	KDEC 	;
+{12755.} 	 MXYQOOH + OH = MXYQO2 : 	9.48D-11 	;
+{12756.} 	 MXYQOOH = MXYQO + OH : 	J(41) 	;
+{12757.} 	 MXYQO = C7CO2OHCO3 : 	KDEC 	;
+{12758.} 	 MXYQOH + OH = C7CO2OHCO3 : 	9.13D-11 	;
+{12759.} 	 MXNNCATOOH + OH = MXNNCATCO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{12760.} 	 MXNNCATOOH = MXNNCATCO + OH : 	J(41) 	;
+{12761.} 	 MXNNCATCO = NC4MDCO2H + CH3COCO2H + NO2 : 	KDEC 	;
+{12762.} 	 MXNCATCOOH + OH = MXNCATECO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{12763.} 	 MXNCATCOOH = MXNCATECO + OH : 	J(41) 	;
+{12764.} 	 MXNCATECO = NC4MDCO2H + CH3COCO2H + HO2 : 	KDEC 	;
+{12765.} 	 TL4OHNO2O2 + HO2 = TL4ONO2OOH : 	KRO2HO2*0.820 	;
+{12766.} 	 TL4OHNO2O2 + NO = TL4OHNO2O + NO2 : 	KRO2NO 	;
+{12767.} 	 TL4OHNO2O2 + NO3 = TL4OHNO2O + NO2 : 	KRO2NO3 	;
+{12768.} 	 TL4OHNO2O2 = TL4OHNO2O : 	9.20D-14*RO2 	;
+{12769.} 	 C62O = MGLYOX + CO + CH3CO3 : 	KDEC 	;
+{12770.} 	 NDNPXYOLO2 + HO2 = NDNPXYLOOH : 	KRO2HO2*0.859 	;
+{12771.} 	 NDNPXYOLO2 + NO = NDNPXYOLO + NO2 : 	KRO2NO 	;
+{12772.} 	 NDNPXYOLO2 + NO3 = NDNPXYOLO + NO2 : 	KRO2NO3 	;
+{12773.} 	 NDNPXYOLO2 = NDNPXYOLO : 	8.00D-13*RO2 	;
+{12774.} 	 DNPXYOLO2 + HO2 = DNPXYOLOOH : 	KRO2HO2*0.859 	;
+{12775.} 	 DNPXYOLO2 + NO = DNPXYOLO + NO2 : 	KRO2NO 	;
+{12776.} 	 DNPXYOLO2 + NO3 = DNPXYOLO + NO2 : 	KRO2NO3 	;
+{12777.} 	 DNPXYOLO2 = DNPXYOLO : 	8.00D-13*RO2 	;
+{12778.} 	 NPXYOL1OOH + OH = NPXYOL1O2 : 	1.53D-12 	;
+{12779.} 	 NPXYOL1OOH = NPXYOL1O + OH : 	J(41) 	;
+{12780.} 	 NPXYQOOH + OH = NPXYQO2 : 	7.54D-11 	;
+{12781.} 	 NPXYQOOH = NPXYQO + OH : 	J(41) 	;
+{12782.} 	 NPXYQO = CO4DBC8 + NO2 : 	KDEC 	;
+{12783.} 	 PXYQOOH + OH = PXYQO2 : 	9.48D-11 	;
+{12784.} 	 PXYQOOH = PXYQO + OH : 	J(41) 	;
+{12785.} 	 PXYQO = C6MOHCOCO3 : 	KDEC 	;
+{12786.} 	 PXYQOH + OH = C6MOHCOCO3 : 	9.13D-11 	;
+{12787.} 	 PXNNCATOOH + OH = PXNNCATCO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{12788.} 	 PXNNCATOOH = PXNNCATCO + OH : 	J(41) 	;
+{12789.} 	 PXNNCATCO = NC4MDCO2H + CH3COCO2H + NO2 : 	KDEC 	;
+{12790.} 	 PXNCATCOOH + OH = PXNCATECO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{12791.} 	 PXNCATCOOH = PXNCATECO + OH : 	J(41) 	;
+{12792.} 	 PXNCATECO = NC4MDCO2H + CH3COCO2H + HO2 : 	KDEC 	;
+{12793.} 	 NDNEBNZLO2 + HO2 = NDNEBZLOOH : 	KRO2HO2*0.859 	;
+{12794.} 	 NDNEBNZLO2 + NO = NDNEBNZLO + NO2 : 	KRO2NO 	;
+{12795.} 	 NDNEBNZLO2 + NO3 = NDNEBNZLO + NO2 : 	KRO2NO3 	;
+{12796.} 	 NDNEBNZLO2 = NDNEBNZLO : 	8.00D-13*RO2 	;
+{12797.} 	 DNEBNZLO2 + HO2 = DNEBNZLOOH : 	KRO2HO2*0.859 	;
+{12798.} 	 DNEBNZLO2 + NO = DNEBNZLO + NO2 : 	KRO2NO 	;
+{12799.} 	 DNEBNZLO2 + NO3 = DNEBNZLO + NO2 : 	KRO2NO3 	;
+{12800.} 	 DNEBNZLO2 = DNEBNZLO : 	8.00D-13*RO2 	;
+{12801.} 	 NEBNZ1OOH + OH = NEBNZ1O2 : 	1.53D-12 	;
+{12802.} 	 NEBNZ1OOH = NEBNZ1O + OH : 	J(41) 	;
+{12803.} 	 NPEBQOOH + OH = NPEBQO2 : 	8.74D-11 	;
+{12804.} 	 NPEBQOOH = NPEBQO + OH : 	J(41) 	;
+{12805.} 	 NPEBQO = C6ETCO4DB + NO2 : 	KDEC 	;
+{12806.} 	 PEBQOOH + OH = PEBQCO + OH : 	1.46D-10 	;
+{12807.} 	 PEBQOOH = PEBQO + OH : 	J(41) 	;
+{12808.} 	 PEBQO = C7OHCO2CO3 : 	KDEC 	;
+{12809.} 	 PEBQCO + OH = C7OHCO2CO3 : 	8.32D-11 	;
+{12810.} 	 PEBQOH + OH = PEBQCO + HO2 : 	1.15D-10 	;
+{12811.} 	 ENNCATCOOH + OH = ENNCATECO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{12812.} 	 ENNCATCOOH = ENNCATECO + OH : 	J(41) 	;
+{12813.} 	 ENNCATECO = NC4EDCO2H + HCOCO2H + NO2 : 	KDEC 	;
+{12814.} 	 ENCATECOOH + OH = ENCATECO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{12815.} 	 ENCATECOOH = ENCATECO + OH : 	J(41) 	;
+{12816.} 	 ENCATECO = NC4EDCO2H + HCOCO2H + HO2 : 	KDEC 	;
+{12817.} 	 ECO4 + OH = ECO3CO3 : 	3.14D-11 	;
+{12818.} 	 ECO4 = C2H5CO3 + CO + CO + HO2 + CO : 	J(35) 	;
+{12819.} 	 ECO4 = HCOCO3 + C2H5CO3 + CO : 	J(35)*2 	;
+{12820.} 	 C14O3ECHO + NO3 = CO + BUTALAO2 + HNO3 : 	KNO3AL*8.5 	;
+{12821.} 	 C14O3ECHO + OH = CO + BUTALAO2 : 	4.35D-11 	;
+{12822.} 	 C14O3ECHO = HO2 + CO + BUTALAO2 : 	J(34) 	;
+{12823.} 	 NEBFUONE + OH = EBFUCO + NO2 : 	6.73D-12 	;
+{12824.} 	 CO3H4CO3H + OH = CO3H4CO3 : 	8.68D-12 	;
+{12825.} 	 CO3H4CO3H = C2H5CO3 + HCOCO3H + HO2 : 	J(22) 	;
+{12826.} 	 CO3H4CO3H = EGLYOX + OH + HO2 : 	J(41) 	;
+{12827.} 	 CO3H4PAN + OH = EGLYOX + CO + NO2 : 	2.79D-12 	;
+{12828.} 	 CO3H4PAN = CO3H4CO3 + NO2 : 	KBPAN 	;
+{12829.} 	 PHCOCOCOOH + OH = PHCOCOCO2 : 	4.66D-12 	;
+{12830.} 	 PHCOCOCOOH = PHCOCOCO + OH : 	J(41) 	;
+{12831.} 	 PHCOCOCO = C6H5CO3 + CO + HCHO : 	KDEC 	;
+{12832.} 	 NDNPBNZLO2 + HO2 = NDNPBZLOOH : 	KRO2HO2*0.90 	;
+{12833.} 	 NDNPBNZLO2 + NO = NDNPBNZLO + NO2 : 	KRO2NO 	;
+{12834.} 	 NDNPBNZLO2 + NO3 = NDNPBNZLO + NO2 : 	KRO2NO3 	;
+{12835.} 	 NDNPBNZLO2 = NDNPBNZLO : 	8.00D-13*RO2 	;
+{12836.} 	 DNPBNZLO2 + HO2 = DNPBNZLOOH : 	KRO2HO2*0.90 	;
+{12837.} 	 DNPBNZLO2 + NO = DNPBNZLO + NO2 : 	KRO2NO 	;
+{12838.} 	 DNPBNZLO2 + NO3 = DNPBNZLO + NO2 : 	KRO2NO3 	;
+{12839.} 	 DNPBNZLO2 = DNPBNZLO : 	8.00D-13*RO2 	;
+{12840.} 	 NPBNZ1OOH + OH = NPBNZ1O2 : 	1.53D-12 	;
+{12841.} 	 NPBNZ1OOH = NPBNZ1O + OH : 	J(41) 	;
+{12842.} 	 NPPRBQOOH + OH = NPPRBQO2 : 	8.89D-11 	;
+{12843.} 	 NPPRBQOOH = NPPRBQO + OH : 	J(41) 	;
+{12844.} 	 NPPRBQO = C6PRCO4DB + NO2 : 	KDEC 	;
+{12845.} 	 PPRBQOOH + OH = PPRBQCO + OH : 	1.43D-10 	;
+{12846.} 	 PPRBQOOH = PPRBQO + OH : 	J(41) 	;
+{12847.} 	 PPRBQO = C8OHCO2CO3 : 	KDEC 	;
+{12848.} 	 PPRBQCO + OH = C8OHCO2CO3 : 	8.44D-11 	;
+{12849.} 	 PPRBQOH + OH = PPRBQCO + HO2 : 	1.15D-10 	;
+{12850.} 	 PNNCATCOOH + OH = PNNCATECO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{12851.} 	 PNNCATCOOH = PNNCATECO + OH : 	J(41) 	;
+{12852.} 	 PNNCATECO = NC4PDCO2H + HCOCO2H + NO2 : 	KDEC 	;
+{12853.} 	 PNCATECOOH + OH = PNCATECO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{12854.} 	 PNCATECOOH = PNCATECO + OH : 	J(41) 	;
+{12855.} 	 PNCATECO = NC4PDCO2H + HCOCO2H + HO2 : 	KDEC 	;
+{12856.} 	 C61CO3 + HO2 = C61CO3H : 	KAPHO2*0.56 	;
+{12857.} 	 C61CO3 + HO2 = CO45C5CHO + HO2 + OH : 	KAPHO2*0.44 	;
+{12858.} 	 C61CO3 + NO = CO45C5CHO + HO2 + NO2 : 	KAPNO 	;
+{12859.} 	 C61CO3 + NO2 = C61CPAN : 	KFPAN 	;
+{12860.} 	 C61CO3 + NO3 = CO45C5CHO + HO2 + NO2 : 	KRO2NO3*1.74 	;
+{12861.} 	 C61CO3 = CO45C5CHO + HO2 : 	1.00D-11*RO2 	;
+{12862.} 	 CO45C5CHO + NO3 = C3H7CO3 + CO + CO + HNO3 : 	KNO3AL*5.5 	;
+{12863.} 	 CO45C5CHO + OH = C3H7CO3 + CO + CO : 	1.67D-11 	;
+{12864.} 	 CO45C5CHO = C3H7CO3 + CO + CO + HO2 : 	J(35)+J(34) 	;
+{12865.} 	 C14O3PCHO + NO3 = CO + C4CHOAO2 + HNO3 : 	KNO3AL*8.5 	;
+{12866.} 	 C14O3PCHO + OH = CO + C4CHOAO2 : 	4.55D-11 	;
+{12867.} 	 C14O3PCHO = HO2 + CO + C4CHOAO2 : 	J(34) 	;
+{12868.} 	 NPBFUONE + OH = PBFUCO + NO2 : 	8.14D-12 	;
+{12869.} 	 C5O5OHCO3H + OH = C5O45OHCO3 : 	1.22D-11 	;
+{12870.} 	 C5O5OHCO3H = C3H7CO3 + HCOCO3H + HO2 : 	J(22) 	;
+{12871.} 	 C5O5OHCO3H = PGLYOX + HO2 + CO : 	J(41) 	;
+{12872.} 	 C5O45OHPAN + OH = PGLYOX + CO + NO2 : 	8.99D-12 	;
+{12873.} 	 C5O45OHPAN = C5O45OHCO3 + NO2 : 	KBPAN 	;
+{12874.} 	 NDNIPBZLO2 + HO2 = NDNIPBLOOH : 	KRO2HO2*0.90 	;
+{12875.} 	 NDNIPBZLO2 + NO = NDNIPBZLO + NO2 : 	KRO2NO 	;
+{12876.} 	 NDNIPBZLO2 + NO3 = NDNIPBZLO + NO2 : 	KRO2NO3 	;
+{12877.} 	 NDNIPBZLO2 = NDNIPBZLO : 	8.00D-13*RO2 	;
+{12878.} 	 DNIPBNZLO2 + HO2 = DNIPBZLOOH : 	KRO2HO2*0.90 	;
+{12879.} 	 DNIPBNZLO2 + NO = DNIPBNZLO + NO2 : 	KRO2NO 	;
+{12880.} 	 DNIPBNZLO2 + NO3 = DNIPBNZLO + NO2 : 	KRO2NO3 	;
+{12881.} 	 DNIPBNZLO2 = DNIPBNZLO : 	8.00D-13*RO2 	;
+{12882.} 	 NIPBNZ1OOH + OH = NIPBNZ1O2 : 	1.53D-12 	;
+{12883.} 	 NIPBNZ1OOH = NIPBNZ1O + OH : 	J(41) 	;
+{12884.} 	 NIPRBQOOH + OH = NIPRBQO2 : 	8.95D-11 	;
+{12885.} 	 NIPRBQOOH = NIPRBQO + OH : 	J(41) 	;
+{12886.} 	 NIPRBQO = C6IPRCO4DB + NO2 : 	KDEC 	;
+{12887.} 	 IPRBQOOH + OH = IPRBQCO + OH : 	1.46D-10 	;
+{12888.} 	 IPRBQOOH = IPRBQO + OH : 	J(41) 	;
+{12889.} 	 IPRBQO = C8OHCO2CO3 : 	KDEC 	;
+{12890.} 	 IPRBQCO + OH = C8CO2OHCO3 : 	8.34D-11 	;
+{12891.} 	 IPRBQOH + OH = IPRBQCO + HO2 : 	1.14D-10 	;
+{12892.} 	 IPNNCATOOH + OH = IPNNCATCO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{12893.} 	 IPNNCATOOH = IPNNCATCO + OH : 	J(41) 	;
+{12894.} 	 IPNNCATCO = NC4IPDCO2H + HCOCO2H + NO2 : 	KDEC 	;
+{12895.} 	 IPNCATCOOH + OH = IPNCATECO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{12896.} 	 IPNCATCOOH = IPNCATECO + OH : 	J(41) 	;
+{12897.} 	 IPNCATECO = NC4IPDCO2H + HCOCO2H + HO2 : 	KDEC 	;
+{12898.} 	 C62CO3 + HO2 = C45IC5CHO + HO2 + OH : 	KAPHO2*0.44 	;
+{12899.} 	 C62CO3 + HO2 = C62CO3H : 	KAPHO2*0.56 	;
+{12900.} 	 C62CO3 + NO = C45IC5CHO + HO2 + NO2 : 	KAPNO 	;
+{12901.} 	 C62CO3 + NO2 = C62CPAN : 	KFPAN 	;
+{12902.} 	 C62CO3 + NO3 = C45IC5CHO + HO2 + NO2 : 	KRO2NO3*1.74 	;
+{12903.} 	 C62CO3 = C45IC5CHO + HO2 : 	1.00D-11*RO2 	;
+{12904.} 	 C45IC5CHO + NO3 = IPRCO3 + CO + CO + HNO3 : 	KNO3AL*8.5 	;
+{12905.} 	 C45IC5CHO + OH = IPRCO3 + CO + CO : 	1.47D-11 	;
+{12906.} 	 C45IC5CHO = IPRCO3 + CO + CO + HO2 : 	J(35)+J(34) 	;
+{12907.} 	 C14O3IPCHO + NO3 = CO + IC4CHOAO2 + HNO3 : 	KNO3AL*8.5 	;
+{12908.} 	 C14O3IPCHO + OH = CO + IC4CHOAO2 : 	4.76D-11 	;
+{12909.} 	 C14O3IPCHO = HO2 + CO + IC4CHOAO2 : 	J(34) 	;
+{12910.} 	 NIPBFUONE + OH = IPBFUCO + NO2 : 	8.13D-12 	;
+{12911.} 	 C4MOHOCO3H + OH = C4MOHOCO3 : 	1.01D-11 	;
+{12912.} 	 C4MOHOCO3H = C3H7CO3 + HCOCO3H + HO2 : 	J(22) 	;
+{12913.} 	 C4MOHOCO3H = IPRGLYOX + HO2 + CO + OH : 	J(41) 	;
+{12914.} 	 C4MOHOPAN + OH = IPRGLYOX + CO + NO2 : 	6.84D-12 	;
+{12915.} 	 C4MOHOPAN = C4MOHOCO3 + NO2 : 	KBPAN 	;
+{12916.} 	 DMMALANHY + NO3 = NDMMALYO2 : 	1.00D-12 	;
+{12917.} 	 DMMALANHY + OH = DMMALYO2 : 	7.42D-12 	;
+{12918.} 	 NDNT123LO2 + HO2 = NDNT123OOH : 	KRO2HO2*0.90 	;
+{12919.} 	 NDNT123LO2 + NO = NDNT123LO + NO2 : 	KRO2NO 	;
+{12920.} 	 NDNT123LO2 + NO3 = NDNT123LO + NO2 : 	KRO2NO3 	;
+{12921.} 	 NDNT123LO2 = NDNT123LO : 	8.00D-13*RO2 	;
+{12922.} 	 DNT123LO2 + HO2 = DNT123LOOH : 	KRO2HO2*0.90 	;
+{12923.} 	 DNT123LO2 + NO = DNT123LO + NO2 : 	KRO2NO 	;
+{12924.} 	 DNT123LO2 + NO3 = DNT123LO + NO2 : 	KRO2NO3 	;
+{12925.} 	 DNT123LO2 = DNT123LO : 	8.00D-13*RO2 	;
+{12926.} 	 NT123L1OOH + OH = NT123L1O2 : 	1.53D-12 	;
+{12927.} 	 NT123L1OOH = NT123L1O + OH : 	J(41) 	;
+{12928.} 	 T123NNCOOH + OH = T123NNCTO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{12929.} 	 T123NNCOOH = T123NNCTO + OH : 	J(41) 	;
+{12930.} 	 T123NNCTO = NC5MDCO2H + CH3COCO2H + NO2 : 	KDEC 	;
+{12931.} 	 T123NCTOOH + OH = T123NCATO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{12932.} 	 T123NCTOOH = T123NCATO + OH : 	J(41) 	;
+{12933.} 	 T123NCATO = NC5MDCO2H + CH3COCO2H + HO2 : 	KDEC 	;
+{12934.} 	 MC6OTRIKET + OH = MC6OTKETO2 : 	6.20D-12 	;
+{12935.} 	 MC6OTRIKET = CH3CO3 + MEKBO2 : 	J(22) 	;
+{12936.} 	 TM124NO2O2 + HO2 = TM124NOOH : 	KRO2HO2*0.859 	;
+{12937.} 	 TM124NO2O2 + NO = TM124NO2O + NO2 : 	KRO2NO 	;
+{12938.} 	 TM124NO2O2 + NO3 = TM124NO2O + NO2 : 	KRO2NO3 	;
+{12939.} 	 TM124NO2O2 = TM124NO2O : 	9.20D-14*RO2 	;
+{12940.} 	 NDNT124LO2 + HO2 = NDNT124OOH : 	KRO2HO2*0.90 	;
+{12941.} 	 NDNT124LO2 + NO = NDNT124LO + NO2 : 	KRO2NO 	;
+{12942.} 	 NDNT124LO2 + NO3 = NDNT124LO + NO2 : 	KRO2NO3 	;
+{12943.} 	 NDNT124LO2 = NDNT124LO : 	8.00D-13*RO2 	;
+{12944.} 	 DNT124LO2 + HO2 = DNT124LOOH : 	KRO2HO2*0.90 	;
+{12945.} 	 DNT124LO2 + NO = DNT124LO + NO2 : 	KRO2NO 	;
+{12946.} 	 DNT124LO2 + NO3 = DNT124LO + NO2 : 	KRO2NO3 	;
+{12947.} 	 DNT124LO2 = DNT124LO : 	8.00D-13*RO2 	;
+{12948.} 	 NT124L1OOH + OH = NT124L1O2 : 	1.53D-12 	;
+{12949.} 	 NT124L1OOH = NT124L1O + OH : 	J(41) 	;
+{12950.} 	 NTM124QOOH + OH = NTM124QO2 : 	9.43D-11 	;
+{12951.} 	 NTM124QOOH = NTM124QO + OH : 	J(41) 	;
+{12952.} 	 NTM124QO = CO4DBC9 + NO2 : 	KDEC 	;
+{12953.} 	 TM124QOOH + OH = TM124QO2 : 	1.14D-10 	;
+{12954.} 	 TM124QOOH = TM124QO + OH : 	J(41) 	;
+{12955.} 	 TM124QO = C7MOHCOCO3 : 	KDEC 	;
+{12956.} 	 TM124QOH + OH = C7MOHCOCO3 : 	1.10D-10 	;
+{12957.} 	 T124NNCOOH + OH = T124NNCTO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{12958.} 	 T124NNCOOH = T124NNCTO + OH : 	J(41) 	;
+{12959.} 	 T124NNCTO = NC5MDCO2H + CH3COCO2H + NO2 : 	KDEC 	;
+{12960.} 	 T124NCTOOH + OH = T124NCATO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{12961.} 	 T124NCTOOH = T124NCATO + OH : 	J(41) 	;
+{12962.} 	 T124NCATO = NC5MDCO2H + CH3COCO2H + HO2 : 	KDEC 	;
+{12963.} 	 MXYOHNO2O2 + HO2 = MXOHNO2OOH : 	KRO2HO2*0.859 	;
+{12964.} 	 MXYOHNO2O2 + NO = MXYOHNO2O + NO2 : 	KRO2NO 	;
+{12965.} 	 MXYOHNO2O2 + NO3 = MXYOHNO2O + NO2 : 	KRO2NO3 	;
+{12966.} 	 MXYOHNO2O2 = MXYOHNO2O : 	9.20D-14*RO2 	;
+{12967.} 	 C5CO234OOH + OH = C5CO234O2 : 	9.59D-12 	;
+{12968.} 	 C5CO234OOH = C5CO234O + OH : 	J(41)+J(35) 	;
+{12969.} 	 C5CO234O = CH3CO3 + HCHO + CO + CO : 	KDEC 	;
+{12970.} 	 NDNOETOLO2 + HO2 = NDNOETLOOH : 	KRO2HO2*0.90 	;
+{12971.} 	 NDNOETOLO2 + NO = NDNOETOLO + NO2 : 	KRO2NO 	;
+{12972.} 	 NDNOETOLO2 + NO3 = NDNOETOLO + NO2 : 	KRO2NO3 	;
+{12973.} 	 NDNOETOLO2 = NDNOETOLO : 	8.00D-13*RO2 	;
+{12974.} 	 DNOETOLO2 + HO2 = DNOETOLOOH : 	KRO2HO2*0.90 	;
+{12975.} 	 DNOETOLO2 + NO = DNOETOLO + NO2 : 	KRO2NO 	;
+{12976.} 	 DNOETOLO2 + NO3 = DNOETOLO + NO2 : 	KRO2NO3 	;
+{12977.} 	 DNOETOLO2 = DNOETOLO : 	8.00D-13*RO2 	;
+{12978.} 	 NOETOL1OOH + OH = NOETOL1O2 : 	1.53D-12 	;
+{12979.} 	 NOETOL1OOH = NOETOL1O + OH : 	J(41) 	;
+{12980.} 	 NOETLQOOH + OH = NOETLQO2 : 	1.06D-10 	;
+{12981.} 	 NOETLQOOH = NOETLQO + OH : 	J(41) 	;
+{12982.} 	 NOETLQO = C6CO4MEDB + NO2 : 	KDEC 	;
+{12983.} 	 OETLQOOH + OH = OETLQCO + OH : 	1.63D-10 	;
+{12984.} 	 OETLQOOH = OETLQO + OH : 	J(41) 	;
+{12985.} 	 OETLQO = C5MEJCO3 : 	KDEC 	;
+{12986.} 	 OETLQCO + OH = C5MEJCO3 : 	1.00D-10 	;
+{12987.} 	 OETLQOH + OH = OETLQCO + HO2 : 	1.31D-10 	;
+{12988.} 	 OTNNCATOOH + OH = OTNNCATCO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{12989.} 	 OTNNCATOOH = OTNNCATCO + OH : 	J(41) 	;
+{12990.} 	 OTNNCATCO = NC4MDCO2H + ECOCO2H + NO2 : 	KDEC 	;
+{12991.} 	 OTNCATCOOH + OH = OTNCATECO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{12992.} 	 OTNCATCOOH = OTNCATECO + OH : 	J(41) 	;
+{12993.} 	 OTNCATECO = NC4MDCO2H + ECOCO2H + HO2 : 	KDEC 	;
+{12994.} 	 NDNMETOLO2 + HO2 = NDNMETLOOH : 	KRO2HO2*0.90 	;
+{12995.} 	 NDNMETOLO2 + NO = NDNMETOLO + NO2 : 	KRO2NO 	;
+{12996.} 	 NDNMETOLO2 + NO3 = NDNMETOLO + NO2 : 	KRO2NO3 	;
+{12997.} 	 NDNMETOLO2 = NDNMETOLO : 	8.00D-13*RO2 	;
+{12998.} 	 DNMETOLO2 + HO2 = DNMETOLOOH : 	KRO2HO2*0.90 	;
+{12999.} 	 DNMETOLO2 + NO = DNMETOLO + NO2 : 	KRO2NO 	;
+{13000.} 	 DNMETOLO2 + NO3 = DNMETOLO + NO2 : 	KRO2NO3 	;
+{13001.} 	 DNMETOLO2 = DNMETOLO : 	8.00D-13*RO2 	;
+{13002.} 	 NMETOL1OOH + OH = NMETOL1O2 : 	1.53D-12 	;
+{13003.} 	 NMETOL1OOH = NMETOL1O + OH : 	J(41) 	;
+{13004.} 	 NMETLQOOH + OH = NMETLQO2 : 	7.71D-11 	;
+{13005.} 	 NMETLQOOH = NMETLQO + OH : 	J(41) 	;
+{13006.} 	 NMETLQO = C7CO4EDB + NO2 : 	KDEC 	;
+{13007.} 	 METLQOOH + OH = METLQO2 : 	9.65D-11 	;
+{13008.} 	 METLQOOH = METLQO + OH : 	J(41) 	;
+{13009.} 	 METLQO = C6EO2OHCO3 : 	KDEC 	;
+{13010.} 	 METLQOH + OH = C6EO2OHCO3 : 	9.31D-11 	;
+{13011.} 	 MTNNCATOOH + OH = MTNNCATCO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{13012.} 	 MTNNCATOOH = MTNNCATCO + OH : 	J(41) 	;
+{13013.} 	 MTNNCATCO = NC4MDCO2H + ECOCO2H + NO2 : 	KDEC 	;
+{13014.} 	 MTNCATCOOH + OH = MTNCATECO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{13015.} 	 MTNCATCOOH = MTNCATECO + OH : 	J(41) 	;
+{13016.} 	 MTNCATECO = NC4MDCO2H + ECOCO2H + HO2 : 	KDEC 	;
+{13017.} 	 NDNPETOLO2 + HO2 = NDNPETLOOH : 	KRO2HO2*0.90 	;
+{13018.} 	 NDNPETOLO2 + NO = NDNPETOLO + NO2 : 	KRO2NO 	;
+{13019.} 	 NDNPETOLO2 + NO3 = NDNPETOLO + NO2 : 	KRO2NO3 	;
+{13020.} 	 NDNPETOLO2 = NDNPETOLO : 	8.00D-13*RO2 	;
+{13021.} 	 DNPETOLO2 + HO2 = DNPETOLOOH : 	KRO2HO2*0.90 	;
+{13022.} 	 DNPETOLO2 + NO = DNPETOLO + NO2 : 	KRO2NO 	;
+{13023.} 	 DNPETOLO2 + NO3 = DNPETOLO + NO2 : 	KRO2NO3 	;
+{13024.} 	 DNPETOLO2 = DNPETOLO : 	8.00D-13*RO2 	;
+{13025.} 	 NPETOL1OOH + OH = NPETOL1O2 : 	1.53D-12 	;
+{13026.} 	 NPETOL1OOH = NPETOL1O + OH : 	J(41) 	;
+{13027.} 	 NPETLQOOH + OH = NPETLQO2 : 	7.71D-11 	;
+{13028.} 	 NPETLQOOH = NPETLQO + OH : 	J(41) 	;
+{13029.} 	 NPETLQO = C7ECO4DB + NO2 : 	KDEC 	;
+{13030.} 	 PETLQOOH + OH = PETLQO2 : 	9.81D-11 	;
+{13031.} 	 PETLQOOH = PETLQO + OH : 	J(41) 	;
+{13032.} 	 PETLQO = C7MJPCO3 : 	KDEC 	;
+{13033.} 	 PETLQOH + OH = C7MJPCO3 : 	9.46D-11 	;
+{13034.} 	 PTNNCATOOH + OH = PTNNCATCO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{13035.} 	 PTNNCATOOH = PTNNCATCO + OH : 	J(41) 	;
+{13036.} 	 PTNNCATCO = NC4MDCO2H + ECOCO2H + NO2 : 	KDEC 	;
+{13037.} 	 PTNCATCOOH + OH = PTNCATECO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{13038.} 	 PTNCATCOOH = PTNCATECO + OH : 	J(41) 	;
+{13039.} 	 PTNCATECO = NC4MDCO2H + ECOCO2H + HO2 : 	KDEC 	;
+{13040.} 	 C23O3ECHO + NO3 = C23O3ECO3 + HNO3 : 	KNO3AL*8.5 	;
+{13041.} 	 C23O3ECHO + OH = C23O3ECO3 : 	3.13D-11 	;
+{13042.} 	 C23O3ECHO = CO + C23O3EO2 + HO2 : 	J(15) 	;
+{13043.} 	 CO356OCO2 + HO2 = CO356OCOOH : 	KRO2HO2*0.770 	;
+{13044.} 	 CO356OCO2 + NO = CO356OCO + NO2 : 	KRO2NO 	;
+{13045.} 	 CO356OCO2 + NO3 = CO356OCO + NO2 : 	KRO2NO3 	;
+{13046.} 	 CO356OCO2 = CO356OCO : 	2.00D-12*RO2 	;
+{13047.} 	 HOEMPHNO2 + OH = EMPOHNO2O2 : 	1.53D-12 	;
+{13048.} 	 CO234C6OOH + OH = CO234C65O2 : 	1.65D-11 	;
+{13049.} 	 CO234C6OOH = CO234C65O + OH : 	J(41)+J(35) 	;
+{13050.} 	 CO234C65O = CH3CHO + CH3CO3 + CO + CO : 	KDEC 	;
+{13051.} 	 H13CO2CO3H = HOCH2COCHO + HO2 + OH : 	J(41) 	;
+{13052.} 	 OH + H13CO2CO3H = H13CO2CO3 : 	9.43D-12 	;
+{13053.} 	 C4PAN10 = H13CO2CO3 + NO2 : 	KBPAN 	;
+{13054.} 	 OH + C4PAN10 = HOCH2COCHO + CO + NO2 : 	5.83D-12 	;
+{13055.} 	 INCNCO3 + HO2 = INCNCO2H + O3 : 	KAPHO2*0.15 	;
+{13056.} 	 INCNCO3 + HO2 = INCNCO3H : 	KAPHO2*0.41 	;
+{13057.} 	 INCNCO3 + HO2 = MACRNB + NO2 + OH : 	KAPHO2*0.44 	;
+{13058.} 	 INCNCO3 + NO = MACRNB + NO2 + NO2 : 	KAPNO 	;
+{13059.} 	 INCNCO3 + NO2 = INCNPAN : 	KFPAN 	;
+{13060.} 	 INCNCO3 + NO3 = MACRNB + NO2 + NO2 : 	KRO2NO3*1.74 	;
+{13061.} 	 INCNCO3 = INCNCO2H : 	1.00D-11*0.3*RO2 	;
+{13062.} 	 INCNCO3 = MACRNB + NO2 : 	1.00D-11*0.7*RO2 	;
+{13063.} 	 MACRNB = NOA + HO2 + CO + HO2 : 	J(17) 	;
+{13064.} 	 OH + MACRNB = MACRNBCO3 : 	2.15D-11 	;
+{13065.} 	 MACRNBCO3 + HO2 = MACRNBCO2H + O3 : 	KAPHO2*0.15 	;
+{13066.} 	 MACRNBCO3 + HO2 = MACRNBCO3H : 	KAPHO2*0.41 	;
+{13067.} 	 MACRNBCO3 + HO2 = NOA + HO2 + OH : 	KAPHO2*0.44 	;
+{13068.} 	 MACRNBCO3 + NO = NOA + HO2 + NO2 : 	KAPNO 	;
+{13069.} 	 MACRNBCO3 + NO2 = MACRNBPAN : 	KFPAN 	;
+{13070.} 	 MACRNBCO3 + NO3 = NOA + HO2 + NO2 : 	KRO2NO3*1.74 	;
+{13071.} 	 MACRNBCO3 = MACRNBCO2H : 	1.00D-11*0.3*RO2 	;
+{13072.} 	 MACRNBCO3 = NOA + HO2 : 	1.00D-11*0.7*RO2 	;
+{13073.} 	 IEACO3H = HMVKBO2 + OH : 	J(41) 	;
+{13074.} 	 OH + IEACO3H = IEACO3 : 	4.81D-12 	;
+{13075.} 	 IEAPAN = IEACO3 + NO2 : 	KBPAN 	;
+{13076.} 	 OH + IEAPAN = HMVKBO2 + CO + NO2 : 	1.21D-12 	;
+{13077.} 	 INAHPCO3 + HO2 = HMVKANO3 + OH + OH : 	KAPHO2*0.44 	;
+{13078.} 	 INAHPCO3 + HO2 = INAHPCO2H + O3 : 	KAPHO2*0.15 	;
+{13079.} 	 INAHPCO3 + HO2 = INAHPCO3H : 	KAPHO2*0.41 	;
+{13080.} 	 INAHPCO3 + NO = HMVKANO3 + OH + NO2 : 	KAPNO 	;
+{13081.} 	 INAHPCO3 + NO2 = INAHPPAN : 	KFPAN 	;
+{13082.} 	 INAHPCO3 + NO3 = HMVKANO3 + OH + NO2 : 	KRO2NO3*1.74 	;
+{13083.} 	 INAHPCO3 = HMVKANO3 + OH : 	1.00D-11*0.7*RO2 	;
+{13084.} 	 INAHPCO3 = INAHPCO2H : 	1.00D-11*0.3*RO2 	;
+{13085.} 	 INANCO3 + HO2 = HMVKANO3 + NO2 + OH : 	KAPHO2*0.44 	;
+{13086.} 	 INANCO3 + HO2 = INANCO2H + O3 : 	KAPHO2*0.15 	;
+{13087.} 	 INANCO3 + HO2 = INANCO3H : 	KAPHO2*0.41 	;
+{13088.} 	 INANCO3 + NO = HMVKANO3 + NO2 + NO2 : 	KAPNO 	;
+{13089.} 	 INANCO3 + NO2 = INANPAN : 	KFPAN 	;
+{13090.} 	 INANCO3 + NO3 = HMVKANO3 + NO2 + NO2 : 	KRO2NO3*1.74 	;
+{13091.} 	 INANCO3 = HMVKANO3 + NO2 : 	1.00D-11*0.7*RO2 	;
+{13092.} 	 INANCO3 = INANCO2H : 	1.00D-11*0.3*RO2 	;
+{13093.} 	 OH + INANCOCHO = INANCOCO3 : 	3.79D-12 	;
+{13094.} 	 INAHCO3 + HO2 = HMVKANO3 + HO2 + OH : 	KAPHO2*0.44 	;
+{13095.} 	 INAHCO3 + HO2 = INAHCO2H + O3 : 	KAPHO2*0.15 	;
+{13096.} 	 INAHCO3 + HO2 = INAHCO3H : 	KAPHO2*0.41 	;
+{13097.} 	 INAHCO3 + NO = HMVKANO3 + HO2 + NO2 : 	KAPNO 	;
+{13098.} 	 INAHCO3 + NO2 = INAHPAN : 	KFPAN 	;
+{13099.} 	 INAHCO3 + NO3 = HMVKANO3 + HO2 + NO2 : 	KRO2NO3*1.74 	;
+{13100.} 	 INAHCO3 = HMVKANO3 + HO2 : 	1.00D-11*0.7*RO2 	;
+{13101.} 	 INAHCO3 = INAHCO2H : 	1.00D-11*0.3*RO2 	;
+{13102.} 	 HIEB1O2 + HO2 = HIEB1OOH : 	KRO2HO2*0.706 	;
+{13103.} 	 HIEB1O2 + NO = HIEB1O + NO2 : 	KRO2NO 	;
+{13104.} 	 HIEB1O2 + NO3 = HIEB1O + NO2 : 	KRO2NO3 	;
+{13105.} 	 HIEB1O2 = HIEB1O : 	9.20D-14*RO2 	;
+{13106.} 	 HIEB2O2 + HO2 = HIEB2OOH : 	KRO2HO2*0.706 	;
+{13107.} 	 HIEB2O2 + NO = HIEB2O + NO2 : 	KRO2NO 	;
+{13108.} 	 HIEB2O2 + NO3 = HIEB2O + NO2 : 	KRO2NO3 	;
+{13109.} 	 HIEB2O2 = HIEB2O : 	8.80D-13*RO2 	;
+{13110.} 	 NC524OOH + OH = HPNC524CO + HO2 : 	1.32D-11*0.728 	;
+{13111.} 	 NC524OOH + OH = NC524O2 : 	1.32D-11*0.272 	;
+{13112.} 	 NC524OOH = NC524O + OH : 	J(41) 	;
+{13113.} 	 NC524NO3 + OH = DNC524CO + HO2 : 	2.43D-12 	;
+{13114.} 	 NC524O = HMVKNO3 + HCHO + HO2 : 	1.80D+13*(TEMP/298)**1.7*EXP(-4079/TEMP) 	;
+{13115.} 	 NC524O = HOCH2CHO + NO2 + H13CO2C3 : 	1.80D+13*(TEMP/298)**1.7*EXP(-4733/TEMP) 	;
+{13116.} 	 NC524OH + OH = HNC524CO + HO2 : 	9.60D-12 	;
+{13117.} 	 HMACO3 + HO2 = HMACO2H + O3 : 	KAPHO2*0.15 	;
+{13118.} 	 HMACO3 + HO2 = HMACO3H : 	KAPHO2*0.41 	;
+{13119.} 	 HMACO3 + HO2 = HOCH2CO3 + HCHO + OH : 	KAPHO2*0.44 	;
+{13120.} 	 HMACO3 + NO = HOCH2CO3 + HCHO + NO2 : 	KAPNO 	;
+{13121.} 	 HMACO3 + NO2 = HMPAN : 	KFPAN 	;
+{13122.} 	 HMACO3 + NO3 = HOCH2CO3 + HCHO + NO2 : 	KRO2NO3*1.74 	;
+{13123.} 	 HMACO3 = HMACO2H : 	1.00D-11*RO2*0.3 	;
+{13124.} 	 HMACO3 = HOCH2CO3 + HCHO : 	1.00D-11*RO2*0.7 	;
+{13125.} 	 HMGLYOOA = HMGLYOO : 	KDEC*0.18 	;
+{13126.} 	 HMGLYOOA = HOCH2CO3 + CO + HO2 : 	KDEC*0.82 	;
+{13127.} 	 HMACRO2 + HO2 = HMACROOH : 	KRO2HO2*0.625 	;
+{13128.} 	 HMACRO2 + NO = HMACRO + NO2 : 	KRO2NO 	;
+{13129.} 	 HMACRO2 + NO3 = HMACRO + NO2 : 	KRO2NO3 	;
+{13130.} 	 HMACRO2 = HMACRO : 	9.20D-14*RO2*0.7 	;
+{13131.} 	 HMACRO2 = HMACROH : 	9.20D-14*RO2*0.3 	;
+{13132.} 	 C525OOH + OH = C525O2 : 	1.37D-11 	;
+{13133.} 	 C525OOH = C525O + OH : 	J(41) 	;
+{13134.} 	 C525O = HOCH2CO3 + H13CO2C3 : 	KDEC 	;
+{13135.} 	 OH + C58NO3CO2H = MMALNACO2H + HO2 : 	2.49D-12 	;
+{13136.} 	 C58NO3CO3H = MACRNO3 + HO2 + OH : 	J(41) 	;
+{13137.} 	 OH + C58NO3CO3H = C58NO3CO3 : 	5.57D-12*0.68 	;
+{13138.} 	 OH + C58NO3CO3H = MMALNACO3H + HO2 : 	5.57D-12*0.32 	;
+{13139.} 	 C58NO3PAN = C58NO3CO3 + NO2 : 	KBPAN 	;
+{13140.} 	 OH + C58NO3PAN = MMALNAPAN + HO2 : 	1.97D-12 	;
+{13141.} 	 CONM2CO2H + OH = MGLYOX + NO2 : 	3.70D-12 	;
+{13142.} 	 CONM2CO2H = CO + HO2 + NO2 + CH3COCO2H : 	J(56)+J(57) 	;
+{13143.} 	 CONM2CO3H + OH = CONM2CO3 : 	6.78D-12 	;
+{13144.} 	 CONM2CO3H = CO + HO2 + NO2 + CH3COCO3H : 	J(56)+J(57) 	;
+{13145.} 	 CONM2CO3H = MGLYOX + NO2 + OH : 	J(41) 	;
+{13146.} 	 CONM2PAN + OH = MGLYOX + NO2 + NO3 : 	3.18D-12 	;
+{13147.} 	 CONM2PAN = CO + HO2 + NO2 + CH3COPAN : 	J(56)+J(57) 	;
+{13148.} 	 CONM2PAN = CONM2CO3 + NO2 : 	KBPAN 	;
+{13149.} 	 INB1HPCO3 + HO2 = INB1HPCO2H + O3 : 	KAPHO2*0.15 	;
+{13150.} 	 INB1HPCO3 + HO2 = INB1HPCO3H : 	KAPHO2*0.41 	;
+{13151.} 	 INB1HPCO3 + HO2 = MACRNO3 + OH + OH : 	KAPHO2*0.44 	;
+{13152.} 	 INB1HPCO3 + NO = MACRNO3 + OH + NO2 : 	KAPNO 	;
+{13153.} 	 INB1HPCO3 + NO2 = INB1HPPAN : 	KFPAN 	;
+{13154.} 	 INB1HPCO3 + NO3 = MACRNO3 + OH + NO2 : 	KRO2NO3*1.74 	;
+{13155.} 	 INB1HPCO3 = INB1HPCO2H : 	1.00D-11*0.3*RO2 	;
+{13156.} 	 INB1HPCO3 = MACRNO3 + OH : 	1.00D-11*0.7*RO2 	;
+{13157.} 	 INB1NACO3 + HO2 = INB1NACO2H + O3 : 	KAPHO2*0.15 	;
+{13158.} 	 INB1NACO3 + HO2 = INB1NACO3H : 	KAPHO2*0.41 	;
+{13159.} 	 INB1NACO3 + HO2 = MACRNO3 + NO2 + OH : 	KAPHO2*0.44 	;
+{13160.} 	 INB1NACO3 + NO = MACRNO3 + NO2 + NO2 : 	KAPNO 	;
+{13161.} 	 INB1NACO3 + NO2 = INB1NAPAN : 	KFPAN 	;
+{13162.} 	 INB1NACO3 + NO3 = MACRNO3 + NO2 + NO2 : 	KRO2NO3*1.74 	;
+{13163.} 	 INB1NACO3 = INB1NACO2H : 	1.00D-11*0.3*RO2 	;
+{13164.} 	 INB1NACO3 = MACRNO3 + NO2 : 	1.00D-11*0.7*RO2 	;
+{13165.} 	 INB1NBCO3 + HO2 = INB1NBCO2H + O3 : 	KAPHO2*0.15 	;
+{13166.} 	 INB1NBCO3 + HO2 = INB1NBCO3H : 	KAPHO2*0.41 	;
+{13167.} 	 INB1NBCO3 + HO2 = MVKNO3 + NO2 + OH : 	KAPHO2*0.44 	;
+{13168.} 	 INB1NBCO3 + NO = MVKNO3 + NO2 + NO2 : 	KAPNO 	;
+{13169.} 	 INB1NBCO3 + NO2 = INB1NBPAN : 	KFPAN 	;
+{13170.} 	 INB1NBCO3 + NO3 = MVKNO3 + NO2 + NO2 : 	KRO2NO3*1.74 	;
+{13171.} 	 INB1NBCO3 = INB1NBCO2H : 	1.00D-11*0.3*RO2 	;
+{13172.} 	 INB1NBCO3 = MVKNO3 + NO2 : 	1.00D-11*0.7*RO2 	;
+{13173.} 	 C4M2ALOHNO3 + OH = MMALNACO3 : 	2.53D-11*0.86 	;
+{13174.} 	 C4M2ALOHNO3 + OH = MMALNBCO3 : 	2.53D-11*0.14 	;
+{13175.} 	 C4M2ALOHNO3 = CO2H3CHO + NO2 + CO + HO2 : 	J(17) 	;
+{13176.} 	 C4M2ALOHNO3 = CONM2CHO + HO2 + CO + HO2 : 	J(15) 	;
+{13177.} 	 C57NO3CO3 + HO2 = C57NO3CO2H + O3 : 	KAPHO2*0.15 	;
+{13178.} 	 C57NO3CO3 + HO2 = C57NO3CO3H : 	KAPHO2*0.41 	;
+{13179.} 	 C57NO3CO3 + HO2 = HO12CO3C4 + NO2 + OH : 	KAPHO2*0.44 	;
+{13180.} 	 C57NO3CO3 + NO = HO12CO3C4 + NO2 + NO2 : 	KAPNO 	;
+{13181.} 	 C57NO3CO3 + NO2 = C57NO3PAN : 	KFPAN 	;
+{13182.} 	 C57NO3CO3 + NO3 = HO12CO3C4 + NO2 + NO2 : 	KRO2NO3*1.74 	;
+{13183.} 	 C57NO3CO3 + NO3 = MACRNO3 + HO2 + NO2 : 	KRO2NO3*1.74 	;
+{13184.} 	 C57NO3CO3 = C57NO3CO2H : 	1.00D-11*0.3*RO2 	;
+{13185.} 	 C57NO3CO3 = HO12CO3C4 + NO2 : 	1.00D-11*0.7*RO2 	;
+{13186.} 	 IEC2OOH = BIACETOH + OH + CO + HO2 : 	J(17) 	;
+{13187.} 	 IEC2OOH = MGLYOX + OH + HOCH2CO3 : 	J(22) 	;
+{13188.} 	 OH + IEC2OOH = BIACETOH + OH + CO : 	2.73D-11 	;
+{13189.} 	 IECCO3H = MACRO2 + OH : 	J(41) 	;
+{13190.} 	 OH + IECCO3H = IECCO3 : 	1.04D-11 	;
+{13191.} 	 IECPAN = IECCO3 + NO2 : 	KBPAN 	;
+{13192.} 	 OH + IECPAN = MACRO2 + CO + NO2 : 	6.80D-12 	;
+{13193.} 	 CO2N3CO3H + OH = CO2N3CO3 : 	4.11D-12 	;
+{13194.} 	 CO2N3CO3H = MGLYOX + NO2 + OH : 	J(41) 	;
+{13195.} 	 CO2N3PAN + OH = CO2N3CO3 : 	5.10D-13 	;
+{13196.} 	 CO2N3PAN = CO2N3CO3 + NO2 : 	KBPAN 	;
+{13197.} 	 CO2N3PAN = MGLYOX + NO2 + NO3 : 	J(41) 	;
+{13198.} 	 INDHPCO3 + HO2 = INDHPCO3H : 	KAPHO2*0.56 	;
+{13199.} 	 INDHPCO3 + HO2 = MVKNO3 + OH + OH : 	KAPHO2*0.44 	;
+{13200.} 	 INDHPCO3 + NO = MVKNO3 + OH + NO2 : 	KAPNO 	;
+{13201.} 	 INDHPCO3 + NO2 = INDHPPAN : 	KFPAN 	;
+{13202.} 	 INDHPCO3 + NO3 = MVKNO3 + OH + NO2 : 	KRO2NO3*1.74 	;
+{13203.} 	 INDHPCO3 = MVKNO3 + OH : 	1.00D-11*RO2 	;
+{13204.} 	 INDHCO3 + HO2 = INDHCO3H : 	KAPHO2*0.56 	;
+{13205.} 	 INDHCO3 + HO2 = MVKNO3 + HO2 + OH : 	KAPHO2*0.44 	;
+{13206.} 	 INDHCO3 + NO = MVKNO3 + HO2 + NO2 : 	KAPNO 	;
+{13207.} 	 INDHCO3 + NO2 = INDHPAN : 	KFPAN 	;
+{13208.} 	 INDHCO3 + NO3 = MVKNO3 + HO2 + NO2 : 	KRO2NO3*1.74 	;
+{13209.} 	 INDHCO3 = MVKNO3 + HO2 : 	1.00D-11*RO2 	;
+{13210.} 	 ACCOCOMOOH + OH = ACCOCOMEO2 : 	1.19D-11 	;
+{13211.} 	 ACCOCOMOOH = ACCOCOMEO + OH : 	J(41) 	;
+{13212.} 	 ACCOCOMOOH = CH3CO3 + HCHO + CO + OH : 	J(22) 	;
+{13213.} 	 ACCOCOMEO = CH3CO3 + HCHO + CO : 	KDEC 	;
+{13214.} 	 ACCOMECO3 + HO2 = ACCOMECO3H : 	KAPHO2*0.56 	;
+{13215.} 	 ACCOMECO3 + HO2 = MECOACETO2 + OH : 	KAPHO2*0.44 	;
+{13216.} 	 ACCOMECO3 + NO = MECOACETO2 + NO2 : 	KAPNO 	;
+{13217.} 	 ACCOMECO3 + NO2 = ACCOMEPAN : 	KFPAN 	;
+{13218.} 	 ACCOMECO3 + NO3 = MECOACETO2 + NO2 : 	KRO2NO3*1.74 	;
+{13219.} 	 ACCOMECO3 = MECOACETO2 : 	1.00D-11*RO2 	;
+{13220.} 	 ACEETOHOOH + OH = ACEETOHO2 : 	2.97D-11 	;
+{13221.} 	 ACEETOHOOH = ACEETOHO + OH : 	J(41) 	;
+{13222.} 	 ACEETOHO = METACETHO + HCHO + HO2 : 	KDEC 	;
+{13223.} 	 ACOMCOMOOH + OH = ACCOMCOMO2 : 	1.19D-11 	;
+{13224.} 	 ACOMCOMOOH = ACCOMCOMO + OH : 	J(41)+J(22) 	;
+{13225.} 	 ACCOMCOMO = ACCOMECO3 + HCHO : 	KDEC 	;
+{13226.} 	 ACCOCOEOOH + OH = ACCOCOETO2 : 	2.23D-11 	;
+{13227.} 	 ACCOCOEOOH = ACCOCOETO + OH : 	J(41)+J(22) 	;
+{13228.} 	 ACCOCOETO = CH3CHO + CH3CO3 + CO : 	KDEC 	;
+{13229.} 	 IPRFORMO2 + HO2 = IPRFORMOOH : 	KRO2HO2*0.625 	;
+{13230.} 	 IPRFORMO2 + NO = IPRFORMNO3 : 	KRO2NO*0.025 	;
+{13231.} 	 IPRFORMO2 + NO = IPRFORMO + NO2 : 	KRO2NO*0.975 	;
+{13232.} 	 IPRFORMO2 + NO3 = IPRFORMO + NO2 : 	KRO2NO3 	;
+{13233.} 	 IPRFORMO2 = IPRFORMO : 	9.20D-14*0.7*RO2 	;
+{13234.} 	 IPRFORMO2 = IPRFORMOH : 	9.20D-14*0.3*RO2 	;
+{13235.} 	 MTBEALCO2H + OH = IPRFORMO2 : 	1.31D-12 	;
+{13236.} 	 MTBEALCO3H + OH = MTBEAALCO3 : 	4.86D-12 	;
+{13237.} 	 MTBEALCO3H = IPRFORMO2 + OH : 	J(41) 	;
+{13238.} 	 MTBEAALPAN + OH = METACETHO + HCHO + CO + NO2 : 	3.72D-13 	;
+{13239.} 	 MTBEAALPAN = MTBEAALCO3 + NO2 : 	KBPAN 	;
+{13240.} 	 PRCOFORMO2 + HO2 = PRCOFOROOH : 	KRO2HO2*0.706 	;
+{13241.} 	 PRCOFORMO2 + NO = PRCOFORMO + NO2 : 	KRO2NO 	;
+{13242.} 	 PRCOFORMO2 + NO3 = PRCOFORMO + NO2 : 	KRO2NO3 	;
+{13243.} 	 PRCOFORMO2 = PRCOFORMO : 	8.80D-13*RO2 	;
+{13244.} 	 PRONOCOMO2 + HO2 = PRNOCOMOOH : 	KRO2HO2*0.706 	;
+{13245.} 	 PRONOCOMO2 + NO = PRONOCOMO + NO2 : 	KRO2NO 	;
+{13246.} 	 PRONOCOMO2 + NO3 = PRONOCOMO + NO2 : 	KRO2NO3 	;
+{13247.} 	 PRONOCOMO2 = PRONOCOMO : 	8.80D-13*RO2 	;
+{13248.} 	 CO23C4CO3 + HO2 = BIACETO2 + OH : 	KAPHO2*0.44 	;
+{13249.} 	 CO23C4CO3 + HO2 = CO23C4CO3H : 	KAPHO2*0.56 	;
+{13250.} 	 CO23C4CO3 + NO = BIACETO2 + NO2 : 	KAPNO 	;
+{13251.} 	 CO23C4CO3 + NO2 = C5PAN9 : 	KFPAN 	;
+{13252.} 	 CO23C4CO3 + NO3 = BIACETO2 + NO2 : 	KRO2NO3*1.74 	;
+{13253.} 	 CO23C4CO3 = BIACETO2 : 	1.00D-11*RO2 	;
+{13254.} 	 C62OOH = C62O + OH : 	J(41)+J(22) 	;
+{13255.} 	 C62OOH = CH3CO3 + CO + MGLYOX + OH : 	J(35) 	;
+{13256.} 	 OH + C62OOH = C62O2 : 	1.30D-11 	;
+{13257.} 	 HO13C4OOH = HO13C4O + OH : 	J(41) 	;
+{13258.} 	 OH + HO13C4OOH = HO13C3CHO + OH : 	2.56D-11 	;
+{13259.} 	 OH + HO13C4OOH = HO13C4O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{13260.} 	 OH + HO13C4NO3 = HO13C3CHO + NO2 : 	7.29D-12 	;
+{13261.} 	 HO13C4O = HOC2H4CHO + HCHO + HO2 : 	2.00D+14*EXP(-5538/TEMP) 	;
+{13262.} 	 HO13C3CHO = HOC2H4CHO + CO + HO2 + HO2 : 	J(15) 	;
+{13263.} 	 NO3 + HO13C3CHO = HO13C3CO3 + HNO3 : 	KNO3AL*4.0 	;
+{13264.} 	 OH + HO13C3CHO = HO13C3CO3 : 	3.19D-11 	;
+{13265.} 	 OH + HO13C4OH = HO13C3CHO + HO2 : 	2.01D-11 	;
+{13266.} 	 C5CO34CO3 + HO2 = C5CO23O2 + OH : 	KAPHO2*0.44 	;
+{13267.} 	 C5CO34CO3 + HO2 = C6CO134OOH : 	KAPHO2*0.56 	;
+{13268.} 	 C5CO34CO3 + NO = C5CO23O2 + NO2 : 	KAPNO 	;
+{13269.} 	 C5CO34CO3 + NO2 = C6CO134PAN : 	KFPAN 	;
+{13270.} 	 C5CO34CO3 + NO3 = C5CO23O2 + NO2 : 	KRO2NO3*1.74 	;
+{13271.} 	 C5CO34CO3 = C5CO23O2 : 	1.00D-11*RO2 	;
+{13272.} 	 OH + HM22CO2H = IBUTOLBO2 : 	1.41D-11 	;
+{13273.} 	 HM22CO3H = IBUTOLBO2 + OH : 	J(41) 	;
+{13274.} 	 OH + HM22CO3H = HM22CO3 : 	1.75D-11 	;
+{13275.} 	 C5PAN15 = HM22CO3 + NO2 : 	KBPAN 	;
+{13276.} 	 OH + C5PAN15 = ACETOL + HCHO + CO + NO2 : 	4.50D-12 	;
+{13277.} 	 C6COALCO2H + OH = C5COCHOO2 : 	2.69D-11 	;
+{13278.} 	 C6COALCO2H = C5COCHOO2 + HO2 : 	J(22)+J(15) 	;
+{13279.} 	 C6COALCO3H + OH = C6COCHOCO3 : 	3.05D-11 	;
+{13280.} 	 C6COALCO3H = C5COCHOO2 + OH : 	J(41)+J(22) 	;
+{13281.} 	 C6COCHOPAN + OH = CO13C4CHO + CO + NO2 : 	2.69D-11 	;
+{13282.} 	 C6COCHOPAN = C6COCHOCO3 + NO2 : 	KBPAN 	;
+{13283.} 	 C5COCHOOOH + OH = C5COCHOO2 : 	3.83D-11 	;
+{13284.} 	 C5COCHOOOH = C5COCHOO + OH : 	J(41)+J(22)+J(15) 	;
+{13285.} 	 C5COCHOO = CHOC2CO3 + HCHO : 	KDEC 	;
+{13286.} 	 CHOC2H4OOH + OH = CHOC2H4O2 : 	7.31D-11 	;
+{13287.} 	 CHOC2H4OOH = CHOC2H4O + OH : 	J(41)+J(15) 	;
+{13288.} 	 CHOC2H4O = HCOCH2CHO + HO2 : 	KROPRIM*O2 	;
+{13289.} 	 HCOCH2CO2H = HCOCH2O2 + HO2 : 	J(15) 	;
+{13290.} 	 OH + HCOCH2CO2H = HCOCH2O2 : 	2.14D-11 	;
+{13291.} 	 HCOCH2CO3H = HCOCH2O2 + OH : 	J(41)+J(15) 	;
+{13292.} 	 OH + HCOCH2CO3H = HCOCH2CO3 : 	2.49D-11 	;
+{13293.} 	 C3PAN2 = HCOCH2CO3 + NO2 : 	KBPAN 	;
+{13294.} 	 OH + C3PAN2 = GLYOX + CO + NO2 : 	2.10D-11 	;
+{13295.} 	 C6135COOOH + OH = CY6TRIONO2 : 	8.37D-11 	;
+{13296.} 	 C6135COOOH = C6135COO + OH : 	J(41)+J(22)*2+J(15) 	;
+{13297.} 	 C6135COO = CHOC3COCO3 + HCHO : 	KDEC 	;
+{13298.} 	 C6CYTONOOH + OH = C6CYTONO2 : 	1.83D-11 	;
+{13299.} 	 C6CYTONOOH = C6CYTONO + OH : 	J(41)+J(22) 	;
+{13300.} 	 C6CYTONO = C5124COCO3 : 	KDEC 	;
+{13301.} 	 CO235C6CHO + NO3 = CO235C6CO3 + HNO3 : 	KNO3AL*5.5 	;
+{13302.} 	 CO235C6CHO + OH = CO235C6CO3 : 	6.70D-11 	;
+{13303.} 	 CO235C6CHO = CHOC3COCO3 + CH3CO3 : 	J(35) 	;
+{13304.} 	 C106O2 + HO2 = C106OOH : 	KRO2HO2*0.914 	;
+{13305.} 	 C106O2 + NO = C106NO3 : 	KRO2NO*0.125 	;
+{13306.} 	 C106O2 + NO = C106O + NO2 : 	KRO2NO*0.875 	;
+{13307.} 	 C106O2 + NO3 = C106O + NO2 : 	KRO2NO3 	;
+{13308.} 	 C106O2 = C106O : 	6.70D-15*0.7*RO2 	;
+{13309.} 	 C106O2 = C106OH : 	6.70D-15*0.3*RO2 	;
+{13310.} 	 NC102OOH + OH = NC102O2 : 	8.03D-12 	;
+{13311.} 	 NC102OOH = NC102O + OH : 	J(41) 	;
+{13312.} 	 NC102O = NC71O2 + CH3COCH3 : 	KDEC 	;
+{13313.} 	 C717O2 + HO2 = C717OOH : 	KRO2HO2*0.820 	;
+{13314.} 	 C717O2 + NO = C717NO3 : 	KRO2NO*0.278 	;
+{13315.} 	 C717O2 + NO = C717O + NO2 : 	KRO2NO*0.722 	;
+{13316.} 	 C717O2 + NO3 = C717O + NO2 : 	KRO2NO3 	;
+{13317.} 	 C717O2 = C717O : 	2.50D-13*0.6*RO2 	;
+{13318.} 	 C717O2 = C717OH : 	2.50D-13*0.2*RO2 	;
+{13319.} 	 C717O2 = CO235C6CHO : 	2.50D-13*0.2*RO2 	;
+{13320.} 	 C811CO3 + HO2 = C811CO3H : 	KAPHO2*0.41 	;
+{13321.} 	 C811CO3 + HO2 = C811O2 + OH : 	KAPHO2*0.44 	;
+{13322.} 	 C811CO3 + HO2 = PINIC + O3 : 	KAPHO2*0.15 	;
+{13323.} 	 C811CO3 + NO = C811O2 + NO2 : 	KAPNO 	;
+{13324.} 	 C811CO3 + NO2 = C811PAN : 	KFPAN 	;
+{13325.} 	 C811CO3 + NO3 = C811O2 + NO2 : 	KRO2NO3*1.74 	;
+{13326.} 	 C811CO3 = C811O2 : 	1.00D-11*RO2*0.7 	;
+{13327.} 	 C811CO3 = PINIC : 	1.00D-11*RO2*0.3 	;
+{13328.} 	 CO13C4CHO + NO3 = CHOC3COCO3 + HNO3 : 	2*KNO3AL*5.5 	;
+{13329.} 	 CO13C4CHO + OH = CHOC3COCO3 : 	1.33D-10 	;
+{13330.} 	 CO13C4CHO = CHOC3COO2 + CO + HO2 : 	J(15)*2 	;
+{13331.} 	 C921O2 + HO2 = C921OOH : 	KRO2HO2*0.890 	;
+{13332.} 	 C921O2 + NO = C921O + NO2 : 	KRO2NO 	;
+{13333.} 	 C921O2 + NO3 = C921O + NO2 : 	KRO2NO3 	;
+{13334.} 	 C921O2 = C921O : 	6.70D-15*RO2 	;
+{13335.} 	 C98O2 + HO2 = C98OOH : 	KRO2HO2*0.890 	;
+{13336.} 	 C98O2 + NO = C98NO3 : 	KRO2NO*0.118 	;
+{13337.} 	 C98O2 + NO = C98O + NO2 : 	KRO2NO*0.882 	;
+{13338.} 	 C98O2 + NO3 = C98O + NO2 : 	KRO2NO3 	;
+{13339.} 	 C98O2 = C98O : 	6.70D-15*0.7*RO2 	;
+{13340.} 	 C98O2 = C98OH : 	6.70D-15*0.3*RO2 	;
+{13341.} 	 C86O2 + HO2 = C86OOH : 	KRO2HO2*0.859 	;
+{13342.} 	 C86O2 + NO = C86O + NO2 : 	KRO2NO 	;
+{13343.} 	 C86O2 + NO3 = C86O + NO2 : 	KRO2NO3 	;
+{13344.} 	 C86O2 = C86O : 	6.70D-15*RO2 	;
+{13345.} 	 C716OH + NO3 = H3C25C6CO3 + HNO3 : 	KNO3AL*5.5 	;
+{13346.} 	 C716OH + OH = CO235C6CHO + HO2 : 	8.92D-11*0.232 	;
+{13347.} 	 C716OH + OH = H3C25C6CO3 : 	8.92D-11*0.768 	;
+{13348.} 	 C716OH = H3C25C6O2 + CO + HO2 : 	J(15) 	;
+{13349.} 	 C919O2 + HO2 = C919OOH : 	KRO2HO2*0.890 	;
+{13350.} 	 C919O2 + NO = C919NO3 : 	KRO2NO*0.118 	;
+{13351.} 	 C919O2 + NO = C919O + NO2 : 	KRO2NO*0.882 	;
+{13352.} 	 C919O2 + NO3 = C919O + NO2 : 	KRO2NO3 	;
+{13353.} 	 C919O2 = C919O : 	6.70D-15*RO2*0.7 	;
+{13354.} 	 C919O2 = C919OH : 	6.70D-15*RO2*0.3 	;
+{13355.} 	 C914O2 + HO2 = C914OOH : 	KRO2HO2*0.890 	;
+{13356.} 	 C914O2 + NO = C914O + NO2 : 	KRO2NO 	;
+{13357.} 	 C914O2 + NO3 = C914O + NO2 : 	KRO2NO3 	;
+{13358.} 	 C914O2 = C914CO : 	8.80D-13*RO2*0.2 	;
+{13359.} 	 C914O2 = C914O : 	8.80D-13*RO2*0.6 	;
+{13360.} 	 C914O2 = C914OH : 	8.80D-13*RO2*0.2 	;
+{13361.} 	 C916O2 + HO2 = C916OOH : 	KRO2HO2*0.890 	;
+{13362.} 	 C916O2 + NO = C916NO3 : 	KRO2NO*0.118 	;
+{13363.} 	 C916O2 + NO = C916O + NO2 : 	KRO2NO*0.882 	;
+{13364.} 	 C916O2 + NO3 = C916O + NO2 : 	KRO2NO3 	;
+{13365.} 	 C916O2 = C916O : 	6.70D-15*RO2*0.7 	;
+{13366.} 	 C916O2 = C916OH : 	6.70D-15*RO2*0.3 	;
+{13367.} 	 C88CO3 + HO2 = C88CO2H + O3 : 	KAPHO2*0.15 	;
+{13368.} 	 C88CO3 + HO2 = C88CO3H : 	KAPHO2*0.41 	;
+{13369.} 	 C88CO3 + HO2 = C88O2 + OH : 	KAPHO2*0.44 	;
+{13370.} 	 C88CO3 + NO = C88O2 + NO2 : 	KAPNO 	;
+{13371.} 	 C88CO3 + NO2 = C88PAN : 	KFPAN 	;
+{13372.} 	 C88CO3 + NO3 = C88O2 + NO2 : 	KRO2NO3*1.74 	;
+{13373.} 	 C88CO3 = C88CO2H : 	1.00D-11*0.3*RO2 	;
+{13374.} 	 C88CO3 = C88O2 : 	1.00D-11*0.7*RO2 	;
+{13375.} 	 C88O2 + HO2 = C88OOH : 	KRO2HO2*0.859 	;
+{13376.} 	 C88O2 + NO = C88O + NO2 : 	KRO2NO 	;
+{13377.} 	 C88O2 + NO3 = C88O + NO2 : 	KRO2NO3 	;
+{13378.} 	 C88O2 = C88CO : 	8.80D-13*RO2*0.2 	;
+{13379.} 	 C88O2 = C88O : 	8.80D-13*RO2*0.6 	;
+{13380.} 	 C88O2 = C88OH : 	8.80D-13*RO2*0.2 	;
+{13381.} 	 C512CO2H + OH = C512O2 : 	7.23D-11 	;
+{13382.} 	 C512CO2H = C512O2 + HO2 : 	J(15) 	;
+{13383.} 	 C512CO3H + OH = C512CO3 : 	7.54D-11 	;
+{13384.} 	 C512CO3H = C512O2 + OH : 	J(41)+J(15) 	;
+{13385.} 	 C512O2 + HO2 = C512OOH : 	KRO2HO2*0.706 	;
+{13386.} 	 C512O2 + NO = C512NO3 : 	KRO2NO*0.052 	;
+{13387.} 	 C512O2 + NO = C512O + NO2 : 	KRO2NO*0.948 	;
+{13388.} 	 C512O2 + NO3 = C512O + NO2 : 	KRO2NO3 	;
+{13389.} 	 C512O2 = C512O : 	1.30D-12*RO2*0.6 	;
+{13390.} 	 C512O2 = C512OH : 	1.30D-12*RO2*0.2 	;
+{13391.} 	 C512O2 = CO13C4CHO : 	1.30D-12*RO2*0.2 	;
+{13392.} 	 C512PAN + OH = CO13C4CHO + CO + NO2 : 	6.76D-11 	;
+{13393.} 	 C512PAN = C512CO3 + NO2 : 	KBPAN 	;
+{13394.} 	 C619O2 + HO2 = C619OOH : 	KRO2HO2*0.770 	;
+{13395.} 	 C619O2 + NO = C619O + NO2 : 	KRO2NO 	;
+{13396.} 	 C619O2 + NO3 = C619O + NO2 : 	KRO2NO3 	;
+{13397.} 	 C619O2 = C619CO : 	8.80D-13*RO2*0.2 	;
+{13398.} 	 C619O2 = C619O : 	8.80D-13*RO2*0.6 	;
+{13399.} 	 C619O2 = C619OH : 	8.80D-13*RO2*0.2 	;
+{13400.} 	 C89OOH + OH = C89O2 : 	3.61D-11 	;
+{13401.} 	 C89OOH = C89O + OH : 	J(41)+J(15) 	;
+{13402.} 	 C89NO3 + OH = CH3COCH3 + CO13C4CHO + NO2 : 	2.56D-11 	;
+{13403.} 	 C89NO3 = C89O + NO2 : 	J(55)+J(15) 	;
+{13404.} 	 C89O = C810O2 : 	2.70D+14*EXP(-6643/TEMP) 	;
+{13405.} 	 C89OH + OH = C89O : 	2.86D-11 	;
+{13406.} 	 C89OH = C89O + HO2 : 	J(15) 	;
+{13407.} 	 C926OOH + OH = C926O2 : 	3.08D-11 	;
+{13408.} 	 C926OOH = C926O + OH : 	J(41)+J(15)*2 	;
+{13409.} 	 C926O = CH3CO3 + CO25C6CHO : 	KDEC 	;
+{13410.} 	 C926OH + OH = CH3CO3 + CO25C6CHO : 	2.73D-11 	;
+{13411.} 	 C926OH = C926O + HO2 : 	J(15)*2 	;
+{13412.} 	 C817CO3H + OH = C817CO3 : 	2.28D-11 	;
+{13413.} 	 C817CO3H = C817O2 + OH : 	J(22)*2+J(41) 	;
+{13414.} 	 KLIMONONIC + OH = C817O2 : 	1.97D-11 	;
+{13415.} 	 KLIMONONIC = C817O2 + HO2 : 	J(22)*2 	;
+{13416.} 	 C817PAN + OH = C817CO + CO + NO2 : 	1.92D-11 	;
+{13417.} 	 C817PAN = C817CO3 + NO2 : 	KBPAN 	;
+{13418.} 	 C817OOH + OH = C817CO + OH : 	3.21D-11 	;
+{13419.} 	 C817OOH = C817O + OH : 	J(22)*2+J(41) 	;
+{13420.} 	 C817NO3 + OH = C817CO + NO2 : 	1.62D-11 	;
+{13421.} 	 C817NO3 = C817O + NO2 : 	J(22)*2+J(53) 	;
+{13422.} 	 C817O = C818O2 : 	KDEC 	;
+{13423.} 	 C817CO + OH = C727CO3 : 	2.72D-11 	;
+{13424.} 	 C817OH + OH = C817CO + HO2 : 	2.31D-11 	;
+{13425.} 	 C817OH = C818O2 + HO2 : 	J(22)*2 	;
+{13426.} 	 NC826OOH + OH = NC826O2 : 	5.89D-11 	;
+{13427.} 	 NC826OOH = NC826O + OH : 	J(41)+J(15)*2 	;
+{13428.} 	 NC826O = C626CHO + HCHO + NO2 : 	KDEC 	;
+{13429.} 	 NC826OH + OH = NC826O : 	5.54D-11 	;
+{13430.} 	 NC826OH = NC826O + HO2 : 	J(15)*2 	;
+{13431.} 	 C626CO3 + HO2 = C626CO2H + O3 : 	KAPHO2*0.15 	;
+{13432.} 	 C626CO3 + HO2 = C626CO3H : 	KAPHO2*0.41 	;
+{13433.} 	 C626CO3 + HO2 = C626O2 + OH : 	KAPHO2*0.44 	;
+{13434.} 	 C626CO3 + NO = C626O2 + NO2 : 	KAPNO 	;
+{13435.} 	 C626CO3 + NO2 = C626PAN : 	KFPAN 	;
+{13436.} 	 C626CO3 + NO3 = C626O2 + NO2 : 	KRO2NO3*1.74 	;
+{13437.} 	 C626CO3 = C626CO2H : 	1.00D-11*RO2*0.3 	;
+{13438.} 	 C626CO3 = C626O2 : 	1.00D-11*RO2*0.7 	;
+{13439.} 	 C626O2 + HO2 = C626OOH : 	KRO2HO2*0.770 	;
+{13440.} 	 C626O2 + NO = C626NO3 : 	KRO2NO*0.078 	;
+{13441.} 	 C626O2 + NO = C626O + NO2 : 	KRO2NO*0.922 	;
+{13442.} 	 C626O2 + NO3 = C626O + NO2 : 	KRO2NO3 	;
+{13443.} 	 C626O2 = C511CHO : 	1.30D-12*0.2 	;
+{13444.} 	 C626O2 = C517CHO : 	1.30D-12*0.2 	;
+{13445.} 	 C626O2 = C626O : 	1.30D-12*0.6 	;
+{13446.} 	 C735O2 + HO2 = C735OOH : 	KRO2HO2*0.820 	;
+{13447.} 	 C735O2 + NO = C735O + NO2 : 	KRO2NO 	;
+{13448.} 	 C735O2 + NO3 = C735O + NO2 : 	KRO2NO3 	;
+{13449.} 	 C735O2 = C735O : 	9.20D-14*RO2*0.7 	;
+{13450.} 	 C735O2 = C735OH : 	9.20D-14*RO2*0.3 	;
+{13451.} 	 C826OOH + OH = C826O2 : 	6.05D-11 	;
+{13452.} 	 C826OOH = C826O + OH : 	J(41)+J(15)*2 	;
+{13453.} 	 C826NO3 + OH = C626CHO + HCHO + NO2 : 	4.59D-11 	;
+{13454.} 	 C826O = C626CHO + HCHO + HO2 : 	KDEC 	;
+{13455.} 	 C826OH + OH = C826O : 	5.70D-11 	;
+{13456.} 	 C826OH = C826O + HO2 : 	J(15)*2 	;
+{13457.} 	 C729OOH + OH = C622CHO + OH : 	9.57D-11 	;
+{13458.} 	 C729OOH = C729O + OH : 	J(41)+J(15) 	;
+{13459.} 	 C729NO3 + OH = C622CHO + NO2 : 	7.51D-11 	;
+{13460.} 	 C729NO3 = C729O + NO2 : 	J(53) 	;
+{13461.} 	 C729O = C622CO3 : 	KDEC 	;
+{13462.} 	 C622CHO + NO3 = C622CO3 + HNO3 : 	KNO3AL*8.5 	;
+{13463.} 	 C622CHO + NO3 = NC728O2 : 	3.30D-13 	;
+{13464.} 	 C622CHO + O3 = C517CHO + CH2OOF : 	1.30D-17*0.330 	;
+{13465.} 	 C622CHO + O3 = C628OOA + HCHO : 	1.30D-17*0.670 	;
+{13466.} 	 C622CHO + OH = C622CO3 : 	8.67D-11*0.288 	;
+{13467.} 	 C622CHO + OH = C728O2 : 	8.67D-11*0.712 	;
+{13468.} 	 C622CHO = C622O2 + CO + HO2 : 	J(15) 	;
+{13469.} 	 C822O2 + HO2 = C822OOH : 	KRO2HO2*0.859 	;
+{13470.} 	 C822O2 + NO = C822NO3 : 	KRO2NO*0.138 	;
+{13471.} 	 C822O2 + NO = C822O + NO2 : 	KRO2NO*0.862 	;
+{13472.} 	 C822O2 + NO3 = C822O + NO2 : 	KRO2NO3 	;
+{13473.} 	 C822O2 = C729CHO : 	1.30D-12*RO2*0.2 	;
+{13474.} 	 C822O2 = C822O : 	1.30D-12*RO2*0.6 	;
+{13475.} 	 C822O2 = C822OH : 	1.30D-12*RO2*0.2 	;
+{13476.} 	 C823CO3 + HO2 = C823CO3H : 	KAPHO2*0.41 	;
+{13477.} 	 C823CO3 + HO2 = C823O2 + OH : 	KAPHO2*0.44 	;
+{13478.} 	 C823CO3 + HO2 = LIMONIC + O3 : 	KAPHO2*0.15 	;
+{13479.} 	 C823CO3 + NO = C823O2 + NO2 : 	KAPNO 	;
+{13480.} 	 C823CO3 + NO2 = C823PAN : 	KFPAN 	;
+{13481.} 	 C823CO3 + NO3 = C823O2 + NO2 : 	KRO2NO3*1.74 	;
+{13482.} 	 C823CO3 = C823O2 : 	1.00D-11*RO2*0.7 	;
+{13483.} 	 C823CO3 = LIMONIC : 	1.00D-11*RO2*0.3 	;
+{13484.} 	 C925O2 + HO2 = C925OOH : 	KRO2HO2*0.890 	;
+{13485.} 	 C925O2 + NO = C925O + NO2 : 	KRO2NO 	;
+{13486.} 	 C925O2 + NO3 = C925O + NO2 : 	KRO2NO3 	;
+{13487.} 	 C925O2 = C925O : 	9.20D-14*RO2 	;
+{13488.} 	 C622CO3 + HO2 = C622CO2H + O3 : 	KAPHO2*0.15 	;
+{13489.} 	 C622CO3 + HO2 = C622CO3H : 	KAPHO2*0.41 	;
+{13490.} 	 C622CO3 + HO2 = C622O2 + OH : 	KAPHO2*0.44 	;
+{13491.} 	 C622CO3 + NO = C622O2 + NO2 : 	KAPNO 	;
+{13492.} 	 C622CO3 + NO2 = C622PAN : 	KFPAN 	;
+{13493.} 	 C622CO3 + NO3 = C622O2 + NO2 : 	KRO2NO3*1.74 	;
+{13494.} 	 C622CO3 = C622CO2H : 	1.00D-11*RO2*0.3 	;
+{13495.} 	 C622CO3 = C622O2 : 	1.00D-11*RO2*0.7 	;
+{13496.} 	 C816CO + OH = C819O2 : 	5.20D-11 	;
+{13497.} 	 C816CO = MACO3 + MEKAO2 : 	J(18)+J(19) 	;
+{13498.} 	 LMLKAOOH + OH = LMLKACO + OH : 	5.79D-11 	;
+{13499.} 	 LMLKAOOH = C626CHO + OH + CH3CO3 : 	J(22) 	;
+{13500.} 	 LMLKAOOH = LMLKAO + OH : 	J(41) 	;
+{13501.} 	 LMLKAO = C626CHO + CH3CO3 : 	KDEC 	;
+{13502.} 	 LMLKACO + OH = C626CHO + CH3CO3 : 	3.58D-11 	;
+{13503.} 	 LMLKACO = C626CO3 + CH3CO3 : 	J(35) 	;
+{13504.} 	 LMLKAOH + OH = LMLKACO + HO2 : 	4.57D-11 	;
+{13505.} 	 LMLKAOH = C626CHO + HO2 + CH3CO3 : 	J(22) 	;
+{13506.} 	 LMLKBOOH + OH = LMLKBCO + OH : 	4.77D-11 	;
+{13507.} 	 LMLKBOOH = C731CO3 + HCHO + OH : 	J(22) 	;
+{13508.} 	 LMLKBOOH = LMLKBO + OH : 	J(41) 	;
+{13509.} 	 LMLKBO = C731CO3 + HCHO : 	KDEC 	;
+{13510.} 	 LMLKBCO + OH = C731CO3 + CO : 	5.09D-11 	;
+{13511.} 	 LMLKBCO = C731CO3 + CO + HO2 : 	J(34) 	;
+{13512.} 	 LMLKBOH + OH = LMLKBCO + HO2 : 	4.09D-11 	;
+{13513.} 	 LMLKBOH = C731CO3 + HCHO + HO2 : 	J(22) 	;
+{13514.} 	 C1011CO3 + HO2 = C1011CO2H + O3 : 	KAPHO2*0.15 	;
+{13515.} 	 C1011CO3 + HO2 = C1011CO3H : 	KAPHO2*0.41 	;
+{13516.} 	 C1011CO3 + HO2 = C1011O2 + OH : 	KAPHO2*0.44 	;
+{13517.} 	 C1011CO3 + NO = C1011O2 + NO2 : 	KAPNO 	;
+{13518.} 	 C1011CO3 + NO2 = C1011PAN : 	KFPAN 	;
+{13519.} 	 C1011CO3 + NO3 = C1011O2 + NO2 : 	KRO2NO3*1.74 	;
+{13520.} 	 C1011CO3 = C1011CO2H : 	1.00D-11*RO2*0.3 	;
+{13521.} 	 C1011CO3 = C1011O2 : 	1.00D-11*RO2*0.7 	;
+{13522.} 	 C1210CO3 + HO2 = C1210CO2 + OH : 	KAPHO2*0.44 	;
+{13523.} 	 C1210CO3 + HO2 = C1210CO2H + O3 : 	KAPHO2*0.15 	;
+{13524.} 	 C1210CO3 + HO2 = C1210CO3H : 	KAPHO2*0.41 	;
+{13525.} 	 C1210CO3 + NO = C1210CO2 + NO2 : 	KAPNO 	;
+{13526.} 	 C1210CO3 + NO2 = C1210PAN : 	KFPAN 	;
+{13527.} 	 C1210CO3 + NO3 = C1210CO2 + NO2 : 	KRO2NO3*1.74 	;
+{13528.} 	 C1210CO3 = C1210CO2 : 	1.00D-11*RO2*0.7 	;
+{13529.} 	 C1210CO3 = C1210CO2H : 	1.00D-11*RO2*0.3 	;
+{13530.} 	 C132O2 + HO2 = C132OOH : 	KRO2HO2*0.959 	;
+{13531.} 	 C132O2 + NO = C132O + NO2 : 	KRO2NO 	;
+{13532.} 	 C132O2 + NO3 = C132O + NO2 : 	KRO2NO3 	;
+{13533.} 	 C132O2 = C132O : 	6.70D-15*RO2*0.7 	;
+{13534.} 	 C132O2 = C132OH : 	6.70D-15*RO2*0.3 	;
+{13535.} 	 C137CO3 + HO2 = C137CO2H + O3 : 	KAPHO2*0.15 	;
+{13536.} 	 C137CO3 + HO2 = C137CO3H : 	KAPHO2*0.41 	;
+{13537.} 	 C137CO3 + HO2 = C137O2 + OH : 	KAPHO2*0.44 	;
+{13538.} 	 C137CO3 + NO = C137O2 + NO2 : 	KAPNO 	;
+{13539.} 	 C137CO3 + NO2 = C137PAN : 	KFPAN 	;
+{13540.} 	 C137CO3 + NO3 = C137O2 + NO2 : 	KRO2NO3*1.74 	;
+{13541.} 	 C137CO3 = C137CO2H : 	1.00D-11*RO2*0.3 	;
+{13542.} 	 C137CO3 = C137O2 : 	1.00D-11*RO2*0.7 	;
+{13543.} 	 C1013CO3 + HO2 = C1013CO2H + O3 : 	KAPHO2*0.15 	;
+{13544.} 	 C1013CO3 + HO2 = C1013CO3H : 	KAPHO2*0.41 	;
+{13545.} 	 C1013CO3 + HO2 = C1013O2 + OH : 	KAPHO2*0.44 	;
+{13546.} 	 C1013CO3 + NO = C1013O2 + NO2 : 	KAPNO 	;
+{13547.} 	 C1013CO3 + NO2 = C1013PAN : 	KFPAN 	;
+{13548.} 	 C1013CO3 + NO3 = C1013O2 + NO2 : 	KRO2NO3*1.74 	;
+{13549.} 	 C1013CO3 = C1013CO2H : 	1.00D-11*RO2*0.3 	;
+{13550.} 	 C1013CO3 = C1013O2 : 	1.00D-11*RO2*0.7 	;
+{13551.} 	 C1312CO + OH = C1010O2 + HOC2H4CHO : 	8.74D-11 	;
+{13552.} 	 C1312O2 + HO2 = C1312OOH : 	KRO2HO2*0.959 	;
+{13553.} 	 C1312O2 + NO = C1312NO3 : 	KRO2NO*0.178 	;
+{13554.} 	 C1312O2 + NO = C1312O + NO2 : 	KRO2NO*0.822 	;
+{13555.} 	 C1312O2 + NO3 = C1312O + NO2 : 	KRO2NO3 	;
+{13556.} 	 C1312O2 = C1312CO : 	2.50D-13*RO2*0.2 	;
+{13557.} 	 C1312O2 = C1312O : 	2.50D-13*RO2*0.6 	;
+{13558.} 	 C1312O2 = C1312OH : 	2.50D-13*RO2*0.2 	;
+{13559.} 	 C116CO2H + OH = C116O2 : 	3.64D-11 	;
+{13560.} 	 C116CO3H + OH = C116CO3 : 	3.93D-11 	;
+{13561.} 	 C116CO3H = C116O2 + OH : 	J(41) 	;
+{13562.} 	 C116PAN + OH = C116CO + CO + NO2 : 	3.57D-11 	;
+{13563.} 	 C116PAN = C116CO3 + NO2 : 	KBPAN 	;
+{13564.} 	 C116OOH + OH = C116CO + OH : 	4.11D-11 	;
+{13565.} 	 C116OOH = C116O + OH : 	J(41) 	;
+{13566.} 	 C116NO3 + OH = C116CO + NO2 : 	2.76D-11 	;
+{13567.} 	 C116NO3 = C116O + NO2 : 	J(53) 	;
+{13568.} 	 C116O = C117O2 : 	KDEC 	;
+{13569.} 	 C116CO + OH = C117O2 : 	4.83D-11 	;
+{13570.} 	 C116OH + OH = C116CO + HO2 : 	3.21D-11 	;
+{13571.} 	 C129OOH + OH = C129CO + OH : 	7.07D-11 	;
+{13572.} 	 C129OOH = C129O + OH : 	J(41) 	;
+{13573.} 	 C129O = C830CO3 + HCOCH2CHO : 	KDEC 	;
+{13574.} 	 C129CO + OH = C830CO3 + HCOCH2CHO : 	4.99D-11 	;
+{13575.} 	 C129CO = C830CO3 + HCOCH2CO3 : 	J(35) 	;
+{13576.} 	 C129OH + OH = C129CO + HO2 : 	5.85D-11 	;
+{13577.} 	 C127O2 + HO2 = C127OOH : 	KRO2HO2*0.947 	;
+{13578.} 	 C127O2 + NO = C127NO3 : 	KRO2NO*0.132 	;
+{13579.} 	 C127O2 + NO = C127O + NO2 : 	KRO2NO*0.868 	;
+{13580.} 	 C127O2 + NO3 = C127O + NO2 : 	KRO2NO3 	;
+{13581.} 	 C127O2 = C127O : 	6.70D-15*RO2*0.7 	;
+{13582.} 	 C127O2 = C127OH : 	6.70D-15*RO2*0.3 	;
+{13583.} 	 C143CO + OH = C145O2 : 	6.87D-11 	;
+{13584.} 	 C143CO = C927O2 + CO2C4CO3 : 	J(22)*3 	;
+{13585.} 	 C143O2 + HO2 = C143OOH : 	KRO2HO2*0.968 	;
+{13586.} 	 C143O2 + NO = C143NO3 : 	KRO2NO*0.245 	;
+{13587.} 	 C143O2 + NO = C143O + NO2 : 	KRO2NO*0.755 	;
+{13588.} 	 C143O2 + NO3 = C143O + NO2 : 	KRO2NO3 	;
+{13589.} 	 C143O2 = C143CO : 	2.50D-13*RO2*0.2 	;
+{13590.} 	 C143O2 = C143O : 	2.50D-13*RO2*0.6 	;
+{13591.} 	 C143O2 = C143OH : 	2.50D-13*RO2*0.2 	;
+{13592.} 	 C1210OOH + OH = C116CHO + OH : 	4.63D-11 	;
+{13593.} 	 C1210OOH = C1210O + OH : 	J(41) 	;
+{13594.} 	 C1210NO3 + OH = C116CHO + NO2 : 	3.23D-11 	;
+{13595.} 	 C1210NO3 = C1210O + NO2 : 	J(53) 	;
+{13596.} 	 C1210O = C1214O2 : 	KDEC 	;
+{13597.} 	 C1210OH + OH = C116CHO + HO2 : 	3.72D-11 	;
+{13598.} 	 CH3SO3 + HO2 = MSA : 	5.00D-11 	;
+{13599.} 	 CH3SO3 = CH3O2 + SO3 : 	5.00D+13*EXP(-9946/TEMP) 	;
+{13600.} 	 CH3SO2O2 + HO2 = CH3SO2OOH : 	KAPHO2*0.41 	;
+{13601.} 	 CH3SO2O2 + HO2 = CH3SO3 + OH : 	KAPHO2*0.44 	;
+{13602.} 	 CH3SO2O2 + HO2 = MSA + O3 : 	KAPHO2*0.15 	;
+{13603.} 	 CH3SO2O2 + NO = CH3SO3 + NO2 : 	1.00D-11 	;
+{13604.} 	 CH3SO2O2 + NO2 = CH3SO4NO2 : 	1.20D-12*(TEMP/300)**-0.9 	;
+{13605.} 	 CH3SO2O2 + NO3 = CH3SO3 + NO2 : 	KRO2NO3*1.74 	;
+{13606.} 	 CH3SO2O2 = CH3SO2 : 	3.01D+10*EXP(-3560/TEMP) 	;
+{13607.} 	 CH3SO2O2 = CH3SO3 : 	1.00D-11*RO2*0.7 	;
+{13608.} 	 CH3SO2O2 = MSA : 	1.00D-11*RO2*0.3 	;
+{13609.} 	 CH3SOOOH + OH = CH3SOO2 : 	9.00D-11 	;
+{13610.} 	 CH3SOOOH = CH3SO2 + OH : 	J(41) 	;
+{13611.} 	 CH3SOO2NO2 + OH = MSIA + NO2 : 	1.00D-11 	;
+{13612.} 	 CH3SOO2NO2 = CH3SOO2 + NO2 : 	5.40D+16*EXP(-13112/TEMP) 	;
+{13613.} 	 C1H4C5CO2H + OH = C6COALCO2H + HO2 : 	3.77D-11 	;
+{13614.} 	 C1H4C5CO3H + OH = C6COALCO3H + HO2 : 	4.08D-11 	;
+{13615.} 	 C1H4C5CO3H = CHOC4OHO2 + OH : 	J(41)+J(15) 	;
+{13616.} 	 C1H4C5PAN + OH = C6COCHOPAN + HO2 : 	3.72D-11 	;
+{13617.} 	 C1H4C5PAN = C1H4C5CO3 + NO2 : 	KBPAN 	;
+{13618.} 	 CHOC4OHOOH + OH = CHOC4OHO2 : 	4.98D-11 	;
+{13619.} 	 CHOC4OHOOH = CHOC4OHO + OH : 	J(41)+J(15) 	;
+{13620.} 	 CHOC4OHO = CHOC4DOLO2 : 	8.40D+10*EXP(-2567/TEMP) 	;
+{13621.} 	 HOC4CHOOOH + OH = HOC4CHOO2 : 	4.58D-11 	;
+{13622.} 	 HOC4CHOOOH = HOC3H6CHO + HO2 + CO + OH : 	J(17) 	;
+{13623.} 	 HOC4CHOOOH = HOC4CHOO + OH : 	J(41) 	;
+{13624.} 	 HOC4CHOO = HOC3H6CHO + HO2 + CO : 	KDEC 	;
+{13625.} 	 C6145COOOH + OH = C6145COO2 : 	3.57D-11 	;
+{13626.} 	 C6145COOOH = C6145COO + OH : 	J(41)+J(15)+J(35) 	;
+{13627.} 	 C6145COO = C6TRONOHO2 : 	8.40D+10*EXP(-2567/TEMP) 	;
+{13628.} 	 OH + CO2C4CO2H = MEKAO2 : 	5.71D-12 	;
+{13629.} 	 CO2C4CO3H = MEKAO2 + OH : 	J(41)+J(22) 	;
+{13630.} 	 OH + CO2C4CO3H = CO2C4CO3 : 	9.17D-12 	;
+{13631.} 	 C5PAN2 = CO2C4CO3 + NO2 : 	KBPAN 	;
+{13632.} 	 OH + C5PAN2 = CO2C3CHO + CO + NO2 : 	1.90D-12 	;
+{13633.} 	 OH + HOBUT2CO2H = NBUTOLBO2 : 	1.11D-11 	;
+{13634.} 	 HOBUT2CO3H = NBUTOLBO2 + OH : 	J(41) 	;
+{13635.} 	 OH + HOBUT2CO3H = HOBUT2CO3 : 	1.46D-11 	;
+{13636.} 	 C5PAN5 = HOBUT2CO3 + NO2 : 	KBPAN 	;
+{13637.} 	 OH + C5PAN5 = MEKAOH + CO + NO2 : 	1.55D-11 	;
+{13638.} 	 CO3C5CO2H = DIEKBO2 + HO2 : 	J(22) 	;
+{13639.} 	 OH + CO3C5CO2H = DIEKBO2 : 	6.88D-12 	;
+{13640.} 	 CO3C5CO3H = DIEKBO2 + OH : 	J(41)+J(22) 	;
+{13641.} 	 OH + CO3C5CO3H = CO3C5CO3 : 	1.03D-11 	;
+{13642.} 	 C6PAN2 = CO3C5CO3 + NO2 : 	KBPAN 	;
+{13643.} 	 OH + C6PAN2 = CO3C4CHO + CO + NO2 : 	3.19D-12 	;
+{13644.} 	 C65OOH = C65O + OH : 	J(41) 	;
+{13645.} 	 C65OOH = CO24C5 + OH + HO2 + CO : 	J(17) 	;
+{13646.} 	 OH + C65OOH = C65O2 : 	2.77D-11 	;
+{13647.} 	 OH + CO2C54CO2H = CO2C54O2 : 	9.18D-12 	;
+{13648.} 	 CO2C54CO3H = CO2C54O2 + OH : 	J(41) 	;
+{13649.} 	 OH + CO2C54CO3H = CO2C54CO3 : 	1.26D-11 	;
+{13650.} 	 C6PAN5 = CO2C54CO3 + NO2 : 	KBPAN 	;
+{13651.} 	 OH + C6PAN5 = CO24C5 + CO + NO2 : 	3.24D-12 	;
+{13652.} 	 HO24C5O2 + HO2 = HO24C5OOH : 	KRO2HO2*0.706 	;
+{13653.} 	 HO24C5O2 + NO = HO24C5NO3 : 	KRO2NO*0.010 	;
+{13654.} 	 HO24C5O2 + NO = HO24C5O + NO2 : 	KRO2NO*0.990 	;
+{13655.} 	 HO24C5O2 + NO3 = HO24C5O + NO2 : 	KRO2NO3 	;
+{13656.} 	 HO24C5O2 = HO124C5 : 	2.00D-12*0.2*RO2 	;
+{13657.} 	 HO24C5O2 = HO24C4CHO : 	2.00D-12*0.2*RO2 	;
+{13658.} 	 HO24C5O2 = HO24C5O : 	2.00D-12*0.6*RO2 	;
+{13659.} 	 C23C54CHO = CH3CO3 + IBUDIALCO3 : 	J(35) 	;
+{13660.} 	 NO3 + C23C54CHO = C23C54CO3 + HNO3 : 	KNO3AL*8.5 	;
+{13661.} 	 OH + C23C54CHO = C23C54CO3 : 	6.75D-11 	;
+{13662.} 	 C55O2 + HO2 = C55OOH : 	KRO2HO2*0.706 	;
+{13663.} 	 C55O2 + NO = C55O + NO2 : 	KRO2NO 	;
+{13664.} 	 C55O2 + NO3 = C55O + NO2 : 	KRO2NO3 	;
+{13665.} 	 C55O2 = C55O : 	2.00D-12*RO2 	;
+{13666.} 	 C67CO3 + HO2 = C55O2 + OH : 	KAPHO2*0.44 	;
+{13667.} 	 C67CO3 + HO2 = C67CO3H : 	KAPHO2*0.56 	;
+{13668.} 	 C67CO3 + NO = C55O2 + NO2 : 	KAPNO 	;
+{13669.} 	 C67CO3 + NO2 = C6PAN9 : 	KFPAN 	;
+{13670.} 	 C67CO3 + NO3 = C55O2 + NO2 : 	KRO2NO3*1.74 	;
+{13671.} 	 C67CO3 = C55O2 : 	1.00D-11*RO2 	;
+{13672.} 	 CO24M3CHO = C41CO3 + HO2 + CO : 	J(34) 	;
+{13673.} 	 OH + CO24M3CHO = C41CO3 + CO : 	1.44D-11 	;
+{13674.} 	 OH + C51CO2H = MIPKBO2 : 	9.18D-12 	;
+{13675.} 	 C51CO3H = MIPKBO2 + OH : 	J(41)+J(22) 	;
+{13676.} 	 OH + C51CO3H = CO2M3C4CO3 : 	1.26D-11 	;
+{13677.} 	 C6PAN12 = CO2M3C4CO3 + NO2 : 	KBPAN 	;
+{13678.} 	 OH + C6PAN12 = CO2C43CHO + CO + NO2 : 	3.51D-12 	;
+{13679.} 	 C72OOH = C72O + OH : 	J(41)+J(22) 	;
+{13680.} 	 OH + C72OOH = HO2CO35C7 + OH : 	9.25D-11 	;
+{13681.} 	 C72NO3 = C72O + NO2 : 	J(54)+J(22) 	;
+{13682.} 	 OH + C72NO3 = HO2CO35C7 + NO2 : 	3.41D-12 	;
+{13683.} 	 C72O = CO3C4CHO + CH3CHO + HO2 : 	2.00D+14*EXP(-4714/TEMP) 	;
+{13684.} 	 C72OH = C72O + HO2 : 	J(22) 	;
+{13685.} 	 OH + C72OH = HO2CO35C7 + HO2 : 	4.35D-11 	;
+{13686.} 	 HO2CO35C7 = CO3C4CO3 + CH3CHO + HO2 : 	J(22)*2 	;
+{13687.} 	 OH + HO2CO35C7 = CO235C7 + HO2 : 	5.76D-12 	;
+{13688.} 	 CO25C73OOH = CH3CO3 + CO3C4CHO + OH : 	J(22)*2 	;
+{13689.} 	 CO25C73OOH = CO25C73O + OH : 	J(41) 	;
+{13690.} 	 OH + CO25C73OOH = CO235C7 + OH : 	5.53D-11 	;
+{13691.} 	 CO25C73O = CO3C4CHO + CH3CO3 : 	KDEC 	;
+{13692.} 	 CO235C7 = CH3CO3 + CO3C4CO3 : 	J(35) 	;
+{13693.} 	 OH + CO235C7 = C73O2 : 	1.86D-12 	;
+{13694.} 	 CO25C73OH = CH3CO3 + CO3C4CHO + HO2 : 	J(22)*2 	;
+{13695.} 	 OH + CO25C73OH = CO235C7 + HO2 : 	2.41D-11 	;
+{13696.} 	 CO25C74OOH = C2H5CO3 + CO2C3CHO + OH : 	J(22)*2 	;
+{13697.} 	 CO25C74OOH = CO25C74O + OH : 	J(41) 	;
+{13698.} 	 OH + CO25C74OOH = CO245C7 + OH : 	5.53D-11 	;
+{13699.} 	 CO25C74O = CO2C3CHO + C2H5CO3 : 	KDEC 	;
+{13700.} 	 CO245C7 = C2H5CO3 + CO2C3CO3 : 	J(35) 	;
+{13701.} 	 OH + CO245C7 = C74O2 : 	1.86D-12 	;
+{13702.} 	 CO25C74OH = C2H5CO3 + CO2C3CHO + HO2 : 	J(22)*2 	;
+{13703.} 	 OH + CO25C74OH = CO245C7 + HO2 : 	2.41D-11 	;
+{13704.} 	 H3M2C4CO3 + HO2 = H3M2C4CO3H : 	KAPHO2*0.56 	;
+{13705.} 	 H3M2C4CO3 + HO2 = ME3BU2OLO2 + OH : 	KAPHO2*0.44 	;
+{13706.} 	 H3M2C4CO3 + NO = ME3BU2OLO2 + NO2 : 	KAPNO 	;
+{13707.} 	 H3M2C4CO3 + NO2 = C6PAN20 : 	KFPAN 	;
+{13708.} 	 H3M2C4CO3 + NO3 = ME3BU2OLO2 + NO2 : 	KRO2NO3*1.74 	;
+{13709.} 	 H3M2C4CO3 = ME3BU2OLO2 : 	1.00D-11*RO2 	;
+{13710.} 	 C79O2 + HO2 = C79OOH : 	KRO2HO2*0.820 	;
+{13711.} 	 C79O2 + NO = C79O + NO2 : 	KRO2NO 	;
+{13712.} 	 C79O2 + NO3 = C79O + NO2 : 	KRO2NO3 	;
+{13713.} 	 C79O2 = C79O : 	2.00D-12*RO2 	;
+{13714.} 	 C712OOH = C712O + OH : 	J(41) 	;
+{13715.} 	 C712OOH = CH3COCH2O2 + HO2CO4C5 + OH : 	J(22) 	;
+{13716.} 	 OH + C712OOH = C712O2 : 	1.25D-11 	;
+{13717.} 	 C712NO3 = C712O + NO2 : 	J(22) 	;
+{13718.} 	 OH + C712NO3 = BUT2OLO + MGLYOX + NO2 : 	1.93D-12 	;
+{13719.} 	 C712O = CH3CHO + CO24C5 + HO2 : 	KDEC 	;
+{13720.} 	 C712OH = CH3COCH2O2 + HO2CO4C5 + HO2 : 	J(22) 	;
+{13721.} 	 OH + C712OH = C712O : 	9.07D-12 	;
+{13722.} 	 C713OOH = C713O + OH : 	J(41) 	;
+{13723.} 	 C713OOH = CH3CO3 + CO24C5 + OH : 	J(22)*2 	;
+{13724.} 	 OH + C713OOH = C713O2 : 	7.07D-12 	;
+{13725.} 	 C713O = CH3CO3 + CO24C5 : 	KDEC 	;
+{13726.} 	 C713OH = CH3CO3 + CO24C5 + HO2 : 	J(22)*2 	;
+{13727.} 	 OH + C713OH = C713O : 	3.61D-12 	;
+{13728.} 	 C714OOH = C714O + OH : 	J(41) 	;
+{13729.} 	 C714OOH = CH3CO3 + CO2C43CHO + OH : 	J(22)*2 	;
+{13730.} 	 OH + C714OOH = C714O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{13731.} 	 OH + C714OOH = M3CO245C6 + OH : 	5.41D-11 	;
+{13732.} 	 C714O = CH3CO3 + CO2C43CHO : 	KDEC 	;
+{13733.} 	 C714OH = CH3CO3 + CO2C43CHO + HO2 : 	J(22)*2 	;
+{13734.} 	 OH + C714OH = M3CO245C6 + HO2 : 	2.64D-11 	;
+{13735.} 	 M3CO245C6 = CH3CO3 + C41CO3 : 	J(35) 	;
+{13736.} 	 M3CO245C6 = CH3CO3 + CO23C54O2 : 	J(22) 	;
+{13737.} 	 OH + M3CO245C6 = C715O2 : 	1.83D-12 	;
+{13738.} 	 H3M3C4CO3 + HO2 = H3M3C4CO3H : 	KAPHO2*0.56 	;
+{13739.} 	 H3M3C4CO3 + HO2 = PROL11MO2 + OH : 	KAPHO2*0.44 	;
+{13740.} 	 H3M3C4CO3 + NO = PROL11MO2 + NO2 : 	KAPNO 	;
+{13741.} 	 H3M3C4CO3 + NO2 = C6PAN21 : 	KFPAN 	;
+{13742.} 	 H3M3C4CO3 + NO3 = PROL11MO2 + NO2 : 	KRO2NO3*1.74 	;
+{13743.} 	 H3M3C4CO3 = PROL11MO2 : 	1.00D-11*RO2 	;
+{13744.} 	 H13M3C5O2 + HO2 = H13M3C5OOH : 	KRO2HO2*0.706 	;
+{13745.} 	 H13M3C5O2 + NO = H13M3C5NO3 : 	KRO2NO*0.026 	;
+{13746.} 	 H13M3C5O2 + NO = H13M3C5O + NO2 : 	KRO2NO*0.974 	;
+{13747.} 	 H13M3C5O2 + NO3 = H13M3C5O + NO2 : 	KRO2NO3 	;
+{13748.} 	 H13M3C5O2 = H134M3C5 : 	8.80D-13*0.2*RO2 	;
+{13749.} 	 H13M3C5O2 = H13M3C5O : 	8.80D-13*0.6*RO2 	;
+{13750.} 	 H13M3C5O2 = H13M3CO4C5 : 	8.80D-13*0.2*RO2 	;
+{13751.} 	 CO346C8 = C2H5CO3 + CO3C4CO3 : 	J(35)+J(22) 	;
+{13752.} 	 OH + CO346C8 = C83O2 : 	2.99D-12 	;
+{13753.} 	 C84OOH = C2H5CO3 + CO3C4CHO + OH : 	J(22)*2 	;
+{13754.} 	 C84OOH = C84O + OH : 	J(41) 	;
+{13755.} 	 OH + C84OOH = CO346C8 + OH : 	5.65D-11 	;
+{13756.} 	 C84O = CO3C4CHO + C2H5CO3 : 	KDEC 	;
+{13757.} 	 C84OH = C2H5CO3 + CO3C4CHO + HO2 : 	J(22)*2 	;
+{13758.} 	 OH + C84OH = CO346C8 + HO2 : 	2.52D-11 	;
+{13759.} 	 HO4C5CO3 + HO2 = HO4C5CO3H : 	KAPHO2*0.56 	;
+{13760.} 	 HO4C5CO3 + HO2 = PE1ENEBO2 + OH : 	KAPHO2*0.44 	;
+{13761.} 	 HO4C5CO3 + NO = PE1ENEBO2 + NO2 : 	KAPNO 	;
+{13762.} 	 HO4C5CO3 + NO2 = C6PAN22 : 	KFPAN 	;
+{13763.} 	 HO4C5CO3 + NO3 = PE1ENEBO2 + NO2 : 	KRO2NO3*1.74 	;
+{13764.} 	 HO4C5CO3 = PE1ENEBO2 : 	1.00D-11*RO2 	;
+{13765.} 	 CO356C9 = C3H7CO3 + CO3C4CO3 : 	J(35)+J(22) 	;
+{13766.} 	 OH + CO356C9 = C95O2 : 	6.43D-12 	;
+{13767.} 	 C94OOH = C3H7CO3 + CO3C4CHO + OH : 	J(22)*2 	;
+{13768.} 	 C94OOH = C94O + OH : 	J(41) 	;
+{13769.} 	 OH + C94OOH = CO356C9 + OH : 	5.40D-11 	;
+{13770.} 	 C94O = CO3C4CHO + C3H7CO3 : 	KDEC 	;
+{13771.} 	 C94OH = C3H7CO3 + CO3C4CHO + HO2 : 	J(22)*2 	;
+{13772.} 	 OH + C94OH = CO356C9 + HO2 : 	2.28D-11 	;
+{13773.} 	 HO5C6CO3 + HO2 = HO5C6CO3H : 	KAPHO2*0.56 	;
+{13774.} 	 HO5C6CO3 + HO2 = HO5C6O2 + OH : 	KAPHO2*0.44 	;
+{13775.} 	 HO5C6CO3 + NO = HO5C6O2 + NO2 : 	KAPNO 	;
+{13776.} 	 HO5C6CO3 + NO2 = C7PAN2 : 	KFPAN 	;
+{13777.} 	 HO5C6CO3 + NO3 = HO5C6O2 + NO2 : 	KRO2NO3*1.74 	;
+{13778.} 	 HO5C6CO3 = HO5C6O2 : 	1.00D-11*RO2 	;
+{13779.} 	 CO356C10 = C4H9CO3 + CO3C4CO3 : 	J(35)+J(22) 	;
+{13780.} 	 OH + CO356C10 = C105O2 : 	7.84D-12 	;
+{13781.} 	 C104OOH = C104O + OH : 	J(41) 	;
+{13782.} 	 C104OOH = C4H9CO3 + CO3C4CHO + OH : 	J(22)*2 	;
+{13783.} 	 OH + C104OOH = CO356C10 + OH : 	5.54D-11 	;
+{13784.} 	 C104O = CO3C4CHO + C4H9CO3 : 	KDEC 	;
+{13785.} 	 C104OH = C4H9CO3 + CO3C4CHO + HO2 : 	J(22)*2 	;
+{13786.} 	 OH + C104OH = CO356C10 + HO2 : 	2.42D-11 	;
+{13787.} 	 HO6C7CO3 + HO2 = HO6C7CO3H : 	KAPHO2*0.56 	;
+{13788.} 	 HO6C7CO3 + HO2 = HO6C7O2 + OH : 	KAPHO2*0.44 	;
+{13789.} 	 HO6C7CO3 + NO = HO6C7O2 + NO2 : 	KAPNO 	;
+{13790.} 	 HO6C7CO3 + NO2 = C8PAN1 : 	KFPAN 	;
+{13791.} 	 HO6C7CO3 + NO3 = HO6C7O2 + NO2 : 	KRO2NO3*1.74 	;
+{13792.} 	 HO6C7CO3 = HO6C7O2 : 	1.00D-11*RO2 	;
+{13793.} 	 C6H13CHO = HO2 + CO + HEXAO2 : 	J(15) 	;
+{13794.} 	 NO3 + C6H13CHO = C6H13CO3 + HNO3 : 	KNO3AL*5.5 	;
+{13795.} 	 OH + C6H13CHO = C6H13CO3 : 	3.05D-11 	;
+{13796.} 	 CO356C11 = C5H11CO3 + CO3C4CO3 : 	J(35)+J(22) 	;
+{13797.} 	 OH + CO356C11 = C115O2 : 	9.25D-12 	;
+{13798.} 	 C114OOH = C114O + OH : 	J(41) 	;
+{13799.} 	 C114OOH = C5H11CO3 + CO3C4CHO + OH : 	J(22)*2 	;
+{13800.} 	 OH + C114OOH = CO356C11 + OH : 	5.68D-11 	;
+{13801.} 	 C114O = CO3C4CHO + C5H11CO3 : 	KDEC 	;
+{13802.} 	 C114OH = C5H11CO3 + CO3C4CHO + HO2 : 	J(22)*2 	;
+{13803.} 	 OH + C114OH = CO356C11 + HO2 : 	2.56D-11 	;
+{13804.} 	 HO7C8CO3 + HO2 = HO7C8CO3H : 	KAPHO2*0.56 	;
+{13805.} 	 HO7C8CO3 + HO2 = HO7C8O2 + OH : 	KAPHO2*0.44 	;
+{13806.} 	 HO7C8CO3 + NO = HO7C8O2 + NO2 : 	KAPNO 	;
+{13807.} 	 HO7C8CO3 + NO2 = C9PAN1 : 	KFPAN 	;
+{13808.} 	 HO7C8CO3 + NO3 = HO7C8O2 + NO2 : 	KRO2NO3*1.74 	;
+{13809.} 	 HO7C8CO3 = HO7C8O2 : 	1.00D-11*RO2 	;
+{13810.} 	 CO356C12 = C6H13CO3 + CO3C4CO3 : 	J(35)+J(22) 	;
+{13811.} 	 OH + CO356C12 = C125O2 : 	1.07D-11 	;
+{13812.} 	 OH + C6H13CO2H = HEXAO2 : 	9.89D-12 	;
+{13813.} 	 C6H13CO3H = HEXAO2 + OH : 	J(41) 	;
+{13814.} 	 OH + C6H13CO3H = C6H13CO3 : 	1.33D-11 	;
+{13815.} 	 OH + PHPTN = C5H11CHO + CO + NO2 : 	6.16D-12 	;
+{13816.} 	 PHPTN = C6H13CO3 + NO2 : 	KBPAN 	;
+{13817.} 	 C124OOH = C124O + OH : 	J(41) 	;
+{13818.} 	 C124OOH = C6H13CO3 + CO3C4CHO + OH : 	J(22)*2 	;
+{13819.} 	 OH + C124OOH = CO356C12 + OH : 	5.82D-11 	;
+{13820.} 	 C124O = CO3C4CHO + C6H13CO3 : 	KDEC 	;
+{13821.} 	 C124OH = C6H13CO3 + CO3C4CHO + HO2 : 	J(22)*2 	;
+{13822.} 	 OH + C124OH = CO356C12 + HO2 : 	2.70D-11 	;
+{13823.} 	 HO8C9CO3 + HO2 = HO8C9CO3H : 	KAPHO2*0.56 	;
+{13824.} 	 HO8C9CO3 + HO2 = HO8C9O2 + OH : 	KAPHO2*0.44 	;
+{13825.} 	 HO8C9CO3 + NO = HO8C9O2 + NO2 : 	KAPNO 	;
+{13826.} 	 HO8C9CO3 + NO2 = C10PAN1 : 	KFPAN 	;
+{13827.} 	 HO8C9CO3 + NO3 = HO8C9O2 + NO2 : 	KRO2NO3*1.74 	;
+{13828.} 	 HO8C9CO3 = HO8C9O2 : 	1.00D-11*RO2 	;
+{13829.} 	 MALANHYOOH + OH = MALNHYOHCO + OH : 	4.66D-11 	;
+{13830.} 	 MALANHYOOH = MALANHYO + OH : 	J(41) 	;
+{13831.} 	 MALANHYO = HCOCOHCO3 : 	KDEC 	;
+{13832.} 	 MALANHY2OH + OH = MALNHYOHCO + HO2 : 	2.55D-11 	;
+{13833.} 	 MALNHYOHCO + OH = CO + CO + CO + HO2 : 	5.68D-12 	;
+{13834.} 	 NDNPHENOOH + OH = NDNPHENO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{13835.} 	 NDNPHENOOH = NDNPHENO + OH : 	J(41) 	;
+{13836.} 	 NDNPHENO = NC4DCO2H + HNO3 + CO + CO + NO2 : 	KDEC 	;
+{13837.} 	 DNPHENOOH + OH = DNPHENO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{13838.} 	 DNPHENOOH = DNPHENO + OH : 	J(41) 	;
+{13839.} 	 DNPHENO = NC4DCO2H + HCOCO2H + NO2 : 	KDEC 	;
+{13840.} 	 NC4DCO2H + OH = NC4DCO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{13841.} 	 C6CO4DB + OH = CO + CO + HO2 + CO + C33CO : 	7.70D-11 	;
+{13842.} 	 C6CO4DB = C4CO2DBCO3 + HO2 + CO : 	J(34)*2 	;
+{13843.} 	 C5CO2OHCO3 + HO2 = C5COOHCO3H : 	KAPHO2*0.56 	;
+{13844.} 	 C5CO2OHCO3 + HO2 = HOCOC4DIAL + HO2 + CO + OH : 	KAPHO2*0.44 	;
+{13845.} 	 C5CO2OHCO3 + NO = HOCOC4DIAL + HO2 + CO + NO2 : 	KAPNO 	;
+{13846.} 	 C5CO2OHCO3 + NO2 = C5CO2OHPAN : 	KFPAN 	;
+{13847.} 	 C5CO2OHCO3 + NO3 = HOCOC4DIAL + HO2 + CO + NO2 : 	KRO2NO3*1.74 	;
+{13848.} 	 C5CO2OHCO3 = HOCOC4DIAL + HO2 + CO : 	1.00D-11*RO2 	;
+{13849.} 	 C7CO4DB + OH = CO + CO + CH3CO3 + C33CO : 	9.58D-11 	;
+{13850.} 	 C7CO4DB = C5CO2DBCO3 + HO2 + CO : 	J(34)*2 	;
+{13851.} 	 C6CO2OHCO3 + HO2 = C5134CO2OH + HO2 + CO + OH : 	KAPHO2*0.44 	;
+{13852.} 	 C6CO2OHCO3 + HO2 = C6COOHCO3H : 	KAPHO2*0.56 	;
+{13853.} 	 C6CO2OHCO3 + NO = C5134CO2OH + HO2 + CO + NO2 : 	KAPNO 	;
+{13854.} 	 C6CO2OHCO3 + NO2 = C6CO2OHPAN : 	KFPAN 	;
+{13855.} 	 C6CO2OHCO3 + NO3 = C5134CO2OH + HO2 + CO + NO2 : 	KRO2NO3*1.74 	;
+{13856.} 	 C6CO2OHCO3 = C5134CO2OH + HO2 + CO : 	1.00D-11*RO2 	;
+{13857.} 	 NDNCRESOOH + OH = NDNCRESO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{13858.} 	 NDNCRESOOH = NDNCRESO + OH : 	J(41) 	;
+{13859.} 	 NDNCRESO = NC4MDCO2H + HNO3 + CO + CO + NO2 : 	KDEC 	;
+{13860.} 	 DNCRESOOH + OH = DNCRESO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{13861.} 	 DNCRESOOH = DNCRESO + OH : 	J(41) 	;
+{13862.} 	 DNCRESO = NC4MDCO2H + HCOCO2H + NO2 : 	KDEC 	;
+{13863.} 	 NC4MDCO2H + OH = NC4MDCO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{13864.} 	 CH3COCO3 + HO2 = CH3CO3 + OH : 	KAPHO2*0.44 	;
+{13865.} 	 CH3COCO3 + HO2 = CH3COCO3H : 	KAPHO2*0.56 	;
+{13866.} 	 CH3COCO3 + NO = CH3CO3 + NO2 : 	KAPNO 	;
+{13867.} 	 CH3COCO3 + NO2 = CH3COPAN : 	KFPAN 	;
+{13868.} 	 CH3COCO3 + NO3 = CH3CO3 + NO2 : 	KRO2NO3*1.74 	;
+{13869.} 	 CH3COCO3 = CH3CO3 : 	1.00D-11*RO2 	;
+{13870.} 	 C6O4KETOOH + OH = C6O4KETO2 : 	1.72D-11 	;
+{13871.} 	 C6O4KETOOH = OH + C6O4KETO : 	J(41) 	;
+{13872.} 	 C6O4KETO = HCHO + CO + CO + CH3CO3 : 	KDEC 	;
+{13873.} 	 NDNOXYLOOH + OH = NDNOXYOLO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{13874.} 	 NDNOXYLOOH = NDNOXYOLO + OH : 	J(41) 	;
+{13875.} 	 NDNOXYOLO = NC4MDCO2H + CH3COCO2H + NO2 + HNO3 : 	KDEC 	;
+{13876.} 	 DNOXYOLOOH + OH = DNOXYOLO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{13877.} 	 DNOXYOLOOH = DNOXYOLO + OH : 	J(41) 	;
+{13878.} 	 DNOXYOLO = NC4MDCO2H + CH3COCO2H + NO2 : 	KDEC 	;
+{13879.} 	 C6CO4M2DB + OH = CO23C3CHO + CO + CO + CH3CO3 : 	1.15D-10 	;
+{13880.} 	 C6CO4M2DB = C4DBM2CO3 + HO2 + CO : 	J(34)*2 	;
+{13881.} 	 C5M2OHOCO3 + HO2 = C5134CO2OH + CH3CO3 + OH : 	KAPHO2*0.44 	;
+{13882.} 	 C5M2OHOCO3 + HO2 = C5M2OHCO3H : 	KAPHO2*0.56 	;
+{13883.} 	 C5M2OHOCO3 + NO = C5134CO2OH + CH3CO3 + NO2 : 	KAPNO 	;
+{13884.} 	 C5M2OHOCO3 + NO2 = C5M2OHOPAN : 	KFPAN 	;
+{13885.} 	 C5M2OHOCO3 + NO3 = C5134CO2OH + CH3CO3 + NO2 : 	KRO2NO3*1.74 	;
+{13886.} 	 C5M2OHOCO3 = C5134CO2OH + CH3CO3 : 	1.00D-11*RO2 	;
+{13887.} 	 C4COMOHCO3 + HO2 = C5CO234 + HO2 + OH : 	KAPHO2*0.44 	;
+{13888.} 	 C4COMOHCO3 + HO2 = C5COHOCO3H : 	KAPHO2*0.56 	;
+{13889.} 	 C4COMOHCO3 + NO = C5CO234 + NO2 + HO2 : 	KAPNO 	;
+{13890.} 	 C4COMOHCO3 + NO2 = C4COMOHPAN : 	KFPAN 	;
+{13891.} 	 C4COMOHCO3 + NO3 = C5CO234 + NO2 + HO2 : 	KRO2NO3*1.74 	;
+{13892.} 	 C4COMOHCO3 = C5CO234 + HO2 : 	1.00D-11*RO2 	;
+{13893.} 	 C23O3MCO3 + HO2 = C23O3MCO2H + O3 : 	KAPHO2*0.15 	;
+{13894.} 	 C23O3MCO3 + HO2 = C23O3MCO3H : 	KAPHO2*0.41 	;
+{13895.} 	 C23O3MCO3 + HO2 = C23O3MO2 + OH : 	KAPHO2*0.44 	;
+{13896.} 	 C23O3MCO3 + NO = C23O3MO2 + NO2 : 	KAPNO 	;
+{13897.} 	 C23O3MCO3 + NO2 = C23O3MCPAN : 	KFPAN 	;
+{13898.} 	 C23O3MCO3 + NO3 = C23O3MO2 + NO2 : 	KRO2NO3*1.74 	;
+{13899.} 	 C23O3MCO3 = C23O3MCO2H : 	1.00D-11*RO2*0.3 	;
+{13900.} 	 C23O3MCO3 = C23O3MO2 : 	1.00D-11*RO2*0.7 	;
+{13901.} 	 C23O3CCO3 + HO2 = C23O3CCO2H + O3 : 	KAPHO2*0.15 	;
+{13902.} 	 C23O3CCO3 + HO2 = C23O3CCO3H : 	KAPHO2*0.41 	;
+{13903.} 	 C23O3CCO3 + HO2 = MCOCOMOXO2 + OH : 	KAPHO2*0.44 	;
+{13904.} 	 C23O3CCO3 + NO = MCOCOMOXO2 + NO2 : 	KAPNO 	;
+{13905.} 	 C23O3CCO3 + NO2 = C23O3CPAN : 	KFPAN 	;
+{13906.} 	 C23O3CCO3 + NO3 = MCOCOMOXO2 + NO2 : 	KRO2NO3*1.74 	;
+{13907.} 	 C23O3CCO3 = C23O3CCO2H : 	1.00D-11*RO2*0.3 	;
+{13908.} 	 C23O3CCO3 = MCOCOMOXO2 : 	1.00D-11*RO2*0.7 	;
+{13909.} 	 MMALNHYOOH + OH = MMALANHYO2 : 	1.69D-11 	;
+{13910.} 	 MMALNHYOOH = MMALANHYO + OH : 	J(41) 	;
+{13911.} 	 MMALANHYO = CO2H3CO3 : 	KDEC 	;
+{13912.} 	 MMALNHY2OH + OH = MMALANHYO : 	1.34D-11 	;
+{13913.} 	 NDNMXYLOOH + OH = NDNMXYOLO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{13914.} 	 NDNMXYLOOH = NDNMXYOLO + OH : 	J(41) 	;
+{13915.} 	 NDNMXYOLO = NC4MDCO2H + CH3COCO2H + NO2 + HNO3 : 	KDEC 	;
+{13916.} 	 DNMXYOLOOH + OH = DNMXYOLO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{13917.} 	 DNMXYOLOOH = DNMXYOLO + OH : 	J(41) 	;
+{13918.} 	 DNMXYOLO = NC4MDCO2H + CH3COCO2H + NO2 : 	KDEC 	;
+{13919.} 	 C8CO4DB + OH = C5CO234 + CO + CO + HO2 + CO : 	7.04D-11 	;
+{13920.} 	 C8CO4DB = C5CO2DBCO3 + CH3CO3 : 	J(34)+J(35) 	;
+{13921.} 	 C7CO2OHCO3 + HO2 = C5CO3OH + CH3CO3 + OH : 	KAPHO2*0.44 	;
+{13922.} 	 C7CO2OHCO3 + HO2 = C7CO2OCO3H : 	KAPHO2*0.56 	;
+{13923.} 	 C7CO2OHCO3 + NO = C5CO3OH + CH3CO3 + NO2 : 	KAPNO 	;
+{13924.} 	 C7CO2OHCO3 + NO2 = C7CO2OHPAN : 	KFPAN 	;
+{13925.} 	 C7CO2OHCO3 + NO3 = C5CO3OH + CH3CO3 + NO2 : 	KRO2NO3*1.74 	;
+{13926.} 	 C7CO2OHCO3 = C5CO3OH + CH3CO3 : 	1.00D-11*RO2 	;
+{13927.} 	 TL4ONO2OOH + OH = TL4OHNO2O2 : 	1.52D-10 	;
+{13928.} 	 TL4ONO2OOH = TL4OHNO2O + OH : 	J(41) 	;
+{13929.} 	 TL4OHNO2O = CO2H3CHO + HO2 + CO + NO2 + CO : 	KDEC 	;
+{13930.} 	 NDNPXYLOOH + OH = NDNPXYOLO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{13931.} 	 NDNPXYLOOH = NDNPXYOLO + OH : 	J(41) 	;
+{13932.} 	 NDNPXYOLO = NC4MDCO2H + CH3COCO2H + NO2 + HNO3 : 	KDEC 	;
+{13933.} 	 DNPXYOLOOH + OH = DNPXYOLO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{13934.} 	 DNPXYOLOOH = DNPXYOLO + OH : 	J(41) 	;
+{13935.} 	 DNPXYOLO = NC4MDCO2H + CH3COCO2H + NO2 : 	KDEC 	;
+{13936.} 	 CO4DBC8 + OH = CO23C3CHO + CO + CO + CH3CO3 : 	8.35D-11 	;
+{13937.} 	 CO4DBC8 = C5DBCO2CO3 + CH3CO3 : 	J(34)+J(35) 	;
+{13938.} 	 C6MOHCOCO3 + HO2 = C6MOCOCO3H : 	KAPHO2*0.56 	;
+{13939.} 	 C6MOHCOCO3 + HO2 = DMKCOOH + HO2 + CO + OH : 	KAPHO2*0.44 	;
+{13940.} 	 C6MOHCOCO3 + NO = DMKCOOH + HO2 + CO + NO2 : 	KAPNO 	;
+{13941.} 	 C6MOHCOCO3 + NO2 = C6MOHCOPAN : 	KFPAN 	;
+{13942.} 	 C6MOHCOCO3 + NO3 = DMKCOOH + HO2 + CO + NO2 : 	KRO2NO3*1.74 	;
+{13943.} 	 C6MOHCOCO3 = DMKCOOH + HO2 + CO : 	1.0D-11*RO2 	;
+{13944.} 	 NDNEBZLOOH + OH = NDNEBNZLO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{13945.} 	 NDNEBZLOOH = NDNEBNZLO + OH : 	J(41) 	;
+{13946.} 	 NDNEBNZLO = NC4EDCO2H + HNO3 + CO + CO + NO2 : 	KDEC 	;
+{13947.} 	 DNEBNZLOOH + OH = DNEBNZLO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{13948.} 	 DNEBNZLOOH = DNEBNZLO + OH : 	J(41) 	;
+{13949.} 	 DNEBNZLO = NC4EDCO2H + HCOCO2H + NO2 : 	KDEC 	;
+{13950.} 	 C6ETCO4DB + OH = CO + CO + C2H5CO3 + C33CO : 	9.76D-11 	;
+{13951.} 	 C6ETCO4DB = C7CO2DBCO3 + HO2 + CO : 	J(34)*2 	;
+{13952.} 	 C7OHCO2CO3 + HO2 = C6134CO2OH + HO2 + CO + OH : 	KAPHO2*0.44 	;
+{13953.} 	 C7OHCO2CO3 + HO2 = C7OHO2CO3H : 	KAPHO2*0.56 	;
+{13954.} 	 C7OHCO2CO3 + NO = C6134CO2OH + HO2 + CO + NO2 : 	KAPNO 	;
+{13955.} 	 C7OHCO2CO3 + NO2 = C7OHCO2PAN : 	KFPAN 	;
+{13956.} 	 C7OHCO2CO3 + NO3 = C6134CO2OH + HO2 + CO + NO2 : 	KRO2NO3*1.74 	;
+{13957.} 	 C7OHCO2CO3 = C6134CO2OH + HO2 + CO : 	1.00D-11*RO2 	;
+{13958.} 	 NC4EDCO2H + OH = NC4EDCO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{13959.} 	 ECO3CO3 + HO2 = C2H5CO3 + CO + CO + OH : 	KAPHO2*0.44 	;
+{13960.} 	 ECO3CO3 + HO2 = ECO3CO3H : 	KAPHO2*0.56 	;
+{13961.} 	 ECO3CO3 + NO = C2H5CO3 + CO + CO + NO2 : 	KAPNO 	;
+{13962.} 	 ECO3CO3 + NO2 = ECO3PAN : 	KFPAN 	;
+{13963.} 	 ECO3CO3 + NO3 = C2H5CO3 + CO + CO + NO2 : 	KRO2NO3*1.74 	;
+{13964.} 	 ECO3CO3 = C2H5CO3 + CO + CO : 	1.00D-11*RO2 	;
+{13965.} 	 NDNPBZLOOH + OH = NDNPBNZLO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{13966.} 	 NDNPBZLOOH = NDNPBNZLO + OH : 	J(41) 	;
+{13967.} 	 NDNPBNZLO = NC4PDCO2H + HNO3 + CO + CO + NO2 : 	KDEC 	;
+{13968.} 	 DNPBNZLOOH + OH = DNPBNZLO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{13969.} 	 DNPBNZLOOH = DNPBNZLO + OH : 	J(41) 	;
+{13970.} 	 DNPBNZLO = NC4PDCO2H + HCOCO2H + NO2 : 	KDEC 	;
+{13971.} 	 C6PRCO4DB + OH = CO + CO + C3H7CO3 + C33CO : 	9.92D-11 	;
+{13972.} 	 C6PRCO4DB = C8CO2DBCO3 + HO2 + CO : 	J(34)*2 	;
+{13973.} 	 C8OHCO2CO3 + HO2 = C61CHO + HO2 + CO + OH : 	KAPHO2*0.44 	;
+{13974.} 	 C8OHCO2CO3 + HO2 = C8OHO2CO3H : 	KAPHO2*0.56 	;
+{13975.} 	 C8OHCO2CO3 + NO = C61CHO + HO2 + CO + NO2 : 	KAPNO 	;
+{13976.} 	 C8OHCO2CO3 + NO2 = C8OHCO2PAN : 	KFPAN 	;
+{13977.} 	 C8OHCO2CO3 + NO3 = C61CHO + HO2 + CO + NO2 : 	KRO2NO3*1.74 	;
+{13978.} 	 C8OHCO2CO3 = C61CHO + HO2 + CO : 	1.00D-11*RO2 	;
+{13979.} 	 NC4PDCO2H + OH = NC4PDCO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{13980.} 	 C61CO3H + OH = C61CO3 : 	1.18D-11 	;
+{13981.} 	 C61CO3H = CO45C5CHO + HO2 + OH : 	J(41)+J(35)+J(22) 	;
+{13982.} 	 C61CPAN + OH = CO45C5CHO + CO + NO2 : 	8.21D-12 	;
+{13983.} 	 C61CPAN = C61CO3 + NO2 : 	KBPAN 	;
+{13984.} 	 NDNIPBLOOH + OH = NDNIPBZLO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{13985.} 	 NDNIPBLOOH = NDNIPBZLO + OH : 	J(41) 	;
+{13986.} 	 NDNIPBZLO = NC4IPDCO2H + HNO3 + CO + CO + NO2 : 	KDEC 	;
+{13987.} 	 DNIPBZLOOH + OH = DNIPBNZLO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{13988.} 	 DNIPBZLOOH = DNIPBNZLO + OH : 	J(41) 	;
+{13989.} 	 DNIPBNZLO = NC4IPDCO2H + HCOCO2H + NO2 : 	KDEC 	;
+{13990.} 	 C6IPRCO4DB + OH = CO + CO + IPRCO3 + C33CO : 	9.97D-11 	;
+{13991.} 	 C6IPRCO4DB = C8DBCO2CO3 + HO2 + CO : 	J(34)*2 	;
+{13992.} 	 C8CO2OHCO3 + HO2 = C62CHO + HO2 + CO + OH : 	KAPHO2*0.44 	;
+{13993.} 	 C8CO2OHCO3 + HO2 = C8O2OHCO3H : 	KAPHO2*0.56 	;
+{13994.} 	 C8CO2OHCO3 + NO = C62CHO + HO2 + CO + NO2 : 	KAPNO 	;
+{13995.} 	 C8CO2OHCO3 + NO2 = C8CO2OHPAN : 	KFPAN 	;
+{13996.} 	 C8CO2OHCO3 + NO3 = C62CHO + HO2 + CO + NO2 : 	KRO2NO3*1.74 	;
+{13997.} 	 C8CO2OHCO3 = C62CHO + HO2 + CO : 	1.00D-11*RO2 	;
+{13998.} 	 NC4IPDCO2H + OH = NC4IPDCO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{13999.} 	 C62CO3H + OH = C62CO3 : 	9.80D-12 	;
+{14000.} 	 C62CO3H = C45IC5CHO + HO2 + OH : 	J(41)+J(35)+J(22) 	;
+{14001.} 	 C62CPAN + OH = C45IC5CHO + CO + NO2 : 	6.21D-12 	;
+{14002.} 	 C62CPAN = C62CO3 + NO2 : 	KBPAN 	;
+{14003.} 	 NDMMALYO2 + HO2 = NDMMALYOOH : 	KRO2HO2*0.770 	;
+{14004.} 	 NDMMALYO2 + NO = NDMMALYO + NO2 : 	KRO2NO 	;
+{14005.} 	 NDMMALYO2 + NO3 = NDMMALYO + NO2 : 	KRO2NO3 	;
+{14006.} 	 NDMMALYO2 = NDMMALYO : 	9.20D-14*RO2 	;
+{14007.} 	 DMMALYO2 + HO2 = DMMALYOOH : 	KRO2HO2*0.770 	;
+{14008.} 	 DMMALYO2 + NO = DMMALYO + NO2 : 	KRO2NO 	;
+{14009.} 	 DMMALYO2 + NO3 = DMMALYO + NO2 : 	KRO2NO3 	;
+{14010.} 	 DMMALYO2 = DMMALYO : 	9.20D-14*RO2*0.70 	;
+{14011.} 	 DMMALYO2 = DMMALYOH : 	9.20D-14*RO2*0.30 	;
+{14012.} 	 NDNT123OOH + OH = NDNT123LO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{14013.} 	 NDNT123OOH = NDNT123LO + OH : 	J(41) 	;
+{14014.} 	 NDNT123LO = NC5MDCO2H + CH3COCO2H + NO2 + HNO3 : 	KDEC 	;
+{14015.} 	 DNT123LOOH + OH = DNT123LO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{14016.} 	 DNT123LOOH = DNT123LO + OH : 	J(41) 	;
+{14017.} 	 DNT123LO = NC5MDCO2H + CH3COCO2H + NO2 : 	KDEC 	;
+{14018.} 	 NC5MDCO2H + OH = CO + NO2 + BIACET : 	1.90D-12*EXP(190/TEMP) 	;
+{14019.} 	 TM124NOOH + OH = TM124NO2O2 : 	1.50D-10 	;
+{14020.} 	 TM124NOOH = TM124NO2O + OH : 	J(41) 	;
+{14021.} 	 TM124NO2O = C5DBCOCO2H + CO + HO2 + CO + NO2 : 	KDEC 	;
+{14022.} 	 NDNT124OOH + OH = NDNT124LO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{14023.} 	 NDNT124OOH = NDNT124LO + OH : 	J(41) 	;
+{14024.} 	 NDNT124LO = NC5MDCO2H + CH3COCO2H + NO2 + HNO3 : 	KDEC 	;
+{14025.} 	 DNT124LOOH + OH = DNT124LO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{14026.} 	 DNT124LOOH = DNT124LO + OH : 	J(41) 	;
+{14027.} 	 DNT124LO = NC5MDCO2H + CH3COCO2H + NO2 : 	KDEC 	;
+{14028.} 	 CO4DBC9 + OH = C5CO234 + CH3CO3 + CO + CO : 	1.03D-10 	;
+{14029.} 	 CO4DBC9 = C4DBM2CO3 + CH3CO3 : 	J(34)+J(35) 	;
+{14030.} 	 C7MOHCOCO3 + HO2 = C7MOCOCO3H : 	KAPHO2*0.56 	;
+{14031.} 	 C7MOHCOCO3 + HO2 = DMKCOOH + CH3CO3 + OH : 	KAPHO2*0.44 	;
+{14032.} 	 C7MOHCOCO3 + NO = DMKCOOH + CH3CO3 + NO2 : 	KAPNO 	;
+{14033.} 	 C7MOHCOCO3 + NO2 = C7MOHCOPAN : 	KFPAN 	;
+{14034.} 	 C7MOHCOCO3 + NO3 = DMKCOOH + CH3CO3 + NO2 : 	KRO2NO3*1.74 	;
+{14035.} 	 C7MOHCOCO3 = DMKCOOH + CH3CO3 : 	1.00D-11*RO2 	;
+{14036.} 	 MXOHNO2OOH + OH = MXYOHNO2O2 : 	1.50D-10 	;
+{14037.} 	 MXOHNO2OOH = MXYOHNO2O + OH : 	J(41) 	;
+{14038.} 	 MXYOHNO2O = C5CODBCO2H + CO + CO + NO2 : 	KDEC 	;
+{14039.} 	 NDNOETLOOH + OH = NDNOETOLO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{14040.} 	 NDNOETLOOH = NDNOETOLO + OH : 	J(41) 	;
+{14041.} 	 NDNOETOLO = NC4MDCO2H + ECOCO2H + NO2 + HNO3 : 	KDEC 	;
+{14042.} 	 DNOETOLOOH + OH = DNOETOLO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{14043.} 	 DNOETOLOOH = DNOETOLO + OH : 	J(41) 	;
+{14044.} 	 DNOETOLO = NC4MDCO2H + ECOCO2H + NO2 : 	KDEC 	;
+{14045.} 	 C6CO4MEDB + OH = C5CO23CHO + CO + CO + CH3CO3 : 	1.17D-10 	;
+{14046.} 	 C6CO4MEDB = C4DBMECO3 + HO2 + CO : 	J(34)*2 	;
+{14047.} 	 C5MEJCO3 + HO2 = C5MEJCO3H : 	KAPHO2*0.56 	;
+{14048.} 	 C5MEJCO3 + HO2 = C6134CO2OH + CH3CO3 + OH : 	KAPHO2*0.44 	;
+{14049.} 	 C5MEJCO3 + NO = C6134CO2OH + CH3CO3 + NO2 : 	KAPNO 	;
+{14050.} 	 C5MEJCO3 + NO2 = C5MEJPAN : 	KFPAN 	;
+{14051.} 	 C5MEJCO3 + NO3 = C6134CO2OH + CH3CO3 + NO2 : 	KRO2NO3*1.74 	;
+{14052.} 	 C5MEJCO3 = C6134CO2OH + CH3CO3 : 	1.00D-11*RO2 	;
+{14053.} 	 NDNMETLOOH + OH = NDNMETOLO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{14054.} 	 NDNMETLOOH = NDNMETOLO + OH : 	J(41) 	;
+{14055.} 	 NDNMETOLO = NC4MDCO2H + ECOCO2H + NO2 + HNO3 : 	KDEC 	;
+{14056.} 	 DNMETOLOOH + OH = DNMETOLO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{14057.} 	 DNMETOLOOH = DNMETOLO + OH : 	J(41) 	;
+{14058.} 	 DNMETOLO = NC4MDCO2H + ECOCO2H + NO2 : 	KDEC 	;
+{14059.} 	 C7CO4EDB + OH = C2H5CO3 + CO + CH3CO3 + C33CO : 	8.52D-11 	;
+{14060.} 	 C7CO4EDB = C5DBECO3 + HO2 + CO : 	J(34)+J(35) 	;
+{14061.} 	 C6EO2OHCO3 + HO2 = C5CO3OH + C2H5CO3 + OH : 	KAPHO2*0.44 	;
+{14062.} 	 C6EO2OHCO3 + HO2 = C6EO2HCO3H : 	KAPHO2*0.56 	;
+{14063.} 	 C6EO2OHCO3 + NO = C5CO3OH + C2H5CO3 + NO2 : 	KAPNO 	;
+{14064.} 	 C6EO2OHCO3 + NO2 = C6EO2OHPAN : 	KFPAN 	;
+{14065.} 	 C6EO2OHCO3 + NO3 = C5CO3OH + C2H5CO3 + NO2 : 	KRO2NO3*1.74 	;
+{14066.} 	 C6EO2OHCO3 = C5CO3OH + C2H5CO3 : 	1.00D-11*RO2 	;
+{14067.} 	 NDNPETLOOH + OH = NDNPETOLO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{14068.} 	 NDNPETLOOH = NDNPETOLO + OH : 	J(41) 	;
+{14069.} 	 NDNPETOLO = NC4MDCO2H + ECOCO2H + NO2 + HNO3 : 	KDEC 	;
+{14070.} 	 DNPETOLOOH + OH = DNPETOLO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{14071.} 	 DNPETOLOOH = DNPETOLO + OH : 	J(41) 	;
+{14072.} 	 DNPETOLO = NC4MDCO2H + ECOCO2H + NO2 : 	KDEC 	;
+{14073.} 	 C7ECO4DB + OH = C5CO23CHO + CO + CH3CO3 + HO2 + CO : 	8.52D-11 	;
+{14074.} 	 C7ECO4DB = C5EDBCO3 + HO2 + CO : 	J(34)+J(35) 	;
+{14075.} 	 C7MJPCO3 + HO2 = C7EDCCO + HO2 + CO + OH : 	KAPHO2*0.44 	;
+{14076.} 	 C7MJPCO3 + HO2 = C7MJPCO3H : 	KAPHO2*0.56 	;
+{14077.} 	 C7MJPCO3 + NO = C7EDCCO + HO2 + CO + NO2 : 	KAPNO 	;
+{14078.} 	 C7MJPCO3 + NO2 = C7MJPPAN : 	KFPAN 	;
+{14079.} 	 C7MJPCO3 + NO3 = C7EDCCO + HO2 + CO + NO2 : 	KRO2NO3*1.74 	;
+{14080.} 	 C7MJPCO3 = C7EDCCO + HO2 + CO : 	1.00D-11*RO2 	;
+{14081.} 	 C23O3ECO3 + HO2 = C23O3ECO2H + O3 : 	KAPHO2*0.15 	;
+{14082.} 	 C23O3ECO3 + HO2 = C23O3ECO3H : 	KAPHO2*0.41 	;
+{14083.} 	 C23O3ECO3 + HO2 = C23O3EO2 + OH : 	KAPHO2*0.44 	;
+{14084.} 	 C23O3ECO3 + NO = C23O3EO2 + NO2 : 	KAPNO 	;
+{14085.} 	 C23O3ECO3 + NO2 = C23O3ECPAN : 	KFPAN 	;
+{14086.} 	 C23O3ECO3 + NO3 = C23O3EO2 + NO2 : 	KRO2NO3*1.74 	;
+{14087.} 	 C23O3ECO3 = C23O3ECO2H : 	1.00D-11*RO2*0.3 	;
+{14088.} 	 C23O3ECO3 = C23O3EO2 : 	1.00D-11*RO2*0.7 	;
+{14089.} 	 CO356OCOOH + OH = CO356OCO2 : 	1.65D-11 	;
+{14090.} 	 CO356OCOOH = CO356OCO + OH : 	J(41) 	;
+{14091.} 	 CO356OCO = CH3CHO + CO + CH3CO3 : 	KDEC 	;
+{14092.} 	 EMPOHNO2O2 + HO2 = EMPONO2OOH : 	KRO2HO2*0.859 	;
+{14093.} 	 EMPOHNO2O2 + NO = EMPOHNO2O + NO2 : 	KRO2NO 	;
+{14094.} 	 EMPOHNO2O2 + NO3 = EMPOHNO2O + NO2 : 	KRO2NO3 	;
+{14095.} 	 EMPOHNO2O2 = EMPOHNO2O : 	9.20D-14*RO2 	;
+{14096.} 	 OH + INCNCO2H = MACRNB + NO2 : 	1.66D-12 	;
+{14097.} 	 INCNCO3H = MACRNB + NO2 + OH : 	J(41) 	;
+{14098.} 	 OH + INCNCO3H = INCNCO3 : 	4.74D-12 	;
+{14099.} 	 INCNPAN = INCNCO3 + NO2 : 	KBPAN 	;
+{14100.} 	 OH + INCNPAN = MACRNB + NO2 + NO3 : 	1.14D-12 	;
+{14101.} 	 MACRNBCO2H + OH = COHM2CO2H + NO2 : 	1.23D-12*0.32 	;
+{14102.} 	 MACRNBCO2H + OH = NOA + HO2 : 	1.23D-12*0.68 	;
+{14103.} 	 MACRNBCO3H + OH = COHM2CO3H + NO2 : 	4.31D-12*0.09 	;
+{14104.} 	 MACRNBCO3H + OH = MACRNBCO3 : 	4.31D-12*0.91 	;
+{14105.} 	 MACRNBCO3H = NOA + HO2 + OH : 	J(41) 	;
+{14106.} 	 MACRNBPAN + OH = COHM2PAN + NO2 : 	7.10D-13 	;
+{14107.} 	 MACRNBPAN = MACRNBCO3 + NO2 : 	KBPAN 	;
+{14108.} 	 INAHPCO2H = HMVKANO3 + OH + HO2 : 	J(41) 	;
+{14109.} 	 OH + INAHPCO2H = HMVKANO3 + OH : 	6.50D-12 	;
+{14110.} 	 INAHPCO3H = HMVKANO3 + OH + OH : 	J(41)*2 	;
+{14111.} 	 OH + INAHPCO3H = INAHPCO3 : 	9.58D-12 	;
+{14112.} 	 INAHPPAN = HMVKANO3 + OH + NO3 : 	J(41) 	;
+{14113.} 	 INAHPPAN = INAHPCO3 + NO2 : 	KBPAN 	;
+{14114.} 	 OH + INAHPPAN = HMVKANO3 + OH + CO + NO2 : 	5.98D-12 	;
+{14115.} 	 OH + INANCO2H = HMVKANO3 + NO2 : 	1.36D-12 	;
+{14116.} 	 INANCO3H = HMVKANO3 + NO2 + OH : 	J(41) 	;
+{14117.} 	 OH + INANCO3H = INANCO3 : 	4.08D-12 	;
+{14118.} 	 INANPAN = INANCO3 + NO2 : 	KBPAN 	;
+{14119.} 	 OH + INANPAN = HMVKANO3 + NO2 + CO + NO2 : 	4.85D-13 	;
+{14120.} 	 INANCOCO3 + HO2 = INANCOCO2H + O3 : 	KAPHO2*0.15 	;
+{14121.} 	 INANCOCO3 + HO2 = INANCOCO3H : 	KAPHO2*0.41 	;
+{14122.} 	 INANCOCO3 + HO2 = NO2 + CO23C4NO3 + OH : 	KAPHO2*0.44 	;
+{14123.} 	 INANCOCO3 + NO = NO2 + CO23C4NO3 + NO2 : 	KAPNO 	;
+{14124.} 	 INANCOCO3 + NO2 = INANCOPAN : 	KFPAN 	;
+{14125.} 	 INANCOCO3 + NO3 = NO2 + CO23C4NO3 + NO2 : 	KRO2NO3*1.74 	;
+{14126.} 	 INANCOCO3 = INANCOCO2H : 	1.00D-11*0.3*RO2 	;
+{14127.} 	 INANCOCO3 = NO2 + CO23C4NO3 : 	1.00D-11*0.7*RO2 	;
+{14128.} 	 OH + INAHCO2H = HMVKANO3 + HO2 : 	3.04D-12 	;
+{14129.} 	 INAHCO3H = HMVKANO3 + HO2 + OH : 	J(41) 	;
+{14130.} 	 OH + INAHCO3H = INAHCO3 : 	6.12D-12 	;
+{14131.} 	 INAHPAN = INAHPCO3 + NO2 : 	KBPAN 	;
+{14132.} 	 OH + INAHPAN = HMVKANO3 + HO2 + CO + NO2 : 	2.52D-12 	;
+{14133.} 	 HIEB1OOH + OH = MVKOHAOH + CO + OH : 	4.30D-11 	;
+{14134.} 	 HIEB1OOH = HIEB1O + OH : 	J(41) 	;
+{14135.} 	 HIEB1OOH = MVKOHAOH + CO + OH + HO2 : 	J(17) 	;
+{14136.} 	 HIEB1O = HOCH2COCHO + HOCH2CHO + HO2 : 	KDEC 	;
+{14137.} 	 HIEB2OOH + OH = HMACROH + CO + OH : 	5.74D-11 	;
+{14138.} 	 HIEB2OOH = HIEB2O + OH : 	J(41) 	;
+{14139.} 	 HIEB2OOH = HMACROH + CO + OH + HO2 : 	J(15) 	;
+{14140.} 	 HIEB2O = H13CO2C3 + GLYOX + HO2 : 	KDEC 	;
+{14141.} 	 HPNC524CO + OH = HMVKNO3 + CO + OH : 	2.98D-11 	;
+{14142.} 	 HPNC524CO = HMVKNO3 + CO + HO2 + OH : 	J(17) 	;
+{14143.} 	 DNC524CO + OH = HMVKNO3 + CO + NO2 : 	1.93D-11 	;
+{14144.} 	 DNC524CO = HMVKNO3 + CO + HO2 + NO2 : 	J(17) 	;
+{14145.} 	 HMVKNO3 + OH = HMVKNGLYOX + HO2 : 	3.85D-12 	;
+{14146.} 	 HMVKNO3 = HOCH2CHO + NO2 + CO + CO + HO2 : 	J(56)+J(57) 	;
+{14147.} 	 H13CO2C3 + OH = HOCH2COCHO + HO2 : 	5.25D-12 	;
+{14148.} 	 H13CO2C3 = HOCH2CO3 + HCHO + HO2 : 	J(22) 	;
+{14149.} 	 HNC524CO + OH = HMVKNO3 + CO + HO2 : 	2.67D-11 	;
+{14150.} 	 HNC524CO = HMVKNO3 + CO + HO2 + HO2 : 	J(17) 	;
+{14151.} 	 HMACO2H + OH = HOCH2CO3 + HCHO : 	1.84D-11 	;
+{14152.} 	 HMACO3H + OH = HMACO3 : 	1.99D-11 	;
+{14153.} 	 HMACO3H = HOCH2CO3 + HCHO + OH : 	J(41) 	;
+{14154.} 	 HMPAN + OH = H13CO2C3 + HCHO + CO + NO2 : 	2.90D-11 	;
+{14155.} 	 HMPAN = HMACO3 + NO2 : 	KBPAN 	;
+{14156.} 	 HMGLYOO + CO = HOCH2COCHO : 	1.20D-15 	;
+{14157.} 	 HMGLYOO + NO = HOCH2COCHO + NO2 : 	1.00D-14 	;
+{14158.} 	 HMGLYOO + NO2 = HOCH2COCHO + NO3 : 	1.00D-15 	;
+{14159.} 	 HMGLYOO + SO2 = HOCH2COCHO + SO3 : 	7.00D-14 	;
+{14160.} 	 HMGLYOO = HOCH2COCHO + H2O2 : 	6.00D-18*H2O 	;
+{14161.} 	 HMACROOH + OH = HMACRO2 : 	4.17D-11 	;
+{14162.} 	 HMACROOH = H13CO2C3 + CO + HO2 + OH : 	J(17) 	;
+{14163.} 	 HMACROOH = HMACRO + OH : 	J(41) 	;
+{14164.} 	 HMACRO = H13CO2C3 + CO + HO2 : 	KDEC 	;
+{14165.} 	 HMACROH + OH = HMACRO : 	3.82D-11 	;
+{14166.} 	 HMACROH = H13CO2C3 + CO + HO2 + HO2 : 	J(17) 	;
+{14167.} 	 MMALNACO2H + OH = CONM2CHO + HO2 : 	4.93D-12 	;
+{14168.} 	 MMALNACO2H = MGLYOX + NO2 + HCOCO2H : 	J(56)+J(57) 	;
+{14169.} 	 MMALNACO3H + OH = MMALNACO3 : 	8.01D-12 	;
+{14170.} 	 MMALNACO3H = CONM2CHO + HO2 + OH : 	J(41) 	;
+{14171.} 	 MMALNACO3H = MGLYOX + NO2 + HCOCO3H : 	J(56)+J(57) 	;
+{14172.} 	 MMALNAPAN + OH = CONM2CHO + HO2 + NO3 : 	4.41D-12 	;
+{14173.} 	 MMALNAPAN = MGLYOX + NO2 + GLYPAN : 	J(56)+J(57) 	;
+{14174.} 	 MMALNAPAN = MMALNACO3 + NO2 : 	KBPAN 	;
+{14175.} 	 CH3COPAN + OH = HCHO + CO + CO + NO2 : 	1.02D-13 	;
+{14176.} 	 CH3COPAN = CH3COCO3 + NO2 : 	KBPAN 	;
+{14177.} 	 INB1HPCO2H + OH = MACRNO3 + OH : 	7.40D-12 	;
+{14178.} 	 INB1HPCO3H + OH = INB1HPCO3 : 	1.09D-11 	;
+{14179.} 	 INB1HPCO3H = MACRNO3 + OH + OH : 	J(41) 	;
+{14180.} 	 INB1HPPAN + OH = MACRNO3 + CO + OH + NO2 : 	7.26D-12 	;
+{14181.} 	 INB1HPPAN = INB1HPCO3 + NO2 : 	KBPAN 	;
+{14182.} 	 INB1NACO2H + OH = MACRNO3 + NO2 : 	1.72D-12 	;
+{14183.} 	 INB1NACO3H + OH = INB1NACO3 : 	5.18D-12 	;
+{14184.} 	 INB1NACO3H = MACRNO3 + NO2 + OH : 	J(41) 	;
+{14185.} 	 INB1NAPAN + OH = MACRNO3 + CO + NO2 + NO2 : 	1.58D-12 	;
+{14186.} 	 INB1NAPAN = INB1NACO3 + NO2 : 	KBPAN 	;
+{14187.} 	 INB1NBCO2H + OH = MVKNO3 + NO2 : 	1.73D-12 	;
+{14188.} 	 INB1NBCO3H + OH = INB1NBCO3 : 	5.19D-12 	;
+{14189.} 	 INB1NBCO3H = MVKNO3 + NO2 + OH : 	J(41) 	;
+{14190.} 	 INB1NBPAN + OH = MVKNO3 + CO + NO2 + NO2 : 	1.59D-12 	;
+{14191.} 	 INB1NBPAN = INB1NBCO3 + NO2 : 	KBPAN 	;
+{14192.} 	 MMALNACO3 + HO2 = CONM2CHO + HO2 + OH : 	KAPHO2*0.44 	;
+{14193.} 	 MMALNACO3 + HO2 = MMALNACO2H + O3 : 	KAPHO2*0.15 	;
+{14194.} 	 MMALNACO3 + HO2 = MMALNACO3H : 	KAPHO2*0.41 	;
+{14195.} 	 MMALNACO3 + NO = CONM2CHO + HO2 + NO2 : 	KAPNO 	;
+{14196.} 	 MMALNACO3 + NO2 = MMALNAPAN : 	KFPAN 	;
+{14197.} 	 MMALNACO3 + NO3 = CONM2CHO + HO2 + NO2 : 	KRO2NO3*1.74 	;
+{14198.} 	 MMALNACO3 = CONM2CHO + HO2 : 	1.00D-11*0.7*RO2 	;
+{14199.} 	 MMALNACO3 = MMALNACO2H : 	1.00D-11*0.3*RO2 	;
+{14200.} 	 MMALNBCO3 + HO2 = CO2H3CHO + NO2 + OH : 	KAPHO2*0.44 	;
+{14201.} 	 MMALNBCO3 + HO2 = MMALNBCO2H + O3 : 	KAPHO2*0.15 	;
+{14202.} 	 MMALNBCO3 + HO2 = MMALNBCO3H : 	KAPHO2*0.41 	;
+{14203.} 	 MMALNBCO3 + NO = CO2H3CHO + NO2 + NO2 : 	KAPNO 	;
+{14204.} 	 MMALNBCO3 + NO2 = MMALNBPAN : 	KFPAN 	;
+{14205.} 	 MMALNBCO3 + NO3 = CO2H3CHO + NO2 + NO2 : 	KRO2NO3*1.74 	;
+{14206.} 	 MMALNBCO3 = CO2H3CHO + NO2 : 	1.00D-11*0.7*RO2 	;
+{14207.} 	 MMALNBCO3 = MMALNBCO2H : 	1.00D-11*0.3*RO2 	;
+{14208.} 	 C57NO3CO2H + OH = MMALNBCO2H + HO2 : 	6.52D-12 	;
+{14209.} 	 C57NO3CO3H + OH = C57NO3CO3 : 	6.52D-12*0.39 	;
+{14210.} 	 C57NO3CO3H + OH = MMALNBCO3H + HO2 : 	6.52D-12*0.61 	;
+{14211.} 	 C57NO3CO3H = HO12CO3C4 + NO2 + OH : 	J(41) 	;
+{14212.} 	 C57NO3PAN + OH = MMALNBPAN + HO2 : 	6.00D-12 	;
+{14213.} 	 C57NO3PAN = C57NO3CO3 + NO2 : 	KBPAN 	;
+{14214.} 	 INDHPCO3H + OH = INDHPCO3 : 	8.64D-12 	;
+{14215.} 	 INDHPCO3H = MVKNO3 + OH + OH : 	J(41)*2 	;
+{14216.} 	 INDHPPAN + OH = MVKNO3 + NO3 : 	5.04D-12 	;
+{14217.} 	 INDHPPAN = INDHPCO3 + NO2 : 	KBPAN 	;
+{14218.} 	 INDHPPAN = MVKNO3 + OH + NO3 : 	J(41) 	;
+{14219.} 	 INDHCO3H + OH = INDHCO3 : 	5.66D-12 	;
+{14220.} 	 INDHCO3H = MVKNO3 + OH + HO2 : 	J(41) 	;
+{14221.} 	 INDHPAN + OH = MVKNO3 + NO3 : 	1.96D-12 	;
+{14222.} 	 INDHPAN = INDHCO3 + NO2 : 	KBPAN 	;
+{14223.} 	 ACCOMECO3H + OH = ACCOMECO3 : 	3.59D-12 	;
+{14224.} 	 ACCOMECO3H = MECOACETO2 + OH : 	J(41) 	;
+{14225.} 	 ACCOMEPAN + OH = METACETHO + CO + CO + NO2 : 	1.00D-14 	;
+{14226.} 	 ACCOMEPAN = ACCOMECO3 + NO2 : 	KBPAN 	;
+{14227.} 	 IPRFORMOOH + OH = IPRFORMO2 : 	3.96D-12 	;
+{14228.} 	 IPRFORMOOH = IPRFORMO + OH : 	J(41) 	;
+{14229.} 	 IPRFORMNO3 + OH = CH3COCH3 + NO2 : 	1.44D-13 	;
+{14230.} 	 IPRFORMNO3 = IPRFORMO + NO2 : 	J(55) 	;
+{14231.} 	 IPRFORMO = CH3OCH3 + HO2 : 	KDEC 	;
+{14232.} 	 IPRFORMOH + OH = IPRFORMO : 	4.08D-13 	;
+{14233.} 	 PRCOFOROOH + OH = PRCOFORMO2 : 	1.09D-10 	;
+{14234.} 	 PRCOFOROOH = PRCOFORMO + OH : 	J(41) 	;
+{14235.} 	 PRCOFORMO = MECOFORMO2 + CH3CHO : 	KDEC 	;
+{14236.} 	 PRNOCOMOOH + OH = PRONOCOMO2 : 	4.65D-12 	;
+{14237.} 	 PRNOCOMOOH = PRONOCOMO + OH : 	J(41) 	;
+{14238.} 	 PRONOCOMO = HCHO + CH3COCH2O2 : 	KDEC 	;
+{14239.} 	 CO23C4CO3H = BIACETO2 + OH : 	J(41)+J(15) 	;
+{14240.} 	 OH + CO23C4CO3H = CO23C4CO3 : 	4.23D-12 	;
+{14241.} 	 C5PAN9 = CO23C4CO3 + NO2 : 	KBPAN 	;
+{14242.} 	 OH + C5PAN9 = CO23C3CHO + CO + NO2 : 	3.12D-13 	;
+{14243.} 	 HO13C3CO3 + HO2 = HO13C3CO3H : 	KAPHO2*0.56 	;
+{14244.} 	 HO13C3CO3 + HO2 = HOC2H4CHO + HO2 + OH : 	KAPHO2*0.44 	;
+{14245.} 	 HO13C3CO3 + NO = HOC2H4CHO + NO2 + HO2 : 	KAPNO 	;
+{14246.} 	 HO13C3CO3 + NO2 = C4PAN2 : 	KFPAN 	;
+{14247.} 	 HO13C3CO3 + NO3 = HOC2H4CHO + NO2 + HO2 : 	KRO2NO3*1.74 	;
+{14248.} 	 HO13C3CO3 = HOC2H4CHO + HO2 : 	1.00D-11*RO2 	;
+{14249.} 	 C5CO23O2 + HO2 = C5CO23OOH : 	KRO2HO2*0.706 	;
+{14250.} 	 C5CO23O2 + NO = C5CO23O + NO2 : 	KRO2NO 	;
+{14251.} 	 C5CO23O2 + NO3 = C5CO23O + NO2 : 	KRO2NO3 	;
+{14252.} 	 C5CO23O2 = C5CO23O : 	2.00D-12*RO2 	;
+{14253.} 	 C6CO134OOH + OH = C5CO34CO3 : 	5.35D-12 	;
+{14254.} 	 C6CO134OOH = C5CO23O2 + OH : 	J(41) 	;
+{14255.} 	 C6CO134PAN + OH = C5CO23CHO + CO + NO2 : 	1.76D-12 	;
+{14256.} 	 C6CO134PAN = C5CO34CO3 + NO2 : 	KBPAN 	;
+{14257.} 	 CHOC2CO3 + HO2 = CHOC2CO2H + O3 : 	KAPHO2*0.15 	;
+{14258.} 	 CHOC2CO3 + HO2 = CHOC2CO3H : 	KAPHO2*0.41 	;
+{14259.} 	 CHOC2CO3 + HO2 = CHOC2H4O2 + OH : 	KAPHO2*0.44 	;
+{14260.} 	 CHOC2CO3 + NO = CHOC2H4O2 + NO2 : 	KAPNO 	;
+{14261.} 	 CHOC2CO3 + NO2 = CHOC2PAN : 	KFPAN 	;
+{14262.} 	 CHOC2CO3 + NO3 = CHOC2H4O2 + NO2 : 	KRO2NO3*1.74 	;
+{14263.} 	 CHOC2CO3 = CHOC2CO2H : 	1.00D-11*RO2*0.3 	;
+{14264.} 	 CHOC2CO3 = CHOC2H4O2 : 	1.00D-11*RO2*0.7 	;
+{14265.} 	 CHOC3COCO3 + HO2 = CHOC3COO2 + OH : 	KAPHO2*0.44 	;
+{14266.} 	 CHOC3COCO3 + HO2 = CHOC3COOOH : 	KAPHO2*0.56 	;
+{14267.} 	 CHOC3COCO3 + NO = CHOC3COO2 + NO2 : 	KAPNO 	;
+{14268.} 	 CHOC3COCO3 + NO2 = CHOC3COPAN : 	KFPAN 	;
+{14269.} 	 CHOC3COCO3 + NO3 = CHOC3COO2 + NO2 : 	KRO2NO3*1.74 	;
+{14270.} 	 CHOC3COCO3 = CHOC3COO2 : 	1.00D-11*RO2 	;
+{14271.} 	 C5124COCO3 + HO2 = C5124COO2 + OH : 	KAPHO2*0.44 	;
+{14272.} 	 C5124COCO3 + HO2 = C5TRONCO3H : 	KAPHO2*0.56 	;
+{14273.} 	 C5124COCO3 + NO = C5124COO2 + NO2 : 	KAPNO 	;
+{14274.} 	 C5124COCO3 + NO2 = C5124COPAN : 	KFPAN 	;
+{14275.} 	 C5124COCO3 + NO3 = C5124COO2 + NO2 : 	KRO2NO3*1.74 	;
+{14276.} 	 C5124COCO3 = C5124COO2 : 	1.00D-11*RO2 	;
+{14277.} 	 CO235C6CO3 + HO2 = C235C6CO3H : 	KAPHO2*0.56 	;
+{14278.} 	 CO235C6CO3 + HO2 = CO235C6O2 + OH : 	KAPHO2*0.44 	;
+{14279.} 	 CO235C6CO3 + NO = CO235C6O2 + NO2 : 	KAPNO 	;
+{14280.} 	 CO235C6CO3 + NO2 = C7PAN3 : 	KFPAN 	;
+{14281.} 	 CO235C6CO3 + NO3 = CO235C6O2 + NO2 : 	KRO2NO3*1.74 	;
+{14282.} 	 CO235C6CO3 = CO235C6O2 : 	1.00D-11*RO2 	;
+{14283.} 	 C106OOH + OH = C106O2 : 	8.01D-11 	;
+{14284.} 	 C106OOH = C106O + OH : 	J(41)+J(15) 	;
+{14285.} 	 C106NO3 + OH = CO235C6CHO + CH3COCH3 + NO2 : 	7.03D-11 	;
+{14286.} 	 C106NO3 = C106O + NO2 : 	J(55)+J(15) 	;
+{14287.} 	 C106O = C716O2 + CH3COCH3 : 	KDEC 	;
+{14288.} 	 C106OH + OH = C106O : 	7.66D-11 	;
+{14289.} 	 C106OH = C106O + HO2 : 	J(15) 	;
+{14290.} 	 NC71O2 + HO2 = NC71OOH : 	KRO2HO2*0.820 	;
+{14291.} 	 NC71O2 + NO = NC71O + NO2 : 	KRO2NO 	;
+{14292.} 	 NC71O2 + NO3 = NC71O + NO2 : 	KRO2NO3 	;
+{14293.} 	 NC71O2 = NC71O : 	2.50D-13*RO2 	;
+{14294.} 	 C717OOH + OH = CO235C6CHO + OH : 	2.00D-10 	;
+{14295.} 	 C717OOH = C717O + OH : 	J(41)+J(35) 	;
+{14296.} 	 C717NO3 + OH = CO235C6CHO + NO2 : 	2.23D-11 	;
+{14297.} 	 C717NO3 = C717O + NO2 : 	J(54)+J(35) 	;
+{14298.} 	 C717O = CO235C6CHO + HO2 : 	KROSEC*O2 	;
+{14299.} 	 C717OH + OH = CO235C6CHO + HO2 : 	1.26D-10 	;
+{14300.} 	 C717OH = C717O + HO2 : 	J(35) 	;
+{14301.} 	 C811CO3H + OH = C811CO3 : 	1.04D-11 	;
+{14302.} 	 C811CO3H = C811O2 + OH : 	J(41) 	;
+{14303.} 	 C811O2 + HO2 = C811OOH : 	KRO2HO2*0.859 	;
+{14304.} 	 C811O2 + NO = C811NO3 : 	KRO2NO*0.138 	;
+{14305.} 	 C811O2 + NO = C811O + NO2 : 	KRO2NO*0.862 	;
+{14306.} 	 C811O2 + NO3 = C811O + NO2 : 	KRO2NO3 	;
+{14307.} 	 C811O2 = C721CHO : 	1.30D-12*RO2*0.2 	;
+{14308.} 	 C811O2 = C811O : 	1.30D-12*RO2*0.6 	;
+{14309.} 	 C811O2 = C811OH : 	1.30D-12*RO2*0.2 	;
+{14310.} 	 PINIC + OH = C811O2 : 	7.29D-12 	;
+{14311.} 	 C811PAN + OH = C721CHO + CO + NO2 : 	6.77D-12 	;
+{14312.} 	 C811PAN = C811CO3 + NO2 : 	KBPAN 	;
+{14313.} 	 CHOC3COO2 + HO2 = C413COOOH : 	KRO2HO2*0.625 	;
+{14314.} 	 CHOC3COO2 + NO = CHOC3COO + NO2 : 	KRO2NO 	;
+{14315.} 	 CHOC3COO2 + NO3 = CHOC3COO + NO2 : 	KRO2NO3 	;
+{14316.} 	 CHOC3COO2 = CHOC3COO : 	2.00D-12*RO2 	;
+{14317.} 	 C921OOH + OH = C921O2 : 	1.29D-11 	;
+{14318.} 	 C921OOH = C921O + OH : 	J(41)+J(22) 	;
+{14319.} 	 C921O = C922O2 : 	KDEC 	;
+{14320.} 	 C98OOH + OH = C98O2 : 	2.05D-11 	;
+{14321.} 	 C98OOH = C98O + OH : 	J(41)+J(35) 	;
+{14322.} 	 C98NO3 + OH = CH3COCH3 + C614CO + NO2 : 	5.37D-12 	;
+{14323.} 	 C98NO3 = C98O + NO2 : 	J(55)+J(35) 	;
+{14324.} 	 C98O = C614O2 + CH3COCH3 : 	KDEC 	;
+{14325.} 	 C98OH + OH = C98O : 	1.69D-11 	;
+{14326.} 	 C98OH = C98O + HO2 : 	J(35) 	;
+{14327.} 	 C86OOH + OH = C86O2 : 	3.45D-11 	;
+{14328.} 	 C86OOH = C86O + OH : 	J(41)+J(15) 	;
+{14329.} 	 C86O = C511O2 + CH3COCH3 : 	KDEC 	;
+{14330.} 	 H3C25C6CO3 + HO2 = H3C25C6O2 + OH : 	KAPHO2*0.44 	;
+{14331.} 	 H3C25C6CO3 + HO2 = H3C25CCO2H + O3 : 	KAPHO2*0.15 	;
+{14332.} 	 H3C25C6CO3 + HO2 = H3C25CCO3H : 	KAPHO2*0.41 	;
+{14333.} 	 H3C25C6CO3 + NO = H3C25C6O2 + NO2 : 	KAPNO 	;
+{14334.} 	 H3C25C6CO3 + NO2 = H3C25C6PAN : 	KFPAN 	;
+{14335.} 	 H3C25C6CO3 + NO3 = H3C25C6O2 + NO2 : 	KRO2NO3*1.74 	;
+{14336.} 	 H3C25C6CO3 = H3C25C6O2 : 	1.00D-11*RO2*0.7 	;
+{14337.} 	 H3C25C6CO3 = H3C25CCO2H : 	1.00D-11*RO2*0.3 	;
+{14338.} 	 H3C25C6O2 + HO2 = H3C25C6OOH : 	KRO2HO2*0.770 	;
+{14339.} 	 H3C25C6O2 + NO = H3C25C6O + NO2 : 	KRO2NO 	;
+{14340.} 	 H3C25C6O2 + NO3 = H3C25C6O + NO2 : 	KRO2NO3 	;
+{14341.} 	 H3C25C6O2 = H3C25C5CHO : 	2.00D-12*RO2*0.2 	;
+{14342.} 	 H3C25C6O2 = H3C25C6O : 	2.00D-12*RO2*0.6 	;
+{14343.} 	 H3C25C6O2 = H3C25C6OH : 	2.00D-12*RO2*0.2 	;
+{14344.} 	 C919OOH + OH = C919O2 : 	1.01D-10 	;
+{14345.} 	 C919OOH = C919O + OH : 	J(41)+J(15)*2 	;
+{14346.} 	 C919NO3 + OH = HCOCH2CHO + HCOCH2CHO + CH3COCH3 + NO2 : 	9.14D-11 	;
+{14347.} 	 C919NO3 = C919O + NO2 : 	J(55)+J(15)*2 	;
+{14348.} 	 C919O = C620O2 + CH3COCH3 : 	KDEC 	;
+{14349.} 	 C919OH + OH = C919O : 	9.73D-11 	;
+{14350.} 	 C919OH = C919O + HO2 : 	J(15) 	;
+{14351.} 	 C914OOH + OH = C914CO + OH : 	8.67D-11 	;
+{14352.} 	 C914OOH = C914O + OH : 	J(41)+J(15) 	;
+{14353.} 	 C914O = C87CO3 : 	KDEC 	;
+{14354.} 	 C914CO + OH = C87CO3 : 	7.09D-11 	;
+{14355.} 	 C914CO = C87CO3 : 	J(15) 	;
+{14356.} 	 C914OH + OH = C914CO + HO2 : 	7.44D-11 	;
+{14357.} 	 C916OOH + OH = C916O2 : 	9.73D-11 	;
+{14358.} 	 C916OOH = C916O + OH : 	J(41)+J(15)*2 	;
+{14359.} 	 C916NO3 + OH = CH3COCH3 + CO123C5CHO + NO2 : 	9.23D-11 	;
+{14360.} 	 C916NO3 = C916O + NO2 : 	J(54)+J(15)*2 	;
+{14361.} 	 C916O = CH3COCH3 + C616O2 : 	KDEC 	;
+{14362.} 	 C916OH + OH = C916O : 	9.03D-11 	;
+{14363.} 	 C916OH = C916O + HO2 : 	J(15)*2 	;
+{14364.} 	 C88CO2H + OH = C88O2 : 	1.02D-11 	;
+{14365.} 	 C88CO3H + OH = C88CO3 : 	1.37D-11 	;
+{14366.} 	 C88CO3H = C88O2 + OH : 	J(41) 	;
+{14367.} 	 C88PAN + OH = C88CO + CO + NO2 : 	7.50D-12 	;
+{14368.} 	 C88PAN = C88CO3 + NO2 : 	KBPAN 	;
+{14369.} 	 C88OOH + OH = C88CO + OH : 	5.71D-11 	;
+{14370.} 	 C88OOH = C88O + OH : 	J(41) 	;
+{14371.} 	 C88O = C718CO3 : 	KDEC 	;
+{14372.} 	 C88CO + OH = C718CO3 : 	5.80D-12 	;
+{14373.} 	 C88OH + OH = C88CO + HO2 : 	2.58D-11 	;
+{14374.} 	 C512OOH + OH = CO13C4CHO + OH : 	1.01D-10 	;
+{14375.} 	 C512OOH = C512O + OH : 	J(41)+J(15) 	;
+{14376.} 	 C512NO3 + OH = CO13C4CHO + NO2 : 	6.65D-11 	;
+{14377.} 	 C512NO3 = C512O + NO2 : 	J(53)+J(15) 	;
+{14378.} 	 C512O = C513O2 : 	8.40D+10*EXP(-2567/TEMP) 	;
+{14379.} 	 C512O = CO13C3CO2H + HCHO + HO2 : 	KDEC 	;
+{14380.} 	 C512OH + OH = CO13C4CHO + HO2 : 	7.96D-11 	;
+{14381.} 	 C512OH = C512O + HO2 : 	J(15) 	;
+{14382.} 	 C619OOH + OH = C619CO + OH : 	5.95D-11 	;
+{14383.} 	 C619OOH = C619O + OH : 	J(41) 	;
+{14384.} 	 C619O = C512CO3 : 	KDEC 	;
+{14385.} 	 C619OH + OH = C619CO + HO2 : 	2.82D-11 	;
+{14386.} 	 C810O2 + HO2 = C810OOH : 	KRO2HO2*0.914 	;
+{14387.} 	 C810O2 + NO = C810NO3 : 	KRO2NO*0.104 	;
+{14388.} 	 C810O2 + NO = C810O + NO2 : 	KRO2NO*0.896 	;
+{14389.} 	 C810O2 + NO3 = C810O + NO2 : 	KRO2NO3 	;
+{14390.} 	 C810O2 = C810O : 	6.70D-15*RO2*0.7 	;
+{14391.} 	 C810O2 = C810OH : 	6.70D-15*RO2*0.3 	;
+{14392.} 	 CO25C6CHO + NO3 = CO25C6CO3 + HNO3 : 	KNO3AL*5.5 	;
+{14393.} 	 CO25C6CHO + OH = CO25C6CO3 : 	2.69D-11 	;
+{14394.} 	 CO25C6CHO = C627O2 + CO + HO2 : 	J(15) 	;
+{14395.} 	 C818O2 + HO2 = C818OOH : 	KRO2HO2*0.859 	;
+{14396.} 	 C818O2 + NO = C818O + NO2 : 	KRO2NO 	;
+{14397.} 	 C818O2 + NO3 = C818O + NO2 : 	KRO2NO3 	;
+{14398.} 	 C818O2 = C818CO : 	1.30D-12*0.2 	;
+{14399.} 	 C818O2 = C818O : 	1.30D-12*0.6 	;
+{14400.} 	 C818O2 = C818OH : 	1.30D-12*0.2 	;
+{14401.} 	 C727CO3 + HO2 = C727CO3H : 	KAPHO2*0.56 	;
+{14402.} 	 C727CO3 + HO2 = C727O2 + OH : 	KAPHO2*0.44 	;
+{14403.} 	 C727CO3 + NO = C727O2 + NO2 : 	KAPNO 	;
+{14404.} 	 C727CO3 + NO2 = C727PAN : 	KFPAN 	;
+{14405.} 	 C727CO3 + NO3 = C727O2 + NO2 : 	KRO2NO3*1.74 	;
+{14406.} 	 C727CO3 = C727O2 : 	1.00D-11*RO2 	;
+{14407.} 	 C626CO2H + OH = C626O2 : 	3.19D-11 	;
+{14408.} 	 C626CO2H = C626O2 + HO2 : 	J(15) 	;
+{14409.} 	 C626CO3H + OH = C626CO3 : 	3.50D-11 	;
+{14410.} 	 C626CO3H = C626O2 + OH : 	J(41)+J(15) 	;
+{14411.} 	 C626PAN + OH = C517CHO + CO + NO2 : 	3.14D-11 	;
+{14412.} 	 C626PAN = C626CO3 + NO2 : 	KBPAN 	;
+{14413.} 	 C626OOH + OH = C517CHO + OH : 	4.38D-11 	;
+{14414.} 	 C626OOH = C626O + OH : 	J(41)+J(15) 	;
+{14415.} 	 C626NO3 + OH = C517CHO + NO2 : 	2.84D-11 	;
+{14416.} 	 C626NO3 = C626O + NO2 : 	J(53) 	;
+{14417.} 	 C626O = C622CO3 : 	KDEC 	;
+{14418.} 	 C511CHO + OH = C511CO3 : 	5.13D-11 	;
+{14419.} 	 C517CHO + NO3 = C517CO3 + HNO3 : 	KNO3AL*8.5 	;
+{14420.} 	 C517CHO + OH = C517CO3 : 	4.35D-11 	;
+{14421.} 	 C517CHO = C517O2 + CO + HO2 : 	J(15) 	;
+{14422.} 	 C735OOH + OH = C735O2 : 	5.07D-11 	;
+{14423.} 	 C735OOH = C735O + OH : 	J(41) 	;
+{14424.} 	 C735OOH = CO13C4CHO + CH3CO3 + OH : 	J(22)+J(15)*2 	;
+{14425.} 	 C735O = CO13C4CHO + CH3CO3 : 	KDEC 	;
+{14426.} 	 C735OH + OH = C735O : 	4.73D-11 	;
+{14427.} 	 C735OH = CO13C4CHO + CH3CO3 + HO2 : 	J(22)+J(15)*2 	;
+{14428.} 	 NC728O2 + HO2 = NC728OOH : 	KRO2HO2*0.770 	;
+{14429.} 	 NC728O2 + NO = NC728O + NO2 : 	KRO2NO 	;
+{14430.} 	 NC728O2 + NO3 = NC728O + NO2 : 	KRO2NO3 	;
+{14431.} 	 NC728O2 = NC728O : 	9.20D-14*RO2*0.7 	;
+{14432.} 	 NC728O2 = NC728OH : 	9.20D-14*RO2*0.3 	;
+{14433.} 	 C628OOA = C628O2 + OH : 	KDEC 	;
+{14434.} 	 C728O2 + HO2 = C728OOH : 	KRO2HO2*0.770 	;
+{14435.} 	 C728O2 + NO = C728NO3 : 	KRO2NO*0.031 	;
+{14436.} 	 C728O2 + NO = C728O + NO2 : 	KRO2NO*0.969 	;
+{14437.} 	 C728O2 + NO3 = C728O + NO2 : 	KRO2NO3 	;
+{14438.} 	 C728O2 = C728O : 	9.20D-14*RO2*0.7 	;
+{14439.} 	 C728O2 = C728OH : 	9.20D-14*RO2*0.3 	;
+{14440.} 	 C622O2 + HO2 = C622OOH : 	KRO2HO2*0.770 	;
+{14441.} 	 C622O2 + NO = C622NO3 : 	KRO2NO*0.078 	;
+{14442.} 	 C622O2 + NO = C622O + NO2 : 	KRO2NO*0.922 	;
+{14443.} 	 C622O2 + NO3 = C622O + NO2 : 	KRO2NO3 	;
+{14444.} 	 C622O2 = C518CHO : 	1.30D-12*RO2*0.2 	;
+{14445.} 	 C622O2 = C622O : 	1.30D-12*RO2*0.6 	;
+{14446.} 	 C622O2 = C622OH : 	1.30D-12*RO2*0.2 	;
+{14447.} 	 C822OOH + OH = C729CHO + OH : 	9.71D-11 	;
+{14448.} 	 C822OOH = C822O + OH : 	J(41) 	;
+{14449.} 	 C822NO3 + OH = C729CHO + NO2 : 	8.31D-11 	;
+{14450.} 	 C822NO3 = C822O + NO2 : 	J(53) 	;
+{14451.} 	 C822O = C824O2 : 	KDEC 	;
+{14452.} 	 C822OH + OH = C729CHO + HO2 : 	8.80D-11 	;
+{14453.} 	 C823CO3H + OH = C823CO3 : 	6.18D-11 	;
+{14454.} 	 C823CO3H = C823O2 + OH : 	J(41) 	;
+{14455.} 	 C823O2 + HO2 = C823OOH : 	KRO2HO2*0.859 	;
+{14456.} 	 C823O2 + NO = C823NO3 : 	KRO2NO*0.138 	;
+{14457.} 	 C823O2 + NO = C823O + NO2 : 	KRO2NO*0.862 	;
+{14458.} 	 C823O2 + NO3 = C823O + NO2 : 	KRO2NO3 	;
+{14459.} 	 C823O2 = C823CO : 	1.30D-12*RO2*0.2 	;
+{14460.} 	 C823O2 = C823O : 	1.30D-12*RO2*0.6 	;
+{14461.} 	 C823O2 = C823OH : 	1.30D-12*RO2*0.2 	;
+{14462.} 	 LIMONIC + OH = C823O2 : 	5.89D-11 	;
+{14463.} 	 C823PAN + OH = C823CO + CO + NO2 : 	5.82D-11 	;
+{14464.} 	 C823PAN = C823CO3 + NO2 : 	KBPAN 	;
+{14465.} 	 C925OOH + OH = C925O2 : 	2.45D-11 	;
+{14466.} 	 C925OOH = C925O + OH : 	J(41) 	;
+{14467.} 	 C925O = C818CO + HCHO + HO2 : 	KDEC 	;
+{14468.} 	 C622CO2H + OH = C622O2 : 	6.00D-11 	;
+{14469.} 	 C622CO3H + OH = C622CO3 : 	6.31D-11 	;
+{14470.} 	 C622CO3H = C622O2 + OH : 	J(41) 	;
+{14471.} 	 C622PAN + OH = C518CHO + CO + NO2 : 	5.95D-11 	;
+{14472.} 	 C622PAN = C622CO3 + NO2 : 	KBPAN 	;
+{14473.} 	 C819O2 + HO2 = C819OOH : 	KRO2HO2 	;
+{14474.} 	 C819O2 + NO = C819O + NO2 : 	KRO2NO 	;
+{14475.} 	 C819O2 + NO3 = C819O + NO2 : 	KRO2NO3 	;
+{14476.} 	 C819O2 = C819O : 	9.20D-14*RO2 	;
+{14477.} 	 C731CO3 + HO2 = C731CO2 + OH : 	KAPHO2*0.44 	;
+{14478.} 	 C731CO3 + HO2 = C731CO2H + O3 : 	KAPHO2*0.15 	;
+{14479.} 	 C731CO3 + HO2 = C731CO3H : 	KAPHO2*0.41 	;
+{14480.} 	 C731CO3 + NO = C731CO2 + NO2 : 	KAPNO 	;
+{14481.} 	 C731CO3 + NO2 = C731PAN : 	KFPAN 	;
+{14482.} 	 C731CO3 + NO3 = C731CO2 + NO2 : 	KRO2NO3*1.74 	;
+{14483.} 	 C731CO3 = C731CO2 : 	1.00D-11*RO2*0.7 	;
+{14484.} 	 C731CO3 = C731CO2H : 	1.00D-11*RO2*0.3 	;
+{14485.} 	 C1011CO2H + OH = C1011O2 : 	1.14D-11 	;
+{14486.} 	 C1011CO3H + OH = C1011CO3 : 	1.45D-11 	;
+{14487.} 	 C1011CO3H = C1011O2 + OH : 	J(41) 	;
+{14488.} 	 C1011O2 + HO2 = C1011OOH : 	KRO2HO2*0.914 	;
+{14489.} 	 C1011O2 + NO = C1011NO3 : 	KRO2NO*0.228 	;
+{14490.} 	 C1011O2 + NO = C1011O + NO2 : 	KRO2NO*0.772 	;
+{14491.} 	 C1011O2 + NO3 = C1011O + NO2 : 	KRO2NO3 	;
+{14492.} 	 C1011O2 = C1011CO : 	2.50D-13*RO2*0.2 	;
+{14493.} 	 C1011O2 = C1011O : 	2.50D-13*RO2*0.6 	;
+{14494.} 	 C1011O2 = C1011OH : 	2.50D-13*RO2*0.2 	;
+{14495.} 	 C1011PAN + OH = C1011CO + CO + NO2 : 	1.09D-11 	;
+{14496.} 	 C1011PAN = C1011CO3 + NO2 : 	KBPAN 	;
+{14497.} 	 C1210CO2 = C1210O2 : 	KDEC*0.1 	;
+{14498.} 	 C1210CO2 = C1211CO3 : 	KDEC*0.9 	;
+{14499.} 	 C1210CO2H + OH = C1210CO2 : 	3.85D-11 	;
+{14500.} 	 C1210CO3H + OH = C1210CO3 : 	4.14D-11 	;
+{14501.} 	 C1210CO3H = C1210CO2 + OH : 	J(41) 	;
+{14502.} 	 C1210PAN + OH = C116CHO + CO + NO2 : 	3.78D-11 	;
+{14503.} 	 C1210PAN = C1210CO3 + NO2 : 	KBPAN 	;
+{14504.} 	 C132OOH + OH = C132O2 : 	1.90D-11 	;
+{14505.} 	 C132OOH = C132O + OH : 	J(41) 	;
+{14506.} 	 C132O = C133O2 : 	KDEC 	;
+{14507.} 	 C132OH + OH = C132O : 	1.55D-11 	;
+{14508.} 	 C137CO2H + OH = C137O2 : 	5.89D-11 	;
+{14509.} 	 C137CO3H + OH = C137CO3 : 	6.18D-11 	;
+{14510.} 	 C137CO3H = C137O2 + OH : 	J(41) 	;
+{14511.} 	 C137O2 + HO2 = C137OOH : 	KRO2HO2*0.959 	;
+{14512.} 	 C137O2 + NO = C137NO3 : 	KRO2NO*0.178 	;
+{14513.} 	 C137O2 + NO = C137O + NO2 : 	KRO2NO*0.822 	;
+{14514.} 	 C137O2 + NO3 = C137O + NO2 : 	KRO2NO3 	;
+{14515.} 	 C137O2 = C137CO : 	1.30D-12*RO2*0.2 	;
+{14516.} 	 C137O2 = C137O : 	1.30D-12*RO2*0.6 	;
+{14517.} 	 C137O2 = C137OH : 	1.30D-12*RO2*0.2 	;
+{14518.} 	 C137PAN + OH = C137CO + CO + NO2 : 	5.82D-11 	;
+{14519.} 	 C137PAN = C137CO3 + NO2 : 	KBPAN 	;
+{14520.} 	 C1013CO2H + OH = C1013O2 : 	1.13D-11 	;
+{14521.} 	 C1013CO3H + OH = C1013CO3 : 	1.44D-11 	;
+{14522.} 	 C1013CO3H = C1013O2 + OH : 	J(41) 	;
+{14523.} 	 C1013O2 + HO2 = C1013OOH : 	KRO2HO2*0.914 	;
+{14524.} 	 C1013O2 + NO = C1013NO3 : 	KRO2NO*0.228 	;
+{14525.} 	 C1013O2 + NO = C1013O + NO2 : 	KRO2NO*0.772 	;
+{14526.} 	 C1013O2 + NO3 = C1013O + NO2 : 	KRO2NO3 	;
+{14527.} 	 C1013O2 = C1013CO : 	2.50D-13*RO2*0.2 	;
+{14528.} 	 C1013O2 = C1013O : 	2.50D-13*RO2*0.6 	;
+{14529.} 	 C1013O2 = C1013OH : 	2.50D-13*RO2*0.2 	;
+{14530.} 	 C1013PAN + OH = C1013CO + CO + NO2 : 	1.08D-11 	;
+{14531.} 	 C1013PAN = C1013CO3 + NO2 : 	KBPAN 	;
+{14532.} 	 C1010O2 + HO2 = C1010OOH : 	KRO2HO2*0.914 	;
+{14533.} 	 C1010O2 + NO = C1010NO3 : 	KRO2NO*0.125 	;
+{14534.} 	 C1010O2 + NO = C1010O + NO2 : 	KRO2NO*0.875 	;
+{14535.} 	 C1010O2 + NO3 = C1010O + NO2 : 	KRO2NO3 	;
+{14536.} 	 C1010O2 = C1010O : 	6.70D-15*RO2*0.7 	;
+{14537.} 	 C1010O2 = C1010OH : 	6.70D-15*RO2*0.3 	;
+{14538.} 	 C1312OOH + OH = C1312CO + OH : 	1.02D-10 	;
+{14539.} 	 C1312OOH = C1312O + OH : 	J(41) 	;
+{14540.} 	 C1312NO3 + OH = C1312CO + NO2 : 	8.34D-11 	;
+{14541.} 	 C1312NO3 = C1312O + NO2 : 	J(54) 	;
+{14542.} 	 C1312O = C1010O2 + HOC2H4CHO : 	KDEC 	;
+{14543.} 	 C1312OH + OH = C1312CO + HO2 : 	9.34D-11 	;
+{14544.} 	 C117O2 + HO2 = C117OOH : 	KRO2HO2*0.932 	;
+{14545.} 	 C117O2 + NO = C117NO3 : 	KRO2NO*0.129 	;
+{14546.} 	 C117O2 + NO = C117O + NO2 : 	KRO2NO*0.871 	;
+{14547.} 	 C117O2 + NO3 = C117O + NO2 : 	KRO2NO3 	;
+{14548.} 	 C117O2 = C117O : 	9.20D-14*RO2*0.7 	;
+{14549.} 	 C117O2 = C117OH : 	9.20D-14*RO2*0.3 	;
+{14550.} 	 C830CO3 + HO2 = C830CO2H + O3 : 	KAPHO2*0.15 	;
+{14551.} 	 C830CO3 + HO2 = C830CO3H : 	KAPHO2*0.41 	;
+{14552.} 	 C830CO3 + HO2 = C830O2 + OH : 	KAPHO2*0.44 	;
+{14553.} 	 C830CO3 + NO = C830O2 + NO2 : 	KAPNO 	;
+{14554.} 	 C830CO3 + NO2 = C830PAN : 	KFPAN 	;
+{14555.} 	 C830CO3 + NO3 = C830O2 + NO2 : 	KRO2NO3*1.74 	;
+{14556.} 	 C830CO3 = C830CO2H : 	1.00D-11*RO2*0.3 	;
+{14557.} 	 C830CO3 = C830O2 : 	1.00D-11*RO2*0.7 	;
+{14558.} 	 C127OOH + OH = C127O2 : 	8.69D-11 	;
+{14559.} 	 C127OOH = C127O + OH : 	J(41) 	;
+{14560.} 	 C127NO3 + OH = C128CO + NO2 : 	5.82D-11 	;
+{14561.} 	 C127NO3 = C127O + NO2 : 	J(55) 	;
+{14562.} 	 C127O = C128O2 : 	KDEC 	;
+{14563.} 	 C127OH + OH = C127O : 	7.47D-11 	;
+{14564.} 	 C145O2 + HO2 = C145OOH : 	KRO2HO2*0.968 	;
+{14565.} 	 C145O2 + NO = C145O + NO2 : 	KRO2NO 	;
+{14566.} 	 C145O2 + NO3 = C145O + NO2 : 	KRO2NO3 	;
+{14567.} 	 C145O2 = C145O : 	9.20D-14*RO2*0.7 	;
+{14568.} 	 C145O2 = C145OH : 	9.20D-14*RO2*0.3 	;
+{14569.} 	 C927O2 + HO2 = C927OOH : 	KRO2HO2*0.890 	;
+{14570.} 	 C927O2 + NO = C927NO3 : 	KRO2NO*0.118 	;
+{14571.} 	 C927O2 + NO = C927O + NO2 : 	KRO2NO*0.872 	;
+{14572.} 	 C927O2 + NO3 = C927O + NO2 : 	KRO2NO3 	;
+{14573.} 	 C927O2 = C927O : 	6.70D-15*RO2*0.7 	;
+{14574.} 	 C927O2 = C927OH : 	6.70D-15*RO2*0.3 	;
+{14575.} 	 C143OOH + OH = C143CO + OH : 	8.69D-11 	;
+{14576.} 	 C143OOH = C143O + OH : 	J(41) 	;
+{14577.} 	 C143NO3 + OH = C143CO + NO2 : 	5.82D-11 	;
+{14578.} 	 C143NO3 = C143O + NO2 : 	J(54) 	;
+{14579.} 	 C143O = C143CO + HO2 : 	KROSEC*O2 	;
+{14580.} 	 C143O = C927O2 + CO2C4CHO : 	2.70D+14*EXP(-6643/TEMP) 	;
+{14581.} 	 C143OH + OH = C143CO + HO2 : 	7.47D-11 	;
+{14582.} 	 C1214O2 + HO2 = C1214OOH : 	KRO2HO2*0.947 	;
+{14583.} 	 C1214O2 + NO = C1214O + NO2 : 	KRO2NO 	;
+{14584.} 	 C1214O2 + NO3 = C1214O + NO2 : 	KRO2NO3 	;
+{14585.} 	 C1214O2 = C1214O : 	9.20D-14*RO2*0.7 	;
+{14586.} 	 C1214O2 = C1214OH : 	9.20D-14*RO2*0.3 	;
+{14587.} 	 MSA + OH = CH3SO3 : 	2.24D-14 	;
+{14588.} 	 CH3SO2OOH + OH = CH3SO2O2 : 	3.60D-12 	;
+{14589.} 	 CH3SO2OOH = CH3SO3 + OH : 	J(41) 	;
+{14590.} 	 CH3SO4NO2 + OH = CH3SO2O2 + HNO3 : 	3.60D-13 	;
+{14591.} 	 CH3SO4NO2 = CH3SO2O2 + NO2 : 	5.40D+16*EXP(-13112/TEMP) 	;
+{14592.} 	 CHOC4DOLO2 + HO2 = ALC4DOLOOH : 	KRO2HO2*0.706 	;
+{14593.} 	 CHOC4DOLO2 + NO = CHOC4DOLO + NO2 : 	KRO2NO 	;
+{14594.} 	 CHOC4DOLO2 + NO3 = CHOC4DOLO + NO2 : 	KRO2NO3 	;
+{14595.} 	 CHOC4DOLO2 = CHOC4DOLO : 	8.80D-13*RO2 	;
+{14596.} 	 C6TRONOHO2 + HO2 = C6TONOHOOH : 	KRO2HO2*0.770 	;
+{14597.} 	 C6TRONOHO2 + NO = C6TRONOHO + NO2 : 	KRO2NO 	;
+{14598.} 	 C6TRONOHO2 + NO3 = C6TRONOHO + NO2 : 	KRO2NO3 	;
+{14599.} 	 C6TRONOHO2 = C6TRONOHO : 	8.80D-13*RO2 	;
+{14600.} 	 HO24C5OOH = HO24C5O + OH : 	J(41) 	;
+{14601.} 	 OH + HO24C5OOH = HO24C4CHO + OH : 	3.01D-11 	;
+{14602.} 	 OH + HO24C5OOH = HO24C5O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{14603.} 	 OH + HO24C5NO3 = HO24C4CHO + NO2 : 	1.19D-11 	;
+{14604.} 	 HO24C5O = HO2C3CHO + HCHO + HO2 : 	2.00D+14*EXP(-5556/TEMP) 	;
+{14605.} 	 OH + HO124C5 = C51OH + HO2 : 	2.46D-11 	;
+{14606.} 	 HO24C4CHO = HO2C3CHO + HO2 + HO2 + CO : 	J(15) 	;
+{14607.} 	 NO3 + HO24C4CHO = HO24C4CO3 + HNO3 : 	KNO3AL*5.5 	;
+{14608.} 	 OH + HO24C4CHO = HO24C4CO3 : 	4.03D-11 	;
+{14609.} 	 C23C54CO3 + HO2 = C23C54CO3H : 	KAPHO2*0.56 	;
+{14610.} 	 C23C54CO3 + HO2 = CO23C54O2 + OH : 	KAPHO2*0.44 	;
+{14611.} 	 C23C54CO3 + NO = CO23C54O2 + NO2 : 	KAPNO 	;
+{14612.} 	 C23C54CO3 + NO2 = C6PAN7 : 	KFPAN 	;
+{14613.} 	 C23C54CO3 + NO3 = CO23C54O2 + NO2 : 	KRO2NO3 	;
+{14614.} 	 C23C54CO3 = CO23C54O2 : 	1.00D-11*RO2 	;
+{14615.} 	 C55OOH = C55O + OH : 	J(41)+J(22) 	;
+{14616.} 	 OH + C55OOH = C55O2 : 	1.32D-11 	;
+{14617.} 	 C55O = HCHO + IPRHOCO3 : 	KDEC 	;
+{14618.} 	 C67CO3H = C55O2 + OH : 	J(41)+J(22) 	;
+{14619.} 	 OH + C67CO3H = C67CO3 : 	5.33D-12 	;
+{14620.} 	 C6PAN9 = C67CO3 + NO2 : 	KBPAN 	;
+{14621.} 	 OH + C6PAN9 = MIBKHO4CHO + CO + NO2 : 	1.41D-12 	;
+{14622.} 	 C73O2 + HO2 = C73OOH : 	KRO2HO2*0.820 	;
+{14623.} 	 C73O2 + NO = C73O + NO2 : 	KRO2NO 	;
+{14624.} 	 C73O2 + NO3 = C73O + NO2 : 	KRO2NO3 	;
+{14625.} 	 C73O2 = C73O : 	8.80D-13*RO2 	;
+{14626.} 	 C74O2 + HO2 = C74OOH : 	KRO2HO2*0.820 	;
+{14627.} 	 C74O2 + NO = C74O + NO2 : 	KRO2NO 	;
+{14628.} 	 C74O2 + NO3 = C74O + NO2 : 	KRO2NO3 	;
+{14629.} 	 C74O2 = C74O : 	8.80D-13*RO2 	;
+{14630.} 	 H3M2C4CO3H = ME3BU2OLO2 + OH : 	J(41) 	;
+{14631.} 	 OH + H3M2C4CO3H = H3M2C4CO3 : 	3.99D-11 	;
+{14632.} 	 C6PAN20 = H3M2C4CO3 + NO2 : 	KBPAN 	;
+{14633.} 	 OH + C6PAN20 = C3M3OH2CHO + CO + NO2 : 	1.35D-11 	;
+{14634.} 	 C79OOH = C79O + OH : 	J(41) 	;
+{14635.} 	 C79OOH = HCHO + CO235C6 + OH : 	J(22)*2 	;
+{14636.} 	 OH + C79OOH = C79O2 : 	3.55D-11 	;
+{14637.} 	 C79O = CO235C6 + HCHO + HO2 : 	2.00D+14*EXP(-5489/TEMP) 	;
+{14638.} 	 C715O2 + HO2 = C715OOH : 	KRO2HO2*0.820 	;
+{14639.} 	 C715O2 + NO = C715O + NO2 : 	KRO2NO 	;
+{14640.} 	 C715O2 + NO3 = C715O + NO2 : 	KRO2NO3 	;
+{14641.} 	 C715O2 = C715O : 	9.20D-14*RO2 	;
+{14642.} 	 H3M3C4CO3H = PROL11MO2 + OH : 	J(41) 	;
+{14643.} 	 OH + H3M3C4CO3H = H3M3C4CO3 : 	6.08D-12 	;
+{14644.} 	 C6PAN21 = H3M3C4CO3 + NO2 : 	KBPAN 	;
+{14645.} 	 OH + C6PAN21 = PROL1MCHO + CO + NO2 : 	1.97D-12 	;
+{14646.} 	 H13M3C5OOH = H13M3C5O + OH : 	J(41) 	;
+{14647.} 	 OH + H13M3C5OOH = H13M3CO4C5 + OH : 	2.97D-11 	;
+{14648.} 	 OH + H13M3C5NO3 = H13M3CO4C5 + NO2 : 	6.00D-12 	;
+{14649.} 	 H13M3C5O = CH3CHO + MEKAOH + HO2 : 	2.00D+14*EXP(-4909/TEMP) 	;
+{14650.} 	 OH + H134M3C5 = H13M3CO4C5 + HO2 : 	1.45D-11 	;
+{14651.} 	 H13M3CO4C5 = CO2C3CHO + CH3CO3 + HO2 : 	J(22) 	;
+{14652.} 	 OH + H13M3CO4C5 = C613O2 : 	9.41D-12 	;
+{14653.} 	 C83O2 + HO2 = C83OOH : 	KRO2HO2*0.859 	;
+{14654.} 	 C83O2 + NO = C83O + NO2 : 	KRO2NO 	;
+{14655.} 	 C83O2 + NO3 = C83O + NO2 : 	KRO2NO3 	;
+{14656.} 	 C83O2 = C83O : 	8.80D-13*RO2 	;
+{14657.} 	 HO4C5CO3H = PE1ENEBO2 + OH : 	J(41) 	;
+{14658.} 	 OH + HO4C5CO3H = HO4C5CO3 : 	3.99D-11 	;
+{14659.} 	 C6PAN22 = HO4C5CO3 + NO2 : 	KBPAN 	;
+{14660.} 	 OH + C6PAN22 = C4OHCHO + CO + NO2 : 	1.33D-11 	;
+{14661.} 	 C95O2 + HO2 = C95OOH : 	KRO2HO2*0.890 	;
+{14662.} 	 C95O2 + NO = C95O + NO2 : 	KRO2NO 	;
+{14663.} 	 C95O2 + NO3 = C95O + NO2 : 	KRO2NO3 	;
+{14664.} 	 C95O2 = C95O : 	8.80D-13*RO2 	;
+{14665.} 	 HO5C6CO3H = HO5C6O2 + OH : 	J(41) 	;
+{14666.} 	 OH + HO5C6CO3H = HO5C6CO3 : 	4.13D-11 	;
+{14667.} 	 C7PAN2 = HO5C6CO3 + NO2 : 	KBPAN 	;
+{14668.} 	 OH + C7PAN2 = HO5C5CHO + CO + NO2 : 	1.49D-11 	;
+{14669.} 	 C105O2 + HO2 = C105OOH : 	KRO2HO2*0.914 	;
+{14670.} 	 C105O2 + NO = C105O + NO2 : 	KRO2NO 	;
+{14671.} 	 C105O2 + NO3 = C105O + NO2 : 	KRO2NO3 	;
+{14672.} 	 C105O2 = C105O : 	8.80D-13*RO2 	;
+{14673.} 	 HO6C7CO3H = HO6C7O2 + OH : 	J(41) 	;
+{14674.} 	 OH + HO6C7CO3H = HO6C7CO3 : 	4.27D-11 	;
+{14675.} 	 C8PAN1 = HO6C7CO3 + NO2 : 	KBPAN 	;
+{14676.} 	 OH + C8PAN1 = HCHO + C5H11CHO + CO + NO2 : 	1.63D-11 	;
+{14677.} 	 C115O2 + HO2 = C115OOH : 	KRO2HO2*0.932 	;
+{14678.} 	 C115O2 + NO = C115O + NO2 : 	KRO2NO 	;
+{14679.} 	 C115O2 + NO3 = C115O + NO2 : 	KRO2NO3 	;
+{14680.} 	 C115O2 = C115O : 	8.80D-13*RO2 	;
+{14681.} 	 HO7C8CO3H = HO7C8O2 + OH : 	J(41) 	;
+{14682.} 	 OH + HO7C8CO3H = HO7C8CO3 : 	4.41D-11 	;
+{14683.} 	 C9PAN1 = HO7C8CO3 + NO2 : 	KBPAN 	;
+{14684.} 	 OH + C9PAN1 = HCHO + C6H13CHO + CO + NO2 : 	1.77D-11 	;
+{14685.} 	 C125O2 + HO2 = C125OOH : 	KRO2HO2*0.947 	;
+{14686.} 	 C125O2 + NO = C125O + NO2 : 	KRO2NO 	;
+{14687.} 	 C125O2 + NO3 = C125O + NO2 : 	KRO2NO3 	;
+{14688.} 	 C125O2 = C125O : 	8.80D-13*RO2 	;
+{14689.} 	 HO8C9CO3H = HO8C9O2 + OH : 	J(41) 	;
+{14690.} 	 OH + HO8C9CO3H = HO8C9CO3 : 	4.55D-11 	;
+{14691.} 	 C10PAN1 = HO8C9CO3 + NO2 : 	KBPAN 	;
+{14692.} 	 OH + C10PAN1 = CH3CHO + C6H13CHO + CO + NO2 : 	1.91D-11 	;
+{14693.} 	 NC4DCO2 = MALANHY + NO2 : 	KDEC 	;
+{14694.} 	 C4CO2DBCO3 + HO2 = C4CO2DCO3H : 	KAPHO2*0.56 	;
+{14695.} 	 C4CO2DBCO3 + HO2 = HO2 + CO + C33CO + OH : 	KAPHO2*0.44 	;
+{14696.} 	 C4CO2DBCO3 + NO = HO2 + CO + C33CO + NO2 : 	KAPNO 	;
+{14697.} 	 C4CO2DBCO3 + NO2 = C4CO2DBPAN : 	KFPAN 	;
+{14698.} 	 C4CO2DBCO3 + NO3 = HO2 + CO + C33CO + NO2 : 	KRO2NO3*1.74 	;
+{14699.} 	 C4CO2DBCO3 = HO2 + CO + C33CO : 	1.00D-11*RO2 	;
+{14700.} 	 C5COOHCO3H + OH = C5CO2OHCO3 : 	8.01D-11 	;
+{14701.} 	 C5COOHCO3H = HOCOC4DIAL + HO2 + CO + OH : 	J(41) 	;
+{14702.} 	 C5CO2OHPAN + OH = HOCOC4DIAL + CO + CO + NO2 : 	7.66D-11 	;
+{14703.} 	 C5CO2OHPAN = C5CO2OHCO3 + NO2 : 	KBPAN 	;
+{14704.} 	 C5CO2DBCO3 + HO2 = C5CO2DCO3H : 	KAPHO2*0.56 	;
+{14705.} 	 C5CO2DBCO3 + HO2 = CH3CO3 + C33CO + OH : 	KAPHO2*0.44 	;
+{14706.} 	 C5CO2DBCO3 + NO = CH3CO3 + C33CO + NO2 : 	KAPNO 	;
+{14707.} 	 C5CO2DBCO3 + NO2 = C5CO2DBPAN : 	KFPAN 	;
+{14708.} 	 C5CO2DBCO3 + NO3 = CH3CO3 + C33CO + NO2 : 	KRO2NO3*1.74 	;
+{14709.} 	 C5CO2DBCO3 = CH3CO3 + C33CO : 	1.00D-11*RO2 	;
+{14710.} 	 C6COOHCO3H + OH = C6CO2OHCO3 : 	9.29D-11 	;
+{14711.} 	 C6COOHCO3H = C5134CO2OH + HO2 + CO + OH : 	J(41) 	;
+{14712.} 	 C6CO2OHPAN + OH = C5134CO2OH + CO + CO + NO2 : 	8.96D-11 	;
+{14713.} 	 C6CO2OHPAN = C6CO2OHCO3 + NO2 : 	KBPAN 	;
+{14714.} 	 NC4MDCO2 = MMALANHY + NO2 : 	KDEC 	;
+{14715.} 	 C4DBM2CO3 + HO2 = C4DBM2CO3H : 	KAPHO2*0.56 	;
+{14716.} 	 C4DBM2CO3 + HO2 = CO23C3CHO + CH3CO3 + OH : 	KAPHO2*0.44 	;
+{14717.} 	 C4DBM2CO3 + NO = CO23C3CHO + CH3CO3 + NO2 : 	KAPNO 	;
+{14718.} 	 C4DBM2CO3 + NO2 = C4DBM2PAN : 	KFPAN 	;
+{14719.} 	 C4DBM2CO3 + NO3 = CO23C3CHO + CH3CO3 + NO2 : 	KRO2NO3*1.74 	;
+{14720.} 	 C4DBM2CO3 = CO23C3CHO + CH3CO3 : 	1.00D-11*RO2 	;
+{14721.} 	 C5M2OHCO3H + OH = C5M2OHOCO3 : 	9.83D-11 	;
+{14722.} 	 C5M2OHCO3H = C5134CO2OH + CH3CO3 + OH : 	J(41) 	;
+{14723.} 	 C5M2OHOPAN + OH = C5134CO2OH + CH3CO3 + NO2 : 	9.51D-11 	;
+{14724.} 	 C5M2OHOPAN = C5M2OHOCO3 + NO2 : 	KBPAN 	;
+{14725.} 	 C5COHOCO3H + OH = C4COMOHCO3 : 	4.16D-12 	;
+{14726.} 	 C5COHOCO3H = C5CO234 + OH + HO2 : 	J(41)+J(35) 	;
+{14727.} 	 C4COMOHPAN + OH = C5CO234 + CO + NO2 : 	5.66D-13 	;
+{14728.} 	 C4COMOHPAN = C4COMOHCO3 + NO2 : 	KBPAN 	;
+{14729.} 	 C23O3MCO2H + OH = C23O3MO2 : 	6.58D-12 	;
+{14730.} 	 C23O3MCO3H + OH = C23O3MCO3 : 	9.69D-12 	;
+{14731.} 	 C23O3MCO3H = OH + C23O3MO2 : 	J(41) 	;
+{14732.} 	 C23O3MCPAN + OH = CO + ACECOCOCH3 + NO2 : 	6.46D-12 	;
+{14733.} 	 C23O3MCPAN = C23O3MCO3 + NO2 : 	KBPAN 	;
+{14734.} 	 C23O3CCO2H + OH = MCOCOMOXO2 : 	8.76D-13 	;
+{14735.} 	 C23O3CCO3H + OH = C23O3CCO3 : 	4.34D-12 	;
+{14736.} 	 C23O3CCO3H = OH + MCOCOMOXO2 : 	J(41) 	;
+{14737.} 	 C23O3CPAN + OH = CO + C23O3CHO + NO2 : 	7.36D-13 	;
+{14738.} 	 C23O3CPAN = C23O3CCO3 + NO2 : 	KBPAN 	;
+{14739.} 	 C5CO3OH + OH = C54CO + HO2 : 	2.15D-11 	;
+{14740.} 	 C5CO3OH = C33CO + CH3CO3 + HO2 : 	J(22)+J(34) 	;
+{14741.} 	 C7CO2OCO3H + OH = C7CO2OHCO3 : 	2.75D-11 	;
+{14742.} 	 C7CO2OCO3H = C5CO3OH + CH3CO3 + OH : 	J(41) 	;
+{14743.} 	 C7CO2OHPAN + OH = C5CO3OH + CH3CO3 + NO2 : 	2.42D-11 	;
+{14744.} 	 C7CO2OHPAN = C7CO2OHCO3 + NO2 : 	KBPAN 	;
+{14745.} 	 C5DBCO2CO3 + HO2 = C5DCO2CO3H : 	KAPHO2*0.56 	;
+{14746.} 	 C5DBCO2CO3 + HO2 = CO23C3CHO + HO2 + CO + OH : 	KAPHO2*0.44 	;
+{14747.} 	 C5DBCO2CO3 + NO = CO23C3CHO + HO2 + CO + NO2 : 	KAPNO 	;
+{14748.} 	 C5DBCO2CO3 + NO2 = C5DBCO2PAN : 	KFPAN 	;
+{14749.} 	 C5DBCO2CO3 + NO3 = CO23C3CHO + HO2 + CO + NO2 : 	KRO2NO3*1.74 	;
+{14750.} 	 C5DBCO2CO3 = CO23C3CHO + HO2 + CO : 	1.00D-11*RO2 	;
+{14751.} 	 C6MOCOCO3H + OH = C6MOHCOCO3 : 	2.75D-11 	;
+{14752.} 	 C6MOCOCO3H = DMKCOOH + HO2 + CO + OH : 	J(41) 	;
+{14753.} 	 C6MOHCOPAN + OH = DMKCOOH + CO + NO2 : 	2.42D-11 	;
+{14754.} 	 C6MOHCOPAN = C6MOHCOCO3 + NO2 : 	KBPAN 	;
+{14755.} 	 C7CO2DBCO3 + HO2 = C2H5CO3 + C33CO + OH : 	KAPHO2*0.44 	;
+{14756.} 	 C7CO2DBCO3 + HO2 = C7CO2DCO3H : 	KAPHO2*0.56 	;
+{14757.} 	 C7CO2DBCO3 + NO = C2H5CO3 + C33CO + NO2 : 	KAPNO 	;
+{14758.} 	 C7CO2DBCO3 + NO2 = C7CO2DBPAN : 	KFPAN 	;
+{14759.} 	 C7CO2DBCO3 + NO3 = C2H5CO3 + C33CO + NO2 : 	KRO2NO3*1.74 	;
+{14760.} 	 C7CO2DBCO3 = C2H5CO3 + C33CO : 	1.00D-11*RO2 	;
+{14761.} 	 C7OHO2CO3H + OH = C7OHCO2CO3 : 	9.46D-11 	;
+{14762.} 	 C7OHO2CO3H = C6134CO2OH + HO2 + CO + OH : 	J(41)+J(17)+J(22) 	;
+{14763.} 	 C7OHCO2PAN + OH = C6134CO2OH + CO + CO + NO2 : 	9.14D-11 	;
+{14764.} 	 C7OHCO2PAN = C7OHCO2CO3 + NO2 : 	KBPAN 	;
+{14765.} 	 NC4EDCO2 = EMALANHY + NO2 : 	KDEC 	;
+{14766.} 	 ECO3CO3H + OH = ECO3CO3 : 	6.09D-12 	;
+{14767.} 	 ECO3CO3H = C2H5CO3 + CO + CO + OH : 	J(41)+J(35)*2 	;
+{14768.} 	 ECO3PAN + OH = CH3CHO + CO + CO + CO + NO2 : 	2.49D-12 	;
+{14769.} 	 ECO3PAN = ECO3CO3 + NO2 : 	KBPAN 	;
+{14770.} 	 C8CO2DBCO3 + HO2 = C3H7CO3 + C33CO + OH : 	KAPHO2*0.44 	;
+{14771.} 	 C8CO2DBCO3 + HO2 = C8CO2DCO3H : 	KAPHO2*0.56 	;
+{14772.} 	 C8CO2DBCO3 + NO = C3H7CO3 + C33CO + NO2 : 	KAPNO 	;
+{14773.} 	 C8CO2DBCO3 + NO2 = C8CO2DBPAN : 	KFPAN 	;
+{14774.} 	 C8CO2DBCO3 + NO3 = C3H7CO3 + C33CO + NO2 : 	KRO2NO3*1.74 	;
+{14775.} 	 C8CO2DBCO3 = C3H7CO3 + C33CO : 	1.00D-11*RO2 	;
+{14776.} 	 C8OHO2CO3H + OH = C8OHCO2CO3 : 	9.62D-11 	;
+{14777.} 	 C8OHO2CO3H = C61CHO + HO2 + CO + OH : 	J(41)+J(17)+J(22) 	;
+{14778.} 	 C8OHCO2PAN + OH = C61CHO + CO + CO + NO2 : 	9.29D-11 	;
+{14779.} 	 C8OHCO2PAN = C8OHCO2CO3 + NO2 : 	KBPAN 	;
+{14780.} 	 NC4PDCO2 = PMALANHY + NO2 : 	KDEC 	;
+{14781.} 	 C8DBCO2CO3 + HO2 = C8DCO2CO3H : 	KAPHO2*0.56 	;
+{14782.} 	 C8DBCO2CO3 + HO2 = IPRCO3 + C33CO + OH : 	KAPHO2*0.44 	;
+{14783.} 	 C8DBCO2CO3 + NO = IPRCO3 + C33CO + NO2 : 	KAPNO 	;
+{14784.} 	 C8DBCO2CO3 + NO2 = C8DBCO2PAN : 	KFPAN 	;
+{14785.} 	 C8DBCO2CO3 + NO3 = IPRCO3 + C33CO + NO2 : 	KRO2NO3*1.74 	;
+{14786.} 	 C8DBCO2CO3 = IPRCO3 + C33CO : 	1.00D-11*RO2 	;
+{14787.} 	 C8O2OHCO3H + OH = C8CO2OHCO3 : 	9.68D-11 	;
+{14788.} 	 C8O2OHCO3H = C62CHO + HO2 + CO + OH : 	J(41)+J(17)+J(22) 	;
+{14789.} 	 C8CO2OHPAN + OH = C62CHO + CO + CO + NO2 : 	9.35D-11 	;
+{14790.} 	 C8CO2OHPAN = C8CO2OHCO3 + NO2 : 	KBPAN 	;
+{14791.} 	 NC4IPDCO2 = IPMALANHY + NO2 : 	KDEC 	;
+{14792.} 	 NDMMALYOOH + OH = NDMMALYO2 : 	4.60D-12 	;
+{14793.} 	 NDMMALYOOH = NDMMALYO + OH : 	J(41) 	;
+{14794.} 	 NDMMALYO = BIACET + CO + NO2 : 	KDEC 	;
+{14795.} 	 DMMALYOOH + OH = DMMALYO2 : 	4.79D-12 	;
+{14796.} 	 DMMALYOOH = DMMALYO + OH : 	J(41) 	;
+{14797.} 	 DMMALYO = CO2OH3MCO3 : 	KDEC 	;
+{14798.} 	 DMMALYOH + OH = DMMALYO : 	1.34D-12 	;
+{14799.} 	 C7MOCOCO3H + OH = C7MOHCOCO3 : 	3.30D-11 	;
+{14800.} 	 C7MOCOCO3H = DMKCOOH + CH3CO3 + OH : 	J(41) 	;
+{14801.} 	 C7MOHCOPAN + OH = DMKCOOH + CO + NO2 : 	2.97D-11 	;
+{14802.} 	 C7MOHCOPAN = C7MOHCOCO3 + NO2 : 	KBPAN 	;
+{14803.} 	 C5CO23CHO + OH = C2H5CO3 + CO + CO : 	1.48D-11 	;
+{14804.} 	 C5CO23CHO = C2H5CO3 + CO + HO2 + CO : 	J(35) 	;
+{14805.} 	 C5CO23CHO = C2H5O2 + CO + CO + HO2 : 	J(34) 	;
+{14806.} 	 C4DBMECO3 + HO2 = C4DBMECO3H : 	KAPHO2*0.56 	;
+{14807.} 	 C4DBMECO3 + HO2 = C5CO23CHO + CH3CO3 + OH : 	KAPHO2*0.44 	;
+{14808.} 	 C4DBMECO3 + NO = C5CO23CHO + CH3CO3 + NO2 : 	KAPNO 	;
+{14809.} 	 C4DBMECO3 + NO2 = C4DBMEPAN : 	KFPAN 	;
+{14810.} 	 C4DBMECO3 + NO3 = C5CO23CHO + CH3CO3 + NO2 : 	KRO2NO3*1.74 	;
+{14811.} 	 C4DBMECO3 = C5CO23CHO + CH3CO3 : 	1.00D-11*RO2 	;
+{14812.} 	 C5MEJCO3H + OH = C5MEJCO3 : 	1.00D-10 	;
+{14813.} 	 C5MEJCO3H = C6134CO2OH + CH3CO3 + OH : 	J(41) 	;
+{14814.} 	 C5MEJPAN + OH = C6134CO2OH + CH3CHO + NO2 : 	9.68D-11 	;
+{14815.} 	 C5MEJPAN = C5MEJCO3 + NO2 : 	KBPAN 	;
+{14816.} 	 C5DBECO3 + HO2 = C5DBECO3H : 	KAPHO2*0.56 	;
+{14817.} 	 C5DBECO3 + HO2 = CO234C6 + HO2 + CO + OH : 	KAPHO2*0.44 	;
+{14818.} 	 C5DBECO3 + NO = CO234C6 + HO2 + CO + NO2 : 	KAPNO 	;
+{14819.} 	 C5DBECO3 + NO2 = C5DBEPAN : 	KFPAN 	;
+{14820.} 	 C5DBECO3 + NO3 = CO234C6 + HO2 + CO + NO2 : 	KRO2NO3*1.74 	;
+{14821.} 	 C5DBECO3 = CO234C6 + HO2 + CO : 	1.00D-11*RO2 	;
+{14822.} 	 C6EO2HCO3H + OH = C6EO2OHCO3 : 	2.92D-11 	;
+{14823.} 	 C6EO2HCO3H = C5CO3OH + C2H5CO3 + OH : 	J(41) 	;
+{14824.} 	 C6EO2OHPAN + OH = C5CO3OH + C2H5CHO + NO2 : 	2.56D-11 	;
+{14825.} 	 C6EO2OHPAN = C6EO2OHCO3 + NO2 : 	KBPAN 	;
+{14826.} 	 C5EDBCO3 + HO2 = C5EDBCO3H : 	KAPHO2*0.56 	;
+{14827.} 	 C5EDBCO3 + HO2 = CO23C3CHO + C2H5CO3 + OH : 	KAPHO2*0.44 	;
+{14828.} 	 C5EDBCO3 + NO = CO23C3CHO + C2H5CO3 + NO2 : 	KAPNO 	;
+{14829.} 	 C5EDBCO3 + NO2 = C5EDBPAN : 	KFPAN 	;
+{14830.} 	 C5EDBCO3 + NO3 = CO23C3CHO + C2H5CO3 + NO2 : 	KRO2NO3*1.74 	;
+{14831.} 	 C5EDBCO3 = CO23C3CHO + C2H5CO3 : 	1.00D-11*RO2 	;
+{14832.} 	 C7MJPCO3H + OH = C7MJPCO3 : 	2.86D-11 	;
+{14833.} 	 C7MJPCO3H = C7EDCCO + HO2 + CO + OH : 	J(41) 	;
+{14834.} 	 C7MJPPAN + OH = C7EDCCO + CO + NO2 : 	2.54D-11 	;
+{14835.} 	 C7MJPPAN = C7MJPCO3 + NO2 : 	KBPAN 	;
+{14836.} 	 C23O3ECO2H + OH = C23O3EO2 : 	1.11D-11 	;
+{14837.} 	 C23O3ECO3H + OH = C23O3ECO3 : 	1.42D-11 	;
+{14838.} 	 C23O3ECO3H = OH + C23O3EO2 : 	J(41) 	;
+{14839.} 	 C23O3ECPAN + OH = CO + C23O3EHO + NO2 : 	1.10D-11 	;
+{14840.} 	 C23O3ECPAN = C23O3ECO3 + NO2 : 	KBPAN 	;
+{14841.} 	 EMPONO2OOH + OH = EMPOHNO2O2 : 	1.46D-10 	;
+{14842.} 	 EMPONO2OOH = EMPOHNO2O + OH : 	J(41) 	;
+{14843.} 	 EMPOHNO2O = C3EODBCO2H + CH3O2 + CO + NO2 : 	KDEC 	;
+{14844.} 	 COHM2CO2H + OH = GLYOX + HO2 : 	2.16D-11 	;
+{14845.} 	 COHM2CO2H = HCOCO2H + CO + HO2 : 	J(17) 	;
+{14846.} 	 COHM2CO3H + OH = COHM2CO3 : 	2.47D-11 	;
+{14847.} 	 COHM2CO3H = GLYOX + HO2 + OH : 	J(41) 	;
+{14848.} 	 COHM2CO3H = HCOCO3H + CO + HO2 : 	J(17) 	;
+{14849.} 	 COHM2PAN + OH = GLYOX + NO3 : 	2.11D-11 	;
+{14850.} 	 COHM2PAN = COHM2CO3 + NO2 : 	KBPAN 	;
+{14851.} 	 COHM2PAN = GLYPAN + CO + HO2 : 	J(17) 	;
+{14852.} 	 INANCOCO2H = NO3CH2CO3 + CH3COCO2H + NO2 : 	J(56)+J(57) 	;
+{14853.} 	 OH + INANCOCO2H = NO2 + CO23C4NO3 : 	9.35D-13 	;
+{14854.} 	 INANCOCO3H = NO2 + CO23C4NO3 + OH : 	J(41) 	;
+{14855.} 	 INANCOCO3H = NO3CH2CO3 + CH3COCO3H + NO2 : 	J(56)+J(57) 	;
+{14856.} 	 OH + INANCOCO3H = INANCOCO3 : 	4.02D-12 	;
+{14857.} 	 INANCOPAN = INANCOCO3 + NO2 : 	KBPAN 	;
+{14858.} 	 INANCOPAN = NO3CH2CO3 + CH3COPAN + NO2 : 	J(56)+J(57) 	;
+{14859.} 	 OH + INANCOPAN = NO3 + CO23C4NO3 : 	4.15D-13 	;
+{14860.} 	 HMVKNGLYOX + OH = CO + CO + HOCH2CHO + NO2 : 	1.36D-11 	;
+{14861.} 	 HMVKNGLYOX = CO + CO + HOCH2CHO + NO2 + HO2 : 	J(34) 	;
+{14862.} 	 MMALNBCO2H + OH = CO2H3CHO + NO2 : 	2.23D-11 	;
+{14863.} 	 MMALNBCO2H = CONM2CO2H + HO2 + CO + HO2 : 	J(15) 	;
+{14864.} 	 MMALNBCO3H + OH = MMALNBCO3 : 	2.59D-11 	;
+{14865.} 	 MMALNBCO3H = CO2H3CHO + NO2 + OH : 	J(41) 	;
+{14866.} 	 MMALNBCO3H = CONM2CO3H + HO2 + CO + HO2 : 	J(15) 	;
+{14867.} 	 MMALNBPAN + OH = CO2H3CHO + NO2 + NO3 : 	2.18D-11 	;
+{14868.} 	 MMALNBPAN = CONM2PAN + HO2 + CO + HO2 : 	J(15) 	;
+{14869.} 	 MMALNBPAN = MMALNBCO3 + NO2 : 	KBPAN 	;
+{14870.} 	 MECOFORMO2 + HO2 = MECOFOROOH : 	KRO2HO2*0.520 	;
+{14871.} 	 MECOFORMO2 + NO = MECOFORMO + NO2 : 	KRO2NO 	;
+{14872.} 	 MECOFORMO2 + NO3 = MECOFORMO + NO2 : 	KRO2NO3 	;
+{14873.} 	 MECOFORMO2 = MECOFORMO : 	8.80D-13*RO2 	;
+{14874.} 	 HO13C3CO3H = HOC2H4CHO + HO2 + OH : 	J(41) 	;
+{14875.} 	 OH + HO13C3CO3H = HO13C3CO3 : 	1.86D-11 	;
+{14876.} 	 C4PAN2 = HO13C3CO3 + NO2 : 	KBPAN 	;
+{14877.} 	 OH + C4PAN2 = HOC2H4CHO + CO + NO2 : 	8.22D-12 	;
+{14878.} 	 C5CO23OOH + OH = C5CO23O2 : 	1.31D-11 	;
+{14879.} 	 C5CO23OOH = C5CO23O + OH : 	J(41) 	;
+{14880.} 	 C5CO23O = C2H5CO3 + HCHO + CO : 	KDEC 	;
+{14881.} 	 CHOC2CO2H + OH = CHOC2H4O2 : 	2.64D-11 	;
+{14882.} 	 CHOC2CO3H + OH = CHOC2CO3 : 	3.00D-11 	;
+{14883.} 	 CHOC2CO3H = CHOC2H4O2 + OH : 	J(41)+J(15) 	;
+{14884.} 	 CHOC2PAN + OH = HCOCH2CHO + CO + NO2 : 	2.64D-11 	;
+{14885.} 	 CHOC2PAN = CHOC2CO3 + NO2 : 	KBPAN 	;
+{14886.} 	 CHOC3COOOH + OH = CHOC3COCO3 : 	7.55D-11 	;
+{14887.} 	 CHOC3COOOH = CHOC3COO2 + OH : 	J(41)+J(22)+J(15) 	;
+{14888.} 	 CHOC3COPAN + OH = C4CODIAL + CO + NO2 : 	7.19D-11 	;
+{14889.} 	 CHOC3COPAN = CHOC3COCO3 + NO2 : 	KBPAN 	;
+{14890.} 	 C5124COO2 + HO2 = C5124COOOH : 	KRO2HO2*0.706 	;
+{14891.} 	 C5124COO2 + NO = C5124COO + NO2 : 	KRO2NO 	;
+{14892.} 	 C5124COO2 + NO3 = C5124COO + NO2 : 	KRO2NO3 	;
+{14893.} 	 C5124COO2 = C5124COO : 	2.00D-12*RO2 	;
+{14894.} 	 C5TRONCO3H + OH = C5124COCO3 : 	1.68D-11 	;
+{14895.} 	 C5TRONCO3H = C5124COO2 + OH : 	J(41)+J(22)+J(34) 	;
+{14896.} 	 C5124COPAN + OH = C4CODIAL + CO + CO + NO2 : 	1.32D-11 	;
+{14897.} 	 C5124COPAN = C5124COCO3 + NO2 : 	KBPAN 	;
+{14898.} 	 C235C6CO3H + OH = CO235C6CO3 : 	4.75D-12 	;
+{14899.} 	 C235C6CO3H = CO235C6O2 + OH : 	J(41)+J(35) 	;
+{14900.} 	 CO235C6O2 + HO2 = CO235C6OOH : 	KRO2HO2*0.770 	;
+{14901.} 	 CO235C6O2 + NO = CO235C6O + NO2 : 	KRO2NO 	;
+{14902.} 	 CO235C6O2 + NO3 = CO235C6O + NO2 : 	KRO2NO3 	;
+{14903.} 	 CO235C6O2 = CO235C6O : 	2.00D-12*RO2 	;
+{14904.} 	 C7PAN3 + OH = CO235C5CHO + CO + NO2 : 	8.83D-13 	;
+{14905.} 	 C7PAN3 = CO235C6CO3 + NO2 : 	KBPAN 	;
+{14906.} 	 C716O2 + HO2 = C716OOH : 	KRO2HO2*0.820 	;
+{14907.} 	 C716O2 + NO = C716O + NO2 : 	KRO2NO 	;
+{14908.} 	 C716O2 + NO3 = C716O + NO2 : 	KRO2NO3 	;
+{14909.} 	 C716O2 = C716O : 	8.80D-13*0.6*RO2 	;
+{14910.} 	 C716O2 = C716OH : 	8.80D-13*0.2*RO2 	;
+{14911.} 	 C716O2 = CO235C6CHO : 	8.80D-13*0.2*RO2 	;
+{14912.} 	 NC71OOH + OH = NC71O2 : 	3.25D-11 	;
+{14913.} 	 NC71OOH = NC71O + OH : 	J(41) 	;
+{14914.} 	 NC71O = CO235C6CHO + NO2 : 	4.00D+04 	;
+{14915.} 	 NC71O = NC71CO + HO2 : 	KROSEC*O2 	;
+{14916.} 	 C811OOH + OH = C721CHO + OH : 	1.70D-11 	;
+{14917.} 	 C811OOH = C811O + OH : 	J(41) 	;
+{14918.} 	 C811NO3 + OH = C721CHO + NO2 : 	3.29D-12 	;
+{14919.} 	 C811NO3 = C811O + NO2 : 	J(53) 	;
+{14920.} 	 C811O = C812O2 : 	KDEC 	;
+{14921.} 	 C721CHO + NO3 = C721CO3 + HNO3 : 	KNO3AL*8.5 	;
+{14922.} 	 C721CHO + OH = C721CO3 : 	2.63D-11 	;
+{14923.} 	 C721CHO = C721O2 + CO + HO2 : 	J(15) 	;
+{14924.} 	 C811OH + OH = C721CHO + HO2 : 	7.89D-12 	;
+{14925.} 	 C413COOOH + OH = CHOC3COO2 : 	8.33D-11 	;
+{14926.} 	 C413COOOH = CHOC3COO + OH : 	J(41)+J(22)+J(15) 	;
+{14927.} 	 CHOC3COO = HCOCH2CO3 + HCHO : 	KDEC 	;
+{14928.} 	 C922O2 + HO2 = C922OOH : 	KRO2HO2*0.890 	;
+{14929.} 	 C922O2 + NO = C922O + NO2 : 	KRO2NO 	;
+{14930.} 	 C922O2 + NO3 = C922O + NO2 : 	KRO2NO3 	;
+{14931.} 	 C922O2 = C922O : 	6.70D-15*RO2 	;
+{14932.} 	 C614CO + OH = CO235C5CHO + HO2 : 	3.22D-12 	;
+{14933.} 	 C614CO = BIACETO2 + HOCH2CO3 : 	J(22) 	;
+{14934.} 	 C614O2 + HO2 = C614OOH : 	KRO2HO2*0.770 	;
+{14935.} 	 C614O2 + NO = C614NO3 : 	KRO2NO*0.098 	;
+{14936.} 	 C614O2 + NO = C614O + NO2 : 	KRO2NO*0.902 	;
+{14937.} 	 C614O2 + NO3 = C614O + NO2 : 	KRO2NO3 	;
+{14938.} 	 C614O2 = C614CO : 	8.80D-13*0.2*RO2 	;
+{14939.} 	 C614O2 = C614O : 	8.80D-13*0.6*RO2 	;
+{14940.} 	 C614O2 = C614OH : 	8.80D-13*0.2*RO2 	;
+{14941.} 	 C511O2 + HO2 = C511OOH : 	KRO2HO2*0.706 	;
+{14942.} 	 C511O2 + NO = C511O + NO2 : 	KRO2NO 	;
+{14943.} 	 C511O2 + NO3 = C511O + NO2 : 	KRO2NO3 	;
+{14944.} 	 C511O2 = C511O : 	8.80D-13*RO2 	;
+{14945.} 	 H3C25CCO2H + OH = H3C25C6O2 : 	2.39D-11 	;
+{14946.} 	 H3C25CCO2H = H3C25C6O2 + HO2 : 	J(22)*2 	;
+{14947.} 	 H3C25CCO3H + OH = H3C25C6CO3 : 	2.70D-11 	;
+{14948.} 	 H3C25CCO3H = H3C25C6O2 + OH : 	J(41)+J(22)*2 	;
+{14949.} 	 H3C25C6PAN + OH = H3C25C5CHO + CO + NO2 : 	2.29D-11 	;
+{14950.} 	 H3C25C6PAN = H3C25C6CO3 + NO2 : 	KBPAN 	;
+{14951.} 	 H3C25C6OOH + OH = H3C25C5CHO + OH : 	3.23D-11 	;
+{14952.} 	 H3C25C6OOH = H3C25C6O + OH : 	J(41)+J(22)*2 	;
+{14953.} 	 H3C25C6O = H3C2C4CO3 + HCHO : 	KDEC 	;
+{14954.} 	 H3C25C5CHO + OH = H3C2C4CO3 + CO : 	3.55D-11 	;
+{14955.} 	 H3C25C5CHO = H3C2C4CO3 + CO + HO2 : 	J(34) 	;
+{14956.} 	 H3C25C6OH + OH = C614CO + HO2 : 	2.54D-11*0.890 	;
+{14957.} 	 H3C25C6OH + OH = H3C25C5CHO + HO2 : 	2.54D-11*0.110 	;
+{14958.} 	 H3C25C6OH = HMVKAO2 + HOCH2CO3 : 	J(22)*2 	;
+{14959.} 	 C620O2 + HO2 = C620OOH : 	KRO2HO2*0.770 	;
+{14960.} 	 C620O2 + NO = C620O + NO2 : 	KRO2NO 	;
+{14961.} 	 C620O2 + NO3 = C620O + NO2 : 	KRO2NO3 	;
+{14962.} 	 C620O2 = C515CHO : 	8.80D-13*RO2*0.2 	;
+{14963.} 	 C620O2 = C620O : 	8.80D-13*RO2*0.6 	;
+{14964.} 	 C620O2 = C620OH : 	8.80D-13*RO2*0.2 	;
+{14965.} 	 C87CO3 + HO2 = C87CO2H + O3 : 	KAPHO2*0.15 	;
+{14966.} 	 C87CO3 + HO2 = C87CO3H : 	KAPHO2*0.41 	;
+{14967.} 	 C87CO3 + HO2 = C87O2 + OH : 	KAPHO2*0.44 	;
+{14968.} 	 C87CO3 + NO = C87O2 + NO2 : 	KAPNO 	;
+{14969.} 	 C87CO3 + NO2 = C87PAN : 	KFPAN 	;
+{14970.} 	 C87CO3 + NO3 = C87O2 + NO2 : 	KRO2NO3*1.74 	;
+{14971.} 	 C87CO3 = C87CO2H : 	1.00D-11*RO2*0.3 	;
+{14972.} 	 C87CO3 = C87O2 : 	1.00D-11*RO2*0.7 	;
+{14973.} 	 CO123C5CHO + NO3 = CHOC2CO3 + CO + CO + HNO3 : 	2*KNO3AL*5.5 	;
+{14974.} 	 CO123C5CHO + OH = CHOC2CO3 + CO + CO : 	3.89D-11 	;
+{14975.} 	 CO123C5CHO = CHOC2CO3 + HO2 + CO + CO : 	J(34)+J(15)+J(35) 	;
+{14976.} 	 C616O2 + HO2 = C616OOH : 	KRO2HO2*0.770 	;
+{14977.} 	 C616O2 + NO = C616O + NO2 : 	KRO2NO 	;
+{14978.} 	 C616O2 + NO3 = C616O + NO2 : 	KRO2NO3 	;
+{14979.} 	 C616O2 = C616O : 	8.80D-13*RO2*0.6 	;
+{14980.} 	 C616O2 = C616OH : 	8.80D-13*RO2*0.2 	;
+{14981.} 	 C616O2 = CO123C5CHO : 	8.80D-13*RO2*0.2 	;
+{14982.} 	 C718CO3 + HO2 = C718CO2H + O3 : 	KAPHO2*0.15 	;
+{14983.} 	 C718CO3 + HO2 = C718CO3H : 	KAPHO2*0.41 	;
+{14984.} 	 C718CO3 + HO2 = C718O2 + OH : 	KAPHO2*0.44 	;
+{14985.} 	 C718CO3 + NO = C718O2 + NO2 : 	KAPNO 	;
+{14986.} 	 C718CO3 + NO2 = C718PAN : 	KFPAN 	;
+{14987.} 	 C718CO3 + NO3 = C718O2 + NO2 : 	KRO2NO3*1.74 	;
+{14988.} 	 C718CO3 = C718CO2H : 	1.00D-11*0.3*RO2 	;
+{14989.} 	 C718CO3 = C718O2 : 	1.00D-11*0.7*RO2 	;
+{14990.} 	 C513O2 + HO2 = C513OOH : 	KRO2HO2*0.706 	;
+{14991.} 	 C513O2 + NO = C513O + NO2 : 	KRO2NO 	;
+{14992.} 	 C513O2 + NO3 = C513O + NO2 : 	KRO2NO3 	;
+{14993.} 	 C513O2 = C513CO : 	8.80D-13*RO2*0.2 	;
+{14994.} 	 C513O2 = C513O : 	8.80D-13*RO2*0.6 	;
+{14995.} 	 C513O2 = C513OH : 	8.80D-13*RO2*0.2 	;
+{14996.} 	 CO13C3CO2H + OH = HCOCH2CO3 : 	6.69D-11 	;
+{14997.} 	 CO13C3CO2H = HCOCH2CO3 + HO2 : 	J(34)+J(15) 	;
+{14998.} 	 C810OOH + OH = C810O2 : 	8.35D-11 	;
+{14999.} 	 C810OOH = C810O + OH : 	J(41)+J(15) 	;
+{15000.} 	 C810NO3 + OH = CH3COCH3 + CO13C4CHO + NO2 : 	4.96D-11 	;
+{15001.} 	 C810NO3 = C810O + NO2 : 	J(55)+J(15) 	;
+{15002.} 	 C810O = CH3COCH3 + C514O2 : 	2.70D+14*EXP(-6643/TEMP) 	;
+{15003.} 	 C810OH + OH = C810O : 	8.00D-11 	;
+{15004.} 	 C810OH = C810O + HO2 : 	J(15) 	;
+{15005.} 	 CO25C6CO3 + HO2 = C627O2 + OH : 	KAPHO2*0.44 	;
+{15006.} 	 CO25C6CO3 + HO2 = CO25C6CO2H + O3 : 	KAPHO2*0.15 	;
+{15007.} 	 CO25C6CO3 + HO2 = CO25C6CO3H : 	KAPHO2*0.41 	;
+{15008.} 	 CO25C6CO3 + NO = C627O2 + NO2 : 	KAPNO 	;
+{15009.} 	 CO25C6CO3 + NO2 = C627PAN : 	KFPAN 	;
+{15010.} 	 CO25C6CO3 + NO3 = C627O2 + NO2 : 	KRO2NO3*1.74 	;
+{15011.} 	 CO25C6CO3 = C627O2 : 	1.00D-11*RO2*0.7 	;
+{15012.} 	 C627O2 + HO2 = C627OOH : 	KRO2HO2*0.770 	;
+{15013.} 	 C627O2 + NO = C627O + NO2 : 	KRO2NO 	;
+{15014.} 	 C627O2 + NO3 = C627O + NO2 : 	KRO2NO3 	;
+{15015.} 	 C627O2 = C627O : 	2.50D-12*RO2*0.6 	;
+{15016.} 	 C627O2 = C627OH : 	2.50D-12*RO2*0.2 	;
+{15017.} 	 C627O2 = CO2C4GLYOX : 	2.50D-12*RO2*0.2 	;
+{15018.} 	 C818OOH + OH = C818CO + OH : 	3.94D-11 	;
+{15019.} 	 C818OOH = C517CHO + CH3CO3 + OH : 	J(22)*2 	;
+{15020.} 	 C818OOH = C818O + OH : 	J(41) 	;
+{15021.} 	 C818O = C517CHO + CH3CO3 : 	KDEC 	;
+{15022.} 	 C818CO + OH = C820O2 : 	1.41D-11 	;
+{15023.} 	 C818OH + OH = C818CO + HO2 : 	2.72D-11 	;
+{15024.} 	 C818OH = C517CHO + CH3CO3 + HO2 : 	J(22)*2 	;
+{15025.} 	 C727CO3H + OH = C727CO3 : 	1.05D-11 	;
+{15026.} 	 C727CO3H = C727O2 + OH : 	J(22)*2+J(41) 	;
+{15027.} 	 C727O2 + HO2 = C727OOH : 	KRO2HO2*0.820 	;
+{15028.} 	 C727O2 + NO = C727O + NO2 : 	KRO2NO 	;
+{15029.} 	 C727O2 + NO3 = C727O + NO2 : 	KRO2NO3 	;
+{15030.} 	 C727O2 = C727O : 	8.80D-13*RO2 	;
+{15031.} 	 C727PAN + OH = C727CO + CO + NO2 : 	6.89D-12 	;
+{15032.} 	 C727PAN = C727CO3 + NO2 : 	KBPAN 	;
+{15033.} 	 C511CO3 + HO2 = C511CO3H : 	KAPHO2*0.56 	;
+{15034.} 	 C511CO3 + HO2 = C511O2 + OH : 	KAPHO2*0.44 	;
+{15035.} 	 C511CO3 + NO = C511O2 + NO2 : 	KAPNO 	;
+{15036.} 	 C511CO3 + NO2 = C511PAN : 	KFPAN 	;
+{15037.} 	 C511CO3 + NO3 = C511O2 + NO2 : 	KRO2NO3*1.74 	;
+{15038.} 	 C511CO3 = C511O2 : 	1.00D-11*RO2 	;
+{15039.} 	 C517CO3 + HO2 = C517CO2H + O3 : 	KAPHO2*0.15 	;
+{15040.} 	 C517CO3 + HO2 = C517CO3H : 	KAPHO2*0.41 	;
+{15041.} 	 C517CO3 + HO2 = C517O2 + OH : 	KAPHO2*0.44 	;
+{15042.} 	 C517CO3 + NO = C517O2 + NO2 : 	KAPNO 	;
+{15043.} 	 C517CO3 + NO2 = C517PAN : 	KFPAN 	;
+{15044.} 	 C517CO3 + NO3 = C517O2 + NO2 : 	KRO2NO3*1.74 	;
+{15045.} 	 C517CO3 = C517CO2H : 	1.00D-11*RO2*0.3 	;
+{15046.} 	 C517CO3 = C517O2 : 	1.00D-11*RO2*0.7 	;
+{15047.} 	 C517O2 + HO2 = C517OOH : 	KRO2HO2*0.706 	;
+{15048.} 	 C517O2 + NO = C517NO3 : 	KRO2NO*0.052 	;
+{15049.} 	 C517O2 + NO = C517O + NO2 : 	KRO2NO*0.948 	;
+{15050.} 	 C517O2 + NO3 = C517O + NO2 : 	KRO2NO3 	;
+{15051.} 	 C517O2 = C517O : 	1.30D-12*RO2*0.6 	;
+{15052.} 	 C517O2 = C517OH : 	1.30D-12*RO2*0.2 	;
+{15053.} 	 C517O2 = HMVKBCHO : 	1.30D-12*RO2*0.2 	;
+{15054.} 	 NC728OOH + OH = NC728O2 : 	3.94D-11 	;
+{15055.} 	 NC728OOH = NC728O + OH : 	J(41) 	;
+{15056.} 	 NC728O = C517CHO + HCHO + NO2 : 	KDEC 	;
+{15057.} 	 NC728OH + OH = C517CHO + HCHO + NO2 : 	3.59D-11 	;
+{15058.} 	 C628O2 + HO2 = C628OOH : 	KRO2HO2*0.770 	;
+{15059.} 	 C628O2 + NO = C628O + NO2 : 	KRO2NO 	;
+{15060.} 	 C628O2 + NO3 = C628O + NO2 : 	KRO2NO3 	;
+{15061.} 	 C628O2 = C628O : 	9.20D-14*RO2*0.7 	;
+{15062.} 	 C628O2 = C628OH : 	9.20D-14*RO2*0.3 	;
+{15063.} 	 C728OOH + OH = C728O2 : 	4.52D-11 	;
+{15064.} 	 C728OOH = C728O + OH : 	J(41) 	;
+{15065.} 	 C728NO3 + OH = C517CHO + HCHO + NO2 : 	3.28D-11 	;
+{15066.} 	 C728O = C517CHO + HCHO + HO2 : 	KDEC 	;
+{15067.} 	 C728OH + OH = C517CHO + HCHO + HO2 : 	4.18D-11 	;
+{15068.} 	 C622OOH + OH = C518CHO + OH : 	7.17D-11 	;
+{15069.} 	 C622OOH = C622O + OH : 	J(41) 	;
+{15070.} 	 C622NO3 + OH = C518CHO + NO2 : 	5.64D-11 	;
+{15071.} 	 C622NO3 = C622O + NO2 : 	J(53) 	;
+{15072.} 	 C622O = C518CHO + HO2 : 	KROPRIM*O2 	;
+{15073.} 	 C518CHO + NO3 = C518CO3 + HNO3 : 	KNO3AL*8.5 	;
+{15074.} 	 C518CHO + NO3 = NC623O2 : 	3.30D-13 	;
+{15075.} 	 C518CHO + O3 = C520OOA + HCHO : 	1.30D-17*0.670 	;
+{15076.} 	 C518CHO + O3 = HMVKBCHO + CH2OOF : 	1.30D-17*0.330 	;
+{15077.} 	 C518CHO + OH = C518CO3 : 	8.70D-11*0.288 	;
+{15078.} 	 C518CHO + OH = C623O2 : 	8.70D-11*0.712 	;
+{15079.} 	 C518CHO = ISOPDO2 + CO + HO2 : 	J(15) 	;
+{15080.} 	 C622OH + OH = C518CHO + HO2 : 	6.29D-11 	;
+{15081.} 	 C824O2 + HO2 = C824OOH : 	KRO2HO2*0.859 	;
+{15082.} 	 C824O2 + NO = C824O + NO2 : 	KRO2NO 	;
+{15083.} 	 C824O2 + NO3 = C824O + NO2 : 	KRO2NO3 	;
+{15084.} 	 C824O2 = C824CO : 	8.80D-12*RO2*0.2 	;
+{15085.} 	 C824O2 = C824O : 	8.80D-12*RO2*0.6 	;
+{15086.} 	 C824O2 = C824OH : 	8.80D-12*RO2*0.2 	;
+{15087.} 	 C823OOH + OH = C823CO + OH : 	7.06D-11 	;
+{15088.} 	 C823OOH = C823O + OH : 	J(41) 	;
+{15089.} 	 C823NO3 + OH = C823CO + NO2 : 	5.53D-11 	;
+{15090.} 	 C823NO3 = C823O + NO2 : 	J(53) 	;
+{15091.} 	 C823O = C825O2 : 	KDEC 	;
+{15092.} 	 C823CO + OH = C825O2 : 	7.70D-11 	;
+{15093.} 	 C823CO = C825O2 + HO2 : 	J(15) 	;
+{15094.} 	 C823OH + OH = C823CO + HO2 : 	6.16D-11 	;
+{15095.} 	 C819OOH + OH = C819O2 : 	1.35D-11 	;
+{15096.} 	 C819OOH = C819O + OH : 	J(22)*2+J(41) 	;
+{15097.} 	 C819O = ACETOL + CO2C4CO3 : 	KDEC 	;
+{15098.} 	 C731CO2 = C731O2 : 	KDEC*0.2 	;
+{15099.} 	 C731CO2 = C732CO3 : 	KDEC*0.8 	;
+{15100.} 	 C731CO2H + OH = C731CO2 : 	3.88D-11 	;
+{15101.} 	 C731CO3H + OH = C731CO3 : 	4.18D-11 	;
+{15102.} 	 C731CO3H = C731CO2 + OH : 	J(41) 	;
+{15103.} 	 C731PAN + OH = C626CHO + CO + NO2 : 	3.82D-11 	;
+{15104.} 	 C731PAN = C731CO3 + NO2 : 	KBPAN 	;
+{15105.} 	 C1011OOH + OH = C1011CO + OH : 	1.41D-11 	;
+{15106.} 	 C1011OOH = C1011O + OH : 	J(41) 	;
+{15107.} 	 C1011NO3 + OH = C1011CO + NO2 : 	6.04D-12 	;
+{15108.} 	 C1011NO3 = C1011O + NO2 : 	J(54) 	;
+{15109.} 	 C1011O = C1012O2 : 	KDEC 	;
+{15110.} 	 C1011CO + OH = C1012O2 : 	7.01D-12 	;
+{15111.} 	 C1011OH + OH = C1011CO + HO2 : 	9.07D-12 	;
+{15112.} 	 C1211CO3 + HO2 = C1211CO2H + O3 : 	KAPHO2*0.15 	;
+{15113.} 	 C1211CO3 + HO2 = C1211CO3H : 	KAPHO2*0.41 	;
+{15114.} 	 C1211CO3 + HO2 = C1211O2 + OH : 	KAPHO2*0.44 	;
+{15115.} 	 C1211CO3 + NO = C1211O2 + NO2 : 	KAPNO 	;
+{15116.} 	 C1211CO3 + NO2 = C1211PAN : 	KFPAN 	;
+{15117.} 	 C1211CO3 + NO3 = C1211O2 + NO2 : 	KRO2NO3*1.74 	;
+{15118.} 	 C1211CO3 = C1211CO2H : 	1.00D-11*RO2*0.3 	;
+{15119.} 	 C1211CO3 = C1211O2 : 	1.00D-11*RO2*0.7 	;
+{15120.} 	 C133O2 + HO2 = C133OOH : 	KRO2HO2*0.959 	;
+{15121.} 	 C133O2 + NO = C133NO3 : 	KRO2NO*0.243 	;
+{15122.} 	 C133O2 + NO = C133O + NO2 : 	KRO2NO*0.757 	;
+{15123.} 	 C133O2 + NO3 = C133O + NO2 : 	KRO2NO3 	;
+{15124.} 	 C133O2 = C133CO : 	2.50D-13*RO2*0.2 	;
+{15125.} 	 C133O2 = C133O : 	2.50D-13*RO2*0.6 	;
+{15126.} 	 C133O2 = C133OH : 	2.50D-13*RO2*0.2 	;
+{15127.} 	 C137OOH + OH = C137CO + OH : 	7.06D-11 	;
+{15128.} 	 C137OOH = C137O + OH : 	J(41) 	;
+{15129.} 	 C137NO3 + OH = C137CO + NO2 : 	5.53D-11 	;
+{15130.} 	 C137NO3 = C137O + NO2 : 	J(53) 	;
+{15131.} 	 C137O = C139O2 : 	KDEC 	;
+{15132.} 	 C137CO + OH = C139O2 : 	7.70D-11 	;
+{15133.} 	 C137CO = C139O2 + HO2 : 	J(15) 	;
+{15134.} 	 C137OH + OH = C137CO + HO2 : 	6.16D-11 	;
+{15135.} 	 C1013OOH + OH = C1013CO + OH : 	1.40D-11 	;
+{15136.} 	 C1013OOH = C1013O + OH : 	J(41) 	;
+{15137.} 	 C1013NO3 + OH = C1013CO + NO2 : 	5.94D-11 	;
+{15138.} 	 C1013NO3 = C1013O + NO2 : 	J(54) 	;
+{15139.} 	 C1013O = C1014O2 : 	KDEC 	;
+{15140.} 	 C1013CO + OH = C1014O2 : 	6.91D-12 	;
+{15141.} 	 C1013OH + OH = C1013CO + HO2 : 	9.00D-12 	;
+{15142.} 	 C1010OOH + OH = C736CO + CH3COCH3 + OH : 	8.18D-11 	;
+{15143.} 	 C1010OOH = C1010O + OH : 	J(41) 	;
+{15144.} 	 C1010NO3 + OH = C736CO + CH3COCH3 + NO2 : 	7.42D-11 	;
+{15145.} 	 C1010NO3 = C1010O + NO2 : 	J(55) 	;
+{15146.} 	 C1010O = C736O2 + CH3COCH3 : 	KDEC 	;
+{15147.} 	 C1010OH + OH = C736CO + CH3COCH3 + HO2 : 	7.82D-11 	;
+{15148.} 	 C117OOH + OH = C117O2 : 	3.51D-11 	;
+{15149.} 	 C117OOH = C117O + OH : 	J(41) 	;
+{15150.} 	 C117NO3 + OH = C118CO + NO2 : 	2.80D-11 	;
+{15151.} 	 C117NO3 = C117O + NO2 : 	J(55) 	;
+{15152.} 	 C117O = C118O2 : 	KDEC 	;
+{15153.} 	 C117OH + OH = C117O : 	3.16D-11 	;
+{15154.} 	 C830CO2H + OH = C830O2 : 	3.14D-11 	;
+{15155.} 	 C830CO3H + OH = C830CO3 : 	3.45D-11 	;
+{15156.} 	 C830CO3H = C830O2 + OH : 	J(41) 	;
+{15157.} 	 C830O2 + HO2 = C830OOH : 	KRO2HO2*0.914 	;
+{15158.} 	 C830O2 + NO = C830NO3 : 	KRO2NO*0.192 	;
+{15159.} 	 C830O2 + NO = C830O + NO2 : 	KRO2NO*0.808 	;
+{15160.} 	 C830O2 + NO3 = C830O + NO2 : 	KRO2NO3 	;
+{15161.} 	 C830O2 = C830CO : 	2.50D-13*RO2*0.2 	;
+{15162.} 	 C830O2 = C830O : 	2.50D-13*RO2*0.6 	;
+{15163.} 	 C830O2 = C830OH : 	2.50D-13*RO2*0.2 	;
+{15164.} 	 C830PAN + OH = C830CO + CO + NO2 : 	3.09D-11 	;
+{15165.} 	 C830PAN = C830CO3 + NO2 : 	KBPAN 	;
+{15166.} 	 C128CO + OH = C927O2 + HCOCH2CHO : 	7.41D-11 	;
+{15167.} 	 C128CO = C927O2 + HCOCH2CO3 : 	J(22) 	;
+{15168.} 	 C128O2 + HO2 = C128OOH : 	KRO2HO2*0.947 	;
+{15169.} 	 C128O2 + NO = C128NO3 : 	KRO2NO*0.245 	;
+{15170.} 	 C128O2 + NO = C128O + NO2 : 	KRO2NO*0.755 	;
+{15171.} 	 C128O2 + NO3 = C128O + NO2 : 	KRO2NO3 	;
+{15172.} 	 C128O2 = C128CO : 	2.50D-13*RO2*0.2 	;
+{15173.} 	 C128O2 = C128O : 	2.50D-13*RO2*0.6 	;
+{15174.} 	 C128O2 = C128OH : 	2.50D-13*RO2*0.2 	;
+{15175.} 	 C145OOH + OH = C145O2 : 	2.72D-11 	;
+{15176.} 	 C145OOH = C145O + OH : 	J(41) 	;
+{15177.} 	 C145O = C928CO3 + HO14CO2C4 : 	KDEC 	;
+{15178.} 	 C145OH + OH = C145O : 	2.37D-11 	;
+{15179.} 	 C927OOH + OH = C927O2 : 	8.69D-11 	;
+{15180.} 	 C927OOH = C927O + OH : 	J(41) 	;
+{15181.} 	 C927NO3 + OH = C630CO + CH3COCH3 + NO2 : 	5.82D-11 	;
+{15182.} 	 C927NO3 = C927O + NO2 : 	J(55) 	;
+{15183.} 	 C927O = C630O2 + CH3COCH3 : 	KDEC 	;
+{15184.} 	 C927OH + OH = C927O : 	7.47D-11 	;
+{15185.} 	 C1214OOH + OH = C1215CO + OH : 	4.59D-11 	;
+{15186.} 	 C1214OOH = C1214O + OH : 	J(41) 	;
+{15187.} 	 C1214O = C1215O2 : 	KDEC 	;
+{15188.} 	 C1214OH + OH = C1215CO + HO2 : 	3.68D-11 	;
+{15189.} 	 ALC4DOLOOH + OH = CHOC4DOLO2 : 	5.84D-11 	;
+{15190.} 	 ALC4DOLOOH = CHOC3DIOL + HO2 + CO + OH : 	J(17) 	;
+{15191.} 	 ALC4DOLOOH = CHOC4DOLO + OH : 	J(41) 	;
+{15192.} 	 CHOC4DOLO = CHOC3DIOL + HO2 + CO : 	KDEC 	;
+{15193.} 	 C6TONOHOOH + OH = C6TRONOHO2 : 	7.37D-11 	;
+{15194.} 	 C6TONOHOOH = C6TRONOHO + OH : 	J(15)+J(35)+J(41) 	;
+{15195.} 	 C6TRONOHO = HCOCH2CHO + HOCH2CO3 + CO : 	KDEC 	;
+{15196.} 	 HO24C4CO3 + HO2 = HO24C4CO3H : 	KAPHO2*0.56 	;
+{15197.} 	 HO24C4CO3 + HO2 = HO2C3CHO + HO2 + OH : 	KAPHO2*0.44 	;
+{15198.} 	 HO24C4CO3 + NO = HO2C3CHO + HO2 + NO2 : 	KAPNO 	;
+{15199.} 	 HO24C4CO3 + NO2 = C5PAN10 : 	KFPAN 	;
+{15200.} 	 HO24C4CO3 + NO3 = HO2C3CHO + HO2 + NO2 : 	KRO2NO3*1.74 	;
+{15201.} 	 HO24C4CO3 = HO2C3CHO + HO2 : 	1.00D-11*RO2 	;
+{15202.} 	 C23C54CO3H = CO23C54O2 + OH : 	J(41) 	;
+{15203.} 	 OH + C23C54CO3H = C23C54CO3 : 	5.32D-12 	;
+{15204.} 	 C6PAN7 = C23C54CO3 + NO2 : 	KBPAN 	;
+{15205.} 	 OH + C6PAN7 = C5CO234 + CO + NO2 : 	1.07D-12 	;
+{15206.} 	 C73OOH = C73O + OH : 	J(41)+J(35) 	;
+{15207.} 	 C73OOH = CO23C4CO3 + CH3CHO + OH : 	J(22) 	;
+{15208.} 	 OH + C73OOH = C73O2 : 	1.70D-11 	;
+{15209.} 	 C73O = CO23C4CO3 + CH3CHO : 	KDEC 	;
+{15210.} 	 C74OOH = C74O + OH : 	J(41) 	;
+{15211.} 	 C74OOH = CH3CHO + OH + CO2C3CO3 + CO : 	J(35) 	;
+{15212.} 	 OH + C74OOH = C74O2 : 	1.70D-11 	;
+{15213.} 	 C74O = CO2C3CO3 + CH3CHO + CO : 	KDEC 	;
+{15214.} 	 C715OOH = C715O + OH : 	J(41) 	;
+{15215.} 	 C715OOH = CH3CO3 + C5CO234 + OH : 	J(22)*2 	;
+{15216.} 	 OH + C715OOH = C715O2 : 	5.46D-12 	;
+{15217.} 	 C715O = CH3CO3 + CO + BIACET : 	KDEC 	;
+{15218.} 	 C613O2 + HO2 = C613OOH : 	KRO2HO2*0.820 	;
+{15219.} 	 C613O2 + NO = C613O + NO2 : 	KRO2NO 	;
+{15220.} 	 C613O2 + NO3 = C613O + NO2 : 	KRO2NO3 	;
+{15221.} 	 C613O2 = C613O : 	8.80D-13*RO2 	;
+{15222.} 	 C83OOH = C83O + OH : 	J(41)+J(22)+J(35) 	;
+{15223.} 	 OH + C83OOH = C83O2 : 	1.52D-11 	;
+{15224.} 	 C83O = EGLYOX + C2H5CO3 + CO : 	KDEC 	;
+{15225.} 	 C95OOH = C95O + OH : 	J(41)+J(22)+J(35) 	;
+{15226.} 	 OH + C95OOH = C95O2 : 	1.87D-11 	;
+{15227.} 	 C95O = EGLYOX + C3H7CO3 + CO : 	KDEC 	;
+{15228.} 	 C105OOH = C105O + OH : 	J(41)+J(22)+J(35) 	;
+{15229.} 	 OH + C105OOH = C105O2 : 	2.01D-11 	;
+{15230.} 	 C105O = EGLYOX + C4H9CO3 + CO : 	KDEC 	;
+{15231.} 	 C115OOH = C115O + OH : 	J(41)+J(22)+J(35) 	;
+{15232.} 	 OH + C115OOH = C115O2 : 	2.15D-11 	;
+{15233.} 	 C115O = EGLYOX + C5H11CO3 + CO : 	KDEC 	;
+{15234.} 	 C125OOH = C125O + OH : 	J(41)+J(22)+J(35) 	;
+{15235.} 	 OH + C125OOH = C125O2 : 	2.29D-11 	;
+{15236.} 	 C125O = EGLYOX + C6H13CO3 + CO : 	KDEC 	;
+{15237.} 	 C4CO2DCO3H + OH = C4CO2DBCO3 : 	3.06D-11 	;
+{15238.} 	 C4CO2DCO3H = HO2 + CO + C33CO + OH : 	J(41)+J(34) 	;
+{15239.} 	 C4CO2DBPAN + OH = C33CO + CO + NO2 : 	2.74D-11 	;
+{15240.} 	 C4CO2DBPAN = C4CO2DBCO3 + NO2 : 	KBPAN 	;
+{15241.} 	 C5CO2DCO3H + OH = C5CO2DBCO3 : 	3.60D-11 	;
+{15242.} 	 C5CO2DCO3H = CH3CO3 + C33CO + OH : 	J(41)+J(34) 	;
+{15243.} 	 C5CO2DBPAN + OH = C33CO + CH3CHO + NO2 : 	3.28D-11 	;
+{15244.} 	 C5CO2DBPAN = C5CO2DBCO3 + NO2 : 	KBPAN 	;
+{15245.} 	 C4DBM2CO3H + OH = C4DBM2CO3 : 	4.15D-11 	;
+{15246.} 	 C4DBM2CO3H = CO23C3CHO + CH3CO3 + OH : 	J(41)+J(34) 	;
+{15247.} 	 C4DBM2PAN + OH = CO23C3CHO + CH3CO3 + NO2 : 	3.82D-11 	;
+{15248.} 	 C4DBM2PAN = C4DBM2CO3 + NO2 : 	KBPAN 	;
+{15249.} 	 C23O3CHO + NO3 = CO + CH3CO3 + HNO3 : 	KNO3AL*4.0 	;
+{15250.} 	 C23O3CHO + OH = CO + CH3CO3 : 	1.27D-11 	;
+{15251.} 	 C23O3CHO = CO + HO2 + CH3CO3 : 	J(22) 	;
+{15252.} 	 C5DCO2CO3H + OH = C5DBCO2CO3 : 	3.60D-11 	;
+{15253.} 	 C5DCO2CO3H = CO23C3CHO + HO2 + CO + OH : 	J(41)+J(34) 	;
+{15254.} 	 C5DBCO2PAN + OH = CO23C3CHO + CO + NO2 : 	3.28D-11 	;
+{15255.} 	 C5DBCO2PAN = C5DBCO2CO3 + NO2 : 	KBPAN 	;
+{15256.} 	 C7CO2DCO3H + OH = C7CO2DBCO3 : 	3.78D-11 	;
+{15257.} 	 C7CO2DCO3H = C2H5CO3 + C33CO + OH : 	J(41)+J(34) 	;
+{15258.} 	 C7CO2DBPAN + OH = C33CO + C2H5CHO + NO2 : 	3.45D-11 	;
+{15259.} 	 C7CO2DBPAN = C7CO2DBCO3 + NO2 : 	KBPAN 	;
+{15260.} 	 EMALANHY + OH = EMALANHYO2 : 	1.50D-12 	;
+{15261.} 	 C8CO2DCO3H + OH = C8CO2DBCO3 : 	3.93D-11 	;
+{15262.} 	 C8CO2DCO3H = C3H7CO3 + C33CO + OH : 	J(41)+J(34) 	;
+{15263.} 	 C8CO2DBPAN + OH = C33CO + C3H7CHO + NO2 : 	3.61D-11 	;
+{15264.} 	 C8CO2DBPAN = C8CO2DBCO3 + NO2 : 	KBPAN 	;
+{15265.} 	 PMALANHY + OH = PMALANHYO2 : 	1.50D-12 	;
+{15266.} 	 C8DCO2CO3H + OH = C8CO2DBCO3 : 	3.99D-11 	;
+{15267.} 	 C8DCO2CO3H = IPRCO3 + C33CO + OH : 	J(41)+J(34) 	;
+{15268.} 	 C8DBCO2PAN + OH = C33CO + IPRCHO + NO2 : 	3.68D-11 	;
+{15269.} 	 C8DBCO2PAN = C8DBCO2CO3 + NO2 : 	KBPAN 	;
+{15270.} 	 IPMALANHY + OH = IPMALNHYO2 : 	1.50D-12 	;
+{15271.} 	 CO2OH3MCO3 + HO2 = BIACET + HO2 + OH : 	KAPHO2*0.44 	;
+{15272.} 	 CO2OH3MCO3 + HO2 = CO2H3MCO3H : 	KAPHO2*0.56 	;
+{15273.} 	 CO2OH3MCO3 + NO = BIACET + HO2 + NO2 : 	KAPNO 	;
+{15274.} 	 CO2OH3MCO3 + NO2 = CO2OH3MPAN : 	KFPAN 	;
+{15275.} 	 CO2OH3MCO3 + NO3 = BIACET + HO2 + NO2 : 	KRO2NO3*1.74 	;
+{15276.} 	 CO2OH3MCO3 = BIACET + HO2 : 	1.00D-11*RO2 	;
+{15277.} 	 C4DBMECO3H + OH = C4DBM2CO3 : 	4.32D-11 	;
+{15278.} 	 C4DBMECO3H = C5CO23CHO + CH3CO3 + OH : 	J(41)+J(34) 	;
+{15279.} 	 C4DBMEPAN + OH = C5CO23CHO + CH3CHO + NO2 : 	4.00D-11 	;
+{15280.} 	 C4DBMEPAN = C4DBMECO3 + NO2 : 	KBPAN 	;
+{15281.} 	 C5DBECO3H + OH = C5DBECO3 : 	2.54D-11 	;
+{15282.} 	 C5DBECO3H = CO234C6 + HO2 + CO + OH : 	J(41) 	;
+{15283.} 	 C5DBEPAN + OH = CO234C6 + CO + NO2 : 	2.22D-11 	;
+{15284.} 	 C5DBEPAN = C5DBECO3 + NO2 : 	KBPAN 	;
+{15285.} 	 C5EDBCO3H + OH = C5EDBCO3 : 	2.54D-11 	;
+{15286.} 	 C5EDBCO3H = CO23C3CHO + C2H5CO3 + OH : 	J(41) 	;
+{15287.} 	 C5EDBPAN + OH = CO23C3CHO + C2H5CHO + NO2 : 	2.22D-11 	;
+{15288.} 	 C5EDBPAN = C5EDBCO3 + NO2 : 	KBPAN 	;
+{15289.} 	 C3EODBCO2H + OH = HO2 + CO + EGLYOX : 	4.89D-11 	;
+{15290.} 	 C3EODBCO2H = HO2 + CO + HCOCO2H + C2H5CO3 : 	J(24) 	;
+{15291.} 	 COHM2CO3 + HO2 = COHM2CO2H + O3 : 	KAPHO2*0.15 	;
+{15292.} 	 COHM2CO3 + HO2 = COHM2CO3H : 	KAPHO2*0.41 	;
+{15293.} 	 COHM2CO3 + HO2 = GLYOX + HO2 + OH : 	KAPHO2*0.44 	;
+{15294.} 	 COHM2CO3 + NO = GLYOX + HO2 + NO2 : 	KAPNO 	;
+{15295.} 	 COHM2CO3 + NO2 = COHM2PAN : 	KFPAN 	;
+{15296.} 	 COHM2CO3 + NO3 = GLYOX + HO2 + NO2 : 	KRO2NO3*1.74 	;
+{15297.} 	 COHM2CO3 = COHM2CO2H : 	1.00D-11*0.3*RO2 	;
+{15298.} 	 COHM2CO3 = GLYOX + HO2 : 	1.00D-11*0.7*RO2 	;
+{15299.} 	 MECOFOROOH + OH = MECOFORMO2 : 	1.90D-12*EXP(190/TEMP) 	;
+{15300.} 	 MECOFOROOH = MECOFORMO + OH : 	J(41) 	;
+{15301.} 	 MECOFORMO = HCHO + CO + HO2 : 	KDEC 	;
+{15302.} 	 C4CODIAL + NO3 = C312COCO3 + HNO3 : 	2*KNO3AL*4.0 	;
+{15303.} 	 C4CODIAL + OH = C312COCO3 : 	3.39D-11 	;
+{15304.} 	 C4CODIAL = CHOCOCH2O2 + HO2 + CO : 	J(15) 	;
+{15305.} 	 C4CODIAL = HCOCH2CO3 + HO2 + CO : 	J(34) 	;
+{15306.} 	 C5124COOOH + OH = C5124COO2 : 	2.46D-11 	;
+{15307.} 	 C5124COOOH = C5124COO + OH : 	J(41)+J(22)+J(34) 	;
+{15308.} 	 C5124COO = C312COCO3 + HCHO : 	KDEC 	;
+{15309.} 	 CO235C6OOH + OH = CO235C6O2 : 	1.01D-11 	;
+{15310.} 	 CO235C6OOH = CO235C6O + OH : 	J(41)+J(35) 	;
+{15311.} 	 CO235C6O = CO23C4CO3 + HCHO : 	KDEC 	;
+{15312.} 	 CO235C5CHO + NO3 = CO23C4CO3 + CO + HNO3 : 	KNO3AL*5.5 	;
+{15313.} 	 CO235C5CHO + OH = CO23C4CO3 + CO : 	1.33D-11 	;
+{15314.} 	 CO235C5CHO = CO23C4CO3 + CO + HO2 : 	J(34) 	;
+{15315.} 	 C716OOH + OH = CO235C6CHO + OH : 	1.20D-10 	;
+{15316.} 	 C716OOH = C716O + OH : 	J(41)+J(15) 	;
+{15317.} 	 C716O = CO13C4CHO + CH3CO3 : 	KDEC 	;
+{15318.} 	 NC71CO + OH = NC72O2 : 	1.25D-12 	;
+{15319.} 	 NC71CO = CO235C6CO3 + NO2 : 	J(55) 	;
+{15320.} 	 C812O2 + HO2 = C812OOH : 	KRO2HO2*0.859 	;
+{15321.} 	 C812O2 + NO = C812O + NO2 : 	KRO2NO 	;
+{15322.} 	 C812O2 + NO3 = C812O + NO2 : 	KRO2NO3 	;
+{15323.} 	 C812O2 = C812O : 	9.20D-14*RO2*0.7 	;
+{15324.} 	 C812O2 = C812OH : 	9.20D-14*RO2*0.3 	;
+{15325.} 	 C721CO3 + HO2 = C721CO3H : 	KAPHO2*0.41 	;
+{15326.} 	 C721CO3 + HO2 = C721O2 + OH : 	KAPHO2*0.44 	;
+{15327.} 	 C721CO3 + HO2 = NORPINIC + O3 : 	KAPHO2*0.15 	;
+{15328.} 	 C721CO3 + NO = C721O2 + NO2 : 	KAPNO 	;
+{15329.} 	 C721CO3 + NO2 = C721PAN : 	KFPAN 	;
+{15330.} 	 C721CO3 + NO3 = C721O2 + NO2 : 	KRO2NO3*1.74 	;
+{15331.} 	 C721CO3 = C721O2 : 	1.00D-11*RO2*0.7 	;
+{15332.} 	 C721CO3 = NORPINIC : 	1.00D-11*RO2*0.3 	;
+{15333.} 	 C721O2 + HO2 = C721OOH : 	KRO2HO2*0.820 	;
+{15334.} 	 C721O2 + NO = C721O + NO2 : 	KRO2NO 	;
+{15335.} 	 C721O2 + NO3 = C721O + NO2 : 	KRO2NO3 	;
+{15336.} 	 C721O2 = C721O : 	1.30D-12*RO2 	;
+{15337.} 	 C922OOH + OH = C922O2 : 	1.51D-11 	;
+{15338.} 	 C922OOH = C922O + OH : 	J(41)+J(22) 	;
+{15339.} 	 C922O = CH3COCH3 + C621O2 : 	KDEC 	;
+{15340.} 	 C614OOH + OH = C614CO + OH : 	8.69D-11 	;
+{15341.} 	 C614OOH = C614O + OH : 	J(41)+J(35) 	;
+{15342.} 	 C614NO3 + OH = C614CO + NO2 : 	71.11D-12 	;
+{15343.} 	 C614NO3 = C614O + NO2 : 	J(35) 	;
+{15344.} 	 C614O = CO23C4CHO + HCHO + HO2 : 	KDEC 	;
+{15345.} 	 C614OH + OH = C614CO + HO2 : 	3.78D-11 	;
+{15346.} 	 C614OH = C614O + HO2 : 	J(35) 	;
+{15347.} 	 C511OOH + OH = C511O2 : 	7.49D-11 	;
+{15348.} 	 C511OOH = C511O + OH : 	J(41)+J(15) 	;
+{15349.} 	 C511O = CH3CO3 + HCOCH2CHO : 	KDEC 	;
+{15350.} 	 H3C2C4CO3 + HO2 = H3C2C4CO2H + O3 : 	KAPHO2*0.15 	;
+{15351.} 	 H3C2C4CO3 + HO2 = H3C2C4CO3H : 	KAPHO2*0.41 	;
+{15352.} 	 H3C2C4CO3 + HO2 = HMVKAO2 + OH : 	KAPHO2*0.44 	;
+{15353.} 	 H3C2C4CO3 + NO = HMVKAO2 + NO2 : 	KAPNO 	;
+{15354.} 	 H3C2C4CO3 + NO2 = H3C2C4PAN : 	KFPAN 	;
+{15355.} 	 H3C2C4CO3 + NO3 = HMVKAO2 + NO2 : 	KRO2NO3*1.74 	;
+{15356.} 	 H3C2C4CO3 = H3C2C4CO2H : 	1.00D-11*RO2*0.3 	;
+{15357.} 	 H3C2C4CO3 = HMVKAO2 : 	1.00D-11*RO2*0.7 	;
+{15358.} 	 C620OOH + OH = C515CHO + OH : 	1.15D-10 	;
+{15359.} 	 C620OOH = C620O + OH : 	J(41)+J(15)*2 	;
+{15360.} 	 C620O = HCOCH2CHO + HCOCH2CO3 : 	KDEC 	;
+{15361.} 	 C515CHO + OH = C515CO3 : 	1.33D-10 	;
+{15362.} 	 C515CHO = C515O2 + HO2 + CO : 	J(15)*2 	;
+{15363.} 	 C515CHO = HCOCH2CO3 + HCOCH2CO3 : 	J(35) 	;
+{15364.} 	 C620OH + OH = C515CHO + HO2 : 	9.44D-11 	;
+{15365.} 	 C620OH = C620O + HO2 : 	J(15)*2 	;
+{15366.} 	 C87CO2H + OH = C87O2 : 	9.19D-11 	;
+{15367.} 	 C87CO2H = C87O2 + HO2 : 	J(15)*2 	;
+{15368.} 	 C87CO3H + OH = C87CO3 : 	9.50D-11 	;
+{15369.} 	 C87CO3H = C87O2 + OH : 	J(41)+J(15)*2 	;
+{15370.} 	 C87O2 + HO2 = C87OOH : 	KRO2HO2*0.859 	;
+{15371.} 	 C87O2 + NO = C87O + NO2 : 	KRO2NO 	;
+{15372.} 	 C87O2 + NO3 = C87O + NO2 : 	KRO2NO3 	;
+{15373.} 	 C87O2 = C87CO : 	2.00D-12*RO2*0.2 	;
+{15374.} 	 C87O2 = C87O : 	2.00D-12*RO2*0.6 	;
+{15375.} 	 C87O2 = C87OH : 	2.00D-12*RO2*0.2 	;
+{15376.} 	 C87PAN + OH = C87CO + CO + NO2 : 	9.11D-11 	;
+{15377.} 	 C87PAN = C87CO3 + NO2 : 	KBPAN 	;
+{15378.} 	 C616OOH + OH = CO123C5CHO + OH : 	1.02D-10 	;
+{15379.} 	 C616OOH = C616O + OH : 	J(41)+J(15)*2 	;
+{15380.} 	 C616O = CHOC2CO3 + GLYOX : 	KDEC*0.5 	;
+{15381.} 	 C616O = CO12C4CHO + HO2 + CO : 	KDEC*0.5 	;
+{15382.} 	 C616OH + OH = CO123C5CHO + HO2 : 	9.27D-11 	;
+{15383.} 	 C616OH = C616O + HO2 : 	J(15)*2 	;
+{15384.} 	 C718CO2H + OH = C718O2 : 	7.21D-11 	;
+{15385.} 	 C718CO2H = C718O2 + HO2 : 	J(15) 	;
+{15386.} 	 C718CO3H + OH = C718CO3 : 	7.52D-11 	;
+{15387.} 	 C718CO3H = C718O2 + OH : 	J(41)+J(15) 	;
+{15388.} 	 C718O2 + HO2 = C718OOH : 	KRO2HO2*0.820 	;
+{15389.} 	 C718O2 + NO = C718NO3 : 	KRO2NO*0.138 	;
+{15390.} 	 C718O2 + NO = C718O + NO2 : 	KRO2NO*0.862 	;
+{15391.} 	 C718O2 + NO3 = C718O + NO2 : 	KRO2NO3 	;
+{15392.} 	 C718O2 = C617CHO : 	1.30D-12*RO2*0.2 	;
+{15393.} 	 C718O2 = C718O : 	1.30D-12*RO2*0.6 	;
+{15394.} 	 C718O2 = C718OH : 	1.30D-12*RO2*0.2 	;
+{15395.} 	 C718PAN + OH = C617CHO + CO + NO2 : 	6.81D-11 	;
+{15396.} 	 C718PAN = C718CO3 + NO2 : 	KBPAN 	;
+{15397.} 	 C513OOH + OH = C513CO + OH : 	9.23D-11 	;
+{15398.} 	 C513OOH = C513O + OH : 	J(41)+J(15) 	;
+{15399.} 	 C513O = GLYOX + HOC2H4CO3 : 	KDEC 	;
+{15400.} 	 C513CO + OH = HOC2H4CO3 + CO + CO : 	2.64D-11 	;
+{15401.} 	 C513CO = HOC2H4CO3 + HO2 + CO + CO : 	J(34)+J(35) 	;
+{15402.} 	 C513OH + OH = C513CO + HO2 : 	8.35D-11 	;
+{15403.} 	 C513OH = C513O + HO2 : 	J(15) 	;
+{15404.} 	 C514O2 + HO2 = C514OOH : 	KRO2HO2*0.706 	;
+{15405.} 	 C514O2 + NO = C514NO3 : 	KRO2NO*0.129 	;
+{15406.} 	 C514O2 + NO = C514O + NO2 : 	KRO2NO*0.871 	;
+{15407.} 	 C514O2 + NO3 = C514O + NO2 : 	KRO2NO3 	;
+{15408.} 	 C514O2 = C514O : 	2.50D-13*RO2*0.6 	;
+{15409.} 	 C514O2 = C514OH : 	2.50D-13*RO2*0.2 	;
+{15410.} 	 C514O2 = CO13C4CHO : 	2.50D-13*RO2*0.2 	;
+{15411.} 	 CO25C6CO2H + OH = C627O2 : 	6.67D-12 	;
+{15412.} 	 CO25C6CO2H = C627O2 + HO2 : 	J(22)*2 	;
+{15413.} 	 CO25C6CO3H + OH = CO25C6CO3 : 	9.75D-11 	;
+{15414.} 	 CO25C6CO3H = C627O2 + OH : 	J(41)+J(22)*2 	;
+{15415.} 	 C627PAN + OH = CO2C4GLYOX + CO + NO2 : 	6.15D-12 	;
+{15416.} 	 C627PAN = CO25C6CO3 + NO2 : 	KBPAN 	;
+{15417.} 	 C627OOH + OH = CO2C4GLYOX + OH : 	1.51D-11 	;
+{15418.} 	 C627OOH = C627O + OH : 	J(41) 	;
+{15419.} 	 C627OOH = CO2C4CO3 + HCHO + OH : 	J(22)*2 	;
+{15420.} 	 C627O = CO2C4CO3 + HCHO : 	KDEC 	;
+{15421.} 	 C627OH + OH = CO2C4GLYOX + HO2 : 	8.25D-12 	;
+{15422.} 	 C627OH = CO2C4CO3 + HCHO + HO2 : 	J(22)*2 	;
+{15423.} 	  CO2C4GLYOX + OH = CO2C4CO3 + CO : 	1.83D-11 	;
+{15424.} 	  CO2C4GLYOX = CO2C4CO3 + CO + HO2 : 	J(34) 	;
+{15425.} 	 C820O2 + HO2 = C820OOH : 	KRO2HO2*0.859 	;
+{15426.} 	 C820O2 + NO = C820O + NO2 : 	KRO2NO 	;
+{15427.} 	 C820O2 + NO3 = C820O + NO2 : 	KRO2NO3 	;
+{15428.} 	 C820O2 = C820O : 	9.20D-14*RO2 	;
+{15429.} 	 C727OOH + OH = C727CO + OH : 	2.42D-11 	;
+{15430.} 	 C727OOH = C727O + OH : 	J(41) 	;
+{15431.} 	 C727O = CH3CO3 + CO2C4CHO : 	KDEC 	;
+{15432.} 	 C727CO + OH = C821O2 : 	5.67D-12 	;
+{15433.} 	 C727CO = CH3CO3 + CO2C4CO3 : 	J(35) 	;
+{15434.} 	 C511CO3H + OH = C511CO3 : 	3.14D-11 	;
+{15435.} 	 C511CO3H = C511O2 + OH : 	J(41)+J(15) 	;
+{15436.} 	 C511PAN + OH = CO23C4CHO + CO + NO2 : 	2.78D-11 	;
+{15437.} 	 C511PAN = C511CO3 + NO2 : 	KBPAN 	;
+{15438.} 	 C517CO2H + OH = C517O2 : 	1.84D-11 	;
+{15439.} 	 C517CO3H + OH = C517CO3 : 	2.15D-11 	;
+{15440.} 	 C517CO3H = C517O2 + OH : 	J(41) 	;
+{15441.} 	 C517PAN + OH = HMVKBCHO + CO + NO2 : 	1.79D-11 	;
+{15442.} 	 C517PAN = C517CO3 + NO2 : 	KBPAN 	;
+{15443.} 	 C517OOH + OH = HMVKBCHO + OH : 	4.93D-11 	;
+{15444.} 	 C517OOH = C517O + OH : 	J(41) 	;
+{15445.} 	 C517NO3 + OH = HMVKBCHO + NO2 : 	1.38D-11 	;
+{15446.} 	 C517NO3 = C517O + NO2 : 	J(53) 	;
+{15447.} 	 C517O = HMVKBCHO + HO2 : 	KROPRIM*O2 	;
+{15448.} 	 C517OH + OH = HMVKBCHO + HO2 : 	2.81D-11 	;
+{15449.} 	 HMVKBCHO + NO3 = HMVKBCO3 + HNO3 : 	KNO3AL*8.5 	;
+{15450.} 	 HMVKBCHO + OH = HMVKBCO3 : 	3.51D-11 	;
+{15451.} 	 HMVKBCHO = HMVKBO2 + CO + HO2 : 	J(15) 	;
+{15452.} 	 C628OOH + OH = C628O2 : 	3.14D-11 	;
+{15453.} 	 C628OOH = C628O + OH : 	J(41) 	;
+{15454.} 	 C628OOH = CO13C4OH + CH3CO3 + OH : 	J(22)+J(15) 	;
+{15455.} 	 C628O = CO13C4OH + CH3CO3 : 	KDEC 	;
+{15456.} 	 C628OH + OH = C628O : 	2.80D-11 	;
+{15457.} 	 C628OH = CO13C4OH + CH3CO3 + HO2 : 	J(22)+J(15) 	;
+{15458.} 	 C518CO3 + HO2 = C518CO2H + O3 : 	KAPHO2*0.15 	;
+{15459.} 	 C518CO3 + HO2 = C518CO3H : 	KAPHO2*0.41 	;
+{15460.} 	 C518CO3 + HO2 = ISOPDO2 + OH : 	KAPHO2*0.44 	;
+{15461.} 	 C518CO3 + NO = ISOPDO2 + NO2 : 	KAPNO 	;
+{15462.} 	 C518CO3 + NO2 = C518PAN : 	KFPAN 	;
+{15463.} 	 C518CO3 + NO3 = ISOPDO2 + NO2 : 	KRO2NO3*1.74 	;
+{15464.} 	 C518CO3 = C518CO2H : 	1.00D-11*RO2*0.3 	;
+{15465.} 	 C518CO3 = ISOPDO2 : 	1.00D-11*RO2*0.7 	;
+{15466.} 	 NC623O2 + HO2 = NC623OOH : 	KRO2HO2*0.770 	;
+{15467.} 	 NC623O2 + NO = NC623O + NO2 : 	KRO2NO 	;
+{15468.} 	 NC623O2 + NO3 = NC623O + NO2 : 	KRO2NO3 	;
+{15469.} 	 NC623O2 = NC623O : 	8.00D-13*RO2*0.7 	;
+{15470.} 	 NC623O2 = NC623OH : 	8.00D-13*RO2*0.3 	;
+{15471.} 	 C520OOA = C520O2 + OH : 	KDEC 	;
+{15472.} 	 C623O2 + HO2 = C623OOH : 	KRO2HO2*0.770 	;
+{15473.} 	 C623O2 + NO = C623NO3 : 	KRO2NO*0.030 	;
+{15474.} 	 C623O2 + NO = C623O + NO2 : 	KRO2NO*0.970 	;
+{15475.} 	 C623O2 + NO3 = C623O + NO2 : 	KRO2NO3 	;
+{15476.} 	 C623O2 = C623O : 	8.00D-13*RO2*0.7 	;
+{15477.} 	 C623O2 = C623OH : 	8.00D-13*RO2*0.3 	;
+{15478.} 	 C824OOH + OH = C824CO + OH : 	1.02D-10 	;
+{15479.} 	 C824OOH = C824O + OH : 	J(41) 	;
+{15480.} 	 C824O = C624CHO + CO + HO2 : 	KDEC 	;
+{15481.} 	 C824CO + OH = C624CO3 + CO : 	7.46D-11 	;
+{15482.} 	 C824CO = C624CO3 + CO + HO2 : 	J(34) 	;
+{15483.} 	 C824OH + OH = C824CO + HO2 : 	9.34D-11 	;
+{15484.} 	 C825O2 + HO2 = C825OOH : 	KRO2HO2*0.859 	;
+{15485.} 	 C825O2 + NO = C825O + NO2 : 	KRO2NO 	;
+{15486.} 	 C825O2 + NO3 = C825O + NO2 : 	KRO2NO3 	;
+{15487.} 	 C825O2 = C825CO : 	8.80D-12*RO2*0.2 	;
+{15488.} 	 C825O2 = C825O : 	8.80D-12*RO2*0.6 	;
+{15489.} 	 C825O2 = C825OH : 	8.80D-12*RO2*0.2 	;
+{15490.} 	 C731O2 + HO2 = C731OOH : 	KRO2HO2*0.859 	;
+{15491.} 	 C731O2 + NO = C731NO3 : 	KRO2NO*0.138 	;
+{15492.} 	 C731O2 + NO = C731O + NO2 : 	KRO2NO*0.862 	;
+{15493.} 	 C731O2 + NO3 = C731O + NO2 : 	KRO2NO3 	;
+{15494.} 	 C731O2 = C626CHO : 	1.30D-12*RO2*0.2 	;
+{15495.} 	 C731O2 = C731O : 	1.30D-12*RO2*0.6 	;
+{15496.} 	 C731O2 = C731OH : 	1.30D-12*RO2*0.2 	;
+{15497.} 	 C732CO3 + HO2 = C732CO3H : 	KAPHO2*0.41 	;
+{15498.} 	 C732CO3 + HO2 = C732O2 + OH : 	KAPHO2*0.44 	;
+{15499.} 	 C732CO3 + HO2 = KLIMONIC + O3 : 	KAPHO2*0.15 	;
+{15500.} 	 C732CO3 + NO = C732O2 + NO2 : 	KAPNO 	;
+{15501.} 	 C732CO3 + NO2 = C732PAN : 	KFPAN 	;
+{15502.} 	 C732CO3 + NO3 = C732O2 + NO2 : 	KRO2NO3*1.74 	;
+{15503.} 	 C732CO3 = C732O2 : 	1.00D-11*RO2*0.7 	;
+{15504.} 	 C732CO3 = KLIMONIC : 	1.00D-11*RO2*0.3 	;
+{15505.} 	 C1012O2 + HO2 = C1012OOH : 	KRO2HO2*0.914 	;
+{15506.} 	 C1012O2 + NO = C1012NO3 : 	KRO2NO*0.228 	;
+{15507.} 	 C1012O2 + NO = C1012O + NO2 : 	KRO2NO*0.772 	;
+{15508.} 	 C1012O2 + NO3 = C1012O + NO2 : 	KRO2NO3 	;
+{15509.} 	 C1012O2 = C1012CO : 	2.50D-13*RO2*0.2 	;
+{15510.} 	 C1012O2 = C1012O : 	2.50D-13*RO2*0.6 	;
+{15511.} 	 C1012O2 = C1012OH : 	2.50D-13*RO2*0.2 	;
+{15512.} 	 C1211CO2H + OH = C1211O2 : 	1.23D-11 	;
+{15513.} 	 C1211CO3H + OH = C1211CO3 : 	1.48D-11 	;
+{15514.} 	 C1211CO3H = C1211O2 + OH : 	J(41) 	;
+{15515.} 	 C1211O2 + HO2 = C1211OOH : 	KRO2HO2*0.947 	;
+{15516.} 	 C1211O2 + NO = C1211NO3 : 	KRO2NO*0.176 	;
+{15517.} 	 C1211O2 + NO = C1211O + NO2 : 	KRO2NO*0.824 	;
+{15518.} 	 C1211O2 + NO3 = C1211O + NO2 : 	KRO2NO3 	;
+{15519.} 	 C1211O2 = C1211CO : 	1.30D-12*RO2*0.2 	;
+{15520.} 	 C1211O2 = C1211O : 	1.30D-12*RO2*0.6 	;
+{15521.} 	 C1211O2 = C1211OH : 	1.30D-12*RO2*0.2 	;
+{15522.} 	 C1211PAN + OH = C1211CO + CO + NO2 : 	1.12D-11 	;
+{15523.} 	 C1211PAN = C1211CO3 + NO2 : 	KBPAN 	;
+{15524.} 	 C133OOH + OH = C133CO + OH : 	4.00D-11 	;
+{15525.} 	 C133OOH = C133O + OH : 	J(41)+J(35) 	;
+{15526.} 	 C133NO3 + OH = C133CO + NO2 : 	8.47D-12 	;
+{15527.} 	 C133NO3 = C133O + NO2 : 	J(54)+J(35) 	;
+{15528.} 	 C133O = C133CO + HO2 : 	KROSEC*O2 	;
+{15529.} 	 C133O = C829O2 + CO2C4CHO : 	2.70D+14*EXP(-6643/TEMP) 	;
+{15530.} 	 C133CO + OH = C134O2 : 	2.08D-11 	;
+{15531.} 	 C133CO = C827CO3 + HOC2H4CO3 : 	J(35) 	;
+{15532.} 	 C133OH + OH = C133CO + HO2 : 	2.22D-11 	;
+{15533.} 	 C133OH = C133O + HO2 : 	J(35) 	;
+{15534.} 	 C139O2 + HO2 = C139OOH : 	KRO2HO2*0.959 	;
+{15535.} 	 C139O2 + NO = C139NO3 : 	KRO2NO*0.134 	;
+{15536.} 	 C139O2 + NO = C139O + NO2 : 	KRO2NO*0.866 	;
+{15537.} 	 C139O2 + NO3 = C139O + NO2 : 	KRO2NO3 	;
+{15538.} 	 C139O2 = C139O : 	6.70D-15*RO2*0.7 	;
+{15539.} 	 C139O2 = C139OH : 	6.70D-15*RO2*0.3 	;
+{15540.} 	 C1014O2 + HO2 = C1014OOH : 	KRO2HO2*0.914 	;
+{15541.} 	 C1014O2 + NO = C1014NO3 : 	KRO2NO*0.228 	;
+{15542.} 	 C1014O2 + NO = C1014O + NO2 : 	KRO2NO*0.772 	;
+{15543.} 	 C1014O2 + NO3 = C1014O + NO2 : 	KRO2NO3 	;
+{15544.} 	 C1014O2 = C1014CO : 	2.50D-13*RO2*0.2 	;
+{15545.} 	 C1014O2 = C1014O : 	2.50D-13*RO2*0.6 	;
+{15546.} 	 C1014O2 = C1014OH : 	2.50D-13*RO2*0.2 	;
+{15547.} 	 C736CO + OH = C522CO3 + CO : 	8.52D-11 	;
+{15548.} 	 C736CO = C522CO3 + CO + HO2 : 	J(34) 	;
+{15549.} 	 C736O2 + HO2 = C736OOH : 	KRO2HO2*0.820 	;
+{15550.} 	 C736O2 + NO = C736O + NO2 : 	KRO2NO 	;
+{15551.} 	 C736O2 + NO3 = C736O + NO2 : 	KRO2NO3 	;
+{15552.} 	 C736O2 = C736CO : 	2.00D-13*RO2*0.2 	;
+{15553.} 	 C736O2 = C736O : 	2.00D-13*RO2*0.6 	;
+{15554.} 	 C736O2 = C736OH : 	2.00D-13*RO2*0.2 	;
+{15555.} 	 C118CO + OH = C829O2 + HCOCH2CHO : 	2.99D-11 	;
+{15556.} 	 C118CO = C829O2 + HCOCH2CO3 : 	J(35) 	;
+{15557.} 	 C118O2 + HO2 = C118OOH : 	KRO2HO2*0.932 	;
+{15558.} 	 C118O2 + NO = C118NO3 : 	KRO2NO*0.235 	;
+{15559.} 	 C118O2 + NO = C118O + NO2 : 	KRO2NO*0.765 	;
+{15560.} 	 C118O2 + NO3 = C118O + NO2 : 	KRO2NO3 	;
+{15561.} 	 C118O2 = C118CO : 	2.50D-13*RO2*0.2 	;
+{15562.} 	 C118O2 = C118O : 	2.50D-13*RO2*0.6 	;
+{15563.} 	 C118O2 = C118OH : 	2.50D-13*RO2*0.2 	;
+{15564.} 	 C830OOH + OH = C830CO + OH : 	3.41D-11 	;
+{15565.} 	 C830OOH = C830O + OH : 	J(41) 	;
+{15566.} 	 C830NO3 + OH = C830CO + NO2 : 	2.60D-11 	;
+{15567.} 	 C830NO3 = C830O + NO2 : 	J(54) 	;
+{15568.} 	 C830O = C831O2 : 	KDEC 	;
+{15569.} 	 C830CO + OH = C831O2 : 	2.70D-11 	;
+{15570.} 	 C830OH + OH = C830CO + HO2 : 	2.91D-11 	;
+{15571.} 	 C128OOH + OH = C128CO + OH : 	8.69D-11 	;
+{15572.} 	 C128OOH = C128O + OH : 	J(41) 	;
+{15573.} 	 C128NO3 + OH = C128CO + NO2 : 	5.82D-11 	;
+{15574.} 	 C128NO3 = C128O + NO2 : 	J(54) 	;
+{15575.} 	 C128O = C927O2 + HCOCH2CHO : 	KDEC 	;
+{15576.} 	 C128OH + OH = C128CO + HO2 : 	7.47D-11 	;
+{15577.} 	 C928CO3 + HO2 = C928CO2H + O3 : 	KAPHO2*0.15 	;
+{15578.} 	 C928CO3 + HO2 = C928CO3H : 	KAPHO2*0.41 	;
+{15579.} 	 C928CO3 + HO2 = C928O2 + OH : 	KAPHO2*0.44 	;
+{15580.} 	 C928CO3 + NO = C928O2 + NO2 : 	KAPNO 	;
+{15581.} 	 C928CO3 + NO2 = C928PAN : 	KFPAN 	;
+{15582.} 	 C928CO3 + NO3 = C928O2 + NO2 : 	KRO2NO3*1.74 	;
+{15583.} 	 C928CO3 = C928CO2H : 	1.00D-11*RO2*0.3 	;
+{15584.} 	 C928CO3 = C928O2 : 	1.00D-11*RO2*0.7 	;
+{15585.} 	 C630CO + OH = C46CO3 + CO : 	8.00D-11 	;
+{15586.} 	 C630CO = C46CO3 + CO + HO2 : 	J(34) 	;
+{15587.} 	 C630O2 + HO2 = C630OOH : 	KRO2HO2*0.770 	;
+{15588.} 	 C630O2 + NO = C630O + NO2 : 	KRO2NO 	;
+{15589.} 	 C630O2 + NO3 = C630O + NO2 : 	KRO2NO3 	;
+{15590.} 	 C630O2 = C630CO : 	2.00D-12*RO2*0.2 	;
+{15591.} 	 C630O2 = C630O : 	2.00D-12*RO2*0.6 	;
+{15592.} 	 C630O2 = C630OH : 	2.00D-12*RO2*0.2 	;
+{15593.} 	 C1215CO + OH = C930O2 + HOC2H4CHO : 	3.43D-11 	;
+{15594.} 	 C1215O2 + HO2 = C1215OOH : 	KRO2HO2*0.947 	;
+{15595.} 	 C1215O2 + NO = C1215NO3 : 	KRO2NO*0.176 	;
+{15596.} 	 C1215O2 + NO = C1215O + NO2 : 	KRO2NO*0.824 	;
+{15597.} 	 C1215O2 + NO3 = C1215O + NO2 : 	KRO2NO3 	;
+{15598.} 	 C1215O2 = C1215CO : 	2.50D-13*RO2*0.2 	;
+{15599.} 	 C1215O2 = C1215O : 	2.50D-13*RO2*0.6 	;
+{15600.} 	 C1215O2 = C1215OH : 	2.50D-13*RO2*0.2 	;
+{15601.} 	 CHOC3DIOL + OH = CO13C4OH + HO2 : 	5.85D-11 	;
+{15602.} 	 CHOC3DIOL = C3DIOLO2 + HO2 + CO : 	J(15) 	;
+{15603.} 	 HO24C4CO3H = HO2C3CHO + HO2 + OH : 	J(41) 	;
+{15604.} 	 OH + HO24C4CO3H = HO24C4CO3 : 	2.31D-11 	;
+{15605.} 	 C5PAN10 = HO24C4CO3 + NO2 : 	KBPAN 	;
+{15606.} 	 OH + C5PAN10 = HO2C3CHO + CO + NO2 : 	1.65D-11 	;
+{15607.} 	 C613OOH = BIACET + HOCH2CHO + OH + HO2 : 	J(22) 	;
+{15608.} 	 C613OOH = C613O + OH : 	J(41) 	;
+{15609.} 	 OH + C613OOH = C613O2 : 	8.65D-11 	;
+{15610.} 	 C613O = HOCH2CHO + BIACET + HO2 : 	2.00D+14*EXP(-4909/TEMP) 	;
+{15611.} 	 EMALANHYO2 + HO2 = EMALNHYOOH : 	KRO2HO2*0.770 	;
+{15612.} 	 EMALANHYO2 + NO = EMALANHYO + NO2 : 	KRO2NO 	;
+{15613.} 	 EMALANHYO2 + NO3 = EMALANHYO + NO2 : 	KRO2NO3 	;
+{15614.} 	 EMALANHYO2 = EMALANHYO : 	9.20D-14*RO2*0.70 	;
+{15615.} 	 EMALANHYO2 = EMALNHY2OH : 	9.20D-14*RO2*0.30 	;
+{15616.} 	 PMALANHYO2 + HO2 = PMALNHYOOH : 	KRO2HO2*0.820 	;
+{15617.} 	 PMALANHYO2 + NO = PMALANHYO + NO2 : 	KRO2NO 	;
+{15618.} 	 PMALANHYO2 + NO3 = PMALANHYO + NO2 : 	KRO2NO3 	;
+{15619.} 	 PMALANHYO2 = PMALANHYO : 	9.20D-14*RO2*0.70 	;
+{15620.} 	 PMALANHYO2 = PMALNHY2OH : 	9.20D-14*RO2*0.30 	;
+{15621.} 	 IPMALNHYO2 + HO2 = IPMLNHYOOH : 	KRO2HO2*0.820 	;
+{15622.} 	 IPMALNHYO2 + NO = IPMALANHYO + NO2 : 	KRO2NO 	;
+{15623.} 	 IPMALNHYO2 + NO3 = IPMALANHYO + NO2 : 	KRO2NO3 	;
+{15624.} 	 IPMALNHYO2 = IPMALANHYO : 	9.20D-14*RO2*0.70 	;
+{15625.} 	 IPMALNHYO2 = IPMLNHY2OH : 	9.20D-14*RO2*0.30 	;
+{15626.} 	 CO2H3MCO3H + OH = CO2OH3MCO3 : 	4.36D-12 	;
+{15627.} 	 CO2H3MCO3H = BIACET + HO2 + OH : 	J(41) 	;
+{15628.} 	 CO2OH3MPAN + OH = BIACET + CO + NO2 : 	1.13D-12 	;
+{15629.} 	 CO2OH3MPAN = CO2OH3MCO3 + NO2 : 	KBPAN 	;
+{15630.} 	 C312COCO3 + HO2 = C312COCO3H : 	KAPHO2*0.56 	;
+{15631.} 	 C312COCO3 + HO2 = CHOCOCH2O2 + OH : 	KAPHO2*0.44 	;
+{15632.} 	 C312COCO3 + NO = CHOCOCH2O2 + NO2 : 	KAPNO 	;
+{15633.} 	 C312COCO3 + NO2 = C312COPAN : 	KFPAN 	;
+{15634.} 	 C312COCO3 + NO3 = CHOCOCH2O2 + NO2 : 	KRO2NO3*1.74 	;
+{15635.} 	 C312COCO3 = CHOCOCH2O2 : 	1.00D-11*RO2 	;
+{15636.} 	 CHOCOCH2O2 + HO2 = ALCOCH2OOH : 	KRO2HO2*0.520 	;
+{15637.} 	 CHOCOCH2O2 + NO = CHOCOCH2O + NO2 : 	KRO2NO 	;
+{15638.} 	 CHOCOCH2O2 + NO3 = CHOCOCH2O + NO2 : 	KRO2NO3 	;
+{15639.} 	 CHOCOCH2O2 = CHOCOCH2O : 	2.00D-12*RO2 	;
+{15640.} 	 NC72O2 + HO2 = NC72OOH : 	KRO2HO2*0.820 	;
+{15641.} 	 NC72O2 + NO = NC72O + NO2 : 	KRO2NO 	;
+{15642.} 	 NC72O2 + NO3 = NC72O + NO2 : 	KRO2NO3 	;
+{15643.} 	 NC72O2 = NC72O : 	8.80D-13*RO2 	;
+{15644.} 	 C812OOH + OH = C812O2 : 	1.09D-11 	;
+{15645.} 	 C812OOH = C812O + OH : 	J(41) 	;
+{15646.} 	 C812O = C813O2 : 	KDEC 	;
+{15647.} 	 C812OH + OH = C812O : 	7.42D-12 	;
+{15648.} 	 C721CO3H + OH = C721CO3 : 	9.65D-12 	;
+{15649.} 	 C721CO3H = C721O2 + OH : 	J(41) 	;
+{15650.} 	 NORPINIC + OH = C721O2 : 	6.57D-12 	;
+{15651.} 	 C721PAN + OH = C721OOH + CO + NO2 : 	2.96D-12 	;
+{15652.} 	 C721PAN = C721CO3 + NO2 : 	KBPAN 	;
+{15653.} 	 C721OOH + OH = C721O2 : 	1.27D-11 	;
+{15654.} 	 C721OOH = C721O + OH : 	J(41) 	;
+{15655.} 	 C721O = C722O2 : 	KDEC 	;
+{15656.} 	 C621O2 + HO2 = C621OOH : 	KRO2HO2*0.770 	;
+{15657.} 	 C621O2 + NO = C621O + NO2 : 	KRO2NO 	;
+{15658.} 	 C621O2 + NO3 = C621O + NO2 : 	KRO2NO3 	;
+{15659.} 	 C621O2 = C621O : 	8.80D-13*RO2 	;
+{15660.} 	 H3C2C4CO2H + OH = HMVKAO2 : 	2.34D-11 	;
+{15661.} 	 H3C2C4CO2H = HMVKAO2 + HO2 : 	J(22) 	;
+{15662.} 	 H3C2C4CO3H + OH = H3C2C4CO3 : 	2.65D-11 	;
+{15663.} 	 H3C2C4CO3H = HMVKAO2 + OH : 	J(41)+J(22) 	;
+{15664.} 	 H3C2C4PAN + OH = CO2H3CHO + CO + NO2 : 	7.60D-12 	;
+{15665.} 	 H3C2C4PAN = H3C2C4CO3 + NO2 : 	KBPAN 	;
+{15666.} 	 C515CO3 + HO2 = C515CO3H : 	KAPHO2*0.56 	;
+{15667.} 	 C515CO3 + HO2 = C515O2 + OH : 	KAPHO2*0.44 	;
+{15668.} 	 C515CO3 + NO = C515O2 + NO2 : 	KAPNO 	;
+{15669.} 	 C515CO3 + NO2 = C515PAN : 	KFPAN 	;
+{15670.} 	 C515CO3 + NO3 = C515O2 + NO2 : 	KRO2NO3*1.74 	;
+{15671.} 	 C515CO3 = C515O2 : 	1.00D-11*RO2 	;
+{15672.} 	 C515O2 + HO2 = C515OOH : 	KRO2HO2*0.706 	;
+{15673.} 	 C515O2 + NO = C515O + NO2 : 	KRO2NO 	;
+{15674.} 	 C515O2 + NO3 = C515O + NO2 : 	KRO2NO3 	;
+{15675.} 	 C515O2 = C515O : 	2.00D-12*RO2 	;
+{15676.} 	 C87OOH + OH = C87CO + OH : 	1.00D-10 	;
+{15677.} 	 C87OOH = C87O + OH : 	J(41) 	;
+{15678.} 	 C87O = C615CO3 + HCHO : 	KDEC 	;
+{15679.} 	 C87CO + OH = C615CO3 + CO : 	1.03D-10 	;
+{15680.} 	 C87CO = C615CO3 + CO + HO2 : 	J(34)+J(15)*2 	;
+{15681.} 	 C87OH + OH = C87CO + HO2 : 	9.34D-11 	;
+{15682.} 	 CO12C4CHO + NO3 = CHOC2CO3 + CO + HNO3 : 	2*KNO3AL*5.5 	;
+{15683.} 	 CO12C4CHO + OH = CHOC2CO3 + CO : 	3.89D-11 	;
+{15684.} 	 CO12C4CHO = CHOC2CO3 + HO2 + CO : 	J(34)+J(15) 	;
+{15685.} 	 C718OOH + OH = C617CHO + OH : 	1.01D-10 	;
+{15686.} 	 C718OOH = C718O + OH : 	J(41)+J(15) 	;
+{15687.} 	 C718NO3 + OH = C617CHO + NO2 : 	6.65D-11 	;
+{15688.} 	 C718NO3 = C718O + NO2 : 	J(53)+J(15) 	;
+{15689.} 	 C718O = C617CHO + HO2 : 	KDEC 	;
+{15690.} 	 C617CHO + NO3 = C617CO3 + HNO3 : 	KNO3AL*8.5 	;
+{15691.} 	 C617CHO + NO3 = C618CO3 + HNO3 : 	KNO3AL*8.5 	;
+{15692.} 	 C617CHO + OH = C617CO3 : 	1.33D-10*0.5 	;
+{15693.} 	 C617CHO + OH = C618CO3 : 	1.33D-10*0.5 	;
+{15694.} 	 C617CHO = C617O2 + HO2 + CO : 	J(15) 	;
+{15695.} 	 C617CHO = C618O2 + HO2 + CO : 	J(15) 	;
+{15696.} 	 C718OH + OH = C617CHO + HO2 : 	7.96D-11 	;
+{15697.} 	 C718OH = C718O + HO2 : 	J(15) 	;
+{15698.} 	 C514OOH + OH = CO13C4CHO + OH : 	1.10D-10 	;
+{15699.} 	 C514OOH = C514O + OH : 	J(41)+J(15)*2 	;
+{15700.} 	 C514NO3 + OH = CO13C4CHO + NO2 : 	4.33D-11 	;
+{15701.} 	 C514NO3 = C514O + NO2 : 	J(54)+J(15)*2 	;
+{15702.} 	 C514O = CO13C4CHO + HO2 : 	1.80D-14*EXP(-260/TEMP)*O2 	;
+{15703.} 	 C514OH + OH = CO13C4CHO + HO2 : 	6.99D-11 	;
+{15704.} 	 C514OH = C514O + HO2 : 	J(15)*2 	;
+{15705.} 	 C820OOH + OH = C820O2 : 	1.76D-11 	;
+{15706.} 	 C820OOH = C820O + OH : 	J(22)+J(35)+J(41) 	;
+{15707.} 	 C820O = CH3CO3 + C614CO : 	KDEC 	;
+{15708.} 	 C821O2 + HO2 = C821OOH : 	KRO2HO2*0.859 	;
+{15709.} 	 C821O2 + NO = C821O + NO2 : 	KRO2NO 	;
+{15710.} 	 C821O2 + NO3 = C821O + NO2 : 	KRO2NO3 	;
+{15711.} 	 C821O2 = C821O : 	8.80D-13*RO2 	;
+{15712.} 	 HMVKBCO3 + HO2 = HMVKBCO2H + O3 : 	KAPHO2*0.15 	;
+{15713.} 	 HMVKBCO3 + HO2 = HMVKBCO3H : 	KAPHO2*0.41 	;
+{15714.} 	 HMVKBCO3 + HO2 = HMVKBO2 + OH : 	KAPHO2*0.44 	;
+{15715.} 	 HMVKBCO3 + NO = HMVKBO2 + NO2 : 	KAPNO 	;
+{15716.} 	 HMVKBCO3 + NO2 = HMVKBPAN : 	KFPAN 	;
+{15717.} 	 HMVKBCO3 + NO3 = HMVKBO2 + NO2 : 	KRO2NO3*1.74 	;
+{15718.} 	 HMVKBCO3 = HMVKBCO2H : 	1.00D-11*RO2*0.3 	;
+{15719.} 	 HMVKBCO3 = HMVKBO2 : 	1.00D-11*RO2*0.7 	;
+{15720.} 	 CO13C4OH + OH = C4CODIAL + HO2 : 	2.39D-11 	;
+{15721.} 	 CO13C4OH = HCOCH2O2 + HOCH2CO3 : 	J(22) 	;
+{15722.} 	 CO13C4OH = MGLYOX + HO2 + HO2 + CO : 	J(15) 	;
+{15723.} 	 C518CO2H + OH = ISOPDO2 : 	5.80D-11 	;
+{15724.} 	 C518CO3H + OH = C518CO3 : 	6.11D-11 	;
+{15725.} 	 C518CO3H = ISOPDO2 + OH : 	J(41) 	;
+{15726.} 	 C518PAN + OH = HCOC5 + CO + NO2 : 	5.75D-11 	;
+{15727.} 	 C518PAN = C518CO3 + NO2 : 	KBPAN 	;
+{15728.} 	 NC623OOH + OH = NC623O2 : 	3.96D-11 	;
+{15729.} 	 NC623OOH = NC623O + OH : 	J(41) 	;
+{15730.} 	 NC623O = HMVKBCHO + HCHO + NO2 : 	KDEC 	;
+{15731.} 	 NC623OH + OH = HMVKBCHO + HCHO + NO2 : 	3.62D-11 	;
+{15732.} 	 C520O2 + HO2 = C520OOH : 	KRO2HO2*0.706 	;
+{15733.} 	 C520O2 + NO = C520O + NO2 : 	KRO2NO 	;
+{15734.} 	 C520O2 + NO3 = C520O + NO2 : 	KRO2NO3 	;
+{15735.} 	 C520O2 = C520O : 	9.20D-14*RO2*0.7 	;
+{15736.} 	 C520O2 = C520OH : 	9.20D-14*RO2*0.3 	;
+{15737.} 	 C623OOH + OH = C623O2 : 	5.26D-11 	;
+{15738.} 	 C623OOH = C623O + OH : 	J(41) 	;
+{15739.} 	 C623NO3 + OH = HMVKBCHO + HCHO + NO2 : 	3.51D-11 	;
+{15740.} 	 C623O = HMVKBCHO + HCHO + HO2 : 	KDEC 	;
+{15741.} 	 C623OH + OH = HMVKBCHO + HCHO + HO2 : 	4.91D-11 	;
+{15742.} 	 C624CHO + NO3 = C624CO3 + HNO3 : 	KNO3AL*8.5 	;
+{15743.} 	 C624CHO + NO3 = NC730O2 : 	3.30D-13 	;
+{15744.} 	 C624CHO + O3 = C519CHO + CH2OOF : 	1.30D-17*0.330 	;
+{15745.} 	 C624CHO + O3 = C629OOA + HCHO : 	1.30D-17*0.670 	;
+{15746.} 	 C624CHO + OH = C624CO3 : 	8.26D-11*0.288 	;
+{15747.} 	 C624CHO + OH = C730O2 : 	8.26D-11*0.712 	;
+{15748.} 	 C624CO3 + HO2 = C624CO2H + O3 : 	KAPHO2*0.15 	;
+{15749.} 	 C624CO3 + HO2 = C624CO3H : 	KAPHO2*0.41 	;
+{15750.} 	 C624CO3 + HO2 = C624O2 + OH : 	KAPHO2*0.44 	;
+{15751.} 	 C624CO3 + NO = C624O2 + NO2 : 	KAPNO 	;
+{15752.} 	 C624CO3 + NO2 = C624PAN : 	KFPAN 	;
+{15753.} 	 C624CO3 + NO3 = C624O2 + NO2 : 	KRO2NO3*1.74 	;
+{15754.} 	 C624CO3 = C624CO2H : 	1.00D-11*RO2*0.3 	;
+{15755.} 	 C624CO3 = C624O2 : 	1.00D-11*RO2*0.7 	;
+{15756.} 	 C825OOH + OH = C825CO + OH : 	7.90D-11 	;
+{15757.} 	 C825OOH = C825O + OH : 	J(41) 	;
+{15758.} 	 C825O = C622CHO + HO2 : 	KDEC 	;
+{15759.} 	 C825CO + OH = C622CO3 : 	6.64D-11 	;
+{15760.} 	 C825CO = C622CO3 + HO2 : 	J(22) 	;
+{15761.} 	 C825OH + OH = C825CO + HO2 : 	6.69D-11 	;
+{15762.} 	 C731OOH + OH = C626CHO + OH : 	4.83D-11 	;
+{15763.} 	 C731OOH = C731O + OH : 	J(41) 	;
+{15764.} 	 C731NO3 + OH = C626CHO + NO2 : 	3.17D-11 	;
+{15765.} 	 C731NO3 = C731O + NO2 : 	J(53) 	;
+{15766.} 	 C731O = C733O2 : 	KDEC 	;
+{15767.} 	 C731OH + OH = C626CHO + HO2 : 	3.92D-11 	;
+{15768.} 	 C732CO3H + OH = C732CO3 : 	2.16D-11 	;
+{15769.} 	 C732CO3H = C732O2 + OH : 	J(41) 	;
+{15770.} 	 C732O2 + HO2 = C732OOH : 	KRO2HO2*0.859 	;
+{15771.} 	 C732O2 + NO = C732NO3 : 	KRO2NO*0.138 	;
+{15772.} 	 C732O2 + NO = C732O + NO2 : 	KRO2NO*0.862 	;
+{15773.} 	 C732O2 + NO3 = C732O + NO2 : 	KRO2NO3 	;
+{15774.} 	 C732O2 = C732CO : 	1.30D-12*RO2*0.2 	;
+{15775.} 	 C732O2 = C732O : 	1.30D-12*RO2*0.6 	;
+{15776.} 	 C732O2 = C732OH : 	1.30D-12*RO2*0.2 	;
+{15777.} 	 KLIMONIC + OH = C732O2 : 	1.85D-11 	;
+{15778.} 	 C732PAN + OH = C732CO + CO + NO2 : 	1.80D-11 	;
+{15779.} 	 C732PAN = C732CO3 + NO2 : 	KBPAN 	;
+{15780.} 	 C1012OOH + OH = C1012CO + OH : 	5.57D-11 	;
+{15781.} 	 C1012OOH = C1012O + OH : 	J(41) 	;
+{15782.} 	 C1012NO3 + OH = C1012CO + NO2 : 	2.38D-11 	;
+{15783.} 	 C1012NO3 = C1012O + NO2 : 	J(54) 	;
+{15784.} 	 C1012O = C1012CO + HO2 : 	KROSEC*O2 	;
+{15785.} 	 C1012O = CO2C4CHO + C3ME3CHOO2 : 	2.70D+14*EXP(-6643/TEMP) 	;
+{15786.} 	 C1012CO + OH = C928CO3 : 	2.94D-11 	;
+{15787.} 	 C1012OH + OH = C1012CO + HO2 : 	3.78D-11 	;
+{15788.} 	 C1211OOH + OH = C1211CO + OH : 	2.18D-11 	;
+{15789.} 	 C1211OOH = C1211O + OH : 	J(41) 	;
+{15790.} 	 C1211NO3 + OH = C1211CO + NO2 : 	8.22D-12 	;
+{15791.} 	 C1211NO3 = C1211O + NO2 : 	J(53) 	;
+{15792.} 	 C1211O = C1212O2 : 	KDEC 	;
+{15793.} 	 C1211CO + OH = C1212O2 : 	2.90D-11 	;
+{15794.} 	 C1211CO = C1212O2 + HO2 : 	J(15) 	;
+{15795.} 	 C1211OH + OH = C1211CO + HO2 : 	1.27D-11 	;
+{15796.} 	 C829O2 + HO2 = C829OOH : 	KRO2HO2*0.859 	;
+{15797.} 	 C829O2 + NO = C829NO3 : 	KRO2NO*0.106 	;
+{15798.} 	 C829O2 + NO = C829O + NO2 : 	KRO2NO*0.894 	;
+{15799.} 	 C829O2 + NO3 = C829O + NO2 : 	KRO2NO3 	;
+{15800.} 	 C829O2 = C829O : 	6.70D-15*RO2*0.7 	;
+{15801.} 	 C829O2 = C829OH : 	6.70D-15*RO2*0.3 	;
+{15802.} 	 C134O2 + HO2 = C134OOH : 	KRO2HO2*0.959 	;
+{15803.} 	 C134O2 + NO = C134O + NO2 : 	KRO2NO 	;
+{15804.} 	 C134O2 + NO3 = C134O + NO2 : 	KRO2NO3 	;
+{15805.} 	 C134O2 = C134CO : 	8.80D-13*RO2*0.2 	;
+{15806.} 	 C134O2 = C134O : 	8.80D-13*RO2*0.6 	;
+{15807.} 	 C134O2 = C134OH : 	8.80D-13*RO2*0.2 	;
+{15808.} 	 C827CO3 + HO2 = C827CO2H + O3 : 	KAPHO2*0.15 	;
+{15809.} 	 C827CO3 + HO2 = C827CO3H : 	KAPHO2*0.41 	;
+{15810.} 	 C827CO3 + HO2 = C827O2 + OH : 	KAPHO2*0.44 	;
+{15811.} 	 C827CO3 + NO = C827O2 + NO2 : 	KAPNO 	;
+{15812.} 	 C827CO3 + NO2 = C827PAN : 	KFPAN 	;
+{15813.} 	 C827CO3 + NO3 = C827O2 + NO2 : 	KRO2NO3*1.74 	;
+{15814.} 	 C827CO3 = C827CO2H : 	1.00D-11*RO2*0.3 	;
+{15815.} 	 C827CO3 = C827O2 : 	1.00D-11*RO2*0.7 	;
+{15816.} 	 C139OOH + OH = C139O2 : 	7.90D-11 	;
+{15817.} 	 C139OOH = C139O + OH : 	J(41) 	;
+{15818.} 	 C139NO3 + OH = C1310CO + NO2 : 	5.87D-11 	;
+{15819.} 	 C139NO3 = C139O + NO2 : 	J(55) 	;
+{15820.} 	 C139O = C1310O2 : 	KDEC 	;
+{15821.} 	 C139OH + OH = C139O : 	6.69D-11 	;
+{15822.} 	 C1014OOH + OH = C1014CO + OH : 	5.56D-11 	;
+{15823.} 	 C1014OOH = C1014O + OH : 	J(41) 	;
+{15824.} 	 C1014NO3 + OH = C1014CO + NO2 : 	2.37D-11 	;
+{15825.} 	 C1014NO3 = C1014O + NO2 : 	J(54) 	;
+{15826.} 	 C1014O = C1014CO + HO2 : 	KROSEC*O2 	;
+{15827.} 	 C1014O = COO2C4CHO + C3ME3CHOO2 : 	2.70D+14*EXP(-6643/TEMP) 	;
+{15828.} 	 C1014CO + OH = COO2C4CHO + C3ME3CHOO2 : 	2.93D-11 	;
+{15829.} 	 C1014OH + OH = C1014CO + HO2 : 	3.77D-11 	;
+{15830.} 	 C522CO3 + HO2 = C522CO2H + O3 : 	KAPHO2*0.15 	;
+{15831.} 	 C522CO3 + HO2 = C522CO3H : 	KAPHO2*0.41 	;
+{15832.} 	 C522CO3 + HO2 = CHOC2CO3 + HCHO + OH : 	KAPHO2*0.44 	;
+{15833.} 	 C522CO3 + NO = CHOC2CO3 + HCHO + NO2 : 	KAPNO 	;
+{15834.} 	 C522CO3 + NO2 = C522PAN : 	KFPAN 	;
+{15835.} 	 C522CO3 + NO3 = CHOC2CO3 + HCHO + NO2 : 	KRO2NO3*1.74 	;
+{15836.} 	 C522CO3 = C522CO2H : 	1.00D-11*RO2*0.3 	;
+{15837.} 	 C522CO3 = CHOC2CO3 + HCHO : 	1.00D-11*RO2*0.7 	;
+{15838.} 	 C736OOH + OH = C736CO + OH : 	8.38D-11 	;
+{15839.} 	 C736OOH = C736O + OH : 	J(41) 	;
+{15840.} 	 C736O = C522CO3 + HCHO : 	KDEC 	;
+{15841.} 	 C736OH + OH = C736CO + HO2 : 	7.92D-11 	;
+{15842.} 	 C118OOH + OH = C118CO + OH : 	5.61D-11 	;
+{15843.} 	 C118OOH = C118O + OH : 	J(41) 	;
+{15844.} 	 C118NO3 + OH = C118CO + NO2 : 	2.94D-11 	;
+{15845.} 	 C118NO3 = C118O + NO2 : 	J(54) 	;
+{15846.} 	 C118O = C829O2 + HCOCH2CHO : 	KDEC 	;
+{15847.} 	 C118OH + OH = C118CO + HO2 : 	4.17D-11 	;
+{15848.} 	 C831O2 + HO2 = C831OOH : 	KRO2HO2*0.914 	;
+{15849.} 	 C831O2 + NO = C831NO3 : 	KRO2NO*0.192 	;
+{15850.} 	 C831O2 + NO = C831O + NO2 : 	KRO2NO*0.808 	;
+{15851.} 	 C831O2 + NO3 = C831O + NO2 : 	KRO2NO3 	;
+{15852.} 	 C831O2 = C831CO : 	2.50D-13*RO2*0.2 	;
+{15853.} 	 C831O2 = C831O : 	2.50D-13*RO2*0.6 	;
+{15854.} 	 C831O2 = C831OH : 	2.50D-13*RO2*0.2 	;
+{15855.} 	 C928CO2H + OH = C928O2 : 	9.40D-12 	;
+{15856.} 	 C928CO3H + OH = C928CO3 : 	1.29D-11 	;
+{15857.} 	 C928CO3H = C928O2 + OH : 	J(41) 	;
+{15858.} 	 C928O2 + HO2 = C928OOH : 	KRO2HO2*0.890 	;
+{15859.} 	 C928O2 + NO = C928NO3 : 	KRO2NO*0.157 	;
+{15860.} 	 C928O2 + NO = C928O + NO2 : 	KRO2NO*0.843 	;
+{15861.} 	 C928O2 + NO3 = C928O + NO2 : 	KRO2NO3 	;
+{15862.} 	 C928O2 = C827CHO : 	1.32D-12*RO2*0.2 	;
+{15863.} 	 C928O2 = C928O : 	1.32D-12*RO2*0.6 	;
+{15864.} 	 C928O2 = C928OH : 	1.32D-12*RO2*0.2 	;
+{15865.} 	 C928PAN + OH = C827CHO + CO + NO2 : 	9.26D-12 	;
+{15866.} 	 C928PAN = C928CO3 + NO2 : 	KBPAN 	;
+{15867.} 	 C46CO3 + HO2 = C46CO2H + O3 : 	KAPHO2*0.15 	;
+{15868.} 	 C46CO3 + HO2 = C46CO3H : 	KAPHO2*0.41 	;
+{15869.} 	 C46CO3 + HO2 = HOC2H4CO3 + HCHO + OH : 	KAPHO2*0.44 	;
+{15870.} 	 C46CO3 + NO = HOC2H4CO3 + HCHO + NO2 : 	KAPNO 	;
+{15871.} 	 C46CO3 + NO2 = C46PAN : 	KFPAN 	;
+{15872.} 	 C46CO3 + NO3 = HOC2H4CO3 + HCHO + NO2 : 	KRO2NO3*1.74 	;
+{15873.} 	 C46CO3 = C46CO2H : 	1.00D-11*RO2*0.3 	;
+{15874.} 	 C46CO3 = HOC2H4CO3 + HCHO : 	1.00D-11*RO2*0.7 	;
+{15875.} 	 C630OOH + OH = C630CO + OH : 	8.69D-11 	;
+{15876.} 	 C630OOH = C630O + OH : 	J(41) 	;
+{15877.} 	 C630O = C46CO3 + HCHO : 	KDEC 	;
+{15878.} 	 C630OH + OH = C630CO + HO2 : 	7.47D-11 	;
+{15879.} 	 C930O2 + HO2 = C930OOH : 	KRO2HO2*0.890 	;
+{15880.} 	 C930O2 + NO = C930NO3 : 	KRO2NO*0.118 	;
+{15881.} 	 C930O2 + NO = C930O + NO2 : 	KRO2NO*0.882 	;
+{15882.} 	 C930O2 + NO3 = C930O + NO2 : 	KRO2NO3 	;
+{15883.} 	 C930O2 = C930O : 	6.70D-15*RO2*0.7 	;
+{15884.} 	 C930O2 = C930OH : 	6.70D-15*RO2*0.3 	;
+{15885.} 	 C1215OOH + OH = C1215CO + OH : 	6.13D-11 	;
+{15886.} 	 C1215OOH = C1215O + OH : 	J(41) 	;
+{15887.} 	 C1215NO3 + OH = C1215CO + NO2 : 	3.23D-11 	;
+{15888.} 	 C1215NO3 = C1215O + NO2 : 	J(54) 	;
+{15889.} 	 C1215O = C930O2 + HOC2H4CHO : 	KDEC 	;
+{15890.} 	 C1215OH + OH = C1215CO + HO2 : 	4.35D-11 	;
+{15891.} 	 EMALNHYOOH + OH = EMALANHYO2 : 	1.69D-11 	;
+{15892.} 	 EMALNHYOOH = EMALANHYO + OH : 	J(41) 	;
+{15893.} 	 EMALANHYO = CO3H4CO3 : 	KDEC 	;
+{15894.} 	 EMALNHY2OH + OH = EMALANHYO : 	1.34D-11 	;
+{15895.} 	 PMALNHYOOH + OH = PMALANHYO2 : 	1.69D-11 	;
+{15896.} 	 PMALNHYOOH = PMALANHYO + OH : 	J(41) 	;
+{15897.} 	 PMALANHYO = C5O45OHCO3 : 	KDEC 	;
+{15898.} 	 PMALNHY2OH + OH = PMALANHYO : 	1.34D-11 	;
+{15899.} 	 IPMLNHYOOH + OH = IPMALNHYO2 : 	1.69D-11 	;
+{15900.} 	 IPMLNHYOOH = IPMALANHYO + OH : 	J(41) 	;
+{15901.} 	 IPMALANHYO = C4MOHOCO3 : 	KDEC 	;
+{15902.} 	 IPMLNHY2OH + OH = IPMALANHYO : 	1.34D-11 	;
+{15903.} 	 C312COCO3H + OH = C312COCO3 : 	1.63D-11 	;
+{15904.} 	 C312COCO3H = CHOCOCH2O2 + OH : 	J(41)+J(34) 	;
+{15905.} 	 C312COPAN + OH = C33CO + CO + NO2 : 	1.27D-11 	;
+{15906.} 	 C312COPAN = C312COCO3 + NO2 : 	KBPAN 	;
+{15907.} 	 ALCOCH2OOH + OH = CHOCOCH2O2 : 	2.41D-11 	;
+{15908.} 	 ALCOCH2OOH = CHOCOCH2O + OH : 	J(41)+J(34) 	;
+{15909.} 	 CHOCOCH2O = HCHO + HO2 + CO + CO : 	KDEC*0.6 	;
+{15910.} 	 CHOCOCH2O = HCOCO3 + HCHO : 	KDEC*0.4 	;
+{15911.} 	 NC72OOH + OH = NC72O2 : 	1.85D-11 	;
+{15912.} 	 NC72OOH = NC72O + OH : 	J(41) 	;
+{15913.} 	 NC72O = NC61CO3 : 	KDEC 	;
+{15914.} 	 C813O2 + HO2 = C813OOH : 	KRO2HO2*0.859 	;
+{15915.} 	 C813O2 + NO = C813NO3 : 	KRO2NO*0.104 	;
+{15916.} 	 C813O2 + NO = C813O + NO2 : 	KRO2NO*0.896 	;
+{15917.} 	 C813O2 + NO3 = C813O + NO2 : 	KRO2NO3 	;
+{15918.} 	 C813O2 = C813O : 	6.70D-15*RO2*0.7 	;
+{15919.} 	 C813O2 = C813OH : 	6.70D-15*RO2*0.3 	;
+{15920.} 	 C722O2 + HO2 = C722OOH : 	KRO2HO2*0.820 	;
+{15921.} 	 C722O2 + NO = C722O + NO2 : 	KRO2NO 	;
+{15922.} 	 C722O2 + NO3 = C722O + NO2 : 	KRO2NO3 	;
+{15923.} 	 C722O2 = C722O : 	6.70D-15*RO2 	;
+{15924.} 	 C621OOH + OH = C621O2 : 	1.00D-10 	;
+{15925.} 	 C621OOH = C621O + OH : 	J(41)+J(22) 	;
+{15926.} 	 C621O = HCHO + H1C23C4CHO + HO2 : 	KDEC 	;
+{15927.} 	 C515CO3H + OH = C515CO3 : 	7.05D-11 	;
+{15928.} 	 C515CO3H = C515O2 + OH : 	J(41)+J(35) 	;
+{15929.} 	 C515PAN + OH = C515CO + CO + NO2 : 	6.69D-11 	;
+{15930.} 	 C515PAN = C515CO3 + NO2 : 	KBPAN 	;
+{15931.} 	 C515OOH + OH = C515CO + OH : 	7.91D-11 	;
+{15932.} 	 C515OOH = C515O + OH : 	J(41)+J(35) 	;
+{15933.} 	 C515O = HCHO + CO + HCOCH2CO3 : 	KDEC 	;
+{15934.} 	 C615CO3 + HO2 = C615CO2H + O3 : 	KAPHO2*0.15 	;
+{15935.} 	 C615CO3 + HO2 = C615CO3H : 	KAPHO2*0.41 	;
+{15936.} 	 C615CO3 + HO2 = C615O2 + OH : 	KAPHO2*0.44 	;
+{15937.} 	 C615CO3 + NO = C615O2 + NO2 : 	KAPNO 	;
+{15938.} 	 C615CO3 + NO2 = C615PAN : 	KFPAN 	;
+{15939.} 	 C615CO3 + NO3 = C615O2 + NO2 : 	KRO2NO3*1.74 	;
+{15940.} 	 C615CO3 = C615CO2H : 	1.00D-11*RO2*0.3 	;
+{15941.} 	 C615CO3 = C615O2 : 	1.00D-11*RO2*0.7 	;
+{15942.} 	 C617CO3 + HO2 = C617CO2H + O3 : 	KAPHO2*0.15 	;
+{15943.} 	 C617CO3 + HO2 = C617CO3H : 	KAPHO2*0.41 	;
+{15944.} 	 C617CO3 + HO2 = C617O2 + OH : 	KAPHO2*0.44 	;
+{15945.} 	 C617CO3 + NO = C617O2 + NO2 : 	KAPNO 	;
+{15946.} 	 C617CO3 + NO2 = C617PAN : 	KFPAN 	;
+{15947.} 	 C617CO3 + NO3 = C617O2 + NO2 : 	KRO2NO3*1.74 	;
+{15948.} 	 C617CO3 = C617CO2H : 	1.00D-11*RO2*0.3 	;
+{15949.} 	 C617CO3 = C617O2 : 	1.00D-11*RO2*0.7 	;
+{15950.} 	 C618CO3 + HO2 = C618CO2H + O3 : 	KAPHO2*0.15 	;
+{15951.} 	 C618CO3 + HO2 = C618CO3H : 	KAPHO2*0.41 	;
+{15952.} 	 C618CO3 + HO2 = C618O2 + OH : 	KAPHO2*0.44 	;
+{15953.} 	 C618CO3 + NO = C618O2 + NO2 : 	KAPNO 	;
+{15954.} 	 C618CO3 + NO2 = C618PAN : 	KFPAN 	;
+{15955.} 	 C618CO3 + NO3 = C618O2 + NO2 : 	KRO2NO3*1.74 	;
+{15956.} 	 C618CO3 = C618CO2H : 	1.00D-11*RO2*0.3 	;
+{15957.} 	 C618CO3 = C618O2 : 	1.00D-11*RO2*0.7 	;
+{15958.} 	 C617O2 + HO2 = C617OOH : 	KRO2HO2*0.770 	;
+{15959.} 	 C617O2 + NO = C617O + NO2 : 	KRO2NO 	;
+{15960.} 	 C617O2 + NO3 = C617O + NO2 : 	KRO2NO3 	;
+{15961.} 	 C617O2 = C615CO : 	2.00D-12*RO2*0.2 	;
+{15962.} 	 C617O2 = C617O : 	2.00D-12*RO2*0.6 	;
+{15963.} 	 C617O2 = C617OH : 	2.00D-12*RO2*0.2 	;
+{15964.} 	 C618O2 + HO2 = C618OOH : 	KRO2HO2*0.770 	;
+{15965.} 	 C618O2 + NO = C618O + NO2 : 	KRO2NO 	;
+{15966.} 	 C618O2 + NO3 = C618O + NO2 : 	KRO2NO3 	;
+{15967.} 	 C618O2 = C618O : 	9.20D-14*RO2*0.7 	;
+{15968.} 	 C618O2 = C67CHO : 	9.20D-14*RO2*0.3 	;
+{15969.} 	 C821OOH + OH = C821O2 : 	5.42D-11 	;
+{15970.} 	 C821OOH = C821O + OH : 	J(35)+J(41) 	;
+{15971.} 	 C821O = CH3CO3 + CO + CO2C3CHO : 	KDEC 	;
+{15972.} 	 HMVKBCO2H + OH = HMVKBO2 : 	1.48D-11 	;
+{15973.} 	 HMVKBCO3H + OH = HMVKBCO3 : 	1.79D-11 	;
+{15974.} 	 HMVKBCO3H = HMVKBO2 + OH : 	J(41) 	;
+{15975.} 	 HMVKBPAN + OH = BIACETOH + CO + NO2 : 	1.43D-11 	;
+{15976.} 	 HMVKBPAN = HMVKBCO3 + NO2 : 	KBPAN 	;
+{15977.} 	 C520OOH + OH = C520O2 : 	3.74D-11 	;
+{15978.} 	 C520OOH = BIACETOH + CO + HO2 + OH : 	J(15) 	;
+{15979.} 	 C520OOH = C520O + OH : 	J(41) 	;
+{15980.} 	 C520OOH = HOCH2COCHO + CH3CO3 + OH : 	J(22) 	;
+{15981.} 	 C520O = BIACETOH + CO + HO2 : 	KDEC*0.5 	;
+{15982.} 	 C520O = HOCH2COCHO + CH3CO3 : 	KDEC*0.5 	;
+{15983.} 	 C520OH + OH = C520O : 	3.40D-11 	;
+{15984.} 	 C520OH = BIACETOH + CO + HO2 + HO2 : 	J(15) 	;
+{15985.} 	 C520OH = HOCH2COCHO + CH3CO3 + HO2 : 	J(22) 	;
+{15986.} 	 NC730O2 + HO2 = NC730OOH : 	KRO2HO2*0.820 	;
+{15987.} 	 NC730O2 + NO = NC730O + NO2 : 	KRO2NO 	;
+{15988.} 	 NC730O2 + NO3 = NC730O + NO2 : 	KRO2NO3 	;
+{15989.} 	 NC730O2 = NC730O : 	9.20D-14*RO2*0.7 	;
+{15990.} 	 NC730O2 = NC730OH : 	9.20D-14*RO2*0.3 	;
+{15991.} 	 C519CHO + NO3 = C519CO3 + HNO3 : 	KNO3AL*8.5 	;
+{15992.} 	 C519CHO + OH = C519CO3 : 	3.50D-11 	;
+{15993.} 	 C629OOA = C629O2 + OH : 	KDEC 	;
+{15994.} 	 C730O2 + HO2 = C730OOH : 	KRO2HO2*0.820 	;
+{15995.} 	 C730O2 + NO = C730NO3 : 	KRO2NO*0.056 	;
+{15996.} 	 C730O2 + NO = C730O + NO2 : 	KRO2NO*0.944 	;
+{15997.} 	 C730O2 + NO3 = C730O + NO2 : 	KRO2NO3 	;
+{15998.} 	 C730O2 = C730O : 	9.20D-14*RO2*0.7 	;
+{15999.} 	 C730O2 = C730OH : 	9.20D-14*RO2*0.3 	;
+{16000.} 	 C624CO2H + OH = C624O2 : 	5.94D-11 	;
+{16001.} 	 C624CO3H + OH = C624CO3 : 	6.25D-11 	;
+{16002.} 	 C624CO3H = C624O2 + OH : 	J(41) 	;
+{16003.} 	 C624O2 + HO2 = C624OOH : 	KRO2HO2*0.770 	;
+{16004.} 	 C624O2 + NO = C624NO3 : 	KRO2NO*0.209 	;
+{16005.} 	 C624O2 + NO = C624O + NO2 : 	KRO2NO*0.791 	;
+{16006.} 	 C624O2 + NO3 = C624O + NO2 : 	KRO2NO3 	;
+{16007.} 	 C624O2 = C624CO : 	2.50D-13*RO2*0.2 	;
+{16008.} 	 C624O2 = C624O : 	2.50D-13*RO2*0.6 	;
+{16009.} 	 C624O2 = C624OH : 	2.50D-13*RO2*0.2 	;
+{16010.} 	 C624PAN + OH = C624CO + CO + NO2 : 	5.89D-11 	;
+{16011.} 	 C624PAN = C624CO3 + NO2 : 	KBPAN 	;
+{16012.} 	 C733O2 + HO2 = C733OOH : 	KRO2HO2*0.859 	;
+{16013.} 	 C733O2 + NO = C733O + NO2 : 	KRO2NO 	;
+{16014.} 	 C733O2 + NO3 = C733O + NO2 : 	KRO2NO3 	;
+{16015.} 	 C733O2 = C733CO : 	8.80D-12*RO2*0.2 	;
+{16016.} 	 C733O2 = C733O : 	8.80D-12*RO2*0.6 	;
+{16017.} 	 C733O2 = C733OH : 	8.80D-12*RO2*0.2 	;
+{16018.} 	 C732OOH + OH = C732CO + OH : 	4.95D-11 	;
+{16019.} 	 C732OOH = C732O + OH : 	J(41) 	;
+{16020.} 	 C732NO3 + OH = C732CO + NO2 : 	7.97D-12 	;
+{16021.} 	 C732NO3 = C732O + NO2 : 	J(53) 	;
+{16022.} 	 C732O = C734O2 : 	KDEC 	;
+{16023.} 	 C732CO + OH = C734O2 : 	2.81D-11 	;
+{16024.} 	 C732CO = C734O2 + HO2 : 	J(15) 	;
+{16025.} 	 C732OH + OH = C732CO + HO2 : 	2.82D-11 	;
+{16026.} 	 C1212O2 + HO2 = C1212OOH : 	KRO2HO2*0.947 	;
+{16027.} 	 C1212O2 + NO = C1212NO3 : 	KRO2NO*0.132 	;
+{16028.} 	 C1212O2 + NO = C1212O + NO2 : 	KRO2NO*0.868 	;
+{16029.} 	 C1212O2 + NO3 = C1212O + NO2 : 	KRO2NO3 	;
+{16030.} 	 C1212O2 = C1212O : 	9.20D-14*RO2*0.7 	;
+{16031.} 	 C1212O2 = C1212OH : 	9.20D-14*RO2*0.3 	;
+{16032.} 	 C829OOH + OH = C829O2 : 	1.43D-11 	;
+{16033.} 	 C829OOH = C829O + OH : 	J(41)+J(35) 	;
+{16034.} 	 C829NO3 + OH = C513CO + CH3COCH3 + NO2 : 	1.01D-11 	;
+{16035.} 	 C829NO3 = C829O + NO2 : 	J(55)+J(35) 	;
+{16036.} 	 C829O = C521O2 + CH3COCH3 : 	KDEC 	;
+{16037.} 	 C829OH + OH = C829O : 	1.08D-11 	;
+{16038.} 	 C829OH = H2M2C3CO3 + HOC2H4CO3 : 	J(35) 	;
+{16039.} 	 C134OOH + OH = C134CO + OH : 	3.49D-11 	;
+{16040.} 	 C134OOH = C134O + OH : 	J(41)+J(35) 	;
+{16041.} 	 C134O = C827CHO + CO + HOC2H4CO3 : 	KDEC 	;
+{16042.} 	 C134CO + OH = C135O2 : 	1.63D-11 	;
+{16043.} 	 C134CO = C827CO3 + CO + HOC2H4CO3 : 	J(35) 	;
+{16044.} 	 C134OH + OH = C134CO + HO2 : 	2.27D-11 	;
+{16045.} 	 C134OH = C827CHO + HO2 + CO + HOC2H4CO3 : 	J(35) 	;
+{16046.} 	 C827CO2H + OH = C827O2 : 	9.84D-12 	;
+{16047.} 	 C827CO3H + OH = C827CO3 : 	1.32D-11 	;
+{16048.} 	 C827CO3H = C827O2 + OH : 	J(41) 	;
+{16049.} 	 C827O2 + HO2 = C827OOH : 	KRO2HO2*0.859 	;
+{16050.} 	 C827O2 + NO = C827O + NO2 : 	KRO2NO 	;
+{16051.} 	 C827O2 + NO3 = C827O + NO2 : 	KRO2NO3 	;
+{16052.} 	 C827O2 = C827O : 	6.70D-15*RO2*0.7 	;
+{16053.} 	 C827O2 = C827OH : 	6.70D-15*RO2*0.3 	;
+{16054.} 	 C827PAN + OH = CO2C4CHO + CH3COCH3 + NO2 : 	9.60D-12 	;
+{16055.} 	 C827PAN = C827CO3 + NO2 : 	KBPAN 	;
+{16056.} 	 C1310CO + OH = C927O2 + CHOC2CO2H : 	7.74D-11 	;
+{16057.} 	 C1310O2 + HO2 = C1310OOH : 	KRO2HO2*0.959 	;
+{16058.} 	 C1310O2 + NO = C1310NO3 : 	KRO2NO*0.245 	;
+{16059.} 	 C1310O2 + NO = C1310O + NO2 : 	KRO2NO*0.755 	;
+{16060.} 	 C1310O2 + NO3 = C1310O + NO2 : 	KRO2NO3 	;
+{16061.} 	 C1310O2 = C1310CO : 	2.50D-13*RO2*0.2 	;
+{16062.} 	 C1310O2 = C1310O : 	2.50D-13*RO2*0.6 	;
+{16063.} 	 C1310O2 = C1310OH : 	2.50D-13*RO2*0.2 	;
+{16064.} 	 COO2C4CHO + OH = COO2C4CO3 : 	2.43D-11 	;
+{16065.} 	 COO2C4CHO = COO2C4O2 + HO2 + CO : 	J(15) 	;
+{16066.} 	 C522CO2H + OH = CHOC2CO3 + HCHO : 	7.32D-11 	;
+{16067.} 	 C522CO3H + OH = C522CO3 : 	J(41) 	;
+{16068.} 	 C522CO3H = CHOC2CO3 + HCHO + OH : 	7.68D-11 	;
+{16069.} 	 C522PAN + OH = HCOCH2CHO + CO + NO2 : 	7.32D-11 	;
+{16070.} 	 C522PAN = C522CO3 + NO2 : 	KBPAN 	;
+{16071.} 	 C831OOH + OH = C831CO + OH : 	7.57D-11 	;
+{16072.} 	 C831OOH = C831O + OH : 	J(41) 	;
+{16073.} 	 C831NO3 + OH = C831CO + NO2 : 	4.38D-11 	;
+{16074.} 	 C831NO3 = C831O + NO2 : 	J(54) 	;
+{16075.} 	 C831O = C831CO + HO2 : 	KROSEC*O2 	;
+{16076.} 	 C831O = HCOCH2CHO + C3ME3CHOO2 : 	2.70D+14*EXP(-6643/TEMP) 	;
+{16077.} 	 C831CO + OH = HCOCH2CHO + C3ME3CHOO2 : 	4.94D-11 	;
+{16078.} 	 C831OH + OH = C831CO + HO2 : 	5.78D-11 	;
+{16079.} 	 C928OOH + OH = C827CHO + OH : 	1.99D-11 	;
+{16080.} 	 C928OOH = C928O + OH : 	J(41) 	;
+{16081.} 	 C928NO3 + OH = C827CHO + NO2 : 	7.03D-12 	;
+{16082.} 	 C928NO3 = C928O + NO2 : 	J(53) 	;
+{16083.} 	 C928O = C929O2 : 	KDEC 	;
+{16084.} 	 C827CHO + NO3 = C827CO3 + HNO3 : 	KNO3AL*8.5 	;
+{16085.} 	 C827CHO + OH = C827CO3 : 	2.76D-11 	;
+{16086.} 	 C827CHO = C827O2 + CO + HO2 : 	J(15) 	;
+{16087.} 	 C928OH + OH = C827CHO + HO2 : 	1.08D-11 	;
+{16088.} 	 C46CO2H + OH = HOC2H4CO3 + HCHO : 	6.98D-11 	;
+{16089.} 	 C46CO3H + OH = C46CO3 : 	7.29D-11 	;
+{16090.} 	 C46CO3H = HOC2H4CO3 + HCHO + OH : 	J(41) 	;
+{16091.} 	 C46PAN + OH = HOC2H4CHO + HCHO + NO2 : 	6.93D-11 	;
+{16092.} 	 C46PAN = C46CO3 + NO2 : 	KBPAN 	;
+{16093.} 	 C930OOH + OH = CO123C5CHO + CH3COCH3 + OH : 	3.46D-11 	;
+{16094.} 	 C930OOH = C930O + OH : 	J(41) 	;
+{16095.} 	 C930NO3 + OH = CO123C5CHO + CH3COCH3 + NO2 : 	2.76D-11 	;
+{16096.} 	 C930NO3 = C930O + NO2 : 	J(55) 	;
+{16097.} 	 C930O = C6145COO2 + CH3COCH3 : 	KDEC 	;
+{16098.} 	 C930OH + OH = CO123C5CHO + CH3COCH3 + HO2 : 	3.12D-11 	;
+{16099.} 	 NC61CO3 + HO2 = CO235C5CHO + NO2 + OH : 	KAPHO2*0.44 	;
+{16100.} 	 NC61CO3 + HO2 = NC61CO3H : 	KAPHO2*0.56 	;
+{16101.} 	 NC61CO3 + NO = CO235C5CHO + NO2 + NO2 : 	KAPNO 	;
+{16102.} 	 NC61CO3 + NO2 = NC6PAN1 : 	KFPAN 	;
+{16103.} 	 NC61CO3 + NO3 = CO235C5CHO + NO2 + NO2 : 	KRO2NO3*1.74 	;
+{16104.} 	 NC61CO3 = CO235C5CHO + NO2 : 	1.00D-11*RO2 	;
+{16105.} 	 C813OOH + OH = C813O2 : 	1.86D-11 	;
+{16106.} 	 C813OOH = C813O + OH : 	J(41)+J(34) 	;
+{16107.} 	 C813NO3 + OH = CH3COCH3 + CO13C3CO2H + HCHO + NO2 : 	7.82D-12 	;
+{16108.} 	 C813NO3 = C813O + NO2 : 	J(55)+J(34) 	;
+{16109.} 	 C813O = CH3COCH3 + C512O2 : 	KDEC 	;
+{16110.} 	 C813OH + OH = C813O : 	1.75D-11 	;
+{16111.} 	 C813OH = C813O + HO2 : 	J(34) 	;
+{16112.} 	 C722OOH + OH = C722O2 : 	3.31D-11 	;
+{16113.} 	 C722OOH = C722O + OH : 	J(41) 	;
+{16114.} 	 C722O = CH3COCH3 + C44O2 : 	KDEC 	;
+{16115.} 	 H1C23C4CHO + NO3 = H1C23C4CO3 + HNO3 : 	KNO3AL*5.5 	;
+{16116.} 	 H1C23C4CHO + OH = H1C23C4CO3 : 	2.37D-11 	;
+{16117.} 	 H1C23C4CHO = H1C23C4O2 + CO + HO2 : 	J(15) 	;
+{16118.} 	 H1C23C4CHO = HCOCH2CO3 + HOCH2CO3 : 	J(35) 	;
+{16119.} 	 C515CO + OH = CO + CO + HCOCH2CO3 : 	7.90D-11 	;
+{16120.} 	 C515CO = HO2 + CO + CO + HCOCH2CO3 : 	J(34)+J(35) 	;
+{16121.} 	 C615CO2H + OH = C615O2 : 	9.13D-11 	;
+{16122.} 	 C615CO2H = C615O2 + HO2 : 	J(15)*2 	;
+{16123.} 	 C615CO3H + OH = C615CO3 : 	9.44D-11 	;
+{16124.} 	 C615CO3H = C615O2 + OH : 	J(41)+J(15)*2 	;
+{16125.} 	 C615O2 + HO2 = C615OOH : 	KRO2HO2*0.770 	;
+{16126.} 	 C615O2 + NO = C615O + NO2 : 	KRO2NO 	;
+{16127.} 	 C615O2 + NO3 = C615O + NO2 : 	KRO2NO3 	;
+{16128.} 	 C615O2 = C615CO : 	8.80D-13*RO2*0.2 	;
+{16129.} 	 C615O2 = C615O : 	8.80D-13*RO2*0.6 	;
+{16130.} 	 C615O2 = C615OH : 	8.80D-13*RO2*0.2 	;
+{16131.} 	 C615PAN + OH = C615CO + CO + NO2 : 	8.47D-11 	;
+{16132.} 	 C615PAN = C615CO3 + NO2 : 	KBPAN 	;
+{16133.} 	 C617CO2H + OH = C617O2 : 	6.72D-11 	;
+{16134.} 	 C617CO2H = C617O2 + HO2 : 	J(15) 	;
+{16135.} 	 C617CO3H + OH = C617CO3 : 	7.03D-11 	;
+{16136.} 	 C617CO3H = C617O2 + OH : 	J(41)+J(15) 	;
+{16137.} 	 C617PAN + OH = C615CO + CO + NO2 : 	6.74D-11 	;
+{16138.} 	 C617PAN = C617CO3 + NO2 : 	KBPAN 	;
+{16139.} 	 C618CO2H + OH = C618O2 : 	6.72D-11 	;
+{16140.} 	 C618CO2H = C618O2 + HO2 : 	J(15) 	;
+{16141.} 	 C618CO3H + OH = C618CO3 : 	7.03D-11 	;
+{16142.} 	 C618CO3H = C618O2 + OH : 	J(41)+J(15) 	;
+{16143.} 	 C618PAN + OH = CH3COCH3 + HCOCH2CHO + CO + NO2 : 	6.67D-11 	;
+{16144.} 	 C618PAN = C618CO3 + NO2 : 	KBPAN 	;
+{16145.} 	 C617OOH + OH = C615CO + OH : 	7.56D-11 	;
+{16146.} 	 C617OOH = C617O + OH : 	J(41)+J(15) 	;
+{16147.} 	 C617O = CO1M22CO3 + HCHO : 	KDEC 	;
+{16148.} 	 C615CO + OH = CO1M22CO3 + CO : 	7.88D-11 	;
+{16149.} 	 C615CO = CO1M22CO3 + CO + HO2 : 	J(34)+J(15) 	;
+{16150.} 	 C617OH + OH = C615CO + HO2 : 	6.89D-11 	;
+{16151.} 	 C617OH = C617O + HO2 : 	J(15) 	;
+{16152.} 	 C618OOH + OH = C618O2 : 	7.03D-11 	;
+{16153.} 	 C618OOH = C618O + OH : 	J(41)+J(15) 	;
+{16154.} 	 C618O = HCOCH2CO3 + CH3COCH3 : 	KDEC 	;
+{16155.} 	 NC730OOH + OH = NC730O2 : 	3.58D-11 	;
+{16156.} 	 NC730OOH = NC730O + OH : 	J(41) 	;
+{16157.} 	 NC730O = C519CHO + HCHO + NO2 : 	KDEC 	;
+{16158.} 	 NC730OH + OH = C519CHO + HCHO + NO2 : 	3.34D-11 	;
+{16159.} 	 C519CO3 + HO2 = C519CO2H + O3 : 	KAPHO2*0.15 	;
+{16160.} 	 C519CO3 + HO2 = C519CO3H : 	KAPHO2*0.41 	;
+{16161.} 	 C519CO3 + HO2 = C519O2 + OH : 	KAPHO2*0.44 	;
+{16162.} 	 C519CO3 + NO = C519O2 + NO2 : 	KAPNO 	;
+{16163.} 	 C519CO3 + NO2 = C519PAN : 	KFPAN 	;
+{16164.} 	 C519CO3 + NO3 = C519O2 + NO2 : 	KRO2NO3*1.74 	;
+{16165.} 	 C519CO3 = C519CO2H : 	1.00D-11*RO2*0.3 	;
+{16166.} 	 C519CO3 = C519O2 : 	1.00D-11*RO2*0.7 	;
+{16167.} 	 C629O2 + HO2 = C629OOH : 	KRO2HO2*0.770 	;
+{16168.} 	 C629O2 + NO = C629O + NO2 : 	KRO2NO 	;
+{16169.} 	 C629O2 + NO3 = C629O + NO2 : 	KRO2NO3 	;
+{16170.} 	 C629O2 = C629O : 	9.20D-14*RO2*0.7 	;
+{16171.} 	 C629O2 = C629OH : 	9.20D-14*RO2*0.3 	;
+{16172.} 	 C730OOH + OH = C730O2 : 	4.00D-11 	;
+{16173.} 	 C730OOH = C730O + OH : 	J(41) 	;
+{16174.} 	 C730NO3 + OH = C519CHO + HCHO + NO2 : 	3.09D-11 	;
+{16175.} 	 C730O = C519CHO + HCHO + HO2 : 	KDEC 	;
+{16176.} 	 C730OH + OH = C519CHO + HCHO + HO2 : 	3.66D-11 	;
+{16177.} 	 C624OOH + OH = C624CO + OH : 	1.10D-10 	;
+{16178.} 	 C624OOH = C624O + OH : 	J(41) 	;
+{16179.} 	 C624NO3 + OH = C624CO + NO2 : 	2.92D-11 	;
+{16180.} 	 C624NO3 = C624O + NO2 : 	J(54) 	;
+{16181.} 	 C624O = C624CO + HO2 : 	KROSEC*O2 	;
+{16182.} 	 C624O = MACR + HOCH2CH2O2 : 	4.00D+14*EXP(-6990/TEMP) 	;
+{16183.} 	 C624CO + OH = C625O2 : 	6.04D-11 	;
+{16184.} 	 C624CO = MACO3 + HOCH2CH2O2 : 	J(22) 	;
+{16185.} 	 C624OH + OH = C624CO + HO2 : 	9.53D-11 	;
+{16186.} 	 C733OOH + OH = C733CO + OH : 	5.51D-11 	;
+{16187.} 	 C733OOH = C733O + OH : 	J(41) 	;
+{16188.} 	 C733O = C519CHO + CO + HO2 : 	KDEC 	;
+{16189.} 	 C733CO + OH = C519CO3 + CO : 	2.28D-11 	;
+{16190.} 	 C733CO = C519CO3 + CO + HO2 : 	J(34) 	;
+{16191.} 	 C733OH + OH = C733CO + HO2 : 	4.30D-11 	;
+{16192.} 	 C734O2 + HO2 = C734OOH : 	KRO2HO2*0.859 	;
+{16193.} 	 C734O2 + NO = C734O + NO2 : 	KRO2NO 	;
+{16194.} 	 C734O2 + NO3 = C734O + NO2 : 	KRO2NO3 	;
+{16195.} 	 C734O2 = C734CO : 	8.80D-12*RO2*0.2 	;
+{16196.} 	 C734O2 = C734O : 	8.80D-12*RO2*0.6 	;
+{16197.} 	 C734O2 = C734OH : 	8.80D-12*RO2*0.2 	;
+{16198.} 	 C1212OOH + OH = C1212O2 : 	1.57D-11 	;
+{16199.} 	 C1212OOH = C1212O + OH : 	J(41) 	;
+{16200.} 	 C1212NO3 + OH = C1213CO + NO2 : 	8.60D-12 	;
+{16201.} 	 C1212NO3 = C1212O + NO2 : 	J(55) 	;
+{16202.} 	 C1212O = C1213O2 : 	KDEC 	;
+{16203.} 	 C1212OH + OH = C1212O : 	1.23D-11 	;
+{16204.} 	 C521O2 + HO2 = C521OOH : 	KRO2HO2*0.706 	;
+{16205.} 	 C521O2 + NO = C521O + NO2 : 	KRO2NO 	;
+{16206.} 	 C521O2 + NO3 = C521O + NO2 : 	KRO2NO3 	;
+{16207.} 	 C521O2 = C513CO : 	2.00D-12*RO2*0.2 	;
+{16208.} 	 C521O2 = C521O : 	2.00D-12*RO2*0.6 	;
+{16209.} 	 C521O2 = C521OH : 	2.00D-12*RO2*0.2 	;
+{16210.} 	 C135O2 + HO2 = C135OOH : 	KRO2HO2*0.959 	;
+{16211.} 	 C135O2 + NO = C135O + NO2 : 	KRO2NO 	;
+{16212.} 	 C135O2 + NO3 = C135O + NO2 : 	KRO2NO3 	;
+{16213.} 	 C135O2 = C135O : 	8.80D-13*RO2 	;
+{16214.} 	 C827OOH + OH = C827O2 : 	1.05D-11 	;
+{16215.} 	 C827OOH = C827O2 + OH : 	J(41) 	;
+{16216.} 	 C827O = CO2C4CO3 + CH3COCH3 : 	KDEC 	;
+{16217.} 	 C827OH + OH = C827O : 	7.04D-12 	;
+{16218.} 	 C1310OOH + OH = C1310CO + OH : 	7.10D-11 	;
+{16219.} 	 C1310OOH = C1310O + OH : 	J(41) 	;
+{16220.} 	 C1310NO3 + OH = C1310CO + NO2 : 	5.57D-11 	;
+{16221.} 	 C1310NO3 = C1310O + NO2 : 	J(55) 	;
+{16222.} 	 C1310O = C927O2 + CHOC2CO2H : 	KDEC 	;
+{16223.} 	 C1310OH + OH = C1310CO + HO2 : 	6.20D-11 	;
+{16224.} 	 COO2C4CO3 + HO2 = COO2C4CO3H : 	KAPHO2*0.56 	;
+{16225.} 	 COO2C4CO3 + HO2 = COO2C4O2 + OH : 	KAPHO2*0.44 	;
+{16226.} 	 COO2C4CO3 + NO = COO2C4O2 + NO2 : 	KAPNO 	;
+{16227.} 	 COO2C4CO3 + NO2 = COO2C4PAN : 	KFPAN 	;
+{16228.} 	 COO2C4CO3 + NO3 = COO2C4O2 + NO2 : 	KRO2NO3*1.74 	;
+{16229.} 	 COO2C4CO3 = COO2C4O2 : 	1.00D-11*RO2 	;
+{16230.} 	 COO2C4O2 + HO2 = COO2C4OOH : 	KRO2HO2*0.625 	;
+{16231.} 	 COO2C4O2 + NO = COO2C4O + NO2 : 	KRO2NO 	;
+{16232.} 	 COO2C4O2 + NO3 = COO2C4O + NO2 : 	KRO2NO3 	;
+{16233.} 	 COO2C4O2 = COO2C4O : 	2.00D-12*RO2 	;
+{16234.} 	 C929O2 + HO2 = C929OOH : 	KRO2HO2*0.890 	;
+{16235.} 	 C929O2 + NO = C929O + NO2 : 	KRO2NO 	;
+{16236.} 	 C929O2 + NO3 = C929O + NO2 : 	KRO2NO3 	;
+{16237.} 	 C929O2 = C929CO : 	8.80D-13*RO2*0.2 	;
+{16238.} 	 C929O2 = C929O : 	8.80D-13*RO2*0.6 	;
+{16239.} 	 C929O2 = C929OH : 	8.80D-13*RO2*0.2 	;
+{16240.} 	 NC61CO3H + OH = NC61CO3 : 	1.68D-11 	;
+{16241.} 	 NC61CO3H = CO235C5CHO + NO2 + OH : 	J(41) 	;
+{16242.} 	 NC6PAN1 + OH = CO235C5CHO + CO + NO2 + NO2 : 	1.32D-11 	;
+{16243.} 	 NC6PAN1 = NC61CO3 + NO2 : 	KBPAN 	;
+{16244.} 	 C44O2 + HO2 = C44OOH : 	KRO2HO2*0.625 	;
+{16245.} 	 C44O2 + NO = C44O + NO2 : 	KRO2NO 	;
+{16246.} 	 C44O2 + NO3 = C44O + NO2 : 	KRO2NO3 	;
+{16247.} 	 C44O2 = C44O : 	8.80D-13*RO2 	;
+{16248.} 	 H1C23C4CO3 + HO2 = H1C23C4O2 + OH : 	KAPHO2*0.44 	;
+{16249.} 	 H1C23C4CO3 + HO2 = HC23C4CO3H : 	KAPHO2*0.56 	;
+{16250.} 	 H1C23C4CO3 + NO = H1C23C4O2 + NO2 : 	KAPNO 	;
+{16251.} 	 H1C23C4CO3 + NO2 = H1C23C4PAN : 	KFPAN 	;
+{16252.} 	 H1C23C4CO3 + NO3 = H1C23C4O2 + NO2 : 	KRO2NO3*1.74 	;
+{16253.} 	 H1C23C4CO3 = H1C23C4O2 : 	1.00D-11*RO2 	;
+{16254.} 	 H1C23C4O2 + HO2 = H1C23C4OOH : 	KRO2HO2*0.625 	;
+{16255.} 	 H1C23C4O2 + NO = H1C23C4O + NO2 : 	KRO2NO 	;
+{16256.} 	 H1C23C4O2 + NO3 = H1C23C4O + NO2 : 	KRO2NO3 	;
+{16257.} 	 H1C23C4O2 = H1C23C4O : 	2.00D-12*RO2 	;
+{16258.} 	 C615OOH + OH = C615CO + OH : 	9.31D-11 	;
+{16259.} 	 C615OOH = C615O + OH : 	J(41)+J(15)*2 	;
+{16260.} 	 C615O = CO1M22CHO + HO2 + CO : 	KDEC 	;
+{16261.} 	 C615OH + OH = C615CO + HO2 : 	6.15D-11 	;
+{16262.} 	 C615OH = C615O + HO2 : 	J(15)*2 	;
+{16263.} 	 CO1M22CO3 + HO2 = CO1M22CO2H + O3 : 	KAPHO2*0.15 	;
+{16264.} 	 CO1M22CO3 + HO2 = CO1M22CO3H : 	KAPHO2*0.41 	;
+{16265.} 	 CO1M22CO3 + HO2 = IBUTALCO2 + OH : 	KAPHO2*0.44 	;
+{16266.} 	 CO1M22CO3 + NO = IBUTALCO2 + NO2 : 	KAPNO 	;
+{16267.} 	 CO1M22CO3 + NO2 = CO1M22PAN : 	KFPAN 	;
+{16268.} 	 CO1M22CO3 + NO3 = IBUTALCO2 + NO2 : 	KRO2NO3*1.74 	;
+{16269.} 	 CO1M22CO3 = CO1M22CO2H : 	1.00D-11*RO2*0.3 	;
+{16270.} 	 CO1M22CO3 = IBUTALCO2 : 	1.00D-11*RO2*0.7 	;
+{16271.} 	 C519CO2H + OH = C519O2 : 	1.06D-11 	;
+{16272.} 	 C519CO3H + OH = C519CO3 : 	1.37D-11 	;
+{16273.} 	 C519CO3H = C519O2 + OH : 	J(41)+J(22) 	;
+{16274.} 	 C519O2 + HO2 = C519OOH : 	KRO2HO2*0.706 	;
+{16275.} 	 C519O2 + NO = C519O + NO2 : 	KRO2NO 	;
+{16276.} 	 C519O2 + NO3 = C519O + NO2 : 	KRO2NO3 	;
+{16277.} 	 C519O2 = C519O : 	8.80D-13*RO2*0.6 	;
+{16278.} 	 C519O2 = HO13CO4C5 : 	8.80D-13*RO2*0.2 	;
+{16279.} 	 C519O2 = HO1CO34C5 : 	8.80D-13*RO2*0.2 	;
+{16280.} 	 C519PAN + OH = HO1CO34C5 + CO + NO2 : 	1.01D-11 	;
+{16281.} 	 C519PAN = C519CO3 + NO2 : 	KBPAN 	;
+{16282.} 	 C629OOH + OH = C629O2 : 	3.31D-11 	;
+{16283.} 	 C629OOH = C629O + OH : 	J(41) 	;
+{16284.} 	 C629OOH = HO1CO34C5 + CO + HO2 + OH : 	J(15) 	;
+{16285.} 	 C629OOH = HO1CO3CHO + CH3CO3 + OH : 	J(22) 	;
+{16286.} 	 C629O = HO1CO34C5 + CO + HO2 : 	KDEC*0.5 	;
+{16287.} 	 C629O = HO1CO3CHO + CH3CO3 : 	KDEC*0.5 	;
+{16288.} 	 C629OH + OH = C629O : 	2.97D-11 	;
+{16289.} 	 C629OH = HO1CO34C5 + CO + HO2 + HO2 : 	J(15) 	;
+{16290.} 	 C629OH = HO1CO3CHO + CH3CO3 + HO2 : 	J(22) 	;
+{16291.} 	 C625O2 + HO2 = C625OOH : 	KRO2HO2*0.770 	;
+{16292.} 	 C625O2 + NO = C625O + NO2 : 	KRO2NO 	;
+{16293.} 	 C625O2 + NO3 = C625O + NO2 : 	KRO2NO3 	;
+{16294.} 	 C625O2 = C625O : 	9.20D-14*RO2*0.7 	;
+{16295.} 	 C625O2 = C625OH : 	9.20D-14*RO2*0.3 	;
+{16296.} 	 C734OOH + OH = C734CO + OH : 	4.16D-11 	;
+{16297.} 	 C734OOH = C734O + OH : 	J(41) 	;
+{16298.} 	 C734O = C517CHO + HO2 : 	KDEC 	;
+{16299.} 	 C734CO + OH = C517CO3 : 	2.43D-11 	;
+{16300.} 	 C734CO = C517CO3 + HO2 : 	J(22) 	;
+{16301.} 	 C734OH + OH = C734CO + HO2 : 	2.95D-11 	;
+{16302.} 	 C1213CO + OH = C829O2 + CHOC2CO2H : 	7.96D-12 	;
+{16303.} 	 C1213O2 + HO2 = C1213OOH : 	KRO2HO2*0.947 	;
+{16304.} 	 C1213O2 + NO = C1213NO3 : 	KRO2NO*0.240 	;
+{16305.} 	 C1213O2 + NO = C1213O + NO2 : 	KRO2NO*0.760 	;
+{16306.} 	 C1213O2 + NO3 = C1213O + NO2 : 	KRO2NO3 	;
+{16307.} 	 C1213O2 = C1213CO : 	2.50D-13*RO2*0.2 	;
+{16308.} 	 C1213O2 = C1213O : 	2.50D-13*RO2*0.6 	;
+{16309.} 	 C1213O2 = C1213OH : 	2.50D-13*RO2*0.2 	;
+{16310.} 	 C521OOH + OH = C513CO + OH : 	1.45D-11 	;
+{16311.} 	 C521OOH = C521O + OH : 	J(41)+J(35) 	;
+{16312.} 	 C521O = HOC2H4CO3 + CO : 	KDEC 	;
+{16313.} 	 C521OH + OH = C513CO + HO2 : 	7.61D-12 	;
+{16314.} 	 C521OH = HOCH2CO3 + HOC2H4CO3 : 	J(35) 	;
+{16315.} 	 C135OOH + OH = C135O2 : 	3.09D-11 	;
+{16316.} 	 C135OOH = C135O + OH : 	J(41)+J(35) 	;
+{16317.} 	 C135O = HOCH2CHO + CO + CO + C827CO3 : 	KDEC 	;
+{16318.} 	 COO2C4CO3H + OH = COO2C4CO3 : 	7.18D-12 	;
+{16319.} 	 COO2C4CO3H = COO2C4O2 + OH : 	J(41) 	;
+{16320.} 	 COO2C4PAN + OH = COO2C3CHO + CO + NO2 : 	3.58D-12 	;
+{16321.} 	 COO2C4PAN = COO2C4CO3 + NO2 : 	KBPAN 	;
+{16322.} 	 COO2C4OOH + OH = COO2C3CHO + OH : 	1.05D-11 	;
+{16323.} 	 COO2C4OOH + OH = COO2C4O2 : 	1.90D-12*EXP(190/TEMP) 	;
+{16324.} 	 COO2C4OOH = COO2C4O + OH : 	J(41) 	;
+{16325.} 	 COO2C4O = COO2C3CHO + HO2 : 	KROPRIM*O2 	;
+{16326.} 	 C929OOH + OH = C929CO + OH : 	2.65D-11 	;
+{16327.} 	 C929OOH = C929O + OH : 	J(41) 	;
+{16328.} 	 C929O = CO2C3CHO + HM22CO3 : 	KDEC 	;
+{16329.} 	 C929CO + OH = C828CHO + HO2 : 	1.48D-11 	;
+{16330.} 	 C929CO = CO2C3CO3 + HM22CO3 : 	J(35) 	;
+{16331.} 	 C929OH + OH = C929CO + HO2 : 	1.43D-11 	;
+{16332.} 	 C44OOH + OH = C44O2 : 	7.46D-11 	;
+{16333.} 	 C44OOH = C44O + OH : 	J(41) 	;
+{16334.} 	 C44O = HCOCH2CHO + HO2 : 	KDEC 	;
+{16335.} 	 HC23C4CO3H + OH = H1C23C4CO3 : 	6.55D-12 	;
+{16336.} 	 HC23C4CO3H = H1C23C4O2 + OH : 	J(41)+J(35) 	;
+{16337.} 	 H1C23C4PAN + OH = H1CO23CHO + CO + NO2 : 	2.92D-12 	;
+{16338.} 	 H1C23C4PAN = H1C23C4CO3 + NO2 : 	KBPAN 	;
+{16339.} 	 H1C23C4OOH + OH = H1C23C4O2 : 	9.61D-12 	;
+{16340.} 	 H1C23C4OOH = H1C23C4O + OH : 	J(41)+J(35) 	;
+{16341.} 	 H1C23C4O = HCHO + CO + HOCH2CO3 : 	KDEC 	;
+{16342.} 	 CO1M22CHO + NO3 = CO1M22CO3 + HNO3 : 	2*KNO3AL*8.5 	;
+{16343.} 	 CO1M22CHO + OH = CO1M22CO3 : 	1.32D-10 	;
+{16344.} 	 CO1M22CHO = IBUTALCO2 + CO + HO2 : 	J(15)*2 	;
+{16345.} 	 CO1M22CO2H + OH = IBUTALCO2 : 	6.67D-11 	;
+{16346.} 	 CO1M22CO2H = IBUTALCO2 + HO2 : 	J(15) 	;
+{16347.} 	 CO1M22CO3H + OH = CO1M22CO3 : 	6.98D-11 	;
+{16348.} 	 CO1M22CO3H = IBUTALCO2 + OH : 	J(41)+J(15) 	;
+{16349.} 	 CO1M22PAN + OH = CH3COCH3 + CO + NO2 : 	2.11D-11 	;
+{16350.} 	 CO1M22PAN = CO1M22CO3 + NO2 : 	KBPAN 	;
+{16351.} 	 C519OOH + OH = HO1CO34C5 + OH : 	2.74D-11 	;
+{16352.} 	 C519OOH = C519O + OH : 	J(41) 	;
+{16353.} 	 C519OOH = CH3CO3 + HOC2H4CHO + OH : 	J(22) 	;
+{16354.} 	 C519O = CH3CO3 + HOC2H4CHO : 	KDEC 	;
+{16355.} 	 C625OOH + OH = C625O2 : 	3.04D-11 	;
+{16356.} 	 C625OOH = C625O + OH : 	J(41) 	;
+{16357.} 	 C625OOH = HOC2H4CO3 + ACETOL + OH : 	J(22) 	;
+{16358.} 	 C625O = ACETOL + HOC2H4CO3 : 	KDEC 	;
+{16359.} 	 C625OH + OH = HOC2H4CO3 + ACETOL : 	2.70D-11 	;
+{16360.} 	 C625OH = HOC2H4CO3 + ACETOL + HO2 : 	J(22) 	;
+{16361.} 	 C1213OOH + OH = C1213CO + OH : 	3.68D-11 	;
+{16362.} 	 C1213OOH = C1213O + OH : 	J(41) 	;
+{16363.} 	 C1213NO3 + OH = C1213CO + NO2 : 	7.81D-12 	;
+{16364.} 	 C1213NO3 = C1213O + NO2 : 	J(55) 	;
+{16365.} 	 C1213O = C829O2 + CHOC2CO2H : 	KDEC 	;
+{16366.} 	 C1213OH + OH = C1213CO + HO2 : 	1.90D-11 	;
+{16367.} 	 COO2C3CHO + OH = COO2C3CO3 : 	2.13D-11 	;
+{16368.} 	 COO2C3CHO = MOCOCH2O2 + HO2 + CO : 	J(15) 	;
+{16369.} 	 C828CHO + NO3 = C828CO3 + HNO3 : 	KNO3AL*8.5 	;
+{16370.} 	 C828CHO + OH = C828CO3 : 	2.27D-11 	;
+{16371.} 	 C828CHO = C828O2 + CO + HO2 : 	J(15) 	;
+{16372.} 	 COO2C3CO3 + HO2 = COO2C3CO3H : 	KAPHO2*0.56 	;
+{16373.} 	 COO2C3CO3 + HO2 = MOCOCH2O2 + OH : 	KAPHO2*0.44 	;
+{16374.} 	 COO2C3CO3 + NO = MOCOCH2O2 + NO2 : 	KAPNO 	;
+{16375.} 	 COO2C3CO3 + NO2 = COO2C3PAN : 	KFPAN 	;
+{16376.} 	 COO2C3CO3 + NO3 = MOCOCH2O2 + NO2 : 	KRO2NO3*1.74 	;
+{16377.} 	 COO2C3CO3 = MOCOCH2O2 : 	1.00D-11*RO2 	;
+{16378.} 	 C828CO3 + HO2 = C828CO3H : 	KAPHO2*0.56 	;
+{16379.} 	 C828CO3 + HO2 = C828O2 + OH : 	KAPHO2*0.44 	;
+{16380.} 	 C828CO3 + NO = C828O2 + NO2 : 	KAPNO 	;
+{16381.} 	 C828CO3 + NO2 = C828PAN : 	KFPAN 	;
+{16382.} 	 C828CO3 + NO3 = C828O2 + NO2 : 	KRO2NO3*1.74 	;
+{16383.} 	 C828CO3 = C828O2 : 	1.00D-11*RO2 	;
+{16384.} 	 C828O2 + HO2 = C828OOH : 	KRO2HO2*0.859 	;
+{16385.} 	 C828O2 + NO = C828O + NO2 : 	KRO2NO 	;
+{16386.} 	 C828O2 + NO3 = C828O + NO2 : 	KRO2NO3 	;
+{16387.} 	 C828O2 = C828O : 	6.70D-15*RO2 	;
+{16388.} 	 COO2C3CO3H + OH = COO2C3CO3 : 	4.14D-12 	;
+{16389.} 	 COO2C3CO3H = MOCOCH2O2 + OH : 	J(41) 	;
+{16390.} 	 COO2C3PAN + OH = MOXYCOCHO + CO + NO2 : 	5.40D-13 	;
+{16391.} 	 COO2C3PAN = COO2C3CO3 + NO2 : 	KBPAN 	;
+{16392.} 	 C828CO3H + OH = C828CO3 : 	8.26D-12 	;
+{16393.} 	 C828CO3H = C828O2 + OH : 	J(41) 	;
+{16394.} 	 C828PAN + OH = CO24C4CHO + CH3COCH3 + NO2 : 	4.66D-12 	;
+{16395.} 	 C828PAN = C828CO3 + NO2 : 	KBPAN 	;
+{16396.} 	 C828OOH + OH = C828O2 : 	8.26D-12 	;
+{16397.} 	 C828OOH = C828O + OH : 	J(41) 	;
+{16398.} 	 C828O = CO2C3CO3 + CO + CH3COCH3 : 	KDEC 	;
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/MCM/mcm_constants.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/MCM/mcm_constants.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/MCM/mcm_constants.f90	(revision 2696)
@@ -0,0 +1,350 @@
+MODULE constants
+
+  USE model_Precision, ONLY: dp
+  IMPLICIT NONE
+  PRIVATE dp
+
+  INTEGER, PARAMETER :: mnsp=250, mre=2000
+  INTEGER i
+  ! variables for zenith routine which calculates zenith angle
+  REAL(dp) theta, secx, cosx
+  ! generic reaction rate variables
+  REAL(dp) kro2no, kro2ho2, kapho2, kapno, kro2no3, kno3al, kdec, &
+    krosec, kalkoxy, kalkpxy, kroprim
+  ! variables for calculation of kfpan and kbpan
+  REAL(dp) kfpan, kbpan
+  REAL(dp) kc0, kci, krc, fcc, nc, fc
+  REAL(dp) kd0, kdi, krd, fcd, ncd, fd
+  ! variables for calculation of kmt01
+  REAL(dp) kmt01
+  REAL(dp) k10, k1i, kr1, fc1, nc1, f1
+  ! variables for calculation of kmt02
+  REAL(dp) kmt02
+  REAL(dp) k20, k2i, kr2, fc2, nc2, f2
+  ! variables for calculation of kmt03
+  REAL(dp) kmt03
+  REAL(dp) k30, k3i, kr3, fc3, nc3, f3
+  ! variables for calculation of kmt04
+  REAL(dp) kmt04
+  REAL(dp) k40, k4i, kr4, fc4, nc4, f4
+  ! variables for calculation of kmt05
+  REAL(dp) kmt05
+  ! variables for calculation of kmt06
+  REAL(dp) kmt06
+  ! variables for calculation of kmt07
+  REAL(dp) kmt07
+  REAL(dp) k70, k7i, kr7, fc7, nc7, f7
+  ! variables for calculation of kmt08
+  REAL(dp) kmt08
+  REAL(dp) k80, k8i, kr8, fc8, nc8, f8
+  ! variables for calculation of kmt09
+  REAL(dp) kmt09
+  REAL(dp) k90, k9i, kr9, fc9, nc9, f9
+  ! variables for calculation of kmt10
+  REAL(dp) kmt10
+  REAL(dp) k100, k10i, kr10, fc10, nc10, f10
+  ! variables for calculation of kmt11
+  REAL(dp) kmt11
+  REAL(dp) k1,k2,k3,k4
+  ! variables for calculation of kmt12
+  REAL(dp) kmt12
+  REAL(dp) k0, ki, x, ssign,f
+  REAL(dp) k120, k12i, kr12, fc12, nc12, f12
+  ! variables for calculation of kmt13
+  REAL(dp) kmt13
+  REAL(dp) k130, k13i, kr13, nc13, fc13, f13
+  ! variables for calculation of kmt14
+  REAL(dp) kmt14
+  REAL(dp) k140, k14i, kr14, nc14, fc14, f14
+  ! variables for calculation of kmt15
+  REAL(dp) kmt15
+  REAL(dp) k150, k15i, kr15, fc15, nc15, f15
+  ! variables for calculation of kmt16
+  REAL(dp) kmt16
+  REAL(dp) k160, k16i, kr16, nc16, fc16, f16
+  ! variables for calculation of kmt17
+  REAL(dp) kmt17
+  REAL(dp) k170, k17i, kr17, fc17, nc17, f17
+  ! variables for calculation of kmt17
+  REAL(dp) kmt18
+
+  REAL(dp) kch3o2, k298ch3o2
+  
+  REAL(dp) kp_rooh, kp_ho2, kp_n2o5, kp_no3, kp_all
+  
+  INTEGER k
+
+CONTAINS
+
+  !***************************************************************************
+
+  SUBROUTINE mcm_constants(time, temp, M, N2, O2, RO2, H2O)
+    ! calculates rate constants from arrhenius informtion
+    USE model_Global,  ONLY:LAT, LON, JDAY, SZAS, SVJ_TJ, bs,cs,ds, jfactno2, jfacto1d, &
+         DEP_ROOH, DEP_HO2, DEP_N2O5, DEP_NO3, DEP_ALL
+    REAL(dp) time, temp, M, N2, O2, RO2, H2O, THETA, TIME2, LAT2
+    REAL*8 y,dy,x,tmp(19), tmp2(19),b(19),c(19),d(19)
+    integer i,n,jl
+    INTEGER LK
+
+ 
+    ! ************************************************************************
+    ! define generic reaction rates.
+    ! ************************************************************************
+
+    ! constants used in calculation of reaction rates
+    !M  = 2.55E+19
+    N2 = 0.79*M
+    O2 = 0.2095*M
+
+    kp_rooh = DEP_ROOH
+    kp_ho2  = DEP_HO2
+    kp_n2o5 = DEP_N2O5
+    kp_no3  = DEP_NO3
+    kp_all  = DEP_ALL
+
+
+    ! kro2no : ro2      + no      = ro      + no2
+    !        : ro2      + no      = rono2
+    ! mcm v3.2
+    !kro2no    = 2.7d-12*EXP(360.0/temp)
+
+    ! kro2ho2: ro2      + ho2     = rooh    + o2
+    ! mcm protocol v3.2
+    !kro2ho2   = 2.91d-13*EXP(1300.0/temp)
+
+    ! kapho2 : rcoo2    + ho2     = products
+    ! mcm protocol v3.2
+    !kapho2    = 5.20d-13*EXP(980.0/temp)
+
+    ! kapno  : rcoo2    + no      = products
+    ! mcm v3.2
+    !kapno = 7.50d-12*EXP(290.0/temp)
+
+    ! kro2no3: ro2      + no3     = products
+    ! mcm protocol v3.2
+    !kro2no3   = 2.30d-12
+
+    ! kno3al : no3      + rcho    = rcoo2   + hno3
+    ! mcm protocol v3.2
+    !kno3al    = 1.4d-12*EXP(-1860.0/temp)
+
+    ! kdec   : ro                 = products
+    ! mcm protocol v3.2
+    !kdec      = 1.00d+06
+    
+    kalkoxy=6.00d-14*EXP(-550.0/temp)*o2
+    kalkpxy=1.50d-14*EXP(-200.0/temp)*o2
+
+    !kch3o2 = 1.03d-13*EXP(365.0/TEMP)
+    !k298ch3o2 = 3.5d-13
+
+    ! -------------------------------------------------------------------
+    ! complex reactions
+    ! -------------------------------------------------------------------
+
+    ! kfpan kbpan
+    ! formation and decomposition of pan
+    ! iupac 2001 (mcmv3.2)
+    kc0     = 2.70d-28*m*(temp/300.0)**(-7.1)
+    kci     = 1.21d-11*(temp/300.0)**(-0.9)
+    krc     = kc0/kci
+    fcc     = 0.30
+    nc      = 0.75-(1.27*dlog10(fcc))
+    fc      = 10**(dlog10(fcc)/(1+((dlog10(krc))/nc)**2))
+    kfpan   = (kc0*kci)*fc/(kc0+kci)
+
+    kd0     = 4.90d-03*m*EXP(-12100.0/temp)
+    kdi     = 5.40d+16*EXP(-13830.0/temp)
+    krd     = kd0/kdi
+    fcd     = 0.30
+    ncd     = 0.75-(1.27*dlog10(fcd))
+    fd      = 10**(dlog10(fcd)/(1+((dlog10(krd))/ncd)**2))
+    kbpan   = (kd0*kdi)*fd/(kd0+kdi)
+
+    ! kmt01  : o        + no      = no2
+    ! iupac 2001 (mcmv3.2)
+    k10     = 1.00d-31*m*(temp/300.0)**(-1.6)
+
+    k1i     = 3.00d-11*(temp/300.0)**(0.3)
+    kr1     = k10/k1i
+    fc1     = 0.85
+    nc1     = 0.75-(1.27*dlog10(fc1))
+    f1      = 10**(dlog10(fc1)/(1+((dlog10(kr1)/nc1))**2))
+    kmt01   = (k10*k1i)*f1/(k10+k1i)
+
+    ! kmt02  : o        + no2     = no3
+    ! iupac 2001 (mcmv3.2)
+    k20     = 1.30d-31*m*(temp/300.0)**(-1.5)
+    k2i     = 2.30d-11*(temp/300.0)**(0.24)
+    kr2     = k20/k2i
+    fc2     = 0.6
+    nc2     = 0.75-(1.27*dlog10(fc2))
+    f2      = 10**(dlog10(fc2)/(1+((dlog10(kr2)/nc2))**2))
+    kmt02   = (k20*k2i)*f2/(k20+k2i)
+
+    ! kmt03  : no2      + no3     = n2o5
+    ! iupac 2006, mcmv3.2
+    k30     = 3.60d-30*m*(temp/300.0)**(-4.1)
+    k3i     = 1.90d-12*(temp/300.0)**(0.2)
+    kr3     = k30/k3i
+    fc3     = 0.35
+    nc3     = 0.75-(1.27*dlog10(fc3))
+    f3      = 10**(dlog10(fc3)/(1+((dlog10(kr3)/nc3))**2))
+    kmt03   = (k30*k3i)*f3/(k30+k3i)
+
+    ! kmt04  : n2o5               = no2     + no3
+    ! iupac 2006, mcmv3.2
+    k40     = 1.30d-03*m*(temp/300.0)**(-3.5)*EXP(-11000.0/temp)
+    k4i     = 9.70d+14*(temp/300.0)**(0.1)*EXP(-11080.0/temp)
+    kr4     = k40/k4i
+    fc4     = 0.35
+    nc4     = 0.75-(1.27*dlog10(fc4))
+    f4      = 10**(dlog10(fc4)/(1+((dlog10(kr4)/nc4))**2))
+    kmt04   = (k40*k4i)*f4/(k40+k4i)
+
+    ! kmt05  : oh       + co(+o2) = ho2     + co2
+    ! iupac 2006
+    kmt05  = (1 + (m/4.2d19))
+
+    ! kmt06  : ho2      + ho2     = h2o2    + o2
+    ! water enhancement factor
+    ! iupac 1992
+
+    kmt06  = 1 + (1.40d-21*EXP(2200.0/temp)*h2o)
+
+    ! kmt06  = 1 + (2.00d-25*EXP(4670.0/temp)*h2o)
+    ! S+R 2005 values
+
+    ! kmt07  : oh       + no      = hono
+
+    ! iupac 2006, mcmv3.2
+    k70     = 7.40d-31*m*(temp/300.0)**(-2.4)
+    k7i     = 3.30d-11*(temp/300.0)**(-0.3)
+    kr7     = k70/k7i
+    fc7     = EXP(-temp/1420.0)
+    nc7     = 0.75-(1.27*dlog10(fc7))
+    f7      = 10**(dlog10(fc7)/(1+((dlog10(kr7)/nc7))**2))
+    kmt07   = (k70*k7i)*f7/(k70+k7i)
+
+    ! kmt08  : oh       + no2     = hno3
+
+    ! iupac 2006, mcmv3.2
+    k80     = 3.30d-30*m*(temp/300.0)**(-3.0)
+    k8i     = 4.10d-11
+    kr8     = k80/k8i
+    fc8     = 0.4
+    nc8     = 0.75-(1.27*dlog10(fc8))
+    f8      = 10**(dlog10(fc8)/(1+((dlog10(kr8)/nc8))**2))
+    kmt08   = (k80*k8i)*f8/(k80+k8i)
+
+    ! kmt09  : ho2      + no2     = ho2no2
+    ! iupac 1997, mcmv3.2
+
+    k90     = 1.80d-31*m*(temp/300.0)**(-3.2)
+    k9i     = 4.70d-12
+    kr9     = k90/k9i
+    fc9     = 0.6
+    nc9     = 0.75-(1.27*dlog10(fc9))
+    f9      = 10**(dlog10(fc9)/(1+((dlog10(kr9)/nc9))**2))
+    kmt09   = (k90*k9i)*f9/(k90+k9i)
+
+    ! kmt10  : ho2no2             = ho2     + no2
+    ! iupac 1997, mcmv3.2
+
+    k100     = 4.10d-05*m*EXP(-10650.0/temp)
+    k10i     = 4.80d+15*EXP(-11170.0/temp)
+    kr10     = k100/k10i
+    fc10     = 0.6
+    nc10     = 0.75-(1.27*dlog10(fc10))
+    f10      = 10**(dlog10(fc10)/(1+((dlog10(kr10)/nc10))**2))
+    kmt10    = (k100*k10i)*f10/(k100+k10i)
+
+    ! kmt11  : oh       + hno3    = h2o     + no3
+    ! iupac 2006, mcmv3.2
+
+    k1     = 2.40d-14*EXP(460.0/temp)
+    k3     = 6.50d-34*EXP(1335.0/temp)
+    k4     = 2.70d-17*EXP(2199.0/temp)
+    k2     = (k3*m)/(1+(k3*m/k4))
+    kmt11  = k1 + k2
+
+    ! kmt12 iupac 2006, mcmv3.2
+
+    k120 = 4.50d-31*((temp/300.0)**(-3.9))*m
+    k12i = 1.30d-12*((temp/300.0)**(-0.7))
+    kr12 = k120/k12i
+    fc12 = 0.525
+    nc12 = 0.75-(1.27*dlog10(fc12))
+    f12  = 10**(dlog10(fc12)/(1.+((dlog10(kr12)/nc12))**2))
+    kmt12    = (k120*k12i)*f12/(k120+k12i)
+
+    ! kmt13  : ch3o2    + no2     = ch3o2no2
+    ! iupac 2006
+
+    k130     = 2.50d-30*((temp/300.0)**(-5.5))*m
+    k13i     = 1.80d-11
+    kr13     = k130/k13i
+    fc13     = 0.36
+    nc13     = 0.75-(1.27*dlog10(fc13))
+    f13      = 10**(dlog10(fc13)/(1+((dlog10(kr13)/nc13))**2))
+    kmt13    = (k130*k13i)*f13/(k130+k13i)
+
+    ! kmt14  : ch3o2no2           = ch3o2   + no2
+    ! iupac 2006, mcmv3.2
+
+    k140     = 9.00d-05*EXP(-9690.0/temp)*m
+    k14i     = 1.10d+16*EXP(-10560.0/temp)
+    kr14     = k140/k14i
+    fc14     = 0.4
+    nc14     = 0.75-(1.27*dlog10(fc14))
+    f14      = 10**(dlog10(fc14)/(1+((dlog10(kr14)/nc14))**2))
+    kmt14    = (k140*k14i)*f14/(k140+k14i)
+
+    ! kmt15 iupac 2006, mcmv3.2
+
+    k150 = 8.60d-29*((temp/300.0)**(-3.1))*m
+    k15i = 9.00d-12*((temp/300.0)**(-0.85))
+    kr15 = k150/k15i
+    fc15 = 0.48
+    nc15 = 0.75-(1.27*dlog10(fc15))
+    f15  = 10**(dlog10(fc15)/(1+((dlog10(kr15)/nc15))**2))
+    kmt15 = (k150*k15i)*f15/(k150+k15i)
+
+    ! kmt16  :  oh  +  c3h6
+    ! iupac 2006
+
+    k160     = 8.00d-27*((temp/300.0)**(-3.5))*m
+    k16i     = 3.00d-11*((temp/300.0)**(-1.0))
+    kr16     = k160/k16i
+    fc16     = 0.5
+    nc16     = 0.75-(1.27*dlog10(fc16))
+    f16      = 10**(dlog10(fc16)/(1+((dlog10(kr16)/nc16))**2))
+    kmt16    = (k160*k16i)*f16/(k160+k16i)
+
+    ! kmt17 iupac 2006
+
+    k170 = 5.00d-30*((temp/300.0)**(-1.5))*m
+    k17i = 1.00d-12
+    kr17 = k170/k17i
+    fc17 = (0.17*EXP(-51./temp))+EXP(-temp/204.)
+    nc17 = 0.75-(1.27*dlog10(fc17))
+    f17  = 10**(dlog10(fc17)/(1+((dlog10(kr17)/nc17))**2))
+    kmt17 = (k170*k17i)*f17/(k170+k17i)
+
+    ! kmt18 2011 oh + dms
+
+    !kmt18=(9.5d-39*O2*EXP(5270./TEMP))/(1+7.5d-29*O2*exp(5610./TEMP))
+
+    !       mcm v3.2
+
+    !kroprim  = 2.50d-14*EXP(-300.0/temp)
+    !krosec   = 2.50d-14*EXP(-300.0/temp)
+
+  
+  END SUBROUTINE mcm_constants
+
+  !***************************************************************************
+
+      
+END MODULE constants
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/MCM/mcm_init_cons.dat
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/MCM/mcm_init_cons.dat	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/MCM/mcm_init_cons.dat	(revision 2696)
@@ -0,0 +1,542 @@
+-1
+           JDAY!            LAT!            LON!          PRESS!           TEMP!             O3!             CO!            H2O!             NO!           JO1D!           JNO2!            NO2!           HCHO!           C2H6!           C3H8!         IC4H10!         NC4H10!           C2H4!           C3H6!           C5H8!          CH3OH!         C2H5OH!       CH3COCH3!            MEK!            MVK!           MACR!            PAN!           C2H2!        APINENE!        BPINENE!       LIMONENE!         IC5H12!         NC5H12!          M22C4!           CHEX!          M23C4!           M2PE!           M3PE!         NC6H14!         NC8H18!       TBUT2ENE!        BUT1ENE!      MEPROPENE!       CBUT2ENE!           C4H6!        BENZENE!        TOLUENE!          EBENZ!           MXYL!           PXYL!           OXYL!            NOx!
+              0!              0!              0!              0!              0!              1!              1!              1!              1!              1!              1!              0!              1!              1!              1!              1!              1!              1!              1!              1!              1!              1!              1!              1!              1!              1!              1!              1!              1!              1!              1!              1!              1!              1!              1!              1!              1!              1!              1!              1!              1!              1!              1!              1!              1!              1!              1!              1!              1!              1!              1!              1!
+ 2.18571500e+02! 1.56390000e+01! 4.50670000e+00! 4.65180000e+02! 2.63470000e+02! 6.48590000e-08! 8.12880000e-08! 1.71500000e-03! 5.18490000e-11! 8.49870000e-05! 1.17920000e-02! 0.00000000e+00! 2.59409993e-10! 5.78250003e-10! 2.66100007e-11! 2.04999993e-12! 3.34999996e-12! 2.17099984e-11! 1.34700003e-11! 7.59999980e-11! 7.36259997e-10! 0.00000000e+00! 8.05249978e-10! 4.34989988e-10! 2.94974982e-11! 1.32524998e-11! 1.37999986e-10! 7.59499963e-11! 1.64508233e-11! 1.02065622e-11! 2.20254179e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.62999994e-12! 3.90000011e-12! 3.97000011e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 8.76000054e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18572200e+02! 1.56920000e+01! 4.56430000e+00! 4.65190000e+02! 2.63610000e+02! 7.47060000e-08! 7.68000000e-08! 9.17480000e-04! 2.56790000e-11! 8.40390000e-05! 1.17980000e-02! 0.00000000e+00! 2.10109999e-10! 5.43575684e-10! 2.98058141e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 7.83480017e-11! 0.00000000e+00! 0.00000000e+00! 6.70200007e-10! 0.00000000e+00! 1.28546991e-11! 5.77529951e-12! 0.00000000e+00! 0.00000000e+00! 1.65206321e-11! 1.02335102e-11! 2.20688780e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18572900e+02! 1.57460000e+01! 4.62290000e+00! 4.65200000e+02! 2.63490000e+02! 7.67710000e-08! 7.21770000e-08! 7.55530000e-04! 6.32130000e-12! 8.32690000e-05! 1.17900000e-02! 6.65490024e-11! 1.77820009e-10! 5.20067878e-10! 2.55773874e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 5.32919993e-11! 0.00000000e+00! 0.00000000e+00! 7.43559991e-10! 0.00000000e+00! 1.35122694e-11! 6.07072986e-12! 1.29999997e-10! 0.00000000e+00! 1.57756950e-11! 9.94595031e-12! 2.16051031e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.57499994e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18573600e+02! 1.58000000e+01! 4.68230000e+00! 4.65270000e+02! 2.63710000e+02! 7.86030000e-08! 7.23600000e-08! 7.06490000e-04! 6.80000000e-12! 8.26770000e-05! 1.17910000e-02! 8.34499969e-11! 1.68109998e-10! 5.20998411e-10! 2.57447674e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.20530003e-10! 0.00000000e+00! 0.00000000e+00! 7.08829995e-10! 0.00000000e+00! 2.74088686e-11! 1.23141298e-11! 1.26000002e-10! 0.00000000e+00! 1.77747383e-11! 1.07176178e-11! 2.28496458e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18574300e+02! 1.58560000e+01! 4.74230000e+00! 4.65400000e+02! 2.63550000e+02! 7.90620000e-08! 7.25010000e-08! 9.16960000e-04! 1.38000000e-12! 8.52310000e-05! 1.21830000e-02! 6.75679998e-11! 1.96670000e-10! 5.21715393e-10! 2.58737337e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.03719998e-10! 0.00000000e+00! 0.00000000e+00! 7.68299979e-10! 0.00000000e+00! 8.92583923e-12! 4.01015983e-12! 0.00000000e+00! 0.00000000e+00! 1.72749627e-11! 1.05246957e-11! 2.25385023e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.54259998e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18575000e+02! 1.59110000e+01! 4.80290000e+00! 4.65470000e+02! 2.63580000e+02! 7.71510000e-08! 7.73860000e-08! 1.68860000e-03! 1.43000000e-12! 8.32480000e-05! 1.20210000e-02! 1.08989998e-10! 2.36130004e-10! 5.46555468e-10! 3.03417985e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.05600001e-10! 0.00000000e+00! 0.00000000e+00! 8.57739990e-10! 0.00000000e+00! 1.68539401e-11! 7.57206017e-12! 2.50999971e-10! 0.00000000e+00! 1.73308555e-11! 1.05462713e-11! 2.25732991e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.38510002e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18576400e+02! 1.60220000e+01! 4.92380000e+00! 4.65480000e+02! 2.63550000e+02! 6.99150000e-08! 7.72390000e-08! 3.48420000e-03! 1.90020000e-11! 8.55880000e-05! 1.24950000e-02! 1.01040003e-10! 2.15800003e-10! 5.45807954e-10! 3.02073436e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.83330009e-11! 0.00000000e+00! 0.00000000e+00! 8.98000008e-10! 0.00000000e+00! 4.60002316e-13! 2.06667704e-13! 0.00000000e+00! 0.00000000e+00! 1.50336410e-11! 9.65950497e-12! 2.11431237e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18577100e+02! 1.60770000e+01! 4.98390000e+00! 4.65970000e+02! 2.63500000e+02! 6.93960000e-08! 7.71570000e-08! 3.81480000e-03! 2.93170000e-11! 8.20890000e-05! 1.21520000e-02! 3.27769999e-11! 1.77789991e-10! 5.45391010e-10! 3.01323445e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.93999991e-10! 0.00000000e+00! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18577800e+02! 1.61250000e+01! 5.04690000e+00! 4.65510000e+02! 2.63640000e+02! 6.82480000e-08! 7.79580000e-08! 4.16610000e-03! 3.15730000e-11! 7.92890000e-05! 1.19160000e-02! 7.61490038e-11! 2.01800007e-10! 5.49464030e-10! 3.08649772e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 6.14829992e-11! 0.00000000e+00! 0.00000000e+00! 9.08590037e-10! 0.00000000e+00! 1.50371694e-11! 6.75582940e-12! 0.00000000e+00! 0.00000000e+00! 1.60192207e-11! 1.00399558e-11! 2.17567162e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.94480005e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18578500e+02! 1.60950000e+01! 5.09800000e+00! 4.65200000e+02! 2.63400000e+02! 6.33670000e-08! 8.05170000e-08! 4.64980000e-03! 3.84970000e-11! 8.72820000e-05! 1.17510000e-02! 4.83869993e-11! 2.17769996e-10! 5.62476510e-10! 3.32055668e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 5.99790009e-11! 0.00000000e+00! 0.00000000e+00! 9.99110017e-10! 0.00000000e+00! 4.16939365e-11! 1.87320593e-11! 2.37000003e-10! 0.00000000e+00! 1.59745047e-11! 1.00226945e-11! 2.17288756e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18579200e+02! 1.60250000e+01! 5.06380000e+00! 4.65190000e+02! 2.63190000e+02! 6.37190000e-08! 7.98940000e-08! 4.33780000e-03! 3.10550000e-11! 8.40050000e-05! 1.20000000e-02! 4.48139997e-11! 1.87699994e-10! 5.59308599e-10! 3.26357413e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.01469999e-10! 0.00000000e+00! 0.00000000e+00! 9.52889989e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.91999980e-10! 0.00000000e+00! 1.72080683e-11! 1.04988726e-11! 2.24968551e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 6.93620031e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18579900e+02! 1.59640000e+01! 5.00240000e+00! 4.65260000e+02! 2.63060000e+02! 6.49860000e-08! 8.09140000e-08! 4.27220000e-03! 3.91550000e-11! 8.29410000e-05! 1.20210000e-02! 0.00000000e+00! 2.05029993e-10! 5.64495228e-10! 3.35686826e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 8.40000014e-11! 0.00000000e+00! 0.00000000e+00! 9.72749992e-10! 0.00000000e+00! 1.63874990e-11! 7.36249950e-12! 0.00000000e+00! 0.00000000e+00! 1.66886713e-11! 1.02983759e-11! 2.21734939e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 8.50000018e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18580600e+02! 1.59040000e+01! 4.93890000e+00! 4.65340000e+02! 2.63010000e+02! 6.43370000e-08! 8.17090000e-08! 4.41410000e-03! 4.71260000e-11! 8.23430000e-05! 1.19860000e-02! 0.00000000e+00! 2.28259994e-10! 5.68537772e-10! 3.42958301e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 7.68480002e-11! 0.00000000e+00! 0.00000000e+00! 9.99299976e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.16999982e-10! 2.01119460e-12! 1.64760341e-11! 1.02162940e-11! 2.20411120e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18588900e+02! 1.57640000e+01! 4.75830000e+00! 4.65110000e+02! 2.63090000e+02! 6.80920000e-08! 7.66150000e-08! 3.01640000e-03! 2.68940000e-11! 6.96510000e-05! 1.17440000e-02! 0.00000000e+00! 3.28799987e-10! 5.42634937e-10! 2.96366022e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 5.08479994e-11! 0.00000000e+00! 0.00000000e+00! 8.86780038e-10! 0.00000000e+00! 2.85597882e-11! 1.28312092e-11! 2.86000001e-10! 0.00000000e+00! 1.57030326e-11! 9.91790157e-12! 2.15598650e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18589600e+02! 1.58250000e+01! 4.69450000e+00! 4.65210000e+02! 2.63410000e+02! 7.75700000e-08! 7.09100000e-08! 1.14180000e-03! 1.57610000e-11! 6.94400000e-05! 1.18240000e-02! 3.18740000e-11! 3.12130016e-10! 5.13625198e-10! 2.44185262e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 7.36039979e-11! 0.00000000e+00! 0.00000000e+00! 7.78669962e-10! 0.00000000e+00! 1.91902796e-11! 8.62171966e-12! 2.86000001e-10! 0.00000000e+00! 1.63795869e-11! 1.01790651e-11! 2.19810697e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18590300e+02! 1.58890000e+01! 4.63730000e+00! 4.65560000e+02! 2.63770000e+02! 7.80180000e-08! 7.18140000e-08! 1.38360000e-03! 2.47000000e-12! 6.63140000e-05! 1.18300000e-02! 9.52720056e-11! 3.49750007e-10! 5.18221965e-10! 2.52453683e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.61489978e-11! 0.00000000e+00! 0.00000000e+00! 8.16640033e-10! 0.00000000e+00! 8.80853984e-12! 3.95745979e-12! 0.00000000e+00! 0.00000000e+00! 1.55633267e-11! 9.86397249e-12! 2.14728912e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18591000e+02! 1.59450000e+01! 4.66660000e+00! 4.65360000e+02! 2.63900000e+02! 7.75390000e-08! 7.27330000e-08! 1.45040000e-03! 6.20000000e-13! 7.04390000e-05! 1.18660000e-02! 1.14830000e-10! 3.36790013e-10! 5.22895061e-10! 2.60859320e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 5.82919962e-11! 0.00000000e+00! 0.00000000e+00! 7.29059979e-10! 0.00000000e+00! 2.64787497e-11! 1.18962496e-11! 5.89999993e-11! 0.00000000e+00! 1.59243486e-11! 1.00033341e-11! 2.16976506e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.45209999e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18591700e+02! 1.59410000e+01! 4.74450000e+00! 4.65360000e+02! 2.63460000e+02! 7.49170000e-08! 7.33770000e-08! 2.00920000e-03! 3.66440000e-12! 7.42090000e-05! 1.18560000e-02! 1.45469997e-10! 3.00920011e-10! 5.26169774e-10! 2.66749661e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.13039991e-11! 0.00000000e+00! 0.00000000e+00! 8.56109961e-10! 0.00000000e+00! 1.35150294e-11! 6.07196975e-12! 3.79999976e-10! 0.00000000e+00! 1.69058240e-11! 1.03822012e-11! 2.23086879e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18592400e+02! 1.59450000e+01! 4.82300000e+00! 4.65490000e+02! 2.63330000e+02! 7.43980000e-08! 7.35570000e-08! 2.32160000e-03! 2.65240000e-12! 7.03550000e-05! 1.16640000e-02! 1.04309998e-10! 2.65920008e-10! 5.27085098e-10! 2.68396035e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.29999986e-11! 0.00000000e+00! 0.00000000e+00! 8.80000017e-10! 0.00000000e+00! 2.27699994e-11! 1.02300000e-11! 0.00000000e+00! 0.00000000e+00! 1.51723963e-11! 9.71306629e-12! 2.12295077e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18593100e+02! 1.59890000e+01! 4.89060000e+00! 4.65330000e+02! 2.63370000e+02! 7.18900000e-08! 7.44840000e-08! 2.89290000e-03! 8.69070000e-12! 6.80030000e-05! 1.17780000e-02! 1.09980004e-10! 2.22690005e-10! 5.31798883e-10! 2.76874842e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 7.09999975e-11! 0.00000000e+00! 0.00000000e+00! 7.10999981e-10! 0.00000000e+00! 1.72500000e-11! 7.74999943e-12! 1.72999989e-10! 0.00000000e+00! 1.63021697e-11! 1.01491792e-11! 2.19328705e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18593800e+02! 1.60460000e+01! 4.94980000e+00! 4.65350000e+02! 2.63430000e+02! 6.72010000e-08! 7.59220000e-08! 3.83100000e-03! 2.99740000e-11! 6.71140000e-05! 1.18340000e-02! 0.00000000e+00! 1.95179997e-10! 5.39111089e-10! 2.90027499e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 6.28119987e-11! 0.00000000e+00! 0.00000000e+00! 8.43400016e-10! 0.00000000e+00! 8.05022986e-13! 3.61676997e-13! 3.56999985e-10! 0.00000000e+00! 1.60587325e-11! 1.00552084e-11! 2.17813146e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 6.62500003e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18595100e+02! 1.61580000e+01! 5.07200000e+00! 4.65430000e+02! 2.63550000e+02! 6.00010000e-08! 7.98480000e-08! 4.83350000e-03! 6.56190000e-11! 6.59150000e-05! 1.18100000e-02! 0.00000000e+00! 1.97920000e-10! 5.59074620e-10! 3.25936673e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.60429984e-11! 0.00000000e+00! 0.00000000e+00! 8.86169971e-10! 0.00000000e+00! 1.01298895e-12! 4.55110992e-13! 2.84999996e-10! 0.00000000e+00! 1.52628674e-11! 9.74798974e-12! 2.12858325e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.02550000e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18595800e+02! 1.62140000e+01! 5.13320000e+00! 4.65440000e+02! 2.63610000e+02! 6.06640000e-08! 7.98160000e-08! 4.86140000e-03! 6.95860000e-11! 6.60800000e-05! 1.19090000e-02! 0.00000000e+00! 2.41440007e-10! 5.78949999e-10! 2.17199991e-11! 0.00000000e+00! 2.51000002e-12! 5.11999991e-12! 2.99999999e-12! 4.01279981e-11! 8.78989992e-10! 0.00000000e+00! 9.93469973e-10! 1.67690001e-10! 0.00000000e+00! 0.00000000e+00! 3.54999974e-10! 7.95899943e-11! 1.53843171e-11! 9.79487151e-12! 2.13614439e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.90999993e-12! 0.00000000e+00! 2.69999995e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.50000020e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18596500e+02! 1.62700000e+01! 5.19430000e+00! 4.65350000e+02! 2.63840000e+02! 6.14600000e-08! 7.86060000e-08! 4.44900000e-03! 4.45970000e-11! 6.70870000e-05! 1.21240000e-02! 0.00000000e+00! 2.72749989e-10! 5.52759116e-10! 3.14576733e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.65000024e-11! 0.00000000e+00! 0.00000000e+00! 9.45750034e-10! 0.00000000e+00! 2.06999990e-11! 9.30000001e-12! 0.00000000e+00! 0.00000000e+00! 1.70603063e-11! 1.04418340e-11! 2.24048627e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18597200e+02! 1.63250000e+01! 5.25470000e+00! 4.65320000e+02! 2.63720000e+02! 6.21530000e-08! 7.86260000e-08! 4.45060000e-03! 4.45350000e-11! 6.67840000e-05! 1.21890000e-02! 0.00000000e+00! 2.57160016e-10! 5.52860813e-10! 3.14759642e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.98040004e-11! 0.00000000e+00! 0.00000000e+00! 9.43090050e-10! 0.00000000e+00! 1.45500300e-12! 6.53696986e-13! 3.43999995e-10! 0.00000000e+00! 1.53746842e-11! 9.79115313e-12! 2.13554469e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.54349992e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18597900e+02! 1.63790000e+01! 5.31430000e+00! 4.65440000e+02! 2.63820000e+02! 6.34650000e-08! 7.79710000e-08! 4.14350000e-03! 3.94280000e-11! 6.56300000e-05! 1.21140000e-02! 0.00000000e+00! 2.09559994e-10! 5.49530144e-10! 3.08768705e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.51060006e-11! 0.00000000e+00! 0.00000000e+00! 9.50299950e-10! 0.00000000e+00! 1.79255100e-11! 8.05349017e-12! 0.00000000e+00! 0.00000000e+00! 1.49377004e-11! 9.62246862e-12! 2.10833954e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.93829987e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18598600e+02! 1.64330000e+01! 5.37360000e+00! 4.65560000e+02! 2.63410000e+02! 6.43200000e-08! 7.95000000e-08! 4.48670000e-03! 4.50740000e-11! 6.46320000e-05! 1.20050000e-02! 0.00000000e+00! 1.71300002e-10! 5.57305091e-10! 3.22753664e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 8.79380041e-11! 0.00000000e+00! 0.00000000e+00! 9.59729962e-10! 0.00000000e+00! 2.11312500e-12! 9.49375019e-13! 4.11000012e-10! 0.00000000e+00! 1.68057495e-11! 1.03435706e-11! 2.22463836e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18599300e+02! 1.64870000e+01! 5.43260000e+00! 4.65280000e+02! 2.63250000e+02! 6.17310000e-08! 8.09820000e-08! 4.72150000e-03! 3.38190000e-11! 6.38530000e-05! 1.19530000e-02! 2.10549998e-11! 1.93210004e-10! 5.64841007e-10! 3.36308793e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 5.34469968e-11! 0.00000000e+00! 0.00000000e+00! 9.80829973e-10! 0.00000000e+00! 1.23468588e-11! 5.54713957e-12! 2.64999966e-10! 0.00000000e+00! 1.57803024e-11! 9.94772927e-12! 2.16079724e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.52770002e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18624300e+02! 1.67140000e+01! 5.60070000e+00! 9.47800000e+02! 3.04890000e+02! 4.00730000e-08! 8.07110000e-08! 2.16910000e-02! 7.93900000e-11! 1.68380000e-05! 6.05380000e-03! 1.59449995e-10! 4.42129999e-10! 5.63462998e-10! 3.33830116e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.00859998e-09! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.09999995e-11! 0.00000000e+00! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 6.99999997e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18625000e+02! 1.66790000e+01! 5.55000000e+00! 9.46450000e+02! 3.04750000e+02! 4.07550000e-08! 8.05420000e-08! 2.17330000e-02! 7.26460000e-11! 1.68880000e-05! 6.07750000e-03! 1.31000003e-10! 4.72660022e-10! 5.62603630e-10! 3.32284339e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.04719999e-09! 0.00000000e+00! 5.25931772e-12! 2.36288203e-12! 1.99999982e-11! 0.00000000e+00! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18625700e+02! 1.66420000e+01! 5.50070000e+00! 9.48000000e+02! 3.04880000e+02! 4.11280000e-08! 8.04960000e-08! 2.15430000e-02! 9.13300000e-11! 1.69920000e-05! 6.11880000e-03! 0.00000000e+00! 4.93259988e-10! 5.62369706e-10! 3.31863599e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.09999998e-09! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.99999982e-11! 0.00000000e+00! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 8.59570054e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18627100e+02! 1.65510000e+01! 5.41440000e+00! 9.46470000e+02! 3.04820000e+02! 4.10810000e-08! 8.01790000e-08! 2.11080000e-02! 8.86000000e-11! 1.74970000e-05! 6.31250000e-03! 3.27330003e-11! 4.66179984e-10! 5.60757774e-10! 3.28964148e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.34490041e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.89999995e-11! 0.00000000e+00! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.25319997e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18627800e+02! 1.65040000e+01! 5.37210000e+00! 9.46970000e+02! 3.04780000e+02! 4.13270000e-08! 8.05820000e-08! 2.11150000e-02! 9.51070000e-11! 1.76670000e-05! 6.40550000e-03! 2.43519996e-11! 4.65079975e-10! 5.62807023e-10! 3.32650192e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.07680009e-09! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.89999995e-11! 0.00000000e+00! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 5.30000002e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18628500e+02! 1.64580000e+01! 5.32750000e+00! 9.47400000e+02! 3.04920000e+02! 4.09410000e-08! 8.05820000e-08! 2.08230000e-02! 8.47950000e-11! 1.70980000e-05! 6.26760000e-03! 6.49720000e-11! 4.62299976e-10! 5.62807023e-10! 3.32650192e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.17609993e-11! 0.00000000e+00! 0.00000000e+00! 1.07159992e-09! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.20000000e-11! 0.00000000e+00! 1.45409414e-11! 9.46931335e-12! 2.08363830e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.79780000e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18629200e+02! 1.64140000e+01! 5.28570000e+00! 9.47180000e+02! 3.04910000e+02! 4.07790000e-08! 8.05590000e-08! 2.10400000e-02! 8.05140000e-11! 1.71250000e-05! 6.36650000e-03! 6.94850011e-11! 4.36329972e-10! 5.62690061e-10! 3.32439840e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.07880005e-09! 0.00000000e+00! 4.65749965e-12! 2.09250000e-12! 1.89999995e-11! 0.00000000e+00! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.20000007e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18629900e+02! 1.63680000e+01! 5.24360000e+00! 9.45810000e+02! 3.04980000e+02! 4.06030000e-08! 8.09600000e-08! 2.10910000e-02! 8.46320000e-11! 1.48250000e-05! 5.40990000e-03! 0.00000000e+00! 4.28790004e-10! 5.64729097e-10! 3.36107565e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.02169986e-12! 0.00000000e+00! 0.00000000e+00! 1.02450004e-09! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.42811145e-11! 9.36901598e-12! 2.06746252e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.62830010e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18630600e+02! 1.63230000e+01! 5.20190000e+00! 9.45730000e+02! 3.05010000e+02! 3.98140000e-08! 8.08800000e-08! 2.07340000e-02! 7.72470000e-11! 1.50850000e-05! 5.77540000e-03! 0.00000000e+00! 4.21329999e-10! 5.64322311e-10! 3.35375859e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.33330005e-11! 0.00000000e+00! 0.00000000e+00! 1.07819997e-09! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.48849873e-11! 9.60212118e-12! 2.10505762e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.34379998e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18631300e+02! 1.62780000e+01! 5.15960000e+00! 9.44520000e+02! 3.04680000e+02! 3.97660000e-08! 8.26230000e-08! 2.24280000e-02! 6.80320000e-11! 1.36330000e-05! 4.73900000e-03! 6.95290006e-11! 4.16670004e-10! 5.73185444e-10! 3.51318211e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.06480003e-09! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.39999999e-11! 8.43306848e-12! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.01060002e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18632600e+02! 1.61920000e+01! 5.07080000e+00! 9.44710000e+02! 3.03610000e+02! 4.10320000e-08! 8.65900000e-08! 2.44860000e-02! 8.24780000e-11! 1.64260000e-05! 6.31210000e-03! 1.10319996e-10! 4.58799998e-10! 5.93357530e-10! 3.87602381e-11! 1.40695376e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 5.10640033e-13! 0.00000000e+00! 0.00000000e+00! 1.04819997e-09! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.09999986e-11! 3.63056876e-11! 1.42064581e-11! 9.34019615e-12! 2.06281450e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.41279999e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18633300e+02! 1.61500000e+01! 5.02540000e+00! 9.47970000e+02! 3.03670000e+02! 4.09570000e-08! 8.69080000e-08! 2.46440000e-02! 8.35120000e-11! 1.58300000e-05! 6.10990000e-03! 1.34240008e-10! 4.59540017e-10! 5.94974570e-10! 3.90510992e-11! 1.65068176e-12! 0.00000000e+00! 7.00843734e-13! 0.00000000e+00! 2.99999999e-12! 0.00000000e+00! 0.00000000e+00! 1.03450004e-09! 0.00000000e+00! 8.62499959e-13! 3.87499982e-13! 2.09999986e-11! 3.85399941e-11! 1.42804692e-11! 9.36876618e-12! 2.06742228e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.87500006e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18634000e+02! 1.61110000e+01! 4.97940000e+00! 9.46800000e+02! 3.03460000e+02! 4.10470000e-08! 8.68730000e-08! 2.45760000e-02! 7.93000000e-11! 1.56590000e-05! 6.07340000e-03! 1.06040003e-10! 5.10260001e-10! 5.94796545e-10! 3.90190831e-11! 1.62385632e-12! 0.00000000e+00! 5.36063815e-13! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.01499997e-09! 0.00000000e+00! 1.55249999e-12! 6.97500000e-13! 2.59999990e-11! 3.82940797e-11! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 5.30000002e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18634700e+02! 1.60720000e+01! 4.93380000e+00! 9.47340000e+02! 3.03380000e+02! 4.09050000e-08! 8.66370000e-08! 2.44420000e-02! 7.89950000e-11! 1.54430000e-05! 6.09850000e-03! 6.30750036e-11! 6.10020034e-10! 5.93596505e-10! 3.88032280e-11! 1.44297649e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.21079995e-11! 0.00000000e+00! 0.00000000e+00! 1.00450004e-09! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.66359131e-11! 1.45512578e-11! 9.47329541e-12! 2.08428084e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 6.89190024e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18635400e+02! 1.60310000e+01! 4.88930000e+00! 9.45850000e+02! 3.03160000e+02! 4.16030000e-08! 8.73680000e-08! 2.46660000e-02! 9.39430000e-11! 1.53210000e-05! 6.10010000e-03! 7.57379992e-11! 6.03340045e-10! 5.97313643e-10! 3.94718355e-11! 2.00324414e-12! 0.00000000e+00! 2.86652408e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.07099996e-09! 0.00000000e+00! 1.22185194e-12! 5.48947986e-13! 2.59999990e-11! 4.17720060e-11! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.32289994e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18636100e+02! 1.59890000e+01! 4.84610000e+00! 9.46910000e+02! 3.03010000e+02! 4.20290000e-08! 8.70890000e-08! 2.44620000e-02! 9.54570000e-11! 1.51790000e-05! 6.09260000e-03! 7.99000033e-11! 5.46700019e-10! 5.95894889e-10! 3.92166473e-11! 1.78940738e-12! 0.00000000e+00! 1.55299189e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.52599999e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.19999972e-11! 3.98117234e-11! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.73619989e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18636800e+02! 1.59460000e+01! 4.80350000e+00! 9.45690000e+02! 3.02980000e+02! 4.19310000e-08! 8.67370000e-08! 2.41530000e-02! 8.50260000e-11! 1.49170000e-05! 6.01600000e-03! 8.42799996e-11! 5.02130004e-10! 5.94105043e-10! 3.88946930e-11! 1.51962058e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.27659992e-12! 0.00000000e+00! 0.00000000e+00! 1.04519993e-09! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.73385281e-11! 1.42589612e-11! 9.36046379e-12! 2.06608324e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.27020008e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18637500e+02! 1.59010000e+01! 4.76310000e+00! 9.46280000e+02! 3.02750000e+02! 4.27830000e-08! 8.66880000e-08! 2.42860000e-02! 1.08560000e-10! 1.46560000e-05! 5.88840000e-03! 3.91799995e-11! 4.89750018e-10! 5.93855853e-10! 3.88498712e-11! 1.48206490e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.01719999e-09! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.29999986e-11! 3.69942479e-11! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.64670004e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18641700e+02! 1.56960000e+01! 4.72520000e+00! 9.48880000e+02! 3.02790000e+02! 4.20110000e-08! 8.58520000e-08! 2.40990000e-02! 1.35100000e-10! 1.34170000e-05! 5.72660000e-03! 2.82119994e-10! 5.48460000e-10! 5.89604809e-10! 3.80852225e-11! 8.41321099e-13! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.02319997e-09! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.90000011e-11! 3.11204118e-11! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18642400e+02! 1.56990000e+01! 4.79480000e+00! 9.47110000e+02! 3.02080000e+02! 4.21910000e-08! 8.71170000e-08! 2.51710000e-02! 1.51540000e-10! 1.35140000e-05! 5.92280000e-03! 3.61439989e-10! 5.67750014e-10! 5.96037275e-10! 3.92422553e-11! 1.81086765e-12! 0.00000000e+00! 1.68481581e-12! 0.00000000e+00! 1.74999999e-12! 0.00000000e+00! 0.00000000e+00! 1.03999998e-09! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.00084549e-11! 1.42433053e-11! 9.35442088e-12! 2.06510867e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.40000007e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18643100e+02! 1.57250000e+01! 4.84780000e+00! 9.49020000e+02! 3.02230000e+02! 4.24830000e-08! 8.77790000e-08! 2.54940000e-02! 1.44510000e-10! 1.28380000e-05! 5.89990000e-03! 3.75450004e-10! 5.63800007e-10! 5.99403582e-10! 3.98477536e-11! 2.31825084e-12! 0.00000000e+00! 4.80151162e-12! 3.08372766e-13! 8.60869969e-12! 0.00000000e+00! 0.00000000e+00! 1.00420006e-09! 0.00000000e+00! 6.54002677e-12! 2.93827289e-12! 5.69999985e-11! 4.46597447e-11! 1.44472203e-11! 9.43313483e-12! 2.07780373e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.03700008e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18643800e+02! 1.57810000e+01! 4.83210000e+00! 9.47720000e+02! 3.02630000e+02! 4.15500000e-08! 8.75010000e-08! 2.44300000e-02! 1.31050000e-10! 1.21780000e-05! 5.78260000e-03! 2.66959982e-10! 5.82379978e-10! 5.77099979e-10! 2.93900008e-11! 3.60999989e-12! 3.90000011e-12! 1.19500000e-11! 2.55772847e-14! 8.56249967e-12! 2.30719999e-09! 0.00000000e+00! 9.76460024e-10! 4.14649981e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 8.02500011e-11! 1.44458473e-11! 9.43260487e-12! 2.07771821e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.19999972e-12! 0.00000000e+00! 2.36999981e-12! 0.00000000e+00! 0.00000000e+00! 3.27710012e-11! 4.82000030e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18644400e+02! 1.58330000e+01! 4.79870000e+00! 9.48310000e+02! 3.02790000e+02! 4.28360000e-08! 8.70100000e-08! 2.42750000e-02! 1.05530000e-10! 1.18070000e-05! 5.68710000e-03! 2.15880008e-10! 5.79609971e-10! 5.95493210e-10! 3.91443891e-11! 1.72885859e-12! 0.00000000e+00! 1.18105981e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.92040006e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.40000007e-11! 3.92566570e-11! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.19149999e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18645100e+02! 1.58860000e+01! 4.76620000e+00! 9.49660000e+02! 3.03010000e+02! 4.23530000e-08! 8.74360000e-08! 2.41940000e-02! 9.87030000e-11! 1.14860000e-05! 5.61100000e-03! 2.96779989e-10! 5.51590051e-10! 5.97659422e-10! 3.95340323e-11! 2.05536196e-12! 0.00000000e+00! 3.18666794e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.65679980e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.59999981e-11! 4.22497870e-11! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.70209992e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18645800e+02! 1.59380000e+01! 4.73100000e+00! 9.51980000e+02! 3.03240000e+02! 4.28280000e-08! 8.76510000e-08! 2.46600000e-02! 9.86510000e-11! 1.15890000e-05! 5.72550000e-03! 1.47570012e-10! 5.09070008e-10! 5.98752659e-10! 3.97306806e-11! 2.22014659e-12! 0.00000000e+00! 4.19888777e-12! 1.78164775e-13! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.00330000e-09! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.37604016e-11! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18646500e+02! 1.59850000e+01! 4.69100000e+00! 9.53570000e+02! 3.03230000e+02! 4.29610000e-08! 8.79800000e-08! 2.49380000e-02! 8.34180000e-11! 1.13920000e-05! 5.63820000e-03! 1.08440000e-10! 5.03339981e-10! 6.00425654e-10! 4.00315996e-11! 2.47230535e-12! 0.00000000e+00! 5.74781975e-12! 5.12840042e-13! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.03519993e-09! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.19999999e-11! 4.60719934e-11! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.99999996e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18656900e+02! 1.58160000e+01! 4.71860000e+00! 9.07610000e+02! 2.98810000e+02! 4.35460000e-08! 8.69090000e-08! 2.41730000e-02! 1.00510000e-10! 1.05540000e-05! 5.60970000e-03! 1.77539997e-10! 0.00000000e+00! 5.60269997e-10! 3.06800002e-11! 2.47000012e-12! 2.04999993e-12! 1.25000002e-11! 2.91000015e-12! 1.90999994e-12! 1.70199999e-09! 0.00000000e+00! 9.94749949e-10! 1.44089990e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 8.01399988e-11! 1.42480619e-11! 9.35625622e-12! 2.06540462e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.06999998e-12! 0.00000000e+00! 2.61999992e-12! 0.00000000e+00! 0.00000000e+00! 2.60000008e-11! 2.24000007e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18659700e+02! 1.57290000e+01! 4.85990000e+00! 8.74710000e+02! 2.95780000e+02! 4.27690000e-08! 8.70920000e-08! 2.41100000e-02! 1.30440000e-10! 9.77300000e-06! 5.84680000e-03! 2.73880002e-10! 0.00000000e+00! 5.95910155e-10! 3.92193916e-11! 1.79170665e-12! 0.00000000e+00! 1.56711579e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.37679934e-10! 0.00000000e+00! 1.33597799e-12! 6.00221966e-13! 3.99999964e-11! 3.98327968e-11! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.01060010e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18660400e+02! 1.57820000e+01! 4.82230000e+00! 8.75020000e+02! 2.96020000e+02! 4.26320000e-08! 8.62140000e-08! 2.37710000e-02! 1.09820000e-10! 9.47150000e-06! 5.70980000e-03! 1.64530001e-10! 0.00000000e+00! 5.42120016e-10! 2.79899992e-11! 1.66999997e-12! 3.02000005e-12! 6.76999993e-12! 3.47999993e-12! 1.67649998e-12! 1.56369995e-09! 0.00000000e+00! 9.81030035e-10! 1.03910006e-10! 9.33500998e-13! 4.19398999e-13! 0.00000000e+00! 7.48099985e-11! 1.42411204e-11! 9.35357694e-12! 2.06497250e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.98999996e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.55880013e-11! 2.11999992e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18661100e+02! 1.58320000e+01! 4.78060000e+00! 8.75070000e+02! 2.95960000e+02! 4.30170000e-08! 8.69510000e-08! 2.41770000e-02! 1.13200000e-10! 9.24640000e-06! 5.65060000e-03! 1.31669994e-10! 0.00000000e+00! 5.42120016e-10! 2.79899992e-11! 1.66999997e-12! 3.02000005e-12! 6.76999993e-12! 3.47999993e-12! 1.60870004e-12! 1.56369995e-09! 0.00000000e+00! 9.92199989e-10! 1.03910006e-10! 0.00000000e+00! 0.00000000e+00! 4.19999972e-11! 7.48099985e-11! 1.42391038e-11! 9.35279805e-12! 2.06484690e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.98999996e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 7.36959972e-12! 2.11999992e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18661800e+02! 1.58840000e+01! 4.74190000e+00! 8.75110000e+02! 2.96070000e+02! 4.32980000e-08! 8.73880000e-08! 2.42440000e-02! 9.37140000e-11! 8.98190000e-06! 5.57880000e-03! 1.73899992e-10! 4.62829997e-10! 5.97415339e-10! 3.94901264e-11! 2.01857281e-12! 0.00000000e+00! 2.96068378e-12! 0.00000000e+00! 6.74999986e-12! 0.00000000e+00! 0.00000000e+00! 1.07880005e-09! 0.00000000e+00! 6.89999978e-13! 3.09999991e-13! 3.49999994e-11! 4.19125325e-11! 1.43919598e-11! 9.41180380e-12! 2.07436325e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.49999999e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18662500e+02! 1.59360000e+01! 4.70300000e+00! 8.75050000e+02! 2.96080000e+02! 4.35150000e-08! 8.73650000e-08! 2.42800000e-02! 9.31500000e-11! 8.79790000e-06! 5.51780000e-03! 1.12449994e-10! 5.11640008e-10! 5.97298377e-10! 3.94690877e-11! 2.00094477e-12! 0.00000000e+00! 2.85239974e-12! 0.00000000e+00! 2.60219988e-11! 0.00000000e+00! 0.00000000e+00! 1.10569998e-09! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.17509291e-11! 1.49649338e-11! 9.63298191e-12! 2.11003489e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.16739994e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18663200e+02! 1.59880000e+01! 4.66560000e+00! 8.74980000e+02! 2.96180000e+02! 4.25470000e-08! 8.73700000e-08! 2.41140000e-02! 8.06180000e-11! 8.50090000e-06! 5.14660000e-03! 1.05269994e-10! 6.07490003e-10! 5.97323802e-10! 3.94736639e-11! 2.00477699e-12! 0.00000000e+00! 2.87593994e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.58039981e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.39999981e-11! 4.17860607e-11! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 5.09789988e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18663900e+02! 1.60420000e+01! 4.62990000e+00! 8.74930000e+02! 2.96560000e+02! 4.28280000e-08! 8.68140000e-08! 2.36250000e-02! 8.16290000e-11! 8.05100000e-06! 4.81670000e-03! 2.00169992e-10! 6.27200014e-10! 5.94496563e-10! 3.89651193e-11! 1.57863642e-12! 0.00000000e+00! 2.58291760e-13! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.01499997e-09! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.78795398e-11! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.91059997e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18664600e+02! 1.60960000e+01! 4.59420000e+00! 8.74990000e+02! 2.96730000e+02! 4.35150000e-08! 8.62700000e-08! 2.33960000e-02! 8.79830000e-11! 8.59180000e-06! 5.58900000e-03! 8.96579963e-11! 5.94609972e-10! 5.61070024e-10! 2.65499983e-11! 2.83999994e-12! 2.89000009e-12! 7.46999945e-12! 3.90999993e-12! 3.37499993e-11! 1.26919997e-09! 0.00000000e+00! 9.90100002e-10! 6.65600006e-11! 0.00000000e+00! 0.00000000e+00! 3.40000007e-11! 7.62099966e-11! 1.51946927e-11! 9.72167399e-12! 2.12433907e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.97999992e-12! 0.00000000e+00! 2.72000001e-12! 0.00000000e+00! 0.00000000e+00! 2.17920005e-11! 2.11999992e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18668100e+02! 1.62010000e+01! 4.45020000e+00! 8.27050000e+02! 2.92470000e+02! 4.19840000e-08! 8.27980000e-08! 2.16090000e-02! 7.10980000e-11! 9.31040000e-06! 5.77260000e-03! 1.05419999e-10! 4.44839998e-10! 5.74075343e-10! 3.52918840e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.66263961e-12! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18670100e+02! 1.60410000e+01! 4.58220000e+00! 8.27130000e+02! 2.92040000e+02! 4.36820000e-08! 8.64670000e-08! 2.31890000e-02! 9.82210000e-11! 8.53890000e-06! 5.67180000e-03! 3.97780003e-11! 4.11560008e-10! 5.92732030e-10! 3.86477343e-11! 1.31268163e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.02900000e-09! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.54414761e-11! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.00000040e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18670800e+02! 1.59880000e+01! 4.62400000e+00! 8.27380000e+02! 2.92060000e+02! 4.30270000e-08! 8.63220000e-08! 2.31170000e-02! 8.81620000e-11! 7.70380000e-06! 4.73490000e-03! 9.15299989e-11! 3.78689996e-10! 5.91994731e-10! 3.85151112e-11! 1.20154787e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.01020003e-09! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.19999999e-11! 3.44226869e-11! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 6.50000019e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18671500e+02! 1.59360000e+01! 4.66560000e+00! 8.27230000e+02! 2.91990000e+02! 4.26250000e-08! 8.63180000e-08! 2.30560000e-02! 8.37100000e-11! 8.25340000e-06! 5.77830000e-03! 6.83519977e-11! 3.52359975e-10! 5.91974414e-10! 3.85114510e-11! 1.19848218e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.03980002e-09! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.19999999e-11! 3.43945809e-11! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.43400005e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18672200e+02! 1.58780000e+01! 4.70300000e+00! 8.27150000e+02! 2.92170000e+02! 4.21690000e-08! 8.61360000e-08! 2.26840000e-02! 7.58100000e-11! 7.90420000e-06! 5.59740000e-03! 2.47129990e-11! 3.39540007e-10! 5.53539992e-10! 2.75700001e-11! 1.76999995e-12! 3.24000007e-12! 7.40999970e-12! 1.22000001e-12! 0.00000000e+00! 1.12930010e-09! 0.00000000e+00! 1.07130005e-09! 4.67199994e-11! 0.00000000e+00! 0.00000000e+00! 4.09999985e-11! 6.89899943e-11! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.90999993e-12! 0.00000000e+00! 2.02999987e-12! 0.00000000e+00! 0.00000000e+00! 1.54040010e-11! 2.02000005e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18672900e+02! 1.58180000e+01! 4.73470000e+00! 8.27170000e+02! 2.92170000e+02! 4.21000000e-08! 8.61200000e-08! 2.27290000e-02! 6.71970000e-11! 7.73980000e-06! 5.58040000e-03! 2.53720005e-12! 3.66299990e-10! 5.90967608e-10! 3.83303528e-11! 1.04672705e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.95549976e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.30034090e-11! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.84039987e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18681200e+02! 1.53100000e+01! 4.36150000e+00! 9.53580000e+02! 3.02330000e+02! 4.25370000e-08! 8.33340000e-08! 2.24960000e-02! 1.02840000e-10! 4.55450000e-06! 4.29510000e-03! 3.50200008e-10! 5.35030020e-10! 5.76800829e-10! 3.57821342e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.00010000e-09! 0.00000000e+00! 1.75377291e-12! 7.87926961e-13! 3.79999990e-11! 1.34286401e-11! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.75829993e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.18681900e+02! 1.52730000e+01! 4.31380000e+00! 9.53770000e+02! 3.02210000e+02! 4.26870000e-08! 8.38150000e-08! 2.26170000e-02! 1.01240000e-10! 4.40260000e-06! 4.20270000e-03! 0.00000000e+00! 5.29330024e-10! 5.79246706e-10! 3.62220844e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.40740041e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.49999994e-11! 1.68082041e-11! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.94040009e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20421500e+02! 1.19040000e+01! 2.61800000e+00! 6.96470000e+02! 2.81410000e+02! 3.08650000e-08! 1.01180000e-07! 1.39180000e-02! 8.45000000e-11! 7.55830000e-05! 1.08610000e-02! 0.00000000e+00! 0.00000000e+00! 6.67547240e-10! 5.21049801e-11! 1.25893133e-11! 1.45038773e-11! 6.78934270e-11! 1.39405397e-11! 2.03999994e-11! 0.00000000e+00! 0.00000000e+00! 9.84260007e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.38816791e-10! 1.47977863e-11! 9.56846061e-12! 2.09962880e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.45709997e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20433300e+02! 1.06070000e+01! 2.62170000e+00! 4.45970000e+02! 2.61510000e+02! 4.36620000e-08! 1.06070000e-07! 2.99910000e-03! 3.18280000e-11! 1.33250000e-04! 1.58600000e-02! 6.14200010e-11! 4.62019978e-10! 6.92412738e-10! 5.65776211e-11! 1.63372042e-11! 2.43618719e-11! 9.09155390e-11! 1.89148922e-11! 5.46670001e-11! 0.00000000e+00! 0.00000000e+00! 1.06300002e-09! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.73174516e-10! 1.58165737e-11! 9.96173109e-12! 2.16305533e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.33330021e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20434000e+02! 1.05140000e+01! 2.62230000e+00! 4.46120000e+02! 2.61170000e+02! 4.58320000e-08! 1.02590000e-07! 3.07300000e-03! 3.50500000e-11! 1.32940000e-04! 1.60430000e-02! 0.00000000e+00! 4.53559995e-10! 6.74717060e-10! 5.33946394e-11! 1.36699931e-11! 1.73463674e-11! 7.45317003e-11! 1.53748611e-11! 5.03240019e-11! 0.00000000e+00! 0.00000000e+00! 1.00640007e-09! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.43000001e-10! 1.48723617e-10! 1.56874531e-11! 9.91188815e-12! 2.15501662e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.26469993e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20434700e+02! 1.04200000e+01! 2.62130000e+00! 4.46360000e+02! 2.61350000e+02! 4.44420000e-08! 1.04650000e-07! 3.49640000e-03! 5.56730000e-11! 1.32720000e-04! 1.63680000e-02! 0.00000000e+00! 4.23700020e-10! 6.85192070e-10! 5.52788162e-11! 1.52488595e-11! 2.14992243e-11! 8.42301853e-11! 1.74703967e-11! 6.34170008e-11! 0.00000000e+00! 0.00000000e+00! 1.03340003e-09! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.63197414e-10! 1.60767198e-11! 1.00621516e-11! 2.17925122e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.74720004e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20435400e+02! 1.03280000e+01! 2.62120000e+00! 4.46200000e+02! 2.61400000e+02! 4.34920000e-08! 1.05270000e-07! 3.25740000e-03! 5.38900000e-11! 1.29130000e-04! 1.62810000e-02! 0.00000000e+00! 3.92559985e-10! 6.88344770e-10! 5.58459008e-11! 1.57240523e-11! 2.27491134e-11! 8.71491421e-11! 1.81010918e-11! 1.10610000e-10! 0.00000000e+00! 0.00000000e+00! 9.01890007e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.67553624e-10! 1.74798093e-11! 1.06037696e-11! 2.26660305e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.91940014e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20436100e+02! 1.02380000e+01! 2.62160000e+00! 4.46220000e+02! 2.61500000e+02! 4.63030000e-08! 1.04640000e-07! 2.99450000e-03! 4.69900000e-11! 1.28150000e-04! 1.61250000e-02! 0.00000000e+00! 3.72640002e-10! 6.85141222e-10! 5.52696673e-11! 1.52411955e-11! 2.14790651e-11! 8.41831049e-11! 1.74602242e-11! 7.76389994e-11! 0.00000000e+00! 0.00000000e+00! 1.00520003e-09! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.59999985e-10! 1.63127151e-10! 1.64995517e-11! 1.02253726e-11! 2.20557548e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.22219985e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20436800e+02! 1.01500000e+01! 2.62070000e+00! 4.46150000e+02! 2.61700000e+02! 4.64290000e-08! 1.03340000e-07! 2.86580000e-03! 4.90000000e-11! 1.33440000e-04! 1.67560000e-02! 0.00000000e+00! 3.68070019e-10! 6.78530732e-10! 5.40806219e-11! 1.42448232e-11! 1.88583298e-11! 7.80627091e-11! 1.61377977e-11! 7.01429956e-11! 0.00000000e+00! 0.00000000e+00! 1.05249998e-09! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.53993193e-10! 1.62766901e-11! 1.01393434e-11! 2.19170081e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20437500e+02! 1.00630000e+01! 2.62100000e+00! 4.45930000e+02! 2.61930000e+02! 4.64600000e-08! 1.02120000e-07! 2.83920000e-03! 2.87970000e-11! 1.25470000e-04! 1.59180000e-02! 9.11019940e-11! 3.78619996e-10! 6.72327083e-10! 5.29647506e-11! 1.33097665e-11! 1.63988701e-11! 7.23189356e-11! 1.48967540e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.02400000e-09! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.45421342e-10! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20440300e+02! 9.71020000e+00! 2.62000000e+00! 4.45980000e+02! 2.62820000e+02! 5.51920000e-08! 9.42670000e-08! 1.76390000e-03! 6.58100000e-11! 1.34860000e-04! 1.69510000e-02! 0.00000000e+00! 3.96430000e-10! 6.32394859e-10! 4.57820067e-11! 7.29091353e-12! 5.67615074e-13! 3.53470135e-11! 6.90829035e-12! 4.35999986e-11! 0.00000000e+00! 0.00000000e+00! 9.78940040e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.02452071e-11! 1.54875435e-11! 9.83471898e-12! 2.14257084e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.20290002e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20441000e+02! 9.62140000e+00! 2.61930000e+00! 4.46080000e+02! 2.63020000e+02! 5.54400000e-08! 9.40570000e-08! 1.65910000e-03! 6.39870000e-11! 1.32400000e-04! 1.66900000e-02! 0.00000000e+00! 3.83869991e-10! 6.31326935e-10! 4.55899277e-11! 7.12996112e-12! 1.44265622e-13! 3.43583356e-11! 6.69466782e-12! 8.61709940e-11! 0.00000000e+00! 0.00000000e+00! 8.63090044e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.74999987e-10! 8.87697277e-11! 1.67532151e-11! 1.03232917e-11! 2.22136788e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.19429995e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20441700e+02! 9.53230000e+00! 2.61990000e+00! 4.46040000e+02! 2.62940000e+02! 5.64390000e-08! 9.53760000e-08! 1.47380000e-03! 5.11740000e-11! 1.30170000e-04! 1.65720000e-02! 2.02950001e-11! 3.67570002e-10! 6.38034070e-10! 4.67963515e-11! 8.14089594e-12! 2.80330381e-12! 4.05681877e-11! 8.03642049e-12! 5.74719994e-11! 0.00000000e+00! 0.00000000e+00! 8.85920004e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.80371756e-11! 1.58999688e-11! 9.99392322e-12! 2.16824718e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.79440005e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20442400e+02! 9.44310000e+00! 2.61920000e+00! 4.46060000e+02! 2.63010000e+02! 5.76530000e-08! 9.43790000e-08! 1.66750000e-03! 5.13610000e-11! 1.30140000e-04! 1.68330000e-02! 0.00000000e+00! 3.43559986e-10! 6.32964348e-10! 4.58844455e-11! 7.37675459e-12! 7.93401532e-13! 3.58743139e-11! 7.02222265e-12! 4.69440008e-11! 0.00000000e+00! 0.00000000e+00! 8.14500023e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.10321332e-11! 1.55869623e-11! 9.87309626e-12! 2.14876034e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.69440025e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20443100e+02! 9.35390000e+00! 2.61760000e+00! 4.46150000e+02! 2.63260000e+02! 5.56980000e-08! 9.33090000e-08! 1.97980000e-03! 4.33070000e-11! 1.27060000e-04! 1.64180000e-02! 3.41640015e-11! 3.25410004e-10! 6.27523422e-10! 4.49057701e-11! 6.55666407e-12! 0.00000000e+00! 3.08367533e-11! 5.93376476e-12! 6.46109971e-11! 0.00000000e+00! 0.00000000e+00! 9.75109993e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.75999992e-10! 8.35141886e-11! 1.61122192e-11! 1.00758551e-11! 2.18146126e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.13890000e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20443800e+02! 9.26460000e+00! 2.61920000e+00! 4.46090000e+02! 2.63450000e+02! 5.60960000e-08! 9.39000000e-08! 1.77960000e-03! 4.50180000e-11! 1.32000000e-04! 1.72060000e-02! 4.74229996e-11! 3.16720011e-10! 6.30528629e-10! 4.54463273e-11! 7.00963029e-12! 0.00000000e+00! 3.36191838e-11! 6.53495964e-12! 4.62289998e-11! 0.00000000e+00! 0.00000000e+00! 9.22739996e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 8.76666240e-11! 1.55657050e-11! 9.86489102e-12! 2.14743709e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.94290026e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20444400e+02! 9.17540000e+00! 2.61910000e+00! 4.46120000e+02! 2.63630000e+02! 5.74680000e-08! 9.24900000e-08! 1.65320000e-03! 4.90930000e-11! 1.35090000e-04! 1.76320000e-02! 3.59849997e-11! 3.12180004e-10! 6.23358809e-10! 4.41566748e-11! 5.92894961e-12! 0.00000000e+00! 2.69809019e-11! 5.10063736e-12! 4.82290007e-11! 0.00000000e+00! 0.00000000e+00! 8.77570017e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 7.77597986e-11! 1.56251661e-11! 9.88784402e-12! 2.15113899e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20445800e+02! 8.99700000e+00! 2.61930000e+00! 4.46100000e+02! 2.63490000e+02! 5.67670000e-08! 9.37100000e-08! 1.63720000e-03! 3.37000000e-11! 1.36710000e-04! 1.64590000e-02! 0.00000000e+00! 2.81660001e-10! 6.29562513e-10! 4.52725461e-11! 6.86400633e-12! 0.00000000e+00! 3.27246633e-11! 6.34168195e-12! 5.83329982e-11! 0.00000000e+00! 0.00000000e+00! 8.93000007e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 8.63316640e-11! 1.59255682e-11! 1.00038042e-11! 2.16984104e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 5.00000007e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20446500e+02! 8.90760000e+00! 2.61880000e+00! 4.46030000e+02! 2.63540000e+02! 5.63770000e-08! 9.39770000e-08! 1.62840000e-03! 7.19250000e-11! 1.36180000e-04! 1.62230000e-02! 0.00000000e+00! 2.74750001e-10! 6.30920205e-10! 4.55167570e-11! 7.06864602e-12! 0.00000000e+00! 3.39816959e-11! 6.61328804e-12! 1.00670000e-10! 0.00000000e+00! 0.00000000e+00! 8.78999984e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 8.82076356e-11! 1.71842835e-11! 1.04896916e-11! 2.24820475e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20447200e+02! 8.81820000e+00! 2.61860000e+00! 4.45970000e+02! 2.63470000e+02! 5.68220000e-08! 9.43640000e-08! 1.54350000e-03! 4.95670000e-11! 1.36160000e-04! 1.61260000e-02! 0.00000000e+00! 2.77260020e-10! 6.32888075e-10! 4.58707274e-11! 7.36525858e-12! 7.63162266e-13! 3.58036933e-11! 7.00696359e-12! 1.56669989e-11! 0.00000000e+00! 0.00000000e+00! 9.11330011e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.73999995e-10! 9.09267453e-11! 1.46570707e-11! 9.51414121e-12! 2.09086845e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20447900e+02! 8.72890000e+00! 2.61920000e+00! 4.45990000e+02! 2.63490000e+02! 5.62330000e-08! 9.42880000e-08! 1.67720000e-03! 5.92570000e-11! 1.36450000e-04! 1.60780000e-02! 0.00000000e+00! 2.77510015e-10! 6.32501662e-10! 4.58012135e-11! 7.30700830e-12! 6.09950079e-13! 3.54458858e-11! 6.92965260e-12! 8.50000018e-12! 0.00000000e+00! 0.00000000e+00! 9.32499966e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.03927627e-11! 1.44439885e-11! 9.43188756e-12! 2.07760250e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.49999999e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20448600e+02! 8.63970000e+00! 2.61850000e+00! 4.45930000e+02! 2.63560000e+02! 5.70980000e-08! 9.32110000e-08! 1.70680000e-03! 5.47560000e-11! 1.36540000e-04! 1.60410000e-02! 0.00000000e+00! 2.78489981e-10! 6.27025099e-10! 4.48161369e-11! 6.48155314e-12! 0.00000000e+00! 3.03753689e-11! 5.83407454e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 8.28256283e-11! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20449300e+02! 8.55050000e+00! 2.61850000e+00! 4.45980000e+02! 2.63530000e+02! 5.61300000e-08! 9.50860000e-08! 1.59670000e-03! 4.38480000e-11! 1.35640000e-04! 1.59960000e-02! 4.94440010e-11! 2.74950007e-10! 6.36559472e-10! 4.65311054e-11! 7.91862756e-12! 2.21867815e-12! 3.92028701e-11! 7.74141775e-12! 5.39999989e-11! 0.00000000e+00! 0.00000000e+00! 8.18000001e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.80999993e-10! 9.59996041e-11! 1.57967441e-11! 9.95407576e-12! 2.16182072e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.99999996e-13! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20450000e+02! 8.46120000e+00! 2.61900000e+00! 4.46070000e+02! 2.63840000e+02! 5.67130000e-08! 9.40040000e-08! 1.60500000e-03! 5.09330000e-11! 1.34730000e-04! 1.59330000e-02! 4.38160029e-11! 2.70200001e-10! 6.31057484e-10! 4.55414526e-11! 7.08933953e-12! 3.74202791e-14! 3.41088130e-11! 6.64075392e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.00599983e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 8.83973381e-11! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.57140002e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20450700e+02! 8.37210000e+00! 2.61820000e+00! 4.46080000e+02! 2.63890000e+02! 5.68380000e-08! 9.40010000e-08! 1.68590000e-03! 4.78280000e-11! 1.34430000e-04! 1.58540000e-02! 5.77849990e-11! 2.66019984e-10! 6.31042218e-10! 4.55387082e-11! 7.08704059e-12! 3.13724266e-14! 3.40946889e-11! 6.63770211e-12! 2.79999999e-11! 0.00000000e+00! 0.00000000e+00! 8.90189977e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 8.83762646e-11! 1.50237409e-11! 9.65568250e-12! 2.11369602e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.39169995e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20451400e+02! 8.28310000e+00! 2.61880000e+00! 4.46120000e+02! 2.63980000e+02! 5.61730000e-08! 9.34500000e-08! 1.70320000e-03! 4.71640000e-11! 1.33580000e-04! 1.58300000e-02! 0.00000000e+00! 2.69519990e-10! 6.28240404e-10! 4.50347364e-11! 6.66473213e-12! 0.00000000e+00! 3.15005799e-11! 6.07719691e-12! 6.53820054e-11! 0.00000000e+00! 0.00000000e+00! 9.07240005e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.88999996e-10! 8.45048753e-11! 1.61351418e-11! 1.00847030e-11! 2.18288842e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20452100e+02! 8.19410000e+00! 2.61870000e+00! 4.46070000e+02! 2.63980000e+02! 5.40080000e-08! 9.28520000e-08! 1.96220000e-03! 4.61300000e-11! 1.32820000e-04! 1.57560000e-02! 2.03819999e-11! 2.67950023e-10! 6.25199559e-10! 4.44877746e-11! 6.20640084e-12! 0.00000000e+00! 2.86851966e-11! 5.46888142e-12! 7.46670017e-11! 0.00000000e+00! 0.00000000e+00! 8.77329986e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 8.03032502e-11! 1.64111918e-11! 1.01912645e-11! 2.20007432e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.43330001e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20452800e+02! 8.10510000e+00! 2.61800000e+00! 4.46040000e+02! 2.63870000e+02! 5.46610000e-08! 9.22860000e-08! 1.96250000e-03! 5.05560000e-11! 1.32930000e-04! 1.56690000e-02! 1.97260003e-11! 2.62970007e-10! 6.22321528e-10! 4.39700845e-11! 5.77259594e-12! 0.00000000e+00! 2.60204688e-11! 4.89311846e-12! 4.29999994e-11! 0.00000000e+00! 0.00000000e+00! 9.10000020e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 7.63264660e-11! 1.54697054e-11! 9.82783299e-12! 2.14146045e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 5.66669975e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20453500e+02! 8.01610000e+00! 2.61870000e+00! 4.46190000e+02! 2.63870000e+02! 5.59000000e-08! 9.17050000e-08! 1.81600000e-03! 4.82890000e-11! 1.32890000e-04! 1.56970000e-02! 2.43479993e-11! 2.60999999e-10! 6.19367113e-10! 4.34386693e-11! 5.32729416e-12! 0.00000000e+00! 2.32851204e-11! 4.30209601e-12! 4.86670010e-11! 0.00000000e+00! 0.00000000e+00! 9.44670009e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 7.22442939e-11! 1.56381887e-11! 9.89287124e-12! 2.15194963e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.20000000e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20454200e+02! 7.92710000e+00! 2.61830000e+00! 4.46080000e+02! 2.63720000e+02! 5.60820000e-08! 9.09140000e-08! 1.93890000e-03! 4.63970000e-11! 1.33160000e-04! 1.56500000e-02! 3.54249997e-11! 2.63560007e-10! 6.15344886e-10! 4.27151821e-11! 4.72104040e-12! 0.00000000e+00! 1.95610923e-11! 3.49745124e-12! 1.01330000e-10! 0.00000000e+00! 0.00000000e+00! 8.43000003e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.94999988e-10! 6.66866284e-11! 1.72039067e-11! 1.04972671e-11! 2.24942634e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.70000011e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20454900e+02! 7.83790000e+00! 2.61790000e+00! 4.46110000e+02! 2.63650000e+02! 5.62160000e-08! 9.21910000e-08! 1.87160000e-03! 5.33180000e-11! 1.33730000e-04! 1.56360000e-02! 0.00000000e+00! 2.68510020e-10! 6.21838414e-10! 4.38831922e-11! 5.69978439e-12! 0.00000000e+00! 2.55732085e-11! 4.79647962e-12! 3.90000011e-11! 0.00000000e+00! 0.00000000e+00! 9.06769992e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 7.56589860e-11! 1.53507797e-11! 9.78192614e-12! 2.13405647e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.15709985e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20455600e+02! 7.74880000e+00! 2.61860000e+00! 4.46050000e+02! 2.63520000e+02! 5.67460000e-08! 9.32920000e-08! 1.84140000e-03! 7.74920000e-11! 1.33620000e-04! 1.56180000e-02! 0.00000000e+00! 2.78929990e-10! 6.27436991e-10! 4.48902200e-11! 6.54363456e-12! 0.00000000e+00! 3.07567166e-11! 5.91647131e-12! 5.55000004e-11! 0.00000000e+00! 0.00000000e+00! 8.76309969e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 8.33947425e-11! 1.58413404e-11! 9.97129029e-12! 2.16459732e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.93059995e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20456300e+02! 7.65960000e+00! 2.61830000e+00! 4.46050000e+02! 2.63510000e+02! 5.76060000e-08! 9.60290000e-08! 1.36870000e-03! 6.12750000e-11! 1.34340000e-04! 1.56180000e-02! 0.00000000e+00! 3.00429986e-10! 6.41354525e-10! 4.73936203e-11! 8.64138015e-12! 4.11971889e-12! 4.36425132e-11! 8.70068427e-12! 2.42859986e-11! 0.00000000e+00! 0.00000000e+00! 7.37340022e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.10999995e-10! 1.02625235e-10! 1.49133206e-11! 9.61305775e-12! 2.10682166e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.48570001e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20457600e+02! 7.48070000e+00! 2.61860000e+00! 4.46040000e+02! 2.63670000e+02! 5.63760000e-08! 9.79730000e-08! 1.17310000e-03! 5.14070000e-11! 1.33370000e-04! 1.55580000e-02! 0.00000000e+00! 3.37259998e-10! 6.51239729e-10! 4.91716980e-11! 1.01313402e-11! 8.03872593e-12! 5.27948657e-11! 1.06782187e-11! 1.74170001e-11! 0.00000000e+00! 0.00000000e+00! 8.42140024e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.16284010e-10! 1.47090985e-11! 9.53422584e-12! 2.09410735e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.09720001e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20458300e+02! 7.39110000e+00! 2.61800000e+00! 4.45980000e+02! 2.63790000e+02! 5.88340000e-08! 9.68410000e-08! 1.12350000e-03! 5.13280000e-11! 1.32320000e-04! 1.54320000e-02! 1.04620002e-11! 3.35929978e-10! 6.45483555e-10! 4.81363144e-11! 9.26373041e-12! 5.75667031e-12! 4.74654066e-11! 9.52669107e-12! 5.61999995e-11! 0.00000000e+00! 0.00000000e+00! 7.65719987e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.02000000e-10! 1.08330442e-10! 1.58621519e-11! 9.97932466e-12! 2.16589299e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 5.11999991e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20459000e+02! 7.30190000e+00! 2.61780000e+00! 4.45930000e+02! 2.63710000e+02! 6.06970000e-08! 9.54570000e-08! 1.17550000e-03! 4.86150000e-11! 1.31120000e-04! 1.52810000e-02! 2.40639991e-11! 3.24890004e-10! 6.38445963e-10! 4.68704381e-11! 8.20297736e-12! 2.96659572e-12! 4.09495389e-11! 8.11881812e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.86062898e-11! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20459700e+02! 7.21220000e+00! 2.61840000e+00! 4.46000000e+02! 2.63720000e+02! 5.86320000e-08! 9.83720000e-08! 1.23250000e-03! 4.60480000e-11! 1.31900000e-04! 1.53050000e-02! 9.33609960e-12! 3.17250004e-10! 6.53268606e-10! 4.95366421e-11! 1.04371503e-11! 8.84309032e-12! 5.46733596e-11! 1.10841015e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.19087434e-10! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20460400e+02! 7.12290000e+00! 2.61780000e+00! 4.46010000e+02! 2.63650000e+02! 5.95990000e-08! 9.82250000e-08! 1.24520000e-03! 4.62970000e-11! 1.32690000e-04! 1.53020000e-02! 0.00000000e+00! 3.18019999e-10! 6.52521204e-10! 4.94021907e-11! 1.03244826e-11! 8.54674491e-12! 5.39812813e-11! 1.09345658e-11! 2.99999990e-11! 0.00000000e+00! 0.00000000e+00! 7.98330013e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.18054594e-10! 1.50832020e-11! 9.67863636e-12! 2.11739810e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20461100e+02! 7.03350000e+00! 2.61820000e+00! 4.46020000e+02! 2.63460000e+02! 6.09380000e-08! 9.88000000e-08! 1.20140000e-03! 4.79870000e-11! 1.32440000e-04! 1.52760000e-02! 2.01070011e-11! 3.17950000e-10! 6.55445032e-10! 4.99281172e-11! 1.07651865e-11! 9.70591663e-12! 5.66883797e-11! 1.15194842e-11! 1.06289994e-11! 0.00000000e+00! 0.00000000e+00! 8.03289990e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.37000003e-10! 1.22094612e-10! 1.45072860e-11! 9.45632201e-12! 2.08154310e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 6.12290010e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20461800e+02! 6.94420000e+00! 2.61830000e+00! 4.46110000e+02! 2.63230000e+02! 5.55820000e-08! 9.95550000e-08! 1.41820000e-03! 3.09620000e-11! 1.32240000e-04! 1.52350000e-02! 7.55199930e-11! 3.06340009e-10! 6.59284183e-10! 5.06186759e-11! 1.13438486e-11! 1.12279587e-11! 6.02429218e-11! 1.22875078e-11! 4.79170002e-11! 0.00000000e+00! 0.00000000e+00! 8.54580018e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.27399341e-10! 1.56158905e-11! 9.88426268e-12! 2.15056150e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20464600e+02! 6.58730000e+00! 2.61760000e+00! 4.46010000e+02! 2.63090000e+02! 5.17040000e-08! 9.78370000e-08! 1.58350000e-03! 3.37000000e-11! 1.33910000e-04! 1.52890000e-02! 6.37000036e-11! 2.94899993e-10! 6.50548171e-10! 4.90473044e-11! 1.00271041e-11! 7.76455636e-12! 5.21545793e-11! 1.05398728e-11! 1.02779998e-11! 0.00000000e+00! 0.00000000e+00! 9.18420007e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.15328462e-10! 1.44968508e-11! 9.45229311e-12! 2.08089344e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 8.22220070e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20465300e+02! 6.49820000e+00! 2.61830000e+00! 4.46020000e+02! 2.62670000e+02! 5.33250000e-08! 9.88710000e-08! 1.59470000e-03! 3.45500000e-11! 1.33690000e-04! 1.53150000e-02! 0.00000000e+00! 3.12619985e-10! 6.55806021e-10! 4.99930548e-11! 1.08196030e-11! 9.84904866e-12! 5.70226505e-11! 1.15917094e-11! 4.05589971e-11! 0.00000000e+00! 0.00000000e+00! 8.62119987e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.57999982e-10! 1.22593463e-10! 1.53971315e-11! 9.79981808e-12! 2.13694201e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.90589992e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20466000e+02! 6.40910000e+00! 2.61750000e+00! 4.46110000e+02! 2.62730000e+02! 5.23530000e-08! 9.87640000e-08! 1.64350000e-03! 6.25100000e-11! 1.34220000e-04! 1.52960000e-02! 0.00000000e+00! 3.21480009e-10! 6.55261956e-10! 4.98951887e-11! 1.07375940e-11! 9.63334187e-12! 5.65188937e-11! 1.14828633e-11! 2.03330009e-11! 0.00000000e+00! 0.00000000e+00! 9.03330022e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.21841676e-10! 1.47957948e-11! 9.56769039e-12! 2.09950477e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.10000003e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20466700e+02! 6.32010000e+00! 2.61760000e+00! 4.46120000e+02! 2.63030000e+02! 5.10900000e-08! 9.77740000e-08! 1.60380000e-03! 4.81590000e-11! 1.34260000e-04! 1.52770000e-02! 0.00000000e+00! 3.12359971e-10! 6.50227816e-10! 4.89896838e-11! 9.97881899e-12! 7.63755205e-12! 5.18579762e-11! 1.04757860e-11! 3.13329987e-11! 0.00000000e+00! 0.00000000e+00! 9.13000009e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.14885816e-10! 1.51228335e-11! 9.69393402e-12! 2.11986522e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.49999994e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20467400e+02! 6.23130000e+00! 2.61810000e+00! 4.46280000e+02! 2.63180000e+02! 5.16960000e-08! 9.74870000e-08! 1.54560000e-03! 5.22160000e-11! 1.33320000e-04! 1.51700000e-02! 0.00000000e+00! 2.92560004e-10! 6.48768428e-10! 4.87271820e-11! 9.75884998e-12! 7.05897363e-12! 5.05067793e-11! 1.01838347e-11! 1.33330005e-11! 0.00000000e+00! 0.00000000e+00! 9.44999967e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.31999989e-10! 1.12869318e-10! 1.45876783e-11! 9.48735448e-12! 2.08654830e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20468100e+02! 6.14270000e+00! 2.61740000e+00! 4.46190000e+02! 2.63250000e+02! 5.22170000e-08! 9.74980000e-08! 1.52610000e-03! 4.62540000e-11! 1.33400000e-04! 1.51060000e-02! 0.00000000e+00! 2.70609979e-10! 6.48824383e-10! 4.87372399e-11! 9.76728160e-12! 7.08114947e-12! 5.05585677e-11! 1.01950245e-11! 6.86670026e-11! 0.00000000e+00! 0.00000000e+00! 9.39670008e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.12946610e-10! 1.62328068e-11! 1.01224038e-11! 2.18896862e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.33330000e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20468800e+02! 6.05440000e+00! 2.61770000e+00! 4.46140000e+02! 2.63110000e+02! 5.19220000e-08! 9.73310000e-08! 1.52790000e-03! 4.47900000e-11! 1.35350000e-04! 1.52010000e-02! 0.00000000e+00! 2.51839993e-10! 6.47975174e-10! 4.85844906e-11! 9.63928590e-12! 6.74448561e-12! 4.97723321e-11! 1.00251448e-11! 2.10000003e-11! 0.00000000e+00! 0.00000000e+00! 8.93669971e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.11773243e-10! 1.48156244e-11! 9.57534572e-12! 2.10073955e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20470100e+02! 5.87840000e+00! 2.61720000e+00! 4.45890000e+02! 2.63460000e+02! 6.08660000e-08! 9.55420000e-08! 9.63500000e-04! 5.11280000e-11! 1.36660000e-04! 1.53290000e-02! 3.62360003e-11! 2.33949998e-10! 6.38878173e-10! 4.69481849e-11! 8.26812490e-12! 3.13795127e-12! 4.13497153e-11! 8.20528367e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.92035135e-11! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20470800e+02! 5.79060000e+00! 2.61760000e+00! 4.46100000e+02! 2.63470000e+02! 6.38790000e-08! 9.17580000e-08! 8.68370000e-04! 4.87480000e-11! 1.37620000e-04! 1.54380000e-02! 9.88000029e-11! 2.29669991e-10! 6.19636675e-10! 4.34871479e-11! 5.36791575e-12! 0.00000000e+00! 2.35346447e-11! 4.35601034e-12! 7.46670017e-11! 0.00000000e+00! 0.00000000e+00! 7.55330021e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 7.26166766e-11! 1.64111918e-11! 1.01912645e-11! 2.20007432e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.06669994e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20471500e+02! 5.70280000e+00! 2.61780000e+00! 4.46080000e+02! 2.63420000e+02! 6.55670000e-08! 9.28230000e-08! 7.55920000e-04! 5.18150000e-11! 1.39100000e-04! 1.55490000e-02! 8.51289941e-11! 2.35999997e-10! 6.25052121e-10! 4.44612507e-11! 6.18417383e-12! 0.00000000e+00! 2.85486634e-11! 5.43938158e-12! 3.19999999e-11! 0.00000000e+00! 0.00000000e+00! 6.72679967e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.67999989e-10! 8.00994965e-11! 1.51426649e-11! 9.70158936e-12! 2.12109982e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.05289995e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20472200e+02! 5.61540000e+00! 2.61700000e+00! 4.46090000e+02! 2.63450000e+02! 6.84060000e-08! 8.75910000e-08! 6.76280000e-04! 4.64000000e-11! 1.39040000e-04! 1.55830000e-02! 1.45899987e-10! 2.41839992e-10! 5.98447569e-10! 3.96758008e-11! 2.17416016e-12! 0.00000000e+00! 3.91640800e-12! 1.17129776e-13! 7.06670000e-11! 0.00000000e+00! 0.00000000e+00! 6.89330037e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.33388325e-11! 1.62922679e-11! 1.01453568e-11! 2.19267070e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.70000004e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20472900e+02! 5.52820000e+00! 2.61740000e+00! 4.46150000e+02! 2.63430000e+02! 6.88230000e-08! 8.62780000e-08! 6.21840000e-04! 7.58760000e-11! 1.38490000e-04! 1.55810000e-02! 0.00000000e+00! 2.52079996e-10! 5.91771021e-10! 3.84748657e-11! 1.16782452e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 8.66670000e-11! 0.00000000e+00! 0.00000000e+00! 6.55999977e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.41135384e-11! 1.67679638e-11! 1.03289842e-11! 2.22228590e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.06669994e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20473600e+02! 5.44140000e+00! 2.61760000e+00! 4.46020000e+02! 2.63320000e+02! 6.87150000e-08! 8.67090000e-08! 6.01840000e-04! 6.78440000e-11! 1.38090000e-04! 1.55480000e-02! 0.00000000e+00! 2.62870004e-10! 5.93962657e-10! 3.88690781e-11! 1.49816010e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.10000012e-11! 0.00000000e+00! 0.00000000e+00! 6.48330001e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.71417966e-11! 1.51129335e-11! 9.69011330e-12! 2.11924887e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.66670060e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20477100e+02! 5.00960000e+00! 2.61730000e+00! 4.46000000e+02! 2.63460000e+02! 6.81790000e-08! 7.85680000e-08! 5.82630000e-04! 2.74510000e-11! 1.34690000e-04! 1.51750000e-02! 1.55130006e-10! 2.42310005e-10! 5.52565937e-10! 3.14229129e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.77780003e-11! 0.00000000e+00! 0.00000000e+00! 7.01940006e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.56117584e-11! 9.88266847e-12! 2.15030424e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20477800e+02! 4.92350000e+00! 2.61720000e+00! 4.46090000e+02! 2.63440000e+02! 7.01620000e-08! 7.96940000e-08! 5.65910000e-04! 3.12900000e-11! 1.32950000e-04! 1.49880000e-02! 1.73050005e-10! 2.22899990e-10! 5.58291580e-10! 3.24528113e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.41109997e-11! 0.00000000e+00! 0.00000000e+00! 7.29919958e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.46108091e-11! 9.49628310e-12! 2.08798829e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 6.88889961e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20478500e+02! 4.83730000e+00! 2.61660000e+00! 4.46190000e+02! 2.63550000e+02! 7.06740000e-08! 8.07850000e-08! 5.79760000e-04! 3.20310000e-11! 1.30110000e-04! 1.46680000e-02! 1.53820012e-10! 2.16020007e-10! 5.63839309e-10! 3.34506936e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.65429978e-11! 0.00000000e+00! 0.00000000e+00! 7.40289996e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.52777322e-11! 9.75372821e-12! 2.12950872e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.88290000e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20479200e+02! 4.75110000e+00! 2.61730000e+00! 4.45940000e+02! 2.63590000e+02! 7.07920000e-08! 7.99260000e-08! 5.69700000e-04! 3.31970000e-11! 1.33790000e-04! 1.50590000e-02! 1.35570014e-10! 2.24109994e-10! 5.59471303e-10! 3.26650096e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.83139996e-11! 0.00000000e+00! 0.00000000e+00! 7.02570002e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.47357682e-11! 9.54451969e-12! 2.09576783e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.24289997e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20479900e+02! 4.66510000e+00! 2.61700000e+00! 4.46010000e+02! 2.63740000e+02! 6.68040000e-08! 8.71350000e-08! 5.97400000e-04! 3.65030000e-11! 1.35630000e-04! 1.51840000e-02! 1.52910004e-10! 2.40379994e-10! 6.97989999e-10! 5.54300009e-11! 2.19999995e-12! 4.82000030e-12! 1.74100005e-11! 8.68000029e-12! 0.00000000e+00! 1.24830002e-09! 0.00000000e+00! 1.39550005e-09! 1.24009997e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.57530003e-10! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.39000009e-12! 0.00000000e+00! 4.61000032e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.30000003e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20480600e+02! 4.57900000e+00! 2.61650000e+00! 4.46130000e+02! 2.63700000e+02! 6.91260000e-08! 8.36560000e-08! 6.45830000e-04! 3.70130000e-11! 1.36030000e-04! 1.52080000e-02! 1.68369998e-10! 2.57380006e-10! 6.97989999e-10! 5.54300009e-11! 2.19999995e-12! 4.82000030e-12! 1.74100005e-11! 8.68000029e-12! 0.00000000e+00! 1.24830002e-09! 0.00000000e+00! 1.39550005e-09! 1.24009997e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.57530003e-10! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.39000009e-12! 0.00000000e+00! 4.61000032e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.30000003e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20481300e+02! 4.49300000e+00! 2.61720000e+00! 4.46050000e+02! 2.63570000e+02! 7.24980000e-08! 7.92710000e-08! 6.05160000e-04! 4.08000000e-11! 1.36280000e-04! 1.52580000e-02! 0.00000000e+00! 2.63430000e-10! 6.76419976e-10! 5.00299975e-11! 3.39000009e-12! 3.89000030e-12! 7.90000010e-12! 4.98999973e-12! 1.05649994e-11! 1.21130006e-09! 0.00000000e+00! 6.46609988e-10! 2.63880001e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.35929989e-10! 1.45053830e-11! 9.45558735e-12! 2.08142479e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.34999996e-12! 0.00000000e+00! 3.97999992e-12! 0.00000000e+00! 0.00000000e+00! 1.66520010e-11! 1.62399989e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20484000e+02! 4.14960000e+00! 2.61650000e+00! 4.45840000e+02! 2.63640000e+02! 7.09210000e-08! 8.21450000e-08! 5.88990000e-04! 5.06920000e-11! 1.34330000e-04! 1.50700000e-02! 5.22949999e-12! 1.94609995e-10! 6.74309997e-10! 4.35200001e-11! 3.86999981e-12! 3.69999994e-12! 2.56399988e-11! 1.07999998e-11! 1.64999993e-11! 1.11440004e-08! 0.00000000e+00! 6.62780053e-10! 2.25210006e-09! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.27940006e-10! 1.46818356e-11! 9.52370040e-12! 2.09241010e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.65999982e-12! 3.47000011e-12! 4.83000012e-12! 0.00000000e+00! 0.00000000e+00! 1.60280001e-11! 9.72999979e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20484700e+02! 4.06410000e+00! 2.61560000e+00! 4.49060000e+02! 2.63830000e+02! 7.22290000e-08! 7.98000000e-08! 5.97190000e-04! 4.48460000e-11! 1.29870000e-04! 1.50230000e-02! 7.32639990e-11! 2.20079996e-10! 6.74309997e-10! 4.35200001e-11! 3.86999981e-12! 3.69999994e-12! 2.56399988e-11! 1.07999998e-11! 5.16570016e-11! 1.11440004e-08! 0.00000000e+00! 7.35060013e-10! 2.25210006e-09! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.27940006e-10! 1.57270846e-11! 9.92718581e-12! 2.15748409e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.65999982e-12! 3.47000011e-12! 4.83000012e-12! 0.00000000e+00! 0.00000000e+00! 7.28569982e-12! 9.72999979e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20491700e+02! 4.64280000e+00! 2.54710000e+00! 5.94420000e+02! 2.72950000e+02! 4.60720000e-08! 1.43810000e-07! 9.23830000e-03! 2.58750000e-11! 7.64350000e-05! 1.16480000e-02! 1.40000002e-12! 4.19390023e-10! 8.84319507e-10! 9.10965123e-11! 4.52626478e-11! 1.00443827e-10! 2.68595451e-10! 5.73059031e-11! 2.23330000e-11! 0.00000000e+00! 0.00000000e+00! 8.55000015e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.26999994e-10! 4.38340281e-10! 1.48552559e-11! 9.59064512e-12! 2.10320684e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.56669989e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20493700e+02! 4.85840000e+00! 2.58500000e+00! 5.94510000e+02! 2.72920000e+02! 4.77030000e-08! 1.56720000e-07! 9.40910000e-03! 5.85280000e-11! 8.49570000e-05! 1.24940000e-02! 0.00000000e+00! 5.10479992e-10! 9.49966439e-10! 1.02904643e-10! 5.51573891e-11! 1.26469737e-10! 3.29375749e-10! 7.04385994e-11! 6.33330020e-12! 0.00000000e+00! 0.00000000e+00! 8.83330020e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 5.29047472e-10! 1.43795713e-11! 9.40702117e-12! 2.07359199e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.93329987e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20494400e+02! 4.93380000e+00! 2.59850000e+00! 5.94600000e+02! 2.73040000e+02! 4.73370000e-08! 1.55520000e-07! 9.33080000e-03! 5.42300000e-11! 8.03450000e-05! 1.21180000e-02! 0.00000000e+00! 4.93689978e-10! 8.70690020e-10! 3.76299998e-11! 5.13999997e-12! 5.34999996e-12! 8.98999972e-12! 5.38000026e-12! 4.45429978e-11! 1.12499998e-09! 0.00000000e+00! 9.39400002e-10! 3.88600020e-11! 0.00000000e+00! 0.00000000e+00! 1.22999999e-10! 2.48299992e-10! 1.55155784e-11! 9.84554105e-12! 2.14431632e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.76999994e-12! 0.00000000e+00! 2.72000001e-12! 0.00000000e+00! 0.00000000e+00! 4.35429991e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20495100e+02! 5.00880000e+00! 2.61150000e+00! 5.94680000e+02! 2.73230000e+02! 4.61840000e-08! 1.47810000e-07! 9.04620000e-03! 2.67360000e-11! 8.43550000e-05! 1.27540000e-02! 0.00000000e+00! 4.49359994e-10! 8.70690020e-10! 3.76299998e-11! 5.13999997e-12! 5.34999996e-12! 8.98999972e-12! 5.38000026e-12! 1.82500005e-11! 1.12499998e-09! 0.00000000e+00! 8.91750007e-10! 3.88600020e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.48299992e-10! 1.47338652e-11! 9.54378503e-12! 2.09564935e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.76999994e-12! 0.00000000e+00! 2.72000001e-12! 0.00000000e+00! 0.00000000e+00! 2.34440002e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20495800e+02! 5.08420000e+00! 2.61650000e+00! 5.94670000e+02! 2.73280000e+02! 4.42170000e-08! 1.40930000e-07! 8.95070000e-03! 2.25940000e-11! 9.18950000e-05! 1.40660000e-02! 0.00000000e+00! 4.04160011e-10! 8.69674777e-10! 8.84623208e-11! 4.30553024e-11! 9.46378878e-11! 2.55036409e-10! 5.43762257e-11! 6.13889972e-12! 0.00000000e+00! 0.00000000e+00! 8.35669978e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.18105078e-10! 1.43737912e-11! 9.40479031e-12! 2.07323221e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.36669989e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20496500e+02! 5.15960000e+00! 2.61530000e+00! 5.94780000e+02! 2.73260000e+02! 4.39620000e-08! 1.39250000e-07! 8.92810000e-03! 1.31500000e-11! 9.31270000e-05! 1.48230000e-02! 5.50069990e-11! 3.67279984e-10! 8.61131999e-10! 8.69257027e-11! 4.17676796e-11! 9.12510900e-11! 2.47126986e-10! 5.26672421e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.25090005e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.44999998e-10! 4.06301187e-10! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.46570030e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20497900e+02! 5.30880000e+00! 2.61660000e+00! 5.94470000e+02! 2.73140000e+02! 4.69890000e-08! 1.56410000e-07! 9.36700000e-03! 3.47070000e-11! 9.29480000e-05! 1.43350000e-02! 0.00000000e+00! 3.33250011e-10! 9.48390144e-10! 1.02621099e-10! 5.49197909e-11! 1.25844793e-10! 3.27916250e-10! 7.01232544e-11! 1.63609994e-11! 0.00000000e+00! 0.00000000e+00! 9.62669944e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 5.26869381e-10! 1.46777035e-11! 9.52210619e-12! 2.09215284e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.90279996e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20498600e+02! 5.38310000e+00! 2.61650000e+00! 5.94510000e+02! 2.73150000e+02! 4.70870000e-08! 1.56990000e-07! 9.30530000e-03! 3.72430000e-11! 7.50490000e-05! 1.16950000e-02! 0.00000000e+00! 3.32700006e-10! 9.51339452e-10! 1.03151598e-10! 5.53643277e-11! 1.27014052e-10! 3.30646899e-10! 7.07132547e-11! 6.79409957e-12! 0.00000000e+00! 0.00000000e+00! 9.70239999e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.27999999e-10! 5.30944511e-10! 1.43932713e-11! 9.41230947e-12! 2.07444496e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.01470004e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20499300e+02! 5.45710000e+00! 2.61710000e+00! 5.94470000e+02! 2.73150000e+02! 4.66480000e-08! 1.54800000e-07! 9.30200000e-03! 2.74490000e-11! 7.11440000e-05! 1.11230000e-02! 0.00000000e+00! 3.29769989e-10! 9.40203360e-10! 1.01148513e-10! 5.36858266e-11! 1.22599111e-10! 3.20336396e-10! 6.84854812e-11! 2.36669989e-11! 0.00000000e+00! 0.00000000e+00! 9.49999968e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 5.15557375e-10! 1.48949169e-11! 9.60595405e-12! 2.10567588e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.96669989e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20500000e+02! 5.53110000e+00! 2.61630000e+00! 5.94530000e+02! 2.73000000e+02! 4.76530000e-08! 1.57980000e-07! 9.51820000e-03! 3.71070000e-11! 6.77780000e-05! 1.06590000e-02! 0.00000000e+00! 3.33260003e-10! 8.56890003e-10! 3.02399980e-11! 6.19999972e-12! 5.51000001e-12! 1.16200001e-11! 4.55000013e-12! 0.00000000e+00! 9.46730028e-10! 0.00000000e+00! 8.50500004e-10! 6.14700027e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.30750002e-10! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.53999989e-12! 2.03999990e-12! 4.67000006e-12! 0.00000000e+00! 0.00000000e+00! 3.79999990e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20500700e+02! 5.60520000e+00! 2.61680000e+00! 5.94430000e+02! 2.72800000e+02! 4.66310000e-08! 1.55530000e-07! 9.78590000e-03! 3.15000000e-11! 5.67680000e-05! 8.94740000e-03! 0.00000000e+00! 3.40920014e-10! 8.56890003e-10! 3.02399980e-11! 6.19999972e-12! 5.51000001e-12! 1.16200001e-11! 4.55000013e-12! 1.44709999e-11! 9.46730028e-10! 0.00000000e+00! 8.63939975e-10! 6.14700027e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.30750002e-10! 1.46215123e-11! 9.50041521e-12! 2.08865460e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.53999989e-12! 2.03999990e-12! 4.67000006e-12! 0.00000000e+00! 0.00000000e+00! 3.80880015e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20501400e+02! 5.67980000e+00! 2.61700000e+00! 5.94450000e+02! 2.72960000e+02! 4.68190000e-08! 1.54580000e-07! 9.75100000e-03! 4.94960000e-11! 8.21920000e-05! 1.25950000e-02! 0.00000000e+00! 3.70109970e-10! 8.20330026e-10! 2.35799991e-11! 5.35172080e-11! 1.22155605e-10! 9.53999987e-12! 6.82616880e-11! 2.50569999e-11! 6.80509982e-10! 0.00000000e+00! 8.66539951e-10! 1.16949991e-10! 0.00000000e+00! 0.00000000e+00! 1.12000000e-10! 2.08890003e-10! 1.49362432e-11! 9.62190744e-12! 2.10824865e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.40999971e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.65140010e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20510400e+02! 4.99200000e+00! 2.61650000e+00! 6.96110000e+02! 2.81650000e+02! 1.09250000e-07! 2.61500000e-07! 4.32120000e-03! 9.56020000e-11! 7.33180000e-05! 1.13350000e-02! 0.00000000e+00! 5.59669977e-10! 1.48276968e-09! 1.98741662e-10! 1.35464959e-10! 3.37700978e-10! 8.22679980e-10! 1.77026047e-10! 2.25560005e-11! 0.00000000e+00! 0.00000000e+00! 1.13919996e-09! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.26524435e-09! 1.48618860e-11! 9.59320384e-12! 2.10361954e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 8.22779969e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20511100e+02! 4.92370000e+00! 2.61720000e+00! 6.96250000e+02! 2.81430000e+02! 1.13210000e-07! 2.88500000e-07! 5.33010000e-03! 1.21290000e-10! 7.09890000e-05! 1.07840000e-02! 0.00000000e+00! 5.51430013e-10! 1.62006386e-09! 2.23437227e-10! 1.56158850e-10! 3.92131633e-10! 9.49796020e-10! 2.04491785e-10! 5.94290025e-12! 0.00000000e+00! 0.00000000e+00! 1.30969990e-09! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.45494961e-09! 1.43679634e-11! 9.40254125e-12! 2.07286948e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.52570037e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20511800e+02! 4.85530000e+00! 2.61660000e+00! 6.96240000e+02! 2.81380000e+02! 1.11600000e-07! 2.87740000e-07! 5.19870000e-03! 1.20140000e-10! 7.48950000e-05! 1.11570000e-02! 0.00000000e+00! 5.41919953e-10! 1.61619917e-09! 2.22742089e-10! 1.55576357e-10! 3.90599525e-10! 9.46217993e-10! 2.03718695e-10! 4.50000020e-12! 0.00000000e+00! 0.00000000e+00! 1.32369993e-09! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 6.32999986e-10! 1.44960977e-09! 1.43250654e-11! 9.38598158e-12! 2.07019870e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.11720001e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20512500e+02! 4.78660000e+00! 2.61640000e+00! 6.96170000e+02! 2.81560000e+02! 1.14490000e-07! 2.76900000e-07! 4.34020000e-03! 1.22220000e-10! 7.07590000e-05! 1.06780000e-02! 0.00000000e+00! 5.29919997e-10! 1.56107816e-09! 2.12827284e-10! 1.47268142e-10! 3.68746617e-10! 8.95183205e-10! 1.92691696e-10! 8.76469990e-12! 0.00000000e+00! 0.00000000e+00! 1.21980004e-09! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.37344669e-09! 1.44518581e-11! 9.43492593e-12! 2.07809239e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.51210003e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20513200e+02! 4.71770000e+00! 2.61710000e+00! 6.96090000e+02! 2.81530000e+02! 1.09490000e-07! 2.58130000e-07! 4.01370000e-03! 7.11850000e-11! 6.85380000e-05! 1.04800000e-02! 0.00000000e+00! 5.23259991e-10! 1.27599997e-09! 9.30699962e-11! 4.42999977e-12! 6.67999987e-12! 1.36000005e-11! 5.58000000e-12! 3.16669989e-11! 2.30699992e-09! 0.00000000e+00! 1.09669995e-09! 4.81399989e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 7.69419972e-10! 1.51327631e-11! 9.69776690e-12! 2.12048365e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.44000002e-12! 0.00000000e+00! 2.40000012e-12! 0.00000000e+00! 0.00000000e+00! 8.33330002e-11! 4.48999995e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20513900e+02! 4.64830000e+00! 2.61640000e+00! 6.96320000e+02! 2.81610000e+02! 9.47040000e-08! 2.09600000e-07! 3.66210000e-03! 2.22750000e-11! 6.88220000e-05! 1.05510000e-02! 2.58499999e-10! 5.31109989e-10! 1.21885979e-09! 1.51271329e-10! 9.56867363e-11! 2.33073172e-10! 5.78334769e-10! 1.24230778e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.76330017e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.00588715e-10! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 7.93329985e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20514600e+02! 4.57930000e+00! 2.61650000e+00! 6.96220000e+02! 2.81570000e+02! 1.00720000e-07! 2.32950000e-07! 3.97200000e-03! 9.62670000e-11! 6.37390000e-05! 9.90200000e-03! 0.00000000e+00! 5.46070023e-10! 1.33759370e-09! 1.72628412e-10! 1.13583108e-10! 2.80145601e-10! 6.88266610e-10! 1.47983570e-10! 2.10000003e-11! 0.00000000e+00! 0.00000000e+00! 1.04069997e-09! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 5.60999969e-10! 1.06464870e-09! 1.48156244e-11! 9.57534572e-12! 2.10073955e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 8.96669961e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20515300e+02! 4.50990000e+00! 2.61700000e+00! 6.96190000e+02! 2.81660000e+02! 9.52620000e-08! 2.12310000e-07! 3.46300000e-03! 4.76560000e-11! 4.70170000e-05! 7.46000000e-03! 0.00000000e+00! 5.48719958e-10! 1.23263988e-09! 1.53750040e-10! 9.77637832e-11! 2.38536385e-10! 5.91093507e-10! 1.26987532e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.02330000e-09! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.19629539e-10! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.29999966e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20521500e+02! 4.91940000e+00! 2.61680000e+00! 8.97450000e+02! 2.89680000e+02! 2.68600000e-08! 9.69440000e-08! 1.98200000e-02! 1.86000000e-11! 4.58080000e-05! 8.97610000e-03! 0.00000000e+00! 2.76279999e-10! 6.46007303e-10! 4.82305203e-11! 9.34267334e-12! 5.96431281e-12! 4.79503312e-11! 9.63146837e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 5.37999978e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.09054141e-10! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 5.20000015e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20523600e+02! 5.10840000e+00! 2.61700000e+00! 8.97240000e+02! 2.89930000e+02! 2.43070000e-08! 9.76810000e-08! 2.06230000e-02! 1.67640000e-11! 4.06460000e-05! 8.06820000e-03! 1.04740001e-11! 2.57030008e-10! 4.61519989e-10! 1.81200003e-11! 3.03999989e-12! 5.26000033e-12! 1.70099993e-11! 4.63999976e-12! 1.99999999e-12! 6.38819997e-10! 0.00000000e+00! 4.12999995e-10! 3.71099991e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.09139996e-10! 1.42507377e-11! 9.35728925e-12! 2.06557133e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.06999998e-12! 0.00000000e+00! 2.04999993e-12! 0.00000000e+00! 0.00000000e+00! 3.19999999e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20524300e+02! 5.17120000e+00! 2.61680000e+00! 8.97350000e+02! 2.90220000e+02! 2.63880000e-08! 9.78810000e-08! 2.02670000e-02! 2.69050000e-11! 4.43550000e-05! 8.87970000e-03! 0.00000000e+00! 2.53619986e-10! 4.61519989e-10! 1.81200003e-11! 3.03999989e-12! 5.26000033e-12! 1.70099993e-11! 4.63999976e-12! 2.60000008e-11! 6.38819997e-10! 0.00000000e+00! 4.79329965e-10! 3.71099991e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.09139996e-10! 1.49642798e-11! 9.63272951e-12! 2.10999412e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.06999998e-12! 0.00000000e+00! 2.04999993e-12! 0.00000000e+00! 0.00000000e+00! 4.76669988e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20525000e+02! 5.23390000e+00! 2.61650000e+00! 8.97370000e+02! 2.90160000e+02! 2.47510000e-08! 9.83270000e-08! 2.06740000e-02! 2.58770000e-11! 4.45290000e-05! 8.83320000e-03! 0.00000000e+00! 2.37639991e-10! 6.53039789e-10! 4.94954841e-11! 1.04026596e-11! 8.75237209e-12! 5.44614978e-11! 1.10383256e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 5.10670006e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.18771257e-10! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 5.00000007e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20525700e+02! 5.29650000e+00! 2.61720000e+00! 8.97350000e+02! 2.89840000e+02! 2.51190000e-08! 9.74240000e-08! 2.08660000e-02! 2.18130000e-11! 4.06380000e-05! 8.02480000e-03! 0.00000000e+00! 2.30020003e-10! 6.48448073e-10! 4.86695545e-11! 9.71056482e-12! 6.93196932e-12! 5.02101728e-11! 1.01197479e-11! 3.81430026e-11! 0.00000000e+00! 0.00000000e+00! 4.76430007e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.12426672e-10! 1.53253018e-11! 9.77209112e-12! 2.13247024e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.28860004e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20527100e+02! 5.42140000e+00! 2.61660000e+00! 8.97360000e+02! 2.89630000e+02! 2.56540000e-08! 9.85150000e-08! 2.12520000e-02! 2.59620000e-11! 4.41440000e-05! 8.74680000e-03! 0.00000000e+00! 2.55339999e-10! 6.53995802e-10! 4.96674368e-11! 1.05467501e-11! 9.13137014e-12! 5.53466023e-11! 1.12295685e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.20420004e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.20092172e-10! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.29439991e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20527800e+02! 5.48380000e+00! 2.61720000e+00! 8.97290000e+02! 2.89700000e+02! 2.47250000e-08! 9.88760000e-08! 2.10860000e-02! 1.02470000e-11! 3.37230000e-05! 6.66560000e-03! 3.79999990e-11! 2.64540001e-10! 6.55831500e-10! 4.99976276e-11! 1.08234359e-11! 9.85912914e-12! 5.70461872e-11! 1.15967947e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.14189988e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.22628602e-10! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 5.59170002e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20528500e+02! 5.54630000e+00! 2.61640000e+00! 8.97240000e+02! 2.89910000e+02! 2.47730000e-08! 9.82750000e-08! 2.12100000e-02! 1.31100000e-11! 3.75760000e-05! 7.57230000e-03! 3.60280000e-11! 2.65980016e-10! 6.52775389e-10! 4.94479215e-11! 1.03628052e-11! 8.64754275e-12! 5.42166832e-11! 1.09854278e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 5.01510000e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.18405896e-10! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.57429997e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20529200e+02! 5.60870000e+00! 2.61700000e+00! 8.97210000e+02! 2.90050000e+02! 2.60570000e-08! 9.86200000e-08! 2.08130000e-02! 2.10260000e-11! 3.99070000e-05! 8.02710000e-03! 0.00000000e+00! 2.65750005e-10! 6.54529708e-10! 4.97634781e-11! 1.06272265e-11! 9.34304543e-12! 5.58409430e-11! 1.13363789e-11! 4.63889994e-12! 0.00000000e+00! 0.00000000e+00! 5.10139986e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.20829916e-10! 1.43291949e-11! 9.38757492e-12! 2.07045579e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.71109991e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20529900e+02! 5.67120000e+00! 2.61810000e+00! 8.97350000e+02! 2.90100000e+02! 2.76420000e-08! 9.98760000e-08! 2.03160000e-02! 1.83750000e-11! 3.67760000e-05! 7.32400000e-03! 4.80000024e-12! 2.58819993e-10! 6.60916433e-10! 5.09122779e-11! 1.15898749e-11! 1.18750782e-11! 6.17541851e-11! 1.26140452e-11! 6.34289973e-12! 0.00000000e+00! 0.00000000e+00! 5.10909981e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.29654718e-10! 1.43798558e-11! 9.40713132e-12! 2.07360986e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.87709995e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20530600e+02! 5.73390000e+00! 2.62000000e+00! 8.97260000e+02! 2.90370000e+02! 2.83820000e-08! 1.00520000e-07! 1.99800000e-02! 4.20970000e-11! 3.98850000e-05! 7.90920000e-03! 0.00000000e+00! 2.48000009e-10! 4.75049999e-10! 1.39599998e-11! 3.26999994e-12! 5.01000023e-12! 1.12799995e-11! 5.48999995e-12! 2.50000003e-11! 5.77239978e-10! 0.00000000e+00! 4.49329990e-10! 3.45200014e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.02589999e-10! 1.49345484e-11! 9.62125258e-12! 2.10814317e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.11999991e-12! 0.00000000e+00! 2.36999981e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20531200e+02! 5.79650000e+00! 2.62130000e+00! 8.97330000e+02! 2.90290000e+02! 2.64550000e-08! 9.88220000e-08! 2.05730000e-02! 2.51490000e-11! 4.33970000e-05! 8.64700000e-03! 0.00000000e+00! 0.00000000e+00! 4.75759987e-10! 1.67810002e-11! 4.29179999e-12! 5.57219982e-12! 1.07720005e-11! 3.28510006e-12! 0.00000000e+00! 5.64549962e-10! 0.00000000e+00! 4.82670015e-10! 3.79570021e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.06559997e-10! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.27159957e-12! 0.00000000e+00! 1.95439997e-12! 0.00000000e+00! 0.00000000e+00! 3.03330000e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20531900e+02! 5.85310000e+00! 2.61150000e+00! 8.97960000e+02! 2.90550000e+02! 2.66980000e-08! 9.97250000e-08! 2.01830000e-02! 2.36590000e-11! 4.81090000e-05! 9.23030000e-03! 0.00000000e+00! 0.00000000e+00! 4.76509998e-10! 1.97299989e-11! 5.36000020e-12! 6.16000003e-12! 1.02399998e-11! 9.80000044e-13! 0.00000000e+00! 5.51280022e-10! 0.00000000e+00! 3.91329996e-10! 4.15499996e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.10720003e-10! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.42999977e-12! 0.00000000e+00! 1.51999995e-12! 0.00000000e+00! 0.00000000e+00! 3.49999994e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20533300e+02! 5.78880000e+00! 2.58980000e+00! 9.31130000e+02! 2.91800000e+02! 2.38410000e-08! 9.67690000e-08! 2.27630000e-02! 8.82290000e-12! 4.57040000e-05! 8.64720000e-03! 5.66069977e-12! 0.00000000e+00! 6.45117404e-10! 4.80704608e-11! 9.20854625e-12! 5.61152166e-12! 4.71264347e-11! 9.45345018e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.74060013e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.07824562e-10! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.90559998e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20534000e+02! 5.73500000e+00! 2.60970000e+00! 9.48620000e+02! 2.92900000e+02! 2.40250000e-08! 9.67950000e-08! 2.30570000e-02! 1.14550000e-11! 3.90810000e-05! 7.53980000e-03! 3.86800002e-11! 0.00000000e+00! 6.45249632e-10! 4.80942404e-11! 9.22847389e-12! 5.66393677e-12! 4.72488403e-11! 9.47989864e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.63499988e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.08007242e-10! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.70829999e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20534700e+02! 5.67930000e+00! 2.61230000e+00! 9.64110000e+02! 2.93750000e+02! 2.52670000e-08! 9.59330000e-08! 2.40600000e-02! 1.73290000e-11! 3.56270000e-05! 6.98650000e-03! 1.26699996e-11! 0.00000000e+00! 6.40866415e-10! 4.73058120e-11! 8.56780272e-12! 3.92618793e-12! 4.31905449e-11! 8.60302888e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.95540017e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.01950726e-10! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.47430001e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20535400e+02! 5.62430000e+00! 2.61440000e+00! 9.81170000e+02! 2.95100000e+02! 2.52710000e-08! 9.59580000e-08! 2.44320000e-02! 1.03770000e-11! 3.43020000e-05! 6.82270000e-03! 3.81339994e-11! 0.00000000e+00! 6.40993536e-10! 4.73286792e-11! 8.58696361e-12! 3.97658642e-12! 4.33082459e-11! 8.62845993e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.88390015e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.02126384e-10! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 6.78890000e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20536100e+02! 5.56910000e+00! 2.61800000e+00! 9.99070000e+02! 2.96570000e+02! 2.55480000e-08! 9.65400000e-08! 2.48090000e-02! 1.70710000e-11! 3.23600000e-05! 6.53550000e-03! 3.44429997e-12! 0.00000000e+00! 6.43953002e-10! 4.78610034e-11! 9.03303127e-12! 5.14986925e-12! 4.60483006e-11! 9.22049936e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.56170018e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.06215585e-10! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.88610004e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20536800e+02! 5.51450000e+00! 2.62110000e+00! 1.01120000e+03! 2.97660000e+02! 2.57940000e-08! 9.69170000e-08! 2.49640000e-02! 2.52790000e-11! 2.81800000e-05! 5.70610000e-03! 0.00000000e+00! 0.00000000e+00! 6.45869969e-10! 4.82058282e-11! 9.32197982e-12! 5.90988239e-12! 4.78232176e-11! 9.60400249e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.57710001e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.08864431e-10! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.64710083e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20537500e+02! 5.45880000e+00! 2.62250000e+00! 1.01130000e+03! 2.97680000e+02! 2.58010000e-08! 9.65900000e-08! 2.49230000e-02! 4.15930000e-11! 2.77790000e-05! 5.59860000e-03! 0.00000000e+00! 0.00000000e+00! 6.44207188e-10! 4.79067376e-11! 9.07135391e-12! 5.25066709e-12! 4.62837026e-11! 9.27136232e-12! 1.30000004e-11! 0.00000000e+00! 0.00000000e+00! 4.40999987e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.06566887e-10! 1.45777782e-11! 9.48353288e-12! 2.08593177e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20539600e+02! 5.28780000e+00! 2.61130000e+00! 1.01160000e+03! 2.97650000e+02! 2.58330000e-08! 9.86590000e-08! 2.51730000e-02! 2.91260000e-11! 3.14590000e-05! 6.40240000e-03! 0.00000000e+00! 0.00000000e+00! 4.06819994e-10! 1.09600003e-11! 1.06571175e-11! 2.52999986e-12! 1.41199994e-11! 2.81999988e-12! 0.00000000e+00! 6.09739981e-10! 0.00000000e+00! 3.38920003e-10! 4.21899980e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.58899973e-11! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.69999994e-12! 0.00000000e+00! 2.10999989e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20540300e+02! 5.23060000e+00! 2.61310000e+00! 1.01130000e+03! 2.97610000e+02! 2.63060000e-08! 9.82900000e-08! 2.51680000e-02! 3.26440000e-11! 3.04730000e-05! 6.11280000e-03! 0.00000000e+00! 0.00000000e+00! 4.06819994e-10! 1.09600003e-11! 1.03743021e-11! 2.52999986e-12! 1.41199994e-11! 2.81999988e-12! 0.00000000e+00! 6.09739981e-10! 0.00000000e+00! 3.46560003e-10! 4.21899980e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.58899973e-11! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.69999994e-12! 0.00000000e+00! 2.10999989e-12! 0.00000000e+00! 0.00000000e+00! 2.77500002e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20541000e+02! 5.17340000e+00! 2.61740000e+00! 1.01150000e+03! 2.97620000e+02! 2.58020000e-08! 9.85180000e-08! 2.50780000e-02! 3.22700000e-11! 3.82450000e-05! 7.75940000e-03! 0.00000000e+00! 0.00000000e+00! 4.03170025e-10! 7.84000035e-12! 1.38999999e-12! 2.60999989e-12! 1.32000001e-11! 6.09999985e-12! 0.00000000e+00! 5.30670008e-10! 0.00000000e+00! 3.07999987e-10! 2.59699987e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.24700039e-11! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.85999999e-12! 1.54000001e-12! 2.41999996e-12! 0.00000000e+00! 0.00000000e+00! 6.68059982e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20541700e+02! 5.11620000e+00! 2.62120000e+00! 1.01120000e+03! 2.97640000e+02! 2.61120000e-08! 9.86270000e-08! 2.48740000e-02! 3.64670000e-11! 3.78430000e-05! 7.76620000e-03! 0.00000000e+00! 0.00000000e+00! 4.03170025e-10! 7.84000035e-12! 1.38999999e-12! 2.60999989e-12! 1.32000001e-11! 6.09999985e-12! 0.00000000e+00! 5.30670008e-10! 0.00000000e+00! 3.46109974e-10! 2.59699987e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.24700039e-11! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.85999999e-12! 1.54000001e-12! 2.41999996e-12! 0.00000000e+00! 0.00000000e+00! 7.85709969e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20542400e+02! 5.05930000e+00! 2.62010000e+00! 1.01120000e+03! 2.97680000e+02! 2.62850000e-08! 9.87100000e-08! 2.47650000e-02! 2.75000000e-11! 3.10860000e-05! 6.40900000e-03! 0.00000000e+00! 0.00000000e+00! 4.05089989e-10! 1.16099994e-11! 2.58999983e-12! 9.52448103e-12! 1.61299984e-11! 3.17000007e-12! 0.00000000e+00! 4.29870001e-10! 0.00000000e+00! 4.27810010e-10! 4.09900031e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.48600018e-11! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.64000019e-12! 0.00000000e+00! 2.61999992e-12! 0.00000000e+00! 0.00000000e+00! 4.44440006e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20543100e+02! 5.00240000e+00! 2.61640000e+00! 1.00960000e+03! 2.97520000e+02! 2.66380000e-08! 9.90470000e-08! 2.52270000e-02! 5.08610000e-11! 3.21150000e-05! 6.62280000e-03! 0.00000000e+00! 0.00000000e+00! 6.56700971e-10! 5.01540337e-11! 1.09544960e-11! 1.02038551e-11! 5.78512585e-11! 1.17707450e-11! 5.23530004e-12! 0.00000000e+00! 0.00000000e+00! 3.68999997e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.23830057e-10! 1.43469264e-11! 9.39441927e-12! 2.07155976e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.78819997e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20543800e+02! 4.95360000e+00! 2.60380000e+00! 9.93270000e+02! 2.96220000e+02! 2.67150000e-08! 9.90130000e-08! 2.47080000e-02! 5.13800000e-11! 3.35330000e-05! 7.05820000e-03! 0.00000000e+00! 0.00000000e+00! 6.56528110e-10! 5.01229371e-11! 1.09284370e-11! 1.01353136e-11! 5.76911852e-11! 1.17361581e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.21670004e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.23591179e-10! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.66670060e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20545100e+02! 5.03430000e+00! 2.60270000e+00! 9.83090000e+02! 2.95280000e+02! 2.64320000e-08! 9.91160000e-08! 2.48610000e-02! 5.49130000e-11! 3.00940000e-05! 6.51040000e-03! 0.00000000e+00! 0.00000000e+00! 6.57051857e-10! 5.02171429e-11! 1.10073808e-11! 1.03429565e-11! 5.81761098e-11! 1.18409354e-11! 2.19999990e-11! 0.00000000e+00! 0.00000000e+00! 3.02000008e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.24314864e-10! 1.48453558e-11! 9.58682266e-12! 2.10259032e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 5.76669996e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20545800e+02! 5.09480000e+00! 2.61330000e+00! 9.83100000e+02! 2.95300000e+02! 2.59940000e-08! 9.91340000e-08! 2.46990000e-02! 4.66100000e-11! 3.54210000e-05! 7.85660000e-03! 0.00000000e+00! 0.00000000e+00! 6.57143395e-10! 5.02336089e-11! 1.10211770e-11! 1.03792435e-11! 5.82608545e-11! 1.18592462e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.61999986e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.24441332e-10! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.39999999e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20546500e+02! 5.15300000e+00! 2.61330000e+00! 9.82530000e+02! 2.95200000e+02! 2.56990000e-08! 9.89430000e-08! 2.47130000e-02! 5.05750000e-11! 3.56770000e-05! 7.79500000e-03! 0.00000000e+00! 0.00000000e+00! 6.56172172e-10! 5.00589119e-11! 1.08747863e-11! 9.99419644e-12! 5.73616259e-11! 1.16649511e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.86999988e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.23099350e-10! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.99999998e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20547200e+02! 5.21200000e+00! 2.61580000e+00! 9.82310000e+02! 2.95160000e+02! 2.58570000e-08! 9.90650000e-08! 2.47010000e-02! 4.52110000e-11! 2.77320000e-05! 5.93920000e-03! 0.00000000e+00! 0.00000000e+00! 6.56792565e-10! 5.01704962e-11! 1.09682922e-11! 1.02401429e-11! 5.79359997e-11! 1.17890558e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.37560008e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.23956539e-10! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.44720016e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20547900e+02! 5.27300000e+00! 2.61690000e+00! 9.82530000e+02! 2.95180000e+02! 2.55790000e-08! 9.89640000e-08! 2.47940000e-02! 5.43510000e-11! 2.67340000e-05! 5.82250000e-03! 0.00000000e+00! 0.00000000e+00! 6.56278920e-10! 5.00781187e-11! 1.08908828e-11! 1.00365324e-11! 5.74604947e-11! 1.16863134e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.56089991e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.23246899e-10! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.94290017e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20548600e+02! 5.33540000e+00! 2.61640000e+00! 9.82650000e+02! 2.95240000e+02! 2.57670000e-08! 9.86990000e-08! 2.45780000e-02! 5.26840000e-11! 2.82530000e-05! 6.19520000e-03! 0.00000000e+00! 0.00000000e+00! 6.54931387e-10! 4.98357362e-11! 1.06877753e-11! 9.50230519e-12! 5.62128746e-11! 1.14167426e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.90709992e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.21384985e-10! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.61070002e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20549300e+02! 5.39870000e+00! 2.61740000e+00! 9.82860000e+02! 2.95250000e+02! 2.58610000e-08! 9.91560000e-08! 2.48960000e-02! 4.52830000e-11! 2.37430000e-05! 5.18510000e-03! 0.00000000e+00! 0.00000000e+00! 6.57255250e-10! 5.02537317e-11! 1.10380385e-11! 1.04235943e-11! 5.83644313e-11! 1.18816250e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.40629996e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.24595917e-10! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.66569995e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20550000e+02! 5.46180000e+00! 2.61680000e+00! 9.82930000e+02! 2.95290000e+02! 2.57220000e-08! 9.88100000e-08! 2.45710000e-02! 2.85120000e-11! 3.02890000e-05! 6.70390000e-03! 0.00000000e+00! 0.00000000e+00! 6.55495824e-10! 4.99372592e-11! 1.07728496e-11! 9.72607585e-12! 5.67354635e-11! 1.15296566e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.11999990e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.22164875e-10! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.15880004e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20550700e+02! 5.52500000e+00! 2.61670000e+00! 9.82870000e+02! 2.95280000e+02! 2.55970000e-08! 9.86150000e-08! 2.46090000e-02! 3.17330000e-11! 3.15900000e-05! 6.96660000e-03! 0.00000000e+00! 0.00000000e+00! 6.54504284e-10! 4.97589019e-11! 1.06233945e-11! 9.33296582e-12! 5.58174028e-11! 1.13312927e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.81000009e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.20794791e-10! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.16669989e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20551400e+02! 5.58840000e+00! 2.61720000e+00! 9.82800000e+02! 2.95250000e+02! 2.52430000e-08! 9.84520000e-08! 2.46770000e-02! 4.21590000e-11! 3.16020000e-05! 6.99230000e-03! 0.00000000e+00! 0.00000000e+00! 6.53675392e-10! 4.96098163e-11! 1.04984649e-11! 9.00436583e-12! 5.50499993e-11! 1.11654817e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.62329972e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.19649526e-10! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.73329986e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20552100e+02! 5.65160000e+00! 2.61640000e+00! 9.82840000e+02! 2.95290000e+02! 2.46350000e-08! 9.78680000e-08! 2.45200000e-02! 4.19950000e-11! 3.28790000e-05! 7.28880000e-03! 0.00000000e+00! 0.00000000e+00! 6.50705823e-10! 4.90756602e-11! 1.00508638e-11! 7.82705151e-12! 5.23005250e-11! 1.05714075e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.97999994e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.15546274e-10! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20552800e+02! 5.71500000e+00! 2.61690000e+00! 9.82830000e+02! 2.95280000e+02! 2.45510000e-08! 9.78240000e-08! 2.47210000e-02! 4.33660000e-11! 3.44300000e-05! 7.56750000e-03! 0.00000000e+00! 0.00000000e+00! 6.50482057e-10! 4.90354146e-11! 1.00171408e-11! 7.73834902e-12! 5.20933713e-11! 1.05266481e-11! 3.99999998e-12! 0.00000000e+00! 0.00000000e+00! 3.72999992e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.15237118e-10! 1.43101997e-11! 9.38024311e-12! 2.06927322e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.16669989e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20553500e+02! 5.77850000e+00! 2.61690000e+00! 9.82810000e+02! 2.95250000e+02! 2.66580000e-08! 9.76930000e-08! 2.49200000e-02! 5.32950000e-11! 3.39790000e-05! 7.36830000e-03! 0.00000000e+00! 0.00000000e+00! 6.49815923e-10! 4.89155973e-11! 9.91673670e-12! 7.47425993e-12! 5.14766285e-11! 1.03933884e-11! 2.86290002e-11! 0.00000000e+00! 0.00000000e+00! 3.13339993e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.14316695e-10! 1.50424430e-11! 9.66290156e-12! 2.11486037e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.29139997e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20648600e+02! 6.54560000e+00! 2.79390000e+00! 6.69770000e+02! 2.79370000e+02! 8.04130000e-08! 2.10510000e-07! 5.83150000e-03! 1.55080000e-10! 1.38590000e-05! 5.80620000e-03! 0.00000000e+00! 6.37000008e-10! 1.22348709e-09! 1.52103663e-10! 9.63841923e-11! 2.34907677e-10! 5.82619064e-10! 1.25156482e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.08539999e-09! 0.00000000e+00! 1.58699998e-11! 7.12999972e-12! 5.79999972e-11! 9.06982489e-10! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.81670000e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20649300e+02! 6.59670000e+00! 2.84730000e+00! 6.69750000e+02! 2.79410000e+02! 7.99890000e-08! 2.10490000e-07! 5.95350000e-03! 1.47480000e-10! 1.33280000e-05! 5.68470000e-03! 0.00000000e+00! 6.32109975e-10! 1.22338528e-09! 1.52085372e-10! 9.63688643e-11! 2.34867376e-10! 5.82524917e-10! 1.25136138e-10! 2.08330003e-11! 0.00000000e+00! 0.00000000e+00! 1.05240006e-09! 0.00000000e+00! 1.73652290e-11! 7.80176965e-12! 5.79999972e-11! 9.06841990e-10! 1.48106596e-11! 9.57342886e-12! 2.10043025e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.74720012e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20650000e+02! 6.64770000e+00! 2.90090000e+00! 6.74280000e+02! 2.79930000e+02! 7.95880000e-08! 2.15250000e-07! 6.22180000e-03! 1.60140000e-10! 1.40360000e-05! 6.02030000e-03! 0.00000000e+00! 6.12070006e-10! 1.24758970e-09! 1.56439098e-10! 1.00017120e-10! 2.44463283e-10! 6.04934991e-10! 1.29978237e-10! 3.79429994e-11! 0.00000000e+00! 0.00000000e+00! 1.15519994e-09! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 6.80000015e-11! 9.40286293e-10! 1.53193552e-11! 9.76979522e-12! 2.13210005e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 8.22289944e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20659700e+02! 6.50320000e+00! 3.30200000e+00! 9.76680000e+02! 2.95430000e+02! 2.26370000e-08! 1.34220000e-07! 2.60640000e-02! 1.25970000e-10! 4.21360000e-06! 2.11180000e-03! 1.52319990e-09! 7.24380000e-10! 8.35554625e-10! 8.23250218e-11! 3.79124891e-11! 8.11108611e-11! 2.23445748e-10! 4.75504774e-11! 1.88000004e-10! 0.00000000e+00! 0.00000000e+00! 5.67669967e-10! 0.00000000e+00! 6.71597708e-11! 3.01732285e-11! 6.19999954e-11! 3.70959763e-10! 1.97806823e-11! 1.14919489e-11! 2.40984836e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.90000026e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20660400e+02! 6.48690000e+00! 3.26040000e+00! 9.76340000e+02! 2.95520000e+02! 2.26610000e-08! 1.42230000e-07! 2.56130000e-02! 8.88200000e-11! 4.02540000e-06! 2.16380000e-03! 1.12190002e-09! 6.60639987e-10! 6.41940001e-10! 6.72800010e-11! 1.15480001e-10! 2.31609995e-10! 7.53489993e-10! 2.37809994e-10! 2.03000006e-10! 1.08470000e-09! 0.00000000e+00! 6.05999972e-10! 5.95810012e-10! 5.74997688e-11! 2.58332297e-11! 0.00000000e+00! 1.03590003e-09! 2.02266450e-11! 1.16640985e-11! 2.43761244e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.80699994e-11! 6.87900015e-11! 6.27900024e-11! 4.50399995e-11! 3.07499998e-11! 8.76669987e-11! 6.45710041e-10! 1.13769993e-10! 1.48259988e-10! 1.48259988e-10! 1.10000002e-10! 0.00000000e+00!
+ 2.20662500e+02! 6.47720000e+00! 3.07310000e+00! 9.76470000e+02! 2.95290000e+02! 2.35560000e-08! 9.90860000e-08! 2.59230000e-02! 5.33640000e-12! 4.09180000e-06! 2.36620000e-03! 3.26230015e-10! 0.00000000e+00! 4.12170020e-10! 1.52400002e-11! 1.63499995e-11! 1.78500010e-11! 4.04900002e-11! 9.77000078e-12! 1.78890000e-10! 4.48319992e-10! 0.00000000e+00! 4.22339996e-10! 1.51309992e-10! 4.69199983e-12! 2.10799997e-12! 5.89999993e-11! 1.22460000e-10! 1.95098347e-11! 1.13873962e-11! 2.39298616e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.34999996e-12! 2.86999981e-12! 4.55999995e-12! 0.00000000e+00! 0.00000000e+00! 6.33429975e-11! 2.47299993e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20663200e+02! 6.49000000e+00! 3.02100000e+00! 9.76450000e+02! 2.95350000e+02! 2.34440000e-08! 1.02730000e-07! 2.58860000e-02! 4.84840000e-11! 3.83200000e-06! 2.28100000e-03! 4.36920000e-10! 0.00000000e+00! 6.75428935e-10! 5.35226898e-11! 1.37772953e-11! 1.76285982e-11! 7.51908258e-11! 1.55172767e-11! 1.86060001e-10! 0.00000000e+00! 0.00000000e+00! 4.45920023e-10! 0.00000000e+00! 2.20413601e-11! 9.90263947e-12! 5.49999976e-11! 1.49707260e-10! 1.97230027e-11! 1.14696837e-11! 2.40625748e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 6.61389971e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20663900e+02! 6.53960000e+00! 2.98510000e+00! 9.76060000e+02! 2.95470000e+02! 2.22850000e-08! 1.15830000e-07! 2.55430000e-02! 3.05230000e-11! 3.39970000e-06! 2.08810000e-03! 3.26879995e-10! 0.00000000e+00! 4.65940009e-10! 2.35799991e-11! 1.71500002e-11! 2.41200011e-11! 1.22320001e-10! 2.84699989e-11! 2.27719996e-10! 0.00000000e+00! 0.00000000e+00! 4.17750001e-10! 1.36880007e-09! 5.90715879e-11! 2.65394096e-11! 0.00000000e+00! 1.75630011e-10! 2.09615918e-11! 1.19478013e-11! 2.48336803e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.58000001e-12! 7.11000009e-12! 7.91999973e-12! 1.62999995e-12! 1.58000002e-12! 4.28609995e-11! 5.24100000e-11! 1.79200006e-11! 2.89749995e-11! 2.89749995e-11! 1.48499997e-11! 0.00000000e+00!
+ 2.20666700e+02! 6.77900000e+00! 2.91840000e+00! 9.76590000e+02! 2.96730000e+02! 2.66040000e-08! 1.53460000e-07! 2.58890000e-02! 1.05000000e-10! 4.13540000e-06! 2.81070000e-03! 2.75559991e-10! 1.14159993e-09! 7.00719982e-10! 7.20000032e-11! 9.36200006e-11! 2.05380005e-10! 6.43299969e-10! 1.19660004e-10! 6.29219954e-10! 2.59350014e-10! 0.00000000e+00! 9.08830011e-10! 3.00390018e-10! 3.25107302e-10! 1.46062704e-10! 2.39999999e-11! 7.53190010e-10! 3.28985381e-11! 1.65556804e-11! 3.22652495e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 5.81000005e-12! 3.29399980e-11! 1.81200003e-11! 2.36999981e-12! 1.27799993e-11! 1.22650001e-10! 3.22280008e-10! 7.00100047e-11! 7.74450018e-11! 7.74450018e-11! 6.22299989e-11! 0.00000000e+00!
+ 2.20667400e+02! 6.84230000e+00! 2.93050000e+00! 9.76530000e+02! 2.97110000e+02! 2.87440000e-08! 1.70930000e-07! 2.57170000e-02! 9.86280000e-11! 4.88330000e-06! 3.87870000e-03! 1.98199998e-10! 1.35559997e-09! 7.80820020e-10! 9.91299959e-11! 1.61560001e-10! 3.39329981e-10! 8.36359981e-10! 1.75270007e-10! 7.08669956e-10! 3.56390001e-10! 0.00000000e+00! 1.07330000e-09! 2.88869983e-10! 3.09119980e-10! 1.38879991e-10! 0.00000000e+00! 1.03669995e-09! 3.52606590e-11! 1.74675031e-11! 3.37358336e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.56800007e-11! 5.11800012e-11! 2.97900003e-11! 1.78400003e-11! 6.48999994e-12! 2.45669984e-10! 4.59329991e-10! 9.56600008e-11! 1.00535004e-10! 1.00535004e-10! 8.46600012e-11! 0.00000000e+00!
+ 2.20668100e+02! 6.90090000e+00! 2.95710000e+00! 9.76190000e+02! 2.97200000e+02! 2.85320000e-08! 1.78370000e-07! 2.61830000e-02! 1.00200000e-10! 5.01960000e-06! 3.56210000e-03! 2.67760009e-10! 1.51900004e-09! 8.52349968e-10! 1.10740001e-10! 1.67839992e-10! 3.53400004e-10! 8.68340011e-10! 1.81320001e-10! 6.53670007e-10! 2.21570012e-10! 0.00000000e+00! 1.17900001e-09! 1.56919991e-10! 4.05719985e-10! 1.82279997e-10! 3.90000011e-11! 1.03869990e-09! 3.36254566e-11! 1.68362841e-11! 3.27178111e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.53799994e-11! 5.15500004e-11! 3.19000000e-11! 1.58100009e-11! 8.27000014e-12! 3.14999998e-10! 4.75700035e-10! 1.00559998e-10! 1.02125003e-10! 1.02125003e-10! 8.38499964e-11! 0.00000000e+00!
+ 2.20668800e+02! 6.95790000e+00! 2.98860000e+00! 9.76220000e+02! 2.97310000e+02! 2.86580000e-08! 1.79180000e-07! 2.63740000e-02! 1.18640000e-10! 4.65510000e-06! 3.76790000e-03! 2.29799998e-10! 1.66420000e-09! 9.02319996e-10! 1.03279996e-10! 1.35339989e-10! 2.85989982e-10! 9.69380021e-10! 1.86809998e-10! 7.62090002e-10! 4.16849999e-10! 0.00000000e+00! 1.12599996e-09! 1.47329995e-10! 4.14338092e-10! 1.86151886e-10! 3.29999986e-11! 1.00429998e-09! 3.68488816e-11! 1.80805856e-11! 3.47246121e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.97999992e-12! 4.53600005e-11! 2.76899996e-11! 3.32999990e-12! 9.07999977e-12! 3.31109973e-10! 4.08410000e-10! 8.46099996e-11! 8.33399946e-11! 8.33399946e-11! 6.84400037e-11! 0.00000000e+00!
+ 2.20669400e+02! 7.00480000e+00! 3.03420000e+00! 9.76120000e+02! 2.97420000e+02! 2.95200000e-08! 1.82820000e-07! 2.65170000e-02! 1.37750000e-10! 5.25360000e-06! 4.23480000e-03! 2.46779985e-10! 1.74310000e-09! 9.13349951e-10! 1.12900002e-10! 1.53789995e-10! 3.30980021e-10! 1.00170006e-09! 1.70279998e-10! 7.69059982e-10! 3.80989990e-10! 0.00000000e+00! 1.27559996e-09! 2.20140003e-10! 4.77997475e-10! 2.14752494e-10! 3.29999986e-11! 1.16679999e-09! 3.70561047e-11! 1.81605755e-11! 3.48536235e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 5.38999964e-12! 4.19400001e-11! 2.45900002e-11! 3.90000011e-12! 5.84999974e-12! 2.70279993e-10! 4.61549993e-10! 9.43700049e-11! 8.70500061e-11! 8.70500061e-11! 7.91699969e-11! 0.00000000e+00!
+ 2.20670100e+02! 7.04290000e+00! 3.08950000e+00! 9.76310000e+02! 2.97490000e+02! 2.95580000e-08! 1.80420000e-07! 2.66410000e-02! 1.39850000e-10! 3.70670000e-06! 2.49360000e-03! 4.50109977e-10! 1.73649994e-09! 9.86340010e-10! 1.19540003e-10! 1.36169992e-10! 2.96329988e-10! 1.04309994e-09! 1.75009993e-10! 6.32140007e-10! 4.37659992e-10! 0.00000000e+00! 1.23630006e-09! 1.87460006e-10! 4.65411903e-10! 2.09098100e-10! 1.79999991e-11! 1.14970000e-09! 3.29853506e-11! 1.65891936e-11! 3.23193000e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.48999995e-12! 3.83650021e-11! 2.25499983e-11! 3.90000011e-12! 6.78000017e-12! 2.87739998e-10! 4.35019992e-10! 8.98399966e-11! 8.23249940e-11! 8.23249940e-11! 7.52249998e-11! 0.00000000e+00!
+ 2.20670800e+02! 7.08080000e+00! 3.14510000e+00! 9.76540000e+02! 2.97810000e+02! 2.95360000e-08! 1.94290000e-07! 2.65130000e-02! 1.64730000e-10! 4.17160000e-06! 2.96670000e-03! 4.71410022e-10! 1.71480008e-09! 1.05930009e-09! 1.26169991e-10! 1.18559995e-10! 2.61670019e-10! 1.08440001e-09! 1.79729995e-10! 6.26919960e-10! 4.94329966e-10! 0.00000000e+00! 1.23999999e-09! 1.54789986e-10! 5.32086597e-10! 2.39053388e-10! 1.09999995e-11! 1.13269993e-09! 3.28301587e-11! 1.65292849e-11! 3.22226794e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.58999983e-12! 3.47900007e-11! 2.05099999e-11! 0.00000000e+00! 7.71000017e-12! 3.55390023e-10! 4.08500012e-10! 8.53099952e-11! 7.76050058e-11! 7.76050058e-11! 7.12799958e-11! 0.00000000e+00!
+ 2.20671500e+02! 7.10920000e+00! 3.20340000e+00! 9.76780000e+02! 2.98060000e+02! 2.89860000e-08! 1.88550000e-07! 2.66900000e-02! 1.23440000e-10! 5.29160000e-06! 4.27860000e-03! 1.74169998e-10! 1.74890002e-09! 9.65959979e-10! 1.11089998e-10! 1.03639999e-10! 2.18149998e-10! 7.68869968e-10! 1.18440008e-10! 6.55219989e-10! 6.69130029e-10! 0.00000000e+00! 1.18590004e-09! 2.56209998e-10! 4.81792495e-10! 2.16457491e-10! 0.00000000e+00! 9.26669963e-10! 3.36715378e-11! 1.68540737e-11! 3.27464965e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.51560013e-12! 2.51720016e-11! 1.42310001e-11! 0.00000000e+00! 1.70000006e-12! 2.53859989e-10! 4.28640012e-10! 7.07249953e-11! 5.44649985e-11! 5.44649985e-11! 4.88489978e-11! 0.00000000e+00!
+ 2.20673600e+02! 7.07280000e+00! 3.38860000e+00! 9.76230000e+02! 2.98180000e+02! 3.10830000e-08! 1.77980000e-07! 2.67460000e-02! 2.10070000e-10! 4.21010000e-06! 3.70950000e-03! 3.69309999e-10! 1.98180006e-09! 9.69820002e-10! 1.06589994e-10! 7.47499979e-11! 1.59079999e-10! 8.02359956e-10! 1.29999997e-10! 7.50330020e-10! 1.86100010e-10! 0.00000000e+00! 1.04530007e-09! 2.93869984e-10! 4.64597694e-10! 2.08732295e-10! 0.00000000e+00! 8.26450020e-10! 3.64992446e-11! 1.79456189e-11! 3.45069390e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 5.49999976e-12! 2.28999996e-11! 1.36000005e-11! 0.00000000e+00! 0.00000000e+00! 2.05330003e-10! 2.30059999e-10! 4.45899984e-11! 2.93699995e-11! 2.93699995e-11! 2.74699985e-11! 0.00000000e+00!
+ 2.20674300e+02! 7.05750000e+00! 3.45180000e+00! 9.76270000e+02! 2.98120000e+02! 2.89610000e-08! 1.70810000e-07! 2.66510000e-02! 1.79800000e-10! 3.94900000e-06! 3.60320000e-03! 2.58859989e-10! 2.26319985e-09! 1.22610000e-09! 1.58759991e-10! 6.76899994e-11! 1.37729994e-10! 9.67329994e-10! 1.59759997e-10! 5.21669985e-10! 1.44169995e-10! 0.00000000e+00! 1.05030007e-09! 7.55800006e-11! 4.13309997e-10! 1.85689991e-10! 0.00000000e+00! 8.39960046e-10! 2.97009813e-11! 1.53213657e-11! 3.02745537e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 5.83000011e-12! 2.69199992e-11! 1.66799994e-11! 2.16000004e-12! 0.00000000e+00! 2.03999997e-10! 1.97450001e-10! 4.00600005e-11! 2.80599988e-11! 2.80599988e-11! 0.00000000e+00! 0.00000000e+00!
+ 2.20675000e+02! 7.04190000e+00! 3.51490000e+00! 9.75450000e+02! 2.98000000e+02! 3.17450000e-08! 1.79930000e-07! 2.68590000e-02! 2.09450000e-10! 3.18600000e-06! 2.41150000e-03! 8.50620019e-10! 2.71529998e-09! 1.22610000e-09! 1.58759991e-10! 6.76899994e-11! 1.37729994e-10! 9.67329994e-10! 1.59759997e-10! 6.75669964e-10! 1.44169995e-10! 0.00000000e+00! 1.68629999e-09! 7.55800006e-11! 5.86962257e-10! 2.63707695e-10! 0.00000000e+00! 8.39960046e-10! 3.42795375e-11! 1.70887714e-11! 3.31250201e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 5.83000011e-12! 2.69199992e-11! 1.66799994e-11! 2.16000004e-12! 0.00000000e+00! 3.71670000e-10! 1.97450001e-10! 4.00600005e-11! 2.80599988e-11! 2.80599988e-11! 0.00000000e+00! 0.00000000e+00!
+ 2.20675700e+02! 7.02480000e+00! 3.57790000e+00! 9.76370000e+02! 2.97620000e+02! 3.95210000e-08! 2.59950000e-07! 2.73270000e-02! 2.33800000e-10! 3.06140000e-06! 2.19320000e-03! 1.69809999e-09! 3.14000004e-09! 1.16199994e-09! 2.24570001e-10! 4.97540009e-10! 1.03289999e-09! 1.47219992e-09! 2.75809986e-10! 7.43669959e-10! 1.35379999e-10! 0.00000000e+00! 2.41330000e-09! 1.50989998e-10! 6.23297691e-10! 2.80032303e-10! 6.99999997e-12! 2.09510009e-09! 3.63012398e-11! 1.78691836e-11! 3.43836661e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 5.13999997e-12! 9.35299962e-11! 5.39900000e-11! 0.00000000e+00! 0.00000000e+00! 6.62330024e-10! 1.40969991e-09! 2.43369991e-10! 2.51039994e-10! 2.51039994e-10! 2.20729990e-10! 0.00000000e+00!
+ 2.20676400e+02! 6.99240000e+00! 3.63200000e+00! 9.76470000e+02! 2.97360000e+02! 4.13900000e-08! 2.92410000e-07! 2.69270000e-02! 3.12480000e-10! 3.06460000e-06! 2.19390000e-03! 2.83849988e-09! 3.24670002e-09! 1.15619991e-09! 2.48810000e-10! 5.44799983e-10! 1.12730003e-09! 1.57780000e-09! 3.07390002e-10! 5.78460002e-10! 1.22680005e-10! 0.00000000e+00! 2.48699994e-09! 4.26600005e-11! 5.66358904e-10! 2.54451099e-10! 0.00000000e+00! 2.37639997e-09! 3.13894015e-11! 1.59731256e-11! 3.13257094e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 6.16999984e-12! 9.99400007e-11! 5.49799997e-11! 7.05999972e-12! 0.00000000e+00! 6.91189994e-10! 1.52360002e-09! 2.85769991e-10! 3.04195003e-10! 3.04195003e-10! 2.70170025e-10! 0.00000000e+00!
+ 2.20677100e+02! 6.94690000e+00! 3.67300000e+00! 9.76590000e+02! 2.97160000e+02! 4.28700000e-08! 3.12640000e-07! 2.65900000e-02! 3.02810000e-10! 3.19260000e-06! 2.41790000e-03! 3.58379992e-09! 2.87760016e-09! 1.14749998e-09! 3.26410010e-10! 8.73379979e-10! 1.60699998e-09! 1.60909996e-09! 2.62030009e-10! 6.04309991e-10! 1.04070003e-10! 0.00000000e+00! 2.83389978e-09! 4.56699990e-11! 5.85409776e-10! 2.63010197e-10! 0.00000000e+00! 2.61860000e-09! 3.21579430e-11! 1.62697980e-11! 3.18041808e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.84999975e-12! 1.28070013e-10! 6.66100022e-11! 0.00000000e+00! 0.00000000e+00! 8.88030038e-10! 1.78869997e-09! 3.21040000e-10! 3.57005009e-10! 3.57005009e-10! 3.01950021e-10! 0.00000000e+00!
+ 2.20677800e+02! 6.89290000e+00! 3.69990000e+00! 9.76350000e+02! 2.96590000e+02! 3.53580000e-08! 2.89700000e-07! 2.61990000e-02! 2.03220000e-10! 1.57060000e-06! 1.11560000e-03! 3.85709997e-09! 2.18999996e-09! 1.14749998e-09! 3.26410010e-10! 8.73379979e-10! 1.60699998e-09! 1.60909996e-09! 2.62030009e-10! 3.51489976e-10! 1.04070003e-10! 0.00000000e+00! 1.88169991e-09! 4.56699990e-11! 3.48429285e-10! 1.56540697e-10! 0.00000000e+00! 2.61860000e-09! 2.46413827e-11! 1.33682674e-11! 2.71246029e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.84999975e-12! 1.28070013e-10! 6.66100022e-11! 0.00000000e+00! 0.00000000e+00! 4.06140011e-10! 1.78869997e-09! 3.21040000e-10! 3.57005009e-10! 3.57005009e-10! 3.01950021e-10! 0.00000000e+00!
+ 2.20681900e+02! 6.54490000e+00! 3.71030000e+00! 9.76420000e+02! 2.95670000e+02! 2.25670000e-08! 1.11100000e-07! 2.54460000e-02! 1.13410000e-10! 1.99110000e-06! 1.66310000e-03! 2.42420001e-10! 1.18249993e-10! 4.92629992e-10! 7.43579989e-11! 2.11350007e-10! 3.62530006e-10! 1.63660002e-10! 3.33270009e-11! 1.30429986e-10! 0.00000000e+00! 0.00000000e+00! 7.75119968e-10! 3.19710022e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.11070009e-10! 1.80690740e-11! 1.08312369e-11! 2.30328898e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.06409994e-11! 3.57490010e-11! 2.63969992e-11! 1.04300006e-11! 3.74469986e-12! 0.00000000e+00! 1.31679986e-10! 2.18220008e-11! 2.34599996e-11! 2.34599996e-11! 2.85400002e-11! 0.00000000e+00!
+ 2.20682600e+02! 6.49300000e+00! 3.68360000e+00! 9.76400000e+02! 2.95460000e+02! 2.17470000e-08! 1.00780000e-07! 2.60460000e-02! 8.26160000e-11! 1.72230000e-06! 1.53300000e-03! 1.73199996e-10! 8.70980024e-11! 4.58249994e-10! 3.84410004e-11! 8.17249948e-11! 1.24989991e-10! 7.66009964e-11! 2.70340000e-11! 1.80719995e-10! 2.75320017e-10! 0.00000000e+00! 7.95439992e-10! 2.43630012e-11! 0.00000000e+00! 0.00000000e+00! 1.09999995e-11! 1.26979996e-10! 1.95642391e-11! 1.14083985e-11! 2.39637338e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 5.94119979e-12! 1.75450002e-11! 1.24010004e-11! 4.32209997e-12! 2.25239987e-12! 0.00000000e+00! 4.18510018e-11! 6.03450016e-12! 8.84599945e-12! 8.84599945e-12! 0.00000000e+00! 0.00000000e+00!
+ 2.20683300e+02! 6.45730000e+00! 3.63740000e+00! 9.76560000e+02! 2.95350000e+02! 2.20500000e-08! 9.77300000e-08! 2.57990000e-02! 3.42340000e-11! 2.37470000e-06! 2.30560000e-03! 3.58059998e-10! 2.17590002e-10! 4.58750010e-10! 3.39499991e-11! 5.88699992e-11! 8.91799967e-11! 7.43599973e-11! 2.67700011e-11! 7.09999975e-11! 2.75320017e-10! 0.00000000e+00! 5.77999981e-10! 2.49899997e-11! 5.10600000e-11! 2.29399989e-11! 0.00000000e+00! 1.23199992e-10! 1.63021697e-11! 1.01491792e-11! 2.19328705e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.06999998e-12! 1.42100004e-11! 9.78999954e-12! 2.16000004e-12! 2.35999978e-12! 1.27999999e-10! 3.85400011e-11! 5.38000026e-12! 8.27999995e-12! 8.27999995e-12! 0.00000000e+00! 0.00000000e+00!
+ 2.20684000e+02! 6.47170000e+00! 3.58660000e+00! 9.57960000e+02! 2.94220000e+02! 2.16700000e-08! 1.08340000e-07! 2.43350000e-02! 2.75870000e-10! 2.84940000e-06! 3.06010000e-03! 6.95919988e-10! 4.65380012e-10! 4.65309985e-10! 8.54929946e-11! 3.29060001e-10! 5.17969945e-10! 1.04779997e-10! 2.78799987e-11! 2.40289993e-11! 3.03469999e-10! 0.00000000e+00! 5.08510012e-10! 1.49790007e-11! 2.28293391e-11! 1.02566592e-11! 0.00000000e+00! 1.45970000e-10! 1.49056791e-11! 9.61010958e-12! 2.10634600e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 5.10860017e-12! 6.39430037e-11! 4.64670004e-11! 1.01400000e-11! 3.13000017e-12! 6.39710021e-11! 6.22700017e-11! 1.19309996e-11! 1.28774994e-11! 1.28774994e-11! 8.83340016e-12! 0.00000000e+00!
+ 2.20684700e+02! 6.51050000e+00! 3.53830000e+00! 9.21360000e+02! 2.92460000e+02! 2.56980000e-08! 1.18140000e-07! 2.31940000e-02! 1.40890000e-10! 3.65440000e-06! 4.17320000e-03! 8.59599947e-10! 7.03299974e-10! 4.87540008e-10! 2.73099997e-11! 7.19499946e-11! 1.24940003e-10! 1.76560003e-10! 3.34599987e-11! 1.69720002e-11! 3.17329996e-10! 0.00000000e+00! 6.41749986e-10! 1.90799997e-11! 7.83150003e-11! 3.51849973e-11! 4.99999955e-12! 2.98489983e-10! 1.46958695e-11! 9.52911881e-12! 2.09328388e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.47000011e-12! 1.19599998e-11! 8.23999983e-12! 0.00000000e+00! 3.13000017e-12! 6.99720004e-11! 1.29230002e-10! 2.84500010e-11! 3.35899988e-11! 3.35899988e-11! 2.18799995e-11! 0.00000000e+00!
+ 2.20685400e+02! 6.55340000e+00! 3.49020000e+00! 8.87640000e+02! 2.91130000e+02! 3.07700000e-08! 1.32280000e-07! 2.18920000e-02! 2.45330000e-11! 3.84930000e-06! 4.49190000e-03! 3.03539999e-10! 8.34819991e-10! 8.25689794e-10! 8.05506009e-11! 3.64255986e-11! 7.71999201e-11! 2.14312221e-10! 4.55770109e-11! 5.56469974e-11! 0.00000000e+00! 0.00000000e+00! 7.86440024e-10! 0.00000000e+00! 1.40352896e-10! 6.30571012e-11! 0.00000000e+00! 3.57329139e-10! 1.58457102e-11! 9.97297731e-12! 2.16486933e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.57259997e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20686100e+02! 6.59760000e+00! 3.44530000e+00! 8.53700000e+02! 2.89510000e+02! 3.24010000e-08! 1.30620000e-07! 1.92480000e-02! 1.36250000e-11! 4.70660000e-06! 5.29700000e-03! 2.47030008e-10! 8.28659974e-10! 8.17248769e-10! 7.90322807e-11! 3.51533039e-11! 7.38534442e-11! 2.06496945e-10! 4.38883790e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 7.07000014e-10! 0.00000000e+00! 1.16382293e-10! 5.22876985e-11! 0.00000000e+00! 3.45665774e-10! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.02329999e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20686800e+02! 6.63890000e+00! 3.40080000e+00! 8.23460000e+02! 2.88910000e+02! 3.43810000e-08! 1.22690000e-07! 1.56010000e-02! 1.20340000e-11! 4.24140000e-06! 4.56090000e-03! 1.72729997e-10! 7.57690022e-10! 6.05539952e-10! 3.28200002e-11! 1.80700004e-11! 3.53599997e-11! 1.10249997e-10! 1.38900003e-11! 2.31999988e-12! 2.19930008e-09! 0.00000000e+00! 6.92000013e-10! 6.48320020e-09! 6.76199999e-11! 3.03800006e-11! 9.99999909e-12! 2.40650000e-10! 1.42602518e-11! 9.36096166e-12! 2.06616356e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.56999998e-12! 0.00000000e+00! 2.92999999e-12! 0.00000000e+00! 3.90999993e-12! 3.06670002e-11! 5.02599976e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20693800e+02! 7.15320000e+00! 2.95590000e+00! 6.96430000e+02! 2.82580000e+02! 6.53220000e-08! 1.50270000e-07! 5.13020000e-03! 3.28620000e-11! 4.40180000e-06! 5.92030000e-03! 0.00000000e+00! 0.00000000e+00! 9.17168397e-10! 9.70051470e-11! 5.02138504e-11! 1.13466861e-10! 2.99009151e-10! 6.38773409e-11! 5.61110013e-12! 0.00000000e+00! 0.00000000e+00! 8.13859979e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.83729057e-10! 1.43580998e-11! 9.39873353e-12! 2.07225539e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.79999990e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20694400e+02! 7.20650000e+00! 2.91140000e+00! 6.96490000e+02! 2.82690000e+02! 6.40220000e-08! 1.32150000e-07! 4.68080000e-03! 1.34610000e-11! 4.51690000e-06! 6.16240000e-03! 1.51490001e-10! 0.00000000e+00! 8.25028768e-10! 8.04316960e-11! 3.63259596e-11! 7.69378519e-11! 2.13700196e-10! 4.54447695e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 6.57509991e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.56415703e-10! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.39999990e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20695100e+02! 7.26010000e+00! 2.86680000e+00! 6.96680000e+02! 2.82820000e+02! 6.28690000e-08! 1.29050000e-07! 4.82370000e-03! 1.23510000e-11! 4.01190000e-06! 5.66230000e-03! 1.16300004e-10! 0.00000000e+00! 8.09265377e-10! 7.75962766e-11! 3.39499956e-11! 7.06883996e-11! 1.99105385e-10! 4.22912955e-11! 5.33330021e-12! 0.00000000e+00! 0.00000000e+00! 6.90999979e-10! 0.00000000e+00! 8.27999995e-12! 3.72000000e-12! 0.00000000e+00! 3.34634764e-10! 1.43498399e-11! 9.39554511e-12! 2.07174104e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.23330000e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20695800e+02! 7.31350000e+00! 2.82200000e+00! 6.96620000e+02! 2.82870000e+02! 6.32900000e-08! 1.31410000e-07! 4.97710000e-03! 1.11000000e-11! 3.79430000e-06! 5.41810000e-03! 1.17899995e-10! 0.00000000e+00! 8.21265889e-10! 7.97548486e-11! 3.57587918e-11! 7.54460452e-11! 2.10216261e-10! 4.46920036e-11! 1.59999999e-11! 0.00000000e+00! 0.00000000e+00! 6.56329990e-10! 0.00000000e+00! 1.08102294e-11! 4.85676993e-12! 0.00000000e+00! 3.51216389e-10! 1.46669708e-11! 9.51796281e-12! 2.09148462e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.99999998e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20696500e+02! 7.36680000e+00! 2.77720000e+00! 6.96640000e+02! 2.82900000e+02! 6.11590000e-08! 1.33320000e-07! 5.39050000e-03! 4.99330000e-11! 3.49520000e-06! 4.91430000e-03! 0.00000000e+00! 2.97999986e-10! 8.30978120e-10! 8.15018331e-11! 3.72226937e-11! 7.92965069e-11! 2.19208540e-10! 4.66349528e-11! 5.33330021e-12! 0.00000000e+00! 0.00000000e+00! 6.59999999e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.64636293e-10! 1.43498399e-11! 9.39554511e-12! 2.07174104e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.36669998e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20698600e+02! 7.56620000e+00! 2.73830000e+00! 6.96680000e+02! 2.82780000e+02! 5.97860000e-08! 1.28030000e-07! 5.35920000e-03! 1.20360000e-10! 3.46240000e-06! 5.55570000e-03! 0.00000000e+00! 3.11390025e-10! 8.04078693e-10! 7.66633354e-11! 3.31682286e-11! 6.86321347e-11! 1.94303226e-10! 4.12536984e-11! 9.41670006e-12! 0.00000000e+00! 0.00000000e+00! 6.17969953e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.27468108e-10! 1.44712428e-11! 9.44240866e-12! 2.07929941e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.01670001e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20711800e+02! 8.98560000e+00! 2.64580000e+00! 4.65590000e+02! 2.65440000e+02! 5.76150000e-08! 9.78350000e-08! 1.65710000e-03! 1.42050000e-11! 2.28170000e-06! 4.34120000e-03! 5.42029997e-11! 3.31429995e-10! 6.50538012e-10! 4.90454760e-11! 1.00255707e-11! 7.76052486e-12! 5.21451597e-11! 1.05378380e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 6.69000022e-10! 0.00000000e+00! 2.06999999e-12! 9.30000001e-13! 6.99999997e-12! 1.15314404e-10! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20712500e+02! 9.06740000e+00! 2.64700000e+00! 4.65510000e+02! 2.65060000e+02! 5.31020000e-08! 9.64370000e-08! 2.17460000e-03! 6.75810000e-12! 1.78970000e-06! 3.07810000e-03! 9.19739979e-11! 3.48670010e-10! 6.43429199e-10! 4.77667975e-11! 8.95408834e-12! 4.94222632e-12! 4.55633760e-11! 9.11572293e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.05491893e-10! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20713200e+02! 9.14860000e+00! 2.64860000e+00! 4.65450000e+02! 2.64510000e+02! 4.83760000e-08! 9.98450000e-08! 2.60410000e-03! 4.16000000e-12! 1.60000000e-06! 2.52560000e-03! 8.31660019e-11! 0.00000000e+00! 6.60758781e-10! 5.08839221e-11! 1.15661153e-11! 1.18125839e-11! 6.16082393e-11! 1.25825106e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.13999987e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 8.99999953e-12! 1.29436906e-10! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20718800e+02! 9.72200000e+00! 2.85960000e+00! 4.65470000e+02! 2.64530000e+02! 4.45860000e-08! 9.53050000e-08! 3.53410000e-03! 2.69610000e-11! 8.59770000e-07! 1.97920000e-03! 0.00000000e+00! 2.12339993e-10! 6.37673025e-10! 4.67314104e-11! 8.08647854e-12! 2.66017135e-12! 4.02339204e-11! 7.96419528e-12! 2.91669987e-12! 0.00000000e+00! 0.00000000e+00! 9.02109998e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.75383246e-11! 1.42779920e-11! 9.36781035e-12! 2.06726823e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.10830000e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20719400e+02! 9.78620000e+00! 2.90660000e+00! 4.65540000e+02! 2.64310000e+02! 4.35020000e-08! 9.58770000e-08! 4.21340000e-03! 2.32340000e-11! 8.97490000e-07! 2.38130000e-03! 0.00000000e+00! 1.78690007e-10! 6.40581643e-10! 4.72545926e-11! 8.52488219e-12! 3.81329473e-12! 4.29268981e-11! 8.54606230e-12! 9.80000022e-12! 0.00000000e+00! 0.00000000e+00! 8.10599976e-10! 0.00000000e+00! 9.71933992e-12! 4.36665981e-12! 0.00000000e+00! 1.01557263e-10! 1.44826390e-11! 9.44680792e-12! 2.08000873e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.98569997e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20720100e+02! 9.85060000e+00! 2.95320000e+00! 4.65400000e+02! 2.64260000e+02! 4.46860000e-08! 9.40740000e-08! 3.90000000e-03! 2.28720000e-11! 8.71720000e-07! 2.31570000e-03! 0.00000000e+00! 1.77390005e-10! 6.31413477e-10! 4.56054777e-11! 7.14299063e-12! 1.78536778e-13! 3.44383723e-11! 6.71196128e-12! 3.32220015e-11! 0.00000000e+00! 0.00000000e+00! 9.09499975e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 7.99999997e-12! 8.88891669e-11! 1.51789952e-11! 9.71561460e-12! 2.12336173e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.47220007e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20720800e+02! 9.91510000e+00! 2.99970000e+00! 4.65460000e+02! 2.64170000e+02! 4.56780000e-08! 8.51320000e-08! 2.99830000e-03! 2.22620000e-11! 7.82370000e-07! 1.76000000e-03! 0.00000000e+00! 2.04789991e-10! 5.85943682e-10! 3.74266763e-11! 2.89484311e-13! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.25000001e-11! 0.00000000e+00! 0.00000000e+00! 9.61939972e-10! 0.00000000e+00! 4.58084091e-12! 2.05805880e-12! 0.00000000e+00! 2.60616043e-11! 1.48602207e-11! 9.59256112e-12! 2.10351580e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20721500e+02! 9.97960000e+00! 3.04600000e+00! 4.65470000e+02! 2.64100000e+02! 4.44870000e-08! 8.00710000e-08! 2.86350000e-03! 2.20250000e-11! 7.79630000e-07! 1.64660000e-03! 0.00000000e+00! 2.30820002e-10! 5.60208602e-10! 3.27976327e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 8.94599950e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 7.99999986e-13! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20725000e+02! 1.03040000e+01! 3.27710000e+00! 4.46100000e+02! 2.61860000e+02! 5.04090000e-08! 8.39880000e-08! 3.40000000e-03! 4.11310000e-11! 7.65330000e-07! 3.72020000e-03! 0.00000000e+00! 1.94770006e-10! 5.80126391e-10! 3.63803189e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.76669980e-11! 0.00000000e+00! 0.00000000e+00! 8.19359969e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.39999999e-11! 1.80237214e-11! 1.53111499e-11! 9.76662761e-12! 2.13158935e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.21940001e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20725700e+02! 1.03710000e+01! 3.32580000e+00! 4.46200000e+02! 2.62130000e+02! 4.93750000e-08! 8.44610000e-08! 3.12240000e-03! 5.12560000e-11! 6.85680000e-07! 2.79390000e-03! 0.00000000e+00! 2.01869993e-10! 5.82531634e-10! 3.68129451e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.81139989e-11! 0.00000000e+00! 0.00000000e+00! 7.30659977e-10! 0.00000000e+00! 5.85513278e-12! 2.63056677e-12! 0.00000000e+00! 2.13470786e-11! 1.56217487e-11! 9.88652389e-12! 2.15092614e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20726400e+02! 1.04380000e+01! 3.37550000e+00! 4.46260000e+02! 2.62640000e+02! 4.71990000e-08! 8.89880000e-08! 2.62950000e-03! 4.58870000e-11! 6.26450000e-07! 2.86190000e-03! 0.00000000e+00! 2.16539994e-10! 6.05551276e-10! 4.09535669e-11! 3.24487681e-12! 0.00000000e+00! 1.04934846e-11! 1.53822788e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 7.69080022e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 5.31543247e-11! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 7.69439980e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20727100e+02! 1.05070000e+01! 3.42370000e+00! 4.46190000e+02! 2.62550000e+02! 4.59100000e-08! 8.96090000e-08! 2.81810000e-03! 3.81250000e-11! 5.75650000e-07! 2.39430000e-03! 0.00000000e+00! 2.07520001e-10! 6.08709028e-10! 4.15215640e-11! 3.72083614e-12! 0.00000000e+00! 1.34171519e-11! 2.16994023e-12! 5.16939998e-11! 0.00000000e+00! 0.00000000e+00! 9.01999975e-10! 0.00000000e+00! 1.22668195e-11! 5.51117962e-12! 1.29999995e-11! 5.75175428e-11! 1.57281844e-11! 9.92760995e-12! 2.15755244e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.75279990e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20727800e+02! 1.05780000e+01! 3.46870000e+00! 4.46120000e+02! 2.62290000e+02! 4.78020000e-08! 8.37640000e-08! 2.68980000e-03! 2.29620000e-11! 4.97290000e-07! 1.90640000e-03! 0.00000000e+00! 1.77539997e-10! 5.78987414e-10! 3.61754376e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.77780000e-14! 0.00000000e+00! 0.00000000e+00! 8.03250022e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.64498710e-11! 1.41921024e-11! 9.33465458e-12! 2.06192095e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.29440000e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20728500e+02! 1.06490000e+01! 3.51450000e+00! 4.46160000e+02! 2.62190000e+02! 4.65230000e-08! 8.19110000e-08! 3.11530000e-03! 1.39160000e-11! 4.41290000e-07! 1.50180000e-03! 2.08689988e-12! 1.63199995e-10! 5.69564951e-10! 3.44805920e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.22649997e-11! 0.00000000e+00! 0.00000000e+00! 8.47679982e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.43047097e-12! 1.51505440e-11! 9.70463120e-12! 2.12159040e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.26469989e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20729200e+02! 1.07210000e+01! 3.55930000e+00! 4.46240000e+02! 2.62700000e+02! 4.73490000e-08! 8.10910000e-08! 2.26970000e-03! 1.38820000e-11! 4.83330000e-07! 1.29070000e-03! 1.05719999e-11! 1.57480001e-10! 5.65395286e-10! 3.37305739e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.83330000e-11! 0.00000000e+00! 0.00000000e+00! 8.96669961e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 7.99999997e-12! 0.00000000e+00! 1.53309501e-11! 9.77427080e-12! 2.13282204e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20730600e+02! 1.08690000e+01! 3.63850000e+00! 4.46350000e+02! 2.62910000e+02! 4.52300000e-08! 8.54560000e-08! 2.12680000e-03! 1.02440000e-11! 3.95000000e-07! 1.03390000e-03! 3.03609980e-12! 1.51769999e-10! 5.87591198e-10! 3.77230226e-11! 5.37810844e-13! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.70000003e-11! 0.00000000e+00! 0.00000000e+00! 8.77669992e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.83380663e-11! 1.52913186e-11! 9.75897314e-12! 2.13035475e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20731300e+02! 1.09450000e+01! 3.67320000e+00! 4.46310000e+02! 2.62730000e+02! 4.64160000e-08! 8.17500000e-08! 2.18420000e-03! 6.32130000e-12! 3.84080000e-07! 9.74790000e-04! 4.09749977e-11! 1.56770000e-10! 5.68746272e-10! 3.43333313e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.16669998e-11! 0.00000000e+00! 0.00000000e+00! 8.28000002e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 7.99999997e-12! 2.29926560e-12! 1.45381467e-11! 9.46823436e-12! 2.08346448e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20731900e+02! 1.10210000e+01! 3.70700000e+00! 4.46300000e+02! 2.62740000e+02! 4.80720000e-08! 8.16870000e-08! 2.82970000e-03! 4.45000000e-12! 3.60610000e-07! 9.04250000e-04! 5.26150026e-11! 1.58259988e-10! 5.68425917e-10! 3.42757073e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.27940002e-11! 0.00000000e+00! 0.00000000e+00! 8.80820028e-10! 0.00000000e+00! 7.71143945e-13! 3.46455991e-13! 0.00000000e+00! 1.85662011e-12! 1.51662710e-11! 9.71070186e-12! 2.12256948e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 5.85290020e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.20738200e+02! 1.17130000e+01! 3.91920000e+00! 4.46060000e+02! 2.61390000e+02! 4.74480000e-08! 8.46720000e-08! 3.52680000e-03! 1.77660000e-11! 7.87300000e-07! 9.06660000e-04! 0.00000000e+00! 2.54559984e-10! 5.83604554e-10! 3.70059400e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 8.73090045e-10! 0.00000000e+00! 4.46471375e-12! 2.00588591e-12! 6.19999954e-11! 2.28295872e-11! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.06180004e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.23571500e+02! 1.38420000e+01! 3.80910000e+00! 6.96650000e+02! 2.83480000e+02! 3.32620000e-08! 8.41860000e-08! 1.49820000e-02! 4.19520000e-11! 5.79600000e-05! 9.62900000e-03! 0.00000000e+00! 2.64099992e-10! 5.81133253e-10! 3.65614206e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.27999998e-11! 0.00000000e+00! 0.00000000e+00! 1.06789999e-09! 0.00000000e+00! 3.05442269e-11! 1.37227694e-11! 0.00000000e+00! 1.94148933e-11! 1.45718316e-11! 9.48123698e-12! 2.08556158e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.97780070e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.23572200e+02! 1.38580000e+01! 3.87490000e+00! 6.96570000e+02! 2.83610000e+02! 3.30540000e-08! 8.38940000e-08! 1.46440000e-02! 4.36620000e-11! 5.92410000e-05! 1.00910000e-02! 0.00000000e+00! 3.08869985e-10! 5.79648440e-10! 3.62943425e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.67110006e-11! 0.00000000e+00! 0.00000000e+00! 1.05369991e-09! 0.00000000e+00! 2.59136393e-11! 1.16423598e-11! 0.00000000e+00! 1.73632671e-11! 1.46881101e-11! 9.52612295e-12! 2.09280076e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.92669985e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.23572900e+02! 1.38730000e+01! 3.94090000e+00! 6.98800000e+02! 2.83880000e+02! 3.27000000e-08! 8.35840000e-08! 1.44870000e-02! 3.40410000e-11! 5.72070000e-05! 9.88210000e-03! 0.00000000e+00! 3.56480012e-10! 5.78072090e-10! 3.60107985e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.04230002e-09! 0.00000000e+00! 3.16392607e-11! 1.42147396e-11! 1.20000000e-11! 1.51851708e-11! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.49169998e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.23581300e+02! 1.42260000e+01! 4.42690000e+00! 9.62740000e+02! 2.99380000e+02! 3.83820000e-08! 8.83960000e-08! 2.64310000e-02! 7.72960000e-11! 3.27900000e-05! 7.40930000e-03! 2.45689996e-10! 6.07700001e-10! 6.02540962e-10! 4.04120938e-11! 2.79114427e-12! 0.00000000e+00! 7.70634771e-12! 9.36015913e-13! 7.82770029e-11! 0.00000000e+00! 0.00000000e+00! 1.21699995e-09! 0.00000000e+00! 5.36288687e-11! 2.40941295e-11! 0.00000000e+00! 4.89948603e-11! 1.65185209e-11! 1.02326949e-11! 2.20675648e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.08999997e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.23581900e+02! 1.42900000e+01! 4.40690000e+00! 9.64270000e+02! 2.99420000e+02! 3.88090000e-08! 8.74840000e-08! 2.58600000e-02! 9.45620000e-11! 3.53130000e-05! 8.12180000e-03! 2.93910007e-10! 6.30159980e-10! 5.97903504e-10! 3.95779347e-11! 2.09215111e-12! 0.00000000e+00! 3.41265167e-12! 8.28403474e-15! 4.86039993e-11! 0.00000000e+00! 0.00000000e+00! 1.12940002e-09! 0.00000000e+00! 5.23102742e-11! 2.35017179e-11! 7.59999980e-11! 4.25870381e-11! 1.56363169e-11! 9.89214786e-12! 2.15183323e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 7.17289977e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.23582600e+02! 1.43530000e+01! 4.38750000e+00! 9.62860000e+02! 2.99400000e+02! 3.87940000e-08! 8.80100000e-08! 2.69500000e-02! 9.57590000e-11! 3.51810000e-05! 8.10600000e-03! 2.84209989e-10! 6.53479992e-10! 6.00578198e-10! 4.00590394e-11! 2.49529867e-12! 0.00000000e+00! 5.88906007e-12! 5.43357514e-13! 6.86379981e-11! 0.00000000e+00! 0.00000000e+00! 1.18760002e-09! 0.00000000e+00! 5.61839394e-11! 2.52420602e-11! 1.03999996e-10! 4.62827797e-11! 1.62319446e-11! 1.01220716e-11! 2.18891502e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 6.92979979e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.23583300e+02! 1.44160000e+01! 4.36800000e+00! 9.62520000e+02! 2.99630000e+02! 3.94690000e-08! 8.77190000e-08! 2.65140000e-02! 9.72950000e-11! 3.44830000e-05! 7.92400000e-03! 2.12349999e-10! 6.83789969e-10! 5.99098438e-10! 3.97928773e-11! 2.27226441e-12! 0.00000000e+00! 4.51903185e-12! 2.47337768e-13! 6.86539992e-11! 0.00000000e+00! 0.00000000e+00! 1.18969989e-09! 0.00000000e+00! 5.05556048e-11! 2.27133885e-11! 0.00000000e+00! 4.42381791e-11! 1.62324199e-11! 1.01222555e-11! 2.18894469e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.42690017e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.23584000e+02! 1.44780000e+01! 4.34660000e+00! 9.61320000e+02! 2.99740000e+02! 4.02500000e-08! 8.72390000e-08! 2.57970000e-02! 1.02820000e-10! 3.38270000e-05! 7.90420000e-03! 1.57519997e-10! 7.14179993e-10! 5.96657668e-10! 3.93538431e-11! 1.90437336e-12! 0.00000000e+00! 2.25919175e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.01999992e-10! 4.08656373e-11! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.23584700e+02! 1.45400000e+01! 4.32600000e+00! 9.62350000e+02! 3.00000000e+02! 4.05410000e-08! 8.75710000e-08! 2.61160000e-02! 9.86810000e-11! 3.16820000e-05! 7.45400000e-03! 2.58430000e-10! 7.30869976e-10! 5.98345873e-10! 3.96575099e-11! 2.15883127e-12! 0.00000000e+00! 3.82224807e-12! 9.67847764e-14! 5.66469996e-11! 0.00000000e+00! 0.00000000e+00! 1.14889998e-09! 0.00000000e+00! 3.90050076e-11! 1.75239892e-11! 1.06999999e-10! 4.31983095e-11! 1.58754416e-11! 9.98445510e-12! 2.16672028e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.28819992e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.23585400e+02! 1.46030000e+01! 4.30580000e+00! 9.62090000e+02! 3.00170000e+02! 4.13660000e-08! 8.65940000e-08! 2.52820000e-02! 1.06130000e-10! 2.82340000e-05! 6.71940000e-03! 1.87770008e-10! 7.59109997e-10! 5.93377847e-10! 3.87638983e-11! 1.41001967e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.94470004e-11! 0.00000000e+00! 0.00000000e+00! 1.06889997e-09! 0.00000000e+00! 3.78471907e-11! 1.70038098e-11! 0.00000000e+00! 3.63337936e-11! 1.50667621e-11! 9.67228988e-12! 2.11637444e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 6.49789944e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.23588200e+02! 1.48530000e+01! 4.22410000e+00! 9.62200000e+02! 3.01120000e+02! 4.31090000e-08! 8.61570000e-08! 2.52110000e-02! 1.28740000e-10! 2.95480000e-05! 7.19100000e-03! 2.10070003e-10! 7.84669996e-10! 5.91155735e-10! 3.83641938e-11! 1.07508522e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.53479989e-11! 0.00000000e+00! 0.00000000e+00! 1.16150001e-09! 0.00000000e+00! 2.65498196e-11! 1.19281798e-11! 0.00000000e+00! 3.32633782e-11! 1.46475852e-11! 9.51048008e-12! 2.09027778e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 6.21300025e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.23588900e+02! 1.49130000e+01! 4.20230000e+00! 9.60030000e+02! 3.01080000e+02! 4.45690000e-08! 8.50580000e-08! 2.44030000e-02! 1.19470000e-10! 2.95990000e-05! 7.24540000e-03! 2.92410013e-10! 7.63929975e-10! 5.85567317e-10! 3.73589944e-11! 2.32767771e-13! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.15999996e-11! 0.00000000e+00! 0.00000000e+00! 1.04599995e-09! 0.00000000e+00! 3.07436403e-11! 1.38123592e-11! 7.40000006e-11! 2.55416712e-11! 1.48334643e-11! 9.58223258e-12! 2.10184994e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.69999995e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.23589600e+02! 1.49730000e+01! 4.18150000e+00! 9.60850000e+02! 3.01210000e+02! 4.49040000e-08! 8.46510000e-08! 2.43380000e-02! 1.18320000e-10! 2.80120000e-05! 6.83600000e-03! 4.20660007e-10! 7.30869976e-10! 5.83497750e-10! 3.69867331e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.29790012e-12! 0.00000000e+00! 0.00000000e+00! 1.11510001e-09! 0.00000000e+00! 2.51925911e-11! 1.13184098e-11! 7.69999967e-11! 2.26820403e-11! 1.44677118e-11! 9.44104517e-12! 2.07907944e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 5.04469973e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.23590300e+02! 1.50340000e+01! 4.16220000e+00! 9.60650000e+02! 3.01270000e+02! 4.69160000e-08! 8.51350000e-08! 2.49390000e-02! 1.37640000e-10! 2.68540000e-05! 6.64840000e-03! 4.48030002e-10! 7.30700001e-10! 5.85958948e-10! 3.74294207e-11! 2.91783660e-13! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.13329987e-11! 0.00000000e+00! 0.00000000e+00! 9.97899985e-10! 0.00000000e+00! 1.79544886e-11! 8.06651013e-12! 6.70000028e-11! 2.60826812e-11! 1.51228335e-11! 9.69393402e-12! 2.11986522e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 5.10619984e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.23591000e+02! 1.50960000e+01! 4.14390000e+00! 9.61720000e+02! 3.01000000e+02! 4.68730000e-08! 8.50340000e-08! 2.57130000e-02! 1.43080000e-10! 2.78060000e-05! 6.95080000e-03! 4.24510010e-10! 7.60249974e-10! 5.85445303e-10! 3.73370432e-11! 2.14373210e-13! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.18719990e-11! 0.00000000e+00! 0.00000000e+00! 1.10999998e-09! 0.00000000e+00! 3.08554189e-11! 1.38625795e-11! 6.70000028e-11! 2.53730457e-11! 1.48415499e-11! 9.58535421e-12! 2.10235353e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.85640000e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.23591700e+02! 1.51570000e+01! 4.12350000e+00! 9.61500000e+02! 3.01040000e+02! 4.57150000e-08! 8.43330000e-08! 2.41120000e-02! 1.69820000e-10! 2.89940000e-05! 7.27240000e-03! 4.67859973e-10! 7.94110000e-10! 5.81880710e-10! 3.66958720e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 6.80000015e-11! 2.04477355e-11! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.23592400e+02! 1.52180000e+01! 4.10150000e+00! 9.62240000e+02! 3.01220000e+02! 4.61730000e-08! 8.47020000e-08! 2.47940000e-02! 1.53870000e-10! 2.78460000e-05! 6.92540000e-03! 4.92429986e-10! 8.47249992e-10! 5.83757098e-10! 3.70333798e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.99999999e-12! 0.00000000e+00! 0.00000000e+00! 1.00950004e-09! 0.00000000e+00! 2.58749983e-11! 1.16249996e-11! 9.00000005e-11! 2.30403734e-11! 1.42507377e-11! 9.35728925e-12! 2.06557133e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.19999999e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.23599300e+02! 1.52350000e+01! 3.89300000e+00! 9.61810000e+02! 3.01780000e+02! 4.65330000e-08! 8.35530000e-08! 2.29990000e-02! 1.27360000e-10! 2.43870000e-05! 5.73200000e-03! 4.43209996e-10! 7.63050012e-10! 5.77914494e-10! 3.59824462e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.18300003e-09! 0.00000000e+00! 4.41599986e-11! 1.98399994e-11! 6.80000015e-11! 1.49673607e-11! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.80000008e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.23600000e+02! 1.51760000e+01! 3.87860000e+00! 9.62000000e+02! 3.01570000e+02! 4.67040000e-08! 8.33960000e-08! 2.38250000e-02! 1.02800000e-10! 1.85040000e-05! 4.19750000e-03! 3.72810005e-10! 7.37749972e-10! 5.77116133e-10! 3.58388458e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.00000040e-12! 0.00000000e+00! 0.00000000e+00! 1.11099996e-09! 0.00000000e+00! 3.44999983e-12! 1.54999993e-12! 0.00000000e+00! 1.38642596e-11! 1.44588543e-11! 9.43762603e-12! 2.07852797e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.99999999e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.23600700e+02! 1.51160000e+01! 3.86290000e+00! 9.62940000e+02! 3.01840000e+02! 4.60100000e-08! 8.33220000e-08! 2.32220000e-02! 1.26120000e-10! 1.79440000e-05! 4.04660000e-03! 3.68929998e-10! 7.08799963e-10! 5.76739878e-10! 3.57711603e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.06520001e-12! 0.00000000e+00! 0.00000000e+00! 9.87130044e-10! 0.00000000e+00! 2.75399686e-11! 1.23730288e-11! 7.80000023e-11! 1.33443265e-11! 1.42526772e-11! 9.35803778e-12! 2.06569189e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.64350000e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.23601400e+02! 1.50560000e+01! 3.84600000e+00! 9.62400000e+02! 3.01990000e+02! 4.54170000e-08! 8.37310000e-08! 2.36100000e-02! 1.28570000e-10! 2.21340000e-05! 5.17810000e-03! 4.51950005e-10! 6.98339997e-10! 5.78819603e-10! 3.61452535e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.99999996e-12! 0.00000000e+00! 0.00000000e+00! 1.07450004e-09! 0.00000000e+00! 3.07049976e-11! 1.37949999e-11! 0.00000000e+00! 1.62180096e-11! 1.44885857e-11! 9.44910296e-12! 2.08037892e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.82499996e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.23602100e+02! 1.49960000e+01! 3.82680000e+00! 9.63000000e+02! 3.01960000e+02! 4.57770000e-08! 8.42230000e-08! 2.43560000e-02! 1.19060000e-10! 2.33200000e-05! 5.67390000e-03! 3.82120002e-10! 7.11570025e-10! 5.81321435e-10! 3.65952615e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.55320016e-13! 0.00000000e+00! 0.00000000e+00! 1.12130005e-09! 0.00000000e+00! 1.68974088e-11! 7.59158968e-12! 7.09999975e-11! 1.96748607e-11! 1.41988678e-11! 9.33726707e-12! 2.06234214e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.46170002e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.23602800e+02! 1.49370000e+01! 3.80600000e+00! 9.63090000e+02! 3.01900000e+02! 4.49040000e-08! 8.47440000e-08! 2.37070000e-02! 1.25370000e-10! 2.43120000e-05! 6.03180000e-03! 3.71130016e-10! 7.11409986e-10! 5.83970650e-10! 3.70717936e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.15580001e-09! 0.00000000e+00! 1.53711297e-11! 6.90586997e-12! 9.00000005e-11! 2.33354707e-11! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.02980002e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.23603500e+02! 1.48770000e+01! 3.78740000e+00! 9.61300000e+02! 3.01560000e+02! 4.40530000e-08! 8.50740000e-08! 2.37090000e-02! 1.24320000e-10! 2.57400000e-05! 6.38470000e-03! 3.92239990e-10! 7.04789949e-10! 5.85648696e-10! 3.73736250e-11! 2.45030829e-13! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.18080001e-09! 0.00000000e+00! 1.67656201e-11! 7.53238010e-12! 0.00000000e+00! 2.56540882e-11! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.59569996e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.23620800e+02! 1.46430000e+01! 3.28450000e+00! 9.67860000e+02! 3.02070000e+02! 4.49130000e-08! 8.43280000e-08! 2.45820000e-02! 9.89490000e-11! 1.58270000e-05! 4.91820000e-03! 2.62849992e-10! 6.75409950e-10! 5.81855342e-10! 3.66912993e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.35109996e-11! 0.00000000e+00! 0.00000000e+00! 1.13630005e-09! 0.00000000e+00! 2.66753997e-11! 1.19845999e-11! 8.90000018e-11! 2.04126039e-11! 1.45929709e-11! 9.48939712e-12! 2.08687755e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.46170011e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.23621500e+02! 1.47050000e+01! 3.26280000e+00! 9.66150000e+02! 3.02090000e+02! 4.52100000e-08! 8.39740000e-08! 2.39890000e-02! 9.79080000e-11! 1.45160000e-05! 4.42020000e-03! 2.12460008e-10! 6.53210042e-10! 5.80055226e-10! 3.63675132e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.10830001e-09! 0.00000000e+00! 2.62786477e-11! 1.18063493e-11! 0.00000000e+00! 1.79253574e-11! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.27449985e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.23622200e+02! 1.47660000e+01! 3.24200000e+00! 9.65070000e+02! 3.02100000e+02! 4.56220000e-08! 8.34330000e-08! 2.30830000e-02! 9.95480000e-11! 1.41940000e-05! 4.33420000e-03! 2.05490000e-10! 6.24659990e-10! 5.77304260e-10! 3.58726868e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.50869994e-11! 0.00000000e+00! 0.00000000e+00! 9.94070048e-10! 0.00000000e+00! 2.36552705e-11! 1.06277296e-11! 7.40000006e-11! 1.41242252e-11! 1.46398258e-11! 9.50748421e-12! 2.08979466e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.62169982e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.23622900e+02! 1.48290000e+01! 3.22150000e+00! 9.64400000e+02! 3.02140000e+02! 4.50110000e-08! 8.30910000e-08! 2.28890000e-02! 1.08910000e-10! 1.59590000e-05! 5.10770000e-03! 2.61570016e-10! 6.27390029e-10! 5.75565207e-10! 3.55598745e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 5.89999993e-11! 1.17212923e-11! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.23623600e+02! 1.48910000e+01! 3.20090000e+00! 9.65420000e+02! 3.02290000e+02! 4.69760000e-08! 8.29090000e-08! 2.51400000e-02! 1.07890000e-10! 1.67500000e-05! 5.46580000e-03! 2.52870003e-10! 6.42359999e-10! 5.74639780e-10! 3.53934104e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.72140002e-11! 0.00000000e+00! 0.00000000e+00! 1.14440002e-09! 0.00000000e+00! 1.79400002e-11! 8.05999972e-12! 0.00000000e+00! 1.04425392e-11! 1.50003725e-11! 9.64666194e-12! 2.11224111e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 6.93569993e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.23624300e+02! 1.49540000e+01! 3.18100000e+00! 9.63960000e+02! 3.02360000e+02! 4.72730000e-08! 8.24710000e-08! 2.40660000e-02! 1.09850000e-10! 1.69690000e-05! 5.59420000e-03! 2.04270004e-10! 6.62019994e-10! 5.72412562e-10! 3.49927934e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.74889998e-11! 0.00000000e+00! 0.00000000e+00! 1.13180010e-09! 0.00000000e+00! 2.30197788e-11! 1.03422193e-11! 6.59999971e-11! 7.36509811e-12! 1.47112392e-11! 9.53505157e-12! 2.09424075e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.33190003e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.23625000e+02! 1.50170000e+01! 3.15930000e+00! 9.63300000e+02! 3.02490000e+02! 4.59640000e-08! 8.21130000e-08! 2.39150000e-02! 9.15170000e-11! 1.64980000e-05! 5.38080000e-03! 1.37549999e-10! 6.98030023e-10! 5.70592074e-10! 3.46653470e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.10569998e-09! 0.00000000e+00! 2.09939392e-11! 9.43206017e-12! 5.09999959e-11! 4.84974734e-12! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.45740000e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.23629200e+02! 1.53940000e+01! 3.03360000e+00! 9.60690000e+02! 3.02850000e+02! 4.42620000e-08! 7.93940000e-08! 2.34410000e-02! 8.51510000e-11! 8.63040000e-06! 2.97500000e-03! 5.20989973e-10! 7.11479986e-10! 5.56766078e-10! 3.21784162e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.07849996e-09! 0.00000000e+00! 2.45957386e-11! 1.10502597e-11! 6.99999989e-11! 0.00000000e+00! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.27080003e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.26262500e+02! 1.15550000e+01! 2.61880000e+00! 9.65570000e+02! 2.97770000e+02! 1.93910000e-08! 1.42800000e-07! 2.81060000e-02! 1.06820000e-11! 2.83540000e-07! 7.99460000e-04! 1.97759989e-10! 6.81460000e-10! 8.79183726e-10! 9.01727165e-11! 4.44885448e-11! 9.84077125e-11! 2.63840394e-10! 5.62784819e-11! 2.72510015e-10! 0.00000000e+00! 0.00000000e+00! 1.11159992e-09! 0.00000000e+00! 1.77067791e-10! 7.95521982e-11! 0.00000000e+00! 4.31243902e-10! 2.22932384e-11! 1.24618415e-11! 2.56627237e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.26263200e+02! 1.14920000e+01! 2.61950000e+00! 9.65010000e+02! 2.97590000e+02! 1.82260000e-08! 1.43100000e-07! 2.81760000e-02! 1.66050000e-11! 2.92490000e-07! 8.28230000e-04! 2.57739996e-10! 7.04919956e-10! 1.03019993e-09! 1.15660002e-10! 2.29100003e-11! 3.70099992e-11! 2.00979997e-10! 2.91699997e-11! 3.33670008e-10! 2.77160006e-09! 0.00000000e+00! 1.11869991e-09! 3.49799981e-11! 1.93924488e-10! 8.71254943e-11! 1.70000004e-11! 3.18140014e-10! 2.41115791e-11! 1.31637531e-11! 2.67947661e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.53000007e-12! 4.67999988e-12! 6.18999990e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.91799987e-11! 4.42999977e-12! 2.27500007e-12! 2.27500007e-12! 0.00000000e+00! 0.00000000e+00!
+ 2.26263900e+02! 1.14280000e+01! 2.62160000e+00! 9.65950000e+02! 2.97540000e+02! 1.65450000e-08! 1.44430000e-07! 2.86760000e-02! 4.64920000e-11! 3.03430000e-07! 8.61070000e-04! 4.23670016e-10! 7.23619997e-10! 8.87472151e-10! 9.16635934e-11! 4.57378441e-11! 1.01693709e-10! 2.71514422e-10! 5.79366000e-11! 5.15699983e-10! 0.00000000e+00! 0.00000000e+00! 1.12889997e-09! 0.00000000e+00! 2.23898081e-10! 1.00591896e-10! 0.00000000e+00! 4.42696463e-10! 2.95234913e-11! 1.52528511e-11! 3.01640518e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.26264600e+02! 1.13650000e+01! 2.62250000e+00! 9.65820000e+02! 2.97190000e+02! 1.18910000e-08! 1.51600000e-07! 2.95820000e-02! 7.71360000e-11! 3.16990000e-07! 8.99600000e-04! 7.59909968e-10! 7.30669969e-10! 9.23931376e-10! 9.82216322e-11! 5.12332156e-11! 1.16148070e-10! 3.05270781e-10! 6.52302795e-11! 9.47409928e-10! 0.00000000e+00! 0.00000000e+00! 1.18679999e-09! 0.00000000e+00! 3.10838077e-10! 1.39651887e-10! 2.69999995e-11! 4.93073748e-10! 4.23586027e-11! 2.02074399e-11! 3.81547918e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.26265300e+02! 1.13020000e+01! 2.62350000e+00! 9.65190000e+02! 2.97290000e+02! 1.25060000e-08! 1.56940000e-07! 2.93670000e-02! 6.58640000e-11! 3.31740000e-07! 9.38340000e-04! 6.65810018e-10! 7.06819991e-10! 9.51085100e-10! 1.03105864e-10! 5.53260077e-11! 1.26913244e-10! 3.30411504e-10! 7.06623995e-11! 9.45139966e-10! 0.00000000e+00! 0.00000000e+00! 1.20749999e-09! 0.00000000e+00! 3.31793371e-10! 1.49066592e-10! 4.09999985e-11! 5.30593236e-10! 4.22911185e-11! 2.01813895e-11! 3.81127768e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.26266000e+02! 1.12380000e+01! 2.62400000e+00! 9.66980000e+02! 2.97340000e+02! 1.11970000e-08! 1.64550000e-07! 2.93900000e-02! 7.43050000e-11! 3.35830000e-07! 9.22650000e-04! 6.81940004e-10! 6.51070031e-10! 1.32419997e-09! 1.72469997e-10! 3.81399981e-11! 6.05999972e-11! 5.81200033e-10! 1.34660005e-10! 1.00379993e-09! 1.01230000e-07! 0.00000000e+00! 1.10260001e-09! 2.56580002e-09! 3.11217607e-10! 1.39822404e-10! 4.09999985e-11! 4.55059990e-10! 4.40351297e-11! 2.08546080e-11! 3.91985472e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 5.60000006e-12! 2.26600006e-11! 1.92299995e-11! 2.41999996e-12! 0.00000000e+00! 0.00000000e+00! 1.35810002e-10! 3.60600022e-11! 5.73199994e-11! 5.73199994e-11! 4.54399990e-11! 0.00000000e+00!
+ 2.26266700e+02! 1.11750000e+01! 2.62240000e+00! 9.68570000e+02! 2.97130000e+02! 1.17020000e-08! 1.63310000e-07! 2.92930000e-02! 5.28570000e-11! 3.43140000e-07! 9.51060000e-04! 6.09920003e-10! 6.12479956e-10! 1.32419997e-09! 1.72469997e-10! 3.81399981e-11! 6.05999972e-11! 5.81200033e-10! 1.34660005e-10! 8.55900018e-10! 1.01230000e-07! 0.00000000e+00! 1.11319998e-09! 2.56580002e-09! 2.75841294e-10! 1.23928687e-10! 2.59999990e-11! 4.55059990e-10! 3.96379353e-11! 1.91572105e-11! 3.64609905e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 5.60000006e-12! 2.26600006e-11! 1.92299995e-11! 2.41999996e-12! 0.00000000e+00! 0.00000000e+00! 1.35810002e-10! 3.60600022e-11! 5.73199994e-11! 5.73199994e-11! 4.54399990e-11! 0.00000000e+00!
+ 2.26281900e+02! 1.21690000e+01! 2.61720000e+00! 9.65640000e+02! 2.98210000e+02! 1.97530000e-08! 1.50160000e-07! 2.83270000e-02! 1.83790000e-11! 9.28060000e-07! 1.61640000e-03! 2.12039997e-10! 8.31260005e-10! 1.00490005e-09! 1.09829999e-10! 2.06900001e-11! 3.12299978e-11! 1.88940003e-10! 2.76200000e-11! 1.84609994e-10! 1.12090004e-09! 0.00000000e+00! 1.15580001e-09! 1.57659996e-10! 1.72603487e-10! 7.75464970e-11! 1.29999995e-11! 3.12399995e-10! 1.96798931e-11! 1.14530425e-11! 2.40357352e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.81000006e-12! 4.17999966e-12! 3.81999987e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.02099986e-11! 8.46999988e-12! 4.97500001e-12! 4.97500001e-12! 0.00000000e+00! 0.00000000e+00!
+ 2.26282600e+02! 1.22340000e+01! 2.61670000e+00! 9.67410000e+02! 2.98390000e+02! 1.91530000e-08! 1.39930000e-07! 2.80740000e-02! 1.17930000e-11! 1.02550000e-06! 1.89480000e-03! 2.30880010e-10! 8.31439972e-10! 1.00490005e-09! 1.09829999e-10! 2.06900001e-11! 3.12299978e-11! 1.88940003e-10! 2.76200000e-11! 2.76620005e-10! 1.12090004e-09! 0.00000000e+00! 1.14220000e-09! 1.57659996e-10! 2.07158707e-10! 9.30713007e-11! 0.00000000e+00! 3.12399995e-10! 2.24154324e-11! 1.25090103e-11! 2.57387965e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.81000006e-12! 4.17999966e-12! 3.81999987e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.02099986e-11! 8.46999988e-12! 4.97500001e-12! 4.97500001e-12! 0.00000000e+00! 0.00000000e+00!
+ 2.26283300e+02! 1.22990000e+01! 2.61560000e+00! 9.69200000e+02! 2.98290000e+02! 1.94410000e-08! 1.43820000e-07! 2.82310000e-02! 1.84510000e-11! 1.05060000e-06! 1.78740000e-03! 2.47970006e-10! 8.16979984e-10! 8.84370355e-10! 9.11056577e-11! 4.52703118e-11! 1.00463984e-10! 2.68642553e-10! 5.73160790e-11! 2.50510002e-10! 0.00000000e+00! 0.00000000e+00! 1.15349996e-09! 0.00000000e+00! 1.98299099e-10! 8.90909013e-11! 1.70000004e-11! 4.38410558e-10! 2.16391575e-11! 1.22093542e-11! 2.52555130e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.26284000e+02! 1.23650000e+01! 2.61530000e+00! 9.68170000e+02! 2.98740000e+02! 2.00310000e-08! 1.48070000e-07! 2.76660000e-02! 2.06570000e-11! 1.08850000e-06! 1.73580000e-03! 1.91610006e-10! 7.81919973e-10! 9.05981512e-10! 9.49929163e-11! 4.85276819e-11! 1.09031770e-10! 2.88651547e-10! 6.16393880e-11! 2.21639998e-10! 0.00000000e+00! 0.00000000e+00! 1.15790000e-09! 0.00000000e+00! 2.07393297e-10! 9.31767025e-11! 0.00000000e+00! 4.68271533e-10! 2.07808284e-11! 1.18780229e-11! 2.47211435e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.26284700e+02! 1.24310000e+01! 2.61750000e+00! 9.67890000e+02! 2.99290000e+02! 2.07420000e-08! 1.30410000e-07! 2.66940000e-02! 1.02370000e-11! 1.18400000e-06! 1.92570000e-03! 1.39499995e-10! 7.37080008e-10! 8.16180901e-10! 7.88402052e-11! 3.49923562e-11! 7.34300884e-11! 2.05508263e-10! 4.36747548e-11! 1.58429991e-10! 0.00000000e+00! 0.00000000e+00! 1.13159992e-09! 0.00000000e+00! 1.64095806e-10! 7.37242004e-11! 0.00000000e+00! 3.44190287e-10! 1.89015383e-11! 1.11525841e-11! 2.35511576e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.26285400e+02! 1.24970000e+01! 2.61900000e+00! 9.70790000e+02! 2.99800000e+02! 2.02660000e-08! 1.29730000e-07! 2.66590000e-02! 4.70660000e-12! 1.31560000e-06! 2.20230000e-03! 1.71160003e-10! 6.89249990e-10! 8.12723167e-10! 7.82182374e-11! 3.44711759e-11! 7.20592475e-11! 2.02306824e-10! 4.29830234e-11! 1.30519998e-10! 0.00000000e+00! 0.00000000e+00! 1.15929999e-09! 0.00000000e+00! 1.44472198e-10! 6.49078014e-11! 0.00000000e+00! 3.39412498e-10! 1.80717507e-11! 1.08322700e-11! 2.30345569e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.26286100e+02! 1.25640000e+01! 2.61740000e+00! 9.72390000e+02! 2.99500000e+02! 1.92440000e-08! 1.27780000e-07! 2.73370000e-02! 2.24230000e-11! 1.42980000e-06! 2.49500000e-03! 2.06110004e-10! 6.74330036e-10! 8.02807432e-10! 7.64346711e-11! 3.29766145e-11! 6.81281420e-11! 1.93126223e-10! 4.09993844e-11! 1.70839995e-10! 0.00000000e+00! 0.00000000e+00! 1.08059994e-09! 0.00000000e+00! 1.46417989e-10! 6.57819979e-11! 5.99999998e-12! 3.25711569e-10! 1.92705001e-11! 1.12950083e-11! 2.37808610e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.26288200e+02! 1.27580000e+01! 2.62030000e+00! 9.68200000e+02! 2.99490000e+02! 1.99940000e-08! 1.28390000e-07! 2.70910000e-02! 1.59950000e-11! 1.62360000e-06! 2.45770000e-03! 8.98130043e-11! 6.72739975e-10! 8.05909228e-10! 7.69926067e-11! 3.34441468e-11! 6.93578736e-11! 1.95998107e-10! 4.16199124e-11! 1.31229999e-10! 0.00000000e+00! 0.00000000e+00! 1.28430000e-09! 0.00000000e+00! 1.47611687e-10! 6.63182981e-11! 6.99999997e-12! 3.29997502e-10! 1.80928588e-11! 1.08404188e-11! 2.30476992e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.26288900e+02! 1.28210000e+01! 2.61980000e+00! 9.68230000e+02! 2.99540000e+02! 1.96800000e-08! 1.28960000e-07! 2.74670000e-02! 2.90030000e-11! 1.76270000e-06! 2.98430000e-03! 1.79130002e-10! 6.70750011e-10! 9.30650002e-10! 9.70500000e-11! 1.87999998e-11! 2.67999997e-11! 1.38630010e-10! 1.67299993e-11! 1.49700002e-10! 8.21969992e-10! 0.00000000e+00! 1.17159993e-09! 1.53179996e-10! 1.61942987e-10! 7.27569949e-11! 0.00000000e+00! 2.60960004e-10! 1.86419890e-11! 1.10523916e-11! 2.33895681e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.32000009e-12! 3.11999992e-12! 3.06999998e-12! 0.00000000e+00! 7.95000003e-12! 0.00000000e+00! 1.48100004e-11! 3.15000001e-12! 3.08999983e-12! 3.08999983e-12! 0.00000000e+00! 0.00000000e+00!
+ 2.26289600e+02! 1.28850000e+01! 2.62040000e+00! 9.70770000e+02! 2.99170000e+02! 1.88380000e-08! 1.29200000e-07! 2.78070000e-02! 4.14340000e-11! 1.89770000e-06! 3.10910000e-03! 2.19669991e-10! 6.75070000e-10! 8.10028100e-10! 7.77334724e-11! 3.40649592e-11! 7.09907966e-11! 1.99811584e-10! 4.24438817e-11! 1.42380011e-10! 0.00000000e+00! 0.00000000e+00! 1.11970000e-09! 0.00000000e+00! 1.50309598e-10! 6.75303979e-11! 2.29999995e-11! 3.35688671e-10! 1.84243575e-11! 1.09683833e-11! 2.32540792e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.26290300e+02! 1.29480000e+01! 2.61890000e+00! 9.68640000e+02! 2.99170000e+02! 1.87050000e-08! 1.30110000e-07! 2.78580000e-02! 4.38340000e-11! 1.98010000e-06! 3.13670000e-03! 3.43869988e-10! 6.92509994e-10! 8.14655399e-10! 7.85658066e-11! 3.47624221e-11! 7.28253083e-11! 2.04095865e-10! 4.33695788e-11! 1.61940003e-10! 0.00000000e+00! 0.00000000e+00! 1.19830001e-09! 0.00000000e+00! 1.32079792e-10! 5.93401994e-11! 2.29999995e-11! 3.42082418e-10! 1.90058941e-11! 1.11928669e-11! 2.36161247e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.26291000e+02! 1.30080000e+01! 2.62350000e+00! 9.66130000e+02! 2.99770000e+02! 2.02810000e-08! 1.26240000e-07! 2.75220000e-02! 2.69000000e-11! 1.93370000e-06! 2.81860000e-03! 2.47949994e-10! 7.28359983e-10! 7.94976585e-10! 7.50261103e-11! 3.17962982e-11! 6.50235837e-11! 1.85875898e-10! 3.94328216e-11! 1.95619992e-10! 0.00000000e+00! 0.00000000e+00! 1.20540000e-09! 0.00000000e+00! 1.45148393e-10! 6.52116000e-11! 0.00000000e+00! 3.14891363e-10! 2.00072302e-11! 1.15794006e-11! 2.42395253e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.27270100e+02! 1.01540000e+01!-2.46330000e+00! 3.59360000e+02! 2.50450000e+02! 4.09770000e-08! 1.11690000e-07! 2.78010000e-03! 4.86410000e-10! 8.25850000e-07! 2.18390000e-03! 0.00000000e+00! 6.42379983e-10! 7.20990267e-10! 6.17179502e-11! 2.06445971e-11! 3.56915122e-11! 1.17374499e-10! 2.46318365e-11! 3.83330000e-11! 0.00000000e+00! 0.00000000e+00! 1.01550002e-09! 0.00000000e+00! 3.64037064e-11! 1.63552887e-11! 1.16999993e-10! 2.12661305e-10! 1.53309501e-11! 9.77427080e-12! 2.13282204e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.92039985e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.27270800e+02! 1.00640000e+01!-2.45590000e+00! 3.59480000e+02! 2.50430000e+02! 4.16290000e-08! 1.11420000e-07! 2.84730000e-03! 3.61910000e-10! 7.62800000e-07! 1.68520000e-03! 0.00000000e+00! 6.32439989e-10! 7.51800011e-10! 6.56299945e-11! 9.55000055e-12! 1.40699995e-11! 5.31699997e-11! 6.78000017e-12! 7.07780015e-11! 3.83390014e-10! 0.00000000e+00! 1.05260001e-09! 4.73799992e-11! 3.53307592e-11! 1.58732385e-11! 2.86999979e-10! 1.58999994e-10! 1.62955691e-11! 1.01466309e-11! 2.19287609e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.76999994e-12! 0.00000000e+00! 3.03999989e-12! 0.00000000e+00! 3.32999990e-12! 5.43890002e-11! 8.41000013e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.27271500e+02! 9.97520000e+00!-2.44840000e+00! 3.59460000e+02! 2.50540000e+02! 4.12180000e-08! 1.11710000e-07! 2.73590000e-03! 5.25480000e-10! 9.23550000e-07! 3.22260000e-03! 0.00000000e+00! 6.21099949e-10! 7.51800011e-10! 6.56299945e-11! 9.55000055e-12! 1.40699995e-11! 5.31699997e-11! 6.78000017e-12! 4.84070006e-11! 3.83390014e-10! 0.00000000e+00! 1.02919995e-09! 4.73799992e-11! 5.65413584e-11! 2.54026401e-11! 2.86999979e-10! 1.58999994e-10! 1.56304587e-11! 9.88988665e-12! 2.15146841e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.76999994e-12! 0.00000000e+00! 3.03999989e-12! 0.00000000e+00! 3.32999990e-12! 3.92589988e-11! 8.41000013e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.27272200e+02! 9.88770000e+00!-2.44150000e+00! 3.61140000e+02! 2.50920000e+02! 4.33200000e-08! 1.09810000e-07! 2.72460000e-03! 4.31680000e-10! 1.26780000e-06! 5.21040000e-03! 0.00000000e+00! 5.92490002e-10! 7.11430526e-10! 5.99984090e-11! 1.92036890e-11! 3.19015266e-11! 1.08523461e-10! 2.27194062e-11! 2.55999996e-11! 0.00000000e+00! 0.00000000e+00! 1.05340003e-09! 0.00000000e+00! 2.75999987e-11! 1.23999994e-11! 1.29999997e-10! 1.99452191e-10! 1.49523866e-11! 9.62813856e-12! 2.10925392e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.07999998e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.27277100e+02! 1.02490000e+01!-2.61920000e+00! 3.92390000e+02! 2.54840000e+02! 4.48550000e-08! 1.05830000e-07! 3.80080000e-03! 1.98800000e-10! 8.13940000e-07! 1.89280000e-03! 0.00000000e+00! 7.48159978e-10! 6.91679991e-10! 5.62999994e-11! 7.76999992e-12! 1.12299996e-11! 2.69500013e-11! 4.84999974e-12! 1.22220003e-11! 4.06230022e-10! 0.00000000e+00! 9.33299993e-10! 5.27300009e-11! 1.96905305e-11! 8.84646956e-12! 2.93999991e-10! 1.37580003e-10! 1.45546474e-11! 9.47460339e-12! 2.08449178e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.46000008e-12! 0.00000000e+00! 2.81999988e-12! 0.00000000e+00! 0.00000000e+00! 2.56109994e-11! 5.58000000e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.27277800e+02! 1.03320000e+01!-2.63250000e+00! 3.92230000e+02! 2.55050000e+02! 4.50830000e-08! 1.05600000e-07! 3.85880000e-03! 1.84220000e-10! 8.25310000e-07! 1.76440000e-03! 0.00000000e+00! 7.48869966e-10! 6.91679991e-10! 5.62999994e-11! 7.76999992e-12! 1.12299996e-11! 2.69500013e-11! 4.84999974e-12! 0.00000000e+00! 4.06230022e-10! 0.00000000e+00! 9.81129955e-10! 5.27300009e-11! 3.37713607e-11! 1.51726392e-11! 5.14999987e-10! 1.37580003e-10! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.46000008e-12! 0.00000000e+00! 2.81999988e-12! 0.00000000e+00! 0.00000000e+00! 4.23699999e-11! 5.58000000e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.27278500e+02! 1.04140000e+01!-2.64510000e+00! 3.92160000e+02! 2.55090000e+02! 4.52930000e-08! 1.05720000e-07! 3.81150000e-03! 1.69840000e-10! 9.40930000e-07! 1.72850000e-03! 0.00000000e+00! 7.61340047e-10! 6.90632995e-10! 5.62574917e-11! 1.60689500e-11! 2.36562905e-11! 8.92677460e-11! 1.85588524e-11! 5.77780011e-12! 0.00000000e+00! 0.00000000e+00! 1.00510000e-09! 0.00000000e+00! 2.76765885e-11! 1.24344094e-11! 0.00000000e+00! 1.70715359e-10! 1.43630550e-11! 9.40064606e-12! 2.07256400e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.75560001e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.27279200e+02! 1.04960000e+01!-2.65780000e+00! 3.92100000e+02! 2.55380000e+02! 4.55780000e-08! 1.05350000e-07! 3.74990000e-03! 1.63660000e-10! 9.53870000e-07! 1.74200000e-03! 0.00000000e+00! 7.80509990e-10! 6.88751611e-10! 5.59190715e-11! 1.57853678e-11! 2.29103889e-11! 8.75257783e-11! 1.81824729e-11! 9.94439947e-12! 0.00000000e+00! 0.00000000e+00! 1.00379993e-09! 0.00000000e+00! 1.68918907e-11! 7.58910990e-12! 3.30999977e-10! 1.68115702e-10! 1.44869325e-11! 9.44846458e-12! 2.08027606e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.55190009e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.27279900e+02! 1.05780000e+01!-2.67050000e+00! 3.92150000e+02! 2.55680000e+02! 4.54040000e-08! 1.07030000e-07! 3.57520000e-03! 2.48020000e-10! 1.81660000e-06! 2.11910000e-03! 0.00000000e+00! 8.04299960e-10! 6.97294333e-10! 5.74556860e-11! 1.70729871e-11! 2.62971832e-11! 9.54352292e-11! 1.98914513e-11! 1.72000001e-11! 0.00000000e+00! 0.00000000e+00! 9.46200007e-10! 0.00000000e+00! 2.08379997e-11! 9.36199989e-12! 4.95999963e-10! 1.79919579e-10! 1.47026471e-11! 9.53173478e-12! 2.09370576e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.73999998e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.27280600e+02! 1.06590000e+01!-2.68320000e+00! 3.92160000e+02! 2.55830000e+02! 4.45630000e-08! 1.06010000e-07! 3.50210000e-03! 3.00240000e-10! 1.89780000e-06! 2.36460000e-03! 0.00000000e+00! 7.86770038e-10! 7.06789960e-10! 5.89499977e-11! 7.17999965e-12! 1.22899997e-11! 2.51500001e-11! 3.90999993e-12! 0.00000000e+00! 4.51200022e-10! 0.00000000e+00! 1.04630005e-09! 3.93400000e-11! 1.00049994e-11! 4.49499986e-12! 0.00000000e+00! 1.39639994e-10! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.01000023e-12! 0.00000000e+00! 1.70000006e-12! 0.00000000e+00! 1.34000005e-12! 2.56299999e-11! 8.10999965e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.27281200e+02! 1.07410000e+01!-2.69580000e+00! 3.92180000e+02! 2.55720000e+02! 4.52310000e-08! 1.04680000e-07! 3.54340000e-03! 2.89820000e-10! 1.98350000e-06! 2.53950000e-03! 0.00000000e+00! 7.15969950e-10! 7.06789960e-10! 5.89499977e-11! 7.17999965e-12! 1.22899997e-11! 2.51500001e-11! 3.90999993e-12! 2.13150001e-11! 4.51200022e-10! 0.00000000e+00! 1.01020003e-09! 3.93400000e-11! 2.24505275e-11! 1.00864690e-11! 2.86999979e-10! 1.39639994e-10! 1.48249902e-11! 9.57896176e-12! 2.10132259e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.01000023e-12! 0.00000000e+00! 1.70000006e-12! 0.00000000e+00! 1.34000005e-12! 4.63520021e-11! 8.10999965e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.27286800e+02! 1.04780000e+01!-2.62090000e+00! 4.27500000e+02! 2.58820000e+02! 5.27970000e-08! 7.79070000e-08! 4.38390000e-03! 3.50570000e-11! 2.34470000e-06! 3.08050000e-03! 0.00000000e+00! 2.55440002e-10! 5.45429979e-10! 3.62599985e-11! 4.76000012e-12! 2.51000002e-12! 5.97999992e-12! 3.34999996e-12! 1.02259997e-11! 4.49519977e-10! 0.00000000e+00! 8.62939997e-10! 5.42400014e-11! 2.62979699e-12! 1.18150303e-12! 2.29000000e-10! 6.17799978e-11! 1.44953043e-11! 9.45169637e-12! 2.08079717e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.98999996e-12! 0.00000000e+00! 2.81999988e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 5.83000011e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.27287500e+02! 1.03960000e+01!-2.62060000e+00! 4.27520000e+02! 2.58850000e+02! 5.84720000e-08! 7.53880000e-08! 2.68130000e-03! 3.66690000e-11! 2.39230000e-06! 2.97400000e-03! 0.00000000e+00! 2.28440003e-10! 5.36395706e-10! 2.85143281e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 7.59870000e-10! 0.00000000e+00! 1.16147699e-11! 5.21822993e-12! 0.00000000e+00! 0.00000000e+00! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.43519996e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.27288200e+02! 1.03140000e+01!-2.62090000e+00! 4.27440000e+02! 2.58900000e+02! 5.50190000e-08! 7.43240000e-08! 3.50190000e-03! 2.63950000e-11! 2.54510000e-06! 3.39290000e-03! 0.00000000e+00! 2.29260000e-10! 5.30985311e-10! 2.75411395e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.68519994e-12! 0.00000000e+00! 0.00000000e+00! 7.50630003e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.66999997e-10! 0.00000000e+00! 1.42413789e-11! 9.35367669e-12! 2.06498863e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.27288900e+02! 1.02330000e+01!-2.62110000e+00! 4.27510000e+02! 2.59040000e+02! 4.69160000e-08! 7.58860000e-08! 4.26570000e-03! 2.42110000e-11! 2.93180000e-06! 3.89890000e-03! 0.00000000e+00! 2.27699998e-10! 5.36359956e-10! 4.38599990e-11! 1.01499998e-11! 4.01000023e-12! 5.94999961e-12! 3.24000007e-12! 0.00000000e+00! 2.47679988e-10! 0.00000000e+00! 8.18000001e-10! 3.33899991e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 5.50800031e-11! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.65000001e-12! 0.00000000e+00! 2.82999991e-12! 0.00000000e+00! 0.00000000e+00! 1.99999999e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.27289600e+02! 1.01530000e+01!-2.62100000e+00! 4.27450000e+02! 2.59280000e+02! 4.64910000e-08! 7.62880000e-08! 4.28830000e-03! 2.61440000e-11! 2.67920000e-06! 3.79890000e-03! 0.00000000e+00! 2.21259996e-10! 5.36359956e-10! 4.38599990e-11! 1.01499998e-11! 4.01000023e-12! 5.94999961e-12! 3.24000007e-12! 2.18700006e-11! 2.47679988e-10! 0.00000000e+00! 8.80309992e-10! 3.33899991e-11! 2.37663600e-12! 1.06776404e-12! 2.19999990e-10! 5.50800031e-11! 1.48414909e-11! 9.58533079e-12! 2.10234972e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.65000001e-12! 0.00000000e+00! 2.82999991e-12! 0.00000000e+00! 0.00000000e+00! 7.22220027e-13! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.27290300e+02! 1.00740000e+01!-2.62050000e+00! 4.27420000e+02! 2.59350000e+02! 4.44700000e-08! 7.68010000e-08! 4.30420000e-03! 2.29000000e-11! 2.95390000e-06! 3.09680000e-03! 0.00000000e+00! 2.34749997e-10! 5.43580736e-10! 2.98067265e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.68300017e-11! 0.00000000e+00! 0.00000000e+00! 9.32659949e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.09999995e-10! 0.00000000e+00! 1.55835726e-11! 9.87178828e-12! 2.14854939e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.27291000e+02! 9.99450000e+00!-2.62010000e+00! 4.27740000e+02! 2.59110000e+02! 4.39340000e-08! 7.60560000e-08! 4.34590000e-03! 3.42710000e-11! 2.96140000e-06! 3.44800000e-03! 0.00000000e+00! 2.69079981e-10! 5.39792488e-10! 2.91253133e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 8.55299997e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.37999986e-10! 0.00000000e+00! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.19199997e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.27297200e+02! 1.04830000e+01!-2.59290000e+00! 5.26710000e+02! 2.67420000e+02! 6.32370000e-08! 7.01190000e-08! 2.17830000e-03! 1.66820000e-11! 3.98610000e-06! 6.19590000e-03! 0.00000000e+00! 1.94179992e-10! 5.30750000e-10! 2.57900003e-11! 1.69000003e-12! 1.59999997e-12! 1.02100004e-11! 5.55000013e-12! 0.00000000e+00! 4.66210015e-10! 0.00000000e+00! 6.66819988e-10! 1.13440000e-10! 0.00000000e+00! 0.00000000e+00! 2.54999993e-10! 5.29900013e-11! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.23000003e-12! 2.26999994e-12! 2.64000020e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.14000020e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.27297900e+02! 1.05590000e+01!-2.60340000e+00! 5.26730000e+02! 2.67470000e+02! 6.50730000e-08! 6.83170000e-08! 1.75820000e-03! 1.27250000e-11! 3.83060000e-06! 5.57260000e-03! 0.00000000e+00! 1.94070010e-10! 5.30750000e-10! 2.57900003e-11! 1.69000003e-12! 1.59999997e-12! 1.02100004e-11! 5.55000013e-12! 3.51850005e-13! 4.66210015e-10! 0.00000000e+00! 5.80669957e-10! 1.13440000e-10! 0.00000000e+00! 0.00000000e+00! 1.98999997e-10! 5.29900013e-11! 1.42017370e-11! 9.33837382e-12! 2.06252064e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.23000003e-12! 2.26999994e-12! 2.64000020e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.14000020e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.27298600e+02! 1.06350000e+01!-2.61440000e+00! 5.26830000e+02! 2.67280000e+02! 6.21740000e-08! 6.96430000e-08! 3.01080000e-03! 7.15000000e-12! 3.62000000e-06! 3.76990000e-03! 0.00000000e+00! 1.95740008e-10! 5.07182518e-10! 2.32596633e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.12960009e-12! 0.00000000e+00! 0.00000000e+00! 6.48479992e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.42843229e-11! 9.37025370e-12! 2.06766219e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.27299300e+02! 1.07110000e+01!-2.62520000e+00! 5.26830000e+02! 2.67240000e+02! 5.99530000e-08! 7.11340000e-08! 3.72940000e-03! 6.51900000e-12! 3.25050000e-06! 3.29800000e-03! 0.00000000e+00! 1.94279995e-10! 5.14764231e-10! 2.46234075e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.07409911e-12! 0.00000000e+00! 0.00000000e+00! 6.72700007e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.98999997e-10! 0.00000000e+00! 1.44610574e-11! 9.43847691e-12! 2.07866519e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.53700012e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.27307600e+02! 1.09030000e+01!-1.87390000e+00! 3.75920000e+02! 2.53730000e+02! 4.85420000e-08! 1.05240000e-07! 2.51230000e-03! 2.34430000e-10! 8.93700000e-06! 8.45690000e-03! 0.00000000e+00! 5.32460021e-10! 6.59319987e-10! 5.01799990e-11! 5.97999992e-12! 7.42000038e-12! 1.06699996e-11! 3.41000015e-12! 9.99999996e-12! 4.18689999e-10! 0.00000000e+00! 1.05300002e-09! 4.64999983e-11! 5.52000015e-13! 2.47999998e-13! 0.00000000e+00! 9.85799983e-11! 1.44885857e-11! 9.44910296e-12! 2.08037892e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.23000003e-12! 0.00000000e+00! 3.54999992e-12! 0.00000000e+00! 0.00000000e+00! 5.87999996e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.27308300e+02! 1.09050000e+01!-1.78620000e+00! 3.75810000e+02! 2.53770000e+02! 4.94630000e-08! 1.05010000e-07! 2.50300000e-03! 2.02150000e-10! 9.26270000e-06! 8.46500000e-03! 0.00000000e+00! 4.74079997e-10! 6.87022661e-10! 5.56080876e-11! 1.55247776e-11! 2.22249667e-11! 8.59250657e-11! 1.78366072e-11! 1.89999995e-11! 0.00000000e+00! 0.00000000e+00! 9.69250014e-10! 0.00000000e+00! 1.03499999e-12! 4.65000000e-13! 1.43999992e-10! 1.65726821e-10! 1.47561633e-11! 9.55239273e-12! 2.09703747e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 6.25000008e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.27309000e+02! 1.09080000e+01!-1.69940000e+00! 3.75880000e+02! 2.53760000e+02! 4.94620000e-08! 1.04460000e-07! 2.52870000e-03! 1.41090000e-10! 9.60570000e-06! 8.47110000e-03! 0.00000000e+00! 3.95339983e-10! 6.84225954e-10! 5.51050351e-11! 1.51032364e-11! 2.11161939e-11! 8.33356648e-11! 1.72771190e-11! 3.81399981e-11! 0.00000000e+00! 0.00000000e+00! 9.91539961e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.61862454e-10! 1.53252116e-11! 9.77205643e-12! 2.13246486e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 8.81999942e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.27309700e+02! 1.09110000e+01!-1.61290000e+00! 3.75880000e+02! 2.53820000e+02! 5.30970000e-08! 9.94370000e-08! 2.54250000e-03! 1.58840000e-10! 9.91460000e-06! 8.62060000e-03! 0.00000000e+00! 3.10790005e-10! 6.58684163e-10! 5.05107449e-11! 1.12534088e-11! 1.09900760e-11! 5.96873800e-11! 1.21674728e-11! 1.26669994e-11! 0.00000000e+00! 0.00000000e+00! 9.99429983e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.46999993e-10! 1.26570254e-10! 1.45678782e-11! 9.47971129e-12! 2.08531543e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 7.53700054e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.27310400e+02! 1.09130000e+01!-1.52670000e+00! 3.75850000e+02! 2.53840000e+02! 5.66860000e-08! 9.09560000e-08! 2.40580000e-03! 1.07290000e-10! 1.04110000e-05! 8.67530000e-03! 0.00000000e+00! 2.29210012e-10! 6.15558549e-10! 4.27535993e-11! 4.75323036e-12! 0.00000000e+00! 1.97588283e-11! 3.54017596e-12! 5.50939979e-12! 0.00000000e+00! 0.00000000e+00! 9.42870004e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.11000001e-10! 6.69817257e-11! 1.43550762e-11! 9.39756606e-12! 2.07206700e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.23960000e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.27311100e+02! 1.09160000e+01!-1.44060000e+00! 3.75860000e+02! 2.53530000e+02! 5.85480000e-08! 8.33250000e-08! 2.47060000e-03! 1.05710000e-10! 1.09880000e-05! 8.80680000e-03! 0.00000000e+00! 1.79789988e-10! 5.61259983e-10! 3.67000007e-11! 2.72000001e-12! 2.83999994e-12! 6.94999960e-12! 3.49999999e-12! 2.62000005e-11! 4.41209985e-10! 0.00000000e+00! 8.48000004e-10! 1.63669994e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 8.31200039e-11! 1.49702247e-11! 9.63502542e-12! 2.11036431e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.89000030e-12! 0.00000000e+00! 3.32999990e-12! 0.00000000e+00! 0.00000000e+00! 2.26000000e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.27311800e+02! 1.09180000e+01!-1.35450000e+00! 3.75890000e+02! 2.53560000e+02! 5.98440000e-08! 7.84540000e-08! 2.40260000e-03! 1.22220000e-10! 1.12970000e-05! 8.82100000e-03! 0.00000000e+00! 1.70869999e-10! 5.61259983e-10! 3.67000007e-11! 2.72000001e-12! 2.83999994e-12! 6.94999960e-12! 3.49999999e-12! 9.59999983e-13! 4.41209985e-10! 0.00000000e+00! 8.01219979e-10! 1.63669994e-10! 0.00000000e+00! 0.00000000e+00! 2.57999982e-10! 8.31200039e-11! 1.42198180e-11! 9.34535435e-12! 2.06364630e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.89000030e-12! 0.00000000e+00! 3.32999990e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.27313900e+02! 1.09250000e+01!-1.09560000e+00! 3.75780000e+02! 2.53760000e+02! 6.02790000e-08! 7.99600000e-08! 2.33360000e-03! 1.28140000e-10! 1.29400000e-05! 9.51810000e-03! 0.00000000e+00! 2.35309994e-10! 5.59644164e-10! 3.26961062e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.63999989e-10! 0.00000000e+00! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.27314600e+02! 1.09270000e+01!-1.00870000e+00! 3.75710000e+02! 2.53830000e+02! 5.96640000e-08! 8.09970000e-08! 2.32680000e-03! 1.29270000e-10! 1.33590000e-05! 9.70130000e-03! 0.00000000e+00! 2.36440006e-10! 5.64917280e-10! 3.36446010e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.27315300e+02! 1.09290000e+01!-9.21410000e-01! 3.75750000e+02! 2.53840000e+02! 5.84450000e-08! 8.02310000e-08! 2.31500000e-03! 1.24080000e-10! 1.32940000e-05! 9.37750000e-03! 0.00000000e+00! 2.27159999e-10! 5.61022229e-10! 3.29439774e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.70830008e-11! 0.00000000e+00! 0.00000000e+00! 8.75249984e-10! 0.00000000e+00! 5.92247648e-12! 2.66082273e-12! 8.29999958e-11! 0.00000000e+00! 1.49964780e-11! 9.64515880e-12! 2.11199877e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 5.28329984e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.27316000e+02! 1.09320000e+01!-8.33940000e-01! 3.75720000e+02! 2.53790000e+02! 5.87330000e-08! 8.01230000e-08! 2.33430000e-03! 1.22540000e-10! 1.33170000e-05! 9.10530000e-03! 0.00000000e+00! 2.23050009e-10! 5.60473001e-10! 3.28451953e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.10000012e-11! 0.00000000e+00! 0.00000000e+00! 7.97400035e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.72000006e-10! 0.00000000e+00! 1.51129335e-11! 9.69011330e-12! 2.11924887e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.27316700e+02! 1.09340000e+01!-7.46500000e-01! 3.75690000e+02! 2.53710000e+02! 5.95620000e-08! 8.01140000e-08! 2.36490000e-03! 1.17140000e-10! 1.35750000e-05! 9.03730000e-03! 0.00000000e+00! 2.26789990e-10! 5.60427260e-10! 3.28369623e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.33519992e-11! 0.00000000e+00! 0.00000000e+00! 8.06810008e-10! 0.00000000e+00! 5.74997645e-12! 2.58332288e-12! 0.00000000e+00! 0.00000000e+00! 1.48855529e-11! 9.60233889e-12! 2.10509284e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.33330000e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.27317400e+02! 1.09360000e+01!-6.58930000e-01! 3.75940000e+02! 2.53710000e+02! 5.99650000e-08! 8.00090000e-08! 2.36650000e-03! 1.21120000e-10! 1.39820000e-05! 9.08350000e-03! 0.00000000e+00! 2.36900000e-10! 5.59893298e-10! 3.27409246e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 8.19299961e-10! 0.00000000e+00! 7.29605959e-12! 3.27793999e-12! 8.39999945e-11! 0.00000000e+00! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.27318100e+02! 1.09380000e+01!-5.71140000e-01! 3.75830000e+02! 2.53500000e+02! 5.86310000e-08! 7.84370000e-08! 2.39580000e-03! 1.25610000e-10! 1.47880000e-05! 9.43090000e-03! 0.00000000e+00! 2.62000005e-10! 5.51899804e-10! 3.13030955e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.07779991e-11! 0.00000000e+00! 0.00000000e+00! 8.74889994e-10! 0.00000000e+00! 1.14105305e-11! 5.12647000e-12! 2.15000004e-10! 0.00000000e+00! 1.48090255e-11! 9.57279828e-12! 2.10032842e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.27319400e+02! 1.09420000e+01!-3.95810000e-01! 3.75930000e+02! 2.53670000e+02! 6.25980000e-08! 7.61430000e-08! 2.40450000e-03! 1.50890000e-10! 1.58330000e-05! 9.61950000e-03! 0.00000000e+00! 2.60999999e-10! 5.40234857e-10! 2.92048885e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.65189988e-11! 0.00000000e+00! 0.00000000e+00! 7.81889997e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.89999957e-11! 0.00000000e+00! 1.49797102e-11! 9.63868655e-12! 2.11095481e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.47219997e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.27320100e+02! 1.09450000e+01!-3.08250000e-01! 3.75730000e+02! 2.53660000e+02! 6.11700000e-08! 7.67690000e-08! 2.13590000e-03! 1.31900000e-10! 1.63150000e-05! 9.58200000e-03! 0.00000000e+00! 2.27929994e-10! 5.43418033e-10! 2.97774583e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.80000008e-11! 0.00000000e+00! 0.00000000e+00! 7.77000020e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.63000011e-10! 0.00000000e+00! 1.47264319e-11! 9.54091667e-12! 2.09518652e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.99999996e-13! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.27320800e+02! 1.09470000e+01!-2.20840000e-01! 3.75680000e+02! 2.53540000e+02! 6.32710000e-08! 7.61260000e-08! 1.91960000e-03! 1.31100000e-10! 1.74430000e-05! 9.98490000e-03! 0.00000000e+00! 1.99360001e-10! 5.40148370e-10! 2.91893384e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 7.84349974e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.27321500e+02! 1.09490000e+01!-1.33610000e-01! 3.75660000e+02! 2.53470000e+02! 6.31380000e-08! 7.64890000e-08! 1.86960000e-03! 1.22920000e-10! 1.76130000e-05! 1.00610000e-02! 0.00000000e+00! 1.83949994e-10! 5.41994283e-10! 2.95213576e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 7.10169978e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.29270000e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.27326400e+02! 1.09640000e+01! 4.74810000e-01! 4.27470000e+02! 2.59640000e+02! 6.52860000e-08! 7.18880000e-08! 9.44400000e-04! 4.80070000e-11! 2.01820000e-05! 9.88750000e-03! 0.00000000e+00! 1.99670003e-10! 5.18598275e-10! 2.53130537e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 6.30020036e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 6.51849972e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.27327100e+02! 1.09660000e+01! 5.58280000e-01! 4.27540000e+02! 2.59530000e+02! 6.65110000e-08! 7.25140000e-08! 1.29360000e-03! 4.01610000e-11! 2.15990000e-05! 1.03420000e-02! 0.00000000e+00! 2.32429992e-10! 5.21781507e-10! 2.58856235e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.38710006e-12! 0.00000000e+00! 0.00000000e+00! 6.32060015e-10! 0.00000000e+00! 2.98259377e-12! 1.34000591e-12! 3.91999988e-10! 0.00000000e+00! 1.42919782e-11! 9.37320881e-12! 2.06813872e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.27327800e+02! 1.09670000e+01! 6.41180000e-01! 4.27500000e+02! 2.59180000e+02! 5.59160000e-08! 7.50240000e-08! 3.63000000e-03! 5.00260000e-11! 2.21150000e-05! 1.02530000e-02! 0.00000000e+00! 2.87700003e-10! 5.34544742e-10! 2.81813947e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.27328500e+02! 1.09690000e+01! 7.23920000e-01! 4.27450000e+02! 2.59400000e+02! 6.15850000e-08! 7.44280000e-08! 2.19440000e-03! 4.51500000e-11! 2.31720000e-05! 1.06330000e-02! 0.00000000e+00! 3.17890020e-10! 5.31514111e-10! 2.76362631e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 6.89999932e-11! 0.00000000e+00! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.27329200e+02! 1.09710000e+01! 8.06470000e-01! 4.27470000e+02! 2.59340000e+02! 6.06280000e-08! 7.47170000e-08! 2.54690000e-03! 5.88950000e-11! 2.42210000e-05! 1.08140000e-02! 0.00000000e+00! 2.95750008e-10! 5.32983713e-10! 2.79005985e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.13329996e-11! 0.00000000e+00! 0.00000000e+00! 7.90669974e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.82000007e-10! 0.00000000e+00! 1.48255245e-11! 9.57916819e-12! 2.10135572e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.66669998e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.27329900e+02! 1.09730000e+01! 8.88920000e-01! 4.27460000e+02! 2.59450000e+02! 5.96060000e-08! 7.50360000e-08! 2.58420000e-03! 5.47570000e-11! 2.48680000e-05! 1.07900000e-02! 0.00000000e+00! 2.71660000e-10! 5.34605749e-10! 2.81923720e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 7.24939997e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.82000007e-10! 0.00000000e+00! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.19629982e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.27330600e+02! 1.09750000e+01! 9.71420000e-01! 4.27470000e+02! 2.59510000e+02! 6.30350000e-08! 7.45680000e-08! 2.52110000e-03! 5.25150000e-11! 2.58860000e-05! 1.08440000e-02! 0.00000000e+00! 2.73609996e-10! 5.32225986e-10! 2.77643152e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 5.74069980e-13! 0.00000000e+00! 0.00000000e+00! 7.12630011e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.80999993e-10! 0.00000000e+00! 1.42083446e-11! 9.34092387e-12! 2.06293194e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 6.05560003e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.27345100e+02! 1.12760000e+01! 2.34970000e+00! 9.46710000e+02! 2.95460000e+02! 2.59270000e-08! 1.17690000e-07! 2.35070000e-02! 3.35540000e-11! 1.35770000e-05! 5.67680000e-03! 0.00000000e+00! 8.20260027e-10! 7.51500084e-10! 6.72058589e-11! 2.52432363e-11! 4.77872117e-11! 1.45622514e-10! 3.07353379e-11! 1.71880010e-10! 0.00000000e+00! 0.00000000e+00! 1.11510001e-09! 0.00000000e+00! 1.60804495e-10! 7.22455012e-11! 4.09999985e-11! 2.54818028e-10! 1.93014198e-11! 1.13069450e-11! 2.38001095e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.20499999e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.27345800e+02! 1.13270000e+01! 2.39770000e+00! 9.46860000e+02! 2.95650000e+02! 2.68750000e-08! 1.14700000e-07! 2.30270000e-02! 2.43440000e-11! 1.39660000e-05! 5.68370000e-03! 0.00000000e+00! 8.17979962e-10! 7.36296024e-10! 6.44710466e-11! 2.29515816e-11! 4.17595229e-11! 1.31545580e-10! 2.76937587e-11! 8.59069968e-11! 0.00000000e+00! 0.00000000e+00! 1.02010000e-09! 0.00000000e+00! 1.62419092e-10! 7.29709002e-11! 3.29999986e-11! 2.33809916e-10! 1.67453672e-11! 1.03202620e-11! 2.22087921e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 7.97959962e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.27346500e+02! 1.13780000e+01! 2.44660000e+00! 9.47040000e+02! 2.95670000e+02! 2.83020000e-08! 1.12490000e-07! 2.26940000e-02! 2.45980000e-11! 1.40880000e-05! 5.66570000e-03! 0.00000000e+00! 8.22440005e-10! 7.25058236e-10! 6.24496704e-11! 2.12577490e-11! 3.73042708e-11! 1.21140903e-10! 2.54456369e-11! 6.53700011e-11! 0.00000000e+00! 0.00000000e+00! 1.04530007e-09! 0.00000000e+00! 1.68118491e-10! 7.55314977e-11! 0.00000000e+00! 2.18282198e-10! 1.61347845e-11! 1.00845660e-11! 2.18286604e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 7.74260031e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.27347200e+02! 1.14290000e+01! 2.49490000e+00! 9.47390000e+02! 2.95310000e+02! 2.68870000e-08! 1.13120000e-07! 2.33630000e-02! 2.82540000e-11! 1.39040000e-05! 5.51630000e-03! 0.00000000e+00! 8.62459992e-10! 7.28261784e-10! 6.30259039e-11! 2.17406058e-11! 3.85743174e-11! 1.24106947e-10! 2.60865045e-11! 1.82109994e-10! 0.00000000e+00! 0.00000000e+00! 1.02190001e-09! 0.00000000e+00! 1.55891688e-10! 7.00382946e-11! 4.19999972e-11! 2.22708643e-10! 1.96055654e-11! 1.14243510e-11! 2.39894615e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 6.14440027e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.27347900e+02! 1.14740000e+01! 2.54690000e+00! 9.47460000e+02! 2.95000000e+02! 2.51130000e-08! 1.14100000e-07! 2.38830000e-02! 3.14020000e-11! 1.40420000e-05! 5.44240000e-03! 0.00000000e+00! 9.05179987e-10! 7.33245076e-10! 6.39222633e-11! 2.24917186e-11! 4.05499488e-11! 1.28720784e-10! 2.70834084e-11! 2.10959999e-10! 0.00000000e+00! 0.00000000e+00! 9.76089987e-10! 0.00000000e+00! 1.65227401e-10! 7.42325992e-11! 0.00000000e+00! 2.29594246e-10! 2.04633029e-11! 1.17554534e-11! 2.45234614e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 8.62409935e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.27348600e+02! 1.15260000e+01! 2.58880000e+00! 9.47460000e+02! 2.95740000e+02! 2.77010000e-08! 1.15060000e-07! 2.26870000e-02! 2.41790000e-11! 1.41690000e-05! 5.43600000e-03! 0.00000000e+00! 9.13669973e-10! 7.38126671e-10! 6.48003248e-11! 2.32274980e-11! 4.24852653e-11! 1.33240460e-10! 2.80599693e-11! 7.49810006e-11! 0.00000000e+00! 0.00000000e+00! 1.02809994e-09! 0.00000000e+00! 1.53676794e-10! 6.90432017e-11! 3.70000003e-11! 2.36339337e-10! 1.64205281e-11! 1.01948684e-11! 2.20065563e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.77589973e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.27349300e+02! 1.15900000e+01! 2.60150000e+00! 9.47120000e+02! 2.96240000e+02! 2.91750000e-08! 1.11740000e-07! 2.17370000e-02! 2.43840000e-11! 1.37670000e-05! 5.22170000e-03! 0.00000000e+00! 9.07520004e-10! 7.21244509e-10! 6.17636844e-11! 2.06829189e-11! 3.57923101e-11! 1.17609894e-10! 2.46826986e-11! 3.87999979e-11! 0.00000000e+00! 0.00000000e+00! 1.13359999e-09! 0.00000000e+00! 1.80504001e-10! 8.10959980e-11! 3.49999994e-11! 2.13012608e-10! 1.53448348e-11! 9.77963023e-12! 2.13368646e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.74000006e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.27350000e+02! 1.16570000e+01! 2.60050000e+00! 9.46990000e+02! 2.96450000e+02! 3.02160000e-08! 1.07030000e-07! 2.09440000e-02! 2.27500000e-11! 1.41910000e-05! 5.45950000e-03! 0.00000000e+00! 9.09460007e-10! 6.97294333e-10! 5.74556860e-11! 1.70729871e-11! 2.62971832e-11! 9.54352292e-11! 1.98914513e-11! 2.22220003e-11! 0.00000000e+00! 0.00000000e+00! 1.09030007e-09! 0.00000000e+00! 1.35750605e-10! 6.09894010e-11! 3.49999994e-11! 1.79919579e-10! 1.48519565e-11! 9.58937096e-12! 2.10300128e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.66300011e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.27350700e+02! 1.17230000e+01! 2.60290000e+00! 9.47030000e+02! 2.96870000e+02! 3.03970000e-08! 1.05590000e-07! 2.08600000e-02! 2.60730000e-11! 1.44690000e-05! 5.49520000e-03! 0.00000000e+00! 8.99819996e-10! 7.82169995e-10! 7.45699960e-11! 1.41800001e-11! 2.24000003e-11! 1.02139998e-10! 1.08900007e-11! 6.51220007e-12! 6.71570022e-10! 0.00000000e+00! 9.98540028e-10! 1.35049999e-10! 1.48839899e-10! 6.68700997e-11! 3.09999977e-11! 1.89539995e-10! 1.43848891e-11! 9.40907508e-12! 2.07392315e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.09999986e-12! 2.23000004e-12! 2.45000006e-12! 0.00000000e+00! 4.88000005e-12! 6.63170005e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.27351400e+02! 1.17900000e+01! 2.60420000e+00! 9.47050000e+02! 2.96790000e+02! 3.00730000e-08! 1.07130000e-07! 2.08500000e-02! 2.64590000e-11! 1.48250000e-05! 5.57090000e-03! 0.00000000e+00! 8.74080031e-10! 7.82169995e-10! 7.45699960e-11! 1.41800001e-11! 2.24000003e-11! 1.02139998e-10! 1.08900007e-11! 2.71480009e-11! 6.71570022e-10! 0.00000000e+00! 1.07940001e-09! 1.35049999e-10! 1.37806794e-10! 6.19131968e-11! 3.09999977e-11! 1.89539995e-10! 1.49984105e-11! 9.64590473e-12! 2.11211916e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.09999986e-12! 2.23000004e-12! 2.45000006e-12! 0.00000000e+00! 4.88000005e-12! 6.84069953e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.27352100e+02! 1.18570000e+01! 2.60420000e+00! 9.47200000e+02! 2.97060000e+02! 3.08280000e-08! 1.05070000e-07! 2.05850000e-02! 2.96030000e-11! 1.49230000e-05! 5.58460000e-03! 0.00000000e+00! 8.66849981e-10! 6.87327750e-10! 5.56629708e-11! 1.55707652e-11! 2.23459220e-11! 8.62075411e-11! 1.78976417e-11! 2.22219985e-12! 0.00000000e+00! 0.00000000e+00! 1.05450004e-09! 0.00000000e+00! 1.18438495e-10! 5.32114977e-11! 3.09999977e-11! 1.66148387e-10! 1.42573444e-11! 9.35983929e-12! 2.06598263e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 5.99440012e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.27352800e+02! 1.19240000e+01! 2.60540000e+00! 9.47240000e+02! 2.97310000e+02! 3.14970000e-08! 1.02800000e-07! 1.97610000e-02! 3.11260000e-11! 1.49560000e-05! 5.37930000e-03! 0.00000000e+00! 8.68019989e-10! 6.75784928e-10! 5.35867149e-11! 1.38309459e-11! 1.77697163e-11! 7.55203886e-11! 1.55884836e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.04840003e-09! 0.00000000e+00! 9.03899941e-11! 4.06099980e-11! 2.59999990e-11! 1.50199089e-10! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.31999991e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.27353500e+02! 1.19900000e+01! 2.60570000e+00! 9.47250000e+02! 2.97440000e+02! 3.20000000e-08! 1.01830000e-07! 1.98260000e-02! 3.09660000e-11! 1.49490000e-05! 5.41620000e-03! 0.00000000e+00! 8.02719946e-10! 7.48759998e-10! 6.79800036e-11! 1.30299998e-11! 1.88400007e-11! 7.07300052e-11! 9.11999989e-12! 4.30000003e-12! 6.41609987e-10! 0.00000000e+00! 1.03240005e-09! 1.71729991e-10! 9.84767962e-11! 4.42431994e-11! 2.89999986e-11! 1.61940003e-10! 1.43191197e-11! 9.38368567e-12! 2.06982868e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.69999994e-12! 0.00000000e+00! 2.22000001e-12! 0.00000000e+00! 2.24000007e-12! 4.21109987e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.27354200e+02! 1.20560000e+01! 2.60590000e+00! 9.48150000e+02! 2.97820000e+02! 3.57070000e-08! 9.91110000e-08! 1.81070000e-02! 2.90230000e-11! 1.30100000e-05! 4.45350000e-03! 0.00000000e+00! 6.56669996e-10! 7.48759998e-10! 6.79800036e-11! 1.30299998e-11! 1.88400007e-11! 7.07300052e-11! 9.11999989e-12! 4.30000003e-12! 6.41609987e-10! 0.00000000e+00! 9.76299930e-10! 1.71729991e-10! 3.32987075e-11! 1.49602900e-11! 2.89999986e-11! 1.61940003e-10! 1.43191197e-11! 9.38368567e-12! 2.06982868e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.69999994e-12! 0.00000000e+00! 2.22000001e-12! 0.00000000e+00! 2.24000007e-12! 2.25189988e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.27354900e+02! 1.21240000e+01! 2.60470000e+00! 9.60580000e+02! 2.96470000e+02! 4.14610000e-08! 8.56270000e-08! 1.87530000e-02! 3.07690000e-11! 1.07700000e-05! 3.34100000e-03! 0.00000000e+00! 5.13619980e-10! 5.88460669e-10! 3.78794288e-11! 6.68872130e-13! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.94070003e-11! 0.00000000e+00! 0.00000000e+00! 8.47809989e-10! 0.00000000e+00! 1.94221202e-11! 8.72588026e-12! 0.00000000e+00! 2.95395340e-11! 1.47682630e-11! 9.55706434e-12! 2.09779086e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.25000001e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.27355600e+02! 1.21920000e+01! 2.60100000e+00! 9.66940000e+02! 2.95530000e+02! 3.22470000e-08! 8.47690000e-08! 2.23430000e-02! 2.81890000e-11! 1.03440000e-05! 3.13490000e-03! 0.00000000e+00! 4.27980013e-10! 5.84097770e-10! 3.70946572e-11! 1.12666241e-14! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.45869997e-10! 0.00000000e+00! 0.00000000e+00! 7.78999976e-10! 0.00000000e+00! 4.84407583e-11! 2.17632405e-11! 2.39999999e-11! 2.35111219e-11! 1.85281200e-11! 1.10084372e-11! 2.33186786e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.57960016e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.27357600e+02! 1.23890000e+01! 2.58810000e+00! 9.67910000e+02! 2.95430000e+02! 2.90230000e-08! 9.10830000e-08! 2.32690000e-02! 4.66640000e-11! 1.29690000e-05! 4.53480000e-03! 0.00000000e+00! 4.09970002e-10! 6.16204310e-10! 4.28697598e-11! 4.85056873e-12! 0.00000000e+00! 2.03567441e-11! 3.66936646e-12! 1.57429986e-10! 0.00000000e+00! 0.00000000e+00! 8.05630007e-10! 0.00000000e+00! 4.33292395e-11! 1.94667598e-11! 2.50000003e-11! 6.78740467e-11! 1.88718069e-11! 1.11411063e-11! 2.35326481e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.14629997e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.28609700e+02! 1.33710000e+01! 7.04990000e-01! 6.96690000e+02! 2.84280000e+02! 3.24020000e-08! 8.43460000e-08! 1.05870000e-02! 5.34820000e-11! 5.39960000e-05! 1.00510000e-02! 0.00000000e+00! 0.00000000e+00! 5.81946824e-10! 3.67077618e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.99999998e-13! 0.00000000e+00! 0.00000000e+00! 1.07150000e-09! 0.00000000e+00! 1.70774991e-11! 7.67249979e-12! 9.99999909e-12! 2.05390739e-11! 1.42061423e-11! 9.34007472e-12! 2.06279490e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.28610400e+02! 1.33630000e+01! 6.25820000e-01! 6.96570000e+02! 2.84310000e+02! 3.31620000e-08! 8.33710000e-08! 1.04110000e-02! 4.83000000e-11! 5.37310000e-05! 1.00090000e-02! 0.00000000e+00! 0.00000000e+00! 5.76989012e-10! 3.58159787e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.07959995e-11! 0.00000000e+00! 0.00000000e+00! 9.77409931e-10! 0.00000000e+00! 3.94286708e-13! 1.77143307e-13! 0.00000000e+00! 1.36886058e-11! 1.45122508e-11! 9.45823888e-12! 2.08185240e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.55709984e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.28613900e+02! 1.33320000e+01! 2.29430000e-01! 6.96590000e+02! 2.85110000e+02! 3.58910000e-08! 7.82610000e-08! 8.78680000e-03! 4.50250000e-11! 5.17380000e-05! 9.91380000e-03! 0.00000000e+00! 0.00000000e+00! 5.51004797e-10! 3.11421167e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 8.95820029e-10! 0.00000000e+00! 5.91233356e-12! 2.65626583e-12! 0.00000000e+00! 0.00000000e+00! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.24309998e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.28614600e+02! 1.33260000e+01! 1.48520000e-01! 6.96640000e+02! 2.84960000e+02! 3.51880000e-08! 7.93490000e-08! 9.18360000e-03! 2.72330000e-11! 5.19450000e-05! 1.00620000e-02! 0.00000000e+00! 0.00000000e+00! 5.56537205e-10! 3.21372581e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.02830000e-09! 0.00000000e+00! 4.53426576e-12! 2.03713392e-12! 0.00000000e+00! 0.00000000e+00! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.28615300e+02! 1.33190000e+01! 6.82490000e-02! 6.96690000e+02! 2.84990000e+02! 3.51750000e-08! 7.89560000e-08! 9.08870000e-03! 4.78980000e-11! 5.00080000e-05! 9.66390000e-03! 0.00000000e+00! 0.00000000e+00! 5.54538859e-10! 3.17777991e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 8.05879929e-12! 0.00000000e+00! 0.00000000e+00! 8.95330032e-10! 0.00000000e+00! 7.90119012e-12! 3.54980997e-12! 2.09999986e-11! 0.00000000e+00! 1.44308723e-11! 9.42682477e-12! 2.07678579e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.59410003e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.28616000e+02! 1.33100000e+01!-1.13650000e-02! 6.96770000e+02! 2.85240000e+02! 3.62580000e-08! 7.76420000e-08! 8.52120000e-03! 2.18610000e-11! 4.78560000e-05! 9.30300000e-03! 0.00000000e+00! 0.00000000e+00! 5.47857260e-10! 3.05759480e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.83999993e-10! 0.00000000e+00! 6.89999967e-12! 3.09999986e-12! 0.00000000e+00! 0.00000000e+00! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 5.00000007e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.28616700e+02! 1.33010000e+01!-9.07240000e-02! 6.96660000e+02! 2.85230000e+02! 3.64830000e-08! 7.79120000e-08! 8.91730000e-03! 1.93920000e-11! 4.93730000e-05! 9.71900000e-03! 0.00000000e+00! 0.00000000e+00! 5.49230161e-10! 3.08229033e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.05430009e-09! 0.00000000e+00! 1.92434089e-11! 8.64558945e-12! 0.00000000e+00! 0.00000000e+00! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.44440015e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.28617400e+02! 1.32900000e+01!-1.70100000e-01! 6.96690000e+02! 2.84740000e+02! 3.57230000e-08! 7.94850000e-08! 1.01050000e-02! 3.07670000e-11! 4.92620000e-05! 9.71830000e-03! 0.00000000e+00! 0.00000000e+00! 5.57228819e-10! 3.22616517e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.46329997e-11! 0.00000000e+00! 0.00000000e+00! 1.01650000e-09! 0.00000000e+00! 3.36830390e-11! 1.51329609e-11! 3.09999977e-11! 0.00000000e+00! 1.46263279e-11! 9.50227484e-12! 2.08895436e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 7.63270003e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.28618100e+02! 1.32440000e+01!-2.13840000e-01! 6.96220000e+02! 2.84650000e+02! 3.56200000e-08! 8.16030000e-08! 1.03950000e-02! 3.14560000e-11! 5.11080000e-05! 9.69580000e-03! 0.00000000e+00! 0.00000000e+00! 5.67998759e-10! 3.41988798e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.23080008e-12! 0.00000000e+00! 0.00000000e+00! 1.02080000e-09! 0.00000000e+00! 6.76731284e-12! 3.04038695e-12! 0.00000000e+00! 1.26642598e-12! 1.42278689e-11! 9.34846211e-12! 2.06414764e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.61920000e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.28620800e+02! 1.33340000e+01!-3.56440000e-02! 6.96740000e+02! 2.85340000e+02! 3.64850000e-08! 7.64110000e-08! 8.43150000e-03! 9.33930000e-12! 4.35930000e-05! 8.97370000e-03! 0.00000000e+00! 0.00000000e+00! 5.41597600e-10! 2.94500153e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 8.64489980e-10! 0.00000000e+00! 7.58999981e-12! 3.40999993e-12! 0.00000000e+00! 0.00000000e+00! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.83670001e-13! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.28622200e+02! 1.33580000e+01!-1.78750000e-01! 6.96550000e+02! 2.84580000e+02! 3.62550000e-08! 8.09460000e-08! 1.15270000e-02! 3.19680000e-13! 4.60800000e-05! 9.68600000e-03! 0.00000000e+00! 0.00000000e+00! 5.64657932e-10! 3.35979543e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.72219971e-10! 0.00000000e+00! 1.63205699e-11! 7.33242980e-12! 3.40000007e-11! 0.00000000e+00! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.92859999e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.28622900e+02! 1.33520000e+01!-2.58460000e-01! 6.96740000e+02! 2.84620000e+02! 3.58510000e-08! 8.23470000e-08! 1.11860000e-02! 1.42310000e-11! 4.57510000e-05! 9.70510000e-03! 0.00000000e+00! 0.00000000e+00! 5.71781955e-10! 3.48793737e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.49630041e-10! 0.00000000e+00! 5.36074787e-12! 2.40845191e-12! 0.00000000e+00! 6.49385927e-12! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.98080004e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.28623600e+02! 1.33460000e+01!-3.37200000e-01! 6.96710000e+02! 2.84700000e+02! 3.45530000e-08! 8.10580000e-08! 1.06700000e-02! 2.40930000e-11! 4.55510000e-05! 9.82900000e-03! 0.00000000e+00! 0.00000000e+00! 5.65227476e-10! 3.37003932e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.68059966e-10! 0.00000000e+00! 7.70246974e-12! 3.46053004e-12! 1.29999995e-11! 0.00000000e+00! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.35509997e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.28625700e+02! 1.33270000e+01!-5.73120000e-01! 6.96470000e+02! 2.85200000e+02! 3.47630000e-08! 7.99080000e-08! 9.52420000e-03! 7.63110000e-12! 4.08010000e-05! 8.95320000e-03! 0.00000000e+00! 0.00000000e+00! 5.59379765e-10! 3.26485436e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 8.26000032e-12! 0.00000000e+00! 0.00000000e+00! 9.73700010e-10! 0.00000000e+00! 4.70579999e-12! 2.11420009e-12! 0.00000000e+00! 0.00000000e+00! 1.44368536e-11! 9.42913369e-12! 2.07715841e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.40600006e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.28626400e+02! 1.33210000e+01!-6.53720000e-01! 6.96490000e+02! 2.85370000e+02! 3.47080000e-08! 8.09430000e-08! 9.75870000e-03! 5.58200000e-12! 3.78940000e-05! 8.16110000e-03! 0.00000000e+00! 0.00000000e+00! 5.64642721e-10! 3.35952065e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.02399998e-11! 0.00000000e+00! 0.00000000e+00! 8.81520024e-10! 0.00000000e+00! 6.83099931e-12! 3.06899970e-12! 0.00000000e+00! 0.00000000e+00! 1.44957206e-11! 9.45185770e-12! 2.08082319e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 6.58000000e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.28627100e+02! 1.33150000e+01!-7.34260000e-01! 6.96580000e+02! 2.85420000e+02! 3.43120000e-08! 8.21240000e-08! 1.02020000e-02! 1.64840000e-11! 4.16960000e-05! 9.44010000e-03! 0.00000000e+00! 0.00000000e+00! 5.40050005e-10! 3.53900000e-11! 9.22000063e-12! 4.30000003e-12! 7.99000015e-12! 4.84999974e-12! 0.00000000e+00! 1.60169999e-09! 0.00000000e+00! 9.25119981e-10! 6.64199945e-11! 6.54119944e-12! 2.93879981e-12! 9.99999909e-12! 7.31099972e-11! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.48000014e-12! 0.00000000e+00! 4.11000010e-12! 0.00000000e+00! 0.00000000e+00! 1.00200005e-11! 2.95000005e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.28627800e+02! 1.33090000e+01!-8.14810000e-01! 6.96580000e+02! 2.85350000e+02! 3.41410000e-08! 8.29850000e-08! 1.04400000e-02! 1.85520000e-11! 3.88710000e-05! 8.91060000e-03! 0.00000000e+00! 0.00000000e+00! 5.40050005e-10! 3.53900000e-11! 9.22000063e-12! 4.30000003e-12! 7.99000015e-12! 4.84999974e-12! 2.06200005e-11! 1.60169999e-09! 0.00000000e+00! 1.08240006e-09! 6.64199945e-11! 3.96059964e-12! 1.77939987e-12! 0.00000000e+00! 7.31099972e-11! 1.48043262e-11! 9.57098463e-12! 2.10003612e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.48000014e-12! 0.00000000e+00! 4.11000010e-12! 0.00000000e+00! 0.00000000e+00! 1.33199996e-11! 2.95000005e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.28628500e+02! 1.33020000e+01!-8.95140000e-01! 6.96680000e+02! 2.85370000e+02! 3.47480000e-08! 8.22940000e-08! 1.04790000e-02! 1.82130000e-11! 3.12320000e-05! 6.78500000e-03! 0.00000000e+00! 0.00000000e+00! 5.71512504e-10! 3.48309021e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.53270001e-11! 0.00000000e+00! 0.00000000e+00! 9.94489935e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 6.12147529e-12! 1.46469607e-11! 9.51023895e-12! 2.09023892e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.28629200e+02! 1.32960000e+01!-9.75320000e-01! 6.96720000e+02! 2.85620000e+02! 3.42750000e-08! 8.37230000e-08! 1.06890000e-02! 2.31480000e-11! 2.73760000e-05! 5.88920000e-03! 0.00000000e+00! 0.00000000e+00! 5.78778914e-10! 3.61379364e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.04409992e-09! 0.00000000e+00! 8.44214976e-12! 3.79284971e-12! 1.59999999e-11! 1.61618011e-11! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.40390000e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.28629900e+02! 1.32900000e+01!-1.05530000e+00! 6.96670000e+02! 2.85520000e+02! 3.44650000e-08! 8.28290000e-08! 1.05850000e-02! 3.13840000e-11! 2.48780000e-05! 5.42740000e-03! 0.00000000e+00! 0.00000000e+00! 5.74232994e-10! 3.53202398e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.57959999e-11! 0.00000000e+00! 0.00000000e+00! 9.94489935e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.20000000e-11! 9.88044889e-12! 1.46609062e-11! 9.51562093e-12! 2.09110698e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 5.22450009e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.28657600e+02! 1.33630000e+01! 8.03290000e-01! 4.85200000e+02! 2.65640000e+02! 4.48480000e-08! 9.35830000e-08! 4.25960000e-03! 4.72700000e-11! 2.93380000e-05! 9.81300000e-03! 0.00000000e+00! 0.00000000e+00! 6.28916752e-10! 4.51563821e-11! 6.76666882e-12! 0.00000000e+00! 3.21267422e-11! 6.21249146e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 8.40449987e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.17999993e-10! 8.54393431e-11! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 7.30000001e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.28658300e+02! 1.33710000e+01! 7.09860000e-01! 4.93790000e+02! 2.65870000e+02! 4.33220000e-08! 9.48600000e-08! 5.00230000e-03! 4.93460000e-11! 3.05480000e-05! 1.05710000e-02! 0.00000000e+00! 0.00000000e+00! 6.35410224e-10! 4.63243957e-11! 7.74541195e-12! 1.76307341e-12! 3.81388636e-11! 7.51151918e-12! 3.30610019e-11! 0.00000000e+00! 0.00000000e+00! 8.35859992e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.44117076e-11! 1.51742091e-11! 9.71376625e-12! 2.12306370e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 5.16329991e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.28659000e+02! 1.33650000e+01! 6.13660000e-01! 4.96140000e+02! 2.65640000e+02! 3.97650000e-08! 9.77200000e-08! 5.70330000e-03! 5.05100000e-11! 3.02990000e-05! 1.06170000e-02! 0.00000000e+00! 0.00000000e+00! 6.49953258e-10! 4.89402928e-11! 9.93743022e-12! 7.52869034e-12! 5.16037421e-11! 1.04208543e-11! 4.47449994e-11! 0.00000000e+00! 0.00000000e+00! 8.05200018e-10! 0.00000000e+00! 1.10538002e-11! 4.96620019e-12! 2.08999998e-10! 1.14506411e-10! 1.55215840e-11! 9.84785951e-12! 2.14469033e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.63330009e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.28659700e+02! 1.33570000e+01! 5.15110000e-01! 4.91310000e+02! 2.65460000e+02! 4.11950000e-08! 9.63710000e-08! 5.08890000e-03! 3.96800000e-11! 3.02550000e-05! 1.05700000e-02! 0.00000000e+00! 0.00000000e+00! 6.43093634e-10! 4.77064291e-11! 8.90350380e-12! 4.80917389e-12! 4.52526523e-11! 9.04858393e-12! 3.87760006e-12! 0.00000000e+00! 0.00000000e+00! 7.09689973e-10! 0.00000000e+00! 5.87203767e-12! 2.63816182e-12! 0.00000000e+00! 1.05028167e-10! 1.43065611e-11! 9.37883885e-12! 2.06904667e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.28662500e+02! 1.33260000e+01! 1.39530000e-01! 4.86970000e+02! 2.65730000e+02! 4.34470000e-08! 9.30270000e-08! 4.45550000e-03! 6.41200000e-11! 2.88020000e-05! 1.03930000e-02! 0.00000000e+00! 0.00000000e+00! 6.26089458e-10! 4.46478375e-11! 6.34052793e-12! 0.00000000e+00! 2.95090966e-11! 5.64690048e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 8.36469949e-10! 0.00000000e+00! 4.33713265e-12! 1.94856696e-12! 2.54999993e-10! 8.15328222e-11! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.28663200e+02! 1.33180000e+01! 4.76550000e-02! 4.87050000e+02! 2.65950000e+02! 4.48920000e-08! 9.13940000e-08! 4.28550000e-03! 5.70510000e-11! 2.82310000e-05! 1.03080000e-02! 0.00000000e+00! 0.00000000e+00! 6.17785711e-10! 4.31542163e-11! 5.08893145e-12! 0.00000000e+00! 2.18209322e-11! 3.98573145e-12! 1.45490000e-11! 0.00000000e+00! 0.00000000e+00! 8.56390014e-10! 0.00000000e+00! 1.18921505e-11! 5.34284986e-12! 2.38000009e-10! 7.00591668e-11! 1.46238299e-11! 9.50131033e-12! 2.08879893e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.68630037e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.28663900e+02! 1.33110000e+01!-4.44560000e-02! 4.87060000e+02! 2.65890000e+02! 4.53040000e-08! 9.10380000e-08! 4.30000000e-03! 4.55050000e-11! 2.67960000e-05! 9.76140000e-03! 0.00000000e+00! 0.00000000e+00! 6.31450003e-10! 3.31599991e-11! 1.41999997e-12! 4.11000010e-12! 8.60000005e-12! 4.74999987e-12! 2.90000003e-11! 2.48559999e-08! 0.00000000e+00! 9.17080023e-10! 3.38640005e-10! 0.00000000e+00! 0.00000000e+00! 2.38000009e-10! 8.86399981e-11! 1.50534724e-11! 9.66715943e-12! 2.11554697e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.95999986e-12! 2.86999981e-12! 4.67000006e-12! 0.00000000e+00! 0.00000000e+00! 8.45950046e-12! 4.92000017e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.28664600e+02! 1.33040000e+01!-1.36070000e-01! 4.86990000e+02! 2.66020000e+02! 4.56790000e-08! 9.07510000e-08! 4.25990000e-03! 3.72300000e-11! 2.62160000e-05! 9.67470000e-03! 0.00000000e+00! 0.00000000e+00! 6.31450003e-10! 3.31599991e-11! 1.41999997e-12! 4.11000010e-12! 8.60000005e-12! 4.74999987e-12! 3.19000000e-11! 2.48559999e-08! 0.00000000e+00! 9.33299993e-10! 3.38640005e-10! 4.30559971e-12! 1.93439991e-12! 0.00000000e+00! 8.86399981e-11! 1.51396916e-11! 9.70044097e-12! 2.12091490e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.95999986e-12! 2.86999981e-12! 4.67000006e-12! 0.00000000e+00! 0.00000000e+00! 3.18600007e-11! 4.92000017e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.28665300e+02! 1.32960000e+01!-2.27230000e-01! 4.86960000e+02! 2.66060000e+02! 4.62650000e-08! 9.02140000e-08! 4.31500000e-03! 3.07440000e-11! 2.53460000e-05! 9.32770000e-03! 0.00000000e+00! 0.00000000e+00! 6.11785456e-10! 4.20749269e-11! 4.18453206e-12! 0.00000000e+00! 1.62654907e-11! 2.78537631e-12! 4.09199966e-11! 0.00000000e+00! 0.00000000e+00! 8.27700020e-10! 0.00000000e+00! 1.32617988e-11! 5.95819965e-12! 0.00000000e+00! 6.17683474e-11! 1.54078642e-11! 9.80396059e-12! 2.13761040e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 8.32000007e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.28666000e+02! 1.32890000e+01!-3.19040000e-01! 4.87160000e+02! 2.66180000e+02! 4.58540000e-08! 8.96500000e-08! 4.37780000e-03! 2.79670000e-11! 2.58950000e-05! 9.74150000e-03! 0.00000000e+00! 0.00000000e+00! 6.08917528e-10! 4.15590652e-11! 3.75226022e-12! 0.00000000e+00! 1.36101798e-11! 2.21164753e-12! 5.14199967e-11! 0.00000000e+00! 0.00000000e+00! 9.28719990e-10! 0.00000000e+00! 6.99659991e-12! 3.14340004e-12! 0.00000000e+00! 5.78056145e-11! 1.57200381e-11! 9.92446576e-12! 2.15704538e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.28666700e+02! 1.32810000e+01!-4.11100000e-01! 4.87100000e+02! 2.66000000e+02! 4.57810000e-08! 9.09740000e-08! 4.28590000e-03! 3.03100000e-11! 2.59210000e-05! 9.97350000e-03! 0.00000000e+00! 0.00000000e+00! 6.35489994e-10! 3.54700019e-11! 1.79000001e-12! 2.64000020e-12! 5.97999992e-12! 5.23000003e-12! 8.19999992e-13! 7.29469984e-10! 0.00000000e+00! 9.00999997e-10! 2.64500002e-11! 9.88079930e-12! 4.43919988e-12! 0.00000000e+00! 9.33899971e-11! 1.42156564e-11! 9.34374713e-12! 2.06338731e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.85999999e-12! 3.25999991e-12! 3.03999989e-12! 0.00000000e+00! 0.00000000e+00! 9.20000014e-12! 1.38999999e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.28668800e+02! 1.32580000e+01!-6.85310000e-01! 4.86970000e+02! 2.66110000e+02! 4.42610000e-08! 8.70920000e-08! 4.52750000e-03! 1.95920000e-11! 2.08240000e-05! 7.95790000e-03! 0.00000000e+00! 0.00000000e+00! 6.12809969e-10! 3.67399999e-11! 3.39000009e-12! 2.72000001e-12! 4.90999992e-12! 4.11000010e-12! 1.16120004e-11! 2.34579994e-10! 0.00000000e+00! 9.45429957e-10! 1.91000011e-11! 1.10261991e-11! 4.95379952e-12! 0.00000000e+00! 8.37900027e-11! 1.45365118e-11! 9.46760378e-12! 2.08336282e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.04000011e-12! 0.00000000e+00! 5.40999971e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.79999993e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.28669400e+02! 1.32510000e+01!-7.77550000e-01! 4.86930000e+02! 2.65930000e+02! 4.43280000e-08! 8.89010000e-08! 4.55170000e-03! 2.33800000e-11! 1.99180000e-05! 7.70360000e-03! 0.00000000e+00! 0.00000000e+00! 6.12809969e-10! 3.67399999e-11! 3.39000009e-12! 2.72000001e-12! 4.90999992e-12! 4.11000010e-12! 2.42689983e-11! 2.34579994e-10! 0.00000000e+00! 9.47560030e-10! 1.91000011e-11! 1.24199999e-11! 5.58000000e-12! 0.00000000e+00! 8.37900027e-11! 1.49128158e-11! 9.61286346e-12! 2.10679009e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.04000011e-12! 0.00000000e+00! 5.40999971e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.79999993e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.28670100e+02! 1.32420000e+01!-8.69730000e-01! 4.87150000e+02! 2.65970000e+02! 4.44080000e-08! 8.83880000e-08! 4.56950000e-03! 3.07260000e-11! 1.77510000e-05! 6.59750000e-03! 0.00000000e+00! 0.00000000e+00! 6.02500327e-10! 4.04047767e-11! 2.78501289e-12! 0.00000000e+00! 7.66868426e-12! 9.27878000e-13! 3.74999988e-12! 0.00000000e+00! 0.00000000e+00! 8.56499982e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.89386517e-11! 1.43027673e-11! 9.37737388e-12! 2.06881040e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.29720002e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.28670800e+02! 1.32340000e+01!-9.62360000e-01! 4.87020000e+02! 2.65930000e+02! 4.38140000e-08! 8.98870000e-08! 4.45210000e-03! 3.51740000e-11! 1.76020000e-05! 6.66350000e-03! 0.00000000e+00! 0.00000000e+00! 6.10122675e-10! 4.17758363e-11! 3.93390615e-12! 0.00000000e+00! 1.47259756e-11! 2.45273571e-12! 2.99420003e-11! 0.00000000e+00! 0.00000000e+00! 9.36020039e-10! 0.00000000e+00! 6.43556042e-12! 2.89133886e-12! 0.00000000e+00! 5.94708033e-11! 1.50814777e-11! 9.67797110e-12! 2.11729072e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.23080008e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.28671500e+02! 1.32260000e+01!-1.05530000e+00! 4.86930000e+02! 2.65850000e+02! 4.34950000e-08! 9.10910000e-08! 4.53620000e-03! 4.30700000e-11! 1.91580000e-05! 7.32850000e-03! 0.00000000e+00! 0.00000000e+00! 6.16244999e-10! 4.28770734e-11! 4.85670011e-12! 0.00000000e+00! 2.03944084e-11! 3.67750448e-12! 4.22450009e-12! 0.00000000e+00! 0.00000000e+00! 8.54900040e-10! 0.00000000e+00! 4.82999968e-12! 2.16999986e-12! 0.00000000e+00! 6.79302517e-11! 1.43168741e-11! 9.38281917e-12! 2.06968886e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.51219991e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.28672200e+02! 1.31970000e+01!-1.13880000e+00! 4.86920000e+02! 2.66060000e+02! 4.39280000e-08! 9.17350000e-08! 4.40110000e-03! 2.91330000e-11! 2.47900000e-05! 9.60470000e-03! 0.00000000e+00! 0.00000000e+00! 6.19519713e-10! 4.34661092e-11! 5.35028749e-12! 0.00000000e+00! 2.34263615e-11! 4.33261326e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 8.85489959e-10! 0.00000000e+00! 3.97764287e-12! 1.78705694e-12! 0.00000000e+00! 7.24550767e-11! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 7.23530003e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.28672900e+02! 1.31220000e+01!-1.15960000e+00! 4.86980000e+02! 2.66040000e+02! 4.42070000e-08! 9.24450000e-08! 4.34590000e-03! 9.44000000e-11! 2.53580000e-05! 9.75190000e-03! 0.00000000e+00! 0.00000000e+00! 6.23129992e-10! 4.41155133e-11! 5.89445983e-12! 0.00000000e+00! 2.67690401e-11! 5.05486104e-12! 2.46000009e-11! 0.00000000e+00! 0.00000000e+00! 8.63200011e-10! 0.00000000e+00! 7.36022961e-12! 3.30676979e-12! 0.00000000e+00! 7.74436210e-11! 1.49226569e-11! 9.61666163e-12! 2.10740279e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.28682600e+02! 1.31840000e+01!-2.08580000e-01! 6.98400000e+02! 2.85860000e+02! 4.09180000e-08! 7.85890000e-08! 9.52740000e-03! 6.13210000e-11! 1.17970000e-05! 7.37150000e-03! 0.00000000e+00! 0.00000000e+00! 5.52672685e-10! 3.14421232e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 8.33330016e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.29999994e-11! 0.00000000e+00! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.39410002e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.28683300e+02! 1.31920000e+01!-1.43360000e-01! 6.98310000e+02! 2.85800000e+02! 4.01880000e-08! 7.84940000e-08! 9.64250000e-03! 5.51970000e-11! 1.06130000e-05! 6.57820000e-03! 0.00000000e+00! 0.00000000e+00! 5.52189627e-10! 3.13552309e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 8.81219986e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.52650011e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.28684000e+02! 1.32010000e+01!-7.79240000e-02! 6.98300000e+02! 2.85690000e+02! 4.04970000e-08! 7.87490000e-08! 9.88890000e-03! 5.23660000e-11! 1.02850000e-05! 6.58190000e-03! 0.00000000e+00! 0.00000000e+00! 5.75950010e-10! 4.34800008e-11! 3.47000011e-12! 7.04000009e-12! 4.88000005e-12! 1.91999997e-12! 0.00000000e+00! 2.49120002e-10! 0.00000000e+00! 9.55139967e-10! 4.50699998e-11! 5.79599953e-13! 2.60399992e-13! 3.70000003e-11! 7.58700047e-11! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.91999996e-12! 0.00000000e+00! 2.45000006e-12! 0.00000000e+00! 0.00000000e+00! 8.35999932e-12! 1.19000003e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.28684700e+02! 1.32090000e+01!-1.28910000e-02! 6.98540000e+02! 2.85700000e+02! 3.98130000e-08! 7.97370000e-08! 1.00570000e-02! 4.84970000e-11! 1.05530000e-05! 7.08480000e-03! 0.00000000e+00! 0.00000000e+00! 5.75950010e-10! 4.34800008e-11! 3.47000011e-12! 7.04000009e-12! 4.88000005e-12! 1.91999997e-12! 7.09999984e-12! 2.49120002e-10! 0.00000000e+00! 8.18520030e-10! 4.50699998e-11! 3.00839995e-12! 1.35160004e-12! 4.29999994e-11! 7.58700047e-11! 1.44023656e-11! 9.41581969e-12! 2.07501117e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.91999996e-12! 0.00000000e+00! 2.45000006e-12! 0.00000000e+00! 0.00000000e+00! 1.45200007e-11! 1.19000003e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.28685400e+02! 1.32180000e+01! 5.25800000e-02! 6.98310000e+02! 2.85670000e+02! 4.03220000e-08! 7.93060000e-08! 1.00700000e-02! 5.09030000e-11! 1.06100000e-05! 7.27610000e-03! 0.00000000e+00! 0.00000000e+00! 5.56318602e-10! 3.20979285e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 8.60780003e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.28687500e+02! 1.32430000e+01! 2.50570000e-01! 6.98420000e+02! 2.85210000e+02! 4.06760000e-08! 7.83450000e-08! 1.03220000e-02! 4.20800000e-11! 1.00080000e-05! 7.34690000e-03! 0.00000000e+00! 0.00000000e+00! 5.88440019e-10! 3.88600020e-11! 2.67000007e-12! 5.28999978e-12! 7.92999954e-12! 4.13000016e-12! 0.00000000e+00! 2.89859997e-10! 0.00000000e+00! 9.03960018e-10! 1.70749997e-10! 1.20411894e-12! 5.40980997e-13! 0.00000000e+00! 7.80800008e-11! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.65999982e-12! 0.00000000e+00! 3.99999998e-12! 0.00000000e+00! 0.00000000e+00! 8.58819960e-12! 0.00000000e+00! 2.77999997e-12! 6.74999986e-12! 6.74999986e-12! 0.00000000e+00! 0.00000000e+00!
+ 2.28688200e+02! 1.32520000e+01! 3.17620000e-01! 6.98420000e+02! 2.85030000e+02! 3.97840000e-08! 7.84250000e-08! 1.03270000e-02! 5.18020000e-11! 9.71450000e-06! 7.31400000e-03! 0.00000000e+00! 0.00000000e+00! 5.51838741e-10! 3.12921182e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.02440012e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.29999995e-11! 0.00000000e+00! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.28688900e+02! 1.32600000e+01! 3.84400000e-01! 6.98220000e+02! 2.84840000e+02! 3.77650000e-08! 7.89560000e-08! 1.02130000e-02! 4.01970000e-11! 9.40580000e-06! 7.26180000e-03! 0.00000000e+00! 0.00000000e+00! 5.45929968e-10! 2.92600007e-11! 1.83999994e-12! 3.22000000e-12! 6.80000023e-12! 3.77999975e-12! 0.00000000e+00! 1.20849997e-10! 0.00000000e+00! 9.05039987e-10! 1.30910005e-10! 1.04714397e-11! 4.70455966e-12! 0.00000000e+00! 6.03799996e-11! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.27000015e-12! 0.00000000e+00! 2.69000013e-12! 0.00000000e+00! 0.00000000e+00! 9.64710083e-12! 0.00000000e+00! 2.91999996e-12! 5.75500021e-12! 5.75500021e-12! 0.00000000e+00! 0.00000000e+00!
+ 2.28689600e+02! 1.32690000e+01! 4.50580000e-01! 6.98210000e+02! 2.84470000e+02! 3.31130000e-08! 8.08070000e-08! 1.04300000e-02! 4.03460000e-11! 8.92370000e-06! 7.10350000e-03! 0.00000000e+00! 0.00000000e+00! 5.45929968e-10! 2.92600007e-11! 1.83999994e-12! 3.22000000e-12! 6.80000023e-12! 3.77999975e-12! 1.78779994e-11! 1.20849997e-10! 0.00000000e+00! 9.37879996e-10! 1.30910005e-10! 4.80184772e-12! 2.15735199e-12! 1.09999995e-11! 6.03799996e-11! 1.47228046e-11! 9.53951675e-12! 2.09496084e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.27000015e-12! 0.00000000e+00! 2.69000013e-12! 0.00000000e+00! 0.00000000e+00! 1.26530002e-11! 0.00000000e+00! 2.91999996e-12! 5.75500021e-12! 5.75500021e-12! 0.00000000e+00! 0.00000000e+00!
+ 2.28690300e+02! 1.32780000e+01! 5.17820000e-01! 6.98230000e+02! 2.84590000e+02! 3.43190000e-08! 8.04160000e-08! 1.03090000e-02! 4.76440000e-11! 8.52860000e-06! 6.94900000e-03! 0.00000000e+00! 0.00000000e+00! 5.61962865e-10! 3.31131893e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.15960030e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.09999995e-11! 0.00000000e+00! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.28691000e+02! 1.32860000e+01! 5.84330000e-01! 6.98280000e+02! 2.84620000e+02! 3.57180000e-08! 7.93300000e-08! 1.00890000e-02! 4.76570000e-11! 8.25130000e-06! 6.98910000e-03! 0.00000000e+00! 0.00000000e+00! 5.56440616e-10! 3.21198762e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.45159950e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.28691700e+02! 1.32940000e+01! 6.50500000e-01! 6.98290000e+02! 2.84580000e+02! 3.56820000e-08! 7.91390000e-08! 1.01640000e-02! 4.39360000e-11! 7.90280000e-06! 6.84830000e-03! 0.00000000e+00! 0.00000000e+00! 5.55469393e-10! 3.19451791e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.34590072e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.70000004e-11! 0.00000000e+00! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.10389996e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.28693100e+02! 1.33110000e+01! 7.83520000e-01! 6.98320000e+02! 2.84200000e+02! 3.38260000e-08! 8.17820000e-08! 1.08330000e-02! 5.21030000e-11! 7.32080000e-06! 6.72980000e-03! 0.00000000e+00! 0.00000000e+00! 5.68908975e-10! 3.43625996e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.43690015e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.52410159e-12! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.28693800e+02! 1.33200000e+01! 8.50830000e-01! 6.98310000e+02! 2.84470000e+02! 3.41920000e-08! 8.13120000e-08! 1.03580000e-02! 5.28210000e-11! 6.93110000e-06! 6.35750000e-03! 0.00000000e+00! 0.00000000e+00! 5.66519054e-10! 3.39327177e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.03549957e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.59999999e-11! 0.00000000e+00! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.42860007e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.28694400e+02! 1.33280000e+01! 9.17610000e-01! 6.98090000e+02! 2.84320000e+02! 3.36810000e-08! 8.13670000e-08! 1.03830000e-02! 4.55340000e-11! 6.72140000e-06! 6.39750000e-03! 0.00000000e+00! 0.00000000e+00! 5.66798719e-10! 3.39830213e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 8.90249985e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 7.75000029e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.28695100e+02! 1.33360000e+01! 9.84730000e-01! 6.98240000e+02! 2.84660000e+02! 3.74260000e-08! 7.97100000e-08! 1.03630000e-02! 4.97380000e-11! 6.46280000e-06! 6.33370000e-03! 0.00000000e+00! 0.00000000e+00! 5.58372903e-10! 3.24674454e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.00500008e-10! 0.00000000e+00! 5.17499997e-13! 2.32500000e-13! 2.50000003e-11! 0.00000000e+00! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.62500004e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.28695800e+02! 1.33450000e+01! 1.05120000e+00! 6.98250000e+02! 2.85150000e+02! 3.99560000e-08! 7.78670000e-08! 1.01130000e-02! 3.84150000e-11! 6.24040000e-06! 6.35990000e-03! 0.00000000e+00! 0.00000000e+00! 5.49001344e-10! 3.07817452e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 8.63999983e-10! 0.00000000e+00! 2.20799993e-11! 9.91999972e-12! 3.29999986e-11! 0.00000000e+00! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.99999999e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.28696500e+02! 1.33530000e+01! 1.11800000e+00! 6.98230000e+02! 2.85040000e+02! 4.03450000e-08! 7.76080000e-08! 1.02150000e-02! 4.49830000e-11! 6.02050000e-06! 6.35190000e-03! 0.00000000e+00! 0.00000000e+00! 5.47684342e-10! 3.05448514e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.29999986e-11! 0.00000000e+00! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.28697200e+02! 1.33600000e+01! 1.18570000e+00! 6.95820000e+02! 2.85050000e+02! 4.04880000e-08! 7.81000000e-08! 1.00050000e-02! 9.00450000e-11! 5.64890000e-06! 6.30580000e-03! 0.00000000e+00! 0.00000000e+00! 5.50186174e-10! 3.09948560e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 8.53249971e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.69999995e-11! 0.00000000e+00! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.91669986e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.28699300e+02! 1.34670000e+01! 1.04550000e+00! 7.18610000e+02! 2.86350000e+02! 3.25790000e-08! 8.09260000e-08! 9.76160000e-03! 1.19990000e-10! 5.05990000e-06! 5.94560000e-03! 0.00000000e+00! 0.00000000e+00! 5.64556291e-10! 3.35796599e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.02190001e-09! 0.00000000e+00! 8.51459962e-12! 3.82540007e-12! 0.00000000e+00! 0.00000000e+00! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.04600001e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.28700000e+02! 1.34680000e+01! 9.67370000e-01! 7.05060000e+02! 2.85950000e+02! 3.72020000e-08! 7.86770000e-08! 9.39480000e-03! 9.55980000e-11! 5.00580000e-06! 5.88710000e-03! 0.00000000e+00! 0.00000000e+00! 5.53120161e-10! 3.15226109e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.03999990e-12! 0.00000000e+00! 0.00000000e+00! 8.26499980e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.09999977e-11! 0.00000000e+00! 1.42519269e-11! 9.35774895e-12! 2.06564540e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.28700700e+02! 1.34640000e+01! 8.89330000e-01! 7.00980000e+02! 2.85880000e+02! 3.98760000e-08! 7.87240000e-08! 9.79500000e-03! 8.93640000e-11! 4.72190000e-06! 5.36720000e-03! 0.00000000e+00! 0.00000000e+00! 5.53359136e-10! 3.15656008e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.94000003e-12! 0.00000000e+00! 0.00000000e+00! 8.76359985e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.09999977e-11! 0.00000000e+00! 1.42489544e-11! 9.35660056e-12! 2.06546013e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.28701400e+02! 1.34630000e+01! 8.17510000e-01! 6.98580000e+02! 2.85840000e+02! 4.03540000e-08! 7.88810000e-08! 9.50280000e-03! 8.58640000e-11! 4.26790000e-06! 4.57230000e-03! 0.00000000e+00! 0.00000000e+00! 5.54157442e-10! 3.17092012e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 8.61619998e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.28702100e+02! 1.34620000e+01! 7.47840000e-01! 7.14260000e+02! 2.86260000e+02! 3.77460000e-08! 7.89270000e-08! 9.72930000e-03! 7.94330000e-11! 3.89470000e-06! 4.26850000e-03! 0.00000000e+00! 0.00000000e+00! 5.54391422e-10! 3.17512752e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.53410018e-10! 0.00000000e+00! 3.25286694e-12! 1.46143297e-12! 2.69999995e-11! 0.00000000e+00! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.14690002e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.28709000e+02! 1.34240000e+01! 4.28740000e-01! 9.05630000e+02! 2.97230000e+02! 3.33860000e-08! 1.03820000e-07! 2.61980000e-02! 1.16660000e-10! 1.91000000e-06! 2.88820000e-03! 0.00000000e+00! 0.00000000e+00! 6.80971557e-10! 5.45196562e-11! 1.46127156e-11! 1.98259846e-11! 8.03225403e-11! 1.66260790e-11! 1.22370003e-10! 0.00000000e+00! 0.00000000e+00! 1.29540001e-09! 0.00000000e+00! 4.86663869e-11! 2.18646091e-11! 0.00000000e+00! 1.57365732e-10! 1.78294445e-11! 1.07387354e-11! 2.28837036e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.57349991e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.28709700e+02! 1.34280000e+01! 4.85270000e-01! 9.05820000e+02! 2.97290000e+02! 3.18910000e-08! 1.08240000e-07! 2.61450000e-02! 1.17580000e-10! 1.81060000e-06! 2.88480000e-03! 0.00000000e+00! 0.00000000e+00! 7.03447134e-10! 5.85624049e-11! 1.80003790e-11! 2.87364837e-11! 1.01131901e-10! 2.11223244e-11! 9.87649962e-11! 0.00000000e+00! 0.00000000e+00! 1.13590004e-09! 0.00000000e+00! 4.69062011e-11! 2.10738007e-11! 6.09999967e-11! 1.88421181e-10! 1.71276465e-11! 1.04678289e-11! 2.24467875e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 5.99999980e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.28710400e+02! 1.34310000e+01! 5.42060000e-01! 9.05910000e+02! 2.97380000e+02! 3.10740000e-08! 1.06780000e-07! 2.56940000e-02! 1.10590000e-10! 1.75630000e-06! 2.80250000e-03! 0.00000000e+00! 0.00000000e+00! 6.96023073e-10! 5.72270217e-11! 1.68813765e-11! 2.57931974e-11! 9.42582262e-11! 1.96371391e-11! 9.90819995e-11! 0.00000000e+00! 0.00000000e+00! 1.06309994e-09! 0.00000000e+00! 6.49441820e-11! 2.91778199e-11! 4.39999981e-11! 1.78163054e-10! 1.71370713e-11! 1.04714666e-11! 2.24526543e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 6.67349995e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.28711100e+02! 1.34340000e+01! 5.99370000e-01! 9.05900000e+02! 2.97410000e+02! 3.25030000e-08! 1.04720000e-07! 2.50820000e-02! 1.01050000e-10! 1.61120000e-06! 2.86960000e-03! 0.00000000e+00! 0.00000000e+00! 6.85548007e-10! 5.53428414e-11! 1.53025110e-11! 2.16403406e-11! 8.45597481e-11! 1.75416036e-11! 1.74199995e-11! 0.00000000e+00! 0.00000000e+00! 1.15459997e-09! 0.00000000e+00! 5.76425990e-11! 2.58973988e-11! 0.00000000e+00! 1.63689243e-10! 1.47091887e-11! 9.53425967e-12! 2.09411290e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.95200019e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.28711800e+02! 1.34370000e+01! 6.56850000e-01! 9.05850000e+02! 2.97330000e+02! 3.42880000e-08! 9.97840000e-08! 2.51590000e-02! 7.80900000e-11! 1.51780000e-06! 2.67920000e-03! 0.00000000e+00! 0.00000000e+00! 6.70849987e-10! 4.82099985e-11! 4.32999990e-12! 8.41999994e-12! 3.75600002e-11! 4.78999999e-12! 3.39199988e-11! 1.55190000e-10! 0.00000000e+00! 1.14069998e-09! 1.19789997e-10! 6.47771975e-11! 2.91027983e-11! 4.19999972e-11! 1.42369991e-10! 1.51997477e-11! 9.72362382e-12! 2.12465358e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.79999981e-12! 0.00000000e+00! 2.72000001e-12! 0.00000000e+00! 0.00000000e+00! 5.25000009e-11! 0.00000000e+00! 2.58000002e-12! 4.28499987e-12! 4.28499987e-12! 0.00000000e+00! 0.00000000e+00!
+ 2.28712500e+02! 1.34390000e+01! 7.14330000e-01! 9.05830000e+02! 2.97250000e+02! 3.44010000e-08! 1.01320000e-07! 2.57470000e-02! 7.04710000e-11! 1.40490000e-06! 2.40050000e-03! 0.00000000e+00! 0.00000000e+00! 6.70849987e-10! 4.82099985e-11! 4.32999990e-12! 8.41999994e-12! 3.75600002e-11! 4.78999999e-12! 1.01390001e-10! 1.55190000e-10! 0.00000000e+00! 1.23919996e-09! 1.19789997e-10! 5.83539883e-11! 2.62170095e-11! 3.40000007e-11! 1.42369991e-10! 1.72056900e-11! 1.04979549e-11! 2.24953754e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.79999981e-12! 0.00000000e+00! 2.72000001e-12! 0.00000000e+00! 0.00000000e+00! 3.90610010e-11! 0.00000000e+00! 2.58000002e-12! 4.28499987e-12! 4.28499987e-12! 0.00000000e+00! 0.00000000e+00!
+ 2.28713200e+02! 1.34430000e+01! 7.72040000e-01! 9.05730000e+02! 2.97310000e+02! 3.60000000e-08! 9.85970000e-08! 2.58290000e-02! 6.27720000e-11! 1.25920000e-06! 1.88450000e-03! 0.00000000e+00! 0.00000000e+00! 6.54412802e-10! 4.97424393e-11! 1.06095983e-11! 9.29667888e-12! 5.57326581e-11! 1.13129827e-11! 7.40000006e-11! 0.00000000e+00! 0.00000000e+00! 1.26280009e-09! 0.00000000e+00! 8.13785983e-11! 3.65613997e-11! 0.00000000e+00! 1.20668309e-10! 1.63913605e-11! 1.01836092e-11! 2.19883989e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.68040016e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.28714600e+02! 1.34500000e+01! 8.87350000e-01! 9.06020000e+02! 2.97410000e+02! 3.33280000e-08! 1.03370000e-07! 2.65630000e-02! 5.42670000e-11! 1.21090000e-06! 1.98660000e-03! 0.00000000e+00! 0.00000000e+00! 6.51780019e-10! 4.42700009e-11! 4.18999991e-12! 9.10000027e-12! 2.91499984e-11! 3.47999993e-12! 1.42029999e-10! 1.43770010e-10! 0.00000000e+00! 1.13459997e-09! 1.12029996e-10! 9.66551977e-11! 4.34247985e-11! 0.00000000e+00! 1.36289993e-10! 1.84139527e-11! 1.09643666e-11! 2.32476000e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.09000004e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 6.18679968e-11! 0.00000000e+00! 2.80000003e-12! 5.16499994e-12! 5.16499994e-12! 0.00000000e+00! 0.00000000e+00!
+ 2.28715300e+02! 1.34530000e+01! 9.45120000e-01! 9.05890000e+02! 2.97480000e+02! 3.37690000e-08! 1.04000000e-07! 2.68760000e-02! 5.71030000e-11! 1.25750000e-06! 2.19480000e-03! 0.00000000e+00! 0.00000000e+00! 6.81886825e-10! 5.46842953e-11! 1.47506729e-11! 2.01888558e-11! 8.11699805e-11! 1.68091843e-11! 1.77179993e-10! 0.00000000e+00! 0.00000000e+00! 1.25499999e-09! 0.00000000e+00! 9.68138972e-11! 4.34960991e-11! 3.99999964e-11! 1.58630428e-10! 1.94589917e-11! 1.13677713e-11! 2.38982098e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.11980002e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.28716000e+02! 1.34560000e+01! 1.00240000e+00! 9.05840000e+02! 2.97560000e+02! 3.46130000e-08! 1.01290000e-07! 2.67080000e-02! 5.23490000e-11! 1.18340000e-06! 2.41230000e-03! 0.00000000e+00! 0.00000000e+00! 6.68106570e-10! 5.22055940e-11! 1.26736208e-11! 1.47256322e-11! 6.84112975e-11! 1.40524372e-11! 1.39240008e-10! 0.00000000e+00! 0.00000000e+00! 1.21599997e-09! 0.00000000e+00! 7.35884964e-11! 3.30614980e-11! 4.39999981e-11! 1.39589659e-10! 1.83310051e-11! 1.09323462e-11! 2.31959590e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 7.56470026e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.28716700e+02! 1.34590000e+01! 1.05990000e+00! 9.05880000e+02! 2.97670000e+02! 3.46840000e-08! 1.00200000e-07! 2.64080000e-02! 5.72720000e-11! 1.21000000e-06! 2.42680000e-03! 0.00000000e+00! 0.00000000e+00! 6.55049959e-10! 4.67000015e-11! 4.81000005e-12! 7.81999986e-12! 2.92699996e-11! 2.42999999e-12! 5.18370000e-11! 1.02640001e-10! 0.00000000e+00! 1.25680000e-09! 1.09169999e-10! 6.10298062e-11! 2.74191884e-11! 4.39999981e-11! 1.32980002e-10! 1.57324362e-11! 9.92925187e-12! 2.15781733e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.76999994e-12! 0.00000000e+00! 3.17000007e-12! 0.00000000e+00! 2.09999986e-12! 5.95710009e-11! 0.00000000e+00! 2.77999997e-12! 4.94500014e-12! 4.94500014e-12! 0.00000000e+00! 0.00000000e+00!
+ 2.28717400e+02! 1.34620000e+01! 1.11690000e+00! 9.05770000e+02! 2.97710000e+02! 3.43910000e-08! 1.00810000e-07! 2.67500000e-02! 5.34360000e-11! 1.17740000e-06! 2.41410000e-03! 0.00000000e+00! 0.00000000e+00! 6.55049959e-10! 4.67000015e-11! 4.81000005e-12! 7.81999986e-12! 2.92699996e-11! 2.42999999e-12! 5.49420023e-11! 1.02640001e-10! 0.00000000e+00! 1.34930001e-09! 1.09169999e-10! 6.81243881e-11! 3.06066110e-11! 4.89999985e-11! 1.32980002e-10! 1.58247512e-11! 9.96488655e-12! 2.16356447e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.76999994e-12! 0.00000000e+00! 3.17000007e-12! 0.00000000e+00! 2.09999986e-12! 6.58270036e-11! 0.00000000e+00! 2.77999997e-12! 4.94500014e-12! 4.94500014e-12! 0.00000000e+00! 0.00000000e+00!
+ 2.28718100e+02! 1.34640000e+01! 1.17430000e+00! 9.05830000e+02! 2.97780000e+02! 3.39410000e-08! 1.00540000e-07! 2.71340000e-02! 5.07890000e-11! 1.07700000e-06! 2.34630000e-03! 0.00000000e+00! 0.00000000e+00! 6.43789966e-10! 4.20600013e-11! 4.83000012e-12! 6.92000016e-12! 2.94500015e-11! 3.47999993e-12! 5.65309986e-11! 8.99399999e-11! 0.00000000e+00! 1.24019994e-09! 1.03709999e-10! 7.49960996e-11! 3.36938984e-11! 4.89999985e-11! 1.34089989e-10! 1.58719930e-11! 9.98312370e-12! 2.16650569e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.77999975e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.23000004e-12! 1.06410006e-10! 4.21999978e-12! 1.65000002e-12! 5.34499962e-12! 5.34499962e-12! 0.00000000e+00! 0.00000000e+00!
+ 2.28718800e+02! 1.34670000e+01! 1.23180000e+00! 9.05910000e+02! 2.97960000e+02! 3.36430000e-08! 1.02050000e-07! 2.67280000e-02! 4.52930000e-11! 1.04430000e-06! 2.29650000e-03! 0.00000000e+00! 0.00000000e+00! 6.57049970e-10! 5.09770004e-11! 4.74779981e-12! 7.02780022e-12! 3.13640017e-11! 5.25439978e-12! 2.59220007e-11! 1.01289997e-10! 0.00000000e+00! 1.15459997e-09! 9.97619973e-11! 6.61047606e-11! 2.96992396e-11! 4.89999985e-11! 1.36160000e-10! 1.49619605e-11! 9.63183439e-12! 2.10984979e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.88220012e-12! 0.00000000e+00! 2.85999978e-12! 0.00000000e+00! 2.84999997e-12! 6.34709993e-11! 4.37220008e-12! 2.97999993e-12! 3.39499999e-12! 3.39499999e-12! 0.00000000e+00! 0.00000000e+00!
+ 2.29450000e+02! 1.28580000e+01! 2.53100000e+00! 6.96790000e+02! 2.83250000e+02! 3.18460000e-08! 7.77810000e-08! 7.78020000e-03! 1.32060000e-10! 9.97950000e-05! 1.17970000e-02! 0.00000000e+00! 0.00000000e+00! 5.48564028e-10! 3.07030859e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 8.38179959e-12! 0.00000000e+00! 0.00000000e+00! 9.97290028e-10! 0.00000000e+00! 1.61839500e-11! 7.27104965e-12! 0.00000000e+00! 0.00000000e+00! 1.44404749e-11! 9.43053188e-12! 2.07738375e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.80359998e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29450700e+02! 1.28070000e+01! 2.57460000e+00! 6.96820000e+02! 2.83100000e+02! 3.18930000e-08! 7.77120000e-08! 7.95960000e-03! 7.60570000e-11! 1.04120000e-04! 1.21730000e-02! 0.00000000e+00! 0.00000000e+00! 5.48213142e-10! 3.06399732e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.60979997e-11! 0.00000000e+00! 0.00000000e+00! 1.06109999e-09! 0.00000000e+00! 1.75101305e-11! 7.86687035e-12! 6.99999997e-12! 0.00000000e+00! 1.46698834e-11! 9.51908777e-12! 2.09166608e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.22299991e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29451400e+02! 1.27560000e+01! 2.61830000e+00! 6.96790000e+02! 2.83150000e+02! 3.21740000e-08! 7.84580000e-08! 8.02360000e-03! 3.88540000e-11! 9.98340000e-05! 1.16850000e-02! 0.00000000e+00! 0.00000000e+00! 5.52006552e-10! 3.13223024e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.28850004e-11! 0.00000000e+00! 0.00000000e+00! 1.13740006e-09! 0.00000000e+00! 9.08315957e-12! 4.08083983e-12! 6.99999997e-12! 0.00000000e+00! 1.45743591e-11! 9.48221276e-12! 2.08571892e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.22620004e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29452100e+02! 1.27050000e+01! 2.66100000e+00! 6.96810000e+02! 2.83140000e+02! 3.17170000e-08! 7.73400000e-08! 7.89220000e-03! 5.97910000e-11! 9.32950000e-05! 1.12110000e-02! 0.00000000e+00! 0.00000000e+00! 5.46321544e-10! 3.02997245e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 6.74100012e-11! 0.00000000e+00! 0.00000000e+00! 1.02359998e-09! 0.00000000e+00! 1.32569693e-11! 5.95602951e-12! 0.00000000e+00! 0.00000000e+00! 1.61954339e-11! 1.01079778e-11! 2.18664201e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 5.09840000e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29452800e+02! 1.26430000e+01! 2.66070000e+00! 6.96530000e+02! 2.83140000e+02! 3.13670000e-08! 7.60650000e-08! 7.78250000e-03! 2.99040000e-11! 9.35630000e-05! 1.10270000e-02! 0.00000000e+00! 0.00000000e+00! 5.39838174e-10! 2.91335463e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.24749984e-11! 0.00000000e+00! 0.00000000e+00! 1.06599995e-09! 0.00000000e+00! 8.25722997e-12! 3.70976990e-12! 0.00000000e+00! 0.00000000e+00! 1.51567873e-11! 9.70704073e-12! 2.12197915e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.23279997e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29453500e+02! 1.25780000e+01! 2.62780000e+00! 6.96750000e+02! 2.83060000e+02! 3.12710000e-08! 7.64460000e-08! 8.02040000e-03! 1.71790000e-11! 9.32030000e-05! 1.06360000e-02! 0.00000000e+00! 0.00000000e+00! 5.41775569e-10! 2.94820279e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 7.47539964e-12! 0.00000000e+00! 0.00000000e+00! 9.84210047e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.44135268e-11! 9.42012874e-12! 2.07570610e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.84100000e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29454200e+02! 1.25090000e+01! 2.61510000e+00! 6.98000000e+02! 2.82490000e+02! 3.38890000e-08! 8.43950000e-08! 9.82220000e-03! 2.06650000e-12! 9.32830000e-05! 1.08010000e-02! 0.00000000e+00! 0.00000000e+00! 5.82196069e-10! 3.67525801e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.96720018e-11! 0.00000000e+00! 0.00000000e+00! 1.03959996e-09! 0.00000000e+00! 1.89356707e-11! 8.50733026e-12! 3.99999964e-11! 2.08833541e-11! 1.53707602e-11! 9.78963872e-12! 2.13530044e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.17050006e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29455600e+02! 1.23710000e+01! 2.62490000e+00! 7.44300000e+02! 2.84540000e+02! 3.26530000e-08! 1.00380000e-07! 1.61460000e-02! 1.83030000e-11! 9.33470000e-05! 1.12930000e-02! 0.00000000e+00! 0.00000000e+00! 6.63479272e-10! 5.13732598e-11! 1.19761614e-11! 1.28911170e-11! 6.41270231e-11! 1.31267393e-11! 4.47210012e-11! 0.00000000e+00! 0.00000000e+00! 1.10999998e-09! 0.00000000e+00! 4.59360570e-11! 2.06379393e-11! 0.00000000e+00! 1.33195871e-10! 1.55208710e-11! 9.84758369e-12! 2.14464592e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 6.38520001e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29456300e+02! 1.23030000e+01! 2.63680000e+00! 7.69980000e+02! 2.86610000e+02! 3.25940000e-08! 1.04150000e-07! 1.75590000e-02! 3.05530000e-11! 1.00060000e-04! 1.23430000e-02! 0.00000000e+00! 0.00000000e+00! 6.82649604e-10! 5.48214911e-11! 1.48656400e-11! 2.04912493e-11! 8.18761794e-11! 1.69617705e-11! 3.31640028e-11! 0.00000000e+00! 0.00000000e+00! 1.04169995e-09! 0.00000000e+00! 2.78490894e-11! 1.25119099e-11! 5.09999959e-11! 1.59684363e-10! 1.51772709e-11! 9.71494846e-12! 2.12325435e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 6.67539982e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29456900e+02! 1.22340000e+01! 2.63390000e+00! 7.97640000e+02! 2.87970000e+02! 3.01980000e-08! 1.06270000e-07! 2.01560000e-02! 3.68400000e-11! 8.43780000e-05! 1.09630000e-02! 0.00000000e+00! 0.00000000e+00! 6.93429758e-10! 5.67605511e-11! 1.64904913e-11! 2.47650615e-11! 9.18571399e-11! 1.91183406e-11! 4.77379976e-11! 0.00000000e+00! 0.00000000e+00! 1.14419996e-09! 0.00000000e+00! 4.09025071e-11! 1.83764896e-11! 5.09999959e-11! 1.74579726e-10! 1.56105684e-11! 9.88220877e-12! 2.15023017e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 8.65409966e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29491000e+02! 1.13760000e+01! 2.58470000e+00! 5.60090000e+02! 2.73030000e+02! 6.15630000e-08! 7.28480000e-08! 1.40720000e-03! 1.13760000e-11! 1.15260000e-04! 1.36460000e-02! 0.00000000e+00! 2.14500001e-10! 5.23479871e-10! 2.61911170e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.39999999e-11! 0.00000000e+00! 0.00000000e+00! 6.72000011e-10! 0.00000000e+00! 5.72699978e-11! 2.57299997e-11! 1.13999997e-10! 0.00000000e+00! 1.49048170e-11! 9.60977652e-12! 2.10629240e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29491700e+02! 1.14500000e+01! 2.59220000e+00! 5.60040000e+02! 2.72870000e+02! 5.95850000e-08! 7.66230000e-08! 2.59390000e-03! 5.86160000e-11! 1.23990000e-04! 1.45020000e-02! 0.00000000e+00! 2.32000003e-10! 5.42675571e-10! 2.96439193e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 6.60329985e-11! 0.00000000e+00! 0.00000000e+00! 6.40229980e-10! 0.00000000e+00! 1.89128990e-11! 8.49709973e-12! 0.00000000e+00! 0.00000000e+00! 1.61544944e-11! 1.00921745e-11! 2.18409336e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 5.11480008e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29492400e+02! 1.15250000e+01! 2.60060000e+00! 5.59960000e+02! 2.72610000e+02! 5.63750000e-08! 7.99350000e-08! 3.36980000e-03! 5.67620000e-11! 1.28580000e-04! 1.49900000e-02! 0.00000000e+00! 2.50999999e-10! 5.59517044e-10! 3.26732391e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.29020006e-11! 0.00000000e+00! 0.00000000e+00! 6.56510013e-10! 0.00000000e+00! 3.95901281e-12! 1.77868690e-12! 9.69999983e-11! 0.00000000e+00! 1.45748639e-11! 9.48240878e-12! 2.08575032e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.48690001e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29493100e+02! 1.16010000e+01! 2.60900000e+00! 5.59960000e+02! 2.73120000e+02! 5.98770000e-08! 7.43620000e-08! 6.71060000e-04! 5.29430000e-11! 1.29080000e-04! 1.49710000e-02! 0.00000000e+00! 2.59500005e-10! 5.31178546e-10! 2.75758964e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.61310010e-11! 0.00000000e+00! 0.00000000e+00! 6.22439988e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.14999996e-10! 0.00000000e+00! 1.46708652e-11! 9.51946594e-12! 2.09172714e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 7.86889976e-13! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29493700e+02! 1.16780000e+01! 2.61570000e+00! 5.59900000e+02! 2.73180000e+02! 6.02180000e-08! 7.45090000e-08! 1.52280000e-03! 4.03260000e-11! 1.26580000e-04! 1.46160000e-02! 0.00000000e+00! 2.59500005e-10! 5.72409953e-10! 2.59200005e-11! 4.04000011e-12! 2.49999999e-12! 1.11000003e-11! 6.40999970e-12! 3.28849968e-11! 5.89219951e-10! 0.00000000e+00! 5.75050008e-10! 1.08709999e-10! 9.94289980e-12! 4.46709987e-12! 0.00000000e+00! 7.07600020e-11! 1.51689772e-11! 9.71174616e-12! 2.12273792e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.13999997e-12! 0.00000000e+00! 2.96000008e-12! 0.00000000e+00! 0.00000000e+00! 2.12459998e-11! 0.00000000e+00! 0.00000000e+00! 4.42500030e-12! 4.42500030e-12! 0.00000000e+00! 0.00000000e+00!
+ 2.29496500e+02! 1.19900000e+01! 2.61620000e+00! 5.60070000e+02! 2.73400000e+02! 6.28240000e-08! 7.09060000e-08! 9.16470000e-04! 1.10380000e-11! 1.18880000e-04! 1.36450000e-02! 0.00000000e+00! 2.23499996e-10! 5.43889989e-10! 2.16100002e-11! 0.00000000e+00! 0.00000000e+00! 4.57000019e-12! 3.31999987e-12! 4.15569974e-11! 3.66609992e-10! 0.00000000e+00! 5.20229970e-10! 7.63100000e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 5.95700017e-11! 1.54268022e-11! 9.81127159e-12! 2.13878932e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.19999972e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.89510005e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29497200e+02! 1.20670000e+01! 2.61310000e+00! 5.59970000e+02! 2.73410000e+02! 6.28810000e-08! 7.10990000e-08! 9.34420000e-04! 1.09460000e-11! 1.28210000e-04! 1.45630000e-02! 0.00000000e+00! 2.17500004e-10! 5.14586262e-10! 2.45913949e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.14099996e-11! 0.00000000e+00! 0.00000000e+00! 5.65260005e-10! 0.00000000e+00! 6.96761962e-12! 3.13037985e-12! 4.19999972e-11! 0.00000000e+00! 1.51251234e-11! 9.69481873e-12! 2.12000782e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.91310006e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29497900e+02! 1.21430000e+01! 2.60590000e+00! 5.60020000e+02! 2.73130000e+02! 6.09810000e-08! 7.25850000e-08! 1.38020000e-03! 1.06230000e-11! 1.16890000e-04! 1.34750000e-02! 0.00000000e+00! 2.15499993e-10! 5.22142496e-10! 2.59505629e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 5.52130008e-11! 0.00000000e+00! 0.00000000e+00! 6.72570000e-10! 0.00000000e+00! 1.73065798e-11! 7.77542006e-12! 1.12000000e-10! 0.00000000e+00! 1.58328073e-11! 9.96799778e-12! 2.16406598e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.02950001e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29498600e+02! 1.22190000e+01! 2.59910000e+00! 5.59910000e+02! 2.72690000e+02! 5.76960000e-08! 7.52570000e-08! 2.52730000e-03! 2.25910000e-11! 1.04960000e-04! 1.22420000e-02! 0.00000000e+00! 2.18499996e-10! 5.35729572e-10! 2.83945090e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.02789989e-11! 0.00000000e+00! 0.00000000e+00! 6.51159959e-10! 0.00000000e+00! 3.42736776e-12! 1.53983185e-12! 0.00000000e+00! 0.00000000e+00! 1.53888065e-11! 9.79660537e-12! 2.13642385e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29499300e+02! 1.22940000e+01! 2.59230000e+00! 5.60070000e+02! 2.72500000e+02! 5.62840000e-08! 7.61640000e-08! 3.11890000e-03! 2.87870000e-11! 1.05160000e-04! 1.22250000e-02! 0.00000000e+00! 2.25000005e-10! 5.70069991e-10! 2.69299999e-11! 2.33999994e-12! 3.09999986e-12! 1.15200002e-11! 3.95999986e-12! 2.44750002e-11! 7.84109999e-10! 0.00000000e+00! 5.93919969e-10! 1.56520005e-10! 0.00000000e+00! 0.00000000e+00! 9.29999966e-11! 7.28899996e-11! 1.49189393e-11! 9.61522788e-12! 2.10717138e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.46000008e-12! 0.00000000e+00! 3.89000030e-12! 0.00000000e+00! 0.00000000e+00! 2.96559999e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29500000e+02! 1.23700000e+01! 2.58480000e+00! 5.60020000e+02! 2.72910000e+02! 6.16750000e-08! 7.17010000e-08! 7.46040000e-04! 2.89540000e-11! 1.09710000e-04! 1.27320000e-02! 0.00000000e+00! 2.30999997e-10! 5.70069991e-10! 2.69299999e-11! 2.33999994e-12! 3.09999986e-12! 1.15200002e-11! 3.95999986e-12! 4.16669997e-11! 7.84109999e-10! 0.00000000e+00! 5.23170007e-10! 1.56520005e-10! 8.22272979e-12! 3.69426972e-12! 1.03999996e-10! 7.28899996e-11! 1.54300722e-11! 9.81253447e-12! 2.13899315e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.46000008e-12! 0.00000000e+00! 3.89000030e-12! 0.00000000e+00! 0.00000000e+00! 3.66669976e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29500700e+02! 1.24460000e+01! 2.57770000e+00! 5.60010000e+02! 2.72670000e+02! 6.01010000e-08! 7.28190000e-08! 1.24690000e-03! 1.20510000e-11! 1.05790000e-04! 1.23140000e-02! 0.00000000e+00! 2.34999992e-10! 5.23332377e-10! 2.61645931e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.40000007e-11! 0.00000000e+00! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29501400e+02! 1.25210000e+01! 2.57630000e+00! 5.63880000e+02! 2.73110000e+02! 6.03010000e-08! 7.29360000e-08! 8.52240000e-04! 1.57570000e-11! 1.04070000e-04! 1.26710000e-02! 0.00000000e+00! 2.33000008e-10! 5.23927346e-10! 2.62716064e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.40000007e-11! 0.00000000e+00! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29504200e+02! 1.23270000e+01! 2.61750000e+00! 6.06240000e+02! 2.77010000e+02! 6.24600000e-08! 6.55600000e-08! 2.03330000e-03! 3.35690000e-11! 1.09250000e-04! 1.20940000e-02! 0.00000000e+00! 2.25000005e-10! 4.86420570e-10! 1.95251471e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.12619991e-11! 0.00000000e+00! 0.00000000e+00! 6.78669954e-10! 0.00000000e+00! 3.86855391e-12! 1.73804591e-12! 0.00000000e+00! 0.00000000e+00! 1.48234151e-11! 9.57835287e-12! 2.10122440e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 2.21149991e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29504900e+02! 1.22520000e+01! 2.61720000e+00! 6.06490000e+02! 2.76740000e+02! 6.09110000e-08! 6.58460000e-08! 2.52880000e-03! 2.66610000e-11! 1.04910000e-04! 1.16700000e-02! 0.00000000e+00! 2.20000004e-10! 4.87874907e-10! 1.97867382e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 6.08840034e-10! 0.00000000e+00! 1.28726396e-11! 5.78335990e-12! 1.00000001e-10! 0.00000000e+00! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 7.68850001e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29505600e+02! 1.21780000e+01! 2.61580000e+00! 6.06540000e+02! 2.77090000e+02! 6.32710000e-08! 6.39810000e-08! 2.05730000e-03! 1.77310000e-11! 1.02080000e-04! 1.14020000e-02! 0.00000000e+00! 2.18999999e-10! 4.78391438e-10! 1.80809152e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.94920000e-11! 0.00000000e+00! 0.00000000e+00! 5.99700012e-10! 0.00000000e+00! 3.65361907e-12! 1.64148100e-12! 5.39999989e-11! 0.00000000e+00! 1.47707905e-11! 9.55803926e-12! 2.09794820e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.91800045e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29506300e+02! 1.21050000e+01! 2.61700000e+00! 6.06350000e+02! 2.76840000e+02! 6.14240000e-08! 6.57070000e-08! 2.28260000e-03! 6.48200000e-12! 1.04400000e-04! 1.16440000e-02! 0.00000000e+00! 2.24500002e-10! 4.87168084e-10! 1.96596003e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.72459998e-11! 0.00000000e+00! 0.00000000e+00! 6.94510005e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.47040158e-11! 9.53226300e-12! 2.09379094e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29506900e+02! 1.20320000e+01! 2.61610000e+00! 6.06360000e+02! 2.76740000e+02! 6.12860000e-08! 6.61790000e-08! 1.88910000e-03! 5.07920000e-12! 1.08150000e-04! 1.20300000e-02! 0.00000000e+00! 2.22999993e-10! 4.89568219e-10! 2.00913158e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.51250002e-11! 0.00000000e+00! 0.00000000e+00! 6.23419982e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.39999953e-11! 0.00000000e+00! 1.46409551e-11! 9.50792136e-12! 2.08986509e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29507600e+02! 1.19600000e+01! 2.61640000e+00! 6.06360000e+02! 2.77020000e+02! 6.19930000e-08! 6.69010000e-08! 1.54100000e-03! 5.07920000e-12! 1.11430000e-04! 1.24170000e-02! 0.00000000e+00! 2.06499998e-10! 5.22139998e-10! 1.88400007e-11! 0.00000000e+00! 0.00000000e+00! 4.38999965e-12! 4.69999994e-12! 2.71310006e-11! 7.33950012e-10! 0.00000000e+00! 5.45030021e-10! 1.16470000e-10! 0.00000000e+00! 0.00000000e+00! 3.49999994e-11! 4.64700015e-11! 1.49979040e-11! 9.64570958e-12! 2.11208759e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.94000024e-12! 0.00000000e+00! 3.03999989e-12! 0.00000000e+00! 0.00000000e+00! 9.19669983e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29516700e+02! 1.10190000e+01! 2.60450000e+00! 6.07160000e+02! 2.75650000e+02! 4.83110000e-08! 9.51970000e-08! 9.43140000e-03! 1.92410000e-11! 1.35010000e-04! 1.56610000e-02! 0.00000000e+00! 2.83000012e-10! 6.37123854e-10! 4.66326283e-11! 8.00370274e-12! 2.44244859e-12! 3.97254556e-11! 7.85433264e-12! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.74999987e-10! 9.67795011e-11! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29517400e+02! 1.09500000e+01! 2.59740000e+00! 6.26430000e+02! 2.77270000e+02! 4.46490000e-08! 1.00950000e-07! 1.06150000e-02! 3.05980000e-11! 1.30960000e-04! 1.60450000e-02! 0.00000000e+00! 3.24500010e-10! 6.66377675e-10! 5.18946101e-11! 1.24130315e-11! 1.40402091e-11! 6.68105848e-11! 1.37065715e-11! 3.55559982e-12! 0.00000000e+00! 0.00000000e+00! 8.73809969e-10! 0.00000000e+00! 1.78440891e-11! 8.01691005e-12! 1.74999987e-10! 1.37200779e-10! 1.42969872e-11! 9.37514302e-12! 2.06845079e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.30280005e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29522900e+02! 1.14260000e+01! 2.62940000e+00! 7.66710000e+02! 2.86150000e+02! 3.04570000e-08! 1.09180000e-07! 1.81030000e-02! 7.33300000e-11! 1.06170000e-04! 1.52330000e-02! 0.00000000e+00! 4.17999996e-10! 7.08226977e-10! 5.94221825e-11! 1.87208322e-11! 3.06314765e-11! 1.05557424e-10! 2.20785387e-11! 1.48690001e-11! 0.00000000e+00! 0.00000000e+00! 1.05590003e-09! 0.00000000e+00! 4.03028999e-11! 1.81070992e-11! 0.00000000e+00! 1.95025746e-10! 1.46333449e-11! 9.50498274e-12! 2.08939133e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.85899973e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29523600e+02! 1.14920000e+01! 2.62590000e+00! 7.66460000e+02! 2.86550000e+02! 3.03820000e-08! 1.05000000e-07! 1.72800000e-02! 8.13090000e-11! 7.69450000e-05! 1.10730000e-02! 0.00000000e+00! 4.10000006e-10! 6.86971813e-10! 5.55989456e-11! 1.55171136e-11! 2.22048057e-11! 8.58779853e-11! 1.78264330e-11! 2.47870006e-11! 0.00000000e+00! 0.00000000e+00! 1.01420006e-09! 0.00000000e+00! 2.03722490e-11! 9.15274974e-12! 4.79999998e-11! 1.65656558e-10! 1.49282166e-11! 9.61880835e-12! 2.10774904e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.53609989e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29524300e+02! 1.15580000e+01! 2.62120000e+00! 7.66540000e+02! 2.86700000e+02! 3.04240000e-08! 1.03330000e-07! 1.72790000e-02! 6.79420000e-11! 7.41810000e-05! 1.06680000e-02! 0.00000000e+00! 4.02500006e-10! 6.78479939e-10! 5.40714799e-11! 1.42371583e-11! 1.88381689e-11! 7.80156217e-11! 1.61276270e-11! 3.82949991e-11! 0.00000000e+00! 0.00000000e+00! 9.51150048e-10! 0.00000000e+00! 1.67297391e-11! 7.51626018e-12! 0.00000000e+00! 1.53922944e-10! 1.53298207e-11! 9.77383539e-12! 2.13275161e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 6.55899987e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29525000e+02! 1.16230000e+01! 2.61670000e+00! 7.66470000e+02! 2.86740000e+02! 3.07610000e-08! 1.03960000e-07! 1.74730000e-02! 6.20730000e-11! 7.38540000e-05! 1.07270000e-02! 0.00000000e+00! 4.01500000e-10! 7.40539963e-10! 6.42699990e-11! 8.10000070e-12! 1.26800003e-11! 4.59800011e-11! 5.58000000e-12! 1.94749997e-11! 1.29800004e-09! 0.00000000e+00! 9.93380045e-10! 1.17560003e-10! 3.40473587e-11! 1.52966407e-11! 5.29999968e-11! 1.62460004e-10! 1.47702857e-11! 9.55784410e-12! 2.09791681e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.27000015e-12! 0.00000000e+00! 2.91000015e-12! 0.00000000e+00! 3.44000002e-12! 3.99020018e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29525700e+02! 1.16880000e+01! 2.61330000e+00! 7.66290000e+02! 2.86600000e+02! 3.14500000e-08! 1.05620000e-07! 1.74280000e-02! 5.82310000e-11! 8.29090000e-05! 1.19400000e-02! 0.00000000e+00! 4.10499995e-10! 7.40539963e-10! 6.42699990e-11! 8.10000070e-12! 1.26800003e-11! 4.59800011e-11! 5.58000000e-12! 2.16720010e-11! 1.29800004e-09! 0.00000000e+00! 1.01929998e-09! 1.17560003e-10! 6.68506500e-11! 3.00343500e-11! 4.39999981e-11! 1.62460004e-10! 1.48356032e-11! 9.58305831e-12! 2.10198317e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.27000015e-12! 0.00000000e+00! 2.91000015e-12! 0.00000000e+00! 3.44000002e-12! 2.49339993e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29526400e+02! 1.17540000e+01! 2.61580000e+00! 7.66310000e+02! 2.86510000e+02! 3.11580000e-08! 1.06630000e-07! 1.73690000e-02! 5.53190000e-11! 8.68770000e-05! 1.23620000e-02! 0.00000000e+00! 4.20999985e-10! 6.95260294e-10! 5.70898259e-11! 1.67664112e-11! 2.54908039e-11! 9.35520272e-11! 1.94845511e-11! 1.69180000e-11! 0.00000000e+00! 0.00000000e+00! 1.00469999e-09! 0.00000000e+00! 4.86505211e-11! 2.18574811e-11! 0.00000000e+00! 1.77109133e-10! 1.46942632e-11! 9.52849865e-12! 2.09318396e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 6.02459957e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29527100e+02! 1.18210000e+01! 2.61660000e+00! 7.66330000e+02! 2.86400000e+02! 3.06800000e-08! 1.05530000e-07! 1.75240000e-02! 6.75730000e-11! 7.90930000e-05! 1.13390000e-02! 0.00000000e+00! 4.23499985e-10! 6.89666879e-10! 5.60837106e-11! 1.59233269e-11! 2.32732601e-11! 8.83732254e-11! 1.83655764e-11! 8.24999964e-12! 0.00000000e+00! 0.00000000e+00! 1.03010001e-09! 0.00000000e+00! 3.15102285e-11! 1.41567695e-11! 4.39999981e-11! 1.69380399e-10! 1.44365561e-11! 9.42901920e-12! 2.07713985e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 7.80619944e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29527800e+02! 1.18880000e+01! 2.61840000e+00! 7.66530000e+02! 2.86360000e+02! 3.20380000e-08! 1.09720000e-07! 1.77210000e-02! 6.45970000e-11! 8.18980000e-05! 1.18160000e-02! 0.00000000e+00! 4.21500002e-10! 7.10972892e-10! 5.99160929e-11! 1.91347094e-11! 3.17200918e-11! 1.08099744e-10! 2.26278527e-11! 8.18029932e-12! 0.00000000e+00! 0.00000000e+00! 1.07340004e-09! 0.00000000e+00! 3.64340710e-11! 1.63689305e-11! 6.19999954e-11! 1.98819849e-10! 1.44344849e-11! 9.42821862e-12! 2.07701079e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 5.87540017e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29534700e+02! 1.25440000e+01! 2.64310000e+00! 7.85980000e+02! 2.88240000e+02! 3.17230000e-08! 1.02440000e-07! 1.75010000e-02! 6.76130000e-11! 7.60980000e-05! 1.12480000e-02! 0.00000000e+00! 5.83499971e-10! 6.73954281e-10! 5.32574401e-11! 1.35550269e-11! 1.70439739e-11! 7.38255013e-11! 1.52222731e-11! 2.40670001e-11! 0.00000000e+00! 0.00000000e+00! 1.00429998e-09! 0.00000000e+00! 5.74997645e-12! 2.58332288e-12! 3.99999964e-11! 1.47669696e-10! 1.49068102e-11! 9.61054500e-12! 2.10641626e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.75330010e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29535400e+02! 1.25090000e+01! 2.67520000e+00! 8.12720000e+02! 2.90320000e+02! 3.09640000e-08! 1.00900000e-07! 1.84810000e-02! 5.87640000e-11! 8.80320000e-05! 1.21620000e-02! 0.00000000e+00! 5.84999993e-10! 6.66123490e-10! 5.18488794e-11! 1.23747098e-11! 1.39394113e-11! 6.65751829e-11! 1.36557094e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.14430010e-09! 0.00000000e+00! 8.93618946e-12! 4.01480975e-12! 3.40000007e-11! 1.36849476e-10! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 5.61150015e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29536100e+02! 1.24460000e+01! 2.66360000e+00! 8.41610000e+02! 2.92070000e+02! 2.88660000e-08! 1.04280000e-07! 2.19900000e-02! 7.38070000e-11! 7.43420000e-05! 1.06420000e-02! 0.00000000e+00! 5.83499971e-10! 6.83310686e-10! 5.49403960e-11! 1.49652773e-11! 2.07533227e-11! 8.24882176e-11! 1.70940137e-11! 6.42300033e-11! 0.00000000e+00! 0.00000000e+00! 1.11359999e-09! 0.00000000e+00! 3.41267084e-11! 1.53322893e-11! 0.00000000e+00! 1.60597743e-10! 1.61008915e-11! 1.00714827e-11! 2.18075592e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.71969998e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29536800e+02! 1.23850000e+01! 2.65020000e+00! 8.58260000e+02! 2.92890000e+02! 2.62820000e-08! 1.11890000e-07! 2.45530000e-02! 8.99600000e-11! 6.44850000e-05! 9.46920000e-03! 0.00000000e+00! 5.78499970e-10! 7.22007287e-10! 6.19008803e-11! 2.07978860e-11! 3.60947001e-11! 1.18316107e-10! 2.48352849e-11! 5.87700028e-11! 0.00000000e+00! 0.00000000e+00! 1.12040000e-09! 0.00000000e+00! 7.70453978e-11! 3.46145994e-11! 4.50000003e-11! 2.14066528e-10! 1.59385612e-11! 1.00088193e-11! 2.17064994e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 8.24430038e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29537500e+02! 1.23230000e+01! 2.63730000e+00! 8.58210000e+02! 2.92630000e+02! 2.50000000e-08! 1.15040000e-07! 2.57320000e-02! 8.93930000e-11! 7.02240000e-05! 1.03930000e-02! 0.00000000e+00! 5.68500025e-10! 7.38024919e-10! 6.47820270e-11! 2.32121718e-11! 4.24449434e-11! 1.33146300e-10! 2.80396227e-11! 7.30660046e-11! 0.00000000e+00! 0.00000000e+00! 1.16380006e-09! 0.00000000e+00! 8.13509954e-11! 3.65489999e-11! 4.50000003e-11! 2.36198811e-10! 1.63635928e-11! 1.01728894e-11! 2.19711107e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.02459999e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29538200e+02! 1.22600000e+01! 2.62410000e+00! 8.58460000e+02! 2.92910000e+02! 2.58390000e-08! 1.11950000e-07! 2.35870000e-02! 1.01880000e-10! 6.99530000e-05! 1.01940000e-02! 0.00000000e+00! 5.58500024e-10! 7.22312377e-10! 6.19557600e-11! 2.08438718e-11! 3.62156589e-11! 1.18598589e-10! 2.48963194e-11! 4.14100004e-11! 0.00000000e+00! 0.00000000e+00! 1.14999998e-09! 0.00000000e+00! 6.16025078e-11! 2.76764896e-11! 4.09999985e-11! 2.14488094e-10! 1.54224324e-11! 9.80958457e-12! 2.13851731e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 7.77379966e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29538900e+02! 1.21950000e+01! 2.61360000e+00! 8.58430000e+02! 2.92810000e+02! 2.62710000e-08! 1.09980000e-07! 2.37810000e-02! 8.80230000e-11! 7.36920000e-05! 1.07470000e-02! 0.00000000e+00! 5.47999979e-10! 7.12295001e-10! 6.01539027e-11! 1.93339841e-11! 3.22442351e-11! 1.09323821e-10! 2.28923373e-11! 5.30159978e-11! 0.00000000e+00! 0.00000000e+00! 1.13139997e-09! 0.00000000e+00! 5.93965779e-11! 2.66854195e-11! 3.29999986e-11! 2.00646638e-10! 1.57674880e-11! 9.94278358e-12! 2.15999944e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 6.61969993e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29539600e+02! 1.21300000e+01! 2.61590000e+00! 8.58490000e+02! 2.92620000e+02! 2.49500000e-08! 1.15080000e-07! 2.52650000e-02! 8.08140000e-11! 5.93670000e-05! 9.09020000e-03! 0.00000000e+00! 5.37499989e-10! 7.38228312e-10! 6.48186158e-11! 2.32428278e-11! 4.25255803e-11! 1.33334621e-10! 2.80803124e-11! 7.78329970e-11! 0.00000000e+00! 0.00000000e+00! 1.06849996e-09! 0.00000000e+00! 1.53166188e-10! 6.88137949e-11! 3.29999986e-11! 2.36479863e-10! 1.65053197e-11! 1.02275991e-11! 2.20593457e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.07919999e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29541700e+02! 1.19350000e+01! 2.61710000e+00! 8.58580000e+02! 2.92830000e+02! 2.57240000e-08! 1.12780000e-07! 2.34730000e-02! 8.69750000e-11! 6.85120000e-05! 1.00300000e-02! 0.00000000e+00! 5.19000010e-10! 7.26532889e-10! 6.27149166e-11! 2.14800174e-11! 3.78888969e-11! 1.22506227e-10! 2.57406388e-11! 1.36559999e-11! 0.00000000e+00! 0.00000000e+00! 1.11319998e-09! 0.00000000e+00! 6.09801307e-11! 2.73968695e-11! 3.59999981e-11! 2.20319776e-10! 1.45972817e-11! 9.49106158e-12! 2.08714591e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 8.41309938e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29542400e+02! 1.18710000e+01! 2.61630000e+00! 8.58500000e+02! 2.92930000e+02! 2.67470000e-08! 1.11550000e-07! 2.31490000e-02! 7.60650000e-11! 6.72000000e-05! 9.90630000e-03! 0.00000000e+00! 5.24499999e-10! 7.77739984e-10! 6.94600003e-11! 9.39000006e-12! 1.53400001e-11! 4.99099997e-11! 6.28000039e-12! 5.34430000e-11! 3.54239993e-09! 0.00000000e+00! 1.10349996e-09! 1.33580003e-09! 6.89206470e-11! 3.09643491e-11! 4.69999976e-11! 1.89130003e-10! 1.57801845e-11! 9.94768330e-12! 2.16078978e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.04000011e-12! 0.00000000e+00! 3.32999990e-12! 0.00000000e+00! 3.79999981e-12! 6.92789992e-11! 1.13999999e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29543100e+02! 1.18070000e+01! 2.61650000e+00! 8.58510000e+02! 2.92480000e+02! 2.58530000e-08! 1.14280000e-07! 2.41330000e-02! 6.61300000e-11! 7.23790000e-05! 1.06020000e-02! 0.00000000e+00! 5.31000022e-10! 7.77739984e-10! 6.94600003e-11! 9.39000006e-12! 1.53400001e-11! 4.99099997e-11! 6.28000039e-12! 1.39339998e-10! 3.54239993e-09! 0.00000000e+00! 1.12300003e-09! 1.33580003e-09! 1.27912195e-10! 5.74678014e-11! 0.00000000e+00! 1.89130003e-10! 1.83339767e-11! 1.09334946e-11! 2.31978117e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.04000011e-12! 0.00000000e+00! 3.32999990e-12! 0.00000000e+00! 3.79999981e-12! 9.14429990e-11! 1.13999999e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29543800e+02! 1.17420000e+01! 2.61690000e+00! 8.58410000e+02! 2.92330000e+02! 2.45640000e-08! 1.16360000e-07! 2.52100000e-02! 7.46800000e-11! 5.85140000e-05! 8.69880000e-03! 0.00000000e+00! 5.35499978e-10! 7.44737050e-10! 6.59893737e-11! 2.42238712e-11! 4.51059988e-11! 1.39360870e-10! 2.93823924e-11! 6.03640027e-10! 0.00000000e+00! 0.00000000e+00! 1.13470000e-09! 0.00000000e+00! 1.64399397e-10! 7.38605982e-11! 3.19999999e-11! 2.45473281e-10! 3.21380249e-11! 1.62621080e-11! 3.17917775e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 8.26890015e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29544400e+02! 1.16760000e+01! 2.61630000e+00! 8.58500000e+02! 2.92450000e+02! 2.57000000e-08! 1.14350000e-07! 2.37690000e-02! 8.99320000e-11! 6.35740000e-05! 9.42200000e-03! 0.00000000e+00! 5.37499989e-10! 7.34516281e-10! 6.41509276e-11! 2.26833274e-11! 4.10539380e-11! 1.29897787e-10! 2.73377206e-11! 3.40619997e-11! 0.00000000e+00! 0.00000000e+00! 1.10840004e-09! 0.00000000e+00! 9.76074013e-11! 4.38526021e-11! 0.00000000e+00! 2.31350786e-10! 1.52039700e-11! 9.72525359e-12! 2.12491639e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.90209982e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29545100e+02! 1.16100000e+01! 2.61870000e+00! 8.58370000e+02! 2.92360000e+02! 2.57950000e-08! 1.14620000e-07! 2.35190000e-02! 7.71150000e-11! 6.21690000e-05! 9.25650000e-03! 0.00000000e+00! 5.37499989e-10! 7.35889238e-10! 6.43978829e-11! 2.28902661e-11! 4.15982422e-11! 1.31168951e-10! 2.76123794e-11! 1.03109995e-11! 0.00000000e+00! 0.00000000e+00! 1.05639997e-09! 0.00000000e+00! 9.21287976e-11! 4.13911995e-11! 4.69999976e-11! 2.33247838e-10! 1.44978309e-11! 9.45267215e-12! 2.08095451e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 6.33110023e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29545800e+02! 1.15440000e+01! 2.62440000e+00! 8.58360000e+02! 2.92350000e+02! 2.57120000e-08! 1.17120000e-07! 2.36840000e-02! 5.68780000e-11! 6.35570000e-05! 9.44980000e-03! 0.00000000e+00! 5.31500011e-10! 7.48601681e-10! 6.66844982e-11! 2.48063653e-11! 4.66381170e-11! 1.42938952e-10! 3.01555031e-11! 2.72129992e-11! 0.00000000e+00! 0.00000000e+00! 1.02999997e-09! 0.00000000e+00! 1.17072296e-10! 5.25976970e-11! 4.69999976e-11! 2.50813148e-10! 1.50003430e-11! 9.64665067e-12! 2.11223938e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 7.12300011e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29546500e+02! 1.14790000e+01! 2.63350000e+00! 8.58410000e+02! 2.92760000e+02! 2.66010000e-08! 1.15700000e-07! 2.26870000e-02! 5.76700000e-11! 6.37550000e-05! 9.46090000e-03! 0.00000000e+00! 5.19999988e-10! 7.41380957e-10! 6.53856969e-11! 2.37180206e-11! 4.37754694e-11! 1.36253592e-10! 2.87110075e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.09680010e-09! 0.00000000e+00! 5.35709081e-11! 2.40680895e-11! 0.00000000e+00! 2.40836046e-10! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 6.35569999e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29549300e+02! 1.12220000e+01! 2.67020000e+00! 8.58440000e+02! 2.92040000e+02! 2.55380000e-08! 1.19490000e-07! 2.36140000e-02! 7.43520000e-11! 7.21340000e-05! 1.10030000e-02! 0.00000000e+00! 5.26500010e-10! 7.60652985e-10! 6.88522225e-11! 2.66228289e-11! 5.14159201e-11! 1.54096902e-10! 3.25663871e-11! 2.68300000e-11! 0.00000000e+00! 0.00000000e+00! 1.07950004e-09! 0.00000000e+00! 3.85958383e-11! 1.73401606e-11! 5.09999959e-11! 2.67465022e-10! 1.49889563e-11! 9.64225488e-12! 2.11153057e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 7.58720031e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29550000e+02! 1.11580000e+01! 2.68050000e+00! 8.58430000e+02! 2.91880000e+02! 2.53050000e-08! 1.22960000e-07! 2.41110000e-02! 8.78780000e-11! 7.66470000e-05! 1.15930000e-02! 0.00000000e+00! 5.34000011e-10! 7.78297926e-10! 7.20260587e-11! 2.92823751e-11! 5.84112689e-11! 1.70433667e-10! 3.60962440e-11! 6.76829981e-11! 0.00000000e+00! 0.00000000e+00! 1.05059994e-09! 0.00000000e+00! 9.17147955e-11! 4.12051990e-11! 0.00000000e+00! 2.91845659e-10! 1.62035524e-11! 1.01111107e-11! 2.18714734e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.71669967e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29550700e+02! 1.10940000e+01! 2.69400000e+00! 8.58430000e+02! 2.92180000e+02! 2.58120000e-08! 1.23130000e-07! 2.34840000e-02! 8.90430000e-11! 5.77780000e-05! 8.80210000e-03! 0.00000000e+00! 5.33500022e-10! 7.79162346e-10! 7.21815455e-11! 2.94126702e-11! 5.87539808e-11! 1.71234027e-10! 3.62691752e-11! 3.73930019e-11! 0.00000000e+00! 0.00000000e+00! 1.15819998e-09! 0.00000000e+00! 1.04735089e-10! 4.70548982e-11! 5.69999985e-11! 2.93040120e-10! 1.53030037e-11! 9.76348342e-12! 2.13108212e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 6.18849971e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29551400e+02! 1.10300000e+01! 2.70760000e+00! 8.58510000e+02! 2.91910000e+02! 2.51020000e-08! 1.26360000e-07! 2.46530000e-02! 7.39200000e-11! 6.15780000e-05! 9.44120000e-03! 0.00000000e+00! 5.22999977e-10! 9.34920030e-10! 9.34700026e-11! 1.37799997e-11! 2.21599995e-11! 9.77199988e-11! 1.09799999e-11! 2.27179997e-10! 9.55510004e-10! 0.00000000e+00! 1.02959996e-09! 2.46850013e-10! 2.32902586e-10! 1.04637403e-10! 6.59999971e-11! 2.44439996e-10! 2.09455370e-11! 1.19416048e-11! 2.48236865e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.39999990e-12! 0.00000000e+00! 2.29000000e-12! 0.00000000e+00! 5.34999996e-12! 1.19949994e-10! 2.00100006e-11! 3.20999997e-12! 5.21999978e-12! 5.21999978e-12! 0.00000000e+00! 0.00000000e+00!
+ 2.29552100e+02! 1.09660000e+01! 2.72120000e+00! 8.58570000e+02! 2.91860000e+02! 2.51220000e-08! 1.24410000e-07! 2.43780000e-02! 1.04950000e-10! 7.06530000e-05! 1.13280000e-02! 0.00000000e+00! 5.04499997e-10! 9.34920030e-10! 9.34700026e-11! 1.37799997e-11! 2.21599995e-11! 9.77199988e-11! 1.09799999e-11! 2.68790018e-10! 9.55510004e-10! 0.00000000e+00! 1.08769993e-09! 2.46850013e-10! 2.14886692e-10! 9.65432942e-11! 0.00000000e+00! 2.44439996e-10! 2.21826394e-11! 1.24191482e-11! 2.55938673e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.39999990e-12! 0.00000000e+00! 2.29000000e-12! 0.00000000e+00! 5.34999996e-12! 9.58850013e-11! 2.00100006e-11! 3.20999997e-12! 5.21999978e-12! 5.21999978e-12! 0.00000000e+00! 0.00000000e+00!
+ 2.29552800e+02! 1.09020000e+01! 2.73450000e+00! 8.58470000e+02! 2.91620000e+02! 2.43760000e-08! 1.23300000e-07! 2.46640000e-02! 9.70230000e-11! 7.54930000e-05! 1.18970000e-02! 0.00000000e+00! 4.86000018e-10! 7.80026765e-10! 7.23370391e-11! 2.95429653e-11! 5.90966928e-11! 1.72034387e-10! 3.64421063e-11! 2.16740001e-10! 0.00000000e+00! 0.00000000e+00! 1.11249998e-09! 0.00000000e+00! 2.10905390e-10! 9.47546000e-11! 4.59999989e-11! 2.94234553e-10! 2.06351464e-11! 1.18217875e-11! 2.46304470e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.05150000e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29553500e+02! 1.08380000e+01! 2.74730000e+00! 8.58460000e+02! 2.92130000e+02! 2.58260000e-08! 1.19920000e-07! 2.33640000e-02! 9.27370000e-11! 6.32060000e-05! 9.87000000e-03! 0.00000000e+00! 4.69499994e-10! 7.62839569e-10! 6.92455190e-11! 2.69523986e-11! 5.22827788e-11! 1.56121352e-10! 3.30038046e-11! 5.80159983e-11! 0.00000000e+00! 0.00000000e+00! 1.03690001e-09! 0.00000000e+00! 8.70848949e-11! 3.91250990e-11! 4.79999998e-11! 2.70486272e-10! 1.59161434e-11! 1.00001656e-11! 2.16925436e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.44100007e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29561100e+02! 1.01590000e+01! 2.61720000e+00! 8.58460000e+02! 2.91880000e+02! 2.58200000e-08! 1.25840000e-07! 2.34620000e-02! 6.85150000e-11! 4.30620000e-05! 7.37460000e-03! 0.00000000e+00! 4.67999972e-10! 7.92942600e-10! 7.46602502e-11! 3.14897240e-11! 6.42172010e-11! 1.83992710e-10! 3.90259249e-11! 1.90669994e-10! 0.00000000e+00! 0.00000000e+00! 1.08869991e-09! 0.00000000e+00! 1.83871196e-10! 8.26088017e-11! 3.49999994e-11! 3.12080889e-10! 1.98600615e-11! 1.15225902e-11! 2.41479042e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.59999996e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29561800e+02! 1.00930000e+01! 2.61730000e+00! 8.58500000e+02! 2.91840000e+02! 2.55430000e-08! 1.27530000e-07! 2.38380000e-02! 6.24260000e-11! 5.15910000e-05! 8.57910000e-03! 0.00000000e+00! 4.77499984e-10! 8.01536171e-10! 7.62060068e-11! 3.27850073e-11! 6.76241632e-11! 1.91949234e-10! 4.07450740e-11! 4.39480008e-10! 0.00000000e+00! 0.00000000e+00! 1.10539999e-09! 0.00000000e+00! 2.49352206e-10! 1.12027797e-10! 3.49999994e-11! 3.23955057e-10! 2.72574029e-11! 1.43780994e-11! 2.87532585e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.14019995e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29562500e+02! 1.00280000e+01! 2.61660000e+00! 8.58430000e+02! 2.91900000e+02! 2.55330000e-08! 1.28540000e-07! 2.35270000e-02! 6.31980000e-11! 6.57620000e-05! 1.07920000e-02! 0.00000000e+00! 4.83500018e-10! 8.06672007e-10! 7.71298095e-11! 3.35591138e-11! 6.96602706e-11! 1.96704306e-10! 4.17724987e-11! 1.48740006e-10! 0.00000000e+00! 0.00000000e+00! 1.15260002e-09! 0.00000000e+00! 2.17398294e-10! 9.76716971e-11! 4.59999989e-11! 3.31051409e-10! 1.86134476e-11! 1.10413753e-11! 2.33717993e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 7.50490017e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29563200e+02! 9.96230000e+00! 2.61870000e+00! 8.58480000e+02! 2.92160000e+02! 2.65760000e-08! 1.24460000e-07! 2.26510000e-02! 1.01080000e-10! 5.41900000e-05! 9.06790000e-03! 0.00000000e+00! 4.71000017e-10! 7.85925325e-10! 7.33980307e-11! 3.04320354e-11! 6.14351903e-11! 1.77495671e-10! 3.76221172e-11! 2.23279988e-11! 0.00000000e+00! 0.00000000e+00! 1.08169995e-09! 0.00000000e+00! 1.12525197e-10! 5.05547999e-11! 0.00000000e+00! 3.02384867e-10! 1.48551067e-11! 9.59058787e-12! 2.10319748e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 7.90979990e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29563900e+02! 9.89700000e+00! 2.61800000e+00! 8.58490000e+02! 2.91890000e+02! 2.65410000e-08! 1.24390000e-07! 2.29480000e-02! 8.24420000e-11! 6.50520000e-05! 1.07740000e-02! 0.00000000e+00! 4.48499987e-10! 7.85569387e-10! 7.33340055e-11! 3.03783838e-11! 6.12940740e-11! 1.77166101e-10! 3.75509103e-11! 1.02230002e-10! 0.00000000e+00! 0.00000000e+00! 1.17619992e-09! 0.00000000e+00! 1.35032999e-10! 6.06669992e-11! 3.90000011e-11! 3.01893038e-10! 1.72306631e-11! 1.05075948e-11! 2.25109219e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 5.94920016e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29564600e+02! 9.83170000e+00! 2.61840000e+00! 8.58470000e+02! 2.91940000e+02! 2.60960000e-08! 1.28110000e-07! 2.29140000e-02! 8.30060000e-11! 7.06840000e-05! 1.15340000e-02! 0.00000000e+00! 4.29000002e-10! 8.04485478e-10! 7.67365060e-11! 3.32295406e-11! 6.87934085e-11! 1.94679869e-10! 4.13350777e-11! 9.79789930e-11! 0.00000000e+00! 0.00000000e+00! 1.07050002e-09! 0.00000000e+00! 1.26097494e-10! 5.66524987e-11! 0.00000000e+00! 3.28030214e-10! 1.71042781e-11! 1.04588083e-11! 2.24322384e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.06559997e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29565300e+02! 9.76670000e+00! 2.61680000e+00! 8.58540000e+02! 2.91750000e+02! 2.61230000e-08! 1.28650000e-07! 2.33920000e-02! 7.41350000e-11! 5.92660000e-05! 1.00190000e-02! 0.00000000e+00! 4.29499991e-10! 8.07231393e-10! 7.72304165e-11! 3.36434179e-11! 6.98820168e-11! 1.97222183e-10! 4.18843953e-11! 2.27050004e-10! 0.00000000e+00! 0.00000000e+00! 1.06150000e-09! 0.00000000e+00! 1.58644792e-10! 7.12751941e-11! 5.09999959e-11! 3.31824318e-10! 2.09416737e-11! 1.19401121e-11! 2.48212787e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.33030004e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29566000e+02! 9.70190000e+00! 2.61180000e+00! 8.58430000e+02! 2.91640000e+02! 2.57620000e-08! 1.34110000e-07! 2.36240000e-02! 7.60240000e-11! 5.46610000e-05! 9.33340000e-03! 0.00000000e+00! 4.46500004e-10! 1.03200004e-09! 1.17540006e-10! 2.36100011e-11! 3.78100017e-11! 1.84789989e-10! 2.02900006e-11! 4.32890002e-10! 8.02000022e-10! 0.00000000e+00! 1.02630004e-09! 1.13240001e-10! 2.13810289e-10! 9.60596949e-11! 4.29999994e-11! 3.32790018e-10! 2.70614781e-11! 1.43024681e-11! 2.86312796e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.32999990e-12! 3.19000013e-12! 4.11000010e-12! 0.00000000e+00! 8.90999947e-12! 1.24870003e-10! 2.46400001e-11! 4.44000002e-12! 2.45499996e-12! 2.45499996e-12! 0.00000000e+00! 0.00000000e+00!
+ 2.29568100e+02! 9.50780000e+00! 2.61690000e+00! 8.58400000e+02! 2.91500000e+02! 2.67370000e-08! 1.32230000e-07! 2.33020000e-02! 5.32400000e-11! 2.65040000e-05! 4.73320000e-03! 0.00000000e+00! 5.54500001e-10! 8.25435553e-10! 8.05048667e-11! 3.63872751e-11! 7.70991188e-11! 2.14076826e-10! 4.55261488e-11! 3.97530009e-10! 0.00000000e+00! 0.00000000e+00! 1.11530007e-09! 0.00000000e+00! 2.90262286e-10! 1.30407699e-10! 4.39999981e-11! 3.56977808e-10! 2.60101923e-11! 1.38966529e-11! 2.79767823e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.66929998e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29568800e+02! 9.44390000e+00! 2.62880000e+00! 8.58460000e+02! 2.91360000e+02! 2.73940000e-08! 1.50390000e-07! 2.37910000e-02! 6.22520000e-11! 6.55370000e-05! 1.14210000e-02! 0.00000000e+00! 6.07499995e-10! 9.17778631e-10! 9.71149064e-11! 5.03058255e-11! 1.13708779e-10! 2.99574088e-10! 6.39994099e-11! 1.16540000e-10! 0.00000000e+00! 0.00000000e+00! 1.07830000e-09! 0.00000000e+00! 2.05413006e-10! 9.22870044e-11! 0.00000000e+00! 4.84572160e-10! 1.76561127e-11! 1.06718263e-11! 2.27757934e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.22079999e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29569400e+02! 9.38120000e+00! 2.63020000e+00! 8.58600000e+02! 2.91450000e+02! 2.72280000e-08! 1.50630000e-07! 2.32750000e-02! 7.57760000e-11! 7.52620000e-05! 1.32160000e-02! 0.00000000e+00! 6.62499999e-10! 9.18999044e-10! 9.73344252e-11! 5.04897686e-11! 1.14192607e-10! 3.00704045e-10! 6.42435480e-11! 2.04149989e-10! 0.00000000e+00! 0.00000000e+00! 1.13269993e-09! 0.00000000e+00! 1.92882599e-10! 8.66574035e-11! 7.90000010e-11! 4.86258422e-10! 2.02608329e-11! 1.16772963e-11! 2.43974112e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.25849997e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29570100e+02! 9.37810000e+00! 2.58870000e+00! 8.58330000e+02! 2.91530000e+02! 2.74180000e-08! 1.37520000e-07! 2.31660000e-02! 1.03050000e-10! 6.48140000e-05! 1.23570000e-02! 0.00000000e+00! 7.12999992e-10! 8.52335036e-10! 8.53433574e-11! 4.04417402e-11! 8.77634979e-11! 2.38982140e-10! 5.09074033e-11! 8.92790009e-11! 0.00000000e+00! 0.00000000e+00! 1.16679999e-09! 0.00000000e+00! 1.25600697e-10! 5.64292987e-11! 0.00000000e+00! 3.94145994e-10! 1.68456187e-11! 1.03589611e-11! 2.22712057e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.76230000e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29573600e+02! 9.69160000e+00! 2.60950000e+00! 9.52350000e+02! 2.99260000e+02! 2.26550000e-08! 1.45850000e-07! 2.71720000e-02! 4.83860000e-11! 3.48160000e-05! 7.49380000e-03! 0.00000000e+00! 8.84499973e-10! 8.94692875e-10! 9.29623947e-11! 4.68261853e-11! 1.04556357e-10! 2.78199797e-10! 5.93810973e-11! 1.84200000e-09! 0.00000000e+00! 0.00000000e+00! 1.08200005e-09! 0.00000000e+00! 5.84430004e-10! 2.62569994e-10! 3.49999994e-11! 4.52673593e-10! 6.89555496e-11! 3.04743453e-11! 5.47132235e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.15000003e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29575000e+02! 9.81780000e+00! 2.63170000e+00! 9.52940000e+02! 2.99410000e+02! 2.30470000e-08! 1.53920000e-07! 2.71500000e-02! 5.98230000e-11! 3.43970000e-05! 7.22110000e-03! 0.00000000e+00! 8.36999969e-10! 9.35728606e-10! 1.00343622e-10! 5.30113557e-11! 1.20825086e-10! 3.16193349e-10! 6.75903014e-11! 7.28999971e-10! 0.00000000e+00! 0.00000000e+00! 1.10669995e-09! 0.00000000e+00! 3.65672409e-10! 1.64287597e-10! 5.09999959e-11! 5.09374376e-10! 3.58650852e-11! 1.77008217e-11! 3.41121333e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.46850004e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29575700e+02! 9.88000000e+00! 2.64310000e+00! 9.53950000e+02! 2.99360000e+02! 2.22050000e-08! 1.55020000e-07! 2.78950000e-02! 4.71820000e-11! 3.46080000e-05! 7.20500000e-03! 0.00000000e+00! 7.97500010e-10! 9.41322020e-10! 1.01349741e-10! 5.38544417e-11! 1.23042632e-10! 3.21372151e-10! 6.87092744e-11! 7.92609978e-10! 0.00000000e+00! 0.00000000e+00! 1.13830001e-09! 0.00000000e+00! 4.51846477e-10! 2.03003489e-10! 5.89999993e-11! 5.17103083e-10! 3.77562634e-11! 1.84308523e-11! 3.52895213e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.13660005e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29576400e+02! 9.94190000e+00! 2.65340000e+00! 9.54310000e+02! 2.99070000e+02! 2.19440000e-08! 1.51180000e-07! 2.77280000e-02! 6.67120000e-11! 3.76830000e-05! 8.00650000e-03! 0.00000000e+00! 7.67999997e-10! 9.21795695e-10! 9.78374812e-11! 5.09113134e-11! 1.15301373e-10! 3.03293418e-10! 6.48030379e-11! 9.06769992e-10! 0.00000000e+00! 0.00000000e+00! 1.07130005e-09! 0.00000000e+00! 4.58463600e-10! 2.05976389e-10! 0.00000000e+00! 4.90122776e-10! 4.11503435e-11! 1.97410283e-11! 3.74025672e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.31889999e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29577100e+02! 1.00040000e+01! 2.66460000e+00! 9.54490000e+02! 2.99230000e+02! 2.10320000e-08! 1.54020000e-07! 2.85370000e-02! 5.24060000e-11! 3.70400000e-05! 7.88890000e-03! 0.00000000e+00! 7.50999984e-10! 1.20449994e-09! 1.49560003e-10! 2.66399992e-11! 4.71500027e-11! 2.77170009e-10! 3.64300014e-11! 1.23180000e-09! 5.64539970e-10! 0.00000000e+00! 1.12690002e-09! 9.32499980e-11! 4.62093003e-10! 2.07607001e-10! 3.29999986e-11! 3.89349997e-10! 5.08137699e-11! 2.34712874e-11! 4.34187165e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.38000027e-12! 3.76000012e-12! 4.69999994e-12! 0.00000000e+00! 1.00200005e-11! 1.31740008e-10! 3.49799981e-11! 6.55999994e-12! 7.05499981e-12! 7.05499981e-12! 0.00000000e+00! 0.00000000e+00!
+ 2.29577800e+02! 1.00650000e+01! 2.67640000e+00! 9.52460000e+02! 2.99350000e+02! 2.11910000e-08! 1.47530000e-07! 2.76040000e-02! 5.64070000e-11! 3.92040000e-05! 8.44750000e-03! 0.00000000e+00! 7.42000017e-10! 1.20449994e-09! 1.49560003e-10! 2.66399992e-11! 4.71500027e-11! 2.77170009e-10! 3.64300014e-11! 9.94900051e-10! 5.64539970e-10! 0.00000000e+00! 1.14109999e-09! 9.32499980e-11! 4.90093188e-10! 2.20186799e-10! 3.29999986e-11! 3.89349997e-10! 4.37705254e-11! 2.07524657e-11! 3.90338144e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 4.38000027e-12! 3.76000012e-12! 4.69999994e-12! 0.00000000e+00! 1.00200005e-11! 1.34070005e-10! 3.49799981e-11! 6.55999994e-12! 7.05499981e-12! 7.05499981e-12! 0.00000000e+00! 0.00000000e+00!
+ 2.29578500e+02! 1.01250000e+01! 2.68800000e+00! 9.51520000e+02! 2.99100000e+02! 2.05700000e-08! 1.48230000e-07! 2.79590000e-02! 5.14850000e-11! 3.53570000e-05! 7.60170000e-03! 0.00000000e+00! 7.38499983e-10! 9.06795083e-10! 9.51392645e-11! 4.86503129e-11! 1.09354324e-10! 2.89404833e-10! 6.18021537e-11! 1.18380006e-09! 0.00000000e+00! 0.00000000e+00! 1.09200005e-09! 0.00000000e+00! 5.63902480e-10! 2.53347482e-10! 3.29999986e-11! 4.69395744e-10! 4.93866892e-11! 2.29204086e-11! 4.25302571e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.35360001e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29580600e+02! 1.03080000e+01! 2.72090000e+00! 9.50120000e+02! 2.98830000e+02! 2.10080000e-08! 1.43840000e-07! 2.80630000e-02! 9.88010000e-11! 2.98790000e-05! 6.44530000e-03! 0.00000000e+00! 6.84500012e-10! 8.84472051e-10! 9.11239556e-11! 4.52856398e-11! 1.00504299e-10! 2.68736727e-10! 5.73364203e-11! 1.07080000e-09! 0.00000000e+00! 0.00000000e+00! 1.12380005e-09! 0.00000000e+00! 4.94867980e-10! 2.22332000e-10! 4.50000003e-11! 4.38551057e-10! 4.60270988e-11! 2.16235467e-11! 4.04386871e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.21970004e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29581300e+02! 1.03700000e+01! 2.73320000e+00! 9.49360000e+02! 2.97730000e+02! 2.20290000e-08! 1.42500000e-07! 2.71630000e-02! 8.51470000e-11! 3.82440000e-05! 8.54750000e-03! 0.00000000e+00! 6.25999974e-10! 8.77658224e-10! 8.98983249e-11! 4.42586141e-11! 9.78029324e-11! 2.62427968e-10! 5.59733093e-11! 5.32559996e-10! 0.00000000e+00! 0.00000000e+00! 1.13430010e-09! 0.00000000e+00! 3.26142308e-10! 1.46527707e-10! 3.99999964e-11! 4.29136088e-10! 3.00247535e-11! 1.54463456e-11! 3.04761216e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.32699990e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29581900e+02! 1.04320000e+01! 2.73230000e+00! 9.51920000e+02! 2.97040000e+02! 2.42350000e-08! 1.33820000e-07! 2.65650000e-02! 1.09540000e-10! 3.26800000e-05! 7.37710000e-03! 0.00000000e+00! 5.68500025e-10! 1.03249997e-09! 1.16839996e-10! 2.19099999e-11! 3.54399982e-11! 1.69699990e-10! 2.33799993e-11! 2.72149997e-10! 8.40500003e-10! 0.00000000e+00! 1.03849995e-09! 1.02300002e-10! 2.66498712e-10! 1.19731294e-10! 0.00000000e+00! 2.93309987e-10! 2.22825352e-11! 1.24577093e-11! 2.56560589e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.72999982e-12! 2.36999981e-12! 3.35999978e-12! 0.00000000e+00! 5.84999974e-12! 9.14590001e-11! 2.24500002e-11! 5.03000029e-12! 4.69000012e-12! 4.69000012e-12! 0.00000000e+00! 0.00000000e+00!
+ 2.29582600e+02! 1.04930000e+01! 2.71510000e+00! 9.51840000e+02! 2.97150000e+02! 2.61800000e-08! 1.29600000e-07! 2.55800000e-02! 9.02560000e-11! 2.59690000e-05! 5.83850000e-03! 0.00000000e+00! 5.27499988e-10! 1.03249997e-09! 1.16839996e-10! 2.19099999e-11! 3.54399982e-11! 1.69699990e-10! 2.33799993e-11! 1.33660000e-10! 8.40500003e-10! 0.00000000e+00! 1.02909992e-09! 1.02300002e-10! 1.54173591e-10! 6.92663982e-11! 4.89999985e-11! 2.93309987e-10! 1.81651066e-11! 1.08683071e-11! 2.30926753e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.72999982e-12! 2.36999981e-12! 3.35999978e-12! 0.00000000e+00! 5.84999974e-12! 8.38690020e-11! 2.24500002e-11! 5.03000029e-12! 4.69000012e-12! 4.69000012e-12! 0.00000000e+00! 0.00000000e+00!
+ 2.29583300e+02! 1.05550000e+01! 2.70220000e+00! 9.51970000e+02! 2.97160000e+02! 2.61450000e-08! 1.26070000e-07! 2.56250000e-02! 8.77490000e-11! 2.50600000e-05! 5.37220000e-03! 0.00000000e+00! 5.14999987e-10! 7.94112109e-10! 7.48706236e-11! 3.16660032e-11! 6.46808718e-11! 1.85075552e-10! 3.92598905e-11! 1.40699993e-10! 0.00000000e+00! 0.00000000e+00! 1.09990006e-09! 0.00000000e+00! 1.50875396e-10! 6.77845974e-11! 0.00000000e+00! 3.13696902e-10! 1.83744114e-11! 1.09491027e-11! 2.32229826e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 7.11799994e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29584000e+02! 1.06180000e+01! 2.68980000e+00! 9.51320000e+02! 2.97280000e+02! 2.56690000e-08! 1.24930000e-07! 2.54100000e-02! 5.80700000e-11! 2.72070000e-05! 5.98440000e-03! 0.00000000e+00! 5.32999977e-10! 7.88315246e-10! 7.38279160e-11! 3.07922646e-11! 6.23826893e-11! 1.79708415e-10! 3.81002244e-11! 1.61919991e-10! 0.00000000e+00! 0.00000000e+00! 1.05019993e-09! 0.00000000e+00! 1.91109295e-10! 8.58607005e-11! 2.89999986e-11! 3.05687142e-10! 1.90053008e-11! 1.11926371e-11! 2.36157552e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 5.64920020e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29584700e+02! 1.06810000e+01! 2.67870000e+00! 9.52700000e+02! 2.97490000e+02! 2.31470000e-08! 1.31680000e-07! 2.79010000e-02! 3.71170000e-11! 3.03510000e-05! 6.70020000e-03! 0.00000000e+00! 5.62999980e-10! 8.22638790e-10! 8.00018107e-11! 3.59657339e-11! 7.59903460e-11! 2.11487425e-10! 4.49666623e-11! 8.03880018e-10! 0.00000000e+00! 0.00000000e+00! 1.07119991e-09! 0.00000000e+00! 3.77857773e-10! 1.69762190e-10! 0.00000000e+00! 3.53113427e-10! 3.80913322e-11! 1.85601950e-11! 3.54981218e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 6.98119965e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29588900e+02! 1.10640000e+01! 2.61870000e+00! 9.55920000e+02! 2.99560000e+02! 2.33860000e-08! 1.29480000e-07! 2.75310000e-02! 4.49750000e-11! 3.43470000e-05! 7.96640000e-03! 0.00000000e+00! 5.43500023e-10! 8.11451906e-10! 7.79895801e-11! 3.42795653e-11! 7.15552617e-11! 2.01129821e-10! 4.27287129e-11! 1.18869992e-09! 0.00000000e+00! 0.00000000e+00! 1.01459996e-09! 0.00000000e+00! 2.84583579e-10! 1.27856392e-10! 0.00000000e+00! 3.37655987e-10! 4.95323678e-11! 2.29766432e-11! 4.26209554e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.09670048e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29589600e+02! 1.11290000e+01! 2.62030000e+00! 9.59410000e+02! 2.99550000e+02! 2.20190000e-08! 1.34630000e-07! 2.92170000e-02! 3.95050000e-11! 3.33920000e-05! 7.82080000e-03! 0.00000000e+00! 5.69500003e-10! 8.37639458e-10! 8.27000274e-11! 3.82267308e-11! 8.19374013e-11! 2.25376023e-10! 4.79675466e-11! 1.22440003e-09! 0.00000000e+00! 0.00000000e+00! 1.14919996e-09! 0.00000000e+00! 3.73690190e-10! 1.67889799e-10! 4.59999989e-11! 3.73840514e-10! 5.05937618e-11! 2.33863606e-11! 4.32817462e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 8.52080004e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29590300e+02! 1.11940000e+01! 2.62270000e+00! 9.61940000e+02! 3.00020000e+02! 2.12840000e-08! 1.38580000e-07! 3.00910000e-02! 4.21320000e-11! 2.66580000e-05! 6.08840000e-03! 0.00000000e+00! 6.15999973e-10! 8.57725113e-10! 8.63128874e-11! 4.12541702e-11! 8.99004066e-11! 2.43972620e-10! 5.19856866e-11! 1.12440002e-09! 0.00000000e+00! 0.00000000e+00! 1.17429999e-09! 0.00000000e+00! 3.95245781e-10! 1.77574191e-10! 0.00000000e+00! 4.01593675e-10! 4.76206748e-11! 2.22386935e-11! 4.14307928e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.99020033e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29591000e+02! 1.12590000e+01! 2.62410000e+00! 9.62330000e+02! 3.00380000e+02! 2.10690000e-08! 1.41140000e-07! 2.91370000e-02! 4.71030000e-11! 2.17940000e-05! 5.24790000e-03! 0.00000000e+00! 6.59500010e-10! 8.70742589e-10! 8.86543963e-11! 4.32162535e-11! 9.50612436e-11! 2.56025118e-10! 5.45898465e-11! 4.23030000e-10! 0.00000000e+00! 0.00000000e+00! 1.08459997e-09! 0.00000000e+00! 3.49208995e-10! 1.56891000e-10! 5.00000007e-11! 4.19580537e-10! 2.67683289e-11! 1.41893077e-11! 2.84487746e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.35130004e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29591700e+02! 1.13220000e+01! 2.62380000e+00! 9.61840000e+02! 3.00430000e+02! 2.16890000e-08! 1.37800000e-07! 2.88070000e-02! 4.52110000e-11! 2.43160000e-05! 5.88190000e-03! 0.00000000e+00! 6.75000000e-10! 1.03219999e-09! 1.12790000e-10! 2.04599983e-11! 3.01699984e-11! 1.41529996e-10! 1.51799996e-11! 4.87969998e-10! 8.35299996e-10! 0.00000000e+00! 1.13800003e-09! 8.80700027e-11! 3.21360577e-10! 1.44379397e-10! 5.79999972e-11! 2.75500012e-10! 2.86990536e-11! 1.49346022e-11! 2.96507818e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.64000019e-12! 1.72000001e-12! 4.59000025e-12! 0.00000000e+00! 7.21999977e-12! 1.61510000e-10! 2.00400009e-11! 4.40999971e-12! 7.28499986e-12! 7.28499986e-12! 0.00000000e+00! 0.00000000e+00!
+ 2.29592400e+02! 1.13850000e+01! 2.62420000e+00! 9.61170000e+02! 3.00310000e+02! 2.13870000e-08! 1.35720000e-07! 2.93350000e-02! 5.59510000e-11! 3.12190000e-05! 7.50780000e-03! 0.00000000e+00! 6.61500021e-10! 1.03219999e-09! 1.12790000e-10! 2.04599983e-11! 3.01699984e-11! 1.41529996e-10! 1.51799996e-11! 4.60280009e-10! 8.35299996e-10! 0.00000000e+00! 1.18490007e-09! 8.80700027e-11! 3.70799086e-10! 1.66590894e-10! 0.00000000e+00! 2.75500012e-10! 2.78758041e-11! 1.46168130e-11! 2.91382543e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.64000019e-12! 1.72000001e-12! 4.59000025e-12! 0.00000000e+00! 7.21999977e-12! 1.15620000e-10! 2.00400009e-11! 4.40999971e-12! 7.28499986e-12! 7.28499986e-12! 0.00000000e+00! 0.00000000e+00!
+ 2.29593100e+02! 1.14480000e+01! 2.62430000e+00! 9.61550000e+02! 3.00290000e+02! 2.19530000e-08! 1.29810000e-07! 2.83860000e-02! 6.39980000e-11! 3.19250000e-05! 7.70830000e-03! 0.00000000e+00! 6.39000020e-10! 8.13129952e-10! 7.82914150e-11! 3.45324880e-11! 7.22205282e-11! 2.02683467e-10! 4.30644027e-11! 4.29540015e-10! 0.00000000e+00! 0.00000000e+00! 1.08130005e-09! 0.00000000e+00! 3.20015098e-10! 1.43774895e-10! 4.29999994e-11! 3.39974604e-10! 2.69618772e-11! 1.42640205e-11! 2.85692702e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 1.33869998e-10! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29593800e+02! 1.15100000e+01! 2.62480000e+00! 9.61230000e+02! 3.00270000e+02! 2.07840000e-08! 1.32300000e-07! 2.98220000e-02! 1.00620000e-10! 3.15090000e-05! 7.68160000e-03! 0.00000000e+00! 6.20499985e-10! 8.25791491e-10! 8.05688918e-11! 3.64409267e-11! 7.72402420e-11! 2.14406382e-10! 4.55973592e-11! 5.88919968e-10! 0.00000000e+00! 0.00000000e+00! 1.08319997e-09! 0.00000000e+00! 4.06644607e-10! 1.82695400e-10! 4.69999976e-11! 3.57469637e-10! 3.17003854e-11! 1.60931702e-11! 3.15193184e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 8.55569990e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29601400e+02! 1.22230000e+01! 2.62080000e+00! 9.61950000e+02! 3.02020000e+02! 2.15410000e-08! 1.22750000e-07! 2.88290000e-02! 9.97350000e-11! 2.73990000e-05! 7.07270000e-03! 0.00000000e+00! 5.65499980e-10! 7.77230058e-10! 7.18339832e-11! 2.91214240e-11! 5.79879200e-11! 1.69444986e-10! 3.58826233e-11! 4.08260009e-10! 0.00000000e+00! 0.00000000e+00! 1.19330001e-09! 0.00000000e+00! 2.51104804e-10! 1.12815202e-10! 1.79999991e-11! 2.90370172e-10! 2.63292044e-11! 1.40197983e-11! 2.81753908e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 8.75569964e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29602100e+02! 1.22880000e+01! 2.62100000e+00! 9.62360000e+02! 3.02110000e+02! 2.09460000e-08! 1.24940000e-07! 2.91900000e-02! 1.06960000e-10! 2.52450000e-05! 6.75670000e-03! 0.00000000e+00! 5.77999981e-10! 7.88366150e-10! 7.38370684e-11! 3.07999251e-11! 6.24028468e-11! 1.79755502e-10! 3.81103968e-11! 3.06870002e-10! 0.00000000e+00! 0.00000000e+00! 1.11269993e-09! 0.00000000e+00! 2.17833002e-10! 9.78669992e-11! 1.79999991e-11! 3.05757392e-10! 2.33147911e-11! 1.28561788e-11! 2.62987097e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 9.37539976e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29602800e+02! 1.23530000e+01! 2.62120000e+00! 9.61730000e+02! 3.02120000e+02! 2.14240000e-08! 1.25020000e-07! 2.89290000e-02! 1.08070000e-10! 2.48750000e-05! 6.46780000e-03! 0.00000000e+00! 6.00999972e-10! 7.88772936e-10! 7.39102390e-11! 3.08612406e-11! 6.25641275e-11! 1.80132145e-10! 3.81917761e-11! 1.28720007e-10! 0.00000000e+00! 0.00000000e+00! 1.21630006e-09! 0.00000000e+00! 1.64309705e-10! 7.38202971e-11! 2.59999990e-11! 3.06319498e-10! 1.80182345e-11! 1.08116120e-11! 2.30012398e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 8.06230013e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29603500e+02! 1.24180000e+01! 2.61900000e+00! 9.62940000e+02! 3.02440000e+02! 2.21450000e-08! 1.23740000e-07! 2.85550000e-02! 1.17740000e-10! 2.26070000e-05! 5.91860000e-03! 0.00000000e+00! 6.28499974e-10! 7.82264142e-10! 7.27394880e-11! 2.98801990e-11! 5.99837055e-11! 1.74105910e-10! 3.68896962e-11! 2.05610001e-10! 0.00000000e+00! 0.00000000e+00! 1.23019994e-09! 0.00000000e+00! 1.36751097e-10! 6.14388956e-11! 0.00000000e+00! 2.97326053e-10! 2.03042409e-11! 1.16940528e-11! 2.44244364e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 6.65559968e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
+ 2.29604200e+02! 1.24820000e+01! 2.61700000e+00! 9.61080000e+02! 3.02460000e+02! 2.39180000e-08! 1.21370000e-07! 2.83610000e-02! 1.14580000e-10! 2.20220000e-05! 5.67020000e-03! 0.00000000e+00! 6.59999999e-10! 7.70212782e-10! 7.05717637e-11! 2.80637354e-11! 5.52059058e-11! 1.62947947e-10! 3.44788156e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 3.59999981e-11! 2.80674123e-10! 1.41912766e-11! 9.33433626e-12! 2.06186943e-11! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00! 0.00000000e+00!
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/Makefile_saprc_f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/Makefile_saprc_f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/Makefile_saprc_f90	(revision 2696)
@@ -0,0 +1,178 @@
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+# User: Set here the F90 compiler and options
+#       Pedefined compilers: INTEL, PGF, HPUX, LAHEY
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+#COMPILER = G95
+#COMPILER = LAHEY
+COMPILER = INTEL
+#COMPILER = PGF
+#COMPILER = HPUX
+#COMPILER = GFORTRAN
+
+FC_G95     = g95
+FOPT_G95   = -cpp -O -pg -fbounds-check -fimplicit-none  -Wall -ftrace=full
+
+FC_LAHEY   = lf95
+# More aggressive for production runs:
+#FOPT_LAHEY = -Cpp --pca -O
+# More checking for debugging:
+FOPT_LAHEY = -Cpp --chk a,e,s,u --pca --ap -O0 -g --trap --trace --chkglobal
+
+FC_INTEL   = ifort 
+# More aggressive for production runs:
+FOPT_INTEL = -cpp -O -fp-model precise -pc80 -prec_div
+# More checking for debugging:
+#FOPT_INTEL = -cpp -O0 -fp-model strict -implicitnone -ftrapuv \
+#              -debug all -check all -warn all
+
+FC_PGF     = pgf90
+# More aggressive for production runs:
+FOPT_PGF   = -Mpreprocess -O -fast -pc 80 -Kieee
+# More checking for debugging:
+#FOPT_PGF   = -Mpreprocess -O0 -Mbounds -Mchkfpstk -Mchkptr -Mchkstk \
+#             -Ktrap=fp -pc 80 -Kieee
+
+FC_HPUX    = f90
+FOPT_HPUX  = -O -u +Oall +check=on
+
+FC_GFORTRAN     = gfortran
+FOPT_GFORTRAN   = -cpp -O
+
+# define FULL_ALGEBRA for non-sparse integration
+FC   = $(FC_$(COMPILER))
+FOPT = $(FOPT_$(COMPILER)) # -DFULL_ALGEBRA
+
+LIBS =
+#LIBS = -llapack -lblas
+
+# Command to create Matlab mex gateway routines 
+# Note: use $(FC) as the mex Fortran compiler
+MEX  = mex
+
+GENSRC = saprc_f90_Precision.f90  \
+	 saprc_f90_Parameters.f90     \
+	 saprc_f90_Global.f90  
+
+GENOBJ = saprc_f90_Precision.o    \
+	 saprc_f90_Parameters.o       \
+	 saprc_f90_Global.o     
+
+FUNSRC = saprc_f90_Function.f90 
+FUNOBJ = saprc_f90_Function.o 
+
+JACSRC = saprc_f90_JacobianSP.f90  saprc_f90_Jacobian.f90
+JACOBJ = saprc_f90_JacobianSP.o    saprc_f90_Jacobian.o
+
+HESSRC = saprc_f90_HessianSP.f90   saprc_f90_Hessian.f90
+HESOBJ = saprc_f90_HessianSP.o     saprc_f90_Hessian.o
+
+STMSRC = saprc_f90_StoichiomSP.f90 saprc_f90_Stoichiom.f90 
+STMOBJ = saprc_f90_StoichiomSP.o   saprc_f90_Stoichiom.o
+
+UTLSRC = saprc_f90_Rates.f90 saprc_f90_Util.f90 saprc_f90_Monitor.f90
+UTLOBJ = saprc_f90_Rates.o   saprc_f90_Util.o   saprc_f90_Monitor.o
+
+LASRC  = saprc_f90_LinearAlgebra.f90 
+LAOBJ  = saprc_f90_LinearAlgebra.o   
+
+STOCHSRC = saprc_f90_Stochastic.f90 
+STOCHOBJ = saprc_f90_Stochastic.o 
+
+MAINSRC = saprc_f90_Main.f90   saprc_f90_Initialize.f90   saprc_f90_Integrator.f90 saprc_f90_Model.f90
+MAINOBJ = saprc_f90_Main.o     saprc_f90_Initialize.o     saprc_f90_Integrator.o   saprc_f90_Model.o 
+
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+# User: modify the line below to include only the
+#       objects needed by your application
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ALLOBJ = $(GENOBJ) $(FUNOBJ) $(JACOBJ) $(HESOBJ) $(STMOBJ) \
+	 $(UTLOBJ) $(LAOBJ)
+
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+# User: modify the line below to include only the
+#       executables needed by your application
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+all:    exe
+
+exe:	$(ALLOBJ) $(MAINOBJ) 
+	$(FC) $(FOPT) $(ALLOBJ) $(MAINOBJ) $(LIBS) -o saprc_f90.exe
+
+stochastic:$(ALLOBJ) $(STOCHOBJ) $(MAINOBJ)
+	$(FC) $(FOPT) $(ALLOBJ) $(STOCHOBJ) $(MAINOBJ) $(LIBS) \
+	-o saprc_f90_stochastic.exe
+
+mex:    $(ALLOBJ)
+	$(MEX) FC#$(FC) -fortran -O saprc_f90_mex_Fun.f90     $(ALLOBJ)
+	$(MEX) FC#$(FC) -fortran -O saprc_f90_mex_Jac_SP.f90  $(ALLOBJ)
+	$(MEX) FC#$(FC) -fortran -O saprc_f90_mex_Hessian.f90 $(ALLOBJ)
+
+clean:
+	rm -f saprc_f90*.o saprc_f90*.mod \
+	saprc_f90*.dat saprc_f90.exe saprc_f90*.mexglx \
+	saprc_f90.map
+
+distclean:
+	rm -f saprc_f90*.o saprc_f90*.mod \
+	saprc_f90*.dat saprc_f90.exe saprc_f90.map \
+	saprc_f90*.f90 saprc_f90_*.mexglx
+
+saprc_f90_Precision.o: saprc_f90_Precision.f90 
+	$(FC) $(FOPT) -c $<
+
+saprc_f90_Parameters.o: saprc_f90_Parameters.f90 \
+	            saprc_f90_Precision.o
+	$(FC) $(FOPT) -c $<
+
+saprc_f90_Monitor.o: saprc_f90_Monitor.f90 \
+	             saprc_f90_Precision.o
+	$(FC) $(FOPT) -c $<
+
+saprc_f90_Global.o: saprc_f90_Global.f90 \
+	            saprc_f90_Parameters.o saprc_f90_Precision.o
+	$(FC) $(FOPT) -c $<
+
+saprc_f90_Initialize.o: saprc_f90_Initialize.f90  $(GENOBJ) 
+	$(FC) $(FOPT) -c $<
+
+saprc_f90_Function.o: saprc_f90_Function.f90  $(GENOBJ) 
+	$(FC) $(FOPT) -c $<
+
+saprc_f90_Stochastic.o: saprc_f90_Stochastic.f90  $(GENOBJ) 
+	$(FC) $(FOPT) -c $<
+
+saprc_f90_JacobianSP.o: saprc_f90_JacobianSP.f90 $(GENOBJ)
+	$(FC) $(FOPT) -c $<
+
+saprc_f90_Jacobian.o: saprc_f90_Jacobian.f90  $(GENOBJ) saprc_f90_JacobianSP.o
+	$(FC) $(FOPT) -c $<
+
+saprc_f90_LinearAlgebra.o: saprc_f90_LinearAlgebra.f90 $(GENOBJ) saprc_f90_JacobianSP.o
+	$(FC) $(FOPT) -c $<
+
+saprc_f90_Rates.o: saprc_f90_Rates.f90  $(GENOBJ) 
+	$(FC) $(FOPT) -c $<
+
+saprc_f90_HessianSP.o: saprc_f90_HessianSP.f90  $(GENOBJ)
+	$(FC) $(FOPT) -c $<
+
+saprc_f90_Hessian.o:  saprc_f90_Hessian.f90 $(GENOBJ) saprc_f90_HessianSP.o
+	$(FC) $(FOPT) -c $<
+
+saprc_f90_StoichiomSP.o: saprc_f90_StoichiomSP.f90 $(GENOBJ)
+	$(FC) $(FOPT) -c $<
+
+saprc_f90_Stoichiom.o: saprc_f90_Stoichiom.f90  $(GENOBJ) saprc_f90_StoichiomSP.o
+	$(FC) $(FOPT) -c $<
+
+saprc_f90_Util.o: saprc_f90_Util.f90  $(GENOBJ) saprc_f90_Monitor.o
+	$(FC) $(FOPT) -c $<
+
+saprc_f90_Main.o: saprc_f90_Main.f90  $(ALLOBJ) saprc_f90_Initialize.o saprc_f90_Model.o saprc_f90_Integrator.o
+	$(FC) $(FOPT) -c $<
+
+saprc_f90_Model.o: saprc_f90_Model.f90  $(ALLOBJ) saprc_f90_Integrator.o
+	$(FC) $(FOPT) -c $<
+
+saprc_f90_Integrator.o: saprc_f90_Integrator.f90  $(ALLOBJ)
+	$(FC) $(FOPT) -c $<
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/Small.kpp
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/Small.kpp	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/Small.kpp	(revision 2696)
@@ -0,0 +1,6 @@
+#MODEL      small_strato 
+#INTEGRATOR rosenbrock_soa 
+#LANGUAGE   Fortran90 
+#DRIVER     general_soa_check
+#HESSIAN    on
+#STOICMAT   on
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/Test.kpp
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/Test.kpp	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/Test.kpp	(revision 2696)
@@ -0,0 +1,6 @@
+#MODEL      saprcnov 
+#INTEGRATOR rosenbrock_soa 
+#LANGUAGE   Fortran90 
+#DRIVER     general_soa_check
+#HESSIAN    on
+#STOICMAT   on
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/aaa.kpp
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/aaa.kpp	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/aaa.kpp	(revision 2696)
@@ -0,0 +1,6 @@
+#MODEL      saprcnov 
+#INTEGRATOR rosenbrock_soa 
+#LANGUAGE   Fortran90 
+#DRIVER     general_soa_check
+#HESSIAN    on
+#STOICMAT   on
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/box.kpp
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/box.kpp	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/box.kpp	(revision 2696)
@@ -0,0 +1,6 @@
+#MODEL      saprc99
+#INTEGRATOR rosenbrock 
+#LANGUAGE   C 
+#DRIVER     general 
+#HESSIAN    off
+#STOICMAT   off
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/cell.kpp
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/cell.kpp	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/cell.kpp	(revision 2696)
@@ -0,0 +1,6 @@
+#MODEL      cell_cycle 
+#INTEGRATOR gillespie
+#LANGUAGE   Matlab
+#DRIVER     general_stochastic
+#STOCHASTIC on
+#STOICMAT   on
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/dsdrv6.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/dsdrv6.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/dsdrv6.f	(revision 2696)
@@ -0,0 +1,495 @@
+      program dsdrv6 
+c
+c     Program to illustrate the idea of reverse communication
+c     in Cayley mode for a generalized symmetric eigenvalue 
+c     problem.  The following program uses the two LAPACK subroutines 
+c     dgttrf.f and dgttrs.f to factor and solve a tridiagonal system of 
+c     equations.
+c
+c     We implement example six of ex-sym.doc in DOCUMENTS directory
+c
+c\Example-6
+c     ... Suppose we want to solve A*x = lambda*M*x in inverse mode,
+c         where A and M are obtained by the finite element of the
+c         1-dimensional discrete Laplacian
+c                             d^2u / dx^2
+c         on the interval [0,1] with zero Dirichlet boundary condition
+c         using piecewise linear elements.
+c
+c     ... OP = (inv[A-sigma*M])*(A+sigma*M)  and  B = M.
+c
+c     ... Use mode 5 of DSAUPD.
+c
+c\BeginLib
+c
+c\References:
+c  1. R.G. Grimes, J.G. Lewis and H.D. Simon, "A Shifted Block Lanczos 
+c     Algorithm for Solving Sparse Symmetric Generalized Eigenproblems", 
+c     SIAM J. Matr. Anal. Apps.,  January (1993).
+c
+c\Routines called:
+c     dsaupd  ARPACK reverse communication interface routine.
+c     dseupd  ARPACK routine that returns Ritz values and (optionally)
+c             Ritz vectors.
+c     dgttrf  LAPACK tridiagonal factorization routine.
+c     dgttrs  LAPACK tridiagonal solve routine.
+c     daxpy   Level 1 BLAS that computes y <- alpha*x+y.
+c     dcopy   Level 1 BLAS that copies one vector to another.
+c     dscal   Level 1 BLAS that scales a vector by a scalar.
+c     dnrm2   Level 1 BLAS that computes the norm of a vector. 
+c     av      Matrix vector multiplication routine that computes A*x.
+c     mv      Matrix vector multiplication routine that computes M*x.
+c
+c\Author
+c     Danny Sorensen
+c     Richard Lehoucq
+c     Chao Yang
+c     Dept. of Computational &
+c     Applied Mathematics
+c     Rice University 
+c     Houston, Texas 
+c 
+c\SCCS Information: @(#)
+c FILE: sdrv6.F   SID: 2.5   DATE OF SID: 10/17/00   RELEASE: 2
+c
+c\Remarks
+c     1. None
+c
+c\EndLib
+c------------------------------------------------------------------------
+c
+c     %-----------------------------%
+c     | Define leading dimensions   |
+c     | for all arrays.             |
+c     | MAXN:   Maximum dimension   |
+c     |         of the A allowed.   |
+c     | MAXNEV: Maximum NEV allowed |
+c     | MAXNCV: Maximum NCV allowed |
+c     %-----------------------------%
+c
+      integer          maxn, maxnev, maxncv, ldv
+      parameter        (maxn=256, maxnev=10, maxncv=25, 
+     &                 ldv=maxn)
+c
+c     %--------------%
+c     | Local Arrays |
+c     %--------------%
+c
+      Double precision
+     &                 v(ldv,maxncv), workl(maxncv*(maxncv+8)),
+     &                 workd(3*maxn), d(maxncv,2), resid(maxn), 
+     &                 ad(maxn), adl(maxn), adu(maxn), adu2(maxn),
+     &                 temp(maxn), ax(maxn), mx(maxn)
+      logical          select(maxncv)
+      integer          iparam(11), ipntr(11), ipiv(maxn)
+c
+c     %---------------%
+c     | Local Scalars |
+c     %---------------%
+c
+      character        bmat*1, which*2
+      integer          ido, n, nev, ncv, lworkl, info, j, ierr,
+     &                 nconv, maxitr, ishfts, mode
+      logical          rvec
+      Double precision
+     &                 sigma, r1, r2, tol, h
+c
+c     %------------%
+c     | Parameters |
+c     %------------%
+c
+      Double precision
+     &                 zero, one, two, four, six
+      parameter        (zero = 0.0D+0, one = 1.0D+0, 
+     &                  four = 4.0D+0, six = 6.0D+0,
+     &                  two = 2.0D+0 ) 
+c
+c     %-----------------------------%
+c     | BLAS & LAPACK routines used |
+c     %-----------------------------%
+c
+      Double precision
+     &                 dnrm2
+      external         daxpy, dcopy, dscal, dnrm2, dgttrf, dgttrs
+c
+c     %--------------------%
+c     | Intrinsic function |
+c     %--------------------%
+c
+      intrinsic        abs
+c
+c     %-----------------------%
+c     | Executable statements |
+c     %-----------------------%
+c
+c     %--------------------------------------------------%
+c     | The number N is the dimension of the matrix. A   |
+c     | generalized eigenvalue problem is solved (BMAT = |
+c     | 'G'.) NEV is the number of eigenvalues to be     |
+c     | approximated.  Since the Cayley mode is used,    |
+c     | WHICH is set to 'LM'.  The user can modify NEV,  |
+c     | NCV, SIGMA to solve problems of different sizes, |
+c     | and to get different parts of the spectrum.      |
+c     | However, The following conditions must be        |
+c     | satisfied:                                       |
+c     |                 N <= MAXN,                       | 
+c     |               NEV <= MAXNEV,                     |
+c     |           NEV + 1 <= NCV <= MAXNCV               | 
+c     %--------------------------------------------------%
+c
+      n = 100
+      nev = 4
+      ncv = 20
+      if ( n .gt. maxn ) then
+         print *, ' ERROR with _SDRV6: N is greater than MAXN '
+         go to 9000
+      else if ( nev .gt. maxnev ) then
+         print *, ' ERROR with _SDRV6: NEV is greater than MAXNEV '
+         go to 9000
+      else if ( ncv .gt. maxncv ) then
+         print *, ' ERROR with _SDRV6: NCV is greater than MAXNCV '
+         go to 9000
+      end if
+      bmat = 'G'
+      which = 'LM'
+      sigma = 1.5D+2
+c
+c     %--------------------------------------------------%
+c     | The work array WORKL is used in DSAUPD as        |
+c     | workspace.  Its dimension LWORKL is set as       |
+c     | illustrated below.  The parameter TOL determines |
+c     | the stopping criterion.  If TOL<=0, machine      |
+c     | precision is used.  The variable IDO is used for |
+c     | reverse communication and is initially set to 0. |
+c     | Setting INFO=0 indicates that a random vector is |
+c     | generated in DSAUPD to start the Arnoldi         |
+c     | iteration.                                       |
+c     %--------------------------------------------------%
+c
+      lworkl = ncv*(ncv+8)
+      tol = zero
+      ido = 0
+      info = 0
+c
+c     %---------------------------------------------------%
+c     | This program uses exact shifts with respect to    |
+c     | the current Hessenberg matrix (IPARAM(1) = 1).    |
+c     | IPARAM(3) specifies the maximum number of Arnoldi |
+c     | iterations allowed.  Mode 5 specified in the      |
+c     | documentation of DSAUPD is used (IPARAM(7) = 5).  |
+c     | All these options may be changed by the user. For |
+c     | details, see the documentation in DSAUPD.         |
+c     %---------------------------------------------------%
+c
+      ishfts = 1
+      maxitr = 300
+      mode   = 5
+c
+      iparam(1) = ishfts
+      iparam(3) = maxitr 
+      iparam(7) = mode 
+c
+c     %------------------------------------------------------%
+c     | Call LAPACK routine to factor (A-sigma*M).  The      |
+c     | stiffness matrix A is the 1-d discrete Laplacian.    |
+c     | The mass matrix M is the associated mass matrix      |
+c     | arising from using piecewise linear finite elements  |
+c     | on the interval [0, 1].                              |
+c     %------------------------------------------------------%
+c
+      h = one / dble(n+1)
+      r1 = (four / six) * h
+      r2 = (one / six) * h
+      do 20 j=1,n
+         ad(j) = two / h - sigma * r1
+         adl(j) = -one / h - sigma * r2
+ 20   continue 
+      call dcopy (n, adl, 1, adu, 1)
+      call dgttrf (n, adl, ad, adu, adu2, ipiv, ierr)
+      if (ierr .ne. 0) then 
+         print *, ' '
+         print *, ' Error with _gttrf in _SDRV6.'
+         print *, ' '
+         go to 9000
+      end if
+c
+c     %-------------------------------------------%
+c     | M A I N   L O O P (Reverse communication) |
+c     %-------------------------------------------%
+c
+ 10   continue
+c
+c        %---------------------------------------------%
+c        | Repeatedly call the routine DSAUPD and take |
+c        | actions indicated by parameter IDO until    |
+c        | either convergence is indicated or maxitr   |
+c        | has been exceeded.                          |
+c        %---------------------------------------------%
+c
+         call dsaupd ( ido, bmat, n, which, nev, tol, resid, ncv, 
+     &                 v, ldv, iparam, ipntr, workd, workl, lworkl, 
+     &                 info )
+c
+         if (ido .eq. -1) then
+c
+c           %-------------------------------------------------------%
+c           | Perform  y <--- OP*x = (inv[A-SIGMA*M])*(A+SIGMA*M)*x |
+c           | to force starting vector into the range of OP.  The   |
+c           | user should provide his/her matrix vector (A*x, M*x)  |
+c           | multiplication routines and a linear system solver    |
+c           | here.  The matrix vector multiplication routine takes |
+c           | workd(ipntr(1)) as the input vector.  The final       |
+c           | result is returned to workd(ipntr(2)).                | 
+c           %-------------------------------------------------------%
+c
+            call av (n, workd(ipntr(1)), workd(ipntr(2)))
+            call mv (n, workd(ipntr(1)), temp)
+            call daxpy(n, sigma, temp, 1, workd(ipntr(2)), 1) 
+c
+            call dgttrs ('Notranspose', n, 1, adl, ad, adu, adu2, ipiv, 
+     &                workd(ipntr(2)), n, ierr)
+            if (ierr .ne. 0) then 
+               print *, ' '
+               print *, ' Error with _gttrs in _SDRV6.'
+               print *, ' ' 
+               go to 9000
+            end if
+c
+c           %-----------------------------------------%
+c           | L O O P   B A C K to call DSAUPD again. |
+c           %-----------------------------------------%
+c
+            go to 10
+c
+         else if (ido .eq. 1) then
+c
+c           %----------------------------------------------------%
+c           | Perform y <-- OP*x = inv[A-SIGMA*M]*(A+SIGMA*M)*x. |
+c           | M*x has been saved in workd(ipntr(3)).  The user   |
+c           | need the matrix vector multiplication (A*x)        |
+c           | routine and a linear system solver here.  The      |
+c           | matrix vector multiplication routine takes         |
+c           | workd(ipntr(1)) as the input, and the result is    |
+c           | combined with workd(ipntr(3)) to form the input    |
+c           | for the linear system solver.  The final result is |
+c           | returned to workd(ipntr(2)).                       | 
+c           %----------------------------------------------------%
+c
+            call av (n, workd(ipntr(1)), workd(ipntr(2)))
+            call daxpy(n, sigma, workd(ipntr(3)), 1, workd(ipntr(2)), 1)
+            call dgttrs ('Notranspose', n, 1, adl, ad, adu, adu2, ipiv, 
+     &                   workd(ipntr(2)), n, ierr)
+            if (ierr .ne. 0) then 
+               print *, ' ' 
+               print *, ' Error with _gttrs in _SDRV6. '
+               print *, ' '
+               go to 9000
+            end if
+c
+c           %-----------------------------------------%
+c           | L O O P   B A C K to call DSAUPD again. |
+c           %-----------------------------------------%
+c
+            go to 10
+c
+         else if (ido .eq. 2) then
+c
+c           %--------------------------------------------%
+c           |             Perform  y <--- M*x.           |
+c           | Need matrix vector multiplication routine  |
+c           | here that takes workd(ipntr(1)) as input   |
+c           | and returns the result to workd(ipntr(2)). |
+c           %--------------------------------------------%
+c
+            call mv (n, workd(ipntr(1)), workd(ipntr(2)))
+c
+c           %-----------------------------------------%
+c           | L O O P   B A C K to call DSAUPD again. |
+c           %-----------------------------------------%
+c
+            go to 10
+c
+         end if 
+c
+c     %-----------------------------------------%
+c     | Either we have convergence, or there is |
+c     | an error.                               |
+c     %-----------------------------------------%
+c
+      if ( info .lt. 0 ) then
+c
+c        %--------------------------%
+c        | Error message, check the |
+c        | documentation in DSAUPD  |
+c        %--------------------------%
+c
+           print *, ' '
+           print *, ' Error with _saupd, info = ',info
+           print *, ' Check the documentation of _saupd. '
+           print *, ' '
+c
+      else 
+c
+c        %-------------------------------------------%
+c        | No fatal errors occurred.                 |
+c        | Post-Process using DSEUPD.                |
+c        |                                           |
+c        | Computed eigenvalues may be extracted.    |
+c        |                                           |
+c        | Eigenvectors may also be computed now if  |
+c        | desired.  (indicated by rvec = .true.)    |
+c        %-------------------------------------------%
+c
+         rvec = .true.
+c
+         call dseupd ( rvec, 'All', select, d, v, ldv, sigma, 
+     &        bmat, n, which, nev, tol, resid, ncv, v, ldv, 
+     &        iparam, ipntr, workd, workl, lworkl, ierr )
+c
+c        %----------------------------------------------%
+c        | Eigenvalues are returned in the first column |
+c        | of the two dimensional array D and the       |
+c        | corresponding eigenvectors are returned in   |
+c        | the first NEV columns of the two dimensional |
+c        | array V if requested.  Otherwise, an         |
+c        | orthogonal basis for the invariant subspace  |
+c        | corresponding to the eigenvalues in D is     |
+c        | returned in V.                               |
+c        %----------------------------------------------%
+c
+         if ( ierr .ne. 0 ) then 
+c
+c           %------------------------------------%
+c           | Error condition:                   |
+c           | Check the documentation of DSEUPD. |
+c           %------------------------------------%
+c
+            print *, ' '
+            print *, ' Error with _seupd, info = ', ierr
+            print *, ' Check the documentation of _seupd '
+            print *, ' '
+c
+         else
+c
+c           %---------------------------%
+c           | Compute the residual norm |
+c           |                           |
+c           |   ||  A*x - lambda*x ||   |
+c           |                           |
+c           | for the NCONV accurately  |
+c           | computed eigenvalues and  |
+c           | eigenvectors.  (iparam(5) |
+c           | indicates how many are    |
+c           | accurate to the requested |
+c           | tolerance)                |
+c           %---------------------------%
+c  
+            nconv = iparam(5)
+            do 30 j=1, nconv
+               call av(n, v(1,j), ax)
+               call mv(n, v(1,j), mx)
+               call daxpy (n, -d(j,1), mx, 1, ax, 1)
+               d(j,2) = dnrm2(n, ax, 1)
+               d(j,2) = d(j,2) / abs(d(j,1))
+ 30         continue
+c
+            call dmout(6, nconv, 2, d, maxncv, -6,
+     &           'Ritz values and relative residuals')
+c
+         end if
+c
+c        %------------------------------------------%
+c        | Print additional convergence information |
+c        %------------------------------------------%
+c
+         if ( info .eq. 1) then
+            print *, ' '
+            print *, ' Maximum number of iterations reached.'
+            print *, ' '
+         else if ( info .eq. 3) then
+            print *, ' '
+            print *, ' No shifts could be applied during implicit',
+     &               ' Arnoldi update, try increasing NCV.'
+            print *, ' '
+         end if
+c
+         print *, ' '
+         print *, ' _SDRV6 '
+         print *, ' ====== '
+         print *, ' '
+         print *, ' Size of the matrix is', n
+         print *, ' The number of Ritz values requested is', nev
+         print *, ' The number of Arnoldi vectors generated',
+     &            ' (NCV) is ', ncv
+         print *, ' What portion of the spectrum: ', which
+         print *, ' The number of converged Ritz values is ',
+     &              nconv 
+         print *, ' The number of Implicit Arnoldi update',
+     &           ' iterations taken is', iparam(3)
+         print *, ' The number of OP*x is ', iparam(9)
+         print *, ' The convergence criterion is ', tol
+         print *, ' '
+c
+      end if
+c
+c     %---------------------------%
+c     | Done with program dsdrv6. |
+c     %---------------------------%
+c
+ 9000 continue
+c
+      end
+c
+c------------------------------------------------------------------------
+c     Matrix vector subroutine
+c     where the matrix used is the 1 dimensional mass matrix
+c     arising from using the piecewise linear finite element
+c     on the interval [0,1].
+c
+      subroutine mv (n, v, w)
+      integer           n, j
+      Double precision 
+     &                  v(n), w(n), one, four, six, h
+      parameter         (one = 1.0D+0, four = 4.0D+0, 
+     &                   six = 6.0D+0) 
+c
+      w(1) =  four*v(1) + v(2)
+      do 100 j = 2,n-1
+         w(j) = v(j-1) + four*v(j) + v(j+1) 
+  100 continue
+      j = n
+      w(j) = v(j-1) + four*v(j) 
+c
+c     Scale the vector w by h.
+c
+      h = one / (six*dble(n+1))
+      call dscal(n, h, w, 1)
+      return
+      end
+c
+c------------------------------------------------------------------------
+c     Matrix vector subroutine
+c     where the matrix is the stiffness matrix obtained from the 
+c     finite element discretization of the 1-dimensional discrete Laplacian
+c     on the interval [0,1] with zero Dirichlet boundary condition
+c     using piecewise linear elements.
+c
+      subroutine av (n, v, w)
+      integer           n, j
+      Double precision
+     &                  v(n), w(n), one, two, h
+      parameter         (one = 1.0D+0, two = 2.0D+0)
+c
+      w(1) =  two*v(1) - v(2)
+      do 100 j = 2,n-1
+         w(j) = - v(j-1) + two*v(j) - v(j+1) 
+  100 continue
+      j = n
+      w(j) = - v(j-1) + two*v(j)
+c     
+c     Scale the vector w by (1/h).
+c
+      h = one / dble(n+1)
+      call dscal(n, one/h, w, 1) 
+      return
+      end
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/example.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/example.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/example.f	(revision 2696)
@@ -0,0 +1,112 @@
+      program example
+c
+      integer          lwork, n
+      parameter        (n = 100)
+      double complex   zwork(200 000), alpha(20), beta(20), 
+     $                 eivec(n,20), tmp(n), residu(n)
+c
+      integer          kmax, jmax, jmin, maxstep, method, m, l, maxnmv, 
+     $                 order, testspace, j
+      double precision tol, lock, dznrm2
+      logical          wanted
+      double complex   target
+      real             elapse
+      real             etime, tarray(2)
+c
+      target = (31.,0.0)
+      tol = 1.d-9
+      kmax = 5
+      jmax = 20
+      jmin = 10
+      maxstep = 1000
+      lock = 1.d-9
+c...     order =  0: nearest to target
+c...     order = -1: smallest real part
+c...     order =  1: largest real part
+c...     order = -2: smallest complex part
+c...     order =  2: largest complex part
+      order = 0
+c...     method = 1: gmres(m)
+c...     method = 2: cgstab(l)
+      method = 2
+c...     for gmres(m):
+      m = 30
+c...     for cgstab(l):
+      l= 2
+c...     maximum number of matvecs in cgstab or gmres
+      maxnmv = 100
+      testspace = 3
+c...     Testspace 1: w = "Standard Petrov" * v (Section 3.1.1)
+c...     Testspace 2: w = "Standard 'variable' Petrov" * v (Section 3.1.2)
+c...     Testspace 3: w = "Harmonic Petrov" * v (Section 3.5.1)
+c
+      if ( method .eq. 1 ) then
+         lwork =  4 +  m  + 5*jmax + 3*kmax
+      else
+         lwork = 10 + 6*l + 5*jmax + 3*kmax
+      end if
+      wanted = .true.
+c
+      call jdqz(alpha, beta, eivec, wanted, n, target, tol, 
+     $     kmax, jmax, jmin,
+     $     method, m, l, maxnmv, maxstep,
+     $     lock, order, testspace, zwork, lwork )
+c
+      elapse = etime( tarray )
+c
+c...     Compute the norms of the residuals:
+      do j = 1, kmax
+         call amul  ( n, eivec(1,j), residu )
+         call zscal ( n, beta(j), residu, 1)
+         call bmul  ( n, eivec(1,j), tmp )
+         call zaxpy( n, -alpha(j), tmp, 1, residu, 1 )
+         print '("lambda(",i2,"): (",1p,e11.4,",",e11.4,
+     $        " )")', j,alpha(j)/beta(j)
+         print '(a30,d13.6)', '||beta Ax - alpha Bx||:',
+     $          dznrm2( n, residu, 1 )
+      end do
+      write(*,10) tarray(1), elapse
+c
+   10 format(1x,'END JDQZ AFTER ',f6.2,' SEC. CPU-TIME AND ', f6.2,
+     $       ' SEC. ELAPSED TIME' )
+      end
+
+      subroutine PRECON( neq, q )
+c...............................................
+c...     Subroutine to compute q = K^-1 q
+c...............................................
+      integer        neq, i
+      double complex q(neq)
+c
+      do i = 1, neq
+         q(i) = i*q(i)/(i*i-31)
+      end do
+c
+      end
+c
+      subroutine AMUL( neq, q, r )
+c...............................................
+c...     Subroutine to compute r = Aq
+c...............................................
+      integer        neq, i
+      double complex q(neq), r(neq)
+c
+      do i = 1, neq
+	 r(i) = i*q(i)
+      end do
+c
+      end
+c
+      subroutine BMUL( neq, q, r )
+c...............................................
+c...     Subroutine to compute r = Bq
+c...............................................
+      integer        neq, i
+      double complex q(neq), r(neq)
+c
+      do i = 1, neq
+	 r(i) = q(i)/i
+      end do
+c
+      end
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/hsv.kpp
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/hsv.kpp	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/hsv.kpp	(revision 2696)
@@ -0,0 +1,6 @@
+#MODEL      saprcnov 
+#INTEGRATOR rosenbrock_soa 
+#LANGUAGE   Fortran90 
+#DRIVER     general_hsv
+#HESSIAN    on
+#STOICMAT   on
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/radau90.kpp
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/radau90.kpp	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/radau90.kpp	(revision 2696)
@@ -0,0 +1,6 @@
+#MODEL      saprc99
+#INTEGRATOR radau5 
+#LANGUAGE   Fortran90
+#DRIVER     general 
+#HESSIAN    on
+#STOICMAT   on
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/readme
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/readme	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/readme	(revision 2696)
@@ -0,0 +1,19 @@
+{To specify a KPP model build a *.kpp file with the following lines:}
+
+{Choose any model defined in $KPP_HOME/models}
+#MODEL small_strato
+
+{Choose any integrator defined in $KPP_HOME/int}
+#INTEGRATOR none 
+
+{Choose the output language in which KPP will generate the model}
+#LANGUAGE [ Fortran77 | Fortran90 | C | Matlab ]
+
+{Choose any driver file defined in $KPP_HOME/drv}
+#DRIVER general
+
+{Hessian}
+#HESSIAN [ ON | OFF ] 
+
+{Stoichiometric matrix}
+#STOICMAT [ ON | OFF ]
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/result.txt
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/result.txt	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/result.txt	(revision 2696)
@@ -0,0 +1,6 @@
+Lsode:
+100.0%. T=0.173E+06  SO2= 0.0000E+00; O3= 0.9870E-01; NO= 0.1680E-06; NO2= 0.6802E-02;
+
+Rosenbrock:
+100.0%. T=0.173E+06  SO2= 0.0000E+00; O3= 0.7276E-01; NO= 0.1574E-06; NO2= 0.6396E-02;
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/rk.kpp
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/rk.kpp	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/rk.kpp	(revision 2696)
@@ -0,0 +1,6 @@
+#MODEL      small_strato
+#INTEGRATOR runge_kutta
+#LANGUAGE   Fortran90
+#DRIVER     general
+#HESSIAN    on
+#STOICMAT   on
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/rktlm.kpp
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/rktlm.kpp	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/rktlm.kpp	(revision 2696)
@@ -0,0 +1,6 @@
+#MODEL      small_strato
+#INTEGRATOR runge_kutta_tlm 
+#LANGUAGE   Fortran90
+#DRIVER     general_tlm
+#HESSIAN    on
+#STOICMAT   on
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/ros.kpp
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/ros.kpp	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/ros.kpp	(revision 2696)
@@ -0,0 +1,6 @@
+#MODEL      small_strato
+#INTEGRATOR rosenbrock
+#LANGUAGE   Fortran90
+#DRIVER     general
+#HESSIAN    on
+#STOICMAT   on
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/rosadj.kpp
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/rosadj.kpp	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/rosadj.kpp	(revision 2696)
@@ -0,0 +1,6 @@
+#MODEL      small_strato
+#INTEGRATOR rosenbrock_adj
+#LANGUAGE   Fortran90
+#DRIVER     general_adj
+#HESSIAN    on
+#STOICMAT   on
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/rosenbrock90.kpp
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/rosenbrock90.kpp	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/rosenbrock90.kpp	(revision 2696)
@@ -0,0 +1,6 @@
+#MODEL      saprc99
+#INTEGRATOR rosenbrock 
+#LANGUAGE   Fortran90 
+#DRIVER     general 
+#HESSIAN    on
+#STOICMAT   on
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/rostlm.kpp
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/rostlm.kpp	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/rostlm.kpp	(revision 2696)
@@ -0,0 +1,6 @@
+#MODEL      small_strato
+#INTEGRATOR rosenbrock_tlm 
+#LANGUAGE   Fortran90
+#DRIVER     general_tlm
+#HESSIAN    on
+#STOICMAT   on
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/saprc2006.kpp
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/saprc2006.kpp	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/saprc2006.kpp	(revision 2696)
@@ -0,0 +1,6 @@
+#MODEL      saprcnov 
+#INTEGRATOR rosenbrock
+#LANGUAGE   Fortran90
+#DRIVER     general
+#HESSIAN    on
+#STOICMAT   on
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/saprc_c.kpp
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/saprc_c.kpp	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/saprc_c.kpp	(revision 2696)
@@ -0,0 +1,6 @@
+#MODEL      saprc99
+#INTEGRATOR rosenbrock 
+#LANGUAGE   C 
+#DRIVER     general 
+#HESSIAN    on
+#STOICMAT   on
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/saprc_f77.kpp
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/saprc_f77.kpp	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/saprc_f77.kpp	(revision 2696)
@@ -0,0 +1,6 @@
+#MODEL      saprc99
+#INTEGRATOR kpp_ros4 
+#LANGUAGE   Fortran77 
+#DRIVER     general 
+#HESSIAN    on
+#STOICMAT   on
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/saprc_m.kpp
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/saprc_m.kpp	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/saprc_m.kpp	(revision 2696)
@@ -0,0 +1,6 @@
+#MODEL      saprc99
+#INTEGRATOR none 
+#LANGUAGE   Matlab 
+#DRIVER     general 
+#HESSIAN    on
+#STOICMAT   on
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/sd.kpp
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/sd.kpp	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/sd.kpp	(revision 2696)
@@ -0,0 +1,6 @@
+#MODEL      small_strato
+#INTEGRATOR sdirk
+#LANGUAGE   Fortran90
+#DRIVER     general
+#HESSIAN    on
+#STOICMAT   on
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/sdadj.kpp
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/sdadj.kpp	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/sdadj.kpp	(revision 2696)
@@ -0,0 +1,6 @@
+#MODEL      small_strato
+#INTEGRATOR sdirk_adj
+#LANGUAGE   Fortran90
+#DRIVER     general_adj
+#HESSIAN    on
+#STOICMAT   on
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/sdtlm.kpp
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/sdtlm.kpp	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/sdtlm.kpp	(revision 2696)
@@ -0,0 +1,6 @@
+#MODEL      small_strato
+#INTEGRATOR sdirk_tlm
+#LANGUAGE   Fortran90
+#DRIVER     general_tlm
+#HESSIAN    on
+#STOICMAT   on
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/shsv.kpp
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/shsv.kpp	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/shsv.kpp	(revision 2696)
@@ -0,0 +1,6 @@
+#MODEL      small_strato 
+#INTEGRATOR rosenbrock_soa 
+#LANGUAGE   Fortran90 
+#DRIVER     general_hsv
+#HESSIAN    on
+#STOICMAT   on
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/small_c.kpp
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/small_c.kpp	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/small_c.kpp	(revision 2696)
@@ -0,0 +1,6 @@
+#MODEL      small_strato
+#INTEGRATOR rosenbrock 
+#LANGUAGE   C
+#DRIVER     general
+#HESSIAN    on
+#STOICMAT   on
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/small_f77.kpp
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/small_f77.kpp	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/small_f77.kpp	(revision 2696)
@@ -0,0 +1,6 @@
+#MODEL      small_strato
+#INTEGRATOR rosenbrock 
+#LANGUAGE   Fortran77
+#DRIVER     general
+#HESSIAN    on
+#STOICMAT   on
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/small_f90.kpp
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/small_f90.kpp	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/small_f90.kpp	(revision 2696)
@@ -0,0 +1,6 @@
+#MODEL      small_strato
+#INTEGRATOR kpp_lsode 
+#LANGUAGE   Fortran90
+#DRIVER     general
+#HESSIAN    on
+#STOICMAT   on
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/small_m.kpp
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/small_m.kpp	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/examples/small_m.kpp	(revision 2696)
@@ -0,0 +1,6 @@
+#MODEL      small_strato
+#INTEGRATOR none 
+#LANGUAGE   Matlab
+#DRIVER     general
+#HESSIAN    on
+#STOICMAT   on
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/gpl/gpl.txt
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/gpl/gpl.txt	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/gpl/gpl.txt	(revision 2696)
@@ -0,0 +1,317 @@
+******************************************************************************
+
+  KPP - The Kinetic PreProcessor
+        Builds simulation code for chemical kinetic systems
+
+  Copyright (C) 1995-1996 Valeriu Damian and Adrian Sandu 
+  Copyright (C) 1997-2005 Adrian Sandu
+
+  KPP is free software; you can redistribute it and/or modify it under the
+  terms of the GNU General Public License as published by the Free
+  Software Foundation (http://www.gnu.org/copyleft/gpl.html); either
+  version 2 of the License, or (at your option) any later version.
+
+  KPP is distributed in the hope that it will be useful, but WITHOUT ANY
+  WARRANTY; without even the implied warranty of MERCHANTABILITY or
+  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+  for more details.
+
+  A copy of the GNU General Public License could be found below;  you
+  could also consult http://www.gnu.org/copyleft/gpl.html or write to the
+  Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 
+  02111-1307,  USA.
+
+  Adrian Sandu
+  Computer Science Department
+  Virginia Polytechnic Institute and State University
+  Blacksburg, VA 24060
+  E-mail: sandu@cs.vt.edu
+
+******************************************************************************
+
+
+
+		    GNU GENERAL PUBLIC LICENSE
+		       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+                       59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+
+		    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+			    NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/atm_lsodes.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/atm_lsodes.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/atm_lsodes.def	(revision 2696)
@@ -0,0 +1,19 @@
+ 
+#FUNCTION AGGREGATE
+#JACOBIAN FULL
+#DOUBLE ON 
+#INTFILE atm_lsodes
+
+#INLINE F77_GLOBAL
+      REAL*8 STEPSTART
+      COMMON /GDATA/ STEPSTART
+#ENDINLINE
+
+#INLINE F77_INIT
+        STEPMIN=1.D-12
+        STEPMAX=3600.
+        STEPSTART=STEPMIN
+#ENDINLINE
+
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/atm_lsodes.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/atm_lsodes.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/atm_lsodes.f	(revision 2696)
@@ -0,0 +1,5474 @@
+      SUBROUTINE INTEGRATE( TIN, TOUT )
+
+      IMPLICIT KPP_REAL (A-H,O-Z)
+      INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Global.h'
+
+C TIN - Start Time
+      KPP_REAL TIN
+C TOUT - End Time
+      KPP_REAL TOUT
+
+      PARAMETER ( LRW=20+3*1500+16*NVAR )
+      PARAMETER ( LIW=60 )
+      EXTERNAL FUNC_CHEM, JAC_CHEM
+
+      KPP_REAL RWORK(LRW)
+      INTEGER IWORK(LIW)
+
+      STEPCUT = 0.
+      MAXORD = 5
+      IBEGIN = 1
+      ITOL=4
+
+C ---- NORMAL COMPUTATION ---
+      ITASK=1
+      ISTATE=1
+C ---- USE OPTIONAL INPUT ---
+      IOPT=1
+
+      IWORK(5) = MAXORD    ! MAX ORD
+      IWORK(6) = 20000
+      IWORK(7) = 0
+      RWORK(6) = STEPMAX   ! STEP MAX
+      RWORK(7) = STEPMIN   ! STEP MIN
+      RWORK(5) = STEPMIN   ! INITIAL STEP
+
+C ----- SIGNAL FOR STIFF CASE, FULL JACOBIAN, INTERN (22) or SUPPLIED (21)
+      MF = 121
+
+      CALL atmlsodes (FUNC_CHEM, NVAR, VAR, TIN, TOUT, ITOL, RTOL, ATOL,
+     !            ITASK, ISTATE, IOPT, RWORK, LRW, IWORK, LIW,
+     !            JAC_CHEM, MF)
+
+      IF (ISTATE.LT.0) THEN
+        print *,'LSODES: Unsucessfull exit at T=',
+     &          TIN,' (ISTATE=',ISTATE,')'
+      ENDIF
+
+      RETURN
+      END
+
+      subroutine atmlsodes (f, neq, y, t, tout, itol, RelTol, AbsTol,
+     1       itask, istate, iopt, rwork, lrw, iwork, liw, jac, mf)
+      external f, jac
+      integer neq, itol, itask, istate, iopt, lrw, iwork, liw, mf
+      KPP_REAL y, t, tout, RelTol, AbsTol, rwork
+      dimension neq(1), y(1), RelTol(1), AbsTol(1),
+     1          rwork(lrw), iwork(liw)
+c-----------------------------------------------------------------------
+c this is the march 30, 1987 version of
+c lsodes.. livermore solver for ordinary differential equations
+c          with general sparse jacobian matrices.
+c this version is in KPP_REAL.
+c
+c lsodes solves the initial value problem for stiff or nonstiff
+c systems of first order ode-s,
+c     dy/dt = f(t,y) ,  or, in component form,
+c     dy(i)/dt = f(i) = f(i,t,y(1),y(2),...,y(neq)) (i = 1,...,neq).
+c lsodes is a variant of the lsode package, and is intended for
+c problems in which the jacobian matrix df/dy has an arbitrary
+c sparse structure (when the problem is stiff).
+c
+c authors..      alan c. hindmarsh,
+c                computing and mathematics research division, l-316
+c                lawrence livermore national laboratory
+c                livermore, ca 94550.
+c
+c and            andrew h. sherman
+c                j. s. nolen and associates
+c                houston, tx 77084
+c-----------------------------------------------------------------------
+c references..
+c 1.  alan c. hindmarsh,  odepack, a systematized collection of ode
+c     solvers, in scientific computing, r. s. stepleman et al. (eds.),
+c     north-holland, amsterdam, 1983, pp. 55-64.
+c
+c 2.  s. c. eisenstat, m. c. gursky, m. h. schultz, and a. h. sherman,
+c     yale sparse matrix package.. i. the symmetric codes,
+c     int. j. num. meth. eng., 18 (1982), pp. 1145-1151.
+c
+c 3.  s. c. eisenstat, m. c. gursky, m. h. schultz, and a. h. sherman,
+c     yale sparse matrix package.. ii. the nonsymmetric codes,
+c     research report no. 114, dept. of computer sciences, yale
+c     university, 1977.
+c-----------------------------------------------------------------------
+c summary of usage.
+c
+c communication between the user and the lsodes package, for normal
+c situations, is summarized here.  this summary describes only a subset
+c of the full set of options available.  see the full description for
+c details, including optional communication, nonstandard options,
+c and instructions for special situations.  see also the example
+c problem (with program and output) following this summary.
+c
+c a. first provide a subroutine of the form..
+c               subroutine f (neq, t, y, ydot)
+c               dimension y(neq), ydot(neq)
+c which supplies the vector function f by loading ydot(i) with f(i).
+c
+c b. next determine (or guess) whether or not the problem is stiff.
+c stiffness occurs when the jacobian matrix df/dy has an eigenvalue
+c whose real part is negative and large in magnitude, compared to the
+c reciprocal of the t span of interest.  if the problem is nonstiff,
+c use a method flag mf = 10.  if it is stiff, there are two standard
+c for the method flag, mf = 121 and mf = 222.  in both cases, lsodes
+c requires the jacobian matrix in some form, and it treats this matrix
+c in general sparse form, with sparsity structure determined internally.
+c (for options where the user supplies the sparsity structure, see
+c the full description of mf below.)
+c
+c c. if the problem is stiff, you are encouraged to supply the jacobian
+c directly (mf = 121), but if this is not feasible, lsodes will
+c compute it internally by difference quotients (mf = 222).
+c if you are supplying the jacobian, provide a subroutine of the form..
+c               subroutine jac (neq, t, y, j, ian, jan, pdj)
+c               dimension y(1), ian(1), jan(1), pdj(1)
+c here neq, t, y, and j are input arguments, and the jac routine is to
+c load the array pdj (of length neq) with the j-th column of df/dy.
+c i.e., load pdj(i) with df(i)/dy(j) for all relevant values of i.
+c the arguments ian and jan should be ignored for normal situations.
+c lsodes will CALL the jac routine with j = 1,2,...,neq.
+c only nonzero elements need be loaded.  usually, a crude approximation
+c to df/dy, possibly with fewer nonzero elements, will suffice.
+c
+c d. write a main program which calls subroutine lsodes once for
+c each point at which answers are desired.  this should also provide
+c for possible use of logical unit 6 for output of error messages
+c by lsodes.  on the first CALL to lsodes, supply arguments as follows..
+c f      = name of subroutine for right-hand side vector f.
+c          this name must be declared external in calling program.
+c neq    = number of first order ode-s.
+c y      = array of initial values, of length neq.
+c t      = the initial value of the independent variable.
+c tout   = first point where output is desired (.ne. t).
+c itol   = 1 or 2 according as AbsTol (below) is a scalar or array.
+c RelTol   = relative tolerance parameter (scalar).
+c AbsTol   = absolute tolerance parameter (scalar or array).
+c          the estimated local error in y(i) will be controlled so as
+c          to be roughly less (in magnitude) than
+c             ewt(i) = RelTol*abs(y(i)) + AbsTol     if itol = 1, or
+c             ewt(i) = RelTol*abs(y(i)) + AbsTol(i)  if itol = 2.
+c          thus the local error test passes if, in each component,
+c          either the absolute error is less than AbsTol (or AbsTol(i)),
+c          or the relative error is less than RelTol.
+c          use RelTol = 0.0 for pure absolute error control, and
+c          use AbsTol = 0.0 (or AbsTol(i) = 0.0) for pure relative error
+c          control.  caution.. actual (global) errors may exceed these
+c          local tolerances, so choose them conservatively.
+c itask  = 1 for normal computation of output values of y at t = tout.
+c istate = integer flag (input and output).  set istate = 1.
+c iopt   = 0 to indicate no optional inputs used.
+c rwork  = real work array of length at least..
+c             20 + 16*neq            for mf = 10,
+c             20 + (2 + 1./lenrat)*nnz + (11 + 9./lenrat)*neq
+c                                    for mf = 121 or 222,
+c          where..
+c          nnz    = the number of nonzero elements in the sparse
+c                   jacobian (if this is unknown, use an estimate), and
+c          lenrat = the real to integer wordlength ratio (usually 1 in
+c                   single precision and 2 in KPP_REAL).
+c          in any case, the required size of rwork cannot generally
+c          be predicted in advance if mf = 121 or 222, and the value
+c          above is a rough estimate of a crude lower bound.  some
+c          experimentation with this size may be necessary.
+c          (when known, the correct required length is an optional
+c          output, available in iwork(17).)
+c lrw    = declared length of rwork (in user-s dimension).
+c iwork  = integer work array of length at least 30.
+c liw    = declared length of iwork (in user-s dimension).
+c jac    = name of subroutine for jacobian matrix (mf = 121).
+c          if used, this name must be declared external in calling
+c          program.  if not used, pass a dummy name.
+c mf     = method flag.  standard values are..
+c          10  for nonstiff (adams) method, no jacobian used.
+c          121 for stiff (bdf) method, user-supplied sparse jacobian.
+c          222 for stiff method, internally generated sparse jacobian.
+c note that the main program must declare arrays y, rwork, iwork,
+c and possibly AbsTol.
+c
+c e. the output from the first CALL (or any call) is..
+c      y = array of computed values of y(t) vector.
+c      t = corresponding value of independent variable (normally tout).
+c istate = 2  if lsodes was successful, negative otherwise.
+c          -1 means excess work done on this CALL (perhaps wrong mf).
+c          -2 means excess accuracy requested (tolerances too small).
+c          -3 means illegal input detected (see printed message).
+c          -4 means repeated error test failures (check all inputs).
+c          -5 means repeated convergence failures (perhaps bad jacobian
+c             supplied or wrong choice of mf or tolerances).
+c          -6 means error weight became zero during problem. (solution
+c             component i vanished, and AbsTol or AbsTol(i) = 0.)
+c          -7 means a fatal error return flag came from the sparse
+c             solver cdrv by way of prjs or slss.  should never happen.
+c          a return with istate = -1, -4, or -5 may result from using
+c          an inappropriate sparsity structure, one that is quite
+c          different from the initial structure.  consider calling
+c          lsodes again with istate = 3 to force the structure to be
+c          reevaluated.  see the full description of istate below.
+c
+c f. to continue the integration after a successful return, simply
+c reset tout and CALL lsodes again.  no other parameters need be reset.
+c
+c-----------------------------------------------------------------------
+c example problem.
+c
+c the following is a simple example problem, with the coding
+c needed for its solution by lsodes.  the problem is from chemical
+c kinetics, and consists of the following 12 rate equations..
+c    dy1/dt  = -rk1*y1
+c    dy2/dt  = rk1*y1 + rk11*rk14*y4 + rk19*rk14*y5
+c                - rk3*y2*y3 - rk15*y2*y12 - rk2*y2
+c    dy3/dt  = rk2*y2 - rk5*y3 - rk3*y2*y3 - rk7*y10*y3
+c                + rk11*rk14*y4 + rk12*rk14*y6
+c    dy4/dt  = rk3*y2*y3 - rk11*rk14*y4 - rk4*y4
+c    dy5/dt  = rk15*y2*y12 - rk19*rk14*y5 - rk16*y5
+c    dy6/dt  = rk7*y10*y3 - rk12*rk14*y6 - rk8*y6
+c    dy7/dt  = rk17*y10*y12 - rk20*rk14*y7 - rk18*y7
+c    dy8/dt  = rk9*y10 - rk13*rk14*y8 - rk10*y8
+c    dy9/dt  = rk4*y4 + rk16*y5 + rk8*y6 + rk18*y7
+c    dy10/dt = rk5*y3 + rk12*rk14*y6 + rk20*rk14*y7
+c                + rk13*rk14*y8 - rk7*y10*y3 - rk17*y10*y12
+c                - rk6*y10 - rk9*y10
+c    dy11/dt = rk10*y8
+c    dy12/dt = rk6*y10 + rk19*rk14*y5 + rk20*rk14*y7
+c                - rk15*y2*y12 - rk17*y10*y12
+c
+c with rk1 = rk5 = 0.1,  rk4 = rk8 = rk16 = rk18 = 2.5,
+c      rk10 = 5.0,  rk2 = rk6 = 10.0,  rk14 = 30.0,
+c      rk3 = rk7 = rk9 = rk11 = rk12 = rk13 = rk19 = rk20 = 50.0,
+c      rk15 = rk17 = 100.0.
+c
+c the t interval is from 0 to 1000, and the initial conditions
+c are y1 = 1, y2 = y3 = ... = y12 = 0.  the problem is stiff.
+c
+c the following coding solves this problem with lsodes, using mf = 121
+c and printing results at t = .1, 1., 10., 100., 1000.  it uses
+c itol = 1 and mixed relative/absolute tolerance controls.
+c during the run and at the end, statistical quantities of interest
+c are printed (see optional outputs in the full description below).
+c
+c     external fex, jex
+c     KPP_REAL AbsTol, RelTol, rwork, t, tout, y
+c     dimension y(12), rwork(500), iwork(30)
+c     data lrw/500/, liw/30/
+c     neq = 12
+c     do 10 i = 1,neq
+c 10    y(i) = 0.0d0
+c     y(1) = 1.0d0
+c     t = 0.0d0
+c     tout = 0.1d0
+c     itol = 1
+c     RelTol = 1.0d-4
+c     AbsTol = 1.0d-6
+c     itask = 1
+c     istate = 1
+c     iopt = 0
+c     mf = 121
+c     do 40 iout = 1,5
+c       CALL lsodes (fex, neq, y, t, tout, itol, RelTol, AbsTol,
+c    1     itask, istate, iopt, rwork, lrw, iwork, liw, jex, mf)
+c       write(6,30)t,iwork(11),rwork(11),(y(i),i=1,neq)
+c 30    format(//7h at t =,e11.3,4x,
+c    1    12h no. steps =,i5,4x,12h last step =,e11.3/
+c    2    13h  y array =  ,4e14.5/13x,4e14.5/13x,4e14.5)
+c       if (istate .lt. 0) go to 80
+c       tout = tout*10.0d0
+c 40    continue
+c     lenrw = iwork(17)
+c     leniw = iwork(18)
+c     nst = iwork(11)
+c     nfe = iwork(12)
+c     nje = iwork(13)
+c     nlu = iwork(21)
+c     nnz = iwork(19)
+c     nnzlu = iwork(25) + iwork(26) + neq
+c     write (6,70) lenrw,leniw,nst,nfe,nje,nlu,nnz,nnzlu
+c 70  format(//22h required rwork size =,i4,15h   iwork size =,i4/
+c    1   12h no. steps =,i4,12h   no. f-s =,i4,12h   no. j-s =,i4,
+c    2   13h   no. lu-s =,i4/23h no. of nonzeros in j =,i5,
+c    3   26h   no. of nonzeros in lu =,i5)
+c     stop
+c 80  write(6,90)istate
+c 90  format(///22h error halt.. istate =,i3)
+c     stop
+c     end
+c
+c     subroutine fex (neq, t, y, ydot)
+c     KPP_REAL t, y, ydot
+c     KPP_REAL rk1, rk2, rk3, rk4, rk5, rk6, rk7, rk8, rk9,
+c    1   rk10, rk11, rk12, rk13, rk14, rk15, rk16, rk17
+c     dimension y(12), ydot(12)
+c     data rk1/0.1d0/, rk2/10.0d0/, rk3/50.0d0/, rk4/2.5d0/, rk5/0.1d0/,
+c    1   rk6/10.0d0/, rk7/50.0d0/, rk8/2.5d0/, rk9/50.0d0/, rk10/5.0d0/,
+c    2   rk11/50.0d0/, rk12/50.0d0/, rk13/50.0d0/, rk14/30.0d0/,
+c    3   rk15/100.0d0/, rk16/2.5d0/, rk17/100.0d0/, rk18/2.5d0/,
+c    4   rk19/50.0d0/, rk20/50.0d0/
+c     ydot(1)  = -rk1*y(1)
+c     ydot(2)  = rk1*y(1) + rk11*rk14*y(4) + rk19*rk14*y(5)
+c    1           - rk3*y(2)*y(3) - rk15*y(2)*y(12) - rk2*y(2)
+c     ydot(3)  = rk2*y(2) - rk5*y(3) - rk3*y(2)*y(3) - rk7*y(10)*y(3)
+c    1           + rk11*rk14*y(4) + rk12*rk14*y(6)
+c     ydot(4)  = rk3*y(2)*y(3) - rk11*rk14*y(4) - rk4*y(4)
+c     ydot(5)  = rk15*y(2)*y(12) - rk19*rk14*y(5) - rk16*y(5)
+c     ydot(6)  = rk7*y(10)*y(3) - rk12*rk14*y(6) - rk8*y(6)
+c     ydot(7)  = rk17*y(10)*y(12) - rk20*rk14*y(7) - rk18*y(7)
+c     ydot(8)  = rk9*y(10) - rk13*rk14*y(8) - rk10*y(8)
+c     ydot(9)  = rk4*y(4) + rk16*y(5) + rk8*y(6) + rk18*y(7)
+c     ydot(10) = rk5*y(3) + rk12*rk14*y(6) + rk20*rk14*y(7)
+c    1           + rk13*rk14*y(8) - rk7*y(10)*y(3) - rk17*y(10)*y(12)
+c    2           - rk6*y(10) - rk9*y(10)
+c     ydot(11) = rk10*y(8)
+c     ydot(12) = rk6*y(10) + rk19*rk14*y(5) + rk20*rk14*y(7)
+c    1           - rk15*y(2)*y(12) - rk17*y(10)*y(12)
+c     return
+c     end
+c
+c     subroutine jex (neq, t, y, j, ia, ja, pdj)
+c     KPP_REAL t, y, pdj
+c     KPP_REAL rk1, rk2, rk3, rk4, rk5, rk6, rk7, rk8, rk9,
+c    1   rk10, rk11, rk12, rk13, rk14, rk15, rk16, rk17
+c     dimension y(1), ia(1), ja(1), pdj(1)
+c     data rk1/0.1d0/, rk2/10.0d0/, rk3/50.0d0/, rk4/2.5d0/, rk5/0.1d0/,
+c    1   rk6/10.0d0/, rk7/50.0d0/, rk8/2.5d0/, rk9/50.0d0/, rk10/5.0d0/,
+c    2   rk11/50.0d0/, rk12/50.0d0/, rk13/50.0d0/, rk14/30.0d0/,
+c    3   rk15/100.0d0/, rk16/2.5d0/, rk17/100.0d0/, rk18/2.5d0/,
+c    4   rk19/50.0d0/, rk20/50.0d0/
+c     go to (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12), j
+c 1   pdj(1) = -rk1
+c     pdj(2) = rk1
+c     return
+c 2   pdj(2) = -rk3*y(3) - rk15*y(12) - rk2
+c     pdj(3) = rk2 - rk3*y(3)
+c     pdj(4) = rk3*y(3)
+c     pdj(5) = rk15*y(12)
+c     pdj(12) = -rk15*y(12)
+c     return
+c 3   pdj(2) = -rk3*y(2)
+c     pdj(3) = -rk5 - rk3*y(2) - rk7*y(10)
+c     pdj(4) = rk3*y(2)
+c     pdj(6) = rk7*y(10)
+c     pdj(10) = rk5 - rk7*y(10)
+c     return
+c 4   pdj(2) = rk11*rk14
+c     pdj(3) = rk11*rk14
+c     pdj(4) = -rk11*rk14 - rk4
+c     pdj(9) = rk4
+c     return
+c 5   pdj(2) = rk19*rk14
+c     pdj(5) = -rk19*rk14 - rk16
+c     pdj(9) = rk16
+c     pdj(12) = rk19*rk14
+c     return
+c 6   pdj(3) = rk12*rk14
+c     pdj(6) = -rk12*rk14 - rk8
+c     pdj(9) = rk8
+c     pdj(10) = rk12*rk14
+c     return
+c 7   pdj(7) = -rk20*rk14 - rk18
+c     pdj(9) = rk18
+c     pdj(10) = rk20*rk14
+c     pdj(12) = rk20*rk14
+c     return
+c 8   pdj(8) = -rk13*rk14 - rk10
+c     pdj(10) = rk13*rk14
+c     pdj(11) = rk10
+c 9   return
+c 10  pdj(3) = -rk7*y(3)
+c     pdj(6) = rk7*y(3)
+c     pdj(7) = rk17*y(12)
+c     pdj(8) = rk9
+c     pdj(10) = -rk7*y(3) - rk17*y(12) - rk6 - rk9
+c     pdj(12) = rk6 - rk17*y(12)
+c 11  return
+c 12  pdj(2) = -rk15*y(2)
+c     pdj(5) = rk15*y(2)
+c     pdj(7) = rk17*y(10)
+c     pdj(10) = -rk17*y(10)
+c     pdj(12) = -rk15*y(2) - rk17*y(10)
+c     return
+c     end
+c
+c the output of this program (on a cray-1 in single precision)
+c is as follows..
+c
+c
+c at t =  1.000e-01     no. steps =   12     last step =  1.515e-02
+c  y array =     9.90050e-01   6.28228e-03   3.65313e-03   7.51934e-07
+c                1.12167e-09   1.18458e-09   1.77291e-12   3.26476e-07
+c                5.46720e-08   9.99500e-06   4.48483e-08   2.76398e-06
+c
+c
+c at t =  1.000e+00     no. steps =   33     last step =  7.880e-02
+c  y array =     9.04837e-01   9.13105e-03   8.20622e-02   2.49177e-05
+c                1.85055e-06   1.96797e-06   1.46157e-07   2.39557e-05
+c                3.26306e-05   7.21621e-04   5.06433e-05   3.05010e-03
+c
+c
+c at t =  1.000e+01     no. steps =   48     last step =  1.239e+00
+c  y array =     3.67876e-01   3.68958e-03   3.65133e-01   4.48325e-05
+c                6.10798e-05   4.33148e-05   5.90211e-05   1.18449e-04
+c                3.15235e-03   3.56531e-03   4.15520e-03   2.48741e-01
+c
+c
+c at t =  1.000e+02     no. steps =   91     last step =  3.764e+00
+c  y array =     4.44981e-05   4.42666e-07   4.47273e-04  -3.53257e-11
+c                2.81577e-08  -9.67741e-11   2.77615e-07   1.45322e-07
+c                1.56230e-02   4.37394e-06   1.60104e-02   9.52246e-01
+c
+c
+c at t =  1.000e+03     no. steps =  111     last step =  4.156e+02
+c  y array =    -2.65492e-13   2.60539e-14  -8.59563e-12   6.29355e-14
+c               -1.78066e-13   5.71471e-13  -1.47561e-12   4.58078e-15
+c                1.56314e-02   1.37878e-13   1.60184e-02   9.52719e-01
+c
+c
+c required rwork size = 442   iwork size =  30
+c no. steps = 111   no. f-s = 142   no. j-s =   2   no. lu-s =  20
+c no. of nonzeros in j =   44   no. of nonzeros in lu =   50
+c-----------------------------------------------------------------------
+c full description of user interface to lsodes.
+c
+c the user interface to lsodes consists of the following parts.
+c
+c i.   the CALL sequence to subroutine lsodes, which is a driver
+c      routine for the solver.  this includes descriptions of both
+c      the CALL sequence arguments and of user-supplied routines.
+c      following these descriptions is a description of
+c      optional inputs available through the CALL sequence, and then
+c      a description of optional outputs (in the work arrays).
+c
+c ii.  descriptions of other routines in the lsodes package that may be
+c      (optionally) called by the user.  these provide the ability to
+c      alter error message handling, save and restore the internal
+c      common, and obtain specified derivatives of the solution y(t).
+c
+c iii. descriptions of common blocks to be declared in overlay
+c      or similar environments, or to be saved when doing an interrupt
+c      of the problem and continued solution later.
+c
+c iv.  description of two routines in the lsodes package, either of
+c      which the user may replace with his own version, if desired.
+c      these relate to the measurement of errors.
+c
+c-----------------------------------------------------------------------
+c part i.  CALL sequence.
+c
+c the CALL sequence parameters used for input only are
+c     f, neq, tout, itol, RelTol, AbsTol, itask, iopt, lrw, liw, jac, mf,
+c and those used for both input and output are
+c     y, t, istate.
+c the work arrays rwork and iwork are also used for conditional and
+c optional inputs and optional outputs.  (the term output here refers
+c to the return from subroutine lsodes to the user-s calling program.)
+c
+c the legality of input parameters will be thoroughly checked on the
+c initial CALL for the problem, but not checked thereafter unless a
+c change in input parameters is flagged by istate = 3 on input.
+c
+c the descriptions of the CALL arguments are as follows.
+c
+c f      = the name of the user-supplied subroutine defining the
+c          ode system.  the system must be put in the first-order
+c          form dy/dt = f(t,y), where f is a vector-valued function
+c          of the scalar t and the vector y.  subroutine f is to
+c          compute the function f.  it is to have the form
+c               subroutine f (neq, t, y, ydot)
+c               dimension y(1), ydot(1)
+c          where neq, t, and y are input, and the array ydot = f(t,y)
+c          is output.  y and ydot are arrays of length neq.
+c          (in the dimension statement above, 1 is a dummy
+c          dimension.. it can be replaced by any value.)
+c          subroutine f should not alter y(1),...,y(neq).
+c          f must be declared external in the calling program.
+c
+c          subroutine f may access user-defined quantities in
+c          neq(2),... and/or in y(neq(1)+1),... if neq is an array
+c          (dimensioned in f) and/or y has length exceeding neq(1).
+c          see the descriptions of neq and y below.
+c
+c          if quantities computed in the f routine are needed
+c          externally to lsodes, an extra CALL to f should be made
+c          for this purpose, for consistent and accurate results.
+c          if only the derivative dy/dt is needed, use intdy instead.
+c
+c neq    = the size of the ode system (number of first order
+c          ordinary differential equations).  used only for input.
+c          neq may be decreased, but not increased, during the problem.
+c          if neq is decreased (with istate = 3 on input), the
+c          remaining components of y should be left undisturbed, if
+c          these are to be accessed in f and/or jac.
+c
+c          normally, neq is a scalar, and it is generally referred to
+c          as a scalar in this user interface description.  however,
+c          neq may be an array, with neq(1) set to the system size.
+c          (the lsodes package accesses only neq(1).)  in either case,
+c          this parameter is passed as the neq argument in all calls
+c          to f and jac.  hence, if it is an array, locations
+c          neq(2),... may be used to store other integer data and pass
+c          it to f and/or jac.  subroutines f and/or jac must include
+c          neq in a dimension statement in that case.
+c
+c y      = a real array for the vector of dependent variables, of
+c          length neq or more.  used for both input and output on the
+c          first CALL (istate = 1), and only for output on other calls.
+c          on the first call, y must contain the vector of initial
+c          values.  on output, y contains the computed solution vector,
+c          evaluated at t.  if desired, the y array may be used
+c          for other purposes between calls to the solver.
+c
+c          this array is passed as the y argument in all calls to
+c          f and jac.  hence its length may exceed neq, and locations
+c          y(neq+1),... may be used to store other real data and
+c          pass it to f and/or jac.  (the lsodes package accesses only
+c          y(1),...,y(neq).)
+c
+c t      = the independent variable.  on input, t is used only on the
+c          first call, as the initial point of the integration.
+c          on output, after each call, t is the value at which a
+c          computed solution y is evaluated (usually the same as tout).
+c          on an error return, t is the farthest point reached.
+c
+c tout   = the next value of t at which a computed solution is desired.
+c          used only for input.
+c
+c          when starting the problem (istate = 1), tout may be equal
+c          to t for one call, then should .ne. t for the next call.
+c          for the initial t, an input value of tout .ne. t is used
+c          in order to determine the direction of the integration
+c          (i.e. the algebraic sign of the step sizes) and the rough
+c          scale of the problem.  integration in either direction
+c          (forward or backward in t) is permitted.
+c
+c          if itask = 2 or 5 (one-step modes), tout is ignored after
+c          the first CALL (i.e. the first CALL with tout .ne. t).
+c          otherwise, tout is required on every call.
+c
+c          if itask = 1, 3, or 4, the values of tout need not be
+c          monotone, but a value of tout which backs up is limited
+c          to the current internal t interval, whose endpoints are
+c          tcur - hu and tcur (see optional outputs, below, for
+c          tcur and hu).
+c
+c itol   = an indicator for the type of error control.  see
+c          description below under AbsTol.  used only for input.
+c
+c RelTol   = a relative error tolerance parameter, either a scalar or
+c          an array of length neq.  see description below under AbsTol.
+c          input only.
+c
+c AbsTol   = an absolute error tolerance parameter, either a scalar or
+c          an array of length neq.  input only.
+c
+c             the input parameters itol, RelTol, and AbsTol determine
+c          the error control performed by the solver.  the solver will
+c          control the vector e = (e(i)) of estimated local errors
+c          in y, according to an inequality of the form
+c                      rms-norm of ( e(i)/ewt(i) )   .le.   1,
+c          where       ewt(i) = RelTol(i)*abs(y(i)) + AbsTol(i),
+c          and the rms-norm (root-mean-square norm) here is
+c          rms-norm(v) = sqrt(sum v(i)**2 / neq).  here ewt = (ewt(i))
+c          is a vector of weights which must always be positive, and
+c          the values of RelTol and AbsTol should all be non-negative.
+c          the following table gives the types (scalar/array) of
+c          RelTol and AbsTol, and the corresponding form of ewt(i).
+c
+c             itol    RelTol       AbsTol          ewt(i)
+c              1     scalar     scalar     RelTol*abs(y(i)) + AbsTol
+c              2     scalar     array      RelTol*abs(y(i)) + AbsTol(i)
+c              3     array      scalar     RelTol(i)*abs(y(i)) + AbsTol
+c              4     array      array      RelTol(i)*abs(y(i)) + AbsTol(i)
+c
+c          when either of these parameters is a scalar, it need not
+c          be dimensioned in the user-s calling program.
+c
+c          if none of the above choices (with itol, RelTol, and AbsTol
+c          fixed throughout the problem) is suitable, more general
+c          error controls can be obtained by substituting
+c          user-supplied routines for the setting of ewt and/or for
+c          the norm calculation.  see part iv below.
+c
+c          if global errors are to be estimated by making a repeated
+c          run on the same problem with smaller tolerances, then all
+c          components of RelTol and AbsTol (i.e. of ewt) should be scaled
+c          down uniformly.
+c
+c itask  = an index specifying the task to be performed.
+c          input only.  itask has the following values and meanings.
+c          1  means normal computation of output values of y(t) at
+c             t = tout (by overshooting and interpolating).
+c          2  means take one step only and return.
+c          3  means stop at the first internal mesh point at or
+c             beyond t = tout and return.
+c          4  means normal computation of output values of y(t) at
+c             t = tout but without overshooting t = tcrit.
+c             tcrit must be input as rwork(1).  tcrit may be equal to
+c             or beyond tout, but not behind it in the direction of
+c             integration.  this option is useful if the problem
+c             has a singularity at or beyond t = tcrit.
+c          5  means take one step, without passing tcrit, and return.
+c             tcrit must be input as rwork(1).
+c
+c          note..  if itask = 4 or 5 and the solver reaches tcrit
+c          (within roundoff), it will return t = tcrit (exactly) to
+c          indicate this (unless itask = 4 and tout comes before tcrit,
+c          in which case answers at t = tout are returned first).
+c
+c istate = an index used for input and output to specify the
+c          the state of the calculation.
+c
+c          on input, the values of istate are as follows.
+c          1  means this is the first CALL for the problem
+c             (initializations will be done).  see note below.
+c          2  means this is not the first call, and the calculation
+c             is to continue normally, with no change in any input
+c             parameters except possibly tout and itask.
+c             (if itol, RelTol, and/or AbsTol are changed between calls
+c             with istate = 2, the new values will be used but not
+c             tested for legality.)
+c          3  means this is not the first call, and the
+c             calculation is to continue normally, but with
+c             a change in input parameters other than
+c             tout and itask.  changes are allowed in
+c             neq, itol, RelTol, AbsTol, iopt, lrw, liw, mf,
+c             the conditional inputs ia and ja,
+c             and any of the optional inputs except h0.
+c             in particular, if miter = 1 or 2, a CALL with istate = 3
+c             will cause the sparsity structure of the problem to be
+c             recomputed (or reread from ia and ja if moss = 0).
+c          note..  a preliminary CALL with tout = t is not counted
+c          as a first CALL here, as no initialization or checking of
+c          input is done.  (such a CALL is sometimes useful for the
+c          purpose of outputting the initial conditions.)
+c          thus the first CALL for which tout .ne. t requires
+c          istate = 1 on input.
+c
+c          on output, istate has the following values and meanings.
+c           1  means nothing was done, as tout was equal to t with
+c              istate = 1 on input.  (however, an internal counter was
+c              set to detect and prevent repeated calls of this type.)
+c           2  means the integration was performed successfully.
+c          -1  means an excessive amount of work (more than mxstep
+c              steps) was done on this call, before completing the
+c              requested task, but the integration was otherwise
+c              successful as far as t.  (mxstep is an optional input
+c              and is normally 500.)  to continue, the user may
+c              simply reset istate to a value .gt. 1 and CALL again
+c              (the excess work step counter will be reset to 0).
+c              in addition, the user may increase mxstep to avoid
+c              this error return (see below on optional inputs).
+c          -2  means too much accuracy was requested for the precision
+c              of the machine being used.  this was detected before
+c              completing the requested task, but the integration
+c              was successful as far as t.  to continue, the tolerance
+c              parameters must be reset, and istate must be set
+c              to 3.  the optional output tolsf may be used for this
+c              purpose.  (note.. if this condition is detected before
+c              taking any steps, then an illegal input return
+c              (istate = -3) occurs instead.)
+c          -3  means illegal input was detected, before taking any
+c              integration steps.  see written message for details.
+c              note..  if the solver detects an infinite loop of calls
+c              to the solver with illegal input, it will cause
+c              the run to stop.
+c          -4  means there were repeated error test failures on
+c              one attempted step, before completing the requested
+c              task, but the integration was successful as far as t.
+c              the problem may have a singularity, or the input
+c              may be inappropriate.
+c          -5  means there were repeated convergence test failures on
+c              one attempted step, before completing the requested
+c              task, but the integration was successful as far as t.
+c              this may be caused by an inaccurate jacobian matrix,
+c              if one is being used.
+c          -6  means ewt(i) became zero for some i during the
+c              integration.  pure relative error control (AbsTol(i)=0.0)
+c              was requested on a variable which has now vanished.
+c              the integration was successful as far as t.
+c          -7  means a fatal error return flag came from the sparse
+c              solver cdrv by way of prjs or slss (numerical
+c              factorization or backsolve).  this should never happen.
+c              the integration was successful as far as t.
+c
+c          note.. an error return with istate = -1, -4, or -5 and with
+c          miter = 1 or 2 may mean that the sparsity structure of the
+c          problem has changed significantly since it was last
+c          determined (or input).  in that case, one can attempt to
+c          complete the integration by setting istate = 3 on the next
+c          call, so that a new structure determination is done.
+c
+c          note..  since the normal output value of istate is 2,
+c          it does not need to be reset for normal continuation.
+c          also, since a negative input value of istate will be
+c          regarded as illegal, a negative output value requires the
+c          user to change it, and possibly other inputs, before
+c          calling the solver again.
+c
+c iopt   = an integer flag to specify whether or not any optional
+c          inputs are being used on this call.  input only.
+c          the optional inputs are listed separately below.
+c          iopt = 0 means no optional inputs are being used.
+c                   default values will be used in all cases.
+c          iopt = 1 means one or more optional inputs are being used.
+c
+c rwork  = a work array used for a mixture of real (KPP_REAL)
+c          and integer work space.
+c          the length of rwork (in real words) must be at least
+c             20 + nyh*(maxord + 1) + 3*neq + lwm    where
+c          nyh    = the initial value of neq,
+c          maxord = 12 (if meth = 1) or 5 (if meth = 2) (unless a
+c                   smaller value is given as an optional input),
+c          lwm = 0                                    if miter = 0,
+c          lwm = 2*nnz + 2*neq + (nnz+9*neq)/lenrat   if miter = 1,
+c          lwm = 2*nnz + 2*neq + (nnz+10*neq)/lenrat  if miter = 2,
+c          lwm = neq + 2                              if miter = 3.
+c          in the above formulas,
+c          nnz    = number of nonzero elements in the jacobian matrix.
+c          lenrat = the real to integer wordlength ratio (usually 1 in
+c                   single precision and 2 in KPP_REAL).
+c          (see the mf description for meth and miter.)
+c          thus if maxord has its default value and neq is constant,
+c          the minimum length of rwork is..
+c             20 + 16*neq        for mf = 10,
+c             20 + 16*neq + lwm  for mf = 11, 111, 211, 12, 112, 212,
+c             22 + 17*neq        for mf = 13,
+c             20 +  9*neq        for mf = 20,
+c             20 +  9*neq + lwm  for mf = 21, 121, 221, 22, 122, 222,
+c             22 + 10*neq        for mf = 23.
+c          if miter = 1 or 2, the above formula for lwm is only a
+c          crude lower bound.  the required length of rwork cannot
+c          be readily predicted in general, as it depends on the
+c          sparsity structure of the problem.  some experimentation
+c          may be necessary.
+c
+c          the first 20 words of rwork are reserved for conditional
+c          and optional inputs and optional outputs.
+c
+c          the following word in rwork is a conditional input..
+c            rwork(1) = tcrit = critical value of t which the solver
+c                       is not to overshoot.  required if itask is
+c                       4 or 5, and ignored otherwise.  (see itask.)
+c
+c lrw    = the length of the array rwork, as declared by the user.
+c          (this will be checked by the solver.)
+c
+c iwork  = an integer work array.  the length of iwork must be at least
+c             31 + neq + nnz   if moss = 0 and miter = 1 or 2, or
+c             30               otherwise.
+c          (nnz is the number of nonzero elements in df/dy.)
+c
+c          in lsodes, iwork is used only for conditional and
+c          optional inputs and optional outputs.
+c
+c          the following two blocks of words in iwork are conditional
+c          inputs, required if moss = 0 and miter = 1 or 2, but not
+c          otherwise (see the description of mf for moss).
+c            iwork(30+j) = ia(j)     (j=1,...,neq+1)
+c            iwork(31+neq+k) = ja(k) (k=1,...,nnz)
+c          the two arrays ia and ja describe the sparsity structure
+c          to be assumed for the jacobian matrix.  ja contains the row
+c          indices where nonzero elements occur, reading in columnwise
+c          order, and ia contains the starting locations in ja of the
+c          descriptions of columns 1,...,neq, in that order, with
+c          ia(1) = 1.  thus, for each column index j = 1,...,neq, the
+c          values of the row index i in column j where a nonzero
+c          element may occur are given by
+c            i = ja(k),  where   ia(j) .le. k .lt. ia(j+1).
+c          if nnz is the total number of nonzero locations assumed,
+c          then the length of the ja array is nnz, and ia(neq+1) must
+c          be nnz + 1.  duplicate entries are not allowed.
+c
+c liw    = the length of the array iwork, as declared by the user.
+c          (this will be checked by the solver.)
+c
+c note..  the work arrays must not be altered between calls to lsodes
+c for the same problem, except possibly for the conditional and
+c optional inputs, and except for the last 3*neq words of rwork.
+c the latter space is used for internal scratch space, and so is
+c available for use by the user outside lsodes between calls, if
+c desired (but not for use by f or jac).
+c
+c jac    = name of user-supplied routine (miter = 1 or moss = 1) to
+c          compute the jacobian matrix, df/dy, as a function of
+c          the scalar t and the vector y.  it is to have the form
+c               subroutine jac (neq, t, y, j, ian, jan, pdj)
+c               dimension y(1), ian(1), jan(1), pdj(1)
+c          where neq, t, y, j, ian, and jan are input, and the array
+c          pdj, of length neq, is to be loaded with column j
+c          of the jacobian on output.  thus df(i)/dy(j) is to be
+c          loaded into pdj(i) for all relevant values of i.
+c          here t and y have the same meaning as in subroutine f,
+c          and j is a column index (1 to neq).  ian and jan are
+c          undefined in calls to jac for structure determination
+c          (moss = 1).  otherwise, ian and jan are structure
+c          descriptors, as defined under optional outputs below, and
+c          so can be used to determine the relevant row indices i, if
+c          desired.  (in the dimension statement above, 1 is a
+c          dummy dimension.. it can be replaced by any value.)
+c               jac need not provide df/dy exactly.  a crude
+c          approximation (possibly with greater sparsity) will do.
+c               in any case, pdj is preset to zero by the solver,
+c          so that only the nonzero elements need be loaded by jac.
+c          calls to jac are made with j = 1,...,neq, in that order, and
+c          each such set of calls is preceded by a CALL to f with the
+c          same arguments neq, t, and y.  thus to gain some efficiency,
+c          intermediate quantities shared by both calculations may be
+c          saved in a user common block by f and not recomputed by jac,
+c          if desired.  jac must not alter its input arguments.
+c          jac must be declared external in the calling program.
+c               subroutine jac may access user-defined quantities in
+c          neq(2),... and y(neq(1)+1),... if neq is an array
+c          (dimensioned in jac) and y has length exceeding neq(1).
+c          see the descriptions of neq and y above.
+c
+c mf     = the method flag.  used only for input.
+c          mf has three decimal digits-- moss, meth, miter--
+c             mf = 100*moss + 10*meth + miter.
+c          moss indicates the method to be used to obtain the sparsity
+c          structure of the jacobian matrix if miter = 1 or 2..
+c            moss = 0 means the user has supplied ia and ja
+c                     (see descriptions under iwork above).
+c            moss = 1 means the user has supplied jac (see below)
+c                     and the structure will be obtained from neq
+c                     initial calls to jac.
+c            moss = 2 means the structure will be obtained from neq+1
+c                     initial calls to f.
+c          meth indicates the basic linear multistep method..
+c            meth = 1 means the implicit adams method.
+c            meth = 2 means the method based on backward
+c                     differentiation formulas (bdf-s).
+c          miter indicates the corrector iteration method..
+c            miter = 0 means functional iteration (no jacobian matrix
+c                      is involved).
+c            miter = 1 means chord iteration with a user-supplied
+c                      sparse jacobian, given by subroutine jac.
+c            miter = 2 means chord iteration with an internally
+c                      generated (difference quotient) sparse jacobian
+c                      (using ngp extra calls to f per df/dy value,
+c                      where ngp is an optional output described below.)
+c            miter = 3 means chord iteration with an internally
+c                      generated diagonal jacobian approximation.
+c                      (using 1 extra CALL to f per df/dy evaluation).
+c          if miter = 1 or moss = 1, the user must supply a subroutine
+c          jac (the name is arbitrary) as described above under jac.
+c          otherwise, a dummy argument can be used.
+c
+c          the standard choices for mf are..
+c            mf = 10  for a nonstiff problem,
+c            mf = 21 or 22 for a stiff problem with ia/ja supplied
+c                     (21 if jac is supplied, 22 if not),
+c            mf = 121 for a stiff problem with jac supplied,
+c                     but not ia/ja,
+c            mf = 222 for a stiff problem with neither ia/ja nor
+c                     jac supplied.
+c          the sparseness structure can be changed during the
+c          problem by making a CALL to lsodes with istate = 3.
+c-----------------------------------------------------------------------
+c optional inputs.
+c
+c the following is a list of the optional inputs provided for in the
+c CALL sequence.  (see also part ii.)  for each such input variable,
+c this table lists its name as used in this documentation, its
+c location in the CALL sequence, its meaning, and the default value.
+c the use of any of these inputs requires iopt = 1, and in that
+c case all of these inputs are examined.  a value of zero for any
+c of these optional inputs will cause the default value to be used.
+c thus to use a subset of the optional inputs, simply preload
+c locations 5 to 10 in rwork and iwork to 0.0 and 0 respectively, and
+c then set those of interest to nonzero values.
+c
+c name    location      meaning and default value
+c
+c h0      rwork(5)  the step size to be attempted on the first step.
+c                   the default value is determined by the solver.
+c
+c hmax    rwork(6)  the maximum absolute step size allowed.
+c                   the default value is infinite.
+c
+c hmin    rwork(7)  the minimum absolute step size allowed.
+c                   the default value is 0.  (this lower bound is not
+c                   enforced on the final step before reaching tcrit
+c                   when itask = 4 or 5.)
+c
+c seth    rwork(8)  the element threshhold for sparsity determination
+c                   when moss = 1 or 2.  if the absolute value of
+c                   an estimated jacobian element is .le. seth, it
+c                   will be assumed to be absent in the structure.
+c                   the default value of seth is 0.
+c
+c maxord  iwork(5)  the maximum order to be allowed.  the default
+c                   value is 12 if meth = 1, and 5 if meth = 2.
+c                   if maxord exceeds the default value, it will
+c                   be reduced to the default value.
+c                   if maxord is changed during the problem, it may
+c                   cause the current order to be reduced.
+c
+c mxstep  iwork(6)  maximum number of (internally defined) steps
+c                   allowed during one CALL to the solver.
+c                   the default value is 500.
+c
+c mxhnil  iwork(7)  maximum number of messages printed (per problem)
+c                   warning that t + h = t on a step (h = step size).
+c                   this must be positive to result in a non-default
+c                   value.  the default value is 10.
+c-----------------------------------------------------------------------
+c optional outputs.
+c
+c as optional additional output from lsodes, the variables listed
+c below are quantities related to the performance of lsodes
+c which are available to the user.  these are communicated by way of
+c the work arrays, but also have internal mnemonic names as shown.
+c except where stated otherwise, all of these outputs are defined
+c on any successful return from lsodes, and on any return with
+c istate = -1, -2, -4, -5, or -6.  on an illegal input return
+c (istate = -3), they will be unchanged from their existing values
+c (if any), except possibly for tolsf, lenrw, and leniw.
+c on any error return, outputs relevant to the error will be defined,
+c as noted below.
+c
+c name    location      meaning
+c
+c hu      rwork(11) the step size in t last used (successfully).
+c
+c hcur    rwork(12) the step size to be attempted on the next step.
+c
+c tcur    rwork(13) the current value of the independent variable
+c                   which the solver has actually reached, i.e. the
+c                   current internal mesh point in t.  on output, tcur
+c                   will always be at least as far as the argument
+c                   t, but may be farther (if interpolation was done).
+c
+c tolsf   rwork(14) a tolerance scale factor, greater than 1.0,
+c                   computed when a request for too much accuracy was
+c                   detected (istate = -3 if detected at the start of
+c                   the problem, istate = -2 otherwise).  if itol is
+c                   left unaltered but RelTol and AbsTol are uniformly
+c                   scaled up by a factor of tolsf for the next call,
+c                   then the solver is deemed likely to succeed.
+c                   (the user may also ignore tolsf and alter the
+c                   tolerance parameters in any other way appropriate.)
+c
+c nst     iwork(11) the number of steps taken for the problem so far.
+c
+c nfe     iwork(12) the number of f evaluations for the problem so far,
+c                   excluding those for structure determination
+c                   (moss = 2).
+c
+c nje     iwork(13) the number of jacobian evaluations for the problem
+c                   so far, excluding those for structure determination
+c                   (moss = 1).
+c
+c nqu     iwork(14) the method order last used (successfully).
+c
+c nqcur   iwork(15) the order to be attempted on the next step.
+c
+c imxer   iwork(16) the index of the component of largest magnitude in
+c                   the weighted local error vector ( e(i)/ewt(i) ),
+c                   on an error return with istate = -4 or -5.
+c
+c lenrw   iwork(17) the length of rwork actually required.
+c                   this is defined on normal returns and on an illegal
+c                   input return for insufficient storage.
+c
+c leniw   iwork(18) the length of iwork actually required.
+c                   this is defined on normal returns and on an illegal
+c                   input return for insufficient storage.
+c
+c nnz     iwork(19) the number of nonzero elements in the jacobian
+c                   matrix, including the diagonal (miter = 1 or 2).
+c                   (this may differ from that given by ia(neq+1)-1
+c                   if moss = 0, because of added diagonal entries.)
+c
+c ngp     iwork(20) the number of groups of column indices, used in
+c                   difference quotient jacobian aproximations if
+c                   miter = 2.  this is also the number of extra f
+c                   evaluations needed for each jacobian evaluation.
+c
+c nlu     iwork(21) the number of sparse lu decompositions for the
+c                   problem so far.
+c
+c lyh     iwork(22) the base address in rwork of the history array yh,
+c                   described below in this list.
+c
+c ipian   iwork(23) the base address of the structure descriptor array
+c                   ian, described below in this list.
+c
+c ipjan   iwork(24) the base address of the structure descriptor array
+c                   jan, described below in this list.
+c
+c nzl     iwork(25) the number of nonzero elements in the strict lower
+c                   triangle of the lu factorization used in the chord
+c                   iteration (miter = 1 or 2).
+c
+c nzu     iwork(26) the number of nonzero elements in the strict upper
+c                   triangle of the lu factorization used in the chord
+c                   iteration (miter = 1 or 2).
+c                   the total number of nonzeros in the factorization
+c                   is therefore nzl + nzu + neq.
+c
+c the following four arrays are segments of the rwork array which
+c may also be of interest to the user as optional outputs.
+c for each array, the table below gives its internal name,
+c its base address, and its description.
+c for yh and acor, the base addresses are in rwork (a real array).
+c the integer arrays ian and jan are to be obtained by declaring an
+c integer array iwk and identifying iwk(1) with rwork(21), using either
+c an equivalence statement or a subroutine call.  then the base
+c addresses ipian (of ian) and ipjan (of jan) in iwk are to be obtained
+c as optional outputs iwork(23) and iwork(24), respectively.
+c thus ian(1) is iwk(ipian), etc.
+c
+c name    base address      description
+c
+c ian    ipian (in iwk)  structure descriptor array of size neq + 1.
+c jan    ipjan (in iwk)  structure descriptor array of size nnz.
+c         (see above)    ian and jan together describe the sparsity
+c                        structure of the jacobian matrix, as used by
+c                        lsodes when miter = 1 or 2.
+c                        jan contains the row indices of the nonzero
+c                        locations, reading in columnwise order, and
+c                        ian contains the starting locations in jan of
+c                        the descriptions of columns 1,...,neq, in
+c                        that order, with ian(1) = 1.  thus for each
+c                        j = 1,...,neq, the row indices i of the
+c                        nonzero locations in column j are
+c                        i = jan(k),  ian(j) .le. k .lt. ian(j+1).
+c                        note that ian(neq+1) = nnz + 1.
+c                        (if moss = 0, ian/jan may differ from the
+c                        input ia/ja because of a different ordering
+c                        in each column, and added diagonal entries.)
+c
+c yh      lyh            the nordsieck history array, of size nyh by
+c          (optional     (nqcur + 1), where nyh is the initial value
+c          output)       of neq.  for j = 0,1,...,nqcur, column j+1
+c                        of yh contains hcur**j/factorial(j) times
+c                        the j-th derivative of the interpolating
+c                        polynomial currently representing the solution,
+c                        evaluated at t = tcur.  the base address lyh
+c                        is another optional output, listed above.
+c
+c acor     lenrw-neq+1   array of size neq used for the accumulated
+c                        corrections on each step, scaled on output
+c                        to represent the estimated local error in y
+c                        on the last step.  this is the vector e in
+c                        the description of the error control.  it is
+c                        defined only on a successful return from
+c                        lsodes.
+c
+c-----------------------------------------------------------------------
+c part ii.  other routines callable.
+c
+c the following are optional calls which the user may make to
+c gain additional capabilities in conjunction with lsodes.
+c (the routines xsetun and xsetf are designed to conform to the
+c slatec error handling package.)
+c
+c     form of CALL                  function
+c   CALL xsetun(lun)          set the logical unit number, lun, for
+c                             output of messages from lsodes, if
+c                             the default is not desired.
+c                             the default value of lun is 6.
+c
+c   CALL xsetf(mflag)         set a flag to control the printing of
+c                             messages by lsodes.
+c                             mflag = 0 means do not print. (danger..
+c                             this risks losing valuable information.)
+c                             mflag = 1 means print (the default).
+c
+c                             either of the above calls may be made at
+c                             any time and will take effect immediately.
+c
+c   CALL srcms(rsav,isav,job) saves and restores the contents of
+c                             the internal common blocks used by
+c                             lsodes (see part iii below).
+c                             rsav must be a real array of length 224
+c                             or more, and isav must be an integer
+c                             array of length 75 or more.
+c                             job=1 means save common into rsav/isav.
+c                             job=2 means restore common from rsav/isav.
+c                                srcms is useful if one is
+c                             interrupting a run and restarting
+c                             later, or alternating between two or
+c                             more problems solved with lsodes.
+c
+c   CALL intdy(,,,,,)         provide derivatives of y, of various
+c        (see below)          orders, at a specified point t, if
+c                             desired.  it may be called only after
+c                             a successful return from lsodes.
+c
+c the detailed instructions for using intdy are as follows.
+c the form of the CALL is..
+c
+c   lyh = iwork(22)
+c   CALL intdy (t, k, rwork(lyh), nyh, dky, iflag)
+c
+c the input parameters are..
+c
+c t         = value of independent variable where answers are desired
+c             (normally the same as the t last returned by lsodes).
+c             for valid results, t must lie between tcur - hu and tcur.
+c             (see optional outputs for tcur and hu.)
+c k         = integer order of the derivative desired.  k must satisfy
+c             0 .le. k .le. nqcur, where nqcur is the current order
+c             (see optional outputs).  the capability corresponding
+c             to k = 0, i.e. computing y(t), is already provided
+c             by lsodes directly.  since nqcur .ge. 1, the first
+c             derivative dy/dt is always available with intdy.
+c lyh       = the base address of the history array yh, obtained
+c             as an optional output as shown above.
+c nyh       = column length of yh, equal to the initial value of neq.
+c
+c the output parameters are..
+c
+c dky       = a real array of length neq containing the computed value
+c             of the k-th derivative of y(t).
+c iflag     = integer flag, returned as 0 if k and t were legal,
+c             -1 if k was illegal, and -2 if t was illegal.
+c             on an error return, a message is also written.
+c-----------------------------------------------------------------------
+c part iii.  common blocks.
+c
+c if lsodes is to be used in an overlay situation, the user
+c must declare, in the primary overlay, the variables in..
+c   (1) the CALL sequence to lsodes,
+c   (2) the three internal common blocks
+c         /ls0001/  of length  257  (218 KPP_REAL words
+c                         followed by 39 integer words),
+c         /lss001/  of length  40    ( 6 KPP_REAL words
+c                         followed by 34 integer words),
+c         /eh0001/  of length  2 (integer words).
+c
+c if lsodes is used on a system in which the contents of internal
+c common blocks are not preserved between calls, the user should
+c declare the above three common blocks in his main program to insure
+c that their contents are preserved.
+c
+c if the solution of a given problem by lsodes is to be interrupted
+c and then later continued, such as when restarting an interrupted run
+c or alternating between two or more problems, the user should save,
+c following the return from the last lsodes CALL prior to the
+c interruption, the contents of the CALL sequence variables and the
+c internal common blocks, and later restore these values before the
+c next lsodes CALL for that problem.  to save and restore the common
+c blocks, use subroutine srcms (see part ii above).
+c
+c-----------------------------------------------------------------------
+c part iv.  optionally replaceable solver routines.
+c
+c below are descriptions of two routines in the lsodes package which
+c relate to the measurement of errors.  either routine can be
+c replaced by a user-supplied version, if desired.  however, since such
+c a replacement may have a major impact on performance, it should be
+c done only when absolutely necessary, and only with great caution.
+c (note.. the means by which the package version of a routine is
+c superseded by the user-s version may be system-dependent.)
+c
+c (a) ewset.
+c the following subroutine is called just before each internal
+c integration step, and sets the array of error weights, ewt, as
+c described under itol/RelTol/AbsTol above..
+c     subroutine ewset (neq, itol, RelTol, AbsTol, ycur, ewt)
+c where neq, itol, RelTol, and AbsTol are as in the lsodes CALL sequence,
+c ycur contains the current dependent variable vector, and
+c ewt is the array of weights set by ewset.
+c
+c if the user supplies this subroutine, it must return in ewt(i)
+c (i = 1,...,neq) a positive quantity suitable for comparing errors
+c in y(i) to.  the ewt array returned by ewset is passed to the
+c vnorm routine (see below), and also used by lsodes in the computation
+c of the optional output imxer, the diagonal jacobian approximation,
+c and the increments for difference quotient jacobians.
+c
+c in the user-supplied version of ewset, it may be desirable to use
+c the current values of derivatives of y.  derivatives up to order nq
+c are available from the history array yh, described above under
+c optional outputs.  in ewset, yh is identical to the ycur array,
+c extended to nq + 1 columns with a column length of nyh and scale
+c factors of h**j/factorial(j).  on the first CALL for the problem,
+c given by nst = 0, nq is 1 and h is temporarily set to 1.0.
+c the quantities nq, nyh, h, and nst can be obtained by including
+c in ewset the statements..
+c     KPP_REAL h, rls
+c     common /ls0001/ rls(218),ils(39)
+c     nq = ils(35)
+c     nyh = ils(14)
+c     nst = ils(36)
+c     h = rls(212)
+c thus, for example, the current value of dy/dt can be obtained as
+c ycur(nyh+i)/h  (i=1,...,neq)  (and the division by h is
+c unnecessary when nst = 0).
+c
+c (b) vnorm.
+c the following is a real function routine which computes the weighted
+c root-mean-square norm of a vector v..
+c     d = vnorm (n, v, w)
+c where..
+c   n = the length of the vector,
+c   v = real array of length n containing the vector,
+c   w = real array of length n containing weights,
+c   d = sqrt( (1/n) * sum(v(i)*w(i))**2 ).
+c vnorm is called with n = neq and with w(i) = 1.0/ewt(i), where
+c ewt is as set by subroutine ewset.
+c
+c if the user supplies this function, it should return a non-negative
+c value of vnorm suitable for use in the error control in lsodes.
+c none of the arguments should be altered by vnorm.
+c for example, a user-supplied vnorm routine might..
+c   -substitute a max-norm of (v(i)*w(i)) for the rms-norm, or
+c   -ignore some components of v in the norm, with the effect of
+c    suppressing the error control on those components of y.
+c-----------------------------------------------------------------------
+c-----------------------------------------------------------------------
+c other routines in the lsodes package.
+c
+c in addition to subroutine lsodes, the lsodes package includes the
+c following subroutines and function routines..
+c  iprep    acts as an iterface between lsodes and prep, and also does
+c           adjusting of work space pointers and work arrays.
+c  prep     is called by iprep to compute sparsity and do sparse matrix
+c           preprocessing if miter = 1 or 2.
+c  jgroup   is called by prep to compute groups of jacobian column
+c           indices for use when miter = 2.
+c  adjlr    adjusts the length of required sparse matrix work space.
+c           it is called by prep.
+c  cntnzu   is called by prep and counts the nonzero elements in the
+c           strict upper triangle of j + j-transpose, where j = df/dy.
+c  intdy    computes an interpolated value of the y vector at t = tout.
+c  stode    is the core integrator, which does one step of the
+c           integration and the associated error control.
+c  cfode    sets all method coefficients and test constants.
+c  prjs     computes and preprocesses the jacobian matrix j = df/dy
+c           and the newton iteration matrix p = i - h*l0*j.
+c  slss     manages solution of linear system in chord iteration.
+c  ewset    sets the error weight vector ewt before each step.
+c  vnorm    computes the weighted r.m.s. norm of a vector.
+c  srcms    is a user-callable routine to save and restore
+c           the contents of the internal common blocks.
+c  odrv     constructs a reordering of the rows and columns of
+c           a matrix by the minimum degree algorithm.  odrv is a
+c           driver routine which calls subroutines md, mdi, mdm,
+c           mdp, mdu, and sro.  see ref. 2 for details.  (the odrv
+c           module has been modified since ref. 2, however.)
+c  cdrv     performs reordering, symbolic factorization, numerical
+c           factorization, or linear system solution operations,
+c           depending on a path argument ipath.  cdrv is a
+c           driver routine which calls subroutines nroc, nsfc,
+c           nnfc, nnsc, and nntc.  see ref. 3 for details.
+c           lsodes uses cdrv to solve linear systems in which the
+c           coefficient matrix is  p = i - con*j, where i is the
+c           identity, con is a scalar, and j is an approximation to
+c           the jacobian df/dy.  because cdrv deals with rowwise
+c           sparsity descriptions, cdrv works with p-transpose, not p.
+c  d1mach   computes the unit roundoff in a machine-independent manner.
+c  xerrwv, xsetun, and xsetf   handle the printing of all error
+c           messages and warnings.  xerrwv is machine-dependent.
+c note..  vnorm and d1mach are function routines.
+c all the others are subroutines.
+c
+c the intrinsic and external routines used by lsodes are..
+c dabs, DMAX1, dmin1, dfloat, max0, min0, mod, DSIGN, DSQRT, and write.
+c
+c a block data subprogram is also included with the package,
+c for loading some of the variables in internal common.
+c
+c-----------------------------------------------------------------------
+c the following card is for optimized compilation on lll compilers.
+clll. optimize
+c-----------------------------------------------------------------------
+      external prjs, slss
+      integer illin, init, lyh, lewt, lacor, lsavf, lwm, liwm,
+     1   mxstep, mxhnil, nhnil, ntrep, nslast, nyh, iowns
+      integer icf, ierpj, iersl, jcur, jstart, kflag, l, meth, miter,
+     1   maxord, maxcor, msbp, mxncf, n, nq, nst, nfe, nje, nqu
+      integer iplost, iesp, istatc, iys, iba, ibian, ibjan, ibjgp,
+     1   ipian, ipjan, ipjgp, ipigp, ipr, ipc, ipic, ipisp, iprsp, ipa,
+     2   lenyh, lenyhm, lenwk, lreq, lrat, lrest, lwmin, moss, msbj,
+     3   nslj, ngp, nlu, nnz, nsp, nzl, nzu
+      integer i, i1, i2, iflag, imax, imul, imxer, ipflag, ipgo, irem,
+     1   j, kgo, lenrat, lenyht, leniw, lenrw, lf0, lia, lja,
+     2   lrtem, lwtem, lyhd, lyhn, mf1, mord, mxhnl0, mxstp0, ncolm
+      KPP_REAL rowns,
+     1   ccmax, el0, h, hmin, hmxi, hu, rc, tn, uround
+      KPP_REAL con0, conmin, ccmxj, psmall, rbig, seth
+      KPP_REAL AbsToli, ayi, big, ewti, h0, hmax, hmx, rh, RelToli,
+     1   tcrit, tdist, tnext, tol, tolsf, tp, size, sum, w0,
+     2   d1mach, vnorm
+      dimension mord(2)
+      logical ihit
+c-----------------------------------------------------------------------
+c the following two internal common blocks contain
+c (a) variables which are local to any subroutine but whose values must
+c     be preserved between calls to the routine (own variables), and
+c (b) variables which are communicated between subroutines.
+c the structure of each block is as follows..  all real variables are
+c listed first, followed by all integers.  within each type, the
+c variables are grouped with those local to subroutine lsodes first,
+c then those local to subroutine stode or subroutine prjs
+c (no other routines have own variables), and finally those used
+c for communication.  the block ls0001 is declared in subroutines
+c lsodes, iprep, prep, intdy, stode, prjs, and slss.  the block lss001
+c is declared in subroutines lsodes, iprep, prep, prjs, and slss.
+c groups of variables are replaced by dummy arrays in the common
+c declarations in routines where those variables are not used.
+c-----------------------------------------------------------------------
+      common /ls0001/ rowns(209),
+     1   ccmax, el0, h, hmin, hmxi, hu, rc, tn, uround,
+     2   illin, init, lyh, lewt, lacor, lsavf, lwm, liwm,
+     3   mxstep, mxhnil, nhnil, ntrep, nslast, nyh, iowns(6),
+     4   icf, ierpj, iersl, jcur, jstart, kflag, l, meth, miter,
+     5   maxord, maxcor, msbp, mxncf, n, nq, nst, nfe, nje, nqu
+c
+      common /lss001/ con0, conmin, ccmxj, psmall, rbig, seth,
+     1   iplost, iesp, istatc, iys, iba, ibian, ibjan, ibjgp,
+     2   ipian, ipjan, ipjgp, ipigp, ipr, ipc, ipic, ipisp, iprsp, ipa,
+     3   lenyh, lenyhm, lenwk, lreq, lrat, lrest, lwmin, moss, msbj,
+     4   nslj, ngp, nlu, nnz, nsp, nzl, nzu
+c
+      data mord(1),mord(2)/12,5/, mxstp0/500/, mxhnl0/10/
+c-----------------------------------------------------------------------
+c in the data statement below, set lenrat equal to the ratio of
+c the wordlength for a real number to that for an integer.  usually,
+c lenrat = 1 for single precision and 2 for KPP_REAL.  if the
+c true ratio is not an integer, use the next smaller integer (.ge. 1).
+c-----------------------------------------------------------------------
+      data lenrat/2/
+c-----------------------------------------------------------------------
+c block a.
+c this code block is executed on every call.
+c it tests istate and itask for legality and branches appropriately.
+c if istate .gt. 1 but the flag init shows that initialization has
+c not yet been done, an error return occurs.
+c if istate = 1 and tout = t, jump to block g and return immediately.
+c-----------------------------------------------------------------------
+      if (istate .lt. 1 .or. istate .gt. 3) go to 601
+      if (itask .lt. 1 .or. itask .gt. 5) go to 602
+      if (istate .eq. 1) go to 10
+      if (init .eq. 0) go to 603
+      if (istate .eq. 2) go to 200
+      go to 20
+ 10   init = 0
+      if (tout .eq. t) go to 430
+ 20   ntrep = 0
+c-----------------------------------------------------------------------
+c block b.
+c the next code block is executed for the initial CALL (istate = 1),
+c or for a continuation CALL with parameter changes (istate = 3).
+c it contains checking of all inputs and various initializations.
+c if istate = 1, the final setting of work space pointers, the matrix
+c preprocessing, and other initializations are done in block c.
+c
+c first check legality of the non-optional inputs neq, itol, iopt,
+c mf, ml, and mu.
+c-----------------------------------------------------------------------
+      if (neq(1) .le. 0) go to 604
+      if (istate .eq. 1) go to 25
+      if (neq(1) .gt. n) go to 605
+ 25   n = neq(1)
+      if (itol .lt. 1 .or. itol .gt. 4) go to 606
+      if (iopt .lt. 0 .or. iopt .gt. 1) go to 607
+      moss = mf/100
+      mf1 = mf - 100*moss
+      meth = mf1/10
+      miter = mf1 - 10*meth
+      if (moss .lt. 0 .or. moss .gt. 2) go to 608
+      if (meth .lt. 1 .or. meth .gt. 2) go to 608
+      if (miter .lt. 0 .or. miter .gt. 3) go to 608
+      if (miter .eq. 0 .or. miter .eq. 3) moss = 0
+c next process and check the optional inputs. --------------------------
+      if (iopt .eq. 1) go to 40
+      maxord = mord(meth)
+      mxstep = mxstp0
+      mxhnil = mxhnl0
+      if (istate .eq. 1) h0 = 0.0d0
+      hmxi = 0.0d0
+      hmin = 0.0d0
+      seth = 0.0d0
+      go to 60
+ 40   maxord = iwork(5)
+      if (maxord .lt. 0) go to 611
+      if (maxord .eq. 0) maxord = 100
+      maxord = min0(maxord,mord(meth))
+      mxstep = iwork(6)
+      if (mxstep .lt. 0) go to 612
+      if (mxstep .eq. 0) mxstep = mxstp0
+      mxhnil = iwork(7)
+      if (mxhnil .lt. 0) go to 613
+      if (mxhnil .eq. 0) mxhnil = mxhnl0
+      if (istate .ne. 1) go to 50
+      h0 = rwork(5)
+      if ((tout - t)*h0 .lt. 0.0d0) go to 614
+ 50   hmax = rwork(6)
+      if (hmax .lt. 0.0d0) go to 615
+      hmxi = 0.0d0
+      if (hmax .gt. 0.0d0) hmxi = 1.0d0/hmax
+      hmin = rwork(7)
+      if (hmin .lt. 0.0d0) go to 616
+      seth = rwork(8)
+      if (seth .lt. 0.0d0) go to 609
+c check RelTol and AbsTol for legality. ------------------------------------
+ 60   RelToli = RelTol(1)
+      AbsToli = AbsTol(1)
+      do 65 i = 1,n
+        if (itol .ge. 3) RelToli = RelTol(i)
+        if (itol .eq. 2 .or. itol .eq. 4) AbsToli = AbsTol(i)
+        if (RelToli .lt. 0.0d0) go to 619
+        if (AbsToli .lt. 0.0d0) go to 620
+ 65     continue
+c-----------------------------------------------------------------------
+c compute required work array lengths, as far as possible, and test
+c these against lrw and liw.  then set tentative pointers for work
+c arrays.  pointers to rwork/iwork segments are named by prefixing l to
+c the name of the segment.  e.g., the segment yh starts at rwork(lyh).
+c segments of rwork (in order) are denoted  wm, yh, savf, ewt, acor.
+c if miter = 1 or 2, the required length of the matrix work space wm
+c is not yet known, and so a crude minimum value is used for the
+c initial tests of lrw and liw, and yh is temporarily stored as far
+c to the right in rwork as possible, to leave the maximum amount
+c of space for wm for matrix preprocessing.  thus if miter = 1 or 2
+c and moss .ne. 2, some of the segments of rwork are temporarily
+c omitted, as they are not needed in the preprocessing.  these
+c omitted segments are.. acor if istate = 1, ewt and acor if istate = 3
+c and moss = 1, and savf, ewt, and acor if istate = 3 and moss = 0.
+c-----------------------------------------------------------------------
+      lrat = lenrat
+      if (istate .eq. 1) nyh = n
+      lwmin = 0
+      if (miter .eq. 1) lwmin = 4*n + 10*n/lrat
+      if (miter .eq. 2) lwmin = 4*n + 11*n/lrat
+      if (miter .eq. 3) lwmin = n + 2
+      lenyh = (maxord+1)*nyh
+      lrest = lenyh + 3*n
+      lenrw = 20 + lwmin + lrest
+      iwork(17) = lenrw
+      leniw = 30
+      if (moss .eq. 0 .and. miter .ne. 0 .and. miter .ne. 3)
+     1   leniw = leniw + n + 1
+      iwork(18) = leniw
+      if (lenrw .gt. lrw) go to 617
+      if (leniw .gt. liw) go to 618
+      lia = 31
+      if (moss .eq. 0 .and. miter .ne. 0 .and. miter .ne. 3)
+     1   leniw = leniw + iwork(lia+n) - 1
+      iwork(18) = leniw
+      if (leniw .gt. liw) go to 618
+      lja = lia + n + 1
+      lia = min0(lia,liw)
+      lja = min0(lja,liw)
+      lwm = 21
+      if (istate .eq. 1) nq = 1
+      ncolm = min0(nq+1,maxord+2)
+      lenyhm = ncolm*nyh
+      lenyht = lenyh
+      if (miter .eq. 1 .or. miter .eq. 2) lenyht = lenyhm
+      imul = 2
+      if (istate .eq. 3) imul = moss
+      if (moss .eq. 2) imul = 3
+      lrtem = lenyht + imul*n
+      lwtem = lwmin
+      if (miter .eq. 1 .or. miter .eq. 2) lwtem = lrw - 20 - lrtem
+      lenwk = lwtem
+      lyhn = lwm + lwtem
+      lsavf = lyhn + lenyht
+      lewt = lsavf + n
+      lacor = lewt + n
+      istatc = istate
+      if (istate .eq. 1) go to 100
+c-----------------------------------------------------------------------
+c istate = 3.  move yh to its new location.
+c note that only the part of yh needed for the next step, namely
+c min(nq+1,maxord+2) columns, is actually moved.
+c a temporary error weight array ewt is loaded if moss = 2.
+c sparse matrix processing is done in iprep/prep if miter = 1 or 2.
+c if maxord was reduced below nq, then the pointers are finally set
+c so that savf is identical to yh(*,maxord+2).
+c-----------------------------------------------------------------------
+      lyhd = lyh - lyhn
+      imax = lyhn - 1 + lenyhm
+c move yh.  branch for move right, no move, or move left. --------------
+      if (lyhd) 70,80,74
+ 70   do 72 i = lyhn,imax
+        j = imax + lyhn - i
+ 72     rwork(j) = rwork(j+lyhd)
+      go to 80
+ 74   do 76 i = lyhn,imax
+ 76     rwork(i) = rwork(i+lyhd)
+ 80   lyh = lyhn
+      iwork(22) = lyh
+      if (miter .eq. 0 .or. miter .eq. 3) go to 92
+      if (moss .ne. 2) go to 85
+c temporarily load ewt if miter = 1 or 2 and moss = 2. -----------------
+      CALL ewset (n, itol, RelTol, AbsTol, rwork(lyh), rwork(lewt))
+      do 82 i = 1,n
+        if (rwork(i+lewt-1) .le. 0.0d0) go to 621
+ 82     rwork(i+lewt-1) = 1.0d0/rwork(i+lewt-1)
+ 85   continue
+c iprep and prep do sparse matrix preprocessing if miter = 1 or 2. -----
+      lsavf = min0(lsavf,lrw)
+      lewt = min0(lewt,lrw)
+      lacor = min0(lacor,lrw)
+      CALL iprep (neq, y, rwork, iwork(lia), iwork(lja), ipflag, f, jac)
+      lenrw = lwm - 1 + lenwk + lrest
+      iwork(17) = lenrw
+      if (ipflag .ne. -1) iwork(23) = ipian
+      if (ipflag .ne. -1) iwork(24) = ipjan
+      ipgo = -ipflag + 1
+      go to (90, 628, 629, 630, 631, 632, 633), ipgo
+ 90   iwork(22) = lyh
+      if (lenrw .gt. lrw) go to 617
+c set flag to signal parameter changes to stode. -----------------------
+ 92   jstart = -1
+      if (n .eq. nyh) go to 200
+c neq was reduced.  zero part of yh to avoid undefined references. -----
+      i1 = lyh + l*nyh
+      i2 = lyh + (maxord + 1)*nyh - 1
+      if (i1 .gt. i2) go to 200
+      do 95 i = i1,i2
+ 95     rwork(i) = 0.0d0
+      go to 200
+c-----------------------------------------------------------------------
+c block c.
+c the next block is for the initial CALL only (istate = 1).
+c it contains all remaining initializations, the initial CALL to f,
+c the sparse matrix preprocessing (miter = 1 or 2), and the
+c calculation of the initial step size.
+c the error weights in ewt are inverted after being loaded.
+c-----------------------------------------------------------------------
+ 100  continue
+      lyh = lyhn
+      iwork(22) = lyh
+      tn = t
+      nst = 0
+      h = 1.0d0
+      nnz = 0
+      ngp = 0
+      nzl = 0
+      nzu = 0
+c load the initial value vector in yh. ---------------------------------
+      do 105 i = 1,n
+ 105    rwork(i+lyh-1) = y(i)
+c initial CALL to f.  (lf0 points to yh(*,2).) -------------------------
+      lf0 = lyh + nyh
+      CALL f (neq, t, y, rwork(lf0))
+      nfe = 1
+c load and invert the ewt array.  (h is temporarily set to 1.0.) -------
+      CALL ewset (n, itol, RelTol, AbsTol, rwork(lyh), rwork(lewt))
+      do 110 i = 1,n
+        if (rwork(i+lewt-1) .le. 0.0d0) go to 621
+ 110    rwork(i+lewt-1) = 1.0d0/rwork(i+lewt-1)
+      if (miter .eq. 0 .or. miter .eq. 3) go to 120
+c iprep and prep do sparse matrix preprocessing if miter = 1 or 2. -----
+      lacor = min0(lacor,lrw)
+      CALL iprep (neq, y, rwork, iwork(lia), iwork(lja), ipflag, f, jac)
+      lenrw = lwm - 1 + lenwk + lrest
+      iwork(17) = lenrw
+      if (ipflag .ne. -1) iwork(23) = ipian
+      if (ipflag .ne. -1) iwork(24) = ipjan
+      ipgo = -ipflag + 1
+      go to (115, 628, 629, 630, 631, 632, 633), ipgo
+ 115  iwork(22) = lyh
+      if (lenrw .gt. lrw) go to 617
+c check tcrit for legality (itask = 4 or 5). ---------------------------
+ 120  continue
+      if (itask .ne. 4 .and. itask .ne. 5) go to 125
+      tcrit = rwork(1)
+      if ((tcrit - tout)*(tout - t) .lt. 0.0d0) go to 625
+      if (h0 .ne. 0.0d0 .and. (t + h0 - tcrit)*h0 .gt. 0.0d0)
+     1   h0 = tcrit - t
+c initialize all remaining parameters. ---------------------------------
+ 125  uround = d1mach(4)
+      jstart = 0
+      if (miter .ne. 0) rwork(lwm) = DSQRT(uround)
+      msbj = 50
+      nslj = 0
+      ccmxj = 0.2d0
+      psmall = 1000.0d0*uround
+      rbig = 0.01d0/psmall
+      nhnil = 0
+      nje = 0
+      nlu = 0
+      nslast = 0
+      hu = 0.0d0
+      nqu = 0
+      ccmax = 0.3d0
+      maxcor = 3
+      msbp = 20
+      mxncf = 10
+c-----------------------------------------------------------------------
+c the coding below computes the step size, h0, to be attempted on the
+c first step, unless the user has supplied a value for this.
+c first check that tout - t differs significantly from zero.
+c a scalar tolerance quantity tol is computed, as max(RelTol(i))
+c if this is positive, or max(AbsTol(i)/abs(y(i))) otherwise, adjusted
+c so as to be between 100*uround and 1.0e-3.
+c then the computed value h0 is given by..
+c                                      neq
+c   h0**2 = tol / ( w0**-2 + (1/neq) * sum ( f(i)/ywt(i) )**2  )
+c                                       1
+c where   w0     = max ( abs(t), abs(tout) ),
+c         f(i)   = i-th component of initial value of f,
+c         ywt(i) = ewt(i)/tol  (a weight for y(i)).
+c the sign of h0 is inferred from the initial values of tout and t.
+c-----------------------------------------------------------------------
+      lf0 = lyh + nyh
+      if (h0 .ne. 0.0d0) go to 180
+      tdist = dabs(tout - t)
+      w0 = DMAX1(dabs(t),dabs(tout))
+      if (tdist .lt. 2.0d0*uround*w0) go to 622
+      tol = RelTol(1)
+      if (itol .le. 2) go to 140
+      do 130 i = 1,n
+ 130    tol = DMAX1(tol,RelTol(i))
+ 140  if (tol .gt. 0.0d0) go to 160
+      AbsToli = AbsTol(1)
+      do 150 i = 1,n
+        if (itol .eq. 2 .or. itol .eq. 4) AbsToli = AbsTol(i)
+        ayi = dabs(y(i))
+        if (ayi .ne. 0.0d0) tol = DMAX1(tol,AbsToli/ayi)
+ 150    continue
+ 160  tol = DMAX1(tol,100.0d0*uround)
+      tol = dmin1(tol,0.001d0)
+      sum = vnorm (n, rwork(lf0), rwork(lewt))
+      sum = 1.0d0/(tol*w0*w0) + tol*sum**2
+      h0 = 1.0d0/DSQRT(sum)
+      h0 = dmin1(h0,tdist)
+      h0 = DSIGN(h0,tout-t)
+c adjust h0 if necessary to meet hmax bound. ---------------------------
+ 180  rh = dabs(h0)*hmxi
+      if (rh .gt. 1.0d0) h0 = h0/rh
+c load h with h0 and scale yh(*,2) by h0. ------------------------------
+      h = h0
+      do 190 i = 1,n
+ 190    rwork(i+lf0-1) = h0*rwork(i+lf0-1)
+      go to 270
+c-----------------------------------------------------------------------
+c block d.
+c the next code block is for continuation calls only (istate = 2 or 3)
+c and is to check stop conditions before taking a step.
+c-----------------------------------------------------------------------
+ 200  nslast = nst
+      go to (210, 250, 220, 230, 240), itask
+ 210  if ((tn - tout)*h .lt. 0.0d0) go to 250
+      CALL intdy (tout, 0, rwork(lyh), nyh, y, iflag)
+      if (iflag .ne. 0) go to 627
+      t = tout
+      go to 420
+ 220  tp = tn - hu*(1.0d0 + 100.0d0*uround)
+      if ((tp - tout)*h .gt. 0.0d0) go to 623
+      if ((tn - tout)*h .lt. 0.0d0) go to 250
+      go to 400
+ 230  tcrit = rwork(1)
+      if ((tn - tcrit)*h .gt. 0.0d0) go to 624
+      if ((tcrit - tout)*h .lt. 0.0d0) go to 625
+      if ((tn - tout)*h .lt. 0.0d0) go to 245
+      CALL intdy (tout, 0, rwork(lyh), nyh, y, iflag)
+      if (iflag .ne. 0) go to 627
+      t = tout
+      go to 420
+ 240  tcrit = rwork(1)
+      if ((tn - tcrit)*h .gt. 0.0d0) go to 624
+ 245  hmx = dabs(tn) + dabs(h)
+      ihit = dabs(tn - tcrit) .le. 100.0d0*uround*hmx
+      if (ihit) go to 400
+      tnext = tn + h*(1.0d0 + 4.0d0*uround)
+      if ((tnext - tcrit)*h .le. 0.0d0) go to 250
+      h = (tcrit - tn)*(1.0d0 - 4.0d0*uround)
+      if (istate .eq. 2) jstart = -2
+c-----------------------------------------------------------------------
+c block e.
+c the next block is normally executed for all calls and contains
+c the CALL to the one-step core integrator stode.
+c
+c this is a looping point for the integration steps.
+c
+c first check for too many steps being taken, update ewt (if not at
+c start of problem), check for too much accuracy being requested, and
+c check for h below the roundoff level in t.
+c-----------------------------------------------------------------------
+ 250  continue
+      if ((nst-nslast) .ge. mxstep) go to 500
+      CALL ewset (n, itol, RelTol, AbsTol, rwork(lyh), rwork(lewt))
+      do 260 i = 1,n
+        if (rwork(i+lewt-1) .le. 0.0d0) go to 510
+ 260    rwork(i+lewt-1) = 1.0d0/rwork(i+lewt-1)
+ 270  tolsf = uround*vnorm (n, rwork(lyh), rwork(lewt))
+      if (tolsf .le. 1.0d0) go to 280
+      tolsf = tolsf*2.0d0
+      if (nst .eq. 0) go to 626
+      go to 520
+ 280  if ((tn + h) .ne. tn) go to 290
+      nhnil = nhnil + 1
+      if (nhnil .gt. mxhnil) go to 290
+      CALL xerrwv(50hlsodes-- warning..internal t (=r1) and h (=r2) are,
+     1   50, 101, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
+      CALL xerrwv(
+     1  60h      such that in the machine, t + h = t on the next step  ,
+     1   60, 101, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
+      CALL xerrwv(50h      (h = step size). solver will continue anyway,
+     1   50, 101, 0, 0, 0, 0, 2, tn, h)
+      if (nhnil .lt. mxhnil) go to 290
+      CALL xerrwv(50hlsodes-- above warning has been issued i1 times.  ,
+     1   50, 102, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
+      CALL xerrwv(50h      it will not be issued again for this problem,
+     1   50, 102, 0, 1, mxhnil, 0, 0, 0.0d0, 0.0d0)
+ 290  continue
+c-----------------------------------------------------------------------
+c    CALL stode(neq,y,yh,nyh,yh,ewt,savf,acor,wm,wm,f,jac,prjs,slss)
+c-----------------------------------------------------------------------
+      CALL stode (neq, y, rwork(lyh), nyh, rwork(lyh), rwork(lewt),
+     1   rwork(lsavf), rwork(lacor), rwork(lwm), rwork(lwm),
+     2   f, jac, prjs, slss)
+      kgo = 1 - kflag
+      go to (300, 530, 540, 550), kgo
+c-----------------------------------------------------------------------
+c block f.
+c the following block handles the case of a successful return from the
+c core integrator (kflag = 0).  test for stop conditions.
+c-----------------------------------------------------------------------
+ 300  init = 1
+      go to (310, 400, 330, 340, 350), itask
+c itask = 1.  if tout has been reached, interpolate. -------------------
+ 310  if ((tn - tout)*h .lt. 0.0d0) go to 250
+      CALL intdy (tout, 0, rwork(lyh), nyh, y, iflag)
+      t = tout
+      go to 420
+c itask = 3.  jump to exit if tout was reached. ------------------------
+ 330  if ((tn - tout)*h .ge. 0.0d0) go to 400
+      go to 250
+c itask = 4.  see if tout or tcrit was reached.  adjust h if necessary.
+ 340  if ((tn - tout)*h .lt. 0.0d0) go to 345
+      CALL intdy (tout, 0, rwork(lyh), nyh, y, iflag)
+      t = tout
+      go to 420
+ 345  hmx = dabs(tn) + dabs(h)
+      ihit = dabs(tn - tcrit) .le. 100.0d0*uround*hmx
+      if (ihit) go to 400
+      tnext = tn + h*(1.0d0 + 4.0d0*uround)
+      if ((tnext - tcrit)*h .le. 0.0d0) go to 250
+      h = (tcrit - tn)*(1.0d0 - 4.0d0*uround)
+      jstart = -2
+      go to 250
+c itask = 5.  see if tcrit was reached and jump to exit. ---------------
+ 350  hmx = dabs(tn) + dabs(h)
+      ihit = dabs(tn - tcrit) .le. 100.0d0*uround*hmx
+c-----------------------------------------------------------------------
+c block g.
+c the following block handles all successful returns from lsodes.
+c if itask .ne. 1, y is loaded from yh and t is set accordingly.
+c istate is set to 2, the illegal input counter is zeroed, and the
+c optional outputs are loaded into the work arrays before returning.
+c if istate = 1 and tout = t, there is a return with no action taken,
+c except that if this has happened repeatedly, the run is terminated.
+c-----------------------------------------------------------------------
+ 400  do 410 i = 1,n
+ 410    y(i) = rwork(i+lyh-1)
+      t = tn
+      if (itask .ne. 4 .and. itask .ne. 5) go to 420
+      if (ihit) t = tcrit
+ 420  istate = 2
+      illin = 0
+      rwork(11) = hu
+      rwork(12) = h
+      rwork(13) = tn
+      iwork(11) = nst
+      iwork(12) = nfe
+      iwork(13) = nje
+      iwork(14) = nqu
+      iwork(15) = nq
+      iwork(19) = nnz
+      iwork(20) = ngp
+      iwork(21) = nlu
+      iwork(25) = nzl
+      iwork(26) = nzu
+      return
+c
+ 430  ntrep = ntrep + 1
+      if (ntrep .lt. 5) return
+      CALL xerrwv(
+     1  60hlsodes-- repeated calls with istate = 1 and tout = t (=r1)  ,
+     1   60, 301, 0, 0, 0, 0, 1, t, 0.0d0)
+      go to 800
+c-----------------------------------------------------------------------
+c block h.
+c the following block handles all unsuccessful returns other than
+c those for illegal input.  first the error message routine is called.
+c if there was an error test or convergence test failure, imxer is set.
+c then y is loaded from yh, t is set to tn, and the illegal input
+c counter illin is set to 0.  the optional outputs are loaded into
+c the work arrays before returning.
+c-----------------------------------------------------------------------
+c the maximum number of steps was taken before reaching tout. ----------
+ 500  CALL xerrwv(50hlsodes-- at current t (=r1), mxstep (=i1) steps   ,
+     1   50, 201, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
+      CALL xerrwv(50h      taken on this CALL before reaching tout     ,
+     1   50, 201, 0, 1, mxstep, 0, 1, tn, 0.0d0)
+      istate = -1
+      go to 580
+c ewt(i) .le. 0.0 for some i (not at start of problem). ----------------
+ 510  ewti = rwork(lewt+i-1)
+      CALL xerrwv(50hlsodes-- at t (=r1), ewt(i1) has become r2 .le. 0.,
+     1   50, 202, 0, 1, i, 0, 2, tn, ewti)
+      istate = -6
+      go to 580
+c too much accuracy requested for machine precision. -------------------
+ 520  CALL xerrwv(50hlsodes-- at t (=r1), too much accuracy requested  ,
+     1   50, 203, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
+      CALL xerrwv(50h      for precision of machine..  see tolsf (=r2) ,
+     1   50, 203, 0, 0, 0, 0, 2, tn, tolsf)
+      rwork(14) = tolsf
+      istate = -2
+      go to 580
+c kflag = -1.  error test failed repeatedly or with abs(h) = hmin. -----
+ 530  CALL xerrwv(50hlsodes-- at t(=r1) and step size h(=r2), the error,
+     1   50, 204, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
+      CALL xerrwv(50h      test failed repeatedly or with abs(h) = hmin,
+     1   50, 204, 0, 0, 0, 0, 2, tn, h)
+      istate = -4
+      go to 560
+c kflag = -2.  convergence failed repeatedly or with abs(h) = hmin. ----
+ 540  CALL xerrwv(50hlsodes-- at t (=r1) and step size h (=r2), the    ,
+     1   50, 205, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
+      CALL xerrwv(50h      corrector convergence failed repeatedly     ,
+     1   50, 205, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
+      CALL xerrwv(30h      or with abs(h) = hmin   ,
+     1   30, 205, 0, 0, 0, 0, 2, tn, h)
+      istate = -5
+      go to 560
+c kflag = -3.  fatal error flag returned by prjs or slss (cdrv). -------
+ 550  CALL xerrwv(50hlsodes-- at t (=r1) and step size h (=r2), a fatal,
+     1   50, 207, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
+      CALL xerrwv(50h      error flag was returned by cdrv (by way of  ,
+     1   50, 207, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
+      CALL xerrwv(30h      subroutine prjs or slss),
+     1   30, 207, 0, 0, 0, 0, 2, tn, h)
+      istate = -7
+      go to 580
+c compute imxer if relevant. -------------------------------------------
+ 560  big = 0.0d0
+      imxer = 1
+      do 570 i = 1,n
+        size = dabs(rwork(i+lacor-1)*rwork(i+lewt-1))
+        if (big .ge. size) go to 570
+        big = size
+        imxer = i
+ 570    continue
+      iwork(16) = imxer
+c set y vector, t, illin, and optional outputs. ------------------------
+ 580  do 590 i = 1,n
+ 590    y(i) = rwork(i+lyh-1)
+      t = tn
+      illin = 0
+      rwork(11) = hu
+      rwork(12) = h
+      rwork(13) = tn
+      iwork(11) = nst
+      iwork(12) = nfe
+      iwork(13) = nje
+      iwork(14) = nqu
+      iwork(15) = nq
+      iwork(19) = nnz
+      iwork(20) = ngp
+      iwork(21) = nlu
+      iwork(25) = nzl
+      iwork(26) = nzu
+      return
+c-----------------------------------------------------------------------
+c block i.
+c the following block handles all error returns due to illegal input
+c (istate = -3), as detected before calling the core integrator.
+c first the error message routine is called.  then if there have been
+c 5 consecutive such returns just before this CALL to the solver,
+c the run is halted.
+c-----------------------------------------------------------------------
+ 601  CALL xerrwv(30hlsodes-- istate (=i1) illegal ,
+     1   30, 1, 0, 1, istate, 0, 0, 0.0d0, 0.0d0)
+      go to 700
+ 602  CALL xerrwv(30hlsodes-- itask (=i1) illegal  ,
+     1   30, 2, 0, 1, itask, 0, 0, 0.0d0, 0.0d0)
+      go to 700
+ 603  CALL xerrwv(50hlsodes-- istate .gt. 1 but lsodes not initialized ,
+     1   50, 3, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
+      go to 700
+ 604  CALL xerrwv(30hlsodes-- neq (=i1) .lt. 1     ,
+     1   30, 4, 0, 1, neq(1), 0, 0, 0.0d0, 0.0d0)
+      go to 700
+ 605  CALL xerrwv(50hlsodes-- istate = 3 and neq increased (i1 to i2)  ,
+     1   50, 5, 0, 2, n, neq(1), 0, 0.0d0, 0.0d0)
+      go to 700
+ 606  CALL xerrwv(30hlsodes-- itol (=i1) illegal   ,
+     1   30, 6, 0, 1, itol, 0, 0, 0.0d0, 0.0d0)
+      go to 700
+ 607  CALL xerrwv(30hlsodes-- iopt (=i1) illegal   ,
+     1   30, 7, 0, 1, iopt, 0, 0, 0.0d0, 0.0d0)
+      go to 700
+ 608  CALL xerrwv(30hlsodes-- mf (=i1) illegal     ,
+     1   30, 8, 0, 1, mf, 0, 0, 0.0d0, 0.0d0)
+      go to 700
+ 609  CALL xerrwv(30hlsodes-- seth (=r1) .lt. 0.0  ,
+     1   30, 9, 0, 0, 0, 0, 1, seth, 0.0d0)
+      go to 700
+ 611  CALL xerrwv(30hlsodes-- maxord (=i1) .lt. 0  ,
+     1   30, 11, 0, 1, maxord, 0, 0, 0.0d0, 0.0d0)
+      go to 700
+ 612  CALL xerrwv(30hlsodes-- mxstep (=i1) .lt. 0  ,
+     1   30, 12, 0, 1, mxstep, 0, 0, 0.0d0, 0.0d0)
+      go to 700
+ 613  CALL xerrwv(30hlsodes-- mxhnil (=i1) .lt. 0  ,
+     1   30, 13, 0, 1, mxhnil, 0, 0, 0.0d0, 0.0d0)
+      go to 700
+ 614  CALL xerrwv(40hlsodes-- tout (=r1) behind t (=r2)      ,
+     1   40, 14, 0, 0, 0, 0, 2, tout, t)
+      CALL xerrwv(50h      integration direction is given by h0 (=r1)  ,
+     1   50, 14, 0, 0, 0, 0, 1, h0, 0.0d0)
+      go to 700
+ 615  CALL xerrwv(30hlsodes-- hmax (=r1) .lt. 0.0  ,
+     1   30, 15, 0, 0, 0, 0, 1, hmax, 0.0d0)
+      go to 700
+ 616  CALL xerrwv(30hlsodes-- hmin (=r1) .lt. 0.0  ,
+     1   30, 16, 0, 0, 0, 0, 1, hmin, 0.0d0)
+      go to 700
+ 617  CALL xerrwv(50hlsodes-- rwork length is insufficient to proceed. ,
+     1   50, 17, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
+      CALL xerrwv(
+     1  60h        length needed is .ge. lenrw (=i1), exceeds lrw (=i2),
+     1   60, 17, 0, 2, lenrw, lrw, 0, 0.0d0, 0.0d0)
+      go to 700
+ 618  CALL xerrwv(50hlsodes-- iwork length is insufficient to proceed. ,
+     1   50, 18, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
+      CALL xerrwv(
+     1  60h        length needed is .ge. leniw (=i1), exceeds liw (=i2),
+     1   60, 18, 0, 2, leniw, liw, 0, 0.0d0, 0.0d0)
+      go to 700
+ 619  CALL xerrwv(40hlsodes-- RelTol(i1) is r1 .lt. 0.0        ,
+     1   40, 19, 0, 1, i, 0, 1, RelToli, 0.0d0)
+      go to 700
+ 620  CALL xerrwv(40hlsodes-- AbsTol(i1) is r1 .lt. 0.0        ,
+     1   40, 20, 0, 1, i, 0, 1, AbsToli, 0.0d0)
+      go to 700
+ 621  ewti = rwork(lewt+i-1)
+      CALL xerrwv(40hlsodes-- ewt(i1) is r1 .le. 0.0         ,
+     1   40, 21, 0, 1, i, 0, 1, ewti, 0.0d0)
+      go to 700
+ 622  CALL xerrwv(
+     1  60hlsodes-- tout (=r1) too close to t(=r2) to start integration,
+     1   60, 22, 0, 0, 0, 0, 2, tout, t)
+      go to 700
+ 623  CALL xerrwv(
+     1  60hlsodes-- itask = i1 and tout (=r1) behind tcur - hu (= r2)  ,
+     1   60, 23, 0, 1, itask, 0, 2, tout, tp)
+      go to 700
+ 624  CALL xerrwv(
+     1  60hlsodes-- itask = 4 or 5 and tcrit (=r1) behind tcur (=r2)   ,
+     1   60, 24, 0, 0, 0, 0, 2, tcrit, tn)
+      go to 700
+ 625  CALL xerrwv(
+     1  60hlsodes-- itask = 4 or 5 and tcrit (=r1) behind tout (=r2)   ,
+     1   60, 25, 0, 0, 0, 0, 2, tcrit, tout)
+      go to 700
+ 626  CALL xerrwv(50hlsodes-- at start of problem, too much accuracy   ,
+     1   50, 26, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
+      CALL xerrwv(
+     1  60h      requested for precision of machine..  see tolsf (=r1) ,
+     1   60, 26, 0, 0, 0, 0, 1, tolsf, 0.0d0)
+      rwork(14) = tolsf
+      go to 700
+ 627  CALL xerrwv(50hlsodes-- trouble from intdy. itask = i1, tout = r1,
+     1   50, 27, 0, 1, itask, 0, 1, tout, 0.0d0)
+      go to 700
+ 628  CALL xerrwv(
+     1  60hlsodes-- rwork length insufficient (for subroutine prep).   ,
+     1   60, 28, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
+      CALL xerrwv(
+     1  60h        length needed is .ge. lenrw (=i1), exceeds lrw (=i2),
+     1   60, 28, 0, 2, lenrw, lrw, 0, 0.0d0, 0.0d0)
+      go to 700
+ 629  CALL xerrwv(
+     1  60hlsodes-- rwork length insufficient (for subroutine jgroup). ,
+     1   60, 29, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
+      CALL xerrwv(
+     1  60h        length needed is .ge. lenrw (=i1), exceeds lrw (=i2),
+     1   60, 29, 0, 2, lenrw, lrw, 0, 0.0d0, 0.0d0)
+      go to 700
+ 630  CALL xerrwv(
+     1  60hlsodes-- rwork length insufficient (for subroutine odrv).   ,
+     1   60, 30, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
+      CALL xerrwv(
+     1  60h        length needed is .ge. lenrw (=i1), exceeds lrw (=i2),
+     1   60, 30, 0, 2, lenrw, lrw, 0, 0.0d0, 0.0d0)
+      go to 700
+ 631  CALL xerrwv(
+     1  60hlsodes-- error from odrv in yale sparse matrix package      ,
+     1   60, 31, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
+      imul = (iys - 1)/n
+      irem = iys - imul*n
+      CALL xerrwv(
+     1  60h      at t (=r1), odrv returned error flag = i1*neq + i2.   ,
+     1   60, 31, 0, 2, imul, irem, 1, tn, 0.0d0)
+      go to 700
+ 632  CALL xerrwv(
+     1  60hlsodes-- rwork length insufficient (for subroutine cdrv).   ,
+     1   60, 32, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
+      CALL xerrwv(
+     1  60h        length needed is .ge. lenrw (=i1), exceeds lrw (=i2),
+     1   60, 32, 0, 2, lenrw, lrw, 0, 0.0d0, 0.0d0)
+      go to 700
+ 633  CALL xerrwv(
+     1  60hlsodes-- error from cdrv in yale sparse matrix package      ,
+     1   60, 33, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
+      imul = (iys - 1)/n
+      irem = iys - imul*n
+      CALL xerrwv(
+     1  60h      at t (=r1), cdrv returned error flag = i1*neq + i2.   ,
+     1   60, 33, 0, 2, imul, irem, 1, tn, 0.0d0)
+      if (imul .eq. 2) CALL xerrwv(
+     1  60h        duplicate entry in sparsity structure descriptors   ,
+     1   60, 33, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
+      if (imul .eq. 3 .or. imul .eq. 6) CALL xerrwv(
+     1  60h        insufficient storage for nsfc (called by cdrv)      ,
+     1   60, 33, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
+c
+ 700  if (illin .eq. 5) go to 710
+      illin = illin + 1
+      istate = -3
+      return
+ 710  CALL xerrwv(50hlsodes-- repeated occurrences of illegal input    ,
+     1   50, 302, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
+c
+ 800  CALL xerrwv(50hlsodes-- run aborted.. apparent infinite loop     ,
+     1   50, 303, 2, 0, 0, 0, 0, 0.0d0, 0.0d0)
+      return
+c----------------------- end of subroutine lsodes ----------------------
+      end
+      subroutine iprep (neq, y, rwork, ia, ja, ipflag, f, jac)
+clll. optimize
+      external f, jac
+      integer neq, ia, ja, ipflag
+      integer illin, init, lyh, lewt, lacor, lsavf, lwm, liwm,
+     1   mxstep, mxhnil, nhnil, ntrep, nslast, nyh, iowns
+      integer icf, ierpj, iersl, jcur, jstart, kflag, l, meth, miter,
+     1   maxord, maxcor, msbp, mxncf, n, nq, nst, nfe, nje, nqu
+      integer iplost, iesp, istatc, iys, iba, ibian, ibjan, ibjgp,
+     1   ipian, ipjan, ipjgp, ipigp, ipr, ipc, ipic, ipisp, iprsp, ipa,
+     2   lenyh, lenyhm, lenwk, lreq, lrat, lrest, lwmin, moss, msbj,
+     3   nslj, ngp, nlu, nnz, nsp, nzl, nzu
+      integer i, imax, lewtn, lyhd, lyhn
+      KPP_REAL y, rwork
+      KPP_REAL rowns,
+     1   ccmax, el0, h, hmin, hmxi, hu, rc, tn, uround
+      KPP_REAL rlss
+      dimension neq(1), y(1), rwork(1), ia(1), ja(1)
+      common /ls0001/ rowns(209),
+     1   ccmax, el0, h, hmin, hmxi, hu, rc, tn, uround,
+     2   illin, init, lyh, lewt, lacor, lsavf, lwm, liwm,
+     3   mxstep, mxhnil, nhnil, ntrep, nslast, nyh, iowns(6),
+     4   icf, ierpj, iersl, jcur, jstart, kflag, l, meth, miter,
+     5   maxord, maxcor, msbp, mxncf, n, nq, nst, nfe, nje, nqu
+      common /lss001/ rlss(6),
+     1   iplost, iesp, istatc, iys, iba, ibian, ibjan, ibjgp,
+     2   ipian, ipjan, ipjgp, ipigp, ipr, ipc, ipic, ipisp, iprsp, ipa,
+     3   lenyh, lenyhm, lenwk, lreq, lrat, lrest, lwmin, moss, msbj,
+     4   nslj, ngp, nlu, nnz, nsp, nzl, nzu
+c-----------------------------------------------------------------------
+c this routine serves as an interface between the driver and
+c subroutine prep.  it is called only if miter is 1 or 2.
+c tasks performed here are..
+c  * CALL prep,
+c  * reset the required wm segment length lenwk,
+c  * move yh back to its final location (following wm in rwork),
+c  * reset pointers for yh, savf, ewt, and acor, and
+c  * move ewt to its new position if istate = 1.
+c ipflag is an output error indication flag.  ipflag = 0 if there was
+c no trouble, and ipflag is the value of the prep error flag ipper
+c if there was trouble in subroutine prep.
+c-----------------------------------------------------------------------
+      ipflag = 0
+c CALL prep to do matrix preprocessing operations. ---------------------
+c      CALL prep (neq, y, rwork(lyh), rwork(lsavf), rwork(lewt),
+c     1   rwork(lacor), ia, ja, rwork(lwm), rwork(lwm), ipflag, f, jac)
+      CALL prep (neq, y, rwork(lyh), rwork(lsavf), rwork(lewt),
+     1   rwork(lacor), ia, ja, rwork(lwm), rwork(lwm), ipflag, f, jac)
+      lenwk = max0(lreq,lwmin)
+      if (ipflag .lt. 0) return
+c if prep was successful, move yh to end of required space for wm. -----
+      lyhn = lwm + lenwk
+      if (lyhn .gt. lyh) return
+      lyhd = lyh - lyhn
+      if (lyhd .eq. 0) go to 20
+      imax = lyhn - 1 + lenyhm
+      do 10 i = lyhn,imax
+ 10     rwork(i) = rwork(i+lyhd)
+      lyh = lyhn
+c reset pointers for savf, ewt, and acor. ------------------------------
+ 20   lsavf = lyh + lenyh
+      lewtn = lsavf + n
+      lacor = lewtn + n
+      if (istatc .eq. 3) go to 40
+c if istate = 1, move ewt (left) to its new position. ------------------
+      if (lewtn .gt. lewt) return
+      do 30 i = 1,n
+ 30     rwork(i+lewtn-1) = rwork(i+lewt-1)
+ 40   lewt = lewtn
+      return
+c----------------------- end of subroutine iprep -----------------------
+      end
+      subroutine slss (wk, iwk, x, tem)
+clll. optimize
+      integer iwk
+      integer iownd, iowns,
+     1   icf, ierpj, iersl, jcur, jstart, kflag, l, meth, miter,
+     2   maxord, maxcor, msbp, mxncf, n, nq, nst, nfe, nje, nqu
+      integer iplost, iesp, istatc, iys, iba, ibian, ibjan, ibjgp,
+     1   ipian, ipjan, ipjgp, ipigp, ipr, ipc, ipic, ipisp, iprsp, ipa,
+     2   lenyh, lenyhm, lenwk, lreq, lrat, lrest, lwmin, moss, msbj,
+     3   nslj, ngp, nlu, nnz, nsp, nzl, nzu
+      integer i
+      KPP_REAL wk, x, tem
+      KPP_REAL rowns,
+     1   ccmax, el0, h, hmin, hmxi, hu, rc, tn, uround
+      KPP_REAL rlss
+      KPP_REAL di, hl0, phl0, r
+      dimension wk(*), iwk(*), x(*), tem(*)
+      common /ls0001/ rowns(209),
+     2   ccmax, el0, h, hmin, hmxi, hu, rc, tn, uround,
+     3   iownd(14), iowns(6),
+     4   icf, ierpj, iersl, jcur, jstart, kflag, l, meth, miter,
+     5   maxord, maxcor, msbp, mxncf, n, nq, nst, nfe, nje, nqu
+      common /lss001/ rlss(6),
+     1   iplost, iesp, istatc, iys, iba, ibian, ibjan, ibjgp,
+     2   ipian, ipjan, ipjgp, ipigp, ipr, ipc, ipic, ipisp, iprsp, ipa,
+     3   lenyh, lenyhm, lenwk, lreq, lrat, lrest, lwmin, moss, msbj,
+     4   nslj, ngp, nlu, nnz, nsp, nzl, nzu
+c-----------------------------------------------------------------------
+c this routine manages the solution of the linear system arising from
+c a chord iteration.  it is called if miter .ne. 0.
+c if miter is 1 or 2, it calls cdrv to accomplish this.
+c if miter = 3 it updates the coefficient h*el0 in the diagonal
+c matrix, and then computes the solution.
+c communication with slss uses the following variables..
+c wk    = real work space containing the inverse diagonal matrix if
+c         miter = 3 and the lu decomposition of the matrix otherwise.
+c         storage of matrix elements starts at wk(3).
+c         wk also contains the following matrix-related data..
+c         wk(1) = sqrt(uround) (not used here),
+c         wk(2) = hl0, the previous value of h*el0, used if miter = 3.
+c iwk   = integer work space for matrix-related data, assumed to
+c         be equivalenced to wk.  in addition, wk(iprsp) and iwk(ipisp)
+c         are assumed to have identical locations.
+c x     = the right-hand side vector on input, and the solution vector
+c         on output, of length n.
+c tem   = vector of work space of length n, not used in this version.
+c iersl = output flag (in common).
+c         iersl = 0  if no trouble occurred.
+c         iersl = -1 if cdrv returned an error flag (miter = 1 or 2).
+c                    this should never occur and is considered fatal.
+c         iersl = 1  if a singular matrix arose with miter = 3.
+c this routine also uses other variables in common.
+c-----------------------------------------------------------------------
+      iersl = 0
+      go to (100, 100, 300), miter
+ 100  CALL cdrv (n,iwk(ipr),iwk(ipc),iwk(ipic),iwk(ipian),iwk(ipjan),
+     1   wk(ipa),x,x,nsp,iwk(ipisp),wk(iprsp),iesp,4,iersl)
+      if (iersl .ne. 0) iersl = -1
+      return
+c
+ 300  phl0 = wk(2)
+      hl0 = h*el0
+      wk(2) = hl0
+      if (hl0 .eq. phl0) go to 330
+      r = hl0/phl0
+      do 320 i = 1,n
+        di = 1.0d0 - r*(1.0d0 - 1.0d0/wk(i+2))
+        if (dabs(di) .eq. 0.0d0) go to 390
+ 320    wk(i+2) = 1.0d0/di
+ 330  do 340 i = 1,n
+ 340    x(i) = wk(i+2)*x(i)
+      return
+ 390  iersl = 1
+      return
+c
+c----------------------- end of subroutine slss ------------------------
+      end
+      subroutine intdy (t, k, yh, nyh, dky, iflag)
+clll. optimize
+      integer k, nyh, iflag
+      integer iownd, iowns,
+     1   icf, ierpj, iersl, jcur, jstart, kflag, l, meth, miter,
+     2   maxord, maxcor, msbp, mxncf, n, nq, nst, nfe, nje, nqu
+      integer i, ic, j, jb, jb2, jj, jj1, jp1
+      KPP_REAL t, yh, dky
+      KPP_REAL rowns,
+     1   ccmax, el0, h, hmin, hmxi, hu, rc, tn, uround
+      KPP_REAL c, r, s, tp
+      dimension yh(nyh,1), dky(1)
+      common /ls0001/ rowns(209),
+     2   ccmax, el0, h, hmin, hmxi, hu, rc, tn, uround,
+     3   iownd(14), iowns(6),
+     4   icf, ierpj, iersl, jcur, jstart, kflag, l, meth, miter,
+     5   maxord, maxcor, msbp, mxncf, n, nq, nst, nfe, nje, nqu
+c-----------------------------------------------------------------------
+c intdy computes interpolated values of the k-th derivative of the
+c dependent variable vector y, and stores it in dky.  this routine
+c is called within the package with k = 0 and t = tout, but may
+c also be called by the user for any k up to the current order.
+c (see detailed instructions in the usage documentation.)
+c-----------------------------------------------------------------------
+c the computed values in dky are gotten by interpolation using the
+c nordsieck history array yh.  this array corresponds uniquely to a
+c vector-valued polynomial of degree nqcur or less, and dky is set
+c to the k-th derivative of this polynomial at t.
+c the formula for dky is..
+c              q
+c  dky(i)  =  sum  c(j,k) * (t - tn)**(j-k) * h**(-j) * yh(i,j+1)
+c             j=k
+c where  c(j,k) = j*(j-1)*...*(j-k+1), q = nqcur, tn = tcur, h = hcur.
+c the quantities  nq = nqcur, l = nq+1, n = neq, tn, and h are
+c communicated by common.  the above sum is done in reverse order.
+c iflag is returned negative if either k or t is out of bounds.
+c-----------------------------------------------------------------------
+      iflag = 0
+      if (k .lt. 0 .or. k .gt. nq) go to 80
+      tp = tn - hu -  100.0d0*uround*(tn + hu)
+      if ((t-tp)*(t-tn) .gt. 0.0d0) go to 90
+c
+      s = (t - tn)/h
+      ic = 1
+      if (k .eq. 0) go to 15
+      jj1 = l - k
+      do 10 jj = jj1,nq
+ 10     ic = ic*jj
+ 15   c = dfloat(ic)
+      do 20 i = 1,n
+ 20     dky(i) = c*yh(i,l)
+      if (k .eq. nq) go to 55
+      jb2 = nq - k
+      do 50 jb = 1,jb2
+        j = nq - jb
+        jp1 = j + 1
+        ic = 1
+        if (k .eq. 0) go to 35
+        jj1 = jp1 - k
+        do 30 jj = jj1,j
+ 30       ic = ic*jj
+ 35     c = dfloat(ic)
+        do 40 i = 1,n
+ 40       dky(i) = c*yh(i,jp1) + s*dky(i)
+ 50     continue
+      if (k .eq. 0) return
+ 55   r = h**(-k)
+      do 60 i = 1,n
+ 60     dky(i) = r*dky(i)
+      return
+c
+ 80   CALL xerrwv(30hintdy--  k (=i1) illegal      ,
+     1   30, 51, 0, 1, k, 0, 0, 0.0d0, 0.0d0)
+      iflag = -1
+      return
+ 90   CALL xerrwv(30hintdy--  t (=r1) illegal      ,
+     1   30, 52, 0, 0, 0, 0, 1, t, 0.0d0)
+      CALL xerrwv(
+     1  60h      t not in interval tcur - hu (= r1) to tcur (=r2)      ,
+     1   60, 52, 0, 0, 0, 0, 2, tp, tn)
+      iflag = -2
+      return
+c----------------------- end of subroutine intdy -----------------------
+      end
+      subroutine prjs (neq,y,yh,nyh,ewt,ftem,savf,wk,iwk,f,jac)
+clll. optimize
+      external f,jac
+      integer neq, nyh, iwk
+      integer iownd, iowns,
+     1   icf, ierpj, iersl, jcur, jstart, kflag, l, meth, miter,
+     2   maxord, maxcor, msbp, mxncf, n, nq, nst, nfe, nje, nqu
+      integer iplost, iesp, istatc, iys, iba, ibian, ibjan, ibjgp,
+     1   ipian, ipjan, ipjgp, ipigp, ipr, ipc, ipic, ipisp, iprsp, ipa,
+     2   lenyh, lenyhm, lenwk, lreq, lrat, lrest, lwmin, moss, msbj,
+     3   nslj, ngp, nlu, nnz, nsp, nzl, nzu
+      integer i, imul, j, jj, jok, jmax, jmin, k, kmax, kmin, ng
+      KPP_REAL JJJ(n,n)
+      KPP_REAL rowns,
+     1   ccmax, el0, h, hmin, hmxi, hu, rc, tn, uround
+      KPP_REAL con0, conmin, ccmxj, psmall, rbig, seth
+      KPP_REAL con, di, fac, hl0, pij, r, r0, rcon, rcont,
+     1   srur, vnorm
+      dimension neq(*), iwk(*)
+      KPP_REAL y(*), yh(nyh,*), ewt(*), ftem(*), savf(*), wk(*)
+      common /ls0001/ rowns(209),
+     2   ccmax, el0, h, hmin, hmxi, hu, rc, tn, uround,
+     3   iownd(14), iowns(6),
+     4   icf, ierpj, iersl, jcur, jstart, kflag, l, meth, miter,
+     5   maxord, maxcor, msbp, mxncf, n, nq, nst, nfe, nje, nqu
+      common /lss001/ con0, conmin, ccmxj, psmall, rbig, seth,
+     1   iplost, iesp, istatc, iys, iba, ibian, ibjan, ibjgp,
+     2   ipian, ipjan, ipjgp, ipigp, ipr, ipc, ipic, ipisp, iprsp, ipa,
+     3   lenyh, lenyhm, lenwk, lreq, lrat, lrest, lwmin, moss, msbj,
+     4   nslj, ngp, nlu, nnz, nsp, nzl, nzu
+c-----------------------------------------------------------------------
+c prjs is called to compute and process the matrix
+c p = i - h*el(1)*j , where j is an approximation to the jacobian.
+c j is computed by columns, either by the user-supplied routine jac
+c if miter = 1, or by finite differencing if miter = 2.
+c if miter = 3, a diagonal approximation to j is used.
+c if miter = 1 or 2, and if the existing value of the jacobian
+c (as contained in p) is considered acceptable, then a new value of
+c p is reconstructed from the old value.  in any case, when miter
+c is 1 or 2, the p matrix is subjected to lu decomposition in cdrv.
+c p and its lu decomposition are stored (separately) in wk.
+c
+c in addition to variables described previously, communication
+c with prjs uses the following..
+c y     = array containing predicted values on entry.
+c ftem  = work array of length n (acor in stode).
+c savf  = array containing f evaluated at predicted y.
+c wk    = real work space for matrices.  on output it contains the
+c         inverse diagonal matrix if miter = 3, and p and its sparse
+c         lu decomposition if miter is 1 or 2.
+c         storage of matrix elements starts at wk(3).
+c         wk also contains the following matrix-related data..
+c         wk(1) = sqrt(uround), used in numerical jacobian increments.
+c         wk(2) = h*el0, saved for later use if miter = 3.
+c iwk   = integer work space for matrix-related data, assumed to
+c         be equivalenced to wk.  in addition, wk(iprsp) and iwk(ipisp)
+c         are assumed to have identical locations.
+c el0   = el(1) (input).
+c ierpj = output error flag (in common).
+c       = 0 if no error.
+c       = 1  if zero pivot found in cdrv.
+c       = 2  if a singular matrix arose with miter = 3.
+c       = -1 if insufficient storage for cdrv (should not occur here).
+c       = -2 if other error found in cdrv (should not occur here).
+c jcur  = output flag = 1 to indicate that the jacobian matrix
+c         (or approximation) is now current.
+c this routine also uses other variables in common.
+c-----------------------------------------------------------------------
+      hl0 = h*el0
+      con = -hl0
+      if (miter .eq. 3) go to 300
+c see whether j should be reevaluated (jok = 0) or not (jok = 1). ------
+      jok = 1
+      if (nst .eq. 0 .or. nst .ge. nslj+msbj) jok = 0
+      if (icf .eq. 1 .and. dabs(rc - 1.0d0) .lt. ccmxj) jok = 0
+      if (icf .eq. 2) jok = 0
+      if (jok .eq. 1) go to 250
+c
+c miter = 1 or 2, and the jacobian is to be reevaluated. ---------------
+ 20   jcur = 1
+      nje = nje + 1
+      nslj = nst
+      iplost = 0
+      conmin = dabs(con)
+      go to (100, 200), miter
+c
+c if miter = 1, call jac_chem, multiply by scalar, and add identity. --------
+ 100  continue
+      kmin = iwk(ipian)
+      call jac_chem (neq, tn, y, JJJ, j, iwk(ipian), iwk(ipjan))
+      do 130 j = 1, n
+        kmax = iwk(ipian+j) - 1
+        do 110 i = 1,n
+ 110      ftem(i) = 0.0d0
+C        call jac_chem (neq, tn, y, ftem, j, iwk(ipian), iwk(ipjan))
+        do k=1,n
+          ftem(k) = JJJ(k,j)
+        end do
+        do 120 k = kmin, kmax
+          i = iwk(ibjan+k)
+          wk(iba+k) = ftem(i)*con
+          if (i .eq. j) wk(iba+k) = wk(iba+k) + 1.0d0
+ 120      continue
+        kmin = kmax + 1
+ 130    continue
+      go to 290
+c
+c if miter = 2, make ngp calls to f to approximate j and p. ------------
+ 200  continue
+      fac = vnorm(n, savf, ewt)
+      r0 = 1000.0d0 * dabs(h) * uround * dfloat(n) * fac
+      if (r0 .eq. 0.0d0) r0 = 1.0d0
+      srur = wk(1)
+      jmin = iwk(ipigp)
+      do 240 ng = 1,ngp
+        jmax = iwk(ipigp+ng) - 1
+        do 210 j = jmin,jmax
+          jj = iwk(ibjgp+j)
+          r = DMAX1(srur*dabs(y(jj)),r0/ewt(jj))
+ 210      y(jj) = y(jj) + r
+        CALL f (neq, tn, y, ftem)
+        do 230 j = jmin,jmax
+          jj = iwk(ibjgp+j)
+          y(jj) = yh(jj,1)
+          r = DMAX1(srur*dabs(y(jj)),r0/ewt(jj))
+          fac = -hl0/r
+          kmin =iwk(ibian+jj)
+          kmax =iwk(ibian+jj+1) - 1
+          do 220 k = kmin,kmax
+            i = iwk(ibjan+k)
+            wk(iba+k) = (ftem(i) - savf(i))*fac
+            if (i .eq. jj) wk(iba+k) = wk(iba+k) + 1.0d0
+ 220        continue
+ 230      continue
+        jmin = jmax + 1
+ 240    continue
+      nfe = nfe + ngp
+      go to 290
+c
+c if jok = 1, reconstruct new p from old p. ----------------------------
+ 250  jcur = 0
+      rcon = con/con0
+      rcont = dabs(con)/conmin
+      if (rcont .gt. rbig .and. iplost .eq. 1) go to 20
+      kmin = iwk(ipian)
+      do 275 j = 1,n
+        kmax = iwk(ipian+j) - 1
+        do 270 k = kmin,kmax
+          i = iwk(ibjan+k)
+          pij = wk(iba+k)
+          if (i .ne. j) go to 260
+          pij = pij - 1.0d0
+          if (dabs(pij) .ge. psmall) go to 260
+            iplost = 1
+            conmin = dmin1(dabs(con0),conmin)
+ 260      pij = pij*rcon
+          if (i .eq. j) pij = pij + 1.0d0
+          wk(iba+k) = pij
+ 270      continue
+        kmin = kmax + 1
+ 275    continue
+c
+c do numerical factorization of p matrix. ------------------------------
+ 290  nlu = nlu + 1
+      con0 = con
+      ierpj = 0
+      do 295 i = 1,n
+ 295    ftem(i) = 0.0d0
+      CALL cdrv (n,iwk(ipr),iwk(ipc),iwk(ipic),iwk(ipian),iwk(ipjan),
+     1   wk(ipa),ftem,ftem,nsp,iwk(ipisp),wk(iprsp),iesp,2,iys)
+      if (iys .eq. 0) return
+      imul = (iys - 1)/n
+      ierpj = -2
+      if (imul .eq. 8) ierpj = 1
+      if (imul .eq. 10) ierpj = -1
+      return
+c
+c if miter = 3, construct a diagonal approximation to j and p. ---------
+ 300  continue
+      jcur = 1
+      nje = nje + 1
+      wk(2) = hl0
+      ierpj = 0
+      r = el0*0.1d0
+      do 310 i = 1,n
+ 310    y(i) = y(i) + r*(h*savf(i) - yh(i,2))
+      CALL f (neq, tn, y, wk(3))
+      nfe = nfe + 1
+      do 320 i = 1,n
+        r0 = h*savf(i) - yh(i,2)
+        di = 0.1d0*r0 - h*(wk(i+2) - savf(i))
+        wk(i+2) = 1.0d0
+        if (dabs(r0) .lt. uround/ewt(i)) go to 320
+        if (dabs(di) .eq. 0.0d0) go to 330
+        wk(i+2) = 0.1d0*r0/di
+ 320    continue
+      return
+ 330  ierpj = 2
+      return
+c----------------------- end of subroutine prjs ------------------------
+      end
+      subroutine stode (neq, y, yh, nyh, yh1, ewt, savf, acor,
+     1   wm, iwm, f, jac, pjac, slvs)
+clll. optimize
+      external f, jac, pjac, slvs
+      integer neq, nyh, iwm
+      integer iownd, ialth, ipup, lmax, meo, nqnyh, nslp,
+     1   icf, ierpj, iersl, jcur, jstart, kflag, l, meth, miter,
+     2   maxord, maxcor, msbp, mxncf, n, nq, nst, nfe, nje, nqu
+      integer i, i1, iredo, iret, j, jb, m, ncf, newq
+      KPP_REAL y, yh, yh1, ewt, savf, acor, wm
+      KPP_REAL conit, crate, el, elco, hold, rmax, tesco,
+     2   ccmax, el0, h, hmin, hmxi, hu, rc, tn, uround
+      KPP_REAL dcon, ddn, del, delp, dsm, dup, exdn, exsm, exup,
+     1   r, rh, rhdn, rhsm, rhup, told, vnorm
+      dimension neq(*), y(*), yh(nyh,*), yh1(*), ewt(*), savf(*),
+     1   acor(*), wm(*), iwm(*)
+      common /ls0001/ conit, crate, el(13), elco(13,12),
+     1   hold, rmax, tesco(3,12),
+     2   ccmax, el0, h, hmin, hmxi, hu, rc, tn, uround, iownd(14),
+     3   ialth, ipup, lmax, meo, nqnyh, nslp,
+     4   icf, ierpj, iersl, jcur, jstart, kflag, l, meth, miter,
+     5   maxord, maxcor, msbp, mxncf, n, nq, nst, nfe, nje, nqu
+c-----------------------------------------------------------------------
+c stode performs one step of the integration of an initial value
+c problem for a system of ordinary differential equations.
+c note.. stode is independent of the value of the iteration method
+c indicator miter, when this is .ne. 0, and hence is independent
+c of the type of chord method used, or the jacobian structure.
+c communication with stode is done with the following variables..
+c
+c neq    = integer array containing problem size in neq(1), and
+c          passed as the neq argument in all calls to f and jac.
+c y      = an array of length .ge. n used as the y argument in
+c          all calls to f and jac.
+c yh     = an nyh by lmax array containing the dependent variables
+c          and their approximate scaled derivatives, where
+c          lmax = maxord + 1.  yh(i,j+1) contains the approximate
+c          j-th derivative of y(i), scaled by h**j/factorial(j)
+c          (j = 0,1,...,nq).  on entry for the first step, the first
+c          two columns of yh must be set from the initial values.
+c nyh    = a constant integer .ge. n, the first dimension of yh.
+c yh1    = a one-dimensional array occupying the same space as yh.
+c ewt    = an array of length n containing multiplicative weights
+c          for local error measurements.  local errors in y(i) are
+c          compared to 1.0/ewt(i) in various error tests.
+c savf   = an array of working storage, of length n.
+c          also used for input of yh(*,maxord+2) when jstart = -1
+c          and maxord .lt. the current order nq.
+c acor   = a work array of length n, used for the accumulated
+c          corrections.  on a successful return, acor(i) contains
+c          the estimated one-step local error in y(i).
+c wm,iwm = real and integer work arrays associated with matrix
+c          operations in chord iteration (miter .ne. 0).
+c pjac   = name of routine to evaluate and preprocess jacobian matrix
+c          and p = i - h*el0*jac, if a chord method is being used.
+c slvs   = name of routine to solve linear system in chord iteration.
+c ccmax  = maximum relative change in h*el0 before pjac is called.
+c h      = the step size to be attempted on the next step.
+c          h is altered by the error control algorithm during the
+c          problem.  h can be either positive or negative, but its
+c          sign must remain constant throughout the problem.
+c hmin   = the minimum absolute value of the step size h to be used.
+c hmxi   = inverse of the maximum absolute value of h to be used.
+c          hmxi = 0.0 is allowed and corresponds to an infinite hmax.
+c          hmin and hmxi may be changed at any time, but will not
+c          take effect until the next change of h is considered.
+c tn     = the independent variable. tn is updated on each step taken.
+c jstart = an integer used for input only, with the following
+c          values and meanings..
+c               0  perform the first step.
+c           .gt.0  take a new step continuing from the last.
+c              -1  take the next step with a new value of h, maxord,
+c                    n, meth, miter, and/or matrix parameters.
+c              -2  take the next step with a new value of h,
+c                    but with other inputs unchanged.
+c          on return, jstart is set to 1 to facilitate continuation.
+c kflag  = a completion code with the following meanings..
+c               0  the step was succesful.
+c              -1  the requested error could not be achieved.
+c              -2  corrector convergence could not be achieved.
+c              -3  fatal error in pjac or slvs.
+c          a return with kflag = -1 or -2 means either
+c          abs(h) = hmin or 10 consecutive failures occurred.
+c          on a return with kflag negative, the values of tn and
+c          the yh array are as of the beginning of the last
+c          step, and h is the last step size attempted.
+c maxord = the maximum order of integration method to be allowed.
+c maxcor = the maximum number of corrector iterations allowed.
+c msbp   = maximum number of steps between pjac calls (miter .gt. 0).
+c mxncf  = maximum number of convergence failures allowed.
+c meth/miter = the method flags.  see description in driver.
+c n      = the number of first-order differential equations.
+c-----------------------------------------------------------------------
+      kflag = 0
+      told = tn
+      ncf = 0
+      ierpj = 0
+      iersl = 0
+      jcur = 0
+      icf = 0
+      delp = 0.0d0
+      if (jstart .gt. 0) go to 200
+      if (jstart .eq. -1) go to 100
+      if (jstart .eq. -2) go to 160
+c-----------------------------------------------------------------------
+c on the first call, the order is set to 1, and other variables are
+c initialized.  rmax is the maximum ratio by which h can be increased
+c in a single step.  it is initially 1.e4 to compensate for the small
+c initial h, but then is normally equal to 10.  if a failure
+c occurs (in corrector convergence or error test), rmax is set at 2
+c for the next increase.
+c-----------------------------------------------------------------------
+      lmax = maxord + 1
+      nq = 1
+      l = 2
+      ialth = 2
+      rmax = 10000.0d0
+      rc = 0.0d0
+      el0 = 1.0d0
+      crate = 0.7d0
+      hold = h
+      meo = meth
+      nslp = 0
+      ipup = miter
+      iret = 3
+      go to 140
+c-----------------------------------------------------------------------
+c the following block handles preliminaries needed when jstart = -1.
+c ipup is set to miter to force a matrix update.
+c if an order increase is about to be considered (ialth = 1),
+c ialth is reset to 2 to postpone consideration one more step.
+c if the caller has changed meth, cfode is called to reset
+c the coefficients of the method.
+c if the caller has changed maxord to a value less than the current
+c order nq, nq is reduced to maxord, and a new h chosen accordingly.
+c if h is to be changed, yh must be rescaled.
+c if h or meth is being changed, ialth is reset to l = nq + 1
+c to prevent further changes in h for that many steps.
+c-----------------------------------------------------------------------
+ 100  ipup = miter
+      lmax = maxord + 1
+      if (ialth .eq. 1) ialth = 2
+      if (meth .eq. meo) go to 110
+      CALL cfode (meth, elco, tesco)
+      meo = meth
+      if (nq .gt. maxord) go to 120
+      ialth = l
+      iret = 1
+      go to 150
+ 110  if (nq .le. maxord) go to 160
+ 120  nq = maxord
+      l = lmax
+      do 125 i = 1,l
+ 125    el(i) = elco(i,nq)
+      nqnyh = nq*nyh
+      rc = rc*el(1)/el0
+      el0 = el(1)
+      conit = 0.5d0/dfloat(nq+2)
+      ddn = vnorm (n, savf, ewt)/tesco(1,l)
+      exdn = 1.0d0/dfloat(l)
+      rhdn = 1.0d0/(1.3d0*ddn**exdn + 0.0000013d0)
+      rh = dmin1(rhdn,1.0d0)
+      iredo = 3
+      if (h .eq. hold) go to 170
+      rh = dmin1(rh,dabs(h/hold))
+      h = hold
+      go to 175
+c-----------------------------------------------------------------------
+c cfode is called to get all the integration coefficients for the
+c current meth.  then the el vector and related constants are reset
+c whenever the order nq is changed, or at the start of the problem.
+c-----------------------------------------------------------------------
+ 140  CALL cfode (meth, elco, tesco)
+ 150  do 155 i = 1,l
+ 155    el(i) = elco(i,nq)
+      nqnyh = nq*nyh
+      rc = rc*el(1)/el0
+      el0 = el(1)
+      conit = 0.5d0/dfloat(nq+2)
+      go to (160, 170, 200), iret
+c-----------------------------------------------------------------------
+c if h is being changed, the h ratio rh is checked against
+c rmax, hmin, and hmxi, and the yh array rescaled.  ialth is set to
+c l = nq + 1 to prevent a change of h for that many steps, unless
+c forced by a convergence or error test failure.
+c-----------------------------------------------------------------------
+ 160  if (h .eq. hold) go to 200
+      rh = h/hold
+      h = hold
+      iredo = 3
+      go to 175
+ 170  rh = DMAX1(rh,hmin/dabs(h))
+ 175  rh = dmin1(rh,rmax)
+      rh = rh/DMAX1(1.0d0,dabs(h)*hmxi*rh)
+      r = 1.0d0
+      do 180 j = 2,l
+        r = r*rh
+        do 180 i = 1,n
+ 180      yh(i,j) = yh(i,j)*r
+      h = h*rh
+      rc = rc*rh
+      ialth = l
+      if (iredo .eq. 0) go to 690
+c-----------------------------------------------------------------------
+c this section computes the predicted values by effectively
+c multiplying the yh array by the pascal triangle matrix.
+c rc is the ratio of new to old values of the coefficient  h*el(1).
+c when rc differs from 1 by more than ccmax, ipup is set to miter
+c to force pjac to be called, if a jacobian is involved.
+c in any case, pjac is called at least every msbp steps.
+c-----------------------------------------------------------------------
+ 200  if (dabs(rc-1.0d0) .gt. ccmax) ipup = miter
+      if (nst .ge. nslp+msbp) ipup = miter
+      tn = tn + h
+      i1 = nqnyh + 1
+      do 215 jb = 1,nq
+        i1 = i1 - nyh
+cdir$ ivdep
+        do 210 i = i1,nqnyh
+ 210      yh1(i) = yh1(i) + yh1(i+nyh)
+ 215    continue
+c-----------------------------------------------------------------------
+c up to maxcor corrector iterations are taken.  a convergence test is
+c made on the r.m.s. norm of each correction, weighted by the error
+c weight vector ewt.  the sum of the corrections is accumulated in the
+c vector acor(i).  the yh array is not altered in the corrector loop.
+c-----------------------------------------------------------------------
+ 220  m = 0
+      do 230 i = 1,n
+ 230    y(i) = yh(i,1)
+      CALL f (neq, tn, y, savf)
+      nfe = nfe + 1
+      if (ipup .le. 0) go to 250
+c-----------------------------------------------------------------------
+c if indicated, the matrix p = i - h*el(1)*j is reevaluated and
+c preprocessed before starting the corrector iteration.  ipup is set
+c to 0 as an indicator that this has been done.
+c-----------------------------------------------------------------------
+      CALL pjac (neq, y, yh, nyh, ewt, acor, savf, wm, iwm, f, jac)
+      ipup = 0
+      rc = 1.0d0
+      nslp = nst
+      crate = 0.7d0
+      if (ierpj .ne. 0) go to 430
+ 250  do 260 i = 1,n
+ 260    acor(i) = 0.0d0
+ 270  if (miter .ne. 0) go to 350
+c-----------------------------------------------------------------------
+c in the case of functional iteration, update y directly from
+c the result of the last function evaluation.
+c-----------------------------------------------------------------------
+      do 290 i = 1,n
+        savf(i) = h*savf(i) - yh(i,2)
+ 290    y(i) = savf(i) - acor(i)
+      del = vnorm (n, y, ewt)
+      do 300 i = 1,n
+        y(i) = yh(i,1) + el(1)*savf(i)
+ 300    acor(i) = savf(i)
+      go to 400
+c-----------------------------------------------------------------------
+c in the case of the chord method, compute the corrector error,
+c and solve the linear system with that as right-hand side and
+c p as coefficient matrix.
+c-----------------------------------------------------------------------
+ 350  do 360 i = 1,n
+ 360    y(i) = h*savf(i) - (yh(i,2) + acor(i))
+      CALL slvs (wm, iwm, y, savf)
+      if (iersl .lt. 0) go to 430
+      if (iersl .gt. 0) go to 410
+      del = vnorm (n, y, ewt)
+      do 380 i = 1,n
+        acor(i) = acor(i) + y(i)
+ 380    y(i) = yh(i,1) + el(1)*acor(i)
+c-----------------------------------------------------------------------
+c test for convergence.  if m.gt.0, an estimate of the convergence
+c rate constant is stored in crate, and this is used in the test.
+c-----------------------------------------------------------------------
+ 400  if (m .ne. 0) crate = DMAX1(0.2d0*crate,del/delp)
+      dcon = del*dmin1(1.0d0,1.5d0*crate)/(tesco(2,nq)*conit)
+      if (dcon .le. 1.0d0) go to 450
+      m = m + 1
+      if (m .eq. maxcor) go to 410
+      if (m .ge. 2 .and. del .gt. 2.0d0*delp) go to 410
+      delp = del
+      CALL f (neq, tn, y, savf)
+      nfe = nfe + 1
+      go to 270
+c-----------------------------------------------------------------------
+c the corrector iteration failed to converge.
+c if miter .ne. 0 and the jacobian is out of date, pjac is called for
+c the next try.  otherwise the yh array is retracted to its values
+c before prediction, and h is reduced, if possible.  if h cannot be
+c reduced or mxncf failures have occurred, exit with kflag = -2.
+c-----------------------------------------------------------------------
+ 410  if (miter .eq. 0 .or. jcur .eq. 1) go to 430
+      icf = 1
+      ipup = miter
+      go to 220
+ 430  icf = 2
+      ncf = ncf + 1
+      rmax = 2.0d0
+      tn = told
+      i1 = nqnyh + 1
+      do 445 jb = 1,nq
+        i1 = i1 - nyh
+cdir$ ivdep
+        do 440 i = i1,nqnyh
+ 440      yh1(i) = yh1(i) - yh1(i+nyh)
+ 445    continue
+      if (ierpj .lt. 0 .or. iersl .lt. 0) go to 680
+      if (dabs(h) .le. hmin*1.00001d0) go to 670
+      if (ncf .eq. mxncf) go to 670
+      rh = 0.25d0
+      ipup = miter
+      iredo = 1
+      go to 170
+c-----------------------------------------------------------------------
+c the corrector has converged.  jcur is set to 0
+c to signal that the jacobian involved may need updating later.
+c the local error test is made and control passes to statement 500
+c if it fails.
+c-----------------------------------------------------------------------
+ 450  jcur = 0
+      if (m .eq. 0) dsm = del/tesco(2,nq)
+      if (m .gt. 0) dsm = vnorm (n, acor, ewt)/tesco(2,nq)
+      if (dsm .gt. 1.0d0) go to 500
+c-----------------------------------------------------------------------
+c after a successful step, update the yh array.
+c consider changing h if ialth = 1.  otherwise decrease ialth by 1.
+c if ialth is then 1 and nq .lt. maxord, then acor is saved for
+c use in a possible order increase on the next step.
+c if a change in h is considered, an increase or decrease in order
+c by one is considered also.  a change in h is made only if it is by a
+c factor of at least 1.1.  if not, ialth is set to 3 to prevent
+c testing for that many steps.
+c-----------------------------------------------------------------------
+      kflag = 0
+      iredo = 0
+      nst = nst + 1
+      hu = h
+      nqu = nq
+      do 470 j = 1,l
+        do 470 i = 1,n
+ 470      yh(i,j) = yh(i,j) + el(j)*acor(i)
+      ialth = ialth - 1
+      if (ialth .eq. 0) go to 520
+      if (ialth .gt. 1) go to 700
+      if (l .eq. lmax) go to 700
+      do 490 i = 1,n
+ 490    yh(i,lmax) = acor(i)
+      go to 700
+c-----------------------------------------------------------------------
+c the error test failed.  kflag keeps track of multiple failures.
+c restore tn and the yh array to their previous values, and prepare
+c to try the step again.  compute the optimum step size for this or
+c one lower order.  after 2 or more failures, h is forced to decrease
+c by a factor of 0.2 or less.
+c-----------------------------------------------------------------------
+ 500  kflag = kflag - 1
+      tn = told
+      i1 = nqnyh + 1
+      do 515 jb = 1,nq
+        i1 = i1 - nyh
+cdir$ ivdep
+        do 510 i = i1,nqnyh
+ 510      yh1(i) = yh1(i) - yh1(i+nyh)
+ 515    continue
+      rmax = 2.0d0
+      if (dabs(h) .le. hmin*1.00001d0) go to 660
+      if (kflag .le. -3) go to 640
+      iredo = 2
+      rhup = 0.0d0
+      go to 540
+c-----------------------------------------------------------------------
+c regardless of the success or failure of the step, factors
+c rhdn, rhsm, and rhup are computed, by which h could be multiplied
+c at order nq - 1, order nq, or order nq + 1, respectively.
+c in the case of failure, rhup = 0.0 to avoid an order increase.
+c the largest of these is determined and the new order chosen
+c accordingly.  if the order is to be increased, we compute one
+c additional scaled derivative.
+c-----------------------------------------------------------------------
+ 520  rhup = 0.0d0
+      if (l .eq. lmax) go to 540
+      do 530 i = 1,n
+ 530    savf(i) = acor(i) - yh(i,lmax)
+      dup = vnorm (n, savf, ewt)/tesco(3,nq)
+      exup = 1.0d0/dfloat(l+1)
+      rhup = 1.0d0/(1.4d0*dup**exup + 0.0000014d0)
+ 540  exsm = 1.0d0/dfloat(l)
+      rhsm = 1.0d0/(1.2d0*dsm**exsm + 0.0000012d0)
+      rhdn = 0.0d0
+      if (nq .eq. 1) go to 560
+      ddn = vnorm (n, yh(1,l), ewt)/tesco(1,nq)
+      exdn = 1.0d0/dfloat(nq)
+      rhdn = 1.0d0/(1.3d0*ddn**exdn + 0.0000013d0)
+ 560  if (rhsm .ge. rhup) go to 570
+      if (rhup .gt. rhdn) go to 590
+      go to 580
+ 570  if (rhsm .lt. rhdn) go to 580
+      newq = nq
+      rh = rhsm
+      go to 620
+ 580  newq = nq - 1
+      rh = rhdn
+      if (kflag .lt. 0 .and. rh .gt. 1.0d0) rh = 1.0d0
+      go to 620
+ 590  newq = l
+      rh = rhup
+      if (rh .lt. 1.1d0) go to 610
+      r = el(l)/dfloat(l)
+      do 600 i = 1,n
+ 600    yh(i,newq+1) = acor(i)*r
+      go to 630
+ 610  ialth = 3
+      go to 700
+ 620  if ((kflag .eq. 0) .and. (rh .lt. 1.1d0)) go to 610
+      if (kflag .le. -2) rh = dmin1(rh,0.2d0)
+c-----------------------------------------------------------------------
+c if there is a change of order, reset nq, l, and the coefficients.
+c in any case h is reset according to rh and the yh array is rescaled.
+c then exit from 690 if the step was ok, or redo the step otherwise.
+c-----------------------------------------------------------------------
+      if (newq .eq. nq) go to 170
+ 630  nq = newq
+      l = nq + 1
+      iret = 2
+      go to 150
+c-----------------------------------------------------------------------
+c control reaches this section if 3 or more failures have occured.
+c if 10 failures have occurred, exit with kflag = -1.
+c it is assumed that the derivatives that have accumulated in the
+c yh array have errors of the wrong order.  hence the first
+c derivative is recomputed, and the order is set to 1.  then
+c h is reduced by a factor of 10, and the step is retried,
+c until it succeeds or h reaches hmin.
+c-----------------------------------------------------------------------
+ 640  if (kflag .eq. -10) go to 660
+      rh = 0.1d0
+      rh = DMAX1(hmin/dabs(h),rh)
+      h = h*rh
+      do 645 i = 1,n
+ 645    y(i) = yh(i,1)
+      CALL f (neq, tn, y, savf)
+      nfe = nfe + 1
+      do 650 i = 1,n
+ 650    yh(i,2) = h*savf(i)
+      ipup = miter
+      ialth = 5
+      if (nq .eq. 1) go to 200
+      nq = 1
+      l = 2
+      iret = 3
+      go to 150
+c-----------------------------------------------------------------------
+c all returns are made through this section.  h is saved in hold
+c to allow the caller to change h on the next step.
+c-----------------------------------------------------------------------
+ 660  kflag = -1
+      go to 720
+ 670  kflag = -2
+      go to 720
+ 680  kflag = -3
+      go to 720
+ 690  rmax = 10.0d0
+ 700  r = 1.0d0/tesco(2,nqu)
+      do 710 i = 1,n
+ 710    acor(i) = acor(i)*r
+ 720  hold = h
+      jstart = 1
+      return
+c----------------------- end of subroutine stode -----------------------
+      end
+      subroutine xerrwv (msg, nmes, nerr, level, ni, i1, i2, nr, r1, r2)
+      integer msg, nmes, nerr, level, ni, i1, i2, nr,
+     1   i, lun, lunit, mesflg, ncpw, nch, nwds
+      KPP_REAL r1, r2
+      dimension msg(nmes)
+c-----------------------------------------------------------------------
+c subroutines xerrwv, xsetf, and xsetun, as given here, constitute
+c a simplified version of the slatec error handling package.
+c written by a. c. hindmarsh at llnl.  version of march 30, 1987.
+c this version is in KPP_REAL.
+c
+c all arguments are input arguments.
+c
+c msg    = the message (hollerith literal or integer array).
+c nmes   = the length of msg (number of characters).
+c nerr   = the error number (not used).
+c level  = the error level..
+c          0 or 1 means recoverable (control returns to caller).
+c          2 means fatal (run is aborted--see note below).
+c ni     = number of integers (0, 1, or 2) to be printed with message.
+c i1,i2  = integers to be printed, depending on ni.
+c nr     = number of reals (0, 1, or 2) to be printed with message.
+c r1,r2  = reals to be printed, depending on nr.
+c
+c note..  this routine is machine-dependent and specialized for use
+c in limited context, in the following ways..
+c 1. the number of hollerith characters stored per word, denoted
+c    by ncpw below, is a data-loaded constant.
+c 2. the value of nmes is assumed to be at most 60.
+c    (multi-line messages are generated by repeated calls.)
+c 3. if level = 2, control passes to the statement   stop
+c    to abort the run.  this statement may be machine-dependent.
+c 4. r1 and r2 are assumed to be in KPP_REAL and are printed
+c    in d21.13 format.
+c 5. the common block /eh0001/ below is data-loaded (a machine-
+c    dependent feature) with default values.
+c    this block is needed for proper retention of parameters used by
+c    this routine which the user can reset by calling xsetf or xsetun.
+c    the variables in this block are as follows..
+c       mesflg = print control flag..
+c                1 means print all messages (the default).
+c                0 means no printing.
+c       lunit  = logical unit number for messages.
+c                the default is 6 (machine-dependent).
+c-----------------------------------------------------------------------
+c the following are instructions for installing this routine
+c in different machine environments.
+c
+c to change the default output unit, change the data statement
+c in the block data subprogram below.
+c
+c for a different number of characters per word, change the
+c data statement setting ncpw below, and format 10.  alternatives for
+c various computers are shown in comment cards.
+c
+c for a different run-abort command, change the statement following
+c statement 100 at the end.
+c-----------------------------------------------------------------------
+      common /eh0001/ mesflg, lunit
+c-----------------------------------------------------------------------
+c the following data-loaded value of ncpw is valid for the cdc-6600
+c and cdc-7600 computers.
+c     data ncpw/10/
+c the following is valid for the cray-1 computer.
+c     data ncpw/8/
+c the following is valid for the burroughs 6700 and 7800 computers.
+c     data ncpw/6/
+c the following is valid for the pdp-10 computer.
+c     data ncpw/5/
+c the following is valid for the vax computer with 4 bytes per integer,
+c and for the ibm-360, ibm-370, ibm-303x, and ibm-43xx computers.
+      data ncpw/4/
+c the following is valid for the pdp-11, or vax with 2-byte integers.
+c     data ncpw/2/
+c-----------------------------------------------------------------------
+      if (mesflg .eq. 0) go to 100
+c get logical unit number. ---------------------------------------------
+      lun = lunit
+c get number of words in message. --------------------------------------
+      nch = min0(nmes,60)
+      nwds = nch/ncpw
+      if (nch .ne. nwds*ncpw) nwds = nwds + 1
+c write the message. ---------------------------------------------------
+      write (lun, 10) (msg(i),i=1,nwds)
+c-----------------------------------------------------------------------
+c the following format statement is to have the form
+c 10  format(1x,mmann)
+c where nn = ncpw and mm is the smallest integer .ge. 60/ncpw.
+c the following is valid for ncpw = 10.
+c 10  format(1x,6a10)
+c the following is valid for ncpw = 8.
+c 10  format(1x,8a8)
+c the following is valid for ncpw = 6.
+c 10  format(1x,10a6)
+c the following is valid for ncpw = 5.
+c 10  format(1x,12a5)
+c the following is valid for ncpw = 4.
+  10  format(1x,15a4)
+c the following is valid for ncpw = 2.
+c 10  format(1x,30a2)
+c-----------------------------------------------------------------------
+      if (ni .eq. 1) write (lun, 20) i1
+ 20   format(6x,23hin above message,  i1 =,i10)
+      if (ni .eq. 2) write (lun, 30) i1,i2
+ 30   format(6x,23hin above message,  i1 =,i10,3x,4hi2 =,i10)
+      if (nr .eq. 1) write (lun, 40) r1
+ 40   format(6x,23hin above message,  r1 =,d21.13)
+      if (nr .eq. 2) write (lun, 50) r1,r2
+ 50   format(6x,15hin above,  r1 =,d21.13,3x,4hr2 =,d21.13)
+c abort the run if level = 2. ------------------------------------------
+ 100  if (level .ne. 2) return
+      stop
+c----------------------- end of subroutine xerrwv ----------------------
+      end
+      KPP_REAL function vnorm (n, v, w)
+clll. optimize
+c-----------------------------------------------------------------------
+c this function routine computes the weighted root-mean-square norm
+c of the vector of length n contained in the array v, with weights
+c contained in the array w of length n..
+c   vnorm = sqrt( (1/n) * sum( v(i)*w(i) )**2 )
+c-----------------------------------------------------------------------
+      integer n,   i
+      KPP_REAL v, w,   sum
+      dimension v(n), w(n)
+      sum = 0.0d0
+      do 10 i = 1,n
+ 10     sum = sum + (v(i)*w(i))**2
+      vnorm = DSQRT(sum/dfloat(n))
+      return
+c----------------------- end of function vnorm -------------------------
+      end
+      subroutine ewset (n, itol, RelTol, AbsTol, ycur, ewt)
+clll. optimize
+c-----------------------------------------------------------------------
+c this subroutine sets the error weight vector ewt according to
+c     ewt(i) = RelTol(i)*abs(ycur(i)) + AbsTol(i),  i = 1,...,n,
+c with the subscript on RelTol and/or AbsTol possibly replaced by 1 above,
+c depending on the value of itol.
+c-----------------------------------------------------------------------
+      integer n, itol
+      integer i
+      KPP_REAL RelTol, AbsTol, ycur, ewt
+      dimension RelTol(1), AbsTol(1), ycur(n), ewt(n)
+c
+      go to (10, 20, 30, 40), itol
+ 10   continue
+      do 15 i = 1,n
+ 15     ewt(i) = RelTol(1)*dabs(ycur(i)) + AbsTol(1)
+      return
+ 20   continue
+      do 25 i = 1,n
+ 25     ewt(i) = RelTol(1)*dabs(ycur(i)) + AbsTol(i)
+      return
+ 30   continue
+      do 35 i = 1,n
+ 35     ewt(i) = RelTol(i)*dabs(ycur(i)) + AbsTol(1)
+      return
+ 40   continue
+      do 45 i = 1,n
+ 45     ewt(i) = RelTol(i)*dabs(ycur(i)) + AbsTol(i)
+      return
+c----------------------- end of subroutine ewset -----------------------
+      end
+      subroutine cfode (meth, elco, tesco)
+clll. optimize
+      integer meth
+      integer i, ib, nq, nqm1, nqp1
+      KPP_REAL elco, tesco
+      KPP_REAL agamq, fnq, fnqm1, pc, pint, ragq,
+     1   rqfac, rq1fac, tsign, xpin
+      dimension elco(13,12), tesco(3,12)
+c-----------------------------------------------------------------------
+c cfode is called by the integrator routine to set coefficients
+c needed there.  the coefficients for the current method, as
+c given by the value of meth, are set for all orders and saved.
+c the maximum order assumed here is 12 if meth = 1 and 5 if meth = 2.
+c (a smaller value of the maximum order is also allowed.)
+c cfode is called once at the beginning of the problem,
+c and is not called again unless and until meth is changed.
+c
+c the elco array contains the basic method coefficients.
+c the coefficients el(i), 1 .le. i .le. nq+1, for the method of
+c order nq are stored in elco(i,nq).  they are given by a genetrating
+c polynomial, i.e.,
+c     l(x) = el(1) + el(2)*x + ... + el(nq+1)*x**nq.
+c for the implicit adams methods, l(x) is given by
+c     dl/dx = (x+1)*(x+2)*...*(x+nq-1)/factorial(nq-1),    l(-1) = 0.
+c for the bdf methods, l(x) is given by
+c     l(x) = (x+1)*(x+2)* ... *(x+nq)/k,
+c where         k = factorial(nq)*(1 + 1/2 + ... + 1/nq).
+c
+c the tesco array contains test constants used for the
+c local error test and the selection of step size and/or order.
+c at order nq, tesco(k,nq) is used for the selection of step
+c size at order nq - 1 if k = 1, at order nq if k = 2, and at order
+c nq + 1 if k = 3.
+c-----------------------------------------------------------------------
+      dimension pc(12)
+c
+      go to (100, 200), meth
+c
+ 100  elco(1,1) = 1.0d0
+      elco(2,1) = 1.0d0
+      tesco(1,1) = 0.0d0
+      tesco(2,1) = 2.0d0
+      tesco(1,2) = 1.0d0
+      tesco(3,12) = 0.0d0
+      pc(1) = 1.0d0
+      rqfac = 1.0d0
+      do 140 nq = 2,12
+c-----------------------------------------------------------------------
+c the pc array will contain the coefficients of the polynomial
+c     p(x) = (x+1)*(x+2)*...*(x+nq-1).
+c initially, p(x) = 1.
+c-----------------------------------------------------------------------
+        rq1fac = rqfac
+        rqfac = rqfac/dfloat(nq)
+        nqm1 = nq - 1
+        fnqm1 = dfloat(nqm1)
+        nqp1 = nq + 1
+c form coefficients of p(x)*(x+nq-1). ----------------------------------
+        pc(nq) = 0.0d0
+        do 110 ib = 1,nqm1
+          i = nqp1 - ib
+ 110      pc(i) = pc(i-1) + fnqm1*pc(i)
+        pc(1) = fnqm1*pc(1)
+c compute integral, -1 to 0, of p(x) and x*p(x). -----------------------
+        pint = pc(1)
+        xpin = pc(1)/2.0d0
+        tsign = 1.0d0
+        do 120 i = 2,nq
+          tsign = -tsign
+          pint = pint + tsign*pc(i)/dfloat(i)
+ 120      xpin = xpin + tsign*pc(i)/dfloat(i+1)
+c store coefficients in elco and tesco. --------------------------------
+        elco(1,nq) = pint*rq1fac
+        elco(2,nq) = 1.0d0
+        do 130 i = 2,nq
+ 130      elco(i+1,nq) = rq1fac*pc(i)/dfloat(i)
+        agamq = rqfac*xpin
+        ragq = 1.0d0/agamq
+        tesco(2,nq) = ragq
+        if (nq .lt. 12) tesco(1,nqp1) = ragq*rqfac/dfloat(nqp1)
+        tesco(3,nqm1) = ragq
+ 140    continue
+      return
+c
+ 200  pc(1) = 1.0d0
+      rq1fac = 1.0d0
+      do 230 nq = 1,5
+c-----------------------------------------------------------------------
+c the pc array will contain the coefficients of the polynomial
+c     p(x) = (x+1)*(x+2)*...*(x+nq).
+c initially, p(x) = 1.
+c-----------------------------------------------------------------------
+        fnq = dfloat(nq)
+        nqp1 = nq + 1
+c form coefficients of p(x)*(x+nq). ------------------------------------
+        pc(nqp1) = 0.0d0
+        do 210 ib = 1,nq
+          i = nq + 2 - ib
+ 210      pc(i) = pc(i-1) + fnq*pc(i)
+        pc(1) = fnq*pc(1)
+c store coefficients in elco and tesco. --------------------------------
+        do 220 i = 1,nqp1
+ 220      elco(i,nq) = pc(i)/pc(2)
+        elco(2,nq) = 1.0d0
+        tesco(1,nq) = rq1fac
+        tesco(2,nq) = dfloat(nqp1)/elco(1,nq)
+        tesco(3,nq) = dfloat(nq+2)/elco(1,nq)
+        rq1fac = rq1fac/fnq
+ 230    continue
+      return
+c----------------------- end of subroutine cfode -----------------------
+      end
+      subroutine cdrv
+     *     (n, r,c,ic, ia,ja,a, b, z, nsp,isp,rsp,esp, path, flag)
+clll. optimize
+c*** subroutine cdrv
+c*** driver for subroutines for solving sparse nonsymmetric systems of
+c       linear equations (compressed pointer storage)
+c
+c
+c    parameters
+c    class abbreviations are--
+c       n - integer variable
+c       f - real variable
+c       v - supplies a value to the driver
+c       r - returns a result from the driver
+c       i - used internally by the driver
+c       a - array
+c
+c class - parameter
+c ------+----------
+c       -
+c         the nonzero entries of the coefficient matrix m are stored
+c    row-by-row in the array a.  to identify the individual nonzero
+c    entries in each row, we need to know in which column each entry
+c    lies.  the column indices which correspond to the nonzero entries
+c    of m are stored in the array ja.  i.e., if  a(k) = m(i,j),  then
+c    ja(k) = j.  in addition, we need to know where each row starts and
+c    how long it is.  the index positions in ja and a where the rows of
+c    m begin are stored in the array ia.  i.e., if m(i,j) is the first
+c    nonzero entry (stored) in the i-th row and a(k) = m(i,j),  then
+c    ia(i) = k.  moreover, the index in ja and a of the first location
+c    following the last element in the last row is stored in ia(n+1).
+c    thus, the number of entries in the i-th row is given by
+c    ia(i+1) - ia(i),  the nonzero entries of the i-th row are stored
+c    consecutively in
+c            a(ia(i)),  a(ia(i)+1),  ..., a(ia(i+1)-1),
+c    and the corresponding column indices are stored consecutively in
+c            ja(ia(i)), ja(ia(i)+1), ..., ja(ia(i+1)-1).
+c    for example, the 5 by 5 matrix
+c                ( 1. 0. 2. 0. 0.)
+c                ( 0. 3. 0. 0. 0.)
+c            m = ( 0. 4. 5. 6. 0.)
+c                ( 0. 0. 0. 7. 0.)
+c                ( 0. 0. 0. 8. 9.)
+c    would be stored as
+c               - 1  2  3  4  5  6  7  8  9
+c            ---+--------------------------
+c            ia - 1  3  4  7  8 10
+c            ja - 1  3  2  2  3  4  4  4  5
+c             a - 1. 2. 3. 4. 5. 6. 7. 8. 9.         .
+c
+c nv    - n     - number of variables/equations.
+c fva   - a     - nonzero entries of the coefficient matrix m, stored
+c       -           by rows.
+c       -           size = number of nonzero entries in m.
+c nva   - ia    - pointers to delimit the rows in a.
+c       -           size = n+1.
+c nva   - ja    - column numbers corresponding to the elements of a.
+c       -           size = size of a.
+c fva   - b     - right-hand side b.  b and z can the same array.
+c       -           size = n.
+c fra   - z     - solution x.  b and z can be the same array.
+c       -           size = n.
+c
+c         the rows and columns of the original matrix m can be
+c    reordered (e.g., to reduce fillin or ensure numerical stability)
+c    before calling the driver.  if no reordering is done, then set
+c    r(i) = c(i) = ic(i) = i  for i=1,...,n.  the solution z is returned
+c    in the original order.
+c         if the columns have been reordered (i.e.,  c(i).ne.i  for some
+c    i), then the driver will CALL a subroutine (nroc) which rearranges
+c    each row of ja and a, leaving the rows in the original order, but
+c    placing the elements of each row in increasing order with respect
+c    to the new ordering.  if  path.ne.1,  then nroc is assumed to have
+c    been called already.
+c
+c nva   - r     - ordering of the rows of m.
+c       -           size = n.
+c nva   - c     - ordering of the columns of m.
+c       -           size = n.
+c nva   - ic    - inverse of the ordering of the columns of m.  i.e.,
+c       -           ic(c(i)) = i  for i=1,...,n.
+c       -           size = n.
+c
+c         the solution of the system of linear equations is divided into
+c    three stages --
+c      nsfc -- the matrix m is processed symbolically to determine where
+c               fillin will occur during the numeric factorization.
+c      nnfc -- the matrix m is factored numerically into the product ldu
+c               of a unit lower triangular matrix l, a diagonal matrix
+c               d, and a unit upper triangular matrix u, and the system
+c               mx = b  is solved.
+c      nnsc -- the linear system  mx = b  is solved using the ldu
+c  or           factorization from nnfc.
+c      nntc -- the transposed linear system  mt x = b  is solved using
+c               the ldu factorization from nnf.
+c    for several systems whose coefficient matrices have the same
+c    nonzero structure, nsfc need be done only once (for the first
+c    system).  then nnfc is done once for each additional system.  for
+c    several systems with the same coefficient matrix, nsfc and nnfc
+c    need be done only once (for the first system).  then nnsc or nntc
+c    is done once for each additional right-hand side.
+c
+c nv    - path  - path specification.  values and their meanings are --
+c       -           1  perform nroc, nsfc, and nnfc.
+c       -           2  perform nnfc only  (nsfc is assumed to have been
+c       -               done in a manner compatible with the storage
+c       -               allocation used in the driver).
+c       -           3  perform nnsc only  (nsfc and nnfc are assumed to
+c       -               have been done in a manner compatible with the
+c       -               storage allocation used in the driver).
+c       -           4  perform nntc only  (nsfc and nnfc are assumed to
+c       -               have been done in a manner compatible with the
+c       -               storage allocation used in the driver).
+c       -           5  perform nroc and nsfc.
+c
+c         various errors are detected by the driver and the individual
+c    subroutines.
+c
+c nr    - flag  - error flag.  values and their meanings are --
+c       -             0     no errors detected
+c       -             n+k   null row in a  --  row = k
+c       -            2n+k   duplicate entry in a  --  row = k
+c       -            3n+k   insufficient storage in nsfc  --  row = k
+c       -            4n+1   insufficient storage in nnfc
+c       -            5n+k   null pivot  --  row = k
+c       -            6n+k   insufficient storage in nsfc  --  row = k
+c       -            7n+1   insufficient storage in nnfc
+c       -            8n+k   zero pivot  --  row = k
+c       -           10n+1   insufficient storage in cdrv
+c       -           11n+1   illegal path specification
+c
+c         working storage is needed for the factored form of the matrix
+c    m plus various temporary vectors.  the arrays isp and rsp should be
+c    equivalenced.  integer storage is allocated from the beginning of
+c    isp and real storage from the end of rsp.
+c
+c nv    - nsp   - declared dimension of rsp.  nsp generally must
+c       -           be larger than  8n+2 + 2k  (where  k = (number of
+c       -           nonzero entries in m)).
+c nvira - isp   - integer working storage divided up into various arrays
+c       -           needed by the subroutines.  isp and rsp should be
+c       -           equivalenced.
+c       -           size = lratio*nsp.
+c fvira - rsp   - real working storage divided up into various arrays
+c       -           needed by the subroutines.  isp and rsp should be
+c       -           equivalenced.
+c       -           size = nsp.
+c nr    - esp   - if sufficient storage was available to perform the
+c       -           symbolic factorization (nsfc), then esp is set to
+c       -           the amount of excess storage provided (negative if
+c       -           insufficient storage was available to perform the
+c       -           numeric factorization (nnfc)).
+c
+c
+c  conversion to KPP_REAL
+c
+c    to convert these routines for KPP_REAL arrays..
+c    (1) use the KPP_REAL declarations in place of the real
+c    declarations in each subprogram, as given in comment cards.
+c    (2) change the data-loaded value of the integer  lratio
+c    in subroutine cdrv, as indicated below.
+c    (3) change e0 to d0 in the constants in statement number 10
+c    in subroutine nnfc and the line following that.
+c
+      integer  r(1), c(1), ic(1),  ia(1), ja(1),  isp(1), esp,  path,
+     *   flag,  d, u, q, row, tmp, ar,  umax
+      KPP_REAL  a(1), b(1), z(1), rsp(1)
+c
+c  set lratio equal to the ratio between the length of floating point
+c  and integer array data.  e. g., lratio = 1 for (real, integer),
+c  lratio = 2 for (KPP_REAL, integer)
+c
+      data lratio/2/
+c
+      if (path.lt.1 .or. 5.lt.path)  go to 111
+c******initialize and divide up temporary storage  *******************
+      il   = 1
+      ijl  = il  + (n+1)
+      iu   = ijl +   n
+      iju  = iu  + (n+1)
+      irl  = iju +   n
+      jrl  = irl +   n
+      jl   = jrl +   n
+c
+c  ******  reorder a if necessary, CALL nsfc if flag is set  ***********
+      if ((path-1) * (path-5) .ne. 0)  go to 5
+        max = (lratio*nsp + 1 - jl) - (n+1) - 5*n
+        jlmax = max/2
+        q     = jl   + jlmax
+        ira   = q    + (n+1)
+        jra   = ira  +   n
+        irac  = jra  +   n
+        iru   = irac +   n
+        jru   = iru  +   n
+        jutmp = jru  +   n
+        jumax = lratio*nsp  + 1 - jutmp
+        esp = max/lratio
+        if (jlmax.le.0 .or. jumax.le.0)  go to 110
+c
+        do 1 i=1,n
+          if (c(i).ne.i)  go to 2
+   1      continue
+        go to 3
+   2    ar = nsp + 1 - n
+        CALL  nroc
+     *     (n, ic, ia,ja,a, isp(il), rsp(ar), isp(iu), flag)
+        if (flag.ne.0)  go to 100
+c
+   3    CALL  nsfc
+     *     (n, r, ic, ia,ja,
+     *      jlmax, isp(il), isp(jl), isp(ijl),
+     *      jumax, isp(iu), isp(jutmp), isp(iju),
+     *      isp(q), isp(ira), isp(jra), isp(irac),
+     *      isp(irl), isp(jrl), isp(iru), isp(jru),  flag)
+        if(flag .ne. 0)  go to 100
+c  ******  move ju next to jl  *****************************************
+        jlmax = isp(ijl+n-1)
+        ju    = jl + jlmax
+        jumax = isp(iju+n-1)
+        if (jumax.le.0)  go to 5
+        do 4 j=1,jumax
+   4      isp(ju+j-1) = isp(jutmp+j-1)
+c
+c  ******  CALL remaining subroutines  *********************************
+   5  jlmax = isp(ijl+n-1)
+      ju    = jl  + jlmax
+      jumax = isp(iju+n-1)
+      l     = (ju + jumax - 2 + lratio)  /  lratio    +    1
+      lmax  = isp(il+n) - 1
+      d     = l   + lmax
+      u     = d   + n
+      row   = nsp + 1 - n
+      tmp   = row - n
+      umax  = tmp - u
+      esp   = umax - (isp(iu+n) - 1)
+c
+      if ((path-1) * (path-2) .ne. 0)  go to 6
+        if (umax.lt.0)  go to 110
+        CALL nnfc
+     *     (n,  r, c, ic,  ia, ja, a, z, b,
+     *      lmax, isp(il), isp(jl), isp(ijl), rsp(l),  rsp(d),
+     *      umax, isp(iu), isp(ju), isp(iju), rsp(u),
+     *      rsp(row), rsp(tmp),  isp(irl), isp(jrl),  flag)
+        if(flag .ne. 0)  go to 100
+c
+   6  if ((path-3) .ne. 0)  go to 7
+        CALL nnsc
+     *     (n,  r, c,  isp(il), isp(jl), isp(ijl), rsp(l),
+     *      rsp(d),    isp(iu), isp(ju), isp(iju), rsp(u),
+     *      z, b,  rsp(tmp))
+c
+   7  if ((path-4) .ne. 0)  go to 8
+        CALL nntc
+     *     (n,  r, c,  isp(il), isp(jl), isp(ijl), rsp(l),
+     *      rsp(d),    isp(iu), isp(ju), isp(iju), rsp(u),
+     *      z, b,  rsp(tmp))
+   8  return
+c
+c ** error.. error detected in nroc, nsfc, nnfc, or nnsc
+ 100  return
+c ** error.. insufficient storage
+ 110  flag = 10*n + 1
+      return
+c ** error.. illegal path specification
+ 111  flag = 11*n + 1
+      return
+      end
+      subroutine prep (neq, y, yh, savf, ewt, ftem, ia, ja,
+     1                     wk, iwk, ipper, f, jac)
+clll. optimize
+      external f,jac
+      integer neq(*), ia(*), ja(*), iwk(*), ipper
+      integer iownd, iowns,
+     1   icf, ierpj, iersl, jcur, jstart, kflag, l, meth, miter,
+     2   maxord, maxcor, msbp, mxncf, n, nq, nst, nfe, nje, nqu
+      integer iplost, iesp, istatc, iys, iba, ibian, ibjan, ibjgp,
+     1   ipian, ipjan, ipjgp, ipigp, ipr, ipc, ipic, ipisp, iprsp, ipa,
+     2   lenyh, lenyhm, lenwk, lreq, lrat, lrest, lwmin, moss, msbj,
+     3   nslj, ngp, nlu, nnz, nsp, nzl, nzu
+      integer i, ibr, ier, ipil, ipiu, iptt1, iptt2, j, jfound, k,
+     1   knew, kmax, kmin, ldif, lenigp, liwk, maxg, np1, nzsut
+      KPP_REAL y(*), yh(*), savf(*), ewt(*), ftem(*), wk(*)
+      KPP_REAL rowns,
+     1   ccmax, el0, h, hmin, hmxi, hu, rc, tn, uround
+      KPP_REAL con0, conmin, ccmxj, psmall, rbig, seth
+      KPP_REAL dq, dyj, erwt, fac, yj, JJJ(n,n)
+      common /ls0001/ rowns(209),
+     2   ccmax, el0, h, hmin, hmxi, hu, rc, tn, uround,
+     3   iownd(14), iowns(6),
+     4   icf, ierpj, iersl, jcur, jstart, kflag, l, meth, miter,
+     5   maxord, maxcor, msbp, mxncf, n, nq, nst, nfe, nje, nqu
+      common /lss001/ con0, conmin, ccmxj, psmall, rbig, seth,
+     1   iplost, iesp, istatc, iys, iba, ibian, ibjan, ibjgp,
+     2   ipian, ipjan, ipjgp, ipigp, ipr, ipc, ipic, ipisp, iprsp, ipa,
+     3   lenyh, lenyhm, lenwk, lreq, lrat, lrest, lwmin, moss, msbj,
+     4   nslj, ngp, nlu, nnz, nsp, nzl, nzu
+c-----------------------------------------------------------------------
+c this routine performs preprocessing related to the sparse linear
+c systems that must be solved if miter = 1 or 2.
+c the operations that are performed here are..
+c  * compute sparseness structure of jacobian according to moss,
+c  * compute grouping of column indices (miter = 2),
+c  * compute a new ordering of rows and columns of the matrix,
+c  * reorder ja corresponding to the new ordering,
+c  * perform a symbolic lu factorization of the matrix, and
+c  * set pointers for segments of the iwk/wk array.
+c in addition to variables described previously, prep uses the
+c following for communication..
+c yh     = the history array.  only the first column, containing the
+c          current y vector, is used.  used only if moss .ne. 0.
+c savf   = a work array of length neq, used only if moss .ne. 0.
+c ewt    = array of length neq containing (inverted) error weights.
+c          used only if moss = 2 or if istate = moss = 1.
+c ftem   = a work array of length neq, identical to acor in the driver,
+c          used only if moss = 2.
+c wk     = a real work array of length lenwk, identical to wm in
+c          the driver.
+c iwk    = integer work array, assumed to occupy the same space as wk.
+c lenwk  = the length of the work arrays wk and iwk.
+c istatc = a copy of the driver input argument istate (= 1 on the
+c          first call, = 3 on a continuation call).
+c iys    = flag value from odrv or cdrv.
+c ipper  = output error flag with the following values and meanings..
+c          0  no error.
+c         -1  insufficient storage for internal structure pointers.
+c         -2  insufficient storage for jgroup.
+c         -3  insufficient storage for odrv.
+c         -4  other error flag from odrv (should never occur).
+c         -5  insufficient storage for cdrv.
+c         -6  other error flag from cdrv.
+c-----------------------------------------------------------------------
+      ibian = lrat*2
+      ipian = ibian + 1
+      np1 = n + 1
+      ipjan = ipian + np1
+      ibjan = ipjan - 1
+      liwk = lenwk*lrat
+      if (ipjan+n-1 .gt. liwk) go to 210
+      if (moss .eq. 0) go to 30
+c
+      if (istatc .eq. 3) go to 20
+c istate = 1 and moss .ne. 0.  perturb y for structure determination. --
+      do 10 i = 1,n
+        erwt = 1.0d0/ewt(i)
+        fac = 1.0d0 + 1.0d0/(dfloat(i)+1.0d0)
+        y(i) = y(i) + fac*DSIGN(erwt,y(i))
+ 10     continue
+      go to (70, 100), moss
+c
+ 20   continue
+c istate = 3 and moss .ne. 0.  load y from yh(*,1). --------------------
+      do 25 i = 1,n
+ 25     y(i) = yh(i)
+      go to (70, 100), moss
+c
+c moss = 0.  process user-s ia,ja.  add diagonal entries if necessary. -
+ 30   knew = ipjan
+      kmin = ia(1)
+      iwk(ipian) = 1
+      do 60 j = 1,n
+        jfound = 0
+        kmax = ia(j+1) - 1
+        if (kmin .gt. kmax) go to 45
+        do 40 k = kmin,kmax
+          i = ja(k)
+          if (i .eq. j) jfound = 1
+          if (knew .gt. liwk) go to 210
+          iwk(knew) = i
+          knew = knew + 1
+ 40       continue
+        if (jfound .eq. 1) go to 50
+ 45     if (knew .gt. liwk) go to 210
+        iwk(knew) = j
+        knew = knew + 1
+ 50     iwk(ipian+j) = knew + 1 - ipjan
+        kmin = kmax + 1
+ 60     continue
+      go to 140
+c
+c moss = 1.  compute structure from user-supplied jacobian routine jac.
+ 70   continue
+c a dummy CALL to f allows user to create temporaries for use in jac. --
+      CALL f (neq, tn, y, savf)
+      k = ipjan
+      iwk(ipian) = 1
+      call jac_chem (neq, tn, y, JJJ, j, iwk(ipian), iwk(ipjan))
+      do 90 j = 1,n
+        if (k .gt. liwk) go to 210
+        iwk(k) = j
+        k = k + 1
+        do 75 i = 1,n
+ 75       savf(i) = 0.0d0
+C        call jac_chem (neq, tn, y, j, iwk(ipian), iwk(ipjan), savf)
+        do i=1,n
+           savf(i) = JJJ(i,j)
+        end do
+        do 80 i = 1,n
+          if (dabs(savf(i)) .le. seth) go to 80
+          if (i .eq. j) go to 80
+          if (k .gt. liwk) go to 210
+          iwk(k) = i
+          k = k + 1
+ 80       continue
+        iwk(ipian+j) = k + 1 - ipjan
+ 90     continue
+      go to 140
+c
+c moss = 2.  compute structure from results of n + 1 calls to f. -------
+ 100  k = ipjan
+      iwk(ipian) = 1
+      CALL f (neq, tn, y, savf)
+      do 120 j = 1,n
+        if (k .gt. liwk) go to 210
+        iwk(k) = j
+        k = k + 1
+        yj = y(j)
+        erwt = 1.0d0/ewt(j)
+        dyj = DSIGN(erwt,yj)
+        y(j) = yj + dyj
+        CALL f (neq, tn, y, ftem)
+        y(j) = yj
+        do 110 i = 1,n
+          dq = (ftem(i) - savf(i))/dyj
+          if (dabs(dq) .le. seth) go to 110
+          if (i .eq. j) go to 110
+          if (k .gt. liwk) go to 210
+          iwk(k) = i
+          k = k + 1
+ 110      continue
+        iwk(ipian+j) = k + 1 - ipjan
+ 120    continue
+c
+ 140  continue
+      if (moss .eq. 0 .or. istatc .ne. 1) go to 150
+c if istate = 1 and moss .ne. 0, restore y from yh. --------------------
+      do 145 i = 1,n
+ 145    y(i) = yh(i)
+ 150  nnz = iwk(ipian+n) - 1
+      lenigp = 0
+      ipigp = ipjan + nnz
+      if (miter .ne. 2) go to 160
+c
+c compute grouping of column indices (miter = 2). ----------------------
+      maxg = np1
+      ipjgp = ipjan + nnz
+      ibjgp = ipjgp - 1
+      ipigp = ipjgp + n
+      iptt1 = ipigp + np1
+      iptt2 = iptt1 + n
+      lreq = iptt2 + n - 1
+      if (lreq .gt. liwk) go to 220
+      CALL jgroup (n, iwk(ipian), iwk(ipjan), maxg, ngp, iwk(ipigp),
+     1   iwk(ipjgp), iwk(iptt1), iwk(iptt2), ier)
+      if (ier .ne. 0) go to 220
+      lenigp = ngp + 1
+c
+c compute new ordering of rows/columns of jacobian. --------------------
+ 160  ipr = ipigp + lenigp
+      ipc = ipr
+      ipic = ipc + n
+      ipisp = ipic + n
+      iprsp = (ipisp - 2)/lrat + 2
+      iesp = lenwk + 1 - iprsp
+      if (iesp .lt. 0) go to 230
+      ibr = ipr - 1
+      do 170 i = 1,n
+ 170    iwk(ibr+i) = i
+      nsp = liwk + 1 - ipisp
+      CALL odrv (n, iwk(ipian), iwk(ipjan), wk, iwk(ipr), iwk(ipic),
+     1   nsp, iwk(ipisp), 1, iys)
+      if (iys .eq. 11*n+1) go to 240
+      if (iys .ne. 0) go to 230
+c
+c reorder jan and do symbolic lu factorization of matrix. --------------
+      ipa = lenwk + 1 - nnz
+      nsp = ipa - iprsp
+      lreq = max0(12*n/lrat, 6*n/lrat+2*n+nnz) + 3
+      lreq = lreq + iprsp - 1 + nnz
+      if (lreq .gt. lenwk) go to 250
+      iba = ipa - 1
+      do 180 i = 1,nnz
+ 180    wk(iba+i) = 0.0d0
+      ipisp = lrat*(iprsp - 1) + 1
+      CALL cdrv (n,iwk(ipr),iwk(ipc),iwk(ipic),iwk(ipian),iwk(ipjan),
+     1   wk(ipa),wk(ipa),wk(ipa),nsp,iwk(ipisp),wk(iprsp),iesp,5,iys)
+      lreq = lenwk - iesp
+      if (iys .eq. 10*n+1) go to 250
+      if (iys .ne. 0) go to 260
+      ipil = ipisp
+      ipiu = ipil + 2*n + 1
+      nzu = iwk(ipil+n) - iwk(ipil)
+      nzl = iwk(ipiu+n) - iwk(ipiu)
+      if (lrat .gt. 1) go to 190
+      CALL adjlr (n, iwk(ipisp), ldif)
+      lreq = lreq + ldif
+ 190  continue
+      if (lrat .eq. 2 .and. nnz .eq. n) lreq = lreq + 1
+      nsp = nsp + lreq - lenwk
+      ipa = lreq + 1 - nnz
+      iba = ipa - 1
+      ipper = 0
+      return
+c
+ 210  ipper = -1
+      lreq = 2 + (2*n + 1)/lrat
+      lreq = max0(lenwk+1,lreq)
+      return
+c
+ 220  ipper = -2
+      lreq = (lreq - 1)/lrat + 1
+      return
+c
+ 230  ipper = -3
+      CALL cntnzu (n, iwk(ipian), iwk(ipjan), nzsut)
+      lreq = lenwk - iesp + (3*n + 4*nzsut - 1)/lrat + 1
+      return
+c
+ 240  ipper = -4
+      return
+c
+ 250  ipper = -5
+      return
+c
+ 260  ipper = -6
+      lreq = lenwk
+      return
+c----------------------- end of subroutine prep ------------------------
+      end
+      subroutine cntnzu (n, ia, ja, nzsut)
+      integer n, ia, ja, nzsut
+      dimension ia(1), ja(1)
+c-----------------------------------------------------------------------
+c this routine counts the number of nonzero elements in the strict
+c upper triangle of the matrix m + m(transpose), where the sparsity
+c structure of m is given by pointer arrays ia and ja.
+c this is needed to compute the storage requirements for the
+c sparse matrix reordering operation in odrv.
+c-----------------------------------------------------------------------
+      integer ii, jj, j, jmin, jmax, k, kmin, kmax, num
+c
+      num = 0
+      do 50 ii = 1,n
+        jmin = ia(ii)
+        jmax = ia(ii+1) - 1
+        if (jmin .gt. jmax) go to 50
+        do 40 j = jmin,jmax
+          if (ja(j) - ii) 10, 40, 30
+ 10       jj =ja(j)
+          kmin = ia(jj)
+          kmax = ia(jj+1) - 1
+          if (kmin .gt. kmax) go to 30
+          do 20 k = kmin,kmax
+            if (ja(k) .eq. ii) go to 40
+ 20         continue
+ 30       num = num + 1
+ 40       continue
+ 50     continue
+      nzsut = num
+      return
+c----------------------- end of subroutine cntnzu ----------------------
+      end
+      subroutine nntc
+     *     (n, r, c, il, jl, ijl, l, d, iu, ju, iju, u, z, b, tmp)
+clll. optimize
+c*** subroutine nntc
+c*** numeric solution of the transpose of a sparse nonsymmetric system
+c      of linear equations given lu-factorization (compressed pointer
+c      storage)
+c
+c
+c       input variables..  n, r, c, il, jl, ijl, l, d, iu, ju, iju, u, b
+c       output variables.. z
+c
+c       parameters used internally..
+c fia   - tmp   - temporary vector which gets result of solving ut y = b
+c       -           size = n.
+c
+c  internal variables..
+c    jmin, jmax - indices of the first and last positions in a row of
+c      u or l  to be used.
+c
+      integer r(1), c(1), il(1), jl(1), ijl(1), iu(1), ju(1), iju(1)
+      KPP_REAL l(1), d(1), u(1), b(1), z(1), tmp(1), tmpk,sum
+c
+c  ******  set tmp to reordered b  *************************************
+      do 1 k=1,n
+   1    tmp(k) = b(c(k))
+c  ******  solve  ut y = b  by forward substitution  *******************
+      do 3 k=1,n
+        jmin = iu(k)
+        jmax = iu(k+1) - 1
+        tmpk = -tmp(k)
+        if (jmin .gt. jmax) go to 3
+        mu = iju(k) - jmin
+        do 2 j=jmin,jmax
+   2      tmp(ju(mu+j)) = tmp(ju(mu+j)) + tmpk * u(j)
+   3    continue
+c  ******  solve  lt x = y  by back substitution  **********************
+      k = n
+      do 6 i=1,n
+        sum = -tmp(k)
+        jmin = il(k)
+        jmax = il(k+1) - 1
+        if (jmin .gt. jmax) go to 5
+        ml = ijl(k) - jmin
+        do 4 j=jmin,jmax
+   4      sum = sum + l(j) * tmp(jl(ml+j))
+   5    tmp(k) = -sum * d(k)
+        z(r(k)) = tmp(k)
+        k = k - 1
+   6    continue
+      return
+      end
+      subroutine nnsc
+     *     (n, r, c, il, jl, ijl, l, d, iu, ju, iju, u, z, b, tmp)
+clll. optimize
+c*** subroutine nnsc
+c*** numerical solution of sparse nonsymmetric system of linear
+c      equations given ldu-factorization (compressed pointer storage)
+c
+c
+c       input variables..  n, r, c, il, jl, ijl, l, d, iu, ju, iju, u, b
+c       output variables.. z
+c
+c       parameters used internally..
+c fia   - tmp   - temporary vector which gets result of solving  ly = b.
+c       -           size = n.
+c
+c  internal variables..
+c    jmin, jmax - indices of the first and last positions in a row of
+c      u or l  to be used.
+c
+      integer r(1), c(1), il(1), jl(1), ijl(1), iu(1), ju(1), iju(1)
+      KPP_REAL  l(1), d(1), u(1), b(1), z(1), tmp(1), tmpk,sum
+c
+c  ******  set tmp to reordered b  *************************************
+      do 1 k=1,n
+   1    tmp(k) = b(r(k))
+c  ******  solve  ly = b  by forward substitution  *********************
+      do 3 k=1,n
+        jmin = il(k)
+        jmax = il(k+1) - 1
+        tmpk = -d(k) * tmp(k)
+        tmp(k) = -tmpk
+        if (jmin .gt. jmax) go to 3
+        ml = ijl(k) - jmin
+        do 2 j=jmin,jmax
+   2      tmp(jl(ml+j)) = tmp(jl(ml+j)) + tmpk * l(j)
+   3    continue
+c  ******  solve  ux = y  by back substitution  ************************
+      k = n
+      do 6 i=1,n
+        sum = -tmp(k)
+        jmin = iu(k)
+        jmax = iu(k+1) - 1
+        if (jmin .gt. jmax) go to 5
+        mu = iju(k) - jmin
+        do 4 j=jmin,jmax
+   4      sum = sum + u(j) * tmp(ju(mu+j))
+   5    tmp(k) = -sum
+        z(c(k)) = -sum
+        k = k - 1
+   6    continue
+      return
+      end
+      subroutine nroc (n, ic, ia, ja, a, jar, ar, p, flag)
+clll. optimize
+c
+c       ----------------------------------------------------------------
+c
+c               yale sparse matrix package - nonsymmetric codes
+c                    solving the system of equations mx = b
+c
+c    i.   calling sequences
+c         the coefficient matrix can be processed by an ordering routine
+c    (e.g., to reduce fillin or ensure numerical stability) before using
+c    the remaining subroutines.  if no reordering is done, then set
+c    r(i) = c(i) = ic(i) = i  for i=1,...,n.  if an ordering subroutine
+c    is used, then nroc should be used to reorder the coefficient matrix
+c    the calling sequence is --
+c        (       (matrix ordering))
+c        (nroc   (matrix reordering))
+c         nsfc   (symbolic factorization to determine where fillin will
+c                  occur during numeric factorization)
+c         nnfc   (numeric factorization into product ldu of unit lower
+c                  triangular matrix l, diagonal matrix d, and unit
+c                  upper triangular matrix u, and solution of linear
+c                  system)
+c         nnsc   (solution of linear system for additional right-hand
+c                  side using ldu factorization from nnfc)
+c    (if only one system of equations is to be solved, then the
+c    subroutine trk should be used.)
+c
+c    ii.  storage of sparse matrices
+c         the nonzero entries of the coefficient matrix m are stored
+c    row-by-row in the array a.  to identify the individual nonzero
+c    entries in each row, we need to know in which column each entry
+c    lies.  the column indices which correspond to the nonzero entries
+c    of m are stored in the array ja.  i.e., if  a(k) = m(i,j),  then
+c    ja(k) = j.  in addition, we need to know where each row starts and
+c    how long it is.  the index positions in ja and a where the rows of
+c    m begin are stored in the array ia.  i.e., if m(i,j) is the first
+c    (leftmost) entry in the i-th row and  a(k) = m(i,j),  then
+c    ia(i) = k.  moreover, the index in ja and a of the first location
+c    following the last element in the last row is stored in ia(n+1).
+c    thus, the number of entries in the i-th row is given by
+c    ia(i+1) - ia(i),  the nonzero entries of the i-th row are stored
+c    consecutively in
+c            a(ia(i)),  a(ia(i)+1),  ..., a(ia(i+1)-1),
+c    and the corresponding column indices are stored consecutively in
+c            ja(ia(i)), ja(ia(i)+1), ..., ja(ia(i+1)-1).
+c    for example, the 5 by 5 matrix
+c                ( 1. 0. 2. 0. 0.)
+c                ( 0. 3. 0. 0. 0.)
+c            m = ( 0. 4. 5. 6. 0.)
+c                ( 0. 0. 0. 7. 0.)
+c                ( 0. 0. 0. 8. 9.)
+c    would be stored as
+c               - 1  2  3  4  5  6  7  8  9
+c            ---+--------------------------
+c            ia - 1  3  4  7  8 10
+c            ja - 1  3  2  2  3  4  4  4  5
+c             a - 1. 2. 3. 4. 5. 6. 7. 8. 9.         .
+c
+c         the strict upper (lower) triangular portion of the matrix
+c    u (l) is stored in a similar fashion using the arrays  iu, ju, u
+c    (il, jl, l)  except that an additional array iju (ijl) is used to
+c    compress storage of ju (jl) by allowing some sequences of column
+c    (row) indices to used for more than one row (column)  (n.b., l is
+c    stored by columns).  iju(k) (ijl(k)) points to the starting
+c    location in ju (jl) of entries for the kth row (column).
+c    compression in ju (jl) occurs in two ways.  first, if a row
+c    (column) i was merged into the current row (column) k, and the
+c    number of elements merged in from (the tail portion of) row
+c    (column) i is the same as the final length of row (column) k, then
+c    the kth row (column) and the tail of row (column) i are identical
+c    and iju(k) (ijl(k)) points to the start of the tail.  second, if
+c    some tail portion of the (k-1)st row (column) is identical to the
+c    head of the kth row (column), then iju(k) (ijl(k)) points to the
+c    start of that tail portion.  for example, the nonzero structure of
+c    the strict upper triangular part of the matrix
+c            d 0 x x x
+c            0 d 0 x x
+c            0 0 d x 0
+c            0 0 0 d x
+c            0 0 0 0 d
+c    would be represented as
+c                - 1 2 3 4 5 6
+c            ----+------------
+c             iu - 1 4 6 7 8 8
+c             ju - 3 4 5 4
+c            iju - 1 2 4 3           .
+c    the diagonal entries of l and u are assumed to be equal to one and
+c    are not stored.  the array d contains the reciprocals of the
+c    diagonal entries of the matrix d.
+c
+c    iii. additional storage savings
+c         in nsfc, r and ic can be the same array in the calling
+c    sequence if no reordering of the coefficient matrix has been done.
+c         in nnfc, r, c, and ic can all be the same array if no
+c    reordering has been done.  if only the rows have been reordered,
+c    then c and ic can be the same array.  if the row and column
+c    orderings are the same, then r and c can be the same array.  z and
+c    row can be the same array.
+c         in nnsc or nntc, r and c can be the same array if no
+c    reordering has been done or if the row and column orderings are the
+c    same.  z and b can be the same array.  however, then b will be
+c    destroyed.
+c
+c    iv.  parameters
+c         following is a list of parameters to the programs.  names are
+c    uniform among the various subroutines.  class abbreviations are --
+c       n - integer variable
+c       f - real variable
+c       v - supplies a value to a subroutine
+c       r - returns a result from a subroutine
+c       i - used internally by a subroutine
+c       a - array
+c
+c class - parameter
+c ------+----------
+c fva   - a     - nonzero entries of the coefficient matrix m, stored
+c       -           by rows.
+c       -           size = number of nonzero entries in m.
+c fva   - b     - right-hand side b.
+c       -           size = n.
+c nva   - c     - ordering of the columns of m.
+c       -           size = n.
+c fvra  - d     - reciprocals of the diagonal entries of the matrix d.
+c       -           size = n.
+c nr    - flag  - error flag.  values and their meanings are --
+c       -            0     no errors detected
+c       -            n+k   null row in a  --  row = k
+c       -           2n+k   duplicate entry in a  --  row = k
+c       -           3n+k   insufficient storage for jl  --  row = k
+c       -           4n+1   insufficient storage for l
+c       -           5n+k   null pivot  --  row = k
+c       -           6n+k   insufficient storage for ju  --  row = k
+c       -           7n+1   insufficient storage for u
+c       -           8n+k   zero pivot  --  row = k
+c nva   - ia    - pointers to delimit the rows of a.
+c       -           size = n+1.
+c nvra  - ijl   - pointers to the first element in each column in jl,
+c       -           used to compress storage in jl.
+c       -           size = n.
+c nvra  - iju   - pointers to the first element in each row in ju, used
+c       -           to compress storage in ju.
+c       -           size = n.
+c nvra  - il    - pointers to delimit the columns of l.
+c       -           size = n+1.
+c nvra  - iu    - pointers to delimit the rows of u.
+c       -           size = n+1.
+c nva   - ja    - column numbers corresponding to the elements of a.
+c       -           size = size of a.
+c nvra  - jl    - row numbers corresponding to the elements of l.
+c       -           size = jlmax.
+c nv    - jlmax - declared dimension of jl.  jlmax must be larger than
+c       -           the number of nonzeros in the strict lower triangle
+c       -           of m plus fillin minus compression.
+c nvra  - ju    - column numbers corresponding to the elements of u.
+c       -           size = jumax.
+c nv    - jumax - declared dimension of ju.  jumax must be larger than
+c       -           the number of nonzeros in the strict upper triangle
+c       -           of m plus fillin minus compression.
+c fvra  - l     - nonzero entries in the strict lower triangular portion
+c       -           of the matrix l, stored by columns.
+c       -           size = lmax.
+c nv    - lmax  - declared dimension of l.  lmax must be larger than
+c       -           the number of nonzeros in the strict lower triangle
+c       -           of m plus fillin  (il(n+1)-1 after nsfc).
+c nv    - n     - number of variables/equations.
+c nva   - r     - ordering of the rows of m.
+c       -           size = n.
+c fvra  - u     - nonzero entries in the strict upper triangular portion
+c       -           of the matrix u, stored by rows.
+c       -           size = umax.
+c nv    - umax  - declared dimension of u.  umax must be larger than
+c       -           the number of nonzeros in the strict upper triangle
+c       -           of m plus fillin  (iu(n+1)-1 after nsfc).
+c fra   - z     - solution x.
+c       -           size = n.
+c
+c       ----------------------------------------------------------------
+c
+c*** subroutine nroc
+c*** reorders rows of a, leaving row order unchanged
+c
+c
+c       input parameters.. n, ic, ia, ja, a
+c       output parameters.. ja, a, flag
+c
+c       parameters used internally..
+c nia   - p     - at the kth step, p is a linked list of the reordered
+c       -           column indices of the kth row of a.  p(n+1) points
+c       -           to the first entry in the list.
+c       -           size = n+1.
+c nia   - jar   - at the kth step,jar contains the elements of the
+c       -           reordered column indices of a.
+c       -           size = n.
+c fia   - ar    - at the kth step, ar contains the elements of the
+c       -           reordered row of a.
+c       -           size = n.
+c
+      integer  ic(1), ia(1), ja(1), jar(1), p(1), flag
+      KPP_REAL  a(1), ar(1)
+c
+c  ******  for each nonempty row  *******************************
+      do 5 k=1,n
+        jmin = ia(k)
+        jmax = ia(k+1) - 1
+        if(jmin .gt. jmax) go to 5
+        p(n+1) = n + 1
+c  ******  insert each element in the list  *********************
+        do 3 j=jmin,jmax
+          newj = ic(ja(j))
+          i = n + 1
+   1      if(p(i) .ge. newj) go to 2
+            i = p(i)
+            go to 1
+   2      if(p(i) .eq. newj) go to 102
+          p(newj) = p(i)
+          p(i) = newj
+          jar(newj) = ja(j)
+          ar(newj) = a(j)
+   3      continue
+c  ******  replace old row in ja and a  *************************
+        i = n + 1
+        do 4 j=jmin,jmax
+          i = p(i)
+          ja(j) = jar(i)
+   4      a(j) = ar(i)
+   5    continue
+      flag = 0
+      return
+c
+c ** error.. duplicate entry in a
+ 102  flag = n + k
+      return
+      end
+      subroutine adjlr (n, isp, ldif)
+      integer n, isp, ldif
+      dimension isp(1)
+c-----------------------------------------------------------------------
+c this routine computes an adjustment, ldif, to the required
+c integer storage space in iwk (sparse matrix work space).
+c it is called only if the word length ratio is lrat = 1.
+c this is to account for the possibility that the symbolic lu phase
+c may require more storage than the numerical lu and solution phases.
+c-----------------------------------------------------------------------
+      integer ip, jlmax, jumax, lnfc, lsfc, nzlu
+c
+      ip = 2*n + 1
+c get jlmax = ijl(n) and jumax = iju(n) (sizes of jl and ju). ----------
+      jlmax = isp(ip)
+      jumax = isp(ip+ip)
+c nzlu = (size of l) + (size of u) = (il(n+1)-il(1)) + (iu(n+1)-iu(1)).
+      nzlu = isp(n+1) - isp(1) + isp(ip+n+1) - isp(ip+1)
+      lsfc = 12*n + 3 + 2*max0(jlmax,jumax)
+      lnfc = 9*n + 2 + jlmax + jumax + nzlu
+      ldif = max0(0, lsfc - lnfc)
+      return
+c----------------------- end of subroutine adjlr -----------------------
+      end
+      subroutine odrv
+     *     (n, ia,ja,a, p,ip, nsp,isp, path, flag)
+clll. optimize
+c                                                                 5/2/83
+c***********************************************************************
+c  odrv -- driver for sparse matrix reordering routines
+c***********************************************************************
+c
+c  description
+c
+c    odrv finds a minimum degree ordering of the rows and columns
+c    of a matrix m stored in (ia,ja,a) format (see below).  for the
+c    reordered matrix, the work and storage required to perform
+c    gaussian elimination is (usually) significantly less.
+c
+c    note.. odrv and its subordinate routines have been modified to
+c    compute orderings for general matrices, not necessarily having any
+c    symmetry.  the miminum degree ordering is computed for the
+c    structure of the symmetric matrix  m + m-transpose.
+c    modifications to the original odrv module have been made in
+c    the coding in subroutine mdi, and in the initial comments in
+c    subroutines odrv and md.
+c
+c    if only the nonzero entries in the upper triangle of m are being
+c    stored, then odrv symmetrically reorders (ia,ja,a), (optionally)
+c    with the diagonal entries placed first in each row.  this is to
+c    ensure that if m(i,j) will be in the upper triangle of m with
+c    respect to the new ordering, then m(i,j) is stored in row i (and
+c    thus m(j,i) is not stored),  whereas if m(i,j) will be in the
+c    strict lower triangle of m, then m(j,i) is stored in row j (and
+c    thus m(i,j) is not stored).
+c
+c
+c  storage of sparse matrices
+c
+c    the nonzero entries of the matrix m are stored row-by-row in the
+c    array a.  to identify the individual nonzero entries in each row,
+c    we need to know in which column each entry lies.  these column
+c    indices are stored in the array ja.  i.e., if  a(k) = m(i,j),  then
+c    ja(k) = j.  to identify the individual rows, we need to know where
+c    each row starts.  these row pointers are stored in the array ia.
+c    i.e., if m(i,j) is the first nonzero entry (stored) in the i-th row
+c    and  a(k) = m(i,j),  then  ia(i) = k.  moreover, ia(n+1) points to
+c    the first location following the last element in the last row.
+c    thus, the number of entries in the i-th row is  ia(i+1) - ia(i),
+c    the nonzero entries in the i-th row are stored consecutively in
+c
+c            a(ia(i)),  a(ia(i)+1),  ..., a(ia(i+1)-1),
+c
+c    and the corresponding column indices are stored consecutively in
+c
+c            ja(ia(i)), ja(ia(i)+1), ..., ja(ia(i+1)-1).
+c
+c    since the coefficient matrix is symmetric, only the nonzero entries
+c    in the upper triangle need be stored.  for example, the matrix
+c
+c             ( 1  0  2  3  0 )
+c             ( 0  4  0  0  0 )
+c         m = ( 2  0  5  6  0 )
+c             ( 3  0  6  7  8 )
+c             ( 0  0  0  8  9 )
+c
+c    could be stored as
+c
+c            - 1  2  3  4  5  6  7  8  9 10 11 12 13
+c         ---+--------------------------------------
+c         ia - 1  4  5  8 12 14
+c         ja - 1  3  4  2  1  3  4  1  3  4  5  4  5
+c          a - 1  2  3  4  2  5  6  3  6  7  8  8  9
+c
+c    or (symmetrically) as
+c
+c            - 1  2  3  4  5  6  7  8  9
+c         ---+--------------------------
+c         ia - 1  4  5  7  9 10
+c         ja - 1  3  4  2  3  4  4  5  5
+c          a - 1  2  3  4  5  6  7  8  9          .
+c
+c
+c  parameters
+c
+c    n    - order of the matrix
+c
+c    ia   - integer one-dimensional array containing pointers to delimit
+c           rows in ja and a.  dimension = n+1
+c
+c    ja   - integer one-dimensional array containing the column indices
+c           corresponding to the elements of a.  dimension = number of
+c           nonzero entries in (the upper triangle of) m
+c
+c    a    - real one-dimensional array containing the nonzero entries in
+c           (the upper triangle of) m, stored by rows.  dimension =
+c           number of nonzero entries in (the upper triangle of) m
+c
+c    p    - integer one-dimensional array used to return the permutation
+c           of the rows and columns of m corresponding to the minimum
+c           degree ordering.  dimension = n
+c
+c    ip   - integer one-dimensional array used to return the inverse of
+c           the permutation returned in p.  dimension = n
+c
+c    nsp  - declared dimension of the one-dimensional array isp.  nsp
+c           must be at least  3n+4k,  where k is the number of nonzeroes
+c           in the strict upper triangle of m
+c
+c    isp  - integer one-dimensional array used for working storage.
+c           dimension = nsp
+c
+c    path - integer path specification.  values and their meanings are -
+c             1  find minimum degree ordering only
+c             2  find minimum degree ordering and reorder symmetrically
+c                  stored matrix (used when only the nonzero entries in
+c                  the upper triangle of m are being stored)
+c             3  reorder symmetrically stored matrix as specified by
+c                  input permutation (used when an ordering has already
+c                  been determined and only the nonzero entries in the
+c                  upper triangle of m are being stored)
+c             4  same as 2 but put diagonal entries at start of each row
+c             5  same as 3 but put diagonal entries at start of each row
+c
+c    flag - integer error flag.  values and their meanings are -
+c               0    no errors detected
+c              9n+k  insufficient storage in md
+c             10n+1  insufficient storage in odrv
+c             11n+1  illegal path specification
+c
+c
+c  conversion from real to KPP_REAL
+c
+c    change the real declarations in odrv and sro to KPP_REAL
+c    declarations.
+c
+c-----------------------------------------------------------------------
+c
+      integer  ia(1), ja(1),  p(1), ip(1),  isp(1),  path,  flag,
+     *   v, l, head,  tmp, q
+      KPP_REAL  a(1)
+      logical  dflag
+c
+c----initialize error flag and validate path specification
+      flag = 0
+      if (path.lt.1 .or. 5.lt.path)  go to 111
+c
+c----allocate storage and find minimum degree ordering
+      if ((path-1) * (path-2) * (path-4) .ne. 0)  go to 1
+        max = (nsp-n)/2
+        v    = 1
+        l    = v     +  max
+        head = l     +  max
+        next = head  +  n
+        if (max.lt.n)  go to 110
+c
+        CALL  md
+     *     (n, ia,ja, max,isp(v),isp(l), isp(head),p,ip, isp(v), flag)
+        if (flag.ne.0)  go to 100
+c
+c----allocate storage and symmetrically reorder matrix
+   1  if ((path-2) * (path-3) * (path-4) * (path-5) .ne. 0)  go to 2
+        tmp = (nsp+1) -      n
+        q   = tmp     - (ia(n+1)-1)
+        if (q.lt.1)  go to 110
+c
+        dflag = path.eq.4 .or. path.eq.5
+        CALL sro
+     *     (n,  ip,  ia, ja, a,  isp(tmp),  isp(q),  dflag)
+c
+   2  return
+c
+c ** error -- error detected in md
+ 100  return
+c ** error -- insufficient storage
+ 110  flag = 10*n + 1
+      return
+c ** error -- illegal path specified
+ 111  flag = 11*n + 1
+      return
+      end
+      subroutine nnfc
+     *     (n, r,c,ic, ia,ja,a, z, b,
+     *      lmax,il,jl,ijl,l, d, umax,iu,ju,iju,u,
+     *      row, tmp, irl,jrl, flag)
+clll. optimize
+c*** subroutine nnfc
+c*** numerical ldu-factorization of sparse nonsymmetric matrix and
+c      solution of system of linear equations (compressed pointer
+c      storage)
+c
+c
+c       input variables..  n, r, c, ic, ia, ja, a, b,
+c                          il, jl, ijl, lmax, iu, ju, iju, umax
+c       output variables.. z, l, d, u, flag
+c
+c       parameters used internally..
+c nia   - irl,  - vectors used to find the rows of  l.  at the kth step
+c nia   - jrl       of the factorization,  jrl(k)  points to the head
+c       -           of a linked list in  jrl  of column indices j
+c       -           such j .lt. k and  l(k,j)  is nonzero.  zero
+c       -           indicates the end of the list.  irl(j)  (j.lt.k)
+c       -           points to the smallest i such that i .ge. k and
+c       -           l(i,j)  is nonzero.
+c       -           size of each = n.
+c fia   - row   - holds intermediate values in calculation of  u and l.
+c       -           size = n.
+c fia   - tmp   - holds new right-hand side  b*  for solution of the
+c       -           equation ux = b*.
+c       -           size = n.
+c
+c  internal variables..
+c    jmin, jmax - indices of the first and last positions in a row to
+c      be examined.
+c    sum - used in calculating  tmp.
+c
+      integer rk,umax
+      integer  r(1), c(1), ic(1), ia(1), ja(1), il(1), jl(1), ijl(1)
+      integer  iu(1), ju(1), iju(1), irl(1), jrl(1), flag
+      KPP_REAL  a(1), l(1), d(1), u(1), z(1), b(1), row(1)
+      KPP_REAL  tmp(1), lki, sum, dk
+c
+c  ******  initialize pointers and test storage  ***********************
+      if(il(n+1)-1 .gt. lmax) go to 104
+      if(iu(n+1)-1 .gt. umax) go to 107
+      do 1 k=1,n
+        irl(k) = il(k)
+        jrl(k) = 0
+   1    continue
+c
+c  ******  for each row  ***********************************************
+      do 19 k=1,n
+c  ******  reverse jrl and zero row where kth row of l will fill in  ***
+        row(k) = 0
+        i1 = 0
+        if (jrl(k) .eq. 0) go to 3
+        i = jrl(k)
+   2    i2 = jrl(i)
+        jrl(i) = i1
+        i1 = i
+        row(i) = 0
+        i = i2
+        if (i .ne. 0) go to 2
+c  ******  set row to zero where u will fill in  ***********************
+   3    jmin = iju(k)
+        jmax = jmin + iu(k+1) - iu(k) - 1
+        if (jmin .gt. jmax) go to 5
+        do 4 j=jmin,jmax
+   4      row(ju(j)) = 0
+c  ******  place kth row of a in row  **********************************
+   5    rk = r(k)
+        jmin = ia(rk)
+        jmax = ia(rk+1) - 1
+        do 6 j=jmin,jmax
+          row(ic(ja(j))) = a(j)
+   6      continue
+c  ******  initialize sum, and link through jrl  ***********************
+        sum = b(rk)
+        i = i1
+        if (i .eq. 0) go to 10
+c  ******  assign the kth row of l and adjust row, sum  ****************
+   7      lki = -row(i)
+c  ******  if l is not required, then comment out the following line  **
+          l(irl(i)) = -lki
+          sum = sum + lki * tmp(i)
+          jmin = iu(i)
+          jmax = iu(i+1) - 1
+          if (jmin .gt. jmax) go to 9
+          mu = iju(i) - jmin
+          do 8 j=jmin,jmax
+   8        row(ju(mu+j)) = row(ju(mu+j)) + lki * u(j)
+   9      i = jrl(i)
+          if (i .ne. 0) go to 7
+c
+c  ******  assign kth row of u and diagonal d, set tmp(k)  *************
+  10    if (row(k) .eq. 0.0d0) go to 108
+        dk = 1.0d0 / row(k)
+        d(k) = dk
+        tmp(k) = sum * dk
+        if (k .eq. n) go to 19
+        jmin = iu(k)
+        jmax = iu(k+1) - 1
+        if (jmin .gt. jmax)  go to 12
+        mu = iju(k) - jmin
+        do 11 j=jmin,jmax
+  11      u(j) = row(ju(mu+j)) * dk
+  12    continue
+c
+c  ******  update irl and jrl, keeping jrl in decreasing order  ********
+        i = i1
+        if (i .eq. 0) go to 18
+  14    irl(i) = irl(i) + 1
+        i1 = jrl(i)
+        if (irl(i) .ge. il(i+1)) go to 17
+        ijlb = irl(i) - il(i) + ijl(i)
+        j = jl(ijlb)
+  15    if (i .gt. jrl(j)) go to 16
+          j = jrl(j)
+          go to 15
+  16    jrl(i) = jrl(j)
+        jrl(j) = i
+  17    i = i1
+        if (i .ne. 0) go to 14
+  18    if (irl(k) .ge. il(k+1)) go to 19
+        j = jl(ijl(k))
+        jrl(k) = jrl(j)
+        jrl(j) = k
+  19    continue
+c
+c  ******  solve  ux = tmp  by back substitution  **********************
+      k = n
+      do 22 i=1,n
+        sum =  tmp(k)
+        jmin = iu(k)
+        jmax = iu(k+1) - 1
+        if (jmin .gt. jmax)  go to 21
+        mu = iju(k) - jmin
+        do 20 j=jmin,jmax
+  20      sum = sum - u(j) * tmp(ju(mu+j))
+  21    tmp(k) =  sum
+        z(c(k)) =  sum
+  22    k = k-1
+      flag = 0
+      return
+c
+c ** error.. insufficient storage for l
+ 104  flag = 4*n + 1
+      return
+c ** error.. insufficient storage for u
+ 107  flag = 7*n + 1
+      return
+c ** error.. zero pivot
+ 108  flag = 8*n + k
+      return
+      end
+      subroutine jgroup (n,ia,ja,maxg,ngrp,igp,jgp,incl,jdone,ier)
+clll. optimize
+      integer n, ia, ja, maxg, ngrp, igp, jgp, incl, jdone, ier
+      dimension ia(1), ja(1), igp(1), jgp(n), incl(n), jdone(n)
+c-----------------------------------------------------------------------
+c this subroutine constructs groupings of the column indices of
+c the jacobian matrix, used in the numerical evaluation of the
+c jacobian by finite differences.
+c
+c input..
+c n      = the order of the matrix.
+c ia,ja  = sparse structure descriptors of the matrix by rows.
+c maxg   = length of available storate in the igp array.
+c
+c output..
+c ngrp   = number of groups.
+c jgp    = array of length n containing the column indices by groups.
+c igp    = pointer array of length ngrp + 1 to the locations in jgp
+c          of the beginning of each group.
+c ier    = error indicator.  ier = 0 if no error occurred, or 1 if
+c          maxg was insufficient.
+c
+c incl and jdone are working arrays of length n.
+c-----------------------------------------------------------------------
+      integer i, j, k, kmin, kmax, ncol, ng
+c
+      ier = 0
+      do 10 j = 1,n
+ 10     jdone(j) = 0
+      ncol = 1
+      do 60 ng = 1,maxg
+        igp(ng) = ncol
+        do 20 i = 1,n
+ 20       incl(i) = 0
+        do 50 j = 1,n
+c reject column j if it is already in a group.--------------------------
+          if (jdone(j) .eq. 1) go to 50
+          kmin = ia(j)
+          kmax = ia(j+1) - 1
+          do 30 k = kmin,kmax
+c reject column j if it overlaps any column already in this group.------
+            i = ja(k)
+            if (incl(i) .eq. 1) go to 50
+ 30         continue
+c accept column j into group ng.----------------------------------------
+          jgp(ncol) = j
+          ncol = ncol + 1
+          jdone(j) = 1
+          do 40 k = kmin,kmax
+            i = ja(k)
+ 40         incl(i) = 1
+ 50       continue
+c stop if this group is empty (grouping is complete).-------------------
+        if (ncol .eq. igp(ng)) go to 70
+ 60     continue
+c error return if not all columns were chosen (maxg too small).---------
+      if (ncol .le. n) go to 80
+      ng = maxg
+ 70   ngrp = ng - 1
+      return
+ 80   ier = 1
+      return
+c----------------------- end of subroutine jgroup ----------------------
+      end
+      subroutine nsfc
+     *      (n, r, ic, ia,ja, jlmax,il,jl,ijl, jumax,iu,ju,iju,
+     *       q, ira,jra, irac, irl,jrl, iru,jru, flag)
+clll. optimize
+c*** subroutine nsfc
+c*** symbolic ldu-factorization of nonsymmetric sparse matrix
+c      (compressed pointer storage)
+c
+c
+c       input variables.. n, r, ic, ia, ja, jlmax, jumax.
+c       output variables.. il, jl, ijl, iu, ju, iju, flag.
+c
+c       parameters used internally..
+c nia   - q     - suppose  m*  is the result of reordering  m.  if
+c       -           processing of the ith row of  m*  (hence the ith
+c       -           row of  u) is being done,  q(j)  is initially
+c       -           nonzero if  m*(i,j) is nonzero (j.ge.i).  since
+c       -           values need not be stored, each entry points to the
+c       -           next nonzero and  q(n+1)  points to the first.  n+1
+c       -           indicates the end of the list.  for example, if n=9
+c       -           and the 5th row of  m*  is
+c       -              0 x x 0 x 0 0 x 0
+c       -           then  q  will initially be
+c       -              a a a a 8 a a 10 5           (a - arbitrary).
+c       -           as the algorithm proceeds, other elements of  q
+c       -           are inserted in the list because of fillin.
+c       -           q  is used in an analogous manner to compute the
+c       -           ith column of  l.
+c       -           size = n+1.
+c nia   - ira,  - vectors used to find the columns of  m.  at the kth
+c nia   - jra,      step of the factorization,  irac(k)  points to the
+c nia   - irac      head of a linked list in  jra  of row indices i
+c       -           such that i .ge. k and  m(i,k)  is nonzero.  zero
+c       -           indicates the end of the list.  ira(i)  (i.ge.k)
+c       -           points to the smallest j such that j .ge. k and
+c       -           m(i,j)  is nonzero.
+c       -           size of each = n.
+c nia   - irl,  - vectors used to find the rows of  l.  at the kth step
+c nia   - jrl       of the factorization,  jrl(k)  points to the head
+c       -           of a linked list in  jrl  of column indices j
+c       -           such j .lt. k and  l(k,j)  is nonzero.  zero
+c       -           indicates the end of the list.  irl(j)  (j.lt.k)
+c       -           points to the smallest i such that i .ge. k and
+c       -           l(i,j)  is nonzero.
+c       -           size of each = n.
+c nia   - iru,  - vectors used in a manner analogous to  irl and jrl
+c nia   - jru       to find the columns of  u.
+c       -           size of each = n.
+c
+c  internal variables..
+c    jlptr - points to the last position used in  jl.
+c    juptr - points to the last position used in  ju.
+c    jmin,jmax - are the indices in  a or u  of the first and last
+c                elements to be examined in a given row.
+c                for example,  jmin=ia(k), jmax=ia(k+1)-1.
+c
+      integer cend, qm, rend, rk, vj
+      integer ia(1), ja(1), ira(1), jra(1), il(1), jl(1), ijl(1)
+      integer iu(1), ju(1), iju(1), irl(1), jrl(1), iru(1), jru(1)
+      integer r(1), ic(1), q(1), irac(1), flag
+c
+c  ******  initialize pointers  ****************************************
+      np1 = n + 1
+      jlmin = 1
+      jlptr = 0
+      il(1) = 1
+      jumin = 1
+      juptr = 0
+      iu(1) = 1
+      do 1 k=1,n
+        irac(k) = 0
+        jra(k) = 0
+        jrl(k) = 0
+   1    jru(k) = 0
+c  ******  initialize column pointers for a  ***************************
+      do 2 k=1,n
+        rk = r(k)
+        iak = ia(rk)
+        if (iak .ge. ia(rk+1))  go to 101
+        jaiak = ic(ja(iak))
+        if (jaiak .gt. k)  go to 105
+        jra(k) = irac(jaiak)
+        irac(jaiak) = k
+   2    ira(k) = iak
+c
+c  ******  for each column of l and row of u  **************************
+      do 41 k=1,n
+c
+c  ******  initialize q for computing kth column of l  *****************
+        q(np1) = np1
+        luk = -1
+c  ******  by filling in kth column of a  ******************************
+        vj = irac(k)
+        if (vj .eq. 0)  go to 5
+   3      qm = np1
+   4      m = qm
+          qm =  q(m)
+          if (qm .lt. vj)  go to 4
+          if (qm .eq. vj)  go to 102
+            luk = luk + 1
+            q(m) = vj
+            q(vj) = qm
+            vj = jra(vj)
+            if (vj .ne. 0)  go to 3
+c  ******  link through jru  *******************************************
+   5    lastid = 0
+        lasti = 0
+        ijl(k) = jlptr
+        i = k
+   6      i = jru(i)
+          if (i .eq. 0)  go to 10
+          qm = np1
+          jmin = irl(i)
+          jmax = ijl(i) + il(i+1) - il(i) - 1
+          long = jmax - jmin
+          if (long .lt. 0)  go to 6
+          jtmp = jl(jmin)
+          if (jtmp .ne. k)  long = long + 1
+          if (jtmp .eq. k)  r(i) = -r(i)
+          if (lastid .ge. long)  go to 7
+            lasti = i
+            lastid = long
+c  ******  and merge the corresponding columns into the kth column  ****
+   7      do 9 j=jmin,jmax
+            vj = jl(j)
+   8        m = qm
+            qm = q(m)
+            if (qm .lt. vj)  go to 8
+            if (qm .eq. vj)  go to 9
+              luk = luk + 1
+              q(m) = vj
+              q(vj) = qm
+              qm = vj
+   9        continue
+            go to 6
+c  ******  lasti is the longest column merged into the kth  ************
+c  ******  see if it equals the entire kth column  *********************
+  10    qm = q(np1)
+        if (qm .ne. k)  go to 105
+        if (luk .eq. 0)  go to 17
+        if (lastid .ne. luk)  go to 11
+c  ******  if so, jl can be compressed  ********************************
+        irll = irl(lasti)
+        ijl(k) = irll + 1
+        if (jl(irll) .ne. k)  ijl(k) = ijl(k) - 1
+        go to 17
+c  ******  if not, see if kth column can overlap the previous one  *****
+  11    if (jlmin .gt. jlptr)  go to 15
+        qm = q(qm)
+        do 12 j=jlmin,jlptr
+          if (jl(j) - qm)  12, 13, 15
+  12      continue
+        go to 15
+  13    ijl(k) = j
+        do 14 i=j,jlptr
+          if (jl(i) .ne. qm)  go to 15
+          qm = q(qm)
+          if (qm .gt. n)  go to 17
+  14      continue
+        jlptr = j - 1
+c  ******  move column indices from q to jl, update vectors  ***********
+  15    jlmin = jlptr + 1
+        ijl(k) = jlmin
+        if (luk .eq. 0)  go to 17
+        jlptr = jlptr + luk
+        if (jlptr .gt. jlmax)  go to 103
+          qm = q(np1)
+          do 16 j=jlmin,jlptr
+            qm = q(qm)
+  16        jl(j) = qm
+  17    irl(k) = ijl(k)
+        il(k+1) = il(k) + luk
+c
+c  ******  initialize q for computing kth row of u  ********************
+        q(np1) = np1
+        luk = -1
+c  ******  by filling in kth row of reordered a  ***********************
+        rk = r(k)
+        jmin = ira(k)
+        jmax = ia(rk+1) - 1
+        if (jmin .gt. jmax)  go to 20
+        do 19 j=jmin,jmax
+          vj = ic(ja(j))
+          qm = np1
+  18      m = qm
+          qm = q(m)
+          if (qm .lt. vj)  go to 18
+          if (qm .eq. vj)  go to 102
+            luk = luk + 1
+            q(m) = vj
+            q(vj) = qm
+  19      continue
+c  ******  link through jrl,  ******************************************
+  20    lastid = 0
+        lasti = 0
+        iju(k) = juptr
+        i = k
+        i1 = jrl(k)
+  21      i = i1
+          if (i .eq. 0)  go to 26
+          i1 = jrl(i)
+          qm = np1
+          jmin = iru(i)
+          jmax = iju(i) + iu(i+1) - iu(i) - 1
+          long = jmax - jmin
+          if (long .lt. 0)  go to 21
+          jtmp = ju(jmin)
+          if (jtmp .eq. k)  go to 22
+c  ******  update irl and jrl, *****************************************
+            long = long + 1
+            cend = ijl(i) + il(i+1) - il(i)
+            irl(i) = irl(i) + 1
+            if (irl(i) .ge. cend)  go to 22
+              j = jl(irl(i))
+              jrl(i) = jrl(j)
+              jrl(j) = i
+  22      if (lastid .ge. long)  go to 23
+            lasti = i
+            lastid = long
+c  ******  and merge the corresponding rows into the kth row  **********
+  23      do 25 j=jmin,jmax
+            vj = ju(j)
+  24        m = qm
+            qm = q(m)
+            if (qm .lt. vj)  go to 24
+            if (qm .eq. vj)  go to 25
+              luk = luk + 1
+              q(m) = vj
+              q(vj) = qm
+              qm = vj
+  25        continue
+          go to 21
+c  ******  update jrl(k) and irl(k)  ***********************************
+  26    if (il(k+1) .le. il(k))  go to 27
+          j = jl(irl(k))
+          jrl(k) = jrl(j)
+          jrl(j) = k
+c  ******  lasti is the longest row merged into the kth  ***************
+c  ******  see if it equals the entire kth row  ************************
+  27    qm = q(np1)
+        if (qm .ne. k)  go to 105
+        if (luk .eq. 0)  go to 34
+        if (lastid .ne. luk)  go to 28
+c  ******  if so, ju can be compressed  ********************************
+        irul = iru(lasti)
+        iju(k) = irul + 1
+        if (ju(irul) .ne. k)  iju(k) = iju(k) - 1
+        go to 34
+c  ******  if not, see if kth row can overlap the previous one  ********
+  28    if (jumin .gt. juptr)  go to 32
+        qm = q(qm)
+        do 29 j=jumin,juptr
+          if (ju(j) - qm)  29, 30, 32
+  29      continue
+        go to 32
+  30    iju(k) = j
+        do 31 i=j,juptr
+          if (ju(i) .ne. qm)  go to 32
+          qm = q(qm)
+          if (qm .gt. n)  go to 34
+  31      continue
+        juptr = j - 1
+c  ******  move row indices from q to ju, update vectors  **************
+  32    jumin = juptr + 1
+        iju(k) = jumin
+        if (luk .eq. 0)  go to 34
+        juptr = juptr + luk
+        if (juptr .gt. jumax)  go to 106
+          qm = q(np1)
+          do 33 j=jumin,juptr
+            qm = q(qm)
+  33        ju(j) = qm
+  34    iru(k) = iju(k)
+        iu(k+1) = iu(k) + luk
+c
+c  ******  update iru, jru  ********************************************
+        i = k
+  35      i1 = jru(i)
+          if (r(i) .lt. 0)  go to 36
+          rend = iju(i) + iu(i+1) - iu(i)
+          if (iru(i) .ge. rend)  go to 37
+            j = ju(iru(i))
+            jru(i) = jru(j)
+            jru(j) = i
+            go to 37
+  36      r(i) = -r(i)
+  37      i = i1
+          if (i .eq. 0)  go to 38
+          iru(i) = iru(i) + 1
+          go to 35
+c
+c  ******  update ira, jra, irac  **************************************
+  38    i = irac(k)
+        if (i .eq. 0)  go to 41
+  39      i1 = jra(i)
+          ira(i) = ira(i) + 1
+          if (ira(i) .ge. ia(r(i)+1))  go to 40
+          irai = ira(i)
+          jairai = ic(ja(irai))
+          if (jairai .gt. i)  go to 40
+          jra(i) = irac(jairai)
+          irac(jairai) = i
+  40      i = i1
+          if (i .ne. 0)  go to 39
+  41    continue
+c
+      ijl(n) = jlptr
+      iju(n) = juptr
+      flag = 0
+      return
+c
+c ** error.. null row in a
+ 101  flag = n + rk
+      return
+c ** error.. duplicate entry in a
+ 102  flag = 2*n + rk
+      return
+c ** error.. insufficient storage for jl
+ 103  flag = 3*n + k
+      return
+c ** error.. null pivot
+ 105  flag = 5*n + k
+      return
+c ** error.. insufficient storage for ju
+ 106  flag = 6*n + k
+      return
+      end
+      subroutine sro
+     *     (n, ip, ia,ja,a, q, r, dflag)
+clll. optimize
+c***********************************************************************
+c  sro -- symmetric reordering of sparse symmetric matrix
+c***********************************************************************
+c
+c  description
+c
+c    the nonzero entries of the matrix m are assumed to be stored
+c    symmetrically in (ia,ja,a) format (i.e., not both m(i,j) and m(j,i)
+c    are stored if i ne j).
+c
+c    sro does not rearrange the order of the rows, but does move
+c    nonzeroes from one row to another to ensure that if m(i,j) will be
+c    in the upper triangle of m with respect to the new ordering, then
+c    m(i,j) is stored in row i (and thus m(j,i) is not stored),  whereas
+c    if m(i,j) will be in the strict lower triangle of m, then m(j,i) is
+c    stored in row j (and thus m(i,j) is not stored).
+c
+c
+c  additional parameters
+c
+c    q     - integer one-dimensional work array.  dimension = n
+c
+c    r     - integer one-dimensional work array.  dimension = number of
+c            nonzero entries in the upper triangle of m
+c
+c    dflag - logical variable.  if dflag = .true., then store nonzero
+c            diagonal elements at the beginning of the row
+c
+c-----------------------------------------------------------------------
+c
+      integer  ip(1),  ia(1), ja(1),  q(1), r(1)
+      KPP_REAL  a(1),  ak
+      logical  dflag
+c
+c
+c--phase 1 -- find row in which to store each nonzero
+c----initialize count of nonzeroes to be stored in each row
+      do 1 i=1,n
+  1     q(i) = 0
+c
+c----for each nonzero element a(j)
+      do 3 i=1,n
+        jmin = ia(i)
+        jmax = ia(i+1) - 1
+        if (jmin.gt.jmax)  go to 3
+        do 2 j=jmin,jmax
+c
+c--------find row (=r(j)) and column (=ja(j)) in which to store a(j) ...
+          k = ja(j)
+          if (ip(k).lt.ip(i))  ja(j) = i
+          if (ip(k).ge.ip(i))  k = i
+          r(j) = k
+c
+c--------... and increment count of nonzeroes (=q(r(j)) in that row
+  2       q(k) = q(k) + 1
+  3     continue
+c
+c
+c--phase 2 -- find new ia and permutation to apply to (ja,a)
+c----determine pointers to delimit rows in permuted (ja,a)
+      do 4 i=1,n
+        ia(i+1) = ia(i) + q(i)
+  4     q(i) = ia(i+1)
+c
+c----determine where each (ja(j),a(j)) is stored in permuted (ja,a)
+c----for each nonzero element (in reverse order)
+      ilast = 0
+      jmin = ia(1)
+      jmax = ia(n+1) - 1
+      j = jmax
+      do 6 jdummy=jmin,jmax
+        i = r(j)
+        if (.not.dflag .or. ja(j).ne.i .or. i.eq.ilast)  go to 5
+c
+c------if dflag, then put diagonal nonzero at beginning of row
+          r(j) = ia(i)
+          ilast = i
+          go to 6
+c
+c------put (off-diagonal) nonzero in last unused location in row
+  5       q(i) = q(i) - 1
+          r(j) = q(i)
+c
+  6     j = j-1
+c
+c
+c--phase 3 -- permute (ja,a) to upper triangular form (wrt new ordering)
+      do 8 j=jmin,jmax
+  7     if (r(j).eq.j)  go to 8
+          k = r(j)
+          r(j) = r(k)
+          r(k) = k
+          jak = ja(k)
+          ja(k) = ja(j)
+          ja(j) = jak
+          ak = a(k)
+          a(k) = a(j)
+          a(j) = ak
+          go to 7
+  8     continue
+c
+      return
+      end
+      subroutine md
+     *     (n, ia,ja, max, v,l, head,last,next, mark, flag)
+clll. optimize
+c***********************************************************************
+c  md -- minimum degree algorithm (based on element model)
+c***********************************************************************
+c
+c  description
+c
+c    md finds a minimum degree ordering of the rows and columns of a
+c    general sparse matrix m stored in (ia,ja,a) format.
+c    when the structure of m is nonsymmetric, the ordering is that
+c    obtained for the symmetric matrix  m + m-transpose.
+c
+c
+c  additional parameters
+c
+c    max  - declared dimension of the one-dimensional arrays v and l.
+c           max must be at least  n+2k,  where k is the number of
+c           nonzeroes in the strict upper triangle of m + m-transpose
+c
+c    v    - integer one-dimensional work array.  dimension = max
+c
+c    l    - integer one-dimensional work array.  dimension = max
+c
+c    head - integer one-dimensional work array.  dimension = n
+c
+c    last - integer one-dimensional array used to return the permutation
+c           of the rows and columns of m corresponding to the minimum
+c           degree ordering.  dimension = n
+c
+c    next - integer one-dimensional array used to return the inverse of
+c           the permutation returned in last.  dimension = n
+c
+c    mark - integer one-dimensional work array (may be the same as v).
+c           dimension = n
+c
+c    flag - integer error flag.  values and their meanings are -
+c             0     no errors detected
+c             9n+k  insufficient storage in md
+c
+c
+c  definitions of internal parameters
+c
+c    ---------+---------------------------------------------------------
+c    v(s)     - value field of list entry
+c    ---------+---------------------------------------------------------
+c    l(s)     - link field of list entry  (0 =) end of list)
+c    ---------+---------------------------------------------------------
+c    l(vi)    - pointer to element list of uneliminated vertex vi
+c    ---------+---------------------------------------------------------
+c    l(ej)    - pointer to boundary list of active element ej
+c    ---------+---------------------------------------------------------
+c    head(d)  - vj =) vj head of d-list d
+c             -  0 =) no vertex in d-list d
+c
+c
+c             -                  vi uneliminated vertex
+c             -          vi in ek           -       vi not in ek
+c    ---------+-----------------------------+---------------------------
+c    next(vi) - undefined but nonnegative   - vj =) vj next in d-list
+c             -                             -  0 =) vi tail of d-list
+c    ---------+-----------------------------+---------------------------
+c    last(vi) - (not set until mdp)         - -d =) vi head of d-list d
+c             --vk =) compute degree        - vj =) vj last in d-list
+c             - ej =) vi prototype of ej    -  0 =) vi not in any d-list
+c             -  0 =) do not compute degree -
+c    ---------+-----------------------------+---------------------------
+c    mark(vi) - mark(vk)                    - nonneg. tag .lt. mark(vk)
+c
+c
+c             -                   vi eliminated vertex
+c             -      ei active element      -           otherwise
+c    ---------+-----------------------------+---------------------------
+c    next(vi) - -j =) vi was j-th vertex    - -j =) vi was j-th vertex
+c             -       to be eliminated      -       to be eliminated
+c    ---------+-----------------------------+---------------------------
+c    last(vi) -  m =) size of ei = m        - undefined
+c    ---------+-----------------------------+---------------------------
+c    mark(vi) - -m =) overlap count of ei   - undefined
+c             -       with ek = m           -
+c             - otherwise nonnegative tag   -
+c             -       .lt. mark(vk)         -
+c
+c-----------------------------------------------------------------------
+c
+      integer  ia(1), ja(1),  v(1), l(1),  head(1), last(1), next(1),
+     *   mark(1),  flag,  tag, dmin, vk,ek, tail
+      equivalence  (vk,ek)
+c
+c----initialization
+      tag = 0
+      CALL  mdi
+     *   (n, ia,ja, max,v,l, head,last,next, mark,tag, flag)
+      if (flag.ne.0)  return
+c
+      k = 0
+      dmin = 1
+c
+c----while  k .lt. n  do
+   1  if (k.ge.n)  go to 4
+c
+c------search for vertex of minimum degree
+   2    if (head(dmin).gt.0)  go to 3
+          dmin = dmin + 1
+          go to 2
+c
+c------remove vertex vk of minimum degree from degree list
+   3    vk = head(dmin)
+        head(dmin) = next(vk)
+        if (head(dmin).gt.0)  last(head(dmin)) = -dmin
+c
+c------number vertex vk, adjust tag, and tag vk
+        k = k+1
+        next(vk) = -k
+        last(ek) = dmin - 1
+        tag = tag + last(ek)
+        mark(vk) = tag
+c
+c------form element ek from uneliminated neighbors of vk
+        CALL  mdm
+     *     (vk,tail, v,l, last,next, mark)
+c
+c------purge inactive elements and do mass elimination
+        CALL  mdp
+     *     (k,ek,tail, v,l, head,last,next, mark)
+c
+c------update degrees of uneliminated vertices in ek
+        CALL  mdu
+     *     (ek,dmin, v,l, head,last,next, mark)
+c
+        go to 1
+c
+c----generate inverse permutation from permutation
+   4  do 5 k=1,n
+        next(k) = -next(k)
+   5    last(next(k)) = k
+c
+      return
+      end
+      subroutine mdi
+     *     (n, ia,ja, max,v,l, head,last,next, mark,tag, flag)
+clll. optimize
+c***********************************************************************
+c  mdi -- initialization
+c***********************************************************************
+      integer  ia(1), ja(1),  v(1), l(1),  head(1), last(1), next(1),
+     *   mark(1), tag,  flag,  sfs, vi,dvi, vj
+c
+c----initialize degrees, element lists, and degree lists
+      do 1 vi=1,n
+        mark(vi) = 1
+        l(vi) = 0
+   1    head(vi) = 0
+      sfs = n+1
+c
+c----create nonzero structure
+c----for each nonzero entry a(vi,vj)
+      do 6 vi=1,n
+        jmin = ia(vi)
+        jmax = ia(vi+1) - 1
+        if (jmin.gt.jmax)  go to 6
+        do 5 j=jmin,jmax
+          vj = ja(j)
+          if (vj-vi) 2, 5, 4
+c
+c------if a(vi,vj) is in strict lower triangle
+c------check for previous occurrence of a(vj,vi)
+   2      lvk = vi
+          kmax = mark(vi) - 1
+          if (kmax .eq. 0) go to 4
+          do 3 k=1,kmax
+            lvk = l(lvk)
+            if (v(lvk).eq.vj) go to 5
+   3        continue
+c----for unentered entries a(vi,vj)
+   4        if (sfs.ge.max)  go to 101
+c
+c------enter vj in element list for vi
+            mark(vi) = mark(vi) + 1
+            v(sfs) = vj
+            l(sfs) = l(vi)
+            l(vi) = sfs
+            sfs = sfs+1
+c
+c------enter vi in element list for vj
+            mark(vj) = mark(vj) + 1
+            v(sfs) = vi
+            l(sfs) = l(vj)
+            l(vj) = sfs
+            sfs = sfs+1
+   5      continue
+   6    continue
+c
+c----create degree lists and initialize mark vector
+      do 7 vi=1,n
+        dvi = mark(vi)
+        next(vi) = head(dvi)
+        head(dvi) = vi
+        last(vi) = -dvi
+        nextvi = next(vi)
+        if (nextvi.gt.0)  last(nextvi) = vi
+   7    mark(vi) = tag
+c
+      return
+c
+c ** error-  insufficient storage
+ 101  flag = 9*n + vi
+      return
+      end
+      subroutine mdm
+     *     (vk,tail, v,l, last,next, mark)
+clll. optimize
+c***********************************************************************
+c  mdm -- form element from uneliminated neighbors of vk
+c***********************************************************************
+      integer  vk, tail,  v(1), l(1),   last(1), next(1),   mark(1),
+     *   tag, s,ls,vs,es, b,lb,vb, blp,blpmax
+      equivalence  (vs, es)
+c
+c----initialize tag and list of uneliminated neighbors
+      tag = mark(vk)
+      tail = vk
+c
+c----for each vertex/element vs/es in element list of vk
+      ls = l(vk)
+   1  s = ls
+      if (s.eq.0)  go to 5
+        ls = l(s)
+        vs = v(s)
+        if (next(vs).lt.0)  go to 2
+c
+c------if vs is uneliminated vertex, then tag and append to list of
+c------uneliminated neighbors
+          mark(vs) = tag
+          l(tail) = s
+          tail = s
+          go to 4
+c
+c------if es is active element, then ...
+c--------for each vertex vb in boundary list of element es
+   2      lb = l(es)
+          blpmax = last(es)
+          do 3 blp=1,blpmax
+            b = lb
+            lb = l(b)
+            vb = v(b)
+c
+c----------if vb is untagged vertex, then tag and append to list of
+c----------uneliminated neighbors
+            if (mark(vb).ge.tag)  go to 3
+              mark(vb) = tag
+              l(tail) = b
+              tail = b
+   3        continue
+c
+c--------mark es inactive
+          mark(es) = tag
+c
+   4    go to 1
+c
+c----terminate list of uneliminated neighbors
+   5  l(tail) = 0
+c
+      return
+      end
+      subroutine mdp
+     *     (k,ek,tail, v,l, head,last,next, mark)
+clll. optimize
+c***********************************************************************
+c  mdp -- purge inactive elements and do mass elimination
+c***********************************************************************
+      integer  ek, tail,  v(1), l(1),  head(1), last(1), next(1),
+     *   mark(1),  tag, free, li,vi,lvi,evi, s,ls,es, ilp,ilpmax
+c
+c----initialize tag
+      tag = mark(ek)
+c
+c----for each vertex vi in ek
+      li = ek
+      ilpmax = last(ek)
+      if (ilpmax.le.0)  go to 12
+      do 11 ilp=1,ilpmax
+        i = li
+        li = l(i)
+        vi = v(li)
+c
+c------remove vi from degree list
+        if (last(vi).eq.0)  go to 3
+          if (last(vi).gt.0)  go to 1
+            head(-last(vi)) = next(vi)
+            go to 2
+   1        next(last(vi)) = next(vi)
+   2      if (next(vi).gt.0)  last(next(vi)) = last(vi)
+c
+c------remove inactive items from element list of vi
+   3    ls = vi
+   4    s = ls
+        ls = l(s)
+        if (ls.eq.0)  go to 6
+          es = v(ls)
+          if (mark(es).lt.tag)  go to 5
+            free = ls
+            l(s) = l(ls)
+            ls = s
+   5      go to 4
+c
+c------if vi is interior vertex, then remove from list and eliminate
+   6    lvi = l(vi)
+        if (lvi.ne.0)  go to 7
+          l(i) = l(li)
+          li = i
+c
+          k = k+1
+          next(vi) = -k
+          last(ek) = last(ek) - 1
+          go to 11
+c
+c------else ...
+c--------classify vertex vi
+   7      if (l(lvi).ne.0)  go to 9
+            evi = v(lvi)
+            if (next(evi).ge.0)  go to 9
+              if (mark(evi).lt.0)  go to 8
+c
+c----------if vi is prototype vertex, then mark as such, initialize
+c----------overlap count for corresponding element, and move vi to end
+c----------of boundary list
+                last(vi) = evi
+                mark(evi) = -1
+                l(tail) = li
+                tail = li
+                l(i) = l(li)
+                li = i
+                go to 10
+c
+c----------else if vi is duplicate vertex, then mark as such and adjust
+c----------overlap count for corresponding element
+   8            last(vi) = 0
+                mark(evi) = mark(evi) - 1
+                go to 10
+c
+c----------else mark vi to compute degree
+   9            last(vi) = -ek
+c
+c--------insert ek in element list of vi
+  10      v(free) = ek
+          l(free) = l(vi)
+          l(vi) = free
+  11    continue
+c
+c----terminate boundary list
+  12  l(tail) = 0
+c
+      return
+      end
+      subroutine mdu
+     *     (ek,dmin, v,l, head,last,next, mark)
+clll. optimize
+c***********************************************************************
+c  mdu -- update degrees of uneliminated vertices in ek
+c***********************************************************************
+      integer  ek, dmin,  v(1), l(1),  head(1), last(1), next(1),
+     *   mark(1),  tag, vi,evi,dvi, s,vs,es, b,vb, ilp,ilpmax,
+     *   blp,blpmax
+      equivalence  (vs, es)
+c
+c----initialize tag
+      tag = mark(ek) - last(ek)
+c
+c----for each vertex vi in ek
+      i = ek
+      ilpmax = last(ek)
+      if (ilpmax.le.0)  go to 11
+      do 10 ilp=1,ilpmax
+        i = l(i)
+        vi = v(i)
+        if (last(vi))  1, 10, 8
+c
+c------if vi neither prototype nor duplicate vertex, then merge elements
+c------to compute degree
+   1      tag = tag + 1
+          dvi = last(ek)
+c
+c--------for each vertex/element vs/es in element list of vi
+          s = l(vi)
+   2      s = l(s)
+          if (s.eq.0)  go to 9
+            vs = v(s)
+            if (next(vs).lt.0)  go to 3
+c
+c----------if vs is uneliminated vertex, then tag and adjust degree
+              mark(vs) = tag
+              dvi = dvi + 1
+              go to 5
+c
+c----------if es is active element, then expand
+c------------check for outmatched vertex
+   3          if (mark(es).lt.0)  go to 6
+c
+c------------for each vertex vb in es
+              b = es
+              blpmax = last(es)
+              do 4 blp=1,blpmax
+                b = l(b)
+                vb = v(b)
+c
+c--------------if vb is untagged, then tag and adjust degree
+                if (mark(vb).ge.tag)  go to 4
+                  mark(vb) = tag
+                  dvi = dvi + 1
+   4            continue
+c
+   5        go to 2
+c
+c------else if vi is outmatched vertex, then adjust overlaps but do not
+c------compute degree
+   6      last(vi) = 0
+          mark(es) = mark(es) - 1
+   7      s = l(s)
+          if (s.eq.0)  go to 10
+            es = v(s)
+            if (mark(es).lt.0)  mark(es) = mark(es) - 1
+            go to 7
+c
+c------else if vi is prototype vertex, then calculate degree by
+c------inclusion/exclusion and reset overlap count
+   8      evi = last(vi)
+          dvi = last(ek) + last(evi) + mark(evi)
+          mark(evi) = 0
+c
+c------insert vi in appropriate degree list
+   9    next(vi) = head(dvi)
+        head(dvi) = vi
+        last(vi) = -dvi
+        if (next(vi).gt.0)  last(next(vi)) = vi
+        if (dvi.lt.dmin)  dmin = dvi
+c
+  10    continue
+c
+  11  return
+      end
+      KPP_REAL FUNCTION D1MACH (IDUM)
+      INTEGER IDUM
+C-----------------------------------------------------------------------
+C This routine computes the unit roundoff of the machine.
+C This is defined as the smallest positive machine number
+C u such that  1.0 + u .ne. 1.0
+C
+C Subroutines/functions called by D1MACH.. None
+C-----------------------------------------------------------------------
+      KPP_REAL U, COMP
+      U = 1.0D0
+ 10   U = U*0.5D0
+      COMP = 1.0D0 + U
+      IF (COMP .NE. 1.0D0) GO TO 10
+      D1MACH = U*2.0D0
+      RETURN
+C----------------------- End of Function D1MACH ------------------------
+      END
+
+        SUBROUTINE FUNC_CHEM (N, T, V, FCT)
+	IMPLICIT NONE
+        INCLUDE 'KPP_ROOT_Parameters.h'
+        INCLUDE 'KPP_ROOT_Global.h'
+        KPP_REAL V(NVAR), FCT(NVAR)
+	KPP_REAL T,TOLD
+	INTEGER N
+        TOLD = TIME
+        TIME = T
+        CALL Update_SUN()
+        CALL Update_RCONST()
+        TIME = TOLD
+        CALL Fun(V, FIX, RCONST, FCT)
+        RETURN
+        END
+
+        SUBROUTINE JAC_CHEM (N, T, V, JV, j, ian, jan)
+	IMPLICIT NONE
+        INCLUDE 'KPP_ROOT_Parameters.h'
+        INCLUDE 'KPP_ROOT_Global.h'
+        KPP_REAL V(NVAR), JV(NVAR,NVAR)
+	KPP_REAL T,TOLD
+        INTEGER N, j, ian(1), jan(1), ii, jj
+        TOLD = TIME
+        TIME = T
+        CALL Update_SUN()
+        CALL Update_RCONST()
+        TIME = TOLD
+
+        DO ii=1,NVAR
+          DO jj=1,NVAR
+              JV(ii,jj) = 0.D0
+          END DO
+        END DO
+        call Jac(V, FIX, RCONST, JV)
+
+        RETURN
+        END
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/atm_odessa_ddm.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/atm_odessa_ddm.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/atm_odessa_ddm.def	(revision 2696)
@@ -0,0 +1,42 @@
+ 
+#FUNCTION AGGREGATE
+#JACOBIAN FULL
+#DOUBLE ON 
+#INTFILE atm_odessa_ddm
+
+#INLINE F77_GLOBAL
+      INTEGER Autonomous
+      COMMON /INTGDATA/ Autonomous
+      REAL*8 STEPSTART
+      COMMON /GDATA/ STEPSTART
+#ENDINLINE
+
+#INLINE F77_INIT
+        STEPMIN=0.0001
+        STEPMAX=3600.
+        Autonomous = 0
+        STEPSTART=STEPMIN
+#ENDINLINE
+
+
+
+#INLINE C_GLOBAL
+extern int Autonomous;
+extern double STEPSTART;
+#ENDINLINE
+
+#INLINE C_DATA_INT
+int Autonomous;
+double STEPSTART;
+#ENDINLINE
+
+
+
+#INLINE C_INIT
+        STEPMIN=0.0001;
+        STEPMAX=3600.0;
+        Autonomous = 0;
+        STEPSTART=STEPMIN;
+#ENDINLINE
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/atm_odessa_ddm.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/atm_odessa_ddm.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/atm_odessa_ddm.f	(revision 2696)
@@ -0,0 +1,4398 @@
+      SUBROUTINE INTEGRATE( NSENSIT, Y, TIN, TOUT )
+
+      INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Global.h'
+
+C TIN - Start Time
+      REAL*8 TIN
+C TOUT - End Time
+      REAL*8 TOUT
+C Concentrations and Sensitivities
+      REAL*8 Y(NVAR,NSENSIT+1), PARAMS(NSENSIT)
+C ---  Note: Y contains: (1:NVAR) concentrations, followed by
+C ---                   (1:NVAR) sensitivities w.r.t. first parameter, followed by
+C ---                   etc.,  followed by
+C ---                   (1:NVAR) sensitivities w.r.t. NSENSIT's parameter
+      INTEGER i
+
+      INTEGER LIW, LRW
+C      PARAMETER (LRW = 22 + 8*(NSENSIT+1)*NVAR + NVAR**2 + NVAR)
+C      PARAMETER (LIW = 21 + NVAR + NSENSIT)
+C      REAL*8 RWORK(LRW)
+C      INTEGER IWORK(LIW)
+C Note: the following dynamic allocation is not standard F77 and may not work on
+C       some systems. Declare LRW, LIW parameters as above with some upper bound
+C       used for NSENSIT
+      REAL*8 RWORK(22 + 8*(NSENSIT+1)*NVAR + NVAR**2 + NVAR)
+      INTEGER IWORK(21 + NVAR + NSENSIT)
+
+      INTEGER IOPT(3), NEQ(2)
+
+      EXTERNAL FUNC_CHEM,JAC,DFUNC_CHEMDPAR
+
+      MF = 21    ! --- BDF plus user-supplied Jacobian
+
+      LRW = 22 + 8*(NSENSIT+1)*NVAR + NVAR**2 + NVAR
+      LIW = 21 + NVAR + NSENSIT
+
+      NEQ(1) = NVAR ! --- No. of Variables
+      NEQ(2) = NSENSIT ! --- No of parameters
+
+      ITOL=1     ! --- 1=Scalar Tolerances; 4 = VECTOR TOLERANCES
+      ITASK=1    ! --- Normal Output
+      ISTATE=1
+      IOPT(1)=1  ! --- 0= No optional parameters, 1=Optional parameters
+      IOPT(2)=1  ! --- 1=Perform sensitivity analysis; 0 if not
+      IOPT(3)=0  ! --- DFUNC_CHEMDPAR supplied by the user;
+                 ! --- 0 if finite differences are to be used
+C --- Set optional parameters
+      DO 10 i=1,LRW
+        RWORK(i) = 0.0D0
+ 10   CONTINUE
+      DO 20 i=1,LIW
+        IWORK(i) = 0
+ 20   CONTINUE
+
+      RWORK(5) = STEPMIN   ! 	THE STEP SIZE TO BE ATTEMPTED ON THE FIRST STEP.
+      RWORK(6) = STEPMAX     ! THE MAXIMUM ABSOLUTE STEP SIZE ALLOWED.
+      RWORK(7) = 0.0D0       ! THE MINIMUM ABSOLUTE STEP SIZE ALLOWED.
+      IWORK(6) = 5000        !  MAXIMUM NUMBER OF (INTERNALLY DEFINED) STEPS
+
+      CALL ODESSA( FUNC_CHEM,DFUNC_CHEMDPAR,NEQ,Y,PARAMS,TIN,TOUT,
+     &              ITOL,RTOL,ATOL,
+     1              ITASK,ISTATE,IOPT,RWORK,LRW,IWORK,LIW,
+     &              JAC,MF)
+
+      IF (ISTATE.LT.0) THEN
+        print *,'ODESSA: Unsucessfull exit at T=',
+     &          TIN,' (ISTATE=',ISTATE,')'
+      ENDIF
+
+      RETURN
+      END
+
+
+
+        SUBROUTINE FUNC_CHEM (N, T, V, PARAMS, FCT)
+        INCLUDE 'KPP_ROOT_Parameters.h'
+        INCLUDE 'KPP_ROOT_Global.h'
+
+        DIMENSION V(NVAR), PARAMS(*), FCT(NVAR)
+        TOLD = TIME
+        TIME = T
+        CALL Update_SUN()
+        CALL Update_RCONST()
+        TIME = TOLD
+        CALL Fun(V,  FIX, RCONST, FCT)
+        RETURN
+        END
+
+        SUBROUTINE DFUNC_CHEMDPAR (N, T, V, PARAMS, DFCT, JPAR)
+        INCLUDE 'KPP_ROOT_Parameters.h'
+        INCLUDE 'KPP_ROOT_Global.h'
+
+        DIMENSION V(NVAR), PARAMS(*), DFCT(NVAR)
+	INTEGER JPAR, i
+C This setting is required for sensitivities w.r.t. initial conditions
+        DO i=1,NVAR
+	  DFCT(i) = 0.d0
+	END DO
+        RETURN
+        END
+
+        SUBROUTINE JAC (N, T, V, PARAMS, ML, MU, JV, NROWPD)
+        INCLUDE 'KPP_ROOT_Parameters.h'
+        INCLUDE 'KPP_ROOT_Global.h'
+
+        REAL*8 V(NVAR), PARAMS(*), JV(NVAR,NVAR)
+	INTEGER ML, MU, NROWPD
+        TOLD = TIME
+        TIME = T
+        CALL Update_SUN()
+        CALL Update_RCONST()
+        TIME = TOLD
+        DO i=1,NVAR
+           DO j=1,NVAR
+              JV(i,j) = 0.D0
+           END DO
+        END DO
+        CALL Jac(V,  FIX, RCONST, JV)
+        RETURN
+        END
+!
+
+C      ALGORITHM 658, COLLECTED ALGORITHMS FROM ACM.
+C      THIS WORK PUBLISHED IN TRANSACTIONS ON MATHEMATICAL SOFTWARE,
+C      VOL. 14, NO. 1, P.61.
+C-----------------------------------------------------------------------
+C THIS IS THE SEPTEMBER 1, 1986 VERSION OF ODESSA..
+C AN ORDINARY DIFFERENTIAL EQUATION KppSolveR WITH EXPLICIT SIMULTANEOUS
+C SENSITIVITY ANALYSIS.
+C
+C THIS PACKAGE IS A MODIFICATION OF THE AUGUST 13, 1981 VERSION OF
+C LSODE..  LIVERMORE KppSolveR FOR ORDINARY DIFFERENTIAL EQUATIONS.
+C THIS VERSION IS IN DOUBLE PRECISION.
+C
+C ODESSA KppSolveS FOR THE FIRST-ORDER SENSITIVITY COEFFICIENTS..
+C    DY(I)/DP, FOR A SINGLE PARAMETER, OR,
+C    DY(I)/DP(J), FOR MULTIPLE PARAMETERS,
+C ASSOCIATED WITH A SYSTEM OF ORDINARY DIFFERENTIAL EQUATIONS..
+C    DY/DT = F(Y,T;P).
+C-----------------------------------------------------------------------
+C REFERENCES...
+C
+C  1. JORGE R. LEIS AND MARK A. KRAMER, THE SIMULTANEOUS SOLUTION AND
+C     EXPLICIT SENSITIVITY ANALYSIS OF SYSTEMS DESCRIBED BY ORDINARY
+C     DIFFERENTIAL EQUATIONS.  SUBMITTED TO ACM TRANS. MATH. SOFTWARE,
+C     (1985).
+C
+C  2. JORGE R. LEIS AND MARK A. KRAMER, ODESSA - AN ORDINARY DIFFERENTIA
+C     EQUATION KppSolveR WITH EXPLICIT SIMULTANEOUS SENSITIVITY ANALYSIS.
+C     SUBMITTED TO ACM TRANS. MATH. SOFTWARE, (1985).
+C
+C  3. ALAN C. HINDMARSH,  LSODE AND LSODI,  TWO NEW INITIAL VALUE
+C     ORDINARY DIFFERENTIAL EQUATION KppSolveRS, ACM-SIGNUM NEWSLETTER,
+C     VOL. 15, NO. 4 (1980), PP. 10-11.
+C-----------------------------------------------------------------------
+C PROBLEM STATEMENT..
+C
+C THE ODESSA MODIFICATION OF THE LSODE PACKAGE PROVIDES THE OPTION TO
+C CALCULATE FIRST-ORDER SENSITIVITY COEFFICIENTS FOR A SYSTEM OF STIFF
+C OR NON-STIFF EXPLICIT ORDINARY DIFFERENTIAL EQUATIONS OF THE GENERAL
+C FORM :
+C
+C                  DY/DT = F(Y,T;P)     (1)
+C
+C WHERE Y IS AN N-DIMENSIONAL DEPENDENT VARIABLE VECTOR, T IS THE
+C INDEPENDENT INTEGRATION VARIABLE, AND P IS AN NPAR-DIMENSIONAL
+C CONSTANT VECTOR. THE GOVERNING EQUATIONS FOR THE FIRST-ORDER
+C SENSITIVITY COEFFICIENTS ARE GIVEN BY :
+C
+C                  S'(T) = J(T)*S(T) + DF/DP     (2)
+C
+C WHERE
+C
+C                  S(T)  = DY(T)/DP (= SENSITIVITY FUNCTIONS)
+C                  S'(T) = D(DY(T)/DP)/DT
+C                  J(T)  = DF(Y,T;P)/DY(T) (= JACOBIAN MATRIX)
+C AND              DF/DP = DF(Y,T;P)/DP (= INHOMOGENEITY MATRIX)
+C
+C SOLUTION OF EQUATIONS (1) AND (2) PROCEEDS SIMULTANEOUSLY VIA AN
+C EXTENSION OF THE LSODE PACKAGE AS DESCRIBED IN [1].
+C----------------------------------------------------------------------
+C ACKNOWLEDGEMENT : THE FOLLOWING ODESSA PACKAGE DOCUMENTATION IS A
+C                   MODIFICATION OF THE LSODE DOCUMENTATION WHICH
+C                   ACCOMPANIES THE LSODE PACKAGE CODE.
+C----------------------------------------------------------------------
+C SUMMARY OF USAGE.
+C
+C COMMUNICATION BETWEEN THE USER AND THE ODESSA PACKAGE, FOR NORMAL
+C SITUATIONS, IS SUMMARIZED HERE. THIS SUMMARY DESCRIBES ONLY A SUBSET
+C OF THE FULL SET OF OPTIONS AVAILABLE.  SEE THE FULL DESCRIPTION FOR
+C DETAILS, INCLUDING OPTIONAL COMMUNICATION, NONSTANDARD OPTIONS,
+C AND INSTRUCTIONS FOR SPECIAL SITUATIONS.  SEE ALSO THE EXAMPLE
+C PROBLEM (WITH PROGRAM AND OUTPUT) FOLLOWING THIS SUMMARY.
+C
+C A. FIRST PROVIDE A SUBROUTINE OF THE FORM..
+C              SUBROUTINE F (N, T, Y, PAR, YDOT)
+C              DOUBLE PRECISION T, Y, PAR, YDOT
+C              DIMENSION Y(N), YDOT(N), PAR(NPAR)
+C WHICH SUPPLIES THE VECTOR FUNCTION F BY LOADING YDOT(I) WITH F(I).
+C N IS THE NUMBER OF FIRST-ORDER DIFFERENTIAL EQUATIONS IN THE
+C ABOVE MODEL. NPAR IS THE NUMBER OF MODEL PARAMETERS FOR WHICH
+C VECTOR SENSITIVITY FUNCTIONS ARE DESIRED. YOU ARE ALSO ENCOURAGED
+C TO PROVIDE A SUBROUTINE OF THE FORM..
+C              SUBROUTINE DF (N, T, Y, PAR, DFDP, JPAR)
+C              DOUBLE PRECISION T, Y, PAR, DFDP
+C              DIMENSION Y(N), PAR(NPAR), DFDP(N)
+C              GO TO (1,...,NPAR) JPAR
+C         1    DFDP(1) = DF(1)/DP(1)
+C              .
+C              DFDP(I) = DF(I)/DP(1)
+C              .
+C              DFDP(N) = DF(N)/DP(1)
+C              RETURN
+C         2    DFDP(1) = DF(1)/DP(2)
+C              .
+C              DFDP(I) = DF(I)/DP(2)
+C              .
+C              DFDP(N) = DF(N)/DP(2)
+C              RETURN
+C         .    .
+C         .    .
+C              RETURN
+C       NPAR   DFDP(1) = DF(1)/DP(NPAR)
+C              .
+C              DFDP(I) = DF(I)/DP(NPAR)
+C              .
+C              DFDP(N) = DF(N)/DP(NPAR)
+C              RETURN
+C              END
+C ONLY NONZERO ELEMENTS NEED BE LOADED. IF THIS IS NOT FEASIBLE,
+C ODESSA WILL GENERATE THIS MATRIX INTERNALLY BY DIFFERENCE QUOTIENTS.
+C
+C B. NEXT DETERMINE (OR GUESS) WHETHER OR NOT THE PROBLEM IS STIFF.
+C STIFFNESS OCCURS WHEN THE JACOBIAN MATRIX DF/DY HAS AN EIGENVALUE
+C WHOSE REAL PART IS NEGATIVE AND LARGE IN MAGNITUDE, COMPARED TO THE
+C RECIPROCAL OF THE T SPAN OF INTEREST.  IF THE PROBLEM IS NONSTIFF,
+C USE METH = 10.  IF IT IS STIFF, USE METH = 20. THE USER IS REQUIRED
+C TO INPUT THE METHOD FLAG MF = 10*METH + MITER. THERE ARE FOUR
+C STANDARD CHOICES FOR MITER WHEN A SENSITIVITY ANALYSIS IS DESIRED,
+C AND ODESSA REQUIRES THE JACOBIAN MATRIX IN SOME FORM.
+C THIS MATRIX IS REGARDED EITHER AS FULL (MITER = 1 OR 2),
+C OR BANDED (MITER = 4 OR 5). IN THE BANDED CASE, ODESSA REQUIRES TWO
+C HALF-BANDWIDTH PARAMETERS ML AND MU.  THESE ARE, RESPECTIVELY, THE
+C WIDTHS OF THE LOWER AND UPPER PARTS OF THE BAND, EXCLUDING THE MAIN
+C DIAGONAL.  THUS THE BAND CONSISTS OF THE LOCATIONS (I,J) WITH
+C I-ML .LE. J .LE. I+MU, AND THE FULL BANDWIDTH IS ML+MU+1.
+C
+C C. YOU ARE ENCOURAGED TO SUPPLY THE JACOBIAN DIRECTLY (MF = 11, 14,
+C 21, OR 24), BUT IF THIS IS NOT FEASIBLE, ODESSA WILL COMPUTE IT
+C INTERNALLY BY DIFFERENCE QUOTIENTS (MF = 12, 15, 22, OR 25). IF YOU
+C ARE SUPPLYING THE JACOBIAN, PROVIDE A SUBROUTINE OF THE FORM..
+C         SUBROUTINE JAC (NEQ, T, Y, PAR, ML, MU, PD, NROWPD)
+C         DOUBLE PRECISION T, Y, PAR, PD
+C         DIMENSION Y(N), PD(NROWPD,N), PAR(NPAR)
+C WHICH SUPPLIES DF/DY BY LOADING PD AS FOLLOWS..
+C  FOR A FULL JACOBIAN (MF = 11, OR 21), LOAD PD(I,J) WITH DF(I)/DY(J),
+C  THE PARTIAL DERIVATIVE OF F(I) WITH RESPECT TO Y(J).  (IGNORE THE
+C  ML AND MU ARGUMENTS IN THIS CASE.)
+C  FOR A BANDED JACOBIAN (MF = 14, OR 24), LOAD PD(I-J+MU+1,J) WITH
+C  DF(I)/DY(J), I.E. LOAD THE DIAGONAL LINES OF DF/DY INTO THE ROWS OF
+C  PD FROM THE TOP DOWN.
+C IN EITHER CASE, ONLY NONZERO ELEMENTS NEED BE LOADED.
+C
+C D. WRITE A MAIN PROGRAM WHICH CALLS SUBROUTINE ODESSA ONCE FOR
+C EACH POINT AT WHICH ANSWERS ARE DESIRED.  THIS SHOULD ALSO PROVIDE
+C FOR POSSIBLE USE OF LOGICAL UNIT 6 FOR OUTPUT OF ERROR MESSAGES BY
+C ODESSA.  ON THE FIRST CALL TO ODESSA, SUPPLY ARGUMENTS AS FOLLOWS..
+C F     = NAME OF SUBROUTINE FOR RIGHT-HAND SIDE VECTOR F (MODEL).
+C         THIS NAME MUST BE DECLARED EXTERNAL IN CALLING PROGRAM.
+C DF    = NAME OF SUBROUTINE FOR INHOMOGENEITY MATRIX DF/DP.
+C         IF USED (IDF = 1), THIS NAME MUST BE DECLARED EXTERNAL IN
+C         CALLING PROGRAM. IF NOT USED (IDF = 0), PASS A DUMMY NAME.
+C N     = NUMBER OF FIRST ORDER ODE-S IN MODEL; LOAD INTO NEQ(1).
+C NPAR  = NUMBER OF MODEL PARAMETERS OF INTEREST; LOAD INTO NEQ(2).
+C Y     = AN (N) BY (NPAR+1) REAL ARRAY OF INITIAL VALUES..
+C         Y(I,1) , I = 1,N , CONTAIN THE STATE, OR MODEL, DEPENDENT
+C                            VARIABLES,
+C         Y(I,J) , J = 2,NPAR , CONTAIN THE DEPENDENT SENSITIVITY
+C                               COEFFICIENTS.
+C PAR   = A REAL ARRAY OF LENGTH NPAR CONTAINING MODEL PARAMETERS
+C         OF INTEREST.
+C T     = THE INITIAL VALUE OF THE INDEPENDENT VARIABLE.
+C TOUT  = FIRST POINT WHERE OUTPUT IS DESIRED (.NE. T).
+C ITOL  = 1, 2, 3, OR 4 ACCORDING AS RTOL, ATOL (BELOW) ARE  SCALARS
+C         OR ARRAYS.
+C RTOL  = RELATIVE TOLERANCE PARAMETER (SCALAR OR (N) BY (NPAR+1)
+C         ARRAY).
+C ATOL  = ABSOLUTE TOLERANCE PARAMETER (SCALAR OR (N) BY (NPAR+1)
+C         ARRAY).
+C         THE ESTIMATED LOCAL ERROR IN Y(I,J) WILL BE CONTROLLED SO AS
+C         TO BE ROUGHLY LESS (IN MAGNITUDE) THAN
+C          EWT(I,J) = RTOL*ABS(Y(I,J)) + ATOL          IF ITOL = 1,
+C          EWT(I,J) = RTOL*ABS(Y(I,J)) + ATOL(I,J)     IF ITOL = 2,
+C          EWT(I,J) = RTOL(I,J)*ABS(Y(I,J) + ATOL      IF ITOL = 3, OR
+C          EWT(I,J) = RTOL(I,J)*ABS(Y(I,J) + ATOL(I,J) IF ITOL = 4.
+C         THUS THE LOCAL ERROR TEST PASSES IF, IN EACH COMPONENT,
+C         EITHER THE ABSOLUTE ERROR IS LESS THAN ATOL (OR ATOL(I,J)),
+C         OR THE RELATIVE ERROR IS LESS THAN RTOL (OR RTOL(I,J)).
+C         USE RTOL = 0.0 FOR PURE ABSOLUTE ERROR CONTROL, AND
+C         USE ATOL = 0.0 FOR PURE RELATIVE ERROR CONTROL.
+C         CAUTION.. ACTUAL (GLOBAL) ERRORS MAY EXCEED THESE LOCAL
+C         TOLERANCES, SO CHOOSE THEM CONSERVATIVELY.
+C ITASK = 1 FOR NORMAL COMPUTATION OF OUTPUT VALUES OF Y AT T = TOUT.
+C ISTATE = INTEGER FLAG (INPUT AND OUTPUT).  SET ISTATE = 1.
+C IOPT  = 0, TO INDICATE NO OPTIONAL INPUTS FOR INTEGRATION;
+C          LOAD INTO IOPT(1).
+C ISOPT = 1, TO INDICATE SENSITIVITY ANALYSIS, = 0, TO INDICATE
+C          NO SENSITIVITY ANALYSIS; LOAD INTO IOPT(2).
+C IDF   = 1, IF SUBROUTINE DF (ABOVE) IS SUPPLIED BY THE USER,
+C          = 0, OTHERWISE; LOAD INTO IOPT(3).
+C RWORK = REAL WORK ARRAY OF LENGTH AT LEAST..
+C           22 + 16*N + N**2           FOR MF = 11 OR 12,
+C           22 + 17*N + (2*ML + MU)*N  FOR MF = 14 OR 15,
+C           22 +  9*N + N**2           FOR MF = 21 OR 22,
+C           22 + 10*N + (2*ML + MU)*N  FOR MF = 24 OR 25,
+C         IF ISOPT = 0, OR..
+C           22 + 15*(NPAR+1)*N + N**2 + N           FOR MF = 11 OR 12,
+C           24 + 15*(NPAR+1)*N + (2*ML+MU+2)*N + N  FOR MF = 14 OR 15,
+C           22 + 8*(NPAR+1)*N + N**2 + N            FOR MF = 21 OR 22,
+C           24 + 8*(NPAR+1)*N + (2*ML+MU+2)*N + N   FOR MF = 24 OR 25,
+C         IF ISOPT = 1.
+C LRW   = DECLARED LENGTH OF RWORK (IN USER-S DIMENSION STATEMENT).
+C IWORK = INTEGER WORK ARRAY OF LENGTH AT LEAST..
+C          20 + N         IF ISOPT = 0,
+C          21 + N + NPAR  IF ISOPT = 1.
+C        IF MITER = 4 OR 5, INPUT IN IWORK(1),IWORK(2) THE LOWER
+C        AND UPPER HALF-BANDWIDTHS ML,MU (EXCLUDING MAIN DIAGONAL).
+C LIW  = DECLARED LENGTH OF IWORK (IN USER-S DIMENSION STATEMENT).
+C JAC  = NAME OF SUBROUTINE FOR JACOBIAN MATRIX.
+C        IF USED, THIS NAME MUST BE DECLARED EXTERNAL IN CALLING
+C        PROGRAM.  IF NOT USED, PASS A DUMMY NAME.
+C MF   = METHOD FLAG.  STANDARD VALUES FOR ISOPT = 0 ARE..
+C         10 FOR NONSTIFF (ADAMS) METHOD, NO JACOBIAN USED.
+C         21 FOR STIFF (BDF) METHOD, USER-SUPPLIED FULL JACOBIAN.
+C         22 FOR STIFF METHOD, INTERNALLY GENERATED FULL JACOBIAN.
+C         24 FOR STIFF METHOD, USER-SUPPLIED BANDED JACOBIAN.
+C         25 FOR STIFF METHOD, INTERNALLY GENERATED BANDED JACOBIAN.
+C        IF ISOPT = 1, MF = 10 IS ILLEGAL AND CAN BE REPLACED BY..
+C         11 FOR NONSTIFF METHOD, USER-SUPPLIED FULL JACOBIAN.
+C         12 FOR NONSTIFF METHOD, INTERNALLY GENERATED FULL JACOBIAN.
+C         14 FOR NONSTIFF METHOD, USER-SUPPLIED BANDED JACOBIAN.
+C         15 FOR NONSTIFF METHOD, INTERNALLY GENERATED BANDED JACOBIAN.
+C NOTE THAT THE MAIN PROGRAM MUST DECLARE ARRAYS Y, RWORK, IWORK, AND
+C POSSIBLY ATOL AND RTOL, AS WELL AS NEQ, IOPT, AND PAR IF ISOPT = 1.
+C
+C E. THE OUTPUT FROM THE FIRST CALL (OR ANY CALL) IS..
+C     Y = ARRAY OF COMPUTED VALUES OF Y(T) VECTOR.
+C     T = CORRESPONDING VALUE OF INDEPENDENT VARIABLE (NORMALLY TOUT).
+C ISTATE = 2  IF ODESSA WAS SUCCESSFUL, NEGATIVE OTHERWISE.
+C         -1 MEANS EXCESS WORK DONE ON THIS CALL (PERHAPS WRONG MF).
+C         -2 MEANS EXCESS ACCURACY REQUESTED (TOLERANCES TOO SMALL).
+C         -3 MEANS ILLEGAL INPUT DETECTED (SEE PRINTED MESSAGE).
+C         -4 MEANS REPEATED ERROR TEST FAILURES (CHECK ALL INPUTS).
+C         -5 MEANS REPEATED CONVERGENCE FAILURES (PERHAPS BAD JACOBIAN
+C            SUPPLIED OR WRONG CHOICE OF MF OR TOLERANCES).
+C         -6 MEANS ERROR WEIGHT BECAME ZERO DURING PROBLEM. (SOLUTION
+C            COMPONENT I,J VANISHED, AND ATOL OR ATOL(I,J) = 0.0)
+C
+C F. TO CONTINUE THE INTEGRATION AFTER A SUCCESSFUL RETURN, SIMPLY
+C RESET TOUT AND CALL ODESSA AGAIN. NO OTHER PARAMETERS NEED BE RESET.
+C----------------------------------------------------------------------
+C EXAMPLE PROBLEM.
+C
+C THE FOLLOWING IS A SIMPLE EXAMPLE PROBLEM, WITH THE CODING
+C NEEDED FOR ITS SOLUTION BY ODESSA.  THE PROBLEM IS FROM CHEMICAL
+C KINETICS, AND CONSISTS OF THE FOLLOWING THREE RATE EQUATIONS..
+C    DY1/DT = -PAR(1)*Y1 + PAR(2)*Y2*Y3 ; PAR(1) = .04, PAR(2) = 1.E4
+C    DY2/DT = PAR(1)*Y1 - PAR(2)*Y2*Y3 - PAR(3)*Y2**2 ; PAR(3) = 3.E7
+C    DY3/DT = PAR(3)*Y2**2
+C ON THE INTERVAL FROM T = 0.0 TO T = 4.E10, WITH INITIAL CONDITIONS
+C Y1 = 1.0, Y2 = Y3 = 0, AND S(I,J) = 0, I = 1,3, J = 1,3.
+C THE PROBLEM IS STIFF.
+C
+C THE FOLLOWING CODING KppSolveS THIS PROBLEM WITH ODESSA, USING
+C MF = 21 AND PRINTING RESULTS AT T = .4, 4., ..., 4.E10.
+C IT USES ITOL = 4 AND ATOL MUCH SMALLER FOR Y2 THAN Y1 OR Y3,
+C BECAUSE Y2 HAS MUCH SMALLER VALUES. LESS STRINGENT TOLERANCES
+C ARE ASSIGNED FOR THE SENSITIVITIES TO ACHIEVE GREATER EFFICIENCY.
+C AT THE END OF THE RUN, STATISTICAL QUANTITIES OF INTEREST ARE
+C PRINTED (SEE OPTIONAL OUTPUTS IN THE FULL DESCRIPTION BELOW).
+C
+C      DOUBLE PRECISION ATOL, RWORK, RTOL, T, TOUT, Y, PAR
+C      EXTERNAL FEX, JEX, DFEX
+C      DIMENSION Y(3,4), PAR(3), ATOL(3,4), RTOL(3,4), RWORK(130),
+C     1  IWORK(27), NEQ(2), IOPT(3)
+C      N = 3
+C      NPAR = 3
+C      NEQ(1) = N
+C      NEQ(2) = NPAR
+C      NSV = NPAR+1
+C      DO 10 I = 1,N
+C      DO 10 J = 1,NSV
+C 10     Y(I,J) = 0.0D0
+C      Y(1,1) = 1.0D0
+C      PAR(1) = 0.04D0
+C      PAR(2) = 1.0D4
+C      PAR(3) = 3.0D7
+C      T = 0.D0
+C      TOUT = .4D0
+C      ITOL = 4
+C      ATOL(1,1) = 1.D-6
+C      ATOL(2,1) = 1.D-10
+C      ATOL(3,1) = 1.D-6
+C      DO 20 I = 1,N
+C        RTOL(I,1) = 1.D-4
+C        DO 15 J = 2,NSV
+C          RTOL(I,J) = 1.D-3
+C 15       ATOL(I,J) = 1.D2 * ATOL(I,1)
+C 20   CONTINUE
+C      ITASK = 1
+C      ISTATE = 1
+C      IOPT(1) = 0
+C      IOPT(2) = 1
+C      IOPT(3) = 1
+C      LRW = 130
+C      LIW = 27
+C      MF = 21
+C      DO 60 IOUT = 1,12
+C        CALL ODESSA(FEX,DFEX,NEQ,Y,PAR,T,TOUT,ITOL,RTOL,ATOL,
+C     1    ITASK,ISTATE, IOPT,RWORK,LRW,IWORK,LIW,JEX,MF)
+C        WRITE(6,30)T,Y(1,1),Y(2,1),Y(3,1)
+C 30     FORMAT(1X,7H AT T =,E12.4,6H   Y =,3E14.6)
+C        DO 50 J = 2,NSV
+C          JPAR = J-1
+C          WRITE(6,40)JPAR,Y(1,J),Y(2,J),Y(3,J)
+C 40       FORMAT(20X,2HS(,I1,3H) =,3E14.6)
+C 50     CONTINUE
+C        IF (ISTATE .LT. 0) GO TO 80
+C 60     TOUT = TOUT*10.D0
+C      WRITE(6,70)IWORK(11),IWORK(12),IWORK(13),IWORK(19)
+C 70   FORMAT(1X,/,12H NO. STEPS =,I4,11H  NO. F-S =,I4,11H  NO. J-S =,
+C     1  I4,12H  NO. DF-S =,I4)
+C      STOP
+C 80   WRITE(6,90)ISTATE
+C 90   FORMAT(///22H ERROR HALT.. ISTATE =,I3)
+C      STOP
+C      END
+C
+C      SUBROUTINE FEX (NEQ, T, Y, PAR, YDOT)
+C      DOUBLE PRECISION T, Y, YDOT, PAR
+C      DIMENSION Y(3), YDOT(3), PAR(3)
+C      YDOT(1) = -PAR(1)*Y(1) + PAR(2)*Y(2)*Y(3)
+C      YDOT(3) = PAR(3)*Y(2)*Y(2)
+C      YDOT(2) = -YDOT(1) - YDOT(3)
+C      RETURN
+C      END
+C
+C      SUBROUTINE JEX (NEQ, T, Y, PAR, ML, MU, PD, NRPD)
+C      DOUBLE PRECISION PD, T, Y, PAR
+C      DIMENSION Y(3), PD(NRPD,3), PAR(3)
+C      PD(1,1) = -PAR(1)
+C      PD(1,2) = PAR(2)*Y(3)
+C      PD(1,3) = PAR(2)*Y(2)
+C      PD(2,1) = PAR(1)
+C      PD(2,3) = -PD(1,3)
+C      PD(3,2) = 2.D0*PAR(3)*Y(2)
+C      PD(2,2) = -PD(1,2) - PD(3,2)
+C      RETURN
+C      END
+C
+C      SUBROUTINE DFEX (NEQ, T, Y, PAR, DFDP, JPAR)
+C      DOUBLE PRECISION T, Y, PAR, DFDP
+C      DIMENSION Y(3), PAR(3), DFDP(3)
+C      GO TO (1,2,3), JPAR
+C  1   DFDP(1) = -Y(1)
+C      DFDP(2) = Y(1)
+C      RETURN
+C  2   DFDP(1) = Y(2)*Y(3)
+C      DFDP(2) = -Y(2)*Y(3)
+C      RETURN
+C  3   DFDP(2) = -Y(2)*Y(2)
+C      DFDP(3) = Y(2)*Y(2)
+C      RETURN
+C      END
+C
+C  THE OUTPUT OF THIS PROGRAM (ON A DATA GENERAL MV-8000 IN
+C  DOUBLE PRECISION IS AS FOLLOWS:
+C
+C AT T =   .4000E+00   Y =   .985173E+00   .338641E-04   .147930E-01
+C                   S(1) =  -.355914E+00   .390261E-03   .355524E+00
+C                   S(2) =   .955150E-07  -.213065E-09  -.953019E-07
+C                   S(3) =  -.158466E-10  -.529012E-12   .163756E-10
+C AT T =   .4000E+01   Y =   .905516E+00   .224044E-04   .944615E-01
+C                   S(1) =  -.187621E+01   .179197E-03   .187603E+01
+C                   S(2) =   .296093E-05  -.583104E-09  -.296034E-05
+C                   S(3) =  -.493267E-09  -.276246E-12   .493544E-09
+C AT T =   .4000E+02   Y =   .715848E+00   .918628E-05   .284143E+00
+C                   S(1) =  -.424730E+01   .459360E-04   .424726E+01
+C                   S(2) =   .137294E-04  -.235815E-09  -.137291E-04
+C                   S(3) =  -.228818E-08  -.113803E-12   .228829E-08
+C AT T =   .4000E+03   Y =   .450526E+00   .322299E-05   .549471E+00
+C                   S(1) =  -.595837E+01   .354310E-05   .595836E+01
+C                   S(2) =   .227380E-04  -.226041E-10  -.227380E-04
+C                   S(3) =  -.378971E-08  -.499501E-13   .378976E-08
+C AT T =   .4000E+04   Y =   .183185E+00   .894131E-06   .816814E+00
+C                   S(1) =  -.475006E+01  -.599504E-05   .475007E+01
+C                   S(2) =   .188089E-04   .231330E-10  -.188089E-04
+C                   S(3) =  -.313478E-08  -.187575E-13   .313480E-08
+C AT T =   .4000E+05   Y =   .389733E-01   .162133E-06   .961027E+00
+C                   S(1) =  -.157477E+01  -.276199E-05   .157477E+01
+C                   S(2) =   .628668E-05   .110026E-10  -.628670E-05
+C                   S(3) =  -.104776E-08  -.453588E-14   .104776E-08
+C AT T =   .4000E+06   Y =   .493609E-02   .198411E-07   .995064E+00
+C                   S(1) =  -.236244E+00  -.458262E-06   .236244E+00
+C                   S(2) =   .944669E-06   .183193E-11  -.944671E-06
+C                   S(3) =  -.157441E-09  -.635990E-15   .157442E-09
+C AT T =   .4000E+07   Y =   .516087E-03   .206540E-08   .999484E+00
+C                   S(1) =  -.256277E-01  -.509808E-07   .256278E-01
+C                   S(2) =   .102506E-06   .203905E-12  -.102506E-06
+C                   S(3) =  -.170825E-10  -.684002E-16   .170826E-10
+C AT T =   .4000E+08   Y =   .519314E-04   .207736E-09   .999948E+00
+C                   S(1) =  -.259316E-02  -.518029E-08   .259316E-02
+C                   S(2) =   .103726E-07   .207209E-13  -.103726E-07
+C                   S(3) =  -.172845E-11  -.691450E-17   .172845E-11
+C AT T =   .4000E+09   Y =   .544710E-05   .217885E-10   .999995E+00
+C                   S(1) =  -.271637E-03  -.541849E-09   .271638E-03
+C                   S(2) =   .108655E-08   .216739E-14  -.108655E-08
+C                   S(3) =  -.180902E-12  -.723615E-18   .180902E-12
+C AT T =   .4000E+10   Y =   .446748E-06   .178699E-11   .100000E+01
+C                   S(1) =  -.322322E-04  -.842541E-10   .322323E-04
+C                   S(2) =   .128929E-09   .337016E-15  -.128929E-09
+C                   S(3) =  -.209715E-13  -.838859E-19   .209715E-13
+C AT T =   .4000E+11   Y =  -.363960E-07  -.145584E-12   .100000E+01
+C                   S(1) =  -.164109E-06  -.429604E-11   .164113E-06
+C                   S(2) =   .656436E-12   .171842E-16  -.656451E-12
+C                   S(3) =  -.689361E-15  -.275745E-20   .689363E-15
+C
+C NO. STEPS = 340  NO. F-S = 412  NO. J-S = 343  NO. DF-S =1023
+C----------------------------------------------------------------------
+C FULL DESCRIPTION OF USER INTERFACE TO ODESSA.
+C
+C THE USER INTERFACE TO ODESSA CONSISTS OF THE FOLLOWING PARTS.
+C
+C I.  THE CALL SEQUENCE TO SUBROUTINE ODESSA, WHICH IS A DRIVER
+C     ROUTINE FOR THE KppSolveR.  THIS INCLUDES DESCRIPTIONS OF BOTH
+C     THE CALL SEQUENCE ARGUMENTS AND OF USER-SUPPLIED ROUTINES.
+C     FOLLOWING THESE DESCRIPTIONS IS A DESCRIPTION OF
+C     OPTIONAL INPUTS AVAILABLE THROUGH THE CALL SEQUENCE, AND THEN
+C     A DESCRIPTION OF OPTIONAL OUTPUTS (IN THE WORK ARRAYS).
+C
+C II.  DESCRIPTIONS OF OTHER ROUTINES IN THE ODESSA PACKAGE THAT MAY
+C     BE (OPTIONALLY) CALLED BY THE USER.  THESE PROVIDE THE ABILITY
+C     TO ALTER ERROR MESSAGE HANDLING, SAVE AND RESTORE THE INTERNAL
+C     COMMON, AND OBTAIN SPECIFIED DERIVATIVES OF THE SOLUTION Y(T).
+C
+C III. DESCRIPTIONS OF COMMON BLOCKS TO BE DECLARED IN OVERLAY
+C     OR SIMILAR ENVIRONMENTS, OR TO BE SAVED WHEN DOING AN INTERRUPT
+C     OF THE PROBLEM AND CONTINUED SOLUTION LATER.
+C
+C IV.  DESCRIPTION OF TWO SUBROUTINES IN THE ODESSA PACKAGE, EITHER OF
+C     WHICH THE USER MAY REPLACE WITH HIS OWN VERSION, IF DESIRED.
+C     THESE RELATE TO THE MEASUREMENT OF ERRORS.
+C
+C V.   GENERAL REMARKS WHICH HIGHLIGHT DIFFERENCES BETWEEN THE LSODE
+C     PACKAGE AND THE ODESSA PACKAGE.
+C----------------------------------------------------------------------
+C PART I.  CALL SEQUENCE.
+C
+C THE CALL SEQUENCE PARAMETERS USED FOR INPUT ONLY ARE..
+C    F, DF, NEQ, PAR, TOUT, ITOL, RTOL, ATOL, ITASK, IOPT, LRW, LIW,
+C    JAC, MF,
+C AND THOSE USED FOR BOTH INPUT AND OUTPUT ARE
+C    Y, T, ISTATE.
+C THE WORK ARRAYS RWORK AND IWORK ARE ALSO USED FOR CONDITIONAL AND
+C OPTIONAL INPUTS AND OPTIONAL OUTPUTS.  (THE TERM OUTPUT HERE REFERS
+C TO THE RETURN FROM SUBROUTINE ODESSA TO THE USER-S CALLING PROGRAM.)
+C
+C THE LEGALITY OF INPUT PARAMETERS WILL BE THOROUGHLY CHECKED ON THE
+C INITIAL CALL FOR THE PROBLEM, BUT NOT CHECKED THEREAFTER UNLESS A
+C CHANGE IN INPUT PARAMETERS IS FLAGGED BY ISTATE = 3 ON INPUT.
+C
+C THE DESCRIPTIONS OF THE CALL ARGUMENTS ARE AS FOLLOWS.
+C
+C F     = THE NAME OF THE USER-SUPPLIED SUBROUTINE DEFINING THE
+C         ODE MODEL. THIS SYSTEM MUST BE PUT IN THE FIRST-ORDER
+C         FORM DY/DT = F(Y,T;P), WHERE F IS A VECTOR-VALUED FUNCTION
+C         OF THE SCALAR T AND VECTORS Y, AND PAR.  SUBROUTINE F IS TO
+C         COMPUTE THE FUNCTION F.  IT IS TO HAVE THE FORM..
+C              SUBROUTINE F (NEQ, T, Y, PAR, YDOT)
+C              DOUBLE PRECISION T, Y, PAR, YDOT
+C              DIMENSION Y(1), PAR(1), YDOT(1)
+C         WHERE NEQ, T, Y, AND PAR ARE INPUT, AND YDOT = F(Y,T;P)
+C         IS OUTPUT.  Y AND YDOT ARE ARRAYS OF LENGTH N (= NEQ(1)).
+C         (IN THE DIMENSION STATEMENT ABOVE, 1 IS A DUMMY
+C         DIMENSION.. IT CAN BE REPLACED BY ANY VALUE.)
+C         F SHOULD NOT ALTER ARRAY Y, OR PAR(1),...,PAR(NPAR).
+C         F MUST BE DECLARED EXTERNAL IN THE CALLING PROGRAM.
+C
+C         SUBROUTINE F MAY ACCESS USER-DEFINED QUANTITIES IN
+C         NEQ(2),... AND PAR(NPAR+1),... IF NEQ IS AN ARRAY
+C         (DIMENSIONED IN F) AND PAR HAS LENGTH EXCEEDING NPAR.
+C         SEE THE DESCRIPTIONS OF NEQ AND PAR BELOW.
+C
+C DF    = THE NAME OF THE USER-SUPPLIED ROUTINE (IDF = 1) TO COMPUTE
+C         THE INHOMOGENEITY MATRIX, DF/DP, AS A FUNCTION OF THE SCALAR
+C         T, AND THE VECTORS Y, AND PAR. IT IS TO HAVE THE FORM
+C                SUBROUTINE DF (NEQ, T, Y, PAR, DFDP, JPAR)
+C                DOUBLE PRECISION T, Y, PAR, DFDP
+C                DIMENSION Y(1), PAR(1), DFDP(1)
+C                GO TO (1,2,...,NPAR) JPAR
+C            1   DFDP(1) = DF(1)/DP(1)
+C                .
+C                DFDP(I) = DF(I)/DP(1)
+C                .
+C                DFDP(N) = DF(N)/DP(1)
+C                RETURN
+C            2   DFDP(1) = DF(1)/DP(2)
+C                .
+C                DFDP(I) = DF(I)/DP(2)
+C                .
+C                DFDP(N) = DF(N)/DP(2)
+C                .
+C                RETURN
+C            .   .
+C            .   .
+C          NPAR  DFDP(1) = DF(1)/DP(NPAR)
+C                .
+C                DFDP(I) = DF(I)/DP(NPAR)
+C                .
+C                DFDP(N) = DF(N)/DP(NPAR)
+C                RETURN
+C                END
+C         WHERE NEQ, T, Y, PAR, AND JPAR ARE INPUT AND THE VECTOR
+C         DFDP(*,JPAR) IS TO BE LOADED WITH THE PARTIAL DERIVATIVES
+C         DF(Y,T;PAR)/DP(JPAR) ON OUTPUT. ONLY NONZERO ELEMENTS NEED
+C         BE LOADED.  T, Y, AND PAR HAVE THE SAME MEANING AS IN
+C         SUBROUTINE F. (IN THE DIMENSION STATEMENT ABOVE, 1 IS A DUMMY
+C         DIMENSION.. IT CAN BE REPLACED BY ANY VALUE).
+C
+C         DFDP(*,JPAR) IS PRESET TO ZERO BY THE KppSolveR, SO THAT ONLY
+C         THE NONZERO ELEMENTS NEED BE LOADED BY DF. SUBROUTINE DF
+C         MUST BE DECLARED EXTERNAL IN THE CALLING PROGRAM IF USED.
+C         IF IDF = 0 (OR ISOPT = 0), A DUMMY ARGUMENT CAN BE USED.
+C
+C         SUBROUTINE DF MAY ACCESS USER-DEFINED QUANTITIES IN
+C         NEQ(2),... AND PAR(NPAR+1),... IF NEQ IS AN ARRAY
+C         (DIMENSIONED IN DF) AND PAR HAS A LENGTH EXCEEDING NPAR.
+C         SEE THE DESCRIPTIONS OF NEQ AND PAR (BELOW).
+C
+C NEQ   = THE SIZE OF THE ODE SYSTEM (NUMBER OF FIRST ORDER ORDINARY
+C         DIFFERENTIAL EQUATIONS (N) IN THE MODEL).  USED ONLY FOR
+C         INPUT.  NEQ MAY NOT BE CHANGED DURING THE PROBLEM.
+C
+C         FOR ISOPT = 0, NEQ IS NORMALLY A SCALAR.  HOWEVER, NEQ MAY
+C         BE AN ARRAY, WITH NEQ(1) SET TO THE SYSTEM SIZE (N), IN WHICH
+C         CASE THE ODESSA PACKAGE ACCESSES ONLY NEQ(1). HOWEVER,
+C         THIS PARAMETER IS PASSED AS THE NEQ ARGUMENT IN ALL CALLS
+C         TO F, DF, AND JAC.  HENCE, IF IT IS AN ARRAY, LOCATIONS
+C         NEQ(2),... MAY BE USED TO STORE OTHER INTEGER DATA AND PASS
+C         IT TO F, DF, AND/OR JAC.  FOR ISOPT = 1, NPAR MUST BE LOADED
+C         INTO NEQ(2), AND IS NOT ALLOWED TO CHANGE DURING THE PROBLEM.
+C         IN THESE CASES, SUBROUTINES F, DF, AND/OR JAC MUST INCLUDE
+C         NEQ IN A DIMENSION STATEMENT.
+C
+C Y     = A REAL ARRAY FOR THE VECTOR OF DEPENDENT VARIABLES, OF
+C         DIMENSION (N) BY (NPAR+1).  USED FOR BOTH INPUT AND
+C         OUTPUT ON THE FIRST CALL (ISTATE = 1), AND ONLY FOR
+C         OUTPUT ON OTHER CALLS. ON THE FIRST CALL, Y MUST CONTAIN
+C         THE VECTORS OF INITIAL VALUES.  ON OUTPUT, Y CONTAINS THE
+C         COMPUTED SOLUTION VECTORS, EVALUATED AT T.
+C
+C PAR   = A REAL ARRAY FOR THE VECTOR OF CONSTANT MODEL PARAMETERS
+C         OF INTEREST IN THE SENSITIVITY ANALYSIS, OF LENGTH NPAR
+C         OR MORE. PAR IS PASSED AS AN ARGUMENT IN ALL CALLS TO F,
+C         DF, AND JAC. HENCE LOCATIONS PAR(NPAR+1),... MAY BE USED
+C         TO STORE OTHER REAL DATA AND PASS IT TO F, DF, AND/OR JAC.
+C         LOCATIONS PAR(1),...,PAR(NPAR) ARE USED AS INPUT ONLY,
+C         AND MUST NOT BE CHANGED DURING THE PROBLEM.
+C
+C T     = THE INDEPENDENT VARIABLE.  ON INPUT, T IS USED ONLY ON THE
+C         FIRST CALL, AS THE INITIAL POINT OF THE INTEGRATION.
+C         ON OUTPUT, AFTER EACH CALL, T IS THE VALUE AT WHICH A
+C         COMPUTED SOLUTION Y IS EVALUATED (USUALLY THE SAME AS TOUT).
+C         ON AN ERROR RETURN, T IS THE FARTHEST POINT REACHED.
+C
+C TOUT  = THE NEXT VALUE OF T AT WHICH A COMPUTED SOLUTION IS DESIRED.
+C         USED ONLY FOR INPUT.
+C
+C         WHEN STARTING THE PROBLEM (ISTATE = 1), TOUT MAY BE EQUAL
+C         TO T FOR ONE CALL, THEN SHOULD .NE. T FOR THE NEXT CALL.
+C         FOR THE INITIAL T, AN INPUT VALUE OF TOUT .NE. T IS USED
+C         IN ORDER TO DETERMINE THE DIRECTION OF THE INTEGRATION
+C         (I.E. THE ALGEBRAIC SIGN OF THE STEP SIZES) AND THE ROUGH
+C         SCALE OF THE PROBLEM.  INTEGRATION IN EITHER DIRECTION
+C         (FORWARD OR BACKWARD IN T) IS PERMITTED.
+C
+C         IF ITASK = 2 OR 5 (ONE-STEP MODES), TOUT IS IGNORED AFTER
+C         THE FIRST CALL (I.E. THE FIRST CALL WITH TOUT .NE. T).
+C         OTHERWISE, TOUT IS REQUIRED ON EVERY CALL.
+C
+C         IF ITASK = 1, 3, OR 4, THE VALUES OF TOUT NEED NOT BE
+C         MONOTONE, BUT A VALUE OF TOUT WHICH BACKS UP IS LIMITED
+C         TO THE CURRENT INTERNAL T INTERVAL, WHOSE ENDPOINTS ARE
+C         TCUR - HU AND TCUR (SEE OPTIONAL OUTPUTS, BELOW, FOR
+C         TCUR AND HU).
+C
+C ITOL  = AN INDICATOR FOR THE TYPE OF ERROR CONTROL.  SEE
+C         DESCRIPTION BELOW UNDER ATOL.  USED ONLY FOR INPUT.
+C
+C RTOL  = A RELATIVE ERROR TOLERANCE PARAMETER, EITHER A SCALAR OR
+C         AN ARRAY OF SPACE (N) BY (NPAR+1).  SEE DESCRIPTION BELOW
+C         UNDER ATOL. INPUT ONLY.
+C
+C ATOL  = AN ABSOLUTE ERROR TOLERANCE PARAMETER, EITHER A SCALAR OR
+C         AN ARRAY OF SPACE (N) BY (NPAR+1).  INPUT ONLY.
+C
+C            THE INPUT PARAMETERS ITOL, RTOL, AND ATOL DETERMINE
+C         THE ERROR CONTROL PERFORMED BY THE KppSolveR.  THE KppSolveR WILL
+C         CONTROL THE VECTOR E = (E(I,J)) OF ESTIMATED LOCAL ERRORS
+C         IN Y, ACCORDING TO AN INEQUALITY OF THE FORM
+C                   RMS-NORM OF ( E(I,J)/EWT(I,J) )   .LE.   1,
+C         WHERE     EWT(I,J) = RTOL(I,J)*ABS(Y(I,J)) + ATOL(I,J),
+C         AND THE RMS-NORM (ROOT-MEAN-SQUARE NORM) HERE IS
+C         RMS-NORM(V) = SQRT ( (1/N) * SUM (V(I,J)**2) ); I =1,...,N.
+C         HERE EWT = (EWT(I,J)) IS A VECTOR OF WEIGHTS WHICH MUST
+C         ALWAYS BE POSITIVE, AND THE VALUES OF RTOL AND ATOL SHOULD
+C         ALL BE NON-NEGATIVE.  THE FOLLOWING TABLE GIVES THE TYPES
+C         (SCALAR/ARRAY) OF RTOL AND ATOL, AND THE CORRESPONDING FORM
+C         OF EWT(I,J).
+C
+C          ITOL   RTOL      ATOL           EWT(I,J)
+C           1    SCALAR    SCALAR   RTOL*ABS(Y(I,J)) + ATOL
+C           2    SCALAR    ARRAY    RTOL*ABS(Y(I,J)) + ATOL(I,J)
+C           3    ARRAY     SCALAR   RTOL(I,J)*ABS(Y(I,J)) + ATOL
+C           4    ARRAY     ARRAY    RTOL(I,J)*ABS(Y(I,J)) + ATOL(I,J)
+C
+C         WHEN EITHER OF THESE PARAMETERS IS A SCALAR, IT NEED NOT
+C         BE DIMENSIONED IN THE USER-S CALLING PROGRAM.
+C
+C         THE TOTAL NUMBER OF ERROR TEST FAILURES DUE TO THE SENSITIVITY
+C         ANALYSIS, AND WHICH REQUIRE AN INTEGRATION STEP TO BE
+C         REPEATED, ARE ACCUMULATED IN THE LAST NPAR+1 LOCATIONS OF THE
+C         INTEGER WORK ARRAY IWORK (SEE OPTIONAL OUTPUTS BELOW).
+C         THIS INFORMATION MAY BE OF VALUE IN DETERMINING APPROPRIATE
+C         ERROR TOLERANCES TO BE APPLIED TO THE SENSITIVITY FUNCTIONS.
+C
+C         IF NONE OF THE ABOVE CHOICES (WITH ITOL, RTOL, AND ATOL
+C         FIXED THROUGHOUT THE PROBLEM) IS SUITABLE, MORE GENERAL
+C         ERROR CONTROLS CAN BE OBTAINED BY SUBSTITUTING
+C         USER-SUPPLIED ROUTINES FOR THE SETTING OF EWT AND/OR FOR
+C         THE NORM CALCULATION.  SEE PART IV BELOW.
+C
+C         IF GLOBAL ERRORS ARE TO BE ESTIMATED BY MAKING A REPEATED
+C         RUN ON THE SAME PROBLEM WITH SMALLER TOLERANCES, THEN ALL
+C         COMPONENTS OF RTOL AND ATOL (I.E. OF EWT) SHOULD BE SCALED
+C         DOWN UNIFORMLY.
+C
+C ITASK  = AN INDEX SPECIFYING THE TASK TO BE PERFORMED.
+C         INPUT ONLY.  ITASK HAS THE FOLLOWING VALUES AND MEANINGS.
+C         1  MEANS NORMAL COMPUTATION OF OUTPUT VALUES OF Y(T) AT
+C            T = TOUT (BY OVERSHOOTING AND INTERPOLATING).
+C         2  MEANS TAKE ONE STEP ONLY AND RETURN.
+C         3  MEANS STOP AT THE FIRST INTERNAL MESH POINT AT OR
+C            BEYOND T = TOUT AND RETURN.
+C         4  MEANS NORMAL COMPUTATION OF OUTPUT VALUES OF Y(T) AT
+C            T = TOUT BUT WITHOUT OVERSHOOTING T = TCRIT.
+C            TCRIT MUST BE INPUT AS RWORK(1).  TCRIT MAY BE EQUAL TO
+C            OR BEYOND TOUT, BUT NOT BEHIND IT IN THE DIRECTION OF
+C            INTEGRATION.  THIS OPTION IS USEFUL IF THE PROBLEM
+C            HAS A SINGULARITY AT OR BEYOND T = TCRIT.
+C         5  MEANS TAKE ONE STEP, WITHOUT PASSING TCRIT, AND RETURN.
+C            TCRIT MUST BE INPUT AS RWORK(1).
+C
+C         NOTE..  IF ITASK = 4 OR 5 AND THE KppSolveR REACHES TCRIT
+C         (WITHIN ROUNDOFF), IT WILL RETURN T = TCRIT (EXACTLY) TO
+C         INDICATE THIS (UNLESS ITASK = 4 AND TOUT COMES BEFORE TCRIT,
+C         IN WHICH CASE ANSWERS AT T = TOUT ARE RETURNED FIRST).
+C
+C ISTATE = AN INDEX USED FOR INPUT AND OUTPUT TO SPECIFY THE
+C         THE STATE OF THE CALCULATION.
+C
+C         ON INPUT, THE VALUES OF ISTATE ARE AS FOLLOWS.
+C         1  MEANS THIS IS THE FIRST CALL FOR THE PROBLEM
+C            (INITIALIZATIONS WILL BE DONE).  SEE NOTE BELOW.
+C         2  MEANS THIS IS NOT THE FIRST CALL, AND THE CALCULATION
+C            IS TO CONTINUE NORMALLY, WITH NO CHANGE IN ANY INPUT
+C            PARAMETERS EXCEPT POSSIBLY TOUT AND ITASK.
+C            (IF ITOL, RTOL, AND/OR ATOL ARE CHANGED BETWEEN CALLS
+C            WITH ISTATE = 2, THE NEW VALUES WILL BE USED BUT NOT
+C            TESTED FOR LEGALITY.)
+C         3  MEANS THIS IS NOT THE FIRST CALL, AND THE
+C            CALCULATION IS TO CONTINUE NORMALLY, BUT WITH
+C            A CHANGE IN INPUT PARAMETERS OTHER THAN
+C            TOUT AND ITASK.  CHANGES ARE ALLOWED IN
+C            ITOL, RTOL, ATOL, IOPT, LRW, LIW, MF, ML, MU,
+C            AND ANY OF THE OPTIONAL INPUTS EXCEPT H0.
+C            (SEE IWORK DESCRIPTION FOR ML AND MU.)
+C         NOTE..  A PRELIMINARY CALL WITH TOUT = T IS NOT COUNTED
+C         AS A FIRST CALL HERE, AS NO INITIALIZATION OR CHECKING OF
+C         INPUT IS DONE.  (SUCH A CALL IS SOMETIMES USEFUL FOR THE
+C         PURPOSE OF OUTPUTTING THE INITIAL CONDITIONS.)
+C         THUS THE FIRST CALL FOR WHICH TOUT .NE. T REQUIRES
+C         ISTATE = 1 ON INPUT.
+C
+C         ON OUTPUT, ISTATE HAS THE FOLLOWING VALUES AND MEANINGS.
+C          1  MEANS NOTHING WAS DONE, AS TOUT WAS EQUAL TO T WITH
+C             ISTATE = 1 ON INPUT.  (HOWEVER, AN INTERNAL COUNTER WAS
+C             SET TO DETECT AND PREVENT REPEATED CALLS OF THIS TYPE.)
+C          2  MEANS THE INTEGRATION WAS PERFORMED SUCCESSFULLY.
+C         -1  MEANS AN EXCESSIVE AMOUNT OF WORK (MORE THAN MXSTEP
+C             STEPS) WAS DONE ON THIS CALL, BEFORE COMPLETING THE
+C             REQUESTED TASK, BUT THE INTEGRATION WAS OTHERWISE
+C             SUCCESSFUL AS FAR AS T.  (MXSTEP IS AN OPTIONAL INPUT
+C             AND IS NORMALLY 500.)  TO CONTINUE, THE USER MAY
+C             SIMPLY RESET ISTATE TO A VALUE .GT. 1 AND CALL AGAIN
+C             (THE EXCESS WORK STEP COUNTER WILL BE RESET TO 0).
+C             IN ADDITION, THE USER MAY INCREASE MXSTEP TO AVOID
+C             THIS ERROR RETURN (SEE BELOW ON OPTIONAL INPUTS).
+C         -2  MEANS TOO MUCH ACCURACY WAS REQUESTED FOR THE PRECISION
+C             OF THE MACHINE BEING USED.  THIS WAS DETECTED BEFORE
+C             COMPLETING THE REQUESTED TASK, BUT THE INTEGRATION
+C             WAS SUCCESSFUL AS FAR AS T.  TO CONTINUE, THE TOLERANCE
+C             PARAMETERS MUST BE RESET, AND ISTATE MUST BE SET
+C             TO 3.  THE OPTIONAL OUTPUT TOLSF MAY BE USED FOR THIS
+C             PURPOSE.  (NOTE.. IF THIS CONDITION IS DETECTED BEFORE
+C             TAKING ANY STEPS, THEN AN ILLEGAL INPUT RETURN
+C             (ISTATE = -3) OCCURS INSTEAD.)
+C         -3  MEANS ILLEGAL INPUT WAS DETECTED, BEFORE TAKING ANY
+C             INTEGRATION STEPS.  SEE WRITTEN MESSAGE FOR DETAILS.
+C             NOTE..  IF THE KppSolveR DETECTS AN INFINITE LOOP OF CALLS
+C             TO THE KppSolveR WITH ILLEGAL INPUT, IT WILL CAUSE
+C             THE RUN TO STOP.
+C         -4  MEANS THERE WERE REPEATED ERROR TEST FAILURES ON
+C             ONE ATTEMPTED STEP, BEFORE COMPLETING THE REQUESTED
+C             TASK, BUT THE INTEGRATION WAS SUCCESSFUL AS FAR AS T.
+C             THE PROBLEM MAY HAVE A SINGULARITY, OR THE INPUT
+C             MAY BE INAPPROPRIATE.
+C         -5  MEANS THERE WERE REPEATED CONVERGENCE TEST FAILURES ON
+C             ONE ATTEMPTED STEP, BEFORE COMPLETING THE REQUESTED
+C             TASK, BUT THE INTEGRATION WAS SUCCESSFUL AS FAR AS T.
+C             THIS MAY BE CAUSED BY AN INACCURATE JACOBIAN MATRIX,
+C             IF ONE IS BEING USED.
+C         -6  MEANS EWT(I,J) BECAME ZERO FOR SOME I,J DURING THE
+C             INTEGRATION.  PURE RELATIVE ERROR CONTROL (ATOL(I,J)=0.0)
+C             WAS REQUESTED ON A VARIABLE WHICH HAS NOW VANISHED.
+C             THE INTEGRATION WAS SUCCESSFUL AS FAR AS T.
+C
+C         NOTE..  SINCE THE NORMAL OUTPUT VALUE OF ISTATE IS 2,
+C         IT DOES NOT NEED TO BE RESET FOR NORMAL CONTINUATION.
+C         ALSO, SINCE A NEGATIVE INPUT VALUE OF ISTATE WILL BE
+C         REGARDED AS ILLEGAL, A NEGATIVE OUTPUT VALUE REQUIRES THE
+C         USER TO CHANGE IT, AND POSSIBLY OTHER INPUTS, BEFORE
+C         CALLING THE KppSolveR AGAIN.
+C
+C IOPT  = AN INTEGER ARRAY FLAG TO SPECIFY WHETHER OR NOT ANY OPTIONAL
+C         INPUTS ARE BEING USED ON THIS CALL.  INPUT ONLY.
+C         THE OPTIONAL INPUTS ARE LISTED SEPARATELY BELOW.
+C         IOPT(1) = 0 MEANS NO OPTIONAL INPUTS FOR THE KppSolveR WILL BE
+C                   USED. DEFAULT VALUES WILL BE USED IN ALL CASES.
+C                 = 1 MEANS ONE OR MORE OPTIONAL INPUTS FOR THE
+C                   KppSolveR ARE BEING USED.
+C                   NOTE : IOPT(1) IS INDEPENDENT OF ISOPT AND IDF.
+C         IOPT(2) = 0 MEANS NO SENSITIVITY ANALYSIS WILL BE PERFORMED.
+C                 = 1 MEANS A SENSITIVITY ANALYSIS WILL BE PERFORMED.
+C                   NOTE : IOPT(2) IS RENAMED TO ISOPT IN ODESSA.
+C                 = 0 MEANS DF/DP WILL BE CALCULATED BY FINITE
+C                   DIFFERENCE WITHIN ODESSA.
+C         IOPT(3) = 1 MEANS DF/DP WILL BE CALCULATED BY A USER-SUPPLIED
+C                   ROUTINE.
+C                   NOTE : IOPT(3) IS RENAMED TO IDF IN ODESSA.
+C                          IF IDF = 1, THE USER MUST SUPPLY A
+C                          SUBROUTINE DF (THE NAME IS ARBITRARY) AS
+C                          DESCRIBED BELOW UNDER DF. FOR IDF = 0,
+C                          A DUMMY ARGUMENT CAN BE USED.
+C
+C RWORK  = A REAL WORKING ARRAY (DOUBLE PRECISION).
+C         FOR ISOPT = 0, THE LENGTH OF RWORK MUST BE AT LEAST..
+C            20 + NYH*(MAXORD + 1) + 3*NEQ + LWM
+C         FOR ISOPT = 1, THE LENGTH OF RWORK MUST BE AT LEAST..
+C            20 + NYH*(MAXORD + 1) + 2*NYH + LWM + N
+C         WHERE..
+C         NYH    = THE TOTAL NUMBER OF DEPENDENT VARIABLES;
+C                  (= N IF ISOPT = 0, AND N*(NPAR+1) IF ISOPT = 1).
+C         MAXORD = 12 (IF METH = 1) OR 5 (IF METH = 2) (UNLESS A
+C                  SMALLER VALUE IS GIVEN AS AN OPTIONAL INPUT),
+C         LWM    = 0                  IF MITER = 0,
+C         LWM    = N**2 + 2           IF MITER IS 1 OR 2,
+C         LWM    = N + 2              IF MITER = 3, AND
+C         LWM    = (2*ML+MU+1)*N + 2  IF MITER IS 4 OR 5.
+C         (SEE THE MF DESCRIPTION FOR METH AND MITER.)
+C
+C         THE FIRST 20 WORDS OF RWORK ARE RESERVED FOR CONDITIONAL
+C         AND OPTIONAL INPUTS AND OPTIONAL OUTPUTS.
+C
+C         THE FOLLOWING WORD IN RWORK IS A CONDITIONAL INPUT..
+C           RWORK(1) = TCRIT = CRITICAL VALUE OF T WHICH THE KppSolveR
+C                      IS NOT TO OVERSHOOT.  REQUIRED IF ITASK IS
+C                      4 OR 5, AND IGNORED OTHERWISE.  (SEE ITASK.)
+C
+C LRW   = THE LENGTH OF THE ARRAY RWORK, AS DECLARED BY THE USER.
+C         (THIS WILL BE CHECKED BY THE KppSolveR.)
+C
+C IWORK  = AN INTEGER WORK ARRAY. THE LENGTH MUST BE AT LEAST..
+C            20      IF MITER = 0 OR 3 (MF = 10, 13, 20, 23), OR
+C            20 + N  OTHERWISE (MF = 11, 12, 14, 15, 21, 22, 24, 25).
+C          FOR ISOPT = 0, OR..
+C            21 + N + NPAR
+C          FOR ISOPT = 1.
+C         THE FIRST FEW WORDS OF IWORK ARE USED FOR CONDITIONAL AND
+C         OPTIONAL INPUTS AND OPTIONAL OUTPUTS.
+C
+C         THE FOLLOWING 2 WORDS IN IWORK ARE CONDITIONAL INPUTS..
+C           IWORK(1) = ML     THESE ARE THE LOWER AND UPPER
+C           IWORK(2) = MU     HALF-BANDWIDTHS, RESPECTIVELY, OF THE
+C                      BANDED JACOBIAN, EXCLUDING THE MAIN DIAGONAL.
+C                      THE BAND IS DEFINED BY THE MATRIX LOCATIONS
+C                      (I,J) WITH I-ML .LE. J .LE. I+MU.  ML AND MU
+C                      MUST SATISFY  0 .LE.  ML,MU  .LE. NEQ-1.
+C                      THESE ARE REQUIRED IF MITER IS 4 OR 5, AND
+C                      IGNORED OTHERWISE.  ML AND MU MAY IN FACT BE
+C                      THE BAND PARAMETERS FOR A MATRIX TO WHICH
+C                      DF/DY IS ONLY APPROXIMATELY EQUAL.
+*
+C
+C LIW   = THE LENGTH OF THE ARRAY IWORK, AS DECLARED BY THE USER.
+C         (THIS WILL BE CHECKED BY THE KppSolveR.)
+C
+C NOTE..  THE WORK ARRAYS MUST NOT BE ALTERED BETWEEN CALLS TO ODESSA
+C FOR THE SAME PROBLEM, EXCEPT POSSIBLY FOR THE CONDITIONAL AND
+C OPTIONAL INPUTS, AND EXCEPT FOR THE LAST 2*NYH + N WORDS OF RWORK.
+C THE LATTER SPACE IS USED FOR INTERNAL SCRATCH SPACE, AND SO IS
+C AVAILABLE FOR USE BY THE USER OUTSIDE ODESSA BETWEEN CALLS, IF
+C DESIRED (BUT NOT FOR USE BY F, DF, OR JAC).
+C
+C JAC   = THE NAME OF THE USER-SUPPLIED ROUTINE (MITER = 1 OR 4) TO
+C         COMPUTE THE JACOBIAN MATRIX, DF/DY, AS A FUNCTION OF THE
+C         SCALAR T AND THE VECTORS Y, AND PAR.  IT IS TO HAVE THE FORM
+C              SUBROUTINE JAC (NEQ, T, Y, PAR, ML, MU, PD, NROWPD)
+C              DOUBLE PRECISION T, Y, PAR, PD
+C              DIMENSION Y(1), PAR(1), PD(NROWPD,1)
+C         WHERE NEQ, T, Y, PAR, ML, MU, AND NROWPD ARE INPUT AND THE
+C         ARRAY PD IS TO BE LOADED WITH PARTIAL DERIVATIVES (ELEMENTS
+C         OF THE JACOBIAN MATRIX) ON OUTPUT.  PD MUST BE GIVEN A FIRST
+C         DIMENSION OF NROWPD.  T, Y, AND PAR HAVE THE SAME MEANING AS
+C         IN SUBROUTINE F.  (IN THE DIMENSION STATEMENT ABOVE, 1 IS A
+C         DUMMY DIMENSION.. IT CAN BE REPLACED BY ANY VALUE.)
+C              IN THE FULL MATRIX CASE (MITER = 1), ML AND MU ARE
+C         IGNORED, AND THE JACOBIAN IS TO BE LOADED INTO PD IN
+C         COLUMNWISE MANNER, WITH DF(I)/DY(J) LOADED INTO PD(I,J).
+C              IN THE BAND MATRIX CASE (MITER = 4), THE ELEMENTS
+C         WITHIN THE BAND ARE TO BE LOADED INTO PD IN COLUMNWISE
+C         MANNER, WITH DIAGONAL LINES OF DF/DY LOADED INTO THE ROWS
+C         OF PD.  THUS DF(I)/DY(J) IS TO BE LOADED INTO PD(I-J+MU+1,J).
+C         ML AND MU ARE THE HALF-BANDWIDTH PARAMETERS (SEE IWORK).
+C         THE LOCATIONS IN PD IN THE TWO TRIANGULAR AREAS WHICH
+C         CORRESPOND TO NONEXISTENT MATRIX ELEMENTS CAN BE IGNORED
+C         OR LOADED ARBITRARILY, AS THEY ARE OVERWRITTEN BY ODESSA.
+C              PD IS PRESET TO ZERO BY THE KppSolveR, SO THAT ONLY THE
+C         NONZERO ELEMENTS NEED BE LOADED BY JAC. EACH CALL TO JAC IS
+C         PRECEDED BY A CALL TO F WITH THE SAME ARGUMENTS NEQ, T, Y,
+C         AND PAR. THUS TO GAIN SOME EFFICIENCY, INTERMEDIATE
+C         QUANTITIES SHARED BY BOTH CALCULATIONS MAY BE SAVED IN A
+C         USER COMMON BLOCK BY F AND NOT RECOMPUTED BY JAC, IF
+C         DESIRED.  ALSO, JAC MAY ALTER THE Y ARRAY, IF DESIRED.
+C         JAC MUST BE DECLARED EXTERNAL IN THE CALLING PROGRAM.
+C              SUBROUTINE JAC MAY ACCESS USER-DEFINED QUANTITIES IN
+C         NEQ(2),... AND PAR(NPAR+1),.... SEE THE DESCRIPTIONS OF
+C         NEQ (ABOVE) AND PAR (BELOW).
+C
+C MF    = THE METHOD FLAG.  USED ONLY FOR INPUT.  THE LEGAL VALUES OF
+C         MF ARE 10, 11, 12, 13, 14, 15, 20, 21, 22, 23, 24, AND 25.
+C         MF HAS DECIMAL DIGITS METH AND MITER.. MF = 10*METH + MITER.
+C         METH INDICATES THE BASIC LINEAR MULTISTEP METHOD..
+C           METH = 1 MEANS THE IMPLICIT ADAMS METHOD.
+*
+C           METH = 2 MEANS THE METHOD BASED ON BACKWARD
+C                    DIFFERENTIATION FORMULAS (BDF-S).
+C         MITER INDICATES THE CORRECTOR ITERATION METHOD..
+C           MITER = 0 MEANS FUNCTIONAL ITERATION (NO JACOBIAN MATRIX
+C                     IS INVOLVED).
+C           MITER = 1 MEANS CHORD ITERATION WITH A USER-SUPPLIED
+C                     FULL (NEQ BY NEQ) JACOBIAN.
+C           MITER = 2 MEANS CHORD ITERATION WITH AN INTERNALLY
+C                     GENERATED (DIFFERENCE QUOTIENT) FULL JACOBIAN
+C                     (USING NEQ EXTRA CALLS TO F PER DF/DY VALUE).
+C           MITER = 3 MEANS CHORD ITERATION WITH AN INTERNALLY
+C                     GENERATED DIAGONAL JACOBIAN APPROXIMATION.
+C                     (USING 1 EXTRA CALL TO F PER DF/DY EVALUATION).
+C           MITER = 4 MEANS CHORD ITERATION WITH A USER-SUPPLIED
+C                     BANDED JACOBIAN.
+C           MITER = 5 MEANS CHORD ITERATION WITH AN INTERNALLY
+C                     GENERATED BANDED JACOBIAN (USING ML+MU+1 EXTRA
+C                     CALLS TO F PER DF/DY EVALUATION).
+C         IF MITER = 1 OR 4, THE USER MUST SUPPLY A SUBROUTINE JAC
+C         (THE NAME IS ARBITRARY) AS DESCRIBED ABOVE UNDER JAC.
+C         FOR OTHER VALUES OF MITER, A DUMMY ARGUMENT CAN BE USED.
+C
+C         IF A SENSITIVITY ANLYSIS IS DESIRED (ISOPT = 1), MITER = 0
+C         AND 3 ARE DISALLOWED. IN THESE CASES, THE USER IS RECOMMENDED
+C         TO SUPPLY AN ANALYTICAL JACOBIAN (MITER = 1 OR 4) AND AN
+C         ANALYTICAL INHOMOGENEITY MATRIX (IDF = 1).
+C----------------------------------------------------------------------
+C OPTIONAL INPUTS.
+C
+C THE FOLLOWING IS A LIST OF THE OPTIONAL INPUTS PROVIDED FOR IN THE
+C CALL SEQUENCE.  (SEE ALSO PART II.)  FOR EACH SUCH INPUT VARIABLE,
+C THIS TABLE LISTS ITS NAME AS USED IN THIS DOCUMENTATION, ITS
+C LOCATION IN THE CALL SEQUENCE, ITS MEANING, AND THE DEFAULT VALUE.
+C THE USE OF ANY OF THESE INPUTS REQUIRES IOPT(1) = 1, AND IN THAT
+C CASE ALL OF THESE INPUTS ARE EXAMINED.  A VALUE OF ZERO FOR ANY
+C OF THESE OPTIONAL INPUTS WILL CAUSE THE DEFAULT VALUE TO BE USED.
+C THUS TO USE A SUBSET OF THE OPTIONAL INPUTS, SIMPLY PRELOAD
+C LOCATIONS 5 TO 10 IN RWORK AND IWORK TO 0.0 AND 0 RESPECTIVELY, AND
+C THEN SET THOSE OF INTEREST TO NONZERO VALUES.
+C
+C NAME   LOCATION      MEANING AND DEFAULT VALUE
+C
+C H0     RWORK(5)  THE STEP SIZE TO BE ATTEMPTED ON THE FIRST STEP.
+C                  THE DEFAULT VALUE IS DETERMINED BY THE KppSolveR.
+C
+C HMAX   RWORK(6)  THE MAXIMUM ABSOLUTE STEP SIZE ALLOWED.
+C                  THE DEFAULT VALUE IS INFINITE.
+C
+C HMIN   RWORK(7)  THE MINIMUM ABSOLUTE STEP SIZE ALLOWED.
+C                  THE DEFAULT VALUE IS 0.  (THIS LOWER BOUND IS NOT
+C                  ENFORCED ON THE FINAL STEP BEFORE REACHING TCRIT
+C                  WHEN ITASK = 4 OR 5.)
+C
+C MAXORD  IWORK(5)  THE MAXIMUM ORDER TO BE ALLOWED.  THE DEFAULT
+C                  VALUE IS 12 IF METH = 1, AND 5 IF METH = 2.
+C                  IF MAXORD EXCEEDS THE DEFAULT VALUE, IT WILL
+C                  BE REDUCED TO THE DEFAULT VALUE.
+C                  IF MAXORD IS CHANGED DURING THE PROBLEM, IT MAY
+C                  CAUSE THE CURRENT ORDER TO BE REDUCED.
+C
+C MXSTEP  IWORK(6)  MAXIMUM NUMBER OF (INTERNALLY DEFINED) STEPS
+C                  ALLOWED DURING ONE CALL TO THE KppSolveR.
+C                  THE DEFAULT VALUE IS 500.
+C
+C MXHNIL  IWORK(7)  MAXIMUM NUMBER OF MESSAGES PRINTED (PER PROBLEM)
+C                  WARNING THAT T + H = T ON A STEP (H = STEP SIZE).
+C                  THIS MUST BE POSITIVE TO RESULT IN A NON-DEFAULT
+C                  VALUE.  THE DEFAULT VALUE IS 10.
+C----------------------------------------------------------------------
+C OPTIONAL OUTPUTS.
+C
+C AS OPTIONAL ADDITIONAL OUTPUT FROM ODESSA, THE VARIABLES LISTED
+C BELOW ARE QUANTITIES RELATED TO THE PERFORMANCE OF ODESSA
+C WHICH ARE AVAILABLE TO THE USER.  THESE ARE COMMUNICATED BY WAY OF
+C THE WORK ARRAYS, BUT ALSO HAVE INTERNAL MNEMONIC NAMES AS SHOWN.
+C EXCEPT WHERE STATED OTHERWISE, ALL OF THESE OUTPUTS ARE DEFINED
+C ON ANY SUCCESSFUL RETURN FROM ODESSA, AND ON ANY RETURN WITH
+C ISTATE = -1, -2, -4, -5, OR -6.  ON AN ILLEGAL INPUT RETURN
+C (ISTATE = -3), THEY WILL BE UNCHANGED FROM THEIR EXISTING VALUES
+C (IF ANY), EXCEPT POSSIBLY FOR TOLSF, LENRW, AND LENIW.
+C ON ANY ERROR RETURN, OUTPUTS RELEVANT TO THE ERROR WILL BE DEFINED,
+C AS NOTED BELOW.
+C
+C NAME   LOCATION      MEANING
+C
+C HU     RWORK(11) THE STEP SIZE IN T LAST USED (SUCCESSFULLY).
+C
+C HCUR   RWORK(12) THE STEP SIZE TO BE ATTEMPTED ON THE NEXT STEP.
+C
+C TCUR   RWORK(13) THE CURRENT VALUE OF THE INDEPENDENT VARIABLE
+C                  WHICH THE KppSolveR HAS ACTUALLY REACHED, I.E. THE
+C                  CURRENT INTERNAL MESH POINT IN T.  ON OUTPUT, TCUR
+C                  WILL ALWAYS BE AT LEAST AS FAR AS THE ARGUMENT
+C                  T, BUT MAY BE FARTHER (IF INTERPOLATION WAS DONE).
+C
+C TOLSF  RWORK(14) A TOLERANCE SCALE FACTOR, GREATER THAN 1.0,
+C                  COMPUTED WHEN A REQUEST FOR TOO MUCH ACCURACY WAS
+C                  DETECTED (ISTATE = -3 IF DETECTED AT THE START OF
+C                  THE PROBLEM, ISTATE = -2 OTHERWISE).  IF ITOL IS
+C                  LEFT UNALTERED BUT RTOL AND ATOL ARE UNIFORMLY
+C                  SCALED UP BY A FACTOR OF TOLSF FOR THE NEXT CALL,
+C                  THEN THE KppSolveR IS DEEMED LIKELY TO SUCCEED.
+C                  (THE USER MAY ALSO IGNORE TOLSF AND ALTER THE
+C                  TOLERANCE PARAMETERS IN ANY OTHER WAY APPROPRIATE.)
+C
+C NST    IWORK(11) THE NUMBER OF STEPS TAKEN FOR THE PROBLEM SO FAR.
+C
+C NFE    IWORK(12) THE NUMBER OF F EVALUATIONS FOR THE PROBLEM SO FAR.
+C
+C NJE    IWORK(13) THE NUMBER OF JACOBIAN EVALUATIONS (AND OF MATRIX
+C                  LU DECOMPOSITIONS IF ISOPT = 0) FOR THE PROBLEM SO
+C                  FAR. IF ISOPT = 1, THE NUMBER OF LU DECOMPOSITIONS
+C                  IS EQUAL TO NJE - NSPE (SEE BELOW).
+C
+C NQU    IWORK(14) THE METHOD ORDER LAST USED (SUCCESSFULLY).
+C
+C NQCUR  IWORK(15) THE ORDER TO BE ATTEMPTED ON THE NEXT STEP.
+C
+C IMXER  IWORK(16) THE INDEX OF THE COMPONENT OF LARGEST MAGNITUDE IN
+C                  THE WEIGHTED LOCAL ERROR VECTOR (E(I,J)/EWT(I,J)),
+C                  ON AN ERROR RETURN WITH ISTATE = -4 OR -5.
+C
+C LENRW  IWORK(17) THE LENGTH OF RWORK ACTUALLY REQUIRED.
+C                  THIS IS DEFINED ON NORMAL RETURNS AND ON AN ILLEGAL
+C                  INPUT RETURN FOR INSUFFICIENT STORAGE.
+C
+C LENIW  IWORK(18) THE LENGTH OF IWORK ACTUALLY REQUIRED.
+C                  THIS IS DEFINED ON NORMAL RETURNS AND ON AN ILLEGAL
+C                  INPUT RETURN FOR INSUFFICIENT STORAGE.
+C
+C NDFE   IWORK(19) THE NUMBER OF DF/DP (VECTOR) EVALUATIONS.
+C
+C NSPE   IWORK(20) THE NUMBER OF CALLS TO SUBROUTINE SPRIME. EACH CALL
+C                  TO SPRIME REQUIRES A JACOBIAN EVALUATION, BUT NOT
+C                  AN LU DECOMPOSITION.
+C
+C THE FOLLOWING ARRAYS ARE SEGMENTS OF THE RWORK AND IWORK ARRAYS
+C WHICH MAY ALSO BE OF INTEREST TO THE USER AS OPTIONAL OUTPUTS.
+C FOR EACH ARRAY, THE TABLE BELOW GIVES ITS INTERNAL NAME, ITS BASE
+C ADDRESS IN RWORK OR IWORK, AND ITS DESCRIPTION.
+C
+C NAME   BASE ADDRESS      DESCRIPTION
+C
+C YH     21 IN RWORK    THE NORDSIECK HISTORY ARRAY, OF SIZE NYH BY
+C                       (NQCUR + 1). FOR J = 0,1,...,NQCUR, COLUMN J+1
+C                       OF YH CONTAINS HCUR**J/FACTORIAL(J) TIMES
+C                       THE J-TH DERIVATIVE OF THE INTERPOLATING
+C                       POLYNOMIAL CURRENTLY REPRESENTING THE SOLUTION,
+C                       EVALUATED AT T = TCUR.
+C
+C ACOR    LENRW-NYH+1   ARRAY OF SIZE NYH USED FOR THE ACCUMULATED
+C         IN RWORK      CORRECTIONS ON EACH STEP, SCALED ON OUTPUT
+C                       TO REPRESENT THE ESTIMATED LOCAL ERROR IN Y
+C                       ON THE LAST STEP.  THIS IS THE VECTOR E IN
+C                       THE DESCRIPTION OF THE ERROR CONTROL.
+C                       IT IS DEFINED ONLY ON A SUCCESSFUL RETURN
+C                       FROM ODESSA.
+C NRS     LENIW-NPAR    ARRAY OF SIZE NPAR+1, USED TO STORE THE
+C         IN IWORK      ACCUMULATED NUMBER OF REPEATED STEPS DUE TO
+C                       THE SENSITIVITY ANALYSIS..
+C                         NRS(1) = TOTAL NUMBER OF REPEATED STEPS,
+C                         NRS(2),... = NUMBER OF REPEATED STEPS DUE TO
+C                                      MODEL PARAMETER 1,...
+C
+C----------------------------------------------------------------------
+C PART II.  OTHER ROUTINES CALLABLE.
+C
+C THE FOLLOWING ARE OPTIONAL CALLS WHICH THE USER MAY MAKE TO
+C GAIN ADDITIONAL CAPABILITIES IN CONJUNCTION WITH ODESSA.
+C (THE ROUTINES XSETUN AND XSETF ARE DESIGNED TO CONFORM TO THE
+C SLATEC ERROR HANDLING PACKAGE.)
+C
+C    FORM OF CALL                  FUNCTION
+C  CALL XSETUN(LUN)          SET THE LOGICAL UNIT NUMBER, LUN, FOR
+C                            OUTPUT OF MESSAGES FROM ODESSA, IF
+C                            THE DEFAULT IS NOT DESIRED.
+C                            THE DEFAULT VALUE OF LUN IS 6.
+C
+C  CALL XSETF(MFLAG)         SET A FLAG TO CONTROL THE PRINTING OF
+C                            MESSAGES BY ODESSA..
+C                            MFLAG = 0 MEANS DO NOT PRINT. (DANGER..
+C                            THIS RISKS LOSING VALUABLE INFORMATION.)
+C                            MFLAG = 1 MEANS PRINT (THE DEFAULT).
+C
+C                            EITHER OF THE ABOVE CALLS MAY BE MADE AT
+C                            ANY TIME AND WILL TAKE EFFECT IMMEDIATELY.
+C
+C  CALL SVCOM (RSAV, ISAV)   STORE IN RSAV AND ISAV THE CONTENTS
+C                            OF THE INTERNAL COMMON BLOCKS USED BY
+C                            ODESSA (SEE PART III BELOW).
+C                            RSAV MUST BE A REAL ARRAY OF LENGTH 222
+C                            OR MORE, AND ISAV MUST BE AN INTEGER
+C                            ARRAY OF LENGTH 54 OR MORE.
+C
+C  CALL RSCOM (RSAV, ISAV)   RESTORE, FROM RSAV AND ISAV, THE CONTENTS
+C                            OF THE INTERNAL COMMON BLOCKS USED BY
+C                            ODESSA.  PRESUMES A PRIOR CALL TO SVCOM
+C                            WITH THE SAME ARGUMENTS.
+C
+C                            SVCOM AND RSCOM ARE USEFUL IF
+C                            INTERRUPTING A RUN AND RESTARTING
+C                            LATER, OR ALTERNATING BETWEEN TWO OR
+C                            MORE PROBLEMS KppSolveD WITH ODESSA.
+C
+C  CALL INTDY(,,,,,)         PROVIDE DERIVATIVES OF Y, OF VARIOUS
+C       (SEE BELOW)          ORDERS, AT A SPECIFIED POINT T, IF
+C                            DESIRED.  IT MAY BE CALLED ONLY AFTER
+C                            A SUCCESSFUL RETURN FROM ODESSA.
+C
+C THE DETAILED INSTRUCTIONS FOR USING INTDY ARE AS FOLLOWS.
+C THE FORM OF THE CALL IS..
+C
+C  CALL INTDY (T, K, RWORK(21), NYH, DKY, IFLAG)
+C
+C THE INPUT PARAMETERS ARE..
+C
+C T        = VALUE OF INDEPENDENT VARIABLE WHERE ANSWERS ARE DESIRED
+C            (NORMALLY THE SAME AS THE T LAST RETURNED BY ODESSA).
+C            FOR VALID RESULTS, T MUST LIE BETWEEN TCUR - HU AND TCUR.
+C            (SEE OPTIONAL OUTPUTS FOR TCUR AND HU.)
+C K        = INTEGER ORDER OF THE DERIVATIVE DESIRED.  K MUST SATISFY
+C            0 .LE. K .LE. NQCUR, WHERE NQCUR IS THE CURRENT ORDER
+C            (SEE OPTIONAL OUTPUTS).  THE CAPABILITY CORRESPONDING
+C            TO K = 0, I.E. COMPUTING Y(T), IS ALREADY PROVIDED
+C            BY ODESSA DIRECTLY.  SINCE NQCUR .GE. 1, THE FIRST
+C            DERIVATIVE DY/DT IS ALWAYS AVAILABLE WITH INTDY.
+C RWORK(21) = THE BASE ADDRESS OF THE HISTORY ARRAY YH.
+C NYH      = COLUMN LENGTH OF YH, EQUAL TO THE TOTAL NUMBER OF
+C            DEPENDENT VARIABLES. IF ISOPT = 0, NYH = N. IF ISOPT = 1,
+C            NYH = N * (NPAR + 1).
+C
+C THE OUTPUT PARAMETERS ARE..
+C
+C DKY      = A REAL ARRAY OF LENGTH NYH CONTAINING THE COMPUTED VALUE
+C            OF THE K-TH DERIVATIVE OF Y(T).
+C IFLAG    = INTEGER FLAG, RETURNED AS 0 IF K AND T WERE LEGAL,
+C            -1 IF K WAS ILLEGAL, AND -2 IF T WAS ILLEGAL.
+C            ON AN ERROR RETURN, A MESSAGE IS ALSO WRITTEN.
+C----------------------------------------------------------------------
+C PART III.  COMMON BLOCKS.
+C
+C IF ODESSA IS TO BE USED IN AN OVERLAY SITUATION, THE USER
+C MUST DECLARE, IN THE PRIMARY OVERLAY, THE VARIABLES IN..
+C  (1) THE CALL SEQUENCE TO ODESSA,
+C  (2) THE THREE INTERNAL COMMON BLOCKS
+C        /ODE001/  OF LENGTH  258  (219 DOUBLE PRECISION WORDS
+C                        FOLLOWED BY 39 INTEGER WORDS),
+C        /ODE002/  OF LENGTH 14 (3 DOUBLE PRECISION WORDS FOLLOWED
+C                        BY 11 INTEGER WORDS),
+C        /EH0001/  OF LENGTH  2 (INTEGER WORDS).
+C
+C IF ODESSA IS USED ON A SYSTEM IN WHICH THE CONTENTS OF INTERNAL
+C COMMON BLOCKS ARE NOT PRESERVED BETWEEN CALLS, THE USER SHOULD
+C DECLARE THE ABOVE THREE COMMON BLOCKS IN HIS MAIN PROGRAM TO INSURE
+C THAT THEIR CONTENTS ARE PRESERVED.
+C
+C IF THE SOLUTION OF A GIVEN PROBLEM BY ODESSA IS TO BE INTERRUPTED
+C AND THEN LATER CONTINUED, SUCH AS WHEN RESTARTING AN INTERRUPTED RUN
+C OR ALTERNATING BETWEEN TWO OR MORE PROBLEMS, THE USER SHOULD SAVE,
+C FOLLOWING THE RETURN FROM THE LAST ODESSA CALL PRIOR TO THE
+C INTERRUPTION, THE CONTENTS OF THE CALL SEQUENCE VARIABLES AND THE
+C INTERNAL COMMON BLOCKS, AND LATER RESTORE THESE VALUES BEFORE THE
+C NEXT ODESSA CALL FOR THAT PROBLEM.  TO SAVE AND RESTORE THE COMMON
+C BLOCKS, USE SUBROUTINES SVCOM AND RSCOM (SEE PART II ABOVE).
+C
+C----------------------------------------------------------------------
+C PART IV.  OPTIONALLY REPLACEABLE KppSolveR ROUTINES.
+C
+C BELOW ARE DESCRIPTIONS OF TWO ROUTINES IN THE ODESSA PACKAGE WHICH
+C RELATE TO THE MEASUREMENT OF ERRORS.  EITHER ROUTINE CAN BE
+C REPLACED BY A USER-SUPPLIED VERSION, IF DESIRED. HOWEVER, SINCE SUCH
+C A REPLACEMENT MAY HAVE A MAJOR IMPACT ON PERFORMANCE, IT SHOULD BE
+C DONE ONLY WHEN ABSOLUTELY NECESSARY, AND ONLY WITH GREAT CAUTION.
+C (NOTE.. THE MEANS BY WHICH THE PACKAGE VERSION OF A ROUTINE IS
+C SUPERSEDED BY THE USER-S VERSION MAY BE SYSTEM-DEPENDENT.)
+C
+C (A) EWSET.
+C THE FOLLOWING SUBROUTINE IS CALLED JUST BEFORE EACH INTERNAL
+C INTEGRATION STEP, AND SETS THE ARRAY OF ERROR WEIGHTS, EWT, AS
+C DESCRIBED UNDER ITOL/RTOL/ATOL ABOVE..
+C    SUBROUTINE EWSET (NYH, ITOL, RTOL, ATOL, YCUR, EWT)
+C WHERE NEQ, ITOL, RTOL, AND ATOL ARE AS IN THE ODESSA CALL SEQUENCE,
+C YCUR CONTAINS THE CURRENT DEPENDENT VARIABLE VECTOR, AND
+C EWT IS THE ARRAY OF WEIGHTS SET BY EWSET.
+C
+C IF THE USER SUPPLIES THIS SUBROUTINE, IT MUST RETURN IN EWT(I)
+C (I = 1,...,NYH) A POSITIVE QUANTITY SUITABLE FOR COMPARING ERRORS
+C IN Y(I) TO.  THE EWT ARRAY RETURNED BY EWSET IS PASSED TO THE
+C VNORM ROUTINE (SEE BELOW), AND ALSO USED BY ODESSA IN THE COMPUTATION
+C OF THE OPTIONAL OUTPUT IMXER, THE DIAGONAL JACOBIAN APPROXIMATION,
+C AND THE INCREMENTS FOR DIFFERENCE QUOTIENT JACOBIANS.
+C
+C IN THE USER-SUPPLIED VERSION OF EWSET, IT MAY BE DESIRABLE TO USE
+C THE CURRENT VALUES OF DERIVATIVES OF Y.  DERIVATIVES UP TO ORDER NQ
+C ARE AVAILABLE FROM THE HISTORY ARRAY YH, DESCRIBED ABOVE UNDER
+C OPTIONAL OUTPUTS.  IN EWSET, YH IS IDENTICAL TO THE YCUR ARRAY,
+C EXTENDED TO NQ + 1 COLUMNS WITH A COLUMN LENGTH OF NYH AND SCALE
+C FACTORS OF H**J/FACTORIAL(J).  ON THE FIRST CALL FOR THE PROBLEM,
+C GIVEN BY NST = 0, NQ IS 1 AND H IS TEMPORARILY SET TO 1.0.
+C THE QUANTITIES NQ, NYH, H, AND NST CAN BE OBTAINED BY INCLUDING
+C IN EWSET THE STATEMENTS..
+C    DOUBLE PRECISION H, RLS
+C    COMMON /ODE001/ RLS(219),ILS(39)
+C    NQ = ILS(35)
+C    NYH = ILS(14)
+C    NST = ILS(36)
+C    H = RLS(213)
+C THUS, FOR EXAMPLE, THE CURRENT VALUE OF DY/DT CAN BE OBTAINED AS
+C YCUR(NYH+I)/H  (I=1,...,N)  (AND THE DIVISION BY H IS
+C UNNECESSARY WHEN NST = 0).
+C
+C (B) VNORM.
+C THE FOLLOWING IS A REAL FUNCTION ROUTINE WHICH COMPUTES THE WEIGHTED
+C ROOT-MEAN-SQUARE NORM OF A VECTOR V..
+C    D = VNORM (LV, V, W)
+C WHERE..
+C  LV = THE LENGTH OF THE VECTOR,
+C  V = REAL ARRAY OF LENGTH N CONTAINING THE VECTOR,
+C  W = REAL ARRAY OF LENGTH N CONTAINING WEIGHTS,
+C  D = SQRT( (1/N) * SUM(V(I)*W(I))**2 ).
+C VNORM IS CALLED WITH LV = N AND WITH W(I) = 1.0/EWT(I), WHERE
+C EWT IS AS SET BY SUBROUTINE EWSET.
+C
+C IF THE USER SUPPLIES THIS FUNCTION, IT SHOULD RETURN A NON-NEGATIVE
+C VALUE OF VNORM SUITABLE FOR USE IN THE ERROR CONTROL IN ODESSA.
+C NONE OF THE ARGUMENTS SHOULD BE ALTERED BY VNORM.
+C FOR EXAMPLE, A USER-SUPPLIED VNORM ROUTINE MIGHT..
+C  -SUBSTITUTE A MAX-NORM OF (V(I)*W(I)) FOR THE RMS-NORM, OR
+C  -IGNORE SOME COMPONENTS OF V IN THE NORM, WITH THE EFFECT OF
+C   SUPPRESSING THE ERROR CONTROL ON THOSE COMPONENTS OF Y.
+C----------------------------------------------------------------------
+C OTHER ROUTINES IN THE ODESSA PACKAGE.
+C
+C IN ADDITION TO SUBROUTINE ODESSA, THE ODESSA PACKAGE INCLUDES THE
+C FOLLOWING SUBROUTINES AND FUNCTION ROUTINES..
+C  INTDY   COMPUTES AN INTERPOLATED VALUE OF THE Y VECTOR AT T = TOUT.
+C  STODE   IS THE CORE INTEGRATOR, WHICH DOES ONE STEP OF THE
+C          INTEGRATION AND THE ASSOCIATED ERROR CONTROL.
+C  STESA   MANAGES THE SOLUTION OF THE SENSITIVITY FUNCTIONS.
+C  CFODE   SETS ALL METHOD COEFFICIENTS AND TEST CONSTANTS.
+C  PREPJ   COMPUTES AND PREPROCESSES THE JACOBIAN MATRIX J = DF/DY
+C          AND THE NEWTON ITERATION MATRIX P = I - H*L0*J.
+C          IT IS ALSO CALLED BY SPRIME (WITH JOPT = 1) TO JUST
+C          COMPUTE THE JACOBIAN MATRIX.
+C  PREPDF  COMPUTES THE INHOMOGENEITY MATRIX DF/DP.
+C  SPRIME  DEFINES THE SYSTEM OF SENSITIVITY EQUATIONS.
+C  SOLSY   MANAGES SOLUTION OF LINEAR SYSTEM IN CHORD ITERATION.
+C  EWSET   SETS THE ERROR WEIGHT VECTOR EWT BEFORE EACH STEP.
+C  VNORM   COMPUTES THE WEIGHTED R.M.S. NORM OF A VECTOR.
+C  SVCOM AND RSCOM  ARE USER-CALLABLE ROUTINES TO SAVE AND RESTORE,
+C          RESPECTIVELY, THE CONTENTS OF THE INTERNAL COMMON BLOCKS.
+C  DGEFA AND DGESL  ARE ROUTINES FROM LINPACK FOR SOLVING FULL
+C          SYSTEMS OF LINEAR ALGEBRAIC EQUATIONS.
+C  DGBFA AND DGBSL  ARE ROUTINES FROM LINPACK FOR SOLVING BANDED
+C          LINEAR SYSTEMS.
+C  DAXPY, DSCAL, IDAMAX, AND DDOT  ARE BASIC LINEAR ALGEBRA MODULES
+C          (BLAS) USED BY THE ABOVE LINPACK ROUTINES.
+C  D1MACH  COMPUTES THE UNIT ROUNDOFF IN A MACHINE-INDEPENDENT MANNER.
+C  XERR, XSETUN, AND XSETF  HANDLE THE PRINTING OF ALL ERROR
+C          MESSAGES AND WARNINGS.
+C NOTE..  VNORM, IDAMAX, DDOT, AND D1MACH ARE FUNCTION ROUTINES.
+C ALL THE OTHERS ARE SUBROUTINES.
+C
+C THE FORTRAN GENERIC INTRINSIC FUNCTIONS USED BY ODESSA ARE..
+C ABS, MAX, MIN, REAL, MOD, SIGN, SQRT, AND WRITE
+C
+C A BLOCK DATA SUBPROGRAM IS ALSO INCLUDED WITH THE PACKAGE,
+C FOR LOADING SOME OF THE VARIABLES IN INTERNAL COMMON.
+C
+C----------------------------------------------------------------------
+C PART V.  GENERAL REMARKS
+C
+C THIS SECTION HIGHLIGHTS THE BASIC DIFFERENCES BETWEEN THE ORIGINAL
+C LSODE PACKAGE AND THE ODESSA MODIFICATION. THIS IS PROVIDED AS A
+C SERVICE TO EXPERIENCED LSODE USERS TO EXPEDITE FAMILIARIZATION WITH
+C ODESSA.
+C
+C (A). ORIGINAL SUBROUTINES AND FUNCTIONS.
+C
+C      OF THE ORIGINAL 22 SUBROUTINES AND FUNCTIONS USED IN THE LSODE
+C      PACKAGE, ALL ARE USED BY ODESSA, WITH THE FOLLOWING HAVING BEEN
+C      MODIFIED..
+C
+C      LSODE  THE ORIGINAL DRIVER SUBROUTINE FOR THE LSODE PACKAGE IS
+C             EXTENSIVELY MODIFIED AND RENAMED ODESSA, WHICH NOW
+C             CONTAINS A CALL TO SPRIME TO ESTABLISH INITIAL CONDITIONS
+C             FOR THE SENSITIVITY CALCULATIONS.
+C
+C      STODE  THE ONE STEP INTEGRATOR IS SLIGHTLY MODIFIED AND RETAINS
+C             ITS ORIGINAL NAME. IT NOW CONTAINS THE CALL TO STESA,
+C             AND ALSO CALLS SPRIME IF KFLAG .LE. -3.
+C
+C      PREPJ  ALSO NAMED PREPJ IN ODESSA IS SLIGHTLY MODIFIED TO ALLOW
+C             FOR THE CALCULATION OF JACOBIAN WITH NO PREPROCESSING
+C             (JOPT = 1).
+C
+C (B). NEW SUBROUTINES.
+C
+C      IN ADDITION TO THE CHANGES NOTED ABOVE, THREE NEW SUBROUTINES
+C      HAVE BEEN INTRODUCED (SEE STESA, SPRIME, AND PREPDF AS DESCRIBED
+C      IN PART IV. ABOVE).
+C
+C (C). COMMON BLOCKS.
+C
+C      /LS0001/  RETAINS THE SAME LENGTH AND IS RENAMED /ODE001/;
+C                HOWEVER THE REAL ARRAY ROWNS(209) IS SHORTENED TO A
+C                LENGTH OF (173) REAL WORDS, ALLOWING THE REMOVAL OF
+C                TESCO(3,12) WHICH IS NOW PASSED FROM STODE TO STESA.
+C                IN ADDITION, THE INTEGER ARRAY IOWNS(6) IS SHORTENED
+C                TO A LENGTH OF (4) INTEGER WORDS, ALLOWING THE REMOVAL
+C                OF IALTH AND LMAX WHICH ARE NOW PASSED FROM STODE TO
+C                STESA.
+C
+C      /ODE002/  ADDED COMMON BLOCK FOR VARIABLES IMPORTANT TO
+C                SENSITIVITY ANALYSIS (SEE PART III. ABOVE). A BLOCK
+C                DATA PROGRAM IS NOT REQUIRED FOR THIS COMMON BLOCK.
+C
+C      SVCOM,RSCOM  THESE TWO SUBROUTINES ARE MODIFIED TO HANDLE
+C                   COMMON BLOCK /ODE002/ AS WELL.
+C
+C (D). OPTIONAL INPUTS.
+C
+C      THE FULL SET OF OPTIONAL INPUTS AVAILABLE IN LSODE IS ALSO
+C      AVAILABLE IN ODESSA, WITH THE EXCEPTION THAT THE NUMBER OF ODE'S
+C      IN THE MODEL (NEQ(1)), MAY NOT BE CHANGED DURING THE PROBLEM.
+C      IN ODESSA, NYH NOW REFERS TO THE TOTAL NUMBER OF FIRST-ORDER
+C      ODE'S (MODEL AND SENSITIVITY EQUATIONS) WHICH IS EQUAL TO
+C      NEQ(1) IF ISOPT = 0, OR NEQ(1)*(NEQ(2)+1) IF ISOPT = 1.
+C      NEQ(1), NEQ(2), AND NYH ARE NOT ALLOWED TO CHANGE DURING
+C      THE COURSE OF AN INTEGRATION.
+C
+C (E). OPTIONAL OUTPUTS.
+C
+C      THE FULL SET OF OPTIONAL OUTPUTS AVAILABLE IN LSODE IS ALSO
+C      AVAILABLE IN ODESSA. IN ADDITION, IWORK(19) AND IWORK(20) ARE
+C      LOADED WITH NDFE AND NSPE, RESPECTIVELY, UPON OUTPUT. THE TOTAL
+C      NUMBER OF LU DECOMPOSITIONS OF THE PROCESSED JACOBIAN IS EQUAL
+C      TO NJE - NSPE.
+C-----------------------------------------------------------------------
+      SUBROUTINE ODESSA (F, DF, NEQ, Y, PAR, T, TOUT, ITOL, RTOL, ATOL,
+     1   ITASK, ISTATE, IOPT, RWORK, LRW, IWORK, LIW, JAC, MF)
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+      LOGICAL IHIT
+      EXTERNAL F, DF, JAC, PREPJ, SOLSY, PREPDF
+      DIMENSION NEQ(*), Y(*), PAR(*), RTOL(*), ATOL(*), IOPT(*),
+     1   RWORK(LRW), IWORK(LIW), MORD(2)
+C-----------------------------------------------------------------------
+C THIS IS THE SEPTEMBER 1, 1986 VERSION OF ODESSA..
+C AN ORDINARY DIFFERENTIAL EQUATION KppSolveR WITH EXPLICIT SIMULTANEOUS
+C SENSITIVITY ANALYSIS.
+C
+C THIS PACKAGE IS A MODIFICATION OF THE AUGUST 13, 1981 VERSION OF
+C LSODE.. LIVERMORE KppSolveR FOR ORDINARY DIFFERENTIAL EQUATIONS.
+C THIS VERSION IS IN DOUBLE PRECISION.
+C
+C ODESSA KppSolveS FOR THE FIRST-ORDER SENSITIVITY COEFFICIENTS..
+C    DY(I)/DP, FOR A SINGLE PARAMETER, OR,
+C    DY(I)/DP(J), FOR MULTIPLE PARAMETERS,
+C ASSOCIATED WITH A SYSTEM OF ORDINARY DIFFERENTIAL EQUATIONS..
+C    DY(T)/DT = F(Y,T;P).
+C-----------------------------------------------------------------------
+C REFERENCES...
+C
+C  1. JORGE R. LEIS AND MARK A. KRAMER, THE SIMULTANEOUS SOLUTION AND
+C     EXPLICIT SENSITIVITY ANALYSIS OF SYSTEMS DESCRIBED BY ORDINARY
+C     DIFFERENTIAL EQUATIONS, SUBMITTED TO ACM TRANS. MATH. SOFTWARE,
+C     (1985).
+C
+C  2. JORGE R. LEIS AND MARK A. KRAMER, ODESSA - AN ORDINARY
+C     DIFFERENTIAL EQUATION KppSolveR WITH EXPLICIT SIMULTANEOUS
+C     SENSITIVITY ANALYSIS, SUBMITTED TO ACM TRANS. MATH. SOFTWARE.
+C     (1985).
+C
+C  3. ALAN C. HINDMARSH,  LSODE AND LSODI,  TWO NEW INITIAL VALUE
+C     ORDINARY DIFFERENTIAL EQUATION KppSolveRS, ACM-SIGNUM NEWSLETTER,
+C     VOL. 15, NO. 4 (1980), PP. 10-11.
+C-----------------------------------------------------------------------
+C THE FOLLOWING INTERNAL COMMON BLOCKS CONTAIN
+C (A) VARIABLES WHICH ARE LOCAL TO ANY SUBROUTINE BUT WHOSE VALUES MUST
+C    BE PRESERVED BETWEEN CALLS TO THE ROUTINE (OWN VARIABLES), AND
+C (B) VARIABLES WHICH ARE COMMUNICATED BETWEEN SUBROUTINES.
+C THE STRUCTURE OF THE BLOCKS ARE AS FOLLOWS..  ALL REAL VARIABLES ARE
+C LISTED FIRST, FOLLOWED BY ALL INTEGERS.  WITHIN EACH TYPE, THE
+C VARIABLES ARE GROUPED WITH THOSE LOCAL TO SUBROUTINE ODESSA FIRST,
+C THEN THOSE LOCAL TO SUBROUTINE STODE, AND FINALLY THOSE USED
+C FOR COMMUNICATION.  THE BLOCKS ARE DECLARED IN SUBROUTINES ODESSA
+C INTDY, STODE, STESA, PREPJ, PREPDF, AND SOLSY.  GROUPS OF VARIABLES
+C ARE REPLACED BY DUMMY ARRAYS IN THE COMMON DECLARATIONS IN ROUTINES
+C WHERE THOSE VARIABLES ARE NOT USED.
+C-----------------------------------------------------------------------
+      COMMON /ODE001/ TRET, ROWNS(173),
+     1   TESCO(3,12), CCMAX, EL0, H, HMIN, HMXI, HU, RC, TN, UROUND,
+     2   ILLIN, INIT, LYH, LEWT, LACOR, LSAVF, LWM, LIWM,
+     3   MXSTEP, MXHNIL, NHNIL, NTREP, NSLAST, NYH, IOWNS(4),
+     4   IALTH, LMAX, ICF, IERPJ, IERSL, JCUR, JSTART, KFLAG, L, METH,
+     5   MITER, MAXORD, MAXCOR, MSBP, MXNCF, N, NQ, NST, NFE, NJE, NQU
+      COMMON /ODE002/ DUPS, DSMS, DDNS,
+     1   NPAR, LDFDP, LNRS,
+     2   ISOPT, NSV, NDFE, NSPE, IDF, IERSP, JOPT, KFLAGS
+      PARAMETER (ZERO=0.0D0,ONE=1.0D0,TWO=2.0D0,FOUR=4.0D0)
+      DATA  MORD(1),MORD(2)/12,5/, MXSTP0/500/, MXHNL0/10/
+C-----------------------------------------------------------------------
+C BLOCK A.
+C THIS CODE BLOCK IS EXECUTED ON EVERY CALL.
+C IT TESTS ISTATE AND ITASK FOR LEGALITY AND BRANCHES APPROPIATELY.
+C IF ISTATE .GT. 1 BUT THE FLAG INIT SHOWS THAT INITIALIZATION HAS
+C NOT YET BEEN DONE, AN ERROR RETURN OCCURS.
+C IF ISTATE = 1 AND TOUT = T, JUMP TO BLOCK G AND RETURN IMMEDIATELY.
+C-----------------------------------------------------------------------
+      IF (ISTATE .LT. 1 .OR. ISTATE .GT. 3) GO TO 601
+      IF (ITASK .LT. 1 .OR. ITASK .GT. 5) GO TO 602
+      IF (ISTATE .EQ. 1) GO TO 10
+      IF (INIT .EQ. 0) GO TO 603
+      IF (ISTATE .EQ. 2) GO TO 200
+      GO TO 20
+ 10   INIT = 0
+      IF (TOUT .EQ. T) GO TO 430
+ 20   NTREP = 0
+C-----------------------------------------------------------------------
+C BLOCK B.
+C THE NEXT CODE BLOCK IS EXECUTED FOR THE INITIAL CALL (ISTATE = 1),
+C OR FOR A CONTINUATION CALL WITH PARAMETER CHANGES (ISTATE = 3).
+C IT CONTAINS CHECKING OF ALL INPUTS AND VARIOUS INITIALIZATIONS.
+C
+C FIRST CHECK LEGALITY OF THE NON-OPTIONAL INPUTS NEQ, ITOL, IOPT,
+C MF, ML, AND MU.
+C-----------------------------------------------------------------------
+      IF (NEQ(1) .LE. 0) GO TO 604
+      IF (ISTATE .EQ. 1) GO TO 25
+      IF (NEQ(1) .NE. N) GO TO 605
+ 25   N = NEQ(1)
+      IF (ITOL .LT. 1 .OR. ITOL .GT. 4) GO TO 606
+      DO 26 I = 1,3
+ 26     IF (IOPT(I) .LT. 0 .OR. IOPT(I) .GT. 1) GO TO 607
+      ISOPT = IOPT(2)
+      IDF = IOPT(3)
+      NYH = N
+      NSV = 1
+      METH = MF/10
+      MITER = MF - 10*METH
+      IF (METH .LT. 1 .OR. METH .GT. 2) GO TO 608
+      IF (MITER .LT. 0 .OR. MITER .GT. 5) GO TO 608
+      IF (MITER .LE. 3) GO TO 30
+      ML = IWORK(1)
+      MU = IWORK(2)
+      IF (ML .LT. 0 .OR. ML .GE. N) GO TO 609
+      IF (MU .LT. 0 .OR. MU .GE. N) GO TO 610
+ 30   IF (ISOPT .EQ. 0) GO TO 32
+C CHECK LEGALITY OF THE NON-OPTIONAL INPUTS ISOPT, NPAR.
+C COMPUTE NUMBER OF SOLUTION VECTORS AND TOTAL NUMBER OF EQUATIONS.
+      IF (NEQ(2) .LE. 0) GO TO 628
+      IF (ISTATE .EQ. 1) GO TO 31
+      IF (NEQ(2) .NE. NPAR) GO TO 629
+ 31   NPAR = NEQ(2)
+      NSV = NPAR + 1
+      NYH = NSV * N
+      IF (MITER .EQ. 0 .OR. MITER .EQ. 3) GO TO 630
+C NEXT PROCESS AND CHECK THE OPTIONAL INPUTS. --------------------------
+ 32   IF (IOPT(1) .EQ. 1) GO TO 40
+      MAXORD = MORD(METH)
+      MXSTEP = MXSTP0
+      MXHNIL = MXHNL0
+      IF (ISTATE .EQ. 1) H0 = ZERO
+      HMXI = ZERO
+      HMIN = ZERO
+      GO TO 60
+ 40   MAXORD = IWORK(5)
+      IF (MAXORD .LT. 0) GO TO 611
+      IF (MAXORD .EQ. 0) MAXORD = 100
+      MAXORD = MIN(MAXORD,MORD(METH))
+      MXSTEP = IWORK(6)
+      IF (MXSTEP .LT. 0) GO TO 612
+      IF (MXSTEP .EQ. 0) MXSTEP = MXSTP0
+      MXHNIL = IWORK(7)
+      IF (MXHNIL .LT. 0) GO TO 613
+      IF (MXHNIL .EQ. 0) MXHNIL = MXHNL0
+      IF (ISTATE .NE. 1) GO TO 50
+      H0 = RWORK(5)
+      IF ((TOUT - T)*H0 .LT. ZERO) GO TO 614
+ 50   HMAX = RWORK(6)
+      IF (HMAX .LT. ZERO) GO TO 615
+      HMXI = ZERO
+      IF (HMAX .GT. ZERO) HMXI = ONE/HMAX
+      HMIN = RWORK(7)
+      IF (HMIN .LT. ZERO) GO TO 616
+C-----------------------------------------------------------------------
+C SET WORK ARRAY POINTERS AND CHECK LENGTHS LRW AND LIW.
+C POINTERS TO SEGMENTS OF RWORK AND IWORK ARE NAMED BY PREFIXING L TO
+C THE NAME OF THE SEGMENT.  E.G., THE SEGMENT YH STARTS AT RWORK(LYH).
+C SEGMENTS OF RWORK (IN ORDER) ARE DENOTED  YH, WM, EWT, SAVF, ACOR.
+C WORK SPACE FOR DFDP IS CONTAINED IN ACOR.
+C-----------------------------------------------------------------------
+ 60   LYH = 21
+      LWM = LYH + (MAXORD + 1)*NYH
+      IF (MITER .EQ. 0) LENWM = 0
+      IF (MITER .EQ. 1 .OR. MITER .EQ. 2) LENWM = N*N + 2
+      IF (MITER .EQ. 3) LENWM = N + 2
+      IF (MITER .GE. 4) LENWM = (2*ML + MU + 1)*N + 2
+      LEWT = LWM + LENWM
+      LSAVF = LEWT + NYH
+      LACOR = LSAVF + N
+      LDFDP = LACOR + N
+      LENRW = LACOR + NYH - 1
+      IWORK(17) = LENRW
+      LIWM = 1
+      LENIW = 20 + N
+      IF (MITER .EQ. 0 .OR. MITER .EQ. 3) LENIW = 20
+      LNRS = LENIW + LIWM
+      IF (ISOPT .EQ. 1) LENIW = LNRS + NPAR
+      IWORK(18) = LENIW
+      IF (LENRW .GT. LRW) GO TO 617
+      IF (LENIW .GT. LIW) GO TO 618
+C CHECK RTOL AND ATOL FOR LEGALITY. ------------------------------------
+      RTOLI = RTOL(1)
+      ATOLI = ATOL(1)
+      DO 70 I = 1,NYH
+        IF (ITOL .GE. 3) RTOLI = RTOL(I)
+        IF (ITOL .EQ. 2 .OR. ITOL .EQ. 4) ATOLI = ATOL(I)
+        IF (RTOLI .LT. ZERO) GO TO 619
+        IF (ATOLI .LT. ZERO) GO TO 620
+ 70     CONTINUE
+      IF (ISTATE .EQ. 1) GO TO 100
+C IF ISTATE = 3, SET FLAG TO SIGNAL PARAMETER CHANGES TO STODE. --------
+      JSTART = -1
+      IF (NQ .LE. MAXORD) GO TO 90
+C MAXORD WAS REDUCED BELOW NQ.  COPY YH(*,MAXORD+2) INTO SAVF. ---------
+      DO 80 I = 1,N
+ 80     RWORK(I+LSAVF-1) = RWORK(I+LWM-1)
+C RELOAD WM(1) = RWORK(LWM), SINCE LWM MAY HAVE CHANGED. ---------------
+ 90   IF (MITER .GT. 0) RWORK(LWM) = SQRT(UROUND)
+      GO TO 200
+C-----------------------------------------------------------------------
+C BLOCK C.
+C THE NEXT BLOCK IS FOR THE INITIAL CALL ONLY (ISTATE = 1).
+C IT CONTAINS ALL REMAINING INITIALIZATIONS, THE INITIAL CALL TO F,
+C THE INITIAL CALL TO SPRIME IF ISOPT = 1,
+C AND THE CALCULATION OF THE INITIAL STEP SIZE.
+C THE ERROR WEIGHTS IN EWT ARE INVERTED AFTER BEING LOADED.
+C-----------------------------------------------------------------------
+ 100  UROUND = D1MACH(4)
+      TN = T
+      IF (ITASK .NE. 4 .AND. ITASK .NE. 5) GO TO 105
+      TCRIT = RWORK(1)
+      IF ((TCRIT - TOUT)*(TOUT - T) .LT. ZERO) GO TO 625
+      IF (H0 .NE. ZERO .AND. (T + H0 - TCRIT)*H0 .GT. ZERO)
+     1   H0 = TCRIT - T
+ 105  JSTART = 0
+      IF (MITER .GT. 0) RWORK(LWM) = SQRT(UROUND)
+      NHNIL = 0
+      NST = 0
+      NJE = 0
+      NSLAST = 0
+      HU = ZERO
+      NQU = 0
+      CCMAX = 0.3D0
+      MAXCOR = 3
+      IF (ISOPT .EQ. 1) MAXCOR = 4
+      MSBP = 20
+      MXNCF = 10
+C INITIAL CALL TO F.  (LF0 POINTS TO YH(1,2) AND LOADS IN VALUES).
+      LF0 = LYH + NYH
+      CALL F (NEQ, T, Y, PAR, RWORK(LF0))
+      NFE = 1
+      DUPS = ZERO
+      DSMS = ZERO
+      DDNS = ZERO
+      NDFE = 0
+      NSPE = 0
+      IF (ISOPT .EQ. 0) GO TO 114
+C INITIALIZE COUNTS FOR REPEATED STEPS DUE TO SENSITIVITY ANALYSIS.
+      DO 110 J = 1,NSV
+ 110    IWORK(J + LNRS - 1) = 0
+C LOAD THE INITIAL VALUE VECTOR IN YH. ---------------------------------
+ 114  DO 115 I = 1,NYH
+ 115    RWORK(I+LYH-1) = Y(I)
+C LOAD AND INVERT THE EWT ARRAY.  (H IS TEMPORARILY SET TO ONE.) -------
+      NQ = 1
+      H = ONE
+      CALL EWSET (NYH, ITOL, RTOL, ATOL, RWORK(LYH), RWORK(LEWT))
+      DO 120 I = 1,NYH
+        IF (RWORK(I+LEWT-1) .LE. ZERO) GO TO 621
+ 120    RWORK(I+LEWT-1) = ONE/RWORK(I+LEWT-1)
+      IF (ISOPT .EQ. 0) GO TO 125
+C CALL SPRIME TO LOAD FIRST-ORDER SENSITIVITY DERIVATIVES INTO
+C REMAINING YH(*,2) POSITIONS.
+      CALL SPRIME (NEQ, Y, RWORK(LYH), NYH, N, NSV, RWORK(LWM),
+     1   IWORK(LIWM), RWORK(LEWT), RWORK(LF0), RWORK(LACOR),
+     2   RWORK(LDFDP), PAR, F, JAC, DF, PREPJ, PREPDF)
+      IF (IERSP .EQ. -1) GO TO 631
+      IF (IERSP .EQ. -2) GO TO 632
+C-----------------------------------------------------------------------
+C THE CODING BELOW COMPUTES THE STEP SIZE, H0, TO BE ATTEMPTED ON THE
+C FIRST STEP, UNLESS THE USER HAS SUPPLIED A VALUE FOR THIS.
+C FIRST CHECK THAT TOUT - T DIFFERS SIGNIFICANTLY FROM ZERO.
+C A SCALAR TOLERANCE QUANTITY TOL IS COMPUTED, AS MAX(RTOL(I))
+C IF THIS IS POSITIVE, OR MAX(ATOL(I)/ABS(Y(I))) OTHERWISE, ADJUSTED
+C SO AS TO BE BETWEEN 100*UROUND AND 1.0E-3. ONLY THE ORIGINAL
+C SOLUTION VECTOR IS CONSIDERED IN THIS CALCULATION (ISOPT = 0 OR 1).
+C THEN THE COMPUTED VALUE H0 IS GIVEN BY..
+C                                     NEQ
+C  H0**2 = TOL / ( W0**-2 + (1/NEQ) * SUM ( F(I)/YWT(I) )**2  )
+C                                      1
+C WHERE  W0     = MAX ( ABS(T), ABS(TOUT) ),
+C        F(I)   = I-TH COMPONENT OF INITIAL VALUE OF F,
+C        YWT(I) = EWT(I)/TOL  (A WEIGHT FOR Y(I)).
+C THE SIGN OF H0 IS INFERRED FROM THE INITIAL VALUES OF TOUT AND T.
+C-----------------------------------------------------------------------
+ 125  IF (H0 .NE. ZERO) GO TO 180
+      TDIST = ABS(TOUT - T)
+      W0 = MAX(ABS(T),ABS(TOUT))
+      IF (TDIST .LT. TWO*UROUND*W0) GO TO 622
+      TOL = RTOL(1)
+      IF (ITOL .LE. 2) GO TO 140
+      DO 130 I = 1,N
+ 130    TOL = MAX(TOL,RTOL(I))
+ 140   IF (TOL .GT. ZERO) GO TO 160
+      ATOLI = ATOL(1)
+      DO 150 I = 1,N
+        IF (ITOL .EQ. 2 .OR. ITOL .EQ. 4) ATOLI = ATOL(I)
+        AYI = ABS(Y(I))
+        IF (AYI .NE. ZERO) TOL = MAX(TOL,ATOLI/AYI)
+ 150    CONTINUE
+ 160   TOL = MAX(TOL,100.0D0*UROUND)
+      TOL = MIN(TOL,0.001D0)
+      SUM = VNORM (N, RWORK(LF0), RWORK(LEWT))
+      SUM = ONE/(TOL*W0*W0) + TOL*SUM**2
+      H0 = ONE/SQRT(SUM)
+      H0 = MIN(H0,TDIST)
+      H0 = SIGN(H0,TOUT-T)
+C ADJUST H0 IF NECESSARY TO MEET HMAX BOUND. ---------------------------
+ 180   RH = ABS(H0)*HMXI
+      IF (RH .GT. ONE) H0 = H0/RH
+C LOAD H WITH H0 AND SCALE YH(*,2) BY H0. ------------------------------
+      H = H0
+      DO 190 I = 1,NYH
+ 190    RWORK(I+LF0-1) = H0*RWORK(I+LF0-1)
+      GO TO 270
+C-----------------------------------------------------------------------
+C BLOCK D.
+C THE NEXT CODE BLOCK IS FOR CONTINUATION CALLS ONLY (ISTATE = 2 OR 3)
+C AND IS TO CHECK STOP CONDITIONS BEFORE TAKING A STEP.
+C-----------------------------------------------------------------------
+ 200   NSLAST = NST
+      GO TO (210, 250, 220, 230, 240), ITASK
+ 210   IF ((TN - TOUT)*H .LT. ZERO) GO TO 250
+      CALL INTDY (TOUT, 0, RWORK(LYH), NYH, Y, IFLAG)
+      IF (IFLAG .NE. 0) GO TO 627
+      T = TOUT
+      GO TO 420
+ 220   TP = TN - HU*(ONE + 100.0D0*UROUND)
+      IF ((TP - TOUT)*H .GT. ZERO) GO TO 623
+      IF ((TN - TOUT)*H .LT. ZERO) GO TO 250
+      GO TO 400
+ 230   TCRIT = RWORK(1)
+      IF ((TN - TCRIT)*H .GT. ZERO) GO TO 624
+      IF ((TCRIT - TOUT)*H .LT. ZERO) GO TO 625
+      IF ((TN - TOUT)*H .LT. ZERO) GO TO 245
+      CALL INTDY (TOUT, 0, RWORK(LYH), NYH, Y, IFLAG)
+      IF (IFLAG .NE. 0) GO TO 627
+      T = TOUT
+      GO TO 420
+ 240   TCRIT = RWORK(1)
+      IF ((TN - TCRIT)*H .GT. ZERO) GO TO 624
+ 245   HMX = ABS(TN) + ABS(H)
+      IHIT = ABS(TN - TCRIT) .LE. 100.0D0*UROUND*HMX
+      IF (IHIT) GO TO 400
+      TNEXT = TN + H*(ONE + FOUR*UROUND)
+      IF ((TNEXT - TCRIT)*H .LE. ZERO) GO TO 250
+      H = (TCRIT - TN)*(ONE - FOUR*UROUND)
+      IF (ISTATE .EQ. 2) JSTART = -2
+C-----------------------------------------------------------------------
+C BLOCK E.
+C THE NEXT BLOCK IS NORMALLY EXECUTED FOR ALL CALLS AND CONTAINS
+C THE CALL TO THE ONE-STEP CORE INTEGRATOR STODE.
+C
+C THIS IS A LOOPING POINT FOR THE INTEGRATION STEPS.
+C
+C FIRST CHECK FOR TOO MANY STEPS BEING TAKEN, UPDATE EWT (IF NOT AT
+C START OF PROBLEM), CHECK FOR TOO MUCH ACCURACY BEING REQUESTED, AND
+C CHECK FOR H BELOW THE ROUNDOFF LEVEL IN T.
+C TOLSF IS CALCULATED CONSIDERING ALL SOLUTION VECTORS.
+C-----------------------------------------------------------------------
+ 250   CONTINUE
+      IF ((NST-NSLAST) .GE. MXSTEP) GO TO 500
+      CALL EWSET (NYH, ITOL, RTOL, ATOL, RWORK(LYH), RWORK(LEWT))
+      DO 260 I = 1,NYH
+        IF (RWORK(I+LEWT-1) .LE. ZERO) GO TO 510
+ 260    RWORK(I+LEWT-1) = ONE/RWORK(I+LEWT-1)
+ 270   TOLSF = UROUND*VNORM (NYH, RWORK(LYH), RWORK(LEWT))
+      IF (TOLSF .LE. ONE) GO TO 280
+      TOLSF = TOLSF*2.0D0
+      IF (NST .EQ. 0) GO TO 626
+      GO TO 520
+ 280   IF (ADDX(TN,H) .NE. TN) GO TO 290
+      NHNIL = NHNIL + 1
+      IF (NHNIL .GT. MXHNIL) GO TO 290
+      CALL XERR ('ODESSA - WARNING..INTERNAL T (=R1) AND H (=R2) ARE',
+     1   101, 1, 0, 0, 0, 0, ZERO, ZERO)
+      CALL XERR ('SUCH THAT IN THE MACHINE, T + H = T ON THE NEXT STEP',
+     1   101, 1, 0, 0, 0, 0, ZERO, ZERO)
+      CALL XERR ('(H = STEP SIZE). KppSolveR WILL CONTINUE ANYWAY',
+     1   101, 1, 0, 0, 0, 2, TN, H)
+      IF (NHNIL .LT. MXHNIL) GO TO 290
+      CALL XERR ('ODESSA - ABOVE WARNING HAS BEEN ISSUED I1 TIMES.',
+     1   102, 1, 0, 0, 0, 0, ZERO, ZERO)
+      CALL XERR ('IT WILL NOT BE ISSUED AGAIN FOR THIS PROBLEM',
+     1   102, 1, 1, MXHNIL, 0, 0, ZERO,ZERO)
+ 290   CONTINUE
+C-----------------------------------------------------------------------
+C     CALL STODE(NEQ,Y,YH,NYH,YH,WM,IWM,EWT,SAVF,ACOR,PAR,NRS,
+C    1   F,JAC,DF,PREPJ,PREPDF,SOLSY)
+C-----------------------------------------------------------------------
+      CALL STODE (NEQ, Y, RWORK(LYH), NYH, RWORK(LYH), RWORK(LWM),
+     1   IWORK(LIWM), RWORK(LEWT), RWORK(LSAVF), RWORK(LACOR),
+     2   PAR, IWORK(LNRS), F, JAC, DF, PREPJ, PREPDF, SOLSY)
+      KGO = 1 - KFLAG
+      GO TO (300, 530, 540, 633), KGO
+C-----------------------------------------------------------------------
+C BLOCK F.
+C THE FOLLOWING BLOCK HANDLES THE CASE OF A SUCCESSFUL RETURN FROM THE
+C CORE INTEGRATOR (KFLAG = 0).  TEST FOR STOP CONDITIONS.
+C-----------------------------------------------------------------------
+ 300   INIT = 1
+      GO TO (310, 400, 330, 340, 350), ITASK
+C ITASK = 1.  IF TOUT HAS BEEN REACHED, INTERPOLATE. -------------------
+ 310   IF ((TN - TOUT)*H .LT. ZERO) GO TO 250
+      CALL INTDY (TOUT, 0, RWORK(LYH), NYH, Y, IFLAG)
+      T = TOUT
+      GO TO 420
+C ITASK = 3.  JUMP TO EXIT IF TOUT WAS REACHED. ------------------------
+ 330   IF ((TN - TOUT)*H .GE. ZERO) GO TO 400
+      GO TO 250
+C ITASK = 4.  SEE IF TOUT OR TCRIT WAS REACHED.  ADJUST H IF NECESSARY.
+ 340   IF ((TN - TOUT)*H .LT. ZERO) GO TO 345
+      CALL INTDY (TOUT, 0, RWORK(LYH), NYH, Y, IFLAG)
+      T = TOUT
+      GO TO 420
+ 345   HMX = ABS(TN) + ABS(H)
+      IHIT = ABS(TN - TCRIT) .LE. 100.0D0*UROUND*HMX
+      IF (IHIT) GO TO 400
+      TNEXT = TN + H*(ONE + FOUR*UROUND)
+      IF ((TNEXT - TCRIT)*H .LE. ZERO) GO TO 250
+      H = (TCRIT - TN)*(ONE - FOUR*UROUND)
+      JSTART = -2
+      GO TO 250
+C ITASK = 5.  SEE IF TCRIT WAS REACHED AND JUMP TO EXIT. ---------------
+ 350   HMX = ABS(TN) + ABS(H)
+      IHIT = ABS(TN - TCRIT) .LE. 100.0D0*UROUND*HMX
+C-----------------------------------------------------------------------
+C BLOCK G.
+C THE FOLLOWING BLOCK HANDLES ALL SUCCESSFUL RETURNS FROM ODESSA.
+C IF ITASK .NE. 1, Y IS LOADED FROM YH AND T IS SET ACCORDINGLY.
+C ISTATE IS SET TO 2, THE ILLEGAL INPUT COUNTER IS ZEROED, AND THE
+C OPTIONAL OUTPUTS ARE LOADED INTO THE WORK ARRAYS BEFORE RETURNING.
+C IF ISTATE = 1 AND TOUT = T, THERE IS A RETURN WITH NO ACTION TAKEN,
+C EXCEPT THAT IF THIS HAS HAPPENED REPEATEDLY, THE RUN IS TERMINATED.
+C-----------------------------------------------------------------------
+ 400  DO 410 I = 1,NYH
+ 410    Y(I) = RWORK(I+LYH-1)
+      T = TN
+      IF (ITASK .NE. 4 .AND. ITASK .NE. 5) GO TO 420
+      IF (IHIT) T = TCRIT
+ 420   ISTATE = 2
+      ILLIN = 0
+      RWORK(11) = HU
+      RWORK(12) = H
+      RWORK(13) = TN
+      IWORK(11) = NST
+      IWORK(12) = NFE
+      IWORK(13) = NJE
+      IWORK(14) = NQU
+      IWORK(15) = NQ
+      IF (ISOPT .EQ. 0) RETURN
+      IWORK(19) = NDFE
+      IWORK(20) = NSPE
+      RETURN
+ 430   NTREP = NTREP + 1
+      IF (NTREP .LT. 5) RETURN
+      CALL XERR ('ODESSA -- REPEATED CALLS WITH ISTATE = 1 AND
+     1TOUT = T (=R1)', 301, 1, 0, 0, 0, 1, T, ZERO)
+      GO TO 800
+C-----------------------------------------------------------------------
+C BLOCK H.
+C THE FOLLOWING BLOCK HANDLES ALL UNSUCCESSFUL RETURNS OTHER THAN
+C THOSE FOR ILLEGAL INPUT.  FIRST THE ERROR MESSAGE ROUTINE IS CALLED.
+C IF THERE WAS AN ERROR TEST OR CONVERGENCE TEST FAILURE, IMXER IS SET.
+C THEN Y IS LOADED FROM YH, T IS SET TO TN, AND THE ILLEGAL INPUT
+C COUNTER ILLIN IS SET TO 0.  THE OPTIONAL OUTPUTS ARE LOADED INTO
+C THE WORK ARRAYS BEFORE RETURNING.
+C-----------------------------------------------------------------------
+C THE MAXIMUM NUMBER OF STEPS WAS TAKEN BEFORE REACHING TOUT. ----------
+ 500  CALL XERR ('ODESSA - AT CURRENT T (=R1), MXSTEP (=I1) STEPS',
+     1   201, 1, 0, 0, 0, 0, ZERO,ZERO)
+      CALL XERR ('TAKEN ON THIS CALL BEFORE REACHING TOUT',
+     1   201, 1, 1, MXSTEP, 0, 1, TN, ZERO)
+      ISTATE = -1
+      GO TO 580
+C EWT(I) .LE. 0.0 FOR SOME I (NOT AT START OF PROBLEM). ----------------
+ 510   EWTI = RWORK(LEWT+I-1)
+      CALL XERR ('ODESSA - AT T (=R1), EWT(I1) HAS BECOME R2 .LE. 0.',
+     1   202, 1, 1, I, 0, 2, TN, EWTI)
+      ISTATE = -6
+      GO TO 580
+C TOO MUCH ACCURACY REQUESTED FOR MACHINE PRECISION. -------------------
+ 520  CALL XERR ('ODESSA - AT T (=R1), TOO MUCH ACCURACY REQUESTED',
+     1  203, 1, 0, 0, 0, 0, ZERO,ZERO)
+      CALL XERR ('FOR PRECISION OF MACHINE..  SEE TOLSF (=R2)',
+     1  203, 1, 0, 0, 0, 2, TN, TOLSF)
+      RWORK(14) = TOLSF
+      ISTATE = -2
+      GO TO 580
+C KFLAG = -1.  ERROR TEST FAILED REPEATEDLY OR WITH ABS(H) = HMIN. -----
+ 530  CALL XERR ('ODESSA - AT T(=R1) AND STEP SIZE H(=R2), THE ERROR',
+     1  204, 1, 0, 0, 0, 0, ZERO, ZERO)
+      CALL XERR ('TEST FAILED REPEATEDLY OR WITH ABS(H) = HMIN',
+     1  204, 1, 0, 0, 0, 2, TN, H)
+      ISTATE = -4
+      GO TO 560
+C KFLAG = -2.  CONVERGENCE FAILED REPEATEDLY OR WITH ABS(H) = HMIN. ----
+ 540  CALL XERR ('ODESSA - AT T (=R1) AND STEP SIZE H (=R2), THE',
+     1  205, 1, 0, 0, 0, 0, ZERO,ZERO)
+      CALL XERR ('CORRECTOR CONVERGENCE FAILED REPEATEDLY',
+     1   205, 1, 0, 0, 0, 0, ZERO,ZERO)
+      CALL XERR ('OR WITH ABS(H) = HMIN',
+     1   205, 1, 0, 0, 0, 2, TN, H)
+      ISTATE = -5
+C COMPUTE IMXER IF RELEVANT. -------------------------------------------
+ 560   BIG = ZERO
+      IMXER = 1
+      DO 570 I = 1,NYH
+        SIZE = ABS(RWORK(I+LACOR-1)*RWORK(I+LEWT-1))
+        IF (BIG .GE. SIZE) GO TO 570
+        BIG = SIZE
+        IMXER = I
+ 570    CONTINUE
+      IWORK(16) = IMXER
+C SET Y VECTOR, T, ILLIN, AND OPTIONAL OUTPUTS. ------------------------
+ 580   DO 590 I = 1,NYH
+ 590    Y(I) = RWORK(I+LYH-1)
+      T = TN
+      ILLIN = 0
+      RWORK(11) = HU
+      RWORK(12) = H
+      RWORK(13) = TN
+      IWORK(11) = NST
+      IWORK(12) = NFE
+      IWORK(13) = NJE
+      IWORK(14) = NQU
+      IWORK(15) = NQ
+      IF (ISOPT .EQ. 0) RETURN
+      IWORK(19) = NDFE
+      IWORK(20) = NSPE
+      RETURN
+C-----------------------------------------------------------------------
+C BLOCK I.
+C THE FOLLOWING BLOCK HANDLES ALL ERROR RETURNS DUE TO ILLEGAL INPUT
+C (ISTATE = -3), AS DETECTED BEFORE CALLING THE CORE INTEGRATOR.
+C FIRST THE ERROR MESSAGE ROUTINE IS CALLED.  THEN IF THERE HAVE BEEN
+C 5 CONSECUTIVE SUCH RETURNS JUST BEFORE THIS CALL TO THE KppSolveR,
+C THE RUN IS HALTED.
+C-----------------------------------------------------------------------
+ 601   CALL XERR ('ODESSA - ISTATE (=I1) ILLEGAL',
+     1  1, 1, 1, ISTATE, 0, 0, ZERO,ZERO)
+      GO TO 700
+ 602   CALL XERR ('ODESSA - ITASK (=I1) ILLEGAL',
+     1  2, 1, 1, ITASK, 0, 0, ZERO,ZERO)
+      GO TO 700
+ 603  CALL XERR ('ODESSA - ISTATE .GT. 1 BUT ODESSA NOT INITIALIZED',
+     1  3, 1, 0, 0, 0, 0, ZERO,ZERO)
+      GO TO 700
+ 604   CALL XERR ('ODESSA - NEQ (=I1) .LT. 1',
+     1  4, 1, 1, NEQ(1), 0, 0, ZERO,ZERO)
+      GO TO 700
+ 605  CALL XERR ('ODESSA - ISTATE = 3 AND NEQ CHANGED.  (I1 TO I2)',
+     1  5, 1, 2, N, NEQ(1), 0, ZERO,ZERO)
+      GO TO 700
+ 606   CALL XERR ('ODESSA - ITOL (=I1) ILLEGAL',
+     1  6, 1, 1, ITOL, 0, 0, ZERO,ZERO)
+      GO TO 700
+ 607   CALL XERR ('ODESSA - IOPT (=I1) ILLEGAL',
+     1   7, 1, 1, IOPT, 0, 0, ZERO,ZERO)
+      GO TO 700
+ 608   CALL XERR('ODESSA - MF (=I1) ILLEGAL',
+     1   8, 1, 1, MF, 0, 0, ZERO,ZERO)
+      GO TO 700
+ 609  CALL XERR('ODESSA - ML (=I1) ILLEGAL.. .LT.0 OR .GE.NEQ (=I2)',
+     1   9, 1, 2, ML, NEQ(1), 0, ZERO,ZERO)
+      GO TO 700
+ 610  CALL XERR('ODESSA - MU (=I1) ILLEGAL.. .LT.0 OR .GE.NEQ (=I2)',
+     1   10, 1, 2, MU, NEQ(1), 0, ZERO,ZERO)
+      GO TO 700
+ 611   CALL XERR('ODESSA - MAXORD (=I1) .LT. 0',
+     1   11, 1, 1, MAXORD, 0, 0, ZERO,ZERO)
+      GO TO 700
+ 612   CALL XERR('ODESSA - MXSTEP (=I1) .LT. 0',
+     1   12, 1, 1, MXSTEP, 0, 0, ZERO,ZERO)
+      GO TO 700
+ 613   CALL XERR('ODESSA - MXHNIL (=I1) .LT. 0',
+     1   13, 1, 1, MXHNIL, 0, 0, ZERO,ZERO)
+      GO TO 700
+ 614   CALL XERR('ODESSA - TOUT (=R1) BEHIND T (=R2)',
+     1   14, 1, 0, 0, 0, 2, TOUT, T)
+      CALL XERR('INTEGRATION DIRECTION IS GIVEN BY H0 (=R1)',
+     1   14, 1, 0, 0, 0, 1, H0, ZERO)
+      GO TO 700
+ 615   CALL XERR('ODESSA - HMAX (=R1) .LT. 0.0',
+     1   15, 1, 0, 0, 0, 1, HMAX, ZERO)
+      GO TO 700
+ 616   CALL XERR('ODESSA - HMIN (=R1) .LT. 0.0',
+     1   16, 1, 0, 0, 0, 1, HMIN, ZERO)
+      GO TO 700
+ 617  CALL XERR('ODESSA - RWORK LENGTH NEEDED, LENRW (=I1), EXCEEDS
+     1 LRW (=I2)', 17, 1, 2, LENRW, LRW, 0, ZERO,ZERO)
+      GO TO 700
+ 618  CALL XERR('ODESSA - IWORK LENGTH NEEDED, LENIW (=I1), EXCEEDS
+     1 LIW (=I2)', 18, 1, 2, LENIW, LIW, 0, ZERO,ZERO)
+      GO TO 700
+ 619   CALL XERR('ODESSA - RTOL(I1) IS R1 .LT. 0.0',
+     1   19, 1, 1, I, 0, 1, RTOLI, ZREO)
+      GO TO 700
+ 620   CALL XERR('ODESSA - ATOL(I1) IS R1 .LT. 0.0',
+     1   20, 1, 1, I, 0, 1, ATOLI, ZERO)
+      GO TO 700
+*
+ 621   EWTI = RWORK(LEWT+I-1)
+      CALL XERR('ODESSA - EWT(I1) IS R1 .LE. 0.0',
+     1   21, 1, 1, I, 0, 1, EWTI, ZERO)
+      GO TO 700
+ 622  CALL XERR('ODESSA - TOUT (=R1) TOO CLOSE TO T(=R2) TO START
+     1 INTEGRATION', 22, 1, 0, 0, 0, 2, TOUT, T)
+      GO TO 700
+ 623  CALL XERR('ODESSA - ITASK = I1 AND TOUT (=R1) BEHIND TCUR - HU
+     1 (= R2)', 23, 1, 1, ITASK, 0, 2, TOUT, TP)
+      GO TO 700
+ 624  CALL XERR('ODESSA - ITASK = 4 OR 5 AND TCRIT (=R1) BEHIND TCUR
+     1 (=R2)', 24, 1, 0, 0, 0, 2, TCRIT, TN)
+      GO TO 700
+ 625   CALL XERR('ODESSA - ITASK = 4 OR 5 AND TCRIT (=R1) BEHIND TOUT
+     1 (=R2)', 25, 1, 0, 0, 0, 2, TCRIT, TOUT)
+      GO TO 700
+ 626  CALL XERR('ODESSA - AT START OF PROBLEM, TOO MUCH ACCURACY',
+     1   26, 1, 0, 0, 0, 0, ZERO,ZERO)
+      CALL XERR('REQUESTED FOR PRECISION OF MACHINE. SEE TOLSF (=R1)',
+     1   26, 1, 0, 0, 0, 1, TOLSF, ZERO)
+      RWORK(14) = TOLSF
+      GO TO 700
+ 627  CALL XERR('ODESSA - TROUBLE FROM INTDY. ITASK = I1, TOUT = R1',
+     1   27, 1, 1, ITASK, 0, 1, TOUT, ZERO)
+      GO TO 700
+C ERROR STATEMENTS ASSOCIATED WITH SENSITIVITY ANALYSIS.
+ 628  CALL XERR('ODESSA - NPAR (=I1) .LT. 1',
+     1   28, 1, 1, NPAR, 0, 0, ZERO,ZERO)
+      GO TO 700
+ 629  CALL XERR('ODESSA - ISTATE = 3 AND NPAR CHANGED (I1 TO I2)',
+     1   29, 1, 2, NP, NPAR, 0, ZERO,ZERO)
+      GO TO 700
+ 630  CALL XERR('ODESSA - MITER (=I1) ILLEGAL',
+     1   30, 1, 1, MITER, 0, 0, ZERO,ZERO)
+      GO TO 700
+ 631  CALL XERR('ODESSA - TROUBLE IN SPRIME (IERPJ)',
+     1   31, 1, 0, 0, 0, 0, ZERO,ZERO)
+      GO TO 700
+ 632  CALL XERR('ODESSA - TROUBLE IN SPRIME (MITER)',
+     1   32, 1, 0, 0, 0, 0, ZERO,ZERO)
+      GO TO 700
+ 633  CALL XERR('ODESSA - FATAL ERROR IN STODE (KFLAG = -3)',
+     1   33, 2, 0, 0, 0, 0, ZERO,ZERO)
+      GO TO 801
+C
+ 700   IF (ILLIN .EQ. 5) GO TO 710
+      ILLIN = ILLIN + 1
+      ISTATE = -3
+      RETURN
+ 710  CALL XERR('ODESSA - REPEATED OCCURRENCES OF ILLEGAL INPUT',
+     1   302, 1, 0, 0, 0, 0, ZERO,ZERO)
+C
+ 800  CALL XERR('ODESSA - RUN ABORTED.. APPARENT INFINITE LOOP',
+     1   303, 2, 0, 0, 0, 0, ZERO,ZERO)
+      RETURN
+ 801  CALL XERR('ODESSA - RUN ABORTED',
+     1   304, 2, 0, 0, 0, 0, ZERO,ZERO)
+      RETURN
+C-------------------- END OF SUBROUTINE ODESSA -------------------------
+      END
+      DOUBLE PRECISION FUNCTION ADDX(A,B)
+      DOUBLE PRECISION A,B
+C
+C  THIS FUNCTION IS NECESSARY TO FORCE OPTIMIZING COMPILERS TO
+C  EXECUTE AND STORE A SUM, FOR SUCCESSFUL EXECUTION OF THE
+C  TEST A + B = B.
+C
+      ADDX = A + B
+      RETURN
+C-------------------- END OF FUNCTION SUM ------------------------------
+      END
+      SUBROUTINE SPRIME (NEQ, Y, YH, NYH, NROW, NCOL, WM, IWM,
+     1  EWT, SAVF, FTEM, DFDP, PAR, F, JAC, DF, PJAC, PDF)
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+      DIMENSION NEQ(*), Y(*), YH(NROW,NCOL,*), WM(*), IWM(*),
+     1  EWT(*), SAVF(*), FTEM(*), DFDP(NROW,*), PAR(*)
+      EXTERNAL F, JAC, DF, PJAC, PDF
+      PARAMETER (ONE=1.0D0,ZERO=0.0D0)
+      COMMON /ODE001/ ROWND, ROWNS(173),
+     1  RDUM1(37),EL0, H, RDUM2(6),
+     2  IOWND1(14), IOWNS(4),
+     3  IDUM1(3), IERPJ, IDUM2(6),
+     4  MITER, IDUM3(4), N, IDUM4(5)
+      COMMON /ODE002/ RDUM3(3),
+     1  IOWND2(3), IDUM5, NSV, IDUM6, NSPE, IDUM7, IERSP, JOPT, IDUM8
+C-----------------------------------------------------------------------
+C SPRIME IS CALLED BY ODESSA TO INITIALIZE THE YH ARRAY. IT IS ALSO
+C CALLED BY STODE TO REEVALUATE FIRST ORDER DERIVATIVES WHEN KFLAG
+C .LE. -3. SPRIME COMPUTES THE FIRST DERIVATIVES OF THE SENSITIVITY
+C COEFFICIENTS WITH RESPECT TO THE INDEPENDENT VARIABLE T...
+C
+C        SPRIME = D(DY/DP)/DT = JAC*DY/DP + DF/DP
+C                   WHERE JAC = JACOBIAN MATRIX
+C                       DY/DP = SENSITIVITY MATRIX
+C                       DF/DP = INHOMOGENEITY MATRIX
+C THIS ROUTINE USES THE COMMON VARIABLES EL0, H, IERPJ, MITER, N,
+C NSV, NSPE, IERSP, JOPT
+C-----------------------------------------------------------------------
+C CALL PREPJ WITH JOPT = 1.
+C IF MITER = 2 OR 5, EL0 IS TEMPORARILY SET TO -1.0 AND H IS
+C TEMPORARILY SET TO 1.0D0.
+C-----------------------------------------------------------------------
+      NSPE = NSPE + 1
+      JOPT = 1
+      IF (MITER .EQ. 1 .OR. MITER .EQ. 4) GO TO 10
+      HTEMP = H
+      ETEMP = EL0
+      H = ONE
+      EL0 = -ONE
+ 10   CALL PJAC (NEQ, Y, YH, NYH, WM, IWM, EWT, SAVF, FTEM,
+     1   PAR, F, JAC, JOPT)
+      IF (IERPJ .NE. 0) GO TO 300
+      JOPT = 0
+      IF (MITER .EQ. 1 .OR. MITER .EQ. 4) GO TO 20
+      H = HTEMP
+      EL0 = ETEMP
+C-----------------------------------------------------------------------
+C CALL PREPDF AND LOAD DFDP(*,JPAR).
+C-----------------------------------------------------------------------
+ 20   DO 30 J = 2,NSV
+        JPAR = J - 1
+        CALL PDF (NEQ, Y, WM, SAVF, FTEM, DFDP(1,JPAR), PAR,
+     1     F, DF, JPAR)
+ 30   CONTINUE
+C-----------------------------------------------------------------------
+C COMPUTE JAC*DY/DP AND STORE RESULTS IN YH(*,*,2).
+C-----------------------------------------------------------------------
+      GO TO (40,40,310,100,100) MITER
+C THE JACOBIAN IS FULL.------------------------------------------------
+C FOR EACH ROW OF THE JACOBIAN..
+ 40   DO 70 IROW = 1,N
+C AND EACH COLUMN OF THE SENSITIVITY MATRIX..
+        DO 60 J = 2,NSV
+          SUM = ZERO
+C TAKE THE VECTOR DOT PRODUCT..
+          DO 50 I = 1,N
+            IPD = IROW + N*(I-1) + 2
+            SUM = SUM + WM(IPD)*YH(I,J,1)
+ 50       CONTINUE
+          YH(IROW,J,2) = SUM
+ 60     CONTINUE
+ 70   CONTINUE
+      GO TO 200
+C THE JACOBIAN IS BANDED.-----------------------------------------------
+ 100  ML = IWM(1)
+      MU = IWM(2)
+      ICOUNT = 1
+      MBAND = ML + MU + 1
+      MEBAND = MBAND + ML
+      NMU = N - MU
+      ML1 = ML + 1
+C FOR EACH ROW OF THE JACOBIAN..
+      DO 160 IROW = 1,N
+        IF (IROW .GT. ML1) GO TO 110
+        IPD = MBAND + IROW + 1
+        IYH = 1
+        LBAND = MU + IROW
+        GO TO 120
+ 110    ICOUNT = ICOUNT + 1
+        IPD = ICOUNT*MEBAND + 2
+        IYH = IYH + 1
+        LBAND = LBAND - 1
+        IF (IROW .LE. NMU) LBAND = MBAND
+C AND EACH COLUMN OF THE SENSITIVITY MATRIX..
+ 120    DO 150 J = 2,NSV
+          SUM = ZERO
+          I1 = IPD
+          I2 = IYH
+C TAKE THE VECTOR DOT PRODUCT.
+          DO 140 I = 1,LBAND
+            SUM = SUM + WM(I1)*YH(I2,J,1)
+            I1 = I1 + MEBAND - 1
+            I2 = I2 + 1
+ 140      CONTINUE
+          YH(IROW,J,2) = SUM
+ 150    CONTINUE
+ 160  CONTINUE
+C-----------------------------------------------------------------------
+C ADD THE INHOMOGENEITY TERM, I.E., ADD DFDP(*,JPAR) TO YH(*,JPAR+1,2).
+C-----------------------------------------------------------------------
+ 200  DO 220 J = 2,NSV
+        JPAR = J - 1
+        DO 210 I = 1,N
+          YH(I,J,2) = YH(I,J,2) + DFDP(I,JPAR)
+ 210    CONTINUE
+ 220  CONTINUE
+      RETURN
+C-----------------------------------------------------------------------
+C ERROR RETURNS.
+C-----------------------------------------------------------------------
+ 300  IERSP = -1
+      RETURN
+ 310  IERSP = -2
+      RETURN
+C------------------------END OF SUBROUTINE SPRIME-----------------------
+      END
+      SUBROUTINE PREPJ (NEQ, Y, YH, NYH, WM, IWM, EWT, SAVF, FTEM,
+     1   PAR, F, JAC, JOPT)
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+      DIMENSION NEQ(*), Y(*), YH(NYH,*), WM(*), IWM(*), EWT(*),
+     1   SAVF(*), FTEM(*), PAR(*)
+      EXTERNAL F, JAC
+      PARAMETER (ZERO=0.0D0,ONE=1.0D0)
+      COMMON /ODE001/ ROWND, ROWNS(173),
+     2   RDUM1(37), EL0, H, RDUM2(4), TN, UROUND,
+     3   IOWND(14), IOWNS(4),
+     4   IDUM1(3), IERPJ, IDUM2, JCUR, IDUM3(4),
+     5   MITER, IDUM4(4), N, IDUM5(2), NFE, NJE, IDUM6
+C-----------------------------------------------------------------------
+C PREPJ IS CALLED BY STODE TO COMPUTE AND PROCESS THE MATRIX
+C P = I - H*EL(1)*J , WHERE J IS AN APPROXIMATION TO THE JACOBIAN.
+C IF ISOPT = 1, PREPJ IS ALSO CALLED BY SPRIME WITH JOPT = 1.
+C HERE J IS COMPUTED BY THE USER-SUPPLIED ROUTINE JAC IF
+C MITER = 1 OR 4, OR BY FINITE DIFFERENCING IF MITER = 2, 3, OR 5.
+C IF MITER = 3, A DIAGONAL APPROXIMATION TO J IS USED.
+C J IS STORED IN WM AND REPLACED BY P.  IF MITER .NE. 3, P IS THEN
+C SUBJECTED TO LU DECOMPOSITION (JOPT = 0) IN PREPARATION FOR LATER
+C SOLUTION OF LINEAR SYSTEMS WITH P AS COEFFICIENT MATRIX. THIS IS
+C DONE BY DGEFA IF MITER = 1 OR 2, AND BY DGBFA IF MITER = 4 OR 5.
+C
+C IN ADDITION TO VARIABLES DESCRIBED PREVIOUSLY, COMMUNICATION
+C WITH PREPJ USES THE FOLLOWING..
+C Y     = ARRAY CONTAINING PREDICTED VALUES ON ENTRY.
+C FTEM  = WORK ARRAY OF LENGTH N (ACOR IN STODE).
+C SAVF  = ARRAY CONTAINING F EVALUATED AT PREDICTED Y.
+C WM    = REAL WORK SPACE FOR MATRICES.  ON OUTPUT IT CONTAINS THE
+C         INVERSE DIAGONAL MATRIX IF MITER = 3 AND THE LU DECOMPOSITION
+C         OF P IF MITER IS 1, 2 , 4, OR 5.
+C         STORAGE OF MATRIX ELEMENTS STARTS AT WM(3).
+C         WM ALSO CONTAINS THE FOLLOWING MATRIX-RELATED DATA..
+C         WM(1) = SQRT(UROUND), USED IN NUMERICAL JACOBIAN INCREMENTS.
+C         WM(2) = H*EL0, SAVED FOR LATER USE IF MITER = 3.
+C IWM   = INTEGER WORK SPACE CONTAINING PIVOT INFORMATION, STARTING AT
+C         IWM(21), IF MITER IS 1, 2, 4, OR 5.  IWM ALSO CONTAINS BAND
+C         PARAMETERS ML = IWM(1) AND MU = IWM(2) IF MITER IS 4 OR 5.
+C EL0   = EL(1) (INPUT).
+C IERPJ = OUTPUT ERROR FLAG,  = 0 IF NO TROUBLE, .GT. 0 IF
+C         P MATRIX FOUND TO BE SINGULAR.
+C JCUR  = OUTPUT FLAG = 1 TO INDICATE THAT THE JACOBIAN MATRIX
+C         (OR APPROXIMATION) IS NOW CURRENT.
+C JOPT  = INPUT JACOBIAN OPTION, = 1 IF JAC IS DESIRED ONLY.
+C THIS ROUTINE ALSO USES THE COMMON VARIABLES EL0, H, TN, UROUND,
+C IERPJ, JCUR, MITER, N, NFE, AND NJE.
+C-----------------------------------------------------------------------
+      NJE = NJE + 1
+      IERPJ = 0
+      JCUR = 1
+      HL0 = H*EL0
+      GO TO (100, 200, 300, 400, 500), MITER
+C IF MITER = 1, CALL JAC AND MULTIPLY BY SCALAR. -----------------------
+ 100   LENP = N*N
+      DO 110 I = 1,LENP
+ 110    WM(I+2) = ZERO
+      CALL JAC (NEQ, TN, Y, PAR, 0, 0, WM(3), N)
+      IF (JOPT .EQ. 1) RETURN
+      CON = -HL0
+      DO 120 I = 1,LENP
+ 120    WM(I+2) = WM(I+2)*CON
+      GO TO 240
+C IF MITER = 2, MAKE N CALLS TO F TO APPROXIMATE J. --------------------
+ 200   FAC = VNORM (N, SAVF, EWT)
+      R0 = 1000.0D0*ABS(H)*UROUND*REAL(N)*FAC
+      IF (R0 .EQ. ZERO) R0 = ONE
+      SRUR = WM(1)
+      J1 = 2
+      DO 230 J = 1,N
+        YJ = Y(J)
+        R = MAX(SRUR*ABS(YJ),R0/EWT(J))
+        Y(J) = Y(J) + R
+        FAC = -HL0/R
+        CALL F (NEQ, TN, Y, PAR, FTEM)
+        DO 220 I = 1,N
+ 220      WM(I+J1) = (FTEM(I) - SAVF(I))*FAC
+        Y(J) = YJ
+        J1 = J1 + N
+ 230    CONTINUE
+      NFE = NFE + N
+      IF (JOPT .EQ. 1) RETURN
+C ADD IDENTITY MATRIX. -------------------------------------------------
+ 240   J = 3
+      DO 250 I = 1,N
+        WM(J) = WM(J) + ONE
+ 250    J = J + (N + 1)
+C DO LU DECOMPOSITION ON P. --------------------------------------------
+      CALL DGEFA (WM(3), N, N, IWM(21), IER)
+      IF (IER .NE. 0) IERPJ = 1
+      RETURN
+C IF MITER = 3, CONSTRUCT A DIAGONAL APPROXIMATION TO J AND P. ---------
+ 300   WM(2) = HL0
+      R = EL0*0.1D0
+      DO 310 I = 1,N
+ 310    Y(I) = Y(I) + R*(H*SAVF(I) - YH(I,2))
+      CALL F (NEQ, TN, Y, PAR, WM(3))
+      NFE = NFE + 1
+      DO 320 I = 1,N
+        R0 = H*SAVF(I) - YH(I,2)
+        DI = 0.1D0*R0 - H*(WM(I+2) - SAVF(I))
+        WM(I+2) = 1.0D0
+        IF (ABS(R0) .LT. UROUND/EWT(I)) GO TO 320
+        IF (ABS(DI) .EQ. ZERO) GO TO 330
+        WM(I+2) = 0.1D0*R0/DI
+ 320    CONTINUE
+      RETURN
+ 330   IERPJ = 1
+      RETURN
+C IF MITER = 4, CALL JAC AND MULTIPLY BY SCALAR. -----------------------
+ 400   ML = IWM(1)
+      MU = IWM(2)
+      ML3 = ML + 3
+      MBAND = ML + MU + 1
+      MEBAND = MBAND + ML
+      LENP = MEBAND*N
+      DO 410 I = 1,LENP
+ 410    WM(I+2) = ZERO
+      CALL JAC (NEQ, TN, Y, PAR, ML, MU, WM(ML3), MEBAND)
+      IF (JOPT .EQ. 1) RETURN
+      CON = -HL0
+      DO 420 I = 1,LENP
+ 420    WM(I+2) = WM(I+2)*CON
+      GO TO 570
+C IF MITER = 5, MAKE MBAND CALLS TO F TO APPROXIMATE J. ----------------
+ 500   ML = IWM(1)
+      MU = IWM(2)
+      MBAND = ML + MU + 1
+      MBA = MIN(MBAND,N)
+      MEBAND = MBAND + ML
+      MEB1 = MEBAND - 1
+      SRUR = WM(1)
+      FAC = VNORM (N, SAVF, EWT)
+      R0 = 1000.0D0*ABS(H)*UROUND*REAL(N)*FAC
+      IF (R0 .EQ. ZERO) R0 = ONE
+      DO 560 J = 1,MBA
+        DO 530 I = J,N,MBAND
+          YI = Y(I)
+          R = MAX(SRUR*ABS(YI),R0/EWT(I))
+ 530      Y(I) = Y(I) + R
+        CALL F (NEQ, TN, Y, PAR, FTEM)
+        DO 550 JJ = J,N,MBAND
+          Y(JJ) = YH(JJ,1)
+          YJJ = Y(JJ)
+          R = MAX(SRUR*ABS(YJJ),R0/EWT(JJ))
+          FAC = -HL0/R
+          I1 = MAX(JJ-MU,1)
+          I2 = MIN(JJ+ML,N)
+          II = JJ*MEB1 - ML + 2
+          DO 540 I = I1,I2
+ 540        WM(II+I) = (FTEM(I) - SAVF(I))*FAC
+ 550      CONTINUE
+ 560    CONTINUE
+      NFE = NFE + MBA
+      IF (JOPT .EQ. 1) RETURN
+C ADD IDENTITY MATRIX. -------------------------------------------------
+ 570   II = MBAND + 2
+      DO 580 I = 1,N
+        WM(II) = WM(II) + ONE
+ 580    II = II + MEBAND
+C DO LU DECOMPOSITION OF P. --------------------------------------------
+      CALL DGBFA (WM(3), MEBAND, N, ML, MU, IWM(21), IER)
+      IF (IER .NE. 0) IERPJ = 1
+      RETURN
+C----------------------- END OF SUBROUTINE PREPJ -----------------------
+      END
+      SUBROUTINE PREPDF (NEQ, Y, SRUR, SAVF, FTEM, DFDP, PAR,
+     1   F, DF, JPAR)
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+      EXTERNAL F, DF
+      DIMENSION NEQ(*), Y(*), SAVF(*), FTEM(*), DFDP(*), PAR(*)
+      COMMON /ODE001/ ROWND, ROWNS(173),
+     1   RDUM1(43), TN, RDUM2,
+     2   IOWND1(14), IOWNS(4),
+     3   IDUM1(10), MITER, IDUM2(4), N, IDUM3(2), NFE, IDUM4(2)
+      COMMON /ODE002/ RDUM3(3),
+     1   IOWND2(3), IDUM5(2), NDFE, IDUM6, IDF, IDUM7(3)
+C-----------------------------------------------------------------------
+C PREPDF IS CALLED BY SPRIME AND STESA TO COMPUTE THE INHOMOGENEITY
+C VECTORS DF(I)/DP(JPAR). HERE DF/DP IS COMPUTED BY THE USER-SUPPLIED
+C ROUTINE DF IF IDF = 1, OR BY FINITE DIFFERENCING IF IDF = 0.
+C
+C IN ADDITION TO VARIABLES DESCRIBED PREVIOUSLY, COMMUNICATION WITH
+C PREPDF USES THE FOLLOWING..
+C Y     = REAL ARRAY OF LENGTH NYH CONTAINING DEPENDENT VARIABLES.
+C         PREPDF USES ONLY THE FIRST N ENTRIES OF Y(*).
+C SRUR  = SQRT(UROUND) (= WM(1)).
+C SAVF  = REAL ARRAY OF LENGTH N CONTAINING DERIVATIVES DY/DT.
+C FTEM  = REAL ARRAY OF LENGTH N USED TO TEMPORARILY STORE DY/DT FOR
+C         NUMERICAL DIFFERENTIATION.
+C DFDP  = REAL ARRAY OF LENGTH N USED TO STORE DF(I)/DP(JPAR), I = 1,N.
+C PAR   = REAL ARRAY OF LENGTH NPAR CONTAINING EQUATION PARAMETERS
+C         OF INTEREST.
+C JPAR  = INPUT PARAMETER, 2 .LE. JPAR .LE. NSV, DESIGNATING THE
+C         APPROPRIATE SOLUTION VECTOR CORRESPONDING TO PAR(JPAR).
+C THIS ROUTINE ALSO USES THE COMMON VARIABLES TN, MITER, N, NFE, NDFE,
+C AND IDF.
+C-----------------------------------------------------------------------
+      NDFE = NDFE + 1
+      IDF1 = IDF + 1
+      GO TO (100, 200), IDF1
+C IDF = 0, CALL F TO APPROXIMATE DFDP. ---------------------------------
+ 100  RPAR = PAR(JPAR)
+      R = MAX(SRUR*ABS(RPAR),SRUR)
+      PAR(JPAR) = RPAR + R
+      FAC = 1.0D0/R
+      CALL F (NEQ, TN, Y, PAR, FTEM)
+      DO 110 I = 1,N
+ 110    DFDP(I) = (FTEM(I) - SAVF(I))*FAC
+      PAR(JPAR) = RPAR
+      NFE = NFE + 1
+      RETURN
+C IDF = 1, CALL USER SUPPLIED DF. --------------------------------------
+ 200  DO 210 I = 1,N
+ 210    DFDP(I) = 0.0D0
+      CALL DF (NEQ, TN, Y, PAR, DFDP, JPAR)
+      RETURN
+C -------------------- END OF SUBROUTINE PREPDF ------------------------
+      END
+      SUBROUTINE INTDY (T, K, YH, NYH, DKY, IFLAG)
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+      DIMENSION YH(NYH,1), DKY(1)
+      COMMON /ODE001/ ROWND, ROWNS(173),
+     2   RDUM1(38),H, RDUM2(2), HU, RDUM3, TN, UROUND,
+     3   IOWND(14), IOWNS(4),
+     4   IDUM1(8), L, IDUM2,
+     5   IDUM3(5), N, NQ, IDUM4(4)
+C-----------------------------------------------------------------------
+C INTDY COMPUTES INTERPOLATED VALUES OF THE K-TH DERIVATIVE OF THE
+C DEPENDENT VARIABLE VECTOR Y, AND STORES IT IN DKY.  THIS ROUTINE
+C IS CALLED WITHIN THE PACKAGE WITH K = 0 AND T = TOUT, BUT MAY
+C ALSO BE CALLED BY THE USER FOR ANY K UP TO THE CURRENT ORDER.
+C (SEE DETAILED INSTRUCTIONS IN THE USAGE DOCUMENTATION.)
+C-----------------------------------------------------------------------
+C THE COMPUTED VALUES IN DKY ARE GOTTEN BY INTERPOLATION USING THE
+C NORDSIECK HISTORY ARRAY YH.  THIS ARRAY CORRESPONDS UNIQUELY TO A
+C VECTOR-VALUED POLYNOMIAL OF DEGREE NQCUR OR LESS, AND DKY IS SET
+C TO THE K-TH DERIVATIVE OF THIS POLYNOMIAL AT T.
+C THE FORMULA FOR DKY IS..
+C             Q
+C  DKY(I)  =  SUM  C(J,K) * (T - TN)**(J-K) * H**(-J) * YH(I,J+1)
+C            J=K
+C WHERE  C(J,K) = J*(J-1)*...*(J-K+1), Q = NQCUR, TN = TCUR, H = HCUR.
+C THE QUANTITIES  NQ = NQCUR, L = NQ+1, N = NEQ, TN, AND H ARE
+C COMMUNICATED BY COMMON.  THE ABOVE SUM IS DONE IN REVERSE ORDER.
+C IFLAG IS RETURNED NEGATIVE IF EITHER K OR T IS OUT OF BOUNDS.
+C-----------------------------------------------------------------------
+      IFLAG = 0
+      IF (K .LT. 0 .OR. K .GT. NQ) GO TO 80
+      TP = TN - HU*(1.0D0 + 100.0D0*UROUND)
+      IF ((T-TP)*(T-TN) .GT. 0.0D0) GO TO 90
+C
+      S = (T - TN)/H
+      IC = 1
+      IF (K .EQ. 0) GO TO 15
+      JJ1 = L - K
+      DO 10 JJ = JJ1,NQ
+ 10     IC = IC*JJ
+ 15   C = REAL(IC)
+      DO 20 I = 1,NYH
+ 20     DKY(I) = C*YH(I,L)
+      IF (K .EQ. NQ) GO TO 55
+      JB2 = NQ - K
+      DO 50 JB = 1,JB2
+        J = NQ - JB
+        JP1 = J + 1
+        IC = 1
+        IF (K .EQ. 0) GO TO 35
+        JJ1 = JP1 - K
+        DO 30 JJ = JJ1,J
+ 30       IC = IC*JJ
+ 35     C = REAL(IC)
+        DO 40 I = 1,NYH
+ 40       DKY(I) = C*YH(I,JP1) + S*DKY(I)
+ 50     CONTINUE
+      IF (K .EQ. 0) RETURN
+ 55   R = H**(-K)
+      DO 60 I = 1,NYH
+ 60     DKY(I) = R*DKY(I)
+      RETURN
+C
+ 80   CALL XERR('INTDY--  K (=I1) ILLEGAL',
+     1  51, 1, 1, K, 0, 0, ZERO,ZERO)
+      IFLAG = -1
+      RETURN
+ 90   CALL XERR ('INTDY--  T (=R1) ILLEGAL',
+     1   52, 1, 0, 0, 0, 1, T, ZERO)
+      CALL XERR('T NOT IN INTERVAL TCUR - HU (= R1) TO TCUR (=R2)',
+     1   52, 1, 0, 0, 0, 2, TP, TN)
+      IFLAG = -2
+      RETURN
+C----------------------- END OF SUBROUTINE INTDY -----------------------
+      END
+      SUBROUTINE STESA (NEQ, Y, NROW, NCOL, YH, WM, IWM, EWT, SAVF,
+     1   ACOR, PAR, NRS, F, JAC, DF, PJAC, PDF, KppSolve)
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+      EXTERNAL F, JAC, DF, PJAC, PDF, KppSolve
+      DIMENSION NEQ(*), Y(NROW,*), YH(NROW,NCOL,*), WM(*), IWM(*),
+     1   EWT(NROW,*), SAVF(*), ACOR(NROW,*), PAR(*), NRS(*)
+      PARAMETER (ONE=1.0D0,ZERO=0.0D0)
+      COMMON /ODE001/ ROWND, ROWNS(173),
+     1   TESCO(3,12), RDUM1, EL0, H, RDUM2(4), TN, RDUM3,
+     2   IOWND1(14), IOWNS(4),
+     3   IALTH, LMAX, IDUM1, IERPJ, IERSL, JCUR, IDUM2, KFLAG, L, IDUM3,
+     4   MITER, IDUM4(4), N, NQ, IDUM5, NFE, IDUM6(2)
+      COMMON /ODE002/ DUPS, DSMS, DDNS,
+     1   IOWND2(3), IDUM7, NSV, IDUM8(2), IDF, IDUM9, JOPT, KFLAGS
+C-----------------------------------------------------------------------
+C STESA IS CALLED BY STODE TO PERFORM AN EXPLICIT CALCULATION FOR THE
+C FIRST-ORDER SENSITIVITY COEFFICIENTS DY(I)/DP(J), I = 1,N; J = 1,NPAR.
+C
+C IN ADDITION TO THE VARIABLES DESCRIBED PREVIOUSLY, COMMUNICATION
+C WITH STESA USES THE FOLLOWING..
+C Y      = AN NROW (=N) BY NCOL (=NSV) REAL ARRAY CONTAINING THE
+C          CORRECTED DEPENDENT VARIABLES ON OUTPUT..
+C                  Y(I,1) , I = 1,N = STATE VARIABLES (INPUT);
+C                  Y(I,J) , I = 1,N , J = 2,NSV ,
+C                           = SENSITIVITY COEFFICIENTS, DY(I)/DP(J).
+C YH     = AN N BY NSV BY LMAX REAL ARRAY CONTAINING THE PREDICTED
+C          DEPENDENT VARIABLES AND THEIR APPROXIMATE SCALED DERIVATIVES.
+C SAVF   = A REAL ARRAY OF LENGTH N USED TO STORE FIRST DERIVATIVES
+C          OF DEPENDENT VARIABLES IF MITER = 2 OR 5.
+C PAR    = A REAL ARRAY OF LENGTH NPAR CONTAINING THE EQUATION
+C          PARAMETERS OF INTEREST.
+C NRS    = AN INTEGER ARRAY OF LENGTH NPAR + 1 CONTAINING THE NUMBER
+C          OF REPEATED STEPS (KFLAGS .LT. 0) DUE TO THE SENSITIVITY
+C          CALCULATIONS..
+C                  NRS(1) = TOTAL NUMBER OF REPEATED STEPS
+C                  NRS(I) , I = 2,NPAR = NUMBER OF REPEATED STEPS DUE
+C                                        TO PARAMETER I.
+C NSV    = NUMBER OF SOLUTION VECTORS = NPAR + 1.
+C KFLAGS = LOCAL ERROR TEST FLAG, = 0 IF TEST PASSES, .LT. 0 IF TEST
+C          FAILS, AND STEP NEEDS TO BE REPEATED. ERROR TEST IS APPLIED
+C          TO EACH SOLUTION VECTOR INDEPENDENTLY.
+C DUPS, DSMS, DDNS = REAL SCALARS USED FOR COMPUTING RHUP, RHSM, RHDN,
+C                    ON RETURN TO STODE (IALTH .EQ. 1).
+C THIS ROUTINE ALSO USES THE COMMON VARIABLES EL0, H, TN, IALTH, LMAX,
+C IERPJ, IERSL, JCUR, KFLAG, L, MITER, N, NQ, NFE, AND JOPT.
+C-----------------------------------------------------------------------
+      DUPS = ZERO
+      DSMS = ZERO
+      DDNS = ZERO
+      HL0 = H*EL0
+      EL0I = ONE/EL0
+      TI2 = ONE/TESCO(2,NQ)
+      TI3 = ONE/TESCO(3,NQ)
+C IF MITER = 2 OR 5 (OR IDF = 0), SUPPLY DERIVATIVES AT CORRECTED
+C Y(*,1) VALUES FOR NUMERICAL DIFFERENTIATION IN PJAC AND/OR PDF.
+      IF (MITER .EQ. 2  .OR.  MITER .EQ. 5  .OR.  IDF .EQ. 0)  GO TO 10
+      GO TO 15
+ 10   CALL F (NEQ, TN, Y, PAR, SAVF)
+      NFE = NFE + 1
+C IF JCUR = 0, UPDATE THE JACOBIAN MATRIX.
+C IF MITER = 5, LOAD CORRECTED Y(*,1) VALUES INTO Y(*,2).
+ 15   IF (JCUR .EQ. 1) GO TO 30
+      IF (MITER .NE. 5) GO TO 25
+      DO 20 I = 1,N
+ 20     Y(I,2) = Y(I,1)
+ 25   CALL PJAC (NEQ, Y, Y(1,2), N, WM, IWM, EWT, SAVF, ACOR(1,2),
+     1   PAR, F, JAC, JOPT)
+      IF (IERPJ .NE. 0) RETURN
+C-----------------------------------------------------------------------
+C THIS IS A LOOPING POINT FOR THE SENSITIVITY CALCULATIONS.
+C-----------------------------------------------------------------------
+C FOR EACH PARAMETER PAR(*), A SENSITIVITY SOLUTION VECTOR IS COMPUTED
+C USING THE SAME STEP SIZE (H) AND ORDER (NQ) AS IN STODE.
+C A LOCAL ERROR TEST IS APPLIED INDEPENDENTLY TO EACH SOLUTION VECTOR.
+C-----------------------------------------------------------------------
+ 30   DO 100 J = 2,NSV
+        JPAR = J - 1
+C EVALUATE INHOMOGENEITY TERM, TEMPORARILY LOAD INTO Y(*,JPAR+1). ------
+        CALL PDF(NEQ, Y, WM, SAVF, ACOR(1,J), Y(1,J), PAR,
+     1     F, DF, JPAR)
+C-----------------------------------------------------------------------
+C LOAD RHS OF SENSITIVITY SOLUTION (CORRECTOR) EQUATION..
+C
+C       RHS = DY/DP - EL(1)*H*D(DY/DP)/DT + EL(1)*H*DF/DP
+C
+C-----------------------------------------------------------------------
+        DO 40 I = 1,N
+ 40       Y(I,J) = YH(I,J,1) - EL0*YH(I,J,2) + HL0*Y(I,J)
+C-----------------------------------------------------------------------
+C KppSolve CORRECTOR EQUATION: THE SOLUTIONS ARE LOCATED IN Y(*,JPAR+1).
+C THE EXPLICIT FORMULA IS..
+C
+C       (I - EL(1)*H*JAC) * DY/DP(CORRECTED) = RHS
+C
+C-----------------------------------------------------------------------
+        CALL KppSolve (WM, IWM, Y(1,J), DUM)
+        IF (IERSL .NE. 0) RETURN
+C ESTIMATE LOCAL TRUNCATION ERROR. -------------------------------------
+        DO 50 I = 1,N
+ 50       ACOR(I,J) = (Y(I,J) - YH(I,J,1))*EL0I
+        ERR = VNORM(N, ACOR(1,J), EWT(1,J))*TI2
+        IF (ERR .GT. ONE) GO TO 200
+C-----------------------------------------------------------------------
+C LOCAL ERROR TEST PASSED. SET KFLAGS TO 0 TO INDICATE THIS.
+C IF IALTH = 1, COMPUTE DSMS, DDNS, AND DUPS (IF L .LT. LMAX).
+C-----------------------------------------------------------------------
+        KFLAGS = 0
+        IF (IALTH .GT. 1) GO TO 100
+        IF (L .EQ. LMAX) GO TO 70
+        DO 60 I= 1,N
+ 60       Y(I,J) = ACOR(I,J) - YH(I,J,LMAX)
+        DUPS = MAX(DUPS,VNORM(N,Y(1,J),EWT(1,J))*TI3)
+ 70     DSMS = MAX(DSMS,ERR)
+ 100  CONTINUE
+      RETURN
+C-----------------------------------------------------------------------
+C THIS SECTION IS REACHED IF THE ERROR TOLERANCE FOR SENSITIVITY
+C SOLUTION VECTOR JPAR HAS BEEN VIOLATED. KFLAGS IS MADE NEGATIVE TO
+C INDICATE THIS. IF KFLAGS = -1, SET KFLAG EQUAL TO ZERO SO THAT KFLAG
+C IS SET TO -1 ON RETURN TO STODE BEFORE REPEATING THE STEP.
+C INCREMENT NRS(1) (= TOTAL NUMBER OF REPEATED STEPS DUE TO ALL
+C SENSITIVITY SOLUTION VECTORS) BY ONE.
+C INCREMENT NRS(JPAR+1) (= TOTAL NUMBER OF REPEATED STEPS DUE TO
+C SOLUTION VECTOR JPAR+1) BY ONE.
+C LOAD DSMS FOR RH CALCULATION IN STODE.
+C-----------------------------------------------------------------------
+ 200  KFLAGS = KFLAGS - 1
+      IF (KFLAGS .EQ. -1) KFLAG = 0
+      NRS(1) = NRS(1) + 1
+      NRS(J) = NRS(J) + 1
+      DSMS = ERR
+      RETURN
+C------------------------ END OF SUBROUTINE STESA ----------------------
+      END
+      SUBROUTINE STODE (NEQ, Y, YH, NYH, YH1, WM, IWM, EWT, SAVF, ACOR,
+     1   PAR, NRS, F, JAC, DF, PJAC, PDF, SLVS)
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+      EXTERNAL F, JAC, DF, PJAC, PDF, SLVS
+      DIMENSION NEQ(*), Y(*), YH(NYH,*), YH1(*), WM(*), IWM(*), EWT(*),
+     1   SAVF(*), ACOR(*), PAR(*), NRS(*)
+      PARAMETER (ONE=1.0D0,ZERO=0.0D0)
+      COMMON /ODE001/ ROWND,
+     1   CONIT, CRATE, EL(13), ELCO(13,12), HOLD, RMAX,
+     2   TESCO(3,12), CCMAX, EL0, H, HMIN, HMXI, HU, RC, TN, UROUND,
+     3   IOWND1(14), IPUP, MEO, NQNYH, NSLP,
+     4   IALTH, LMAX, ICF, IERPJ, IERSL, JCUR, JSTART, KFLAG, L, METH,
+     5   MITER, MAXORD, MAXCOR, MSBP, MXNCF, N, NQ, NST, NFE, NJE, NQU
+      COMMON /ODE002/ DUPS, DSMS, DDNS,
+     1   IOWND2(3), ISOPT, NSV, NDFE, NSPE, IDF, IERSP, JOPT, KFLAGS
+C-----------------------------------------------------------------------
+C STODE PERFORMS ONE STEP OF THE INTEGRATION OF AN INITIAL VALUE
+C PROBLEM FOR A SYSTEM OF ORDINARY DIFFERENTIAL EQUATIONS.
+C NOTE.. STODE IS INDEPENDENT OF THE VALUE OF THE ITERATION METHOD
+C INDICATOR MITER, WHEN THIS IS .NE. 0, AND HENCE IS INDEPENDENT
+C OF THE TYPE OF CHORD METHOD USED, OR THE JACOBIAN STRUCTURE.
+C FOR ISOPT = 1, STODE CALLS STESA FOR SENSITIVITY CALCULATIONS.
+C VARIABLES USED FOR COMMUNICATION WITH STESA ARE DESCRIBED IN STESA.
+C COMMUNICATION WITH STODE IS DONE WITH THE FOLLOWING VARIABLES..
+C
+C NEQ   = INTEGER ARRAY CONTAINING PROBLEM SIZE IN NEQ(1), AND
+C         NUMBER OF PARAMETERS TO BE CONSIDERED IN THE SENSITIVITY
+C         ANALYSIS NEQ(2) (FOR ISOPT = 1), AND PASSED AS THE
+C         NEQ ARGUMENT IN ALL CALLS TO F,  JAC, AND DF.
+C Y     = AN ARRAY OF LENGTH .GE. N USED AS THE Y ARGUMENT IN
+C         ALL CALLS TO F, JAC, AND DF.
+C YH    = AN NYH BY LMAX ARRAY CONTAINING THE DEPENDENT VARIABLES
+C         AND THEIR APPROXIMATE SCALED DERIVATIVES, WHERE
+C         LMAX = MAXORD + 1.  YH(I,J+1) CONTAINS THE APPROXIMATE
+C         J-TH DERIVATIVE OF Y(I), SCALED BY H**J/FACTORIAL(J)
+C         (J = 0,1,...,NQ).  ON ENTRY FOR THE FIRST STEP, THE FIRST
+C         TWO COLUMNS OF YH MUST BE SET FROM THE INITIAL VALUES.
+C NYH   = A CONSTANT INTEGER .GE. N, THE FIRST DIMENSION OF YH.
+C         THE TOTAL NUMBER OF FIRST-ORDER DIFFERENTIAL EQUATIONS..
+C         NYH = N, ISOPT = 0,
+C         NYH = N * (NPAR + 1), ISOPT = 1
+C YH1   = A ONE-DIMENSIONAL ARRAY OCCUPYING THE SAME SPACE AS YH.
+C EWT   = AN ARRAY OF LENGTH NYH CONTAINING MULTIPLICATIVE WEIGHTS
+C         FOR LOCAL ERROR MEASUREMENTS.  LOCAL ERRORS IN Y(I) ARE
+C         COMPARED TO 1.0/EWT(I) IN VARIOUS ERROR TESTS.
+C SAVF  = AN ARRAY OF WORKING STORAGE, OF LENGTH N.
+C         ALSO USED FOR INPUT OF YH(*,MAXORD+2) WHEN JSTART = -1
+C         AND MAXORD .LT. THE CURRENT ORDER NQ.
+C ACOR  = A WORK ARRAY OF LENGTH NYH, USED FOR THE ACCUMULATED
+C         CORRECTIONS.  ON A SUCCESSFUL RETURN, ACOR(I) CONTAINS
+C         THE ESTIMATED ONE-STEP LOCAL ERROR IN Y(I).
+C WM,IWM = REAL AND INTEGER WORK ARRAYS ASSOCIATED WITH MATRIX
+C         OPERATIONS IN CHORD ITERATION (MITER .NE. 0).
+C PJAC  = NAME OF ROUTINE TO EVALUATE AND PREPROCESS JACOBIAN MATRIX
+C         AND P = I - H*EL0*JAC, IF A CHORD METHOD IS BEING USED.
+C         IF ISOPT = 1, PJAC CAN BE CALLED TO CALCULATE JAC BY
+C         SETTING JOPT = 1.
+C SLVS  = NAME OF ROUTINE TO KppSolve LINEAR SYSTEM IN CHORD ITERATION.
+C CCMAX  = MAXIMUM RELATIVE CHANGE IN H*EL0 BEFORE PJAC IS CALLED.
+C H     = THE STEP SIZE TO BE ATTEMPTED ON THE NEXT STEP.
+C         H IS ALTERED BY THE ERROR CONTROL ALGORITHM DURING THE
+C         PROBLEM.  H CAN BE EITHER POSITIVE OR NEGATIVE, BUT ITS
+C         SIGN MUST REMAIN CONSTANT THROUGHOUT THE PROBLEM.
+C HMIN  = THE MINIMUM ABSOLUTE VALUE OF THE STEP SIZE H TO BE USED.
+C HMXI  = INVERSE OF THE MAXIMUM ABSOLUTE VALUE OF H TO BE USED.
+C         HMXI = 0.0 IS ALLOWED AND CORRESPONDS TO AN INFINITE HMAX.
+C         HMIN AND HMXI MAY BE CHANGED AT ANY TIME, BUT WILL NOT
+C         TAKE EFFECT UNTIL THE NEXT CHANGE OF H IS CONSIDERED.
+C TN    = THE INDEPENDENT VARIABLE. TN IS UPDATED ON EACH STEP TAKEN.
+C JSTART = AN INTEGER USED FOR INPUT ONLY, WITH THE FOLLOWING
+C         VALUES AND MEANINGS..
+C              0  PERFORM THE FIRST STEP.
+C          .GT.0  TAKE A NEW STEP CONTINUING FROM THE LAST.
+C             -1  TAKE THE NEXT STEP WITH A NEW VALUE OF H, MAXORD,
+C                   N, METH, OR MITER.
+C             -2  TAKE THE NEXT STEP WITH A NEW VALUE OF H,
+C                   BUT WITH OTHER INPUTS UNCHANGED.
+C         ON RETURN, JSTART IS SET TO 1 TO FACILITATE CONTINUATION.
+C KFLAG  = A COMPLETION CODE WITH THE FOLLOWING MEANINGS..
+C              0  THE STEP WAS SUCCESFUL.
+C             -1  THE REQUESTED ERROR COULD NOT BE ACHIEVED.
+C             -2  CORRECTOR CONVERGENCE COULD NOT BE ACHIEVED.
+C             -3  FATAL ERROR IN PJAC, OR SLVS, (OR STESA).
+C         A RETURN WITH KFLAG = -1 OR -2 MEANS EITHER
+C         ABS(H) = HMIN OR 10 CONSECUTIVE FAILURES OCCURRED.
+C         ON A RETURN WITH KFLAG NEGATIVE, THE VALUES OF TN AND
+C         THE YH ARRAY ARE AS OF THE BEGINNING OF THE LAST
+C         STEP, AND H IS THE LAST STEP SIZE ATTEMPTED.
+C MAXORD = THE MAXIMUM ORDER OF INTEGRATION METHOD TO BE ALLOWED.
+C MAXCOR = THE MAXIMUM NUMBER OF CORRECTOR ITERATIONS ALLOWED.
+C          (= 3, IF ISOPT = 0)
+C          (= 4, IF ISOPT = 1)
+C MSBP  = MAXIMUM NUMBER OF STEPS BETWEEN PJAC CALLS (MITER .GT. 0).
+C         IF ISOPT = 1, PJAC IS CALLED AT LEAST ONCE EVERY STEP.
+C MXNCF  = MAXIMUM NUMBER OF CONVERGENCE FAILURES ALLOWED.
+C METH/MITER = THE METHOD FLAGS.  SEE DESCRIPTION IN DRIVER.
+C N     = THE NUMBER OF FIRST-ORDER MODEL DIFFERENTIAL EQUATIONS.
+C-----------------------------------------------------------------------
+      KFLAG = 0
+      KFLAGS = 0
+      TOLD = TN
+      NCF = 0
+      IERPJ = 0
+      IERSL = 0
+      JCUR = 0
+      ICF = 0
+      IF (JSTART .GT. 0) GO TO 200
+      IF (JSTART .EQ. -1) GO TO 100
+      IF (JSTART .EQ. -2) GO TO 160
+C-----------------------------------------------------------------------
+C ON THE FIRST CALL, THE ORDER IS SET TO 1, AND OTHER VARIABLES ARE
+C INITIALIZED.  RMAX IS THE MAXIMUM RATIO BY WHICH H CAN BE INCREASED
+C IN A SINGLE STEP.  IT IS INITIALLY 1.E4 TO COMPENSATE FOR THE SMALL
+C INITIAL H, BUT THEN IS NORMALLY EQUAL TO 10.  IF A FAILURE
+C OCCURS (IN CORRECTOR CONVERGENCE OR ERROR TEST), RMAX IS SET AT 2
+C FOR THE NEXT INCREASE.
+C THESE COMPUTATIONS CONSIDER ONLY THE ORIGINAL SOLUTION VECTOR.
+C THE SENSITIVITY SOLUTION VECTORS ARE CONSIDERED IN STESA (ISOPT = 1).
+C-----------------------------------------------------------------------
+      LMAX = MAXORD + 1
+      NQ = 1
+      L = 2
+      IALTH = 2
+      RMAX = 10000.0D0
+      RC = ZERO
+      EL0 = ONE
+      CRATE = 0.7D0
+      DELP = ZERO
+      HOLD = H
+      MEO = METH
+      NSLP = 0
+      IPUP = MITER
+      IRET = 3
+      GO TO 140
+C-----------------------------------------------------------------------
+C THE FOLLOWING BLOCK HANDLES PRELIMINARIES NEEDED WHEN JSTART = -1.
+C IPUP IS SET TO MITER TO FORCE A MATRIX UPDATE.
+C IF AN ORDER INCREASE IS ABOUT TO BE CONSIDERED (IALTH = 1),
+C IALTH IS RESET TO 2 TO POSTPONE CONSIDERATION ONE MORE STEP.
+C IF THE CALLER HAS CHANGED METH, CFODE IS CALLED TO RESET
+C THE COEFFICIENTS OF THE METHOD.
+C IF THE CALLER HAS CHANGED MAXORD TO A VALUE LESS THAN THE CURRENT
+C ORDER NQ, NQ IS REDUCED TO MAXORD, AND A NEW H CHOSEN ACCORDINGLY.
+C IF H IS TO BE CHANGED, YH MUST BE RESCALED.
+C IF H OR METH IS BEING CHANGED, IALTH IS RESET TO L = NQ + 1
+C TO PREVENT FURTHER CHANGES IN H FOR THAT MANY STEPS.
+C-----------------------------------------------------------------------
+ 100   IPUP = MITER
+      LMAX = MAXORD + 1
+      IF (IALTH .EQ. 1) IALTH = 2
+      IF (METH .EQ. MEO) GO TO 110
+      CALL CFODE (METH, ELCO, TESCO)
+      MEO = METH
+      IF (NQ .GT. MAXORD) GO TO 120
+      IALTH = L
+      IRET = 1
+      GO TO 150
+ 110   IF (NQ .LE. MAXORD) GO TO 160
+ 120   NQ = MAXORD
+      L = LMAX
+      DO 125 I = 1,L
+ 125    EL(I) = ELCO(I,NQ)
+      NQNYH = NQ*NYH
+      RC = RC*EL(1)/EL0
+      EL0 = EL(1)
+      CONIT = 0.5D0/REAL(NQ+2)
+      DDN = VNORM (N, SAVF, EWT)/TESCO(1,L)
+      EXDN = ONE/REAL(L)
+      RHDN = ONE/(1.3D0*DDN**EXDN + 0.0000013D0)
+      RH = MIN(RHDN,ONE)
+      IREDO = 3
+      IF (H .EQ. HOLD) GO TO 170
+      RH = MIN(RH,ABS(H/HOLD))
+      H = HOLD
+      GO TO 175
+C-----------------------------------------------------------------------
+C CFODE IS CALLED TO GET ALL THE INTEGRATION COEFFICIENTS FOR THE
+C CURRENT METH.  THEN THE EL VECTOR AND RELATED CONSTANTS ARE RESET
+C WHENEVER THE ORDER NQ IS CHANGED, OR AT THE START OF THE PROBLEM.
+C-----------------------------------------------------------------------
+ 140   CALL CFODE (METH, ELCO, TESCO)
+ 150   DO 155 I = 1,L
+ 155    EL(I) = ELCO(I,NQ)
+      NQNYH = NQ*NYH
+      RC = RC*EL(1)/EL0
+      EL0 = EL(1)
+      CONIT = 0.5D0/REAL(NQ+2)
+      GO TO (160, 170, 200), IRET
+C-----------------------------------------------------------------------
+C IF H IS BEING CHANGED, THE H RATIO RH IS CHECKED AGAINST
+C RMAX, HMIN, AND HMXI, AND THE YH ARRAY RESCALED.  IALTH IS SET TO
+C L = NQ + 1 TO PREVENT A CHANGE OF H FOR THAT MANY STEPS, UNLESS
+C FORCED BY A CONVERGENCE OR ERROR TEST FAILURE.
+C-----------------------------------------------------------------------
+ 160  IF (H .EQ. HOLD) GO TO 200
+      RH = H/HOLD
+      H = HOLD
+      IREDO = 3
+      GO TO 175
+ 170   RH = MAX(RH,HMIN/ABS(H))
+ 175   RH = MIN(RH,RMAX)
+      RH = RH/MAX(ONE,ABS(H)*HMXI*RH)
+      R = ONE
+      DO 180 J = 2,L
+        R = R*RH
+        DO 180 I = 1,NYH
+ 180      YH(I,J) = YH(I,J)*R
+      H = H*RH
+      RC = RC*RH
+      IALTH = L
+      IF (IREDO .EQ. 0) GO TO 690
+C-----------------------------------------------------------------------
+C THIS SECTION COMPUTES THE PREDICTED VALUES BY EFFECTIVELY
+C MULTIPLYING THE YH ARRAY BY THE PASCAL TRIANGLE MATRIX.
+C RC IS THE RATIO OF NEW TO OLD VALUES OF THE COEFFICIENT  H*EL(1).
+C WHEN RC DIFFERS FROM 1 BY MORE THAN CCMAX, IPUP IS SET TO MITER
+C TO FORCE PJAC TO BE CALLED, IF A JACOBIAN IS INVOLVED.
+C IN ANY CASE, PJAC IS CALLED AT LEAST EVERY MSBP STEPS FOR ISOPT = 0,
+C AND AT LEAST ONCE EVERY STEP FOR ISOPT = 1.
+C-----------------------------------------------------------------------
+ 200  IF (ABS(RC-ONE) .GT. CCMAX) IPUP = MITER
+      IF (NST .GE. NSLP+MSBP) IPUP = MITER
+      TN = TN + H
+      I1 = NQNYH + 1
+      DO 215 JB = 1,NQ
+        I1 = I1 - NYH
+        DO 210 I = I1,NQNYH
+ 210      YH1(I) = YH1(I) + YH1(I+NYH)
+ 215    CONTINUE
+C-----------------------------------------------------------------------
+C UP TO MAXCOR CORRECTOR ITERATIONS ARE TAKEN.  (= 3, FOR ISOPT = 0;
+C = 4, FOR ISOPT = 1).  A CONVERGENCE TEST IS MADE ON THE R.M.S. NORM
+C OF EACH CORRECTION, WEIGHTED BY THE ERROR WEIGHT VECTOR EWT.  THE SUM
+C OF THE CORRECTIONS IS ACCUMULATED IN THE VECTOR ACOR(I), I = 1,N.
+C (ACOR(I), I = N+1,NYH IS LOADED IN SUBROUTINE STESA (ISOPT = 1).)
+C THE YH ARRAY IS NOT ALTERED IN THE CORRECTOR LOOP.
+C-----------------------------------------------------------------------
+ 220  M = 0
+      DO 230 I = 1,N
+ 230    Y(I) = YH(I,1)
+      CALL F (NEQ, TN, Y, PAR, SAVF)
+      NFE = NFE + 1
+      IF (IPUP .LE. 0) GO TO 250
+C-----------------------------------------------------------------------
+C IF INDICATED, THE MATRIX P = I - H*EL(1)*J IS REEVALUATED AND
+C PREPROCESSED BEFORE STARTING THE CORRECTOR ITERATION.  IPUP IS SET
+C TO 0 AS AN INDICATOR THAT THIS HAS BEEN DONE.
+C-----------------------------------------------------------------------
+      IPUP = 0
+      RC = ONE
+      NSLP = NST
+      CRATE = 0.7D0
+      CALL PJAC (NEQ, Y, YH, NYH, WM, IWM, EWT, SAVF, ACOR, PAR,
+     1   F, JAC, JOPT)
+      IF (IERPJ .NE. 0) GO TO 430
+ 250   DO 260 I = 1,N
+ 260    ACOR(I) = ZERO
+ 270   IF (MITER .NE. 0) GO TO 350
+C-----------------------------------------------------------------------
+C IN THE CASE OF FUNCTIONAL ITERATION, UPDATE Y DIRECTLY FROM
+C THE RESULT OF THE LAST FUNCTION EVALUATION.
+C (IF ISOPT = 1, FUNCTIONAL ITERATION IS NOT ALLOWED.)
+C-----------------------------------------------------------------------
+      DO 290 I = 1,N
+        SAVF(I) = H*SAVF(I) - YH(I,2)
+ 290    Y(I) = SAVF(I) - ACOR(I)
+      DEL = VNORM (N, Y, EWT)
+      DO 300 I = 1,N
+        Y(I) = YH(I,1) + EL(1)*SAVF(I)
+ 300    ACOR(I) = SAVF(I)
+      GO TO 400
+C-----------------------------------------------------------------------
+C IN THE CASE OF THE CHORD METHOD, COMPUTE THE CORRECTOR ERROR,
+C AND KppSolve THE LINEAR SYSTEM WITH THAT AS RIGHT-HAND SIDE AND
+C P AS COEFFICIENT MATRIX.
+C-----------------------------------------------------------------------
+ 350   DO 360 I = 1,N
+ 360    Y(I) = H*SAVF(I) - (YH(I,2) + ACOR(I))
+      CALL SLVS (WM, IWM, Y, SAVF)
+      IF (IERSL .LT. 0) GO TO 430
+      IF (IERSL .GT. 0) GO TO 410
+      DEL = VNORM (N, Y, EWT)
+      DO 380 I = 1,N
+        ACOR(I) = ACOR(I) + Y(I)
+ 380    Y(I) = YH(I,1) + EL(1)*ACOR(I)
+C-----------------------------------------------------------------------
+C TEST FOR CONVERGENCE.  IF M.GT.0, AN ESTIMATE OF THE CONVERGENCE
+C RATE CONSTANT IS STORED IN CRATE, AND THIS IS USED IN THE TEST.
+C-----------------------------------------------------------------------
+ 400   IF (M .NE. 0) CRATE = MAX(0.2D0*CRATE,DEL/DELP)
+      DCON = DEL*MIN(ONE,1.5D0*CRATE)/(TESCO(2,NQ)*CONIT)
+      IF (DCON .LE. ONE) GO TO 450
+      M = M + 1
+      IF (M .EQ. MAXCOR) GO TO 410
+      IF (M .GE. 2 .AND. DEL .GT. 2.0D0*DELP) GO TO 410
+      DELP = DEL
+      CALL F (NEQ, TN, Y, PAR, SAVF)
+      NFE = NFE + 1
+      GO TO 270
+C-----------------------------------------------------------------------
+C THE CORRECTOR ITERATION FAILED TO CONVERGE IN MAXCOR TRIES.
+C IF MITER .NE. 0 AND THE JACOBIAN IS OUT OF DATE, PJAC IS CALLED FOR
+C THE NEXT TRY.  OTHERWISE THE YH ARRAY IS RETRACTED TO ITS VALUES
+C BEFORE PREDICTION, AND H IS REDUCED, IF POSSIBLE.  IF H CANNOT BE
+C REDUCED OR MXNCF FAILURES HAVE OCCURRED, EXIT WITH KFLAG = -2.
+C-----------------------------------------------------------------------
+ 410   IF (MITER .EQ. 0 .OR. JCUR .EQ. 1) GO TO 430
+      ICF = 1
+      IPUP = MITER
+      GO TO 220
+ 430   ICF = 2
+      NCF = NCF + 1
+      RMAX = 2.0D0
+      TN = TOLD
+      I1 = NQNYH + 1
+      DO 445 JB = 1,NQ
+        I1 = I1 - NYH
+        DO 440 I = I1,NQNYH
+ 440      YH1(I) = YH1(I) - YH1(I+NYH)
+ 445    CONTINUE
+      IF (IERPJ .LT. 0 .OR. IERSL .LT. 0) GO TO 680
+      IF (ABS(H) .LE. HMIN*1.00001D0) GO TO 670
+      IF (NCF .EQ. MXNCF) GO TO 670
+      RH = 0.25D0
+      IPUP = MITER
+      IREDO = 1
+      GO TO 170
+C-----------------------------------------------------------------------
+C THE CORRECTOR HAS CONVERGED.
+C THE LOCAL ERROR TEST IS MADE AND CONTROL PASSES TO STATEMENT 500
+C IF IT FAILS. OTHERWISE, STESA IS CALLED (ISOPT = 1) TO PERFORM
+C SENSITIVITY CALCULATIONS AT CURRENT STEP SIZE AND ORDER.
+C-----------------------------------------------------------------------
+ 450   CONTINUE
+      IF (M .EQ. 0) DSM = DEL/TESCO(2,NQ)
+      IF (M .GT. 0) DSM = VNORM (N, ACOR, EWT)/TESCO(2,NQ)
+      IF (DSM .GT. ONE) GO TO 500
+C
+      IF (ISOPT .EQ. 0) GO TO 460
+C-----------------------------------------------------------------------
+C CALL STESA TO PERFORM EXPLICIT SENSITIVITY ANALYSIS.
+C IF THE LOCAL ERROR TEST FAILS (WITHIN STESA) FOR ANY SOLUTION VECTOR,
+C KFLAGS IS SET .LT. 0 AND CONTROL PASSES TO STATEMENT 500 UPON RETURN.
+C IN EITHER CASE, JCUR IS SET TO ZERO TO SIGNAL THAT THE JACOBIAN MAY
+C NEED UPDATING LATER.
+C-----------------------------------------------------------------------
+      CALL STESA (NEQ, Y, N, NSV, YH, WM, IWM, EWT, SAVF, ACOR,
+     1   PAR, NRS, F, JAC, DF, PJAC, PDF, SLVS)
+      IF (IERPJ .NE. 0 .OR. IERSL .NE. 0) GO TO 680
+      IF (KFLAGS .LT. 0) GO TO 500
+C-----------------------------------------------------------------------
+C AFTER A SUCCESSFUL STEP, UPDATE THE YH ARRAY.
+C CONSIDER CHANGING H IF IALTH = 1.  OTHERWISE DECREASE IALTH BY 1.
+C IF IALTH IS THEN 1 AND NQ .LT. MAXORD, THEN ACOR IS SAVED FOR
+C USE IN A POSSIBLE ORDER INCREASE ON THE NEXT STEP.
+C IF A CHANGE IN H IS CONSIDERED, AN INCREASE OR DECREASE IN ORDER
+C BY ONE IS CONSIDERED ALSO.  A CHANGE IN H IS MADE ONLY IF IT IS BY A
+C FACTOR OF AT LEAST 1.1.  IF NOT, IALTH IS SET TO 3 TO PREVENT
+C TESTING FOR THAT MANY STEPS.
+C-----------------------------------------------------------------------
+ 460   JCUR = 0
+      KFLAG = 0
+      IREDO = 0
+      NST = NST + 1
+      HU = H
+      NQU = NQ
+      DO 470 J = 1,L
+        DO 470 I = 1,NYH
+ 470      YH(I,J) = YH(I,J) + EL(J)*ACOR(I)
+      IALTH = IALTH - 1
+      IF (IALTH .EQ. 0) GO TO 520
+      IF (IALTH .GT. 1) GO TO 700
+      IF (L .EQ. LMAX) GO TO 700
+      DO 490 I = 1,NYH
+ 490    YH(I,LMAX) = ACOR(I)
+      GO TO 700
+C-----------------------------------------------------------------------
+C THE ERROR TEST FAILED IN EITHER STODE OR STESA.
+C KFLAG KEEPS TRACK OF MULTIPLE FAILURES.
+C RESTORE TN AND THE YH ARRAY TO THEIR PREVIOUS VALUES, AND PREPARE
+C TO TRY THE STEP AGAIN.  COMPUTE THE OPTIMUM STEP SIZE FOR THIS OR
+C ONE LOWER ORDER.  AFTER 2 OR MORE FAILURES, H IS FORCED TO DECREASE
+C BY A FACTOR OF 0.2 OR LESS.
+C-----------------------------------------------------------------------
+ 500  KFLAG = KFLAG - 1
+      JCUR = 0
+      TN = TOLD
+      I1 = NQNYH + 1
+      DO 515 JB = 1,NQ
+        I1 = I1 - NYH
+        DO 510 I = I1,NQNYH
+ 510      YH1(I) = YH1(I) - YH1(I+NYH)
+ 515    CONTINUE
+      RMAX = 2.0D0
+      IF (ABS(H) .LE. HMIN*1.00001D0) GO TO 660
+      IF (KFLAG .LE. -3) GO TO 640
+      IREDO = 2
+      RHUP = ZERO
+      GO TO 540
+C-----------------------------------------------------------------------
+*
+C REGARDLESS OF THE SUCCESS OR FAILURE OF THE STEP, FACTORS
+C RHDN, RHSM, AND RHUP ARE COMPUTED, BY WHICH H COULD BE MULTIPLIED
+C AT ORDER NQ - 1, ORDER NQ, OR ORDER NQ + 1, RESPECTIVELY.
+C IN THE CASE OF FAILURE, RHUP = 0.0 TO AVOID AN ORDER INCREASE.
+C THE LARGEST OF THESE IS DETERMINED AND THE NEW ORDER CHOSEN
+C ACCORDINGLY.  IF THE ORDER IS TO BE INCREASED, WE COMPUTE ONE
+C ADDITIONAL SCALED DERIVATIVE.
+C FOR ISOPT = 1, DUPS AND DSMS ARE LOADED WITH THE LARGEST RMS-NORMS
+C OBTAINED BY CONSIDERING SEPARATELY THE SENSITIVITY SOLUTION VECTORS.
+C-----------------------------------------------------------------------
+ 520   RHUP = ZERO
+      IF (L .EQ. LMAX) GO TO 540
+      DO 530 I = 1,N
+ 530    SAVF(I) = ACOR(I) - YH(I,LMAX)
+      DUP = VNORM (N, SAVF, EWT)/TESCO(3,NQ)
+      DUP = MAX(DUP,DUPS)
+      EXUP = ONE/REAL(L+1)
+      RHUP = ONE/(1.4D0*DUP**EXUP + 0.0000014D0)
+ 540   EXSM = ONE/REAL(L)
+      DSM = MAX(DSM,DSMS)
+      RHSM = ONE/(1.2D0*DSM**EXSM + 0.0000012D0)
+      RHDN = ZERO
+      IF (NQ .EQ. 1) GO TO 560
+      JPOINT = 1
+      DO 550 J = 1,NSV
+        DDN = VNORM (N, YH(JPOINT,L), EWT(JPOINT))/TESCO(1,NQ)
+        DDNS = MAX(DDNS,DDN)
+        JPOINT = JPOINT + N
+ 550  CONTINUE
+      DDN = DDNS
+      DDNS = ZERO
+      EXDN = ONE/REAL(NQ)
+      RHDN = ONE/(1.3D0*DDN**EXDN + 0.0000013D0)
+ 560   IF (RHSM .GE. RHUP) GO TO 570
+      IF (RHUP .GT. RHDN) GO TO 590
+      GO TO 580
+ 570   IF (RHSM .LT. RHDN) GO TO 580
+      NEWQ = NQ
+      RH = RHSM
+      GO TO 620
+ 580   NEWQ = NQ - 1
+      RH = RHDN
+      IF (KFLAG .LT. 0 .AND. RH .GT. ONE) RH = ONE
+      GO TO 620
+ 590   NEWQ = L
+      RH = RHUP
+      IF (RH .LT. 1.1D0) GO TO 610
+      R = EL(L)/REAL(L)
+      DO 600 I = 1,NYH
+ 600    YH(I,NEWQ+1) = ACOR(I)*R
+      GO TO 630
+ 610   IALTH = 3
+      GO TO 700
+ 620   IF ((KFLAG .EQ. 0) .AND. (RH .LT. 1.1D0)) GO TO 610
+      IF (KFLAG .LE. -2) RH = MIN(RH,0.2D0)
+C-----------------------------------------------------------------------
+C IF THERE IS A CHANGE OF ORDER, RESET NQ, L, AND THE COEFFICIENTS.
+C IN ANY CASE H IS RESET ACCORDING TO RH AND THE YH ARRAY IS RESCALED.
+C THEN EXIT FROM 690 IF THE STEP WAS OK, OR REDO THE STEP OTHERWISE.
+C-----------------------------------------------------------------------
+      IF (NEWQ .EQ. NQ) GO TO 170
+ 630   NQ = NEWQ
+      L = NQ + 1
+      IRET = 2
+      GO TO 150
+C-----------------------------------------------------------------------
+C CONTROL REACHES THIS SECTION IF 3 OR MORE FAILURES HAVE OCCURED.
+C IF 10 FAILURES HAVE OCCURRED, EXIT WITH KFLAG = -1.
+C IT IS ASSUMED THAT THE DERIVATIVES THAT HAVE ACCUMULATED IN THE
+C YH ARRAY HAVE ERRORS OF THE WRONG ORDER.  HENCE THE FIRST
+C DERIVATIVE IS RECOMPUTED, AND THE ORDER IS SET TO 1.  THEN
+C H IS REDUCED BY A FACTOR OF 10, AND THE STEP IS RETRIED,
+C UNTIL IT SUCCEEDS OR H REACHES HMIN.
+C-----------------------------------------------------------------------
+ 640   IF (KFLAG .EQ. -10) GO TO 660
+      RH = 0.1D0
+      RH = MAX(HMIN/ABS(H),RH)
+      H = H*RH
+      DO 645 I = 1,NYH
+ 645    Y(I) = YH(I,1)
+      CALL F (NEQ, TN, Y, PAR, SAVF)
+      NFE = NFE + 1
+      IF (ISOPT .EQ. 0) GO TO 649
+      CALL SPRIME (NEQ, Y, YH, NYH, N, NSV, WM, IWM, EWT, SAVF, ACOR,
+     1   ACOR(N+1), PAR, F, JAC, DF, PJAC, PDF)
+      IF (IERSP .LT. 0) GO TO 680
+      DO 646 I = N+1,NYH
+ 646    YH(I,2) = H*YH(I,2)
+ 649  DO 650 I = 1,N
+ 650    YH(I,2) = H*SAVF(I)
+      IPUP = MITER
+      IALTH = 5
+      IF (NQ .EQ. 1) GO TO 200
+      NQ = 1
+      L = 2
+      IRET = 3
+      GO TO 150
+C-----------------------------------------------------------------------
+C ALL RETURNS ARE MADE THROUGH THIS SECTION.  H IS SAVED IN HOLD
+C TO ALLOW THE CALLER TO CHANGE H ON THE NEXT STEP.
+C-----------------------------------------------------------------------
+ 660   KFLAG = -1
+      GO TO 720
+ 670   KFLAG = -2
+      GO TO 720
+ 680   KFLAG = -3
+      GO TO 720
+ 690   RMAX = 10.0D0
+ 700   R = ONE/TESCO(2,NQU)
+      DO 710 I = 1,NYH
+ 710    ACOR(I) = ACOR(I)*R
+ 720   HOLD = H
+      JSTART = 1
+      RETURN
+C----------------------- END OF SUBROUTINE STODE -----------------------
+      END
+      SUBROUTINE CFODE (METH, ELCO, TESCO)
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+      DIMENSION ELCO(13,12), TESCO(3,12)
+C-----------------------------------------------------------------------
+C CFODE IS CALLED BY THE INTEGRATOR ROUTINE TO SET COEFFICIENTS
+C NEEDED THERE.  THE COEFFICIENTS FOR THE CURRENT METHOD, AS
+C GIVEN BY THE VALUE OF METH, ARE SET FOR ALL ORDERS AND SAVED.
+C THE MAXIMUM ORDER ASSUMED HERE IS 12 IF METH = 1 AND 5 IF METH = 2.
+C (A SMALLER VALUE OF THE MAXIMUM ORDER IS ALSO ALLOWED.)
+C CFODE IS CALLED ONCE AT THE BEGINNING OF THE PROBLEM,
+C AND IS NOT CALLED AGAIN UNLESS AND UNTIL METH IS CHANGED.
+C
+C THE ELCO ARRAY CONTAINS THE BASIC METHOD COEFFICIENTS.
+C THE COEFFICIENTS EL(I), 1 .LE. I .LE. NQ+1, FOR THE METHOD OF
+C ORDER NQ ARE STORED IN ELCO(I,NQ).  THEY ARE GIVEN BY A GENETRATING
+C POLYNOMIAL, I.E.,
+C    L(X) = EL(1) + EL(2)*X + ... + EL(NQ+1)*X**NQ.
+C FOR THE IMPLICIT ADAMS METHODS, L(X) IS GIVEN BY
+C    DL/DX = (X+1)*(X+2)*...*(X+NQ-1)/FACTORIAL(NQ-1),    L(-1) = 0.
+C FOR THE BDF METHODS, L(X) IS GIVEN BY
+C    L(X) = (X+1)*(X+2)* ... *(X+NQ)/K,
+C WHERE        K = FACTORIAL(NQ)*(1 + 1/2 + ... + 1/NQ).
+C
+C THE TESCO ARRAY CONTAINS TEST CONSTANTS USED FOR THE
+C LOCAL ERROR TEST AND THE SELECTION OF STEP SIZE AND/OR ORDER.
+C AT ORDER NQ, TESCO(K,NQ) IS USED FOR THE SELECTION OF STEP
+C SIZE AT ORDER NQ - 1 IF K = 1, AT ORDER NQ IF K = 2, AND AT ORDER
+C NQ + 1 IF K = 3.
+C-----------------------------------------------------------------------
+      DIMENSION PC(12)
+      PARAMETER (ONE=1.0D0,ZERO=0.0D0)
+C
+      GO TO (100, 200), METH
+C
+ 100   ELCO(1,1) = ONE
+      ELCO(2,1) = ONE
+      TESCO(1,1) = ZERO
+      TESCO(2,1) = 2.0D0
+      TESCO(1,2) = ONE
+      TESCO(3,12) = ZERO
+      PC(1) = ONE
+      RQFAC = ONE
+      DO 140 NQ = 2,12
+C-----------------------------------------------------------------------
+C THE PC ARRAY WILL CONTAIN THE COEFFICIENTS OF THE POLYNOMIAL
+C    P(X) = (X+1)*(X+2)*...*(X+NQ-1).
+C INITIALLY, P(X) = 1.
+C-----------------------------------------------------------------------
+        RQ1FAC = RQFAC
+        RQFAC = RQFAC/REAL(NQ)
+        NQM1 = NQ - 1
+        FNQM1 = REAL(NQM1)
+        NQP1 = NQ + 1
+C FORM COEFFICIENTS OF P(X)*(X+NQ-1). ----------------------------------
+        PC(NQ) = ZERO
+        DO 110 IB = 1,NQM1
+          I = NQP1 - IB
+ 110      PC(I) = PC(I-1) + FNQM1*PC(I)
+        PC(1) = FNQM1*PC(1)
+C COMPUTE INTEGRAL, -1 TO 0, OF P(X) AND X*P(X). -----------------------
+        PINT = PC(1)
+        XPIN = PC(1)/2.0D0
+        TSIGN = ONE
+        DO 120 I = 2,NQ
+          TSIGN = -TSIGN
+          PINT = PINT + TSIGN*PC(I)/REAL(I)
+ 120      XPIN = XPIN + TSIGN*PC(I)/REAL(I+1)
+C STORE COEFFICIENTS IN ELCO AND TESCO. --------------------------------
+        ELCO(1,NQ) = PINT*RQ1FAC
+        ELCO(2,NQ) = ONE
+        DO 130 I = 2,NQ
+ 130      ELCO(I+1,NQ) = RQ1FAC*PC(I)/REAL(I)
+        AGAMQ = RQFAC*XPIN
+        RAGQ = ONE/AGAMQ
+        TESCO(2,NQ) = RAGQ
+        IF (NQ .LT. 12) TESCO(1,NQP1) = RAGQ*RQFAC/REAL(NQP1)
+        TESCO(3,NQM1) = RAGQ
+ 140    CONTINUE
+      RETURN
+C
+ 200   PC(1) = ONE
+      RQ1FAC = ONE
+      DO 230 NQ = 1,5
+C-----------------------------------------------------------------------
+C THE PC ARRAY WILL CONTAIN THE COEFFICIENTS OF THE POLYNOMIAL
+C    P(X) = (X+1)*(X+2)*...*(X+NQ).
+C INITIALLY, P(X) = 1.
+C-----------------------------------------------------------------------
+        FNQ = REAL(NQ)
+        NQP1 = NQ + 1
+C FORM COEFFICIENTS OF P(X)*(X+NQ). ------------------------------------
+        PC(NQP1) = ZERO
+        DO 210 IB = 1,NQ
+          I = NQ + 2 - IB
+ 210      PC(I) = PC(I-1) + FNQ*PC(I)
+        PC(1) = FNQ*PC(1)
+C STORE COEFFICIENTS IN ELCO AND TESCO. --------------------------------
+        DO 220 I = 1,NQP1
+ 220      ELCO(I,NQ) = PC(I)/PC(2)
+        ELCO(2,NQ) = ONE
+        TESCO(1,NQ) = RQ1FAC
+        TESCO(2,NQ) = REAL(NQP1)/ELCO(1,NQ)
+        TESCO(3,NQ) = REAL(NQ+2)/ELCO(1,NQ)
+        RQ1FAC = RQ1FAC/FNQ
+ 230    CONTINUE
+      RETURN
+C----------------------- END OF SUBROUTINE CFODE -----------------------
+      END
+      SUBROUTINE SOLSY (WM, IWM, X, TEM)
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+      DIMENSION WM(*), IWM(*), X(*), TEM(*)
+      PARAMETER (ZERO=0.0D0,ONE=1.0D0)
+      COMMON /ODE001/ ROWND, ROWNS(173),
+     2   RDUM1(37), EL0, H, RDUM2(6),
+     3   IOWND(14), IOWNS(4),
+     4   IDUM1(4), IERSL, IDUM2(5),
+     5   MITER, IDUM3(4), N, IDUM4(5)
+C-----------------------------------------------------------------------
+C THIS ROUTINE MANAGES THE SOLUTION OF THE LINEAR SYSTEM ARISING FROM
+C A CHORD ITERATION.  IT IS CALLED IF MITER .NE. 0.
+C IF MITER IS 1 OR 2, IT CALLS DGESL TO ACCOMPLISH THIS.
+C IF MITER = 3 IT UPDATES THE COEFFICIENT H*EL0 IN THE DIAGONAL
+C MATRIX, AND THEN COMPUTES THE SOLUTION.
+C IF MITER IS 4 OR 5, IT CALLS DGBSL.
+C COMMUNICATION WITH SOLSY USES THE FOLLOWING VARIABLES..
+C WM   = REAL WORK SPACE CONTAINING THE INVERSE DIAGONAL MATRIX IF
+C        MITER = 3 AND THE LU DECOMPOSITION OF THE MATRIX OTHERWISE.
+C        STORAGE OF MATRIX ELEMENTS STARTS AT WM(3).
+C        WM ALSO CONTAINS THE FOLLOWING MATRIX-RELATED DATA..
+C        WM(1) = SQRT(UROUND) (NOT USED HERE),
+C        WM(2) = HL0, THE PREVIOUS VALUE OF H*EL0, USED IF MITER = 3.
+C IWM  = INTEGER WORK SPACE CONTAINING PIVOT INFORMATION, STARTING AT
+C        IWM(21), IF MITER IS 1, 2, 4, OR 5.  IWM ALSO CONTAINS BAND
+C        PARAMETERS ML = IWM(1) AND MU = IWM(2) IF MITER IS 4 OR 5.
+C X    = THE RIGHT-HAND SIDE VECTOR ON INPUT, AND THE SOLUTION VECTOR
+C        ON OUTPUT, OF LENGTH N.
+C TEM  = VECTOR OF WORK SPACE OF LENGTH N, NOT USED IN THIS VERSION.
+C IERSL = OUTPUT FLAG (IN COMMON).  IERSL = 0 IF NO TROUBLE OCCURRED.
+C        IERSL = 1 IF A SINGULAR MATRIX AROSE WITH MITER = 3.
+C THIS ROUTINE ALSO USES THE COMMON VARIABLES EL0, H, MITER, AND N.
+C-----------------------------------------------------------------------
+      IERSL = 0
+      GO TO (100, 100, 300, 400, 400), MITER
+ 100   CALL DGESL (WM(3), N, N, IWM(21), X, 0)
+      RETURN
+C
+ 300   PHL0 = WM(2)
+      HL0 = H*EL0
+      WM(2) = HL0
+      IF (HL0 .EQ. PHL0) GO TO 330
+      R = HL0/PHL0
+      DO 320 I = 1,N
+        DI = ONE - R*(ONE - ONE/WM(I+2))
+        IF (ABS(DI) .EQ. ZERO) GO TO 390
+ 320    WM(I+2) = ONE/DI
+ 330   DO 340 I = 1,N
+ 340    X(I) = WM(I+2)*X(I)
+      RETURN
+ 390   IERSL = 1
+      RETURN
+C
+ 400   ML = IWM(1)
+      MU = IWM(2)
+      MEBAND = 2*ML + MU + 1
+      CALL DGBSL (WM(3), MEBAND, N, ML, MU, IWM(21), X, 0)
+      RETURN
+C----------------------- END OF SUBROUTINE SOLSY -----------------------
+      END
+      SUBROUTINE EWSET (N, ITOL, RTOL, ATOL, YCUR, EWT)
+C-----------------------------------------------------------------------
+C THIS SUBROUTINE SETS THE ERROR WEIGHT VECTOR EWT ACCORDING TO
+C    EWT(I) = RTOL(I)*ABS(YCUR(I)) + ATOL(I),  I = 1,...,N,
+C WITH THE SUBSCRIPT ON RTOL AND/OR ATOL POSSIBLY REPLACED BY 1 ABOVE,
+C DEPENDING ON THE VALUE OF ITOL.
+C-----------------------------------------------------------------------
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+      DIMENSION RTOL(*), ATOL(*), YCUR(N), EWT(N)
+      RTOLI = RTOL(1)
+      ATOLI = ATOL(1)
+      DO 10 I = 1,N
+        IF (ITOL .GE. 3) RTOLI = RTOL(I)
+        IF (ITOL .EQ. 2 .OR. ITOL .EQ. 4) ATOLI = ATOL(I)
+        EWT(I) = RTOLI*ABS(YCUR(I)) + ATOLI
+ 10     CONTINUE
+      RETURN
+C----------------------- END OF SUBROUTINE EWSET -----------------------
+      END
+      DOUBLE PRECISION FUNCTION VNORM (N, V, W)
+C-----------------------------------------------------------------------
+C THIS FUNCTION ROUTINE COMPUTES THE WEIGHTED ROOT-MEAN-SQUARE NORM
+C OF THE VECTOR OF LENGTH N CONTAINED IN THE ARRAY V, WITH WEIGHTS
+C CONTAINED IN THE ARRAY W OF LENGTH N..
+C  VNORM = SQRT( (1/N) * SUM( V(I)*W(I) )**2 )
+C PROTECTION FOR UNDERFLOW/OVERFLOW IS ACCOMPLISHED USING TWO
+C CONSTANTS WHICH ARE HOPEFULLY APPLICABLE FOR ALL MACHINES.
+C THESE ARE:
+C     CUTLO = maximum of SQRT(U/EPS)  over all known machines
+C     CUTHI = minimum of SQRT(Z)      over all known machines
+C WHERE
+C     EPS = smallest number s.t. EPS + 1 .GT. 1
+C     U   = smallest positive number (underflow limit)
+C     Z   = largest number (overflow limit)
+C
+C DETAILS OF THE ALGORITHM AND OF VALUES OF CUTLO AND CUTHI ARE
+C FOUND IN THE BLAS ROUTINE SNRM2 (SEE ALSO ALGORITHM 539, TRANS.
+C MATH. SOFTWARE, VOL. 5 NO. 3, 1979, 308-323.
+C FOR SINGLE PRECISION, THE FOLLOWING VALUES SHOULD BE UNIVERSAL:
+C     DATA CUTLO,CUTHI /4.441E-16,1.304E19/
+C FOR DOUBLE PRECISION, USE
+C     DATA CUTLO,CUTHI /8.232D-11,1.304D19/
+C
+C-----------------------------------------------------------------------
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+      INTEGER NEXT,I,J,N
+      DIMENSION V(N),W(N)
+      DATA CUTLO,CUTHI /8.232D-11,1.304D19/
+      DATA ZERO,ONE/0.0D0,1.0D0/
+C  BLAS ALGORITHM
+      NEXT = 1
+      SUM = ZERO
+      I = 1
+20    SX = V(I)*W(I)
+      GO TO (30,40,70,80),NEXT
+30    IF (ABS(SX).GT.CUTLO) GO TO 110
+      NEXT = 2
+      XMAX = ZERO
+40    IF (SX.EQ.ZERO) GO TO 130
+      IF (ABS(SX).GT.CUTLO) GO TO 110
+      NEXT = 3
+      GO TO 60
+50    I=J
+      NEXT = 4
+      SUM = (SUM/SX)/SX
+60    XMAX = ABS(SX)
+      GO TO 90
+70    IF(ABS(SX).GT.CUTLO) GO TO 100
+80    IF(ABS(SX).LE.XMAX) GO TO 90
+      SUM = ONE + SUM * (XMAX/SX)**2
+      XMAX = ABS(SX)
+      GO TO 130
+90    SUM = SUM + (SX/XMAX)**2
+      GO TO 130
+100   SUM = (SUM*XMAX)*XMAX
+110   HITEST = CUTHI/REAL(N)
+      DO 120 J = I,N
+         SX = V(J)*W(J)
+         IF(ABS(SX).GE.HITEST) GO TO 50
+         SUM = SUM + SX**2
+120   CONTINUE
+      VNORM = SQRT(SUM)
+      GO TO 140
+130   CONTINUE
+      I = I + 1
+      IF (I.LE.N) GO TO 20
+      VNORM = XMAX * SQRT(SUM)
+140   CONTINUE
+      RETURN
+C----------------------- END OF FUNCTION VNORM -------------------------
+      END
+      SUBROUTINE SVCOM (RSAV, ISAV)
+C-----------------------------------------------------------------------
+C THIS ROUTINE STORES IN RSAV AND ISAV THE CONTENTS OF COMMON BLOCKS
+C ODE001, ODE002 AND EH0001, WHICH ARE USED INTERNALLY IN THE ODESSA
+C PACKAGE.
+C RSAV = REAL ARRAY OF LENGTH 222 OR MORE.
+C ISAV = INTEGER ARRAY OF LENGTH 52 OR MORE.
+C-----------------------------------------------------------------------
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+      DIMENSION RSAV(*), ISAV(*)
+      COMMON /ODE001/ RODE1(219), IODE1(39)
+      COMMON /ODE002/ RODE2(3), IODE2(11)
+      COMMON /EH0001/ IEH(2)
+      DATA LRODE1/219/, LIODE1/39/, LRODE2/3/, LIODE2/11/
+C
+      DO 10 I = 1,LRODE1
+ 10     RSAV(I) = RODE1(I)
+      DO 20 I = 1,LRODE2
+        J = LRODE1 + I
+ 20     RSAV(J) = RODE2(I)
+      DO 30 I = 1,LIODE1
+ 30     ISAV(I) = IODE1(I)
+      DO 40 I = 1,LIODE2
+        J = LIODE1 + I
+ 40     ISAV(J) = IODE2(I)
+      ISAV(LIODE1+LIODE2+1) = IEH(1)
+      ISAV(LIODE1+LIODE2+2) = IEH(2)
+      RETURN
+C----------------------- END OF SUBROUTINE SVCOM -----------------------
+      END
+      SUBROUTINE RSCOM (RSAV, ISAV)
+C-----------------------------------------------------------------------
+C THIS ROUTINE RESTORES FROM RSAV AND ISAV THE CONTENTS OF COMMON BLOCKS
+C ODE001, ODE002 AND EH0001, WHICH ARE USED INTERNALLY IN THE ODESSSA
+C PACKAGE.  THIS PRESUMES THAT RSAV AND ISAV WERE LOADED BY MEANS
+C OF SUBROUTINE SVCOM OR THE EQUIVALENT.
+C-----------------------------------------------------------------------
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+      DIMENSION RSAV(*), ISAV(*)
+      COMMON /ODE001/ RODE1(219), IODE1(39)
+      COMMON /ODE002/ RODE2(3), IODE2(11)
+      COMMON /EH0001/ IEH(2)
+      DATA LRODE1/219/, LIODE1/39/, LRODE2/3/, LIODE2/11/
+C
+      DO 10 I = 1,LRODE1
+ 10     RODE1(I) = RSAV(I)
+      DO 20 I = 1,LRODE2
+        J = LRODE1 + I
+ 20     RODE2(I) = RSAV(J)
+      DO 30 I = 1,LIODE1
+ 30     IODE1(I) = ISAV(I)
+      DO 40 I = 1,LODE2
+        J = LIODE1 + I
+ 40     IODE2(I) = ISAV(J)
+      IEH(1) = ISAV(LIODE1+LIODE2+1)
+      IEH(2) = ISAV(LIODE1+LIODE2+2)
+      RETURN
+C----------------------- END OF SUBROUTINE RSCOM -----------------------
+      END
+      SUBROUTINE DGEFA(A,LDA,N,IPVT,INFO)
+      INTEGER LDA,N,IPVT(*),INFO
+      DOUBLE PRECISION A(LDA,*)
+C
+C    DGEFA FACTORS A DOUBLE PRECISION MATRIX BY GAUSSIAN ELIMINATION.
+C
+C    DGEFA IS USUALLY CALLED BY DGECO, BUT IT CAN BE CALLED
+C    DIRECTLY WITH A SAVING IN TIME IF  RCOND  IS NOT NEEDED.
+C    (TIME FOR DGECO) = (1 + 9/N)*(TIME FOR DGEFA) .
+C
+C    ON ENTRY
+C
+C       A       DOUBLE PRECISION(LDA, N)
+C               THE MATRIX TO BE FACTORED.
+C
+C       LDA     INTEGER
+C               THE LEADING DIMENSION OF THE ARRAY  A .
+C
+C       N       INTEGER
+C               THE ORDER OF THE MATRIX  A .
+C
+C    ON RETURN
+C
+C       A       AN UPPER TRIANGULAR MATRIX AND THE MULTIPLIERS
+C               WHICH WERE USED TO OBTAIN IT.
+C               THE FACTORIZATION CAN BE WRITTEN  A = L*U  WHERE
+C               L  IS A PRODUCT OF PERMUTATION AND UNIT LOWER
+C               TRIANGULAR MATRICES AND  U  IS UPPER TRIANGULAR.
+C
+C       IPVT    INTEGER(N)
+C               AN INTEGER VECTOR OF PIVOT INDICES.
+C
+C       INFO    INTEGER
+C               = 0  NORMAL VALUE.
+C               = K  IF  U(K,K) .EQ. 0.0 .  THIS IS NOT AN ERROR
+C                    CONDITION FOR THIS SUBROUTINE, BUT IT DOES
+C                    INDICATE THAT DGESL OR DGEDI WILL DIVIDE BY ZERO
+C                    IF CALLED.  USE  RCOND  IN DGECO FOR A RELIABLE
+C                    INDICATION OF SINGULARITY.
+C
+C    LINPACK. THIS VERSION DATED 08/14/78 .
+C    CLEVE MOLER, UNIVERSITY OF NEW MEXICO, ARGONNE NATIONAL LAB.
+C
+C    SUBROUTINES AND FUNCTIONS
+C
+C    BLAS DAXPY,DSCAL,IDAMAX
+C
+C    INTERNAL VARIABLES
+C
+      DOUBLE PRECISION T
+      INTEGER IDAMAX,J,K,KP1,L,NM1
+C
+C
+C     GAUSSIAN ELIMINATION WITH PARTIAL PIVOTING
+C
+      INFO = 0
+      NM1 = N - 1
+      IF (NM1 .LT. 1) GO TO 70
+      DO 60 K = 1, NM1
+         KP1 = K + 1
+C
+C        FIND L = PIVOT INDEX
+C
+         L = IDAMAX(N-K+1,A(K,K),1) + K - 1
+         IPVT(K) = L
+C
+C        ZERO PIVOT IMPLIES THIS COLUMN ALREADY TRIANGULARIZED
+C
+         IF (A(L,K) .EQ. 0.0D0) GO TO 40
+C
+C           INTERCHANGE IF NECESSARY
+C
+            IF (L .EQ. K) GO TO 10
+               T = A(L,K)
+               A(L,K) = A(K,K)
+               A(K,K) = T
+  10        CONTINUE
+C
+C           COMPUTE MULTIPLIERS
+C
+            T  = -1.0D0/A(K,K)
+            CALL DSCAL(N-K,T,A(K+1,K),1)
+C
+C           ROW ELIMINATION WITH COLUMN INDEXING
+C
+            DO 30 J = KP1, N
+               T = A(L,J)
+               IF (L .EQ. K) GO TO 20
+                  A(L,J) = A(K,J)
+                  A(K,J) = T
+  20           CONTINUE
+               CALL DAXPY(N-K,T,A(K+1,K),1,A(K+1,J),1)
+  30        CONTINUE
+         GO TO 50
+  40     CONTINUE
+            INFO = K
+  50     CONTINUE
+  60  CONTINUE
+  70  CONTINUE
+      IPVT(N) = N
+      IF (A(N,N) .EQ. 0.0D0) INFO = N
+      RETURN
+      END
+      SUBROUTINE DGESL(A,LDA,N,IPVT,B,JOB)
+      INTEGER LDA,N,IPVT(*),JOB
+      DOUBLE PRECISION A(LDA,*),B(*)
+C
+C     DGESL KppSolveS THE DOUBLE PRECISION SYSTEM
+C     A * X = B  OR  TRANS(A) * X = B
+C    USING THE FACTORS COMPUTED BY DGECO OR DGEFA.
+C
+C    ON ENTRY
+C
+C       A       DOUBLE PRECISION(LDA, N)
+C               THE OUTPUT FROM DGECO OR DGEFA.
+C
+C       LDA     INTEGER
+C               THE LEADING DIMENSION OF THE ARRAY  A .
+C
+C       N       INTEGER
+C               THE ORDER OF THE MATRIX  A .
+C
+C       IPVT    INTEGER(N)
+C               THE PIVOT VECTOR FROM DGECO OR DGEFA.
+C
+C       B       DOUBLE PRECISION(N)
+C               THE RIGHT HAND SIDE VECTOR.
+C
+C       JOB     INTEGER
+C               = 0         TO KppSolve  A*X = B ,
+C               = NONZERO   TO KppSolve  TRANS(A)*X = B  WHERE
+C                           TRANS(A)  IS THE TRANSPOSE.
+C
+C    ON RETURN
+C
+C       B       THE SOLUTION VECTOR  X .
+C
+C    ERROR CONDITION
+C
+C       A DIVISION BY ZERO WILL OCCUR IF THE INPUT FACTOR CONTAINS A
+C       ZERO ON THE DIAGONAL.  TECHNICALLY THIS INDICATES SINGULARITY
+C       BUT IT IS OFTEN CAUSED BY IMPROPER ARGUMENTS OR IMPROPER
+C       SETTING OF LDA .  IT WILL NOT OCCUR IF THE SUBROUTINES ARE
+C       CALLED CORRECTLY AND IF DGECO HAS SET RCOND .GT. 0.0
+C       OR DGEFA HAS SET INFO .EQ. 0 .
+C
+C    TO COMPUTE  INVERSE(A) * C  WHERE  C  IS A MATRIX
+C    WITH  P  COLUMNS
+C          CALL DGECO(A,LDA,N,IPVT,RCOND,Z)
+C          IF (RCOND IS TOO SMALL) GO TO ...
+C          DO 10 J = 1, P
+C             CALL DGESL(A,LDA,N,IPVT,C(1,J),0)
+C       10 CONTINUE
+C
+C    LINPACK. THIS VERSION DATED 08/14/78 .
+C    CLEVE MOLER, UNIVERSITY OF NEW MEXICO, ARGONNE NATIONAL LAB.
+C
+C    SUBROUTINES AND FUNCTIONS
+C
+C    BLAS DAXPY,DDOT
+C
+C    INTERNAL VARIABLES
+C
+      DOUBLE PRECISION DDOT,T
+      INTEGER K,KB,L,NM1
+C
+      NM1 = N - 1
+      IF (JOB .NE. 0) GO TO 50
+C
+C        JOB = 0 , KppSolve  A * X = B
+C        FIRST KppSolve  L*Y = B
+C
+         IF (NM1 .LT. 1) GO TO 30
+         DO 20 K = 1, NM1
+            L = IPVT(K)
+            T = B(L)
+            IF (L .EQ. K) GO TO 10
+               B(L) = B(K)
+               B(K) = T
+  10        CONTINUE
+            CALL DAXPY(N-K,T,A(K+1,K),1,B(K+1),1)
+  20     CONTINUE
+  30     CONTINUE
+C
+C        NOW KppSolve  U*X = Y
+C
+         DO 40 KB = 1, N
+            K = N + 1 - KB
+            B(K) = B(K)/A(K,K)
+            T = -B(K)
+            CALL DAXPY(K-1,T,A(1,K),1,B(1),1)
+  40     CONTINUE
+      GO TO 100
+  50  CONTINUE
+C
+C        JOB = NONZERO, KppSolve  TRANS(A) * X = B
+C        FIRST KppSolve  TRANS(U)*Y = B
+C
+         DO 60 K = 1, N
+            T = DDOT(K-1,A(1,K),1,B(1),1)
+            B(K) = (B(K) - T)/A(K,K)
+  60     CONTINUE
+C
+C        NOW KppSolve TRANS(L)*X = Y
+C
+         IF (NM1 .LT. 1) GO TO 90
+         DO 80 KB = 1, NM1
+            K = N - KB
+            B(K) = B(K) + DDOT(N-K,A(K+1,K),1,B(K+1),1)
+            L = IPVT(K)
+            IF (L .EQ. K) GO TO 70
+               T = B(L)
+               B(L) = B(K)
+               B(K) = T
+  70        CONTINUE
+  80     CONTINUE
+  90     CONTINUE
+  100  CONTINUE
+      RETURN
+      END
+      SUBROUTINE DGBFA(ABD,LDA,N,ML,MU,IPVT,INFO)
+      INTEGER LDA,N,ML,MU,IPVT(*),INFO
+      DOUBLE PRECISION ABD(LDA,*)
+C
+C    DGBFA FACTORS A DOUBLE PRECISION BAND MATRIX BY ELIMINATION.
+C
+C    DGBFA IS USUALLY CALLED BY DGBCO, BUT IT CAN BE CALLED
+C    DIRECTLY WITH A SAVING IN TIME IF  RCOND  IS NOT NEEDED.
+C
+C    ON ENTRY
+C
+C       ABD     DOUBLE PRECISION(LDA, N)
+C               CONTAINS THE MATRIX IN BAND STORAGE.  THE COLUMNS
+C               OF THE MATRIX ARE STORED IN THE COLUMNS OF  ABD  AND
+C               THE DIAGONALS OF THE MATRIX ARE STORED IN ROWS
+C               ML+1 THROUGH 2*ML+MU+1 OF  ABD .
+C               SEE THE COMMENTS BELOW FOR DETAILS.
+C
+C       LDA     INTEGER
+C               THE LEADING DIMENSION OF THE ARRAY  ABD .
+C               LDA MUST BE .GE. 2*ML + MU + 1 .
+C
+C       N       INTEGER
+C               THE ORDER OF THE ORIGINAL MATRIX.
+C
+C       ML      INTEGER
+C               NUMBER OF DIAGONALS BELOW THE MAIN DIAGONAL.
+C               0 .LE. ML .LT. N .
+C
+C       MU      INTEGER
+C               NUMBER OF DIAGONALS ABOVE THE MAIN DIAGONAL.
+C               0 .LE. MU .LT. N .
+C               MORE EFFICIENT IF  ML .LE. MU .
+C    ON RETURN
+C
+C       ABD     AN UPPER TRIANGULAR MATRIX IN BAND STORAGE AND
+C               THE MULTIPLIERS WHICH WERE USED TO OBTAIN IT.
+C               THE FACTORIZATION CAN BE WRITTEN  A = L*U  WHERE
+C               L  IS A PRODUCT OF PERMUTATION AND UNIT LOWER
+C               TRIANGULAR MATRICES AND  U  IS UPPER TRIANGULAR.
+C
+C       IPVT    INTEGER(N)
+C               AN INTEGER VECTOR OF PIVOT INDICES.
+C
+C       INFO    INTEGER
+C               = 0  NORMAL VALUE.
+C               = K  IF  U(K,K) .EQ. 0.0 .  THIS IS NOT AN ERROR
+C                    CONDITION FOR THIS SUBROUTINE, BUT IT DOES
+C                    INDICATE THAT DGBSL WILL DIVIDE BY ZERO IF
+C                    CALLED.  USE  RCOND  IN DGBCO FOR A RELIABLE
+C                    INDICATION OF SINGULARITY.
+C
+C    BAND STORAGE
+C
+C          IF  A  IS A BAND MATRIX, THE FOLLOWING PROGRAM SEGMENT
+C          WILL SET UP THE INPUT.
+C
+C                  ML = (BAND WIDTH BELOW THE DIAGONAL)
+C                  MU = (BAND WIDTH ABOVE THE DIAGONAL)
+C                  M = ML + MU + 1
+C                  DO 20 J = 1, N
+C                     I1 = MAX0(1, J-MU)
+C                     I2 = MIN0(N, J+ML)
+C                     DO 10 I = I1, I2
+C                        K = I - J + M
+C                        ABD(K,J) = A(I,J)
+C               10    CONTINUE
+C               20 CONTINUE
+C
+C          THIS USES ROWS  ML+1  THROUGH  2*ML+MU+1  OF  ABD .
+C          IN ADDITION, THE FIRST  ML  ROWS IN  ABD  ARE USED FOR
+C          ELEMENTS GENERATED DURING THE TRIANGULARIZATION.
+C          THE TOTAL NUMBER OF ROWS NEEDED IN  ABD  IS  2*ML+MU+1 .
+C          THE  ML+MU BY ML+MU  UPPER LEFT TRIANGLE AND THE
+C          ML BY ML  LOWER RIGHT TRIANGLE ARE NOT REFERENCED.
+C
+C    LINPACK. THIS VERSION DATED 08/14/78 .
+C    CLEVE MOLER, UNIVERSITY OF NEW MEXICO, ARGONNE NATIONAL LAB.
+C
+C    SUBROUTINES AND FUNCTIONS
+C
+C    BLAS DAXPY,DSCAL,IDAMAX
+C    FORTRAN MAX0,MIN0
+C
+C    INTERNAL VARIABLES
+C
+      DOUBLE PRECISION T
+      INTEGER I,IDAMAX,I0,J,JU,JZ,J0,J1,K,KP1,L,LM,M,MM,NM1
+C
+C
+      M = ML + MU + 1
+      INFO = 0
+C
+C     ZERO INITIAL FILL-IN COLUMNS
+C
+      J0 = MU + 2
+      J1 = MIN0(N,M) - 1
+      IF (J1 .LT. J0) GO TO 30
+      DO 20 JZ = J0, J1
+         I0 = M + 1 - JZ
+         DO 10 I = I0, ML
+            ABD(I,JZ) = 0.0D0
+  10     CONTINUE
+  20  CONTINUE
+  30  CONTINUE
+      JZ = J1
+      JU = 0
+C
+C     GAUSSIAN ELIMINATION WITH PARTIAL PIVOTING
+C
+      NM1 = N - 1
+      IF (NM1 .LT. 1) GO TO 130
+      DO 120 K = 1, NM1
+         KP1 = K + 1
+C
+C        ZERO NEXT FILL-IN COLUMN
+C
+         JZ = JZ + 1
+         IF (JZ .GT. N) GO TO 50
+         IF (ML .LT. 1) GO TO 50
+            DO 40 I = 1, ML
+               ABD(I,JZ) = 0.0D0
+  40        CONTINUE
+  50     CONTINUE
+C
+C        FIND L = PIVOT INDEX
+C
+         LM = MIN0(ML,N-K)
+         L = IDAMAX(LM+1,ABD(M,K),1) + M - 1
+         IPVT(K) = L + K - M
+C
+C        ZERO PIVOT IMPLIES THIS COLUMN ALREADY TRIANGULARIZED
+C
+         IF (ABD(L,K) .EQ. 0.0D0) GO TO 100
+C
+C           INTERCHANGE IF NECESSARY
+C
+            IF (L .EQ. M) GO TO 60
+               T = ABD(L,K)
+               ABD(L,K) = ABD(M,K)
+               ABD(M,K) = T
+  60        CONTINUE
+C
+C           COMPUTE MULTIPLIERS
+C
+            T = -1.0D0/ABD(M,K)
+            CALL DSCAL(LM,T,ABD(M+1,K),1)
+C
+C           ROW ELIMINATION WITH COLUMN INDEXING
+C
+            JU = MIN0(MAX0(JU,MU+IPVT(K)),N)
+            MM = M
+            IF (JU .LT. KP1) GO TO 90
+            DO 80 J = KP1, JU
+               L = L - 1
+               MM = MM - 1
+               T = ABD(L,J)
+               IF (L .EQ. MM) GO TO 70
+                  ABD(L,J) = ABD(MM,J)
+                  ABD(MM,J) = T
+  70           CONTINUE
+               CALL DAXPY(LM,T,ABD(M+1,K),1,ABD(MM+1,J),1)
+  80        CONTINUE
+  90        CONTINUE
+         GO TO 110
+  100    CONTINUE
+            INFO = K
+  110    CONTINUE
+  120  CONTINUE
+  130  CONTINUE
+      IPVT(N) = N
+      IF (ABD(M,N) .EQ. 0.0D0) INFO = N
+      RETURN
+      END
+      SUBROUTINE DGBSL(ABD,LDA,N,ML,MU,IPVT,B,JOB)
+      INTEGER LDA,N,ML,MU,IPVT(*),JOB
+      DOUBLE PRECISION ABD(LDA,*),B(*)
+C
+C    DGBSL KppSolveS THE DOUBLE PRECISION BAND SYSTEM
+C    A * X = B  OR  TRANS(A) * X = B
+C    USING THE FACTORS COMPUTED BY DGBCO OR DGBFA.
+C
+C    ON ENTRY
+C
+C       ABD     DOUBLE PRECISION(LDA, N)
+C               THE OUTPUT FROM DGBCO OR DGBFA.
+C
+C       LDA     INTEGER
+C               THE LEADING DIMENSION OF THE ARRAY  ABD .
+C
+C       N       INTEGER
+C               THE ORDER OF THE ORIGINAL MATRIX.
+C
+C       ML      INTEGER
+C               NUMBER OF DIAGONALS BELOW THE MAIN DIAGONAL.
+C
+C       MU      INTEGER
+C               NUMBER OF DIAGONALS ABOVE THE MAIN DIAGONAL.
+C
+C       IPVT    INTEGER(N)
+C               THE PIVOT VECTOR FROM DGBCO OR DGBFA.
+C
+C       B       DOUBLE PRECISION(N)
+C               THE RIGHT HAND SIDE VECTOR.
+C
+C       JOB     INTEGER
+C               = 0         TO KppSolve  A*X = B ,
+C               = NONZERO   TO KppSolve  TRANS(A)*X = B , WHERE
+C                           TRANS(A)  IS THE TRANSPOSE.
+C
+C    ON RETURN
+C
+C       B       THE SOLUTION VECTOR  X .
+C
+C    ERROR CONDITION
+C
+C       A DIVISION BY ZERO WILL OCCUR IF THE INPUT FACTOR CONTAINS A
+C       ZERO ON THE DIAGONAL.  TECHNICALLY THIS INDICATES SINGULARITY
+C       BUT IT IS OFTEN CAUSED BY IMPROPER ARGUMENTS OR IMPROPER
+C       SETTING OF LDA .  IT WILL NOT OCCUR IF THE SUBROUTINES ARE
+C       CALLED CORRECTLY AND IF DGBCO HAS SET RCOND .GT. 0.0
+C       OR DGBFA HAS SET INFO .EQ. 0 .
+C
+C    TO COMPUTE  INVERSE(A) * C  WHERE  C  IS A MATRIX
+C    WITH  P  COLUMNS
+C          CALL DGBCO(ABD,LDA,N,ML,MU,IPVT,RCOND,Z)
+C          IF (RCOND IS TOO SMALL) GO TO ...
+C          DO 10 J = 1, P
+C             CALL DGBSL(ABD,LDA,N,ML,MU,IPVT,C(1,J),0)
+C       10 CONTINUE
+C
+C    LINPACK. THIS VERSION DATED 08/14/78 .
+C    CLEVE MOLER, UNIVERSITY OF NEW MEXICO, ARGONNE NATIONAL LAB.
+C
+C    SUBROUTINES AND FUNCTIONS
+C
+C    BLAS DAXPY,DDOT
+C    FORTRAN MIN0
+C
+C    INTERNAL VARIABLES
+C
+      DOUBLE PRECISION DDOT,T
+      INTEGER K,KB,L,LA,LB,LM,M,NM1
+C
+      M = MU + ML + 1
+      NM1 = N - 1
+      IF (JOB .NE. 0) GO TO 50
+C
+C        JOB = 0 , KppSolve  A * X = B
+C        FIRST KppSolve L*Y = B
+C
+         IF (ML .EQ. 0) GO TO 30
+         IF (NM1 .LT. 1) GO TO 30
+            DO 20 K = 1, NM1
+               LM = MIN0(ML,N-K)
+               L = IPVT(K)
+               T = B(L)
+               IF (L .EQ. K) GO TO 10
+                  B(L) = B(K)
+                  B(K) = T
+  10           CONTINUE
+               CALL DAXPY(LM,T,ABD(M+1,K),1,B(K+1),1)
+  20        CONTINUE
+  30     CONTINUE
+C
+C        NOW KppSolve  U*X = Y
+C
+         DO 40 KB = 1, N
+            K = N + 1 - KB
+            B(K) = B(K)/ABD(M,K)
+            LM = MIN0(K,M) - 1
+            LA = M - LM
+            LB = K - LM
+            T = -B(K)
+            CALL DAXPY(LM,T,ABD(LA,K),1,B(LB),1)
+  40     CONTINUE
+      GO TO 100
+  50  CONTINUE
+C
+C        JOB = NONZERO, KppSolve  TRANS(A) * X = B
+C        FIRST KppSolve  TRANS(U)*Y = B
+C
+         DO 60 K = 1, N
+            LM = MIN0(K,M) - 1
+            LA = M - LM
+            LB = K - LM
+            T = DDOT(LM,ABD(LA,K),1,B(LB),1)
+            B(K) = (B(K) - T)/ABD(M,K)
+  60     CONTINUE
+C
+C        NOW KppSolve TRANS(L)*X = Y
+C
+         IF (ML .EQ. 0) GO TO 90
+         IF (NM1 .LT. 1) GO TO 90
+            DO 80 KB = 1, NM1
+               K = N - KB
+               LM = MIN0(ML,N-K)
+               B(K) = B(K) + DDOT(LM,ABD(M+1,K),1,B(K+1),1)
+               L = IPVT(K)
+               IF (L .EQ. K) GO TO 70
+                  T = B(L)
+                  B(L) = B(K)
+                  B(K) = T
+  70           CONTINUE
+  80        CONTINUE
+  90     CONTINUE
+  100  CONTINUE
+      RETURN
+      END
+      SUBROUTINE DAXPY(N,DA,DX,INCX,DY,INCY)
+C
+C     CONSTANT TIMES A VECTOR PLUS A VECTOR.
+C     USES UNROLLED LOOPS FOR INCREMENTS EQUAL TO ONE.
+C     JACK DONGARRA, LINPACK, 3/11/78.
+C
+      DOUBLE PRECISION DX(*),DY(*),DA
+      INTEGER I,INCX,INCY,IX,IY,M,MP1,N
+C
+      IF(N.LE.0)RETURN
+      IF (DA .EQ. 0.0D0) RETURN
+      IF(INCX.EQ.1.AND.INCY.EQ.1)GO TO 20
+C
+C        CODE FOR UNEQUAL INCREMENTS OR EQUAL INCREMENTS
+C          NOT EQUAL TO 1
+C
+      IX = 1
+      IY = 1
+      IF(INCX.LT.0)IX = (-N+1)*INCX + 1
+      IF(INCY.LT.0)IY = (-N+1)*INCY + 1
+      DO 10 I = 1,N
+        DY(IY) = DY(IY) + DA*DX(IX)
+        IX = IX + INCX
+        IY = IY + INCY
+  10  CONTINUE
+      RETURN
+C
+C        CODE FOR BOTH INCREMENTS EQUAL TO 1
+C
+C
+C        CLEAN-UP LOOP
+C
+  20  M = MOD(N,4)
+      IF( M .EQ. 0 ) GO TO 40
+      DO 30 I = 1,M
+        DY(I) = DY(I) + DA*DX(I)
+  30  CONTINUE
+      IF( N .LT. 4 ) RETURN
+  40  MP1 = M + 1
+      DO 50 I = MP1,N,4
+        DY(I) = DY(I) + DA*DX(I)
+        DY(I + 1) = DY(I + 1) + DA*DX(I + 1)
+        DY(I + 2) = DY(I + 2) + DA*DX(I + 2)
+        DY(I + 3) = DY(I + 3) + DA*DX(I + 3)
+  50  CONTINUE
+      RETURN
+      END
+      SUBROUTINE DSCAL(N,DA,DX,INCX)
+C
+C     SCALES A VECTOR BY A CONSTANT.
+C     USES UNROLLED LOOPS FOR INCREMENT EQUAL TO ONE.
+C     JACK DONGARRA, LINPACK, 3/11/78.
+C
+      DOUBLE PRECISION DA,DX(*)
+      INTEGER I,INCX,M,MP1,N,NINCX
+C
+      IF(N.LE.0)RETURN
+      IF(INCX.EQ.1)GO TO 20
+C
+C        CODE FOR INCREMENT NOT EQUAL TO 1
+*
+C
+      NINCX = N*INCX
+      DO 10 I = 1,NINCX,INCX
+        DX(I) = DA*DX(I)
+  10  CONTINUE
+      RETURN
+C
+C        CODE FOR INCREMENT EQUAL TO 1
+C
+C
+C        CLEAN-UP LOOP
+C
+  20  M = MOD(N,5)
+      IF( M .EQ. 0 ) GO TO 40
+      DO 30 I = 1,M
+        DX(I) = DA*DX(I)
+  30  CONTINUE
+      IF( N .LT. 5 ) RETURN
+  40  MP1 = M + 1
+      DO 50 I = MP1,N,5
+        DX(I) = DA*DX(I)
+        DX(I + 1) = DA*DX(I + 1)
+        DX(I + 2) = DA*DX(I + 2)
+        DX(I + 3) = DA*DX(I + 3)
+        DX(I + 4) = DA*DX(I + 4)
+  50  CONTINUE
+      RETURN
+      END
+      DOUBLE PRECISION FUNCTION DDOT(N,DX,INCX,DY,INCY)
+C
+C     FORMS THE DOT PRODUCT OF TWO VECTORS.
+C     USES UNROLLED LOOPS FOR INCREMENTS EQUAL TO ONE.
+C     JACK DONGARRA, LINPACK, 3/11/78.
+C
+      DOUBLE PRECISION DX(*),DY(*),DTEMP
+      INTEGER I,INCX,INCY,IX,IY,M,MP1,N
+C
+      DDOT = 0.0D0
+      DTEMP = 0.0D0
+      IF(N.LE.0)RETURN
+      IF(INCX.EQ.1.AND.INCY.EQ.1)GO TO 20
+C
+C        CODE FOR UNEQUAL INCREMENTS OR EQUAL INCREMENTS
+C          NOT EQUAL TO 1
+C
+      IX = 1
+      IY = 1
+      IF(INCX.LT.0)IX = (-N+1)*INCX + 1
+      IF(INCY.LT.0)IY = (-N+1)*INCY + 1
+      DO 10 I = 1,N
+        DTEMP = DTEMP + DX(IX)*DY(IY)
+        IX = IX + INCX
+        IY = IY + INCY
+  10  CONTINUE
+      DDOT = DTEMP
+      RETURN
+C
+C        CODE FOR BOTH INCREMENTS EQUAL TO 1
+C
+C
+C        CLEAN-UP LOOP
+C
+  20  M = MOD(N,5)
+      IF( M .EQ. 0 ) GO TO 40
+      DO 30 I = 1,M
+        DTEMP = DTEMP + DX(I)*DY(I)
+  30  CONTINUE
+      IF( N .LT. 5 ) GO TO 60
+  40  MP1 = M + 1
+      DO 50 I = MP1,N,5
+        DTEMP = DTEMP + DX(I)*DY(I) + DX(I + 1)*DY(I + 1) +
+     *   DX(I + 2)*DY(I + 2) + DX(I + 3)*DY(I + 3) + DX(I + 4)*DY(I + 4)
+  50  CONTINUE
+  60  DDOT = DTEMP
+      RETURN
+      END
+      INTEGER FUNCTION IDAMAX(N,DX,INCX)
+C
+C     FINDS THE INDEX OF ELEMENT HAVING MAX. ABSOLUTE VALUE.
+C     JACK DONGARRA, LINPACK, 3/11/78.
+C
+      DOUBLE PRECISION DX(*),DMAX
+      INTEGER I,INCX,IX,N
+C
+      IDAMAX = 0
+      IF( N .LT. 1 ) RETURN
+      IDAMAX = 1
+      IF(N.EQ.1)RETURN
+      IF(INCX.EQ.1)GO TO 20
+C
+C        CODE FOR INCREMENT NOT EQUAL TO 1
+C
+      IX = 1
+      DMAX = DABS(DX(1))
+      IX = IX + INCX
+      DO 10 I = 2,N
+         IF(DABS(DX(IX)).LE.DMAX) GO TO 5
+         IDAMAX = I
+         DMAX = DABS(DX(IX))
+   5     IX = IX + INCX
+  10  CONTINUE
+      RETURN
+C
+C        CODE FOR INCREMENT EQUAL TO 1
+C
+  20  DMAX = DABS(DX(1))
+      DO 30 I = 2,N
+         IF(DABS(DX(I)).LE.DMAX) GO TO 30
+         IDAMAX = I
+         DMAX = DABS(DX(I))
+  30  CONTINUE
+      RETURN
+      END
+      DOUBLE PRECISION FUNCTION D1MACH (IDUM)
+      INTEGER IDUM
+C-----------------------------------------------------------------------
+C THIS ROUTINE COMPUTES THE UNIT ROUNDOFF OF THE MACHINE IN DOUBLE
+C PRECISION.  THIS IS DEFINED AS THE SMALLEST POSITIVE MACHINE NUMBER
+C U SUCH THAT  1.0D0 + U .NE. 1.0D0 (IN DOUBLE PRECISION).
+C-----------------------------------------------------------------------
+      DOUBLE PRECISION U, COMP
+      U = 1.0D0
+ 10   U = U*0.5D0
+      COMP = 1.0D0 + U
+      IF (COMP .NE. 1.0D0) GO TO 10
+      D1MACH = U*2.0D0
+      RETURN
+C----------------------- END OF FUNCTION D1MACH ------------------------
+      END
+      SUBROUTINE XERR (MSG, NERR, IERT, NI, I1, I2, NR, R1, R2)
+      INTEGER NERR, IERT, NI, I1, I2, NR,
+     1   LUN, LUNIT, MESFLG
+      DOUBLE PRECISION R1, R2
+      CHARACTER*(*) MSG
+C-------------------------------------------------------------------
+C
+C ALL ARGUMENTS ARE INPUT ARGUMENTS.
+C
+C MSG   = THE MESSAGE (CHARACTER VARIABLE)
+C NERR  = THE ERROR NUMBER (NOT USED).
+C IERT  = THE ERROR TYPE..
+C         1 MEANS RECOVERABLE (CONTROL RETURNS TO CALLER).
+C         2 MEANS FATAL (RUN IS ABORTED--SEE NOTE BELOW).
+C NI    = NUMBER OF INTEGERS (0, 1, OR 2) TO BE PRINTED WITH MESSAGE.
+C I1,I2  = INTEGERS TO BE PRINTED, DEPENDING ON NI.
+C NR    = NUMBER OF REALS (0, 1, OR 2) TO BE PRINTED WITH MESSAGE.
+C R1,R2  = REALS TO BE PRINTED, DEPENDING ON NR.
+C
+C  NOTES:
+C 1. THE DIMENSION OF MSG IS ASSUMED TO BE AT MOST 60.
+C   (MULTI-LINE MESSAGES ARE GENERATED BY REPEATED CALLS.)
+C 2. IF IERT = 2, CONTROL PASSES TO THE STATEMENT  STOP
+C   TO ABORT THE RUN.  THIS STATEMENT MAY BE MACHINE-DEPENDENT.
+C 3. R1 AND R2 ARE ASSUMED TO BE IN DOUBLE PRECISION AND ARE PRINTED
+C   IN D21.13 FORMAT.
+C 4. THE COMMON BLOCK /EH0001/ BELOW IS DATA-LOADED (A MACHINE-
+C   DEPENDENT FEATURE) WITH DEFAULT VALUES.
+C   THIS BLOCK IS NEEDED FOR PROPER RETENTION OF PARAMETERS USED BY
+C   THIS ROUTINE WHICH THE USER CAN RESET BY CALLING XSETF OR XSETUN.
+C   THE VARIABLES IN THIS BLOCK ARE AS FOLLOWS..
+C      MESFLG = PRINT CONTROL FLAG..
+C               1 MEANS PRINT ALL MESSAGES (THE DEFAULT).
+C               0 MEANS NO PRINTING.
+C      LUNIT  = LOGICAL UNIT NUMBER FOR MESSAGES.
+C               THE DEFAULT IS 6 (MACHINE-DEPENDENT).
+C 5. TO CHANGE THE DEFAULT OUTPUT UNIT, CHANGE THE DATA STATEMENT
+C  IN THE BLOCK DATA SUBPROGRAM BELOW.
+C
+C FOR A DIFFERENT RUN-ABORT COMMAND, CHANGE THE STATEMENT FOLLOWING
+C STATEMENT 100 AT THE END.
+C-----------------------------------------------------------------------
+      COMMON /EH0001/ MESFLG, LUNIT
+      IF (MESFLG .EQ. 0) GO TO 100
+C GET LOGICAL UNIT NUMBER. ---------------------------------------------
+      LUN = LUNIT
+C WRITE THE MESSAGE. ---------------------------------------------------
+      WRITE (LUN, 10) MSG
+ 10   FORMAT(1X,A)
+C-----------------------------------------------------------------------
+      IF (NI .EQ. 1) WRITE (LUN, 20) I1
+ 20   FORMAT(6X,'IN ABOVE MESSAGE,  I1 = ',I10)
+      IF (NI .EQ. 2) WRITE (LUN, 30) I1,I2
+ 30   FORMAT(6X,'IN ABOVE MESSAGE,  I1 = ',I10,3X,'I2 = ',I10)
+      IF (NR .EQ. 1) WRITE (LUN, 40) R1
+ 40   FORMAT(6X,'IN ABOVE MESSAGE,  R1 = ',D21.13)
+      IF (NR .EQ. 2) WRITE (LUN, 50) R1,R2
+ 50   FORMAT(6X,'IN ABOVE,  R1 = ',D21.13,3X,'R2 = ',D21.13)
+C ABORT THE RUN IF IERT = 2. -------------------------------------------
+ 100   IF (IERT .NE. 2) RETURN
+      STOP
+C----------------------- END OF SUBROUTINE XERR ----------------------
+      END
+      SUBROUTINE XSETF (MFLAG)
+C
+C THIS ROUTINE RESETS THE PRINT CONTROL FLAG MFLAG.
+C
+      INTEGER MFLAG, MESFLG, LUNIT
+      COMMON /EH0001/ MESFLG, LUNIT
+C
+      IF (MFLAG .EQ. 0 .OR. MFLAG .EQ. 1) MESFLG = MFLAG
+      RETURN
+C----------------------- END OF SUBROUTINE XSETF -----------------------
+      END
+      SUBROUTINE XSETUN (LUN)
+C
+C THIS ROUTINE RESETS THE LOGICAL UNIT NUMBER FOR MESSAGES.
+C
+      INTEGER LUN, MESFLG, LUNIT
+      COMMON /EH0001/ MESFLG, LUNIT
+C
+      IF (LUN .GT. 0) LUNIT = LUN
+      RETURN
+C----------------------- END OF SUBROUTINE XSETUN ----------------------
+      END
+      BLOCK DATA
+C-----------------------------------------------------------------------
+C THIS DATA SUBPROGRAM LOADS VARIABLES INTO THE INTERNAL COMMON
+C BLOCKS USED BY ODESSA AND ITS VARIANTS.  THE VARIABLES ARE
+C DEFINED AS FOLLOWS..
+C  ILLIN  = COUNTER FOR THE NUMBER OF CONSECUTIVE TIMES THE PACKAGE
+C           WAS CALLED WITH ILLEGAL INPUT.  THE RUN IS STOPPED WHEN
+C           ILLIN REACHES 5.
+C  NTREP  = COUNTER FOR THE NUMBER OF CONSECUTIVE TIMES THE PACKAGE
+C           WAS CALLED WITH ISTATE = 1 AND TOUT = T.  THE RUN IS
+C           STOPPED WHEN NTREP REACHES 5.
+C  MESFLG = FLAG TO CONTROL PRINTING OF ERROR MESSAGES.  1 MEANS PRINT,
+C           0 MEANS NO PRINTING.
+C  LUNIT  = DEFAULT VALUE OF LOGICAL UNIT NUMBER FOR PRINTING OF ERROR
+C           MESSAGES.
+C-----------------------------------------------------------------------
+      INTEGER ILLIN, IDUMA, NTREP, IDUMB, IOWNS, ICOMM, MESFLG, LUNIT
+      DOUBLE PRECISION ROWND, ROWNS, RCOMM
+      COMMON /ODE001/ ROWND, ROWNS(173), RCOMM(45),
+     1   ILLIN, IDUMA(10), NTREP, IDUMB(2), IOWNS(4), ICOMM(21)
+      COMMON /EH0001/ MESFLG, LUNIT
+      DATA ILLIN/0/, NTREP/0/
+      DATA MESFLG/1/, LUNIT/6/
+C
+C------------------------ END OF BLOCK DATA ----------------------------
+      END
+C-----------------------------------------------------------------------
+C INSTRUCTIONS FOR INSTALLING THE ODESSA PACKAGE. (see @ below.)
+C
+C ODESSA is an enhanced version of the widely disseminated ODE solver
+C LSODE, and as such retains the same properties regarding portability.
+C The notes below, adapted from the installation instructions for LSODE,
+C are intended to facilitate the installation of the ODESSA package in
+C the user's software library.
+C
+C 1. Both a single and a double precision version of ODESSA are
+C provided in this release.  It is expected that most users will
+C utilize the double precision version, except in the case of
+C extended word-length computers. Most routines used by ODESSA
+C are named the same regardless of whether they are single or
+C double precision.  The exceptions are the LINPAK and BLAS
+C routines that follow the LINPAK/BLAS naming conventions, i.e.
+C D--- for a double precision routine, and S--- for a single
+C precision routine.  Thus, care should be taken if both single
+C and double precision versions are stored in the same library.
+C
+C 2. Several routines in ODESSA have the same names as the LSODE
+C routines from which they were derived, although they contain
+C different code.  These are: INTDY, STODE, PREPJ, SVCOM, and
+C RSCOM.  If ODESSA is added to a subroutine library of which
+C LSODE is already a member, these routine names must be changed
+C in one of the two programs.  Also see the note regarding BLOCK
+C DATA subroutines below.
+C
+C 3.  In many cases, ODESSA uses unaltered LSODE routines and
+C common library routines that may already reside on your system.
+C The installation of ODESSA should be done so that identical routines
+C are shared rather than kept as duplicate copies.
+C a.  Normally, the user calls only subroutine ODESSA, but for optional
+C     capabilities the user may also CALL XSETUN, XSETF, SVCOM, RSCOM,
+C     or INTDY, as described in Part II of the Full Description in the
+C     User Documentation (ODESSA.DOC, see below).  Except for INTDY,
+C     none of these are called from within the package.
+C b.  Two routines, EWSET and VNORM, are optionally replaceable by the
+C     user if the package version is unsuitable.  Hence, the install-
+C     ation of the package should be done so that the user's version
+C     for either routine overrides the package version.
+C c.  The function routine D1MACH is provided to compute the unit
+C     roundoff of the machine and precision in use, in a manner com-
+C     patible with machine parameter routines developed at Bell Lab-
+C     oratories.  If such a routine has already been installed on
+C     your system, the version supplied here may be discarded.
+C d.  Linear algebraic systems are solved with routines from the
+C     LINPACK collection, in conjunction with routines from the Basic
+C     Linear Algebra module collection (BLAS).  In double precision,
+C     the names are DGEFA, DGESL, DGBFA, and DGBSL (from LINPACK), and
+C     DAXPY, DSCAL, IDAMAX, and DDOT (from BLAS). If these routines
+C     have already been installed on your system, copies supplied with
+C     ODESSA may be discarded.  The single precision versions of these
+C     routines are used in the single precision version.
+C
+C 4. There are four integer variables, in the two labeled COMMON
+C blocks /ODE001/ and /EH0001/, which need to be loaded with DATA
+C statements.  They can vary during execution, and are in common to
+C assure their retention between calls.  This is legal in ANSI Fortran
+C only if done in a BLOCK DATA subprogram, and this package has a
+C BLOCK DATA for this purpose.  However, BLOCK DATA subprograms can be
+C difficult to install in libraries, and many compilers allow such DATA
+C statements in subroutines.  If your system allows this, the location
+C of the DATA statements are just after the initial type and common
+C declarations in subroutines ODESSA and XERR.  In ODESSA, ILLIN and
+C NTREP are DATA-loaded as 0.  In XERR, MESFLG is loaded as 1 and
+C LUNIT is loaded as the appropriate default logical unit number.
+C
+C 5. The ODESSA package contains subscript expressions which may not
+C be accepted by some compilers.  Subscripts of the form I + J, I - J,
+C etc., occur in various routines.  If any of these forms are
+C unacceptable to your compiler, an extra line of code setting the
+C subscript to a dummy integer value should be added for each subscipt.
+C
+C 6. User documentation is provided in a two-level structure
+C to accommmodate both the casual and serious user.  The novice or
+C casual user should need to read only the Summary of Usage and the
+C Example Problem located at the beginning of the documentation.  More
+C experienced users, requiring the full set of available options,
+C should read the Full Description which follows the Example Problem.
+C
+C 7. The user documentation may need corrections in the following ways:
+C a.  If subroutine names have been changed to avoid conflicts between
+C     the LSODE and ODESSA packages, the corresponding name changes
+C     should be made in the documentation.
+C b.  In the Summary of Usage, and in the description of XSETUN under
+C     Part II of the Full Description, the default logical unit number
+C     should be corrected if it is not 6.
+C c.  In the Summary of Usage, users should be instructed to execute
+C     CALL XSETF(1) before the first CALL to ODESSA, if this is neces-
+C     sary for proper error message handling.  (see note 2(e) above.)
+C d.  In the description of the subroutines DF and JAC in the Summary
+C     of Usage and in Part I of the Full Description, it is stated
+C     that dummy names may be passed if these two routines are not user
+C     supplied.  Your system may require the user to supply a dummy
+C     subroutine instead.
+C e.  The ODESSA package treats the arguments NEQ, RTOL, and ATOL as
+C     arrays (possibly of length 1), while the usage documentation
+C     states that these arguments may be either arrays or scalars.
+C     If your system does not allow such a mismatch, then the
+C     documentation should be changed to reflect this.
+C 8.  A demonstration program is provided with the package for
+C     verification.
+C
+C
+C     Jorge R. Leis and Mark A. Kramer
+C     Department of Chemical Engineering
+C     Massachusetts Institute of Technology
+C     Cambridge, Massachusetts  02139
+C     U.S.A.
+C
+C     Current address of J.R. Leis (Jan. 1988):
+C
+C     Shell Development Company
+C     Westhollow Research Center
+C     Houston, TX
+C
+C  @ Adapted from 'Instructions for Installing LSODE', written by
+C    Alan C. Hindmarsh, Mathematics & Statistics Division, L-316,
+C    Lawrence Livermore National Laboratory, Livermore, CA. 94550
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/atm_radau5.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/atm_radau5.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/atm_radau5.def	(revision 2696)
@@ -0,0 +1,19 @@
+ 
+#FUNCTION AGGREGATE
+#JACOBIAN FULL
+#DOUBLE ON 
+#INTFILE atm_radau5
+
+#INLINE F77_GLOBAL
+      REAL*8 STEPSTART
+      COMMON /GDATA/ STEPSTART
+#ENDINLINE
+
+#INLINE F77_INIT
+        STEPMIN=0.0001
+        STEPMAX=3600.
+        STEPSTART=STEPMIN
+#ENDINLINE
+
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/atm_radau5.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/atm_radau5.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/atm_radau5.f	(revision 2696)
@@ -0,0 +1,4572 @@
+      SUBROUTINE INTEGRATE( TIN, TOUT )
+
+      IMPLICIT KPP_REAL (A-H,O-Z)
+      INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Global.h'
+
+C TIN - Start Time
+      KPP_REAL TIN
+C TOUT - End Time
+      KPP_REAL TOUT, H
+      SAVE H
+      DATA H /0.0d0/
+      INTEGER Nfun, Njac, Nstp, Nacc, Nrej, Ndec, Nsol
+      SAVE Nstp, Nacc, Nrej
+      DATA Nstp /0/
+      DATA Nacc /0/
+      DATA Nrej /0/
+      INTEGER i
+
+      PARAMETER (LWORK=5*NVAR*NVAR+12*NVAR+20,LIWORK=3*NVAR+20)
+      PARAMETER (LRCONT=4*NVAR+4)
+
+      KPP_REAL WORK(LWORK), RPAR(1)
+      INTEGER IWORK(LIWORK), IPAR(1)
+      COMMON /CONT/ ICONT(4),RCONT(LRCONT)
+      EXTERNAL FUNC_CHEM,JAC_CHEM,SOLOUT
+
+
+      ITOL=1     ! --- VECTOR TOLERANCES
+      IJAC=1     ! --- COMPUTE THE JACOBIAN ANALYTICALLY
+      IMAS=0     ! --- DIFFERENTIAL EQUATION IS IN EXPLICIT FORM
+      IOUT=0     ! --- OUTPUT ROUTINE IS NOT USED DURING INTEGRATION
+      MLJAC=NVAR ! --- JACOBIAN IS A FULL MATRIX
+      MUJAC=NVAR ! --- JACOBIAN IS A FULL MATRIX
+      MLMAS=NVAR ! --- JACOBIAN IS A FULL MATRIX
+      MUMAS=NVAR ! --- JACOBIAN IS A FULL MATRIX
+
+      DO i=1,20
+        IWORK(i) = 0
+        WORK(i) = 0.D0
+      ENDDO
+
+      IWORK(3) = 8    !  Max no. of Newton iterations
+      IWORK(4) = 0    !  Starting values for Newton are interpolated (0) or zero (1)
+      IWORK(8) = 2    ! Gustaffson (1) or classic(2) controller
+      WORK(2)  = 0.9  ! Safety factor
+
+      CALL RADAU5(NVAR,FUNC_CHEM,TIN,VAR,TOUT,H,
+     &                  RTOL,ATOL,ITOL,
+     &                  JAC_CHEM ,IJAC,MLJAC,MUJAC,
+     &                  FUNC_CHEM ,IMAS,MLMAS,MUMAS,
+     &                  SOLOUT,IOUT,
+     &                  WORK,LWORK,IWORK,LIWORK,RPAR,IPAR,IDID)
+
+
+       Nfun = Nfun + IWORK(14)
+       Njac = Njac + IWORK(15)
+       Nstp = Nstp + IWORK(16)
+       Nacc = Nacc + IWORK(17)
+       Nrej = Nrej + IWORK(18)
+       Ndec = Ndec + IWORK(19)
+       Nsol = Nsol + IWORK(20)
+
+       print("('Nstep=',I5,' Nacc=',I6,' Nrej=',I6)"),Nstp, Nacc, Nrej
+
+      IF (IDID.LT.0) THEN
+        print *,'RADAU: Unsucessfull exit at T=',
+     &          TIN,' (IDID=',IDID,')'
+      ENDIF
+
+      RETURN
+      END
+
+
+      SUBROUTINE RADAU5(N,FCN,X,Y,XEND,H,
+     &                  RelTol,AbsTol,ITOL,
+     &                  JAC ,IJAC,MLJAC,MUJAC,
+     &                  MAS ,IMAS,MLMAS,MUMAS,
+     &                  SOLOUT,IOUT,
+     &                  WORK,LWORK,IWORK,LIWORK,RPAR,IPAR,IDID)
+C ----------------------------------------------------------
+C     NUMERICAL SOLUTION OF A STIFF (OR DIFFERENTIAL ALGEBRAIC)
+C     SYSTEM OF FIRST 0RDER ORDINARY DIFFERENTIAL EQUATIONS
+C                     M*Y'=F(X,Y).
+C     THE SYSTEM CAN BE (LINEARLY) IMPLICIT (MASS-MATRIX M .NE. I)
+C     OR EXPLICIT (M=I).
+C     THE METHOD USED IS AN IMPLICIT RUNGE-KUTTA METHOD (RADAU IIA)
+C     OF ORDER 5 WITH STEP SIZE CONTROL AND CONTINUOUS OUTPUT.
+C     C.F. SECTION IV.8
+C
+C     AUTHORS: E. HAIRER AND G. WANNER
+C              UNIVERSITE DE GENEVE, DEPT. DE MATHEMATIQUES
+C              CH-1211 GENEVE 24, SWITZERLAND
+C              E-MAIL:  HAIRER@DIVSUN.UNIGE.CH,  WANNER@DIVSUN.UNIGE.CH
+C
+C     THIS CODE IS PART OF THE BOOK:
+C         E. HAIRER AND G. WANNER, SOLVING ORDINARY DIFFERENTIAL
+C         EQUATIONS II. STIFF AND DIFFERENTIAL-ALGEBRAIC PROBLEMS.
+C         SPRINGER SERIES IN COMPUTATIONAL MATHEMATICS 14,
+C         SPRINGER-VERLAG (1991)
+C
+C     VERSION OF SEPTEMBER 30, 1995
+C
+C     INPUT PARAMETERS
+C     ----------------
+C     N           DIMENSION OF THE SYSTEM
+C
+C     FCN         NAME (EXTERNAL) OF SUBROUTINE COMPUTING THE
+C                 VALUE OF F(X,Y):
+C                    SUBROUTINE FCN(N,X,Y,F,RPAR,IPAR)
+C                    KPP_REAL X,Y(N),F(N)
+C                    F(1)=...   ETC.
+C                 RPAR, IPAR (SEE BELOW)
+C
+C     X           INITIAL X-VALUE
+C
+C     Y(N)        INITIAL VALUES FOR Y
+C
+C     XEND        FINAL X-VALUE (XEND-X MAY BE POSITIVE OR NEGATIVE)
+C
+C     H           INITIAL STEP SIZE GUESS;
+C                 FOR STIFF EQUATIONS WITH INITIAL TRANSIENT,
+C                 H=1.D0/(NORM OF F'), USUALLY 1.D-3 OR 1.D-5, IS GOOD.
+C                 THIS CHOICE IS NOT VERY IMPORTANT, THE STEP SIZE IS
+C                 QUICKLY ADAPTED. (IF H=0.D0, THE CODE PUTS H=1.D-6).
+C
+C     RelTol,AbsTol   RELATIVE AND ABSOLUTE ERROR TOLERANCES. THEY
+C                 CAN BE BOTH SCALARS OR ELSE BOTH VECTORS OF LENGTH N.
+C
+C     ITOL        SWITCH FOR RelTol AND AbsTol:
+C                   ITOL=0: BOTH RelTol AND AbsTol ARE SCALARS.
+C                     THE CODE KEEPS, ROUGHLY, THE LOCAL ERROR OF
+C                     Y(I) BELOW RelTol*ABS(Y(I))+AbsTol
+C                   ITOL=1: BOTH RelTol AND AbsTol ARE VECTORS.
+C                     THE CODE KEEPS THE LOCAL ERROR OF Y(I) BELOW
+C                     RelTol(I)*ABS(Y(I))+AbsTol(I).
+C
+C     JAC         NAME (EXTERNAL) OF THE SUBROUTINE WHICH COMPUTES
+C                 THE PARTIAL DERIVATIVES OF F(X,Y) WITH RESPECT TO Y
+C                 (THIS ROUTINE IS ONLY CALLED IF IJAC=1; SUPPLY
+C                 A DUMMY SUBROUTINE IN THE CASE IJAC=0).
+C                 FOR IJAC=1, THIS SUBROUTINE MUST HAVE THE FORM
+C                    SUBROUTINE JAC(N,X,Y,DFY,LDFY,RPAR,IPAR)
+C                    KPP_REAL X,Y(N),DFY(LDFY,N)
+C                    DFY(1,1)= ...
+C                 LDFY, THE COLUMN-LENGTH OF THE ARRAY, IS
+C                 FURNISHED BY THE CALLING PROGRAM.
+C                 IF (MLJAC.EQ.N) THE JACOBIAN IS SUPPOSED TO
+C                    BE FULL AND THE PARTIAL DERIVATIVES ARE
+C                    STORED IN DFY AS
+C                       DFY(I,J) = PARTIAL F(I) / PARTIAL Y(J)
+C                 ELSE, THE JACOBIAN IS TAKEN AS BANDED AND
+C                    THE PARTIAL DERIVATIVES ARE STORED
+C                    DIAGONAL-WISE AS
+C                       DFY(I-J+MUJAC+1,J) = PARTIAL F(I) / PARTIAL Y(J).
+C
+C     IJAC        SWITCH FOR THE COMPUTATION OF THE JACOBIAN:
+C                    IJAC=0: JACOBIAN IS COMPUTED INTERNALLY BY FINITE
+C                       DIFFERENCES, SUBROUTINE "JAC" IS NEVER CALLED.
+C                    IJAC=1: JACOBIAN IS SUPPLIED BY SUBROUTINE JAC.
+C
+C     MLJAC       SWITCH FOR THE BANDED STRUCTURE OF THE JACOBIAN:
+C                    MLJAC=N: JACOBIAN IS A FULL MATRIX. THE LINEAR
+C                       ALGEBRA IS DONE BY FULL-MATRIX GAUSS-ELIMINATION.
+C                    0<=MLJAC<N: MLJAC IS THE LOWER BANDWITH OF JACOBIAN
+C                       MATRIX (>= NUMBER OF NON-ZERO DIAGONALS BELOW
+C                       THE MAIN DIAGONAL).
+C
+C     MUJAC       UPPER BANDWITH OF JACOBIAN  MATRIX (>= NUMBER OF NON-
+C                 ZERO DIAGONALS ABOVE THE MAIN DIAGONAL).
+C                 NEED NOT BE DEFINED IF MLJAC=N.
+C
+C     ----   MAS,IMAS,MLMAS, AND MUMAS HAVE ANALOG MEANINGS      -----
+C     ----   FOR THE "MASS MATRIX" (THE MATRIX "M" OF SECTION IV.8): -
+C
+C     MAS         NAME (EXTERNAL) OF SUBROUTINE COMPUTING THE MASS-
+C                 MATRIX M.
+C                 IF IMAS=0, THIS MATRIX IS ASSUMED TO BE THE IDENTITY
+C                 MATRIX AND NEEDS NOT TO BE DEFINED;
+C                 SUPPLY A DUMMY SUBROUTINE IN THIS CASE.
+C                 IF IMAS=1, THE SUBROUTINE MAS IS OF THE FORM
+C                    SUBROUTINE MAS(N,AM,LMAS,RPAR,IPAR)
+C                    KPP_REAL AM(LMAS,N)
+C                    AM(1,1)= ....
+C                    IF (MLMAS.EQ.N) THE MASS-MATRIX IS STORED
+C                    AS FULL MATRIX LIKE
+C                         AM(I,J) = M(I,J)
+C                    ELSE, THE MATRIX IS TAKEN AS BANDED AND STORED
+C                    DIAGONAL-WISE AS
+C                         AM(I-J+MUMAS+1,J) = M(I,J).
+C
+C     IMAS       GIVES INFORMATION ON THE MASS-MATRIX:
+C                    IMAS=0: M IS SUPPOSED TO BE THE IDENTITY
+C                       MATRIX, MAS IS NEVER CALLED.
+C                    IMAS=1: MASS-MATRIX  IS SUPPLIED.
+C
+C     MLMAS       SWITCH FOR THE BANDED STRUCTURE OF THE MASS-MATRIX:
+C                    MLMAS=N: THE FULL MATRIX CASE. THE LINEAR
+C                       ALGEBRA IS DONE BY FULL-MATRIX GAUSS-ELIMINATION.
+C                    0<=MLMAS<N: MLMAS IS THE LOWER BANDWITH OF THE
+C                       MATRIX (>= NUMBER OF NON-ZERO DIAGONALS BELOW
+C                       THE MAIN DIAGONAL).
+C                 MLMAS IS SUPPOSED TO BE .LE. MLJAC.
+C
+C     MUMAS       UPPER BANDWITH OF MASS-MATRIX (>= NUMBER OF NON-
+C                 ZERO DIAGONALS ABOVE THE MAIN DIAGONAL).
+C                 NEED NOT BE DEFINED IF MLMAS=N.
+C                 MUMAS IS SUPPOSED TO BE .LE. MUJAC.
+C
+C     SOLOUT      NAME (EXTERNAL) OF SUBROUTINE PROVIDING THE
+C                 NUMERICAL SOLUTION DURING INTEGRATION.
+C                 IF IOUT=1, IT IS CALLED AFTER EVERY SUCCESSFUL STEP.
+C                 SUPPLY A DUMMY SUBROUTINE IF IOUT=0.
+C                 IT MUST HAVE THE FORM
+C                    SUBROUTINE SOLOUT (NR,XOLD,X,Y,CONT,LRC,N,
+C                                       RPAR,IPAR,IRTRN)
+C                    KPP_REAL X,Y(N),CONT(LRC)
+C                    ....
+C                 SOLOUT FURNISHES THE SOLUTION "Y" AT THE NR-TH
+C                    GRID-POINT "X" (THEREBY THE INITIAL VALUE IS
+C                    THE FIRST GRID-POINT).
+C                 "XOLD" IS THE PRECEEDING GRID-POINT.
+C                 "IRTRN" SERVES TO INTERRUPT THE INTEGRATION. IF IRTRN
+C                    IS SET <0, RADAU5 RETURNS TO THE CALLING PROGRAM.
+C
+C          -----  CONTINUOUS OUTPUT: -----
+C                 DURING CALLS TO "SOLOUT", A CONTINUOUS SOLUTION
+C                 FOR THE INTERVAL [XOLD,X] IS AVAILABLE THROUGH
+C                 THE FUNCTION
+C                        >>>   CONTR5(I,S,CONT,LRC)   <<<
+C                 WHICH PROVIDES AN APPROXIMATION TO THE I-TH
+C                 COMPONENT OF THE SOLUTION AT THE POINT S. THE VALUE
+C                 S SHOULD LIE IN THE INTERVAL [XOLD,X].
+C                 DO NOT CHANGE THE ENTRIES OF CONT(LRC), IF THE
+C                 DENSE OUTPUT FUNCTION IS USED.
+C
+C     IOUT        SWITCH FOR CALLING THE SUBROUTINE SOLOUT:
+C                    IOUT=0: SUBROUTINE IS NEVER CALLED
+C                    IOUT=1: SUBROUTINE IS AVAILABLE FOR OUTPUT.
+C
+C     WORK        ARRAY OF WORKING SPACE OF LENGTH "LWORK".
+C                 WORK(1), WORK(2),.., WORK(20) SERVE AS PARAMETERS
+C                 FOR THE CODE. FOR STANDARD USE OF THE CODE
+C                 WORK(1),..,WORK(20) MUST BE SET TO ZERO BEFORE
+C                 CALLING. SEE BELOW FOR A MORE SOPHISTICATED USE.
+C                 WORK(21),..,WORK(LWORK) SERVE AS WORKING SPACE
+C                 FOR ALL VECTORS AND MATRICES.
+C                 "LWORK" MUST BE AT LEAST
+C                             N*(LJAC+LMAS+3*LE+12)+20
+C                 WHERE
+C                    LJAC=N              IF MLJAC=N (FULL JACOBIAN)
+C                    LJAC=MLJAC+MUJAC+1  IF MLJAC<N (BANDED JAC.)
+C                 AND
+C                    LMAS=0              IF IMAS=0
+C                    LMAS=N              IF IMAS=1 AND MLMAS=N (FULL)
+C                    LMAS=MLMAS+MUMAS+1  IF MLMAS<N (BANDED MASS-M.)
+C                 AND
+C                    LE=N               IF MLJAC=N (FULL JACOBIAN)
+C                    LE=2*MLJAC+MUJAC+1 IF MLJAC<N (BANDED JAC.)
+C
+C                 IN THE USUAL CASE WHERE THE JACOBIAN IS FULL AND THE
+C                 MASS-MATRIX IS THE INDENTITY (IMAS=0), THE MINIMUM
+C                 STORAGE REQUIREMENT IS
+C                             LWORK = 4*N*N+12*N+20.
+C                 IF IWORK(9)=M1>0 THEN "LWORK" MUST BE AT LEAST
+C                          N*(LJAC+12)+(N-M1)*(LMAS+3*LE)+20
+C                 WHERE IN THE DEFINITIONS OF LJAC, LMAS AND LE THE
+C                 NUMBER N CAN BE REPLACED BY N-M1.
+C
+C     LWORK       DECLARED LENGTH OF ARRAY "WORK".
+C
+C     IWORK       INTEGER WORKING SPACE OF LENGTH "LIWORK".
+C                 IWORK(1),IWORK(2),...,IWORK(20) SERVE AS PARAMETERS
+C                 FOR THE CODE. FOR STANDARD USE, SET IWORK(1),..,
+C                 IWORK(20) TO ZERO BEFORE CALLING.
+C                 IWORK(21),...,IWORK(LIWORK) SERVE AS WORKING AREA.
+C                 "LIWORK" MUST BE AT LEAST 3*N+20.
+C
+C     LIWORK      DECLARED LENGTH OF ARRAY "IWORK".
+C
+C     RPAR, IPAR  REAL AND INTEGER PARAMETERS (OR PARAMETER ARRAYS) WHICH
+C                 CAN BE USED FOR COMMUNICATION BETWEEN YOUR CALLING
+C                 PROGRAM AND THE FCN, JAC, MAS, SOLOUT SUBROUTINES.
+C
+C ----------------------------------------------------------------------
+C
+C     SOPHISTICATED SETTING OF PARAMETERS
+C     -----------------------------------
+C              SEVERAL PARAMETERS OF THE CODE ARE TUNED TO MAKE IT WORK
+C              WELL. THEY MAY BE DEFINED BY SETTING WORK(1),...
+C              AS WELL AS IWORK(1),... DIFFERENT FROM ZERO.
+C              FOR ZERO INPUT, THE CODE CHOOSES DEFAULT VALUES:
+C
+C    IWORK(1)  IF IWORK(1).NE.0, THE CODE TRANSFORMS THE JACOBIAN
+C              MATRIX TO HESSENBERG FORM. THIS IS PARTICULARLY
+C              ADVANTAGEOUS FOR LARGE SYSTEMS WITH FULL JACOBIAN.
+C              IT DOES NOT WORK FOR BANDED JACOBIAN (MLJAC<N)
+C              AND NOT FOR IMPLICIT SYSTEMS (IMAS=1).
+C
+C    IWORK(2)  THIS IS THE MAXIMAL NUMBER OF ALLOWED STEPS.
+C              THE DEFAULT VALUE (FOR IWORK(2)=0) IS 100000.
+C
+C    IWORK(3)  THE MAXIMUM NUMBER OF NEWTON ITERATIONS FOR THE
+C              SOLUTION OF THE IMPLICIT SYSTEM IN EACH STEP.
+C              THE DEFAULT VALUE (FOR IWORK(3)=0) IS 7.
+C
+C    IWORK(4)  IF IWORK(4).EQ.0 THE EXTRAPOLATED COLLOCATION SOLUTION
+C              IS TAKEN AS STARTING VALUE FOR NEWTON'S METHOD.
+C              IF IWORK(4).NE.0 ZERO STARTING VALUES ARE USED.
+C              THE LATTER IS RECOMMENDED IF NEWTON'S METHOD HAS
+C              DIFFICULTIES WITH CONVERGENCE (THIS IS THE CASE WHEN
+C              NSTEP IS LARGER THAN NACCPT + NREJCT; SEE OUTPUT PARAM.).
+C              DEFAULT IS IWORK(4)=0.
+C
+C       THE FOLLOWING 3 PARAMETERS ARE IMPORTANT FOR
+C       DIFFERENTIAL-ALGEBRAIC SYSTEMS OF INDEX > 1.
+C       THE FUNCTION-SUBROUTINE SHOULD BE WRITTEN SUCH THAT
+C       THE INDEX 1,2,3 VARIABLES APPEAR IN THIS ORDER.
+C       IN ESTIMATING THE ERROR THE INDEX 2 VARIABLES ARE
+C       MULTIPLIED BY H, THE INDEX 3 VARIABLES BY H**2.
+C
+C    IWORK(5)  DIMENSION OF THE INDEX 1 VARIABLES (MUST BE > 0). FOR
+C              ODE'S THIS EQUALS THE DIMENSION OF THE SYSTEM.
+C              DEFAULT IWORK(5)=N.
+C
+C    IWORK(6)  DIMENSION OF THE INDEX 2 VARIABLES. DEFAULT IWORK(6)=0.
+C
+C    IWORK(7)  DIMENSION OF THE INDEX 3 VARIABLES. DEFAULT IWORK(7)=0.
+C
+C    IWORK(8)  SWITCH FOR STEP SIZE STRATEGY
+C              IF IWORK(8).EQ.1  MOD. PREDICTIVE CONTROLLER (GUSTAFSSON)
+C              IF IWORK(8).EQ.2  CLASSICAL STEP SIZE CONTROL
+C              THE DEFAULT VALUE (FOR IWORK(8)=0) IS IWORK(8)=1.
+C              THE CHOICE IWORK(8).EQ.1 SEEMS TO PRODUCE SAFER RESULTS;
+C              FOR SIMPLE PROBLEMS, THE CHOICE IWORK(8).EQ.2 PRODUCES
+C              OFTEN SLIGHTLY FASTER RUNS
+C
+C       IF THE DIFFERENTIAL SYSTEM HAS THE SPECIAL STRUCTURE THAT
+C            Y(I)' = Y(I+M2)   FOR  I=1,...,M1,
+C       WITH M1 A MULTIPLE OF M2, A SUBSTANTIAL GAIN IN COMPUTERTIME
+C       CAN BE ACHIEVED BY SETTING THE FOLLOWING TWO PARAMETERS. E.G.,
+C       FOR SECOND ORDER SYSTEMS P'=V, V'=G(P,V), WHERE P AND V ARE
+C       VECTORS OF DIMENSION N/2, ONE HAS TO PUT M1=M2=N/2.
+C       FOR M1>0 SOME OF THE INPUT PARAMETERS HAVE DIFFERENT MEANINGS:
+C       - JAC: ONLY THE ELEMENTS OF THE NON-TRIVIAL PART OF THE
+C              JACOBIAN HAVE TO BE STORED
+C              IF (MLJAC.EQ.N-M1) THE JACOBIAN IS SUPPOSED TO BE FULL
+C                 DFY(I,J) = PARTIAL F(I+M1) / PARTIAL Y(J)
+C                FOR I=1,N-M1 AND J=1,N.
+C              ELSE, THE JACOBIAN IS BANDED ( M1 = M2 * MM )
+C                 DFY(I-J+MUJAC+1,J+K*M2) = PARTIAL F(I+M1) / PARTIAL Y(J+K*M2)
+C                FOR I=1,MLJAC+MUJAC+1 AND J=1,M2 AND K=0,MM.
+C       - MLJAC: MLJAC=N-M1: IF THE NON-TRIVIAL PART OF THE JACOBIAN IS FULL
+C                0<=MLJAC<N-M1: IF THE (MM+1) SUBMATRICES (FOR K=0,MM)
+C                     PARTIAL F(I+M1) / PARTIAL Y(J+K*M2),  I,J=1,M2
+C                    ARE BANDED, MLJAC IS THE MAXIMAL LOWER BANDWIDTH
+C                    OF THESE MM+1 SUBMATRICES
+C       - MUJAC: MAXIMAL UPPER BANDWIDTH OF THESE MM+1 SUBMATRICES
+C                NEED NOT BE DEFINED IF MLJAC=N-M1
+C       - MAS: IF IMAS=0 THIS MATRIX IS ASSUMED TO BE THE IDENTITY AND
+C              NEED NOT BE DEFINED. SUPPLY A DUMMY SUBROUTINE IN THIS CASE.
+C              IT IS ASSUMED THAT ONLY THE ELEMENTS OF RIGHT LOWER BLOCK OF
+C              DIMENSION N-M1 DIFFER FROM THAT OF THE IDENTITY MATRIX.
+C              IF (MLMAS.EQ.N-M1) THIS SUBMATRIX IS SUPPOSED TO BE FULL
+C                 AM(I,J) = M(I+M1,J+M1)     FOR I=1,N-M1 AND J=1,N-M1.
+C              ELSE, THE MASS MATRIX IS BANDED
+C                 AM(I-J+MUMAS+1,J) = M(I+M1,J+M1)
+C       - MLMAS: MLMAS=N-M1: IF THE NON-TRIVIAL PART OF M IS FULL
+C                0<=MLMAS<N-M1: LOWER BANDWIDTH OF THE MASS MATRIX
+C       - MUMAS: UPPER BANDWIDTH OF THE MASS MATRIX
+C                NEED NOT BE DEFINED IF MLMAS=N-M1
+C
+C    IWORK(9)  THE VALUE OF M1.  DEFAULT M1=0.
+C
+C    IWORK(10) THE VALUE OF M2.  DEFAULT M2=M1.
+C
+C ----------
+C
+C    WORK(1)   UROUND, THE ROUNDING UNIT, DEFAULT 1.D-16.
+C
+C    WORK(2)   THE SAFETY FACTOR IN STEP SIZE PREDICTION,
+C              DEFAULT 0.9D0.
+C
+C    WORK(3)   DECIDES WHETHER THE JACOBIAN SHOULD BE RECOMPUTED;
+C              INCREASE WORK(3), TO 0.1 SAY, WHEN JACOBIAN EVALUATIONS
+C              ARE COSTLY. FOR SMALL SYSTEMS WORK(3) SHOULD BE SMALLER
+C              (0.001D0, SAY). NEGATIV WORK(3) FORCES THE CODE TO
+C              COMPUTE THE JACOBIAN AFTER EVERY ACCEPTED STEP.
+C              DEFAULT 0.001D0.
+C
+C    WORK(4)   STOPPING CRITERION FOR NEWTON'S METHOD, USUALLY CHOSEN <1.
+C              SMALLER VALUES OF WORK(4) MAKE THE CODE SLOWER, BUT SAFER.
+C              DEFAULT 0.03D0.
+C
+C    WORK(5) AND WORK(6) : IF WORK(5) < HNEW/HOLD < WORK(6), THEN THE
+C              STEP SIZE IS NOT CHANGED. THIS SAVES, TOGETHER WITH A
+C              LARGE WORK(3), LU-DECOMPOSITIONS AND COMPUTING TIME FOR
+C              LARGE SYSTEMS. FOR SMALL SYSTEMS ONE MAY HAVE
+C              WORK(5)=1.D0, WORK(6)=1.2D0, FOR LARGE FULL SYSTEMS
+C              WORK(5)=0.99D0, WORK(6)=2.D0 MIGHT BE GOOD.
+C              DEFAULTS WORK(5)=1.D0, WORK(6)=1.2D0 .
+C
+C    WORK(7)   MAXIMAL STEP SIZE, DEFAULT XEND-X.
+C
+C    WORK(8), WORK(9)   PARAMETERS FOR STEP SIZE SELECTION
+C              THE NEW STEP SIZE IS CHOSEN SUBJECT TO THE RESTRICTION
+C                 WORK(8) <= HNEW/HOLD <= WORK(9)
+C              DEFAULT VALUES: WORK(8)=0.2D0, WORK(9)=8.D0
+C
+C-----------------------------------------------------------------------
+C
+C     OUTPUT PARAMETERS
+C     -----------------
+C     X           X-VALUE FOR WHICH THE SOLUTION HAS BEEN COMPUTED
+C                 (AFTER SUCCESSFUL RETURN X=XEND).
+C
+C     Y(N)        NUMERICAL SOLUTION AT X
+C
+C     H           PREDICTED STEP SIZE OF THE LAST ACCEPTED STEP
+C
+C     IDID        REPORTS ON SUCCESSFULNESS UPON RETURN:
+C                   IDID= 1  COMPUTATION SUCCESSFUL,
+C                   IDID= 2  COMPUT. SUCCESSFUL (INTERRUPTED BY SOLOUT)
+C                   IDID=-1  INPUT IS NOT CONSISTENT,
+C                   IDID=-2  LARGER NMAX IS NEEDED,
+C                   IDID=-3  STEP SIZE BECOMES TOO SMALL,
+C                   IDID=-4  MATRIX IS REPEATEDLY SINGULAR.
+C
+C   IWORK(14)  NFCN    NUMBER OF FUNCTION EVALUATIONS (THOSE FOR NUMERICAL
+C                      EVALUATION OF THE JACOBIAN ARE NOT COUNTED)
+C   IWORK(15)  NJAC    NUMBER OF JACOBIAN EVALUATIONS (EITHER ANALYTICALLY
+C                      OR NUMERICALLY)
+C   IWORK(16)  NSTEP   NUMBER OF COMPUTED STEPS
+C   IWORK(17)  NACCPT  NUMBER OF ACCEPTED STEPS
+C   IWORK(18)  NREJCT  NUMBER OF REJECTED STEPS (DUE TO ERROR TEST),
+C                      (STEP REJECTIONS IN THE FIRST STEP ARE NOT COUNTED)
+C   IWORK(19)  NDEC    NUMBER OF LU-DECOMPOSITIONS OF BOTH MATRICES
+C   IWORK(20)  NSOL    NUMBER OF FORWARD-BACKWARD SUBSTITUTIONS, OF BOTH
+C                      SYSTEMS; THE NSTEP FORWARD-BACKWARD SUBSTITUTIONS,
+C                      NEEDED FOR STEP SIZE SELECTION, ARE NOT COUNTED
+C-----------------------------------------------------------------------
+C *** *** *** *** *** *** *** *** *** *** *** *** ***
+C          DECLARATIONS
+C *** *** *** *** *** *** *** *** *** *** *** *** ***
+      IMPLICIT KPP_REAL (A-H,O-Z)
+      DIMENSION Y(N),AbsTol(*),RelTol(*),WORK(LWORK),IWORK(LIWORK)
+      DIMENSION RPAR(*),IPAR(*)
+      LOGICAL IMPLCT,JBAND,ARRET,STARTN,PRED
+      EXTERNAL FCN,JAC,MAS,SOLOUT
+C *** *** *** *** *** *** ***
+C        SETTING THE PARAMETERS
+C *** *** *** *** *** *** ***
+       NFCN=0
+       NJAC=0
+       NSTEP=0
+       NACCPT=0
+       NREJCT=0
+       NDEC=0
+       NSOL=0
+       ARRET=.FALSE.
+C -------- NMAX , THE MAXIMAL NUMBER OF STEPS -----
+      IF (IWORK(2).EQ.0) THEN
+         NMAX=100000
+      ELSE
+         NMAX=IWORK(2)
+         IF (NMAX.LE.0) THEN
+            WRITE(6,*)' WRONG INPUT IWORK(2)=',IWORK(2)
+            ARRET=.TRUE.
+         END IF
+      END IF
+C -------- NIT    MAXIMAL NUMBER OF NEWTON ITERATIONS
+      IF (IWORK(3).EQ.0) THEN
+         NIT=7
+      ELSE
+         NIT=IWORK(3)
+         IF (NIT.LE.0) THEN
+            WRITE(6,*)' CURIOUS INPUT IWORK(3)=',IWORK(3)
+            ARRET=.TRUE.
+         END IF
+      END IF
+C -------- STARTN  SWITCH FOR STARTING VALUES OF NEWTON ITERATIONS
+      IF(IWORK(4).EQ.0)THEN
+         STARTN=.FALSE.
+      ELSE
+         STARTN=.TRUE.
+      END IF
+C -------- PARAMETER FOR DIFFERENTIAL-ALGEBRAIC COMPONENTS
+      NIND1=IWORK(5)
+      NIND2=IWORK(6)
+      NIND3=IWORK(7)
+      IF (NIND1.EQ.0) NIND1=N
+      IF (NIND1+NIND2+NIND3.NE.N) THEN
+       WRITE(6,*)' CURIOUS INPUT FOR IWORK(5,6,7)=',NIND1,NIND2,NIND3
+       ARRET=.TRUE.
+      END IF
+C -------- PRED   STEP SIZE CONTROL
+      IF(IWORK(8).LE.1)THEN
+         PRED=.TRUE.
+      ELSE
+         PRED=.FALSE.
+      END IF
+C -------- PARAMETER FOR SECOND ORDER EQUATIONS
+      M1=IWORK(9)
+      M2=IWORK(10)
+      NM1=N-M1
+      IF (M1.EQ.0) M2=N
+      IF (M2.EQ.0) M2=M1
+      IF (M1.LT.0.OR.M2.LT.0.OR.M1+M2.GT.N) THEN
+       WRITE(6,*)' CURIOUS INPUT FOR IWORK(9,10)=',M1,M2
+       ARRET=.TRUE.
+      END IF
+C -------- UROUND   SMALLEST NUMBER SATISFYING 1.0D0+UROUND>1.0D0
+      IF (WORK(1).EQ.0.0D0) THEN
+         UROUND=1.0D-16
+      ELSE
+         UROUND=WORK(1)
+         IF (UROUND.LE.1.0D-19.OR.UROUND.GE.1.0D0) THEN
+            WRITE(6,*)' COEFFICIENTS HAVE 20 DIGITS, UROUND=',WORK(1)
+            ARRET=.TRUE.
+         END IF
+      END IF
+C --------- SAFE     SAFETY FACTOR IN STEP SIZE PREDICTION
+      IF (WORK(2).EQ.0.0D0) THEN
+         SAFE=0.9D0
+      ELSE
+         SAFE=WORK(2)
+         IF (SAFE.LE.0.001D0.OR.SAFE.GE.1.0D0) THEN
+            WRITE(6,*)' CURIOUS INPUT FOR WORK(2)=',WORK(2)
+            ARRET=.TRUE.
+         END IF
+      END IF
+C ------ THET     DECIDES WHETHER THE JACOBIAN SHOULD BE RECOMPUTED;
+      IF (WORK(3).EQ.0.D0) THEN
+         THET=0.001D0
+      ELSE
+         THET=WORK(3)
+         IF (THET.LE.0.0D0.OR.THET.GE.1.0D0) THEN
+            WRITE(6,*)' CURIOUS INPUT FOR WORK(3)=',WORK(3)
+            ARRET=.TRUE.
+         END IF
+      END IF
+C --- FNEWT   STOPPING CRIERION FOR NEWTON'S METHOD, USUALLY CHOSEN <1.
+      IF (WORK(4).EQ.0.D0) THEN
+         FNEWT=0.03D0
+      ELSE
+         FNEWT=WORK(4)
+         IF (FNEWT.LE.UROUND) THEN
+            WRITE(6,*)' CURIOUS INPUT FOR WORK(4)=',WORK(4)
+            ARRET=.TRUE.
+         END IF
+      END IF
+C --- QUOT1 AND QUOT2: IF QUOT1 < HNEW/HOLD < QUOT2, STEP SIZE = CONST.
+      IF (WORK(5).EQ.0.D0) THEN
+         QUOT1=1.D0
+      ELSE
+         QUOT1=WORK(5)
+      END IF
+      IF (WORK(6).EQ.0.D0) THEN
+         QUOT2=1.2D0
+      ELSE
+         QUOT2=WORK(6)
+      END IF
+      IF (QUOT1.GT.1.0D0.OR.QUOT2.LT.1.0D0) THEN
+         WRITE(6,*)' CURIOUS INPUT FOR WORK(5,6)=',QUOT1,QUOT2
+         ARRET=.TRUE.
+      END IF
+C -------- MAXIMAL STEP SIZE
+      IF (WORK(7).EQ.0.D0) THEN
+         HMAX=XEND-X
+      ELSE
+         HMAX=WORK(7)
+      END IF
+C -------  FACL,FACR     PARAMETERS FOR STEP SIZE SELECTION
+      IF(WORK(8).EQ.0.D0)THEN
+         FACL=5.D0
+      ELSE
+         FACL=1.D0/WORK(8)
+      END IF
+      IF(WORK(9).EQ.0.D0)THEN
+         FACR=1.D0/8.0D0
+      ELSE
+         FACR=1.D0/WORK(9)
+      END IF
+      IF (FACL.LT.1.0D0.OR.FACR.GT.1.0D0) THEN
+            WRITE(6,*)' CURIOUS INPUT WORK(8,9)=',WORK(8),WORK(9)
+            ARRET=.TRUE.
+         END IF
+C --------- CHECK IF TOLERANCES ARE O.K.
+      IF (ITOL.EQ.0) THEN
+          IF (AbsTol(1).LE.0.D0.OR.RelTol(1).LE.10.D0*UROUND) THEN
+              WRITE (6,*) ' TOLERANCES ARE TOO SMALL'
+              ARRET=.TRUE.
+          END IF
+      ELSE
+          DO I=1,N
+          IF (AbsTol(I).LE.0.D0.OR.RelTol(I).LE.10.D0*UROUND) THEN
+              WRITE (6,*) ' TOLERANCES(',I,') ARE TOO SMALL'
+              ARRET=.TRUE.
+          END IF
+          END DO
+      END IF
+C *** *** *** *** *** *** *** *** *** *** *** *** ***
+C         COMPUTATION OF ARRAY ENTRIES
+C *** *** *** *** *** *** *** *** *** *** *** *** ***
+C ---- IMPLICIT, BANDED OR NOT ?
+      IMPLCT=IMAS.NE.0
+      JBAND=MLJAC.LT.NM1
+C -------- COMPUTATION OF THE ROW-DIMENSIONS OF THE 2-ARRAYS ---
+C -- JACOBIAN  AND  MATRICES E1, E2
+      IF (JBAND) THEN
+         LDJAC=MLJAC+MUJAC+1
+         LDE1=MLJAC+LDJAC
+      ELSE
+         MLJAC=NM1
+         MUJAC=NM1
+         LDJAC=NM1
+         LDE1=NM1
+      END IF
+C -- MASS MATRIX
+      IF (IMPLCT) THEN
+          IF (MLMAS.NE.NM1) THEN
+              LDMAS=MLMAS+MUMAS+1
+              IF (JBAND) THEN
+                 IJOB=4
+              ELSE
+                 IJOB=3
+              END IF
+          ELSE
+              LDMAS=NM1
+              IJOB=5
+          END IF
+C ------ BANDWITH OF "MAS" NOT SMALLER THAN BANDWITH OF "JAC"
+          IF (MLMAS.GT.MLJAC.OR.MUMAS.GT.MUJAC) THEN
+             WRITE (6,*) 'BANDWITH OF "MAS" NOT SMALLER THAN BANDWITH OF
+     & "JAC"'
+            ARRET=.TRUE.
+          END IF
+      ELSE
+          LDMAS=0
+          IF (JBAND) THEN
+             IJOB=2
+          ELSE
+             IJOB=1
+             IF (N.GT.2.AND.IWORK(1).NE.0) IJOB=7
+          END IF
+      END IF
+      LDMAS2=MAX(1,LDMAS)
+C ------ HESSENBERG OPTION ONLY FOR EXPLICIT EQU. WITH FULL JACOBIAN
+      IF ((IMPLCT.OR.JBAND).AND.IJOB.EQ.7) THEN
+         WRITE(6,*)' HESSENBERG OPTION ONLY FOR EXPLICIT EQUATIONS WITH
+     &FULL JACOBIAN'
+         ARRET=.TRUE.
+      END IF
+C ------- PREPARE THE ENTRY-POINTS FOR THE ARRAYS IN WORK -----
+      IEZ1=21
+      IEZ2=IEZ1+N
+      IEZ3=IEZ2+N
+      IEY0=IEZ3+N
+      IESCAL=IEY0+N
+      IEF1=IESCAL+N
+      IEF2=IEF1+N
+      IEF3=IEF2+N
+      IECON=IEF3+N
+      IEJAC=IECON+4*N
+      IEMAS=IEJAC+N*LDJAC
+      IEE1=IEMAS+NM1*LDMAS
+      IEE2R=IEE1+NM1*LDE1
+      IEE2I=IEE2R+NM1*LDE1
+C ------ TOTAL STORAGE REQUIREMENT -----------
+      ISTORE=IEE2I+NM1*LDE1-1
+      IF(ISTORE.GT.LWORK)THEN
+         WRITE(6,*)' INSUFFICIENT STORAGE FOR WORK, MIN. LWORK=',ISTORE
+         ARRET=.TRUE.
+      END IF
+C ------- ENTRY POINTS FOR INTEGER WORKSPACE -----
+      IEIP1=21
+      IEIP2=IEIP1+NM1
+      IEIPH=IEIP2+NM1
+C --------- TOTAL REQUIREMENT ---------------
+      ISTORE=IEIPH+NM1-1
+      IF (ISTORE.GT.LIWORK) THEN
+         WRITE(6,*)' INSUFF. STORAGE FOR IWORK, MIN. LIWORK=',ISTORE
+         ARRET=.TRUE.
+      END IF
+C ------ WHEN A FAIL HAS OCCURED, WE RETURN WITH IDID=-1
+      IF (ARRET) THEN
+         IDID=-1
+         RETURN
+      END IF
+C -------- CALL TO CORE INTEGRATOR ------------
+      CALL RADCOR(N,FCN,X,Y,XEND,HMAX,H,RelTol,AbsTol,ITOL,
+     &   JAC,IJAC,MLJAC,MUJAC,MAS,MLMAS,MUMAS,SOLOUT,IOUT,IDID,
+     &   NMAX,UROUND,SAFE,THET,FNEWT,QUOT1,QUOT2,NIT,IJOB,STARTN,
+     &   NIND1,NIND2,NIND3,PRED,FACL,FACR,M1,M2,NM1,
+     &   IMPLCT,JBAND,LDJAC,LDE1,LDMAS2,WORK(IEZ1),WORK(IEZ2),
+     &   WORK(IEZ3),WORK(IEY0),WORK(IESCAL),WORK(IEF1),WORK(IEF2),
+     &   WORK(IEF3),WORK(IEJAC),WORK(IEE1),WORK(IEE2R),WORK(IEE2I),
+     &   WORK(IEMAS),IWORK(IEIP1),IWORK(IEIP2),IWORK(IEIPH),
+     &   WORK(IECON),NFCN,NJAC,NSTEP,NACCPT,NREJCT,NDEC,NSOL,RPAR,IPAR)
+      IWORK(14)=NFCN
+      IWORK(15)=NJAC
+      IWORK(16)=NSTEP
+      IWORK(17)=NACCPT
+      IWORK(18)=NREJCT
+      IWORK(19)=NDEC
+      IWORK(20)=NSOL
+C ----------- RETURN -----------
+      RETURN
+      END
+C
+C     END OF SUBROUTINE RADAU5
+C
+C ***********************************************************
+C
+      SUBROUTINE RADCOR(N,FCN,X,Y,XEND,HMAX,H,RelTol,AbsTol,ITOL,
+     &   JAC,IJAC,MLJAC,MUJAC,MAS,MLMAS,MUMAS,SOLOUT,IOUT,IDID,
+     &   NMAX,UROUND,SAFE,THET,FNEWT,QUOT1,QUOT2,NIT,IJOB,STARTN,
+     &   NIND1,NIND2,NIND3,PRED,FACL,FACR,M1,M2,NM1,
+     &   IMPLCT,BANDED,LDJAC,LDE1,LDMAS,Z1,Z2,Z3,
+     &   Y0,SCAL,F1,F2,F3,FJAC,E1,E2R,E2I,FMAS,IP1,IP2,IPHES,
+     &   CONT,NFCN,NJAC,NSTEP,NACCPT,NREJCT,NDEC,NSOL,RPAR,IPAR)
+C ----------------------------------------------------------
+C     CORE INTEGRATOR FOR RADAU5
+C     PARAMETERS SAME AS IN RADAU5 WITH WORKSPACE ADDED
+C ----------------------------------------------------------
+C         DECLARATIONS
+C ----------------------------------------------------------
+      IMPLICIT KPP_REAL (A-H,O-Z)
+      DIMENSION Y(N),Z1(N),Z2(N),Z3(N),Y0(N),SCAL(N),F1(N),F2(N),F3(N)
+      DIMENSION FJAC(LDJAC,N),FMAS(LDMAS,NM1),CONT(4*N)
+      DIMENSION E1(LDE1,NM1),E2R(LDE1,NM1),E2I(LDE1,NM1)
+      DIMENSION AbsTol(*),RelTol(*),RPAR(*),IPAR(*)
+      INTEGER IP1(NM1),IP2(NM1),IPHES(NM1)
+      COMMON /CONRA5/NN,NN2,NN3,NN4,XSOL,HSOL,C2M1,C1M1
+      COMMON/LINAL/MLE,MUE,MBJAC,MBB,MDIAG,MDIFF,MBDIAG
+      LOGICAL REJECT,FIRST,IMPLCT,BANDED,CALJAC,STARTN,CALHES
+      LOGICAL INDEX1,INDEX2,INDEX3,LAST,PRED
+      EXTERNAL FCN, JAC, MAS, SOLOUT
+C *** *** *** *** *** *** ***
+C  INITIALISATIONS
+C *** *** *** *** *** *** ***
+C --------- DUPLIFY N FOR COMMON BLOCK CONT -----
+      NN=N
+      NN2=2*N
+      NN3=3*N
+      LRC=4*N
+C -------- CHECK THE INDEX OF THE PROBLEM -----
+      INDEX1=NIND1.NE.0
+      INDEX2=NIND2.NE.0
+      INDEX3=NIND3.NE.0
+C ------- COMPUTE MASS MATRIX FOR IMPLICIT CASE ----------
+      IF (IMPLCT) CALL MAS(NM1,FMAS,LDMAS,RPAR,IPAR)
+C ---------- CONSTANTS ---------
+      SQ6=DSQRT(6.D0)
+      C1=(4.D0-SQ6)/10.D0
+      C2=(4.D0+SQ6)/10.D0
+      C1M1=C1-1.D0
+      C2M1=C2-1.D0
+      C1MC2=C1-C2
+      DD1=-(13.D0+7.D0*SQ6)/3.D0
+      DD2=(-13.D0+7.D0*SQ6)/3.D0
+      DD3=-1.D0/3.D0
+      U1=(6.D0+81.D0**(1.D0/3.D0)-9.D0**(1.D0/3.D0))/30.D0
+      ALPH=(12.D0-81.D0**(1.D0/3.D0)+9.D0**(1.D0/3.D0))/60.D0
+      BETA=(81.D0**(1.D0/3.D0)+9.D0**(1.D0/3.D0))*DSQRT(3.D0)/60.D0
+      CNO=ALPH**2+BETA**2
+      U1=1.0D0/U1
+      ALPH=ALPH/CNO
+      BETA=BETA/CNO
+      T11=9.1232394870892942792D-02
+      T12=-0.14125529502095420843D0
+      T13=-3.0029194105147424492D-02
+      T21=0.24171793270710701896D0
+      T22=0.20412935229379993199D0
+      T23=0.38294211275726193779D0
+      T31=0.96604818261509293619D0
+      TI11=4.3255798900631553510D0
+      TI12=0.33919925181580986954D0
+      TI13=0.54177053993587487119D0
+      TI21=-4.1787185915519047273D0
+      TI22=-0.32768282076106238708D0
+      TI23=0.47662355450055045196D0
+      TI31=-0.50287263494578687595D0
+      TI32=2.5719269498556054292D0
+      TI33=-0.59603920482822492497D0
+      IF (M1.GT.0) IJOB=IJOB+10
+      POSNEG=SIGN(1.D0,XEND-X)
+      HMAXN=MIN(ABS(HMAX),ABS(XEND-X))
+      IF (ABS(H).LE.10.D0*UROUND) H=1.0D-6
+      H=MIN(ABS(H),HMAXN)
+      H=SIGN(H,POSNEG)
+      HOLD=H
+      REJECT=.FALSE.
+      FIRST=.TRUE.
+      LAST=.FALSE.
+      IF ((X+H*1.0001D0-XEND)*POSNEG.GE.0.D0) THEN
+         H=XEND-X
+         LAST=.TRUE.
+      END IF
+      FACCON=1.D0
+      CFAC=SAFE*(1+2*NIT)
+      NSING=0
+      XOLD=X
+      IF (IOUT.NE.0) THEN
+          IRTRN=1
+          NRSOL=1
+          XOSOL=XOLD
+          XSOL=X
+          DO I=1,N
+             CONT(I)=Y(I)
+          END DO
+          NSOLU=N
+          HSOL=HOLD
+          CALL SOLOUT(NRSOL,XOSOL,XSOL,Y,CONT,LRC,NSOLU,
+     &                RPAR,IPAR,IRTRN)
+          IF (IRTRN.LT.0) GOTO 179
+      END IF
+      MLE=MLJAC
+      MUE=MUJAC
+      MBJAC=MLJAC+MUJAC+1
+      MBB=MLMAS+MUMAS+1
+      MDIAG=MLE+MUE+1
+      MDIFF=MLE+MUE-MUMAS
+      MBDIAG=MUMAS+1
+      N2=2*N
+      N3=3*N
+      IF (ITOL.EQ.0) THEN
+          DO I=1,N
+             SCAL(I)=AbsTol(1)+RelTol(1)*ABS(Y(I))
+          END DO
+      ELSE
+          DO I=1,N
+             SCAL(I)=AbsTol(I)+RelTol(I)*ABS(Y(I))
+          END DO
+      END IF
+      HHFAC=H
+      CALL FCN(N,X,Y,Y0,RPAR,IPAR)
+      NFCN=NFCN+1
+C --- BASIC INTEGRATION STEP
+  10  CONTINUE
+C *** *** *** *** *** *** ***
+C  COMPUTATION OF THE JACOBIAN
+C *** *** *** *** *** *** ***
+      NJAC=NJAC+1
+      IF (IJAC.EQ.0) THEN
+C --- COMPUTE JACOBIAN MATRIX NUMERICALLY
+         IF (BANDED) THEN
+C --- JACOBIAN IS BANDED
+            MUJACP=MUJAC+1
+            MD=MIN(MBJAC,M2)
+            DO MM=1,M1/M2+1
+               DO K=1,MD
+                  J=K+(MM-1)*M2
+ 12               F1(J)=Y(J)
+                  F2(J)=DSQRT(UROUND*MAX(1.D-5,ABS(Y(J))))
+                  Y(J)=Y(J)+F2(J)
+                  J=J+MD
+                  IF (J.LE.MM*M2) GOTO 12
+                  CALL FCN(N,X,Y,CONT,RPAR,IPAR)
+                  J=K+(MM-1)*M2
+                  J1=K
+                  LBEG=MAX(1,J1-MUJAC)+M1
+ 14               LEND=MIN(M2,J1+MLJAC)+M1
+                  Y(J)=F1(J)
+                  MUJACJ=MUJACP-J1-M1
+                  DO L=LBEG,LEND
+                     FJAC(L+MUJACJ,J)=(CONT(L)-Y0(L))/F2(J)
+                  END DO
+                  J=J+MD
+                  J1=J1+MD
+                  LBEG=LEND+1
+                  IF (J.LE.MM*M2) GOTO 14
+               END DO
+            END DO
+         ELSE
+C --- JACOBIAN IS FULL
+            DO I=1,N
+               YSAFE=Y(I)
+               DELT=DSQRT(UROUND*MAX(1.D-5,ABS(YSAFE)))
+               Y(I)=YSAFE+DELT
+               CALL FCN(N,X,Y,CONT,RPAR,IPAR)
+               DO J=M1+1,N
+                 FJAC(J-M1,I)=(CONT(J)-Y0(J))/DELT
+               END DO
+               Y(I)=YSAFE
+            END DO
+         END IF
+      ELSE
+C --- COMPUTE JACOBIAN MATRIX ANALYTICALLY
+      CALL JAC_CHEM(N,X,Y,FJAC,LDJAC,RPAR,IPAR)
+      END IF
+      CALJAC=.TRUE.
+      CALHES=.TRUE.
+  20  CONTINUE
+C --- COMPUTE THE MATRICES E1 AND E2 AND THEIR DECOMPOSITIONS
+      FAC1=U1/H
+      ALPHN=ALPH/H
+      BETAN=BETA/H
+      CALL DECOMR(N,FJAC,LDJAC,FMAS,LDMAS,MLMAS,MUMAS,
+     &            M1,M2,NM1,FAC1,E1,LDE1,IP1,IER,IJOB,CALHES,IPHES)
+      IF (IER.NE.0) GOTO 78
+      CALL DECOMC(N,FJAC,LDJAC,FMAS,LDMAS,MLMAS,MUMAS,
+     &            M1,M2,NM1,ALPHN,BETAN,E2R,E2I,LDE1,IP2,IER,IJOB)
+      IF (IER.NE.0) GOTO 78
+      NDEC=NDEC+1
+  30  CONTINUE
+      NSTEP=NSTEP+1
+      IF (NSTEP.GT.NMAX) GOTO 178
+      IF (0.1D0*ABS(H).LE.ABS(X)*UROUND) GOTO 177
+          IF (INDEX2) THEN
+             DO I=NIND1+1,NIND1+NIND2
+                SCAL(I)=SCAL(I)/HHFAC
+             END DO
+          END IF
+          IF (INDEX3) THEN
+             DO I=NIND1+NIND2+1,NIND1+NIND2+NIND3
+                SCAL(I)=SCAL(I)/(HHFAC*HHFAC)
+             END DO
+          END IF
+      XPH=X+H
+C *** *** *** *** *** *** ***
+C  STARTING VALUES FOR NEWTON ITERATION
+C *** *** *** *** *** *** ***
+      IF (FIRST.OR.STARTN) THEN
+         DO I=1,N
+            Z1(I)=0.D0
+            Z2(I)=0.D0
+            Z3(I)=0.D0
+            F1(I)=0.D0
+            F2(I)=0.D0
+            F3(I)=0.D0
+         END DO
+      ELSE
+         C3Q=H/HOLD
+         C1Q=C1*C3Q
+         C2Q=C2*C3Q
+         DO I=1,N
+            AK1=CONT(I+N)
+            AK2=CONT(I+N2)
+            AK3=CONT(I+N3)
+            Z1I=C1Q*(AK1+(C1Q-C2M1)*(AK2+(C1Q-C1M1)*AK3))
+            Z2I=C2Q*(AK1+(C2Q-C2M1)*(AK2+(C2Q-C1M1)*AK3))
+            Z3I=C3Q*(AK1+(C3Q-C2M1)*(AK2+(C3Q-C1M1)*AK3))
+            Z1(I)=Z1I
+            Z2(I)=Z2I
+            Z3(I)=Z3I
+            F1(I)=TI11*Z1I+TI12*Z2I+TI13*Z3I
+            F2(I)=TI21*Z1I+TI22*Z2I+TI23*Z3I
+            F3(I)=TI31*Z1I+TI32*Z2I+TI33*Z3I
+         END DO
+      END IF
+C *** *** *** *** *** *** ***
+C  LOOP FOR THE SIMPLIFIED NEWTON ITERATION
+C *** *** *** *** *** *** ***
+            NEWT=0
+            FACCON=MAX(FACCON,UROUND)**0.8D0
+            THETA=ABS(THET)
+  40        CONTINUE
+            IF (NEWT.GE.NIT) GOTO 78
+C ---     COMPUTE THE RIGHT-HAND SIDE
+            DO I=1,N
+               CONT(I)=Y(I)+Z1(I)
+            END DO
+            CALL FCN(N,X+C1*H,CONT,Z1,RPAR,IPAR)
+            DO I=1,N
+               CONT(I)=Y(I)+Z2(I)
+            END DO
+            CALL FCN(N,X+C2*H,CONT,Z2,RPAR,IPAR)
+            DO I=1,N
+               CONT(I)=Y(I)+Z3(I)
+            END DO
+            CALL FCN(N,XPH,CONT,Z3,RPAR,IPAR)
+            NFCN=NFCN+3
+C ---     KppSolve THE LINEAR SYSTEMS
+           DO I=1,N
+              A1=Z1(I)
+              A2=Z2(I)
+              A3=Z3(I)
+              Z1(I)=TI11*A1+TI12*A2+TI13*A3
+              Z2(I)=TI21*A1+TI22*A2+TI23*A3
+              Z3(I)=TI31*A1+TI32*A2+TI33*A3
+           END DO
+        CALL SLVRAD(N,FJAC,LDJAC,MLJAC,MUJAC,FMAS,LDMAS,MLMAS,MUMAS,
+     &          M1,M2,NM1,FAC1,ALPHN,BETAN,E1,E2R,E2I,LDE1,Z1,Z2,Z3,
+     &          F1,F2,F3,CONT,IP1,IP2,IPHES,IER,IJOB)
+            NSOL=NSOL+1
+            NEWT=NEWT+1
+            DYNO=0.D0
+            DO I=1,N
+               DENOM=SCAL(I)
+               DYNO=DYNO+(Z1(I)/DENOM)**2+(Z2(I)/DENOM)**2
+     &          +(Z3(I)/DENOM)**2
+            END DO
+            DYNO=DSQRT(DYNO/N3)
+C ---     BAD CONVERGENCE OR NUMBER OF ITERATIONS TO LARGE
+            IF (NEWT.GT.1.AND.NEWT.LT.NIT) THEN
+                THQ=DYNO/DYNOLD
+                IF (NEWT.EQ.2) THEN
+                   THETA=THQ
+                ELSE
+                   THETA=SQRT(THQ*THQOLD)
+                END IF
+                THQOLD=THQ
+                IF (THETA.LT.0.99D0) THEN
+                    FACCON=THETA/(1.0D0-THETA)
+                    DYTH=FACCON*DYNO*THETA**(NIT-1-NEWT)/FNEWT
+                    IF (DYTH.GE.1.0D0) THEN
+                         QNEWT=DMAX1(1.0D-4,DMIN1(20.0D0,DYTH))
+                         HHFAC=.8D0*QNEWT**(-1.0D0/(4.0D0+NIT-1-NEWT))
+                         H=HHFAC*H
+                         REJECT=.TRUE.
+                         LAST=.FALSE.
+                         IF (CALJAC) GOTO 20
+                         GOTO 10
+                    END IF
+                ELSE
+                    GOTO 78
+                END IF
+            END IF
+            DYNOLD=MAX(DYNO,UROUND)
+            DO I=1,N
+               F1I=F1(I)+Z1(I)
+               F2I=F2(I)+Z2(I)
+               F3I=F3(I)+Z3(I)
+               F1(I)=F1I
+               F2(I)=F2I
+               F3(I)=F3I
+               Z1(I)=T11*F1I+T12*F2I+T13*F3I
+               Z2(I)=T21*F1I+T22*F2I+T23*F3I
+               Z3(I)=T31*F1I+    F2I
+            END DO
+            IF (FACCON*DYNO.GT.FNEWT) GOTO 40
+C --- ERROR ESTIMATION
+      CALL ESTRAD (N,FJAC,LDJAC,MLJAC,MUJAC,FMAS,LDMAS,MLMAS,MUMAS,
+     &          H,DD1,DD2,DD3,FCN,NFCN,Y0,Y,IJOB,X,M1,M2,NM1,
+     &          E1,LDE1,Z1,Z2,Z3,CONT,F1,F2,IP1,IPHES,SCAL,ERR,
+     &          FIRST,REJECT,FAC1,RPAR,IPAR)
+C --- COMPUTATION OF HNEW
+C --- WE REQUIRE .2<=HNEW/H<=8.
+      FAC=MIN(SAFE,CFAC/(NEWT+2*NIT))
+      QUOT=MAX(FACR,MIN(FACL,ERR**.25D0/FAC))
+      HNEW=H/QUOT
+C *** *** *** *** *** *** ***
+C  IS THE ERROR SMALL ENOUGH ?
+C *** *** *** *** *** *** ***
+      IF (ERR.LT.1.D0) THEN
+C --- STEP IS ACCEPTED
+         FIRST=.FALSE.
+         NACCPT=NACCPT+1
+         IF (PRED) THEN
+C       --- PREDICTIVE CONTROLLER OF GUSTAFSSON
+            IF (NACCPT.GT.1) THEN
+               FACGUS=(HACC/H)*(ERR**2/ERRACC)**0.25D0/SAFE
+               FACGUS=MAX(FACR,MIN(FACL,FACGUS))
+               QUOT=MAX(QUOT,FACGUS)
+               HNEW=H/QUOT
+            END IF
+            HACC=H
+            ERRACC=MAX(1.0D-2,ERR)
+         END IF
+         XOLD=X
+         HOLD=H
+         X=XPH
+         DO I=1,N
+            Y(I)=Y(I)+Z3(I)
+            Z2I=Z2(I)
+            Z1I=Z1(I)
+            CONT(I+N)=(Z2I-Z3(I))/C2M1
+            AK=(Z1I-Z2I)/C1MC2
+            ACONT3=Z1I/C1
+            ACONT3=(AK-ACONT3)/C2
+            CONT(I+N2)=(AK-CONT(I+N))/C1M1
+            CONT(I+N3)=CONT(I+N2)-ACONT3
+         END DO
+         IF (ITOL.EQ.0) THEN
+             DO I=1,N
+                SCAL(I)=AbsTol(1)+RelTol(1)*ABS(Y(I))
+             END DO
+         ELSE
+             DO I=1,N
+                SCAL(I)=AbsTol(I)+RelTol(I)*ABS(Y(I))
+             END DO
+         END IF
+         IF (IOUT.NE.0) THEN
+             NRSOL=NACCPT+1
+             XSOL=X
+             XOSOL=XOLD
+             DO I=1,N
+                CONT(I)=Y(I)
+             END DO
+             NSOLU=N
+             HSOL=HOLD
+             CALL SOLOUT(NRSOL,XOSOL,XSOL,Y,CONT,LRC,NSOLU,
+     &                   RPAR,IPAR,IRTRN)
+             IF (IRTRN.LT.0) GOTO 179
+         END IF
+         CALJAC=.FALSE.
+         IF (LAST) THEN
+            H=HOPT
+            IDID=1
+            RETURN
+         END IF
+         CALL FCN(N,X,Y,Y0,RPAR,IPAR)
+         NFCN=NFCN+1
+         HNEW=POSNEG*MIN(ABS(HNEW),HMAXN)
+         HOPT=HNEW
+         HOPT=MIN(H,HNEW)
+         IF (REJECT) HNEW=POSNEG*MIN(ABS(HNEW),ABS(H))
+         REJECT=.FALSE.
+         IF ((X+HNEW/QUOT1-XEND)*POSNEG.GE.0.D0) THEN
+            H=XEND-X
+            LAST=.TRUE.
+         ELSE
+            QT=HNEW/H
+            HHFAC=H
+            IF (THETA.LE.THET.AND.QT.GE.QUOT1.AND.QT.LE.QUOT2) GOTO 30
+            H=HNEW
+         END IF
+         HHFAC=H
+         IF (THETA.LE.THET) GOTO 20
+         GOTO 10
+      ELSE
+C --- STEP IS REJECTED
+         REJECT=.TRUE.
+         LAST=.FALSE.
+         IF (FIRST) THEN
+             H=H*0.1D0
+             HHFAC=0.1D0
+         ELSE
+             HHFAC=HNEW/H
+             H=HNEW
+         END IF
+         IF (NACCPT.GE.1) NREJCT=NREJCT+1
+         IF (CALJAC) GOTO 20
+         GOTO 10
+      END IF
+C --- UNEXPECTED STEP-REJECTION
+  78  CONTINUE
+      IF (IER.NE.0) THEN
+          NSING=NSING+1
+          IF (NSING.GE.5) GOTO 176
+      END IF
+      H=H*0.5D0
+      HHFAC=0.5D0
+      REJECT=.TRUE.
+      LAST=.FALSE.
+      IF (CALJAC) GOTO 20
+      GOTO 10
+C --- FAIL EXIT
+ 176  CONTINUE
+      WRITE(6,979)X
+      WRITE(6,*) ' MATRIX IS REPEATEDLY SINGULAR, IER=',IER
+      IDID=-4
+      RETURN
+ 177  CONTINUE
+      WRITE(6,979)X
+      WRITE(6,*) ' STEP SIZE T0O SMALL, H=',H
+      IDID=-3
+      RETURN
+ 178  CONTINUE
+      WRITE(6,979)X
+      WRITE(6,*) ' MORE THAN NMAX =',NMAX,'STEPS ARE NEEDED'
+      IDID=-2
+      RETURN
+C --- EXIT CAUSED BY SOLOUT
+ 179  CONTINUE
+      WRITE(6,979)X
+ 979  FORMAT(' EXIT OF RADAU5 AT X=',E18.4)
+      IDID=2
+      RETURN
+      END
+C
+C     END OF SUBROUTINE RADCOR
+C
+C ***********************************************************
+C
+      KPP_REAL FUNCTION CONTR5(I,X,CONT,LRC)
+C ----------------------------------------------------------
+C     THIS FUNCTION CAN BE USED FOR CONINUOUS OUTPUT. IT PROVIDES AN
+C     APPROXIMATION TO THE I-TH COMPONENT OF THE SOLUTION AT X.
+C     IT GIVES THE VALUE OF THE COLLOCATION POLYNOMIAL, DEFINED FOR
+C     THE LAST SUCCESSFULLY COMPUTED STEP (BY RADAU5).
+C ----------------------------------------------------------
+      IMPLICIT KPP_REAL (A-H,O-Z)
+      DIMENSION CONT(LRC)
+      COMMON /CONRA5/NN,NN2,NN3,NN4,XSOL,HSOL,C2M1,C1M1
+      S=(X-XSOL)/HSOL
+      CONTR5=CONT(I)+S*(CONT(I+NN)+(S-C2M1)*(CONT(I+NN2)
+     &     +(S-C1M1)*CONT(I+NN3)))
+      RETURN
+      END
+C
+C     END OF FUNCTION CONTR5
+C
+C ***********************************************************
+C ******************************************
+C     VERSION OF SEPTEMBER 18, 1995
+C ******************************************
+C
+      SUBROUTINE DECOMR(N,FJAC,LDJAC,FMAS,LDMAS,MLMAS,MUMAS,
+     &            M1,M2,NM1,FAC1,E1,LDE1,IP1,IER,IJOB,CALHES,IPHES)
+      IMPLICIT KPP_REAL (A-H,O-Z)
+      DIMENSION FJAC(LDJAC,N),FMAS(LDMAS,NM1),E1(LDE1,NM1),
+     &          IP1(NM1),IPHES(N)
+      LOGICAL CALHES
+      COMMON/LINAL/MLE,MUE,MBJAC,MBB,MDIAG,MDIFF,MBDIAG
+C
+      GOTO (1,2,3,4,5,6,7,55,55,55,11,12,13,14,15), IJOB
+C
+C -----------------------------------------------------------
+C
+   1  CONTINUE
+C ---  B=IDENTITY, JACOBIAN A FULL MATRIX
+      DO J=1,N
+         DO  I=1,N
+            E1(I,J)=-FJAC(I,J)
+         END DO
+         E1(J,J)=E1(J,J)+FAC1
+      END DO
+      CALL DEC (N,LDE1,E1,IP1,IER)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  11  CONTINUE
+C ---  B=IDENTITY, JACOBIAN A FULL MATRIX, SECOND ORDER
+      DO J=1,NM1
+         JM1=J+M1
+         DO I=1,NM1
+            E1(I,J)=-FJAC(I,JM1)
+         END DO
+         E1(J,J)=E1(J,J)+FAC1
+      END DO
+ 45   MM=M1/M2
+      DO J=1,M2
+         DO I=1,NM1
+            SUM=0.D0
+            DO K=0,MM-1
+               SUM=(SUM+FJAC(I,J+K*M2))/FAC1
+            END DO
+            E1(I,J)=E1(I,J)-SUM
+         END DO
+      END DO
+      CALL DEC (NM1,LDE1,E1,IP1,IER)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+   2  CONTINUE
+C ---  B=IDENTITY, JACOBIAN A BANDED MATRIX
+      DO J=1,N
+         DO I=1,MBJAC
+            E1(I+MLE,J)=-FJAC(I,J)
+         END DO
+         E1(MDIAG,J)=E1(MDIAG,J)+FAC1
+      END DO
+      CALL DECB (N,LDE1,E1,MLE,MUE,IP1,IER)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  12  CONTINUE
+C ---  B=IDENTITY, JACOBIAN A BANDED MATRIX, SECOND ORDER
+      DO J=1,NM1
+         JM1=J+M1
+         DO I=1,MBJAC
+            E1(I+MLE,J)=-FJAC(I,JM1)
+         END DO
+         E1(MDIAG,J)=E1(MDIAG,J)+FAC1
+      END DO
+  46  MM=M1/M2
+      DO J=1,M2
+         DO I=1,MBJAC
+            SUM=0.D0
+            DO K=0,MM-1
+               SUM=(SUM+FJAC(I,J+K*M2))/FAC1
+            END DO
+            E1(I+MLE,J)=E1(I+MLE,J)-SUM
+         END DO
+      END DO
+      CALL DECB (NM1,LDE1,E1,MLE,MUE,IP1,IER)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+   3  CONTINUE
+C ---  B IS A BANDED MATRIX, JACOBIAN A FULL MATRIX
+      DO J=1,N
+         DO I=1,N
+            E1(I,J)=-FJAC(I,J)
+         END DO
+         DO I=MAX(1,J-MUMAS),MIN(N,J+MLMAS)
+            E1(I,J)=E1(I,J)+FAC1*FMAS(I-J+MBDIAG,J)
+         END DO
+      END DO
+      CALL DEC (N,LDE1,E1,IP1,IER)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  13  CONTINUE
+C ---  B IS A BANDED MATRIX, JACOBIAN A FULL MATRIX, SECOND ORDER
+      DO J=1,NM1
+         JM1=J+M1
+         DO I=1,NM1
+            E1(I,J)=-FJAC(I,JM1)
+         END DO
+         DO I=MAX(1,J-MUMAS),MIN(NM1,J+MLMAS)
+            E1(I,J)=E1(I,J)+FAC1*FMAS(I-J+MBDIAG,J)
+         END DO
+      END DO
+      GOTO 45
+C
+C -----------------------------------------------------------
+C
+   4  CONTINUE
+C ---  B IS A BANDED MATRIX, JACOBIAN A BANDED MATRIX
+      DO J=1,N
+         DO I=1,MBJAC
+            E1(I+MLE,J)=-FJAC(I,J)
+         END DO
+         DO I=1,MBB
+            IB=I+MDIFF
+            E1(IB,J)=E1(IB,J)+FAC1*FMAS(I,J)
+         END DO
+      END DO
+      CALL DECB (N,LDE1,E1,MLE,MUE,IP1,IER)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  14  CONTINUE
+C ---  B IS A BANDED MATRIX, JACOBIAN A BANDED MATRIX, SECOND ORDER
+      DO J=1,NM1
+         JM1=J+M1
+         DO I=1,MBJAC
+            E1(I+MLE,J)=-FJAC(I,JM1)
+         END DO
+         DO I=1,MBB
+            IB=I+MDIFF
+            E1(IB,J)=E1(IB,J)+FAC1*FMAS(I,J)
+         END DO
+      END DO
+      GOTO 46
+C
+C -----------------------------------------------------------
+C
+   5  CONTINUE
+C ---  B IS A FULL MATRIX, JACOBIAN A FULL MATRIX
+      DO J=1,N
+         DO I=1,N
+            E1(I,J)=FMAS(I,J)*FAC1-FJAC(I,J)
+         END DO
+      END DO
+      CALL DEC (N,LDE1,E1,IP1,IER)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  15  CONTINUE
+C ---  B IS A FULL MATRIX, JACOBIAN A FULL MATRIX, SECOND ORDER
+      DO J=1,NM1
+         JM1=J+M1
+         DO I=1,NM1
+            E1(I,J)=FMAS(I,J)*FAC1-FJAC(I,JM1)
+         END DO
+      END DO
+      GOTO 45
+C
+C -----------------------------------------------------------
+C
+   6  CONTINUE
+C ---  B IS A FULL MATRIX, JACOBIAN A BANDED MATRIX
+C ---  THIS OPTION IS NOT PROVIDED
+      RETURN
+C
+C -----------------------------------------------------------
+C
+   7  CONTINUE
+C ---  B=IDENTITY, JACOBIAN A FULL MATRIX, HESSENBERG-OPTION
+      IF (CALHES) CALL Elmhes (LDJAC,N,1,N,FJAC,IPHES)
+      CALHES=.FALSE.
+      DO J=1,N-1
+         J1=J+1
+         E1(J1,J)=-FJAC(J1,J)
+      END DO
+      DO J=1,N
+         DO I=1,J
+            E1(I,J)=-FJAC(I,J)
+         END DO
+         E1(J,J)=E1(J,J)+FAC1
+      END DO
+      CALL DECH(N,LDE1,E1,1,IP1,IER)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  55  CONTINUE
+      RETURN
+      END
+C
+C     END OF SUBROUTINE DECOMR
+C
+C ***********************************************************
+C
+      SUBROUTINE DECOMC(N,FJAC,LDJAC,FMAS,LDMAS,MLMAS,MUMAS,
+     &            M1,M2,NM1,ALPHN,BETAN,E2R,E2I,LDE1,IP2,IER,IJOB)
+      IMPLICIT KPP_REAL (A-H,O-Z)
+      DIMENSION FJAC(LDJAC,N),FMAS(LDMAS,NM1),
+     &          E2R(LDE1,NM1),E2I(LDE1,NM1),IP2(NM1)
+      COMMON/LINAL/MLE,MUE,MBJAC,MBB,MDIAG,MDIFF,MBDIAG
+C
+      GOTO (1,2,3,4,5,6,7,55,55,55,11,12,13,14,15), IJOB
+C
+C -----------------------------------------------------------
+C
+   1  CONTINUE
+C ---  B=IDENTITY, JACOBIAN A FULL MATRIX
+      DO J=1,N
+         DO I=1,N
+            E2R(I,J)=-FJAC(I,J)
+            E2I(I,J)=0.D0
+         END DO
+         E2R(J,J)=E2R(J,J)+ALPHN
+         E2I(J,J)=BETAN
+      END DO
+      CALL DECC (N,LDE1,E2R,E2I,IP2,IER)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  11  CONTINUE
+C ---  B=IDENTITY, JACOBIAN A FULL MATRIX, SECOND ORDER
+      DO J=1,NM1
+         JM1=J+M1
+         DO I=1,NM1
+            E2R(I,J)=-FJAC(I,JM1)
+            E2I(I,J)=0.D0
+         END DO
+         E2R(J,J)=E2R(J,J)+ALPHN
+         E2I(J,J)=BETAN
+      END DO
+  45  MM=M1/M2
+      ABNO=ALPHN**2+BETAN**2
+      ALP=ALPHN/ABNO
+      BET=BETAN/ABNO
+      DO J=1,M2
+         DO I=1,NM1
+            SUMR=0.D0
+            SUMI=0.D0
+            DO K=0,MM-1
+               SUMS=SUMR+FJAC(I,J+K*M2)
+               SUMR=SUMS*ALP+SUMI*BET
+               SUMI=SUMI*ALP-SUMS*BET
+            END DO
+            E2R(I,J)=E2R(I,J)-SUMR
+            E2I(I,J)=E2I(I,J)-SUMI
+         END DO
+      END DO
+      CALL DECC (NM1,LDE1,E2R,E2I,IP2,IER)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+   2  CONTINUE
+C ---  B=IDENTITY, JACOBIAN A BANDED MATRIX
+      DO J=1,N
+         DO I=1,MBJAC
+            IMLE=I+MLE
+            E2R(IMLE,J)=-FJAC(I,J)
+            E2I(IMLE,J)=0.D0
+         END DO
+         E2R(MDIAG,J)=E2R(MDIAG,J)+ALPHN
+         E2I(MDIAG,J)=BETAN
+      END DO
+      CALL DECBC (N,LDE1,E2R,E2I,MLE,MUE,IP2,IER)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  12  CONTINUE
+C ---  B=IDENTITY, JACOBIAN A BANDED MATRIX, SECOND ORDER
+      DO J=1,NM1
+         JM1=J+M1
+         DO I=1,MBJAC
+            E2R(I+MLE,J)=-FJAC(I,JM1)
+            E2I(I+MLE,J)=0.D0
+         END DO
+         E2R(MDIAG,J)=E2R(MDIAG,J)+ALPHN
+         E2I(MDIAG,J)=E2I(MDIAG,J)+BETAN
+      END DO
+  46  MM=M1/M2
+      ABNO=ALPHN**2+BETAN**2
+      ALP=ALPHN/ABNO
+      BET=BETAN/ABNO
+      DO J=1,M2
+         DO I=1,MBJAC
+            SUMR=0.D0
+            SUMI=0.D0
+            DO K=0,MM-1
+               SUMS=SUMR+FJAC(I,J+K*M2)
+               SUMR=SUMS*ALP+SUMI*BET
+               SUMI=SUMI*ALP-SUMS*BET
+            END DO
+            IMLE=I+MLE
+            E2R(IMLE,J)=E2R(IMLE,J)-SUMR
+            E2I(IMLE,J)=E2I(IMLE,J)-SUMI
+         END DO
+      END DO
+      CALL DECBC (NM1,LDE1,E2R,E2I,MLE,MUE,IP2,IER)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+   3  CONTINUE
+C ---  B IS A BANDED MATRIX, JACOBIAN A FULL MATRIX
+      DO  J=1,N
+         DO  I=1,N
+            E2R(I,J)=-FJAC(I,J)
+            E2I(I,J)=0.D0
+         END DO
+      END DO
+      DO J=1,N
+         DO I=MAX(1,J-MUMAS),MIN(N,J+MLMAS)
+            BB=FMAS(I-J+MBDIAG,J)
+            E2R(I,J)=E2R(I,J)+ALPHN*BB
+            E2I(I,J)=BETAN*BB
+         END DO
+      END DO
+      CALL DECC(N,LDE1,E2R,E2I,IP2,IER)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  13  CONTINUE
+C ---  B IS A BANDED MATRIX, JACOBIAN A FULL MATRIX, SECOND ORDER
+      DO J=1,NM1
+         JM1=J+M1
+         DO I=1,NM1
+            E2R(I,J)=-FJAC(I,JM1)
+            E2I(I,J)=0.D0
+         END DO
+         DO I=MAX(1,J-MUMAS),MIN(NM1,J+MLMAS)
+            FFMA=FMAS(I-J+MBDIAG,J)
+            E2R(I,J)=E2R(I,J)+ALPHN*FFMA
+            E2I(I,J)=E2I(I,J)+BETAN*FFMA
+         END DO
+      END DO
+      GOTO 45
+C
+C -----------------------------------------------------------
+C
+   4  CONTINUE
+C ---  B IS A BANDED MATRIX, JACOBIAN A BANDED MATRIX
+      DO J=1,N
+         DO I=1,MBJAC
+            IMLE=I+MLE
+            E2R(IMLE,J)=-FJAC(I,J)
+            E2I(IMLE,J)=0.D0
+         END DO
+         DO I=MAX(1,MUMAS+2-J),MIN(MBB,MUMAS+1-J+N)
+            IB=I+MDIFF
+            BB=FMAS(I,J)
+            E2R(IB,J)=E2R(IB,J)+ALPHN*BB
+            E2I(IB,J)=BETAN*BB
+         END DO
+      END DO
+      CALL DECBC (N,LDE1,E2R,E2I,MLE,MUE,IP2,IER)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  14  CONTINUE
+C ---  B IS A BANDED MATRIX, JACOBIAN A BANDED MATRIX, SECOND ORDER
+      DO J=1,NM1
+         JM1=J+M1
+         DO I=1,MBJAC
+            E2R(I+MLE,J)=-FJAC(I,JM1)
+            E2I(I+MLE,J)=0.D0
+         END DO
+         DO I=1,MBB
+            IB=I+MDIFF
+            FFMA=FMAS(I,J)
+            E2R(IB,J)=E2R(IB,J)+ALPHN*FFMA
+            E2I(IB,J)=E2I(IB,J)+BETAN*FFMA
+         END DO
+      END DO
+      GOTO 46
+C
+C -----------------------------------------------------------
+C
+   5  CONTINUE
+C ---  B IS A FULL MATRIX, JACOBIAN A FULL MATRIX
+      DO J=1,N
+         DO I=1,N
+            BB=FMAS(I,J)
+            E2R(I,J)=BB*ALPHN-FJAC(I,J)
+            E2I(I,J)=BB*BETAN
+         END DO
+      END DO
+      CALL DECC(N,LDE1,E2R,E2I,IP2,IER)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  15  CONTINUE
+C ---  B IS A FULL MATRIX, JACOBIAN A FULL MATRIX, SECOND ORDER
+      DO J=1,NM1
+         JM1=J+M1
+         DO I=1,NM1
+            E2R(I,J)=ALPHN*FMAS(I,J)-FJAC(I,JM1)
+            E2I(I,J)=BETAN*FMAS(I,J)
+         END DO
+      END DO
+      GOTO 45
+C
+C -----------------------------------------------------------
+C
+   6  CONTINUE
+C ---  B IS A FULL MATRIX, JACOBIAN A BANDED MATRIX
+C ---  THIS OPTION IS NOT PROVIDED
+      RETURN
+C
+C -----------------------------------------------------------
+C
+   7  CONTINUE
+C ---  B=IDENTITY, JACOBIAN A FULL MATRIX, HESSENBERG-OPTION
+      DO J=1,N-1
+         J1=J+1
+         E2R(J1,J)=-FJAC(J1,J)
+         E2I(J1,J)=0.D0
+      END DO
+      DO J=1,N
+         DO I=1,J
+            E2I(I,J)=0.D0
+            E2R(I,J)=-FJAC(I,J)
+         END DO
+         E2R(J,J)=E2R(J,J)+ALPHN
+         E2I(J,J)=BETAN
+      END DO
+      CALL DECHC(N,LDE1,E2R,E2I,1,IP2,IER)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  55  CONTINUE
+      RETURN
+      END
+C
+C     END OF SUBROUTINE DECOMC
+C
+C ***********************************************************
+C
+      SUBROUTINE SLVRAR(N,FJAC,LDJAC,MLJAC,MUJAC,FMAS,LDMAS,MLMAS,MUMAS,
+     &          M1,M2,NM1,FAC1,E1,LDE1,Z1,F1,IP1,IPHES,IER,IJOB)
+      IMPLICIT KPP_REAL (A-H,O-Z)
+      DIMENSION FJAC(LDJAC,N),FMAS(LDMAS,NM1),E1(LDE1,NM1),
+     &          IP1(NM1),IPHES(N),Z1(N),F1(N)
+      COMMON/LINAL/MLE,MUE,MBJAC,MBB,MDIAG,MDIFF,MBDIAG
+C
+      GOTO (1,2,3,4,5,6,7,55,55,55,11,12,13,13,15), IJOB
+C
+C -----------------------------------------------------------
+C
+   1  CONTINUE
+C ---  B=IDENTITY, JACOBIAN A FULL MATRIX
+      DO I=1,N
+         Z1(I)=Z1(I)-F1(I)*FAC1
+      END DO
+      CALL SOL (N,LDE1,E1,Z1,IP1)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  11  CONTINUE
+C ---  B=IDENTITY, JACOBIAN A FULL MATRIX, SECOND ORDER
+      DO I=1,N
+         Z1(I)=Z1(I)-F1(I)*FAC1
+      END DO
+ 48   CONTINUE
+      MM=M1/M2
+      DO J=1,M2
+         SUM1=0.D0
+         DO K=MM-1,0,-1
+            JKM=J+K*M2
+            SUM1=(Z1(JKM)+SUM1)/FAC1
+            DO I=1,NM1
+               IM1=I+M1
+               Z1(IM1)=Z1(IM1)+FJAC(I,JKM)*SUM1
+            END DO
+         END DO
+      END DO
+      CALL SOL (NM1,LDE1,E1,Z1(M1+1),IP1)
+ 49   CONTINUE
+      DO I=M1,1,-1
+         Z1(I)=(Z1(I)+Z1(M2+I))/FAC1
+      END DO
+      RETURN
+C
+C -----------------------------------------------------------
+C
+   2  CONTINUE
+C ---  B=IDENTITY, JACOBIAN A BANDED MATRIX
+      DO I=1,N
+         Z1(I)=Z1(I)-F1(I)*FAC1
+      END DO
+      CALL SOLB (N,LDE1,E1,MLE,MUE,Z1,IP1)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  12  CONTINUE
+C ---  B=IDENTITY, JACOBIAN A BANDED MATRIX, SECOND ORDER
+      DO I=1,N
+         Z1(I)=Z1(I)-F1(I)*FAC1
+      END DO
+  45  CONTINUE
+      MM=M1/M2
+      DO J=1,M2
+         SUM1=0.D0
+         DO K=MM-1,0,-1
+            JKM=J+K*M2
+            SUM1=(Z1(JKM)+SUM1)/FAC1
+            DO I=MAX(1,J-MUJAC),MIN(NM1,J+MLJAC)
+               IM1=I+M1
+               Z1(IM1)=Z1(IM1)+FJAC(I+MUJAC+1-J,JKM)*SUM1
+            END DO
+         END DO
+      END DO
+      CALL SOLB (NM1,LDE1,E1,MLE,MUE,Z1(M1+1),IP1)
+      GOTO 49
+C
+C -----------------------------------------------------------
+C
+   3  CONTINUE
+C ---  B IS A BANDED MATRIX, JACOBIAN A FULL MATRIX
+      DO I=1,N
+         S1=0.0D0
+         DO J=MAX(1,I-MLMAS),MIN(N,I+MUMAS)
+            S1=S1-FMAS(I-J+MBDIAG,J)*F1(J)
+         END DO
+         Z1(I)=Z1(I)+S1*FAC1
+      END DO
+      CALL SOL (N,LDE1,E1,Z1,IP1)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  13  CONTINUE
+C ---  B IS A BANDED MATRIX, JACOBIAN A FULL MATRIX, SECOND ORDER
+      DO I=1,M1
+         Z1(I)=Z1(I)-F1(I)*FAC1
+      END DO
+      DO I=1,NM1
+         IM1=I+M1
+         S1=0.0D0
+         DO J=MAX(1,I-MLMAS),MIN(NM1,I+MUMAS)
+            S1=S1-FMAS(I-J+MBDIAG,J)*F1(J+M1)
+         END DO
+         Z1(IM1)=Z1(IM1)+S1*FAC1
+      END DO
+      IF (IJOB.EQ.14) GOTO 45
+      GOTO 48
+C
+C -----------------------------------------------------------
+C
+   4  CONTINUE
+C ---  B IS A BANDED MATRIX, JACOBIAN A BANDED MATRIX
+      DO I=1,N
+         S1=0.0D0
+         DO J=MAX(1,I-MLMAS),MIN(N,I+MUMAS)
+            S1=S1-FMAS(I-J+MBDIAG,J)*F1(J)
+         END DO
+         Z1(I)=Z1(I)+S1*FAC1
+      END DO
+      CALL SOLB (N,LDE1,E1,MLE,MUE,Z1,IP1)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+   5  CONTINUE
+C ---  B IS A FULL MATRIX, JACOBIAN A FULL MATRIX
+      DO I=1,N
+         S1=0.0D0
+         DO J=1,N
+            S1=S1-FMAS(I,J)*F1(J)
+         END DO
+         Z1(I)=Z1(I)+S1*FAC1
+      END DO
+      CALL SOL (N,LDE1,E1,Z1,IP1)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  15  CONTINUE
+C ---  B IS A FULL MATRIX, JACOBIAN A FULL MATRIX, SECOND ORDER
+      DO I=1,M1
+         Z1(I)=Z1(I)-F1(I)*FAC1
+      END DO
+      DO I=1,NM1
+         IM1=I+M1
+         S1=0.0D0
+         DO J=1,NM1
+            S1=S1-FMAS(I,J)*F1(J+M1)
+         END DO
+         Z1(IM1)=Z1(IM1)+S1*FAC1
+      END DO
+      GOTO 48
+C
+C -----------------------------------------------------------
+C
+   6  CONTINUE
+C ---  B IS A FULL MATRIX, JACOBIAN A BANDED MATRIX
+C ---  THIS OPTION IS NOT PROVIDED
+      RETURN
+C
+C -----------------------------------------------------------
+C
+   7  CONTINUE
+C ---  B=IDENTITY, JACOBIAN A FULL MATRIX, HESSENBERG-OPTION
+      DO I=1,N
+         Z1(I)=Z1(I)-F1(I)*FAC1
+      END DO
+      DO MM=N-2,1,-1
+          MP=N-MM
+          MP1=MP-1
+          I=IPHES(MP)
+          IF (I.EQ.MP) GOTO 746
+          ZSAFE=Z1(MP)
+          Z1(MP)=Z1(I)
+          Z1(I)=ZSAFE
+ 746      CONTINUE
+          DO I=MP+1,N
+             Z1(I)=Z1(I)-FJAC(I,MP1)*Z1(MP)
+          END DO
+       END DO
+       CALL SOLH(N,LDE1,E1,1,Z1,IP1)
+       DO MM=1,N-2
+          MP=N-MM
+          MP1=MP-1
+          DO I=MP+1,N
+             Z1(I)=Z1(I)+FJAC(I,MP1)*Z1(MP)
+          END DO
+          I=IPHES(MP)
+          IF (I.EQ.MP) GOTO 750
+          ZSAFE=Z1(MP)
+          Z1(MP)=Z1(I)
+          Z1(I)=ZSAFE
+ 750      CONTINUE
+      END DO
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  55  CONTINUE
+      RETURN
+      END
+C
+C     END OF SUBROUTINE SLVRAR
+C
+C ***********************************************************
+C
+      SUBROUTINE SLVRAI(N,FJAC,LDJAC,MLJAC,MUJAC,FMAS,LDMAS,MLMAS,MUMAS,
+     &          M1,M2,NM1,ALPHN,BETAN,E2R,E2I,LDE1,Z2,Z3,
+     &          F2,F3,CONT,IP2,IPHES,IER,IJOB)
+      IMPLICIT KPP_REAL (A-H,O-Z)
+      DIMENSION FJAC(LDJAC,N),FMAS(LDMAS,NM1),
+     &          IP2(NM1),IPHES(N),Z2(N),Z3(N),F2(N),F3(N)
+      DIMENSION E2R(LDE1,NM1),E2I(LDE1,NM1)
+      COMMON/LINAL/MLE,MUE,MBJAC,MBB,MDIAG,MDIFF,MBDIAG
+C
+      GOTO (1,2,3,4,5,6,7,55,55,55,11,12,13,13,15), IJOB
+C
+C -----------------------------------------------------------
+C
+   1  CONTINUE
+C ---  B=IDENTITY, JACOBIAN A FULL MATRIX
+      DO I=1,N
+         S2=-F2(I)
+         S3=-F3(I)
+         Z2(I)=Z2(I)+S2*ALPHN-S3*BETAN
+         Z3(I)=Z3(I)+S3*ALPHN+S2*BETAN
+      END DO
+      CALL SOLC (N,LDE1,E2R,E2I,Z2,Z3,IP2)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  11  CONTINUE
+C ---  B=IDENTITY, JACOBIAN A FULL MATRIX, SECOND ORDER
+      DO I=1,N
+         S2=-F2(I)
+         S3=-F3(I)
+         Z2(I)=Z2(I)+S2*ALPHN-S3*BETAN
+         Z3(I)=Z3(I)+S3*ALPHN+S2*BETAN
+      END DO
+ 48   ABNO=ALPHN**2+BETAN**2
+      MM=M1/M2
+      DO J=1,M2
+         SUM2=0.D0
+         SUM3=0.D0
+         DO K=MM-1,0,-1
+            JKM=J+K*M2
+            SUMH=(Z2(JKM)+SUM2)/ABNO
+            SUM3=(Z3(JKM)+SUM3)/ABNO
+            SUM2=SUMH*ALPHN+SUM3*BETAN
+            SUM3=SUM3*ALPHN-SUMH*BETAN
+            DO I=1,NM1
+               IM1=I+M1
+               Z2(IM1)=Z2(IM1)+FJAC(I,JKM)*SUM2
+               Z3(IM1)=Z3(IM1)+FJAC(I,JKM)*SUM3
+            END DO
+         END DO
+      END DO
+      CALL SOLC (NM1,LDE1,E2R,E2I,Z2(M1+1),Z3(M1+1),IP2)
+ 49   CONTINUE
+      DO I=M1,1,-1
+         MPI=M2+I
+         Z2I=Z2(I)+Z2(MPI)
+         Z3I=Z3(I)+Z3(MPI)
+         Z3(I)=(Z3I*ALPHN-Z2I*BETAN)/ABNO
+         Z2(I)=(Z2I*ALPHN+Z3I*BETAN)/ABNO
+      END DO
+      RETURN
+C
+C -----------------------------------------------------------
+C
+   2  CONTINUE
+C ---  B=IDENTITY, JACOBIAN A BANDED MATRIX
+      DO I=1,N
+         S2=-F2(I)
+         S3=-F3(I)
+         Z2(I)=Z2(I)+S2*ALPHN-S3*BETAN
+         Z3(I)=Z3(I)+S3*ALPHN+S2*BETAN
+      END DO
+      CALL SOLBC (N,LDE1,E2R,E2I,MLE,MUE,Z2,Z3,IP2)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  12  CONTINUE
+C ---  B=IDENTITY, JACOBIAN A BANDED MATRIX, SECOND ORDER
+      DO I=1,N
+         S2=-F2(I)
+         S3=-F3(I)
+         Z2(I)=Z2(I)+S2*ALPHN-S3*BETAN
+         Z3(I)=Z3(I)+S3*ALPHN+S2*BETAN
+      END DO
+  45  ABNO=ALPHN**2+BETAN**2
+      MM=M1/M2
+      DO J=1,M2
+         SUM2=0.D0
+         SUM3=0.D0
+         DO K=MM-1,0,-1
+            JKM=J+K*M2
+            SUMH=(Z2(JKM)+SUM2)/ABNO
+            SUM3=(Z3(JKM)+SUM3)/ABNO
+            SUM2=SUMH*ALPHN+SUM3*BETAN
+            SUM3=SUM3*ALPHN-SUMH*BETAN
+            DO I=MAX(1,J-MUJAC),MIN(NM1,J+MLJAC)
+               IM1=I+M1
+               IIMU=I+MUJAC+1-J
+               Z2(IM1)=Z2(IM1)+FJAC(IIMU,JKM)*SUM2
+               Z3(IM1)=Z3(IM1)+FJAC(IIMU,JKM)*SUM3
+            END DO
+         END DO
+      END DO
+      CALL SOLBC (NM1,LDE1,E2R,E2I,MLE,MUE,Z2(M1+1),Z3(M1+1),IP2)
+      GOTO 49
+C
+C -----------------------------------------------------------
+C
+   3  CONTINUE
+C ---  B IS A BANDED MATRIX, JACOBIAN A FULL MATRIX
+      DO I=1,N
+         S2=0.0D0
+         S3=0.0D0
+         DO J=MAX(1,I-MLMAS),MIN(N,I+MUMAS)
+            BB=FMAS(I-J+MBDIAG,J)
+            S2=S2-BB*F2(J)
+            S3=S3-BB*F3(J)
+         END DO
+         Z2(I)=Z2(I)+S2*ALPHN-S3*BETAN
+         Z3(I)=Z3(I)+S3*ALPHN+S2*BETAN
+      END DO
+      CALL SOLC(N,LDE1,E2R,E2I,Z2,Z3,IP2)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  13  CONTINUE
+C ---  B IS A BANDED MATRIX, JACOBIAN A FULL MATRIX, SECOND ORDER
+      DO I=1,M1
+         S2=-F2(I)
+         S3=-F3(I)
+         Z2(I)=Z2(I)+S2*ALPHN-S3*BETAN
+         Z3(I)=Z3(I)+S3*ALPHN+S2*BETAN
+      END DO
+      DO I=1,NM1
+         IM1=I+M1
+         S2=0.0D0
+         S3=0.0D0
+         DO J=MAX(1,I-MLMAS),MIN(NM1,I+MUMAS)
+            JM1=J+M1
+            BB=FMAS(I-J+MBDIAG,J)
+            S2=S2-BB*F2(JM1)
+            S3=S3-BB*F3(JM1)
+         END DO
+         Z2(IM1)=Z2(IM1)+S2*ALPHN-S3*BETAN
+         Z3(IM1)=Z3(IM1)+S3*ALPHN+S2*BETAN
+      END DO
+      IF (IJOB.EQ.14) GOTO 45
+      GOTO 48
+C
+C -----------------------------------------------------------
+C
+   4  CONTINUE
+C ---  B IS A BANDED MATRIX, JACOBIAN A BANDED MATRIX
+      DO I=1,N
+         S2=0.0D0
+         S3=0.0D0
+         DO J=MAX(1,I-MLMAS),MIN(N,I+MUMAS)
+            BB=FMAS(I-J+MBDIAG,J)
+            S2=S2-BB*F2(J)
+            S3=S3-BB*F3(J)
+         END DO
+         Z2(I)=Z2(I)+S2*ALPHN-S3*BETAN
+         Z3(I)=Z3(I)+S3*ALPHN+S2*BETAN
+      END DO
+      CALL SOLBC(N,LDE1,E2R,E2I,MLE,MUE,Z2,Z3,IP2)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+   5  CONTINUE
+C ---  B IS A FULL MATRIX, JACOBIAN A FULL MATRIX
+      DO I=1,N
+         S2=0.0D0
+         S3=0.0D0
+         DO J=1,N
+            BB=FMAS(I,J)
+            S2=S2-BB*F2(J)
+            S3=S3-BB*F3(J)
+         END DO
+         Z2(I)=Z2(I)+S2*ALPHN-S3*BETAN
+         Z3(I)=Z3(I)+S3*ALPHN+S2*BETAN
+      END DO
+      CALL SOLC(N,LDE1,E2R,E2I,Z2,Z3,IP2)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  15  CONTINUE
+C ---  B IS A FULL MATRIX, JACOBIAN A FULL MATRIX, SECOND ORDER
+      DO I=1,M1
+         S2=-F2(I)
+         S3=-F3(I)
+         Z2(I)=Z2(I)+S2*ALPHN-S3*BETAN
+         Z3(I)=Z3(I)+S3*ALPHN+S2*BETAN
+      END DO
+      DO I=1,NM1
+         IM1=I+M1
+         S2=0.0D0
+         S3=0.0D0
+         DO J=1,NM1
+            JM1=J+M1
+            BB=FMAS(I,J)
+            S2=S2-BB*F2(JM1)
+            S3=S3-BB*F3(JM1)
+         END DO
+         Z2(IM1)=Z2(IM1)+S2*ALPHN-S3*BETAN
+         Z3(IM1)=Z3(IM1)+S3*ALPHN+S2*BETAN
+      END DO
+      GOTO 48
+C
+C -----------------------------------------------------------
+C
+   6  CONTINUE
+C ---  B IS A FULL MATRIX, JACOBIAN A BANDED MATRIX
+C ---  THIS OPTION IS NOT PROVIDED
+      RETURN
+C
+C -----------------------------------------------------------
+C
+   7  CONTINUE
+C ---  B=IDENTITY, JACOBIAN A FULL MATRIX, HESSENBERG-OPTION
+      DO I=1,N
+         S2=-F2(I)
+         S3=-F3(I)
+         Z2(I)=Z2(I)+S2*ALPHN-S3*BETAN
+         Z3(I)=Z3(I)+S3*ALPHN+S2*BETAN
+      END DO
+      DO MM=N-2,1,-1
+          MP=N-MM
+          MP1=MP-1
+          I=IPHES(MP)
+          IF (I.EQ.MP) GOTO 746
+          ZSAFE=Z2(MP)
+          Z2(MP)=Z2(I)
+          Z2(I)=ZSAFE
+          ZSAFE=Z3(MP)
+          Z3(MP)=Z3(I)
+          Z3(I)=ZSAFE
+ 746      CONTINUE
+          DO I=MP+1,N
+             E1IMP=FJAC(I,MP1)
+             Z2(I)=Z2(I)-E1IMP*Z2(MP)
+             Z3(I)=Z3(I)-E1IMP*Z3(MP)
+          END DO
+       END DO
+       CALL SOLHC(N,LDE1,E2R,E2I,1,Z2,Z3,IP2)
+       DO MM=1,N-2
+          MP=N-MM
+          MP1=MP-1
+          DO I=MP+1,N
+             E1IMP=FJAC(I,MP1)
+             Z2(I)=Z2(I)+E1IMP*Z2(MP)
+             Z3(I)=Z3(I)+E1IMP*Z3(MP)
+          END DO
+          I=IPHES(MP)
+          IF (I.EQ.MP) GOTO 750
+          ZSAFE=Z2(MP)
+          Z2(MP)=Z2(I)
+          Z2(I)=ZSAFE
+          ZSAFE=Z3(MP)
+          Z3(MP)=Z3(I)
+          Z3(I)=ZSAFE
+ 750      CONTINUE
+      END DO
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  55  CONTINUE
+      RETURN
+      END
+C
+C     END OF SUBROUTINE SLVRAI
+C
+C ***********************************************************
+C
+      SUBROUTINE SLVRAD(N,FJAC,LDJAC,MLJAC,MUJAC,FMAS,LDMAS,MLMAS,MUMAS,
+     &          M1,M2,NM1,FAC1,ALPHN,BETAN,E1,E2R,E2I,LDE1,Z1,Z2,Z3,
+     &          F1,F2,F3,CONT,IP1,IP2,IPHES,IER,IJOB)
+      IMPLICIT KPP_REAL (A-H,O-Z)
+      DIMENSION FJAC(LDJAC,N),FMAS(LDMAS,NM1),E1(LDE1,NM1),
+     &          E2R(LDE1,NM1),E2I(LDE1,NM1),IP1(NM1),IP2(NM1),
+     &          IPHES(N),Z1(N),Z2(N),Z3(N),F1(N),F2(N),F3(N)
+      COMMON/LINAL/MLE,MUE,MBJAC,MBB,MDIAG,MDIFF,MBDIAG
+C
+      GOTO (1,2,3,4,5,6,7,55,55,55,11,12,13,13,15), IJOB
+C
+C -----------------------------------------------------------
+C
+   1  CONTINUE
+C ---  B=IDENTITY, JACOBIAN A FULL MATRIX
+      DO I=1,N
+         S2=-F2(I)
+         S3=-F3(I)
+         Z1(I)=Z1(I)-F1(I)*FAC1
+         Z2(I)=Z2(I)+S2*ALPHN-S3*BETAN
+         Z3(I)=Z3(I)+S3*ALPHN+S2*BETAN
+      END DO
+      CALL SOL (N,LDE1,E1,Z1,IP1)
+      CALL SOLC (N,LDE1,E2R,E2I,Z2,Z3,IP2)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  11  CONTINUE
+C ---  B=IDENTITY, JACOBIAN A FULL MATRIX, SECOND ORDER
+      DO I=1,N
+         S2=-F2(I)
+         S3=-F3(I)
+         Z1(I)=Z1(I)-F1(I)*FAC1
+         Z2(I)=Z2(I)+S2*ALPHN-S3*BETAN
+         Z3(I)=Z3(I)+S3*ALPHN+S2*BETAN
+      END DO
+ 48   ABNO=ALPHN**2+BETAN**2
+      MM=M1/M2
+      DO J=1,M2
+         SUM1=0.D0
+         SUM2=0.D0
+         SUM3=0.D0
+         DO K=MM-1,0,-1
+            JKM=J+K*M2
+            SUM1=(Z1(JKM)+SUM1)/FAC1
+            SUMH=(Z2(JKM)+SUM2)/ABNO
+            SUM3=(Z3(JKM)+SUM3)/ABNO
+            SUM2=SUMH*ALPHN+SUM3*BETAN
+            SUM3=SUM3*ALPHN-SUMH*BETAN
+            DO I=1,NM1
+               IM1=I+M1
+               Z1(IM1)=Z1(IM1)+FJAC(I,JKM)*SUM1
+               Z2(IM1)=Z2(IM1)+FJAC(I,JKM)*SUM2
+               Z3(IM1)=Z3(IM1)+FJAC(I,JKM)*SUM3
+            END DO
+         END DO
+      END DO
+      CALL SOL (NM1,LDE1,E1,Z1(M1+1),IP1)
+      CALL SOLC (NM1,LDE1,E2R,E2I,Z2(M1+1),Z3(M1+1),IP2)
+ 49   CONTINUE
+      DO I=M1,1,-1
+         MPI=M2+I
+         Z1(I)=(Z1(I)+Z1(MPI))/FAC1
+         Z2I=Z2(I)+Z2(MPI)
+         Z3I=Z3(I)+Z3(MPI)
+         Z3(I)=(Z3I*ALPHN-Z2I*BETAN)/ABNO
+         Z2(I)=(Z2I*ALPHN+Z3I*BETAN)/ABNO
+      END DO
+      RETURN
+C
+C -----------------------------------------------------------
+C
+   2  CONTINUE
+C ---  B=IDENTITY, JACOBIAN A BANDED MATRIX
+      DO I=1,N
+         S2=-F2(I)
+         S3=-F3(I)
+         Z1(I)=Z1(I)-F1(I)*FAC1
+         Z2(I)=Z2(I)+S2*ALPHN-S3*BETAN
+         Z3(I)=Z3(I)+S3*ALPHN+S2*BETAN
+      END DO
+      CALL SOLB (N,LDE1,E1,MLE,MUE,Z1,IP1)
+      CALL SOLBC (N,LDE1,E2R,E2I,MLE,MUE,Z2,Z3,IP2)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  12  CONTINUE
+C ---  B=IDENTITY, JACOBIAN A BANDED MATRIX, SECOND ORDER
+      DO I=1,N
+         S2=-F2(I)
+         S3=-F3(I)
+         Z1(I)=Z1(I)-F1(I)*FAC1
+         Z2(I)=Z2(I)+S2*ALPHN-S3*BETAN
+         Z3(I)=Z3(I)+S3*ALPHN+S2*BETAN
+      END DO
+  45  ABNO=ALPHN**2+BETAN**2
+      MM=M1/M2
+      DO J=1,M2
+         SUM1=0.D0
+         SUM2=0.D0
+         SUM3=0.D0
+         DO K=MM-1,0,-1
+            JKM=J+K*M2
+            SUM1=(Z1(JKM)+SUM1)/FAC1
+            SUMH=(Z2(JKM)+SUM2)/ABNO
+            SUM3=(Z3(JKM)+SUM3)/ABNO
+            SUM2=SUMH*ALPHN+SUM3*BETAN
+            SUM3=SUM3*ALPHN-SUMH*BETAN
+            DO I=MAX(1,J-MUJAC),MIN(NM1,J+MLJAC)
+               IM1=I+M1
+               FFJA=FJAC(I+MUJAC+1-J,JKM)
+               Z1(IM1)=Z1(IM1)+FFJA*SUM1
+               Z2(IM1)=Z2(IM1)+FFJA*SUM2
+               Z3(IM1)=Z3(IM1)+FFJA*SUM3
+            END DO
+         END DO
+      END DO
+      CALL SOLB (NM1,LDE1,E1,MLE,MUE,Z1(M1+1),IP1)
+      CALL SOLBC (NM1,LDE1,E2R,E2I,MLE,MUE,Z2(M1+1),Z3(M1+1),IP2)
+      GOTO 49
+C
+C -----------------------------------------------------------
+C
+   3  CONTINUE
+C ---  B IS A BANDED MATRIX, JACOBIAN A FULL MATRIX
+      DO I=1,N
+         S1=0.0D0
+         S2=0.0D0
+         S3=0.0D0
+         DO J=MAX(1,I-MLMAS),MIN(N,I+MUMAS)
+            BB=FMAS(I-J+MBDIAG,J)
+            S1=S1-BB*F1(J)
+            S2=S2-BB*F2(J)
+            S3=S3-BB*F3(J)
+         END DO
+         Z1(I)=Z1(I)+S1*FAC1
+         Z2(I)=Z2(I)+S2*ALPHN-S3*BETAN
+         Z3(I)=Z3(I)+S3*ALPHN+S2*BETAN
+      END DO
+      CALL SOL (N,LDE1,E1,Z1,IP1)
+      CALL SOLC(N,LDE1,E2R,E2I,Z2,Z3,IP2)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  13  CONTINUE
+C ---  B IS A BANDED MATRIX, JACOBIAN A FULL MATRIX, SECOND ORDER
+      DO I=1,M1
+         S2=-F2(I)
+         S3=-F3(I)
+         Z1(I)=Z1(I)-F1(I)*FAC1
+         Z2(I)=Z2(I)+S2*ALPHN-S3*BETAN
+         Z3(I)=Z3(I)+S3*ALPHN+S2*BETAN
+      END DO
+      DO I=1,NM1
+         IM1=I+M1
+         S1=0.0D0
+         S2=0.0D0
+         S3=0.0D0
+         J1B=MAX(1,I-MLMAS)
+         J2B=MIN(NM1,I+MUMAS)
+         DO J=J1B,J2B
+            JM1=J+M1
+            BB=FMAS(I-J+MBDIAG,J)
+            S1=S1-BB*F1(JM1)
+            S2=S2-BB*F2(JM1)
+            S3=S3-BB*F3(JM1)
+         END DO
+         Z1(IM1)=Z1(IM1)+S1*FAC1
+         Z2(IM1)=Z2(IM1)+S2*ALPHN-S3*BETAN
+         Z3(IM1)=Z3(IM1)+S3*ALPHN+S2*BETAN
+      END DO
+      IF (IJOB.EQ.14) GOTO 45
+      GOTO 48
+C
+C -----------------------------------------------------------
+C
+   4  CONTINUE
+C ---  B IS A BANDED MATRIX, JACOBIAN A BANDED MATRIX
+      DO I=1,N
+         S1=0.0D0
+         S2=0.0D0
+         S3=0.0D0
+         DO J=MAX(1,I-MLMAS),MIN(N,I+MUMAS)
+            BB=FMAS(I-J+MBDIAG,J)
+            S1=S1-BB*F1(J)
+            S2=S2-BB*F2(J)
+            S3=S3-BB*F3(J)
+         END DO
+         Z1(I)=Z1(I)+S1*FAC1
+         Z2(I)=Z2(I)+S2*ALPHN-S3*BETAN
+         Z3(I)=Z3(I)+S3*ALPHN+S2*BETAN
+      END DO
+      CALL SOLB (N,LDE1,E1,MLE,MUE,Z1,IP1)
+      CALL SOLBC(N,LDE1,E2R,E2I,MLE,MUE,Z2,Z3,IP2)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+   5  CONTINUE
+C ---  B IS A FULL MATRIX, JACOBIAN A FULL MATRIX
+      DO I=1,N
+         S1=0.0D0
+         S2=0.0D0
+         S3=0.0D0
+         DO J=1,N
+            BB=FMAS(I,J)
+            S1=S1-BB*F1(J)
+            S2=S2-BB*F2(J)
+            S3=S3-BB*F3(J)
+         END DO
+         Z1(I)=Z1(I)+S1*FAC1
+         Z2(I)=Z2(I)+S2*ALPHN-S3*BETAN
+         Z3(I)=Z3(I)+S3*ALPHN+S2*BETAN
+      END DO
+      CALL SOL (N,LDE1,E1,Z1,IP1)
+      CALL SOLC(N,LDE1,E2R,E2I,Z2,Z3,IP2)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  15  CONTINUE
+C ---  B IS A FULL MATRIX, JACOBIAN A FULL MATRIX, SECOND ORDER
+      DO I=1,M1
+         S2=-F2(I)
+         S3=-F3(I)
+         Z1(I)=Z1(I)-F1(I)*FAC1
+         Z2(I)=Z2(I)+S2*ALPHN-S3*BETAN
+         Z3(I)=Z3(I)+S3*ALPHN+S2*BETAN
+      END DO
+      DO I=1,NM1
+         IM1=I+M1
+         S1=0.0D0
+         S2=0.0D0
+         S3=0.0D0
+         DO J=1,NM1
+            JM1=J+M1
+            BB=FMAS(I,J)
+            S1=S1-BB*F1(JM1)
+            S2=S2-BB*F2(JM1)
+            S3=S3-BB*F3(JM1)
+         END DO
+         Z1(IM1)=Z1(IM1)+S1*FAC1
+         Z2(IM1)=Z2(IM1)+S2*ALPHN-S3*BETAN
+         Z3(IM1)=Z3(IM1)+S3*ALPHN+S2*BETAN
+      END DO
+      GOTO 48
+C
+C -----------------------------------------------------------
+C
+   6  CONTINUE
+C ---  B IS A FULL MATRIX, JACOBIAN A BANDED MATRIX
+C ---  THIS OPTION IS NOT PROVIDED
+      RETURN
+C
+C -----------------------------------------------------------
+C
+   7  CONTINUE
+C ---  B=IDENTITY, JACOBIAN A FULL MATRIX, HESSENBERG-OPTION
+      DO I=1,N
+         S2=-F2(I)
+         S3=-F3(I)
+         Z1(I)=Z1(I)-F1(I)*FAC1
+         Z2(I)=Z2(I)+S2*ALPHN-S3*BETAN
+         Z3(I)=Z3(I)+S3*ALPHN+S2*BETAN
+      END DO
+      DO MM=N-2,1,-1
+          MP=N-MM
+          MP1=MP-1
+          I=IPHES(MP)
+          IF (I.EQ.MP) GOTO 746
+          ZSAFE=Z1(MP)
+          Z1(MP)=Z1(I)
+          Z1(I)=ZSAFE
+          ZSAFE=Z2(MP)
+          Z2(MP)=Z2(I)
+          Z2(I)=ZSAFE
+          ZSAFE=Z3(MP)
+          Z3(MP)=Z3(I)
+          Z3(I)=ZSAFE
+ 746      CONTINUE
+          DO I=MP+1,N
+             E1IMP=FJAC(I,MP1)
+             Z1(I)=Z1(I)-E1IMP*Z1(MP)
+             Z2(I)=Z2(I)-E1IMP*Z2(MP)
+             Z3(I)=Z3(I)-E1IMP*Z3(MP)
+          END DO
+       END DO
+       CALL SOLH(N,LDE1,E1,1,Z1,IP1)
+       CALL SOLHC(N,LDE1,E2R,E2I,1,Z2,Z3,IP2)
+       DO MM=1,N-2
+          MP=N-MM
+          MP1=MP-1
+          DO I=MP+1,N
+             E1IMP=FJAC(I,MP1)
+             Z1(I)=Z1(I)+E1IMP*Z1(MP)
+             Z2(I)=Z2(I)+E1IMP*Z2(MP)
+             Z3(I)=Z3(I)+E1IMP*Z3(MP)
+          END DO
+          I=IPHES(MP)
+          IF (I.EQ.MP) GOTO 750
+          ZSAFE=Z1(MP)
+          Z1(MP)=Z1(I)
+          Z1(I)=ZSAFE
+          ZSAFE=Z2(MP)
+          Z2(MP)=Z2(I)
+          Z2(I)=ZSAFE
+          ZSAFE=Z3(MP)
+          Z3(MP)=Z3(I)
+          Z3(I)=ZSAFE
+ 750      CONTINUE
+      END DO
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  55  CONTINUE
+      RETURN
+      END
+C
+C     END OF SUBROUTINE SLVRAD
+C
+C ***********************************************************
+C
+      SUBROUTINE ESTRAD(N,FJAC,LDJAC,MLJAC,MUJAC,FMAS,LDMAS,MLMAS,MUMAS,
+     &          H,DD1,DD2,DD3,FCN,NFCN,Y0,Y,IJOB,X,M1,M2,NM1,
+     &          E1,LDE1,Z1,Z2,Z3,CONT,F1,F2,IP1,IPHES,SCAL,ERR,
+     &          FIRST,REJECT,FAC1,RPAR,IPAR)
+      IMPLICIT KPP_REAL (A-H,O-Z)
+      DIMENSION FJAC(LDJAC,N),FMAS(LDMAS,NM1),E1(LDE1,NM1),IP1(NM1),
+     &     SCAL(N),IPHES(N),Z1(N),Z2(N),Z3(N),F1(N),F2(N),Y0(N),Y(N)
+      DIMENSION CONT(N),RPAR(1),IPAR(1)
+      LOGICAL FIRST,REJECT
+      COMMON/LINAL/MLE,MUE,MBJAC,MBB,MDIAG,MDIFF,MBDIAG
+      EXTERNAL FCN
+      HEE1=DD1/H
+      HEE2=DD2/H
+      HEE3=DD3/H
+      GOTO (1,2,3,4,5,6,7,55,55,55,11,12,13,14,15), IJOB
+C
+   1  CONTINUE
+C ------  B=IDENTITY, JACOBIAN A FULL MATRIX
+      DO  I=1,N
+         F2(I)=HEE1*Z1(I)+HEE2*Z2(I)+HEE3*Z3(I)
+         CONT(I)=F2(I)+Y0(I)
+      END DO
+      CALL SOL (N,LDE1,E1,CONT,IP1)
+      GOTO 77
+C
+  11  CONTINUE
+C ------  B=IDENTITY, JACOBIAN A FULL MATRIX, SECOND ORDER
+      DO I=1,N
+         F2(I)=HEE1*Z1(I)+HEE2*Z2(I)+HEE3*Z3(I)
+         CONT(I)=F2(I)+Y0(I)
+      END DO
+  48  MM=M1/M2
+      DO J=1,M2
+         SUM1=0.D0
+         DO K=MM-1,0,-1
+            SUM1=(CONT(J+K*M2)+SUM1)/FAC1
+            DO I=1,NM1
+               IM1=I+M1
+               CONT(IM1)=CONT(IM1)+FJAC(I,J+K*M2)*SUM1
+            END DO
+         END DO
+      END DO
+      CALL SOL (NM1,LDE1,E1,CONT(M1+1),IP1)
+      DO I=M1,1,-1
+         CONT(I)=(CONT(I)+CONT(M2+I))/FAC1
+      END DO
+      GOTO 77
+C
+   2  CONTINUE
+C ------  B=IDENTITY, JACOBIAN A BANDED MATRIX
+      DO I=1,N
+         F2(I)=HEE1*Z1(I)+HEE2*Z2(I)+HEE3*Z3(I)
+         CONT(I)=F2(I)+Y0(I)
+      END DO
+      CALL SOLB (N,LDE1,E1,MLE,MUE,CONT,IP1)
+      GOTO 77
+C
+  12  CONTINUE
+C ------  B=IDENTITY, JACOBIAN A BANDED MATRIX, SECOND ORDER
+      DO I=1,N
+         F2(I)=HEE1*Z1(I)+HEE2*Z2(I)+HEE3*Z3(I)
+         CONT(I)=F2(I)+Y0(I)
+      END DO
+  45  MM=M1/M2
+      DO J=1,M2
+         SUM1=0.D0
+         DO K=MM-1,0,-1
+            SUM1=(CONT(J+K*M2)+SUM1)/FAC1
+            DO I=MAX(1,J-MUJAC),MIN(NM1,J+MLJAC)
+               IM1=I+M1
+               CONT(IM1)=CONT(IM1)+FJAC(I+MUJAC+1-J,J+K*M2)*SUM1
+            END DO
+         END DO
+      END DO
+      CALL SOLB (NM1,LDE1,E1,MLE,MUE,CONT(M1+1),IP1)
+      DO I=M1,1,-1
+         CONT(I)=(CONT(I)+CONT(M2+I))/FAC1
+      END DO
+      GOTO 77
+C
+   3  CONTINUE
+C ------  B IS A BANDED MATRIX, JACOBIAN A FULL MATRIX
+      DO I=1,N
+         F1(I)=HEE1*Z1(I)+HEE2*Z2(I)+HEE3*Z3(I)
+      END DO
+      DO I=1,N
+         SUM=0.D0
+         DO J=MAX(1,I-MLMAS),MIN(N,I+MUMAS)
+            SUM=SUM+FMAS(I-J+MBDIAG,J)*F1(J)
+         END DO
+         F2(I)=SUM
+         CONT(I)=SUM+Y0(I)
+      END DO
+      CALL SOL (N,LDE1,E1,CONT,IP1)
+      GOTO 77
+C
+  13  CONTINUE
+C ------  B IS A BANDED MATRIX, JACOBIAN A FULL MATRIX, SECOND ORDER
+      DO I=1,M1
+         F2(I)=HEE1*Z1(I)+HEE2*Z2(I)+HEE3*Z3(I)
+         CONT(I)=F2(I)+Y0(I)
+      END DO
+      DO I=M1+1,N
+         F1(I)=HEE1*Z1(I)+HEE2*Z2(I)+HEE3*Z3(I)
+      END DO
+      DO I=1,NM1
+         SUM=0.D0
+         DO J=MAX(1,I-MLMAS),MIN(NM1,I+MUMAS)
+            SUM=SUM+FMAS(I-J+MBDIAG,J)*F1(J+M1)
+         END DO
+         IM1=I+M1
+         F2(IM1)=SUM
+         CONT(IM1)=SUM+Y0(IM1)
+      END DO
+      GOTO 48
+C
+   4  CONTINUE
+C ------  B IS A BANDED MATRIX, JACOBIAN A BANDED MATRIX
+      DO I=1,N
+         F1(I)=HEE1*Z1(I)+HEE2*Z2(I)+HEE3*Z3(I)
+      END DO
+      DO I=1,N
+         SUM=0.D0
+         DO J=MAX(1,I-MLMAS),MIN(N,I+MUMAS)
+            SUM=SUM+FMAS(I-J+MBDIAG,J)*F1(J)
+         END DO
+         F2(I)=SUM
+         CONT(I)=SUM+Y0(I)
+      END DO
+      CALL SOLB (N,LDE1,E1,MLE,MUE,CONT,IP1)
+      GOTO 77
+C
+  14  CONTINUE
+C ------  B IS A BANDED MATRIX, JACOBIAN A BANDED MATRIX, SECOND ORDER
+      DO I=1,M1
+         F2(I)=HEE1*Z1(I)+HEE2*Z2(I)+HEE3*Z3(I)
+         CONT(I)=F2(I)+Y0(I)
+      END DO
+      DO I=M1+1,N
+         F1(I)=HEE1*Z1(I)+HEE2*Z2(I)+HEE3*Z3(I)
+      END DO
+      DO I=1,NM1
+         SUM=0.D0
+         DO J=MAX(1,I-MLMAS),MIN(NM1,I+MUMAS)
+            SUM=SUM+FMAS(I-J+MBDIAG,J)*F1(J+M1)
+         END DO
+         IM1=I+M1
+         F2(IM1)=SUM
+         CONT(IM1)=SUM+Y0(IM1)
+      END DO
+      GOTO 45
+C
+   5  CONTINUE
+C ------  B IS A FULL MATRIX, JACOBIAN A FULL MATRIX
+      DO I=1,N
+         F1(I)=HEE1*Z1(I)+HEE2*Z2(I)+HEE3*Z3(I)
+      END DO
+      DO I=1,N
+         SUM=0.D0
+         DO J=1,N
+            SUM=SUM+FMAS(I,J)*F1(J)
+         END DO
+         F2(I)=SUM
+         CONT(I)=SUM+Y0(I)
+      END DO
+      CALL SOL (N,LDE1,E1,CONT,IP1)
+      GOTO 77
+C
+  15  CONTINUE
+C ------  B IS A BANDED MATRIX, JACOBIAN A FULL MATRIX, SECOND ORDER
+      DO I=1,M1
+         F2(I)=HEE1*Z1(I)+HEE2*Z2(I)+HEE3*Z3(I)
+         CONT(I)=F2(I)+Y0(I)
+      END DO
+      DO I=M1+1,N
+         F1(I)=HEE1*Z1(I)+HEE2*Z2(I)+HEE3*Z3(I)
+      END DO
+      DO I=1,NM1
+         SUM=0.D0
+         DO J=1,NM1
+            SUM=SUM+FMAS(I,J)*F1(J+M1)
+         END DO
+         IM1=I+M1
+         F2(IM1)=SUM
+         CONT(IM1)=SUM+Y0(IM1)
+      END DO
+      GOTO 48
+C
+   6  CONTINUE
+C ------  B IS A FULL MATRIX, JACOBIAN A BANDED MATRIX
+C ------  THIS OPTION IS NOT PROVIDED
+      RETURN
+C
+   7  CONTINUE
+C ------  B=IDENTITY, JACOBIAN A FULL MATRIX, HESSENBERG-OPTION
+      DO I=1,N
+         F2(I)=HEE1*Z1(I)+HEE2*Z2(I)+HEE3*Z3(I)
+         CONT(I)=F2(I)+Y0(I)
+      END DO
+      DO MM=N-2,1,-1
+         MP=N-MM
+         I=IPHES(MP)
+         IF (I.EQ.MP) GOTO 310
+         ZSAFE=CONT(MP)
+         CONT(MP)=CONT(I)
+         CONT(I)=ZSAFE
+ 310     CONTINUE
+         DO I=MP+1,N
+            CONT(I)=CONT(I)-FJAC(I,MP-1)*CONT(MP)
+         END DO
+      END DO
+      CALL SOLH(N,LDE1,E1,1,CONT,IP1)
+      DO MM=1,N-2
+         MP=N-MM
+         DO I=MP+1,N
+            CONT(I)=CONT(I)+FJAC(I,MP-1)*CONT(MP)
+         END DO
+         I=IPHES(MP)
+         IF (I.EQ.MP) GOTO 440
+         ZSAFE=CONT(MP)
+         CONT(MP)=CONT(I)
+         CONT(I)=ZSAFE
+ 440     CONTINUE
+      END DO
+C
+C --------------------------------------
+C
+  77  CONTINUE
+      ERR=0.D0
+      DO  I=1,N
+         ERR=ERR+(CONT(I)/SCAL(I))**2
+      END DO
+      ERR=MAX(SQRT(ERR/N),1.D-10)
+C
+      IF (ERR.LT.1.D0) RETURN
+      IF (FIRST.OR.REJECT) THEN
+          DO I=1,N
+             CONT(I)=Y(I)+CONT(I)
+          END DO
+          CALL FCN(N,X,CONT,F1,RPAR,IPAR)
+          NFCN=NFCN+1
+          DO I=1,N
+             CONT(I)=F1(I)+F2(I)
+          END DO
+          GOTO (31,32,31,32,31,32,33,55,55,55,41,42,41,42,41), IJOB
+C ------ FULL MATRIX OPTION
+  31      CONTINUE
+          CALL SOL(N,LDE1,E1,CONT,IP1)
+          GOTO 88
+C ------ FULL MATRIX OPTION, SECOND ORDER
+ 41      CONTINUE
+         DO J=1,M2
+            SUM1=0.D0
+            DO K=MM-1,0,-1
+               SUM1=(CONT(J+K*M2)+SUM1)/FAC1
+               DO I=1,NM1
+                  IM1=I+M1
+                  CONT(IM1)=CONT(IM1)+FJAC(I,J+K*M2)*SUM1
+               END DO
+            END DO
+         END DO
+         CALL SOL(NM1,LDE1,E1,CONT(M1+1),IP1)
+         DO I=M1,1,-1
+            CONT(I)=(CONT(I)+CONT(M2+I))/FAC1
+         END DO
+         GOTO 88
+C ------ BANDED MATRIX OPTION
+ 32      CONTINUE
+         CALL SOLB (N,LDE1,E1,MLE,MUE,CONT,IP1)
+         GOTO 88
+C ------ BANDED MATRIX OPTION, SECOND ORDER
+ 42      CONTINUE
+         DO J=1,M2
+            SUM1=0.D0
+            DO K=MM-1,0,-1
+               SUM1=(CONT(J+K*M2)+SUM1)/FAC1
+               DO I=MAX(1,J-MUJAC),MIN(NM1,J+MLJAC)
+                  IM1=I+M1
+                  CONT(IM1)=CONT(IM1)+FJAC(I+MUJAC+1-J,J+K*M2)*SUM1
+               END DO
+            END DO
+         END DO
+         CALL SOLB (NM1,LDE1,E1,MLE,MUE,CONT(M1+1),IP1)
+         DO I=M1,1,-1
+            CONT(I)=(CONT(I)+CONT(M2+I))/FAC1
+         END DO
+          GOTO 88
+C ------ HESSENBERG MATRIX OPTION
+  33      CONTINUE
+          DO MM=N-2,1,-1
+             MP=N-MM
+             I=IPHES(MP)
+             IF (I.EQ.MP) GOTO 510
+             ZSAFE=CONT(MP)
+             CONT(MP)=CONT(I)
+             CONT(I)=ZSAFE
+ 510         CONTINUE
+             DO I=MP+1,N
+                CONT(I)=CONT(I)-FJAC(I,MP-1)*CONT(MP)
+             END DO
+          END DO
+          CALL SOLH(N,LDE1,E1,1,CONT,IP1)
+          DO MM=1,N-2
+             MP=N-MM
+             DO I=MP+1,N
+                CONT(I)=CONT(I)+FJAC(I,MP-1)*CONT(MP)
+             END DO
+             I=IPHES(MP)
+             IF (I.EQ.MP) GOTO 640
+             ZSAFE=CONT(MP)
+             CONT(MP)=CONT(I)
+             CONT(I)=ZSAFE
+ 640         CONTINUE
+          END DO
+C -----------------------------------
+   88     CONTINUE
+          ERR=0.D0
+          DO I=1,N
+             ERR=ERR+(CONT(I)/SCAL(I))**2
+          END DO
+          ERR=MAX(SQRT(ERR/N),1.D-10)
+       END IF
+       RETURN
+C -----------------------------------------------------------
+  55   CONTINUE
+       RETURN
+       END
+C
+C     END OF SUBROUTINE ESTRAD
+C
+C ***********************************************************
+C
+      SUBROUTINE ESTRAV(N,FJAC,LDJAC,MLJAC,MUJAC,FMAS,LDMAS,MLMAS,MUMAS,
+     &          H,DD,FCN,NFCN,Y0,Y,IJOB,X,M1,M2,NM1,NS,NNS,
+     &          E1,LDE1,ZZ,CONT,FF,IP1,IPHES,SCAL,ERR,
+     &          FIRST,REJECT,FAC1,RPAR,IPAR)
+      IMPLICIT KPP_REAL (A-H,O-Z)
+      DIMENSION FJAC(LDJAC,N),FMAS(LDMAS,NM1),E1(LDE1,NM1),IP1(NM1),
+     &     SCAL(N),IPHES(N),ZZ(NNS),FF(NNS),Y0(N),Y(N)
+      DIMENSION DD(NS),CONT(N),RPAR(1),IPAR(1)
+      LOGICAL FIRST,REJECT
+      COMMON/LINAL/MLE,MUE,MBJAC,MBB,MDIAG,MDIFF,MBDIAG
+      EXTERNAL FCN
+
+      GOTO (1,2,3,4,5,6,7,55,55,55,11,12,13,14,15), IJOB
+C
+   1  CONTINUE
+C ------  B=IDENTITY, JACOBIAN A FULL MATRIX
+      DO  I=1,N
+         SUM=0.D0
+         DO K=1,NS
+            SUM=SUM+DD(K)*ZZ(I+(K-1)*N)
+         END DO
+         FF(I+N)=SUM/H
+         CONT(I)=FF(I+N)+Y0(I)
+      END DO
+      CALL SOL (N,LDE1,E1,CONT,IP1)
+      GOTO 77
+C
+  11  CONTINUE
+C ------  B=IDENTITY, JACOBIAN A FULL MATRIX, SECOND ORDER
+      DO  I=1,N
+         SUM=0.D0
+         DO K=1,NS
+            SUM=SUM+DD(K)*ZZ(I+(K-1)*N)
+         END DO
+         FF(I+N)=SUM/H
+         CONT(I)=FF(I+N)+Y0(I)
+      END DO
+  48  MM=M1/M2
+      DO J=1,M2
+         SUM1=0.D0
+         DO K=MM-1,0,-1
+            SUM1=(CONT(J+K*M2)+SUM1)/FAC1
+            DO I=1,NM1
+               IM1=I+M1
+               CONT(IM1)=CONT(IM1)+FJAC(I,J+K*M2)*SUM1
+            END DO
+         END DO
+      END DO
+      CALL SOL (NM1,LDE1,E1,CONT(M1+1),IP1)
+      DO I=M1,1,-1
+         CONT(I)=(CONT(I)+CONT(M2+I))/FAC1
+      END DO
+      GOTO 77
+C
+   2  CONTINUE
+C ------  B=IDENTITY, JACOBIAN A BANDED MATRIX
+      DO  I=1,N
+         SUM=0.D0
+         DO K=1,NS
+            SUM=SUM+DD(K)*ZZ(I+(K-1)*N)
+         END DO
+         FF(I+N)=SUM/H
+         CONT(I)=FF(I+N)+Y0(I)
+      END DO
+      CALL SOLB (N,LDE1,E1,MLE,MUE,CONT,IP1)
+      GOTO 77
+C
+  12  CONTINUE
+C ------  B=IDENTITY, JACOBIAN A BANDED MATRIX, SECOND ORDER
+      DO  I=1,N
+         SUM=0.D0
+         DO K=1,NS
+            SUM=SUM+DD(K)*ZZ(I+(K-1)*N)
+         END DO
+         FF(I+N)=SUM/H
+         CONT(I)=FF(I+N)+Y0(I)
+      END DO
+  45  MM=M1/M2
+      DO J=1,M2
+         SUM1=0.D0
+         DO K=MM-1,0,-1
+            SUM1=(CONT(J+K*M2)+SUM1)/FAC1
+            DO I=MAX(1,J-MUJAC),MIN(NM1,J+MLJAC)
+               IM1=I+M1
+               CONT(IM1)=CONT(IM1)+FJAC(I+MUJAC+1-J,J+K*M2)*SUM1
+            END DO
+         END DO
+      END DO
+      CALL SOLB (NM1,LDE1,E1,MLE,MUE,CONT(M1+1),IP1)
+      DO I=M1,1,-1
+         CONT(I)=(CONT(I)+CONT(M2+I))/FAC1
+      END DO
+      GOTO 77
+C
+   3  CONTINUE
+C ------  B IS A BANDED MATRIX, JACOBIAN A FULL MATRIX
+      DO  I=1,N
+         SUM=0.D0
+         DO K=1,NS
+            SUM=SUM+DD(K)*ZZ(I+(K-1)*N)
+         END DO
+         FF(I)=SUM/H
+      END DO
+      DO I=1,N
+         SUM=0.D0
+         DO J=MAX(1,I-MLMAS),MIN(N,I+MUMAS)
+            SUM=SUM+FMAS(I-J+MBDIAG,J)*FF(J)
+         END DO
+         FF(I+N)=SUM
+         CONT(I)=SUM+Y0(I)
+      END DO
+      CALL SOL (N,LDE1,E1,CONT,IP1)
+      GOTO 77
+C
+  13  CONTINUE
+C ------  B IS A BANDED MATRIX, JACOBIAN A FULL MATRIX, SECOND ORDER
+      DO  I=1,M1
+         SUM=0.D0
+         DO K=1,NS
+            SUM=SUM+DD(K)*ZZ(I+(K-1)*N)
+         END DO
+         FF(I+N)=SUM/H
+         CONT(I)=FF(I+N)+Y0(I)
+      END DO
+      DO I=M1+1,N
+         SUM=0.D0
+         DO K=1,NS
+            SUM=SUM+DD(K)*ZZ(I+(K-1)*N)
+         END DO
+         FF(I)=SUM/H
+      END DO
+      DO I=1,NM1
+         SUM=0.D0
+         DO J=MAX(1,I-MLMAS),MIN(NM1,I+MUMAS)
+            SUM=SUM+FMAS(I-J+MBDIAG,J)*FF(J+M1)
+         END DO
+         IM1=I+M1
+         FF(IM1+N)=SUM
+         CONT(IM1)=SUM+Y0(IM1)
+      END DO
+      GOTO 48
+C
+   4  CONTINUE
+C ------  B IS A BANDED MATRIX, JACOBIAN A BANDED MATRIX
+      DO  I=1,N
+         SUM=0.D0
+         DO K=1,NS
+            SUM=SUM+DD(K)*ZZ(I+(K-1)*N)
+         END DO
+         FF(I)=SUM/H
+      END DO
+      DO I=1,N
+         SUM=0.D0
+         DO J=MAX(1,I-MLMAS),MIN(N,I+MUMAS)
+            SUM=SUM+FMAS(I-J+MBDIAG,J)*FF(J)
+         END DO
+         FF(I+N)=SUM
+         CONT(I)=SUM+Y0(I)
+      END DO
+      CALL SOLB (N,LDE1,E1,MLE,MUE,CONT,IP1)
+      GOTO 77
+C
+  14  CONTINUE
+C ------  B IS A BANDED MATRIX, JACOBIAN A BANDED MATRIX, SECOND ORDER
+      DO  I=1,M1
+         SUM=0.D0
+         DO K=1,NS
+            SUM=SUM+DD(K)*ZZ(I+(K-1)*N)
+         END DO
+         FF(I+N)=SUM/H
+         CONT(I)=FF(I+N)+Y0(I)
+      END DO
+      DO I=M1+1,N
+         SUM=0.D0
+         DO K=1,NS
+            SUM=SUM+DD(K)*ZZ(I+(K-1)*N)
+         END DO
+         FF(I)=SUM/H
+      END DO
+      DO I=1,NM1
+         SUM=0.D0
+         DO J=MAX(1,I-MLMAS),MIN(NM1,I+MUMAS)
+            SUM=SUM+FMAS(I-J+MBDIAG,J)*FF(J+M1)
+         END DO
+         IM1=I+M1
+         FF(IM1+N)=SUM
+         CONT(IM1)=SUM+Y0(IM1)
+      END DO
+      GOTO 45
+C
+   5  CONTINUE
+C ------  B IS A FULL MATRIX, JACOBIAN A FULL MATRIX
+      DO I=1,N
+         SUM=0.D0
+         DO K=1,NS
+            SUM=SUM+DD(K)*ZZ(I+(K-1)*N)
+         END DO
+         FF(I)=SUM/H
+      END DO
+      DO I=1,N
+         SUM=0.D0
+         DO J=1,N
+            SUM=SUM+FMAS(I,J)*FF(J)
+         END DO
+         FF(I+N)=SUM
+         CONT(I)=SUM+Y0(I)
+      END DO
+      CALL SOL (N,LDE1,E1,CONT,IP1)
+      GOTO 77
+C
+  15  CONTINUE
+C ------  B IS A BANDED MATRIX, JACOBIAN A FULL MATRIX, SECOND ORDER
+      DO  I=1,M1
+         SUM=0.D0
+         DO K=1,NS
+            SUM=SUM+DD(K)*ZZ(I+(K-1)*N)
+         END DO
+         FF(I+N)=SUM/H
+         CONT(I)=FF(I+N)+Y0(I)
+      END DO
+      DO I=M1+1,N
+         SUM=0.D0
+         DO K=1,NS
+            SUM=SUM+DD(K)*ZZ(I+(K-1)*N)
+         END DO
+         FF(I)=SUM/H
+      END DO
+      DO I=1,NM1
+         SUM=0.D0
+         DO J=1,NM1
+            SUM=SUM+FMAS(I,J)*FF(J+M1)
+         END DO
+         IM1=I+M1
+         FF(IM1+N)=SUM
+         CONT(IM1)=SUM+Y0(IM1)
+      END DO
+      GOTO 48
+C
+   6  CONTINUE
+C ------  B IS A FULL MATRIX, JACOBIAN A BANDED MATRIX
+C ------  THIS OPTION IS NOT PROVIDED
+      RETURN
+C
+   7  CONTINUE
+C ------  B=IDENTITY, JACOBIAN A FULL MATRIX, HESSENBERG-OPTION
+      DO  I=1,N
+         SUM=0.D0
+         DO K=1,NS
+            SUM=SUM+DD(K)*ZZ(I+(K-1)*N)
+         END DO
+         FF(I+N)=SUM/H
+         CONT(I)=FF(I+N)+Y0(I)
+      END DO
+      DO MM=N-2,1,-1
+         MP=N-MM
+         I=IPHES(MP)
+         IF (I.EQ.MP) GOTO 310
+         ZSAFE=CONT(MP)
+         CONT(MP)=CONT(I)
+         CONT(I)=ZSAFE
+ 310     CONTINUE
+         DO I=MP+1,N
+            CONT(I)=CONT(I)-FJAC(I,MP-1)*CONT(MP)
+         END DO
+      END DO
+      CALL SOLH(N,LDE1,E1,1,CONT,IP1)
+      DO MM=1,N-2
+         MP=N-MM
+         DO I=MP+1,N
+            CONT(I)=CONT(I)+FJAC(I,MP-1)*CONT(MP)
+         END DO
+         I=IPHES(MP)
+         IF (I.EQ.MP) GOTO 440
+         ZSAFE=CONT(MP)
+         CONT(MP)=CONT(I)
+         CONT(I)=ZSAFE
+ 440     CONTINUE
+      END DO
+C
+C --------------------------------------
+C
+  77  CONTINUE
+      ERR=0.D0
+      DO  I=1,N
+         ERR=ERR+(CONT(I)/SCAL(I))**2
+      END DO
+      ERR=MAX(SQRT(ERR/N),1.D-10)
+C
+      IF (ERR.LT.1.D0) RETURN
+      IF (FIRST.OR.REJECT) THEN
+          DO I=1,N
+             CONT(I)=Y(I)+CONT(I)
+          END DO
+          CALL FCN(N,X,CONT,FF,RPAR,IPAR)
+          NFCN=NFCN+1
+          DO I=1,N
+             CONT(I)=FF(I)+FF(I+N)
+          END DO
+          GOTO (31,32,31,32,31,32,33,55,55,55,41,42,41,42,41), IJOB
+C ------ FULL MATRIX OPTION
+ 31      CONTINUE
+         CALL SOL (N,LDE1,E1,CONT,IP1)
+          GOTO 88
+C ------ FULL MATRIX OPTION, SECOND ORDER
+ 41      CONTINUE
+         DO J=1,M2
+            SUM1=0.D0
+            DO K=MM-1,0,-1
+               SUM1=(CONT(J+K*M2)+SUM1)/FAC1
+               DO I=1,NM1
+                  IM1=I+M1
+                  CONT(IM1)=CONT(IM1)+FJAC(I,J+K*M2)*SUM1
+               END DO
+            END DO
+         END DO
+         CALL SOL (NM1,LDE1,E1,CONT(M1+1),IP1)
+         DO I=M1,1,-1
+            CONT(I)=(CONT(I)+CONT(M2+I))/FAC1
+         END DO
+          GOTO 88
+C ------ BANDED MATRIX OPTION
+ 32      CONTINUE
+         CALL SOLB (N,LDE1,E1,MLE,MUE,CONT,IP1)
+          GOTO 88
+C ------ BANDED MATRIX OPTION, SECOND ORDER
+ 42      CONTINUE
+         DO J=1,M2
+            SUM1=0.D0
+            DO K=MM-1,0,-1
+               SUM1=(CONT(J+K*M2)+SUM1)/FAC1
+               DO I=MAX(1,J-MUJAC),MIN(NM1,J+MLJAC)
+                  IM1=I+M1
+                  CONT(IM1)=CONT(IM1)+FJAC(I+MUJAC+1-J,J+K*M2)*SUM1
+               END DO
+            END DO
+         END DO
+         CALL SOLB (NM1,LDE1,E1,MLE,MUE,CONT(M1+1),IP1)
+         DO I=M1,1,-1
+            CONT(I)=(CONT(I)+CONT(M2+I))/FAC1
+         END DO
+          GOTO 88
+C ------ HESSENBERG MATRIX OPTION
+  33      CONTINUE
+          DO MM=N-2,1,-1
+             MP=N-MM
+             I=IPHES(MP)
+             IF (I.EQ.MP) GOTO 510
+             ZSAFE=CONT(MP)
+             CONT(MP)=CONT(I)
+             CONT(I)=ZSAFE
+ 510         CONTINUE
+             DO I=MP+1,N
+                CONT(I)=CONT(I)-FJAC(I,MP-1)*CONT(MP)
+             END DO
+          END DO
+          CALL SOLH(N,LDE1,E1,1,CONT,IP1)
+          DO MM=1,N-2
+             MP=N-MM
+             DO I=MP+1,N
+                CONT(I)=CONT(I)+FJAC(I,MP-1)*CONT(MP)
+             END DO
+             I=IPHES(MP)
+             IF (I.EQ.MP) GOTO 640
+             ZSAFE=CONT(MP)
+             CONT(MP)=CONT(I)
+             CONT(I)=ZSAFE
+ 640         CONTINUE
+          END DO
+C -----------------------------------
+  88      CONTINUE
+          ERR=0.D0
+          DO I=1,N
+             ERR=ERR+(CONT(I)/SCAL(I))**2
+          END DO
+          ERR=MAX(SQRT(ERR/N),1.D-10)
+       END IF
+       RETURN
+C
+C -----------------------------------------------------------
+C
+  55  CONTINUE
+      RETURN
+       END
+C
+C     END OF SUBROUTINE ESTRAV
+C
+C ***********************************************************
+C
+      SUBROUTINE SLVROD(N,FJAC,LDJAC,MLJAC,MUJAC,FMAS,LDMAS,MLMAS,MUMAS,
+     &          M1,M2,NM1,FAC1,E,LDE,IP,DY,AK,FX,YNEW,HD,IJOB,STAGE1)
+      IMPLICIT KPP_REAL (A-H,O-Z)
+      DIMENSION FJAC(LDJAC,N),FMAS(LDMAS,NM1),E(LDE,NM1),
+     &          IP(NM1),DY(N),AK(N),FX(N),YNEW(N)
+      LOGICAL STAGE1
+      COMMON/LINAL/MLE,MUE,MBJAC,MBB,MDIAG,MDIFF,MBDIAG
+C
+      IF (HD.EQ.0.D0) THEN
+         DO  I=1,N
+           AK(I)=DY(I)
+         END DO
+      ELSE
+         DO I=1,N
+            AK(I)=DY(I)+HD*FX(I)
+         END DO
+      END IF
+C
+      GOTO (1,2,3,4,5,6,55,55,55,55,11,12,13,13,15), IJOB
+C
+C -----------------------------------------------------------
+C
+   1  CONTINUE
+C ---  B=IDENTITY, JACOBIAN A FULL MATRIX
+      IF (STAGE1) THEN
+         DO I=1,N
+            AK(I)=AK(I)+YNEW(I)
+         END DO
+      END IF
+      CALL SOL (N,LDE,E,AK,IP)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  11  CONTINUE
+C ---  B=IDENTITY, JACOBIAN A FULL MATRIX, SECOND ORDER
+      IF (STAGE1) THEN
+         DO I=1,N
+            AK(I)=AK(I)+YNEW(I)
+         END DO
+      END IF
+ 48   MM=M1/M2
+      DO J=1,M2
+         SUM=0.D0
+         DO K=MM-1,0,-1
+            JKM=J+K*M2
+            SUM=(AK(JKM)+SUM)/FAC1
+            DO I=1,NM1
+               IM1=I+M1
+               AK(IM1)=AK(IM1)+FJAC(I,JKM)*SUM
+            END DO
+         END DO
+      END DO
+      CALL SOL (NM1,LDE,E,AK(M1+1),IP)
+      DO I=M1,1,-1
+         AK(I)=(AK(I)+AK(M2+I))/FAC1
+      END DO
+      RETURN
+C
+C -----------------------------------------------------------
+C
+   2  CONTINUE
+C ---  B=IDENTITY, JACOBIAN A BANDED MATRIX
+      IF (STAGE1) THEN
+         DO I=1,N
+            AK(I)=AK(I)+YNEW(I)
+         END DO
+      END IF
+      CALL SOLB (N,LDE,E,MLE,MUE,AK,IP)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  12  CONTINUE
+C ---  B=IDENTITY, JACOBIAN A BANDED MATRIX, SECOND ORDER
+      IF (STAGE1) THEN
+         DO I=1,N
+            AK(I)=AK(I)+YNEW(I)
+         END DO
+      END IF
+  45  MM=M1/M2
+      DO J=1,M2
+         SUM=0.D0
+         DO K=MM-1,0,-1
+            JKM=J+K*M2
+            SUM=(AK(JKM)+SUM)/FAC1
+            DO I=MAX(1,J-MUJAC),MIN(NM1,J+MLJAC)
+               IM1=I+M1
+               AK(IM1)=AK(IM1)+FJAC(I+MUJAC+1-J,JKM)*SUM
+            END DO
+         END DO
+      END DO
+      CALL SOLB (NM1,LDE,E,MLE,MUE,AK(M1+1),IP)
+      DO I=M1,1,-1
+         AK(I)=(AK(I)+AK(M2+I))/FAC1
+      END DO
+      RETURN
+C
+C -----------------------------------------------------------
+C
+   3  CONTINUE
+C ---  B IS A BANDED MATRIX, JACOBIAN A FULL MATRIX
+      IF (STAGE1) THEN
+      DO  I=1,N
+         SUM=0.D0
+         DO  J=MAX(1,I-MLMAS),MIN(N,I+MUMAS)
+            SUM=SUM+FMAS(I-J+MBDIAG,J)*YNEW(J)
+         END DO
+         AK(I)=AK(I)+SUM
+      END DO
+      END IF
+      CALL SOL (N,LDE,E,AK,IP)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  13  CONTINUE
+C ---  B IS A BANDED MATRIX, JACOBIAN A FULL MATRIX, SECOND ORDER
+      IF (STAGE1) THEN
+         DO I=1,M1
+            AK(I)=AK(I)+YNEW(I)
+         END DO
+         DO I=1,NM1
+            SUM=0.D0
+            DO J=MAX(1,I-MLMAS),MIN(NM1,I+MUMAS)
+                SUM=SUM+FMAS(I-J+MBDIAG,J)*YNEW(J+M1)
+            END DO
+            IM1=I+M1
+            AK(IM1)=AK(IM1)+SUM
+         END DO
+      END IF
+      IF (IJOB.EQ.14) GOTO 45
+      GOTO 48
+C
+C -----------------------------------------------------------
+C
+   4  CONTINUE
+C ---  B IS A BANDED MATRIX, JACOBIAN A BANDED MATRIX
+      IF (STAGE1) THEN
+      DO I=1,N
+         SUM=0.D0
+         DO J=MAX(1,I-MLMAS),MIN(N,I+MUMAS)
+            SUM=SUM+FMAS(I-J+MBDIAG,J)*YNEW(J)
+         END DO
+         AK(I)=AK(I)+SUM
+      END DO
+      END IF
+      CALL SOLB (N,LDE,E,MLE,MUE,AK,IP)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+   5  CONTINUE
+C ---  B IS A FULL MATRIX, JACOBIAN A FULL MATRIX
+      IF (STAGE1) THEN
+      DO I=1,N
+         SUM=0.D0
+         DO J=1,N
+            SUM=SUM+FMAS(I,J)*YNEW(J)
+         END DO
+         AK(I)=AK(I)+SUM
+      END DO
+      END IF
+      CALL SOL (N,LDE,E,AK,IP)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  15  CONTINUE
+C ---  B IS A FULL MATRIX, JACOBIAN A FULL MATRIX, SECOND ORDER
+      IF (STAGE1) THEN
+         DO I=1,M1
+            AK(I)=AK(I)+YNEW(I)
+         END DO
+         DO I=1,NM1
+            SUM=0.D0
+            DO J=1,NM1
+               SUM=SUM+FMAS(I,J)*YNEW(J+M1)
+            END DO
+            IM1=I+M1
+            AK(IM1)=AK(IM1)+SUM
+         END DO
+      END IF
+      GOTO 48
+C
+C -----------------------------------------------------------
+C
+   6  CONTINUE
+C ---  B IS A FULL MATRIX, JACOBIAN A BANDED MATRIX
+C ---  THIS OPTION IS NOT PROVIDED
+      IF (STAGE1) THEN
+      DO 624 I=1,N
+         SUM=0.D0
+         DO 623 J=1,N
+  623       SUM=SUM+FMAS(I,J)*YNEW(J)
+  624    AK(I)=AK(I)+SUM
+      CALL SOLB (N,LDE,E,MLE,MUE,AK,IP)
+      END IF
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  55  CONTINUE
+      RETURN
+      END
+C
+C     END OF SUBROUTINE SLVROD
+C
+C
+C ***********************************************************
+C
+      SUBROUTINE SLVSEU(N,FJAC,LDJAC,MLJAC,MUJAC,FMAS,LDMAS,MLMAS,MUMAS,
+     &          M1,M2,NM1,FAC1,E,LDE,IP,IPHES,DEL,IJOB)
+      IMPLICIT KPP_REAL (A-H,O-Z)
+      DIMENSION FJAC(LDJAC,N),FMAS(LDMAS,NM1),E(LDE,NM1),DEL(N)
+      DIMENSION IP(NM1),IPHES(N)
+      COMMON/LINAL/MLE,MUE,MBJAC,MBB,MDIAG,MDIFF,MBDIAG
+C
+      GOTO (1,2,1,2,1,55,7,55,55,55,11,12,11,12,11), IJOB
+C
+C -----------------------------------------------------------
+C
+   1  CONTINUE
+C ---  B=IDENTITY, JACOBIAN A FULL MATRIX
+      CALL SOL (N,LDE,E,DEL,IP)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  11  CONTINUE
+C ---  B=IDENTITY, JACOBIAN A FULL MATRIX, SECOND ORDER
+      MM=M1/M2
+      DO J=1,M2
+         SUM=0.D0
+         DO K=MM-1,0,-1
+            JKM=J+K*M2
+            SUM=(DEL(JKM)+SUM)/FAC1
+            DO I=1,NM1
+               IM1=I+M1
+               DEL(IM1)=DEL(IM1)+FJAC(I,JKM)*SUM
+            END DO
+         END DO
+      END DO
+      CALL SOL (NM1,LDE,E,DEL(M1+1),IP)
+      DO I=M1,1,-1
+         DEL(I)=(DEL(I)+DEL(M2+I))/FAC1
+      END DO
+      RETURN
+C
+C -----------------------------------------------------------
+C
+   2  CONTINUE
+C ---  B=IDENTITY, JACOBIAN A BANDED MATRIX
+      CALL SOLB (N,LDE,E,MLE,MUE,DEL,IP)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  12  CONTINUE
+C ---  B=IDENTITY, JACOBIAN A BANDED MATRIX, SECOND ORDER
+      MM=M1/M2
+      DO J=1,M2
+         SUM=0.D0
+         DO K=MM-1,0,-1
+            JKM=J+K*M2
+            SUM=(DEL(JKM)+SUM)/FAC1
+            DO I=MAX(1,J-MUJAC),MIN(NM1,J+MLJAC)
+               IM1=I+M1
+               DEL(IM1)=DEL(IM1)+FJAC(I+MUJAC+1-J,JKM)*SUM
+            END DO
+         END DO
+      END DO
+      CALL SOLB (NM1,LDE,E,MLE,MUE,DEL(M1+1),IP)
+      DO I=M1,1,-1
+         DEL(I)=(DEL(I)+DEL(M2+I))/FAC1
+      END DO
+      RETURN
+C
+C -----------------------------------------------------------
+C
+   7  CONTINUE
+C ---  HESSENBERG OPTION
+      DO MMM=N-2,1,-1
+         MP=N-MMM
+         MP1=MP-1
+         I=IPHES(MP)
+         IF (I.EQ.MP) GOTO 110
+         ZSAFE=DEL(MP)
+         DEL(MP)=DEL(I)
+         DEL(I)=ZSAFE
+ 110     CONTINUE
+         DO I=MP+1,N
+            DEL(I)=DEL(I)-FJAC(I,MP1)*DEL(MP)
+         END DO
+      END DO
+      CALL SOLH(N,LDE,E,1,DEL,IP)
+      DO MMM=1,N-2
+         MP=N-MMM
+         MP1=MP-1
+         DO I=MP+1,N
+            DEL(I)=DEL(I)+FJAC(I,MP1)*DEL(MP)
+         END DO
+         I=IPHES(MP)
+         IF (I.EQ.MP) GOTO 240
+         ZSAFE=DEL(MP)
+         DEL(MP)=DEL(I)
+         DEL(I)=ZSAFE
+ 240     CONTINUE
+      END DO
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  55  CONTINUE
+      RETURN
+      END
+C
+C     END OF SUBROUTINE SLVSEU
+C
+      SUBROUTINE DEC (N, NDIM, A, IP, IER)
+C VERSION REAL KPP_REAL
+      INTEGER N,NDIM,IP,IER,NM1,K,KP1,M,I,J
+      KPP_REAL A,T
+      DIMENSION A(NDIM,N), IP(N)
+C-----------------------------------------------------------------------
+C  MATRIX TRIANGULARIZATION BY GAUSSIAN ELIMINATION.
+C  INPUT..
+C     N = ORDER OF MATRIX.
+C     NDIM = DECLARED DIMENSION OF ARRAY  A .
+C     A = MATRIX TO BE TRIANGULARIZED.
+C  OUTPUT..
+C     A(I,J), I.LE.J = UPPER TRIANGULAR FACTOR, U .
+C     A(I,J), I.GT.J = MULTIPLIERS = LOWER TRIANGULAR FACTOR, I - L.
+C     IP(K), K.LT.N = INDEX OF K-TH PIVOT ROW.
+C     IP(N) = (-1)**(NUMBER OF INTERCHANGES) OR O .
+C     IER = 0 IF MATRIX A IS NONSINGULAR, OR K IF FOUND TO BE
+C           SINGULAR AT STAGE K.
+C  USE  SOL  TO OBTAIN SOLUTION OF LINEAR SYSTEM.
+C  DETERM(A) = IP(N)*A(1,1)*A(2,2)*...*A(N,N).
+C  IF IP(N)=O, A IS SINGULAR, SOL WILL DIVIDE BY ZERO.
+C
+C  REFERENCE..
+C     C. B. MOLER, ALGORITHM 423, LINEAR EQUATION KppSolveR,
+C     C.A.C.M. 15 (1972), P. 274.
+C-----------------------------------------------------------------------
+      IER = 0
+      IP(N) = 1
+      IF (N .EQ. 1) GO TO 70
+      NM1 = N - 1
+      DO 60 K = 1,NM1
+        KP1 = K + 1
+        M = K
+        DO 10 I = KP1,N
+          IF (DABS(A(I,K)) .GT. DABS(A(M,K))) M = I
+ 10     CONTINUE
+        IP(K) = M
+        T = A(M,K)
+        IF (M .EQ. K) GO TO 20
+        IP(N) = -IP(N)
+        A(M,K) = A(K,K)
+        A(K,K) = T
+ 20     CONTINUE
+        IF (T .EQ. 0.D0) GO TO 80
+        T = 1.D0/T
+        DO 30 I = KP1,N
+ 30       A(I,K) = -A(I,K)*T
+        DO 50 J = KP1,N
+          T = A(M,J)
+          A(M,J) = A(K,J)
+          A(K,J) = T
+          IF (T .EQ. 0.D0) GO TO 45
+          DO 40 I = KP1,N
+ 40         A(I,J) = A(I,J) + A(I,K)*T
+ 45       CONTINUE
+ 50       CONTINUE
+ 60     CONTINUE
+ 70   K = N
+      IF (A(N,N) .EQ. 0.D0) GO TO 80
+      RETURN
+ 80   IER = K
+      IP(N) = 0
+      RETURN
+C----------------------- END OF SUBROUTINE DEC -------------------------
+      END
+C
+C
+      SUBROUTINE SOL (N, NDIM, A, B, IP)
+C VERSION REAL KPP_REAL
+      INTEGER N,NDIM,IP,NM1,K,KP1,M,I,KB,KM1
+      KPP_REAL A,B,T
+      DIMENSION A(NDIM,N), B(N), IP(N)
+C-----------------------------------------------------------------------
+C  SOLUTION OF LINEAR SYSTEM, A*X = B .
+C  INPUT..
+C    N = ORDER OF MATRIX.
+C    NDIM = DECLARED DIMENSION OF ARRAY  A .
+C    A = TRIANGULARIZED MATRIX OBTAINED FROM DEC.
+C    B = RIGHT HAND SIDE VECTOR.
+C    IP = PIVOT VECTOR OBTAINED FROM DEC.
+C  DO NOT USE IF DEC HAS SET IER .NE. 0.
+C  OUTPUT..
+C    B = SOLUTION VECTOR, X .
+C-----------------------------------------------------------------------
+      IF (N .EQ. 1) GO TO 50
+      NM1 = N - 1
+      DO 20 K = 1,NM1
+        KP1 = K + 1
+        M = IP(K)
+        T = B(M)
+        B(M) = B(K)
+        B(K) = T
+        DO 10 I = KP1,N
+ 10       B(I) = B(I) + A(I,K)*T
+ 20     CONTINUE
+      DO 40 KB = 1,NM1
+        KM1 = N - KB
+        K = KM1 + 1
+        B(K) = B(K)/A(K,K)
+        T = -B(K)
+        DO 30 I = 1,KM1
+ 30       B(I) = B(I) + A(I,K)*T
+ 40     CONTINUE
+ 50   B(1) = B(1)/A(1,1)
+      RETURN
+C----------------------- END OF SUBROUTINE SOL -------------------------
+      END
+c
+c
+      SUBROUTINE DECH (N, NDIM, A, LB, IP, IER)
+C VERSION REAL KPP_REAL
+      INTEGER N,NDIM,IP,IER,NM1,K,KP1,M,I,J,LB,NA
+      KPP_REAL A,T
+      DIMENSION A(NDIM,N), IP(N)
+C-----------------------------------------------------------------------
+C  MATRIX TRIANGULARIZATION BY GAUSSIAN ELIMINATION OF A HESSENBERG
+C  MATRIX WITH LOWER BANDWIDTH LB
+C  INPUT..
+C     N = ORDER OF MATRIX A.
+C     NDIM = DECLARED DIMENSION OF ARRAY  A .
+C     A = MATRIX TO BE TRIANGULARIZED.
+C     LB = LOWER BANDWIDTH OF A (DIAGONAL IS NOT COUNTED, LB.GE.1).
+C  OUTPUT..
+C     A(I,J), I.LE.J = UPPER TRIANGULAR FACTOR, U .
+C     A(I,J), I.GT.J = MULTIPLIERS = LOWER TRIANGULAR FACTOR, I - L.
+C     IP(K), K.LT.N = INDEX OF K-TH PIVOT ROW.
+C     IP(N) = (-1)**(NUMBER OF INTERCHANGES) OR O .
+C     IER = 0 IF MATRIX A IS NONSINGULAR, OR K IF FOUND TO BE
+C           SINGULAR AT STAGE K.
+C  USE  SOLH  TO OBTAIN SOLUTION OF LINEAR SYSTEM.
+C  DETERM(A) = IP(N)*A(1,1)*A(2,2)*...*A(N,N).
+C  IF IP(N)=O, A IS SINGULAR, SOL WILL DIVIDE BY ZERO.
+C
+C  REFERENCE..
+C     THIS IS A SLIGHT MODIFICATION OF
+C     C. B. MOLER, ALGORITHM 423, LINEAR EQUATION KppSolveR,
+C     C.A.C.M. 15 (1972), P. 274.
+C-----------------------------------------------------------------------
+      IER = 0
+      IP(N) = 1
+      IF (N .EQ. 1) GO TO 70
+      NM1 = N - 1
+      DO 60 K = 1,NM1
+        KP1 = K + 1
+        M = K
+        NA = MIN0(N,LB+K)
+        DO 10 I = KP1,NA
+          IF (DABS(A(I,K)) .GT. DABS(A(M,K))) M = I
+ 10     CONTINUE
+        IP(K) = M
+        T = A(M,K)
+        IF (M .EQ. K) GO TO 20
+        IP(N) = -IP(N)
+        A(M,K) = A(K,K)
+        A(K,K) = T
+ 20     CONTINUE
+        IF (T .EQ. 0.D0) GO TO 80
+        T = 1.D0/T
+        DO 30 I = KP1,NA
+ 30       A(I,K) = -A(I,K)*T
+        DO 50 J = KP1,N
+          T = A(M,J)
+          A(M,J) = A(K,J)
+          A(K,J) = T
+          IF (T .EQ. 0.D0) GO TO 45
+          DO 40 I = KP1,NA
+ 40         A(I,J) = A(I,J) + A(I,K)*T
+ 45       CONTINUE
+ 50       CONTINUE
+ 60     CONTINUE
+ 70   K = N
+      IF (A(N,N) .EQ. 0.D0) GO TO 80
+      RETURN
+ 80   IER = K
+      IP(N) = 0
+      RETURN
+C----------------------- END OF SUBROUTINE DECH ------------------------
+      END
+C
+C
+      SUBROUTINE SOLH (N, NDIM, A, LB, B, IP)
+C VERSION REAL KPP_REAL
+      INTEGER N,NDIM,IP,NM1,K,KP1,M,I,KB,KM1,LB,NA
+      KPP_REAL A,B,T
+      DIMENSION A(NDIM,N), B(N), IP(N)
+C-----------------------------------------------------------------------
+C  SOLUTION OF LINEAR SYSTEM, A*X = B .
+C  INPUT..
+C    N = ORDER OF MATRIX A.
+C    NDIM = DECLARED DIMENSION OF ARRAY  A .
+C    A = TRIANGULARIZED MATRIX OBTAINED FROM DECH.
+C    LB = LOWER BANDWIDTH OF A.
+C    B = RIGHT HAND SIDE VECTOR.
+C    IP = PIVOT VECTOR OBTAINED FROM DEC.
+C  DO NOT USE IF DECH HAS SET IER .NE. 0.
+C  OUTPUT..
+C    B = SOLUTION VECTOR, X .
+C-----------------------------------------------------------------------
+      IF (N .EQ. 1) GO TO 50
+      NM1 = N - 1
+      DO 20 K = 1,NM1
+        KP1 = K + 1
+        M = IP(K)
+        T = B(M)
+        B(M) = B(K)
+        B(K) = T
+        NA = MIN0(N,LB+K)
+        DO 10 I = KP1,NA
+ 10       B(I) = B(I) + A(I,K)*T
+ 20     CONTINUE
+      DO 40 KB = 1,NM1
+        KM1 = N - KB
+        K = KM1 + 1
+        B(K) = B(K)/A(K,K)
+        T = -B(K)
+        DO 30 I = 1,KM1
+ 30       B(I) = B(I) + A(I,K)*T
+ 40     CONTINUE
+ 50   B(1) = B(1)/A(1,1)
+      RETURN
+C----------------------- END OF SUBROUTINE SOLH ------------------------
+      END
+C
+      SUBROUTINE DECC (N, NDIM, AR, AI, IP, IER)
+C VERSION COMPLEX KPP_REAL
+      IMPLICIT KPP_REAL (A-H,O-Z)
+      INTEGER N,NDIM,IP,IER,NM1,K,KP1,M,I,J
+      DIMENSION AR(NDIM,N), AI(NDIM,N), IP(N)
+C-----------------------------------------------------------------------
+C  MATRIX TRIANGULARIZATION BY GAUSSIAN ELIMINATION
+C  ------ MODIFICATION FOR COMPLEX MATRICES --------
+C  INPUT..
+C     N = ORDER OF MATRIX.
+C     NDIM = DECLARED DIMENSION OF ARRAYS  AR AND AI .
+C     (AR, AI) = MATRIX TO BE TRIANGULARIZED.
+C  OUTPUT..
+C     AR(I,J), I.LE.J = UPPER TRIANGULAR FACTOR, U ; REAL PART.
+C     AI(I,J), I.LE.J = UPPER TRIANGULAR FACTOR, U ; IMAGINARY PART.
+C     AR(I,J), I.GT.J = MULTIPLIERS = LOWER TRIANGULAR FACTOR, I - L.
+C                                                    REAL PART.
+C     AI(I,J), I.GT.J = MULTIPLIERS = LOWER TRIANGULAR FACTOR, I - L.
+C                                                    IMAGINARY PART.
+C     IP(K), K.LT.N = INDEX OF K-TH PIVOT ROW.
+C     IP(N) = (-1)**(NUMBER OF INTERCHANGES) OR O .
+C     IER = 0 IF MATRIX A IS NONSINGULAR, OR K IF FOUND TO BE
+C           SINGULAR AT STAGE K.
+C  USE  SOL  TO OBTAIN SOLUTION OF LINEAR SYSTEM.
+C  IF IP(N)=O, A IS SINGULAR, SOL WILL DIVIDE BY ZERO.
+C
+C  REFERENCE..
+C     C. B. MOLER, ALGORITHM 423, LINEAR EQUATION KppSolveR,
+C     C.A.C.M. 15 (1972), P. 274.
+C-----------------------------------------------------------------------
+      IER = 0
+      IP(N) = 1
+      IF (N .EQ. 1) GO TO 70
+      NM1 = N - 1
+      DO 60 K = 1,NM1
+        KP1 = K + 1
+        M = K
+        DO 10 I = KP1,N
+          IF (DABS(AR(I,K))+DABS(AI(I,K)) .GT.
+     &          DABS(AR(M,K))+DABS(AI(M,K))) M = I
+ 10     CONTINUE
+        IP(K) = M
+        TR = AR(M,K)
+        TI = AI(M,K)
+        IF (M .EQ. K) GO TO 20
+        IP(N) = -IP(N)
+        AR(M,K) = AR(K,K)
+        AI(M,K) = AI(K,K)
+        AR(K,K) = TR
+        AI(K,K) = TI
+ 20     CONTINUE
+        IF (DABS(TR)+DABS(TI) .EQ. 0.D0) GO TO 80
+        DEN=TR*TR+TI*TI
+        TR=TR/DEN
+        TI=-TI/DEN
+        DO 30 I = KP1,N
+          PRODR=AR(I,K)*TR-AI(I,K)*TI
+          PRODI=AI(I,K)*TR+AR(I,K)*TI
+          AR(I,K)=-PRODR
+          AI(I,K)=-PRODI
+ 30       CONTINUE
+        DO 50 J = KP1,N
+          TR = AR(M,J)
+          TI = AI(M,J)
+          AR(M,J) = AR(K,J)
+          AI(M,J) = AI(K,J)
+          AR(K,J) = TR
+          AI(K,J) = TI
+          IF (DABS(TR)+DABS(TI) .EQ. 0.D0) GO TO 48
+          IF (TI .EQ. 0.D0) THEN
+            DO 40 I = KP1,N
+            PRODR=AR(I,K)*TR
+            PRODI=AI(I,K)*TR
+            AR(I,J) = AR(I,J) + PRODR
+            AI(I,J) = AI(I,J) + PRODI
+ 40         CONTINUE
+            GO TO 48
+          END IF
+          IF (TR .EQ. 0.D0) THEN
+            DO 45 I = KP1,N
+            PRODR=-AI(I,K)*TI
+            PRODI=AR(I,K)*TI
+            AR(I,J) = AR(I,J) + PRODR
+            AI(I,J) = AI(I,J) + PRODI
+ 45         CONTINUE
+            GO TO 48
+          END IF
+          DO 47 I = KP1,N
+            PRODR=AR(I,K)*TR-AI(I,K)*TI
+            PRODI=AI(I,K)*TR+AR(I,K)*TI
+            AR(I,J) = AR(I,J) + PRODR
+            AI(I,J) = AI(I,J) + PRODI
+ 47         CONTINUE
+ 48       CONTINUE
+ 50       CONTINUE
+ 60     CONTINUE
+ 70   K = N
+      IF (DABS(AR(N,N))+DABS(AI(N,N)) .EQ. 0.D0) GO TO 80
+      RETURN
+ 80   IER = K
+      IP(N) = 0
+      RETURN
+C----------------------- END OF SUBROUTINE DECC ------------------------
+      END
+C
+C
+      SUBROUTINE SOLC (N, NDIM, AR, AI, BR, BI, IP)
+C VERSION COMPLEX KPP_REAL
+      IMPLICIT KPP_REAL (A-H,O-Z)
+      INTEGER N,NDIM,IP,NM1,K,KP1,M,I,KB,KM1
+      DIMENSION AR(NDIM,N), AI(NDIM,N), BR(N), BI(N), IP(N)
+C-----------------------------------------------------------------------
+C  SOLUTION OF LINEAR SYSTEM, A*X = B .
+C  INPUT..
+C    N = ORDER OF MATRIX.
+C    NDIM = DECLARED DIMENSION OF ARRAYS  AR AND AI.
+C    (AR,AI) = TRIANGULARIZED MATRIX OBTAINED FROM DEC.
+C    (BR,BI) = RIGHT HAND SIDE VECTOR.
+C    IP = PIVOT VECTOR OBTAINED FROM DEC.
+C  DO NOT USE IF DEC HAS SET IER .NE. 0.
+C  OUTPUT..
+C    (BR,BI) = SOLUTION VECTOR, X .
+C-----------------------------------------------------------------------
+      IF (N .EQ. 1) GO TO 50
+      NM1 = N - 1
+      DO 20 K = 1,NM1
+        KP1 = K + 1
+        M = IP(K)
+        TR = BR(M)
+        TI = BI(M)
+        BR(M) = BR(K)
+        BI(M) = BI(K)
+        BR(K) = TR
+        BI(K) = TI
+        DO 10 I = KP1,N
+          PRODR=AR(I,K)*TR-AI(I,K)*TI
+          PRODI=AI(I,K)*TR+AR(I,K)*TI
+          BR(I) = BR(I) + PRODR
+          BI(I) = BI(I) + PRODI
+ 10       CONTINUE
+ 20     CONTINUE
+      DO 40 KB = 1,NM1
+        KM1 = N - KB
+        K = KM1 + 1
+        DEN=AR(K,K)*AR(K,K)+AI(K,K)*AI(K,K)
+        PRODR=BR(K)*AR(K,K)+BI(K)*AI(K,K)
+        PRODI=BI(K)*AR(K,K)-BR(K)*AI(K,K)
+        BR(K)=PRODR/DEN
+        BI(K)=PRODI/DEN
+        TR = -BR(K)
+        TI = -BI(K)
+        DO 30 I = 1,KM1
+          PRODR=AR(I,K)*TR-AI(I,K)*TI
+          PRODI=AI(I,K)*TR+AR(I,K)*TI
+          BR(I) = BR(I) + PRODR
+          BI(I) = BI(I) + PRODI
+ 30       CONTINUE
+ 40     CONTINUE
+ 50     CONTINUE
+        DEN=AR(1,1)*AR(1,1)+AI(1,1)*AI(1,1)
+        PRODR=BR(1)*AR(1,1)+BI(1)*AI(1,1)
+        PRODI=BI(1)*AR(1,1)-BR(1)*AI(1,1)
+        BR(1)=PRODR/DEN
+        BI(1)=PRODI/DEN
+      RETURN
+C----------------------- END OF SUBROUTINE SOLC ------------------------
+      END
+C
+C
+      SUBROUTINE DECHC (N, NDIM, AR, AI, LB, IP, IER)
+C VERSION COMPLEX KPP_REAL
+      IMPLICIT KPP_REAL (A-H,O-Z)
+      INTEGER N,NDIM,IP,IER,NM1,K,KP1,M,I,J
+      DIMENSION AR(NDIM,N), AI(NDIM,N), IP(N)
+C-----------------------------------------------------------------------
+C  MATRIX TRIANGULARIZATION BY GAUSSIAN ELIMINATION
+C  ------ MODIFICATION FOR COMPLEX MATRICES --------
+C  INPUT..
+C     N = ORDER OF MATRIX.
+C     NDIM = DECLARED DIMENSION OF ARRAYS  AR AND AI .
+C     (AR, AI) = MATRIX TO BE TRIANGULARIZED.
+C  OUTPUT..
+C     AR(I,J), I.LE.J = UPPER TRIANGULAR FACTOR, U ; REAL PART.
+C     AI(I,J), I.LE.J = UPPER TRIANGULAR FACTOR, U ; IMAGINARY PART.
+C     AR(I,J), I.GT.J = MULTIPLIERS = LOWER TRIANGULAR FACTOR, I - L.
+C                                                    REAL PART.
+C     AI(I,J), I.GT.J = MULTIPLIERS = LOWER TRIANGULAR FACTOR, I - L.
+C                                                    IMAGINARY PART.
+C     LB = LOWER BANDWIDTH OF A (DIAGONAL NOT COUNTED), LB.GE.1.
+C     IP(K), K.LT.N = INDEX OF K-TH PIVOT ROW.
+C     IP(N) = (-1)**(NUMBER OF INTERCHANGES) OR O .
+C     IER = 0 IF MATRIX A IS NONSINGULAR, OR K IF FOUND TO BE
+C           SINGULAR AT STAGE K.
+C  USE  SOL  TO OBTAIN SOLUTION OF LINEAR SYSTEM.
+C  IF IP(N)=O, A IS SINGULAR, SOL WILL DIVIDE BY ZERO.
+C
+C  REFERENCE..
+C     C. B. MOLER, ALGORITHM 423, LINEAR EQUATION KppSolveR,
+C     C.A.C.M. 15 (1972), P. 274.
+C-----------------------------------------------------------------------
+      IER = 0
+      IP(N) = 1
+      IF (LB .EQ. 0) GO TO 70
+      IF (N .EQ. 1) GO TO 70
+      NM1 = N - 1
+      DO 60 K = 1,NM1
+        KP1 = K + 1
+        M = K
+        NA = MIN0(N,LB+K)
+        DO 10 I = KP1,NA
+          IF (DABS(AR(I,K))+DABS(AI(I,K)) .GT.
+     &          DABS(AR(M,K))+DABS(AI(M,K))) M = I
+ 10     CONTINUE
+        IP(K) = M
+        TR = AR(M,K)
+        TI = AI(M,K)
+        IF (M .EQ. K) GO TO 20
+        IP(N) = -IP(N)
+        AR(M,K) = AR(K,K)
+        AI(M,K) = AI(K,K)
+        AR(K,K) = TR
+        AI(K,K) = TI
+ 20     CONTINUE
+        IF (DABS(TR)+DABS(TI) .EQ. 0.D0) GO TO 80
+        DEN=TR*TR+TI*TI
+        TR=TR/DEN
+        TI=-TI/DEN
+        DO 30 I = KP1,NA
+          PRODR=AR(I,K)*TR-AI(I,K)*TI
+          PRODI=AI(I,K)*TR+AR(I,K)*TI
+          AR(I,K)=-PRODR
+          AI(I,K)=-PRODI
+ 30       CONTINUE
+        DO 50 J = KP1,N
+          TR = AR(M,J)
+          TI = AI(M,J)
+          AR(M,J) = AR(K,J)
+          AI(M,J) = AI(K,J)
+          AR(K,J) = TR
+          AI(K,J) = TI
+          IF (DABS(TR)+DABS(TI) .EQ. 0.D0) GO TO 48
+          IF (TI .EQ. 0.D0) THEN
+            DO 40 I = KP1,NA
+            PRODR=AR(I,K)*TR
+            PRODI=AI(I,K)*TR
+            AR(I,J) = AR(I,J) + PRODR
+            AI(I,J) = AI(I,J) + PRODI
+ 40         CONTINUE
+            GO TO 48
+          END IF
+          IF (TR .EQ. 0.D0) THEN
+            DO 45 I = KP1,NA
+            PRODR=-AI(I,K)*TI
+            PRODI=AR(I,K)*TI
+            AR(I,J) = AR(I,J) + PRODR
+            AI(I,J) = AI(I,J) + PRODI
+ 45         CONTINUE
+            GO TO 48
+          END IF
+          DO 47 I = KP1,NA
+            PRODR=AR(I,K)*TR-AI(I,K)*TI
+            PRODI=AI(I,K)*TR+AR(I,K)*TI
+            AR(I,J) = AR(I,J) + PRODR
+            AI(I,J) = AI(I,J) + PRODI
+ 47         CONTINUE
+ 48       CONTINUE
+ 50       CONTINUE
+ 60     CONTINUE
+ 70   K = N
+      IF (DABS(AR(N,N))+DABS(AI(N,N)) .EQ. 0.D0) GO TO 80
+      RETURN
+ 80   IER = K
+      IP(N) = 0
+      RETURN
+C----------------------- END OF SUBROUTINE DECHC -----------------------
+      END
+C
+C
+      SUBROUTINE SOLHC (N, NDIM, AR, AI, LB, BR, BI, IP)
+C VERSION COMPLEX KPP_REAL
+      IMPLICIT KPP_REAL (A-H,O-Z)
+      INTEGER N,NDIM,IP,NM1,K,KP1,M,I,KB,KM1
+      DIMENSION AR(NDIM,N), AI(NDIM,N), BR(N), BI(N), IP(N)
+C-----------------------------------------------------------------------
+C  SOLUTION OF LINEAR SYSTEM, A*X = B .
+C  INPUT..
+C    N = ORDER OF MATRIX.
+C    NDIM = DECLARED DIMENSION OF ARRAYS  AR AND AI.
+C    (AR,AI) = TRIANGULARIZED MATRIX OBTAINED FROM DEC.
+C    (BR,BI) = RIGHT HAND SIDE VECTOR.
+C    LB = LOWER BANDWIDTH OF A.
+C    IP = PIVOT VECTOR OBTAINED FROM DEC.
+C  DO NOT USE IF DEC HAS SET IER .NE. 0.
+C  OUTPUT..
+C    (BR,BI) = SOLUTION VECTOR, X .
+C-----------------------------------------------------------------------
+      IF (N .EQ. 1) GO TO 50
+      NM1 = N - 1
+      IF (LB .EQ. 0) GO TO 25
+      DO 20 K = 1,NM1
+        KP1 = K + 1
+        M = IP(K)
+        TR = BR(M)
+        TI = BI(M)
+        BR(M) = BR(K)
+        BI(M) = BI(K)
+        BR(K) = TR
+        BI(K) = TI
+        DO 10 I = KP1,MIN0(N,LB+K)
+          PRODR=AR(I,K)*TR-AI(I,K)*TI
+          PRODI=AI(I,K)*TR+AR(I,K)*TI
+          BR(I) = BR(I) + PRODR
+          BI(I) = BI(I) + PRODI
+ 10       CONTINUE
+ 20     CONTINUE
+ 25     CONTINUE
+      DO 40 KB = 1,NM1
+        KM1 = N - KB
+        K = KM1 + 1
+        DEN=AR(K,K)*AR(K,K)+AI(K,K)*AI(K,K)
+        PRODR=BR(K)*AR(K,K)+BI(K)*AI(K,K)
+        PRODI=BI(K)*AR(K,K)-BR(K)*AI(K,K)
+        BR(K)=PRODR/DEN
+        BI(K)=PRODI/DEN
+        TR = -BR(K)
+        TI = -BI(K)
+        DO 30 I = 1,KM1
+          PRODR=AR(I,K)*TR-AI(I,K)*TI
+          PRODI=AI(I,K)*TR+AR(I,K)*TI
+          BR(I) = BR(I) + PRODR
+          BI(I) = BI(I) + PRODI
+ 30       CONTINUE
+ 40     CONTINUE
+ 50     CONTINUE
+        DEN=AR(1,1)*AR(1,1)+AI(1,1)*AI(1,1)
+        PRODR=BR(1)*AR(1,1)+BI(1)*AI(1,1)
+        PRODI=BI(1)*AR(1,1)-BR(1)*AI(1,1)
+        BR(1)=PRODR/DEN
+        BI(1)=PRODI/DEN
+      RETURN
+C----------------------- END OF SUBROUTINE SOLHC -----------------------
+      END
+C
+      SUBROUTINE DECB (N, NDIM, A, ML, MU, IP, IER)
+      KPP_REAL A,T
+      DIMENSION A(NDIM,N), IP(N)
+C-----------------------------------------------------------------------
+C  MATRIX TRIANGULARIZATION BY GAUSSIAN ELIMINATION OF A BANDED
+C  MATRIX WITH LOWER BANDWIDTH ML AND UPPER BANDWIDTH MU
+C  INPUT..
+C     N       ORDER OF THE ORIGINAL MATRIX A.
+C     NDIM    DECLARED DIMENSION OF ARRAY  A.
+C     A       CONTAINS THE MATRIX IN BAND STORAGE.   THE COLUMNS
+C                OF THE MATRIX ARE STORED IN THE COLUMNS OF  A  AND
+C                THE DIAGONALS OF THE MATRIX ARE STORED IN ROWS
+C                ML+1 THROUGH 2*ML+MU+1 OF  A.
+C     ML      LOWER BANDWIDTH OF A (DIAGONAL IS NOT COUNTED).
+C     MU      UPPER BANDWIDTH OF A (DIAGONAL IS NOT COUNTED).
+C  OUTPUT..
+C     A       AN UPPER TRIANGULAR MATRIX IN BAND STORAGE AND
+C                THE MULTIPLIERS WHICH WERE USED TO OBTAIN IT.
+C     IP      INDEX VECTOR OF PIVOT INDICES.
+C     IP(N)   (-1)**(NUMBER OF INTERCHANGES) OR O .
+C     IER     = 0 IF MATRIX A IS NONSINGULAR, OR  = K IF FOUND TO BE
+C                SINGULAR AT STAGE K.
+C  USE  SOLB  TO OBTAIN SOLUTION OF LINEAR SYSTEM.
+C  DETERM(A) = IP(N)*A(MD,1)*A(MD,2)*...*A(MD,N)  WITH MD=ML+MU+1.
+C  IF IP(N)=O, A IS SINGULAR, SOLB WILL DIVIDE BY ZERO.
+C
+C  REFERENCE..
+C     THIS IS A MODIFICATION OF
+C     C. B. MOLER, ALGORITHM 423, LINEAR EQUATION KppSolveR,
+C     C.A.C.M. 15 (1972), P. 274.
+C-----------------------------------------------------------------------
+      IER = 0
+      IP(N) = 1
+      MD = ML + MU + 1
+      MD1 = MD + 1
+      JU = 0
+      IF (ML .EQ. 0) GO TO 70
+      IF (N .EQ. 1) GO TO 70
+      IF (N .LT. MU+2) GO TO 7
+      DO 5 J = MU+2,N
+      DO 5 I = 1,ML
+  5   A(I,J) = 0.D0
+  7   NM1 = N - 1
+      DO 60 K = 1,NM1
+        KP1 = K + 1
+        M = MD
+        MDL = MIN(ML,N-K) + MD
+        DO 10 I = MD1,MDL
+          IF (DABS(A(I,K)) .GT. DABS(A(M,K))) M = I
+ 10     CONTINUE
+        IP(K) = M + K - MD
+        T = A(M,K)
+        IF (M .EQ. MD) GO TO 20
+        IP(N) = -IP(N)
+        A(M,K) = A(MD,K)
+        A(MD,K) = T
+ 20     CONTINUE
+        IF (T .EQ. 0.D0) GO TO 80
+        T = 1.D0/T
+        DO 30 I = MD1,MDL
+ 30       A(I,K) = -A(I,K)*T
+        JU = MIN0(MAX0(JU,MU+IP(K)),N)
+        MM = MD
+        IF (JU .LT. KP1) GO TO 55
+        DO 50 J = KP1,JU
+          M = M - 1
+          MM = MM - 1
+          T = A(M,J)
+          IF (M .EQ. MM) GO TO 35
+          A(M,J) = A(MM,J)
+          A(MM,J) = T
+ 35       CONTINUE
+          IF (T .EQ. 0.D0) GO TO 45
+          JK = J - K
+          DO 40 I = MD1,MDL
+            IJK = I - JK
+ 40         A(IJK,J) = A(IJK,J) + A(I,K)*T
+ 45       CONTINUE
+ 50       CONTINUE
+ 55     CONTINUE
+ 60     CONTINUE
+ 70   K = N
+      IF (A(MD,N) .EQ. 0.D0) GO TO 80
+      RETURN
+ 80   IER = K
+      IP(N) = 0
+      RETURN
+C----------------------- END OF SUBROUTINE DECB ------------------------
+      END
+C
+C
+      SUBROUTINE SOLB (N, NDIM, A, ML, MU, B, IP)
+      KPP_REAL A,B,T
+      DIMENSION A(NDIM,N), B(N), IP(N)
+C-----------------------------------------------------------------------
+C  SOLUTION OF LINEAR SYSTEM, A*X = B .
+C  INPUT..
+C    N      ORDER OF MATRIX A.
+C    NDIM   DECLARED DIMENSION OF ARRAY  A .
+C    A      TRIANGULARIZED MATRIX OBTAINED FROM DECB.
+C    ML     LOWER BANDWIDTH OF A (DIAGONAL IS NOT COUNTED).
+C    MU     UPPER BANDWIDTH OF A (DIAGONAL IS NOT COUNTED).
+C    B      RIGHT HAND SIDE VECTOR.
+C    IP     PIVOT VECTOR OBTAINED FROM DECB.
+C  DO NOT USE IF DECB HAS SET IER .NE. 0.
+C  OUTPUT..
+C    B      SOLUTION VECTOR, X .
+C-----------------------------------------------------------------------
+      MD = ML + MU + 1
+      MD1 = MD + 1
+      MDM = MD - 1
+      NM1 = N - 1
+      IF (ML .EQ. 0) GO TO 25
+      IF (N .EQ. 1) GO TO 50
+      DO 20 K = 1,NM1
+        M = IP(K)
+        T = B(M)
+        B(M) = B(K)
+        B(K) = T
+        MDL = MIN(ML,N-K) + MD
+        DO 10 I = MD1,MDL
+          IMD = I + K - MD
+ 10       B(IMD) = B(IMD) + A(I,K)*T
+ 20     CONTINUE
+ 25   CONTINUE
+      DO 40 KB = 1,NM1
+        K = N + 1 - KB
+        B(K) = B(K)/A(MD,K)
+        T = -B(K)
+        KMD = MD - K
+        LM = MAX0(1,KMD+1)
+        DO 30 I = LM,MDM
+          IMD = I - KMD
+ 30       B(IMD) = B(IMD) + A(I,K)*T
+ 40     CONTINUE
+ 50   B(1) = B(1)/A(MD,1)
+      RETURN
+C----------------------- END OF SUBROUTINE SOLB ------------------------
+      END
+C
+      SUBROUTINE DECBC (N, NDIM, AR, AI, ML, MU, IP, IER)
+      IMPLICIT KPP_REAL (A-H,O-Z)
+      DIMENSION AR(NDIM,N), AI(NDIM,N), IP(N)
+C-----------------------------------------------------------------------
+C  MATRIX TRIANGULARIZATION BY GAUSSIAN ELIMINATION OF A BANDED COMPLEX
+C  MATRIX WITH LOWER BANDWIDTH ML AND UPPER BANDWIDTH MU
+C  INPUT..
+C     N       ORDER OF THE ORIGINAL MATRIX A.
+C     NDIM    DECLARED DIMENSION OF ARRAY  A.
+C     AR, AI     CONTAINS THE MATRIX IN BAND STORAGE.   THE COLUMNS
+C                OF THE MATRIX ARE STORED IN THE COLUMNS OF  AR (REAL
+C                PART) AND AI (IMAGINARY PART)  AND
+C                THE DIAGONALS OF THE MATRIX ARE STORED IN ROWS
+C                ML+1 THROUGH 2*ML+MU+1 OF  AR AND AI.
+C     ML      LOWER BANDWIDTH OF A (DIAGONAL IS NOT COUNTED).
+C     MU      UPPER BANDWIDTH OF A (DIAGONAL IS NOT COUNTED).
+C  OUTPUT..
+C     AR, AI  AN UPPER TRIANGULAR MATRIX IN BAND STORAGE AND
+C                THE MULTIPLIERS WHICH WERE USED TO OBTAIN IT.
+C     IP      INDEX VECTOR OF PIVOT INDICES.
+C     IP(N)   (-1)**(NUMBER OF INTERCHANGES) OR O .
+C     IER     = 0 IF MATRIX A IS NONSINGULAR, OR  = K IF FOUND TO BE
+C                SINGULAR AT STAGE K.
+C  USE  SOLBC  TO OBTAIN SOLUTION OF LINEAR SYSTEM.
+C  DETERM(A) = IP(N)*A(MD,1)*A(MD,2)*...*A(MD,N)  WITH MD=ML+MU+1.
+C  IF IP(N)=O, A IS SINGULAR, SOLBC WILL DIVIDE BY ZERO.
+C
+C  REFERENCE..
+C     THIS IS A MODIFICATION OF
+C     C. B. MOLER, ALGORITHM 423, LINEAR EQUATION KppSolveR,
+C     C.A.C.M. 15 (1972), P. 274.
+C-----------------------------------------------------------------------
+      IER = 0
+      IP(N) = 1
+      MD = ML + MU + 1
+      MD1 = MD + 1
+      JU = 0
+      IF (ML .EQ. 0) GO TO 70
+      IF (N .EQ. 1) GO TO 70
+      IF (N .LT. MU+2) GO TO 7
+      DO 5 J = MU+2,N
+      DO 5 I = 1,ML
+      AR(I,J) = 0.D0
+      AI(I,J) = 0.D0
+  5   CONTINUE
+  7   NM1 = N - 1
+      DO 60 K = 1,NM1
+        KP1 = K + 1
+        M = MD
+        MDL = MIN(ML,N-K) + MD
+        DO 10 I = MD1,MDL
+          IF (DABS(AR(I,K))+DABS(AI(I,K)) .GT.
+     &          DABS(AR(M,K))+DABS(AI(M,K))) M = I
+ 10     CONTINUE
+        IP(K) = M + K - MD
+        TR = AR(M,K)
+        TI = AI(M,K)
+        IF (M .EQ. MD) GO TO 20
+        IP(N) = -IP(N)
+        AR(M,K) = AR(MD,K)
+        AI(M,K) = AI(MD,K)
+        AR(MD,K) = TR
+        AI(MD,K) = TI
+ 20     IF (DABS(TR)+DABS(TI) .EQ. 0.D0) GO TO 80
+        DEN=TR*TR+TI*TI
+        TR=TR/DEN
+        TI=-TI/DEN
+        DO 30 I = MD1,MDL
+          PRODR=AR(I,K)*TR-AI(I,K)*TI
+          PRODI=AI(I,K)*TR+AR(I,K)*TI
+          AR(I,K)=-PRODR
+          AI(I,K)=-PRODI
+ 30       CONTINUE
+        JU = MIN0(MAX0(JU,MU+IP(K)),N)
+        MM = MD
+        IF (JU .LT. KP1) GO TO 55
+        DO 50 J = KP1,JU
+          M = M - 1
+          MM = MM - 1
+          TR = AR(M,J)
+          TI = AI(M,J)
+          IF (M .EQ. MM) GO TO 35
+          AR(M,J) = AR(MM,J)
+          AI(M,J) = AI(MM,J)
+          AR(MM,J) = TR
+          AI(MM,J) = TI
+ 35       CONTINUE
+          IF (DABS(TR)+DABS(TI) .EQ. 0.D0) GO TO 48
+          JK = J - K
+          IF (TI .EQ. 0.D0) THEN
+            DO 40 I = MD1,MDL
+            IJK = I - JK
+            PRODR=AR(I,K)*TR
+            PRODI=AI(I,K)*TR
+            AR(IJK,J) = AR(IJK,J) + PRODR
+            AI(IJK,J) = AI(IJK,J) + PRODI
+ 40         CONTINUE
+            GO TO 48
+          END IF
+          IF (TR .EQ. 0.D0) THEN
+            DO 45 I = MD1,MDL
+            IJK = I - JK
+            PRODR=-AI(I,K)*TI
+            PRODI=AR(I,K)*TI
+            AR(IJK,J) = AR(IJK,J) + PRODR
+            AI(IJK,J) = AI(IJK,J) + PRODI
+ 45         CONTINUE
+            GO TO 48
+          END IF
+          DO 47 I = MD1,MDL
+            IJK = I - JK
+            PRODR=AR(I,K)*TR-AI(I,K)*TI
+            PRODI=AI(I,K)*TR+AR(I,K)*TI
+            AR(IJK,J) = AR(IJK,J) + PRODR
+            AI(IJK,J) = AI(IJK,J) + PRODI
+ 47         CONTINUE
+ 48       CONTINUE
+ 50       CONTINUE
+ 55     CONTINUE
+ 60     CONTINUE
+ 70   K = N
+      IF (DABS(AR(MD,N))+DABS(AI(MD,N)) .EQ. 0.D0) GO TO 80
+      RETURN
+ 80   IER = K
+      IP(N) = 0
+      RETURN
+C----------------------- END OF SUBROUTINE DECBC ------------------------
+      END
+C
+C
+      SUBROUTINE SOLBC (N, NDIM, AR, AI, ML, MU, BR, BI, IP)
+      IMPLICIT KPP_REAL (A-H,O-Z)
+      DIMENSION AR(NDIM,N), AI(NDIM,N), BR(N), BI(N), IP(N)
+C-----------------------------------------------------------------------
+C  SOLUTION OF LINEAR SYSTEM, A*X = B ,
+C                  VERSION BANDED AND COMPLEX-KPP_REAL.
+C  INPUT..
+C    N      ORDER OF MATRIX A.
+C    NDIM   DECLARED DIMENSION OF ARRAY  A .
+C    AR, AI TRIANGULARIZED MATRIX OBTAINED FROM DECB (REAL AND IMAG. PART).
+C    ML     LOWER BANDWIDTH OF A (DIAGONAL IS NOT COUNTED).
+C    MU     UPPER BANDWIDTH OF A (DIAGONAL IS NOT COUNTED).
+C    BR, BI RIGHT HAND SIDE VECTOR (REAL AND IMAG. PART).
+C    IP     PIVOT VECTOR OBTAINED FROM DECBC.
+C  DO NOT USE IF DECB HAS SET IER .NE. 0.
+C  OUTPUT..
+C    BR, BI SOLUTION VECTOR, X (REAL AND IMAG. PART).
+C-----------------------------------------------------------------------
+      MD = ML + MU + 1
+      MD1 = MD + 1
+      MDM = MD - 1
+      NM1 = N - 1
+      IF (ML .EQ. 0) GO TO 25
+      IF (N .EQ. 1) GO TO 50
+      DO 20 K = 1,NM1
+        M = IP(K)
+        TR = BR(M)
+        TI = BI(M)
+        BR(M) = BR(K)
+        BI(M) = BI(K)
+        BR(K) = TR
+        BI(K) = TI
+        MDL = MIN(ML,N-K) + MD
+        DO 10 I = MD1,MDL
+          IMD = I + K - MD
+          PRODR=AR(I,K)*TR-AI(I,K)*TI
+          PRODI=AI(I,K)*TR+AR(I,K)*TI
+          BR(IMD) = BR(IMD) + PRODR
+          BI(IMD) = BI(IMD) + PRODI
+ 10     CONTINUE
+ 20     CONTINUE
+ 25     CONTINUE
+      DO 40 KB = 1,NM1
+        K = N + 1 - KB
+        DEN=AR(MD,K)*AR(MD,K)+AI(MD,K)*AI(MD,K)
+        PRODR=BR(K)*AR(MD,K)+BI(K)*AI(MD,K)
+        PRODI=BI(K)*AR(MD,K)-BR(K)*AI(MD,K)
+        BR(K)=PRODR/DEN
+        BI(K)=PRODI/DEN
+        TR = -BR(K)
+        TI = -BI(K)
+        KMD = MD - K
+        LM = MAX0(1,KMD+1)
+        DO 30 I = LM,MDM
+          IMD = I - KMD
+          PRODR=AR(I,K)*TR-AI(I,K)*TI
+          PRODI=AI(I,K)*TR+AR(I,K)*TI
+          BR(IMD) = BR(IMD) + PRODR
+          BI(IMD) = BI(IMD) + PRODI
+ 30       CONTINUE
+ 40     CONTINUE
+        DEN=AR(MD,1)*AR(MD,1)+AI(MD,1)*AI(MD,1)
+        PRODR=BR(1)*AR(MD,1)+BI(1)*AI(MD,1)
+        PRODI=BI(1)*AR(MD,1)-BR(1)*AI(MD,1)
+        BR(1)=PRODR/DEN
+        BI(1)=PRODI/DEN
+ 50   CONTINUE
+      RETURN
+C----------------------- END OF SUBROUTINE SOLBC ------------------------
+      END
+c
+C
+      subroutine Elmhes(nm,n,low,igh,a,int)
+C
+      integer i,j,m,n,la,nm,igh,kp1,low,mm1,mp1
+      real*8 a(nm,n)
+      real*8 x,y
+      real*8 dabs
+      integer int(igh)
+C
+C     this subroutine is a translation of the algol procedure elmhes,
+C     num. math. 12, 349-368(1968) by martin and wilkinson.
+C     handbook for auto. comp., vol.ii-linear algebra, 339-358(1971).
+C
+C     given a real general matrix, this subroutine
+C     reduces a submatrix situated in rows and columns
+C     low through igh to upper hessenberg form by
+C     stabilized elementary similarity transformations.
+C
+C     on input:
+C
+C      nm must be set to the row dimension of two-dimensional
+C        array parameters as declared in the calling program
+C        dimension statement;
+C
+C      n is the order of the matrix;
+C
+C      low and igh are integers determined by the balancing
+C        subroutine  balanc.      if  balanc  has not been used,
+C        set low=1, igh=n;
+C
+C      a contains the input matrix.
+C
+C     on output:
+C
+C      a contains the hessenberg matrix.  the multipliers
+C        which were used in the reduction are stored in the
+C        remaining triangle under the hessenberg matrix;
+C
+C      int contains information on the rows and columns
+C        interchanged in the reduction.
+C        only elements low through igh are used.
+C
+C     questions and comments should be directed to b. s. garbow,
+C     applied mathematics division, argonne national laboratory
+C
+C     ------------------------------------------------------------------
+C
+      la = igh - 1
+      kp1 = low + 1
+      if (la .lt. kp1) go to 200
+C
+      do 180 m = kp1, la
+       mm1 = m - 1
+       x = 0.0d0
+       i = m
+C
+       do 100 j = m, igh
+          if (dabs(a(j,mm1)) .le. dabs(x)) go to 100
+          x = a(j,mm1)
+          i = j
+  100   continue
+C
+       int(m) = i
+       if (i .eq. m) go to 130
+C    :::::::::: interchange rows and columns of a ::::::::::
+       do 110 j = mm1, n
+          y = a(i,j)
+          a(i,j) = a(m,j)
+          a(m,j) = y
+  110   continue
+C
+       do 120 j = 1, igh
+          y = a(j,i)
+          a(j,i) = a(j,m)
+          a(j,m) = y
+  120   continue
+C    :::::::::: end interchange ::::::::::
+  130   if (x .eq. 0.0d0) go to 180
+       mp1 = m + 1
+C
+       do 160 i = mp1, igh
+          y = a(i,mm1)
+          if (y .eq. 0.0d0) go to 160
+          y = y / x
+          a(i,mm1) = y
+C
+          do 140 j = m, n
+  140      a(i,j) = a(i,j) - y * a(m,j)
+C
+          do 150 j = 1, igh
+  150      a(j,m) = a(j,m) + y * a(j,i)
+C
+  160   continue
+C
+  180 continue
+C
+  200 return
+C    :::::::::: last card of elmhes ::::::::::
+      end
+
+        SUBROUTINE SOLOUT (NR,XOLD,X,Y,CONT,LRC,N,RPAR,IPAR,IRTRN)
+C --- PRINTS SOLUTION AT EQUIDISTANT OUTPUT-POINTS BY USING "CONTR5"
+        IMPLICIT KPP_REAL (A-H,O-Z)
+        DIMENSION Y(N),CONT(LRC)
+        COMMON /INTERN/XOUT
+        IF (NR.EQ.1) THEN
+           WRITE (6,99) X,Y(1),Y(2),NR-1
+           XOUT=0.2D0
+        ELSE
+ 10        CONTINUE
+           IF (X.GE.XOUT) THEN
+C --- CONTINUOUS OUTPUT FOR RADAU5
+              WRITE (6,99) XOUT,CONTR5(1,XOUT,CONT,LRC),
+     &                     CONTR5(2,XOUT,CONT,LRC),NR-1
+              XOUT=XOUT+0.2D0
+              GOTO 10
+           END IF
+        END IF
+ 99     FORMAT(1X,'X =',F5.2,'    Y =',2E18.10,'    NSTEP =',I4)
+        RETURN
+        END
+
+        SUBROUTINE FUNC_CHEM (N, T, V, FCT, RPAR, IPAR)
+	IMPLICIT NONE
+        INCLUDE 'KPP_ROOT_Parameters.h'
+        INCLUDE 'KPP_ROOT_Global.h'
+        KPP_REAL V(NVAR), FCT(NVAR)
+	KPP_REAL T, TOLD, RPAR(1)
+	INTEGER N, IPAR(1)
+        TOLD = TIME
+        TIME = T
+        CALL Update_SUN()
+        CALL Update_RCONST()
+        TIME = TOLD
+        CALL Fun(V,  FIX, RCONST, FCT)
+        RETURN
+        END
+
+        SUBROUTINE JAC_CHEM (N, T, V, JV, NROWPD, RPAR, IPAR)
+	IMPLICIT NONE
+        INCLUDE 'KPP_ROOT_Parameters.h'
+        INCLUDE 'KPP_ROOT_Global.h'
+        KPP_REAL V(NVAR), JV(NVAR,NVAR)
+	KPP_REAL T, TOLD, RPAR(1)
+	INTEGER N, IPAR(1), NROWPD, i, j
+        TOLD = TIME
+        TIME = T
+        CALL Update_SUN()
+        CALL Update_RCONST()
+        TIME = TOLD
+        DO i=1,NVAR
+           DO j=1,NVAR
+              JV(i,j) = 0.D0
+           END DO
+        END DO
+        CALL Jac(V,  FIX, RCONST, JV)
+        RETURN
+        END
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/gillespie.c
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/gillespie.c	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/gillespie.c	(revision 2696)
@@ -0,0 +1,53 @@
+void StochasticRates( double RCT[], double Volume, double SCT[] );   
+void Propensity ( int V[], int F[], double SCT[], double A[] );
+void MoleculeChange ( int j, int NmlcV[] );
+double CellMass(double T); 
+void Update_RCONST();
+
+/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+void Gillespie(int Nevents, double Volume, double* T, int NmlcV[], int NmlcF[]) 
+/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+{
+    
+      int i, m=0, event;
+      double r1, r2;
+      double A[NREACT], SCT[NREACT], x;
+
+     /* Compute the stochastic reaction rates */
+      Update_RCONST();
+      StochasticRates( RCONST, Volume, SCT );   
+   
+      for (event = 1; event <= Nevents; event++) {
+
+          /* Uniformly distributed ranfor (m numbers */
+          r1 = (double)rand()/(double)RAND_MAX;
+          r2 = (double)rand()/(double)RAND_MAX;
+
+	  /* Avoid log of zero */
+	  r2 = (r2-1.0e-14) ? r2 : 1.0e-14;
+	  
+          /* Propensity vector */
+	  TIME = *T;
+	  Propensity ( NmlcV, NmlcF, SCT, A );
+	  
+          /* Cumulative sum of propensities */
+	  for (i=1; i<NREACT; i++)
+            A[i] = A[i-1]+A[i];
+          
+	  /* Index of next reaction */
+	  x = r1*A[NREACT-1];
+	  for ( i = 0; i<NREACT; i++)
+	    if (A[i] >= x) {
+              m = i+1;
+	      break;
+	    }
+	  
+          /* Update T with time to next reaction */
+          *T = *T - log(r2)/A[NREACT-1];
+
+          /* Update state vector after reaction m */
+	  MoleculeChange( m, NmlcV );
+	  
+     } /* for event */
+    
+} /* Gillespie */
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/gillespie.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/gillespie.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/gillespie.def	(revision 2696)
@@ -0,0 +1,10 @@
+ 
+#FUNCTION   aggregate
+#JACOBIAN   SPARSE_LU_ROW
+#DOUBLE     on 
+#STOCHASTIC on 
+#INTFILE    gillespie
+
+
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/gillespie.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/gillespie.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/gillespie.f90	(revision 2696)
@@ -0,0 +1,86 @@
+MODULE KPP_ROOT_Integrator
+
+  USE KPP_ROOT_Parameters, ONLY : NVAR, NFIX, NREACT 
+  USE KPP_ROOT_Global, ONLY : TIME, RCONST, Volume 
+  USE KPP_ROOT_Stoichiom  
+  USE KPP_ROOT_Stochastic
+  USE KPP_ROOT_Rates
+  IMPLICIT NONE
+
+CONTAINS
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE Gillespie(Nevents, T, SCT, NmlcV, NmlcF)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!   Gillespie stochastic integration
+!   INPUT:
+!       Nevents = no. of individual reaction events to be simulated
+!       SCT     = stochastic rate constants
+!       T       = time
+!       NmlcV, NmlcF = no. of molecules for variable and fixed species
+!   OUTPUT:
+!       T       = updated time (after Nevents reactions)
+!       NmlcV   = updated no. of molecules for variable species
+!      
+!
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      KPP_REAL:: T
+      INTEGER :: Nevents     
+      INTEGER :: NmlcV(NVAR), NmlcF(NFIX)
+      INTEGER :: i, m, issa
+      REAL   :: r1, r2
+      KPP_REAL :: A(NREACT), SCT(NREACT), x
+   
+      DO issa = 1, Nevents
+
+          ! Uniformly distributed random numbers
+          CALL RANDOM_NUMBER(r1)
+          CALL RANDOM_NUMBER(r2)
+          ! Avoid log of zero
+          r2 = MAX(r2,1.e-14)
+          
+          ! Propensity vector
+          CALL  Propensity ( NmlcV, NmlcF, SCT, A )
+          ! Cumulative sum of propensities
+          DO i = 2, NREACT
+            A(i) = A(i-1)+A(i);
+          END DO
+          
+          ! Index of next reaction
+          x = r1*A(NREACT)
+          DO i = 1, NREACT
+            IF (A(i)>=x) THEN
+              m = i;
+              EXIT
+            END IF
+          END DO
+          
+          ! Update time with time to next reaction
+          T = T - LOG(r2)/A(NREACT);
+
+          ! Update state vector
+          CALL MoleculeChange( m, NmlcV )
+        
+     END DO
+    
+  CONTAINS
+
+    SUBROUTINE PropensityTemplate( T, NmlcV, NmlcF, Prop )
+      KPP_REAL, INTENT(IN)  :: T
+      INTEGER, INTENT(IN)   :: NmlcV(NVAR), NmlcF(NFIX)
+      KPP_REAL, INTENT(OUT) :: Prop(NREACT)
+      KPP_REAL :: Tsave, SCT(NREACT)
+    ! Update the stochastic reaction rates, which may be time dependent 
+      Tsave = TIME
+      TIME = T
+      CALL Update_RCONST()
+      CALL StochasticRates( RCONST, Volume, SCT )   
+      CALL Propensity ( NmlcV, NmlcF, SCT, Prop )
+      TIME = Tsave
+    END SUBROUTINE PropensityTemplate    
+    
+  END SUBROUTINE Gillespie
+
+END MODULE KPP_ROOT_Integrator
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/kpp_dvode.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/kpp_dvode.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/kpp_dvode.def	(revision 2696)
@@ -0,0 +1,14 @@
+ 
+#FUNCTION AGGREGATE
+#JACOBIAN SPARSE_LU_ROW
+
+#DOUBLE ON 
+#INTFILE kpp_dvode
+
+#INLINE F77_INIT
+        STEPMIN=0.0001
+        STEPMAX=3600.
+#ENDINLINE
+
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/kpp_dvode.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/kpp_dvode.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/kpp_dvode.f	(revision 2696)
@@ -0,0 +1,3850 @@
+      SUBROUTINE INTEGRATE( TIN, TOUT )
+
+      IMPLICIT KPP_REAL (A-H,O-Z)
+      INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Global.h'
+
+C TIN - Start Time
+      KPP_REAL TIN
+C TOUT - End Time
+      KPP_REAL TOUT
+
+      PARAMETER (LRW=2*NVAR*NVAR+9*NVAR+25,LIW=NVAR+35)
+      PARAMETER (LRCONT=4*NVAR+4+10)
+      COMMON /CONT/ICONT(4),RCONT(LRCONT)
+      COMMON/STAT/NFCN,NJAC,NSTEP,NACCPT,NREJCT,NDEC,NSOL
+      COMMON /VERWER/ IVERWER, IBEGIN, STEPCUT
+      EXTERNAL VODE_FSPLIT_VAR, VODE_Jac_SP
+
+      KPP_REAL RWORK(LRW)
+      INTEGER IWORK(LIW)
+
+      STEPCUT = 0.
+      MAXORD = 5
+      IBEGIN = 1
+      ITOL=4
+
+C ---- NORMAL COMPUTATION ---
+      ITASK=1
+      ISTATE=1
+C ---- USE OPTIONAL INPUT ---
+      IOPT=1
+      IWORK(5) = MAXORD    ! MAX ORD
+      IWORK(6) = 20000
+      IWORK(7) = 0
+      RWORK(6) = STEPMAX   ! STEP MAX
+      RWORK(7) = STEPMIN   ! STEP MIN
+      RWORK(5) = STEPMIN   ! INITIAL STEP
+
+C ----- SIGNAL FOR STIFF CASE, FULL JACOBIAN, INTERN (22) or SUPPLIED (21)
+      MF = 21
+
+      CALL DVODE (VODE_FSPLIT_VAR, NVAR, VAR, TIN, TOUT, ITOL,
+     *            RTOL, ATOL, ITASK,
+     *            ISTATE, IOPT, RWORK, LRW, IWORK, LIW,
+     *            VODE_Jac_SP, MF, RPAR, IPAR)
+
+      IF (ISTATE.LT.0) THEN
+        print *,'ATMDVODE: Unsucessfull exit at T=',
+     &          TIN,' (ISTATE=',ISTATE,')'
+      ENDIF
+
+      RETURN
+      END
+
+
+C -- This version has JAC sparse, FCN aggregate --
+
+      SUBROUTINE DVODE (F, NEQ, Y, T, TOUT, ITOL, RelTol, AbsTol, ITASK,
+     1            ISTATE, IOPT, RWORK, LRW, IWORK, LIW, JAC, MF,
+     2            RPAR, IPAR)
+
+      KPP_REAL Y, T, TOUT, RelTol, AbsTol, RWORK, RPAR
+      INTEGER NEQ, ITOL, ITASK, ISTATE, IOPT, LRW, IWORK, LIW,
+     1        MF, IPAR
+      DIMENSION Y(*), RelTol(*), AbsTol(*), RWORK(LRW), IWORK(LIW),
+     1          RPAR(*), IPAR(*)
+C-----------------------------------------------------------------------
+C DVODE.. Variable-coefficient Ordinary Differential Equation solver,
+C with fixed-leading coefficient implementation.
+C This version is in KPP_REAL.
+C
+C DVODE solves the initial value problem for stiff or nonstiff
+C systems of first order ODEs,
+C     dy/dt = f(t,y) ,  or, in component form,
+C     dy(i)/dt = f(i) = f(i,t,y(1),y(2),...,y(NEQ)) (i = 1,...,NEQ).
+C DVODE is a package based on the EPISODE and EPISODEB packages, and
+C on the ODEPACK user interface standard, with minor modifications.
+C-----------------------------------------------------------------------
+C Revision History (YYMMDD)
+C   890615  Date Written
+C   890922  Added interrupt/restart ability, minor changes throughout.
+C   910228  Minor revisions in line format,  prologue, etc.
+C   920227  Modifications by D. Pang:
+C           (1) Applied subgennam to get generic intrinsic names.
+C           (2) Changed intrinsic names to generic in comments.
+C           (3) Added *DECK lines before each routine.
+C   920721  Names of routines and labeled Common blocks changed, so as
+C           to be unique in combined single/KPP_REAL code (ACH).
+C   920722  Minor revisions to prologue (ACH).
+C   920831  Conversion to KPP_REAL done (ACH).
+C-----------------------------------------------------------------------
+C References..
+C
+C 1. P. N. Brown, G. D. Byrne, and A. C. Hindmarsh, "VODE: A Variable
+C    Coefficient ODE Solver," SIAM J. Sci. Stat. Comput., 10 (1989),
+C    pp. 1038-1051.  Also, LLNL Report UCRL-98412, June 1988.
+C 2. G. D. Byrne and A. C. Hindmarsh, "A Polyalgorithm for the
+C    Numerical Solution of Ordinary Differential Equations,"
+C    ACM Trans. Math. Software, 1 (1975), pp. 71-96.
+C 3. A. C. Hindmarsh and G. D. Byrne, "EPISODE: An Effective Package
+C    for the Integration of Systems of Ordinary Differential
+C    Equations," LLNL Report UCID-30112, Rev. 1, April 1977.
+C 4. G. D. Byrne and A. C. Hindmarsh, "EPISODEB: An Experimental
+C    Package for the Integration of Systems of Ordinary Differential
+C    Equations with Banded Jacobians," LLNL Report UCID-30132, April
+C    1976.
+C 5. A. C. Hindmarsh, "ODEPACK, a Systematized Collection of ODE
+C    Solvers," in Scientific Computing, R. S. Stepleman et al., eds.,
+C    North-Holland, Amsterdam, 1983, pp. 55-64.
+C 6. K. R. Jackson and R. Sacks-Davis, "An Alternative Implementation
+C    of Variable Step-Size Multistep Formulas for Stiff ODEs," ACM
+C    Trans. Math. Software, 6 (1980), pp. 295-318.
+C-----------------------------------------------------------------------
+C Authors..
+C
+C               Peter N. Brown and Alan C. Hindmarsh
+C               Computing and Mathematics Research Division, L-316
+C               Lawrence Livermore National Laboratory
+C               Livermore, CA 94550
+C and
+C               George D. Byrne
+C               Exxon Research and Engineering Co.
+C               Clinton Township
+C               Route 22 East
+C               Annandale, NJ 08801
+C-----------------------------------------------------------------------
+C Summary of usage.
+C
+C Communication between the user and the DVODE package, for normal
+C situations, is summarized here.  This summary describes only a subset
+C of the full set of options available.  See the full description for
+C details, including optional communication, nonstandard options,
+C and instructions for special situations.  See also the example
+C problem (with program and output) following this summary.
+C
+C A. First provide a subroutine of the form..
+C
+C           SUBROUTINE F (NEQ, T, Y, YDOT, RPAR, IPAR)
+C           KPP_REAL T, Y, YDOT, RPAR
+C           DIMENSION Y(NEQ), YDOT(NEQ)
+C
+C which supplies the vector function f by loading YDOT(i) with f(i).
+C
+C B. Next determine (or guess) whether or not the problem is stiff.
+C Stiffness occurs when the Jacobian matrix df/dy has an eigenvalue
+C whose real part is negative and large in magnitude, compared to the
+C reciprocal of the t span of interest.  If the problem is nonstiff,
+C use a method flag MF = 10.  If it is stiff, there are four standard
+C choices for MF (21, 22, 24, 25), and DVODE requires the Jacobian
+C matrix in some form.  In these cases (MF .gt. 0), DVODE will use a
+C saved copy of the Jacobian matrix.  If this is undesirable because of
+C storage limitations, set MF to the corresponding negative value
+C (-21, -22, -24, -25).  (See full description of MF below.)
+C The Jacobian matrix is regarded either as full (MF = 21 or 22),
+C or banded (MF = 24 or 25).  In the banded case, DVODE requires two
+C half-bandwidth parameters ML and MU.  These are, respectively, the
+C widths of the lower and upper parts of the band, excluding the main
+C diagonal.  Thus the band consists of the locations (i,j) with
+C i-ML .le. j .le. i+MU, and the full bandwidth is ML+MU+1.
+C
+C C. If the problem is stiff, you are encouraged to supply the Jacobian
+C directly (MF = 21 or 24), but if this is not feasible, DVODE will
+C compute it internally by difference quotients (MF = 22 or 25).
+C If you are supplying the Jacobian, provide a subroutine of the form..
+C
+C           SUBROUTINE JAC (NEQ, T, Y, ML, MU, PD, NROWPD, RPAR, IPAR)
+C           KPP_REAL T, Y, PD, RPAR
+C           DIMENSION Y(NEQ), PD(NROWPD,NEQ)
+C
+C which supplies df/dy by loading PD as follows..
+C     For a full Jacobian (MF = 21), load PD(i,j) with df(i)/dy(j),
+C the partial derivative of f(i) with respect to y(j).  (Ignore the
+C ML and MU arguments in this case.)
+C     For a banded Jacobian (MF = 24), load PD(i-j+MU+1,j) with
+C df(i)/dy(j), i.e. load the diagonal lines of df/dy into the rows of
+C PD from the top down.
+C     In either case, only nonzero elements need be loaded.
+C
+C D. Write a main program which calls subroutine DVODE once for
+C each point at which answers are desired.  This should also provide
+C for possible use of logical unit 6 for output of error messages
+C by DVODE.  On the first CALL to DVODE, supply arguments as follows..
+C F    = Name of subroutine for right-hand side vector f.
+C          This name must be declared external in calling program.
+C NEQ    = Number of first order ODE-s.
+C Y      = Array of initial values, of length NEQ.
+C T      = The initial value of the independent variable.
+C TOUT   = First point where output is desired (.ne. T).
+C ITOL   = 1 or 2 according as AbsTol (below) is a scalar or array.
+C RelTol   = Relative tolerance parameter (scalar).
+C AbsTol   = Absolute tolerance parameter (scalar or array).
+C          The estimated local error in Y(i) will be controlled so as
+C          to be roughly less (in magnitude) than
+C             EWT(i) = RelTol*abs(Y(i)) + AbsTol     if ITOL = 1, or
+C             EWT(i) = RelTol*abs(Y(i)) + AbsTol(i)  if ITOL = 2.
+C          Thus the local error test passes if, in each component,
+C          either the absolute error is less than AbsTol (or AbsTol(i)),
+C          or the relative error is less than RelTol.
+C          Use RelTol = 0.0 for pure absolute error control, and
+C          use AbsTol = 0.0 (or AbsTol(i) = 0.0) for pure relative error
+C          control.  Caution.. Actual (global) errors may exceed these
+C          local tolerances, so choose them conservatively.
+C ITASK  = 1 for normal computation of output values of Y at t = TOUT.
+C ISTATE = Integer flag (input and output).  Set ISTATE = 1.
+C IOPT   = 0 to indicate no optional input used.
+C RWORK  = Real work array of length at least..
+C             20 + 16*NEQ                      for MF = 10,
+C             22 +  9*NEQ + 2*NEQ**2           for MF = 21 or 22,
+C             22 + 11*NEQ + (3*ML + 2*MU)*NEQ  for MF = 24 or 25.
+C LRW    = Declared length of RWORK (in user's DIMENSION statement).
+C IWORK  = Integer work array of length at least..
+C             30        for MF = 10,
+C             30 + NEQ  for MF = 21, 22, 24, or 25.
+C          If MF = 24 or 25, input in IWORK(1),IWORK(2) the lower
+C          and upper half-bandwidths ML,MU.
+C LIW    = Declared length of IWORK (in user's DIMENSION).
+C JAC    = Name of subroutine for Jacobian matrix (MF = 21 or 24).
+C          If used, this name must be declared external in calling
+C          program.  If not used, pass a dummy name.
+C MF     = Method flag.  Standard values are..
+C          10 for nonstiff (Adams) method, no Jacobian used.
+C          21 for stiff (BDF) method, user-supplied full Jacobian.
+C          22 for stiff method, internally generated full Jacobian.
+C          24 for stiff method, user-supplied banded Jacobian.
+C          25 for stiff method, internally generated banded Jacobian.
+C RPAR,IPAR = user-defined real and integer arrays passed to F and JAC.
+C Note that the main program must declare arrays Y, RWORK, IWORK,
+C and possibly AbsTol, RPAR, and IPAR.
+C
+C E. The output from the first CALL (or any call) is..
+C      Y = Array of computed values of y(t) vector.
+C      T = Corresponding value of independent variable (normally TOUT).
+C ISTATE = 2  if DVODE was successful, negative otherwise.
+C          -1 means excess work done on this call. (Perhaps wrong MF.)
+C          -2 means excess accuracy requested. (Tolerances too small.)
+C          -3 means illegal input detected. (See printed message.)
+C          -4 means repeated error test failures. (Check all input.)
+C          -5 means repeated convergence failures. (Perhaps bad
+C             Jacobian supplied or wrong choice of MF or tolerances.)
+C          -6 means error weight became zero during problem. (Solution
+C             component i vanished, and AbsTol or AbsTol(i) = 0.)
+C
+C F. To continue the integration after a successful return, simply
+C reset TOUT and CALL DVODE again.  No other parameters need be reset.
+C
+C-----------------------------------------------------------------------
+C EXAMPLE PROBLEM
+C
+C The following is a simple example problem, with the coding
+C needed for its solution by DVODE.  The problem is from chemical
+C kinetics, and consists of the following three rate equations..
+C     dy1/dt = -.04*y1 + 1.e4*y2*y3
+C     dy2/dt = .04*y1 - 1.e4*y2*y3 - 3.e7*y2**2
+C     dy3/dt = 3.e7*y2**2
+C on the interval from t = 0.0 to t = 4.e10, with initial conditions
+C y1 = 1.0, y2 = y3 = 0.  The problem is stiff.
+C
+C The following coding solves this problem with DVODE, using MF = 21
+C and printing results at t = .4, 4., ..., 4.e10.  It uses
+C ITOL = 2 and AbsTol much smaller for y2 than y1 or y3 because
+C y2 has much smaller values.
+C At the end of the run, statistical quantities of interest are
+C printed. (See optional output in the full description below.)
+C To generate Fortran source code, replace C in column 1 with a blank
+C in the coding below.
+C
+C     EXTERNAL FEX, JEX
+C     KPP_REAL AbsTol, RPAR, RelTol, RWORK, T, TOUT, Y
+C     DIMENSION Y(3), AbsTol(3), RWORK(67), IWORK(33)
+C     NEQ = 3
+C     Y(1) = 1.0D0
+C     Y(2) = 0.0D0
+C     Y(3) = 0.0D0
+C     T = 0.0D0
+C     TOUT = 0.4D0
+C     ITOL = 2
+C     RelTol = 1.D-4
+C     AbsTol(1) = 1.D-8
+C     AbsTol(2) = 1.D-14
+C     AbsTol(3) = 1.D-6
+C     ITASK = 1
+C     ISTATE = 1
+C     IOPT = 0
+C     LRW = 67
+C     LIW = 33
+C     MF = 21
+C     DO 40 IOUT = 1,12
+C       CALL DVODE(FEX,NEQ,Y,T,TOUT,ITOL,RelTol,AbsTol,ITASK,ISTATE,
+C    1            IOPT,RWORK,LRW,IWORK,LIW,JEX,MF,RPAR,IPAR)
+C       WRITE(6,20)T,Y(1),Y(2),Y(3)
+C 20    FORMAT(' At t =',D12.4,'   y =',3D14.6)
+C       IF (ISTATE .LT. 0) GO TO 80
+C 40    TOUT = TOUT*10.
+C     WRITE(6,60) IWORK(11),IWORK(12),IWORK(13),IWORK(19),
+C    1            IWORK(20),IWORK(21),IWORK(22)
+C 60  FORMAT(/' No. steps =',I4,'   No. f-s =',I4,
+C    1       '   No. J-s =',I4,'   No. LU-s =',I4/
+C    2       '  No. nonlinear iterations =',I4/
+C    3       '  No. nonlinear convergence failures =',I4/
+C    4       '  No. error test failures =',I4/)
+C     STOP
+C 80  WRITE(6,90)ISTATE
+C 90  FORMAT(///' Error halt.. ISTATE =',I3)
+C     STOP
+C     END
+C
+C     SUBROUTINE FEX (NEQ, T, Y, YDOT, RPAR, IPAR)
+C     KPP_REAL RPAR, T, Y, YDOT
+C     DIMENSION Y(NEQ), YDOT(NEQ)
+C     YDOT(1) = -.04D0*Y(1) + 1.D4*Y(2)*Y(3)
+C     YDOT(3) = 3.D7*Y(2)*Y(2)
+C     YDOT(2) = -YDOT(1) - YDOT(3)
+C     RETURN
+C     END
+C
+C     SUBROUTINE JEX (NEQ, T, Y, ML, MU, PD, NRPD, RPAR, IPAR)
+C     KPP_REAL PD, RPAR, T, Y
+C     DIMENSION Y(NEQ), PD(NRPD,NEQ)
+C     PD(1,1) = -.04D0
+C     PD(1,2) = 1.D4*Y(3)
+C     PD(1,3) = 1.D4*Y(2)
+C     PD(2,1) = .04D0
+C     PD(2,3) = -PD(1,3)
+C     PD(3,2) = 6.D7*Y(2)
+C     PD(2,2) = -PD(1,2) - PD(3,2)
+C     RETURN
+C     END
+C
+C The following output was obtained from the above program on a
+C Cray-1 computer with the CFT compiler.
+C
+C At t =  4.0000e-01   y =  9.851680e-01  3.386314e-05  1.479817e-02
+C At t =  4.0000e+00   y =  9.055255e-01  2.240539e-05  9.445214e-02
+C At t =  4.0000e+01   y =  7.158108e-01  9.184883e-06  2.841800e-01
+C At t =  4.0000e+02   y =  4.505032e-01  3.222940e-06  5.494936e-01
+C At t =  4.0000e+03   y =  1.832053e-01  8.942690e-07  8.167938e-01
+C At t =  4.0000e+04   y =  3.898560e-02  1.621875e-07  9.610142e-01
+C At t =  4.0000e+05   y =  4.935882e-03  1.984013e-08  9.950641e-01
+C At t =  4.0000e+06   y =  5.166183e-04  2.067528e-09  9.994834e-01
+C At t =  4.0000e+07   y =  5.201214e-05  2.080593e-10  9.999480e-01
+C At t =  4.0000e+08   y =  5.213149e-06  2.085271e-11  9.999948e-01
+C At t =  4.0000e+09   y =  5.183495e-07  2.073399e-12  9.999995e-01
+C At t =  4.0000e+10   y =  5.450996e-08  2.180399e-13  9.999999e-01
+C
+C No. steps = 595   No. f-s = 832   No. J-s =  13   No. LU-s = 112
+C  No. nonlinear iterations = 831
+C  No. nonlinear convergence failures =   0
+C  No. error test failures =  22
+C-----------------------------------------------------------------------
+C Full description of user interface to DVODE.
+C
+C The user interface to DVODE consists of the following parts.
+C
+C i.   The CALL sequence to subroutine DVODE, which is a driver
+C      routine for the solver.  This includes descriptions of both
+C      the CALL sequence arguments and of user-supplied routines.
+C      Following these descriptions is
+C        * a description of optional input available through the
+C          CALL sequence,
+C        * a description of optional output (in the work arrays), and
+C        * instructions for interrupting and restarting a solution.
+C
+C ii.  Descriptions of other routines in the DVODE package that may be
+C      (optionally) called by the user.  These provide the ability to
+C      alter error message handling, save and restore the internal
+C      COMMON, and obtain specified derivatives of the solution y(t).
+C
+C iii. Descriptions of COMMON blocks to be declared in overlay
+C      or similar environments.
+C
+C iv.  Description of two routines in the DVODE package, either of
+C      which the user may replace with his own version, if desired.
+C      these relate to the measurement of errors.
+C
+C-----------------------------------------------------------------------
+C Part i.  Call Sequence.
+C
+C The CALL sequence parameters used for input only are
+C     F, NEQ, TOUT, ITOL, RelTol, AbsTol, ITASK, IOPT, LRW, LIW, JAC, MF,
+C and those used for both input and output are
+C     Y, T, ISTATE.
+C The work arrays RWORK and IWORK are also used for conditional and
+C optional input and optional output.  (The term output here refers
+C to the return from subroutine DVODE to the user's calling program.)
+C
+C The legality of input parameters will be thoroughly checked on the
+C initial CALL for the problem, but not checked thereafter unless a
+C change in input parameters is flagged by ISTATE = 3 in the input.
+C
+C The descriptions of the CALL arguments are as follows.
+C
+C F    = The name of the user-supplied subroutine defining the
+C          ODE system.  The system must be put in the first-order
+C          form dy/dt = f(t,y), where f is a vector-valued function
+C          of the scalar t and the vector y.  Subroutine F is to
+C          compute the function f.  It is to have the form
+C               SUBROUTINE F (NEQ, T, Y, YDOT, RPAR, IPAR)
+C               KPP_REAL T, Y, YDOT, RPAR
+C               DIMENSION Y(NEQ), YDOT(NEQ)
+C          where NEQ, T, and Y are input, and the array YDOT = f(t,y)
+C          is output.  Y and YDOT are arrays of length NEQ.
+C          (In the DIMENSION statement above, NEQ  can be replaced by
+C          *  to make  Y  and  YDOT  assumed size arrays.)
+C          Subroutine F should not alter Y(1),...,Y(NEQ).
+C          F must be declared EXTERNAL in the calling program.
+C
+C          Subroutine F may access user-defined real and integer
+C          work arrays RPAR and IPAR, which are to be dimensioned
+C          in the main program.
+C
+C          If quantities computed in the F routine are needed
+C          externally to DVODE, an extra CALL to F should be made
+C          for this purpose, for consistent and accurate results.
+C          If only the derivative dy/dt is needed, use DVINDY instead.
+C
+C NEQ    = The size of the ODE system (number of first order
+C          ordinary differential equations).  Used only for input.
+C          NEQ may not be increased during the problem, but
+C          can be decreased (with ISTATE = 3 in the input).
+C
+C Y      = A real array for the vector of dependent variables, of
+C          length NEQ or more.  Used for both input and output on the
+C          first CALL (ISTATE = 1), and only for output on other calls.
+C          On the first call, Y must contain the vector of initial
+C          values.  In the output, Y contains the computed solution
+C          evaluated at T.  If desired, the Y array may be used
+C          for other purposes between calls to the solver.
+C
+C          This array is passed as the Y argument in all calls to
+C          F and JAC.
+C
+C T      = The independent variable.  In the input, T is used only on
+C          the first call, as the initial point of the integration.
+C          In the output, after each call, T is the value at which a
+C          computed solution Y is evaluated (usually the same as TOUT).
+C          On an error return, T is the farthest point reached.
+C
+C TOUT   = The next value of t at which a computed solution is desired.
+C          Used only for input.
+C
+C          When starting the problem (ISTATE = 1), TOUT may be equal
+C          to T for one call, then should .ne. T for the next call.
+C          For the initial T, an input value of TOUT .ne. T is used
+C          in order to determine the direction of the integration
+C          (i.e. the algebraic sign of the step sizes) and the rough
+C          scale of the problem.  Integration in either direction
+C          (forward or backward in t) is permitted.
+C
+C          If ITASK = 2 or 5 (one-step modes), TOUT is ignored after
+C          the first CALL (i.e. the first CALL with TOUT .ne. T).
+C          Otherwise, TOUT is required on every call.
+C
+C          If ITASK = 1, 3, or 4, the values of TOUT need not be
+C          monotone, but a value of TOUT which backs up is limited
+C          to the current internal t interval, whose endpoints are
+C          TCUR - HU and TCUR.  (See optional output, below, for
+C          TCUR and HU.)
+C
+C ITOL   = An indicator for the type of error control.  See
+C          description below under AbsTol.  Used only for input.
+C
+C RelTol   = A relative error tolerance parameter, either a scalar or
+C          an array of length NEQ.  See description below under AbsTol.
+C          Input only.
+C
+C AbsTol   = An absolute error tolerance parameter, either a scalar or
+C          an array of length NEQ.  Input only.
+C
+C          The input parameters ITOL, RelTol, and AbsTol determine
+C          the error control performed by the solver.  The solver will
+C          control the vector e = (e(i)) of estimated local errors
+C          in Y, according to an inequality of the form
+C                      rms-norm of ( e(i)/EWT(i) )   .le.   1,
+C          where       EWT(i) = RelTol(i)*abs(Y(i)) + AbsTol(i),
+C          and the rms-norm (root-mean-square norm) here is
+C          rms-norm(v) = sqrt(sum v(i)**2 / NEQ).  Here EWT = (EWT(i))
+C          is a vector of weights which must always be positive, and
+C          the values of RelTol and AbsTol should all be non-negative.
+C          The following table gives the types (scalar/array) of
+C          RelTol and AbsTol, and the corresponding form of EWT(i).
+C
+C             ITOL    RelTol       AbsTol          EWT(i)
+C              1     scalar     scalar     RelTol*ABS(Y(i)) + AbsTol
+C              2     scalar     array      RelTol*ABS(Y(i)) + AbsTol(i)
+C              3     array      scalar     RelTol(i)*ABS(Y(i)) + AbsTol
+C              4     array      array      RelTol(i)*ABS(Y(i)) + AbsTol(i)
+C
+C          When either of these parameters is a scalar, it need not
+C          be dimensioned in the user's calling program.
+C
+C          If none of the above choices (with ITOL, RelTol, and AbsTol
+C          fixed throughout the problem) is suitable, more general
+C          error controls can be obtained by substituting
+C          user-supplied routines for the setting of EWT and/or for
+C          the norm calculation.  See Part iv below.
+C
+C          If global errors are to be estimated by making a repeated
+C          run on the same problem with smaller tolerances, then all
+C          components of RelTol and AbsTol (i.e. of EWT) should be scaled
+C          down uniformly.
+C
+C ITASK  = An index specifying the task to be performed.
+C          Input only.  ITASK has the following values and meanings.
+C          1  means normal computation of output values of y(t) at
+C             t = TOUT (by overshooting and interpolating).
+C          2  means take one step only and return.
+C          3  means stop at the first internal mesh point at or
+C             beyond t = TOUT and return.
+C          4  means normal computation of output values of y(t) at
+C             t = TOUT but without overshooting t = TCRIT.
+C             TCRIT must be input as RWORK(1).  TCRIT may be equal to
+C             or beyond TOUT, but not behind it in the direction of
+C             integration.  This option is useful if the problem
+C             has a singularity at or beyond t = TCRIT.
+C          5  means take one step, without passing TCRIT, and return.
+C             TCRIT must be input as RWORK(1).
+C
+C          Note..  If ITASK = 4 or 5 and the solver reaches TCRIT
+C          (within roundoff), it will return T = TCRIT (exactly) to
+C          indicate this (unless ITASK = 4 and TOUT comes before TCRIT,
+C          in which case answers at T = TOUT are returned first).
+C
+C ISTATE = an index used for input and output to specify the
+C          the state of the calculation.
+C
+C          In the input, the values of ISTATE are as follows.
+C          1  means this is the first CALL for the problem
+C             (initializations will be done).  See note below.
+C          2  means this is not the first call, and the calculation
+C             is to continue normally, with no change in any input
+C             parameters except possibly TOUT and ITASK.
+C             (If ITOL, RelTol, and/or AbsTol are changed between calls
+C             with ISTATE = 2, the new values will be used but not
+C             tested for legality.)
+C          3  means this is not the first call, and the
+C             calculation is to continue normally, but with
+C             a change in input parameters other than
+C             TOUT and ITASK.  Changes are allowed in
+C             NEQ, ITOL, RelTol, AbsTol, IOPT, LRW, LIW, MF, ML, MU,
+C             and any of the optional input except H0.
+C             (See IWORK description for ML and MU.)
+C          Note..  A preliminary CALL with TOUT = T is not counted
+C          as a first CALL here, as no initialization or checking of
+C          input is done.  (Such a CALL is sometimes useful to include
+C          the initial conditions in the output.)
+C          Thus the first CALL for which TOUT .ne. T requires
+C          ISTATE = 1 in the input.
+C
+C          In the output, ISTATE has the following values and meanings.
+C           1  means nothing was done, as TOUT was equal to T with
+C              ISTATE = 1 in the input.
+C           2  means the integration was performed successfully.
+C          -1  means an excessive amount of work (more than MXSTEP
+C              steps) was done on this call, before completing the
+C              requested task, but the integration was otherwise
+C              successful as far as T.  (MXSTEP is an optional input
+C              and is normally 500.)  To continue, the user may
+C              simply reset ISTATE to a value .gt. 1 and CALL again.
+C              (The excess work step counter will be reset to 0.)
+C              In addition, the user may increase MXSTEP to avoid
+C              this error return.  (See optional input below.)
+C          -2  means too much accuracy was requested for the precision
+C              of the machine being used.  This was detected before
+C              completing the requested task, but the integration
+C              was successful as far as T.  To continue, the tolerance
+C              parameters must be reset, and ISTATE must be set
+C              to 3.  The optional output TOLSF may be used for this
+C              purpose.  (Note.. If this condition is detected before
+C              taking any steps, then an illegal input return
+C              (ISTATE = -3) occurs instead.)
+C          -3  means illegal input was detected, before taking any
+C              integration steps.  See written message for details.
+C              Note..  If the solver detects an infinite loop of calls
+C              to the solver with illegal input, it will cause
+C              the run to stop.
+C          -4  means there were repeated error test failures on
+C              one attempted step, before completing the requested
+C              task, but the integration was successful as far as T.
+C              The problem may have a singularity, or the input
+C              may be inappropriate.
+C          -5  means there were repeated convergence test failures on
+C              one attempted step, before completing the requested
+C              task, but the integration was successful as far as T.
+C              This may be caused by an inaccurate Jacobian matrix,
+C              if one is being used.
+C          -6  means EWT(i) became zero for some i during the
+C              integration.  Pure relative error control (AbsTol(i)=0.0)
+C              was requested on a variable which has now vanished.
+C              The integration was successful as far as T.
+C
+C          Note..  Since the normal output value of ISTATE is 2,
+C          it does not need to be reset for normal continuation.
+C          Also, since a negative input value of ISTATE will be
+C          regarded as illegal, a negative output value requires the
+C          user to change it, and possibly other input, before
+C          calling the solver again.
+C
+C IOPT   = An integer flag to specify whether or not any optional
+C          input is being used on this call.  Input only.
+C          The optional input is listed separately below.
+C          IOPT = 0 means no optional input is being used.
+C                   Default values will be used in all cases.
+C          IOPT = 1 means optional input is being used.
+C
+C RWORK  = A real working array (KPP_REAL).
+C          The length of RWORK must be at least
+C             20 + NYH*(MAXORD + 1) + 3*NEQ + LWM    where
+C          NYH    = the initial value of NEQ,
+C          MAXORD = 12 (if METH = 1) or 5 (if METH = 2) (unless a
+C                   smaller value is given as an optional input),
+C          LWM = length of work space for matrix-related data..
+C          LWM = 0             if MITER = 0,
+C          LWM = 2*NEQ**2 + 2  if MITER = 1 or 2, and MF.gt.0,
+C          LWM = NEQ**2 + 2    if MITER = 1 or 2, and MF.lt.0,
+C          LWM = NEQ + 2       if MITER = 3,
+C          LWM = (3*ML+2*MU+2)*NEQ + 2 if MITER = 4 or 5, and MF.gt.0,
+C          LWM = (2*ML+MU+1)*NEQ + 2   if MITER = 4 or 5, and MF.lt.0.
+C          (See the MF description for METH and MITER.)
+C          Thus if MAXORD has its default value and NEQ is constant,
+C          this length is..
+C             20 + 16*NEQ                    for MF = 10,
+C             22 + 16*NEQ + 2*NEQ**2         for MF = 11 or 12,
+C             22 + 16*NEQ + NEQ**2           for MF = -11 or -12,
+C             22 + 17*NEQ                    for MF = 13,
+C             22 + 18*NEQ + (3*ML+2*MU)*NEQ  for MF = 14 or 15,
+C             22 + 17*NEQ + (2*ML+MU)*NEQ    for MF = -14 or -15,
+C             20 +  9*NEQ                    for MF = 20,
+C             22 +  9*NEQ + 2*NEQ**2         for MF = 21 or 22,
+C             22 +  9*NEQ + NEQ**2           for MF = -21 or -22,
+C             22 + 10*NEQ                    for MF = 23,
+C             22 + 11*NEQ + (3*ML+2*MU)*NEQ  for MF = 24 or 25.
+C             22 + 10*NEQ + (2*ML+MU)*NEQ    for MF = -24 or -25.
+C          The first 20 words of RWORK are reserved for conditional
+C          and optional input and optional output.
+C
+C          The following word in RWORK is a conditional input..
+C            RWORK(1) = TCRIT = critical value of t which the solver
+C                       is not to overshoot.  Required if ITASK is
+C                       4 or 5, and ignored otherwise.  (See ITASK.)
+C
+C LRW    = The length of the array RWORK, as declared by the user.
+C          (This will be checked by the solver.)
+C
+C IWORK  = An integer work array.  The length of IWORK must be at least
+C             30        if MITER = 0 or 3 (MF = 10, 13, 20, 23), or
+C             30 + NEQ  otherwise (abs(MF) = 11,12,14,15,21,22,24,25).
+C          The first 30 words of IWORK are reserved for conditional and
+C          optional input and optional output.
+C
+C          The following 2 words in IWORK are conditional input..
+C            IWORK(1) = ML     These are the lower and upper
+C            IWORK(2) = MU     half-bandwidths, respectively, of the
+C                       banded Jacobian, excluding the main diagonal.
+C                       The band is defined by the matrix locations
+C                       (i,j) with i-ML .le. j .le. i+MU.  ML and MU
+C                       must satisfy  0 .le.  ML,MU  .le. NEQ-1.
+C                       These are required if MITER is 4 or 5, and
+C                       ignored otherwise.  ML and MU may in fact be
+C                       the band parameters for a matrix to which
+C                       df/dy is only approximately equal.
+C
+C LIW    = the length of the array IWORK, as declared by the user.
+C          (This will be checked by the solver.)
+C
+C Note..  The work arrays must not be altered between calls to DVODE
+C for the same problem, except possibly for the conditional and
+C optional input, and except for the last 3*NEQ words of RWORK.
+C The latter space is used for internal scratch space, and so is
+C available for use by the user outside DVODE between calls, if
+C desired (but not for use by F or JAC).
+C
+C JAC    = The name of the user-supplied routine (MITER = 1 or 4) to
+C          compute the Jacobian matrix, df/dy, as a function of
+C          the scalar t and the vector y.  It is to have the form
+C               SUBROUTINE JAC (NEQ, T, Y, ML, MU, PD, NROWPD,
+C                               RPAR, IPAR)
+C               KPP_REAL T, Y, PD, RPAR
+C               DIMENSION Y(NEQ), PD(NROWPD, NEQ)
+C          where NEQ, T, Y, ML, MU, and NROWPD are input and the array
+C          PD is to be loaded with partial derivatives (elements of the
+C          Jacobian matrix) in the output.  PD must be given a first
+C          dimension of NROWPD.  T and Y have the same meaning as in
+C          Subroutine F.  (In the DIMENSION statement above, NEQ can
+C          be replaced by  *  to make Y and PD assumed size arrays.)
+C               In the full matrix case (MITER = 1), ML and MU are
+C          ignored, and the Jacobian is to be loaded into PD in
+C          columnwise manner, with df(i)/dy(j) loaded into PD(i,j).
+C               In the band matrix case (MITER = 4), the elements
+C          within the band are to be loaded into PD in columnwise
+C          manner, with diagonal lines of df/dy loaded into the rows
+C          of PD. Thus df(i)/dy(j) is to be loaded into PD(i-j+MU+1,j).
+C          ML and MU are the half-bandwidth parameters. (See IWORK).
+C          The locations in PD in the two triangular areas which
+C          correspond to nonexistent matrix elements can be ignored
+C          or loaded arbitrarily, as they are overwritten by DVODE.
+C               JAC need not provide df/dy exactly.  A crude
+C          approximation (possibly with a smaller bandwidth) will do.
+C               In either case, PD is preset to zero by the solver,
+C          so that only the nonzero elements need be loaded by JAC.
+C          Each CALL to JAC is preceded by a CALL to F with the same
+C          arguments NEQ, T, and Y.  Thus to gain some efficiency,
+C          intermediate quantities shared by both calculations may be
+C          saved in a user COMMON block by F and not recomputed by JAC,
+C          if desired.  Also, JAC may alter the Y array, if desired.
+C          JAC must be declared external in the calling program.
+C               Subroutine JAC may access user-defined real and integer
+C          work arrays, RPAR and IPAR, whose dimensions are set by the
+C          user in the main program.
+C
+C MF     = The method flag.  Used only for input.  The legal values of
+C          MF are 10, 11, 12, 13, 14, 15, 20, 21, 22, 23, 24, 25,
+C          -11, -12, -14, -15, -21, -22, -24, -25.
+C          MF is a signed two-digit integer, MF = JSV*(10*METH + MITER).
+C          JSV = SIGN(MF) indicates the Jacobian-saving strategy..
+C            JSV =  1 means a copy of the Jacobian is saved for reuse
+C                     in the corrector iteration algorithm.
+C            JSV = -1 means a copy of the Jacobian is not saved
+C                     (valid only for MITER = 1, 2, 4, or 5).
+C          METH indicates the basic linear multistep method..
+C            METH = 1 means the implicit Adams method.
+C            METH = 2 means the method based on backward
+C                     differentiation formulas (BDF-s).
+C          MITER indicates the corrector iteration method..
+C            MITER = 0 means functional iteration (no Jacobian matrix
+C                      is involved).
+C            MITER = 1 means chord iteration with a user-supplied
+C                      full (NEQ by NEQ) Jacobian.
+C            MITER = 2 means chord iteration with an internally
+C                      generated (difference quotient) full Jacobian
+C                      (using NEQ extra calls to F per df/dy value).
+C            MITER = 3 means chord iteration with an internally
+C                      generated diagonal Jacobian approximation
+C                      (using 1 extra CALL to F per df/dy evaluation).
+C            MITER = 4 means chord iteration with a user-supplied
+C                      banded Jacobian.
+C            MITER = 5 means chord iteration with an internally
+C                      generated banded Jacobian (using ML+MU+1 extra
+C                      calls to F per df/dy evaluation).
+C          If MITER = 1 or 4, the user must supply a subroutine JAC
+C          (the name is arbitrary) as described above under JAC.
+C          For other values of MITER, a dummy argument can be used.
+C
+C RPAR     User-specified array used to communicate real parameters
+C          to user-supplied subroutines.  If RPAR is a vector, then
+C          it must be dimensioned in the user's main program.  If it
+C          is unused or it is a scalar, then it need not be
+C          dimensioned.
+C
+C IPAR     User-specified array used to communicate integer parameter
+C          to user-supplied subroutines.  The comments on dimensioning
+C          RPAR apply to IPAR.
+C-----------------------------------------------------------------------
+C Optional Input.
+C
+C The following is a list of the optional input provided for in the
+C CALL sequence.  (See also Part ii.)  For each such input variable,
+C this table lists its name as used in this documentation, its
+C location in the CALL sequence, its meaning, and the default value.
+C The use of any of this input requires IOPT = 1, and in that
+C case all of this input is examined.  A value of zero for any
+C of these optional input variables will cause the default value to be
+C used.  Thus to use a subset of the optional input, simply preload
+C locations 5 to 10 in RWORK and IWORK to 0.0 and 0 respectively, and
+C then set those of interest to nonzero values.
+C
+C NAME    LOCATION      MEANING AND DEFAULT VALUE
+C
+C H0      RWORK(5)  The step size to be attempted on the first step.
+C                   The default value is determined by the solver.
+C
+C HMAX    RWORK(6)  The maximum absolute step size allowed.
+C                   The default value is infinite.
+C
+C HMIN    RWORK(7)  The minimum absolute step size allowed.
+C                   The default value is 0.  (This lower bound is not
+C                   enforced on the final step before reaching TCRIT
+C                   when ITASK = 4 or 5.)
+C
+C MAXORD  IWORK(5)  The maximum order to be allowed.  The default
+C                   value is 12 if METH = 1, and 5 if METH = 2.
+C                   If MAXORD exceeds the default value, it will
+C                   be reduced to the default value.
+C                   If MAXORD is changed during the problem, it may
+C                   cause the current order to be reduced.
+C
+C MXSTEP  IWORK(6)  Maximum number of (internally defined) steps
+C                   allowed during one CALL to the solver.
+C                   The default value is 500.
+C
+C MXHNIL  IWORK(7)  Maximum number of messages printed (per problem)
+C                   warning that T + H = T on a step (H = step size).
+C                   This must be positive to result in a non-default
+C                   value.  The default value is 10.
+C
+C-----------------------------------------------------------------------
+C Optional Output.
+C
+C As optional additional output from DVODE, the variables listed
+C below are quantities related to the performance of DVODE
+C which are available to the user.  These are communicated by way of
+C the work arrays, but also have internal mnemonic names as shown.
+C Except where stated otherwise, all of this output is defined
+C on any successful return from DVODE, and on any return with
+C ISTATE = -1, -2, -4, -5, or -6.  On an illegal input return
+C (ISTATE = -3), they will be unchanged from their existing values
+C (if any), except possibly for TOLSF, LENRW, and LENIW.
+C On any error return, output relevant to the error will be defined,
+C as noted below.
+C
+C NAME    LOCATION      MEANING
+C
+C HU      RWORK(11) The step size in t last used (successfully).
+C
+C HCUR    RWORK(12) The step size to be attempted on the next step.
+C
+C TCUR    RWORK(13) The current value of the independent variable
+C                   which the solver has actually reached, i.e. the
+C                   current internal mesh point in t.  In the output,
+C                   TCUR will always be at least as far from the
+C                   initial value of t as the current argument T,
+C                   but may be farther (if interpolation was done).
+C
+C TOLSF   RWORK(14) A tolerance scale factor, greater than 1.0,
+C                   computed when a request for too much accuracy was
+C                   detected (ISTATE = -3 if detected at the start of
+C                   the problem, ISTATE = -2 otherwise).  If ITOL is
+C                   left unaltered but RelTol and AbsTol are uniformly
+C                   scaled up by a factor of TOLSF for the next call,
+C                   then the solver is deemed likely to succeed.
+C                   (The user may also ignore TOLSF and alter the
+C                   tolerance parameters in any other way appropriate.)
+C
+C NST     IWORK(11) The number of steps taken for the problem so far.
+C
+C NFE     IWORK(12) The number of f evaluations for the problem so far.
+C
+C NJE     IWORK(13) The number of Jacobian evaluations so far.
+C
+C NQU     IWORK(14) The method order last used (successfully).
+C
+C NQCUR   IWORK(15) The order to be attempted on the next step.
+C
+C IMXER   IWORK(16) The index of the component of largest magnitude in
+C                   the weighted local error vector ( e(i)/EWT(i) ),
+C                   on an error return with ISTATE = -4 or -5.
+C
+C LENRW   IWORK(17) The length of RWORK actually required.
+C                   This is defined on normal returns and on an illegal
+C                   input return for insufficient storage.
+C
+C LENIW   IWORK(18) The length of IWORK actually required.
+C                   This is defined on normal returns and on an illegal
+C                   input return for insufficient storage.
+C
+C NLU     IWORK(19) The number of matrix LU decompositions so far.
+C
+C NNI     IWORK(20) The number of nonlinear (Newton) iterations so far.
+C
+C NCFN    IWORK(21) The number of convergence failures of the nonlinear
+C                   solver so far.
+C
+C NETF    IWORK(22) The number of error test failures of the integrator
+C                   so far.
+C
+C The following two arrays are segments of the RWORK array which
+C may also be of interest to the user as optional output.
+C For each array, the table below gives its internal name,
+C its base address in RWORK, and its description.
+C
+C NAME    BASE ADDRESS      DESCRIPTION
+C
+C YH      21             The Nordsieck history array, of size NYH by
+C                        (NQCUR + 1), where NYH is the initial value
+C                        of NEQ.  For j = 0,1,...,NQCUR, column j+1
+C                        of YH contains HCUR**j/factorial(j) times
+C                        the j-th derivative of the interpolating
+C                        polynomial currently representing the
+C                        solution, evaluated at t = TCUR.
+C
+C ACOR     LENRW-NEQ+1   Array of size NEQ used for the accumulated
+C                        corrections on each step, scaled in the output
+C                        to represent the estimated local error in Y
+C                        on the last step.  This is the vector e in
+C                        the description of the error control.  It is
+C                        defined only on a successful return from DVODE.
+C
+C-----------------------------------------------------------------------
+C Interrupting and Restarting
+C
+C If the integration of a given problem by DVODE is to be
+C interrupted and then later continued, such as when restarting
+C an interrupted run or alternating between two or more ODE problems,
+C the user should save, following the return from the last DVODE call
+C prior to the interruption, the contents of the CALL sequence
+C variables and internal COMMON blocks, and later restore these
+C values before the next DVODE CALL for that problem.  To save
+C and restore the COMMON blocks, use subroutine DVSRCO, as
+C described below in part ii.
+C
+C In addition, if non-default values for either LUN or MFLAG are
+C desired, an extra CALL to XSETUN and/or XSETF should be made just
+C before continuing the integration.  See Part ii below for details.
+C
+C-----------------------------------------------------------------------
+C Part ii.  Other Routines Callable.
+C
+C The following are optional calls which the user may make to
+C gain additional capabilities in conjunction with DVODE.
+C (The routines XSETUN and XSETF are designed to conform to the
+C SLATEC error handling package.)
+C
+C     FORM OF CALL                  FUNCTION
+C  CALL XSETUN(LUN)           Set the logical unit number, LUN, for
+C                             output of messages from DVODE, if
+C                             the default is not desired.
+C                             The default value of LUN is 6.
+C
+C  CALL XSETF(MFLAG)          Set a flag to control the printing of
+C                             messages by DVODE.
+C                             MFLAG = 0 means do not print. (Danger..
+C                             This risks losing valuable information.)
+C                             MFLAG = 1 means print (the default).
+C
+C                             Either of the above calls may be made at
+C                             any time and will take effect immediately.
+C
+C  CALL DVSRCO(RSAV,ISAV,JOB) Saves and restores the contents of
+C                             the internal COMMON blocks used by
+C                             DVODE. (See Part iii below.)
+C                             RSAV must be a real array of length 49
+C                             or more, and ISAV must be an integer
+C                             array of length 40 or more.
+C                             JOB=1 means save COMMON into RSAV/ISAV.
+C                             JOB=2 means restore COMMON from RSAV/ISAV.
+C                                DVSRCO is useful if one is
+C                             interrupting a run and restarting
+C                             later, or alternating between two or
+C                             more problems solved with DVODE.
+C
+C  CALL DVINDY(,,,,,)         Provide derivatives of y, of various
+C        (See below.)         orders, at a specified point T, if
+C                             desired.  It may be called only after
+C                             a successful return from DVODE.
+C
+C The detailed instructions for using DVINDY are as follows.
+C The form of the CALL is..
+C
+C  CALL DVINDY (T, K, RWORK(21), NYH, DKY, IFLAG)
+C
+C The input parameters are..
+C
+C T         = Value of independent variable where answers are desired
+C             (normally the same as the T last returned by DVODE).
+C             For valid results, T must lie between TCUR - HU and TCUR.
+C             (See optional output for TCUR and HU.)
+C K         = Integer order of the derivative desired.  K must satisfy
+C             0 .le. K .le. NQCUR, where NQCUR is the current order
+C             (see optional output).  The capability corresponding
+C             to K = 0, i.e. computing y(T), is already provided
+C             by DVODE directly.  Since NQCUR .ge. 1, the first
+C             derivative dy/dt is always available with DVINDY.
+C RWORK(21) = The base address of the history array YH.
+C NYH       = Column length of YH, equal to the initial value of NEQ.
+C
+C The output parameters are..
+C
+C DKY       = A real array of length NEQ containing the computed value
+C             of the K-th derivative of y(t).
+C IFLAG     = Integer flag, returned as 0 if K and T were legal,
+C             -1 if K was illegal, and -2 if T was illegal.
+C             On an error return, a message is also written.
+C-----------------------------------------------------------------------
+C Part iii.  COMMON Blocks.
+C If DVODE is to be used in an overlay situation, the user
+C must declare, in the primary overlay, the variables in..
+C   (1) the CALL sequence to DVODE,
+C   (2) the two internal COMMON blocks
+C         /DVOD01/  of length  81  (48 KPP_REAL words
+C                         followed by 33 integer words),
+C         /DVOD02/  of length  9  (1 KPP_REAL word
+C                         followed by 8 integer words),
+C
+C If DVODE is used on a system in which the contents of internal
+C COMMON blocks are not preserved between calls, the user should
+C declare the above two COMMON blocks in his main program to insure
+C that their contents are preserved.
+C
+C-----------------------------------------------------------------------
+C Part iv.  Optionally Replaceable Solver Routines.
+C
+C Below are descriptions of two routines in the DVODE package which
+C relate to the measurement of errors.  Either routine can be
+C replaced by a user-supplied version, if desired.  However, since such
+C a replacement may have a major impact on performance, it should be
+C done only when absolutely necessary, and only with great caution.
+C (Note.. The means by which the package version of a routine is
+C superseded by the user's version may be system-dependent.)
+C
+C (a) DEWSET.
+C The following subroutine is called just before each internal
+C integration step, and sets the array of error weights, EWT, as
+C described under ITOL/RelTol/AbsTol above..
+C     SUBROUTINE DEWSET (NEQ, ITOL, RelTol, AbsTol, YCUR, EWT)
+C where NEQ, ITOL, RelTol, and AbsTol are as in the DVODE CALL sequence,
+C YCUR contains the current dependent variable vector, and
+C EWT is the array of weights set by DEWSET.
+C
+C If the user supplies this subroutine, it must return in EWT(i)
+C (i = 1,...,NEQ) a positive quantity suitable for comparison with
+C errors in Y(i).  The EWT array returned by DEWSET is passed to the
+C DVNORM routine (See below.), and also used by DVODE in the computation
+C of the optional output IMXER, the diagonal Jacobian approximation,
+C and the increments for difference quotient Jacobians.
+C
+C In the user-supplied version of DEWSET, it may be desirable to use
+C the current values of derivatives of y.  Derivatives up to order NQ
+C are available from the history array YH, described above under
+C Optional Output.  In DEWSET, YH is identical to the YCUR array,
+C extended to NQ + 1 columns with a column length of NYH and scale
+C factors of h**j/factorial(j).  On the first CALL for the problem,
+C given by NST = 0, NQ is 1 and H is temporarily set to 1.0.
+C NYH is the initial value of NEQ.  The quantities NQ, H, and NST
+C can be obtained by including in DEWSET the statements..
+C     KPP_REAL RVOD, H, HU
+C     COMMON /DVOD01/ RVOD(48), IVOD(33)
+C     COMMON /DVOD02/ HU, NCFN, NETF, NFE, NJE, NLU, NNI, NQU, NST
+C     NQ = IVOD(28)
+C     H = RVOD(21)
+C Thus, for example, the current value of dy/dt can be obtained as
+C YCUR(NYH+i)/H  (i=1,...,NEQ)  (and the division by H is
+C unnecessary when NST = 0).
+C
+C (b) DVNORM.
+C The following is a real function routine which computes the weighted
+C root-mean-square norm of a vector v..
+C     D = DVNORM (N, V, W)
+C where..
+C   N = the length of the vector,
+C   V = real array of length N containing the vector,
+C   W = real array of length N containing weights,
+C   D = sqrt( (1/N) * sum(V(i)*W(i))**2 ).
+C DVNORM is called with N = NEQ and with W(i) = 1.0/EWT(i), where
+C EWT is as set by subroutine DEWSET.
+C
+C If the user supplies this function, it should return a non-negative
+C value of DVNORM suitable for use in the error control in DVODE.
+C None of the arguments should be altered by DVNORM.
+C For example, a user-supplied DVNORM routine might..
+C   -substitute a max-norm of (V(i)*W(i)) for the rms-norm, or
+C   -ignore some components of V in the norm, with the effect of
+C    suppressing the error control on those components of Y.
+C-----------------------------------------------------------------------
+C Other Routines in the DVODE Package.
+C
+C In addition to subroutine DVODE, the DVODE package includes the
+C following subroutines and function routines..
+C  DVHIN     computes an approximate step size for the initial step.
+C  DVINDY    computes an interpolated value of the y vector at t = TOUT.
+C  DVSTEP    is the core integrator, which does one step of the
+C            integration and the associated error control.
+C  DVSET     sets all method coefficients and test constants.
+C  DVNLSD    solves the underlying nonlinear system -- the corrector.
+C  DVJAC     computes and preprocesses the Jacobian matrix J = df/dy
+C            and the Newton iteration matrix P = I - (h/l1)*J.
+C  DVSOL     manages solution of linear system in chord iteration.
+C  DVJUST    adjusts the history array on a change of order.
+C  DEWSET    sets the error weight vector EWT before each step.
+C  DVNORM    computes the weighted r.m.s. norm of a vector.
+C  DVSRCO    is a user-callable routines to save and restore
+C            the contents of the internal COMMON blocks.
+C  DACOPY    is a routine to copy one two-dimensional array to another.
+C  DGEFA and DGESL   are routines from LINPACK for solving full
+C            systems of linear algebraic equations.
+C  DGBFA and DGBSL   are routines from LINPACK for solving banded
+C            linear systems.
+C  DAXPY, DSCAL, and DCOPY are basic linear algebra modules (BLAS).
+C  D1MACH    sets the unit roundoff of the machine.
+C  XERRWD, XSETUN, XSETF, LUNSAV, and MFLGSV handle the printing of all
+C            error messages and warnings.  XERRWD is machine-dependent.
+C Note..  DVNORM, D1MACH, LUNSAV, and MFLGSV are function routines.
+C All the others are subroutines.
+C
+C The intrinsic and external routines used by the DVODE package are..
+C ABS, MAX, MIN, REAL, SIGN, SQRT, and WRITE.
+C
+C-----------------------------------------------------------------------
+C
+C Type declarations for labeled COMMON block DVOD01 --------------------
+C
+      KPP_REAL ACNRM, CCMXJ, CONP, CRATE, DRC, EL,
+     1     ETA, ETAMAX, H, HMIN, HMXI, HNEW, HSCAL, PRL1,
+     2     RC, RL1, TAU, TQ, TN, UROUND
+      INTEGER ICF, INIT, IPUP, JCUR, JSTART, JSV, KFLAG, KUTH,
+     1        L, LMAX, LYH, LEWT, LACOR, LSAVF, LWM, LIWM,
+     2        LOCJS, MAXORD, METH, MITER, MSBJ, MXHNIL, MXSTEP,
+     3        N, NEWH, NEWQ, NHNIL, NQ, NQNYH, NQWAIT, NSLJ,
+     4        NSLP, NYH
+C
+C Type declarations for labeled COMMON block DVOD02 --------------------
+C
+      KPP_REAL HU
+      INTEGER NCFN, NETF, NFE, NJE, NLU, NNI, NQU, NST
+C
+C Type declarations for local variables --------------------------------
+C
+      EXTERNAL DVNLSD, F, JAC
+      LOGICAL IHIT
+      KPP_REAL AbsTolI, BIG, EWTI, FOUR, H0, HMAX, HMX, HUN, ONE,
+     1   PT2, RH, RelTolI, SIZE, TCRIT, TNEXT, TOLSF, TP, TWO, ZERO
+      INTEGER I, IER, IFLAG, IMXER, JCO, KGO, LENIW, LENJ, LENP, LENRW,
+     1   LENWM, LF0, MBAND, ML, MORD, MU, MXHNL0, MXSTP0, NITER, NSLAST
+      CHARACTER*80 MSG
+C
+C Type declaration for function subroutines called ---------------------
+C
+      KPP_REAL D1MACH, DVNORM
+C
+      DIMENSION MORD(2)
+C-----------------------------------------------------------------------
+C The following Fortran-77 declaration is to cause the values of the
+C listed (local) variables to be saved between calls to DVODE.
+C-----------------------------------------------------------------------
+      SAVE MORD, MXHNL0, MXSTP0
+      SAVE ZERO, ONE, TWO, FOUR, PT2, HUN
+C-----------------------------------------------------------------------
+C The following internal COMMON blocks contain variables which are
+C communicated between subroutines in the DVODE package, or which are
+C to be saved between calls to DVODE.
+C In each block, real variables precede integers.
+C The block /DVOD01/ appears in subroutines DVODE, DVINDY, DVSTEP,
+C DVSET, DVNLSD, DVJAC, DVSOL, DVJUST and DVSRCO.
+C The block /DVOD02/ appears in subroutines DVODE, DVINDY, DVSTEP,
+C DVNLSD, DVJAC, and DVSRCO.
+C
+C The variables stored in the internal COMMON blocks are as follows..
+C
+C ACNRM  = Weighted r.m.s. norm of accumulated correction vectors.
+C CCMXJ  = Threshhold on DRC for updating the Jacobian. (See DRC.)
+C CONP   = The saved value of TQ(5).
+C CRATE  = Estimated corrector convergence rate constant.
+C DRC    = Relative change in H*RL1 since last DVJAC call.
+C EL     = Real array of integration coefficients.  See DVSET.
+C ETA    = Saved tentative ratio of new to old H.
+C ETAMAX = Saved maximum value of ETA to be allowed.
+C H      = The step size.
+C HMIN   = The minimum absolute value of the step size H to be used.
+C HMXI   = Inverse of the maximum absolute value of H to be used.
+C          HMXI = 0.0 is allowed and corresponds to an infinite HMAX.
+C HNEW   = The step size to be attempted on the next step.
+C HSCAL  = Stepsize in scaling of YH array.
+C PRL1   = The saved value of RL1.
+C RC     = Ratio of current H*RL1 to value on last DVJAC call.
+C RL1    = The reciprocal of the coefficient EL(1).
+C TAU    = Real vector of past NQ step sizes, length 13.
+C TQ     = A real vector of length 5 in which DVSET stores constants
+C          used for the convergence test, the error test, and the
+C          selection of H at a new order.
+C TN     = The independent variable, updated on each step taken.
+C UROUND = The machine unit roundoff.  The smallest positive real number
+C          such that  1.0 + UROUND .ne. 1.0
+C ICF    = Integer flag for convergence failure in DVNLSD..
+C            0 means no failures.
+C            1 means convergence failure with out of date Jacobian
+C                   (recoverable error).
+C            2 means convergence failure with current Jacobian or
+C                   singular matrix (unrecoverable error).
+C INIT   = Saved integer flag indicating whether initialization of the
+C          problem has been done (INIT = 1) or not.
+C IPUP   = Saved flag to signal updating of Newton matrix.
+C JCUR   = Output flag from DVJAC showing Jacobian status..
+C            JCUR = 0 means J is not current.
+C            JCUR = 1 means J is current.
+C JSTART = Integer flag used as input to DVSTEP..
+C            0  means perform the first step.
+C            1  means take a new step continuing from the last.
+C            -1 means take the next step with a new value of MAXORD,
+C                  HMIN, HMXI, N, METH, MITER, and/or matrix parameters.
+C          On return, DVSTEP sets JSTART = 1.
+C JSV    = Integer flag for Jacobian saving, = sign(MF).
+C KFLAG  = A completion code from DVSTEP with the following meanings..
+C               0      the step was succesful.
+C              -1      the requested error could not be achieved.
+C              -2      corrector convergence could not be achieved.
+C              -3, -4  fatal error in VNLS (can not occur here).
+C KUTH   = Input flag to DVSTEP showing whether H was reduced by the
+C          driver.  KUTH = 1 if H was reduced, = 0 otherwise.
+C L      = Integer variable, NQ + 1, current order plus one.
+C LMAX   = MAXORD + 1 (used for dimensioning).
+C LOCJS  = A pointer to the saved Jacobian, whose storage starts at
+C          WM(LOCJS), if JSV = 1.
+C LYH, LEWT, LACOR, LSAVF, LWM, LIWM = Saved integer pointers
+C          to segments of RWORK and IWORK.
+C MAXORD = The maximum order of integration method to be allowed.
+C METH/MITER = The method flags.  See MF.
+C MSBJ   = The maximum number of steps between J evaluations, = 50.
+C MXHNIL = Saved value of optional input MXHNIL.
+C MXSTEP = Saved value of optional input MXSTEP.
+C N      = The number of first-order ODEs, = NEQ.
+C NEWH   = Saved integer to flag change of H.
+C NEWQ   = The method order to be used on the next step.
+C NHNIL  = Saved counter for occurrences of T + H = T.
+C NQ     = Integer variable, the current integration method order.
+C NQNYH  = Saved value of NQ*NYH.
+C NQWAIT = A counter controlling the frequency of order changes.
+C          An order change is about to be considered if NQWAIT = 1.
+C NSLJ   = The number of steps taken as of the last Jacobian update.
+C NSLP   = Saved value of NST as of last Newton matrix update.
+C NYH    = Saved value of the initial value of NEQ.
+C HU     = The step size in t last used.
+C NCFN   = Number of nonlinear convergence failures so far.
+C NETF   = The number of error test failures of the integrator so far.
+C NFE    = The number of f evaluations for the problem so far.
+C NJE    = The number of Jacobian evaluations so far.
+C NLU    = The number of matrix LU decompositions so far.
+C NNI    = Number of nonlinear iterations so far.
+C NQU    = The method order last used.
+C NST    = The number of steps taken for the problem so far.
+C-----------------------------------------------------------------------
+      COMMON /DVOD01/ ACNRM, CCMXJ, CONP, CRATE, DRC, EL(13),
+     1                ETA, ETAMAX, H, HMIN, HMXI, HNEW, HSCAL, PRL1,
+     2                RC, RL1, TAU(13), TQ(5), TN, UROUND,
+     3                ICF, INIT, IPUP, JCUR, JSTART, JSV, KFLAG, KUTH,
+     4                L, LMAX, LYH, LEWT, LACOR, LSAVF, LWM, LIWM,
+     5                LOCJS, MAXORD, METH, MITER, MSBJ, MXHNIL, MXSTEP,
+     6                N, NEWH, NEWQ, NHNIL, NQ, NQNYH, NQWAIT, NSLJ,
+     7                NSLP, NYH
+      COMMON /DVOD02/ HU, NCFN, NETF, NFE, NJE, NLU, NNI, NQU, NST
+C
+
+      DATA  MORD(1) /12/, MORD(2) /5/, MXSTP0 /500/, MXHNL0 /10/
+      DATA ZERO /0.0D0/, ONE /1.0D0/, TWO /2.0D0/, FOUR /4.0D0/,
+     1     PT2 /0.2D0/, HUN /100.0D0/
+C-----------------------------------------------------------------------
+C Block A.
+C This code block is executed on every call.
+C It tests ISTATE and ITASK for legality and branches appropriately.
+C If ISTATE .gt. 1 but the flag INIT shows that initialization has
+C not yet been done, an error return occurs.
+C If ISTATE = 1 and TOUT = T, return immediately.
+C-----------------------------------------------------------------------
+      IF (ISTATE .LT. 1 .OR. ISTATE .GT. 3) GO TO 601
+      IF (ITASK .LT. 1 .OR. ITASK .GT. 5) GO TO 602
+      IF (ISTATE .EQ. 1) GO TO 10
+      IF (INIT .NE. 1) GO TO 603
+      IF (ISTATE .EQ. 2) GO TO 200
+      GO TO 20
+ 10   INIT = 0
+      IF (TOUT .EQ. T) RETURN
+C-----------------------------------------------------------------------
+C Block B.
+C The next code block is executed for the initial CALL (ISTATE = 1),
+C or for a continuation CALL with parameter changes (ISTATE = 3).
+C It contains checking of all input and various initializations.
+C
+C First check legality of the non-optional input NEQ, ITOL, IOPT,
+C MF, ML, and MU.
+C-----------------------------------------------------------------------
+ 20   IF (NEQ .LE. 0) GO TO 604
+      IF (ISTATE .EQ. 1) GO TO 25
+      IF (NEQ .GT. N) GO TO 605
+ 25   N = NEQ
+      IF (ITOL .LT. 1 .OR. ITOL .GT. 4) GO TO 606
+      IF (IOPT .LT. 0 .OR. IOPT .GT. 1) GO TO 607
+      JSV = SIGN(1,MF)
+      MF = ABS(MF)
+      METH = MF/10
+      MITER = MF - 10*METH
+      IF (METH .LT. 1 .OR. METH .GT. 2) GO TO 608
+      IF (MITER .LT. 0 .OR. MITER .GT. 5) GO TO 608
+      IF (MITER .LE. 3) GO TO 30
+      ML = IWORK(1)
+      MU = IWORK(2)
+      IF (ML .LT. 0 .OR. ML .GE. N) GO TO 609
+      IF (MU .LT. 0 .OR. MU .GE. N) GO TO 610
+ 30   CONTINUE
+C Next process and check the optional input. ---------------------------
+      IF (IOPT .EQ. 1) GO TO 40
+      MAXORD = MORD(METH)
+      MXSTEP = MXSTP0
+      MXHNIL = MXHNL0
+      IF (ISTATE .EQ. 1) H0 = ZERO
+      HMXI = ZERO
+      HMIN = ZERO
+      GO TO 60
+ 40   MAXORD = IWORK(5)
+      IF (MAXORD .LT. 0) GO TO 611
+      IF (MAXORD .EQ. 0) MAXORD = 100
+      MAXORD = MIN(MAXORD,MORD(METH))
+      MXSTEP = IWORK(6)
+      IF (MXSTEP .LT. 0) GO TO 612
+      IF (MXSTEP .EQ. 0) MXSTEP = MXSTP0
+      MXHNIL = IWORK(7)
+      IF (MXHNIL .LT. 0) GO TO 613
+      IF (MXHNIL .EQ. 0) MXHNIL = MXHNL0
+      IF (ISTATE .NE. 1) GO TO 50
+      H0 = RWORK(5)
+      IF ((TOUT - T)*H0 .LT. ZERO) GO TO 614
+ 50   HMAX = RWORK(6)
+      IF (HMAX .LT. ZERO) GO TO 615
+      HMXI = ZERO
+      IF (HMAX .GT. ZERO) HMXI = ONE/HMAX
+      HMIN = RWORK(7)
+      IF (HMIN .LT. ZERO) GO TO 616
+C-----------------------------------------------------------------------
+C Set work array pointers and check lengths LRW and LIW.
+C Pointers to segments of RWORK and IWORK are named by prefixing L to
+C the name of the segment.  E.g., the segment YH starts at RWORK(LYH).
+C Segments of RWORK (in order) are denoted  YH, WM, EWT, SAVF, ACOR.
+C Within WM, LOCJS is the location of the saved Jacobian (JSV .gt. 0).
+C-----------------------------------------------------------------------
+ 60   LYH = 21
+      IF (ISTATE .EQ. 1) NYH = N
+      LWM = LYH + (MAXORD + 1)*NYH
+      JCO = MAX(0,JSV)
+      IF (MITER .EQ. 0) LENWM = 0
+      IF (MITER .EQ. 1 .OR. MITER .EQ. 2) THEN
+        LENWM = 2 + (1 + JCO)*N*N
+        LOCJS = N*N + 3
+      ENDIF
+      IF (MITER .EQ. 3) LENWM = 2 + N
+      IF (MITER .EQ. 4 .OR. MITER .EQ. 5) THEN
+        MBAND = ML + MU + 1
+        LENP = (MBAND + ML)*N
+        LENJ = MBAND*N
+        LENWM = 2 + LENP + JCO*LENJ
+        LOCJS = LENP + 3
+        ENDIF
+      LEWT = LWM + LENWM
+      LSAVF = LEWT + N
+      LACOR = LSAVF + N
+      LENRW = LACOR + N - 1
+      IWORK(17) = LENRW
+      LIWM = 1
+      LENIW = 30 + N
+      IF (MITER .EQ. 0 .OR. MITER .EQ. 3) LENIW = 30
+      IWORK(18) = LENIW
+      IF (LENRW .GT. LRW) GO TO 617
+      IF (LENIW .GT. LIW) GO TO 618
+C Check RelTol and AbsTol for legality. ------------------------------------
+      RelTolI = RelTol(1)
+      AbsTolI = AbsTol(1)
+      DO 70 I = 1,N
+        IF (ITOL .GE. 3) RelTolI = RelTol(I)
+        IF (ITOL .EQ. 2 .OR. ITOL .EQ. 4) AbsTolI = AbsTol(I)
+        IF (RelTolI .LT. ZERO) GO TO 619
+        IF (AbsTolI .LT. ZERO) GO TO 620
+ 70     CONTINUE
+      IF (ISTATE .EQ. 1) GO TO 100
+C If ISTATE = 3, set flag to signal parameter changes to DVSTEP. -------
+      JSTART = -1
+      IF (NQ .LE. MAXORD) GO TO 90
+C MAXORD was reduced below NQ.  Copy YH(*,MAXORD+2) into SAVF. ---------
+      CALL DCOPY (N, RWORK(LWM), 1, RWORK(LSAVF), 1)
+C Reload WM(1) = RWORK(LWM), since LWM may have changed. ---------------
+ 90   IF (MITER .GT. 0) RWORK(LWM) = SQRT(UROUND)
+C-----------------------------------------------------------------------
+C Block C.
+C The next block is for the initial CALL only (ISTATE = 1).
+C It contains all remaining initializations, the initial CALL to F,
+C and the calculation of the initial step size.
+C The error weights in EWT are inverted after being loaded.
+C-----------------------------------------------------------------------
+ 100  UROUND = D1MACH(4)
+      TN = T
+      IF (ITASK .NE. 4 .AND. ITASK .NE. 5) GO TO 110
+      TCRIT = RWORK(1)
+      IF ((TCRIT - TOUT)*(TOUT - T) .LT. ZERO) GO TO 625
+      IF (H0 .NE. ZERO .AND. (T + H0 - TCRIT)*H0 .GT. ZERO)
+     1   H0 = TCRIT - T
+ 110  JSTART = 0
+      IF (MITER .GT. 0) RWORK(LWM) = SQRT(UROUND)
+      CCMXJ = PT2
+      MSBJ = 50
+      NHNIL = 0
+      NST = 0
+      NJE = 0
+      NNI = 0
+      NCFN = 0
+      NETF = 0
+      NLU = 0
+      NSLJ = 0
+      NSLAST = 0
+      HU = ZERO
+      NQU = 0
+C Initial CALL to F.  (LF0 points to YH(*,2).) -------------------------
+      LF0 = LYH + NYH
+      CALL F (N, T, Y, RWORK(LF0))
+      NFE = 1
+C Load the initial value vector in YH. ---------------------------------
+      CALL DCOPY (N, Y, 1, RWORK(LYH), 1)
+C Load and invert the EWT array.  (H is temporarily set to 1.0.) -------
+      NQ = 1
+      H = ONE
+      CALL DEWSET (N, ITOL, RelTol, AbsTol, RWORK(LYH), RWORK(LEWT))
+      DO 120 I = 1,N
+        IF (RWORK(I+LEWT-1) .LE. ZERO) GO TO 621
+ 120    RWORK(I+LEWT-1) = ONE/RWORK(I+LEWT-1)
+      IF (H0 .NE. ZERO) GO TO 180
+C Call DVHIN to set initial step size H0 to be attempted. --------------
+      CALL DVHIN (N, T, RWORK(LYH), RWORK(LF0), F, RPAR, IPAR, TOUT,
+     1   UROUND, RWORK(LEWT), ITOL, AbsTol, Y, RWORK(LACOR), H0,
+     2   NITER, IER)
+      NFE = NFE + NITER
+      IF (IER .NE. 0) GO TO 622
+C Adjust H0 if necessary to meet HMAX bound. ---------------------------
+ 180  RH = ABS(H0)*HMXI
+      IF (RH .GT. ONE) H0 = H0/RH
+C Load H with H0 and scale YH(*,2) by H0. ------------------------------
+      H = H0
+      CALL DSCAL (N, H0, RWORK(LF0), 1)
+      GO TO 270
+C-----------------------------------------------------------------------
+C Block D.
+C The next code block is for continuation calls only (ISTATE = 2 or 3)
+C and is to check stop conditions before taking a step.
+C-----------------------------------------------------------------------
+ 200  NSLAST = NST
+      KUTH = 0
+      GO TO (210, 250, 220, 230, 240), ITASK
+ 210  IF ((TN - TOUT)*H .LT. ZERO) GO TO 250
+      CALL DVINDY (TOUT, 0, RWORK(LYH), NYH, Y, IFLAG)
+      IF (IFLAG .NE. 0) GO TO 627
+      T = TOUT
+      GO TO 420
+ 220  TP = TN - HU*(ONE + HUN*UROUND)
+      IF ((TP - TOUT)*H .GT. ZERO) GO TO 623
+      IF ((TN - TOUT)*H .LT. ZERO) GO TO 250
+      GO TO 400
+ 230  TCRIT = RWORK(1)
+      IF ((TN - TCRIT)*H .GT. ZERO) GO TO 624
+      IF ((TCRIT - TOUT)*H .LT. ZERO) GO TO 625
+      IF ((TN - TOUT)*H .LT. ZERO) GO TO 245
+      CALL DVINDY (TOUT, 0, RWORK(LYH), NYH, Y, IFLAG)
+      IF (IFLAG .NE. 0) GO TO 627
+      T = TOUT
+      GO TO 420
+ 240  TCRIT = RWORK(1)
+      IF ((TN - TCRIT)*H .GT. ZERO) GO TO 624
+ 245  HMX = ABS(TN) + ABS(H)
+      IHIT = ABS(TN - TCRIT) .LE. HUN*UROUND*HMX
+      IF (IHIT) GO TO 400
+      TNEXT = TN + HNEW*(ONE + FOUR*UROUND)
+      IF ((TNEXT - TCRIT)*H .LE. ZERO) GO TO 250
+      H = (TCRIT - TN)*(ONE - FOUR*UROUND)
+      KUTH = 1
+C-----------------------------------------------------------------------
+C Block E.
+C The next block is normally executed for all calls and contains
+C the CALL to the one-step core integrator DVSTEP.
+C
+C This is a looping point for the integration steps.
+C
+C First check for too many steps being taken, update EWT (if not at
+C start of problem), check for too much accuracy being requested, and
+C check for H below the roundoff level in T.
+C-----------------------------------------------------------------------
+ 250  CONTINUE
+      IF ((NST-NSLAST) .GE. MXSTEP) GO TO 500
+      CALL DEWSET (N, ITOL, RelTol, AbsTol, RWORK(LYH), RWORK(LEWT))
+      DO 260 I = 1,N
+        IF (RWORK(I+LEWT-1) .LE. ZERO) GO TO 510
+ 260    RWORK(I+LEWT-1) = ONE/RWORK(I+LEWT-1)
+ 270  TOLSF = UROUND*DVNORM (N, RWORK(LYH), RWORK(LEWT))
+      IF (TOLSF .LE. ONE) GO TO 280
+      TOLSF = TOLSF*TWO
+      IF (NST .EQ. 0) GO TO 626
+      GO TO 520
+ 280  IF ((TN + H) .NE. TN) GO TO 290
+      NHNIL = NHNIL + 1
+      IF (NHNIL .GT. MXHNIL) GO TO 290
+      MSG = 'DVODE--  Warning..internal T (=R1) and H (=R2) are'
+      CALL XERRWD (MSG, 50, 101, 1, 0, 0, 0, 0, ZERO, ZERO)
+      MSG='      such that in the machine, T + H = T on the next step  '
+      CALL XERRWD (MSG, 60, 101, 1, 0, 0, 0, 0, ZERO, ZERO)
+      MSG = '      (H = step size). solver will continue anyway'
+      CALL XERRWD (MSG, 50, 101, 1, 0, 0, 0, 2, TN, H)
+      IF (NHNIL .LT. MXHNIL) GO TO 290
+      MSG = 'DVODE--  Above warning has been issued I1 times.  '
+      CALL XERRWD (MSG, 50, 102, 1, 0, 0, 0, 0, ZERO, ZERO)
+      MSG = '      it will not be issued again for this problem'
+      CALL XERRWD (MSG, 50, 102, 1, 1, MXHNIL, 0, 0, ZERO, ZERO)
+ 290  CONTINUE
+C-----------------------------------------------------------------------
+C CALL DVSTEP (Y, YH, NYH, YH, EWT, SAVF, VSAV, ACOR,
+C              WM, IWM, F, JAC, F, DVNLSD, RPAR, IPAR)
+C-----------------------------------------------------------------------
+      CALL DVSTEP (Y, RWORK(LYH), NYH, RWORK(LYH), RWORK(LEWT),
+     1   RWORK(LSAVF), Y, RWORK(LACOR), RWORK(LWM), IWORK(LIWM),
+     2   F, JAC, F, DVNLSD, RPAR, IPAR)
+      KGO = 1 - KFLAG
+C Branch on KFLAG.  Note..In this version, KFLAG can not be set to -3.
+C  KFLAG .eq. 0,   -1,  -2
+      GO TO (300, 530, 540), KGO
+C-----------------------------------------------------------------------
+C Block F.
+C The following block handles the case of a successful return from the
+C core integrator (KFLAG = 0).  Test for stop conditions.
+C-----------------------------------------------------------------------
+ 300  INIT = 1
+      KUTH = 0
+      GO TO (310, 400, 330, 340, 350), ITASK
+C ITASK = 1.  If TOUT has been reached, interpolate. -------------------
+ 310  IF ((TN - TOUT)*H .LT. ZERO) GO TO 250
+      CALL DVINDY (TOUT, 0, RWORK(LYH), NYH, Y, IFLAG)
+      T = TOUT
+      GO TO 420
+C ITASK = 3.  Jump to exit if TOUT was reached. ------------------------
+ 330  IF ((TN - TOUT)*H .GE. ZERO) GO TO 400
+      GO TO 250
+C ITASK = 4.  See if TOUT or TCRIT was reached.  Adjust H if necessary.
+ 340  IF ((TN - TOUT)*H .LT. ZERO) GO TO 345
+      CALL DVINDY (TOUT, 0, RWORK(LYH), NYH, Y, IFLAG)
+      T = TOUT
+      GO TO 420
+ 345  HMX = ABS(TN) + ABS(H)
+      IHIT = ABS(TN - TCRIT) .LE. HUN*UROUND*HMX
+      IF (IHIT) GO TO 400
+      TNEXT = TN + HNEW*(ONE + FOUR*UROUND)
+      IF ((TNEXT - TCRIT)*H .LE. ZERO) GO TO 250
+      H = (TCRIT - TN)*(ONE - FOUR*UROUND)
+      KUTH = 1
+      GO TO 250
+C ITASK = 5.  See if TCRIT was reached and jump to exit. ---------------
+ 350  HMX = ABS(TN) + ABS(H)
+      IHIT = ABS(TN - TCRIT) .LE. HUN*UROUND*HMX
+C-----------------------------------------------------------------------
+C Block G.
+C The following block handles all successful returns from DVODE.
+C If ITASK .ne. 1, Y is loaded from YH and T is set accordingly.
+C ISTATE is set to 2, and the optional output is loaded into the work
+C arrays before returning.
+C-----------------------------------------------------------------------
+ 400  CONTINUE
+      CALL DCOPY (N, RWORK(LYH), 1, Y, 1)
+      T = TN
+      IF (ITASK .NE. 4 .AND. ITASK .NE. 5) GO TO 420
+      IF (IHIT) T = TCRIT
+ 420  ISTATE = 2
+      RWORK(11) = HU
+      RWORK(12) = HNEW
+      RWORK(13) = TN
+      IWORK(11) = NST
+      IWORK(12) = NFE
+      IWORK(13) = NJE
+      IWORK(14) = NQU
+      IWORK(15) = NEWQ
+      IWORK(19) = NLU
+      IWORK(20) = NNI
+      IWORK(21) = NCFN
+      IWORK(22) = NETF
+      RETURN
+C-----------------------------------------------------------------------
+C Block H.
+C The following block handles all unsuccessful returns other than
+C those for illegal input.  First the error message routine is called.
+C if there was an error test or convergence test failure, IMXER is set.
+C Then Y is loaded from YH, T is set to TN, and the illegal input
+C The optional output is loaded into the work arrays before returning.
+C-----------------------------------------------------------------------
+C The maximum number of steps was taken before reaching TOUT. ----------
+ 500  MSG = 'DVODE--  At current T (=R1), MXSTEP (=I1) steps   '
+      CALL XERRWD (MSG, 50, 201, 1, 0, 0, 0, 0, ZERO, ZERO)
+      MSG = '      taken on this CALL before reaching TOUT     '
+      CALL XERRWD (MSG, 50, 201, 1, 1, MXSTEP, 0, 1, TN, ZERO)
+      ISTATE = -1
+      GO TO 580
+C EWT(i) .le. 0.0 for some i (not at start of problem). ----------------
+ 510  EWTI = RWORK(LEWT+I-1)
+      MSG = 'DVODE--  At T (=R1), EWT(I1) has become R2 .le. 0.'
+      CALL XERRWD (MSG, 50, 202, 1, 1, I, 0, 2, TN, EWTI)
+      ISTATE = -6
+      GO TO 580
+C Too much accuracy requested for machine precision. -------------------
+ 520  MSG = 'DVODE--  At T (=R1), too much accuracy requested  '
+      CALL XERRWD (MSG, 50, 203, 1, 0, 0, 0, 0, ZERO, ZERO)
+      MSG = '      for precision of machine..  see TOLSF (=R2) '
+      CALL XERRWD (MSG, 50, 203, 1, 0, 0, 0, 2, TN, TOLSF)
+      RWORK(14) = TOLSF
+      ISTATE = -2
+      GO TO 580
+C KFLAG = -1.  Error test failed repeatedly or with ABS(H) = HMIN. -----
+ 530  MSG = 'DVODE--  At T(=R1) and step size H(=R2), the error'
+      CALL XERRWD (MSG, 50, 204, 1, 0, 0, 0, 0, ZERO, ZERO)
+      MSG = '      test failed repeatedly or with abs(H) = HMIN'
+      CALL XERRWD (MSG, 50, 204, 1, 0, 0, 0, 2, TN, H)
+      ISTATE = -4
+      GO TO 560
+C KFLAG = -2.  Convergence failed repeatedly or with abs(H) = HMIN. ----
+ 540  MSG = 'DVODE--  At T (=R1) and step size H (=R2), the    '
+      CALL XERRWD (MSG, 50, 205, 1, 0, 0, 0, 0, ZERO, ZERO)
+      MSG = '      corrector convergence failed repeatedly     '
+      CALL XERRWD (MSG, 50, 205, 1, 0, 0, 0, 0, ZERO, ZERO)
+      MSG = '      or with abs(H) = HMIN   '
+      CALL XERRWD (MSG, 30, 205, 1, 0, 0, 0, 2, TN, H)
+      ISTATE = -5
+C Compute IMXER if relevant. -------------------------------------------
+ 560  BIG = ZERO
+      IMXER = 1
+      DO 570 I = 1,N
+        SIZE = ABS(RWORK(I+LACOR-1)*RWORK(I+LEWT-1))
+        IF (BIG .GE. SIZE) GO TO 570
+        BIG = SIZE
+        IMXER = I
+ 570    CONTINUE
+      IWORK(16) = IMXER
+C Set Y vector, T, and optional output. --------------------------------
+ 580  CONTINUE
+      CALL DCOPY (N, RWORK(LYH), 1, Y, 1)
+      T = TN
+      RWORK(11) = HU
+      RWORK(12) = H
+      RWORK(13) = TN
+      IWORK(11) = NST
+      IWORK(12) = NFE
+      IWORK(13) = NJE
+      IWORK(14) = NQU
+      IWORK(15) = NQ
+      IWORK(19) = NLU
+      IWORK(20) = NNI
+      IWORK(21) = NCFN
+      IWORK(22) = NETF
+      RETURN
+C-----------------------------------------------------------------------
+C Block I.
+C The following block handles all error returns due to illegal input
+C (ISTATE = -3), as detected before calling the core integrator.
+C First the error message routine is called.   If the illegal input
+C is a negative ISTATE, the run is aborted (apparent infinite loop).
+C-----------------------------------------------------------------------
+ 601  MSG = 'DVODE--  ISTATE (=I1) illegal '
+      CALL XERRWD (MSG, 30, 1, 1, 1, ISTATE, 0, 0, ZERO, ZERO)
+      IF (ISTATE .LT. 0) GO TO 800
+      GO TO 700
+ 602  MSG = 'DVODE--  ITASK (=I1) illegal  '
+      CALL XERRWD (MSG, 30, 2, 1, 1, ITASK, 0, 0, ZERO, ZERO)
+      GO TO 700
+ 603  MSG='DVODE--  ISTATE (=I1) .gt. 1 but DVODE not initialized      '
+      CALL XERRWD (MSG, 60, 3, 1, 1, ISTATE, 0, 0, ZERO, ZERO)
+      GO TO 700
+ 604  MSG = 'DVODE--  NEQ (=I1) .lt. 1     '
+      CALL XERRWD (MSG, 30, 4, 1, 1, NEQ, 0, 0, ZERO, ZERO)
+      GO TO 700
+ 605  MSG = 'DVODE--  ISTATE = 3 and NEQ increased (I1 to I2)  '
+      CALL XERRWD (MSG, 50, 5, 1, 2, N, NEQ, 0, ZERO, ZERO)
+      GO TO 700
+ 606  MSG = 'DVODE--  ITOL (=I1) illegal   '
+      CALL XERRWD (MSG, 30, 6, 1, 1, ITOL, 0, 0, ZERO, ZERO)
+      GO TO 700
+ 607  MSG = 'DVODE--  IOPT (=I1) illegal   '
+      CALL XERRWD (MSG, 30, 7, 1, 1, IOPT, 0, 0, ZERO, ZERO)
+      GO TO 700
+ 608  MSG = 'DVODE--  MF (=I1) illegal     '
+      CALL XERRWD (MSG, 30, 8, 1, 1, MF, 0, 0, ZERO, ZERO)
+      GO TO 700
+ 609  MSG = 'DVODE--  ML (=I1) illegal.. .lt.0 or .ge.NEQ (=I2)'
+      CALL XERRWD (MSG, 50, 9, 1, 2, ML, NEQ, 0, ZERO, ZERO)
+      GO TO 700
+ 610  MSG = 'DVODE--  MU (=I1) illegal.. .lt.0 or .ge.NEQ (=I2)'
+      CALL XERRWD (MSG, 50, 10, 1, 2, MU, NEQ, 0, ZERO, ZERO)
+      GO TO 700
+ 611  MSG = 'DVODE--  MAXORD (=I1) .lt. 0  '
+      CALL XERRWD (MSG, 30, 11, 1, 1, MAXORD, 0, 0, ZERO, ZERO)
+      GO TO 700
+ 612  MSG = 'DVODE--  MXSTEP (=I1) .lt. 0  '
+      CALL XERRWD (MSG, 30, 12, 1, 1, MXSTEP, 0, 0, ZERO, ZERO)
+      GO TO 700
+ 613  MSG = 'DVODE--  MXHNIL (=I1) .lt. 0  '
+      CALL XERRWD (MSG, 30, 13, 1, 1, MXHNIL, 0, 0, ZERO, ZERO)
+      GO TO 700
+ 614  MSG = 'DVODE--  TOUT (=R1) behind T (=R2)      '
+      CALL XERRWD (MSG, 40, 14, 1, 0, 0, 0, 2, TOUT, T)
+      MSG = '      integration direction is given by H0 (=R1)  '
+      CALL XERRWD (MSG, 50, 14, 1, 0, 0, 0, 1, H0, ZERO)
+      GO TO 700
+ 615  MSG = 'DVODE--  HMAX (=R1) .lt. 0.0  '
+      CALL XERRWD (MSG, 30, 15, 1, 0, 0, 0, 1, HMAX, ZERO)
+      GO TO 700
+ 616  MSG = 'DVODE--  HMIN (=R1) .lt. 0.0  '
+      CALL XERRWD (MSG, 30, 16, 1, 0, 0, 0, 1, HMIN, ZERO)
+      GO TO 700
+ 617  CONTINUE
+      MSG='DVODE--  RWORK length needed, LENRW (=I1), exceeds LRW (=I2)'
+      CALL XERRWD (MSG, 60, 17, 1, 2, LENRW, LRW, 0, ZERO, ZERO)
+      GO TO 700
+ 618  CONTINUE
+      MSG='DVODE--  IWORK length needed, LENIW (=I1), exceeds LIW (=I2)'
+      CALL XERRWD (MSG, 60, 18, 1, 2, LENIW, LIW, 0, ZERO, ZERO)
+      GO TO 700
+ 619  MSG = 'DVODE--  RelTol(I1) is R1 .lt. 0.0        '
+      CALL XERRWD (MSG, 40, 19, 1, 1, I, 0, 1, RelTolI, ZERO)
+      GO TO 700
+ 620  MSG = 'DVODE--  AbsTol(I1) is R1 .lt. 0.0        '
+      CALL XERRWD (MSG, 40, 20, 1, 1, I, 0, 1, AbsTolI, ZERO)
+      GO TO 700
+ 621  EWTI = RWORK(LEWT+I-1)
+      MSG = 'DVODE--  EWT(I1) is R1 .le. 0.0         '
+      CALL XERRWD (MSG, 40, 21, 1, 1, I, 0, 1, EWTI, ZERO)
+      GO TO 700
+ 622  CONTINUE
+      MSG='DVODE--  TOUT (=R1) too close to T(=R2) to start integration'
+      CALL XERRWD (MSG, 60, 22, 1, 0, 0, 0, 2, TOUT, T)
+      GO TO 700
+ 623  CONTINUE
+      MSG='DVODE--  ITASK = I1 and TOUT (=R1) behind TCUR - HU (= R2)  '
+      CALL XERRWD (MSG, 60, 23, 1, 1, ITASK, 0, 2, TOUT, TP)
+      GO TO 700
+ 624  CONTINUE
+      MSG='DVODE--  ITASK = 4 or 5 and TCRIT (=R1) behind TCUR (=R2)   '
+      CALL XERRWD (MSG, 60, 24, 1, 0, 0, 0, 2, TCRIT, TN)
+      GO TO 700
+ 625  CONTINUE
+      MSG='DVODE--  ITASK = 4 or 5 and TCRIT (=R1) behind TOUT (=R2)   '
+      CALL XERRWD (MSG, 60, 25, 1, 0, 0, 0, 2, TCRIT, TOUT)
+      GO TO 700
+ 626  MSG = 'DVODE--  At start of problem, too much accuracy   '
+      CALL XERRWD (MSG, 50, 26, 1, 0, 0, 0, 0, ZERO, ZERO)
+      MSG='      requested for precision of machine..  see TOLSF (=R1) '
+      CALL XERRWD (MSG, 60, 26, 1, 0, 0, 0, 1, TOLSF, ZERO)
+      RWORK(14) = TOLSF
+      GO TO 700
+ 627  MSG='DVODE--  Trouble from DVINDY.  ITASK = I1, TOUT = R1.       '
+      CALL XERRWD (MSG, 60, 27, 1, 1, ITASK, 0, 1, TOUT, ZERO)
+C
+ 700  CONTINUE
+      ISTATE = -3
+      RETURN
+C
+ 800  MSG = 'DVODE--  Run aborted.. apparent infinite loop     '
+      CALL XERRWD (MSG, 50, 303, 2, 0, 0, 0, 0, ZERO, ZERO)
+      RETURN
+C----------------------- End of Subroutine DVODE -----------------------
+      END
+*DECK DVHIN
+      SUBROUTINE DVHIN (N, T0, Y0, YDOT, F, RPAR, IPAR, TOUT, UROUND,
+     1   EWT, ITOL, AbsTol, Y, TEMP, H0, NITER, IER)
+      EXTERNAL F
+      KPP_REAL T0, Y0, YDOT, RPAR, TOUT, UROUND, EWT, AbsTol, Y,
+     1   TEMP, H0
+      INTEGER N, IPAR, ITOL, NITER, IER
+      DIMENSION Y0(*), YDOT(*), EWT(*), AbsTol(*), Y(*),
+     1   TEMP(*), RPAR(*), IPAR(*)
+C-----------------------------------------------------------------------
+C Call sequence input -- N, T0, Y0, YDOT, F, RPAR, IPAR, TOUT, UROUND,
+C                        EWT, ITOL, AbsTol, Y, TEMP
+C Call sequence output -- H0, NITER, IER
+C COMMON block variables accessed -- None
+C
+C Subroutines called by DVHIN.. F
+C Function routines called by DVHIN.. DVNORM
+C-----------------------------------------------------------------------
+C This routine computes the step size, H0, to be attempted on the
+C first step, when the user has not supplied a value for this.
+C
+C First we check that TOUT - T0 differs significantly from zero.  Then
+C an iteration is done to approximate the initial second derivative
+C and this is used to define h from w.r.m.s.norm(h**2 * yddot / 2) = 1.
+C A bias factor of 1/2 is applied to the resulting h.
+C The sign of H0 is inferred from the initial values of TOUT and T0.
+C
+C Communication with DVHIN is done with the following variables..
+C
+C N      = Size of ODE system, input.
+C T0     = Initial value of independent variable, input.
+C Y0     = Vector of initial conditions, input.
+C YDOT   = Vector of initial first derivatives, input.
+C F      = Name of subroutine for right-hand side f(t,y), input.
+C RPAR, IPAR = Dummy names for user's real and integer work arrays.
+C TOUT   = First output value of independent variable
+C UROUND = Machine unit roundoff
+C EWT, ITOL, AbsTol = Error weights and tolerance parameters
+C                   as described in the driver routine, input.
+C Y, TEMP = Work arrays of length N.
+C H0     = Step size to be attempted, output.
+C NITER  = Number of iterations (and of f evaluations) to compute H0,
+C          output.
+C IER    = The error flag, returned with the value
+C          IER = 0  if no trouble occurred, or
+C          IER = -1 if TOUT and T0 are considered too close to proceed.
+C-----------------------------------------------------------------------
+C
+C Type declarations for local variables --------------------------------
+C
+      KPP_REAL AFI, AbsTolI, DELYI, HALF, HG, HLB, HNEW, HRAT,
+     1     HUB, HUN, PT1, T1, TDIST, TROUND, TWO, YDDNRM
+      INTEGER I, ITER
+
+C
+C Type declaration for function subroutines called ---------------------
+C
+      KPP_REAL DVNORM
+C-----------------------------------------------------------------------
+C The following Fortran-77 declaration is to cause the values of the
+C listed (local) variables to be saved between calls to this integrator.
+C-----------------------------------------------------------------------
+      SAVE HALF, HUN, PT1, TWO
+      DATA HALF /0.5D0/, HUN /100.0D0/, PT1 /0.1D0/, TWO /2.0D0/
+C
+      NITER = 0
+      TDIST = ABS(TOUT - T0)
+      TROUND = UROUND*MAX(ABS(T0),ABS(TOUT))
+      IF (TDIST .LT. TWO*TROUND) GO TO 100
+C
+C Set a lower bound on h based on the roundoff level in T0 and TOUT. ---
+      HLB = HUN*TROUND
+C Set an upper bound on h based on TOUT-T0 and the initial Y and YDOT. -
+      HUB = PT1*TDIST
+      AbsTolI = AbsTol(1)
+      DO 10 I = 1, N
+        IF (ITOL .EQ. 2 .OR. ITOL .EQ. 4) AbsTolI = AbsTol(I)
+        DELYI = PT1*ABS(Y0(I)) + AbsTolI
+        AFI = ABS(YDOT(I))
+        IF (AFI*HUB .GT. DELYI) HUB = DELYI/AFI
+ 10     CONTINUE
+C
+C Set initial guess for h as geometric mean of upper and lower bounds. -
+      ITER = 0
+      HG = SQRT(HLB*HUB)
+C If the bounds have crossed, exit with the mean value. ----------------
+      IF (HUB .LT. HLB) THEN
+        H0 = HG
+        GO TO 90
+      ENDIF
+C
+C Looping point for iteration. -----------------------------------------
+ 50   CONTINUE
+C Estimate the second derivative as a difference quotient in f. --------
+      T1 = T0 + HG
+      DO 60 I = 1, N
+ 60     Y(I) = Y0(I) + HG*YDOT(I)
+      CALL F (N, T1, Y, TEMP)
+      DO 70 I = 1, N
+ 70     TEMP(I) = (TEMP(I) - YDOT(I))/HG
+      YDDNRM = DVNORM (N, TEMP, EWT)
+C Get the corresponding new value of h. --------------------------------
+      IF (YDDNRM*HUB*HUB .GT. TWO) THEN
+        HNEW = SQRT(TWO/YDDNRM)
+      ELSE
+        HNEW = SQRT(HG*HUB)
+      ENDIF
+      ITER = ITER + 1
+C-----------------------------------------------------------------------
+C Test the stopping conditions.
+C Stop if the new and previous h values differ by a factor of .lt. 2.
+C Stop if four iterations have been done.  Also, stop with previous h
+C if HNEW/HG .gt. 2 after first iteration, as this probably means that
+C the second derivative value is bad because of cancellation error.
+C-----------------------------------------------------------------------
+      IF (ITER .GE. 4) GO TO 80
+      HRAT = HNEW/HG
+C AICI
+      IF ( (HRAT .GT. HALF) .AND. (HRAT .LT. TWO) ) GO TO 80
+      IF ( (ITER .GE. 2) .AND. (HNEW .GT. TWO*HG) ) THEN
+        HNEW = HG
+        GO TO 80
+      ENDIF
+      HG = HNEW
+      GO TO 50
+C
+C Iteration done.  Apply bounds, bias factor, and sign.  Then exit. ----
+ 80   H0 = HNEW*HALF
+      IF (H0 .LT. HLB) H0 = HLB
+      IF (H0 .GT. HUB) H0 = HUB
+ 90   H0 = SIGN(H0, TOUT - T0)
+      NITER = ITER
+      IER = 0
+      RETURN
+C Error return for TOUT - T0 too small. --------------------------------
+ 100  IER = -1
+      RETURN
+C----------------------- End of Subroutine DVHIN -----------------------
+      END
+*DECK DVINDY
+      SUBROUTINE DVINDY (T, K, YH, LDYH, DKY, IFLAG)
+      KPP_REAL T, YH, DKY
+      INTEGER K, LDYH, IFLAG
+      DIMENSION YH(LDYH,*), DKY(*)
+C-----------------------------------------------------------------------
+C Call sequence input -- T, K, YH, LDYH
+C Call sequence output -- DKY, IFLAG
+C COMMON block variables accessed..
+C     /DVOD01/ --  H, TN, UROUND, L, N, NQ
+C     /DVOD02/ --  HU
+C
+C Subroutines called by DVINDY.. DSCAL, XERRWD
+C Function routines called by DVINDY.. None
+C-----------------------------------------------------------------------
+C DVINDY computes interpolated values of the K-th derivative of the
+C dependent variable vector y, and stores it in DKY.  This routine
+C is called within the package with K = 0 and T = TOUT, but may
+C also be called by the user for any K up to the current order.
+C (See detailed instructions in the usage documentation.)
+C-----------------------------------------------------------------------
+C The computed values in DKY are gotten by interpolation using the
+C Nordsieck history array YH.  This array corresponds uniquely to a
+C vector-valued polynomial of degree NQCUR or less, and DKY is set
+C to the K-th derivative of this polynomial at T.
+C The formula for DKY is..
+C              q
+C  DKY(i)  =  sum  c(j,K) * (T - TN)**(j-K) * H**(-j) * YH(i,j+1)
+C             j=K
+C where  c(j,K) = j*(j-1)*...*(j-K+1), q = NQCUR, TN = TCUR, H = HCUR.
+C The quantities  NQ = NQCUR, L = NQ+1, N, TN, and H are
+C communicated by COMMON.  The above sum is done in reverse order.
+C IFLAG is returned negative if either K or T is out of bounds.
+C
+C Discussion above and comments in driver explain all variables.
+C-----------------------------------------------------------------------
+C
+C Type declarations for labeled COMMON block DVOD01 --------------------
+C
+      KPP_REAL ACNRM, CCMXJ, CONP, CRATE, DRC, EL,
+     1     ETA, ETAMAX, H, HMIN, HMXI, HNEW, HSCAL, PRL1,
+     2     RC, RL1, TAU, TQ, TN, UROUND
+      INTEGER ICF, INIT, IPUP, JCUR, JSTART, JSV, KFLAG, KUTH,
+     1        L, LMAX, LYH, LEWT, LACOR, LSAVF, LWM, LIWM,
+     2        LOCJS, MAXORD, METH, MITER, MSBJ, MXHNIL, MXSTEP,
+     3        N, NEWH, NEWQ, NHNIL, NQ, NQNYH, NQWAIT, NSLJ,
+     4        NSLP, NYH
+C
+C Type declarations for labeled COMMON block DVOD02 --------------------
+C
+      KPP_REAL HU
+      INTEGER NCFN, NETF, NFE, NJE, NLU, NNI, NQU, NST
+C
+C Type declarations for local variables --------------------------------
+C
+      KPP_REAL C, HUN, R, S, TFUZZ, TN1, TP, ZERO
+      INTEGER I, IC, J, JB, JB2, JJ, JJ1, JP1
+      CHARACTER*80 MSG
+C-----------------------------------------------------------------------
+C The following Fortran-77 declaration is to cause the values of the
+C listed (local) variables to be saved between calls to this integrator.
+C-----------------------------------------------------------------------
+      SAVE HUN, ZERO
+C
+      COMMON /DVOD01/ ACNRM, CCMXJ, CONP, CRATE, DRC, EL(13),
+     1                ETA, ETAMAX, H, HMIN, HMXI, HNEW, HSCAL, PRL1,
+     2                RC, RL1, TAU(13), TQ(5), TN, UROUND,
+     3                ICF, INIT, IPUP, JCUR, JSTART, JSV, KFLAG, KUTH,
+     4                L, LMAX, LYH, LEWT, LACOR, LSAVF, LWM, LIWM,
+     5                LOCJS, MAXORD, METH, MITER, MSBJ, MXHNIL, MXSTEP,
+     6                N, NEWH, NEWQ, NHNIL, NQ, NQNYH, NQWAIT, NSLJ,
+     7                NSLP, NYH
+      COMMON /DVOD02/ HU, NCFN, NETF, NFE, NJE, NLU, NNI, NQU, NST
+C
+      DATA HUN /100.0D0/, ZERO /0.0D0/
+C
+      IFLAG = 0
+      IF (K .LT. 0 .OR. K .GT. NQ) GO TO 80
+      TFUZZ = HUN*UROUND*(TN + HU)
+      TP = TN - HU - TFUZZ
+      TN1 = TN + TFUZZ
+      IF ((T-TP)*(T-TN1) .GT. ZERO) GO TO 90
+C
+      S = (T - TN)/H
+      IC = 1
+      IF (K .EQ. 0) GO TO 15
+      JJ1 = L - K
+      DO 10 JJ = JJ1, NQ
+ 10     IC = IC*JJ
+ 15   C = REAL(IC)
+      DO 20 I = 1, N
+ 20     DKY(I) = C*YH(I,L)
+      IF (K .EQ. NQ) GO TO 55
+      JB2 = NQ - K
+      DO 50 JB = 1, JB2
+        J = NQ - JB
+        JP1 = J + 1
+        IC = 1
+        IF (K .EQ. 0) GO TO 35
+        JJ1 = JP1 - K
+        DO 30 JJ = JJ1, J
+ 30       IC = IC*JJ
+ 35     C = REAL(IC)
+        DO 40 I = 1, N
+ 40       DKY(I) = C*YH(I,JP1) + S*DKY(I)
+ 50     CONTINUE
+      IF (K .EQ. 0) RETURN
+ 55   R = H**(-K)
+      CALL DSCAL (N, R, DKY, 1)
+      RETURN
+C
+ 80   MSG = 'DVINDY-- K (=I1) illegal      '
+      CALL XERRWD (MSG, 30, 51, 1, 1, K, 0, 0, ZERO, ZERO)
+      IFLAG = -1
+      RETURN
+ 90   MSG = 'DVINDY-- T (=R1) illegal      '
+      CALL XERRWD (MSG, 30, 52, 1, 0, 0, 0, 1, T, ZERO)
+      MSG='      T not in interval TCUR - HU (= R1) to TCUR (=R2)      '
+      CALL XERRWD (MSG, 60, 52, 1, 0, 0, 0, 2, TP, TN)
+      IFLAG = -2
+      RETURN
+C----------------------- End of Subroutine DVINDY ----------------------
+      END
+*DECK DVSTEP
+      SUBROUTINE DVSTEP (Y, YH, LDYH, YH1, EWT, SAVF, VSAV, ACOR,
+     1                  WM, IWM, F, JAC, PSOL, VNLS, RPAR, IPAR)
+      EXTERNAL F, JAC, PSOL, VNLS
+      KPP_REAL Y, YH, YH1, EWT, SAVF, VSAV, ACOR, WM, RPAR
+      INTEGER LDYH, IWM, IPAR
+      DIMENSION Y(*), YH(LDYH,*), YH1(*), EWT(*), SAVF(*), VSAV(*),
+     1   ACOR(*), WM(*), IWM(*), RPAR(*), IPAR(*)
+
+C-----------------------------------------------------------------------
+C Call sequence input -- Y, YH, LDYH, YH1, EWT, SAVF, VSAV,
+C                        ACOR, WM, IWM, F, JAC, PSOL, VNLS, RPAR, IPAR
+C Call sequence output -- YH, ACOR, WM, IWM
+C COMMON block variables accessed..
+C     /DVOD01/  ACNRM, EL(13), H, HMIN, HMXI, HNEW, HSCAL, RC, TAU(13),
+C               TQ(5), TN, JCUR, JSTART, KFLAG, KUTH,
+C               L, LMAX, MAXORD, MITER, N, NEWQ, NQ, NQWAIT
+C     /DVOD02/  HU, NCFN, NETF, NFE, NQU, NST
+C
+C Subroutines called by DVSTEP.. F, DAXPY, DCOPY, DSCAL,
+C                               DVJUST, VNLS, DVSET
+C Function routines called by DVSTEP.. DVNORM
+C-----------------------------------------------------------------------
+C DVSTEP performs one step of the integration of an initial value
+C problem for a system of ordinary differential equations.
+C DVSTEP calls subroutine VNLS for the solution of the nonlinear system
+C arising in the time step.  Thus it is independent of the problem
+C Jacobian structure and the type of nonlinear system solution method.
+C DVSTEP returns a completion flag KFLAG (in COMMON).
+C A return with KFLAG = -1 or -2 means either ABS(H) = HMIN or 10
+C consecutive failures occurred.  On a return with KFLAG negative,
+C the values of TN and the YH array are as of the beginning of the last
+C step, and H is the last step size attempted.
+C
+C Communication with DVSTEP is done with the following variables..
+C
+C Y      = An array of length N used for the dependent variable vector.
+C YH     = An LDYH by LMAX array containing the dependent variables
+C          and their approximate scaled derivatives, where
+C          LMAX = MAXORD + 1.  YH(i,j+1) contains the approximate
+C          j-th derivative of y(i), scaled by H**j/factorial(j)
+C          (j = 0,1,...,NQ).  On entry for the first step, the first
+C          two columns of YH must be set from the initial values.
+C LDYH   = A constant integer .ge. N, the first dimension of YH.
+C          N is the number of ODEs in the system.
+C YH1    = A one-dimensional array occupying the same space as YH.
+C EWT    = An array of length N containing multiplicative weights
+C          for local error measurements.  Local errors in y(i) are
+C          compared to 1.0/EWT(i) in various error tests.
+C SAVF   = An array of working storage, of length N.
+C          also used for input of YH(*,MAXORD+2) when JSTART = -1
+C          and MAXORD .lt. the current order NQ.
+C VSAV   = A work array of length N passed to subroutine VNLS.
+C ACOR   = A work array of length N, used for the accumulated
+C          corrections.  On a successful return, ACOR(i) contains
+C          the estimated one-step local error in y(i).
+C WM,IWM = Real and integer work arrays associated with matrix
+C          operations in VNLS.
+C F      = Dummy name for the user supplied subroutine for f.
+C JAC    = Dummy name for the user supplied Jacobian subroutine.
+C PSOL   = Dummy name for the subroutine passed to VNLS, for
+C          possible use there.
+C VNLS   = Dummy name for the nonlinear system solving subroutine,
+C          whose real name is dependent on the method used.
+C RPAR, IPAR = Dummy names for user's real and integer work arrays.
+C-----------------------------------------------------------------------
+C
+C Type declarations for labeled COMMON block DVOD01 --------------------
+C
+      KPP_REAL ACNRM, CCMXJ, CONP, CRATE, DRC, EL,
+     1     ETA, ETAMAX, H, HMIN, HMXI, HNEW, HSCAL, PRL1,
+     2     RC, RL1, TAU, TQ, TN, UROUND
+      INTEGER ICF, INIT, IPUP, JCUR, JSTART, JSV, KFLAG, KUTH,
+     1        L, LMAX, LYH, LEWT, LACOR, LSAVF, LWM, LIWM,
+     2        LOCJS, MAXORD, METH, MITER, MSBJ, MXHNIL, MXSTEP,
+     3        N, NEWH, NEWQ, NHNIL, NQ, NQNYH, NQWAIT, NSLJ,
+     4        NSLP, NYH
+C
+C Type declarations for labeled COMMON block DVOD02 --------------------
+C
+      KPP_REAL HU
+      INTEGER NCFN, NETF, NFE, NJE, NLU, NNI, NQU, NST
+C
+C Type declarations for local variables --------------------------------
+C
+      KPP_REAL ADDON, BIAS1,BIAS2,BIAS3, CNQUOT, DDN, DSM, DUP,
+     1     ETACF, ETAMIN, ETAMX1, ETAMX2, ETAMX3, ETAMXF,
+     2     ETAQ, ETAQM1, ETAQP1, FLOTL, ONE, ONEPSM,
+     3     R, THRESH, TOLD, ZERO
+      INTEGER I, I1, I2, IBACK, J, JB, KFC, KFH, MXNCF, NCF, NFLAG
+C
+C Type declaration for function subroutines called ---------------------
+C
+      KPP_REAL DVNORM
+C-----------------------------------------------------------------------
+C The following Fortran-77 declaration is to cause the values of the
+C listed (local) variables to be saved between calls to this integrator.
+C-----------------------------------------------------------------------
+      SAVE ADDON, BIAS1, BIAS2, BIAS3,
+     1     ETACF, ETAMIN, ETAMX1, ETAMX2, ETAMX3, ETAMXF,
+     2     KFC, KFH, MXNCF, ONEPSM, THRESH, ONE, ZERO
+C-----------------------------------------------------------------------
+      COMMON /DVOD01/ ACNRM, CCMXJ, CONP, CRATE, DRC, EL(13),
+     1                ETA, ETAMAX, H, HMIN, HMXI, HNEW, HSCAL, PRL1,
+     2                RC, RL1, TAU(13), TQ(5), TN, UROUND,
+     3                ICF, INIT, IPUP, JCUR, JSTART, JSV, KFLAG, KUTH,
+     4                L, LMAX, LYH, LEWT, LACOR, LSAVF, LWM, LIWM,
+     5                LOCJS, MAXORD, METH, MITER, MSBJ, MXHNIL, MXSTEP,
+     6                N, NEWH, NEWQ, NHNIL, NQ, NQNYH, NQWAIT, NSLJ,
+     7                NSLP, NYH
+      COMMON /DVOD02/ HU, NCFN, NETF, NFE, NJE, NLU, NNI, NQU, NST
+C
+      DATA KFC/-3/, KFH/-7/, MXNCF/10/
+      DATA ADDON  /1.0D-6/,    BIAS1  /6.0D0/,     BIAS2  /6.0D0/,
+     1     BIAS3  /10.0D0/,    ETACF  /0.25D0/,    ETAMIN /0.1D0/,
+     2     ETAMXF /0.2D0/,     ETAMX1 /1.0D4/,     ETAMX2 /10.0D1/,
+     3     ETAMX3 /10.0D1/,    ONEPSM /1.00001D0/, THRESH /1.5D0/
+
+      DATA ONE/1.0D0/, ZERO/0.0D0/
+C
+      ETAQ   = ETAMX1
+      ETAQM1 = ETAMX1
+      ETAQP1 = ETAMX1
+      KFLAG = 0
+      TOLD = TN
+      NCF = 0
+      JCUR = 0
+      NFLAG = 0
+      IF (JSTART .GT. 0) GO TO 20
+      IF (JSTART .EQ. -1) GO TO 100
+C-----------------------------------------------------------------------
+C On the first call, the order is set to 1, and other variables are
+C initialized.  ETAMAX is the maximum ratio by which H can be increased
+C in a single step.  It is normally 1.5, but is larger during the
+C first 10 steps to compensate for the small initial H.  If a failure
+C occurs (in corrector convergence or error test), ETAMAX is set to 1
+C for the next increase.
+C-----------------------------------------------------------------------
+      LMAX = MAXORD + 1
+      NQ = 1
+      L = 2
+      NQNYH = NQ*LDYH
+      TAU(1) = H
+      PRL1 = ONE
+      RC = ZERO
+      ETAMAX = ETAMX1
+      NQWAIT = 2
+      HSCAL = H
+      GO TO 200
+C-----------------------------------------------------------------------
+C Take preliminary actions on a normal continuation step (JSTART.GT.0).
+C If the driver changed H, then ETA must be reset and NEWH set to 1.
+C If a change of order was dictated on the previous step, then
+C it is done here and appropriate adjustments in the history are made.
+C On an order decrease, the history array is adjusted by DVJUST.
+C On an order increase, the history array is augmented by a column.
+C On a change of step size H, the history array YH is rescaled.
+C-----------------------------------------------------------------------
+ 20   CONTINUE
+      IF (KUTH .EQ. 1) THEN
+        ETA = MIN(ETA,H/HSCAL)
+        NEWH = 1
+        ENDIF
+ 50   IF (NEWH .EQ. 0) GO TO 200
+      IF (NEWQ .EQ. NQ) GO TO 150
+      IF (NEWQ .LT. NQ) THEN
+        CALL DVJUST (YH, LDYH, -1)
+        NQ = NEWQ
+        L = NQ + 1
+        NQWAIT = L
+        GO TO 150
+        ENDIF
+      IF (NEWQ .GT. NQ) THEN
+        CALL DVJUST (YH, LDYH, 1)
+        NQ = NEWQ
+        L = NQ + 1
+        NQWAIT = L
+        GO TO 150
+      ENDIF
+C-----------------------------------------------------------------------
+C The following block handles preliminaries needed when JSTART = -1.
+C If N was reduced, zero out part of YH to avoid undefined references.
+C If MAXORD was reduced to a value less than the tentative order NEWQ,
+C then NQ is set to MAXORD, and a new H ratio ETA is chosen.
+C Otherwise, we take the same preliminary actions as for JSTART .gt. 0.
+C In any case, NQWAIT is reset to L = NQ + 1 to prevent further
+C changes in order for that many steps.
+C The new H ratio ETA is limited by the input H if KUTH = 1,
+C by HMIN if KUTH = 0, and by HMXI in any case.
+C Finally, the history array YH is rescaled.
+C-----------------------------------------------------------------------
+ 100  CONTINUE
+      LMAX = MAXORD + 1
+      IF (N .EQ. LDYH) GO TO 120
+      I1 = 1 + (NEWQ + 1)*LDYH
+      I2 = (MAXORD + 1)*LDYH
+      IF (I1 .GT. I2) GO TO 120
+      DO 110 I = I1, I2
+ 110    YH1(I) = ZERO
+ 120  IF (NEWQ .LE. MAXORD) GO TO 140
+      FLOTL = REAL(LMAX)
+      IF (MAXORD .LT. NQ-1) THEN
+        DDN = DVNORM (N, SAVF, EWT)/TQ(1)
+        ETA = ONE/((BIAS1*DDN)**(ONE/FLOTL) + ADDON)
+        ENDIF
+      IF (MAXORD .EQ. NQ .AND. NEWQ .EQ. NQ+1) ETA = ETAQ
+      IF (MAXORD .EQ. NQ-1 .AND. NEWQ .EQ. NQ+1) THEN
+        ETA = ETAQM1
+        CALL DVJUST (YH, LDYH, -1)
+        ENDIF
+      IF (MAXORD .EQ. NQ-1 .AND. NEWQ .EQ. NQ) THEN
+        DDN = DVNORM (N, SAVF, EWT)/TQ(1)
+        ETA = ONE/((BIAS1*DDN)**(ONE/FLOTL) + ADDON)
+        CALL DVJUST (YH, LDYH, -1)
+        ENDIF
+      ETA = MIN(ETA,ONE)
+      NQ = MAXORD
+      L = LMAX
+ 140  IF (KUTH .EQ. 1) ETA = MIN(ETA,ABS(H/HSCAL))
+      IF (KUTH .EQ. 0) ETA = MAX(ETA,HMIN/ABS(HSCAL))
+      ETA = ETA/MAX(ONE,ABS(HSCAL)*HMXI*ETA)
+      NEWH = 1
+      NQWAIT = L
+      IF (NEWQ .LE. MAXORD) GO TO 50
+C Rescale the history array for a change in H by a factor of ETA. ------
+ 150  R = ONE
+      DO 180 J = 2, L
+        R = R*ETA
+        CALL DSCAL (N, R, YH(1,J), 1 )
+ 180    CONTINUE
+      H = HSCAL*ETA
+      HSCAL = H
+      RC = RC*ETA
+      NQNYH = NQ*LDYH
+C-----------------------------------------------------------------------
+C This section computes the predicted values by effectively
+C multiplying the YH array by the Pascal triangle matrix.
+C DVSET is called to calculate all integration coefficients.
+C RC is the ratio of new to old values of the coefficient H/EL(2)=h/l1.
+C-----------------------------------------------------------------------
+ 200  TN = TN + H
+      I1 = NQNYH + 1
+      DO 220 JB = 1, NQ
+        I1 = I1 - LDYH
+        DO 210 I = I1, NQNYH
+ 210      YH1(I) = YH1(I) + YH1(I+LDYH)
+ 220  CONTINUE
+      CALL DVSET
+      RL1 = ONE/EL(2)
+      RC = RC*(RL1/PRL1)
+      PRL1 = RL1
+C
+C Call the nonlinear system solver. ------------------------------------
+C
+      CALL VNLS (Y, YH, LDYH, VSAV, SAVF, EWT, ACOR, IWM, WM,
+     1           F, JAC, PSOL, NFLAG, RPAR, IPAR)
+C
+      IF ((NFLAG .EQ. 0).OR.(H.LE.1.2*HMIN)) GO TO 450
+C-----------------------------------------------------------------------
+C The VNLS routine failed to achieve convergence (NFLAG .NE. 0).
+C The YH array is retracted to its values before prediction.
+C The step size H is reduced and the step is retried, if possible.
+C Otherwise, an error exit is taken.
+C-----------------------------------------------------------------------
+        NCF = NCF + 1
+        NCFN = NCFN + 1
+        ETAMAX = ONE
+        TN = TOLD
+        I1 = NQNYH + 1
+        DO 430 JB = 1, NQ
+          I1 = I1 - LDYH
+          DO 420 I = I1, NQNYH
+ 420        YH1(I) = YH1(I) - YH1(I+LDYH)
+ 430      CONTINUE
+        IF (NFLAG .LT. -1) GO TO 680
+        IF (ABS(H) .LE. HMIN*ONEPSM) GO TO 670
+        IF (NCF .EQ. MXNCF) GO TO 670
+        ETA = ETACF
+        ETA = MAX(ETA,HMIN/ABS(H))
+        NFLAG = -1
+        GO TO 150
+C-----------------------------------------------------------------------
+C The corrector has converged (NFLAG = 0).  The local error test is
+C made and control passes to statement 500 if it fails.
+C-----------------------------------------------------------------------
+ 450  CONTINUE
+      DSM = ACNRM/TQ(2)
+      IF ( (DSM .GT. ONE).and.(H.GT.HMIN) ) GO TO 500
+C-----------------------------------------------------------------------
+C After a successful step, update the YH and TAU arrays and decrement
+C NQWAIT.  If NQWAIT is then 1 and NQ .lt. MAXORD, then ACOR is saved
+C for use in a possible order increase on the next step.
+C If ETAMAX = 1 (a failure occurred this step), keep NQWAIT .ge. 2.
+C-----------------------------------------------------------------------
+      KFLAG = 0
+      NST = NST + 1
+      HU = H
+      NQU = NQ
+      DO 470 IBACK = 1, NQ
+        I = L - IBACK
+ 470    TAU(I+1) = TAU(I)
+      TAU(1) = H
+      DO 480 J = 1, L
+        CALL DAXPY (N, EL(J), ACOR, 1, YH(1,J), 1 )
+ 480    CONTINUE
+      NQWAIT = NQWAIT - 1
+      IF ((L .EQ. LMAX) .OR. (NQWAIT .NE. 1)) GO TO 490
+      CALL DCOPY (N, ACOR, 1, YH(1,LMAX), 1 )
+      CONP = TQ(5)
+ 490  IF (ETAMAX .NE. ONE) GO TO 560
+      IF (NQWAIT .LT. 2) NQWAIT = 2
+      NEWQ = NQ
+      NEWH = 0
+      ETA = ONE
+      HNEW = H
+      GO TO 690
+C-----------------------------------------------------------------------
+C The error test failed.  KFLAG keeps track of multiple failures.
+C Restore TN and the YH array to their previous values, and prepare
+C to try the step again.  Compute the optimum step size for the
+C same order.  After repeated failures, H is forced to decrease
+C more rapidly.
+C-----------------------------------------------------------------------
+ 500  KFLAG = KFLAG - 1
+      NETF = NETF + 1
+      NFLAG = -2
+      TN = TOLD
+      I1 = NQNYH + 1
+      DO 520 JB = 1, NQ
+        I1 = I1 - LDYH
+        DO 510 I = I1, NQNYH
+ 510      YH1(I) = YH1(I) - YH1(I+LDYH)
+ 520  CONTINUE
+      IF (ABS(H) .LE. HMIN*ONEPSM) GO TO 660
+      ETAMAX = ONE
+      IF (KFLAG .LE. KFC) GO TO 530
+C Compute ratio of new H to current H at the current order. ------------
+      FLOTL = REAL(L)
+      ETA = ONE/((BIAS2*DSM)**(ONE/FLOTL) + ADDON)
+      ETA = MAX(ETA,HMIN/ABS(H),ETAMIN)
+      IF ((KFLAG .LE. -2) .AND. (ETA .GT. ETAMXF)) ETA = ETAMXF
+      GO TO 150
+C-----------------------------------------------------------------------
+C Control reaches this section if 3 or more consecutive failures
+C have occurred.  It is assumed that the elements of the YH array
+C have accumulated errors of the wrong order.  The order is reduced
+C by one, if possible.  Then H is reduced by a factor of 0.1 and
+C the step is retried.  After a total of 7 consecutive failures,
+C an exit is taken with KFLAG = -1.
+C-----------------------------------------------------------------------
+ 530  IF (KFLAG .EQ. KFH) GO TO 660
+      IF (NQ .EQ. 1) GO TO 540
+      ETA = MAX(ETAMIN,HMIN/ABS(H))
+      CALL DVJUST (YH, LDYH, -1)
+      L = NQ
+      NQ = NQ - 1
+      NQWAIT = L
+      GO TO 150
+ 540  ETA = MAX(ETAMIN,HMIN/ABS(H))
+      H = H*ETA
+      HSCAL = H
+      TAU(1) = H
+      CALL F (N, TN, Y, SAVF)
+      NFE = NFE + 1
+      DO 550 I = 1, N
+ 550    YH(I,2) = H*SAVF(I)
+      NQWAIT = 10
+      GO TO 200
+C-----------------------------------------------------------------------
+C If NQWAIT = 0, an increase or decrease in order by one is considered.
+C Factors ETAQ, ETAQM1, ETAQP1 are computed by which H could
+C be multiplied at order q, q-1, or q+1, respectively.
+C The largest of these is determined, and the new order and
+C step size set accordingly.
+C A change of H or NQ is made only if H increases by at least a
+C factor of THRESH.  If an order change is considered and rejected,
+C then NQWAIT is set to 2 (reconsider it after 2 steps).
+C-----------------------------------------------------------------------
+C Compute ratio of new H to current H at the current order. ------------
+ 560  FLOTL = REAL(L)
+      ETAQ = ONE/((BIAS2*DSM)**(ONE/FLOTL) + ADDON)
+      IF (NQWAIT .NE. 0) GO TO 600
+      NQWAIT = 2
+      ETAQM1 = ZERO
+      IF (NQ .EQ. 1) GO TO 570
+C Compute ratio of new H to current H at the current order less one. ---
+      DDN = DVNORM (N, YH(1,L), EWT)/TQ(1)
+      ETAQM1 = ONE/((BIAS1*DDN)**(ONE/(FLOTL - ONE)) + ADDON)
+ 570  ETAQP1 = ZERO
+      IF (L .EQ. LMAX) GO TO 580
+C Compute ratio of new H to current H at current order plus one. -------
+      CNQUOT = (TQ(5)/CONP)*(H/TAU(2))**L
+      DO 575 I = 1, N
+ 575    SAVF(I) = ACOR(I) - CNQUOT*YH(I,LMAX)
+      DUP = DVNORM (N, SAVF, EWT)/TQ(3)
+      ETAQP1 = ONE/((BIAS3*DUP)**(ONE/(FLOTL + ONE)) + ADDON)
+ 580  IF (ETAQ .GE. ETAQP1) GO TO 590
+      IF (ETAQP1 .GT. ETAQM1) GO TO 620
+      GO TO 610
+ 590  IF (ETAQ .LT. ETAQM1) GO TO 610
+ 600  ETA = ETAQ
+      NEWQ = NQ
+      GO TO 630
+ 610  ETA = ETAQM1
+      NEWQ = NQ - 1
+      GO TO 630
+ 620  ETA = ETAQP1
+      NEWQ = NQ + 1
+      CALL DCOPY (N, ACOR, 1, YH(1,LMAX), 1)
+C Test tentative new H against THRESH, ETAMAX, and HMXI, then exit. ----
+ 630  IF (ETA .LT. THRESH .OR. ETAMAX .EQ. ONE) GO TO 640
+      ETA = MIN(ETA,ETAMAX)
+      ETA = ETA/MAX(ONE,ABS(H)*HMXI*ETA)
+      NEWH = 1
+      HNEW = H*ETA
+      GO TO 690
+ 640  NEWQ = NQ
+      NEWH = 0
+      ETA = ONE
+      HNEW = H
+      GO TO 690
+C-----------------------------------------------------------------------
+C All returns are made through this section.
+C On a successful return, ETAMAX is reset and ACOR is scaled.
+C-----------------------------------------------------------------------
+ 660  KFLAG = -1
+      GO TO 720
+ 670  KFLAG = -2
+      GO TO 720
+ 680  IF (NFLAG .EQ. -2) KFLAG = -3
+      IF (NFLAG .EQ. -3) KFLAG = -4
+      GO TO 720
+ 690  ETAMAX = ETAMX3
+      IF (NST .LE. 10) ETAMAX = ETAMX2
+ 700  R = ONE/TQ(2)
+      CALL DSCAL (N, R, ACOR, 1)
+ 720  JSTART = 1
+      RETURN
+C----------------------- End of Subroutine DVSTEP ----------------------
+      END
+*DECK DVSET
+      SUBROUTINE DVSET
+C-----------------------------------------------------------------------
+C Call sequence communication.. None
+C COMMON block variables accessed..
+C     /DVOD01/ -- EL(13), H, TAU(13), TQ(5), L(= NQ + 1),
+C                 METH, NQ, NQWAIT
+C
+C Subroutines called by DVSET.. None
+C Function routines called by DVSET.. None
+C-----------------------------------------------------------------------
+C DVSET is called by DVSTEP and sets coefficients for use there.
+C
+C For each order NQ, the coefficients in EL are calculated by use of
+C  the generating polynomial lambda(x), with coefficients EL(i).
+C      lambda(x) = EL(1) + EL(2)*x + ... + EL(NQ+1)*(x**NQ).
+C For the backward differentiation formulas,
+C                                     NQ-1
+C      lambda(x) = (1 + x/xi*(NQ)) * product (1 + x/xi(i) ) .
+C                                     i = 1
+C For the Adams formulas,
+C                              NQ-1
+C      (d/dx) lambda(x) = c * product (1 + x/xi(i) ) ,
+C                              i = 1
+C      lambda(-1) = 0,    lambda(0) = 1,
+C where c is a normalization constant.
+C In both cases, xi(i) is defined by
+C      H*xi(i) = t sub n  -  t sub (n-i)
+C              = H + TAU(1) + TAU(2) + ... TAU(i-1).
+C
+C
+C In addition to variables described previously, communication
+C with DVSET uses the following..
+C   TAU    = A vector of length 13 containing the past NQ values
+C            of H.
+C   EL     = A vector of length 13 in which vset stores the
+C            coefficients for the corrector formula.
+C   TQ     = A vector of length 5 in which vset stores constants
+C            used for the convergence test, the error test, and the
+C            selection of H at a new order.
+C   METH   = The basic method indicator.
+C   NQ     = The current order.
+C   L      = NQ + 1, the length of the vector stored in EL, and
+C            the number of columns of the YH array being used.
+C   NQWAIT = A counter controlling the frequency of order changes.
+C            An order change is about to be considered if NQWAIT = 1.
+C-----------------------------------------------------------------------
+C
+C Type declarations for labeled COMMON block DVOD01 --------------------
+C
+      KPP_REAL ACNRM, CCMXJ, CONP, CRATE, DRC, EL,
+     1     ETA, ETAMAX, H, HMIN, HMXI, HNEW, HSCAL, PRL1,
+     2     RC, RL1, TAU, TQ, TN, UROUND
+      INTEGER ICF, INIT, IPUP, JCUR, JSTART, JSV, KFLAG, KUTH,
+     1        L, LMAX, LYH, LEWT, LACOR, LSAVF, LWM, LIWM,
+     2        LOCJS, MAXORD, METH, MITER, MSBJ, MXHNIL, MXSTEP,
+     3        N, NEWH, NEWQ, NHNIL, NQ, NQNYH, NQWAIT, NSLJ,
+     4        NSLP, NYH
+C
+C Type declarations for local variables --------------------------------
+C
+      KPP_REAL AHATN0, ALPH0, CNQM1, CORTES, CSUM, ELP, EM,
+     1     EM0, FLOTI, FLOTL, FLOTNQ, HSUM, ONE, RXI, RXIS, S, SIX,
+     2     T1, T2, T3, T4, T5, T6, TWO, XI, ZERO
+      INTEGER I, IBACK, J, JP1, NQM1, NQM2
+C
+      DIMENSION EM(13)
+C-----------------------------------------------------------------------
+C The following Fortran-77 declaration is to cause the values of the
+C listed (local) variables to be saved between calls to this integrator.
+C-----------------------------------------------------------------------
+      SAVE CORTES, ONE, SIX, TWO, ZERO
+C
+      COMMON /DVOD01/ ACNRM, CCMXJ, CONP, CRATE, DRC, EL(13),
+     1                ETA, ETAMAX, H, HMIN, HMXI, HNEW, HSCAL, PRL1,
+     2                RC, RL1, TAU(13), TQ(5), TN, UROUND,
+     3                ICF, INIT, IPUP, JCUR, JSTART, JSV, KFLAG, KUTH,
+     4                L, LMAX, LYH, LEWT, LACOR, LSAVF, LWM, LIWM,
+     5                LOCJS, MAXORD, METH, MITER, MSBJ, MXHNIL, MXSTEP,
+     6                N, NEWH, NEWQ, NHNIL, NQ, NQNYH, NQWAIT, NSLJ,
+     7                NSLP, NYH
+C
+      DATA CORTES /0.1D0/
+      DATA ONE  /1.0D0/, SIX /6.0D0/, TWO /2.0D0/, ZERO /0.0D0/
+C
+      FLOTL = REAL(L)
+      NQM1 = NQ - 1
+      NQM2 = NQ - 2
+      GO TO (100, 200), METH
+C
+C Set coefficients for Adams methods. ----------------------------------
+ 100  IF (NQ .NE. 1) GO TO 110
+      EL(1) = ONE
+      EL(2) = ONE
+      TQ(1) = ONE
+      TQ(2) = TWO
+      TQ(3) = SIX*TQ(2)
+      TQ(5) = ONE
+      GO TO 300
+ 110  HSUM = H
+      EM(1) = ONE
+      FLOTNQ = FLOTL - ONE
+      DO 115 I = 2, L
+ 115    EM(I) = ZERO
+      DO 150 J = 1, NQM1
+        IF ((J .NE. NQM1) .OR. (NQWAIT .NE. 1)) GO TO 130
+        S = ONE
+        CSUM = ZERO
+        DO 120 I = 1, NQM1
+          CSUM = CSUM + S*EM(I)/REAL(I+1)
+ 120      S = -S
+        TQ(1) = EM(NQM1)/(FLOTNQ*CSUM)
+ 130    RXI = H/HSUM
+        DO 140 IBACK = 1, J
+          I = (J + 2) - IBACK
+ 140      EM(I) = EM(I) + EM(I-1)*RXI
+        HSUM = HSUM + TAU(J)
+ 150    CONTINUE
+C Compute integral from -1 to 0 of polynomial and of x times it. -------
+      S = ONE
+      EM0 = ZERO
+      CSUM = ZERO
+      DO 160 I = 1, NQ
+        FLOTI = REAL(I)
+        EM0 = EM0 + S*EM(I)/FLOTI
+        CSUM = CSUM + S*EM(I)/(FLOTI+ONE)
+ 160    S = -S
+C In EL, form coefficients of normalized integrated polynomial. --------
+      S = ONE/EM0
+      EL(1) = ONE
+      DO 170 I = 1, NQ
+ 170    EL(I+1) = S*EM(I)/REAL(I)
+      XI = HSUM/H
+      TQ(2) = XI*EM0/CSUM
+      TQ(5) = XI/EL(L)
+      IF (NQWAIT .NE. 1) GO TO 300
+C For higher order control constant, multiply polynomial by 1+x/xi(q). -
+      RXI = ONE/XI
+      DO 180 IBACK = 1, NQ
+        I = (L + 1) - IBACK
+ 180    EM(I) = EM(I) + EM(I-1)*RXI
+C Compute integral of polynomial. --------------------------------------
+      S = ONE
+      CSUM = ZERO
+      DO 190 I = 1, L
+        CSUM = CSUM + S*EM(I)/REAL(I+1)
+ 190    S = -S
+      TQ(3) = FLOTL*EM0/CSUM
+      GO TO 300
+C
+C Set coefficients for BDF methods. ------------------------------------
+ 200  DO 210 I = 3, L
+ 210    EL(I) = ZERO
+      EL(1) = ONE
+      EL(2) = ONE
+      ALPH0 = -ONE
+      AHATN0 = -ONE
+      HSUM = H
+      RXI = ONE
+      RXIS = ONE
+      IF (NQ .EQ. 1) GO TO 240
+      DO 230 J = 1, NQM2
+C In EL, construct coefficients of (1+x/xi(1))*...*(1+x/xi(j+1)). ------
+        HSUM = HSUM + TAU(J)
+        RXI = H/HSUM
+        JP1 = J + 1
+        ALPH0 = ALPH0 - ONE/REAL(JP1)
+        DO 220 IBACK = 1, JP1
+          I = (J + 3) - IBACK
+ 220      EL(I) = EL(I) + EL(I-1)*RXI
+ 230    CONTINUE
+      ALPH0 = ALPH0 - ONE/REAL(NQ)
+      RXIS = -EL(2) - ALPH0
+      HSUM = HSUM + TAU(NQM1)
+      RXI = H/HSUM
+      AHATN0 = -EL(2) - RXI
+      DO 235 IBACK = 1, NQ
+        I = (NQ + 2) - IBACK
+ 235    EL(I) = EL(I) + EL(I-1)*RXIS
+ 240  T1 = ONE - AHATN0 + ALPH0
+      T2 = ONE + REAL(NQ)*T1
+      TQ(2) = ABS(ALPH0*T2/T1)
+      TQ(5) = ABS(T2/(EL(L)*RXI/RXIS))
+      IF (NQWAIT .NE. 1) GO TO 300
+      CNQM1 = RXIS/EL(L)
+      T3 = ALPH0 + ONE/REAL(NQ)
+      T4 = AHATN0 + RXI
+      ELP = T3/(ONE - T4 + T3)
+      TQ(1) = ABS(ELP/CNQM1)
+      HSUM = HSUM + TAU(NQ)
+      RXI = H/HSUM
+      T5 = ALPH0 - ONE/REAL(NQ+1)
+      T6 = AHATN0 - RXI
+      ELP = T2/(ONE - T6 + T5)
+      TQ(3) = ABS(ELP*RXI*(FLOTL + ONE)*T5)
+ 300  TQ(4) = CORTES*TQ(2)
+      RETURN
+C----------------------- End of Subroutine DVSET -----------------------
+      END
+*DECK DVJUST
+      SUBROUTINE DVJUST (YH, LDYH, IORD)
+      KPP_REAL YH
+      INTEGER LDYH, IORD
+      DIMENSION YH(LDYH,*)
+C-----------------------------------------------------------------------
+C Call sequence input -- YH, LDYH, IORD
+C Call sequence output -- YH
+C COMMON block input -- NQ, METH, LMAX, HSCAL, TAU(13), N
+C COMMON block variables accessed..
+C     /DVOD01/ -- HSCAL, TAU(13), LMAX, METH, N, NQ,
+C
+C Subroutines called by DVJUST.. DAXPY
+C Function routines called by DVJUST.. None
+C-----------------------------------------------------------------------
+C This subroutine adjusts the YH array on reduction of order,
+C and also when the order is increased for the stiff option (METH = 2).
+C Communication with DVJUST uses the following..
+C IORD  = An integer flag used when METH = 2 to indicate an order
+C         increase (IORD = +1) or an order decrease (IORD = -1).
+C HSCAL = Step size H used in scaling of Nordsieck array YH.
+C         (If IORD = +1, DVJUST assumes that HSCAL = TAU(1).)
+C See References 1 and 2 for details.
+C-----------------------------------------------------------------------
+C
+C Type declarations for labeled COMMON block DVOD01 --------------------
+C
+      KPP_REAL ACNRM, CCMXJ, CONP, CRATE, DRC, EL,
+     1     ETA, ETAMAX, H, HMIN, HMXI, HNEW, HSCAL, PRL1,
+     2     RC, RL1, TAU, TQ, TN, UROUND
+      INTEGER ICF, INIT, IPUP, JCUR, JSTART, JSV, KFLAG, KUTH,
+     1        L, LMAX, LYH, LEWT, LACOR, LSAVF, LWM, LIWM,
+     2        LOCJS, MAXORD, METH, MITER, MSBJ, MXHNIL, MXSTEP,
+     3        N, NEWH, NEWQ, NHNIL, NQ, NQNYH, NQWAIT, NSLJ,
+     4        NSLP, NYH
+C
+C Type declarations for local variables --------------------------------
+C
+      KPP_REAL ALPH0, ALPH1, HSUM, ONE, PROD, T1, XI,XIOLD, ZERO
+      INTEGER I, IBACK, J, JP1, LP1, NQM1, NQM2, NQP1
+C-----------------------------------------------------------------------
+C The following Fortran-77 declaration is to cause the values of the
+C listed (local) variables to be saved between calls to this integrator.
+C-----------------------------------------------------------------------
+      SAVE ONE, ZERO
+C
+      COMMON /DVOD01/ ACNRM, CCMXJ, CONP, CRATE, DRC, EL(13),
+     1                ETA, ETAMAX, H, HMIN, HMXI, HNEW, HSCAL, PRL1,
+     2                RC, RL1, TAU(13), TQ(5), TN, UROUND,
+     3                ICF, INIT, IPUP, JCUR, JSTART, JSV, KFLAG, KUTH,
+     4                L, LMAX, LYH, LEWT, LACOR, LSAVF, LWM, LIWM,
+     5                LOCJS, MAXORD, METH, MITER, MSBJ, MXHNIL, MXSTEP,
+     6                N, NEWH, NEWQ, NHNIL, NQ, NQNYH, NQWAIT, NSLJ,
+     7                NSLP, NYH
+C
+      DATA ONE /1.0D0/, ZERO /0.0D0/
+C
+      IF ((NQ .EQ. 2) .AND. (IORD .NE. 1)) RETURN
+      NQM1 = NQ - 1
+      NQM2 = NQ - 2
+      GO TO (100, 200), METH
+C-----------------------------------------------------------------------
+C Nonstiff option...
+C Check to see if the order is being increased or decreased.
+C-----------------------------------------------------------------------
+ 100  CONTINUE
+      IF (IORD .EQ. 1) GO TO 180
+C Order decrease. ------------------------------------------------------
+      DO 110 J = 1, LMAX
+ 110    EL(J) = ZERO
+      EL(2) = ONE
+      HSUM = ZERO
+      DO 130 J = 1, NQM2
+C Construct coefficients of x*(x+xi(1))*...*(x+xi(j)). -----------------
+        HSUM = HSUM + TAU(J)
+        XI = HSUM/HSCAL
+        JP1 = J + 1
+        DO 120 IBACK = 1, JP1
+          I = (J + 3) - IBACK
+ 120      EL(I) = EL(I)*XI + EL(I-1)
+ 130    CONTINUE
+C Construct coefficients of integrated polynomial. ---------------------
+      DO 140 J = 2, NQM1
+ 140    EL(J+1) = REAL(NQ)*EL(J)/REAL(J)
+C Subtract correction terms from YH array. -----------------------------
+      DO 170 J = 3, NQ
+        DO 160 I = 1, N
+ 160      YH(I,J) = YH(I,J) - YH(I,L)*EL(J)
+ 170    CONTINUE
+      RETURN
+C Order increase. ------------------------------------------------------
+C Zero out next column in YH array. ------------------------------------
+ 180  CONTINUE
+      LP1 = L + 1
+      DO 190 I = 1, N
+ 190    YH(I,LP1) = ZERO
+      RETURN
+C-----------------------------------------------------------------------
+C Stiff option...
+C Check to see if the order is being increased or decreased.
+C-----------------------------------------------------------------------
+ 200  CONTINUE
+      IF (IORD .EQ. 1) GO TO 300
+C Order decrease. ------------------------------------------------------
+      DO 210 J = 1, LMAX
+ 210    EL(J) = ZERO
+      EL(3) = ONE
+      HSUM = ZERO
+      DO 230 J = 1,NQM2
+C Construct coefficients of x*x*(x+xi(1))*...*(x+xi(j)). ---------------
+        HSUM = HSUM + TAU(J)
+        XI = HSUM/HSCAL
+        JP1 = J + 1
+        DO 220 IBACK = 1, JP1
+          I = (J + 4) - IBACK
+ 220      EL(I) = EL(I)*XI + EL(I-1)
+ 230    CONTINUE
+C Subtract correction terms from YH array. -----------------------------
+      DO 250 J = 3,NQ
+        DO 240 I = 1, N
+ 240      YH(I,J) = YH(I,J) - YH(I,L)*EL(J)
+ 250    CONTINUE
+      RETURN
+C Order increase. ------------------------------------------------------
+ 300  DO 310 J = 1, LMAX
+ 310    EL(J) = ZERO
+      EL(3) = ONE
+      ALPH0 = -ONE
+      ALPH1 = ONE
+      PROD = ONE
+      XIOLD = ONE
+      HSUM = HSCAL
+      IF (NQ .EQ. 1) GO TO 340
+      DO 330 J = 1, NQM1
+C Construct coefficients of x*x*(x+xi(1))*...*(x+xi(j)). ---------------
+        JP1 = J + 1
+        HSUM = HSUM + TAU(JP1)
+        XI = HSUM/HSCAL
+        PROD = PROD*XI
+        ALPH0 = ALPH0 - ONE/REAL(JP1)
+        ALPH1 = ALPH1 + ONE/XI
+        DO 320 IBACK = 1, JP1
+          I = (J + 4) - IBACK
+ 320      EL(I) = EL(I)*XIOLD + EL(I-1)
+        XIOLD = XI
+ 330    CONTINUE
+ 340  CONTINUE
+      T1 = (-ALPH0 - ALPH1)/PROD
+C Load column L + 1 in YH array. ---------------------------------------
+      LP1 = L + 1
+      DO 350 I = 1, N
+ 350    YH(I,LP1) = T1*YH(I,LMAX)
+C Add correction terms to YH array. ------------------------------------
+      NQP1 = NQ + 1
+      DO 370 J = 3, NQP1
+        CALL DAXPY (N, EL(J), YH(1,LP1), 1, YH(1,J), 1 )
+ 370  CONTINUE
+      RETURN
+C----------------------- End of Subroutine DVJUST ----------------------
+      END
+*DECK DVNLSD
+      SUBROUTINE DVNLSD (Y, YH, LDYH, VSAV, SAVF, EWT, ACOR, IWM, WM,
+     1                 F, JAC, PDUM, NFLAG, RPAR, IPAR)
+      EXTERNAL F, JAC, PDUM
+      KPP_REAL Y, YH, VSAV, SAVF, EWT, ACOR, WM, RPAR
+      INTEGER LDYH, IWM, NFLAG, IPAR
+      DIMENSION Y(*), YH(LDYH,*), VSAV(*), SAVF(*), EWT(*), ACOR(*),
+     1          IWM(*), WM(*), RPAR(*), IPAR(*)
+
+C-----------------------------------------------------------------------
+C Call sequence input -- Y, YH, LDYH, SAVF, EWT, ACOR, IWM, WM,
+C                        F, JAC, NFLAG, RPAR, IPAR
+C Call sequence output -- YH, ACOR, WM, IWM, NFLAG
+C COMMON block variables accessed..
+C     /DVOD01/ ACNRM, CRATE, DRC, H, RC, RL1, TQ(5), TN, ICF,
+C                JCUR, METH, MITER, N, NSLP
+C     /DVOD02/ HU, NCFN, NETF, NFE, NJE, NLU, NNI, NQU, NST
+C
+C Subroutines called by DVNLSD.. F, DAXPY, DCOPY, DSCAL, DVJAC, DVSOL
+C Function routines called by DVNLSD.. DVNORM
+C-----------------------------------------------------------------------
+C Subroutine DVNLSD is a nonlinear system solver, which uses functional
+C iteration or a chord (modified Newton) method.  For the chord method
+C direct linear algebraic system solvers are used.  Subroutine DVNLSD
+C then handles the corrector phase of this integration package.
+C
+C Communication with DVNLSD is done with the following variables. (For
+C more details, please see the comments in the driver subroutine.)
+C
+C Y          = The dependent variable, a vector of length N, input.
+C YH         = The Nordsieck (Taylor) array, LDYH by LMAX, input
+C              and output.  On input, it contains predicted values.
+C LDYH       = A constant .ge. N, the first dimension of YH, input.
+C VSAV       = Unused work array.
+C SAVF       = A work array of length N.
+C EWT        = An error weight vector of length N, input.
+C ACOR       = A work array of length N, used for the accumulated
+C              corrections to the predicted y vector.
+C WM,IWM     = Real and integer work arrays associated with matrix
+C              operations in chord iteration (MITER .ne. 0).
+C F          = Dummy name for user supplied routine for f.
+C JAC        = Dummy name for user supplied Jacobian routine.
+C PDUM       = Unused dummy subroutine name.  Included for uniformity
+C              over collection of integrators.
+C NFLAG      = Input/output flag, with values and meanings as follows..
+C              INPUT
+C                  0 first CALL for this time step.
+C                 -1 convergence failure in previous CALL to DVNLSD.
+C                 -2 error test failure in DVSTEP.
+C              OUTPUT
+C                  0 successful completion of nonlinear solver.
+C                 -1 convergence failure or singular matrix.
+C                 -2 unrecoverable error in matrix preprocessing
+C                    (cannot occur here).
+C                 -3 unrecoverable error in solution (cannot occur
+C                    here).
+C RPAR, IPAR = Dummy names for user's real and integer work arrays.
+C
+C IPUP       = Own variable flag with values and meanings as follows..
+C              0,            do not update the Newton matrix.
+C              MITER .ne. 0, update Newton matrix, because it is the
+C                            initial step, order was changed, the error
+C                            test failed, or an update is indicated by
+C                            the scalar RC or step counter NST.
+C
+C For more details, see comments in driver subroutine.
+C-----------------------------------------------------------------------
+C Type declarations for labeled COMMON block DVOD01 --------------------
+C
+      KPP_REAL ACNRM, CCMXJ, CONP, CRATE, DRC, EL,
+     1     ETA, ETAMAX, H, HMIN, HMXI, HNEW, HSCAL, PRL1,
+     2     RC, RL1, TAU, TQ, TN, UROUND
+      INTEGER ICF, INIT, IPUP, JCUR, JSTART, JSV, KFLAG, KUTH,
+     1        L, LMAX, LYH, LEWT, LACOR, LSAVF, LWM, LIWM,
+     2        LOCJS, MAXORD, METH, MITER, MSBJ, MXHNIL, MXSTEP,
+     3        N, NEWH, NEWQ, NHNIL, NQ, NQNYH, NQWAIT, NSLJ,
+     4        NSLP, NYH
+C
+C Type declarations for labeled COMMON block DVOD02 --------------------
+C
+      KPP_REAL HU
+      INTEGER NCFN, NETF, NFE, NJE, NLU, NNI, NQU, NST
+C
+C Type declarations for local variables --------------------------------
+C
+      KPP_REAL CCMAX, CRDOWN, CSCALE, DCON, DEL, DELP, ONE,
+     1     RDIV, TWO, ZERO
+      INTEGER I, IERPJ, IERSL, M, MAXCOR, MSBP
+C
+C Type declaration for function subroutines called ---------------------
+C
+      KPP_REAL DVNORM, STEPCUT
+C-----------------------------------------------------------------------
+C The following Fortran-77 declaration is to cause the values of the
+C listed (local) variables to be saved between calls to this integrator.
+C-----------------------------------------------------------------------
+      SAVE CCMAX, CRDOWN, MAXCOR, MSBP, RDIV, ONE, TWO, ZERO
+C
+      COMMON /DVOD01/ ACNRM, CCMXJ, CONP, CRATE, DRC, EL(13),
+     1                ETA, ETAMAX, H, HMIN, HMXI, HNEW, HSCAL, PRL1,
+     2                RC, RL1, TAU(13), TQ(5), TN, UROUND,
+     3                ICF, INIT, IPUP, JCUR, JSTART, JSV, KFLAG, KUTH,
+     4                L, LMAX, LYH, LEWT, LACOR, LSAVF, LWM, LIWM,
+     5                LOCJS, MAXORD, METH, MITER, MSBJ, MXHNIL, MXSTEP,
+     6                N, NEWH, NEWQ, NHNIL, NQ, NQNYH, NQWAIT, NSLJ,
+     7                NSLP, NYH
+      COMMON /DVOD02/ HU, NCFN, NETF, NFE, NJE, NLU, NNI, NQU, NST
+C
+      COMMON /VERWER/ IVERWER, IBEGIN, STEPCUT
+      DATA CCMAX /0.3D0/, CRDOWN /0.3D0/, MAXCOR /3/, MSBP /20/,
+     1     RDIV  /2.0D0/
+      DATA ONE /1.0D0/, TWO /2.0D0/, ZERO /0.0D0/
+C-----------------------------------------------------------------------
+C On the first step, on a change of method order, or after a
+C nonlinear convergence failure with NFLAG = -2, set IPUP = MITER
+C to force a Jacobian update when MITER .ne. 0.
+C-----------------------------------------------------------------------
+      if ( (h.lt.stepcut).and.(IBEGIN.eq.1) ) then
+c      if (h.lt.stepcut) then
+         iverwer = 1
+      else
+         ibegin = 0
+         iverwer = 0
+      end if
+      IF (JSTART .EQ. 0) NSLP = 0
+      IF (NFLAG .EQ. 0) ICF = 0
+      IF (NFLAG .EQ. -2) IPUP = MITER
+      IF ( (JSTART .EQ. 0) .OR. (JSTART .EQ. -1) ) IPUP = MITER
+C If this is functional iteration, set CRATE .eq. 1 and drop to 220
+      IF (MITER .EQ. 0) THEN
+        CRATE = ONE
+        GO TO 220
+      ENDIF
+C-----------------------------------------------------------------------
+C RC is the ratio of new to old values of the coefficient H/EL(2)=h/l1.
+C When RC differs from 1 by more than CCMAX, IPUP is set to MITER
+C to force DVJAC to be called, if a Jacobian is involved.
+C In any case, DVJAC is called at least every MSBP steps.
+C-----------------------------------------------------------------------
+      DRC = ABS(RC-ONE)
+      IF (DRC .GT. CCMAX .OR. NST .GE. NSLP+MSBP) IPUP = MITER
+C-----------------------------------------------------------------------
+C Up to MAXCOR corrector iterations are taken.  A convergence test is
+C made on the r.m.s. norm of each correction, weighted by the error
+C weight vector EWT.  The sum of the corrections is accumulated in the
+C vector ACOR(i).  The YH array is not altered in the corrector loop.
+C-----------------------------------------------------------------------
+ 220  M = 0
+      DELP = ZERO
+      CALL DCOPY (N, YH(1,1), 1, Y, 1 )
+      CALL F (N, TN, Y, SAVF)
+      NFE = NFE + 1
+      IF (IPUP .LE. 0) GO TO 250
+C-----------------------------------------------------------------------
+C If indicated, the matrix P = I - h*rl1*J is reevaluated and
+C preprocessed before starting the corrector iteration.  IPUP is set
+C to 0 as an indicator that this has been done.
+C-----------------------------------------------------------------------
+      IF (IVERWER.EQ.0) THEN
+      CALL DVJAC (Y, YH, LDYH, EWT, ACOR, SAVF, WM, IWM, F, JAC, IERPJ,
+     1           RPAR, IPAR)
+      ELSE
+        IERPJ = 0
+      END IF
+      IPUP = 0
+      RC = ONE
+      DRC = ZERO
+      CRATE = ONE
+      NSLP = NST
+C If matrix is singular, take error return to force cut in step size. --
+      IF (IERPJ .NE. 0) GO TO 430
+ 250  DO 260 I = 1,N
+ 260    ACOR(I) = ZERO
+C This is a looping point for the corrector iteration. -----------------
+ 270  IF (MITER .NE. 0) GO TO 350
+C-----------------------------------------------------------------------
+C In the case of functional iteration, update Y directly from
+C the result of the last function evaluation.
+C-----------------------------------------------------------------------
+      DO 280 I = 1,N
+ 280    SAVF(I) = RL1*(H*SAVF(I) - YH(I,2))
+      DO 290 I = 1,N
+ 290    Y(I) = SAVF(I) - ACOR(I)
+      DEL = DVNORM (N, Y, EWT)
+      DO 300 I = 1,N
+ 300    Y(I) = YH(I,1) + SAVF(I)
+      CALL DCOPY (N, SAVF, 1, ACOR, 1)
+      GO TO 400
+C-----------------------------------------------------------------------
+C In the case of the chord method, compute the corrector error,
+C and solve the linear system with that as right-hand side and
+C P as coefficient matrix.  The correction is scaled by the factor
+C 2/(1+RC) to account for changes in h*rl1 since the last DVJAC call.
+C-----------------------------------------------------------------------
+ 350  continue
+      if (IVERWER.EQ.1) then
+      CRATE = 1
+      DO  I = 1,N
+        Y(I) = SAVF(I) - ACOR(I)
+      end do
+      DEL = DVNORM (N, Y, EWT)
+      DO  I = 1,N
+         Y(I) = YH(I,1) + SAVF(I)
+      end do
+      CALL DCOPY (N, SAVF, 1, ACOR, 1)
+      GO TO 400
+      end if
+      DO 360 I = 1,N
+ 360    Y(I) = (RL1*H)*SAVF(I) - (RL1*YH(I,2) + ACOR(I))
+        CALL DVSOL (WM, IWM, Y, IERSL)
+      NNI = NNI + 1
+      IF (IERSL .GT. 0) GO TO 410
+      IF (METH .EQ. 2 .AND. RC .NE. ONE) THEN
+        CSCALE = TWO/(ONE + RC)
+        CALL DSCAL (N, CSCALE, Y, 1)
+      ENDIF
+      DEL = DVNORM (N, Y, EWT)
+      CALL DAXPY (N, ONE, Y, 1, ACOR, 1)
+      DO 380 I = 1,N
+ 380    Y(I) = YH(I,1) + ACOR(I)
+C-----------------------------------------------------------------------
+C Test for convergence.  If M .gt. 0, an estimate of the convergence
+C rate constant is stored in CRATE, and this is used in the test.
+C-----------------------------------------------------------------------
+ 400  IF (M .NE. 0) CRATE = MAX(CRDOWN*CRATE,DEL/DELP)
+      DCON = DEL*MIN(ONE,CRATE)/TQ(4)
+      IF (DCON .LE. ONE) GO TO 450
+      M = M + 1
+      IF (M .EQ. MAXCOR) GO TO 410
+      IF (M .GE. 2 .AND. DEL .GT. RDIV*DELP) GO TO 410
+      DELP = DEL
+      CALL F (N, TN, Y, SAVF)
+      NFE = NFE + 1
+      GO TO 270
+C
+ 410  IF (MITER .EQ. 0 .OR. JCUR .EQ. 1) GO TO 430
+      ICF = 1
+      IPUP = MITER
+      GO TO 220
+C
+ 430  CONTINUE
+      NFLAG = -1
+      ICF = 2
+      IPUP = MITER
+      RETURN
+C
+C Return for successful step. ------------------------------------------
+ 450  NFLAG = 0
+      JCUR = 0
+      ICF = 0
+      IF (M .EQ. 0) ACNRM = DEL
+      IF (M .GT. 0) ACNRM = DVNORM (N, ACOR, EWT)
+      RETURN
+C----------------------- End of Subroutine DVNLSD ----------------------
+      END
+
+*DECK DVJAC
+      SUBROUTINE DVJAC (Y, YH, LDYH, EWT, FTEM, SAVF, WM, IWM, FUN, JAC,
+     1                 IERPJ, RPAR, IPAR)
+C       IMPLICIT KPP_REAL (A-H, O-Z)
+       INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Sparse.h'
+      EXTERNAL FUN, JAC
+      KPP_REAL Y, YH, EWT, FTEM, SAVF, WM, RPAR
+      INTEGER LDYH, IWM, IERPJ, IPAR
+      DIMENSION Y(*), YH(LDYH,*), EWT(*), FTEM(*), SAVF(*),
+     1   WM(*), IWM(*), RPAR(*), IPAR(*)
+
+C-----------------------------------------------------------------------
+C Call sequence input -- Y, YH, LDYH, EWT, FTEM, SAVF, WM, IWM,
+C                        FUN, JAC, RPAR, IPAR
+C Call sequence output -- WM, IWM, IERPJ
+C COMMON block variables accessed..
+C     /DVOD01/  CCMXJ, DRC, H, RL1, TN, UROUND, ICF, JCUR, LOCJS,
+C               MSBJ, NSLJ
+C     /DVOD02/  NFE, NST, NJE, NLU
+C
+C Subroutines called by DVJAC.. FUN, JAC, DACOPY, DCOPY, DGBFA, DGEFA,
+C                              DSCAL
+C Function routines called by DVJAC.. DVNORM
+C-----------------------------------------------------------------------
+C DVJAC is called by DVSTEP to compute and process the matrix
+C P = I - h*rl1*J , where J is an approximation to the Jacobian.
+C Here J is computed by the user-supplied routine JAC if
+C MITER = 1 or 4, or by finite differencing if MITER = 2, 3, or 5.
+C If MITER = 3, a diagonal approximation to J is used.
+C If JSV = -1, J is computed from scratch in all cases.
+C If JSV = 1 and MITER = 1, 2, 4, or 5, and if the saved value of J is
+C considered acceptable, then P is constructed from the saved J.
+C J is stored in wm and replaced by P.  If MITER .ne. 3, P is then
+C subjected to LU decomposition in preparation for later solution
+C of linear systems with P as coefficient matrix. This is done
+C by DGEFA if MITER = 1 or 2, and by DGBFA if MITER = 4 or 5.
+C
+C Communication with DVJAC is done with the following variables.  (For
+C more details, please see the comments in the driver subroutine.)
+C Y          = Vector containing predicted values on entry.
+C YH         = The Nordsieck array, an LDYH by LMAX array, input.
+C LDYH       = A constant .ge. N, the first dimension of YH, input.
+C EWT        = An error weight vector of length N.
+C SAVF       = Array containing f evaluated at predicted y, input.
+C WM         = Real work space for matrices.  In the output, it containS
+C              the inverse diagonal matrix if MITER = 3 and the LU
+C              decomposition of P if MITER is 1, 2 , 4, or 5.
+C              Storage of matrix elements starts at WM(3).
+C              Storage of the saved Jacobian starts at WM(LOCJS).
+C              WM also contains the following matrix-related data..
+C              WM(1) = SQRT(UROUND), used in numerical Jacobian step.
+C              WM(2) = H*RL1, saved for later use if MITER = 3.
+C IWM        = Integer work space containing pivot information,
+C              starting at IWM(31), if MITER is 1, 2, 4, or 5.
+C              IWM also contains band parameters ML = IWM(1) and
+C              MU = IWM(2) if MITER is 4 or 5.
+C FUN          = Dummy name for the user supplied subroutine for f.
+C JAC        = Dummy name for the user supplied Jacobian subroutine.
+C RPAR, IPAR = Dummy names for user's real and integer work arrays.
+C RL1        = 1/EL(2) (input).
+C IERPJ      = Output error flag,  = 0 if no trouble, 1 if the P
+C              matrix is found to be singular.
+C JCUR       = Output flag to indicate whether the Jacobian matrix
+C              (or approximation) is now current.
+C              JCUR = 0 means J is not current.
+C              JCUR = 1 means J is current.
+C-----------------------------------------------------------------------
+C
+C Type declarations for labeled COMMON block DVOD01 --------------------
+C
+      KPP_REAL ACNRM, CCMXJ, CONP, CRATE, DRC, EL,
+     1     ETA, ETAMAX, H, HMIN, HMXI, HNEW, HSCAL, PRL1,
+     2     RC, RL1, TAU, TQ, TN, UROUND
+      INTEGER ICF, INIT, IPUP, JCUR, JSTART, JSV, KFLAG, KUTH,
+     1        L, LMAX, LYH, LEWT, LACOR, LSAVF, LWM, LIWM,
+     2        LOCJS, MAXORD, METH, MITER, MSBJ, MXHNIL, MXSTEP,
+     3        N, NEWH, NEWQ, NHNIL, NQ, NQNYH, NQWAIT, NSLJ,
+     4        NSLP, NYH
+C
+C Type declarations for labeled COMMON block DVOD02 --------------------
+C
+      KPP_REAL HU
+      INTEGER NCFN, NETF, NFE, NJE, NLU, NNI, NQU, NST
+C
+C Type declarations for local variables --------------------------------
+C
+      KPP_REAL CON, DI, FAC, HRL1, ONE, PT1, R, R0, SRUR, THOU,
+     1     YI, YJ, YJJ, ZERO
+      INTEGER I, I1, I2, IER, II, J, J1, JJ, JOK, LENP, MBA, MBAND,
+     1        MEB1, MEBAND, ML, ML3, MU, NP1
+C
+C Type declaration for function subroutines called ---------------------
+C
+      KPP_REAL DVNORM
+C-----------------------------------------------------------------------
+C The following Fortran-77 declaration is to cause the values of the
+C listed (local) variables to be saved between calls to this subroutine.
+C-----------------------------------------------------------------------
+      SAVE ONE, PT1, THOU, ZERO
+C-----------------------------------------------------------------------
+      COMMON /DVOD01/ ACNRM, CCMXJ, CONP, CRATE, DRC, EL(13),
+     1                ETA, ETAMAX, H, HMIN, HMXI, HNEW, HSCAL, PRL1,
+     2                RC, RL1, TAU(13), TQ(5), TN, UROUND,
+     3                ICF, INIT, IPUP, JCUR, JSTART, JSV, KFLAG, KUTH,
+     4                L, LMAX, LYH, LEWT, LACOR, LSAVF, LWM, LIWM,
+     5                LOCJS, MAXORD, METH, MITER, MSBJ, MXHNIL, MXSTEP,
+     6                N, NEWH, NEWQ, NHNIL, NQ, NQNYH, NQWAIT, NSLJ,
+     7                NSLP, NYH
+      COMMON /DVOD02/ HU, NCFN, NETF, NFE, NJE, NLU, NNI, NQU, NST
+C
+      DATA ONE /1.0D0/, THOU /1000.0D0/, ZERO /0.0D0/, PT1 /0.1D0/
+C
+      IER = 0
+      IERPJ = 0
+      HRL1 = H*RL1
+C See whether J should be evaluated (JOK = -1) or not (JOK = 1). -------
+      JOK = JSV
+      IF (JSV .EQ. 1) THEN
+        IF (NST .EQ. 0 .OR. NST .GT. NSLJ+MSBJ) JOK = -1
+        IF (ICF .EQ. 1 .AND. DRC .LT. CCMXJ) JOK = -1
+        IF (ICF .EQ. 2) JOK = -1
+      ENDIF
+C End of setting JOK. --------------------------------------------------
+C
+      IF (JOK .EQ. -1 .AND. MITER .EQ. 1) THEN
+C If JOK = -1 and MITER = 1, CALL JAC to evaluate Jacobian. ------------
+      NJE = NJE + 1
+      NSLJ = NST
+      JCUR = 1
+      LENP = LU_NONZERO
+      DO 110 I = 1,LENP
+ 110    WM(I+2) = ZERO
+
+c      CALL Update_SUN(TN)
+c      CALL Update_RCONST()
+      CALL JAC (N, TN, Y, WM(3))
+      IF (JSV .EQ. 1) CALL DCOPY (LENP, WM(3), 1, WM(LOCJS), 1)
+      ENDIF
+C
+      IF (JOK .EQ. -1 .AND. MITER .EQ. 2) THEN
+C If MITER = 2, make N calls to FUN to approximate the Jacobian. ---------
+      NJE = NJE + 1
+      NSLJ = NST
+      JCUR = 1
+      FAC = DVNORM (N, SAVF, EWT)
+      R0 = THOU*ABS(H)*UROUND*REAL(N)*FAC
+      IF (R0 .EQ. ZERO) R0 = ONE
+      SRUR = WM(1)
+      J1 = 2
+      DO 230 J = 1,N
+        YJ = Y(J)
+        R = MAX(SRUR*ABS(YJ),R0/EWT(J))
+        Y(J) = Y(J) + R
+        FAC = ONE/R
+        CALL FUN (N, TN, Y, FTEM)
+        DO 220 I = 1,N
+ 220      WM(I+J1) = (FTEM(I) - SAVF(I))*FAC
+        Y(J) = YJ
+        J1 = J1 + N
+ 230    CONTINUE
+      NFE = NFE + N
+      LENP = LU_NONZERO
+      IF (JSV .EQ. 1) CALL DCOPY (LENP, WM(3), 1, WM(LOCJS), 1)
+      ENDIF
+C
+      IF (JOK .EQ. 1 .AND. (MITER .EQ. 1 .OR. MITER .EQ. 2)) THEN
+      JCUR = 0
+      LENP = LU_NONZERO
+      CALL DCOPY (LENP, WM(LOCJS), 1, WM(3), 1)
+      ENDIF
+C
+      IF (MITER .EQ. 1 .OR. MITER .EQ. 2) THEN
+C Multiply Jacobian by scalar, add identity, and do LU decomposition. --
+      CON = -HRL1
+      CALL DSCAL (LENP, CON, WM(3), 1)
+      J = 3
+      NP1 = N + 1
+      DO 250 I = 1,N
+        WM(2+LU_DIAG(i)) = WM(2+LU_DIAG(i)) + ONE
+ 250  CONTINUE
+      NLU = NLU + 1
+C      CALL DGEFA (WM(3), N, N, IWM(31), IER)
+      CALL KppDecomp ( WM(3), IER)
+      IF (IER .NE. 0) IERPJ = 1
+      RETURN
+      ENDIF
+C End of code block for MITER = 1 or 2. --------------------------------
+C
+      IF (MITER .EQ. 3) THEN
+C If MITER = 3, construct a diagonal approximation to J and P. ---------
+      NJE = NJE + 1
+      JCUR = 1
+      WM(2) = HRL1
+      R = RL1*PT1
+      DO 310 I = 1,N
+ 310    Y(I) = Y(I) + R*(H*SAVF(I) - YH(I,2))
+      CALL FUN (N, TN, Y, WM(3))
+      NFE = NFE + 1
+      DO 320 I = 1,N
+        R0 = H*SAVF(I) - YH(I,2)
+        DI = PT1*R0 - H*(WM(I+2) - SAVF(I))
+        WM(I+2) = ONE
+        IF (ABS(R0) .LT. UROUND/EWT(I)) GO TO 320
+        IF (ABS(DI) .EQ. ZERO) GO TO 330
+        WM(I+2) = PT1*R0/DI
+ 320    CONTINUE
+      RETURN
+ 330  IERPJ = 1
+      RETURN
+      ENDIF
+C End of code block for MITER = 3. -------------------------------------
+C
+C Set constants for MITER = 4 or 5. ------------------------------------
+      ML = IWM(1)
+      MU = IWM(2)
+      ML3 = ML + 3
+      MBAND = ML + MU + 1
+      MEBAND = MBAND + ML
+      LENP = MEBAND*N
+C
+      IF (JOK .EQ. -1 .AND. MITER .EQ. 4) THEN
+C If JOK = -1 and MITER = 4, CALL JAC to evaluate Jacobian. ------------
+      NJE = NJE + 1
+      NSLJ = NST
+      JCUR = 1
+      DO 410 I = 1,LENP
+ 410    WM(I+2) = ZERO
+
+c      CALL Update_SUN(TN)
+c      CALL Update_RCONST()
+      CALL JAC (N, TN, Y, WM(ML3))
+      IF (JSV .EQ. 1)
+     1   CALL DACOPY (MBAND, N, WM(ML3), MEBAND, WM(LOCJS), MBAND)
+      ENDIF
+C
+      IF (JOK .EQ. -1 .AND. MITER .EQ. 5) THEN
+C If MITER = 5, make N calls to FUN to approximate the Jacobian. ---------
+      NJE = NJE + 1
+      NSLJ = NST
+      JCUR = 1
+      MBA = MIN(MBAND,N)
+      MEB1 = MEBAND - 1
+      SRUR = WM(1)
+      FAC = DVNORM (N, SAVF, EWT)
+      R0 = THOU*ABS(H)*UROUND*REAL(N)*FAC
+      IF (R0 .EQ. ZERO) R0 = ONE
+      DO 560 J = 1,MBA
+        DO 530 I = J,N,MBAND
+          YI = Y(I)
+          R = MAX(SRUR*ABS(YI),R0/EWT(I))
+ 530      Y(I) = Y(I) + R
+        CALL FUN (N, TN, Y, FTEM)
+        DO 550 JJ = J,N,MBAND
+          Y(JJ) = YH(JJ,1)
+          YJJ = Y(JJ)
+          R = MAX(SRUR*ABS(YJJ),R0/EWT(JJ))
+          FAC = ONE/R
+          I1 = MAX(JJ-MU,1)
+          I2 = MIN(JJ+ML,N)
+          II = JJ*MEB1 - ML + 2
+          DO 540 I = I1,I2
+ 540        WM(II+I) = (FTEM(I) - SAVF(I))*FAC
+ 550      CONTINUE
+ 560    CONTINUE
+      NFE = NFE + MBA
+      IF (JSV .EQ. 1)
+     1   CALL DACOPY (MBAND, N, WM(ML3), MEBAND, WM(LOCJS), MBAND)
+      ENDIF
+C
+      IF (JOK .EQ. 1) THEN
+      JCUR = 0
+      CALL DACOPY (MBAND, N, WM(LOCJS), MBAND, WM(ML3), MEBAND)
+      ENDIF
+C
+C Multiply Jacobian by scalar, add identity, and do LU decomposition.
+      CON = -HRL1
+      CALL DSCAL (LENP, CON, WM(3), 1 )
+      II = MBAND + 2
+      DO 580 I = 1,N
+        WM(II) = WM(II) + ONE
+ 580    II = II + MEBAND
+      NLU = NLU + 1
+C      CALL DGBFA (WM(3), MEBAND, N, ML, MU, IWM(31), IER)
+      IF (IER .NE. 0) IERPJ = 1
+      RETURN
+C End of code block for MITER = 4 or 5. --------------------------------
+C
+C----------------------- End of Subroutine DVJAC -----------------------
+      END
+*DECK DACOPY
+      SUBROUTINE DACOPY (NROW, NCOL, A, NROWA, B, NROWB)
+      KPP_REAL A, B
+      INTEGER NROW, NCOL, NROWA, NROWB
+      DIMENSION A(NROWA,NCOL), B(NROWB,NCOL)
+C-----------------------------------------------------------------------
+C Call sequence input -- NROW, NCOL, A, NROWA, NROWB
+C Call sequence output -- B
+C COMMON block variables accessed -- None
+C
+C Subroutines called by DACOPY.. DCOPY
+C Function routines called by DACOPY.. None
+C-----------------------------------------------------------------------
+C This routine copies one rectangular array, A, to another, B,
+C where A and B may have different row dimensions, NROWA and NROWB.
+C The data copied consists of NROW rows and NCOL columns.
+C-----------------------------------------------------------------------
+      INTEGER IC
+C
+      DO 20 IC = 1,NCOL
+        CALL DCOPY (NROW, A(1,IC), 1, B(1,IC), 1)
+ 20     CONTINUE
+C
+      RETURN
+C----------------------- End of Subroutine DACOPY ----------------------
+      END
+*DECK DVSOL
+      SUBROUTINE DVSOL (WM, IWM, X, IERSL)
+      KPP_REAL WM, X
+      INTEGER IWM, IERSL
+      DIMENSION WM(*), IWM(*), X(*)
+C-----------------------------------------------------------------------
+C Call sequence input -- WM, IWM, X
+C Call sequence output -- X, IERSL
+C COMMON block variables accessed..
+C     /DVOD01/ -- H, RL1, MITER, N
+C
+C Subroutines called by DVSOL.. DGESL, DGBSL
+C Function routines called by DVSOL.. None
+C-----------------------------------------------------------------------
+C This routine manages the solution of the linear system arising from
+C a chord iteration.  It is called if MITER .ne. 0.
+C If MITER is 1 or 2, it calls DGESL to accomplish this.
+C If MITER = 3 it updates the coefficient H*RL1 in the diagonal
+C matrix, and then computes the solution.
+C If MITER is 4 or 5, it calls DGBSL.
+C Communication with DVSOL uses the following variables..
+C WM    = Real work space containing the inverse diagonal matrix if
+C         MITER = 3 and the LU decomposition of the matrix otherwise.
+C         Storage of matrix elements starts at WM(3).
+C         WM also contains the following matrix-related data..
+C         WM(1) = SQRT(UROUND) (not used here),
+C         WM(2) = HRL1, the previous value of H*RL1, used if MITER = 3.
+C IWM   = Integer work space containing pivot information, starting at
+C         IWM(31), if MITER is 1, 2, 4, or 5.  IWM also contains band
+C         parameters ML = IWM(1) and MU = IWM(2) if MITER is 4 or 5.
+C X     = The right-hand side vector on input, and the solution vector
+C         on output, of length N.
+C IERSL = Output flag.  IERSL = 0 if no trouble occurred.
+C         IERSL = 1 if a singular matrix arose with MITER = 3.
+C-----------------------------------------------------------------------
+C
+C Type declarations for labeled COMMON block DVOD01 --------------------
+C
+      KPP_REAL ACNRM, CCMXJ, CONP, CRATE, DRC, EL,
+     1     ETA, ETAMAX, H, HMIN, HMXI, HNEW, HSCAL, PRL1,
+     2     RC, RL1, TAU, TQ, TN, UROUND
+      INTEGER ICF, INIT, IPUP, JCUR, JSTART, JSV, KFLAG, KUTH,
+     1        L, LMAX, LYH, LEWT, LACOR, LSAVF, LWM, LIWM,
+     2        LOCJS, MAXORD, METH, MITER, MSBJ, MXHNIL, MXSTEP,
+     3        N, NEWH, NEWQ, NHNIL, NQ, NQNYH, NQWAIT, NSLJ,
+     4        NSLP, NYH
+C
+C Type declarations for local variables --------------------------------
+C
+      INTEGER I, MEBAND, ML, MU
+      KPP_REAL DI, HRL1, ONE, PHRL1, R, ZERO
+C-----------------------------------------------------------------------
+C The following Fortran-77 declaration is to cause the values of the
+C listed (local) variables to be saved between calls to this integrator.
+C-----------------------------------------------------------------------
+      SAVE ONE, ZERO
+C
+      COMMON /DVOD01/ ACNRM, CCMXJ, CONP, CRATE, DRC, EL(13),
+     1                ETA, ETAMAX, H, HMIN, HMXI, HNEW, HSCAL, PRL1,
+     2                RC, RL1, TAU(13), TQ(5), TN, UROUND,
+     3                ICF, INIT, IPUP, JCUR, JSTART, JSV, KFLAG, KUTH,
+     4                L, LMAX, LYH, LEWT, LACOR, LSAVF, LWM, LIWM,
+     5                LOCJS, MAXORD, METH, MITER, MSBJ, MXHNIL, MXSTEP,
+     6                N, NEWH, NEWQ, NHNIL, NQ, NQNYH, NQWAIT, NSLJ,
+     7                NSLP, NYH
+C
+      DATA ONE /1.0D0/, ZERO /0.0D0/
+C
+      IERSL = 0
+      GO TO (100, 100, 300, 400, 400), MITER
+C 100  CALL DGESL (WM(3), N, N, IWM(31), X, 0)
+ 100  CALL KppSolve (WM(3), X)
+      RETURN
+C
+ 300  PHRL1 = WM(2)
+      HRL1 = H*RL1
+      WM(2) = HRL1
+      IF (HRL1 .EQ. PHRL1) GO TO 330
+      R = HRL1/PHRL1
+      DO 320 I = 1,N
+        DI = ONE - R*(ONE - ONE/WM(I+2))
+        IF (ABS(DI) .EQ. ZERO) GO TO 390
+ 320    WM(I+2) = ONE/DI
+C
+ 330  DO 340 I = 1,N
+ 340    X(I) = WM(I+2)*X(I)
+      RETURN
+ 390  IERSL = 1
+      RETURN
+C
+ 400  ML = IWM(1)
+      MU = IWM(2)
+      MEBAND = 2*ML + MU + 1
+      CALL KppSolve (WM(3), X)
+      RETURN
+C----------------------- End of Subroutine DVSOL -----------------------
+      END
+*DECK DVSRCO
+      SUBROUTINE DVSRCO (RSAV, ISAV, JOB)
+      KPP_REAL RSAV
+      INTEGER ISAV, JOB
+      DIMENSION RSAV(*), ISAV(*)
+C-----------------------------------------------------------------------
+C Call sequence input -- RSAV, ISAV, JOB
+C Call sequence output -- RSAV, ISAV
+C COMMON block variables accessed -- All of /DVOD01/ and /DVOD02/
+C
+C Subroutines/functions called by DVSRCO.. None
+C-----------------------------------------------------------------------
+C This routine saves or restores (depending on JOB) the contents of the
+C COMMON blocks DVOD01 and DVOD02, which are used internally by DVODE.
+C
+C RSAV = real array of length 49 or more.
+C ISAV = integer array of length 41 or more.
+C JOB  = flag indicating to save or restore the COMMON blocks..
+C        JOB  = 1 if COMMON is to be saved (written to RSAV/ISAV).
+C        JOB  = 2 if COMMON is to be restored (read from RSAV/ISAV).
+C        A CALL with JOB = 2 presumes a prior CALL with JOB = 1.
+C-----------------------------------------------------------------------
+      KPP_REAL RVOD1, RVOD2
+      INTEGER IVOD1, IVOD2
+      INTEGER I, LENIV1, LENIV2, LENRV1, LENRV2
+C-----------------------------------------------------------------------
+C The following Fortran-77 declaration is to cause the values of the
+C listed (local) variables to be saved between calls to this integrator.
+C-----------------------------------------------------------------------
+      SAVE LENRV1, LENIV1, LENRV2, LENIV2
+C
+      COMMON /DVOD01/ RVOD1(48), IVOD1(33)
+      COMMON /DVOD02/ RVOD2(1), IVOD2(8)
+      DATA LENRV1/48/, LENIV1/33/, LENRV2/1/, LENIV2/8/
+C
+      IF (JOB .EQ. 2) GO TO 100
+      DO 10 I = 1,LENRV1
+ 10     RSAV(I) = RVOD1(I)
+      DO 15 I = 1,LENRV2
+ 15     RSAV(LENRV1+I) = RVOD2(I)
+C
+      DO 20 I = 1,LENIV1
+ 20     ISAV(I) = IVOD1(I)
+      DO 25 I = 1,LENIV2
+ 25     ISAV(LENIV1+I) = IVOD2(I)
+C
+      RETURN
+C
+ 100  CONTINUE
+      DO 110 I = 1,LENRV1
+ 110     RVOD1(I) = RSAV(I)
+      DO 115 I = 1,LENRV2
+ 115     RVOD2(I) = RSAV(LENRV1+I)
+C
+      DO 120 I = 1,LENIV1
+ 120     IVOD1(I) = ISAV(I)
+      DO 125 I = 1,LENIV2
+ 125     IVOD2(I) = ISAV(LENIV1+I)
+C
+      RETURN
+C----------------------- End of Subroutine DVSRCO ----------------------
+      END
+*DECK DEWSET
+      SUBROUTINE DEWSET (N, ITOL, RelTol, AbsTol, YCUR, EWT)
+      KPP_REAL RelTol, AbsTol, YCUR, EWT
+      INTEGER N, ITOL
+      DIMENSION RelTol(*), AbsTol(*), YCUR(N), EWT(N)
+C-----------------------------------------------------------------------
+C Call sequence input -- N, ITOL, RelTol, AbsTol, YCUR
+C Call sequence output -- EWT
+C COMMON block variables accessed -- None
+C
+C Subroutines/functions called by DEWSET.. None
+C-----------------------------------------------------------------------
+C This subroutine sets the error weight vector EWT according to
+C     EWT(i) = RelTol(i)*abs(YCUR(i)) + AbsTol(i),  i = 1,...,N,
+C with the subscript on RelTol and/or AbsTol possibly replaced by 1 above,
+C depending on the value of ITOL.
+C-----------------------------------------------------------------------
+      INTEGER I
+C
+      GO TO (10, 20, 30, 40), ITOL
+ 10   CONTINUE
+      DO 15 I = 1, N
+ 15     EWT(I) = RelTol(1)*ABS(YCUR(I)) + AbsTol(1)
+      RETURN
+ 20   CONTINUE
+      DO 25 I = 1, N
+ 25     EWT(I) = RelTol(1)*ABS(YCUR(I)) + AbsTol(I)
+      RETURN
+ 30   CONTINUE
+      DO 35 I = 1, N
+ 35     EWT(I) = RelTol(I)*ABS(YCUR(I)) + AbsTol(1)
+      RETURN
+ 40   CONTINUE
+      DO 45 I = 1, N
+ 45     EWT(I) = RelTol(I)*ABS(YCUR(I)) + AbsTol(I)
+      RETURN
+C----------------------- End of Subroutine DEWSET ----------------------
+      END
+*DECK DVNORM
+      KPP_REAL FUNCTION DVNORM (N, V, W)
+      KPP_REAL V, W
+      INTEGER N
+      DIMENSION V(N), W(N)
+C-----------------------------------------------------------------------
+C Call sequence input -- N, V, W
+C Call sequence output -- None
+C COMMON block variables accessed -- None
+C
+C Subroutines/functions called by DVNORM.. None
+C-----------------------------------------------------------------------
+C This function routine computes the weighted root-mean-square norm
+C of the vector of length N contained in the array V, with weights
+C contained in the array W of length N..
+C   DVNORM = sqrt( (1/N) * sum( V(i)*W(i) )**2 )
+C
+C  LOOP UNROLLING BY ADRIAN SANDU, AUG 2, 1995
+C
+C-----------------------------------------------------------------------
+      KPP_REAL SUM
+      INTEGER I
+C
+      SUM = 0.0D0
+
+   20 m = mod(n,7)
+      if( m .eq. 0 ) go to 40
+      do 30 i = 1,m
+        SUM =  SUM + (V(I)*W(I))**2
+   30 continue
+      if( n .lt. 7 ) return
+   40 mp1 = m + 1
+      do 50 i = mp1,n,7
+        SUM =  SUM + (V(I)*W(I))**2
+        SUM =  SUM + (V(I + 1)*W(I + 1))**2
+        SUM =  SUM + (V(I + 2)*W(I + 2))**2
+        SUM =  SUM + (V(I + 3)*W(I + 3))**2
+        SUM =  SUM + (V(I + 4)*W(I + 4))**2
+        SUM =  SUM + (V(I + 5)*W(I + 5))**2
+        SUM =  SUM + (V(I + 6)*W(I + 6))**2
+   50 continue
+
+      DVNORM = SQRT(SUM/REAL(N))
+      RETURN
+C----------------------- End of Function DVNORM ------------------------
+      END
+
+*DECK D1MACH
+      KPP_REAL FUNCTION D1MACH (IDUM)
+      INTEGER IDUM
+C-----------------------------------------------------------------------
+C This routine computes the unit roundoff of the machine.
+C This is defined as the smallest positive machine number
+C u such that  1.0 + u .ne. 1.0
+C
+C Subroutines/functions called by D1MACH.. None
+C-----------------------------------------------------------------------
+      KPP_REAL U, COMP
+      U = 1.0D0
+ 10   U = U*0.5D0
+      COMP = 1.0D0 + U
+      IF (COMP .NE. 1.0D0) GO TO 10
+      D1MACH = U*2.0D0
+      RETURN
+C----------------------- End of Function D1MACH ------------------------
+      END
+*DECK XERRWD
+      SUBROUTINE XERRWD (MSG, NMES, NERR, LEVEL, NI, I1, I2, NR, R1, R2)
+      KPP_REAL R1, R2
+      INTEGER NMES, NERR, LEVEL, NI, I1, I2, NR
+      CHARACTER*1 MSG(NMES)
+C-----------------------------------------------------------------------
+C Subroutines XERRWD, XSETF, XSETUN, and the two function routines
+C MFLGSV and LUNSAV, as given here, constitute a simplified version of
+C the SLATEC error handling package.
+C Written by A. C. Hindmarsh and P. N. Brown at LLNL.
+C Version of 13 April, 1989.
+C This version is in KPP_REAL.
+C
+C All arguments are input arguments.
+C
+C MSG    = The message (character array).
+C NMES   = The length of MSG (number of characters).
+C NERR   = The error number (not used).
+C LEVEL  = The error level..
+C          0 or 1 means recoverable (control returns to caller).
+C          2 means fatal (run is aborted--see note below).
+C NI     = Number of integers (0, 1, or 2) to be printed with message.
+C I1,I2  = Integers to be printed, depending on NI.
+C NR     = Number of reals (0, 1, or 2) to be printed with message.
+C R1,R2  = Reals to be printed, depending on NR.
+C
+C Note..  this routine is machine-dependent and specialized for use
+C in limited context, in the following ways..
+C 1. The argument MSG is assumed to be of type CHARACTER, and
+C    the message is printed with a format of (1X,80A1).
+C 2. The message is assumed to take only one line.
+C    Multi-line messages are generated by repeated calls.
+C 3. If LEVEL = 2, control passes to the statement   STOP
+C    to abort the run.  This statement may be machine-dependent.
+C 4. R1 and R2 are assumed to be in KPP_REAL and are printed
+C    in D21.13 format.
+C
+C For a different default logical unit number, change the data
+C statement in function routine LUNSAV.
+C For a different run-abort command, change the statement following
+C statement 100 at the end.
+C-----------------------------------------------------------------------
+C Subroutines called by XERRWD.. None
+C Function routines called by XERRWD.. MFLGSV, LUNSAV
+C-----------------------------------------------------------------------
+C
+      INTEGER I, LUNIT, LUNSAV, MESFLG, MFLGSV
+C
+C Get message print flag and logical unit number. ----------------------
+      MESFLG = MFLGSV (0,.FALSE.)
+      LUNIT = LUNSAV (0,.FALSE.)
+      IF (MESFLG .EQ. 0) GO TO 100
+C Write the message. ---------------------------------------------------
+      WRITE (LUNIT,10) (MSG(I),I=1,NMES)
+ 10   FORMAT(1X,80A1)
+      IF (NI .EQ. 1) WRITE (LUNIT, 20) I1
+ 20   FORMAT(6X,'In above message,  I1 =',I10)
+      IF (NI .EQ. 2) WRITE (LUNIT, 30) I1,I2
+ 30   FORMAT(6X,'In above message,  I1 =',I10,3X,'I2 =',I10)
+      IF (NR .EQ. 1) WRITE (LUNIT, 40) R1
+ 40   FORMAT(6X,'In above message,  R1 =',D21.13)
+      IF (NR .EQ. 2) WRITE (LUNIT, 50) R1,R2
+ 50   FORMAT(6X,'In above,  R1 =',D21.13,3X,'R2 =',D21.13)
+C Abort the run if LEVEL = 2. ------------------------------------------
+ 100  IF (LEVEL .NE. 2) RETURN
+      STOP
+C----------------------- End of Subroutine XERRWD ----------------------
+      END
+*DECK XSETF
+      SUBROUTINE XSETF (MFLAG)
+C-----------------------------------------------------------------------
+C This routine resets the print control flag MFLAG.
+C
+C Subroutines called by XSETF.. None
+C Function routines called by XSETF.. MFLGSV
+C-----------------------------------------------------------------------
+      INTEGER MFLAG, JUNK, MFLGSV
+C
+      IF (MFLAG .EQ. 0 .OR. MFLAG .EQ. 1) JUNK = MFLGSV (MFLAG,.TRUE.)
+      RETURN
+C----------------------- End of Subroutine XSETF -----------------------
+      END
+*DECK XSETUN
+      SUBROUTINE XSETUN (LUN)
+C-----------------------------------------------------------------------
+C This routine resets the logical unit number for messages.
+C
+C Subroutines called by XSETUN.. None
+C Function routines called by XSETUN.. LUNSAV
+C-----------------------------------------------------------------------
+      INTEGER LUN, JUNK, LUNSAV
+C
+      IF (LUN .GT. 0) JUNK = LUNSAV (LUN,.TRUE.)
+      RETURN
+C----------------------- End of Subroutine XSETUN ----------------------
+      END
+*DECK MFLGSV
+      INTEGER FUNCTION MFLGSV (IVALUE, ISET)
+      LOGICAL ISET
+      INTEGER IVALUE
+C-----------------------------------------------------------------------
+C MFLGSV saves and recalls the parameter MESFLG which controls the
+C printing of the error messages.
+C
+C Saved local variable..
+C
+C   MESFLG = Print control flag..
+C            1 means print all messages (the default).
+C            0 means no printing.
+C
+C On input..
+C
+C   IVALUE = The value to be set for the MESFLG parameter,
+C            if ISET is .TRUE. .
+C
+C   ISET   = Logical flag to indicate whether to read or write.
+C            If ISET=.TRUE., the MESFLG parameter will be given
+C            the value IVALUE.  If ISET=.FALSE., the MESFLG
+C            parameter will be unchanged, and IVALUE is a dummy
+C            parameter.
+C
+C On return..
+C
+C   The (old) value of the MESFLG parameter will be returned
+C   in the function value, MFLGSV.
+C
+C This is a modification of the SLATEC library routine J4SAVE.
+C
+C Subroutines/functions called by MFLGSV.. None
+C-----------------------------------------------------------------------
+      INTEGER MESFLG
+C-----------------------------------------------------------------------
+C The following Fortran-77 declaration is to cause the values of the
+C listed (local) variables to be saved between calls to this integrator.
+C-----------------------------------------------------------------------
+      SAVE MESFLG
+      DATA MESFLG/1/
+C
+      MFLGSV = MESFLG
+      IF (ISET) MESFLG = IVALUE
+      RETURN
+C----------------------- End of Function MFLGSV ------------------------
+      END
+*DECK LUNSAV
+      INTEGER FUNCTION LUNSAV (IVALUE, ISET)
+      LOGICAL ISET
+      INTEGER IVALUE
+C-----------------------------------------------------------------------
+C LUNSAV saves and recalls the parameter LUNIT which is the logical
+C unit number to which error messages are printed.
+C
+C Saved local variable..
+C
+C  LUNIT   = Logical unit number for messages.
+C            The default is 6 (machine-dependent).
+C
+C On input..
+C
+C   IVALUE = The value to be set for the LUNIT parameter,
+C            if ISET is .TRUE. .
+C
+C   ISET   = Logical flag to indicate whether to read or write.
+C            If ISET=.TRUE., the LUNIT parameter will be given
+C            the value IVALUE.  If ISET=.FALSE., the LUNIT
+C            parameter will be unchanged, and IVALUE is a dummy
+C            parameter.
+C
+C On return..
+C
+C   The (old) value of the LUNIT parameter will be returned
+C   in the function value, LUNSAV.
+C
+C This is a modification of the SLATEC library routine J4SAVE.
+C
+C Subroutines/functions called by LUNSAV.. None
+C-----------------------------------------------------------------------
+      INTEGER LUNIT
+C-----------------------------------------------------------------------
+C The following Fortran-77 declaration is to cause the values of the
+C listed (local) variables to be saved between calls to this integrator.
+C-----------------------------------------------------------------------
+      SAVE LUNIT
+      DATA LUNIT/6/
+C
+      LUNSAV = LUNIT
+      IF (ISET) LUNIT = IVALUE
+      RETURN
+C----------------------- End of Function LUNSAV ------------------------
+      END
+
+        SUBROUTINE VODE_FSPLIT_VAR(N, T, Y, PR)
+        INCLUDE 'KPP_ROOT_Parameters.h'
+        INCLUDE 'KPP_ROOT_Global.h'
+        INTEGER N
+        REAL*8 Told, T
+        REAL*8 Y(NVAR), PR(NVAR)
+
+        Told = TIME
+        TIME = T
+        CALL Update_SUN()
+        CALL Update_RCONST()
+        CALL Fun( Y,  FIX, RCONST, PR )
+        TIME = Told
+        RETURN
+        END
+
+        SUBROUTINE VODE_Jac_SP(N, T, Y, J)
+        INCLUDE 'KPP_ROOT_Parameters.h'
+        INCLUDE 'KPP_ROOT_Global.h'
+        INTEGER N
+        REAL*8 Told, T
+        REAL*8 Y(NVAR), J(LU_NONZERO)
+
+        Told = TIME
+        TIME = T
+        CALL Update_SUN()
+        CALL Update_RCONST()
+        CALL Jac_SP( Y,  FIX, RCONST, J )
+        TIME = Told
+        RETURN
+        END
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/kpp_lsode.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/kpp_lsode.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/kpp_lsode.def	(revision 2696)
@@ -0,0 +1,7 @@
+#FUNCTION AGGREGATE
+#JACOBIAN SPARSE_LU_ROW
+#DOUBLE ON 
+#INTFILE kpp_lsode
+
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/kpp_lsode.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/kpp_lsode.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/kpp_lsode.f90	(revision 2696)
@@ -0,0 +1,3421 @@
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
+!  LSODE - Stiff method based on backward differentiation formulas (BDF)  !
+!  By default the code employs the KPP sparse linear algebra routines     !
+!  Compile with -DFULL_ALGEBRA to use full linear algebra (LAPACK)        !
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
+! A. Sandu - version of July 2005
+
+MODULE KPP_ROOT_Integrator
+
+  USE KPP_ROOT_Precision
+  USE KPP_ROOT_Global, ONLY: FIX, RCONST, TIME, ATOL, RTOL
+  USE KPP_ROOT_Parameters, ONLY: NVAR, NSPEC, NFIX, LU_NONZERO
+  USE KPP_ROOT_JacobianSP, ONLY: LU_DIAG
+  USE KPP_ROOT_LinearAlgebra, ONLY: KppDecomp, KppSolve, &
+               Set2zero, WLAMCH
+  
+  IMPLICIT NONE
+  PUBLIC
+  SAVE
+  
+  !~~~>  Statistics on the work performed by the LSODE method
+  INTEGER :: Nfun,Njac,Nstp,Nacc,Nrej,Ndec,Nsol,Nsng
+  INTEGER, PARAMETER :: ifun=1, ijac=2, istp=3, iacc=4,  &
+    irej=5, idec=6, isol=7, isng=8, itexit=1, ihexit=2
+  !  SDIRK method coefficients
+  KPP_REAL :: rkAlpha(5,4), rkBeta(5,4), rkD(4,5),  &
+                   rkGamma, rkA(5,5), rkB(5), rkC(5)
+
+  ! mz_rs_20050717: TODO: use strings of IERR_NAMES for error messages
+  ! description of the error numbers IERR
+  CHARACTER(LEN=50), PARAMETER, DIMENSION(-8:1) :: IERR_NAMES = (/ &
+    'Matrix is repeatedly singular                     ', & ! -8
+    'Step size too small                               ', & ! -7
+    'No of steps exceeds maximum bound                 ', & ! -6
+    'Improper tolerance values                         ', & ! -5
+    'FacMin/FacMax/FacRej must be positive             ', & ! -4
+    'Hmin/Hmax/Hstart must be positive                 ', & ! -3
+    'Improper value for maximal no of Newton iterations', & ! -2
+    'Improper value for maximal no of steps            ', & ! -1
+    '                                                  ', & !  0 (not used)
+    'Success                                           ' /) !  1
+
+CONTAINS
+
+SUBROUTINE INTEGRATE( TIN, TOUT, &
+  ICNTRL_U, RCNTRL_U, ISTATUS_U, RSTATUS_U, IERR_U )
+
+   USE KPP_ROOT_Parameters
+   USE KPP_ROOT_Global
+   IMPLICIT NONE
+
+   KPP_REAL, INTENT(IN) :: TIN  ! Start Time
+   KPP_REAL, INTENT(IN) :: TOUT ! End Time
+   ! Optional input parameters and statistics
+   INTEGER,  INTENT(IN),  OPTIONAL :: ICNTRL_U(20)
+   KPP_REAL, INTENT(IN),  OPTIONAL :: RCNTRL_U(20)
+   INTEGER,  INTENT(OUT), OPTIONAL :: ISTATUS_U(20)
+   KPP_REAL, INTENT(OUT), OPTIONAL :: RSTATUS_U(20)
+   INTEGER,  INTENT(OUT), OPTIONAL :: IERR_U
+
+   KPP_REAL :: RCNTRL(20), RSTATUS(20)
+   INTEGER       :: ICNTRL(20), ISTATUS(20), IERR
+!!$   INTEGER, SAVE :: Ntotal = 0
+
+   ICNTRL(:)  = 0
+   RCNTRL(:)  = 0.0_dp
+   ISTATUS(:) = 0
+   RSTATUS(:) = 0.0_dp
+
+   ICNTRL(5) = 2 ! maximal order
+
+   ! If optional parameters are given, and if they are >0, 
+   ! then they overwrite default settings. 
+   IF (PRESENT(ICNTRL_U)) THEN
+     WHERE(ICNTRL_U(:) > 0) ICNTRL(:) = ICNTRL_U(:)
+   END IF
+   IF (PRESENT(RCNTRL_U)) THEN
+     WHERE(RCNTRL_U(:) > 0) RCNTRL(:) = RCNTRL_U(:)
+   END IF
+
+   CALL KppLsode( TIN,TOUT,VAR,RTOL,ATOL,                &
+                  RCNTRL,ICNTRL,RSTATUS,ISTATUS,IERR )
+
+! mz_rs_20050716: IERR and ISTATUS are returned to the user who then
+! decides what to do about it, i.e. either stop the run or ignore it.
+!!$   IF (IERR < 0) THEN
+!!$        PRINT*,'LSODE: Unsuccessful exit at T=',TIN,' (IERR=',IERR,')'
+!!$        STOP
+!!$   ENDIF
+!!$   Ntotal = Ntotal + ISTATUS(3)
+!!$   PRINT*,'Nsteps = ', ISTATUS(3),'  (',Ntotal,')'
+
+   STEPMIN = RSTATUS(ihexit) ! Save last step
+   
+   ! if optional parameters are given for output they to return information
+   IF (PRESENT(ISTATUS_U)) ISTATUS_U(:) = ISTATUS(1:20)
+   IF (PRESENT(RSTATUS_U)) RSTATUS_U(:) = RSTATUS(1:20)
+   IF (PRESENT(IERR_U)) THEN
+     IF (IERR==2) THEN ! DLSODE returns "2" after successful completion
+       IERR_U = 1 ! IERR_U will return "1" for successful completion
+     ELSE
+       IERR_U = IERR
+     ENDIF
+   ENDIF
+
+   END SUBROUTINE INTEGRATE
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE KppLsode( TIN,TOUT,Y,RelTol,AbsTol,      &
+               RCNTRL,ICNTRL,RSTATUS,ISTATUS,IERR )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>     INPUT PARAMETERS:
+!
+!    Note: For input parameters equal to zero the default values of the
+!       corresponding variables are used.
+!
+!    Note: For input parameters equal to zero the default values of the
+!          corresponding variables are used.
+!~~~>  
+!    ICNTRL(1) = not used
+!
+!    ICNTRL(2) = 0: AbsTol, RelTol are NVAR-dimensional vectors
+!              = 1: AbsTol, RelTol are scalars
+!
+!    ICNTRL(3) = not used
+!
+!    ICNTRL(4)  -> maximum number of integration steps
+!        For ICNTRL(4)=0 the default value of 100000 is used
+!
+!    ICNTRL(5)  -> maximum order of the integration formula allowed
+!
+!~~~>  Real parameters
+!
+!    RCNTRL(1)  -> Hmin, lower bound for the integration step size
+!                  It is strongly recommended to keep Hmin = ZERO
+!    RCNTRL(2)  -> Hmax, upper bound for the integration step size
+!    RCNTRL(3)  -> Hstart, starting value for the integration step size
+!
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>     OUTPUT PARAMETERS:
+!
+!    Note: each call to Rosenbrock adds the current no. of fcn calls
+!      to previous value of ISTATUS(1), and similar for the other params.
+!      Set ISTATUS(1:10) = 0 before call to avoid this accumulation.
+!
+!    ISTATUS(1) = No. of function calls
+!    ISTATUS(2) = No. of jacobian calls
+!    ISTATUS(3) = No. of steps
+!
+!    RSTATUS(1)  -> Texit, the time corresponding to the
+!                   computed Y upon return
+!    RSTATUS(2)  -> Hexit, last predicted step before exit
+!    For multiple restarts, use Hexit as Hstart in the following run
+!
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      IMPLICIT NONE
+      KPP_REAL :: Y(NVAR), AbsTol(NVAR), RelTol(NVAR), TIN, TOUT
+      KPP_REAL :: RCNTRL(20), RSTATUS(20)
+      INTEGER       :: ICNTRL(20), ISTATUS(20)
+      INTEGER, PARAMETER :: LRW = 25 + 9*NVAR+2*NVAR*NVAR, &
+                            LIW = 32 + NVAR
+      KPP_REAL :: RWORK(LRW), RPAR(1)
+      INTEGER :: IWORK(LIW), IPAR(1), ITOL, ITASK,         &
+                 IERR, IOPT, MF
+
+      !~~~> NORMAL COMPUTATION
+      ITASK  = 1
+      IERR   = 1
+      IOPT   = 1     ! 0=no/1=use optional input
+      
+      RWORK(1:30) = 0.0d0
+      IWORK(1:30) = 0
+      
+      IF (ICNTRL(2)==0) THEN
+         ITOL = 4           ! Abs/RelTol are both vectors
+      ELSE              
+         ITOL = 1           ! Abs/RelTol are both scalars
+      END IF   
+      IWORK(6) = ICNTRL(4)  ! max number of internal steps 
+      IWORK(5) = ICNTRL(5)  ! maximal order
+
+      MF = 21  !~~~> stiff case, analytic full Jacobian
+
+      RWORK(5) = RCNTRL(3)  ! Hstart
+      RWORK(6) = RCNTRL(2)  ! Hmax                    
+      RWORK(7) = RCNTRL(1)  ! Hmin                    
+
+      CALL DLSODE ( FUN_CHEM, NVAR, Y, TIN, TOUT, ITOL, RelTol, AbsTol, ITASK,&
+                    IERR, IOPT, RWORK, LRW, IWORK, LIW, JAC_CHEM, MF)
+
+      ISTATUS(1) = IWORK(12) ! Number of function evaluations 
+      ISTATUS(2) = IWORK(13) ! Number of Jacobian evaluations   
+      ISTATUS(3) = IWORK(11) ! Number of steps
+
+      RSTATUS(1) = TOUT      ! mz_rs_20050717
+      RSTATUS(2) = RWORK(11) ! mz_rs_20050717
+
+      END SUBROUTINE KppLsode
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!DECK DLSODE                                                            
+      SUBROUTINE DLSODE (F, NEQ, Y, T, TOUT, ITOL, RelTol, AbsTol, ITASK,   &
+                       ISTATE, IOPT, RWORK, LRW, IWORK, LIW, JAC, MF)  
+      EXTERNAL F, JAC 
+      INTEGER NEQ, ITOL, ITASK, ISTATE, IOPT, LRW, LIW, IWORK(LIW), MF 
+      KPP_REAL Y(*), T, TOUT, RelTol(*), AbsTol(*), RWORK(LRW)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!***BEGIN PROLOGUE  DLSODE                                              
+!***PURPOSE  Livermore Solver for Ordinary Differential Equations.      
+!            DLSODE solves the initial-value problem for stiff or       
+!            nonstiff systems of first-order ODE's,                     
+!               dy/dt = f(t,y),   or, in component form,                
+!               dy(i)/dt = f(i) = f(i,t,y(1),y(2),...,y(N)),  i=1,...,N.
+!***CATEGORY  I1A                                                       
+!***TYPE      KPP_REAL (SLSODE-S, DLSODE-D)                     
+!***KEYWORDS  ORDINARY DIFFERENTIAL EQUATIONS, INITIAL VALUE PROBLEM,   
+!             STIFF, NONSTIFF                                           
+!***AUTHOR  Hindmarsh, Alan C., (LLNL)                                  
+!             Center for Applied Scientific Computing, L-561            
+!             Lawrence Livermore National Laboratory                    
+!             Livermore, CA 94551.                                      
+!***DESCRIPTION                                                         
+!                                                                       
+!     NOTE: The "Usage" and "Arguments" sections treat only a subset of 
+!           available options, in condensed fashion.  The options       
+!           covered and the information supplied will support most      
+!           standard uses of DLSODE.                                    
+!                                                                       
+!           For more sophisticated uses, full details on all options are
+!           given in the concluding section, headed "Long Description." 
+!           A synopsis of the DLSODE Long Description is provided at the
+!           beginning of that section; general topics covered are:      
+!           - Elements of the call sequence; optional input and output  
+!           - Optional supplemental routines in the DLSODE package      
+!           - internal COMMON block                                     
+!                                                                       
+! *Usage:                                                               
+!     Communication between the user and the DLSODE package, for normal 
+!     situations, is summarized here.  This summary describes a subset  
+!     of the available options.  See "Long Description" for complete    
+!     details, including optional communication, nonstandard options,   
+!     and instructions for special situations.                          
+!                                                                       
+!     A sample program is given in the "Examples" section.              
+!                                                                       
+!     Refer to the argument descriptions for the definitions of the     
+!     quantities that appear in the following sample declarations.      
+!                                                                       
+!     For MF = 10,                                                      
+!        PARAMETER  (LRW = 20 + 16*NEQ,           LIW = 20)             
+!     For MF = 21 or 22,                                                
+!        PARAMETER  (LRW = 22 +  9*NEQ + NEQ**2,  LIW = 20 + NEQ)       
+!     For MF = 24 or 25,                                                
+!        PARAMETER  (LRW = 22 + 10*NEQ + (2*ML+MU)*NEQ,                 
+!       *                                         LIW = 20 + NEQ)       
+!                                                                       
+!        EXTERNAL F, JAC                                                
+!        INTEGER  NEQ, ITOL, ITASK, ISTATE, IOPT, LRW, IWORK(LIW),      
+!       *         LIW, MF                                               
+!        KPP_REAL Y(NEQ), T, TOUT, RelTol, AbsTol(ntol), RWORK(LRW) 
+!                                                                       
+!        CALL DLSODE (F, NEQ, Y, T, TOUT, ITOL, RelTol, AbsTol, ITASK,      
+!       *            ISTATE, IOPT, RWORK, LRW, IWORK, LIW, JAC, MF)     
+!                                                                       
+! *Arguments:                                                           
+!     F     :EXT    Name of subroutine for right-hand-side vector f.    
+!                   This name must be declared EXTERNAL in calling      
+!                   program.  The form of F must be:                    
+!                                                                       
+!                   SUBROUTINE  F (NEQ, T, Y, YDOT)                     
+!                   INTEGER  NEQ                                        
+!                   KPP_REAL  T, Y(*), YDOT(*)                  
+!                                                                       
+!                   The inputs are NEQ, T, Y.  F is to set              
+!                                                                       
+!                   YDOT(i) = f(i,T,Y(1),Y(2),...,Y(NEQ)),              
+!                                                     i = 1, ..., NEQ . 
+!                                                                       
+!     NEQ   :IN     Number of first-order ODE's.                        
+!                                                                       
+!     Y     :INOUT  Array of values of the y(t) vector, of length NEQ.  
+!                   Input:  For the first call, Y should contain the    
+!                           values of y(t) at t = T. (Y is an input     
+!                           variable only if ISTATE = 1.)               
+!                   Output: On return, Y will contain the values at the 
+!                           new t-value.                                
+!                                                                       
+!     T     :INOUT  Value of the independent variable.  On return it    
+!                   will be the current value of t (normally TOUT).     
+!                                                                       
+!     TOUT  :IN     Next point where output is desired (.NE. T).        
+!                                                                       
+!     ITOL  :IN     1 or 2 according as AbsTol (below) is a scalar or     
+!                   an array.                                           
+!                                                                       
+!     RelTol  :IN     Relative tolerance parameter (scalar).              
+!                                                                       
+!     AbsTol  :IN     Absolute tolerance parameter (scalar or array).     
+!                   If ITOL = 1, AbsTol need not be dimensioned.          
+!                   If ITOL = 2, AbsTol must be dimensioned at least NEQ. 
+!                                                                       
+!                   The estimated local error in Y(i) will be controlled
+!                   so as to be roughly less (in magnitude) than        
+!                                                                       
+!                   EWT(i) = RelTol*ABS(Y(i)) + AbsTol     if ITOL = 1, or  
+!                   EWT(i) = RelTol*ABS(Y(i)) + AbsTol(i)  if ITOL = 2.     
+!                                                                       
+!                   Thus the local error test passes if, in each        
+!                   component, either the absolute error is less than   
+!                   AbsTol (or AbsTol(i)), or the relative error is less    
+!                   than RelTol.                                          
+!                                                                       
+!                   Use RelTol = 0.0 for pure absolute error control, and 
+!                   use AbsTol = 0.0 (or AbsTol(i) = 0.0) for pure relative 
+!                   error control.  Caution:  Actual (global) errors may
+!                   exceed these local tolerances, so choose them       
+!                   conservatively.                                     
+!                                                                       
+!     ITASK :IN     Flag indicating the task DLSODE is to perform.      
+!                   Use ITASK = 1 for normal computation of output      
+!                   values of y at t = TOUT.                            
+!                                                                       
+!     ISTATE:INOUT  Index used for input and output to specify the state
+!                   of the calculation.                                 
+!                   Input:                                              
+!                    1   This is the first call for a problem.          
+!                    2   This is a subsequent call.                     
+!                   Output:                                             
+!                    1   Nothing was done, because TOUT was equal to T. 
+!                    2   DLSODE was successful (otherwise, negative).   
+!                        Note that ISTATE need not be modified after a  
+!                        successful return.                             
+!                   -1   Excess work done on this call (perhaps wrong   
+!                        MF).                                           
+!                   -2   Excess accuracy requested (tolerances too      
+!                        small).                                        
+!                   -3   Illegal input detected (see printed message).  
+!                   -4   Repeated error test failures (check all        
+!                        inputs).                                       
+!                   -5   Repeated convergence failures (perhaps bad     
+!                        Jacobian supplied or wrong choice of MF or     
+!                        tolerances).                                   
+!                   -6   Error weight became zero during problem        
+!                        (solution component i vanished, and AbsTol or    
+!                        AbsTol(i) = 0.).                                 
+!                                                                       
+!     IOPT  :IN     Flag indicating whether optional inputs are used:   
+!                   0   No.                                             
+!                   1   Yes.  (See "Optional inputs" under "Long        
+!                       Description," Part 1.)                          
+!                                                                       
+!     RWORK :WORK   Real work array of length at least:                 
+!                   20 + 16*NEQ                    for MF = 10,         
+!                   22 +  9*NEQ + NEQ**2           for MF = 21 or 22,   
+!                   22 + 10*NEQ + (2*ML + MU)*NEQ  for MF = 24 or 25.   
+!                                                                       
+!     LRW   :IN     Declared length of RWORK (in user's DIMENSION       
+!                   statement).                                         
+!                                                                       
+!     IWORK :WORK   Integer work array of length at least:              
+!                   20        for MF = 10,                              
+!                   20 + NEQ  for MF = 21, 22, 24, or 25.               
+!                                                                       
+!                   If MF = 24 or 25, input in IWORK(1),IWORK(2) the    
+!                   lower and upper Jacobian half-bandwidths ML,MU.     
+!                                                                       
+!                   On return, IWORK contains information that may be   
+!                   of interest to the user:                            
+!                                                                       
+!            Name   Location   Meaning                                  
+!            -----  ---------  -----------------------------------------
+!            NST    IWORK(11)  Number of steps taken for the problem so 
+!                              far.                                     
+!            NFE    IWORK(12)  Number of f evaluations for the problem  
+!                              so far.                                  
+!            NJE    IWORK(13)  Number of Jacobian evaluations (and of   
+!                              matrix LU decompositions) for the problem
+!                              so far.                                  
+!            NQU    IWORK(14)  Method order last used (successfully).   
+!            LENRW  IWORK(17)  Length of RWORK actually required.  This 
+!                              is defined on normal returns and on an   
+!                              illegal input return for insufficient    
+!                              storage.                                 
+!            LENIW  IWORK(18)  Length of IWORK actually required.  This 
+!                              is defined on normal returns and on an   
+!                              illegal input return for insufficient    
+!                              storage.                                 
+!                                                                       
+!     LIW   :IN     Declared length of IWORK (in user's DIMENSION       
+!                   statement).                                         
+!                                                                       
+!     JAC   :EXT    Name of subroutine for Jacobian matrix (MF =        
+!                   21 or 24).  If used, this name must be declared     
+!                   EXTERNAL in calling program.  If not used, pass a   
+!                   dummy name.  The form of JAC must be:               
+!                                                                       
+!                   SUBROUTINE JAC (NEQ, T, Y, ML, MU, PD, NROWPD)      
+!                   INTEGER  NEQ, ML, MU, NROWPD                        
+!                   KPP_REAL  T, Y(*), PD(NROWPD,*)             
+!                                                                       
+!                   See item c, under "Description" below for more      
+!                   information about JAC.                              
+!                                                                       
+!     MF    :IN     Method flag.  Standard values are:                  
+!                   10  Nonstiff (Adams) method, no Jacobian used.      
+!                   21  Stiff (BDF) method, user-supplied full Jacobian.
+!                   22  Stiff method, internally generated full         
+!                       Jacobian.                                       
+!                   24  Stiff method, user-supplied banded Jacobian.    
+!                   25  Stiff method, internally generated banded       
+!                       Jacobian.                                       
+!                                                                       
+! *Description:                                                         
+!     DLSODE solves the initial value problem for stiff or nonstiff     
+!     systems of first-order ODE's,                                     
+!                                                                       
+!        dy/dt = f(t,y) ,                                               
+!                                                                       
+!     or, in component form,                                            
+!                                                                       
+!        dy(i)/dt = f(i) = f(i,t,y(1),y(2),...,y(NEQ))                  
+!                                                  (i = 1, ..., NEQ) .  
+!                                                                       
+!     DLSODE is a package based on the GEAR and GEARB packages, and on  
+!     the October 23, 1978, version of the tentative ODEPACK user       
+!     interface standard, with minor modifications.                     
+!                                                                       
+!     The steps in solving such a problem are as follows.               
+!                                                                       
+!     a. First write a subroutine of the form                           
+!                                                                       
+!           SUBROUTINE  F (NEQ, T, Y, YDOT)                             
+!           INTEGER  NEQ                                                
+!           KPP_REAL  T, Y(*), YDOT(*)                          
+!                                                                       
+!        which supplies the vector function f by loading YDOT(i) with   
+!        f(i).                                                          
+!                                                                       
+!     b. Next determine (or guess) whether or not the problem is stiff. 
+!        Stiffness occurs when the Jacobian matrix df/dy has an         
+!        eigenvalue whose real part is negative and large in magnitude  
+!        compared to the reciprocal of the t span of interest.  If the  
+!        problem is nonstiff, use method flag MF = 10.  If it is stiff, 
+!        there are four standard choices for MF, and DLSODE requires the
+!        Jacobian matrix in some form.  This matrix is regarded either  
+!        as full (MF = 21 or 22), or banded (MF = 24 or 25).  In the    
+!        banded case, DLSODE requires two half-bandwidth parameters ML  
+!        and MU. These are, respectively, the widths of the lower and   
+!        upper parts of the band, excluding the main diagonal.  Thus the
+!        band consists of the locations (i,j) with                      
+!                                                                       
+!           i - ML <= j <= i + MU ,                                     
+!                                                                       
+!        and the full bandwidth is ML + MU + 1 .                        
+!                                                                       
+!     c. If the problem is stiff, you are encouraged to supply the      
+!        Jacobian directly (MF = 21 or 24), but if this is not feasible,
+!        DLSODE will compute it internally by difference quotients (MF =
+!        22 or 25).  If you are supplying the Jacobian, write a         
+!        subroutine of the form                                         
+!                                                                       
+!           SUBROUTINE  JAC (NEQ, T, Y, ML, MU, PD, NROWPD)             
+!           INTEGER  NEQ, ML, MU, NRWOPD                                
+!           KPP_REAL  T, Y(*), PD(NROWPD,*)                     
+!                                                                       
+!        which provides df/dy by loading PD as follows:                 
+!        - For a full Jacobian (MF = 21), load PD(i,j) with df(i)/dy(j),
+!          the partial derivative of f(i) with respect to y(j).  (Ignore
+!          the ML and MU arguments in this case.)                       
+!        - For a banded Jacobian (MF = 24), load PD(i-j+MU+1,j) with    
+!          df(i)/dy(j); i.e., load the diagonal lines of df/dy into the 
+!          rows of PD from the top down.                                
+!        - In either case, only nonzero elements need be loaded.        
+!                                                                       
+!     d. Write a main program that calls subroutine DLSODE once for each
+!        point at which answers are desired.  This should also provide  
+!        for possible use of logical unit 6 for output of error messages
+!        by DLSODE.                                                     
+!                                                                       
+!        Before the first call to DLSODE, set ISTATE = 1, set Y and T to
+!        the initial values, and set TOUT to the first output point.  To
+!        continue the integration after a successful return, simply     
+!        reset TOUT and call DLSODE again.  No other parameters need be 
+!        reset.                                                         
+!                                                                       
+! *Examples:                                                            
+!     The following is a simple example problem, with the coding needed 
+!     for its solution by DLSODE. The problem is from chemical kinetics,
+!     and consists of the following three rate equations:               
+!                                                                       
+!        dy1/dt = -.04*y1 + 1.E4*y2*y3                                  
+!        dy2/dt = .04*y1 - 1.E4*y2*y3 - 3.E7*y2**2                      
+!        dy3/dt = 3.E7*y2**2                                            
+!                                                                       
+!     on the interval from t = 0.0 to t = 4.E10, with initial conditions
+!     y1 = 1.0, y2 = y3 = 0. The problem is stiff.                      
+!                                                                       
+!     The following coding solves this problem with DLSODE, using       
+!     MF = 21 and printing results at t = .4, 4., ..., 4.E10.  It uses  
+!     ITOL = 2 and AbsTol much smaller for y2 than for y1 or y3 because y2
+!     has much smaller values.  At the end of the run, statistical      
+!     quantities of interest are printed.                               
+!                                                                       
+!        EXTERNAL  FEX, JEX                                             
+!        INTEGER  IOPT, IOUT, ISTATE, ITASK, ITOL, IWORK(23), LIW, LRW, 
+!       *         MF, NEQ                                               
+!        KPP_REAL  AbsTol(3), RelTol, RWORK(58), T, TOUT, Y(3)      
+!        NEQ = 3                                                        
+!        Y(1) = 1.D0                                                    
+!        Y(2) = 0.D0                                                    
+!        Y(3) = 0.D0                                                    
+!        T = 0.D0                                                       
+!        TOUT = .4D0                                                    
+!        ITOL = 2                                                       
+!        RelTol = 1.D-4                                                   
+!        AbsTol(1) = 1.D-6                                                
+!        AbsTol(2) = 1.D-10                                               
+!        AbsTol(3) = 1.D-6                                                
+!        ITASK = 1                                                      
+!        ISTATE = 1                                                     
+!        IOPT = 0                                                       
+!        LRW = 58                                                       
+!        LIW = 23                                                       
+!        MF = 21                                                        
+!        DO 40 IOUT = 1,12                                              
+!          CALL DLSODE (FEX, NEQ, Y, T, TOUT, ITOL, RelTol, AbsTol, ITASK,  
+!       *               ISTATE, IOPT, RWORK, LRW, IWORK, LIW, JEX, MF)  
+!          WRITE(6,20)  T, Y(1), Y(2), Y(3)                             
+!    20    FORMAT(' At t =',D12.4,'   y =',3D14.6)                      
+!          IF (ISTATE .LT. 0)  GO TO 80                                 
+!    40    TOUT = TOUT*10.D0                                            
+!        WRITE(6,60)  IWORK(11), IWORK(12), IWORK(13)                   
+!    60  FORMAT(/' No. steps =',i4,',  No. f-s =',i4,',  No. J-s =',i4) 
+!        STOP                                                           
+!    80  WRITE(6,90)  ISTATE                                            
+!    90  FORMAT(///' Error halt.. ISTATE =',I3)                         
+!        STOP                                                           
+!        END                                                            
+!                                                                       
+!        SUBROUTINE  FEX (NEQ, T, Y, YDOT)                              
+!        INTEGER  NEQ                                                   
+!        KPP_REAL  T, Y(3), YDOT(3)                             
+!        YDOT(1) = -.04D0*Y(1) + 1.D4*Y(2)*Y(3)                         
+!        YDOT(3) = 3.D7*Y(2)*Y(2)                                       
+!        YDOT(2) = -YDOT(1) - YDOT(3)                                   
+!        RETURN                                                         
+!        END                                                            
+!                                                                       
+!        SUBROUTINE  JEX (NEQ, T, Y, ML, MU, PD, NRPD)                  
+!        INTEGER  NEQ, ML, MU, NRPD                                     
+!        KPP_REAL  T, Y(3), PD(NRPD,3)                          
+!        PD(1,1) = -.04D0                                               
+!        PD(1,2) = 1.D4*Y(3)                                            
+!        PD(1,3) = 1.D4*Y(2)                                            
+!        PD(2,1) = .04D0                                                
+!        PD(2,3) = -PD(1,3)                                             
+!        PD(3,2) = 6.D7*Y(2)                                            
+!        PD(2,2) = -PD(1,2) - PD(3,2)                                   
+!        RETURN                                                         
+!        END                                                            
+!                                                                       
+!     The output from this program (on a Cray-1 in single precision)    
+!     is as follows.                                                    
+!                                                                       
+!     At t =  4.0000e-01   y =  9.851726e-01  3.386406e-05  1.479357e-02
+!     At t =  4.0000e+00   y =  9.055142e-01  2.240418e-05  9.446344e-02
+!     At t =  4.0000e+01   y =  7.158050e-01  9.184616e-06  2.841858e-01
+!     At t =  4.0000e+02   y =  4.504846e-01  3.222434e-06  5.495122e-01
+!     At t =  4.0000e+03   y =  1.831701e-01  8.940379e-07  8.168290e-01
+!     At t =  4.0000e+04   y =  3.897016e-02  1.621193e-07  9.610297e-01
+!     At t =  4.0000e+05   y =  4.935213e-03  1.983756e-08  9.950648e-01
+!     At t =  4.0000e+06   y =  5.159269e-04  2.064759e-09  9.994841e-01
+!     At t =  4.0000e+07   y =  5.306413e-05  2.122677e-10  9.999469e-01
+!     At t =  4.0000e+08   y =  5.494530e-06  2.197825e-11  9.999945e-01
+!     At t =  4.0000e+09   y =  5.129458e-07  2.051784e-12  9.999995e-01
+!     At t =  4.0000e+10   y = -7.170603e-08 -2.868241e-13  1.000000e+00
+!                                                                       
+!     No. steps = 330,  No. f-s = 405,  No. J-s = 69                    
+!                                                                       
+! *Accuracy:                                                            
+!     The accuracy of the solution depends on the choice of tolerances  
+!     RelTol and AbsTol.  Actual (global) errors may exceed these local     
+!     tolerances, so choose them conservatively.                        
+!                                                                       
+! *Cautions:                                                            
+!     The work arrays should not be altered between calls to DLSODE for 
+!     the same problem, except possibly for the conditional and optional
+!     inputs.                                                           
+!                                                                       
+! *Portability:                                                         
+!     Since NEQ is dimensioned inside DLSODE, some compilers may object 
+!     to a call to DLSODE with NEQ a scalar variable.  In this event,   
+!     use DIMENSION NEQ.  Similar remarks apply to RelTol and AbsTol.    
+!                                                                       
+!     Note to Cray users:                                               
+!     For maximum efficiency, use the CFT77 compiler.  Appropriate      
+!     compiler optimization directives have been inserted for CFT77.    
+!                                                                       
+! *Reference:                                                           
+!     Alan C. Hindmarsh, "ODEPACK, A Systematized Collection of ODE     
+!     Solvers," in Scientific Computing, R. S. Stepleman, et al., Eds.  
+!     (North-Holland, Amsterdam, 1983), pp. 55-64.                      
+!                                                                       
+! *Long Description:                                                    
+!     The following complete description of the user interface to       
+!     DLSODE consists of four parts:                                    
+!                                                                       
+!     1.  The call sequence to subroutine DLSODE, which is a driver     
+!         routine for the solver.  This includes descriptions of both   
+!         the call sequence arguments and user-supplied routines.       
+!         Following these descriptions is a description of optional     
+!         inputs available through the call sequence, and then a        
+!         description of optional outputs in the work arrays.           
+!                                                                       
+!     2.  Descriptions of other routines in the DLSODE package that may 
+!         be (optionally) called by the user.  These provide the ability
+!         to alter error message handling, save and restore the internal
+!         COMMON, and obtain specified derivatives of the solution y(t).
+!                                                                       
+!     3.  Descriptions of COMMON block to be declared in overlay or     
+!         similar environments, or to be saved when doing an interrupt  
+!         of the problem and continued solution later.                  
+!                                                                       
+!     4.  Description of two routines in the DLSODE package, either of  
+!         which the user may replace with his own version, if desired.  
+!         These relate to the measurement of errors.                    
+!                                                                       
+!                                                                       
+!                         Part 1.  Call Sequence                        
+!                         ----------------------                        
+!                                                                       
+!     Arguments                                                         
+!     ---------                                                         
+!     The call sequence parameters used for input only are              
+!                                                                       
+!        F, NEQ, TOUT, ITOL, RelTol, AbsTol, ITASK, IOPT, LRW, LIW, JAC, MF,
+!                                                                       
+!     and those used for both input and output are                      
+!                                                                       
+!        Y, T, ISTATE.                                                  
+!                                                                       
+!     The work arrays RWORK and IWORK are also used for conditional and 
+!     optional inputs and optional outputs.  (The term output here      
+!     refers to the return from subroutine DLSODE to the user's calling 
+!     program.)                                                         
+!                                                                       
+!     The legality of input parameters will be thoroughly checked on the
+!     initial call for the problem, but not checked thereafter unless a 
+!     change in input parameters is flagged by ISTATE = 3 on input.     
+!                                                                       
+!     The descriptions of the call arguments are as follows.            
+!                                                                       
+!     F        The name of the user-supplied subroutine defining the ODE
+!              system.  The system must be put in the first-order form  
+!              dy/dt = f(t,y), where f is a vector-valued function of   
+!              the scalar t and the vector y. Subroutine F is to compute
+!              the function f. It is to have the form                   
+!                                                                       
+!                 SUBROUTINE F (NEQ, T, Y, YDOT)                        
+!                 KPP_REAL  T, Y(*), YDOT(*)                    
+!                                                                       
+!              where NEQ, T, and Y are input, and the array YDOT =      
+!              f(T,Y) is output.  Y and YDOT are arrays of length NEQ.  
+!              Subroutine F should not alter Y(1),...,Y(NEQ).  F must be
+!              declared EXTERNAL in the calling program.                
+!                                                                       
+!              Subroutine F may access user-defined quantities in       
+!              NEQ(2),... and/or in Y(NEQ+1),..., if NEQ is an array 
+!              (dimensioned in F) and/or Y has length exceeding NEQ. 
+!              See the descriptions of NEQ and Y below.                 
+!                                                                       
+!              If quantities computed in the F routine are needed       
+!              externally to DLSODE, an extra call to F should be made  
+!              for this purpose, for consistent and accurate results.   
+!              If only the derivative dy/dt is needed, use DINTDY       
+!              instead.                                                 
+!                                                                       
+!     NEQ      The size of the ODE system (number of first-order        
+!              ordinary differential equations).  Used only for input.  
+!              NEQ may be decreased, but not increased, during the      
+!              problem.  If NEQ is decreased (with ISTATE = 3 on input),
+!              the remaining components of Y should be left undisturbed,
+!              if these are to be accessed in F and/or JAC.             
+!                                                                       
+!              Normally, NEQ is a scalar, and it is generally referred  
+!              to as a scalar in this user interface description.       
+!              However, NEQ may be an array, with NEQ set to the     
+!              system size.  (The DLSODE package accesses only NEQ.) 
+!              In either case, this parameter is passed as the NEQ      
+!              argument in all calls to F and JAC.  Hence, if it is an  
+!              array, locations NEQ(2),... may be used to store other   
+!              integer data and pass it to F and/or JAC.  Subroutines   
+!              F and/or JAC must include NEQ in a DIMENSION statement   
+!              in that case.                                            
+!                                                                       
+!     Y        A real array for the vector of dependent variables, of   
+!              length NEQ or more.  Used for both input and output on   
+!              the first call (ISTATE = 1), and only for output on      
+!              other calls.  On the first call, Y must contain the      
+!              vector of initial values.  On output, Y contains the     
+!              computed solution vector, evaluated at T. If desired,    
+!              the Y array may be used for other purposes between       
+!              calls to the solver.                                     
+!                                                                       
+!              This array is passed as the Y argument in all calls to F 
+!              and JAC.  Hence its length may exceed NEQ, and locations 
+!              Y(NEQ+1),... may be used to store other real data and    
+!              pass it to F and/or JAC.  (The DLSODE package accesses   
+!              only Y(1),...,Y(NEQ).)                                   
+!                                                                       
+!     T        The independent variable.  On input, T is used only on   
+!              the first call, as the initial point of the integration. 
+!              On output, after each call, T is the value at which a    
+!              computed solution Y is evaluated (usually the same as    
+!              TOUT).  On an error return, T is the farthest point      
+!              reached.                                                 
+!                                                                       
+!     TOUT     The next value of T at which a computed solution is      
+!              desired.  Used only for input.                           
+!                                                                       
+!              When starting the problem (ISTATE = 1), TOUT may be equal
+!              to T for one call, then should not equal T for the next  
+!              call.  For the initial T, an input value of TOUT .NE. T  
+!              is used in order to determine the direction of the       
+!              integration (i.e., the algebraic sign of the step sizes) 
+!              and the rough scale of the problem.  Integration in      
+!              either direction (forward or backward in T) is permitted.
+!                                                                       
+!              If ITASK = 2 or 5 (one-step modes), TOUT is ignored      
+!              after the first call (i.e., the first call with          
+!              TOUT .NE. T).  Otherwise, TOUT is required on every call.
+!                                                                       
+!              If ITASK = 1, 3, or 4, the values of TOUT need not be    
+!              monotone, but a value of TOUT which backs up is limited  
+!              to the current internal T interval, whose endpoints are  
+!              TCUR - HU and TCUR.  (See "Optional Outputs" below for   
+!              TCUR and HU.)                                            
+!                                                                       
+!                                                                       
+!     ITOL     An indicator for the type of error control.  See         
+!              description below under AbsTol.  Used only for input.      
+!                                                                       
+!     RelTol     A relative error tolerance parameter, either a scalar or 
+!              an array of length NEQ.  See description below under     
+!              AbsTol.  Input only.                                       
+!                                                                       
+!     AbsTol     An absolute error tolerance parameter, either a scalar or
+!              an array of length NEQ.  Input only.                     
+!                                                                       
+!              The input parameters ITOL, RelTol, and AbsTol determine the  
+!              error control performed by the solver.  The solver will  
+!              control the vector e = (e(i)) of estimated local errors  
+!              in Y, according to an inequality of the form             
+!                                                                       
+!                 rms-norm of ( e(i)/EWT(i) ) <= 1,                     
+!                                                                       
+!              where                                                    
+!                                                                       
+!                 EWT(i) = RelTol(i)*ABS(Y(i)) + AbsTol(i),                 
+!                                                                       
+!              and the rms-norm (root-mean-square norm) here is         
+!                                                                       
+!                 rms-norm(v) = SQRT(sum v(i)**2 / NEQ).                
+!                                                                       
+!              Here EWT = (EWT(i)) is a vector of weights which must    
+!              always be positive, and the values of RelTol and AbsTol      
+!              should all be nonnegative.  The following table gives the
+!              types (scalar/array) of RelTol and AbsTol, and the           
+!              corresponding form of EWT(i).                            
+!                                                                       
+!              ITOL    RelTol      AbsTol      EWT(i)                       
+!              ----    ------    ------    -----------------------------
+!              1       scalar    scalar    RelTol*ABS(Y(i)) + AbsTol        
+!              2       scalar    array     RelTol*ABS(Y(i)) + AbsTol(i)     
+!              3       array     scalar    RelTol(i)*ABS(Y(i)) + AbsTol     
+!              4       array     array     RelTol(i)*ABS(Y(i)) + AbsTol(i)  
+!                                                                       
+!              When either of these parameters is a scalar, it need not 
+!              be dimensioned in the user's calling program.            
+!                                                                       
+!              If none of the above choices (with ITOL, RelTol, and AbsTol  
+!              fixed throughout the problem) is suitable, more general  
+!              error controls can be obtained by substituting           
+!              user-supplied routines for the setting of EWT and/or for 
+!              the norm calculation.  See Part 4 below.                 
+!                                                                       
+!              If global errors are to be estimated by making a repeated
+!              run on the same problem with smaller tolerances, then all
+!              components of RelTol and AbsTol (i.e., of EWT) should be     
+!              scaled down uniformly.                                   
+!                                                                       
+!     ITASK    An index specifying the task to be performed.  Input     
+!              only.  ITASK has the following values and meanings:      
+!              1   Normal computation of output values of y(t) at       
+!                  t = TOUT (by overshooting and interpolating).        
+!              2   Take one step only and return.                       
+!              3   Stop at the first internal mesh point at or beyond   
+!                  t = TOUT and return.                                 
+!              4   Normal computation of output values of y(t) at       
+!                  t = TOUT but without overshooting t = TCRIT.  TCRIT  
+!                  must be input as RWORK(1).  TCRIT may be equal to or 
+!                  beyond TOUT, but not behind it in the direction of   
+!                  integration.  This option is useful if the problem   
+!                  has a singularity at or beyond t = TCRIT.            
+!              5   Take one step, without passing TCRIT, and return.    
+!                  TCRIT must be input as RWORK(1).                     
+!                                                                       
+!              Note:  If ITASK = 4 or 5 and the solver reaches TCRIT    
+!              (within roundoff), it will return T = TCRIT (exactly) to 
+!              indicate this (unless ITASK = 4 and TOUT comes before    
+!              TCRIT, in which case answers at T = TOUT are returned    
+!              first).                                                  
+!                                                                       
+!     ISTATE   An index used for input and output to specify the state  
+!              of the calculation.                                      
+!                                                                       
+!              On input, the values of ISTATE are as follows:           
+!              1   This is the first call for the problem               
+!                  (initializations will be done).  See "Note" below.   
+!              2   This is not the first call, and the calculation is to
+!                  continue normally, with no change in any input       
+!                  parameters except possibly TOUT and ITASK.  (If ITOL,
+!                  RelTol, and/or AbsTol are changed between calls with     
+!                  ISTATE = 2, the new values will be used but not      
+!                  tested for legality.)                                
+!              3   This is not the first call, and the calculation is to
+!                  continue normally, but with a change in input        
+!                  parameters other than TOUT and ITASK.  Changes are   
+!                  allowed in NEQ, ITOL, RelTol, AbsTol, IOPT, LRW, LIW, MF,
+!                  ML, MU, and any of the optional inputs except H0.    
+!                  (See IWORK description for ML and MU.)               
+!                                                                       
+!              Note:  A preliminary call with TOUT = T is not counted as
+!              a first call here, as no initialization or checking of   
+!              input is done.  (Such a call is sometimes useful for the 
+!              purpose of outputting the initial conditions.)  Thus the 
+!              first call for which TOUT .NE. T requires ISTATE = 1 on  
+!              input.                                                   
+!                                                                       
+!              On output, ISTATE has the following values and meanings: 
+!               1  Nothing was done, as TOUT was equal to T with        
+!                  ISTATE = 1 on input.                                 
+!               2  The integration was performed successfully.          
+!              -1  An excessive amount of work (more than MXSTEP steps) 
+!                  was done on this call, before completing the         
+!                  requested task, but the integration was otherwise    
+!                  successful as far as T. (MXSTEP is an optional input 
+!                  and is normally 500.)  To continue, the user may     
+!                  simply reset ISTATE to a value >1 and call again (the
+!                  excess work step counter will be reset to 0).  In    
+!                  addition, the user may increase MXSTEP to avoid this 
+!                  error return; see "Optional Inputs" below.           
+!              -2  Too much accuracy was requested for the precision of 
+!                  the machine being used.  This was detected before    
+!                  completing the requested task, but the integration   
+!                  was successful as far as T. To continue, the         
+!                  tolerance parameters must be reset, and ISTATE must  
+!                  be set to 3. The optional output TOLSF may be used   
+!                  for this purpose.  (Note:  If this condition is      
+!                  detected before taking any steps, then an illegal    
+!                  input return (ISTATE = -3) occurs instead.)          
+!              -3  Illegal input was detected, before taking any        
+!                  integration steps.  See written message for details. 
+!                  (Note:  If the solver detects an infinite loop of    
+!                  calls to the solver with illegal input, it will cause
+!                  the run to stop.)                                    
+!              -4  There were repeated error-test failures on one       
+!                  attempted step, before completing the requested task,
+!                  but the integration was successful as far as T.  The 
+!                  problem may have a singularity, or the input may be  
+!                  inappropriate.                                       
+!              -5  There were repeated convergence-test failures on one 
+!                  attempted step, before completing the requested task,
+!                  but the integration was successful as far as T. This 
+!                  may be caused by an inaccurate Jacobian matrix, if   
+!                  one is being used.                                   
+!              -6  EWT(i) became zero for some i during the integration.
+!                  Pure relative error control (AbsTol(i)=0.0) was        
+!                  requested on a variable which has now vanished.  The 
+!                  integration was successful as far as T.              
+!                                                                       
+!              Note:  Since the normal output value of ISTATE is 2, it  
+!              does not need to be reset for normal continuation.  Also,
+!              since a negative input value of ISTATE will be regarded  
+!              as illegal, a negative output value requires the user to 
+!              change it, and possibly other inputs, before calling the 
+!              solver again.                                            
+!                                                                       
+!     IOPT     An integer flag to specify whether any optional inputs   
+!              are being used on this call.  Input only.  The optional  
+!              inputs are listed under a separate heading below.        
+!              0   No optional inputs are being used.  Default values   
+!                  will be used in all cases.                           
+!              1   One or more optional inputs are being used.          
+!                                                                       
+!     RWORK    A real working array (double precision).  The length of  
+!              RWORK must be at least                                   
+!                                                                       
+!                 20 + NYH*(MAXORD + 1) + 3*NEQ + LWM                   
+!                                                                       
+!              where                                                    
+!                 NYH = the initial value of NEQ,                       
+!              MAXORD = 12 (if METH = 1) or 5 (if METH = 2) (unless a   
+!                       smaller value is given as an optional input),   
+!                 LWM = 0           if MITER = 0,                       
+!                 LWM = NEQ**2 + 2  if MITER = 1 or 2,                  
+!                 LWM = NEQ + 2     if MITER = 3, and                   
+!                 LWM = (2*ML + MU + 1)*NEQ + 2                         
+!                                   if MITER = 4 or 5.                  
+!              (See the MF description below for METH and MITER.)       
+!                                                                       
+!              Thus if MAXORD has its default value and NEQ is constant,
+!              this length is:                                          
+!              20 + 16*NEQ                    for MF = 10,              
+!              22 + 16*NEQ + NEQ**2           for MF = 11 or 12,        
+!              22 + 17*NEQ                    for MF = 13,              
+!              22 + 17*NEQ + (2*ML + MU)*NEQ  for MF = 14 or 15,        
+!              20 +  9*NEQ                    for MF = 20,              
+!              22 +  9*NEQ + NEQ**2           for MF = 21 or 22,        
+!              22 + 10*NEQ                    for MF = 23,              
+!              22 + 10*NEQ + (2*ML + MU)*NEQ  for MF = 24 or 25.        
+!                                                                       
+!              The first 20 words of RWORK are reserved for conditional 
+!              and optional inputs and optional outputs.                
+!                                                                       
+!              The following word in RWORK is a conditional input:      
+!              RWORK(1) = TCRIT, the critical value of t which the      
+!                         solver is not to overshoot.  Required if ITASK
+!                         is 4 or 5, and ignored otherwise.  See ITASK. 
+!                                                                       
+!     LRW      The length of the array RWORK, as declared by the user.  
+!              (This will be checked by the solver.)                    
+!                                                                       
+!     IWORK    An integer work array.  Its length must be at least      
+!              20       if MITER = 0 or 3 (MF = 10, 13, 20, 23), or     
+!              20 + NEQ otherwise (MF = 11, 12, 14, 15, 21, 22, 24, 25).
+!              (See the MF description below for MITER.)  The first few 
+!              words of IWORK are used for conditional and optional     
+!              inputs and optional outputs.                             
+!                                                                       
+!              The following two words in IWORK are conditional inputs: 
+!              IWORK(1) = ML   These are the lower and upper half-      
+!              IWORK(2) = MU   bandwidths, respectively, of the banded  
+!                              Jacobian, excluding the main diagonal.   
+!                         The band is defined by the matrix locations   
+!                         (i,j) with i - ML <= j <= i + MU. ML and MU   
+!                         must satisfy 0 <= ML,MU <= NEQ - 1. These are 
+!                         required if MITER is 4 or 5, and ignored      
+!                         otherwise.  ML and MU may in fact be the band 
+!                         parameters for a matrix to which df/dy is only
+!                         approximately equal.                          
+!                                                                       
+!     LIW      The length of the array IWORK, as declared by the user.  
+!              (This will be checked by the solver.)                    
+!                                                                       
+!     Note:  The work arrays must not be altered between calls to DLSODE
+!     for the same problem, except possibly for the conditional and     
+!     optional inputs, and except for the last 3*NEQ words of RWORK.    
+!     The latter space is used for internal scratch space, and so is    
+!     available for use by the user outside DLSODE between calls, if    
+!     desired (but not for use by F or JAC).                            
+!                                                                       
+!     JAC      The name of the user-supplied routine (MITER = 1 or 4) to
+!              compute the Jacobian matrix, df/dy, as a function of the 
+!              scalar t and the vector y.  (See the MF description below
+!              for MITER.)  It is to have the form                      
+!                                                                       
+!                 SUBROUTINE JAC (NEQ, T, Y, ML, MU, PD, NROWPD)        
+!                 KPP_REAL T, Y(*), PD(NROWPD,*)                
+!                                                                       
+!              where NEQ, T, Y, ML, MU, and NROWPD are input and the    
+!              array PD is to be loaded with partial derivatives        
+!              (elements of the Jacobian matrix) on output.  PD must be 
+!              given a first dimension of NROWPD.  T and Y have the same
+!              meaning as in subroutine F.                              
+!                                                                       
+!              In the full matrix case (MITER = 1), ML and MU are       
+!              ignored, and the Jacobian is to be loaded into PD in     
+!              columnwise manner, with df(i)/dy(j) loaded into PD(i,j). 
+!                                                                       
+!              In the band matrix case (MITER = 4), the elements within 
+!              the band are to be loaded into PD in columnwise manner,  
+!              with diagonal lines of df/dy loaded into the rows of PD. 
+!              Thus df(i)/dy(j) is to be loaded into PD(i-j+MU+1,j).  ML
+!              and MU are the half-bandwidth parameters (see IWORK).    
+!              The locations in PD in the two triangular areas which    
+!              correspond to nonexistent matrix elements can be ignored 
+!              or loaded arbitrarily, as they are overwritten by DLSODE.
+!                                                                       
+!              JAC need not provide df/dy exactly. A crude approximation
+!              (possibly with a smaller bandwidth) will do.             
+!                                                                       
+!              In either case, PD is preset to zero by the solver, so   
+!              that only the nonzero elements need be loaded by JAC.    
+!              Each call to JAC is preceded by a call to F with the same
+!              arguments NEQ, T, and Y. Thus to gain some efficiency,   
+!              intermediate quantities shared by both calculations may  
+!              be saved in a user COMMON block by F and not recomputed  
+!              by JAC, if desired.  Also, JAC may alter the Y array, if 
+!              desired.  JAC must be declared EXTERNAL in the calling   
+!              program.                                                 
+!                                                                       
+!              Subroutine JAC may access user-defined quantities in     
+!              NEQ(2),... and/or in Y(NEQ+1),... if NEQ is an array  
+!              (dimensioned in JAC) and/or Y has length exceeding       
+!              NEQ.  See the descriptions of NEQ and Y above.        
+!                                                                       
+!     MF       The method flag.  Used only for input.  The legal values 
+!              of MF are 10, 11, 12, 13, 14, 15, 20, 21, 22, 23, 24,    
+!              and 25.  MF has decimal digits METH and MITER:           
+!                 MF = 10*METH + MITER .                                
+!                                                                       
+!              METH indicates the basic linear multistep method:        
+!              1   Implicit Adams method.                               
+!              2   Method based on backward differentiation formulas    
+!                  (BDF's).                                             
+!                                                                       
+!              MITER indicates the corrector iteration method:          
+!              0   Functional iteration (no Jacobian matrix is          
+!                  involved).                                           
+!              1   Chord iteration with a user-supplied full (NEQ by    
+!                  NEQ) Jacobian.                                       
+!              2   Chord iteration with an internally generated         
+!                  (difference quotient) full Jacobian (using NEQ       
+!                  extra calls to F per df/dy value).                   
+!              3   Chord iteration with an internally generated         
+!                  diagonal Jacobian approximation (using one extra call
+!                  to F per df/dy evaluation).                          
+!              4   Chord iteration with a user-supplied banded Jacobian.
+!              5   Chord iteration with an internally generated banded  
+!                  Jacobian (using ML + MU + 1 extra calls to F per     
+!                  df/dy evaluation).                                   
+!                                                                       
+!              If MITER = 1 or 4, the user must supply a subroutine JAC 
+!              (the name is arbitrary) as described above under JAC.    
+!              For other values of MITER, a dummy argument can be used. 
+!                                                                       
+!     Optional Inputs                                                   
+!     ---------------                                                   
+!     The following is a list of the optional inputs provided for in the
+!     call sequence.  (See also Part 2.)  For each such input variable, 
+!     this table lists its name as used in this documentation, its      
+!     location in the call sequence, its meaning, and the default value.
+!     The use of any of these inputs requires IOPT = 1, and in that case
+!     all of these inputs are examined.  A value of zero for any of     
+!     these optional inputs will cause the default value to be used.    
+!     Thus to use a subset of the optional inputs, simply preload       
+!     locations 5 to 10 in RWORK and IWORK to 0.0 and 0 respectively,   
+!     and then set those of interest to nonzero values.                 
+!                                                                       
+!     Name    Location   Meaning and default value                      
+!     ------  ---------  -----------------------------------------------
+!     H0      RWORK(5)   Step size to be attempted on the first step.   
+!                        The default value is determined by the solver. 
+!     HMAX    RWORK(6)   Maximum absolute step size allowed.  The       
+!                        default value is infinite.                     
+!     HMIN    RWORK(7)   Minimum absolute step size allowed.  The       
+!                        default value is 0.  (This lower bound is not  
+!                        enforced on the final step before reaching     
+!                        TCRIT when ITASK = 4 or 5.)                    
+!     MAXORD  IWORK(5)   Maximum order to be allowed.  The default value
+!                        is 12 if METH = 1, and 5 if METH = 2. (See the 
+!                        MF description above for METH.)  If MAXORD     
+!                        exceeds the default value, it will be reduced  
+!                        to the default value.  If MAXORD is changed    
+!                        during the problem, it may cause the current   
+!                        order to be reduced.                           
+!     MXSTEP  IWORK(6)   Maximum number of (internally defined) steps   
+!                        allowed during one call to the solver.  The    
+!                        default value is 500.                          
+!     MXHNIL  IWORK(7)   Maximum number of messages printed (per        
+!                        problem) warning that T + H = T on a step      
+!                        (H = step size).  This must be positive to     
+!                        result in a nondefault value.  The default     
+!                        value is 10.                                   
+!                                                                       
+!     Optional Outputs                                                  
+!     ----------------                                                  
+!     As optional additional output from DLSODE, the variables listed   
+!     below are quantities related to the performance of DLSODE which   
+!     are available to the user.  These are communicated by way of the  
+!     work arrays, but also have internal mnemonic names as shown.      
+!     Except where stated otherwise, all of these outputs are defined on
+!     any successful return from DLSODE, and on any return with ISTATE =
+!     -1, -2, -4, -5, or -6.  On an illegal input return (ISTATE = -3), 
+!     they will be unchanged from their existing values (if any), except
+!     possibly for TOLSF, LENRW, and LENIW.  On any error return,       
+!     outputs relevant to the error will be defined, as noted below.    
+!                                                                       
+!     Name   Location   Meaning                                         
+!     -----  ---------  ------------------------------------------------
+!     HU     RWORK(11)  Step size in t last used (successfully).        
+!     HCUR   RWORK(12)  Step size to be attempted on the next step.     
+!     TCUR   RWORK(13)  Current value of the independent variable which 
+!                       the solver has actually reached, i.e., the      
+!                       current internal mesh point in t. On output,    
+!                       TCUR will always be at least as far as the      
+!                       argument T, but may be farther (if interpolation
+!                       was done).                                      
+!     TOLSF  RWORK(14)  Tolerance scale factor, greater than 1.0,       
+!                       computed when a request for too much accuracy   
+!                       was detected (ISTATE = -3 if detected at the    
+!                       start of the problem, ISTATE = -2 otherwise).   
+!                       If ITOL is left unaltered but RelTol and AbsTol are 
+!                       uniformly scaled up by a factor of TOLSF for the
+!                       next call, then the solver is deemed likely to  
+!                       succeed.  (The user may also ignore TOLSF and   
+!                       alter the tolerance parameters in any other way 
+!                       appropriate.)                                   
+!     NST    IWORK(11)  Number of steps taken for the problem so far.   
+!     NFE    IWORK(12)  Number of F evaluations for the problem so far. 
+!     NJE    IWORK(13)  Number of Jacobian evaluations (and of matrix LU
+!                       decompositions) for the problem so far.         
+!     NQU    IWORK(14)  Method order last used (successfully).          
+!     NQCUR  IWORK(15)  Order to be attempted on the next step.         
+!     IMXER  IWORK(16)  Index of the component of largest magnitude in  
+!                       the weighted local error vector ( e(i)/EWT(i) ),
+!                       on an error return with ISTATE = -4 or -5.      
+!     LENRW  IWORK(17)  Length of RWORK actually required.  This is     
+!                       defined on normal returns and on an illegal     
+!                       input return for insufficient storage.          
+!     LENIW  IWORK(18)  Length of IWORK actually required.  This is     
+!                       defined on normal returns and on an illegal     
+!                       input return for insufficient storage.          
+!                                                                       
+!     The following two arrays are segments of the RWORK array which may
+!     also be of interest to the user as optional outputs.  For each    
+!     array, the table below gives its internal name, its base address  
+!     in RWORK, and its description.                                    
+!                                                                       
+!     Name  Base address  Description                                   
+!     ----  ------------  ----------------------------------------------
+!     YH    21            The Nordsieck history array, of size NYH by   
+!                         (NQCUR + 1), where NYH is the initial value of
+!                         NEQ.  For j = 0,1,...,NQCUR, column j + 1 of  
+!                         YH contains HCUR**j/factorial(j) times the jth
+!                         derivative of the interpolating polynomial    
+!                         currently representing the solution, evaluated
+!                         at t = TCUR.                                  
+!     ACOR  LENRW-NEQ+1   Array of size NEQ used for the accumulated    
+!                         corrections on each step, scaled on output to 
+!                         represent the estimated local error in Y on   
+!                         the last step.  This is the vector e in the   
+!                         description of the error control.  It is      
+!                         defined only on successful return from DLSODE.
+!                                                                       
+!                                                                       
+!                    Part 2.  Other Callable Routines                   
+!                    --------------------------------                   
+!                                                                       
+!     The following are optional calls which the user may make to gain  
+!     additional capabilities in conjunction with DLSODE.               
+!                                                                       
+!     Form of call              Function                                
+!     ------------------------  ----------------------------------------
+!     CALL XSETUN(LUN)          Set the logical unit number, LUN, for   
+!                               output of messages from DLSODE, if the  
+!                               default is not desired.  The default    
+!                               value of LUN is 6. This call may be made
+!                               at any time and will take effect        
+!                               immediately.                            
+!     CALL XSETF(MFLAG)         Set a flag to control the printing of   
+!                               messages by DLSODE.  MFLAG = 0 means do 
+!                               not print.  (Danger:  this risks losing 
+!                               valuable information.)  MFLAG = 1 means 
+!                               print (the default).  This call may be  
+!                               made at any time and will take effect   
+!                               immediately.                            
+!     CALL DSRCOM(RSAV,ISAV,JOB)  Saves and restores the contents of the
+!                               internal COMMON blocks used by DLSODE   
+!                               (see Part 3 below).  RSAV must be a     
+!                               real array of length 218 or more, and   
+!                               ISAV must be an integer array of length 
+!                               37 or more.  JOB = 1 means save COMMON  
+!                               into RSAV/ISAV.  JOB = 2 means restore  
+!                               COMMON from same.  DSRCOM is useful if  
+!                               one is interrupting a run and restarting
+!                               later, or alternating between two or    
+!                               more problems solved with DLSODE.       
+!     CALL DINTDY(,,,,,)        Provide derivatives of y, of various    
+!     (see below)               orders, at a specified point t, if      
+!                               desired.  It may be called only after a 
+!                               successful return from DLSODE.  Detailed
+!                               instructions follow.                    
+!                                                                       
+!     Detailed instructions for using DINTDY                            
+!     --------------------------------------                            
+!     The form of the CALL is:                                          
+!                                                                       
+!           CALL DINTDY (T, K, RWORK(21), NYH, DKY, IFLAG)              
+!                                                                       
+!     The input parameters are:                                         
+!                                                                       
+!     T          Value of independent variable where answers are        
+!                desired (normally the same as the T last returned by   
+!                DLSODE).  For valid results, T must lie between        
+!                TCUR - HU and TCUR.  (See "Optional Outputs" above     
+!                for TCUR and HU.)                                      
+!     K          Integer order of the derivative desired.  K must       
+!                satisfy 0 <= K <= NQCUR, where NQCUR is the current    
+!                order (see "Optional Outputs").  The capability        
+!                corresponding to K = 0, i.e., computing y(t), is       
+!                already provided by DLSODE directly.  Since            
+!                NQCUR >= 1, the first derivative dy/dt is always       
+!                available with DINTDY.                                 
+!     RWORK(21)  The base address of the history array YH.              
+!     NYH        Column length of YH, equal to the initial value of NEQ.
+!                                                                       
+!     The output parameters are:                                        
+!                                                                       
+!     DKY        Real array of length NEQ containing the computed value 
+!                of the Kth derivative of y(t).                         
+!     IFLAG      Integer flag, returned as 0 if K and T were legal,     
+!                -1 if K was illegal, and -2 if T was illegal.          
+!                On an error return, a message is also written.         
+!                                                                       
+!                                                                       
+!                          Part 3.  Common Blocks                       
+!                          ----------------------                       
+!                                                                       
+!     If DLSODE is to be used in an overlay situation, the user must    
+!     declare, in the primary overlay, the variables in:                
+!     (1) the call sequence to DLSODE,                                  
+!     (2) the internal COMMON block /DLS001/, of length 255             
+!         (218 double precision words followed by 37 integer words).    
+!                                                                       
+!     If DLSODE is used on a system in which the contents of internal   
+!     COMMON blocks are not preserved between calls, the user should    
+!     declare the above COMMON block in his main program to insure that 
+!     its contents are preserved.                                       
+!                                                                       
+!     If the solution of a given problem by DLSODE is to be interrupted 
+!     and then later continued, as when restarting an interrupted run or
+!     alternating between two or more problems, the user should save,   
+!     following the return from the last DLSODE call prior to the       
+!     interruption, the contents of the call sequence variables and the 
+!     internal COMMON block, and later restore these values before the  
+!     next DLSODE call for that problem.   In addition, if XSETUN and/or
+!     XSETF was called for non-default handling of error messages, then 
+!     these calls must be repeated.  To save and restore the COMMON     
+!     block, use subroutine DSRCOM (see Part 2 above).                  
+!                                                                       
+!                                                                       
+!              Part 4.  Optionally Replaceable Solver Routines          
+!              -----------------------------------------------          
+!                                                                       
+!     Below are descriptions of two routines in the DLSODE package which
+!     relate to the measurement of errors.  Either routine can be       
+!     replaced by a user-supplied version, if desired.  However, since  
+!     such a replacement may have a major impact on performance, it     
+!     should be done only when absolutely necessary, and only with great
+!     caution.  (Note:  The means by which the package version of a     
+!     routine is superseded by the user's version may be system-        
+!     dependent.)                                                       
+!                                                                       
+!     DEWSET                                                            
+!     ------                                                            
+!     The following subroutine is called just before each internal      
+!     integration step, and sets the array of error weights, EWT, as    
+!     described under ITOL/RelTol/AbsTol above:                             
+!                                                                       
+!           SUBROUTINE DEWSET (NEQ, ITOL, RelTol, AbsTol, YCUR, EWT)        
+!                                                                       
+!     where NEQ, ITOL, RelTol, and AbsTol are as in the DLSODE call         
+!     sequence, YCUR contains the current dependent variable vector,    
+!     and EWT is the array of weights set by DEWSET.                    
+!                                                                       
+!     If the user supplies this subroutine, it must return in EWT(i)    
+!     (i = 1,...,NEQ) a positive quantity suitable for comparing errors 
+!     in Y(i) to.  The EWT array returned by DEWSET is passed to the    
+!     DVNORM routine (see below), and also used by DLSODE in the        
+!     computation of the optional output IMXER, the diagonal Jacobian   
+!     approximation, and the increments for difference quotient         
+!     Jacobians.                                                        
+!                                                                       
+!     In the user-supplied version of DEWSET, it may be desirable to use
+!     the current values of derivatives of y. Derivatives up to order NQ
+!     are available from the history array YH, described above under    
+!     optional outputs.  In DEWSET, YH is identical to the YCUR array,  
+!     extended to NQ + 1 columns with a column length of NYH and scale  
+!     factors of H**j/factorial(j).  On the first call for the problem, 
+!     given by NST = 0, NQ is 1 and H is temporarily set to 1.0.        
+!     NYH is the initial value of NEQ.  The quantities NQ, H, and NST   
+!     can be obtained by including in SEWSET the statements:            
+!           KPP_REAL RLS                                        
+!           COMMON /DLS001/ RLS(218),ILS(37)                            
+!           NQ = ILS(33)                                                
+!           NST = ILS(34)                                               
+!           H = RLS(212)                                                
+!     Thus, for example, the current value of dy/dt can be obtained as  
+!     YCUR(NYH+i)/H (i=1,...,NEQ) (and the division by H is unnecessary 
+!     when NST = 0).                                                    
+!                                                                       
+!     DVNORM                                                            
+!     ------                                                            
+!     DVNORM is a real function routine which computes the weighted     
+!     root-mean-square norm of a vector v:                              
+!                                                                       
+!        d = DVNORM (n, v, w)                                           
+!                                                                       
+!     where:                                                            
+!     n = the length of the vector,                                     
+!     v = real array of length n containing the vector,                 
+!     w = real array of length n containing weights,                    
+!     d = SQRT( (1/n) * sum(v(i)*w(i))**2 ).                            
+!                                                                       
+!     DVNORM is called with n = NEQ and with w(i) = 1.0/EWT(i), where   
+!     EWT is as set by subroutine DEWSET.                               
+!                                                                       
+!     If the user supplies this function, it should return a nonnegative
+!     value of DVNORM suitable for use in the error control in DLSODE.  
+!     None of the arguments should be altered by DVNORM.  For example, a
+!     user-supplied DVNORM routine might:                               
+!     - Substitute a max-norm of (v(i)*w(i)) for the rms-norm, or       
+!     - Ignore some components of v in the norm, with the effect of     
+!       suppressing the error control on those components of Y.         
+!  ---------------------------------------------------------------------
+!***ROUTINES CALLED  DEWSET, DINTDY, DUMACH, DSTODE, DVNORM, XERRWD     
+!***COMMON BLOCKS    DLS001                                             
+!***REVISION HISTORY  (YYYYMMDD)                                        
+! 19791129  DATE WRITTEN                                                
+! 19791213  Minor changes to declarations; DELP init. in STODE.         
+! 19800118  Treat NEQ as array; integer declarations added throughout;  
+!           minor changes to prologue.                                  
+! 19800306  Corrected TESCO(1,NQP1) setting in CFODE.                   
+! 19800519  Corrected access of YH on forced order reduction;           
+!           numerous corrections to prologues and other comments.       
+! 19800617  In main driver, added loading of SQRT(UROUND) in RWORK;     
+!           minor corrections to main prologue.                         
+! 19800923  Added zero initialization of HU and NQU.                    
+! 19801218  Revised XERRWD routine; minor corrections to main prologue. 
+! 19810401  Minor changes to comments and an error message.             
+! 19810814  Numerous revisions: replaced EWT by 1/EWT; used flags       
+!           JCUR, ICF, IERPJ, IERSL between STODE and subordinates;     
+!           added tuning parameters CCMAX, MAXCOR, MSBP, MXNCF;         
+!           reorganized returns from STODE; reorganized type decls.;    
+!           fixed message length in XERRWD; changed default LUNIT to 6; 
+!           changed Common lengths; changed comments throughout.        
+! 19870330  Major update by ACH: corrected comments throughout;         
+!           removed TRET from Common; rewrote EWSET with 4 loops;       
+!           fixed t test in INTDY; added Cray directives in STODE;      
+!           in STODE, fixed DELP init. and logic around PJAC call;      
+!           combined routines to save/restore Common;                   
+!           passed LEVEL = 0 in error message calls (except run abort). 
+! 19890426  Modified prologue to SLATEC/LDOC format.  (FNF)             
+! 19890501  Many improvements to prologue.  (FNF)                       
+! 19890503  A few final corrections to prologue.  (FNF)                 
+! 19890504  Minor cosmetic changes.  (FNF)                              
+! 19890510  Corrected description of Y in Arguments section.  (FNF)     
+! 19890517  Minor corrections to prologue.  (FNF)                       
+! 19920514  Updated with prologue edited 891025 by G. Shaw for manual.  
+! 19920515  Converted source lines to upper case.  (FNF)                
+! 19920603  Revised XERRWD calls using mixed upper-lower case.  (ACH)   
+! 19920616  Revised prologue comment regarding CFT.  (ACH)              
+! 19921116  Revised prologue comments regarding Common.  (ACH).         
+! 19930326  Added comment about non-reentrancy.  (FNF)                  
+! 19930723  Changed D1MACH to DUMACH. (FNF)                             
+! 19930801  Removed ILLIN and NTREP from Common (affects driver logic); 
+!           minor changes to prologue and internal comments;            
+!           changed Hollerith strings to quoted strings;                
+!           changed internal comments to mixed case;                    
+!           replaced XERRWD with new version using character type;      
+!           changed dummy dimensions from 1 to *. (ACH)                 
+! 19930809  Changed to generic intrinsic names; changed names of        
+!           subprograms and Common blocks to DLSODE etc. (ACH)          
+! 19930929  Eliminated use of REAL intrinsic; other minor changes. (ACH)
+! 20010412  Removed all 'own' variables from Common block /DLS001/      
+!           (affects declarations in 6 routines). (ACH)                 
+! 20010509  Minor corrections to prologue. (ACH)                        
+! 20031105  Restored 'own' variables to Common block /DLS001/, to       
+!           enable interrupt/restart feature. (ACH)                     
+! 20031112  Added SAVE statements for data-loaded constants.            
+!                                                                       
+!***END PROLOGUE  DLSODE                                                
+!                                                                       
+!*Internal Notes:                                                       
+!                                                                       
+! Other Routines in the DLSODE Package.                                 
+!                                                                       
+! In addition to Subroutine DLSODE, the DLSODE package includes the     
+! following subroutines and function routines:                          
+!  DINTDY   computes an interpolated value of the y vector at t = TOUT. 
+!  DSTODE   is the core integrator, which does one step of the          
+!           integration and the associated error control.               
+!  DCFODE   sets all method coefficients and test constants.            
+!  DPREPJ   computes and preprocesses the Jacobian matrix J = df/dy     
+!           and the Newton iteration matrix P = I - h*l0*J.             
+!  DSOLSY   manages solution of linear system in chord iteration.       
+!  DEWSET   sets the error weight vector EWT before each step.          
+!  DVNORM   computes the weighted R.M.S. norm of a vector.              
+!  DSRCOM   is a user-callable routine to save and restore              
+!           the contents of the internal Common block.                  
+!  DGEFA and DGESL   are routines from LINPACK for solving full         
+!           systems of linear algebraic equations.                      
+!  DGBFA and DGBSL   are routines from LINPACK for solving banded       
+!           linear systems.                                             
+!  DUMACH   computes the unit roundoff in a machine-independent manner. 
+!  XERRWD, XSETUN, XSETF, IXSAV, IUMACH   handle the printing of all    
+!           error messages and warnings.  XERRWD is machine-dependent.  
+! Note: DVNORM, DUMACH, IXSAV, and IUMACH are function routines.        
+! All the others are subroutines.                                       
+!                                                                       
+!**End                                                                  
+!                                                                       
+!  Declare externals.
+!  Note: they are now internal                                                   
+      !EXTERNAL DPREPJ, DSOLSY 
+      !KPP_REAL DUMACH, DVNORM 
+!                                                                       
+!  Declare all other variables.                                         
+      INTEGER INIT, MXSTEP, MXHNIL, NHNIL, NSLAST, NYH, IOWNS,          &
+        ICF, IERPJ, IERSL, JCUR, JSTART, KFLAG, L,                      &
+        LYH, LEWT, LACOR, LSAVF, LWM, LIWM, METH, MITER,                &
+        MAXORD, MAXCOR, MSBP, MXNCF, N, NQ, NST, NFE, NJE, NQU         
+      INTEGER I, I1, I2, IFLAG, IMXER, KGO, LF0,                        &
+        LENIW, LENRW, LENWM, ML, MORD(2), MU, MXHNL0, MXSTP0              
+      KPP_REAL ROWNS,                                           &
+        CCMAX, EL0, H, HMIN, HMXI, HU, RC, TN, UROUND                  
+      KPP_REAL AbsTolI, AYI, BIG, EWTI, H0, HMAX, HMX, RH, RelTolI, &
+        TCRIT, TDIST, TNEXT, TOL, TOLSF, TP, SIZE, SUM, W0             
+
+      LOGICAL IHIT 
+      CHARACTER*80 MSG 
+      SAVE MORD, MXSTP0, MXHNL0 
+!-----------------------------------------------------------------------
+! The following internal Common block contains                          
+! (a) variables which are local to any subroutine but whose values must 
+!     be preserved between calls to the routine ("own" variables), and  
+! (b) variables which are communicated between subroutines.             
+! The block DLS001 is declared in subroutines DLSODE, DINTDY, DSTODE,   
+! DPREPJ, and DSOLSY.                                                   
+! Groups of variables are replaced by dummy arrays in the Common        
+! declarations in routines where those variables are not used.          
+!-----------------------------------------------------------------------
+      COMMON /DLS001/ ROWNS(209),                                      &
+        CCMAX, EL0, H, HMIN, HMXI, HU, RC, TN, UROUND,                 &
+        INIT, MXSTEP, MXHNIL, NHNIL, NSLAST, NYH, IOWNS(6),            &
+        ICF, IERPJ, IERSL, JCUR, JSTART, KFLAG, L,                     &
+        LYH, LEWT, LACOR, LSAVF, LWM, LIWM, METH, MITER,               &
+        MAXORD, MAXCOR, MSBP, MXNCF, N, NQ, NST, NFE, NJE, NQU         
+!                                                                       
+      DATA  MORD(1),MORD(2)/12,5/, MXSTP0/500/, MXHNL0/10/ 
+!-----------------------------------------------------------------------
+! Block A.                                                              
+! This code block is executed on every call.                            
+! It tests ISTATE and ITASK for legality and branches appropriately.    
+! If ISTATE .GT. 1 but the flag INIT shows that initialization has      
+! not yet been done, an error return occurs.                            
+! If ISTATE = 1 and TOUT = T, return immediately.                       
+!-----------------------------------------------------------------------
+!                                                                       
+!***FIRST EXECUTABLE STATEMENT  DLSODE                                  
+      IF (ISTATE .LT. 1 .OR. ISTATE .GT. 3) GO TO 601 
+      IF (ITASK .LT. 1 .OR. ITASK .GT. 5) GO TO 602 
+      IF (ISTATE .EQ. 1) GO TO 10 
+      IF (INIT .EQ. 0) GO TO 603 
+      IF (ISTATE .EQ. 2) GO TO 200 
+      GO TO 20 
+   10 INIT = 0 
+      IF (TOUT .EQ. T) RETURN 
+!-----------------------------------------------------------------------
+! Block B.                                                              
+! The next code block is executed for the initial call (ISTATE = 1),    
+! or for a continuation call with parameter changes (ISTATE = 3).       
+! It contains checking of all inputs and various initializations.       
+!                                                                       
+! First check legality of the non-optional inputs NEQ, ITOL, IOPT,      
+! MF, ML, and MU.                                                       
+!-----------------------------------------------------------------------
+   20 IF (NEQ .LE. 0) GO TO 604 
+      IF (ISTATE .EQ. 1) GO TO 25 
+      IF (NEQ .GT. N) GO TO 605 
+   25 N = NEQ 
+      IF (ITOL .LT. 1 .OR. ITOL .GT. 4) GO TO 606 
+      IF (IOPT .LT. 0 .OR. IOPT .GT. 1) GO TO 607 
+      METH = MF/10 
+      MITER = MF - 10*METH 
+      IF (METH .LT. 1 .OR. METH .GT. 2) GO TO 608 
+      IF (MITER .LT. 0 .OR. MITER .GT. 5) GO TO 608 
+      IF (MITER .LE. 3) GO TO 30 
+      ML = IWORK(1) 
+      MU = IWORK(2) 
+      IF (ML .LT. 0 .OR. ML .GE. N) GO TO 609 
+      IF (MU .LT. 0 .OR. MU .GE. N) GO TO 610 
+   30 CONTINUE 
+! Next process and check the optional inputs. --------------------------
+      IF (IOPT .EQ. 1) GO TO 40 
+      MAXORD = MORD(METH) 
+      MXSTEP = MXSTP0 
+      MXHNIL = MXHNL0 
+      IF (ISTATE .EQ. 1) H0 = 0.0D0 
+      HMXI = 0.0D0 
+      HMIN = 0.0D0 
+      GO TO 60 
+   40 MAXORD = IWORK(5) 
+      IF (MAXORD .LT. 0) GO TO 611 
+      IF (MAXORD .EQ. 0) MAXORD = 100 
+      MAXORD = MIN(MAXORD,MORD(METH)) 
+      MXSTEP = IWORK(6) 
+      IF (MXSTEP .LT. 0) GO TO 612 
+      IF (MXSTEP .EQ. 0) MXSTEP = MXSTP0 
+      MXHNIL = IWORK(7) 
+      IF (MXHNIL .LT. 0) GO TO 613 
+      IF (MXHNIL .EQ. 0) MXHNIL = MXHNL0 
+      IF (ISTATE .NE. 1) GO TO 50 
+      H0 = RWORK(5) 
+      IF ((TOUT - T)*H0 .LT. 0.0D0) GO TO 614 
+   50 HMAX = RWORK(6) 
+      IF (HMAX .LT. 0.0D0) GO TO 615 
+      HMXI = 0.0D0 
+      IF (HMAX .GT. 0.0D0) HMXI = 1.0D0/HMAX 
+      HMIN = RWORK(7) 
+      IF (HMIN .LT. 0.0D0) GO TO 616 
+!-----------------------------------------------------------------------
+! Set work array pointers and check lengths LRW and LIW.                
+! Pointers to segments of RWORK and IWORK are named by prefixing L to   
+! the name of the segment.  E.g., the segment YH starts at RWORK(LYH).  
+! Segments of RWORK (in order) are denoted  YH, WM, EWT, SAVF, ACOR.    
+!-----------------------------------------------------------------------
+   60 LYH = 21 
+      IF (ISTATE .EQ. 1) NYH = N 
+      LWM = LYH + (MAXORD + 1)*NYH 
+      IF (MITER .EQ. 0) LENWM = 0 
+      IF (MITER .EQ. 1 .OR. MITER .EQ. 2) LENWM = N*N + 2 
+      IF (MITER .EQ. 3) LENWM = N + 2 
+      IF (MITER .GE. 4) LENWM = (2*ML + MU + 1)*N + 2 
+      LEWT = LWM + LENWM 
+      LSAVF = LEWT + N 
+      LACOR = LSAVF + N 
+      LENRW = LACOR + N - 1 
+      IWORK(17) = LENRW 
+      LIWM = 1 
+      LENIW = 20 + N 
+      IF (MITER .EQ. 0 .OR. MITER .EQ. 3) LENIW = 20 
+      IWORK(18) = LENIW 
+      IF (LENRW .GT. LRW) GO TO 617 
+      IF (LENIW .GT. LIW) GO TO 618 
+! Check RelTol and AbsTol for legality. ------------------------------------
+      RelTolI = RelTol(1) 
+      AbsTolI = AbsTol(1) 
+      DO 70 I = 1,N 
+        IF (ITOL .GE. 3) RelTolI = RelTol(I) 
+        IF (ITOL .EQ. 2 .OR. ITOL .EQ. 4) AbsTolI = AbsTol(I) 
+        IF (RelTolI .LT. 0.0D0) GO TO 619 
+        IF (AbsTolI .LT. 0.0D0) GO TO 620 
+   70   CONTINUE 
+      IF (ISTATE .EQ. 1) GO TO 100 
+! If ISTATE = 3, set flag to signal parameter changes to DSTODE. -------
+      JSTART = -1 
+      IF (NQ .LE. MAXORD) GO TO 90 
+! MAXORD was reduced below NQ.  Copy YH(*,MAXORD+2) into SAVF. ---------
+      DO 80 I = 1,N 
+   80   RWORK(I+LSAVF-1) = RWORK(I+LWM-1) 
+! Reload WM(1) = RWORK(LWM), since LWM may have changed. ---------------
+   90 IF (MITER .GT. 0) RWORK(LWM) = SQRT(UROUND) 
+      IF (N .EQ. NYH) GO TO 200 
+! NEQ was reduced.  Zero part of YH to avoid undefined references. -----
+      I1 = LYH + L*NYH 
+      I2 = LYH + (MAXORD + 1)*NYH - 1 
+      IF (I1 .GT. I2) GO TO 200 
+      DO 95 I = I1,I2 
+   95   RWORK(I) = 0.0D0 
+      GO TO 200 
+!-----------------------------------------------------------------------
+! Block C.                                                              
+! The next block is for the initial call only (ISTATE = 1).             
+! It contains all remaining initializations, the initial call to F,     
+! and the calculation of the initial step size.                         
+! The error weights in EWT are inverted after being loaded.             
+!-----------------------------------------------------------------------
+  100 UROUND = DUMACH() 
+      TN = T 
+      IF (ITASK .NE. 4 .AND. ITASK .NE. 5) GO TO 110 
+      TCRIT = RWORK(1) 
+      IF ((TCRIT - TOUT)*(TOUT - T) .LT. 0.0D0) GO TO 625 
+      IF (H0 .NE. 0.0D0 .AND. (T + H0 - TCRIT)*H0 .GT. 0.0D0)           &
+        H0 = TCRIT - T                                                 
+  110 JSTART = 0 
+      IF (MITER .GT. 0) RWORK(LWM) = SQRT(UROUND) 
+      NHNIL = 0 
+      NST = 0 
+      NJE = 0 
+      NSLAST = 0 
+      HU = 0.0D0 
+      NQU = 0 
+      CCMAX = 0.3D0 
+      MAXCOR = 3 
+      MSBP = 20 
+      MXNCF = 10 
+! Initial call to F.  (LF0 points to YH(*,2).) -------------------------
+      LF0 = LYH + NYH 
+      CALL F (NEQ, T, Y, RWORK(LF0)) 
+      NFE = 1 
+! Load the initial value vector in YH. ---------------------------------
+      DO 115 I = 1,N 
+  115   RWORK(I+LYH-1) = Y(I) 
+! Load and invert the EWT array.  (H is temporarily set to 1.0.) -------
+      NQ = 1 
+      H = 1.0D0 
+      CALL DEWSET (N, ITOL, RelTol, AbsTol, RWORK(LYH), RWORK(LEWT)) 
+      DO 120 I = 1,N 
+        IF (RWORK(I+LEWT-1) .LE. 0.0D0) GO TO 621 
+  120   RWORK(I+LEWT-1) = 1.0D0/RWORK(I+LEWT-1) 
+!-----------------------------------------------------------------------
+! The coding below computes the step size, H0, to be attempted on the   
+! first step, unless the user has supplied a value for this.            
+! First check that TOUT - T differs significantly from zero.            
+! A scalar tolerance quantity TOL is computed, as MAX(RelTol(I))          
+! if this is positive, or MAX(AbsTol(I)/ABS(Y(I))) otherwise, adjusted    
+! so as to be between 100*UROUND and 1.0E-3.                            
+! Then the computed value H0 is given by..                              
+!                                      NEQ                              
+!   H0**2 = TOL / ( w0**-2 + (1/NEQ) * SUM ( f(i)/ywt(i) )**2  )        
+!                                       1                               
+! where   w0     = MAX ( ABS(T), ABS(TOUT) ),                           
+!         f(i)   = i-th component of initial value of f,                
+!         ywt(i) = EWT(i)/TOL  (a weight for y(i)).                     
+! The sign of H0 is inferred from the initial values of TOUT and T.     
+!-----------------------------------------------------------------------
+      IF (H0 .NE. 0.0D0) GO TO 180 
+      TDIST = ABS(TOUT - T) 
+      W0 = MAX(ABS(T),ABS(TOUT)) 
+      IF (TDIST .LT. 2.0D0*UROUND*W0) GO TO 622 
+      TOL = RelTol(1) 
+      IF (ITOL .LE. 2) GO TO 140 
+      DO 130 I = 1,N 
+  130   TOL = MAX(TOL,RelTol(I)) 
+  140 IF (TOL .GT. 0.0D0) GO TO 160 
+      AbsTolI = AbsTol(1) 
+      DO 150 I = 1,N 
+        IF (ITOL .EQ. 2 .OR. ITOL .EQ. 4) AbsTolI = AbsTol(I) 
+        AYI = ABS(Y(I)) 
+        IF (AYI .NE. 0.0D0) TOL = MAX(TOL,AbsTolI/AYI) 
+  150   CONTINUE 
+  160 TOL = MAX(TOL,100.0D0*UROUND) 
+      TOL = MIN(TOL,0.001D0) 
+      SUM = DVNORM (N, RWORK(LF0), RWORK(LEWT)) 
+      SUM = 1.0D0/(TOL*W0*W0) + TOL*SUM**2 
+      H0 = 1.0D0/SQRT(SUM) 
+      H0 = MIN(H0,TDIST) 
+      H0 = SIGN(H0,TOUT-T) 
+! Adjust H0 if necessary to meet HMAX bound. ---------------------------
+  180 RH = ABS(H0)*HMXI 
+      IF (RH .GT. 1.0D0) H0 = H0/RH 
+! Load H with H0 and scale YH(*,2) by H0. ------------------------------
+      H = H0 
+      DO 190 I = 1,N 
+  190   RWORK(I+LF0-1) = H0*RWORK(I+LF0-1) 
+      GO TO 270 
+!-----------------------------------------------------------------------
+! Block D.                                                              
+! The next code block is for continuation calls only (ISTATE = 2 or 3)  
+! and is to check stop conditions before taking a step.                 
+!-----------------------------------------------------------------------
+  200 NSLAST = NST 
+      GO TO (210, 250, 220, 230, 240), ITASK 
+  210 IF ((TN - TOUT)*H .LT. 0.0D0) GO TO 250 
+      CALL DINTDY (TOUT, 0, RWORK(LYH), NYH, Y, IFLAG) 
+      IF (IFLAG .NE. 0) GO TO 627 
+      T = TOUT 
+      GO TO 420 
+  220 TP = TN - HU*(1.0D0 + 100.0D0*UROUND) 
+      IF ((TP - TOUT)*H .GT. 0.0D0) GO TO 623 
+      IF ((TN - TOUT)*H .LT. 0.0D0) GO TO 250 
+      GO TO 400 
+  230 TCRIT = RWORK(1) 
+      IF ((TN - TCRIT)*H .GT. 0.0D0) GO TO 624 
+      IF ((TCRIT - TOUT)*H .LT. 0.0D0) GO TO 625 
+      IF ((TN - TOUT)*H .LT. 0.0D0) GO TO 245 
+      CALL DINTDY (TOUT, 0, RWORK(LYH), NYH, Y, IFLAG) 
+      IF (IFLAG .NE. 0) GO TO 627 
+      T = TOUT 
+      GO TO 420 
+  240 TCRIT = RWORK(1) 
+      IF ((TN - TCRIT)*H .GT. 0.0D0) GO TO 624 
+  245 HMX = ABS(TN) + ABS(H) 
+      IHIT = ABS(TN - TCRIT) .LE. 100.0D0*UROUND*HMX 
+      IF (IHIT) GO TO 400 
+      TNEXT = TN + H*(1.0D0 + 4.0D0*UROUND) 
+      IF ((TNEXT - TCRIT)*H .LE. 0.0D0) GO TO 250 
+      H = (TCRIT - TN)*(1.0D0 - 4.0D0*UROUND) 
+      IF (ISTATE .EQ. 2) JSTART = -2 
+!-----------------------------------------------------------------------
+! Block E.                                                              
+! The next block is normally executed for all calls and contains        
+! the call to the one-step core integrator DSTODE.                      
+!                                                                       
+! This is a looping point for the integration steps.                    
+!                                                                       
+! First check for too many steps being taken, update EWT (if not at     
+! start of problem), check for too much accuracy being requested, and   
+! check for H below the roundoff level in T.                            
+!-----------------------------------------------------------------------
+  250 CONTINUE 
+      IF ((NST-NSLAST) .GE. MXSTEP) GO TO 500 
+      CALL DEWSET (N, ITOL, RelTol, AbsTol, RWORK(LYH), RWORK(LEWT)) 
+      DO 260 I = 1,N 
+        IF (RWORK(I+LEWT-1) .LE. 0.0D0) GO TO 510 
+  260   RWORK(I+LEWT-1) = 1.0D0/RWORK(I+LEWT-1) 
+  270 TOLSF = UROUND*DVNORM (N, RWORK(LYH), RWORK(LEWT)) 
+      IF (TOLSF .LE. 1.0D0) GO TO 280 
+      TOLSF = TOLSF*2.0D0 
+      IF (NST .EQ. 0) GO TO 626 
+      GO TO 520 
+  280 IF ((TN + H) .NE. TN) GO TO 290 
+      NHNIL = NHNIL + 1 
+      IF (NHNIL .GT. MXHNIL) GO TO 290 
+      MSG = 'DLSODE-  Warning..internal T (=R1) and H (=R2) are' 
+      CALL XERRWD (MSG, 50, 101, 0, 0, 0, 0, 0, 0.0D0, 0.0D0) 
+      MSG='      such that in the machine, T + H = T on the next step  ' 
+      CALL XERRWD (MSG, 60, 101, 0, 0, 0, 0, 0, 0.0D0, 0.0D0) 
+      MSG = '      (H = step size). Solver will continue anyway' 
+      CALL XERRWD (MSG, 50, 101, 0, 0, 0, 0, 2, TN, H) 
+      IF (NHNIL .LT. MXHNIL) GO TO 290 
+      MSG = 'DLSODE-  Above warning has been issued I1 times.  ' 
+      CALL XERRWD (MSG, 50, 102, 0, 0, 0, 0, 0, 0.0D0, 0.0D0) 
+      MSG = '      It will not be issued again for this problem' 
+      CALL XERRWD (MSG, 50, 102, 0, 1, MXHNIL, 0, 0, 0.0D0, 0.0D0) 
+  290 CONTINUE 
+!-----------------------------------------------------------------------
+!  CALL DSTODE(NEQ,Y,YH,NYH,YH,EWT,SAVF,ACOR,WM,IWM,F,JAC,DPREPJ,DSOLSY)
+!-----------------------------------------------------------------------
+      CALL DSTODE (NEQ, Y, RWORK(LYH), NYH, RWORK(LYH), RWORK(LEWT),   &
+        RWORK(LSAVF), RWORK(LACOR), RWORK(LWM), IWORK(LIWM),           &
+        F, JAC)                                        
+        !F, JAC, DPREPJ, DSOLSY)                                        
+      KGO = 1 - KFLAG 
+      GO TO (300, 530, 540), KGO 
+!-----------------------------------------------------------------------
+! Block F.                                                              
+! The following block handles the case of a successful return from the  
+! core integrator (KFLAG = 0).  Test for stop conditions.               
+!-----------------------------------------------------------------------
+  300 INIT = 1 
+      GO TO (310, 400, 330, 340, 350), ITASK 
+! ITASK = 1.  If TOUT has been reached, interpolate. -------------------
+  310 IF ((TN - TOUT)*H .LT. 0.0D0) GO TO 250 
+      CALL DINTDY (TOUT, 0, RWORK(LYH), NYH, Y, IFLAG) 
+      T = TOUT 
+      GO TO 420 
+! ITASK = 3.  Jump to exit if TOUT was reached. ------------------------
+  330 IF ((TN - TOUT)*H .GE. 0.0D0) GO TO 400 
+      GO TO 250 
+! ITASK = 4.  See if TOUT or TCRIT was reached.  Adjust H if necessary. 
+  340 IF ((TN - TOUT)*H .LT. 0.0D0) GO TO 345 
+      CALL DINTDY (TOUT, 0, RWORK(LYH), NYH, Y, IFLAG) 
+      T = TOUT 
+      GO TO 420 
+  345 HMX = ABS(TN) + ABS(H) 
+      IHIT = ABS(TN - TCRIT) .LE. 100.0D0*UROUND*HMX 
+      IF (IHIT) GO TO 400 
+      TNEXT = TN + H*(1.0D0 + 4.0D0*UROUND) 
+      IF ((TNEXT - TCRIT)*H .LE. 0.0D0) GO TO 250 
+      H = (TCRIT - TN)*(1.0D0 - 4.0D0*UROUND) 
+      JSTART = -2 
+      GO TO 250 
+! ITASK = 5.  See if TCRIT was reached and jump to exit. ---------------
+  350 HMX = ABS(TN) + ABS(H) 
+      IHIT = ABS(TN - TCRIT) .LE. 100.0D0*UROUND*HMX 
+!-----------------------------------------------------------------------
+! Block G.                                                              
+! The following block handles all successful returns from DLSODE.       
+! If ITASK .NE. 1, Y is loaded from YH and T is set accordingly.        
+! ISTATE is set to 2, and the optional outputs are loaded into the      
+! work arrays before returning.                                         
+!-----------------------------------------------------------------------
+  400 DO 410 I = 1,N 
+  410   Y(I) = RWORK(I+LYH-1) 
+      T = TN 
+      IF (ITASK .NE. 4 .AND. ITASK .NE. 5) GO TO 420 
+      IF (IHIT) T = TCRIT 
+  420 ISTATE = 2 
+      RWORK(11) = HU 
+      RWORK(12) = H 
+      RWORK(13) = TN 
+      IWORK(11) = NST 
+      IWORK(12) = NFE 
+      IWORK(13) = NJE 
+      IWORK(14) = NQU 
+      IWORK(15) = NQ 
+      RETURN 
+!-----------------------------------------------------------------------
+! Block H.                                                              
+! The following block handles all unsuccessful returns other than       
+! those for illegal input.  First the error message routine is called.  
+! If there was an error test or convergence test failure, IMXER is set. 
+! Then Y is loaded from YH and T is set to TN.  The optional outputs    
+! are loaded into the work arrays before returning.                     
+!-----------------------------------------------------------------------
+! The maximum number of steps was taken before reaching TOUT. ----------
+  500 MSG = 'DLSODE-  At current T (=R1), MXSTEP (=I1) steps   ' 
+      CALL XERRWD (MSG, 50, 201, 0, 0, 0, 0, 0, 0.0D0, 0.0D0) 
+      MSG = '      taken on this call before reaching TOUT     ' 
+      CALL XERRWD (MSG, 50, 201, 0, 1, MXSTEP, 0, 1, TN, 0.0D0) 
+      ISTATE = -1 
+      GO TO 580 
+! EWT(I) .LE. 0.0 for some I (not at start of problem). ----------------
+  510 EWTI = RWORK(LEWT+I-1) 
+      MSG = 'DLSODE-  At T (=R1), EWT(I1) has become R2 .LE. 0.' 
+      CALL XERRWD (MSG, 50, 202, 0, 1, I, 0, 2, TN, EWTI) 
+      ISTATE = -6 
+      GO TO 580 
+! Too much accuracy requested for machine precision. -------------------
+  520 MSG = 'DLSODE-  At T (=R1), too much accuracy requested  ' 
+      CALL XERRWD (MSG, 50, 203, 0, 0, 0, 0, 0, 0.0D0, 0.0D0) 
+      MSG = '      for precision of machine..  see TOLSF (=R2) ' 
+      CALL XERRWD (MSG, 50, 203, 0, 0, 0, 0, 2, TN, TOLSF) 
+      RWORK(14) = TOLSF 
+      ISTATE = -2 
+      GO TO 580 
+! KFLAG = -1.  Error test failed repeatedly or with ABS(H) = HMIN. -----
+  530 MSG = 'DLSODE-  At T(=R1) and step size H(=R2), the error' 
+      CALL XERRWD (MSG, 50, 204, 0, 0, 0, 0, 0, 0.0D0, 0.0D0) 
+      MSG = '      test failed repeatedly or with ABS(H) = HMIN' 
+      CALL XERRWD (MSG, 50, 204, 0, 0, 0, 0, 2, TN, H) 
+      ISTATE = -4 
+      GO TO 560 
+! KFLAG = -2.  Convergence failed repeatedly or with ABS(H) = HMIN. ----
+  540 MSG = 'DLSODE-  At T (=R1) and step size H (=R2), the    ' 
+      CALL XERRWD (MSG, 50, 205, 0, 0, 0, 0, 0, 0.0D0, 0.0D0) 
+      MSG = '      corrector convergence failed repeatedly     ' 
+      CALL XERRWD (MSG, 50, 205, 0, 0, 0, 0, 0, 0.0D0, 0.0D0) 
+      MSG = '      or with ABS(H) = HMIN   ' 
+      CALL XERRWD (MSG, 30, 205, 0, 0, 0, 0, 2, TN, H) 
+      ISTATE = -5 
+! Compute IMXER if relevant. -------------------------------------------
+  560 BIG = 0.0D0 
+      IMXER = 1 
+      DO 570 I = 1,N 
+        SIZE = ABS(RWORK(I+LACOR-1)*RWORK(I+LEWT-1)) 
+        IF (BIG .GE. SIZE) GO TO 570 
+        BIG = SIZE 
+        IMXER = I 
+  570   CONTINUE 
+      IWORK(16) = IMXER 
+! Set Y vector, T, and optional outputs. -------------------------------
+  580 DO 590 I = 1,N 
+  590   Y(I) = RWORK(I+LYH-1) 
+      T = TN 
+      RWORK(11) = HU 
+      RWORK(12) = H 
+      RWORK(13) = TN 
+      IWORK(11) = NST 
+      IWORK(12) = NFE 
+      IWORK(13) = NJE 
+      IWORK(14) = NQU 
+      IWORK(15) = NQ 
+      RETURN 
+!-----------------------------------------------------------------------
+! Block I.                                                              
+! The following block handles all error returns due to illegal input    
+! (ISTATE = -3), as detected before calling the core integrator.        
+! First the error message routine is called.  If the illegal input      
+! is a negative ISTATE, the run is aborted (apparent infinite loop).    
+!-----------------------------------------------------------------------
+  601 MSG = 'DLSODE-  ISTATE (=I1) illegal ' 
+      CALL XERRWD (MSG, 30, 1, 0, 1, ISTATE, 0, 0, 0.0D0, 0.0D0) 
+      IF (ISTATE .LT. 0) GO TO 800 
+      GO TO 700 
+  602 MSG = 'DLSODE-  ITASK (=I1) illegal  ' 
+      CALL XERRWD (MSG, 30, 2, 0, 1, ITASK, 0, 0, 0.0D0, 0.0D0) 
+      GO TO 700 
+  603 MSG = 'DLSODE-  ISTATE .GT. 1 but DLSODE not initialized ' 
+      CALL XERRWD (MSG, 50, 3, 0, 0, 0, 0, 0, 0.0D0, 0.0D0) 
+      GO TO 700 
+  604 MSG = 'DLSODE-  NEQ (=I1) .LT. 1     ' 
+      CALL XERRWD (MSG, 30, 4, 0, 1, NEQ, 0, 0, 0.0D0, 0.0D0) 
+      GO TO 700 
+  605 MSG = 'DLSODE-  ISTATE = 3 and NEQ increased (I1 to I2)  ' 
+      CALL XERRWD (MSG, 50, 5, 0, 2, N, NEQ, 0, 0.0D0, 0.0D0) 
+      GO TO 700 
+  606 MSG = 'DLSODE-  ITOL (=I1) illegal   ' 
+      CALL XERRWD (MSG, 30, 6, 0, 1, ITOL, 0, 0, 0.0D0, 0.0D0) 
+      GO TO 700 
+  607 MSG = 'DLSODE-  IOPT (=I1) illegal   ' 
+      CALL XERRWD (MSG, 30, 7, 0, 1, IOPT, 0, 0, 0.0D0, 0.0D0) 
+      GO TO 700 
+  608 MSG = 'DLSODE-  MF (=I1) illegal     ' 
+      CALL XERRWD (MSG, 30, 8, 0, 1, MF, 0, 0, 0.0D0, 0.0D0) 
+      GO TO 700 
+  609 MSG = 'DLSODE-  ML (=I1) illegal.. .LT.0 or .GE.NEQ (=I2)' 
+      CALL XERRWD (MSG, 50, 9, 0, 2, ML, NEQ, 0, 0.0D0, 0.0D0) 
+      GO TO 700 
+  610 MSG = 'DLSODE-  MU (=I1) illegal.. .LT.0 or .GE.NEQ (=I2)' 
+      CALL XERRWD (MSG, 50, 10, 0, 2, MU, NEQ, 0, 0.0D0, 0.0D0) 
+      GO TO 700 
+  611 MSG = 'DLSODE-  MAXORD (=I1) .LT. 0  ' 
+      CALL XERRWD (MSG, 30, 11, 0, 1, MAXORD, 0, 0, 0.0D0, 0.0D0) 
+      GO TO 700 
+  612 MSG = 'DLSODE-  MXSTEP (=I1) .LT. 0  ' 
+      CALL XERRWD (MSG, 30, 12, 0, 1, MXSTEP, 0, 0, 0.0D0, 0.0D0) 
+      GO TO 700 
+  613 MSG = 'DLSODE-  MXHNIL (=I1) .LT. 0  ' 
+      CALL XERRWD (MSG, 30, 13, 0, 1, MXHNIL, 0, 0, 0.0D0, 0.0D0) 
+      GO TO 700 
+  614 MSG = 'DLSODE-  TOUT (=R1) behind T (=R2)      ' 
+      CALL XERRWD (MSG, 40, 14, 0, 0, 0, 0, 2, TOUT, T) 
+      MSG = '      Integration direction is given by H0 (=R1)  ' 
+      CALL XERRWD (MSG, 50, 14, 0, 0, 0, 0, 1, H0, 0.0D0) 
+      GO TO 700 
+  615 MSG = 'DLSODE-  HMAX (=R1) .LT. 0.0  ' 
+      CALL XERRWD (MSG, 30, 15, 0, 0, 0, 0, 1, HMAX, 0.0D0) 
+      GO TO 700 
+  616 MSG = 'DLSODE-  HMIN (=R1) .LT. 0.0  ' 
+      CALL XERRWD (MSG, 30, 16, 0, 0, 0, 0, 1, HMIN, 0.0D0) 
+      GO TO 700 
+  617 CONTINUE 
+      MSG='DLSODE-  RWORK length needed, LENRW (=I1), exceeds LRW (=I2)' 
+      CALL XERRWD (MSG, 60, 17, 0, 2, LENRW, LRW, 0, 0.0D0, 0.0D0) 
+      GO TO 700 
+  618 CONTINUE 
+      MSG='DLSODE-  IWORK length needed, LENIW (=I1), exceeds LIW (=I2)' 
+      CALL XERRWD (MSG, 60, 18, 0, 2, LENIW, LIW, 0, 0.0D0, 0.0D0) 
+      GO TO 700 
+  619 MSG = 'DLSODE-  RelTol(I1) is R1 .LT. 0.0        ' 
+      CALL XERRWD (MSG, 40, 19, 0, 1, I, 0, 1, RelTolI, 0.0D0) 
+      GO TO 700 
+  620 MSG = 'DLSODE-  AbsTol(I1) is R1 .LT. 0.0        ' 
+      CALL XERRWD (MSG, 40, 20, 0, 1, I, 0, 1, AbsTolI, 0.0D0) 
+      GO TO 700 
+  621 EWTI = RWORK(LEWT+I-1) 
+      MSG = 'DLSODE-  EWT(I1) is R1 .LE. 0.0         ' 
+      CALL XERRWD (MSG, 40, 21, 0, 1, I, 0, 1, EWTI, 0.0D0) 
+      GO TO 700 
+  622 CONTINUE 
+      MSG='DLSODE-  TOUT (=R1) too close to T(=R2) to start integration' 
+      CALL XERRWD (MSG, 60, 22, 0, 0, 0, 0, 2, TOUT, T) 
+      GO TO 700 
+  623 CONTINUE 
+      MSG='DLSODE-  ITASK = I1 and TOUT (=R1) behind TCUR - HU (= R2)  ' 
+      CALL XERRWD (MSG, 60, 23, 0, 1, ITASK, 0, 2, TOUT, TP) 
+      GO TO 700 
+  624 CONTINUE 
+      MSG='DLSODE-  ITASK = 4 OR 5 and TCRIT (=R1) behind TCUR (=R2)   ' 
+      CALL XERRWD (MSG, 60, 24, 0, 0, 0, 0, 2, TCRIT, TN) 
+      GO TO 700 
+  625 CONTINUE 
+      MSG='DLSODE-  ITASK = 4 or 5 and TCRIT (=R1) behind TOUT (=R2)   ' 
+      CALL XERRWD (MSG, 60, 25, 0, 0, 0, 0, 2, TCRIT, TOUT) 
+      GO TO 700 
+  626 MSG = 'DLSODE-  At start of problem, too much accuracy   ' 
+      CALL XERRWD (MSG, 50, 26, 0, 0, 0, 0, 0, 0.0D0, 0.0D0) 
+      MSG='      requested for precision of machine..  See TOLSF (=R1) ' 
+      CALL XERRWD (MSG, 60, 26, 0, 0, 0, 0, 1, TOLSF, 0.0D0) 
+      RWORK(14) = TOLSF 
+      GO TO 700 
+  627 MSG = 'DLSODE-  Trouble in DINTDY.  ITASK = I1, TOUT = R1' 
+      CALL XERRWD (MSG, 50, 27, 0, 1, ITASK, 0, 1, TOUT, 0.0D0) 
+!                                                                       
+  700 ISTATE = -3 
+      RETURN 
+!                                                                       
+  800 MSG = 'DLSODE-  Run aborted.. apparent infinite loop     ' 
+      CALL XERRWD (MSG, 50, 303, 2, 0, 0, 0, 0, 0.0D0, 0.0D0) 
+      RETURN 
+!----------------------- END OF SUBROUTINE DLSODE ----------------------
+      !END SUBROUTINE DLSODE                                          
+      CONTAINS                                          
+
+
+!DECK DUMACH   
+      KPP_REAL FUNCTION DUMACH () 
+!***BEGIN PROLOGUE  DUMACH                                              
+!***PURPOSE  Compute the unit roundoff of the machine.                  
+!***CATEGORY  R1                                                        
+!***TYPE      KPP_REAL (RUMACH-S, DUMACH-D)                     
+!***KEYWORDS  MACHINE CONSTANTS                                         
+!***AUTHOR  Hindmarsh, Alan C., (LLNL)                                  
+!***DESCRIPTION                                                         
+! *Usage:                                                               
+!        KPP_REAL  A, DUMACH                                    
+!        A = DUMACH()                                                   
+!                                                                       
+! *Function Return Values:                                              
+!     A : the unit roundoff of the machine.                             
+!                                                                       
+! *Description:                                                         
+!     The unit roundoff is defined as the smallest positive machine     
+!     number u such that  1.0 + u .ne. 1.0.  This is computed by DUMACH 
+!     in a machine-independent manner.                                  
+!                                                                       
+!***REFERENCES  (NONE)                                                  
+!***ROUTINES CALLED  DUMSUM                                             
+!***REVISION HISTORY  (YYYYMMDD)                                        
+!   19930216  DATE WRITTEN                                              
+!   19930818  Added SLATEC-format prologue.  (FNF)                      
+!   20030707  Added DUMSUM to force normal storage of COMP.  (ACH)      
+!***END PROLOGUE  DUMACH                                                
+!                                                                       
+      KPP_REAL U, COMP 
+!***FIRST EXECUTABLE STATEMENT  DUMACH                                  
+      U = 1.0D0 
+   10 U = U*0.5D0 
+      CALL DUMSUM(1.0D0, U, COMP) 
+      IF (COMP .NE. 1.0D0) GO TO 10 
+      DUMACH = U*2.0D0 
+      RETURN 
+!----------------------- End of Function DUMACH ------------------------
+      END FUNCTION DUMACH  
+                                              
+      SUBROUTINE DUMSUM(A,B,C) 
+!     Routine to force normal storing of A + B, for DUMACH.             
+      KPP_REAL A, B, C 
+      C = A + B 
+      RETURN 
+      END SUBROUTINE DUMSUM                                        
+!DECK DCFODE                                                            
+      SUBROUTINE DCFODE (METH, ELCO, TESCO) 
+!***BEGIN PROLOGUE  DCFODE                                              
+!***SUBSIDIARY                                                          
+!***PURPOSE  Set ODE integrator coefficients.                           
+!***TYPE      KPP_REAL (SCFODE-S, DCFODE-D)                     
+!***AUTHOR  Hindmarsh, Alan C., (LLNL)                                  
+!***DESCRIPTION                                                         
+!                                                                       
+!  DCFODE is called by the integrator routine to set coefficients       
+!  needed there.  The coefficients for the current method, as           
+!  given by the value of METH, are set for all orders and saved.        
+!  The maximum order assumed here is 12 if METH = 1 and 5 if METH = 2.  
+!  (A smaller value of the maximum order is also allowed.)              
+!  DCFODE is called once at the beginning of the problem,               
+!  and is not called again unless and until METH is changed.            
+!                                                                       
+!  The ELCO array contains the basic method coefficients.               
+!  The coefficients el(i), 1 .le. i .le. nq+1, for the method of        
+!  order nq are stored in ELCO(i,nq).  They are given by a genetrating  
+!  polynomial, i.e.,                                                    
+!      l(x) = el(1) + el(2)*x + ... + el(nq+1)*x**nq.                   
+!  For the implicit Adams methods, l(x) is given by                     
+!      dl/dx = (x+1)*(x+2)*...*(x+nq-1)/factorial(nq-1),    l(-1) = 0.  
+!  For the BDF methods, l(x) is given by                                
+!      l(x) = (x+1)*(x+2)* ... *(x+nq)/K,                               
+!  where         K = factorial(nq)*(1 + 1/2 + ... + 1/nq).              
+!                                                                       
+!  The TESCO array contains test constants used for the                 
+!  local error test and the selection of step size and/or order.        
+!  At order nq, TESCO(k,nq) is used for the selection of step           
+!  size at order nq - 1 if k = 1, at order nq if k = 2, and at order    
+!  nq + 1 if k = 3.                                                     
+!                                                                       
+!***SEE ALSO  DLSODE                                                    
+!***ROUTINES CALLED  (NONE)                                             
+!***REVISION HISTORY  (YYMMDD)                                          
+!   791129  DATE WRITTEN                                                
+!   890501  Modified prologue to SLATEC/LDOC format.  (FNF)             
+!   890503  Minor cosmetic changes.  (FNF)                              
+!   930809  Renamed to allow single/double precision versions. (ACH)    
+!***END PROLOGUE  DCFODE                                                
+!**End                                                                  
+      INTEGER METH 
+      INTEGER I, IB, NQ, NQM1, NQP1 
+      KPP_REAL ELCO(13,12), TESCO(3,12), PC(12) 
+      KPP_REAL AGAMQ, FNQ, FNQM1, PINT, RAGQ, RQFAC, RQ1FAC, TSIGN, XPIN
+!                                                                       
+!***FIRST EXECUTABLE STATEMENT  DCFODE                                  
+      GO TO (100, 200), METH 
+!                                                                       
+  100 ELCO(1,1) = 1.0D0 
+      ELCO(2,1) = 1.0D0 
+      TESCO(1,1) = 0.0D0 
+      TESCO(2,1) = 2.0D0 
+      TESCO(1,2) = 1.0D0 
+      TESCO(3,12) = 0.0D0 
+      PC(1) = 1.0D0 
+      RQFAC = 1.0D0 
+      DO 140 NQ = 2,12 
+!-----------------------------------------------------------------------
+! The PC array will contain the coefficients of the polynomial          
+!     p(x) = (x+1)*(x+2)*...*(x+nq-1).                                  
+! Initially, p(x) = 1.                                                  
+!-----------------------------------------------------------------------
+        RQ1FAC = RQFAC 
+        RQFAC = RQFAC/NQ 
+        NQM1 = NQ - 1 
+        FNQM1 = NQM1 
+        NQP1 = NQ + 1 
+! Form coefficients of p(x)*(x+nq-1). ----------------------------------
+        PC(NQ) = 0.0D0 
+        DO 110 IB = 1,NQM1 
+          I = NQP1 - IB 
+  110     PC(I) = PC(I-1) + FNQM1*PC(I) 
+        PC(1) = FNQM1*PC(1) 
+! Compute integral, -1 to 0, of p(x) and x*p(x). -----------------------
+        PINT = PC(1) 
+        XPIN = PC(1)/2.0D0 
+        TSIGN = 1.0D0 
+        DO 120 I = 2,NQ 
+          TSIGN = -TSIGN 
+          PINT = PINT + TSIGN*PC(I)/I 
+  120     XPIN = XPIN + TSIGN*PC(I)/(I+1) 
+! Store coefficients in ELCO and TESCO. --------------------------------
+        ELCO(1,NQ) = PINT*RQ1FAC 
+        ELCO(2,NQ) = 1.0D0 
+        DO 130 I = 2,NQ 
+  130     ELCO(I+1,NQ) = RQ1FAC*PC(I)/I 
+        AGAMQ = RQFAC*XPIN 
+        RAGQ = 1.0D0/AGAMQ 
+        TESCO(2,NQ) = RAGQ 
+        IF (NQ .LT. 12) TESCO(1,NQP1) = RAGQ*RQFAC/NQP1 
+        TESCO(3,NQM1) = RAGQ 
+  140   CONTINUE 
+      RETURN 
+!                                                                       
+  200 PC(1) = 1.0D0 
+      RQ1FAC = 1.0D0 
+      DO 230 NQ = 1,5 
+!-----------------------------------------------------------------------
+! The PC array will contain the coefficients of the polynomial          
+!     p(x) = (x+1)*(x+2)*...*(x+nq).                                    
+! Initially, p(x) = 1.                                                  
+!-----------------------------------------------------------------------
+        FNQ = NQ 
+        NQP1 = NQ + 1 
+! Form coefficients of p(x)*(x+nq). ------------------------------------
+        PC(NQP1) = 0.0D0 
+        DO 210 IB = 1,NQ 
+          I = NQ + 2 - IB 
+  210     PC(I) = PC(I-1) + FNQ*PC(I) 
+        PC(1) = FNQ*PC(1) 
+! Store coefficients in ELCO and TESCO. --------------------------------
+        DO 220 I = 1,NQP1 
+  220     ELCO(I,NQ) = PC(I)/PC(2) 
+        ELCO(2,NQ) = 1.0D0 
+        TESCO(1,NQ) = RQ1FAC 
+        TESCO(2,NQ) = NQP1/ELCO(1,NQ) 
+        TESCO(3,NQ) = (NQ+2)/ELCO(1,NQ) 
+        RQ1FAC = RQ1FAC/FNQ 
+  230   CONTINUE 
+      RETURN 
+!----------------------- END OF SUBROUTINE DCFODE ----------------------
+      END SUBROUTINE DCFODE                                         
+!DECK DINTDY                                                            
+      SUBROUTINE DINTDY (T, K, YH, NYH, DKY, IFLAG) 
+!***BEGIN PROLOGUE  DINTDY                                              
+!***SUBSIDIARY                                                          
+!***PURPOSE  Interpolate solution derivatives.                          
+!***TYPE      KPP_REAL (SINTDY-S, DINTDY-D)                     
+!***AUTHOR  Hindmarsh, Alan C., (LLNL)                                  
+!***DESCRIPTION                                                         
+!                                                                       
+!  DINTDY computes interpolated values of the K-th derivative of the    
+!  dependent variable vector y, and stores it in DKY.  This routine     
+!  is called within the package with K = 0 and T = TOUT, but may        
+!  also be called by the user for any K up to the current order.        
+!  (See detailed instructions in the usage documentation.)              
+!                                                                       
+!  The computed values in DKY are gotten by interpolation using the     
+!  Nordsieck history array YH.  This array corresponds uniquely to a    
+!  vector-valued polynomial of degree NQCUR or less, and DKY is set     
+!  to the K-th derivative of this polynomial at T.                      
+!  The formula for DKY is:                                              
+!               q                                                       
+!   DKY(i)  =  sum  c(j,K) * (T - tn)**(j-K) * h**(-j) * YH(i,j+1)      
+!              j=K                                                      
+!  where  c(j,K) = j*(j-1)*...*(j-K+1), q = NQCUR, tn = TCUR, h = HCUR. 
+!  The quantities  nq = NQCUR, l = nq+1, N = NEQ, tn, and h are         
+!  communicated by COMMON.  The above sum is done in reverse order.     
+!  IFLAG is returned negative if either K or T is out of bounds.        
+!                                                                       
+!***SEE ALSO  DLSODE                                                    
+!***ROUTINES CALLED  XERRWD                                             
+!***COMMON BLOCKS    DLS001                                             
+!***REVISION HISTORY  (YYMMDD)                                          
+!   791129  DATE WRITTEN                                                
+!   890501  Modified prologue to SLATEC/LDOC format.  (FNF)             
+!   890503  Minor cosmetic changes.  (FNF)                              
+!   930809  Renamed to allow single/double precision versions. (ACH)    
+!   010418  Reduced size of Common block /DLS001/. (ACH)                
+!   031105  Restored 'own' variables to Common block /DLS001/, to       
+!           enable interrupt/restart feature. (ACH)                     
+!   050427  Corrected roundoff decrement in TP. (ACH)                   
+!***END PROLOGUE  DINTDY                                                
+!**End                                                                  
+      INTEGER K, NYH, IFLAG 
+      KPP_REAL T, YH(NYH,*), DKY(*) 
+      INTEGER IOWND, IOWNS,                                            &
+        ICF, IERPJ, IERSL, JCUR, JSTART, KFLAG, L,                     &
+        LYH, LEWT, LACOR, LSAVF, LWM, LIWM, METH, MITER,               &
+        MAXORD, MAXCOR, MSBP, MXNCF, N, NQ, NST, NFE, NJE, NQU         
+      KPP_REAL ROWNS,                                          &
+        CCMAX, EL0, H, HMIN, HMXI, HU, RC, TN, UROUND                  
+      COMMON /DLS001/ ROWNS(209),                                      &
+        CCMAX, EL0, H, HMIN, HMXI, HU, RC, TN, UROUND,                 &
+        IOWND(6), IOWNS(6),                                            &
+        ICF, IERPJ, IERSL, JCUR, JSTART, KFLAG, L,                     &
+        LYH, LEWT, LACOR, LSAVF, LWM, LIWM, METH, MITER,               &
+        MAXORD, MAXCOR, MSBP, MXNCF, N, NQ, NST, NFE, NJE, NQU         
+      INTEGER I, IC, J, JB, JB2, JJ, JJ1, JP1 
+      KPP_REAL C, R, S, TP 
+      CHARACTER*80 MSG 
+!                                                                       
+!***FIRST EXECUTABLE STATEMENT  DINTDY                                  
+      IFLAG = 0 
+      IF (K .LT. 0 .OR. K .GT. NQ) GO TO 80 
+      TP = TN - HU -  100.0D0*UROUND*SIGN(ABS(TN) + ABS(HU), HU) 
+      IF ((T-TP)*(T-TN) .GT. 0.0D0) GO TO 90 
+!                                                                       
+      S = (T - TN)/H 
+      IC = 1 
+      IF (K .EQ. 0) GO TO 15 
+      JJ1 = L - K 
+      DO 10 JJ = JJ1,NQ 
+   10   IC = IC*JJ 
+   15 C = IC 
+      DO 20 I = 1,N 
+   20   DKY(I) = C*YH(I,L) 
+      IF (K .EQ. NQ) GO TO 55 
+      JB2 = NQ - K 
+      DO 50 JB = 1,JB2 
+        J = NQ - JB 
+        JP1 = J + 1 
+        IC = 1 
+        IF (K .EQ. 0) GO TO 35 
+        JJ1 = JP1 - K 
+        DO 30 JJ = JJ1,J 
+   30     IC = IC*JJ 
+   35   C = IC 
+        DO 40 I = 1,N 
+   40     DKY(I) = C*YH(I,JP1) + S*DKY(I) 
+   50   CONTINUE 
+      IF (K .EQ. 0) RETURN 
+   55 R = H**(-K) 
+      DO 60 I = 1,N 
+   60   DKY(I) = R*DKY(I) 
+      RETURN 
+!                                                                       
+   80 MSG = 'DINTDY-  K (=I1) illegal      ' 
+      CALL XERRWD (MSG, 30, 51, 0, 1, K, 0, 0, 0.0D0, 0.0D0) 
+      IFLAG = -1 
+      RETURN 
+   90 MSG = 'DINTDY-  T (=R1) illegal      ' 
+      CALL XERRWD (MSG, 30, 52, 0, 0, 0, 0, 1, T, 0.0D0) 
+      MSG='      T not in interval TCUR - HU (= R1) to TCUR (=R2)      ' 
+      CALL XERRWD (MSG, 60, 52, 0, 0, 0, 0, 2, TP, TN) 
+      IFLAG = -2 
+      RETURN 
+!----------------------- END OF SUBROUTINE DINTDY ----------------------
+      END SUBROUTINE DINTDY                                          
+!DECK DPREPJ                                                            
+      SUBROUTINE DPREPJ (NEQ, Y, YH, NYH, EWT, FTEM, SAVF, WM, IWM, F, JAC)                                                        
+!***BEGIN PROLOGUE  DPREPJ                                              
+!***SUBSIDIARY                                                          
+!***PURPOSE  Compute and process Newton iteration matrix.               
+!***TYPE      KPP_REAL (SPREPJ-S, DPREPJ-D)                     
+!***AUTHOR  Hindmarsh, Alan C., (LLNL)                                  
+!***DESCRIPTION                                                         
+!                                                                       
+!  DPREPJ is called by DSTODE to compute and process the matrix         
+!  P = I - h*el(1)*J , where J is an approximation to the Jacobian.     
+!  Here J is computed by the user-supplied routine JAC if               
+!  MITER = 1 or 4, or by finite differencing if MITER = 2, 3, or 5.     
+!  If MITER = 3, a diagonal approximation to J is used.                 
+!  J is stored in WM and replaced by P.  If MITER .ne. 3, P is then     
+!  subjected to LU decomposition in preparation for later solution      
+!  of linear systems with P as coefficient matrix.  This is done        
+!  by DGEFA if MITER = 1 or 2, and by DGBFA if MITER = 4 or 5.          
+!                                                                       
+!  In addition to variables described in DSTODE and DLSODE prologues,   
+!  communication with DPREPJ uses the following:                        
+!  Y     = array containing predicted values on entry.                  
+!  FTEM  = work array of length N (ACOR in DSTODE).                     
+!  SAVF  = array containing f evaluated at predicted y.                 
+!  WM    = real work space for matrices.  On output it contains the     
+!          inverse diagonal matrix if MITER = 3 and the LU decomposition
+!          of P if MITER is 1, 2 , 4, or 5.                             
+!          Storage of matrix elements starts at WM(3).                  
+!          WM also contains the following matrix-related data:          
+!          WM(1) = SQRT(UROUND), used in numerical Jacobian increments. 
+!          WM(2) = H*EL0, saved for later use if MITER = 3.             
+!  IWM   = integer work space containing pivot information, starting at 
+!          IWM(21), if MITER is 1, 2, 4, or 5.  IWM also contains band  
+!          parameters ML = IWM(1) and MU = IWM(2) if MITER is 4 or 5.   
+!  EL0   = EL(1) (input).                                               
+!  IERPJ = output error flag,  = 0 if no trouble, .gt. 0 if             
+!          P matrix found to be singular.                               
+!  JCUR  = output flag = 1 to indicate that the Jacobian matrix         
+!          (or approximation) is now current.                           
+!  This routine also uses the COMMON variables EL0, H, TN, UROUND,      
+!  MITER, N, NFE, and NJE.                                              
+!                                                                       
+!***SEE ALSO  DLSODE                                                    
+!***ROUTINES CALLED  DGBFA, DGEFA, DVNORM                               
+!***COMMON BLOCKS    DLS001                                             
+!***REVISION HISTORY  (YYMMDD)                                          
+!   791129  DATE WRITTEN                                                
+!   890501  Modified prologue to SLATEC/LDOC format.  (FNF)             
+!   890504  Minor cosmetic changes.  (FNF)                              
+!   930809  Renamed to allow single/double precision versions. (ACH)    
+!   010418  Reduced size of Common block /DLS001/. (ACH)                
+!   031105  Restored 'own' variables to Common block /DLS001/, to       
+!           enable interrupt/restart feature. (ACH)                     
+!***END PROLOGUE  DPREPJ                                                
+!**End                                                                  
+      EXTERNAL F, JAC 
+      INTEGER NEQ, NYH, IWM(*)
+      KPP_REAL Y(*), YH(NYH,*), EWT(*), FTEM(*), SAVF(*), WM(*) 
+      INTEGER IOWND, IOWNS,                                            &
+        ICF, IERPJ, IERSL, JCUR, JSTART, KFLAG, L,                     &
+        LYH, LEWT, LACOR, LSAVF, LWM, LIWM, METH, MITER,               &
+        MAXORD, MAXCOR, MSBP, MXNCF, N, NQ, NST, NFE, NJE, NQU         
+      KPP_REAL ROWNS,                                          &
+        CCMAX, EL0, H, HMIN, HMXI, HU, RC, TN, UROUND                  
+      COMMON /DLS001/ ROWNS(209),                                      &
+        CCMAX, EL0, H, HMIN, HMXI, HU, RC, TN, UROUND,                 &
+        IOWND(6), IOWNS(6),                                            &
+        ICF, IERPJ, IERSL, JCUR, JSTART, KFLAG, L,                     &
+        LYH, LEWT, LACOR, LSAVF, LWM, LIWM, METH, MITER,               &
+        MAXORD, MAXCOR, MSBP, MXNCF, N, NQ, NST, NFE, NJE, NQU         
+      INTEGER I, I1, I2, IER, II, J, J1, JJ, LENP,                     &
+              MBA, MBAND, MEB1, MEBAND, ML, ML3, MU, NP1                     
+      KPP_REAL CON, DI, FAC, HL0, R, R0, SRUR, YI, YJ, YJJ
+      !KPP_REAL  DVNORM                                                         
+!                                                                       
+!***FIRST EXECUTABLE STATEMENT  DPREPJ                                  
+      NJE = NJE + 1 
+      IERPJ = 0 
+      JCUR = 1 
+      HL0 = H*EL0 
+      CON = -HL0 
+
+#ifdef FULL_ALGEBRA
+      LENP = N*N 
+      DO i = 1,LENP 
+         WM(i+2) = 0.0D0 
+      END DO
+      CALL JAC_CHEM (NEQ, TN, Y, WM(3)) 
+      DO I = 1,LENP 
+        WM(I+2) = WM(I+2)*CON
+      END DO 
+      ! Add identity matrix
+      J = 3 
+      NP1 = N + 1 
+      DO I = 1,N 
+        WM(J) = WM(J) + 1.0D0 
+        J = J + NP1 
+      END DO
+      ! Do LU decomposition on P
+      CALL DGETRF(N,N,WM(3),N,IWM(21),IER)
+#else
+      CALL JAC_CHEM (NEQ, TN, Y, WM(3)) 
+      DO i = 1,LU_NONZERO 
+         WM(i+2) = WM(i+2)*CON 
+      END DO
+      ! Add identity matrix
+      DO i = 1,N 
+        j = 2+LU_DIAG(i)
+        WM(j) = WM(j) + 1.0D0 
+      END DO 
+      ! Do LU decomposition on P
+      CALL KppDecomp(WM(3),IER)
+#endif      
+      IF (IER .NE. 0) IERPJ = 1 
+      RETURN 
+ !----------------------- END OF SUBROUTINE DPREPJ ----------------------
+      END SUBROUTINE DPREPJ                                          
+!DECK DSOLSY                                                            
+      SUBROUTINE DSOLSY (WM, IWM, X, TEM) 
+!***BEGIN PROLOGUE  DSOLSY                                              
+!***SUBSIDIARY                                                          
+!***PURPOSE  ODEPACK linear system solver.                              
+!***TYPE      KPP_REAL (SSOLSY-S, DSOLSY-D)                     
+!***AUTHOR  Hindmarsh, Alan C., (LLNL)                                  
+!***DESCRIPTION                                                         
+!                                                                       
+!  This routine manages the solution of the linear system arising from  
+!  a chord iteration.  It is called if MITER .ne. 0.                    
+!  If MITER is 1 or 2, it calls DGESL to accomplish this.               
+!  If MITER = 3 it updates the coefficient h*EL0 in the diagonal        
+!  matrix, and then computes the solution.                              
+!  If MITER is 4 or 5, it calls DGBSL.                                  
+!  Communication with DSOLSY uses the following variables:              
+!  WM    = real work space containing the inverse diagonal matrix if    
+!          MITER = 3 and the LU decomposition of the matrix otherwise.  
+!          Storage of matrix elements starts at WM(3).                  
+!          WM also contains the following matrix-related data:          
+!          WM(1) = SQRT(UROUND) (not used here),                        
+!          WM(2) = HL0, the previous value of h*EL0, used if MITER = 3. 
+!  IWM   = integer work space containing pivot information, starting at 
+!          IWM(21), if MITER is 1, 2, 4, or 5.  IWM also contains band  
+!          parameters ML = IWM(1) and MU = IWM(2) if MITER is 4 or 5.   
+!  X     = the right-hand side vector on input, and the solution vector 
+!          on output, of length N.                                      
+!  TEM   = vector of work space of length N, not used in this version.  
+!  IERSL = output flag (in COMMON).  IERSL = 0 if no trouble occurred.  
+!          IERSL = 1 if a singular matrix arose with MITER = 3.         
+!  This routine also uses the COMMON variables EL0, H, MITER, and N.    
+!                                                                       
+!***SEE ALSO  DLSODE                                                    
+!***ROUTINES CALLED  DGBSL, DGESL                                       
+!***COMMON BLOCKS    DLS001                                             
+!***REVISION HISTORY  (YYMMDD)                                          
+!   791129  DATE WRITTEN                                                
+!   890501  Modified prologue to SLATEC/LDOC format.  (FNF)             
+!   890503  Minor cosmetic changes.  (FNF)                              
+!   930809  Renamed to allow single/double precision versions. (ACH)    
+!   010418  Reduced size of Common block /DLS001/. (ACH)                
+!   031105  Restored 'own' variables to Common block /DLS001/, to       
+!           enable interrupt/restart feature. (ACH)                     
+!***END PROLOGUE  DSOLSY                                                
+!**End                                                                  
+      INTEGER IWM(*) 
+      KPP_REAL WM(*), X(*), TEM(*) 
+      INTEGER IOWND, IOWNS,                                            &
+        ICF, IERPJ, IERSL, JCUR, JSTART, KFLAG, L,                     &
+        LYH, LEWT, LACOR, LSAVF, LWM, LIWM, METH, MITER,               &
+        MAXORD, MAXCOR, MSBP, MXNCF, N, NQ, NST, NFE, NJE, NQU         
+      KPP_REAL ROWNS,                                          &
+        CCMAX, EL0, H, HMIN, HMXI, HU, RC, TN, UROUND                  
+      COMMON /DLS001/ ROWNS(209),                                      &
+        CCMAX, EL0, H, HMIN, HMXI, HU, RC, TN, UROUND,                 &
+        IOWND(6), IOWNS(6),                                            &
+        ICF, IERPJ, IERSL, JCUR, JSTART, KFLAG, L,                     &
+        LYH, LEWT, LACOR, LSAVF, LWM, LIWM, METH, MITER,               &
+        MAXORD, MAXCOR, MSBP, MXNCF, N, NQ, NST, NFE, NJE, NQU         
+      INTEGER I, MEBAND, ML, MU 
+      KPP_REAL DI, HL0, PHL0, R 
+!                                                                       
+!***FIRST EXECUTABLE STATEMENT  DSOLSY                                  
+      IERSL = 0 
+#ifdef FULL_ALGEBRA      
+      CALL DGETRS ('N',N,1,WM(3),N,IWM(21),X,N,0)
+#else
+      CALL KppSolve(WM(3),X)
+#endif      
+      RETURN 
+!----------------------- END OF SUBROUTINE DSOLSY ----------------------
+      END SUBROUTINE DSOLSY                                          
+!DECK DSRCOM                                                            
+      SUBROUTINE DSRCOM (RSAV, ISAV, JOB) 
+!***BEGIN PROLOGUE  DSRCOM                                              
+!***SUBSIDIARY                                                          
+!***PURPOSE  Save/restore ODEPACK COMMON blocks.                        
+!***TYPE      KPP_REAL (SSRCOM-S, DSRCOM-D)                     
+!***AUTHOR  Hindmarsh, Alan C., (LLNL)                                  
+!***DESCRIPTION                                                         
+!                                                                       
+!  This routine saves or restores (depending on JOB) the contents of    
+!  the COMMON block DLS001, which is used internally                    
+!  by one or more ODEPACK solvers.                                      
+!                                                                       
+!  RSAV = real array of length 218 or more.                             
+!  ISAV = integer array of length 37 or more.                           
+!  JOB  = flag indicating to save or restore the COMMON blocks:         
+!         JOB  = 1 if COMMON is to be saved (written to RSAV/ISAV)      
+!         JOB  = 2 if COMMON is to be restored (read from RSAV/ISAV)    
+!         A call with JOB = 2 presumes a prior call with JOB = 1.       
+!                                                                       
+!***SEE ALSO  DLSODE                                                    
+!***ROUTINES CALLED  (NONE)                                             
+!***COMMON BLOCKS    DLS001                                             
+!***REVISION HISTORY  (YYMMDD)                                          
+!   791129  DATE WRITTEN                                                
+!   890501  Modified prologue to SLATEC/LDOC format.  (FNF)             
+!   890503  Minor cosmetic changes.  (FNF)                              
+!   921116  Deleted treatment of block /EH0001/.  (ACH)                 
+!   930801  Reduced Common block length by 2.  (ACH)                    
+!   930809  Renamed to allow single/double precision versions. (ACH)    
+!   010418  Reduced Common block length by 209+12. (ACH)                
+!   031105  Restored 'own' variables to Common block /DLS001/, to       
+!           enable interrupt/restart feature. (ACH)                     
+!   031112  Added SAVE statement for data-loaded constants.             
+!***END PROLOGUE  DSRCOM                                                
+!**End                                                                  
+      INTEGER ISAV(*), JOB 
+      INTEGER ILS 
+      INTEGER I, LENILS, LENRLS 
+      KPP_REAL RSAV(*),   RLS 
+      SAVE LENRLS, LENILS 
+      COMMON /DLS001/ RLS(218), ILS(37) 
+      DATA LENRLS/218/, LENILS/37/ 
+!                                                                       
+!***FIRST EXECUTABLE STATEMENT  DSRCOM                                  
+      IF (JOB .EQ. 2) GO TO 100 
+!                                                                       
+      DO 10 I = 1,LENRLS 
+   10   RSAV(I) = RLS(I) 
+      DO 20 I = 1,LENILS 
+   20   ISAV(I) = ILS(I) 
+      RETURN 
+!                                                                       
+  100 CONTINUE 
+      DO 110 I = 1,LENRLS 
+  110    RLS(I) = RSAV(I) 
+      DO 120 I = 1,LENILS 
+  120    ILS(I) = ISAV(I) 
+      RETURN 
+!----------------------- END OF SUBROUTINE DSRCOM ----------------------
+      END SUBROUTINE DSRCOM                                          
+!DECK DSTODE                                                            
+      SUBROUTINE DSTODE (NEQ, Y, YH, NYH, YH1, EWT, SAVF, ACOR, &
+                         WM, IWM, F, JAC)                                   
+                        !WM, IWM, F, JAC, PJAC, SLVS)                                   
+!***BEGIN PROLOGUE  DSTODE                                              
+!***SUBSIDIARY                                                          
+!***PURPOSE  Performs one step of an ODEPACK integration.               
+!***TYPE      KPP_REAL (SSTODE-S, DSTODE-D)                     
+!***AUTHOR  Hindmarsh, Alan C., (LLNL)                                  
+!***DESCRIPTION                                                         
+!                                                                       
+!  DSTODE performs one step of the integration of an initial value      
+!  problem for a system of ordinary differential equations.             
+!  Note:  DSTODE is independent of the value of the iteration method    
+!  indicator MITER, when this is .ne. 0, and hence is independent       
+!  of the type of chord method used, or the Jacobian structure.         
+!  Communication with DSTODE is done with the following variables:      
+!                                                                       
+!  NEQ    = integer array containing problem size in NEQ, and        
+!           passed as the NEQ argument in all calls to F and JAC.       
+!  Y      = an array of length .ge. N used as the Y argument in         
+!           all calls to F and JAC.                                     
+!  YH     = an NYH by LMAX array containing the dependent variables     
+!           and their approximate scaled derivatives, where             
+!           LMAX = MAXORD + 1.  YH(i,j+1) contains the approximate      
+!           j-th derivative of y(i), scaled by h**j/factorial(j)        
+!           (j = 0,1,...,NQ).  on entry for the first step, the first   
+!           two columns of YH must be set from the initial values.      
+!  NYH    = a constant integer .ge. N, the first dimension of YH.       
+!  YH1    = a one-dimensional array occupying the same space as YH.     
+!  EWT    = an array of length N containing multiplicative weights      
+!           for local error measurements.  Local errors in Y(i) are     
+!           compared to 1.0/EWT(i) in various error tests.              
+!  SAVF   = an array of working storage, of length N.                   
+!           Also used for input of YH(*,MAXORD+2) when JSTART = -1      
+!           and MAXORD .lt. the current order NQ.                       
+!  ACOR   = a work array of length N, used for the accumulated          
+!           corrections.  On a successful return, ACOR(i) contains      
+!           the estimated one-step local error in Y(i).                 
+!  WM,IWM = real and integer work arrays associated with matrix         
+!           operations in chord iteration (MITER .ne. 0).               
+!  PJAC   = name of routine to evaluate and preprocess Jacobian matrix  
+!           and P = I - h*el0*JAC, if a chord method is being used.     
+!  SLVS   = name of routine to solve linear system in chord iteration.  
+!  CCMAX  = maximum relative change in h*el0 before PJAC is called.     
+!  H      = the step size to be attempted on the next step.             
+!           H is altered by the error control algorithm during the      
+!           problem.  H can be either positive or negative, but its     
+!           sign must remain constant throughout the problem.           
+!  HMIN   = the minimum absolute value of the step size h to be used.   
+!  HMXI   = inverse of the maximum absolute value of h to be used.      
+!           HMXI = 0.0 is allowed and corresponds to an infinite hmax.  
+!           HMIN and HMXI may be changed at any time, but will not      
+!           take effect until the next change of h is considered.       
+!  TN     = the independent variable. TN is updated on each step taken. 
+!  JSTART = an integer used for input only, with the following          
+!           values and meanings:                                        
+!                0  perform the first step.                             
+!            .gt.0  take a new step continuing from the last.           
+!               -1  take the next step with a new value of H, MAXORD,   
+!                     N, METH, MITER, and/or matrix parameters.         
+!               -2  take the next step with a new value of H,           
+!                     but with other inputs unchanged.                  
+!           On return, JSTART is set to 1 to facilitate continuation.   
+!  KFLAG  = a completion code with the following meanings:              
+!                0  the step was succesful.                             
+!               -1  the requested error could not be achieved.          
+!               -2  corrector convergence could not be achieved.        
+!               -3  fatal error in PJAC or SLVS.                        
+!           A return with KFLAG = -1 or -2 means either                 
+!           abs(H) = HMIN or 10 consecutive failures occurred.          
+!           On a return with KFLAG negative, the values of TN and       
+!           the YH array are as of the beginning of the last            
+!           step, and H is the last step size attempted.                
+!  MAXORD = the maximum order of integration method to be allowed.      
+!  MAXCOR = the maximum number of corrector iterations allowed.         
+!  MSBP   = maximum number of steps between PJAC calls (MITER .gt. 0).  
+!  MXNCF  = maximum number of convergence failures allowed.             
+!  METH/MITER = the method flags.  See description in driver.           
+!  N      = the number of first-order differential equations.           
+!  The values of CCMAX, H, HMIN, HMXI, TN, JSTART, KFLAG, MAXORD,       
+!  MAXCOR, MSBP, MXNCF, METH, MITER, and N are communicated via COMMON. 
+!                                                                       
+!***SEE ALSO  DLSODE                                                    
+!***ROUTINES CALLED  DCFODE, DVNORM                                     
+!***COMMON BLOCKS    DLS001                                             
+!***REVISION HISTORY  (YYMMDD)                                          
+!   791129  DATE WRITTEN                                                
+!   890501  Modified prologue to SLATEC/LDOC format.  (FNF)             
+!   890503  Minor cosmetic changes.  (FNF)                              
+!   930809  Renamed to allow single/double precision versions. (ACH)    
+!   010418  Reduced size of Common block /DLS001/. (ACH)                
+!   031105  Restored 'own' variables to Common block /DLS001/, to       
+!           enable interrupt/restart feature. (ACH)                     
+!***END PROLOGUE  DSTODE                                                
+!**End                                                                  
+      EXTERNAL F, JAC !, PJAC, SLVS 
+      INTEGER NEQ, NYH, IWM(*) 
+      KPP_REAL Y(*), YH(NYH,*), YH1(*), EWT(*), SAVF(*),       &
+                       ACOR(*), WM(*) 
+      INTEGER IOWND, IALTH, IPUP, LMAX, MEO, NQNYH, NSLP,              &
+        ICF, IERPJ, IERSL, JCUR, JSTART, KFLAG, L,                     &
+        LYH, LEWT, LACOR, LSAVF, LWM, LIWM, METH, MITER,               &
+        MAXORD, MAXCOR, MSBP, MXNCF, N, NQ, NST, NFE, NJE, NQU         
+      INTEGER I, I1, IREDO, IRET, J, JB, M, NCF, NEWQ 
+      KPP_REAL CONIT, CRATE, EL, ELCO, HOLD, RMAX, TESCO,      &
+        CCMAX, EL0, H, HMIN, HMXI, HU, RC, TN, UROUND                  
+      KPP_REAL DCON, DDN, DEL, DELP, DSM, DUP, EXDN, EXSM,     &
+              EXUP,R, RH, RHDN, RHSM, RHUP, TOLD
+      !KPP_REAL DVNORM                          
+      COMMON /DLS001/ CONIT, CRATE, EL(13), ELCO(13,12),               &
+        HOLD, RMAX, TESCO(3,12),                                       &
+        CCMAX, EL0, H, HMIN, HMXI, HU, RC, TN, UROUND,                 &
+        IOWND(6), IALTH, IPUP, LMAX, MEO, NQNYH, NSLP,                 &
+        ICF, IERPJ, IERSL, JCUR, JSTART, KFLAG, L,                     &
+        LYH, LEWT, LACOR, LSAVF, LWM, LIWM, METH, MITER,               &
+        MAXORD, MAXCOR, MSBP, MXNCF, N, NQ, NST, NFE, NJE, NQU         
+!                                                                       
+!***FIRST EXECUTABLE STATEMENT  DSTODE                                  
+      KFLAG = 0 
+      TOLD = TN 
+      NCF = 0 
+      IERPJ = 0 
+      IERSL = 0 
+      JCUR = 0 
+      ICF = 0 
+      DELP = 0.0D0 
+      IF (JSTART .GT. 0) GO TO 200 
+      IF (JSTART .EQ. -1) GO TO 100 
+      IF (JSTART .EQ. -2) GO TO 160 
+!-----------------------------------------------------------------------
+! On the first call, the order is set to 1, and other variables are     
+! initialized.  RMAX is the maximum ratio by which H can be increased   
+! in a single step.  It is initially 1.E4 to compensate for the small   
+! initial H, but then is normally equal to 10.  If a failure            
+! occurs (in corrector convergence or error test), RMAX is set to 2     
+! for the next increase.                                                
+!-----------------------------------------------------------------------
+      LMAX = MAXORD + 1 
+      NQ = 1 
+      L = 2 
+      IALTH = 2 
+      RMAX = 10000.0D0 
+      RC = 0.0D0 
+      EL0 = 1.0D0 
+      CRATE = 0.7D0 
+      HOLD = H 
+      MEO = METH 
+      NSLP = 0 
+      IPUP = MITER 
+      IRET = 3 
+      GO TO 140 
+!-----------------------------------------------------------------------
+! The following block handles preliminaries needed when JSTART = -1.    
+! IPUP is set to MITER to force a matrix update.                        
+! If an order increase is about to be considered (IALTH = 1),           
+! IALTH is reset to 2 to postpone consideration one more step.          
+! If the caller has changed METH, DCFODE is called to reset             
+! the coefficients of the method.                                       
+! If the caller has changed MAXORD to a value less than the current     
+! order NQ, NQ is reduced to MAXORD, and a new H chosen accordingly.    
+! If H is to be changed, YH must be rescaled.                           
+! If H or METH is being changed, IALTH is reset to L = NQ + 1           
+! to prevent further changes in H for that many steps.                  
+!-----------------------------------------------------------------------
+  100 IPUP = MITER 
+      LMAX = MAXORD + 1 
+      IF (IALTH .EQ. 1) IALTH = 2 
+      IF (METH .EQ. MEO) GO TO 110 
+      CALL DCFODE (METH, ELCO, TESCO) 
+      MEO = METH 
+      IF (NQ .GT. MAXORD) GO TO 120 
+      IALTH = L 
+      IRET = 1 
+      GO TO 150 
+  110 IF (NQ .LE. MAXORD) GO TO 160 
+  120 NQ = MAXORD 
+      L = LMAX 
+      DO 125 I = 1,L 
+  125   EL(I) = ELCO(I,NQ) 
+      NQNYH = NQ*NYH 
+      RC = RC*EL(1)/EL0 
+      EL0 = EL(1) 
+      CONIT = 0.5D0/(NQ+2) 
+      DDN = DVNORM (N, SAVF, EWT)/TESCO(1,L) 
+      EXDN = 1.0D0/L 
+      RHDN = 1.0D0/(1.3D0*DDN**EXDN + 0.0000013D0) 
+      RH = MIN(RHDN,1.0D0) 
+      IREDO = 3 
+      IF (H .EQ. HOLD) GO TO 170 
+      RH = MIN(RH,ABS(H/HOLD)) 
+      H = HOLD 
+      GO TO 175 
+!-----------------------------------------------------------------------
+! DCFODE is called to get all the integration coefficients for the      
+! current METH.  Then the EL vector and related constants are reset     
+! whenever the order NQ is changed, or at the start of the problem.     
+!-----------------------------------------------------------------------
+  140 CALL DCFODE (METH, ELCO, TESCO) 
+  150 DO 155 I = 1,L 
+  155   EL(I) = ELCO(I,NQ) 
+      NQNYH = NQ*NYH 
+      RC = RC*EL(1)/EL0 
+      EL0 = EL(1) 
+      CONIT = 0.5D0/(NQ+2) 
+      GO TO (160, 170, 200), IRET 
+!-----------------------------------------------------------------------
+! If H is being changed, the H ratio RH is checked against              
+! RMAX, HMIN, and HMXI, and the YH array rescaled.  IALTH is set to     
+! L = NQ + 1 to prevent a change of H for that many steps, unless       
+! forced by a convergence or error test failure.                        
+!-----------------------------------------------------------------------
+  160 IF (H .EQ. HOLD) GO TO 200 
+      RH = H/HOLD 
+      H = HOLD 
+      IREDO = 3 
+      GO TO 175 
+  170 RH = MAX(RH,HMIN/ABS(H)) 
+  175 RH = MIN(RH,RMAX) 
+      RH = RH/MAX(1.0D0,ABS(H)*HMXI*RH) 
+      R = 1.0D0 
+      DO 180 J = 2,L 
+        R = R*RH 
+        DO 180 I = 1,N 
+  180     YH(I,J) = YH(I,J)*R 
+      H = H*RH 
+      RC = RC*RH 
+      IALTH = L 
+      IF (IREDO .EQ. 0) GO TO 690 
+!-----------------------------------------------------------------------
+! This section computes the predicted values by effectively             
+! multiplying the YH array by the Pascal Triangle matrix.               
+! RC is the ratio of new to old values of the coefficient  H*EL(1).     
+! When RC differs from 1 by more than CCMAX, IPUP is set to MITER       
+! to force PJAC to be called, if a Jacobian is involved.                
+! In any case, PJAC is called at least every MSBP steps.                
+!-----------------------------------------------------------------------
+  200 IF (ABS(RC-1.0D0) .GT. CCMAX) IPUP = MITER 
+      IF (NST .GE. NSLP+MSBP) IPUP = MITER 
+      TN = TN + H 
+      I1 = NQNYH + 1 
+      DO 215 JB = 1,NQ 
+        I1 = I1 - NYH 
+!dir$ ivdep                                                             
+        DO 210 I = I1,NQNYH 
+  210     YH1(I) = YH1(I) + YH1(I+NYH) 
+  215   CONTINUE 
+!-----------------------------------------------------------------------
+! Up to MAXCOR corrector iterations are taken.  A convergence test is   
+! made on the R.M.S. norm of each correction, weighted by the error     
+! weight vector EWT.  The sum of the corrections is accumulated in the  
+! vector ACOR(i).  The YH array is not altered in the corrector loop.   
+!-----------------------------------------------------------------------
+  220 M = 0 
+      DO 230 I = 1,N 
+  230   Y(I) = YH(I,1) 
+      CALL F (NEQ, TN, Y, SAVF) 
+      NFE = NFE + 1 
+      IF (IPUP .LE. 0) GO TO 250 
+!-----------------------------------------------------------------------
+! If indicated, the matrix P = I - h*el(1)*J is reevaluated and         
+! preprocessed before starting the corrector iteration.  IPUP is set    
+! to 0 as an indicator that this has been done.                         
+!-----------------------------------------------------------------------
+      !CALL PJAC (NEQ, Y, YH, NYH, EWT, ACOR, SAVF, WM, IWM, F, JAC) 
+      CALL DPREPJ(NEQ, Y, YH, NYH, EWT, ACOR, SAVF, WM, IWM, F, JAC)
+      IPUP = 0 
+      RC = 1.0D0 
+      NSLP = NST 
+      CRATE = 0.7D0 
+      IF (IERPJ .NE. 0) GO TO 430 
+  250 DO 260 I = 1,N 
+  260   ACOR(I) = 0.0D0 
+  270 IF (MITER .NE. 0) GO TO 350 
+!-----------------------------------------------------------------------
+! In the case of functional iteration, update Y directly from           
+! the result of the last function evaluation.                           
+!-----------------------------------------------------------------------
+      DO 290 I = 1,N 
+        SAVF(I) = H*SAVF(I) - YH(I,2) 
+  290   Y(I) = SAVF(I) - ACOR(I) 
+      DEL = DVNORM (N, Y, EWT) 
+      DO 300 I = 1,N 
+        Y(I) = YH(I,1) + EL(1)*SAVF(I) 
+  300   ACOR(I) = SAVF(I) 
+      GO TO 400 
+!-----------------------------------------------------------------------
+! In the case of the chord method, compute the corrector error,         
+! and solve the linear system with that as right-hand side and          
+! P as coefficient matrix.                                              
+!-----------------------------------------------------------------------
+  350 DO 360 I = 1,N 
+  360   Y(I) = H*SAVF(I) - (YH(I,2) + ACOR(I)) 
+      !CALL SLVS (WM, IWM, Y, SAVF) 
+      CALL DSOLSY(WM, IWM, Y, SAVF)
+      IF (IERSL .LT. 0) GO TO 430 
+      IF (IERSL .GT. 0) GO TO 410 
+      DEL = DVNORM (N, Y, EWT) 
+      DO 380 I = 1,N 
+        ACOR(I) = ACOR(I) + Y(I) 
+  380   Y(I) = YH(I,1) + EL(1)*ACOR(I) 
+!-----------------------------------------------------------------------
+! Test for convergence.  If M.gt.0, an estimate of the convergence      
+! rate constant is stored in CRATE, and this is used in the test.       
+!-----------------------------------------------------------------------
+  400 IF (M .NE. 0) CRATE = MAX(0.2D0*CRATE,DEL/DELP) 
+      DCON = DEL*MIN(1.0D0,1.5D0*CRATE)/(TESCO(2,NQ)*CONIT) 
+      IF (DCON .LE. 1.0D0) GO TO 450 
+      M = M + 1 
+      IF (M .EQ. MAXCOR) GO TO 410 
+      IF (M .GE. 2 .AND. DEL .GT. 2.0D0*DELP) GO TO 410 
+      DELP = DEL 
+      CALL F (NEQ, TN, Y, SAVF) 
+      NFE = NFE + 1 
+      GO TO 270 
+!-----------------------------------------------------------------------
+! The corrector iteration failed to converge.                           
+! If MITER .ne. 0 and the Jacobian is out of date, PJAC is called for   
+! the next try.  Otherwise the YH array is retracted to its values      
+! before prediction, and H is reduced, if possible.  If H cannot be     
+! reduced or MXNCF failures have occurred, exit with KFLAG = -2.        
+!-----------------------------------------------------------------------
+  410 IF (MITER .EQ. 0 .OR. JCUR .EQ. 1) GO TO 430 
+      ICF = 1 
+      IPUP = MITER 
+      GO TO 220 
+  430 ICF = 2 
+      NCF = NCF + 1 
+      RMAX = 2.0D0 
+      TN = TOLD 
+      I1 = NQNYH + 1 
+      DO 445 JB = 1,NQ 
+        I1 = I1 - NYH 
+!dir$ ivdep                                                             
+        DO 440 I = I1,NQNYH 
+  440     YH1(I) = YH1(I) - YH1(I+NYH) 
+  445   CONTINUE 
+      IF (IERPJ .LT. 0 .OR. IERSL .LT. 0) GO TO 680 
+      IF (ABS(H) .LE. HMIN*1.00001D0) GO TO 670 
+      IF (NCF .EQ. MXNCF) GO TO 670 
+      RH = 0.25D0 
+      IPUP = MITER 
+      IREDO = 1 
+      GO TO 170 
+!-----------------------------------------------------------------------
+! The corrector has converged.  JCUR is set to 0                        
+! to signal that the Jacobian involved may need updating later.         
+! The local error test is made and control passes to statement 500      
+! if it fails.                                                          
+!-----------------------------------------------------------------------
+  450 JCUR = 0 
+      IF (M .EQ. 0) DSM = DEL/TESCO(2,NQ) 
+      IF (M .GT. 0) DSM = DVNORM (N, ACOR, EWT)/TESCO(2,NQ) 
+      IF (DSM .GT. 1.0D0) GO TO 500 
+!-----------------------------------------------------------------------
+! After a successful step, update the YH array.                         
+! Consider changing H if IALTH = 1.  Otherwise decrease IALTH by 1.     
+! If IALTH is then 1 and NQ .lt. MAXORD, then ACOR is saved for         
+! use in a possible order increase on the next step.                    
+! If a change in H is considered, an increase or decrease in order      
+! by one is considered also.  A change in H is made only if it is by a  
+! factor of at least 1.1.  If not, IALTH is set to 3 to prevent         
+! testing for that many steps.                                          
+!-----------------------------------------------------------------------
+      KFLAG = 0 
+      IREDO = 0 
+      NST = NST + 1 
+      HU = H 
+      NQU = NQ 
+      DO 470 J = 1,L 
+        DO 470 I = 1,N 
+  470     YH(I,J) = YH(I,J) + EL(J)*ACOR(I) 
+      IALTH = IALTH - 1 
+      IF (IALTH .EQ. 0) GO TO 520 
+      IF (IALTH .GT. 1) GO TO 700 
+      IF (L .EQ. LMAX) GO TO 700 
+      DO 490 I = 1,N 
+  490   YH(I,LMAX) = ACOR(I) 
+      GO TO 700 
+!-----------------------------------------------------------------------
+! The error test failed.  KFLAG keeps track of multiple failures.       
+! Restore TN and the YH array to their previous values, and prepare     
+! to try the step again.  Compute the optimum step size for this or     
+! one lower order.  After 2 or more failures, H is forced to decrease   
+! by a factor of 0.2 or less.                                           
+!-----------------------------------------------------------------------
+  500 KFLAG = KFLAG - 1 
+      TN = TOLD 
+      I1 = NQNYH + 1 
+      DO 515 JB = 1,NQ 
+        I1 = I1 - NYH 
+!dir$ ivdep                                                             
+        DO 510 I = I1,NQNYH 
+  510     YH1(I) = YH1(I) - YH1(I+NYH) 
+  515   CONTINUE 
+      RMAX = 2.0D0 
+      IF (ABS(H) .LE. HMIN*1.00001D0) GO TO 660 
+      IF (KFLAG .LE. -3) GO TO 640 
+      IREDO = 2 
+      RHUP = 0.0D0 
+      GO TO 540 
+!-----------------------------------------------------------------------
+! Regardless of the success or failure of the step, factors             
+! RHDN, RHSM, and RHUP are computed, by which H could be multiplied     
+! at order NQ - 1, order NQ, or order NQ + 1, respectively.             
+! In the case of failure, RHUP = 0.0 to avoid an order increase.        
+! The largest of these is determined and the new order chosen           
+! accordingly.  If the order is to be increased, we compute one         
+! additional scaled derivative.                                         
+!-----------------------------------------------------------------------
+  520 RHUP = 0.0D0 
+      IF (L .EQ. LMAX) GO TO 540 
+      DO 530 I = 1,N 
+  530   SAVF(I) = ACOR(I) - YH(I,LMAX) 
+      DUP = DVNORM (N, SAVF, EWT)/TESCO(3,NQ) 
+      EXUP = 1.0D0/(L+1) 
+      RHUP = 1.0D0/(1.4D0*DUP**EXUP + 0.0000014D0) 
+  540 EXSM = 1.0D0/L 
+      RHSM = 1.0D0/(1.2D0*DSM**EXSM + 0.0000012D0) 
+      RHDN = 0.0D0 
+      IF (NQ .EQ. 1) GO TO 560 
+      DDN = DVNORM (N, YH(1,L), EWT)/TESCO(1,NQ) 
+      EXDN = 1.0D0/NQ 
+      RHDN = 1.0D0/(1.3D0*DDN**EXDN + 0.0000013D0) 
+  560 IF (RHSM .GE. RHUP) GO TO 570 
+      IF (RHUP .GT. RHDN) GO TO 590 
+      GO TO 580 
+  570 IF (RHSM .LT. RHDN) GO TO 580 
+      NEWQ = NQ 
+      RH = RHSM 
+      GO TO 620 
+  580 NEWQ = NQ - 1 
+      RH = RHDN 
+      IF (KFLAG .LT. 0 .AND. RH .GT. 1.0D0) RH = 1.0D0 
+      GO TO 620 
+  590 NEWQ = L 
+      RH = RHUP 
+      IF (RH .LT. 1.1D0) GO TO 610 
+      R = EL(L)/L 
+      DO 600 I = 1,N 
+  600   YH(I,NEWQ+1) = ACOR(I)*R 
+      GO TO 630 
+  610 IALTH = 3 
+      GO TO 700 
+  620 IF ((KFLAG .EQ. 0) .AND. (RH .LT. 1.1D0)) GO TO 610 
+      IF (KFLAG .LE. -2) RH = MIN(RH,0.2D0) 
+!-----------------------------------------------------------------------
+! If there is a change of order, reset NQ, l, and the coefficients.     
+! In any case H is reset according to RH and the YH array is rescaled.  
+! Then exit from 690 if the step was OK, or redo the step otherwise.    
+!-----------------------------------------------------------------------
+      IF (NEWQ .EQ. NQ) GO TO 170 
+  630 NQ = NEWQ 
+      L = NQ + 1 
+      IRET = 2 
+      GO TO 150 
+!-----------------------------------------------------------------------
+! Control reaches this section if 3 or more failures have occured.      
+! If 10 failures have occurred, exit with KFLAG = -1.                   
+! It is assumed that the derivatives that have accumulated in the       
+! YH array have errors of the wrong order.  Hence the first             
+! derivative is recomputed, and the order is set to 1.  Then            
+! H is reduced by a factor of 10, and the step is retried,              
+! until it succeeds or H reaches HMIN.                                  
+!-----------------------------------------------------------------------
+  640 IF (KFLAG .EQ. -10) GO TO 660 
+      RH = 0.1D0 
+      RH = MAX(HMIN/ABS(H),RH) 
+      H = H*RH 
+      DO 645 I = 1,N 
+  645   Y(I) = YH(I,1) 
+      CALL F (NEQ, TN, Y, SAVF) 
+      NFE = NFE + 1 
+      DO 650 I = 1,N 
+  650   YH(I,2) = H*SAVF(I) 
+      IPUP = MITER 
+      IALTH = 5 
+      IF (NQ .EQ. 1) GO TO 200 
+      NQ = 1 
+      L = 2 
+      IRET = 3 
+      GO TO 150 
+!-----------------------------------------------------------------------
+! All returns are made through this section.  H is saved in HOLD        
+! to allow the caller to change H on the next step.                     
+!-----------------------------------------------------------------------
+  660 KFLAG = -1 
+      GO TO 720 
+  670 KFLAG = -2 
+      GO TO 720 
+  680 KFLAG = -3 
+      GO TO 720 
+  690 RMAX = 10.0D0 
+  700 R = 1.0D0/TESCO(2,NQU) 
+      DO 710 I = 1,N 
+  710   ACOR(I) = ACOR(I)*R 
+  720 HOLD = H 
+      JSTART = 1 
+      RETURN 
+!----------------------- END OF SUBROUTINE DSTODE ----------------------
+      END SUBROUTINE DSTODE                                          
+!DECK DEWSET                                                            
+      SUBROUTINE DEWSET (N, ITOL, RelTol, AbsTol, YCUR, EWT) 
+!***BEGIN PROLOGUE  DEWSET                                              
+!***SUBSIDIARY                                                          
+!***PURPOSE  Set error weight vector.                                   
+!***TYPE      KPP_REAL (SEWSET-S, DEWSET-D)                     
+!***AUTHOR  Hindmarsh, Alan C., (LLNL)                                  
+!***DESCRIPTION                                                         
+!                                                                       
+!  This subroutine sets the error weight vector EWT according to        
+!      EWT(i) = RelTol(i)*ABS(YCUR(i)) + AbsTol(i),  i = 1,...,N,           
+!  with the subscript on RelTol and/or AbsTol possibly replaced by 1 above, 
+!  depending on the value of ITOL.                                      
+!                                                                       
+!***SEE ALSO  DLSODE                                                    
+!***ROUTINES CALLED  (NONE)                                             
+!***REVISION HISTORY  (YYMMDD)                                          
+!   791129  DATE WRITTEN                                                
+!   890501  Modified prologue to SLATEC/LDOC format.  (FNF)             
+!   890503  Minor cosmetic changes.  (FNF)                              
+!   930809  Renamed to allow single/double precision versions. (ACH)    
+!***END PROLOGUE  DEWSET                                                
+!**End                                                                  
+      INTEGER N, ITOL 
+      INTEGER I 
+      KPP_REAL RelTol(*), AbsTol(*), YCUR(N), EWT(N) 
+!                                                                       
+!***FIRST EXECUTABLE STATEMENT  DEWSET                                  
+      GO TO (10, 20, 30, 40), ITOL 
+   10 CONTINUE 
+      DO 15 I = 1,N 
+   15   EWT(I) = RelTol(1)*ABS(YCUR(I)) + AbsTol(1) 
+      RETURN 
+   20 CONTINUE 
+      DO 25 I = 1,N 
+   25   EWT(I) = RelTol(1)*ABS(YCUR(I)) + AbsTol(I) 
+      RETURN 
+   30 CONTINUE 
+      DO 35 I = 1,N 
+   35   EWT(I) = RelTol(I)*ABS(YCUR(I)) + AbsTol(1) 
+      RETURN 
+   40 CONTINUE 
+      DO 45 I = 1,N 
+   45   EWT(I) = RelTol(I)*ABS(YCUR(I)) + AbsTol(I) 
+      RETURN 
+!----------------------- END OF SUBROUTINE DEWSET ----------------------
+      END SUBROUTINE DEWSET                                          
+!DECK DVNORM                                                            
+      KPP_REAL FUNCTION DVNORM (N, V, W) 
+!***BEGIN PROLOGUE  DVNORM                                              
+!***SUBSIDIARY                                                          
+!***PURPOSE  Weighted root-mean-square vector norm.                     
+!***TYPE      KPP_REAL (SVNORM-S, DVNORM-D)                     
+!***AUTHOR  Hindmarsh, Alan C., (LLNL)                                  
+!***DESCRIPTION                                                         
+!                                                                       
+!  This function routine computes the weighted root-mean-square norm    
+!  of the vector of length N contained in the array V, with weights     
+!  contained in the array W of length N:                                
+!    DVNORM = SQRT( (1/N) * SUM( V(i)*W(i) )**2 )                       
+!                                                                       
+!***SEE ALSO  DLSODE                                                    
+!***ROUTINES CALLED  (NONE)                                             
+!***REVISION HISTORY  (YYMMDD)                                          
+!   791129  DATE WRITTEN                                                
+!   890501  Modified prologue to SLATEC/LDOC format.  (FNF)             
+!   890503  Minor cosmetic changes.  (FNF)                              
+!   930809  Renamed to allow single/double precision versions. (ACH)    
+!***END PROLOGUE  DVNORM                                                
+!**End                                                                  
+      INTEGER N,   I 
+      KPP_REAL V(N), W(N), SUM 
+!                                                                       
+!***FIRST EXECUTABLE STATEMENT  DVNORM                                  
+      SUM = 0.0D0 
+      DO 10 I = 1,N 
+   10   SUM = SUM + (V(I)*W(I))**2 
+      DVNORM = SQRT(SUM/N) 
+      RETURN 
+!----------------------- END OF FUNCTION DVNORM ------------------------
+      END FUNCTION DVNORM                                          
+!DECK XERRWD                                                            
+      SUBROUTINE XERRWD (MSG, NMES, NERR, LEVEL, NI, I1, I2, NR, R1, R2) 
+!***BEGIN PROLOGUE  XERRWD                                              
+!***SUBSIDIARY                                                          
+!***PURPOSE  Write error message with values.                           
+!***CATEGORY  R3C                                                       
+!***TYPE      KPP_REAL (XERRWV-S, XERRWD-D)                     
+!***AUTHOR  Hindmarsh, Alan C., (LLNL)                                  
+!***DESCRIPTION                                                         
+!                                                                       
+!  Subroutines XERRWD, XSETF, XSETUN, and the function routine IXSAV,   
+!  as given here, constitute a simplified version of the SLATEC error   
+!  handling package.                                                    
+!                                                                       
+!  All arguments are input arguments.                                   
+!                                                                       
+!  MSG    = The message (character array).                              
+!  NMES   = The length of MSG (number of characters).                   
+!  NERR   = The error number (not used).                                
+!  LEVEL  = The error level..                                           
+!           0 or 1 means recoverable (control returns to caller).       
+!           2 means fatal (run is aborted--see note below).             
+!  NI     = Number of integers (0, 1, or 2) to be printed with message. 
+!  I1,I2  = Integers to be printed, depending on NI.                    
+!  NR     = Number of reals (0, 1, or 2) to be printed with message.    
+!  R1,R2  = Reals to be printed, depending on NR.                       
+!                                                                       
+!  Note..  this routine is machine-dependent and specialized for use    
+!  in limited context, in the following ways..                          
+!  1. The argument MSG is assumed to be of type CHARACTER, and          
+!     the message is printed with a format of (1X,A).                   
+!  2. The message is assumed to take only one line.                     
+!     Multi-line messages are generated by repeated calls.              
+!  3. If LEVEL = 2, control passes to the statement   STOP              
+!     to abort the run.  This statement may be machine-dependent.       
+!  4. R1 and R2 are assumed to be in double precision and are printed   
+!     in D21.13 format.                                                 
+!                                                                       
+!***ROUTINES CALLED  IXSAV                                              
+!***REVISION HISTORY  (YYMMDD)                                          
+!   920831  DATE WRITTEN                                                
+!   921118  Replaced MFLGSV/LUNSAV by IXSAV. (ACH)                      
+!   930329  Modified prologue to SLATEC format. (FNF)                   
+!   930407  Changed MSG from CHARACTER*1 array to variable. (FNF)       
+!   930922  Minor cosmetic change. (FNF)                                
+!***END PROLOGUE  XERRWD                                                
+!                                                                       
+!*Internal Notes:                                                       
+!                                                                       
+! For a different default logical unit number, IXSAV (or a subsidiary   
+! routine that it calls) will need to be modified.                      
+! For a different run-abort command, change the statement following     
+! statement 100 at the end.                                             
+!-----------------------------------------------------------------------
+! Subroutines called by XERRWD.. None                                   
+! Function routine called by XERRWD.. IXSAV                             
+!-----------------------------------------------------------------------
+!**End                                                                  
+!                                                                       
+!  Declare arguments.                                                   
+!                                                                       
+      KPP_REAL R1, R2 
+      INTEGER NMES, NERR, LEVEL, NI, I1, I2, NR 
+      CHARACTER*(*) MSG 
+!                                                                       
+!  Declare local variables.                                             
+!                                                                       
+      INTEGER LUNIT, MESFLG !, IXSAV 
+!                                                                       
+!  Get logical unit number and message print flag.                      
+!                                                                       
+!***FIRST EXECUTABLE STATEMENT  XERRWD                                  
+      LUNIT = IXSAV (1, 0, .FALSE.) 
+      MESFLG = IXSAV (2, 0, .FALSE.) 
+      IF (MESFLG .EQ. 0) GO TO 100 
+!                                                                       
+!  Write the message.                                                   
+!                                                                       
+      WRITE (LUNIT,10)  MSG 
+   10 FORMAT(1X,A) 
+      IF (NI .EQ. 1) WRITE (LUNIT, 20) I1 
+   20 FORMAT(6X,'In above message,  I1 =',I10) 
+      IF (NI .EQ. 2) WRITE (LUNIT, 30) I1,I2 
+   30 FORMAT(6X,'In above message,  I1 =',I10,3X,'I2 =',I10) 
+      IF (NR .EQ. 1) WRITE (LUNIT, 40) R1 
+   40 FORMAT(6X,'In above message,  R1 =',D21.13) 
+      IF (NR .EQ. 2) WRITE (LUNIT, 50) R1,R2 
+   50 FORMAT(6X,'In above,  R1 =',D21.13,3X,'R2 =',D21.13) 
+!                                                                       
+!  Abort the run if LEVEL = 2.                                          
+!                                                                       
+  100 IF (LEVEL .NE. 2) RETURN 
+      STOP 
+!----------------------- End of Subroutine XERRWD ----------------------
+      END SUBROUTINE XERRWD                                          
+!DECK XSETF                                                             
+      SUBROUTINE XSETF (MFLAG) 
+!***BEGIN PROLOGUE  XSETF                                               
+!***PURPOSE  Reset the error print control flag.                        
+!***CATEGORY  R3A                                                       
+!***TYPE      ALL (XSETF-A)                                             
+!***KEYWORDS  ERROR CONTROL                                             
+!***AUTHOR  Hindmarsh, Alan C., (LLNL)                                  
+!***DESCRIPTION                                                         
+!                                                                       
+!   XSETF sets the error print control flag to MFLAG:                   
+!      MFLAG=1 means print all messages (the default).                  
+!      MFLAG=0 means no printing.                                       
+!                                                                       
+!***SEE ALSO  XERRWD, XERRWV                                            
+!***REFERENCES  (NONE)                                                  
+!***ROUTINES CALLED  IXSAV                                              
+!***REVISION HISTORY  (YYMMDD)                                          
+!   921118  DATE WRITTEN                                                
+!   930329  Added SLATEC format prologue. (FNF)                         
+!   930407  Corrected SEE ALSO section. (FNF)                           
+!   930922  Made user-callable, and other cosmetic changes. (FNF)       
+!***END PROLOGUE  XSETF                                                 
+!                                                                       
+! Subroutines called by XSETF.. None                                    
+! Function routine called by XSETF.. IXSAV                              
+!-----------------------------------------------------------------------
+!**End                                                                  
+      INTEGER MFLAG, JUNK !, IXSAV 
+!                                                                       
+!***FIRST EXECUTABLE STATEMENT  XSETF                                   
+      IF (MFLAG .EQ. 0 .OR. MFLAG .EQ. 1) JUNK = IXSAV (2,MFLAG,.TRUE.) 
+      RETURN 
+!----------------------- End of Subroutine XSETF -----------------------
+      END SUBROUTINE XSETF                                          
+!DECK XSETUN                                                            
+      SUBROUTINE XSETUN (LUN) 
+!***BEGIN PROLOGUE  XSETUN                                              
+!***PURPOSE  Reset the logical unit number for error messages.          
+!***CATEGORY  R3B                                                       
+!***TYPE      ALL (XSETUN-A)                                            
+!***KEYWORDS  ERROR CONTROL                                             
+!***DESCRIPTION                                                         
+!                                                                       
+!   XSETUN sets the logical unit number for error messages to LUN.      
+!                                                                       
+!***AUTHOR  Hindmarsh, Alan C., (LLNL)                                  
+!***SEE ALSO  XERRWD, XERRWV                                            
+!***REFERENCES  (NONE)                                                  
+!***ROUTINES CALLED  IXSAV                                              
+!***REVISION HISTORY  (YYMMDD)                                          
+!   921118  DATE WRITTEN                                                
+!   930329  Added SLATEC format prologue. (FNF)                         
+!   930407  Corrected SEE ALSO section. (FNF)                           
+!   930922  Made user-callable, and other cosmetic changes. (FNF)       
+!***END PROLOGUE  XSETUN                                                
+!                                                                       
+! Subroutines called by XSETUN.. None                                   
+! Function routine called by XSETUN.. IXSAV                             
+!-----------------------------------------------------------------------
+!**End                                                                  
+      INTEGER LUN, JUNK !, IXSAV 
+!                                                                       
+!***FIRST EXECUTABLE STATEMENT  XSETUN                                  
+      IF (LUN .GT. 0) JUNK = IXSAV (1,LUN,.TRUE.) 
+      RETURN 
+!----------------------- End of Subroutine XSETUN ----------------------
+      END SUBROUTINE XSETUN                                          
+!DECK IXSAV                                                             
+      INTEGER FUNCTION IXSAV (IPAR, IVALUE, ISET) 
+!***BEGIN PROLOGUE  IXSAV                                               
+!***SUBSIDIARY                                                          
+!***PURPOSE  Save and recall error message control parameters.          
+!***CATEGORY  R3C                                                       
+!***TYPE      ALL (IXSAV-A)                                             
+!***AUTHOR  Hindmarsh, Alan C., (LLNL)                                  
+!***DESCRIPTION                                                         
+!                                                                       
+!  IXSAV saves and recalls one of two error message parameters:         
+!    LUNIT, the logical unit number to which messages are printed, and  
+!    MESFLG, the message print flag.                                    
+!  This is a modification of the SLATEC library routine J4SAVE.         
+!                                                                       
+!  Saved local variables..                                              
+!   LUNIT  = Logical unit number for messages.  The default is obtained 
+!            by a call to IUMACH (may be machine-dependent).            
+!   MESFLG = Print control flag..                                       
+!            1 means print all messages (the default).                  
+!            0 means no printing.                                       
+!                                                                       
+!  On input..                                                           
+!    IPAR   = Parameter indicator (1 for LUNIT, 2 for MESFLG).          
+!    IVALUE = The value to be set for the parameter, if ISET = .TRUE.   
+!    ISET   = Logical flag to indicate whether to read or write.        
+!             If ISET = .TRUE., the parameter will be given             
+!             the value IVALUE.  If ISET = .FALSE., the parameter       
+!             will be unchanged, and IVALUE is a dummy argument.        
+!                                                                       
+!  On return..                                                          
+!    IXSAV = The (old) value of the parameter.                          
+!                                                                       
+!***SEE ALSO  XERRWD, XERRWV                                            
+!***ROUTINES CALLED  IUMACH                                             
+!***REVISION HISTORY  (YYMMDD)                                          
+!   921118  DATE WRITTEN                                                
+!   930329  Modified prologue to SLATEC format. (FNF)                   
+!   930915  Added IUMACH call to get default output unit.  (ACH)        
+!   930922  Minor cosmetic changes. (FNF)                               
+!   010425  Type declaration for IUMACH added. (ACH)                    
+!***END PROLOGUE  IXSAV                                                 
+!                                                                       
+! Subroutines called by IXSAV.. None                                    
+! Function routine called by IXSAV.. IUMACH                             
+!-----------------------------------------------------------------------
+!**End                                                                  
+      LOGICAL ISET 
+      INTEGER IPAR, IVALUE 
+!-----------------------------------------------------------------------
+      INTEGER LUNIT, MESFLG!, IUMACH
+!-----------------------------------------------------------------------
+! The following Fortran-77 declaration is to cause the values of the    
+! listed (local) variables to be saved between calls to this routine.   
+!-----------------------------------------------------------------------
+      SAVE LUNIT, MESFLG 
+      DATA LUNIT/-1/, MESFLG/1/ 
+!                                                                       
+!***FIRST EXECUTABLE STATEMENT  IXSAV                                   
+      IF (IPAR .EQ. 1) THEN 
+        IF (LUNIT .EQ. -1) LUNIT = IUMACH() 
+        IXSAV = LUNIT 
+        IF (ISET) LUNIT = IVALUE 
+        ENDIF 
+!                                                                       
+      IF (IPAR .EQ. 2) THEN                                             
+        IXSAV = MESFLG                                                  
+        IF (ISET) MESFLG = IVALUE                                       
+        ENDIF                                                           
+!                                                                       
+      RETURN                                                            
+!----------------------- End of Function IXSAV -------------------------
+      END FUNCTION IXSAV                                         
+!DECK IUMACH                                                            
+      INTEGER FUNCTION IUMACH() 
+!***BEGIN PROLOGUE  IUMACH                                              
+!***PURPOSE  Provide standard output unit number.                       
+!***CATEGORY  R1                                                        
+!***TYPE      INTEGER (IUMACH-I)                                        
+!***KEYWORDS  MACHINE CONSTANTS                                         
+!***AUTHOR  Hindmarsh, Alan C., (LLNL)                                  
+!***DESCRIPTION                                                         
+! *Usage:                                                               
+!        INTEGER  LOUT, IUMACH                                          
+!        LOUT = IUMACH()                                                
+!                                                                       
+! *Function Return Values:                                              
+!     LOUT : the standard logical unit for Fortran output.              
+!                                                                       
+!***REFERENCES  (NONE)                                                  
+!***ROUTINES CALLED  (NONE)                                             
+!***REVISION HISTORY  (YYMMDD)                                          
+!   930915  DATE WRITTEN                                                
+!   930922  Made user-callable, and other cosmetic changes. (FNF)       
+!***END PROLOGUE  IUMACH                                                
+!                                                                       
+!*Internal Notes:                                                       
+!  The built-in value of 6 is standard on a wide range of Fortran       
+!  systems.  This may be machine-dependent.                             
+!**End                                                                  
+!***FIRST EXECUTABLE STATEMENT  IUMACH                                  
+      IUMACH = 6 
+!                                                                       
+      RETURN 
+!----------------------- End of Function IUMACH ------------------------
+      END FUNCTION IUMACH                                         
+
+!---- END OF SUBROUTINE DLSODE AND ITS INTERNAL PROCEDURES
+      END SUBROUTINE DLSODE                                          
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE FUN_CHEM(N, T, V, FCT)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      USE KPP_ROOT_Parameters
+      USE KPP_ROOT_Global
+      USE KPP_ROOT_Function, ONLY: Fun
+      USE KPP_ROOT_Rates
+
+      IMPLICIT NONE
+
+      INTEGER :: N
+      KPP_REAL :: V(NVAR), FCT(NVAR), T, TOLD
+      
+!      TOLD = TIME
+!      TIME = T
+!      CALL Update_SUN()
+!      CALL Update_RCONST()
+!      CALL Update_PHOTO()
+!      TIME = TOLD
+
+      CALL Fun(V, FIX, RCONST, FCT)
+      
+      !Nfun=Nfun+1
+
+      END SUBROUTINE FUN_CHEM
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE JAC_CHEM (N, T, V, JF)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      USE KPP_ROOT_Parameters
+      USE KPP_ROOT_Global
+      USE KPP_ROOT_JacobianSP
+      USE KPP_ROOT_Jacobian, ONLY: Jac_SP
+      USE KPP_ROOT_Rates
+
+      IMPLICIT NONE
+
+      KPP_REAL :: V(NVAR), T, TOLD
+      INTEGER :: I, J, N, ML, MU, NROWPD
+#ifdef FULL_ALGEBRA    
+      KPP_REAL :: JV(LU_NONZERO), JF(NVAR,NVAR)
+#else
+      KPP_REAL :: JF(LU_NONZERO)
+#endif   
+  
+!      TOLD = TIME
+!      TIME = T
+!      CALL Update_SUN()
+!      CALL Update_RCONST()
+!      CALL Update_PHOTO()
+!      TIME = TOLD
+    
+#ifdef FULL_ALGEBRA    
+      CALL Jac_SP(V, FIX, RCONST, JV)
+      DO j=1,NVAR
+      DO i=1,NVAR
+         JF(i,j) = 0.0d0
+      END DO
+      END DO
+      DO i=1,LU_NONZERO
+         JF(LU_IROW(i),LU_ICOL(i)) = JV(i)
+      END DO
+#else
+      CALL Jac_SP(V, FIX, RCONST, JF) 
+#endif   
+      !Njac=Njac+1
+    
+      END SUBROUTINE JAC_CHEM
+
+
+END MODULE KPP_ROOT_Integrator
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/kpp_odessa_ddm.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/kpp_odessa_ddm.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/kpp_odessa_ddm.def	(revision 2696)
@@ -0,0 +1,42 @@
+ 
+#FUNCTION AGGREGATE
+#JACOBIAN SPARSE_LU_ROW
+#DOUBLE ON 
+#INTFILE kpp_odessa_ddm
+
+#INLINE F77_GLOBAL
+      INTEGER Autonomous
+      COMMON /INTGDATA/ Autonomous
+      REAL*8 STEPSTART
+      COMMON /GDATA/ STEPSTART
+#ENDINLINE
+
+#INLINE F77_INIT
+        STEPMIN=0.0001
+        STEPMAX=3600.
+        Autonomous = 0
+        STEPSTART=STEPMIN
+#ENDINLINE
+
+
+
+#INLINE C_GLOBAL
+extern int Autonomous;
+extern double STEPSTART;
+#ENDINLINE
+
+#INLINE C_DATA_INT
+int Autonomous;
+double STEPSTART;
+#ENDINLINE
+
+
+
+#INLINE C_INIT
+        STEPMIN=0.0001;
+        STEPMAX=3600.0;
+        Autonomous = 0;
+        STEPSTART=STEPMIN;
+#ENDINLINE
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/kpp_odessa_ddm.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/kpp_odessa_ddm.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/kpp_odessa_ddm.f	(revision 2696)
@@ -0,0 +1,4427 @@
+      SUBROUTINE INTEGRATE( NSENSIT, Y, TIN, TOUT )
+
+      INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Global.h'
+
+C TIN - Start Time
+      REAL*8 TIN
+C TOUT - End Time
+      REAL*8 TOUT
+C Concentrations and Sensitivities
+      REAL*8 Y(NVAR,NSENSIT+1), PARAMS(NSENSIT)
+C ---  Note: Y contains: (1:NVAR) concentrations, followed by
+C ---                   (1:NVAR) sensitivities w.r.t. first parameter, followed by
+C ---                   etc.,  followed by
+C ---                   (1:NVAR) sensitivities w.r.t. NSENSIT's parameter
+      INTEGER i
+
+      INTEGER LIW, LRW
+C      PARAMETER (LRW = 22 + 8*(NSENSIT+1)*NVAR + NVAR**2 + NVAR)
+C      PARAMETER (LIW = 21 + NVAR + NSENSIT)
+C      REAL*8 RWORK(LRW)
+C      INTEGER IWORK(LIW)
+C Note: the following dynamic allocation is not standard F77 and may not work on
+C       some systems. Declare LRW, LIW parameters as above with some upper bound used for NSENSIT
+      REAL*8 RWORK(22 + 8*(NSENSIT+1)*NVAR + NVAR**2 + NVAR)
+      INTEGER IWORK(21 + NVAR + NSENSIT)
+
+      INTEGER IOPT(3), NEQ(2)
+
+      EXTERNAL FUNC_CHEM,JAC,DFUNC_CHEMDPAR
+
+      MF = 21    ! --- BDF plus user-supplied Jacobian
+
+      LRW = 22 + 8*(NSENSIT+1)*NVAR + NVAR**2 + NVAR
+      LIW = 21 + NVAR + NSENSIT
+
+      NEQ(1) = NVAR ! --- No. of Variables
+      NEQ(2) = NSENSIT ! --- No of parameters
+
+      ITOL=1     ! --- 1=Scalar Tolerances; 4 = VECTOR TOLERANCES
+      ITASK=1    ! --- Normal Output
+      ISTATE=1
+      IOPT(1)=1  ! --- 0= No optional parameters, 1=Optional parameters
+      IOPT(2)=1  ! --- 1=Perform sensitivity analysis; 0 if not
+      IOPT(3)=1  ! --- 1 if DFUNC_CHEMDPAR supplied by the user;
+                 ! --- 0 if finite differences are to be used
+C --- Set optional parameters
+      DO 10 i=1,LRW
+        RWORK(i) = 0.0D0
+ 10   CONTINUE
+      DO 20 i=1,LIW
+        IWORK(i) = 0
+ 20   CONTINUE
+
+      RWORK(5) = STEPMIN   ! 	THE STEP SIZE TO BE ATTEMPTED ON THE FIRST STEP.
+      RWORK(6) = STEPMAX     ! THE MAXIMUM ABSOLUTE STEP SIZE ALLOWED.
+      RWORK(7) = 0.0D0       ! THE MINIMUM ABSOLUTE STEP SIZE ALLOWED.
+      IWORK(6) = 5000        !  MAXIMUM NUMBER OF (INTERNALLY DEFINED) STEPS
+
+      CALL KPP_ODESSA( FUNC_CHEM,DFUNC_CHEMDPAR,NEQ,Y,PARAMS,TIN,TOUT,
+     &              ITOL,RTOL,ATOL,
+     1              ITASK,ISTATE,IOPT,RWORK,LRW,IWORK,LIW,
+     &              JAC,MF)
+
+      IF (ISTATE.LT.0) THEN
+        print *,'KPP_ODESSA: Unsucessfull exit at T=',
+     &          TIN,' (ISTATE=',ISTATE,')'
+      ENDIF
+
+      RETURN
+      END
+
+
+
+
+        SUBROUTINE FUNC_CHEM (N, T, V, PARAMS, FCT)
+        INCLUDE 'KPP_ROOT_Parameters.h'
+        INCLUDE 'KPP_ROOT_Global.h'
+
+        DIMENSION V(NVAR), PARAMS(*), FCT(NVAR)
+        TOLD = TIME
+        TIME = T
+        CALL Update_SUN()
+        CALL Update_RCONST()
+        TIME = TOLD
+        CALL Fun(V,  FIX, RCONST, FCT)
+        RETURN
+        END
+
+        SUBROUTINE DFUNC_CHEMDPAR (N, T, V, PARAMS, DFCT, JPAR)
+        INCLUDE 'KPP_ROOT_Parameters.h'
+        INCLUDE 'KPP_ROOT_Global.h'
+C --- NCOEFF = number of rate coefficients w.r.t. which we differentiate
+C    (note that in some applications NCOEFF may be different than NSENSIT)
+C    JCOEFF(1:NCOEFF) are the indices of rate coefficients   w.r.t. which we differentiate
+        INTEGER NCOEFF, JCOEFF(NREACT)
+        COMMON /DDMRCOEFF/ NCOEFF, JCOEFF
+
+        DIMENSION V(NVAR), PARAMS(*), DFCT(NVAR)
+	INTEGER JPAR, i, JC(1)
+	IF (DDMTYPE .EQ. 0) THEN
+C This setting is required for sensitivities w.r.t. initial conditions
+          DO i=1,NVAR
+	    DFCT(i) = 0.d0
+	  END DO
+	ELSE
+C This setting is required for sensitivities w.r.t. rate coefficients
+C   ... and should be changed by the user for other applications
+          JC(1) = JCOEFF(JPAR)
+	  CALL dFun_dRcoeff(V,  FIX, 1, JC, DFCT )
+	END IF
+        RETURN
+        END
+
+        SUBROUTINE JAC (N, T, V, PARAMS, ML, MU, JS, NROWPD)
+        INCLUDE 'KPP_ROOT_Parameters.h'
+        INCLUDE 'KPP_ROOT_Sparse.h'
+
+        REAL*8 V(NVAR), PARAMS(*), JS(LU_NONZERO)
+	INTEGER ML, MU, NROWPD
+        TOLD = TIME
+        TIME = T
+        CALL Update_SUN()
+        CALL Update_RCONST()
+        TIME = TOLD
+        DO i=1,LU_NONZERO
+            JS(i) = 0.0D0
+        END DO
+        CALL Jac_SP(V,  FIX, RCONST, JS)
+        RETURN
+        END
+
+
+C      ALGORITHM 658, COLLECTED ALGORITHMS FROM ACM.
+C      THIS WORK PUBLISHED IN TRANSACTIONS ON MATHEMATICAL SOFTWARE,
+C      VOL. 14, NO. 1, P.61.
+C-----------------------------------------------------------------------
+C THIS IS THE SEPTEMBER 1, 1986 VERSION OF ODESSA..
+C AN ORDINARY DIFFERENTIAL EQUATION KppSolveR WITH EXPLICIT SIMULTANEOUS
+C SENSITIVITY ANALYSIS.
+C
+C THIS PACKAGE IS A MODIFICATION OF THE AUGUST 13, 1981 VERSION OF
+C LSODE..  LIVERMORE KppSolveR FOR ORDINARY DIFFERENTIAL EQUATIONS.
+C THIS VERSION IS IN DOUBLE PRECISION.
+C
+C ODESSA KppSolveS FOR THE FIRST-ORDER SENSITIVITY COEFFICIENTS..
+C    DY(I)/DP, FOR A SINGLE PARAMETER, OR,
+C    DY(I)/DP(J), FOR MULTIPLE PARAMETERS,
+C ASSOCIATED WITH A SYSTEM OF ORDINARY DIFFERENTIAL EQUATIONS..
+C    DY/DT = F(Y,T;P).
+C-----------------------------------------------------------------------
+C REFERENCES...
+C
+C  1. JORGE R. LEIS AND MARK A. KRAMER, THE SIMULTANEOUS SOLUTION AND
+C     EXPLICIT SENSITIVITY ANALYSIS OF SYSTEMS DESCRIBED BY ORDINARY
+C     DIFFERENTIAL EQUATIONS.  SUBMITTED TO ACM TRANS. MATH. SOFTWARE,
+C     (1985).
+C
+C  2. JORGE R. LEIS AND MARK A. KRAMER, ODESSA - AN ORDINARY DIFFERENTIA
+C     EQUATION KppSolveR WITH EXPLICIT SIMULTANEOUS SENSITIVITY ANALYSIS.
+C     SUBMITTED TO ACM TRANS. MATH. SOFTWARE, (1985).
+C
+C  3. ALAN C. HINDMARSH,  LSODE AND LSODI,  TWO NEW INITIAL VALUE
+C     ORDINARY DIFFERENTIAL EQUATION KppSolveRS, ACM-SIGNUM NEWSLETTER,
+C     VOL. 15, NO. 4 (1980), PP. 10-11.
+C-----------------------------------------------------------------------
+C PROBLEM STATEMENT..
+C
+C THE ODESSA MODIFICATION OF THE LSODE PACKAGE PROVIDES THE OPTION TO
+C CALCULATE FIRST-ORDER SENSITIVITY COEFFICIENTS FOR A SYSTEM OF STIFF
+C OR NON-STIFF EXPLICIT ORDINARY DIFFERENTIAL EQUATIONS OF THE GENERAL
+C FORM :
+C
+C                  DY/DT = F(Y,T;P)     (1)
+C
+C WHERE Y IS AN N-DIMENSIONAL DEPENDENT VARIABLE VECTOR, T IS THE
+C INDEPENDENT INTEGRATION VARIABLE, AND P IS AN NPAR-DIMENSIONAL
+C CONSTANT VECTOR. THE GOVERNING EQUATIONS FOR THE FIRST-ORDER
+C SENSITIVITY COEFFICIENTS ARE GIVEN BY :
+C
+C                  S'(T) = J(T)*S(T) + DF/DP     (2)
+C
+C WHERE
+C
+C                  S(T)  = DY(T)/DP (= SENSITIVITY FUNCTIONS)
+C                  S'(T) = D(DY(T)/DP)/DT
+C                  J(T)  = DF(Y,T;P)/DY(T) (= JACOBIAN MATRIX)
+C AND              DF/DP = DF(Y,T;P)/DP (= INHOMOGENEITY MATRIX)
+C
+C SOLUTION OF EQUATIONS (1) AND (2) PROCEEDS SIMULTANEOUSLY VIA AN
+C EXTENSION OF THE LSODE PACKAGE AS DESCRIBED IN [1].
+C----------------------------------------------------------------------
+C ACKNOWLEDGEMENT : THE FOLLOWING ODESSA PACKAGE DOCUMENTATION IS A
+C                   MODIFICATION OF THE LSODE DOCUMENTATION WHICH
+C                   ACCOMPANIES THE LSODE PACKAGE CODE.
+C----------------------------------------------------------------------
+C SUMMARY OF USAGE.
+C
+C COMMUNICATION BETWEEN THE USER AND THE ODESSA PACKAGE, FOR NORMAL
+C SITUATIONS, IS SUMMARIZED HERE. THIS SUMMARY DESCRIBES ONLY A SUBSET
+C OF THE FULL SET OF OPTIONS AVAILABLE.  SEE THE FULL DESCRIPTION FOR
+C DETAILS, INCLUDING OPTIONAL COMMUNICATION, NONSTANDARD OPTIONS,
+C AND INSTRUCTIONS FOR SPECIAL SITUATIONS.  SEE ALSO THE EXAMPLE
+C PROBLEM (WITH PROGRAM AND OUTPUT) FOLLOWING THIS SUMMARY.
+C
+C A. FIRST PROVIDE A SUBROUTINE OF THE FORM..
+C              SUBROUTINE F (N, T, Y, PAR, YDOT)
+C              DOUBLE PRECISION T, Y, PAR, YDOT
+C              DIMENSION Y(N), YDOT(N), PAR(NPAR)
+C WHICH SUPPLIES THE VECTOR FUNCTION F BY LOADING YDOT(I) WITH F(I).
+C N IS THE NUMBER OF FIRST-ORDER DIFFERENTIAL EQUATIONS IN THE
+C ABOVE MODEL. NPAR IS THE NUMBER OF MODEL PARAMETERS FOR WHICH
+C VECTOR SENSITIVITY FUNCTIONS ARE DESIRED. YOU ARE ALSO ENCOURAGED
+C TO PROVIDE A SUBROUTINE OF THE FORM..
+C              SUBROUTINE DF (N, T, Y, PAR, DFDP, JPAR)
+C              DOUBLE PRECISION T, Y, PAR, DFDP
+C              DIMENSION Y(N), PAR(NPAR), DFDP(N)
+C              GO TO (1,...,NPAR) JPAR
+C         1    DFDP(1) = DF(1)/DP(1)
+C              .
+C              DFDP(I) = DF(I)/DP(1)
+C              .
+C              DFDP(N) = DF(N)/DP(1)
+C              RETURN
+C         2    DFDP(1) = DF(1)/DP(2)
+C              .
+C              DFDP(I) = DF(I)/DP(2)
+C              .
+C              DFDP(N) = DF(N)/DP(2)
+C              RETURN
+C         .    .
+C         .    .
+C              RETURN
+C       NPAR   DFDP(1) = DF(1)/DP(NPAR)
+C              .
+C              DFDP(I) = DF(I)/DP(NPAR)
+C              .
+C              DFDP(N) = DF(N)/DP(NPAR)
+C              RETURN
+C              END
+C ONLY NONZERO ELEMENTS NEED BE LOADED. IF THIS IS NOT FEASIBLE,
+C ODESSA WILL GENERATE THIS MATRIX INTERNALLY BY DIFFERENCE QUOTIENTS.
+C
+C B. NEXT DETERMINE (OR GUESS) WHETHER OR NOT THE PROBLEM IS STIFF.
+C STIFFNESS OCCURS WHEN THE JACOBIAN MATRIX DF/DY HAS AN EIGENVALUE
+C WHOSE REAL PART IS NEGATIVE AND LARGE IN MAGNITUDE, COMPARED TO THE
+C RECIPROCAL OF THE T SPAN OF INTEREST.  IF THE PROBLEM IS NONSTIFF,
+C USE METH = 10.  IF IT IS STIFF, USE METH = 20. THE USER IS REQUIRED
+C TO INPUT THE METHOD FLAG MF = 10*METH + MITER. THERE ARE FOUR
+C STANDARD CHOICES FOR MITER WHEN A SENSITIVITY ANALYSIS IS DESIRED,
+C AND ODESSA REQUIRES THE JACOBIAN MATRIX IN SOME FORM.
+C THIS MATRIX IS REGARDED EITHER AS FULL (MITER = 1 OR 2),
+C OR BANDED (MITER = 4 OR 5). IN THE BANDED CASE, ODESSA REQUIRES TWO
+C HALF-BANDWIDTH PARAMETERS ML AND MU.  THESE ARE, RESPECTIVELY, THE
+C WIDTHS OF THE LOWER AND UPPER PARTS OF THE BAND, EXCLUDING THE MAIN
+C DIAGONAL.  THUS THE BAND CONSISTS OF THE LOCATIONS (I,J) WITH
+C I-ML .LE. J .LE. I+MU, AND THE FULL BANDWIDTH IS ML+MU+1.
+C
+C C. YOU ARE ENCOURAGED TO SUPPLY THE JACOBIAN DIRECTLY (MF = 11, 14,
+C 21, OR 24), BUT IF THIS IS NOT FEASIBLE, ODESSA WILL COMPUTE IT
+C INTERNALLY BY DIFFERENCE QUOTIENTS (MF = 12, 15, 22, OR 25). IF YOU
+C ARE SUPPLYING THE JACOBIAN, PROVIDE A SUBROUTINE OF THE FORM..
+C         SUBROUTINE JAC (NEQ, T, Y, PAR, ML, MU, PD, NROWPD)
+C         DOUBLE PRECISION T, Y, PAR, PD
+C         DIMENSION Y(N), PD(NROWPD,N), PAR(NPAR)
+C WHICH SUPPLIES DF/DY BY LOADING PD AS FOLLOWS..
+C  FOR A FULL JACOBIAN (MF = 11, OR 21), LOAD PD(I,J) WITH DF(I)/DY(J),
+C  THE PARTIAL DERIVATIVE OF F(I) WITH RESPECT TO Y(J).  (IGNORE THE
+C  ML AND MU ARGUMENTS IN THIS CASE.)
+C  FOR A BANDED JACOBIAN (MF = 14, OR 24), LOAD PD(I-J+MU+1,J) WITH
+C  DF(I)/DY(J), I.E. LOAD THE DIAGONAL LINES OF DF/DY INTO THE ROWS OF
+C  PD FROM THE TOP DOWN.
+C IN EITHER CASE, ONLY NONZERO ELEMENTS NEED BE LOADED.
+C
+C D. WRITE A MAIN PROGRAM WHICH CALLS SUBROUTINE ODESSA ONCE FOR
+C EACH POINT AT WHICH ANSWERS ARE DESIRED.  THIS SHOULD ALSO PROVIDE
+C FOR POSSIBLE USE OF LOGICAL UNIT 6 FOR OUTPUT OF ERROR MESSAGES BY
+C ODESSA.  ON THE FIRST CALL TO ODESSA, SUPPLY ARGUMENTS AS FOLLOWS..
+C F     = NAME OF SUBROUTINE FOR RIGHT-HAND SIDE VECTOR F (MODEL).
+C         THIS NAME MUST BE DECLARED EXTERNAL IN CALLING PROGRAM.
+C DF    = NAME OF SUBROUTINE FOR INHOMOGENEITY MATRIX DF/DP.
+C         IF USED (IDF = 1), THIS NAME MUST BE DECLARED EXTERNAL IN
+C         CALLING PROGRAM. IF NOT USED (IDF = 0), PASS A DUMMY NAME.
+C N     = NUMBER OF FIRST ORDER ODE-S IN MODEL; LOAD INTO NEQ(1).
+C NPAR  = NUMBER OF MODEL PARAMETERS OF INTEREST; LOAD INTO NEQ(2).
+C Y     = AN (N) BY (NPAR+1) REAL ARRAY OF INITIAL VALUES..
+C         Y(I,1) , I = 1,N , CONTAIN THE STATE, OR MODEL, DEPENDENT
+C                            VARIABLES,
+C         Y(I,J) , J = 2,NPAR , CONTAIN THE DEPENDENT SENSITIVITY
+C                               COEFFICIENTS.
+C PAR   = A REAL ARRAY OF LENGTH NPAR CONTAINING MODEL PARAMETERS
+C         OF INTEREST.
+C T     = THE INITIAL VALUE OF THE INDEPENDENT VARIABLE.
+C TOUT  = FIRST POINT WHERE OUTPUT IS DESIRED (.NE. T).
+C ITOL  = 1, 2, 3, OR 4 ACCORDING AS RTOL, ATOL (BELOW) ARE  SCALARS
+C         OR ARRAYS.
+C RTOL  = RELATIVE TOLERANCE PARAMETER (SCALAR OR (N) BY (NPAR+1)
+C         ARRAY).
+C ATOL  = ABSOLUTE TOLERANCE PARAMETER (SCALAR OR (N) BY (NPAR+1)
+C         ARRAY).
+C         THE ESTIMATED LOCAL ERROR IN Y(I,J) WILL BE CONTROLLED SO AS
+C         TO BE ROUGHLY LESS (IN MAGNITUDE) THAN
+C          EWT(I,J) = RTOL*ABS(Y(I,J)) + ATOL          IF ITOL = 1,
+C          EWT(I,J) = RTOL*ABS(Y(I,J)) + ATOL(I,J)     IF ITOL = 2,
+C          EWT(I,J) = RTOL(I,J)*ABS(Y(I,J) + ATOL      IF ITOL = 3, OR
+C          EWT(I,J) = RTOL(I,J)*ABS(Y(I,J) + ATOL(I,J) IF ITOL = 4.
+C         THUS THE LOCAL ERROR TEST PASSES IF, IN EACH COMPONENT,
+C         EITHER THE ABSOLUTE ERROR IS LESS THAN ATOL (OR ATOL(I,J)),
+C         OR THE RELATIVE ERROR IS LESS THAN RTOL (OR RTOL(I,J)).
+C         USE RTOL = 0.0 FOR PURE ABSOLUTE ERROR CONTROL, AND
+C         USE ATOL = 0.0 FOR PURE RELATIVE ERROR CONTROL.
+C         CAUTION.. ACTUAL (GLOBAL) ERRORS MAY EXCEED THESE LOCAL
+C         TOLERANCES, SO CHOOSE THEM CONSERVATIVELY.
+C ITASK = 1 FOR NORMAL COMPUTATION OF OUTPUT VALUES OF Y AT T = TOUT.
+C ISTATE = INTEGER FLAG (INPUT AND OUTPUT).  SET ISTATE = 1.
+C IOPT  = 0, TO INDICATE NO OPTIONAL INPUTS FOR INTEGRATION;
+C          LOAD INTO IOPT(1).
+C ISOPT = 1, TO INDICATE SENSITIVITY ANALYSIS, = 0, TO INDICATE
+C          NO SENSITIVITY ANALYSIS; LOAD INTO IOPT(2).
+C IDF   = 1, IF SUBROUTINE DF (ABOVE) IS SUPPLIED BY THE USER,
+C          = 0, OTHERWISE; LOAD INTO IOPT(3).
+C RWORK = REAL WORK ARRAY OF LENGTH AT LEAST..
+C           22 + 16*N + N**2           FOR MF = 11 OR 12,
+C           22 + 17*N + (2*ML + MU)*N  FOR MF = 14 OR 15,
+C           22 +  9*N + N**2           FOR MF = 21 OR 22,
+C           22 + 10*N + (2*ML + MU)*N  FOR MF = 24 OR 25,
+C         IF ISOPT = 0, OR..
+C           22 + 15*(NPAR+1)*N + N**2 + N           FOR MF = 11 OR 12,
+C           24 + 15*(NPAR+1)*N + (2*ML+MU+2)*N + N  FOR MF = 14 OR 15,
+C           22 + 8*(NPAR+1)*N + N**2 + N            FOR MF = 21 OR 22,
+C           24 + 8*(NPAR+1)*N + (2*ML+MU+2)*N + N   FOR MF = 24 OR 25,
+C         IF ISOPT = 1.
+C LRW   = DECLARED LENGTH OF RWORK (IN USER-S DIMENSION STATEMENT).
+C IWORK = INTEGER WORK ARRAY OF LENGTH AT LEAST..
+C          20 + N         IF ISOPT = 0,
+C          21 + N + NPAR  IF ISOPT = 1.
+C        IF MITER = 4 OR 5, INPUT IN IWORK(1),IWORK(2) THE LOWER
+C        AND UPPER HALF-BANDWIDTHS ML,MU (EXCLUDING MAIN DIAGONAL).
+C LIW  = DECLARED LENGTH OF IWORK (IN USER-S DIMENSION STATEMENT).
+C JAC  = NAME OF SUBROUTINE FOR JACOBIAN MATRIX.
+C        IF USED, THIS NAME MUST BE DECLARED EXTERNAL IN CALLING
+C        PROGRAM.  IF NOT USED, PASS A DUMMY NAME.
+C MF   = METHOD FLAG.  STANDARD VALUES FOR ISOPT = 0 ARE..
+C         10 FOR NONSTIFF (ADAMS) METHOD, NO JACOBIAN USED.
+C         21 FOR STIFF (BDF) METHOD, USER-SUPPLIED FULL JACOBIAN.
+C         22 FOR STIFF METHOD, INTERNALLY GENERATED FULL JACOBIAN.
+C         24 FOR STIFF METHOD, USER-SUPPLIED BANDED JACOBIAN.
+C         25 FOR STIFF METHOD, INTERNALLY GENERATED BANDED JACOBIAN.
+C        IF ISOPT = 1, MF = 10 IS ILLEGAL AND CAN BE REPLACED BY..
+C         11 FOR NONSTIFF METHOD, USER-SUPPLIED FULL JACOBIAN.
+C         12 FOR NONSTIFF METHOD, INTERNALLY GENERATED FULL JACOBIAN.
+C         14 FOR NONSTIFF METHOD, USER-SUPPLIED BANDED JACOBIAN.
+C         15 FOR NONSTIFF METHOD, INTERNALLY GENERATED BANDED JACOBIAN.
+C NOTE THAT THE MAIN PROGRAM MUST DECLARE ARRAYS Y, RWORK, IWORK, AND
+C POSSIBLY ATOL AND RTOL, AS WELL AS NEQ, IOPT, AND PAR IF ISOPT = 1.
+C
+C E. THE OUTPUT FROM THE FIRST CALL (OR ANY CALL) IS..
+C     Y = ARRAY OF COMPUTED VALUES OF Y(T) VECTOR.
+C     T = CORRESPONDING VALUE OF INDEPENDENT VARIABLE (NORMALLY TOUT).
+C ISTATE = 2  IF ODESSA WAS SUCCESSFUL, NEGATIVE OTHERWISE.
+C         -1 MEANS EXCESS WORK DONE ON THIS CALL (PERHAPS WRONG MF).
+C         -2 MEANS EXCESS ACCURACY REQUESTED (TOLERANCES TOO SMALL).
+C         -3 MEANS ILLEGAL INPUT DETECTED (SEE PRINTED MESSAGE).
+C         -4 MEANS REPEATED ERROR TEST FAILURES (CHECK ALL INPUTS).
+C         -5 MEANS REPEATED CONVERGENCE FAILURES (PERHAPS BAD JACOBIAN
+C            SUPPLIED OR WRONG CHOICE OF MF OR TOLERANCES).
+C         -6 MEANS ERROR WEIGHT BECAME ZERO DURING PROBLEM. (SOLUTION
+C            COMPONENT I,J VANISHED, AND ATOL OR ATOL(I,J) = 0.0)
+C
+C F. TO CONTINUE THE INTEGRATION AFTER A SUCCESSFUL RETURN, SIMPLY
+C RESET TOUT AND CALL ODESSA AGAIN. NO OTHER PARAMETERS NEED BE RESET.
+C----------------------------------------------------------------------
+C EXAMPLE PROBLEM.
+C
+C THE FOLLOWING IS A SIMPLE EXAMPLE PROBLEM, WITH THE CODING
+C NEEDED FOR ITS SOLUTION BY ODESSA.  THE PROBLEM IS FROM CHEMICAL
+C KINETICS, AND CONSISTS OF THE FOLLOWING THREE RATE EQUATIONS..
+C    DY1/DT = -PAR(1)*Y1 + PAR(2)*Y2*Y3 ; PAR(1) = .04, PAR(2) = 1.E4
+C    DY2/DT = PAR(1)*Y1 - PAR(2)*Y2*Y3 - PAR(3)*Y2**2 ; PAR(3) = 3.E7
+C    DY3/DT = PAR(3)*Y2**2
+C ON THE INTERVAL FROM T = 0.0 TO T = 4.E10, WITH INITIAL CONDITIONS
+C Y1 = 1.0, Y2 = Y3 = 0, AND S(I,J) = 0, I = 1,3, J = 1,3.
+C THE PROBLEM IS STIFF.
+C
+C THE FOLLOWING CODING KppSolveS THIS PROBLEM WITH ODESSA, USING
+C MF = 21 AND PRINTING RESULTS AT T = .4, 4., ..., 4.E10.
+C IT USES ITOL = 4 AND ATOL MUCH SMALLER FOR Y2 THAN Y1 OR Y3,
+C BECAUSE Y2 HAS MUCH SMALLER VALUES. LESS STRINGENT TOLERANCES
+C ARE ASSIGNED FOR THE SENSITIVITIES TO ACHIEVE GREATER EFFICIENCY.
+C AT THE END OF THE RUN, STATISTICAL QUANTITIES OF INTEREST ARE
+C PRINTED (SEE OPTIONAL OUTPUTS IN THE FULL DESCRIPTION BELOW).
+C
+C      DOUBLE PRECISION ATOL, RWORK, RTOL, T, TOUT, Y, PAR
+C      EXTERNAL FEX, JEX, DFEX
+C      DIMENSION Y(3,4), PAR(3), ATOL(3,4), RTOL(3,4), RWORK(130),
+C     1  IWORK(27), NEQ(2), IOPT(3)
+C      N = 3
+C      NPAR = 3
+C      NEQ(1) = N
+C      NEQ(2) = NPAR
+C      NSV = NPAR+1
+C      DO 10 I = 1,N
+C      DO 10 J = 1,NSV
+C 10     Y(I,J) = 0.0D0
+C      Y(1,1) = 1.0D0
+C      PAR(1) = 0.04D0
+C      PAR(2) = 1.0D4
+C      PAR(3) = 3.0D7
+C      T = 0.D0
+C      TOUT = .4D0
+C      ITOL = 4
+C      ATOL(1,1) = 1.D-6
+C      ATOL(2,1) = 1.D-10
+C      ATOL(3,1) = 1.D-6
+C      DO 20 I = 1,N
+C        RTOL(I,1) = 1.D-4
+C        DO 15 J = 2,NSV
+C          RTOL(I,J) = 1.D-3
+C 15       ATOL(I,J) = 1.D2 * ATOL(I,1)
+C 20   CONTINUE
+C      ITASK = 1
+C      ISTATE = 1
+C      IOPT(1) = 0
+C      IOPT(2) = 1
+C      IOPT(3) = 1
+C      LRW = 130
+C      LIW = 27
+C      MF = 21
+C      DO 60 IOUT = 1,12
+C        CALL ODESSA(FEX,DFEX,NEQ,Y,PAR,T,TOUT,ITOL,RTOL,ATOL,
+C     1    ITASK,ISTATE, IOPT,RWORK,LRW,IWORK,LIW,JEX,MF)
+C        WRITE(6,30)T,Y(1,1),Y(2,1),Y(3,1)
+C 30     FORMAT(1X,7H AT T =,E12.4,6H   Y =,3E14.6)
+C        DO 50 J = 2,NSV
+C          JPAR = J-1
+C          WRITE(6,40)JPAR,Y(1,J),Y(2,J),Y(3,J)
+C 40       FORMAT(20X,2HS(,I1,3H) =,3E14.6)
+C 50     CONTINUE
+C        IF (ISTATE .LT. 0) GO TO 80
+C 60     TOUT = TOUT*10.D0
+C      WRITE(6,70)IWORK(11),IWORK(12),IWORK(13),IWORK(19)
+C 70   FORMAT(1X,/,12H NO. STEPS =,I4,11H  NO. F-S =,I4,11H  NO. J-S =,
+C     1  I4,12H  NO. DF-S =,I4)
+C      STOP
+C 80   WRITE(6,90)ISTATE
+C 90   FORMAT(///22H ERROR HALT.. ISTATE =,I3)
+C      STOP
+C      END
+C
+C      SUBROUTINE FEX (NEQ, T, Y, PAR, YDOT)
+C      DOUBLE PRECISION T, Y, YDOT, PAR
+C      DIMENSION Y(3), YDOT(3), PAR(3)
+C      YDOT(1) = -PAR(1)*Y(1) + PAR(2)*Y(2)*Y(3)
+C      YDOT(3) = PAR(3)*Y(2)*Y(2)
+C      YDOT(2) = -YDOT(1) - YDOT(3)
+C      RETURN
+C      END
+C
+C      SUBROUTINE JEX (NEQ, T, Y, PAR, ML, MU, PD, NRPD)
+C      DOUBLE PRECISION PD, T, Y, PAR
+C      DIMENSION Y(3), PD(NRPD,3), PAR(3)
+C      PD(1,1) = -PAR(1)
+C      PD(1,2) = PAR(2)*Y(3)
+C      PD(1,3) = PAR(2)*Y(2)
+C      PD(2,1) = PAR(1)
+C      PD(2,3) = -PD(1,3)
+C      PD(3,2) = 2.D0*PAR(3)*Y(2)
+C      PD(2,2) = -PD(1,2) - PD(3,2)
+C      RETURN
+C      END
+C
+C      SUBROUTINE DFEX (NEQ, T, Y, PAR, DFDP, JPAR)
+C      DOUBLE PRECISION T, Y, PAR, DFDP
+C      DIMENSION Y(3), PAR(3), DFDP(3)
+C      GO TO (1,2,3), JPAR
+C  1   DFDP(1) = -Y(1)
+C      DFDP(2) = Y(1)
+C      RETURN
+C  2   DFDP(1) = Y(2)*Y(3)
+C      DFDP(2) = -Y(2)*Y(3)
+C      RETURN
+C  3   DFDP(2) = -Y(2)*Y(2)
+C      DFDP(3) = Y(2)*Y(2)
+C      RETURN
+C      END
+C
+C  THE OUTPUT OF THIS PROGRAM (ON A DATA GENERAL MV-8000 IN
+C  DOUBLE PRECISION IS AS FOLLOWS:
+C
+C AT T =   .4000E+00   Y =   .985173E+00   .338641E-04   .147930E-01
+C                   S(1) =  -.355914E+00   .390261E-03   .355524E+00
+C                   S(2) =   .955150E-07  -.213065E-09  -.953019E-07
+C                   S(3) =  -.158466E-10  -.529012E-12   .163756E-10
+C AT T =   .4000E+01   Y =   .905516E+00   .224044E-04   .944615E-01
+C                   S(1) =  -.187621E+01   .179197E-03   .187603E+01
+C                   S(2) =   .296093E-05  -.583104E-09  -.296034E-05
+C                   S(3) =  -.493267E-09  -.276246E-12   .493544E-09
+C AT T =   .4000E+02   Y =   .715848E+00   .918628E-05   .284143E+00
+C                   S(1) =  -.424730E+01   .459360E-04   .424726E+01
+C                   S(2) =   .137294E-04  -.235815E-09  -.137291E-04
+C                   S(3) =  -.228818E-08  -.113803E-12   .228829E-08
+C AT T =   .4000E+03   Y =   .450526E+00   .322299E-05   .549471E+00
+C                   S(1) =  -.595837E+01   .354310E-05   .595836E+01
+C                   S(2) =   .227380E-04  -.226041E-10  -.227380E-04
+C                   S(3) =  -.378971E-08  -.499501E-13   .378976E-08
+C AT T =   .4000E+04   Y =   .183185E+00   .894131E-06   .816814E+00
+C                   S(1) =  -.475006E+01  -.599504E-05   .475007E+01
+C                   S(2) =   .188089E-04   .231330E-10  -.188089E-04
+C                   S(3) =  -.313478E-08  -.187575E-13   .313480E-08
+C AT T =   .4000E+05   Y =   .389733E-01   .162133E-06   .961027E+00
+C                   S(1) =  -.157477E+01  -.276199E-05   .157477E+01
+C                   S(2) =   .628668E-05   .110026E-10  -.628670E-05
+C                   S(3) =  -.104776E-08  -.453588E-14   .104776E-08
+C AT T =   .4000E+06   Y =   .493609E-02   .198411E-07   .995064E+00
+C                   S(1) =  -.236244E+00  -.458262E-06   .236244E+00
+C                   S(2) =   .944669E-06   .183193E-11  -.944671E-06
+C                   S(3) =  -.157441E-09  -.635990E-15   .157442E-09
+C AT T =   .4000E+07   Y =   .516087E-03   .206540E-08   .999484E+00
+C                   S(1) =  -.256277E-01  -.509808E-07   .256278E-01
+C                   S(2) =   .102506E-06   .203905E-12  -.102506E-06
+C                   S(3) =  -.170825E-10  -.684002E-16   .170826E-10
+C AT T =   .4000E+08   Y =   .519314E-04   .207736E-09   .999948E+00
+C                   S(1) =  -.259316E-02  -.518029E-08   .259316E-02
+C                   S(2) =   .103726E-07   .207209E-13  -.103726E-07
+C                   S(3) =  -.172845E-11  -.691450E-17   .172845E-11
+C AT T =   .4000E+09   Y =   .544710E-05   .217885E-10   .999995E+00
+C                   S(1) =  -.271637E-03  -.541849E-09   .271638E-03
+C                   S(2) =   .108655E-08   .216739E-14  -.108655E-08
+C                   S(3) =  -.180902E-12  -.723615E-18   .180902E-12
+C AT T =   .4000E+10   Y =   .446748E-06   .178699E-11   .100000E+01
+C                   S(1) =  -.322322E-04  -.842541E-10   .322323E-04
+C                   S(2) =   .128929E-09   .337016E-15  -.128929E-09
+C                   S(3) =  -.209715E-13  -.838859E-19   .209715E-13
+C AT T =   .4000E+11   Y =  -.363960E-07  -.145584E-12   .100000E+01
+C                   S(1) =  -.164109E-06  -.429604E-11   .164113E-06
+C                   S(2) =   .656436E-12   .171842E-16  -.656451E-12
+C                   S(3) =  -.689361E-15  -.275745E-20   .689363E-15
+C
+C NO. STEPS = 340  NO. F-S = 412  NO. J-S = 343  NO. DF-S =1023
+C----------------------------------------------------------------------
+C FULL DESCRIPTION OF USER INTERFACE TO ODESSA.
+C
+C THE USER INTERFACE TO ODESSA CONSISTS OF THE FOLLOWING PARTS.
+C
+C I.  THE CALL SEQUENCE TO SUBROUTINE ODESSA, WHICH IS A DRIVER
+C     ROUTINE FOR THE KppSolveR.  THIS INCLUDES DESCRIPTIONS OF BOTH
+C     THE CALL SEQUENCE ARGUMENTS AND OF USER-SUPPLIED ROUTINES.
+C     FOLLOWING THESE DESCRIPTIONS IS A DESCRIPTION OF
+C     OPTIONAL INPUTS AVAILABLE THROUGH THE CALL SEQUENCE, AND THEN
+C     A DESCRIPTION OF OPTIONAL OUTPUTS (IN THE WORK ARRAYS).
+C
+C II.  DESCRIPTIONS OF OTHER ROUTINES IN THE ODESSA PACKAGE THAT MAY
+C     BE (OPTIONALLY) CALLED BY THE USER.  THESE PROVIDE THE ABILITY
+C     TO ALTER ERROR MESSAGE HANDLING, SAVE AND RESTORE THE INTERNAL
+C     COMMON, AND OBTAIN SPECIFIED DERIVATIVES OF THE SOLUTION Y(T).
+C
+C III. DESCRIPTIONS OF COMMON BLOCKS TO BE DECLARED IN OVERLAY
+C     OR SIMILAR ENVIRONMENTS, OR TO BE SAVED WHEN DOING AN INTERRUPT
+C     OF THE PROBLEM AND CONTINUED SOLUTION LATER.
+C
+C IV.  DESCRIPTION OF TWO SUBROUTINES IN THE ODESSA PACKAGE, EITHER OF
+C     WHICH THE USER MAY REPLACE WITH HIS OWN VERSION, IF DESIRED.
+C     THESE RELATE TO THE MEASUREMENT OF ERRORS.
+C
+C V.   GENERAL REMARKS WHICH HIGHLIGHT DIFFERENCES BETWEEN THE LSODE
+C     PACKAGE AND THE ODESSA PACKAGE.
+C----------------------------------------------------------------------
+C PART I.  CALL SEQUENCE.
+C
+C THE CALL SEQUENCE PARAMETERS USED FOR INPUT ONLY ARE..
+C    F, DF, NEQ, PAR, TOUT, ITOL, RTOL, ATOL, ITASK, IOPT, LRW, LIW,
+C    JAC, MF,
+C AND THOSE USED FOR BOTH INPUT AND OUTPUT ARE
+C    Y, T, ISTATE.
+C THE WORK ARRAYS RWORK AND IWORK ARE ALSO USED FOR CONDITIONAL AND
+C OPTIONAL INPUTS AND OPTIONAL OUTPUTS.  (THE TERM OUTPUT HERE REFERS
+C TO THE RETURN FROM SUBROUTINE ODESSA TO THE USER-S CALLING PROGRAM.)
+C
+C THE LEGALITY OF INPUT PARAMETERS WILL BE THOROUGHLY CHECKED ON THE
+C INITIAL CALL FOR THE PROBLEM, BUT NOT CHECKED THEREAFTER UNLESS A
+C CHANGE IN INPUT PARAMETERS IS FLAGGED BY ISTATE = 3 ON INPUT.
+C
+C THE DESCRIPTIONS OF THE CALL ARGUMENTS ARE AS FOLLOWS.
+C
+C F     = THE NAME OF THE USER-SUPPLIED SUBROUTINE DEFINING THE
+C         ODE MODEL. THIS SYSTEM MUST BE PUT IN THE FIRST-ORDER
+C         FORM DY/DT = F(Y,T;P), WHERE F IS A VECTOR-VALUED FUNCTION
+C         OF THE SCALAR T AND VECTORS Y, AND PAR.  SUBROUTINE F IS TO
+C         COMPUTE THE FUNCTION F.  IT IS TO HAVE THE FORM..
+C              SUBROUTINE F (NEQ, T, Y, PAR, YDOT)
+C              DOUBLE PRECISION T, Y, PAR, YDOT
+C              DIMENSION Y(1), PAR(1), YDOT(1)
+C         WHERE NEQ, T, Y, AND PAR ARE INPUT, AND YDOT = F(Y,T;P)
+C         IS OUTPUT.  Y AND YDOT ARE ARRAYS OF LENGTH N (= NEQ(1)).
+C         (IN THE DIMENSION STATEMENT ABOVE, 1 IS A DUMMY
+C         DIMENSION.. IT CAN BE REPLACED BY ANY VALUE.)
+C         F SHOULD NOT ALTER ARRAY Y, OR PAR(1),...,PAR(NPAR).
+C         F MUST BE DECLARED EXTERNAL IN THE CALLING PROGRAM.
+C
+C         SUBROUTINE F MAY ACCESS USER-DEFINED QUANTITIES IN
+C         NEQ(2),... AND PAR(NPAR+1),... IF NEQ IS AN ARRAY
+C         (DIMENSIONED IN F) AND PAR HAS LENGTH EXCEEDING NPAR.
+C         SEE THE DESCRIPTIONS OF NEQ AND PAR BELOW.
+C
+C DF    = THE NAME OF THE USER-SUPPLIED ROUTINE (IDF = 1) TO COMPUTE
+C         THE INHOMOGENEITY MATRIX, DF/DP, AS A FUNCTION OF THE SCALAR
+C         T, AND THE VECTORS Y, AND PAR. IT IS TO HAVE THE FORM
+C                SUBROUTINE DF (NEQ, T, Y, PAR, DFDP, JPAR)
+C                DOUBLE PRECISION T, Y, PAR, DFDP
+C                DIMENSION Y(1), PAR(1), DFDP(1)
+C                GO TO (1,2,...,NPAR) JPAR
+C            1   DFDP(1) = DF(1)/DP(1)
+C                .
+C                DFDP(I) = DF(I)/DP(1)
+C                .
+C                DFDP(N) = DF(N)/DP(1)
+C                RETURN
+C            2   DFDP(1) = DF(1)/DP(2)
+C                .
+C                DFDP(I) = DF(I)/DP(2)
+C                .
+C                DFDP(N) = DF(N)/DP(2)
+C                .
+C                RETURN
+C            .   .
+C            .   .
+C          NPAR  DFDP(1) = DF(1)/DP(NPAR)
+C                .
+C                DFDP(I) = DF(I)/DP(NPAR)
+C                .
+C                DFDP(N) = DF(N)/DP(NPAR)
+C                RETURN
+C                END
+C         WHERE NEQ, T, Y, PAR, AND JPAR ARE INPUT AND THE VECTOR
+C         DFDP(*,JPAR) IS TO BE LOADED WITH THE PARTIAL DERIVATIVES
+C         DF(Y,T;PAR)/DP(JPAR) ON OUTPUT. ONLY NONZERO ELEMENTS NEED
+C         BE LOADED.  T, Y, AND PAR HAVE THE SAME MEANING AS IN
+C         SUBROUTINE F. (IN THE DIMENSION STATEMENT ABOVE, 1 IS A DUMMY
+C         DIMENSION.. IT CAN BE REPLACED BY ANY VALUE).
+C
+C         DFDP(*,JPAR) IS PRESET TO ZERO BY THE KppSolveR, SO THAT ONLY
+C         THE NONZERO ELEMENTS NEED BE LOADED BY DF. SUBROUTINE DF
+C         MUST BE DECLARED EXTERNAL IN THE CALLING PROGRAM IF USED.
+C         IF IDF = 0 (OR ISOPT = 0), A DUMMY ARGUMENT CAN BE USED.
+C
+C         SUBROUTINE DF MAY ACCESS USER-DEFINED QUANTITIES IN
+C         NEQ(2),... AND PAR(NPAR+1),... IF NEQ IS AN ARRAY
+C         (DIMENSIONED IN DF) AND PAR HAS A LENGTH EXCEEDING NPAR.
+C         SEE THE DESCRIPTIONS OF NEQ AND PAR (BELOW).
+C
+C NEQ   = THE SIZE OF THE ODE SYSTEM (NUMBER OF FIRST ORDER ORDINARY
+C         DIFFERENTIAL EQUATIONS (N) IN THE MODEL).  USED ONLY FOR
+C         INPUT.  NEQ MAY NOT BE CHANGED DURING THE PROBLEM.
+C
+C         FOR ISOPT = 0, NEQ IS NORMALLY A SCALAR.  HOWEVER, NEQ MAY
+C         BE AN ARRAY, WITH NEQ(1) SET TO THE SYSTEM SIZE (N), IN WHICH
+C         CASE THE ODESSA PACKAGE ACCESSES ONLY NEQ(1). HOWEVER,
+C         THIS PARAMETER IS PASSED AS THE NEQ ARGUMENT IN ALL CALLS
+C         TO F, DF, AND JAC.  HENCE, IF IT IS AN ARRAY, LOCATIONS
+C         NEQ(2),... MAY BE USED TO STORE OTHER INTEGER DATA AND PASS
+C         IT TO F, DF, AND/OR JAC.  FOR ISOPT = 1, NPAR MUST BE LOADED
+C         INTO NEQ(2), AND IS NOT ALLOWED TO CHANGE DURING THE PROBLEM.
+C         IN THESE CASES, SUBROUTINES F, DF, AND/OR JAC MUST INCLUDE
+C         NEQ IN A DIMENSION STATEMENT.
+C
+C Y     = A REAL ARRAY FOR THE VECTOR OF DEPENDENT VARIABLES, OF
+C         DIMENSION (N) BY (NPAR+1).  USED FOR BOTH INPUT AND
+C         OUTPUT ON THE FIRST CALL (ISTATE = 1), AND ONLY FOR
+C         OUTPUT ON OTHER CALLS. ON THE FIRST CALL, Y MUST CONTAIN
+C         THE VECTORS OF INITIAL VALUES.  ON OUTPUT, Y CONTAINS THE
+C         COMPUTED SOLUTION VECTORS, EVALUATED AT T.
+C
+C PAR   = A REAL ARRAY FOR THE VECTOR OF CONSTANT MODEL PARAMETERS
+C         OF INTEREST IN THE SENSITIVITY ANALYSIS, OF LENGTH NPAR
+C         OR MORE. PAR IS PASSED AS AN ARGUMENT IN ALL CALLS TO F,
+C         DF, AND JAC. HENCE LOCATIONS PAR(NPAR+1),... MAY BE USED
+C         TO STORE OTHER REAL DATA AND PASS IT TO F, DF, AND/OR JAC.
+C         LOCATIONS PAR(1),...,PAR(NPAR) ARE USED AS INPUT ONLY,
+C         AND MUST NOT BE CHANGED DURING THE PROBLEM.
+C
+C T     = THE INDEPENDENT VARIABLE.  ON INPUT, T IS USED ONLY ON THE
+C         FIRST CALL, AS THE INITIAL POINT OF THE INTEGRATION.
+C         ON OUTPUT, AFTER EACH CALL, T IS THE VALUE AT WHICH A
+C         COMPUTED SOLUTION Y IS EVALUATED (USUALLY THE SAME AS TOUT).
+C         ON AN ERROR RETURN, T IS THE FARTHEST POINT REACHED.
+C
+C TOUT  = THE NEXT VALUE OF T AT WHICH A COMPUTED SOLUTION IS DESIRED.
+C         USED ONLY FOR INPUT.
+C
+C         WHEN STARTING THE PROBLEM (ISTATE = 1), TOUT MAY BE EQUAL
+C         TO T FOR ONE CALL, THEN SHOULD .NE. T FOR THE NEXT CALL.
+C         FOR THE INITIAL T, AN INPUT VALUE OF TOUT .NE. T IS USED
+C         IN ORDER TO DETERMINE THE DIRECTION OF THE INTEGRATION
+C         (I.E. THE ALGEBRAIC SIGN OF THE STEP SIZES) AND THE ROUGH
+C         SCALE OF THE PROBLEM.  INTEGRATION IN EITHER DIRECTION
+C         (FORWARD OR BACKWARD IN T) IS PERMITTED.
+C
+C         IF ITASK = 2 OR 5 (ONE-STEP MODES), TOUT IS IGNORED AFTER
+C         THE FIRST CALL (I.E. THE FIRST CALL WITH TOUT .NE. T).
+C         OTHERWISE, TOUT IS REQUIRED ON EVERY CALL.
+C
+C         IF ITASK = 1, 3, OR 4, THE VALUES OF TOUT NEED NOT BE
+C         MONOTONE, BUT A VALUE OF TOUT WHICH BACKS UP IS LIMITED
+C         TO THE CURRENT INTERNAL T INTERVAL, WHOSE ENDPOINTS ARE
+C         TCUR - HU AND TCUR (SEE OPTIONAL OUTPUTS, BELOW, FOR
+C         TCUR AND HU).
+C
+C ITOL  = AN INDICATOR FOR THE TYPE OF ERROR CONTROL.  SEE
+C         DESCRIPTION BELOW UNDER ATOL.  USED ONLY FOR INPUT.
+C
+C RTOL  = A RELATIVE ERROR TOLERANCE PARAMETER, EITHER A SCALAR OR
+C         AN ARRAY OF SPACE (N) BY (NPAR+1).  SEE DESCRIPTION BELOW
+C         UNDER ATOL. INPUT ONLY.
+C
+C ATOL  = AN ABSOLUTE ERROR TOLERANCE PARAMETER, EITHER A SCALAR OR
+C         AN ARRAY OF SPACE (N) BY (NPAR+1).  INPUT ONLY.
+C
+C            THE INPUT PARAMETERS ITOL, RTOL, AND ATOL DETERMINE
+C         THE ERROR CONTROL PERFORMED BY THE KppSolveR.  THE KppSolveR WILL
+C         CONTROL THE VECTOR E = (E(I,J)) OF ESTIMATED LOCAL ERRORS
+C         IN Y, ACCORDING TO AN INEQUALITY OF THE FORM
+C                   RMS-NORM OF ( E(I,J)/EWT(I,J) )   .LE.   1,
+C         WHERE     EWT(I,J) = RTOL(I,J)*ABS(Y(I,J)) + ATOL(I,J),
+C         AND THE RMS-NORM (ROOT-MEAN-SQUARE NORM) HERE IS
+C         RMS-NORM(V) = SQRT ( (1/N) * SUM (V(I,J)**2) ); I =1,...,N.
+C         HERE EWT = (EWT(I,J)) IS A VECTOR OF WEIGHTS WHICH MUST
+C         ALWAYS BE POSITIVE, AND THE VALUES OF RTOL AND ATOL SHOULD
+C         ALL BE NON-NEGATIVE.  THE FOLLOWING TABLE GIVES THE TYPES
+C         (SCALAR/ARRAY) OF RTOL AND ATOL, AND THE CORRESPONDING FORM
+C         OF EWT(I,J).
+C
+C          ITOL   RTOL      ATOL           EWT(I,J)
+C           1    SCALAR    SCALAR   RTOL*ABS(Y(I,J)) + ATOL
+C           2    SCALAR    ARRAY    RTOL*ABS(Y(I,J)) + ATOL(I,J)
+C           3    ARRAY     SCALAR   RTOL(I,J)*ABS(Y(I,J)) + ATOL
+C           4    ARRAY     ARRAY    RTOL(I,J)*ABS(Y(I,J)) + ATOL(I,J)
+C
+C         WHEN EITHER OF THESE PARAMETERS IS A SCALAR, IT NEED NOT
+C         BE DIMENSIONED IN THE USER-S CALLING PROGRAM.
+C
+C         THE TOTAL NUMBER OF ERROR TEST FAILURES DUE TO THE SENSITIVITY
+C         ANALYSIS, AND WHICH REQUIRE AN INTEGRATION STEP TO BE
+C         REPEATED, ARE ACCUMULATED IN THE LAST NPAR+1 LOCATIONS OF THE
+C         INTEGER WORK ARRAY IWORK (SEE OPTIONAL OUTPUTS BELOW).
+C         THIS INFORMATION MAY BE OF VALUE IN DETERMINING APPROPRIATE
+C         ERROR TOLERANCES TO BE APPLIED TO THE SENSITIVITY FUNCTIONS.
+C
+C         IF NONE OF THE ABOVE CHOICES (WITH ITOL, RTOL, AND ATOL
+C         FIXED THROUGHOUT THE PROBLEM) IS SUITABLE, MORE GENERAL
+C         ERROR CONTROLS CAN BE OBTAINED BY SUBSTITUTING
+C         USER-SUPPLIED ROUTINES FOR THE SETTING OF EWT AND/OR FOR
+C         THE NORM CALCULATION.  SEE PART IV BELOW.
+C
+C         IF GLOBAL ERRORS ARE TO BE ESTIMATED BY MAKING A REPEATED
+C         RUN ON THE SAME PROBLEM WITH SMALLER TOLERANCES, THEN ALL
+C         COMPONENTS OF RTOL AND ATOL (I.E. OF EWT) SHOULD BE SCALED
+C         DOWN UNIFORMLY.
+C
+C ITASK  = AN INDEX SPECIFYING THE TASK TO BE PERFORMED.
+C         INPUT ONLY.  ITASK HAS THE FOLLOWING VALUES AND MEANINGS.
+C         1  MEANS NORMAL COMPUTATION OF OUTPUT VALUES OF Y(T) AT
+C            T = TOUT (BY OVERSHOOTING AND INTERPOLATING).
+C         2  MEANS TAKE ONE STEP ONLY AND RETURN.
+C         3  MEANS STOP AT THE FIRST INTERNAL MESH POINT AT OR
+C            BEYOND T = TOUT AND RETURN.
+C         4  MEANS NORMAL COMPUTATION OF OUTPUT VALUES OF Y(T) AT
+C            T = TOUT BUT WITHOUT OVERSHOOTING T = TCRIT.
+C            TCRIT MUST BE INPUT AS RWORK(1).  TCRIT MAY BE EQUAL TO
+C            OR BEYOND TOUT, BUT NOT BEHIND IT IN THE DIRECTION OF
+C            INTEGRATION.  THIS OPTION IS USEFUL IF THE PROBLEM
+C            HAS A SINGULARITY AT OR BEYOND T = TCRIT.
+C         5  MEANS TAKE ONE STEP, WITHOUT PASSING TCRIT, AND RETURN.
+C            TCRIT MUST BE INPUT AS RWORK(1).
+C
+C         NOTE..  IF ITASK = 4 OR 5 AND THE KppSolveR REACHES TCRIT
+C         (WITHIN ROUNDOFF), IT WILL RETURN T = TCRIT (EXACTLY) TO
+C         INDICATE THIS (UNLESS ITASK = 4 AND TOUT COMES BEFORE TCRIT,
+C         IN WHICH CASE ANSWERS AT T = TOUT ARE RETURNED FIRST).
+C
+C ISTATE = AN INDEX USED FOR INPUT AND OUTPUT TO SPECIFY THE
+C         THE STATE OF THE CALCULATION.
+C
+C         ON INPUT, THE VALUES OF ISTATE ARE AS FOLLOWS.
+C         1  MEANS THIS IS THE FIRST CALL FOR THE PROBLEM
+C            (INITIALIZATIONS WILL BE DONE).  SEE NOTE BELOW.
+C         2  MEANS THIS IS NOT THE FIRST CALL, AND THE CALCULATION
+C            IS TO CONTINUE NORMALLY, WITH NO CHANGE IN ANY INPUT
+C            PARAMETERS EXCEPT POSSIBLY TOUT AND ITASK.
+C            (IF ITOL, RTOL, AND/OR ATOL ARE CHANGED BETWEEN CALLS
+C            WITH ISTATE = 2, THE NEW VALUES WILL BE USED BUT NOT
+C            TESTED FOR LEGALITY.)
+C         3  MEANS THIS IS NOT THE FIRST CALL, AND THE
+C            CALCULATION IS TO CONTINUE NORMALLY, BUT WITH
+C            A CHANGE IN INPUT PARAMETERS OTHER THAN
+C            TOUT AND ITASK.  CHANGES ARE ALLOWED IN
+C            ITOL, RTOL, ATOL, IOPT, LRW, LIW, MF, ML, MU,
+C            AND ANY OF THE OPTIONAL INPUTS EXCEPT H0.
+C            (SEE IWORK DESCRIPTION FOR ML AND MU.)
+C         NOTE..  A PRELIMINARY CALL WITH TOUT = T IS NOT COUNTED
+C         AS A FIRST CALL HERE, AS NO INITIALIZATION OR CHECKING OF
+C         INPUT IS DONE.  (SUCH A CALL IS SOMETIMES USEFUL FOR THE
+C         PURPOSE OF OUTPUTTING THE INITIAL CONDITIONS.)
+C         THUS THE FIRST CALL FOR WHICH TOUT .NE. T REQUIRES
+C         ISTATE = 1 ON INPUT.
+C
+C         ON OUTPUT, ISTATE HAS THE FOLLOWING VALUES AND MEANINGS.
+C          1  MEANS NOTHING WAS DONE, AS TOUT WAS EQUAL TO T WITH
+C             ISTATE = 1 ON INPUT.  (HOWEVER, AN INTERNAL COUNTER WAS
+C             SET TO DETECT AND PREVENT REPEATED CALLS OF THIS TYPE.)
+C          2  MEANS THE INTEGRATION WAS PERFORMED SUCCESSFULLY.
+C         -1  MEANS AN EXCESSIVE AMOUNT OF WORK (MORE THAN MXSTEP
+C             STEPS) WAS DONE ON THIS CALL, BEFORE COMPLETING THE
+C             REQUESTED TASK, BUT THE INTEGRATION WAS OTHERWISE
+C             SUCCESSFUL AS FAR AS T.  (MXSTEP IS AN OPTIONAL INPUT
+C             AND IS NORMALLY 500.)  TO CONTINUE, THE USER MAY
+C             SIMPLY RESET ISTATE TO A VALUE .GT. 1 AND CALL AGAIN
+C             (THE EXCESS WORK STEP COUNTER WILL BE RESET TO 0).
+C             IN ADDITION, THE USER MAY INCREASE MXSTEP TO AVOID
+C             THIS ERROR RETURN (SEE BELOW ON OPTIONAL INPUTS).
+C         -2  MEANS TOO MUCH ACCURACY WAS REQUESTED FOR THE PRECISION
+C             OF THE MACHINE BEING USED.  THIS WAS DETECTED BEFORE
+C             COMPLETING THE REQUESTED TASK, BUT THE INTEGRATION
+C             WAS SUCCESSFUL AS FAR AS T.  TO CONTINUE, THE TOLERANCE
+C             PARAMETERS MUST BE RESET, AND ISTATE MUST BE SET
+C             TO 3.  THE OPTIONAL OUTPUT TOLSF MAY BE USED FOR THIS
+C             PURPOSE.  (NOTE.. IF THIS CONDITION IS DETECTED BEFORE
+C             TAKING ANY STEPS, THEN AN ILLEGAL INPUT RETURN
+C             (ISTATE = -3) OCCURS INSTEAD.)
+C         -3  MEANS ILLEGAL INPUT WAS DETECTED, BEFORE TAKING ANY
+C             INTEGRATION STEPS.  SEE WRITTEN MESSAGE FOR DETAILS.
+C             NOTE..  IF THE KppSolveR DETECTS AN INFINITE LOOP OF CALLS
+C             TO THE KppSolveR WITH ILLEGAL INPUT, IT WILL CAUSE
+C             THE RUN TO STOP.
+C         -4  MEANS THERE WERE REPEATED ERROR TEST FAILURES ON
+C             ONE ATTEMPTED STEP, BEFORE COMPLETING THE REQUESTED
+C             TASK, BUT THE INTEGRATION WAS SUCCESSFUL AS FAR AS T.
+C             THE PROBLEM MAY HAVE A SINGULARITY, OR THE INPUT
+C             MAY BE INAPPROPRIATE.
+C         -5  MEANS THERE WERE REPEATED CONVERGENCE TEST FAILURES ON
+C             ONE ATTEMPTED STEP, BEFORE COMPLETING THE REQUESTED
+C             TASK, BUT THE INTEGRATION WAS SUCCESSFUL AS FAR AS T.
+C             THIS MAY BE CAUSED BY AN INACCURATE JACOBIAN MATRIX,
+C             IF ONE IS BEING USED.
+C         -6  MEANS EWT(I,J) BECAME ZERO FOR SOME I,J DURING THE
+C             INTEGRATION.  PURE RELATIVE ERROR CONTROL (ATOL(I,J)=0.0)
+C             WAS REQUESTED ON A VARIABLE WHICH HAS NOW VANISHED.
+C             THE INTEGRATION WAS SUCCESSFUL AS FAR AS T.
+C
+C         NOTE..  SINCE THE NORMAL OUTPUT VALUE OF ISTATE IS 2,
+C         IT DOES NOT NEED TO BE RESET FOR NORMAL CONTINUATION.
+C         ALSO, SINCE A NEGATIVE INPUT VALUE OF ISTATE WILL BE
+C         REGARDED AS ILLEGAL, A NEGATIVE OUTPUT VALUE REQUIRES THE
+C         USER TO CHANGE IT, AND POSSIBLY OTHER INPUTS, BEFORE
+C         CALLING THE KppSolveR AGAIN.
+C
+C IOPT  = AN INTEGER ARRAY FLAG TO SPECIFY WHETHER OR NOT ANY OPTIONAL
+C         INPUTS ARE BEING USED ON THIS CALL.  INPUT ONLY.
+C         THE OPTIONAL INPUTS ARE LISTED SEPARATELY BELOW.
+C         IOPT(1) = 0 MEANS NO OPTIONAL INPUTS FOR THE KppSolveR WILL BE
+C                   USED. DEFAULT VALUES WILL BE USED IN ALL CASES.
+C                 = 1 MEANS ONE OR MORE OPTIONAL INPUTS FOR THE
+C                   KppSolveR ARE BEING USED.
+C                   NOTE : IOPT(1) IS INDEPENDENT OF ISOPT AND IDF.
+C         IOPT(2) = 0 MEANS NO SENSITIVITY ANALYSIS WILL BE PERFORMED.
+C                 = 1 MEANS A SENSITIVITY ANALYSIS WILL BE PERFORMED.
+C                   NOTE : IOPT(2) IS RENAMED TO ISOPT IN ODESSA.
+C                 = 0 MEANS DF/DP WILL BE CALCULATED BY FINITE
+C                   DIFFERENCE WITHIN ODESSA.
+C         IOPT(3) = 1 MEANS DF/DP WILL BE CALCULATED BY A USER-SUPPLIED
+C                   ROUTINE.
+C                   NOTE : IOPT(3) IS RENAMED TO IDF IN ODESSA.
+C                          IF IDF = 1, THE USER MUST SUPPLY A
+C                          SUBROUTINE DF (THE NAME IS ARBITRARY) AS
+C                          DESCRIBED BELOW UNDER DF. FOR IDF = 0,
+C                          A DUMMY ARGUMENT CAN BE USED.
+C
+C RWORK  = A REAL WORKING ARRAY (DOUBLE PRECISION).
+C         FOR ISOPT = 0, THE LENGTH OF RWORK MUST BE AT LEAST..
+C            20 + NYH*(MAXORD + 1) + 3*NEQ + LWM
+C         FOR ISOPT = 1, THE LENGTH OF RWORK MUST BE AT LEAST..
+C            20 + NYH*(MAXORD + 1) + 2*NYH + LWM + N
+C         WHERE..
+C         NYH    = THE TOTAL NUMBER OF DEPENDENT VARIABLES;
+C                  (= N IF ISOPT = 0, AND N*(NPAR+1) IF ISOPT = 1).
+C         MAXORD = 12 (IF METH = 1) OR 5 (IF METH = 2) (UNLESS A
+C                  SMALLER VALUE IS GIVEN AS AN OPTIONAL INPUT),
+C         LWM    = 0                  IF MITER = 0,
+C         LWM    = N**2 + 2           IF MITER IS 1 OR 2,
+C         LWM    = N + 2              IF MITER = 3, AND
+C         LWM    = (2*ML+MU+1)*N + 2  IF MITER IS 4 OR 5.
+C         (SEE THE MF DESCRIPTION FOR METH AND MITER.)
+C
+C         THE FIRST 20 WORDS OF RWORK ARE RESERVED FOR CONDITIONAL
+C         AND OPTIONAL INPUTS AND OPTIONAL OUTPUTS.
+C
+C         THE FOLLOWING WORD IN RWORK IS A CONDITIONAL INPUT..
+C           RWORK(1) = TCRIT = CRITICAL VALUE OF T WHICH THE KppSolveR
+C                      IS NOT TO OVERSHOOT.  REQUIRED IF ITASK IS
+C                      4 OR 5, AND IGNORED OTHERWISE.  (SEE ITASK.)
+C
+C LRW   = THE LENGTH OF THE ARRAY RWORK, AS DECLARED BY THE USER.
+C         (THIS WILL BE CHECKED BY THE KppSolveR.)
+C
+C IWORK  = AN INTEGER WORK ARRAY. THE LENGTH MUST BE AT LEAST..
+C            20      IF MITER = 0 OR 3 (MF = 10, 13, 20, 23), OR
+C            20 + N  OTHERWISE (MF = 11, 12, 14, 15, 21, 22, 24, 25).
+C          FOR ISOPT = 0, OR..
+C            21 + N + NPAR
+C          FOR ISOPT = 1.
+C         THE FIRST FEW WORDS OF IWORK ARE USED FOR CONDITIONAL AND
+C         OPTIONAL INPUTS AND OPTIONAL OUTPUTS.
+C
+C         THE FOLLOWING 2 WORDS IN IWORK ARE CONDITIONAL INPUTS..
+C           IWORK(1) = ML     THESE ARE THE LOWER AND UPPER
+C           IWORK(2) = MU     HALF-BANDWIDTHS, RESPECTIVELY, OF THE
+C                      BANDED JACOBIAN, EXCLUDING THE MAIN DIAGONAL.
+C                      THE BAND IS DEFINED BY THE MATRIX LOCATIONS
+C                      (I,J) WITH I-ML .LE. J .LE. I+MU.  ML AND MU
+C                      MUST SATISFY  0 .LE.  ML,MU  .LE. NEQ-1.
+C                      THESE ARE REQUIRED IF MITER IS 4 OR 5, AND
+C                      IGNORED OTHERWISE.  ML AND MU MAY IN FACT BE
+C                      THE BAND PARAMETERS FOR A MATRIX TO WHICH
+C                      DF/DY IS ONLY APPROXIMATELY EQUAL.
+*
+C
+C LIW   = THE LENGTH OF THE ARRAY IWORK, AS DECLARED BY THE USER.
+C         (THIS WILL BE CHECKED BY THE KppSolveR.)
+C
+C NOTE..  THE WORK ARRAYS MUST NOT BE ALTERED BETWEEN CALLS TO ODESSA
+C FOR THE SAME PROBLEM, EXCEPT POSSIBLY FOR THE CONDITIONAL AND
+C OPTIONAL INPUTS, AND EXCEPT FOR THE LAST 2*NYH + N WORDS OF RWORK.
+C THE LATTER SPACE IS USED FOR INTERNAL SCRATCH SPACE, AND SO IS
+C AVAILABLE FOR USE BY THE USER OUTSIDE ODESSA BETWEEN CALLS, IF
+C DESIRED (BUT NOT FOR USE BY F, DF, OR JAC).
+C
+C JAC   = THE NAME OF THE USER-SUPPLIED ROUTINE (MITER = 1 OR 4) TO
+C         COMPUTE THE JACOBIAN MATRIX, DF/DY, AS A FUNCTION OF THE
+C         SCALAR T AND THE VECTORS Y, AND PAR.  IT IS TO HAVE THE FORM
+C              SUBROUTINE JAC (NEQ, T, Y, PAR, ML, MU, PD, NROWPD)
+C              DOUBLE PRECISION T, Y, PAR, PD
+C              DIMENSION Y(1), PAR(1), PD(NROWPD,1)
+C         WHERE NEQ, T, Y, PAR, ML, MU, AND NROWPD ARE INPUT AND THE
+C         ARRAY PD IS TO BE LOADED WITH PARTIAL DERIVATIVES (ELEMENTS
+C         OF THE JACOBIAN MATRIX) ON OUTPUT.  PD MUST BE GIVEN A FIRST
+C         DIMENSION OF NROWPD.  T, Y, AND PAR HAVE THE SAME MEANING AS
+C         IN SUBROUTINE F.  (IN THE DIMENSION STATEMENT ABOVE, 1 IS A
+C         DUMMY DIMENSION.. IT CAN BE REPLACED BY ANY VALUE.)
+C              IN THE FULL MATRIX CASE (MITER = 1), ML AND MU ARE
+C         IGNORED, AND THE JACOBIAN IS TO BE LOADED INTO PD IN
+C         COLUMNWISE MANNER, WITH DF(I)/DY(J) LOADED INTO PD(I,J).
+C              IN THE BAND MATRIX CASE (MITER = 4), THE ELEMENTS
+C         WITHIN THE BAND ARE TO BE LOADED INTO PD IN COLUMNWISE
+C         MANNER, WITH DIAGONAL LINES OF DF/DY LOADED INTO THE ROWS
+C         OF PD.  THUS DF(I)/DY(J) IS TO BE LOADED INTO PD(I-J+MU+1,J).
+C         ML AND MU ARE THE HALF-BANDWIDTH PARAMETERS (SEE IWORK).
+C         THE LOCATIONS IN PD IN THE TWO TRIANGULAR AREAS WHICH
+C         CORRESPOND TO NONEXISTENT MATRIX ELEMENTS CAN BE IGNORED
+C         OR LOADED ARBITRARILY, AS THEY ARE OVERWRITTEN BY ODESSA.
+C              PD IS PRESET TO ZERO BY THE KppSolveR, SO THAT ONLY THE
+C         NONZERO ELEMENTS NEED BE LOADED BY JAC. EACH CALL TO JAC IS
+C         PRECEDED BY A CALL TO F WITH THE SAME ARGUMENTS NEQ, T, Y,
+C         AND PAR. THUS TO GAIN SOME EFFICIENCY, INTERMEDIATE
+C         QUANTITIES SHARED BY BOTH CALCULATIONS MAY BE SAVED IN A
+C         USER COMMON BLOCK BY F AND NOT RECOMPUTED BY JAC, IF
+C         DESIRED.  ALSO, JAC MAY ALTER THE Y ARRAY, IF DESIRED.
+C         JAC MUST BE DECLARED EXTERNAL IN THE CALLING PROGRAM.
+C              SUBROUTINE JAC MAY ACCESS USER-DEFINED QUANTITIES IN
+C         NEQ(2),... AND PAR(NPAR+1),.... SEE THE DESCRIPTIONS OF
+C         NEQ (ABOVE) AND PAR (BELOW).
+C
+C MF    = THE METHOD FLAG.  USED ONLY FOR INPUT.  THE LEGAL VALUES OF
+C         MF ARE 10, 11, 12, 13, 14, 15, 20, 21, 22, 23, 24, AND 25.
+C         MF HAS DECIMAL DIGITS METH AND MITER.. MF = 10*METH + MITER.
+C         METH INDICATES THE BASIC LINEAR MULTISTEP METHOD..
+C           METH = 1 MEANS THE IMPLICIT ADAMS METHOD.
+*
+C           METH = 2 MEANS THE METHOD BASED ON BACKWARD
+C                    DIFFERENTIATION FORMULAS (BDF-S).
+C         MITER INDICATES THE CORRECTOR ITERATION METHOD..
+C           MITER = 0 MEANS FUNCTIONAL ITERATION (NO JACOBIAN MATRIX
+C                     IS INVOLVED).
+C           MITER = 1 MEANS CHORD ITERATION WITH A USER-SUPPLIED
+C                     FULL (NEQ BY NEQ) JACOBIAN.
+C           MITER = 2 MEANS CHORD ITERATION WITH AN INTERNALLY
+C                     GENERATED (DIFFERENCE QUOTIENT) FULL JACOBIAN
+C                     (USING NEQ EXTRA CALLS TO F PER DF/DY VALUE).
+C           MITER = 3 MEANS CHORD ITERATION WITH AN INTERNALLY
+C                     GENERATED DIAGONAL JACOBIAN APPROXIMATION.
+C                     (USING 1 EXTRA CALL TO F PER DF/DY EVALUATION).
+C           MITER = 4 MEANS CHORD ITERATION WITH A USER-SUPPLIED
+C                     BANDED JACOBIAN.
+C           MITER = 5 MEANS CHORD ITERATION WITH AN INTERNALLY
+C                     GENERATED BANDED JACOBIAN (USING ML+MU+1 EXTRA
+C                     CALLS TO F PER DF/DY EVALUATION).
+C         IF MITER = 1 OR 4, THE USER MUST SUPPLY A SUBROUTINE JAC
+C         (THE NAME IS ARBITRARY) AS DESCRIBED ABOVE UNDER JAC.
+C         FOR OTHER VALUES OF MITER, A DUMMY ARGUMENT CAN BE USED.
+C
+C         IF A SENSITIVITY ANLYSIS IS DESIRED (ISOPT = 1), MITER = 0
+C         AND 3 ARE DISALLOWED. IN THESE CASES, THE USER IS RECOMMENDED
+C         TO SUPPLY AN ANALYTICAL JACOBIAN (MITER = 1 OR 4) AND AN
+C         ANALYTICAL INHOMOGENEITY MATRIX (IDF = 1).
+C----------------------------------------------------------------------
+C OPTIONAL INPUTS.
+C
+C THE FOLLOWING IS A LIST OF THE OPTIONAL INPUTS PROVIDED FOR IN THE
+C CALL SEQUENCE.  (SEE ALSO PART II.)  FOR EACH SUCH INPUT VARIABLE,
+C THIS TABLE LISTS ITS NAME AS USED IN THIS DOCUMENTATION, ITS
+C LOCATION IN THE CALL SEQUENCE, ITS MEANING, AND THE DEFAULT VALUE.
+C THE USE OF ANY OF THESE INPUTS REQUIRES IOPT(1) = 1, AND IN THAT
+C CASE ALL OF THESE INPUTS ARE EXAMINED.  A VALUE OF ZERO FOR ANY
+C OF THESE OPTIONAL INPUTS WILL CAUSE THE DEFAULT VALUE TO BE USED.
+C THUS TO USE A SUBSET OF THE OPTIONAL INPUTS, SIMPLY PRELOAD
+C LOCATIONS 5 TO 10 IN RWORK AND IWORK TO 0.0 AND 0 RESPECTIVELY, AND
+C THEN SET THOSE OF INTEREST TO NONZERO VALUES.
+C
+C NAME   LOCATION      MEANING AND DEFAULT VALUE
+C
+C H0     RWORK(5)  THE STEP SIZE TO BE ATTEMPTED ON THE FIRST STEP.
+C                  THE DEFAULT VALUE IS DETERMINED BY THE KppSolveR.
+C
+C HMAX   RWORK(6)  THE MAXIMUM ABSOLUTE STEP SIZE ALLOWED.
+C                  THE DEFAULT VALUE IS INFINITE.
+C
+C HMIN   RWORK(7)  THE MINIMUM ABSOLUTE STEP SIZE ALLOWED.
+C                  THE DEFAULT VALUE IS 0.  (THIS LOWER BOUND IS NOT
+C                  ENFORCED ON THE FINAL STEP BEFORE REACHING TCRIT
+C                  WHEN ITASK = 4 OR 5.)
+C
+C MAXORD  IWORK(5)  THE MAXIMUM ORDER TO BE ALLOWED.  THE DEFAULT
+C                  VALUE IS 12 IF METH = 1, AND 5 IF METH = 2.
+C                  IF MAXORD EXCEEDS THE DEFAULT VALUE, IT WILL
+C                  BE REDUCED TO THE DEFAULT VALUE.
+C                  IF MAXORD IS CHANGED DURING THE PROBLEM, IT MAY
+C                  CAUSE THE CURRENT ORDER TO BE REDUCED.
+C
+C MXSTEP  IWORK(6)  MAXIMUM NUMBER OF (INTERNALLY DEFINED) STEPS
+C                  ALLOWED DURING ONE CALL TO THE KppSolveR.
+C                  THE DEFAULT VALUE IS 500.
+C
+C MXHNIL  IWORK(7)  MAXIMUM NUMBER OF MESSAGES PRINTED (PER PROBLEM)
+C                  WARNING THAT T + H = T ON A STEP (H = STEP SIZE).
+C                  THIS MUST BE POSITIVE TO RESULT IN A NON-DEFAULT
+C                  VALUE.  THE DEFAULT VALUE IS 10.
+C----------------------------------------------------------------------
+C OPTIONAL OUTPUTS.
+C
+C AS OPTIONAL ADDITIONAL OUTPUT FROM ODESSA, THE VARIABLES LISTED
+C BELOW ARE QUANTITIES RELATED TO THE PERFORMANCE OF ODESSA
+C WHICH ARE AVAILABLE TO THE USER.  THESE ARE COMMUNICATED BY WAY OF
+C THE WORK ARRAYS, BUT ALSO HAVE INTERNAL MNEMONIC NAMES AS SHOWN.
+C EXCEPT WHERE STATED OTHERWISE, ALL OF THESE OUTPUTS ARE DEFINED
+C ON ANY SUCCESSFUL RETURN FROM ODESSA, AND ON ANY RETURN WITH
+C ISTATE = -1, -2, -4, -5, OR -6.  ON AN ILLEGAL INPUT RETURN
+C (ISTATE = -3), THEY WILL BE UNCHANGED FROM THEIR EXISTING VALUES
+C (IF ANY), EXCEPT POSSIBLY FOR TOLSF, LENRW, AND LENIW.
+C ON ANY ERROR RETURN, OUTPUTS RELEVANT TO THE ERROR WILL BE DEFINED,
+C AS NOTED BELOW.
+C
+C NAME   LOCATION      MEANING
+C
+C HU     RWORK(11) THE STEP SIZE IN T LAST USED (SUCCESSFULLY).
+C
+C HCUR   RWORK(12) THE STEP SIZE TO BE ATTEMPTED ON THE NEXT STEP.
+C
+C TCUR   RWORK(13) THE CURRENT VALUE OF THE INDEPENDENT VARIABLE
+C                  WHICH THE KppSolveR HAS ACTUALLY REACHED, I.E. THE
+C                  CURRENT INTERNAL MESH POINT IN T.  ON OUTPUT, TCUR
+C                  WILL ALWAYS BE AT LEAST AS FAR AS THE ARGUMENT
+C                  T, BUT MAY BE FARTHER (IF INTERPOLATION WAS DONE).
+C
+C TOLSF  RWORK(14) A TOLERANCE SCALE FACTOR, GREATER THAN 1.0,
+C                  COMPUTED WHEN A REQUEST FOR TOO MUCH ACCURACY WAS
+C                  DETECTED (ISTATE = -3 IF DETECTED AT THE START OF
+C                  THE PROBLEM, ISTATE = -2 OTHERWISE).  IF ITOL IS
+C                  LEFT UNALTERED BUT RTOL AND ATOL ARE UNIFORMLY
+C                  SCALED UP BY A FACTOR OF TOLSF FOR THE NEXT CALL,
+C                  THEN THE KppSolveR IS DEEMED LIKELY TO SUCCEED.
+C                  (THE USER MAY ALSO IGNORE TOLSF AND ALTER THE
+C                  TOLERANCE PARAMETERS IN ANY OTHER WAY APPROPRIATE.)
+C
+C NST    IWORK(11) THE NUMBER OF STEPS TAKEN FOR THE PROBLEM SO FAR.
+C
+C NFE    IWORK(12) THE NUMBER OF F EVALUATIONS FOR THE PROBLEM SO FAR.
+C
+C NJE    IWORK(13) THE NUMBER OF JACOBIAN EVALUATIONS (AND OF MATRIX
+C                  LU DECOMPOSITIONS IF ISOPT = 0) FOR THE PROBLEM SO
+C                  FAR. IF ISOPT = 1, THE NUMBER OF LU DECOMPOSITIONS
+C                  IS EQUAL TO NJE - NSPE (SEE BELOW).
+C
+C NQU    IWORK(14) THE METHOD ORDER LAST USED (SUCCESSFULLY).
+C
+C NQCUR  IWORK(15) THE ORDER TO BE ATTEMPTED ON THE NEXT STEP.
+C
+C IMXER  IWORK(16) THE INDEX OF THE COMPONENT OF LARGEST MAGNITUDE IN
+C                  THE WEIGHTED LOCAL ERROR VECTOR (E(I,J)/EWT(I,J)),
+C                  ON AN ERROR RETURN WITH ISTATE = -4 OR -5.
+C
+C LENRW  IWORK(17) THE LENGTH OF RWORK ACTUALLY REQUIRED.
+C                  THIS IS DEFINED ON NORMAL RETURNS AND ON AN ILLEGAL
+C                  INPUT RETURN FOR INSUFFICIENT STORAGE.
+C
+C LENIW  IWORK(18) THE LENGTH OF IWORK ACTUALLY REQUIRED.
+C                  THIS IS DEFINED ON NORMAL RETURNS AND ON AN ILLEGAL
+C                  INPUT RETURN FOR INSUFFICIENT STORAGE.
+C
+C NDFE   IWORK(19) THE NUMBER OF DF/DP (VECTOR) EVALUATIONS.
+C
+C NSPE   IWORK(20) THE NUMBER OF CALLS TO SUBROUTINE SPRIME. EACH CALL
+C                  TO SPRIME REQUIRES A JACOBIAN EVALUATION, BUT NOT
+C                  AN LU DECOMPOSITION.
+C
+C THE FOLLOWING ARRAYS ARE SEGMENTS OF THE RWORK AND IWORK ARRAYS
+C WHICH MAY ALSO BE OF INTEREST TO THE USER AS OPTIONAL OUTPUTS.
+C FOR EACH ARRAY, THE TABLE BELOW GIVES ITS INTERNAL NAME, ITS BASE
+C ADDRESS IN RWORK OR IWORK, AND ITS DESCRIPTION.
+C
+C NAME   BASE ADDRESS      DESCRIPTION
+C
+C YH     21 IN RWORK    THE NORDSIECK HISTORY ARRAY, OF SIZE NYH BY
+C                       (NQCUR + 1). FOR J = 0,1,...,NQCUR, COLUMN J+1
+C                       OF YH CONTAINS HCUR**J/FACTORIAL(J) TIMES
+C                       THE J-TH DERIVATIVE OF THE INTERPOLATING
+C                       POLYNOMIAL CURRENTLY REPRESENTING THE SOLUTION,
+C                       EVALUATED AT T = TCUR.
+C
+C ACOR    LENRW-NYH+1   ARRAY OF SIZE NYH USED FOR THE ACCUMULATED
+C         IN RWORK      CORRECTIONS ON EACH STEP, SCALED ON OUTPUT
+C                       TO REPRESENT THE ESTIMATED LOCAL ERROR IN Y
+C                       ON THE LAST STEP.  THIS IS THE VECTOR E IN
+C                       THE DESCRIPTION OF THE ERROR CONTROL.
+C                       IT IS DEFINED ONLY ON A SUCCESSFUL RETURN
+C                       FROM ODESSA.
+C NRS     LENIW-NPAR    ARRAY OF SIZE NPAR+1, USED TO STORE THE
+C         IN IWORK      ACCUMULATED NUMBER OF REPEATED STEPS DUE TO
+C                       THE SENSITIVITY ANALYSIS..
+C                         NRS(1) = TOTAL NUMBER OF REPEATED STEPS,
+C                         NRS(2),... = NUMBER OF REPEATED STEPS DUE TO
+C                                      MODEL PARAMETER 1,...
+C
+C----------------------------------------------------------------------
+C PART II.  OTHER ROUTINES CALLABLE.
+C
+C THE FOLLOWING ARE OPTIONAL CALLS WHICH THE USER MAY MAKE TO
+C GAIN ADDITIONAL CAPABILITIES IN CONJUNCTION WITH ODESSA.
+C (THE ROUTINES XSETUN AND XSETF ARE DESIGNED TO CONFORM TO THE
+C SLATEC ERROR HANDLING PACKAGE.)
+C
+C    FORM OF CALL                  FUNCTION
+C  CALL XSETUN(LUN)          SET THE LOGICAL UNIT NUMBER, LUN, FOR
+C                            OUTPUT OF MESSAGES FROM ODESSA, IF
+C                            THE DEFAULT IS NOT DESIRED.
+C                            THE DEFAULT VALUE OF LUN IS 6.
+C
+C  CALL XSETF(MFLAG)         SET A FLAG TO CONTROL THE PRINTING OF
+C                            MESSAGES BY ODESSA..
+C                            MFLAG = 0 MEANS DO NOT PRINT. (DANGER..
+C                            THIS RISKS LOSING VALUABLE INFORMATION.)
+C                            MFLAG = 1 MEANS PRINT (THE DEFAULT).
+C
+C                            EITHER OF THE ABOVE CALLS MAY BE MADE AT
+C                            ANY TIME AND WILL TAKE EFFECT IMMEDIATELY.
+C
+C  CALL SVCOM (RSAV, ISAV)   STORE IN RSAV AND ISAV THE CONTENTS
+C                            OF THE INTERNAL COMMON BLOCKS USED BY
+C                            ODESSA (SEE PART III BELOW).
+C                            RSAV MUST BE A REAL ARRAY OF LENGTH 222
+C                            OR MORE, AND ISAV MUST BE AN INTEGER
+C                            ARRAY OF LENGTH 54 OR MORE.
+C
+C  CALL RSCOM (RSAV, ISAV)   RESTORE, FROM RSAV AND ISAV, THE CONTENTS
+C                            OF THE INTERNAL COMMON BLOCKS USED BY
+C                            ODESSA.  PRESUMES A PRIOR CALL TO SVCOM
+C                            WITH THE SAME ARGUMENTS.
+C
+C                            SVCOM AND RSCOM ARE USEFUL IF
+C                            INTERRUPTING A RUN AND RESTARTING
+C                            LATER, OR ALTERNATING BETWEEN TWO OR
+C                            MORE PROBLEMS KppSolveD WITH ODESSA.
+C
+C  CALL INTDY(,,,,,)         PROVIDE DERIVATIVES OF Y, OF VARIOUS
+C       (SEE BELOW)          ORDERS, AT A SPECIFIED POINT T, IF
+C                            DESIRED.  IT MAY BE CALLED ONLY AFTER
+C                            A SUCCESSFUL RETURN FROM ODESSA.
+C
+C THE DETAILED INSTRUCTIONS FOR USING INTDY ARE AS FOLLOWS.
+C THE FORM OF THE CALL IS..
+C
+C  CALL INTDY (T, K, RWORK(21), NYH, DKY, IFLAG)
+C
+C THE INPUT PARAMETERS ARE..
+C
+C T        = VALUE OF INDEPENDENT VARIABLE WHERE ANSWERS ARE DESIRED
+C            (NORMALLY THE SAME AS THE T LAST RETURNED BY ODESSA).
+C            FOR VALID RESULTS, T MUST LIE BETWEEN TCUR - HU AND TCUR.
+C            (SEE OPTIONAL OUTPUTS FOR TCUR AND HU.)
+C K        = INTEGER ORDER OF THE DERIVATIVE DESIRED.  K MUST SATISFY
+C            0 .LE. K .LE. NQCUR, WHERE NQCUR IS THE CURRENT ORDER
+C            (SEE OPTIONAL OUTPUTS).  THE CAPABILITY CORRESPONDING
+C            TO K = 0, I.E. COMPUTING Y(T), IS ALREADY PROVIDED
+C            BY ODESSA DIRECTLY.  SINCE NQCUR .GE. 1, THE FIRST
+C            DERIVATIVE DY/DT IS ALWAYS AVAILABLE WITH INTDY.
+C RWORK(21) = THE BASE ADDRESS OF THE HISTORY ARRAY YH.
+C NYH      = COLUMN LENGTH OF YH, EQUAL TO THE TOTAL NUMBER OF
+C            DEPENDENT VARIABLES. IF ISOPT = 0, NYH = N. IF ISOPT = 1,
+C            NYH = N * (NPAR + 1).
+C
+C THE OUTPUT PARAMETERS ARE..
+C
+C DKY      = A REAL ARRAY OF LENGTH NYH CONTAINING THE COMPUTED VALUE
+C            OF THE K-TH DERIVATIVE OF Y(T).
+C IFLAG    = INTEGER FLAG, RETURNED AS 0 IF K AND T WERE LEGAL,
+C            -1 IF K WAS ILLEGAL, AND -2 IF T WAS ILLEGAL.
+C            ON AN ERROR RETURN, A MESSAGE IS ALSO WRITTEN.
+C----------------------------------------------------------------------
+C PART III.  COMMON BLOCKS.
+C
+C IF ODESSA IS TO BE USED IN AN OVERLAY SITUATION, THE USER
+C MUST DECLARE, IN THE PRIMARY OVERLAY, THE VARIABLES IN..
+C  (1) THE CALL SEQUENCE TO ODESSA,
+C  (2) THE THREE INTERNAL COMMON BLOCKS
+C        /ODE001/  OF LENGTH  258  (219 DOUBLE PRECISION WORDS
+C                        FOLLOWED BY 39 INTEGER WORDS),
+C        /ODE002/  OF LENGTH 14 (3 DOUBLE PRECISION WORDS FOLLOWED
+C                        BY 11 INTEGER WORDS),
+C        /EH0001/  OF LENGTH  2 (INTEGER WORDS).
+C
+C IF ODESSA IS USED ON A SYSTEM IN WHICH THE CONTENTS OF INTERNAL
+C COMMON BLOCKS ARE NOT PRESERVED BETWEEN CALLS, THE USER SHOULD
+C DECLARE THE ABOVE THREE COMMON BLOCKS IN HIS MAIN PROGRAM TO INSURE
+C THAT THEIR CONTENTS ARE PRESERVED.
+C
+C IF THE SOLUTION OF A GIVEN PROBLEM BY ODESSA IS TO BE INTERRUPTED
+C AND THEN LATER CONTINUED, SUCH AS WHEN RESTARTING AN INTERRUPTED RUN
+C OR ALTERNATING BETWEEN TWO OR MORE PROBLEMS, THE USER SHOULD SAVE,
+C FOLLOWING THE RETURN FROM THE LAST ODESSA CALL PRIOR TO THE
+C INTERRUPTION, THE CONTENTS OF THE CALL SEQUENCE VARIABLES AND THE
+C INTERNAL COMMON BLOCKS, AND LATER RESTORE THESE VALUES BEFORE THE
+C NEXT ODESSA CALL FOR THAT PROBLEM.  TO SAVE AND RESTORE THE COMMON
+C BLOCKS, USE SUBROUTINES SVCOM AND RSCOM (SEE PART II ABOVE).
+C
+C----------------------------------------------------------------------
+C PART IV.  OPTIONALLY REPLACEABLE KppSolveR ROUTINES.
+C
+C BELOW ARE DESCRIPTIONS OF TWO ROUTINES IN THE ODESSA PACKAGE WHICH
+C RELATE TO THE MEASUREMENT OF ERRORS.  EITHER ROUTINE CAN BE
+C REPLACED BY A USER-SUPPLIED VERSION, IF DESIRED. HOWEVER, SINCE SUCH
+C A REPLACEMENT MAY HAVE A MAJOR IMPACT ON PERFORMANCE, IT SHOULD BE
+C DONE ONLY WHEN ABSOLUTELY NECESSARY, AND ONLY WITH GREAT CAUTION.
+C (NOTE.. THE MEANS BY WHICH THE PACKAGE VERSION OF A ROUTINE IS
+C SUPERSEDED BY THE USER-S VERSION MAY BE SYSTEM-DEPENDENT.)
+C
+C (A) EWSET.
+C THE FOLLOWING SUBROUTINE IS CALLED JUST BEFORE EACH INTERNAL
+C INTEGRATION STEP, AND SETS THE ARRAY OF ERROR WEIGHTS, EWT, AS
+C DESCRIBED UNDER ITOL/RTOL/ATOL ABOVE..
+C    SUBROUTINE EWSET (NYH, ITOL, RTOL, ATOL, YCUR, EWT)
+C WHERE NEQ, ITOL, RTOL, AND ATOL ARE AS IN THE ODESSA CALL SEQUENCE,
+C YCUR CONTAINS THE CURRENT DEPENDENT VARIABLE VECTOR, AND
+C EWT IS THE ARRAY OF WEIGHTS SET BY EWSET.
+C
+C IF THE USER SUPPLIES THIS SUBROUTINE, IT MUST RETURN IN EWT(I)
+C (I = 1,...,NYH) A POSITIVE QUANTITY SUITABLE FOR COMPARING ERRORS
+C IN Y(I) TO.  THE EWT ARRAY RETURNED BY EWSET IS PASSED TO THE
+C VNORM ROUTINE (SEE BELOW), AND ALSO USED BY ODESSA IN THE COMPUTATION
+C OF THE OPTIONAL OUTPUT IMXER, THE DIAGONAL JACOBIAN APPROXIMATION,
+C AND THE INCREMENTS FOR DIFFERENCE QUOTIENT JACOBIANS.
+C
+C IN THE USER-SUPPLIED VERSION OF EWSET, IT MAY BE DESIRABLE TO USE
+C THE CURRENT VALUES OF DERIVATIVES OF Y.  DERIVATIVES UP TO ORDER NQ
+C ARE AVAILABLE FROM THE HISTORY ARRAY YH, DESCRIBED ABOVE UNDER
+C OPTIONAL OUTPUTS.  IN EWSET, YH IS IDENTICAL TO THE YCUR ARRAY,
+C EXTENDED TO NQ + 1 COLUMNS WITH A COLUMN LENGTH OF NYH AND SCALE
+C FACTORS OF H**J/FACTORIAL(J).  ON THE FIRST CALL FOR THE PROBLEM,
+C GIVEN BY NST = 0, NQ IS 1 AND H IS TEMPORARILY SET TO 1.0.
+C THE QUANTITIES NQ, NYH, H, AND NST CAN BE OBTAINED BY INCLUDING
+C IN EWSET THE STATEMENTS..
+C    DOUBLE PRECISION H, RLS
+C    COMMON /ODE001/ RLS(219),ILS(39)
+C    NQ = ILS(35)
+C    NYH = ILS(14)
+C    NST = ILS(36)
+C    H = RLS(213)
+C THUS, FOR EXAMPLE, THE CURRENT VALUE OF DY/DT CAN BE OBTAINED AS
+C YCUR(NYH+I)/H  (I=1,...,N)  (AND THE DIVISION BY H IS
+C UNNECESSARY WHEN NST = 0).
+C
+C (B) VNORM.
+C THE FOLLOWING IS A REAL FUNCTION ROUTINE WHICH COMPUTES THE WEIGHTED
+C ROOT-MEAN-SQUARE NORM OF A VECTOR V..
+C    D = VNORM (LV, V, W)
+C WHERE..
+C  LV = THE LENGTH OF THE VECTOR,
+C  V = REAL ARRAY OF LENGTH N CONTAINING THE VECTOR,
+C  W = REAL ARRAY OF LENGTH N CONTAINING WEIGHTS,
+C  D = SQRT( (1/N) * SUM(V(I)*W(I))**2 ).
+C VNORM IS CALLED WITH LV = N AND WITH W(I) = 1.0/EWT(I), WHERE
+C EWT IS AS SET BY SUBROUTINE EWSET.
+C
+C IF THE USER SUPPLIES THIS FUNCTION, IT SHOULD RETURN A NON-NEGATIVE
+C VALUE OF VNORM SUITABLE FOR USE IN THE ERROR CONTROL IN ODESSA.
+C NONE OF THE ARGUMENTS SHOULD BE ALTERED BY VNORM.
+C FOR EXAMPLE, A USER-SUPPLIED VNORM ROUTINE MIGHT..
+C  -SUBSTITUTE A MAX-NORM OF (V(I)*W(I)) FOR THE RMS-NORM, OR
+C  -IGNORE SOME COMPONENTS OF V IN THE NORM, WITH THE EFFECT OF
+C   SUPPRESSING THE ERROR CONTROL ON THOSE COMPONENTS OF Y.
+C----------------------------------------------------------------------
+C OTHER ROUTINES IN THE ODESSA PACKAGE.
+C
+C IN ADDITION TO SUBROUTINE ODESSA, THE ODESSA PACKAGE INCLUDES THE
+C FOLLOWING SUBROUTINES AND FUNCTION ROUTINES..
+C  INTDY   COMPUTES AN INTERPOLATED VALUE OF THE Y VECTOR AT T = TOUT.
+C  STODE   IS THE CORE INTEGRATOR, WHICH DOES ONE STEP OF THE
+C          INTEGRATION AND THE ASSOCIATED ERROR CONTROL.
+C  STESA   MANAGES THE SOLUTION OF THE SENSITIVITY FUNCTIONS.
+C  CFODE   SETS ALL METHOD COEFFICIENTS AND TEST CONSTANTS.
+C  PREPJ   COMPUTES AND PREPROCESSES THE JACOBIAN MATRIX J = DF/DY
+C          AND THE NEWTON ITERATION MATRIX P = I - H*L0*J.
+C          IT IS ALSO CALLED BY SPRIME (WITH JOPT = 1) TO JUST
+C          COMPUTE THE JACOBIAN MATRIX.
+C  PREPDF  COMPUTES THE INHOMOGENEITY MATRIX DF/DP.
+C  SPRIME  DEFINES THE SYSTEM OF SENSITIVITY EQUATIONS.
+C  SOLSY   MANAGES SOLUTION OF LINEAR SYSTEM IN CHORD ITERATION.
+C  EWSET   SETS THE ERROR WEIGHT VECTOR EWT BEFORE EACH STEP.
+C  VNORM   COMPUTES THE WEIGHTED R.M.S. NORM OF A VECTOR.
+C  SVCOM AND RSCOM  ARE USER-CALLABLE ROUTINES TO SAVE AND RESTORE,
+C          RESPECTIVELY, THE CONTENTS OF THE INTERNAL COMMON BLOCKS.
+C  DGEFA AND DGESL  ARE ROUTINES FROM LINPACK FOR SOLVING FULL
+C          SYSTEMS OF LINEAR ALGEBRAIC EQUATIONS.
+C  DGBFA AND DGBSL  ARE ROUTINES FROM LINPACK FOR SOLVING BANDED
+C          LINEAR SYSTEMS.
+C  DAXPY, DSCAL, IDAMAX, AND DDOT  ARE BASIC LINEAR ALGEBRA MODULES
+C          (BLAS) USED BY THE ABOVE LINPACK ROUTINES.
+C  D1MACH  COMPUTES THE UNIT ROUNDOFF IN A MACHINE-INDEPENDENT MANNER.
+C  XERR, XSETUN, AND XSETF  HANDLE THE PRINTING OF ALL ERROR
+C          MESSAGES AND WARNINGS.
+C NOTE..  VNORM, IDAMAX, DDOT, AND D1MACH ARE FUNCTION ROUTINES.
+C ALL THE OTHERS ARE SUBROUTINES.
+C
+C THE FORTRAN GENERIC INTRINSIC FUNCTIONS USED BY ODESSA ARE..
+C ABS, MAX, MIN, REAL, MOD, SIGN, SQRT, AND WRITE
+C
+C A BLOCK DATA SUBPROGRAM IS ALSO INCLUDED WITH THE PACKAGE,
+C FOR LOADING SOME OF THE VARIABLES IN INTERNAL COMMON.
+C
+C----------------------------------------------------------------------
+C PART V.  GENERAL REMARKS
+C
+C THIS SECTION HIGHLIGHTS THE BASIC DIFFERENCES BETWEEN THE ORIGINAL
+C LSODE PACKAGE AND THE ODESSA MODIFICATION. THIS IS PROVIDED AS A
+C SERVICE TO EXPERIENCED LSODE USERS TO EXPEDITE FAMILIARIZATION WITH
+C ODESSA.
+C
+C (A). ORIGINAL SUBROUTINES AND FUNCTIONS.
+C
+C      OF THE ORIGINAL 22 SUBROUTINES AND FUNCTIONS USED IN THE LSODE
+C      PACKAGE, ALL ARE USED BY ODESSA, WITH THE FOLLOWING HAVING BEEN
+C      MODIFIED..
+C
+C      LSODE  THE ORIGINAL DRIVER SUBROUTINE FOR THE LSODE PACKAGE IS
+C             EXTENSIVELY MODIFIED AND RENAMED ODESSA, WHICH NOW
+C             CONTAINS A CALL TO SPRIME TO ESTABLISH INITIAL CONDITIONS
+C             FOR THE SENSITIVITY CALCULATIONS.
+C
+C      STODE  THE ONE STEP INTEGRATOR IS SLIGHTLY MODIFIED AND RETAINS
+C             ITS ORIGINAL NAME. IT NOW CONTAINS THE CALL TO STESA,
+C             AND ALSO CALLS SPRIME IF KFLAG .LE. -3.
+C
+C      PREPJ  ALSO NAMED PREPJ IN ODESSA IS SLIGHTLY MODIFIED TO ALLOW
+C             FOR THE CALCULATION OF JACOBIAN WITH NO PREPROCESSING
+C             (JOPT = 1).
+C
+C (B). NEW SUBROUTINES.
+C
+C      IN ADDITION TO THE CHANGES NOTED ABOVE, THREE NEW SUBROUTINES
+C      HAVE BEEN INTRODUCED (SEE STESA, SPRIME, AND PREPDF AS DESCRIBED
+C      IN PART IV. ABOVE).
+C
+C (C). COMMON BLOCKS.
+C
+C      /LS0001/  RETAINS THE SAME LENGTH AND IS RENAMED /ODE001/;
+C                HOWEVER THE REAL ARRAY ROWNS(209) IS SHORTENED TO A
+C                LENGTH OF (173) REAL WORDS, ALLOWING THE REMOVAL OF
+C                TESCO(3,12) WHICH IS NOW PASSED FROM STODE TO STESA.
+C                IN ADDITION, THE INTEGER ARRAY IOWNS(6) IS SHORTENED
+C                TO A LENGTH OF (4) INTEGER WORDS, ALLOWING THE REMOVAL
+C                OF IALTH AND LMAX WHICH ARE NOW PASSED FROM STODE TO
+C                STESA.
+C
+C      /ODE002/  ADDED COMMON BLOCK FOR VARIABLES IMPORTANT TO
+C                SENSITIVITY ANALYSIS (SEE PART III. ABOVE). A BLOCK
+C                DATA PROGRAM IS NOT REQUIRED FOR THIS COMMON BLOCK.
+C
+C      SVCOM,RSCOM  THESE TWO SUBROUTINES ARE MODIFIED TO HANDLE
+C                   COMMON BLOCK /ODE002/ AS WELL.
+C
+C (D). OPTIONAL INPUTS.
+C
+C      THE FULL SET OF OPTIONAL INPUTS AVAILABLE IN LSODE IS ALSO
+C      AVAILABLE IN ODESSA, WITH THE EXCEPTION THAT THE NUMBER OF ODE'S
+C      IN THE MODEL (NEQ(1)), MAY NOT BE CHANGED DURING THE PROBLEM.
+C      IN ODESSA, NYH NOW REFERS TO THE TOTAL NUMBER OF FIRST-ORDER
+C      ODE'S (MODEL AND SENSITIVITY EQUATIONS) WHICH IS EQUAL TO
+C      NEQ(1) IF ISOPT = 0, OR NEQ(1)*(NEQ(2)+1) IF ISOPT = 1.
+C      NEQ(1), NEQ(2), AND NYH ARE NOT ALLOWED TO CHANGE DURING
+C      THE COURSE OF AN INTEGRATION.
+C
+C (E). OPTIONAL OUTPUTS.
+C
+C      THE FULL SET OF OPTIONAL OUTPUTS AVAILABLE IN LSODE IS ALSO
+C      AVAILABLE IN ODESSA. IN ADDITION, IWORK(19) AND IWORK(20) ARE
+C      LOADED WITH NDFE AND NSPE, RESPECTIVELY, UPON OUTPUT. THE TOTAL
+C      NUMBER OF LU DECOMPOSITIONS OF THE PROCESSED JACOBIAN IS EQUAL
+C      TO NJE - NSPE.
+C-----------------------------------------------------------------------
+      SUBROUTINE KPP_ODESSA (F, DF, NEQ, Y, PAR, T, TOUT,
+     1   ITOL, RTOL, ATOL,
+     1   ITASK, ISTATE, IOPT, RWORK, LRW, IWORK, LIW, JAC, MF)
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+      LOGICAL IHIT
+      EXTERNAL F, DF, JAC, PREPJ, SOLSY, PREPDF
+      DIMENSION NEQ(*), Y(*), PAR(*), RTOL(*), ATOL(*), IOPT(*),
+     1   RWORK(LRW), IWORK(LIW), MORD(2)
+C-----------------------------------------------------------------------
+C THIS IS THE SEPTEMBER 1, 1986 VERSION OF ODESSA..
+C AN ORDINARY DIFFERENTIAL EQUATION KppSolveR WITH EXPLICIT SIMULTANEOUS
+C SENSITIVITY ANALYSIS.
+C
+C THIS PACKAGE IS A MODIFICATION OF THE AUGUST 13, 1981 VERSION OF
+C LSODE.. LIVERMORE KppSolveR FOR ORDINARY DIFFERENTIAL EQUATIONS.
+C THIS VERSION IS IN DOUBLE PRECISION.
+C
+C ODESSA KppSolveS FOR THE FIRST-ORDER SENSITIVITY COEFFICIENTS..
+C    DY(I)/DP, FOR A SINGLE PARAMETER, OR,
+C    DY(I)/DP(J), FOR MULTIPLE PARAMETERS,
+C ASSOCIATED WITH A SYSTEM OF ORDINARY DIFFERENTIAL EQUATIONS..
+C    DY(T)/DT = F(Y,T;P).
+C-----------------------------------------------------------------------
+C REFERENCES...
+C
+C  1. JORGE R. LEIS AND MARK A. KRAMER, THE SIMULTANEOUS SOLUTION AND
+C     EXPLICIT SENSITIVITY ANALYSIS OF SYSTEMS DESCRIBED BY ORDINARY
+C     DIFFERENTIAL EQUATIONS, SUBMITTED TO ACM TRANS. MATH. SOFTWARE,
+C     (1985).
+C
+C  2. JORGE R. LEIS AND MARK A. KRAMER, ODESSA - AN ORDINARY
+C     DIFFERENTIAL EQUATION KppSolveR WITH EXPLICIT SIMULTANEOUS
+C     SENSITIVITY ANALYSIS, SUBMITTED TO ACM TRANS. MATH. SOFTWARE.
+C     (1985).
+C
+C  3. ALAN C. HINDMARSH,  LSODE AND LSODI,  TWO NEW INITIAL VALUE
+C     ORDINARY DIFFERENTIAL EQUATION KppSolveRS, ACM-SIGNUM NEWSLETTER,
+C     VOL. 15, NO. 4 (1980), PP. 10-11.
+C-----------------------------------------------------------------------
+C THE FOLLOWING INTERNAL COMMON BLOCKS CONTAIN
+C (A) VARIABLES WHICH ARE LOCAL TO ANY SUBROUTINE BUT WHOSE VALUES MUST
+C    BE PRESERVED BETWEEN CALLS TO THE ROUTINE (OWN VARIABLES), AND
+C (B) VARIABLES WHICH ARE COMMUNICATED BETWEEN SUBROUTINES.
+C THE STRUCTURE OF THE BLOCKS ARE AS FOLLOWS..  ALL REAL VARIABLES ARE
+C LISTED FIRST, FOLLOWED BY ALL INTEGERS.  WITHIN EACH TYPE, THE
+C VARIABLES ARE GROUPED WITH THOSE LOCAL TO SUBROUTINE ODESSA FIRST,
+C THEN THOSE LOCAL TO SUBROUTINE STODE, AND FINALLY THOSE USED
+C FOR COMMUNICATION.  THE BLOCKS ARE DECLARED IN SUBROUTINES ODESSA
+C INTDY, STODE, STESA, PREPJ, PREPDF, AND SOLSY.  GROUPS OF VARIABLES
+C ARE REPLACED BY DUMMY ARRAYS IN THE COMMON DECLARATIONS IN ROUTINES
+C WHERE THOSE VARIABLES ARE NOT USED.
+C-----------------------------------------------------------------------
+      COMMON /ODE001/ TRET, ROWNS(173),
+     1   TESCO(3,12), CCMAX, EL0, H, HMIN, HMXI, HU, RC, TN, UROUND,
+     2   ILLIN, INIT, LYH, LEWT, LACOR, LSAVF, LWM, LIWM,
+     3   MXSTEP, MXHNIL, NHNIL, NTREP, NSLAST, NYH, IOWNS(4),
+     4   IALTH, LMAX, ICF, IERPJ, IERSL, JCUR, JSTART, KFLAG, L, METH,
+     5   MITER, MAXORD, MAXCOR, MSBP, MXNCF, N, NQ, NST, NFE, NJE, NQU
+      COMMON /ODE002/ DUPS, DSMS, DDNS,
+     1   NPAR, LDFDP, LNRS,
+     2   ISOPT, NSV, NDFE, NSPE, IDF, IERSP, JOPT, KFLAGS
+      PARAMETER (ZERO=0.0D0,ONE=1.0D0,TWO=2.0D0,FOUR=4.0D0)
+      DATA  MORD(1),MORD(2)/12,5/, MXSTP0/500/, MXHNL0/10/
+C-----------------------------------------------------------------------
+C BLOCK A.
+C THIS CODE BLOCK IS EXECUTED ON EVERY CALL.
+C IT TESTS ISTATE AND ITASK FOR LEGALITY AND BRANCHES APPROPIATELY.
+C IF ISTATE .GT. 1 BUT THE FLAG INIT SHOWS THAT INITIALIZATION HAS
+C NOT YET BEEN DONE, AN ERROR RETURN OCCURS.
+C IF ISTATE = 1 AND TOUT = T, JUMP TO BLOCK G AND RETURN IMMEDIATELY.
+C-----------------------------------------------------------------------
+      IF (ISTATE .LT. 1 .OR. ISTATE .GT. 3) GO TO 601
+      IF (ITASK .LT. 1 .OR. ITASK .GT. 5) GO TO 602
+      IF (ISTATE .EQ. 1) GO TO 10
+      IF (INIT .EQ. 0) GO TO 603
+      IF (ISTATE .EQ. 2) GO TO 200
+      GO TO 20
+ 10   INIT = 0
+      IF (TOUT .EQ. T) GO TO 430
+ 20   NTREP = 0
+C-----------------------------------------------------------------------
+C BLOCK B.
+C THE NEXT CODE BLOCK IS EXECUTED FOR THE INITIAL CALL (ISTATE = 1),
+C OR FOR A CONTINUATION CALL WITH PARAMETER CHANGES (ISTATE = 3).
+C IT CONTAINS CHECKING OF ALL INPUTS AND VARIOUS INITIALIZATIONS.
+C
+C FIRST CHECK LEGALITY OF THE NON-OPTIONAL INPUTS NEQ, ITOL, IOPT,
+C MF, ML, AND MU.
+C-----------------------------------------------------------------------
+      IF (NEQ(1) .LE. 0) GO TO 604
+      IF (ISTATE .EQ. 1) GO TO 25
+      IF (NEQ(1) .NE. N) GO TO 605
+ 25   N = NEQ(1)
+      IF (ITOL .LT. 1 .OR. ITOL .GT. 4) GO TO 606
+      DO 26 I = 1,3
+ 26     IF (IOPT(I) .LT. 0 .OR. IOPT(I) .GT. 1) GO TO 607
+      ISOPT = IOPT(2)
+      IDF = IOPT(3)
+      NYH = N
+      NSV = 1
+      METH = MF/10
+      MITER = MF - 10*METH
+      IF (METH .LT. 1 .OR. METH .GT. 2) GO TO 608
+      IF (MITER .LT. 0 .OR. MITER .GT. 5) GO TO 608
+      IF (MITER .LE. 3) GO TO 30
+      ML = IWORK(1)
+      MU = IWORK(2)
+      IF (ML .LT. 0 .OR. ML .GE. N) GO TO 609
+      IF (MU .LT. 0 .OR. MU .GE. N) GO TO 610
+ 30   IF (ISOPT .EQ. 0) GO TO 32
+C CHECK LEGALITY OF THE NON-OPTIONAL INPUTS ISOPT, NPAR.
+C COMPUTE NUMBER OF SOLUTION VECTORS AND TOTAL NUMBER OF EQUATIONS.
+      IF (NEQ(2) .LE. 0) GO TO 628
+      IF (ISTATE .EQ. 1) GO TO 31
+      IF (NEQ(2) .NE. NPAR) GO TO 629
+ 31   NPAR = NEQ(2)
+      NSV = NPAR + 1
+      NYH = NSV * N
+      IF (MITER .EQ. 0 .OR. MITER .EQ. 3) GO TO 630
+C NEXT PROCESS AND CHECK THE OPTIONAL INPUTS. --------------------------
+ 32   IF (IOPT(1) .EQ. 1) GO TO 40
+      MAXORD = MORD(METH)
+      MXSTEP = MXSTP0
+      MXHNIL = MXHNL0
+      IF (ISTATE .EQ. 1) H0 = ZERO
+      HMXI = ZERO
+      HMIN = ZERO
+      GO TO 60
+ 40   MAXORD = IWORK(5)
+      IF (MAXORD .LT. 0) GO TO 611
+      IF (MAXORD .EQ. 0) MAXORD = 100
+      MAXORD = MIN(MAXORD,MORD(METH))
+      MXSTEP = IWORK(6)
+      IF (MXSTEP .LT. 0) GO TO 612
+      IF (MXSTEP .EQ. 0) MXSTEP = MXSTP0
+      MXHNIL = IWORK(7)
+      IF (MXHNIL .LT. 0) GO TO 613
+      IF (MXHNIL .EQ. 0) MXHNIL = MXHNL0
+      IF (ISTATE .NE. 1) GO TO 50
+      H0 = RWORK(5)
+      IF ((TOUT - T)*H0 .LT. ZERO) GO TO 614
+ 50   HMAX = RWORK(6)
+      IF (HMAX .LT. ZERO) GO TO 615
+      HMXI = ZERO
+      IF (HMAX .GT. ZERO) HMXI = ONE/HMAX
+      HMIN = RWORK(7)
+      IF (HMIN .LT. ZERO) GO TO 616
+C-----------------------------------------------------------------------
+C SET WORK ARRAY POINTERS AND CHECK LENGTHS LRW AND LIW.
+C POINTERS TO SEGMENTS OF RWORK AND IWORK ARE NAMED BY PREFIXING L TO
+C THE NAME OF THE SEGMENT.  E.G., THE SEGMENT YH STARTS AT RWORK(LYH).
+C SEGMENTS OF RWORK (IN ORDER) ARE DENOTED  YH, WM, EWT, SAVF, ACOR.
+C WORK SPACE FOR DFDP IS CONTAINED IN ACOR.
+C-----------------------------------------------------------------------
+ 60   LYH = 21
+      LWM = LYH + (MAXORD + 1)*NYH
+      IF (MITER .EQ. 0) LENWM = 0
+      IF (MITER .EQ. 1 .OR. MITER .EQ. 2) LENWM = N*N + 2
+      IF (MITER .EQ. 3) LENWM = N + 2
+      IF (MITER .GE. 4) LENWM = (2*ML + MU + 1)*N + 2
+      LEWT = LWM + LENWM
+      LSAVF = LEWT + NYH
+      LACOR = LSAVF + N
+      LDFDP = LACOR + N
+      LENRW = LACOR + NYH - 1
+      IWORK(17) = LENRW
+      LIWM = 1
+      LENIW = 20 + N
+      IF (MITER .EQ. 0 .OR. MITER .EQ. 3) LENIW = 20
+      LNRS = LENIW + LIWM
+      IF (ISOPT .EQ. 1) LENIW = LNRS + NPAR
+      IWORK(18) = LENIW
+      IF (LENRW .GT. LRW) GO TO 617
+      IF (LENIW .GT. LIW) GO TO 618
+C CHECK RTOL AND ATOL FOR LEGALITY. ------------------------------------
+      RTOLI = RTOL(1)
+      ATOLI = ATOL(1)
+      DO 70 I = 1,NYH
+        IF (ITOL .GE. 3) RTOLI = RTOL(I)
+        IF (ITOL .EQ. 2 .OR. ITOL .EQ. 4) ATOLI = ATOL(I)
+        IF (RTOLI .LT. ZERO) GO TO 619
+        IF (ATOLI .LT. ZERO) GO TO 620
+ 70     CONTINUE
+      IF (ISTATE .EQ. 1) GO TO 100
+C IF ISTATE = 3, SET FLAG TO SIGNAL PARAMETER CHANGES TO STODE. --------
+      JSTART = -1
+      IF (NQ .LE. MAXORD) GO TO 90
+C MAXORD WAS REDUCED BELOW NQ.  COPY YH(*,MAXORD+2) INTO SAVF. ---------
+      DO 80 I = 1,N
+ 80     RWORK(I+LSAVF-1) = RWORK(I+LWM-1)
+C RELOAD WM(1) = RWORK(LWM), SINCE LWM MAY HAVE CHANGED. ---------------
+ 90   IF (MITER .GT. 0) RWORK(LWM) = SQRT(UROUND)
+      GO TO 200
+C-----------------------------------------------------------------------
+C BLOCK C.
+C THE NEXT BLOCK IS FOR THE INITIAL CALL ONLY (ISTATE = 1).
+C IT CONTAINS ALL REMAINING INITIALIZATIONS, THE INITIAL CALL TO F,
+C THE INITIAL CALL TO SPRIME IF ISOPT = 1,
+C AND THE CALCULATION OF THE INITIAL STEP SIZE.
+C THE ERROR WEIGHTS IN EWT ARE INVERTED AFTER BEING LOADED.
+C-----------------------------------------------------------------------
+ 100  UROUND = D1MACH(4)
+      TN = T
+      IF (ITASK .NE. 4 .AND. ITASK .NE. 5) GO TO 105
+      TCRIT = RWORK(1)
+      IF ((TCRIT - TOUT)*(TOUT - T) .LT. ZERO) GO TO 625
+      IF (H0 .NE. ZERO .AND. (T + H0 - TCRIT)*H0 .GT. ZERO)
+     1   H0 = TCRIT - T
+ 105  JSTART = 0
+      IF (MITER .GT. 0) RWORK(LWM) = SQRT(UROUND)
+      NHNIL = 0
+      NST = 0
+      NJE = 0
+      NSLAST = 0
+      HU = ZERO
+      NQU = 0
+      CCMAX = 0.3D0
+      MAXCOR = 3
+      IF (ISOPT .EQ. 1) MAXCOR = 4
+      MSBP = 20
+      MXNCF = 10
+C INITIAL CALL TO F.  (LF0 POINTS TO YH(1,2) AND LOADS IN VALUES).
+      LF0 = LYH + NYH
+      CALL F (NEQ, T, Y, PAR, RWORK(LF0))
+      NFE = 1
+      DUPS = ZERO
+      DSMS = ZERO
+      DDNS = ZERO
+      NDFE = 0
+      NSPE = 0
+      IF (ISOPT .EQ. 0) GO TO 114
+C INITIALIZE COUNTS FOR REPEATED STEPS DUE TO SENSITIVITY ANALYSIS.
+      DO 110 J = 1,NSV
+ 110    IWORK(J + LNRS - 1) = 0
+C LOAD THE INITIAL VALUE VECTOR IN YH. ---------------------------------
+ 114  DO 115 I = 1,NYH
+ 115    RWORK(I+LYH-1) = Y(I)
+C LOAD AND INVERT THE EWT ARRAY.  (H IS TEMPORARILY SET TO ONE.) -------
+      NQ = 1
+      H = ONE
+      CALL EWSET (NYH, ITOL, RTOL, ATOL, RWORK(LYH), RWORK(LEWT))
+      DO 120 I = 1,NYH
+        IF (RWORK(I+LEWT-1) .LE. ZERO) GO TO 621
+ 120    RWORK(I+LEWT-1) = ONE/RWORK(I+LEWT-1)
+      IF (ISOPT .EQ. 0) GO TO 125
+C CALL SPRIME TO LOAD FIRST-ORDER SENSITIVITY DERIVATIVES INTO
+C REMAINING YH(*,2) POSITIONS.
+      CALL SPRIME (NEQ, Y, RWORK(LYH), NYH, N, NSV, RWORK(LWM),
+     1   IWORK(LIWM), RWORK(LEWT), RWORK(LF0), RWORK(LACOR),
+     2   RWORK(LDFDP), PAR, F, JAC, DF, PREPJ, PREPDF)
+      IF (IERSP .EQ. -1) GO TO 631
+      IF (IERSP .EQ. -2) GO TO 632
+C-----------------------------------------------------------------------
+C THE CODING BELOW COMPUTES THE STEP SIZE, H0, TO BE ATTEMPTED ON THE
+C FIRST STEP, UNLESS THE USER HAS SUPPLIED A VALUE FOR THIS.
+C FIRST CHECK THAT TOUT - T DIFFERS SIGNIFICANTLY FROM ZERO.
+C A SCALAR TOLERANCE QUANTITY TOL IS COMPUTED, AS MAX(RTOL(I))
+C IF THIS IS POSITIVE, OR MAX(ATOL(I)/ABS(Y(I))) OTHERWISE, ADJUSTED
+C SO AS TO BE BETWEEN 100*UROUND AND 1.0E-3. ONLY THE ORIGINAL
+C SOLUTION VECTOR IS CONSIDERED IN THIS CALCULATION (ISOPT = 0 OR 1).
+C THEN THE COMPUTED VALUE H0 IS GIVEN BY..
+C                                     NEQ
+C  H0**2 = TOL / ( W0**-2 + (1/NEQ) * SUM ( F(I)/YWT(I) )**2  )
+C                                      1
+C WHERE  W0     = MAX ( ABS(T), ABS(TOUT) ),
+C        F(I)   = I-TH COMPONENT OF INITIAL VALUE OF F,
+C        YWT(I) = EWT(I)/TOL  (A WEIGHT FOR Y(I)).
+C THE SIGN OF H0 IS INFERRED FROM THE INITIAL VALUES OF TOUT AND T.
+C-----------------------------------------------------------------------
+ 125  IF (H0 .NE. ZERO) GO TO 180
+      TDIST = ABS(TOUT - T)
+      W0 = MAX(ABS(T),ABS(TOUT))
+      IF (TDIST .LT. TWO*UROUND*W0) GO TO 622
+      TOL = RTOL(1)
+      IF (ITOL .LE. 2) GO TO 140
+      DO 130 I = 1,N
+ 130    TOL = MAX(TOL,RTOL(I))
+ 140   IF (TOL .GT. ZERO) GO TO 160
+      ATOLI = ATOL(1)
+      DO 150 I = 1,N
+        IF (ITOL .EQ. 2 .OR. ITOL .EQ. 4) ATOLI = ATOL(I)
+        AYI = ABS(Y(I))
+        IF (AYI .NE. ZERO) TOL = MAX(TOL,ATOLI/AYI)
+ 150    CONTINUE
+ 160   TOL = MAX(TOL,100.0D0*UROUND)
+      TOL = MIN(TOL,0.001D0)
+      SUM = VNORM (N, RWORK(LF0), RWORK(LEWT))
+      SUM = ONE/(TOL*W0*W0) + TOL*SUM**2
+      H0 = ONE/SQRT(SUM)
+      H0 = MIN(H0,TDIST)
+      H0 = SIGN(H0,TOUT-T)
+C ADJUST H0 IF NECESSARY TO MEET HMAX BOUND. ---------------------------
+ 180   RH = ABS(H0)*HMXI
+      IF (RH .GT. ONE) H0 = H0/RH
+C LOAD H WITH H0 AND SCALE YH(*,2) BY H0. ------------------------------
+      H = H0
+      DO 190 I = 1,NYH
+ 190    RWORK(I+LF0-1) = H0*RWORK(I+LF0-1)
+      GO TO 270
+C-----------------------------------------------------------------------
+C BLOCK D.
+C THE NEXT CODE BLOCK IS FOR CONTINUATION CALLS ONLY (ISTATE = 2 OR 3)
+C AND IS TO CHECK STOP CONDITIONS BEFORE TAKING A STEP.
+C-----------------------------------------------------------------------
+ 200   NSLAST = NST
+      GO TO (210, 250, 220, 230, 240), ITASK
+ 210   IF ((TN - TOUT)*H .LT. ZERO) GO TO 250
+      CALL INTDY (TOUT, 0, RWORK(LYH), NYH, Y, IFLAG)
+      IF (IFLAG .NE. 0) GO TO 627
+      T = TOUT
+      GO TO 420
+ 220   TP = TN - HU*(ONE + 100.0D0*UROUND)
+      IF ((TP - TOUT)*H .GT. ZERO) GO TO 623
+      IF ((TN - TOUT)*H .LT. ZERO) GO TO 250
+      GO TO 400
+ 230   TCRIT = RWORK(1)
+      IF ((TN - TCRIT)*H .GT. ZERO) GO TO 624
+      IF ((TCRIT - TOUT)*H .LT. ZERO) GO TO 625
+      IF ((TN - TOUT)*H .LT. ZERO) GO TO 245
+      CALL INTDY (TOUT, 0, RWORK(LYH), NYH, Y, IFLAG)
+      IF (IFLAG .NE. 0) GO TO 627
+      T = TOUT
+      GO TO 420
+ 240   TCRIT = RWORK(1)
+      IF ((TN - TCRIT)*H .GT. ZERO) GO TO 624
+ 245   HMX = ABS(TN) + ABS(H)
+      IHIT = ABS(TN - TCRIT) .LE. 100.0D0*UROUND*HMX
+      IF (IHIT) GO TO 400
+      TNEXT = TN + H*(ONE + FOUR*UROUND)
+      IF ((TNEXT - TCRIT)*H .LE. ZERO) GO TO 250
+      H = (TCRIT - TN)*(ONE - FOUR*UROUND)
+      IF (ISTATE .EQ. 2) JSTART = -2
+C-----------------------------------------------------------------------
+C BLOCK E.
+C THE NEXT BLOCK IS NORMALLY EXECUTED FOR ALL CALLS AND CONTAINS
+C THE CALL TO THE ONE-STEP CORE INTEGRATOR STODE.
+C
+C THIS IS A LOOPING POINT FOR THE INTEGRATION STEPS.
+C
+C FIRST CHECK FOR TOO MANY STEPS BEING TAKEN, UPDATE EWT (IF NOT AT
+C START OF PROBLEM), CHECK FOR TOO MUCH ACCURACY BEING REQUESTED, AND
+C CHECK FOR H BELOW THE ROUNDOFF LEVEL IN T.
+C TOLSF IS CALCULATED CONSIDERING ALL SOLUTION VECTORS.
+C-----------------------------------------------------------------------
+ 250   CONTINUE
+      IF ((NST-NSLAST) .GE. MXSTEP) GO TO 500
+      CALL EWSET (NYH, ITOL, RTOL, ATOL, RWORK(LYH), RWORK(LEWT))
+      DO 260 I = 1,NYH
+        IF (RWORK(I+LEWT-1) .LE. ZERO) GO TO 510
+ 260    RWORK(I+LEWT-1) = ONE/RWORK(I+LEWT-1)
+ 270   TOLSF = UROUND*VNORM (NYH, RWORK(LYH), RWORK(LEWT))
+      IF (TOLSF .LE. ONE) GO TO 280
+      TOLSF = TOLSF*2.0D0
+      IF (NST .EQ. 0) GO TO 626
+      GO TO 520
+ 280   IF (ADDX(TN,H) .NE. TN) GO TO 290
+      NHNIL = NHNIL + 1
+      IF (NHNIL .GT. MXHNIL) GO TO 290
+      CALL XERR ('ODESSA - WARNING..INTERNAL T (=R1) AND H (=R2) ARE',
+     1   101, 1, 0, 0, 0, 0, ZERO, ZERO)
+      CALL XERR ('SUCH THAT IN THE MACHINE, T + H = T ON THE NEXT STEP',
+     1   101, 1, 0, 0, 0, 0, ZERO, ZERO)
+      CALL XERR ('(H = STEP SIZE). KppSolveR WILL CONTINUE ANYWAY',
+     1   101, 1, 0, 0, 0, 2, TN, H)
+      IF (NHNIL .LT. MXHNIL) GO TO 290
+      CALL XERR ('ODESSA - ABOVE WARNING HAS BEEN ISSUED I1 TIMES.',
+     1   102, 1, 0, 0, 0, 0, ZERO, ZERO)
+      CALL XERR ('IT WILL NOT BE ISSUED AGAIN FOR THIS PROBLEM',
+     1   102, 1, 1, MXHNIL, 0, 0, ZERO,ZERO)
+ 290   CONTINUE
+C-----------------------------------------------------------------------
+C     CALL STODE(NEQ,Y,YH,NYH,YH,WM,IWM,EWT,SAVF,ACOR,PAR,NRS,
+C    1   F,JAC,DF,PREPJ,PREPDF,SOLSY)
+C-----------------------------------------------------------------------
+      CALL STODE (NEQ, Y, RWORK(LYH), NYH, RWORK(LYH), RWORK(LWM),
+     1   IWORK(LIWM), RWORK(LEWT), RWORK(LSAVF), RWORK(LACOR),
+     2   PAR, IWORK(LNRS), F, JAC, DF, PREPJ, PREPDF, SOLSY)
+      KGO = 1 - KFLAG
+      GO TO (300, 530, 540, 633), KGO
+C-----------------------------------------------------------------------
+C BLOCK F.
+C THE FOLLOWING BLOCK HANDLES THE CASE OF A SUCCESSFUL RETURN FROM THE
+C CORE INTEGRATOR (KFLAG = 0).  TEST FOR STOP CONDITIONS.
+C-----------------------------------------------------------------------
+ 300   INIT = 1
+      GO TO (310, 400, 330, 340, 350), ITASK
+C ITASK = 1.  IF TOUT HAS BEEN REACHED, INTERPOLATE. -------------------
+ 310   IF ((TN - TOUT)*H .LT. ZERO) GO TO 250
+      CALL INTDY (TOUT, 0, RWORK(LYH), NYH, Y, IFLAG)
+      T = TOUT
+      GO TO 420
+C ITASK = 3.  JUMP TO EXIT IF TOUT WAS REACHED. ------------------------
+ 330   IF ((TN - TOUT)*H .GE. ZERO) GO TO 400
+      GO TO 250
+C ITASK = 4.  SEE IF TOUT OR TCRIT WAS REACHED.  ADJUST H IF NECESSARY.
+ 340   IF ((TN - TOUT)*H .LT. ZERO) GO TO 345
+      CALL INTDY (TOUT, 0, RWORK(LYH), NYH, Y, IFLAG)
+      T = TOUT
+      GO TO 420
+ 345   HMX = ABS(TN) + ABS(H)
+      IHIT = ABS(TN - TCRIT) .LE. 100.0D0*UROUND*HMX
+      IF (IHIT) GO TO 400
+      TNEXT = TN + H*(ONE + FOUR*UROUND)
+      IF ((TNEXT - TCRIT)*H .LE. ZERO) GO TO 250
+      H = (TCRIT - TN)*(ONE - FOUR*UROUND)
+      JSTART = -2
+      GO TO 250
+C ITASK = 5.  SEE IF TCRIT WAS REACHED AND JUMP TO EXIT. ---------------
+ 350   HMX = ABS(TN) + ABS(H)
+      IHIT = ABS(TN - TCRIT) .LE. 100.0D0*UROUND*HMX
+C-----------------------------------------------------------------------
+C BLOCK G.
+C THE FOLLOWING BLOCK HANDLES ALL SUCCESSFUL RETURNS FROM ODESSA.
+C IF ITASK .NE. 1, Y IS LOADED FROM YH AND T IS SET ACCORDINGLY.
+C ISTATE IS SET TO 2, THE ILLEGAL INPUT COUNTER IS ZEROED, AND THE
+C OPTIONAL OUTPUTS ARE LOADED INTO THE WORK ARRAYS BEFORE RETURNING.
+C IF ISTATE = 1 AND TOUT = T, THERE IS A RETURN WITH NO ACTION TAKEN,
+C EXCEPT THAT IF THIS HAS HAPPENED REPEATEDLY, THE RUN IS TERMINATED.
+C-----------------------------------------------------------------------
+ 400  DO 410 I = 1,NYH
+ 410    Y(I) = RWORK(I+LYH-1)
+      T = TN
+      IF (ITASK .NE. 4 .AND. ITASK .NE. 5) GO TO 420
+      IF (IHIT) T = TCRIT
+ 420   ISTATE = 2
+      ILLIN = 0
+      RWORK(11) = HU
+      RWORK(12) = H
+      RWORK(13) = TN
+      IWORK(11) = NST
+      IWORK(12) = NFE
+      IWORK(13) = NJE
+      IWORK(14) = NQU
+      IWORK(15) = NQ
+      IF (ISOPT .EQ. 0) RETURN
+      IWORK(19) = NDFE
+      IWORK(20) = NSPE
+      RETURN
+ 430   NTREP = NTREP + 1
+      IF (NTREP .LT. 5) RETURN
+      CALL XERR ('ODESSA -- REPEATED CALLS WITH ISTATE = 1 AND
+     1TOUT = T (=R1)', 301, 1, 0, 0, 0, 1, T, ZERO)
+      GO TO 800
+C-----------------------------------------------------------------------
+C BLOCK H.
+C THE FOLLOWING BLOCK HANDLES ALL UNSUCCESSFUL RETURNS OTHER THAN
+C THOSE FOR ILLEGAL INPUT.  FIRST THE ERROR MESSAGE ROUTINE IS CALLED.
+C IF THERE WAS AN ERROR TEST OR CONVERGENCE TEST FAILURE, IMXER IS SET.
+C THEN Y IS LOADED FROM YH, T IS SET TO TN, AND THE ILLEGAL INPUT
+C COUNTER ILLIN IS SET TO 0.  THE OPTIONAL OUTPUTS ARE LOADED INTO
+C THE WORK ARRAYS BEFORE RETURNING.
+C-----------------------------------------------------------------------
+C THE MAXIMUM NUMBER OF STEPS WAS TAKEN BEFORE REACHING TOUT. ----------
+ 500  CALL XERR ('ODESSA - AT CURRENT T (=R1), MXSTEP (=I1) STEPS',
+     1   201, 1, 0, 0, 0, 0, ZERO,ZERO)
+      CALL XERR ('TAKEN ON THIS CALL BEFORE REACHING TOUT',
+     1   201, 1, 1, MXSTEP, 0, 1, TN, ZERO)
+      ISTATE = -1
+      GO TO 580
+C EWT(I) .LE. 0.0 FOR SOME I (NOT AT START OF PROBLEM). ----------------
+ 510   EWTI = RWORK(LEWT+I-1)
+      CALL XERR ('ODESSA - AT T (=R1), EWT(I1) HAS BECOME R2 .LE. 0.',
+     1   202, 1, 1, I, 0, 2, TN, EWTI)
+      ISTATE = -6
+      GO TO 580
+C TOO MUCH ACCURACY REQUESTED FOR MACHINE PRECISION. -------------------
+ 520  CALL XERR ('ODESSA - AT T (=R1), TOO MUCH ACCURACY REQUESTED',
+     1  203, 1, 0, 0, 0, 0, ZERO,ZERO)
+      CALL XERR ('FOR PRECISION OF MACHINE..  SEE TOLSF (=R2)',
+     1  203, 1, 0, 0, 0, 2, TN, TOLSF)
+      RWORK(14) = TOLSF
+      ISTATE = -2
+      GO TO 580
+C KFLAG = -1.  ERROR TEST FAILED REPEATEDLY OR WITH ABS(H) = HMIN. -----
+ 530  CALL XERR ('ODESSA - AT T(=R1) AND STEP SIZE H(=R2), THE ERROR',
+     1  204, 1, 0, 0, 0, 0, ZERO, ZERO)
+      CALL XERR ('TEST FAILED REPEATEDLY OR WITH ABS(H) = HMIN',
+     1  204, 1, 0, 0, 0, 2, TN, H)
+      ISTATE = -4
+      GO TO 560
+C KFLAG = -2.  CONVERGENCE FAILED REPEATEDLY OR WITH ABS(H) = HMIN. ----
+ 540  CALL XERR ('ODESSA - AT T (=R1) AND STEP SIZE H (=R2), THE',
+     1  205, 1, 0, 0, 0, 0, ZERO,ZERO)
+      CALL XERR ('CORRECTOR CONVERGENCE FAILED REPEATEDLY',
+     1   205, 1, 0, 0, 0, 0, ZERO,ZERO)
+      CALL XERR ('OR WITH ABS(H) = HMIN',
+     1   205, 1, 0, 0, 0, 2, TN, H)
+      ISTATE = -5
+C COMPUTE IMXER IF RELEVANT. -------------------------------------------
+ 560   BIG = ZERO
+      IMXER = 1
+      DO 570 I = 1,NYH
+        SIZE = ABS(RWORK(I+LACOR-1)*RWORK(I+LEWT-1))
+        IF (BIG .GE. SIZE) GO TO 570
+        BIG = SIZE
+        IMXER = I
+ 570    CONTINUE
+      IWORK(16) = IMXER
+C SET Y VECTOR, T, ILLIN, AND OPTIONAL OUTPUTS. ------------------------
+ 580   DO 590 I = 1,NYH
+ 590    Y(I) = RWORK(I+LYH-1)
+      T = TN
+      ILLIN = 0
+      RWORK(11) = HU
+      RWORK(12) = H
+      RWORK(13) = TN
+      IWORK(11) = NST
+      IWORK(12) = NFE
+      IWORK(13) = NJE
+      IWORK(14) = NQU
+      IWORK(15) = NQ
+      IF (ISOPT .EQ. 0) RETURN
+      IWORK(19) = NDFE
+      IWORK(20) = NSPE
+      RETURN
+C-----------------------------------------------------------------------
+C BLOCK I.
+C THE FOLLOWING BLOCK HANDLES ALL ERROR RETURNS DUE TO ILLEGAL INPUT
+C (ISTATE = -3), AS DETECTED BEFORE CALLING THE CORE INTEGRATOR.
+C FIRST THE ERROR MESSAGE ROUTINE IS CALLED.  THEN IF THERE HAVE BEEN
+C 5 CONSECUTIVE SUCH RETURNS JUST BEFORE THIS CALL TO THE KppSolveR,
+C THE RUN IS HALTED.
+C-----------------------------------------------------------------------
+ 601   CALL XERR ('ODESSA - ISTATE (=I1) ILLEGAL',
+     1  1, 1, 1, ISTATE, 0, 0, ZERO,ZERO)
+      GO TO 700
+ 602   CALL XERR ('ODESSA - ITASK (=I1) ILLEGAL',
+     1  2, 1, 1, ITASK, 0, 0, ZERO,ZERO)
+      GO TO 700
+ 603  CALL XERR ('ODESSA - ISTATE .GT. 1 BUT ODESSA NOT INITIALIZED',
+     1  3, 1, 0, 0, 0, 0, ZERO,ZERO)
+      GO TO 700
+ 604   CALL XERR ('ODESSA - NEQ (=I1) .LT. 1',
+     1  4, 1, 1, NEQ(1), 0, 0, ZERO,ZERO)
+      GO TO 700
+ 605  CALL XERR ('ODESSA - ISTATE = 3 AND NEQ CHANGED.  (I1 TO I2)',
+     1  5, 1, 2, N, NEQ(1), 0, ZERO,ZERO)
+      GO TO 700
+ 606   CALL XERR ('ODESSA - ITOL (=I1) ILLEGAL',
+     1  6, 1, 1, ITOL, 0, 0, ZERO,ZERO)
+      GO TO 700
+ 607   CALL XERR ('ODESSA - IOPT (=I1) ILLEGAL',
+     1   7, 1, 1, IOPT, 0, 0, ZERO,ZERO)
+      GO TO 700
+ 608   CALL XERR('ODESSA - MF (=I1) ILLEGAL',
+     1   8, 1, 1, MF, 0, 0, ZERO,ZERO)
+      GO TO 700
+ 609  CALL XERR('ODESSA - ML (=I1) ILLEGAL.. .LT.0 OR .GE.NEQ (=I2)',
+     1   9, 1, 2, ML, NEQ(1), 0, ZERO,ZERO)
+      GO TO 700
+ 610  CALL XERR('ODESSA - MU (=I1) ILLEGAL.. .LT.0 OR .GE.NEQ (=I2)',
+     1   10, 1, 2, MU, NEQ(1), 0, ZERO,ZERO)
+      GO TO 700
+ 611   CALL XERR('ODESSA - MAXORD (=I1) .LT. 0',
+     1   11, 1, 1, MAXORD, 0, 0, ZERO,ZERO)
+      GO TO 700
+ 612   CALL XERR('ODESSA - MXSTEP (=I1) .LT. 0',
+     1   12, 1, 1, MXSTEP, 0, 0, ZERO,ZERO)
+      GO TO 700
+ 613   CALL XERR('ODESSA - MXHNIL (=I1) .LT. 0',
+     1   13, 1, 1, MXHNIL, 0, 0, ZERO,ZERO)
+      GO TO 700
+ 614   CALL XERR('ODESSA - TOUT (=R1) BEHIND T (=R2)',
+     1   14, 1, 0, 0, 0, 2, TOUT, T)
+      CALL XERR('INTEGRATION DIRECTION IS GIVEN BY H0 (=R1)',
+     1   14, 1, 0, 0, 0, 1, H0, ZERO)
+      GO TO 700
+ 615   CALL XERR('ODESSA - HMAX (=R1) .LT. 0.0',
+     1   15, 1, 0, 0, 0, 1, HMAX, ZERO)
+      GO TO 700
+ 616   CALL XERR('ODESSA - HMIN (=R1) .LT. 0.0',
+     1   16, 1, 0, 0, 0, 1, HMIN, ZERO)
+      GO TO 700
+ 617  CALL XERR('ODESSA - RWORK LENGTH NEEDED, LENRW (=I1), EXCEEDS
+     1 LRW (=I2)', 17, 1, 2, LENRW, LRW, 0, ZERO,ZERO)
+      GO TO 700
+ 618  CALL XERR('ODESSA - IWORK LENGTH NEEDED, LENIW (=I1), EXCEEDS
+     1 LIW (=I2)', 18, 1, 2, LENIW, LIW, 0, ZERO,ZERO)
+      GO TO 700
+ 619   CALL XERR('ODESSA - RTOL(I1) IS R1 .LT. 0.0',
+     1   19, 1, 1, I, 0, 1, RTOLI, ZREO)
+      GO TO 700
+ 620   CALL XERR('ODESSA - ATOL(I1) IS R1 .LT. 0.0',
+     1   20, 1, 1, I, 0, 1, ATOLI, ZERO)
+      GO TO 700
+*
+ 621   EWTI = RWORK(LEWT+I-1)
+      CALL XERR('ODESSA - EWT(I1) IS R1 .LE. 0.0',
+     1   21, 1, 1, I, 0, 1, EWTI, ZERO)
+      GO TO 700
+ 622  CALL XERR('ODESSA - TOUT (=R1) TOO CLOSE TO T(=R2) TO START
+     1 INTEGRATION', 22, 1, 0, 0, 0, 2, TOUT, T)
+      GO TO 700
+ 623  CALL XERR('ODESSA - ITASK = I1 AND TOUT (=R1) BEHIND TCUR - HU
+     1 (= R2)', 23, 1, 1, ITASK, 0, 2, TOUT, TP)
+      GO TO 700
+ 624  CALL XERR('ODESSA - ITASK = 4 OR 5 AND TCRIT (=R1) BEHIND TCUR
+     1 (=R2)', 24, 1, 0, 0, 0, 2, TCRIT, TN)
+      GO TO 700
+ 625   CALL XERR('ODESSA - ITASK = 4 OR 5 AND TCRIT (=R1) BEHIND TOUT
+     1 (=R2)', 25, 1, 0, 0, 0, 2, TCRIT, TOUT)
+      GO TO 700
+ 626  CALL XERR('ODESSA - AT START OF PROBLEM, TOO MUCH ACCURACY',
+     1   26, 1, 0, 0, 0, 0, ZERO,ZERO)
+      CALL XERR('REQUESTED FOR PRECISION OF MACHINE. SEE TOLSF (=R1)',
+     1   26, 1, 0, 0, 0, 1, TOLSF, ZERO)
+      RWORK(14) = TOLSF
+      GO TO 700
+ 627  CALL XERR('ODESSA - TROUBLE FROM INTDY. ITASK = I1, TOUT = R1',
+     1   27, 1, 1, ITASK, 0, 1, TOUT, ZERO)
+      GO TO 700
+C ERROR STATEMENTS ASSOCIATED WITH SENSITIVITY ANALYSIS.
+ 628  CALL XERR('ODESSA - NPAR (=I1) .LT. 1',
+     1   28, 1, 1, NPAR, 0, 0, ZERO,ZERO)
+      GO TO 700
+ 629  CALL XERR('ODESSA - ISTATE = 3 AND NPAR CHANGED (I1 TO I2)',
+     1   29, 1, 2, NP, NPAR, 0, ZERO,ZERO)
+      GO TO 700
+ 630  CALL XERR('ODESSA - MITER (=I1) ILLEGAL',
+     1   30, 1, 1, MITER, 0, 0, ZERO,ZERO)
+      GO TO 700
+ 631  CALL XERR('ODESSA - TROUBLE IN SPRIME (IERPJ)',
+     1   31, 1, 0, 0, 0, 0, ZERO,ZERO)
+      GO TO 700
+ 632  CALL XERR('ODESSA - TROUBLE IN SPRIME (MITER)',
+     1   32, 1, 0, 0, 0, 0, ZERO,ZERO)
+      GO TO 700
+ 633  CALL XERR('ODESSA - FATAL ERROR IN STODE (KFLAG = -3)',
+     1   33, 2, 0, 0, 0, 0, ZERO,ZERO)
+      GO TO 801
+C
+ 700   IF (ILLIN .EQ. 5) GO TO 710
+      ILLIN = ILLIN + 1
+      ISTATE = -3
+      RETURN
+ 710  CALL XERR('ODESSA - REPEATED OCCURRENCES OF ILLEGAL INPUT',
+     1   302, 1, 0, 0, 0, 0, ZERO,ZERO)
+C
+ 800  CALL XERR('ODESSA - RUN ABORTED.. APPARENT INFINITE LOOP',
+     1   303, 2, 0, 0, 0, 0, ZERO,ZERO)
+      RETURN
+ 801  CALL XERR('ODESSA - RUN ABORTED',
+     1   304, 2, 0, 0, 0, 0, ZERO,ZERO)
+      RETURN
+C-------------------- END OF SUBROUTINE ODESSA -------------------------
+      END
+      DOUBLE PRECISION FUNCTION ADDX(A,B)
+      DOUBLE PRECISION A,B
+C
+C  THIS FUNCTION IS NECESSARY TO FORCE OPTIMIZING COMPILERS TO
+C  EXECUTE AND STORE A SUM, FOR SUCCESSFUL EXECUTION OF THE
+C  TEST A + B = B.
+C
+      ADDX = A + B
+      RETURN
+C-------------------- END OF FUNCTION SUM ------------------------------
+      END
+      SUBROUTINE SPRIME (NEQ, Y, YH, NYH, NROW, NCOL, WM, IWM,
+     1  EWT, SAVF, FTEM, DFDP, PAR, F, JAC, DF, PJAC, PDF)
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+      DIMENSION NEQ(*), Y(*), YH(NROW,NCOL,*), WM(*), IWM(*),
+     1  EWT(*), SAVF(*), FTEM(*), DFDP(NROW,*), PAR(*)
+      EXTERNAL F, JAC, DF, PJAC, PDF
+      PARAMETER (ONE=1.0D0,ZERO=0.0D0)
+      COMMON /ODE001/ ROWND, ROWNS(173),
+     1  RDUM1(37),EL0, H, RDUM2(6),
+     2  IOWND1(14), IOWNS(4),
+     3  IDUM1(3), IERPJ, IDUM2(6),
+     4  MITER, IDUM3(4), N, IDUM4(5)
+      COMMON /ODE002/ RDUM3(3),
+     1  IOWND2(3), IDUM5, NSV, IDUM6, NSPE, IDUM7, IERSP, JOPT, IDUM8
+C-----------------------------------------------------------------------
+C SPRIME IS CALLED BY ODESSA TO INITIALIZE THE YH ARRAY. IT IS ALSO
+C CALLED BY STODE TO REEVALUATE FIRST ORDER DERIVATIVES WHEN KFLAG
+C .LE. -3. SPRIME COMPUTES THE FIRST DERIVATIVES OF THE SENSITIVITY
+C COEFFICIENTS WITH RESPECT TO THE INDEPENDENT VARIABLE T...
+C
+C        SPRIME = D(DY/DP)/DT = JAC*DY/DP + DF/DP
+C                   WHERE JAC = JACOBIAN MATRIX
+C                       DY/DP = SENSITIVITY MATRIX
+C                       DF/DP = INHOMOGENEITY MATRIX
+C THIS ROUTINE USES THE COMMON VARIABLES EL0, H, IERPJ, MITER, N,
+C NSV, NSPE, IERSP, JOPT
+C-----------------------------------------------------------------------
+C CALL PREPJ WITH JOPT = 1.
+C IF MITER = 2 OR 5, EL0 IS TEMPORARILY SET TO -1.0 AND H IS
+C TEMPORARILY SET TO 1.0D0.
+C-----------------------------------------------------------------------
+      NSPE = NSPE + 1
+      JOPT = 1
+      IF (MITER .EQ. 1 .OR. MITER .EQ. 4) GO TO 10
+      HTEMP = H
+      ETEMP = EL0
+      H = ONE
+      EL0 = -ONE
+ 10   CALL PJAC (NEQ, Y, YH, NYH, WM, IWM, EWT, SAVF, FTEM,
+     1   PAR, F, JAC, JOPT)
+      IF (IERPJ .NE. 0) GO TO 300
+      JOPT = 0
+      IF (MITER .EQ. 1 .OR. MITER .EQ. 4) GO TO 20
+      H = HTEMP
+      EL0 = ETEMP
+C-----------------------------------------------------------------------
+C CALL PREPDF AND LOAD DFDP(*,JPAR).
+C-----------------------------------------------------------------------
+ 20   DO 30 J = 2,NSV
+        JPAR = J - 1
+        CALL PDF (NEQ, Y, WM, SAVF, FTEM, DFDP(1,JPAR), PAR,
+     1     F, DF, JPAR)
+ 30   CONTINUE
+C-----------------------------------------------------------------------
+C COMPUTE JAC*DY/DP AND STORE RESULTS IN YH(*,*,2).
+C-----------------------------------------------------------------------
+      GO TO (40,40,310,100,100) MITER
+C THE JACOBIAN IS FULL.------------------------------------------------
+C FOR EACH ROW OF THE JACOBIAN..
+C 40   DO 70 IROW = 1,N
+C AND EACH COLUMN OF THE SENSITIVITY MATRIX..
+C        DO 60 J = 2,NSV
+C          SUM = ZERO
+C TAKE THE VECTOR DOT PRODUCT..
+C          DO 50 I = 1,N
+C            IPD = IROW + N*(I-1) + 2
+C            SUM = SUM + WM(IPD)*YH(I,J,1)
+C 50       CONTINUE
+C          YH(IROW,J,2) = SUM
+C 60     CONTINUE
+C 70   CONTINUE
+  40  CONTINUE
+C FOR EACH COLUMN OF THE SENSITIVITY MATRIX..
+      DO 60 J = 2,NSV
+        CALL Jac_SP_Vec( WM(3), YH(1,J,1), YH(1,J,2) )
+ 60   CONTINUE
+      GO TO 200
+C THE JACOBIAN IS BANDED.-----------------------------------------------
+ 100  ML = IWM(1)
+      MU = IWM(2)
+      ICOUNT = 1
+      MBAND = ML + MU + 1
+      MEBAND = MBAND + ML
+      NMU = N - MU
+      ML1 = ML + 1
+C FOR EACH ROW OF THE JACOBIAN..
+      DO 160 IROW = 1,N
+        IF (IROW .GT. ML1) GO TO 110
+        IPD = MBAND + IROW + 1
+        IYH = 1
+        LBAND = MU + IROW
+        GO TO 120
+ 110    ICOUNT = ICOUNT + 1
+        IPD = ICOUNT*MEBAND + 2
+        IYH = IYH + 1
+        LBAND = LBAND - 1
+        IF (IROW .LE. NMU) LBAND = MBAND
+C AND EACH COLUMN OF THE SENSITIVITY MATRIX..
+ 120    DO 150 J = 2,NSV
+          SUM = ZERO
+          I1 = IPD
+          I2 = IYH
+C TAKE THE VECTOR DOT PRODUCT.
+          DO 140 I = 1,LBAND
+            SUM = SUM + WM(I1)*YH(I2,J,1)
+            I1 = I1 + MEBAND - 1
+            I2 = I2 + 1
+ 140      CONTINUE
+          YH(IROW,J,2) = SUM
+ 150    CONTINUE
+ 160  CONTINUE
+C-----------------------------------------------------------------------
+C ADD THE INHOMOGENEITY TERM, I.E., ADD DFDP(*,JPAR) TO YH(*,JPAR+1,2).
+C-----------------------------------------------------------------------
+ 200  DO 220 J = 2,NSV
+        JPAR = J - 1
+        DO 210 I = 1,N
+          YH(I,J,2) = YH(I,J,2) + DFDP(I,JPAR)
+ 210    CONTINUE
+ 220  CONTINUE
+      RETURN
+C-----------------------------------------------------------------------
+C ERROR RETURNS.
+C-----------------------------------------------------------------------
+ 300  IERSP = -1
+      RETURN
+ 310  IERSP = -2
+      RETURN
+C------------------------END OF SUBROUTINE SPRIME-----------------------
+      END
+      SUBROUTINE PREPJ (NEQ, Y, YH, NYH, WM, IWM, EWT, SAVF, FTEM,
+     1   PAR, FUNC_CHEM, JAC, JOPT)
+C      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+      INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Sparse.h'
+      DIMENSION NEQ(*), Y(*), YH(NYH,*), WM(*), IWM(*), EWT(*),
+     1   SAVF(*), FTEM(*), PAR(*)
+      EXTERNAL FUNC_CHEM, JAC
+      PARAMETER (ZERO=0.0D0,ONE=1.0D0)
+      COMMON /ODE001/ ROWND, ROWNS(173),
+     2   RDUM1(37), EL0, H, RDUM2(4), TN, UROUND,
+     3   IOWND(14), IOWNS(4),
+     4   IDUM1(3), IERPJ, IDUM2, JCUR, IDUM3(4),
+     5   MITER, IDUM4(4), N, IDUM5(2), NFE, NJE, IDUM6
+C-----------------------------------------------------------------------
+C PREPJ IS CALLED BY STODE TO COMPUTE AND PROCESS THE MATRIX
+C P = I - H*EL(1)*J , WHERE J IS AN APPROXIMATION TO THE JACOBIAN.
+C IF ISOPT = 1, PREPJ IS ALSO CALLED BY SPRIME WITH JOPT = 1.
+C HERE J IS COMPUTED BY THE USER-SUPPLIED ROUTINE JAC IF
+C MITER = 1 OR 4, OR BY FINITE DIFFERENCING IF MITER = 2, 3, OR 5.
+C IF MITER = 3, A DIAGONAL APPROXIMATION TO J IS USED.
+C J IS STORED IN WM AND REPLACED BY P.  IF MITER .NE. 3, P IS THEN
+C SUBJECTED TO LU DECOMPOSITION (JOPT = 0) IN PREPARATION FOR LATER
+C SOLUTION OF LINEAR SYSTEMS WITH P AS COEFFICIENT MATRIX. THIS IS
+C DONE BY DGEFA IF MITER = 1 OR 2, AND BY DGBFA IF MITER = 4 OR 5.
+C
+C IN ADDITION TO VARIABLES DESCRIBED PREVIOUSLY, COMMUNICATION
+C WITH PREPJ USES THE FOLLOWING..
+C Y     = ARRAY CONTAINING PREDICTED VALUES ON ENTRY.
+C FTEM  = WORK ARRAY OF LENGTH N (ACOR IN STODE).
+C SAVF  = ARRAY CONTAINING F EVALUATED AT PREDICTED Y.
+C WM    = REAL WORK SPACE FOR MATRICES.  ON OUTPUT IT CONTAINS THE
+C         INVERSE DIAGONAL MATRIX IF MITER = 3 AND THE LU DECOMPOSITION
+C         OF P IF MITER IS 1, 2 , 4, OR 5.
+C         STORAGE OF MATRIX ELEMENTS STARTS AT WM(3).
+C         WM ALSO CONTAINS THE FOLLOWING MATRIX-RELATED DATA..
+C         WM(1) = SQRT(UROUND), USED IN NUMERICAL JACOBIAN INCREMENTS.
+C         WM(2) = H*EL0, SAVED FOR LATER USE IF MITER = 3.
+C IWM   = INTEGER WORK SPACE CONTAINING PIVOT INFORMATION, STARTING AT
+C         IWM(21), IF MITER IS 1, 2, 4, OR 5.  IWM ALSO CONTAINS BAND
+C         PARAMETERS ML = IWM(1) AND MU = IWM(2) IF MITER IS 4 OR 5.
+C EL0   = EL(1) (INPUT).
+C IERPJ = OUTPUT ERROR FLAG,  = 0 IF NO TROUBLE, .GT. 0 IF
+C         P MATRIX FOUND TO BE SINGULAR.
+C JCUR  = OUTPUT FLAG = 1 TO INDICATE THAT THE JACOBIAN MATRIX
+C         (OR APPROXIMATION) IS NOW CURRENT.
+C JOPT  = INPUT JACOBIAN OPTION, = 1 IF JAC IS DESIRED ONLY.
+C THIS ROUTINE ALSO USES THE COMMON VARIABLES EL0, H, TN, UROUND,
+C IERPJ, JCUR, MITER, N, NFE, AND NJE.
+C-----------------------------------------------------------------------
+      NJE = NJE + 1
+      IERPJ = 0
+      JCUR = 1
+      HL0 = H*EL0
+      GO TO (100, 200, 300, 400, 500), MITER
+C IF MITER = 1, CALL JAC AND MULTIPLY BY SCALAR. -----------------------
+C 100   LENP = N*N
+ 100   LENP = LU_NONZERO
+      DO 110 I = 1,LU_NONZERO
+ 110    WM(I+2) = ZERO
+      CALL JAC (NEQ, TN, Y, PAR, 0, 0, WM(3), N)
+      IF (JOPT .EQ. 1) RETURN
+      CON = -HL0
+      DO 120 I = 1,LU_NONZERO
+ 120    WM(I+2) = WM(I+2)*CON
+      GO TO 240
+C IF MITER = 2, MAKE N CALLS TO F TO APPROXIMATE J. --------------------
+ 200   FAC = VNORM (N, SAVF, EWT)
+      R0 = 1000.0D0*ABS(H)*UROUND*REAL(N)*FAC
+      IF (R0 .EQ. ZERO) R0 = ONE
+      SRUR = WM(1)
+      J1 = 2
+      DO 230 J = 1,N
+        YJ = Y(J)
+        R = MAX(SRUR*ABS(YJ),R0/EWT(J))
+        Y(J) = Y(J) + R
+        FAC = -HL0/R
+        CALL FUNC_CHEM (NEQ, TN, Y, PAR, FTEM)
+        DO 220 I = 1,N
+ 220      WM(I+J1) = (FTEM(I) - SAVF(I))*FAC
+        Y(J) = YJ
+        J1 = J1 + N
+ 230    CONTINUE
+      NFE = NFE + N
+      IF (JOPT .EQ. 1) RETURN
+C ADD IDENTITY MATRIX. -------------------------------------------------
+ 240   J = 3
+C      DO 250 I = 1,N
+C        WM(J) = WM(J) + ONE
+C 250    J = J + (N + 1)
+      DO 250 I = 1,NVAR
+ 250       WM(2+LU_DIAG(I)) = WM(2+LU_DIAG(I)) + ONE
+C DO LU DECOMPOSITION ON P. --------------------------------------------
+C      CALL DGEFA (WM(3), N, N, IWM(21), IER)
+      CALL KppDecomp (WM(3), IER)
+      IF (IER .NE. 0) THEN
+           IERPJ = 1
+	   PRINT*,"Singular Matrix"
+	   STOP
+      END IF
+      RETURN
+C IF MITER = 3, CONSTRUCT A DIAGONAL APPROXIMATION TO J AND P. ---------
+ 300   WM(2) = HL0
+      R = EL0*0.1D0
+      DO 310 I = 1,N
+ 310    Y(I) = Y(I) + R*(H*SAVF(I) - YH(I,2))
+      CALL FUNC_CHEM (NEQ, TN, Y, PAR, WM(3))
+      NFE = NFE + 1
+      DO 320 I = 1,N
+        R0 = H*SAVF(I) - YH(I,2)
+        DI = 0.1D0*R0 - H*(WM(I+2) - SAVF(I))
+        WM(I+2) = 1.0D0
+        IF (ABS(R0) .LT. UROUND/EWT(I)) GO TO 320
+        IF (ABS(DI) .EQ. ZERO) GO TO 330
+        WM(I+2) = 0.1D0*R0/DI
+ 320    CONTINUE
+      RETURN
+ 330   IERPJ = 1
+      RETURN
+C IF MITER = 4, CALL JAC AND MULTIPLY BY SCALAR. -----------------------
+ 400   ML = IWM(1)
+      MU = IWM(2)
+      ML3 = ML + 3
+      MBAND = ML + MU + 1
+      MEBAND = MBAND + ML
+      LENP = MEBAND*N
+      DO 410 I = 1,LENP
+ 410    WM(I+2) = ZERO
+      CALL JAC (NEQ, TN, Y, PAR, ML, MU, WM(ML3), MEBAND)
+      IF (JOPT .EQ. 1) RETURN
+      CON = -HL0
+      DO 420 I = 1,LENP
+ 420    WM(I+2) = WM(I+2)*CON
+      GO TO 570
+C IF MITER = 5, MAKE MBAND CALLS TO F TO APPROXIMATE J. ----------------
+ 500   ML = IWM(1)
+      MU = IWM(2)
+      MBAND = ML + MU + 1
+      MBA = MIN(MBAND,N)
+      MEBAND = MBAND + ML
+      MEB1 = MEBAND - 1
+      SRUR = WM(1)
+      FAC = VNORM (N, SAVF, EWT)
+      R0 = 1000.0D0*ABS(H)*UROUND*REAL(N)*FAC
+      IF (R0 .EQ. ZERO) R0 = ONE
+      DO 560 J = 1,MBA
+        DO 530 I = J,N,MBAND
+          YI = Y(I)
+          R = MAX(SRUR*ABS(YI),R0/EWT(I))
+ 530      Y(I) = Y(I) + R
+        CALL FUNC_CHEM (NEQ, TN, Y, PAR, FTEM)
+        DO 550 JJ = J,N,MBAND
+          Y(JJ) = YH(JJ,1)
+          YJJ = Y(JJ)
+          R = MAX(SRUR*ABS(YJJ),R0/EWT(JJ))
+          FAC = -HL0/R
+          I1 = MAX(JJ-MU,1)
+          I2 = MIN(JJ+ML,N)
+          II = JJ*MEB1 - ML + 2
+          DO 540 I = I1,I2
+ 540        WM(II+I) = (FTEM(I) - SAVF(I))*FAC
+ 550      CONTINUE
+ 560    CONTINUE
+      NFE = NFE + MBA
+      IF (JOPT .EQ. 1) RETURN
+C ADD IDENTITY MATRIX. -------------------------------------------------
+ 570   II = MBAND + 2
+      DO 580 I = 1,N
+        WM(II) = WM(II) + ONE
+ 580    II = II + MEBAND
+C DO LU DECOMPOSITION OF P. --------------------------------------------
+      CALL DGBFA (WM(3), MEBAND, N, ML, MU, IWM(21), IER)
+      IF (IER .NE. 0) IERPJ = 1
+      RETURN
+C----------------------- END OF SUBROUTINE PREPJ -----------------------
+      END
+      SUBROUTINE PREPDF (NEQ, Y, SRUR, SAVF, FTEM, DFDP, PAR,
+     1   F, DF, JPAR)
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+      EXTERNAL F, DF
+      DIMENSION NEQ(*), Y(*), SAVF(*), FTEM(*), DFDP(*), PAR(*)
+      COMMON /ODE001/ ROWND, ROWNS(173),
+     1   RDUM1(43), TN, RDUM2,
+     2   IOWND1(14), IOWNS(4),
+     3   IDUM1(10), MITER, IDUM2(4), N, IDUM3(2), NFE, IDUM4(2)
+      COMMON /ODE002/ RDUM3(3),
+     1   IOWND2(3), IDUM5(2), NDFE, IDUM6, IDF, IDUM7(3)
+C-----------------------------------------------------------------------
+C PREPDF IS CALLED BY SPRIME AND STESA TO COMPUTE THE INHOMOGENEITY
+C VECTORS DF(I)/DP(JPAR). HERE DF/DP IS COMPUTED BY THE USER-SUPPLIED
+C ROUTINE DF IF IDF = 1, OR BY FINITE DIFFERENCING IF IDF = 0.
+C
+C IN ADDITION TO VARIABLES DESCRIBED PREVIOUSLY, COMMUNICATION WITH
+C PREPDF USES THE FOLLOWING..
+C Y     = REAL ARRAY OF LENGTH NYH CONTAINING DEPENDENT VARIABLES.
+C         PREPDF USES ONLY THE FIRST N ENTRIES OF Y(*).
+C SRUR  = SQRT(UROUND) (= WM(1)).
+C SAVF  = REAL ARRAY OF LENGTH N CONTAINING DERIVATIVES DY/DT.
+C FTEM  = REAL ARRAY OF LENGTH N USED TO TEMPORARILY STORE DY/DT FOR
+C         NUMERICAL DIFFERENTIATION.
+C DFDP  = REAL ARRAY OF LENGTH N USED TO STORE DF(I)/DP(JPAR), I = 1,N.
+C PAR   = REAL ARRAY OF LENGTH NPAR CONTAINING EQUATION PARAMETERS
+C         OF INTEREST.
+C JPAR  = INPUT PARAMETER, 2 .LE. JPAR .LE. NSV, DESIGNATING THE
+C         APPROPRIATE SOLUTION VECTOR CORRESPONDING TO PAR(JPAR).
+C THIS ROUTINE ALSO USES THE COMMON VARIABLES TN, MITER, N, NFE, NDFE,
+C AND IDF.
+C-----------------------------------------------------------------------
+      NDFE = NDFE + 1
+      IDF1 = IDF + 1
+      GO TO (100, 200), IDF1
+C IDF = 0, CALL F TO APPROXIMATE DFDP. ---------------------------------
+ 100  RPAR = PAR(JPAR)
+      R = MAX(SRUR*ABS(RPAR),SRUR)
+      PAR(JPAR) = RPAR + R
+      FAC = 1.0D0/R
+      CALL F (NEQ, TN, Y, PAR, FTEM)
+      DO 110 I = 1,N
+ 110    DFDP(I) = (FTEM(I) - SAVF(I))*FAC
+      PAR(JPAR) = RPAR
+      NFE = NFE + 1
+      RETURN
+C IDF = 1, CALL USER SUPPLIED DF. --------------------------------------
+ 200  DO 210 I = 1,N
+ 210    DFDP(I) = 0.0D0
+      CALL DF (NEQ, TN, Y, PAR, DFDP, JPAR)
+      RETURN
+C -------------------- END OF SUBROUTINE PREPDF ------------------------
+      END
+      SUBROUTINE INTDY (T, K, YH, NYH, DKY, IFLAG)
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+      DIMENSION YH(NYH,1), DKY(1)
+      COMMON /ODE001/ ROWND, ROWNS(173),
+     2   RDUM1(38),H, RDUM2(2), HU, RDUM3, TN, UROUND,
+     3   IOWND(14), IOWNS(4),
+     4   IDUM1(8), L, IDUM2,
+     5   IDUM3(5), N, NQ, IDUM4(4)
+C-----------------------------------------------------------------------
+C INTDY COMPUTES INTERPOLATED VALUES OF THE K-TH DERIVATIVE OF THE
+C DEPENDENT VARIABLE VECTOR Y, AND STORES IT IN DKY.  THIS ROUTINE
+C IS CALLED WITHIN THE PACKAGE WITH K = 0 AND T = TOUT, BUT MAY
+C ALSO BE CALLED BY THE USER FOR ANY K UP TO THE CURRENT ORDER.
+C (SEE DETAILED INSTRUCTIONS IN THE USAGE DOCUMENTATION.)
+C-----------------------------------------------------------------------
+C THE COMPUTED VALUES IN DKY ARE GOTTEN BY INTERPOLATION USING THE
+C NORDSIECK HISTORY ARRAY YH.  THIS ARRAY CORRESPONDS UNIQUELY TO A
+C VECTOR-VALUED POLYNOMIAL OF DEGREE NQCUR OR LESS, AND DKY IS SET
+C TO THE K-TH DERIVATIVE OF THIS POLYNOMIAL AT T.
+C THE FORMULA FOR DKY IS..
+C             Q
+C  DKY(I)  =  SUM  C(J,K) * (T - TN)**(J-K) * H**(-J) * YH(I,J+1)
+C            J=K
+C WHERE  C(J,K) = J*(J-1)*...*(J-K+1), Q = NQCUR, TN = TCUR, H = HCUR.
+C THE QUANTITIES  NQ = NQCUR, L = NQ+1, N = NEQ, TN, AND H ARE
+C COMMUNICATED BY COMMON.  THE ABOVE SUM IS DONE IN REVERSE ORDER.
+C IFLAG IS RETURNED NEGATIVE IF EITHER K OR T IS OUT OF BOUNDS.
+C-----------------------------------------------------------------------
+      IFLAG = 0
+      IF (K .LT. 0 .OR. K .GT. NQ) GO TO 80
+      TP = TN - HU*(1.0D0 + 100.0D0*UROUND)
+      IF ((T-TP)*(T-TN) .GT. 0.0D0) GO TO 90
+C
+      S = (T - TN)/H
+      IC = 1
+      IF (K .EQ. 0) GO TO 15
+      JJ1 = L - K
+      DO 10 JJ = JJ1,NQ
+ 10     IC = IC*JJ
+ 15   C = REAL(IC)
+      DO 20 I = 1,NYH
+ 20     DKY(I) = C*YH(I,L)
+      IF (K .EQ. NQ) GO TO 55
+      JB2 = NQ - K
+      DO 50 JB = 1,JB2
+        J = NQ - JB
+        JP1 = J + 1
+        IC = 1
+        IF (K .EQ. 0) GO TO 35
+        JJ1 = JP1 - K
+        DO 30 JJ = JJ1,J
+ 30       IC = IC*JJ
+ 35     C = REAL(IC)
+        DO 40 I = 1,NYH
+ 40       DKY(I) = C*YH(I,JP1) + S*DKY(I)
+ 50     CONTINUE
+      IF (K .EQ. 0) RETURN
+ 55   R = H**(-K)
+      DO 60 I = 1,NYH
+ 60     DKY(I) = R*DKY(I)
+      RETURN
+C
+ 80   CALL XERR('INTDY--  K (=I1) ILLEGAL',
+     1  51, 1, 1, K, 0, 0, ZERO,ZERO)
+      IFLAG = -1
+      RETURN
+ 90   CALL XERR ('INTDY--  T (=R1) ILLEGAL',
+     1   52, 1, 0, 0, 0, 1, T, ZERO)
+      CALL XERR('T NOT IN INTERVAL TCUR - HU (= R1) TO TCUR (=R2)',
+     1   52, 1, 0, 0, 0, 2, TP, TN)
+      IFLAG = -2
+      RETURN
+C----------------------- END OF SUBROUTINE INTDY -----------------------
+      END
+      SUBROUTINE STESA (NEQ, Y, NROW, NCOL, YH, WM, IWM, EWT, SAVF,
+     1   ACOR, PAR, NRS, F, JAC, DF, PJAC, PDF, KppSolve)
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+      EXTERNAL F, JAC, DF, PJAC, PDF, KppSolve
+      DIMENSION NEQ(*), Y(NROW,*), YH(NROW,NCOL,*), WM(*), IWM(*),
+     1   EWT(NROW,*), SAVF(*), ACOR(NROW,*), PAR(*), NRS(*)
+      PARAMETER (ONE=1.0D0,ZERO=0.0D0)
+      COMMON /ODE001/ ROWND, ROWNS(173),
+     1   TESCO(3,12), RDUM1, EL0, H, RDUM2(4), TN, RDUM3,
+     2   IOWND1(14), IOWNS(4),
+     3   IALTH, LMAX, IDUM1, IERPJ, IERSL, JCUR, IDUM2, KFLAG, L, IDUM3,
+     4   MITER, IDUM4(4), N, NQ, IDUM5, NFE, IDUM6(2)
+      COMMON /ODE002/ DUPS, DSMS, DDNS,
+     1   IOWND2(3), IDUM7, NSV, IDUM8(2), IDF, IDUM9, JOPT, KFLAGS
+C-----------------------------------------------------------------------
+C STESA IS CALLED BY STODE TO PERFORM AN EXPLICIT CALCULATION FOR THE
+C FIRST-ORDER SENSITIVITY COEFFICIENTS DY(I)/DP(J), I = 1,N; J = 1,NPAR.
+C
+C IN ADDITION TO THE VARIABLES DESCRIBED PREVIOUSLY, COMMUNICATION
+C WITH STESA USES THE FOLLOWING..
+C Y      = AN NROW (=N) BY NCOL (=NSV) REAL ARRAY CONTAINING THE
+C          CORRECTED DEPENDENT VARIABLES ON OUTPUT..
+C                  Y(I,1) , I = 1,N = STATE VARIABLES (INPUT);
+C                  Y(I,J) , I = 1,N , J = 2,NSV ,
+C                           = SENSITIVITY COEFFICIENTS, DY(I)/DP(J).
+C YH     = AN N BY NSV BY LMAX REAL ARRAY CONTAINING THE PREDICTED
+C          DEPENDENT VARIABLES AND THEIR APPROXIMATE SCALED DERIVATIVES.
+C SAVF   = A REAL ARRAY OF LENGTH N USED TO STORE FIRST DERIVATIVES
+C          OF DEPENDENT VARIABLES IF MITER = 2 OR 5.
+C PAR    = A REAL ARRAY OF LENGTH NPAR CONTAINING THE EQUATION
+C          PARAMETERS OF INTEREST.
+C NRS    = AN INTEGER ARRAY OF LENGTH NPAR + 1 CONTAINING THE NUMBER
+C          OF REPEATED STEPS (KFLAGS .LT. 0) DUE TO THE SENSITIVITY
+C          CALCULATIONS..
+C                  NRS(1) = TOTAL NUMBER OF REPEATED STEPS
+C                  NRS(I) , I = 2,NPAR = NUMBER OF REPEATED STEPS DUE
+C                                        TO PARAMETER I.
+C NSV    = NUMBER OF SOLUTION VECTORS = NPAR + 1.
+C KFLAGS = LOCAL ERROR TEST FLAG, = 0 IF TEST PASSES, .LT. 0 IF TEST
+C          FAILS, AND STEP NEEDS TO BE REPEATED. ERROR TEST IS APPLIED
+C          TO EACH SOLUTION VECTOR INDEPENDENTLY.
+C DUPS, DSMS, DDNS = REAL SCALARS USED FOR COMPUTING RHUP, RHSM, RHDN,
+C                    ON RETURN TO STODE (IALTH .EQ. 1).
+C THIS ROUTINE ALSO USES THE COMMON VARIABLES EL0, H, TN, IALTH, LMAX,
+C IERPJ, IERSL, JCUR, KFLAG, L, MITER, N, NQ, NFE, AND JOPT.
+C-----------------------------------------------------------------------
+      DUPS = ZERO
+      DSMS = ZERO
+      DDNS = ZERO
+      HL0 = H*EL0
+      EL0I = ONE/EL0
+      TI2 = ONE/TESCO(2,NQ)
+      TI3 = ONE/TESCO(3,NQ)
+C IF MITER = 2 OR 5 (OR IDF = 0), SUPPLY DERIVATIVES AT CORRECTED
+C Y(*,1) VALUES FOR NUMERICAL DIFFERENTIATION IN PJAC AND/OR PDF.
+      IF (MITER .EQ. 2  .OR.  MITER .EQ. 5  .OR.  IDF .EQ. 0)  GO TO 10
+      GO TO 15
+ 10   CALL F (NEQ, TN, Y, PAR, SAVF)
+      NFE = NFE + 1
+C IF JCUR = 0, UPDATE THE JACOBIAN MATRIX.
+C IF MITER = 5, LOAD CORRECTED Y(*,1) VALUES INTO Y(*,2).
+ 15   IF (JCUR .EQ. 1) GO TO 30
+      IF (MITER .NE. 5) GO TO 25
+      DO 20 I = 1,N
+ 20     Y(I,2) = Y(I,1)
+ 25   CALL PJAC (NEQ, Y, Y(1,2), N, WM, IWM, EWT, SAVF, ACOR(1,2),
+     1   PAR, F, JAC, JOPT)
+      IF (IERPJ .NE. 0) RETURN
+C-----------------------------------------------------------------------
+C THIS IS A LOOPING POINT FOR THE SENSITIVITY CALCULATIONS.
+C-----------------------------------------------------------------------
+C FOR EACH PARAMETER PAR(*), A SENSITIVITY SOLUTION VECTOR IS COMPUTED
+C USING THE SAME STEP SIZE (H) AND ORDER (NQ) AS IN STODE.
+C A LOCAL ERROR TEST IS APPLIED INDEPENDENTLY TO EACH SOLUTION VECTOR.
+C-----------------------------------------------------------------------
+ 30   DO 100 J = 2,NSV
+        JPAR = J - 1
+C EVALUATE INHOMOGENEITY TERM, TEMPORARILY LOAD INTO Y(*,JPAR+1). ------
+        CALL PDF(NEQ, Y, WM, SAVF, ACOR(1,J), Y(1,J), PAR,
+     1     F, DF, JPAR)
+C-----------------------------------------------------------------------
+C LOAD RHS OF SENSITIVITY SOLUTION (CORRECTOR) EQUATION..
+C
+C       RHS = DY/DP - EL(1)*H*D(DY/DP)/DT + EL(1)*H*DF/DP
+C
+C-----------------------------------------------------------------------
+        DO 40 I = 1,N
+ 40       Y(I,J) = YH(I,J,1) - EL0*YH(I,J,2) + HL0*Y(I,J)
+C-----------------------------------------------------------------------
+C KppSolve CORRECTOR EQUATION: THE SOLUTIONS ARE LOCATED IN Y(*,JPAR+1).
+C THE EXPLICIT FORMULA IS..
+C
+C       (I - EL(1)*H*JAC) * DY/DP(CORRECTED) = RHS
+C
+C-----------------------------------------------------------------------
+        CALL KppSolve (WM, IWM, Y(1,J), DUM)
+        IF (IERSL .NE. 0) RETURN
+C ESTIMATE LOCAL TRUNCATION ERROR. -------------------------------------
+        DO 50 I = 1,N
+ 50       ACOR(I,J) = (Y(I,J) - YH(I,J,1))*EL0I
+        ERR = VNORM(N, ACOR(1,J), EWT(1,J))*TI2
+        IF (ERR .GT. ONE) GO TO 200
+C-----------------------------------------------------------------------
+C LOCAL ERROR TEST PASSED. SET KFLAGS TO 0 TO INDICATE THIS.
+C IF IALTH = 1, COMPUTE DSMS, DDNS, AND DUPS (IF L .LT. LMAX).
+C-----------------------------------------------------------------------
+        KFLAGS = 0
+        IF (IALTH .GT. 1) GO TO 100
+        IF (L .EQ. LMAX) GO TO 70
+        DO 60 I= 1,N
+ 60       Y(I,J) = ACOR(I,J) - YH(I,J,LMAX)
+        DUPS = MAX(DUPS,VNORM(N,Y(1,J),EWT(1,J))*TI3)
+ 70     DSMS = MAX(DSMS,ERR)
+ 100  CONTINUE
+      RETURN
+C-----------------------------------------------------------------------
+C THIS SECTION IS REACHED IF THE ERROR TOLERANCE FOR SENSITIVITY
+C SOLUTION VECTOR JPAR HAS BEEN VIOLATED. KFLAGS IS MADE NEGATIVE TO
+C INDICATE THIS. IF KFLAGS = -1, SET KFLAG EQUAL TO ZERO SO THAT KFLAG
+C IS SET TO -1 ON RETURN TO STODE BEFORE REPEATING THE STEP.
+C INCREMENT NRS(1) (= TOTAL NUMBER OF REPEATED STEPS DUE TO ALL
+C SENSITIVITY SOLUTION VECTORS) BY ONE.
+C INCREMENT NRS(JPAR+1) (= TOTAL NUMBER OF REPEATED STEPS DUE TO
+C SOLUTION VECTOR JPAR+1) BY ONE.
+C LOAD DSMS FOR RH CALCULATION IN STODE.
+C-----------------------------------------------------------------------
+ 200  KFLAGS = KFLAGS - 1
+      IF (KFLAGS .EQ. -1) KFLAG = 0
+      NRS(1) = NRS(1) + 1
+      NRS(J) = NRS(J) + 1
+      DSMS = ERR
+      RETURN
+C------------------------ END OF SUBROUTINE STESA ----------------------
+      END
+      SUBROUTINE STODE (NEQ, Y, YH, NYH, YH1, WM, IWM, EWT, SAVF, ACOR,
+     1   PAR, NRS, F, JAC, DF, PJAC, PDF, SLVS)
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+      EXTERNAL F, JAC, DF, PJAC, PDF, SLVS
+      DIMENSION NEQ(*), Y(*), YH(NYH,*), YH1(*), WM(*), IWM(*), EWT(*),
+     1   SAVF(*), ACOR(*), PAR(*), NRS(*)
+      PARAMETER (ONE=1.0D0,ZERO=0.0D0)
+      COMMON /ODE001/ ROWND,
+     1   CONIT, CRATE, EL(13), ELCO(13,12), HOLD, RMAX,
+     2   TESCO(3,12), CCMAX, EL0, H, HMIN, HMXI, HU, RC, TN, UROUND,
+     3   IOWND1(14), IPUP, MEO, NQNYH, NSLP,
+     4   IALTH, LMAX, ICF, IERPJ, IERSL, JCUR, JSTART, KFLAG, L, METH,
+     5   MITER, MAXORD, MAXCOR, MSBP, MXNCF, N, NQ, NST, NFE, NJE, NQU
+      COMMON /ODE002/ DUPS, DSMS, DDNS,
+     1   IOWND2(3), ISOPT, NSV, NDFE, NSPE, IDF, IERSP, JOPT, KFLAGS
+C-----------------------------------------------------------------------
+C STODE PERFORMS ONE STEP OF THE INTEGRATION OF AN INITIAL VALUE
+C PROBLEM FOR A SYSTEM OF ORDINARY DIFFERENTIAL EQUATIONS.
+C NOTE.. STODE IS INDEPENDENT OF THE VALUE OF THE ITERATION METHOD
+C INDICATOR MITER, WHEN THIS IS .NE. 0, AND HENCE IS INDEPENDENT
+C OF THE TYPE OF CHORD METHOD USED, OR THE JACOBIAN STRUCTURE.
+C FOR ISOPT = 1, STODE CALLS STESA FOR SENSITIVITY CALCULATIONS.
+C VARIABLES USED FOR COMMUNICATION WITH STESA ARE DESCRIBED IN STESA.
+C COMMUNICATION WITH STODE IS DONE WITH THE FOLLOWING VARIABLES..
+C
+C NEQ   = INTEGER ARRAY CONTAINING PROBLEM SIZE IN NEQ(1), AND
+C         NUMBER OF PARAMETERS TO BE CONSIDERED IN THE SENSITIVITY
+C         ANALYSIS NEQ(2) (FOR ISOPT = 1), AND PASSED AS THE
+C         NEQ ARGUMENT IN ALL CALLS TO F,  JAC, AND DF.
+C Y     = AN ARRAY OF LENGTH .GE. N USED AS THE Y ARGUMENT IN
+C         ALL CALLS TO F, JAC, AND DF.
+C YH    = AN NYH BY LMAX ARRAY CONTAINING THE DEPENDENT VARIABLES
+C         AND THEIR APPROXIMATE SCALED DERIVATIVES, WHERE
+C         LMAX = MAXORD + 1.  YH(I,J+1) CONTAINS THE APPROXIMATE
+C         J-TH DERIVATIVE OF Y(I), SCALED BY H**J/FACTORIAL(J)
+C         (J = 0,1,...,NQ).  ON ENTRY FOR THE FIRST STEP, THE FIRST
+C         TWO COLUMNS OF YH MUST BE SET FROM THE INITIAL VALUES.
+C NYH   = A CONSTANT INTEGER .GE. N, THE FIRST DIMENSION OF YH.
+C         THE TOTAL NUMBER OF FIRST-ORDER DIFFERENTIAL EQUATIONS..
+C         NYH = N, ISOPT = 0,
+C         NYH = N * (NPAR + 1), ISOPT = 1
+C YH1   = A ONE-DIMENSIONAL ARRAY OCCUPYING THE SAME SPACE AS YH.
+C EWT   = AN ARRAY OF LENGTH NYH CONTAINING MULTIPLICATIVE WEIGHTS
+C         FOR LOCAL ERROR MEASUREMENTS.  LOCAL ERRORS IN Y(I) ARE
+C         COMPARED TO 1.0/EWT(I) IN VARIOUS ERROR TESTS.
+C SAVF  = AN ARRAY OF WORKING STORAGE, OF LENGTH N.
+C         ALSO USED FOR INPUT OF YH(*,MAXORD+2) WHEN JSTART = -1
+C         AND MAXORD .LT. THE CURRENT ORDER NQ.
+C ACOR  = A WORK ARRAY OF LENGTH NYH, USED FOR THE ACCUMULATED
+C         CORRECTIONS.  ON A SUCCESSFUL RETURN, ACOR(I) CONTAINS
+C         THE ESTIMATED ONE-STEP LOCAL ERROR IN Y(I).
+C WM,IWM = REAL AND INTEGER WORK ARRAYS ASSOCIATED WITH MATRIX
+C         OPERATIONS IN CHORD ITERATION (MITER .NE. 0).
+C PJAC  = NAME OF ROUTINE TO EVALUATE AND PREPROCESS JACOBIAN MATRIX
+C         AND P = I - H*EL0*JAC, IF A CHORD METHOD IS BEING USED.
+C         IF ISOPT = 1, PJAC CAN BE CALLED TO CALCULATE JAC BY
+C         SETTING JOPT = 1.
+C SLVS  = NAME OF ROUTINE TO KppSolve LINEAR SYSTEM IN CHORD ITERATION.
+C CCMAX  = MAXIMUM RELATIVE CHANGE IN H*EL0 BEFORE PJAC IS CALLED.
+C H     = THE STEP SIZE TO BE ATTEMPTED ON THE NEXT STEP.
+C         H IS ALTERED BY THE ERROR CONTROL ALGORITHM DURING THE
+C         PROBLEM.  H CAN BE EITHER POSITIVE OR NEGATIVE, BUT ITS
+C         SIGN MUST REMAIN CONSTANT THROUGHOUT THE PROBLEM.
+C HMIN  = THE MINIMUM ABSOLUTE VALUE OF THE STEP SIZE H TO BE USED.
+C HMXI  = INVERSE OF THE MAXIMUM ABSOLUTE VALUE OF H TO BE USED.
+C         HMXI = 0.0 IS ALLOWED AND CORRESPONDS TO AN INFINITE HMAX.
+C         HMIN AND HMXI MAY BE CHANGED AT ANY TIME, BUT WILL NOT
+C         TAKE EFFECT UNTIL THE NEXT CHANGE OF H IS CONSIDERED.
+C TN    = THE INDEPENDENT VARIABLE. TN IS UPDATED ON EACH STEP TAKEN.
+C JSTART = AN INTEGER USED FOR INPUT ONLY, WITH THE FOLLOWING
+C         VALUES AND MEANINGS..
+C              0  PERFORM THE FIRST STEP.
+C          .GT.0  TAKE A NEW STEP CONTINUING FROM THE LAST.
+C             -1  TAKE THE NEXT STEP WITH A NEW VALUE OF H, MAXORD,
+C                   N, METH, OR MITER.
+C             -2  TAKE THE NEXT STEP WITH A NEW VALUE OF H,
+C                   BUT WITH OTHER INPUTS UNCHANGED.
+C         ON RETURN, JSTART IS SET TO 1 TO FACILITATE CONTINUATION.
+C KFLAG  = A COMPLETION CODE WITH THE FOLLOWING MEANINGS..
+C              0  THE STEP WAS SUCCESFUL.
+C             -1  THE REQUESTED ERROR COULD NOT BE ACHIEVED.
+C             -2  CORRECTOR CONVERGENCE COULD NOT BE ACHIEVED.
+C             -3  FATAL ERROR IN PJAC, OR SLVS, (OR STESA).
+C         A RETURN WITH KFLAG = -1 OR -2 MEANS EITHER
+C         ABS(H) = HMIN OR 10 CONSECUTIVE FAILURES OCCURRED.
+C         ON A RETURN WITH KFLAG NEGATIVE, THE VALUES OF TN AND
+C         THE YH ARRAY ARE AS OF THE BEGINNING OF THE LAST
+C         STEP, AND H IS THE LAST STEP SIZE ATTEMPTED.
+C MAXORD = THE MAXIMUM ORDER OF INTEGRATION METHOD TO BE ALLOWED.
+C MAXCOR = THE MAXIMUM NUMBER OF CORRECTOR ITERATIONS ALLOWED.
+C          (= 3, IF ISOPT = 0)
+C          (= 4, IF ISOPT = 1)
+C MSBP  = MAXIMUM NUMBER OF STEPS BETWEEN PJAC CALLS (MITER .GT. 0).
+C         IF ISOPT = 1, PJAC IS CALLED AT LEAST ONCE EVERY STEP.
+C MXNCF  = MAXIMUM NUMBER OF CONVERGENCE FAILURES ALLOWED.
+C METH/MITER = THE METHOD FLAGS.  SEE DESCRIPTION IN DRIVER.
+C N     = THE NUMBER OF FIRST-ORDER MODEL DIFFERENTIAL EQUATIONS.
+C-----------------------------------------------------------------------
+      KFLAG = 0
+      KFLAGS = 0
+      TOLD = TN
+      NCF = 0
+      IERPJ = 0
+      IERSL = 0
+      JCUR = 0
+      ICF = 0
+      IF (JSTART .GT. 0) GO TO 200
+      IF (JSTART .EQ. -1) GO TO 100
+      IF (JSTART .EQ. -2) GO TO 160
+C-----------------------------------------------------------------------
+C ON THE FIRST CALL, THE ORDER IS SET TO 1, AND OTHER VARIABLES ARE
+C INITIALIZED.  RMAX IS THE MAXIMUM RATIO BY WHICH H CAN BE INCREASED
+C IN A SINGLE STEP.  IT IS INITIALLY 1.E4 TO COMPENSATE FOR THE SMALL
+C INITIAL H, BUT THEN IS NORMALLY EQUAL TO 10.  IF A FAILURE
+C OCCURS (IN CORRECTOR CONVERGENCE OR ERROR TEST), RMAX IS SET AT 2
+C FOR THE NEXT INCREASE.
+C THESE COMPUTATIONS CONSIDER ONLY THE ORIGINAL SOLUTION VECTOR.
+C THE SENSITIVITY SOLUTION VECTORS ARE CONSIDERED IN STESA (ISOPT = 1).
+C-----------------------------------------------------------------------
+      LMAX = MAXORD + 1
+      NQ = 1
+      L = 2
+      IALTH = 2
+      RMAX = 10000.0D0
+      RC = ZERO
+      EL0 = ONE
+      CRATE = 0.7D0
+      DELP = ZERO
+      HOLD = H
+      MEO = METH
+      NSLP = 0
+      IPUP = MITER
+      IRET = 3
+      GO TO 140
+C-----------------------------------------------------------------------
+C THE FOLLOWING BLOCK HANDLES PRELIMINARIES NEEDED WHEN JSTART = -1.
+C IPUP IS SET TO MITER TO FORCE A MATRIX UPDATE.
+C IF AN ORDER INCREASE IS ABOUT TO BE CONSIDERED (IALTH = 1),
+C IALTH IS RESET TO 2 TO POSTPONE CONSIDERATION ONE MORE STEP.
+C IF THE CALLER HAS CHANGED METH, CFODE IS CALLED TO RESET
+C THE COEFFICIENTS OF THE METHOD.
+C IF THE CALLER HAS CHANGED MAXORD TO A VALUE LESS THAN THE CURRENT
+C ORDER NQ, NQ IS REDUCED TO MAXORD, AND A NEW H CHOSEN ACCORDINGLY.
+C IF H IS TO BE CHANGED, YH MUST BE RESCALED.
+C IF H OR METH IS BEING CHANGED, IALTH IS RESET TO L = NQ + 1
+C TO PREVENT FURTHER CHANGES IN H FOR THAT MANY STEPS.
+C-----------------------------------------------------------------------
+ 100   IPUP = MITER
+      LMAX = MAXORD + 1
+      IF (IALTH .EQ. 1) IALTH = 2
+      IF (METH .EQ. MEO) GO TO 110
+      CALL CFODE (METH, ELCO, TESCO)
+      MEO = METH
+      IF (NQ .GT. MAXORD) GO TO 120
+      IALTH = L
+      IRET = 1
+      GO TO 150
+ 110   IF (NQ .LE. MAXORD) GO TO 160
+ 120   NQ = MAXORD
+      L = LMAX
+      DO 125 I = 1,L
+ 125    EL(I) = ELCO(I,NQ)
+      NQNYH = NQ*NYH
+      RC = RC*EL(1)/EL0
+      EL0 = EL(1)
+      CONIT = 0.5D0/REAL(NQ+2)
+      DDN = VNORM (N, SAVF, EWT)/TESCO(1,L)
+      EXDN = ONE/REAL(L)
+      RHDN = ONE/(1.3D0*DDN**EXDN + 0.0000013D0)
+      RH = MIN(RHDN,ONE)
+      IREDO = 3
+      IF (H .EQ. HOLD) GO TO 170
+      RH = MIN(RH,ABS(H/HOLD))
+      H = HOLD
+      GO TO 175
+C-----------------------------------------------------------------------
+C CFODE IS CALLED TO GET ALL THE INTEGRATION COEFFICIENTS FOR THE
+C CURRENT METH.  THEN THE EL VECTOR AND RELATED CONSTANTS ARE RESET
+C WHENEVER THE ORDER NQ IS CHANGED, OR AT THE START OF THE PROBLEM.
+C-----------------------------------------------------------------------
+ 140   CALL CFODE (METH, ELCO, TESCO)
+ 150   DO 155 I = 1,L
+ 155    EL(I) = ELCO(I,NQ)
+      NQNYH = NQ*NYH
+      RC = RC*EL(1)/EL0
+      EL0 = EL(1)
+      CONIT = 0.5D0/REAL(NQ+2)
+      GO TO (160, 170, 200), IRET
+C-----------------------------------------------------------------------
+C IF H IS BEING CHANGED, THE H RATIO RH IS CHECKED AGAINST
+C RMAX, HMIN, AND HMXI, AND THE YH ARRAY RESCALED.  IALTH IS SET TO
+C L = NQ + 1 TO PREVENT A CHANGE OF H FOR THAT MANY STEPS, UNLESS
+C FORCED BY A CONVERGENCE OR ERROR TEST FAILURE.
+C-----------------------------------------------------------------------
+ 160  IF (H .EQ. HOLD) GO TO 200
+      RH = H/HOLD
+      H = HOLD
+      IREDO = 3
+      GO TO 175
+ 170   RH = MAX(RH,HMIN/ABS(H))
+ 175   RH = MIN(RH,RMAX)
+      RH = RH/MAX(ONE,ABS(H)*HMXI*RH)
+      R = ONE
+      DO 180 J = 2,L
+        R = R*RH
+        DO 180 I = 1,NYH
+ 180      YH(I,J) = YH(I,J)*R
+      H = H*RH
+      RC = RC*RH
+      IALTH = L
+      IF (IREDO .EQ. 0) GO TO 690
+C-----------------------------------------------------------------------
+C THIS SECTION COMPUTES THE PREDICTED VALUES BY EFFECTIVELY
+C MULTIPLYING THE YH ARRAY BY THE PASCAL TRIANGLE MATRIX.
+C RC IS THE RATIO OF NEW TO OLD VALUES OF THE COEFFICIENT  H*EL(1).
+C WHEN RC DIFFERS FROM 1 BY MORE THAN CCMAX, IPUP IS SET TO MITER
+C TO FORCE PJAC TO BE CALLED, IF A JACOBIAN IS INVOLVED.
+C IN ANY CASE, PJAC IS CALLED AT LEAST EVERY MSBP STEPS FOR ISOPT = 0,
+C AND AT LEAST ONCE EVERY STEP FOR ISOPT = 1.
+C-----------------------------------------------------------------------
+ 200  IF (ABS(RC-ONE) .GT. CCMAX) IPUP = MITER
+      IF (NST .GE. NSLP+MSBP) IPUP = MITER
+      TN = TN + H
+      I1 = NQNYH + 1
+      DO 215 JB = 1,NQ
+        I1 = I1 - NYH
+        DO 210 I = I1,NQNYH
+ 210      YH1(I) = YH1(I) + YH1(I+NYH)
+ 215    CONTINUE
+C-----------------------------------------------------------------------
+C UP TO MAXCOR CORRECTOR ITERATIONS ARE TAKEN.  (= 3, FOR ISOPT = 0;
+C = 4, FOR ISOPT = 1).  A CONVERGENCE TEST IS MADE ON THE R.M.S. NORM
+C OF EACH CORRECTION, WEIGHTED BY THE ERROR WEIGHT VECTOR EWT.  THE SUM
+C OF THE CORRECTIONS IS ACCUMULATED IN THE VECTOR ACOR(I), I = 1,N.
+C (ACOR(I), I = N+1,NYH IS LOADED IN SUBROUTINE STESA (ISOPT = 1).)
+C THE YH ARRAY IS NOT ALTERED IN THE CORRECTOR LOOP.
+C-----------------------------------------------------------------------
+ 220  M = 0
+      DO 230 I = 1,N
+ 230    Y(I) = YH(I,1)
+      CALL F (NEQ, TN, Y, PAR, SAVF)
+      NFE = NFE + 1
+      IF (IPUP .LE. 0) GO TO 250
+C-----------------------------------------------------------------------
+C IF INDICATED, THE MATRIX P = I - H*EL(1)*J IS REEVALUATED AND
+C PREPROCESSED BEFORE STARTING THE CORRECTOR ITERATION.  IPUP IS SET
+C TO 0 AS AN INDICATOR THAT THIS HAS BEEN DONE.
+C-----------------------------------------------------------------------
+      IPUP = 0
+      RC = ONE
+      NSLP = NST
+      CRATE = 0.7D0
+      CALL PJAC (NEQ, Y, YH, NYH, WM, IWM, EWT, SAVF, ACOR, PAR,
+     1   F, JAC, JOPT)
+      IF (IERPJ .NE. 0) GO TO 430
+ 250   DO 260 I = 1,N
+ 260    ACOR(I) = ZERO
+ 270   IF (MITER .NE. 0) GO TO 350
+C-----------------------------------------------------------------------
+C IN THE CASE OF FUNCTIONAL ITERATION, UPDATE Y DIRECTLY FROM
+C THE RESULT OF THE LAST FUNCTION EVALUATION.
+C (IF ISOPT = 1, FUNCTIONAL ITERATION IS NOT ALLOWED.)
+C-----------------------------------------------------------------------
+      DO 290 I = 1,N
+        SAVF(I) = H*SAVF(I) - YH(I,2)
+ 290    Y(I) = SAVF(I) - ACOR(I)
+      DEL = VNORM (N, Y, EWT)
+      DO 300 I = 1,N
+        Y(I) = YH(I,1) + EL(1)*SAVF(I)
+ 300    ACOR(I) = SAVF(I)
+      GO TO 400
+C-----------------------------------------------------------------------
+C IN THE CASE OF THE CHORD METHOD, COMPUTE THE CORRECTOR ERROR,
+C AND KppSolve THE LINEAR SYSTEM WITH THAT AS RIGHT-HAND SIDE AND
+C P AS COEFFICIENT MATRIX.
+C-----------------------------------------------------------------------
+ 350   DO 360 I = 1,N
+ 360    Y(I) = H*SAVF(I) - (YH(I,2) + ACOR(I))
+      CALL SLVS (WM, IWM, Y, SAVF)
+      IF (IERSL .LT. 0) GO TO 430
+      IF (IERSL .GT. 0) GO TO 410
+      DEL = VNORM (N, Y, EWT)
+      DO 380 I = 1,N
+        ACOR(I) = ACOR(I) + Y(I)
+ 380    Y(I) = YH(I,1) + EL(1)*ACOR(I)
+C-----------------------------------------------------------------------
+C TEST FOR CONVERGENCE.  IF M.GT.0, AN ESTIMATE OF THE CONVERGENCE
+C RATE CONSTANT IS STORED IN CRATE, AND THIS IS USED IN THE TEST.
+C-----------------------------------------------------------------------
+ 400   IF (M .NE. 0) CRATE = MAX(0.2D0*CRATE,DEL/DELP)
+      DCON = DEL*MIN(ONE,1.5D0*CRATE)/(TESCO(2,NQ)*CONIT)
+      IF (DCON .LE. ONE) GO TO 450
+      M = M + 1
+      IF (M .EQ. MAXCOR) GO TO 410
+      IF (M .GE. 2 .AND. DEL .GT. 2.0D0*DELP) GO TO 410
+      DELP = DEL
+      CALL F (NEQ, TN, Y, PAR, SAVF)
+      NFE = NFE + 1
+      GO TO 270
+C-----------------------------------------------------------------------
+C THE CORRECTOR ITERATION FAILED TO CONVERGE IN MAXCOR TRIES.
+C IF MITER .NE. 0 AND THE JACOBIAN IS OUT OF DATE, PJAC IS CALLED FOR
+C THE NEXT TRY.  OTHERWISE THE YH ARRAY IS RETRACTED TO ITS VALUES
+C BEFORE PREDICTION, AND H IS REDUCED, IF POSSIBLE.  IF H CANNOT BE
+C REDUCED OR MXNCF FAILURES HAVE OCCURRED, EXIT WITH KFLAG = -2.
+C-----------------------------------------------------------------------
+ 410   IF (MITER .EQ. 0 .OR. JCUR .EQ. 1) GO TO 430
+      ICF = 1
+      IPUP = MITER
+      GO TO 220
+ 430   ICF = 2
+      NCF = NCF + 1
+      RMAX = 2.0D0
+      TN = TOLD
+      I1 = NQNYH + 1
+      DO 445 JB = 1,NQ
+        I1 = I1 - NYH
+        DO 440 I = I1,NQNYH
+ 440      YH1(I) = YH1(I) - YH1(I+NYH)
+ 445    CONTINUE
+      IF (IERPJ .LT. 0 .OR. IERSL .LT. 0) GO TO 680
+      IF (ABS(H) .LE. HMIN*1.00001D0) GO TO 670
+      IF (NCF .EQ. MXNCF) GO TO 670
+      RH = 0.25D0
+      IPUP = MITER
+      IREDO = 1
+      GO TO 170
+C-----------------------------------------------------------------------
+C THE CORRECTOR HAS CONVERGED.
+C THE LOCAL ERROR TEST IS MADE AND CONTROL PASSES TO STATEMENT 500
+C IF IT FAILS. OTHERWISE, STESA IS CALLED (ISOPT = 1) TO PERFORM
+C SENSITIVITY CALCULATIONS AT CURRENT STEP SIZE AND ORDER.
+C-----------------------------------------------------------------------
+ 450   CONTINUE
+      IF (M .EQ. 0) DSM = DEL/TESCO(2,NQ)
+      IF (M .GT. 0) DSM = VNORM (N, ACOR, EWT)/TESCO(2,NQ)
+      IF (DSM .GT. ONE) GO TO 500
+C
+      IF (ISOPT .EQ. 0) GO TO 460
+C-----------------------------------------------------------------------
+C CALL STESA TO PERFORM EXPLICIT SENSITIVITY ANALYSIS.
+C IF THE LOCAL ERROR TEST FAILS (WITHIN STESA) FOR ANY SOLUTION VECTOR,
+C KFLAGS IS SET .LT. 0 AND CONTROL PASSES TO STATEMENT 500 UPON RETURN.
+C IN EITHER CASE, JCUR IS SET TO ZERO TO SIGNAL THAT THE JACOBIAN MAY
+C NEED UPDATING LATER.
+C-----------------------------------------------------------------------
+      CALL STESA (NEQ, Y, N, NSV, YH, WM, IWM, EWT, SAVF, ACOR,
+     1   PAR, NRS, F, JAC, DF, PJAC, PDF, SLVS)
+      IF (IERPJ .NE. 0 .OR. IERSL .NE. 0) GO TO 680
+      IF (KFLAGS .LT. 0) GO TO 500
+C-----------------------------------------------------------------------
+C AFTER A SUCCESSFUL STEP, UPDATE THE YH ARRAY.
+C CONSIDER CHANGING H IF IALTH = 1.  OTHERWISE DECREASE IALTH BY 1.
+C IF IALTH IS THEN 1 AND NQ .LT. MAXORD, THEN ACOR IS SAVED FOR
+C USE IN A POSSIBLE ORDER INCREASE ON THE NEXT STEP.
+C IF A CHANGE IN H IS CONSIDERED, AN INCREASE OR DECREASE IN ORDER
+C BY ONE IS CONSIDERED ALSO.  A CHANGE IN H IS MADE ONLY IF IT IS BY A
+C FACTOR OF AT LEAST 1.1.  IF NOT, IALTH IS SET TO 3 TO PREVENT
+C TESTING FOR THAT MANY STEPS.
+C-----------------------------------------------------------------------
+ 460   JCUR = 0
+      KFLAG = 0
+      IREDO = 0
+      NST = NST + 1
+      HU = H
+      NQU = NQ
+      DO 470 J = 1,L
+        DO 470 I = 1,NYH
+ 470      YH(I,J) = YH(I,J) + EL(J)*ACOR(I)
+      IALTH = IALTH - 1
+      IF (IALTH .EQ. 0) GO TO 520
+      IF (IALTH .GT. 1) GO TO 700
+      IF (L .EQ. LMAX) GO TO 700
+      DO 490 I = 1,NYH
+ 490    YH(I,LMAX) = ACOR(I)
+      GO TO 700
+C-----------------------------------------------------------------------
+C THE ERROR TEST FAILED IN EITHER STODE OR STESA.
+C KFLAG KEEPS TRACK OF MULTIPLE FAILURES.
+C RESTORE TN AND THE YH ARRAY TO THEIR PREVIOUS VALUES, AND PREPARE
+C TO TRY THE STEP AGAIN.  COMPUTE THE OPTIMUM STEP SIZE FOR THIS OR
+C ONE LOWER ORDER.  AFTER 2 OR MORE FAILURES, H IS FORCED TO DECREASE
+C BY A FACTOR OF 0.2 OR LESS.
+C-----------------------------------------------------------------------
+ 500  KFLAG = KFLAG - 1
+      JCUR = 0
+      TN = TOLD
+      I1 = NQNYH + 1
+      DO 515 JB = 1,NQ
+        I1 = I1 - NYH
+        DO 510 I = I1,NQNYH
+ 510      YH1(I) = YH1(I) - YH1(I+NYH)
+ 515    CONTINUE
+      RMAX = 2.0D0
+      IF (ABS(H) .LE. HMIN*1.00001D0) GO TO 660
+      IF (KFLAG .LE. -3) GO TO 640
+      IREDO = 2
+      RHUP = ZERO
+      GO TO 540
+C-----------------------------------------------------------------------
+*
+C REGARDLESS OF THE SUCCESS OR FAILURE OF THE STEP, FACTORS
+C RHDN, RHSM, AND RHUP ARE COMPUTED, BY WHICH H COULD BE MULTIPLIED
+C AT ORDER NQ - 1, ORDER NQ, OR ORDER NQ + 1, RESPECTIVELY.
+C IN THE CASE OF FAILURE, RHUP = 0.0 TO AVOID AN ORDER INCREASE.
+C THE LARGEST OF THESE IS DETERMINED AND THE NEW ORDER CHOSEN
+C ACCORDINGLY.  IF THE ORDER IS TO BE INCREASED, WE COMPUTE ONE
+C ADDITIONAL SCALED DERIVATIVE.
+C FOR ISOPT = 1, DUPS AND DSMS ARE LOADED WITH THE LARGEST RMS-NORMS
+C OBTAINED BY CONSIDERING SEPARATELY THE SENSITIVITY SOLUTION VECTORS.
+C-----------------------------------------------------------------------
+ 520   RHUP = ZERO
+      IF (L .EQ. LMAX) GO TO 540
+      DO 530 I = 1,N
+ 530    SAVF(I) = ACOR(I) - YH(I,LMAX)
+      DUP = VNORM (N, SAVF, EWT)/TESCO(3,NQ)
+      DUP = MAX(DUP,DUPS)
+      EXUP = ONE/REAL(L+1)
+      RHUP = ONE/(1.4D0*DUP**EXUP + 0.0000014D0)
+ 540   EXSM = ONE/REAL(L)
+      DSM = MAX(DSM,DSMS)
+      RHSM = ONE/(1.2D0*DSM**EXSM + 0.0000012D0)
+      RHDN = ZERO
+      IF (NQ .EQ. 1) GO TO 560
+      JPOINT = 1
+      DO 550 J = 1,NSV
+        DDN = VNORM (N, YH(JPOINT,L), EWT(JPOINT))/TESCO(1,NQ)
+        DDNS = MAX(DDNS,DDN)
+        JPOINT = JPOINT + N
+ 550  CONTINUE
+      DDN = DDNS
+      DDNS = ZERO
+      EXDN = ONE/REAL(NQ)
+      RHDN = ONE/(1.3D0*DDN**EXDN + 0.0000013D0)
+ 560   IF (RHSM .GE. RHUP) GO TO 570
+      IF (RHUP .GT. RHDN) GO TO 590
+      GO TO 580
+ 570   IF (RHSM .LT. RHDN) GO TO 580
+      NEWQ = NQ
+      RH = RHSM
+      GO TO 620
+ 580   NEWQ = NQ - 1
+      RH = RHDN
+      IF (KFLAG .LT. 0 .AND. RH .GT. ONE) RH = ONE
+      GO TO 620
+ 590   NEWQ = L
+      RH = RHUP
+      IF (RH .LT. 1.1D0) GO TO 610
+      R = EL(L)/REAL(L)
+      DO 600 I = 1,NYH
+ 600    YH(I,NEWQ+1) = ACOR(I)*R
+      GO TO 630
+ 610   IALTH = 3
+      GO TO 700
+ 620   IF ((KFLAG .EQ. 0) .AND. (RH .LT. 1.1D0)) GO TO 610
+      IF (KFLAG .LE. -2) RH = MIN(RH,0.2D0)
+C-----------------------------------------------------------------------
+C IF THERE IS A CHANGE OF ORDER, RESET NQ, L, AND THE COEFFICIENTS.
+C IN ANY CASE H IS RESET ACCORDING TO RH AND THE YH ARRAY IS RESCALED.
+C THEN EXIT FROM 690 IF THE STEP WAS OK, OR REDO THE STEP OTHERWISE.
+C-----------------------------------------------------------------------
+      IF (NEWQ .EQ. NQ) GO TO 170
+ 630   NQ = NEWQ
+      L = NQ + 1
+      IRET = 2
+      GO TO 150
+C-----------------------------------------------------------------------
+C CONTROL REACHES THIS SECTION IF 3 OR MORE FAILURES HAVE OCCURED.
+C IF 10 FAILURES HAVE OCCURRED, EXIT WITH KFLAG = -1.
+C IT IS ASSUMED THAT THE DERIVATIVES THAT HAVE ACCUMULATED IN THE
+C YH ARRAY HAVE ERRORS OF THE WRONG ORDER.  HENCE THE FIRST
+C DERIVATIVE IS RECOMPUTED, AND THE ORDER IS SET TO 1.  THEN
+C H IS REDUCED BY A FACTOR OF 10, AND THE STEP IS RETRIED,
+C UNTIL IT SUCCEEDS OR H REACHES HMIN.
+C-----------------------------------------------------------------------
+ 640   IF (KFLAG .EQ. -10) GO TO 660
+      RH = 0.1D0
+      RH = MAX(HMIN/ABS(H),RH)
+      H = H*RH
+      DO 645 I = 1,NYH
+ 645    Y(I) = YH(I,1)
+      CALL F (NEQ, TN, Y, PAR, SAVF)
+      NFE = NFE + 1
+      IF (ISOPT .EQ. 0) GO TO 649
+      CALL SPRIME (NEQ, Y, YH, NYH, N, NSV, WM, IWM, EWT, SAVF, ACOR,
+     1   ACOR(N+1), PAR, F, JAC, DF, PJAC, PDF)
+      IF (IERSP .LT. 0) GO TO 680
+      DO 646 I = N+1,NYH
+ 646    YH(I,2) = H*YH(I,2)
+ 649  DO 650 I = 1,N
+ 650    YH(I,2) = H*SAVF(I)
+      IPUP = MITER
+      IALTH = 5
+      IF (NQ .EQ. 1) GO TO 200
+      NQ = 1
+      L = 2
+      IRET = 3
+      GO TO 150
+C-----------------------------------------------------------------------
+C ALL RETURNS ARE MADE THROUGH THIS SECTION.  H IS SAVED IN HOLD
+C TO ALLOW THE CALLER TO CHANGE H ON THE NEXT STEP.
+C-----------------------------------------------------------------------
+ 660   KFLAG = -1
+      GO TO 720
+ 670   KFLAG = -2
+      GO TO 720
+ 680   KFLAG = -3
+      GO TO 720
+ 690   RMAX = 10.0D0
+ 700   R = ONE/TESCO(2,NQU)
+      DO 710 I = 1,NYH
+ 710    ACOR(I) = ACOR(I)*R
+ 720   HOLD = H
+      JSTART = 1
+      RETURN
+C----------------------- END OF SUBROUTINE STODE -----------------------
+      END
+      SUBROUTINE CFODE (METH, ELCO, TESCO)
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+      DIMENSION ELCO(13,12), TESCO(3,12)
+C-----------------------------------------------------------------------
+C CFODE IS CALLED BY THE INTEGRATOR ROUTINE TO SET COEFFICIENTS
+C NEEDED THERE.  THE COEFFICIENTS FOR THE CURRENT METHOD, AS
+C GIVEN BY THE VALUE OF METH, ARE SET FOR ALL ORDERS AND SAVED.
+C THE MAXIMUM ORDER ASSUMED HERE IS 12 IF METH = 1 AND 5 IF METH = 2.
+C (A SMALLER VALUE OF THE MAXIMUM ORDER IS ALSO ALLOWED.)
+C CFODE IS CALLED ONCE AT THE BEGINNING OF THE PROBLEM,
+C AND IS NOT CALLED AGAIN UNLESS AND UNTIL METH IS CHANGED.
+C
+C THE ELCO ARRAY CONTAINS THE BASIC METHOD COEFFICIENTS.
+C THE COEFFICIENTS EL(I), 1 .LE. I .LE. NQ+1, FOR THE METHOD OF
+C ORDER NQ ARE STORED IN ELCO(I,NQ).  THEY ARE GIVEN BY A GENETRATING
+C POLYNOMIAL, I.E.,
+C    L(X) = EL(1) + EL(2)*X + ... + EL(NQ+1)*X**NQ.
+C FOR THE IMPLICIT ADAMS METHODS, L(X) IS GIVEN BY
+C    DL/DX = (X+1)*(X+2)*...*(X+NQ-1)/FACTORIAL(NQ-1),    L(-1) = 0.
+C FOR THE BDF METHODS, L(X) IS GIVEN BY
+C    L(X) = (X+1)*(X+2)* ... *(X+NQ)/K,
+C WHERE        K = FACTORIAL(NQ)*(1 + 1/2 + ... + 1/NQ).
+C
+C THE TESCO ARRAY CONTAINS TEST CONSTANTS USED FOR THE
+C LOCAL ERROR TEST AND THE SELECTION OF STEP SIZE AND/OR ORDER.
+C AT ORDER NQ, TESCO(K,NQ) IS USED FOR THE SELECTION OF STEP
+C SIZE AT ORDER NQ - 1 IF K = 1, AT ORDER NQ IF K = 2, AND AT ORDER
+C NQ + 1 IF K = 3.
+C-----------------------------------------------------------------------
+      DIMENSION PC(12)
+      PARAMETER (ONE=1.0D0,ZERO=0.0D0)
+C
+      GO TO (100, 200), METH
+C
+ 100   ELCO(1,1) = ONE
+      ELCO(2,1) = ONE
+      TESCO(1,1) = ZERO
+      TESCO(2,1) = 2.0D0
+      TESCO(1,2) = ONE
+      TESCO(3,12) = ZERO
+      PC(1) = ONE
+      RQFAC = ONE
+      DO 140 NQ = 2,12
+C-----------------------------------------------------------------------
+C THE PC ARRAY WILL CONTAIN THE COEFFICIENTS OF THE POLYNOMIAL
+C    P(X) = (X+1)*(X+2)*...*(X+NQ-1).
+C INITIALLY, P(X) = 1.
+C-----------------------------------------------------------------------
+        RQ1FAC = RQFAC
+        RQFAC = RQFAC/REAL(NQ)
+        NQM1 = NQ - 1
+        FNQM1 = REAL(NQM1)
+        NQP1 = NQ + 1
+C FORM COEFFICIENTS OF P(X)*(X+NQ-1). ----------------------------------
+        PC(NQ) = ZERO
+        DO 110 IB = 1,NQM1
+          I = NQP1 - IB
+ 110      PC(I) = PC(I-1) + FNQM1*PC(I)
+        PC(1) = FNQM1*PC(1)
+C COMPUTE INTEGRAL, -1 TO 0, OF P(X) AND X*P(X). -----------------------
+        PINT = PC(1)
+        XPIN = PC(1)/2.0D0
+        TSIGN = ONE
+        DO 120 I = 2,NQ
+          TSIGN = -TSIGN
+          PINT = PINT + TSIGN*PC(I)/REAL(I)
+ 120      XPIN = XPIN + TSIGN*PC(I)/REAL(I+1)
+C STORE COEFFICIENTS IN ELCO AND TESCO. --------------------------------
+        ELCO(1,NQ) = PINT*RQ1FAC
+        ELCO(2,NQ) = ONE
+        DO 130 I = 2,NQ
+ 130      ELCO(I+1,NQ) = RQ1FAC*PC(I)/REAL(I)
+        AGAMQ = RQFAC*XPIN
+        RAGQ = ONE/AGAMQ
+        TESCO(2,NQ) = RAGQ
+        IF (NQ .LT. 12) TESCO(1,NQP1) = RAGQ*RQFAC/REAL(NQP1)
+        TESCO(3,NQM1) = RAGQ
+ 140    CONTINUE
+      RETURN
+C
+ 200   PC(1) = ONE
+      RQ1FAC = ONE
+      DO 230 NQ = 1,5
+C-----------------------------------------------------------------------
+C THE PC ARRAY WILL CONTAIN THE COEFFICIENTS OF THE POLYNOMIAL
+C    P(X) = (X+1)*(X+2)*...*(X+NQ).
+C INITIALLY, P(X) = 1.
+C-----------------------------------------------------------------------
+        FNQ = REAL(NQ)
+        NQP1 = NQ + 1
+C FORM COEFFICIENTS OF P(X)*(X+NQ). ------------------------------------
+        PC(NQP1) = ZERO
+        DO 210 IB = 1,NQ
+          I = NQ + 2 - IB
+ 210      PC(I) = PC(I-1) + FNQ*PC(I)
+        PC(1) = FNQ*PC(1)
+C STORE COEFFICIENTS IN ELCO AND TESCO. --------------------------------
+        DO 220 I = 1,NQP1
+ 220      ELCO(I,NQ) = PC(I)/PC(2)
+        ELCO(2,NQ) = ONE
+        TESCO(1,NQ) = RQ1FAC
+        TESCO(2,NQ) = REAL(NQP1)/ELCO(1,NQ)
+        TESCO(3,NQ) = REAL(NQ+2)/ELCO(1,NQ)
+        RQ1FAC = RQ1FAC/FNQ
+ 230    CONTINUE
+      RETURN
+C----------------------- END OF SUBROUTINE CFODE -----------------------
+      END
+      SUBROUTINE SOLSY (WM, IWM, X, TEM)
+C      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+      INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Sparse.h'
+      DIMENSION WM(*), IWM(*), X(*), TEM(*)
+      PARAMETER (ZERO=0.0D0,ONE=1.0D0)
+      COMMON /ODE001/ ROWND, ROWNS(173),
+     2   RDUM1(37), EL0, H, RDUM2(6),
+     3   IOWND(14), IOWNS(4),
+     4   IDUM1(4), IERSL, IDUM2(5),
+     5   MITER, IDUM3(4), N, IDUM4(5)
+C-----------------------------------------------------------------------
+C THIS ROUTINE MANAGES THE SOLUTION OF THE LINEAR SYSTEM ARISING FROM
+C A CHORD ITERATION.  IT IS CALLED IF MITER .NE. 0.
+C IF MITER IS 1 OR 2, IT CALLS DGESL TO ACCOMPLISH THIS.
+C IF MITER = 3 IT UPDATES THE COEFFICIENT H*EL0 IN THE DIAGONAL
+C MATRIX, AND THEN COMPUTES THE SOLUTION.
+C IF MITER IS 4 OR 5, IT CALLS DGBSL.
+C COMMUNICATION WITH SOLSY USES THE FOLLOWING VARIABLES..
+C WM   = REAL WORK SPACE CONTAINING THE INVERSE DIAGONAL MATRIX IF
+C        MITER = 3 AND THE LU DECOMPOSITION OF THE MATRIX OTHERWISE.
+C        STORAGE OF MATRIX ELEMENTS STARTS AT WM(3).
+C        WM ALSO CONTAINS THE FOLLOWING MATRIX-RELATED DATA..
+C        WM(1) = SQRT(UROUND) (NOT USED HERE),
+C        WM(2) = HL0, THE PREVIOUS VALUE OF H*EL0, USED IF MITER = 3.
+C IWM  = INTEGER WORK SPACE CONTAINING PIVOT INFORMATION, STARTING AT
+C        IWM(21), IF MITER IS 1, 2, 4, OR 5.  IWM ALSO CONTAINS BAND
+C        PARAMETERS ML = IWM(1) AND MU = IWM(2) IF MITER IS 4 OR 5.
+C X    = THE RIGHT-HAND SIDE VECTOR ON INPUT, AND THE SOLUTION VECTOR
+C        ON OUTPUT, OF LENGTH N.
+C TEM  = VECTOR OF WORK SPACE OF LENGTH N, NOT USED IN THIS VERSION.
+C IERSL = OUTPUT FLAG (IN COMMON).  IERSL = 0 IF NO TROUBLE OCCURRED.
+C        IERSL = 1 IF A SINGULAR MATRIX AROSE WITH MITER = 3.
+C THIS ROUTINE ALSO USES THE COMMON VARIABLES EL0, H, MITER, AND N.
+C-----------------------------------------------------------------------
+      IERSL = 0
+      GO TO (100, 100, 300, 400, 400), MITER
+C 100   CALL DGESL (WM(3), N, N, IWM(21), X, 0)
+ 100   CALL KppSolve (WM(3), X)
+      RETURN
+C
+ 300   PHL0 = WM(2)
+      HL0 = H*EL0
+      WM(2) = HL0
+      IF (HL0 .EQ. PHL0) GO TO 330
+      R = HL0/PHL0
+      DO 320 I = 1,N
+        DI = ONE - R*(ONE - ONE/WM(I+2))
+        IF (ABS(DI) .EQ. ZERO) GO TO 390
+ 320    WM(I+2) = ONE/DI
+ 330   DO 340 I = 1,N
+ 340    X(I) = WM(I+2)*X(I)
+      RETURN
+ 390   IERSL = 1
+      RETURN
+C
+ 400   ML = IWM(1)
+      MU = IWM(2)
+      MEBAND = 2*ML + MU + 1
+      CALL DGBSL (WM(3), MEBAND, N, ML, MU, IWM(21), X, 0)
+      RETURN
+C----------------------- END OF SUBROUTINE SOLSY -----------------------
+      END
+      SUBROUTINE EWSET (N, ITOL, RTOL, ATOL, YCUR, EWT)
+C-----------------------------------------------------------------------
+C THIS SUBROUTINE SETS THE ERROR WEIGHT VECTOR EWT ACCORDING TO
+C    EWT(I) = RTOL(I)*ABS(YCUR(I)) + ATOL(I),  I = 1,...,N,
+C WITH THE SUBSCRIPT ON RTOL AND/OR ATOL POSSIBLY REPLACED BY 1 ABOVE,
+C DEPENDING ON THE VALUE OF ITOL.
+C-----------------------------------------------------------------------
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+      DIMENSION RTOL(*), ATOL(*), YCUR(N), EWT(N)
+      RTOLI = RTOL(1)
+      ATOLI = ATOL(1)
+      DO 10 I = 1,N
+        IF (ITOL .GE. 3) RTOLI = RTOL(I)
+        IF (ITOL .EQ. 2 .OR. ITOL .EQ. 4) ATOLI = ATOL(I)
+        EWT(I) = RTOLI*ABS(YCUR(I)) + ATOLI
+ 10     CONTINUE
+      RETURN
+C----------------------- END OF SUBROUTINE EWSET -----------------------
+      END
+      DOUBLE PRECISION FUNCTION VNORM (N, V, W)
+C-----------------------------------------------------------------------
+C THIS FUNCTION ROUTINE COMPUTES THE WEIGHTED ROOT-MEAN-SQUARE NORM
+C OF THE VECTOR OF LENGTH N CONTAINED IN THE ARRAY V, WITH WEIGHTS
+C CONTAINED IN THE ARRAY W OF LENGTH N..
+C  VNORM = SQRT( (1/N) * SUM( V(I)*W(I) )**2 )
+C PROTECTION FOR UNDERFLOW/OVERFLOW IS ACCOMPLISHED USING TWO
+C CONSTANTS WHICH ARE HOPEFULLY APPLICABLE FOR ALL MACHINES.
+C THESE ARE:
+C     CUTLO = maximum of SQRT(U/EPS)  over all known machines
+C     CUTHI = minimum of SQRT(Z)      over all known machines
+C WHERE
+C     EPS = smallest number s.t. EPS + 1 .GT. 1
+C     U   = smallest positive number (underflow limit)
+C     Z   = largest number (overflow limit)
+C
+C DETAILS OF THE ALGORITHM AND OF VALUES OF CUTLO AND CUTHI ARE
+C FOUND IN THE BLAS ROUTINE SNRM2 (SEE ALSO ALGORITHM 539, TRANS.
+C MATH. SOFTWARE, VOL. 5 NO. 3, 1979, 308-323.
+C FOR SINGLE PRECISION, THE FOLLOWING VALUES SHOULD BE UNIVERSAL:
+C     DATA CUTLO,CUTHI /4.441E-16,1.304E19/
+C FOR DOUBLE PRECISION, USE
+C     DATA CUTLO,CUTHI /8.232D-11,1.304D19/
+C
+C-----------------------------------------------------------------------
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+      INTEGER NEXT,I,J,N
+      DIMENSION V(N),W(N)
+      DATA CUTLO,CUTHI /8.232D-11,1.304D19/
+      DATA ZERO,ONE/0.0D0,1.0D0/
+C  BLAS ALGORITHM
+      NEXT = 1
+      SUM = ZERO
+      I = 1
+20    SX = V(I)*W(I)
+      GO TO (30,40,70,80),NEXT
+30    IF (ABS(SX).GT.CUTLO) GO TO 110
+      NEXT = 2
+      XMAX = ZERO
+40    IF (SX.EQ.ZERO) GO TO 130
+      IF (ABS(SX).GT.CUTLO) GO TO 110
+      NEXT = 3
+      GO TO 60
+50    I=J
+      NEXT = 4
+      SUM = (SUM/SX)/SX
+60    XMAX = ABS(SX)
+      GO TO 90
+70    IF(ABS(SX).GT.CUTLO) GO TO 100
+80    IF(ABS(SX).LE.XMAX) GO TO 90
+      SUM = ONE + SUM * (XMAX/SX)**2
+      XMAX = ABS(SX)
+      GO TO 130
+90    SUM = SUM + (SX/XMAX)**2
+      GO TO 130
+100   SUM = (SUM*XMAX)*XMAX
+110   HITEST = CUTHI/REAL(N)
+      DO 120 J = I,N
+         SX = V(J)*W(J)
+         IF(ABS(SX).GE.HITEST) GO TO 50
+         SUM = SUM + SX**2
+120   CONTINUE
+      VNORM = SQRT(SUM)
+      GO TO 140
+130   CONTINUE
+      I = I + 1
+      IF (I.LE.N) GO TO 20
+      VNORM = XMAX * SQRT(SUM)
+140   CONTINUE
+      RETURN
+C----------------------- END OF FUNCTION VNORM -------------------------
+      END
+      SUBROUTINE SVCOM (RSAV, ISAV)
+C-----------------------------------------------------------------------
+C THIS ROUTINE STORES IN RSAV AND ISAV THE CONTENTS OF COMMON BLOCKS
+C ODE001, ODE002 AND EH0001, WHICH ARE USED INTERNALLY IN THE ODESSA
+C PACKAGE.
+C RSAV = REAL ARRAY OF LENGTH 222 OR MORE.
+C ISAV = INTEGER ARRAY OF LENGTH 52 OR MORE.
+C-----------------------------------------------------------------------
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+      DIMENSION RSAV(*), ISAV(*)
+      COMMON /ODE001/ RODE1(219), IODE1(39)
+      COMMON /ODE002/ RODE2(3), IODE2(11)
+      COMMON /EH0001/ IEH(2)
+      DATA LRODE1/219/, LIODE1/39/, LRODE2/3/, LIODE2/11/
+C
+      DO 10 I = 1,LRODE1
+ 10     RSAV(I) = RODE1(I)
+      DO 20 I = 1,LRODE2
+        J = LRODE1 + I
+ 20     RSAV(J) = RODE2(I)
+      DO 30 I = 1,LIODE1
+ 30     ISAV(I) = IODE1(I)
+      DO 40 I = 1,LIODE2
+        J = LIODE1 + I
+ 40     ISAV(J) = IODE2(I)
+      ISAV(LIODE1+LIODE2+1) = IEH(1)
+      ISAV(LIODE1+LIODE2+2) = IEH(2)
+      RETURN
+C----------------------- END OF SUBROUTINE SVCOM -----------------------
+      END
+      SUBROUTINE RSCOM (RSAV, ISAV)
+C-----------------------------------------------------------------------
+C THIS ROUTINE RESTORES FROM RSAV AND ISAV THE CONTENTS OF COMMON BLOCKS
+C ODE001, ODE002 AND EH0001, WHICH ARE USED INTERNALLY IN THE ODESSSA
+C PACKAGE.  THIS PRESUMES THAT RSAV AND ISAV WERE LOADED BY MEANS
+C OF SUBROUTINE SVCOM OR THE EQUIVALENT.
+C-----------------------------------------------------------------------
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+      DIMENSION RSAV(*), ISAV(*)
+      COMMON /ODE001/ RODE1(219), IODE1(39)
+      COMMON /ODE002/ RODE2(3), IODE2(11)
+      COMMON /EH0001/ IEH(2)
+      DATA LRODE1/219/, LIODE1/39/, LRODE2/3/, LIODE2/11/
+C
+      DO 10 I = 1,LRODE1
+ 10     RODE1(I) = RSAV(I)
+      DO 20 I = 1,LRODE2
+        J = LRODE1 + I
+ 20     RODE2(I) = RSAV(J)
+      DO 30 I = 1,LIODE1
+ 30     IODE1(I) = ISAV(I)
+      DO 40 I = 1,LODE2
+        J = LIODE1 + I
+ 40     IODE2(I) = ISAV(J)
+      IEH(1) = ISAV(LIODE1+LIODE2+1)
+      IEH(2) = ISAV(LIODE1+LIODE2+2)
+      RETURN
+C----------------------- END OF SUBROUTINE RSCOM -----------------------
+      END
+      SUBROUTINE DGEFA(A,LDA,N,IPVT,INFO)
+      INTEGER LDA,N,IPVT(*),INFO
+      DOUBLE PRECISION A(LDA,*)
+C
+C    DGEFA FACTORS A DOUBLE PRECISION MATRIX BY GAUSSIAN ELIMINATION.
+C
+C    DGEFA IS USUALLY CALLED BY DGECO, BUT IT CAN BE CALLED
+C    DIRECTLY WITH A SAVING IN TIME IF  RCOND  IS NOT NEEDED.
+C    (TIME FOR DGECO) = (1 + 9/N)*(TIME FOR DGEFA) .
+C
+C    ON ENTRY
+C
+C       A       DOUBLE PRECISION(LDA, N)
+C               THE MATRIX TO BE FACTORED.
+C
+C       LDA     INTEGER
+C               THE LEADING DIMENSION OF THE ARRAY  A .
+C
+C       N       INTEGER
+C               THE ORDER OF THE MATRIX  A .
+C
+C    ON RETURN
+C
+C       A       AN UPPER TRIANGULAR MATRIX AND THE MULTIPLIERS
+C               WHICH WERE USED TO OBTAIN IT.
+C               THE FACTORIZATION CAN BE WRITTEN  A = L*U  WHERE
+C               L  IS A PRODUCT OF PERMUTATION AND UNIT LOWER
+C               TRIANGULAR MATRICES AND  U  IS UPPER TRIANGULAR.
+C
+C       IPVT    INTEGER(N)
+C               AN INTEGER VECTOR OF PIVOT INDICES.
+C
+C       INFO    INTEGER
+C               = 0  NORMAL VALUE.
+C               = K  IF  U(K,K) .EQ. 0.0 .  THIS IS NOT AN ERROR
+C                    CONDITION FOR THIS SUBROUTINE, BUT IT DOES
+C                    INDICATE THAT DGESL OR DGEDI WILL DIVIDE BY ZERO
+C                    IF CALLED.  USE  RCOND  IN DGECO FOR A RELIABLE
+C                    INDICATION OF SINGULARITY.
+C
+C    LINPACK. THIS VERSION DATED 08/14/78 .
+C    CLEVE MOLER, UNIVERSITY OF NEW MEXICO, ARGONNE NATIONAL LAB.
+C
+C    SUBROUTINES AND FUNCTIONS
+C
+C    BLAS DAXPY,DSCAL,IDAMAX
+C
+C    INTERNAL VARIABLES
+C
+      DOUBLE PRECISION T
+      INTEGER IDAMAX,J,K,KP1,L,NM1
+C
+C
+C     GAUSSIAN ELIMINATION WITH PARTIAL PIVOTING
+C
+      INFO = 0
+      NM1 = N - 1
+      IF (NM1 .LT. 1) GO TO 70
+      DO 60 K = 1, NM1
+         KP1 = K + 1
+C
+C        FIND L = PIVOT INDEX
+C
+         L = IDAMAX(N-K+1,A(K,K),1) + K - 1
+         IPVT(K) = L
+C
+C        ZERO PIVOT IMPLIES THIS COLUMN ALREADY TRIANGULARIZED
+C
+         IF (A(L,K) .EQ. 0.0D0) GO TO 40
+C
+C           INTERCHANGE IF NECESSARY
+C
+            IF (L .EQ. K) GO TO 10
+               T = A(L,K)
+               A(L,K) = A(K,K)
+               A(K,K) = T
+  10        CONTINUE
+C
+C           COMPUTE MULTIPLIERS
+C
+            T  = -1.0D0/A(K,K)
+            CALL DSCAL(N-K,T,A(K+1,K),1)
+C
+C           ROW ELIMINATION WITH COLUMN INDEXING
+C
+            DO 30 J = KP1, N
+               T = A(L,J)
+               IF (L .EQ. K) GO TO 20
+                  A(L,J) = A(K,J)
+                  A(K,J) = T
+  20           CONTINUE
+               CALL DAXPY(N-K,T,A(K+1,K),1,A(K+1,J),1)
+  30        CONTINUE
+         GO TO 50
+  40     CONTINUE
+            INFO = K
+  50     CONTINUE
+  60  CONTINUE
+  70  CONTINUE
+      IPVT(N) = N
+      IF (A(N,N) .EQ. 0.0D0) INFO = N
+      RETURN
+      END
+      SUBROUTINE DGESL(A,LDA,N,IPVT,B,JOB)
+      INTEGER LDA,N,IPVT(*),JOB
+      DOUBLE PRECISION A(LDA,*),B(*)
+C
+C     DGESL KppSolveS THE DOUBLE PRECISION SYSTEM
+C     A * X = B  OR  TRANS(A) * X = B
+C    USING THE FACTORS COMPUTED BY DGECO OR DGEFA.
+C
+C    ON ENTRY
+C
+C       A       DOUBLE PRECISION(LDA, N)
+C               THE OUTPUT FROM DGECO OR DGEFA.
+C
+C       LDA     INTEGER
+C               THE LEADING DIMENSION OF THE ARRAY  A .
+C
+C       N       INTEGER
+C               THE ORDER OF THE MATRIX  A .
+C
+C       IPVT    INTEGER(N)
+C               THE PIVOT VECTOR FROM DGECO OR DGEFA.
+C
+C       B       DOUBLE PRECISION(N)
+C               THE RIGHT HAND SIDE VECTOR.
+C
+C       JOB     INTEGER
+C               = 0         TO KppSolve  A*X = B ,
+C               = NONZERO   TO KppSolve  TRANS(A)*X = B  WHERE
+C                           TRANS(A)  IS THE TRANSPOSE.
+C
+C    ON RETURN
+C
+C       B       THE SOLUTION VECTOR  X .
+C
+C    ERROR CONDITION
+C
+C       A DIVISION BY ZERO WILL OCCUR IF THE INPUT FACTOR CONTAINS A
+C       ZERO ON THE DIAGONAL.  TECHNICALLY THIS INDICATES SINGULARITY
+C       BUT IT IS OFTEN CAUSED BY IMPROPER ARGUMENTS OR IMPROPER
+C       SETTING OF LDA .  IT WILL NOT OCCUR IF THE SUBROUTINES ARE
+C       CALLED CORRECTLY AND IF DGECO HAS SET RCOND .GT. 0.0
+C       OR DGEFA HAS SET INFO .EQ. 0 .
+C
+C    TO COMPUTE  INVERSE(A) * C  WHERE  C  IS A MATRIX
+C    WITH  P  COLUMNS
+C          CALL DGECO(A,LDA,N,IPVT,RCOND,Z)
+C          IF (RCOND IS TOO SMALL) GO TO ...
+C          DO 10 J = 1, P
+C             CALL DGESL(A,LDA,N,IPVT,C(1,J),0)
+C       10 CONTINUE
+C
+C    LINPACK. THIS VERSION DATED 08/14/78 .
+C    CLEVE MOLER, UNIVERSITY OF NEW MEXICO, ARGONNE NATIONAL LAB.
+C
+C    SUBROUTINES AND FUNCTIONS
+C
+C    BLAS DAXPY,DDOT
+C
+C    INTERNAL VARIABLES
+C
+      DOUBLE PRECISION DDOT,T
+      INTEGER K,KB,L,NM1
+C
+      NM1 = N - 1
+      IF (JOB .NE. 0) GO TO 50
+C
+C        JOB = 0 , KppSolve  A * X = B
+C        FIRST KppSolve  L*Y = B
+C
+         IF (NM1 .LT. 1) GO TO 30
+         DO 20 K = 1, NM1
+            L = IPVT(K)
+            T = B(L)
+            IF (L .EQ. K) GO TO 10
+               B(L) = B(K)
+               B(K) = T
+  10        CONTINUE
+            CALL DAXPY(N-K,T,A(K+1,K),1,B(K+1),1)
+  20     CONTINUE
+  30     CONTINUE
+C
+C        NOW KppSolve  U*X = Y
+C
+         DO 40 KB = 1, N
+            K = N + 1 - KB
+            B(K) = B(K)/A(K,K)
+            T = -B(K)
+            CALL DAXPY(K-1,T,A(1,K),1,B(1),1)
+  40     CONTINUE
+      GO TO 100
+  50  CONTINUE
+C
+C        JOB = NONZERO, KppSolve  TRANS(A) * X = B
+C        FIRST KppSolve  TRANS(U)*Y = B
+C
+         DO 60 K = 1, N
+            T = DDOT(K-1,A(1,K),1,B(1),1)
+            B(K) = (B(K) - T)/A(K,K)
+  60     CONTINUE
+C
+C        NOW KppSolve TRANS(L)*X = Y
+C
+         IF (NM1 .LT. 1) GO TO 90
+         DO 80 KB = 1, NM1
+            K = N - KB
+            B(K) = B(K) + DDOT(N-K,A(K+1,K),1,B(K+1),1)
+            L = IPVT(K)
+            IF (L .EQ. K) GO TO 70
+               T = B(L)
+               B(L) = B(K)
+               B(K) = T
+  70        CONTINUE
+  80     CONTINUE
+  90     CONTINUE
+  100  CONTINUE
+      RETURN
+      END
+      SUBROUTINE DGBFA(ABD,LDA,N,ML,MU,IPVT,INFO)
+      INTEGER LDA,N,ML,MU,IPVT(*),INFO
+      DOUBLE PRECISION ABD(LDA,*)
+C
+C    DGBFA FACTORS A DOUBLE PRECISION BAND MATRIX BY ELIMINATION.
+C
+C    DGBFA IS USUALLY CALLED BY DGBCO, BUT IT CAN BE CALLED
+C    DIRECTLY WITH A SAVING IN TIME IF  RCOND  IS NOT NEEDED.
+C
+C    ON ENTRY
+C
+C       ABD     DOUBLE PRECISION(LDA, N)
+C               CONTAINS THE MATRIX IN BAND STORAGE.  THE COLUMNS
+C               OF THE MATRIX ARE STORED IN THE COLUMNS OF  ABD  AND
+C               THE DIAGONALS OF THE MATRIX ARE STORED IN ROWS
+C               ML+1 THROUGH 2*ML+MU+1 OF  ABD .
+C               SEE THE COMMENTS BELOW FOR DETAILS.
+C
+C       LDA     INTEGER
+C               THE LEADING DIMENSION OF THE ARRAY  ABD .
+C               LDA MUST BE .GE. 2*ML + MU + 1 .
+C
+C       N       INTEGER
+C               THE ORDER OF THE ORIGINAL MATRIX.
+C
+C       ML      INTEGER
+C               NUMBER OF DIAGONALS BELOW THE MAIN DIAGONAL.
+C               0 .LE. ML .LT. N .
+C
+C       MU      INTEGER
+C               NUMBER OF DIAGONALS ABOVE THE MAIN DIAGONAL.
+C               0 .LE. MU .LT. N .
+C               MORE EFFICIENT IF  ML .LE. MU .
+C    ON RETURN
+C
+C       ABD     AN UPPER TRIANGULAR MATRIX IN BAND STORAGE AND
+C               THE MULTIPLIERS WHICH WERE USED TO OBTAIN IT.
+C               THE FACTORIZATION CAN BE WRITTEN  A = L*U  WHERE
+C               L  IS A PRODUCT OF PERMUTATION AND UNIT LOWER
+C               TRIANGULAR MATRICES AND  U  IS UPPER TRIANGULAR.
+C
+C       IPVT    INTEGER(N)
+C               AN INTEGER VECTOR OF PIVOT INDICES.
+C
+C       INFO    INTEGER
+C               = 0  NORMAL VALUE.
+C               = K  IF  U(K,K) .EQ. 0.0 .  THIS IS NOT AN ERROR
+C                    CONDITION FOR THIS SUBROUTINE, BUT IT DOES
+C                    INDICATE THAT DGBSL WILL DIVIDE BY ZERO IF
+C                    CALLED.  USE  RCOND  IN DGBCO FOR A RELIABLE
+C                    INDICATION OF SINGULARITY.
+C
+C    BAND STORAGE
+C
+C          IF  A  IS A BAND MATRIX, THE FOLLOWING PROGRAM SEGMENT
+C          WILL SET UP THE INPUT.
+C
+C                  ML = (BAND WIDTH BELOW THE DIAGONAL)
+C                  MU = (BAND WIDTH ABOVE THE DIAGONAL)
+C                  M = ML + MU + 1
+C                  DO 20 J = 1, N
+C                     I1 = MAX0(1, J-MU)
+C                     I2 = MIN0(N, J+ML)
+C                     DO 10 I = I1, I2
+C                        K = I - J + M
+C                        ABD(K,J) = A(I,J)
+C               10    CONTINUE
+C               20 CONTINUE
+C
+C          THIS USES ROWS  ML+1  THROUGH  2*ML+MU+1  OF  ABD .
+C          IN ADDITION, THE FIRST  ML  ROWS IN  ABD  ARE USED FOR
+C          ELEMENTS GENERATED DURING THE TRIANGULARIZATION.
+C          THE TOTAL NUMBER OF ROWS NEEDED IN  ABD  IS  2*ML+MU+1 .
+C          THE  ML+MU BY ML+MU  UPPER LEFT TRIANGLE AND THE
+C          ML BY ML  LOWER RIGHT TRIANGLE ARE NOT REFERENCED.
+C
+C    LINPACK. THIS VERSION DATED 08/14/78 .
+C    CLEVE MOLER, UNIVERSITY OF NEW MEXICO, ARGONNE NATIONAL LAB.
+C
+C    SUBROUTINES AND FUNCTIONS
+C
+C    BLAS DAXPY,DSCAL,IDAMAX
+C    FORTRAN MAX0,MIN0
+C
+C    INTERNAL VARIABLES
+C
+      DOUBLE PRECISION T
+      INTEGER I,IDAMAX,I0,J,JU,JZ,J0,J1,K,KP1,L,LM,M,MM,NM1
+C
+C
+      M = ML + MU + 1
+      INFO = 0
+C
+C     ZERO INITIAL FILL-IN COLUMNS
+C
+      J0 = MU + 2
+      J1 = MIN0(N,M) - 1
+      IF (J1 .LT. J0) GO TO 30
+      DO 20 JZ = J0, J1
+         I0 = M + 1 - JZ
+         DO 10 I = I0, ML
+            ABD(I,JZ) = 0.0D0
+  10     CONTINUE
+  20  CONTINUE
+  30  CONTINUE
+      JZ = J1
+      JU = 0
+C
+C     GAUSSIAN ELIMINATION WITH PARTIAL PIVOTING
+C
+      NM1 = N - 1
+      IF (NM1 .LT. 1) GO TO 130
+      DO 120 K = 1, NM1
+         KP1 = K + 1
+C
+C        ZERO NEXT FILL-IN COLUMN
+C
+         JZ = JZ + 1
+         IF (JZ .GT. N) GO TO 50
+         IF (ML .LT. 1) GO TO 50
+            DO 40 I = 1, ML
+               ABD(I,JZ) = 0.0D0
+  40        CONTINUE
+  50     CONTINUE
+C
+C        FIND L = PIVOT INDEX
+C
+         LM = MIN0(ML,N-K)
+         L = IDAMAX(LM+1,ABD(M,K),1) + M - 1
+         IPVT(K) = L + K - M
+C
+C        ZERO PIVOT IMPLIES THIS COLUMN ALREADY TRIANGULARIZED
+C
+         IF (ABD(L,K) .EQ. 0.0D0) GO TO 100
+C
+C           INTERCHANGE IF NECESSARY
+C
+            IF (L .EQ. M) GO TO 60
+               T = ABD(L,K)
+               ABD(L,K) = ABD(M,K)
+               ABD(M,K) = T
+  60        CONTINUE
+C
+C           COMPUTE MULTIPLIERS
+C
+            T = -1.0D0/ABD(M,K)
+            CALL DSCAL(LM,T,ABD(M+1,K),1)
+C
+C           ROW ELIMINATION WITH COLUMN INDEXING
+C
+            JU = MIN0(MAX0(JU,MU+IPVT(K)),N)
+            MM = M
+            IF (JU .LT. KP1) GO TO 90
+            DO 80 J = KP1, JU
+               L = L - 1
+               MM = MM - 1
+               T = ABD(L,J)
+               IF (L .EQ. MM) GO TO 70
+                  ABD(L,J) = ABD(MM,J)
+                  ABD(MM,J) = T
+  70           CONTINUE
+               CALL DAXPY(LM,T,ABD(M+1,K),1,ABD(MM+1,J),1)
+  80        CONTINUE
+  90        CONTINUE
+         GO TO 110
+  100    CONTINUE
+            INFO = K
+  110    CONTINUE
+  120  CONTINUE
+  130  CONTINUE
+      IPVT(N) = N
+      IF (ABD(M,N) .EQ. 0.0D0) INFO = N
+      RETURN
+      END
+      SUBROUTINE DGBSL(ABD,LDA,N,ML,MU,IPVT,B,JOB)
+      INTEGER LDA,N,ML,MU,IPVT(*),JOB
+      DOUBLE PRECISION ABD(LDA,*),B(*)
+C
+C    DGBSL KppSolveS THE DOUBLE PRECISION BAND SYSTEM
+C    A * X = B  OR  TRANS(A) * X = B
+C    USING THE FACTORS COMPUTED BY DGBCO OR DGBFA.
+C
+C    ON ENTRY
+C
+C       ABD     DOUBLE PRECISION(LDA, N)
+C               THE OUTPUT FROM DGBCO OR DGBFA.
+C
+C       LDA     INTEGER
+C               THE LEADING DIMENSION OF THE ARRAY  ABD .
+C
+C       N       INTEGER
+C               THE ORDER OF THE ORIGINAL MATRIX.
+C
+C       ML      INTEGER
+C               NUMBER OF DIAGONALS BELOW THE MAIN DIAGONAL.
+C
+C       MU      INTEGER
+C               NUMBER OF DIAGONALS ABOVE THE MAIN DIAGONAL.
+C
+C       IPVT    INTEGER(N)
+C               THE PIVOT VECTOR FROM DGBCO OR DGBFA.
+C
+C       B       DOUBLE PRECISION(N)
+C               THE RIGHT HAND SIDE VECTOR.
+C
+C       JOB     INTEGER
+C               = 0         TO KppSolve  A*X = B ,
+C               = NONZERO   TO KppSolve  TRANS(A)*X = B , WHERE
+C                           TRANS(A)  IS THE TRANSPOSE.
+C
+C    ON RETURN
+C
+C       B       THE SOLUTION VECTOR  X .
+C
+C    ERROR CONDITION
+C
+C       A DIVISION BY ZERO WILL OCCUR IF THE INPUT FACTOR CONTAINS A
+C       ZERO ON THE DIAGONAL.  TECHNICALLY THIS INDICATES SINGULARITY
+C       BUT IT IS OFTEN CAUSED BY IMPROPER ARGUMENTS OR IMPROPER
+C       SETTING OF LDA .  IT WILL NOT OCCUR IF THE SUBROUTINES ARE
+C       CALLED CORRECTLY AND IF DGBCO HAS SET RCOND .GT. 0.0
+C       OR DGBFA HAS SET INFO .EQ. 0 .
+C
+C    TO COMPUTE  INVERSE(A) * C  WHERE  C  IS A MATRIX
+C    WITH  P  COLUMNS
+C          CALL DGBCO(ABD,LDA,N,ML,MU,IPVT,RCOND,Z)
+C          IF (RCOND IS TOO SMALL) GO TO ...
+C          DO 10 J = 1, P
+C             CALL DGBSL(ABD,LDA,N,ML,MU,IPVT,C(1,J),0)
+C       10 CONTINUE
+C
+C    LINPACK. THIS VERSION DATED 08/14/78 .
+C    CLEVE MOLER, UNIVERSITY OF NEW MEXICO, ARGONNE NATIONAL LAB.
+C
+C    SUBROUTINES AND FUNCTIONS
+C
+C    BLAS DAXPY,DDOT
+C    FORTRAN MIN0
+C
+C    INTERNAL VARIABLES
+C
+      DOUBLE PRECISION DDOT,T
+      INTEGER K,KB,L,LA,LB,LM,M,NM1
+C
+      M = MU + ML + 1
+      NM1 = N - 1
+      IF (JOB .NE. 0) GO TO 50
+C
+C        JOB = 0 , KppSolve  A * X = B
+C        FIRST KppSolve L*Y = B
+C
+         IF (ML .EQ. 0) GO TO 30
+         IF (NM1 .LT. 1) GO TO 30
+            DO 20 K = 1, NM1
+               LM = MIN0(ML,N-K)
+               L = IPVT(K)
+               T = B(L)
+               IF (L .EQ. K) GO TO 10
+                  B(L) = B(K)
+                  B(K) = T
+  10           CONTINUE
+               CALL DAXPY(LM,T,ABD(M+1,K),1,B(K+1),1)
+  20        CONTINUE
+  30     CONTINUE
+C
+C        NOW KppSolve  U*X = Y
+C
+         DO 40 KB = 1, N
+            K = N + 1 - KB
+            B(K) = B(K)/ABD(M,K)
+            LM = MIN0(K,M) - 1
+            LA = M - LM
+            LB = K - LM
+            T = -B(K)
+            CALL DAXPY(LM,T,ABD(LA,K),1,B(LB),1)
+  40     CONTINUE
+      GO TO 100
+  50  CONTINUE
+C
+C        JOB = NONZERO, KppSolve  TRANS(A) * X = B
+C        FIRST KppSolve  TRANS(U)*Y = B
+C
+         DO 60 K = 1, N
+            LM = MIN0(K,M) - 1
+            LA = M - LM
+            LB = K - LM
+            T = DDOT(LM,ABD(LA,K),1,B(LB),1)
+            B(K) = (B(K) - T)/ABD(M,K)
+  60     CONTINUE
+C
+C        NOW KppSolve TRANS(L)*X = Y
+C
+         IF (ML .EQ. 0) GO TO 90
+         IF (NM1 .LT. 1) GO TO 90
+            DO 80 KB = 1, NM1
+               K = N - KB
+               LM = MIN0(ML,N-K)
+               B(K) = B(K) + DDOT(LM,ABD(M+1,K),1,B(K+1),1)
+               L = IPVT(K)
+               IF (L .EQ. K) GO TO 70
+                  T = B(L)
+                  B(L) = B(K)
+                  B(K) = T
+  70           CONTINUE
+  80        CONTINUE
+  90     CONTINUE
+  100  CONTINUE
+      RETURN
+      END
+      SUBROUTINE DAXPY(N,DA,DX,INCX,DY,INCY)
+C
+C     CONSTANT TIMES A VECTOR PLUS A VECTOR.
+C     USES UNROLLED LOOPS FOR INCREMENTS EQUAL TO ONE.
+C     JACK DONGARRA, LINPACK, 3/11/78.
+C
+      DOUBLE PRECISION DX(*),DY(*),DA
+      INTEGER I,INCX,INCY,IX,IY,M,MP1,N
+C
+      IF(N.LE.0)RETURN
+      IF (DA .EQ. 0.0D0) RETURN
+      IF(INCX.EQ.1.AND.INCY.EQ.1)GO TO 20
+C
+C        CODE FOR UNEQUAL INCREMENTS OR EQUAL INCREMENTS
+C          NOT EQUAL TO 1
+C
+      IX = 1
+      IY = 1
+      IF(INCX.LT.0)IX = (-N+1)*INCX + 1
+      IF(INCY.LT.0)IY = (-N+1)*INCY + 1
+      DO 10 I = 1,N
+        DY(IY) = DY(IY) + DA*DX(IX)
+        IX = IX + INCX
+        IY = IY + INCY
+  10  CONTINUE
+      RETURN
+C
+C        CODE FOR BOTH INCREMENTS EQUAL TO 1
+C
+C
+C        CLEAN-UP LOOP
+C
+  20  M = MOD(N,4)
+      IF( M .EQ. 0 ) GO TO 40
+      DO 30 I = 1,M
+        DY(I) = DY(I) + DA*DX(I)
+  30  CONTINUE
+      IF( N .LT. 4 ) RETURN
+  40  MP1 = M + 1
+      DO 50 I = MP1,N,4
+        DY(I) = DY(I) + DA*DX(I)
+        DY(I + 1) = DY(I + 1) + DA*DX(I + 1)
+        DY(I + 2) = DY(I + 2) + DA*DX(I + 2)
+        DY(I + 3) = DY(I + 3) + DA*DX(I + 3)
+  50  CONTINUE
+      RETURN
+      END
+      SUBROUTINE DSCAL(N,DA,DX,INCX)
+C
+C     SCALES A VECTOR BY A CONSTANT.
+C     USES UNROLLED LOOPS FOR INCREMENT EQUAL TO ONE.
+C     JACK DONGARRA, LINPACK, 3/11/78.
+C
+      DOUBLE PRECISION DA,DX(*)
+      INTEGER I,INCX,M,MP1,N,NINCX
+C
+      IF(N.LE.0)RETURN
+      IF(INCX.EQ.1)GO TO 20
+C
+C        CODE FOR INCREMENT NOT EQUAL TO 1
+*
+C
+      NINCX = N*INCX
+      DO 10 I = 1,NINCX,INCX
+        DX(I) = DA*DX(I)
+  10  CONTINUE
+      RETURN
+C
+C        CODE FOR INCREMENT EQUAL TO 1
+C
+C
+C        CLEAN-UP LOOP
+C
+  20  M = MOD(N,5)
+      IF( M .EQ. 0 ) GO TO 40
+      DO 30 I = 1,M
+        DX(I) = DA*DX(I)
+  30  CONTINUE
+      IF( N .LT. 5 ) RETURN
+  40  MP1 = M + 1
+      DO 50 I = MP1,N,5
+        DX(I) = DA*DX(I)
+        DX(I + 1) = DA*DX(I + 1)
+        DX(I + 2) = DA*DX(I + 2)
+        DX(I + 3) = DA*DX(I + 3)
+        DX(I + 4) = DA*DX(I + 4)
+  50  CONTINUE
+      RETURN
+      END
+      DOUBLE PRECISION FUNCTION DDOT(N,DX,INCX,DY,INCY)
+C
+C     FORMS THE DOT PRODUCT OF TWO VECTORS.
+C     USES UNROLLED LOOPS FOR INCREMENTS EQUAL TO ONE.
+C     JACK DONGARRA, LINPACK, 3/11/78.
+C
+      DOUBLE PRECISION DX(*),DY(*),DTEMP
+      INTEGER I,INCX,INCY,IX,IY,M,MP1,N
+C
+      DDOT = 0.0D0
+      DTEMP = 0.0D0
+      IF(N.LE.0)RETURN
+      IF(INCX.EQ.1.AND.INCY.EQ.1)GO TO 20
+C
+C        CODE FOR UNEQUAL INCREMENTS OR EQUAL INCREMENTS
+C          NOT EQUAL TO 1
+C
+      IX = 1
+      IY = 1
+      IF(INCX.LT.0)IX = (-N+1)*INCX + 1
+      IF(INCY.LT.0)IY = (-N+1)*INCY + 1
+      DO 10 I = 1,N
+        DTEMP = DTEMP + DX(IX)*DY(IY)
+        IX = IX + INCX
+        IY = IY + INCY
+  10  CONTINUE
+      DDOT = DTEMP
+      RETURN
+C
+C        CODE FOR BOTH INCREMENTS EQUAL TO 1
+C
+C
+C        CLEAN-UP LOOP
+C
+  20  M = MOD(N,5)
+      IF( M .EQ. 0 ) GO TO 40
+      DO 30 I = 1,M
+        DTEMP = DTEMP + DX(I)*DY(I)
+  30  CONTINUE
+      IF( N .LT. 5 ) GO TO 60
+  40  MP1 = M + 1
+      DO 50 I = MP1,N,5
+        DTEMP = DTEMP + DX(I)*DY(I) + DX(I + 1)*DY(I + 1) +
+     *   DX(I + 2)*DY(I + 2) + DX(I + 3)*DY(I + 3) + DX(I + 4)*DY(I + 4)
+  50  CONTINUE
+  60  DDOT = DTEMP
+      RETURN
+      END
+      INTEGER FUNCTION IDAMAX(N,DX,INCX)
+C
+C     FINDS THE INDEX OF ELEMENT HAVING MAX. ABSOLUTE VALUE.
+C     JACK DONGARRA, LINPACK, 3/11/78.
+C
+      DOUBLE PRECISION DX(*),DMAX
+      INTEGER I,INCX,IX,N
+C
+      IDAMAX = 0
+      IF( N .LT. 1 ) RETURN
+      IDAMAX = 1
+      IF(N.EQ.1)RETURN
+      IF(INCX.EQ.1)GO TO 20
+C
+C        CODE FOR INCREMENT NOT EQUAL TO 1
+C
+      IX = 1
+      DMAX = DABS(DX(1))
+      IX = IX + INCX
+      DO 10 I = 2,N
+         IF(DABS(DX(IX)).LE.DMAX) GO TO 5
+         IDAMAX = I
+         DMAX = DABS(DX(IX))
+   5     IX = IX + INCX
+  10  CONTINUE
+      RETURN
+C
+C        CODE FOR INCREMENT EQUAL TO 1
+C
+  20  DMAX = DABS(DX(1))
+      DO 30 I = 2,N
+         IF(DABS(DX(I)).LE.DMAX) GO TO 30
+         IDAMAX = I
+         DMAX = DABS(DX(I))
+  30  CONTINUE
+      RETURN
+      END
+      DOUBLE PRECISION FUNCTION D1MACH (IDUM)
+      INTEGER IDUM
+C-----------------------------------------------------------------------
+C THIS ROUTINE COMPUTES THE UNIT ROUNDOFF OF THE MACHINE IN DOUBLE
+C PRECISION.  THIS IS DEFINED AS THE SMALLEST POSITIVE MACHINE NUMBER
+C U SUCH THAT  1.0D0 + U .NE. 1.0D0 (IN DOUBLE PRECISION).
+C-----------------------------------------------------------------------
+      DOUBLE PRECISION U, COMP
+      U = 1.0D0
+ 10   U = U*0.5D0
+      COMP = 1.0D0 + U
+      IF (COMP .NE. 1.0D0) GO TO 10
+      D1MACH = U*2.0D0
+      RETURN
+C----------------------- END OF FUNCTION D1MACH ------------------------
+      END
+      SUBROUTINE XERR (MSG, NERR, IERT, NI, I1, I2, NR, R1, R2)
+      INTEGER NERR, IERT, NI, I1, I2, NR,
+     1   LUN, LUNIT, MESFLG
+      DOUBLE PRECISION R1, R2
+      CHARACTER*(*) MSG
+C-------------------------------------------------------------------
+C
+C ALL ARGUMENTS ARE INPUT ARGUMENTS.
+C
+C MSG   = THE MESSAGE (CHARACTER VARIABLE)
+C NERR  = THE ERROR NUMBER (NOT USED).
+C IERT  = THE ERROR TYPE..
+C         1 MEANS RECOVERABLE (CONTROL RETURNS TO CALLER).
+C         2 MEANS FATAL (RUN IS ABORTED--SEE NOTE BELOW).
+C NI    = NUMBER OF INTEGERS (0, 1, OR 2) TO BE PRINTED WITH MESSAGE.
+C I1,I2  = INTEGERS TO BE PRINTED, DEPENDING ON NI.
+C NR    = NUMBER OF REALS (0, 1, OR 2) TO BE PRINTED WITH MESSAGE.
+C R1,R2  = REALS TO BE PRINTED, DEPENDING ON NR.
+C
+C  NOTES:
+C 1. THE DIMENSION OF MSG IS ASSUMED TO BE AT MOST 60.
+C   (MULTI-LINE MESSAGES ARE GENERATED BY REPEATED CALLS.)
+C 2. IF IERT = 2, CONTROL PASSES TO THE STATEMENT  STOP
+C   TO ABORT THE RUN.  THIS STATEMENT MAY BE MACHINE-DEPENDENT.
+C 3. R1 AND R2 ARE ASSUMED TO BE IN DOUBLE PRECISION AND ARE PRINTED
+C   IN D21.13 FORMAT.
+C 4. THE COMMON BLOCK /EH0001/ BELOW IS DATA-LOADED (A MACHINE-
+C   DEPENDENT FEATURE) WITH DEFAULT VALUES.
+C   THIS BLOCK IS NEEDED FOR PROPER RETENTION OF PARAMETERS USED BY
+C   THIS ROUTINE WHICH THE USER CAN RESET BY CALLING XSETF OR XSETUN.
+C   THE VARIABLES IN THIS BLOCK ARE AS FOLLOWS..
+C      MESFLG = PRINT CONTROL FLAG..
+C               1 MEANS PRINT ALL MESSAGES (THE DEFAULT).
+C               0 MEANS NO PRINTING.
+C      LUNIT  = LOGICAL UNIT NUMBER FOR MESSAGES.
+C               THE DEFAULT IS 6 (MACHINE-DEPENDENT).
+C 5. TO CHANGE THE DEFAULT OUTPUT UNIT, CHANGE THE DATA STATEMENT
+C  IN THE BLOCK DATA SUBPROGRAM BELOW.
+C
+C FOR A DIFFERENT RUN-ABORT COMMAND, CHANGE THE STATEMENT FOLLOWING
+C STATEMENT 100 AT THE END.
+C-----------------------------------------------------------------------
+      COMMON /EH0001/ MESFLG, LUNIT
+      IF (MESFLG .EQ. 0) GO TO 100
+C GET LOGICAL UNIT NUMBER. ---------------------------------------------
+      LUN = LUNIT
+C WRITE THE MESSAGE. ---------------------------------------------------
+      WRITE (LUN, 10) MSG
+ 10   FORMAT(1X,A)
+C-----------------------------------------------------------------------
+      IF (NI .EQ. 1) WRITE (LUN, 20) I1
+ 20   FORMAT(6X,'IN ABOVE MESSAGE,  I1 = ',I10)
+      IF (NI .EQ. 2) WRITE (LUN, 30) I1,I2
+ 30   FORMAT(6X,'IN ABOVE MESSAGE,  I1 = ',I10,3X,'I2 = ',I10)
+      IF (NR .EQ. 1) WRITE (LUN, 40) R1
+ 40   FORMAT(6X,'IN ABOVE MESSAGE,  R1 = ',D21.13)
+      IF (NR .EQ. 2) WRITE (LUN, 50) R1,R2
+ 50   FORMAT(6X,'IN ABOVE,  R1 = ',D21.13,3X,'R2 = ',D21.13)
+C ABORT THE RUN IF IERT = 2. -------------------------------------------
+ 100   IF (IERT .NE. 2) RETURN
+      STOP
+C----------------------- END OF SUBROUTINE XERR ----------------------
+      END
+      SUBROUTINE XSETF (MFLAG)
+C
+C THIS ROUTINE RESETS THE PRINT CONTROL FLAG MFLAG.
+C
+      INTEGER MFLAG, MESFLG, LUNIT
+      COMMON /EH0001/ MESFLG, LUNIT
+C
+      IF (MFLAG .EQ. 0 .OR. MFLAG .EQ. 1) MESFLG = MFLAG
+      RETURN
+C----------------------- END OF SUBROUTINE XSETF -----------------------
+      END
+      SUBROUTINE XSETUN (LUN)
+C
+C THIS ROUTINE RESETS THE LOGICAL UNIT NUMBER FOR MESSAGES.
+C
+      INTEGER LUN, MESFLG, LUNIT
+      COMMON /EH0001/ MESFLG, LUNIT
+C
+      IF (LUN .GT. 0) LUNIT = LUN
+      RETURN
+C----------------------- END OF SUBROUTINE XSETUN ----------------------
+      END
+      BLOCK DATA
+C-----------------------------------------------------------------------
+C THIS DATA SUBPROGRAM LOADS VARIABLES INTO THE INTERNAL COMMON
+C BLOCKS USED BY ODESSA AND ITS VARIANTS.  THE VARIABLES ARE
+C DEFINED AS FOLLOWS..
+C  ILLIN  = COUNTER FOR THE NUMBER OF CONSECUTIVE TIMES THE PACKAGE
+C           WAS CALLED WITH ILLEGAL INPUT.  THE RUN IS STOPPED WHEN
+C           ILLIN REACHES 5.
+C  NTREP  = COUNTER FOR THE NUMBER OF CONSECUTIVE TIMES THE PACKAGE
+C           WAS CALLED WITH ISTATE = 1 AND TOUT = T.  THE RUN IS
+C           STOPPED WHEN NTREP REACHES 5.
+C  MESFLG = FLAG TO CONTROL PRINTING OF ERROR MESSAGES.  1 MEANS PRINT,
+C           0 MEANS NO PRINTING.
+C  LUNIT  = DEFAULT VALUE OF LOGICAL UNIT NUMBER FOR PRINTING OF ERROR
+C           MESSAGES.
+C-----------------------------------------------------------------------
+      INTEGER ILLIN, IDUMA, NTREP, IDUMB, IOWNS, ICOMM, MESFLG, LUNIT
+      DOUBLE PRECISION ROWND, ROWNS, RCOMM
+      COMMON /ODE001/ ROWND, ROWNS(173), RCOMM(45),
+     1   ILLIN, IDUMA(10), NTREP, IDUMB(2), IOWNS(4), ICOMM(21)
+      COMMON /EH0001/ MESFLG, LUNIT
+      DATA ILLIN/0/, NTREP/0/
+      DATA MESFLG/1/, LUNIT/6/
+C
+C------------------------ END OF BLOCK DATA ----------------------------
+      END
+C-----------------------------------------------------------------------
+C INSTRUCTIONS FOR INSTALLING THE ODESSA PACKAGE. (see @ below.)
+C
+C ODESSA is an enhanced version of the widely disseminated ODE solver
+C LSODE, and as such retains the same properties regarding portability.
+C The notes below, adapted from the installation instructions for LSODE,
+C are intended to facilitate the installation of the ODESSA package in
+C the user's software library.
+C
+C 1. Both a single and a double precision version of ODESSA are
+C provided in this release.  It is expected that most users will
+C utilize the double precision version, except in the case of
+C extended word-length computers. Most routines used by ODESSA
+C are named the same regardless of whether they are single or
+C double precision.  The exceptions are the LINPAK and BLAS
+C routines that follow the LINPAK/BLAS naming conventions, i.e.
+C D--- for a double precision routine, and S--- for a single
+C precision routine.  Thus, care should be taken if both single
+C and double precision versions are stored in the same library.
+C
+C 2. Several routines in ODESSA have the same names as the LSODE
+C routines from which they were derived, although they contain
+C different code.  These are: INTDY, STODE, PREPJ, SVCOM, and
+C RSCOM.  If ODESSA is added to a subroutine library of which
+C LSODE is already a member, these routine names must be changed
+C in one of the two programs.  Also see the note regarding BLOCK
+C DATA subroutines below.
+C
+C 3.  In many cases, ODESSA uses unaltered LSODE routines and
+C common library routines that may already reside on your system.
+C The installation of ODESSA should be done so that identical routines
+C are shared rather than kept as duplicate copies.
+C a.  Normally, the user calls only subroutine ODESSA, but for optional
+C     capabilities the user may also CALL XSETUN, XSETF, SVCOM, RSCOM,
+C     or INTDY, as described in Part II of the Full Description in the
+C     User Documentation (ODESSA.DOC, see below).  Except for INTDY,
+C     none of these are called from within the package.
+C b.  Two routines, EWSET and VNORM, are optionally replaceable by the
+C     user if the package version is unsuitable.  Hence, the install-
+C     ation of the package should be done so that the user's version
+C     for either routine overrides the package version.
+C c.  The function routine D1MACH is provided to compute the unit
+C     roundoff of the machine and precision in use, in a manner com-
+C     patible with machine parameter routines developed at Bell Lab-
+C     oratories.  If such a routine has already been installed on
+C     your system, the version supplied here may be discarded.
+C d.  Linear algebraic systems are solved with routines from the
+C     LINPACK collection, in conjunction with routines from the Basic
+C     Linear Algebra module collection (BLAS).  In double precision,
+C     the names are DGEFA, DGESL, DGBFA, and DGBSL (from LINPACK), and
+C     DAXPY, DSCAL, IDAMAX, and DDOT (from BLAS). If these routines
+C     have already been installed on your system, copies supplied with
+C     ODESSA may be discarded.  The single precision versions of these
+C     routines are used in the single precision version.
+C
+C 4. There are four integer variables, in the two labeled COMMON
+C blocks /ODE001/ and /EH0001/, which need to be loaded with DATA
+C statements.  They can vary during execution, and are in common to
+C assure their retention between calls.  This is legal in ANSI Fortran
+C only if done in a BLOCK DATA subprogram, and this package has a
+C BLOCK DATA for this purpose.  However, BLOCK DATA subprograms can be
+C difficult to install in libraries, and many compilers allow such DATA
+C statements in subroutines.  If your system allows this, the location
+C of the DATA statements are just after the initial type and common
+C declarations in subroutines ODESSA and XERR.  In ODESSA, ILLIN and
+C NTREP are DATA-loaded as 0.  In XERR, MESFLG is loaded as 1 and
+C LUNIT is loaded as the appropriate default logical unit number.
+C
+C 5. The ODESSA package contains subscript expressions which may not
+C be accepted by some compilers.  Subscripts of the form I + J, I - J,
+C etc., occur in various routines.  If any of these forms are
+C unacceptable to your compiler, an extra line of code setting the
+C subscript to a dummy integer value should be added for each subscipt.
+C
+C 6. User documentation is provided in a two-level structure
+C to accommmodate both the casual and serious user.  The novice or
+C casual user should need to read only the Summary of Usage and the
+C Example Problem located at the beginning of the documentation.  More
+C experienced users, requiring the full set of available options,
+C should read the Full Description which follows the Example Problem.
+C
+C 7. The user documentation may need corrections in the following ways:
+C a.  If subroutine names have been changed to avoid conflicts between
+C     the LSODE and ODESSA packages, the corresponding name changes
+C     should be made in the documentation.
+C b.  In the Summary of Usage, and in the description of XSETUN under
+C     Part II of the Full Description, the default logical unit number
+C     should be corrected if it is not 6.
+C c.  In the Summary of Usage, users should be instructed to execute
+C     CALL XSETF(1) before the first CALL to ODESSA, if this is neces-
+C     sary for proper error message handling.  (see note 2(e) above.)
+C d.  In the description of the subroutines DF and JAC in the Summary
+C     of Usage and in Part I of the Full Description, it is stated
+C     that dummy names may be passed if these two routines are not user
+C     supplied.  Your system may require the user to supply a dummy
+C     subroutine instead.
+C e.  The ODESSA package treats the arguments NEQ, RTOL, and ATOL as
+C     arrays (possibly of length 1), while the usage documentation
+C     states that these arguments may be either arrays or scalars.
+C     If your system does not allow such a mismatch, then the
+C     documentation should be changed to reflect this.
+C 8.  A demonstration program is provided with the package for
+C     verification.
+C
+C
+C     Jorge R. Leis and Mark A. Kramer
+C     Department of Chemical Engineering
+C     Massachusetts Institute of Technology
+C     Cambridge, Massachusetts  02139
+C     U.S.A.
+C
+C     Current address of J.R. Leis (Jan. 1988):
+C
+C     Shell Development Company
+C     Westhollow Research Center
+C     Houston, TX
+C
+C  @ Adapted from 'Instructions for Installing LSODE', written by
+C    Alan C. Hindmarsh, Mathematics & Statistics Division, L-316,
+C    Lawrence Livermore National Laboratory, Livermore, CA. 94550
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/kpp_radau5.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/kpp_radau5.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/kpp_radau5.def	(revision 2696)
@@ -0,0 +1,5 @@
+#FUNCTION AGGREGATE
+#JACOBIAN SPARSE_LU_ROW
+#DOUBLE ON 
+#INTFILE kpp_radau5
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/kpp_radau5.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/kpp_radau5.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/kpp_radau5.f90	(revision 2696)
@@ -0,0 +1,1201 @@
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
+!  RADAU5 - Runge-Kutta method based on Radau-2A quadrature               !
+!                       (2 stages, order 5)                               !
+!  By default the code employs the KPP sparse linear algebra routines     !
+!  Compile with -DFULL_ALGEBRA to use full linear algebra (LAPACK)        !
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
+
+MODULE KPP_ROOT_Integrator
+
+  USE KPP_ROOT_Precision, ONLY: dp
+  USE KPP_ROOT_Parameters, ONLY: NVAR, LU_NONZERO
+  USE KPP_ROOT_Jacobian, ONLY: LU_DIAG
+  USE KPP_ROOT_LinearAlgebra
+
+  IMPLICIT NONE
+  PUBLIC
+  SAVE
+  
+  ! Statistics
+  INTEGER :: Nfun, Njac, Nstp, Nacc, Nrej, Ndec, Nsol, Nsng
+  
+  ! Method parameters
+  KPP_REAL :: Transf(3,3), TransfInv(3,3),      &
+                   rkA(3,3), rkB(3), rkC(3), rkE(3), &
+                   rkGamma, rkAlpha, rkBeta
+  
+  ! description of the error numbers IERR
+  CHARACTER(LEN=50), PARAMETER, DIMENSION(-11:1) :: IERR_NAMES = (/ &
+    'Matrix is repeatedly singular                     ', & ! -11 
+    'Step size too small: T + 10*H = T or H < Roundoff ', & ! -10 
+    'No of steps exceeds maximum bound                 ', & ! -9  
+    'Tolerances are too small                          ', & ! -8  
+    'Improper values for Qmin, Qmax                    ', & ! -7  
+    'Newton stopping tolerance too small               ', & ! -6  
+    'Improper value for ThetaMin                       ', & ! -5  
+    'Improper values for FacMin/FacMax/FacSafe/FacRej  ', & ! -4  
+    'Hmin/Hmax/Hstart must be positive                 ', & ! -3  
+    'Improper value for maximal no of Newton iterations', & ! -2  
+    'Improper value for maximal no of steps            ', & ! -1  
+    '                                                  ', & !  0 (not used)
+    'Success                                           ' /) !  1
+
+CONTAINS
+
+  ! **************************************************************************
+
+  SUBROUTINE INTEGRATE( TIN, TOUT, &
+    ICNTRL_U, RCNTRL_U, ISTATUS_U, RSTATUS_U, IERR_U )
+
+    USE KPP_ROOT_Parameters, ONLY: NVAR
+    USE KPP_ROOT_Global,     ONLY: ATOL,RTOL,VAR
+
+    IMPLICIT NONE
+
+    KPP_REAL :: TIN  ! TIN - Start Time
+    KPP_REAL :: TOUT ! TOUT - End Time
+    INTEGER,  INTENT(IN),  OPTIONAL :: ICNTRL_U(20)
+    KPP_REAL, INTENT(IN),  OPTIONAL :: RCNTRL_U(20)
+    INTEGER,  INTENT(OUT), OPTIONAL :: ISTATUS_U(20)
+    KPP_REAL, INTENT(OUT), OPTIONAL :: RSTATUS_U(20)
+    INTEGER,  INTENT(OUT), OPTIONAL :: IERR_U
+
+    KPP_REAL, SAVE :: H
+    INTEGER :: IERR
+
+    KPP_REAL :: RCNTRL(20), RSTATUS(20)
+    INTEGER :: ICNTRL(20), ISTATUS(20)
+    INTEGER, SAVE :: Ntotal = 0
+
+    H =0.0_dp
+
+    !~~~> fine-tune the integrator:
+    ICNTRL(:)  = 0
+    ICNTRL(2)  = 0 ! 0=vector tolerances, 1=scalar tolerances
+    ICNTRL(5)  = 8 ! Max no. of Newton iterations
+    ICNTRL(6)  = 1 ! Starting values for Newton are interpolated (0) or zero (1)
+    ICNTRL(11) = 1 ! Gustaffson (1) or classic(2) controller
+    RCNTRL(1:20) = 0._dp
+
+    !~~~> if optional parameters are given, and if they are >0,
+    !     then use them to overwrite default settings
+    IF (PRESENT(ICNTRL_U)) ICNTRL(1:20) = ICNTRL_U(1:20)
+    IF (PRESENT(RCNTRL_U)) RCNTRL(1:20) = RCNTRL_U(1:20)
+   
+
+    CALL RADAU5(  NVAR,TIN,TOUT,VAR,H,                  &
+                  RTOL,ATOL,                            &
+                  RCNTRL,ICNTRL,RSTATUS,ISTATUS,IERR  )
+
+!!$    Ntotal = Ntotal + Nstp
+!!$    PRINT*,'NSTEPS=',Nstp,' (',Ntotal,')'
+
+    Nfun = Nfun + ISTATUS(1)
+    Njac = Njac + ISTATUS(2)
+    Nstp = Nstp + ISTATUS(3)
+    Nacc = Nacc + ISTATUS(4)
+    Nrej = Nrej + ISTATUS(5)
+    Ndec = Ndec + ISTATUS(6)
+    Nsol = Nsol + ISTATUS(7)
+    Nsng = Nsng + ISTATUS(8)
+
+    ! if optional parameters are given for output
+    ! use them to store information in them
+    IF (PRESENT(ISTATUS_U)) THEN
+      ISTATUS_U(:) = 0
+      ISTATUS_U(1) = Nfun ! function calls
+      ISTATUS_U(2) = Njac ! jacobian calls
+      ISTATUS_U(3) = Nstp ! steps
+      ISTATUS_U(4) = Nacc ! accepted steps
+      ISTATUS_U(5) = Nrej ! rejected steps (except at the beginning)
+      ISTATUS_U(6) = Ndec ! LU decompositions
+      ISTATUS_U(7) = Nsol ! forward/backward substitutions
+    ENDIF
+    IF (PRESENT(RSTATUS_U)) THEN
+      RSTATUS_U(:) = 0.
+      RSTATUS_U(1) = TOUT ! final time
+    ENDIF
+    IF (PRESENT(IERR_U)) IERR_U = IERR
+
+! mz_rs_20050716: IERR is returned to the user who then decides what to do
+! about it, i.e. either stop the run or ignore it.
+!!$    IF (IERR < 0) THEN
+!!$      PRINT *,'RADAU: Unsuccessful exit at T=', TIN,' (IERR=',IERR,')'
+!!$      STOP
+!!$    ENDIF
+
+  END SUBROUTINE INTEGRATE
+
+   SUBROUTINE RADAU5(N,T,Tend,Y,H,RelTol,AbsTol,    &
+                       RCNTRL,ICNTRL,RSTATUS,ISTATUS,IDID)
+
+!~~~>-----------------------------------------------
+!     NUMERICAL SOLUTION OF A STIFF (OR DIFFERENTIAL ALGEBRAIC)
+!     SYSTEM OF FirstStep 0RDER ORDINARY DIFFERENTIAL EQUATIONS
+!                     M*Y'=F(T,Y).
+!     THE SYSTEM CAN BE (LINEARLY) IMPLICIT (MASS-MATRIX M  /=  I)
+!     OR EXPLICIT (M=I).
+!     THE METHOD USED IS AN IMPLICIT RUNGE-KUTTA METHOD (RADAU IIA)
+!     OF ORDER 5 WITH STEP SIZE CONTROL AND CONTINUOUS OUTPUT.
+!     C.F. SECTION IV.8
+!
+!     AUTHORS: E. HAIRER AND G. WANNER
+!              UNIVERSITE DE GENEVE, DEPT. DE MATHEMATIQUES
+!              CH-1211 GENEVE 24, SWITZERLAND
+!              E-MAIL:  HAIRER@DIVSUN.UNIGE.CH,  WANNER@DIVSUN.UNIGE.CH
+!
+!     THIS CODE IS PART OF THE BOOK:
+!         E. HAIRER AND G. WANNER, SOLVING ORDINARY DIFFERENTIAL
+!         EQUATIONS II. STIFF AND DIFFERENTIAL-ALGEBRAIC PROBLEMS.
+!         SPRINGER SERIES IN COMPUTATIONAL MATHEMATICS 14,
+!         SPRINGER-VERLAG (1991)
+!
+!     VERSION OF SEPTEMBER 30, 1995
+!
+!     INPUT PARAMETERS
+!     ----------------
+!     N           DIMENSION OF THE SYSTEM
+!
+!     FCN         NAME (EXTERNAL) OF SUBROUTINE COMPUTING THE
+!                 VALUE OF F(T,Y):
+!                 SUBROUTINE FCN(N,T,Y,F)
+!                    KPP_REAL T,Y(N),F(N)
+!                    F(1)=...   ETC.
+!                 RPAR, IPAR (SEE BELOW)
+!
+!     T           INITIAL TIME VALUE
+!
+!     Tend        FINAL T-VALUE (Tend-T MAY BE POSITIVE OR NEGATIVE)
+!
+!     Y(N)        INITIAL VALUES FOR Y
+!
+!     H           INITIALL STEP SIZE GUESS;
+!                 FOR STIFF EQUATIONS WITH INITIALL TRANSIENT,
+!                 H=1.D0/(NORM OF F'), USUALLY 1.D-3 OR 1.D-5, IS GOOD.
+!                 THIS CHOICE IS NOT VERY IMPORTANT, THE STEP SIZE IS
+!                 QUICKLY ADAPTED. (IF H=0.D0, THE CODE PUTS H=1.D-6).
+!
+!     RelTol,AbsTol   RELATIVE AND ABSOLUTE ERROR TOLERANCES. 
+!          for ICNTRL(2) = 0: AbsTol, RelTol are N-dimensional vectors
+!                        = 1: AbsTol, RelTol are scalars
+!
+!          -----  CONTINUOUS OUTPUT: -----
+!                 DURING CALLS TO "SOLOUT", A CONTINUOUS SOLUTION
+!                 FOR THE INTERVAL [Told,T] IS AVAILABLE THROUGH
+!                 THE FUNCTION
+!                        >>>   CONTR5(I,S,CONT,LRC)   <<<
+!                 WHICH PROVIDES AN APPROXIMATION TO THE I-TH
+!                 COMPONENT OF THE SOLUTION AT THE POINT S. THE VALUE
+!                 S SHOULD LIE IN THE INTERVAL [Told,T].
+!                 DO NOT CHANGE THE ENTRIES OF CONT(LRC), IF THE
+!                 DENSE OUTPUT FUNCTION IS USED.
+!!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>     INPUT PARAMETERS:
+!
+!    Note: For input parameters equal to zero the default values of the
+!          corresponding variables are used.
+!
+!~~~>  Integer input parameters:
+!  
+!    ICNTRL(1) = not used
+!
+!    ICNTRL(2) = 0: AbsTol, RelTol are NVAR-dimensional vectors
+!              = 1: AbsTol, RelTol are scalars
+!
+!    ICNTRL(3) = not used
+!
+!    ICNTRL(4)  -> maximum number of integration steps
+!        For ICNTRL(4)=0 the default value of 10000 is used
+!
+!    ICNTRL(5)  -> maximum number of Newton iterations
+!        For ICNTRL(5)=0 the default value of 8 is used
+!
+!    ICNTRL(6)  -> starting values of Newton iterations:
+!        ICNTRL(6)=0 : starting values are obtained from 
+!                      the extrapolated collocation solution
+!                      (the default)
+!        ICNTRL(6)=1 : starting values are zero
+!
+!    ICNTRL(11) -> switch for step size strategy
+!              ICNTRL(8) == 1:  mod. predictive controller (Gustafsson)
+!              ICNTRL(8) == 2:  classical step size control
+!              the default value (for iwork(8)=0) is iwork(8)=1.
+!              the choice iwork(8) == 1 seems to produce safer results;
+!              for simple problems, the choice iwork(8) == 2 produces
+!              often slightly faster runs
+!              ( currently unused )
+!
+!~~~>  Real input parameters:
+!
+!    RCNTRL(1)  -> not used
+!
+!    RCNTRL(2)  -> Hmax, upper bound for the integration step size
+!
+!    RCNTRL(3)  -> not used
+!
+!    RCNTRL(4)  -> FacMin, lower bound on step decrease factor (default=0.2)
+!
+!    RCNTRL(5)  -> FacMax, upper bound on step increase factor (default=6)
+!
+!    RCNTRL(6)  -> FacRej, step decrease factor after multiple rejections
+!                 (default=0.1)
+!
+!    RCNTRL(7)  -> FacSafe, by which the new step is slightly smaller
+!                  than the predicted value  (default=0.9)
+!
+!    RCNTRL(8)  -> ThetaMin. If Newton convergence rate smaller
+!                  than ThetaMin the Jacobian is not recomputed;
+!                  (default=0.001)
+!
+!    RCNTRL(9)  -> NewtonTol, stopping criterion for Newton's method
+!                  (default=0.03)
+!
+!    RCNTRL(10) -> Qmin
+!
+!    RCNTRL(11) -> Qmax. If Qmin < Hnew/Hold < Qmax, then the
+!                  step size is kept constant and the LU factorization
+!                  reused (default Qmin=1, Qmax=1.2)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!
+!    OUTPUT PARAMETERS
+!    -----------------
+!    T           T-VALUE FOR WHICH THE SOLUTION HAS BEEN COMPUTED
+!                     (AFTER SUCCESSFUL RETURN T=Tend).
+!
+!    Y(N)        NUMERICAL SOLUTION AT T
+!
+!    H           PREDICTED STEP SIZE OF THE LastStep ACCEPTED STEP
+!
+!    IDID        REPORTS ON SUCCESSFULNESS UPON RETURN:
+!
+!    ISTATUS(1) = No. of function calls
+!    ISTATUS(2) = No. of jacobian calls
+!    ISTATUS(3) = No. of steps
+!    ISTATUS(4) = No. of accepted steps
+!    ISTATUS(5) = No. of rejected steps (except at the beginning)
+!    ISTATUS(6) = No. of LU decompositions
+!    ISTATUS(7) = No. of forward/backward substitutions
+!    ISTATUS(8) = No. of singular matrix decompositions
+!
+!    RSTATUS(1)  -> Texit, the time corresponding to the
+!                   computed Y upon return
+!    RSTATUS(2)  -> Hexit, last accepted step before exit
+!                   For multiple restarts, use Hexit as Hstart 
+!                   in the subsequent run
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      IMPLICIT NONE
+      
+      INTEGER :: N
+      KPP_REAL :: Y(N),AbsTol(N),RelTol(N),RCNTRL(20),RSTATUS(20)
+      INTEGER :: ICNTRL(20), ISTATUS(20)
+      LOGICAL :: StartNewton, Gustafsson
+      INTEGER :: IDID, ITOL
+      KPP_REAL :: H,Tend,T
+
+      !~~~> Control arguments
+      INTEGER :: Max_no_steps, NewtonMaxit
+      KPP_REAL :: Hstart,Hmin,Hmax,Qmin,Qmax
+      KPP_REAL :: Roundoff, ThetaMin,TolNewton
+      KPP_REAL :: FacSafe,FacMin,FacMax,FacRej
+      !~~~> Local variables
+      INTEGER :: i
+      KPP_REAL, PARAMETER :: ZERO = 0.0d0, ONE = 1.0d0
+ 
+      !~~~> variables from the former COMMON block /CONRA5/
+      ! KPP_REAL :: Tsol, Hsol
+    
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!        SETTING THE PARAMETERS
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+       Nfun=0
+       Njac=0
+       Nstp=0
+       Nacc=0
+       Nrej=0
+       Ndec=0
+       Nsol=0
+       IDID = 0
+       
+!~~~> ICNTRL(1) - autonomous system - not used       
+!~~~> ITOL: 1 for vector and 0 for scalar AbsTol/RelTol
+      IF (ICNTRL(2) == 0) THEN
+         ITOL = 1
+      ELSE
+         ITOL = 0
+      END IF
+!~~~> ICNTRL(3) - method selection - not used       
+!~~~> Max_no_steps: the maximal number of time steps
+      IF (ICNTRL(4) == 0) THEN
+         Max_no_steps = 10000
+      ELSE
+         Max_no_steps=ICNTRL(4)
+         IF (Max_no_steps <= 0) THEN
+            WRITE(6,*) 'ICNTRL(4)=',ICNTRL(4)
+            CALL RAD_ErrorMsg(-1,T,ZERO,IDID)
+         END IF
+      END IF
+!~~~> NewtonMaxit    MAXIMAL NUMBER OF NEWTON ITERATIONS
+      IF (ICNTRL(5) == 0) THEN
+         NewtonMaxit = 8
+      ELSE
+         NewtonMaxit=ICNTRL(5)
+         IF (NewtonMaxit <= 0) THEN
+            WRITE(6,*) 'ICNTRL(5)=',ICNTRL(5)
+            CALL RAD_ErrorMsg(-2,T,ZERO,IDID)
+          END IF
+      END IF
+!~~~> StartNewton:  Use extrapolation for starting values of Newton iterations
+      IF (ICNTRL(6) == 0) THEN
+         StartNewton = .TRUE.
+      ELSE
+         StartNewton = .FALSE.
+      END IF
+!~~~> Gustafsson: step size controller
+      IF(ICNTRL(11) == 0)THEN
+         Gustafsson=.TRUE.
+      ELSE
+         Gustafsson=.FALSE.
+      END IF
+
+
+!~~~> Roundoff   SMALLEST NUMBER SATISFYING 1.0d0+Roundoff>1.0d0
+      Roundoff=WLAMCH('E');
+
+!~~~> RCNTRL(1) = Hmin - not used
+      Hmin = ZERO
+!~~~> Hmax = maximal step size
+      IF (RCNTRL(2) == ZERO) THEN
+         Hmax=Tend-T
+      ELSE
+         Hmax=MAX(ABS(RCNTRL(7)),ABS(Tend-T))
+      END IF
+!~~~> RCNTRL(3) = Hstart - not used
+      Hstart = ZERO
+!~~~> FacMin: lower bound on step decrease factor
+      IF(RCNTRL(4) == ZERO)THEN
+         FacMin = 0.2d0
+      ELSE
+         FacMin = RCNTRL(4)
+      END IF
+!~~~> FacMax: upper bound on step increase factor
+      IF(RCNTRL(5) == ZERO)THEN
+         FacMax = 8.D0
+      ELSE
+         FacMax = RCNTRL(5)
+      END IF
+!~~~> FacRej: step decrease factor after 2 consecutive rejections
+      IF(RCNTRL(6) == ZERO)THEN
+         FacRej = 0.1d0
+      ELSE
+         FacRej = RCNTRL(6)
+      END IF
+!~~~> FacSafe:  by which the new step is slightly smaller
+!               than the predicted value
+      IF (RCNTRL(7) == ZERO) THEN
+         FacSafe=0.9d0
+      ELSE
+         FacSafe=RCNTRL(7)
+      END IF
+      IF ( (FacMax < ONE) .OR. (FacMin > ONE) .OR. &
+           (FacSafe <= 0.001D0) .OR. (FacSafe >= 1.0d0) ) THEN
+            WRITE(6,*)'RCNTRL(4:7)=',RCNTRL(4:7)
+            CALL RAD_ErrorMsg(-4,T,ZERO,IDID)
+      END IF
+
+!~~~> ThetaMin:  decides whether the Jacobian should be recomputed
+      IF (RCNTRL(8) == ZERO) THEN
+         ThetaMin = 1.0d-3
+      ELSE
+         ThetaMin=RCNTRL(8)
+         IF (ThetaMin <= 0.0d0 .OR. ThetaMin >= 1.0d0) THEN
+            WRITE(6,*) 'RCNTRL(8)=', RCNTRL(8)
+            CALL RAD_ErrorMsg(-5,T,ZERO,IDID)
+         END IF
+      END IF
+!~~~> TolNewton:  stopping crierion for Newton's method
+      IF (RCNTRL(9) == ZERO) THEN
+         TolNewton = 3.0d-2
+      ELSE
+         TolNewton = RCNTRL(9)
+         IF (TolNewton <= Roundoff) THEN
+            WRITE(6,*) 'RCNTRL(9)=',RCNTRL(9)
+            CALL RAD_ErrorMsg(-6,T,ZERO,IDID)
+         END IF
+      END IF
+!~~~> Qmin AND Qmax: IF Qmin < Hnew/Hold < Qmax, STEP SIZE = CONST.
+      IF (RCNTRL(10) == ZERO) THEN
+         Qmin=1.D0
+      ELSE
+         Qmin=RCNTRL(10)
+      END IF
+      IF (RCNTRL(11) == ZERO) THEN
+         Qmax=1.2D0
+      ELSE
+         Qmax=RCNTRL(11)
+      END IF
+      IF (Qmin > ONE .OR. Qmax < ONE) THEN
+         WRITE(6,*) 'RCNTRL(10:11)=',Qmin,Qmax
+         CALL RAD_ErrorMsg(-7,T,ZERO,IDID)
+      END IF
+!~~~> Check if tolerances are reasonable
+      IF (ITOL == 0) THEN
+          IF (AbsTol(1) <= ZERO.OR.RelTol(1) <= 10.d0*Roundoff) THEN
+              WRITE (6,*) 'AbsTol/RelTol=',AbsTol,RelTol 
+              CALL RAD_ErrorMsg(-8,T,ZERO,IDID)
+          END IF
+      ELSE
+          DO i=1,N
+          IF (AbsTol(i) <= ZERO.OR.RelTol(i) <= 10.d0*Roundoff) THEN
+              WRITE (6,*) 'AbsTol/RelTol(',i,')=',AbsTol(i),RelTol(i)
+              CALL RAD_ErrorMsg(-8,T,ZERO,IDID)
+          END IF
+          END DO
+      END IF
+
+!~~~> WHEN A FAIL HAS OCCURED, RETURN
+      IF (IDID < 0) RETURN
+
+      
+!~~~>  CALL TO CORE INTEGRATOR ------------
+      CALL RAD_Integrator( N,T,Y,Tend,Hmax,H,RelTol,AbsTol,ITOL,IDID, &
+        Max_no_steps,Roundoff,FacSafe,ThetaMin,TolNewton,Qmin,Qmax,   &
+        NewtonMaxit,StartNewton,Gustafsson,FacMin,FacMax,FacRej )
+        
+      ISTATUS(1)=Nfun
+      ISTATUS(2)=Njac
+      ISTATUS(3)=Nstp
+      ISTATUS(4)=Nacc
+      ISTATUS(5)=Nrej
+      ISTATUS(6)=Ndec
+      ISTATUS(7)=Nsol
+      ISTATUS(8)=Nsng
+
+   ! END SUBROUTINE RADAU5
+   CONTAINS ! INTERNAL PROCEDURES TO RADAU5
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE RAD_Integrator( N,T,Y,Tend,Hmax,H,RelTol,AbsTol,ITOL,IDID, &
+        Max_no_steps,Roundoff,FacSafe,ThetaMin,TolNewton,Qmin,Qmax,      &
+        NewtonMaxit,StartNewton,Gustafsson,FacMin,FacMax,FacRej )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!     CORE INTEGRATOR FOR RADAU5
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      IMPLICIT NONE
+      INTEGER :: N
+      KPP_REAL  Y(NVAR),Z1(NVAR),Z2(NVAR),Z3(NVAR),Y0(NVAR),&
+                     SCAL(NVAR),F1(NVAR),F2(NVAR),F3(NVAR),      &
+                     CONT(N,4),AbsTol(NVAR),RelTol(NVAR)
+
+#ifdef FULL_ALGEBRA
+      KPP_REAL  :: FJAC(NVAR,NVAR), E1(NVAR,NVAR)
+      DOUBLE COMPLEX :: E2(NVAR,NVAR)   
+#else
+      KPP_REAL  :: FJAC(LU_NONZERO), E1(LU_NONZERO)
+      DOUBLE COMPLEX :: E2(LU_NONZERO)   
+#endif
+                  
+      !~~~> Local variables
+      KPP_REAL  :: TMP(NVAR), T, Tend, Tdirection, &
+                 H, Hmax, HmaxN, Hacc, Hnew, Hopt, Hold, &
+                 Fac, FacMin, Facmax, FacSafe, FacRej, FacGus, FacConv, &
+                 Theta, ThetaMin, TolNewton, ERR, ERRACC,   &
+                 Qmin, Qmax, DYNO, Roundoff, &
+                 AK, AK1, AK2, AK3, C3Q, &
+                 Qnewton, DYTH, THQ, THQOLD, DYNOLD, &
+                 DENOM, C1Q, C2Q, ALPHA, BETA, GAMMA, CFAC, ACONT3, QT
+      INTEGER :: IP1(NVAR),IP2(NVAR), ITOL, IDID, Max_no_steps, &
+                 NewtonIter, NewtonMaxit, ISING
+      LOGICAL :: REJECT, FirstStep, FreshJac, LastStep, &
+                 Gustafsson, StartNewton, NewtonDone
+      ! KPP_REAL, PARAMETER  :: ONE = 1.0d0, ZERO = 0.0d0
+      
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!  INITIALISATIONS
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      CALL RAD_Coefficients
+            
+      Tdirection=SIGN(1.D0,Tend-T)
+      HmaxN=MIN(ABS(Hmax),ABS(Tend-T))
+      H=MIN(ABS(Hmin),ABS(Hstart))
+      H=MIN(ABS(H),HmaxN)
+      IF (ABS(H) <= 10.D0*Roundoff) H=1.0D-6
+      H=SIGN(H,Tdirection)
+      Hold=H
+      REJECT=.FALSE.
+      FirstStep=.TRUE.
+      LastStep=.FALSE.
+      FreshJac=.FALSE.; Theta=1.0d0
+      IF ((T+H*1.0001D0-Tend)*Tdirection >= 0.D0) THEN
+         H=Tend-T
+         LastStep=.TRUE.
+      END IF
+      FacConv=1.D0
+      CFAC=FacSafe*(1+2*NewtonMaxit)
+      Nsng=0
+!      Told=T
+      CALL RAD_ErrorScale(N,ITOL,AbsTol,RelTol,Y,SCAL)
+      CALL FUN_CHEM(T,Y,Y0)
+      
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Time loop begins
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Tloop: DO WHILE ( (Tend-T)*Tdirection - Roundoff > ZERO )
+
+      !~~~> COMPUTE JACOBIAN MATRIX ANALYTICALLY
+      IF ( (.NOT.FreshJac)  .AND. (Theta > ThetaMin) ) THEN
+        CALL JAC_CHEM(T,Y,FJAC)
+        FreshJac=.TRUE.
+      END IF
+      
+      !~~~> Compute the matrices E1 and E2 and their decompositions
+      GAMMA  = rkGamma/H
+      ALPHA = rkAlpha/H
+      BETA  = rkBeta/H
+      CALL RAD_DecompReal(N,FJAC,GAMMA,E1,IP1,ISING)
+      IF (ISING /= 0) THEN
+          Nsng=Nsng+1
+          IF (Nsng >= 5) THEN
+            CALL RAD_ErrorMsg(-12,T,H,IDID); RETURN
+          END IF
+          H=H*0.5D0; REJECT=.TRUE.; LastStep=.FALSE.
+          CYCLE Tloop
+      END IF   
+      CALL RAD_DecompCmplx(N,FJAC,ALPHA,BETA,E2,IP2,ISING)
+      IF (ISING /= 0) THEN
+          Nsng=Nsng+1
+          IF (Nsng >= 5) THEN
+            CALL RAD_ErrorMsg(-12,T,H,IDID); RETURN
+          END IF
+          H=H*0.5D0; REJECT=.TRUE.; LastStep=.FALSE.
+          CYCLE Tloop
+      END IF
+
+   30 CONTINUE
+      Nstp=Nstp+1
+      IF (Nstp > Max_no_steps) THEN
+        PRINT*,'Max number of time steps is ',Max_no_steps
+        CALL RAD_ErrorMsg(-9,T,H,IDID); RETURN
+      END IF
+      IF (0.1D0*ABS(H) <= ABS(T)*Roundoff)  THEN
+        CALL RAD_ErrorMsg(-10,T,H,IDID); RETURN
+      END IF
+ 
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!  STARTING VALUES FOR NEWTON ITERATION
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IF ( FirstStep .OR. (.NOT.StartNewton) ) THEN
+         CALL Set2zero(N,Z1)
+         CALL Set2zero(N,Z2)
+         CALL Set2zero(N,Z3)
+         CALL Set2zero(N,F1)
+         CALL Set2zero(N,F2)
+         CALL Set2zero(N,F3)
+      ELSE
+         C3Q=H/Hold
+         C1Q=rkC(1)*C3Q
+         C2Q=rkC(2)*C3Q
+         DO i=1,N
+            AK1=CONT(i,2)
+            AK2=CONT(i,3)
+            AK3=CONT(i,4)
+            Z1(i)=C1Q*(AK1+(C1Q-rkC(2)+ONE)*(AK2+(C1Q-rkC(1)+ONE)*AK3))
+            Z2(i)=C2Q*(AK1+(C2Q-rkC(2)+ONE)*(AK2+(C2Q-rkC(1)+ONE)*AK3))
+            Z3(i)=C3Q*(AK1+(C3Q-rkC(2)+ONE)*(AK2+(C3Q-rkC(1)+ONE)*AK3))
+         END DO
+         !  F(1,2,3) = TransfInv x Z(1,2,3)
+         CALL RAD_Transform(N,TransfInv,Z1,Z2,Z3,F1,F2,F3)
+      END IF
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!  LOOP FOR THE SIMPLIFIED NEWTON ITERATION
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+            
+            FacConv = MAX(FacConv,Roundoff)**0.8D0
+            Theta=ABS(ThetaMin)
+
+NewtonLoop:DO  NewtonIter = 1, NewtonMaxit  
+ 
+            !~~~>  The right-hand side
+            DO i=1,N
+               TMP(i)=Y(i)+Z1(i)
+            END DO
+            CALL FUN_CHEM(T+rkC(1)*H,TMP,Z1)
+            DO i=1,N
+               TMP(i)=Y(i)+Z2(i)
+            END DO
+            CALL FUN_CHEM(T+rkC(2)*H,TMP,Z2)
+            DO i=1,N
+               TMP(i)=Y(i)+Z3(i)
+            END DO
+            CALL FUN_CHEM(T+rkC(3)*H,TMP,Z3)
+
+            !~~~> Solve the linear systems
+            !  Z(1,2,3) = TransfInv x Z(1,2,3)
+            CALL RAD_Transform(N,TransfInv,Z1,Z2,Z3,Z1,Z2,Z3)
+            CALL RAD_Solve( N,FJAC,GAMMA,ALPHA,BETA,E1,E2, &
+                        Z1,Z2,Z3,F1,F2,F3,CONT,IP1,IP2,ISING )
+            Nsol=Nsol+1
+            
+            DYNO=0.0d0
+            DO i=1,N
+               DENOM=SCAL(i)
+               DYNO=DYNO+(Z1(i)/DENOM)**2+(Z2(i)/DENOM)**2+(Z3(i)/DENOM)**2
+            END DO
+            DYNO=SQRT(DYNO/(3*N))
+            
+            !~~~> Bad convergence or number of iterations too large
+            IF ( (NewtonIter > 1) .AND. (NewtonIter < NewtonMaxit) ) THEN
+                THQ=DYNO/DYNOLD
+                IF (NewtonIter == 2) THEN
+                   Theta=THQ
+                ELSE
+                   Theta=SQRT(THQ*THQOLD)
+                END IF
+                THQOLD=THQ
+                IF (Theta < 0.99d0) THEN
+                    FacConv=Theta/(1.0d0-Theta)
+                    DYTH=FacConv*DYNO*Theta**(NewtonMaxit-1-NewtonIter)/TolNewton
+                    IF (DYTH >= 1.0d0) THEN
+                         Qnewton=MAX(1.0D-4,MIN(20.0d0,DYTH))
+                         FAC=.8D0*Qnewton**(-1.0d0/(4.0d0+NewtonMaxit-1-NewtonIter))
+                         H=FAC*H
+                         REJECT=.TRUE.
+                         LastStep=.FALSE.
+                         CYCLE Tloop
+                    END IF
+                ELSE ! Non-convergence of Newton
+                   H=H*0.5D0; REJECT=.TRUE.; LastStep=.FALSE.
+                   CYCLE Tloop
+                END IF
+            END IF
+            DYNOLD=MAX(DYNO,Roundoff) 
+            CALL WAXPY(N,ONE,Z1,1,F1,1) ! F1 <- F1 + Z1
+            CALL WAXPY(N,ONE,Z2,1,F2,1) ! F2 <- F2 + Z2
+            CALL WAXPY(N,ONE,Z3,1,F3,1) ! F3 <- F3 + Z3
+            !  Z(1,2,3) = Transf x F(1,2,3)
+            CALL RAD_Transform(N,Transf,F1,F2,F3,Z1,Z2,Z3)
+            NewtonDone = (FacConv*DYNO <= TolNewton)
+            IF (NewtonDone) EXIT NewtonLoop
+            
+       END DO NewtonLoop
+            
+       IF (.NOT.NewtonDone) THEN
+           CALL RAD_ErrorMsg(-8,T,H,IDID);
+           H=H*0.5D0; REJECT=.TRUE.; LastStep=.FALSE.
+           CYCLE Tloop
+       END IF
+
+            
+!~~~> ERROR ESTIMATION
+      CALL  RAD_ErrorEstimate(N,FJAC,H,Y0,Y,T, &
+               E1,Z1,Z2,Z3,IP1,SCAL,ERR,       &
+               FirstStep,REJECT,GAMMA)
+!~~~> COMPUTATION OF Hnew
+      Fac  = ERR**(-0.25d0)*   &
+             MIN(FacSafe,(NewtonIter+2*NewtonMaxit)/CFAC)
+      Fac  = MIN(FacMax,MAX(FacMin,Fac))
+      Hnew = Fac*H
+
+!~~~> IS THE ERROR SMALL ENOUGH ?
+accept:IF (ERR < ONE) THEN !~~~> STEP IS ACCEPTED
+         FirstStep=.FALSE.
+         Nacc=Nacc+1
+         IF (Gustafsson) THEN
+            !~~~> Predictive controller of Gustafsson
+            !~~~> Currently not implemented
+            IF (Nacc > 1) THEN
+               FacGus=FacSafe*(H/Hacc)*(ERR**2/ERRACC)**(-0.25d0)
+               FacGus=MIN(FacMax,MAX(FacMin,FacGus))
+               Fac=MIN(Fac,FacGus)
+               Hnew=H*Fac
+            END IF
+            Hacc=H
+            ERRACC=MAX(1.0D-2,ERR)
+         END IF
+         ! Told = T
+         Hold = H
+         T=T+H
+         DO i=1,N
+            Y(i)=Y(i)+Z3(i)
+            CONT(i,2)=(Z2(i)-Z3(i))/(rkC(2)-ONE)
+            AK=(Z1(i)-Z2(i))/(rkC(1)-rkC(2))
+            ACONT3=Z1(i)/rkC(1)
+            ACONT3=(AK-ACONT3)/rkC(2)
+            CONT(i,3)=(AK-CONT(i,2))/(rkC(1)-ONE)
+            CONT(i,4)=CONT(i,3)-ACONT3
+         END DO
+         CALL RAD_ErrorScale(N,ITOL,AbsTol,RelTol,Y,SCAL)
+         FreshJac=.FALSE.
+         IF (LastStep) THEN
+            H=Hopt
+            IDID=1
+            RETURN
+         END IF
+         CALL FUN_CHEM(T,Y,Y0)
+         Hnew=Tdirection*MIN(ABS(Hnew),HmaxN)
+         Hopt=Hnew
+         Hopt=MIN(H,Hnew)
+         IF (REJECT) Hnew=Tdirection*MIN(ABS(Hnew),ABS(H))
+         REJECT=.FALSE.
+         IF ((T+Hnew/Qmin-Tend)*Tdirection >= 0.D0) THEN
+            H=Tend-T
+            LastStep=.TRUE.
+         ELSE
+            QT=Hnew/H
+            IF ( (Theta<=ThetaMin) .AND. (QT>=Qmin) &
+                            .AND. (QT<=Qmax) ) GOTO 30
+            H=Hnew
+         END IF
+         CYCLE Tloop
+      ELSE accept !~~~> STEP IS REJECTED
+         REJECT=.TRUE.
+         LastStep=.FALSE.
+         IF (FirstStep) THEN
+             H=H*FacRej
+         ELSE
+             H=Hnew
+         END IF
+         IF (Nacc >= 1) Nrej=Nrej+1
+         CYCLE Tloop
+      END IF accept
+      
+      
+      END DO Tloop
+      
+
+   END SUBROUTINE RAD_Integrator
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE RAD_ErrorMsg(Code,T,H,IERR)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!    Handles all error messages
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+   IMPLICIT NONE
+   KPP_REAL, INTENT(IN) :: T, H
+   INTEGER, INTENT(IN)  :: Code
+   INTEGER, INTENT(OUT) :: IERR
+
+   IERR = Code
+   PRINT * , &
+     'Forced exit from RADAU5 due to the following error:'
+   IF ((Code>=-11).AND.(Code<=-1)) THEN
+     PRINT *, IERR_NAMES(Code)
+   ELSE
+     PRINT *, 'Unknown Error code: ', Code
+   ENDIF
+
+   PRINT *, "T=", T, "and H=", H
+
+ END SUBROUTINE RAD_ErrorMsg
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE RAD_ErrorScale(N,ITOL,AbsTol,RelTol,Y,SCAL)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!    Handles all error messages
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   IMPLICIT NONE
+   INTEGER, INTENT(IN)  :: N, ITOL
+   KPP_REAL, INTENT(IN) :: AbsTol(*), RelTol(*), Y(N)
+   KPP_REAL, INTENT(OUT) :: SCAL(N)
+   INTEGER :: i
+   
+   IF (ITOL==0) THEN
+       DO i=1,N
+          SCAL(i)=AbsTol(1)+RelTol(1)*ABS(Y(i))
+       END DO
+   ELSE
+       DO i=1,N
+          SCAL(i)=AbsTol(i)+RelTol(i)*ABS(Y(i))
+       END DO
+   END IF
+      
+ END SUBROUTINE RAD_ErrorScale
+ 
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE RAD_Transform(N,Tr,Z1,Z2,Z3,F1,F2,F3)
+!~~~>                 F = Tr x Z
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      INTEGER :: N, i
+      KPP_REAL :: Tr(3,3),Z1(N),Z2(N),Z3(N),F1(N),F2(N),F3(N)
+      KPP_REAL :: x1, x2, x3
+      DO i=1,N
+          x1 = Z1(i); x2 = Z2(i); x3 = Z3(i)
+          F1(i) = Tr(1,1)*x1 + Tr(1,2)*x2 + Tr(1,3)*x3
+          F2(i) = Tr(2,1)*x1 + Tr(2,2)*x2 + Tr(2,3)*x3
+          F3(i) = Tr(3,1)*x1 + Tr(3,2)*x2 + Tr(3,3)*x3
+      END DO
+  END SUBROUTINE RAD_Transform
+  
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE RAD_Coefficients
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
+      IMPLICIT NONE
+      KPP_REAL :: s2,s3,s6,x1,x2,x3,x4,y1,y2,y3,y4,y5
+      
+      s2 = SQRT(2.0d0);
+      s3 = SQRT(3.0d0);
+      s6 = SQRT(6.0d0);
+      x1 = 3.d0**(1.d0/3.d0);
+      x2 = 3.d0**(2.d0/3.d0);
+      x3 = 3.d0**(1.d0/6.d0);
+      x4 = 3.d0**(5.d0/6.d0);
+      
+      rkA(1,1) =  11.d0/45.d0-7.d0/360.d0*s6
+      rkA(1,2) =  37.d0/225.d0-169.d0/1800.d0*s6
+      rkA(1,3) =  -2.d0/225.d0+s6/75
+      rkA(2,1) =  37.d0/225.d0+169.d0/1800.d0*s6
+      rkA(2,2) =  11.d0/45.d0+7.d0/360.d0*s6
+      rkA(2,3) =  -2.d0/225.d0-s6/75
+      rkA(3,1) =  4.d0/9.d0-s6/36
+      rkA(3,2) =  4.d0/9.d0+s6/36
+      rkA(3,3) =  1.d0/9.d0
+      
+      rkB(1)   =  4.d0/9.d0-s6/36
+      rkB(2)   =  4.d0/9.d0+s6/36
+      rkB(3)   =  1.d0/9.d0
+      
+      rkC(1)   =  2.d0/5.d0-s6/10
+      rkC(2)   =  2.d0/5.d0+s6/10
+      rkC(3)   =  1.d0
+
+      ! Error estimation
+      rkE(1) = -(13.d0+7.d0*s6)/3.d0
+      rkE(2) =  (-13.d0+7.d0*s6)/3.d0
+      rkE(3) = -1.d0/3.d0
+
+      !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      !~~~> Diagonalize the RK matrix:
+      ! TransfInv * inv(rkA) * Transf =
+      !       |  rkGamma      0           0       |
+      !       |      0      rkAlpha   -rkBeta   |
+      !       |      0      rkBeta     rkAlpha  |
+      !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      rkGamma =  3-x1+x2
+      rkAlpha =  x1/2-x2/2+3
+      rkBeta  =  -x4/2-3.d0/2.d0*x3
+
+      y1 = 36.d0/625.d0*s6
+      y2 = 129.d0/2500.d0*x1
+      y3 = 111.d0/2500.d0*x3*s2
+      Transf(1,1) = -31.d0/1250.d0*s6*x1+37.d0/1250.d0*s6*x2-y1 &
+                    +129.d0/1250.d0*x1-33.d0/1250.d0*x2+49.d0/625.d0
+      Transf(1,2) =  -y1-y2-y3 &
+                    +31.d0/2500.d0*x4*s2+33.d0/2500.d0*x2+49.d0/625.d0
+      Transf(1,3) =  3.d0/2500.d0*x3*(-33-43*x2+31*x3*s2+37*s3*s2)
+      Transf(2,1) =  31.d0/1250.d0*s6*x1-37.d0/1250.d0*s6*x2+y1 &
+                    +129.d0/1250.d0*x1-33.d0/1250.d0*x2+49.d0/625.d0
+      Transf(2,2) =  y1-y2+y3&
+                    -31.d0/2500.d0*x4*s2+33.d0/2500.d0*x2+49.d0/625.d0
+      Transf(2,3) =  -3.d0/2500.d0*x3*(33+43*x2+31*x3*s2+37*s3*s2)
+      Transf(3,1) =  1.d0
+      Transf(3,2) =  1.d0
+      Transf(3,3) =  0.d0
+      
+      y1 = 11.d0/36.d0*x3*s2 + 43.d0/108.d0*x4*s2
+      y2 = 11.d0/36.d0*s2*x2 - 43.d0/36.d0*s2*x1
+      y3 = 31.d0/54.d0*x1 + 37.d0/54.d0*x2
+      y4 = 31.d0/54.d0*x4-37.d0/18.d0*x3
+      y5 = -x2/27+5.d0/27.d0*x1
+      TransfInv(1,1) =  y1 + y3
+      TransfInv(1,2) = -y1 + y3
+      TransfInv(1,3) =  y5 + 1.d0/3.d0
+      TransfInv(2,1) = -y1 - y3
+      TransfInv(2,2) =  y1 - y3
+      TransfInv(2,3) = -y5 + 2.d0/3.d0
+      TransfInv(3,1) =  y4 - y2
+      TransfInv(3,2) =  y4 + y2
+      TransfInv(3,3) =  x3/9+5.d0/27.d0*x4
+      
+   END SUBROUTINE RAD_Coefficients
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE RAD_DecompReal(N,FJAC,GAMMA,E1,IP1,ISING)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      
+      INTEGER :: N, ISING
+      KPP_REAL :: GAMMA
+#ifdef FULL_ALGEBRA      
+      KPP_REAL :: FJAC(NVAR,NVAR),E1(NVAR,NVAR)
+#else      
+      KPP_REAL :: FJAC(LU_NONZERO),E1(LU_NONZERO)
+#endif      
+      INTEGER :: IP1(N), i, j
+
+#ifdef FULL_ALGEBRA      
+      DO j=1,N
+         DO  i=1,N
+            E1(i,j)=-FJAC(i,j)
+         END DO
+         E1(j,j)=E1(j,j)+GAMMA
+      END DO
+      CALL DGETRF(N,N,E1,N,IP1,ISING) 
+#else      
+      DO i=1,LU_NONZERO
+         E1(i)=-FJAC(i)
+      END DO
+      DO i=1,NVAR
+         j = LU_DIAG(i); E1(j)=E1(j)+GAMMA
+      END DO
+      CALL KppDecomp(E1,ISING)
+#endif      
+      
+   END SUBROUTINE RAD_DecompReal
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE RAD_DecompCmplx(N,FJAC,ALPHA,BETA,E2,IP2,ISING)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      INTEGER :: N, ISING
+#ifdef FULL_ALGEBRA      
+      KPP_REAL ::  FJAC(N,N)
+      DOUBLE COMPLEX :: E2(N,N)
+#else      
+      KPP_REAL ::  FJAC(LU_NONZERO)
+      DOUBLE COMPLEX :: E2(LU_NONZERO)
+#endif      
+      KPP_REAL :: ALPHA, BETA
+      INTEGER :: IP2(N), i, j
+     
+#ifdef FULL_ALGEBRA      
+      DO j=1,N
+        DO i=1,N
+          E2(i,j) = DCMPLX( -FJAC(i,j), 0.0d0 )
+        END DO
+        E2(j,j) = E2(j,j) + DCMPLX( ALPHA, BETA )
+      END DO
+      CALL ZGETRF(N,N,E2,N,IP2,ISING)     
+#else  
+      DO i=1,LU_NONZERO
+         E2(i) = DCMPLX( -FJAC(i), 0.0d0 )
+      END DO
+      DO i=1,NVAR
+         j = LU_DIAG(i); E2(j)=E2(j)+DCMPLX( ALPHA, BETA )
+      END DO
+      CALL KppDecompCmplx(E2,ISING)    
+#endif      
+      Ndec=Ndec+1
+      
+   END SUBROUTINE RAD_DecompCmplx
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE RAD_Solve(N,FJAC,GAMMA,ALPHA,BETA,E1,E2,&
+               Z1,Z2,Z3,F1,F2,F3,CONT,IP1,IP2,ISING)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      INTEGER :: N,IP1(NVAR),IP2(NVAR),ISING
+#ifdef FULL_ALGEBRA      
+      KPP_REAL  :: FJAC(NVAR,NVAR), E1(NVAR,NVAR)
+      DOUBLE COMPLEX :: E2(NVAR,NVAR)
+#else      
+      KPP_REAL  :: FJAC(LU_NONZERO), E1(LU_NONZERO)
+      DOUBLE COMPLEX :: E2(LU_NONZERO)
+#endif      
+      KPP_REAL :: Z1(N),Z2(N),Z3(N),   &
+               F1(N),F2(N),F3(N),CONT(N),   &
+               GAMMA,ALPHA,BETA
+      DOUBLE COMPLEX :: BC(N)
+      INTEGER :: i,j
+      KPP_REAL :: S2, S3
+!
+      DO i=1,N
+         S2=-F2(i)
+         S3=-F3(i)
+         Z1(i)=Z1(i)-F1(i)*GAMMA
+         Z2(i)=Z2(i)+S2*ALPHA-S3*BETA
+         Z3(i)=Z3(i)+S3*ALPHA+S2*BETA
+      END DO
+#ifdef FULL_ALGEBRA      
+      CALL DGETRS ('N',N,1,E1,N,IP1,Z1,N,0) 
+#else      
+      CALL KppSolve (E1,Z1)
+#endif      
+      
+      DO j=1,N
+        BC(j) = DCMPLX(Z2(j),Z3(j))
+      END DO
+#ifdef FULL_ALGEBRA      
+      CALL ZGETRS ('N',N,1,E2,N,IP2,BC,N,0) 
+#else      
+      CALL KppSolveCmplx (E2,BC)
+#endif      
+      DO j=1,N
+        Z2(j) = DBLE( BC(j) )
+        Z3(j) = AIMAG( BC(j) )
+      END DO
+
+   END SUBROUTINE RAD_Solve
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE RAD_ErrorEstimate(N,FJAC,H,Y0,Y,T,&
+               E1,Z1,Z2,Z3,IP1,SCAL,ERR,        &
+               FirstStep,REJECT,GAMMA)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      
+      INTEGER :: N
+#ifdef FULL_ALGEBRA      
+      KPP_REAL :: FJAC(NVAR,NVAR),  E1(NVAR,NVAR)
+#else      
+      KPP_REAL :: FJAC(LU_NONZERO), E1(LU_NONZERO)
+#endif      
+      KPP_REAL :: SCAL(N),Z1(N),Z2(N),Z3(N),F1(N),F2(N), &
+               Y0(N),Y(N),TMP(N),T,H,GAMMA
+      INTEGER :: IP1(N), i
+      LOGICAL FirstStep,REJECT
+      KPP_REAL :: HEE1,HEE2,HEE3,ERR
+
+      HEE1 = rkE(1)/H
+      HEE2 = rkE(2)/H
+      HEE3 = rkE(3)/H
+
+      DO  i=1,N
+         F2(i)=HEE1*Z1(i)+HEE2*Z2(i)+HEE3*Z3(i)
+         TMP(i)=F2(i)+Y0(i)
+      END DO
+
+#ifdef FULL_ALGEBRA      
+      CALL DGETRS ('N',N,1,E1,N,IP1,TMP,N,0) 
+#else      
+      CALL KppSolve (E1, TMP)
+#endif      
+
+      ERR=0.D0
+      DO  i=1,N
+         ERR=ERR+(TMP(i)/SCAL(i))**2
+      END DO
+      ERR=MAX(SQRT(ERR/N),1.D-10)
+!
+      IF (ERR < 1.D0) RETURN
+firej:IF (FirstStep.OR.REJECT) THEN
+          DO i=1,N
+             TMP(i)=Y(i)+TMP(i)
+          END DO
+          CALL FUN_CHEM(T,TMP,F1)
+          DO i=1,N
+             TMP(i)=F1(i)+F2(i)
+          END DO
+
+#ifdef FULL_ALGEBRA      
+          CALL DGETRS ('N',N,1,E1,N,IP1,TMP,N,0) 
+#else      
+          CALL KppSolve (E1, TMP)
+#endif      
+          ERR=0.D0
+          DO i=1,N
+             ERR=ERR+(TMP(i)/SCAL(i))**2
+          END DO
+          ERR=MAX(SQRT(ERR/N),1.0d-10)
+       END IF firej
+ 
+   END SUBROUTINE RAD_ErrorEstimate
+
+!!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!   KPP_REAL FUNCTION CONTR5(I,N,T,CONT)
+!!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!!     THIS FUNCTION CAN BE USED FOR CONTINUOUS OUTPUT. IT PROVIDES AN
+!!     APPROXIMATION TO THE I-TH COMPONENT OF THE SOLUTION AT T.
+!!     IT GIVES THE VALUE OF THE COLLOCATION POLYNOMIAL, DEFINED FOR
+!!     THE STEP SUCCESSFULLY COMPUTED STEP (BY RADAU5).
+!!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!      IMPLICIT NONE
+!      INTEGER :: I, N
+!      KPP_REAL :: T, CONT(N,4)
+!      KPP_REAL :: S 
+!      KPP_REAL, PARAMETER :: ONE = 1.0d0 
+!      S=(T-Tsol)/Hsol
+!      CONTR5=CONT(i,1)+S* &
+!        (CONT(i,2)+(S-rkC(2)+ONE)*(CONT(i,3)+(S-rkC(1)+ONE)*CONT(i,4)))
+!   END FUNCTION CONTR5
+  
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  END SUBROUTINE RADAU5 ! AND ALL ITS INTERNAL PROCEDURES
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE FUN_CHEM(T, V, FCT)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+    USE KPP_ROOT_Parameters
+    USE KPP_ROOT_Global
+    USE KPP_ROOT_Function, ONLY: Fun
+    USE KPP_ROOT_Rates, ONLY: Update_SUN, Update_RCONST, Update_PHOTO
+
+    IMPLICIT NONE
+
+    KPP_REAL :: V(NVAR), FCT(NVAR)
+    KPP_REAL :: T, Told
+
+    !Told = TIME
+    !TIME = T
+    !CALL Update_SUN()
+    !CALL Update_RCONST()
+    !CALL Update_PHOTO()
+    !TIME = Told
+    
+    CALL Fun(V, FIX, RCONST, FCT)
+    
+    Nfun=Nfun+1
+
+  END SUBROUTINE FUN_CHEM
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE JAC_CHEM (T, V, JF)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+    USE KPP_ROOT_Parameters
+    USE KPP_ROOT_Global
+    USE KPP_ROOT_JacobianSP
+    USE KPP_ROOT_Jacobian, ONLY: Jac_SP
+    USE KPP_ROOT_Rates, ONLY: Update_SUN, Update_RCONST, Update_PHOTO
+
+    IMPLICIT NONE
+
+    KPP_REAL :: V(NVAR), T, Told
+#ifdef FULL_ALGEBRA    
+    KPP_REAL :: JV(LU_NONZERO), JF(NVAR,NVAR)
+    INTEGER :: i, j 
+#else
+    KPP_REAL :: JF(LU_NONZERO)
+#endif   
+
+    !Told = TIME
+    !TIME = T
+    !CALL Update_SUN()
+    !CALL Update_RCONST()
+    !CALL Update_PHOTO()
+    !TIME = Told
+    
+#ifdef FULL_ALGEBRA    
+    CALL Jac_SP(V, FIX, RCONST, JV)
+    DO j=1,NVAR
+      DO i=1,NVAR
+         JF(i,j) = 0.0d0
+      END DO
+    END DO
+    DO i=1,LU_NONZERO
+       JF(LU_IROW(i),LU_ICOL(i)) = JV(i)
+    END DO
+#else
+    CALL Jac_SP(V, FIX, RCONST, JF) 
+#endif   
+    
+    Njac=Njac+1
+
+  END SUBROUTINE JAC_CHEM
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+END MODULE KPP_ROOT_Integrator
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/kpp_sdirk4.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/kpp_sdirk4.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/kpp_sdirk4.def	(revision 2696)
@@ -0,0 +1,20 @@
+ 
+#FUNCTION AGGREGATE
+#JACOBIAN SPARSE_LU_ROW
+
+#DOUBLE ON 
+#INTFILE kpp_sdirk4
+
+#INLINE F77_GLOBAL
+      REAL*8 STEPSTART
+      COMMON /GDATA/ STEPSTART
+#ENDINLINE
+
+#INLINE F77_INIT
+        STEPMIN=0.0001
+        STEPMAX=3600.
+        STEPSTART=STEPMIN
+#ENDINLINE
+
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/kpp_sdirk4.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/kpp_sdirk4.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/kpp_sdirk4.f	(revision 2696)
@@ -0,0 +1,705 @@
+      SUBROUTINE INTEGRATE( TIN, TOUT )
+
+      IMPLICIT KPP_REAL (A-H,O-Z)
+      INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Global.h'
+
+C TIN - Start Time
+      KPP_REAL TIN
+C TOUT - End Time
+      KPP_REAL TOUT
+      INTEGER i
+
+      PARAMETER (LWORK=2*NVAR*NVAR+12*NVAR+7,LIWORK=2*NVAR+7)
+      PARAMETER (LRCONT=5*NVAR+2)
+
+      KPP_REAL WORK(LWORK)
+      INTEGER IWORK(LIWORK)
+      COMMON /CONT/ ICONT(4),RCONT(LRCONT)
+      EXTERNAL FUNC_CHEM,JAC_CHEM
+
+      ITOL=1     ! --- VECTOR TOLERANCES
+      IJAC=1     ! --- COMPUTE THE JACOBIAN ANALYTICALLY
+      IMAS=0     ! --- DIFFERENTIAL EQUATION IS IN EXPLICIT FORM
+
+      DO i=1,20
+        IWORK(i) = 0
+        WORK(i) = 0.D0
+      ENDDO
+
+      IWORK(3) = 8
+
+      CALL ATMSDIRK(NVAR,FUNC_CHEM,TIN,VAR,TOUT,STEPMIN,
+     &                  RTOL,ATOL,ITOL,
+     &                  JAC_CHEM ,IJAC, FUNC_CHEM ,IMAS,
+     &                  WORK,LWORK,IWORK,LIWORK,LRCONT,IDID)
+
+      IF (IDID.LT.0) THEN
+        print *,'ATMSDIRK: Unsucessfull exit at T=',
+     &          TIN,' (IDID=',IDID,')'
+      ENDIF
+
+      RETURN
+      END
+
+
+      SUBROUTINE ATMSDIRK(N,FCN,X,Y,XEND,H,
+     &                  RelTol,AbsTol,ITOL,
+     &                  JAC ,IJAC, MAS ,IMAS,
+     &                  WORK,LWORK,IWORK,LIWORK,LRCONT,IDID)
+C ----------------------------------------------------------
+C *** *** *** *** *** *** *** *** *** *** *** *** ***
+C          DECLARATIONS
+C *** *** *** *** *** *** *** *** *** *** *** *** ***
+      IMPLICIT KPP_REAL (A-H,O-Z)
+      DIMENSION Y(N),AbsTol(1),RelTol(1),WORK(LWORK),IWORK(LIWORK)
+      LOGICAL IMPLCT,JBAND,ARRET
+      EXTERNAL FCN,JAC,MAS
+      COMMON/STAT/NFCN,NJAC,NSTEP,NACCPT,NREJCT,NDEC,NSOL
+
+C *** *** *** *** *** *** ***
+C        SETTING THE PARAMETERS
+C *** *** *** *** *** *** ***
+       NFCN=0
+       NJAC=0
+       NSTEP=0
+       NACCPT=0
+       NREJCT=0
+       NDEC=0
+       NSOL=0
+       ARRET=.FALSE.
+C -------- SWITCH FOR TRANSFORMATION OF JACOBIAN TO HESS_CHEM FORM ---
+      NHESS1 = 0         ! ADRIAN
+C -------- NMAX , THE MAXIMAL NUMBER OF STEPS -----
+      IF(IWORK(2).EQ.0)THEN
+         NMAX=100000
+      ELSE
+         NMAX=IWORK(2)
+         IF(NMAX.LE.0)THEN
+            WRITE(6,*)' WRONG INPUT IWORK(2)=',IWORK(2)
+            ARRET=.TRUE.
+         END IF
+      END IF
+C -------- NIT    MAXIMAL NUMBER OF NEWTON ITERATIONS
+      IF(IWORK(3).EQ.0)THEN
+         NIT=8
+      ELSE
+         NIT=IWORK(3)
+         IF(NIT.LE.0)THEN
+            WRITE(6,*)' CURIOUS INPUT IWORK(3)=',IWORK(3)
+            ARRET=.TRUE.
+         END IF
+      END IF
+C -------- METH    SWITCH FOR THE COEFFICIENTS OF THE METHOD
+      METH = 2
+C -------- UROUND   SMALLEST NUMBER SATISFYING 1.D0+UROUND>1.D0
+      IF(WORK(1).EQ.0.D0)THEN
+         UROUND=1.D-16
+      ELSE
+         UROUND=WORK(1)
+         IF(UROUND.LE.1.D-19.OR.UROUND.GE.1.D0)THEN
+            WRITE(6,*)' COEFFICIENTS HAVE 20 DIGITS, UROUND=',WORK(1)
+            ARRET=.TRUE.
+         END IF
+      END IF
+C --------- SAFE     SAFETY FACTOR IN STEP SIZE PREDICTION
+      IF(WORK(2).EQ.0.D0)THEN
+         SAFE=0.9D0
+      ELSE
+         SAFE=WORK(2)
+         IF(SAFE.LE..001D0.OR.SAFE.GE.1.D0)THEN
+            WRITE(6,*)' CURIOUS INPUT FOR WORK(2)=',WORK(2)
+            ARRET=.TRUE.
+         END IF
+      END IF
+C ------ THET     DECIDES WHETHER THE JACOBIAN SHOULD BE RECOMPUTED;
+      IF(WORK(3).EQ.0.D0)THEN
+         THET=0.001D0
+      ELSE
+         THET=WORK(3)
+      END IF
+C --- FNEWT   STOPPING CRIERION FOR NEWTON'S METHOD, USUALLY CHOSEN <1.
+      IF(WORK(4).EQ.0.D0)THEN
+         FNEWT=0.03D0
+      ELSE
+         FNEWT=WORK(4)
+      END IF
+C --- QUOT1 AND QUOT2: IF QUOT1 < HNEW/HOLD < QUOT2, STEP SIZE = CONST.
+      IF(WORK(5).EQ.0.D0)THEN
+         QUOT1=1.D0
+      ELSE
+         QUOT1=WORK(5)
+      END IF
+      IF(WORK(6).EQ.0.D0)THEN
+         QUOT2=1.2D0
+      ELSE
+         QUOT2=WORK(6)
+      END IF
+C -------- MAXIMAL STEP SIZE
+      IF(WORK(7).EQ.0.D0)THEN
+         HMAX=XEND-X
+      ELSE
+         HMAX=WORK(7)
+      END IF
+C --------- CHECK IF TOLERANCES ARE O.K.
+      IF (ITOL.EQ.0) THEN
+          IF (AbsTol(1).LE.0.D0.OR.RelTol(1).LE.10.D0*UROUND) THEN
+              WRITE (6,*) ' TOLERANCES ARE TOO SMALL'
+              ARRET=.TRUE.
+          END IF
+      ELSE
+          DO 15 I=1,N
+          IF (AbsTol(I).LE.0.D0.OR.RelTol(I).LE.10.D0*UROUND) THEN
+              WRITE (6,*) ' TOLERANCES(',I,') ARE TOO SMALL'
+              ARRET=.TRUE.
+          END IF
+  15      CONTINUE
+      END IF
+
+C *** *** *** *** *** *** *** *** *** *** *** *** ***
+C         COMPUTATION OF ARRAY ENTRIES
+C *** *** *** *** *** *** *** *** *** *** *** *** ***
+C ---- IMPLICIT, BANDED OR NOT ?
+      IMPLCT=IMAS.NE.0
+      ARRET=.FALSE.
+C -------- COMPUTATION OF THE ROW-DIMENSIONS OF THE 2-ARRAYS ---
+C -- JACOBIAN
+         LDJAC=N
+C -- MATRIX E FOR LINEAR ALGEBRA
+         LDE=N
+C -- MASS MATRIX
+      IF (IMPLCT) THEN
+          print *,'IMPLCT 1'
+      ELSE
+          LDMAS=0
+      END IF
+      LDMAS2=MAX(1,LDMAS)
+
+C ------- PREPARE THE ENTRY-POINTS FOR THE ARRAYS IN WORK -----
+      IEYHAT=8
+      IEZ=IEYHAT+N
+      IEY0=IEZ+N
+      IEZ1=IEY0+N
+      IEZ2=IEZ1+N
+      IEZ3=IEZ2+N
+      IEZ4=IEZ3+N
+      IEZ5=IEZ4+N
+      IESCAL=IEZ5+N
+      IEF1=IESCAL+N
+      IEG1=IEF1+N
+      IEH1=IEG1+N
+      IEJAC=IEH1+N
+      IEMAS=IEJAC+N*LDJAC
+      IEE=IEMAS+N*LDMAS
+
+C ------ TOTAL STORAGE REQUIREMENT -----------
+      ISTORE=IEE+N*LDE-1
+      IF(ISTORE.GT.LWORK)THEN
+         WRITE(6,*)' INSUFFICIENT STORAGE FOR WORK, MIN. LWORK=',ISTORE
+         ARRET=.TRUE.
+      END IF
+C ------- ENTRY POINTS FOR INTEGER WORKSPACE -----
+      IEIP=5
+      IEHES=IEIP+N
+C --------- TOTAL REQUIREMENT ---------------
+      ISTORE=IEHES+N-1
+      IF(ISTORE.GT.LIWORK)THEN
+         WRITE(6,*)' INSUFF. STORAGE FOR IWORK, MIN. LIWORK=',ISTORE
+         ARRET=.TRUE.
+      END IF
+C --------- CONTROL OF LENGTH OF COMMON BLOCK "CONT" -------
+      IF(LRCONT.LT.(5*N+2))THEN
+         WRITE(6,*)' INSUFF. STORAGE FOR RCONT, MIN. LRCONT=',5*N+2
+         ARRET=.TRUE.
+      END IF
+C ------ WHEN A FAIL HAS OCCURED, WE RETURN WITH IDID=-1
+      IF (ARRET) THEN
+         IDID=-1
+         RETURN
+      END IF
+C -------- CALL TO CORE INTEGRATOR ------------
+      CALL SDICOR(N,FCN,X,Y,XEND,HMAX,H,RelTol,AbsTol,ITOL,
+     &   JAC,IJAC,MLJAC,MUJAC,MAS,MLMAS,MUMAS,IOUT,IDID,
+     &   NMAX,UROUND,SAFE,THET,FNEWT,QUOT1,QUOT2,NIT,METH,NHESS1,
+     &   IMPLCT,JBAND,LDJAC,LDE,LDMAS2,
+     &   WORK(IEYHAT),WORK(IEZ),WORK(IEY0),WORK(IEZ1),WORK(IEZ2),
+     &   WORK(IEZ3),WORK(IEZ4),WORK(IEZ5),WORK(IESCAL),WORK(IEF1),
+     &   WORK(IEG1),WORK(IEH1),WORK(IEJAC),WORK(IEE),
+     &   WORK(IEMAS),IWORK(IEIP),IWORK(IEHES))
+C ----------- RETURN -----------
+      RETURN
+      END
+C
+C
+C
+C  ----- ... AND HERE IS THE CORE INTEGRATOR  ----------
+C
+      SUBROUTINE SDICOR(N,FCN,X,Y,XEND,HMAX,H,RelTol,AbsTol,ITOL,
+     &   JAC,IJAC,MLJAC,MUJAC,MAS,MLMAS,MUMAS,IOUT,IDID,
+     &   NMAX,UROUND,SAFE,THET,FNEWT,QUOT1,QUOT2,NIT,METH,NHESS1,
+     &   IMPLCT,BANDED,LDJAC,LE,LDMAS,
+     &   YHAT,Z,Y0,Z1,Z2,Z3,Z4,Z5,SCAL,F1,G1,H1,FJAC,E,FMAS,IP,IPHES)
+C ----------------------------------------------------------
+C     CORE INTEGRATOR FOR SDIRK4
+C     PARAMETERS SAME AS IN SDIRK4 WITH WORKSPACE ADDED
+C ----------------------------------------------------------
+C         DECLARATIONS
+C ----------------------------------------------------------
+      IMPLICIT KPP_REAL (A-H,O-Z)
+      INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Sparse.h'
+      KPP_REAL Y(N),YHAT(N),Z(N),Y0(N),Z1(N),Z2(N),Z3(N),Z4(N),Z5(N)
+      KPP_REAL SCAL(N),F1(N),G1(N),H1(N)
+      KPP_REAL FJAC(LU_NONZERO),E(LU_NONZERO),FMAS(LDMAS,N)
+      KPP_REAL AbsTol(1),RelTol(1)
+      INTEGER IP(N),IPHES(N)
+      LOGICAL REJECT,FIRST,IMPLCT,BANDED,CALJAC,NEWTRE
+      COMMON /CONT/NN,NN2,NN3,NN4,XOLD,HSOL,CONT(5*NVAR)
+      COMMON/STAT/NFCN,NJAC,NSTEP,NACCPT,NREJCT,NDEC,NSOL
+      EXTERNAL MAS, FCN, JAC
+
+C *** *** *** *** *** *** ***
+C  INITIALISATIONS
+C *** *** *** *** *** *** ***
+
+C --------- DUPLIFY N FOR COMMON BLOCK CONT -----
+      NN=N
+      NN2=2*N
+      NN3=3*N
+      NN4=4*N
+
+C ------- COMPUTE MASS MATRIX FOR IMPLICIT CASE ----------
+      IF(IMPLCT) CALL MAS(N,FMAS,LDMAS)
+
+C ---------- CONSTANTS ---------
+      MBDIAG=MUMAS+1
+      IF (METH.EQ.2) THEN
+C ---------- METHOD WITH GAMMA = 4/15 ---------------
+          GAMMA=4.0D0/15.0D0
+          C2=23.0D0/30.0D0
+          C3=17.0D0/30.0D0
+          C4=2881.0D0/28965.0D0+GAMMA
+          ALPH21=15.0D0/8.0D0
+          ALPH31=1577061.0D0/922880.0D0
+          ALPH32=-23427.0D0/115360.0D0
+          ALPH41=647163682356923881.0D0/2414496535205978880.0D0
+          ALPH42=-593512117011179.0D0/3245291041943520.0D0
+          ALPH43=559907973726451.0D0/1886325418129671.0D0
+          ALPH51=724545451.0D0/796538880.0D0
+          ALPH52=-830832077.0D0/267298560.0D0
+          ALPH53=30957577.0D0/2509272.0D0
+          ALPH54=-69863904375173.0D0/6212571137048.0D0
+          E1=7752107607.0D0/11393456128.0D0
+          E2=-17881415427.0D0/11470078208.0D0
+          E3=2433277665.0D0/179459416.0D0
+          E4=-96203066666797.0D0/6212571137048.0D0
+          D11= 24.74416644927758D0
+          D12= -4.325375951824688D0
+          D13= 41.39683763286316D0
+          D14= -61.04144619901784D0
+          D15= -3.391332232917013D0
+          D21= -51.98245719616925D0
+          D22= 10.52501981094525D0
+          D23= -154.2067922191855D0
+          D24= 214.3082125319825D0
+          D25= 14.71166018088679D0
+          D31= 33.14347947522142D0
+          D32= -19.72986789558523D0
+          D33= 230.4878502285804D0
+          D34= -287.6629744338197D0
+          D35= -18.99932366302254D0
+          D41= -5.905188728329743D0
+          D42= 13.53022403646467D0
+          D43= -117.6778956422581D0
+          D44= 134.3962081008550D0
+          D45= 8.678995715052762D0
+         ETA1=23.D0/8.D0
+         ANU1= 0.9838473040915402D0
+         ANU2= 0.3969226768377252D0
+         AMU1= 0.6563374010466914D0
+         AMU3= 0.3372498196189311D0
+      ELSE
+         PRINT *, 'WRONG  CHOICE OF <METH>'
+      END IF
+      POSNEG=SIGN(1.D0,XEND-X)
+      HMAX1=MIN(ABS(HMAX),ABS(XEND-X))
+      IF (ABS(H).LE.10.D0*UROUND) H=1.0D-6
+      H=MIN(ABS(H),HMAX1)
+      H=SIGN(H,POSNEG)
+      HOLD=H
+      CFAC=SAFE*(1+2*NIT)
+      NEWTRE=.FALSE.
+      REJECT=.FALSE.
+      FIRST=.TRUE.
+      FACCO1=1.D0
+      FACCO2=1.D0
+      FACCO3=1.D0
+      FACCO4=1.D0
+      FACCO5=1.D0
+      NSING=0
+      XOLD=X
+      IF (ITOL.EQ.0) THEN
+          DO 8 I=1,N
+   8      SCAL(I)=1.D0 / ( AbsTol(1)+RelTol(1)*DABS(Y(I)) )
+      ELSE
+          DO 9 I=1,N
+   9      SCAL(I)=1.D0 / ( AbsTol(I)+RelTol(I)*DABS(Y(I)) )
+      END IF
+
+C --- BASIC INTEGRATION STEP
+  10  CONTINUE
+
+C *** *** *** *** *** *** ***
+C  COMPUTATION OF THE JACOBIAN
+C *** *** *** *** *** *** ***
+      NJAC=NJAC+1
+      CALL JAC(N,X,Y,FJAC)
+      CALJAC=.TRUE.
+  20  CONTINUE
+
+C *** *** *** *** *** *** ***
+C  COMPUTE THE MATRIX E AND ITS DECOMPOSITION
+C *** *** *** *** *** *** ***
+      FAC1=1.D0/(H*GAMMA)
+      IF (IMPLCT) THEN
+         print *, 'IMPLCT 4'
+      ELSE  ! EXPLICIT SYSTEM
+C --- THE MATRIX E (MAS=IDENTITY, JACOBIAN A FULL MATRIX)
+c         DO 526 J=1,N
+c           DO 525 I=1,N
+c 525         E(I,J)=-FJAC(I,J)
+c 526       E(J,J)=E(J,J)+FAC1
+c         CALL DEC(N,LE,E,IP,IER)
+          DO K=1,LU_NONZERO
+             E(K) = -FJAC(K)
+          END DO
+          DO I=1,N
+             IDG = LU_DIAG(I)
+             E(IDG) = E(IDG) + FAC1
+          END DO
+          CALL KppDecomp ( E, IER)
+
+         IF (IER.NE.0) GOTO 79
+      END IF
+      NDEC=NDEC+1
+  30  CONTINUE
+
+      IF (NSTEP.GT.NMAX.OR.X+.1D0*H.EQ.X.OR.ABS(H).LE.UROUND) GOTO 79
+      XPH=X+H
+C --- LOOP FOR THE 5 STAGES
+      FACCO1=DMAX1(FACCO1,UROUND)**0.8D0
+      FACCO2=DMAX1(FACCO2,UROUND)**0.8D0
+      FACCO3=DMAX1(FACCO3,UROUND)**0.8D0
+      FACCO4=DMAX1(FACCO4,UROUND)**0.8D0
+      FACCO5=DMAX1(FACCO5,UROUND)**0.8D0
+
+C *** *** *** *** *** *** ***
+C  STARTING VALUES FOR NEWTON ITERATION
+C *** *** *** *** *** *** ***
+      DO 59 ISTAGE=1,5
+      IF (ISTAGE.EQ.1) THEN
+          XCH=X+GAMMA*H
+          IF (FIRST.OR.NEWTRE) THEN
+              DO 132 I=1,N
+ 132          Z(I)=0.D0
+          ELSE
+              S=1.D0+GAMMA*H/HOLD
+              DO 232 I=1,N
+c  232          Z(I) = 0.D0
+ 232          Z(I)=S*(CONT(I+NN)+S*(CONT(I+NN2)+S*(CONT(I+NN3)
+     &             +S*CONT(I+NN4))))-YHAT(I)
+
+          END IF
+          DO 31 I=1,N
+  31      G1(I)=0.D0
+          FACCON=FACCO1
+      END IF
+      IF (ISTAGE.EQ.2) THEN
+          XCH=X+C2*H
+          DO 131 I=1,N
+          Z1I=Z1(I)
+          Z(I)=ETA1*Z1I
+ 131      G1(I)=ALPH21*Z1I
+          FACCON=FACCO2
+      END IF
+      IF (ISTAGE.EQ.3) THEN
+          XCH=X+C3*H
+          DO 231 I=1,N
+          Z1I=Z1(I)
+          Z2I=Z2(I)
+          Z(I)=ANU1*Z1I+ANU2*Z2I
+ 231      G1(I)=ALPH31*Z1I+ALPH32*Z2I
+          FACCON=FACCO3
+      END IF
+      IF (ISTAGE.EQ.4) THEN
+          XCH=X+C4*H
+          DO 331 I=1,N
+          Z1I=Z1(I)
+          Z3I=Z3(I)
+          Z(I)=AMU1*Z1I+AMU3*Z3I
+ 331      G1(I)=ALPH41*Z1I+ALPH42*Z2(I)+ALPH43*Z3I
+          FACCON=FACCO4
+      END IF
+      IF (ISTAGE.EQ.5) THEN
+          XCH=XPH
+          DO 431 I=1,N
+          Z1I=Z1(I)
+          Z2I=Z2(I)
+          Z3I=Z3(I)
+          Z4I=Z4(I)
+          Z(I)=E1*Z1I+E2*Z2I+E3*Z3I+E4*Z4I
+          YHAT(I)=Z(I)
+ 431      G1(I)=ALPH51*Z1I+ALPH52*Z2I+ALPH53*Z3I+ALPH54*Z4I
+          FACCON=FACCO5
+      END IF
+
+
+
+C *** *** *** *** *** *** *** *** *** *** ***
+C  LOOP FOR THE SIMPLIFIED NEWTON ITERATION
+C *** *** *** *** *** *** *** *** *** *** ***
+            NEWT=0
+            THETA=ABS(THET)
+            IF (REJECT) THETA=2*ABS(THET)
+  40        CONTINUE
+            IF (NEWT.GE.NIT) THEN
+                H=H/2.D0
+                REJECT=.TRUE.
+                NEWTRE=.TRUE.
+                IF (CALJAC) GOTO 20
+                GOTO 10
+            END IF
+
+C ---     COMPUTE THE RIGHT-HAND SIDE
+            DO 41 I=1,N
+            H1(I)=G1(I)-Z(I)
+  41        CONT(I)=Y(I)+Z(I)
+            CALL FCN(N,XCH,CONT,F1)
+            NFCN=NFCN+1
+
+C ---     KppSolve THE LINEAR SYSTEMS
+            IF (IMPLCT) THEN
+                print *, 'IMPLCT 2'
+            ELSE
+                DO 345 I=1,N
+ 345            F1(I)=H1(I)*FAC1+F1(I)
+C                CALL SOL(N,LE,E,F1,IP)
+                CALL KppSolve(E, F1)
+            END IF
+            NEWT=NEWT+1
+            DYNO=0.D0
+C --- NORM 2 ---
+            DO 57 I=1,N
+  57        DYNO=DYNO+(F1(I)*SCAL(I))**2
+            DYNO=DSQRT(DYNO/N)
+C --- NORM INF ---
+C            DO 57 I=1,N
+C  57        DYNO=DMAX1( DYNO, DABS(F1(I)*SCAL(I)) )
+
+
+C ---     BAD CONVERGENCE OR NUMBER OF ITERATIONS TO LARGE
+            IF (NEWT.GE.2.AND.NEWT.LT.NIT) THEN
+                THETA=DYNO/DYNOLD
+                IF (THETA.LT.0.99D0) THEN
+                    FACCON=THETA/(1.0D0-THETA)
+                    DYTH=FACCON*DYNO*THETA**(NIT-1-NEWT)
+                    QNEWT=DMAX1(1.0D-4,DMIN1(16.0D0,DYTH/FNEWT))
+                    IF (QNEWT.GE.1.0D0) THEN
+                         H=.8D0*H*QNEWT**(-1.0D0/(NIT-NEWT))
+                         REJECT=.TRUE.
+                         NEWTRE=.TRUE.
+                         IF (CALJAC) GOTO 20
+                         GOTO 10
+                    END IF
+                ELSE
+                    NEWTRE=.TRUE.
+                    GOTO 78
+                END IF
+            END IF
+            DYNOLD=DYNO
+            DO 58 I=1,N
+  58        Z(I)=Z(I)+F1(I)
+            NSOL=NSOL+1
+            IF (FACCON*DYNO.GT.FNEWT) GOTO 40
+
+C --- END OF SIMPILFIED NEWTON
+      IF (ISTAGE.EQ.1) THEN
+          DO I=1,N
+            Z1(I) = Z(I)
+          END DO
+          FACCO1=FACCON
+      END IF
+      IF (ISTAGE.EQ.2) THEN
+          DO I=1,N
+            Z2(I) = Z(I)
+          END DO
+          FACCO2=FACCON
+      END IF
+      IF (ISTAGE.EQ.3) THEN
+          DO I=1,N
+            Z3(I) = Z(I)
+          END DO
+          FACCO3=FACCON
+      END IF
+      IF (ISTAGE.EQ.4) THEN
+          DO I=1,N
+            Z4(I) = Z(I)
+          END DO
+          FACCO4=FACCON
+      END IF
+      IF (ISTAGE.EQ.5) THEN
+          DO I=1,N
+            Z5(I) = Z(I)
+          END DO
+          FACCO5=FACCON
+      END IF
+  59  CONTINUE
+
+
+C *** *** *** *** *** *** ***
+C  ERROR ESTIMATION
+C *** *** *** *** *** *** ***
+      NSTEP=NSTEP+1
+      IF (IMPLCT) THEN
+          print *,'IMPLCT 3'
+      ELSE
+          DO 461 I=1,N
+ 461      CONT(I)=FAC1*(Z5(I)-YHAT(I))
+      END IF
+
+      CALL KppSolve(E, CONT)
+
+      ERR=0.D0
+C ---- NORM 2 ---
+      DO 64 I=1,N
+  64  ERR=ERR+(CONT(I)*SCAL(I))**2
+      ERR=DMAX1(DSQRT(ERR/N),1.D-10)
+
+C ---- NORM INF ---
+C      DO 64 I=1,N
+c  64  ERR=DMAX1( ERR, DABS( CONT(I)*SCAL(I) ) )
+
+C --- COMPUTATION OF HNEW
+C --- WE REQUIRE .25<=HNEW/H<=10.
+      FAC=DMIN1(SAFE,CFAC/(NEWT+2*NIT))
+      QUOT=DMAX1(.25D0,DMIN1(10.D0,(ERR)**.25D0/FAC))
+      HNEW= H/QUOT
+
+C *** *** *** *** *** *** ***
+C  IS THE ERROR SMALL ENOUGH ?
+C *** *** *** *** *** *** ***
+      IF (ERR.LT.1.D0) THEN
+C --- STEP IS ACCEPTED
+         FIRST=.FALSE.
+         NACCPT=NACCPT+1
+         HOLD=H
+         XOLD=X
+C --- COEFFICIENTS FOR CONTINUOUS SOLUTION
+         DO 74 I=1,N
+          Z1I=Z1(I)
+          Z2I=Z2(I)
+          Z3I=Z3(I)
+          Z4I=Z4(I)
+          Z5I=Z5(I)
+         CONT(I)=Y(I)
+         Y(I)=Y(I)+Z5I
+         CONT(I+NN) =D11*Z1I+D12*Z2I+D13*Z3I+D14*Z4I+D15*Z5I
+         CONT(I+NN2)=D21*Z1I+D22*Z2I+D23*Z3I+D24*Z4I+D25*Z5I
+         CONT(I+NN3)=D31*Z1I+D32*Z2I+D33*Z3I+D34*Z4I+D35*Z5I
+         CONT(I+NN4)=D41*Z1I+D42*Z2I+D43*Z3I+D44*Z4I+D45*Z5I
+         YHAT(I)=Z5I
+         IF (ITOL.EQ.0) THEN
+           SCAL(I)=1.D0/( AbsTol(1)+RelTol(1)*DABS(Y(I)) )
+         ELSE
+           SCAL(I)=1.D0/( AbsTol(I)+RelTol(I)*DABS(Y(I)) )
+         END IF
+  74     CONTINUE
+         X=XPH
+         CALJAC=.FALSE.
+         IF ((X-XEND)*POSNEG+UROUND.GT.0.D0) THEN
+            H=HOPT
+            IDID=1
+            RETURN
+         END IF
+         IF (IJAC.EQ.0) CALL FCN(N,X,Y,Y0)
+         NFCN=NFCN+1
+         HNEW=POSNEG*DMIN1(DABS(HNEW),HMAX1)
+         HOPT=HNEW
+         IF (REJECT) HNEW=POSNEG*DMIN1(DABS(HNEW),DABS(H))
+         REJECT=.FALSE.
+         NEWTRE=.FALSE.
+         IF ((X+HNEW/QUOT1-XEND)*POSNEG.GT.0.D0) THEN
+            H=XEND-X
+         ELSE
+            QT=HNEW/H
+            IF (THETA.LE.THET.AND.QT.GE.QUOT1.AND.QT.LE.QUOT2) GOTO 30
+            H = HNEW
+         END IF
+         IF (THETA.LE.THET) GOTO 20
+         GOTO 10
+
+      ELSE
+C --- STEP IS REJECTED
+         REJECT=.TRUE.
+         IF (FIRST) THEN
+             H=H/10.D0
+         ELSE
+             H=HNEW
+         END IF
+         IF (NACCPT.GE.1) NREJCT=NREJCT+1
+         IF (CALJAC) GOTO 20
+         GOTO 10
+      END IF
+
+C --- UNEXPECTED STEP-REJECTION
+  78  CONTINUE
+      IF (IER.NE.0) THEN
+          WRITE (6,*) ' MATRIX IS SINGULAR, IER=',IER,' X=',X,' H=',H
+          NSING=NSING+1
+          IF (NSING.GE.6) GOTO 79
+      END IF
+      H=H*0.5D0
+      REJECT=.TRUE.
+      IF (CALJAC) GOTO 20
+      GOTO 10
+
+C --- FAIL EXIT
+  79  WRITE (6,979) X,H,IER
+ 979  FORMAT(' EXIT OF SDIRK4 AT X=',D14.7,'   H=',D14.7,'   IER=',I4)
+      IDID=-1
+      RETURN
+      END
+C
+
+
+      SUBROUTINE FUNC_CHEM(N, T, Y, P)
+      INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Global.h'
+      INTEGER N
+      KPP_REAL   T, Told
+      KPP_REAL   Y(NVAR), P(NVAR)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Fun( Y,  FIX, RCONST, P )
+      TIME = Told
+      RETURN
+      END
+
+
+      SUBROUTINE JAC_CHEM(N, T, Y, J)
+      INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Global.h'
+      INTEGER N
+      KPP_REAL   Told, T
+      KPP_REAL   Y(NVAR), J(LU_NONZERO)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Jac_SP( Y,  FIX, RCONST, J )
+      TIME = Told
+      RETURN
+      END
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/kpp_sdirk4.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/kpp_sdirk4.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/kpp_sdirk4.f90	(revision 2696)
@@ -0,0 +1,972 @@
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
+!  SDIRK - Singly-Diagonally-Implicit Runge-Kutta method                  !
+!                       (L-stable, 5 stages, order 4)                     !
+!  By default the code employs the KPP sparse linear algebra routines     !
+!  Compile with -DFULL_ALGEBRA to use full linear algebra (LAPACK)        !
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
+! A. Sandu - version of July 10, 2005
+
+MODULE KPP_ROOT_Integrator
+
+  USE KPP_ROOT_Precision
+  USE KPP_ROOT_Global, ONLY: FIX, RCONST, TIME
+  USE KPP_ROOT_Parameters, ONLY: NVAR, NSPEC, NFIX, LU_NONZERO
+  USE KPP_ROOT_JacobianSP, ONLY: LU_DIAG
+  USE KPP_ROOT_LinearAlgebra, ONLY: KppDecomp, KppSolve, &
+               Set2zero, WLAMCH, WAXPY, WCOPY
+  
+  IMPLICIT NONE
+  PUBLIC
+  SAVE
+  
+  !~~~>  Statistics on the work performed by the SDIRK method
+  INTEGER :: Nfun,Njac,Nstp,Nacc,Nrej,Ndec,Nsol,Nsng
+  INTEGER, PARAMETER :: ifun=1, ijac=2, istp=3, iacc=4,  &
+    irej=5, idec=6, isol=7, isng=8, itexit=1, ihexit=2
+  !  SDIRK method coefficients
+  KPP_REAL :: rkAlpha(5,4), rkBeta(5,4), rkD(4,5),  &
+                   rkGamma, rkA(5,5), rkB(5), rkC(5)
+                   
+  ! description of the error numbers IERR
+  CHARACTER(LEN=50), PARAMETER, DIMENSION(-8:1) :: IERR_NAMES = (/ &
+    'Matrix is repeatedly singular                     ', & ! -8
+    'Step size too small: T + 10*H = T or H < Roundoff ', & ! -7
+    'No of steps exceeds maximum bound                 ', & ! -6
+    'Improper tolerance values                         ', & ! -5
+    'FacMin/FacMax/FacRej must be positive             ', & ! -4
+    'Hmin/Hmax/Hstart must be positive                 ', & ! -3
+    'Improper value for maximal no of Newton iterations', & ! -2
+    'Improper value for maximal no of steps            ', & ! -1
+    '                                                  ', & !  0 (not used)
+    'Success                                           ' /) !  1
+
+CONTAINS
+
+SUBROUTINE INTEGRATE( TIN, TOUT, &
+  ICNTRL_U, RCNTRL_U, ISTATUS_U, RSTATUS_U, IERR_U )
+
+   USE KPP_ROOT_Parameters
+   USE KPP_ROOT_Global
+   IMPLICIT NONE
+
+   KPP_REAL, INTENT(IN) :: TIN  ! Start Time
+   KPP_REAL, INTENT(IN) :: TOUT ! End Time
+   ! Optional input parameters and statistics
+   INTEGER,  INTENT(IN),  OPTIONAL :: ICNTRL_U(20)
+   KPP_REAL, INTENT(IN),  OPTIONAL :: RCNTRL_U(20)
+   INTEGER,  INTENT(OUT), OPTIONAL :: ISTATUS_U(20)
+   KPP_REAL, INTENT(OUT), OPTIONAL :: RSTATUS_U(20)
+   INTEGER,  INTENT(OUT), OPTIONAL :: IERR_U
+
+   !INTEGER, SAVE :: Ntotal = 0
+   KPP_REAL :: RCNTRL(20), RSTATUS(20)
+   INTEGER  :: ICNTRL(20), ISTATUS(20), IERR
+
+   ICNTRL(:)  = 0
+   RCNTRL(:)  = 0.0_dp
+   ISTATUS(:) = 0
+
+   ! If optional parameters are given, and if they are >0, 
+   ! then they overwrite default settings. 
+   IF (PRESENT(ICNTRL_U)) THEN
+     WHERE(ICNTRL_U(:) > 0) ICNTRL(:) = ICNTRL_U(:)
+   END IF
+   IF (PRESENT(RCNTRL_U)) THEN
+     WHERE(RCNTRL_U(:) > 0) RCNTRL(:) = RCNTRL_U(:)
+   END IF
+
+   CALL SDIRK( NVAR,TIN,TOUT,VAR,RTOL,ATOL,          &
+               RCNTRL,ICNTRL,RSTATUS,ISTATUS,IERR )
+
+! mz_rs_20050716: IERR and ISTATUS(istp) are returned to the user who then
+! decides what to do about it, i.e. either stop the run or ignore it.
+!!$   IF (IERR < 0) THEN
+!!$        PRINT *,'SDIRK: Unsuccessful exit at T=',TIN,' (IERR=',IERR,')'
+!!$   ENDIF
+!!$   Ntotal = Ntotal + Nstp
+!!$   PRINT*,'NSTEPS=',Nstp, '(',Ntotal,')'
+
+    STEPMIN = RSTATUS(ihexit) ! Save last step
+   
+   ! if optional parameters are given for output they to return information
+   IF (PRESENT(ISTATUS_U)) ISTATUS_U(:) = ISTATUS(:)
+   IF (PRESENT(RSTATUS_U)) THEN
+     RSTATUS_U(:) = RSTATUS(:)
+     RSTATUS_U(1) = TOUT ! final time
+   END IF  
+   IF (PRESENT(IERR_U))    IERR_U       = IERR
+
+   END SUBROUTINE INTEGRATE
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE SDIRK(N, Tinitial, Tfinal, Y, RelTol, AbsTol,     &
+                       RCNTRL, ICNTRL, RSTATUS, ISTATUS, IDID)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!    Solves the system y'=F(t,y) using a Singly-Diagonally-Implicit
+!    Runge-Kutta (SDIRK) method.
+!
+!    For details on SDIRK methods and their implementation consult:
+!      E. Hairer and G. Wanner
+!      "Solving ODEs II. Stiff and differential-algebraic problems".
+!      Springer series in computational mathematics, Springer-Verlag, 1996.
+!    This code is based on the SDIRK4 routine in the above book.
+!
+!    (C)  Adrian Sandu, July 2005
+!    Virginia Polytechnic Institute and State University
+!    Contact: sandu@cs.vt.edu
+!    This implementation is part of KPP - the Kinetic PreProcessor
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>   INPUT ARGUMENTS:
+!
+!-     Y(NVAR)    = vector of initial conditions (at T=Tinitial)
+!-    [Tinitial,Tfinal]  = time range of integration
+!     (if Tinitial>Tfinal the integration is performed backwards in time)
+!-    RelTol, AbsTol = user precribed accuracy
+!- SUBROUTINE ode_Fun( T, Y, Ydot ) = ODE function,
+!                       returns Ydot = Y' = F(T,Y)
+!- SUBROUTINE ode_Fun( T, Y, Ydot ) = Jacobian of the ODE function,
+!                       returns Jcb = dF/dY
+!-    ICNTRL(1:20)    = integer inputs parameters
+!-    RCNTRL(1:20)    = real inputs parameters
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>     OUTPUT ARGUMENTS:
+!
+!-    Y(NVAR)         -> vector of final states (at T->Tfinal)
+!-    ISTATUS(1:20)   -> integer output parameters
+!-    RSTATUS(1:20)   -> real output parameters
+!-    IDID            -> job status upon return
+!                        success (positive value) or
+!                        failure (negative value)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>     INPUT PARAMETERS:
+!
+!    Note: For input parameters equal to zero the default values of the
+!       corresponding variables are used.
+!
+!    Note: For input parameters equal to zero the default values of the
+!          corresponding variables are used.
+!~~~>  
+!    ICNTRL(1) = not used
+!
+!    ICNTRL(2) = 0: AbsTol, RelTol are NVAR-dimensional vectors
+!              = 1: AbsTol, RelTol are scalars
+!
+!    ICNTRL(3) = not used
+!
+!    ICNTRL(4)  -> maximum number of integration steps
+!        For ICNTRL(4)=0 the default value of 100000 is used
+!
+!    ICNTRL(5)  -> maximum number of Newton iterations
+!        For ICNTRL(5)=0 the default value of 8 is used
+!
+!    ICNTRL(6)  -> starting values of Newton iterations:
+!        ICNTRL(6)=0 : starting values are interpolated (the default)
+!        ICNTRL(6)=1 : starting values are zero
+!
+!~~~>  Real parameters
+!
+!    RCNTRL(1)  -> Hmin, lower bound for the integration step size
+!                  It is strongly recommended to keep Hmin = ZERO
+!    RCNTRL(2)  -> Hmax, upper bound for the integration step size
+!    RCNTRL(3)  -> Hstart, starting value for the integration step size
+!
+!    RCNTRL(4)  -> FacMin, lower bound on step decrease factor (default=0.2)
+!    RCNTRL(5)  -> FacMax, upper bound on step increase factor (default=6)
+!    RCNTRL(6)  -> FacRej, step decrease factor after multiple rejections
+!                 (default=0.1)
+!    RCNTRL(7)  -> FacSafe, by which the new step is slightly smaller
+!                  than the predicted value  (default=0.9)
+!    RCNTRL(8)  -> ThetaMin. If Newton convergence rate smaller
+!                  than ThetaMin the Jacobian is not recomputed;
+!                  (default=0.001)
+!    RCNTRL(9)  -> NewtonTol, stopping criterion for Newton's method
+!                  (default=0.03)
+!    RCNTRL(10) -> Qmin
+!    RCNTRL(11) -> Qmax. If Qmin < Hnew/Hold < Qmax, then the
+!                  step size is kept constant and the LU factorization
+!                  reused (default Qmin=1, Qmax=1.2)
+!
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>     OUTPUT PARAMETERS:
+!
+!    Note: each call to Rosenbrock adds the current no. of fcn calls
+!      to previous value of ISTATUS(1), and similar for the other params.
+!      Set ISTATUS(1:10) = 0 before call to avoid this accumulation.
+!
+!    ISTATUS(1) = No. of function calls
+!    ISTATUS(2) = No. of jacobian calls
+!    ISTATUS(3) = No. of steps
+!    ISTATUS(4) = No. of accepted steps
+!    ISTATUS(5) = No. of rejected steps (except at the beginning)
+!    ISTATUS(6) = No. of LU decompositions
+!    ISTATUS(7) = No. of forward/backward substitutions
+!    ISTATUS(8) = No. of singular matrix decompositions
+!
+!    RSTATUS(1)  -> Texit, the time corresponding to the
+!                   computed Y upon return
+!    RSTATUS(2)  -> Hexit, last predicted step before exit
+!    For multiple restarts, use Hexit as Hstart in the following run
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+
+! Arguments      
+      INTEGER, INTENT(IN)          :: N, ICNTRL(20)
+      KPP_REAL, INTENT(IN)    :: Tinitial, Tfinal,    &
+                    RelTol(NVAR), AbsTol(NVAR), RCNTRL(20)
+      KPP_REAL, INTENT(INOUT) :: Y(NVAR)
+      INTEGER, INTENT(OUT)         :: IDID
+      INTEGER, INTENT(INOUT)       :: ISTATUS(20) 
+      KPP_REAL, INTENT(OUT)   :: RSTATUS(20)
+       
+! Local variables      
+      KPP_REAL :: Hmin, Hmax, Hstart, Roundoff,    &
+                       FacMin, Facmax, FacSafe, FacRej, &
+                       ThetaMin, NewtonTol, Qmin, Qmax, &
+                       Texit, Hexit
+      INTEGER :: ITOL, NewtonMaxit, Max_no_steps, i
+      KPP_REAL, PARAMETER :: ZERO = 0.0d0
+
+!~~~>  Initialize statistics
+   Nfun = ISTATUS(ifun)
+   Njac = ISTATUS(ijac)
+   Nstp = ISTATUS(istp)
+   Nacc = ISTATUS(iacc)
+   Nrej = ISTATUS(irej)
+   Ndec = ISTATUS(idec)
+   Nsol = ISTATUS(isol)
+   Nsng = ISTATUS(isng)
+!   Nfun=0; Njac=0; Nstp=0; Nacc=0
+!   Nrej=0; Ndec=0; Nsol=0; Nsng=0
+       
+   IDID = 0
+
+!~~~>  For Scalar tolerances (ICNTRL(2).NE.0)  the code uses AbsTol(1) and RelTol(1)
+!   For Vector tolerances (ICNTRL(2) == 0) the code uses AbsTol(1:NVAR) and RelTol(1:NVAR)
+   IF (ICNTRL(2) == 0) THEN
+      ITOL = 1
+   ELSE
+      ITOL = 0
+   END IF
+
+!~~~>   The maximum number of time steps admitted
+   IF (ICNTRL(3) == 0) THEN
+      Max_no_steps = 100000
+   ELSEIF (Max_no_steps > 0) THEN
+      Max_no_steps=ICNTRL(3)
+   ELSE
+      PRINT * ,'User-selected ICNTRL(3)=',ICNTRL(3)
+      CALL SDIRK_ErrorMsg(-1,Tinitial,ZERO,IDID)
+   END IF
+
+
+!~~~> The maximum number of Newton iterations admitted
+   IF(ICNTRL(4) == 0)THEN
+      NewtonMaxit=8
+   ELSE
+      NewtonMaxit=ICNTRL(4)
+      IF(NewtonMaxit <= 0)THEN
+          PRINT * ,'User-selected ICNTRL(4)=',ICNTRL(4)
+          CALL SDIRK_ErrorMsg(-2,Tinitial,ZERO,IDID)
+      END IF
+   END IF
+
+!~~~>  Unit roundoff (1+Roundoff>1)
+      Roundoff = WLAMCH('E')
+
+!~~~>  Lower bound on the step size: (positive value)
+   IF (RCNTRL(1) == ZERO) THEN
+      Hmin = ZERO
+   ELSEIF (RCNTRL(1) > ZERO) THEN
+      Hmin = RCNTRL(1)
+   ELSE
+      PRINT * , 'User-selected RCNTRL(1)=', RCNTRL(1)
+      CALL SDIRK_ErrorMsg(-3,Tinitial,ZERO,IDID)
+   END IF
+   
+!~~~>  Upper bound on the step size: (positive value)
+   IF (RCNTRL(2) == ZERO) THEN
+      Hmax = ABS(Tfinal-Tinitial)
+   ELSEIF (RCNTRL(2) > ZERO) THEN
+      Hmax = MIN(ABS(RCNTRL(2)),ABS(Tfinal-Tinitial))
+   ELSE
+      PRINT * , 'User-selected RCNTRL(2)=', RCNTRL(2)
+      CALL SDIRK_ErrorMsg(-3,Tinitial,ZERO,IDID)
+   END IF
+   
+!~~~>  Starting step size: (positive value)
+   IF (RCNTRL(3) == ZERO) THEN
+      Hstart = MAX(Hmin,Roundoff)
+   ELSEIF (RCNTRL(3) > ZERO) THEN
+      Hstart = MIN(ABS(RCNTRL(3)),ABS(Tfinal-Tinitial))
+   ELSE
+      PRINT * , 'User-selected Hstart: RCNTRL(3)=', RCNTRL(3)
+      CALL SDIRK_ErrorMsg(-3,Tinitial,ZERO,IDID)
+   END IF
+   
+!~~~>  Step size can be changed s.t.  FacMin < Hnew/Hexit < FacMax
+   IF (RCNTRL(4) == ZERO) THEN
+      FacMin = 0.2_dp
+   ELSEIF (RCNTRL(4) > ZERO) THEN
+      FacMin = RCNTRL(4)
+   ELSE
+      PRINT * , 'User-selected FacMin: RCNTRL(4)=', RCNTRL(4)
+      CALL SDIRK_ErrorMsg(-4,Tinitial,ZERO,IDID)
+   END IF
+   IF (RCNTRL(5) == ZERO) THEN
+      FacMax = 10.0_dp
+   ELSEIF (RCNTRL(5) > ZERO) THEN
+      FacMax = RCNTRL(5)
+   ELSE
+      PRINT * , 'User-selected FacMax: RCNTRL(5)=', RCNTRL(5)
+      CALL SDIRK_ErrorMsg(-4,Tinitial,ZERO,IDID)
+   END IF
+!~~~>   FacRej: Factor to decrease step after 2 succesive rejections
+   IF (RCNTRL(6) == ZERO) THEN
+      FacRej = 0.1_dp
+   ELSEIF (RCNTRL(6) > ZERO) THEN
+      FacRej = RCNTRL(6)
+   ELSE
+      PRINT * , 'User-selected FacRej: RCNTRL(6)=', RCNTRL(6)
+      CALL SDIRK_ErrorMsg(-4,Tinitial,ZERO,IDID)
+   END IF
+!~~~>   FacSafe: Safety Factor in the computation of new step size
+   IF (RCNTRL(7) == ZERO) THEN
+      FacSafe = 0.9_dp
+   ELSEIF (RCNTRL(7) > ZERO) THEN
+      FacSafe = RCNTRL(7)
+   ELSE
+      PRINT * , 'User-selected FacSafe: RCNTRL(7)=', RCNTRL(7)
+      CALL SDIRK_ErrorMsg(-4,Tinitial,ZERO,IDID)
+   END IF
+
+!~~~> DECIDES WHETHER THE JACOBIAN SHOULD BE RECOMPUTED;
+      IF(RCNTRL(8) == 0.D0)THEN
+         ThetaMin = 1.0d-3
+      ELSE
+         ThetaMin = RCNTRL(8)
+      END IF
+
+!~~~> STOPPING CRITERION FOR NEWTON'S METHOD
+      IF(RCNTRL(9) == 0.0d0)THEN
+         NewtonTol = 3.0d-2
+      ELSE
+         NewtonTol =RCNTRL(9)
+      END IF
+
+!~~~> Qmin AND Qmax: IF Qmin < Hnew/Hold < Qmax, STEP SIZE = CONST.
+      IF(RCNTRL(10) == 0.D0)THEN
+         Qmin=1.D0
+      ELSE
+         Qmin=RCNTRL(10)
+      END IF
+      IF(RCNTRL(11) == 0.D0)THEN
+         Qmax=1.2D0
+      ELSE
+         Qmax=RCNTRL(11)
+      END IF
+
+!~~~>  Check if tolerances are reasonable
+      IF (ITOL == 0) THEN
+         IF (AbsTol(1) <= 0.D0.OR.RelTol(1) <= 10.D0*Roundoff) THEN
+            PRINT * , ' Scalar AbsTol = ',AbsTol(1)
+            PRINT * , ' Scalar RelTol = ',RelTol(1)
+            CALL SDIRK_ErrorMsg(-5,Tinitial,ZERO,IDID)
+         END IF
+      ELSE
+         DO i=1,N
+            IF (AbsTol(i) <= 0.D0.OR.RelTol(i) <= 10.D0*Roundoff) THEN
+              PRINT * , ' AbsTol(',i,') = ',AbsTol(i)
+              PRINT * , ' RelTol(',i,') = ',RelTol(i)
+              CALL SDIRK_ErrorMsg(-5,Tinitial,ZERO,IDID)
+            END IF
+         END DO
+      END IF
+    
+    IF (IDID < 0) RETURN
+
+
+!~~~> CALL TO CORE INTEGRATOR 
+    CALL SDIRK_Integrator( N,Tinitial,Tfinal,Y,Hmin,Hmax,Hstart, &
+          RelTol,AbsTol,ITOL, Max_no_steps, NewtonMaxit,         &
+          Roundoff, FacMin, FacMax, FacRej, FacSafe, ThetaMin,   &
+          NewtonTol, Qmin, Qmax, Hexit, Texit, IDID )
+
+!~~~>  Collect run statistics
+   ISTATUS(ifun) = Nfun
+   ISTATUS(ijac) = Njac
+   ISTATUS(istp) = Nstp
+   ISTATUS(iacc) = Nacc
+   ISTATUS(irej) = Nrej
+   ISTATUS(idec) = Ndec
+   ISTATUS(isol) = Nsol
+   ISTATUS(isng) = Nsng
+!~~~> Last T and H
+   RSTATUS(:)      = 0.0_dp
+   RSTATUS(itexit) = Texit
+   RSTATUS(ihexit) = Hexit
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   CONTAINS  !  PROCEDURES INTERNAL TO SDIRK
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE SDIRK_Integrator( N,Tinitial,Tfinal,Y,Hmin,Hmax,Hstart, &
+                RelTol,AbsTol,ITOL, Max_no_steps, NewtonMaxit,        &
+                Roundoff, FacMin, FacMax, FacRej, FacSafe, ThetaMin,  &
+                NewtonTol, Qmin, Qmax, Hexit, Texit, IDID )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!     CORE INTEGRATOR FOR SDIRK4
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      USE KPP_ROOT_Parameters
+      IMPLICIT NONE
+
+!~~~> Arguments:      
+      INTEGER :: N
+      KPP_REAL, INTENT(INOUT) :: Y(NVAR)
+      KPP_REAL, INTENT(IN) :: Tinitial, Tfinal, Hmin, Hmax, Hstart, &
+                        RelTol(NVAR), AbsTol(NVAR), Roundoff,            &
+                        FacMin, FacMax, FacRej, FacSafe, ThetaMin,       &
+                        NewtonTol, Qmin, Qmax
+      KPP_REAL, INTENT(OUT) :: Hexit, Texit
+      INTEGER, INTENT(IN)  :: ITOL, Max_no_steps, NewtonMaxit
+      INTEGER, INTENT(OUT) :: IDID
+      
+!~~~> Local variables:      
+      KPP_REAL :: Z(NVAR,5), FV(NVAR,5), CONT(NVAR,4),      &
+                       NewtonFactor(5), SCAL(NVAR), RHS(NVAR),   &
+                       G(NVAR), Yhat(NVAR), TMP(NVAR),           &
+                       T, H, Hold, Theta, Hratio, Hmax1, W,      &
+                       HGammaInv, DYTH, QNEWT, ERR, Fac, Hnew,   &
+                       Tdirection, NewtonErr, NewtonErrOld
+      INTEGER :: i, j, IER, istage, NewtonIter, IP(NVAR)
+      LOGICAL :: Reject, FIRST, NewtonReject, FreshJac, SkipJacUpdate, SkipLU
+      
+#ifdef FULL_ALGEBRA      
+      KPP_REAL FJAC(NVAR,NVAR),  E(NVAR,NVAR)
+#else      
+      KPP_REAL FJAC(LU_NONZERO), E(LU_NONZERO)
+#endif      
+      KPP_REAL, PARAMETER :: ZERO = 0.0d0, ONE = 1.0d0
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!  INITIALISATIONS
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      CALL SDIRK_Coefficients
+      T = Tinitial
+      Tdirection = SIGN(1.D0,Tfinal-Tinitial)
+      Hmax1=MIN(ABS(Hmax),ABS(Tfinal-Tinitial))
+      H = MAX(ABS(Hmin),ABS(Hstart))
+      IF (ABS(H) <= 10.D0*Roundoff) H=1.0D-6
+      H=MIN(ABS(H),Hmax1)
+      H=SIGN(H,Tdirection)
+      Hold=H
+      NewtonReject=.FALSE.
+      SkipLU =.FALSE.
+      FreshJac = .FALSE.
+      SkipJacUpdate = .FALSE.
+      Reject=.FALSE.
+      FIRST=.TRUE.
+      NewtonFactor(1:5)=ONE
+
+      CALL SDIRK_ErrorScale(ITOL, AbsTol, RelTol, Y, SCAL)
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Time loop begins
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Tloop: DO WHILE ( (Tfinal-T)*Tdirection - Roundoff > ZERO )
+
+
+!~~~>  Compute E = 1/(h*gamma)-Jac and its LU decomposition
+      IF ( SkipLU ) THEN ! This time around skip the Jac update and LU
+         SkipLU = .FALSE.; FreshJac = .FALSE.; SkipJacUpdate = .FALSE.
+      ELSE
+         CALL SDIRK_PrepareMatrix ( H, T, Y, FJAC, &
+                   FreshJac, SkipJacUpdate, E, IP, Reject, IER )
+         IF (IER /= 0) THEN
+             CALL SDIRK_ErrorMsg(-8,T,H,IDID); RETURN
+         END IF
+      END IF      
+
+      IF (Nstp>Max_no_steps) THEN
+             CALL SDIRK_ErrorMsg(-6,T,H,IDID); RETURN
+      END IF   
+      IF ( (T+0.1d0*H == T) .OR. (ABS(H) <= Roundoff) ) THEN
+             CALL SDIRK_ErrorMsg(-7,T,H,IDID); RETURN
+      END IF   
+
+      HGammaInv = ONE/(H*rkGamma)
+
+!~~~>    NEWTON ITERATION
+stages:DO istage=1,5
+
+      NewtonFactor(istage) = MAX(NewtonFactor(istage),Roundoff)**0.8d0
+
+!~~~>  STARTING VALUES FOR NEWTON ITERATION
+      CALL Set2zero(N,G)
+      CALL Set2zero(N,Z(1,istage))
+      IF (istage==1) THEN
+          IF (FIRST.OR.NewtonReject) THEN
+              CALL Set2zero(N,Z(1,istage))
+          ELSE
+              W=ONE+rkGamma*H/Hold
+              DO i=1,N
+                Z(i,istage)=W*(CONT(i,1)+W*(CONT(i,2)+W*(CONT(i,3)+W*CONT(i,4))))-Yhat(i)
+              END DO     
+          END IF
+      ELSE
+          DO j = 1, istage-1
+            ! Gj(:) = sum_j Beta(i,j)*Zj(:) = H * sum_j A(i,j)*Fun(Zj(:))
+            CALL WAXPY(N,rkBeta(istage,j),Z(1,j),1,G,1)
+            ! CALL WAXPY(N,H*rkA(istage,j),FV(1,j),1,G,1)
+            ! Zi(:) = sum_j Alpha(i,j)*Zj(:)
+            CALL WAXPY(N,rkAlpha(istage,j),Z(1,j),1,Z(1,istage),1)
+          END DO
+          IF (istage==5) CALL WCOPY(N,Z(1,istage),1,Yhat,1)  ! Yhat(:) <- Z5(:)
+      END IF
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!  LOOP FOR THE SIMPLIFIED NEWTON ITERATION
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+            NewtonIter=0
+            Theta=ABS(ThetaMin)
+            IF (Reject) Theta=2*ABS(ThetaMin)
+            NewtonErr = 1.0e+6 ! To force-enter Newton loop
+            
+  Newton:   DO WHILE (NewtonFactor(istage)*NewtonErr > NewtonTol)
+            
+            IF (NewtonIter >= NewtonMaxit) THEN
+                H=H*0.5d0
+                Reject=.TRUE.
+                NewtonReject=.TRUE.
+                CYCLE Tloop
+            END IF
+            NewtonIter=NewtonIter+1
+
+!~~~>     COMPUTE THE RIGHT-HAND SIDE
+            TMP(1:N) = Y(1:N) + Z(1:N,istage)
+            CALL FUN_CHEM(T+rkC(istage)*H,TMP,RHS)
+            TMP(1:N) = G(1:N) - Z(1:N,istage)
+            CALL WAXPY(N,HGammaInv,TMP,1,RHS,1) ! RHS(:) <- RHS(:) + HGammaInv*(G(:)-Z(:))
+
+!~~~>     SOLVE THE LINEAR SYSTEMS
+#ifdef FULL_ALGEBRA  
+            CALL DGETRS( 'N', N, 1, E, N, IP, RHS, N, IER )
+#else
+            CALL KppSolve(E, RHS)
+#endif
+            Nsol=Nsol+1
+            
+!~~~>     CHECK CONVERGENCE OR IF NUMBER OF ITERATIONS TOO LARGE
+            CALL SDIRK_ErrorNorm(N, RHS, SCAL, NewtonErr)
+            IF ( (NewtonIter >= 2) .AND. (NewtonIter < NewtonMaxit) ) THEN
+                Theta = NewtonErr/NewtonErrOld
+                IF (Theta < 0.99d0) THEN
+                    NewtonFactor(istage)=Theta/(ONE-Theta)
+                    DYTH = NewtonFactor(istage)*NewtonErr* &
+                           Theta**(NewtonMaxit-1-NewtonIter)
+                    QNEWT = MAX(1.0d-4,MIN(16.0d0,DYTH/NewtonTol))
+                    IF (QNEWT >= ONE) THEN
+                         H=.8D0*H*QNEWT**(-ONE/(NewtonMaxit-NewtonIter))
+                         Reject=.TRUE.
+                         NewtonReject=.TRUE.
+                         CYCLE Tloop ! go back to the beginning of DO step
+                    END IF
+                ELSE
+                    NewtonReject=.TRUE.
+                    H=H*0.5d0
+                    Reject=.TRUE.
+                    CYCLE Tloop ! go back to the beginning of DO step
+                END IF
+            END IF
+            NewtonErrOld = NewtonErr
+            CALL WAXPY(N,ONE,RHS,1,Z(1,istage),1) ! Z(:) <-- Z(:)+RHS(:)
+            
+            END DO Newton
+
+!~~> END OF SIMPLIFIED NEWTON ITERATION
+            ! Save function values
+            TMP(1:N) = Y(1:N) + Z(1:N,istage)
+            CALL FUN_CHEM(T+rkC(istage)*H,TMP,FV(1,istage))
+
+   END DO stages
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!  ERROR ESTIMATION
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      Nstp=Nstp+1
+      TMP(1:N)=HGammaInv*(Z(1:N,5)-Yhat(1:N))
+
+#ifdef FULL_ALGEBRA  
+      CALL DGETRS( 'N', N, 1, E, N, IP, TMP, N, IER )
+#else
+      CALL KppSolve(E, TMP)
+#endif
+
+      CALL SDIRK_ErrorNorm(N, TMP, SCAL, ERR)
+
+!~~~> COMPUTATION OF Hnew: WE REQUIRE FacMin <= Hnew/H <= FacMax
+      !Safe = FacSafe*DBLE(1+2*NewtonMaxit)/DBLE(NewtonIter+2*NewtonMaxit)
+      Fac  = MAX(FacMin,MIN(FacMax,(ERR)**(-0.25d0)*FacSafe))
+      Hnew = H*Fac
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!  ACCEPT/Reject STEP
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+accept:  IF ( ERR < ONE ) THEN !~~~> STEP IS ACCEPTED
+
+         FIRST=.FALSE.
+         Nacc=Nacc+1
+         Hold=H
+
+!~~~> COEFFICIENTS FOR CONTINUOUS SOLUTION
+         CALL WAXPY(N,ONE,Z(1,5),1,Y,1) ! Y(:) <-- Y(:)+Z5(:)
+         CALL WCOPY(N,Z(1,5),1,Yhat,1)  ! Yhat <-- Z5
+
+         DO i=1,4  ! CONTi <-- Sum_j rkD(i,j)*Zj
+           CALL Set2zero(N,CONT(1,i))
+           DO j = 1,5
+             CALL WAXPY(N,rkD(i,j),Z(1,j),1,CONT(1,i),1)
+           END DO
+         END DO
+         
+         CALL SDIRK_ErrorScale(ITOL, AbsTol, RelTol, Y, SCAL)
+
+         T=T+H
+         FreshJac=.FALSE.
+
+         Hnew = Tdirection*MIN(ABS(Hnew),Hmax1)
+         Hexit = Hnew
+         IF (Reject) Hnew=Tdirection*MIN(ABS(Hnew),ABS(H))
+         Reject = .FALSE.
+         NewtonReject = .FALSE.
+         IF ((T+Hnew/Qmin-Tfinal)*Tdirection > 0.D0) THEN
+            H = Tfinal-T
+         ELSE
+            Hratio=Hnew/H
+            ! If step not changed too much, keep it as is;
+            !    do not update Jacobian and reuse LU
+            IF ( (Theta <= ThetaMin) .AND. (Hratio >= Qmin) &
+                                     .AND. (Hratio <= Qmax) ) THEN
+               SkipJacUpdate = .TRUE. 
+               SkipLU        = .TRUE. 
+            ELSE   
+               H = Hnew
+            END IF   
+         END IF
+         ! If convergence is fast enough, do not update Jacobian
+         IF (Theta <= ThetaMin) SkipJacUpdate = .TRUE. 
+
+      ELSE accept !~~~> STEP IS REJECTED
+
+         Reject=.TRUE.
+         IF (FIRST) THEN
+             H=H*FacRej
+         ELSE
+             H=Hnew
+         END IF
+         IF (Nacc >= 1) Nrej=Nrej+1
+         
+      END IF accept
+      
+      END DO Tloop
+
+      ! Successful return
+      Texit = T
+      IDID  = 1
+  
+      END SUBROUTINE SDIRK_Integrator
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE SDIRK_ErrorScale(ITOL, AbsTol, RelTol, Y, SCAL)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      INTEGER :: i, ITOL
+      KPP_REAL :: AbsTol(NVAR), RelTol(NVAR), &
+                       Y(NVAR), SCAL(NVAR)
+      IF (ITOL == 0) THEN
+        DO i=1,NVAR
+          SCAL(i) = 1.0d0 / ( AbsTol(1)+RelTol(1)*ABS(Y(i)) )
+        END DO
+      ELSE
+        DO i=1,NVAR
+          SCAL(i) = 1.0d0 / ( AbsTol(i)+RelTol(i)*ABS(Y(i)) )
+        END DO
+      END IF
+      END SUBROUTINE SDIRK_ErrorScale
+      
+      
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE SDIRK_ErrorNorm(N, Y, SCAL, ERR)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!      
+      INTEGER :: i, N
+      KPP_REAL :: Y(N), SCAL(N), ERR      
+      ERR=0.0d0
+      DO i=1,N
+           ERR = ERR+(Y(i)*SCAL(i))**2
+      END DO
+      ERR = MAX( SQRT(ERR/DBLE(N)), 1.0d-10 )
+!
+      END SUBROUTINE SDIRK_ErrorNorm
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE SDIRK_ErrorMsg(Code,T,H,IERR)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!    Handles all error messages
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+   KPP_REAL, INTENT(IN) :: T, H
+   INTEGER, INTENT(IN)  :: Code
+   INTEGER, INTENT(OUT) :: IERR
+
+   IERR = Code
+   PRINT * , &
+     'Forced exit from SDIRK due to the following error:'
+   IF ((Code>=-8).AND.(Code<=-1)) THEN
+     PRINT *, IERR_NAMES(Code)
+   ELSE
+     PRINT *, 'Unknown Error code: ', Code
+   ENDIF
+
+   PRINT *, "T=", T, "and H=", H
+
+ END SUBROUTINE SDIRK_ErrorMsg
+      
+      
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE SDIRK_PrepareMatrix ( H, T, Y, FJAC, &
+                   FreshJac, SkipJacUpdate, E, IP, Reject, IER )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!     
+      IMPLICIT NONE
+      
+      KPP_REAL, INTENT(INOUT) :: H
+      KPP_REAL, INTENT(IN)    :: T, Y(NVAR)
+      LOGICAL, INTENT(INOUT)       :: FreshJac, SkipJacUpdate
+      INTEGER, INTENT(OUT)         :: IER, IP(NVAR)
+      LOGICAL, INTENT(INOUT)       :: Reject
+#ifdef FULL_ALGEBRA
+      KPP_REAL, INTENT(INOUT) :: FJAC(NVAR,NVAR)
+      KPP_REAL, INTENT(OUT)   :: E(NVAR,NVAR)
+#else
+      KPP_REAL, INTENT(INOUT) :: FJAC(LU_NONZERO)
+      KPP_REAL, INTENT(OUT)   :: E(LU_NONZERO)
+#endif
+      KPP_REAL                :: HGammaInv
+      INTEGER                      :: i, j, ConsecutiveSng
+      KPP_REAL, PARAMETER     :: ONE = 1.0d0
+
+ 20   CONTINUE
+
+!~~~>  COMPUTE THE JACOBIAN
+      IF (SkipJacUpdate) THEN
+          SkipJacUpdate = .FALSE.
+      ELSE IF ( .NOT.FreshJac  ) THEN
+          CALL JAC_CHEM( T, Y, FJAC )
+          FreshJac = .TRUE.
+      END IF  
+
+!~~~>  Compute the matrix E = 1/(H*GAMMA)*Jac, and its decomposition
+      ConsecutiveSng = 0
+      IER = 1
+      
+Hloop: DO WHILE (IER /= 0)
+      
+      HGammaInv = ONE/(H*rkGamma)
+      
+#ifdef FULL_ALGEBRA
+      DO j=1,NVAR
+         DO i=1,NVAR
+            E(i,j)=-FJAC(i,j)
+         END DO
+         E(j,j)=E(j,j)+HGammaInv
+      END DO
+      CALL DGETRF( NVAR, NVAR, E, NVAR, IP, IER )
+#else
+      DO i = 1,LU_NONZERO
+            E(i) = -FJAC(i)
+      END DO
+      DO i = 1,NVAR
+          j = LU_DIAG(i); E(j) = E(j) + HGammaInv
+      END DO
+      CALL KppDecomp ( E, IER)
+      IP(1) = 1
+#endif
+      Ndec=Ndec+1
+
+      IF (IER /= 0) THEN
+          WRITE (6,*) ' MATRIX IS SINGULAR, IER=',IER,' T=',T,' H=',H
+          Nsng = Nsng+1; ConsecutiveSng = ConsecutiveSng + 1
+          IF (ConsecutiveSng >= 6) RETURN ! Failure
+          H=H*0.5d0
+          Reject=.TRUE.
+          !~~~> Update Jacobian if not fresh
+          IF ( .NOT.FreshJac ) GOTO 20
+      END IF
+      
+      END DO Hloop
+
+      END SUBROUTINE SDIRK_PrepareMatrix
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE SDIRK_Coefficients
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+          rkGamma=4.0d0/15.0d0
+          
+          rkA(1,1)= 4.d0/15.d0
+          rkA(2,1)= 1.d0/2.d0
+          rkA(2,2)= 4.d0/15.d0
+          rkA(3,1)= 51069.d0/144200.d0
+          rkA(3,2)=-7809.d0/144200.d0
+          rkA(3,3)= 4.d0/15.d0 
+          rkA(4,1)= 12047244770625658.d0/141474406359725325.d0
+          rkA(4,2)=-3057890203562191.d0/47158135453241775.d0
+          rkA(4,3)= 2239631894905804.d0/28294881271945065.d0
+          rkA(4,4)= 4.d0/15.d0
+          rkA(5,1)= 181513.d0/86430.d0
+          rkA(5,2)=-89074.d0/116015.d0
+          rkA(5,3)= 83636.d0/34851.d0
+          rkA(5,4)=-69863904375173.d0/23297141763930.d0
+          rkA(5,5)= 4.d0/15.d0
+     
+          rkB(1)= 181513.d0/86430.d0
+          rkB(2)=-89074.d0/116015.d0
+          rkB(3)= 83636.d0/34851.d0
+          rkB(4)=-69863904375173.d0/23297141763930.d0
+          rkB(5)= 4/15.d0
+     
+          rkC(1)=4.d0/15.d0
+          rkC(2)=23.d0/30.d0
+          rkC(3)=17.d0/30.d0
+          rkC(4)=707.d0/1931.d0
+          rkC(5)=1.d0
+          
+          rkBeta(2,1)=15.0d0/8.0d0
+          rkBeta(3,1)=1577061.0d0/922880.0d0
+          rkBeta(3,2)=-23427.0d0/115360.0d0
+          rkBeta(4,1)=647163682356923881.0d0/2414496535205978880.0d0
+          rkBeta(4,2)=-593512117011179.0d0/3245291041943520.0d0
+          rkBeta(4,3)=559907973726451.0d0/1886325418129671.0d0
+          rkBeta(5,1)=724545451.0d0/796538880.0d0
+          rkBeta(5,2)=-830832077.0d0/267298560.0d0
+          rkBeta(5,3)=30957577.0d0/2509272.0d0
+          rkBeta(5,4)=-69863904375173.0d0/6212571137048.0d0
+          
+          rkAlpha(2,1)= 23.d0/8.d0
+          rkAlpha(3,1)= 0.9838473040915402d0
+          rkAlpha(3,2)= 0.3969226768377252d0
+          rkAlpha(4,1)= 0.6563374010466914d0
+          rkAlpha(4,2)= 0.0d0
+          rkAlpha(4,3)= 0.3372498196189311d0
+          rkAlpha(5,1)=7752107607.0d0/11393456128.0d0
+          rkAlpha(5,2)=-17881415427.0d0/11470078208.0d0
+          rkAlpha(5,3)=2433277665.0d0/179459416.0d0
+          rkAlpha(5,4)=-96203066666797.0d0/6212571137048.0d0
+          
+          rkD(1,1)= 24.74416644927758d0
+          rkD(1,2)= -4.325375951824688d0
+          rkD(1,3)= 41.39683763286316d0
+          rkD(1,4)= -61.04144619901784d0
+          rkD(1,5)= -3.391332232917013d0
+          rkD(2,1)= -51.98245719616925d0
+          rkD(2,2)= 10.52501981094525d0
+          rkD(2,3)= -154.2067922191855d0
+          rkD(2,4)= 214.3082125319825d0
+          rkD(2,5)= 14.71166018088679d0
+          rkD(3,1)= 33.14347947522142d0
+          rkD(3,2)= -19.72986789558523d0
+          rkD(3,3)= 230.4878502285804d0
+          rkD(3,4)= -287.6629744338197d0
+          rkD(3,5)= -18.99932366302254d0
+          rkD(4,1)= -5.905188728329743d0
+          rkD(4,2)= 13.53022403646467d0
+          rkD(4,3)= -117.6778956422581d0
+          rkD(4,4)= 134.3962081008550d0
+          rkD(4,5)= 8.678995715052762d0
+          
+      END SUBROUTINE SDIRK_Coefficients
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   END SUBROUTINE SDIRK ! AND ALL ITS INTERNAL PROCEDURES
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE FUN_CHEM( T, Y, P )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      USE KPP_ROOT_Parameters, ONLY: NVAR, LU_NONZERO
+      USE KPP_ROOT_Global, ONLY: TIME, FIX, RCONST
+      USE KPP_ROOT_Function
+      USE KPP_ROOT_Rates, ONLY: Update_SUN, Update_RCONST
+
+      INTEGER N
+      KPP_REAL   T, Told
+      KPP_REAL   Y(NVAR), P(NVAR)
+      
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      
+      CALL Fun( Y,  FIX, RCONST, P )
+      
+      TIME = Told
+      Nfun=Nfun+1
+      
+      END SUBROUTINE FUN_CHEM
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE JAC_CHEM( T, Y, JV )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      USE KPP_ROOT_Parameters, ONLY: NVAR, LU_NONZERO
+      USE KPP_ROOT_Global, ONLY: TIME, FIX, RCONST
+      USE KPP_ROOT_Jacobian
+      USE KPP_ROOT_Rates, ONLY: Update_SUN, Update_RCONST
+  
+      INTEGER N
+      KPP_REAL   T, Told
+      KPP_REAL   Y(NVAR)
+#ifdef FULL_ALGEBRA
+      KPP_REAL :: JS(LU_NONZERO), JV(NVAR,NVAR)
+      INTEGER :: i, j
+#else
+      KPP_REAL :: JV(LU_NONZERO)
+#endif
+ 
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+
+#ifdef FULL_ALGEBRA
+      CALL Jac_SP(Y, FIX, RCONST, JS)
+      DO j=1,NVAR
+         DO j=1,NVAR
+          JV(i,j) = 0.0D0
+         END DO
+      END DO
+      DO i=1,LU_NONZERO
+         JV(LU_IROW(i),LU_ICOL(i)) = JS(i)
+      END DO
+#else
+      CALL Jac_SP(Y, FIX, RCONST, JV)
+#endif
+      TIME = Told
+      Njac = Njac+1
+
+      END SUBROUTINE JAC_CHEM
+
+END MODULE KPP_ROOT_Integrator
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/kpp_seulex.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/kpp_seulex.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/kpp_seulex.def	(revision 2696)
@@ -0,0 +1,23 @@
+ 
+#FUNCTION AGGREGATE
+#JACOBIAN SPARSE_LU_ROW
+
+#DOUBLE ON 
+#INTFILE kpp_seulex
+
+#INLINE F77_GLOBAL
+      INTEGER Autonomous
+      COMMON /INTGDATA/ Autonomous
+      REAL*8 STEPSTART
+      COMMON /GDATA/ STEPSTART
+#ENDINLINE
+
+#INLINE F77_INIT
+        STEPMIN=0.0001
+        STEPMAX=3600.
+        Autonomous = 0
+        STEPSTART=STEPMIN
+#ENDINLINE
+
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/kpp_seulex.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/kpp_seulex.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/kpp_seulex.f	(revision 2696)
@@ -0,0 +1,1174 @@
+      SUBROUTINE INTEGRATE( TIN, TOUT )
+
+      IMPLICIT KPP_REAL (A-H,O-Z)
+      INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Global.h'
+
+C TIN - Start Time
+      KPP_REAL TIN
+C TOUT - End Time
+      KPP_REAL TOUT
+      INTEGER i
+
+      PARAMETER (KM=12,KM2=2+KM*(KM+3)/2,NRDENS=NVAR)
+      PARAMETER (LWORK=2*NVAR*NVAR+(KM+8)*NVAR+4*KM+20+KM2*NRDENS)
+      PARAMETER (LIWORK=2*NVAR+KM+20+NRDENS)
+
+      KPP_REAL WORK(LWORK)
+      INTEGER IWORK(LIWORK)
+      EXTERNAL FUNC_CHEM,JAC_CHEM
+
+      ITOL=1     ! --- VECTOR TOLERANCES
+      IJAC=1     ! --- COMPUTE THE JACOBIAN ANALYTICALLY
+      MLJAC=NVAR ! --- JACOBIAN IS A FULL MATRIX
+      MUJAC=NVAR ! --- JACOBIAN IS A FULL MATRIX
+      IMAS=0     ! --- DIFFERENTIAL EQUATION IS IN EXPLICIT FORM
+      IOUT=0     ! --- OUTPUT ROUTINE IS NOT USED DURING INTEGRATION
+      IDFX=0     ! --- INTERNAL TIME DERIVATIVE
+
+      DO i=1,20
+        IWORK(i) = 0
+        WORK(i) = 0.D0
+      ENDDO
+
+      CALL ATMSEULEX(NVAR,FUNC_CHEM,Autonomous,TIN,VAR,TOUT,
+     &                  STEPMIN,RTOL,ATOL,ITOL,
+     &                  JAC_CHEM,IJAC,MLJAC,MUJAC,
+     &                  FUNC_CHEM,IMAS,MLJAC,MUJAC,
+     &                  WORK,LWORK,IWORK,LIWORK,IDID)
+
+      IF (IDID.LT.0) THEN
+        print *,'ATMSEULEX: Unsucessfull exit at T=',
+     &          TIN,' (IDID=',IDID,')'
+      ENDIF
+
+      RETURN
+      END
+
+
+      SUBROUTINE ATMSEULEX(N,FCN,IFCN,X,Y,XEND,H,
+     &                  RelTol,AbsTol,ITOL,
+     &                  JAC ,IJAC,MLJAC,MUJAC,
+     &                  MAS,IMAS,MLMAS,MUMAS,
+     &                  WORK,LWORK,IWORK,LIWORK,IDID)
+C ----------------------------------------------------------
+C     NUMERICAL SOLUTION OF A STIFF (OR DIFFERENTIAL ALGEBRAIC)
+C     SYSTEM OF FIRST 0RDER ORDINARY DIFFERENTIAL EQUATIONS  MY'=F(X,Y).
+C     THIS IS AN EXTRAPOLATION-ALGORITHM, BASED ON THE
+C     LINEARLY IMPLICIT EULER METHOD (WITH STEP SIZE CONTROL
+C     AND ORDER SELECTION).
+C
+C     AUTHORS: E. HAIRER AND G. WANNER
+C              UNIVERSITE DE GENEVE, DEPT. DE MATHEMATIQUES
+C              CH-1211 GENEVE 24, SWITZERLAND
+C              E-MAIL:  HAIRER@DIVSUN.UNIGE.CH,  WANNER@DIVSUN.UNIGE.CH
+C              INCLUSION OF DENSE OUTPUT BY E. HAIRER AND A. OSTERMANN
+C
+C     THIS CODE IS PART OF THE BOOK:
+C         E. HAIRER AND G. WANNER, SOLVING ORDINARY DIFFERENTIAL
+C         EQUATIONS II. STIFF AND DIFFERENTIAL-ALGEBRAIC PROBLEMS.
+C         SPRINGER SERIES IN COMPUTATIONAL MATHEMATICS 14,
+C         SPRINGER-VERLAG (1991)
+C
+C     VERSION OF SEPTEMBER 30, 1995
+C
+C     INPUT PARAMETERS
+C     ----------------
+C     N           DIMENSION OF THE SYSTEM
+C
+C     FCN         NAME (EXTERNAL) OF SUBROUTINE COMPUTING THE
+C                 VALUE OF F(X,Y):
+C                    SUBROUTINE FCN(N,X,Y,F)
+C                    KPP_REAL X,Y(N),F(N)
+C                    F(1)=...   ETC.
+C                 RPAR, IPAR (SEE BELOW)
+C
+C     IFCN        GIVES INFORMATION ON FCN:
+C                    IFCN=0: F(X,Y) INDEPENDENT OF X (AUTONOMOUS)
+C                    IFCN=1: F(X,Y) MAY DEPEND ON X (NON-AUTONOMOUS)
+C
+C     X           INITIAL X-VALUE
+C
+C     Y(N)        INITIAL VALUES FOR Y
+C
+C     XEND        FINAL X-VALUE (XEND-X MAY BE POSITIVE OR NEGATIVE)
+C
+C     H           INITIAL STEP SIZE GUESS;
+C                 FOR STIFF EQUATIONS WITH INITIAL TRANSIENT,
+C                 H=1.D0/(NORM OF F'), USUALLY 1.D-2 OR 1.D-3, IS GOOD.
+C                 THIS CHOICE IS NOT VERY IMPORTANT, THE CODE QUICKLY
+C                 ADAPTS ITS STEP SIZE (IF H=0.D0, THE CODE PUTS H=1.D-6).
+C
+C     RelTol,AbsTol   RELATIVE AND ABSOLUTE ERROR TOLERANCES. THEY
+C                 CAN BE BOTH SCALARS OR ELSE BOTH VECTORS OF LENGTH N.
+C
+C     ITOL        SWITCH FOR RelTol AND AbsTol:
+C                   ITOL=0: BOTH RelTol AND AbsTol ARE SCALARS.
+C                     THE CODE KEEPS, ROUGHLY, THE LOCAL ERROR OF
+C                     Y(I) BELOW RelTol*ABS(Y(I))+AbsTol
+C                   ITOL=1: BOTH RelTol AND AbsTol ARE VECTORS.
+C                     THE CODE KEEPS THE LOCAL ERROR OF Y(I) BELOW
+C                     RelTol(I)*ABS(Y(I))+AbsTol(I).
+C
+C     JAC         NAME (EXTERNAL) OF THE SUBROUTINE WHICH COMPUTES
+C                 THE PARTIAL DERIVATIVES OF F(X,Y) WITH RESPECT TO Y
+C                 (THIS ROUTINE IS ONLY CALLED IF IJAC=1; SUPPLY
+C                 A DUMMY SUBROUTINE IN THE CASE IJAC=0).
+C                 FOR IJAC=1, THIS SUBROUTINE MUST HAVE THE FORM
+C                    SUBROUTINE JAC(N,X,Y,DFY,LDFY)
+C                    KPP_REAL X,Y(N),DFY(LDFY,N)
+C                    DFY(1,1)= ...
+C                 LDFY, THE COLOMN-LENGTH OF THE ARRAY, IS
+C                 FURNISHED BY THE CALLING PROGRAM.
+C                 IF (MLJAC.EQ.N) THE JACOBIAN IS SUPPOSED TO
+C                    BE FULL AND THE PARTIAL DERIVATIVES ARE
+C                    STORED IN DFY AS
+C                       DFY(I,J) = PARTIAL F(I) / PARTIAL Y(J)
+C                 ELSE, THE JACOBIAN IS TAKEN AS BANDED AND
+C                    THE PARTIAL DERIVATIVES ARE STORED
+C                    DIAGONAL-WISE AS
+C                       DFY(I-J+MUJAC+1,J) = PARTIAL F(I) / PARTIAL Y(J).
+C
+C     IJAC        SWITCH FOR THE COMPUTATION OF THE JACOBIAN:
+C                    IJAC=0: JACOBIAN IS COMPUTED INTERNALLY BY FINITE
+C                       DIFFERENCES, SUBROUTINE "JAC" IS NEVER CALLED.
+C                    IJAC=1: JACOBIAN IS SUPPLIED BY SUBROUTINE JAC.
+C
+C     MLJAC       SWITCH FOR THE BANDED STRUCTURE OF THE JACOBIAN:
+C                    MLJAC=N: JACOBIAN IS A FULL MATRIX. THE LINEAR
+C                       ALGEBRA IS DONE BY FULL-MATRIX GAUSS-ELIMINATION.
+C                    0<=MLJAC<N: MLJAC IS THE LOWER BANDWITH OF JACOBIAN
+C                       MATRIX (>= NUMBER OF NON-ZERO DIAGONALS BELOW
+C                       THE MAIN DIAGONAL).
+C
+C     MUJAC       UPPER BANDWITH OF JACOBIAN  MATRIX (>= NUMBER OF NON-
+C                 ZERO DIAGONALS ABOVE THE MAIN DIAGONAL).
+C                 NEED NOT BE DEFINED IF MLJAC=N.
+C
+C     ----   MAS,IMAS,MLMAS, AND MUMAS HAVE ANALOG MEANINGS      -----
+C     ----   FOR THE "MASS MATRIX" (THE MATRIX "M" OF SECTION IV.8): -
+C
+C     MAS         NAME (EXTERNAL) OF SUBROUTINE COMPUTING THE MASS-
+C                 MATRIX M.
+C                 IF IMAS=0, THIS MATRIX IS ASSUMED TO BE THE IDENTITY
+C                 MATRIX AND NEEDS NOT TO BE DEFINED;
+C                 SUPPLY A DUMMY SUBROUTINE IN THIS CASE.
+C                 IF IMAS=1, THE SUBROUTINE MAS IS OF THE FORM
+C                    SUBROUTINE MAS(N,AM,LMAS)
+C                    KPP_REAL AM(LMAS,N)
+C                    AM(1,1)= ....
+C                    IF (MLMAS.EQ.N) THE MASS-MATRIX IS STORED
+C                    AS FULL MATRIX LIKE
+C                         AM(I,J) = M(I,J)
+C                    ELSE, THE MATRIX IS TAKEN AS BANDED AND STORED
+C                    DIAGONAL-WISE AS
+C                         AM(I-J+MUMAS+1,J) = M(I,J).
+C
+C     IMAS       GIVES INFORMATION ON THE MASS-MATRIX:
+C                    IMAS=0: M IS SUPPOSED TO BE THE IDENTITY
+C                       MATRIX, MAS IS NEVER CALLED.
+C                    IMAS=1: MASS-MATRIX  IS SUPPLIED.
+C
+C     MLMAS       SWITCH FOR THE BANDED STRUCTURE OF THE MASS-MATRIX:
+C                    MLMAS=N: THE FULL MATRIX CASE. THE LINEAR
+C                       ALGEBRA IS DONE BY FULL-MATRIX GAUSS-ELIMINATION.
+C                    0<=MLMAS<N: MLMAS IS THE LOWER BANDWITH OF THE
+C                       MATRIX (>= NUMBER OF NON-ZERO DIAGONALS BELOW
+C                       THE MAIN DIAGONAL).
+C                 MLMAS IS SUPPOSED TO BE .LE. MLJAC.
+C
+C     MUMAS       UPPER BANDWITH OF MASS-MATRIX (>= NUMBER OF NON-
+C                 ZERO DIAGONALS ABOVE THE MAIN DIAGONAL).
+C                 NEED NOT BE DEFINED IF MLMAS=N.
+C                 MUMAS IS SUPPOSED TO BE .LE. MUJAC.
+C
+C     SOLOUT      NAME (EXTERNAL) OF SUBROUTINE PROVIDING THE
+C                 NUMERICAL SOLUTION DURING INTEGRATION.
+C                 IF IOUT>=1, IT IS CALLED AFTER EVERY SUCCESSFUL STEP.
+C                 SUPPLY A DUMMY SUBROUTINE IF IOUT=0.
+C                 IT MUST HAVE THE FORM
+C                    SUBROUTINE SOLOUT (NR,XOLD,X,Y,RC,LRC,IC,LIC,N,
+C                                       RPAR,IPAR,IRTRN)
+C                    KPP_REAL X,Y(N),RC(LRC),IC(LIC)
+C                    ....
+C                 SOLOUT FURNISHES THE SOLUTION "Y" AT THE NR-TH
+C                    GRID-POINT "X" (THEREBY THE INITIAL VALUE IS
+C                    THE FIRST GRID-POINT).
+C                 "XOLD" IS THE PRECEEDING GRID-POINT.
+C                 "IRTRN" SERVES TO INTERRUPT THE INTEGRATION. IF IRTRN
+C                    IS SET <0, SEULEX RETURNS TO THE CALLING PROGRAM.
+C                 DO NOT CHANGE THE ENTRIES OF RC(LRC),IC(LIC)!
+C
+C          -----  CONTINUOUS OUTPUT (IF IOUT=2): -----
+C                 DURING CALLS TO "SOLOUT", A CONTINUOUS SOLUTION
+C                 FOR THE INTERVAL [XOLD,X] IS AVAILABLE THROUGH
+C                 THE KPP_REAL FUNCTION
+C                        >>>   CONTEX(I,S,RC,LRC,IC,LIC)   <<<
+C                 WHICH PROVIDES AN APPROXIMATION TO THE I-TH
+C                 COMPONENT OF THE SOLUTION AT THE POINT S. THE VALUE
+C                 S SHOULD LIE IN THE INTERVAL [XOLD,X].
+C
+C     IOUT        GIVES INFORMATION ON THE SUBROUTINE SOLOUT:
+C                    IOUT=0: SUBROUTINE IS NEVER CALLED
+C                    IOUT=1: SUBROUTINE IS USED FOR OUTPUT
+C                    IOUT=2: DENSE OUTPUT IS PERFORMED IN SOLOUT
+C
+C     WORK        ARRAY OF WORKING SPACE OF LENGTH "LWORK".
+C                 SERVES AS WORKING SPACE FOR ALL VECTORS AND MATRICES.
+C                 "LWORK" MUST BE AT LEAST
+C                        N*(LJAC+LMAS+LE1+KM+8)+4*KM+20+KM2*NRDENS
+C                 WHERE
+C                    KM2=2+KM*(KM+3)/2  AND  NRDENS=IWORK(6) (SEE BELOW)
+C                 AND
+C                    LJAC=N              IF MLJAC=N (FULL JACOBIAN)
+C                    LJAC=MLJAC+MUJAC+1  IF MLJAC<N (BANDED JAC.)
+C                 AND
+C                    LMAS=0              IF IMAS=0
+C                    LMAS=N              IF IMAS=1 AND MLMAS=N (FULL)
+C                    LMAS=MLMAS+MUMAS+1  IF MLMAS<N (BANDED MASS-M.)
+C                 AND
+C                    LE1=N               IF MLJAC=N (FULL JACOBIAN)
+C                    LE1=2*MLJAC+MUJAC+1 IF MLJAC<N (BANDED JAC.).
+C                 AND
+C                    KM=12               IF IWORK(3)=0
+C                    KM=IWORK(3)         IF IWORK(3).GT.0
+C
+C                 IN THE USUAL CASE WHERE THE JACOBIAN IS FULL AND THE
+C                 MASS-MATRIX IS THE INDENTITY (IMAS=0), THE MINIMUM
+C                 STORAGE REQUIREMENT IS
+C                         LWORK = 2*N*N+(KM+8)*N+4*KM+13+KM2*NRDENS.
+C                 IF IWORK(9)=M1>0 THEN "LWORK" MUST BE AT LEAST
+C                    N*(LJAC+KM+8)+(N-M1)*(LMAS+LE1)+4*KM+20+KM2*NRDENS
+C                 WHERE IN THE DEFINITIONS OF LJAC, LMAS AND LE1 THE
+C                 NUMBER N CAN BE REPLACED BY N-M1.
+C
+C     LWORK       DECLARED LENGTH OF ARRAY "WORK".
+C
+C     IWORK       INTEGER WORKING SPACE OF LENGTH "LIWORK".
+C                 "LIWORK" MUST BE AT LEAST  2*N+KM+20+NRDENS.
+C
+C     LIWORK      DECLARED LENGTH OF ARRAY "IWORK".
+C
+C     RPAR, IPAR  REAL AND INTEGER PARAMETERS (OR PARAMETER ARRAYS) WHICH
+C                 CAN BE USED FOR COMMUNICATION BETWEEN YOUR CALLING
+C                 PROGRAM AND THE FCN, JAC, MAS, SOLOUT SUBROUTINES.
+C
+C ----------------------------------------------------------------------
+C
+C     SOPHISTICATED SETTING OF PARAMETERS
+C     -----------------------------------
+C              SEVERAL PARAMETERS OF THE CODE ARE TUNED TO MAKE IT WORK
+C              WELL. THEY MAY BE DEFINED BY SETTING WORK(1),..,WORK(13)
+C              AS WELL AS IWORK(1),..,IWORK(4) DIFFERENT FROM ZERO.
+C              FOR ZERO INPUT, THE CODE CHOOSES DEFAULT VALUES:
+C
+C    IWORK(1)  IF IWORK(1).NE.0, THE CODE TRANSFORMS THE JACOBIAN
+C              MATRIX TO HESSENBERG FORM. THIS IS PARTICULARLY
+C              ADVANTAGEOUS FOR LARGE SYSTEMS WITH FULL JACOBIAN.
+C              IT DOES NOT WORK FOR BANDED JACOBIAN (MLJAC<N)
+C              AND NOT FOR IMPLICIT SYSTEMS (IMAS=1).
+C
+C    IWORK(2)  THIS IS THE MAXIMAL NUMBER OF ALLOWED STEPS.
+C              THE DEFAULT VALUE (FOR IWORK(2)=0) IS 100000.
+C
+C    IWORK(3)  THE MAXIMUM NUMBER OF COLUMNS IN THE EXTRAPOLATION
+C              TABLE. THE DEFAULT VALUE (FOR IWORK(3)=0) IS 12.
+C              IF IWORK(3).NE.0 THEN IWORK(3) SHOULD BE .GE.3.
+C
+C    IWORK(4)  SWITCH FOR THE STEP SIZE SEQUENCE
+C              IF IWORK(4).EQ.1 THEN 1,2,3,4,6,8,12,16,24,32,48,...
+C              IF IWORK(4).EQ.2 THEN 2,3,4,6,8,12,16,24,32,48,64,...
+C              IF IWORK(4).EQ.3 THEN 1,2,3,4,5,6,7,8,9,10,...
+C              IF IWORK(4).EQ.4 THEN 2,3,4,5,6,7,8,9,10,11,...
+C              THE DEFAULT VALUE (FOR IWORK(4)=0) IS IWORK(4)=2.
+C
+C    IWORK(5)  PARAMETER "LAMBDA" OF DENSE OUTPUT; POSSIBLE VALUES
+C              ARE 0 AND 1; DEFAULT IWORK(5)=0.
+C
+C    IWORK(6)  = NRDENS = NUMBER OF COMPONENTS, FOR WHICH DENSE OUTPUT
+C              IS REQUIRED
+C
+C    IWORK(21),...,IWORK(NRDENS+20) INDICATE THE COMPONENTS, FOR WHICH
+C              DENSE OUTPUT IS REQUIRED
+C
+C       IF THE DIFFERENTIAL SYSTEM HAS THE SPECIAL STRUCTURE THAT
+C            Y(I)' = Y(I+M2)   FOR  I=1,...,M1,
+C       WITH M1 A MULTIPLE OF M2, A SUBSTANTIAL GAIN IN COMPUTERTIME
+C       CAN BE ACHIEVED BY SETTING THE FOLLOWING TWO PARAMETERS. E.G.,
+C       FOR SECOND ORDER SYSTEMS P'=V, V'=G(P,V), WHERE P AND V ARE
+C       VECTORS OF DIMENSION N/2, ONE HAS TO PUT M1=M2=N/2.
+C       FOR M1>0 SOME OF THE INPUT PARAMETERS HAVE DIFFERENT MEANINGS:
+C       - JAC: ONLY THE ELEMENTS OF THE NON-TRIVIAL PART OF THE
+C              JACOBIAN HAVE TO BE STORED
+C              IF (MLJAC.EQ.N-M1) THE JACOBIAN IS SUPPOSED TO BE FULL
+C                 DFY(I,J) = PARTIAL F(I+M1) / PARTIAL Y(J)
+C                FOR I=1,N-M1 AND J=1,N.
+C              ELSE, THE JACOBIAN IS BANDED ( M1 = M2 * MM )
+C                 DFY(I-J+MUJAC+1,J+K*M2) = PARTIAL F(I+M1) / PARTIAL Y(J+K*M2)
+C                FOR I=1,MLJAC+MUJAC+1 AND J=1,M2 AND K=0,MM.
+C       - MLJAC: MLJAC=N-M1: IF THE NON-TRIVIAL PART OF THE JACOBIAN IS FULL
+C                0<=MLJAC<N-M1: IF THE (MM+1) SUBMATRICES (FOR K=0,MM)
+C                     PARTIAL F(I+M1) / PARTIAL Y(J+K*M2),  I,J=1,M2
+C                    ARE BANDED, MLJAC IS THE MAXIMAL LOWER BANDWIDTH
+C                    OF THESE MM+1 SUBMATRICES
+C       - MUJAC: MAXIMAL UPPER BANDWIDTH OF THESE MM+1 SUBMATRICES
+C                NEED NOT BE DEFINED IF MLJAC=N-M1
+C       - MAS: IF IMAS=0 THIS MATRIX IS ASSUMED TO BE THE IDENTITY AND
+C              NEED NOT BE DEFINED. SUPPLY A DUMMY SUBROUTINE IN THIS CASE.
+C              IT IS ASSUMED THAT ONLY THE ELEMENTS OF RIGHT LOWER BLOCK OF
+C              DIMENSION N-M1 DIFFER FROM THAT OF THE IDENTITY MATRIX.
+C              IF (MLMAS.EQ.N-M1) THIS SUBMATRIX IS SUPPOSED TO BE FULL
+C                 AM(I,J) = M(I+M1,J+M1)     FOR I=1,N-M1 AND J=1,N-M1.
+C              ELSE, THE MASS MATRIX IS BANDED
+C                 AM(I-J+MUMAS+1,J) = M(I+M1,J+M1)
+C       - MLMAS: MLMAS=N-M1: IF THE NON-TRIVIAL PART OF M IS FULL
+C                0<=MLMAS<N-M1: LOWER BANDWIDTH OF THE MASS MATRIX
+C       - MUMAS: UPPER BANDWIDTH OF THE MASS MATRIX
+C                NEED NOT BE DEFINED IF MLMAS=N-M1
+C
+C    IWORK(9)  THE VALUE OF M1.  DEFAULT M1=0.
+C
+C    IWORK(10) THE VALUE OF M2.  DEFAULT M2=M1.
+C
+C    WORK(1)   UROUND, THE ROUNDING UNIT, DEFAULT 1.D-16.
+C
+C    WORK(2)   MAXIMAL STEP SIZE, DEFAULT XEND-X.
+C
+C    WORK(3)   DECIDES WHETHER THE JACOBIAN SHOULD BE RECOMPUTED;
+C              INCREASE WORK(3), TO 0.01 SAY, WHEN JACOBIAN EVALUATIONS
+C              ARE COSTLY. FOR SMALL SYSTEMS WORK(3) SHOULD BE SMALLER.
+C              DEFAULT MIN(1.0D-4,RelTol(1))
+C
+C    WORK(4), WORK(5)   PARAMETERS FOR STEP SIZE SELECTION
+C              THE NEW STEP SIZE FOR THE J-TH DIAGONAL ENTRY IS
+C              CHOSEN SUBJECT TO THE RESTRICTION
+C                 FACMIN/WORK(5) <= HNEW(J)/HOLD <= 1/FACMIN
+C              WHERE FACMIN=WORK(4)**(1/(J-1))
+C              DEFAULT VALUES: WORK(4)=0.1D0, WORK(5)=4.D0
+C
+C    WORK(6), WORK(7)   PARAMETERS FOR THE ORDER SELECTION
+C              ORDER IS DECREASED IF    W(K-1) <= W(K)*WORK(6)
+C              ORDER IS INCREASED IF    W(K) <= W(K-1)*WORK(7)
+C              DEFAULT VALUES: WORK(6)=0.7D0, WORK(7)=0.9D0
+C
+C    WORK(8), WORK(9)   SAFETY FACTORS FOR STEP CONTROL ALGORITHM
+C             HNEW=H*WORK(9)*(WORK(8)*TOL/ERR)**(1/(J-1))
+C              DEFAULT VALUES: WORK(8)=0.8D0, WORK(9)=0.93D0
+C
+C    WORK(10), WORK(11), WORK(12), WORK(13)   ESTIMATED WORKS FOR
+C             A CALL TO  FCN, JAC, DEC, SOL, RESPECTIVELY.
+C             DEFAULT VALUES ARE: WORK(10)=1.D0, WORK(11)=5.D0,
+C             WORK(12)=1.D0, WORK(13)=1.D0.
+C
+C-----------------------------------------------------------------------
+C
+C     OUTPUT PARAMETERS
+C     -----------------
+C     X           X-VALUE WHERE THE SOLUTION IS COMPUTED
+C                 (AFTER SUCCESSFUL RETURN X=XEND)
+C
+C     Y(N)        SOLUTION AT X
+C
+C     H           PREDICTED STEP SIZE OF THE LAST ACCEPTED STEP
+C
+C     IDID        REPORTS ON SUCCESSFULNESS UPON RETURN:
+C                   IDID=1  COMPUTATION SUCCESSFUL,
+C                   IDID=-1 COMPUTATION UNSUCCESSFUL.
+C
+C   IWORK(14)  NFCN    NUMBER OF FUNCTION EVALUATIONS (THOSE FOR NUMERICAL
+C                      EVALUATION OF THE JACOBIAN ARE NOT COUNTED)
+C   IWORK(15)  NJAC    NUMBER OF JACOBIAN EVALUATIONS (EITHER ANALYTICALLY
+C                      OR NUMERICALLY)
+C   IWORK(16)  NSTEP   NUMBER OF COMPUTED STEPS
+C   IWORK(17)  NACCPT  NUMBER OF ACCEPTED STEPS
+C   IWORK(18)  NREJCT  NUMBER OF REJECTED STEPS (AFTER AT LEAST ONE STEP
+C                      HAS BEEN ACCEPTED)
+C   IWORK(19)  NDEC    NUMBER OF LU-DECOMPOSITIONS (N-DIMENSIONAL MATRIX)
+C   IWORK(20)  NSOL    NUMBER OF FORWARD-BACKWARD SUBSTITUTIONS
+C-----------------------------------------------------------------------
+C *** *** *** *** *** *** *** *** *** *** *** *** ***
+C          DECLARATIONS
+C *** *** *** *** *** *** *** *** *** *** *** *** ***
+      IMPLICIT KPP_REAL (A-H,O-Z)
+      DIMENSION Y(N),AbsTol(*),RelTol(*),WORK(LWORK),IWORK(LIWORK)
+      LOGICAL AUTNMS,IMPLCT,ARRET,JBAND
+      EXTERNAL FCN,JAC,MAS
+C *** *** *** *** *** *** ***
+C        SETTING THE PARAMETERS
+C *** *** *** *** *** *** ***
+      IOUT = 0
+      NFCN=0
+      NJAC=0
+      NSTEP=0
+      NACCPT=0
+      NREJCT=0
+      NDEC=0
+      NSOL=0
+      ARRET=.FALSE.
+C -------- NMAX , THE MAXIMAL NUMBER OF STEPS -----
+      IF(IWORK(2).EQ.0)THEN
+         NMAX=100000
+      ELSE
+         NMAX=IWORK(2)
+         IF(NMAX.LE.0)THEN
+            WRITE(6,*)' WRONG INPUT IWORK(2)=',IWORK(2)
+            ARRET=.TRUE.
+         END IF
+      END IF
+C -------- KM     MAXIMUM NUMBER OF COLUMNS IN THE EXTRAPOLATION
+      IF(IWORK(3).EQ.0)THEN
+         KM=12
+      ELSE
+         KM=IWORK(3)
+         IF(KM.LE.2)THEN
+            WRITE(6,*)' CURIOUS INPUT IWORK(3)=',IWORK(3)
+            ARRET=.TRUE.
+         END IF
+      END IF
+C -------- NSEQU     CHOICE OF STEP SIZE SEQUENCE
+      NSEQU=IWORK(4)
+      IF(IWORK(4).EQ.0) NSEQU=2
+      IF(NSEQU.LE.0.OR.NSEQU.GE.5)THEN
+         WRITE(6,*)' CURIOUS INPUT IWORK(4)=',IWORK(4)
+         ARRET=.TRUE.
+      END IF
+C -------- LAMBDA   PARAMETER FOR DENSE OUTPUT
+      LAMBDA=IWORK(5)
+      IF(LAMBDA.LT.0.OR.LAMBDA.GE.2)THEN
+         WRITE(6,*)' CURIOUS INPUT IWORK(5)=',IWORK(5)
+         ARRET=.TRUE.
+      END IF
+C -------- NRDENS   NUMBER OF DENSE OUTPUT COMPONENTS
+      NRDENS=IWORK(6)
+      IF(NRDENS.LT.0.OR.NRDENS.GT.N)THEN
+         WRITE(6,*)' CURIOUS INPUT IWORK(6)=',IWORK(6)
+         ARRET=.TRUE.
+      END IF
+C -------- PARAMETER FOR SECOND ORDER EQUATIONS
+      M1=IWORK(9)
+      M2=IWORK(10)
+      NM1=N-M1
+      IF (M1.EQ.0) M2=N
+      IF (M2.EQ.0) M2=M1
+      IF (M1.LT.0.OR.M2.LT.0.OR.M1+M2.GT.N) THEN
+       WRITE(6,*)' CURIOUS INPUT FOR IWORK(9,10)=',M1,M2
+       ARRET=.TRUE.
+      END IF
+C -------- UROUND   SMALLEST NUMBER SATISFYING 1.D0+UROUND>1.D0
+      IF(WORK(1).EQ.0.D0)THEN
+         UROUND=1.D-16
+      ELSE
+         UROUND=WORK(1)
+         IF(UROUND.LE.0.D0.OR.UROUND.GE.1.D0)THEN
+            WRITE(6,*)'  UROUND=',WORK(1)
+            ARRET=.TRUE.
+         END IF
+      END IF
+C -------- MAXIMAL STEP SIZE
+      IF(WORK(2).EQ.0.D0)THEN
+         HMAX=XEND-X
+      ELSE
+         HMAX=WORK(2)
+      END IF
+C ------ THET     DECIDES WHETHER THE JACOBIAN SHOULD BE RECOMPUTED;
+      IF(WORK(3).EQ.0.D0)THEN
+         THET=MIN(1.0D-4,RelTol(1))
+      ELSE
+         THET=WORK(3)
+      END IF
+C -------  FAC1,FAC2     PARAMETERS FOR STEP SIZE SELECTION
+      IF(WORK(4).EQ.0.D0)THEN
+         FAC1=0.1D0
+      ELSE
+         FAC1=WORK(4)
+      END IF
+      IF(WORK(5).EQ.0.D0)THEN
+         FAC2=4.0D0
+      ELSE
+         FAC2=WORK(5)
+      END IF
+C -------  FAC3, FAC4   PARAMETERS FOR THE ORDER SELECTION
+      IF(WORK(6).EQ.0.D0)THEN
+         FAC3=0.7D0
+      ELSE
+         FAC3=WORK(6)
+      END IF
+      IF(WORK(7).EQ.0.D0)THEN
+         FAC4=0.9D0
+      ELSE
+         FAC4=WORK(7)
+      END IF
+C ------- SAFE1, SAFE2 SAFETY FACTORS FOR STEP SIZE PREDICTION
+      IF(WORK(8).EQ.0.D0)THEN
+         SAFE1=0.6D0
+      ELSE
+         SAFE1=WORK(8)
+      END IF
+      IF(WORK(9).EQ.0.D0)THEN
+         SAFE2=0.93D0
+      ELSE
+         SAFE2=WORK(9)
+      END IF
+C ------- WKFCN,WKJAC,WKDEC,WKSOL  ESTIMATED WORK FOR  FCN,JAC,DEC,SOL
+      IF(WORK(10).EQ.0.D0)THEN
+         WKFCN=1.D0
+      ELSE
+         WKFCN=WORK(10)
+      END IF
+      IF(WORK(11).EQ.0.D0)THEN
+         WKJAC=5.D0
+      ELSE
+         WKJAC=WORK(11)
+      END IF
+      IF(WORK(12).EQ.0.D0)THEN
+         WKDEC=1.D0
+      ELSE
+         WKDEC=WORK(12)
+      END IF
+      IF(WORK(13).EQ.0.D0)THEN
+         WKSOL=1.D0
+      ELSE
+         WKSOL=WORK(13)
+      END IF
+      WKROW=WKFCN+WKSOL
+C --------- CHECK IF TOLERANCES ARE O.K.
+      IF (ITOL.EQ.0) THEN
+          IF (AbsTol(1).LE.0.D0.OR.RelTol(1).LE.10.D0*UROUND) THEN
+              WRITE (6,*) ' TOLERANCES ARE TOO SMALL'
+              ARRET=.TRUE.
+          END IF
+      ELSE
+        DO I=1,N
+          IF (AbsTol(I).LE.0.D0.OR.RelTol(I).LE.10.D0*UROUND) THEN
+              WRITE (6,*) ' TOLERANCES(',I,') ARE TOO SMALL'
+              ARRET=.TRUE.
+          END IF
+        END DO
+      END IF
+C *** *** *** *** *** *** *** *** *** *** *** *** ***
+C         COMPUTATION OF ARRAY ENTRIES
+C *** *** *** *** *** *** *** *** *** *** *** *** ***
+C ---- AUTONOMOUS, IMPLICIT, BANDED OR NOT ?
+      AUTNMS=IFCN.EQ.0
+      IMPLCT=IMAS.NE.0
+      JBAND=MLJAC.LT.NM1
+C -------- COMPUTATION OF THE ROW-DIMENSIONS OF THE 2-ARRAYS ---
+C -- JACOBIAN AND MATRIX E
+      IF(JBAND)THEN
+         LDJAC=MLJAC+MUJAC+1
+         LDE=MLJAC+LDJAC
+      ELSE
+         MLJAC=NM1
+         MUJAC=NM1
+         LDJAC=NM1
+         LDE=NM1
+      END IF
+C -- MASS MATRIX
+      IF (IMPLCT) THEN
+          IF (MLMAS.NE.NM1) THEN
+              LDMAS=MLMAS+MUMAS+1
+              IF (JBAND) THEN
+                 IJOB=4
+              ELSE
+                 IJOB=3
+              END IF
+          ELSE
+              LDMAS=NM1
+              IJOB=5
+          END IF
+C ------ BANDWITH OF "MAS" NOT LARGER THAN BANDWITH OF "JAC"
+          IF (MLMAS.GT.MLJAC.OR.MUMAS.GT.MUJAC) THEN
+              WRITE (6,*) 'BANDWITH OF "MAS" NOT LARGER THAN BANDWITH OF
+     & "JAC"'
+            ARRET=.TRUE.
+          END IF
+      ELSE
+          LDMAS=0
+          IF (JBAND) THEN
+             IJOB=2
+          ELSE
+             IJOB=1
+             IF (N.GT.2.AND.IWORK(1).NE.0) IJOB=7
+          END IF
+      END IF
+      LDMAS2=MAX(1,LDMAS)
+C ------ HESSENBERG OPTION ONLY FOR EXPLICIT EQU. WITH FULL JACOBIAN
+      IF ((IMPLCT.OR.JBAND).AND.IJOB.EQ.7) THEN
+         WRITE(6,*)' HESSENBERG OPTION ONLY FOR EXPLICIT EQUATIONS WITH
+     &FULL JACOBIAN'
+         ARRET=.TRUE.
+      END IF
+C ------- PREPARE THE ENTRY-POINTS FOR THE ARRAYS IN WORK -----
+      KM2=(KM*(KM+1))/2
+      IEYH=21
+      IEDY=IEYH+N
+      IEFX=IEDY+N
+      IEYHH=IEFX+N
+      IEDYH=IEYHH+N
+      IEDEL=IEDYH+N
+      IEWH =IEDEL+N
+      IESCAL=IEWH+N
+      IEHH =IESCAL+N
+      IEW  =IEHH+KM
+      IEA  =IEW+KM
+      IEJAC =IEA+KM
+      IEE  =IEJAC+N*LDJAC
+      IEMAS=IEE+NM1*LDE
+      IET=IEMAS+NM1*LDMAS
+      IFAC=IET+N*KM
+      IEDE=IFAC+KM
+      IFSAFE=IEDE+(KM+2)*NRDENS
+C ------ TOTAL STORAGE REQUIREMENT -----------
+      ISTORE=IFSAFE+KM2*NRDENS-1
+      IF(ISTORE.GT.LWORK)THEN
+         WRITE(6,*)' INSUFFICIENT STORAGE FOR WORK, MIN. LWORK=',ISTORE
+         ARRET=.TRUE.
+      END IF
+C ------- ENTRY POINTS FOR INTEGER WORKSPACE -----
+      IECO=21
+      IEIP=21+NRDENS
+      IENJ=IEIP+N
+      IEIPH=IENJ+KM
+C --------- TOTAL REQUIREMENT ---------------
+      ISTORE=IECO+KM-1
+      IF(ISTORE.GT.LIWORK)THEN
+         WRITE(6,*)' INSUFF. STORAGE FOR IWORK, MIN. LIWORK=',ISTORE
+         ARRET=.TRUE.
+      END IF
+C ------ WHEN A FAIL HAS OCCURED, WE RETURN WITH IDID=-1
+      IF (ARRET) THEN
+         IDID=-1
+         RETURN
+      END IF
+      NRD=MAX(1,NRDENS)
+C -------- CALL TO CORE INTEGRATOR ------------
+      CALL SEUCOR(N,FCN,X,Y,XEND,HMAX,H,KM,RelTol,AbsTol,ITOL,JAC,IJAC,
+     &   MLJAC,MUJAC,MLMAS,MUMAS,IOUT,IDID,IJOB,M1,M2,NM1,
+     &   NMAX,UROUND,NSEQU,AUTNMS,IMPLCT,JBAND,LDJAC,LDE,LDMAS2,
+     &   WORK(IEYH),WORK(IEDY),WORK(IEFX),WORK(IEYHH),WORK(IEDYH),
+     &   WORK(IEDEL),WORK(IEWH),WORK(IESCAL),WORK(IEHH),
+     &   WORK(IEW),WORK(IEA),WORK(IEJAC),WORK(IEE),WORK(IEMAS),
+     &   WORK(IET),IWORK(IEIP),IWORK(IENJ),IWORK(IEIPH),FAC1,FAC2,FAC3,
+     &   FAC4,THET,SAFE1,SAFE2,WKJAC,WKDEC,WKROW,KM2,NRD,WORK(IFAC),
+     &   WORK(IFSAFE),LAMBDA,NFCN,NJAC,NSTEP,NACCPT,NREJCT,NDEC,NSOL,
+     &   WORK(IEDE),IWORK(IECO))
+      IWORK(14)=NFCN
+      IWORK(15)=NJAC
+      IWORK(16)=NSTEP
+      IWORK(17)=NACCPT
+      IWORK(18)=NREJCT
+      IWORK(19)=NDEC
+      IWORK(20)=NSOL
+C ----------- RETURN -----------
+      RETURN
+      END
+C
+C
+C  ----- ... AND HERE IS THE CORE INTEGRATOR  ----------
+C
+      SUBROUTINE SEUCOR(N,FCN,X,Y,XEND,HMAX,H,KM,RelTol,AbsTol,ITOL,
+     &  JAC,IJAC,MLJAC,MUJAC,MLB,MUB,IOUT,IDID,IJOB,M1,M2,
+     &  NM1,NMAX,UROUND,NSEQU,AUTNMS,IMPLCT,BANDED,LFJAC,LE,
+     &  LDMAS,YH,DY,FX,YHH,DYH,DEL,WH,SCAL,HH,W,A,FJAC,E,FMAS,T,IP,
+     &  NJ,IPHES,FAC1,FAC2,FAC3,FAC4,THET,SAFE1,SAFE2,WKJAC,WKDEC,WKROW,
+     &  KM2,NRD,FACUL,FSAFE,LAMBDA,NFCN,NJAC,NSTEP,NACCPT,NREJCT,
+     &  NDEC,NSOL,DENS,ICOMP)
+C ----------------------------------------------------------
+C     CORE INTEGRATOR FOR SEULEX
+C     PARAMETERS SAME AS IN SEULEX WITH WORKSPACE ADDED
+C ----------------------------------------------------------
+C         DECLARATIONS
+C ----------------------------------------------------------
+       IMPLICIT KPP_REAL (A-H,O-Z)
+       INCLUDE 'KPP_ROOT_Parameters.h'
+       INCLUDE 'KPP_ROOT_Sparse.h'
+       INTEGER KM, KM2, K, KC, KRIGHT, KLR, KK, KRN, KOPT
+       DIMENSION Y(N),YH(N),DY(N),FX(N),YHH(N),DYH(N),DEL(N)
+       DIMENSION WH(N),SCAL(N),HH(KM),W(KM),A(KM),FJAC(LU_NONZERO)
+       DIMENSION FMAS(LDMAS,NM1),T(KM,N),IP(NM1),NJ(KM)
+       DIMENSION RelTol(*),AbsTol(*)
+       DIMENSION IPHES(N),FSAFE(KM2,NRD),FACUL(KM),E(LE,NM1)
+       DIMENSION DENS((KM+2)*NRD),ICOMP(NRD)
+       LOGICAL REJECT,LAST,ATOV,CALJAC,CALHES,AUTNMS,IMPLCT,BANDED
+       EXTERNAL FCN, JAC
+       COMMON /COSEU/XOLDD,HHH,NNRD,KRIGHT
+       COMMON/LINAL/MLE,MUE,MBJAC,MBB,MDIAG,MDIFF,MBDIAG
+C --- COMPUTE COEFFICIENTS FOR DENSE OUTPUT
+       IF (IOUT.EQ.2) THEN
+          NNRD=NRD
+C --- COMPUTE THE FACTORIALS --------
+          FACUL(1)=1.D0
+          DO I=1,KM-1
+             FACUL(I+1)=I*FACUL(I)
+          END DO
+       END IF
+
+C *** *** *** *** *** *** ***
+C  INITIALISATIONS
+C *** *** *** *** *** *** ***
+       LRDE=(KM+2)*NRD
+       MLE=MLJAC
+       MUE=MUJAC
+       MBJAC=MLJAC+MUJAC+1
+       MBB=MLB+MUB+1
+       MDIAG=MLE+MUE+1
+       MDIFF=MLE+MUE-MUB
+       MBDIAG=MUB+1
+       IF (M1.GT.0) IJOB=IJOB+10
+C --- DEFINE THE STEP SIZE SEQUENCE
+       IF (NSEQU.EQ.1) THEN
+           NJ(1)=1
+           NJ(2)=2
+           NJ(3)=3
+           DO I=4,KM
+              NJ(I)=2*NJ(I-2)
+           END DO
+       END IF
+       IF (NSEQU.EQ.2) THEN
+           NJ(1)=2
+           NJ(2)=3
+           DO I=3,KM
+              NJ(I)=2*NJ(I-2)
+           END DO
+       END IF
+       DO I=1,KM
+          IF (NSEQU.EQ.3) NJ(I)=I
+          IF (NSEQU.EQ.4) NJ(I)=I+1
+       END DO
+       A(1)=WKJAC+NJ(1)*WKROW+WKDEC
+       DO I=2,KM
+          A(I)=A(I-1)+(NJ(I)-1)*WKROW+WKDEC
+       END DO
+       K=MAX0(3,MIN0(KM-2,INT(-DLOG10(RelTol(1)+AbsTol(1))*.6D0+1.5D0)))
+       HMAXN=MIN(ABS(HMAX),ABS(XEND-X))
+       IF (ABS(H).LE.10.D0*UROUND) H=1.0D-6
+       H=MIN(ABS(H),HMAXN)
+       THETA=2*ABS(THET)
+       ERR=0.D0
+       W(1)=1.D30
+       DO I=1,N
+          IF (ITOL.EQ.0) THEN
+            SCAL(I)=AbsTol(1)+RelTol(1)*DABS(Y(I))
+          ELSE
+            SCAL(I)=AbsTol(I)+RelTol(I)*DABS(Y(I))
+          END IF
+       END DO
+       CALJAC=.FALSE.
+       REJECT=.FALSE.
+       LAST=.FALSE.
+  10   CONTINUE
+       IF (REJECT) THETA=2*ABS(THET)
+       ATOV=.FALSE.
+C *** *** *** *** *** *** ***
+C --- IS XEND REACHED IN THE NEXT STEP?
+C *** *** *** *** *** *** ***
+       H1=XEND-X
+       IF (H1.LE.UROUND) GO TO 110
+       HOPT=H
+       H=MIN(H,H1,HMAXN)
+       IF (H.GE.H1-UROUND) LAST=.TRUE.
+       IF (AUTNMS) THEN
+          CALL FCN(N,X,Y,DY)
+          NFCN=NFCN+1
+       END IF
+       IF (THETA.GT.THET.AND..NOT.CALJAC) THEN
+C *** *** *** *** *** *** ***
+C  COMPUTATION OF THE JACOBIAN
+C *** *** *** *** *** *** ***
+          NJAC=NJAC+1
+C --- COMPUTE JACOBIAN MATRIX ANALYTICALLY
+          CALL JAC(N,X,Y,FJAC)
+          CALJAC=.TRUE.
+          CALHES=.FALSE.
+       END IF
+C *** *** *** *** *** *** ***
+C --- THE FIRST AND LAST STEP
+C *** *** *** *** *** *** ***
+      IF (NSTEP.EQ.0.OR.LAST) THEN
+        IPT=0
+        NSTEP=NSTEP+1
+        DO J=1,K
+         KC=J
+         CALL SEUL(J,N,FCN,X,Y,DY,FX,FJAC,LFJAC,FMAS,LDMAS,E,LE,IP,H,KM,
+     &             HMAXN,T,SCAL,NJ,HH,W,A,YHH,DYH,DEL,WH,ERR,SAFE1,FAC,
+     &             FAC1,FAC2,SAFE2,THETA,MLJAC,MUJAC,NFCN,NDEC,NSOL,MLB,
+     &             MUB,ERROLD,IPHES,ICOMP,AUTNMS,IMPLCT,BANDED,REJECT,
+     &             ATOV,FSAFE,KM2,NRD,IOUT,IPT,M1,M2,NM1,IJOB,CALHES)
+         IF (ATOV) GOTO 10
+         IF (J.GT.1.AND.ERR.LE.1.D0) GO TO 60
+        END DO
+        GO TO 55
+      END IF
+C --- BASIC INTEGRATION STEP
+  30  CONTINUE
+      IPT=0
+      NSTEP=NSTEP+1
+      IF (NSTEP.GE.NMAX) GO TO 120
+      KC=K-1
+      DO J=1,KC
+       CALL SEUL(J,N,FCN,X,Y,DY,FX,FJAC,LFJAC,FMAS,LDMAS,E,LE,IP,H,KM,
+     &           HMAXN,T,SCAL,NJ,HH,W,A,YHH,DYH,DEL,WH,ERR,SAFE1,
+     &           FAC,FAC1,FAC2,SAFE2,THETA,MLJAC,MUJAC,NFCN,NDEC,NSOL,
+     &           MLB,MUB,ERROLD,IPHES,ICOMP,AUTNMS,IMPLCT,BANDED,REJECT,
+     &           ATOV,FSAFE,KM2,NRD,IOUT,IPT,M1,M2,NM1,IJOB,CALHES)
+       IF (ATOV) GOTO 10
+      END DO
+C *** *** *** *** *** *** ***
+C --- CONVERGENCE MONITOR
+C *** *** *** *** *** *** ***
+      IF (K.EQ.2.OR.REJECT) GO TO 50
+      IF (ERR.LE.1.D0) GO TO 60
+      IF (ERR.GT.DBLE(NJ(K+1)*NJ(K))*4.D0) GO TO 100
+  50  CALL SEUL(K,N,FCN,X,Y,DY,FX,FJAC,LFJAC,FMAS,LDMAS,E,LE,IP,H,KM,
+     &           HMAXN,T,SCAL,NJ,HH,W,A,YHH,DYH,DEL,WH,ERR,SAFE1,
+     &           FAC,FAC1,FAC2,SAFE2,THETA,MLJAC,MUJAC,NFCN,NDEC,NSOL,
+     &           MLB,MUB,ERROLD,IPHES,ICOMP,AUTNMS,IMPLCT,BANDED,REJECT,
+     &           ATOV,FSAFE,KM2,NRD,IOUT,IPT,M1,M2,NM1,IJOB,CALHES)
+      IF (ATOV) GOTO 10
+      KC=K
+      IF (ERR.LE.1.D0) GO TO 60
+C --- HOPE FOR CONVERGENCE IN LINE K+1
+  55  IF (ERR.GT.DBLE(NJ(K+1))*2.D0) GO TO 100
+      KC=K+1
+      CALL SEUL(KC,N,FCN,X,Y,DY,FX,FJAC,LFJAC,FMAS,LDMAS,E,LE,IP,H,KM,
+     &           HMAXN,T,SCAL,NJ,HH,W,A,YHH,DYH,DEL,WH,ERR,SAFE1,
+     &           FAC,FAC1,FAC2,SAFE2,THETA,MLJAC,MUJAC,NFCN,NDEC,NSOL,
+     &           MLB,MUB,ERROLD,IPHES,ICOMP,AUTNMS,IMPLCT,BANDED,REJECT,
+     &           ATOV,FSAFE,KM2,NRD,IOUT,IPT,M1,M2,NM1,IJOB,CALHES)
+      IF (ATOV) GOTO 10
+CAdi      IF (ERR.GT.1.D0) GO TO 100
+      IF ((ERR.GT.1.D0).and.(H.gt.STEPMIN)) GO TO 100 ! Adi
+C *** *** *** *** *** *** ***
+C --- STEP IS ACCEPTED
+C *** *** *** *** *** *** ***
+  60  XOLD=X
+      X=X+H
+      IF (IOUT.EQ.2) THEN
+         KRIGHT=KC
+         DO I=1,NRD
+            DENS(I)=Y(ICOMP(I))
+         END DO
+      END IF
+      DO I=1,N
+         T1I=T(1,I)
+         IF (ITOL.EQ.0) THEN
+            SCAL(I)=AbsTol(1)+RelTol(1)*DABS(T1I)
+         ELSE
+            SCAL(I)=AbsTol(I)+RelTol(I)*DABS(T1I)
+         END IF
+         Y(I)=T1I
+      END DO
+      NACCPT=NACCPT+1
+      CALJAC=.FALSE.
+      IF (IOUT.EQ.2) THEN
+         XOLDD=XOLD
+         HHH=H
+         DO I=1,NRD
+            DENS(NRD+I)=Y(ICOMP(I))
+         END DO
+         DO KLR=1,KRIGHT-1
+C --- COMPUTE DIFFERENCES
+            IF (KLR.GE.2) THEN
+               DO KK=KLR,KC
+                  LBEG=((KK+1)*KK)/2
+                  LEND=LBEG-KK+2
+                  DO L=LBEG,LEND,-1
+                     DO I=1,NRD
+                        FSAFE(L,I)=FSAFE(L,I)-FSAFE(L-1,I)
+                     END DO
+                  END DO
+               END DO
+             END IF
+C --- COMPUTE DERIVATIVES AT RIGHT END ----
+             DO KK=KLR+LAMBDA,KC
+                FACNJ=NJ(KK)
+                FACNJ=FACNJ**KLR/FACUL(KLR+1)
+                IPT=((KK+1)*KK)/2
+                DO  I=1,NRD
+                   KRN=(KK-LAMBDA+1)*NRD
+                   DENS(KRN+I)=FSAFE(IPT,I)*FACNJ
+                END DO
+             END DO
+             DO J=KLR+LAMBDA+1,KC
+               DBLENJ=NJ(J)
+               DO L=J,KLR+LAMBDA+1,-1
+                 FACTOR=DBLENJ/NJ(L-1)-1.D0
+                 DO I=1,NRD
+                   KRN=(L-LAMBDA+1)*NRD+I
+                   DENS(KRN-NRD)=DENS(KRN)
+     &                          +(DENS(KRN)-DENS(KRN-NRD))/FACTOR
+                 END DO
+               END DO
+             END DO
+         END DO
+C ---  COMPUTE THE COEFFICIENTS OF THE INTERPOLATION POLYNOMIAL
+         DO IN=1,NRD
+            DO J=1,KRIGHT
+               II=NRD*J+IN
+               DENS(II)=DENS(II)-DENS(II-NRD)
+            END DO
+         END DO
+      END IF
+C --- COMPUTE OPTIMAL ORDER
+      IF (KC.EQ.2) THEN
+         KOPT=3
+         IF (REJECT) KOPT=2
+         GO TO 80
+      END IF
+      IF (KC.LE.K) THEN
+         KOPT=KC
+         IF (W(KC-1).LT.W(KC)*FAC3) KOPT=KC-1
+         IF (W(KC).LT.W(KC-1)*FAC4) KOPT=MIN0(KC+1,KM-1)
+      ELSE
+         KOPT=KC-1
+         IF (KC.GT.3.AND.W(KC-2).LT.W(KC-1)*FAC3) KOPT=KC-2
+         IF (W(KC).LT.W(KOPT)*FAC4) KOPT=MIN0(KC,KM-1)
+      END IF
+C --- AFTER A REJECTED STEP
+  80  IF (REJECT) THEN
+         K=MIN0(KOPT,KC)
+         H=DMIN1(H,HH(K))
+         REJECT=.FALSE.
+         GO TO 10
+      END IF
+C --- COMPUTE STEP SIZE FOR NEXT STEP
+      IF (KOPT.LE.KC) THEN
+         H=HH(KOPT)
+      ELSE
+         IF (KC.LT.K.AND.W(KC).LT.W(KC-1)*FAC4) THEN
+            H=HH(KC)*A(KOPT+1)/A(KC)
+         ELSE
+            H=HH(KC)*A(KOPT)/A(KC)
+         END IF
+      END IF
+      K=KOPT
+      H = DMAX1(H, STEPMIN)  ! Adi
+      GO TO 10
+C *** *** *** *** *** *** ***
+C --- STEP IS REJECTED
+C *** *** *** *** *** *** ***
+ 100  K=MIN0(K,KC)
+      IF (K.GT.2.AND.W(K-1).LT.W(K)*FAC3) K=K-1
+      NREJCT=NREJCT+1
+      H=HH(K)
+      LAST=.FALSE.
+      REJECT=.TRUE.
+      IF (CALJAC) GOTO 30
+      GO TO 10
+C --- SOLUTION EXIT
+ 110  CONTINUE
+      H=HOPT
+      IDID=1
+      RETURN
+C --- FAIL EXIT
+ 120  WRITE (6,979) X,H
+ 979  FORMAT(' EXIT OF SEULEX AT X=',D14.7,'   H=',D14.7)
+      IDID=-1
+      RETURN
+      END
+C
+C
+C *** *** *** *** *** *** ***
+C     S U B R O U T I N E    S E U L
+C *** *** *** *** *** *** ***
+C
+      SUBROUTINE SEUL(JJ,N,FCN,X,Y,DY,FX,FJAC,LFJAC,FMAS,LDMAS,E,LE,IP,
+     &          H,KM,HMAXN,T,SCAL,NJ,HH,W,A,YH,DYH,DEL,WH,ERR,SAFE1,
+     &          FAC,FAC1,FAC2,SAFE2,THETA,MLJAC,MUJAC,NFCN,NDEC,NSOL,
+     &          MLB,MUB,ERROLD,IPHES,ICOMP,
+     &          AUTNMS,IMPLCT,BANDED,REJECT,ATOV,FSAFE,KM2,NRD,IOUT,
+     &          IPT,M1,M2,NM1,IJOB,CALHES)
+C --- THIS SUBROUTINE COMPUTES THE J-TH LINE OF THE
+C --- EXTRAPOLATION TABLE AND PROVIDES AN ESTIMATE
+C --- OF THE OPTIMAL STEP SIZE
+      IMPLICIT KPP_REAL (A-H,O-Z)
+      INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Sparse.h'
+      INTEGER KM, KM2
+      DIMENSION Y(N),YH(N),DY(N),FX(N),DYH(N),DEL(N)
+      DIMENSION WH(N),SCAL(N),HH(KM),W(KM),A(KM)
+      DIMENSION FJAC(LU_NONZERO),E(LU_NONZERO)
+      DIMENSION FMAS(LDMAS,N),T(KM,N),IP(N),NJ(KM),IPHES(N)
+      DIMENSION FSAFE(KM2,NRD),ICOMP(NRD)
+      LOGICAL ATOV,REJECT,AUTNMS,IMPLCT,BANDED,CALHES
+      COMMON/LINAL/MLE,MUE,MBJAC,MBB,MDIAG,MDIFF,MBDIAG
+      EXTERNAL FCN
+C *** *** *** *** *** *** ***
+C  COMPUTE THE MATRIX E AND ITS DECOMPOSITION
+C *** *** *** *** *** *** ***
+      HJ=H/NJ(JJ)
+      HJI=1.D0/HJ
+      DO  I=1,LU_NONZERO
+         E(I)=-FJAC(I)
+      END DO
+      DO J=1,N
+         E(LU_DIAG(J))=E(LU_DIAG(J))+HJI
+      END DO
+      CALL KppDecomp (E,IER)
+      IF (IER.NE.0) GOTO 79
+      NDEC=NDEC+1
+C *** *** *** *** *** *** ***
+C --- STARTING PROCEDURE
+C *** *** *** *** *** *** ***
+       IF (.NOT.AUTNMS) THEN
+          CALL FCN(N,X+HJ,Y,DY)
+          NFCN=NFCN+1
+       END IF
+       DO I=1,N
+          YH(I)=Y(I)
+          DEL(I)=DY(I)
+       END DO
+       CALL KppSolve (E,DEL)
+       NSOL=NSOL+1
+       M=NJ(JJ)
+       IF (IOUT.EQ.2.AND.M.EQ.JJ) THEN
+          IPT=IPT+1
+          DO I=1,NRD
+             FSAFE(IPT,I)=DEL(ICOMP(I))
+          END DO
+       END IF
+C *** *** *** *** *** *** ***
+C --- SEMI-IMPLICIT EULER METHOD
+C *** *** *** *** *** *** ***
+       IF (M.GT.1) THEN
+          DO MM=1,M-1
+             DO I=1,N
+                YH(I)=YH(I)+DEL(I)
+             END DO
+             IF (AUTNMS) THEN
+                CALL FCN(N,X+HJ*MM,YH,DYH)
+             ELSE
+                CALL FCN(N,X+HJ*(MM+1),YH,DYH)
+             END IF
+             NFCN=NFCN+1
+             IF (MM.EQ.1.AND.JJ.LE.2) THEN
+C --- STABILITY CHECK
+                DEL1=0.D0
+                DO I=1,N
+                   DEL1=DEL1+(DEL(I)/SCAL(I))**2
+                END DO
+                DEL1=DSQRT(DEL1)
+                IF (IMPLCT) THEN
+                   DO I=1,NM1
+                      WH(I)=DEL(I+M1)
+                   END DO
+                   IF (MLB.EQ.NM1) THEN
+                      DO I=1,NM1
+                         SUM=0.D0
+                         DO J=1,NM1
+                            SUM=SUM+FMAS(I,J)*WH(J)
+                         END DO
+                         DEL(I+M1)=SUM
+                      END DO
+                   ELSE
+                      DO I=1,NM1
+                         SUM=0.D0
+                         DO J=MAX(1,I-MLB),MIN(NM1,I+MUB)
+                            SUM=SUM+FMAS(I-J+MBDIAG,J)*WH(J)
+                         END DO
+                         DEL(I+M1)=SUM
+                      END DO
+                   END IF
+                END IF
+                IF (.NOT.AUTNMS) THEN
+                   CALL FCN(N,X+HJ,YH,WH)
+                   NFCN=NFCN+1
+                   DO I=1,N
+                      DEL(I)=WH(I)-DEL(I)*HJI
+                   END DO
+                ELSE
+                   DO I=1,N
+                      DEL(I)=DYH(I)-DEL(I)*HJI
+                   END DO
+                END IF
+                CALL KppSolve (E,DEL)
+                NSOL=NSOL+1
+                DEL2=0.D0
+                DO I=1,N
+                   DEL2=DEL2+(DEL(I)/SCAL(I))**2
+                END DO
+                DEL2=DSQRT(DEL2)
+                THETA=DEL2/MAX(1.D0,DEL1)
+                IF (THETA.GT.1.D0) GOTO 79
+             END IF
+             CALL KppSolve (E,DYH)
+             NSOL=NSOL+1
+             DO I=1,N
+                DEL(I)=DYH(I)
+             END DO
+             IF (IOUT.EQ.2.AND.MM.GE.M-JJ) THEN
+                IPT=IPT+1
+                DO I=1,NRD
+                   FSAFE(IPT,I)=DEL(ICOMP(I))
+                END DO
+             END IF
+          END DO
+       END IF
+       DO I=1,N
+          T(JJ,I)=YH(I)+DEL(I)
+       END DO
+C *** *** *** *** *** *** ***
+C --- POLYNOMIAL EXTRAPOLATION
+C *** *** *** *** *** *** ***
+       IF (JJ.EQ.1) RETURN
+       DO L=JJ,2,-1
+          FAC=(DBLE(NJ(JJ))/DBLE(NJ(L-1)))-1.D0
+          DO I=1,N
+             T(L-1,I)=T(L,I)+(T(L,I)-T(L-1,I))/FAC
+          END DO
+       END DO
+       ERR=0.D0
+       DO I=1,N
+          ERR=ERR+MIN(ABS((T(1,I)-T(2,I)))/SCAL(I),1.D15)**2
+       END DO
+       IF (ERR.GE.1.D30) GOTO 79
+       ERR=DSQRT(ERR/DBLE(N))
+       IF (JJ.GT.2.AND.ERR.GE.ERROLD) GOTO 79
+       ERROLD=DMAX1(4*ERR,1.D0)
+C --- COMPUTE OPTIMAL STEP SIZES
+       EXPO=1.D0/JJ
+       FACMIN=FAC1**EXPO
+       FAC=DMIN1(FAC2/FACMIN,DMAX1(FACMIN,(ERR/SAFE1)**EXPO/SAFE2))
+       FAC=1.D0/FAC
+       HH(JJ)=DMIN1(H*FAC,HMAXN)
+       W(JJ)=A(JJ)/HH(JJ)
+       RETURN
+  79   ATOV=.TRUE.
+       H=H*0.5D0
+       REJECT=.TRUE.
+       RETURN
+       END
+
+
+
+      SUBROUTINE FUNC_CHEM(N, T, Y, P)
+      INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Global.h'
+      INTEGER N
+      KPP_REAL   T, Told
+      KPP_REAL   Y(NVAR), P(NVAR)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Fun( Y,  FIX, RCONST, P )
+      TIME = Told
+      RETURN
+      END
+
+
+      SUBROUTINE JAC_CHEM(N, T, Y, J)
+      INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Global.h'
+      INTEGER N
+      KPP_REAL   Told, T
+      KPP_REAL   Y(NVAR), J(LU_NONZERO)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Jac_SP( Y,  FIX, RCONST, J )
+      TIME = Told
+      RETURN
+      END
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/kpp_seulex.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/kpp_seulex.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/kpp_seulex.f90	(revision 2696)
@@ -0,0 +1,1163 @@
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
+!  SEULEX - Stiff extrapolation method based on linearly implicit Euler   !
+!  By default the code employs the KPP sparse linear algebra routines     !
+!  Compile with -DFULL_ALGEBRA to use full linear algebra (LAPACK)        !
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
+
+MODULE KPP_ROOT_Integrator
+
+  USE KPP_ROOT_Precision, ONLY: dp
+  USE KPP_ROOT_Parameters, ONLY: NVAR, LU_NONZERO
+  USE KPP_ROOT_Jacobian, ONLY: LU_DIAG
+  USE KPP_ROOT_LinearAlgebra
+
+  IMPLICIT NONE
+  PUBLIC
+  SAVE
+
+  ! variables from the former COMMON block /CONRA5/ are now here:
+  INTEGER :: NN, NN2, NN3, NN4
+  KPP_REAL :: TSOL, HSOL
+  
+  ! Statistics
+  INTEGER :: Nfun,Njac,Nstp,Nacc,Nrej,Ndec,Nsol,Nsng
+  
+  ! Method parameters
+  
+  ! mz_rs_20050717: TODO: use strings of IERR_NAMES for error messages
+  ! description of the error numbers IERR
+  CHARACTER(LEN=50), PARAMETER, DIMENSION(-4:1) :: IERR_NAMES = (/ &
+    'Matrix is repeatedly singular                     ', & ! -4
+    'Step size too small                               ', & ! -3
+    'More than Max_no_steps steps are needed           ', & ! -2
+    'Insufficient storage for work or iwork            ', & ! -1
+    '                                                  ', & !  0 (not used)
+    'Success                                           ' /) !  1
+
+CONTAINS
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE INTEGRATE( TIN, TOUT, &
+    ICNTRL_U, RCNTRL_U, ISTATUS_U, RSTATUS_U, IERR_U )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+    USE KPP_ROOT_Parameters, ONLY: nvar
+    USE KPP_ROOT_Global,     ONLY: atol,rtol,var
+
+    IMPLICIT NONE
+
+    KPP_REAL :: TIN  ! TIN - Start Time
+    KPP_REAL :: TOUT ! TOUT - End Time
+    INTEGER,  INTENT(IN),  OPTIONAL :: ICNTRL_U(20)
+    KPP_REAL, INTENT(IN),  OPTIONAL :: RCNTRL_U(20)
+    INTEGER,  INTENT(OUT), OPTIONAL :: ISTATUS_U(20)
+    KPP_REAL, INTENT(OUT), OPTIONAL :: RSTATUS_U(20)
+    INTEGER,  INTENT(OUT), OPTIONAL :: IERR_U
+
+    INTEGER :: Ncolumns, Ncolumns2, NRDENS
+    PARAMETER (Ncolumns=12,Ncolumns2=2+Ncolumns*(Ncolumns+3)/2,NRDENS=NVAR)
+
+    KPP_REAL :: RCNTRL(20), RSTATUS(20)
+    INTEGER ::       ICNTRL(20), ISTATUS(20)
+    INTEGER :: IERR
+    INTEGER, SAVE :: Ntotal = 0
+    KPP_REAL, SAVE :: H
+
+    H = 0.0_dp
+
+    ICNTRL(1:20) = 0
+    RCNTRL(1:20)  = 0._dp
+    ICNTRL(10)=0    !~~~> OUTPUT ROUTINE IS NOT USED DURING INTEGRATION
+
+    ! if optional parameters are given, and if they are >0, 
+    ! they overwrite the default settings
+    IF (PRESENT(ICNTRL_U)) ICNTRL(:) = ICNTRL_U(:)
+    IF (PRESENT(RCNTRL_U)) RCNTRL(:) = RCNTRL_U(:)
+    !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----
+    
+
+    CALL ATMSEULEX(NVAR,TIN,TOUT,VAR,H,RTOL,ATOL,      &
+                    RCNTRL,ICNTRL,RSTATUS,ISTATUS,IERR )
+    Ntotal = Ntotal + Nstp
+!!$    PRINT*,'NSTEPS=',Nstp,' (',Ntotal,')  T=',TIN
+
+
+    Nfun = Nfun + ISTATUS(1)
+    Njac = Njac + ISTATUS(2)
+    Nstp = Nstp + ISTATUS(3)
+    Nacc = Nacc + ISTATUS(4)
+    Nrej = Nrej + ISTATUS(5)
+    Ndec = Ndec + ISTATUS(6)
+    Nsol = Nsol + ISTATUS(7)
+
+    ! if optional parameters are given for output
+    ! use them to store information in them
+    IF (PRESENT(ISTATUS_U)) THEN
+      ISTATUS_U(:) = 0
+      ISTATUS_U(1) = Nfun ! function calls
+      ISTATUS_U(2) = Njac ! jacobian calls
+      ISTATUS_U(3) = Nstp ! steps
+      ISTATUS_U(4) = Nacc ! accepted steps
+      ISTATUS_U(5) = Nrej ! rejected steps (except at the beginning)
+      ISTATUS_U(6) = Ndec ! LU decompositions
+      ISTATUS_U(7) = Nsol ! forward/backward substitutions
+    ENDIF
+    IF (PRESENT(RSTATUS_U)) THEN
+      RSTATUS_U(:) = 0.
+      RSTATUS_U(1) = TOUT ! final time
+    ENDIF
+    IF (PRESENT(IERR_U)) IERR_U = IERR
+
+! mz_rs_20050716: IERR is returned to the user who then decides what to do
+! about it, i.e. either stop the run or ignore it.
+!!$    IF (IERR < 0) THEN
+!!$      PRINT *,'SEULEX: Unsuccessful exit at T=', TIN,' (IERR=',IERR,')'
+!!$      STOP
+!!$    ENDIF
+
+  END SUBROUTINE INTEGRATE
+  
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE ATMSEULEX( N,Tinitial,Tfinal,Y,H,RelTol,AbsTol,     &
+                        RCNTRL,ICNTRL,RSTATUS,ISTATUS,IERR )
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!     NUMERICAL SOLUTION OF A STIFF (OR DIFFERENTIAL ALGEBRAIC)
+!     SYSTEM OF FIRST 0RDER ORDINARY DIFFERENTIAL EQUATIONS  MY'=F(T,Y).
+!     THIS IS AN EXTRAPOLATION-ALGORITHM, BASED ON THE
+!     LINEARLY IMPLICIT EULER METHOD (WITH STEP SIZE CONTROL
+!     AND ORDER SELECTION).
+!
+!     AUTHORS: E. HAIRER AND G. WANNER
+!              UNIVERSITE DE GENEVE, DEPT. DE MATHEMATIQUES
+!              CH-1211 GENEVE 24, SWITZERLAND
+!              E-MAIL:  HAIRER@DIVSUN.UNIGE.CH,  WANNER@DIVSUN.UNIGE.CH
+!              INCLUSION OF DENSE OUTPUT BY E. HAIRER AND A. OSTERMANN
+!
+!     THIS CODE IS PART OF THE BOOK:
+!         E. HAIRER AND G. WANNER, SOLVING ORDINARY DIFFERENTIAL
+!         EQUATIONS II. STIFF AND DIFFERENTIAL-ALGEBRAIC PROBLEMS.
+!         SPRINGER SERIES IN COMPUTATIONAL MATHEMATICS 14,
+!         SPRINGER-VERLAG (1991)
+!
+!     VERSION OF SEPTEMBER 30, 1995
+!
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!     INPUT PARAMETERS
+!     ----------------
+!     N           DIMENSION OF THE SYSTEM
+!
+!     T           INITIAL T-VALUE
+!
+!     Y(N)        INITIAL VALUES FOR Y
+!
+!     Tend        FINAL T-VALUE (Tend-T MAY BE POSITIVE OR NEGATIVE)
+!
+!     H           INITIAL STEP SIZE GUESS;
+!                 FOR STIFF EQUATIONS WITH INITIAL TRANSIENT,
+!                 H=1.D0/(NORM OF F'), USUALLY 1.D-2 OR 1.D-3, IS GOOD.
+!                 THIS CHOICE IS NOT VERY IMPORTANT, THE CODE QUICKLY
+!                 ADAPTS ITS STEP SIZE (IF H=0.D0, THE CODE PUTS H=1.D-6
+!
+!     RelTol,AbsTol   RELATIVE AND ABSOLUTE ERROR TOLERANCES. THEY
+!                 CAN BE BOTH SCALARS OR ELSE BOTH VECTORS OF LENGTH N.
+!
+!     JAC         NAME (EXTERNAL) OF THE SUBROUTINE WHICH COMPUTES
+!                 THE PARTIAL DERIVATIVES OF F(T,Y) WITH RESPECT TO Y
+!
+!     SOLOUT      NAME (EXTERNAL) OF SUBROUTINE PROVIDING THE
+!                 NUMERICAL SOLUTION DURING INTEGRATION.
+!                 IF IOUT>=1, IT IS CALLED AFTER EVERY SUCCESSFUL STEP.
+!                 SUPPLY A DUMMY SUBROUTINE IF IOUT=0.
+!                 IT MUST HAVE THE FORM
+!                    SUBROUTINE SOLOUT (NR,TOLD,T,Y,RC,LRC,IC,LIC,N,
+!                                       RPAR,IPAR,IRTRN)
+!                    KPP_REAL T,Y(N),RC(LRC),IC(LIC)
+!                    ....
+!                 SOLOUT FURNISHES THE SOLUTION "Y" AT THE NR-TH
+!                    GRID-POINT "T" (THEREBY THE INITIAL VALUE IS
+!                    THE FIRST GRID-POINT).
+!                 "TOLD" IS THE PRECEEDING GRID-POINT.
+!                 "IRTRN" SERVES TO INTERRUPT THE INTEGRATION. IF IRTRN
+!                    IS SET <0, SEULEX RETURNS TO THE CALLING PROGRAM.
+!                 DO NOT CHANGE THE ENTRIES OF RC(LRC),IC(LIC)!
+!
+!          -----  CONTINUOUS OUTPUT (IF IOUT=2): -----
+!                 DURING CALLS TO "SOLOUT", A CONTINUOUS SOLUTION
+!                 FOR THE INTERVAL [TOLD,T] IS AVAILABLE THROUGH
+!                 THE KPP_REAL FUNCTION
+!                        >>>   CONTEX(I,S,RC,LRC,IC,LIC)   <<<
+!                 WHICH PROVIDES AN APPROXIMATION TO THE I-TH
+!                 COMPONENT OF THE SOLUTION AT THE POINT S. THE VALUE
+!                 S SHOULD LIE IN THE INTERVAL [TOLD,T].
+!
+!     IOUT        GIVES INFORMATION ON THE SUBROUTINE SOLOUT:
+!                    IOUT=0: SUBROUTINE IS NEVER CALLED
+!                    IOUT=1: SUBROUTINE IS USED FOR OUTPUT
+!                    IOUT=2: DENSE OUTPUT IS PERFORMED IN SOLOUT
+!
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!     SOPHISTICATED SETTING OF PARAMETERS
+!     -----------------------------------
+!              SEVERAL PARAMETERS OF THE CODE ARE TUNED TO MAKE IT CNTRL
+!              WELL. THEY MAY BE DEFINED BY SETTING CNTRL(1),..,CNTRL(13)
+!              AS WELL AS ICNTRL(1),..,ICNTRL(4) DIFFERENT FROM ZERO.
+!              FOR ZERO INPUT, THE CODE CHOOSES DEFAULT VALUES:
+!
+!
+!~~~>     INPUT PARAMETERS:
+!
+!    Note: For input parameters equal to zero the default values of the
+!          corresponding variables are used.
+!~~~>  
+!    ICNTRL(1) = 1: F = F(y)   Independent of T (autonomous)
+!              = 0: F = F(t,y) Depends on T (non-autonomous)
+!
+!    ICNTRL(2) = 0: AbsTol, RelTol are NVAR-dimensional vectors
+!              = 1: AbsTol, RelTol are scalars
+!
+!    ICNTRL(3)  -> not used
+!
+!    ICNTRL(4)  -> maximum number of integration steps
+!        For ICNTRL(4)=0 the default value of 100000 is used
+!
+!    ICNTRL(11)  THE MAXIMUM NUMBER OF COLUMNS IN THE EXTRAPOLATION
+!              TABLE. THE DEFAULT VALUE (FOR ICNTRL(3)=0) IS 12.
+!              IF ICNTRL(3).NE.0 THEN ICNTRL(3) SHOULD BE  >= 3.
+!
+!    ICNTRL(12)  SWITCH FOR THE STEP SIZE SEQUENCE
+!              IF ICNTRL(4) == 1 THEN 1,2,3,4,6,8,12,16,24,32,48,...
+!              IF ICNTRL(4) == 2 THEN 2,3,4,6,8,12,16,24,32,48,64,...
+!              IF ICNTRL(4) == 3 THEN 1,2,3,4,5,6,7,8,9,10,...
+!              IF ICNTRL(4) == 4 THEN 2,3,4,5,6,7,8,9,10,11,...
+!              THE DEFAULT VALUE (FOR ICNTRL(4)=0) IS ICNTRL(4)=2.
+!
+!    ICNTRL(13)  PARAMETER "LAMBDA" OF DENSE OUTPUT; POSSIBLE VALUES
+!              ARE 0 AND 1; DEFAULT ICNTRL(5)=0.
+!
+!    ICNTRL(14)  = NRDENS = NUMBER OF COMPONENTS, FOR WHICH DENSE OUTPUT
+!              IS REQUIRED
+!
+!    ICNTRL(21),...,ICNTRL(NRDENS+20) INDICATE THE COMPONENTS, FOR WHICH
+!              DENSE OUTPUT IS REQUIRED
+!
+!~~~>  Real parameters
+!
+!    RCNTRL(1)  -> Hmin, lower bound for the integration step size
+!                  It is strongly recommended to keep Hmin = ZERO
+!    RCNTRL(2)  -> Hmax, upper bound for the integration step size
+!    RCNTRL(3)  -> Hstart, starting value for the integration step size
+!    RCNTRL(4)  -> FacMin, lower bound on step decrease factor (default=0.2)
+!    RCNTRL(5)  -> FacMax, upper bound on step increase factor (default=6)
+!    RCNTRL(6)  -> FacRej, step decrease factor after multiple rejections
+!                 (default=0.1)
+!    RCNTRL(7)  -> FacSafe, by which the new step is slightly smaller
+!                  than the predicted value  (default=0.9)
+!    RCNTRL(8)  -> ThetaMin. If Newton convergence rate smaller
+!                  than ThetaMin the Jacobian is not recomputed;
+!                  (default=0.001). Increase cntrl(3), to 0.01 say, when 
+!                   Jacobian evaluations are costly. for small systems it 
+!                   should be smaller.
+!    RCNTRL(9)  -> not used
+!    RCNTRL(10,11) -> FAC1,FAC2 (parameters for step size selection)
+!    RCNTRL(12,13) -> FAC3,FAC4 (parameters for order selection)
+!    RCNTRL(14,15) -> FacSafe1, FacSafe2
+!                     Safety factors for step size prediction
+!                     HNEW=H*FacSafe2*(FacSafe1*TOL/ERR)**(1/(J-1))
+!    RCNTRL(16:19) -> WorkFcn, WorkJac, WorkDec, WorkSol 
+!                     estimated computational work
+!
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!     OUTPUT PARAMETERS
+!     -----------------
+!     T           T-VALUE WHERE THE SOLUTION IS COMPUTED
+!                 (AFTER SUCCESSFUL RETURN T=Tend)
+!
+!     Y(N)        SOLUTION AT T
+!
+!     H           PREDICTED STEP SIZE OF THE LAST ACCEPTED STEP
+!
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!          DECLARATIONS
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      INTEGER :: N, IERR, ITOL, Max_no_steps, Ncolumns, Nsequence, Lambda, &
+                 NRDENS, i, Ncolumns2, NRD, IOUT
+      KPP_REAL :: Y(NVAR),AbsTol(*),RelTol(*)
+      KPP_REAL :: Tinitial, Tfinal, Roundoff, Hmin, Hmax,         &
+                 FacMin, FacMax, FAC1, FAC2, FAC3, FAC4, FacSafe1,     &
+                 FacSafe2, H, Hstart,WorkFcn,WorkJac, WorkDec, WorkSol,&
+                 WorkRow, FacRej, FacSafe, ThetaMin, T
+      LOGICAL :: AUTNMS
+      KPP_REAL :: RCNTRL(20), RSTATUS(20)
+      INTEGER ::       ICNTRL(20), ISTATUS(20)
+      KPP_REAL, PARAMETER :: ZERO = 0.0d0
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!        SETTING THE PARAMETERS
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   Nfun=0
+   Njac=0
+   Nstp=0
+   Nacc=0
+   Nrej=0
+   Ndec=0
+   Nsol=0
+       
+   IERR = 0
+
+   IF (ICNTRL(1) == 0) THEN
+      AUTNMS = .FALSE. 
+   ELSE
+      AUTNMS = .TRUE.
+   END IF
+
+!~~~>  For Scalar tolerances (ICNTRL(1)/=0) the code uses AbsTol(1) and RelTol(1)
+!~~~>  For Vector tolerances (ICNTRL(1)==0) the code uses AbsTol(1:NVAR) and RelTol(1:NVAR)
+   IF (ICNTRL(2) == 0) THEN
+      ITOL = 1
+   ELSE
+      ITOL = 0
+   END IF
+
+!~~~> Max_no_steps: the maximum number of time steps admitted
+   IF (ICNTRL(4) == 0) THEN
+      Max_no_steps = 100000
+   ELSEIF (ICNTRL(4) > 0) THEN
+      Max_no_steps=ICNTRL(4)
+   ELSE
+      PRINT * ,'User-selected ICNTRL(4)=',ICNTRL(4)
+      CALL SEULEX_ErrorMsg(-1,Tinitial,ZERO,IERR);
+   END IF
+
+!~~~> IOUT = use (or not) the output routine
+   IOUT = ICNTRL(10)
+   IF ( IOUT<0 .OR. IOUT>2 ) THEN
+       PRINT * ,'User-selected ICNTRL(10)=',ICNTRL(10)
+       IOUT = 0
+   END IF
+   
+!~~~> Ncolumns:  maximum number of columns in the extrapolation
+   IF (ICNTRL(11)==0) THEN
+       Ncolumns=12
+   ELSEIF (ICNTRL(11) > 2) THEN
+       Ncolumns=ICNTRL(11)
+   ELSE   
+       PRINT * ,'User-selected ICNTRL(11)=',ICNTRL(11)
+       CALL SEULEX_ErrorMsg(-2,Tinitial,ZERO,IERR);
+   END IF
+
+!~~~> Nsequence: choice of step size sequence
+   IF (ICNTRL(12)==0) THEN
+      Nsequence = 2
+   ELSEIF ( (ICNTRL(12)>0).AND.(ICNTRL(12)<5) ) THEN
+      Nsequence = ICNTRL(4)
+   ELSE
+      PRINT * ,'User-selected ICNTRL(12)=',ICNTRL(12)
+      CALL SEULEX_ErrorMsg(-3,Tinitial,ZERO,IERR)
+   END IF
+
+!~~~> LAMBDA: parameter for dense output
+   LAMBDA = ICNTRL(13)
+   IF ( LAMBDA < 0 .OR. LAMBDA >= 2 ) THEN
+       PRINT * ,'User-selected ICNTRL(13)=',ICNTRL(13)
+       CALL SEULEX_ErrorMsg(-4,Tinitial,ZERO,IERR)
+   END IF
+      
+!~~~>- NRDENS:  number of dense output components
+   NRDENS=ICNTRL(14)
+   IF ( (NRDENS < 0) .OR. (NRDENS > N)  ) THEN
+       PRINT * ,'User-selected ICNTRL(14)=',ICNTRL(14)
+       CALL SEULEX_ErrorMsg(-5,Tinitial,ZERO,IERR)
+   END IF
+
+
+!~~~>  Unit roundoff (1+Roundoff>1)
+      Roundoff = WLAMCH('E')
+
+!~~~>  Lower bound on the step size: (positive value)
+   IF (RCNTRL(1) == ZERO) THEN
+      Hmin = ZERO
+   ELSEIF (RCNTRL(1) > ZERO) THEN
+      Hmin = RCNTRL(1)
+   ELSE
+      PRINT * , 'User-selected RCNTRL(1)=', RCNTRL(1)
+      CALL SEULEX_ErrorMsg(-7,Tinitial,ZERO,IERR)
+      RETURN
+   END IF
+   
+!~~~>  Upper bound on the step size: (positive value)
+   IF (RCNTRL(2) == ZERO) THEN
+      Hmax = ABS(Tfinal-Tinitial)
+   ELSEIF (RCNTRL(2) > ZERO) THEN
+      Hmax = MIN(ABS(RCNTRL(2)),ABS(Tfinal-Tinitial))
+   ELSE
+      PRINT * , 'User-selected RCNTRL(2)=', RCNTRL(2)
+      CALL SEULEX_ErrorMsg(-7,Tinitial,ZERO,IERR)
+      RETURN
+   END IF
+   
+!~~~>  Starting step size: (positive value)
+   IF (RCNTRL(3) == ZERO) THEN
+      Hstart = MAX(Hmin,Roundoff)
+   ELSEIF (RCNTRL(3) > ZERO) THEN
+      Hstart = MIN(ABS(RCNTRL(3)),ABS(Tfinal-Tinitial))
+   ELSE
+      PRINT * , 'User-selected Hstart: RCNTRL(3)=', RCNTRL(3)
+      CALL SEULEX_ErrorMsg(-7,Tinitial,ZERO,IERR)
+      RETURN
+   END IF
+   
+   
+!~~~>  Step size can be changed s.t.  FacMin < Hnew/Hexit < FacMax
+   IF (RCNTRL(4) == ZERO) THEN
+      FacMin = 0.2_dp
+   ELSEIF (RCNTRL(4) > ZERO) THEN
+      FacMin = RCNTRL(4)
+   ELSE
+      PRINT * , 'User-selected FacMin: RCNTRL(4)=', RCNTRL(4)
+      CALL SEULEX_ErrorMsg(-8,Tinitial,ZERO,IERR)
+      RETURN
+   END IF
+   IF (RCNTRL(5) == ZERO) THEN
+      FacMax = 10.0_dp
+   ELSEIF (RCNTRL(5) > ZERO) THEN
+      FacMax = RCNTRL(5)
+   ELSE
+      PRINT * , 'User-selected FacMax: RCNTRL(5)=', RCNTRL(5)
+      CALL SEULEX_ErrorMsg(-8,Tinitial,ZERO,IERR)
+      RETURN
+   END IF
+!~~~>   FacRej: Factor to decrease step after 2 succesive rejections
+   IF (RCNTRL(6) == ZERO) THEN
+      FacRej = 0.1_dp
+   ELSEIF (RCNTRL(6) > ZERO) THEN
+      FacRej = RCNTRL(6)
+   ELSE
+      PRINT * , 'User-selected FacRej: RCNTRL(6)=', RCNTRL(6)
+      CALL SEULEX_ErrorMsg(-8,Tinitial,ZERO,IERR)
+      RETURN
+   END IF
+!~~~>   FacSafe: Safety Factor in the computation of new step size
+   IF (RCNTRL(7) == ZERO) THEN
+      FacSafe = 0.9_dp
+   ELSEIF (RCNTRL(7) > ZERO) THEN
+      FacSafe = RCNTRL(7)
+   ELSE
+      PRINT * , 'User-selected FacSafe: RCNTRL(7)=', RCNTRL(7)
+      CALL SEULEX_ErrorMsg(-8,Tinitial,ZERO,IERR)
+      RETURN
+   END IF
+
+!~~~> ThetaMin: DECIDES WHETHER THE JACOBIAN SHOULD BE RECOMPUTED;
+!              INCREASE WORK(3), TO 0.01 SAY, WHEN JACOBIAN EVALUATIONS
+!              ARE COSTLY. FOR SMALL SYSTEMS WORK(3) SHOULD BE SMALLER.
+   IF(RCNTRL(8) == 0.D0)THEN
+       ThetaMin = 1.0d-3
+   ELSE
+       ThetaMin = RCNTRL(8)
+   END IF
+
+!~~~>  FAC1,FAC2:     PARAMETERS FOR STEP SIZE SELECTION
+!              THE NEW STEP SIZE FOR THE J-TH DIAGONAL ENTRY IS
+!              CHOSEN SUBJECT TO THE RESTRICTION
+!                 FACMIN/WORK(5) <= HNEW(J)/HOLD <= 1/FACMIN
+!              WHERE FACMIN=WORK(4)**(1/(J-1))
+      IF(RCNTRL(10) == 0.D0)THEN
+         FAC1=0.1D0
+      ELSE
+         FAC1=RCNTRL(10)
+      END IF
+      IF(RCNTRL(11) == 0.D0)THEN
+         FAC2=4.0D0
+      ELSE
+         FAC2=RCNTRL(11)
+      END IF
+!~~~>  FAC3, FAC4:   PARAMETERS FOR THE ORDER SELECTION
+!              ORDER IS DECREASED IF    W(K-1) <= W(K)*WORK(6)
+!              ORDER IS INCREASED IF    W(K) <= W(K-1)*WORK(7)
+      IF(RCNTRL(12) == 0.D0)THEN
+         FAC3=0.7D0
+      ELSE
+         FAC3=RCNTRL(12)
+      END IF
+      IF(RCNTRL(13) == 0.D0)THEN
+         FAC4=0.9D0
+      ELSE
+         FAC4=RCNTRL(13)
+      END IF
+!~~~>- FacSafe1, FacSafe2: safety factors for step size prediction
+!             HNEW=H*WORK(9)*(WORK(8)*TOL/ERR)**(1/(J-1))
+      IF(RCNTRL(14) == 0.D0)THEN
+         FacSafe1=0.6D0
+      ELSE
+         FacSafe1=RCNTRL(14)
+      END IF
+      IF(RCNTRL(15) == 0.D0)THEN
+         FacSafe2=0.93D0
+      ELSE
+         FacSafe2=RCNTRL(15)
+      END IF
+      
+!~~~> WorkFcn: estimated computational work for a calls to FCN
+      IF(RCNTRL(16) == 0.D0)THEN
+         WorkFcn=1.D0
+      ELSE
+         WorkFcn=RCNTRL(16)
+      END IF
+!~~~> WorkJac: estimated computational work for calls to JAC
+      IF(RCNTRL(17) == 0.D0)THEN
+         WorkJac=5.D0
+      ELSE
+         WorkJac=RCNTRL(17)
+      END IF
+!~~~> WorkDec: estimated computational work for calls to DEC
+      IF(RCNTRL(18) == 0.D0)THEN
+         WorkDec=1.D0
+      ELSE
+         WorkDec=RCNTRL(18)
+      END IF
+!~~~> WorkSol: estimated computational work for calls to SOL
+      IF(RCNTRL(19) == 0.D0)THEN
+         WorkSol=1.D0
+      ELSE
+         WorkSol=RCNTRL(19)
+      END IF
+      WorkRow=WorkFcn+WorkSol
+
+!~~~>  Check if tolerances are reasonable
+      IF (ITOL == 0) THEN
+         IF (AbsTol(1) <= 0.D0.OR.RelTol(1) <= 10.D0*Roundoff) THEN
+            PRINT * , ' Scalar AbsTol = ',AbsTol(1)
+            PRINT * , ' Scalar RelTol = ',RelTol(1)
+            CALL SEULEX_ErrorMsg(-9,Tinitial,ZERO,IERR)
+         END IF
+      ELSE
+         DO i=1,N
+            IF (AbsTol(i) <= 0.D0.OR.RelTol(i) <= 10.D0*Roundoff) THEN
+              PRINT * , ' AbsTol(',i,') = ',AbsTol(i)
+              PRINT * , ' RelTol(',i,') = ',RelTol(i)
+              CALL SEULEX_ErrorMsg(-9,Tinitial,ZERO,IERR)
+            END IF
+         END DO
+      END IF
+    
+    IF (IERR < 0) RETURN
+       
+!~~~>---- PREPARE THE ENTRY-POINTS FOR THE ARRAYS IN WORK -----
+      Ncolumns2=(Ncolumns*(Ncolumns+1))/2
+      NRD=MAX(1,NRDENS)
+
+      T = Tinitial
+!~~~> CALL TO CORE INTEGRATOR 
+      CALL SEULEX_Integrator(N,T,Tfinal,Y,Hmax,H,Ncolumns,RelTol,AbsTol,ITOL,  &
+                IOUT,IERR,Max_no_steps,Roundoff,Nsequence,AUTNMS,  &
+                FAC1,FAC2,FAC3,FAC4,ThetaMin,FacSafe1,FacSafe2,WorkJac,  &
+                WorkDec,WorkRow,Ncolumns2,NRD,LAMBDA,Nstp)
+        
+      ISTATUS(1)=Nfun
+      ISTATUS(2)=Njac
+      ISTATUS(3)=Nstp
+      ISTATUS(4)=Nacc
+      ISTATUS(5)=Nrej
+      ISTATUS(6)=Ndec
+      ISTATUS(7)=Nsol
+
+      END SUBROUTINE ATMSEULEX
+      
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE SEULEX_ErrorMsg(Code,T,H,IERR)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!    Handles all error messages
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+   KPP_REAL, INTENT(IN) :: T, H
+   INTEGER, INTENT(IN)  :: Code
+   INTEGER, INTENT(OUT) :: IERR
+
+   IERR = Code
+   PRINT * , &
+     'Forced exit from SEULEX due to the following error:'
+
+   SELECT CASE (Code)
+    CASE (-1)
+      PRINT * , '--> Improper value for maximal no of steps'
+    CASE (-2)
+      PRINT * , '--> Improper value for maximum no of columns in extrapolation'
+    CASE (-3)
+      PRINT * , '--> Improper value for step size sequence'
+    CASE (-4)
+      PRINT * , '--> Improper value for Lambda (must be 0/1)'
+    CASE (-5)
+      PRINT * , '--> Improper number of dense output components'
+    CASE (-6)
+      PRINT * , '--> Improper parameters for second order equations'
+    CASE (-7)
+      PRINT * , '--> Hmin/Hmax/Hstart must be positive'
+    CASE (-8)
+      PRINT * , '--> FacMin/FacMax/FacRej must be positive'
+    CASE (-9)
+      PRINT * , '--> Improper tolerance values'
+    CASE (-10)
+      PRINT * , '--> No of steps exceeds maximum bound'
+    CASE (-11)
+      PRINT * , '--> Step size too small: T + 10*H = T', &
+            ' or H < Roundoff'
+    CASE (-12)
+      PRINT * , '--> Matrix is repeatedly singular'
+    CASE DEFAULT
+      PRINT *, 'Unknown Error code: ', Code
+   END SELECT
+
+   PRINT *, "T=", T, "and H=", H
+
+ END SUBROUTINE SEULEX_ErrorMsg
+      
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE SEULEX_Integrator(N,T,Tend,Y,Hmax,H,Ncolumns,RelTol,AbsTol,ITOL,&
+       IOUT,IERR,Max_no_steps,Roundoff,Nsequence,AUTNMS,             &
+       FAC1,FAC2,FAC3,FAC4,ThetaMin,FacSafe1,FacSafe2,WorkJac,       &
+       WorkDec,WorkRow,Ncolumns2,NRD,LAMBDA,Nstp)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!     CORE INTEGRATOR FOR SEULEX
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!         DECLARATIONS
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+       USE KPP_ROOT_Parameters
+       USE KPP_ROOT_Jacobian
+       IMPLICIT KPP_REAL (A-H,O-Z)
+       IMPLICIT INTEGER (I-N)
+
+       INTEGER ::  N, Ncolumns, Ncolumns2, K, KC, KRIGHT, KLR, KK, KRN,&
+       KOPT, NRD
+       KPP_REAL ::  Y(NVAR),DY(NVAR),FX(NVAR),YHH(NVAR)
+       KPP_REAL ::  DYH(NVAR), DEL(NVAR), WH(NVAR)
+       KPP_REAL ::  SCAL(NVAR), HH(Ncolumns), W(Ncolumns), A(Ncolumns)
+#ifdef FULL_ALGEBRA    
+       KPP_REAL :: FJAC(NVAR,NVAR)
+#else       
+       KPP_REAL :: FJAC(LU_NONZERO)
+#endif       
+       KPP_REAL Table(Ncolumns,N)
+       INTEGER IP(N),NJ(Ncolumns),IPHES(N),ICOMP(NRD)
+       KPP_REAL RelTol(*),AbsTol(*)
+       KPP_REAL FSAFE(Ncolumns2,NRD),FACUL(Ncolumns),E(N,N),DENS((Ncolumns+2)*NRD)
+       LOGICAL REJECT,LAST,ATOV,CALJAC,CALHES,AUTNMS
+
+       KPP_REAL TOLDD,HHH,NNRD
+       COMMON /COSEU/TOLDD,HHH,NNRD,KRIGHT
+
+!~~~> COMPUTE COEFFICIENTS FOR DENSE OUTPUT
+       IF (IOUT == 2) THEN
+          NNRD=NRD
+!~~~> COMPUTE THE FACTORIALS --------
+          FACUL(1)=1.D0
+          DO i=1,Ncolumns-1
+             FACUL(i+1)=i*FACUL(i)
+          END DO
+       END IF
+
+!~~~> DEFINE THE STEP SIZE SEQUENCE
+       IF (Nsequence == 1) THEN
+           NJ(1)=1
+           NJ(2)=2
+           NJ(3)=3
+           DO I=4,Ncolumns
+              NJ(i)=2*NJ(I-2)
+           END DO
+       END IF
+       IF (Nsequence == 2) THEN
+           NJ(1)=2
+           NJ(2)=3
+           DO I=3,Ncolumns
+              NJ(i)=2*NJ(I-2)
+           END DO
+       END IF
+       DO i=1,Ncolumns
+          IF (Nsequence == 3) NJ(i)=I
+          IF (Nsequence == 4) NJ(i)=I+1
+       END DO
+       A(1)=WorkJac+NJ(1)*WorkRow+WorkDec
+       DO I=2,Ncolumns
+          A(i)=A(i-1)+(NJ(i)-1)*WorkRow+WorkDec
+       END DO
+       K=MAX0(3,MIN0(Ncolumns-2,INT(-DLOG10(RelTol(1)+AbsTol(1))*.6D0+1.5D0)))
+       
+       ! T = Tinitial
+       HmaxN = MIN(ABS(Hmax),ABS(Tend-T))
+       IF (ABS(H) <= 10.D0*Roundoff) H=1.0D-6
+       H=MIN(ABS(H),HmaxN)
+       Theta=2*ABS(ThetaMin)
+       ERR=0.D0
+       W(1)=1.D30
+       DO i=1,N
+          IF (ITOL == 0) THEN
+            SCAL(i)=AbsTol(1)+RelTol(1)*DABS(Y(i))
+          ELSE
+            SCAL(i)=AbsTol(i)+RelTol(i)*DABS(Y(i))
+          END IF
+       END DO
+       CALJAC=.FALSE.
+       REJECT=.FALSE.
+       LAST=.FALSE.
+   10  CONTINUE
+       IF (REJECT) Theta=2*ABS(ThetaMin)
+       ATOV=.FALSE.
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> IS Tend REACHED IN THE NEXT STEP?
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+       H1=Tend-T
+       IF (H1 <= Roundoff) GO TO 110
+       HOPT=H
+       H=MIN(H,H1,HmaxN)
+       IF (H >= H1-Roundoff) LAST=.TRUE.
+       IF (AUTNMS) THEN
+          CALL FUN_CHEM(T,Y,DY)
+       END IF
+       IF (Theta > ThetaMin.AND..NOT.CALJAC) THEN
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!  COMPUTATION OF THE JACOBIAN
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+          CALL JAC_CHEM(T,Y,FJAC)
+          CALJAC=.TRUE.
+          CALHES=.FALSE.
+       END IF
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> THE FIRST AND LAST STEP
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IF (Nstp == 0.OR.LAST) THEN
+        IPT=0
+        Nstp=Nstp+1
+        DO J=1,K
+         KC=J
+         CALL SEUL(J,N,T,Y,DY,FX,FJAC,LFJAC,E,LE,IP,H,Ncolumns, &
+                  HmaxN,Table,SCAL,NJ,HH,W,A,YHH,DYH,DEL,WH,ERR,FacSafe1,FAC, &
+                  FAC1,FAC2,FacSafe2,Theta,Nfun,Ndec,Nsol, &
+                  ERROLD,IPHES,ICOMP,AUTNMS,REJECT, &
+                  ATOV,FSAFE,Ncolumns2,NRD,IOUT,IPT,CALHES)
+         IF (ATOV) GOTO 10
+         IF (J > 1 .AND. ERR <= 1.d0) GOTO 60
+        END DO
+        GO TO 55
+      END IF
+!~~~> BASIC INTEGRATION STEP
+   30 CONTINUE
+      IPT=0
+      Nstp=Nstp+1
+      IF (Nstp >= Max_no_steps) GOTO 120
+      KC=K-1
+      DO J=1,KC
+       CALL SEUL(J,N,T,Y,DY,FX,FJAC,LFJAC,E,LE,IP,H,Ncolumns,&
+                HmaxN,Table,SCAL,NJ,HH,W,A,YHH,DYH,DEL,WH,ERR,FacSafe1,&
+                FAC,FAC1,FAC2,FacSafe2,Theta,Nfun,Ndec,Nsol,&
+                ERROLD,IPHES,ICOMP,AUTNMS,REJECT,&
+                ATOV,FSAFE,Ncolumns2,NRD,IOUT,IPT,CALHES)
+       IF (ATOV) GOTO 10
+      END DO
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> CONVERGENCE MONITOR
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IF (K == 2.OR.REJECT) GO TO 50
+      IF (ERR <= 1.D0) GO TO 60
+      IF (ERR > DBLE(NJ(K+1)*NJ(K))*4.D0) GO TO 100
+   50 CALL SEUL(K,N,T,Y,DY,FX,FJAC,LFJAC,E,LE,IP,H,Ncolumns,&
+                HmaxN,Table,SCAL,NJ,HH,W,A,YHH,DYH,DEL,WH,ERR,FacSafe1,&
+                FAC,FAC1,FAC2,FacSafe2,Theta,Nfun,Ndec,Nsol,&
+                ERROLD,IPHES,ICOMP,AUTNMS,REJECT,&
+                ATOV,FSAFE,Ncolumns2,NRD,IOUT,IPT,CALHES)
+      IF (ATOV) GOTO 10
+      KC=K
+      IF (ERR <= 1.D0) GO TO 60
+!~~~> HOPE FOR CONVERGENCE IN LINE K+1
+   55 IF (ERR > DBLE(NJ(K+1))*2.D0) GO TO 100
+      KC=K+1
+      CALL SEUL(KC,N,T,Y,DY,FX,FJAC,LFJAC,E,LE,IP,H,Ncolumns,&
+                HmaxN,Table,SCAL,NJ,HH,W,A,YHH,DYH,DEL,WH,ERR,FacSafe1,&
+                FAC,FAC1,FAC2,FacSafe2,Theta,Nfun,Ndec,Nsol,&
+                ERROLD,IPHES,ICOMP,AUTNMS,REJECT,&
+                ATOV,FSAFE,Ncolumns2,NRD,IOUT,IPT,CALHES)
+      IF (ATOV) GOTO 10
+      IF (ERR > 1.D0) GO TO 100
+      !Adi IF ((ERR > 1.D0).and.(H.gt.Hmin)) GO TO 100
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> STEP IS ACCEPTED
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   60 TOLD=T
+      T=T+H
+      IF (IOUT == 2) THEN
+         KRIGHT=KC
+         DO i=1,NRD
+            DENS(i)=Y(ICOMP(i))
+         END DO
+      END IF
+      DO i=1,N
+         T1I=Table(1,I)
+         IF (ITOL == 0) THEN
+            SCAL(i)=AbsTol(1)+RelTol(1)*DABS(T1I)
+         ELSE
+            SCAL(i)=AbsTol(i)+RelTol(i)*DABS(T1I)
+         END IF
+         Y(i)=T1I
+      END DO
+      Nacc=Nacc+1
+      CALJAC=.FALSE.
+      IF (IOUT == 2) THEN
+         TOLDD=TOLD
+         HHH=H
+         DO i=1,NRD
+            DENS(NRD+I)=Y(ICOMP(i))
+         END DO
+         DO KLR=1,KRIGHT-1
+!~~~> COMPUTE DIFFERENCES
+            IF (KLR >= 2) THEN
+               DO KK=KLR,KC
+                  LBEG=((KK+1)*KK)/2
+                  LEND=LBEG-KK+2
+                  DO L=LBEG,LEND,-1
+                     DO i=1,NRD
+                        FSAFE(L,I)=FSAFE(L,I)-FSAFE(L-1,I)
+                     END DO
+                  END DO
+               END DO
+             END IF
+!~~~> COMPUTE DERIVATIVES AT RIGHT END ----
+             DO KK=KLR+LAMBDA,KC
+                FACNJ=NJ(KK)
+                FACNJ=FACNJ**KLR/FACUL(KLR+1)
+                IPT=((KK+1)*KK)/2
+                DO  I=1,NRD
+                   KRN=(KK-LAMBDA+1)*NRD
+                   DENS(KRN+I)=FSAFE(IPT,I)*FACNJ
+                END DO
+             END DO
+             DO J=KLR+LAMBDA+1,KC
+               DBLENJ=NJ(J)
+               DO L=J,KLR+LAMBDA+1,-1
+                 FACTOR=DBLENJ/NJ(L-1)-1.D0
+                 DO i=1,NRD
+                   KRN=(L-LAMBDA+1)*NRD+I
+                   DENS(KRN-NRD)=DENS(KRN)+(DENS(KRN)-DENS(KRN-NRD))/FACTOR
+                 END DO
+               END DO
+             END DO
+         END DO
+!~~~>  COMPUTE THE COEFFICIENTS OF THE INTERPOLATION POLYNOMIAL
+         DO IN=1,NRD
+            DO J=1,KRIGHT
+               II=NRD*J+IN
+               DENS(II)=DENS(II)-DENS(II-NRD)
+            END DO
+         END DO
+      END IF
+!~~~> COMPUTE OPTIMAL ORDER
+      IF (KC == 2) THEN
+         KOPT=3
+         IF (REJECT) KOPT=2
+         GO TO 80
+      END IF
+      IF (KC <= K) THEN
+         KOPT=KC
+         IF (W(KC-1) < W(KC)*FAC3) KOPT=KC-1
+         IF (W(KC) < W(KC-1)*FAC4) KOPT=MIN0(KC+1,Ncolumns-1)
+      ELSE
+         KOPT=KC-1
+         IF (KC > 3.AND.W(KC-2) < W(KC-1)*FAC3) KOPT=KC-2
+         IF (W(KC) < W(KOPT)*FAC4) KOPT=MIN0(KC,Ncolumns-1)
+      END IF
+!~~~> AFTER A REJECTED STEP
+   80 IF (REJECT) THEN
+         K=MIN0(KOPT,KC)
+         H=MIN(H,HH(K))
+         REJECT=.FALSE.
+         GO TO 10
+      END IF
+!~~~> COMPUTE STEP SIZE FOR NEXT STEP
+      IF (KOPT <= KC) THEN
+         H=HH(KOPT)
+      ELSE
+         IF (KC < K.AND.W(KC) < W(KC-1)*FAC4) THEN
+            H=HH(KC)*A(KOPT+1)/A(KC)
+         ELSE
+            H=HH(KC)*A(KOPT)/A(KC)
+         END IF
+      END IF
+      K=KOPT
+      !Adi H = MAX(H, Hmin)
+      GO TO 10
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> STEP IS REJECTED
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  100 K=MIN0(K,KC)
+      IF (K > 2.AND.W(K-1) < W(K)*FAC3) K=K-1
+      Nrej=Nrej+1
+      H=HH(K)
+      LAST=.FALSE.
+      REJECT=.TRUE.
+      IF (CALJAC) GOTO 30
+      GO TO 10
+!~~~> SOLUTION EXIT
+  110 CONTINUE
+      H=HOPT
+      IERR=1
+      RETURN
+!~~~> FAIL EXIT
+  120 WRITE (6,979) T,H
+  979 FORMAT(' EXIT OF SEULEX AT T=',D14.7,'   H=',D14.7)
+      IERR=-1
+      RETURN
+                                                      
+                             
+      END SUBROUTINE SEULEX_Integrator
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE SEUL(JJ,N,T,Y,DY,FX,FJAC,LFJAC,E,LE,IP,&
+               H,Ncolumns,HmaxN,Table,SCAL,NJ,HH,W,A,YH,DYH,DEL,WH,ERR,FacSafe1, &
+               FAC,FAC1,FAC2,FacSafe2,Theta,Nfun,Ndec,Nsol,&
+               ERROLD,IPHES,ICOMP,                             &
+               AUTNMS,REJECT,ATOV,FSAFE,Ncolumns2,NRD,IOUT,    &
+               IPT,CALHES)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> THIS SUBROUTINE COMPUTES THE J-TH LINE OF THE
+!~~~> EXTRAPOLATION TABLE AND PROVIDES AN ESTIMATE
+!~~~> OF THE OPTIMAL STEP SIZE
+      USE KPP_ROOT_Parameters
+      USE KPP_ROOT_Jacobian
+      IMPLICIT KPP_REAL (A-H,O-Z)
+      IMPLICIT INTEGER (I-N)
+      INTEGER :: Ncolumns, Ncolumns2, N, NRD
+      KPP_REAL :: Y(NVAR),YH(NVAR),DY(NVAR),FX(NVAR),DYH(NVAR)
+      KPP_REAL :: DEL(NVAR),WH(NVAR),SCAL(NVAR),HH(Ncolumns),W(Ncolumns),A(Ncolumns)
+#ifdef FULL_ALGEBRA    
+      KPP_REAL :: FJAC(NVAR,NVAR), E(NVAR,NVAR)
+#else
+      KPP_REAL :: FJAC(LU_NONZERO), E(LU_NONZERO)
+#endif      
+      KPP_REAL :: Table(Ncolumns,NVAR)
+      KPP_REAL :: FSAFE(Ncolumns2,NRD)
+      INTEGER :: IP(N),NJ(Ncolumns),IPHES(N),ICOMP(NRD)
+      LOGICAL ATOV,REJECT,AUTNMS,CALHES
+      
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!  COMPUTE THE MATRIX E AND ITS DECOMPOSITION
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      HJ=H/NJ(JJ)
+      HJI=1.D0/HJ
+#ifdef FULL_ALGEBRA    
+      DO j=1,N
+        DO  i=1,N
+           E(i,j)=-FJAC(i,j)
+        END DO
+        E(j,j)=E(j,j)+HJI
+      END DO
+      CALL DGETRF(N,N,E,N,IP,ISING)
+#else
+      DO  i=1,LU_NONZERO
+         E(i)=-FJAC(i)
+      END DO
+      DO j=1,N
+         E(LU_DIAG(j))=E(LU_DIAG(j))+HJI
+      END DO
+      CALL KppDecomp (E,ISING)
+#endif      
+      Ndec=Ndec+1
+      IF (ISING.NE.0) GOTO 79
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> STARTING PROCEDURE
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+       IF (.NOT.AUTNMS) THEN
+          CALL FUN_CHEM(T+HJ,Y,DY)
+       END IF
+       DO i=1,N
+          YH(i)=Y(i)
+          DEL(i)=DY(i)
+       END DO
+#ifdef FULL_ALGEBRA      
+       CALL DGETRS ('N',N,1,E,N,IP,DEL,N,ISING)
+#else
+       CALL KppSolve (E,DEL)
+#endif       
+       Nsol=Nsol+1
+       M=NJ(JJ)
+       IF (IOUT == 2.AND.M == JJ) THEN
+          IPT=IPT+1
+          DO i=1,NRD
+             FSAFE(IPT,I)=DEL(ICOMP(i))
+          END DO
+       END IF
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> SEMI-IMPLICIT EULER METHOD
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+       IF (M > 1) THEN
+          DO MM=1,M-1
+             DO i=1,N
+                YH(i)=YH(i)+DEL(i)
+             END DO
+             IF (AUTNMS) THEN
+                CALL FUN_CHEM(T+HJ*MM,YH,DYH)
+             ELSE
+                CALL FUN_CHEM(T+HJ*(MM+1),YH,DYH)
+             END IF
+             
+             IF (MM == 1.AND.JJ <= 2) THEN
+!~~~> STABILITY CHECK
+                DEL1=0.D0
+                DO i=1,N
+                   DEL1=DEL1+(DEL(i)/SCAL(i))**2
+                END DO
+                DEL1=SQRT(DEL1)
+                IF (.NOT.AUTNMS) THEN
+                   CALL FUN_CHEM(T+HJ,YH,WH)
+                   
+                   DO i=1,N
+                      DEL(i)=WH(i)-DEL(i)*HJI
+                   END DO
+                ELSE
+                   DO i=1,N
+                      DEL(i)=DYH(i)-DEL(i)*HJI
+                   END DO
+                END IF
+#ifdef FULL_ALGEBRA      
+                CALL DGETRS ('N',N,1,E,N,IP,DEL,N,ISING)
+#else
+                CALL KppSolve (E,DEL)
+#endif
+                Nsol=Nsol+1
+                DEL2=0.D0
+                DO i=1,N
+                   DEL2=DEL2+(DEL(i)/SCAL(i))**2
+                END DO
+                DEL2=SQRT(DEL2)
+                Theta=DEL2/MAX(1.D0,DEL1)
+                IF (Theta > 1.D0) GOTO 79
+             END IF
+#ifdef FULL_ALGEBRA      
+             CALL DGETRS ('N',N,1,E,N,IP,DYH,N,ISING)
+#else
+             CALL KppSolve (E,DYH)
+#endif             
+             Nsol=Nsol+1
+             DO i=1,N
+                DEL(i)=DYH(i)
+             END DO
+             IF (IOUT == 2.AND.MM >= M-JJ) THEN
+                IPT=IPT+1
+                DO i=1,NRD
+                   FSAFE(IPT,i)=DEL(ICOMP(i))
+                END DO
+             END IF
+          END DO
+       END IF
+       DO i=1,N
+          Table(JJ,I)=YH(i)+DEL(i)
+       END DO
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> POLYNOMIAL EXTRAPOLATION
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+       IF (JJ == 1) RETURN
+       DO L=JJ,2,-1
+          FAC=(DBLE(NJ(JJ))/DBLE(NJ(L-1)))-1.D0
+          DO i=1,N
+             Table(L-1,I)=Table(L,I)+(Table(L,I)-Table(L-1,I))/FAC
+          END DO
+       END DO
+       ERR=0.D0
+       DO i=1,N
+          ERR=ERR+MIN(ABS((Table(1,I)-Table(2,I)))/SCAL(i),1.D15)**2
+       END DO
+       IF (ERR >= 1.D30) GOTO 79
+       ERR=SQRT(ERR/DBLE(N))
+       IF (JJ > 2.AND.ERR >= ERROLD) GOTO 79
+       ERROLD=MAX(4*ERR,1.D0)
+!~~~> COMPUTE OPTIMAL STEP SIZES
+       EXPO=1.D0/JJ
+       FACMIN=FAC1**EXPO
+       FAC=MIN(FAC2/FACMIN,MAX(FACMIN,(ERR/FacSafe1)**EXPO/FacSafe2))
+       FAC=1.D0/FAC
+       HH(JJ)=MIN(H*FAC,HmaxN)
+       W(JJ)=A(JJ)/HH(JJ)
+       RETURN
+   79  ATOV=.TRUE.
+       H=H*0.5D0
+       REJECT=.TRUE.
+       RETURN
+      END SUBROUTINE SEUL
+
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE FUN_CHEM( T, V, FCT )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+    USE KPP_ROOT_Parameters
+    USE KPP_ROOT_Global
+    USE KPP_ROOT_Function, ONLY: Fun
+    USE KPP_ROOT_Rates, ONLY: Update_SUN, Update_RCONST, Update_PHOTO
+
+    IMPLICIT NONE
+
+    KPP_REAL :: V(NVAR), FCT(NVAR)
+    KPP_REAL :: T, TOLD
+
+    !TOLD = TIME
+    !TIME = T
+    !CALL Update_SUN()
+    !CALL Update_RCONST()
+    !CALL Update_PHOTO()
+    !TIME = TOLD
+    CALL Fun(V, FIX, RCONST, FCT)
+    Nfun=Nfun+1
+
+  END SUBROUTINE FUN_CHEM
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE JAC_CHEM ( T, V, Jcb )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+    USE KPP_ROOT_Parameters
+    USE KPP_ROOT_Global
+    USE KPP_ROOT_Jacobian, ONLY: Jac_SP
+    USE KPP_ROOT_Rates, ONLY: Update_SUN, Update_RCONST, Update_PHOTO
+
+    IMPLICIT NONE
+
+    KPP_REAL :: V(NVAR), T, TOLD
+#ifdef FULL_ALGEBRA    
+    KPP_REAL :: JV(LU_NONZERO), Jcb(NVAR,NVAR)
+    INTEGER :: i,j
+#else
+    KPP_REAL :: Jcb(LU_NONZERO)
+#endif   
+
+    !TOLD = TIME
+    !TIME = T
+    !CALL Update_SUN()
+    !CALL Update_RCONST()
+    !CALL Update_PHOTO()
+    !TIME = TOLD
+    
+#ifdef FULL_ALGEBRA    
+    CALL Jac_SP(V, FIX, RCONST, JV)
+    DO j=1,NVAR
+      DO i=1,NVAR
+         Jcb(i,j) = 0.0D0
+      END DO
+    END DO
+    DO i=1,LU_NONZERO
+       Jcb(LU_IROW(i),LU_ICOL(i)) = JV(i)
+    END DO
+#else
+    CALL Jac_SP(V, FIX, RCONST, Jcb) 
+#endif   
+    Njac=Njac+1
+    
+  END SUBROUTINE JAC_CHEM
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+END MODULE KPP_ROOT_Integrator
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/exqssa.c
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/exqssa.c	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/exqssa.c	(revision 2696)
@@ -0,0 +1,90 @@
+void INTEGRATE( double DT )
+{
+KPP_REAL P_VAR[NVAR], D_VAR[NVAR], V1[NVAR], V2[NVAR];
+int IsReject;
+KPP_REAL T, Tnext, STEP, STEPold, Told, SUP;
+KPP_REAL ERR, ERRold, ratio, factor, facmax, tmp;
+int i;
+
+  T = TIME;
+  Tnext = TIME + DT;
+  STEP = STEPMIN;
+  Told = T;
+  SUP  = 1e-14;
+  IsReject = 0;
+  ERR = .5;
+  
+/* -- BELOW THIS LIMIT USE TAYLOR INSTEAD OF EXP --- */
+
+  while ( T < Tnext ) {
+   
+    T = Told + STEP;
+    if ( T > Tnext ) {
+      STEP = Tnext - Told;
+      T = Tnext;
+    }
+
+    FSPLIT_VAR ( VAR,  P_VAR, D_VAR );
+
+    for( i = 0; i < NVAR; i++ ) {
+      if ( fabs(D_VAR[i]) > SUP ) {
+        ratio = P_VAR[i] / D_VAR[i];
+        tmp = (KPP_REAL)exp( (double)(-D_VAR[i] * STEP * 0.5) );
+        V1[i] = tmp * tmp * (VAR[i] - ratio) + ratio;
+        V2[i] = tmp * (VAR[i] - ratio) + ratio;
+      } else {
+        tmp = D_VAR[i] * STEP * 0.5;
+        V1[i] = VAR[i] + P_VAR[i] * STEP * ( 1 - tmp *
+               ( 1 - 2.0 / 3.0 * tmp ) );
+        V2[i] = VAR[i] + P_VAR[i] * 0.5 * STEP * ( 1 - 0.5 * tmp *
+               ( 1 - 1.0 / 3.0 * tmp ) );
+      }
+    }
+
+    FSPLIT_VAR( V2,  P_VAR, D_VAR );
+
+    for( i = 0; i < NVAR; i++ ) {
+      if ( fabs(D_VAR[i]) > SUP ) {
+        ratio = P_VAR[i] / D_VAR[i];
+        tmp = (KPP_REAL)exp( (double)(-D_VAR[i] * STEP * 0.5) );
+        V2[i] = tmp * (V2[i] - ratio) + ratio;
+      } else {
+        tmp = D_VAR[i] * STEP * 0.5;
+        V2[i] = V2[i] + P_VAR[i] * 0.5 * STEP * ( 1 - 0.5 * tmp *
+               ( 1 - 1.0 / 3.0 * tmp ) );
+      }
+    }
+/* ==== Extrapolation and error estimation ======== */
+
+    ERRold=ERR;
+    ERR=0.;
+    for( i = 0; i < NVAR; i++ ) {
+      V1[i] = 2.*V2[i] - V1[i];
+      tmp = (V2[i] - V1[i]) / (ATOL[i] + RTOL[i]*V2[i]); 
+      ERR = ERR + tmp*tmp;
+    }
+    ERR = sqrt(ERR/NVAR);
+    STEPold = STEP;
+
+/* ===== choosing the stepsize ==================== */
+
+    factor = 0.9 / pow(ERR,0.35) * pow(ERRold,0.2);
+    facmax = IsReject ? 1.0 : 5.0;
+
+    factor = max( 0.2, min(factor,facmax) );
+    STEP = min( STEPMAX, max(STEPMIN,factor*STEP) );
+
+/*================================================= */
+
+    if ( (ERR > 1) && (STEPold > STEPMIN) ) {
+      T = Told;
+      IsReject = 1;
+    } else {
+      IsReject = 0;
+      Told = T;
+      for( i = 0; i < NVAR; i++ ) 
+        VAR[i] = max( V1[i], 0.0 );
+      TIME = Tnext;
+    }
+  }
+}
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/exqssa.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/exqssa.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/exqssa.def	(revision 2696)
@@ -0,0 +1,16 @@
+ 
+#FUNCTION SPLIT
+#JACOBIAN OFF
+#SPARSEDATA OFF
+#DOUBLE ON
+#INTFILE exqssa
+
+#INLINE F_INIT_INT
+        STEPMIN=0.0001
+        STEPMAX=60.
+#ENDINLINE
+
+#INLINE C_INIT_INT
+  STEPMIN=0.0001;
+  STEPMAX=60.;
+#ENDINLINE
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/exqssa.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/exqssa.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/exqssa.f	(revision 2696)
@@ -0,0 +1,136 @@
+C -- EXTRAPOLATED QSSA WITH STEADY STATE APPROXIMATION --
+C    For extrapolated plain QSSA (to remove the steady state assumption)
+C    modify slow -> 0, fast -> 1e20
+C
+
+      SUBROUTINE INTEGRATE( TIN, TOUT  ) 
+
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+
+C TIN - Start Time
+      KPP_REAL TIN
+C TOUT - End Time
+      KPP_REAL TOUT
+
+C Local variables
+      KPP_REAL P_VAR(NVAR), D_VAR(NVAR), V1(NVAR), V2(NVAR)
+      LOGICAL IsReject
+      KPP_REAL T, Tnext, STEP, STEPold, Told, SUP
+      KPP_REAL ERR, ERRold, ratio, factor, facmax, tmp
+      INTEGER i
+      KPP_REAL slow, fast
+
+      T = TIN
+      Tnext = TOUT
+      STEP = DMAX1(STEPMIN,1.d-10)
+      Told = T
+      SUP  = 1e-14
+      IsReject = .false.
+      ERR = 1.d0
+      ERRold = 1.d0
+      slow = 0.01
+      fast = 10.  
+
+ 10    continue  
+       Tplus = T + STEP
+       if ( Tplus .gt. Tnext ) then
+          STEP = Tnext - T
+          Tplus = Tnext
+       end if
+
+
+        TITI = TIME
+        TIME = T
+        CALL Update_SUN() 
+        CALL Update_RCONST()
+        TIME = TITI
+        CALL FSPLIT_VAR ( VAR,  P_VAR, D_VAR )
+
+        do i=1,NVAR
+          IF ( D_VAR(i)*STEP .lt. slow) THEN       ! SLOW SPECIES
+             XXX = STEP * (P_VAR(i) - D_VAR(i)*VAR(i))
+             V1(i) = VAR(i) + XXX
+             V2(i) = VAR(i) + 0.5*XXX
+          ELSE IF ( D_VAR(i)*STEP .GT. fast) THEN  ! FAST SPECIES
+             V1(i) = P_VAR(i)/D_VAR(i)
+             V2(i) = V1(i)
+          ELSE                                    ! MEDIUM LIVED
+            if ( abs(D_VAR(i)).gt.SUP ) then
+              ratio = P_VAR(i)/D_VAR(i)
+              tmp = exp(-D_VAR(i)*STEP*0.5)
+              V1(i) = tmp * tmp * (VAR(i) - ratio) + ratio
+              V2(i) = tmp * (VAR(i) - ratio) + ratio
+            else
+              tmp = D_VAR(i) * STEP * 0.5
+              V1(i) = VAR(i) + P_VAR(i) * STEP * ( 1 - tmp *
+     *             ( 1 - 2.0 / 3.0 * tmp ) )
+              V2(i) = VAR(i) + P_VAR(i) * 0.5 * STEP*( 1-0.5*tmp*
+     *             ( 1 - 1.0 / 3.0 * tmp ) )
+              end if
+          END IF
+        end do
+
+        TITI = TIME
+        TIME = T + 0.5*STEP
+        CALL Update_SUN() 
+        CALL Update_RCONST()
+        TIME = TITI
+        CALL FSPLIT_VAR ( V2,  P_VAR, D_VAR )
+
+        do i=1,NVAR
+          IF ( D_VAR(i)*STEP .lt. slow) THEN       ! SLOW SPECIES
+             XXX = STEP * (P_VAR(i) - D_VAR(i)*VAR(i))
+             V2(i) = V2(i) + 0.5*XXX
+          ELSE IF ( D_VAR(i)*STEP .GT. fast) THEN  ! FAST SPECIES
+             V2(i) = P_VAR(i)/D_VAR(i)
+          ELSE                                    ! MEDIUM LIVED
+            if ( abs(D_VAR(i)).gt.SUP ) then
+              ratio = P_VAR(i)/D_VAR(i)
+              tmp = exp(-D_VAR(i)*STEP*0.5)
+              V2(i) = tmp * (V2(i) - ratio) + ratio
+            else
+              tmp = D_VAR(i) * STEP * 0.5
+              V2(i) = V2(i) + P_VAR(i) * 0.5 * STEP * ( 1 - 0.5 * tmp *
+     *             ( 1 - 1.0 / 3.0 * tmp ) )
+            end if
+          END IF
+        end do
+
+C ===== Extrapolation and error estimation ========
+
+        ERRold=ERR
+        ERR=0.0D0
+          do i=1,NVAR
+             ERR = ERR + ((V2(i)-V1(i))/(ATOL(i) + RTOL(i)*V2(i)))**2
+          end do       
+        ERR = DSQRT( ERR/NVAR )
+        STEPold=STEP
+
+C ===== choosing the stepsize =====================
+
+        factor = 0.9*ERR**(-0.35)*ERRold**0.2
+        if (IsReject) then
+            facmax=1.
+        else
+            facmax=8.
+        end if 
+        factor = DMAX1( 1.25D-1, DMIN1(factor,facmax) )
+        STEP = DMIN1( STEPMAX, DMAX1(STEPMIN,factor*STEP) )    
+
+C===================================================
+
+        if ( (ERR.gt.1).and.(STEPold.gt.STEPMIN) ) then
+          IsReject = .true.
+        else
+          IsReject = .false.
+          do 140 i=1,NVAR
+             VAR(i)  = DMAX1(2*V2(i)-V1(i), 0.d0)
+ 140      continue 
+          T = Tplus     
+        end if
+      if ( T .lt. Tnext ) go to 10
+
+      TIME = Tnext
+      RETURN 
+      END        
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/kpp_rodas.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/kpp_rodas.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/kpp_rodas.def	(revision 2696)
@@ -0,0 +1,23 @@
+ 
+#FUNCTION AGGREGATE
+#JACOBIAN SPARSE_LU_ROW
+
+#DOUBLE ON 
+#INTFILE kpp_rodas
+
+#INLINE F_DECL_INT
+      INTEGER Autonomous
+      COMMON /INTGDATA/ Autonomous
+      REAL*8 STEPSTART
+      COMMON /GDATA/ STEPSTART
+#ENDINLINE
+
+#INLINE F_INIT_INT
+        STEPMIN=0.0001
+        STEPMAX=3600.
+        Autonomous = 0
+        STEPSTART=STEPMIN
+#ENDINLINE
+
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/kpp_rodas.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/kpp_rodas.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/kpp_rodas.f	(revision 2696)
@@ -0,0 +1,647 @@
+      SUBROUTINE INTEGRATE( TIN, TOUT )
+         
+      IMPLICIT KPP_REAL (A-H,O-Z)	 
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+
+C TIN - Start Time
+      KPP_REAL TIN
+C TOUT - End Time
+      KPP_REAL TOUT
+      INTEGER i
+      
+      PARAMETER (LWORK=2*NVAR*NVAR+14*NVAR+20,LIWORK=NVAR+20)
+      KPP_REAL WORK(LWORK)
+      INTEGER IWORK(LIWORK)
+      EXTERNAL FUNC_CHEM,JAC_CHEM
+
+
+      ITOL=1     ! --- VECTOR TOLERANCES 
+      IJAC=1     ! --- COMPUTE THE JACOBIAN ANALYTICALLY
+      MLJAC=NVAR ! --- JACOBIAN IS A FULL MATRIX
+      MUJAC=NVAR ! --- JACOBIAN IS A FULL MATRIX
+      IMAS=0     ! --- DIFFERENTIAL EQUATION IS IN EXPLICIT FORM
+      IOUT=0     ! --- OUTPUT ROUTINE IS NOT USED DURING INTEGRATION
+      IDFX=0     ! --- INTERNAL TIME DERIVATIVE
+
+      DO i=1,20
+        IWORK(i) = 0
+        WORK(i) = 0.D0
+      ENDDO
+
+      IWORK(3) = 1
+
+      CALL ATMRODAS(NVAR,FUNC_CHEM,Autonomous,TIN,VAR,TOUT,
+     &                  STEPMIN,RTOL,ATOL,ITOL,
+     &                  JAC_CHEM,IJAC,MLJAC,MUJAC,FUNC_CHEM,IDFX,
+     &                  FUNC_CHEM,IMAS,
+     &                  WORK,LWORK,IWORK,LIWORK,IDID)
+
+      IF (IDID.LT.0) THEN
+        print *,'ATMRODAS: Unsucessfull exit at T=',
+     &          TIN,' (IDID=',IDID,')'
+      ENDIF
+
+
+      RETURN
+      END
+
+
+      SUBROUTINE ATMRODAS(N,FCN,IFCN,X,Y,XEND,H,
+     &                  RelTol,AbsTol,ITOL,
+     &                  JAC ,IJAC,MLJAC,MUJAC,DFX,IDFX,
+     &                  MAS ,IMAS,
+     &                  WORK,LWORK,IWORK,LIWORK,IDID)
+C ----------------------------------------------------------
+C     NUMERICAL SOLUTION OF A STIFF (OR DIFFERENTIAL ALGEBRAIC)
+C     SYSTEM OF FIRST 0RDER ORDINARY DIFFERENTIAL EQUATIONS  MY'=F(X,Y).
+C     THIS IS AN EMBEDDED ROSENBROCK METHOD OF ORDER (3)4  
+C     (WITH STEP SIZE CONTROL).
+C     C.F. SECTIONS IV.7  AND VI.3
+C
+C     AUTHORS: E. HAIRER AND G. WANNER
+C              UNIVERSITE DE GENEVE, DEPT. DE MATHEMATIQUES
+C              CH-1211 GENEVE 24, SWITZERLAND 
+C              E-MAIL:  HAIRER@DIVSUN.UNIGE.CH,  WANNER@DIVSUN.UNIGE.CH
+C --------------------------------------------------------- 
+C *** *** *** *** *** *** *** *** *** *** *** *** ***
+C          DECLARATIONS 
+C *** *** *** *** *** *** *** *** *** *** *** *** ***
+      IMPLICIT KPP_REAL (A-H,O-Z)
+      DIMENSION Y(N),AbsTol(*),RelTol(*),WORK(LWORK),IWORK(LIWORK)
+      LOGICAL AUTNMS,IMPLCT,JBAND,ARRET,PRED
+      EXTERNAL FCN,JAC,DFX,MAS
+      COMMON /STATISTICS/ NFCN,NACCPT,NREJCT,NSTEP,NJAC,NDEC,NSOL
+C *** *** *** *** *** *** ***
+C        SETTING THE PARAMETERS 
+C *** *** *** *** *** *** ***
+      ARRET=.FALSE.
+      METH = 1
+      NMAX=100000
+C -------- PRED   STEP SIZE CONTROL
+      IF(IWORK(3).LE.1)THEN
+         PRED=.TRUE.
+      ELSE
+         PRED=.FALSE.
+      END IF
+      UROUND=1.D-16
+      NM1 = N
+      M1  = N
+      M2  = N
+C -------- MAXIMAL STEP SIZE
+      IF(WORK(2).EQ.0.D0)THEN
+         HMAX=XEND-X
+      ELSE
+         HMAX=WORK(2)
+      END IF
+C -------  FAC1,FAC2     PARAMETERS FOR STEP SIZE SELECTION
+      IF(WORK(3).EQ.0.D0)THEN
+         FAC1=5.D0
+      ELSE
+         FAC1=1.D0/WORK(3)
+      END IF
+      IF(WORK(4).EQ.0.D0)THEN
+         FAC2=1.D0/6.0D0
+      ELSE
+         FAC2=1.D0/WORK(4)
+      END IF
+      IF (FAC1.LT.1.0D0.OR.FAC2.GT.1.0D0) THEN
+            WRITE(6,*)' CURIOUS INPUT WORK(3,4)=',WORK(3),WORK(4)
+            ARRET=.TRUE.
+         END IF
+C --------- SAFE     SAFETY FACTOR IN STEP SIZE PREDICTION
+      SAFE=0.9D0
+C --------- CHECK IF TOLERANCES ARE O.K.
+      IF (ITOL.EQ.0) THEN
+          IF (AbsTol(1).LE.0.D0.OR.RelTol(1).LE.10.D0*UROUND) THEN
+              WRITE (6,*) ' TOLERANCES ARE TOO SMALL'
+              ARRET=.TRUE.
+          END IF
+      ELSE
+          DO I=1,N
+             IF (AbsTol(I).LE.0.D0.OR.RelTol(I).LE.10.D0*UROUND) THEN
+                WRITE (6,*) ' TOLERANCES(',I,') ARE TOO SMALL'
+                ARRET=.TRUE.
+             END IF
+          END DO
+      END IF
+      
+      IF (ARRET) STOP
+      NM1 = N
+C *** *** *** *** *** *** *** *** *** *** *** *** ***
+C         COMPUTATION OF ARRAY ENTRIES
+C *** *** *** *** *** *** *** *** *** *** *** *** ***
+C ---- AUTONOMOUS, IMPLICIT, BANDED OR NOT ?
+      AUTNMS=IFCN.EQ.0
+      IMPLCT=IMAS.NE.0
+      JBAND=MLJAC.LT.NM1
+C -------- COMPUTATION OF THE ROW-DIMENSIONS OF THE 2-ARRAYS ---
+C -- JACOBIAN AND MATRIX E
+         MLJAC=NM1
+         MUJAC=NM1
+         LDJAC=NM1
+         LDE=NM1
+C -- MASS MATRIX
+      IF (IMPLCT) THEN
+         print *, 'Implicit 1'
+      ELSE
+         LDMAS=0
+         IJOB=1
+      END IF
+      LDMAS2=MAX(1,LDMAS)
+C ------- PREPARE THE ENTRY-POINTS FOR THE ARRAYS IN WORK -----
+      IEYNEW=21
+      IEDY1=IEYNEW+N
+      IEDY=IEDY1+N
+      IEAK1=IEDY+N
+      IEAK2=IEAK1+N
+      IEAK3=IEAK2+N
+      IEAK4=IEAK3+N
+      IEAK5=IEAK4+N
+      IEAK6=IEAK5+N
+      IEFX =IEAK6+N
+      IECON=IEFX+N
+      IEJAC=IECON+4*N
+      IEMAS=IEJAC+N*LDJAC
+      IEE  =IEMAS+NM1*LDMAS
+C ------ TOTAL STORAGE REQUIREMENT -----------
+      ISTORE=IEE+NM1*LDE-1
+      IF(ISTORE.GT.LWORK)THEN
+         WRITE(6,*)' INSUFFICIENT STORAGE FOR WORK, MIN. LWORK=',ISTORE
+         ARRET=.TRUE.
+      END IF
+C ------- ENTRY POINTS FOR INTEGER WORKSPACE -----
+      IEIP=21
+      ISTORE=IEIP+NM1-1
+      IF(ISTORE.GT.LIWORK)THEN
+         WRITE(6,*)' INSUFF. STORAGE FOR IWORK, MIN. LIWORK=',ISTORE
+         ARRET=.TRUE.
+      END IF
+C ------ WHEN A FAIL HAS OCCURED, WE RETURN WITH IDID=-1
+      IF (ARRET) THEN
+         IDID=-1
+         RETURN
+      END IF
+C -------- CALL TO CORE INTEGRATOR ------------
+      CALL ROSCOR(N,FCN,X,Y,XEND,HMAX,H,RelTol,AbsTol,ITOL,JAC,IJAC,
+     &   MLJAC,MUJAC,DFX,IDFX,MAS,MLMAS,MUMAS,IOUT,IDID,NMAX,
+     &   UROUND,METH,IJOB,FAC1,FAC2,SAFE,AUTNMS,IMPLCT,JBAND,PRED,LDJAC,
+     &   LDE,LDMAS2,WORK(IEYNEW),WORK(IEDY1),WORK(IEDY),WORK(IEAK1),
+     &   WORK(IEAK2),WORK(IEAK3),WORK(IEAK4),WORK(IEAK5),WORK(IEAK6),
+     &   WORK(IEFX),WORK(IEJAC),WORK(IEE),WORK(IEMAS),IWORK(IEIP),
+     &   WORK(IECON),
+     &   M1,M2,NM1,NFCN,NJAC,NSTEP,NACCPT,NREJCT,NDEC,NSOL)
+      IWORK(14)=NFCN
+      IWORK(15)=NJAC
+      IWORK(16)=NSTEP
+      IWORK(17)=NACCPT
+      IWORK(18)=NREJCT
+      IWORK(19)=NDEC
+      IWORK(20)=NSOL
+C ----------- RETURN -----------
+      RETURN
+      END
+C
+C
+C
+C  ----- ... AND HERE IS THE CORE INTEGRATOR  ----------
+C
+      SUBROUTINE ROSCOR(N,FCN,X,Y,XEND,HMAX,H,RelTol,AbsTol,
+     &  ITOL,JAC,IJAC,
+     &  MLJAC,MUJAC,DFX,IDFX,MAS,MLMAS,MUMAS,IOUT,IDID,NMAX,
+     &  UROUND,METH,IJOB,FAC1,FAC2,SAFE,AUTNMS,IMPLCT,BANDED,
+     &  PRED,LDJAC,
+     &  LDE,LDMAS,YNEW,DY1,DY,AK1,AK2,AK3,AK4,AK5,AK6,
+     &  FX,FJAC,E,FMAS,IP,CONT,
+     &  M1,M2,NM1,NFCN,NJAC,NSTEP,NACCPT,NREJCT,NDEC,NSOL)
+C ----------------------------------------------------------
+C     CORE INTEGRATOR FOR RODAS
+C     PARAMETERS SAME AS IN RODAS WITH WORKSPACE ADDED 
+C ---------------------------------------------------------- 
+C         DECLARATIONS 
+C ---------------------------------------------------------- 
+      IMPLICIT KPP_REAL (A-H,O-Z)	 
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_sparse.h'
+      DIMENSION Y(N),YNEW(N),DY1(N),DY(N),AK1(N),
+     *  AK2(N),AK3(N),AK4(N),AK5(N),AK6(N),FX(N),
+     *  FJAC(LU_NONZERO),E(LDE,NM1),FMAS(LDMAS,NM1),
+     *  AbsTol(*),RelTol(*)
+      DIMENSION CONT(4*N)
+      INTEGER IP(NM1)
+      LOGICAL REJECT,AUTNMS,IMPLCT,BANDED
+      LOGICAL ONE,LAST,PRED,SINGULAR
+      EXTERNAL FCN, MAS, JAC, DFX
+      COMMON/LINAL/MLE,MUE,MBJAC,MBB,MDIAG,MDIFF,MBDIAG
+      COMMON /CONROS/XOLD,HOUT,NN
+C *** *** *** *** *** *** ***
+C  INITIALISATIONS
+C *** *** *** *** *** *** *** 
+      NN=N 
+      NN2=2*N
+      NN3=3*N
+      LRC=4*N
+C ------- COMPUTE MASS MATRIX FOR IMPLICIT CASE ----------
+      IF (IMPLCT) CALL MAS (NM1,FMAS,LDMAS)
+C ------ SET THE PARAMETERS OF THE METHOD -----
+      CALL ROCOE(METH,A21,A31,A32,A41,A42,A43,A51,A52,A53,A54,
+     &    C21,C31,C32,C41,C42,C43,C51,C52,C53,C54,C61,
+     &    C62,C63,C64,C65,GAMMA,C2,C3,C4,D1,D2,D3,D4,
+     &    D21,D22,D23,D24,D25,D31,D32,D33,D34,D35)
+C --- INITIAL PREPARATIONS
+      IF (M1.GT.0) IJOB=IJOB+10
+      POSNEG=SIGN(1.D0,XEND-X)
+      HMAXN=DMIN1(DABS(HMAX),DABS(XEND-X))
+      IF (DABS(H).LE.10.D0*UROUND) H=1.0D-6
+      H=DMIN1(DABS(H),HMAXN) 
+      H=SIGN(H,POSNEG) 
+      HACC = H
+      ERRACC = 1.0d0
+      REJECT=.FALSE.
+      LAST=.FALSE.
+      NSING=0
+      IRTRN=1
+      IF (AUTNMS) THEN
+         HD1=0.0D0
+         HD2=0.0D0
+         HD3=0.0D0
+         HD4=0.0D0
+      END IF
+C -------- PREPARE BAND-WIDTHS --------
+      MBDIAG=MUMAS+1
+
+C --- BASIC INTEGRATION STEP 
+      LAST = .FALSE.
+      DO WHILE (.NOT.LAST) 
+      IF (.NOT. REJECT) THEN
+      IF (NSTEP.GT.NMAX) CALL FAIL_EXIT(3,X,IDID,H,NMAX) 
+      IF ( 0.1D0*DABS(H) .LE. DABS(X)*UROUND )
+     *       CALL FAIL_EXIT(2,X,IDID,H,NMAX)
+      HOPT=H
+      IF ((X+H*1.0001D0-XEND)*POSNEG.GE.0.D0) THEN
+         H=XEND-X
+         LAST=.TRUE.
+      END IF
+C *** *** *** *** *** *** ***
+C  COMPUTATION OF THE JACOBIAN
+C *** *** *** *** *** *** ***
+      CALL FCN(N,X,Y,DY1)
+      CALL JAC(N,X,Y,FJAC,LDJAC)
+      NFCN=NFCN+1
+      NJAC=NJAC+1
+
+      IF (.NOT.AUTNMS) THEN
+C --- COMPUTE NUMERICALLY THE DERIVATIVE WITH RESPECT TO X
+            DELT=DSQRT(UROUND*DMAX1(1.D-5,DABS(X)))
+            XDELT=X+DELT
+            CALL FCN(N,XDELT,Y,AK1)
+            DO J=1,N
+               FX(J)=(AK1(J)-DY1(J))/DELT
+            END DO
+      END IF
+      END IF
+
+C *** *** *** *** *** *** ***
+C  COMPUTE THE STAGES
+C *** *** *** *** *** *** ***
+      SINGULAR = .TRUE.
+      DO WHILE (SINGULAR)
+        FAC=1.D0/(H*GAMMA)
+        CALL DECOMR(N,FJAC,LDJAC,FMAS,LDMAS,MLMAS,MUMAS,
+     &            M1,M2,NM1,FAC,E,LDE,IP,IER,IJOB,IMPLCT,IP)
+        SINGULAR = IER.NE.0
+        IF (SINGULAR) THEN
+          NSING=NSING+1
+          IF (NSING.GE.5) CALL FAIL_EXIT(1,X,IDID,H,NMAX)
+          H=H*0.5D0
+          REJECT=.TRUE.
+          LAST=.FALSE.
+          ONE = .FALSE.
+        END IF 
+      END DO
+
+      NDEC=NDEC+1
+C --- PREPARE FOR THE COMPUTATION OF THE 6 STAGES
+      HC21=C21/H
+      HC31=C31/H
+      HC32=C32/H
+      HC41=C41/H
+      HC42=C42/H
+      HC43=C43/H
+      HC51=C51/H
+      HC52=C52/H
+      HC53=C53/H
+      HC54=C54/H
+      HC61=C61/H
+      HC62=C62/H
+      HC63=C63/H
+      HC64=C64/H
+      HC65=C65/H
+      IF (.NOT.AUTNMS) THEN
+         HD1=H*D1
+         HD2=H*D2
+         HD3=H*D3
+         HD4=H*D4
+      END IF
+C --- THE STAGES
+      CALL SLVROD(N,FJAC,LDJAC,MLJAC,MUJAC,FMAS,LDMAS,MLMAS,MUMAS,
+     &    M1,M2,NM1,FAC,E,LDE,IP,DY1,AK1,FX,YNEW,HD1,IJOB,.FALSE.)
+      DO  I=1,N
+         YNEW(I)=Y(I)+A21*AK1(I)
+      END DO
+      CALL FCN(N,X+C2*H,YNEW,DY)
+      DO I=1,N
+         YNEW(I)=HC21*AK1(I)
+      END DO
+      CALL SLVROD(N,FJAC,LDJAC,MLJAC,MUJAC,FMAS,LDMAS,MLMAS,MUMAS,
+     &    M1,M2,NM1,FAC,E,LDE,IP,DY,AK2,FX,YNEW,HD2,IJOB,.TRUE.)
+      DO I=1,N
+         YNEW(I)=Y(I)+A31*AK1(I)+A32*AK2(I) 
+      END DO
+      CALL FCN(N,X+C3*H,YNEW,DY)
+      DO I=1,N
+         YNEW(I)=HC31*AK1(I)+HC32*AK2(I)
+      END DO
+      CALL SLVROD(N,FJAC,LDJAC,MLJAC,MUJAC,FMAS,LDMAS,MLMAS,MUMAS,
+     &    M1,M2,NM1,FAC,E,LDE,IP,DY,AK3,FX,YNEW,HD3,IJOB,.TRUE.)
+      DO I=1,N
+         YNEW(I)=Y(I)+A41*AK1(I)+A42*AK2(I)+A43*AK3(I)
+      END DO
+      CALL FCN(N,X+C4*H,YNEW,DY)
+      DO I=1,N
+         YNEW(I)=HC41*AK1(I)+HC42*AK2(I)+HC43*AK3(I) 
+      END DO
+      CALL SLVROD(N,FJAC,LDJAC,MLJAC,MUJAC,FMAS,LDMAS,MLMAS,MUMAS,
+     &    M1,M2,NM1,FAC,E,LDE,IP,DY,AK4,FX,YNEW,HD4,IJOB,.TRUE.)
+      DO I=1,N
+         YNEW(I)=Y(I)+A51*AK1(I)+A52*AK2(I)+A53*AK3(I)+A54*AK4(I)
+      END DO
+      CALL FCN(N,X+H,YNEW,DY)
+      DO I=1,N
+         AK6(I)=HC52*AK2(I)+HC54*AK4(I)+HC51*AK1(I)+HC53*AK3(I) 
+      END DO
+      CALL SLVROD(N,FJAC,LDJAC,MLJAC,MUJAC,FMAS,LDMAS,MLMAS,MUMAS,
+     &    M1,M2,NM1,FAC,E,LDE,IP,DY,AK5,FX,AK6,0.D0,IJOB,.TRUE.)
+C ------------ EMBEDDED SOLUTION ---------------
+      DO I=1,N
+         YNEW(I)=YNEW(I)+AK5(I)  
+      END DO
+      CALL FCN(N,X+H,YNEW,DY)
+      DO I=1,N
+         AK5(I)=HC61*AK1(I)+HC62*AK2(I)+HC65*AK5(I)
+     &              +HC64*AK4(I)+HC63*AK3(I) 
+      END DO
+      CALL SLVROD(N,FJAC,LDJAC,MLJAC,MUJAC,FMAS,LDMAS,MLMAS,MUMAS,
+     &    M1,M2,NM1,FAC,E,LDE,IP,DY,AK6,FX,AK5,0.D0,IJOB,.TRUE.)
+C ------------ NEW SOLUTION ---------------
+      DO  I=1,N
+         YNEW(I)=YNEW(I)+AK6(I)  
+      END DO
+      NSOL=NSOL+6
+      NFCN=NFCN+5 
+
+C *** *** *** *** *** *** ***
+C  ERROR ESTIMATION  
+C *** *** *** *** *** *** ***
+      NSTEP=NSTEP+1
+C ------------ COMPUTE ERROR ESTIMATION ----------------
+      ERR=0.0D0
+      DO I=1,N
+         IF (ITOL.EQ.0) THEN
+            SK=AbsTol(1)+RelTol(1)*DMAX1(DABS(Y(I)),DABS(YNEW(I)))
+         ELSE
+            SK=AbsTol(I)+RelTol(I)*DMAX1(DABS(Y(I)),DABS(YNEW(I)))
+         END IF
+         ERR=ERR+(AK6(I)/SK)**2
+c2           ERR = DMAX1(ERR, AK6(I)/SK)
+      END DO
+      ERR=DSQRT(ERR/N)
+      
+C --- COMPUTATION OF HNEW
+C --- WE REQUIRE .2<=HNEW/H<=6.
+      FAC=DMAX1(FAC2,DMIN1(FAC1,(ERR)**0.25D0/SAFE))
+      HNEW=DMAX1(H/FAC, STEPMIN)  
+
+C *** *** *** *** *** *** ***
+C  IS THE ERROR SMALL ENOUGH ?
+C *** *** *** *** *** *** ***
+
+      IF ( (ERR.LE.1.D0).or.(H.LE.STEPMIN) ) THEN
+C --- STEP IS ACCEPTED  
+         NACCPT=NACCPT+1
+         IF (PRED) THEN
+C       --- PREDICTIVE CONTROLLER OF GUSTAFSSON
+            IF (NACCPT.GT.1) THEN
+               FACGUS=(HACC/H)*(ERR**2/ERRACC)**0.25D0/SAFE
+               FACGUS=DMAX1(FAC2,DMIN1(FAC1,FACGUS))
+               FAC=DMAX1(FAC,FACGUS)
+               HNEW=DMAX1(H/FAC, STEPMIN)
+            END IF
+            HACC=H
+            ERRACC=DMAX1(1.0D-2,ERR)
+         END IF
+         DO I=1,N 
+            Y(I)=YNEW(I)
+         END DO
+         XOLD=X 
+         X=X+H
+         IF (DABS(HNEW).GT.HMAXN) HNEW=POSNEG*HMAXN
+         IF (REJECT) HNEW=POSNEG*DMIN1(DABS(HNEW),DABS(H)) 
+         REJECT=.FALSE.
+         H=HNEW
+      ELSE
+C --- STEP IS REJECTED  
+         REJECT=.TRUE.
+         LAST=.FALSE.
+         H=HNEW
+         IF (NACCPT.GE.1) NREJCT=NREJCT+1
+      END IF
+      END DO
+      RETURN
+      END 
+C
+      SUBROUTINE FAIL_EXIT(NERR,X,IDID,H,NMAX)
+      INTEGER NERR, NMAX
+      KPP_REAL X, H
+      GO TO (1,2,3,4) NERR
+ 1    CONTINUE
+      WRITE(6,979)X   
+      WRITE(6,*) ' MATRIX IS REPEATEDLY SINGULAR, IER=',IER
+      IDID=-4
+      STOP
+ 2    CONTINUE
+      WRITE(6,979)X   
+      WRITE(6,*) ' STEP SIZE TOO SMALL, H=',H
+      IDID=-3
+      STOP
+ 3    CONTINUE
+      WRITE(6,979)X   
+      WRITE(6,*) ' MORE THAN NMAX =',NMAX,'STEPS ARE NEEDED' 
+      IDID=-2
+      STOP
+C --- EXIT CAUSED BY solout
+ 4    CONTINUE
+      WRITE(6,979)X
+ 979  FORMAT(' EXIT OF RODAS AT X=',E18.4) 
+      IDID=2
+      RETURN
+      END
+      
+      SUBROUTINE ROCOE(METH,A21,A31,A32,A41,A42,A43,A51,A52,A53,A54,
+     &  C21,C31,C32,C41,C42,C43,C51,C52,C53,C54,C61,
+     &  C62,C63,C64,C65,GAMMA,C2,C3,C4,D1,D2,D3,D4,
+     &  D21,D22,D23,D24,D25,D31,D32,D33,D34,D35)
+      IMPLICIT KPP_REAL (A-H,O-Z)
+
+      if (METH.ne.1) print *, 'WRONG CHOICE OF METHOD'
+        C2=0.386D0
+        C3=0.21D0 
+        C4=0.63D0
+        BET2P=0.0317D0
+        BET3P=0.0635D0
+        BET4P=0.3438D0 
+       D1= 0.2500000000000000D+00
+       D2=-0.1043000000000000D+00
+       D3= 0.1035000000000000D+00
+       D4=-0.3620000000000023D-01
+       A21= 0.1544000000000000D+01
+       A31= 0.9466785280815826D+00
+       A32= 0.2557011698983284D+00
+       A41= 0.3314825187068521D+01
+       A42= 0.2896124015972201D+01
+       A43= 0.9986419139977817D+00
+       A51= 0.1221224509226641D+01
+       A52= 0.6019134481288629D+01
+       A53= 0.1253708332932087D+02
+       A54=-0.6878860361058950D+00
+       C21=-0.5668800000000000D+01
+       C31=-0.2430093356833875D+01
+       C32=-0.2063599157091915D+00
+       C41=-0.1073529058151375D+00
+       C42=-0.9594562251023355D+01
+       C43=-0.2047028614809616D+02
+       C51= 0.7496443313967647D+01
+       C52=-0.1024680431464352D+02
+       C53=-0.3399990352819905D+02
+       C54= 0.1170890893206160D+02
+       C61= 0.8083246795921522D+01
+       C62=-0.7981132988064893D+01
+       C63=-0.3152159432874371D+02
+       C64= 0.1631930543123136D+02
+       C65=-0.6058818238834054D+01
+       GAMMA= 0.2500000000000000D+00  
+
+       D21= 0.1012623508344586D+02
+       D22=-0.7487995877610167D+01
+       D23=-0.3480091861555747D+02
+       D24=-0.7992771707568823D+01
+       D25= 0.1025137723295662D+01
+       D31=-0.6762803392801253D+00
+       D32= 0.6087714651680015D+01
+       D33= 0.1643084320892478D+02
+       D34= 0.2476722511418386D+02
+       D35=-0.6594389125716872D+01
+      RETURN
+      END
+C
+
+C ******************************************
+C     VERSION OF SEPTEMBER 18, 1995      
+C ******************************************
+C
+      SUBROUTINE DECOMR(N,FJAC,LDJAC,FMAS,LDMAS,MLMAS,MUMAS,
+     &            M1,M2,NM1,FAC1,E1,LDE1,IP1,IER,IJOB,CALHES,IPHES)
+      IMPLICIT KPP_REAL (A-H,O-Z)	 
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_sparse.h'
+      DIMENSION FJAC(LU_NONZERO),FMAS(LDMAS,NM1),E1(LU_NONZERO),
+     &          IP1(NM1),IPHES(N)
+      LOGICAL CALHES
+      COMMON/LINAL/MLE,MUE,MBJAC,MBB,MDIAG,MDIFF,MBDIAG
+C
+
+
+C ---  B=IDENTITY, JACOBIAN A FULL MATRIX
+      DO J=1,LU_NONZERO
+         E1(J) = -FJAC(J)
+      END DO
+      DO J=1,N
+         E1(LU_DIAG(J)) = E1(LU_DIAG(J)) + FAC1
+      END DO
+      CALL KppDecomp (E1,IER)
+      RETURN
+      END
+C
+C     END OF SUBROUTINE DECOMR
+C
+C ***********************************************************
+C
+C
+C
+C
+      SUBROUTINE SLVROD(N,FJAC,LDJAC,MLJAC,MUJAC,FMAS,LDMAS,MLMAS,MUMAS,
+     &          M1,M2,NM1,FAC1,E,LDE,IP,DY,AK,FX,YNEW,HD,IJOB,STAGE1)
+      IMPLICIT KPP_REAL (A-H,O-Z)	 
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_sparse.h'
+      DIMENSION FJAC(LU_NONZERO),FMAS(LDMAS,NM1),E(LU_NONZERO),
+     &          IP(NM1),DY(N),AK(N),FX(N),YNEW(N)
+      LOGICAL STAGE1
+      COMMON/LINAL/MLE,MUE,MBJAC,MBB,MDIAG,MDIFF,MBDIAG
+C
+      IF (HD.EQ.0.D0) THEN
+         DO  I=1,N
+           AK(I)=DY(I)
+         END DO
+      ELSE
+         DO I=1,N
+            AK(I)=DY(I)+HD*FX(I)
+         END DO
+      END IF
+
+C ---  B=IDENTITY, JACOBIAN A FULL MATRIX
+      IF (STAGE1) THEN
+         DO I=1,N
+            AK(I)=AK(I)+YNEW(I)
+         END DO
+      END IF
+      CALL KppSolve (E,AK)
+      RETURN
+      END
+C
+C     END OF SUBROUTINE SLVROD
+C
+C
+C ***********************************************************
+
+ 
+      SUBROUTINE FUNC_CHEM(N, T, Y, P)
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+      INTEGER N
+      KPP_REAL   T, Told
+      KPP_REAL   Y(NVAR), P(NVAR)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Fun( Y,  FIX, RCONST, P )
+      TIME = Told
+      RETURN
+      END
+
+ 
+      SUBROUTINE JAC_CHEM(N, T, Y, J)
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+      INTEGER N
+      KPP_REAL   Told, T
+      KPP_REAL   Y(NVAR), J(LU_NONZERO)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Jac_SP( Y,  FIX, RCONST, J )
+      TIME = Told
+      RETURN
+      END                                                                                                                 
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/kpp_ros4.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/kpp_ros4.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/kpp_ros4.def	(revision 2696)
@@ -0,0 +1,23 @@
+ 
+#FUNCTION AGGREGATE
+#JACOBIAN SPARSE_LU_ROW
+
+#DOUBLE ON 
+#INTFILE kpp_ros4
+
+#INLINE F77_DECL_INT
+      INTEGER Autonomous
+      COMMON /INTGDATA/ Autonomous
+      REAL*8 STEPSTART
+      COMMON /GDATA/ STEPSTART
+#ENDINLINE
+
+#INLINE F77_INIT_INT
+        STEPMIN=0.0001
+        STEPMAX=3600.
+        Autonomous = 1 
+        STEPSTART=STEPMIN
+#ENDINLINE
+
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/kpp_ros4.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/kpp_ros4.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/kpp_ros4.f	(revision 2696)
@@ -0,0 +1,1052 @@
+      SUBROUTINE INTEGRATE( TIN, TOUT )
+
+      IMPLICIT KPP_REAL (A-H,O-Z)	 
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+
+C TIN - Start Time
+      KPP_REAL TIN
+C TOUT - End Time
+      KPP_REAL TOUT
+      INTEGER i
+
+      PARAMETER (LWORK=2*NVAR*NVAR+14*NVAR+20,LIWORK=NVAR+20)
+      KPP_REAL WORK(LWORK)
+      INTEGER IWORK(LIWORK)
+      EXTERNAL FUNC_CHEM,JAC_CHEM,SOLOUT
+
+      ITOL=1     ! --- VECTOR TOLERANCES
+      IJAC=1     ! --- COMPUTE THE JACOBIAN ANALYTICALLY
+      MLJAC=NVAR ! --- JACOBIAN IS A FULL MATRIX
+      MUJAC=NVAR ! --- JACOBIAN IS A FULL MATRIX
+      IMAS=0     ! --- DIFFERENTIAL EQUATION IS IN EXPLICIT FORM
+      IOUT=0     ! --- OUTPUT ROUTINE IS NOT USED DURING INTEGRATION
+      IDFX=0     ! --- INTERNAL TIME DERIVATIVE
+
+      DO i=1,20
+        IWORK(i) = 0
+        WORK(i) = 0.D0
+      ENDDO
+      IWORK(2) = 6
+
+      CALL KPP_ROS4(NVAR,FUNC_CHEM,Autonomous,TIN,VAR,TOUT,
+     &                  STEPMIN,RTOL,ATOL,ITOL,
+     &                  JAC_CHEM,IJAC,MLJAC,MUJAC,FUNC_CHEM,IDFX,
+     &                  FUNC_CHEM,IMAS,MLJAC,MUJAC,
+     &                  SOLOUT,IOUT,
+     &                  WORK,LWORK,IWORK,LIWORK,IDID)
+
+      IF (IDID.LT.0) THEN
+        print *,'KPP_ROS4: Unsucessful step at T=',
+     &          TIN,' (IDID=',IDID,')'
+      ENDIF
+
+      RETURN
+      END
+
+
+      SUBROUTINE KPP_ROS4(N,FCN,IFCN,X,Y,XEND,H,
+     &                  RelTol,AbsTol,ITOL,
+     &                  JAC ,IJAC,MLJAC,MUJAC,DFX,IDFX,
+     &                  MAS ,IMAS,MLMAS,MUMAS,
+     &                  SOLOUT,IOUT,
+     &                  WORK,LWORK,IWORK,LIWORK,IDID)
+C ----------------------------------------------------------
+C     NUMERICAL SOLUTION OF A STIFF (OR DIFFERENTIAL ALGEBRAIC)
+C     SYSTEM OF FIRST 0RDER ORDINARY DIFFERENTIAL EQUATIONS  MY'=F(X,Y).
+C     THIS IS AN EMBEDDED ROSENBROCK METHOD OF ORDER (3)4  
+C     (WITH STEP SIZE CONTROL).
+C     C.F. SECTION IV.7
+C
+C     AUTHORS: E. HAIRER AND G. WANNER
+C              UNIVERSITE DE GENEVE, DEPT. DE MATHEMATIQUES
+C              CH-1211 GENEVE 24, SWITZERLAND 
+C              E-MAIL:  HAIRER@CGEUGE51.BITNET,  WANNER@CGEUGE51.BITNET
+C     
+C     THIS CODE IS PART OF THE BOOK:
+C         E. HAIRER AND G. WANNER, SOLVING ORDINARY DIFFERENTIAL
+C         EQUATIONS II. STIFF AND DIFFERENTIAL-ALGEBRAIC PROBLEMS.
+C         SPRINGER SERIES IN COMPUTATIONAL MATHEMATICS,
+C         SPRINGER-VERLAG (1990)               
+C      
+C     VERSION OF NOVEMBER 17, 1992
+C
+C     INPUT PARAMETERS  
+C     ----------------  
+C     N           DIMENSION OF THE SYSTEM 
+C
+C     FCN         NAME (EXTERNAL) OF SUBROUTINE COMPUTING THE
+C                 VALUE OF F(X,Y):
+C                    SUBROUTINE FCN(N,X,Y,F)
+C                    KPP_REAL X,Y(N),F(N)
+C                    F(1)=...   ETC.
+C
+C     IFCN        GIVES INFORMATION ON FCN:
+C                    IFCN=0: F(X,Y) INDEPENDENT OF X (AUTONOMOUS)
+C                    IFCN=1: F(X,Y) MAY DEPEND ON X (NON-AUTONOMOUS)
+C
+C     X           INITIAL X-VALUE
+C
+C     Y(N)        INITIAL VALUES FOR Y
+C
+C     XEND        FINAL X-VALUE (XEND-X MAY BE POSITIVE OR NEGATIVE)
+C
+C     H           INITIAL STEP SIZE GUESS;
+C                 FOR STIFF EQUATIONS WITH INITIAL TRANSIENT, 
+C                 H=1.D0/(NORM OF F'), USUALLY 1.D-2 OR 1.D-3, IS GOOD.
+C                 THIS CHOICE IS NOT VERY IMPORTANT, THE CODE QUICKLY
+C                 ADAPTS ITS STEP SIZE. STUDY THE CHOSEN VALUES FOR A FEW
+C                 STEPS IN SUBROUTINE "SOLOUT", WHEN YOU ARE NOT SURE.
+C                 (IF H=0.D0, THE CODE PUTS H=1.D-6).
+C
+C     RelTol,AbsTol   RELATIVE AND ABSOLUTE ERROR TOLERANCES. THEY
+C                 CAN BE BOTH SCALARS OR ELSE BOTH VECTORS OF LENGTH N.
+C
+C     ITOL        SWITCH FOR RelTol AND AbsTol:
+C                   ITOL=0: BOTH RelTol AND AbsTol ARE SCALARS.
+C                     THE CODE KEEPS, ROUGHLY, THE LOCAL ERROR OF
+C                     Y(I) BELOW RelTol*ABS(Y(I))+AbsTol
+C                   ITOL=1: BOTH RelTol AND AbsTol ARE VECTORS.
+C                     THE CODE KEEPS THE LOCAL ERROR OF Y(I) BELOW
+C                     RelTol(I)*ABS(Y(I))+AbsTol(I).
+C
+C     JAC         NAME (EXTERNAL) OF THE SUBROUTINE WHICH COMPUTES
+C                 THE PARTIAL DERIVATIVES OF F(X,Y) WITH RESPECT TO Y
+C                 (THIS ROUTINE IS ONLY CALLED IF IJAC=1; SUPPLY
+C                 A DUMMY SUBROUTINE IN THE CASE IJAC=0).
+C                 FOR IJAC=1, THIS SUBROUTINE MUST HAVE THE FORM
+C                    SUBROUTINE JAC(N,X,Y,DFY,LDFY)
+C                    KPP_REAL X,Y(N),DFY(LDFY,N)
+C                    DFY(1,1)= ...
+C                 LDFY, THE COLOMN-LENGTH OF THE ARRAY, IS
+C                 FURNISHED BY THE CALLING PROGRAM.
+C                 IF (MLJAC.EQ.N) THE JACOBIAN IS SUPPOSED TO
+C                    BE FULL AND THE PARTIAL DERIVATIVES ARE
+C                    STORED IN DFY AS
+C                       DFY(I,J) = PARTIAL F(I) / PARTIAL Y(J)
+C                 ELSE, THE JACOBIAN IS TAKEN AS BANDED AND
+C                    THE PARTIAL DERIVATIVES ARE STORED
+C                    DIAGONAL-WISE AS
+C                       DFY(I-J+MUJAC+1,J) = PARTIAL F(I) / PARTIAL Y(J).
+C
+C     IJAC        SWITCH FOR THE COMPUTATION OF THE JACOBIAN:
+C                    IJAC=0: JACOBIAN IS COMPUTED INTERNALLY BY FINITE
+C                       DIFFERENCES, SUBROUTINE "JAC" IS NEVER CALLED.
+C                    IJAC=1: JACOBIAN IS SUPPLIED BY SUBROUTINE JAC.
+C
+C     MLJAC       SWITCH FOR THE BANDED STRUCTURE OF THE JACOBIAN:
+C                    MLJAC=N: JACOBIAN IS A FULL MATRIX. THE LINEAR
+C                       ALGEBRA IS DONE BY FULL-MATRIX GAUSS-ELIMINATION.
+C                    0<=MLJAC<N: MLJAC IS THE LOWER BANDWITH OF JACOBIAN 
+C                       MATRIX (>= NUMBER OF NON-ZERO DIAGONALS BELOW
+C                       THE MAIN DIAGONAL).
+C
+C     MUJAC       UPPER BANDWITH OF JACOBIAN  MATRIX (>= NUMBER OF NON-
+C                 ZERO DIAGONALS ABOVE THE MAIN DIAGONAL).
+C                 NEED NOT BE DEFINED IF MLJAC=N.
+C
+C     DFX         NAME (EXTERNAL) OF THE SUBROUTINE WHICH COMPUTES
+C                 THE PARTIAL DERIVATIVES OF F(X,Y) WITH RESPECT TO X
+C                 (THIS ROUTINE IS ONLY CALLED IF IDFX=1 AND IFCN=1;
+C                 SUPPLY A DUMMY SUBROUTINE IN THE CASE IDFX=0 OR IFCN=0).
+C                 OTHERWISE, THIS SUBROUTINE MUST HAVE THE FORM
+C                    SUBROUTINE DFX(N,X,Y,FX)
+C                    KPP_REAL X,Y(N),FX(N)
+C                    FX(1)= ...
+C                
+C     IDFX        SWITCH FOR THE COMPUTATION OF THE DF/DX:
+C                    IDFX=0: DF/DX IS COMPUTED INTERNALLY BY FINITE
+C                       DIFFERENCES, SUBROUTINE "DFX" IS NEVER CALLED.
+C                    IDFX=1: DF/DX IS SUPPLIED BY SUBROUTINE DFX.
+C
+C     ----   MAS,IMAS,MLMAS, AND MUMAS HAVE ANALOG MEANINGS      -----
+C     ----   FOR THE "MASS MATRIX" (THE MATRIX "M" OF SECTION IV.8): -
+C
+C     MAS         NAME (EXTERNAL) OF SUBROUTINE COMPUTING THE MASS-
+C                 MATRIX M.
+C                 IF IMAS=0, THIS MATRIX IS ASSUMED TO BE THE IDENTITY
+C                 MATRIX AND NEEDS NOT TO BE DEFINED;
+C                 SUPPLY A DUMMY SUBROUTINE IN THIS CASE.
+C                 IF IMAS=1, THE SUBROUTINE MAS IS OF THE FORM
+C                    SUBROUTINE MAS(N,AM,LMAS)
+C                    KPP_REAL AM(LMAS,N)
+C                    AM(1,1)= ....
+C                    IF (MLMAS.EQ.N) THE MASS-MATRIX IS STORED
+C                    AS FULL MATRIX LIKE
+C                         AM(I,J) = M(I,J)
+C                    ELSE, THE MATRIX IS TAKEN AS BANDED AND STORED
+C                    DIAGONAL-WISE AS
+C                         AM(I-J+MUMAS+1,J) = M(I,J).
+C
+C     IMAS       GIVES INFORMATION ON THE MASS-MATRIX:
+C                    IMAS=0: M IS SUPPOSED TO BE THE IDENTITY
+C                       MATRIX, MAS IS NEVER CALLED.
+C                    IMAS=1: MASS-MATRIX  IS SUPPLIED.
+C
+C     MLMAS       SWITCH FOR THE BANDED STRUCTURE OF THE MASS-MATRIX:
+C                    MLMAS=N: THE FULL MATRIX CASE. THE LINEAR
+C                       ALGEBRA IS DONE BY FULL-MATRIX GAUSS-ELIMINATION.
+C                    0<=MLMAS<N: MLMAS IS THE LOWER BANDWITH OF THE
+C                       MATRIX (>= NUMBER OF NON-ZERO DIAGONALS BELOW
+C                       THE MAIN DIAGONAL).
+C                 MLMAS IS SUPPOSED TO BE .LE. MLJAC.
+C
+C     MUMAS       UPPER BANDWITH OF MASS-MATRIX (>= NUMBER OF NON-
+C                 ZERO DIAGONALS ABOVE THE MAIN DIAGONAL).
+C                 NEED NOT BE DEFINED IF MLMAS=N.
+C                 MUMAS IS SUPPOSED TO BE .LE. MUJAC.
+C
+C     SOLOUT      NAME (EXTERNAL) OF SUBROUTINE PROVIDING THE
+C                 NUMERICAL SOLUTION DURING INTEGRATION. 
+C                 IF IOUT=1, IT IS CALLED AFTER EVERY SUCCESSFUL STEP.
+C                 SUPPLY A DUMMY SUBROUTINE IF IOUT=0. 
+C                 IT MUST HAVE THE FORM
+C                    SUBROUTINE SOLOUT (NR,XOLD,X,Y,N,IRTRN)
+C                    KPP_REAL X,Y(N)
+C                    ....  
+C                 SOLOUT FURNISHES THE SOLUTION "Y" AT THE NR-TH
+C                    GRID-POINT "X" (THEREBY THE INITIAL VALUE IS
+C                    THE FIRST GRID-POINT).
+C                 "IRTRN" SERVES TO INTERRUPT THE INTEGRATION. IF IRTRN
+C                    IS SET <0, ROS4 RETURNS TO THE CALLING PROGRAM.
+C           
+C     IOUT        GIVES INFORMATION ON THE SUBROUTINE SOLOUT:
+C                    IOUT=0: SUBROUTINE IS NEVER CALLED
+C                    IOUT=1: SUBROUTINE IS USED FOR OUTPUT
+C
+C     WORK        ARRAY OF WORKING SPACE OF LENGTH "LWORK".
+C                 SERVES AS WORKING SPACE FOR ALL VECTORS AND MATRICES.
+C                 "LWORK" MUST BE AT LEAST
+C                             N*(LJAC+LMAS+LE1+8)+5
+C                 WHERE
+C                    LJAC=N              IF MLJAC=N (FULL JACOBIAN)
+C                    LJAC=MLJAC+MUJAC+1  IF MLJAC<N (BANDED JAC.)
+C                 AND                  
+C                    LMAS=0              IF IMAS=0
+C                    LMAS=N              IF IMAS=1 AND MLMAS=N (FULL)
+C                    LMAS=MLMAS+MUMAS+1  IF MLMAS<N (BANDED MASS-M.)
+C                 AND
+C                    LE1=N               IF MLJAC=N (FULL JACOBIAN)
+C                    LE1=2*MLJAC+MUJAC+1 IF MLJAC<N (BANDED JAC.). 
+c
+C                 IN THE USUAL CASE WHERE THE JACOBIAN IS FULL AND THE
+C                 MASS-MATRIX IS THE INDENTITY (IMAS=0), THE MINIMUM
+C                 STORAGE REQUIREMENT IS 
+C                             LWORK = 2*N*N+8*N+5.
+C
+C     LWORK       DECLARED LENGHT OF ARRAY "WORK".
+C
+C     IWORK       INTEGER WORKING SPACE OF LENGTH "LIWORK".
+C                 "LIWORK" MUST BE AT LEAST N+2.
+C
+C     LIWORK      DECLARED LENGHT OF ARRAY "IWORK".
+C
+C ----------------------------------------------------------------------
+C 
+C     SOPHISTICATED SETTING OF PARAMETERS
+C     -----------------------------------
+C              SEVERAL PARAMETERS OF THE CODE ARE TUNED TO MAKE IT WORK 
+C              WELL. THEY MAY BE DEFINED BY SETTING WORK(1),..,WORK(5)
+C              AS WELL AS IWORK(1),IWORK(2) DIFFERENT FROM ZERO.
+C              FOR ZERO INPUT, THE CODE CHOOSES DEFAULT VALUES:
+C
+C    IWORK(1)  THIS IS THE MAXIMAL NUMBER OF ALLOWED STEPS.
+C              THE DEFAULT VALUE (FOR IWORK(1)=0) IS 100000.
+C
+C    IWORK(2)  SWITCH FOR THE CHOICE OF THE COEFFICIENTS
+C              IF IWORK(2).EQ.1  METHOD OF SHAMPINE
+C              IF IWORK(2).EQ.2  METHOD GRK4T OF KAPS-RENTROP
+C              IF IWORK(2).EQ.3  METHOD GRK4A OF KAPS-RENTROP
+C              IF IWORK(2).EQ.4  METHOD OF VAN VELDHUIZEN (GAMMA=1/2)
+C              IF IWORK(2).EQ.5  METHOD OF VAN VELDHUIZEN ("D-STABLE")
+C              IF IWORK(2).EQ.6  AN L-STABLE METHOD
+C              THE DEFAULT VALUE (FOR IWORK(2)=0) IS IWORK(2)=2.
+C
+C    WORK(1)   UROUND, THE ROUNDING UNIT, DEFAULT 1.D-16.
+C
+C    WORK(2)   MAXIMAL STEP SIZE, DEFAULT XEND-X.
+C
+C    WORK(3), WORK(4)   PARAMETERS FOR STEP SIZE SELECTION
+C              THE NEW STEP SIZE IS CHOSEN SUBJECT TO THE RESTRICTION
+C                 WORK(3) <= HNEW/HOLD <= WORK(4)
+C              DEFAULT VALUES: WORK(3)=0.2D0, WORK(4)=6.D0
+C
+C    WORK(5)   AVOID THE HUMP: AFTER TWO CONSECUTIVE STEP REJECTIONS
+C              THE STEP SIZE IS MULTIPLIED BY WORK(5)
+C              DEFAULT VALUES: WORK(5)=0.1D0
+C
+C-----------------------------------------------------------------------
+C
+C     OUTPUT PARAMETERS 
+C     ----------------- 
+C     X           X-VALUE WHERE THE SOLUTION IS COMPUTED
+C                 (AFTER SUCCESSFUL RETURN X=XEND)
+C
+C     Y(N)        SOLUTION AT X
+C  
+C     H           PREDICTED STEP SIZE OF THE LAST ACCEPTED STEP
+C
+C     IDID        REPORTS ON SUCCESSFULNESS UPON RETURN:
+C                   IDID=1  COMPUTATION SUCCESSFUL,
+C                   IDID=-1 COMPUTATION UNSUCCESSFUL.
+C
+C --------------------------------------------------------- 
+C *** *** *** *** *** *** *** *** *** *** *** *** ***
+C          DECLARATIONS 
+C *** *** *** *** *** *** *** *** *** *** *** *** ***
+      IMPLICIT KPP_REAL (A-H,O-Z)
+      DIMENSION Y(N),AbsTol(1),RelTol(1),WORK(LWORK),IWORK(LIWORK)
+      LOGICAL AUTNMS,IMPLCT,JBAND,ARRET
+      EXTERNAL FCN,JAC,DFX,MAS,SOLOUT
+      COMMON/STAT/NFCN,NJAC,NSTEP,NACCPT,NREJCT,NDEC,NSOL
+C -----------------------------------------------------
+C --- COMMON STAT CAN BE USED FOR STATISTICS
+C ---    NFCN      NUMBER OF FUNC_CHEMCTION EVALUATIONS (THOSE FOR NUMERICAL
+C                  EVALUATION OF THE JACOBIAN ARE NOT COUNTED)  
+C ---    NJAC      NUMBER OF JACOBIAN EVALUATIONS (EITHER ANALYTICALLY
+C                  OR NUMERICALLY)
+C ---    NSTEP     NUMBER OF COMPUTED STEPS
+C ---    NACCPT    NUMBER OF ACCEPTED STEPS
+C ---    NREJCT    NUMBER OF REJECTED STEPS (AFTER AT LEAST ONE STEP
+C                  HAS BEEN ACCEPTED)
+C ---    NDEC      NUMBER OF LU-DECOMPOSITIONS (N-DIMENSIONAL MATRIX)
+C ---    NSOL      NUMBER OF FORWARD-BACKWARD SUBSTITUTIONS
+C -----------------------------------------------------
+C *** *** *** *** *** *** ***
+C        SETTING THE PARAMETERS 
+C *** *** *** *** *** *** ***
+      NFCN=0
+      NJAC=0
+      NSTEP=0
+      NACCPT=0
+      NREJCT=0
+      NDEC=0
+      NSOL=0
+      ARRET=.FALSE.
+C -------- NMAX , THE MAXIMAL NUMBER OF STEPS -----
+      IF(IWORK(1).EQ.0)THEN
+         NMAX=100000
+      ELSE
+         NMAX=IWORK(1)
+         IF(NMAX.LE.0)THEN
+            WRITE(6,*)' WRONG INPUT IWORK(1)=',IWORK(1)
+            ARRET=.TRUE.
+         END IF
+      END IF
+C -------- METH   COEFFICIENTS OF THE METHOD
+      IF(IWORK(2).EQ.0)THEN
+         METH=2
+      ELSE
+         METH=IWORK(2)
+         IF(METH.LE.0.OR.METH.GE.7)THEN
+            WRITE(6,*)' CURIOUS INPUT IWORK(2)=',IWORK(2)
+            ARRET=.TRUE.
+         END IF
+      END IF
+C -------- UROUND   SMALLEST NUMBER SATISFYING 1.D0+UROUND>1.D0  
+      IF(WORK(1).EQ.0.D0)THEN
+         UROUND=1.D-16
+      ELSE
+         UROUND=WORK(1)
+         IF(UROUND.LE.1.D-14.OR.UROUND.GE.1.D0)THEN
+            WRITE(6,*)' COEFFICIENTS HAVE 16 DIGITS, UROUND=',WORK(1)
+            ARRET=.TRUE.
+         END IF
+      END IF
+C -------- MAXIMAL STEP SIZE
+      IF(WORK(2).EQ.0.D0)THEN
+         HMAX=XEND-X
+      ELSE
+         HMAX=WORK(2)
+      END IF
+C -------  FAC1,FAC2     PARAMETERS FOR STEP SIZE SELECTION
+      IF(WORK(3).EQ.0.D0)THEN
+         FAC1=5.D0
+      ELSE
+         FAC1=1.D0/WORK(3)
+      END IF
+      IF(WORK(4).EQ.0.D0)THEN
+         FAC2=1.D0/6.0D0
+      ELSE
+         FAC2=1.D0/WORK(4)
+      END IF
+C -------  FACREJ    FOR THE HUMP
+      IF(WORK(5).EQ.0.D0)THEN
+         FACREJ=0.1D0
+      ELSE
+         FACREJ=WORK(5)
+      END IF
+C --------- CHECK IF TOLERANCES ARE O.K.
+      IF (ITOL.EQ.0) THEN
+          IF (AbsTol(1).LE.0.D0.OR.RelTol(1).LE.10.D0*UROUND) THEN
+              WRITE (6,*) ' TOLERANCES ARE TOO SMALL'
+              ARRET=.TRUE.
+          END IF
+      ELSE
+          DO 15 I=1,N
+          IF (AbsTol(I).LE.0.D0.OR.RelTol(I).LE.10.D0*UROUND) THEN
+              WRITE (6,*) ' TOLERANCES(',I,') ARE TOO SMALL'
+              ARRET=.TRUE.
+          END IF
+  15      CONTINUE
+      END IF
+C *** *** *** *** *** *** *** *** *** *** *** *** ***
+C         COMPUTATION OF ARRAY ENTRIES
+C *** *** *** *** *** *** *** *** *** *** *** *** ***
+C ---- AUTONOMOUS, IMPLICIT, BANDED OR NOT ?
+      AUTNMS=IFCN.EQ.0
+      IMPLCT=IMAS.NE.0
+      JBAND=MLJAC.NE.N
+      ARRET=.FALSE.
+C -------- COMPUTATION OF THE ROW-DIMENSIONS OF THE 2-ARRAYS ---
+C -- JACOBIAN 
+      IF(JBAND)THEN
+         LDJAC=MLJAC+MUJAC+1
+      ELSE
+         LDJAC=N
+      END IF
+C -- MATRIX E FOR LINEAR ALGEBRA
+      IF(JBAND)THEN
+         LDE=2*MLJAC+MUJAC+1
+      ELSE
+         LDE=N
+      END IF
+C -- MASS MATRIX
+      IF (IMPLCT) THEN
+          IF (MLMAS.NE.N) THEN
+              LDMAS=MLMAS+MUMAS+1
+          ELSE
+              LDMAS=N
+          END IF
+C ------ BANDWITH OF "MAS" NOT LARGER THAN BANDWITH OF "JAC"
+          IF (MLMAS.GT.MLJAC.OR.MUMAS.GT.MUJAC) THEN
+              WRITE (6,*) 'BANDWITH OF "MAS" NOT LARGER THAN BANDWITH OF
+     & "JAC"'
+            ARRET=.TRUE.
+          END IF
+      ELSE
+          LDMAS=0
+      END IF
+      LDMAS2=MAX(1,LDMAS)
+C ------- PREPARE THE ENTRY-POINTS FOR THE ARRAYS IN WORK -----
+      IEYNEW=6
+      IEDY1=IEYNEW+N
+      IEDY=IEDY1+N
+      IEAK1=IEDY+N
+      IEAK2=IEAK1+N
+      IEAK3=IEAK2+N
+      IEAK4=IEAK3+N
+      IEFX =IEAK4+N
+      IEJAC=IEFX +N
+      IEMAS=IEJAC+N*LDJAC
+      IEE  =IEMAS+N*LDMAS
+C ------ TOTAL STORAGE REQUIREMENT -----------
+      ISTORE=IEE+N*LDE-1
+      IF(ISTORE.GT.LWORK)THEN
+         WRITE(6,*)' INSUFFICIENT STORAGE FOR WORK, MIN. LWORK=',ISTORE
+         ARRET=.TRUE.
+      END IF
+C ------- ENTRY POINTS FOR INTEGER WORKSPACE -----
+      IEIP=3
+C --------- TOTAL REQUIREMENT ---------------
+      ISTORE=IEIP+N-1
+      IF(ISTORE.GT.LIWORK)THEN
+         WRITE(6,*)' INSUFF. STORAGE FOR IWORK, MIN. LIWORK=',ISTORE
+         ARRET=.TRUE.
+      END IF
+C ------ WHEN A FAIL HAS OCCURED, WE RETURN WITH IDID=-1
+      IF (ARRET) THEN
+         IDID=-1
+         RETURN
+      END IF
+C -------- CALL TO CORE INTEGRATOR ------------
+      CALL RO4COR(N,FCN,X,Y,XEND,HMAX,H,RelTol,AbsTol,ITOL,JAC,IJAC,
+     &   MLJAC,MUJAC,DFX,IDFX,MAS,MLMAS,MUMAS,SOLOUT,IOUT,IDID,
+     &   NMAX,UROUND,METH,FAC1,FAC2,FACREJ,AUTNMS,IMPLCT,JBAND,
+     &   LDJAC,LDE,LDMAS2,WORK(IEYNEW),WORK(IEDY1),WORK(IEDY),
+     &   WORK(IEAK1),WORK(IEAK2),WORK(IEAK3),WORK(IEAK4),
+     &   WORK(IEFX),WORK(IEJAC),WORK(IEE),WORK(IEMAS),IWORK(IEIP))
+C ----------- RETURN -----------
+      RETURN
+      END
+C
+C
+C
+C  ----- ... AND HERE IS THE CORE INTEGRATOR  ----------
+C
+      SUBROUTINE RO4COR(N,FCN,X,Y,XEND,HMAX,H,RelTol,AbsTol,ITOL,JAC,
+     &  IJAC,MLJAC,MUJAC,DFX,IDFX,MAS,MLMAS,MUMAS,SOLOUT,IOUT,IDID,
+     &  NMAX,UROUND,METH,FAC1,FAC2,FACREJ,AUTNMS,IMPLCT,BANDED,
+     &  LFJAC,LE,LDMAS,YNEW,DY1,DY,AK1,AK2,AK3,AK4,FX,FJAC,E,FMAS,IP)
+C ----------------------------------------------------------
+C     CORE INTEGRATOR FOR ROS4
+C     PARAMETERS SAME AS IN ROS4 WITH WORKSPACE ADDED 
+C ---------------------------------------------------------- 
+C         DECLARATIONS 
+C ---------------------------------------------------------- 
+      IMPLICIT KPP_REAL (A-H,O-Z)	 
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_sparse.h'
+      KPP_REAL Y(N),YNEW(N),DY1(N),DY(N),AK1(N),
+     *  AK2(N),AK3(N),AK4(N),FX(N),
+     *  FJAC(LU_NONZERO),E(LU_NONZERO),
+     *  FMAS(LDMAS,N),AbsTol(1),RelTol(1)
+      INTEGER IP(N)
+      LOGICAL REJECT,RJECT2,AUTNMS,IMPLCT,BANDED
+      COMMON/STAT/NFCN,NJAC,NSTEP,NACCPT,NREJCT,NDEC,NSOL
+      EXTERNAL FCN,JAC,MAS,SOLOUT,DFX
+
+
+C ------- COMPUTE MASS MATRIX FOR IMPLICIT CASE ----------
+      IF (IMPLCT) CALL MAS(N,FMAS,LDMAS)
+C ---- PREPARE BANDWIDTHS -----
+      IF (BANDED) THEN
+          MLE=MLJAC
+          MUE=MUJAC
+          MBJAC=MLJAC+MUJAC+1
+          MBB=MLMAS+MUMAS+1
+          MDIAG=MLE+MUE+1
+          MBDIAG=MUMAS+1
+          MDIFF=MLE+MUE-MUMAS
+      END IF
+C *** *** *** *** *** *** ***
+C  INITIALISATIONS
+C *** *** *** *** *** *** ***
+      IF (METH.EQ.1) CALL SHAMP (A21,A31,A32,C21,C31,C32,C41,C42,C43,
+     &          B1,B2,B3,B4,E1,E2,E3,E4,GAMMA,C2,C3,D1,D2,D3,D4)
+      IF (METH.EQ.2) CALL GRK4T (A21,A31,A32,C21,C31,C32,C41,C42,C43,
+     &          B1,B2,B3,B4,E1,E2,E3,E4,GAMMA,C2,C3,D1,D2,D3,D4)
+      IF (METH.EQ.3) CALL GRK4A (A21,A31,A32,C21,C31,C32,C41,C42,C43,
+     &          B1,B2,B3,B4,E1,E2,E3,E4,GAMMA,C2,C3,D1,D2,D3,D4)
+      IF (METH.EQ.4) CALL VELDS (A21,A31,A32,C21,C31,C32,C41,C42,C43,
+     &          B1,B2,B3,B4,E1,E2,E3,E4,GAMMA,C2,C3,D1,D2,D3,D4)
+      IF (METH.EQ.5) CALL VELDD (A21,A31,A32,C21,C31,C32,C41,C42,C43,
+     &          B1,B2,B3,B4,E1,E2,E3,E4,GAMMA,C2,C3,D1,D2,D3,D4)
+      IF (METH.EQ.6) CALL LSTAB (A21,A31,A32,C21,C31,C32,C41,C42,C43,
+     &          B1,B2,B3,B4,E1,E2,E3,E4,GAMMA,C2,C3,D1,D2,D3,D4)
+C --- INITIAL PREPARATIONS
+      POSNEG=SIGN(1.D0,XEND-X)
+      HMAXN=MIN(ABS(HMAX),ABS(XEND-X))
+      IF (ABS(H).LE.10.D0*UROUND) H=1.0D-6
+      H=MIN(ABS(H),HMAXN) 
+      H=SIGN(H,POSNEG) 
+      REJECT=.FALSE.
+      NSING=0
+      IRTRN=1 
+      XXOLD=X
+      IF (IRTRN.LT.0) GOTO 79
+C --- BASIC INTEGRATION STEP  
+   1  IF (NSTEP.GT.NMAX.OR.X+.1D0*H.EQ.X.OR.ABS(H).LE.UROUND) GOTO 79
+      IF ((X-XEND)*POSNEG+UROUND.GT.0.D0) THEN
+          H=HOPT
+          IDID=1
+          RETURN
+      END IF
+      HOPT=H
+      IF ((X+H-XEND)*POSNEG.GT.0.D0) H=XEND-X
+      CALL FCN(N,X,Y,DY1)
+      NFCN=NFCN+1
+
+C *** *** *** *** *** *** ***
+C  COMPUTATION OF THE JACOBIAN
+C *** *** *** *** *** *** ***
+      NJAC=NJAC+1
+      CALL JAC(N,X,Y,FJAC)
+
+      IF (.NOT.AUTNMS) THEN
+          IF (IDFX.EQ.0) THEN
+C --- COMPUTE NUMERICALLY THE DERIVATIVE WITH RESPECT TO X
+              DELT=DSQRT(UROUND*MAX(1.D-5,ABS(X)))
+              XDELT=X+DELT
+              CALL FCN(N,XDELT,Y,AK1)
+              DO 19 J=1,N
+  19          FX(J)=(AK1(J)-DY1(J))/DELT
+          ELSE
+C --- COMPUTE ANALYTICALLY THE DERIVATIVE WITH RESPECT TO X
+              CALL DFX(N,X,Y,FX)
+          END IF
+      END IF
+   2  CONTINUE
+
+C *** *** *** *** *** *** ***
+C  COMPUTE THE STAGES
+C *** *** *** *** *** *** ***
+      NDEC=NDEC+1
+      HC21=C21/H
+      HC31=C31/H
+      HC32=C32/H
+      HC41=C41/H
+      HC42=C42/H
+      HC43=C43/H
+      FAC=1.D0/(H*GAMMA)
+C --- THE MATRIX E (B=IDENTITY, JACOBIAN A FULL MATRIX)
+              DO 800 I=1,LU_NONZERO
+  800         E(I)=-FJAC(I)
+              DO 801 J=1,N
+  801         E(LU_DIAG(J))=E(LU_DIAG(J))+FAC
+              CALL KppDecomp (E,IER)
+              IF (IER.NE.0) GOTO 80
+              IF (AUTNMS) THEN
+C --- THIS PART COMPUTES THE STAGES IN THE CASE WHERE
+C ---   1) THE DIFFERENTIAL EQUATION IS IN EXPLICIT FORM
+C ---   2) THE JACOBIAN OF THE PROBLEM IS A FULL MATRIX
+C ---   3) THE DIFFERENTIAL EQUATION IS AUTONOMOUS
+                  DO 803 I=1,N
+  803             AK1(I)=DY1(I)
+                  CALL KppSolve(E,AK1)
+                  DO 810 I=1,N
+  810             YNEW(I)=Y(I)+A21*AK1(I) 
+                  CALL FCN(N,X,YNEW,DY)
+                  DO 811 I=1,N
+  811             AK2(I)=DY(I)+HC21*AK1(I)
+                  CALL KppSolve(E,AK2)
+                  DO 820 I=1,N
+  820             YNEW(I)=Y(I)+A31*AK1(I)+A32*AK2(I)  
+                  CALL FCN(N,X,YNEW,DY)
+                  DO 821 I=1,N
+  821             AK3(I)=DY(I)+HC31*AK1(I)+HC32*AK2(I)
+                  CALL KppSolve(E,AK3)
+                  DO 831 I=1,N
+  831             AK4(I)=DY(I)+HC41*AK1(I)+HC42*AK2(I)+HC43*AK3(I) 
+                  CALL KppSolve(E,AK4)
+              ELSE
+C --- THIS PART COMPUTES THE STAGES IN THE CASE WHERE
+C ---   1) THE DIFFERENTIAL EQUATION IS IN EXPLICIT FORM
+C ---   2) THE JACOBIAN OF THE PROBLEM IS A FULL MATRIX
+C ---   3) THE DIFFERENTIAL EQUATION IS NON-AUTONOMOUS
+                  HD1=H*D1
+                  HD2=H*D2
+                  HD3=H*D3
+                  HD4=H*D4
+                  DO 903 I=1,N
+  903             AK1(I)=DY1(I)+HD1*FX(I)
+                  CALL KppSolve(E,AK1)
+                  DO 910 I=1,N
+  910             YNEW(I)=Y(I)+A21*AK1(I) 
+                  CALL FCN(N,X+C2*H,YNEW,DY)
+                  DO 911 I=1,N
+  911             AK2(I)=DY(I)+HD2*FX(I)+HC21*AK1(I)
+                  CALL KppSolve(E,AK2)
+                  DO 920 I=1,N
+  920             YNEW(I)=Y(I)+A31*AK1(I)+A32*AK2(I)  
+                  CALL FCN(N,X+C3*H,YNEW,DY)
+                  DO 921 I=1,N
+  921             AK3(I)=DY(I)+HD3*FX(I)+HC31*AK1(I)+HC32*AK2(I)
+                  CALL KppSolve(E,AK3)
+                  DO 931 I=1,N
+  931             AK4(I)=DY(I)+HD4*FX(I)+HC41*AK1(I)+HC42*AK2(I)
+     &                  +HC43*AK3(I) 
+                  CALL KppSolve(E,AK4)
+              END IF
+      NSOL=NSOL+4
+      NFCN=NFCN+2
+C *** *** *** *** *** *** ***
+C  ERROR ESTIMATION  
+C *** *** *** *** *** *** ***
+      NSTEP=NSTEP+1
+C ------------ NEW SOLUTION ---------------
+      DO 240 I=1,N
+  240 YNEW(I)=Y(I)+B1*AK1(I)+B2*AK2(I)+B3*AK3(I)+B4*AK4(I)  
+C ------------ COMPUTE ERROR ESTIMATION ----------------
+      ERR=0.D0
+      DO 300 I=1,N
+      S=E1*AK1(I)+E2*AK2(I)+E3*AK3(I)+E4*AK4(I) 
+      IF (ITOL.EQ.0) THEN
+         SK=AbsTol(1)+RelTol(1)*DMAX1(DABS(Y(I)),DABS(YNEW(I)))
+      ELSE
+         SK=AbsTol(I)+RelTol(I)*DMAX1(DABS(Y(I)),DABS(YNEW(I)))
+      END IF
+  300 ERR=ERR+(S/SK)**2
+      ERR=DSQRT(ERR/N)
+C --- COMPUTATION OF HNEW
+C --- WE REQUIRE .2<=HNEW/H<=6.
+      FAC=DMAX1(FAC2,DMIN1(FAC1,(ERR)**.25D0/.9D0))
+      HNEW=H/FAC  
+C *** *** *** *** *** *** ***
+C  IS THE ERROR SMALL ENOUGH ?
+C *** *** *** *** *** *** ***
+      IF (ERR.LE.1.D0) THEN
+C --- STEP IS ACCEPTED  
+         NACCPT=NACCPT+1
+         DO 44 I=1,N 
+  44     Y(I)=YNEW(I) 
+         XXOLD=X 
+         X=X+H
+         IF (IRTRN.LT.0) GOTO 79
+         IF (DABS(HNEW).GT.HMAXN) HNEW=POSNEG*HMAXN
+         IF (REJECT) HNEW=POSNEG*DMIN1(DABS(HNEW),DABS(H)) 
+         REJECT=.FALSE.
+         RJECT2=.FALSE.
+         H=HNEW
+         GOTO 1
+      ELSE
+C --- STEP IS REJECTED  
+         IF (RJECT2) HNEW=H*FACREJ
+         IF (REJECT) RJECT2=.TRUE.
+         REJECT=.TRUE.
+         H=HNEW
+         IF (NACCPT.GE.1) NREJCT=NREJCT+1
+         GOTO 2
+      END IF
+C --- EXIT
+  80  WRITE (6,*) ' MATRIX E IS SINGULAR, INFO = ',INFO
+      NSING=NSING+1
+      IF (NSING.GE.5) GOTO 79
+      H=H*0.5D0
+      GOTO 2
+  79  WRITE(6,979)X,H
+ 979  FORMAT(' EXIT OF ROS4 AT X=',D16.7,'   H=',D16.7)
+      IDID=-1
+      RETURN
+      END
+C
+      SUBROUTINE SHAMP (A21,A31,A32,C21,C31,C32,C41,C42,C43,
+     &          B1,B2,B3,B4,E1,E2,E3,E4,GAMMA,C2,C3,D1,D2,D3,D4)
+      IMPLICIT KPP_REAL (A-H,O-Z)
+         A21=2.D0
+         A31=48.D0/25.D0
+         A32=6.D0/25.D0
+         C21=-8.D0
+         C31=372.D0/25.D0
+         C32=12.D0/5.D0
+         C41=-112.D0/125.D0
+         C42=-54.D0/125.D0
+         C43=-2.D0/5.D0
+         B1=19.D0/9.D0
+         B2=1.D0/2.D0
+         B3=25.D0/108.D0
+         B4=125.D0/108.D0
+         E1=17.D0/54.D0
+         E2=7.D0/36.D0
+         E3=0.D0
+         E4=125.D0/108.D0
+         GAMMA=.5D0
+         C2= 0.1000000000000000D+01
+         C3= 0.6000000000000000D+00
+         D1= 0.5000000000000000D+00
+         D2=-0.1500000000000000D+01
+         D3= 0.2420000000000000D+01
+         D4= 0.1160000000000000D+00
+      RETURN
+      END
+C
+      SUBROUTINE GRK4A (A21,A31,A32,C21,C31,C32,C41,C42,C43,
+     &          B1,B2,B3,B4,E1,E2,E3,E4,GAMMA,C2,C3,D1,D2,D3,D4)
+      IMPLICIT KPP_REAL (A-H,O-Z)
+       A21= 0.1108860759493671D+01
+       A31= 0.2377085261983360D+01
+       A32= 0.1850114988899692D+00
+       C21=-0.4920188402397641D+01
+       C31= 0.1055588686048583D+01
+       C32= 0.3351817267668938D+01
+       C41= 0.3846869007049313D+01
+       C42= 0.3427109241268180D+01
+       C43=-0.2162408848753263D+01
+       B1= 0.1845683240405840D+01
+       B2= 0.1369796894360503D+00
+       B3= 0.7129097783291559D+00
+       B4= 0.6329113924050632D+00
+       E1= 0.4831870177201765D-01
+       E2=-0.6471108651049505D+00
+       E3= 0.2186876660500240D+00
+       E4=-0.6329113924050632D+00
+       GAMMA= 0.3950000000000000D+00
+       C2= 0.4380000000000000D+00
+       C3= 0.8700000000000000D+00
+       D1= 0.3950000000000000D+00
+       D2=-0.3726723954840920D+00
+       D3= 0.6629196544571492D-01
+       D4= 0.4340946962568634D+00
+      RETURN
+      END
+C
+      SUBROUTINE GRK4T (A21,A31,A32,C21,C31,C32,C41,C42,C43,
+     &          B1,B2,B3,B4,E1,E2,E3,E4,GAMMA,C2,C3,D1,D2,D3,D4)
+      IMPLICIT KPP_REAL (A-H,O-Z)
+       A21= 0.2000000000000000D+01
+       A31= 0.4524708207373116D+01
+       A32= 0.4163528788597648D+01
+       C21=-0.5071675338776316D+01
+       C31= 0.6020152728650786D+01
+       C32= 0.1597506846727117D+00
+       C41=-0.1856343618686113D+01
+       C42=-0.8505380858179826D+01
+       C43=-0.2084075136023187D+01
+       B1= 0.3957503746640777D+01
+       B2= 0.4624892388363313D+01
+       B3= 0.6174772638750108D+00
+       B4= 0.1282612945269037D+01
+       E1= 0.2302155402932996D+01
+       E2= 0.3073634485392623D+01
+       E3=-0.8732808018045032D+00
+       E4=-0.1282612945269037D+01
+       GAMMA= 0.2310000000000000D+00
+       C2= 0.4620000000000000D+00
+       C3= 0.8802083333333334D+00
+       D1= 0.2310000000000000D+00
+       D2=-0.3962966775244303D-01
+       D3= 0.5507789395789127D+00
+       D4=-0.5535098457052764D-01
+      RETURN
+      END
+C
+      SUBROUTINE VELDS (A21,A31,A32,C21,C31,C32,C41,C42,C43,
+     &          B1,B2,B3,B4,E1,E2,E3,E4,GAMMA,C2,C3,D1,D2,D3,D4)
+C --- METHOD GIVEN BY VAN VELDHUIZEN
+      IMPLICIT KPP_REAL (A-H,O-Z)
+       A21= 0.2000000000000000D+01
+       A31= 0.1750000000000000D+01
+       A32= 0.2500000000000000D+00
+       C21=-0.8000000000000000D+01
+       C31=-0.8000000000000000D+01
+       C32=-0.1000000000000000D+01
+       C41= 0.5000000000000000D+00
+       C42=-0.5000000000000000D+00
+       C43= 0.2000000000000000D+01
+       B1= 0.1333333333333333D+01
+       B2= 0.6666666666666667D+00
+       B3=-0.1333333333333333D+01
+       B4= 0.1333333333333333D+01
+       E1=-0.3333333333333333D+00
+       E2=-0.3333333333333333D+00
+       E3=-0.0000000000000000D+00
+       E4=-0.1333333333333333D+01
+       GAMMA= 0.5000000000000000D+00
+       C2= 0.1000000000000000D+01
+       C3= 0.5000000000000000D+00
+       D1= 0.5000000000000000D+00
+       D2=-0.1500000000000000D+01
+       D3=-0.7500000000000000D+00
+       D4= 0.2500000000000000D+00
+      RETURN
+      END
+C
+      SUBROUTINE VELDD (A21,A31,A32,C21,C31,C32,C41,C42,C43,
+     &          B1,B2,B3,B4,E1,E2,E3,E4,GAMMA,C2,C3,D1,D2,D3,D4)
+C --- METHOD GIVEN BY VAN VELDHUIZEN
+      IMPLICIT KPP_REAL (A-H,O-Z)
+       A21= 0.2000000000000000D+01
+       A31= 0.4812234362695436D+01
+       A32= 0.4578146956747842D+01
+       C21=-0.5333333333333331D+01
+       C31= 0.6100529678848254D+01
+       C32= 0.1804736797378427D+01
+       C41=-0.2540515456634749D+01
+       C42=-0.9443746328915205D+01
+       C43=-0.1988471753215993D+01
+       B1= 0.4289339254654537D+01
+       B2= 0.5036098482851414D+01
+       B3= 0.6085736420673917D+00
+       B4= 0.1355958941201148D+01
+       E1= 0.2175672787531755D+01
+       E2= 0.2950911222575741D+01
+       E3=-0.7859744544887430D+00
+       E4=-0.1355958941201148D+01
+       GAMMA= 0.2257081148225682D+00
+       C2= 0.4514162296451364D+00
+       C3= 0.8755928946018455D+00
+       D1= 0.2257081148225682D+00
+       D2=-0.4599403502680582D-01
+       D3= 0.5177590504944076D+00
+       D4=-0.3805623938054428D-01
+      RETURN
+      END 
+C
+      SUBROUTINE LSTAB (A21,A31,A32,C21,C31,C32,C41,C42,C43,
+     &          B1,B2,B3,B4,E1,E2,E3,E4,GAMMA,C2,C3,D1,D2,D3,D4)
+C --- AN L-STABLE METHOD
+      IMPLICIT KPP_REAL (A-H,O-Z)
+       A21= 0.2000000000000000D+01
+       A31= 0.1867943637803922D+01
+       A32= 0.2344449711399156D+00
+       C21=-0.7137615036412310D+01
+       C31= 0.2580708087951457D+01
+       C32= 0.6515950076447975D+00
+       C41=-0.2137148994382534D+01
+       C42=-0.3214669691237626D+00
+       C43=-0.6949742501781779D+00
+C  B_i = M_i
+       B1= 0.2255570073418735D+01
+       B2= 0.2870493262186792D+00
+       B3= 0.4353179431840180D+00
+       B4= 0.1093502252409163D+01
+C E_i = error estimator       
+       E1=-0.2815431932141155D+00
+       E2=-0.7276199124938920D-01
+       E3=-0.1082196201495311D+00
+       E4=-0.1093502252409163D+01
+C gamma = gamma
+       GAMMA= 0.5728200000000000D+00
+C  C_i = alpha_i
+       C2= 0.1145640000000000D+01
+       C3= 0.6552168638155900D+00
+C D_i = gamma_i       
+       D1= 0.5728200000000000D+00
+       D2=-0.1769193891319233D+01
+       D3= 0.7592633437920482D+00
+       D4=-0.1049021087100450D+00
+      RETURN
+      END 
+
+        SUBROUTINE SOLOUT (NR,XOLD,X,Y,N,IRTRN)
+C --- PRINTS SOLUTION
+        IMPLICIT KPP_REAL (A-H,O-Z)
+        DIMENSION Y(N)
+        COMMON /INTERN/XOUT
+        IF (NR.EQ.1) THEN
+           WRITE (6,99) X,Y(1),Y(2),NR-1
+           XOUT=0.1D0
+        ELSE
+           IF (X.GE.XOUT) THEN
+              WRITE (6,99) X,Y(1),Y(2),NR-1
+              XOUT=DMAX1(XOUT+0.1D0,X)
+           END IF
+        END IF
+ 99     FORMAT(1X,'X =',F5.2,'    Y =',2E18.10,'    NSTEP =',I4)
+        RETURN
+        END
+
+      SUBROUTINE DEC (N, NDIM, A, IP, IER)
+C VERSION REAL KPP_REAL
+      INTEGER N,NDIM,IP,IER,NM1,K,KP1,M,I,J
+      KPP_REAL A,T
+      DIMENSION A(NDIM,N), IP(N)
+C-----------------------------------------------------------------------
+C  MATRIX TRIANGULARIZATION BY GAUSSIAN ELIMINATION.
+C  INPUT..
+C     N = ORDER OF MATRIX.
+C     NDIM = DECLARED DIMENSION OF ARRAY  A .
+C     A = MATRIX TO BE TRIANGULARIZED.
+C  OUTPUT..
+C     A(I,J), I.LE.J = UPPER TRIANGULAR FACTOR, U .
+C     A(I,J), I.GT.J = MULTIPLIERS = LOWER TRIANGULAR FACTOR, I - L.
+C     IP(K), K.LT.N = INDEX OF K-TH PIVOT ROW.
+C     IP(N) = (-1)**(NUMBER OF INTERCHANGES) OR O .
+C     IER = 0 IF MATRIX A IS NONSINGULAR, OR K IF FOUND TO BE
+C           SINGULAR AT STAGE K.
+C  USE  SOL  TO OBTAIN SOLUTION OF LINEAR SYSTEM.
+C  DETERM(A) = IP(N)*A(1,1)*A(2,2)*...*A(N,N).
+C  IF IP(N)=O, A IS SINGULAR, SOL WILL DIVIDE BY ZERO.
+C
+C  REFERENCE..
+C     C. B. MOLER, ALGORITHM 423, LINEAR EQUATION KppSolveR,
+C     C.A.C.M. 15 (1972), P. 274.
+C-----------------------------------------------------------------------
+      IER = 0
+      IP(N) = 1
+      IF (N .EQ. 1) GO TO 70
+      NM1 = N - 1
+      DO 60 K = 1,NM1
+        KP1 = K + 1
+        M = K
+        DO 10 I = KP1,N
+          IF (DABS(A(I,K)) .GT. DABS(A(M,K))) M = I  
+ 10     CONTINUE
+        IP(K) = M
+        T = A(M,K)
+        IF (M .EQ. K) GO TO 20
+        IP(N) = -IP(N)
+        A(M,K) = A(K,K)
+        A(K,K) = T
+ 20     CONTINUE
+        IF (T .EQ. 0.D0) GO TO 80
+        T = 1.D0/T
+        DO 30 I = KP1,N
+ 30       A(I,K) = -A(I,K)*T
+        DO 50 J = KP1,N
+          T = A(M,J)
+          A(M,J) = A(K,J)
+          A(K,J) = T
+          IF (T .EQ. 0.D0) GO TO 45
+          DO 40 I = KP1,N
+ 40         A(I,J) = A(I,J) + A(I,K)*T
+ 45       CONTINUE
+ 50       CONTINUE
+ 60     CONTINUE
+ 70   K = N
+      IF (A(N,N) .EQ. 0.D0) GO TO 80
+      RETURN
+ 80   IER = K
+      IP(N) = 0
+      RETURN
+C----------------------- END OF SUBROUTINE DEC -------------------------
+      END
+C
+C
+      SUBROUTINE SOL (N, NDIM, A, B, IP)
+C VERSION REAL KPP_REAL
+      INTEGER N,NDIM,IP,NM1,K,KP1,M,I,KB,KM1
+      KPP_REAL A,B,T
+      DIMENSION A(NDIM,N), B(N), IP(N)
+C-----------------------------------------------------------------------
+C  SOLUTION OF LINEAR SYSTEM, A*X = B .
+C  INPUT..
+C    N = ORDER OF MATRIX.
+C    NDIM = DECLARED DIMENSION OF ARRAY  A .
+C    A = TRIANGULARIZED MATRIX OBTAINED FROM DEC.
+C    B = RIGHT HAND SIDE VECTOR.
+C    IP = PIVOT VECTOR OBTAINED FROM DEC.
+C  DO NOT USE IF DEC HAS SET IER .NE. 0.
+C  OUTPUT..
+C    B = SOLUTION VECTOR, X .
+C-----------------------------------------------------------------------
+      IF (N .EQ. 1) GO TO 50
+      NM1 = N - 1
+      DO 20 K = 1,NM1
+        KP1 = K + 1
+        M = IP(K)
+        T = B(M)
+        B(M) = B(K)
+        B(K) = T
+        DO 10 I = KP1,N
+ 10       B(I) = B(I) + A(I,K)*T
+ 20     CONTINUE
+      DO 40 KB = 1,NM1
+        KM1 = N - KB
+        K = KM1 + 1
+        B(K) = B(K)/A(K,K)
+        T = -B(K)
+        DO 30 I = 1,KM1
+ 30       B(I) = B(I) + A(I,K)*T
+ 40     CONTINUE
+ 50   B(1) = B(1)/A(1,1)
+      RETURN
+C----------------------- END OF SUBROUTINE SOL -------------------------
+      END
+
+
+ 
+ 
+      SUBROUTINE FUNC_CHEM(N, T, Y, P)
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+      INTEGER N
+      KPP_REAL   T, Told
+      KPP_REAL   Y(NVAR), P(NVAR)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Fun( Y,  FIX, RCONST, P )
+      TIME = Told
+      RETURN
+      END
+
+ 
+      SUBROUTINE JAC_CHEM(N, T, Y, J)
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+      INTEGER N
+      KPP_REAL   Told, T
+      KPP_REAL   Y(NVAR), J(LU_NONZERO)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Jac_SP( Y,  FIX, RCONST, J )
+      TIME = Told
+      RETURN
+      END                                                                                                                 
+
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/qssa.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/qssa.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/qssa.def	(revision 2696)
@@ -0,0 +1,16 @@
+ 
+#FUNCTION SPLIT
+#JACOBIAN OFF
+#SPARSEDATA OFF
+#DOUBLE ON
+#INTFILE qssa
+
+#INLINE F_INIT_INT
+        STEPMIN=0.0001
+        STEPMAX=60.
+#ENDINLINE
+
+#INLINE C_INIT_INT
+  STEPMIN=0.0001;
+  STEPMAX=60.;
+#ENDINLINE
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/qssa.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/qssa.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/qssa.f	(revision 2696)
@@ -0,0 +1,136 @@
+C -- QSSA WITH STEADY STATE APPROXIMATION --
+C    For plain QSSA (to remove the steady state assumption)
+C    modify slow -> 0, fast -> 1e20
+C
+
+      SUBROUTINE INTEGRATE( TIN, TOUT  ) 
+
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+
+C TIN - Start Time
+      KPP_REAL TIN
+C TOUT - End Time
+      KPP_REAL TOUT
+
+C Local variables
+      KPP_REAL P_VAR(NVAR), D_VAR(NVAR), V1(NVAR), V2(NVAR)
+      LOGICAL IsReject
+      KPP_REAL T, Tnext, STEP, STEPold, Told, SUP
+      KPP_REAL ERR, ERRold, ratio, factor, facmax, tmp
+      INTEGER i 
+      KPP_REAL slow, fast
+
+      T = TIN
+      Tnext = TOUT
+      STEP = DMAX1(STEPMIN,1.d-10)
+      Told = T
+      SUP  = 1e-14
+      IsReject = .false.
+      ERR = 1.d0
+      ERRold = 1.d0
+      slow = 0.01
+      fast = 10.  
+
+ 10    continue  
+       Tplus = T + STEP
+       if ( Tplus .gt. Tnext ) then
+          STEP = Tnext - T
+          Tplus = Tnext
+       end if
+
+
+        TITI = TIME
+        TIME = T
+        CALL Update_SUN() 
+        CALL Update_RCONST()
+        TIME = TITI
+        CALL FSPLIT_VAR ( VAR,  P_VAR, D_VAR )
+
+        do i=1,NVAR
+          IF ( D_VAR(i)*STEP .lt. slow) THEN       ! SLOW SPECIES
+             XXX = STEP * (P_VAR(i) - D_VAR(i)*VAR(i))
+             V1(i) = VAR(i) + XXX
+             V2(i) = VAR(i) + 0.5*XXX
+          ELSE IF ( D_VAR(i)*STEP .GT. fast) THEN  ! FAST SPECIES
+             V1(i) = P_VAR(i)/D_VAR(i)
+             V2(i) = V1(i)
+          ELSE                                    ! MEDIUM LIVED
+            if ( abs(D_VAR(i)).gt.SUP ) then
+              ratio = P_VAR(i)/D_VAR(i)
+              tmp = exp(-D_VAR(i)*STEP*0.5)
+              V1(i) = tmp * tmp * (VAR(i) - ratio) + ratio
+              V2(i) = tmp * (VAR(i) - ratio) + ratio
+            else
+              tmp = D_VAR(i) * STEP * 0.5
+              V1(i) = VAR(i) + P_VAR(i) * STEP * ( 1 - tmp *
+     *             ( 1 - 2.0 / 3.0 * tmp ) )
+              V2(i) = VAR(i) + P_VAR(i) * 0.5 * STEP*( 1-0.5*tmp*
+     *             ( 1 - 1.0 / 3.0 * tmp ) )
+              end if
+          END IF
+        end do
+
+        TITI = TIME
+        TIME = T + 0.5*STEP
+        CALL Update_SUN() 
+        CALL Update_RCONST()
+        TIME = TITI
+        CALL FSPLIT_VAR ( V2,  P_VAR, D_VAR )
+
+        do i=1,NVAR
+          IF ( D_VAR(i)*STEP .lt. slow) THEN       ! SLOW SPECIES
+             XXX = STEP * (P_VAR(i) - D_VAR(i)*VAR(i))
+             V2(i) = V2(i) + 0.5*XXX
+          ELSE IF ( D_VAR(i)*STEP .GT. fast) THEN  ! FAST SPECIES
+             V2(i) = P_VAR(i)/D_VAR(i)
+          ELSE                                    ! MEDIUM LIVED
+            if ( abs(D_VAR(i)).gt.SUP ) then
+              ratio = P_VAR(i)/D_VAR(i)
+              tmp = exp(-D_VAR(i)*STEP*0.5)
+              V2(i) = tmp * (V2(i) - ratio) + ratio
+            else
+              tmp = D_VAR(i) * STEP * 0.5
+              V2(i) = V2(i) + P_VAR(i) * 0.5 * STEP * ( 1 - 0.5 * tmp *
+     *             ( 1 - 1.0 / 3.0 * tmp ) )
+            end if
+          END IF
+        end do
+
+C ===== Extrapolation and error estimation ========
+
+        ERRold=ERR
+        ERR=0.0D0
+          do i=1,NVAR
+             ERR = ERR + ((V2(i)-V1(i))/(ATOL(i) + RTOL(i)*V2(i)))**2
+          end do       
+        ERR = DSQRT( ERR/NVAR )
+        STEPold=STEP
+
+C ===== choosing the stepsize =====================
+
+        factor = 0.9*ERR**(-0.35)*ERRold**0.2
+        if (IsReject) then
+            facmax=1.
+        else
+            facmax=8.
+        end if 
+        factor = DMAX1( 1.25D-1, DMIN1(factor,facmax) )
+        STEP = DMIN1( STEPMAX, DMAX1(STEPMIN,factor*STEP) )    
+
+C===================================================
+
+        if ( (ERR.gt.1).and.(STEPold.gt.STEPMIN) ) then
+          IsReject = .true.
+        else
+          IsReject = .false.
+          do 140 i=1,NVAR
+             VAR(i)  = DMAX1(V2(i), 0.d0)
+ 140      continue 
+          T = Tplus     
+        end if
+      if ( T .lt. Tnext ) go to 10
+
+      TIME = Tnext
+      RETURN 
+      END        
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/qssa1.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/qssa1.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/qssa1.f	(revision 2696)
@@ -0,0 +1,136 @@
+C -- QSSA WITH STEADY STATE APPROXIMATION --
+C    For plain QSSA (to remove the steady state assumption)
+C    modify slow -> 0, fast -> 1e20
+C
+
+      SUBROUTINE INTEGRATE( TIN, TOUT  ) 
+
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+
+C TIN - Start Time
+      KPP_REAL TIN
+C TOUT - End Time
+      KPP_REAL TOUT
+
+C Local variables
+      KPP_REAL P_VAR(NVAR), D_VAR(NVAR), V1(NVAR), V2(NVAR)
+      LOGICAL IsReject
+      KPP_REAL T, Tnext, STEP, STEPold, Told, SUP
+      KPP_REAL ERR, ERRold, ratio, factor, facmax, tmp
+      INTEGER I
+      KPP_REAL slow, fast
+
+      T = TIN
+      Tnext = TOUT
+      STEP = DMAX1(STEPMIN,1.d-10)
+      Told = T
+      SUP  = 1e-14
+      IsReject = .false.
+      ERR = 1.d0
+      ERRold = 1.d0
+      slow = 0.01
+      fast = 10.  
+
+ 10    continue  
+       Tplus = T + STEP
+       if ( Tplus .gt. Tnext ) then
+          STEP = Tnext - T
+          Tplus = Tnext
+       end if
+
+
+        TITI = TIME
+        TIME = T
+        CALL Update_SUN() 
+        CALL Update_RCONST()
+        TIME = TITI
+        CALL FSPLIT_VAR ( VAR,  P_VAR, D_VAR )
+
+        do i=1,NVAR
+          IF ( D_VAR(i)*step .lt. slow) THEN       ! SLOW SPECIES
+             XXX = STEP * (P_VAR(I) - D_VAR(I)*VAR(I))
+             V1(I) = VAR(I) + XXX
+             V2(I) = VAR(I) + 0.5*XXX
+          ELSE IF ( D_VAR(i)*step .GT. fast) THEN  ! FAST SPECIES
+             V1(I) = P_VAR(I)/D_VAR(I)
+             V2(I) = V1(I)
+          ELSE                                    ! MEDIUM LIVED
+            if ( abs(D_VAR(i)).gt.SUP ) then
+              ratio = P_VAR(i)/D_VAR(i)
+              tmp = exp(-D_VAR(i)*STEP*0.5)
+              V1(i) = tmp * tmp * (VAR(i) - ratio) + ratio
+              V2(i) = tmp * (VAR(i) - ratio) + ratio
+            else
+              tmp = D_VAR(i) * STEP * 0.5
+              V1(i) = VAR(i) + P_VAR(i) * STEP * ( 1 - tmp *
+     *             ( 1 - 2.0 / 3.0 * tmp ) )
+              V2(i) = VAR(i) + P_VAR(i) * 0.5 * STEP*( 1-0.5*tmp*
+     *             ( 1 - 1.0 / 3.0 * tmp ) )
+              end if
+          END IF
+        end do
+
+        TITI = TIME
+        TIME = T + 0.5*STEP
+        CALL Update_SUN() 
+        CALL Update_RCONST()
+        TIME = TITI
+        CALL FSPLIT_VAR ( V2,  P_VAR, D_VAR )
+
+        do i=1,NVAR
+          IF ( D_VAR(i)*step .lt. slow) THEN       ! SLOW SPECIES
+             XXX = STEP * (P_VAR(I) - D_VAR(I)*VAR(I))
+             V2(I) = V2(I) + 0.5*XXX
+          ELSE IF ( D_VAR(i)*step .GT. fast) THEN  ! FAST SPECIES
+             V2(I) = P_VAR(I)/D_VAR(I)
+          ELSE                                    ! MEDIUM LIVED
+            if ( abs(D_VAR(i)).gt.SUP ) then
+              ratio = P_VAR(i)/D_VAR(i)
+              tmp = exp(-D_VAR(i)*STEP*0.5)
+              V2(i) = tmp * (V2(i) - ratio) + ratio
+            else
+              tmp = D_VAR(i) * STEP * 0.5
+              V2(i) = V2(i) + P_VAR(i) * 0.5 * STEP * ( 1 - 0.5 * tmp *
+     *             ( 1 - 1.0 / 3.0 * tmp ) )
+            end if
+          END IF
+        end do
+
+C ===== Extrapolation and error estimation ========
+
+        ERRold=ERR
+        ERR=0.0D0
+          do i=1,NVAR
+             ERR = ERR + ((V2(i)-V1(i))/(ATOL(i) + RTOL(i)*V2(i)))**2
+          end do       
+        ERR = DSQRT( ERR/NVAR )
+        STEPold=STEP
+
+C ===== choosing the stepsize =====================
+
+        factor = 0.9*ERR**(-0.35)*ERRold**0.2
+        if (IsReject) then
+            facmax=1.
+        else
+            facmax=8.
+        end if 
+        factor = DMAX1( 1.25D-1, DMIN1(factor,facmax) )
+        STEP = DMIN1( STEPMAX, DMAX1(STEPMIN,factor*STEP) )    
+
+C===================================================
+
+        if ( (ERR.gt.1).and.(STEPold.gt.STEPMIN) ) then
+          IsReject = .true.
+        else
+          IsReject = .false.
+          do 140 i=1,NVAR
+             VAR(i)  = DMAX1(V2(i), 0.d0)
+ 140      continue 
+          T = Tplus     
+        end if
+      if ( T .lt. Tnext ) go to 10
+
+      TIME = Tnext
+      RETURN 
+      END        
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/qssafix.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/qssafix.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/qssafix.def	(revision 2696)
@@ -0,0 +1,16 @@
+ 
+#FUNCTION SPLIT
+#JACOBIAN OFF
+#SPARSEDATA OFF
+#DOUBLE ON
+#INTFILE qssafix
+
+#INLINE F_INIT_INT
+        STEPMIN=0.0001
+        STEPMAX=60.
+#ENDINLINE
+
+#INLINE C_INIT_INT
+  STEPMIN=0.0001;
+  STEPMAX=60.;
+#ENDINLINE
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/qssafix.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/qssafix.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/qssafix.f	(revision 2696)
@@ -0,0 +1,56 @@
+C --- Plain QSSA with fixed step size
+C
+      SUBROUTINE INTEGRATE( TIN, TOUT  ) 
+
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+
+C TIN - Start Time
+      KPP_REAL TIN
+C TOUT - End Time
+      KPP_REAL TOUT
+
+C Local variables
+      KPP_REAL P_VAR(NVAR), D_VAR(NVAR)                    
+      LOGICAL IsReject
+      KPP_REAL T, Tnext, STEP, Told, SUP
+      KPP_REAL ratio, tmp
+      INTEGER i
+
+      T = TIN
+      Tnext = TOUT
+      STEP = 0.1
+      Told = T
+      SUP  = 1e-14
+      IsReject = .false.
+
+C -- BELOW THIS LIMIT USE TAYLOR INSTEAD OF EXP ---
+
+      do while ( T.lt.Tnext )   
+   
+        if ( T.gt.Tnext ) then
+          STEP = Tnext - Told
+          T = Tnext
+        end if
+
+        CALL FSPLIT_VAR ( VAR,  P_VAR, D_VAR )
+
+        do i=1,NVAR
+          if ( abs(D_VAR(i)).gt.SUP ) then
+            ratio = P_VAR(i)/D_VAR(i)
+            tmp = exp(-D_VAR(i)*STEP)
+            VAR(i) = tmp * (VAR(i) - ratio) + ratio
+          else
+            tmp = D_VAR(i) * STEP
+            VAR(i) = VAR(i) + P_VAR(i) * 0.5 * STEP * ( 1 - 0.5 * tmp *
+     *             ( 1 - 1.0 / 3.0 * tmp ) )
+          end if
+        end do
+
+        T = T + STEP
+        TIME = T
+
+      end do
+
+      RETURN 
+      END        
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/rodas3.c
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/rodas3.c	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/rodas3.c	(revision 2696)
@@ -0,0 +1,313 @@
+
+	#define MAX(a,b) ((a) >= (b) ) ?(a):(b)
+	#define MIN(b,c) ((b) <  (c) ) ?(b):(c)	
+	#define abs(x)   ((x) >=  0  ) ?(x):(-x) 
+	#define dabs(y)  (double)abs(y) 
+	#define DSQRT(d) (double)pow(d,0.5)
+
+	void (*forfun)(int,KPP_REAL,KPP_REAL [],KPP_REAL []);
+	void (*forjac)(int,KPP_REAL,KPP_REAL [],KPP_REAL []);
+	
+
+void FUNC_CHEM(int N,KPP_REAL T,KPP_REAL Y[NVAR],KPP_REAL P[NVAR])
+	{
+         KPP_REAL Told;
+         Told = TIME;
+         TIME = T;
+         Update_SUN();
+         Update_PHOTO();
+         Fun( Y, FIX, RCONST, P );
+         TIME = Told;
+        } /* function fun ends here */
+
+void JAC_CHEM(int N,KPP_REAL T,KPP_REAL Y[NVAR],KPP_REAL J[LU_NONZERO])
+	{
+         KPP_REAL Told;
+         Told = TIME;
+         TIME = T;
+         Update_SUN();
+         Update_PHOTO();
+         Jac_SP( Y, FIX, RCONST, J );
+         TIME = Told;
+        } /* function jac_sp ends here */
+
+
+     INTEGRATE( KPP_REAL TIN, KPP_REAL TOUT )
+      {
+	/*  TIN - Start Time       */   
+	/*  TOUT - End Time          */
+
+        int INFO[5];
+		
+	forfun = &FUNC_CHEM;
+	forjac = &JAC_CHEM;	
+        INFO[0] = Autonomous;
+
+ RODAS3( NVAR,TIN,TOUT,STEPMIN,STEPMAX,STEPMIN,VAR,ATOL,RTOL,INFO
+ ,forfun ,forjac );
+	
+}
+    
+
+
+int RODAS3(int N,KPP_REAL T, KPP_REAL Tnext,KPP_REAL Hmin,KPP_REAL Hmax,
+   KPP_REAL Hstart,KPP_REAL y[NVAR],KPP_REAL AbsTol[NVAR],KPP_REAL RelTol[NVAR],
+   int INFO[5],void (*forfun)(int,KPP_REAL,KPP_REAL [],KPP_REAL []),
+   void (*forjac)(int,KPP_REAL,KPP_REAL [],KPP_REAL []) )
+   {
+/*
+       Stiffly accurate Rosenbrock 3(2), with 
+     stiffly accurate embedded formula for error control.  
+
+     All the arguments aggree with the KPP syntax.
+
+  INPUT ARGUMENTS:
+    y = Vector of (NVAR) concentrations, contains the
+         initial values on input
+     [T, Tnext] = the integration interval
+     Hmin, Hmax = lower and upper bounds for the selected step-size.
+          Note that for Step = Hmin the current computed
+          solution is unconditionally accepted by the error
+          control mechanism.
+     AbsTol, RelTol = (NVAR) dimensional vectors of 
+          componentwise absolute and relative tolerances.
+     FUNC_CHEM = name of routine of derivatives. KPP syntax.
+          See the header below.
+     JAC_CHEM = name of routine that computes the Jacobian, in
+          sparse format. KPP syntax. See the header below.
+     Info(1) = 1  for  autonomous   system
+             = 0  for nonautonomous system 
+
+  OUTPUT ARGUMENTS:
+     y = the values of concentrations at Tend.
+     T = equals Tend on output.
+     Info(2) = # of FUNC_CHEM calls.
+     Info(3) = # of JAC_CHEM calls.
+     Info(4) = # of accepted steps.
+     Info(5) = # of rejected steps.
+    
+     Adrian Sandu, March 1996
+     The Center for Global and Regional Environmental Research
+*/
+      KPP_REAL   K1[NVAR], K2[NVAR], K3[NVAR], K4[NVAR];
+      KPP_REAL   F1[NVAR], JAC[LU_NONZERO];
+      KPP_REAL   ghinv,uround,c43,x1,x2,ytol;
+      KPP_REAL   ynew[NVAR];
+      KPP_REAL   H, Hold, Tplus,tau,tau1,tau2,tau3;
+      KPP_REAL   ERR, factor, facmax;
+      int n,nfcn,njac,Naccept,Nreject,i,j,ier;
+      char IsReject,Autonomous;	
+	
+
+
+/*      Initialization of counters, etc.	*/
+      Autonomous = (INFO[0] == 1);         
+      uround = (double)1e-15;               
+      c43 = (double)(-8.e0/3.e0);
+      H = MAX( (double)1e-8, Hstart );
+      Hmin = MAX(Hmin,uround*(Tnext-T));
+      Hmax = MIN(Hmax,Tnext-T);
+      Tplus = T;
+      IsReject = 0;
+      Naccept  = 0;
+      Nreject  = 0;
+      nfcn     = 0;
+      njac     = 0;
+
+
+/*  === Starting the time loop ===      */
+
+while(T<Tnext)
+{
+ ten :
+       Tplus = T + H;
+
+       if ( Tplus > Tnext )
+	{
+          H = Tnext - T;
+          Tplus = Tnext;
+        }
+
+       (*forjac)(NVAR, T, y,JAC );               
+
+       njac = njac+1;
+       ghinv = (double)-2.0e0/H;
+	for(j=0;j<NVAR;j++)
+	    JAC[LU_DIAG[j]] = JAC[LU_DIAG[j]] + ghinv;  
+	
+
+ ier = KppDecomp (JAC);
+
+ if ( ier != 0)
+ {
+  if( H > Hmin ) 
+  {
+   H = (double)5.0e-1*H; 
+   goto ten;	   
+  }
+  else
+   printf("IER <> 0 , H = %d", H);
+ }/* main ier if ends*/	
+		
+
+	(*forfun)(NVAR , T, y, F1 ) ;              
+
+
+/*  ====== NONAUTONOMOUS CASE ===============         */
+
+        if( Autonomous == 0)
+	{
+         tau = DSQRT( uround*MAX( (double)1.0e-5, dabs(T) ) );    
+  	 (*forfun)(NVAR , T+tau , y ,K2 ); 
+         nfcn=nfcn+1;
+	 for(j=0;j<NVAR;j++)
+	     K3[j] = ( K2[j]-F1[j] )/tau;          	  
+
+  
+/*  ----- STAGE 1 (NONAUTONOMOUS) -----	*/	
+         x1 = (double)0.5*H;
+
+	 for(j=0;j<NVAR;j++)
+	     K1[j] =  F1[j] + x1*K3[j]; 
+	 
+         KppSolve (JAC, K1);
+
+/*  ----- STAGE 2 (NONAUTONOMOUS) -----	*/
+
+	 x1 = (double)4.e0/H;
+
+	 x2 = (double)1.5e0*H;
+
+	 for(j=0;j<NVAR;j++)
+	     K2[j] = F1[j] - x1*K1[j] + x2*K3[j];     
+
+	 KppSolve (JAC, K2);
+	}/* if nonautonomous case ends here */
+
+
+/*  ====== AUTONOMOUS CASE ===============	*/
+       else
+       {
+/*  ----- STAGE 1 (AUTONOMOUS) ----- 		*/
+	 for(j=0;j<NVAR;j++)
+	     K1[j] =  F1[j];  
+	 
+         KppSolve (JAC, K1);
+      
+/*  ----- STAGE 2 (AUTONOMOUS) -----	*/
+
+	x1 = (double)4.e0/H;
+
+	for(j=0;j<NVAR;j++)
+	    K2[j] = F1[j] - x1*K1[j];  	 
+	
+	KppSolve(JAC,K2);
+	
+       }   /* else autonomous case ends here */
+
+       
+/*  ----- STAGE 3 -----	*/
+
+        for(j=0;j<NVAR;j++)
+            ynew[j] = y[j] - 2.0e0*K1[j];    
+       
+
+        (*forfun)(NVAR , T+H , ynew ,F1 ); 
+	 
+        nfcn=nfcn+1;       
+     
+        for(j=0;j<NVAR;j++)
+            K3[j] = F1[j] + ( -K1[j] + K2[j] )/H;	
+      	
+        KppSolve (JAC, K3);
+         
+
+
+/*  ----- STAGE 4 -----	*/
+
+	for(j=0;j<NVAR;j++)
+	    ynew[j] = y[j] - 2.0e0*K1[j] - K3[j];    
+	
+	(*forfun)(NVAR, T+H , ynew, F1 );	
+	 
+	nfcn=nfcn+1;
+	for(j=0;j<NVAR;j++)
+	    K4[j] = F1[j] + ( -K1[j] + K2[j] - c43*K3[j]  )/H;  
+	  
+	KppSolve (JAC, K4);
+
+
+/*  ---- The Solution ---	*/
+	for(j=0;j<NVAR;j++)
+	    ynew[j] = y[j] - (double)2.0e0*K1[j] - K3[j] - K4[j];  
+	
+
+
+/*  ====== Error estimation ========	*/
+
+	ERR=(double)0.e0; 
+
+	for(i=0;i<NVAR;i++)
+	{
+	 ytol = AbsTol[i] + RelTol[i]*dabs(ynew[i]);
+	 ERR = (double)(ERR + pow( K4[i]/ytol,2 ));     
+	}
+
+        ERR = MAX( uround, DSQRT( ERR/NVAR ) );
+	    
+/*  ======= Choose the stepsize ===============================	*/
+
+        factor = (double)0.9/pow(ERR,1.e0/3.e0);   
+
+	if(IsReject == 1)
+	   facmax = (double)1.0;
+	else
+	   facmax = (double)10.0;
+	
+        factor =(double) MAX( 1.0e-1, MIN(factor,facmax) );    
+
+        Hold = H;
+        H = (double)MIN( Hmax, MAX(Hmin,factor*H) );                 
+
+
+/*  ======= Rejected/Accepted Step ============================	*/
+
+	if( (ERR>1) && (Hold>Hmin) )
+	{
+	 IsReject = 1;
+	 Nreject = Nreject + 1;
+	}		
+	else
+	{
+	 IsReject = 0;
+	
+ 	 for(i=0;i<NVAR;i++)
+	 {
+	  y[i] = ynew[i];
+	 }
+	 T = Tplus;
+	 Naccept = Naccept+1;    
+	} /* 	  else should end here */
+
+
+/*  ======= End of the time loop ===============================	*/
+
+
+  }/*      while loop (T < Tnext) ends here    */
+
+    
+      
+/*  ======= Output Information =================================	*/
+
+      INFO[1] = nfcn;
+      INFO[2] = njac;
+      INFO[3] = Naccept;
+      INFO[4] = Nreject;                   
+  	
+      return 0; 	
+      
+ 
+} /* function rodas ends here */
+  
+
+ 
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/rodas3.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/rodas3.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/rodas3.def	(revision 2696)
@@ -0,0 +1,55 @@
+ 
+#FUNCTION AGGREGATE
+#JACOBIAN SPARSE_LU_ROW
+
+#DOUBLE ON 
+#INTFILE rodas3
+
+#INLINE F77_DECL_INT
+      INTEGER Autonomous
+      COMMON /INTGDATA/ Autonomous
+      REAL*8 STEPSTART
+      COMMON /GDATA/ STEPSTART
+#ENDINLINE
+
+#INLINE F77_INIT_INT
+        STEPMIN=0.0001
+        STEPMAX=3600.
+        Autonomous = 0
+        STEPSTART=STEPMIN
+#ENDINLINE
+
+
+#INLINE F90_DECL_INT
+      INTEGER :: Autonomous
+      DOUBLE PRECISION :: STEPSTART
+#ENDINLINE
+
+#INLINE F90_INIT_INT
+        STEPMIN=1.e-4
+        STEPMAX=3600.
+        Autonomous = 0
+        STEPSTART=STEPMIN
+#ENDINLINE
+
+
+#INLINE C_DECL_INT
+extern int Autonomous;
+extern double STEPSTART;
+#ENDINLINE
+
+#INLINE C_DATA_INT
+int Autonomous;
+double STEPSTART;
+#ENDINLINE
+
+
+
+#INLINE C_INIT_INT
+        STEPMIN=0.0001;
+        STEPMAX=3600.0;
+        Autonomous = 0;
+        STEPSTART=STEPMIN;
+#ENDINLINE
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/rodas3.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/rodas3.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/rodas3.f	(revision 2696)
@@ -0,0 +1,271 @@
+      SUBROUTINE INTEGRATE( TIN, TOUT )
+
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+
+C TIN - Start Time          
+      KPP_REAL TIN
+C TOUT - End Time
+      KPP_REAL TOUT
+
+      INTEGER    INFO(5)
+
+      EXTERNAL   FUNC_CHEM, JAC_CHEM
+
+      INFO(1) = Autonomous
+        CALL RODAS3(NVAR,TIN,TOUT,STEPMIN,STEPMAX,STEPMIN,
+     +                   VAR,ATOL,RTOL,
+     +                   Info,FUNC_CHEM,JAC_CHEM)
+
+      RETURN
+      END
+
+
+
+      SUBROUTINE RODAS3(N,T,Tnext,Hmin,Hmax,Hstart,
+     +                   y,AbsTol,RelTol,
+     +                   Info,FUNC_CHEM,JAC_CHEM)
+      IMPLICIT NONE
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_sparse.h'
+
+C     Stiffly accurate Rosenbrock 3(2), with 
+C     stiffly accurate embedded formula for error control.  
+C
+C     All the arguments aggree with the KPP syntax.
+C
+C  INPUT ARGUMENTS:
+C     y = Vector of (NVAR) concentrations, contains the
+C         initial values on input
+C     [T, Tnext] = the integration interval
+C     Hmin, Hmax = lower and upper bounds for the selected step-size.
+C          Note that for Step = Hmin the current computed
+C          solution is unconditionally accepted by the error
+C          control mechanism.
+C     AbsTol, RelTol = (NVAR) dimensional vectors of 
+C          componentwise absolute and relative tolerances.
+C     FUNC_CHEM = name of routine of derivatives. KPP syntax.
+C          See the header below.
+C     JAC_CHEM = name of routine that computes the Jacobian, in
+C          sparse format. KPP syntax. See the header below.
+C     Info(1) = 1  for  autonomous   system
+C             = 0  for nonautonomous system 
+C
+C  OUTPUT ARGUMENTS:
+C     y = the values of concentrations at Tend.
+C     T = equals Tend on output.
+C     Info(2) = # of FUNC_CHEM calls.
+C     Info(3) = # of JAC_CHEM calls.
+C     Info(4) = # of accepted steps.
+C     Info(5) = # of rejected steps.
+C    
+C     Adrian Sandu, March 1996
+C     The Center for Global and Regional Environmental Research
+
+      KPP_REAL   K1(NVAR), K2(NVAR), K3(NVAR), K4(NVAR)
+      KPP_REAL   F1(NVAR), JAC(LU_NONZERO)
+      KPP_REAL   Hmin,Hmax,Hnew,Hstart,ghinv,uround
+      KPP_REAL   y(NVAR), ynew(NVAR)
+      KPP_REAL   AbsTol(NVAR), RelTol(NVAR)
+      KPP_REAL   T, Tnext, H, Hold, Tplus
+      KPP_REAL   ERR, factor, facmax
+      KPP_REAL   c43, tau, x1, x2, ytol, elo
+      
+      INTEGER    n,nfcn,njac,Naccept,Nreject,i,j,ier
+      INTEGER    Info(5)
+      LOGICAL    IsReject,Autonomous
+      EXTERNAL   FUNC_CHEM, JAC_CHEM
+
+c     Initialization of counters, etc.
+      Autonomous = Info(1) .EQ. 1
+      uround = 1.d-15
+      c43 = - 8.d0/3.d0 
+      H = DMAX1(1.d-8, Hstart)
+      Hmin = DMAX1(Hmin,uround*(Tnext-T))
+      Hmax = DMIN1(Hmax,Tnext-T)
+      Tplus = T
+      IsReject = .false.
+      Naccept  = 0
+      Nreject  = 0
+      Nfcn     = 0
+      Njac     = 0
+
+
+C === Starting the time loop ===      
+ 10    continue  
+       Tplus = T + H
+       if ( Tplus .gt. Tnext ) then
+          H = Tnext - T
+          Tplus = Tnext
+       end if
+
+       CALL JAC_CHEM(NVAR, T, y, JAC)
+       Njac = Njac+1
+       gHinv = -2.0d0/H
+       do 20 j=1,NVAR
+         JAC(LU_DIAG(j)) = JAC(LU_DIAG(j)) + gHinv
+ 20    continue
+       CALL KppDecomp (JAC, ier)
+
+       if (ier.ne.0) then
+         if ( H.gt.Hmin) then
+            H = 5.0d-1*H
+            go to 10
+         else
+            print *,'IER <> 0, H=',H
+            stop
+         end if      
+       end if  
+       
+       CALL FUNC_CHEM(NVAR, T, y, F1)
+
+C ====== NONAUTONOMOUS CASE ===============
+       IF (.not. Autonomous) THEN
+         tau = DSQRT( uround*DMAX1( 1.0d-5, DABS(T) ) )
+         CALL FUNC_CHEM(NVAR, T+tau, y, K2)
+         nfcn=nfcn+1
+         do 30 j = 1,NVAR
+           K3(j) = ( K2(j)-F1(j) )/tau
+ 30      continue
+ 
+C ----- STAGE 1 (NONAUTONOMOUS) -----
+         x1 = 0.5*H
+         do 40 j = 1,NVAR
+           K1(j) =  F1(j) + x1*K3(j) 
+ 40      continue
+         CALL KppSolve (JAC, K1)
+
+C ----- STAGE 2 (NONAUTONOMOUS) -----
+         x1 = 4.d0/H
+         x2 = 1.5d0*H
+         do 50 j = 1,NVAR
+           K2(j) = F1(j) - x1*K1(j) + x2*K3(j)
+ 50      continue
+         CALL KppSolve (JAC, K2)
+
+C ====== AUTONOMOUS CASE ===============
+       ELSE
+C ----- STAGE 1 (AUTONOMOUS) -----
+         do 60 j = 1,NVAR
+           K1(j) =  F1(j) 
+ 60      continue
+         CALL KppSolve (JAC, K1)
+      
+C ----- STAGE 2 (AUTONOMOUS) -----
+         x1 = 4.d0/H
+         do 70 j = 1,NVAR
+           K2(j) = F1(j) - x1*K1(j) 
+ 70      continue
+         CALL KppSolve (JAC, K2)
+       END IF
+       
+C ----- STAGE 3 -----
+       do 80 j = 1,NVAR
+         ynew(j) = y(j) - 2.0d0*K1(j) 
+ 80    continue
+       CALL FUNC_CHEM(NVAR, T+H, ynew, F1)
+       nfcn=nfcn+1
+       do 90 j = 1,NVAR
+         K3(j) = F1(j) + ( -K1(j) + K2(j) )/H
+ 90    continue
+       CALL KppSolve (JAC, K3)
+
+C ----- STAGE 4 -----
+       do 100 j = 1,NVAR
+         ynew(j) = y(j) - 2.0d0*K1(j) - K3(j)
+ 100   continue
+       CALL FUNC_CHEM(NVAR, T+H, ynew, F1)
+       nfcn=nfcn+1
+       do 110 j = 1,NVAR
+         K4(j) = F1(j) + ( -K1(j) + K2(j) - C43*K3(j)  )/H
+ 110   continue
+       CALL KppSolve (JAC, K4)
+
+C ---- The Solution ---
+
+       do 120 j = 1,NVAR
+         ynew(j) = y(j) - 2.0d0*K1(j) - K3(j) - K4(j) 
+ 120   continue
+
+
+C ====== Error estimation ========
+
+        ERR=0.d0
+        do 130 i=1,NVAR
+           ytol = AbsTol(i) + RelTol(i)*DABS(ynew(i))
+           ERR = ERR + ( K4(i)/ytol )**2
+ 130    continue      
+        ERR = DMAX1( uround, DSQRT( ERR/NVAR ) )
+
+C ======= Choose the stepsize ===============================
+        elo    = 3.0D0 ! estimator local order
+        factor = DMAX1(2.0D-1,DMIN1(6.0D0,ERR**(1.0D0/elo)/.9D0))
+        Hnew   = DMIN1(Hmax,DMAX1(Hmin, H/factor))
+ 
+C ======= Rejected/Accepted Step ============================
+ 
+        IF ( (ERR.gt.1).and.(H.gt.Hmin) ) THEN
+          IsReject = .true.
+	  H = DMIN1(H/10,Hnew)
+          Nreject  = Nreject+1
+        ELSE
+          DO 140 i=1,NVAR
+             y(i)  = ynew(i)
+ 140      CONTINUE
+          T = Tplus
+	  IF (.NOT.IsReject) THEN
+	      H = Hnew   ! Do not increase stepsize if previos step was rejected
+	  END IF    
+          IsReject = .false.
+          Naccept = Naccept+1
+        END IF
+
+
+C ======= End of the time loop ===============================
+      if ( T .lt. Tnext ) go to 10
+ 
+     
+      
+C ======= Output Information =================================
+      Info(2) = Nfcn
+      Info(3) = Njac
+      Info(4) = Naccept
+      Info(5) = Nreject
+      Hstart  = H
+      
+      RETURN 
+      END        
+
+  
+ 
+      SUBROUTINE FUNC_CHEM(N, T, Y, P)
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+      INTEGER N
+      KPP_REAL   T, Told
+      KPP_REAL   Y(NVAR), P(NVAR)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Fun( Y, FIX, RCONST, P )
+      TIME = Told
+      RETURN
+      END
+
+ 
+      SUBROUTINE JAC_CHEM(N, T, Y, J)
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+      INTEGER N
+      KPP_REAL   Told, T
+      KPP_REAL   Y(NVAR), J(LU_NONZERO)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Jac_SP( Y, FIX, RCONST, J )
+      TIME = Told
+      RETURN
+      END                                                                                                                 
+  
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/rodas3_ddm.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/rodas3_ddm.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/rodas3_ddm.def	(revision 2696)
@@ -0,0 +1,52 @@
+ 
+#FUNCTION AGGREGATE
+#JACOBIAN SPARSE_LU_ROW
+
+#DOUBLE ON 
+#INTFILE rodas3_ddm
+#HESSIAN ON 
+
+#INLINE F77_DECL_INT
+      INTEGER Autonomous
+      COMMON /INTGDATA/ Autonomous
+      REAL*8 STEPSTART
+      COMMON /GDATA/ STEPSTART
+#ENDINLINE
+
+#INLINE F77_INIT_INT
+        STEPMIN=1.0E-4
+        STEPMAX=3600.
+        Autonomous = 0
+        STEPSTART=STEPMIN
+#ENDINLINE
+
+
+#INLINE F90_DECL_INT
+      INTEGER :: Autonomous
+      DOUBLE PRECISION :: STEPSTART
+#ENDINLINE
+
+#INLINE F90_INIT_INT
+        STEPMIN=1.e-4
+        STEPMAX=3600.
+        Autonomous = 0
+        STEPSTART=STEPMIN
+#ENDINLINE
+
+
+#INLINE C_DECL_INT
+    extern int Autonomous;
+    extern double STEPSTART;
+#ENDINLINE
+ 
+#INLINE C_DATA_INT
+    int Autonomous;
+    double STEPSTART;
+#ENDINLINE
+
+#INLINE C_INIT_INT
+        STEPMIN = 0.0001;
+        STEPMAX = 3600.0;
+        Autonomous = 0;
+        STEPSTART = STEPMIN;
+#ENDINLINE                                                                     
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/rodas3_ddm.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/rodas3_ddm.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/rodas3_ddm.f	(revision 2696)
@@ -0,0 +1,592 @@
+      SUBROUTINE INTEGRATE( NSENSIT, Y, TIN, TOUT )
+ 
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+
+C TIN - Start Time
+      KPP_REAL TIN
+C TOUT - End Time
+      KPP_REAL TOUT
+C Y - Concentrations and Sensitivities
+      KPP_REAL Y(NVAR*(NSENSIT+1))
+C ---  Note: Y contains: (1:NVAR) concentrations, followed by
+C ---                   (1:NVAR) sensitivities w.r.t. first parameter, followed by
+C ---                   etc.,  followed by          
+C ---                   (1:NVAR) sensitivities w.r.t. NSENSIT's parameter
+
+      INTEGER    INFO(5)
+
+      EXTERNAL FUNC_CHEM, JAC_CHEM
+
+      INFO(1) = Autonomous
+ 
+      CALL RODAS3_DDM(NVAR,NSENSIT,TIN,TOUT,STEPMIN,STEPMAX,
+     +                   STEPMIN,Y,ATOL,RTOL,
+     +                   Info,FUNC_CHEM,JAC_CHEM)
+ 
+
+      RETURN
+      END
+  
+
+ 
+ 
+      SUBROUTINE RODAS3_DDM(N,NSENSIT,T,Tnext,Hmin,Hmax,Hstart,
+     +                   y,AbsTol,RelTol,
+     +                   Info,FUNC_CHEM,JAC_CHEM)
+     
+      IMPLICIT NONE
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'                                                                                                  
+      INCLUDE 'KPP_ROOT_sparse.h'                                                                                                  
+C
+C       Stiffly accurate Rosenbrock 3(2), with 
+C       stiffly accurate embedded formula for error control.  
+C
+C Direct decoupled computation of sensitivities.
+C The global variable DDMTYPE distinguishes between:
+C      DDMTYPE = 0 : sensitivities w.r.t. initial values
+C      DDMTYPE = 1 : sensitivities w.r.t. parameters
+C
+C  INPUT ARGUMENTS:
+C     y = Vector of:   (1:NVAR) concentrations, followed by
+C                      (1:NVAR) sensitivities w.r.t. first parameter, followed by
+C                       etc.,  followed by          
+C                      (1:NVAR) sensitivities w.r.t. NSENSIT's parameter
+C         (y contains initial values at input, final values at output)
+C     [T, Tnext] = the integration interval
+C     Hmin, Hmax = lower and upper bounds for the selected step-size.
+C          Note that for Step = Hmin the current computed
+C          solution is unconditionally accepted by the error
+C          control mechanism.
+C     AbsTol, RelTol = (NVAR) dimensional vectors of
+C          componentwise absolute and relative tolerances.
+C     FUNC_CHEM = name of routine of derivatives. KPP syntax.
+C          See the header below.
+C     JAC_CHEM = name of routine that computes the Jacobian, in
+C          sparse format. KPP syntax. See the header below.
+C     Info(1) = 1  for  Autonomous   system
+C             = 0  for nonAutonomous system
+C
+C  OUTPUT ARGUMENTS:
+C     y = the values of concentrations and sensitivities at Tend.
+C     T = equals TENDon output.
+C     Info(2) = # of FUNC_CHEM CALLs.
+C     Info(3) = # of JAC_CHEM CALLs.
+C     Info(4) = # of accepted steps.
+C     Info(5) = # of rejected steps.
+C 
+C    Adrian Sandu, December 2001
+C 
+
+      INTEGER      NSENSIT
+      KPP_REAL y(NVAR*(NSENSIT+1)), ynew(NVAR*(NSENSIT+1))
+      KPP_REAL K1(NVAR*(NSENSIT+1))
+      KPP_REAL K2(NVAR*(NSENSIT+1))
+      KPP_REAL K3(NVAR*(NSENSIT+1))
+      KPP_REAL K4(NVAR*(NSENSIT+1))
+      KPP_REAL Fv(NVAR), Hv(NVAR)
+      KPP_REAL DFDT(NVAR*(NSENSIT+1))
+      KPP_REAL DJDP(NVAR*NSENSIT)
+      KPP_REAL DFDP(NVAR*NSENSIT), DFDPDT(NVAR*NSENSIT)
+      KPP_REAL JAC(LU_NONZERO), AJAC(LU_NONZERO)
+      KPP_REAL DJDT(LU_NONZERO)
+      KPP_REAL HESS(NHESS)
+      KPP_REAL Hmin,Hmax,Hstart,ghinv,uround
+      KPP_REAL AbsTol(NVAR), RelTol(NVAR)
+      KPP_REAL T, Tnext, Tplus, H, Hnew, elo
+      KPP_REAL ERR, factor, facmax
+      KPP_REAL w, e, beta1, beta2, beta3, beta4
+      KPP_REAL tau, x1, x2, ytol, dround
+      
+      INTEGER    n,nfcn,njac,Naccept,Nreject,i,j,ier
+      INTEGER    Info(5)
+      LOGICAL    IsReject, Autonomous
+      EXTERNAL    FUNC_CHEM, JAC_CHEM, HESS_CHEM                                                                                                
+
+C   The method coefficients
+      DOUBLE PRECISION gamma, gamma2, gamma3, gamma4
+      PARAMETER ( gamma  =  0.5D+00 )
+      PARAMETER ( gamma2 =  1.5D+00 ) 
+      PARAMETER ( gamma3 =  0.0D+00 ) 
+      PARAMETER ( gamma4 =  0.0D+00 ) 
+      DOUBLE PRECISION a21, a31, a32, a41, a42, a43
+      PARAMETER (  a21 = 0.0D+00  )   
+      PARAMETER (  a31 = 2.0D+00  )   
+      PARAMETER (  a32 = 0.0D+00  )   
+      PARAMETER (  a41 = 2.0D+00  )   
+      PARAMETER (  a42 = 0.0D+00  )   
+      PARAMETER (  a43 = 1.0D+00  )   
+      DOUBLE PRECISION alpha2, alpha3, alpha4
+      PARAMETER (  alpha2  = 0.0D0  )   
+      PARAMETER (  alpha3  = 1.0D0  )   
+      PARAMETER (  alpha4  = 1.0D0  )   
+      DOUBLE PRECISION c21, c31, c32, c41, c42, c43
+      PARAMETER (  c21  =  4.0D0  ) 
+      PARAMETER (  c31  =  1.0D0  ) 
+      PARAMETER (  c32  = -1.0D0  ) 
+      PARAMETER (  c41  =  1.0D0  ) 
+      PARAMETER (  c42  = -1.0D0  ) 
+      PARAMETER (  c43  = -2.666666666666667D0 ) 
+      DOUBLE PRECISION b1, b2, b3, b4
+      PARAMETER (  b1 = 2.0D+00  ) 
+      PARAMETER (  b2 = 0.0D0  ) 
+      PARAMETER (  b3 = 1.0D0  ) 
+      PARAMETER (  b4 = 1.0D0  )  
+      DOUBLE PRECISION d1, d2, d3, d4
+      PARAMETER (  d1 = 0.0D0  ) 
+      PARAMETER (  d2 = 0.0D0  ) 
+      PARAMETER (  d3 = 0.0D0  ) 
+      PARAMETER (  d4 = 1.0D0  )  
+
+
+c     Initialization of counters, etc.
+      Autonomous = Info(1) .EQ. 1
+      uround = 1.d-15
+      dround = DSQRT(uround)
+      IF (Hmax.le.0.D0) THEN
+          Hmax = DABS(Tnext-T)
+      END IF	  
+      H = DMAX1(1.d-8, Hstart)
+      Tplus = T
+      IsReject = .false.
+      Naccept  = 0
+      Nreject  = 0
+      Nfcn     = 0
+      Njac     = 0
+ 
+C === Starting the time loop ===
+ 10    CONTINUE
+  
+       Tplus = T + H
+       IF ( Tplus .gt. Tnext ) THEN
+          H = Tnext - T
+          Tplus = Tnext
+       END IF
+ 
+C              Initial Function, Jacobian, and Hessian Values
+       CALL FUNC_CHEM(NVAR, T, y, Fv)
+       CALL JAC_CHEM(NVAR, T, y, JAC)
+       CALL HESS_CHEM( NVAR, T, y, HESS )
+       IF (DDMTYPE .EQ. 1) THEN
+          CALL DFUNDPAR(NVAR, NSENSIT, T, y, DFDP)
+       END IF	  
+ 
+C              The time derivatives for non-Autonomous case                                                                                                                            
+       IF (.not. Autonomous) THEN
+         tau = DSIGN(dround*DMAX1( 1.0d0, DABS(T) ), T)
+         CALL FUNC_CHEM(NVAR, T+tau, y, K2)
+         CALL JAC_CHEM(NVAR, T+tau, y, AJAC)
+         nfcn=nfcn+1
+         DO 20 j = 1,NVAR
+           DFDT(j) = ( K2(j)-Fv(j) )/tau
+ 20      CONTINUE
+         DO 30 j = 1,LU_NONZERO
+           DJDT(j) = ( AJAC(j)-JAC(j) )/tau
+ 30      CONTINUE
+         DO 35 i=1,NSENSIT
+	    CALL Jac_SP_Vec (DJDT,y(i*NVAR+1),DFDT(i*NVAR+1))
+ 35      CONTINUE
+       END IF
+ 
+ 11    CONTINUE  ! From here we restart after a rejected step
+ 
+C              Form the Prediction matrix and compute its LU factorization                                                                                                                           
+       Njac = Njac+1
+       ghinv = 1.0d0/(gamma*H)
+       DO 40 j=1,LU_NONZERO
+         AJAC(j) = -JAC(j)
+ 40    CONTINUE
+       DO 50 j=1,NVAR
+         AJAC(LU_DIAG(j)) = AJAC(LU_DIAG(j)) + ghinv
+ 50    CONTINUE
+       CALL KppDecomp (AJAC, ier)
+C 
+       IF (ier.ne.0) THEN
+         IF ( H.gt.Hmin) THEN
+            H = 5.0d-1*H
+            GO TO 10
+         ELSE
+            PRINT *,'ROS4: Singular factorization at T=',T,'; H=',H
+            STOP
+         END IF
+       END IF
+                                                                                                                            
+C ------------ STAGE 1-------------------------
+       DO 60 j = 1,NVAR
+         K1(j) =  Fv(j)
+ 60    CONTINUE
+       IF (.NOT. Autonomous) THEN
+          beta1 = H*gamma
+	  DO 70 j=1,NVAR
+	    K1(j) = K1(j) + beta1*DFDT(j)	    
+ 70	  CONTINUE
+       END IF
+       CALL KppSolve (AJAC, K1)
+C               --- If  derivative w.r.t. parameters
+       IF (DDMTYPE .EQ. 1) THEN
+	  CALL DJACDPAR(NVAR, NSENSIT, T, y, K1(1), DJDP)
+       END IF
+C               --- End of derivative w.r.t. parameters	  	 
+
+       DO 100 i=1,NSENSIT
+	  CALL Jac_SP_Vec (JAC,y(i*NVAR+1),K1(i*NVAR+1))
+	  CALL Hess_Vec ( HESS, y(i*NVAR+1), K1(1), Hv )
+	  DO 80 j=1,NVAR
+	    K1(i*NVAR+j) = K1(i*NVAR+j) + Hv(j)
+ 80	  CONTINUE	
+          IF (.NOT. Autonomous) THEN
+	    DO 90 j=1,NVAR
+	      K1(i*NVAR+j) = K1(i*NVAR+j) + beta1*DFDT(i*NVAR+j)
+ 90         CONTINUE
+          END IF
+C               --- If  derivative w.r.t. parameters
+	  IF (DDMTYPE .EQ. 1) THEN
+            DO 95 j = 1,NVAR
+	       K1(i*NVAR+j) = K1(i*NVAR+j) + DFDP((i-1)*NVAR+j) 
+     &                           + DJDP((i-1)*NVAR+j)
+ 95        CONTINUE	  
+	  END IF
+C               --- End of derivative w.r.t. parameters	  	 
+          CALL KppSolve (AJAC, K1(i*NVAR+1))
+ 100   CONTINUE
+ 
+C ----------- STAGE 2 -------------------------
+C Note: uses the same function values as Stage 1
+C       DO 110 j = 1,NVAR*(NSENSIT+1)
+C         ynew(j) = y(j) + a21*K1(j)
+C 110   CONTINUE
+C       CALL FUNC_CHEM(NVAR, T+alpha2*H, ynew, Fv)
+C       IF (DDMTYPE .EQ. 1) THEN
+C         CALL DFUNDPAR(NVAR, NSENSIT, T+alpha2*H, ynew, DFDP)
+C       END IF	 
+C       nfcn=nfcn+1
+       beta1 = c21/H
+       DO 120 j = 1,NVAR
+         K2(j) = Fv(j) + beta1*K1(j)
+ 120   CONTINUE
+       IF (.NOT. Autonomous) THEN
+         beta2 = H*gamma2
+	 DO 130 j=1,NVAR
+	    K2(j) = K2(j) + beta2*DFDT(j)	    
+ 130     CONTINUE
+       END IF
+       CALL KppSolve (AJAC, K2)
+C               --- If  derivative w.r.t. parameters
+       IF (DDMTYPE .EQ. 1) THEN
+	  CALL DJACDPAR(NVAR, NSENSIT, T, y, K2(1), DJDP)
+       END IF
+C               --- End of derivative w.r.t. parameters	  	 
+       
+       CALL JAC_CHEM(NVAR, T+alpha2*H, ynew, JAC)
+       njac=njac+1
+       DO 160 i=1,NSENSIT
+	  CALL Jac_SP_Vec (JAC,ynew(i*NVAR+1),K2(i*NVAR+1))
+	  CALL Hess_Vec ( HESS, y(i*NVAR+1), K2(1), Hv )
+          DO 140 j = 1,NVAR
+	     K2(i*NVAR+j) = K2(i*NVAR+j) + beta1*K1(i*NVAR+j) 
+     &                          + Hv(j)
+ 140      CONTINUE	
+          IF (.NOT. Autonomous) THEN
+	     DO 150 j=1,NVAR
+	        K2(i*NVAR+j) = K2(i*NVAR+j) + beta2*DFDT(i*NVAR+j)
+ 150         CONTINUE
+          END IF
+C               --- If  derivative w.r.t. parameters
+	  IF (DDMTYPE .EQ. 1) THEN
+            DO 155 j = 1,NVAR
+	       K2(i*NVAR+j) = K2(i*NVAR+j) + DFDP((i-1)*NVAR+j) 
+     &                           + DJDP((i-1)*NVAR+j)
+ 155        CONTINUE	  
+	  END IF
+C               --- End of derivative w.r.t. parameters	  	 
+          CALL KppSolve (AJAC, K2(i*NVAR+1))
+ 160   CONTINUE
+ 
+ 
+C ------------ STAGE 3 -------------------------
+       DO 170 j = 1,NVAR*(NSENSIT+1)
+         ynew(j) = y(j) + a31*K1(j) + a32*K2(j)
+ 170   CONTINUE
+       CALL FUNC_CHEM(NVAR, T+alpha3*H, ynew, Fv)
+       IF (DDMTYPE .EQ. 1) THEN
+         CALL DFUNDPAR(NVAR, NSENSIT, T+alpha3*H, ynew, DFDP)
+       END IF	    
+       nfcn=nfcn+1
+       beta1 = c31/H
+       beta2 = c32/H
+       DO 180 j = 1,NVAR
+         K3(j) = Fv(j) + beta1*K1(j) + beta2*K2(j)
+ 180   CONTINUE
+       IF (.NOT. Autonomous) THEN
+         beta3 = H*gamma3
+	 DO 190 j=1,NVAR
+	    K3(j) = K3(j) + beta3*DFDT(j)	    
+ 190     CONTINUE
+       END IF
+       CALL KppSolve (AJAC, K3)
+C               --- If  derivative w.r.t. parameters
+       IF (DDMTYPE .EQ. 1) THEN
+	  CALL DJACDPAR(NVAR, NSENSIT, T, y, K3(1), DJDP)
+       END IF
+C               --- End of derivative w.r.t. parameters	  	 
+       
+       CALL JAC_CHEM(NVAR, T+alpha3*H, ynew, JAC)
+       njac=njac+1
+       DO 220 i=1,NSENSIT
+	  CALL Jac_SP_Vec (JAC,ynew(i*NVAR+1),K3(i*NVAR+1))
+	  CALL Hess_Vec ( HESS, y(i*NVAR+1), K3(1), Hv )
+          DO 200 j = 1,NVAR
+	       K3(i*NVAR+j) = K3(i*NVAR+j) + beta1*K1(i*NVAR+j) 
+     &                       + beta2*K2(i*NVAR+j) + Hv(j)
+ 200      CONTINUE	 
+          IF (.NOT. Autonomous) THEN
+	     DO 210 j=1,NVAR
+	        K3(i*NVAR+j) = K3(i*NVAR+j) + beta3*DFDT(i*NVAR+j)
+ 210         CONTINUE
+          END IF
+C               --- If  derivative w.r.t. parameters
+	  IF (DDMTYPE .EQ. 1) THEN
+            DO 215 j = 1,NVAR
+	       K3(i*NVAR+j) = K3(i*NVAR+j) + DFDP((i-1)*NVAR+j) 
+     &                           + DJDP((i-1)*NVAR+j)
+ 215        CONTINUE	  
+	  END IF	 
+C               --- End of derivative w.r.t. parameters
+          CALL KppSolve (AJAC, K3(i*NVAR+1))
+ 220   CONTINUE
+ 
+C ------------ STAGE 4 -------------------------
+       DO 225 j = 1,NVAR*(NSENSIT+1)
+         ynew(j) = y(j) + a41*K1(j) + a42*K2(j) + a43*K3(j)
+ 225   CONTINUE
+       CALL FUNC_CHEM(NVAR, T+alpha4*H, ynew, Fv)
+       IF (DDMTYPE .EQ. 1) THEN
+         CALL DFUNDPAR(NVAR, NSENSIT, T+alpha4*H, ynew, DFDP)
+       END IF	    
+       nfcn=nfcn+1
+       beta1 = c41/H
+       beta2 = c42/H
+       beta3 = c43/H
+       DO 230 j = 1,NVAR
+         K4(j) = Fv(j) + beta1*K1(j) + beta2*K2(j) + beta3*K3(j)
+ 230   CONTINUE
+       IF (.NOT. Autonomous) THEN
+          beta4 = H*gamma4
+	  DO 240 j=1,NVAR
+	    K4(j) = K4(j) + beta4*DFDT(j)
+ 240      CONTINUE
+       END IF
+       CALL KppSolve (AJAC, K4)
+C               --- If  derivative w.r.t. parameters
+       IF (DDMTYPE .EQ. 1) THEN
+	  CALL DJACDPAR(NVAR, NSENSIT, T, y, K4(1), DJDP)
+       END IF
+C               --- End of derivative w.r.t. parameters	  	 
+       
+       njac=njac+1
+       DO 270 i=1,NSENSIT
+	  CALL Jac_SP_Vec (JAC,ynew(i*NVAR+1),K4(i*NVAR+1))
+	  CALL Hess_Vec ( HESS, y(i*NVAR+1), K4(1), Hv )
+          DO 250 j = 1,NVAR
+	       K4(i*NVAR+j) = K4(i*NVAR+j) + beta1*K1(i*NVAR+j) 
+     &                       + beta2*K2(i*NVAR+j) + beta3*K3(i*NVAR+j)
+     &                       + Hv(j)
+ 250      CONTINUE
+          IF (.NOT. Autonomous) THEN
+	     DO 260 j=1,NVAR
+	        K4(i*NVAR+j) = K4(i*NVAR+j) + beta4*DFDT(i*NVAR+j)
+ 260         CONTINUE
+          END IF
+C --- If  derivative w.r.t. parameters
+	  IF (DDMTYPE .EQ. 1) THEN
+            DO 265 j = 1,NVAR
+	       K4(i*NVAR+j) = K4(i*NVAR+j) + DFDP((i-1)*NVAR+j) 
+     &                           + DJDP((i-1)*NVAR+j)
+ 265        CONTINUE	  
+	  END IF	 
+          CALL KppSolve (AJAC, K4(i*NVAR+1))
+ 270   CONTINUE
+
+
+C ---- The Solution ---
+       DO 280 j = 1,NVAR*(NSENSIT+1)
+C         ynew(j) = y(j) + b1*K1(j) + b2*K2(j) + b3*K3(j) + b4*K4(j)
+         ynew(j) = y(j) + 2*K1(j) + K3(j) + K4(j)
+ 280   CONTINUE
+ 
+ 
+C ====== Error estimation -- can be extended to control sensitivities too ========
+ 
+        ERR = 0.d0
+        DO 290 i=1,NVAR
+           w = AbsTol(i) + RelTol(i)*DMAX1(DABS(ynew(i)),DABS(y(i)))
+C	   e = d1*K1(i) + d2*K2(i) + d3*K3(i) + d4*K4(i)
+	   e = K4(i)
+           ERR = ERR + ( e/w )**2
+ 290    CONTINUE
+        ERR = DMAX1( uround, DSQRT( ERR/NVAR ) )
+ 
+C ======= Choose the stepsize ===============================
+ 
+        elo    = 3.0D0 ! estimator local order
+        factor = DMAX1(2.0D-1,DMIN1(6.0D0,ERR**(1.0D0/elo)/.9D0))
+        Hnew   = DMIN1(Hmax,DMAX1(Hmin, H/factor))
+ 
+C ======= Rejected/Accepted Step ============================
+ 
+        IF ( (ERR.gt.1).and.(H.gt.Hmin) ) THEN
+          IsReject = .true.
+	  H = DMIN1(H/10,Hnew)
+          Nreject  = Nreject+1
+        ELSE
+          DO 300 i=1,NVAR*(NSENSIT+1)
+             y(i)  = ynew(i)
+ 300      CONTINUE
+          T = Tplus
+	  IF (.NOT.IsReject) THEN
+	      H = Hnew   ! Do not increase stepsize if previos step was rejected
+	  END IF    
+          IsReject = .false.
+          Naccept = Naccept+1
+        END IF
+ 
+C ======= End of the time loop ===============================
+      IF ( T .lt. Tnext ) GO TO 10
+ 
+ 
+ 
+C ======= Output Information =================================
+      Info(2) = Nfcn
+      Info(3) = Njac
+      Info(4) = Naccept
+      Info(5) = Nreject
+      Hstart  = H
+ 
+      RETURN
+      END
+ 
+ 
+ 
+      SUBROUTINE FUNC_CHEM(N, T, Y, P)
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+      INTEGER N
+      KPP_REAL   T, Told
+      KPP_REAL   Y(NVAR), P(NVAR)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Fun( Y,  FIX, RCONST, P )
+      TIME = Told
+      RETURN
+      END
+
+ 
+      SUBROUTINE DFUNDPAR(N, NSENSIT, T, Y, P)
+C ---  Computes the partial derivatives of FUNC_CHEM w.r.t. parameters 
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+C ---  NCOEFF, JCOEFF useful for derivatives w.r.t. rate coefficients    
+      INTEGER N
+      INTEGER NCOEFF, JCOEFF(NREACT)
+      COMMON /DDMRCOEFF/ NCOEFF, JCOEFF
+      
+      KPP_REAL   T, Told
+      KPP_REAL   Y(NVAR), P(NVAR*NSENSIT)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+C
+      IF (DDMTYPE .EQ. 0) THEN
+C ---  Note: the values below are for sensitivities w.r.t. initial values;
+C ---       they may have to be changed for other applications
+        DO j=1,NSENSIT
+          DO i=1,NVAR
+	    P(i+NVAR*(j-1)) = 0.0D0
+	  END DO
+        END DO
+      ELSE	
+C ---  Example: the call below is for sensitivities w.r.t. rate coefficients;
+C ---       JCOEFF(1:NSENSIT) are the indices of the NSENSIT rate coefficients
+C ---       w.r.t. which one differentiates
+        CALL dFun_dRcoeff( Y,  FIX, NCOEFF, JCOEFF, P )
+      END IF
+      TIME = Told
+      RETURN
+      END
+ 
+      SUBROUTINE JAC_CHEM(N, T, Y, J)
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+      INTEGER N
+      KPP_REAL   Told, T
+      KPP_REAL   Y(NVAR), J(LU_NONZERO)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Jac_SP( Y,  FIX, RCONST, J )
+      TIME = Told
+      RETURN
+      END                                                                                                                 
+
+ 
+      SUBROUTINE DJACDPAR(N, NSENSIT, T, Y, U, P)
+C ---  Computes the partial derivatives of JAC w.r.t. parameters times user vector U
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+C ---  NCOEFF, JCOEFF useful for derivatives w.r.t. rate coefficients    
+      INTEGER NCOEFF, JCOEFF(NREACT)
+      COMMON /DDMRCOEFF/ NCOEFF, JCOEFF
+      
+      INTEGER N
+      KPP_REAL   T, Told
+      KPP_REAL   Y(NVAR), U(NVAR)
+      KPP_REAL   P(NVAR*NSENSIT)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+C
+      IF (DDMTYPE .EQ. 0) THEN
+C ---  Note: the values below are for sensitivities w.r.t. initial values;
+C ---       they may have to be changed for other applications
+        DO j=1,NSENSIT
+          DO i=1,NVAR
+	    P(i+NVAR*(j-1)) = 0.0D0
+	  END DO
+        END DO
+      ELSE	
+C ---  Example: the call below is for sensitivities w.r.t. rate coefficients;
+C ---       JCOEFF(1:NSENSIT) are the indices of the NSENSIT rate coefficients
+C ---       w.r.t. which one differentiates
+        CALL dJac_dRcoeff( Y,  FIX, U, NCOEFF, JCOEFF, P )
+      END IF
+      TIME = Told
+      RETURN
+      END
+
+ 
+      SUBROUTINE HESS_CHEM(N, T, Y, HESS)
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+      INTEGER N
+      KPP_REAL   Told, T
+      KPP_REAL   Y(NVAR), HESS(NHESS)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Hessian( Y,  FIX, RCONST, HESS )
+      TIME = Told
+      RETURN
+      END                                                                                                                 
+
+
+
+
+
+                                                                                                                            
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/ros1.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/ros1.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/ros1.def	(revision 2696)
@@ -0,0 +1,50 @@
+ 
+#FUNCTION AGGREGATE
+#JACOBIAN SPARSE_LU_ROW
+
+#DOUBLE ON 
+#INTFILE ros1
+
+#INLINE F77_DECL_INT
+      INTEGER Autonomous
+      COMMON /INTGDATA/ Autonomous
+      REAL*8 STEPSTART
+      COMMON /GDATA/ STEPSTART
+#ENDINLINE
+
+#INLINE F77_INIT_INT
+        STEPMIN=30.0
+        STEPMAX=30.0
+        Autonomous = 0
+        STEPSTART=STEPMIN
+#ENDINLINE
+
+
+#INLINE F90_DECL_INT
+      INTEGER :: Autonomous
+      DOUBLE PRECISION :: STEPSTART
+#ENDINLINE
+
+#INLINE F90_INIT_INT
+        STEPMIN=30.0
+        STEPMAX=30.0
+        Autonomous = 0
+        STEPSTART=STEPMIN
+#ENDINLINE
+
+#INLINE C_DECL_INT
+    extern int Autonomous;
+    extern double STEPSTART;
+#ENDINLINE
+ 
+#INLINE C_DATA_INT
+int Autonomous;
+double STEPSTART;
+#ENDINLINE
+
+#INLINE C_INIT_INT
+        STEPMIN = 30.0;
+        STEPMAX = 30.0;
+        Autonomous = 0;
+        STEPSTART = STEPMIN;
+#ENDINLINE                                                                     
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/ros1.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/ros1.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/ros1.f	(revision 2696)
@@ -0,0 +1,166 @@
+      SUBROUTINE INTEGRATE( TIN, TOUT )
+ 
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+
+C TIN - Start Time
+      KPP_REAL TIN
+C TOUT - End Time
+      KPP_REAL TOUT
+
+      INTEGER    INFO(5)
+
+      EXTERNAL FUNC_CHEM, JAC_CHEM
+
+      INFO(1) = Autonomous
+ 
+      CALL ROS1(NVAR,TIN,TOUT,STEPMIN,VAR,
+     +                   Info,FUNC_CHEM,JAC_CHEM)
+ 
+
+      RETURN
+      END
+  
+
+ 
+ 
+      SUBROUTINE ROS1(N,T,Tnext,Hstart,
+     +                   y,Info,FUNC_CHEM,JAC_CHEM)
+     
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_sparse.h'                                                                                                  
+C
+C  Linearly Implicit Euler
+C  A method of theoretical interest but of no practical value
+C
+C  INPUT ARGUMENTS:
+C     y = Vector of (NVAR) concentrations, contains the
+C         initial values on input
+C     [T, Tnext] = the integration interval
+C     Hmin, Hmax = lower and upper bounds for the selected step-size.
+C          Note that for Step = Hmin the current computed
+C          solution is unconditionally accepted by the error
+C          control mechanism.
+C     AbsTol, RelTol = (NVAR) dimensional vectors of
+C          componentwise absolute and relative tolerances.
+C     FUNC_CHEM = name of routine of derivatives. KPP syntax.
+C          See the header below.
+C     JAC_CHEM = name of routine that computes the Jacobian, in
+C          sparse format. KPP syntax. See the header below.
+C     Info(1) = 1  for  Autonomous   system
+C             = 0  for nonAutonomous system
+C
+C  OUTPUT ARGUMENTS:
+C     y = the values of concentrations at Tend.
+C     T = equals TENDon output.
+C     Info(2) = # of FUNC_CHEM CALLs.
+C     Info(3) = # of JAC_CHEM CALLs.
+C     Info(4) = # of accepted steps.
+C     Info(5) = # of rejected steps.
+C     Hstart = The last accepted stepsize
+C 
+C    Adrian Sandu, December 2001
+C 
+      KPP_REAL Fv(NVAR)
+      KPP_REAL JAC(LU_NONZERO)
+      KPP_REAL H, Hstart
+      KPP_REAL y(NVAR)
+      KPP_REAL T, Tnext, Tplus
+      KPP_REAL elo,ghinv,uround
+      
+      INTEGER    n,nfcn,njac,Naccept,Nreject,i,j
+      INTEGER    Info(5)
+      LOGICAL    IsReject, Autonomous
+      EXTERNAL    FUNC_CHEM, JAC_CHEM                                                                                                
+
+
+      H     = Hstart
+      Tplus = T
+      Nfcn  = 0
+      Njac  = 0
+  
+C === Starting the time loop ===
+ 10    CONTINUE
+  
+       Tplus = T + H
+       IF ( Tplus .gt. Tnext ) THEN
+          H = Tnext - T
+          Tplus = Tnext
+       END IF
+ 
+C              Initial Function and Jacobian values                                                                                                                            
+       CALL FUNC_CHEM(NVAR, T, y, Fv)
+       Nfcn = Nfcn+1
+       CALL JAC_CHEM(NVAR, T, y, JAC)
+       Njac = Njac+1
+ 
+C              Form the Prediction matrix and compute its LU factorization                                                                                                                           
+       DO 40 j=1,NVAR
+         JAC(LU_DIAG(j)) = JAC(LU_DIAG(j)) - 1.0d0/H
+ 40    CONTINUE
+       CALL KppDecomp (JAC, ier)
+C 
+       IF (ier.ne.0) THEN
+          PRINT *,'ROS1: Singular factorization at T=',T,'; H=',H
+          STOP
+       END IF
+ 
+C ------------ STAGE 1-------------------------
+       CALL KppSolve (JAC, Fv)
+ 
+C ---- The Solution ---
+       DO 160 j = 1,NVAR
+         y(j) = y(j) - Fv(j) 
+ 160   CONTINUE
+       T = T + H
+ 
+C ======= End of the time loop ===============================
+      IF ( T .lt. Tnext ) GO TO 10
+ 
+C ======= Output Information =================================
+      Info(2) = Nfcn
+      Info(3) = Njac
+      Info(4) = Njac
+      Info(5) = 0
+      Hstart  = H
+ 
+      RETURN
+      END
+ 
+ 
+      SUBROUTINE FUNC_CHEM(N, T, Y, P)
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+      INTEGER N
+      KPP_REAL   T, Told
+      KPP_REAL   Y(NVAR), P(NVAR)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Fun( Y,  FIX, RCONST, P )
+      TIME = Told
+      RETURN
+      END
+
+ 
+      SUBROUTINE JAC_CHEM(N, T, Y, J)
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+      INTEGER N
+      KPP_REAL   Told, T
+      KPP_REAL   Y(NVAR), J(LU_NONZERO)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Jac_SP( Y,  FIX, RCONST, J )
+      TIME = Told
+      RETURN
+      END                                                                                                                 
+
+
+
+
+
+                                                                                                                            
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/ros1_ddm.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/ros1_ddm.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/ros1_ddm.def	(revision 2696)
@@ -0,0 +1,50 @@
+ 
+#FUNCTION AGGREGATE
+#JACOBIAN SPARSE_LU_ROW
+
+#DOUBLE ON 
+#INTFILE ros1_ddm
+
+#INLINE F77_DECL_INT
+      INTEGER Autonomous
+      COMMON /INTGDATA/ Autonomous
+      REAL*8 STEPSTART
+      COMMON /GDATA/ STEPSTART
+#ENDINLINE
+
+#INLINE F77_INIT_INT
+        STEPMIN=30.0
+        STEPMAX=30.0
+        Autonomous = 0
+        STEPSTART=STEPMIN
+#ENDINLINE
+
+#INLINE F90_DECL_INT
+      INTEGER :: Autonomous
+      DOUBLE PRECISION :: STEPSTART
+#ENDINLINE
+
+#INLINE F90_INIT_INT
+        STEPMIN=30.0
+        STEPMAX=30.0
+        Autonomous = 0
+        STEPSTART=STEPMIN
+#ENDINLINE
+
+
+#INLINE C_DECL_INT
+    extern int Autonomous;
+    extern double STEPSTART;
+#ENDINLINE
+ 
+#INLINE C_DATA_INT
+int Autonomous;
+double STEPSTART;
+#ENDINLINE
+
+#INLINE C_INIT_INT
+        STEPMIN = 30.0;
+        STEPMAX = 30.0;
+        Autonomous = 0;
+        STEPSTART = STEPMIN;
+#ENDINLINE                                                                     
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/ros1_ddm.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/ros1_ddm.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/ros1_ddm.f	(revision 2696)
@@ -0,0 +1,300 @@
+      SUBROUTINE INTEGRATE( NSENSIT, Y, TIN, TOUT )
+ 
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+
+      INTEGER   NSENSIT
+C TIN - Start Time
+      KPP_REAL TIN
+C TOUT - End Time
+      KPP_REAL TOUT
+C TOUT - End Time
+      KPP_REAL Y( NVAR*(NSENSIT+1) )
+C ---  Note: Y contains: (1:NVAR) concentrations, followed by
+C ---                   (1:NVAR) sensitivities w.r.t. first parameter, followed by
+C ---                   etc.,  followed by          
+C ---                   (1:NVAR) sensitivities w.r.t. NSENSIT's parameter
+
+      INTEGER    INFO(5)
+
+      EXTERNAL FUNC_CHEM, JAC_CHEM,  HESS_CHEM
+
+      INFO(1) = Autonomous
+ 
+      CALL ROS1_DDM(NVAR,NSENSIT,TIN,TOUT,STEPMIN,Y,
+     +                   Info,FUNC_CHEM,JAC_CHEM,HESS_CHEM)
+ 
+
+      RETURN
+      END
+  
+
+ 
+ 
+      SUBROUTINE ROS1_DDM(N,NSENSIT,T,Tnext,Hstart,
+     +                   y,Info,FUNC_CHEM,JAC_CHEM,HESS_CHEM)
+      IMPLICIT NONE
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_sparse.h'                                                                                                  
+      INCLUDE 'KPP_ROOT_global.h'                                                                                                  
+C
+C  Linearly Implicit Euler with direct-decoupled calculation of sensitivities
+C  A method of theoretical interest but of no practical value
+C
+C The global variable DDMTYPE distinguishes between:
+C      DDMTYPE = 0 : sensitivities w.r.t. initial values
+C      DDMTYPE = 1 : sensitivities w.r.t. parameters
+C
+C  INPUT ARGUMENTS:
+C     y = Vector of:   (1:NVAR) concentrations, followed by
+C                      (1:NVAR) sensitivities w.r.t. first parameter, followed by
+C                       etc.,  followed by          
+C                      (1:NVAR) sensitivities w.r.t. NSENSIT's parameter
+C         (y contains initial values at input, final values at output)
+C     [T, Tnext] = the integration interval
+C     Hmin, Hmax = lower and upper bounds for the selected step-size.
+C          Note that for Step = Hmin the current computed
+C          solution is unconditionally accepted by the error
+C          control mechanism.
+C     AbsTol, RelTol = (NVAR) dimensional vectors of
+C          componentwise absolute and relative tolerances.
+C     FUNC_CHEM = name of routine of derivatives. KPP syntax.
+C          See the header below.
+C     JAC_CHEM = name of routine that computes the Jacobian, in
+C          sparse format. KPP syntax. See the header below.
+C     Info(1) = 1  for  Autonomous   system
+C             = 0  for nonAutonomous system
+C
+C  OUTPUT ARGUMENTS:
+C     y = the values of concentrations at Tend.
+C     T = equals TENDon output.
+C     Info(2) = # of FUNC_CHEM CALLs.
+C     Info(3) = # of JAC_CHEM CALLs.
+C     Info(4) = # of accepted steps.
+C     Info(5) = # of rejected steps.
+C     Hstart = The last accepted stepsize
+C 
+C    Adrian Sandu, December 2001
+C 
+      INTEGER   NSENSIT
+      KPP_REAL Fv(NVAR*(NSENSIT+1)), Hv(NVAR)
+      KPP_REAL DFDP(NVAR*NSENSIT)
+      KPP_REAL JAC(LU_NONZERO), AJAC(LU_NONZERO)
+      KPP_REAL HESS(NHESS)
+      KPP_REAL DJDP(NVAR*NSENSIT)
+      KPP_REAL H, Hstart
+      KPP_REAL y(NVAR*(NSENSIT+1))
+      KPP_REAL T, Tnext, Tplus
+      KPP_REAL elo,ghinv,uround
+      
+      INTEGER    n,nfcn,njac,Naccept,Nreject,i,j,ier
+      INTEGER    Info(5)
+      LOGICAL    IsReject, Autonomous
+      EXTERNAL   FUNC_CHEM, JAC_CHEM, HESS_CHEM                                                                                                
+
+
+      H     = Hstart
+      Tplus = T
+      Nfcn  = 0
+      Njac  = 0
+  
+C === Starting the time loop ===
+ 10    CONTINUE
+  
+       Tplus = T + H
+       IF ( Tplus .gt. Tnext ) THEN
+          H = Tnext - T
+          Tplus = Tnext
+       END IF
+ 
+C              Initial Function and Jacobian values                                                                                                                            
+       CALL FUNC_CHEM(NVAR, T, y, Fv)
+       Nfcn = Nfcn+1
+       CALL JAC_CHEM(NVAR, T, y, JAC)
+       Njac = Njac+1
+       CALL HESS_CHEM( NVAR, T, y, HESS )
+       IF (DDMTYPE .EQ. 1) THEN
+          CALL DFUNDPAR(NVAR, NSENSIT, T, y, DFDP)
+       END IF  
+ 
+C              Form the Prediction matrix and compute its LU factorization                                                                                                                           
+       DO 40 j=1,LU_NONZERO
+         AJAC(j) = -JAC(j)
+ 40    CONTINUE
+       DO 50 j=1,NVAR
+         AJAC(LU_DIAG(j)) = AJAC(LU_DIAG(j)) + 1.0d0/H
+ 50    CONTINUE
+       CALL KppDecomp (AJAC, ier)
+C 
+       IF (ier.ne.0) THEN
+          PRINT *,'ROS1: Singular factorization at T=',T,'; H=',H
+          STOP
+       END IF
+ 
+C ------------ STAGE 1-------------------------
+       CALL KppSolve (AJAC, Fv)
+C               --- If  derivative w.r.t. parameters
+	 IF (DDMTYPE .EQ. 1) THEN
+	    CALL DJACDPAR(NVAR, NSENSIT, T, y, Fv(1), DJDP)
+	 END IF
+C               --- End of derivative w.r.t. parameters	  	 
+
+       DO 100 i=1,NSENSIT
+	  CALL Jac_SP_Vec (JAC, y(i*NVAR+1), Fv(i*NVAR+1))
+	  CALL Hess_Vec ( HESS, y(i*NVAR+1), Fv(1), Hv )
+          IF (DDMTYPE .EQ. 0) THEN
+	    DO 80 j=1,NVAR
+	      Fv(i*NVAR+j) = Fv(i*NVAR+j) + Hv(j)
+ 80	    CONTINUE	    
+          ELSE
+	    DO 90 j=1,NVAR
+	      Fv(i*NVAR+j) = Fv(i*NVAR+j) + Hv(j) 
+     &      	      + DFDP(i*NVAR+j)+ DJDP((i-1)*NVAR+j)
+ 90	    CONTINUE	    
+          END IF  
+          CALL KppSolve (AJAC, Fv(i*NVAR+1))
+ 100   CONTINUE
+ 
+C ---- The Solution ---
+       DO 160 j = 1,NVAR*(NSENSIT+1)
+         y(j) = y(j) + Fv(j) 
+ 160   CONTINUE
+       T = T + H
+ 
+C ======= End of the time loop ===============================
+      IF ( T .lt. Tnext ) THEN
+          GO TO 10
+      END IF	  
+ 
+C ======= Output Information =================================
+      Info(2) = Nfcn
+      Info(3) = Njac
+      Info(4) = Naccept
+      Info(5) = Nreject
+      Hstart  = H
+ 
+      RETURN
+      END
+ 
+ 
+ 
+      SUBROUTINE FUNC_CHEM(N, T, Y, P)
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+      INTEGER N
+      KPP_REAL   T, Told
+      KPP_REAL   Y(NVAR), P(NVAR)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Fun( Y,  FIX, RCONST, P )
+      TIME = Told
+      RETURN
+      END
+
+ 
+      SUBROUTINE DFUNDPAR(N, NSENSIT, T, Y, P)
+C ---  Computes the partial derivatives of FUNC_CHEM w.r.t. parameters 
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+C ---  NCOEFF, JCOEFF useful for derivatives w.r.t. rate coefficients    
+      INTEGER NCOEFF, JCOEFF(NREACT)
+      COMMON /DDMRCOEFF/ NCOEFF, JCOEFF
+      
+      INTEGER N
+      KPP_REAL   T, Told
+      KPP_REAL   Y(NVAR), P(NVAR*NSENSIT)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+C
+      IF (DDMTYPE .EQ. 0) THEN
+C ---  Note: the values below are for sensitivities w.r.t. initial values;
+C ---       they may have to be changed for other applications
+        DO j=1,NSENSIT
+          DO i=1,NVAR
+	    P(i+NVAR*(j-1)) = 0.0D0
+	  END DO
+        END DO
+      ELSE	
+C ---  Example: the call below is for sensitivities w.r.t. rate coefficients;
+C ---       JCOEFF(1:NSENSIT) are the indices of the NSENSIT rate coefficients
+C ---       w.r.t. which one differentiates
+        CALL dFun_dRcoeff( Y,  FIX, NCOEFF, JCOEFF, P )
+      END IF
+      TIME = Told
+      RETURN
+      END
+ 
+      SUBROUTINE JAC_CHEM(N, T, Y, J)
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+      INTEGER N
+      KPP_REAL   Told, T
+      KPP_REAL   Y(NVAR), J(LU_NONZERO)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Jac_SP( Y,  FIX, RCONST, J )
+      TIME = Told
+      RETURN
+      END                                                                                                                 
+
+ 
+      SUBROUTINE DJACDPAR(N, NSENSIT, T, Y, U, P)
+C ---  Computes the partial derivatives of JAC w.r.t. parameters times user vector U
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+C ---  NCOEFF, JCOEFF useful for derivatives w.r.t. rate coefficients    
+      INTEGER NCOEFF, JCOEFF(NREACT)
+      COMMON /DDMRCOEFF/ NCOEFF, JCOEFF
+      
+      INTEGER N
+      KPP_REAL   T, Told
+      KPP_REAL   Y(NVAR), U(NVAR)
+      KPP_REAL   P(NVAR*NSENSIT)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+C
+      IF (DDMTYPE .EQ. 0) THEN
+C ---  Note: the values below are for sensitivities w.r.t. initial values;
+C ---       they may have to be changed for other applications
+        DO j=1,NSENSIT
+          DO i=1,NVAR
+	    P(i+NVAR*(j-1)) = 0.0D0
+	  END DO
+        END DO
+      ELSE	
+C ---  Example: the call below is for sensitivities w.r.t. rate coefficients;
+C ---       JCOEFF(1:NSENSIT) are the indices of the NSENSIT rate coefficients
+C ---       w.r.t. which one differentiates
+        CALL dJac_dRcoeff( Y,  FIX, U, NCOEFF, JCOEFF, P )
+      END IF
+      TIME = Told
+      RETURN
+      END
+
+ 
+      SUBROUTINE HESS_CHEM(N, T, Y, HESS)
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+      INTEGER N
+      KPP_REAL   Told, T
+      KPP_REAL   Y(NVAR), HESS(NHESS)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Hessian( Y, FIX, RCONST, HESS )
+      TIME = Told
+      RETURN
+      END                                                                                                                 
+
+
+
+                                                                                                                            
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/ros2.c
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/ros2.c	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/ros2.c	(revision 2696)
@@ -0,0 +1,311 @@
+
+	#define MAX(a,b) ((a) >= (b)) ?(a):(b)
+	#define MIN(b,c) ((b) <  (c)) ?(b):(c)	
+	#define abs(x)   ((x) >=  0 ) ?(x):(-x) 
+	#define dabs(y)  (double)abs(y) 
+	#define DSQRT(d) (double)pow(d,0.5)
+	#define signum(x)((x) >=  0 ) ?(1):(-1)
+
+
+
+	void (*forfun)(int,KPP_REAL,KPP_REAL [],KPP_REAL []);
+	void (*forjac)(int,KPP_REAL,KPP_REAL [],KPP_REAL []);
+
+
+
+ 
+void FUNC_CHEM(int N,KPP_REAL T,KPP_REAL Y[NVAR],KPP_REAL P[NVAR])
+	{
+         KPP_REAL Told;
+         Told = TIME;
+         TIME = T;
+         Update_SUN();
+         Update_RCONST();
+         Fun( Y, FIX, RCONST, P );
+         TIME = Told;
+        }
+ 
+void JAC_CHEM(int N,KPP_REAL T,KPP_REAL Y[NVAR],KPP_REAL J[LU_NONZERO])
+        {
+         KPP_REAL Told;
+         Told = TIME;
+         TIME = T;
+         Update_SUN();
+         Update_RCONST();
+         Jac_SP( Y, FIX, RCONST, J );
+         TIME = Told;
+        }  
+                                                                                                                         
+
+
+
+
+       INTEGRATE(KPP_REAL TIN,KPP_REAL TOUT )
+	{
+ 
+	 /*  TIN - Start Time   */
+	 /*  TOUT - End Time     */
+
+
+         int INFO[5];
+	 forfun = &FUNC_CHEM;
+	 forjac = &JAC_CHEM;	
+         INFO[0] = Autonomous;
+	 ROS2(NVAR,TIN,TOUT,STEPMIN,STEPMAX,STEPMIN,VAR,ATOL
+	 ,RTOL,INFO,forfun,forjac);
+ 
+	}
+ 
+ 
+int ROS2(int N,KPP_REAL T, KPP_REAL Tnext,KPP_REAL Hmin,KPP_REAL Hmax,
+   KPP_REAL Hstart,KPP_REAL y[NVAR],KPP_REAL AbsTol[NVAR],KPP_REAL RelTol[NVAR],
+   int INFO[5],void (*forfun)(int,KPP_REAL,KPP_REAL [],KPP_REAL []),
+   void (*forjac)(int,KPP_REAL,KPP_REAL [],KPP_REAL []) )
+   {
+     
+                                                                                
+/*
+     All the arguments aggree with the KPP syntax.
+
+  INPUT ARGUMENTS:
+     y = Vector of (NVAR) concentrations, contains the
+         initial values on input
+     [T, Tnext] = the integration interval
+     Hmin, Hmax = lower and upper bounds for the selected step-size.
+          Note that for Step = Hmin the current computed
+          solution is unconditionally accepted by the error
+          control mechanism.
+     AbsTol, RelTol = (NVAR) dimensional vectors of
+          componentwise absolute and relative tolerances.
+     FUNC_CHEM = name of routine of derivatives. KPP syntax.
+          See the header below.
+     JAC_CHEM = name of routine that computes the Jacobian, in
+          sparse format. KPP syntax. See the header below.
+     Info(1) = 1  for  autonomous   system
+             = 0  for nonautonomous system
+
+  OUTPUT ARGUMENTS:
+     y = the values of concentrations at Tend.
+     T = equals Tend on output.
+     Info(2) = # of FUNC_CHEM calls.
+     Info(3) = # of JAC_CHEM calls.
+     Info(4) = # of accepted steps.
+     Info(5) = # of rejected steps.
+*/
+ 
+      KPP_REAL K1[NVAR], K2[NVAR], K3[NVAR], K4[NVAR];
+      KPP_REAL F1[NVAR], JAC[LU_NONZERO];
+      KPP_REAL ghinv , uround , dround , c43 , tau;
+      KPP_REAL ynew[NVAR];
+      KPP_REAL H, Hold, Tplus;
+      KPP_REAL ERR, factor, facmax;
+      int n,nfcn,njac,Naccept,Nreject,i,j,ier;
+      char IsReject,Autonomous;
+                                                                            
+      KPP_REAL gamma, m1, m2, alpha, beta, delta, theta, g[NVAR], x[NVAR];
+ 
+/*     Initialization of counters, etc.       */
+      Autonomous = (INFO[0] == 1);         
+      uround = (double)(1e-15);               
+
+      dround = DSQRT(uround);
+      c43 = (double)(- 8.e0/3.e0);
+      H = MAX( (double)1.e-8, Hmin );
+      Tplus = T;
+      IsReject = 0;
+      Naccept  = 0;
+      Nreject  = 0;
+      nfcn     = 0;
+      njac     = 0;
+      gamma = (double)(1.e0 + 1.e0/DSQRT(2.e0));
+ 
+/* === Starting the time loop ===     */
+ while(T < Tnext)
+ {
+ ten :     
+     Tplus = T + H;
+
+     if ( Tplus > Tnext )
+      {
+        H = Tnext - T;
+        Tplus = Tnext;
+      }
+
+     (*forjac)(NVAR, T, y,JAC );               
+
+     njac = njac+1;
+     ghinv = (double)(-1.0e0/(gamma*H));
+     
+     
+     
+     for(j=0;j<NVAR;j++)
+        JAC[LU_DIAG[j]] = JAC[LU_DIAG[j]] + ghinv;
+      
+
+
+     ier = KppDecomp (JAC);
+
+     if ( ier != 0)
+     {
+      if( H > Hmin ) 
+      {
+       H = (double)(5.0e-1*H); 
+       goto ten;	   
+      }
+     else
+       printf("IER <> 0 , H = %d", H);
+       
+     }/* main ier if ends*/	
+		
+
+     (*forfun)(NVAR , T, y, F1 ) ;              
+
+
+
+                                                                                                                            
+
+ 
+/* ====== NONAUTONOMOUS CASE ===============   */
+       if(Autonomous == 0) 
+       {
+         tau =( dround*MAX ((double)1.0e-6, dabs(T)) *signum(T) );
+         (*forfun)(NVAR, T+tau, y, K2);
+         nfcn=nfcn+1;
+	 
+         for(j = 0;j<NVAR;j++)
+	     K3[j] = ( K2[j]-F1[j] )/tau;
+	  
+ 
+/* ----- STAGE 1 (NON-AUTONOMOUS) -----   */
+
+         delta = (double)(gamma*H);
+	 
+         for(j = 0;j<NVAR;j++)
+	     K1[j] =  F1[j] + delta*K3[j];
+	 
+         KppSolve (JAC, K1);
+ 
+
+/* ----- STAGE 2  (NON-AUTONOMOUS) -----   */
+         alpha = (double)(- 1.e0/gamma);
+         for(j = 0;j<NVAR;j++)
+             ynew[j] = y[j] + alpha*K1[j];
+	 
+ 
+         (*forfun)(NVAR, T+H, ynew, F1);
+         nfcn=nfcn+1;
+         beta = (double)(2.e0/(gamma*H));
+         delta = (double)(-gamma*H);
+         for(j = 0;j<NVAR;j++)
+             K2[j] = F1[j] + beta*K1[j] + delta*K3[j];
+	 
+         KppSolve (JAC, K2);
+    
+       }/* if for non - autonomous case ends here  */	
+ 
+/* ====== AUTONOMOUS CASE ===============    */
+       else
+       {
+ 
+/* ----- STAGE 1 (AUTONOMOUS) -----   */
+         for(j = 0;j<NVAR;j++)
+	     K1[j] =  F1[j];
+         
+         KppSolve (JAC, K1);
+ 
+/* ----- STAGE 2  (AUTONOMOUS) -----  */
+         alpha = (double)(- 1.e0/gamma);
+       
+         for(j = 0;j<NVAR;j++)
+             ynew[j] = y[j] + alpha*K1[j];
+       
+         (*forfun)(NVAR, T+H, ynew, F1);
+
+         nfcn=nfcn+1;
+         beta = (double)(2.e0/(gamma*H));
+         for(j = 0;j < NVAR;j++)
+             K2[j] = F1[j] + beta*K1[j];
+       
+         KppSolve (JAC, K2);
+       
+       }/* else autonomous case ends here */
+       
+ 
+                                                                                                            
+/* ---- The Solution ---  */
+       m1 = (double)(-3.e0/(2.e0*gamma));
+       m2 = (double)(-1.e0/(2.e0*gamma));
+       for(j = 0;j<NVAR;j++)
+          ynew[j] = y[j] + m1*K1[j] + m2*K2[j];
+       
+ 
+ 
+/* ====== Error estimation ========    */
+ 
+        ERR=(double)0.e0;
+        theta = (double)(1.e0/(2.e0*gamma));
+	
+        for(i=0;i<NVAR;i++)
+	{
+           g[i] = AbsTol[i] + RelTol[i]*dabs(ynew[i]);
+           ERR = (double)( ERR + pow( ( theta*(K1[i]+K2[i])/g[i] ) , 2.0 ) );
+        }
+         ERR = MAX( uround, DSQRT( ERR/NVAR ) );
+ 
+/* ======= Choose the stepsize ==================  */
+ 
+ 
+        factor = (double)(0.9/pow( ERR,(1.e0/2.e0) ));
+        if (IsReject == 1) 
+	    facmax=(double)1.0;
+        
+	else
+            facmax=(double)10.0;
+        
+	
+        factor =(double) MAX( 1.0e-1, MIN(factor,facmax) );
+        Hold = H;
+        H = (double)MIN( Hmax, MAX(Hmin,factor*H) );
+                                                                                                
+/* ======= Rejected/Accepted Step ==================  */
+ 
+ 
+	if( (ERR>1) && (Hold>Hmin) )
+	{
+	 IsReject = 1;
+	 Nreject = Nreject + 1;
+	}		
+	else
+	{
+	 IsReject = 0;
+ 	 for(i=0;i<NVAR;i++)
+	 {
+	  y[i] = ynew[i];
+	 }
+	T = Tplus;
+	Naccept = Naccept+1;    
+ 
+ 	}/*  else ends here */
+
+ 
+ 
+ 
+ 
+/* ======= End of the time loop =================    */
+  
+ }    /*      while loop (T < Tnext) ends here    */ 
+ 
+ 
+/* ======= Output Information ================      */
+      INFO[1] = nfcn;
+      INFO[2] = njac;
+      INFO[3] = Naccept;
+      INFO[4] = Nreject;
+
+      return 0;	
+	
+  } /* function ros2 ends here   */
+ 
+ 
+
+                                                                                                                            
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/ros2.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/ros2.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/ros2.def	(revision 2696)
@@ -0,0 +1,50 @@
+ 
+#FUNCTION AGGREGATE
+#JACOBIAN SPARSE_LU_ROW
+
+#DOUBLE ON 
+#INTFILE ros2
+
+#INLINE F77_DECL_INT
+      INTEGER Autonomous
+      COMMON /INTGDATA/ Autonomous
+      REAL*8 STEPSTART
+      COMMON /GDATA/ STEPSTART
+#ENDINLINE
+
+#INLINE F77_INIT_INT
+        STEPMIN=0.0001
+        STEPMAX=3600.
+        Autonomous = 0
+        STEPSTART=STEPMIN
+#ENDINLINE
+
+
+#INLINE F90_DECL_INT
+      INTEGER :: Autonomous
+      DOUBLE PRECISION :: STEPSTART
+#ENDINLINE
+
+#INLINE F90_INIT_INT
+        STEPMIN=0.0001
+        STEPMAX=3600.
+        Autonomous = 0
+        STEPSTART=STEPMIN
+#ENDINLINE
+
+#INLINE C_DECL_INT
+    extern int Autonomous;
+    extern double STEPSTART;
+#ENDINLINE
+ 
+#INLINE C_DATA_INT
+int Autonomous;
+double STEPSTART;
+#ENDINLINE
+
+#INLINE C_INIT_INT
+        STEPMIN = 0.0001;
+        STEPMAX = 3600.0;
+        Autonomous = 0;
+        STEPSTART = STEPMIN;
+#ENDINLINE                                                                     
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/ros2.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/ros2.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/ros2.f	(revision 2696)
@@ -0,0 +1,314 @@
+      SUBROUTINE INTEGRATE( TIN, TOUT )
+ 
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+
+C TIN - Start Time
+      KPP_REAL TIN
+C TOUT - END Time
+      KPP_REAL TOUT
+
+      INTEGER    INFO(5)
+
+      EXTERNAL FUNC_CHEM, JAC_CHEM
+      
+C--------------------------------
+      INTEGER N_stepss, N_accepteds, N_rejecteds, N_jacs, ITOL, IERR
+      SAVE N_stepss, N_accepteds, N_rejecteds, N_jacs
+C--------------------------------
+
+      INFO(1) = 1 ! Autonomous
+      INFO(2) = 0
+ 
+      CALL ROS2(NVAR,TIN,TOUT,STEPMIN,STEPMAX,
+     +                   STEPMIN,VAR,ATOL,RTOL,
+     +                   Info,FUNC_CHEM,JAC_CHEM)
+ 
+C--------------------------------
+      N_stepss=N_stepss+Info(4)+Info(5)
+      N_accepteds=N_accepteds+Info(4)
+      N_rejecteds=N_rejecteds+Info(5)
+      N_jacs=N_jacs+Info(3)
+      PRINT*,'Step=',N_stepss,' Acc=',N_accepteds,' Rej=',N_rejecteds,
+     &          ' Jac=',N_jacs
+C--------------------------------
+
+      RETURN
+      END
+  
+
+ 
+ 
+      SUBROUTINE ROS2(N,T,Tnext,Hmin,Hmax,Hstart,
+     +                   Y,AbsTol,RelTol,
+     +                   Info,FUNC_CHEM,JAC_CHEM)
+      IMPLICIT NONE
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_sparse.h'                                                                                                  
+
+C  INPUT ARGUMENTS:
+C     Y = Vector of (NVAR) concentrations, contains the
+C         initial values on input
+C     [T, Tnext] = the integration interval
+C     Hmin, Hmax = lower and upper bounds for the selected step-size.
+C          Note that for Step = Hmin the current computed
+C          solution is unconditionally accepted by the error
+C          control mechanism.
+C     AbsTol, RelTol = (NVAR) dimensional vectors of
+C          componentwise absolute and relative tolerances.
+C     FUNC_CHEM = name of routine of derivatives. KPP syntax.
+C          See the header below.
+C     JAC_CHEM = name of routine that computes the Jacobian, in
+C          sparse format. KPP syntax. See the header below.
+C     Info(1) = 1  for  autonomous   system
+C             = 0  for nonautonomous system
+C     Info(2) = 1  for third order embedded formula
+C             = 0  for first order embedded formula 
+C
+C   Note: Stage 3 used to build strongly A-stable order 3 formula for error control
+C            Embed3 = (Info(2).EQ.1)
+C         IF Embed3 = .true. THEN the third order embedded formula is used
+C                     .false. THEN a first order embedded  formula is used
+C
+C
+C  OUTPUT ARGUMENTS:
+C     Y = the values of concentrations at TEND.
+C     T = equals TEND on output.
+C     Info(2) = # of FUNC_CHEM CALLs.
+C     Info(3) = # of JAC_CHEM CALLs.
+C     Info(4) = # of accepted steps.
+C     Info(5) = # of rejected steps.
+ 
+      KPP_REAL  K1(NVAR), K2(NVAR), K3(NVAR)
+      KPP_REAL  F1(NVAR), JAC(LU_NONZERO)
+      KPP_REAL  DFDT(NVAR)
+      KPP_REAL  Hmin,Hmax,Hnew,Hstart,ghinv,uround
+      KPP_REAL  Y(NVAR), Ynew(NVAR)
+      KPP_REAL  AbsTol(NVAR), RelTol(NVAR)
+      KPP_REAL  T, Tnext, H, Hold, Tplus
+      KPP_REAL  ERR, factor, facmax
+      KPP_REAL  tau, beta, elo, dround, a21, c21, c31, c32
+      KPP_REAL  gamma3, d1, d2, d3, gam
+      INTEGER    n,nfcn,njac,Naccept,Nreject,i,j,ier
+      INTEGER    Info(5)
+      LOGICAL    IsReject, Autonomous, Embed3
+      EXTERNAL    FUNC_CHEM, JAC_CHEM                                                                                                
+
+      KPP_REAL  gamma, m1, m2, alpha, beta1, beta2, delta, w, e
+ 
+c     Initialization of counters, etc.
+      Autonomous = Info(1) .EQ. 1
+      Embed3  = Info(2) .EQ. 1
+      uround  = 1.d-15
+      dround  = dsqrt(uround)
+      H = DMAX1(1.d-8, Hmin)
+      Tplus = T
+      IsReject = .false.
+      Naccept  = 0
+      Nreject  = 0
+      Nfcn     = 0
+      Njac     = 0
+      
+C     Method Parameters      
+      gamma = 1.d0 + 1.d0/sqrt(2.d0)
+      a21   = - 1.d0/gamma
+      m1 = -3.d0/(2.d0*gamma)
+      m2 = -1.d0/(2.d0*gamma)
+      c21 = -2.d0/gamma
+      c31 = -1.0D0/gamma**2*(1.0D0-7.0D0*gamma+9.0D0*gamma**2)
+     &         /(-1.0D0+2.0D0*gamma)
+      c32 = -1.0D0/gamma**2*(1.0D0-6.0D0*gamma+6.0D0*gamma**2)
+     &          /(-1.0D0+2.0D0*gamma)/2
+      gamma3 = 0.5D0 - 2*gamma
+      d1 = ((-9.0D0*gamma+8.0D0*gamma**2+2.0D0)/gamma**2/
+     &          (-1.0D0+2*gamma))/6.0D0
+      d2 = ((-1.0D0+3.0D0*gamma)/gamma**2/
+     &          (-1.0D0+2.0D0*gamma))/6.0D0
+      d3 = -1.0D0/(3.0D0*gamma)
+ 
+C === Start the time loop ===
+       DO WHILE (T .LT. Tnext)
+
+10     CONTINUE
+
+       Tplus = T + H
+       IF ( Tplus .gt. Tnext ) THEN
+          H = Tnext - T
+          Tplus = Tnext
+       END IF
+ 
+       CALL JAC_CHEM( T, Y, JAC )
+ 
+       Njac = Njac+1
+       ghinv = -1.0d0/(gamma*H)
+       DO 20 j=1,NVAR
+         JAC(LU_DIAG(j)) = JAC(LU_DIAG(j)) + ghinv
+ 20    CONTINUE
+       CALL KppDecomp (JAC, ier)
+ 
+       IF (ier.ne.0) THEN
+         IF ( H.gt.Hmin) THEN
+            H = 5.0d-1*H
+            GO TO 10
+         ELSE
+            PRINT *,'IER <> 0, H=',H
+            STOP
+         END IF
+       END IF
+ 
+       CALL FUNC_CHEM( T, Y, F1 )
+ 
+C ====== NONAUTONOMOUS CASE ===============
+       IF (.NOT. Autonomous) THEN
+         tau = DSIGN(DROUND*DMAX1( 1.0d-6, DABS(T) ), T)
+         CALL FUNC_CHEM( T+tau, Y, K2)
+         nfcn=nfcn+1
+         DO 30 j = 1,NVAR
+           DFDT(j) = ( K2(j)-F1(j) )/tau
+ 30      CONTINUE
+       END IF ! .NOT.Autonomous
+ 
+C ----- STAGE 1 -----
+       delta = gamma*H
+       DO 40 j = 1,NVAR
+          K1(j) =  F1(j) 
+ 40    CONTINUE
+       IF (.NOT.Autonomous) THEN
+         DO 45 j = 1,NVAR
+           K1(j) = K1(j) + delta*DFDT(j)
+ 45      CONTINUE       
+       END IF ! .NOT.Autonomous
+       CALL KppSolve (JAC, K1)
+ 
+C ----- STAGE 2  -----
+       DO 50 j = 1,NVAR
+         Ynew(j) = Y(j) + a21*K1(j)
+ 50    CONTINUE
+       CALL FUNC_CHEM( T+H, Ynew, F1)
+       nfcn=nfcn+1
+       beta = -c21/H
+       DO 55 j = 1,NVAR
+         K2(j) = F1(j) + beta*K1(j) 
+ 55    CONTINUE
+       IF (.NOT.Autonomous) THEN
+         delta = -gamma*H
+         DO 56 j = 1,NVAR
+           K2(j) = K2(j) + delta*DFDT(j)
+ 56      CONTINUE       
+       END IF ! .NOT.Autonomous
+       CALL KppSolve (JAC, K2)
+ 
+C ----- STAGE 3  -----
+       IF (Embed3) THEN
+       beta1 = -c31/H
+       beta2 = -c32/H
+       delta = gamma3*H
+       DO 57 j = 1,NVAR
+         K3(j) = F1(j) + beta1*K1(j) + beta2*K2(j) 
+ 57    CONTINUE
+       IF (.NOT.Autonomous) THEN
+         DO 58 j = 1,NVAR
+           K3(j) = K3(j) + delta*DFDT(j)
+ 58      CONTINUE       
+       END IF ! .NOT.Autonomous
+       CALL KppSolve (JAC, K3)
+       END IF ! Embed3
+ 
+
+C ---- The Solution ---
+       DO 120 j = 1,NVAR
+         Ynew(j) = Y(j) + m1*K1(j) + m2*K2(j)
+ 120   CONTINUE
+ 
+ 
+C ====== Error estimation ========
+ 
+        ERR=0.d0
+        DO 130 i=1,NVAR
+           w = AbsTol(i) + RelTol(i)*DMAX1(DABS(Y(i)),DABS(Ynew(i)))
+	   IF ( Embed3 ) THEN
+	     e = d1*K1(i) + d2*K2(i) + d3*K3(i)
+	   ELSE
+             e = 1.d0/(2.d0*gamma)*(K1(i)+K2(i))
+	   END IF  ! Embed3 
+           ERR = ERR + ( e/w )**2
+ 130    CONTINUE
+        ERR = DMAX1( uround, DSQRT( ERR/NVAR ) )
+ 
+C ======= Choose the stepsize ===============================
+ 
+        IF ( Embed3 ) THEN
+            elo = 3.0D0 ! estimator local order
+	ELSE
+	    elo = 2.0D0
+	END IF    
+        factor = DMAX1(2.0D-1,DMIN1(6.0D0,ERR**(1.0D0/elo)/.9D0))
+        Hnew   = DMIN1(Hmax,DMAX1(Hmin, H/factor))
+ 
+C ======= Rejected/Accepted Step ============================
+ 
+        IF ( (ERR.gt.1).and.(H.gt.Hmin) ) THEN
+          IsReject = .true.
+	  H = DMIN1(H/10,Hnew)
+          Nreject  = Nreject+1
+        ELSE
+          DO 140 i=1,NVAR
+             Y(i)  = Ynew(i)
+ 140      CONTINUE
+          T = Tplus
+	  IF (.NOT.IsReject) THEN
+	      H = Hnew   ! Do not increase stepsize IF previous step was rejected
+	  END IF    
+          IsReject = .false.
+          Naccept = Naccept+1
+        END IF
+ 
+C ======= END of the time loop ===============================
+      END DO
+  
+ 
+C ======= Output Information =================================
+      Info(2) = Nfcn
+      Info(3) = Njac
+      Info(4) = Naccept
+      Info(5) = Nreject
+ 
+      RETURN
+      END
+ 
+ 
+ 
+      SUBROUTINE FUNC_CHEM( T, Y, P )
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+      KPP_REAL  T, Told
+      KPP_REAL  Y(NVAR), P(NVAR)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Fun( Y,  FIX, RCONST, P )
+      TIME = Told
+      RETURN
+      END
+
+ 
+      SUBROUTINE JAC_CHEM( T, Y, J )
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+      KPP_REAL  Told, T
+      KPP_REAL  Y(NVAR), J(LU_NONZERO)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Jac_SP( Y,  FIX, RCONST, J )
+      TIME = Told
+      RETURN
+      END                                                                                                                 
+  
+
+
+
+
+                                                                                                                            
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/ros2.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/ros2.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/ros2.f90	(revision 2696)
@@ -0,0 +1,294 @@
+      SUBROUTINE INTEGRATE( TIN, TOUT )
+ 
+      USE KPP_ROOT_global
+
+! TIN - Start Time
+      KPP_REAL TIN
+! TOUT - End Time
+      KPP_REAL TOUT
+
+      INTEGER    INFO(5)
+
+      EXTERNAL FUNC_CHEM, JAC_CHEM
+
+      INFO(1) = Autonomous
+ 
+      call ROS2(NVAR,TIN,TOUT,STEPMIN,STEPMAX,   &
+            STEPMIN,VAR,ATOL,RTOL, &
+            Info,FUNC_CHEM,JAC_CHEM)
+ 
+
+      END SUBROUTINE INTEGRATE
+  
+
+ 
+ 
+      SUBROUTINE ROS2(N,T,Tnext,Hmin,Hmax,Hstart,  &
+            y,AbsTol,RelTol,      &
+            Info,FUNC_CHEM,JAC_CHEM)
+      
+      USE KPP_ROOT_params
+      USE KPP_ROOT_Jacobian_sparsity                                 
+      IMPLICIT NONE
+
+!  INPUT ARGUMENTS:
+!     y = Vector of (NVAR) concentrations, contains the
+!     initial values on input
+!     [T, Tnext] = the integration interval
+!     Hmin, Hmax = lower and upper bounds for the selected step-size.
+!      Note that for Step = Hmin the current computed
+!      solution is unconditionally accepted by the error
+!      control mechanism.
+!     AbsTol, RelTol = (NVAR) dimensional vectors of
+!      componentwise absolute and relative tolerances.
+!     FUNC_CHEM = name of routine of derivatives. KPP syntax.
+!      See the header below.
+!     JAC_CHEM = name of routine that computes the Jacobian, in
+!      sparse format. KPP syntax. See the header below.
+!     Info(1) = 1  for  autonomous   system
+!         = 0  for nonautonomous system
+!     Info(2) = 1  for third order embedded formula
+!         = 0  for first order embedded formula 
+!
+!   Note: Stage 3 used to build strongly A-stable order 3 formula for error control
+!        Embed3 = (Info(2).EQ.1)
+!     if Embed3 = .true. then the third order embedded formula is used
+!         .false. then a first order embedded  formula is used
+!
+!
+!  OUTPUT ARGUMENTS:
+!     y = the values of concentrations at Tend.
+!     T = equals Tend on output.
+!     Info(2) = # of FUNC_CHEM calls.
+!     Info(3) = # of JAC_CHEM calls.
+!     Info(4) = # of accepted steps.
+!     Info(5) = # of rejected steps.
+ 
+      KPP_REAL K1(NVAR), K2(NVAR), K3(NVAR)
+      KPP_REAL F1(NVAR), JAC(LU_NONZERO)
+      KPP_REAL DFDT(NVAR)
+      KPP_REAL Hmin,Hmax,Hnew,Hstart,ghinv,uround
+      KPP_REAL y(NVAR), ynew(NVAR)
+      KPP_REAL AbsTol(NVAR), RelTol(NVAR)
+      KPP_REAL T, Tnext, H, Hold, Tplus
+      KPP_REAL ERR, factor, facmax
+      KPP_REAL tau, beta, elo, dround, a21, c31, c32
+      KPP_REAL gamma3, d1, d2, d3, gam
+      INTEGER    n,nfcn,njac,Naccept,Nreject,i,j,ier
+      INTEGER    Info(5)
+      LOGICAL    IsReject, Autonomous, Embed3
+      EXTERNAL    FUNC_CHEM, JAC_CHEM                                 
+
+      KPP_REAL gamma, m1, m2, alpha, beta1, beta2, delta, w, e
+ 
+!     Initialization of counters, etc.
+      Autonomous = Info(1) .EQ. 1
+      Embed3  = Info(2) .EQ. 1
+      uround  = 1.d-15
+      dround  = dsqrt(uround)
+      H = DMAX1(1.d-8, Hmin)
+      Tplus = T
+      IsReject = .false.
+      Naccept  = 0
+      Nreject  = 0
+      Nfcn     = 0
+      Njac     = 0
+      
+!     Method Parameters      
+      gamma = 1.d0 + 1.d0/sqrt(2.d0)
+      a21   = - 1.d0/gamma
+      m1 = -3.d0/(2.d0*gamma)
+      m2 = -1.d0/(2.d0*gamma)
+      c31 = -1.0D0/gamma**2*(1.0D0-7.0D0*gamma+9.0D0*gamma**2) &
+      /(-1.0D0+2.0D0*gamma)
+      c32 = -1.0D0/gamma**2*(1.0D0-6.0D0*gamma+6.0D0*gamma**2) &
+       /(-1.0D0+2.0D0*gamma)/2
+      gamma3 = 0.5D0 - 2*gamma
+      d1 = ((-9.0D0*gamma+8.0D0*gamma**2+2.0D0)/gamma**2/      &
+       (-1.0D0+2*gamma))/6.0D0
+      d2 = ((-1.0D0+3.0D0*gamma)/gamma**2/(-1.0D0+2.0D0*gamma))/6.0D0
+      d3 = -1.0D0/(3.0D0*gamma)
+ 
+! === Starting the time loop ===
+ 10    CONTINUE
+      Tplus = T + H
+      if ( Tplus .gt. Tnext ) then
+         H = Tnext - T
+         Tplus = Tnext
+      end if
+ 
+      call JAC_CHEM(NVAR, T, y, JAC)
+ 
+      Njac = Njac+1
+      ghinv = -1.0d0/(gamma*H)
+      DO j=1,NVAR
+         JAC(LU_DIAG(j)) = JAC(LU_DIAG(j)) + ghinv
+      END DO
+      CALL KppDecomp (JAC, ier)
+ 
+      if (ier.ne.0) then
+        if ( H.gt.Hmin) then
+          H = 5.0d-1*H
+          go to 10
+        else
+          print *,'IER <> 0, H=',H
+          stop
+        end if
+      end if
+ 
+      call FUNC_CHEM(NVAR, T, y, F1)
+ 
+! ====== NONAUTONOMOUS CASE ===============
+   IF (.not. Autonomous) THEN
+     tau = dsign(dround*dmax1( 1.0d-6, dabs(T) ), T)
+     call FUNC_CHEM(NVAR, T+tau, y, K2)
+     nfcn=nfcn+1
+     DO j = 1,NVAR
+       DFDT(j) = ( K2(j)-F1(j) )/tau
+     END DO
+   END IF ! .NOT.Autonomous
+ 
+! ----- STAGE 1 -----
+   DO j = 1,NVAR
+      K1(j) =  F1(j) 
+   END DO
+   IF (.NOT.Autonomous) THEN
+     delta = gamma*H
+     DO j = 1,NVAR
+       K1(j) = K1(j) + delta*DFDT(j)
+     END DO      
+   END IF ! .NOT.Autonomous
+   call KppSolve (JAC, K1)
+ 
+! ----- STAGE 2  -----
+   DO j = 1,NVAR
+     ynew(j) = y(j) + a21*K1(j)
+   END DO
+   call FUNC_CHEM(NVAR, T+H, ynew, F1)
+   nfcn=nfcn+1
+   beta = 2.d0/(gamma*H)
+   DO j = 1,NVAR
+     K2(j) = F1(j) + beta*K1(j) 
+   END DO
+   IF (.NOT. Autonomous) THEN
+     delta = -gamma*H
+     DO j = 1,NVAR
+       K2(j) = K2(j) + delta*DFDT(j)
+     END DO   
+   END IF ! .NOT.Autonomous
+   call KppSolve (JAC, K2)
+ 
+! ----- STAGE 3  -----
+   IF (Embed3) THEN
+   beta1 = -c31/H
+   beta2 = -c32/H
+   delta = gamma3*H
+   DO j = 1,NVAR
+     K3(j) = F1(j) + beta1*K1(j) + beta2*K2(j) 
+   END DO
+   IF (.NOT.Autonomous) THEN
+     DO j = 1,NVAR
+       K3(j) = K3(j) + delta*DFDT(j)
+     END DO   
+   END IF ! .NOT.Autonomous
+   CALL KppSolve (JAC, K3)
+    END IF ! Embed3
+ 
+
+
+! ---- The Solution ---
+   DO j = 1,NVAR
+     ynew(j) = y(j) + m1*K1(j) + m2*K2(j)
+   END DO
+ 
+ 
+! ====== Error estimation ========
+ 
+    ERR=0.d0
+    DO i=1,NVAR
+       w = AbsTol(i) + RelTol(i)*DMAX1(DABS(y(i)),DABS(ynew(i)))
+    IF ( Embed3 ) THEN
+     e = d1*K1(i) + d2*K2(i) + d3*K3(i)
+    ELSE
+         e = 1.d0/(2.d0*gamma)*(K1(i)+K2(i))
+    END IF  ! Embed3 
+       ERR = ERR + ( e/w )**2
+    END DO
+    ERR = DMAX1( uround, DSQRT( ERR/NVAR ) )
+ 
+! ======= Choose the stepsize ===============================
+ 
+    IF ( Embed3 ) THEN
+        elo = 3.0D0 ! estimator local order
+    ELSE
+        elo = 2.0D0
+    END IF    
+    factor = DMAX1(2.0D-1,DMIN1(6.0D0,ERR**(1.0D0/elo)/.9D0))
+    Hnew   = DMIN1(Hmax,DMAX1(Hmin, H/factor))
+ 
+! ======= Rejected/Accepted Step ============================
+ 
+    IF ( (ERR.gt.1).and.(H.gt.Hmin) ) THEN
+      IsReject = .true.
+      H = DMIN1(H/10,Hnew)
+      Nreject  = Nreject+1
+    ELSE
+      DO i=1,NVAR
+         y(i)  = ynew(i)
+      END DO
+      T = Tplus
+      IF (.NOT. IsReject) THEN
+          H = Hnew   ! Do not increase stepsize if previous step was rejected
+      END IF    
+      IsReject = .false.
+      Naccept = Naccept+1
+    END IF
+
+ 
+! ======= End of the time loop ===============================
+      IF ( T .lt. Tnext ) GO TO 10
+ 
+ 
+ 
+! ======= Output Information =================================
+      Info(2) = Nfcn
+      Info(3) = Njac
+      Info(4) = Naccept
+      Info(5) = Nreject
+ 
+      END SUBROUTINE Ros2
+ 
+ 
+ 
+      SUBROUTINE FUNC_CHEM(N, T, Y, P)      
+      USE KPP_ROOT_global
+      INTEGER N 
+      KPP_REAL   T, Told
+      KPP_REAL   Y(NVAR), P(NVAR)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Fun( Y, FIX, RCONST, P )
+      TIME = Told
+      END SUBROUTINE FUNC_CHEM
+
+ 
+      SUBROUTINE JAC_CHEM(N, T, Y, J)     
+      USE KPP_ROOT_global
+      INTEGER N 
+      KPP_REAL   Told, T
+      KPP_REAL   Y(NVAR), J(LU_NONZERO)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Jac_SP( Y, FIX, RCONST, J )
+      TIME = Told
+      END SUBROUTINE JAC_CHEM                                           
+  
+
+
+
+
+                                                        
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/ros2_cts_adj.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/ros2_cts_adj.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/ros2_cts_adj.f	(revision 2696)
@@ -0,0 +1,312 @@
+      SUBROUTINE ros2_cts_adj(N,T,Tnext,Hmin,Hmax,Hstart,
+     +                   y,Lambda,Fix,Rconst,AbsTol,RelTol,
+     +                   Info)
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+      
+C  INPUT ARGUMENTS:
+C     y = Vector of (NVAR) concentrations, contains the
+C         initial values on input
+C     [T, Tnext] = the integration interval
+C     Hmin, Hmax = lower and upper bounds for the selected step-size.
+C          Note that for Step = Hmin the current computed
+C          solution is unconditionally accepted by the error
+C          control mechanism.
+C     AbsTol, RelTol = (NVAR) dimensional vectors of
+C          componentwise absolute and relative tolerances.
+C     FUN = name of routine of derivatives. KPP syntax.
+C          See the header below.
+C     JAC_SP = name of routine that computes the Jacobian, in
+C          sparse format. KPP syntax. See the header below.
+C     Info(1) = 1  for  autonomous   system
+C             = 0  for nonautonomous system
+C     Info(2) = 1  for third order embedded formula
+C             = 0  for first order embedded formula 
+C
+C   Note: Stage 3 used to build strongly A-stable order 3 formula for error control
+C            Embed3 = (Info(2).EQ.1)
+C         IF Embed3 = .true. THEN the third order embedded formula is used
+C                     .false. THEN a first order embedded  formula is used
+C
+C
+C  OUTPUT ARGUMENTS:
+C     y = the values of concentrations at TEND.
+C     T = equals TEND on output.
+C     Info(2) = # of FUN CALLs.
+C     Info(3) = # of JAC_SP CALLs.
+C     Info(4) = # of accepted steps.
+C     Info(5) = # of rejected steps.
+
+      INTEGER max_no_steps
+      PARAMETER (max_no_steps = 200)      
+      KPP_REAL  Trajectory(NVAR,max_no_steps)
+      KPP_REAL  StepSize(max_no_steps)
+ 
+      KPP_REAL  K1(NVAR), K2(NVAR), K3(NVAR)
+      KPP_REAL  F1(NVAR), JAC(LU_NONZERO)
+      KPP_REAL  DFDT(NVAR)(NRAD)
+      KPP_REAL  Fix(NFIX), Rconst(NREACT)
+      KPP_REAL  Hmin,Hmax,Hstart,ghinv,uround      
+      KPP_REAL  y(NVAR), Ynew(NVAR)
+      KPP_REAL  AbsTol(NVAR), RelTol(NVAR)
+      KPP_REAL  T, Tnext, H, Hold, Tplus
+      KPP_REAL  ERR, factor, facmax
+      KPP_REAL  Lambda(NVAR), K11(NVAR), JAC1(LU_NONZERO)
+      INTEGER    n,nfcn,njac,Naccept,Nreject,i,j
+      INTEGER    Info(5)
+      LOGICAL    IsReject, Autonomous, Embed3
+      EXTERNAL    FUN, JAC_SP                                                                                                
+
+      KPP_REAL gamma, m1, m2, alpha, beta1, beta2, delta, w, e
+      KPP_REAL ginv
+c     Initialization of counters, etc.
+      Autonomous = Info(1) .EQ. 1
+      Embed3  = Info(2) .EQ. 1
+      uround  = 1.d-15
+      dround  = dsqrt(uround)
+      H = DMAX1(Hstart,DMAX1(1.d-8, Hmin))
+      Tplus = T
+      IsReject = .false.
+      Naccept  = 0
+      Nreject  = 0
+      Nfcn     = 0
+      Njac     = 0
+      
+C     Method Parameters      
+      gamma = 1.d0 + 1.d0/sqrt(2.d0)
+      a21   = - 1.d0/gamma
+      m1 = -3.d0/(2.d0*gamma)
+      m2 = -1.d0/(2.d0*gamma)
+      c31 = -1.0D0/gamma**2*(1.0D0-7.0D0*gamma+9.0D0*gamma**2)
+     &         /(-1.0D0+2.0D0*gamma)
+      c32 = -1.0D0/gamma**2*(1.0D0-6.0D0*gamma+6.0D0*gamma**2)
+     &          /(-1.0D0+2.0D0*gamma)/2
+      gamma3 = 0.5D0 - 2*gamma
+      d1 = ((-9.0D0*gamma+8.0D0*gamma**2+2.0D0)/gamma**2/
+     &          (-1.0D0+2*gamma))/6.0D0
+      d2 = ((-1.0D0+3.0D0*gam)/gamma**2/
+     &          (-1.0D0+2.0D0*gamma))/6.0D0
+      d3 = -1.0D0/(3.0D0*gamma)
+
+      Trajectory(1:NVAR,1) = Ynew(1)
+ 
+C === Starting the time loop ===
+ 10    CONTINUE
+       Tplus = T + H
+       IF ( Tplus .gt. Tnext ) THEN
+          H = Tnext - T
+          Tplus = Tnext
+       END IF
+ 
+       CALL Jac_SP( Y, Fix, Rconst, JAC )
+ 
+       Njac = Njac+1
+       ghinv = -1.0d0/(gamma*H)
+       DO 20 j=1,NVAR
+         JAC(LU_DIAG_V(j)) = JAC(LU_DIAG_V(j)) + ghinv
+ 20    CONTINUE
+       CALL KppDecomp (NVAR, JAC, ier)
+ 
+       IF (ier.ne.0) THEN
+         IF ( H.gt.Hmin) THEN
+            H = 5.0d-1*H
+            GO TO 10
+         else
+            PRINT *,'IER <> 0, H=',H
+            STOP
+         END IF
+       END IF
+ 
+       CALL Fun( Y, Fix, Rconst, F1 )
+ 
+C ====== NONAUTONOMOUS CASE ===============
+       IF (.not. Autonomous) THEN
+         tau = dsign(dround*dmax1( 1.0d-6, dabs(T) ), T)
+         CALL Fun( Y, Fix, Rconst, K2 )
+         nfcn=nfcn+1
+         DO 30 j = 1,NVAR
+           DFDT(j) = ( K2(j)-F1(j) )/tau
+ 30      CONTINUE
+       END IF ! .NOT.Autonomous
+ 
+C ----- STAGE 1 -----
+       DO 40 j = 1,NVAR
+          K1(j) =  F1(j) 
+ 40    CONTINUE
+       IF (.NOT.Autonomous) THEN
+         delta = gamma*H
+         DO 45 j = 1,NVAR
+           K1(j) = K1(j) + delta*DFDT(j)
+ 45      CONTINUE       
+       END IF ! .NOT.Autonomous
+       CALL KppSolve (JAC, K1)
+ 
+C ----- STAGE 2  -----
+       DO 50 j = 1,NVAR
+         Ynew(j) = y(j) + a21*K1(j)
+ 50    CONTINUE
+       CALL Fun( Ynew, Fix, Rconst, F1 )
+       nfcn=nfcn+1
+       beta = 2.d0/(gamma*H)
+       delta = -gamma*H
+       DO 55 j = 1,NVAR
+         K2(j) = F1(j) + beta*K1(j) 
+ 55    CONTINUE
+       IF (.NOT.Autonomous) THEN
+         DO 56 j = 1,NVAR
+           K2(j) = K2(j) + delta*DFDT(j)
+ 56      CONTINUE       
+       END IF ! .NOT.Autonomous
+       CALL KppSolve (JAC, K2)
+ 
+C ----- STAGE 3  -----
+       IF (Embed3) THEN
+       beta1 = -c31/H
+       beta2 = -c32/H
+       delta = gamma3*H
+       DO 57 j = 1,NVAR
+         K3(j) = F1(j) + beta1*K1(j) + beta2*K2(j) 
+ 57    CONTINUE
+       IF (.NOT.Autonomous) THEN
+         DO 58 j = 1,NVAR
+           K3(j) = K3(j) + delta*DFDT(j)
+ 58      CONTINUE       
+       END IF ! .NOT.Autonomous
+       CALL KppSolve (JAC, K3)
+       END IF ! Embed3
+
+
+C ---- The Solution ---
+       DO 120 j = 1,NVAR
+         Ynew(j) = y(j) + m1*K1(j) + m2*K2(j)
+ 120   CONTINUE
+ 
+ 
+C ====== Error estimation ========
+ 
+        ERR=0.d0
+        DO 130 i=1,NVAR
+           w = AbsTol(i) + RelTol(i)*DMAX1(DABS(y(i)),DABS(Ynew(i)))
+	   IF ( Embed3 ) THEN
+	     e = d1*K1(i) + d2*K2(i) + d3*K3(i)
+	   ELSE
+             e = 1.d0/(2.d0*gamma)*(K1(i)+K2(i))
+	   END IF  ! Embed3 
+           ERR = ERR + ( e/w )**2
+ 130    CONTINUE
+        ERR = DMAX1( uround, DSQRT( ERR/NVAR ) )
+	
+C ======= Choose the stepsize ===============================
+ 
+        IF ( Embed3 ) THEN
+            elo = 3.0D0 ! estimator local order
+	ELSE
+	    elo = 2.0D0
+	END IF    
+        factor = DMAX1(2.0D-1,DMIN1(6.0D0,ERR**(1.0D0/elo)/.9D0))
+        Hnew   = DMIN1(Hmax,DMAX1(Hmin, H/factor))
+        Hold = H
+         
+C ======= Rejected/Accepted Step ============================
+ 
+        IF ( (ERR.gt.1).and.(H.gt.Hmin) ) THEN
+          IsReject = .true.
+	  H = DMIN1(H/10,Hnew)
+          Nreject  = Nreject+1
+        ELSE
+          DO 140 i=1,NVAR
+             y(i)  = Ynew(i)
+ 140      CONTINUE
+          T = Tplus
+	  IF (.NOT.IsReject) THEN
+	      H = Hnew   ! Do not increase stepsize IF previous step was rejected
+	  END IF    
+          IsReject = .false.
+          Naccept = Naccept+1
+	  IF (Naccept+1>max_no_steps) THEN
+	    PRINT*,'Error in Adjoint Ros2: more steps than allowed'
+	    STOP
+	  END IF  
+	  Trajectory(1:NVAR,Naccept+1) = Ynew(1:NVAR)
+	  StepSize(Naccept) = Hold
+!	  CALL TRAJISTORE(y,hold)    
+        END IF        
+C ======= END of the time loop ===============================
+      IF ( T .lt. Tnext ) GO TO 10 
+ 
+C ======= Output Information =================================
+      Info(2) = Nfcn
+      Info(3) = Njac
+      Info(4) = Naccept
+      Info(5) = Nreject      
+
+      ginv = 1.d0/gamma
+C -- The backwards loop for the CONTINUOUS ADJOINT    
+      DO istep = Naccept,1,-1
+        
+	h = StepSize(istep)
+	y(1:NVAR) = Trajectory(1:NVAR,istep+1)
+	gHinv = -ginv/H  
+
+	CALL Jac_SP(Y, Fix, Rconst, JAC)
+        JAC1(1:LU_NONZERO)=JAC(1:LU_NONZERO)
+        DO j=1,NVAR
+          JAC(lu_diag_v(j)) = JAC(lu_diag_v(j)) + gHinv
+        END DO
+        CALL KppDecomp (NVAR,JAC,ier) 
+ccc equivalent to function evaluation in forward integration  
+ccc is J^T*Lambda in backward integration    
+        CALL JacTR_SP_Vec ( JAC1, Lambda, F1)      
+      
+C ----- STAGE 1 (AUTONOMOUS) -----
+        K11(1:NVAR) =  F1(1:NVAR) 
+        CALL KppSolveTR (JAC,K11,K1) 
+C ----- STAGE 2 (AUTONOMOUS) -----       
+	y(1:NVAR) = Trajectory(1:NVAR,istep)
+        CALL Jac_SP(Y, Fix, Rconst, JAC1)
+        Ynew(1:NVAR) = Lambda(1:NVAR) - ginv*K1(1:NVAR)
+        CALL JacTR_SP_Vec ( JAC1, Ynew, F1) 
+        beta = -2.d0*ghinv
+        K11(1:NVAR) = F1(1:NVAR) + beta*K1(1:NVAR)
+        CALL KppSolveTR (JAC,K11,K2)
+c ---- The solution
+        Lambda(1:NVAR) = Lambda(1:NVAR)+m1*K1(1:NVAR)+m2*K2(1:NVAR)                
+
+      END DO ! istep
+     
+     
+      RETURN
+      END
+
+ 
+      SUBROUTINE FUNC_CHEM(N, T, Y, P)
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+      INTEGER N
+      KPP_REAL   T, Told
+      KPP_REAL   Y(NVAR), P(NVAR)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Fun( Y,  FIX, RCONST, P )
+      TIME = Told
+      RETURN
+      END
+
+ 
+      SUBROUTINE JAC_CHEM(N, T, Y, J)
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+      INTEGER N
+      KPP_REAL   Told, T
+      KPP_REAL   Y(NVAR), J(LU_NONZERO)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Jac_SP( Y,  FIX, RCONST, J )
+      TIME = Told
+      RETURN
+      END                                                                                                                 
+  
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/ros2_ddm.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/ros2_ddm.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/ros2_ddm.def	(revision 2696)
@@ -0,0 +1,50 @@
+ 
+#FUNCTION AGGREGATE
+#JACOBIAN SPARSE_LU_ROW
+
+#DOUBLE ON 
+#INTFILE ros2_ddm
+#HESSIAN ON 
+
+#INLINE F77_DECL_INT
+      INTEGER Autonomous
+      COMMON /INTGDATA/ Autonomous
+      REAL*8 STEPSTART
+      COMMON /GDATA/ STEPSTART
+#ENDINLINE
+
+#INLINE F77_INIT_INT
+        STEPMIN=1.0E-4
+        STEPMAX=3600.
+        Autonomous = 0
+        STEPSTART=STEPMIN
+#ENDINLINE
+
+#INLINE F90_DECL_INT
+      INTEGER :: Autonomous
+      DOUBLE PRECISION :: STEPSTART
+#ENDINLINE
+
+#INLINE F90_INIT_INT
+        STEPMIN=0.0001
+        STEPMAX=3600.
+        Autonomous = 0
+        STEPSTART=STEPMIN
+#ENDINLINE
+
+#INLINE C_DECL_INT
+    extern int Autonomous;
+    extern double STEPSTART;
+#ENDINLINE
+ 
+#INLINE C_DATA_INT
+    int Autonomous;
+    double STEPSTART;
+#ENDINLINE
+
+#INLINE C_INIT_INT
+        STEPMIN = 0.0001;
+        STEPMAX = 3600.0;
+        Autonomous = 0;
+        STEPSTART = STEPMIN;
+#ENDINLINE                                                                     
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/ros2_ddm.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/ros2_ddm.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/ros2_ddm.f	(revision 2696)
@@ -0,0 +1,480 @@
+      SUBROUTINE INTEGRATE( NSENSIT, Y, TIN, TOUT )
+ 
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+
+      INTEGER NSENSIT
+C TIN - Start Time
+      KPP_REAL TIN
+C TOUT - End Time
+      KPP_REAL TOUT
+C Y - Concentrations and Sensitivities
+      KPP_REAL Y(NVAR*(NSENSIT+1))
+C ---  Note: Y contains: (1:NVAR) concentrations, followed by
+C ---                   (1:NVAR) sensitivities w.r.t. first parameter, followed by
+C ---                   etc.,  followed by          
+C ---                   (1:NVAR) sensitivities w.r.t. NSENSIT's parameter
+
+      INTEGER    INFO(5)
+
+      EXTERNAL FUNC_CHEM, JAC_CHEM
+
+      INFO(1) = Autonomous
+ 
+      CALL ROS2_DDM(NVAR,NSENSIT,TIN,TOUT,STEPMIN,STEPMAX,
+     +                   STEPMIN,Y,ATOL,RTOL,
+     +                   Info,FUNC_CHEM,JAC_CHEM)
+ 
+
+      RETURN
+      END
+  
+
+ 
+ 
+      SUBROUTINE ROS2_DDM(N,NSENSIT,T,Tnext,Hmin,Hmax,Hstart,
+     +                   y,AbsTol,RelTol,
+     +                   Info,FUNC_CHEM,JAC_CHEM)
+      IMPLICIT NONE
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'                                                                                                  
+      INCLUDE 'KPP_ROOT_sparse.h'                                                                                                  
+C
+C  Ros2 with direct-decoupled calculation of sensitivities 
+C
+C The global variable DDMTYPE distinguishes between:
+C      DDMTYPE = 0 : sensitivities w.r.t. initial values
+C      DDMTYPE = 1 : sensitivities w.r.t. parameters
+C
+C  INPUT ARGUMENTS:
+C     y = Vector of:   (1:NVAR) concentrations, followed by
+C                      (1:NVAR) sensitivities w.r.t. first parameter, followed by
+C                       etc.,  followed by          
+C                      (1:NVAR) sensitivities w.r.t. NSENSIT's parameter
+C         (y contains initial values at input, final values at output)
+C     [T, Tnext] = the integration interval
+C     Hmin, Hmax = lower and upper bounds for the selected step-size.
+C          Note that for Step = Hmin the current computed
+C          solution is unconditionally accepted by the error
+C          control mechanism.
+C     AbsTol, RelTol = (NVAR) dimensional vectors of
+C          componentwise absolute and relative tolerances.
+C     FUNC_CHEM = name of routine of derivatives. KPP syntax.
+C          See the header below.
+C     JAC_CHEM = name of routine that computes the Jacobian, in
+C          sparse format. KPP syntax. See the header below.
+C     Info(1) = 1  for  autonomous   system
+C             = 0  for nonautonomous system
+C
+C  OUTPUT ARGUMENTS:
+C     y = the values of concentrations at TEND.
+C     T = equals TEND on output.
+C     Info(2) = # of FUNC_CHEM calls.
+C     Info(3) = # of JAC_CHEM calls.
+C     Info(4) = # of accepted steps.
+C     Info(5) = # of rejected steps.
+C
+C  Adrian Sandu, December 2001
+
+ 
+      INTEGER NSENSIT
+      KPP_REAL y(NVAR*(NSENSIT+1)), ynew(NVAR*(NSENSIT+1))
+      KPP_REAL K1(NVAR*(NSENSIT+1))
+      KPP_REAL K2(NVAR*(NSENSIT+1))
+      KPP_REAL K3(NVAR)
+      KPP_REAL DFDT(NVAR*(NSENSIT+1))
+      KPP_REAL DFDP(NVAR*NSENSIT+1), DFDPDT(NVAR*NSENSIT+1)
+      KPP_REAL DJDP(NVAR*NSENSIT+1)
+      KPP_REAL F1(NVAR), F2(NVAR)
+      KPP_REAL JAC(LU_NONZERO), AJAC(LU_NONZERO)
+      KPP_REAL DJDT(LU_NONZERO)
+      KPP_REAL HESS(NHESS)
+      KPP_REAL Hmin,Hmax,Hnew,Hstart,ghinv,uround
+      KPP_REAL AbsTol(NVAR), RelTol(NVAR)
+      KPP_REAL T, Tnext, H, Hold, Tplus, e
+      KPP_REAL ERR, factor, facmax, dround, elo, tau, gam
+      
+      INTEGER    n,nfcn,njac,Naccept,Nreject,i,j,ier
+      INTEGER    Info(5)
+      LOGICAL    IsReject,Autonomous,Embed3
+      EXTERNAL   FUNC_CHEM, JAC_CHEM, HESS_CHEM                                                                                                
+
+      LOGICAL    negative
+      KPP_REAL gamma, m1, m2, alpha, beta, delta, theta, w
+      KPP_REAL gamma3, d1, d2, d3, beta1, beta2
+      KPP_REAL c31, c32, c34
+ 
+c     Initialization of counters, etc.
+      Autonomous = Info(1) .EQ. 1
+      Embed3  = Info(2) .EQ. 1
+      uround = 1.d-15
+      dround = 1.0d-7 ! DSQRT(uround)
+      H = DMAX1(1.d-8, Hstart)
+      Tplus = T
+      IsReject = .false.
+      Naccept  = 0
+      Nreject  = 0
+      Nfcn     = 0
+      Njac     = 0
+      gamma = 1.d0 + 1.d0/DSQRT(2.0d0)
+      c31 = -1.0D0/gamma**2*(1.0D0-7.0D0*gamma+9.0D0*gamma**2)
+     &         /(-1.0D0+2.0D0*gamma)
+      c32 = -1.0D0/gamma**2*(1.0D0-6.0D0*gamma+6.0D0*gamma**2)
+     &          /(-1.0D0+2.0D0*gamma)/2
+      gamma3 = 0.5D0 - 2*gamma
+      d1 = ((-9.0D0*gamma+8.0D0*gamma**2+2.0D0)/gamma**2/
+     &          (-1.0D0+2*gamma))/6.0D0
+      d2 = ((-1.0D0+3.0D0*gamma)/gamma**2/
+     &          (-1.0D0+2.0D0*gamma))/6.0D0
+      d3 = -1.0D0/(3.0D0*gamma)
+       m1 = -3.d0/(2.d0*gamma)
+       m2 = -1.d0/(2.d0*gamma)
+      
+ 
+C === Starting the time loop ===
+ 10    CONTINUE
+       Tplus = T + H
+       IF ( Tplus .gt. Tnext ) THEN
+          H = Tnext - T
+          Tplus = Tnext
+       END IF
+ 
+C              Initial Function, Jacobian, and Hessian Values
+       CALL FUNC_CHEM(NVAR, T, y, F1)
+       CALL JAC_CHEM(NVAR, T, y, JAC)
+       CALL HESS_CHEM( NVAR, T, y, HESS )
+       IF (DDMTYPE .EQ. 1) THEN
+          CALL DFUNDPAR(NVAR, NSENSIT, T, y, DFDP)
+       END IF	  
+                                                                                                                            
+C              Estimate the time derivatives in non-autonomous case 
+       IF (.not. Autonomous) THEN
+         tau = DSIGN(dround*DMAX1( 1.0d0, DABS(T) ), T)
+         CALL FUNC_CHEM(NVAR, T+tau, y, K2)
+         nfcn=nfcn+1
+         CALL JAC_CHEM(NVAR, T+tau, y, AJAC)
+         njac=njac+1
+         DO 20 j = 1,NVAR
+           DFDT(j) = ( K2(j)-F1(j) )/tau
+ 20      CONTINUE
+         DO 30 j = 1,LU_NONZERO
+           DJDT(j) = ( AJAC(j)-JAC(j) )/tau
+ 30      CONTINUE
+         DO 40 i=1,NSENSIT
+	    CALL Jac_SP_Vec (DJDT,y(i*NVAR+1),DFDT(i*NVAR+1))
+ 40      CONTINUE
+        END IF ! .not. Autonomous
+ 
+       Njac = Njac+1
+       ghinv = - 1.0d0/(gamma*H)
+       DO 50 j=1,LU_NONZERO
+         AJAC(j) = JAC(j) 
+ 50    CONTINUE
+       DO 60 j=1,NVAR
+         AJAC(LU_DIAG(j)) = JAC(LU_DIAG(j)) + ghinv
+ 60    CONTINUE
+       CALL KppDecomp (AJAC, ier)
+ 
+       IF (ier.ne.0) THEN
+         IF ( H.gt.Hmin) THEN
+            H = 5.0d-1*H
+            go to 10
+         ELSE
+            print *,'IER <> 0, H=',H
+            stop
+         END IF
+       END IF
+ 
+                                                                                                                            
+
+
+C ----- STAGE 1 -----
+         delta = gamma*H
+         DO 70 j = 1,NVAR
+           K1(j) =  F1(j) 
+ 70      CONTINUE
+         IF (.NOT. Autonomous) THEN	 
+           DO 80 j = 1,NVAR
+             K1(j) =  K1(j) + delta*DFDT(j)
+ 80        CONTINUE
+	 END IF
+         CALL KppSolve (AJAC, K1)
+C               --- If  derivative w.r.t. parameters
+	 IF (DDMTYPE .EQ. 1) THEN
+	    CALL DJACDPAR(NVAR, NSENSIT, T, y, K1(1), DJDP)
+	 END IF
+C               --- End of derivative w.r.t. parameters	  	 
+	 DO 120 i=1,NSENSIT
+	    CALL Jac_SP_Vec (JAC,y(i*NVAR+1),K1(i*NVAR+1))
+	    CALL Hess_Vec ( HESS, K1(1), y(i*NVAR+1), F2 )
+	    DO 90 j=1,NVAR
+	      K1(i*NVAR+j) = K1(i*NVAR+j) + gHinv*F2(j)
+ 90	    CONTINUE	    
+           IF (.NOT. Autonomous) THEN	 
+             DO 100 j = 1,NVAR
+               K1(i*NVAR+j) =  K1(i*NVAR+j) + delta*DFDT(i*NVAR+j)
+ 100          CONTINUE
+	   END IF
+C               --- If  derivative w.r.t. parameters
+	  IF (DDMTYPE .EQ. 1) THEN
+            DO 110 j = 1,NVAR
+	       K1(i*NVAR+j) = K1(i*NVAR+j) + DFDP((i-1)*NVAR+j) 
+     &                           + DJDP((i-1)*NVAR+j)
+ 110        CONTINUE	  
+	  END IF
+C               --- End of derivative w.r.t. parameters	  	 
+            CALL KppSolve (AJAC, K1(i*NVAR+1))
+ 120	 CONTINUE
+ 
+C ----- STAGE 2   -----
+       alpha = - 1.d0/gamma
+       DO 130 j = 1,NVAR*(NSENSIT+1)
+         ynew(j) = y(j) + alpha*K1(j)
+ 130    CONTINUE
+       CALL FUNC_CHEM(NVAR, T+H, ynew, F1)
+       IF (DDMTYPE.EQ.1) THEN
+         CALL DFUNDPAR(NVAR, NSENSIT, T+H, ynew, DFDP)
+       END IF
+       nfcn=nfcn+1
+       beta1 = 2.d0/(gamma*H)
+       delta = -gamma*H
+       DO 140 j = 1,NVAR
+         K2(j) = F1(j) + beta1*K1(j) 
+ 140   CONTINUE
+       IF (.NOT. Autonomous) THEN	 
+          DO 150 j = 1,NVAR
+               K2(j) =  K2(j) + delta*DFDT(j)
+ 150      CONTINUE
+       END IF
+       CALL KppSolve (AJAC, K2)
+C               --- If  derivative w.r.t. parameters
+       IF (DDMTYPE .EQ. 1) THEN
+	    CALL DJACDPAR(NVAR, NSENSIT, T, y, K2(1), DJDP)
+       END IF
+C               --- End of derivative w.r.t. parameters	  	 
+ 
+       CALL JAC_CHEM(NVAR, T+H, Ynew, JAC)
+       njac=njac+1
+       DO 190 i=1,NSENSIT
+	  CALL Jac_SP_Vec (JAC,ynew(i*NVAR+1),K2(i*NVAR+1))
+	  CALL Jac_SP_Vec (DJDT,y(i*NVAR+1),F1)
+	  CALL Hess_Vec ( HESS, K2(1), y(i*NVAR+1), F2 )
+          DO 160 j = 1,NVAR
+	     K2(i*NVAR+j) = K2(i*NVAR+j) + beta1*K1(i*NVAR+j) 
+     &                       + gHinv*F2(j)
+ 160      CONTINUE	 
+          IF (.NOT. Autonomous) THEN	 
+             DO 170 j = 1,NVAR
+               K2(i*NVAR+j) =  K2(i*NVAR+j) + delta*DFDT(i*NVAR+j)
+ 170         CONTINUE
+	  END IF
+C               --- If  derivative w.r.t. parameters
+	  IF (DDMTYPE .EQ. 1) THEN
+            DO 180 j = 1,NVAR
+	       K2(i*NVAR+j) = K2(i*NVAR+j)  + DFDP((i-1)*NVAR+j) 
+     &                           + DJDP((i-1)*NVAR+j)
+ 180        CONTINUE	  
+	  END IF
+C               --- End of derivative w.r.t. parameters	  	 
+          CALL KppSolve (AJAC, K2(i*NVAR+1))
+ 190    CONTINUE
+ 
+C ----- STAGE 3  for error control only -----
+       IF (Embed3) THEN
+       beta1 = -c31/H
+       beta2 = -c32/H
+       delta = gamma3*H
+       DO 195 j = 1,NVAR
+         K3(j) = F1(j) + beta1*K1(j) + beta2*K2(j)
+ 195   CONTINUE
+       IF (.NOT. Autonomous) THEN
+         DO 196 j = 1,NVAR
+           K3(j) = K3(j) + delta*DFDT(j)
+ 196     CONTINUE
+       END IF
+       CALL KppSolve (AJAC, K3)
+       END IF
+
+C ---- The Solution ---
+       DO 200 j = 1,NVAR*(NSENSIT+1)
+         ynew(j) = y(j) + m1*K1(j) + m2*K2(j)
+ 200   CONTINUE
+ 
+ 
+C ====== Error estimation for concentrations only; this can be easily adapted to
+C                                             estimate the sensitivity error too ========
+ 
+        ERR=0.d0
+        DO 210 i=1,NVAR
+           w = AbsTol(i) + RelTol(i)*DMAX1(DABS(y(i)),DABS(ynew(i)))
+	   IF (Embed3) THEN
+	     e = d1*K1(i) + d2*K2(i) + d3*K3(i)
+	   ELSE
+             e = (1.d0/(2.d0*gamma))*(K1(i)+K2(i))
+	   END IF   
+           ERR = ERR + ( e/w )**2
+ 210    CONTINUE
+        ERR = DMAX1( uround, DSQRT( ERR/NVAR ) )
+ 
+C ======= Choose the stepsize ===============================
+        
+	IF (Embed3) THEN
+           elo    = 3.0D0 ! estimator local order
+	ELSE
+	   elo    = 2.0D0
+	END IF   
+        factor = DMAX1(2.0D-1,DMIN1(6.0D0,ERR**(1.0D0/elo)/.9D0))
+        Hnew   = DMIN1(Hmax,DMAX1(Hmin, H/factor))
+ 
+C ======= Rejected/Accepted Step ============================
+ 
+        IF ( (ERR.gt.1).and.(H.gt.Hmin) ) THEN
+          IsReject = .true.
+	  H = DMIN1(H/10,Hnew)
+          Nreject  = Nreject+1
+        ELSE
+          DO 300 i=1,NVAR*(NSENSIT+1)
+             y(i)  = ynew(i)
+ 300      CONTINUE
+          T = Tplus
+	  IF (.NOT.IsReject) THEN
+	      H = Hnew   ! Do not increase stepsize if previous step was rejected
+	  END IF    
+          IsReject = .false.
+          Naccept = Naccept+1
+        END IF
+ 
+C ======= End of the time loop ===============================
+      IF ( T .lt. Tnext ) GO TO 10
+ 
+ 
+ 
+C ======= Output Information =================================
+      Info(2) = Nfcn
+      Info(3) = Njac
+      Info(4) = Naccept
+      Info(5) = Nreject
+ 
+      RETURN
+      END
+ 
+ 
+  
+      SUBROUTINE FUNC_CHEM(N, T, Y, P)
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+      KPP_REAL   T, Told
+      KPP_REAL   Y(NVAR), P(NVAR)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Fun( Y,  FIX, RCONST, P )
+      TIME = Told
+      RETURN
+      END
+
+ 
+      SUBROUTINE DFUNDPAR(N, NSENSIT, T, Y, P)
+C ---  Computes the partial derivatives of FUNC_CHEM w.r.t. parameters 
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+C ---  NCOEFF, JCOEFF useful for derivatives w.r.t. rate coefficients    
+      INTEGER NCOEFF, JCOEFF(NREACT)
+      COMMON /DDMRCOEFF/ NCOEFF, JCOEFF
+      
+      KPP_REAL   T, Told
+      KPP_REAL   Y(NVAR), P(NVAR*NSENSIT)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+C
+      IF (DDMTYPE .EQ. 0) THEN
+C ---  Note: the values below are for sensitivities w.r.t. initial values;
+C ---       they may have to be changed for other applications
+        DO j=1,NSENSIT
+          DO i=1,NVAR
+	    P(i+NVAR*(j-1)) = 0.0D0
+	  END DO
+        END DO
+      ELSE	
+C ---  Example: the call below is for sensitivities w.r.t. rate coefficients;
+C ---       JCOEFF(1:NSENSIT) are the indices of the NSENSIT rate coefficients
+C ---       w.r.t. which one differentiates
+        CALL dFun_dRcoeff( Y,  FIX, NCOEFF, JCOEFF, P )
+      END IF
+      TIME = Told
+      RETURN
+      END
+ 
+      SUBROUTINE DJACDPAR(N, NSENSIT, T, Y, U, P)
+C ---  Computes the partial derivatives of JAC w.r.t. parameters times user vector U
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+C ---  NCOEFF, JCOEFF useful for derivatives w.r.t. rate coefficients    
+      INTEGER NCOEFF, JCOEFF(NREACT)
+      COMMON /DDMRCOEFF/ NCOEFF, JCOEFF
+      
+      KPP_REAL   T, Told
+      KPP_REAL   Y(NVAR), U(NVAR)
+      KPP_REAL   P(NVAR*NSENSIT)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+C
+      IF (DDMTYPE .EQ. 0) THEN
+C ---  Note: the values below are for sensitivities w.r.t. initial values;
+C ---       they may have to be changed for other applications
+        DO j=1,NSENSIT
+          DO i=1,NVAR
+	    P(i+NVAR*(j-1)) = 0.0D0
+	  END DO
+        END DO
+      ELSE	
+C ---  Example: the call below is for sensitivities w.r.t. rate coefficients;
+C ---       JCOEFF(1:NSENSIT) are the indices of the NSENSIT rate coefficients
+C ---       w.r.t. which one differentiates
+        CALL dJac_dRcoeff( Y,  FIX, U, NCOEFF, JCOEFF, P )
+      END IF
+      TIME = Told
+      RETURN
+      END
+ 
+      SUBROUTINE JAC_CHEM(N, T, Y, J)
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+      INTEGER N
+      KPP_REAL   Told, T
+      KPP_REAL   Y(NVAR), J(LU_NONZERO)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Jac_SP( Y, FIX, RCONST, J )
+      TIME = Told
+      RETURN
+      END                                                                                                                 
+
+ 
+      SUBROUTINE HESS_CHEM(N, T, Y, HESS)
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+      INTEGER N
+      KPP_REAL   Told, T
+      KPP_REAL   Y(NVAR), HESS(NHESS)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Hessian( Y, FIX, RCONST, HESS )
+      TIME = Told
+      RETURN
+      END                                                                                                                 
+
+
+
+
+
+                                                                                                                            
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/ros3.c
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/ros3.c	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/ros3.c	(revision 2696)
@@ -0,0 +1,344 @@
+
+	#define MAX(a,b) ((a) >= (b)) ?(a):(b)
+	#define MIN(b,c) ((b) <  (c)) ?(b):(c)	
+	#define abs(x)   ((x) >=  0 ) ?(x):(-x) 
+	#define dabs(y)  (double)abs(y) 
+	#define DSQRT(d) (double)pow(d,0.5)
+	#define signum(x)((x) >=  0 ) ?(1):(-1)
+
+	void (*forfun)(int,KPP_REAL,KPP_REAL [],KPP_REAL []);
+	void (*forjac)(int,KPP_REAL,KPP_REAL [],KPP_REAL []);
+
+
+
+    void FUNC_CHEM(int N,KPP_REAL T,KPP_REAL Y[NVAR],KPP_REAL P[NVAR])
+       {
+	KPP_REAL Told;
+        Told = TIME;
+        TIME = T;
+        Update_SUN();
+        Update_PHOTO();
+        Fun( Y, FIX, RCONST, P );
+        TIME = Told;
+       }/*  function fun ends here  */
+        
+
+    void JAC_CHEM(int N,KPP_REAL T,KPP_REAL Y[NVAR],KPP_REAL J[LU_NONZERO])
+       { 
+        KPP_REAL Told;
+        Told = TIME;
+        TIME = T;
+        Update_SUN();
+        Update_PHOTO();
+        Jac_SP( Y, FIX, RCONST, J );
+        TIME = Told;
+       }  
+        
+
+      INTEGRATE( KPP_REAL TIN, KPP_REAL TOUT )
+       {
+	
+        /*    TIN - Start Time		*/
+        /*    TOUT - End Time		*/
+   
+	int INFO[5];
+	forfun = &FUNC_CHEM;
+	forjac = &JAC_CHEM;	
+        INFO[0] = Autonomous;
+	ROS3(NVAR,TIN,TOUT,STEPMIN,STEPMAX,STEPMIN,VAR,ATOL,RTOL,INFO
+        ,forfun,forjac);
+       }	/* function integrate ends here  */
+     
+
+      
+int ROS3(int N,KPP_REAL T,KPP_REAL Tnext,KPP_REAL Hmin,KPP_REAL Hmax,
+KPP_REAL Hstart,KPP_REAL y[NVAR],KPP_REAL AbsTol[NVAR],KPP_REAL RelTol[NVAR],
+int INFO[5],void (*forfun)(int,KPP_REAL,KPP_REAL [],KPP_REAL []) ,
+void (*forjac)(int,KPP_REAL,KPP_REAL [],KPP_REAL []) )
+  {
+    
+/*  
+
+       L-stable Rosenbrock 3(2), with 
+     strongly A-stable embedded formula for error control.  
+
+     All the arguments aggree with the KPP syntax.
+
+  INPUT ARGUMENTS:
+     y = Vector of (NVAR) concentrations, contains the
+         initial values on input
+     [T, Tnext] = the integration interval
+     Hmin, Hmax = lower and upper bounds for the selected step-size.
+          Note that for Step = Hmin the current computed
+          solution is unconditionally accepted by the error
+          control mechanism.
+     AbsTol, RelTol = (NVAR) dimensional vectors of 
+          componentwise absolute and relative tolerances.
+     FUNC_CHEM = name of routine of derivatives. KPP syntax.
+          See the header below.
+     JAC_CHEM = name of routine that computes the Jacobian, in
+          sparse format. KPP syntax. See the header below.
+     Info(1) = 1  for  autonomous   system
+             = 0  for nonautonomous system 
+
+  OUTPUT ARGUMENTS:
+     y = the values of concentrations at Tend.
+     T = equals Tend on output.
+     Info(2) = # of FUNC_CHEM calls.
+     Info(3) = # of JAC_CHEM calls.
+     Info(4) = # of accepted steps.
+     Info(5) = # of rejected steps.
+    
+     Adrian Sandu, April 1996
+     The Center for Global and Regional Environmental Research
+*/
+
+      KPP_REAL K1[NVAR], K2[NVAR], K3[NVAR];
+      KPP_REAL F1[NVAR], JAC[LU_NONZERO];
+      KPP_REAL ghinv,uround,dround,c43,x1,x2,x3,ytol;
+      KPP_REAL gam,c21,c31,c32,b1,b2,b3,d1,d2,d3,a21,a31,a32,alpha2,alpha3,
+      		   g1,g2,g3;	 	
+      KPP_REAL ynew[NVAR];
+      KPP_REAL H, Hold, Tplus,tau;
+      KPP_REAL ERR, factor, facmax;
+      int n,nfcn,njac,Naccept,Nreject,i,j,ier;
+      char IsReject,Autonomous;
+
+
+/*     Initialization of counters, etc.		*/
+      Autonomous = (INFO[0] == 1);         
+      uround = (double)1.e-15;
+      dround = DSQRT(uround);
+      H = MAX( (double)1.e-8, Hstart);
+      Tplus = T;
+      IsReject = 0;
+      Naccept  = 0;
+      Nreject  = 0;
+      nfcn     = 0;
+      njac     = 0;
+      gam  =   (double)  (.43586652150845899941601945119356e+00);
+      c21  =   (double) -(.10156171083877702091975600115545e+01);
+      c31  =   (double)  (.40759956452537699824805835358067e+01);
+      c32  =   (double)  (.92076794298330791242156818474003e+01);
+       b1  =   (double)  (.10000000000000000000000000000000e+01);
+       b2  =   (double)  (.61697947043828245592553615689730e+01);
+       b3  =   (double) -(.42772256543218573326238373806514e+00);
+       d1  =   (double)  (.50000000000000000000000000000000e+00);
+       d2  =   (double) -(.29079558716805469821718236208017e+01);
+       d3  =   (double)  (.22354069897811569627360909276199e+00);
+       a21 =   (double) 1.e0;
+       a31 =   (double) 1.e0;
+       a32 =   (double) 0.e0;
+       alpha2 = gam;
+       alpha3 = gam;
+       g1  =   (double)  (.43586652150845899941601945119356e+00);
+       g2  =   (double)  (.24291996454816804366592249683314e+00);
+       g3  =   (double)  (.21851380027664058511513169485832e+01);
+
+
+/* === Starting the time loop ===      */
+
+while( T < Tnext )
+ {
+  ten :  
+       Tplus = T + H;
+       
+       if ( Tplus > Tnext ) 
+       {
+          H = Tnext - T;
+          Tplus = Tnext;
+       }
+
+       (*forjac)(NVAR, T, y, JAC);
+       
+       njac = njac+1;
+       ghinv = (double)-1.0e0/(gam*H);
+
+       for(j=0;j<LU_NONZERO;j++)
+           JAC[j] = -JAC[j];
+       
+     
+
+       for(j=0;j<NVAR;j++)
+           JAC[LU_DIAG[j]] = JAC[LU_DIAG[j]] - ghinv;
+	 	
+	
+	
+       ier = KppDecomp (JAC);
+ 
+       if ( ier != 0)
+       {
+        if( H > Hmin ) 
+  	{
+   	 H = (double)5.0e-1*H; 
+   	 goto ten;	   
+  	}
+  	else
+  	 {
+	  printf("IER <> 0 , H = %d", H);
+	 }  
+       }/* main ier if ends*/	
+		
+
+       (*forfun)(NVAR, T, y, F1);
+       
+
+/* ====== NONAUTONOMOUS CASE =============== */
+       if( Autonomous == 0 ) 
+       {
+         tau =(double) (dround*MAX( (double)1.0e-6, dabs(T) ) * signum(T) );
+
+         (*forfun)(NVAR, T+tau, y, K2);
+	 
+         nfcn=nfcn+1;
+         
+	 for(j=0;j<NVAR;j++)
+	     K3[j] = ( K2[j]-F1[j] )/tau;
+	   
+ 
+
+/* ----- STAGE 1 (NONAUTONOMOUS) ----- */
+         x1 = (double)g1*H;
+	 
+         for(j=0;j<NVAR;j++)
+	     K1[j] =  F1[j] + x1*K3[j];
+	    
+         KppSolve (JAC, K1);
+      
+/* ----- STAGE 2 (NONAUTONOMOUS) -----    */
+        for(j = 0;j<NVAR;j++)
+            ynew[j] = y[j] + K1[j]; 
+        
+       (*forfun)(NVAR, T+gam*H, ynew, F1);
+       nfcn=nfcn+1;
+       x1 = (double)(c21/H);
+       x2 = (double)(g2*H);
+       for(j = 0;j<NVAR;j++)
+           K2[j] = F1[j] + x1*K1[j] + x2*K3[j];
+	
+       KppSolve (JAC, K2);
+       
+/* ----- STAGE 3  (NONAUTONOMOUS) -----        */
+       x1 = (double)(c31/H);
+       x2 = (double)(c32/H);
+       x3 = (double)(g3*H);
+       for(j=0;j<NVAR;j++)
+           K3[j] = F1[j] + x1*K1[j] + x2*K2[j] + x3*K3[j];
+       
+       KppSolve (JAC, K3);
+      }/* "if" nonautonomous case ends here */	
+
+
+
+/* ====== AUTONOMOUS CASE ===============  */
+
+       else
+       {
+       
+/* ----- STAGE 1 (AUTONOMOUS) -----   */
+
+         for(j = 0;j < NVAR;j++)
+	     K1[j] =  F1[j]; 
+	  
+	 KppSolve (JAC, K1);
+  
+      
+/* ----- STAGE 2 (AUTONOMOUS) ----- */
+       for(j = 0;j < NVAR;j++)
+           ynew[j] = y[j] + K1[j];
+	
+	
+       (*forfun)(NVAR, T + gam*H, ynew, F1);
+       nfcn=nfcn+1;
+         x1 = (double)c21/H;
+         for(j = 0;j < NVAR;j++)
+	     K2[j] = F1[j] + x1*K1[j]; 
+         
+         KppSolve (JAC, K2);
+       
+/* ----- STAGE 3  (AUTONOMOUS) -----   */
+
+       x1 = (double)(c31/H);
+       x2 = (double)(c32/H);
+       for(j = 0;j < NVAR;j++)
+           K3[j] = F1[j] + x1*K1[j] + x2*K2[j];
+       
+       KppSolve (JAC, K3);
+
+       }/*  Autonomousous case ends here  */
+       
+       
+    /*   ---- The Solution ---      */
+
+        for(j = 0;j < NVAR;j++)
+	    ynew[j] = y[j] + b1*K1[j] + b2*K2[j] + b3*K3[j]; 
+        
+
+
+/* ====== Error estimation ========   */
+
+        ERR=(double)0.e0;
+        for(i=0;i<NVAR;i++)
+	{
+           ytol = AbsTol[i] + RelTol[i]*dabs(ynew[i]);
+           ERR = (double)(ERR+ pow( (double) ( (d1*K1[i]+d2*K2[i]+d3*K3[i])/ytol ) , 2 ));
+        }      
+        ERR = (double)MAX( uround, DSQRT( ERR/NVAR ) );
+
+/*
+this is the library i am linkin it to 
+[sdmehra@herbert small_strato]$ ldd small_strato
+        libm.so.6 => /lib/libm.so.6 (0x40015000)
+        libc.so.6 => /lib/libc.so.6 (0x40032000)
+       /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)                                                             
+*/
+
+/* ======= Choose the stepsize ===============================   */
+
+        factor = 0.9/pow( ERR , (1.e0/3.e0) );
+        if(IsReject == 1)
+           facmax = (double)1.0;
+	    
+        else
+           facmax = (double)10.0;
+	 
+	    
+        factor = (double)MAX( 1.0e-1, MIN(factor,facmax) );
+        Hold = H;
+        H = (double)MIN( Hmax, MAX(Hmin,factor*H) );
+	    
+
+/* ======= Rejected/Accepted Step ============================   */
+
+        if ( (ERR > 1) && (Hold > Hmin) ) 
+	{
+          IsReject = 1;
+          Nreject  = Nreject+1;
+        }
+	else
+        {
+	  IsReject = 0;
+         
+	 for(i = 0;i < NVAR;i++)
+	     y[i]  = ynew[i];
+         	     
+          T = Tplus;     
+          Naccept = Naccept+1;
+
+	}/*   else should end here */
+        
+
+/* ======= End of the time loop ===============================  */
+  
+   } /*      while loop (T < Tnext) ends here    */
+     
+      
+/* ======= Output Information =================================   */
+      INFO[1] = nfcn;
+      INFO[2] = njac;
+      INFO[3] = Naccept;
+      INFO[4] = Nreject;
+      
+    } /* function rodas ends here   */     
+
+  
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/ros3.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/ros3.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/ros3.def	(revision 2696)
@@ -0,0 +1,46 @@
+ 
+#FUNCTION AGGREGATE
+#JACOBIAN SPARSE_LU_ROW
+
+#DOUBLE ON 
+#INTFILE ros3
+
+#INLINE F77_DECL_INT
+      INTEGER Autonomous
+      COMMON /INTGDATA/ Autonomous
+      REAL*8 STEPSTART
+      COMMON /GDATA/ STEPSTART
+#ENDINLINE
+
+#INLINE F77_INIT_INT
+        STEPMIN=0.0001
+        STEPMAX=3600.
+        Autonomous = 0
+        STEPSTART=STEPMIN
+#ENDINLINE
+
+
+#INLINE F90_DECL_INT
+      INTEGER Autonomous
+      DOUBLE PRECISION STEPSTART
+#ENDINLINE
+
+#INLINE F90_INIT_INT
+        STEPMIN=0.0001
+        STEPMAX=3600.
+        Autonomous = 0
+        STEPSTART=STEPMIN
+#ENDINLINE
+
+#INLINE C_DECL_INT
+  int Autonomous;
+  double STEPSTART;
+#ENDINLINE
+
+#INLINE C_INIT_INT
+  STEPMIN=1e-4;
+  STEPMAX=3600.;
+  Autonomous = 0;
+  STEPSTART=STEPMIN;
+#ENDINLINE
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/ros3.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/ros3.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/ros3.f	(revision 2696)
@@ -0,0 +1,304 @@
+      SUBROUTINE INTEGRATE( TIN, TOUT )
+
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+
+C TIN - Start Time
+      KPP_REAL TIN
+C TOUT - End Time
+      KPP_REAL TOUT
+
+      INTEGER    INFO(5)
+
+      EXTERNAL   FUNC_CHEM, JAC_CHEM
+
+      INFO(1) = Autonomous
+
+        CALL ROS3(NVAR,TIN,TOUT,STEPMIN,STEPMAX,
+     +                   STEPMIN,VAR,ATOL,RTOL,
+     +                   Info,FUNC_CHEM,JAC_CHEM)
+
+      RETURN
+      END
+
+      
+      SUBROUTINE ROS3(N,T,Tnext,Hmin,Hmax,Hstart,
+     +                   y,AbsTol,RelTol,
+     +                   Info,FUNC_CHEM,JAC_CHEM)
+      IMPLICIT NONE
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_sparse.h'
+
+C       L-stable Rosenbrock 3(2), with 
+C     strongly A-stable embedded formula for error control.  
+C
+C     All the arguments aggree with the KPP syntax.
+C
+C  INPUT ARGUMENTS:
+C     y = Vector of (NVAR) concentrations, contains the
+C         initial values on input
+C     [T, Tnext] = the integration interval
+C     Hmin, Hmax = lower and upper bounds for the selected step-size.
+C          Note that for Step = Hmin the current computed
+C          solution is unconditionally accepted by the error
+C          control mechanism.
+C     AbsTol, RelTol = (NVAR) dimensional vectors of 
+C          componentwise absolute and relative tolerances.
+C     FUNC_CHEM = name of routine of derivatives. KPP syntax.
+C          See the header below.
+C     JAC_CHEM = name of routine that computes the Jacobian, in
+C          sparse format. KPP syntax. See the header below.
+C     Info(1) = 1  for  autonomous   system
+C             = 0  for nonautonomous system 
+C
+C  OUTPUT ARGUMENTS:
+C     y = the values of concentrations at Tend.
+C     T = equals Tend on output.
+C     Info(2) = # of FUNC_CHEM calls.
+C     Info(3) = # of JAC_CHEM calls.
+C     Info(4) = # of accepted steps.
+C     Info(5) = # of rejected steps.
+C    
+C     Adrian Sandu, April 1996
+C     The Center for Global and Regional Environmental Research
+
+      KPP_REAL K1(NVAR), K2(NVAR), K3(NVAR)
+      KPP_REAL F1(NVAR), JAC(LU_NONZERO)
+      KPP_REAL Hmin,Hmax,Hnew,Hstart,ghinv,uround
+      KPP_REAL y(NVAR), ynew(NVAR)
+      KPP_REAL AbsTol(NVAR), RelTol(NVAR)
+      KPP_REAL T, Tnext, Tplus, H, elo
+      KPP_REAL ERR, factor, facmax
+      KPP_REAL gam, c21, c31, c32, b1, b2, b3
+      KPP_REAL d1, d2, d3, a21, a31, a32
+      KPP_REAL alpha2, alpha3, g1, g2, g3
+      KPP_REAL tau, x1, x2, x3, dround, ytol
+      INTEGER    n,nfcn,njac,Naccept,Nreject,i,j,ier
+      INTEGER    Info(5)
+      LOGICAL    IsReject,Autonomous
+      EXTERNAL   FUNC_CHEM, JAC_CHEM
+      
+      gam=   .43586652150845899941601945119356d+00
+      c21=  -.10156171083877702091975600115545d+01
+      c31=   .40759956452537699824805835358067d+01
+      c32=   .92076794298330791242156818474003d+01
+       b1=   .10000000000000000000000000000000d+01
+       b2=   .61697947043828245592553615689730d+01
+       b3=  -.42772256543218573326238373806514d+00
+       d1=   .50000000000000000000000000000000d+00
+       d2=  -.29079558716805469821718236208017d+01
+       d3=   .22354069897811569627360909276199d+00
+       a21 = 1.d0
+       a31 = 1.d0
+       a32 = 0.d0
+       alpha2 = gam
+       alpha3 = gam
+       g1=   .43586652150845899941601945119356d+00
+       g2=   .24291996454816804366592249683314d+00
+       g3=   .21851380027664058511513169485832d+01
+
+
+c     Initialization of counters, etc.
+      Autonomous = Info(1) .EQ. 1
+      uround = 1.d-15
+      dround = DSQRT(uround)
+      IF (Hmax.le.0.D0) THEN
+          Hmax = DABS(Tnext-T)
+      END IF	  
+      H = DMAX1(1.d-8, Hstart)
+      Tplus = T
+      IsReject = .false.
+      Naccept  = 0
+      Nreject  = 0
+      Nfcn     = 0
+      Njac     = 0
+
+C === Starting the time loop ===      
+ 10    continue  
+ 
+       Tplus = T + H
+       if ( Tplus .gt. Tnext ) then
+          H = Tnext - T
+          Tplus = Tnext
+       end if
+
+       CALL JAC_CHEM(NVAR, T, y, JAC)
+       Njac = Njac+1
+       gHinv = -1.0d0/(gam*H)
+       do 15 j=1,LU_NONZERO
+         JAC(j) = -JAC(j) 
+ 15    continue
+       do 20 j=1,NVAR
+         JAC(LU_DIAG(j)) = JAC(LU_DIAG(j)) - gHinv
+ 20    continue
+       CALL KppDecomp (JAC, ier)
+
+       if (ier.ne.0) then
+         if ( H.gt.Hmin) then
+            H = 5.0d-1*H
+            go to 10
+         else
+            print *,'IER <> 0, H=',H
+            stop
+         end if      
+       end if  
+       
+       CALL FUNC_CHEM(NVAR, T, y, F1)
+
+C ====== NONAUTONOMOUS CASE ===============
+       IF (.not. Autonomous) THEN
+         tau = DSIGN(dround*DMAX1( 1.0d-6, DABS(T) ), T)
+         CALL FUNC_CHEM(NVAR, T+tau, y, K2)
+         nfcn=nfcn+1
+         do 30 j = 1,NVAR
+           K3(j) = ( K2(j)-F1(j) )/tau
+ 30      continue
+ 
+C ----- STAGE 1 (NONAUTONOMOUS) -----
+         x1 = g1*H
+         do 35 j = 1,NVAR
+           K1(j) =  F1(j) + x1*K3(j)
+ 35      continue
+         CALL KppSolve (JAC, K1)
+      
+C ----- STAGE 2 (NONAUTONOMOUS) -----
+       do 40 j = 1,NVAR
+         ynew(j) = y(j) + K1(j) 
+ 40    continue
+       CALL FUNC_CHEM(NVAR, T+gam*H, ynew, F1)
+       nfcn=nfcn+1
+       x1 = c21/H
+       x2 = g2*H
+       do 45 j = 1,NVAR
+         K2(j) = F1(j) + x1*K1(j) + x2*K3(j)
+ 45    continue
+       CALL KppSolve (JAC, K2)
+       
+C ----- STAGE 3  (NONAUTONOMOUS) -----
+       x1 = c31/H
+       x2 = c32/H
+       x3 = g3*H
+       do 50 j = 1,NVAR
+         K3(j) = F1(j) + x1*K1(j) + x2*K2(j) + x3*K3(j)
+ 50    continue
+       CALL KppSolve (JAC, K3)
+
+
+C ====== AUTONOMOUS CASE ===============
+       ELSE
+
+C ----- STAGE 1 (AUTONOMOUS) -----
+         do 60 j = 1,NVAR
+           K1(j) =  F1(j) 
+ 60      continue
+         CALL KppSolve (JAC, K1)
+      
+C ----- STAGE 2 (AUTONOMOUS) -----
+       do 65 j = 1,NVAR
+         ynew(j) = y(j) + K1(j) 
+ 65    continue
+       CALL FUNC_CHEM(NVAR, T + gam*H, ynew, F1)
+       nfcn=nfcn+1
+         x1 = c21/H
+         do 70 j = 1,NVAR
+           K2(j) = F1(j) + x1*K1(j) 
+ 70      continue
+         CALL KppSolve (JAC, K2)
+       
+C ----- STAGE 3  (AUTONOMOUS) -----
+       x1 = c31/H
+       x2 = c32/H
+       do 90 j = 1,NVAR
+         K3(j) = F1(j) + x1*K1(j) + x2*K2(j)
+ 90    continue
+       CALL KppSolve (JAC, K3)
+
+       END  IF ! Autonomousous
+
+C ---- The Solution ---
+
+       do 120 j = 1,NVAR
+         ynew(j) = y(j) + b1*K1(j) + b2*K2(j) + b3*K3(j) 
+ 120   continue
+
+
+C ====== Error estimation ========
+
+        ERR=0.d0
+        do 130 i=1,NVAR
+           ytol = AbsTol(i) + RelTol(i)*DMAX1(DABS(y(i)),DABS(ynew(i)))
+           ERR=ERR+((d1*K1(i)+d2*K2(i)+d3*K3(i))/ytol)**2
+ 130    continue      
+        ERR = DMAX1( uround, DSQRT( ERR/NVAR ) )
+
+C ======= Choose the stepsize ===============================
+ 
+        elo    = 3.0D0 ! estimator local order
+        factor = DMAX1(2.0D-1,DMIN1(6.0D0,ERR**(1.0D0/elo)/.9D0))
+        Hnew   = DMIN1(Hmax,DMAX1(Hmin, H/factor))
+ 
+C ======= Rejected/Accepted Step ============================
+ 
+        IF ( (ERR.gt.1).and.(H.gt.Hmin) ) THEN
+          IsReject = .true.
+	  H = DMIN1(H/10,Hnew)
+          Nreject  = Nreject+1
+        ELSE
+          DO 140 i=1,NVAR
+             y(i)  = ynew(i)
+ 140      CONTINUE
+          T = Tplus
+	  IF (.NOT.IsReject) THEN
+	      H = Hnew   ! Do not increase stepsize if previos step was rejected
+	  END IF    
+          IsReject = .false.
+          Naccept = Naccept+1
+        END IF
+
+
+C ======= End of the time loop ===============================
+      if ( T .lt. Tnext ) go to 10
+     
+      
+C ======= Output Information =================================
+      Info(2) = Nfcn
+      Info(3) = Njac
+      Info(4) = Naccept
+      Info(5) = Nreject
+      Hstart  = H
+      
+      RETURN 
+      END        
+
+  
+ 
+      SUBROUTINE FUNC_CHEM(N, T, Y, P)
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+      INTEGER N
+      KPP_REAL   T, Told
+      KPP_REAL   Y(NVAR), P(NVAR)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Fun( Y,  FIX, RCONST, P )
+      TIME = Told
+      RETURN
+      END
+ 
+      SUBROUTINE JAC_CHEM(N, T, Y, J)
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+      INTEGER N
+      KPP_REAL   Told, T
+      KPP_REAL   Y(NVAR), J(LU_NONZERO)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Jac_SP( Y,  FIX, RCONST, J )
+      TIME = Told
+      RETURN
+      END                                                                                                                 
+  
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/ros3_ddm.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/ros3_ddm.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/ros3_ddm.def	(revision 2696)
@@ -0,0 +1,51 @@
+ 
+#FUNCTION AGGREGATE
+#JACOBIAN SPARSE_LU_ROW
+
+#DOUBLE ON 
+#INTFILE ros3_ddm
+#HESSIAN ON 
+
+#INLINE F77_DECL_INT
+      INTEGER Autonomous
+      COMMON /INTGDATA/ Autonomous
+      REAL*8 STEPSTART
+      COMMON /GDATA/ STEPSTART
+#ENDINLINE
+
+#INLINE F77_INIT_INT
+        STEPMIN=1.0E-4
+        STEPMAX=3600.
+        Autonomous = 0
+        STEPSTART=STEPMIN
+#ENDINLINE
+
+
+#INLINE F90_DECL_INT
+      INTEGER :: Autonomous
+      DOUBLE PRECISION :: STEPSTART
+#ENDINLINE
+
+#INLINE F90_INIT_INT
+        STEPMIN=1.0E-4
+        STEPMAX=3600.
+        Autonomous = 0
+        STEPSTART=STEPMIN
+#ENDINLINE
+
+#INLINE C_DECL_INT
+    extern int Autonomous;
+    extern double STEPSTART;
+#ENDINLINE
+ 
+#INLINE C_DATA_INT
+    int Autonomous;
+    double STEPSTART;
+#ENDINLINE
+
+#INLINE C_INIT_INT
+        STEPMIN = 0.0001;
+        STEPMAX = 3600.0;
+        Autonomous = 0;
+        STEPSTART = STEPMIN;
+#ENDINLINE                                                                     
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/ros3_ddm.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/ros3_ddm.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/ros3_ddm.f	(revision 2696)
@@ -0,0 +1,503 @@
+      SUBROUTINE INTEGRATE( NSENSIT, Y, TIN, TOUT )
+
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+
+C TIN - Start Time
+      KPP_REAL TIN
+C TOUT - End Time
+      KPP_REAL TOUT
+C Y - Concentrations and Sensitivities
+      KPP_REAL Y(NVAR*(NSENSIT+1))
+C ---  Note: Y contains: (1:NVAR) concentrations, followed by
+C ---                   (1:NVAR) sensitivities w.r.t. first parameter, followed by
+C ---                   etc.,  followed by          
+C ---                   (1:NVAR) sensitivities w.r.t. NSENSIT's parameter
+
+      INTEGER    INFO(5)
+
+      EXTERNAL   FUNC_CHEM, JAC_CHEM
+
+      INFO(1) = Autonomous
+
+        CALL ROS3_DDM(NVAR,NSENSIT,TIN,TOUT,STEPMIN,STEPMAX,
+     +                   STEPMIN,Y,ATOL,RTOL,
+     +                   Info,FUNC_CHEM,JAC_CHEM)
+
+      RETURN
+      END
+
+      
+      SUBROUTINE ROS3_DDM(N,NSENSIT,T,Tnext,Hmin,Hmax,Hstart,
+     +                   y,AbsTol,RelTol,
+     +                   Info,FUNC_CHEM,JAC_CHEM)
+      IMPLICIT NONE
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+      INCLUDE 'KPP_ROOT_sparse.h'
+
+C       L-stable Rosenbrock 3(2), with 
+C     strongly A-stable embedded formula for error control.  
+C
+C Direct decoupled computation of sensitivities.
+C The global variable DDMTYPE distinguishes between:
+C      DDMTYPE = 0 : sensitivities w.r.t. initial values
+C      DDMTYPE = 1 : sensitivities w.r.t. parameters
+C
+C     All the arguments aggree with the KPP syntax.
+C
+C  INPUT ARGUMENTS:
+C     y = Vector of:   (1:NVAR) concentrations, followed by
+C                      (1:NVAR) sensitivities w.r.t. first parameter, followed by
+C                       etc.,  followed by          
+C                      (1:NVAR) sensitivities w.r.t. NSENSIT's parameter
+C         (y contains initial values at input, final values at output)
+C     [T, Tnext] = the integration interval
+C     Hmin, Hmax = lower and upper bounds for the selected step-size.
+C          Note that for Step = Hmin the current computed
+C          solution is unconditionally accepted by the error
+C          control mechanism.
+C     AbsTol, RelTol = (NVAR) dimensional vectors of 
+C          componentwise absolute and relative tolerances.
+C     FUNC_CHEM = name of routine of derivatives. KPP syntax.
+C          See the header below.
+C     JAC_CHEM = name of routine that computes the Jacobian, in
+C          sparse format. KPP syntax. See the header below.
+C     Info(1) = 1  for  Autonomous   system
+C             = 0  for nonAutonomous system 
+C
+C  OUTPUT ARGUMENTS:
+C     y = the values of concentrations at TEND.
+C     T = equals TEND on output.
+C     Info(2) = # of FUNC_CHEM calls.
+C     Info(3) = # of JAC_CHEM calls.
+C     Info(4) = # of accepted steps.
+C     Info(5) = # of rejected steps.
+C    
+C     Adrian Sandu, April 1996
+C     The Center for Global and Regional Environmental Research
+      INTEGER     NSENSIT
+      KPP_REAL y(NVAR*(NSENSIT+1)), ynew(NVAR*(NSENSIT+1))
+      KPP_REAL K1(NVAR*(NSENSIT+1))
+      KPP_REAL K2(NVAR*(NSENSIT+1))
+      KPP_REAL K3(NVAR*(NSENSIT+1))
+      KPP_REAL DFDT(NVAR*(NSENSIT+1))
+      KPP_REAL DFDP(NVAR*NSENSIT), DFDPDT(NVAR*NSENSIT)
+      KPP_REAL DJDP(NVAR*NSENSIT)
+      KPP_REAL JAC(LU_NONZERO), AJAC(LU_NONZERO)
+      KPP_REAL DJDT(LU_NONZERO)
+      KPP_REAL Fv(NVAR), Hv(NVAR)
+      KPP_REAL HESS(NHESS)
+      KPP_REAL Hmin,Hmax,Hstart,ghinv,uround
+      KPP_REAL AbsTol(NVAR), RelTol(NVAR)
+      KPP_REAL T, Tnext, Tplus, H, Hnew, elo
+      KPP_REAL ERR, factor, facmax
+      INTEGER    n,nfcn,njac,Naccept,Nreject,i,j,ier
+      INTEGER    Info(5)
+      LOGICAL    IsReject,Autonomous
+      EXTERNAL   FUNC_CHEM, JAC_CHEM, HESS_CHEM
+      
+      KPP_REAL gamma, c21, c31,c32,b1,b2,b3,d1,d2,d3,a21,a31,a32
+      KPP_REAL alpha2, alpha3, g1, g2, g3, x1, x2, x3, ytol
+      KPP_REAL dround, tau
+      
+      gamma= .43586652150845899941601945119356d+00
+      c21=  -.10156171083877702091975600115545d+01
+      c31=   .40759956452537699824805835358067d+01
+      c32=   .92076794298330791242156818474003d+01
+       b1=   .10000000000000000000000000000000d+01
+       b2=   .61697947043828245592553615689730d+01
+       b3=  -.42772256543218573326238373806514d+00
+       d1=   .50000000000000000000000000000000d+00
+       d2=  -.29079558716805469821718236208017d+01
+       d3=   .22354069897811569627360909276199d+00
+       a21 = 1.d0
+       a31 = 1.d0
+       a32 = 0.d0
+       alpha2 = gamma
+       g1=   .43586652150845899941601945119356d+00
+       g2=   .24291996454816804366592249683314d+00
+       g3=   .21851380027664058511513169485832d+01
+
+
+c     Initialization of counters, etc.
+      Autonomous = Info(1) .EQ. 1
+      uround = 1.d-15
+      dround = DSQRT(uround)
+      IF (Hmax.le.0.D0) THEN
+          Hmax = DABS(Tnext-T)
+      END IF	  
+      H = DMAX1(1.d-8, Hstart)
+      Tplus = T
+      IsReject = .false.
+      Naccept  = 0
+      Nreject  = 0
+      Nfcn     = 0
+      Njac     = 0
+
+
+C === Starting the time loop ===      
+ 10    CONTINUE  
+
+C ====== Initial Function, Jacobian, and Hessian values ===============
+       CALL FUNC_CHEM(NVAR, T, y, Fv)
+       Nfcn = Nfcn + 1
+       CALL JAC_CHEM(NVAR, T, y, JAC)
+       Njac = Njac + 1
+       CALL HESS_CHEM( NVAR, T, y, HESS )
+       IF (DDMTYPE .EQ. 1) THEN
+          CALL DFUNDPAR(NVAR, NSENSIT, T, y, DFDP)
+       END IF	  
+       
+C ====== Time derivatives for NONAutonomousous CASE ===============
+       IF (.not. Autonomous) THEN
+         tau = DSIGN(dround*DMAX1( 1.0d-6, DABS(T) ), T)
+         CALL FUNC_CHEM(NVAR, T+tau, y, K2)
+         nfcn=nfcn+1
+         DO 20 j = 1,NVAR
+           DFDT(j) = ( K2(j)-Fv(j) )/tau
+ 20      CONTINUE
+         CALL JAC_CHEM(NVAR, T+tau, y, AJAC)
+         DO 30 j = 1,LU_NONZERO
+           DJDT(j) = ( AJAC(j)-JAC(j) )/tau
+ 30      CONTINUE
+         DO 40 i=1,NSENSIT
+	    CALL Jac_SP_Vec (DJDT,y(i*NVAR+1),DFDT(i*NVAR+1))
+ 40      CONTINUE
+       END IF
+ 
+       
+       Tplus = T + H
+       IF ( Tplus .gt. Tnext ) then
+          H = Tnext - T
+          Tplus = Tnext
+       END IF
+
+       gHinv = 1.0d0/(gamma*H)
+       DO 50 j=1,LU_NONZERO
+         AJAC(j) = -JAC(j) 
+ 50    CONTINUE
+       DO 60 j=1,NVAR
+         AJAC(LU_DIAG(j)) = AJAC(LU_DIAG(j)) + gHinv
+ 60    CONTINUE
+       CALL KppDecomp (AJAC, ier)
+
+       IF (ier.NE.0) THEN
+         IF ( H.GT.Hmin) THEN
+            H = 5.0d-1*H
+            GO TO 10
+         ELSE
+            PRINT *,'IER <> 0, H=',H
+            STOP
+         END IF      
+       END IF  
+       
+       Autonomous = .true.
+       
+C ------------------------------- STAGE 1 --------------------------------------
+       DO 70 j = 1,NVAR
+           K1(j) =  Fv(j) 
+ 70    CONTINUE
+       IF (.NOT.Autonomous) THEN
+         x1 = gamma*H
+         DO 80 j = 1,NVAR
+            K1(j) = K1(j) + x1*DFDT(j)
+ 80     CONTINUE       
+       END IF 
+       CALL KppSolve (AJAC, K1)
+C               --- If  derivative w.r.t. parameters
+	 IF (DDMTYPE .EQ. 1) THEN
+	    CALL DJACDPAR(NVAR, NSENSIT, T, y, K1(1), DJDP)
+	 END IF
+C               --- End of derivative w.r.t. parameters	  	 
+
+       DO 110 i=1,NSENSIT
+	  CALL Jac_SP_Vec (JAC,y(i*NVAR+1),K1(i*NVAR+1))
+	  CALL Hess_Vec ( HESS, y(i*NVAR+1), K1(1), Hv )
+	  DO 90 j=1,NVAR
+	    K1(i*NVAR+j) = K1(i*NVAR+j) + Hv(j)
+ 90	  CONTINUE	    
+          IF (.NOT. Autonomous) THEN
+	    DO 100 j=1,NVAR
+	      K1(i*NVAR+j) = K1(i*NVAR+j) + x1*DFDT(i*NVAR+j)
+ 100        CONTINUE
+          END IF
+C               --- If  derivative w.r.t. parameters
+	  IF (DDMTYPE .EQ. 1) THEN
+            DO 44 j = 1,NVAR
+	       K1(i*NVAR+j) = K1(i*NVAR+j) + DFDP((i-1)*NVAR+j) 
+     &                           + DJDP((i-1)*NVAR+j)
+ 44        CONTINUE	  
+	  END IF
+C               --- End of derivative w.r.t. parameters	  	 
+          CALL KppSolve (AJAC, K1(i*NVAR+1))
+ 110   CONTINUE
+      
+C ------------------------------- STAGE 2 --------------------------------------
+       DO 120 j = 1,NVAR*(NSENSIT+1)
+         ynew(j) = y(j) + a21*K1(j) 
+ 120   CONTINUE
+       CALL FUNC_CHEM(NVAR, T + alpha2*H, ynew, Fv)
+       IF (DDMTYPE .EQ. 1) THEN
+         CALL DFUNDPAR(NVAR, NSENSIT, T+alpha3*H, ynew, DFDP)
+       END IF	  
+       nfcn=nfcn+1
+       x1 = c21/H
+       DO 130 j = 1,NVAR
+           K2(j) = Fv(j) + x1*K1(j) 
+ 130   CONTINUE
+       IF (.NOT.Autonomous) THEN
+         x2 = g2*H
+         DO 140 j = 1,NVAR
+            K2(j) = K2(j) + x2*DFDT(j)
+ 140     CONTINUE       
+       END IF 
+       CALL KppSolve (AJAC, K2)
+C               --- If  derivative w.r.t. parameters
+       IF (DDMTYPE .EQ. 1) THEN
+	  CALL DJACDPAR(NVAR, NSENSIT, T, y, K2(1), DJDP)
+       END IF
+C               --- End of derivative w.r.t. parameters	  	 
+             
+       CALL JAC_CHEM(NVAR, T+alpha2*H, ynew, JAC)
+       njac=njac+1
+       DO 170 i=1,NSENSIT
+	  CALL Jac_SP_Vec (JAC,ynew(i*NVAR+1),K2(i*NVAR+1))
+	  CALL Hess_Vec ( HESS, y(i*NVAR+1), K2(1), Hv )
+          DO 150 j = 1,NVAR
+	     K2(i*NVAR+j) = K2(i*NVAR+j) + x1*K1(i*NVAR+j) 
+     &                          + Hv(j)
+ 150      CONTINUE	 
+          IF (.NOT. Autonomous) THEN
+	     DO 160 j=1,NVAR
+	        K2(i*NVAR+j) = K2(i*NVAR+j) + x2*DFDT(i*NVAR+j)
+ 160         CONTINUE
+          END IF
+C               --- If  derivative w.r.t. parameters
+	  IF (DDMTYPE .EQ. 1) THEN
+            DO 165 j = 1,NVAR
+	       K2(i*NVAR+j) = K2(i*NVAR+j) + DFDP((i-1)*NVAR+j) 
+     &                           + DJDP((i-1)*NVAR+j)
+ 165        CONTINUE	  
+	  END IF
+C               --- End of derivative w.r.t. parameters	  	 
+          CALL KppSolve (AJAC, K2(i*NVAR+1))
+ 170   CONTINUE
+ 
+C ------------------------------- STAGE 3  --------------------------------------
+       x1 = c31/H
+       x2 = c32/H
+       DO 180 j = 1,NVAR
+         K3(j) = Fv(j) + x1*K1(j) + x2*K2(j)
+ 180   CONTINUE
+       IF (.NOT.Autonomous) THEN
+         x3 = g3*H
+         DO 190 j = 1,NVAR
+            K3(j) = K3(j) + x3*DFDT(j)
+ 190     CONTINUE       
+       END IF 
+       CALL KppSolve (AJAC, K3)
+C               --- If  derivative w.r.t. parameters
+	 IF (DDMTYPE .EQ. 1) THEN
+	    CALL DJACDPAR(NVAR, NSENSIT, T, y, K3(1), DJDP)
+	 END IF
+C               --- End of derivative w.r.t. parameters	  	 
+       
+       DO 220 i=1,NSENSIT
+	  CALL Jac_SP_Vec (JAC,ynew(i*NVAR+1),K3(i*NVAR+1))
+	  CALL Hess_Vec ( HESS, y(i*NVAR+1), K3(1), Hv )
+          DO 200 j = 1,NVAR
+	     K3(i*NVAR+j) = K3(i*NVAR+j) +x1*K1(i*NVAR+j) 
+     &                       + x2*K2(i*NVAR+j) + Hv(j)
+ 200      CONTINUE	 
+          IF (.NOT. Autonomous) THEN
+	     DO 210 j=1,NVAR
+	        K3(i*NVAR+j) = K3(i*NVAR+j) + x3*DFDT(i*NVAR+j)
+ 210         CONTINUE
+          END IF
+C               --- If  derivative w.r.t. parameters
+	  IF (DDMTYPE .EQ. 1) THEN
+             DO 215 j = 1,NVAR
+	       K3(i*NVAR+j) = K3(i*NVAR+j) + DFDP((i-1)*NVAR+j) 
+     &                           + DJDP((i-1)*NVAR+j)
+ 215        CONTINUE	  
+	  END IF	 
+C               --- End of derivative w.r.t. parameters
+          CALL KppSolve (AJAC, K3(i*NVAR+1))
+ 220   CONTINUE
+
+C ------------------------------ The Solution ---
+
+       DO 230 j = 1,NVAR*(NSENSIT+1)
+         ynew(j) = y(j) + b1*K1(j) + b2*K2(j) + b3*K3(j) 
+ 230   CONTINUE
+
+
+C ====== Error estimation ========
+
+        ERR=0.d0
+        DO 240 i=1,NVAR
+           ytol = AbsTol(i) + RelTol(i)*DABS(ynew(i))
+           ERR=ERR+((d1*K1(i)+d2*K2(i)+d3*K3(i))/ytol)**2
+ 240    CONTINUE      
+        ERR = DMAX1( uround, DSQRT( ERR/NVAR ) )
+
+C ======= Choose the stepsize ===============================
+ 
+        elo    = 3.0D0 ! estimator local order
+        factor = DMAX1(2.0D-1,DMIN1(6.0D0,ERR**(1.0D0/elo)/.9D0))
+        Hnew   = DMIN1(Hmax,DMAX1(Hmin, H/factor))
+ 
+C ======= Rejected/Accepted Step ============================
+ 
+        IF ( (ERR.gt.1).and.(H.gt.Hmin) ) THEN
+          IsReject = .true.
+	  H = DMIN1(H/10,Hnew)
+          Nreject  = Nreject+1 
+	  GO TO 10
+        ELSE
+          DO 250 j=1,NVAR*(NSENSIT+1)
+             y(j)  = ynew(j)
+ 250      CONTINUE
+          T = Tplus
+	  IF (.NOT.IsReject) THEN
+	      H = Hnew   ! Do not increase stepsize IF previos step was rejected
+	  END IF    
+          IsReject = .false.
+          Naccept = Naccept+1
+        END IF
+
+
+C ======= End of the time loop ===============================
+      IF ( T .lt. Tnext ) GO TO 10
+     
+      
+C ======= Output Information =================================
+      Info(2) = Nfcn
+      Info(3) = Njac
+      Info(4) = Naccept
+      Info(5) = Nreject
+      Hstart  = H
+      
+      RETURN 
+      END        
+
+
+ 
+      SUBROUTINE FUNC_CHEM(N, T, Y, P)
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+      INTEGER N
+      KPP_REAL   T, Told
+      KPP_REAL   Y(NVAR), P(NVAR)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Fun( Y,  FIX, RCONST, P )
+      TIME = Told
+      RETURN
+      END
+
+ 
+      SUBROUTINE DFUNDPAR(N, NSENSIT, T, Y, P)
+C ---  Computes the partial derivatives of FUNC_CHEM w.r.t. parameters 
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+C ---  NCOEFF, JCOEFF useful for derivatives w.r.t. rate coefficients    
+      INTEGER N
+      INTEGER NCOEFF, JCOEFF(NREACT)
+      COMMON /DDMRCOEFF/ NCOEFF, JCOEFF
+      
+      KPP_REAL   T, Told
+      KPP_REAL   Y(NVAR), P(NVAR*NSENSIT)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+C
+      IF (DDMTYPE .EQ. 0) THEN
+C ---  Note: the values below are for sensitivities w.r.t. initial values;
+C ---       they may have to be changed for other applications
+        DO j=1,NSENSIT
+          DO i=1,NVAR
+	    P(i+NVAR*(j-1)) = 0.0D0
+	  END DO
+        END DO
+      ELSE	
+C ---  Example: the call below is for sensitivities w.r.t. rate coefficients;
+C ---       JCOEFF(1:NSENSIT) are the indices of the NSENSIT rate coefficients
+C ---       w.r.t. which one differentiates
+        CALL dFun_dRcoeff( Y,  FIX, NCOEFF, JCOEFF, P )
+      END IF
+      TIME = Told
+      RETURN
+      END
+ 
+      SUBROUTINE JAC_CHEM(N, T, Y, J)
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+      INTEGER N
+      KPP_REAL   Told, T
+      KPP_REAL   Y(NVAR), J(LU_NONZERO)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Jac_SP( Y,  FIX, RCONST, J )
+      TIME = Told
+      RETURN
+      END                                                                                                                 
+
+ 
+      SUBROUTINE DJACDPAR(N, NSENSIT, T, Y, U, P)
+C ---  Computes the partial derivatives of JAC w.r.t. parameters times user vector U
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+C ---  NCOEFF, JCOEFF useful for derivatives w.r.t. rate coefficients    
+      INTEGER N
+      INTEGER NCOEFF, JCOEFF(NREACT)
+      COMMON /DDMRCOEFF/ NCOEFF, JCOEFF
+      
+      KPP_REAL   T, Told
+      KPP_REAL   Y(NVAR), U(NVAR)
+      KPP_REAL   P(NVAR*NSENSIT)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+C
+      IF (DDMTYPE .EQ. 0) THEN
+C ---  Note: the values below are for sensitivities w.r.t. initial values;
+C ---       they may have to be changed for other applications
+        DO j=1,NSENSIT
+          DO i=1,NVAR
+	    P(i+NVAR*(j-1)) = 0.0D0
+	  END DO
+        END DO
+      ELSE	
+C ---  Example: the call below is for sensitivities w.r.t. rate coefficients;
+C ---       JCOEFF(1:NSENSIT) are the indices of the NSENSIT rate coefficients
+C ---       w.r.t. which one differentiates
+        CALL dJac_dRcoeff( Y,  FIX, U, NCOEFF, JCOEFF, P )
+      END IF
+      TIME = Told
+      RETURN
+      END
+
+ 
+      SUBROUTINE HESS_CHEM(N, T, Y, HESS)
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+      INTEGER N
+      KPP_REAL   Told, T
+      KPP_REAL   Y(NVAR), HESS(NHESS)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Hessian( Y,  FIX, RCONST, HESS )
+      TIME = Told
+      RETURN
+      END                                                                                                                 
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/ros4.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/ros4.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/ros4.def	(revision 2696)
@@ -0,0 +1,63 @@
+ 
+#FUNCTION AGGREGATE
+#JACOBIAN SPARSE_LU_ROW
+
+#DOUBLE ON 
+#INTFILE ros4
+
+#INLINE F_DECL_INT
+      INTEGER Autonomous
+      COMMON /INTGDATA/ Autonomous
+      REAL*8 STEPSTART
+      COMMON /GDATA/ STEPSTART
+#ENDINLINE
+
+#INLINE F77_INIT_INT
+        STEPMIN=1.e-4
+        STEPMAX=3600.
+        Autonomous = 0
+        STEPSTART=STEPMIN
+#ENDINLINE
+
+#INLINE F77_DECL_INT
+      INTEGER Autonomous
+      COMMON /INTGDATA/ Autonomous
+      REAL*8 STEPSTART
+      COMMON /GDATA/ STEPSTART
+#ENDINLINE
+
+#INLINE F90_INIT_INT
+        STEPMIN=1.e-4
+        STEPMAX=3600.
+        Autonomous = 0
+        STEPSTART=STEPMIN
+#ENDINLINE
+
+#INLINE F90_DECL_INT
+      INTEGER :: Autonomous
+      DOUBLE PRECISION :: STEPSTART
+#ENDINLINE
+
+#INLINE C_DECL_INT
+    extern int Autonomous;
+    extern double STEPSTART;
+#ENDINLINE
+ 
+#INLINE C_DATA_INT
+int Autonomous;
+double STEPSTART;
+#ENDINLINE
+
+#INLINE C_INIT_INT
+        STEPMIN = 0.0001;
+        STEPMAX = 3600.0;
+        Autonomous = 0;
+        STEPSTART = STEPMIN;
+#ENDINLINE                                                                     
+
+#INLINE MATLAB_INIT_INT
+        STEPMIN = 0.0001;
+        STEPMAX = 3600.0;
+        Autonomous = 0;
+        STEPSTART = STEPMIN;
+#ENDINLINE                                                                     
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/ros4.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/ros4.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/ros4.f	(revision 2696)
@@ -0,0 +1,334 @@
+      SUBROUTINE INTEGRATE( TIN, TOUT )
+ 
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+
+C TIN - Start Time
+      KPP_REAL TIN
+C TOUT - End Time
+      KPP_REAL TOUT
+
+      INTEGER    INFO(5)
+
+      EXTERNAL FUNC_CHEM, JAC_CHEM
+
+      INFO(1) = Autonomous
+ 
+      CALL ROS4(NVAR,TIN,TOUT,STEPMIN,STEPMAX,
+     +                   STEPMIN,VAR,ATOL,RTOL,
+     +                   Info,FUNC_CHEM,JAC_CHEM)
+
+      RETURN
+      END
+  
+
+ 
+ 
+      SUBROUTINE ROS4(N,T,Tnext,Hmin,Hmax,Hstart,
+     +                   y,AbsTol,RelTol,
+     +                   Info,FUNC_CHEM,JAC_CHEM)
+      IMPLICIT NONE
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_sparse.h'                                                                                                  
+C
+C  Four Stages, Fourth Order L-stable Rosenbrock Method, 
+C     with embedded L-stable, third order method for error control
+C     Simplified version of E. Hairer's atmros4; the coefficients are slightly
+C     different
+C
+C
+C  INPUT ARGUMENTS:
+C     y = Vector of (NVAR) concentrations, contains the
+C         initial values on input
+C     [T, Tnext] = the integration interval
+C     Hmin, Hmax = lower and upper bounds for the selected step-size.
+C          Note that for Step = Hmin the current computed
+C          solution is unconditionally accepted by the error
+C          control mechanism.
+C     AbsTol, RelTol = (NVAR) dimensional vectors of
+C          componentwise absolute and relative tolerances.
+C     FUNC_CHEM = name of routine of derivatives. KPP syntax.
+C          See the header below.
+C     JAC_CHEM = name of routine that computes the Jacobian, in
+C          sparse format. KPP syntax. See the header below.
+C     Info(1) = 1  for  Autonomous   system
+C             = 0  for nonAutonomous system
+C
+C  OUTPUT ARGUMENTS:
+C     y = the values of concentrations at Tend.
+C     T = equals TENDon output.
+C     Info(2) = # of FUNC_CHEM CALLs.
+C     Info(3) = # of JAC_CHEM CALLs.
+C     Info(4) = # of accepted steps.
+C     Info(5) = # of rejected steps.
+C     Hstart = The last accepted stepsize
+C 
+C    Adrian Sandu, December 2001
+C 
+      KPP_REAL K1(NVAR), K2(NVAR), K3(NVAR), K4(NVAR)
+      KPP_REAL F1(NVAR)
+      KPP_REAL DFDT(NVAR)
+      KPP_REAL JAC(LU_NONZERO)
+      KPP_REAL Hmin,Hmax,Hstart
+      KPP_REAL y(NVAR), ynew(NVAR)
+      KPP_REAL AbsTol(NVAR), RelTol(NVAR)
+      KPP_REAL T, Tnext, H, Hnew, Tplus
+      KPP_REAL elo,ghinv,uround
+      KPP_REAL ERR, factor, facmax
+      KPP_REAL w, e, dround, tau
+      KPP_REAL hgam1, hgam2, hgam3, hgam4
+      KPP_REAL hc21, hc31, hc32, hc41, hc42, hc43
+      
+      INTEGER    n,nfcn,njac,Naccept,Nreject,i,j,ier
+      INTEGER    Info(5)
+      LOGICAL    IsReject, Autonomous
+      EXTERNAL   FUNC_CHEM, JAC_CHEM                                                                                                
+
+
+C   The method coefficients
+      DOUBLE PRECISION gamma, gamma2, gamma3, gamma4
+      PARAMETER ( gamma  =  0.5728200000000000D+00 )
+      PARAMETER ( gamma2 = -0.1769193891319233D+01 ) 
+      PARAMETER ( gamma3 =  0.7592633437920482D+00 ) 
+      PARAMETER ( gamma4 = -0.1049021087100450D+00 ) 
+      DOUBLE PRECISION a21, a31, a32, a41, a42, a43
+      PARAMETER (  a21 = 0.2000000000000000D+01  )   
+      PARAMETER (  a31 = 0.1867943637803922D+01  )   
+      PARAMETER (  a32 = 0.2344449711399156D+00  )   
+      DOUBLE PRECISION alpha2, alpha3
+      PARAMETER (  alpha2  = 0.1145640000000000D+01  )   
+      PARAMETER (  alpha3  = 0.6552168638155900D+00  )   
+      DOUBLE PRECISION c21, c31, c32, c41, c42, c43
+      PARAMETER (  c21  = -0.7137615036412310D+01  ) 
+      PARAMETER (  c31  =  0.2580708087951457D+01  ) 
+      PARAMETER (  c32  =  0.6515950076447975D+00  ) 
+      PARAMETER (  c41  = -0.2137148994382534D+01  ) 
+      PARAMETER (  c42  = -0.3214669691237626D+00  ) 
+      PARAMETER (  c43  = -0.6949742501781779D+00  ) 
+      DOUBLE PRECISION b1, b2, b3, b4
+      PARAMETER (  b1 = 0.2255570073418735D+01  ) 
+      PARAMETER (  b2 = 0.2870493262186792D+00  ) 
+      PARAMETER (  b3 = 0.4353179431840180D+00  ) 
+      PARAMETER (  b4 = 0.1093502252409163D+01 )  
+      DOUBLE PRECISION d1, d2, d3, d4
+      PARAMETER (  d1 = -0.2815431932141155D+00  ) 
+      PARAMETER (  d2 = -0.7276199124938920D-01  ) 
+      PARAMETER (  d3 = -0.1082196201495311D+00  ) 
+      PARAMETER (  d4 = -0.1093502252409163D+01  )  
+ 
+c     Initialization of counters, etc.
+      Autonomous = Info(1) .EQ. 1
+      uround = 1.d-15
+      dround = DSQRT(uround)
+      IF (Hmax.le.0.D0) THEN
+          Hmax = DABS(Tnext-T)
+      END IF	  
+      H = DMAX1(1.d-8, Hstart)
+      Tplus = T
+      IsReject = .false.
+      Naccept  = 0
+      Nreject  = 0
+      Nfcn     = 0
+      Njac     = 0
+  
+C === Starting the time loop ===
+ 10    CONTINUE
+  
+       Tplus = T + H
+       IF ( Tplus .gt. Tnext ) THEN
+          H = Tnext - T
+          Tplus = Tnext
+       END IF
+ 
+C              Initial Function and Jacobian values                                                                                                                            
+       CALL FUNC_CHEM( T, y, F1 )
+       CALL JAC_CHEM( T, y, JAC )
+ 
+C              The time derivative for non-Autonomous case                                                                                                                            
+       IF (.not. Autonomous) THEN
+         tau = DSIGN(dround*DMAX1( 1.0d-6, DABS(T) ), T)
+         CALL FUNC_CHEM( T+tau, y, K2 )
+         nfcn=nfcn+1
+         DO 20 j = 1,NVAR
+           DFDT(j) = ( K2(j)-F1(j) )/tau
+ 20      CONTINUE
+       END IF
+ 
+C              Form the Prediction matrix and compute its LU factorization                                                                                                                           
+       Njac = Njac+1
+       ghinv = 1.0d0/(gamma*H)
+       DO 30 j=1,LU_NONZERO
+         JAC(j) = -JAC(j)
+ 30    CONTINUE
+       DO 40 j=1,NVAR
+         JAC(LU_DIAG(j)) = JAC(LU_DIAG(j)) + ghinv
+ 40    CONTINUE
+       CALL KppDecomp (JAC, ier)
+C 
+       IF (ier.ne.0) THEN
+         IF ( H.gt.Hmin) THEN
+            H = 5.0d-1*H
+            GO TO 10
+         ELSE
+            PRINT *,'ROS4: Singular factorization at T=',T,'; H=',H
+            STOP
+         END IF
+       END IF
+                                                                                                                            
+ 
+C ------------ STAGE 1-------------------------
+       DO 50 j = 1,NVAR
+         K1(j) =  F1(j)
+ 50    CONTINUE
+       IF (.NOT. Autonomous) THEN
+          hgam1 = H*gamma
+	  DO 60 j=1,NVAR
+	    K1(j) = K1(j) + hgam1*DFDT(j)	    
+ 60	  CONTINUE
+       END IF
+       CALL KppSolve (JAC, K1)
+ 
+C ----------- STAGE 2 -------------------------
+       DO 70 j = 1,NVAR
+         ynew(j) = y(j) + a21*K1(j)
+ 70    CONTINUE
+       CALL FUNC_CHEM( T+alpha2*H, ynew, F1)
+       nfcn=nfcn+1
+       hc21 = c21/H
+       DO 80 j = 1,NVAR
+         K2(j) = F1(j) + hc21*K1(j)
+ 80    CONTINUE
+       IF (.NOT. Autonomous) THEN
+         hgam2 = H*gamma2
+	 DO 90 j=1,NVAR
+	    K2(j) = K2(j) + hgam2*DFDT(j)	    
+ 90	 CONTINUE
+       END IF
+       CALL KppSolve (JAC, K2)
+ 
+ 
+C ------------ STAGE 3 -------------------------
+       DO 100 j = 1,NVAR
+         ynew(j) = y(j) + a31*K1(j) + a32*K2(j)
+ 100   CONTINUE
+       CALL FUNC_CHEM( T+alpha3*H, ynew, F1)
+       nfcn=nfcn+1
+       hc31 = c31/H
+       hc32 = c32/H
+       DO 110 j = 1,NVAR
+         K3(j) = F1(j) + hc31*K1(j) + hc32*K2(j)
+ 110   CONTINUE
+       IF (.NOT. Autonomous) THEN
+         hgam3 = H*gamma3
+	 DO 120 j=1,NVAR
+	    K3(j) = K3(j) + hgam3*DFDT(j)	    
+ 120     CONTINUE
+       END IF
+       CALL KppSolve (JAC, K3)
+ 
+C ------------ STAGE 4 -------------------------
+C              Note: uses the same function value as stage 3
+       hc41 = c41/H
+       hc42 = c42/H
+       hc43 = c43/H
+       DO 140 j = 1,NVAR
+         K4(j) = F1(j) + hc41*K1(j) + hc42*K2(j) + hc43*K3(j)
+ 140   CONTINUE
+       IF (.NOT. Autonomous) THEN
+          hgam4 = H*gamma4
+	  DO 150 j=1,NVAR
+	    K4(j) = K4(j) + hgam4*DFDT(j)
+ 150      CONTINUE
+       END IF
+       CALL KppSolve (JAC, K4)
+ 
+
+
+C ---- The Solution ---
+       DO 160 j = 1,NVAR
+         ynew(j) = y(j) + b1*K1(j) + b2*K2(j) + b3*K3(j) + b4*K4(j)
+ 160   CONTINUE
+ 
+ 
+C ====== Error estimation ========
+ 
+        ERR=0.d0
+        DO 170 j = 1,NVAR
+           w = AbsTol(j) + RelTol(j)*DMAX1(DABS(y(j)),DABS(ynew(j)))
+	   e = d1*K1(j) + d2*K2(j) + d3*K3(j) + d4*K4(j)
+           ERR = ERR + ( e/w )**2
+ 170    CONTINUE
+        ERR = DMAX1( uround, DSQRT( ERR/NVAR ) )
+ 
+C ======= Choose the stepsize ===============================
+     
+        elo    = 4.0D0 ! estimator local order
+        factor = DMAX1(2.0D-1,DMIN1(6.0D0,ERR**(1.0D0/elo)/.9D0))
+        Hnew   = DMIN1(Hmax,DMAX1(Hmin, H/factor))
+ 
+C ======= Rejected/Accepted Step ============================
+ 
+        IF ( (ERR.gt.1).and.(H.gt.Hmin) ) THEN
+          IsReject = .true.
+	  H = DMIN1(H/10,Hnew)
+          Nreject  = Nreject+1
+        ELSE
+          DO 180 i=1,NVAR
+             y(i)  = ynew(i)
+ 180      CONTINUE
+          T = Tplus
+	  IF (.NOT.IsReject) THEN
+	      H = Hnew   ! Do not increase stepsize if previos step was rejected
+	  END IF    
+          IsReject = .false.
+          Naccept = Naccept+1
+        END IF
+ 
+C ======= End of the time loop ===============================
+      IF ( T .lt. Tnext ) GO TO 10
+ 
+C ======= Output Information =================================
+      Info(2) = Nfcn
+      Info(3) = Njac
+      Info(4) = Naccept
+      Info(5) = Nreject
+      Hstart  = H
+ 
+      RETURN
+      END
+ 
+ 
+      SUBROUTINE FUNC_CHEM( T, Y, P )
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+      KPP_REAL   T, Told
+      KPP_REAL   Y(NVAR), P(NVAR)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Fun( Y,  FIX, RCONST, P )
+      TIME = Told
+      RETURN
+      END
+
+ 
+      SUBROUTINE JAC_CHEM( T, Y, J )
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+      KPP_REAL   Told, T
+      KPP_REAL   Y(NVAR), J(LU_NONZERO)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Jac_SP( Y,  FIX, RCONST, J )
+      TIME = Told
+      RETURN
+      END                                                                                                                 
+
+
+
+
+
+                                                                                                                            
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/ros4_ddm.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/ros4_ddm.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/ros4_ddm.def	(revision 2696)
@@ -0,0 +1,58 @@
+ 
+#FUNCTION AGGREGATE
+#JACOBIAN SPARSE_LU_ROW
+
+#DOUBLE ON 
+#INTFILE ros4_ddm
+#HESSIAN ON 
+
+#INLINE F77_DECL_INT
+      INTEGER Autonomous
+      COMMON /INTGDATA/ Autonomous
+      REAL*8 STEPSTART
+      COMMON /GDATA/ STEPSTART
+#ENDINLINE
+
+#INLINE F77_INIT_INT
+        STEPMIN=1.0E-4
+        STEPMAX=3600.
+        Autonomous = 0
+        STEPSTART=STEPMIN
+#ENDINLINE
+
+#INLINE F90_DECL_INT
+      INTEGER Autonomous
+      DOUBLE PRECISION STEPSTART
+#ENDINLINE
+
+#INLINE F90_INIT_INT
+        STEPMIN=1.0E-4
+        STEPMAX=3600.
+        Autonomous = 0
+        STEPSTART=STEPMIN
+#ENDINLINE
+
+
+#INLINE C_DECL_INT
+    extern int Autonomous;
+    extern double STEPSTART;
+#ENDINLINE
+ 
+#INLINE C_DATA_INT
+    int Autonomous;
+    double STEPSTART;
+#ENDINLINE
+
+#INLINE C_INIT_INT
+        STEPMIN = 0.0001;
+        STEPMAX = 3600.0;
+        Autonomous = 0;
+        STEPSTART = STEPMIN;
+#ENDINLINE                                                                     
+
+#INLINE MATLAB_INIT_INT
+        STEPMIN = 0.0001;
+        STEPMAX = 3600.0;
+        Autonomous = 0;
+        STEPSTART = STEPMIN;
+#ENDINLINE                                                                     
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/ros4_ddm.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/ros4_ddm.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/ros4_ddm.f	(revision 2696)
@@ -0,0 +1,615 @@
+      SUBROUTINE INTEGRATE( NSENSIT, Y, TIN, TOUT )
+ 
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+
+C TIN - Start Time
+      KPP_REAL TIN
+C TOUT - End Time
+      KPP_REAL TOUT
+C Y - Concentrations and Sensitivities
+      KPP_REAL Y(NVAR*(NSENSIT+1))
+C ---  Note: Y contains: (1:NVAR) concentrations, followed by
+C ---                   (1:NVAR) sensitivities w.r.t. first parameter, followed by
+C ---                   etc.,  followed by          
+C ---                   (1:NVAR) sensitivities w.r.t. NSENSIT's parameter
+
+      INTEGER    INFO(5)
+
+      EXTERNAL FUNC_CHEM, JAC_CHEM
+
+      INFO(1) = Autonomous
+ 
+      CALL ROS4_DDM(NVAR,NSENSIT,TIN,TOUT,STEPMIN,STEPMAX,
+     +                   STEPMIN,Y,ATOL,RTOL,
+     +                   Info,FUNC_CHEM,JAC_CHEM)
+ 
+
+      RETURN
+      END
+  
+
+ 
+ 
+      SUBROUTINE ROS4_DDM(N,NSENSIT,T,Tnext,Hmin,Hmax,Hstart,
+     +                   y,AbsTol,RelTol,
+     +                   Info,FUNC_CHEM,JAC_CHEM)
+      IMPLICIT NONE
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'                                                                                                  
+      INCLUDE 'KPP_ROOT_sparse.h'                                                                                                  
+C
+C  Four Stages, Fourth Order L-stable Rosenbrock Method, 
+C     with embedded L-stable, third order method for error control
+C     Simplified version of E. Hairer's atmros4; the coefficients are slightly different
+C
+C Direct decoupled computation of sensitivities.
+C The global variable DDMTYPE distinguishes between:
+C      DDMTYPE = 0 : sensitivities w.r.t. initial values
+C      DDMTYPE = 1 : sensitivities w.r.t. parameters
+C
+C  INPUT ARGUMENTS:
+C     y = Vector of:   (1:NVAR) concentrations, followed by
+C                      (1:NVAR) sensitivities w.r.t. first parameter, followed by
+C                       etc.,  followed by          
+C                      (1:NVAR) sensitivities w.r.t. NSENSIT's parameter
+C         (y contains initial values at input, final values at output)
+C     [T, Tnext] = the integration interval
+C     Hmin, Hmax = lower and upper bounds for the selected step-size.
+C          Note that for Step = Hmin the current computed
+C          solution is unconditionally accepted by the error
+C          control mechanism.
+C     AbsTol, RelTol = (NVAR) dimensional vectors of
+C          componentwise absolute and relative tolerances.
+C     FUNC_CHEM = name of routine of derivatives. KPP syntax.
+C          See the header below.
+C     JAC_CHEM = name of routine that computes the Jacobian, in
+C          sparse format. KPP syntax. See the header below.
+C     Info(1) = 1  for  Autonomous   system
+C             = 0  for nonAutonomous system
+C
+C  OUTPUT ARGUMENTS:
+C     y = the values of concentrations and sensitivities at Tend.
+C     T = equals TENDon output.
+C     Info(2) = # of FUNC_CHEM CALLs.
+C     Info(3) = # of JAC_CHEM CALLs.
+C     Info(4) = # of accepted steps.
+C     Info(5) = # of rejected steps.
+C 
+C    Adrian Sandu, December 2001
+C 
+
+
+      INTEGER NSENSIT
+      KPP_REAL y(NVAR*(NSENSIT+1)), ynew(NVAR*(NSENSIT+1))
+      KPP_REAL K1(NVAR*(NSENSIT+1))
+      KPP_REAL K2(NVAR*(NSENSIT+1))
+      KPP_REAL K3(NVAR*(NSENSIT+1))
+      KPP_REAL K4(NVAR*(NSENSIT+1))
+      KPP_REAL Fv(NVAR), Hv(NVAR)
+      KPP_REAL DFDT(NVAR*(NSENSIT+1))
+      KPP_REAL DFDP(NVAR*NSENSIT), DFDPDT(NVAR*NSENSIT)
+      KPP_REAL DJDP(NVAR*NSENSIT)
+      KPP_REAL JAC(LU_NONZERO), AJAC(LU_NONZERO)
+      KPP_REAL DJDT(LU_NONZERO)
+      KPP_REAL HESS(NHESS)
+      KPP_REAL Hmin,Hmax,Hstart,ghinv,uround
+      KPP_REAL AbsTol(NVAR), RelTol(NVAR)
+      KPP_REAL T, Tnext, Tplus, H, Hnew, elo
+      KPP_REAL ERR, factor, facmax, dround, tau
+      KPP_REAL w, e, beta1, beta2, beta3, beta4
+      
+      INTEGER    n,nfcn,njac,Naccept,Nreject,i,j,ier
+      INTEGER    Info(5)
+      LOGICAL    IsReject, Autonomous
+      EXTERNAL    FUNC_CHEM, JAC_CHEM, HESS_CHEM                                                                                                
+
+
+C   The method coefficients
+C      DOUBLE PRECISION gamma, gamma2, gamma3, gamma4
+C      PARAMETER ( gamma = 0.57281606D0  )
+C      PARAMETER ( gamma2 = -1.769177067112013949170520D0  ) 
+C      PARAMETER ( gamma3 =  0.759293964293209853670967D0  ) 
+C      PARAMETER ( gamma4 = -0.104894621490955803206743D0  ) 
+C      DOUBLE PRECISION a21, a31, a32, a41, a42, a43
+C      PARAMETER (  a21 = 2.00000000000000000000000D0  )   
+C      PARAMETER (  a31 = 1.86794814949823713234476D0  )   
+C      PARAMETER (  a32 = 0.23444556851723885002322D0  )   
+C      DOUBLE PRECISION alpha2, alpha3, alpha4 
+C      PARAMETER (  alpha2  = 1.145632120D0  )   
+C      PARAMETER (  alpha3  = 0.655214975973133829477748D0  )   
+C      DOUBLE PRECISION c21, c31, c32, c41, c42, c43
+C      PARAMETER (  c21  = -7.137649943349979830369260D0  ) 
+C      PARAMETER (  c31  =  2.580923666509657714488050D0  ) 
+C      PARAMETER (  c32  =  0.651629887302032023387417D0  ) 
+C      PARAMETER (  c41  = -2.137115266506619116806370D0  ) 
+C      PARAMETER (  c42  = -0.321469531339951070769241D0  ) 
+C      PARAMETER (  c43  = -0.694966049282445225157329D0  ) 
+C      DOUBLE PRECISION m1, m2, m3, m4, mhat1, mhat2, mhat3, mhat4
+C      PARAMETER (  m1 = 2.255566228604565243728840D0  ) 
+C      PARAMETER (  m2 = 0.287055063194157607662630D0  ) 
+C      PARAMETER (  m3 = 0.435311963379983213402707D0  ) 
+C      PARAMETER (  m4 = 1.093507656403247803214820D0  )  
+C      PARAMETER (  mhat1 = 2.068399160527583734258670D0  ) 
+C      PARAMETER (  mhat2 = 0.238681352067532797956493D0  ) 
+C      PARAMETER (  mhat3 = 0.363373345435391708261747D0  ) 
+C      PARAMETER (  mhat4 = 0.366557127936155144309163D0  ) 
+C      DOUBLE PRECISION e1, e2, e3, e4
+c      PARAMETER (  e1 = 1.8716706807698191283861888D-01  ) 
+c      PARAMETER (  e2 = 4.8373711126624835410225955D-02  ) 
+c      PARAMETER (  e3 = 7.1938617944591554120847832D-02  ) 
+c      PARAMETER (  e4 = 7.2695052846709262706070831D-01 )  
+C      PARAMETER (  e1 = -0.2815431932141155D+00  ) 
+C      PARAMETER (  e2 = -0.7276199124938920D-01  ) 
+C      PARAMETER (  e3 = -0.1082196201495311D+00  ) 
+C      PARAMETER (  e4 = -0.1093502252409163D+01  )  
+C   The method coefficients
+      DOUBLE PRECISION gamma, gamma2, gamma3, gamma4
+      PARAMETER ( gamma  =  0.5728200000000000D+00 )
+      PARAMETER ( gamma2 = -0.1769193891319233D+01 ) 
+      PARAMETER ( gamma3 =  0.7592633437920482D+00 ) 
+      PARAMETER ( gamma4 = -0.1049021087100450D+00 ) 
+      DOUBLE PRECISION a21, a31, a32, a41, a42, a43
+      PARAMETER (  a21 = 0.2000000000000000D+01  )   
+      PARAMETER (  a31 = 0.1867943637803922D+01  )   
+      PARAMETER (  a32 = 0.2344449711399156D+00  )   
+      DOUBLE PRECISION alpha2, alpha3
+      PARAMETER (  alpha2  = 0.1145640000000000D+01  )   
+      PARAMETER (  alpha3  = 0.6552168638155900D+00  )   
+      DOUBLE PRECISION c21, c31, c32, c41, c42, c43
+      PARAMETER (  c21  = -0.7137615036412310D+01  ) 
+      PARAMETER (  c31  =  0.2580708087951457D+01  ) 
+      PARAMETER (  c32  =  0.6515950076447975D+00  ) 
+      PARAMETER (  c41  = -0.2137148994382534D+01  ) 
+      PARAMETER (  c42  = -0.3214669691237626D+00  ) 
+      PARAMETER (  c43  = -0.6949742501781779D+00  ) 
+      DOUBLE PRECISION b1, b2, b3, b4
+      PARAMETER (  b1 = 0.2255570073418735D+01  ) 
+      PARAMETER (  b2 = 0.2870493262186792D+00  ) 
+      PARAMETER (  b3 = 0.4353179431840180D+00  ) 
+      PARAMETER (  b4 = 0.1093502252409163D+01 )  
+      DOUBLE PRECISION d1, d2, d3, d4
+      PARAMETER (  d1 = -0.2815431932141155D+00  ) 
+      PARAMETER (  d2 = -0.7276199124938920D-01  ) 
+      PARAMETER (  d3 = -0.1082196201495311D+00  ) 
+      PARAMETER (  d4 = -0.1093502252409163D+01  )  
+
+
+c     Initialization of counters, etc.
+      Autonomous = Info(1) .EQ. 1
+      uround = 1.d-15
+      dround = DSQRT(uround)
+      IF (Hmax.le.0.D0) THEN
+          Hmax = DABS(Tnext-T)
+      END IF	  
+      H = DMAX1(1.d-8, Hstart)
+      Tplus = T
+      IsReject = .false.
+      Naccept  = 0
+      Nreject  = 0
+      Nfcn     = 0
+      Njac     = 0
+ 
+C === Starting the time loop ===
+ 10    CONTINUE
+  
+       Tplus = T + H
+       IF ( Tplus .gt. Tnext ) THEN
+          H = Tnext - T
+          Tplus = Tnext
+       END IF
+ 
+C              Initial Function, Jacobian, and Hessian Values
+       CALL FUNC_CHEM(NVAR, T, y, Fv)
+       CALL JAC_CHEM(NVAR, T, y, JAC)
+       CALL HESS_CHEM( NVAR, T, y, HESS )
+       IF (DDMTYPE .EQ. 1) THEN
+          CALL DFUNDPAR(NVAR, NSENSIT, T, y, DFDP)
+       END IF	  
+ 
+C              The time derivatives for non-Autonomous case                                                                                                                            
+       IF (.not. Autonomous) THEN
+         tau = DSIGN(dround*DMAX1( 1.0d0, DABS(T) ), T)
+         CALL FUNC_CHEM(NVAR, T+tau, y, K2)
+         CALL JAC_CHEM(NVAR, T+tau, y, AJAC)
+         nfcn=nfcn+1
+         DO 20 j = 1,NVAR
+           DFDT(j) = ( K2(j)-Fv(j) )/tau
+ 20      CONTINUE
+         DO 30 j = 1,LU_NONZERO
+           DJDT(j) = ( AJAC(j)-JAC(j) )/tau
+ 30      CONTINUE
+         DO 35 i=1,NSENSIT
+	    CALL Jac_SP_Vec (DJDT,y(i*NVAR+1),DFDT(i*NVAR+1))
+ 35      CONTINUE
+       END IF
+ 
+ 11    CONTINUE  ! From here we restart after a rejected step
+ 
+C              Form the Prediction matrix and compute its LU factorization                                                                                                                           
+       Njac = Njac+1
+       ghinv = 1.0d0/(gamma*H)
+       DO 40 j=1,LU_NONZERO
+         AJAC(j) = -JAC(j)
+ 40    CONTINUE
+       DO 50 j=1,NVAR
+         AJAC(LU_DIAG(j)) = AJAC(LU_DIAG(j)) + ghinv
+ 50    CONTINUE
+       CALL KppDecomp (AJAC, ier)
+C 
+       IF (ier.ne.0) THEN
+         IF ( H.gt.Hmin) THEN
+            H = 5.0d-1*H
+            GO TO 10
+         ELSE
+            PRINT *,'ROS4: Singular factorization at T=',T,'; H=',H
+            STOP
+         END IF
+       END IF
+                                                                                                                            
+C ------------ STAGE 1-------------------------
+       DO 60 j = 1,NVAR
+         K1(j) =  Fv(j)
+ 60    CONTINUE
+       IF (.NOT. Autonomous) THEN
+          beta1 = H*gamma
+	  DO 70 j=1,NVAR
+	    K1(j) = K1(j) + beta1*DFDT(j)	    
+ 70	  CONTINUE
+       END IF
+       CALL KppSolve (AJAC, K1)
+C               --- If  derivative w.r.t. parameters
+       IF (DDMTYPE .EQ. 1) THEN
+	  CALL DJACDPAR(NVAR, NSENSIT, T, y, K1(1), DJDP)
+       END IF
+C               --- End of derivative w.r.t. parameters	  	 
+
+       DO 100 i=1,NSENSIT
+	  CALL Jac_SP_Vec (JAC,y(i*NVAR+1),K1(i*NVAR+1))
+	  CALL Hess_Vec ( HESS, y(i*NVAR+1), K1(1), Hv )
+	  DO 80 j=1,NVAR
+	    K1(i*NVAR+j) = K1(i*NVAR+j) + Hv(j)
+ 80	  CONTINUE	
+          IF (.NOT. Autonomous) THEN
+	    DO 90 j=1,NVAR
+	      K1(i*NVAR+j) = K1(i*NVAR+j) + beta1*DFDT(i*NVAR+j)
+ 90         CONTINUE
+          END IF
+C               --- If  derivative w.r.t. parameters
+	  IF (DDMTYPE .EQ. 1) THEN
+            DO 95 j = 1,NVAR
+	       K1(i*NVAR+j) = K1(i*NVAR+j) + DFDP((i-1)*NVAR+j) 
+     &                           + DJDP((i-1)*NVAR+j)
+ 95        CONTINUE	  
+	  END IF
+C               --- End of derivative w.r.t. parameters	  	 
+          CALL KppSolve (AJAC, K1(i*NVAR+1))
+ 100   CONTINUE
+ 
+C ----------- STAGE 2 -------------------------
+       DO 110 j = 1,NVAR*(NSENSIT+1)
+         ynew(j) = y(j) + a21*K1(j)
+ 110   CONTINUE
+       CALL FUNC_CHEM(NVAR, T+alpha2*H, ynew, Fv)
+       IF (DDMTYPE .EQ. 1) THEN
+         CALL DFUNDPAR(NVAR, NSENSIT, T+alpha2*H, ynew, DFDP)
+       END IF	 
+       nfcn=nfcn+1
+       beta1 = c21/H
+       DO 120 j = 1,NVAR
+         K2(j) = Fv(j) + beta1*K1(j)
+ 120   CONTINUE
+       IF (.NOT. Autonomous) THEN
+         beta2 = H*gamma2
+	 DO 130 j=1,NVAR
+	    K2(j) = K2(j) + beta2*DFDT(j)	    
+ 130     CONTINUE
+       END IF
+       CALL KppSolve (AJAC, K2)
+C               --- If  derivative w.r.t. parameters
+       IF (DDMTYPE .EQ. 1) THEN
+	  CALL DJACDPAR(NVAR, NSENSIT, T, y, K2(1), DJDP)
+       END IF
+C               --- End of derivative w.r.t. parameters	  	 
+       
+       CALL JAC_CHEM(NVAR, T+alpha2*H, ynew, JAC)
+       njac=njac+1
+       DO 160 i=1,NSENSIT
+	  CALL Jac_SP_Vec (JAC,ynew(i*NVAR+1),K2(i*NVAR+1))
+	  CALL Hess_Vec ( HESS, y(i*NVAR+1), K2(1), Hv )
+          DO 140 j = 1,NVAR
+	     K2(i*NVAR+j) = K2(i*NVAR+j) + beta1*K1(i*NVAR+j) 
+     &                          + Hv(j)
+ 140      CONTINUE	
+          IF (.NOT. Autonomous) THEN
+	     DO 150 j=1,NVAR
+	        K2(i*NVAR+j) = K2(i*NVAR+j) + beta2*DFDT(i*NVAR+j)
+ 150         CONTINUE
+          END IF
+C               --- If  derivative w.r.t. parameters
+	  IF (DDMTYPE .EQ. 1) THEN
+            DO 155 j = 1,NVAR
+	       K2(i*NVAR+j) = K2(i*NVAR+j) + DFDP((i-1)*NVAR+j) 
+     &                           + DJDP((i-1)*NVAR+j)
+ 155        CONTINUE	  
+	  END IF
+C               --- End of derivative w.r.t. parameters	  	 
+          CALL KppSolve (AJAC, K2(i*NVAR+1))
+ 160   CONTINUE
+ 
+ 
+C ------------ STAGE 3 -------------------------
+       DO 170 j = 1,NVAR*(NSENSIT+1)
+         ynew(j) = y(j) + a31*K1(j) + a32*K2(j)
+ 170   CONTINUE
+       CALL FUNC_CHEM(NVAR, T+alpha3*H, ynew, Fv)
+       IF (DDMTYPE .EQ. 1) THEN
+         CALL DFUNDPAR(NVAR, NSENSIT, T+alpha3*H, ynew, DFDP)
+       END IF	    
+       nfcn=nfcn+1
+       beta1 = c31/H
+       beta2 = c32/H
+       DO 180 j = 1,NVAR
+         K3(j) = Fv(j) + beta1*K1(j) + beta2*K2(j)
+ 180   CONTINUE
+       IF (.NOT. Autonomous) THEN
+         beta3 = H*gamma3
+	 DO 190 j=1,NVAR
+	    K3(j) = K3(j) + beta3*DFDT(j)	    
+ 190     CONTINUE
+       END IF
+       CALL KppSolve (AJAC, K3)
+C               --- If  derivative w.r.t. parameters
+       IF (DDMTYPE .EQ. 1) THEN
+	  CALL DJACDPAR(NVAR, NSENSIT, T, y, K3(1), DJDP)
+       END IF
+C               --- End of derivative w.r.t. parameters	  	 
+       
+       CALL JAC_CHEM(NVAR, T+alpha3*H, ynew, JAC)
+       njac=njac+1
+       DO 220 i=1,NSENSIT
+	  CALL Jac_SP_Vec (JAC,ynew(i*NVAR+1),K3(i*NVAR+1))
+	  CALL Hess_Vec ( HESS, y(i*NVAR+1), K3(1), Hv )
+          DO 200 j = 1,NVAR
+	       K3(i*NVAR+j) = K3(i*NVAR+j) + beta1*K1(i*NVAR+j) 
+     &                       + beta2*K2(i*NVAR+j) + Hv(j)
+ 200      CONTINUE	 
+          IF (.NOT. Autonomous) THEN
+	     DO 210 j=1,NVAR
+	        K3(i*NVAR+j) = K3(i*NVAR+j) + beta3*DFDT(i*NVAR+j)
+ 210         CONTINUE
+          END IF
+C               --- If  derivative w.r.t. parameters
+	  IF (DDMTYPE .EQ. 1) THEN
+            DO 215 j = 1,NVAR
+	       K3(i*NVAR+j) = K3(i*NVAR+j) + DFDP((i-1)*NVAR+j) 
+     &                           + DJDP((i-1)*NVAR+j)
+ 215        CONTINUE	  
+	  END IF	 
+C               --- End of derivative w.r.t. parameters
+          CALL KppSolve (AJAC, K3(i*NVAR+1))
+ 220   CONTINUE
+ 
+C ------------ STAGE 4 -------------------------
+C              Note: uses the same function values as stage 3
+       beta1 = c41/H
+       beta2 = c42/H
+       beta3 = c43/H
+       DO 230 j = 1,NVAR
+         K4(j) = Fv(j) + beta1*K1(j) + beta2*K2(j) + beta3*K3(j)
+ 230   CONTINUE
+       IF (.NOT. Autonomous) THEN
+          beta4 = H*gamma4
+	  DO 240 j=1,NVAR
+	    K4(j) = K4(j) + beta4*DFDT(j)
+ 240      CONTINUE
+       END IF
+       CALL KppSolve (AJAC, K4)
+C               --- If  derivative w.r.t. parameters
+       IF (DDMTYPE .EQ. 1) THEN
+	  CALL DJACDPAR(NVAR, NSENSIT, T, y, K4(1), DJDP)
+       END IF
+C               --- End of derivative w.r.t. parameters	  	 
+       
+       njac=njac+1
+       DO 270 i=1,NSENSIT
+	  CALL Jac_SP_Vec (JAC,ynew(i*NVAR+1),K4(i*NVAR+1))
+	  CALL Hess_Vec ( HESS, y(i*NVAR+1), K4(1), Hv )
+          DO 250 j = 1,NVAR
+	       K4(i*NVAR+j) = K4(i*NVAR+j) + beta1*K1(i*NVAR+j) 
+     &                       + beta2*K2(i*NVAR+j) + beta3*K3(i*NVAR+j)
+     &                       + Hv(j)
+ 250      CONTINUE
+          IF (.NOT. Autonomous) THEN
+	     DO 260 j=1,NVAR
+	        K4(i*NVAR+j) = K4(i*NVAR+j) + beta4*DFDT(i*NVAR+j)
+ 260         CONTINUE
+          END IF
+C --- If  derivative w.r.t. parameters
+	  IF (DDMTYPE .EQ. 1) THEN
+            DO 265 j = 1,NVAR
+	       K4(i*NVAR+j) = K4(i*NVAR+j) + DFDP((i-1)*NVAR+j) 
+     &                           + DJDP((i-1)*NVAR+j)
+ 265        CONTINUE	  
+	  END IF	 
+          CALL KppSolve (AJAC, K4(i*NVAR+1))
+ 270   CONTINUE
+
+
+C ---- The Solution ---
+       DO 280 j = 1,NVAR*(NSENSIT+1)
+         ynew(j) = y(j) + b1*K1(j) + b2*K2(j) + b3*K3(j) + b4*K4(j)
+ 280   CONTINUE
+ 
+ 
+C ====== Error estimation -- can be extended to control sensitivities too ========
+ 
+        ERR = 0.d0
+        DO 290 i=1,NVAR
+           w = AbsTol(i) + RelTol(i)*DMAX1(DABS(ynew(i)),DABS(y(i)))
+	   e = d1*K1(i) + d2*K2(i) + d3*K3(i) + d4*K4(i)
+           ERR = ERR + ( e/w )**2
+ 290    CONTINUE
+        ERR = DMAX1( uround, DSQRT( ERR/NVAR ) )
+ 
+C ======= Choose the stepsize ===============================
+ 
+        elo    = 4.0D0 ! estimator local order
+        factor = DMAX1(2.0D-1,DMIN1(6.0D0,ERR**(1.0D0/elo)/.9D0))
+        Hnew   = DMIN1(Hmax,DMAX1(Hmin, H/factor))
+ 
+C ======= Rejected/Accepted Step ============================
+ 
+        IF ( (ERR.gt.1).and.(H.gt.Hmin) ) THEN
+          IsReject = .true.
+	  H = DMIN1(H/10,Hnew)
+          Nreject  = Nreject+1
+        ELSE
+          DO 300 i=1,NVAR*(NSENSIT+1)
+             y(i)  = ynew(i)
+ 300      CONTINUE
+          T = Tplus
+	  IF (.NOT.IsReject) THEN
+	      H = Hnew   ! Do not increase stepsize if previos step was rejected
+	  END IF    
+          IsReject = .false.
+          Naccept = Naccept+1
+        END IF
+ 
+C ======= End of the time loop ===============================
+      IF ( T .lt. Tnext ) GO TO 10
+ 
+ 
+ 
+C ======= Output Information =================================
+      Info(2) = Nfcn
+      Info(3) = Njac
+      Info(4) = Naccept
+      Info(5) = Nreject
+      Hstart  = H
+ 
+      RETURN
+      END
+ 
+ 
+ 
+      SUBROUTINE FUNC_CHEM(N, T, Y, P)
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+      KPP_REAL   T, Told
+      KPP_REAL   Y(NVAR), P(NVAR)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Fun( Y,  FIX, RCONST, P )
+      TIME = Told
+      RETURN
+      END
+
+ 
+      SUBROUTINE DFUNDPAR(N, NSENSIT, T, Y, P)
+C ---  Computes the partial derivatives of FUNC_CHEM w.r.t. parameters 
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+C ---  NCOEFF, JCOEFF useful for derivatives w.r.t. rate coefficients    
+      INTEGER NCOEFF, JCOEFF(NREACT)
+      COMMON /DDMRCOEFF/ NCOEFF, JCOEFF
+      
+      KPP_REAL   T, Told
+      KPP_REAL   Y(NVAR), P(NVAR*NSENSIT)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+C
+      IF (DDMTYPE .EQ. 0) THEN
+C ---  Note: the values below are for sensitivities w.r.t. initial values;
+C ---       they may have to be changed for other applications
+        DO j=1,NSENSIT
+          DO i=1,NVAR
+	    P(i+NVAR*(j-1)) = 0.0D0
+	  END DO
+        END DO
+      ELSE	
+C ---  Example: the call below is for sensitivities w.r.t. rate coefficients;
+C ---       JCOEFF(1:NSENSIT) are the indices of the NSENSIT rate coefficients
+C ---       w.r.t. which one differentiates
+        CALL dFun_dRcoeff( Y,  FIX, NCOEFF, JCOEFF, P )
+      END IF
+      TIME = Told
+      RETURN
+      END
+ 
+      SUBROUTINE JAC_CHEM(N, T, Y, J)
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+      INTEGER N
+      KPP_REAL   Told, T
+      KPP_REAL   Y(NVAR), J(LU_NONZERO)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Jac_SP( Y,  FIX, RCONST, J )
+      TIME = Told
+      RETURN
+      END                                                                                                                 
+
+ 
+      SUBROUTINE DJACDPAR(N, NSENSIT, T, Y, U, P)
+C ---  Computes the partial derivatives of JAC w.r.t. parameters times user vector U
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+C ---  NCOEFF, JCOEFF useful for derivatives w.r.t. rate coefficients    
+      INTEGER N
+      INTEGER NCOEFF, JCOEFF(NREACT)
+      COMMON /DDMRCOEFF/ NCOEFF, JCOEFF
+      
+      KPP_REAL   T, Told
+      KPP_REAL   Y(NVAR), U(NVAR)
+      KPP_REAL   P(NVAR*NSENSIT)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+C
+      IF (DDMTYPE .EQ. 0) THEN
+C ---  Note: the values below are for sensitivities w.r.t. initial values;
+C ---       they may have to be changed for other applications
+        DO j=1,NSENSIT
+          DO i=1,NVAR
+	    P(i+NVAR*(j-1)) = 0.0D0
+	  END DO
+        END DO
+      ELSE	
+C ---  Example: the call below is for sensitivities w.r.t. rate coefficients;
+C ---       JCOEFF(1:NSENSIT) are the indices of the NSENSIT rate coefficients
+C ---       w.r.t. which one differentiates
+        CALL dJac_dRcoeff( Y,  FIX, U, NCOEFF, JCOEFF, P )
+      END IF
+      TIME = Told
+      RETURN
+      END
+ 
+ 
+      SUBROUTINE HESS_CHEM(N, T, Y, HESS)
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+      INTEGER N
+      KPP_REAL   Told, T
+      KPP_REAL   Y(NVAR), HESS(NHESS)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Hessian( Y,  FIX, RCONST, HESS )
+      TIME = Told
+      RETURN
+      END                                                                                                                 
+
+
+
+
+
+                                                                                                                            
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/twostepj.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/twostepj.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/twostepj.def	(revision 2696)
@@ -0,0 +1,16 @@
+ 
+#FUNCTION SPLIT
+#JACOBIAN OFF
+#SPARSEDATA OFF
+#DOUBLE ON
+#INTFILE twostepj
+
+#INLINE F_INIT_INT
+        STEPMIN=0.0001
+        STEPMAX=60.
+#ENDINLINE
+
+#INLINE C_INIT_INT
+  STEPMIN=0.0001;
+  STEPMAX=60.;
+#ENDINLINE
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/twostepj.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/twostepj.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/oldies/twostepj.f	(revision 2696)
@@ -0,0 +1,244 @@
+      SUBROUTINE INTEGRATE( TIN, TOUT )
+
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+
+C TIN - Start Time
+      KPP_REAL TIN
+C TOUT - End Time
+      KPP_REAL TOUT
+      EXTERNAL ITER
+      KPP_REAL T
+      KPP_REAL V(NVAR), VOLD(NVAR), VNEW(NVAR)
+      KPP_REAL startdt, hmin, hmax, h 
+
+      INTEGER    INFO(5)
+
+      INFO(1) = Autonomous
+      h = hmin
+      
+c Number of Jacobi-Seidel iterations      
+      numit = 3   
+
+      
+      DO i=1,NVAR
+        RTOL(i) = 1.e-2
+      ENDDO	
+
+      CALL twostepj(NVAR,TIN,TOUT,h,hmin,hmax,
+     +                   VOLD,VAR,VNEW, 
+     +                   ATOL,RTOL,numit,
+     +                   nfcn,naccpt,nrejec,nstart,startdt,ITER)
+
+
+      RETURN
+      END
+      
+      
+
+      SUBROUTINE ITER(n,T,y,yp,yl)
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+      REAL*8 T, y(NVAR), yp(NVAR), yl(NVAR)
+      TOLD = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL FunSPLIT_VAR(y,Rad,yp,yl)
+      TIME = TOLD
+      RETURN
+      END
+     
+
+      subroutine twostepj(n,t,te,dt,dtmin,dtmax,
+     +                   yold,y,ynew,
+     +                   atol,rtol,numit,
+     +                   nfcn,naccpt,nrejec,nstart,startdt,ITER)
+      implicit real*8 (a-h,o-z)
+      external ITER
+      integer	 n,numit,nfcn,naccpt,nrejec,nstart,i,j
+      real*8	 t,te,dt,dtmin,dtmax,startdt,ytol,
+     +           ratio,dtold,a1,a2,c,cp1,dtg,errlte,dy
+      real*8       yold(n),y(n),ynew(n),yp(n),yl(n),
+     +           work(n),sum(n),atol(n),rtol(n)
+      logical 	 accept,failer,restart
+
+c
+c     Initialization of counters, etc.
+
+      naccpt=0
+      nrejec=0
+      nfcn=0
+      nstart=0
+      failer=.false.
+      restart=.false.
+      accept=.true.
+
+c     Initial stepsize computation. 
+    
+   10 if (dtmin.eq.dtmax) then
+       nstart=1
+       dt=min(dtmin,(te-t)/2)
+       goto 28
+      endif
+      CALL ITER(n,t,y,yp,yl)
+      nfcn=nfcn+1
+      dt=te-t
+      do 20 i=1,n
+       ytol=atol(i)+rtol(i)*abs(y(i))
+       dy=yp(i)-y(i)*yl(i)
+       if (dy.ne.0.0) dt=min(dt,ytol/abs(dy))
+   20 continue
+   25 nstart=nstart+1
+      if (restart) dt=dt/10.0
+      restart=.true.
+      dt=max(dtmin,min(dt,dtmax))
+      CALL FIT(t,te,dt)
+      dt=min(dt,(te-t)/2)
+      startdt=dt
+
+c     The starting step is carried out, using the implicit Euler method.
+
+   28 do 30 i=1,n
+       ynew(i)=y(i)
+       yold(i)=y(i)
+       sum(i)=y(i)
+   30 continue
+      do 40 i=1,numit
+       CALL ITER(n,t+dt,ynew,yp,yl)
+       do i2i=1,n
+         ynew(i2i) = (sum(i2i) + dt*yp(i2i))/(1.+dt*yl(i2i))
+       end do
+       nfcn=nfcn+1
+   40 continue
+      naccpt=naccpt+1
+      t=t+dt
+      do 50 j=1,n
+       y(j)=ynew(j)
+   50 continue
+
+c     Subsequent steps are carried out with the two-step BDF method.
+
+      dtold=dt
+      ratio=1.0
+   60 continue
+      c=1.0/ratio
+      cp1=c+1.0
+      a1=((c+1.0)**2)/(c*c+2.0*c)
+      a2=-1.0/(c*c+2.0*c)
+      dtg=dt*(1.0+c)/(2.0+c)
+      do 70 j=1,n
+       sum(j)=a1*y(j)+a2*yold(j)
+       ynew(j)=max(0.0,y(j)+ratio*(y(j)-yold(j)))
+   70 continue
+      do 80 i=1,numit
+       CALL ITER(n,t+dt,ynew,yp,yl)
+       do i2i=1,n
+        ynew(i2i) = (sum(i2i) + dtg*yp(i2i))/(1.+dtg*yl(i2i))
+       end do
+       nfcn=nfcn+1
+   80 continue
+
+c     If stepsizes should remain equal, stepsize control is omitted.
+
+      if (dtmin.eq.dtmax) then
+       t=t+dtold
+       naccpt=naccpt+1
+       do 85 j=1,n
+        yold(j)=y(j)
+        y(j)=ynew(j)
+   85  continue
+       if (dt.ne.dtold) then
+	t=t-dtold+dt
+	goto 120
+       endif
+       dt=min(dtold,te-t)
+       ratio=dt/dtold
+       if (t.ge.te) goto 120
+       goto 60
+      endif
+
+c     Otherwise stepsize control is carried out.
+
+      errlte=0.0
+      do 90 i=1,n
+       ytol=atol(i)+rtol(i)*abs(y(i))
+       errlte=max(errlte,abs(c*ynew(i)-cp1*y(i)+yold(i))/ytol)
+   90 continue
+      errlte=2.0*errlte/(c+c*c)
+      CALL NEWDT(t,te,dt,dtold,ratio,errlte,accept,
+     +           dtmin,dtmax)
+
+c     Here the step has been accepted. 
+
+      if (accept) then
+ 201   format(2(E24.16,1X))
+       failer=.false.
+       restart=.false.
+       t=t+dtold
+       naccpt=naccpt+1
+       do 100 j=1,n
+	yold(j)=y(j)
+	y(j)=ynew(j)
+  100  continue
+       if (t.ge.te) goto 120
+       goto 60
+      endif
+
+c     A restart check is carried out.
+      
+      if (failer) then
+       nrejec=nrejec+1
+       failer=.false.
+       naccpt=naccpt-1
+       t=t-dtold
+       do 110 j=1,n
+        y(j)=yold(j)
+  110  continue
+       goto 25
+      endif
+
+c     Here the step has been rejected.
+
+      nrejec=nrejec+1
+      failer=.true.
+      goto 60
+      
+c     End of TWOSTEP.
+  120 end
+c=====================================================================
+
+      subroutine NEWDT(t,te,dt,dtold,ratio,errlte,
+     +                 accept,dtmin,dtmax)
+      real*8    t,te,dt,dtold,ratio,errlte,ts,dtmin,dtmax
+      logical accept
+      if (errlte.gt.1.0.and.dt.gt.dtmin) then
+       accept=.false.
+       ts=t
+      else
+       accept=.true.
+       dtold=dt
+       ts=t+dtold
+      endif
+      dt=max(0.5,min(2.0,0.8/sqrt(errlte)))*dt
+      dt=max(dtmin,min(dt,dtmax))
+      CALL FIT(ts,te,dt)
+      ratio=dt/dtold
+      end
+
+      subroutine FIT(t,te,dt)
+      real*8 	t,te,dt,rns
+      integer 	ns
+      rns=(te-t)/dt
+      if (rns.gt.10.0) goto 10
+      ns=int(rns)+1
+      dt=(te-t)/ns
+      dt=(dt+t)-t
+   10 return
+      end
+
+
+
+C End of MAIN function                                             
+C **************************************************************** 
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/readme
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/readme	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/readme	(revision 2696)
@@ -0,0 +1,21 @@
+The integrator naming conventions:
+
+*.def = definition file
+*.f   = Fortran 77 source code
+*.f90 = Fortran 90 source code
+*.c   = C source code
+
+atm_* = off-the-shelf integrators, adapted to work with KPP
+        use the native full linear algebra
+	useful for providing reference solutions
+	
+kpp_* = off-the-shelf integrators, using the KPP sparse linear algebra	
+        very efficient, useful for production runs
+	
+plain names = original integrators
+        either use the KPP sparse linear algebra, or provide
+	explicit solutions	
+	
+*_ddm = direct decoupled method
+        integrate for both the concentrations and their sensitivities
+	implements the forward and the tangent linear models together	
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/rosenbrock.c
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/rosenbrock.c	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/rosenbrock.c	(revision 2696)
@@ -0,0 +1,1216 @@
+
+ #define MAX(a,b) ( ((a) >= (b)) ?(a):(b)  )
+ #define MIN(b,c) ( ((b) <  (c)) ?(b):(c)  )	
+ #define ABS(x)   ( ((x) >=  0 ) ?(x):(-x) ) 
+ #define SQRT(d)  ( pow((d),0.5)  )
+ #define SIGN(x)  ( ((x) >=  0 ) ?[0]:(-1) )
+
+/*~~> Numerical constants */
+ #define  ZERO     (KPP_REAL)0.0
+ #define  ONE      (KPP_REAL)1.0
+ #define  HALF     (KPP_REAL)0.5
+ #define  DeltaMin (KPP_REAL)1.0e-6    
+   
+/*~~~> Collect statistics: global variables */   
+ int Nfun,Njac,Nstp,Nacc,Nrej,Ndec,Nsol,Nsng;
+
+
+/*~~~> Function headers */   
+ void FunTemplate(KPP_REAL, KPP_REAL [], KPP_REAL []); 
+ void JacTemplate(KPP_REAL, KPP_REAL [], KPP_REAL []) ;
+ int Rosenbrock(KPP_REAL Y[], KPP_REAL Tstart, KPP_REAL Tend,
+     KPP_REAL AbsTol[], KPP_REAL RelTol[],
+     void (*ode_Fun)(KPP_REAL, KPP_REAL [], KPP_REAL []), 
+     void (*ode_Jac)(KPP_REAL, KPP_REAL [], KPP_REAL []),
+     KPP_REAL RPAR[], int IPAR[]);
+ int RosenbrockIntegrator(
+     KPP_REAL Y[], KPP_REAL Tstart, KPP_REAL Tend ,     
+     KPP_REAL  AbsTol[], KPP_REAL  RelTol[],
+     void (*ode_Fun)(KPP_REAL, KPP_REAL [], KPP_REAL []), 
+     void (*ode_Jac)(KPP_REAL, KPP_REAL [], KPP_REAL []),
+     int ros_S,
+     KPP_REAL ros_M[], KPP_REAL ros_E[], 
+     KPP_REAL ros_A[], KPP_REAL ros_C[],
+     KPP_REAL ros_Alpha[],KPP_REAL  ros_Gamma[],
+     KPP_REAL ros_ELO, char ros_NewF[],
+     char Autonomous, char VectorTol, int Max_no_steps,  
+     KPP_REAL Roundoff, KPP_REAL Hmin, KPP_REAL Hmax, KPP_REAL Hstart,
+     KPP_REAL FacMin, KPP_REAL FacMax, KPP_REAL FacRej, KPP_REAL FacSafe, 
+     KPP_REAL *Texit, KPP_REAL *Hexit ); 
+ char ros_PrepareMatrix (
+     KPP_REAL* H, 
+     int Direction,  KPP_REAL gam, KPP_REAL Jac0[], 
+     KPP_REAL Ghimj[], int Pivot[] );
+ KPP_REAL ros_ErrorNorm ( 
+     KPP_REAL Y[], KPP_REAL Ynew[], KPP_REAL Yerr[], 
+     KPP_REAL AbsTol[], KPP_REAL RelTol[], 
+     char VectorTol );
+ int  ros_ErrorMsg(int Code, KPP_REAL T, KPP_REAL H);
+ void ros_FunTimeDerivative ( 
+     KPP_REAL T, KPP_REAL Roundoff, 
+     KPP_REAL Y[], KPP_REAL Fcn0[], 
+     void ode_Fun(KPP_REAL, KPP_REAL [], KPP_REAL []), 
+     KPP_REAL dFdT[] );
+ void Fun( KPP_REAL Y[], KPP_REAL FIX[], KPP_REAL RCONST[], KPP_REAL Ydot[] );
+ void Jac_SP( KPP_REAL Y[], KPP_REAL FIX[], KPP_REAL RCONST[], KPP_REAL Ydot[] );
+ void FunTemplate( KPP_REAL T, KPP_REAL Y[], KPP_REAL Ydot[] );
+ void JacTemplate( KPP_REAL T, KPP_REAL Y[], KPP_REAL Ydot[] );
+ void DecompTemplate( KPP_REAL A[], int Pivot[], int* ising );
+ void SolveTemplate( KPP_REAL A[], int Pivot[], KPP_REAL b[] );
+ void WCOPY(int N, KPP_REAL X[], int incX, KPP_REAL Y[], int incY);
+ void WAXPY(int N, KPP_REAL Alpha, KPP_REAL X[], int incX, KPP_REAL Y[], int incY );
+ void WSCAL(int N, KPP_REAL Alpha, KPP_REAL X[], int incX);
+ KPP_REAL WLAMCH( char C );
+ void Ros2 ( int *ros_S, KPP_REAL ros_A[], KPP_REAL ros_C[], 
+             KPP_REAL ros_M[], KPP_REAL ros_E[], 
+	     KPP_REAL ros_Alpha[], KPP_REAL ros_Gamma[], 
+	     char ros_NewF[], KPP_REAL *ros_ELO, char* ros_Name );
+ void Ros3 ( int *ros_S, KPP_REAL ros_A[], KPP_REAL ros_C[], 
+             KPP_REAL ros_M[], KPP_REAL ros_E[], 
+	     KPP_REAL ros_Alpha[], KPP_REAL ros_Gamma[], 
+	     char ros_NewF[], KPP_REAL *ros_ELO, char* ros_Name );
+ void Ros4 ( int *ros_S, KPP_REAL ros_A[], KPP_REAL ros_C[], 
+             KPP_REAL ros_M[], KPP_REAL ros_E[], 
+	     KPP_REAL ros_Alpha[], KPP_REAL ros_Gamma[], 
+	     char ros_NewF[], KPP_REAL *ros_ELO, char* ros_Name );
+ void Rodas3 ( int *ros_S, KPP_REAL ros_A[], KPP_REAL ros_C[], 
+             KPP_REAL ros_M[], KPP_REAL ros_E[], 
+	     KPP_REAL ros_Alpha[], KPP_REAL ros_Gamma[], 
+	     char ros_NewF[], KPP_REAL *ros_ELO, char* ros_Name );
+ void Rodas4 ( int *ros_S, KPP_REAL ros_A[], KPP_REAL ros_C[], 
+             KPP_REAL ros_M[], KPP_REAL ros_E[], 
+	     KPP_REAL ros_Alpha[], KPP_REAL ros_Gamma[], 
+	     char ros_NewF[], KPP_REAL *ros_ELO, char* ros_Name );
+ int  KppDecomp( KPP_REAL A[] );
+ void KppSolve ( KPP_REAL A[], KPP_REAL b[] );
+ void Update_SUN();
+ void Update_RCONST();
+ 
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void INTEGRATE( KPP_REAL TIN, KPP_REAL TOUT )
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+{
+   static KPP_REAL  RPAR[20];
+   static int  i, IERR, IPAR[20];
+   static int Ns=0, Na=0, Nr=0, Ng=0;
+
+   for ( i = 0; i < 20; i++ ) {
+     IPAR[i] = 0;
+     RPAR[i] = ZERO;
+   } /* for */
+   
+   
+   IPAR[0] = 0;    /* non-autonomous */
+   IPAR[1] = 1;    /* vector tolerances */
+   RPAR[2] = STEPMIN; /* starting step */
+   IPAR[3] = 5;    /* choice of the method */
+
+   IERR = Rosenbrock(VAR, TIN, TOUT,
+           ATOL, RTOL,
+           &FunTemplate, &JacTemplate,
+           RPAR, IPAR);
+
+	     
+   Ns=Ns+IPAR[12];
+   Na=Na+IPAR[13];
+   Nr=Nr+IPAR[14];
+   Ng=Ng+IPAR[17];
+   printf("\n Step=%d  Acc=%d  Rej=%d  Singular=%d\n",
+         Ns,Na,Nr,Ng);
+
+
+   if (IERR < 0)
+     printf("\n Rosenbrock: Unsucessful step at T=%g: IERR=%d\n",
+         TIN,IERR);
+   
+   TIN = RPAR[10];      /* Exit time */
+   STEPMIN = RPAR[11];  /* Last step */
+   
+} /* INTEGRATE */
+
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+int Rosenbrock(KPP_REAL Y[], KPP_REAL Tstart, KPP_REAL Tend,
+        KPP_REAL AbsTol[], KPP_REAL RelTol[],
+        void (*ode_Fun)(KPP_REAL, KPP_REAL [], KPP_REAL []), 
+	void (*ode_Jac)(KPP_REAL, KPP_REAL [], KPP_REAL []),
+        KPP_REAL RPAR[], int IPAR[])
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   
+    Solves the system y'=F(t,y) using a Rosenbrock method defined by:
+
+     G = 1/(H*gamma[0]) - ode_Jac(t0,Y0)
+     T_i = t0 + Alpha(i)*H
+     Y_i = Y0 + \sum_{j=1}^{i-1} A(i,j)*K_j
+     G * K_i = ode_Fun( T_i, Y_i ) + \sum_{j=1}^S C(i,j)/H * K_j +
+         gamma(i)*dF/dT(t0, Y0)
+     Y1 = Y0 + \sum_{j=1}^S M(j)*K_j 
+
+    For details on Rosenbrock methods and their implementation consult:
+      E. Hairer and G. Wanner
+      "Solving ODEs II. Stiff and differential-algebraic problems".
+      Springer series in computational mathematics, Springer-Verlag, 1996.  
+    The codes contained in the book inspired this implementation.       
+
+    (C)  Adrian Sandu, August 2004
+    Virginia Polytechnic Institute and State University    
+    Contact: sandu@cs.vt.edu
+    This implementation is part of KPP - the Kinetic PreProcessor
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    
+  *~~~>   INPUT ARGUMENTS: 
+    
+-     Y(NVAR)    = vector of initial conditions (at T=Tstart)
+-    [Tstart,Tend]  = time range of integration
+     (if Tstart>Tend the integration is performed backwards in time)  
+-    RelTol, AbsTol = user precribed accuracy
+-    void ode_Fun( T, Y, Ydot ) = ODE function, 
+                       returns Ydot = Y' = F(T,Y) 
+-    void ode_Fun( T, Y, Ydot ) = Jacobian of the ODE function,
+                       returns Jcb = dF/dY 
+-    IPAR(1:10)    = int inputs parameters
+-    RPAR(1:10)    = real inputs parameters
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  *~~~>     OUTPUT ARGUMENTS:  
+     
+-    Y(NVAR)    -> vector of final states (at T->Tend)
+-    IPAR(11:20)   -> int output parameters
+-    RPAR(11:20)   -> real output parameters
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  *~~~>    RETURN VALUE (int):  
+
+-    IERR       -> job status upon return
+       - succes (positive value) or failure (negative value) -
+           =  1 : Success
+           = -1 : Improper value for maximal no of steps
+           = -2 : Selected Rosenbrock method not implemented
+           = -3 : Hmin/Hmax/Hstart must be positive
+           = -4 : FacMin/FacMax/FacRej must be positive
+           = -5 : Improper tolerance values
+           = -6 : No of steps exceeds maximum bound
+           = -7 : Step size too small
+           = -8 : Matrix is repeatedly singular
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ 
+  *~~~>     INPUT PARAMETERS:
+
+    Note: For input parameters equal to zero the default values of the
+       corresponding variables are used.
+
+    IPAR[0]   = 1: F = F(y)   Independent of T (AUTONOMOUS)
+        = 0: F = F(t,y) Depends on T (NON-AUTONOMOUS)
+    IPAR[1]   = 0: AbsTol, RelTol are NVAR-dimensional vectors
+        = 1:  AbsTol, RelTol are scalars
+    IPAR[2]  -> maximum number of integration steps
+        For IPAR[2]=0) the default value of 100000 is used
+
+    IPAR[3]  -> selection of a particular Rosenbrock method
+        = 0 :  default method is Rodas3
+        = 1 :  method is  Ros2
+        = 2 :  method is  Ros3 
+        = 3 :  method is  Ros4 
+        = 4 :  method is  Rodas3
+        = 5:   method is  Rodas4
+
+    RPAR[0]  -> Hmin, lower bound for the integration step size
+          It is strongly recommended to keep Hmin = ZERO 
+    RPAR[1]  -> Hmax, upper bound for the integration step size
+    RPAR[2]  -> Hstart, starting value for the integration step size
+          
+    RPAR[3]  -> FacMin, lower bound on step decrease factor (default=0.2)
+    RPAR[4]  -> FacMin,upper bound on step increase factor (default=6)
+    RPAR[5]  -> FacRej, step decrease factor after multiple rejections
+            (default=0.1)
+    RPAR[6]  -> FacSafe, by which the new step is slightly smaller 
+         than the predicted value  (default=0.9)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ 
+  *~~~>     OUTPUT PARAMETERS:
+
+    Note: each call to Rosenbrock adds the corrent no. of fcn calls
+      to previous value of IPAR[10], and similar for the other params.
+      Set IPAR(11:20) = 0 before call to avoid this accumulation.
+
+    IPAR[10] = No. of function calls
+    IPAR[11] = No. of jacobian calls
+    IPAR[12] = No. of steps
+    IPAR[13] = No. of accepted steps
+    IPAR[14] = No. of rejected steps (except at the beginning)
+    IPAR[15] = No. of LU decompositions
+    IPAR[16] = No. of forward/backward substitutions
+    IPAR[17] = No. of singular matrix decompositions
+
+    RPAR[10]  -> Texit, the time corresponding to the 
+            computed Y upon return
+    RPAR[11]  -> Hexit, last accepted step before exit
+    For multiple restarts, use Hexit as Hstart in the following run 
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+{   
+
+  /*~~~>  The method parameters    */   
+   #define Smax 6
+   int  Method, ros_S;
+   KPP_REAL ros_M[Smax], ros_E[Smax];
+   KPP_REAL ros_A[Smax*(Smax-1)/2], ros_C[Smax*(Smax-1)/2];
+   KPP_REAL ros_Alpha[Smax], ros_Gamma[Smax], ros_ELO;
+   char ros_NewF[Smax], ros_Name[12];
+  /*~~~>  Local variables    */  
+   int Max_no_steps, IERR, i, UplimTol;
+   char Autonomous, VectorTol;
+   KPP_REAL Roundoff,FacMin,FacMax,FacRej,FacSafe;
+   KPP_REAL Hmin, Hmax, Hstart, Hexit, Texit;
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+
+  /*~~~>  Initialize statistics */
+   Nfun = IPAR[10];
+   Njac = IPAR[11];
+   Nstp = IPAR[12];
+   Nacc = IPAR[13];
+   Nrej = IPAR[14];
+   Ndec = IPAR[15];
+   Nsol = IPAR[16];
+   Nsng = IPAR[17];
+   
+  /*~~~>  Autonomous or time dependent ODE. Default is time dependent. */
+   Autonomous = !(IPAR[0] == 0);
+
+  /*~~~>  For Scalar tolerances (IPAR[1] != 0)  the code uses AbsTol[0] and RelTol[0]
+!   For Vector tolerances (IPAR[1] == 0) the code uses AbsTol(1:NVAR) and RelTol(1:NVAR) */
+   if (IPAR[1] == 0) {
+      VectorTol = 1; UplimTol  = KPP_NVAR;
+   } else { 
+      VectorTol = 0; UplimTol  = 1;
+   } /* end if */
+   
+  /*~~~>   The maximum number of steps admitted */
+   if (IPAR[2] == 0)  
+      Max_no_steps = 100000;
+   else                
+      Max_no_steps=IPAR[2];
+   if (Max_no_steps < 0) { 
+      printf("\n User-selected max no. of steps: IPAR[2]=%d\n",IPAR[2]);
+      return ros_ErrorMsg(-1,Tstart,ZERO);
+   } /* end if */
+
+  /*~~~>  The particular Rosenbrock method chosen */
+   if (IPAR[3] == 0)  
+       Method = 3;
+   else                
+       Method = IPAR[3];
+   if ( (IPAR[3] < 1) || (IPAR[3] > 5) ){  
+      printf("\n User-selected Rosenbrock method: IPAR[3]=%d\n",IPAR[3]);
+      return ros_ErrorMsg(-2,Tstart,ZERO);
+   } /* end if */
+   
+  /*~~~>  Unit Roundoff (1+Roundoff>1)   */
+   Roundoff = WLAMCH('E');
+
+  /*~~~>  Lower bound on the step size: (positive value) */
+   Hmin = RPAR[0];
+   if (RPAR[0] < ZERO) {	 
+      printf("\n User-selected Hmin: RPAR[0]=%e\n", RPAR[0]);
+      return ros_ErrorMsg(-3,Tstart,ZERO);
+   } /* end if */
+  /*~~~>  Upper bound on the step size: (positive value) */
+   if (RPAR[1] == ZERO)  
+      Hmax = ABS(Tend-Tstart);
+   else   
+      Hmax = MIN(ABS(RPAR[1]),ABS(Tend-Tstart));
+   if (RPAR[1] < ZERO) {	 
+      printf("\n User-selected Hmax: RPAR[1]=%e\n", RPAR[1]);
+      return ros_ErrorMsg(-3,Tstart,ZERO);
+   } /* end if */
+  /*~~~>  Starting step size: (positive value) */
+   if (RPAR[2] == ZERO) 
+      Hstart = MAX(Hmin,DeltaMin);
+   else
+      Hstart = MIN(ABS(RPAR[2]),ABS(Tend-Tstart));
+   if (RPAR[2] < ZERO) {	 
+      printf("\n User-selected Hstart: RPAR[2]=%e\n", RPAR[2]);
+      return ros_ErrorMsg(-3,Tstart,ZERO);
+   } /* end if */
+  /*~~~>  Step size can be changed s.t.  FacMin < Hnew/Hexit < FacMax  */
+   if (RPAR[3] == ZERO)
+      FacMin = (KPP_REAL)0.2;
+   else
+      FacMin = RPAR[3];
+   if (RPAR[3] < ZERO) {	 
+      printf("\n User-selected FacMin: RPAR[3]=%e\n", RPAR[3]);
+      return ros_ErrorMsg(-4,Tstart,ZERO);
+   } /* end if */
+   if (RPAR[4] == ZERO) 
+      FacMax = (KPP_REAL)6.0;
+   else
+      FacMax = RPAR[4];
+   if (RPAR[4] < ZERO) {	 
+      printf("\n User-selected FacMax: RPAR[4]=%e\n", RPAR[4]);
+      return ros_ErrorMsg(-4,Tstart,ZERO);
+   } /* end if */
+  /*~~~>   FacRej: Factor to decrease step after 2 succesive rejections */
+   if (RPAR[5] == ZERO) 
+      FacRej = (KPP_REAL)0.1;
+   else
+      FacRej = RPAR[5];
+   if (RPAR[5] < ZERO) {	 
+      printf("\n User-selected FacRej: RPAR[5]=%e\n", RPAR[5]);
+      return ros_ErrorMsg(-4,Tstart,ZERO);
+   } /* end if */
+  /*~~~>   FacSafe: Safety Factor in the computation of new step size */
+   if (RPAR[6] == ZERO) 
+      FacSafe = (KPP_REAL)0.9;
+   else
+      FacSafe = RPAR[6];
+   if (RPAR[6] < ZERO) {	 
+      printf("\n User-selected FacSafe: RPAR[6]=%e\n", RPAR[6]);
+      return ros_ErrorMsg(-4,Tstart,ZERO);
+   } /* end if */
+  /*~~~>  Check if tolerances are reasonable */
+    for (i = 0; i < UplimTol; i++) {
+      if ( (AbsTol[i] <= ZERO)  ||  (RelTol[i] <= 10.0*Roundoff)
+          ||  (RelTol[i] >= ONE) ) {
+        printf("\n  AbsTol[%d] = %e\n",i,AbsTol[i]);
+        printf("\n  RelTol[%d] = %e\n",i,RelTol[i]);
+        return ros_ErrorMsg(-5,Tstart,ZERO);
+      } /* end if */
+    } /* for */
+     
+ 
+  /*~~~>   Initialize the particular Rosenbrock method */
+   switch (Method) {
+     case 1:
+       Ros2(&ros_S, ros_A, ros_C, ros_M, ros_E, 
+         ros_Alpha, ros_Gamma, ros_NewF, &ros_ELO, ros_Name);
+       break;	 
+     case 2:
+       Ros3(&ros_S, ros_A, ros_C, ros_M, ros_E, 
+         ros_Alpha, ros_Gamma, ros_NewF, &ros_ELO, ros_Name);
+       break;	 
+     case 3:
+       Ros4(&ros_S, ros_A, ros_C, ros_M, ros_E, 
+         ros_Alpha, ros_Gamma, ros_NewF, &ros_ELO, ros_Name);
+       break;	 
+     case 4:
+       Rodas3(&ros_S, ros_A, ros_C, ros_M, ros_E, 
+         ros_Alpha, ros_Gamma, ros_NewF, &ros_ELO, ros_Name);
+       break;	 
+     case 5:
+       Rodas4(&ros_S, ros_A, ros_C, ros_M, ros_E, 
+         ros_Alpha, ros_Gamma, ros_NewF, &ros_ELO, ros_Name);
+       break;	 
+     default:
+       printf("\n Unknown Rosenbrock method: IPAR[3]= %d", Method);
+       return ros_ErrorMsg(-2,Tstart,ZERO); 
+   } /* end switch */
+
+  /*~~~>  Rosenbrock method   */
+   IERR = RosenbrockIntegrator( Y,Tstart,Tend,
+        AbsTol, RelTol,
+        ode_Fun,ode_Jac ,
+      /*  Rosenbrock method coefficients  */     
+        ros_S, ros_M, ros_E, ros_A, ros_C, 
+        ros_Alpha, ros_Gamma, ros_ELO, ros_NewF,
+      /*  Integration parameters */ 
+        Autonomous, VectorTol, Max_no_steps,
+        Roundoff, Hmin, Hmax, Hstart,
+        FacMin, FacMax, FacRej, FacSafe, 
+      /* Output parameters */ 
+	&Texit, &Hexit );
+
+
+  /*~~~>  Collect run statistics */
+   IPAR[10] = Nfun;
+   IPAR[11] = Njac;
+   IPAR[12] = Nstp;
+   IPAR[13] = Nacc;
+   IPAR[14] = Nrej;
+   IPAR[15] = Ndec;
+   IPAR[16] = Nsol;
+   IPAR[17] = Nsng;
+  /*~~~> Last T and H */
+   RPAR[10] = Texit;
+   RPAR[11] = Hexit;    
+   
+   return IERR;
+   
+} /* Rosenbrock */
+
+   
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+int RosenbrockIntegrator(
+  /*~~~> Input: the initial condition at Tstart; Output: the solution at T */  
+     KPP_REAL Y[],
+  /*~~~> Input: integration interval */   
+     KPP_REAL Tstart, KPP_REAL Tend ,     
+  /*~~~> Input: tolerances  */        
+     KPP_REAL  AbsTol[], KPP_REAL  RelTol[],
+  /*~~~> Input: ode function and its Jacobian */      
+     void (*ode_Fun)(KPP_REAL, KPP_REAL [], KPP_REAL []), 
+     void (*ode_Jac)(KPP_REAL, KPP_REAL [], KPP_REAL []) ,
+  /*~~~> Input: The Rosenbrock method parameters */   
+     int ros_S,
+     KPP_REAL ros_M[], KPP_REAL ros_E[], 
+     KPP_REAL ros_A[], KPP_REAL ros_C[],
+     KPP_REAL ros_Alpha[],KPP_REAL  ros_Gamma[],
+     KPP_REAL ros_ELO, char ros_NewF[],
+  /*~~~> Input: integration parameters  */     
+     char Autonomous, char VectorTol,
+     int Max_no_steps,  
+     KPP_REAL Roundoff, KPP_REAL Hmin, KPP_REAL Hmax, KPP_REAL Hstart,
+     KPP_REAL FacMin, KPP_REAL FacMax, KPP_REAL FacRej, KPP_REAL FacSafe, 
+  /*~~~> Output: time at which the solution is returned (T=Tend  if success)   
+             and last accepted step  */     
+     KPP_REAL *Texit, KPP_REAL *Hexit ) 
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      Template for the implementation of a generic Rosenbrock method 
+      defined by ros_S (no of stages) and coefficients ros_{A,C,M,E,Alpha,Gamma}
+      
+      returned value: IERR, indicator of success (if positive) 
+                                      or failure (if negative)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+{   
+   KPP_REAL Ynew[KPP_NVAR], Fcn0[KPP_NVAR], Fcn[KPP_NVAR],
+      dFdT[KPP_NVAR],
+      Jac0[KPP_LU_NONZERO], Ghimj[KPP_LU_NONZERO];
+   KPP_REAL K[KPP_NVAR*ros_S];   
+   KPP_REAL H, T, Hnew, HC, HG, Fac, Tau; 
+   KPP_REAL Err, Yerr[KPP_NVAR];
+   int Pivot[KPP_NVAR], Direction, ioffset, j, istage;
+   char RejectLastH, RejectMoreH;
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+   
+  /*~~~>  INITIAL PREPARATIONS  */
+   T = Tstart;
+   *Hexit = 0.0;
+   H = MIN(Hstart,Hmax); 
+   if (ABS(H) <= 10.0*Roundoff) 
+        H = DeltaMin;
+   
+   if (Tend  >=  Tstart) {
+     Direction = +1;
+   } else {
+     Direction = -1;
+   } /* end if */		
+
+   RejectLastH=0; RejectMoreH=0;
+   
+  /*~~~> Time loop begins below  */ 
+
+   while ( ( (Direction > 0) && ((T-Tend)+Roundoff <= ZERO) )
+       || ( (Direction < 0) && ((Tend-T)+Roundoff <= ZERO) ) ) { 
+      
+   if ( Nstp > Max_no_steps )  {                /* Too many steps */
+        *Texit = T;
+	return ros_ErrorMsg(-6,T,H);
+   }	
+   if ( ((T+0.1*H) == T) || (H <= Roundoff) ) { /* Step size too small */
+        *Texit = T;
+	return ros_ErrorMsg(-7,T,H);
+   }   
+   
+  /*~~~>  Limit H if necessary to avoid going beyond Tend   */  
+   *Hexit = H;
+   H = MIN(H,ABS(Tend-T));
+
+  /*~~~>   Compute the function at current time  */
+   (*ode_Fun)(T,Y,Fcn0);
+
+  /*~~~>  Compute the function derivative with respect to T  */
+   if (!Autonomous) 
+      ros_FunTimeDerivative ( T, Roundoff, Y, Fcn0, ode_Fun, dFdT );
+  
+  /*~~~>   Compute the Jacobian at current time  */
+   (*ode_Jac)(T,Y,Jac0);
+ 
+  /*~~~>  Repeat step calculation until current step accepted  */
+   while (1) { /* WHILE STEP NOT ACCEPTED */
+
+   
+   if( ros_PrepareMatrix( &H, Direction, ros_Gamma[0],
+          Jac0, Ghimj, Pivot) ) { /* More than 5 consecutive failed decompositions */
+       *Texit = T;
+       return ros_ErrorMsg(-8,T,H);
+   }
+
+  /*~~~>   Compute the stages  */
+   for (istage = 1; istage <= ros_S; istage++) {
+      
+      /* Current istage offset. Current istage vector is K[ioffset:ioffset+KPP_NVAR-1] */
+      ioffset = KPP_NVAR*(istage-1);
+	 
+      /* For the 1st istage the function has been computed previously */
+      if ( istage == 1 )
+	   WCOPY(KPP_NVAR,Fcn0,1,Fcn,1);
+      else { /* istage>1 and a new function evaluation is needed at current istage */
+	if ( ros_NewF[istage-1] ) {
+	   WCOPY(KPP_NVAR,Y,1,Ynew,1);
+	   for (j = 1; j <= istage-1; j++)
+	     WAXPY(KPP_NVAR,ros_A[(istage-1)*(istage-2)/2+j-1],
+                   &K[KPP_NVAR*(j-1)],1,Ynew,1); 
+	   Tau = T + ros_Alpha[istage-1]*Direction*H;
+           (*ode_Fun)(Tau,Ynew,Fcn);
+	} /*end if ros_NewF(istage)*/
+      } /* end if istage */
+	 
+      WCOPY(KPP_NVAR,Fcn,1,&K[ioffset],1);
+      for (j = 1; j <= istage-1; j++) {
+	 HC = ros_C[(istage-1)*(istage-2)/2+j-1]/(Direction*H);
+	 WAXPY(KPP_NVAR,HC,&K[KPP_NVAR*(j-1)],1,&K[ioffset],1);
+      } /* for j */
+	 
+      if ((!Autonomous) && (ros_Gamma[istage-1])) { 
+        HG = Direction*H*ros_Gamma[istage-1];
+	WAXPY(KPP_NVAR,HG,dFdT,1,&K[ioffset],1);
+      } /* end if !Autonomous */
+      
+      SolveTemplate(Ghimj, Pivot, &K[ioffset]);
+	 
+   } /* for istage */	    
+	    
+
+  /*~~~>  Compute the new solution   */
+   WCOPY(KPP_NVAR,Y,1,Ynew,1);
+   for (j=1; j<=ros_S; j++)
+       WAXPY(KPP_NVAR,ros_M[j-1],&K[KPP_NVAR*(j-1)],1,Ynew,1);
+
+  /*~~~>  Compute the error estimation   */
+   WSCAL(KPP_NVAR,ZERO,Yerr,1);
+   for (j=1; j<=ros_S; j++)    
+       WAXPY(KPP_NVAR,ros_E[j-1],&K[KPP_NVAR*(j-1)],1,Yerr,1);
+   Err = ros_ErrorNorm ( Y, Ynew, Yerr, AbsTol, RelTol, VectorTol );
+
+  /*~~~> New step size is bounded by FacMin <= Hnew/H <= FacMax  */
+   Fac  = MIN(FacMax,MAX(FacMin,FacSafe/pow(Err,ONE/ros_ELO)));
+   Hnew = H*Fac;  
+
+  /*~~~>  Check the error magnitude and adjust step size  */
+   Nstp++;
+   if ( (Err <= ONE) || (H <= Hmin) ) {    /*~~~> Accept step  */
+      Nacc++;
+      WCOPY(KPP_NVAR,Ynew,1,Y,1);
+      T += Direction*H;
+      Hnew = MAX(Hmin,MIN(Hnew,Hmax));
+      /* No step size increase after a rejected step  */
+      if (RejectLastH) 
+         Hnew = MIN(Hnew,H); 
+      RejectLastH = 0; RejectMoreH = 0;
+      H = Hnew;
+	 break; /* EXIT THE LOOP: WHILE STEP NOT ACCEPTED */
+   } else {             /*~~~> Reject step  */
+      if (Nacc >= 1) 
+         Nrej++;    
+      if (RejectMoreH) 
+         Hnew=H*FacRej;   
+      RejectMoreH = RejectLastH; RejectLastH = 1;
+      H = Hnew;
+   } /* end if Err <= 1 */
+
+   } /* while LOOP: WHILE STEP NOT ACCEPTED */
+
+   } /* while: time loop */   
+   
+  /*~~~> The integration was successful */
+   *Texit = T;
+   return 1;    
+
+}  /* RosenbrockIntegrator */
+ 
+
+   
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+KPP_REAL ros_ErrorNorm ( 
+  /*~~~> Input arguments */  
+     KPP_REAL Y[], KPP_REAL Ynew[], KPP_REAL Yerr[], 
+     KPP_REAL AbsTol[], KPP_REAL RelTol[], 
+     char VectorTol )
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+        Computes and returns the "scaled norm" of the error vector Yerr
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/   
+{   	 
+  /*~~~> Local variables */     
+   KPP_REAL Err, Scale, Ymax;   
+   int i;
+   
+   Err = ZERO;
+   for (i=0; i<KPP_NVAR; i++) {
+	Ymax = MAX(ABS(Y[i]),ABS(Ynew[i]));
+     if (VectorTol) {
+       Scale = AbsTol[i]+RelTol[i]*Ymax;
+     } else {
+       Scale = AbsTol[0]+RelTol[0]*Ymax;
+     } /* end if */
+     Err = Err+(Yerr[i]*Yerr[i])/(Scale*Scale);
+   } /* for i */
+   Err  = SQRT(Err/(KPP_REAL)KPP_NVAR);
+
+   return Err;
+   
+} /* ros_ErrorNorm */
+
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void ros_FunTimeDerivative ( 
+    /*~~~> Input arguments: */ 
+        KPP_REAL T, KPP_REAL Roundoff, 
+        KPP_REAL Y[], KPP_REAL Fcn0[], 
+	void (*ode_Fun)(KPP_REAL, KPP_REAL [], KPP_REAL []), 
+    /*~~~> Output arguments: */ 
+        KPP_REAL dFdT[] )
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    The time partial derivative of the function by finite differences
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/   
+{
+  /*~~~> Local variables */     
+   KPP_REAL Delta;    
+   
+   Delta = SQRT(Roundoff)*MAX(DeltaMin,ABS(T));
+   (*ode_Fun)(T+Delta,Y,dFdT);
+   WAXPY(KPP_NVAR,(-ONE),Fcn0,1,dFdT,1);
+   WSCAL(KPP_NVAR,(ONE/Delta),dFdT,1);
+
+}  /*  ros_FunTimeDerivative */
+
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/   
+char ros_PrepareMatrix (
+       /* Inout argument: (step size is decreased when LU fails) */  
+           KPP_REAL* H, 
+       /* Input arguments: */    
+           int Direction,  KPP_REAL gam, KPP_REAL Jac0[], 
+       /* Output arguments: */	  
+           KPP_REAL Ghimj[], int Pivot[] )
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  Prepares the LHS matrix for stage calculations
+  1.  Construct Ghimj = 1/(H*ham) - Jac0
+      "(Gamma H) Inverse Minus Jacobian"
+  2.  Repeat LU decomposition of Ghimj until successful.
+       -half the step size if LU decomposition fails and retry
+       -exit after 5 consecutive fails
+
+  Return value:       Singular (true=1=failed_LU or false=0=successful_LU)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/   
+{   
+  /*~~~> Local variables */     
+   int i, ising, Nconsecutive;
+   KPP_REAL ghinv;
+   
+   Nconsecutive = 0;
+   
+   while (1) {  /* while Singular */
+   
+  /*~~~>    Construct Ghimj = 1/(H*ham) - Jac0 */
+     WCOPY(KPP_LU_NONZERO,Jac0,1,Ghimj,1);
+     WSCAL(KPP_LU_NONZERO,(-ONE),Ghimj,1);
+     ghinv = ONE/(Direction*(*H)*gam);
+     for (i=0; i<KPP_NVAR; i++) {
+       Ghimj[LU_DIAG[i]] = Ghimj[LU_DIAG[i]]+ghinv;
+     } /* for i */
+  /*~~~>    Compute LU decomposition  */
+     DecompTemplate( Ghimj, Pivot, &ising );
+     if (ising == 0) {
+  /*~~~>    if successful done  */
+        return 0;  /* Singular = false */
+     } else { /* ising .ne. 0 */
+  /*~~~>    if unsuccessful half the step size; if 5 consecutive fails return */
+        Nsng++; Nconsecutive++;
+        printf("\nWarning: LU Decomposition returned ising = %d\n",ising);
+        if (Nconsecutive <= 5) { /* Less than 5 consecutive failed LUs */
+          *H = (*H)*HALF;
+        } else {                  /* More than 5 consecutive failed LUs */
+          return 1; /* Singular = true */
+        } /* end if  Nconsecutive */
+     } /* end if ising */
+	 
+   } /* while Singular */
+
+}  /*  ros_PrepareMatrix */
+
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/   
+int ros_ErrorMsg(int Code, KPP_REAL T, KPP_REAL H)
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                  Handles all error messages and returns IERR = error Code
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/   
+{   
+   printf("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"); 
+   printf("\nForced exit from Rosenbrock due to the following error:\n"); 
+     
+   switch (Code) {
+   case -1:   
+      printf("--> Improper value for maximal no of steps"); break;
+   case -2:   
+      printf("--> Selected Rosenbrock method not implemented"); break;
+   case -3:   
+      printf("--> Hmin/Hmax/Hstart must be positive"); break;
+   case -4:   
+      printf("--> FacMin/FacMax/FacRej must be positive"); break;
+   case -5:
+      printf("--> Improper tolerance values"); break;
+   case -6:
+      printf("--> No of steps exceeds maximum bound"); break;
+   case -7:
+      printf("--> Step size too small (T + H/10 = T) or H < Roundoff"); break;
+   case -8:   
+      printf("--> Matrix is repeatedly singular"); break;
+   default:
+      printf("Unknown Error code: %d ",Code); 
+   } /* end switch */
+   
+   printf("\n   Time = %15.7e,  H = %15.7e",T,H);
+   printf("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"); 
+     
+   return Code;  
+     
+}  /* ros_ErrorMsg  */
+      
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/   
+void Ros2 ( int *ros_S, KPP_REAL ros_A[], KPP_REAL ros_C[], 
+           KPP_REAL ros_M[], KPP_REAL ros_E[], 
+	   KPP_REAL ros_Alpha[], KPP_REAL ros_Gamma[], 
+	   char ros_NewF[], KPP_REAL *ros_ELO, char* ros_Name )
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+             AN L-STABLE METHOD, 2 stages, order 2
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/   
+{   
+   double g = (KPP_REAL)1.70710678118655; /* 1.0 + 1.0/SQRT(2.0) */
+   
+  /*~~~> Name of the method */
+    strcpy(ros_Name, "ROS-2");  
+        
+  /*~~~> Number of stages */
+    *ros_S = 2;
+   
+  /*~~~> The coefficient matrices A and C are strictly lower triangular.
+    The lower triangular (subdiagonal) elements are stored in row-wise order:
+    A(2,1) = ros_A[0], A(3,1)=ros_A[1], A(3,2)=ros_A[2], etc.
+    The general mapping formula is:
+        A_{i,j} = ros_A[ (i-1)*(i-2)/2 + j -1 ]   */
+    ros_A[0] = 1.0/g;
+    
+  /*~~~>     C_{i,j} = ros_C[ (i-1)*(i-2)/2 + j -1]  */
+    ros_C[0] = (-2.0)/g;
+    
+  /*~~~> does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+    or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE) */
+    ros_NewF[0] = 1;
+    ros_NewF[1] = 1;
+    
+  /*~~~> M_i = Coefficients for new step solution */
+    ros_M[0]= (3.0)/(2.0*g);
+    ros_M[1]= (1.0)/(2.0*g);
+    
+  /*~~~> E_i = Coefficients for error estimator */    
+    ros_E[0] = 1.0/(2.0*g);
+    ros_E[1] = 1.0/(2.0*g);
+    
+  /*~~~> ros_ELO = estimator of local order - the minimum between the
+!    main and the embedded scheme orders plus one */
+    *ros_ELO = (KPP_REAL)2.0;   
+     
+  /*~~~> Y_stage_i ~ Y( T + H*Alpha_i ) */
+    ros_Alpha[0] = (KPP_REAL)0.0;
+    ros_Alpha[1] = (KPP_REAL)1.0; 
+    
+  /*~~~> Gamma_i = \sum_j  gamma_{i,j}  */     
+    ros_Gamma[0] =  g;
+    ros_Gamma[1] = -g;
+    
+}  /*  Ros2 */
+
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/   
+void Ros3 ( int *ros_S, KPP_REAL ros_A[], KPP_REAL ros_C[], 
+           KPP_REAL ros_M[], KPP_REAL ros_E[], 
+	   KPP_REAL ros_Alpha[], KPP_REAL ros_Gamma[], 
+	   char ros_NewF[], KPP_REAL *ros_ELO, char* ros_Name )
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+       AN L-STABLE METHOD, 3 stages, order 3, 2 function evaluations
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/   
+{ 
+  /*~~~> Name of the method */
+   strcpy(ros_Name, "ROS-3");   
+
+  /*~~~> Number of stages */
+   *ros_S = 3;
+   
+  /*~~~> The coefficient matrices A and C are strictly lower triangular.
+    The lower triangular (subdiagonal) elements are stored in row-wise order:
+    A(2,1) = ros_A[0], A(3,1)=ros_A[1], A(3,2)=ros_A[2], etc.
+    The general mapping formula is:
+        A_{i,j} = ros_A[ (i-1)*(i-2)/2 + j -1 ]   */
+   ros_A[0]= (KPP_REAL)1.0;
+   ros_A[1]= (KPP_REAL)1.0;
+   ros_A[2]= (KPP_REAL)0.0;
+
+  /*~~~>     C_{i,j} = ros_C[ (i-1)*(i-2)/2 + j -1]  */
+   ros_C[0] = (KPP_REAL)(-1.0156171083877702091975600115545);
+   ros_C[1] = (KPP_REAL)4.0759956452537699824805835358067;
+   ros_C[2] = (KPP_REAL)9.2076794298330791242156818474003;
+   
+  /*~~~> does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+    or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE) */
+   ros_NewF[0] = 1;
+   ros_NewF[1] = 1;
+   ros_NewF[2] = 0;
+   
+  /*~~~> M_i = Coefficients for new step solution */
+   ros_M[0] = (KPP_REAL)1.0;
+   ros_M[1] = (KPP_REAL)6.1697947043828245592553615689730;
+   ros_M[2] = (KPP_REAL)(-0.4277225654321857332623837380651);
+   
+  /*~~~> E_i = Coefficients for error estimator */    
+   ros_E[0] = (KPP_REAL)0.5;
+   ros_E[1] = (KPP_REAL)(-2.9079558716805469821718236208017);
+   ros_E[2] = (KPP_REAL)0.2235406989781156962736090927619;
+   
+  /*~~~> ros_ELO = estimator of local order - the minimum between the
+!    main and the embedded scheme orders plus 1 */
+   *ros_ELO = (KPP_REAL)3.0;    
+   
+  /*~~~> Y_stage_i ~ Y( T + H*Alpha_i ) */
+   ros_Alpha[0]= (KPP_REAL)0.0;
+   ros_Alpha[1]= (KPP_REAL)0.43586652150845899941601945119356;
+   ros_Alpha[2]= (KPP_REAL)0.43586652150845899941601945119356;
+   
+  /*~~~> Gamma_i = \sum_j  gamma_{i,j}  */     
+   ros_Gamma[0]= (KPP_REAL)0.43586652150845899941601945119356;
+   ros_Gamma[1]= (KPP_REAL)0.24291996454816804366592249683314;
+   ros_Gamma[2]= (KPP_REAL)2.1851380027664058511513169485832;
+
+}  /*  Ros3 */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/   
+
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/   
+void Ros4 ( int *ros_S, KPP_REAL ros_A[], KPP_REAL ros_C[], 
+           KPP_REAL ros_M[], KPP_REAL ros_E[], 
+	   KPP_REAL ros_Alpha[], KPP_REAL ros_Gamma[], 
+	   char ros_NewF[], KPP_REAL *ros_ELO, char* ros_Name )
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+     L-STABLE ROSENBROCK METHOD OF ORDER 4, WITH 4 STAGES
+     L-STABLE EMBEDDED ROSENBROCK METHOD OF ORDER 3 
+
+      E. HAIRER AND G. WANNER, SOLVING ORDINARY DIFFERENTIAL
+      EQUATIONS II. STIFF AND DIFFERENTIAL-ALGEBRAIC PROBLEMS.
+      SPRINGER SERIES IN COMPUTATIONAL MATHEMATICS,
+      SPRINGER-VERLAG (1990)         
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/   
+{   
+  /*~~~> Name of the method */
+   strcpy(ros_Name, "ROS-4");  
+       
+  /*~~~> Number of stages */
+   *ros_S = 4;
+   
+  /*~~~> The coefficient matrices A and C are strictly lower triangular.
+    The lower triangular (subdiagonal) elements are stored in row-wise order:
+    A(2,1) = ros_A[0], A(3,1)=ros_A[1], A(3,2)=ros_A[2], etc.
+    The general mapping formula is:
+       A_{i,j} = ros_A[ (i-1)*(i-2)/2 + j -1 ]  */
+   ros_A[0] = (KPP_REAL)0.2000000000000000e+01;
+   ros_A[1] = (KPP_REAL)0.1867943637803922e+01;
+   ros_A[2] = (KPP_REAL)0.2344449711399156;
+   ros_A[3] = ros_A[1];
+   ros_A[4] = ros_A[2];
+   ros_A[5] = (KPP_REAL)0.0;
+
+  /*~~~>     C(i,j) = (KPP_REAL)ros_C( (i-1)*(i-2)/2 + j )  */
+   ros_C[0] = (KPP_REAL)(-0.7137615036412310e+01);
+   ros_C[1] = (KPP_REAL)( 0.2580708087951457e+01);
+   ros_C[2] = (KPP_REAL)( 0.6515950076447975);
+   ros_C[3] = (KPP_REAL)(-0.2137148994382534e+01);
+   ros_C[4] = (KPP_REAL)(-0.3214669691237626);
+   ros_C[5] = (KPP_REAL)(-0.6949742501781779);
+   
+  /*~~~> does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+    or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE) */
+   ros_NewF[0]  = 1;
+   ros_NewF[1]  = 1;
+   ros_NewF[2]  = 1;
+   ros_NewF[3]  = 0;
+   
+  /*~~~> M_i = Coefficients for new step solution */
+   ros_M[0] = (KPP_REAL)0.2255570073418735e+01;
+   ros_M[1] = (KPP_REAL)0.2870493262186792;
+   ros_M[2] = (KPP_REAL)0.4353179431840180;
+   ros_M[3] = (KPP_REAL)0.1093502252409163e+01;
+   
+  /*~~~> E_i  = Coefficients for error estimator */   
+   ros_E[0] = (KPP_REAL)(-0.2815431932141155);
+   ros_E[1] = (KPP_REAL)(-0.7276199124938920e-01);
+   ros_E[2] = (KPP_REAL)(-0.1082196201495311);
+   ros_E[3] = (KPP_REAL)(-0.1093502252409163e+01);
+   
+  /*~~~> ros_ELO  = estimator of local order - the minimum between the
+!    main and the embedded scheme orders plus 1 */
+   *ros_ELO  = (KPP_REAL)4.0;    
+   
+  /*~~~> Y_stage_i ~ Y( T + H*Alpha_i ) */
+   ros_Alpha[0] = (KPP_REAL)0.0;
+   ros_Alpha[1] = (KPP_REAL)0.1145640000000000e+01;
+   ros_Alpha[2] = (KPP_REAL)0.6552168638155900;
+   ros_Alpha[3] = (KPP_REAL)ros_Alpha[2];
+   
+  /*~~~> Gamma_i = \sum_j  gamma_{i,j}  */     
+   ros_Gamma[0] = (KPP_REAL)( 0.5728200000000000);
+   ros_Gamma[1] = (KPP_REAL)(-0.1769193891319233e+01);
+   ros_Gamma[2] = (KPP_REAL)( 0.7592633437920482);
+   ros_Gamma[3] = (KPP_REAL)(-0.1049021087100450);
+
+}  /*  Ros4 */
+   
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/   
+void Rodas3 ( int *ros_S, KPP_REAL ros_A[], KPP_REAL ros_C[], 
+             KPP_REAL ros_M[], KPP_REAL ros_E[], 
+	     KPP_REAL ros_Alpha[], KPP_REAL ros_Gamma[], 
+	     char ros_NewF[], KPP_REAL *ros_ELO, char* ros_Name )
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+  --- A STIFFLY-STABLE METHOD, 4 stages, order 3
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/   
+{   
+  /*~~~> Name of the method */
+   strcpy(ros_Name, "RODAS-3");  
+   
+  /*~~~> Number of stages */
+   *ros_S = 4;
+   
+  /*~~~> The coefficient matrices A and C are strictly lower triangular.
+    The lower triangular (subdiagonal) elements are stored in row-wise order:
+    A(2,1) = ros_A[0], A(3,1)=ros_A[1], A(3,2)=ros_A[2], etc.
+    The general mapping formula is:
+        A_{i,j} = ros_A[ (i-1)*(i-2)/2 + j -1 ]  */   
+   ros_A[0] = (KPP_REAL)0.0;
+   ros_A[1] = (KPP_REAL)2.0;
+   ros_A[2] = (KPP_REAL)0.0;
+   ros_A[3] = (KPP_REAL)2.0;
+   ros_A[4] = (KPP_REAL)0.0;
+   ros_A[5] = (KPP_REAL)1.0;
+
+  /*~~~>     C_{i,j} = ros_C[ (i-1)*(i-2)/2 + j -1]  */
+   ros_C[0] = (KPP_REAL)4.0;
+   ros_C[1] = (KPP_REAL)1.0;
+   ros_C[2] = (KPP_REAL)(-1.0);
+   ros_C[3] = (KPP_REAL)1.0;
+   ros_C[4] = (KPP_REAL)(-1.0); 
+   ros_C[5] = (KPP_REAL)(-2.66666666666667); /* -8/3 */ 
+         
+  /*~~~> does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+    or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE) */
+   ros_NewF[0]  = 1;
+   ros_NewF[1]  = 0;
+   ros_NewF[2]  = 1;
+   ros_NewF[3]  = 1;
+   
+  /*~~~> M_i = Coefficients for new step solution */
+   ros_M[0] = (KPP_REAL)2.0;
+   ros_M[1] = (KPP_REAL)0.0;
+   ros_M[2] = (KPP_REAL)1.0;
+   ros_M[3] = (KPP_REAL)1.0;
+   
+  /*~~~> E_i  = Coefficients for error estimator */   
+   ros_E[0] = (KPP_REAL)0.0;
+   ros_E[1] = (KPP_REAL)0.0;
+   ros_E[2] = (KPP_REAL)0.0;
+   ros_E[3] = (KPP_REAL)1.0;
+   
+  /*~~~> ros_ELO  = estimator of local order - the minimum between the
+!    main and the embedded scheme orders plus 1 */
+   *ros_ELO  = (KPP_REAL)3.0;
+      
+  /*~~~> Y_stage_i ~ Y( T + H*Alpha_i ) */
+   ros_Alpha[0] = (KPP_REAL)0.0;
+   ros_Alpha[1] = (KPP_REAL)0.0;
+   ros_Alpha[2] = (KPP_REAL)1.0;
+   ros_Alpha[3] = (KPP_REAL)1.0;
+   
+  /*~~~> Gamma_i = \sum_j  gamma_{i,j}  */     
+   ros_Gamma[0] = (KPP_REAL)0.5;
+   ros_Gamma[1] = (KPP_REAL)1.5;
+   ros_Gamma[2] = (KPP_REAL)0.0;
+   ros_Gamma[3] = (KPP_REAL)0.0;
+ 
+}  /*  Rodas3 */
+    
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/   
+void Rodas4 ( int *ros_S, KPP_REAL ros_A[], KPP_REAL ros_C[], 
+             KPP_REAL ros_M[], KPP_REAL ros_E[], 
+	     KPP_REAL ros_Alpha[], KPP_REAL ros_Gamma[], 
+	     char ros_NewF[], KPP_REAL *ros_ELO, char* ros_Name )
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+     STIFFLY-STABLE ROSENBROCK METHOD OF ORDER 4, WITH 6 STAGES
+
+      E. HAIRER AND G. WANNER, SOLVING ORDINARY DIFFERENTIAL
+      EQUATIONS II. STIFF AND DIFFERENTIAL-ALGEBRAIC PROBLEMS.
+      SPRINGER SERIES IN COMPUTATIONAL MATHEMATICS,
+      SPRINGER-VERLAG (1996)         
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/   
+{
+  /*~~~> Name of the method */
+   strcpy(ros_Name, "RODAS-4");  
+   
+  /*~~~> Number of stages */
+    *ros_S = 6;
+
+  /*~~~> Y_stage_i ~ Y( T + H*Alpha_i ) */
+    ros_Alpha[0] = (KPP_REAL)0.000;
+    ros_Alpha[1] = (KPP_REAL)0.386;
+    ros_Alpha[2] = (KPP_REAL)0.210; 
+    ros_Alpha[3] = (KPP_REAL)0.630;
+    ros_Alpha[4] = (KPP_REAL)1.000;
+    ros_Alpha[5] = (KPP_REAL)1.000;
+	
+  /*~~~> Gamma_i = \sum_j  gamma_{i,j}  */     
+    ros_Gamma[0] = (KPP_REAL)0.2500000000000000;
+    ros_Gamma[1] = (KPP_REAL)(-0.1043000000000000);
+    ros_Gamma[2] = (KPP_REAL)0.1035000000000000;
+    ros_Gamma[3] = (KPP_REAL)(-0.3620000000000023e-01);
+    ros_Gamma[4] = (KPP_REAL)0.0;
+    ros_Gamma[5] = (KPP_REAL)0.0;
+
+  /*~~~> The coefficient matrices A and C are strictly lower triangular.
+    The lower triangular (subdiagonal) elements are stored in row-wise order:
+    A(2,1) = ros_A[0], A(3,1)=ros_A[1], A(3,2)=ros_A[2], etc.
+    The general mapping formula is:  A_{i,j} = ros_A[ (i-1)*(i-2)/2 + j -1 ]  */
+    ros_A[0]  = (KPP_REAL)0.1544000000000000e+01;
+    ros_A[1]  = (KPP_REAL)0.9466785280815826;
+    ros_A[2]  = (KPP_REAL)0.2557011698983284;
+    ros_A[3]  = (KPP_REAL)0.3314825187068521e+01;
+    ros_A[4]  = (KPP_REAL)0.2896124015972201e+01;
+    ros_A[5]  = (KPP_REAL)0.9986419139977817;
+    ros_A[6]  = (KPP_REAL)0.1221224509226641e+01;
+    ros_A[7]  = (KPP_REAL)0.6019134481288629e+01;
+    ros_A[8]  = (KPP_REAL)0.1253708332932087e+02;
+    ros_A[9]  = (KPP_REAL)(-0.6878860361058950);
+    ros_A[10] =  ros_A[6];
+    ros_A[11] =  ros_A[7];
+    ros_A[12] =  ros_A[8];
+    ros_A[13] =  ros_A[9];
+    ros_A[14] =  (KPP_REAL)1.0;
+
+  /*~~~>     C_{i,j} = ros_C[ (i-1)*(i-2)/2 + j -1]  */
+    ros_C[0]  = (KPP_REAL)(-0.5668800000000000e+01);
+    ros_C[1]  = (KPP_REAL)(-0.2430093356833875e+01);
+    ros_C[2]  = (KPP_REAL)(-0.2063599157091915);
+    ros_C[3]  = (KPP_REAL)(-0.1073529058151375);
+    ros_C[4]  = (KPP_REAL)(-0.9594562251023355e+01);
+    ros_C[5]  = (KPP_REAL)(-0.2047028614809616e+02);
+    ros_C[6]  = (KPP_REAL)( 0.7496443313967647e+01);
+    ros_C[7]  = (KPP_REAL)(-0.1024680431464352e+02);
+    ros_C[8]  = (KPP_REAL)(-0.3399990352819905e+02);
+    ros_C[9]  = (KPP_REAL)( 0.1170890893206160e+02);
+    ros_C[10] = (KPP_REAL)( 0.8083246795921522e+01);
+    ros_C[11] = (KPP_REAL)(-0.7981132988064893e+01);
+    ros_C[12] = (KPP_REAL)(-0.3152159432874371e+02);
+    ros_C[13] = (KPP_REAL)( 0.1631930543123136e+02);
+    ros_C[14] = (KPP_REAL)(-0.6058818238834054e+01);
+
+  /*~~~> M_i  = Coefficients for new step solution */
+    ros_M[0] = ros_A[6];
+    ros_M[1] = ros_A[7];
+    ros_M[2] = ros_A[8];
+    ros_M[3] = ros_A[9];
+    ros_M[4] = (KPP_REAL)1.0;
+    ros_M[5] = (KPP_REAL)1.0;
+
+  /*~~~> E_i  = Coefficients for error estimator */   
+    ros_E[0] = (KPP_REAL)0.0;
+    ros_E[1] = (KPP_REAL)0.0;
+    ros_E[2] = (KPP_REAL)0.0;
+    ros_E[3] = (KPP_REAL)0.0;
+    ros_E[4] = (KPP_REAL)0.0;
+    ros_E[5] = (KPP_REAL)1.0;
+
+  /*~~~> does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+    or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE) */
+    ros_NewF[0] = 1;
+    ros_NewF[1] = 1;
+    ros_NewF[2] = 1;
+    ros_NewF[3] = 1;
+    ros_NewF[4] = 1;
+    ros_NewF[5] = 1;
+     
+  /*~~~> ros_ELO  = estimator of local order - the minimum between the
+!    main and the embedded scheme orders plus 1 */
+    *ros_ELO = (KPP_REAL)4.0;
+     
+}  /*  Rodas4 */
+
+   
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/   
+void DecompTemplate( KPP_REAL A[], int Pivot[], int* ising )
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
+        Template for the LU decomposition   
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/   
+{   
+   *ising = KppDecomp ( A );
+  /*~~~> Note: for a full matrix use Lapack:
+      DGETRF( KPP_NVAR, KPP_NVAR, A, KPP_NVAR, Pivot, ising ) */
+    
+   Ndec++;
+
+}  /*  DecompTemplate */
+ 
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/   
+ void SolveTemplate( KPP_REAL A[], int Pivot[], KPP_REAL b[] )
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
+     Template for the forward/backward substitution (using pre-computed LU decomposition)   
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/   
+{   
+   KppSolve( A, b );
+  /*~~~> Note: for a full matrix use Lapack:
+      NRHS = 1
+      DGETRS( 'N', KPP_NVAR , NRHS, A, KPP_NVAR, Pivot, b, KPP_NVAR, INFO ) */
+     
+   Nsol++;
+
+}  /*  SolveTemplate */
+
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/   
+void FunTemplate( KPP_REAL T, KPP_REAL Y[], KPP_REAL Ydot[] )
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
+    Template for the ODE function call.
+    Updates the rate coefficients (and possibly the fixed species) at each call    
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/   
+{
+   KPP_REAL Told;     
+
+   Told = TIME;
+   TIME = T;
+   Update_SUN();
+   Update_RCONST();
+   Fun( Y, FIX, RCONST, Ydot );
+   TIME = Told;
+     
+   Nfun++;
+   
+}  /*  FunTemplate */
+
+ 
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/   
+void JacTemplate( KPP_REAL T, KPP_REAL Y[], KPP_REAL Jcb[] )
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+    Template for the ODE Jacobian call.
+    Updates the rate coefficients (and possibly the fixed species) at each call    
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/   
+{
+  /*~~~> Local variables */
+   KPP_REAL Told;     
+
+   Told = TIME;
+   TIME = T ; 
+   Update_SUN();
+   Update_RCONST();
+   Jac_SP( Y, FIX, RCONST, Jcb );
+   TIME = Told;
+     
+   Njac++;
+
+} /* JacTemplate   */                                    
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/rosenbrock.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/rosenbrock.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/rosenbrock.def	(revision 2696)
@@ -0,0 +1,23 @@
+ 
+#FUNCTION AGGREGATE
+#JACOBIAN SPARSE_LU_ROW
+
+#DOUBLE ON 
+#INTFILE rosenbrock
+
+#INLINE F77_GLOBAL
+      INTEGER Autonomous
+      COMMON /INTGDATA/ Autonomous
+      REAL*8 STEPSTART
+      COMMON /GDATA/ STEPSTART
+#ENDINLINE
+
+#INLINE F77_INIT
+        STEPMIN=0.0001
+        STEPMAX=3600.
+        Autonomous = 1 
+        STEPSTART=STEPMIN
+#ENDINLINE
+
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/rosenbrock.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/rosenbrock.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/rosenbrock.f	(revision 2696)
@@ -0,0 +1,1286 @@
+      SUBROUTINE INTEGRATE( TIN, TOUT )
+
+      IMPLICIT NONE	 
+      INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Global.h'
+      INTEGER Nstp, Nacc, Nrej, Nsng, IERR
+      SAVE Nstp, Nacc, Nrej, Nsng
+
+! TIN - Start Time
+      KPP_REAL TIN
+! TOUT - End Time
+      KPP_REAL TOUT
+      INTEGER i
+
+      KPP_REAL  RPAR(20)
+      INTEGER  IPAR(20)
+      EXTERNAL  FunTemplate, JacTemplate
+
+
+      DO i=1,20
+        IPAR(i) = 0
+        RPAR(i) = 0.0d0
+      ENDDO
+      
+      
+      IPAR(1) = 0       ! non-autonomous
+      IPAR(2) = 1       ! vector tolerances
+      RPAR(3) = STEPMIN ! starting step
+      IPAR(4) = 5       ! choice of the method
+
+      CALL Rosenbrock(VAR,TIN,TOUT,
+     &            ATOL,RTOL,
+     &            FunTemplate,JacTemplate,
+     &            RPAR,IPAR,IERR)
+
+	        
+      Nstp = Nstp + IPAR(13)
+      Nacc = Nacc + IPAR(14)
+      Nrej = Nrej + IPAR(15)
+      Nsng = Nsng + IPAR(18)
+      PRINT*,'Step=',Nstp,' Acc=',Nacc,' Rej=',Nrej,
+     &      ' Singular=',Nsng
+
+
+      IF (IERR.LT.0) THEN
+        print *,'Rosenbrock: Unsucessful step at T=',
+     &          TIN,' (IERR=',IERR,')'
+      ENDIF
+      
+      TIN = RPAR(11) ! Exit time
+      STEPMIN = RPAR(12)
+      
+      RETURN
+      END
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE Rosenbrock(Y,Tstart,Tend,
+     &            AbsTol,RelTol,
+     &            ode_Fun,ode_Jac ,
+     &            RPAR,IPAR,IERR)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!      
+!    Solves the system y'=F(t,y) using a Rosenbrock method defined by:
+!
+!     G = 1/(H*gamma(1)) - ode_Jac(t0,Y0)
+!     T_i = t0 + Alpha(i)*H
+!     Y_i = Y0 + \sum_{j=1}^{i-1} A(i,j)*K_j
+!     G * K_i = ode_Fun( T_i, Y_i ) + \sum_{j=1}^S C(i,j)/H * K_j +
+!                  gamma(i)*dF/dT(t0, Y0)
+!     Y1 = Y0 + \sum_{j=1}^S M(j)*K_j 
+!
+!    For details on Rosenbrock methods and their implementation consult:
+!         E. Hairer and G. Wanner
+!         "Solving ODEs II. Stiff and differential-algebraic problems".
+!         Springer series in computational mathematics, Springer-Verlag, 1996.  
+!    The codes contained in the book inspired this implementation.             
+!
+!    (C)  Adrian Sandu, August 2004
+!    Virginia Polytechnic Institute and State University    
+!    Contact: sandu@cs.vt.edu
+!    This implementation is part of KPP - the Kinetic PreProcessor
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!       
+!~~~>      INPUT ARGUMENTS: 
+!       
+!-     Y(NVAR)       = vector of initial conditions (at T=Tstart)
+!-    [Tstart,Tend]  = time range of integration
+!        (if Tstart>Tend the integration is performed backwards in time)  
+!-    RelTol, AbsTol = user precribed accuracy
+!-    SUBROUTINE ode_Fun( T, Y, Ydot ) = ODE function, 
+!                                         returns Ydot = Y' = F(T,Y) 
+!-    SUBROUTINE ode_Fun( T, Y, Ydot ) = Jacobian of the ODE function,
+!                                         returns Jcb = dF/dY 
+!-    IPAR(1:10)    = integer inputs parameters
+!-    RPAR(1:10)    = real inputs parameters
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>     OUTPUT ARGUMENTS:  
+!        
+!-    Y(NVAR)       -> vector of final states (at T->Tend)
+!-    IPAR(11:20)   -> integer output parameters
+!-    RPAR(11:20)   -> real output parameters
+!-    IERR          -> job status upon return
+!          - succes (positive value) or failure (negative value) -
+!                    =  1 : Success
+!                    = -1 : Improper value for maximal no of steps
+!                    = -2 : Selected Rosenbrock method not implemented
+!                    = -3 : Hmin/Hmax/Hstart must be positive
+!                    = -4 : FacMin/FacMax/FacRej must be positive
+!                    = -5 : Improper tolerance values
+!                    = -6 : No of steps exceeds maximum bound
+!                    = -7 : Step size too small
+!                    = -8 : Matrix is repeatedly singular
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+!~~~>     INPUT PARAMETERS:
+!
+!    Note: For input parameters equal to zero the default values of the
+!          corresponding variables are used.
+!
+!    IPAR(1)   = 1: F = F(y)   Independent of T (AUTONOMOUS)
+!              = 0: F = F(t,y) Depends on T (NON-AUTONOMOUS)
+!    IPAR(2)   = 0: AbsTol, RelTol are NVAR-dimensional vectors
+!              = 1:  AbsTol, RelTol are scalars
+!    IPAR(3)  -> maximum number of integration steps
+!              For IPAR(3)=0) the default value of 100000 is used
+!
+!    IPAR(4)  -> selection of a particular Rosenbrock method
+!              = 0 :  default method is Rodas3
+!              = 1 :  method is  Ros2
+!              = 2 :  method is  Ros3 
+!              = 3 :  method is  Ros4 
+!              = 4 :  method is  Rodas3
+!              = 5:   method is  Rodas4
+!
+!    RPAR(1)  -> Hmin, lower bound for the integration step size
+!                It is strongly recommended to keep Hmin = ZERO 
+!    RPAR(2)  -> Hmax, upper bound for the integration step size
+!    RPAR(3)  -> Hstart, starting value for the integration step size
+!                
+!    RPAR(4)  -> FacMin, lower bound on step decrease factor (default=0.2)
+!    RPAR(5)  -> FacMin,upper bound on step increase factor (default=6)
+!    RPAR(6)  -> FacRej, step decrease factor after multiple rejections
+!                        (default=0.1)
+!    RPAR(7)  -> FacSafe, by which the new step is slightly smaller 
+!                  than the predicted value  (default=0.9)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+!~~~>     OUTPUT PARAMETERS:
+!
+!    Note: each call to Rosenbrock adds the corrent no. of fcn calls
+!         to previous value of IPAR(11), and similar for the other params.
+!         Set IPAR(11:20) = 0 before call to avoid this accumulation.
+!
+!    IPAR(11) = No. of function calls
+!    IPAR(12) = No. of jacobian calls
+!    IPAR(13) = No. of steps
+!    IPAR(14) = No. of accepted steps
+!    IPAR(15) = No. of rejected steps (except at the beginning)
+!    IPAR(16) = No. of LU decompositions
+!    IPAR(17) = No. of forward/backward substitutions
+!    IPAR(18) = No. of singular matrix decompositions
+!
+!    RPAR(11)  -> Texit, the time corresponding to the 
+!                        computed Y upon return
+!    RPAR(12)  -> Hexit, last accepted step before exit
+!    For multiple restarts, use Hexit as Hstart in the following run 
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      IMPLICIT NONE
+      INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Sparse.h'
+      
+      KPP_REAL Tstart,Tend
+      KPP_REAL Y(KPP_NVAR),AbsTol(KPP_NVAR),RelTol(KPP_NVAR)
+      INTEGER IPAR(20)
+      KPP_REAL RPAR(20)
+      INTEGER IERR
+!~~~>  The method parameters      
+      INTEGER Smax
+      PARAMETER (Smax = 6)
+      INTEGER  Method, ros_S
+      KPP_REAL ros_M(Smax), ros_E(Smax)
+      KPP_REAL ros_A(Smax*(Smax-1)/2), ros_C(Smax*(Smax-1)/2)
+      KPP_REAL ros_Alpha(Smax), ros_Gamma(Smax), ros_ELO
+      LOGICAL  ros_NewF(Smax)
+      CHARACTER*12 ros_Name
+!~~~>  Local variables     
+      KPP_REAL Roundoff,FacMin,FacMax,FacRej,FacSafe
+      KPP_REAL Hmin, Hmax, Hstart, Hexit
+      KPP_REAL Texit
+      INTEGER i, UplimTol, Max_no_steps
+      LOGICAL Autonomous, VectorTol
+!~~~>   Statistics on the work performed
+      INTEGER Nfun,Njac,Nstp,Nacc,Nrej,Ndec,Nsol,Nsng
+      COMMON /Statistics/ Nfun,Njac,Nstp,Nacc,Nrej,
+     &       Ndec,Nsol,Nsng
+!~~~>   Parameters
+      KPP_REAL ZERO, ONE, DeltaMin 
+      PARAMETER (ZERO = 0.0d0)
+      PARAMETER (ONE  = 1.0d0)
+      PARAMETER (DeltaMin = 1.0d-5)
+!~~~>   Functions
+      EXTERNAL ode_Fun, ode_Jac
+      KPP_REAL WLAMCH, ros_ErrorNorm
+      EXTERNAL WLAMCH, ros_ErrorNorm
+
+!~~~>  Initialize statistics
+      Nfun = IPAR(11)
+      Njac = IPAR(12)
+      Nstp = IPAR(13)
+      Nacc = IPAR(14)
+      Nrej = IPAR(15)
+      Ndec = IPAR(16)
+      Nsol = IPAR(17)
+      Nsng = IPAR(18)
+      
+!~~~>  Autonomous or time dependent ODE. Default is time dependent.
+      Autonomous = .NOT.(IPAR(1).EQ.0)
+
+!~~~>  For Scalar tolerances (IPAR(2).NE.0)  the code uses AbsTol(1) and RelTol(1)
+!      For Vector tolerances (IPAR(2).EQ.0) the code uses AbsTol(1:NVAR) and RelTol(1:NVAR)
+      IF (IPAR(2).EQ.0) THEN
+         VectorTol = .TRUE.
+	 UplimTol  = KPP_NVAR
+      ELSE 
+         VectorTol = .FALSE.
+	 UplimTol  = 1
+      END IF
+      
+!~~~>   The maximum number of steps admitted
+      IF (IPAR(3).EQ.0) THEN
+         Max_no_steps = 100000
+      ELSEIF (Max_no_steps.GT.0) THEN
+         Max_no_steps=IPAR(3)
+      ELSE 
+         WRITE(6,*)'User-selected max no. of steps: IPAR(3)=',IPAR(3)
+         CALL ros_ErrorMsg(-1,Tstart,ZERO,IERR)
+	 RETURN         
+      END IF
+
+!~~~>  The particular Rosenbrock method chosen
+      IF (IPAR(4).EQ.0) THEN
+         Method = 3
+      ELSEIF ( (IPAR(4).GE.1).AND.(IPAR(4).LE.5) ) THEN
+         Method = IPAR(4)
+      ELSE  
+         WRITE (6,*) 'User-selected Rosenbrock method: IPAR(4)=', Method
+         CALL ros_ErrorMsg(-2,Tstart,ZERO,IERR)
+	 RETURN         
+      END IF
+      
+!~~~>  Unit roundoff (1+Roundoff>1)  
+      Roundoff = WLAMCH('E')
+
+!~~~>  Lower bound on the step size: (positive value)
+      IF (RPAR(1).EQ.ZERO) THEN
+         Hmin = ZERO
+      ELSEIF (RPAR(1).GT.ZERO) THEN 
+         Hmin = RPAR(1)
+      ELSE	 
+         WRITE (6,*) 'User-selected Hmin: RPAR(1)=', RPAR(1)
+         CALL ros_ErrorMsg(-3,Tstart,ZERO,IERR)
+	 RETURN         
+      END IF
+!~~~>  Upper bound on the step size: (positive value)
+      IF (RPAR(2).EQ.ZERO) THEN
+         Hmax = ABS(Tend-Tstart)
+      ELSEIF (RPAR(2).GT.ZERO) THEN
+         Hmax = MIN(ABS(RPAR(2)),ABS(Tend-Tstart))
+      ELSE	 
+         WRITE (6,*) 'User-selected Hmax: RPAR(2)=', RPAR(2)
+         CALL ros_ErrorMsg(-3,Tstart,ZERO,IERR)
+	 RETURN         
+      END IF
+!~~~>  Starting step size: (positive value)
+      IF (RPAR(3).EQ.ZERO) THEN
+         Hstart = MAX(Hmin,DeltaMin)
+      ELSEIF (RPAR(3).GT.ZERO) THEN
+         Hstart = MIN(ABS(RPAR(3)),ABS(Tend-Tstart))
+      ELSE	 
+         WRITE (6,*) 'User-selected Hstart: RPAR(3)=', RPAR(3)
+         CALL ros_ErrorMsg(-3,Tstart,ZERO,IERR)
+	 RETURN         
+      END IF
+!~~~>  Step size can be changed s.t.  FacMin < Hnew/Hexit < FacMax 
+      IF (RPAR(4).EQ.ZERO) THEN
+         FacMin = 0.2d0
+      ELSEIF (RPAR(4).GT.ZERO) THEN
+         FacMin = RPAR(4)
+      ELSE	 
+         WRITE (6,*) 'User-selected FacMin: RPAR(4)=', RPAR(4)
+         CALL ros_ErrorMsg(-4,Tstart,ZERO,IERR)
+	 RETURN         
+      END IF
+      IF (RPAR(5).EQ.ZERO) THEN
+         FacMax = 6.0d0
+      ELSEIF (RPAR(5).GT.ZERO) THEN
+         FacMax = RPAR(5)
+      ELSE	 
+         WRITE (6,*) 'User-selected FacMax: RPAR(5)=', RPAR(5)
+         CALL ros_ErrorMsg(-4,Tstart,ZERO,IERR)
+	 RETURN         
+      END IF
+!~~~>   FacRej: Factor to decrease step after 2 succesive rejections
+      IF (RPAR(6).EQ.ZERO) THEN
+         FacRej = 0.1d0
+      ELSEIF (RPAR(6).GT.ZERO) THEN
+         FacRej = RPAR(6)
+      ELSE	 
+         WRITE (6,*) 'User-selected FacRej: RPAR(6)=', RPAR(6)
+         CALL ros_ErrorMsg(-4,Tstart,ZERO,IERR)
+	 RETURN         
+      END IF
+!~~~>   FacSafe: Safety Factor in the computation of new step size
+      IF (RPAR(7).EQ.ZERO) THEN
+         FacSafe = 0.9d0
+      ELSEIF (RPAR(7).GT.ZERO) THEN
+         FacSafe = RPAR(7)
+      ELSE	 
+         WRITE (6,*) 'User-selected FacSafe: RPAR(7)=', RPAR(7)
+         CALL ros_ErrorMsg(-4,Tstart,ZERO,IERR)
+	 RETURN         
+      END IF
+!~~~>  Check if tolerances are reasonable
+       DO i=1,UplimTol
+         IF ( (AbsTol(i).LE.ZERO) .OR. (RelTol(i).LE.10.d0*Roundoff)
+     &          .OR. (RelTol(i).GE.1.0d0) ) THEN
+            WRITE (6,*) ' AbsTol(',i,') = ',AbsTol(i)
+            WRITE (6,*) ' RelTol(',i,') = ',RelTol(i)
+            CALL ros_ErrorMsg(-5,Tstart,ZERO,IERR)
+	    RETURN
+         END IF
+       END DO
+     
+ 
+!~~~>   Initialize the particular Rosenbrock method
+
+      IF (Method .EQ. 1) THEN
+         CALL Ros2(ros_S, ros_A, ros_C, ros_M, ros_E, 
+     &             ros_Alpha, ros_Gamma, ros_NewF, ros_ELO, ros_Name)
+      ELSEIF (Method .EQ. 2) THEN
+         CALL Ros3(ros_S, ros_A, ros_C, ros_M, ros_E, 
+     &             ros_Alpha, ros_Gamma, ros_NewF, ros_ELO, ros_Name)
+      ELSEIF (Method .EQ. 3) THEN
+         CALL Ros4(ros_S, ros_A, ros_C, ros_M, ros_E, 
+     &             ros_Alpha, ros_Gamma, ros_NewF, ros_ELO, ros_Name)
+      ELSEIF (Method .EQ. 4) THEN
+         CALL Rodas3(ros_S, ros_A, ros_C, ros_M, ros_E, 
+     &             ros_Alpha, ros_Gamma, ros_NewF, ros_ELO, ros_Name)
+      ELSEIF (Method .EQ. 5) THEN
+         CALL Rodas4(ros_S, ros_A, ros_C, ros_M, ros_E, 
+     &             ros_Alpha, ros_Gamma, ros_NewF, ros_ELO, ros_Name)
+      ELSE
+         WRITE (6,*) 'Unknown Rosenbrock method: IPAR(4)=', Method
+         CALL ros_ErrorMsg(-2,Tstart,ZERO,IERR) 
+	 RETURN        
+      END IF
+
+!~~~>  CALL Rosenbrock method   
+      CALL RosenbrockIntegrator(Y,Tstart,Tend,Texit,
+     &      AbsTol,RelTol,
+     &      ode_Fun,ode_Jac ,
+!  Rosenbrock method coefficients     
+     &      ros_S, ros_M, ros_E, ros_A, ros_C, 
+     &      ros_Alpha, ros_Gamma, ros_ELO, ros_NewF,
+!  Integration parameters
+     &      Autonomous, VectorTol, Max_no_steps,
+     &      Roundoff, Hmin, Hmax, Hstart, Hexit,
+     &      FacMin, FacMax, FacRej, FacSafe,  
+!  Error indicator
+     &      IERR)
+
+
+!~~~>  Collect run statistics
+      IPAR(11) = Nfun
+      IPAR(12) = Njac
+      IPAR(13) = Nstp
+      IPAR(14) = Nacc
+      IPAR(15) = Nrej
+      IPAR(16) = Ndec
+      IPAR(17) = Nsol
+      IPAR(18) = Nsng
+!~~~> Last T and H
+      RPAR(11) = Texit
+      RPAR(12) = Hexit       
+      
+      RETURN
+      END  !  SUBROUTINE Rosenbrock
+
+      
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE RosenbrockIntegrator(Y,Tstart,Tend,T,
+     &      AbsTol,RelTol,
+     &      ode_Fun,ode_Jac ,
+!~~~> Rosenbrock method coefficients     
+     &      ros_S, ros_M, ros_E, ros_A, ros_C, 
+     &      ros_Alpha, ros_Gamma, ros_ELO, ros_NewF,
+!~~~> Integration parameters
+     &      Autonomous, VectorTol, Max_no_steps,
+     &      Roundoff, Hmin, Hmax, Hstart, Hexit,
+     &      FacMin, FacMax, FacRej, FacSafe,  
+!~~~> Error indicator
+     &      IERR)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!   Template for the implementation of a generic Rosenbrock method 
+!            defined by ros_S (no of stages)  
+!            and its coefficients ros_{A,C,M,E,Alpha,Gamma}
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      IMPLICIT NONE
+      INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Sparse.h'
+      
+!~~~> Input: the initial condition at Tstart; Output: the solution at T      
+      KPP_REAL Y(KPP_NVAR)
+!~~~> Input: integration interval   
+      KPP_REAL Tstart,Tend         
+!~~~> Output: time at which the solution is returned (T=Tend if success)   
+      KPP_REAL T         
+!~~~> Input: tolerances            
+      KPP_REAL  AbsTol(KPP_NVAR), RelTol(KPP_NVAR)
+!~~~> Input: ode function and its Jacobian            
+      EXTERNAL ode_Fun, ode_Jac
+!~~~> Input: The Rosenbrock method parameters      
+      INTEGER  ros_S
+      KPP_REAL ros_M(ros_S), ros_E(ros_S) 
+      KPP_REAL ros_A(ros_S*(ros_S-1)/2), ros_C(ros_S*(ros_S-1)/2)
+      KPP_REAL ros_Alpha(ros_S), ros_Gamma(ros_S), ros_ELO
+      LOGICAL ros_NewF(ros_S)
+!~~~> Input: integration parameters      
+      LOGICAL Autonomous, VectorTol
+      KPP_REAL Hstart, Hmin, Hmax
+      INTEGER Max_no_steps
+      KPP_REAL Roundoff, FacMin, FacMax, FacRej, FacSafe 
+!~~~> Output: last accepted step      
+      KPP_REAL Hexit 
+!~~~> Output: Error indicator
+      INTEGER IERR
+! ~~~~ Local variables           
+      KPP_REAL Ynew(KPP_NVAR), Fcn0(KPP_NVAR), Fcn(KPP_NVAR),
+     &       K(KPP_NVAR*ros_S), dFdT(KPP_NVAR),
+     &       Jac0(KPP_LU_NONZERO), Ghimj(KPP_LU_NONZERO)
+      KPP_REAL H, Hnew, HC, HG, Fac, Tau 
+      KPP_REAL Err, Yerr(KPP_NVAR)
+      INTEGER Pivot(KPP_NVAR), Direction, ioffset, j, istage
+      LOGICAL RejectLastH, RejectMoreH, Singular
+!~~~>  Local parameters
+      KPP_REAL ZERO, ONE, DeltaMin 
+      PARAMETER (ZERO = 0.0d0)
+      PARAMETER (ONE  = 1.0d0)
+      PARAMETER (DeltaMin = 1.0d-5)
+!~~~>  Locally called functions
+      KPP_REAL WLAMCH, ros_ErrorNorm
+      EXTERNAL WLAMCH, ros_ErrorNorm
+!~~~>  Statistics on the work performed
+      INTEGER Nfun,Njac,Nstp,Nacc,Nrej,Ndec,Nsol,Nsng
+      COMMON /Statistics/ Nfun,Njac,Nstp,Nacc,Nrej,
+     &       Ndec,Nsol,Nsng
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      
+!~~~>  INITIAL PREPARATIONS
+      T = Tstart
+      Hexit = 0.0d0
+      H = MIN(Hstart,Hmax) 
+      IF (ABS(H).LE.10.d0*Roundoff) THEN
+           H = DeltaMin
+      END IF	   
+      
+      IF (Tend .GE. Tstart) THEN
+        Direction = +1
+      ELSE
+        Direction = -1
+      END IF		
+
+      RejectLastH=.FALSE.
+      RejectMoreH=.FALSE.
+   
+!~~~> Time loop begins below 
+
+      DO WHILE ( (Direction.GT.0).AND.((T-Tend)+Roundoff.LE.ZERO)
+     &     .OR. (Direction.LT.0).AND.((Tend-T)+Roundoff.LE.ZERO) ) 
+         
+      IF ( Nstp.GT.Max_no_steps ) THEN  ! Too many steps
+	CALL ros_ErrorMsg(-6,T,H,IERR)
+	RETURN
+      END IF
+      IF ( ((T+0.1d0*H).EQ.T).OR.(H.LE.Roundoff) ) THEN  ! Step size too small
+	CALL ros_ErrorMsg(-7,T,H,IERR)
+	RETURN
+      END IF
+      
+!~~~>  Limit H if necessary to avoid going beyond Tend   
+      Hexit = H
+      H = MIN(H,ABS(Tend-T))
+
+!~~~>   Compute the function at current time
+      CALL ode_Fun(T,Y,Fcn0)
+
+!~~~>  Compute the function derivative with respect to T
+      IF (.NOT.Autonomous) THEN
+         CALL ros_FunTimeDerivative ( T, Roundoff, Y, 
+     &                       Fcn0, ode_Fun, dFdT )
+      END IF
+  
+!~~~>   Compute the Jacobian at current time
+      CALL ode_Jac(T,Y,Jac0)
+ 
+!~~~>  Repeat step calculation until current step accepted
+      DO WHILE (.TRUE.) ! WHILE STEP NOT ACCEPTED
+
+      
+      CALL ros_PrepareMatrix(H,Direction,ros_Gamma(1),
+     &              Jac0,Ghimj,Pivot,Singular)
+      IF (Singular) THEN ! More than 5 consecutive failed decompositions
+	 CALL ros_ErrorMsg(-8,T,H,IERR)
+	 RETURN
+      END IF
+
+!~~~>   Compute the stages
+      DO istage = 1, ros_S
+         
+	 ! Current istage offset. Current istage vector is K(ioffset+1:ioffset+KPP_NVAR)
+	 ioffset = KPP_NVAR*(istage-1)
+	 
+	 ! For the 1st istage the function has been computed previously
+	 IF ( istage.EQ.1 ) THEN
+	   CALL WCOPY(KPP_NVAR,Fcn0,1,Fcn,1)
+	 ! istage>1 and a new function evaluation is needed at the current istage
+	 ELSEIF ( ros_NewF(istage) ) THEN
+	   CALL WCOPY(KPP_NVAR,Y,1,Ynew,1)
+	   DO j = 1, istage-1
+	     CALL WAXPY(KPP_NVAR,ros_A((istage-1)*(istage-2)/2+j),
+     &                   K(KPP_NVAR*(j-1)+1),1,Ynew,1) 
+	   END DO
+	   Tau = T + ros_Alpha(istage)*Direction*H
+           CALL ode_Fun(Tau,Ynew,Fcn)
+	 END IF ! if istage.EQ.1 elseif ros_NewF(istage)
+	 CALL WCOPY(KPP_NVAR,Fcn,1,K(ioffset+1),1)
+	 DO j = 1, istage-1
+	   HC = ros_C((istage-1)*(istage-2)/2+j)/(Direction*H)
+	   CALL WAXPY(KPP_NVAR,HC,K(KPP_NVAR*(j-1)+1),1,K(ioffset+1),1)
+	 END DO
+         IF ((.NOT. Autonomous).AND.(ros_Gamma(istage).NE.ZERO)) THEN
+           HG = Direction*H*ros_Gamma(istage)
+	   CALL WAXPY(KPP_NVAR,HG,dFdT,1,K(ioffset+1),1)
+         END IF
+         CALL SolveTemplate(Ghimj, Pivot, K(ioffset+1))
+	 
+      END DO  ! istage	    
+	    
+
+!~~~>  Compute the new solution 
+      CALL WCOPY(KPP_NVAR,Y,1,Ynew,1)
+      DO j=1,ros_S
+	 CALL WAXPY(KPP_NVAR,ros_M(j),K(KPP_NVAR*(j-1)+1),1,Ynew,1)
+      END DO
+
+!~~~>  Compute the error estimation 
+      CALL WSCAL(KPP_NVAR,ZERO,Yerr,1)
+      DO j=1,ros_S        
+	CALL WAXPY(KPP_NVAR,ros_E(j),K(KPP_NVAR*(j-1)+1),1,Yerr,1)
+      END DO 
+      Err = ros_ErrorNorm ( Y, Ynew, Yerr, AbsTol, RelTol, VectorTol )
+
+!~~~> New step size is bounded by FacMin <= Hnew/H <= FacMax
+      Fac  = MIN(FacMax,MAX(FacMin,FacSafe/Err**(ONE/ros_ELO)))
+      Hnew = H*Fac  
+
+!~~~>  Check the error magnitude and adjust step size
+      Nstp = Nstp+1
+      IF ( (Err.LE.ONE).OR.(H.LE.Hmin) ) THEN  !~~~> Accept step
+         Nacc = Nacc+1
+	 CALL WCOPY(KPP_NVAR,Ynew,1,Y,1)
+         T = T + Direction*H
+	 Hnew = MAX(Hmin,MIN(Hnew,Hmax))
+         IF (RejectLastH) THEN  ! No step size increase after a rejected step
+	    Hnew = MIN(Hnew,H) 
+	 END IF   
+         RejectLastH = .FALSE.  
+         RejectMoreH = .FALSE.
+         H = Hnew
+	 GOTO 101  ! EXIT THE LOOP: WHILE STEP NOT ACCEPTED
+      ELSE                 !~~~> Reject step
+         IF (RejectMoreH) THEN
+	    Hnew=H*FacRej
+	 END IF   
+         RejectMoreH = RejectLastH
+         RejectLastH = .TRUE.
+         H = Hnew
+         IF (Nacc.GE.1) THEN
+	    Nrej = Nrej+1
+	 END IF    
+      END IF ! Err <= 1
+
+      END DO ! LOOP: WHILE STEP NOT ACCEPTED
+
+101   CONTINUE
+
+      END DO ! Time loop    
+      
+!~~~> Succesful exit
+      IERR = 1  !~~~> The integration was successful
+
+      RETURN
+      END  !  SUBROUTINE RosenbrockIntegrator
+ 
+      
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      KPP_REAL FUNCTION ros_ErrorNorm ( Y, Ynew, Yerr, 
+     &                      AbsTol, RelTol, VectorTol )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> Computes the "scaled norm" of the error vector Yerr
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE	 
+      INCLUDE 'KPP_ROOT_Parameters.h'
+
+! Input arguments   
+      KPP_REAL Y(KPP_NVAR), Ynew(KPP_NVAR), Yerr(KPP_NVAR)
+      KPP_REAL AbsTol(KPP_NVAR), RelTol(KPP_NVAR)   
+      LOGICAL  VectorTol
+! Local variables     
+      KPP_REAL Err, Scale, Ymax, ZERO    
+      INTEGER i
+      PARAMETER (ZERO = 0.0d0)
+      
+      Err = ZERO
+      DO i=1,KPP_NVAR
+	Ymax = MAX(ABS(Y(i)),ABS(Ynew(i)))
+        IF (VectorTol) THEN
+          Scale = AbsTol(i)+RelTol(i)*Ymax
+        ELSE
+          Scale = AbsTol(1)+RelTol(1)*Ymax
+        END IF
+        Err = Err+(Yerr(i)/Scale)**2
+      END DO
+      Err  = SQRT(Err/KPP_NVAR)
+
+      ros_ErrorNorm = Err
+      
+      RETURN
+      END ! FUNCTION ros_ErrorNorm
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE ros_FunTimeDerivative ( T, Roundoff, Y, 
+     &                       Fcn0, ode_Fun, dFdT )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> The time partial derivative of the function by finite differences
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE	 
+      INCLUDE 'KPP_ROOT_Parameters.h'
+
+!~~~> Input arguments   
+      KPP_REAL T, Roundoff, Y(KPP_NVAR), Fcn0(KPP_NVAR) 
+      EXTERNAL ode_Fun  
+!~~~> Output arguments      
+      KPP_REAL dFdT(KPP_NVAR)   
+!~~~> Global variables     
+      INTEGER Nfun,Njac,Nstp,Nacc,Nrej,Ndec,Nsol,Nsng
+      COMMON /Statistics/ Nfun,Njac,Nstp,Nacc,Nrej,
+     &       Ndec,Nsol,Nsng     
+!~~~> Local variables     
+      KPP_REAL Delta, DeltaMin, ONE     
+      PARAMETER ( DeltaMin = 1.0d-6 )   
+      PARAMETER ( ONE = 1.0d0 )
+      
+      Delta = SQRT(Roundoff)*MAX(DeltaMin,ABS(T))
+      CALL ode_Fun(T+Delta,Y,dFdT)
+      CALL WAXPY(KPP_NVAR,(-ONE),Fcn0,1,dFdT,1)
+      CALL WSCAL(KPP_NVAR,(ONE/Delta),dFdT,1)
+
+      RETURN
+      END ! SUBROUTINE ros_FunTimeDerivative
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
+      SUBROUTINE ros_PrepareMatrix ( H, Direction, gam, 
+     &                    Jac0, Ghimj, Pivot, Singular )
+! --- --- --- --- --- --- --- --- --- --- --- --- ---
+!  Prepares the LHS matrix for stage calculations
+!  1.  Construct Ghimj = 1/(H*ham) - Jac0
+!         "(Gamma H) Inverse Minus Jacobian"
+!  2.  Repeat LU decomposition of Ghimj until successful.
+!          -half the step size if LU decomposition fails and retry
+!          -exit after 5 consecutive fails
+! --- --- --- --- --- --- --- --- --- --- --- --- ---
+      IMPLICIT NONE	 
+      INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Sparse.h'
+      
+!~~~> Input arguments      
+      KPP_REAL gam, Jac0(KPP_LU_NONZERO)
+      INTEGER  Direction
+!~~~> Output arguments      
+      KPP_REAL Ghimj(KPP_LU_NONZERO)
+      LOGICAL  Singular
+      INTEGER  Pivot(KPP_NVAR)
+!~~~> Inout arguments      
+      KPP_REAL H      ! step size is decreased when LU fails
+!~~~> Global variables     
+      INTEGER Nfun,Njac,Nstp,Nacc,Nrej,Ndec,Nsol,Nsng
+      COMMON /Statistics/ Nfun,Njac,Nstp,Nacc,Nrej,
+     &       Ndec,Nsol,Nsng     
+!~~~> Local variables     
+      INTEGER  i, ising, Nconsecutive
+      KPP_REAL  ghinv, ONE, HALF
+      PARAMETER ( ONE  = 1.0d0 )
+      PARAMETER ( HALF = 0.5d0 )
+      
+      Nconsecutive = 0
+      Singular = .TRUE.
+      
+      DO WHILE (Singular)
+      
+!~~~>    Construct Ghimj = 1/(H*ham) - Jac0
+        CALL WCOPY(KPP_LU_NONZERO,Jac0,1,Ghimj,1)
+        CALL WSCAL(KPP_LU_NONZERO,(-ONE),Ghimj,1)
+        ghinv = ONE/(Direction*H*gam)
+        DO i=1,KPP_NVAR
+          Ghimj(LU_DIAG(i)) = Ghimj(LU_DIAG(i))+ghinv
+        END DO
+!~~~>    Compute LU decomposition 
+        CALL DecompTemplate( Ghimj, Pivot, ising )
+        IF (ising .EQ. 0) THEN
+!~~~>    If successful done 
+	  Singular = .FALSE. 
+	ELSE ! ising .ne. 0
+!~~~>    If unsuccessful half the step size; if 5 consecutive fails then return
+          Nsng = Nsng+1
+          Nconsecutive = Nconsecutive+1
+	  Singular = .TRUE. 
+	  PRINT*,'Warning: LU Decomposition returned ising = ',ising
+          IF (Nconsecutive.LE.5) THEN ! Less than 5 consecutive failed decompositions
+            H = H*HALF
+	  ELSE  ! More than 5 consecutive failed decompositions
+ 	    RETURN
+          END IF  ! Nconsecutive
+        END IF	! ising 
+	 
+      END DO ! WHILE Singular
+
+      RETURN
+      END ! SUBROUTINE ros_PrepareMatrix
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
+      SUBROUTINE ros_ErrorMsg(Code,T,H,IERR)
+      KPP_REAL T, H
+      INTEGER IERR, Code
+      
+      IERR = Code
+      WRITE(6,*) 
+     &   'Forced exit from Rosenbrock due to the following error:' 
+     
+      IF    (Code .EQ. -1) THEN   
+         WRITE(6,*) '--> Improper value for maximal no of steps'
+      ELSEIF (Code .EQ. -2) THEN   
+         WRITE(6,*) '--> Selected Rosenbrock method not implemented'
+      ELSEIF (Code .EQ. -3) THEN   
+         WRITE(6,*) '--> Hmin/Hmax/Hstart must be positive'
+      ELSEIF (Code .EQ. -4) THEN   
+         WRITE(6,*) '--> FacMin/FacMax/FacRej must be positive'
+      ELSEIF (Code .EQ. -5) THEN
+         WRITE(6,*) '--> Improper tolerance values'
+      ELSEIF (Code .EQ. -6) THEN
+         WRITE(6,*) '--> No of steps exceeds maximum bound'
+      ELSEIF (Code .EQ. -7) THEN
+         WRITE(6,*) '--> Step size too small: T + 10*H = T',
+     &                ' or H < Roundoff'
+      ELSEIF (Code .EQ. -8) THEN   
+         WRITE(6,*) '--> Matrix is repeatedly singular'
+      ELSE
+         WRITE(6,102) 'Unknown Error code: ',Code
+      END IF
+      
+  102 FORMAT('       ',A,I4)    
+      WRITE(6,103) T, H
+      
+  103 FORMAT('        T=',E15.7,' and H=',E15.7)    
+     
+      RETURN
+      END
+      
+      
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
+      SUBROUTINE Ros2 (ros_S,ros_A,ros_C,ros_M,ros_E,ros_Alpha,
+     &                ros_Gamma,ros_NewF,ros_ELO,ros_Name)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
+! --- AN L-STABLE METHOD, 2 stages, order 2
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
+      IMPLICIT NONE
+      INTEGER S
+      PARAMETER (S=2)
+      INTEGER  ros_S
+      KPP_REAL ros_M(S), ros_E(S), ros_A(S*(S-1)/2), ros_C(S*(S-1)/2)
+      KPP_REAL ros_Alpha(S), ros_Gamma(S), ros_ELO
+      LOGICAL  ros_NewF(S)
+      CHARACTER*12 ros_Name
+      DOUBLE PRECISION g
+      
+       g = 1.0d0 + 1.0d0/SQRT(2.0d0)
+      
+!~~~> Name of the method
+       ros_Name = 'ROS-2'      
+!~~~> Number of stages
+       ros_S = 2
+      
+!~~~> The coefficient matrices A and C are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+!   The general mapping formula is:
+!             A(i,j) = ros_A( (i-1)*(i-2)/2 + j )       
+!             C(i,j) = ros_C( (i-1)*(i-2)/2 + j )  
+      
+       ros_A(1) = (1.d0)/g
+       ros_C(1) = (-2.d0)/g
+!~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+       ros_NewF(1) = .TRUE.
+       ros_NewF(2) = .TRUE.
+!~~~> M_i = Coefficients for new step solution
+       ros_M(1)= (3.d0)/(2.d0*g)
+       ros_M(2)= (1.d0)/(2.d0*g)
+! E_i = Coefficients for error estimator       
+       ros_E(1) = 1.d0/(2.d0*g)
+       ros_E(2) = 1.d0/(2.d0*g)
+!~~~> ros_ELO = estimator of local order - the minimum between the
+!       main and the embedded scheme orders plus one
+       ros_ELO = 2.0d0       
+!~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+       ros_Alpha(1) = 0.0d0
+       ros_Alpha(2) = 1.0d0 
+!~~~> Gamma_i = \sum_j  gamma_{i,j}       
+       ros_Gamma(1) = g
+       ros_Gamma(2) =-g
+      
+      RETURN
+      END ! SUBROUTINE Ros2
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
+      SUBROUTINE Ros3 (ros_S,ros_A,ros_C,ros_M,ros_E,ros_Alpha,
+     &               ros_Gamma,ros_NewF,ros_ELO,ros_Name)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
+! --- AN L-STABLE METHOD, 3 stages, order 3, 2 function evaluations
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
+      IMPLICIT NONE
+      INTEGER S
+      PARAMETER (S=3)
+      INTEGER  ros_S
+      KPP_REAL ros_M(S), ros_E(S), ros_A(S*(S-1)/2), ros_C(S*(S-1)/2)
+      KPP_REAL ros_Alpha(S), ros_Gamma(S), ros_ELO
+      LOGICAL  ros_NewF(S)
+      CHARACTER*12 ros_Name
+      
+!~~~> Name of the method
+      ros_Name = 'ROS-3'      
+!~~~> Number of stages
+      ros_S = 3
+      
+!~~~> The coefficient matrices A and C are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+!   The general mapping formula is:
+!             A(i,j) = ros_A( (i-1)*(i-2)/2 + j )       
+!             C(i,j) = ros_C( (i-1)*(i-2)/2 + j )  
+     
+      ros_A(1)= 1.d0
+      ros_A(2)= 1.d0
+      ros_A(3)= 0.d0
+
+      ros_C(1) = -0.10156171083877702091975600115545d+01
+      ros_C(2) =  0.40759956452537699824805835358067d+01
+      ros_C(3) =  0.92076794298330791242156818474003d+01
+!~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+      ros_NewF(1) = .TRUE.
+      ros_NewF(2) = .TRUE.
+      ros_NewF(3) = .FALSE.
+!~~~> M_i = Coefficients for new step solution
+      ros_M(1) =  0.1d+01
+      ros_M(2) =  0.61697947043828245592553615689730d+01
+      ros_M(3) = -0.42772256543218573326238373806514d+00
+! E_i = Coefficients for error estimator       
+      ros_E(1) =  0.5d+00
+      ros_E(2) = -0.29079558716805469821718236208017d+01
+      ros_E(3) =  0.22354069897811569627360909276199d+00
+!~~~> ros_ELO = estimator of local order - the minimum between the
+!       main and the embedded scheme orders plus 1
+      ros_ELO = 3.0d0       
+!~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+      ros_Alpha(1)= 0.0d+00
+      ros_Alpha(2)= 0.43586652150845899941601945119356d+00
+      ros_Alpha(3)= 0.43586652150845899941601945119356d+00
+!~~~> Gamma_i = \sum_j  gamma_{i,j}       
+      ros_Gamma(1)= 0.43586652150845899941601945119356d+00
+      ros_Gamma(2)= 0.24291996454816804366592249683314d+00
+      ros_Gamma(3)= 0.21851380027664058511513169485832d+01
+      RETURN
+      END ! SUBROUTINE Ros3
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+      SUBROUTINE Ros4 (ros_S,ros_A,ros_C,ros_M,ros_E,ros_Alpha,
+     &               ros_Gamma,ros_NewF,ros_ELO,ros_Name)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+!     L-STABLE ROSENBROCK METHOD OF ORDER 4, WITH 4 STAGES
+!     L-STABLE EMBEDDED ROSENBROCK METHOD OF ORDER 3 
+!
+!         E. HAIRER AND G. WANNER, SOLVING ORDINARY DIFFERENTIAL
+!         EQUATIONS II. STIFF AND DIFFERENTIAL-ALGEBRAIC PROBLEMS.
+!         SPRINGER SERIES IN COMPUTATIONAL MATHEMATICS,
+!         SPRINGER-VERLAG (1990)               
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+
+      IMPLICIT NONE
+      INTEGER S
+      PARAMETER (S=4)
+      INTEGER  ros_S
+      KPP_REAL ros_M(S), ros_E(S), ros_A(S*(S-1)/2), ros_C(S*(S-1)/2)
+      KPP_REAL ros_Alpha(S), ros_Gamma(S), ros_ELO
+      LOGICAL  ros_NewF(S)
+      CHARACTER*12 ros_Name
+      
+!~~~> Name of the method
+      ros_Name = 'ROS-4'      
+!~~~> Number of stages
+      ros_S = 4
+      
+!~~~> The coefficient matrices A and C are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+!   The general mapping formula is:
+!             A(i,j) = ros_A( (i-1)*(i-2)/2 + j )       
+!             C(i,j) = ros_C( (i-1)*(i-2)/2 + j )  
+     
+      ros_A(1) = 0.2000000000000000d+01
+      ros_A(2) = 0.1867943637803922d+01
+      ros_A(3) = 0.2344449711399156d+00
+      ros_A(4) = ros_A(2)
+      ros_A(5) = ros_A(3)
+      ros_A(6) = 0.0D0
+
+      ros_C(1) =-0.7137615036412310d+01
+      ros_C(2) = 0.2580708087951457d+01
+      ros_C(3) = 0.6515950076447975d+00
+      ros_C(4) =-0.2137148994382534d+01
+      ros_C(5) =-0.3214669691237626d+00
+      ros_C(6) =-0.6949742501781779d+00
+!~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+      ros_NewF(1)  = .TRUE.
+      ros_NewF(2)  = .TRUE.
+      ros_NewF(3)  = .TRUE.
+      ros_NewF(4)  = .FALSE.
+!~~~> M_i = Coefficients for new step solution
+      ros_M(1) = 0.2255570073418735d+01
+      ros_M(2) = 0.2870493262186792d+00
+      ros_M(3) = 0.4353179431840180d+00
+      ros_M(4) = 0.1093502252409163d+01
+!~~~> E_i  = Coefficients for error estimator       
+      ros_E(1) =-0.2815431932141155d+00
+      ros_E(2) =-0.7276199124938920d-01
+      ros_E(3) =-0.1082196201495311d+00
+      ros_E(4) =-0.1093502252409163d+01
+!~~~> ros_ELO  = estimator of local order - the minimum between the
+!       main and the embedded scheme orders plus 1
+      ros_ELO  = 4.0d0       
+!~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+      ros_Alpha(1) = 0.D0
+      ros_Alpha(2) = 0.1145640000000000d+01
+      ros_Alpha(3) = 0.6552168638155900d+00
+      ros_Alpha(4) = ros_Alpha(3)
+!~~~> Gamma_i = \sum_j  gamma_{i,j}       
+      ros_Gamma(1) = 0.5728200000000000d+00
+      ros_Gamma(2) =-0.1769193891319233d+01
+      ros_Gamma(3) = 0.7592633437920482d+00
+      ros_Gamma(4) =-0.1049021087100450d+00
+      RETURN
+      END ! SUBROUTINE Ros4
+      
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
+      SUBROUTINE Rodas3 (ros_S,ros_A,ros_C,ros_M,ros_E,ros_Alpha,
+     &                ros_Gamma,ros_NewF,ros_ELO,ros_Name)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
+! --- A STIFFLY-STABLE METHOD, 4 stages, order 3
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
+      IMPLICIT NONE
+      INTEGER S
+      PARAMETER (S=4)
+      INTEGER  ros_S
+      KPP_REAL ros_M(S), ros_E(S), ros_A(S*(S-1)/2), ros_C(S*(S-1)/2)
+      KPP_REAL ros_Alpha(S), ros_Gamma(S), ros_ELO
+      LOGICAL  ros_NewF(S)
+      CHARACTER*12 ros_Name
+      
+!~~~> Name of the method
+      ros_Name = 'RODAS-3'      
+!~~~> Number of stages
+      ros_S = 4
+      
+!~~~> The coefficient matrices A and C are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+!   The general mapping formula is:
+!             A(i,j) = ros_A( (i-1)*(i-2)/2 + j )       
+!             C(i,j) = ros_C( (i-1)*(i-2)/2 + j )  
+ 
+      ros_A(1) = 0.0d+00
+      ros_A(2) = 2.0d+00
+      ros_A(3) = 0.0d+00
+      ros_A(4) = 2.0d+00
+      ros_A(5) = 0.0d+00
+      ros_A(6) = 1.0d+00
+
+      ros_C(1) = 4.0d+00
+      ros_C(2) = 1.0d+00
+      ros_C(3) =-1.0d+00
+      ros_C(4) = 1.0d+00
+      ros_C(5) =-1.0d+00 
+      ros_C(6) =-(8.0d+00/3.0d+00) 
+               
+!~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+      ros_NewF(1)  = .TRUE.
+      ros_NewF(2)  = .FALSE.
+      ros_NewF(3)  = .TRUE.
+      ros_NewF(4)  = .TRUE.
+!~~~> M_i = Coefficients for new step solution
+      ros_M(1) = 2.0d+00
+      ros_M(2) = 0.0d+00
+      ros_M(3) = 1.0d+00
+      ros_M(4) = 1.0d+00
+!~~~> E_i  = Coefficients for error estimator       
+      ros_E(1) = 0.0d+00
+      ros_E(2) = 0.0d+00
+      ros_E(3) = 0.0d+00
+      ros_E(4) = 1.0d+00
+!~~~> ros_ELO  = estimator of local order - the minimum between the
+!       main and the embedded scheme orders plus 1
+      ros_ELO  = 3.0d+00       
+!~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+      ros_Alpha(1) = 0.0d+00
+      ros_Alpha(2) = 0.0d+00
+      ros_Alpha(3) = 1.0d+00
+      ros_Alpha(4) = 1.0d+00
+!~~~> Gamma_i = \sum_j  gamma_{i,j}       
+      ros_Gamma(1) = 0.5d+00
+      ros_Gamma(2) = 1.5d+00
+      ros_Gamma(3) = 0.0d+00
+      ros_Gamma(4) = 0.0d+00
+      RETURN
+      END ! SUBROUTINE Rodas3
+    
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
+      SUBROUTINE Rodas4 (ros_S,ros_A,ros_C,ros_M,ros_E,ros_Alpha,
+     &                 ros_Gamma,ros_NewF,ros_ELO,ros_Name)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+!     STIFFLY-STABLE ROSENBROCK METHOD OF ORDER 4, WITH 6 STAGES
+!
+!         E. HAIRER AND G. WANNER, SOLVING ORDINARY DIFFERENTIAL
+!         EQUATIONS II. STIFF AND DIFFERENTIAL-ALGEBRAIC PROBLEMS.
+!         SPRINGER SERIES IN COMPUTATIONAL MATHEMATICS,
+!         SPRINGER-VERLAG (1996)               
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+
+      IMPLICIT NONE
+      INTEGER S
+      PARAMETER (S=6)
+      INTEGER  ros_S
+      KPP_REAL ros_M(S), ros_E(S), ros_A(S*(S-1)/2), ros_C(S*(S-1)/2)
+      KPP_REAL ros_Alpha(S), ros_Gamma(S), ros_ELO
+      LOGICAL  ros_NewF(S)
+      CHARACTER*12 ros_Name
+
+!~~~> Name of the method
+       ros_Name = 'RODAS-4'      
+!~~~> Number of stages
+       ros_S = 6
+
+!~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+       ros_Alpha(1) = 0.000d0
+       ros_Alpha(2) = 0.386d0
+       ros_Alpha(3) = 0.210d0 
+       ros_Alpha(4) = 0.630d0
+       ros_Alpha(5) = 1.000d0
+       ros_Alpha(6) = 1.000d0
+	
+!~~~> Gamma_i = \sum_j  gamma_{i,j}       
+       ros_Gamma(1) = 0.2500000000000000d+00
+       ros_Gamma(2) =-0.1043000000000000d+00
+       ros_Gamma(3) = 0.1035000000000000d+00
+       ros_Gamma(4) =-0.3620000000000023d-01
+       ros_Gamma(5) = 0.0d0
+       ros_Gamma(6) = 0.0d0
+
+!~~~> The coefficient matrices A and C are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+!   The general mapping formula is:  A(i,j) = ros_A( (i-1)*(i-2)/2 + j )       
+!                                    C(i,j) = ros_C( (i-1)*(i-2)/2 + j )  
+     
+       ros_A(1) = 0.1544000000000000d+01
+       ros_A(2) = 0.9466785280815826d+00
+       ros_A(3) = 0.2557011698983284d+00
+       ros_A(4) = 0.3314825187068521d+01
+       ros_A(5) = 0.2896124015972201d+01
+       ros_A(6) = 0.9986419139977817d+00
+       ros_A(7) = 0.1221224509226641d+01
+       ros_A(8) = 0.6019134481288629d+01
+       ros_A(9) = 0.1253708332932087d+02
+       ros_A(10) =-0.6878860361058950d+00
+       ros_A(11) = ros_A(7)
+       ros_A(12) = ros_A(8)
+       ros_A(13) = ros_A(9)
+       ros_A(14) = ros_A(10)
+       ros_A(15) = 1.0d+00
+
+       ros_C(1) =-0.5668800000000000d+01
+       ros_C(2) =-0.2430093356833875d+01
+       ros_C(3) =-0.2063599157091915d+00
+       ros_C(4) =-0.1073529058151375d+00
+       ros_C(5) =-0.9594562251023355d+01
+       ros_C(6) =-0.2047028614809616d+02
+       ros_C(7) = 0.7496443313967647d+01
+       ros_C(8) =-0.1024680431464352d+02
+       ros_C(9) =-0.3399990352819905d+02
+       ros_C(10) = 0.1170890893206160d+02
+       ros_C(11) = 0.8083246795921522d+01
+       ros_C(12) =-0.7981132988064893d+01
+       ros_C(13) =-0.3152159432874371d+02
+       ros_C(14) = 0.1631930543123136d+02
+       ros_C(15) =-0.6058818238834054d+01
+
+!~~~> M_i = Coefficients for new step solution
+       ros_M(1) = ros_A(7)
+       ros_M(2) = ros_A(8)
+       ros_M(3) = ros_A(9)
+       ros_M(4) = ros_A(10)
+       ros_M(5) = 1.0d+00
+       ros_M(6) = 1.0d+00
+
+!~~~> E_i  = Coefficients for error estimator       
+       ros_E(1) = 0.0d+00
+       ros_E(2) = 0.0d+00
+       ros_E(3) = 0.0d+00
+       ros_E(4) = 0.0d+00
+       ros_E(5) = 0.0d+00
+       ros_E(6) = 1.0d+00
+
+!~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+       ros_NewF(1) = .TRUE.
+       ros_NewF(2) = .TRUE.
+       ros_NewF(3) = .TRUE.
+       ros_NewF(4) = .TRUE.
+       ros_NewF(5) = .TRUE.
+       ros_NewF(6) = .TRUE.
+     
+!~~~> ros_ELO  = estimator of local order - the minimum between the
+!       main and the embedded scheme orders plus 1
+       ros_ELO = 4.0d0
+     
+      RETURN
+      END ! SUBROUTINE Rodas4
+
+      
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
+      SUBROUTINE DecompTemplate( A, Pivot, ising )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
+!  Template for the LU decomposition   
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
+      INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Global.h'
+!~~~> Inout variables     
+      KPP_REAL A(KPP_LU_NONZERO)
+!~~~> Output variables     
+      INTEGER Pivot(KPP_NVAR), ising
+!~~~> Collect statistics      
+      INTEGER Nfun,Njac,Nstp,Nacc,Nrej,Ndec,Nsol,Nsng
+      COMMON /Statistics/ Nfun,Njac,Nstp,Nacc,Nrej,
+     &       Ndec,Nsol,Nsng
+      
+      CALL KppDecomp ( A, ising )
+!~~~> Note: for a full matrix use Lapack:
+!        CALL  DGETRF( KPP_NVAR, KPP_NVAR, A, KPP_NVAR, Pivot, ising ) 
+    
+      Ndec = Ndec + 1
+
+      END ! SUBROUTINE DecompTemplate
+ 
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
+      SUBROUTINE SolveTemplate( A, Pivot, b )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
+!  Template for the forward/backward substitution (using pre-computed LU decomposition)   
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
+      INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Global.h'
+!~~~> Input variables     
+      KPP_REAL A(KPP_LU_NONZERO)
+      INTEGER Pivot(KPP_NVAR)
+!~~~> InOut variables     
+      KPP_REAL b(KPP_NVAR)
+!~~~> Collect statistics      
+      INTEGER Nfun,Njac,Nstp,Nacc,Nrej,Ndec,Nsol,Nsng
+      COMMON /Statistics/ Nfun,Njac,Nstp,Nacc,Nrej,
+     &       Ndec,Nsol,Nsng
+      
+      CALL KppSolve( A, b )
+!~~~> Note: for a full matrix use Lapack:
+!        NRHS = 1
+!        CALL  DGETRS( 'N', KPP_NVAR , NRHS, A, KPP_NVAR, Pivot, b, KPP_NVAR, INFO )
+     
+      Nsol = Nsol+1
+
+      END ! SUBROUTINE SolveTemplate
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
+      SUBROUTINE FunTemplate( T, Y, Ydot )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
+!  Template for the ODE function call.
+!  Updates the rate coefficients (and possibly the fixed species) at each call    
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
+      INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Global.h'
+!~~~> Input variables     
+      KPP_REAL T, Y(KPP_NVAR)
+!~~~> Output variables     
+      KPP_REAL Ydot(KPP_NVAR)
+!~~~> Local variables
+      KPP_REAL Told     
+!~~~> Collect statistics      
+      INTEGER Nfun,Njac,Nstp,Nacc,Nrej,Ndec,Nsol,Nsng
+      COMMON /Statistics/ Nfun,Njac,Nstp,Nacc,Nrej,
+     &       Ndec,Nsol,Nsng
+
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Fun( Y, FIX, RCONST, Ydot )
+      TIME = Told
+     
+      Nfun = Nfun+1
+      
+      RETURN
+      END ! SUBROUTINE FunTemplate
+
+ 
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
+      SUBROUTINE JacTemplate( T, Y, Jcb )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
+!  Template for the ODE Jacobian call.
+!  Updates the rate coefficients (and possibly the fixed species) at each call    
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
+      INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Global.h'
+!~~~> Input variables     
+      KPP_REAL T, Y(KPP_NVAR)
+!~~~> Output variables     
+      KPP_REAL Jcb(KPP_LU_NONZERO)
+!~~~> Local variables
+      KPP_REAL Told     
+!~~~> Collect statistics      
+      INTEGER Nfun,Njac,Nstp,Nacc,Nrej,Ndec,Nsol,Nsng
+      COMMON /Statistics/ Nfun,Njac,Nstp,Nacc,Nrej,
+     &       Ndec,Nsol,Nsng
+
+      Told = TIME
+      TIME = T   
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Jac_SP( Y, FIX, RCONST, Jcb )
+      TIME = Told
+     
+      Njac = Njac+1
+
+      RETURN
+      END !  SUBROUTINE JacTemplate                                                                          
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/rosenbrock.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/rosenbrock.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/rosenbrock.f90	(revision 2696)
@@ -0,0 +1,1308 @@
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
+!  Rosenbrock - Implementation of several Rosenbrock methods:             !
+!               * Ros2                                                    !
+!               * Ros3                                                    !
+!               * Ros4                                                    !
+!               * Rodas3                                                  !
+!               * Rodas4                                                  !
+!  By default the code employs the KPP sparse linear algebra routines     !
+!  Compile with -DFULL_ALGEBRA to use full linear algebra (LAPACK)        !
+!                                                                         !
+!    (C)  Adrian Sandu, August 2004                                       !
+!    Virginia Polytechnic Institute and State University                  !
+!    Contact: sandu@cs.vt.edu                                             !
+!    Revised by Philipp Miehe and Adrian Sandu, May 2006                  !                               !
+!    This implementation is part of KPP - the Kinetic PreProcessor        !
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
+
+MODULE KPP_ROOT_Integrator
+
+  USE KPP_ROOT_Parameters, ONLY: NVAR, NFIX, NSPEC, LU_NONZERO
+  USE KPP_ROOT_Global
+  IMPLICIT NONE
+  PUBLIC
+  SAVE
+  
+!~~~>  Statistics on the work performed by the Rosenbrock method
+  INTEGER, PARAMETER :: Nfun=1, Njac=2, Nstp=3, Nacc=4, &
+                        Nrej=5, Ndec=6, Nsol=7, Nsng=8, &
+                        Ntexit=1, Nhexit=2, Nhnew = 3
+
+CONTAINS
+
+SUBROUTINE INTEGRATE( TIN, TOUT, &
+  ICNTRL_U, RCNTRL_U, ISTATUS_U, RSTATUS_U, IERR_U )
+
+   IMPLICIT NONE
+
+   KPP_REAL, INTENT(IN) :: TIN  ! Start Time
+   KPP_REAL, INTENT(IN) :: TOUT ! End Time
+   ! Optional input parameters and statistics
+   INTEGER,       INTENT(IN),  OPTIONAL :: ICNTRL_U(20)
+   KPP_REAL, INTENT(IN),  OPTIONAL :: RCNTRL_U(20)
+   INTEGER,       INTENT(OUT), OPTIONAL :: ISTATUS_U(20)
+   KPP_REAL, INTENT(OUT), OPTIONAL :: RSTATUS_U(20)
+   INTEGER,       INTENT(OUT), OPTIONAL :: IERR_U
+
+   KPP_REAL :: RCNTRL(20), RSTATUS(20)
+   INTEGER       :: ICNTRL(20), ISTATUS(20), IERR
+
+   INTEGER, SAVE :: Ntotal = 0
+
+   ICNTRL(:)  = 0
+   RCNTRL(:)  = 0.0_dp
+   ISTATUS(:) = 0
+   RSTATUS(:) = 0.0_dp
+
+    !~~~> fine-tune the integrator:
+   ICNTRL(1) = 0	! 0 - non-autonomous, 1 - autonomous
+   ICNTRL(2) = 0	! 0 - vector tolerances, 1 - scalars
+
+   ! If optional parameters are given, and if they are >0, 
+   ! then they overwrite default settings. 
+   IF (PRESENT(ICNTRL_U)) THEN
+     WHERE(ICNTRL_U(:) > 0) ICNTRL(:) = ICNTRL_U(:)
+   END IF
+   IF (PRESENT(RCNTRL_U)) THEN
+     WHERE(RCNTRL_U(:) > 0) RCNTRL(:) = RCNTRL_U(:)
+   END IF
+
+
+   CALL Rosenbrock(NVAR,VAR,TIN,TOUT,   &
+         ATOL,RTOL,                &
+         RCNTRL,ICNTRL,RSTATUS,ISTATUS,IERR)
+
+   !~~~> Debug option: show no of steps
+   ! Ntotal = Ntotal + ISTATUS(Nstp)
+   ! PRINT*,'NSTEPS=',ISTATUS(Nstp),' (',Ntotal,')','  O3=', VAR(ind_O3)
+
+   STEPMIN = RSTATUS(Nhexit)
+   ! if optional parameters are given for output they 
+   ! are updated with the return information
+   IF (PRESENT(ISTATUS_U)) ISTATUS_U(:) = ISTATUS(:)
+   IF (PRESENT(RSTATUS_U)) RSTATUS_U(:) = RSTATUS(:)
+   IF (PRESENT(IERR_U))    IERR_U       = IERR
+
+END SUBROUTINE INTEGRATE
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+SUBROUTINE Rosenbrock(N,Y,Tstart,Tend, &
+           AbsTol,RelTol,              &
+           RCNTRL,ICNTRL,RSTATUS,ISTATUS,IERR)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!    Solves the system y'=F(t,y) using a Rosenbrock method defined by:
+!
+!     G = 1/(H*gamma(1)) - Jac(t0,Y0)
+!     T_i = t0 + Alpha(i)*H
+!     Y_i = Y0 + \sum_{j=1}^{i-1} A(i,j)*K_j
+!     G * K_i = Fun( T_i, Y_i ) + \sum_{j=1}^S C(i,j)/H * K_j +
+!         gamma(i)*dF/dT(t0, Y0)
+!     Y1 = Y0 + \sum_{j=1}^S M(j)*K_j
+!
+!    For details on Rosenbrock methods and their implementation consult:
+!      E. Hairer and G. Wanner
+!      "Solving ODEs II. Stiff and differential-algebraic problems".
+!      Springer series in computational mathematics, Springer-Verlag, 1996.
+!    The codes contained in the book inspired this implementation.
+!
+!    (C)  Adrian Sandu, August 2004
+!    Virginia Polytechnic Institute and State University
+!    Contact: sandu@cs.vt.edu
+!    Revised by Philipp Miehe and Adrian Sandu, May 2006                  
+!    This implementation is part of KPP - the Kinetic PreProcessor
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>   INPUT ARGUMENTS:
+!
+!-     Y(N)    = vector of initial conditions (at T=Tstart)
+!-    [Tstart,Tend]  = time range of integration
+!     (if Tstart>Tend the integration is performed backwards in time)
+!-    RelTol, AbsTol = user precribed accuracy
+!- SUBROUTINE  Fun( T, Y, Ydot ) = ODE function,
+!                       returns Ydot = Y' = F(T,Y)
+!- SUBROUTINE  Jac( T, Y, Jcb ) = Jacobian of the ODE function,
+!                       returns Jcb = dFun/dY
+!-    ICNTRL(1:20)    = integer inputs parameters
+!-    RCNTRL(1:20)    = real inputs parameters
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>     OUTPUT ARGUMENTS:
+!
+!-    Y(N)    -> vector of final states (at T->Tend)
+!-    ISTATUS(1:20)   -> integer output parameters
+!-    RSTATUS(1:20)   -> real output parameters
+!-    IERR            -> job status upon return
+!                        success (positive value) or
+!                        failure (negative value)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>     INPUT PARAMETERS:
+!
+!    Note: For input parameters equal to zero the default values of the
+!       corresponding variables are used.
+!
+!    ICNTRL(1) = 1: F = F(y)   Independent of T (AUTONOMOUS)
+!              = 0: F = F(t,y) Depends on T (NON-AUTONOMOUS)
+!
+!    ICNTRL(2) = 0: AbsTol, RelTol are N-dimensional vectors
+!              = 1: AbsTol, RelTol are scalars
+!
+!    ICNTRL(3)  -> selection of a particular Rosenbrock method
+!        = 0 :    Rodas3 (default)
+!        = 1 :    Ros2
+!        = 2 :    Ros3
+!        = 3 :    Ros4
+!        = 4 :    Rodas3
+!        = 5 :    Rodas4
+!
+!    ICNTRL(4)  -> maximum number of integration steps
+!        For ICNTRL(4)=0) the default value of 100000 is used
+!
+!    RCNTRL(1)  -> Hmin, lower bound for the integration step size
+!          It is strongly recommended to keep Hmin = ZERO
+!    RCNTRL(2)  -> Hmax, upper bound for the integration step size
+!    RCNTRL(3)  -> Hstart, starting value for the integration step size
+!
+!    RCNTRL(4)  -> FacMin, lower bound on step decrease factor (default=0.2)
+!    RCNTRL(5)  -> FacMax, upper bound on step increase factor (default=6)
+!    RCNTRL(6)  -> FacRej, step decrease factor after multiple rejections
+!                          (default=0.1)
+!    RCNTRL(7)  -> FacSafe, by which the new step is slightly smaller
+!         than the predicted value  (default=0.9)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!
+!    OUTPUT ARGUMENTS:
+!    -----------------
+!
+!    T           -> T value for which the solution has been computed
+!                     (after successful return T=Tend).
+!
+!    Y(N)        -> Numerical solution at T
+!
+!    IDID        -> Reports on successfulness upon return:
+!                    = 1 for success
+!                    < 0 for error (value equals error code)
+!
+!    ISTATUS(1)  -> No. of function calls
+!    ISTATUS(2)  -> No. of jacobian calls
+!    ISTATUS(3)  -> No. of steps
+!    ISTATUS(4)  -> No. of accepted steps
+!    ISTATUS(5)  -> No. of rejected steps (except at very beginning)
+!    ISTATUS(6)  -> No. of LU decompositions
+!    ISTATUS(7)  -> No. of forward/backward substitutions
+!    ISTATUS(8)  -> No. of singular matrix decompositions
+!
+!    RSTATUS(1)  -> Texit, the time corresponding to the
+!                     computed Y upon return
+!    RSTATUS(2)  -> Hexit, last accepted step before exit
+!    RSTATUS(3)  -> Hnew, last predicted step (not yet taken)
+!                   For multiple restarts, use Hnew as Hstart 
+!                     in the subsequent run
+!
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  USE KPP_ROOT_Parameters
+  USE KPP_ROOT_LinearAlgebra
+  IMPLICIT NONE
+
+!~~~>  Arguments
+   INTEGER,       INTENT(IN)    :: N
+   KPP_REAL, INTENT(INOUT) :: Y(N)
+   KPP_REAL, INTENT(IN)    :: Tstart,Tend
+   KPP_REAL, INTENT(IN)    :: AbsTol(N),RelTol(N)
+   INTEGER,       INTENT(IN)    :: ICNTRL(20)
+   KPP_REAL, INTENT(IN)    :: RCNTRL(20)
+   INTEGER,       INTENT(INOUT) :: ISTATUS(20)
+   KPP_REAL, INTENT(INOUT) :: RSTATUS(20)
+   INTEGER, INTENT(OUT)   :: IERR
+!~~~>  Parameters of the Rosenbrock method, up to 6 stages
+   INTEGER ::  ros_S, rosMethod
+   INTEGER, PARAMETER :: RS2=1, RS3=2, RS4=3, RD3=4, RD4=5, RG3=6
+   KPP_REAL :: ros_A(15), ros_C(15), ros_M(6), ros_E(6), &
+                    ros_Alpha(6), ros_Gamma(6), ros_ELO
+   LOGICAL :: ros_NewF(6)
+   CHARACTER(LEN=12) :: ros_Name
+!~~~>  Local variables
+   KPP_REAL :: Roundoff, FacMin, FacMax, FacRej, FacSafe
+   KPP_REAL :: Hmin, Hmax, Hstart
+   KPP_REAL :: Texit
+   INTEGER       :: i, UplimTol, Max_no_steps
+   LOGICAL       :: Autonomous, VectorTol
+!~~~>   Parameters
+   KPP_REAL, PARAMETER :: ZERO = 0.0_dp, ONE  = 1.0_dp
+   KPP_REAL, PARAMETER :: DeltaMin = 1.0E-5_dp
+
+!~~~>  Initialize statistics
+   ISTATUS(1:8) = 0
+   RSTATUS(1:3) = ZERO
+
+!~~~>  Autonomous or time dependent ODE. Default is time dependent.
+   Autonomous = .NOT.(ICNTRL(1) == 0)
+
+!~~~>  For Scalar tolerances (ICNTRL(2).NE.0)  the code uses AbsTol(1) and RelTol(1)
+!   For Vector tolerances (ICNTRL(2) == 0) the code uses AbsTol(1:N) and RelTol(1:N)
+   IF (ICNTRL(2) == 0) THEN
+      VectorTol = .TRUE.
+      UplimTol  = N
+   ELSE
+      VectorTol = .FALSE.
+      UplimTol  = 1
+   END IF
+
+!~~~>   Initialize the particular Rosenbrock method selected
+   SELECT CASE (ICNTRL(3))
+     CASE (1)
+       CALL Ros2
+     CASE (2)
+       CALL Ros3
+     CASE (3)
+       CALL Ros4
+     CASE (0,4)
+       CALL Rodas3
+     CASE (5)
+       CALL Rodas4
+     CASE (6)
+       CALL Rang3
+     CASE DEFAULT
+       PRINT * , 'Unknown Rosenbrock method: ICNTRL(3)=',ICNTRL(3) 
+       CALL ros_ErrorMsg(-2,Tstart,ZERO,IERR)
+       RETURN
+   END SELECT
+
+!~~~>   The maximum number of steps admitted
+   IF (ICNTRL(4) == 0) THEN
+      Max_no_steps = 200000
+   ELSEIF (ICNTRL(4) > 0) THEN
+      Max_no_steps=ICNTRL(4)
+   ELSE
+      PRINT * ,'User-selected max no. of steps: ICNTRL(4)=',ICNTRL(4)
+      CALL ros_ErrorMsg(-1,Tstart,ZERO,IERR)
+      RETURN
+   END IF
+
+!~~~>  Unit roundoff (1+Roundoff>1)
+   Roundoff = WLAMCH('E')
+
+!~~~>  Lower bound on the step size: (positive value)
+   IF (RCNTRL(1) == ZERO) THEN
+      Hmin = ZERO
+   ELSEIF (RCNTRL(1) > ZERO) THEN
+      Hmin = RCNTRL(1)
+   ELSE
+      PRINT * , 'User-selected Hmin: RCNTRL(1)=', RCNTRL(1)
+      CALL ros_ErrorMsg(-3,Tstart,ZERO,IERR)
+      RETURN
+   END IF
+!~~~>  Upper bound on the step size: (positive value)
+   IF (RCNTRL(2) == ZERO) THEN
+      Hmax = ABS(Tend-Tstart)
+   ELSEIF (RCNTRL(2) > ZERO) THEN
+      Hmax = MIN(ABS(RCNTRL(2)),ABS(Tend-Tstart))
+   ELSE
+      PRINT * , 'User-selected Hmax: RCNTRL(2)=', RCNTRL(2)
+      CALL ros_ErrorMsg(-3,Tstart,ZERO,IERR)
+      RETURN
+   END IF
+!~~~>  Starting step size: (positive value)
+   IF (RCNTRL(3) == ZERO) THEN
+      Hstart = MAX(Hmin,DeltaMin)
+   ELSEIF (RCNTRL(3) > ZERO) THEN
+      Hstart = MIN(ABS(RCNTRL(3)),ABS(Tend-Tstart))
+   ELSE
+      PRINT * , 'User-selected Hstart: RCNTRL(3)=', RCNTRL(3)
+      CALL ros_ErrorMsg(-3,Tstart,ZERO,IERR)
+      RETURN
+   END IF
+!~~~>  Step size can be changed s.t.  FacMin < Hnew/Hold < FacMax
+   IF (RCNTRL(4) == ZERO) THEN
+      FacMin = 0.2_dp
+   ELSEIF (RCNTRL(4) > ZERO) THEN
+      FacMin = RCNTRL(4)
+   ELSE
+      PRINT * , 'User-selected FacMin: RCNTRL(4)=', RCNTRL(4)
+      CALL ros_ErrorMsg(-4,Tstart,ZERO,IERR)
+      RETURN
+   END IF
+   IF (RCNTRL(5) == ZERO) THEN
+      FacMax = 6.0_dp
+   ELSEIF (RCNTRL(5) > ZERO) THEN
+      FacMax = RCNTRL(5)
+   ELSE
+      PRINT * , 'User-selected FacMax: RCNTRL(5)=', RCNTRL(5)
+      CALL ros_ErrorMsg(-4,Tstart,ZERO,IERR)
+      RETURN
+   END IF
+!~~~>   FacRej: Factor to decrease step after 2 succesive rejections
+   IF (RCNTRL(6) == ZERO) THEN
+      FacRej = 0.1_dp
+   ELSEIF (RCNTRL(6) > ZERO) THEN
+      FacRej = RCNTRL(6)
+   ELSE
+      PRINT * , 'User-selected FacRej: RCNTRL(6)=', RCNTRL(6)
+      CALL ros_ErrorMsg(-4,Tstart,ZERO,IERR)
+      RETURN
+   END IF
+!~~~>   FacSafe: Safety Factor in the computation of new step size
+   IF (RCNTRL(7) == ZERO) THEN
+      FacSafe = 0.9_dp
+   ELSEIF (RCNTRL(7) > ZERO) THEN
+      FacSafe = RCNTRL(7)
+   ELSE
+      PRINT * , 'User-selected FacSafe: RCNTRL(7)=', RCNTRL(7)
+      CALL ros_ErrorMsg(-4,Tstart,ZERO,IERR)
+      RETURN
+   END IF
+!~~~>  Check if tolerances are reasonable
+    DO i=1,UplimTol
+      IF ( (AbsTol(i) <= ZERO) .OR. (RelTol(i) <= 10.0_dp*Roundoff) &
+         .OR. (RelTol(i) >= 1.0_dp) ) THEN
+        PRINT * , ' AbsTol(',i,') = ',AbsTol(i)
+        PRINT * , ' RelTol(',i,') = ',RelTol(i)
+        CALL ros_ErrorMsg(-5,Tstart,ZERO,IERR)
+        RETURN
+      END IF
+    END DO
+
+
+!~~~>  CALL Rosenbrock method
+   CALL ros_Integrator(Y, Tstart, Tend, Texit,   &
+        AbsTol, RelTol,                          &
+!  Integration parameters
+        Autonomous, VectorTol, Max_no_steps,     &
+        Roundoff, Hmin, Hmax, Hstart,            &
+        FacMin, FacMax, FacRej, FacSafe,         &
+!  Error indicator
+        IERR)
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+CONTAINS !  SUBROUTINES internal to Rosenbrock
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+ SUBROUTINE ros_ErrorMsg(Code,T,H,IERR)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+!    Handles all error messages
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+  
+   KPP_REAL, INTENT(IN) :: T, H
+   INTEGER, INTENT(IN)  :: Code
+   INTEGER, INTENT(OUT) :: IERR
+   
+   IERR = Code
+   PRINT * , &
+     'Forced exit from Rosenbrock due to the following error:' 
+     
+   SELECT CASE (Code)
+    CASE (-1)    
+      PRINT * , '--> Improper value for maximal no of steps'
+    CASE (-2)    
+      PRINT * , '--> Selected Rosenbrock method not implemented'
+    CASE (-3)    
+      PRINT * , '--> Hmin/Hmax/Hstart must be positive'
+    CASE (-4)    
+      PRINT * , '--> FacMin/FacMax/FacRej must be positive'
+    CASE (-5) 
+      PRINT * , '--> Improper tolerance values'
+    CASE (-6) 
+      PRINT * , '--> No of steps exceeds maximum bound'
+    CASE (-7) 
+      PRINT * , '--> Step size too small: T + 10*H = T', &
+            ' or H < Roundoff'
+    CASE (-8)    
+      PRINT * , '--> Matrix is repeatedly singular'
+    CASE DEFAULT
+      PRINT *, 'Unknown Error code: ', Code
+   END SELECT
+   
+   PRINT *, "T=", T, "and H=", H
+     
+ END SUBROUTINE ros_ErrorMsg
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE ros_Integrator (Y, Tstart, Tend, T,  &
+        AbsTol, RelTol,                          &
+!~~~> Integration parameters
+        Autonomous, VectorTol, Max_no_steps,     &
+        Roundoff, Hmin, Hmax, Hstart,            &
+        FacMin, FacMax, FacRej, FacSafe,         &
+!~~~> Error indicator
+        IERR )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!   Template for the implementation of a generic Rosenbrock method
+!      defined by ros_S (no of stages)
+!      and its coefficients ros_{A,C,M,E,Alpha,Gamma}
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  IMPLICIT NONE
+
+!~~~> Input: the initial condition at Tstart; Output: the solution at T
+   KPP_REAL, INTENT(INOUT) :: Y(N)
+!~~~> Input: integration interval
+   KPP_REAL, INTENT(IN) :: Tstart,Tend
+!~~~> Output: time at which the solution is returned (T=Tend if success)
+   KPP_REAL, INTENT(OUT) ::  T
+!~~~> Input: tolerances
+   KPP_REAL, INTENT(IN) ::  AbsTol(N), RelTol(N)
+!~~~> Input: integration parameters
+   LOGICAL, INTENT(IN) :: Autonomous, VectorTol
+   KPP_REAL, INTENT(IN) :: Hstart, Hmin, Hmax
+   INTEGER, INTENT(IN) :: Max_no_steps
+   KPP_REAL, INTENT(IN) :: Roundoff, FacMin, FacMax, FacRej, FacSafe
+!~~~> Output: Error indicator
+   INTEGER, INTENT(OUT) :: IERR
+! ~~~~ Local variables
+   KPP_REAL :: Ynew(N), Fcn0(N), Fcn(N)
+   KPP_REAL :: K(N*ros_S), dFdT(N)
+#ifdef FULL_ALGEBRA    
+   KPP_REAL :: Jac0(N,N), Ghimj(N,N)
+#else
+   KPP_REAL :: Jac0(LU_NONZERO), Ghimj(LU_NONZERO)
+#endif
+   KPP_REAL :: H, Hnew, HC, HG, Fac, Tau
+   KPP_REAL :: Err, Yerr(N)
+   INTEGER :: Pivot(N), Direction, ioffset, j, istage
+   LOGICAL :: RejectLastH, RejectMoreH, Singular
+!~~~>  Local parameters
+   KPP_REAL, PARAMETER :: ZERO = 0.0_dp, ONE  = 1.0_dp
+   KPP_REAL, PARAMETER :: DeltaMin = 1.0E-5_dp
+!~~~>  Locally called functions
+!    KPP_REAL WLAMCH
+!    EXTERNAL WLAMCH
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+!~~~>  Initial preparations
+   T = Tstart
+   RSTATUS(Nhexit) = ZERO
+   H = MIN( MAX(ABS(Hmin),ABS(Hstart)) , ABS(Hmax) )
+   IF (ABS(H) <= 10.0_dp*Roundoff) H = DeltaMin
+
+   IF (Tend  >=  Tstart) THEN
+     Direction = +1
+   ELSE
+     Direction = -1
+   END IF
+   H = Direction*H
+
+   RejectLastH=.FALSE.
+   RejectMoreH=.FALSE.
+
+!~~~> Time loop begins below
+
+TimeLoop: DO WHILE ( (Direction > 0).AND.((T-Tend)+Roundoff <= ZERO) &
+       .OR. (Direction < 0).AND.((Tend-T)+Roundoff <= ZERO) )
+
+   IF ( ISTATUS(Nstp) > Max_no_steps ) THEN  ! Too many steps
+      CALL ros_ErrorMsg(-6,T,H,IERR)
+      RETURN
+   END IF
+   IF ( ((T+0.1_dp*H) == T).OR.(H <= Roundoff) ) THEN  ! Step size too small
+      CALL ros_ErrorMsg(-7,T,H,IERR)
+      RETURN
+   END IF
+
+!~~~>  Limit H if necessary to avoid going beyond Tend
+   H = MIN(H,ABS(Tend-T))
+
+!~~~>   Compute the function at current time
+   CALL FunTemplate(T,Y,Fcn0)
+   ISTATUS(Nfun) = ISTATUS(Nfun) + 1
+
+!~~~>  Compute the function derivative with respect to T
+   IF (.NOT.Autonomous) THEN
+      CALL ros_FunTimeDerivative ( T, Roundoff, Y, &
+                Fcn0, dFdT )
+   END IF
+
+!~~~>   Compute the Jacobian at current time
+   CALL JacTemplate(T,Y,Jac0)
+   ISTATUS(Njac) = ISTATUS(Njac) + 1
+
+!~~~>  Repeat step calculation until current step accepted
+UntilAccepted: DO
+
+   CALL ros_PrepareMatrix(H,Direction,ros_Gamma(1), &
+          Jac0,Ghimj,Pivot,Singular)
+   IF (Singular) THEN ! More than 5 consecutive failed decompositions
+       CALL ros_ErrorMsg(-8,T,H,IERR)
+       RETURN
+   END IF
+
+!~~~>   Compute the stages
+Stage: DO istage = 1, ros_S
+
+      ! Current istage offset. Current istage vector is K(ioffset+1:ioffset+N)
+       ioffset = N*(istage-1)
+
+      ! For the 1st istage the function has been computed previously
+       IF ( istage == 1 ) THEN
+         CALL WCOPY(N,Fcn0,1,Fcn,1)
+      ! istage>1 and a new function evaluation is needed at the current istage
+       ELSEIF ( ros_NewF(istage) ) THEN
+         CALL WCOPY(N,Y,1,Ynew,1)
+         DO j = 1, istage-1
+           CALL WAXPY(N,ros_A((istage-1)*(istage-2)/2+j), &
+            K(N*(j-1)+1:N*j),1,Ynew,1)
+         END DO
+         Tau = T + ros_Alpha(istage)*Direction*H
+         CALL FunTemplate(Tau,Ynew,Fcn)
+         ISTATUS(Nfun) = ISTATUS(Nfun) + 1
+       END IF ! if istage == 1 elseif ros_NewF(istage)
+       CALL WCOPY(N,Fcn,1,K(ioffset+1:ioffset+N),1)
+       DO j = 1, istage-1
+         HC = ros_C((istage-1)*(istage-2)/2+j)/(Direction*H)
+         CALL WAXPY(N,HC,K(N*(j-1)+1:N*j),1,K(ioffset+1:ioffset+N),1)
+       END DO
+       IF ((.NOT. Autonomous).AND.(ros_Gamma(istage).NE.ZERO)) THEN
+         HG = Direction*H*ros_Gamma(istage)
+         CALL WAXPY(N,HG,dFdT,1,K(ioffset+1:ioffset+N),1)
+       END IF
+       CALL ros_Solve(Ghimj, Pivot, K(ioffset+1:ioffset+N))
+
+   END DO Stage
+
+
+!~~~>  Compute the new solution
+   CALL WCOPY(N,Y,1,Ynew,1)
+   DO j=1,ros_S
+         CALL WAXPY(N,ros_M(j),K(N*(j-1)+1:N*j),1,Ynew,1)
+   END DO
+
+!~~~>  Compute the error estimation
+   CALL WSCAL(N,ZERO,Yerr,1)
+   DO j=1,ros_S
+        CALL WAXPY(N,ros_E(j),K(N*(j-1)+1:N*j),1,Yerr,1)
+   END DO
+   Err = ros_ErrorNorm ( Y, Ynew, Yerr, AbsTol, RelTol, VectorTol )
+
+!~~~> New step size is bounded by FacMin <= Hnew/H <= FacMax
+   Fac  = MIN(FacMax,MAX(FacMin,FacSafe/Err**(ONE/ros_ELO)))
+   Hnew = H*Fac
+
+!~~~>  Check the error magnitude and adjust step size
+   ISTATUS(Nstp) = ISTATUS(Nstp) + 1
+   IF ( (Err <= ONE).OR.(H <= Hmin) ) THEN  !~~~> Accept step
+      ISTATUS(Nacc) = ISTATUS(Nacc) + 1
+      CALL WCOPY(N,Ynew,1,Y,1)
+      T = T + Direction*H
+      Hnew = MAX(Hmin,MIN(Hnew,Hmax))
+      IF (RejectLastH) THEN  ! No step size increase after a rejected step
+         Hnew = MIN(Hnew,H)
+      END IF
+      RSTATUS(Nhexit) = H
+      RSTATUS(Nhnew)  = Hnew
+      RSTATUS(Ntexit) = T
+      RejectLastH = .FALSE.
+      RejectMoreH = .FALSE.
+      H = Hnew
+      EXIT UntilAccepted ! EXIT THE LOOP: WHILE STEP NOT ACCEPTED
+   ELSE           !~~~> Reject step
+      IF (RejectMoreH) THEN
+         Hnew = H*FacRej
+      END IF
+      RejectMoreH = RejectLastH
+      RejectLastH = .TRUE.
+      H = Hnew
+      IF (ISTATUS(Nacc) >= 1)  ISTATUS(Nrej) = ISTATUS(Nrej) + 1
+   END IF ! Err <= 1
+
+   END DO UntilAccepted
+
+   END DO TimeLoop
+
+!~~~> Succesful exit
+   IERR = 1  !~~~> The integration was successful
+
+  END SUBROUTINE ros_Integrator
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  KPP_REAL FUNCTION ros_ErrorNorm ( Y, Ynew, Yerr, &
+                               AbsTol, RelTol, VectorTol )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> Computes the "scaled norm" of the error vector Yerr
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   IMPLICIT NONE
+
+! Input arguments
+   KPP_REAL, INTENT(IN) :: Y(N), Ynew(N), &
+          Yerr(N), AbsTol(N), RelTol(N)
+   LOGICAL, INTENT(IN) ::  VectorTol
+! Local variables
+   KPP_REAL :: Err, Scale, Ymax
+   INTEGER  :: i
+   KPP_REAL, PARAMETER :: ZERO = 0.0_dp
+
+   Err = ZERO
+   DO i=1,N
+     Ymax = MAX(ABS(Y(i)),ABS(Ynew(i)))
+     IF (VectorTol) THEN
+       Scale = AbsTol(i)+RelTol(i)*Ymax
+     ELSE
+       Scale = AbsTol(1)+RelTol(1)*Ymax
+     END IF
+     Err = Err+(Yerr(i)/Scale)**2
+   END DO
+   Err  = SQRT(Err/N)
+
+   ros_ErrorNorm = MAX(Err,1.0d-10)
+
+  END FUNCTION ros_ErrorNorm
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE ros_FunTimeDerivative ( T, Roundoff, Y, &
+                Fcn0, dFdT )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> The time partial derivative of the function by finite differences
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   IMPLICIT NONE
+
+!~~~> Input arguments
+   KPP_REAL, INTENT(IN) :: T, Roundoff, Y(N), Fcn0(N)
+!~~~> Output arguments
+   KPP_REAL, INTENT(OUT) :: dFdT(N)
+!~~~> Local variables
+   KPP_REAL :: Delta
+   KPP_REAL, PARAMETER :: ONE = 1.0_dp, DeltaMin = 1.0E-6_dp
+
+   Delta = SQRT(Roundoff)*MAX(DeltaMin,ABS(T))
+   CALL FunTemplate(T+Delta,Y,dFdT)
+   ISTATUS(Nfun) = ISTATUS(Nfun) + 1
+   CALL WAXPY(N,(-ONE),Fcn0,1,dFdT,1)
+   CALL WSCAL(N,(ONE/Delta),dFdT,1)
+
+  END SUBROUTINE ros_FunTimeDerivative
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE ros_PrepareMatrix ( H, Direction, gam, &
+             Jac0, Ghimj, Pivot, Singular )
+! --- --- --- --- --- --- --- --- --- --- --- --- ---
+!  Prepares the LHS matrix for stage calculations
+!  1.  Construct Ghimj = 1/(H*ham) - Jac0
+!      "(Gamma H) Inverse Minus Jacobian"
+!  2.  Repeat LU decomposition of Ghimj until successful.
+!       -half the step size if LU decomposition fails and retry
+!       -exit after 5 consecutive fails
+! --- --- --- --- --- --- --- --- --- --- --- --- ---
+   IMPLICIT NONE
+
+!~~~> Input arguments
+#ifdef FULL_ALGEBRA    
+   KPP_REAL, INTENT(IN) ::  Jac0(N,N)
+#else
+   KPP_REAL, INTENT(IN) ::  Jac0(LU_NONZERO)
+#endif   
+   KPP_REAL, INTENT(IN) ::  gam
+   INTEGER, INTENT(IN) ::  Direction
+!~~~> Output arguments
+#ifdef FULL_ALGEBRA    
+   KPP_REAL, INTENT(OUT) :: Ghimj(N,N)
+#else
+   KPP_REAL, INTENT(OUT) :: Ghimj(LU_NONZERO)
+#endif   
+   LOGICAL, INTENT(OUT) ::  Singular
+   INTEGER, INTENT(OUT) ::  Pivot(N)
+!~~~> Inout arguments
+   KPP_REAL, INTENT(INOUT) :: H   ! step size is decreased when LU fails
+!~~~> Local variables
+   INTEGER  :: i, ising, Nconsecutive
+   KPP_REAL :: ghinv
+   KPP_REAL, PARAMETER :: ONE  = 1.0_dp, HALF = 0.5_dp
+
+   Nconsecutive = 0
+   Singular = .TRUE.
+
+   DO WHILE (Singular)
+
+!~~~>    Construct Ghimj = 1/(H*gam) - Jac0
+#ifdef FULL_ALGEBRA    
+     CALL WCOPY(N*N,Jac0,1,Ghimj,1)
+     CALL WSCAL(N*N,(-ONE),Ghimj,1)
+     ghinv = ONE/(Direction*H*gam)
+     DO i=1,N
+       Ghimj(i,i) = Ghimj(i,i)+ghinv
+     END DO
+#else
+     CALL WCOPY(LU_NONZERO,Jac0,1,Ghimj,1)
+     CALL WSCAL(LU_NONZERO,(-ONE),Ghimj,1)
+     ghinv = ONE/(Direction*H*gam)
+     DO i=1,N
+       Ghimj(LU_DIAG(i)) = Ghimj(LU_DIAG(i))+ghinv
+     END DO
+#endif   
+!~~~>    Compute LU decomposition
+     CALL ros_Decomp( Ghimj, Pivot, ising )
+     IF (ising == 0) THEN
+!~~~>    If successful done
+        Singular = .FALSE.
+     ELSE ! ising .ne. 0
+!~~~>    If unsuccessful half the step size; if 5 consecutive fails then return
+        ISTATUS(Nsng) = ISTATUS(Nsng) + 1
+        Nconsecutive = Nconsecutive+1
+        Singular = .TRUE.
+        PRINT*,'Warning: LU Decomposition returned ising = ',ising
+        IF (Nconsecutive <= 5) THEN ! Less than 5 consecutive failed decompositions
+           H = H*HALF
+        ELSE  ! More than 5 consecutive failed decompositions
+           RETURN
+        END IF  ! Nconsecutive
+      END IF    ! ising
+
+   END DO ! WHILE Singular
+
+  END SUBROUTINE ros_PrepareMatrix
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE ros_Decomp( A, Pivot, ising )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!  Template for the LU decomposition
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   IMPLICIT NONE
+!~~~> Inout variables
+   KPP_REAL, INTENT(INOUT) :: A(LU_NONZERO)
+!~~~> Output variables
+   INTEGER, INTENT(OUT) :: Pivot(N), ising
+
+#ifdef FULL_ALGEBRA    
+   CALL  DGETRF( N, N, A, N, Pivot, ising )
+#else   
+   CALL KppDecomp ( A, ising )
+   Pivot(1) = 1
+#endif
+   ISTATUS(Ndec) = ISTATUS(Ndec) + 1
+
+  END SUBROUTINE ros_Decomp
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE ros_Solve( A, Pivot, b )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!  Template for the forward/backward substitution (using pre-computed LU decomposition)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   IMPLICIT NONE
+!~~~> Input variables
+   KPP_REAL, INTENT(IN) :: A(LU_NONZERO)
+   INTEGER, INTENT(IN) :: Pivot(N)
+!~~~> InOut variables
+   KPP_REAL, INTENT(INOUT) :: b(N)
+
+#ifdef FULL_ALGEBRA    
+   CALL  DGETRS( 'N', N , 1, A, N, Pivot, b, N, 0 )
+#else   
+   CALL KppSolve( A, b )
+#endif
+
+   ISTATUS(Nsol) = ISTATUS(Nsol) + 1
+
+  END SUBROUTINE ros_Solve
+
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE Ros2
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! --- AN L-STABLE METHOD, 2 stages, order 2
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+   IMPLICIT NONE
+   DOUBLE PRECISION g
+
+    g = 1.0_dp + 1.0_dp/SQRT(2.0_dp)
+    rosMethod = RS2
+!~~~> Name of the method
+    ros_Name = 'ROS-2'
+!~~~> Number of stages
+    ros_S = 2
+
+!~~~> The coefficient matrices A and C are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+!   The general mapping formula is:
+!       A(i,j) = ros_A( (i-1)*(i-2)/2 + j )
+!       C(i,j) = ros_C( (i-1)*(i-2)/2 + j )
+
+    ros_A(1) = (1.0_dp)/g
+    ros_C(1) = (-2.0_dp)/g
+!~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+    ros_NewF(1) = .TRUE.
+    ros_NewF(2) = .TRUE.
+!~~~> M_i = Coefficients for new step solution
+    ros_M(1)= (3.0_dp)/(2.0_dp*g)
+    ros_M(2)= (1.0_dp)/(2.0_dp*g)
+! E_i = Coefficients for error estimator
+    ros_E(1) = 1.0_dp/(2.0_dp*g)
+    ros_E(2) = 1.0_dp/(2.0_dp*g)
+!~~~> ros_ELO = estimator of local order - the minimum between the
+!    main and the embedded scheme orders plus one
+    ros_ELO = 2.0_dp
+!~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+    ros_Alpha(1) = 0.0_dp
+    ros_Alpha(2) = 1.0_dp
+!~~~> Gamma_i = \sum_j  gamma_{i,j}
+    ros_Gamma(1) = g
+    ros_Gamma(2) =-g
+
+ END SUBROUTINE Ros2
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE Ros3
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! --- AN L-STABLE METHOD, 3 stages, order 3, 2 function evaluations
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+   IMPLICIT NONE
+   rosMethod = RS3
+!~~~> Name of the method
+   ros_Name = 'ROS-3'
+!~~~> Number of stages
+   ros_S = 3
+
+!~~~> The coefficient matrices A and C are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+!   The general mapping formula is:
+!       A(i,j) = ros_A( (i-1)*(i-2)/2 + j )
+!       C(i,j) = ros_C( (i-1)*(i-2)/2 + j )
+
+   ros_A(1)= 1.0_dp
+   ros_A(2)= 1.0_dp
+   ros_A(3)= 0.0_dp
+
+   ros_C(1) = -0.10156171083877702091975600115545E+01_dp
+   ros_C(2) =  0.40759956452537699824805835358067E+01_dp
+   ros_C(3) =  0.92076794298330791242156818474003E+01_dp
+!~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+   ros_NewF(1) = .TRUE.
+   ros_NewF(2) = .TRUE.
+   ros_NewF(3) = .FALSE.
+!~~~> M_i = Coefficients for new step solution
+   ros_M(1) =  0.1E+01_dp
+   ros_M(2) =  0.61697947043828245592553615689730E+01_dp
+   ros_M(3) = -0.42772256543218573326238373806514_dp
+! E_i = Coefficients for error estimator
+   ros_E(1) =  0.5_dp
+   ros_E(2) = -0.29079558716805469821718236208017E+01_dp
+   ros_E(3) =  0.22354069897811569627360909276199_dp
+!~~~> ros_ELO = estimator of local order - the minimum between the
+!    main and the embedded scheme orders plus 1
+   ros_ELO = 3.0_dp
+!~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+   ros_Alpha(1)= 0.0_dp
+   ros_Alpha(2)= 0.43586652150845899941601945119356_dp
+   ros_Alpha(3)= 0.43586652150845899941601945119356_dp
+!~~~> Gamma_i = \sum_j  gamma_{i,j}
+   ros_Gamma(1)= 0.43586652150845899941601945119356_dp
+   ros_Gamma(2)= 0.24291996454816804366592249683314_dp
+   ros_Gamma(3)= 0.21851380027664058511513169485832E+01_dp
+
+  END SUBROUTINE Ros3
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE Ros4
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!     L-STABLE ROSENBROCK METHOD OF ORDER 4, WITH 4 STAGES
+!     L-STABLE EMBEDDED ROSENBROCK METHOD OF ORDER 3
+!
+!      E. HAIRER AND G. WANNER, SOLVING ORDINARY DIFFERENTIAL
+!      EQUATIONS II. STIFF AND DIFFERENTIAL-ALGEBRAIC PROBLEMS.
+!      SPRINGER SERIES IN COMPUTATIONAL MATHEMATICS,
+!      SPRINGER-VERLAG (1990)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+   IMPLICIT NONE
+
+   rosMethod = RS4
+!~~~> Name of the method
+   ros_Name = 'ROS-4'
+!~~~> Number of stages
+   ros_S = 4
+
+!~~~> The coefficient matrices A and C are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+!   The general mapping formula is:
+!       A(i,j) = ros_A( (i-1)*(i-2)/2 + j )
+!       C(i,j) = ros_C( (i-1)*(i-2)/2 + j )
+
+   ros_A(1) = 0.2000000000000000E+01_dp
+   ros_A(2) = 0.1867943637803922E+01_dp
+   ros_A(3) = 0.2344449711399156_dp
+   ros_A(4) = ros_A(2)
+   ros_A(5) = ros_A(3)
+   ros_A(6) = 0.0_dp
+
+   ros_C(1) =-0.7137615036412310E+01_dp
+   ros_C(2) = 0.2580708087951457E+01_dp
+   ros_C(3) = 0.6515950076447975_dp
+   ros_C(4) =-0.2137148994382534E+01_dp
+   ros_C(5) =-0.3214669691237626_dp
+   ros_C(6) =-0.6949742501781779_dp
+!~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+   ros_NewF(1)  = .TRUE.
+   ros_NewF(2)  = .TRUE.
+   ros_NewF(3)  = .TRUE.
+   ros_NewF(4)  = .FALSE.
+!~~~> M_i = Coefficients for new step solution
+   ros_M(1) = 0.2255570073418735E+01_dp
+   ros_M(2) = 0.2870493262186792_dp
+   ros_M(3) = 0.4353179431840180_dp
+   ros_M(4) = 0.1093502252409163E+01_dp
+!~~~> E_i  = Coefficients for error estimator
+   ros_E(1) =-0.2815431932141155_dp
+   ros_E(2) =-0.7276199124938920E-01_dp
+   ros_E(3) =-0.1082196201495311_dp
+   ros_E(4) =-0.1093502252409163E+01_dp
+!~~~> ros_ELO  = estimator of local order - the minimum between the
+!    main and the embedded scheme orders plus 1
+   ros_ELO  = 4.0_dp
+!~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+   ros_Alpha(1) = 0.0_dp
+   ros_Alpha(2) = 0.1145640000000000E+01_dp
+   ros_Alpha(3) = 0.6552168638155900_dp
+   ros_Alpha(4) = ros_Alpha(3)
+!~~~> Gamma_i = \sum_j  gamma_{i,j}
+   ros_Gamma(1) = 0.5728200000000000_dp
+   ros_Gamma(2) =-0.1769193891319233E+01_dp
+   ros_Gamma(3) = 0.7592633437920482_dp
+   ros_Gamma(4) =-0.1049021087100450_dp
+
+  END SUBROUTINE Ros4
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE Rodas3
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! --- A STIFFLY-STABLE METHOD, 4 stages, order 3
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+   IMPLICIT NONE
+
+   rosMethod = RD3
+!~~~> Name of the method
+   ros_Name = 'RODAS-3'
+!~~~> Number of stages
+   ros_S = 4
+
+!~~~> The coefficient matrices A and C are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+!   The general mapping formula is:
+!       A(i,j) = ros_A( (i-1)*(i-2)/2 + j )
+!       C(i,j) = ros_C( (i-1)*(i-2)/2 + j )
+
+   ros_A(1) = 0.0_dp
+   ros_A(2) = 2.0_dp
+   ros_A(3) = 0.0_dp
+   ros_A(4) = 2.0_dp
+   ros_A(5) = 0.0_dp
+   ros_A(6) = 1.0_dp
+
+   ros_C(1) = 4.0_dp
+   ros_C(2) = 1.0_dp
+   ros_C(3) =-1.0_dp
+   ros_C(4) = 1.0_dp
+   ros_C(5) =-1.0_dp
+   ros_C(6) =-(8.0_dp/3.0_dp)
+
+!~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+   ros_NewF(1)  = .TRUE.
+   ros_NewF(2)  = .FALSE.
+   ros_NewF(3)  = .TRUE.
+   ros_NewF(4)  = .TRUE.
+!~~~> M_i = Coefficients for new step solution
+   ros_M(1) = 2.0_dp
+   ros_M(2) = 0.0_dp
+   ros_M(3) = 1.0_dp
+   ros_M(4) = 1.0_dp
+!~~~> E_i  = Coefficients for error estimator
+   ros_E(1) = 0.0_dp
+   ros_E(2) = 0.0_dp
+   ros_E(3) = 0.0_dp
+   ros_E(4) = 1.0_dp
+!~~~> ros_ELO  = estimator of local order - the minimum between the
+!    main and the embedded scheme orders plus 1
+   ros_ELO  = 3.0_dp
+!~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+   ros_Alpha(1) = 0.0_dp
+   ros_Alpha(2) = 0.0_dp
+   ros_Alpha(3) = 1.0_dp
+   ros_Alpha(4) = 1.0_dp
+!~~~> Gamma_i = \sum_j  gamma_{i,j}
+   ros_Gamma(1) = 0.5_dp
+   ros_Gamma(2) = 1.5_dp
+   ros_Gamma(3) = 0.0_dp
+   ros_Gamma(4) = 0.0_dp
+
+  END SUBROUTINE Rodas3
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE Rodas4
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!     STIFFLY-STABLE ROSENBROCK METHOD OF ORDER 4, WITH 6 STAGES
+!
+!      E. HAIRER AND G. WANNER, SOLVING ORDINARY DIFFERENTIAL
+!      EQUATIONS II. STIFF AND DIFFERENTIAL-ALGEBRAIC PROBLEMS.
+!      SPRINGER SERIES IN COMPUTATIONAL MATHEMATICS,
+!      SPRINGER-VERLAG (1996)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+   IMPLICIT NONE
+
+    rosMethod = RD4
+!~~~> Name of the method
+    ros_Name = 'RODAS-4'
+!~~~> Number of stages
+    ros_S = 6
+
+!~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+    ros_Alpha(1) = 0.000_dp
+    ros_Alpha(2) = 0.386_dp
+    ros_Alpha(3) = 0.210_dp
+    ros_Alpha(4) = 0.630_dp
+    ros_Alpha(5) = 1.000_dp
+    ros_Alpha(6) = 1.000_dp
+
+!~~~> Gamma_i = \sum_j  gamma_{i,j}
+    ros_Gamma(1) = 0.2500000000000000_dp
+    ros_Gamma(2) =-0.1043000000000000_dp
+    ros_Gamma(3) = 0.1035000000000000_dp
+    ros_Gamma(4) =-0.3620000000000023E-01_dp
+    ros_Gamma(5) = 0.0_dp
+    ros_Gamma(6) = 0.0_dp
+
+!~~~> The coefficient matrices A and C are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+!   The general mapping formula is:  A(i,j) = ros_A( (i-1)*(i-2)/2 + j )
+!                  C(i,j) = ros_C( (i-1)*(i-2)/2 + j )
+
+    ros_A(1) = 0.1544000000000000E+01_dp
+    ros_A(2) = 0.9466785280815826_dp
+    ros_A(3) = 0.2557011698983284_dp
+    ros_A(4) = 0.3314825187068521E+01_dp
+    ros_A(5) = 0.2896124015972201E+01_dp
+    ros_A(6) = 0.9986419139977817_dp
+    ros_A(7) = 0.1221224509226641E+01_dp
+    ros_A(8) = 0.6019134481288629E+01_dp
+    ros_A(9) = 0.1253708332932087E+02_dp
+    ros_A(10) =-0.6878860361058950_dp
+    ros_A(11) = ros_A(7)
+    ros_A(12) = ros_A(8)
+    ros_A(13) = ros_A(9)
+    ros_A(14) = ros_A(10)
+    ros_A(15) = 1.0_dp
+
+    ros_C(1) =-0.5668800000000000E+01_dp
+    ros_C(2) =-0.2430093356833875E+01_dp
+    ros_C(3) =-0.2063599157091915_dp
+    ros_C(4) =-0.1073529058151375_dp
+    ros_C(5) =-0.9594562251023355E+01_dp
+    ros_C(6) =-0.2047028614809616E+02_dp
+    ros_C(7) = 0.7496443313967647E+01_dp
+    ros_C(8) =-0.1024680431464352E+02_dp
+    ros_C(9) =-0.3399990352819905E+02_dp
+    ros_C(10) = 0.1170890893206160E+02_dp
+    ros_C(11) = 0.8083246795921522E+01_dp
+    ros_C(12) =-0.7981132988064893E+01_dp
+    ros_C(13) =-0.3152159432874371E+02_dp
+    ros_C(14) = 0.1631930543123136E+02_dp
+    ros_C(15) =-0.6058818238834054E+01_dp
+
+!~~~> M_i = Coefficients for new step solution
+    ros_M(1) = ros_A(7)
+    ros_M(2) = ros_A(8)
+    ros_M(3) = ros_A(9)
+    ros_M(4) = ros_A(10)
+    ros_M(5) = 1.0_dp
+    ros_M(6) = 1.0_dp
+
+!~~~> E_i  = Coefficients for error estimator
+    ros_E(1) = 0.0_dp
+    ros_E(2) = 0.0_dp
+    ros_E(3) = 0.0_dp
+    ros_E(4) = 0.0_dp
+    ros_E(5) = 0.0_dp
+    ros_E(6) = 1.0_dp
+
+!~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+    ros_NewF(1) = .TRUE.
+    ros_NewF(2) = .TRUE.
+    ros_NewF(3) = .TRUE.
+    ros_NewF(4) = .TRUE.
+    ros_NewF(5) = .TRUE.
+    ros_NewF(6) = .TRUE.
+
+!~~~> ros_ELO  = estimator of local order - the minimum between the
+!        main and the embedded scheme orders plus 1
+    ros_ELO = 4.0_dp
+
+  END SUBROUTINE Rodas4
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE Rang3
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! STIFFLY-STABLE W METHOD OF ORDER 3, WITH 4 STAGES
+!
+! J. RANG and L. ANGERMANN
+! NEW ROSENBROCK W-METHODS OF ORDER 3
+! FOR PARTIAL DIFFERENTIAL ALGEBRAIC
+!        EQUATIONS OF INDEX 1                                             
+! BIT Numerical Mathematics (2005) 45: 761-787
+!  DOI: 10.1007/s10543-005-0035-y
+! Table 4.1-4.2
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+   IMPLICIT NONE
+
+    rosMethod = RG3
+!~~~> Name of the method
+    ros_Name = 'RANG-3'
+!~~~> Number of stages
+    ros_S = 4
+
+    ros_A(1) = 5.09052051067020d+00;
+    ros_A(2) = 5.09052051067020d+00;
+    ros_A(3) = 0.0d0;
+    ros_A(4) = 4.97628111010787d+00;
+    ros_A(5) = 2.77268164715849d-02;
+    ros_A(6) = 2.29428036027904d-01;
+
+    ros_C(1) = -1.16790812312283d+01;
+    ros_C(2) = -1.64057326467367d+01;
+    ros_C(3) = -2.77268164715850d-01;
+    ros_C(4) = -8.38103960500476d+00;
+    ros_C(5) = -8.48328409199343d-01;
+    ros_C(6) =  2.87009860433106d-01;
+
+    ros_M(1) =  5.22582761233094d+00;
+    ros_M(2) = -5.56971148154165d-01;
+    ros_M(3) =  3.57979469353645d-01;
+    ros_M(4) =  1.72337398521064d+00;
+
+    ros_E(1) = -5.16845212784040d+00;
+    ros_E(2) = -1.26351942603842d+00;
+    ros_E(3) = -1.11022302462516d-16;
+    ros_E(4) =  2.22044604925031d-16;
+
+    ros_Alpha(1) = 0.0d00;
+    ros_Alpha(2) = 2.21878746765329d+00;
+    ros_Alpha(3) = 2.21878746765329d+00;
+    ros_Alpha(4) = 1.55392337535788d+00;
+
+    ros_Gamma(1) =  4.35866521508459d-01;
+    ros_Gamma(2) = -1.78292094614483d+00;
+    ros_Gamma(3) = -2.46541900496934d+00;
+    ros_Gamma(4) = -8.05529997906370d-01;
+
+
+!~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+    ros_NewF(1) = .TRUE.
+    ros_NewF(2) = .TRUE.
+    ros_NewF(3) = .TRUE.
+    ros_NewF(4) = .TRUE.
+
+!~~~> ros_ELO  = estimator of local order - the minimum between the
+!        main and the embedded scheme orders plus 1
+    ros_ELO = 3.0_dp
+
+  END SUBROUTINE Rang3
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!   End of the set of internal Rosenbrock subroutines
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+END SUBROUTINE Rosenbrock
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+SUBROUTINE FunTemplate( T, Y, Ydot )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!  Template for the ODE function call.
+!  Updates the rate coefficients (and possibly the fixed species) at each call
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ USE KPP_ROOT_Parameters, ONLY: NVAR, LU_NONZERO
+ USE KPP_ROOT_Global, ONLY: FIX, RCONST, TIME
+ USE KPP_ROOT_Function, ONLY: Fun
+ USE KPP_ROOT_Rates, ONLY: Update_SUN, Update_RCONST
+!~~~> Input variables
+   KPP_REAL :: T, Y(NVAR)
+!~~~> Output variables
+   KPP_REAL :: Ydot(NVAR)
+!~~~> Local variables
+   KPP_REAL :: Told
+
+   Told = TIME
+   TIME = T
+   CALL Update_SUN()
+   CALL Update_RCONST()
+   CALL Fun( Y, FIX, RCONST, Ydot )
+   TIME = Told
+
+END SUBROUTINE FunTemplate
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+SUBROUTINE JacTemplate( T, Y, Jcb )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!  Template for the ODE Jacobian call.
+!  Updates the rate coefficients (and possibly the fixed species) at each call
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ USE KPP_ROOT_Parameters, ONLY: NVAR, LU_NONZERO
+ USE KPP_ROOT_Global, ONLY: FIX, RCONST, TIME
+ USE KPP_ROOT_Jacobian, ONLY: Jac_SP, LU_IROW, LU_ICOL
+ USE KPP_ROOT_LinearAlgebra
+ USE KPP_ROOT_Rates, ONLY: Update_SUN, Update_RCONST
+!~~~> Input variables
+    KPP_REAL :: T, Y(NVAR)
+!~~~> Output variables
+#ifdef FULL_ALGEBRA    
+    KPP_REAL :: JV(LU_NONZERO), Jcb(NVAR,NVAR)
+#else
+    KPP_REAL :: Jcb(LU_NONZERO)
+#endif   
+!~~~> Local variables
+    KPP_REAL :: Told
+#ifdef FULL_ALGEBRA    
+    INTEGER :: i, j
+#endif   
+
+    Told = TIME
+    TIME = T
+    CALL Update_SUN()
+    CALL Update_RCONST()
+#ifdef FULL_ALGEBRA    
+    CALL Jac_SP(Y, FIX, RCONST, JV)
+    DO j=1,NVAR
+      DO i=1,NVAR
+         Jcb(i,j) = 0.0_dp
+      END DO
+    END DO
+    DO i=1,LU_NONZERO
+       Jcb(LU_IROW(i),LU_ICOL(i)) = JV(i)
+    END DO
+#else
+    CALL Jac_SP( Y, FIX, RCONST, Jcb )
+#endif   
+    TIME = Told
+
+END SUBROUTINE JacTemplate
+
+END MODULE KPP_ROOT_Integrator
+
+
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/rosenbrock.m
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/rosenbrock.m	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/rosenbrock.m	(revision 2696)
@@ -0,0 +1,986 @@
+function [T, Y, RCNTRL, ICNTRL, RSTAT, ISTAT] = ...
+    Rosenbrock(Function, Tspan, Y0, Options, RCNTRL, ICNTRL)
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+%  Rosenbrock - Implementation of several Rosenbrock methods:
+%               * Ros2                                                
+%               * Ros3                                                
+%               * Ros4                                                
+%               * Rodas3                                              
+%               * Rodas4                                              
+%                                                                     
+%    Solves the system y'=F(t,y) using a Rosenbrock method defined by:
+%                                                                     
+%     G = 1/(H*gamma(1)) - Jac(t0,Y0)                                 
+%     T_i = t0 + Alpha(i)*H                                           
+%     Y_i = Y0 + \sum_{j=1}^{i-1} A(i,j)*K_j
+%     G * K_i = Fun( T_i, Y_i ) + \sum_{j=1}^S C(i,j)/H * K_j +
+%         gamma(i)*dF/dT(t0, Y0)
+%     Y1 = Y0 + \sum_{j=1}^S M(j)*K_j
+%
+%    For details on Rosenbrock methods and their implementation consult:
+%      E. Hairer and G. Wanner
+%      "Solving ODEs II. Stiff and differential-algebraic problems".
+%      Springer series in computational mathematics, Springer-Verlag, 1996.
+%    The codes contained in the book inspired this implementation.
+%
+%    MATLAB implementation (C) John C. Linford (jlinford@vt.edu).      
+%    Virginia Polytechnic Institute and State University             
+%    November, 2009    
+%
+%    Based on the Fortran90 implementation (C) Adrian Sandu, August 2004
+%    and revised by Philipp Miehe and Adrian Sandu, May 2006.
+%    Virginia Polytechnic Institute and State University
+%    Contact: sandu@cs.vt.edu
+%
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+%  Input Arguments :
+%  The first four arguments are similar to the input arguments of 
+%  MATLAB's ODE solvers
+%      Function  - A function handle for the ODE function
+%      Tspan     - The time space to integrate
+%      Y0        - Initial value
+%      Options   - ODE solver options created by odeset():           
+%                  AbsTol, InitialStep, Jacobian, MaxStep, and RelTol
+%                  are considered.  Other options are ignored.       
+%                  'Jacobian' must be set.                           
+%      RCNTRL    - real value input parameters (explained below)
+%      ICNTRL    - integer input parameters (explained below)
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+%  Output Arguments:
+%  The first two arguments are similar to the output arguments of
+%  MATLAB's ODE solvers
+%      T         - A vector of final integration times.
+%      Y         - A matrix of function values.  Y(T(i),:) is the value of
+%                  the function at the ith output time.
+%      RCNTRL    - real value input parameters (explained below)
+%      ICNTRL    - integer input parameters (explained below)
+%      RSTAT     - real output parameters (explained below)
+%      ISTAT     - integer output parameters (explained below)
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+%
+%    RCNTRL and ICNTRL on input and output:
+%
+%    Note: For input parameters equal to zero the default values of the
+%       corresponding variables are used.
+%
+%    ICNTRL(1) = 1: F = F(y)   Independent of T (AUTONOMOUS)
+%              = 0: F = F(t,y) Depends on T (NON-AUTONOMOUS)
+%
+%    ICNTRL(2) = 0: AbsTol, RelTol are N-dimensional vectors
+%              = 1: AbsTol, RelTol are scalars
+%
+%    ICNTRL(3)  -> selection of a particular Rosenbrock method
+%        = 0 :    Rodas3 (default)
+%        = 1 :    Ros2
+%        = 2 :    Ros3
+%        = 3 :    Ros4
+%        = 4 :    Rodas3
+%        = 5 :    Rodas4
+%
+%    ICNTRL(4)  -> maximum number of integration steps
+%        For ICNTRL(4)=0) the default value of 100000 is used
+%
+%    RCNTRL(1)  -> Hmin, lower bound for the integration step size
+%          It is strongly recommended to keep Hmin = ZERO
+%    RCNTRL(2)  -> Hmax, upper bound for the integration step size
+%    RCNTRL(3)  -> Hstart, starting value for the integration step size
+%
+%    RCNTRL(4)  -> FacMin, lower bound on step decrease factor (default=0.2)
+%    RCNTRL(5)  -> FacMax, upper bound on step increase factor (default=6)
+%    RCNTRL(6)  -> FacRej, step decrease factor after multiple rejections
+%                          (default=0.1)
+%    RCNTRL(7)  -> FacSafe, by which the new step is slightly smaller
+%         than the predicted value  (default=0.9)
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+%
+%    RSTAT and ISTAT on output:
+%
+%    ISTAT(1)  -> No. of function calls
+%    ISTAT(2)  -> No. of jacobian calls
+%    ISTAT(3)  -> No. of steps
+%    ISTAT(4)  -> No. of accepted steps
+%    ISTAT(5)  -> No. of rejected steps (except at very beginning)
+%    ISTAT(6)  -> No. of LU decompositions
+%    ISTAT(7)  -> No. of forward/backward substitutions
+%    ISTAT(8)  -> No. of singular matrix decompositions
+%
+%    RSTAT(1)  -> Texit, the time corresponding to the
+%                     computed Y upon return
+%    RSTAT(2)  -> Hexit, last accepted step before exit
+%    RSTAT(3)  -> Hnew, last predicted step (not yet taken)
+%                   For multiple restarts, use Hnew as Hstart
+%                     in the subsequent run
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+%~~~>  Statistics on the work performed by the Rosenbrock method
+global Nfun Njac Nstp Nacc Nrej Ndec Nsol Nsng Ntexit Nhexit Nhnew
+global ISTATUS RSTATUS
+
+% Parse ODE options
+AbsTol = odeget(Options, 'AbsTol');
+if isempty(AbsTol)
+    AbsTol = 1.0e-3;
+end
+Hstart = odeget(Options, 'InitialStep');
+if isempty(Hstart)
+    Hstart = 0;
+end
+Jacobian = odeget(Options, 'Jacobian');
+if isempty(Jacobian)
+    error('A Jacobian function is required.');
+end
+Hmax = odeget(Options, 'MaxStep');
+if isempty(Hmax)
+    Hmax = 0;
+end
+RelTol = odeget(Options, 'RelTol');
+if isempty(RelTol)
+    RelTol = 1.0e-4;
+end
+
+% Initialize statistics
+Nfun=1; Njac=2; Nstp=3; Nacc=4; Nrej=5; Ndec=6; Nsol=7; Nsng=8;
+Ntexit=1; Nhexit=2; Nhnew=3;
+RSTATUS = zeros(20,1);
+ISTATUS = zeros(20,1);
+
+% Get problem size
+steps = length(Tspan);
+N = length(Y0);
+
+% Initialize tolerances
+ATOL = ones(N,1)*AbsTol;
+RTOL = ones(N,1)*RelTol;
+
+% Initialize step
+RCNTRL(2) = max(0, Hmax);
+RCNTRL(3) = max(0, Hstart);
+
+% Integrate
+Y = zeros(steps,N);
+T = zeros(steps,1);
+Y(1,:) = Y0;
+T(1) = Tspan(1);
+for i=2:steps
+    [T(i), Y(i,:), IERR] = ...
+        RosenbrockIntegrator(N, Y(i-1,:), T(i-1), Tspan(i), ...
+            Function, Jacobian, ATOL, RTOL, RCNTRL, ICNTRL);
+
+    if IERR < 0
+        error(['Rosenbrock exited with IERR=',num2str(IERR)]);
+    end
+
+end
+
+ISTAT = ISTATUS;
+RSTAT = RSTATUS;
+
+return
+
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+function [ T, Y, IERR ] = RosenbrockIntegrator(N, Y, Tstart, Tend, ...
+    OdeFunction, OdeJacobian, AbsTol, RelTol, RCNTRL, ICNTRL)
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+% Advances the ODE system defined by OdeFunction, OdeJacobian and Y
+% from time=Tstart to time=Tend
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+%~~~>  Statistics on the work performed by the Rosenbrock method
+global Nfun Njac Nstp Nacc Nrej Ndec Nsol Nsng Ntexit Nhexit Nhnew Ntotal
+global ISTATUS RSTATUS
+
+%~~~>   Parameters
+global ZERO ONE DeltaMin
+ZERO = 0.0; ONE = 1.0; DeltaMin = 1.0E-5;
+
+%~~~>  Initialize statistics
+ISTATUS(1:8) = 0;
+RSTATUS(1:3) = ZERO;
+
+%~~~>  Autonomous or time dependent ODE. Default is time dependent.
+Autonomous = ~(ICNTRL(1) == 0);
+
+%~~~>  For Scalar tolerances (ICNTRL(2).NE.0)  the code uses AbsTol(1) and RelTol(1)
+%   For Vector tolerances (ICNTRL(2) == 0) the code uses AbsTol(1:N) and RelTol(1:N)
+if ICNTRL(2) == 0
+    VectorTol = true;
+    UplimTol  = N;
+else
+    VectorTol = false;
+    UplimTol  = 1;
+end
+
+%~~~>   Initialize the particular Rosenbrock method selected
+switch (ICNTRL(3))
+    case (1)
+        ros_Param = Ros2;
+    case (2)
+        ros_Param = Ros3;
+    case (3)
+        ros_Param = Ros4;
+    case {0,4}
+        ros_Param = Rodas3;
+    case (5)
+        ros_Param = Rodas4;
+    otherwise
+        disp(['Unknown Rosenbrock method: ICNTRL(3)=',num2str(ICNTRL(3))]);
+        IERR = ros_ErrorMsg(-2,Tstart,ZERO);
+        return
+end
+ros_S     = ros_Param{1};
+rosMethod = ros_Param{2};
+ros_A     = ros_Param{3};
+ros_C     = ros_Param{4};
+ros_M     = ros_Param{5};
+ros_E     = ros_Param{6};
+ros_Alpha = ros_Param{7};
+ros_Gamma = ros_Param{8};
+ros_ELO   = ros_Param{9};
+ros_NewF  = ros_Param{10};
+ros_Name  = ros_Param{11};
+
+%~~~>   The maximum number of steps admitted
+if ICNTRL(4) == 0
+    Max_no_steps = 200000;
+elseif ICNTRL(4) > 0
+    Max_no_steps=ICNTRL(4);
+else
+    disp(['User-selected max no. of steps: ICNTRL(4)=',num2str(ICNTRL(4))]);
+    IERR = ros_ErrorMsg(-1,Tstart,ZERO);
+    return
+end
+
+%~~~>  Unit roundoff (1+Roundoff>1)
+Roundoff = eps;
+
+%~~~>  Lower bound on the step size: (positive value)
+if RCNTRL(1) == ZERO
+    Hmin = ZERO;
+elseif RCNTRL(1) > ZERO
+    Hmin = RCNTRL(1);
+else
+    disp(['User-selected Hmin: RCNTRL(1)=', num2str(RCNTRL(1))]);
+    IERR = ros_ErrorMsg(-3,Tstart,ZERO);
+    return
+end
+
+%~~~>  Upper bound on the step size: (positive value)
+if RCNTRL(2) == ZERO
+    Hmax = abs(Tend-Tstart);
+elseif RCNTRL(2) > ZERO
+    Hmax = min(abs(RCNTRL(2)),abs(Tend-Tstart));
+else
+    disp(['User-selected Hmax: RCNTRL(2)=', num2str(RCNTRL(2))]);
+    IERR = ros_ErrorMsg(-3,Tstart,ZERO);
+    return
+end
+
+%~~~>  Starting step size: (positive value)
+if RCNTRL(3) == ZERO
+    Hstart = max(Hmin,DeltaMin);
+elseif RCNTRL(3) > ZERO
+    Hstart = min(abs(RCNTRL(3)),abs(Tend-Tstart));
+else
+    disp(['User-selected Hstart: RCNTRL(3)=', num2str(RCNTRL(3))]);
+    IERR = ros_ErrorMsg(-3,Tstart,ZERO);
+    return
+end
+
+%~~~>  Step size can be changed s.t.  FacMin < Hnew/Hold < FacMax
+if RCNTRL(4) == ZERO
+    FacMin = 0.2;
+elseif RCNTRL(4) > ZERO
+    FacMin = RCNTRL(4);
+else
+    disp(['User-selected FacMin: RCNTRL(4)=', num2str(RCNTRL(4))]);
+    IERR = ros_ErrorMsg(-4,Tstart,ZERO);
+    return
+end
+if RCNTRL(5) == ZERO
+    FacMax = 6.0;
+elseif RCNTRL(5) > ZERO
+    FacMax = RCNTRL(5);
+else
+    disp(['User-selected FacMax: RCNTRL(5)=', num2str(RCNTRL(5))]);
+    IERR = ros_ErrorMsg(-4,Tstart,ZERO);
+    return
+end
+
+%~~~>   FacRej: Factor to decrease step after 2 succesive rejections
+if RCNTRL(6) == ZERO
+    FacRej = 0.1;
+elseif RCNTRL(6) > ZERO
+    FacRej = RCNTRL(6);
+else
+    disp(['User-selected FacRej: RCNTRL(6)=', num2str(RCNTRL(6))]);
+    IERR = ros_ErrorMsg(-4,Tstart,ZERO);
+    return
+end
+
+%~~~>   FacSafe: Safety Factor in the computation of new step size
+if RCNTRL(7) == ZERO
+    FacSafe = 0.9;
+elseif RCNTRL(7) > ZERO
+    FacSafe = RCNTRL(7);
+else
+    disp(['User-selected FacSafe: RCNTRL(7)=', num2str(RCNTRL(7))]);
+    IERR = ros_ErrorMsg(-4,Tstart,ZERO);
+    return
+end
+
+%~~~>  Check if tolerances are reasonable
+for i=1:UplimTol
+    if  (AbsTol(i) <= ZERO) || (RelTol(i) <= 10.0*Roundoff) || (RelTol(i) >= 1.0)
+        disp([' AbsTol(',i,') = ',num2str(AbsTol(i))]);
+        disp([' RelTol(',i,') = ',num2str(RelTol(i))]);
+        IERR = ros_ErrorMsg(-5,Tstart,ZERO);
+        return
+    end
+end
+
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+%   Template for the implementation of a generic Rosenbrock method
+%      defined by ros_S (no of stages)
+%      and its coefficients ros_{A,C,M,E,Alpha,Gamma}
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+% ~~~~ Local variables
+Ynew  = zeros(N,1);
+Fcn0  = zeros(N,1);
+Fcn   = zeros(N,1);
+K     = zeros(N,ros_S);
+dFdT  = zeros(N,1);
+Jac0  = sparse(N,N);
+Ghimj = sparse(N,N);
+Yerr  = zeros(N,1);
+Pivot = zeros(N,1);
+
+%~~~>  Initial preparations
+T = Tstart;
+RSTATUS(Nhexit) = ZERO;
+H = min(max(abs(Hmin), abs(Hstart)), abs(Hmax));
+if abs(H) <= 10.0*Roundoff
+    H = DeltaMin;
+end
+
+if Tend >= Tstart
+    Direction = +1;
+else
+    Direction = -1;
+end
+H = Direction*H;
+
+RejectLastH = false;
+RejectMoreH = false;
+
+%~~~> Time loop begins below
+
+while ( (Direction > 0) && ((T-Tend)+Roundoff <= ZERO) || ...
+        (Direction < 0) && ((Tend-T)+Roundoff <= ZERO) )
+
+    if ISTATUS(Nstp) > Max_no_steps   % Too many steps
+        IERR = ros_ErrorMsg(-6,T,H);
+        return
+    end
+    if ((T+0.1*H) == T) || (H <= Roundoff)   % Step size too small
+        IERR = ros_ErrorMsg(-7,T,H);
+        return
+    end
+
+    %~~~>  Limit H if necessary to avoid going beyond Tend
+    H = min(H, abs(Tend-T));
+
+    %~~~>   Compute the function at current time
+    Fcn0 = OdeFunction(T, Y);
+    ISTATUS(Nfun) = ISTATUS(Nfun) + 1;
+
+    %~~~>  Compute the function derivative with respect to T
+    if ~Autonomous
+        dFdT = ros_FunTimeDerivative (T, OdeFunction, Roundoff, Y, Fcn0);
+    end
+
+    %~~~>   Compute the Jacobian at current time
+    Jac0 = OdeJacobian(T,Y);
+    ISTATUS(Njac) = ISTATUS(Njac) + 1;
+
+    %~~~>  Repeat step calculation until current step accepted
+    while(true)
+
+        [H, Ghimj, Pivot, Singular] = ...
+            ros_PrepareMatrix(N, H, Direction, ros_Gamma(1), Jac0);
+
+        % Not calculating LU decomposition in ros_PrepareMatrix anymore 
+        % so don't need to check if the matrix is singular
+        %
+        %if Singular % More than 5 consecutive failed decompositions
+        %    IERR = ros_ErrorMsg(-8,T,H);
+        %    return
+        %end
+
+        % For the 1st istage the function has been computed previously
+        Fcn = Fcn0;
+        K(:,1) = Fcn;
+        if (~Autonomous) && (ros_Gamma(1) ~= ZERO)
+            HG = Direction*H*ros_Gamma(1);
+            K(:,1) = K(:,1) + HG * dFdT;
+        end
+        K(:,1) = ros_Solve(Ghimj, Pivot, K(:,1));
+        
+        %~~~>   Compute the remaining stages
+        for istage=2:ros_S
+
+            % istage>1 and a new function evaluation is needed
+            if ros_NewF(istage)
+                Ynew = Y;
+                for j=1:istage-1
+                    Ynew = Ynew + ros_A((istage-1)*(istage-2)/2+j)*K(:,j)';
+                end
+                Tau = T + ros_Alpha(istage)*Direction*H;
+                Fcn = OdeFunction(Tau,Ynew);
+                ISTATUS(Nfun) = ISTATUS(Nfun) + 1;
+            end
+
+            K(:,istage) = Fcn;
+            for j=1:istage-1
+                HC = ros_C((istage-1)*(istage-2)/2+j)/(Direction*H);
+                K(:,istage) = K(:,istage) + HC * K(:,j);
+            end
+            if (~Autonomous) && (ros_Gamma(istage) ~= ZERO)
+                HG = Direction*H*ros_Gamma(istage);
+                K(:,istage) = K(:,istage) + HG * dFdT;
+            end
+
+            % Linear system is solved here with MATLAB '\' operator
+            % instead of LU decomposition.
+            K(:,istage) = ros_Solve(Ghimj, Pivot, K(:,istage));
+
+        end
+
+        %~~~>  Compute the new solution
+        Ynew = Y;
+        for j=1:ros_S
+            Ynew = Ynew + ros_M(j) * K(:,j)';
+        end
+
+        %~~~>  Compute the error estimation
+        Yerr = zeros(N,1);
+        for j=1:ros_S
+            Yerr = Yerr + ros_E(j) * K(:,j);
+        end
+        Err = ros_ErrorNorm(N, Y, Ynew, Yerr, AbsTol, RelTol, VectorTol);
+
+        %~~~> New step size is bounded by FacMin <= Hnew/H <= FacMax
+        Fac  = min(FacMax, max(FacMin, FacSafe/(Err^(ONE/ros_ELO))));
+        Hnew = H*Fac;
+
+        %~~~>  Check the error magnitude and adjust step size
+        ISTATUS(Nstp) = ISTATUS(Nstp) + 1;
+        if  (Err <= ONE) || (H <= Hmin)   %~~~> Accept step
+            ISTATUS(Nacc) = ISTATUS(Nacc) + 1;
+            Y = Ynew;
+            T = T + Direction*H;
+            Hnew = max(Hmin, min(Hnew, Hmax));
+            if RejectLastH  % No step size increase after a rejected step
+                Hnew = min(Hnew, H);
+            end
+            RSTATUS(Nhexit) = H;
+            RSTATUS(Nhnew)  = Hnew;
+            RSTATUS(Ntexit) = T;
+            RejectLastH = false;
+            RejectMoreH = false;
+            H = Hnew;
+            break % EXIT THE LOOP: WHILE STEP NOT ACCEPTED
+        else           %~~~> Reject step
+            if RejectMoreH
+                Hnew = H*FacRej;
+            end
+            RejectMoreH = RejectLastH;
+            RejectLastH = true;
+            H = Hnew;
+            if ISTATUS(Nacc) >= 1
+                ISTATUS(Nrej) = ISTATUS(Nrej) + 1;
+            end
+        end % Err <= 1
+
+    end % UntilAccepted
+
+end % TimeLoop
+
+%~~~> Succesful exit
+IERR = 1;  %~~~> The integration was successful
+
+return
+
+
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+function [ ErrNorm ] = ros_ErrorNorm(N, Y, Ynew, Yerr, AbsTol, RelTol, VectorTol)
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+%~~~> Computes the "scaled norm" of the error vector Yerr
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Err = 0;
+for i=1:N
+    Ymax = max(abs(Y(i)), abs(Ynew(i)));
+    if VectorTol
+        Scale = AbsTol(i) + RelTol(i)*Ymax;
+    else
+        Scale = AbsTol(1) + RelTol(1)*Ymax;
+    end
+    Err = Err + (Yerr(i)/Scale)^2;
+end
+Err = sqrt(Err/N);
+ErrNorm = max(Err,1.0e-10);
+
+return
+
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+function [ dFdT ] = ros_FunTimeDerivative (T, OdeFunction, Roundoff, Y, Fcn0)
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+%~~~> The time partial derivative of the function by finite differences
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+%~~~>  Statistics on the work performed by the Rosenbrock method
+global Nfun ISTATUS
+
+%~~~>   Parameters
+global ZERO ONE DeltaMin
+
+Delta = sqrt(Roundoff) * max(DeltaMin, abs(T));
+dFdT = OdeFunction(T+Delta,Y);
+ISTATUS(Nfun) = ISTATUS(Nfun) + 1;
+dFdT = (dFdT - Fcn0) / Delta;
+
+return
+
+
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+function [H, Ghimj, Pivot, Singular] = ...
+    ros_PrepareMatrix(N, H, Direction, gam, Jac0)
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+%  Prepares the LHS matrix for stage calculations
+%  1.  Construct Ghimj = 1/(H*ham) - Jac0
+%      "(Gamma H) Inverse Minus Jacobian"
+%  2.  LU decomposition not performed here because
+%      MATLAB solves the linear system with '\'.
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Ghimj = -Jac0;
+ghinv = 1.0/(Direction*H*gam);
+for i=1:N
+    Ghimj(i,i) = Ghimj(i,i)+ghinv;
+end
+
+Pivot(1) = 1;
+Singular = false;
+
+return
+
+
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+function [ IERR ] = ros_ErrorMsg(Code, T, H)
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+%    Handles all error messages
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+IERR = Code;
+
+disp('Forced exit from Rosenbrock due to the following error:');
+
+switch (Code)
+    case (-1)
+        disp('--> Improper value for maximal no of steps');
+    case (-2)
+        disp('--> Selected Rosenbrock method not implemented');
+    case (-3)
+        disp('--> Hmin/Hmax/Hstart must be positive');
+    case (-4)
+        disp('--> FacMin/FacMax/FacRej must be positive');
+    case (-5)
+        disp('--> Improper tolerance values');
+    case (-6)
+        disp('--> No of steps exceeds maximum bound');
+    case (-7)
+        disp('--> Step size too small: T + 10*H = T or H < Roundoff');
+    case (-8)
+        disp('--> Matrix is repeatedly singular');
+    otherwise
+        disp(['Unknown Error code: ', num2str(Code)]);
+end
+
+disp(['T=',num2str(T),' and H=',num2str(H)]);
+
+return
+
+
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+function [X] = ros_Solve(JVS, Pivot, X)
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+%  Template for the forward/backward substitution 
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+global Nsol ISTATUS
+
+X = JVS\X;
+Pivot(1) = 1;
+ISTATUS(Nsol) = ISTATUS(Nsol) + 1;
+
+return
+
+
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+function [ params ] = Ros2()
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+% --- AN L-STABLE METHOD, 2 stages, order 2
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+g = 1.0 + 1.0/sqrt(2.0);
+rosMethod = 1;
+%~~~> Name of the method
+ros_Name = 'ROS-2';
+%~~~> Number of stages
+ros_S = 2;
+
+%~~~> The coefficient matrices A and C are strictly lower triangular.
+%   The lower triangular (subdiagonal) elements are stored in row-wise order:
+%   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+%   The general mapping formula is:
+%       A(i,j) = ros_A( (i-1)*(i-2)/2 + j )
+%       C(i,j) = ros_C( (i-1)*(i-2)/2 + j )
+
+ros_A(1) = (1.0)/g;
+ros_C(1) = (-2.0)/g;
+%~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+%   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+ros_NewF(1) = true;
+ros_NewF(2) = true;
+%~~~> M_i = Coefficients for new step solution
+ros_M(1)= (3.0)/(2.0*g);
+ros_M(2)= (1.0)/(2.0*g);
+% E_i = Coefficients for error estimator
+ros_E(1) = 1.0/(2.0*g);
+ros_E(2) = 1.0/(2.0*g);
+%~~~> ros_ELO = estimator of local order - the minimum between the
+%    main and the embedded scheme orders plus one
+ros_ELO = 2.0;
+%~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+ros_Alpha(1) = 0.0;
+ros_Alpha(2) = 1.0;
+%~~~> Gamma_i = \sum_j  gamma_{i,j}
+ros_Gamma(1) = g;
+ros_Gamma(2) =-g;
+
+params = { ros_S, rosMethod, ros_A, ros_C, ros_M, ros_E, ...
+    ros_Alpha, ros_Gamma, ros_ELO, ros_NewF, ros_Name };
+
+return
+
+
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+function [ params ] = Ros3()
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+% --- AN L-STABLE METHOD, 3 stages, order 3, 2 function evaluations
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+rosMethod = 2;
+%~~~> Name of the method
+ros_Name = 'ROS-3';
+%~~~> Number of stages
+ros_S = 3;
+
+%~~~> The coefficient matrices A and C are strictly lower triangular.
+%   The lower triangular (subdiagonal) elements are stored in row-wise order:
+%   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+%   The general mapping formula is:
+%       A(i,j) = ros_A( (i-1)*(i-2)/2 + j )
+%       C(i,j) = ros_C( (i-1)*(i-2)/2 + j )
+
+ros_A(1)= 1.0;
+ros_A(2)= 1.0;
+ros_A(3)= 0.0;
+
+ros_C(1) = -0.10156171083877702091975600115545E+01;
+ros_C(2) =  0.40759956452537699824805835358067E+01;
+ros_C(3) =  0.92076794298330791242156818474003E+01;
+%~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+%   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+ros_NewF(1) = true;
+ros_NewF(2) = true;
+ros_NewF(3) = false;
+%~~~> M_i = Coefficients for new step solution
+ros_M(1) =  0.1E+01;
+ros_M(2) =  0.61697947043828245592553615689730E+01;
+ros_M(3) = -0.42772256543218573326238373806514;
+% E_i = Coefficients for error estimator
+ros_E(1) =  0.5;
+ros_E(2) = -0.29079558716805469821718236208017E+01;
+ros_E(3) =  0.22354069897811569627360909276199;
+%~~~> ros_ELO = estimator of local order - the minimum between the
+%    main and the embedded scheme orders plus 1
+ros_ELO = 3.0;
+%~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+ros_Alpha(1)= 0.0;
+ros_Alpha(2)= 0.43586652150845899941601945119356;
+ros_Alpha(3)= 0.43586652150845899941601945119356;
+%~~~> Gamma_i = \sum_j  gamma_{i,j}
+ros_Gamma(1)= 0.43586652150845899941601945119356;
+ros_Gamma(2)= 0.24291996454816804366592249683314;
+ros_Gamma(3)= 0.21851380027664058511513169485832E+01;
+
+params = { ros_S, rosMethod, ros_A, ros_C, ros_M, ros_E, ...
+    ros_Alpha, ros_Gamma, ros_ELO, ros_NewF, ros_Name };
+
+return
+
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+function [ params ] = Ros4()
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+%     L-STABLE ROSENBROCK METHOD OF ORDER 4, WITH 4 STAGES
+%     L-STABLE EMBEDDED ROSENBROCK METHOD OF ORDER 3
+%
+%      E. HAIRER AND G. WANNER, SOLVING ORDINARY DIFFERENTIAL
+%      EQUATIONS II. STIFF AND DIFFERENTIAL-ALGEBRAIC PROBLEMS.
+%      SPRINGER SERIES IN COMPUTATIONAL MATHEMATICS,
+%      SPRINGER-VERLAG (1990)
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+rosMethod = 3;
+%~~~> Name of the method
+ros_Name = 'ROS-4';
+%~~~> Number of stages
+ros_S = 4;
+
+%~~~> The coefficient matrices A and C are strictly lower triangular.
+%   The lower triangular (subdiagonal) elements are stored in row-wise order:
+%   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+%   The general mapping formula is:
+%       A(i,j) = ros_A( (i-1)*(i-2)/2 + j )
+%       C(i,j) = ros_C( (i-1)*(i-2)/2 + j )
+
+ros_A(1) = 0.2000000000000000E+01;
+ros_A(2) = 0.1867943637803922E+01;
+ros_A(3) = 0.2344449711399156;
+ros_A(4) = ros_A(2);
+ros_A(5) = ros_A(3);
+ros_A(6) = 0.0;
+
+ros_C(1) =-0.7137615036412310E+01;
+ros_C(2) = 0.2580708087951457E+01;
+ros_C(3) = 0.6515950076447975;
+ros_C(4) =-0.2137148994382534E+01;
+ros_C(5) =-0.3214669691237626;
+ros_C(6) =-0.6949742501781779;
+%~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+%   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+ros_NewF(1)  = true;
+ros_NewF(2)  = true;
+ros_NewF(3)  = true;
+ros_NewF(4)  = false;
+%~~~> M_i = Coefficients for new step solution
+ros_M(1) = 0.2255570073418735E+01;
+ros_M(2) = 0.2870493262186792;
+ros_M(3) = 0.4353179431840180;
+ros_M(4) = 0.1093502252409163E+01;
+%~~~> E_i  = Coefficients for error estimator
+ros_E(1) =-0.2815431932141155;
+ros_E(2) =-0.7276199124938920E-01;
+ros_E(3) =-0.1082196201495311;
+ros_E(4) =-0.1093502252409163E+01;
+%~~~> ros_ELO  = estimator of local order - the minimum between the
+%    main and the embedded scheme orders plus 1
+ros_ELO  = 4.0;
+%~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+ros_Alpha(1) = 0.0;
+ros_Alpha(2) = 0.1145640000000000E+01;
+ros_Alpha(3) = 0.6552168638155900;
+ros_Alpha(4) = ros_Alpha(3);
+%~~~> Gamma_i = \sum_j  gamma_{i,j}
+ros_Gamma(1) = 0.5728200000000000;
+ros_Gamma(2) =-0.1769193891319233E+01;
+ros_Gamma(3) = 0.7592633437920482;
+ros_Gamma(4) =-0.1049021087100450;
+
+params = { ros_S, rosMethod, ros_A, ros_C, ros_M, ros_E, ...
+    ros_Alpha, ros_Gamma, ros_ELO, ros_NewF, ros_Name };
+
+return
+
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+function [ params ] = Rodas3()
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+% --- A STIFFLY-STABLE METHOD, 4 stages, order 3
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+rosMethod = 4;
+%~~~> Name of the method
+ros_Name = 'RODAS-3';
+%~~~> Number of stages
+ros_S = 4;
+
+%~~~> The coefficient matrices A and C are strictly lower triangular.
+%   The lower triangular (subdiagonal) elements are stored in row-wise order:
+%   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+%   The general mapping formula is:
+%       A(i,j) = ros_A( (i-1)*(i-2)/2 + j )
+%       C(i,j) = ros_C( (i-1)*(i-2)/2 + j )
+
+ros_A(1) = 0.0;
+ros_A(2) = 2.0;
+ros_A(3) = 0.0;
+ros_A(4) = 2.0;
+ros_A(5) = 0.0;
+ros_A(6) = 1.0;
+
+ros_C(1) = 4.0;
+ros_C(2) = 1.0;
+ros_C(3) =-1.0;
+ros_C(4) = 1.0;
+ros_C(5) =-1.0;
+ros_C(6) =-(8.0/3.0);
+
+%~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+%   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+ros_NewF(1)  = true;
+ros_NewF(2)  = false;
+ros_NewF(3)  = true;
+ros_NewF(4)  = true;
+%~~~> M_i = Coefficients for new step solution
+ros_M(1) = 2.0;
+ros_M(2) = 0.0;
+ros_M(3) = 1.0;
+ros_M(4) = 1.0;
+%~~~> E_i  = Coefficients for error estimator
+ros_E(1) = 0.0;
+ros_E(2) = 0.0;
+ros_E(3) = 0.0;
+ros_E(4) = 1.0;
+%~~~> ros_ELO  = estimator of local order - the minimum between the
+%    main and the embedded scheme orders plus 1
+ros_ELO  = 3.0;
+%~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+ros_Alpha(1) = 0.0;
+ros_Alpha(2) = 0.0;
+ros_Alpha(3) = 1.0;
+ros_Alpha(4) = 1.0;
+%~~~> Gamma_i = \sum_j  gamma_{i,j}
+ros_Gamma(1) = 0.5;
+ros_Gamma(2) = 1.5;
+ros_Gamma(3) = 0.0;
+ros_Gamma(4) = 0.0;
+
+params = { ros_S, rosMethod, ros_A, ros_C, ros_M, ros_E, ...
+    ros_Alpha, ros_Gamma, ros_ELO, ros_NewF, ros_Name };
+
+return
+
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+function [ params ] = Rodas4()
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+%     STIFFLY-STABLE ROSENBROCK METHOD OF ORDER 4, WITH 6 STAGES
+%
+%      E. HAIRER AND G. WANNER, SOLVING ORDINARY DIFFERENTIAL
+%      EQUATIONS II. STIFF AND DIFFERENTIAL-ALGEBRAIC PROBLEMS.
+%      SPRINGER SERIES IN COMPUTATIONAL MATHEMATICS,
+%      SPRINGER-VERLAG (1996)
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+rosMethod = 5;
+%~~~> Name of the method
+ros_Name = 'RODAS-4';
+%~~~> Number of stages
+ros_S = 6;
+
+%~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+ros_Alpha(1) = 0.000;
+ros_Alpha(2) = 0.386;
+ros_Alpha(3) = 0.210;
+ros_Alpha(4) = 0.630;
+ros_Alpha(5) = 1.000;
+ros_Alpha(6) = 1.000;
+
+%~~~> Gamma_i = \sum_j  gamma_{i,j}
+ros_Gamma(1) = 0.2500000000000000;
+ros_Gamma(2) =-0.1043000000000000;
+ros_Gamma(3) = 0.1035000000000000;
+ros_Gamma(4) =-0.3620000000000023E-01;
+ros_Gamma(5) = 0.0;
+ros_Gamma(6) = 0.0;
+
+%~~~> The coefficient matrices A and C are strictly lower triangular.
+%   The lower triangular (subdiagonal) elements are stored in row-wise order:
+%   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+%   The general mapping formula is:  A(i,j) = ros_A( (i-1)*(i-2)/2 + j )
+%                  C(i,j) = ros_C( (i-1)*(i-2)/2 + j )
+
+ros_A(1) = 0.1544000000000000E+01;
+ros_A(2) = 0.9466785280815826;
+ros_A(3) = 0.2557011698983284;
+ros_A(4) = 0.3314825187068521E+01;
+ros_A(5) = 0.2896124015972201E+01;
+ros_A(6) = 0.9986419139977817;
+ros_A(7) = 0.1221224509226641E+01;
+ros_A(8) = 0.6019134481288629E+01;
+ros_A(9) = 0.1253708332932087E+02;
+ros_A(10) =-0.6878860361058950;
+ros_A(11) = ros_A(7);
+ros_A(12) = ros_A(8);
+ros_A(13) = ros_A(9);
+ros_A(14) = ros_A(10);
+ros_A(15) = 1.0;
+
+ros_C(1) =-0.5668800000000000E+01;
+ros_C(2) =-0.2430093356833875E+01;
+ros_C(3) =-0.2063599157091915;
+ros_C(4) =-0.1073529058151375;
+ros_C(5) =-0.9594562251023355E+01;
+ros_C(6) =-0.2047028614809616E+02;
+ros_C(7) = 0.7496443313967647E+01;
+ros_C(8) =-0.1024680431464352E+02;
+ros_C(9) =-0.3399990352819905E+02;
+ros_C(10) = 0.1170890893206160E+02;
+ros_C(11) = 0.8083246795921522E+01;
+ros_C(12) =-0.7981132988064893E+01;
+ros_C(13) =-0.3152159432874371E+02;
+ros_C(14) = 0.1631930543123136E+02;
+ros_C(15) =-0.6058818238834054E+01;
+
+%~~~> M_i = Coefficients for new step solution
+ros_M(1) = ros_A(7);
+ros_M(2) = ros_A(8);
+ros_M(3) = ros_A(9);
+ros_M(4) = ros_A(10);
+ros_M(5) = 1.0;
+ros_M(6) = 1.0;
+
+%~~~> E_i  = Coefficients for error estimator
+ros_E(1) = 0.0;
+ros_E(2) = 0.0;
+ros_E(3) = 0.0;
+ros_E(4) = 0.0;
+ros_E(5) = 0.0;
+ros_E(6) = 1.0;
+
+%~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+%   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+ros_NewF(1) = true;
+ros_NewF(2) = true;
+ros_NewF(3) = true;
+ros_NewF(4) = true;
+ros_NewF(5) = true;
+ros_NewF(6) = true;
+
+%~~~> ros_ELO  = estimator of local order - the minimum between the
+%        main and the embedded scheme orders plus 1
+ros_ELO = 4.0;
+
+params = { ros_S, rosMethod, ros_A, ros_C, ros_M, ros_E, ...
+    ros_Alpha, ros_Gamma, ros_ELO, ros_NewF, ros_Name };
+
+return
+
+% End of INTEGRATE function
+% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/rosenbrock_adj.c
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/rosenbrock_adj.c	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/rosenbrock_adj.c	(revision 2696)
@@ -0,0 +1,2470 @@
+#define MAX(a,b) ( ((a) >= (b)) ? (a):(b)  )
+#define MIN(b,c) ( ((b) < (c))  ? (b):(c)  )
+#define ABS(x)	 ( ((x) >= 0 )  ? (x):(-x) )
+#define SQRT(d)  ( pow((d),0.5) )
+
+/* Numerical Constants */
+#define ZERO	    (KPP_REAL)0.0
+#define ONE	    (KPP_REAL)1.0
+#define HALF        (KPP_REAL)0.5
+#define DeltaMin    (KPP_REAL)1.0e-5
+enum boolean { FALSE=0, TRUE=1 };
+
+/*  Statistics on the work performed by the Rosenbrock method */
+enum statistics { Nfun=1, Njac=2, Nstp=3, Nacc=4, Nrej=5, Ndec=6, Nsol=7, 
+		  Nsng=8, Ntexit=1, Nhexit=2, Nhnew=3 };
+
+/*~~~>  Parameters of the Rosenbrock method, up to 6 stages */
+int ros_S, rosMethod;
+enum ros_Params { RS2=1, RS3=2, RS4=3, RD3=4, RD4=5 };
+KPP_REAL ros_A[15], ros_C[15], ros_M[6], ros_E[6], ros_Alpha[6], ros_Gamma[6], 
+       ros_ELO;
+int ros_NewF[6]; /* Holds Boolean values */
+char ros_Name[12]; /* Length 12 */
+
+/*~~~>  Types of Adjoints Implemented */
+enum adjoint { Adj_none=1, Adj_discrete=2, Adj_continuous=3, 
+	       Adj_simple_continuous=4 };
+
+/*~~~>  Checkpoints in memory */
+int bufsize = 200000;
+int stack_ptr; /* last written entry */
+KPP_REAL *chk_H, *chk_T;
+KPP_REAL **chk_Y, **chk_K, **chk_J; /* 2D arrays */
+KPP_REAL **chk_dY, **chk_d2Y; /* 2D arrays */
+
+/* Function Headers */
+void INTEGRATE_ADJ(int NADJ, KPP_REAL Y[], KPP_REAL Lambda[][NVAR], 
+		   KPP_REAL TIN, KPP_REAL TOUT, KPP_REAL ATOL_adj[][NVAR], 
+		   KPP_REAL RTOL_adj[][NVAR], int ICNTRL_U[], 
+		   KPP_REAL RCNTRL_U[], int ISTATUS_U[], KPP_REAL RSTATUS_U[]);
+int RosenbrockADJ( KPP_REAL Y[], int NADJ, KPP_REAL Lambda[][NVAR],
+		   KPP_REAL Tstart, KPP_REAL Tend, KPP_REAL AbsTol[], 
+		   KPP_REAL RelTol[], KPP_REAL AbsTol_adj[][NVAR], 
+		   KPP_REAL RelTol_adj[][NVAR], KPP_REAL RCNTRL[], 
+		   int ICNTRL[], KPP_REAL RSTATUS[], int ISTATUS[] );
+void ros_AllocateDBuffers( int S, int SaveLU );
+void ros_FreeDBuffers( int SaveLU );
+void ros_AllocateCBuffers();
+void ros_FreeCBuffers();
+void ros_DPush( int S, KPP_REAL T, KPP_REAL H, KPP_REAL Ystage[], 
+		KPP_REAL K[], KPP_REAL E[], int P[], int SaveLU );
+void ros_DPop( int S, KPP_REAL* T, KPP_REAL* H, KPP_REAL* Ystage, 
+	       KPP_REAL* K, KPP_REAL* E, int* P, int SaveLU );
+void ros_CPush( KPP_REAL T, KPP_REAL H, KPP_REAL Y[], KPP_REAL dY[], 
+		KPP_REAL d2Y[] );
+void ros_CPop( KPP_REAL T, KPP_REAL H, KPP_REAL Y[], KPP_REAL dY[], 
+	       KPP_REAL d2Y[] );
+int ros_ErrorMsg( int Code, KPP_REAL T, KPP_REAL H);
+int ros_FwdInt (KPP_REAL Y[], KPP_REAL Tstart, KPP_REAL Tend, KPP_REAL T, 
+		KPP_REAL AbsTol[], KPP_REAL RelTol[], int AdjointType, 
+		KPP_REAL Hmin, KPP_REAL Hstart, KPP_REAL Hmax, 
+		KPP_REAL Roundoff, int ISTATUS[], int Max_no_steps, 
+		KPP_REAL RSTATUS[], int Autonomous, int VectorTol, 
+		KPP_REAL FacMax, KPP_REAL FacMin, KPP_REAL FacSafe, 
+		KPP_REAL FacRej, int SaveLU);
+int ros_DadjInt ( int NADJ, KPP_REAL Lambda[][NVAR], KPP_REAL Tstart, 
+		  KPP_REAL Tend, KPP_REAL T, int SaveLU, int ISTATUS[], 
+		  KPP_REAL Roundoff, int Autonomous);
+int ros_CadjInt ( int NADJ, KPP_REAL Y[][NVAR], KPP_REAL Tstart, KPP_REAL Tend,
+		  KPP_REAL T, KPP_REAL AbsTol_adj[][NVAR], 
+		  KPP_REAL RelTol_adj[][NVAR], KPP_REAL RSTATUS[], 
+		  KPP_REAL Hmin, KPP_REAL Hmax, KPP_REAL Hstart, 
+		  KPP_REAL Roundoff, int Max_no_steps, int Autonomous, 
+		  int VectorTol, KPP_REAL FacMax, KPP_REAL FacMin, 
+		  KPP_REAL FacSafe, KPP_REAL FacRej, int ISTATUS[] );
+int ros_SimpleCadjInt ( int NADJ, KPP_REAL Y[][NVAR], KPP_REAL Tstart, 
+			KPP_REAL Tend, KPP_REAL T, int ISTATUS[], 
+			int Autonomous,	KPP_REAL Roundoff );
+KPP_REAL ros_ErrorNorm ( KPP_REAL Y[], KPP_REAL Ynew[], KPP_REAL Yerr[], 
+		       KPP_REAL AbsTol[], KPP_REAL RelTol[], int VectorTol );
+void ros_FunTimeDerivative ( KPP_REAL T, KPP_REAL Roundoff, KPP_REAL Y[], 
+			     KPP_REAL Fcn0[], KPP_REAL dFdT[], int ISTATUS[] );
+void ros_JacTimeDerivative ( KPP_REAL T, KPP_REAL Roundoff, KPP_REAL Y[], 
+			     KPP_REAL Jac0[], KPP_REAL dJdT[], int ISTATUS[] );
+int ros_PrepareMatrix ( KPP_REAL H, int Direction, KPP_REAL gam, 
+			 KPP_REAL Jac0[], KPP_REAL Ghimj[], int Pivot[], 
+			 int ISTATUS[] );
+void ros_Decomp( KPP_REAL A[], int Pivot[], int* ising, int ISTATUS[] );
+void ros_Solve( char How, KPP_REAL A[], int Pivot[], KPP_REAL b[], 
+		int ISTATUS[] );
+void ros_cadj_Y( KPP_REAL T, KPP_REAL Y[] );
+void ros_Hermite3( KPP_REAL a, KPP_REAL b, KPP_REAL T, KPP_REAL Ya[], 
+		   KPP_REAL Yb[], KPP_REAL Ja[], KPP_REAL Jb[], KPP_REAL Y[] );
+void ros_Hermite5( KPP_REAL a, KPP_REAL b, KPP_REAL T, KPP_REAL Ya[], 
+		   KPP_REAL Yb[], KPP_REAL Ja[], KPP_REAL Jb[], KPP_REAL Ha[], 
+		   KPP_REAL Hb[], KPP_REAL Y[] );
+void Ros2();
+void Ros3();
+void Ros4();
+void Rodas3();
+void Rodas4();
+void JacTemplate( KPP_REAL T, KPP_REAL Y[], KPP_REAL Jcb[] );
+void HessTemplate( KPP_REAL T, KPP_REAL Y[], KPP_REAL Hes[] );
+void FunTemplate( KPP_REAL T, KPP_REAL Y[], KPP_REAL Fun [] ); 
+void WSCAL( int N, KPP_REAL Alpha, KPP_REAL X[], int incX );
+void WAXPY( int N, KPP_REAL Alpha, KPP_REAL X[], int incX, KPP_REAL Y[], 
+	    int incY );
+void WCOPY( int N, KPP_REAL X[], int incX, KPP_REAL Y[], int incY );
+KPP_REAL WLAMCH( char C );
+void Update_SUN();
+void Update_RCONST();
+void Fun( KPP_REAL Y[], KPP_REAL FIX[], KPP_REAL RCONST[], KPP_REAL Ydot[] );
+void Jac_SP( KPP_REAL Y[], KPP_REAL FIX[], KPP_REAL RCONST[], KPP_REAL Ydot[]);
+void Jac_SP_Vec( KPP_REAL Jac[], KPP_REAL Fcn[], KPP_REAL K[] );
+void JacTR_SP_Vec( KPP_REAL Jac[], KPP_REAL Fcn[], KPP_REAL K[] );
+void HessTR_Vec(KPP_REAL Hess[], KPP_REAL U1[], KPP_REAL U2[], KPP_REAL HTU[]);
+void KppSolve( KPP_REAL A[], KPP_REAL b[] );
+int KppDecomp( KPP_REAL A[] );
+void KppSolveTR( KPP_REAL JVS[], KPP_REAL X[], KPP_REAL XX[] );
+void Hessian( KPP_REAL V[], KPP_REAL F[], KPP_REAL RCT[], KPP_REAL Hess[] );
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void INTEGRATE_ADJ( int NADJ, KPP_REAL Y[], KPP_REAL Lambda[][NVAR], 
+		    KPP_REAL TIN, KPP_REAL TOUT, KPP_REAL ATOL_adj[][NVAR], 
+		    KPP_REAL RTOL_adj[][NVAR], int ICNTRL_U[], 
+		    KPP_REAL RCNTRL_U[], int ISTATUS_U[], 
+		    KPP_REAL RSTATUS_U[] ) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+/*  Local Variables */
+  KPP_REAL RCNTRL[20], RSTATUS[20];
+  int ICNTRL[20], ISTATUS[20], IERR, i;
+
+  for( i = 0; i < 20; i++ ) {
+    ICNTRL[i]  = 0;
+    RCNTRL[i]  = ZERO;
+    ISTATUS[i] = 0;
+    RSTATUS[i] = ZERO;
+  }
+
+/*~~~> fine-tune the integrator:
+  ICNTRL(1) = 0       ! 0 = non-autonomous, 1 = autonomous
+  ICNTRL(2) = 1       ! 0 = scalar, 1 = vector tolerances
+  RCNTRL(3) = STEPMIN ! starting step
+  ICNTRL(3) = 5       ! choice of the method for forward integration
+  ICNTRL(6) = 1       ! choice of the method for continuous adjoint
+  ICNTRL(7) = 2       ! 1=none, 2=discrete, 3=full continuous, 
+                        4=simplified continuous adjoint
+  ICNTRL(8) = 1       ! Save fwd LU factorization: 0=*don't* save, 1=save */
+
+/* if optional parameters are given, and if they are >=0, then they overwrite 
+   default settings */
+//  if(ICNTRL_U != NULL) {
+//    for(i=0; i<20; i++)
+//	if(ICNTRL_U[i] > 0)
+//	  ICNTRL[i] = ICNTRL_U[i];
+//    } /* end for */
+//  } /* end if */
+
+//  if(RCNTRL_U != NULL) {
+//    for(i=0; i<20; i++)
+//	if(RCNTRL_U[i] > 0)
+//	  RCNTRL[i] = RCNTRL_U[i];
+//    } /* end for */
+//  } /* end if */
+
+  IERR = RosenbrockADJ( Y, NADJ, Lambda, TIN, TOUT, ATOL, RTOL, ATOL_adj, 
+			RTOL_adj, RCNTRL, ICNTRL, RSTATUS, ISTATUS );
+
+  if (IERR < 0)
+    printf( "RosenbrockADJ: Unsucessful step at T=%f (IERR=%d)", TIN, IERR );
+
+  STEPMIN = RSTATUS[Nhexit];
+
+/* if optional parameters are given for output 
+         copy to them to return information */
+//  if(ISTATUS_U != NULL)
+//    for(i=0; i<20; i++)
+//	ISTATUS_U[i] = ISTATUS[i];
+//  }
+
+//  if(RSTATUS_U != NULL)
+//    for(i=0; i<20; i++)
+//	RSTATUS_U[i] = RSTATUS[i];
+//  }
+
+} /* End of INTEGRATE_ADJ */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+int RosenbrockADJ( KPP_REAL Y[], int NADJ, KPP_REAL Lambda[][NVAR],
+		   KPP_REAL Tstart, KPP_REAL Tend, KPP_REAL AbsTol[], 
+		   KPP_REAL RelTol[], KPP_REAL AbsTol_adj[][NVAR],
+		   KPP_REAL RelTol_adj[][NVAR], KPP_REAL RCNTRL[],
+		   int ICNTRL[], KPP_REAL RSTATUS[], int ISTATUS[] ) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+    ADJ = Adjoint of the Tangent Linear Model of a Rosenbrock Method
+
+    Solves the system y'=F(t,y) using a RosenbrockADJ method defined by:
+
+     G = 1/(H*gamma(1)) - Jac(t0,Y0)
+     T_i = t0 + Alpha(i)*H
+     Y_i = Y0 + \sum_{j=1}^{i-1} A(i,j)*K_j
+     G * K_i = Fun( T_i, Y_i ) + \sum_{j=1}^S C(i,j)/H * K_j +
+         gamma(i)*dF/dT(t0, Y0)
+     Y1 = Y0 + \sum_{j=1}^S M(j)*K_j 
+
+    For details on RosenbrockADJ methods and their implementation consult:
+      E. Hairer and G. Wanner
+      "Solving ODEs II. Stiff and differential-algebraic problems".
+      Springer series in computational mathematics, Springer-Verlag, 1996.  
+    The codes contained in the book inspired this implementation.
+
+    (C)  Adrian Sandu, August 2004
+    Virginia Polytechnic Institute and State University
+    Contact: sandu@cs.vt.edu
+    Revised by Philipp Miehe and Adrian Sandu, May 2006
+    Translation F90 to C by Paul Eller, April 2007
+    This implementation is part of KPP - the Kinetic PreProcessor
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+~~~>   INPUT ARGUMENTS:
+
+-     Y[NVAR]    = vector of initial conditions (at T=Tstart)
+      NADJ       -> dimension of linearized system,
+                   i.e. the number of sensitivity coefficients
+-     Lambda[NVAR][NADJ] -> vector of initial sensitivity conditions 
+                            (at T=Tstart)
+-    [Tstart,Tend]  = time range of integration
+     (if Tstart>Tend the integration is performed backwards in time)
+-    RelTol, AbsTol = user precribed accuracy
+- void Fun( T, Y, Ydot ) = ODE function,
+                       returns Ydot = Y' = F(T,Y)
+- void Jac( T, Y, Jcb ) = Jacobian of the ODE function,
+                       returns Jcb = dF/dY
+-    ICNTRL[0:9]    = integer inputs parameters
+-    RCNTRL[0:9]    = real inputs parameters
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+~~~>     OUTPUT ARGUMENTS:
+
+-    Y[NVAR]    -> vector of final states (at T->Tend)
+-    Lambda[NVAR][NADJ] -> vector of final sensitivities (at T=Tend)
+-    ICNTRL[9:18]   -> integer output parameters
+-    RCNTRL[9:18]   -> real output parameters
+-    IERR       -> job status upon return
+       - succes (positive value) or failure (negative value) -
+           =  1 : Success
+           = -1 : Improper value for maximal no of steps
+           = -2 : Selected RosenbrockADJ method not implemented
+           = -3 : Hmin/Hmax/Hstart must be positive
+           = -4 : FacMin/FacMax/FacRej must be positive
+           = -5 : Improper tolerance values
+           = -6 : No of steps exceeds maximum bound
+           = -7 : Step size too small
+           = -8 : Matrix is repeatedly singular
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+~~~>     INPUT PARAMETERS:
+
+    Note: For input parameters equal to zero the default values of the
+       corresponding variables are used.
+
+    ICNTRL[0]   = 1: F = F(y)   Independent of T (AUTONOMOUS)
+              = 0: F = F(t,y) Depends on T (NON-AUTONOMOUS)
+
+    ICNTRL[1]   = 0: AbsTol, RelTol are NVAR-dimensional vectors
+              = 1:  AbsTol, RelTol are scalars
+
+    ICNTRL[2]  -> selection of a particular Rosenbrock method
+        = 0 :  default method is Rodas3
+        = 1 :  method is  Ros2
+        = 2 :  method is  Ros3 
+        = 3 :  method is  Ros4 
+        = 4 :  method is  Rodas3
+        = 5:   method is  Rodas4
+
+    ICNTRL[3]  -> maximum number of integration steps
+        For ICNTRL[4]=0) the default value of BUFSIZE is used
+
+    ICNTRL[5]  -> selection of a particular Rosenbrock method for the
+                continuous adjoint integration - for cts adjoint it
+                can be different than the forward method ICNTRL(3)
+         Note 1: to avoid interpolation errors (which can be huge!) 
+                   it is recommended to use only ICNTRL[6] = 2 or 4
+         Note 2: the performance of the full continuous adjoint
+                   strongly depends on the forward solution accuracy Abs/RelTol
+
+    ICNTRL[6] -> Type of adjoint algorithm
+         = 0 : default is discrete adjoint ( of method ICNTRL[3] )
+         = 1 : no adjoint
+         = 2 : discrete adjoint ( of method ICNTRL[3] )
+         = 3 : fully adaptive continuous adjoint ( with method ICNTRL[6] )
+         = 4 : simplified continuous adjoint ( with method ICNTRL[6] )
+
+    ICNTRL[7]  -> checkpointing the LU factorization at each step:
+        ICNTRL[7]=0 : do *not* save LU factorization (the default)
+        ICNTRL[7]=1 : save LU factorization
+        Note: if ICNTRL[7]=1 the LU factorization is *not* saved
+
+~~~>  Real input parameters:
+
+    RCNTRL[0]  -> Hmin, lower bound for the integration step size
+          It is strongly recommended to keep Hmin = ZERO
+
+    RCNTRL[1]  -> Hmax, upper bound for the integration step size
+
+    RCNTRL[2]  -> Hstart, starting value for the integration step size
+
+    RCNTRL[3]  -> FacMin, lower bound on step decrease factor (default=0.2)
+
+    RCNTRL[4]  -> FacMax, upper bound on step increase factor (default=6)
+
+    RCNTRL[5]  -> FacRej, step decrease factor after multiple rejections
+            (default=0.1)
+
+    RCNTRL[6]  -> FacSafe, by which the new step is slightly smaller
+         than the predicted value  (default=0.9)
+
+    RCNTRL[7]  -> ThetaMin. If Newton convergence rate smaller
+                  than ThetaMin the Jacobian is not recomputed;
+                  (default=0.001)
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+~~~>     OUTPUT PARAMETERS:
+
+    Note: each call to RosenbrockADJ adds the corrent no. of fcn calls
+      to previous value of ISTATUS(1), and similar for the other params.
+      Set ISTATUS[0:9] = 0 before call to avoid this accumulation.
+
+    ISTATUS[0] = No. of function calls
+    ISTATUS[1] = No. of jacobian calls
+    ISTATUS[2] = No. of steps
+    ISTATUS[3] = No. of accepted steps
+    ISTATUS[4] = No. of rejected steps (except at the beginning)
+    ISTATUS[5] = No. of LU decompositions
+    ISTATUS[6] = No. of forward/backward substitutions
+    ISTATUS[7] = No. of singular matrix decompositions
+
+    RSTATUS[0]  -> Texit, the time corresponding to the 
+                   computed Y upon return
+    RSTATUS[1]  -> Hexit, last accepted step before exit
+    For multiple restarts, use Hexit as Hstart in the following run
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+/*~~~>  Local variables */
+  KPP_REAL Roundoff, FacMin, FacMax, FacRej, FacSafe;
+  KPP_REAL Hmin, Hmax, Hstart;
+  KPP_REAL Texit=0.0;
+  int i, UplimTol, Max_no_steps=0, IERR;
+  int AdjointType=0, CadjMethod=0;
+  int Autonomous, VectorTol, SaveLU; /* Holds boolean values */
+
+  stack_ptr = -1;
+
+/*~~~>  Initialize statistics */
+  for(i=0; i<20; i++) {
+    ISTATUS[i] = 0;
+    RSTATUS[i] = ZERO;
+  }
+
+/*~~~>  Autonomous or time dependent ODE. Default is time dependent. */
+  Autonomous = !(ICNTRL[0] == 0);
+
+/*~~~> For Scalar tolerances(ICNTRL[1] != 0) the code uses AbsTol[0] and 
+         RelTol[0]
+   For Vector tolerances(ICNTRL[1] == 0) the code uses AbsTol[1:NVAR] and 
+     RelTol[1:NVAR] */
+
+  if (ICNTRL[1] == 0) {
+    VectorTol = TRUE;
+    UplimTol  = NVAR;
+  }
+  else { 
+    VectorTol = FALSE;
+    UplimTol  = 1;
+  }
+
+/*~~~>   Initialize the particular Rosenbrock method selected */
+  switch( ICNTRL[2] ) {
+    case 0:
+    case 4:
+      Rodas3();
+      break;
+    case 1:
+      Ros2();
+      break;
+    case 2:
+      Ros3();
+      break;
+    case 3:
+      Ros4();
+      break;
+    case 5:
+      Rodas4();
+      break;
+    default:
+      printf( "Unknown Rosenbrock method: ICNTRL[2]=%d", ICNTRL[2] );
+      return ros_ErrorMsg(-2, Tstart, ZERO);
+  } /* End switch */
+
+/*~~~>   The maximum number of steps admitted */
+  if (ICNTRL[3] == 0)
+    Max_no_steps = bufsize - 1;
+  else if (Max_no_steps > 0)
+    Max_no_steps = ICNTRL[3];
+  else {
+    printf("User-selected max no. of steps: ICNTRL[3]=%d",ICNTRL[3] );
+    return ros_ErrorMsg(-1,Tstart,ZERO);
+  }
+
+/*~~~>The particular Rosenbrock method chosen for integrating the cts adjoint*/
+  if (ICNTRL[5] == 0)
+    CadjMethod = 4;
+  else if ( (ICNTRL[5] >= 1) && (ICNTRL[5] <= 5) )
+    CadjMethod = ICNTRL[5];
+  else {
+    printf( "Unknown CADJ Rosenbrock method: ICNTRL[5]=%d", CadjMethod );
+    return ros_ErrorMsg(-2,Tstart,ZERO);
+  }
+
+/*~~~>  Discrete or continuous adjoint formulation */
+  if ( ICNTRL[6] == 0 )
+    AdjointType = Adj_discrete;
+  else if ( (ICNTRL[6] >= 1) && (ICNTRL[6] <= 4) )
+    AdjointType = ICNTRL[6];
+  else {
+    printf( "User-selected adjoint type: ICNTRL[6]=%d", AdjointType );
+    return ros_ErrorMsg(-9,Tstart,ZERO);
+  }
+
+/*~~~> Save or not the forward LU factorization */
+  SaveLU = (ICNTRL[7] != 0);
+
+/*~~~>  Unit roundoff (1+Roundoff>1)  */
+  Roundoff = WLAMCH('E');
+
+/*~~~>  Lower bound on the step size: (positive value) */
+  if (RCNTRL[0] == ZERO)
+    Hmin = ZERO;
+  else if (RCNTRL[0] > ZERO)
+    Hmin = RCNTRL[0];
+  else {
+    printf( "User-selected Hmin: RCNTRL[0]=%f", RCNTRL[0] );
+    return ros_ErrorMsg(-3,Tstart,ZERO);
+  }
+
+/*~~~>  Upper bound on the step size: (positive value) */
+  if (RCNTRL[1] == ZERO)
+    Hmax = ABS(Tend-Tstart);
+  else if (RCNTRL[1] > ZERO)
+    Hmax = MIN(ABS(RCNTRL[1]),ABS(Tend-Tstart));
+  else {
+    printf( "User-selected Hmax: RCNTRL[1]=%f", RCNTRL[1] );
+    return ros_ErrorMsg(-3,Tstart,ZERO);
+  }
+
+/*~~~>  Starting step size: (positive value) */
+  if (RCNTRL[2] == ZERO) {
+    Hstart = MAX(Hmin,DeltaMin);
+  }
+  else if (RCNTRL[2] > ZERO)
+    Hstart = MIN(ABS(RCNTRL[2]),ABS(Tend-Tstart));
+  else {
+    printf( "User-selected Hstart: RCNTRL[2]=%f", RCNTRL[2] );
+    return ros_ErrorMsg(-3,Tstart,ZERO);
+  }
+
+/*~~~>  Step size can be changed s.t.  FacMin < Hnew/Hold < FacMax */
+  if (RCNTRL[3] == ZERO)
+    FacMin = (KPP_REAL)0.2;
+  else if (RCNTRL[3] > ZERO)
+    FacMin = RCNTRL[3];
+  else {
+    printf( "User-selected FacMin: RCNTRL[3]=%f", RCNTRL[3] );
+    return ros_ErrorMsg(-4,Tstart,ZERO);
+  }
+  if (RCNTRL[4] == ZERO)
+    FacMax = (KPP_REAL)6.0;
+  else if (RCNTRL[4] > ZERO)
+    FacMax = RCNTRL[4];
+  else {
+    printf( "User-selected FacMax: RCNTRL[4]=%f", RCNTRL[4] );
+    return ros_ErrorMsg(-4,Tstart,ZERO);
+  }
+
+/*~~~>   FacRej: Factor to decrease step after 2 succesive rejections */
+  if (RCNTRL[5] == ZERO)
+    FacRej = (KPP_REAL)0.1;
+  else if (RCNTRL[5] > ZERO)
+    FacRej = RCNTRL[5];
+  else {
+    printf( "User-selected FacRej: RCNTRL[5]=%f", RCNTRL[5] );
+    return ros_ErrorMsg(-4,Tstart,ZERO);
+  }
+
+/*~~~>   FacSafe: Safety Factor in the computation of new step size */
+  if (RCNTRL[6] == ZERO)
+    FacSafe = (KPP_REAL)0.9;
+  else if (RCNTRL[6] > ZERO)
+    FacSafe = RCNTRL[6];
+  else {
+    printf( "User-selected FacSafe: RCNTRL[6]=%f", RCNTRL[6] );
+    return ros_ErrorMsg(-4,Tstart,ZERO);
+  }
+
+/*~~~>  Check if tolerances are reasonable */
+  for(i=0; i < UplimTol; i++) {
+    if ( (AbsTol[i] <= ZERO) || (RelTol[i] <= (KPP_REAL)10.0*Roundoff)
+	 || (RelTol[i] >= (KPP_REAL)1.0) ) {
+      printf( " AbsTol[%d] = %f", i, AbsTol[i] );
+      printf( " RelTol[%d] = %f", i, RelTol[i] );
+      return ros_ErrorMsg(-5,Tstart,ZERO);
+    }
+  }
+
+/*~~~>  Allocate checkpoint space or open checkpoint files */
+  if (AdjointType == Adj_discrete) {
+    ros_AllocateDBuffers( ros_S, SaveLU );
+  }
+  else if ( (AdjointType == Adj_continuous) || 
+	    (AdjointType == Adj_simple_continuous) ) {
+    ros_AllocateCBuffers();
+  }
+
+/*~~~>  CALL Forward Rosenbrock method */
+  IERR = ros_FwdInt(Y, Tstart, Tend, Texit, AbsTol, RelTol, AdjointType, Hmin,
+		    Hstart, Hmax, Roundoff, ISTATUS, Max_no_steps, 
+		    RSTATUS, Autonomous, VectorTol, FacMax, FacMin,
+		    FacSafe, FacRej, SaveLU);
+
+  printf( "\n\nFORWARD STATISTICS\n" );
+  printf( "Step=%d Acc=%d Rej=%d Singular=%d\n\n", Nstp, Nacc, Nrej, Nsng );
+
+/*~~~>  If Forward integration failed return */
+  if (IERR<0)
+    return IERR;
+
+/*~~~>   Initialize the particular Rosenbrock method for continuous adjoint */
+  if ( (AdjointType == Adj_continuous) || 
+       (AdjointType == Adj_simple_continuous) ) {
+    switch (CadjMethod) {
+      case 1:
+	Ros2();
+	break;
+      case 2:
+	Ros3();
+	break;
+      case 3:
+	Ros4();
+	break;
+      case 4:
+	Rodas3();
+	break;
+      case 5:
+	Rodas4();
+	break;
+      default:
+	printf( "Unknown Rosenbrock method: ICNTRL[2]=%d", ICNTRL[2] );
+	return ros_ErrorMsg(-2,Tstart,ZERO);
+    }
+  } /* End switch */
+
+  switch( AdjointType ) {
+    case Adj_discrete:
+      IERR = ros_DadjInt (NADJ, Lambda, Tstart, Tend, Texit, SaveLU, ISTATUS, 
+			  Roundoff, Autonomous );
+      break;
+    case Adj_continuous:
+      IERR = ros_CadjInt (NADJ, Lambda, Tend, Tstart, Texit, AbsTol_adj, 
+			  RelTol_adj, RSTATUS, Hmin, Hmax, Hstart, Roundoff,
+			  Max_no_steps, Autonomous, VectorTol, FacMax, FacMin,
+			  FacSafe, FacRej, ISTATUS);
+      break;
+    case Adj_simple_continuous:
+      IERR = ros_SimpleCadjInt (NADJ, Lambda, Tstart, Tend, Texit, ISTATUS, 
+				Autonomous, Roundoff);
+  } /* End switch for AdjointType */
+
+  printf( "ADJOINT STATISTICS\n" );
+  printf( "Step=%d Acc=%d Rej=%d Singular=%d\n",Nstp,Nacc,Nrej,Nsng );
+
+/*~~~>  Free checkpoint space or close checkpoint files */
+  if (AdjointType == Adj_discrete)
+    ros_FreeDBuffers( SaveLU );
+  else if ( (AdjointType == Adj_continuous) || 
+	    (AdjointType == Adj_simple_continuous) )
+    ros_FreeCBuffers();
+
+  return IERR;
+}
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void ros_AllocateDBuffers( int S, int SaveLU ) {
+/*~~~>  Allocate buffer space for discrete adjoint
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+    
+  int i;
+    
+  chk_H = (KPP_REAL*) malloc(bufsize * sizeof(KPP_REAL));
+  if (chk_H == NULL) {
+    printf("Failed allocation of buffer H");
+    exit(0);
+  }
+    
+  chk_T = (KPP_REAL*) malloc(bufsize * sizeof(KPP_REAL));
+  if (chk_T == NULL) {
+    printf("Failed allocation of buffer T");
+    exit(0);
+  }
+  
+  chk_Y = (KPP_REAL**) malloc(bufsize * sizeof(KPP_REAL*));
+  if (chk_Y == NULL) {
+    printf("Failed allocation of buffer Y");
+    exit(0);
+  }
+  for(i=0; i<bufsize; i++) {
+    chk_Y[i] = (KPP_REAL*) malloc(NVAR * S * sizeof(KPP_REAL));
+    if (chk_Y[i] == NULL) {
+      printf("Failed allocation of buffer Y");
+      exit(0);
+    }
+  }
+    
+  chk_K = (KPP_REAL**) malloc(bufsize * sizeof(KPP_REAL*));
+  if (chk_K == NULL) {
+    printf("Failed allocation of buffer K");
+    exit(0);
+  }
+  for(i=0; i<bufsize; i++) {
+    chk_K[i] = (KPP_REAL*) malloc(NVAR * S * sizeof(KPP_REAL));
+    if (chk_K == NULL) {
+      printf("Failed allocation of buffer K");
+      exit(0);
+    }
+  }
+  
+  if (SaveLU) {
+    chk_J = (KPP_REAL**) malloc(bufsize * sizeof(KPP_REAL*));
+    if (chk_J == NULL) {
+      printf( "Failed allocation of buffer J");
+      exit(0);
+    }
+#ifdef FULL_ALGEBRA
+    for(i=0; i<bufsize; i++) {
+      chk_J[i] = (KPP_REAL*) malloc(NVAR * NVAR * sizeof(KPP_REAL));
+      if (chk_J == NULL) {
+	printf( "Failed allocation of buffer J");
+	exit(0);
+      }
+    }
+#else
+    for(i=0; i<bufsize; i++) {
+      chk_J[i] = (KPP_REAL*) malloc(LU_NONZERO * sizeof(KPP_REAL));
+      if (chk_J == NULL) {
+	printf( "Failed allocation of buffer J");
+	exit(0);
+      }
+    }
+#endif
+  } 
+
+} /* End of ros_AllocateDBuffers */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void ros_FreeDBuffers( int SaveLU ) {
+/*~~~>  Deallocate buffer space for discrete adjoint
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+  int i;
+
+  free(chk_H);
+  free(chk_T);
+
+  for(i=0; i<bufsize; i++) {
+    free(chk_Y[i]);
+    free(chk_K[i]);
+  }
+  free(chk_Y);
+  free(chk_K);
+
+  if (SaveLU) {
+    for(i=0; i<bufsize; i++)
+      free(chk_J[i]);
+    free(chk_J);
+  }
+
+} /* End of ros_FreeDBuffers */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void ros_AllocateCBuffers() {
+/*~~~>  Allocate buffer space for continuous adjoint
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+  int i;
+
+  chk_H = (KPP_REAL*) malloc(bufsize * sizeof(KPP_REAL));
+  if (chk_H == NULL) {
+    printf( "Failed allocation of buffer H");
+    exit(0);
+  }
+
+  chk_T = (KPP_REAL*) malloc(bufsize * sizeof(KPP_REAL));
+  if (chk_T == NULL) {
+    printf( "Failed allocation of buffer T");
+    exit(0);
+  }
+
+  chk_Y = (KPP_REAL**) malloc(sizeof(KPP_REAL*) * bufsize);
+  if (chk_Y == NULL) {
+    printf( "Failed allocation of buffer Y");
+    exit(0);
+  }
+  for(i=0; i<bufsize; i++) {
+    chk_Y[i] = (KPP_REAL*) malloc( sizeof(KPP_REAL)* NVAR );
+    if (chk_Y == NULL) {
+      printf( "Failed allocation of buffer Y");
+      exit(0);
+    }
+  }
+
+  chk_dY = (KPP_REAL**) malloc(sizeof(KPP_REAL*) * bufsize);
+  if (chk_dY == NULL) {
+    printf( "Failed allocation of buffer dY");
+    exit(0);
+  }
+  for(i=0; i<bufsize; i++) {
+    chk_dY[i] = (KPP_REAL*) malloc( sizeof(KPP_REAL) * NVAR);
+    if (chk_dY == NULL) {
+      printf( "Failed allocation of buffer dY");
+      exit(0);
+    }
+  }
+
+  chk_d2Y = (KPP_REAL**) malloc(sizeof(KPP_REAL*) * bufsize);
+  if (chk_d2Y == NULL) {
+    printf( "Failed allocation of buffer d2Y");
+    exit(0);
+  }
+  for(i=0; i<bufsize; i++) {
+    chk_d2Y[i] = (KPP_REAL*) malloc( sizeof(KPP_REAL) * NVAR);
+    if (chk_d2Y == NULL) {
+      printf( "Failed allocation of buffer d2Y");
+      exit(0);
+    }
+  }
+} /* End of ros_AllocateCBuffers */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void ros_FreeCBuffers() {
+/*~~~>  Dallocate buffer space for continuous adjoint
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+  
+  int i;
+
+  free(chk_H);
+  free(chk_T);
+
+  for(i=0; i<bufsize; i++) {
+    free(chk_Y[i]);
+    free(chk_dY[i]);
+    free(chk_d2Y[i]);
+  }
+
+  free(chk_Y);
+  free(chk_dY);
+  free(chk_d2Y);
+
+} /* End of ros_FreeCBuffers */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void ros_DPush( int S, KPP_REAL T, KPP_REAL H, KPP_REAL Ystage[], 
+		KPP_REAL K[], KPP_REAL E[], int P[], int SaveLU ) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~> Saves the next trajectory snapshot for discrete adjoints
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+  int i;
+
+  stack_ptr = stack_ptr + 1;
+  if ( stack_ptr >= bufsize ) {
+    printf( "Push failed: buffer overflow" );
+    exit(0);
+  }
+
+  chk_H[ stack_ptr ] = H;
+  chk_T[ stack_ptr ] = T;
+  for(i=0; i<NVAR*S; i++) {
+    chk_Y[stack_ptr][i] = Ystage[i];
+    chk_K[stack_ptr][i] = K[i];
+  }
+
+  if (SaveLU) {
+#ifdef FULL_ALGEBRA
+    int j;
+    for(j=0; j<NVAR; j++) {
+      for(i=0; i<NVAR; i++)
+	chk_J[stack_ptr][i][j] = E[i][j];
+      chk_P[stack_ptr][j] = P[j];
+    }
+#else
+    for(i=0; i<LU_NONZERO; i++)
+      chk_J[stack_ptr][i] = E[i];
+#endif
+  }
+
+} /* End of ros_DPush */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void ros_DPop( int S, KPP_REAL* T, KPP_REAL* H, KPP_REAL* Ystage,
+	       KPP_REAL* K, KPP_REAL* E, int* P, int SaveLU ) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~> Retrieves the next trajectory snapshot for discrete adjoints
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+    
+  int i;
+  
+  if ( stack_ptr < 0 ) {
+    printf( "Pop failed: empty buffer" );
+    exit(0);
+  }
+
+  *H = chk_H[ stack_ptr ];
+  *T = chk_T[ stack_ptr ];
+
+  for(i=0; i<NVAR*S; i++) {
+    Ystage[i] = chk_Y[stack_ptr][i];
+    K[i]      = chk_K[stack_ptr][i];
+  }
+
+  if (SaveLU) {
+#ifdef FULL_ALGEBRA
+    int j;
+    for(i=0; i<NVAR; i++) {
+      for(j=0; j<NVAR; j++)
+	E[(j*NVAR)+i] = chk_J[stack_ptr][j][i];
+      P[i] = chk_P[stack_ptr][i];
+    }
+#else
+    for(i=0; i<LU_NONZERO; i++)
+      E[i] = chk_J[stack_ptr][i];
+#endif
+  }
+
+  stack_ptr--;
+
+} /* End of ros_DPop */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void ros_CPush( KPP_REAL T, KPP_REAL H, KPP_REAL Y[], KPP_REAL dY[], 
+		KPP_REAL d2Y[] ) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~> Saves the next trajectory snapshot for discrete adjoints
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+   
+  int i;
+  
+  stack_ptr++;
+  if ( stack_ptr > bufsize ) {
+    printf( "Push failed: buffer overflow" );
+    exit(0);
+  }
+  chk_H[ stack_ptr ] = H;
+  chk_T[ stack_ptr ] = T;
+
+  for(i = 0; i< NVAR; i++ ) {
+    chk_Y[stack_ptr][i] = Y[i];
+    chk_dY[stack_ptr][i] = dY[i];
+    chk_d2Y[stack_ptr][i] = d2Y[i];
+  }
+} /* End of ros_CPush */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void ros_CPop( KPP_REAL T, KPP_REAL H, KPP_REAL Y[], KPP_REAL dY[], 
+	       KPP_REAL d2Y[] ) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~> Retrieves the next trajectory snapshot for discrete adjoints
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+   
+  int i;
+
+  if ( stack_ptr <= 0 ) {
+    printf( "Pop failed: empty buffer" );
+    exit(0);
+  }
+  H = chk_H[ stack_ptr ];
+  T = chk_T[ stack_ptr ];
+
+  for(i=0; i<NVAR; i++) {
+    Y[i] = chk_Y[stack_ptr][i];
+    dY[i] = chk_dY[stack_ptr][i];
+    d2Y[i] = chk_d2Y[stack_ptr][i];
+  }
+  stack_ptr--;
+} /* End of ros_CPop */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+int ros_ErrorMsg( int Code, KPP_REAL T, KPP_REAL H) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    Handles all error messages
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+  int IERR = Code;
+  printf( "Forced exit from RosenbrockADJ due to the following error:");
+  
+  switch (Code) {
+    case -1:
+      printf( "--> Improper value for maximal no of steps" );
+      break;
+    case -2:
+      printf( "--> Selected RosenbrockADJ method not implemented" );
+      break;
+    case -3:
+      printf( "--> Hmin/Hmax/Hstart must be positive" );
+      break;
+    case -4:
+      printf( "--> FacMin/FacMax/FacRej must be positive" );
+      break;
+    case -5:
+      printf( "--> Improper tolerance values" );
+      break;
+    case -6:
+      printf( "--> No of steps exceeds maximum buffer bound" );
+      break;
+    case -7:
+      printf( "--> Step size too small: T + 10*H = T or H < Roundoff" );
+      break;
+    case -8:
+      printf( "--> Matrix is repeatedly singular" );
+      break;
+    case -9:
+      printf( "--> Improper type of adjoint selected" );
+      break;
+    default:
+      printf( "Unknown Error code: %d", Code );
+  } /* End of switch */
+
+  return IERR;
+} /* End of ros_ErrorMsg */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+int ros_FwdInt ( KPP_REAL Y[], KPP_REAL Tstart, KPP_REAL Tend, KPP_REAL T, 
+		 KPP_REAL AbsTol[], KPP_REAL RelTol[], int AdjointType, 
+		 KPP_REAL Hmin, KPP_REAL Hstart, KPP_REAL Hmax, 
+		 KPP_REAL Roundoff, int ISTATUS[], int Max_no_steps, 
+		 KPP_REAL RSTATUS[], int Autonomous, int VectorTol, 
+		 KPP_REAL FacMax, KPP_REAL FacMin, KPP_REAL FacSafe, 
+		 KPP_REAL FacRej, int SaveLU ) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   Template for the implementation of a generic RosenbrockADJ method
+      defined by ros_S (no of stages)
+      and its coefficients ros_{A,C,M,E,Alpha,Gamma}
+~~~> Y - Input: the initial condition at Tstart; Output: the solution at T
+~~~> Tstart, Tend - Input: integration interval
+~~~> T - Output: time at which the solution is returned (T=Tend if success)
+~~~> AbsTol, RelTol - Input: tolerances
+~~~> IERR - Output: Error indicator
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+/* ~~~~ Local variables */
+  KPP_REAL Ynew[NVAR], Fcn0[NVAR], Fcn[NVAR];
+  KPP_REAL K[NVAR*ros_S], dFdT[NVAR];
+  KPP_REAL *Ystage = NULL; /* Array pointer */
+#ifdef FULL_ALGEBRA
+  KPP_REAL Jac0[NVAR][NVAR],  Ghimj[NVAR][NVAR];
+#else
+  KPP_REAL Jac0[LU_NONZERO], Ghimj[LU_NONZERO];
+#endif
+  KPP_REAL H, Hnew, HC, HG, Fac, Tau;
+  KPP_REAL Err, Yerr[NVAR];
+  int Pivot[NVAR], Direction, ioffset, i, j=0, istage;
+  int RejectLastH, RejectMoreH, Singular; /* Boolean Values */
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+/*~~~>  Allocate stage vector buffer if needed */
+  if (AdjointType == Adj_discrete) {
+    Ystage = (KPP_REAL*) malloc(NVAR*ros_S*sizeof(KPP_REAL));
+    /* Uninitialized Ystage may lead to NaN on some compilers */
+    if (Ystage == NULL) {
+      printf( "Allocation of Ystage failed" );
+      exit(0);
+    }
+  }
+
+/*~~~>  Initial preparations */
+  T = Tstart;
+  RSTATUS[Nhexit] = ZERO;
+  H = MIN( MAX(ABS(Hmin),ABS(Hstart)) , ABS(Hmax) );
+  if (ABS(H) <= ((KPP_REAL)10.0)*Roundoff)
+    H = DeltaMin;
+
+  if (Tend >= Tstart)
+    Direction = 1;
+  else
+    Direction = -1;
+
+  H = Direction*H;
+  
+  RejectLastH = FALSE;
+  RejectMoreH = FALSE;
+
+/*~~~> Time loop begins below */
+  while ( ((Direction > 0) && ((T-Tend)+Roundoff <= ZERO)) || 
+	  ((Direction < 0) && ((Tend-T)+Roundoff <= ZERO)) ) { /* TimeLoop */
+
+    if ( ISTATUS[Nstp] > Max_no_steps )  /* Too many steps */
+      return ros_ErrorMsg(-6,T,H);
+
+    if ( ((T+((KPP_REAL)0.1)*H) == T) || (H <= Roundoff) ) /* Step size 
+							    too small */
+      return ros_ErrorMsg(-7,T,H);
+
+/*~~~>  Limit H if necessary to avoid going beyond Tend */
+    RSTATUS[Nhexit] = H;
+    H = MIN(H,ABS(Tend-T));
+
+/*~~~>   Compute the function at current time */
+    FunTemplate(T,Y,Fcn0);
+    ISTATUS[Nfun] = ISTATUS[Nfun] + 1;
+
+/*~~~>  Compute the function derivative with respect to T */
+    if (!Autonomous)
+      ros_FunTimeDerivative ( T, Roundoff, Y, Fcn0, dFdT, ISTATUS );
+
+/*~~~>   Compute the Jacobian at current time */
+    JacTemplate(T,Y,Jac0);
+    ISTATUS[Njac] = ISTATUS[Njac] + 1;
+
+/*~~~>  Repeat step calculation until current step accepted */
+    do {  /* UntilAccepted */
+
+      Singular = ros_PrepareMatrix ( H,Direction,ros_Gamma[0],Jac0,Ghimj,Pivot,
+				     ISTATUS );
+
+      if (Singular) /* More than 5 consecutive failed decompositions */
+	return ros_ErrorMsg(-8,T,H);
+
+/*~~~>   Compute the stages */
+      for( istage = 0; istage < ros_S; istage++ ) { /* Stage */
+
+	/* Current istage offset. Current istage vector is 
+	   K(ioffset+1:ioffset+NVAR) */
+	ioffset = NVAR*istage;
+
+	/*For the 1st istage the function has been computed previously*/
+	if ( istage == 0 ) {
+	  WCOPY(NVAR,Fcn0,1,Fcn,1);
+	  if (AdjointType == Adj_discrete) { /* Save stage solution */
+	    for(i=0; i<NVAR; i++)
+	      Ystage[i] = Y[i];
+	    WCOPY(NVAR,Y,1,Ynew,1);
+	  }
+	}
+	/* istage>0 and a new function evaluation is needed at the 
+	   current istage */
+	else if ( ros_NewF[istage] ) {
+	  WCOPY(NVAR,Y,1,Ynew,1);
+	  for ( j = 0; j < istage; j++ ) {
+	    WAXPY( NVAR,ros_A[(istage)*(istage-1)/2+j], 
+		   &K[NVAR*j],1,Ynew,1 );
+	  }
+	  Tau = T + ros_Alpha[istage]*Direction*H;
+	  FunTemplate(Tau,Ynew,Fcn);
+	  ISTATUS[Nfun] = ISTATUS[Nfun] + 1;
+	} /* if istage == 1 elseif ros_NewF[istage] */
+
+	/* Save stage solution every time even if ynew is not updated */
+	if ( ( istage > 0 ) && (AdjointType == Adj_discrete) ) {
+	  for(i=0; i<NVAR; i++)
+	    Ystage[ioffset+i] = Ynew[i];
+	}
+	WCOPY(NVAR,Fcn,1,&K[ioffset],1);
+	for( j = 0; j < istage; j++ ) {
+	  HC = ros_C[(istage)*(istage-1)/2+j]/(Direction*H);
+	  WAXPY(NVAR,HC,&K[NVAR*j],1,&K[ioffset],1);
+	}
+	if (( !Autonomous) && (ros_Gamma[istage] != ZERO)) {
+	  HG = Direction*H*ros_Gamma[istage];
+	  WAXPY(NVAR,HG,dFdT,1,&K[ioffset],1);
+	}
+	ros_Solve('N', Ghimj, Pivot, &K[ioffset], ISTATUS);
+      } /* End of Stage loop */
+
+/*~~~>  Compute the new solution */
+      WCOPY(NVAR,Y,1,Ynew,1);
+      for( j=0; j<ros_S; j++ )
+	WAXPY(NVAR,ros_M[j],&K[NVAR*j],1,Ynew,1);
+
+/*~~~>  Compute the error estimation */ 
+      WSCAL(NVAR,ZERO,Yerr,1);
+      for( j=0; j<ros_S; j++ )
+	WAXPY(NVAR,ros_E[j],&K[NVAR*j],1,Yerr,1);
+      Err = ros_ErrorNorm ( Y, Ynew, Yerr, AbsTol, RelTol, VectorTol );
+
+/*~~~> New step size is bounded by FacMin <= Hnew/H <= FacMax */
+      Fac  = MIN(FacMax,MAX(FacMin,FacSafe/pow(Err,(ONE/ros_ELO))));
+      Hnew = H*Fac;
+
+/*~~~>  Check the error magnitude and adjust step size */
+      ISTATUS[Nstp] = ISTATUS[Nstp] + 1;
+      if ( (Err <= ONE) || (H <= Hmin) ) {  /*~~~> Accept step */
+	ISTATUS[Nacc]++;
+	if (AdjointType == Adj_discrete) { /* Save current state */
+	  ros_DPush( ros_S, T, H, Ystage, K, Ghimj, Pivot, SaveLU );
+	}
+	else if ( (AdjointType == Adj_continuous) || 
+		  (AdjointType == Adj_simple_continuous) ) {
+#ifdef FULL_ALGEBRA
+	  K = MATMUL(Jac0,Fcn0);
+#else
+	  Jac_SP_Vec( Jac0, Fcn0, &K[0] );
+#endif
+	  if ( !Autonomous)
+	    WAXPY(NVAR,ONE,dFdT,1,&K[0],1);
+	  ros_CPush( T, H, Y, Fcn0, &K[0] );
+	}
+	WCOPY(NVAR,Ynew,1,Y,1);
+	T = T + Direction*H;
+	Hnew = MAX(Hmin,MIN(Hnew,Hmax));
+	if (RejectLastH) { /* No step size increase after a 
+			     rejected step */
+	  Hnew = MIN(Hnew,H);
+	}
+	RSTATUS[Nhexit] = H;
+	RSTATUS[Nhnew]  = Hnew;
+	RSTATUS[Ntexit] = T;
+	RejectLastH = FALSE;
+	RejectMoreH = FALSE;
+	H = Hnew;
+	break; /* UntilAccepted - EXIT THE LOOP: WHILE STEP NOT ACCEPTED */
+      }
+
+      else { /*~~~> Reject step */
+	if (RejectMoreH)
+	  Hnew = H*FacRej;
+        RejectMoreH = RejectLastH;
+        RejectLastH = TRUE;
+        H = Hnew;
+        if (ISTATUS[Nacc] >= 1)
+	  ISTATUS[Nrej]++;
+      } /* End if else - Err <= 1 */
+    
+    } while(1); /* End of UntilAccepted do loop */
+  } /* End of TimeLoop */
+   
+/*~~~> Save last state: only needed for continuous adjoint */
+  if ( (AdjointType == Adj_continuous) || 
+       (AdjointType == Adj_simple_continuous) ) {
+    FunTemplate(T,Y,Fcn0);
+    ISTATUS[Nfun]++;
+    JacTemplate(T,Y,Jac0);
+    ISTATUS[Njac]++;
+#ifdef FULL_ALGEBRA
+    K = MATMUL(Jac0,Fcn0);
+#else
+    Jac_SP_Vec( Jac0, Fcn0, &K[0] );
+#endif
+    if (!Autonomous) {
+      ros_FunTimeDerivative ( T, Roundoff, Y, Fcn0, dFdT, ISTATUS );
+      WAXPY(NVAR,ONE,dFdT,1,&K[0],1);
+    }
+    ros_CPush( T, H, Y, Fcn0, &K[0] );
+/*~~~> Deallocate stage buffer: only needed for discrete adjoint */
+  }
+  else if (AdjointType == Adj_discrete) {
+    free(Ystage);
+  }
+
+/*~~~> Succesful exit */
+  return 1;  /*~~~> The integration was successful */
+} /* End of ros_FwdInt */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+int ros_DadjInt ( int NADJ, KPP_REAL Lambda[][NVAR], KPP_REAL Tstart, 
+		  KPP_REAL Tend, KPP_REAL T, int SaveLU, int ISTATUS[], 
+		  KPP_REAL Roundoff, int Autonomous) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   Template for the implementation of a generic RosenbrockSOA method
+      defined by ros_S (no of stages)
+      and its coefficients ros_{A,C,M,E,Alpha,Gamma}
+!~~~> NADJ - Input: the initial condition at Tstart; Output: the solution at T
+!~~~> Lambda[NADJ][NVAR] -  First order adjoint
+!~~~> Tstart, Tend - Input: integration interval
+!~~~> T - Output: time at which the solution is returned (T=Tend if success)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+/*~~~~ Local variables */
+  KPP_REAL Ystage[NVAR*ros_S], K[NVAR*ros_S];
+  KPP_REAL U[NADJ][NVAR*ros_S], V[NADJ][NVAR*ros_S];
+#ifdef FULL_ALGEBRA
+  KPP_REAL Jac[NVAR][NVAR], dJdT[NVAR][NVAR], Ghimj[NVAR][NVAR];
+#else
+  KPP_REAL Jac[LU_NONZERO], dJdT[LU_NONZERO], Ghimj[LU_NONZERO];
+#endif
+  KPP_REAL Hes0[NHESS];
+  KPP_REAL Tmp[NVAR], Tmp2[NVAR];
+  KPP_REAL H=0.0, HC, HA, Tau;
+  int Pivot[NVAR], Direction;
+  int i, j, m, istage, istart, jstart;
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+  if (Tend  >=  Tstart)
+    Direction = 1;
+  else
+    Direction = -1;
+  
+  /*~~~> Time loop begins below */
+  while ( stack_ptr > 0 ) { /* TimeLoop */
+
+    /*~~~>  Recover checkpoints for stage values and vectors */
+    ros_DPop( ros_S, &T, &H, &Ystage[0], &K[0], &Ghimj[0], &Pivot[0], SaveLU );
+
+    /*~~~>    Compute LU decomposition */
+    if (!SaveLU) {
+      JacTemplate(T,&Ystage[0],Ghimj);
+      ISTATUS[Njac] = ISTATUS[Njac] + 1;
+      Tau = ONE/(Direction*H*ros_Gamma[0]);
+#ifdef FULL_ALGEBRA
+      for(j=0; j<NVAR; j++) {
+	for(i=0; i<NVAR; i++)
+	  Ghimj[i][j] = -Ghimj[i][j];
+      }
+      for(i=0; i<NVAR; i++)
+	Ghimj[i][i] = Ghimj[i][i]+Tau;
+#else
+      WSCAL(LU_NONZERO,(-ONE),Ghimj,1);
+      for (i=0; i<NVAR; i++)
+	Ghimj[LU_DIAG[i]] = Ghimj[LU_DIAG[i]]+Tau;
+#endif
+      ros_Decomp(Ghimj, Pivot, &j, ISTATUS);
+    }
+
+/*~~~>   Compute Hessian at the beginning of the interval */
+    HessTemplate(T,&Ystage[0],Hes0);
+
+/*~~~>   Compute the stages */
+    for (istage = ros_S - 1; istage >= 0; istage--) { /* Stage loop */
+
+      /*~~~> Current istage first entry */
+      istart = NVAR*istage;
+	 
+      /*~~~> Compute U */
+      for (m = 0; m<NADJ; m++) {
+	WCOPY(NVAR,&Lambda[m][0],1,&U[m][istart],1);
+	WSCAL(NVAR,ros_M[istage],&U[m][istart],1);
+      } /* m=0:NADJ-1 */
+      for (j = istage+1; j < ros_S; j++) {
+	jstart = NVAR*j;
+	HA = ros_A[j*(j-1)/2+istage];
+	HC = ros_C[j*(j-1)/2+istage]/(Direction*H);
+	for ( m = 0; m < NADJ; m++ ) {
+	  WAXPY(NVAR,HA,&V[m][jstart],1,&U[m][istart],1);
+	  WAXPY(NVAR,HC,&U[m][jstart],1,&U[m][istart],1);
+	} /* m=0:NADJ-1 */
+      }
+      for ( m = 0; m < NADJ; m++ )
+	ros_Solve('T', Ghimj, Pivot, &U[m][istart], ISTATUS); /* m=1:NADJ-1 */
+
+      /*~~~> Compute V */
+      Tau = T + ros_Alpha[istage]*Direction*H;
+      JacTemplate(Tau,&Ystage[istart],Jac);
+      ISTATUS[Njac]++;
+      for ( m = 0; m < NADJ; m++ ) {
+#ifdef FULL_ALGEBRA
+	for (i=istart; i < istart+NVAR-1; i++ )
+	  V[[m][i] = MATMUL(TRANSPOSE(Jac),U[m][i]];
+#else
+	JacTR_SP_Vec(Jac,&U[m][istart],&V[m][istart]); 
+#endif
+      } /* m=0:NADJ-1 */
+    } /*End of Stage loop */
+
+    if (!Autonomous)
+/*~~~>  Compute the Jacobian derivative with respect to T.
+        Last "Jac" computed for stage 1 */
+      ros_JacTimeDerivative ( T, Roundoff, &Ystage[0], Jac, dJdT, ISTATUS );
+
+/*~~~>  Compute the new solution */
+    /*~~~>  Compute Lambda */ 
+    for( istage = 0; istage < ros_S; istage++ ) {
+      istart = NVAR*istage;
+      for (m = 0; m < NADJ; m++) {
+	/* Add V_i */
+	WAXPY(NVAR,ONE,&V[m][istart],1,&Lambda[m][0],1);
+	/* Add (H0xK_i)^T * U_i */
+	HessTR_Vec ( Hes0, &U[m][istart], &K[istart], Tmp );
+	WAXPY(NVAR,ONE,Tmp,1,&Lambda[m][0],1);
+      } /* m=0:NADJ-1 */
+    }
+
+    /* Add H * dJac_dT_0^T * \sum(gamma_i U_i) */
+    /* Tmp holds sum gamma_i U_i */
+    if (!Autonomous) {
+      for( m = 0; m < NADJ; m++ ) {
+	for(i=0; i<NVAR; i++)
+	  Tmp[i] = ZERO;
+	for( istage = 0; istage < ros_S; istage++ ) {
+	  istart = NVAR*istage;
+	  WAXPY(NVAR,ros_Gamma[istage],&U[m][istart],1,Tmp,1);
+	}
+#ifdef FULL_ALGEBRA
+	Tmp2 = MATMUL(TRANSPOSE(dJdT),Tmp);
+#else
+	JacTR_SP_Vec(dJdT,Tmp,Tmp2);
+#endif
+	WAXPY(NVAR,H,Tmp2,1,&Lambda[m][0],1);
+      } /* m=0:NADJ-1 */
+    } /* .NOT.Autonomous */
+  } /* End of TimeLoop */
+
+  /*~~~> Save last state */
+  /*~~~> Succesful exit */
+  return 1;  /*~~~> The integration was successful */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+} /* End of ros_DadjInt */
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+int ros_CadjInt ( int NADJ, KPP_REAL Y[][NVAR], KPP_REAL Tstart, KPP_REAL Tend,
+		  KPP_REAL T, KPP_REAL AbsTol_adj[][NVAR], 
+		  KPP_REAL RelTol_adj[][NVAR], KPP_REAL RSTATUS[], 
+		  KPP_REAL Hmin, KPP_REAL Hmax, KPP_REAL Hstart, 
+		  KPP_REAL Roundoff, int Max_no_steps, int Autonomous, 
+		  int VectorTol, KPP_REAL FacMax, KPP_REAL FacMin, 
+		  KPP_REAL FacSafe, KPP_REAL FacRej, int ISTATUS[] ) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   Template for the implementation of a generic RosenbrockADJ method
+      defined by ros_S (no of stages)
+      and its coefficients ros_{A,C,M,E,Alpha,Gamma}
+~~~> NADJ, Y[NADJ][NVAR] - Input: the initial condition at Tstart;
+                           Output: the solution at T
+~~~> Tstart, Tend - Input: integration interval 
+~~~> AbsTol_adj[NADJ][NVAR], RelTol_adj[NADJ][NVAR] - Input: adjoint tolerances
+~~~> T - Output: time at which the solution is returned (T=Tend if success)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+/*~~~~ Local variables */
+  KPP_REAL Y0[NVAR];
+  KPP_REAL Ynew[NADJ][NVAR], Fcn0[NADJ][NVAR], Fcn[NADJ][NVAR];
+  KPP_REAL K[NADJ][NVAR*ros_S], dFdT[NADJ][NVAR];
+#ifdef FULL_ALGEBRA
+  KPP_REAL Jac0[NVAR][NVAR], Ghimj[NVAR][NVAR], Jac[NVAR][NVAR], 
+         dJdT[NVAR][NVAR];
+#else
+  KPP_REAL Jac0[LU_NONZERO], Ghimj[LU_NONZERO], Jac[LU_NONZERO], 
+         dJdT[LU_NONZERO];
+#endif
+  KPP_REAL H, Hnew, HC, HG, Fac, Tau; 
+  KPP_REAL Err, Yerr[NADJ][NVAR];
+  int Pivot[NVAR], Direction, ioffset, j, istage, iadj;
+  int RejectLastH, RejectMoreH, Singular; /* Boolean values */
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+/*~~~>  Initial preparations */
+  T = Tstart;
+  RSTATUS[Nhexit] = (KPP_REAL)0.0;
+  H = MIN( MAX(ABS(Hmin),ABS(Hstart)) , ABS(Hmax) );
+  if (ABS(H) <= ((KPP_REAL)10.0)*Roundoff) 
+    H = DeltaMin;
+  
+  if (Tend  >=  Tstart)
+    Direction = 1;
+  else
+    Direction = -1;
+  
+  H = Direction*H;
+  RejectLastH = FALSE;
+  RejectMoreH = FALSE;
+
+/*~~~> Time loop begins below */
+  while ( ((Direction > 0) && ((T-Tend)+Roundoff <= ZERO))
+	  || ((Direction < 0) && ((Tend-T)+Roundoff <= ZERO)) ) { /*TimeLoop*/
+
+    if ( ISTATUS[Nstp] > Max_no_steps )  /* Too many steps */
+      return ros_ErrorMsg(-6,T,H);
+
+    /* Step size too small */
+    if ( ((T+((KPP_REAL)0.1)*H) == T) || (H <= Roundoff) )
+      return ros_ErrorMsg(-7,T,H);
+
+/*~~~>  Limit H if necessary to avoid going beyond Tend */
+    RSTATUS[Nhexit] = H;
+    H = MIN(H,ABS(Tend-T));
+
+/*~~~>   Interpolate forward solution */
+    ros_cadj_Y( T, Y0 );
+/*~~~>   Compute the Jacobian at current time */
+    JacTemplate(T, Y0, Jac0);
+    ISTATUS[Njac]++;
+
+/*~~~>  Compute the function derivative with respect to T */
+    if (!Autonomous) {
+      ros_JacTimeDerivative ( T, Roundoff, Y0, Jac0, dJdT, ISTATUS );
+      for (iadj = 0; iadj < NADJ; iadj++) {
+#ifdef FULL_ALGEBRA
+	for (i=0; i<NVAR; i++)
+	  dFdT[iadj][i] = MATMUL(TRANSPOSE(dJdT),Y[iadj][i]);
+#else
+	JacTR_SP_Vec(dJdT,&Y[iadj][0],&dFdT[iadj][0]);
+#endif
+	WSCAL(NVAR,(-ONE),&dFdT[iadj][0],1);
+      } /* End for loop */
+    } /* End if */
+
+/*~~~>  Ydot = -J^T*Y */
+#ifdef FULL_ALGEBRA
+    int i;
+    for(i=0; i<NVAR; i++) {
+      for(j=0; j<NVAR; j++)
+	Jac0[i][j] = -Jac0[i][j];
+    }
+#else
+    WSCAL(LU_NONZERO,(-ONE),Jac0,1);
+#endif
+
+    for ( iadj = 0; iadj < NADJ; iadj++ ) {
+#ifdef FULL_ALGEBRA
+      int i;
+      for(i=0; i<NVAR; i++)
+	Fcn0[iadj][i] = MATMUL(TRANSPOSE(Jac0),Y[iadj][i]);
+#else
+      JacTR_SP_Vec(Jac0,&Y[iadj][0],&Fcn0[iadj][0]);
+#endif
+    }
+
+/*~~~>  Repeat step calculation until current step accepted */
+    do { /* UntilAccepted */
+
+      Singular = ros_PrepareMatrix(H,Direction,ros_Gamma[0], Jac0,Ghimj,Pivot,
+				   ISTATUS);
+      if (Singular) /* More than 5 consecutive failed decompositions */
+	return ros_ErrorMsg(-8,T,H);
+
+/*~~~>   Compute the stages */
+      for ( istage = 0; istage < ros_S; istage++ ) { /* Stage loop */
+
+	/* Current istage offset. Current istage vector 
+	   is K[ioffset+1:ioffset+NVAR] */
+	ioffset = NVAR*(istage-1);
+
+	/* For the 1st istage the function has been computed previously */
+	if ( istage == 0 ) {
+	  for ( iadj = 0; iadj < NADJ; iadj++ )
+	    WCOPY(NVAR,&Fcn0[iadj][0],1,&Fcn[iadj][0],1);
+
+	  /* istage>0 and a new function evaluation is needed at 
+	     the current istage */
+	}
+	else if ( ros_NewF[istage] ) {
+	  WCOPY(NVAR*NADJ,&Y[0][0],1,&Ynew[0][0],1);
+	  for (j = 0; j < istage-1; j++) {
+	    for ( iadj = 0; iadj < NADJ; iadj++ )
+	      WAXPY( NVAR,ros_A[(istage-1)*(istage-2)/2+j],
+		     &K[iadj][NVAR*(j-1)+1],1,&Ynew[iadj][0],1);
+	  } /* End for loop */
+	  Tau = T + ros_Alpha[istage]*Direction*H;
+	  ros_cadj_Y( Tau, Y0 );
+	  JacTemplate(Tau, Y0, Jac);
+	  ISTATUS[Njac]++;
+
+#ifdef FULL_ALGEBRA
+	  for(i=0; i<NVAR; i++) {
+	    for(j=0; j<NVAR; j++)
+	      Jac[i][j] = -Jac[i][j];
+	  }
+#else
+	  WSCAL(LU_NONZERO,(-ONE),Jac,1);
+#endif
+
+	  for ( iadj = 0; iadj < NADJ; iadj++ ) {
+#ifdef FULL_ALGEBRA
+	    for(i=0; i<NVAR; i++)
+	      Fcn[iadj][i] = MATMUL(TRANSPOSE(Jac),Ynew[iadj][i]);
+#else
+	    JacTR_SP_Vec(Jac,&Ynew[iadj][0],&Fcn[iadj][0]);
+#endif
+	  } /* End for loop */
+	} /*  if istage == 1 elseif ros_NewF(istage) */
+
+	for ( iadj = 0; iadj < NADJ; iadj++ )
+	  WCOPY(NVAR,&Fcn[iadj][0],1,&K[iadj][ioffset+1],1);
+	for ( j = 0; j < istage-1; j++ ) {
+	  HC = ros_C[(istage-1)*(istage-2)/2+j]/(Direction*H);
+	  for ( iadj = 0; iadj < NADJ; iadj++ )
+	    WAXPY(NVAR,HC,&K[iadj][NVAR*(j-1)+1],1,&K[iadj][ioffset+1],1);
+	} /* End for loop */
+	if ((!Autonomous) && (ros_Gamma[istage] != ZERO)) {
+	  HG = Direction*H*ros_Gamma[istage];
+	  for ( iadj = 0; iadj < NADJ; iadj++ )
+	    WAXPY(NVAR,HG,&dFdT[iadj][0],1,&K[iadj][ioffset+1],1);
+	} /* End if */
+	for ( iadj = 0; iadj < NADJ; iadj++ )
+	  ros_Solve('T', Ghimj, Pivot, &K[iadj][ioffset+1], ISTATUS);
+
+      } /* End of Stage loop */
+
+/*~~~>  Compute the new solution */
+      for ( iadj = 0; iadj < NADJ; iadj++ ) {
+	WCOPY(NVAR,&Y[iadj][0],1,&Ynew[iadj][0],1);
+	for ( j=0; j<ros_S; j++ )
+	  WAXPY(NVAR,ros_M[j],&K[iadj][NVAR*(j-1)+1],1,&Ynew[iadj][0],1);
+      } /* End for loop */
+
+/*~~~>  Compute the error estimation */
+      WSCAL(NVAR*NADJ,ZERO,&Yerr[0][0],1);
+      for ( j=0; j<ros_S; j++ ) {
+	for ( iadj = 0; iadj < NADJ; iadj++ )
+	  WAXPY(NVAR,ros_E[j],&K[iadj][NVAR*(j-1)+1],1,&Yerr[iadj][0],1);
+      } /* End for loop */
+
+/*~~~> Max error among all adjoint components */
+      iadj = 1;
+      Err = ros_ErrorNorm ( &Y[iadj][0], &Ynew[iadj][0], &Yerr[iadj][0],
+			    &AbsTol_adj[iadj][0], &RelTol_adj[iadj][0], 
+			    VectorTol );
+
+/*~~~> New step size is bounded by FacMin <= Hnew/H <= FacMax */
+      Fac  = MIN(FacMax,MAX(FacMin,FacSafe/pow(Err,(ONE/ros_ELO))));
+      Hnew = H*Fac;
+
+/*~~~>  Check the error magnitude and adjust step size */
+      /* ISTATUS[Nstp] = ISTATUS[Nstp] + 1 */
+      if ( (Err <= ONE) || (H <= Hmin) ) {  /*~~~> Accept step */
+	ISTATUS[Nacc] = ISTATUS[Nacc] + 1;
+	WCOPY(NVAR*NADJ,&Ynew[0][0],1,&Y[0][0],1);
+	T = T + Direction*H;
+	Hnew = MAX(Hmin,MIN(Hnew,Hmax));
+	if (RejectLastH) /* No step size increase after a rejected step */
+	  Hnew = MIN(Hnew,H);
+	RSTATUS[Nhexit] = H;
+	RSTATUS[Nhnew] = Hnew;
+	RSTATUS[Ntexit] = T;
+	RejectLastH = FALSE;
+	RejectMoreH = FALSE;
+	H = Hnew;
+	break; /* UntilAccepted - EXIT THE LOOP: WHILE STEP NOT ACCEPTED */
+      }
+      else {         /*~~~> Reject step */
+	if (RejectMoreH)
+	  Hnew = H*FacRej;
+	RejectMoreH = RejectLastH;
+	RejectLastH = TRUE;
+	H = Hnew;
+	if (ISTATUS[Nacc] >= 1)
+	  ISTATUS[Nrej]++;
+      } /* Err <= 1 */
+      
+    } while(1); /* End of UntilAccepted do loop */
+
+  } /* End of TimeLoop */
+
+  /*~~~> Succesful exit */
+  return 1;  /*~~~> The integration was successful */
+} /* End of ros_CadjInt */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+int ros_SimpleCadjInt ( int NADJ, KPP_REAL Y[][NVAR], KPP_REAL Tstart,
+			 KPP_REAL Tend, KPP_REAL T, int ISTATUS[], 
+			int Autonomous, KPP_REAL Roundoff ) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   Template for the implementation of a generic RosenbrockADJ method 
+      defined by ros_S (no of stages)
+      and its coefficients ros_{A,C,M,E,Alpha,Gamma}
+~~~> NADJ, Y[NADJ][NVAR] - Input: the initial condition at Tstart; 
+                           Output: the solution at T
+~~~> Tstart, Tend - Input: integration interval 
+~~~> T - Output: time at which the solution is returned (T=Tend if success) 
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+/*~~~~ Local variables */
+   KPP_REAL Y0[NVAR];
+   KPP_REAL Ynew[NADJ][NVAR], Fcn0[NADJ][NVAR], Fcn[NADJ][NVAR];
+   KPP_REAL K[NADJ][NVAR*ros_S], dFdT[NADJ][NVAR];
+#ifdef FULL_ALGEBRA
+   KPP_REAL Jac0[NVAR][NVAR], Ghimj[NVAR][NVAR], Jac[NVAR][NVAR], 
+          dJdT[NVAR][NVAR];
+#else
+   KPP_REAL Jac0[LU_NONZERO], Ghimj[LU_NONZERO], Jac[LU_NONZERO], 
+          dJdT[LU_NONZERO];
+#endif
+   KPP_REAL H, HC, HG, Tau; 
+   KPP_REAL ghinv;
+   int Pivot[NVAR], Direction, ioffset, i, j, istage, iadj;
+   int istack;
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+/*~~~>  INITIAL PREPARATIONS */
+  if (Tend  >=  Tstart)
+    Direction = -1;
+  else
+    Direction = 1;
+ 
+/*~~~> Time loop begins below */
+  for( istack = stack_ptr; istack >= 1; istack-- ) { /* TimeLoop */
+    T = chk_T[istack];
+    H = chk_H[istack-1];
+    for(i=0; i<NVAR; i++)
+      Y0[i] = chk_Y[istack][i];
+
+/*~~~>   Compute the Jacobian at current time */
+    JacTemplate(T, Y0, Jac0);
+    ISTATUS[Njac] = ISTATUS[Njac] + 1;
+
+/*~~~>  Compute the function derivative with respect to T */
+    if (!Autonomous) {
+      ros_JacTimeDerivative ( T, Roundoff, Y0, Jac0, dJdT, ISTATUS );
+      for ( iadj = 0; iadj < NADJ; iadj++ ) {
+#ifdef FULL_ALGEBRA
+	for( i=0; i<NVAR; i++)
+	  dFdT[iadj][i] = MATMUL(TRANSPOSE(dJdT),Y[iadj][i]);
+#else
+	JacTR_SP_Vec(dJdT,&Y[iadj][0],&dFdT[iadj][0]);
+#endif
+	WSCAL(NVAR,(-ONE),&dFdT[iadj][0],1);
+      }
+    }
+
+/*~~~>  Ydot = -J^T*Y */
+#ifdef FULL_ALGEBRA
+    for(i=0; i<NVAR; i++) {
+      for(j=0; j<NVAR; j++)
+	Jac0[i][j] = -Jac0[i][j];
+    }
+#else
+    WSCAL(LU_NONZERO,(-ONE),Jac0,1);
+#endif
+    
+    for(iadj=0; iadj<NADJ; iadj++) {
+#ifdef FULL_ALGEBRA
+      for(i=0; i<NVAR; i++)
+	Fcn0[iadj][i] = MATMUL(TRANSPOSE(Jac0),Y[iadj][i]);
+#else
+      JacTR_SP_Vec(Jac0,&Y[iadj][0],&Fcn0[iadj][0]);
+#endif
+    }
+    
+/*~~~>    Construct Ghimj = 1/(H*ham) - Jac0 */
+    ghinv = ONE/(Direction*H*ros_Gamma[0]);
+#ifdef FULL_ALGEBRA
+    for(i=0; i<NVAR; i++) {
+      for(j=0; j<NVAR; j++)
+	Ghimj[i][j] = -Jac0[i][j];
+    }
+    for(i=0; i<NVAR; i++)
+      Ghimj[i][i] = Ghimj[i][i]+ghinv;
+#else
+    WCOPY(LU_NONZERO,Jac0,1,Ghimj,1);
+    WSCAL(LU_NONZERO,(-ONE),Ghimj,1);
+    for(i=0; i<NVAR; i++)
+      Ghimj[LU_DIAG[i]] = Ghimj[LU_DIAG[i]]+ghinv;
+#endif
+
+/*~~~>    Compute LU decomposition */
+    ros_Decomp( Ghimj, Pivot, &j, ISTATUS );
+    if (j != 0) {
+      ros_ErrorMsg(-8,T,H);
+      printf( "The matrix is singular !");
+      exit(0);
+    }
+
+/*~~~>   Compute the stages */
+    for(istage=0; istage<ros_S; istage++) { /* Stage */
+      /* Current istage offset. Current istage vector 
+	 is K(ioffset+1:ioffset+NVAR) */
+      ioffset = NVAR*istage;
+
+      /* For the 1st istage the function has been computed previously */
+      if ( istage == 0 ) {
+	for(iadj=0; iadj<NADJ; iadj++)
+	  WCOPY(NVAR,&Fcn0[iadj][0],1,&Fcn[iadj][0],1);
+      }
+      /* istage>=1 and a new function evaluation is needed 
+	 at the current istage */
+      else if ( ros_NewF[istage] ) {
+	WCOPY(NVAR*NADJ,&Y[0][0],1,&Ynew[0][0],1);
+	for(j=0; j<istage; j++) {
+	  for(iadj=0; iadj<NADJ; iadj++)
+	    WAXPY(NVAR,ros_A[istage*(istage-1)/2+j], &K[iadj][NVAR*j],1,
+		  &Ynew[iadj][0],1);
+	}
+	
+	Tau = T + ros_Alpha[istage]*Direction*H;
+	for(i=0; i<NVAR; i++)
+	  ros_Hermite3( chk_T[istack-1], chk_T[istack], Tau,
+			&chk_Y[istack-1][i], &chk_Y[istack][i],
+			&chk_dY[istack-1][i], &chk_dY[istack][i], Y0 );
+	JacTemplate(Tau, Y0, Jac);
+	ISTATUS[Njac]++;
+
+#ifdef FULL_ALGEBRA
+	for(i=0; i<NVAR; i++) {
+	  for(j=0; j<NVAR; j++)
+	    Jac[i][j] = -Jac[i][j];
+	}
+#else
+	WSCAL(LU_NONZERO,(-ONE),Jac,1);
+#endif
+
+	for(iadj=0; iadj<NADJ; iadj++) {
+#ifdef FULL_ALGEBRA
+	  for(i=0; i<NVAR; i++)
+	    Fcn[iadj][i] = MATMUL(TRANSPOSE(Jac),Ynew[iadj][i]);
+#else
+	  JacTR_SP_Vec(Jac,&Ynew[iadj][0],&Fcn[iadj][0]);
+#endif
+	}
+      } /* if istage == 1 elseif ros_NewF(istage) */
+
+      for(iadj=0; iadj<NADJ; iadj++)
+	WCOPY(NVAR,&Fcn[iadj][0],1,&K[iadj][ioffset],1);
+      for(j=0; j<istage-1; j++) {
+	HC = ros_C[istage*(istage-1)/2+j]/(Direction*H);
+	for(iadj=0; iadj<NADJ; iadj++)
+	  WAXPY(NVAR,HC,&K[iadj][NVAR*j],1,&K[iadj][ioffset],1);
+      }
+      if((!Autonomous) && (ros_Gamma[istage] != ZERO)) {
+	HG = Direction*H*ros_Gamma[istage];
+	for(iadj=0; iadj<NADJ; iadj++)
+	  WAXPY(NVAR,HG,&dFdT[iadj][0],1,&K[iadj][ioffset],1);
+      }
+      for(iadj=0; iadj<NADJ; iadj++)
+	ros_Solve('T', Ghimj, Pivot, &K[iadj][ioffset], ISTATUS);
+    } /* End of Stage loop */
+    
+/*~~~>  Compute the new solution */
+    for(iadj=0; iadj<NADJ; iadj++) {
+      for(j=0; j<ros_S; j++)
+	WAXPY(NVAR,ros_M[j],&K[iadj][NVAR*j],1,&Y[iadj][0],1);
+    }
+  } /* End of TimeLoop */
+
+/*~~~> Succesful exit */
+  return 1;  /*~~~> The integration was successful */
+
+} /* End of ros_SimpleCadjInt */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+KPP_REAL ros_ErrorNorm ( KPP_REAL Y[], KPP_REAL Ynew[], KPP_REAL Yerr[],
+		       KPP_REAL AbsTol[], KPP_REAL RelTol[], int VectorTol ) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~> Computes the "scaled norm" of the error vector Yerr
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+/* Local variables */
+  KPP_REAL Err, Scale, Ymax;
+  int i;
+
+  Err = ZERO;
+  for(i=0; i<NVAR; i++) {
+    Ymax = MAX(ABS(Y[i]),ABS(Ynew[i]));
+    if (VectorTol)
+      Scale = AbsTol[i]+RelTol[i]*Ymax;
+    else
+      Scale = AbsTol[0]+RelTol[0]*Ymax;
+
+    Err = Err+pow((Yerr[i]/Scale),2);
+  }
+  Err  = SQRT(Err/NVAR);
+
+  return MAX(Err,(KPP_REAL)1.0e-10);
+} /* End of ros_ErrorNorm */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void ros_FunTimeDerivative ( KPP_REAL T, KPP_REAL Roundoff, KPP_REAL Y[],
+			     KPP_REAL Fcn0[], KPP_REAL dFdT[], int ISTATUS[]) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~> The time partial derivative of the function by finite differences
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+/*~~~> Local variables */
+  KPP_REAL Delta;
+  
+  Delta = SQRT(Roundoff)*MAX(DeltaMin,ABS(T));
+  FunTemplate(T+Delta,Y,dFdT);
+  ISTATUS[Nfun]++;
+  WAXPY(NVAR,(-ONE),Fcn0,1,dFdT,1);
+  WSCAL(NVAR,(ONE/Delta),dFdT,1);
+
+} /* End of ros_FunTimeDerivative */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void ros_JacTimeDerivative ( KPP_REAL T, KPP_REAL Roundoff, KPP_REAL Y[],
+			     KPP_REAL Jac0[], KPP_REAL dJdT[], int ISTATUS[]) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~> The time partial derivative of the Jacobian by finite differences
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+/*~~~> Local variables */
+  KPP_REAL Delta;
+
+  Delta = SQRT(Roundoff)*MAX(DeltaMin,ABS(T));
+  JacTemplate(T+Delta,Y,dJdT);
+  ISTATUS[Njac]++;
+#ifdef FULL_ALGEBRA
+  WAXPY(NVAR*NVAR,(-ONE),Jac0,1,dJdT,1);
+  WSCAL(NVAR*NVAR,(ONE/Delta),dJdT,1);
+#else
+  WAXPY(LU_NONZERO,(-ONE),Jac0,1,dJdT,1);
+  WSCAL(LU_NONZERO,(ONE/Delta),dJdT,1);
+#endif
+} /* End of ros_JacTimeDerivative */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+int ros_PrepareMatrix ( KPP_REAL H, int Direction, KPP_REAL gam,
+			KPP_REAL Jac0[], KPP_REAL Ghimj[], int Pivot[], 
+			int ISTATUS[] ) {
+/* --- --- --- --- --- --- --- --- --- --- --- --- ---
+  Prepares the LHS matrix for stage calculations
+  1.  Construct Ghimj = 1/(H*gam) - Jac0
+      "(Gamma H) Inverse Minus Jacobian"
+  2.  Repeat LU decomposition of Ghimj until successful.
+       -half the step size if LU decomposition fails and retry
+       -exit after 5 consecutive fails
+ --- --- --- --- --- --- --- --- --- --- --- --- --- */
+
+/*~~~> Local variables */
+  int i, ising, Nconsecutive;
+  int Singular; /* Boolean value */
+  KPP_REAL ghinv;
+
+  Nconsecutive = 0;
+  Singular = TRUE;
+
+  while (Singular) {
+
+/*~~~>    Construct Ghimj = 1/(H*gam) - Jac0 */
+#ifdef FULL_ALGEBRA
+    WCOPY(NVAR*NVAR,Jac0,1,Ghimj,1);
+    WSCAL(NVAR*NVAR,(-ONE),Ghimj,1);
+    ghinv = ONE/(Direction*H*gam);
+    for(i=0; i<NVAR; i++)
+      Ghimj[i][i] = Ghimj[i][i]+ghinv;
+#else
+    WCOPY(LU_NONZERO,Jac0,1,Ghimj,1);
+    WSCAL(LU_NONZERO,(-ONE),Ghimj,1);
+    ghinv = ONE/(Direction*H*gam);
+    for(i=0; i<NVAR; i++)
+      Ghimj[LU_DIAG[i]] = Ghimj[LU_DIAG[i]]+ghinv;
+#endif
+
+/*~~~>    Compute LU decomposition */
+    ros_Decomp( Ghimj, Pivot, &ising, ISTATUS );
+    if (ising == 0)
+/*~~~>    If successful done */
+      Singular = FALSE;
+    
+    else { /* ising != 0 */
+/*~~~>    If unsuccessful half the step size; 
+          if 5 consecutive fails then return */
+      ISTATUS[Nsng]++;
+      Nconsecutive++;
+      Singular = TRUE;
+      printf( "Warning: LU Decomposition returned ising = %d", ising );
+      if (Nconsecutive <= 5) /*Less than 5 consecutive failed decompositions*/
+	H = H*HALF;
+      else  /* More than 5 consecutive failed decompositions */
+	return Singular;
+
+    }  /* End of ising */
+  }  /* while Singular */
+
+  return Singular;
+} /* End of ros_PrepareMatrix */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void ros_Decomp( KPP_REAL A[], int Pivot[], int* ising, int ISTATUS[] ) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  Template for the LU decomposition
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+#ifdef FULL_ALGEBRA
+  DGETRF( NVAR, NVAR, A, NVAR, Pivot, ising );
+#else
+  *ising = KppDecomp ( A );
+  Pivot[0] = 1;
+#endif
+  ISTATUS[Ndec]++;
+
+} /* End of ros_Decomp */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void ros_Solve( char How, KPP_REAL A[], int Pivot[], KPP_REAL b[], 
+		int ISTATUS[] ) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  Template for the forward/backward substitution 
+  (using pre-computed LU decomposition)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+  switch (How) {
+    case 'N':
+#ifdef FULL_ALGEBRA    
+      DGETRS( 'N', NVAR , 1, A, NVAR, Pivot, b, NVAR, 0 );
+#else
+      KppSolve( A, b );
+#endif
+      break;
+    case 'T':
+#ifdef FULL_ALGEBRA
+      DGETRS( 'T', NVAR , 1, A, NVAR, Pivot, b, NVAR, 0 );
+#else
+      KppSolveTR( A, b, b );
+#endif
+      break;
+    default:
+      printf( "Error: unknown argument in ros_Solve: How=%d", How );
+      exit(0);
+  }
+  ISTATUS[Nsol]++;
+
+} /* End of ros_Solve */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void ros_cadj_Y( KPP_REAL T, KPP_REAL Y[] ) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  Finds the solution Y at T by interpolating the stored forward trajectory
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+/*~~~> Local variables */
+  int i,j;
+
+  if( (T < chk_T[0]) || (T> chk_T[stack_ptr]) ) {
+    printf( "Cannot locate solution at T = %f", T );
+    printf( "Stored trajectory is between Tstart = %f", chk_T[0] );
+    printf( "    and Tend = %f", chk_T[stack_ptr] );
+    exit(0);
+  }
+  for(i=0; i<stack_ptr-1; i++) {
+    if( (T >= chk_T[i]) &&(T <= chk_T[i+1]) )
+      exit(0);
+  }
+
+  for(j=0; j<NVAR; j++ )
+    ros_Hermite3( chk_T[i], chk_T[i+1], T, &chk_Y[i][j], &chk_Y[i+1][j],
+		  &chk_dY[i][j],  &chk_dY[i+1][j], Y );
+
+} /* End of ros_cadj_Y */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void ros_Hermite3( KPP_REAL a, KPP_REAL b, KPP_REAL T, KPP_REAL Ya[],
+		   KPP_REAL Yb[], KPP_REAL Ja[], KPP_REAL Jb[], KPP_REAL Y[]) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  Template for Hermite interpolation of order 5 on the interval [a,b]
+   P = c(1) + c(2)*(x-a) + ... + c(4)*(x-a)^3
+   P[a,b] = [Ya,Yb], P'[a,b] = [Ja,Jb]
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+/*~~~> Local variables */
+  KPP_REAL Tau, amb[3], C[4][NVAR];
+  int i, j;
+
+  amb[0] = ((KPP_REAL)1.0)/(a-b);
+  for(i=1; i<3; i++)
+    amb[i] = amb[i-1]*amb[0];
+
+/* c(1) = ya; */
+  WCOPY(NVAR,Ya,1,&C[0][0],1);
+/* c(2) = ja; */
+  WCOPY(NVAR,Ja,1,&C[1][0],1);
+/* c(3) = 2/(a-b)*ja + 1/(a-b)*jb - 3/(a - b)^2*ya + 3/(a - b)^2*yb; */
+  WCOPY(NVAR,Ya,1,&C[2][0],1);
+  WSCAL(NVAR,-3.0*amb[1],&C[2][0],1);
+  WAXPY(NVAR,3.0*amb[1],Yb,1,&C[2][0],1);
+  WAXPY(NVAR,2.0*amb[0],Ja,1,&C[2][0],1);
+  WAXPY(NVAR,amb[0],Jb,1,&C[2][0],1);
+/* c(4) =  1/(a-b)^2*ja + 1/(a-b)^2*jb - 2/(a-b)^3*ya + 2/(a-b)^3*yb */
+  WCOPY(NVAR,Ya,1,&C[3][0],1);
+  WSCAL(NVAR,-2.0*amb[2],&C[3][0],1);
+  WAXPY(NVAR,2.0*amb[2],Yb,1,&C[3][0],1);
+  WAXPY(NVAR,amb[1],Ja,1,&C[3][0],1);
+  WAXPY(NVAR,amb[1],Jb,1,&C[3][0],1);
+   
+  Tau = T - a;
+  WCOPY(NVAR,&C[3][0],1,Y,1);
+  WSCAL(NVAR,pow(Tau,3),Y,1);
+  for(j=2; j>=0; j--)
+    WAXPY(NVAR,pow(Tau,(j-1)),&C[j][0],1,Y,1);
+
+} /* End of ros_Hermite3 */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void ros_Hermite5( KPP_REAL a, KPP_REAL b, KPP_REAL T, KPP_REAL Ya[], 
+		   KPP_REAL Yb[], KPP_REAL Ja[], KPP_REAL Jb[], KPP_REAL Ha[], 
+		   KPP_REAL Hb[], KPP_REAL Y[] ) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  Template for Hermite interpolation of order 5 on the interval [a,b]
+ P = c(1) + c(2)*(x-a) + ... + c(6)*(x-a)^5
+ P[a,b] = [Ya,Yb], P'[a,b] = [Ja,Jb], P"[a,b] = [Ha,Hb]
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+/*~~~> Local variables */
+  KPP_REAL Tau, amb[5], C[6][NVAR];
+  int i, j;
+
+  amb[0] = ((KPP_REAL)1.0)/(a-b);
+  for(i=1; i<5; i++)
+    amb[i] = amb[i-1]*amb[0];
+
+/* c(1) = ya; */
+  WCOPY(NVAR,Ya,1,&C[0][0],1);
+/* c(2) = ja; */
+  WCOPY(NVAR,Ja,1,&C[1][0],1);
+/* c(3) = ha/2; */
+  WCOPY(NVAR,Ha,1,&C[2][0],1);
+  WSCAL(NVAR,HALF,&C[2][0],1);
+
+/* c(4) = 10*amb(3)*ya - 10*amb(3)*yb - 6*amb(2)*ja - 4*amb(2)*jb  
+          + 1.5*amb(1)*ha - 0.5*amb(1)*hb ; */
+  WCOPY(NVAR,Ya,1,&C[3][0],1);
+  WSCAL(NVAR,10.0*amb[2],&C[3][0],1);
+  WAXPY(NVAR,-10.0*amb[2],Yb,1,&C[3][0],1);
+  WAXPY(NVAR,-6.0*amb[1],Ja,1,&C[3][0],1);
+  WAXPY(NVAR,-4.0*amb[1],Jb,1,&C[3][0],1);
+  WAXPY(NVAR, 1.5*amb[0],Ha,1,&C[3][0],1);
+  WAXPY(NVAR,-0.5*amb[0],Hb,1,&C[3][0],1);
+
+/* c(5) =   15*amb(4)*ya - 15*amb(4)*yb - 8.*amb(3)*ja - 7*amb(3)*jb 
+            + 1.5*amb(2)*ha - 1*amb(2)*hb ; */
+  WCOPY(NVAR,Ya,1,&C[4][0],1);
+  WSCAL(NVAR, 15.0*amb[3],&C[4][0],1);
+  WAXPY(NVAR,-15.0*amb[3],Yb,1,&C[4][0],1);
+  WAXPY(NVAR,-8.0*amb[2],Ja,1,&C[4][0],1);
+  WAXPY(NVAR,-7.0*amb[2],Jb,1,&C[4][0],1);
+  WAXPY(NVAR,1.5*amb[1],Ha,1,&C[4][0],1);
+  WAXPY(NVAR,-amb[1],Hb,1,&C[4][0],1);
+
+/* c(6) =   6*amb(5)*ya - 6*amb(5)*yb - 3.*amb(4)*ja - 3.*amb(4)*jb 
+            + 0.5*amb(3)*ha -0.5*amb(3)*hb ; */
+  WCOPY(NVAR,Ya,1,&C[5][0],1);
+  WSCAL(NVAR, 6.0*amb[4],&C[5][0],1);
+  WAXPY(NVAR,-6.0*amb[4],Yb,1,&C[5][0],1);
+  WAXPY(NVAR,-3.0*amb[3],Ja,1,&C[5][0],1);
+  WAXPY(NVAR,-3.0*amb[3],Jb,1,&C[5][0],1);
+  WAXPY(NVAR, 0.5*amb[2],Ha,1,&C[5][0],1);
+  WAXPY(NVAR,-0.5*amb[2],Hb,1,&C[5][0],1);
+
+  Tau = T - a;
+  WCOPY(NVAR,&C[5][0],1,Y,1);
+  for(j=4; j>=0; j--) {
+    WSCAL(NVAR,Tau,Y,1);
+    WAXPY(NVAR,ONE,&C[j][0],1,Y,1);
+  }
+
+} /* End of ros_Hermite5 */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void Ros2() {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ --- AN L-STABLE METHOD, 2 stages, order 2
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+  KPP_REAL g;
+
+  g = (KPP_REAL)1.0 + ((KPP_REAL)1.0)/SQRT((KPP_REAL)2.0);
+
+  rosMethod = RS2;
+/*~~~> Name of the method */
+  strcpy(ros_Name, "ROS-2");
+/*~~~> Number of stages */
+  ros_S = 2;
+
+/*~~~> The coefficient matrices A and C are strictly lower triangular.
+  The lower triangular (subdiagonal) elements are stored in row-wise order:
+  A[0][1] = ros_A[0], A[0][2]=ros_A[1], A[1][2]=ros_A[2], etc.
+  The general mapping formula is:
+      A[i][j] = ros_A[ (i-1)*(i-2)/2 + j ]
+      C[i][j] = ros_C[ (i-1)*(i-2)/2 + j ] */
+
+  ros_A[0] = ((KPP_REAL)1.0)/g;
+  ros_C[0] = ((KPP_REAL)-2.0)/g;
+
+/*~~~> Does the stage i require a new function evaluation (ros_NewF[i]=TRUE)
+       or does it re-use the function evaluation from stage i-1 
+       (ros_NewF[i]=FALSE) */
+  ros_NewF[0] = TRUE;
+  ros_NewF[1] = TRUE;
+
+/*~~~> M_i = Coefficients for new step solution */
+  ros_M[0]= ((KPP_REAL)3.0)/((KPP_REAL)2.0*g);
+  ros_M[1]= ((KPP_REAL)1.0)/((KPP_REAL)2.0*g);
+
+/* E_i = Coefficients for error estimator */
+  ros_E[0] = ((KPP_REAL)1.0)/((KPP_REAL)2.0*g);
+  ros_E[1] = ((KPP_REAL)1.0)/((KPP_REAL)2.0*g);
+
+/*~~~> ros_ELO = estimator of local order - the minimum between the
+       main and the embedded scheme orders plus one */
+  ros_ELO = (KPP_REAL)2.0;
+
+/*~~~> Y_stage_i ~ Y( T + H*Alpha_i ) */
+  ros_Alpha[0] = (KPP_REAL)0.0;
+  ros_Alpha[1] = (KPP_REAL)1.0;
+
+/*~~~> Gamma_i = \sum_j  gamma_{i,j} */
+  ros_Gamma[0] = g;
+  ros_Gamma[1] =-g;
+
+} /* End of Ros2 */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void Ros3() {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ --- AN L-STABLE METHOD, 3 stages, order 3, 2 function evaluations
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+  rosMethod = RS3;
+/*~~~> Name of the method */
+  strcpy(ros_Name, "ROS-3");
+/*~~~> Number of stages */
+  ros_S = 3;
+
+/*~~~> The coefficient matrices A and C are strictly lower triangular.
+   The lower triangular (subdiagonal) elements are stored in row-wise order:
+   A[0][1] = ros_A[0], A[0][2]=ros_A[1], A[1][2]=ros_A[2], etc.
+   The general mapping formula is:
+       A[i][j] = ros_A[ (i-1)*(i-2)/2 + j ]
+       C[i][j] = ros_C[ (i-1)*(i-2)/2 + j ] */
+
+  ros_A[0]= (KPP_REAL)1.0;
+  ros_A[1]= (KPP_REAL)1.0;
+  ros_A[2]= (KPP_REAL)0.0;
+  ros_C[0] = (KPP_REAL)-0.10156171083877702091975600115545e01;
+  ros_C[1] = (KPP_REAL) 0.40759956452537699824805835358067e01;
+  ros_C[2] = (KPP_REAL) 0.92076794298330791242156818474003e01;
+
+/*~~~> Does the stage i require a new function evaluation (ros_NewF[i]=TRUE)
+       or does it re-use the function evaluation from stage i-1 
+       (ros_NewF[i]=FALSE) */
+  ros_NewF[0] = TRUE;
+  ros_NewF[1] = TRUE;
+  ros_NewF[2] = FALSE;
+/*~~~> M_i = Coefficients for new step solution */
+  ros_M[0] = (KPP_REAL) 0.1e01;
+  ros_M[1] = (KPP_REAL) 0.61697947043828245592553615689730e01;
+  ros_M[2] = (KPP_REAL)-0.42772256543218573326238373806514;
+/* E_i = Coefficients for error estimator */
+  ros_E[0] = (KPP_REAL) 0.5;
+  ros_E[1] = (KPP_REAL)-0.29079558716805469821718236208017e01;
+  ros_E[2] = (KPP_REAL) 0.22354069897811569627360909276199;
+
+/*~~~> ros_ELO = estimator of local order - the minimum between the
+       main and the embedded scheme orders plus 1 */
+  ros_ELO = (KPP_REAL)3.0;
+/*~~~> Y_stage_i ~ Y( T + H*Alpha_i ) */
+  ros_Alpha[0]= (KPP_REAL)0.0;
+  ros_Alpha[1]= (KPP_REAL)0.43586652150845899941601945119356;
+  ros_Alpha[2]= (KPP_REAL)0.43586652150845899941601945119356;
+/*~~~> Gamma_i = \sum_j  gamma_{i,j} */
+  ros_Gamma[0]= (KPP_REAL)0.43586652150845899941601945119356;
+  ros_Gamma[1]= (KPP_REAL)0.24291996454816804366592249683314;
+  ros_Gamma[2]= (KPP_REAL)0.21851380027664058511513169485832e01;
+
+} /* End of Ros3 */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void Ros4() {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+     L-STABLE ROSENBROCK METHOD OF ORDER 4, WITH 4 STAGES
+     L-STABLE EMBEDDED ROSENBROCK METHOD OF ORDER 3
+
+      E. HAIRER AND G. WANNER, SOLVING ORDINARY DIFFERENTIAL
+      EQUATIONS II. STIFF AND DIFFERENTIAL-ALGEBRAIC PROBLEMS.
+      SPRINGER SERIES IN COMPUTATIONAL MATHEMATICS,
+      SPRINGER-VERLAG (1990)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+  rosMethod = RS4;
+/*~~~> Name of the method */
+  strcpy(ros_Name, "ROS-4");
+/*~~~> Number of stages */
+  ros_S = 4;
+
+/*~~~> The coefficient matrices A and C are strictly lower triangular.
+   The lower triangular (subdiagonal) elements are stored in row-wise order:
+   A[0][1] = ros_A[0], A[0][2]=ros_A[1], A[1][2]=ros_A[2], etc.
+   The general mapping formula is:
+       A[i][j] = ros_A[ (i-1)*(i-2)/2 + j ]
+       C[i][j] = ros_C[ (i-1)*(i-2)/2 + j ] */
+
+  ros_A[0] = (KPP_REAL)0.2000000000000000e01;
+  ros_A[1] = (KPP_REAL)0.1867943637803922e01;
+  ros_A[2] = (KPP_REAL)0.2344449711399156;
+  ros_A[3] = ros_A[1];
+  ros_A[4] = ros_A[2];
+  ros_A[5] = (KPP_REAL)0.0;
+
+  ros_C[0] = (KPP_REAL)-0.7137615036412310e01;
+  ros_C[1] = (KPP_REAL) 0.2580708087951457e01;
+  ros_C[2] = (KPP_REAL) 0.6515950076447975;
+  ros_C[3] = (KPP_REAL)-0.2137148994382534e01;
+  ros_C[4] = (KPP_REAL)-0.3214669691237626;
+  ros_C[5] = (KPP_REAL)-0.6949742501781779;
+
+/*~~~> Does the stage i require a new function evaluation (ros_NewF[i]=TRUE)
+       or does it re-use the function evaluation from stage i-1 
+       (ros_NewF[i]=FALSE) */
+  ros_NewF[0] = TRUE;
+  ros_NewF[1] = TRUE;
+  ros_NewF[2] = TRUE;
+  ros_NewF[3] = FALSE;
+/*~~~> M_i = Coefficients for new step solution */
+  ros_M[0] = (KPP_REAL)0.2255570073418735e01;
+  ros_M[1] = (KPP_REAL)0.2870493262186792;
+  ros_M[2] = (KPP_REAL)0.4353179431840180;
+  ros_M[3] = (KPP_REAL)0.1093502252409163e01;
+/*~~~> E_i  = Coefficients for error estimator */
+  ros_E[0] = (KPP_REAL)-0.2815431932141155;
+  ros_E[1] = (KPP_REAL)-0.7276199124938920e-01;
+  ros_E[2] = (KPP_REAL)-0.1082196201495311;
+  ros_E[3] = (KPP_REAL)-0.1093502252409163e01;
+
+/*~~~> ros_ELO  = estimator of local order - the minimum between the
+       main and the embedded scheme orders plus 1 */
+  ros_ELO = (KPP_REAL)4.0;
+/*~~~> Y_stage_i ~ Y( T + H*Alpha_i ) */
+  ros_Alpha[0] = (KPP_REAL)0.0;
+  ros_Alpha[1] = (KPP_REAL)0.1145640000000000e01;
+  ros_Alpha[2] = (KPP_REAL)0.6552168638155900;
+  ros_Alpha[3] = ros_Alpha[2];
+/*~~~> Gamma_i = \sum_j  gamma_{i,j} */ 
+  ros_Gamma[0] = (KPP_REAL) 0.5728200000000000;
+  ros_Gamma[1] = (KPP_REAL)-0.1769193891319233e01;
+  ros_Gamma[2] = (KPP_REAL) 0.7592633437920482;
+  ros_Gamma[3] = (KPP_REAL)-0.1049021087100450;
+
+} /* End of Ros4 */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void Rodas3() {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ --- A STIFFLY-STABLE METHOD, 4 stages, order 3
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+  rosMethod = RD3;
+/*~~~> Name of the method */
+  strcpy(ros_Name, "RODAS-3");
+/*~~~> Number of stages */
+  ros_S = 4;
+
+/*~~~> The coefficient matrices A and C are strictly lower triangular.
+   The lower triangular (subdiagonal) elements are stored in row-wise order:
+   A[0][1] = ros_A[0], A[0][2]=ros_A[1], A[1][2]=ros_A[2], etc.
+   The general mapping formula is:
+       A[i][j] = ros_A[ (i-1)*(i-2)/2 + j ]
+       C[i][j] = ros_C[ (i-1)*(i-2)/2 + j ] */
+
+  ros_A[0] = (KPP_REAL)0.0;
+  ros_A[1] = (KPP_REAL)2.0;
+  ros_A[2] = (KPP_REAL)0.0;
+  ros_A[3] = (KPP_REAL)2.0;
+  ros_A[4] = (KPP_REAL)0.0;
+  ros_A[5] = (KPP_REAL)1.0;
+
+  ros_C[0] = (KPP_REAL) 4.0;
+  ros_C[1] = (KPP_REAL) 1.0;
+  ros_C[2] = (KPP_REAL)-1.0;
+  ros_C[3] = (KPP_REAL) 1.0;
+  ros_C[4] = (KPP_REAL)-1.0;
+  ros_C[5] = -(((KPP_REAL)8.0)/((KPP_REAL)3.0));
+
+/*~~~> Does the stage i require a new function evaluation (ros_NewF[i]=TRUE)
+       or does it re-use the function evaluation from stage i-1 
+       (ros_NewF[i]=FALSE) */
+  ros_NewF[0] = TRUE;
+  ros_NewF[1] = FALSE;
+  ros_NewF[2] = TRUE;
+  ros_NewF[3] = TRUE;
+/*~~~> M_i = Coefficients for new step solution */
+  ros_M[0] = (KPP_REAL)2.0;
+  ros_M[1] = (KPP_REAL)0.0;
+  ros_M[2] = (KPP_REAL)1.0;
+  ros_M[3] = (KPP_REAL)1.0;
+/*~~~> E_i  = Coefficients for error estimator */
+  ros_E[0] = (KPP_REAL)0.0;
+  ros_E[1] = (KPP_REAL)0.0;
+  ros_E[2] = (KPP_REAL)0.0;
+  ros_E[3] = (KPP_REAL)1.0;
+
+/*~~~> ros_ELO  = estimator of local order - the minimum between the
+    main and the embedded scheme orders plus 1 */
+  ros_ELO  = (KPP_REAL)3.0;
+/*~~~> Y_stage_i ~ Y( T + H*Alpha_i ) */
+  ros_Alpha[0] = (KPP_REAL)0.0;
+  ros_Alpha[1] = (KPP_REAL)0.0;
+  ros_Alpha[2] = (KPP_REAL)1.0;
+  ros_Alpha[3] = (KPP_REAL)1.0;
+/*~~~> Gamma_i = \sum_j  gamma_{i,j} */
+  ros_Gamma[0] = (KPP_REAL)0.5;
+  ros_Gamma[1] = (KPP_REAL)1.5;
+  ros_Gamma[2] = (KPP_REAL)0.0;
+  ros_Gamma[3] = (KPP_REAL)0.0;
+
+} /* End of Rodas3 */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void Rodas4() {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+     STIFFLY-STABLE ROSENBROCK METHOD OF ORDER 4, WITH 6 STAGES
+
+      E. HAIRER AND G. WANNER, SOLVING ORDINARY DIFFERENTIAL
+      EQUATIONS II. STIFF AND DIFFERENTIAL-ALGEBRAIC PROBLEMS.
+      SPRINGER SERIES IN COMPUTATIONAL MATHEMATICS,
+      SPRINGER-VERLAG (1996)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+  rosMethod = RD4;
+/*~~~> Name of the method */
+  strcpy(ros_Name, "RODAS-4");
+/*~~~> Number of stages */
+  ros_S = 6;
+
+/*~~~> Y_stage_i ~ Y( T + H*Alpha_i ) */
+  ros_Alpha[0] = (KPP_REAL)0.000;
+  ros_Alpha[1] = (KPP_REAL)0.386;
+  ros_Alpha[2] = (KPP_REAL)0.210;
+  ros_Alpha[3] = (KPP_REAL)0.630;
+  ros_Alpha[4] = (KPP_REAL)1.000;
+  ros_Alpha[5] = (KPP_REAL)1.000;
+
+/*~~~> Gamma_i = \sum_j  gamma_{i,j} */
+  ros_Gamma[0] = (KPP_REAL) 0.2500000000000000;
+  ros_Gamma[1] = (KPP_REAL)-0.1043000000000000;
+  ros_Gamma[2] = (KPP_REAL) 0.1035000000000000;
+  ros_Gamma[3] = (KPP_REAL)-0.3620000000000023e-01;
+  ros_Gamma[4] = (KPP_REAL) 0.0;
+  ros_Gamma[5] = (KPP_REAL) 0.0;
+
+/*~~~> The coefficient matrices A and C are strictly lower triangular.
+   The lower triangular (subdiagonal) elements are stored in row-wise order:
+   A[0][1] = ros_A[0], A[0][2]=ros_A[1], A[1][2]=ros_A[2], etc.
+   The general mapping formula is:  A[i][j] = ros_A[ (i-1)*(i-2)/2 + j ]
+                  C[i][j] = ros_C[ (i-1)*(i-2)/2 + j ] */
+
+  ros_A[0] = (KPP_REAL) 0.1544000000000000e01;
+  ros_A[1] = (KPP_REAL) 0.9466785280815826;
+  ros_A[2] = (KPP_REAL) 0.2557011698983284;
+  ros_A[3] = (KPP_REAL) 0.3314825187068521e01;
+  ros_A[4] = (KPP_REAL) 0.2896124015972201e01;
+  ros_A[5] = (KPP_REAL) 0.9986419139977817;
+  ros_A[6] = (KPP_REAL) 0.1221224509226641e01;
+  ros_A[7] = (KPP_REAL) 0.6019134481288629e01;
+  ros_A[8] = (KPP_REAL) 0.1253708332932087e02;
+  ros_A[9] = (KPP_REAL)-0.6878860361058950;
+  ros_A[10] = ros_A[6];
+  ros_A[11] = ros_A[7];
+  ros_A[12] = ros_A[8];
+  ros_A[13] = ros_A[9];
+  ros_A[14] = (KPP_REAL)1.0;
+  
+  ros_C[0]  = (KPP_REAL)-0.5668800000000000e01;
+  ros_C[1]  = (KPP_REAL)-0.2430093356833875e01;
+  ros_C[2]  = (KPP_REAL)-0.2063599157091915;
+  ros_C[3]  = (KPP_REAL)-0.1073529058151375;
+  ros_C[4]  = (KPP_REAL)-0.9594562251023355e01;
+  ros_C[5]  = (KPP_REAL)-0.2047028614809616e02;
+  ros_C[6]  = (KPP_REAL) 0.7496443313967647e01;
+  ros_C[7]  = (KPP_REAL)-0.1024680431464352e02;
+  ros_C[8]  = (KPP_REAL)-0.3399990352819905e02;
+  ros_C[9]  = (KPP_REAL) 0.1170890893206160e02;
+  ros_C[10] = (KPP_REAL) 0.8083246795921522e01;
+  ros_C[11] = (KPP_REAL)-0.7981132988064893e01;
+  ros_C[12] = (KPP_REAL)-0.3152159432874371e02;
+  ros_C[13] = (KPP_REAL) 0.1631930543123136e02;
+  ros_C[14] = (KPP_REAL)-0.6058818238834054e01;
+
+/*~~~> M_i = Coefficients for new step solution */
+  ros_M[0] = ros_A[6];
+  ros_M[1] = ros_A[7];
+  ros_M[2] = ros_A[8];
+  ros_M[3] = ros_A[9];
+  ros_M[4] = (KPP_REAL)1.0;
+  ros_M[5] = (KPP_REAL)1.0;
+
+/*~~~> E_i  = Coefficients for error estimator */
+  ros_E[0] = (KPP_REAL)0.0;
+  ros_E[1] = (KPP_REAL)0.0;
+  ros_E[2] = (KPP_REAL)0.0;
+  ros_E[3] = (KPP_REAL)0.0;
+  ros_E[4] = (KPP_REAL)0.0;
+  ros_E[5] = (KPP_REAL)1.0;
+
+/*~~~> Does the stage i require a new function evaluation (ros_NewF[i]=TRUE)
+       or does it re-use the function evaluation from stage i-1 
+       (ros_NewF[i]=FALSE) */
+  ros_NewF[0] = TRUE;
+  ros_NewF[1] = TRUE;
+  ros_NewF[2] = TRUE;
+  ros_NewF[3] = TRUE;
+  ros_NewF[4] = TRUE;
+  ros_NewF[5] = TRUE;
+
+/*~~~> ros_ELO  = estimator of local order - the minimum between the
+        main and the embedded scheme orders plus 1 */
+  ros_ELO = (KPP_REAL)4.0;
+
+} /* End of Rodas4 */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void FunTemplate( KPP_REAL T, KPP_REAL Y[], KPP_REAL Ydot[] ) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  Template for the ODE function call.
+  Updates the rate coefficients (and possibly the fixed species) at each call
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+/*~~~> Local variables */
+  KPP_REAL Told;
+
+  Told = TIME;
+  TIME = T;
+  Update_SUN();
+  Update_RCONST();
+  Fun( Y, FIX, RCONST, Ydot );
+  TIME = Told;
+
+} /* End of FunTemplate */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void JacTemplate( KPP_REAL T, KPP_REAL Y[], KPP_REAL Jcb[] ) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  Template for the ODE Jacobian call.
+  Updates the rate coefficients (and possibly the fixed species) at each call
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+/*~~~> Local variables */
+  KPP_REAL Told;
+#ifdef FULL_ALGEBRA
+  KPP_REAL JV[LU_NONZERO];
+  int i, j;
+#endif
+
+  Told = TIME;
+  TIME = T;
+  Update_SUN();
+  Update_RCONST();
+#ifdef FULL_ALGEBRA
+  Jac_SP(Y, FIX, RCONST, JV);
+  for(j=0; j<NVAR; j++) {
+    for(i=0; i<NVAR; i++)
+      Jcb[i][j] = (KPP_REAL)0.0;
+  }
+  for(i=0; i<LU_NONZERO; i++)
+    Jcb[LU_ICOL[i]][LU_IROW[i]] = JV[i];
+#else
+  Jac_SP( Y, FIX, RCONST, Jcb );
+#endif
+  TIME = Told;
+} /* End of JacTemplate */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void HessTemplate( KPP_REAL T, KPP_REAL Y[], KPP_REAL Hes[] ) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  Template for the ODE Hessian call.
+  Updates the rate coefficients (and possibly the fixed species) at each call
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+/*~~~> Local variables */
+  KPP_REAL Told;
+
+  Told = TIME;
+  TIME = T;
+  Update_SUN();
+  Update_RCONST();
+  Hessian( Y, FIX, RCONST, Hes );
+  TIME = Told;
+
+} /* End of HessTemplate */
+
+/* End of INTEGRATE function                                                 */
+/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/rosenbrock_adj.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/rosenbrock_adj.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/rosenbrock_adj.def	(revision 2696)
@@ -0,0 +1,23 @@
+ 
+#FUNCTION AGGREGATE
+#JACOBIAN SPARSE_LU_ROW
+
+#DOUBLE ON 
+#INTFILE rosenbrock_adj
+
+#INLINE F77_GLOBAL
+      INTEGER Autonomous
+      COMMON /INTGDATA/ Autonomous
+      REAL*8 STEPSTART
+      COMMON /GDATA/ STEPSTART
+#ENDINLINE
+
+#INLINE F77_INIT
+        STEPMIN=0.0001
+        STEPMAX=3600.
+        Autonomous = 1 
+        STEPSTART=STEPMIN
+#ENDINLINE
+
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/rosenbrock_adj.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/rosenbrock_adj.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/rosenbrock_adj.f90	(revision 2696)
@@ -0,0 +1,2575 @@
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
+!  Discrete adjoints of Rosenbrock,                                       !
+!           for several Rosenbrock methods:                               !
+!               * Ros2                                                    !
+!               * Ros3                                                    !
+!               * Ros4                                                    !
+!               * Rodas3                                                  !
+!               * Rodas4                                                  !
+!  By default the code employs the KPP sparse linear algebra routines     !
+!  Compile with -DFULL_ALGEBRA to use full linear algebra (LAPACK)        !
+!                                                                         !
+!    (C)  Adrian Sandu, August 2004                                       !
+!    Virginia Polytechnic Institute and State University                  !
+!    Contact: sandu@cs.vt.edu                                             !
+!    Revised by Philipp Miehe and Adrian Sandu, May 2006                  ! 
+!    This implementation is part of KPP - the Kinetic PreProcessor        !
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
+
+MODULE KPP_ROOT_Integrator
+
+   USE KPP_ROOT_Precision
+   USE KPP_ROOT_Parameters
+   USE KPP_ROOT_Global
+   USE KPP_ROOT_LinearAlgebra
+   USE KPP_ROOT_Rates
+   USE KPP_ROOT_Function
+   USE KPP_ROOT_Jacobian
+   USE KPP_ROOT_Hessian
+   USE KPP_ROOT_Util
+   
+   IMPLICIT NONE
+   PUBLIC
+   SAVE
+  
+!~~~>  Statistics on the work performed by the Rosenbrock method
+   INTEGER, PARAMETER :: Nfun=1, Njac=2, Nstp=3, Nacc=4, &
+                         Nrej=5, Ndec=6, Nsol=7, Nsng=8, &
+                         Ntexit=1, Nhexit=2, Nhnew = 3
+
+
+CONTAINS ! Routines in the module KPP_ROOT_Integrator
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+SUBROUTINE INTEGRATE_ADJ( NADJ, Y, Lambda, TIN, TOUT, &
+           ATOL_adj, RTOL_adj,                        &
+           ICNTRL_U, RCNTRL_U, ISTATUS_U, RSTATUS_U )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+   IMPLICIT NONE        
+    
+!~~~> Y - Concentrations
+   KPP_REAL  :: Y(NVAR)
+!~~~> NADJ - No. of cost functionals for which adjoints
+!                are evaluated simultaneously
+!            If single cost functional is considered (like in
+!                most applications) simply set NADJ = 1      
+   INTEGER NADJ
+!~~~> Lambda - Sensitivities w.r.t. concentrations
+!     Note: Lambda (1:NVAR,j) contains sensitivities of
+!           the j-th cost functional w.r.t. Y(1:NVAR), j=1...NADJ
+   KPP_REAL  :: Lambda(NVAR,NADJ)
+   KPP_REAL, INTENT(IN)  :: TIN  ! TIN  - Start Time
+   KPP_REAL, INTENT(IN)  :: TOUT ! TOUT - End Time
+!~~~> Tolerances for adjoint calculations
+!     (used only for full continuous adjoint)   
+   KPP_REAL, INTENT(IN)  :: ATOL_adj(NVAR,NADJ), RTOL_adj(NVAR,NADJ)
+!~~~> Optional input parameters and statistics
+   INTEGER,       INTENT(IN),  OPTIONAL :: ICNTRL_U(20)
+   KPP_REAL, INTENT(IN),  OPTIONAL :: RCNTRL_U(20)
+   INTEGER,       INTENT(OUT), OPTIONAL :: ISTATUS_U(20)
+   KPP_REAL, INTENT(OUT), OPTIONAL :: RSTATUS_U(20)
+
+   KPP_REAL :: RCNTRL(20), RSTATUS(20)
+   INTEGER       :: ICNTRL(20), ISTATUS(20), IERR
+
+   INTEGER, SAVE :: Ntotal
+
+
+   ICNTRL(1:20)  = 0
+   RCNTRL(1:20)  = 0.0_dp
+   ISTATUS(1:20) = 0
+   RSTATUS(1:20) = 0.0_dp
+   
+   
+!~~~> fine-tune the integrator:
+!   ICNTRL(1) = 0       ! 0 = non-autonomous, 1 = autonomous
+!   ICNTRL(2) = 1       ! 0 = scalar, 1 = vector tolerances
+!   RCNTRL(3) = STEPMIN ! starting step
+!   ICNTRL(3) = 5       ! choice of the method for forward integration
+!   ICNTRL(6) = 1       ! choice of the method for continuous adjoint
+!   ICNTRL(7) = 2       ! 1=none, 2=discrete, 3=full continuous, 4=simplified continuous adjoint
+!   ICNTRL(8) = 1       ! Save fwd LU factorization: 0 = *don't* save, 1 = save
+
+
+   ! if optional parameters are given, and if they are >=0, then they overwrite default settings
+   IF (PRESENT(ICNTRL_U)) THEN
+     WHERE(ICNTRL_U(:) >= 0) ICNTRL(:) = ICNTRL_U(:)
+   END IF
+   IF (PRESENT(RCNTRL_U)) THEN
+     WHERE(RCNTRL_U(:) >= 0) RCNTRL(:) = RCNTRL_U(:)
+   END IF
+
+   
+   CALL RosenbrockADJ(Y, NADJ, Lambda,                 &
+         TIN, TOUT,                                    &
+         ATOL, RTOL, ATOL_adj, RTOL_adj,               &
+         RCNTRL, ICNTRL, RSTATUS, ISTATUS, IERR)
+
+
+!~~~> Debug option: show number of steps
+!    Ntotal = Ntotal + ISTATUS(Nstp)
+!    WRITE(6,777) ISTATUS(Nstp),Ntotal,VAR(ind_O3),VAR(ind_NO2)
+!777 FORMAT('NSTEPS=',I6,' (',I6,')  O3=',E24.14,'  NO2=',E24.14)    
+
+   IF (IERR < 0) THEN
+     print *,'RosenbrockADJ: Unsucessful step at T=',  &
+         TIN,' (IERR=',IERR,')'
+   END IF
+
+   STEPMIN = RSTATUS(Nhexit)
+   ! if optional parameters are given for output 
+   !         copy to them to return information
+   IF (PRESENT(ISTATUS_U)) ISTATUS_U(:) = ISTATUS(:)
+   IF (PRESENT(RSTATUS_U)) RSTATUS_U(:) = RSTATUS(:)
+
+END SUBROUTINE INTEGRATE_ADJ
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+SUBROUTINE RosenbrockADJ( Y, NADJ, Lambda,             &
+           Tstart, Tend,                               &
+           AbsTol, RelTol, AbsTol_adj, RelTol_adj,     &
+           RCNTRL, ICNTRL, RSTATUS, ISTATUS, IERR)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!   
+!    ADJ = Adjoint of the Tangent Linear Model of a Rosenbrock Method
+!
+!    Solves the system y'=F(t,y) using a RosenbrockADJ method defined by:
+!
+!     G = 1/(H*gamma(1)) - Jac(t0,Y0)
+!     T_i = t0 + Alpha(i)*H
+!     Y_i = Y0 + \sum_{j=1}^{i-1} A(i,j)*K_j
+!     G * K_i = Fun( T_i, Y_i ) + \sum_{j=1}^S C(i,j)/H * K_j +
+!         gamma(i)*dF/dT(t0, Y0)
+!     Y1 = Y0 + \sum_{j=1}^S M(j)*K_j 
+!
+!    For details on RosenbrockADJ methods and their implementation consult:
+!      E. Hairer and G. Wanner
+!      "Solving ODEs II. Stiff and differential-algebraic problems".
+!      Springer series in computational mathematics, Springer-Verlag, 1996.  
+!    The codes contained in the book inspired this implementation.       
+!
+!    (C)  Adrian Sandu, August 2004
+!    Virginia Polytechnic Institute and State University    
+!    Contact: sandu@cs.vt.edu
+!    Revised by Philipp Miehe and Adrian Sandu, May 2006                   
+!    This implementation is part of KPP - the Kinetic PreProcessor
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!    
+!~~~>   INPUT ARGUMENTS: 
+!    
+!-     Y(NVAR)    = vector of initial conditions (at T=Tstart)
+!      NADJ       -> dimension of linearized system, 
+!                   i.e. the number of sensitivity coefficients
+!-     Lambda(NVAR,NADJ) -> vector of initial sensitivity conditions (at T=Tstart)
+!-    [Tstart,Tend]  = time range of integration
+!     (if Tstart>Tend the integration is performed backwards in time)  
+!-    RelTol, AbsTol = user precribed accuracy
+!- SUBROUTINE Fun( T, Y, Ydot ) = ODE function, 
+!                       returns Ydot = Y' = F(T,Y) 
+!- SUBROUTINE Jac( T, Y, Jcb ) = Jacobian of the ODE function,
+!                       returns Jcb = dF/dY 
+!-    ICNTRL(1:10)    = integer inputs parameters
+!-    RCNTRL(1:10)    = real inputs parameters
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>     OUTPUT ARGUMENTS:  
+!     
+!-    Y(NVAR)    -> vector of final states (at T->Tend)
+!-    Lambda(NVAR,NADJ) -> vector of final sensitivities (at T=Tend)
+!-    ICNTRL(11:20)   -> integer output parameters
+!-    RCNTRL(11:20)   -> real output parameters
+!-    IERR       -> job status upon return
+!       - succes (positive value) or failure (negative value) -
+!           =  1 : Success
+!           = -1 : Improper value for maximal no of steps
+!           = -2 : Selected RosenbrockADJ method not implemented
+!           = -3 : Hmin/Hmax/Hstart must be positive
+!           = -4 : FacMin/FacMax/FacRej must be positive
+!           = -5 : Improper tolerance values
+!           = -6 : No of steps exceeds maximum bound
+!           = -7 : Step size too small
+!           = -8 : Matrix is repeatedly singular
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+!~~~>     INPUT PARAMETERS:
+!
+!    Note: For input parameters equal to zero the default values of the
+!       corresponding variables are used.
+!
+!    ICNTRL(1)   = 1: F = F(y)   Independent of T (AUTONOMOUS)
+!              = 0: F = F(t,y) Depends on T (NON-AUTONOMOUS)
+!
+!    ICNTRL(2)   = 0: AbsTol, RelTol are NVAR-dimensional vectors
+!              = 1:  AbsTol, RelTol are scalars
+!
+!    ICNTRL(3)  -> selection of a particular Rosenbrock method
+!        = 0 :  default method is Rodas3
+!        = 1 :  method is  Ros2
+!        = 2 :  method is  Ros3 
+!        = 3 :  method is  Ros4 
+!        = 4 :  method is  Rodas3
+!        = 5:   method is  Rodas4
+!
+!    ICNTRL(4)  -> maximum number of integration steps
+!        For ICNTRL(4)=0) the default value of BUFSIZE is used
+!
+!    ICNTRL(6)  -> selection of a particular Rosenbrock method for the
+!                continuous adjoint integration - for cts adjoint it
+!                can be different than the forward method ICNTRL(3)
+!         Note 1: to avoid interpolation errors (which can be huge!) 
+!                   it is recommended to use only ICNTRL(7) = 2 or 4
+!         Note 2: the performance of the full continuous adjoint
+!                   strongly depends on the forward solution accuracy Abs/RelTol
+!
+!    ICNTRL(7) -> Type of adjoint algorithm
+!         = 0 : default is discrete adjoint ( of method ICNTRL(3) )
+!         = 1 : no adjoint       
+!         = 2 : discrete adjoint ( of method ICNTRL(3) )
+!         = 3 : fully adaptive continuous adjoint ( with method ICNTRL(6) )
+!         = 4 : simplified continuous adjoint ( with method ICNTRL(6) )
+!
+!    ICNTRL(8)  -> checkpointing the LU factorization at each step:
+!        ICNTRL(8)=0 : do *not* save LU factorization (the default)
+!        ICNTRL(8)=1 : save LU factorization
+!        Note: if ICNTRL(7)=1 the LU factorization is *not* saved
+!
+!~~~>  Real input parameters:
+!
+!    RCNTRL(1)  -> Hmin, lower bound for the integration step size
+!          It is strongly recommended to keep Hmin = ZERO 
+!
+!    RCNTRL(2)  -> Hmax, upper bound for the integration step size
+!
+!    RCNTRL(3)  -> Hstart, starting value for the integration step size
+!          
+!    RCNTRL(4)  -> FacMin, lower bound on step decrease factor (default=0.2)
+!
+!    RCNTRL(5)  -> FacMax, upper bound on step increase factor (default=6)
+!
+!    RCNTRL(6)  -> FacRej, step decrease factor after multiple rejections
+!            (default=0.1)
+!
+!    RCNTRL(7)  -> FacSafe, by which the new step is slightly smaller 
+!         than the predicted value  (default=0.9)
+!
+!    RCNTRL(8)  -> ThetaMin. If Newton convergence rate smaller
+!                  than ThetaMin the Jacobian is not recomputed;
+!                  (default=0.001)
+!
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+!~~~>     OUTPUT PARAMETERS:
+!
+!    Note: each call to RosenbrockADJ adds the corrent no. of fcn calls
+!      to previous value of ISTATUS(1), and similar for the other params.
+!      Set ISTATUS(1:10) = 0 before call to avoid this accumulation.
+!
+!    ISTATUS(1) = No. of function calls
+!    ISTATUS(2) = No. of jacobian calls
+!    ISTATUS(3) = No. of steps
+!    ISTATUS(4) = No. of accepted steps
+!    ISTATUS(5) = No. of rejected steps (except at the beginning)
+!    ISTATUS(6) = No. of LU decompositions
+!    ISTATUS(7) = No. of forward/backward substitutions
+!    ISTATUS(8) = No. of singular matrix decompositions
+!
+!    RSTATUS(1)  -> Texit, the time corresponding to the 
+!                   computed Y upon return
+!    RSTATUS(2)  -> Hexit, last accepted step before exit
+!    For multiple restarts, use Hexit as Hstart in the following run 
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  IMPLICIT NONE
+   
+!~~~>  Arguments   
+   KPP_REAL, INTENT(INOUT) :: Y(NVAR)
+   INTEGER, INTENT(IN)          :: NADJ
+   KPP_REAL, INTENT(INOUT) :: Lambda(NVAR,NADJ)
+   KPP_REAL, INTENT(IN)    :: Tstart,Tend
+   KPP_REAL, INTENT(IN)    :: AbsTol(NVAR),RelTol(NVAR)
+   KPP_REAL, INTENT(IN)    :: AbsTol_adj(NVAR,NADJ), RelTol_adj(NVAR,NADJ)
+   INTEGER, INTENT(IN)          :: ICNTRL(20)
+   KPP_REAL, INTENT(IN)    :: RCNTRL(20)
+   INTEGER, INTENT(INOUT)       :: ISTATUS(20)
+   KPP_REAL, INTENT(INOUT) :: RSTATUS(20)
+   INTEGER, INTENT(OUT)         :: IERR
+!~~~>  Parameters of the Rosenbrock method, up to 6 stages
+   INTEGER ::  ros_S, rosMethod
+   INTEGER, PARAMETER :: RS2=1, RS3=2, RS4=3, RD3=4, RD4=5
+   KPP_REAL :: ros_A(15), ros_C(15), ros_M(6), ros_E(6), &
+                    ros_Alpha(6), ros_Gamma(6), ros_ELO
+   LOGICAL :: ros_NewF(6)
+   CHARACTER(LEN=12) :: ros_Name
+!~~~>  Types of Adjoints Implemented
+   INTEGER, PARAMETER :: Adj_none = 1, Adj_discrete = 2,      &
+                   Adj_continuous = 3, Adj_simple_continuous = 4
+!~~~>  Checkpoints in memory
+   INTEGER, PARAMETER :: bufsize = 200000
+   INTEGER :: stack_ptr = 0 ! last written entry
+   KPP_REAL, DIMENSION(:),   POINTER :: chk_H, chk_T
+   KPP_REAL, DIMENSION(:,:), POINTER :: chk_Y, chk_K, chk_J
+   KPP_REAL, DIMENSION(:,:), POINTER :: chk_dY, chk_d2Y
+!~~~>  Local variables     
+   KPP_REAL :: Roundoff, FacMin, FacMax, FacRej, FacSafe
+   KPP_REAL :: Hmin, Hmax, Hstart
+   KPP_REAL :: Texit
+   INTEGER :: i, UplimTol, Max_no_steps
+   INTEGER :: AdjointType, CadjMethod 
+   LOGICAL :: Autonomous, VectorTol, SaveLU
+!~~~>   Parameters
+   KPP_REAL, PARAMETER :: ZERO = 0.0d0, ONE  = 1.0d0
+   KPP_REAL, PARAMETER :: DeltaMin = 1.0d-5
+
+!~~~>  Initialize statistics
+   ISTATUS(1:20) = 0
+   RSTATUS(1:20) = ZERO
+   
+!~~~>  Autonomous or time dependent ODE. Default is time dependent.
+   Autonomous = .NOT.(ICNTRL(1) == 0)
+
+!~~~>  For Scalar tolerances (ICNTRL(2).NE.0)  the code uses AbsTol(1) and RelTol(1)
+!   For Vector tolerances (ICNTRL(2) == 0) the code uses AbsTol(1:NVAR) and RelTol(1:NVAR)
+   IF (ICNTRL(2) == 0) THEN
+      VectorTol = .TRUE.
+      UplimTol  = NVAR
+   ELSE 
+      VectorTol = .FALSE.
+      UplimTol  = 1
+   END IF
+
+!~~~>   Initialize the particular Rosenbrock method selected
+   SELECT CASE (ICNTRL(3))
+     CASE (1)
+       CALL Ros2
+     CASE (2)
+       CALL Ros3
+     CASE (3)
+       CALL Ros4
+     CASE (0,4)
+       CALL Rodas3
+     CASE (5)
+       CALL Rodas4
+     CASE DEFAULT
+       PRINT * , 'Unknown Rosenbrock method: ICNTRL(3)=',ICNTRL(3) 
+       CALL ros_ErrorMsg(-2,Tstart,ZERO,IERR)
+       RETURN
+   END SELECT
+   
+!~~~>   The maximum number of steps admitted
+   IF (ICNTRL(4) == 0) THEN
+      Max_no_steps = bufsize - 1
+   ELSEIF (Max_no_steps > 0) THEN
+      Max_no_steps=ICNTRL(4)
+   ELSE 
+      PRINT * ,'User-selected max no. of steps: ICNTRL(4)=',ICNTRL(4)
+      CALL ros_ErrorMsg(-1,Tstart,ZERO,IERR)
+      RETURN      
+   END IF
+
+!~~~>  The particular Rosenbrock method chosen for integrating the cts adjoint
+   IF (ICNTRL(6) == 0) THEN
+      CadjMethod = 4
+   ELSEIF ( (ICNTRL(6) >= 1).AND.(ICNTRL(6) <= 5) ) THEN
+      CadjMethod = ICNTRL(6)
+   ELSE  
+      PRINT * , 'Unknown CADJ Rosenbrock method: ICNTRL(6)=', CadjMethod
+      CALL ros_ErrorMsg(-2,Tstart,ZERO,IERR)
+      RETURN      
+   END IF
+ 
+!~~~>  Discrete or continuous adjoint formulation
+   IF ( ICNTRL(7) == 0 ) THEN
+       AdjointType = Adj_discrete
+   ELSEIF ( (ICNTRL(7) >= 1).AND.(ICNTRL(7) <= 4) ) THEN
+       AdjointType = ICNTRL(7)
+   ELSE  
+      PRINT * , 'User-selected adjoint type: ICNTRL(7)=', AdjointType
+      CALL ros_ErrorMsg(-9,Tstart,ZERO,IERR)
+      RETURN      
+   END IF
+
+!~~~> Save or not the forward LU factorization
+      SaveLU = (ICNTRL(8) /= 0) 
+
+ 
+!~~~>  Unit roundoff (1+Roundoff>1)  
+   Roundoff = WLAMCH('E')
+
+!~~~>  Lower bound on the step size: (positive value)
+   IF (RCNTRL(1) == ZERO) THEN
+      Hmin = ZERO
+   ELSEIF (RCNTRL(1) > ZERO) THEN 
+      Hmin = RCNTRL(1)
+   ELSE  
+      PRINT * , 'User-selected Hmin: RCNTRL(1)=', RCNTRL(1)
+      CALL ros_ErrorMsg(-3,Tstart,ZERO,IERR)
+      RETURN      
+   END IF
+!~~~>  Upper bound on the step size: (positive value)
+   IF (RCNTRL(2) == ZERO) THEN
+      Hmax = ABS(Tend-Tstart)
+   ELSEIF (RCNTRL(2) > ZERO) THEN
+      Hmax = MIN(ABS(RCNTRL(2)),ABS(Tend-Tstart))
+   ELSE  
+      PRINT * , 'User-selected Hmax: RCNTRL(2)=', RCNTRL(2)
+      CALL ros_ErrorMsg(-3,Tstart,ZERO,IERR)
+      RETURN      
+   END IF
+!~~~>  Starting step size: (positive value)
+   IF (RCNTRL(3) == ZERO) THEN
+      Hstart = MAX(Hmin,DeltaMin)
+   ELSEIF (RCNTRL(3) > ZERO) THEN
+      Hstart = MIN(ABS(RCNTRL(3)),ABS(Tend-Tstart))
+   ELSE  
+      PRINT * , 'User-selected Hstart: RCNTRL(3)=', RCNTRL(3)
+      CALL ros_ErrorMsg(-3,Tstart,ZERO,IERR)
+      RETURN      
+   END IF
+!~~~>  Step size can be changed s.t.  FacMin < Hnew/Hold < FacMax 
+   IF (RCNTRL(4) == ZERO) THEN
+      FacMin = 0.2d0
+   ELSEIF (RCNTRL(4) > ZERO) THEN
+      FacMin = RCNTRL(4)
+   ELSE  
+      PRINT * , 'User-selected FacMin: RCNTRL(4)=', RCNTRL(4)
+      CALL ros_ErrorMsg(-4,Tstart,ZERO,IERR)
+      RETURN      
+   END IF
+   IF (RCNTRL(5) == ZERO) THEN
+      FacMax = 6.0d0
+   ELSEIF (RCNTRL(5) > ZERO) THEN
+      FacMax = RCNTRL(5)
+   ELSE  
+      PRINT * , 'User-selected FacMax: RCNTRL(5)=', RCNTRL(5)
+      CALL ros_ErrorMsg(-4,Tstart,ZERO,IERR)
+      RETURN      
+   END IF
+!~~~>   FacRej: Factor to decrease step after 2 succesive rejections
+   IF (RCNTRL(6) == ZERO) THEN
+      FacRej = 0.1d0
+   ELSEIF (RCNTRL(6) > ZERO) THEN
+      FacRej = RCNTRL(6)
+   ELSE  
+      PRINT * , 'User-selected FacRej: RCNTRL(6)=', RCNTRL(6)
+      CALL ros_ErrorMsg(-4,Tstart,ZERO,IERR)
+      RETURN      
+   END IF
+!~~~>   FacSafe: Safety Factor in the computation of new step size
+   IF (RCNTRL(7) == ZERO) THEN
+      FacSafe = 0.9d0
+   ELSEIF (RCNTRL(7) > ZERO) THEN
+      FacSafe = RCNTRL(7)
+   ELSE  
+      PRINT * , 'User-selected FacSafe: RCNTRL(7)=', RCNTRL(7)
+      CALL ros_ErrorMsg(-4,Tstart,ZERO,IERR)
+      RETURN      
+   END IF
+!~~~>  Check if tolerances are reasonable
+    DO i=1,UplimTol
+      IF ( (AbsTol(i) <= ZERO) .OR. (RelTol(i) <= 10.d0*Roundoff) &
+         .OR. (RelTol(i) >= 1.0d0) ) THEN
+        PRINT * , ' AbsTol(',i,') = ',AbsTol(i)
+        PRINT * , ' RelTol(',i,') = ',RelTol(i)
+        CALL ros_ErrorMsg(-5,Tstart,ZERO,IERR)
+        RETURN
+      END IF
+    END DO
+     
+ 
+!~~~>  Allocate checkpoint space or open checkpoint files
+   IF (AdjointType == Adj_discrete) THEN
+       CALL ros_AllocateDBuffers( ros_S )
+   ELSEIF ( (AdjointType == Adj_continuous).OR.  &
+           (AdjointType == Adj_simple_continuous) ) THEN
+       CALL ros_AllocateCBuffers
+   END IF
+   
+!~~~>  CALL Forward Rosenbrock method   
+   CALL ros_FwdInt(Y,Tstart,Tend,Texit,          & 
+        AbsTol, RelTol,                          & 
+!  Error indicator
+        IERR)
+
+   PRINT*,'FORWARD STATISTICS'
+   PRINT*,'Step=',Nstp,' Acc=',Nacc,   &
+        ' Rej=',Nrej, ' Singular=',Nsng
+
+!~~~>  If Forward integration failed return   
+   IF (IERR<0) RETURN
+
+!~~~>   Initialize the particular Rosenbrock method for continuous adjoint
+   IF ( (AdjointType == Adj_continuous).OR. &
+           (AdjointType == Adj_simple_continuous) ) THEN
+   SELECT CASE (CadjMethod)
+     CASE (1)
+       CALL Ros2
+     CASE (2)
+       CALL Ros3
+     CASE (3)
+       CALL Ros4
+     CASE (4)
+       CALL Rodas3
+     CASE (5)
+       CALL Rodas4
+     CASE DEFAULT
+       PRINT * , 'Unknown Rosenbrock method: ICNTRL(3)=', ICNTRL(3)
+       CALL ros_ErrorMsg(-2,Tstart,ZERO,IERR) 
+       RETURN     
+   END SELECT
+   END IF
+
+   SELECT CASE (AdjointType)   
+   CASE (Adj_discrete)   
+     CALL ros_DadjInt (                          &
+        NADJ, Lambda,                            &
+        Tstart, Tend, Texit,                     &
+        IERR )
+   CASE (Adj_continuous) 
+     CALL ros_CadjInt (                          &
+        NADJ, Lambda,                            &
+        Tend, Tstart, Texit,                     &
+        AbsTol_adj, RelTol_adj,                  &
+        IERR )
+   CASE (Adj_simple_continuous)
+     CALL ros_SimpleCadjInt (                    &
+        NADJ, Lambda,                            &
+        Tstart, Tend, Texit,                     &
+        IERR )
+   END SELECT ! AdjointType
+
+   PRINT*,'ADJOINT STATISTICS'
+   PRINT*,'Step=',Nstp,' Acc=',Nacc,             &
+        ' Rej=',Nrej, ' Singular=',Nsng
+
+!~~~>  Free checkpoint space or close checkpoint files
+   IF (AdjointType == Adj_discrete) THEN
+      CALL ros_FreeDBuffers
+   ELSEIF ( (AdjointType == Adj_continuous) .OR. &
+           (AdjointType == Adj_simple_continuous) ) THEN
+      CALL ros_FreeCBuffers
+   END IF
+   
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+CONTAINS !  Procedures internal to RosenbrockADJ
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE ros_AllocateDBuffers( S )
+!~~~>  Allocate buffer space for discrete adjoint
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   INTEGER :: i, S
+   
+   ALLOCATE( chk_H(bufsize), STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed allocation of buffer H'; STOP
+   END IF   
+   ALLOCATE( chk_T(bufsize), STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed allocation of buffer T'; STOP
+   END IF   
+   ALLOCATE( chk_Y(NVAR*S,bufsize), STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed allocation of buffer Y'; STOP
+   END IF   
+   ALLOCATE( chk_K(NVAR*S,bufsize), STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed allocation of buffer K'; STOP
+   END IF  
+   IF (SaveLU) THEN 
+#ifdef FULL_ALGEBRA
+     ALLOCATE( chk_J(NVAR*NVAR,bufsize), STAT=i )
+#else
+     ALLOCATE( chk_J(LU_NONZERO,bufsize), STAT=i )
+#endif
+     IF (i/=0) THEN
+        PRINT*,'Failed allocation of buffer J'; STOP
+     END IF   
+   END IF   
+
+ END SUBROUTINE ros_AllocateDBuffers
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE ros_FreeDBuffers
+!~~~>  Dallocate buffer space for discrete adjoint
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   INTEGER :: i
+   
+   DEALLOCATE( chk_H, STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed deallocation of buffer H'; STOP
+   END IF   
+   DEALLOCATE( chk_T, STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed deallocation of buffer T'; STOP
+   END IF   
+   DEALLOCATE( chk_Y, STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed deallocation of buffer Y'; STOP
+   END IF   
+   DEALLOCATE( chk_K, STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed deallocation of buffer K'; STOP
+   END IF   
+   IF (SaveLU) THEN 
+     DEALLOCATE( chk_J, STAT=i )
+     IF (i/=0) THEN
+        PRINT*,'Failed deallocation of buffer J'; STOP
+     END IF   
+   END IF   
+ 
+ END SUBROUTINE ros_FreeDBuffers
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE ros_AllocateCBuffers
+!~~~>  Allocate buffer space for continuous adjoint
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   INTEGER :: i
+   
+   ALLOCATE( chk_H(bufsize), STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed allocation of buffer H'; STOP
+   END IF   
+   ALLOCATE( chk_T(bufsize), STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed allocation of buffer T'; STOP
+   END IF   
+   ALLOCATE( chk_Y(NVAR,bufsize), STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed allocation of buffer Y'; STOP
+   END IF   
+   ALLOCATE( chk_dY(NVAR,bufsize), STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed allocation of buffer dY'; STOP
+   END IF   
+   ALLOCATE( chk_d2Y(NVAR,bufsize), STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed allocation of buffer d2Y'; STOP
+   END IF   
+ 
+ END SUBROUTINE ros_AllocateCBuffers
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE ros_FreeCBuffers
+!~~~>  Dallocate buffer space for continuous adjoint
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   INTEGER :: i
+   
+   DEALLOCATE( chk_H, STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed deallocation of buffer H'; STOP
+   END IF   
+   DEALLOCATE( chk_T, STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed deallocation of buffer T'; STOP
+   END IF   
+   DEALLOCATE( chk_Y, STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed deallocation of buffer Y'; STOP
+   END IF   
+   DEALLOCATE( chk_dY, STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed deallocation of buffer dY'; STOP
+   END IF   
+   DEALLOCATE( chk_d2Y, STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed deallocation of buffer d2Y'; STOP
+   END IF   
+ 
+ END SUBROUTINE ros_FreeCBuffers
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE ros_DPush( S, T, H, Ystage, K, E, P )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> Saves the next trajectory snapshot for discrete adjoints
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   INTEGER :: S ! no of stages
+   KPP_REAL :: T, H, Ystage(NVAR*S), K(NVAR*S)
+   INTEGER       :: P(NVAR)
+#ifdef FULL_ALGEBRA
+   KPP_REAL :: E(NVAR,NVAR)
+#else       
+   KPP_REAL :: E(LU_NONZERO)
+#endif
+   
+   stack_ptr = stack_ptr + 1
+   IF ( stack_ptr > bufsize ) THEN
+     PRINT*,'Push failed: buffer overflow'
+     STOP
+   END IF  
+   chk_H( stack_ptr ) = H
+   chk_T( stack_ptr ) = T
+   !CALL WCOPY(NVAR*S,Ystage,1,chk_Y(1,stack_ptr),1)
+   !CALL WCOPY(NVAR*S,K,1,chk_K(1,stack_ptr),1)
+   chk_Y(1:NVAR*S,stack_ptr) = Ystage(1:NVAR*S)
+   chk_K(1:NVAR*S,stack_ptr) = K(1:NVAR*S)
+   IF (SaveLU) THEN 
+#ifdef FULL_ALGEBRA
+       chk_J(1:NVAR,1:NVAR,stack_ptr) = E(1:NVAR,1:NVAR)
+       chk_P(1:NVAR,stack_ptr)        = P(1:NVAR)
+#else       
+       chk_J(1:LU_NONZERO,stack_ptr)  = E(1:LU_NONZERO)
+#endif
+    END IF
+  
+  END SUBROUTINE ros_DPush
+  
+   
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE ros_DPop( S, T, H, Ystage, K, E, P )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> Retrieves the next trajectory snapshot for discrete adjoints
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+   INTEGER :: S ! no of stages
+   KPP_REAL :: T, H, Ystage(NVAR*S), K(NVAR*S)
+   INTEGER       :: P(NVAR)
+#ifdef FULL_ALGEBRA
+   KPP_REAL :: E(NVAR,NVAR)
+#else       
+   KPP_REAL :: E(LU_NONZERO)
+#endif
+   
+   IF ( stack_ptr <= 0 ) THEN
+     PRINT*,'Pop failed: empty buffer'
+     STOP
+   END IF  
+   H = chk_H( stack_ptr )
+   T = chk_T( stack_ptr )
+   !CALL WCOPY(NVAR*S,chk_Y(1,stack_ptr),1,Ystage,1)
+   !CALL WCOPY(NVAR*S,chk_K(1,stack_ptr),1,K,1)
+   Ystage(1:NVAR*S) = chk_Y(1:NVAR*S,stack_ptr)
+   K(1:NVAR*S)      = chk_K(1:NVAR*S,stack_ptr)
+   !CALL WCOPY(LU_NONZERO,chk_J(1,stack_ptr),1,Jcb,1)
+   IF (SaveLU) THEN
+#ifdef FULL_ALGEBRA
+       E(1:NVAR,1:NVAR) = chk_J(1:NVAR,1:NVAR,stack_ptr)
+       P(1:NVAR)        = chk_P(1:NVAR,stack_ptr)
+#else       
+       E(1:LU_NONZERO)  = chk_J(1:LU_NONZERO,stack_ptr)
+#endif
+    END IF
+
+   stack_ptr = stack_ptr - 1
+  
+  END SUBROUTINE ros_DPop
+ 
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE ros_CPush( T, H, Y, dY, d2Y )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> Saves the next trajectory snapshot for discrete adjoints
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+   KPP_REAL :: T, H, Y(NVAR), dY(NVAR), d2Y(NVAR)
+   
+   stack_ptr = stack_ptr + 1
+   IF ( stack_ptr > bufsize ) THEN
+     PRINT*,'Push failed: buffer overflow'
+     STOP
+   END IF  
+   chk_H( stack_ptr ) = H
+   chk_T( stack_ptr ) = T
+   !CALL WCOPY(NVAR,Y,1,chk_Y(1,stack_ptr),1)
+   !CALL WCOPY(NVAR,dY,1,chk_dY(1,stack_ptr),1)
+   !CALL WCOPY(NVAR,d2Y,1,chk_d2Y(1,stack_ptr),1)
+   chk_Y(1:NVAR,stack_ptr)   = Y(1:NVAR)
+   chk_dY(1:NVAR,stack_ptr)  = dY(1:NVAR)
+   chk_d2Y(1:NVAR,stack_ptr) = d2Y(1:NVAR)
+  END SUBROUTINE ros_CPush
+  
+   
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE ros_CPop( T, H, Y, dY, d2Y )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> Retrieves the next trajectory snapshot for discrete adjoints
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+   KPP_REAL :: T, H, Y(NVAR), dY(NVAR), d2Y(NVAR)
+   
+   IF ( stack_ptr <= 0 ) THEN
+     PRINT*,'Pop failed: empty buffer'
+     STOP
+   END IF  
+   H = chk_H( stack_ptr )
+   T = chk_T( stack_ptr )
+   !CALL WCOPY(NVAR,chk_Y(1,stack_ptr),1,Y,1)
+   !CALL WCOPY(NVAR,chk_dY(1,stack_ptr),1,dY,1)
+   !CALL WCOPY(NVAR,chk_d2Y(1,stack_ptr),1,d2Y,1)
+   Y(1:NVAR)   = chk_Y(1:NVAR,stack_ptr)
+   dY(1:NVAR)  = chk_dY(1:NVAR,stack_ptr)
+   d2Y(1:NVAR) = chk_d2Y(1:NVAR,stack_ptr)
+
+   stack_ptr = stack_ptr - 1
+  
+  END SUBROUTINE ros_CPop
+
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+ SUBROUTINE ros_ErrorMsg(Code,T,H,IERR)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+!    Handles all error messages
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+  
+   KPP_REAL, INTENT(IN) :: T, H
+   INTEGER, INTENT(IN)  :: Code
+   INTEGER, INTENT(OUT) :: IERR
+   
+   IERR = Code
+   PRINT * , &
+     'Forced exit from RosenbrockADJ due to the following error:' 
+     
+   SELECT CASE (Code)
+    CASE (-1)    
+      PRINT * , '--> Improper value for maximal no of steps'
+    CASE (-2)    
+      PRINT * , '--> Selected RosenbrockADJ method not implemented'
+    CASE (-3)    
+      PRINT * , '--> Hmin/Hmax/Hstart must be positive'
+    CASE (-4)    
+      PRINT * , '--> FacMin/FacMax/FacRej must be positive'
+    CASE (-5) 
+      PRINT * , '--> Improper tolerance values'
+    CASE (-6) 
+      PRINT * , '--> No of steps exceeds maximum buffer bound'
+    CASE (-7) 
+      PRINT * , '--> Step size too small: T + 10*H = T', &
+            ' or H < Roundoff'
+    CASE (-8)    
+      PRINT * , '--> Matrix is repeatedly singular'
+    CASE (-9)    
+      PRINT * , '--> Improper type of adjoint selected'
+    CASE DEFAULT
+      PRINT *, 'Unknown Error code: ', Code
+   END SELECT
+   
+   PRINT *, "T=", T, "and H=", H
+     
+ END SUBROUTINE ros_ErrorMsg
+   
+     
+   
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE ros_FwdInt (Y,                       &
+        Tstart, Tend, T,                         &
+        AbsTol, RelTol,                          &
+!~~~> Error indicator
+        IERR )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!   Template for the implementation of a generic RosenbrockADJ method 
+!      defined by ros_S (no of stages)  
+!      and its coefficients ros_{A,C,M,E,Alpha,Gamma}
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  IMPLICIT NONE
+   
+!~~~> Input: the initial condition at Tstart; Output: the solution at T   
+   KPP_REAL, INTENT(INOUT) :: Y(NVAR)
+!~~~> Input: integration interval   
+   KPP_REAL, INTENT(IN) :: Tstart,Tend      
+!~~~> Output: time at which the solution is returned (T=Tend if success)   
+   KPP_REAL, INTENT(OUT) ::  T      
+!~~~> Input: tolerances      
+   KPP_REAL, INTENT(IN) ::  AbsTol(NVAR), RelTol(NVAR)
+!~~~> Output: Error indicator
+   INTEGER, INTENT(OUT) :: IERR
+! ~~~~ Local variables        
+   KPP_REAL :: Ynew(NVAR), Fcn0(NVAR), Fcn(NVAR) 
+   KPP_REAL :: K(NVAR*ros_S), dFdT(NVAR)
+   KPP_REAL, DIMENSION(:), POINTER :: Ystage
+#ifdef FULL_ALGEBRA    
+   KPP_REAL :: Jac0(NVAR,NVAR),  Ghimj(NVAR,NVAR)
+#else
+   KPP_REAL :: Jac0(LU_NONZERO), Ghimj(LU_NONZERO)
+#endif
+   KPP_REAL :: H, Hnew, HC, HG, Fac, Tau 
+   KPP_REAL :: Err, Yerr(NVAR)
+   INTEGER :: Pivot(NVAR), Direction, ioffset, i, j, istage
+   LOGICAL :: RejectLastH, RejectMoreH, Singular
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+!~~~>  Allocate stage vector buffer if needed
+   IF (AdjointType == Adj_discrete) THEN
+        ALLOCATE(Ystage(NVAR*ros_S), STAT=i)
+        ! Uninitialized Ystage may lead to NaN on some compilers
+        Ystage = 0.0d0
+        IF (i/=0) THEN
+          PRINT*,'Allocation of Ystage failed'
+          STOP
+        END IF
+   END IF   
+   
+!~~~>  Initial preparations
+   T = Tstart
+   RSTATUS(Nhexit) = ZERO
+   H = MIN( MAX(ABS(Hmin),ABS(Hstart)) , ABS(Hmax) )
+   IF (ABS(H) <= 10.0_dp*Roundoff) H = DeltaMin
+
+   IF (Tend  >=  Tstart) THEN
+     Direction = +1
+   ELSE
+     Direction = -1
+   END IF
+   H = Direction*H
+
+   RejectLastH=.FALSE.
+   RejectMoreH=.FALSE.
+   
+!~~~> Time loop begins below 
+
+TimeLoop: DO WHILE ( (Direction > 0).AND.((T-Tend)+Roundoff <= ZERO) &
+       .OR. (Direction < 0).AND.((Tend-T)+Roundoff <= ZERO) ) 
+      
+   IF ( ISTATUS(Nstp) > Max_no_steps ) THEN  ! Too many steps
+      CALL ros_ErrorMsg(-6,T,H,IERR)
+      RETURN
+   END IF
+   IF ( ((T+0.1d0*H) == T).OR.(H <= Roundoff) ) THEN  ! Step size too small
+      CALL ros_ErrorMsg(-7,T,H,IERR)
+      RETURN
+   END IF
+   
+!~~~>  Limit H if necessary to avoid going beyond Tend   
+   RSTATUS(Nhexit) = H
+   H = MIN(H,ABS(Tend-T))
+
+!~~~>   Compute the function at current time
+   CALL Fun_Template(T,Y,Fcn0)
+   ISTATUS(Nfun) = ISTATUS(Nfun) + 1 
+
+!~~~>  Compute the function derivative with respect to T
+   IF (.NOT.Autonomous) THEN
+      CALL ros_FunTimeDerivative ( T, Roundoff, Y, &
+                Fcn0, dFdT )
+   END IF
+  
+!~~~>   Compute the Jacobian at current time
+   CALL Jac_Template(T,Y,Jac0)
+   ISTATUS(Njac) = ISTATUS(Njac) + 1
+ 
+!~~~>  Repeat step calculation until current step accepted
+UntilAccepted: DO  
+   
+   CALL ros_PrepareMatrix(H,Direction,ros_Gamma(1), &
+          Jac0,Ghimj,Pivot,Singular)
+   IF (Singular) THEN ! More than 5 consecutive failed decompositions
+       CALL ros_ErrorMsg(-8,T,H,IERR)
+       RETURN
+   END IF
+
+!~~~>   Compute the stages
+Stage: DO istage = 1, ros_S
+      
+      ! Current istage offset. Current istage vector is K(ioffset+1:ioffset+NVAR)
+       ioffset = NVAR*(istage-1)
+      
+      ! For the 1st istage the function has been computed previously
+       IF ( istage == 1 ) THEN
+         CALL WCOPY(NVAR,Fcn0,1,Fcn,1)
+         IF (AdjointType == Adj_discrete) THEN ! Save stage solution
+            ! CALL WCOPY(NVAR,Y,1,Ystage(1),1)
+            Ystage(1:NVAR) = Y(1:NVAR)
+            CALL WCOPY(NVAR,Y,1,Ynew,1)
+         END IF   
+      ! istage>1 and a new function evaluation is needed at the current istage
+       ELSEIF ( ros_NewF(istage) ) THEN
+         CALL WCOPY(NVAR,Y,1,Ynew,1)
+         DO j = 1, istage-1
+	   CALL WAXPY(NVAR,ros_A((istage-1)*(istage-2)/2+j), &
+            K(NVAR*(j-1)+1:NVAR*j),1,Ynew,1) 
+         END DO
+         Tau = T + ros_Alpha(istage)*Direction*H
+         CALL Fun_Template(Tau,Ynew,Fcn)
+         ISTATUS(Nfun) = ISTATUS(Nfun) + 1
+       END IF ! if istage == 1 elseif ros_NewF(istage)
+      ! save stage solution every time even if ynew is not updated
+       IF ( ( istage > 1 ).AND.(AdjointType == Adj_discrete) ) THEN
+         ! CALL WCOPY(NVAR,Ynew,1,Ystage(ioffset+1:ioffset+NVAR),1)
+         Ystage(ioffset+1:ioffset+NVAR) = Ynew(1:NVAR)
+       END IF   
+       !CALL WCOPY(NVAR,Fcn,1,K(ioffset+1:ioffset+NVAR),1)
+       K(ioffset+1:ioffset+NVAR) = Fcn(1:NVAR)
+       DO j = 1, istage-1
+         HC = ros_C((istage-1)*(istage-2)/2+j)/(Direction*H)
+         CALL WAXPY(NVAR,HC,K(NVAR*(j-1)+1:NVAR*j),1,K(ioffset+1:ioffset+NVAR),1)
+       END DO
+       IF ((.NOT. Autonomous).AND.(ros_Gamma(istage).NE.ZERO)) THEN
+         HG = Direction*H*ros_Gamma(istage)
+         CALL WAXPY(NVAR,HG,dFdT,1,K(ioffset+1:ioffset+NVAR),1)
+       END IF
+       CALL ros_Solve('N', Ghimj, Pivot, K(ioffset+1:ioffset+NVAR))
+      
+   END DO Stage     
+            
+
+!~~~>  Compute the new solution 
+   CALL WCOPY(NVAR,Y,1,Ynew,1)
+   DO j=1,ros_S
+         CALL WAXPY(NVAR,ros_M(j),K(NVAR*(j-1)+1:NVAR*j),1,Ynew,1)
+   END DO
+
+!~~~>  Compute the error estimation 
+   CALL WSCAL(NVAR,ZERO,Yerr,1)
+   DO j=1,ros_S     
+        CALL WAXPY(NVAR,ros_E(j),K(NVAR*(j-1)+1:NVAR*j),1,Yerr,1)
+   END DO 
+   Err = ros_ErrorNorm ( Y, Ynew, Yerr, AbsTol, RelTol, VectorTol )
+
+!~~~> New step size is bounded by FacMin <= Hnew/H <= FacMax
+   Fac  = MIN(FacMax,MAX(FacMin,FacSafe/Err**(ONE/ros_ELO)))
+   Hnew = H*Fac  
+
+!~~~>  Check the error magnitude and adjust step size
+   ISTATUS(Nstp) = ISTATUS(Nstp) + 1
+   IF ( (Err <= ONE).OR.(H <= Hmin) ) THEN  !~~~> Accept step
+      ISTATUS(Nacc) = ISTATUS(Nacc) + 1
+      IF (AdjointType == Adj_discrete) THEN ! Save current state
+          CALL ros_DPush( ros_S, T, H, Ystage, K, Ghimj, Pivot )
+      ELSEIF ( (AdjointType == Adj_continuous) .OR. &
+           (AdjointType == Adj_simple_continuous) ) THEN
+#ifdef FULL_ALGEBRA
+          K = MATMUL(Jac0,Fcn0)
+#else           
+          CALL Jac_SP_Vec( Jac0, Fcn0, K(1:NVAR) )
+#endif          
+          IF (.NOT. Autonomous) THEN
+             CALL WAXPY(NVAR,ONE,dFdT,1,K(1:NVAR),1)
+          END IF   
+          CALL ros_CPush( T, H, Y, Fcn0, K(1:NVAR) )
+      END IF      
+      CALL WCOPY(NVAR,Ynew,1,Y,1)
+      T = T + Direction*H
+      Hnew = MAX(Hmin,MIN(Hnew,Hmax))
+      IF (RejectLastH) THEN  ! No step size increase after a rejected step
+         Hnew = MIN(Hnew,H) 
+      END IF   
+      RSTATUS(Nhexit) = H
+      RSTATUS(Nhnew)  = Hnew
+      RSTATUS(Ntexit) = T
+      RejectLastH = .FALSE.  
+      RejectMoreH = .FALSE.
+      H = Hnew      
+      EXIT UntilAccepted ! EXIT THE LOOP: WHILE STEP NOT ACCEPTED
+   ELSE           !~~~> Reject step
+      IF (RejectMoreH) THEN
+         Hnew = H*FacRej
+      END IF   
+      RejectMoreH = RejectLastH
+      RejectLastH = .TRUE.
+      H = Hnew
+      IF (ISTATUS(Nacc) >= 1) THEN
+         ISTATUS(Nrej) = ISTATUS(Nrej) + 1
+      END IF    
+   END IF ! Err <= 1
+
+   END DO UntilAccepted 
+
+   END DO TimeLoop 
+   
+!~~~> Save last state: only needed for continuous adjoint
+   IF ( (AdjointType == Adj_continuous) .OR. &
+       (AdjointType == Adj_simple_continuous) ) THEN
+       CALL Fun_Template(T,Y,Fcn0)
+       ISTATUS(Nfun) = ISTATUS(Nfun) + 1
+       CALL Jac_Template(T,Y,Jac0)
+       ISTATUS(Njac) = ISTATUS(Njac) + 1
+#ifdef FULL_ALGEBRA
+       K = MATMUL(Jac0,Fcn0)
+#else
+       CALL Jac_SP_Vec( Jac0, Fcn0, K(1:NVAR) )
+#endif       
+       IF (.NOT. Autonomous) THEN
+           CALL ros_FunTimeDerivative ( T, Roundoff, Y, &
+                Fcn0, dFdT )
+           CALL WAXPY(NVAR,ONE,dFdT,1,K(1:NVAR),1)
+       END IF   
+       CALL ros_CPush( T, H, Y, Fcn0, K(1:NVAR) )
+!~~~> Deallocate stage buffer: only needed for discrete adjoint
+   ELSEIF (AdjointType == Adj_discrete) THEN 
+        DEALLOCATE(Ystage, STAT=i)
+        IF (i/=0) THEN
+          PRINT*,'Deallocation of Ystage failed'
+          STOP
+        END IF
+   END IF   
+   
+!~~~> Succesful exit
+   IERR = 1  !~~~> The integration was successful
+
+  END SUBROUTINE ros_FwdInt
+   
+     
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE ros_DadjInt (                        &
+        NADJ, Lambda,                            &
+        Tstart, Tend, T,                         &
+!~~~> Error indicator
+        IERR )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!   Template for the implementation of a generic RosenbrockSOA method 
+!      defined by ros_S (no of stages)  
+!      and its coefficients ros_{A,C,M,E,Alpha,Gamma}
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  IMPLICIT NONE
+   
+!~~~> Input: the initial condition at Tstart; Output: the solution at T   
+   INTEGER, INTENT(IN)     :: NADJ
+!~~~> First order adjoint   
+   KPP_REAL, INTENT(INOUT) :: Lambda(NVAR,NADJ)
+!!~~~> Input: integration interval   
+   KPP_REAL, INTENT(IN) :: Tstart,Tend      
+!~~~> Output: time at which the solution is returned (T=Tend if success)   
+   KPP_REAL, INTENT(OUT) ::  T      
+!~~~> Output: Error indicator
+   INTEGER, INTENT(OUT) :: IERR
+! ~~~~ Local variables        
+   KPP_REAL :: Ystage(NVAR*ros_S), K(NVAR*ros_S)
+   KPP_REAL :: U(NVAR*ros_S,NADJ), V(NVAR*ros_S,NADJ)
+#ifdef FULL_ALGEBRA
+   KPP_REAL, DIMENSION(NVAR,NVAR)  :: Jac, dJdT, Ghimj
+#else
+   KPP_REAL, DIMENSION(LU_NONZERO) :: Jac, dJdT, Ghimj
+#endif
+   KPP_REAL :: Hes0(NHESS)
+   KPP_REAL :: Tmp(NVAR), Tmp2(NVAR)
+   KPP_REAL :: H, HC, HA, Tau 
+   INTEGER :: Pivot(NVAR), Direction
+   INTEGER :: i, j, m, istage, ioffset, joffset
+!~~~>  Local parameters
+   KPP_REAL, PARAMETER :: ZERO = 0.0d0, ONE  = 1.0d0 
+   KPP_REAL, PARAMETER :: DeltaMin = 1.0d-5
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+   
+   
+   IF (Tend  >=  Tstart) THEN
+     Direction = +1
+   ELSE
+     Direction = -1
+   END IF               
+
+!~~~> Time loop begins below 
+TimeLoop: DO WHILE ( stack_ptr > 0 )
+        
+   !~~~>  Recover checkpoints for stage values and vectors
+   CALL ros_DPop( ros_S, T, H, Ystage, K, Ghimj, Pivot )
+
+!   ISTATUS(Nstp) = ISTATUS(Nstp) + 1
+
+!~~~>    Compute LU decomposition 
+   IF (.NOT.SaveLU) THEN
+     CALL Jac_Template(T,Ystage(1:NVAR),Ghimj)
+     ISTATUS(Njac) = ISTATUS(Njac) + 1
+     Tau = ONE/(Direction*H*ros_Gamma(1))
+#ifdef FULL_ALGEBRA
+     Ghimj(1:NVAR,1:NVAR) = -Ghimj(1:NVAR,1:NVAR)
+     DO i=1,NVAR
+       Ghimj(i,i) = Ghimj(i,i)+Tau
+     END DO
+#else
+     CALL WSCAL(LU_NONZERO,(-ONE),Ghimj,1)
+     DO i=1,NVAR
+       Ghimj(LU_DIAG(i)) = Ghimj(LU_DIAG(i))+Tau
+     END DO
+#endif
+     CALL ros_Decomp( Ghimj, Pivot, j )
+   END IF
+            
+!~~~>   Compute Hessian at the beginning of the interval
+   CALL Hess_Template(T,Ystage(1:NVAR),Hes0)
+   
+!~~~>   Compute the stages
+Stage: DO istage = ros_S, 1, -1
+      
+      !~~~> Current istage first entry 
+       ioffset = NVAR*(istage-1)
+      
+      !~~~> Compute U
+       DO m = 1,NADJ
+         !CALL WCOPY(NVAR,Lambda(1:NVAR,m),1,U(ioffset+1:ioffset+NVAR,m),1)
+	 U(ioffset+1:ioffset+NVAR,m) = Lambda(1:NVAR,m)
+         CALL WSCAL(NVAR,ros_M(istage),U(ioffset+1:ioffset+NVAR,m),1)
+       END DO ! m=1:NADJ
+       DO j = istage+1, ros_S
+         joffset = NVAR*(j-1)
+         HA = ros_A((j-1)*(j-2)/2+istage)
+         HC = ros_C((j-1)*(j-2)/2+istage)/(Direction*H)
+         DO m = 1,NADJ
+           CALL WAXPY(NVAR,HA,V(joffset+1:joffset+NVAR,m),1,U(ioffset+1:ioffset+NVAR,m),1) 
+           CALL WAXPY(NVAR,HC,U(joffset+1:joffset+NVAR,m),1,U(ioffset+1:ioffset+NVAR,m),1) 
+         END DO ! m=1:NADJ
+       END DO
+       DO m = 1,NADJ
+         CALL ros_Solve('T', Ghimj, Pivot, U(ioffset+1:ioffset+NVAR,m))
+       END DO ! m=1:NADJ
+      !~~~> Compute V 
+       Tau = T + ros_Alpha(istage)*Direction*H
+       CALL Jac_Template(Tau,Ystage(ioffset+1:ioffset+NVAR),Jac)
+       ISTATUS(Njac) = ISTATUS(Njac) + 1
+       DO m = 1,NADJ
+#ifdef FULL_ALGEBRA
+         V(ioffset+1:ioffset+NVAR,m) = MATMUL(TRANSPOSE(Jac),U(ioffset+1:ioffset+NVAR,m))
+#else
+         CALL JacTR_SP_Vec(Jac,U(ioffset+1:ioffset+NVAR,m),V(ioffset+1:ioffset+NVAR,m)) 
+#endif         
+       END DO ! m=1:NADJ
+             
+   END DO Stage     
+
+   IF (.NOT.Autonomous) THEN
+!~~~>  Compute the Jacobian derivative with respect to T. 
+!      Last "Jac" computed for stage 1
+      CALL ros_JacTimeDerivative ( T, Roundoff, Ystage(1), Jac, dJdT )
+   END IF
+
+!~~~>  Compute the new solution 
+   
+      !~~~>  Compute Lambda 
+      DO istage=1,ros_S
+         ioffset = NVAR*(istage-1)
+         DO m = 1,NADJ
+           ! Add V_i
+           CALL WAXPY(NVAR,ONE,V(ioffset+1:ioffset+NVAR,m),1,Lambda(1,m),1)
+           ! Add (H0xK_i)^T * U_i
+           CALL HessTR_Vec ( Hes0, U(ioffset+1:ioffset+NVAR,m), &
+	           K(ioffset+1:ioffset+NVAR), Tmp )
+           CALL WAXPY(NVAR,ONE,Tmp,1,Lambda(1:NVAR,m),1)
+         END DO ! m=1:NADJ
+      END DO
+     ! Add H * dJac_dT_0^T * \sum(gamma_i U_i)
+     ! Tmp holds sum gamma_i U_i
+      IF (.NOT.Autonomous) THEN
+         DO m = 1,NADJ
+           Tmp(1:NVAR) = ZERO
+           DO istage = 1, ros_S
+             ioffset = NVAR*(istage-1)
+             CALL WAXPY(NVAR,ros_Gamma(istage),U(ioffset+1:ioffset+NVAR,m),1,Tmp,1)
+           END DO  
+#ifdef FULL_ALGEBRA
+           Tmp2 = MATMUL(TRANSPOSE(dJdT),Tmp)
+#else
+           CALL JacTR_SP_Vec(dJdT,Tmp,Tmp2) 
+#endif           
+           CALL WAXPY(NVAR,H,Tmp2,1,Lambda(1:NVAR,m),1)
+         END DO ! m=1:NADJ
+      END IF ! .NOT.Autonomous
+ 
+
+   END DO TimeLoop 
+   
+!~~~> Save last state
+   
+!~~~> Succesful exit
+   IERR = 1  !~~~> The integration was successful
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  END SUBROUTINE ros_DadjInt
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   
+   
+    
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE ros_CadjInt (                        &
+        NADJ, Y,                                 &
+        Tstart, Tend, T,                         &
+        AbsTol_adj, RelTol_adj,                  &
+!~~~> Error indicator
+        IERR )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!   Template for the implementation of a generic RosenbrockADJ method 
+!      defined by ros_S (no of stages)  
+!      and its coefficients ros_{A,C,M,E,Alpha,Gamma}
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  IMPLICIT NONE
+   
+!~~~> Input: the initial condition at Tstart; Output: the solution at T   
+   INTEGER, INTENT(IN) :: NADJ
+   KPP_REAL, INTENT(INOUT) :: Y(NVAR,NADJ)
+!~~~> Input: integration interval   
+   KPP_REAL, INTENT(IN) :: Tstart,Tend      
+!~~~> Input: adjoint tolerances   
+   KPP_REAL, INTENT(IN) :: AbsTol_adj(NVAR,NADJ), RelTol_adj(NVAR,NADJ)
+!~~~> Output: time at which the solution is returned (T=Tend if success)   
+   KPP_REAL, INTENT(OUT) ::  T      
+!~~~> Output: Error indicator
+   INTEGER, INTENT(OUT) :: IERR
+! ~~~~ Local variables        
+   KPP_REAL :: Y0(NVAR)
+   KPP_REAL :: Ynew(NVAR,NADJ), Fcn0(NVAR,NADJ), Fcn(NVAR,NADJ) 
+   KPP_REAL :: K(NVAR*ros_S,NADJ), dFdT(NVAR,NADJ)
+#ifdef FULL_ALGEBRA
+   KPP_REAL, DIMENSION(NVAR,NVAR)  :: Jac0, Ghimj, Jac, dJdT
+#else
+   KPP_REAL, DIMENSION(LU_NONZERO) :: Jac0, Ghimj, Jac, dJdT
+#endif   
+   KPP_REAL :: H, Hnew, HC, HG, Fac, Tau 
+   KPP_REAL :: Err, Yerr(NVAR,NADJ)
+   INTEGER :: Pivot(NVAR), Direction, ioffset, j, istage, iadj
+   LOGICAL :: RejectLastH, RejectMoreH, Singular
+!~~~>  Local parameters
+   KPP_REAL, PARAMETER :: ZERO = 0.0d0, ONE  = 1.0d0 
+   KPP_REAL, PARAMETER :: DeltaMin = 1.0d-5
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+   
+!~~~>  Initial preparations
+   T = Tstart
+   RSTATUS(Nhexit) = 0.0_dp
+   H = MIN( MAX(ABS(Hmin),ABS(Hstart)) , ABS(Hmax) )
+   IF (ABS(H) <= 10.0_dp*Roundoff) H = DeltaMin
+   
+   IF (Tend  >=  Tstart) THEN
+     Direction = +1
+   ELSE
+     Direction = -1
+   END IF               
+   H = Direction*H
+
+   RejectLastH=.FALSE.
+   RejectMoreH=.FALSE.
+   
+!~~~> Time loop begins below 
+
+TimeLoop: DO WHILE ( (Direction > 0).AND.((T-Tend)+Roundoff <= ZERO) &
+       .OR. (Direction < 0).AND.((Tend-T)+Roundoff <= ZERO) ) 
+      
+   IF ( ISTATUS(Nstp) > Max_no_steps ) THEN  ! Too many steps
+      CALL ros_ErrorMsg(-6,T,H,IERR)
+      RETURN
+   END IF
+   IF ( ((T+0.1d0*H) == T).OR.(H <= Roundoff) ) THEN  ! Step size too small
+      CALL ros_ErrorMsg(-7,T,H,IERR)
+      RETURN
+   END IF
+   
+!~~~>  Limit H if necessary to avoid going beyond Tend   
+   RSTATUS(Nhexit) = H
+   H = MIN(H,ABS(Tend-T))
+
+!~~~>   Interpolate forward solution
+   CALL ros_cadj_Y( T, Y0 )     
+!~~~>   Compute the Jacobian at current time
+   CALL Jac_Template(T, Y0, Jac0)
+   ISTATUS(Njac) = ISTATUS(Njac) + 1
+   
+!~~~>  Compute the function derivative with respect to T
+   IF (.NOT.Autonomous) THEN
+      CALL ros_JacTimeDerivative ( T, Roundoff, Y0, &
+                Jac0, dJdT )
+      DO iadj = 1, NADJ
+#ifdef FULL_ALGEBRA
+        dFdT(1:NVAR,iadj) = MATMUL(TRANSPOSE(dJdT),Y(1:NVAR,iadj))
+#else
+        CALL JacTR_SP_Vec(dJdT,Y(1:NVAR,iadj),dFdT(1:NVAR,iadj))
+#endif
+        CALL WSCAL(NVAR,(-ONE),dFdT(1:NVAR,iadj),1)
+      END DO
+   END IF
+
+!~~~>  Ydot = -J^T*Y
+#ifdef FULL_ALGEBRA
+   Jac0(1:NVAR,1:NVAR) = -Jac0(1:NVAR,1:NVAR)
+#else
+   CALL WSCAL(LU_NONZERO,(-ONE),Jac0,1)
+#endif
+   DO iadj = 1, NADJ
+#ifdef FULL_ALGEBRA
+     Fcn0(1:NVAR,iadj) = MATMUL(TRANSPOSE(Jac0),Y(1:NVAR,iadj))
+#else
+     CALL JacTR_SP_Vec(Jac0,Y(1:NVAR,iadj),Fcn0(1:NVAR,iadj))
+#endif
+   END DO
+    
+!~~~>  Repeat step calculation until current step accepted
+UntilAccepted: DO  
+   
+   CALL ros_PrepareMatrix(H,Direction,ros_Gamma(1), &
+          Jac0,Ghimj,Pivot,Singular)
+   IF (Singular) THEN ! More than 5 consecutive failed decompositions
+       CALL ros_ErrorMsg(-8,T,H,IERR)
+       RETURN
+   END IF
+
+!~~~>   Compute the stages
+Stage: DO istage = 1, ros_S
+      
+      ! Current istage offset. Current istage vector is K(ioffset+1:ioffset+NVAR)
+       ioffset = NVAR*(istage-1)
+      
+      ! For the 1st istage the function has been computed previously
+       IF ( istage == 1 ) THEN
+         DO iadj = 1, NADJ
+           !CALL WCOPY(NVAR,Fcn0(1,iadj),1,Fcn(1,iadj),1)
+           Fcn(1:NVAR,iadj) = Fcn0(1:NVAR,iadj)
+         END DO
+      ! istage>1 and a new function evaluation is needed at the current istage
+       ELSEIF ( ros_NewF(istage) ) THEN
+         CALL WCOPY(NVAR*NADJ,Y,1,Ynew,1)
+         DO j = 1, istage-1
+           DO iadj = 1, NADJ
+             CALL WAXPY(NVAR,ros_A((istage-1)*(istage-2)/2+j), &
+                K(NVAR*(j-1)+1:NVAR*j,iadj),1,Ynew(1,iadj),1) 
+           END DO       
+         END DO
+         Tau = T + ros_Alpha(istage)*Direction*H
+         ! CALL Fun_Template(Tau,Ynew,Fcn)
+         ! ISTATUS(Nfun) = ISTATUS(Nfun) + 1
+         CALL ros_cadj_Y( Tau, Y0 )     
+         CALL Jac_Template(Tau, Y0, Jac)
+         ISTATUS(Njac) = ISTATUS(Njac) + 1
+#ifdef FULL_ALGEBRA
+         Jac(1:NVAR,1:NVAR) = -Jac(1:NVAR,1:NVAR)
+#else
+         CALL WSCAL(LU_NONZERO,(-ONE),Jac,1)
+#endif
+         DO iadj = 1, NADJ
+#ifdef FULL_ALGEBRA
+             Fcn(1:NVAR,iadj) = MATMUL(TRANSPOSE(Jac),Ynew(1:NVAR,iadj))
+#else
+             CALL JacTR_SP_Vec(Jac,Ynew(1:NVAR,iadj),Fcn(1:NVAR,iadj))
+#endif
+             !CALL WSCAL(NVAR,(-ONE),Fcn(1,iadj),1)
+         END DO
+       END IF ! if istage == 1 elseif ros_NewF(istage)
+
+       DO iadj = 1, NADJ
+          !CALL WCOPY(NVAR,Fcn(1,iadj),1,K(ioffset+1,iadj),1)
+	  K(ioffset+1:ioffset+NVAR,iadj) = Fcn(1:NVAR,iadj)
+       END DO
+       DO j = 1, istage-1
+         HC = ros_C((istage-1)*(istage-2)/2+j)/(Direction*H)
+         DO iadj = 1, NADJ
+           CALL WAXPY(NVAR,HC,K(NVAR*(j-1)+1:NVAR*j,iadj),1, &
+                  K(ioffset+1:ioffset+NVAR,iadj),1)
+         END DO
+       END DO
+       IF ((.NOT. Autonomous).AND.(ros_Gamma(istage).NE.ZERO)) THEN
+         HG = Direction*H*ros_Gamma(istage)
+         DO iadj = 1, NADJ
+           CALL WAXPY(NVAR,HG,dFdT(1:NVAR,iadj),1,K(ioffset+1:ioffset+NVAR,iadj),1)
+         END DO
+       END IF
+       DO iadj = 1, NADJ
+         CALL ros_Solve('T', Ghimj, Pivot, K(ioffset+1:ioffset+NVAR,iadj))
+       END DO
+      
+   END DO Stage     
+            
+
+!~~~>  Compute the new solution 
+   DO iadj = 1, NADJ
+      !CALL WCOPY(NVAR,Y(1:NVAR,iadj),1,Ynew(1,iadj),1)
+      Ynew(1:NVAR,iadj) = Y(1:NVAR,iadj)
+      DO j=1,ros_S
+         CALL WAXPY(NVAR,ros_M(j),K(NVAR*(j-1)+1:NVAR*j,iadj),1,Ynew(1:NVAR,iadj),1)
+      END DO
+   END DO
+
+!~~~>  Compute the error estimation 
+   CALL WSCAL(NVAR*NADJ,ZERO,Yerr,1)
+   DO j=1,ros_S     
+       DO iadj = 1, NADJ
+        CALL WAXPY(NVAR,ros_E(j),K(NVAR*(j-1)+1:NVAR*j,iadj),1,Yerr(1:NVAR,iadj),1)
+       END DO
+   END DO
+!~~~> Max error among all adjoint components    
+   iadj = 1
+   Err = ros_ErrorNorm ( Y(1:NVAR,iadj), Ynew(1,iadj), Yerr(1,iadj), &
+              AbsTol_adj(1,iadj), RelTol_adj(1,iadj), VectorTol )
+
+!~~~> New step size is bounded by FacMin <= Hnew/H <= FacMax
+   Fac  = MIN(FacMax,MAX(FacMin,FacSafe/Err**(ONE/ros_ELO)))
+   Hnew = H*Fac  
+
+!~~~>  Check the error magnitude and adjust step size
+!   ISTATUS(Nstp) = ISTATUS(Nstp) + 1
+   IF ( (Err <= ONE).OR.(H <= Hmin) ) THEN  !~~~> Accept step
+      ISTATUS(Nacc) = ISTATUS(Nacc) + 1
+      CALL WCOPY(NVAR*NADJ,Ynew,1,Y,1)
+      T = T + Direction*H
+      Hnew = MAX(Hmin,MIN(Hnew,Hmax))
+      IF (RejectLastH) THEN  ! No step size increase after a rejected step
+         Hnew = MIN(Hnew,H) 
+      END IF   
+      RSTATUS(Nhexit) = H
+      RSTATUS(Nhnew)  = Hnew
+      RSTATUS(Ntexit) = T
+      RejectLastH = .FALSE.  
+      RejectMoreH = .FALSE.
+      H = Hnew      
+      EXIT UntilAccepted ! EXIT THE LOOP: WHILE STEP NOT ACCEPTED
+   ELSE           !~~~> Reject step
+      IF (RejectMoreH) THEN
+         Hnew = H*FacRej
+      END IF   
+      RejectMoreH = RejectLastH
+      RejectLastH = .TRUE.
+      H = Hnew
+      IF (ISTATUS(Nacc) >= 1) THEN
+         ISTATUS(Nrej) = ISTATUS(Nrej) + 1
+      END IF    
+   END IF ! Err <= 1
+
+   END DO UntilAccepted 
+
+   END DO TimeLoop 
+      
+!~~~> Succesful exit
+   IERR = 1  !~~~> The integration was successful
+
+  END SUBROUTINE ros_CadjInt
+  
+     
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE ros_SimpleCadjInt (                  &
+        NADJ, Y,                                 &
+        Tstart, Tend, T,                         &
+!~~~> Error indicator
+        IERR )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!   Template for the implementation of a generic RosenbrockADJ method 
+!      defined by ros_S (no of stages)  
+!      and its coefficients ros_{A,C,M,E,Alpha,Gamma}
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  IMPLICIT NONE
+   
+!~~~> Input: the initial condition at Tstart; Output: the solution at T   
+   INTEGER, INTENT(IN) :: NADJ
+   KPP_REAL, INTENT(INOUT) :: Y(NVAR,NADJ)
+!~~~> Input: integration interval   
+   KPP_REAL, INTENT(IN) :: Tstart,Tend      
+!~~~> Output: time at which the solution is returned (T=Tend if success)   
+   KPP_REAL, INTENT(OUT) ::  T      
+!~~~> Output: Error indicator
+   INTEGER, INTENT(OUT) :: IERR
+! ~~~~ Local variables        
+   KPP_REAL :: Y0(NVAR)
+   KPP_REAL :: Ynew(NVAR,NADJ), Fcn0(NVAR,NADJ), Fcn(NVAR,NADJ) 
+   KPP_REAL :: K(NVAR*ros_S,NADJ), dFdT(NVAR,NADJ)
+#ifdef FULL_ALGEBRA
+   KPP_REAL,DIMENSION(NVAR,NVAR)  :: Jac0, Ghimj, Jac, dJdT
+#else   
+   KPP_REAL,DIMENSION(LU_NONZERO) :: Jac0, Ghimj, Jac, dJdT
+#endif   
+   KPP_REAL :: H, HC, HG, Tau 
+   KPP_REAL :: ghinv
+   INTEGER :: Pivot(NVAR), Direction, ioffset, i, j, istage, iadj
+   INTEGER :: istack
+!~~~>  Local parameters
+   KPP_REAL, PARAMETER :: ZERO = 0.0d0, ONE  = 1.0d0 
+   KPP_REAL, PARAMETER :: DeltaMin = 1.0d-5
+!~~~>  Locally called functions
+!    KPP_REAL WLAMCH
+!    EXTERNAL WLAMCH
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+   
+!~~~>  INITIAL PREPARATIONS
+   
+   IF (Tend  >=  Tstart) THEN
+     Direction = -1
+   ELSE
+     Direction = +1
+   END IF               
+   
+!~~~> Time loop begins below 
+TimeLoop: DO istack = stack_ptr,2,-1
+        
+   T = chk_T(istack)
+   H = chk_H(istack-1)
+   !CALL WCOPY(NVAR,chk_Y(1,istack),1,Y0,1)
+   Y0(1:NVAR) = chk_Y(1:NVAR,istack)
+   
+!~~~>   Compute the Jacobian at current time
+   CALL Jac_Template(T, Y0, Jac0)
+   ISTATUS(Njac) = ISTATUS(Njac) + 1
+   
+!~~~>  Compute the function derivative with respect to T
+   IF (.NOT.Autonomous) THEN
+      CALL ros_JacTimeDerivative ( T, Roundoff, Y0, &
+                Jac0, dJdT )
+      DO iadj = 1, NADJ
+#ifdef FULL_ALGEBRA
+        dFdT(1:NVAR,iadj) = MATMUL(TRANSPOSE(dJdT),Y(1:NVAR,iadj))
+#else
+        CALL JacTR_SP_Vec(dJdT,Y(1:NVAR,iadj),dFdT(1:NVAR,iadj))
+#endif
+        CALL WSCAL(NVAR,(-ONE),dFdT(1:NVAR,iadj),1)
+      END DO
+   END IF
+
+!~~~>  Ydot = -J^T*Y
+#ifdef FULL_ALGEBRA
+   Jac0(1:NVAR,1:NVAR) = -Jac0(1:NVAR,1:NVAR)
+#else
+   CALL WSCAL(LU_NONZERO,(-ONE),Jac0,1)
+#endif
+   DO iadj = 1, NADJ
+#ifdef FULL_ALGEBRA
+     Fcn0(1:NVAR,iadj) = MATMUL(TRANSPOSE(Jac0),Y(1:NVAR,iadj))
+#else
+     CALL JacTR_SP_Vec(Jac0,Y(1:NVAR,iadj),Fcn0(1:NVAR,iadj))
+#endif
+   END DO
+   
+!~~~>    Construct Ghimj = 1/(H*ham) - Jac0
+     ghinv = ONE/(Direction*H*ros_Gamma(1))
+#ifdef FULL_ALGEBRA
+     Ghimj(1:NVAR,1:NVAR) = -Jac0(1:NVAR,1:NVAR)
+     DO i=1,NVAR
+       Ghimj(i,i) = Ghimj(i,i)+ghinv
+     END DO
+#else
+     CALL WCOPY(LU_NONZERO,Jac0,1,Ghimj,1)
+     CALL WSCAL(LU_NONZERO,(-ONE),Ghimj,1)
+     DO i=1,NVAR
+       Ghimj(LU_DIAG(i)) = Ghimj(LU_DIAG(i))+ghinv
+     END DO
+#endif
+!~~~>    Compute LU decomposition 
+     CALL ros_Decomp( Ghimj, Pivot, j )
+     IF (j /= 0) THEN
+       CALL ros_ErrorMsg(-8,T,H,IERR)
+       PRINT*,' The matrix is singular !'
+       STOP
+   END IF
+
+!~~~>   Compute the stages
+Stage: DO istage = 1, ros_S
+      
+      ! Current istage offset. Current istage vector is K(ioffset+1:ioffset+NVAR)
+       ioffset = NVAR*(istage-1)
+      
+      ! For the 1st istage the function has been computed previously
+       IF ( istage == 1 ) THEN
+         DO iadj = 1, NADJ
+           CALL WCOPY(NVAR,Fcn0(1,iadj),1,Fcn(1,iadj),1)
+         END DO
+      ! istage>1 and a new function evaluation is needed at the current istage
+       ELSEIF ( ros_NewF(istage) ) THEN
+         CALL WCOPY(NVAR*NADJ,Y,1,Ynew,1)
+         DO j = 1, istage-1
+           DO iadj = 1, NADJ
+             CALL WAXPY(NVAR,ros_A((istage-1)*(istage-2)/2+j), &
+                K(NVAR*(j-1)+1:NVAR*j,iadj),1,Ynew(1:NVAR,iadj),1) 
+           END DO       
+         END DO
+         Tau = T + ros_Alpha(istage)*Direction*H
+         CALL ros_Hermite3( chk_T(istack-1), chk_T(istack), Tau, &
+             chk_Y(1:NVAR,istack-1), chk_Y(1:NVAR,istack),       &
+             chk_dY(1:NVAR,istack-1), chk_dY(1:NVAR,istack), Y0 )
+         CALL Jac_Template(Tau, Y0, Jac)
+         ISTATUS(Njac) = ISTATUS(Njac) + 1
+#ifdef FULL_ALGEBRA
+         Jac(1:NVAR,1:NVAR) = -Jac(1:NVAR,1:NVAR)
+#else
+         CALL WSCAL(LU_NONZERO,(-ONE),Jac,1)
+#endif
+         DO iadj = 1, NADJ
+#ifdef FULL_ALGEBRA
+             Fcn(1:NVAR,iadj) = MATMUL(TRANSPOSE(Jac),Ynew(1:NVAR,iadj))
+#else
+             CALL JacTR_SP_Vec(Jac,Ynew(1:NVAR,iadj),Fcn(1:NVAR,iadj))
+#endif
+         END DO
+       END IF ! if istage == 1 elseif ros_NewF(istage)
+
+       DO iadj = 1, NADJ
+          CALL WCOPY(NVAR,Fcn(1,iadj),1,K(ioffset+1,iadj),1)
+       END DO
+       DO j = 1, istage-1
+         HC = ros_C((istage-1)*(istage-2)/2+j)/(Direction*H)
+         DO iadj = 1, NADJ
+           CALL WAXPY(NVAR,HC,K(NVAR*(j-1)+1:NVAR*j,iadj),1, &
+                  K(ioffset+1:ioffset+NVAR,iadj),1)
+         END DO
+       END DO
+       IF ((.NOT. Autonomous).AND.(ros_Gamma(istage).NE.ZERO)) THEN
+         HG = Direction*H*ros_Gamma(istage)
+         DO iadj = 1, NADJ
+           CALL WAXPY(NVAR,HG,dFdT(1:NVAR,iadj),1,K(ioffset+1:ioffset+NVAR,iadj),1)
+         END DO
+       END IF
+       DO iadj = 1, NADJ
+         CALL ros_Solve('T', Ghimj, Pivot, K(ioffset+1:ioffset+NVAR,iadj))
+       END DO
+      
+   END DO Stage     
+            
+
+!~~~>  Compute the new solution 
+   DO iadj = 1, NADJ
+      DO j=1,ros_S
+         CALL WAXPY(NVAR,ros_M(j),K(NVAR*(j-1)+1:NVAR*j,iadj),1,Y(1:NVAR,iadj),1)
+      END DO
+   END DO
+
+   END DO TimeLoop 
+      
+!~~~> Succesful exit
+   IERR = 1  !~~~> The integration was successful
+
+  END SUBROUTINE ros_SimpleCadjInt
+  
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  KPP_REAL FUNCTION ros_ErrorNorm ( Y, Ynew, Yerr, & 
+               AbsTol, RelTol, VectorTol )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> Computes the "scaled norm" of the error vector Yerr
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   IMPLICIT NONE         
+
+! Input arguments   
+   KPP_REAL, INTENT(IN) :: Y(NVAR), Ynew(NVAR), &
+          Yerr(NVAR), AbsTol(NVAR), RelTol(NVAR)
+   LOGICAL, INTENT(IN) ::  VectorTol
+! Local variables     
+   KPP_REAL :: Err, Scale, Ymax   
+   INTEGER  :: i
+   
+   Err = ZERO
+   DO i=1,NVAR
+     Ymax = MAX(ABS(Y(i)),ABS(Ynew(i)))
+     IF (VectorTol) THEN
+       Scale = AbsTol(i)+RelTol(i)*Ymax
+     ELSE
+       Scale = AbsTol(1)+RelTol(1)*Ymax
+     END IF
+     Err = Err+(Yerr(i)/Scale)**2
+   END DO
+   Err  = SQRT(Err/NVAR)
+
+   ros_ErrorNorm = MAX(Err,1.0d-10)
+   
+  END FUNCTION ros_ErrorNorm
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE ros_FunTimeDerivative ( T, Roundoff, Y, Fcn0, dFdT )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> The time partial derivative of the function by finite differences
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   IMPLICIT NONE         
+
+!~~~> Input arguments   
+   KPP_REAL, INTENT(IN) :: T, Roundoff, Y(NVAR), Fcn0(NVAR) 
+!~~~> Output arguments   
+   KPP_REAL, INTENT(OUT) :: dFdT(NVAR)   
+!~~~> Local variables     
+   KPP_REAL :: Delta  
+   KPP_REAL, PARAMETER :: ONE = 1.0d0, DeltaMin = 1.0d-6
+   
+   Delta = SQRT(Roundoff)*MAX(DeltaMin,ABS(T))
+   CALL Fun_Template(T+Delta,Y,dFdT)
+   ISTATUS(Nfun) = ISTATUS(Nfun) + 1
+   CALL WAXPY(NVAR,(-ONE),Fcn0,1,dFdT,1)
+   CALL WSCAL(NVAR,(ONE/Delta),dFdT,1)
+
+  END SUBROUTINE ros_FunTimeDerivative
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE ros_JacTimeDerivative ( T, Roundoff, Y, &
+                Jac0, dJdT )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> The time partial derivative of the Jacobian by finite differences
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   IMPLICIT NONE         
+
+!~~~> Arguments   
+   KPP_REAL, INTENT(IN) :: T, Roundoff, Y(NVAR)
+#ifdef FULL_ALGEBRA    
+   KPP_REAL, INTENT(IN)  :: Jac0(NVAR,NVAR) 
+   KPP_REAL, INTENT(OUT) :: dJdT(NVAR,NVAR)   
+#else
+   KPP_REAL, INTENT(IN)  :: Jac0(LU_NONZERO) 
+   KPP_REAL, INTENT(OUT) :: dJdT(LU_NONZERO)   
+#endif   
+!~~~> Local variables     
+   KPP_REAL :: Delta  
+   
+   Delta = SQRT(Roundoff)*MAX(DeltaMin,ABS(T))
+   CALL Jac_Template(T+Delta,Y,dJdT)
+   ISTATUS(Njac) = ISTATUS(Njac) + 1
+#ifdef FULL_ALGEBRA    
+   CALL WAXPY(NVAR*NVAR,(-ONE),Jac0,1,dJdT,1)
+   CALL WSCAL(NVAR*NVAR,(ONE/Delta),dJdT,1)
+#else
+   CALL WAXPY(LU_NONZERO,(-ONE),Jac0,1,dJdT,1)
+   CALL WSCAL(LU_NONZERO,(ONE/Delta),dJdT,1)
+#endif   
+
+  END SUBROUTINE ros_JacTimeDerivative
+
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE ros_PrepareMatrix ( H, Direction, gam, &
+             Jac0, Ghimj, Pivot, Singular )
+! --- --- --- --- --- --- --- --- --- --- --- --- ---
+!  Prepares the LHS matrix for stage calculations
+!  1.  Construct Ghimj = 1/(H*gam) - Jac0
+!      "(Gamma H) Inverse Minus Jacobian"
+!  2.  Repeat LU decomposition of Ghimj until successful.
+!       -half the step size if LU decomposition fails and retry
+!       -exit after 5 consecutive fails
+! --- --- --- --- --- --- --- --- --- --- --- --- ---
+   IMPLICIT NONE
+
+!~~~> Input arguments
+#ifdef FULL_ALGEBRA    
+   KPP_REAL, INTENT(IN) ::  Jac0(NVAR,NVAR)
+#else
+   KPP_REAL, INTENT(IN) ::  Jac0(LU_NONZERO)
+#endif   
+   KPP_REAL, INTENT(IN) ::  gam
+   INTEGER, INTENT(IN) ::  Direction
+!~~~> Output arguments
+#ifdef FULL_ALGEBRA    
+   KPP_REAL, INTENT(OUT) :: Ghimj(NVAR,NVAR)
+#else
+   KPP_REAL, INTENT(OUT) :: Ghimj(LU_NONZERO)
+#endif   
+   LOGICAL, INTENT(OUT) ::  Singular
+   INTEGER, INTENT(OUT) ::  Pivot(NVAR)
+!~~~> Inout arguments
+   KPP_REAL, INTENT(INOUT) :: H   ! step size is decreased when LU fails
+!~~~> Local variables
+   INTEGER  :: i, ising, Nconsecutive
+   KPP_REAL :: ghinv
+   KPP_REAL, PARAMETER :: ONE  = 1.0_dp, HALF = 0.5_dp
+
+   Nconsecutive = 0
+   Singular = .TRUE.
+
+   DO WHILE (Singular)
+
+!~~~>    Construct Ghimj = 1/(H*gam) - Jac0
+#ifdef FULL_ALGEBRA    
+     CALL WCOPY(NVAR*NVAR,Jac0,1,Ghimj,1)
+     CALL WSCAL(NVAR*NVAR,(-ONE),Ghimj,1)
+     ghinv = ONE/(Direction*H*gam)
+     DO i=1,NVAR
+       Ghimj(i,i) = Ghimj(i,i)+ghinv
+     END DO
+#else
+     CALL WCOPY(LU_NONZERO,Jac0,1,Ghimj,1)
+     CALL WSCAL(LU_NONZERO,(-ONE),Ghimj,1)
+     ghinv = ONE/(Direction*H*gam)
+     DO i=1,NVAR
+       Ghimj(LU_DIAG(i)) = Ghimj(LU_DIAG(i))+ghinv
+     END DO
+#endif   
+!~~~>    Compute LU decomposition
+     CALL ros_Decomp( Ghimj, Pivot, ising )
+     IF (ising == 0) THEN
+!~~~>    If successful done
+        Singular = .FALSE.
+     ELSE ! ising .ne. 0
+!~~~>    If unsuccessful half the step size; if 5 consecutive fails then return
+        ISTATUS(Nsng) = ISTATUS(Nsng) + 1
+        Nconsecutive = Nconsecutive+1
+        Singular = .TRUE.
+        PRINT*,'Warning: LU Decomposition returned ising = ',ising
+        IF (Nconsecutive <= 5) THEN ! Less than 5 consecutive failed decompositions
+           H = H*HALF
+        ELSE  ! More than 5 consecutive failed decompositions
+           RETURN
+        END IF  ! Nconsecutive
+      END IF    ! ising
+
+   END DO ! WHILE Singular
+
+  END SUBROUTINE ros_PrepareMatrix
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE ros_Decomp( A, Pivot, ising )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!  Template for the LU decomposition
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   IMPLICIT NONE
+!~~~> Inout variables
+#ifdef FULL_ALGEBRA    
+   KPP_REAL, INTENT(INOUT) :: A(NVAR,NVAR)
+#else   
+   KPP_REAL, INTENT(INOUT) :: A(LU_NONZERO)
+#endif
+!~~~> Output variables
+   INTEGER, INTENT(OUT) :: Pivot(NVAR), ising
+
+#ifdef FULL_ALGEBRA    
+   CALL  DGETRF( NVAR, NVAR, A, NVAR, Pivot, ising )
+#else   
+   CALL KppDecomp ( A, ising )
+   Pivot(1) = 1
+#endif
+   ISTATUS(Ndec) = ISTATUS(Ndec) + 1
+
+  END SUBROUTINE ros_Decomp
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE ros_Solve( How, A, Pivot, b )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!  Template for the forward/backward substitution (using pre-computed LU decomposition)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   IMPLICIT NONE
+!~~~> Input variables
+   CHARACTER, INTENT(IN) :: How
+#ifdef FULL_ALGEBRA    
+   KPP_REAL, INTENT(IN) :: A(NVAR,NVAR)
+#else   
+   KPP_REAL, INTENT(IN) :: A(LU_NONZERO)
+#endif
+   INTEGER, INTENT(IN) :: Pivot(NVAR)
+!~~~> InOut variables
+   KPP_REAL, INTENT(INOUT) :: b(NVAR)
+
+   SELECT CASE (How)
+   CASE ('N')
+#ifdef FULL_ALGEBRA    
+     CALL DGETRS( 'N', NVAR , 1, A, NVAR, Pivot, b, NVAR, 0 )
+#else   
+     CALL KppSolve( A, b )
+#endif
+   CASE ('T')
+#ifdef FULL_ALGEBRA    
+     CALL DGETRS( 'T', NVAR , 1, A, NVAR, Pivot, b, NVAR, 0 )
+#else   
+     CALL KppSolveTR( A, b, b )
+#endif
+   CASE DEFAULT
+     PRINT*,'Error: unknown argument in ros_Solve: How=',How
+     STOP
+   END SELECT
+   ISTATUS(Nsol) = ISTATUS(Nsol) + 1
+
+  END SUBROUTINE ros_Solve
+
+  
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+  SUBROUTINE ros_cadj_Y( T, Y )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
+!  Finds the solution Y at T by interpolating the stored forward trajectory
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+   IMPLICIT NONE
+!~~~> Input variables 
+   KPP_REAL, INTENT(IN) :: T
+!~~~> Output variables     
+   KPP_REAL, INTENT(OUT) :: Y(NVAR)
+!~~~> Local variables     
+   INTEGER     :: i
+   KPP_REAL, PARAMETER  :: ONE = 1.0d0
+
+!   chk_H, chk_T, chk_Y, chk_dY, chk_d2Y
+
+   IF( (T < chk_T(1)).OR.(T> chk_T(stack_ptr)) ) THEN
+      PRINT*,'Cannot locate solution at T = ',T
+      PRINT*,'Stored trajectory is between Tstart = ',chk_T(1)
+      PRINT*,'    and Tend = ',chk_T(stack_ptr)
+      STOP
+   END IF
+   DO i = 1, stack_ptr-1
+     IF( (T>= chk_T(i)).AND.(T<= chk_T(i+1)) ) EXIT
+   END DO 
+
+
+!   IF (.FALSE.) THEN
+!
+!   CALL ros_Hermite5( chk_T(i), chk_T(i+1), T, &
+!                chk_Y(1,i),   chk_Y(1,i+1),     &
+!                chk_dY(1,i),  chk_dY(1,i+1),    &
+!                chk_d2Y(1,i), chk_d2Y(1,i+1), Y )
+!   
+!   ELSE
+                
+   CALL ros_Hermite3( chk_T(i), chk_T(i+1), T, &
+                chk_Y(1:NVAR,i),   chk_Y(1:NVAR,i+1),     &
+                chk_dY(1:NVAR,i),  chk_dY(1:NVAR,i+1),    &
+                Y )
+                        
+!   
+!   END IF       
+
+  END SUBROUTINE ros_cadj_Y
+  
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+  SUBROUTINE ros_Hermite3( a, b, T, Ya, Yb, Ja, Jb, Y )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
+!  Template for Hermite interpolation of order 5 on the interval [a,b]
+! P = c(1) + c(2)*(x-a) + ... + c(4)*(x-a)^3
+! P[a,b] = [Ya,Yb], P'[a,b] = [Ja,Jb]
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+   IMPLICIT NONE
+!~~~> Input variables 
+   KPP_REAL, INTENT(IN) :: a, b, T, Ya(NVAR), Yb(NVAR)
+   KPP_REAL, INTENT(IN) :: Ja(NVAR), Jb(NVAR)
+!~~~> Output variables     
+   KPP_REAL, INTENT(OUT) :: Y(NVAR)
+!~~~> Local variables     
+   KPP_REAL :: Tau, amb(3), C(NVAR,4)
+   KPP_REAL, PARAMETER :: ZERO = 0.0d0
+   INTEGER :: i, j
+   
+   amb(1) = 1.0d0/(a-b)
+   DO i=2,3
+     amb(i) = amb(i-1)*amb(1)
+   END DO
+   
+   
+! c(1) = ya;
+   CALL WCOPY(NVAR,Ya,1,C(1:NVAR,1),1)
+! c(2) = ja;
+   CALL WCOPY(NVAR,Ja,1,C(1:NVAR,2),1)
+! c(3) = 2/(a-b)*ja + 1/(a-b)*jb - 3/(a - b)^2*ya + 3/(a - b)^2*yb  ;
+   CALL WCOPY(NVAR,Ya,1,C(1:NVAR,3),1)
+   CALL WSCAL(NVAR,-3.0*amb(2),C(1:NVAR,3),1)
+   CALL WAXPY(NVAR,3.0*amb(2),Yb,1,C(1:NVAR,3),1)
+   CALL WAXPY(NVAR,2.0*amb(1),Ja,1,C(1:NVAR,3),1)
+   CALL WAXPY(NVAR,amb(1),Jb,1,C(1:NVAR,3),1)
+! c(4) =  1/(a-b)^2*ja + 1/(a-b)^2*jb - 2/(a-b)^3*ya + 2/(a-b)^3*yb ;
+   CALL WCOPY(NVAR,Ya,1,C(1:NVAR,4),1)
+   CALL WSCAL(NVAR,-2.0*amb(3),C(1:NVAR,4),1)
+   CALL WAXPY(NVAR,2.0*amb(3),Yb,1,C(1:NVAR,4),1)
+   CALL WAXPY(NVAR,amb(2),Ja,1,C(1:NVAR,4),1)
+   CALL WAXPY(NVAR,amb(2),Jb,1,C(1:NVAR,4),1)
+   
+   Tau = T - a
+   CALL WCOPY(NVAR,C(1:NVAR,4),1,Y,1)
+   CALL WSCAL(NVAR,Tau**3,Y,1)
+   DO j = 3,1,-1
+     CALL WAXPY(NVAR,TAU**(j-1),C(1:NVAR,j),1,Y,1)
+   END DO       
+
+  END SUBROUTINE ros_Hermite3
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+  SUBROUTINE ros_Hermite5( a, b, T, Ya, Yb, Ja, Jb, Ha, Hb, Y )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
+!  Template for Hermite interpolation of order 5 on the interval [a,b]
+! P = c(1) + c(2)*(x-a) + ... + c(6)*(x-a)^5
+! P[a,b] = [Ya,Yb], P'[a,b] = [Ja,Jb], P"[a,b] = [Ha,Hb]
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+   IMPLICIT NONE
+!~~~> Input variables 
+   KPP_REAL, INTENT(IN) :: a, b, T, Ya(NVAR), Yb(NVAR)
+   KPP_REAL, INTENT(IN) :: Ja(NVAR), Jb(NVAR), Ha(NVAR), Hb(NVAR)
+!~~~> Output variables     
+   KPP_REAL, INTENT(OUT) :: Y(NVAR)
+!~~~> Local variables     
+   KPP_REAL :: Tau, amb(5), C(NVAR,6)
+   KPP_REAL, PARAMETER :: ZERO = 0.0d0, HALF = 0.5d0
+   INTEGER :: i, j
+   
+   amb(1) = 1.0d0/(a-b)
+   DO i=2,5
+     amb(i) = amb(i-1)*amb(1)
+   END DO
+     
+! c(1) = ya;
+   CALL WCOPY(NVAR,Ya,1,C(1:NVAR,1),1)
+! c(2) = ja;
+   CALL WCOPY(NVAR,Ja,1,C(1:NVAR,2),1)
+! c(3) = ha/2;
+   CALL WCOPY(NVAR,Ha,1,C(1:NVAR,3),1)
+   CALL WSCAL(NVAR,HALF,C(1:NVAR,3),1)
+   
+! c(4) = 10*amb(3)*ya - 10*amb(3)*yb - 6*amb(2)*ja - 4*amb(2)*jb  + 1.5*amb(1)*ha - 0.5*amb(1)*hb ;
+   CALL WCOPY(NVAR,Ya,1,C(1:NVAR,4),1)
+   CALL WSCAL(NVAR,10.0*amb(3),C(1:NVAR,4),1)
+   CALL WAXPY(NVAR,-10.0*amb(3),Yb,1,C(1:NVAR,4),1)
+   CALL WAXPY(NVAR,-6.0*amb(2),Ja,1,C(1:NVAR,4),1)
+   CALL WAXPY(NVAR,-4.0*amb(2),Jb,1,C(1:NVAR,4),1)
+   CALL WAXPY(NVAR, 1.5*amb(1),Ha,1,C(1:NVAR,4),1)
+   CALL WAXPY(NVAR,-0.5*amb(1),Hb,1,C(1:NVAR,4),1)
+
+! c(5) =   15*amb(4)*ya - 15*amb(4)*yb - 8.*amb(3)*ja - 7*amb(3)*jb + 1.5*amb(2)*ha - 1*amb(2)*hb ;
+   CALL WCOPY(NVAR,Ya,1,C(1:NVAR,5),1)
+   CALL WSCAL(NVAR, 15.0*amb(4),C(1:NVAR,5),1)
+   CALL WAXPY(NVAR,-15.0*amb(4),Yb,1,C(1:NVAR,5),1)
+   CALL WAXPY(NVAR,-8.0*amb(3),Ja,1,C(1:NVAR,5),1)
+   CALL WAXPY(NVAR,-7.0*amb(3),Jb,1,C(1:NVAR,5),1)
+   CALL WAXPY(NVAR,1.5*amb(2),Ha,1,C(1:NVAR,5),1)
+   CALL WAXPY(NVAR,-amb(2),Hb,1,C(1:NVAR,5),1)
+   
+! c(6) =   6*amb(5)*ya - 6*amb(5)*yb - 3.*amb(4)*ja - 3.*amb(4)*jb + 0.5*amb(3)*ha -0.5*amb(3)*hb ;
+   CALL WCOPY(NVAR,Ya,1,C(1:NVAR,6),1)
+   CALL WSCAL(NVAR, 6.0*amb(5),C(1:NVAR,6),1)
+   CALL WAXPY(NVAR,-6.0*amb(5),Yb,1,C(1:NVAR,6),1)
+   CALL WAXPY(NVAR,-3.0*amb(4),Ja,1,C(1:NVAR,6),1)
+   CALL WAXPY(NVAR,-3.0*amb(4),Jb,1,C(1:NVAR,6),1)
+   CALL WAXPY(NVAR, 0.5*amb(3),Ha,1,C(1:NVAR,6),1)
+   CALL WAXPY(NVAR,-0.5*amb(3),Hb,1,C(1:NVAR,6),1)
+   
+   Tau = T - a
+   CALL WCOPY(NVAR,C(1:NVAR,6),1,Y,1)
+   DO j = 5,1,-1
+     CALL WSCAL(NVAR,Tau,Y,1)
+     CALL WAXPY(NVAR,ONE,C(1:NVAR,j),1,Y,1)
+   END DO       
+
+  END SUBROUTINE ros_Hermite5
+ 
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+  SUBROUTINE Ros2
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+! --- AN L-STABLE METHOD, 2 stages, order 2
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+
+    IMPLICIT NONE
+    DOUBLE PRECISION g
+   
+    g = 1.0d0 + 1.0d0/SQRT(2.0d0)
+   
+    rosMethod = RS2
+!~~~> Name of the method
+    ros_Name = 'ROS-2'   
+!~~~> Number of stages
+    ros_S = 2
+   
+!~~~> The coefficient matrices A and C are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+!   The general mapping formula is:
+!       A(i,j) = ros_A( (i-1)*(i-2)/2 + j )    
+!       C(i,j) = ros_C( (i-1)*(i-2)/2 + j )  
+   
+    ros_A(1) = (1.d0)/g
+    ros_C(1) = (-2.d0)/g
+!~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+    ros_NewF(1) = .TRUE.
+    ros_NewF(2) = .TRUE.
+!~~~> M_i = Coefficients for new step solution
+    ros_M(1)= (3.d0)/(2.d0*g)
+    ros_M(2)= (1.d0)/(2.d0*g)
+! E_i = Coefficients for error estimator    
+    ros_E(1) = 1.d0/(2.d0*g)
+    ros_E(2) = 1.d0/(2.d0*g)
+!~~~> ros_ELO = estimator of local order - the minimum between the
+!    main and the embedded scheme orders plus one
+    ros_ELO = 2.0d0    
+!~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+    ros_Alpha(1) = 0.0d0
+    ros_Alpha(2) = 1.0d0 
+!~~~> Gamma_i = \sum_j  gamma_{i,j}    
+    ros_Gamma(1) = g
+    ros_Gamma(2) =-g
+   
+ END SUBROUTINE Ros2
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+  SUBROUTINE Ros3
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+! --- AN L-STABLE METHOD, 3 stages, order 3, 2 function evaluations
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+  
+   IMPLICIT NONE
+    
+    rosMethod = RS3
+!~~~> Name of the method
+   ros_Name = 'ROS-3'   
+!~~~> Number of stages
+   ros_S = 3
+   
+!~~~> The coefficient matrices A and C are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+!   The general mapping formula is:
+!       A(i,j) = ros_A( (i-1)*(i-2)/2 + j )    
+!       C(i,j) = ros_C( (i-1)*(i-2)/2 + j )  
+     
+   ros_A(1)= 1.d0
+   ros_A(2)= 1.d0
+   ros_A(3)= 0.d0
+
+   ros_C(1) = -0.10156171083877702091975600115545d+01
+   ros_C(2) =  0.40759956452537699824805835358067d+01
+   ros_C(3) =  0.92076794298330791242156818474003d+01
+!~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+   ros_NewF(1) = .TRUE.
+   ros_NewF(2) = .TRUE.
+   ros_NewF(3) = .FALSE.
+!~~~> M_i = Coefficients for new step solution
+   ros_M(1) =  0.1d+01
+   ros_M(2) =  0.61697947043828245592553615689730d+01
+   ros_M(3) = -0.42772256543218573326238373806514d+00
+! E_i = Coefficients for error estimator    
+   ros_E(1) =  0.5d+00
+   ros_E(2) = -0.29079558716805469821718236208017d+01
+   ros_E(3) =  0.22354069897811569627360909276199d+00
+!~~~> ros_ELO = estimator of local order - the minimum between the
+!    main and the embedded scheme orders plus 1
+   ros_ELO = 3.0d0    
+!~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+   ros_Alpha(1)= 0.0d+00
+   ros_Alpha(2)= 0.43586652150845899941601945119356d+00
+   ros_Alpha(3)= 0.43586652150845899941601945119356d+00
+!~~~> Gamma_i = \sum_j  gamma_{i,j}    
+   ros_Gamma(1)= 0.43586652150845899941601945119356d+00
+   ros_Gamma(2)= 0.24291996454816804366592249683314d+00
+   ros_Gamma(3)= 0.21851380027664058511513169485832d+01
+
+  END SUBROUTINE Ros3
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+  SUBROUTINE Ros4
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+!     L-STABLE ROSENBROCK METHOD OF ORDER 4, WITH 4 STAGES
+!     L-STABLE EMBEDDED ROSENBROCK METHOD OF ORDER 3 
+!
+!      E. HAIRER AND G. WANNER, SOLVING ORDINARY DIFFERENTIAL
+!      EQUATIONS II. STIFF AND DIFFERENTIAL-ALGEBRAIC PROBLEMS.
+!      SPRINGER SERIES IN COMPUTATIONAL MATHEMATICS,
+!      SPRINGER-VERLAG (1990)         
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+
+   IMPLICIT NONE
+   
+    rosMethod = RS4
+!~~~> Name of the method
+   ros_Name = 'ROS-4'   
+!~~~> Number of stages
+   ros_S = 4
+   
+!~~~> The coefficient matrices A and C are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+!   The general mapping formula is:
+!       A(i,j) = ros_A( (i-1)*(i-2)/2 + j )    
+!       C(i,j) = ros_C( (i-1)*(i-2)/2 + j )  
+     
+   ros_A(1) = 0.2000000000000000d+01
+   ros_A(2) = 0.1867943637803922d+01
+   ros_A(3) = 0.2344449711399156d+00
+   ros_A(4) = ros_A(2)
+   ros_A(5) = ros_A(3)
+   ros_A(6) = 0.0D0
+
+   ros_C(1) =-0.7137615036412310d+01
+   ros_C(2) = 0.2580708087951457d+01
+   ros_C(3) = 0.6515950076447975d+00
+   ros_C(4) =-0.2137148994382534d+01
+   ros_C(5) =-0.3214669691237626d+00
+   ros_C(6) =-0.6949742501781779d+00
+!~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+   ros_NewF(1)  = .TRUE.
+   ros_NewF(2)  = .TRUE.
+   ros_NewF(3)  = .TRUE.
+   ros_NewF(4)  = .FALSE.
+!~~~> M_i = Coefficients for new step solution
+   ros_M(1) = 0.2255570073418735d+01
+   ros_M(2) = 0.2870493262186792d+00
+   ros_M(3) = 0.4353179431840180d+00
+   ros_M(4) = 0.1093502252409163d+01
+!~~~> E_i  = Coefficients for error estimator    
+   ros_E(1) =-0.2815431932141155d+00
+   ros_E(2) =-0.7276199124938920d-01
+   ros_E(3) =-0.1082196201495311d+00
+   ros_E(4) =-0.1093502252409163d+01
+!~~~> ros_ELO  = estimator of local order - the minimum between the
+!    main and the embedded scheme orders plus 1
+   ros_ELO  = 4.0d0    
+!~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+   ros_Alpha(1) = 0.D0
+   ros_Alpha(2) = 0.1145640000000000d+01
+   ros_Alpha(3) = 0.6552168638155900d+00
+   ros_Alpha(4) = ros_Alpha(3)
+!~~~> Gamma_i = \sum_j  gamma_{i,j}    
+   ros_Gamma(1) = 0.5728200000000000d+00
+   ros_Gamma(2) =-0.1769193891319233d+01
+   ros_Gamma(3) = 0.7592633437920482d+00
+   ros_Gamma(4) =-0.1049021087100450d+00
+
+  END SUBROUTINE Ros4
+   
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+  SUBROUTINE Rodas3
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+! --- A STIFFLY-STABLE METHOD, 4 stages, order 3
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+
+   IMPLICIT NONE
+   
+    rosMethod = RD3
+!~~~> Name of the method
+   ros_Name = 'RODAS-3'   
+!~~~> Number of stages
+   ros_S = 4
+   
+!~~~> The coefficient matrices A and C are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+!   The general mapping formula is:
+!       A(i,j) = ros_A( (i-1)*(i-2)/2 + j )    
+!       C(i,j) = ros_C( (i-1)*(i-2)/2 + j )  
+ 
+   ros_A(1) = 0.0d+00
+   ros_A(2) = 2.0d+00
+   ros_A(3) = 0.0d+00
+   ros_A(4) = 2.0d+00
+   ros_A(5) = 0.0d+00
+   ros_A(6) = 1.0d+00
+
+   ros_C(1) = 4.0d+00
+   ros_C(2) = 1.0d+00
+   ros_C(3) =-1.0d+00
+   ros_C(4) = 1.0d+00
+   ros_C(5) =-1.0d+00 
+   ros_C(6) =-(8.0d+00/3.0d+00) 
+         
+!~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+   ros_NewF(1)  = .TRUE.
+   ros_NewF(2)  = .FALSE.
+   ros_NewF(3)  = .TRUE.
+   ros_NewF(4)  = .TRUE.
+!~~~> M_i = Coefficients for new step solution
+   ros_M(1) = 2.0d+00
+   ros_M(2) = 0.0d+00
+   ros_M(3) = 1.0d+00
+   ros_M(4) = 1.0d+00
+!~~~> E_i  = Coefficients for error estimator    
+   ros_E(1) = 0.0d+00
+   ros_E(2) = 0.0d+00
+   ros_E(3) = 0.0d+00
+   ros_E(4) = 1.0d+00
+!~~~> ros_ELO  = estimator of local order - the minimum between the
+!    main and the embedded scheme orders plus 1
+   ros_ELO  = 3.0d+00    
+!~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+   ros_Alpha(1) = 0.0d+00
+   ros_Alpha(2) = 0.0d+00
+   ros_Alpha(3) = 1.0d+00
+   ros_Alpha(4) = 1.0d+00
+!~~~> Gamma_i = \sum_j  gamma_{i,j}    
+   ros_Gamma(1) = 0.5d+00
+   ros_Gamma(2) = 1.5d+00
+   ros_Gamma(3) = 0.0d+00
+   ros_Gamma(4) = 0.0d+00
+
+  END SUBROUTINE Rodas3
+    
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+  SUBROUTINE Rodas4
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+!     STIFFLY-STABLE ROSENBROCK METHOD OF ORDER 4, WITH 6 STAGES
+!
+!      E. HAIRER AND G. WANNER, SOLVING ORDINARY DIFFERENTIAL
+!      EQUATIONS II. STIFF AND DIFFERENTIAL-ALGEBRAIC PROBLEMS.
+!      SPRINGER SERIES IN COMPUTATIONAL MATHEMATICS,
+!      SPRINGER-VERLAG (1996)         
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+
+   IMPLICIT NONE
+
+    rosMethod = RD4
+!~~~> Name of the method
+    ros_Name = 'RODAS-4'   
+!~~~> Number of stages
+    ros_S = 6
+
+!~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+    ros_Alpha(1) = 0.000d0
+    ros_Alpha(2) = 0.386d0
+    ros_Alpha(3) = 0.210d0 
+    ros_Alpha(4) = 0.630d0
+    ros_Alpha(5) = 1.000d0
+    ros_Alpha(6) = 1.000d0
+        
+!~~~> Gamma_i = \sum_j  gamma_{i,j}    
+    ros_Gamma(1) = 0.2500000000000000d+00
+    ros_Gamma(2) =-0.1043000000000000d+00
+    ros_Gamma(3) = 0.1035000000000000d+00
+    ros_Gamma(4) =-0.3620000000000023d-01
+    ros_Gamma(5) = 0.0d0
+    ros_Gamma(6) = 0.0d0
+
+!~~~> The coefficient matrices A and C are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+!   The general mapping formula is:  A(i,j) = ros_A( (i-1)*(i-2)/2 + j )    
+!                  C(i,j) = ros_C( (i-1)*(i-2)/2 + j )  
+     
+    ros_A(1) = 0.1544000000000000d+01
+    ros_A(2) = 0.9466785280815826d+00
+    ros_A(3) = 0.2557011698983284d+00
+    ros_A(4) = 0.3314825187068521d+01
+    ros_A(5) = 0.2896124015972201d+01
+    ros_A(6) = 0.9986419139977817d+00
+    ros_A(7) = 0.1221224509226641d+01
+    ros_A(8) = 0.6019134481288629d+01
+    ros_A(9) = 0.1253708332932087d+02
+    ros_A(10) =-0.6878860361058950d+00
+    ros_A(11) = ros_A(7)
+    ros_A(12) = ros_A(8)
+    ros_A(13) = ros_A(9)
+    ros_A(14) = ros_A(10)
+    ros_A(15) = 1.0d+00
+
+    ros_C(1) =-0.5668800000000000d+01
+    ros_C(2) =-0.2430093356833875d+01
+    ros_C(3) =-0.2063599157091915d+00
+    ros_C(4) =-0.1073529058151375d+00
+    ros_C(5) =-0.9594562251023355d+01
+    ros_C(6) =-0.2047028614809616d+02
+    ros_C(7) = 0.7496443313967647d+01
+    ros_C(8) =-0.1024680431464352d+02
+    ros_C(9) =-0.3399990352819905d+02
+    ros_C(10) = 0.1170890893206160d+02
+    ros_C(11) = 0.8083246795921522d+01
+    ros_C(12) =-0.7981132988064893d+01
+    ros_C(13) =-0.3152159432874371d+02
+    ros_C(14) = 0.1631930543123136d+02
+    ros_C(15) =-0.6058818238834054d+01
+
+!~~~> M_i = Coefficients for new step solution
+    ros_M(1) = ros_A(7)
+    ros_M(2) = ros_A(8)
+    ros_M(3) = ros_A(9)
+    ros_M(4) = ros_A(10)
+    ros_M(5) = 1.0d+00
+    ros_M(6) = 1.0d+00
+
+!~~~> E_i  = Coefficients for error estimator    
+    ros_E(1) = 0.0d+00
+    ros_E(2) = 0.0d+00
+    ros_E(3) = 0.0d+00
+    ros_E(4) = 0.0d+00
+    ros_E(5) = 0.0d+00
+    ros_E(6) = 1.0d+00
+
+!~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+    ros_NewF(1) = .TRUE.
+    ros_NewF(2) = .TRUE.
+    ros_NewF(3) = .TRUE.
+    ros_NewF(4) = .TRUE.
+    ros_NewF(5) = .TRUE.
+    ros_NewF(6) = .TRUE.
+     
+!~~~> ros_ELO  = estimator of local order - the minimum between the
+!        main and the embedded scheme orders plus 1
+    ros_ELO = 4.0d0
+     
+  END SUBROUTINE Rodas4
+
+
+END SUBROUTINE RosenbrockADJ ! and its internal procedures
+  
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+SUBROUTINE Fun_Template( T, Y, Ydot )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
+!  Template for the ODE function call.
+!  Updates the rate coefficients (and possibly the fixed species) at each call    
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+ 
+!~~~> Input variables     
+   KPP_REAL, INTENT(IN)  :: T, Y(NVAR)
+!~~~> Output variables     
+   KPP_REAL, INTENT(OUT) :: Ydot(NVAR)
+!~~~> Local variables
+   KPP_REAL :: Told     
+
+   Told = TIME
+   TIME = T
+   CALL Update_SUN()
+   CALL Update_RCONST()
+   CALL Fun( Y, FIX, RCONST, Ydot )
+   TIME = Told
+   
+END SUBROUTINE Fun_Template
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+SUBROUTINE Jac_Template( T, Y, Jcb )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!  Template for the ODE Jacobian call.
+!  Updates the rate coefficients (and possibly the fixed species) at each call
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+!~~~> Input variables
+    KPP_REAL :: T, Y(NVAR)
+!~~~> Output variables
+#ifdef FULL_ALGEBRA    
+    KPP_REAL :: JV(LU_NONZERO), Jcb(NVAR,NVAR)
+#else
+    KPP_REAL :: Jcb(LU_NONZERO)
+#endif   
+!~~~> Local variables
+    KPP_REAL :: Told
+#ifdef FULL_ALGEBRA    
+    INTEGER :: i, j
+#endif   
+
+    Told = TIME
+    TIME = T
+    CALL Update_SUN()
+    CALL Update_RCONST()
+#ifdef FULL_ALGEBRA    
+    CALL Jac_SP(Y, FIX, RCONST, JV)
+    DO j=1,NVAR
+      DO i=1,NVAR
+         Jcb(i,j) = 0.0_dp
+      END DO
+    END DO
+    DO i=1,LU_NONZERO
+       Jcb(LU_IROW(i),LU_ICOL(i)) = JV(i)
+    END DO
+#else
+    CALL Jac_SP( Y, FIX, RCONST, Jcb )
+#endif   
+    TIME = Told
+
+END SUBROUTINE Jac_Template
+
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+SUBROUTINE Hess_Template( T, Y, Hes )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+!  Template for the ODE Hessian call.
+!  Updates the rate coefficients (and possibly the fixed species) at each call    
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+
+!~~~> Input variables     
+    KPP_REAL, INTENT(IN)  :: T, Y(NVAR)
+!~~~> Output variables     
+    KPP_REAL, INTENT(OUT) :: Hes(NHESS)
+!~~~> Local variables
+    KPP_REAL :: Told     
+
+    Told = TIME
+    TIME = T   
+    CALL Update_SUN()
+    CALL Update_RCONST()
+    CALL Hessian( Y, FIX, RCONST, Hes )
+    TIME = Told
+
+END SUBROUTINE Hess_Template                                      
+
+END MODULE KPP_ROOT_Integrator
+
+
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/rosenbrock_soa.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/rosenbrock_soa.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/rosenbrock_soa.def	(revision 2696)
@@ -0,0 +1,23 @@
+ 
+#FUNCTION AGGREGATE
+#JACOBIAN SPARSE_LU_ROW
+
+#DOUBLE ON 
+#INTFILE rosenbrock_soa
+
+#INLINE F90_GLOBAL
+      INTEGER Autonomous
+      COMMON /INTGDATA/ Autonomous
+      REAL*8 STEPSTART
+      COMMON /GDATA/ STEPSTART
+#ENDINLINE
+
+#INLINE F90_INIT
+       STEPMIN=0.0001
+       STEPMAX=3600.
+       Autonomous = 1 
+       STEPSTART=STEPMIN
+#ENDINLINE
+
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/rosenbrock_soa.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/rosenbrock_soa.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/rosenbrock_soa.f90	(revision 2696)
@@ -0,0 +1,1942 @@
+MODULE KPP_ROOT_Integrator
+ 
+ USE KPP_ROOT_Precision
+ USE KPP_ROOT_Parameters
+ USE KPP_ROOT_Global
+ USE KPP_ROOT_Function
+ USE KPP_ROOT_Jacobian
+ USE KPP_ROOT_Hessian
+ USE KPP_ROOT_LinearAlgebra
+ USE KPP_ROOT_Rates
+ 
+   IMPLICIT NONE
+   PUBLIC
+   SAVE
+!~~~>  Statistics on the work performed by the Rosenbrock method
+   INTEGER :: Nfun,Njac,Nstp,Nacc,Nrej,Ndec,Nsol,Nsng
+   INTEGER, PARAMETER :: ifun=11,  ijac=12, istp=13,  &
+                iacc=14, irej=15,  idec=16, isol=17,  &
+                isng=18, itexit=11,ihexit=12
+!~~~>  Checkpoints in memory
+   INTEGER, PARAMETER :: bufsize = 1500
+   INTEGER :: stack_ptr = 0 ! last written entry
+   KPP_REAL, DIMENSION(:), POINTER :: buf_H, buf_T
+   KPP_REAL, DIMENSION(:,:), POINTER :: buf_Y, buf_K
+   KPP_REAL, DIMENSION(:,:), POINTER :: buf_Y_tlm, buf_K_tlm
+
+CONTAINS
+
+ 
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE INTEGRATE_SOA( NSOA, Y, Y_tlm, Y_adj, Y_soa, TIN, TOUT, &
+       AtolAdj, RtolAdj, ICNTRL_U, RCNTRL_U, ISTATUS_U, RSTATUS_U )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   
+   IMPLICIT NONE        
+    
+!~~~> NSOA - No. of vectors to multiply SOA with
+   INTEGER :: NSOA
+!~~~> Y -   Forward model variables
+   KPP_REAL, INTENT(INOUT)  :: Y(NVAR)
+!~~~> Y_adj -   Tangent linear variables
+   KPP_REAL, INTENT(INOUT)  :: Y_tlm(NVAR,NSOA)
+!~~~> Y_adj   - First order adjoint
+   KPP_REAL, INTENT(INOUT)  :: Y_adj(NVAR)
+!~~~> Y_soa - Second order adjoint
+   KPP_REAL, INTENT(INOUT)  :: Y_soa(NVAR,NSOA)
+!~~~> 
+   KPP_REAL, INTENT(IN)         :: TIN  ! TIN  - Start Time
+   KPP_REAL, INTENT(IN)         :: TOUT ! TOUT - End Time
+!~~~> Optional input parameters and statistics
+   INTEGER,  INTENT(IN),  OPTIONAL :: ICNTRL_U(20)
+   KPP_REAL, INTENT(IN),  OPTIONAL :: RCNTRL_U(20)
+   INTEGER,  INTENT(OUT), OPTIONAL :: ISTATUS_U(20)
+   KPP_REAL, INTENT(OUT), OPTIONAL :: RSTATUS_U(20)
+
+   INTEGER N_stp, N_acc, N_rej, N_sng, IERR
+   SAVE N_stp, N_acc, N_rej, N_sng
+   INTEGER i
+   KPP_REAL :: RCNTRL(20), RSTATUS(20)
+   KPP_REAL :: AtolAdj(NVAR), RtolAdj(NVAR)
+   INTEGER :: ICNTRL(20), ISTATUS(20)
+
+   ICNTRL(1:20)  = 0
+   RCNTRL(1:20)  = 0.0_dp
+   ISTATUS(1:20) = 0
+   RSTATUS(1:20) = 0.0_dp
+   
+   ICNTRL(1) = 0       ! 0 = non-autonomous, 1 = autonomous
+   ICNTRL(2) = 1       ! 0 = scalar, 1 = vector tolerances
+   RCNTRL(3) = STEPMIN ! starting step
+   ICNTRL(4) = 5       ! choice of the method for forward and adjoint integration
+
+! Tighter tolerances, especially atol, are needed for the full continuous adjoint
+!  (Atol on sensitivities is different than on concentrations)
+!   CADJ_ATOL(1:NVAR) = 1.0d-5
+!   CADJ_RTOL(1:NVAR) = 1.0d-4
+
+   ! if optional parameters are given, and if they are >=0, 
+   !       then they overwrite default settings
+   IF (PRESENT(ICNTRL_U)) THEN
+     WHERE(ICNTRL_U(:) >= 0) ICNTRL(:) = ICNTRL_U(:)
+   ENDIF
+   IF (PRESENT(RCNTRL_U)) THEN
+     WHERE(RCNTRL_U(:) >= 0) RCNTRL(:) = RCNTRL_U(:)
+   ENDIF
+
+   
+   CALL RosenbrockSOA(NSOA,                   &
+         Y, Y_tlm, Y_adj, Y_soa,                &
+         TIN,TOUT,                              &
+         ATOL,RTOL,                             &
+         Fun_Template,Jac_Template,Hess_Template,  &
+         RCNTRL,ICNTRL,RSTATUS,ISTATUS,IERR)
+
+             
+!   N_stp = N_stp + ICNTRL(istp)
+!   N_acc = N_acc + ICNTRL(iacc)
+!   N_rej = N_rej + ICNTRL(irej)
+!   N_sng = N_sng + ICNTRL(isng)
+!   PRINT*,'Step=',N_stp,' Acc=',N_acc,' Rej=',N_rej, &
+!        ' Singular=',N_sng
+
+   IF (IERR < 0) THEN
+     print *,'RosenbrockSOA: Unsucessful step at T=', &
+         TIN,' (IERR=',IERR,')'
+   ENDIF
+
+   STEPMIN = RCNTRL(ihexit)
+   ! if optional parameters are given for output they to return information
+   IF (PRESENT(ISTATUS_U)) ISTATUS_U(:) = ISTATUS(:)
+   IF (PRESENT(RSTATUS_U)) RSTATUS_U(:) = RSTATUS(:)
+
+END SUBROUTINE INTEGRATE_SOA
+
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+SUBROUTINE RosenbrockSOA( NSOA,            &
+           Y, Y_tlm, Y_adj, Y_soa,         &
+           Tstart,Tend,                    &
+           AbsTol,RelTol,                  &
+           ode_Fun,ode_Jac , ode_Hess,     &
+           RCNTRL,ICNTRL,RSTATUS,ISTATUS,IERR)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!   
+!    ADJ = Adjoint of the Tangent Linear Model of a RosenbrockSOA Method
+!
+!    Solves the system y'=F(t,y) using a RosenbrockSOA method defined by:
+!
+!     G = 1/(H*gamma(1)) - ode_Jac(t0,Y0)
+!     T_i = t0 + Alpha(i)*H
+!     Y_i = Y0 + \sum_{j=1}^{i-1} A(i,j)*K_j
+!     G * K_i = ode_Fun( T_i, Y_i ) + \sum_{j=1}^S C(i,j)/H * K_j +
+!         gamma(i)*dF/dT(t0, Y0)
+!     Y1 = Y0 + \sum_{j=1}^S M(j)*K_j 
+!
+!    For details on RosenbrockSOA methods and their implementation consult:
+!      E. Hairer and G. Wanner
+!      "Solving ODEs II. Stiff and differential-algebraic problems".
+!      Springer series in computational mathematics, Springer-Verlag, 1996.  
+!    The codes contained in the book inspired this implementation.       
+!
+!    (C)  Adrian Sandu, August 2004
+!    Virginia Polytechnic Institute and State University    
+!    Contact: sandu@cs.vt.edu
+!    This implementation is part of KPP - the Kinetic PreProcessor
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!    
+!~~~>   INPUT ARGUMENTS: 
+!    
+!-     Y(NVAR)     -> vector of initial conditions (at T=Tstart)
+!      NSOA        -> dimension of linearized system, 
+!                     i.e. the number of sensitivity coefficients
+!-     Y_adj(NVAR) -> vector of initial sensitivity conditions (at T=Tstart)
+!-    [Tstart,Tend]  = time range of integration
+!     (if Tstart>Tend the integration is performed backwards in time)  
+!-    RelTol, AbsTol = user precribed accuracy
+!- SUBROUTINE ode_Fun( T, Y, Ydot ) = ODE function, 
+!                       returns Ydot = Y' = F(T,Y) 
+!- SUBROUTINE ode_Fun( T, Y, Ydot ) = Jacobian of the ODE function,
+!                       returns Jcb = dF/dY 
+!-    ICNTRL(1:10)    = integer inputs parameters
+!-    RCNTRL(1:10)    = real inputs parameters
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>     OUTPUT ARGUMENTS:  
+!     
+!-    Y(NVAR)         -> vector of final states (at T->Tend)
+!-    Y_adj(NVAR)     -> vector of final sensitivities (at T=Tend)
+!-    ICNTRL(11:20)   -> integer output parameters
+!-    RCNTRL(11:20)   -> real output parameters
+!-    IERR       -> job status upon return
+!       - succes (positive value) or failure (negative value) -
+!           =  1 : Success
+!           = -1 : Improper value for maximal no of steps
+!           = -2 : Selected RosenbrockSOA method not implemented
+!           = -3 : Hmin/Hmax/Hstart must be positive
+!           = -4 : FacMin/FacMax/FacRej must be positive
+!           = -5 : Improper tolerance values
+!           = -6 : No of steps exceeds maximum bound
+!           = -7 : Step size too small
+!           = -8 : Matrix is repeatedly singular
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+!~~~>     INPUT PARAMETERS:
+!
+!    Note: For input parameters equal to zero the default values of the
+!       corresponding variables are used.
+!
+!    ICNTRL(1)   = 1: F = F(y)   Independent of T (AUTONOMOUS)
+!              = 0: F = F(t,y) Depends on T (NON-AUTONOMOUS)
+!    ICNTRL(2)   = 0: AbsTol, RelTol are NVAR-dimensional vectors
+!              = 1:  AbsTol, RelTol are scalars
+!    ICNTRL(3)  -> maximum number of integration steps
+!        For ICNTRL(3)=0) the default value of 100000 is used
+!
+!    ICNTRL(4)  -> selection of a particular Rosenbrock method
+!        = 0 :  default method is Rodas3
+!        = 1 :  method is  Ros2
+!        = 2 :  method is  Ros3 
+!        = 3 :  method is  Ros4 
+!        = 4 :  method is  Rodas3
+!        = 5:   method is  Rodas4
+!
+!    ICNTRL(5) -> Type of adjoint algorithm
+!         = 0 : default is discrete adjoint ( of method ICNTRL(4) )
+!         = 1 : no adjoint       
+!         = 2 : discrete adjoint ( of method ICNTRL(4) )
+!         = 3 : fully adaptive continuous adjoint ( with method ICNTRL(6) )
+!         = 4 : simplified continuous adjoint ( with method ICNTRL(6) )
+!
+!    ICNTRL(6)  -> selection of a particular Rosenbrock method for the
+!                continuous adjoint integration - for cts adjoint it
+!                can be different than the forward method ICNTRL(4)
+!         Note 1: to avoid interpolation errors (which can be huge!) 
+!                   it is recommended to use only ICNTRL(6) = 1 or 4
+!         Note 2: the performance of the full continuous adjoint
+!                   strongly depends on the forward solution accuracy Abs/RelTol
+!
+!    RCNTRL(1)  -> Hmin, lower bound for the integration step size
+!          It is strongly recommended to keep Hmin = ZERO 
+!    RCNTRL(2)  -> Hmax, upper bound for the integration step size
+!    RCNTRL(3)  -> Hstart, starting value for the integration step size
+!          
+!    RCNTRL(4)  -> FacMin, lower bound on step decrease factor (default=0.2)
+!    RCNTRL(5)  -> FacMin,upper bound on step increase factor (default=6)
+!    RCNTRL(6)  -> FacRej, step decrease factor after multiple rejections
+!            (default=0.1)
+!    RCNTRL(7)  -> FacSafe, by which the new step is slightly smaller 
+!         than the predicted value  (default=0.9)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+!~~~>     OUTPUT PARAMETERS:
+!
+!    Note: each call to RosenbrockSOA adds the corrent no. of fcn calls
+!      to previous value of ISTATUS(1), and similar for the other params.
+!      Set ISTATUS(1:10) = 0 before call to avoid this accumulation.
+!
+!    ISTATUS(1) = No. of function calls
+!    ISTATUS(2) = No. of jacobian calls
+!    ISTATUS(3) = No. of steps
+!    ISTATUS(4) = No. of accepted steps
+!    ISTATUS(5) = No. of rejected steps (except at the beginning)
+!    ISTATUS(6) = No. of LU decompositions
+!    ISTATUS(7) = No. of forward/backward substitutions
+!    ISTATUS(8) = No. of singular matrix decompositions
+!
+!    RSTATUS(1)  -> Texit, the time corresponding to the 
+!                   computed Y upon return
+!    RSTATUS(2)  -> Hexit, last accepted step before exit
+!    For multiple restarts, use Hexit as Hstart in the following run 
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  IMPLICIT NONE
+   
+!~~~>  Arguments   
+   INTEGER, INTENT(IN)     :: NSOA
+   KPP_REAL, INTENT(INOUT) :: Y(NVAR)
+   KPP_REAL, INTENT(INOUT) :: Y_tlm(NVAR,NSOA)
+   KPP_REAL, INTENT(INOUT) :: Y_adj(NVAR)
+   KPP_REAL, INTENT(INOUT) :: Y_soa(NVAR,NSOA)
+   KPP_REAL, INTENT(IN)    :: Tstart, Tend
+   KPP_REAL, INTENT(IN)    :: AbsTol(NVAR),RelTol(NVAR)
+   INTEGER, INTENT(IN)     :: ICNTRL(20)
+   KPP_REAL, INTENT(IN)    :: RCNTRL(20)
+   INTEGER, INTENT(INOUT)  :: ISTATUS(20)
+   KPP_REAL, INTENT(INOUT) :: RSTATUS(20)
+   INTEGER, INTENT(OUT)    :: IERR
+!~~~>  The method parameters   
+   INTEGER, PARAMETER :: Smax = 6
+   INTEGER  :: Method, ros_S
+   KPP_REAL, DIMENSION(Smax) :: ros_M, ros_E, ros_Alpha, ros_Gamma
+   KPP_REAL, DIMENSION(Smax*(Smax-1)/2) :: ros_A, ros_C
+   KPP_REAL :: ros_ELO
+   LOGICAL, DIMENSION(Smax) :: ros_NewF
+   CHARACTER(LEN=12) :: ros_Name
+!~~~>  Local variables     
+   KPP_REAL :: Roundoff, FacMin, FacMax, FacRej, FacSafe
+   KPP_REAL :: Hmin, Hmax, Hstart, Hexit
+   KPP_REAL :: T
+   INTEGER :: i, UplimTol, Max_no_steps
+   LOGICAL :: Autonomous, VectorTol
+!~~~>   Parameters
+   KPP_REAL, PARAMETER :: ZERO = 0.0d0, ONE  = 1.0d0
+   KPP_REAL, PARAMETER :: DeltaMin = 1.0d-5
+!~~~>   Functions
+   EXTERNAL ode_Fun, ode_Jac, ode_Hess
+
+!~~~>  Initialize statistics
+   Nfun = ISTATUS(ifun)
+   Njac = ISTATUS(ijac)
+   Nstp = ISTATUS(istp)
+   Nacc = ISTATUS(iacc)
+   Nrej = ISTATUS(irej)
+   Ndec = ISTATUS(idec)
+   Nsol = ISTATUS(isol)
+   Nsng = ISTATUS(isng)
+   
+!~~~>  Autonomous or time dependent ODE. Default is time dependent.
+   Autonomous = .NOT.(ICNTRL(1) == 0)
+
+!~~~>  For Scalar tolerances (ICNTRL(2).NE.0)  
+!               the code uses AbsTol(1) and RelTol(1)
+!      For Vector tolerances (ICNTRL(2) == 0) 
+!               the code uses AbsTol(1:NVAR) and RelTol(1:NVAR)
+   IF (ICNTRL(2) == 0) THEN
+      VectorTol = .TRUE.
+         UplimTol  = NVAR
+   ELSE 
+      VectorTol = .FALSE.
+         UplimTol  = 1
+   END IF
+   
+!~~~>   The maximum number of steps admitted
+   IF (ICNTRL(3) == 0) THEN
+      Max_no_steps = bufsize - 1
+   ELSEIF (Max_no_steps > 0) THEN
+      Max_no_steps=ICNTRL(3)
+   ELSE 
+      PRINT * ,'User-selected max no. of steps: ICNTRL(3)=',ICNTRL(3)
+      CALL ros_ErrorMsg(-1,Tstart,ZERO,IERR)
+      RETURN      
+   END IF
+
+!~~~>  The particular Rosenbrock method chosen
+   IF (ICNTRL(4) == 0) THEN
+      Method = 5
+   ELSEIF ( (ICNTRL(4) >= 1).AND.(ICNTRL(4) <= 5) ) THEN
+      Method = ICNTRL(4)
+   ELSE  
+      PRINT * , 'User-selected Rosenbrock method: ICNTRL(4)=', Method
+      CALL ros_ErrorMsg(-2,Tstart,ZERO,IERR)
+      RETURN      
+   END IF
+
+ 
+!~~~>  Unit roundoff (1+Roundoff>1)  
+   Roundoff = WLAMCH('E')
+
+!~~~>  Lower bound on the step size: (positive value)
+   IF (RCNTRL(1) == ZERO) THEN
+      Hmin = ZERO
+   ELSEIF (RCNTRL(1) > ZERO) THEN 
+      Hmin = RCNTRL(1)
+   ELSE  
+      PRINT * , 'User-selected Hmin: RCNTRL(1)=', RCNTRL(1)
+      CALL ros_ErrorMsg(-3,Tstart,ZERO,IERR)
+      RETURN      
+   END IF
+!~~~>  Upper bound on the step size: (positive value)
+   IF (RCNTRL(2) == ZERO) THEN
+      Hmax = ABS(Tend-Tstart)
+   ELSEIF (RCNTRL(2) > ZERO) THEN
+      Hmax = MIN(ABS(RCNTRL(2)),ABS(Tend-Tstart))
+   ELSE  
+      PRINT * , 'User-selected Hmax: RCNTRL(2)=', RCNTRL(2)
+      CALL ros_ErrorMsg(-3,Tstart,ZERO,IERR)
+      RETURN      
+   END IF
+!~~~>  Starting step size: (positive value)
+   IF (RCNTRL(3) == ZERO) THEN
+      Hstart = MAX(Hmin,DeltaMin)
+   ELSEIF (RCNTRL(3) > ZERO) THEN
+      Hstart = MIN(ABS(RCNTRL(3)),ABS(Tend-Tstart))
+   ELSE  
+      PRINT * , 'User-selected Hstart: RCNTRL(3)=', RCNTRL(3)
+      CALL ros_ErrorMsg(-3,Tstart,ZERO,IERR)
+      RETURN      
+   END IF
+!~~~>  Step size can be changed s.t.  FacMin < Hnew/Hexit < FacMax 
+   IF (RCNTRL(4) == ZERO) THEN
+      FacMin = 0.2d0
+   ELSEIF (RCNTRL(4) > ZERO) THEN
+      FacMin = RCNTRL(4)
+   ELSE  
+      PRINT * , 'User-selected FacMin: RCNTRL(4)=', RCNTRL(4)
+      CALL ros_ErrorMsg(-4,Tstart,ZERO,IERR)
+      RETURN      
+   END IF
+   IF (RCNTRL(5) == ZERO) THEN
+      FacMax = 6.0d0
+   ELSEIF (RCNTRL(5) > ZERO) THEN
+      FacMax = RCNTRL(5)
+   ELSE  
+      PRINT * , 'User-selected FacMax: RCNTRL(5)=', RCNTRL(5)
+      CALL ros_ErrorMsg(-4,Tstart,ZERO,IERR)
+      RETURN      
+   END IF
+!~~~>   FacRej: Factor to decrease step after 2 succesive rejections
+   IF (RCNTRL(6) == ZERO) THEN
+      FacRej = 0.1d0
+   ELSEIF (RCNTRL(6) > ZERO) THEN
+      FacRej = RCNTRL(6)
+   ELSE  
+      PRINT * , 'User-selected FacRej: RCNTRL(6)=', RCNTRL(6)
+      CALL ros_ErrorMsg(-4,Tstart,ZERO,IERR)
+      RETURN      
+   END IF
+!~~~>   FacSafe: Safety Factor in the computation of new step size
+   IF (RCNTRL(7) == ZERO) THEN
+      FacSafe = 0.9d0
+   ELSEIF (RCNTRL(7) > ZERO) THEN
+      FacSafe = RCNTRL(7)
+   ELSE  
+      PRINT * , 'User-selected FacSafe: RCNTRL(7)=', RCNTRL(7)
+      CALL ros_ErrorMsg(-4,Tstart,ZERO,IERR)
+      RETURN      
+   END IF
+!~~~>  Check if tolerances are reasonable
+    DO i=1,UplimTol
+      IF ( (AbsTol(i) <= ZERO) .OR. (RelTol(i) <= 10.d0*Roundoff) &
+         .OR. (RelTol(i) >= 1.0d0) ) THEN
+        PRINT * , ' AbsTol(',i,') = ',AbsTol(i)
+        PRINT * , ' RelTol(',i,') = ',RelTol(i)
+        CALL ros_ErrorMsg(-5,Tstart,ZERO,IERR)
+        RETURN
+      END IF
+    END DO
+     
+ 
+!~~~>   Initialize the particular RosenbrockSOA method
+   SELECT CASE (Method)
+     CASE (1)
+       CALL Ros2(ros_S, ros_A, ros_C, ros_M, ros_E,   & 
+          ros_Alpha, ros_Gamma, ros_NewF, ros_ELO, ros_Name)
+     CASE (2)
+       CALL Ros3(ros_S, ros_A, ros_C, ros_M, ros_E,   & 
+          ros_Alpha, ros_Gamma, ros_NewF, ros_ELO, ros_Name)
+     CASE (3)
+       CALL Ros4(ros_S, ros_A, ros_C, ros_M, ros_E,   & 
+          ros_Alpha, ros_Gamma, ros_NewF, ros_ELO, ros_Name)
+     CASE (4)
+       CALL Rodas3(ros_S, ros_A, ros_C, ros_M, ros_E, & 
+          ros_Alpha, ros_Gamma, ros_NewF, ros_ELO, ros_Name)
+     CASE (5)
+       CALL Rodas4(ros_S, ros_A, ros_C, ros_M, ros_E, & 
+          ros_Alpha, ros_Gamma, ros_NewF, ros_ELO, ros_Name)
+     CASE DEFAULT
+       PRINT * , 'Unknown Rosenbrock method: ICNTRL(4)=', Method
+       CALL ros_ErrorMsg(-2,Tstart,ZERO,IERR) 
+       RETURN     
+   END SELECT
+ 
+!~~~>  Allocate checkpoint space or open checkpoint files
+   CALL ros_AllocateDBuffers( ros_S )
+   
+!~~~>  Forward Rosenbrock and TLM integration   
+   CALL ros_TlmInt (NSOA, Y, Y_tlm,              &
+        Tstart, Tend, T,                         &
+        AbsTol, RelTol,                          &
+        ode_Fun, ode_Jac, ode_Hess,              &
+!~~~> Rosenbrock method coefficients     
+        ros_S, ros_M, ros_E, ros_A, ros_C,       &
+        ros_Alpha, ros_Gamma, ros_ELO, ros_NewF, &
+!~~~> Integration parameters
+        Autonomous, VectorTol, Max_no_steps,     &
+        Roundoff, Hmin, Hmax, Hstart, Hexit,     &
+        FacMin, FacMax, FacRej, FacSafe,         &
+!~~~> Error indicator
+        IERR )
+
+   PRINT*,'FORWARD STATISTICS'
+   PRINT*,'Step=',Nstp,' Acc=',Nacc,             &
+        ' Rej=',Nrej, ' Singular=',Nsng
+   Nstp = 0
+   Nacc = 0
+   Nrej = 0
+   Nsng = 0
+
+!~~~>  If Forward integration failed return   
+   IF (IERR<0) RETURN
+
+!~~~>  Backward ADJ and SOADJ Rosenbrock integration   
+   CALL ros_SoaInt (                             &
+        NSOA, Y_adj, Y_soa,                      &
+        Tstart, Tend, T,                         &
+        AbsTol, RelTol,                          &
+        ode_Fun, ode_Jac, ode_Hess,              &
+!~~~> RosenbrockSOA method coefficients     
+        ros_S, ros_M, ros_E, ros_A, ros_C,       &
+        ros_Alpha, ros_Gamma, ros_ELO, ros_NewF, &
+!~~~> Integration parameters
+        Autonomous, VectorTol, Max_no_steps,     &
+        Roundoff, Hmin, Hmax, Hstart,            &
+        FacMin, FacMax, FacRej, FacSafe,         &
+!~~~> Error indicator
+        IERR )
+
+
+   PRINT*,'ADJOINT STATISTICS'
+   PRINT*,'Step=',Nstp,' Acc=',Nacc,             &
+        ' Rej=',Nrej, ' Singular=',Nsng
+
+!~~~>  Free checkpoint space or close checkpoint files
+   CALL ros_FreeDBuffers
+
+!~~~>  Collect run statistics
+   ISTATUS(ifun) = Nfun
+   ISTATUS(ijac) = Njac
+   ISTATUS(istp) = Nstp
+   ISTATUS(iacc) = Nacc
+   ISTATUS(irej) = Nrej
+   ISTATUS(idec) = Ndec
+   ISTATUS(isol) = Nsol
+   ISTATUS(isng) = Nsng
+!~~~> Last T and H
+   RSTATUS(itexit) = T
+   RSTATUS(ihexit) = Hexit    
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ END SUBROUTINE RosenbrockSOA
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ 
+ 
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE ros_ErrorMsg(Code,T,H,IERR)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!    Handles all error messages
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  
+   KPP_REAL, INTENT(IN) :: T, H
+   INTEGER, INTENT(IN)  :: Code
+   INTEGER, INTENT(OUT) :: IERR
+   
+   IERR = Code
+   PRINT * , &
+     'Forced exit from RosenbrockSOA due to the following error:' 
+     
+   SELECT CASE (Code)
+    CASE (-1)    
+      PRINT * , '--> Improper value for maximal no of steps'
+    CASE (-2)    
+      PRINT * , '--> Selected RosenbrockSOA method not implemented'
+    CASE (-3)    
+      PRINT * , '--> Hmin/Hmax/Hstart must be positive'
+    CASE (-4)    
+      PRINT * , '--> FacMin/FacMax/FacRej must be positive'
+    CASE (-5) 
+      PRINT * , '--> Improper tolerance values'
+    CASE (-6) 
+      PRINT * , '--> No of steps exceeds maximum bound'
+    CASE (-7) 
+      PRINT * , '--> Step size too small: T + 10*H = T', &
+            ' or H < Roundoff'
+    CASE (-8)    
+      PRINT * , '--> Matrix is repeatedly singular'
+    CASE (-9)    
+      PRINT * , '--> Improper type of adjoint selected'
+    CASE DEFAULT
+      PRINT *, 'Unknown Error code: ', Code
+   END SELECT
+   
+   PRINT *, "T=", T, "and H=", H
+     
+ END SUBROUTINE ros_ErrorMsg
+   
+     
+     
+   
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE ros_TlmInt (NSOA, Y, Y_tlm,          &
+        Tstart, Tend, T,                         &
+        AbsTol, RelTol,                          &
+        ode_Fun, ode_Jac, ode_Hess,              &
+!~~~> Rosenbrock method coefficients     
+        ros_S, ros_M, ros_E, ros_A, ros_C,       &
+        ros_Alpha, ros_Gamma, ros_ELO, ros_NewF, &
+!~~~> Integration parameters
+        Autonomous, VectorTol, Max_no_steps,     &
+        Roundoff, Hmin, Hmax, Hstart, Hexit,     &
+        FacMin, FacMax, FacRej, FacSafe,         &
+!~~~> Error indicator
+        IERR )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!   Template for the implementation of a generic Rosenbrock method 
+!      defined by ros_S (no of stages)  
+!      and its coefficients ros_{A,C,M,E,Alpha,Gamma}
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  IMPLICIT NONE
+   
+!~~~> Input: the initial condition at Tstart; Output: the solution at T   
+   KPP_REAL, INTENT(INOUT) :: Y(NVAR)
+!~~~> Input: Number of sensitivity coefficients
+   INTEGER, INTENT(IN) :: NSOA 
+!~~~> Input: the initial sensitivites at Tstart; Output: the sensitivities at T   
+   KPP_REAL, INTENT(INOUT) :: Y_tlm(NVAR,NSOA)
+!~~~> Input: integration interval   
+   KPP_REAL, INTENT(IN) :: Tstart,Tend      
+!~~~> Output: time at which the solution is returned (T=Tend if success)   
+   KPP_REAL, INTENT(OUT) ::  T      
+!~~~> Input: tolerances      
+   KPP_REAL, INTENT(IN) ::  AbsTol(NVAR), RelTol(NVAR)
+!~~~> Input: ode function and its Jacobian      
+   EXTERNAL ode_Fun, ode_Jac, ode_Hess
+!~~~> Input: The Rosenbrock method parameters   
+   INTEGER, INTENT(IN) ::  ros_S
+   KPP_REAL, INTENT(IN) :: ros_M(ros_S), ros_E(ros_S),  & 
+       ros_Alpha(ros_S), ros_A(ros_S*(ros_S-1)/2),      &
+       ros_Gamma(ros_S), ros_C(ros_S*(ros_S-1)/2), ros_ELO
+   LOGICAL, INTENT(IN) :: ros_NewF(ros_S)
+!~~~> Input: integration parameters   
+   LOGICAL, INTENT(IN) :: Autonomous, VectorTol
+   KPP_REAL, INTENT(IN) :: Hstart, Hmin, Hmax
+   INTEGER, INTENT(IN) :: Max_no_steps
+   KPP_REAL, INTENT(IN) :: Roundoff, FacMin, FacMax, FacRej, FacSafe 
+!~~~> Output: last accepted step   
+   KPP_REAL, INTENT(OUT) :: Hexit 
+!~~~> Output: Error indicator
+   INTEGER, INTENT(OUT) :: IERR
+! ~~~~ Local variables        
+   KPP_REAL :: Ystage(NVAR*ros_S), Fcn0(NVAR), Fcn(NVAR) 
+   KPP_REAL :: K(NVAR*ros_S), Tmp(NVAR)
+   KPP_REAL :: Ystage_tlm(NVAR*ros_S,NSOA), Fcn0_tlm(NVAR,NSOA), Fcn_tlm(NVAR,NSOA) 
+   KPP_REAL :: K_tlm(NVAR*ros_S,NSOA)
+   KPP_REAL :: Hes0(NHESS)
+   KPP_REAL :: dFdT(NVAR), dJdT(LU_NONZERO)
+   KPP_REAL :: Jac0(LU_NONZERO), Jac(LU_NONZERO), Ghimj(LU_NONZERO)
+   KPP_REAL :: H, Hnew, HC, HG, Fac, Tau 
+   KPP_REAL :: Err, Yerr(NVAR), Ynew(NVAR), Ynew_tlm(NVAR,NSOA)
+   INTEGER :: Pivot(NVAR), Direction, ioffset, joffset, j, istage, mtlm
+   LOGICAL :: RejectLastH, RejectMoreH, Singular
+!~~~>  Local parameters
+   KPP_REAL, PARAMETER :: ZERO = 0.0d0, ONE  = 1.0d0 
+   KPP_REAL, PARAMETER :: DeltaMin = 1.0d-5
+!~~~>  Locally called functions
+!   KPP_REAL WLAMCH
+!   EXTERNAL WLAMCH
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+   
+!~~~>  Initial preparations
+   T = Tstart
+   Hexit = 0.0_dp
+   H = MIN(Hstart,Hmax) 
+   IF (ABS(H) <= 10.D0*Roundoff) H = DeltaMin
+   
+   IF (Tend  >=  Tstart) THEN
+     Direction = +1
+   ELSE
+     Direction = -1
+   END IF               
+
+   RejectLastH=.FALSE.
+   RejectMoreH=.FALSE.
+   
+!~~~> Time loop begins below 
+
+TimeLoop: DO WHILE ( (Direction > 0).AND.((T-Tend)+Roundoff <= ZERO) &
+       .OR. (Direction < 0).AND.((Tend-T)+Roundoff <= ZERO) ) 
+      
+   IF ( Nstp > Max_no_steps ) THEN  ! Too many steps
+      CALL ros_ErrorMsg(-6,T,H,IERR)
+      RETURN
+   END IF
+   IF ( ((T+0.1d0*H) == T).OR.(H <= Roundoff) ) THEN  ! Step size too small
+      CALL ros_ErrorMsg(-7,T,H,IERR)
+      RETURN
+   END IF
+   
+!~~~>  Limit H if necessary to avoid going beyond Tend   
+   Hexit = H
+   H = MIN(H,ABS(Tend-T))
+
+!~~~>   Compute the function at current time
+   CALL ode_Fun(T,Y,Fcn0)
+  
+!~~~>   Compute the Jacobian at current time
+   CALL ode_Jac(T,Y,Jac0)
+  
+!~~~>   Compute the Hessian at current time
+   CALL ode_Hess(T,Y,Hes0)
+   
+!~~~>   Compute the TLM function at current time
+   DO mtlm = 1, NSOA
+      CALL Jac_SP_Vec ( Jac0, Y_tlm(1:NVAR,mtlm), Fcn0_tlm(1:NVAR,mtlm) )
+   END DO  
+   
+!~~~>  Compute the function and Jacobian derivatives with respect to T
+   IF (.NOT.Autonomous) THEN
+      CALL ros_FunTimeDerivative ( T, Roundoff, Y, &
+                Fcn0, ode_Fun, dFdT )
+      CALL ros_JacTimeDerivative ( T, Roundoff, Y, &
+                Jac0, ode_Jac, dJdT )
+   END IF
+ 
+!~~~>  Repeat step calculation until current step accepted
+UntilAccepted: DO  
+   
+   CALL ros_PrepareMatrix(H,Direction,ros_Gamma(1),&
+          Jac0,Ghimj,Pivot,Singular)
+   IF (Singular) THEN ! More than 5 consecutive failed decompositions
+       CALL ros_ErrorMsg(-8,T,H,IERR)
+       RETURN
+   END IF
+
+!~~~>   Compute the stages
+Stage: DO istage = 1, ros_S
+      
+      ! Current istage vector is K(ioffset+1:ioffset+NVAR:ioffset+1+NVAR-1)
+       ioffset = NVAR*(istage-1)
+         
+      ! For the 1st istage the function has been computed previously
+       IF ( istage == 1 ) THEN
+         CALL WCOPY(NVAR,Y,1,Ystage(ioffset+1:ioffset+NVAR),1)
+         DO mtlm=1,NSOA                    
+            CALL WCOPY(NVAR,Y_tlm(1:NVAR,mtlm),1,Ystage_tlm(ioffset+1:ioffset+NVAR,mtlm),1)
+         END DO                    
+         CALL WCOPY(NVAR,Fcn0,1,Fcn,1)
+         CALL WCOPY(NVAR*NSOA,Fcn0_tlm,1,Fcn_tlm,1)
+      ! istage>1 and a new function evaluation is needed at the current istage
+       ELSEIF ( ros_NewF(istage) ) THEN
+         CALL WCOPY(NVAR,Y,1,Ystage(ioffset+1:ioffset+NVAR),1)
+         DO mtlm=1,NSOA                    
+            CALL WCOPY(NVAR,Y_tlm(1:NVAR,mtlm),1,Ystage_tlm(ioffset+1:ioffset+NVAR,mtlm),1)
+         END DO                    
+         DO j = 1, istage-1
+           joffset = NVAR*(j-1)
+           CALL WAXPY(NVAR,ros_A((istage-1)*(istage-2)/2+j),    &
+                     K(joffset+1:joffset+NVAR),1,Ystage(ioffset+1:ioffset+NVAR),1) 
+           DO mtlm=1,NSOA                    
+              CALL WAXPY(NVAR,ros_A((istage-1)*(istage-2)/2+j), &
+                     K_tlm(joffset+1:joffset+NVAR,mtlm),1,Ystage_tlm(ioffset+1:ioffset+NVAR,mtlm),1) 
+           END DO                    
+         END DO
+         Tau = T + ros_Alpha(istage)*Direction*H
+         CALL ode_Fun(Tau,Ystage(ioffset+1:ioffset+NVAR),Fcn)
+         CALL ode_Jac(Tau,Ystage(ioffset+1:ioffset+NVAR),Jac)
+         DO mtlm=1,NSOA 
+           CALL Jac_SP_Vec ( Jac, Ystage_tlm(ioffset+1:ioffset+NVAR,mtlm), Fcn_tlm(1:NVAR,mtlm) )
+         END DO              
+       END IF ! if istage == 1 elseif ros_NewF(istage)
+       
+       CALL WCOPY(NVAR,Fcn,1,K(ioffset+1:ioffset+NVAR),1)
+       DO mtlm=1,NSOA   
+          CALL WCOPY(NVAR,Fcn_tlm(1:NVAR,mtlm),1,K_tlm(ioffset+1:ioffset+NVAR,mtlm),1)
+       END DO                
+       DO j = 1, istage-1
+         HC = ros_C((istage-1)*(istage-2)/2+j)/(Direction*H)
+         CALL WAXPY(NVAR,HC,K(NVAR*(j-1)+1:NVAR*j),1,K(ioffset+1:ioffset+NVAR),1)
+         DO mtlm=1,NSOA 
+           CALL WAXPY(NVAR,HC,K_tlm(NVAR*(j-1)+1:NVAR*j,mtlm),1,K_tlm(ioffset+1:ioffset+NVAR,mtlm),1)
+         END DO              
+       END DO
+       IF ((.NOT. Autonomous).AND.(ros_Gamma(istage).NE.ZERO)) THEN
+         HG = Direction*H*ros_Gamma(istage)
+         CALL WAXPY(NVAR,HG,dFdT,1,K(ioffset+1:ioffset+NVAR),1)
+         DO mtlm=1,NSOA 
+           CALL Jac_SP_Vec ( dJdT, Ystage_tlm(ioffset+1:ioffset+NVAR,mtlm), Fcn_tlm(1:NVAR,mtlm) )
+           CALL WAXPY(NVAR,HG,Fcn_tlm(1:NVAR,mtlm),1,K_tlm(ioffset+1:ioffset+NVAR,mtlm),1)
+         END DO              
+       END IF
+       CALL ros_Solve('N', Ghimj, Pivot, K(ioffset+1:ioffset+NVAR))
+       DO mtlm=1,NSOA   
+         CALL Hess_Vec ( Hes0,  K(ioffset+1:ioffset+NVAR), Y_tlm(1:NVAR,mtlm), Tmp )
+         CALL WAXPY(NVAR,ONE,Tmp,1,K_tlm(ioffset+1:ioffset+NVAR,mtlm),1)
+         CALL ros_Solve('N', Ghimj, Pivot, K_tlm(ioffset+1:ioffset+NVAR,mtlm))
+       END DO                
+      
+   END DO Stage     
+            
+
+!~~~>  Compute the new solution 
+   CALL WCOPY(NVAR,Y,1,Ynew,1)
+   DO j=1,ros_S
+      CALL WAXPY(NVAR,ros_M(j),K(NVAR*(j-1)+1:NVAR*j),1,Ynew,1)
+   END DO
+   DO mtlm=1,NSOA       
+     CALL WCOPY(NVAR,Y_tlm(1:NVAR,mtlm),1,Ynew_tlm(1:NVAR,mtlm),1)
+     DO j=1,ros_S
+       joffset = NVAR*(j-1)
+       CALL WAXPY(NVAR,ros_M(j),K_tlm(joffset+1:joffset+NVAR,mtlm),1,Ynew_tlm(1:NVAR,mtlm),1)
+     END DO
+   END DO
+
+!~~~>  Compute the error estimation 
+   CALL WSCAL(NVAR,ZERO,Yerr,1)
+   DO j=1,ros_S     
+        CALL WAXPY(NVAR,ros_E(j),K(NVAR*(j-1)+1:NVAR*j),1,Yerr,1)
+   END DO 
+   Err = ros_ErrorNorm ( Y, Ynew, Yerr, AbsTol, RelTol, VectorTol )
+
+!~~~> New step size is bounded by FacMin <= Hnew/H <= FacMax
+   Fac  = MIN(FacMax,MAX(FacMin,FacSafe/Err**(ONE/ros_ELO)))
+   Hnew = H*Fac  
+
+!~~~>  Check the error magnitude and adjust step size
+   Nstp = Nstp+1
+   IF ( (Err <= ONE).OR.(H <= Hmin) ) THEN  !~~~> Accept step
+      Nacc = Nacc+1
+      !~~~>  Checkpoints for stage values and vectors
+      CALL ros_DPush( ros_S, NSOA, T, H, Ystage, K, Ystage_tlm, K_tlm )
+      !~~~>  Accept new solution, etc.
+      CALL WCOPY(NVAR,Ynew,1,Y,1)
+      CALL WCOPY(NVAR*NSOA,Ynew_tlm,1,Y_tlm,1)
+      T = T + Direction*H
+      Hnew = MAX(Hmin,MIN(Hnew,Hmax))
+      IF (RejectLastH) THEN  ! No step size increase after a rejected step
+         Hnew = MIN(Hnew,H) 
+      END IF   
+      RejectLastH = .FALSE.  
+      RejectMoreH = .FALSE.
+      H = Hnew
+      EXIT UntilAccepted ! EXIT THE LOOP: WHILE STEP NOT ACCEPTED
+   ELSE           !~~~> Reject step
+      IF (RejectMoreH) THEN
+         Hnew = H*FacRej
+      END IF   
+      RejectMoreH = RejectLastH
+      RejectLastH = .TRUE.
+      H = Hnew
+      IF (Nacc >= 1) THEN
+         Nrej = Nrej+1
+      END IF    
+   END IF ! Err <= 1
+
+   END DO UntilAccepted 
+
+   END DO TimeLoop 
+   
+!~~~> Succesful exit
+   IERR = 1  !~~~> The integration was successful
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  END SUBROUTINE ros_TlmInt
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   
+   
+     
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE ros_SoaInt (                         &
+        NSOA, Lambda, Sigma,                     &
+        Tstart, Tend, T,                         &
+        AbsTol, RelTol,                          &
+        ode_Fun, ode_Jac, ode_Hess,              &
+!~~~> RosenbrockSOA method coefficients     
+        ros_S, ros_M, ros_E, ros_A, ros_C,       &
+        ros_Alpha, ros_Gamma, ros_ELO, ros_NewF, &
+!~~~> Integration parameters
+        Autonomous, VectorTol, Max_no_steps,     &
+        Roundoff, Hmin, Hmax, Hstart,            &
+        FacMin, FacMax, FacRej, FacSafe,         &
+!~~~> Error indicator
+        IERR )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!   Template for the implementation of a generic RosenbrockSOA method 
+!      defined by ros_S (no of stages)  
+!      and its coefficients ros_{A,C,M,E,Alpha,Gamma}
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  IMPLICIT NONE
+   
+!~~~> Input: the initial condition at Tstart; Output: the solution at T   
+   INTEGER, INTENT(IN)     :: NSOA
+!~~~> First order adjoint   
+   KPP_REAL, INTENT(INOUT) :: Lambda(NVAR)
+!~~~> Second order adjoint   
+   KPP_REAL, INTENT(INOUT) :: Sigma(NVAR,NSOA)
+!~~~> Input: integration interval   
+   KPP_REAL, INTENT(IN) :: Tstart,Tend      
+!~~~> Output: time at which the solution is returned (T=Tend if success)   
+   KPP_REAL, INTENT(OUT) ::  T      
+!~~~> Input: tolerances      
+   KPP_REAL, INTENT(IN) ::  AbsTol(NVAR), RelTol(NVAR)
+!~~~> Input: ode function and its Jacobian      
+   EXTERNAL ode_Fun, ode_Jac, ode_Hess
+!~~~> Input: The RosenbrockSOA method parameters   
+   INTEGER, INTENT(IN) ::  ros_S
+   KPP_REAL, INTENT(IN) :: ros_M(ros_S), ros_E(ros_S),  & 
+       ros_Alpha(ros_S), ros_A(ros_S*(ros_S-1)/2),      &
+       ros_Gamma(ros_S), ros_C(ros_S*(ros_S-1)/2), ros_ELO
+   LOGICAL, INTENT(IN) :: ros_NewF(ros_S)
+!~~~> Input: integration parameters   
+   LOGICAL, INTENT(IN) :: Autonomous, VectorTol
+   KPP_REAL, INTENT(IN) :: Hstart, Hmin, Hmax
+   INTEGER, INTENT(IN) :: Max_no_steps
+   KPP_REAL, INTENT(IN) :: Roundoff, FacMin, FacMax, FacRej, FacSafe 
+!~~~> Output: Error indicator
+   INTEGER, INTENT(OUT) :: IERR
+! ~~~~ Local variables        
+   !KPP_REAL :: Ystage_adj(NVAR,NSOA)
+   !KPP_REAL :: dFdT(NVAR)
+   KPP_REAL :: Ystage(NVAR*ros_S), K(NVAR*ros_S)
+   KPP_REAL :: Ystage_tlm(NVAR*ros_S,NSOA), K_tlm(NVAR*ros_S,NSOA)
+   KPP_REAL :: U(NVAR*ros_S), V(NVAR*ros_S)
+   KPP_REAL :: W(NVAR*ros_S,NSOA), Z(NVAR*ros_S,NSOA)
+   KPP_REAL :: Jac(LU_NONZERO), dJdT(LU_NONZERO), Ghimj(LU_NONZERO)
+   KPP_REAL :: Hes0(NHESS), Hes1(NHESS), dHdT(NHESS)
+   KPP_REAL :: Tmp(NVAR), Tmp2(NVAR)
+   KPP_REAL :: H, HC, HA, Tau 
+   INTEGER :: Pivot(NVAR), Direction, i, ioffset, joffset
+   INTEGER :: msoa, j, istage
+!~~~>  Local parameters
+   KPP_REAL, PARAMETER :: ZERO = 0.0d0, ONE  = 1.0d0 
+   KPP_REAL, PARAMETER :: DeltaMin = 1.0d-5
+!~~~>  Locally called functions
+!    KPP_REAL WLAMCH
+!   EXTERNAL WLAMCH
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+   
+   
+   IF (Tend  >=  Tstart) THEN
+     Direction = +1
+   ELSE
+     Direction = -1
+   END IF               
+
+!~~~> Time loop begins below 
+TimeLoop: DO WHILE ( stack_ptr > 0 )
+        
+   !~~~>  Recover checkpoints for stage values and vectors
+   CALL ros_DPop( ros_S, NSOA, T, H, Ystage, K, Ystage_tlm, K_tlm )
+
+   Nstp = Nstp+1
+
+!~~~>    Compute LU decomposition 
+   CALL ode_Jac(T,Ystage(1:NVAR),Ghimj)
+   CALL WSCAL(LU_NONZERO,(-ONE),Ghimj,1)
+   Tau = ONE/(Direction*H*ros_Gamma(1))
+   DO i=1,NVAR
+       Ghimj(LU_DIAG(i)) = Ghimj(LU_DIAG(i))+Tau
+   END DO
+   CALL ros_Decomp( Ghimj, Pivot, j )
+            
+!~~~>   Compute Hessian at the beginning of the interval
+   CALL ode_Hess(T,Ystage(1),Hes0)
+   
+!~~~>   Compute the stages
+Stage: DO istage = ros_S, 1, -1
+      
+      !~~~> Current istage offset. 
+       ioffset = NVAR*(istage-1)
+      
+      !~~~> Compute U
+       CALL WCOPY(NVAR,Lambda,1,U(ioffset+1:ioffset+NVAR),1)
+       CALL WSCAL(NVAR,ros_M(istage),U(ioffset+1:ioffset+NVAR),1)
+       DO j = istage+1, ros_S
+         joffset = NVAR*(j-1)
+         HA = ros_A((j-1)*(j-2)/2+istage)
+         HC = ros_C((j-1)*(j-2)/2+istage)/(Direction*H)
+         CALL WAXPY(NVAR,HA,V(joffset+1:joffset+NVAR),1,U(ioffset+1:ioffset+NVAR),1) 
+         CALL WAXPY(NVAR,HC,U(joffset+1:joffset+NVAR),1,U(ioffset+1:ioffset+NVAR),1) 
+       END DO
+       CALL ros_Solve('T', Ghimj, Pivot, U(ioffset+1:ioffset+NVAR))
+      !~~~> Compute W
+       DO msoa = 1, NSOA
+         CALL WCOPY(NVAR,Sigma(1:NVAR,msoa),1,W(ioffset+1:ioffset+NVAR,msoa),1)
+         CALL WSCAL(NVAR,ros_M(istage),W(ioffset+1:ioffset+NVAR,msoa),1)
+       END DO
+       DO j = istage+1, ros_S
+         joffset = NVAR*(j-1)
+         HA = ros_A((j-1)*(j-2)/2+istage)
+         HC = ros_C((j-1)*(j-2)/2+istage)/(Direction*H)
+         DO msoa = 1, NSOA
+           CALL WAXPY(NVAR,HA,   &
+               Z(joffset+1:joffset+NVAR,msoa),1,W(ioffset+1:ioffset+NVAR,msoa),1) 
+           CALL WAXPY(NVAR,HC,   &
+               W(joffset+1:joffset+NVAR,msoa),1,W(ioffset+1:ioffset+NVAR,msoa),1) 
+         END DO
+       END DO
+       DO msoa = 1, NSOA
+         CALL HessTR_Vec( Hes0, U(ioffset+1:ioffset+NVAR), Ystage_tlm(ioffset+1:ioffset+NVAR,msoa), Tmp )
+         CALL WAXPY(NVAR,ONE,Tmp,1,W(ioffset+1:ioffset+NVAR,msoa),1)
+         CALL ros_Solve('T', Ghimj, Pivot, W(ioffset+1:ioffset+NVAR,msoa))
+       END DO       
+      !~~~> Compute V 
+       Tau = T + ros_Alpha(istage)*Direction*H
+       CALL ode_Jac(Tau,Ystage(ioffset+1:ioffset+NVAR),Jac)
+       CALL JacTR_SP_Vec(Jac,U(ioffset+1:ioffset+NVAR),V(ioffset+1:ioffset+NVAR)) 
+      !~~~> Compute Z 
+       CALL ode_Hess(T,Ystage(ioffset+1:ioffset+NVAR),Hes1)
+       DO msoa = 1, NSOA
+         CALL JacTR_SP_Vec(Jac,W(ioffset+1:ioffset+NVAR,msoa),Z(ioffset+1:ioffset+NVAR,msoa)) 
+         CALL HessTR_Vec( Hes1, U(ioffset+1:ioffset+NVAR), Ystage_tlm(ioffset+1:ioffset+NVAR,msoa), Tmp )
+         CALL WAXPY(NVAR,ONE,Tmp,1,Z(ioffset+1:ioffset+NVAR,msoa),1)
+       END DO  
+             
+   END DO Stage     
+
+   IF (.NOT.Autonomous) THEN
+!~~~>  Compute the Jacobian derivative with respect to T. 
+!      Last "Jac" computed for stage 1
+      CALL ros_JacTimeDerivative ( T, Roundoff, Ystage(1),        &
+                Jac, ode_Jac, dJdT )
+!~~~>  Compute the Hessian derivative with respect to T. 
+!      Last "Jac" computed for stage 1
+      CALL ros_HesTimeDerivative ( T, Roundoff, Ystage(1),        &
+                Hes0, ode_Hess, dHdT )
+   END IF
+
+!~~~>  Compute the new solution 
+   
+      !~~~>  Compute Lambda 
+      DO istage=1,ros_S
+         ioffset = NVAR*(istage-1)
+         ! Add V_i
+         CALL WAXPY(NVAR,ONE,V(ioffset+1:ioffset+NVAR),1,Lambda,1)
+         ! Add (H0xK_i)^T * U_i
+         CALL HessTR_Vec ( Hes0, U(ioffset+1:ioffset+NVAR), K(ioffset+1:ioffset+NVAR), Tmp )
+         CALL WAXPY(NVAR,ONE,Tmp,1,Lambda,1)
+      END DO
+     ! Add H * dJac_dT_0^T * \sum(gamma_i U_i)
+     ! Tmp holds sum gamma_i U_i
+      IF (.NOT.Autonomous) THEN
+        Tmp(1:NVAR) = ZERO
+        DO istage = 1, ros_S
+          ioffset = NVAR*(istage-1)
+          CALL WAXPY(NVAR,ros_Gamma(istage),U(ioffset+1:ioffset+NVAR),1,Tmp,1)
+        END DO  
+        CALL JacTR_SP_Vec(dJdT,Tmp,Tmp2) 
+        CALL WAXPY(NVAR,H,Tmp2,1,Lambda,1)
+      END IF ! .NOT.Autonomous
+      
+      !~~~>  Compute Sigma 
+    DO msoa = 1, NSOA
+    
+      DO istage=1,ros_S
+         ioffset = NVAR*(istage-1)
+         ! Add Z_i
+         CALL WAXPY(NVAR,ONE,Z(ioffset+1:ioffset+NVAR,msoa),1,Sigma(1:NVAR,msoa),1)
+         ! Add (Hess_0 x K_i)^T * W_i
+         CALL HessTR_Vec ( Hes0, W(ioffset+1:ioffset+NVAR,msoa), K(ioffset+1:ioffset+NVAR), Tmp )
+         CALL WAXPY(NVAR,ONE,Tmp,1,Sigma(1:NVAR,msoa),1)
+         ! Add (Hess_0 x K_tlm_i)^T * U_i
+         CALL HessTR_Vec ( Hes0, U(ioffset+1:ioffset+NVAR), K_tlm(ioffset+1:ioffset+NVAR,msoa), Tmp )
+         CALL WAXPY(NVAR,ONE,Tmp,1,Sigma(1:NVAR,msoa),1)
+      END DO  
+      
+      !~~~> Add high derivative terms
+      DO istage=1,ros_S
+         ioffset = NVAR*(istage-1)
+         CALL ros_HighDerivative ( T, Roundoff, Ystage(1), Hes0, K(ioffset+1:ioffset+NVAR), &
+                 U(ioffset+1:ioffset+NVAR), Ystage_tlm(1:NVAR,msoa), ode_Hess, Tmp)
+         CALL WAXPY(NVAR,ONE,Tmp,1,Sigma(1:NVAR,msoa),1)
+      END DO  
+
+      IF (.NOT.Autonomous) THEN
+        ! Add H * dJac_dT_0^T * \sum(gamma_i W_i)
+        ! Tmp holds sum gamma_i W_i
+        Tmp(1:NVAR) = ZERO
+        DO istage = 1, ros_S
+          ioffset = NVAR*(istage-1)
+          CALL WAXPY(NVAR,ros_Gamma(istage),W(ioffset+1:ioffset+NVAR,msoa),1,Tmp,1)
+        END DO  
+        CALL JacTR_SP_Vec(dJdT,Tmp,Tmp2) 
+        CALL WAXPY(NVAR,H,Tmp2,1,Sigma(1:NVAR,msoa),1)
+        ! Add H * ( dHess_dT_0 x Y_tlm_0)^T * \sum(gamma_i U_i)
+        ! Tmp holds sum gamma_i U_i
+        Tmp(1:NVAR) = ZERO
+        DO istage = 1, ros_S
+          ioffset = NVAR*(istage-1)
+          CALL WAXPY(NVAR,ros_Gamma(istage),U(ioffset+1:ioffset+NVAR),1,Tmp,1)
+        END DO  
+        CALL HessTR_Vec ( dHdT, Tmp, Ystage_tlm(ioffset+1:ioffset+NVAR,msoa), Tmp2 )
+        CALL WAXPY(NVAR,H,Tmp2,1,Sigma(1:NVAR,msoa),1)
+      END IF ! .NOT.Autonomous
+      
+    END DO ! msoa
+
+
+   END DO TimeLoop 
+   
+!~~~> Save last state
+   
+!~~~> Succesful exit
+   IERR = 1  !~~~> The integration was successful
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  END SUBROUTINE ros_SoaInt
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ 
+   
+  
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  KPP_REAL FUNCTION ros_ErrorNorm ( Y, Ynew, Yerr, & 
+               AbsTol, RelTol, VectorTol )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> Computes the "scaled norm" of the error vector Yerr
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   IMPLICIT NONE         
+
+! Input arguments   
+   KPP_REAL, INTENT(IN) :: Y(NVAR), Ynew(NVAR),    &
+          Yerr(NVAR), AbsTol(NVAR), RelTol(NVAR)
+   LOGICAL, INTENT(IN) ::  VectorTol
+! Local variables     
+   KPP_REAL :: Err, Scale, Ymax   
+   INTEGER  :: i
+   KPP_REAL, PARAMETER :: ZERO = 0.0d0
+   
+   Err = ZERO
+   DO i=1,NVAR
+     Ymax = MAX(ABS(Y(i)),ABS(Ynew(i)))
+     IF (VectorTol) THEN
+       Scale = AbsTol(i)+RelTol(i)*Ymax
+     ELSE
+       Scale = AbsTol(1)+RelTol(1)*Ymax
+     END IF
+     Err = Err+(Yerr(i)/Scale)**2
+   END DO
+   Err  = SQRT(Err/NVAR)
+
+   ros_ErrorNorm = MAX(Err,1.0d-10)
+   
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  END FUNCTION ros_ErrorNorm
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE ros_FunTimeDerivative ( T, Roundoff, Y, &
+                Fcn0, ode_Fun, dFdT )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> The time partial derivative of the function by finite differences
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   IMPLICIT NONE         
+
+!~~~> Input arguments   
+   KPP_REAL, INTENT(IN) :: T, Roundoff, Y(NVAR), Fcn0(NVAR) 
+   EXTERNAL ode_Fun
+!~~~> Output arguments   
+   KPP_REAL, INTENT(OUT) :: dFdT(NVAR)   
+!~~~> Local variables     
+   KPP_REAL :: Delta  
+   KPP_REAL, PARAMETER :: ONE = 1.0d0, DeltaMin = 1.0d-6
+   
+   Delta = SQRT(Roundoff)*MAX(DeltaMin,ABS(T))
+   CALL ode_Fun(T+Delta,Y,dFdT)
+   CALL WAXPY(NVAR,(-ONE),Fcn0,1,dFdT,1)
+   CALL WSCAL(NVAR,(ONE/Delta),dFdT,1)
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  END SUBROUTINE ros_FunTimeDerivative
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE ros_JacTimeDerivative ( T, Roundoff, Y, &
+                Jac0, ode_Jac, dJdT )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> The time partial derivative of the Jacobian by finite differences
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   IMPLICIT NONE         
+
+!~~~> Input arguments   
+   KPP_REAL, INTENT(IN) :: T, Roundoff, Y(NVAR), Jac0(LU_NONZERO) 
+   EXTERNAL ode_Jac
+!~~~> Output arguments   
+   KPP_REAL, INTENT(OUT) :: dJdT(LU_NONZERO)   
+!~~~> Local variables     
+   KPP_REAL Delta  
+   KPP_REAL, PARAMETER :: ONE = 1.0d0, DeltaMin = 1.0d-6
+   
+   Delta = SQRT(Roundoff)*MAX(DeltaMin,ABS(T))
+   CALL ode_Jac( T+Delta, Y, dJdT )   
+   CALL WAXPY(LU_NONZERO,(-ONE),Jac0,1,dJdT,1)
+   CALL WSCAL(LU_NONZERO,(ONE/Delta),dJdT,1)
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  END SUBROUTINE ros_JacTimeDerivative
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE ros_HesTimeDerivative ( T, Roundoff, Y, Hes0, ode_Hess, dHdT )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> The time partial derivative of the Hessian by finite differences
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   IMPLICIT NONE         
+
+!~~~> Input arguments   
+   KPP_REAL, INTENT(IN) :: T, Roundoff, Y(NVAR), Hes0(NHESS) 
+   EXTERNAL ode_Hess
+!~~~> Output arguments   
+   KPP_REAL, INTENT(OUT) :: dHdT(NHESS)   
+!~~~> Local variables     
+   KPP_REAL Delta  
+   KPP_REAL, PARAMETER :: ONE = 1.0d0, DeltaMin = 1.0d-6
+   
+   Delta = SQRT(Roundoff)*MAX(DeltaMin,ABS(T))
+   CALL ode_Hess( T+Delta, Y, dHdT )   
+   CALL WAXPY(NHESS,(-ONE),Hes0,1,dHdT,1)
+   CALL WSCAL(NHESS,(ONE/Delta),dHdT,1)
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  END SUBROUTINE ros_HesTimeDerivative
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE ros_HighDerivative ( T, Roundoff, Y, Hes0, K, U, Y_tlm, &
+                                  ode_Hess, Term)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> High order derivative by finite differences:
+!     d/dy { (Hes0 x K_i)^T * U_i } * Y_tlm
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   IMPLICIT NONE         
+
+!~~~> Input arguments   
+   KPP_REAL, INTENT(IN) :: T, Roundoff, Y(NVAR), Hes0(NHESS) 
+   KPP_REAL, INTENT(IN) :: K(NVAR), U(NVAR), Y_tlm(NVAR) 
+   EXTERNAL ode_Hess
+!~~~> Output arguments   
+   KPP_REAL, INTENT(OUT) :: Term(NVAR)   
+!~~~> Local variables     
+   KPP_REAL :: Delta, Y1(NVAR), Hes1(NHESS), Tmp(NVAR)  
+   KPP_REAL, PARAMETER :: ONE = 1.0d0, DeltaMin = 1.0d-6
+   
+   CALL HessTR_Vec ( Hes0, U, K, Tmp )
+   
+   Delta = SQRT(Roundoff)*MAX(DeltaMin,ABS(T))
+   Y1(1:NVAR) = Y(1:NVAR) + Delta*Y_tlm(1:NVAR)
+   CALL ode_Hess( T, Y1, Hes1 )   
+   ! Add (Hess_0 x K_i)^T * U_i
+   CALL HessTR_Vec ( Hes1, U, K, Term )
+
+   CALL WAXPY(NVAR,(-ONE),Tmp,1,Term,1)
+   CALL WSCAL(NVAR,(ONE/Delta),Term,1)
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  END SUBROUTINE ros_HighDerivative
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE ros_PrepareMatrix ( H, Direction, gam, &
+             Jac0, Ghimj, Pivot, Singular )
+! --- --- --- --- --- --- --- --- --- --- --- --- ---
+!  Prepares the LHS matrix for stage calculations
+!  1.  Construct Ghimj = 1/(H*ham) - Jac0
+!      "(Gamma H) Inverse Minus Jacobian"
+!  2.  Repeat LU decomposition of Ghimj until successful.
+!       -half the step size if LU decomposition fails and retry
+!       -exit after 5 consecutive fails
+! --- --- --- --- --- --- --- --- --- --- --- --- ---
+   IMPLICIT NONE         
+   
+!~~~> Input arguments   
+   KPP_REAL, INTENT(IN) ::  gam, Jac0(LU_NONZERO)
+   INTEGER, INTENT(IN) ::  Direction
+!~~~> Output arguments   
+   KPP_REAL, INTENT(OUT) :: Ghimj(LU_NONZERO)
+   LOGICAL, INTENT(OUT) ::  Singular
+   INTEGER, INTENT(OUT) ::  Pivot(NVAR)
+!~~~> Inout arguments   
+   KPP_REAL, INTENT(INOUT) :: H   ! step size is decreased when LU fails
+!~~~> Local variables     
+   INTEGER  :: i, ising, Nconsecutive
+   KPP_REAL ::  ghinv
+   KPP_REAL, PARAMETER :: ONE  = 1.0d0, HALF = 0.5d0
+   
+   Nconsecutive = 0
+   Singular = .TRUE.
+   
+   DO WHILE (Singular)
+   
+!~~~>    Construct Ghimj = 1/(H*ham) - Jac0
+     CALL WCOPY(LU_NONZERO,Jac0,1,Ghimj,1)
+     CALL WSCAL(LU_NONZERO,(-ONE),Ghimj,1)
+     ghinv = ONE/(Direction*H*gam)
+     DO i=1,NVAR
+       Ghimj(LU_DIAG(i)) = Ghimj(LU_DIAG(i))+ghinv
+     END DO
+!~~~>    Compute LU decomposition 
+     CALL ros_Decomp( Ghimj, Pivot, ising )
+     IF (ising == 0) THEN
+!~~~>    If successful done 
+        Singular = .FALSE. 
+     ELSE ! ising .ne. 0
+!~~~>    If unsuccessful half the step size; if 5 consecutive fails then return
+        Nsng = Nsng+1
+        Nconsecutive = Nconsecutive+1
+        Singular = .TRUE. 
+        PRINT*,'Warning: LU Decomposition returned ising = ',ising
+        IF (Nconsecutive <= 5) THEN ! Less than 5 consecutive failed decomps
+           H = H*HALF
+        ELSE  ! More than 5 consecutive failed decompositions
+           RETURN
+        END IF  ! Nconsecutive
+      END IF    ! ising 
+         
+   END DO ! WHILE Singular
+
+  END SUBROUTINE ros_PrepareMatrix
+
+  
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE ros_Decomp( A, Pivot, ising )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!  Template for the LU decomposition   
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   IMPLICIT NONE
+!~~~> Inout variables     
+   KPP_REAL, INTENT(INOUT) :: A(LU_NONZERO)
+!~~~> Output variables     
+   INTEGER, INTENT(OUT) :: Pivot(NVAR), ising
+   
+   CALL KppDecomp ( A, ising )
+!~~~> Note: for a full matrix use Lapack:
+!     CALL  DGETRF( NVAR, NVAR, A, NVAR, Pivot, ising ) 
+   Pivot(1) = 1
+    
+   Ndec = Ndec + 1
+
+  END SUBROUTINE ros_Decomp
+ 
+ 
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE ros_Solve( C, A, Pivot, b )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!  Template for the forward/backward substitution (using pre-computed LU decomp)   
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
+   IMPLICIT NONE
+!~~~> Input variables 
+   CHARACTER, INTENT(IN) :: C    
+   KPP_REAL, INTENT(IN) :: A(LU_NONZERO)
+   INTEGER, INTENT(IN) :: Pivot(NVAR)
+!~~~> InOut variables     
+   KPP_REAL, INTENT(INOUT) :: b(NVAR)
+   
+   SELECT CASE (C)
+     CASE ('N')
+         CALL KppSolve( A, b )
+     CASE ('T')
+         CALL KppSolveTR( A, b, b )
+     CASE DEFAULT
+         PRINT*,'Unknown C = (',C,') in ros_Solve'
+         STOP
+   END SELECT
+!~~~> Note: for a full matrix use Lapack:
+!     NRHS = 1
+!     CALL  DGETRS( C, NVAR , NRHS, A, NVAR, Pivot, b, NVAR, INFO )
+     
+   Nsol = Nsol+1
+
+  END SUBROUTINE ros_Solve
+  
+ 
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE Ros2 (ros_S,ros_A,ros_C,ros_M,ros_E,ros_Alpha,&
+            ros_Gamma,ros_NewF,ros_ELO,ros_Name)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! --- AN L-STABLE METHOD, 2 stages, order 2
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  IMPLICIT NONE
+  
+   INTEGER, PARAMETER :: S = 2
+   INTEGER, INTENT(OUT) ::  ros_S
+   KPP_REAL, DIMENSION(S), INTENT(OUT) :: ros_M,ros_E,ros_Alpha,ros_Gamma
+   KPP_REAL, DIMENSION(S*(S-1)/2), INTENT(OUT) :: ros_A, ros_C
+   KPP_REAL, INTENT(OUT) :: ros_ELO
+   LOGICAL, DIMENSION(S), INTENT(OUT) :: ros_NewF
+   CHARACTER(LEN=12), INTENT(OUT) :: ros_Name
+   KPP_REAL :: g
+   
+    g = 1.0d0 + 1.0d0/SQRT(2.0d0)
+   
+!~~~> Name of the method
+    ros_Name = 'ROS-2'   
+!~~~> Number of stages
+    ros_S = S
+   
+!~~~> The coefficient matrices A and C are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+!   The general mapping formula is:
+!       A(i,j) = ros_A( (i-1)*(i-2)/2 + j )    
+!       C(i,j) = ros_C( (i-1)*(i-2)/2 + j )  
+   
+    ros_A(1) = (1.d0)/g
+    ros_C(1) = (-2.d0)/g
+!~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+    ros_NewF(1) = .TRUE.
+    ros_NewF(2) = .TRUE.
+!~~~> M_i = Coefficients for new step solution
+    ros_M(1)= (3.d0)/(2.d0*g)
+    ros_M(2)= (1.d0)/(2.d0*g)
+! E_i = Coefficients for error estimator    
+    ros_E(1) = 1.d0/(2.d0*g)
+    ros_E(2) = 1.d0/(2.d0*g)
+!~~~> ros_ELO = estimator of local order - the minimum between the
+!    main and the embedded scheme orders plus one
+    ros_ELO = 2.0d0    
+!~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+    ros_Alpha(1) = 0.0d0
+    ros_Alpha(2) = 1.0d0 
+!~~~> Gamma_i = \sum_j  gamma_{i,j}    
+    ros_Gamma(1) = g
+    ros_Gamma(2) =-g
+   
+ END SUBROUTINE Ros2
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE Ros3 (ros_S,ros_A,ros_C,ros_M,ros_E,ros_Alpha,&
+           ros_Gamma,ros_NewF,ros_ELO,ros_Name)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! --- AN L-STABLE METHOD, 3 stages, order 3, 2 function evaluations
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  
+  IMPLICIT NONE
+  
+   INTEGER, PARAMETER :: S = 3
+   INTEGER, INTENT(OUT) ::  ros_S
+   KPP_REAL, DIMENSION(S), INTENT(OUT) :: ros_M,ros_E,ros_Alpha,ros_Gamma
+   KPP_REAL, DIMENSION(S*(S-1)/2), INTENT(OUT) :: ros_A, ros_C
+   KPP_REAL, INTENT(OUT) :: ros_ELO
+   LOGICAL, DIMENSION(S), INTENT(OUT) :: ros_NewF
+   CHARACTER(LEN=12), INTENT(OUT) :: ros_Name
+   
+!~~~> Name of the method
+   ros_Name = 'ROS-3'   
+!~~~> Number of stages
+   ros_S = S
+   
+!~~~> The coefficient matrices A and C are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+!   The general mapping formula is:
+!       A(i,j) = ros_A( (i-1)*(i-2)/2 + j )    
+!       C(i,j) = ros_C( (i-1)*(i-2)/2 + j )  
+     
+   ros_A(1)= 1.d0
+   ros_A(2)= 1.d0
+   ros_A(3)= 0.d0
+
+   ros_C(1) = -0.10156171083877702091975600115545d+01
+   ros_C(2) =  0.40759956452537699824805835358067d+01
+   ros_C(3) =  0.92076794298330791242156818474003d+01
+!~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+   ros_NewF(1) = .TRUE.
+   ros_NewF(2) = .TRUE.
+   ros_NewF(3) = .FALSE.
+!~~~> M_i = Coefficients for new step solution
+   ros_M(1) =  0.1d+01
+   ros_M(2) =  0.61697947043828245592553615689730d+01
+   ros_M(3) = -0.42772256543218573326238373806514d+00
+! E_i = Coefficients for error estimator    
+   ros_E(1) =  0.5d+00
+   ros_E(2) = -0.29079558716805469821718236208017d+01
+   ros_E(3) =  0.22354069897811569627360909276199d+00
+!~~~> ros_ELO = estimator of local order - the minimum between the
+!    main and the embedded scheme orders plus 1
+   ros_ELO = 3.0d0    
+!~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+   ros_Alpha(1)= 0.0d+00
+   ros_Alpha(2)= 0.43586652150845899941601945119356d+00
+   ros_Alpha(3)= 0.43586652150845899941601945119356d+00
+!~~~> Gamma_i = \sum_j  gamma_{i,j}    
+   ros_Gamma(1)= 0.43586652150845899941601945119356d+00
+   ros_Gamma(2)= 0.24291996454816804366592249683314d+00
+   ros_Gamma(3)= 0.21851380027664058511513169485832d+01
+
+  END SUBROUTINE Ros3
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE Ros4 (ros_S,ros_A,ros_C,ros_M,ros_E,ros_Alpha,&
+           ros_Gamma,ros_NewF,ros_ELO,ros_Name)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!     L-STABLE ROSENBROCK METHOD OF ORDER 4, WITH 4 STAGES
+!     L-STABLE EMBEDDED ROSENBROCK METHOD OF ORDER 3 
+!
+!      E. HAIRER AND G. WANNER, SOLVING ORDINARY DIFFERENTIAL
+!      EQUATIONS II. STIFF AND DIFFERENTIAL-ALGEBRAIC PROBLEMS.
+!      SPRINGER SERIES IN COMPUTATIONAL MATHEMATICS,
+!      SPRINGER-VERLAG (1990)         
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  IMPLICIT NONE
+  
+   INTEGER, PARAMETER :: S=4
+   INTEGER, INTENT(OUT) ::  ros_S
+   KPP_REAL, DIMENSION(S), INTENT(OUT) :: ros_M,ros_E,ros_Alpha,ros_Gamma
+   KPP_REAL, DIMENSION(S*(S-1)/2), INTENT(OUT) :: ros_A, ros_C
+   KPP_REAL, INTENT(OUT) :: ros_ELO
+   LOGICAL, DIMENSION(S), INTENT(OUT) :: ros_NewF
+   CHARACTER(LEN=12), INTENT(OUT) :: ros_Name
+   
+   
+!~~~> Name of the method
+   ros_Name = 'ROS-4'   
+!~~~> Number of stages
+   ros_S = S
+   
+!~~~> The coefficient matrices A and C are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+!   The general mapping formula is:
+!       A(i,j) = ros_A( (i-1)*(i-2)/2 + j )    
+!       C(i,j) = ros_C( (i-1)*(i-2)/2 + j )  
+     
+   ros_A(1) = 0.2000000000000000d+01
+   ros_A(2) = 0.1867943637803922d+01
+   ros_A(3) = 0.2344449711399156d+00
+   ros_A(4) = ros_A(2)
+   ros_A(5) = ros_A(3)
+   ros_A(6) = 0.0D0
+
+   ros_C(1) =-0.7137615036412310d+01
+   ros_C(2) = 0.2580708087951457d+01
+   ros_C(3) = 0.6515950076447975d+00
+   ros_C(4) =-0.2137148994382534d+01
+   ros_C(5) =-0.3214669691237626d+00
+   ros_C(6) =-0.6949742501781779d+00
+!~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+   ros_NewF(1)  = .TRUE.
+   ros_NewF(2)  = .TRUE.
+   ros_NewF(3)  = .TRUE.
+   ros_NewF(4)  = .FALSE.
+!~~~> M_i = Coefficients for new step solution
+   ros_M(1) = 0.2255570073418735d+01
+   ros_M(2) = 0.2870493262186792d+00
+   ros_M(3) = 0.4353179431840180d+00
+   ros_M(4) = 0.1093502252409163d+01
+!~~~> E_i  = Coefficients for error estimator    
+   ros_E(1) =-0.2815431932141155d+00
+   ros_E(2) =-0.7276199124938920d-01
+   ros_E(3) =-0.1082196201495311d+00
+   ros_E(4) =-0.1093502252409163d+01
+!~~~> ros_ELO  = estimator of local order - the minimum between the
+!    main and the embedded scheme orders plus 1
+   ros_ELO  = 4.0d0    
+!~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+   ros_Alpha(1) = 0.D0
+   ros_Alpha(2) = 0.1145640000000000d+01
+   ros_Alpha(3) = 0.6552168638155900d+00
+   ros_Alpha(4) = ros_Alpha(3)
+!~~~> Gamma_i = \sum_j  gamma_{i,j}    
+   ros_Gamma(1) = 0.5728200000000000d+00
+   ros_Gamma(2) =-0.1769193891319233d+01
+   ros_Gamma(3) = 0.7592633437920482d+00
+   ros_Gamma(4) =-0.1049021087100450d+00
+
+  END SUBROUTINE Ros4
+   
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE Rodas3 (ros_S,ros_A,ros_C,ros_M,ros_E,ros_Alpha,&
+            ros_Gamma,ros_NewF,ros_ELO,ros_Name)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! --- A STIFFLY-STABLE METHOD, 4 stages, order 3
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  IMPLICIT NONE
+  
+   INTEGER, PARAMETER :: S=4
+   INTEGER, INTENT(OUT) ::  ros_S
+   KPP_REAL, DIMENSION(S), INTENT(OUT) :: ros_M,ros_E,ros_Alpha,ros_Gamma
+   KPP_REAL, DIMENSION(S*(S-1)/2), INTENT(OUT) :: ros_A, ros_C
+   KPP_REAL, INTENT(OUT) :: ros_ELO
+   LOGICAL, DIMENSION(S), INTENT(OUT) :: ros_NewF
+   CHARACTER(LEN=12), INTENT(OUT) :: ros_Name
+   
+   
+!~~~> Name of the method
+   ros_Name = 'RODAS-3'   
+!~~~> Number of stages
+   ros_S = S
+   
+!~~~> The coefficient matrices A and C are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+!   The general mapping formula is:
+!       A(i,j) = ros_A( (i-1)*(i-2)/2 + j )    
+!       C(i,j) = ros_C( (i-1)*(i-2)/2 + j )  
+ 
+   ros_A(1) = 0.0d+00
+   ros_A(2) = 2.0d+00
+   ros_A(3) = 0.0d+00
+   ros_A(4) = 2.0d+00
+   ros_A(5) = 0.0d+00
+   ros_A(6) = 1.0d+00
+
+   ros_C(1) = 4.0d+00
+   ros_C(2) = 1.0d+00
+   ros_C(3) =-1.0d+00
+   ros_C(4) = 1.0d+00
+   ros_C(5) =-1.0d+00 
+   ros_C(6) =-(8.0d+00/3.0d+00) 
+         
+!~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+   ros_NewF(1)  = .TRUE.
+   ros_NewF(2)  = .FALSE.
+   ros_NewF(3)  = .TRUE.
+   ros_NewF(4)  = .TRUE.
+!~~~> M_i = Coefficients for new step solution
+   ros_M(1) = 2.0d+00
+   ros_M(2) = 0.0d+00
+   ros_M(3) = 1.0d+00
+   ros_M(4) = 1.0d+00
+!~~~> E_i  = Coefficients for error estimator    
+   ros_E(1) = 0.0d+00
+   ros_E(2) = 0.0d+00
+   ros_E(3) = 0.0d+00
+   ros_E(4) = 1.0d+00
+!~~~> ros_ELO  = estimator of local order - the minimum between the
+!    main and the embedded scheme orders plus 1
+   ros_ELO  = 3.0d+00    
+!~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+   ros_Alpha(1) = 0.0d+00
+   ros_Alpha(2) = 0.0d+00
+   ros_Alpha(3) = 1.0d+00
+   ros_Alpha(4) = 1.0d+00
+!~~~> Gamma_i = \sum_j  gamma_{i,j}    
+   ros_Gamma(1) = 0.5d+00
+   ros_Gamma(2) = 1.5d+00
+   ros_Gamma(3) = 0.0d+00
+   ros_Gamma(4) = 0.0d+00
+
+  END SUBROUTINE Rodas3
+    
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE Rodas4 (ros_S,ros_A,ros_C,ros_M,ros_E,ros_Alpha,&
+             ros_Gamma,ros_NewF,ros_ELO,ros_Name)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!     STIFFLY-STABLE ROSENBROCK METHOD OF ORDER 4, WITH 6 STAGES
+!
+!      E. HAIRER AND G. WANNER, SOLVING ORDINARY DIFFERENTIAL
+!      EQUATIONS II. STIFF AND DIFFERENTIAL-ALGEBRAIC PROBLEMS.
+!      SPRINGER SERIES IN COMPUTATIONAL MATHEMATICS,
+!      SPRINGER-VERLAG (1996)         
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  IMPLICIT NONE
+  
+   INTEGER, PARAMETER :: S=6
+   INTEGER, INTENT(OUT) ::  ros_S
+   KPP_REAL, DIMENSION(S), INTENT(OUT) :: ros_M,ros_E,ros_Alpha,ros_Gamma
+   KPP_REAL, DIMENSION(S*(S-1)/2), INTENT(OUT) :: ros_A, ros_C
+   KPP_REAL, INTENT(OUT) :: ros_ELO
+   LOGICAL, DIMENSION(S), INTENT(OUT) :: ros_NewF
+   CHARACTER(LEN=12), INTENT(OUT) :: ros_Name
+   
+
+!~~~> Name of the method
+    ros_Name = 'RODAS-4'   
+!~~~> Number of stages
+    ros_S = S
+
+!~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+    ros_Alpha(1) = 0.000d0
+    ros_Alpha(2) = 0.386d0
+    ros_Alpha(3) = 0.210d0 
+    ros_Alpha(4) = 0.630d0
+    ros_Alpha(5) = 1.000d0
+    ros_Alpha(6) = 1.000d0
+        
+!~~~> Gamma_i = \sum_j  gamma_{i,j}    
+    ros_Gamma(1) = 0.2500000000000000d+00
+    ros_Gamma(2) =-0.1043000000000000d+00
+    ros_Gamma(3) = 0.1035000000000000d+00
+    ros_Gamma(4) =-0.3620000000000023d-01
+    ros_Gamma(5) = 0.0d0
+    ros_Gamma(6) = 0.0d0
+
+!~~~> The coefficient matrices A and C are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+!   The general mapping formula is:  A(i,j) = ros_A( (i-1)*(i-2)/2 + j )    
+!                  C(i,j) = ros_C( (i-1)*(i-2)/2 + j )  
+     
+    ros_A(1) = 0.1544000000000000d+01
+    ros_A(2) = 0.9466785280815826d+00
+    ros_A(3) = 0.2557011698983284d+00
+    ros_A(4) = 0.3314825187068521d+01
+    ros_A(5) = 0.2896124015972201d+01
+    ros_A(6) = 0.9986419139977817d+00
+    ros_A(7) = 0.1221224509226641d+01
+    ros_A(8) = 0.6019134481288629d+01
+    ros_A(9) = 0.1253708332932087d+02
+    ros_A(10) =-0.6878860361058950d+00
+    ros_A(11) = ros_A(7)
+    ros_A(12) = ros_A(8)
+    ros_A(13) = ros_A(9)
+    ros_A(14) = ros_A(10)
+    ros_A(15) = 1.0d+00
+
+    ros_C(1) =-0.5668800000000000d+01
+    ros_C(2) =-0.2430093356833875d+01
+    ros_C(3) =-0.2063599157091915d+00
+    ros_C(4) =-0.1073529058151375d+00
+    ros_C(5) =-0.9594562251023355d+01
+    ros_C(6) =-0.2047028614809616d+02
+    ros_C(7) = 0.7496443313967647d+01
+    ros_C(8) =-0.1024680431464352d+02
+    ros_C(9) =-0.3399990352819905d+02
+    ros_C(10) = 0.1170890893206160d+02
+    ros_C(11) = 0.8083246795921522d+01
+    ros_C(12) =-0.7981132988064893d+01
+    ros_C(13) =-0.3152159432874371d+02
+    ros_C(14) = 0.1631930543123136d+02
+    ros_C(15) =-0.6058818238834054d+01
+
+!~~~> M_i = Coefficients for new step solution
+    ros_M(1) = ros_A(7)
+    ros_M(2) = ros_A(8)
+    ros_M(3) = ros_A(9)
+    ros_M(4) = ros_A(10)
+    ros_M(5) = 1.0d+00
+    ros_M(6) = 1.0d+00
+
+!~~~> E_i  = Coefficients for error estimator    
+    ros_E(1) = 0.0d+00
+    ros_E(2) = 0.0d+00
+    ros_E(3) = 0.0d+00
+    ros_E(4) = 0.0d+00
+    ros_E(5) = 0.0d+00
+    ros_E(6) = 1.0d+00
+
+!~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+    ros_NewF(1) = .TRUE.
+    ros_NewF(2) = .TRUE.
+    ros_NewF(3) = .TRUE.
+    ros_NewF(4) = .TRUE.
+    ros_NewF(5) = .TRUE.
+    ros_NewF(6) = .TRUE.
+     
+!~~~> ros_ELO  = estimator of local order - the minimum between the
+!        main and the embedded scheme orders plus 1
+    ros_ELO = 4.0d0
+     
+  END SUBROUTINE Rodas4
+  
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE Fun_Template( T, Y, Ydot )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!  Template for the ODE function call.
+!  Updates the rate coefficients (and possibly the fixed species) at each call    
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> Input variables     
+   KPP_REAL T, Y(NVAR)
+!~~~> Output variables     
+   KPP_REAL Ydot(NVAR)
+!~~~> Local variables
+   KPP_REAL Told     
+
+   Told = TIME
+   TIME = T
+   CALL Update_SUN()
+   CALL Update_RCONST()
+   CALL Fun( Y, FIX, RCONST, Ydot )
+   TIME = Told
+     
+   Nfun = Nfun+1
+   
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  END SUBROUTINE Fun_Template
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+ 
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE Jac_Template( T, Y, Jcb )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!  Template for the ODE Jacobian call.
+!  Updates the rate coefficients (and possibly the fixed species) at each call    
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ 
+!~~~> Input variables     
+    KPP_REAL T, Y(NVAR)
+!~~~> Output variables     
+    KPP_REAL Jcb(LU_NONZERO)
+!~~~> Local variables
+    KPP_REAL Told     
+
+    Told = TIME
+    TIME = T   
+    CALL Update_SUN()
+    CALL Update_RCONST()
+    CALL Jac_SP( Y, FIX, RCONST, Jcb )
+    TIME = Told
+     
+    Njac = Njac+1
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  END SUBROUTINE Jac_Template                                      
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE Hess_Template( T, Y, Hes )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!  Template for the ODE Hessian call.
+!  Updates the rate coefficients (and possibly the fixed species) at each call    
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> Input variables     
+    KPP_REAL T, Y(NVAR)
+!~~~> Output variables     
+    KPP_REAL Hes(NHESS)
+!~~~> Local variables
+    KPP_REAL Told     
+
+    Told = TIME
+    TIME = T   
+    CALL Update_SUN()
+    CALL Update_RCONST()
+    CALL Hessian( Y, FIX, RCONST, Hes )
+    TIME = Told
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  END SUBROUTINE Hess_Template                                      
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE ros_AllocateDBuffers( S )
+!~~~>  Allocate buffer space for discrete adjoint
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   INTEGER :: i, S
+   
+   ALLOCATE( buf_H(bufsize), STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed allocation of buffer H'; STOP
+   END IF   
+   ALLOCATE( buf_T(bufsize), STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed allocation of buffer T'; STOP
+   END IF   
+   ALLOCATE( buf_Y(NVAR*S,bufsize), STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed allocation of buffer Y'; STOP
+   END IF   
+   ALLOCATE( buf_K(NVAR*S,bufsize), STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed allocation of buffer K'; STOP
+   END IF   
+   ALLOCATE( buf_Y_tlm(NVAR*S,bufsize), STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed allocation of buffer Y_tlm'; STOP
+   END IF   
+   ALLOCATE( buf_K_tlm(NVAR*S,bufsize), STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed allocation of buffer K_tlm'; STOP
+   END IF   
+ 
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ END SUBROUTINE ros_AllocateDBuffers
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE ros_FreeDBuffers
+!~~~>  Dallocate buffer space for discrete adjoint
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   INTEGER :: i
+   
+   DEALLOCATE( buf_H, STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed deallocation of buffer H'; STOP
+   END IF   
+   DEALLOCATE( buf_T, STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed deallocation of buffer T'; STOP
+   END IF   
+   DEALLOCATE( buf_Y, STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed deallocation of buffer Y'; STOP
+   END IF   
+   DEALLOCATE( buf_K, STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed deallocation of buffer K'; STOP
+   END IF   
+   DEALLOCATE( buf_Y_tlm, STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed deallocation of buffer Y_tlm'; STOP
+   END IF   
+   DEALLOCATE( buf_K_tlm, STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed deallocation of buffer K_tlm'; STOP
+   END IF   
+ 
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ END SUBROUTINE ros_FreeDBuffers
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE ros_DPush( S, NSOA, T, H, Ystage, K, Ystage_tlm, K_tlm )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> Saves the next trajectory snapshot for discrete adjoints
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+   INTEGER, INTENT(IN) :: S    ! no of stages
+   INTEGER, INTENT(IN) :: NSOA ! no of second order adjoints
+   KPP_REAL :: T, H, Ystage(NVAR*S), K(NVAR*S)
+   KPP_REAL :: Ystage_tlm(NVAR*S,NSOA), K_tlm(NVAR*S,NSOA) 
+   
+   stack_ptr = stack_ptr + 1
+   IF ( stack_ptr > bufsize ) THEN
+     PRINT*,'Push failed: buffer overflow'
+     STOP
+   END IF  
+   buf_H( stack_ptr ) = H
+   buf_T( stack_ptr ) = T
+   CALL WCOPY(NVAR*S,Ystage,1,buf_Y(1:NVAR*S,stack_ptr),1)
+   CALL WCOPY(NVAR*S,K,1,buf_K(1:NVAR*S,stack_ptr),1)
+   CALL WCOPY(NVAR*S*NSOA,Ystage_tlm,1,buf_Y_tlm(1:NVAR*S*NSOA,stack_ptr),1)
+   CALL WCOPY(NVAR*S*NSOA,K_tlm,1,buf_K_tlm(1:NVAR*S*NSOA,stack_ptr),1)
+  
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ END SUBROUTINE ros_DPush
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  
+   
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE ros_DPop( S, NSOA, T, H, Ystage, K, Ystage_tlm, K_tlm  )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> Retrieves the next trajectory snapshot for discrete adjoints
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+   INTEGER, INTENT(IN) :: S    ! no of stages
+   INTEGER, INTENT(IN) :: NSOA ! no of second order adjoints
+   KPP_REAL, INTENT(OUT) :: T, H, Ystage(NVAR*S), K(NVAR*S)
+   KPP_REAL, INTENT(OUT) :: Ystage_tlm(NVAR*S,NSOA), K_tlm(NVAR*S,NSOA) 
+   
+   IF ( stack_ptr <= 0 ) THEN
+     PRINT*,'Pop failed: empty buffer'
+     STOP
+   END IF  
+   H = buf_H( stack_ptr )
+   T = buf_T( stack_ptr )
+   CALL WCOPY(NVAR*S,buf_Y(1:NVAR*S,stack_ptr),1,Ystage,1)
+   CALL WCOPY(NVAR*S,buf_K(1:NVAR*S,stack_ptr),1,K,1)
+   CALL WCOPY(NVAR*S*NSOA,buf_Y_tlm(1:NVAR*S*NSOA,stack_ptr),1,Ystage_tlm,1)
+   CALL WCOPY(NVAR*S*NSOA,buf_K_tlm(1:NVAR*S*NSOA,stack_ptr),1,K_tlm,1)
+
+   stack_ptr = stack_ptr - 1
+  
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ END SUBROUTINE ros_DPop
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+END MODULE KPP_ROOT_Integrator
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/rosenbrock_tlm.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/rosenbrock_tlm.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/rosenbrock_tlm.def	(revision 2696)
@@ -0,0 +1,23 @@
+ 
+#FUNCTION AGGREGATE
+#JACOBIAN SPARSE_LU_ROW
+
+#DOUBLE ON 
+#INTFILE rosenbrock_tlm
+
+#INLINE F77_GLOBAL
+      INTEGER Autonomous
+      COMMON /INTGDATA/ Autonomous
+      REAL*8 STEPSTART
+      COMMON /GDATA/ STEPSTART
+#ENDINLINE
+
+#INLINE F77_INIT
+        STEPMIN=0.0001
+        STEPMAX=3600.
+        Autonomous = 1 
+        STEPSTART=STEPMIN
+#ENDINLINE
+
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/rosenbrock_tlm.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/rosenbrock_tlm.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/rosenbrock_tlm.f90	(revision 2696)
@@ -0,0 +1,1357 @@
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
+!  Rosenbrock_TLM - Implementation of the Tangent Linear Model            !
+!               for several Rosenbrock methods:                           !
+!               * Ros2                                                    !
+!               * Ros3                                                    !
+!               * Ros4                                                    !
+!               * Rodas3                                                  !
+!               * Rodas4                                                  !
+!  By default the code employs the KPP sparse linear algebra routines     !
+!  Compile with -DFULL_ALGEBRA to use full linear algebra (LAPACK)        !
+!                                                                         !
+!    (C)  Adrian Sandu, August 2004                                       !
+!    Virginia Polytechnic Institute and State University                  !
+!    Contact: sandu@cs.vt.edu                                             !
+!    Revised by Philipp Miehe and Adrian Sandu, May 2006                  !
+!    This implementation is part of KPP - the Kinetic PreProcessor        !
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
+
+MODULE KPP_ROOT_Integrator
+
+   USE KPP_ROOT_Precision
+   USE KPP_ROOT_Parameters
+   USE KPP_ROOT_Global
+   USE KPP_ROOT_LinearAlgebra
+   USE KPP_ROOT_Rates
+   USE KPP_ROOT_Function
+   USE KPP_ROOT_Jacobian
+   USE KPP_ROOT_Hessian
+   USE KPP_ROOT_Util
+
+   IMPLICIT NONE
+   PUBLIC
+   SAVE
+
+!~~~>  Statistics on the work performed by the Rosenbrock method
+  INTEGER, PARAMETER :: Nfun=1, Njac=2, Nstp=3, Nacc=4, &
+                        Nrej=5, Ndec=6, Nsol=7, Nsng=8, &
+                        Nhes=9, Ntexit=1, Nhexit=2, Nhnew = 3
+
+
+CONTAINS ! Functions in the module KPP_ROOT_Integrator
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+SUBROUTINE INTEGRATE_TLM( NTLM, Y, Y_tlm, TIN, TOUT, ATOL_tlm, RTOL_tlm,&
+       ICNTRL_U, RCNTRL_U, ISTATUS_U, RSTATUS_U )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   IMPLICIT NONE        
+    
+!~~~> Y - Concentrations
+   KPP_REAL :: Y(NVAR)
+!~~~> NTLM - No. of sensitivity coefficients
+   INTEGER NTLM
+!~~~> Y_tlm - Sensitivities of concentrations
+!     Note: Y_tlm (1:NVAR,j) contains sensitivities of
+!               Y(1:NVAR) w.r.t. the j-th parameter, j=1...NTLM
+   KPP_REAL :: Y_tlm(NVAR,NTLM)
+   KPP_REAL, INTENT(IN)         :: TIN  ! TIN  - Start Time
+   KPP_REAL, INTENT(IN)         :: TOUT ! TOUT - End Time
+!~~~> Optional input parameters and statistics
+   INTEGER,  INTENT(IN),  OPTIONAL :: ICNTRL_U(20)
+   KPP_REAL, INTENT(IN),  OPTIONAL :: RCNTRL_U(20)
+   INTEGER,  INTENT(OUT), OPTIONAL :: ISTATUS_U(20)
+   KPP_REAL, INTENT(OUT), OPTIONAL :: RSTATUS_U(20)
+   KPP_REAL, INTENT(IN),  OPTIONAL :: RTOL_tlm(NVAR,NTLM),ATOL_tlm(NVAR,NTLM)
+
+   INTEGER, SAVE :: IERR
+   KPP_REAL ::  RCNTRL(20), RSTATUS(20)
+   INTEGER ::   ICNTRL(20), ISTATUS(20)
+   INTEGER, SAVE :: Ntotal = 0
+
+   ICNTRL(1:20)  = 0
+   RCNTRL(1:20)  = 0.0_dp
+   ISTATUS(1:20) = 0
+   RSTATUS(1:20) = 0.0_dp
+   
+   ICNTRL(1) = 0       ! non-autonomous
+   ICNTRL(2) = 1       ! vector tolerances
+   ICNTRL(3) = 5       ! choice of the method
+   ICNTRL(12) = 1      ! 0 - fwd trunc error only, 1 - tlm trunc error
+   RCNTRL(3) = STEPMIN ! starting step
+
+   ! if optional parameters are given, and if they are >=0, then they overwrite default settings
+   IF (PRESENT(ICNTRL_U)) THEN
+     WHERE(ICNTRL_U(:) >= 0) ICNTRL(:) = ICNTRL_U(:)
+   ENDIF
+   IF (PRESENT(RCNTRL_U)) THEN
+     WHERE(RCNTRL_U(:) >= 0) RCNTRL(:) = RCNTRL_U(:)
+   ENDIF
+
+   CALL RosenbrockTLM(NVAR, VAR, NTLM, Y_tlm,      &
+         TIN,TOUT,ATOL,RTOL,ATOL_tlm,RTOL_tlm,     &
+         RCNTRL,ICNTRL,RSTATUS,ISTATUS,IERR)
+
+!~~~> Debug option: show number of steps
+!   Ntotal = Ntotal + ISTATUS(Nstp)
+!   PRINT*,'NSTEPS=',ISTATUS(Nstp),' (',Ntotal,')','  O3=', VAR(ind_O3)
+    
+   IF (IERR < 0) THEN
+     print *,'Rosenbrock: Unsucessful step at T=', &
+         TIN,' (IERR=',IERR,')'
+   END IF
+   
+   STEPMIN = RSTATUS(Nhexit)
+   ! if optional parameters are given for output they return information
+   IF (PRESENT(ISTATUS_U)) ISTATUS_U(:) = ISTATUS(:)
+   IF (PRESENT(RSTATUS_U)) RSTATUS_U(:) = RSTATUS(:)
+
+END SUBROUTINE INTEGRATE_TLM
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+SUBROUTINE RosenbrockTLM(N,Y,NTLM,Y_tlm,                      &
+           Tstart,Tend,AbsTol,RelTol,AbsTol_tlm,RelTol_tlm,   &
+           RCNTRL,ICNTRL,RSTATUS,ISTATUS,IERR)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!   
+!    TLM = Tangent Linear Model of a Rosenbrock Method
+!
+!    Solves the system y'=F(t,y) using a Rosenbrock method defined by:
+!
+!     G = 1/(H*gamma(1)) - Jac(t0,Y0)
+!     T_i = t0 + Alpha(i)*H
+!     Y_i = Y0 + \sum_{j=1}^{i-1} A(i,j)*K_j
+!     G * K_i = Fun( T_i, Y_i ) + \sum_{j=1}^S C(i,j)/H * K_j +
+!         gamma(i)*dF/dT(t0, Y0)
+!     Y1 = Y0 + \sum_{j=1}^S M(j)*K_j 
+!
+!    For details on Rosenbrock methods and their implementation consult:
+!      E. Hairer and G. Wanner
+!      "Solving ODEs II. Stiff and differential-algebraic problems".
+!      Springer series in computational mathematics, Springer-Verlag, 1996.  
+!    The codes contained in the book inspired this implementation.       
+!
+!    (C)  Adrian Sandu, August 2004
+!    Virginia Polytechnic Institute and State University    
+!    Contact: sandu@cs.vt.edu
+!    Revised by Philipp Miehe and Adrian Sandu, May 2006                  
+!    This implementation is part of KPP - the Kinetic PreProcessor
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!    
+!~~~>   INPUT ARGUMENTS: 
+!    
+!-     Y(N)    -> vector of initial conditions (at T=Tstart)
+!      NTLM       -> dimension of linearized system, 
+!                   i.e. the number of sensitivity coefficients
+!-     Y_tlm(N*NTLM) -> vector of initial sensitivity conditions (at T=Tstart)
+!-    [Tstart,Tend]    -> time range of integration
+!     (if Tstart>Tend the integration is performed backwards in time)  
+!-    RelTol, AbsTol -> user precribed accuracy
+!- SUBROUTINE Fun( T, Y, Ydot ) -> ODE function, 
+!                       returns Ydot = Y' = F(T,Y) 
+!- SUBROUTINE Jac( T, Y, Jcb ) -> Jacobian of the ODE function,
+!                       returns Jcb = dF/dY 
+!-    ICNTRL(1:20)    -> integer inputs parameters
+!-    RCNTRL(1:20)    -> real inputs parameters
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>     OUTPUT ARGUMENTS:  
+!     
+!-    Y(N)         -> vector of final states (at T->Tend)
+!-    Y_tlm(N*NTLM)-> vector of final sensitivities (at T=Tend)
+!-    ISTATUS(1:20)   -> integer output parameters
+!-    RSTATUS(:20)    -> real output parameters
+!-    IERR            -> job status upon return
+!       - succes (positive value) or failure (negative value) -
+!           =  1 : Success
+!           = -1 : Improper value for maximal no of steps
+!           = -2 : Selected Rosenbrock method not implemented
+!           = -3 : Hmin/Hmax/Hstart must be positive
+!           = -4 : FacMin/FacMax/FacRej must be positive
+!           = -5 : Improper tolerance values
+!           = -6 : No of steps exceeds maximum bound
+!           = -7 : Step size too small
+!           = -8 : Matrix is repeatedly singular
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+!~~~>     INPUT PARAMETERS:
+!
+!    Note: For input parameters equal to zero the default values of the
+!       corresponding variables are used.
+!
+!    ICNTRL(1)   = 1: F = F(y)   Independent of T (AUTONOMOUS)
+!              = 0: F = F(t,y) Depends on T (NON-AUTONOMOUS)
+!
+!    ICNTRL(2)   = 0: AbsTol, RelTol are N-dimensional vectors
+!              = 1:  AbsTol, RelTol are scalars
+!
+!    ICNTRL(3)  -> selection of a particular Rosenbrock method
+!        = 0 :  default method is Rodas3
+!        = 1 :  method is  Ros2
+!        = 2 :  method is  Ros3 
+!        = 3 :  method is  Ros4 
+!        = 4 :  method is  Rodas3
+!        = 5 :  method is  Rodas4
+!
+!    ICNTRL(4)  -> maximum number of integration steps
+!        For ICNTRL(4)=0) the default value of 100000 is used
+!
+!    ICNTRL(12) -> switch for TLM truncation error control
+!		ICNTRL(12) = 0: TLM error is not used
+!		ICNTRL(12) = 1: TLM error is computed and used
+!
+!    RCNTRL(1)  -> Hmin, lower bound for the integration step size
+!          It is strongly recommended to keep Hmin = ZERO 
+!    RCNTRL(2)  -> Hmax, upper bound for the integration step size
+!    RCNTRL(3)  -> Hstart, starting value for the integration step size
+!          
+!    RCNTRL(4)  -> FacMin, lower bound on step decrease factor (default=0.2)
+!    RCNTRL(5)  -> FacMin,upper bound on step increase factor (default=6)
+!    RCNTRL(6)  -> FacRej, step decrease factor after multiple rejections
+!                       (default=0.1)
+!    RCNTRL(7)  -> FacSafe, by which the new step is slightly smaller 
+!         than the predicted value  (default=0.9)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+!~~~>     OUTPUT PARAMETERS:
+!
+!    Note: each call to Rosenbrock adds the corrent no. of fcn calls
+!      to previous value of ISTATUS(1), and similar for the other params.
+!      Set ISTATUS(1:10) = 0 before call to avoid this accumulation.
+!
+!    ISTATUS(1) = No. of function calls
+!    ISTATUS(2) = No. of Jacobian calls
+!    ISTATUS(3) = No. of steps
+!    ISTATUS(4) = No. of accepted steps
+!    ISTATUS(5) = No. of rejected steps (except at the beginning)
+!    ISTATUS(6) = No. of LU decompositions
+!    ISTATUS(7) = No. of forward/backward substitutions
+!    ISTATUS(8) = No. of singular matrix decompositions
+!    ISTATUS(9) = No. of Hessian calls
+!
+!    RSTATUS(1)  -> Texit, the time corresponding to the 
+!                   computed Y upon return
+!    RSTATUS(2)  -> Hexit, last accepted step before exit
+!    For multiple restarts, use Hexit as Hstart in the following run 
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  IMPLICIT NONE
+   
+!~~~>  Arguments   
+   INTEGER,       INTENT(IN)    :: N, NTLM
+   KPP_REAL, INTENT(INOUT) :: Y(N)
+   KPP_REAL, INTENT(INOUT) :: Y_tlm(N,NTLM)
+   KPP_REAL, INTENT(IN)    :: Tstart, Tend
+   KPP_REAL, INTENT(IN)    :: AbsTol(N),RelTol(N)
+   KPP_REAL, INTENT(IN)    :: AbsTol_tlm(N,NTLM),RelTol_tlm(N,NTLM)
+   INTEGER,       INTENT(IN)    :: ICNTRL(20)
+   KPP_REAL, INTENT(IN)    :: RCNTRL(20)
+   INTEGER,       INTENT(INOUT) :: ISTATUS(20)
+   KPP_REAL, INTENT(INOUT) :: RSTATUS(20)
+   INTEGER, INTENT(OUT)   :: IERR
+!~~~>  Parameters of the Rosenbrock method, up to 6 stages
+   INTEGER ::  ros_S, rosMethod
+   INTEGER, PARAMETER :: RS2=1, RS3=2, RS4=3, RD3=4, RD4=5
+   KPP_REAL :: ros_A(15), ros_C(15), ros_M(6), ros_E(6), &
+                    ros_Alpha(6), ros_Gamma(6), ros_ELO
+   LOGICAL :: ros_NewF(6)
+   CHARACTER(LEN=12) :: ros_Name
+!~~~>  Local variables     
+   KPP_REAL :: Roundoff, FacMin, FacMax, FacRej, FacSafe
+   KPP_REAL :: Hmin, Hmax, Hstart, Hexit
+   KPP_REAL :: Texit
+   INTEGER :: i, UplimTol, Max_no_steps 
+   LOGICAL :: Autonomous, VectorTol, TLMtruncErr
+!~~~>   Parameters
+   KPP_REAL, PARAMETER :: ZERO = 0.0d0, ONE  = 1.0d0
+   KPP_REAL, PARAMETER :: DeltaMin = 1.0d-5
+
+!~~~> Initialize the statistics
+   IERR          = 0
+   ISTATUS(1:20) = 0
+   RSTATUS(1:20) = ZERO
+   
+!~~~>  Autonomous or time dependent ODE. Default is time dependent.
+   Autonomous = .NOT.(ICNTRL(1) == 0)
+
+!~~~>  For Scalar tolerances (ICNTRL(2).NE.0)  the code uses AbsTol(1) and RelTol(1)
+!   For Vector tolerances (ICNTRL(2) == 0) the code uses AbsTol(1:N) and RelTol(1:N)
+   IF (ICNTRL(2) == 0) THEN
+      VectorTol = .TRUE.
+      UplimTol  = N
+   ELSE 
+      VectorTol = .FALSE.
+      UplimTol  = 1
+   END IF
+
+!~~~>   Initialize the particular Rosenbrock method selected
+   SELECT CASE (ICNTRL(3))
+     CASE (1)
+       CALL Ros2
+     CASE (2)
+       CALL Ros3
+     CASE (3)
+       CALL Ros4
+     CASE (0,4)
+       CALL Rodas3
+     CASE (5)
+       CALL Rodas4
+     CASE DEFAULT
+       PRINT * , 'Unknown Rosenbrock method: ICNTRL(3)=',ICNTRL(3) 
+       CALL ros_ErrorMsg(-2,Tstart,ZERO,IERR)
+       RETURN
+   END SELECT
+   
+!~~~>   The maximum number of steps admitted
+   IF (ICNTRL(4) == 0) THEN
+      Max_no_steps = 200000
+   ELSEIF (Max_no_steps > 0) THEN
+      Max_no_steps=ICNTRL(4)
+   ELSE 
+      PRINT * ,'User-selected max no. of steps: ICNTRL(4)=',ICNTRL(4)
+      CALL ros_ErrorMsg(-1,Tstart,ZERO,IERR)
+      RETURN      
+   END IF
+!~~~> TLM truncation error control selection  
+      IF (ICNTRL(12) == 0) THEN 
+         TLMtruncErr = .FALSE.
+      ELSE
+         TLMtruncErr = .TRUE.
+      END IF      
+   
+!~~~>  Unit roundoff (1+Roundoff>1)  
+   Roundoff = WLAMCH('E')
+
+!~~~>  Lower bound on the step size: (positive value)
+   IF (RCNTRL(1) == ZERO) THEN
+      Hmin = ZERO
+   ELSEIF (RCNTRL(1) > ZERO) THEN 
+      Hmin = RCNTRL(1)
+   ELSE  
+      PRINT * , 'User-selected Hmin: RCNTRL(1)=', RCNTRL(1)
+      CALL ros_ErrorMsg(-3,Tstart,ZERO,IERR)
+      RETURN      
+   END IF
+!~~~>  Upper bound on the step size: (positive value)
+   IF (RCNTRL(2) == ZERO) THEN
+      Hmax = ABS(Tend-Tstart)
+   ELSEIF (RCNTRL(2) > ZERO) THEN
+      Hmax = MIN(ABS(RCNTRL(2)),ABS(Tend-Tstart))
+   ELSE  
+      PRINT * , 'User-selected Hmax: RCNTRL(2)=', RCNTRL(2)
+      CALL ros_ErrorMsg(-3,Tstart,ZERO,IERR)
+      RETURN      
+   END IF
+!~~~>  Starting step size: (positive value)
+   IF (RCNTRL(3) == ZERO) THEN
+      Hstart = MAX(Hmin,DeltaMin)
+   ELSEIF (RCNTRL(3) > ZERO) THEN
+      Hstart = MIN(ABS(RCNTRL(3)),ABS(Tend-Tstart))
+   ELSE  
+      PRINT * , 'User-selected Hstart: RCNTRL(3)=', RCNTRL(3)
+      CALL ros_ErrorMsg(-3,Tstart,ZERO,IERR)
+      RETURN      
+   END IF
+!~~~>  Step size can be changed s.t.  FacMin < Hnew/Hexit < FacMax 
+   IF (RCNTRL(4) == ZERO) THEN
+      FacMin = 0.2d0
+   ELSEIF (RCNTRL(4) > ZERO) THEN
+      FacMin = RCNTRL(4)
+   ELSE  
+      PRINT * , 'User-selected FacMin: RCNTRL(4)=', RCNTRL(4)
+      CALL ros_ErrorMsg(-4,Tstart,ZERO,IERR)
+      RETURN      
+   END IF
+   IF (RCNTRL(5) == ZERO) THEN
+      FacMax = 6.0d0
+   ELSEIF (RCNTRL(5) > ZERO) THEN
+      FacMax = RCNTRL(5)
+   ELSE  
+      PRINT * , 'User-selected FacMax: RCNTRL(5)=', RCNTRL(5)
+      CALL ros_ErrorMsg(-4,Tstart,ZERO,IERR)
+      RETURN      
+   END IF
+!~~~>   FacRej: Factor to decrease step after 2 succesive rejections
+   IF (RCNTRL(6) == ZERO) THEN
+      FacRej = 0.1d0
+   ELSEIF (RCNTRL(6) > ZERO) THEN
+      FacRej = RCNTRL(6)
+   ELSE  
+      PRINT * , 'User-selected FacRej: RCNTRL(6)=', RCNTRL(6)
+      CALL ros_ErrorMsg(-4,Tstart,ZERO,IERR)
+      RETURN      
+   END IF
+!~~~>   FacSafe: Safety Factor in the computation of new step size
+   IF (RCNTRL(7) == ZERO) THEN
+      FacSafe = 0.9d0
+   ELSEIF (RCNTRL(7) > ZERO) THEN
+      FacSafe = RCNTRL(7)
+   ELSE  
+      PRINT * , 'User-selected FacSafe: RCNTRL(7)=', RCNTRL(7)
+      CALL ros_ErrorMsg(-4,Tstart,ZERO,IERR)
+      RETURN      
+   END IF
+!~~~>  Check if tolerances are reasonable
+    DO i=1,UplimTol
+      IF ( (AbsTol(i) <= ZERO) .OR. (RelTol(i) <= 10.d0*Roundoff) &
+         .OR. (RelTol(i) >= 1.0d0) ) THEN
+        PRINT * , ' AbsTol(',i,') = ',AbsTol(i)
+        PRINT * , ' RelTol(',i,') = ',RelTol(i)
+        CALL ros_ErrorMsg(-5,Tstart,ZERO,IERR)
+        RETURN
+      END IF
+    END DO
+     
+
+!~~~>  CALL Rosenbrock method   
+   CALL ros_TLM_Int(Y, NTLM, Y_tlm,              &
+        Tstart, Tend, Texit,                     & 
+!  Error indicator
+        IERR)
+
+
+CONTAINS ! Procedures internal to RosenbrockTLM
+ 
+ 
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+ SUBROUTINE ros_ErrorMsg(Code,T,H,IERR)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+!    Handles all error messages
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+  
+   KPP_REAL, INTENT(IN) :: T, H
+   INTEGER, INTENT(IN)  :: Code
+   INTEGER, INTENT(OUT) :: IERR
+   
+   IERR = Code
+   PRINT * , &
+     'Forced exit from Rosenbrock due to the following error:' 
+     
+   SELECT CASE (Code)
+    CASE (-1)    
+      PRINT * , '--> Improper value for maximal no of steps'
+    CASE (-2)    
+      PRINT * , '--> Selected Rosenbrock method not implemented'
+    CASE (-3)    
+      PRINT * , '--> Hmin/Hmax/Hstart must be positive'
+    CASE (-4)    
+      PRINT * , '--> FacMin/FacMax/FacRej must be positive'
+    CASE (-5) 
+      PRINT * , '--> Improper tolerance values'
+    CASE (-6) 
+      PRINT * , '--> No of steps exceeds maximum bound'
+    CASE (-7) 
+      PRINT * , '--> Step size too small: T + 10*H = T', &
+            ' or H < Roundoff'
+    CASE (-8)    
+      PRINT * , '--> Matrix is repeatedly singular'
+    CASE DEFAULT
+      PRINT *, 'Unknown Error code: ', Code
+   END SELECT
+   
+   PRINT *, "T=", T, "and H=", H
+     
+ END SUBROUTINE ros_ErrorMsg
+   
+     
+   
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE ros_TLM_Int (Y, NTLM, Y_tlm,         &
+        Tstart, Tend, T,                         &
+!~~~> Error indicator
+        IERR )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!   Template for the implementation of a generic Rosenbrock method 
+!      defined by ros_S (no of stages)  
+!      and its coefficients ros_{A,C,M,E,Alpha,Gamma}
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  IMPLICIT NONE
+   
+!~~~> Input: the initial condition at Tstart; Output: the solution at T   
+   KPP_REAL, INTENT(INOUT) :: Y(N)
+!~~~> Input: Number of sensitivity coefficients
+   INTEGER, INTENT(IN) :: NTLM 
+!~~~> Input: the initial sensitivites at Tstart; Output: the sensitivities at T   
+   KPP_REAL, INTENT(INOUT) :: Y_tlm(N,NTLM)
+!~~~> Input: integration interval   
+   KPP_REAL, INTENT(IN) :: Tstart,Tend      
+!~~~> Output: time at which the solution is returned (T=Tend if success)   
+   KPP_REAL, INTENT(OUT) ::  T      
+!~~~> Output: Error indicator
+   INTEGER, INTENT(OUT) :: IERR
+! ~~~~ Local variables        
+   KPP_REAL :: Ynew(N), Fcn0(N), Fcn(N) 
+   KPP_REAL :: K(N*ros_S)
+   KPP_REAL :: Ynew_tlm(N,NTLM), Fcn0_tlm(N,NTLM), Fcn_tlm(N,NTLM) 
+   KPP_REAL :: K_tlm(N*ros_S,NTLM)
+   KPP_REAL :: Hes0(NHESS), Tmp(N)
+   KPP_REAL :: dFdT(N), dJdT(LU_NONZERO)
+   KPP_REAL :: Jac0(LU_NONZERO), Jac(LU_NONZERO), Ghimj(LU_NONZERO)
+   KPP_REAL :: H, Hnew, HC, HG, Fac, Tau 
+   KPP_REAL :: Err, Err0, Err1, Yerr(N), Yerr_tlm(N,NTLM)
+   INTEGER  :: Pivot(N), Direction, ioffset, j, istage, itlm
+   LOGICAL  :: RejectLastH, RejectMoreH, Singular
+!~~~>  Local parameters
+   KPP_REAL, PARAMETER :: DeltaMin = 1.0d-5
+!~~~>  Locally called functions
+!   KPP_REAL WLAMCH
+!   EXTERNAL WLAMCH
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+   
+!~~~>  Initial preparations
+   T = Tstart
+   RSTATUS(Nhexit) = ZERO
+   H = MIN( MAX(ABS(Hmin),ABS(Hstart)) , ABS(Hmax) )
+   IF (ABS(H) <= 10.D0*Roundoff) H = DeltaMin
+   
+   IF (Tend  >=  Tstart) THEN
+     Direction = +1
+   ELSE
+     Direction = -1
+   END IF               
+   H = Direction*H
+
+   RejectLastH=.FALSE.
+   RejectMoreH=.FALSE.
+   
+!~~~> Time loop begins below 
+
+TimeLoop: DO WHILE ( (Direction > 0).AND.((T-Tend)+Roundoff <= ZERO) &
+       .OR. (Direction < 0).AND.((Tend-T)+Roundoff <= ZERO) ) 
+      
+   IF ( ISTATUS(Nstp) > Max_no_steps ) THEN  ! Too many steps
+      CALL ros_ErrorMsg(-6,T,H,IERR)
+      RETURN
+   END IF
+   IF ( ((T+0.1d0*H) == T).OR.(H <= Roundoff) ) THEN  ! Step size too small
+      CALL ros_ErrorMsg(-7,T,H,IERR)
+      RETURN
+   END IF
+   
+!~~~>  Limit H if necessary to avoid going beyond Tend   
+   Hexit = H
+   H = MIN(H,ABS(Tend-T))
+
+!~~~>   Compute the function at current time
+   CALL FunTemplate(T,Y,Fcn0)
+   ISTATUS(Nfun) = ISTATUS(Nfun) + 1
+
+!~~~>   Compute the Jacobian at current time
+   CALL JacTemplate(T,Y,Jac0)    
+   ISTATUS(Njac) = ISTATUS(Njac) + 1
+  
+!~~~>   Compute the Hessian at current time
+   CALL HessTemplate(T,Y,Hes0)
+   ISTATUS(Nhes) = ISTATUS(Nhes) + 1
+   
+!~~~>   Compute the TLM function at current time
+   DO itlm = 1, NTLM
+      CALL Jac_SP_Vec ( Jac0, Y_tlm(1:N,itlm), Fcn0_tlm(1:N,itlm) )
+   END DO  
+   
+!~~~>  Compute the function and Jacobian derivatives with respect to T
+   IF (.NOT.Autonomous) THEN
+      CALL ros_FunTimeDerivative ( T, Roundoff, Y, Fcn0, dFdT )
+      CALL ros_JacTimeDerivative ( T, Roundoff, Y, Jac0, dJdT )
+   END IF
+ 
+!~~~>  Repeat step calculation until current step accepted
+UntilAccepted: DO  
+   
+   CALL ros_PrepareMatrix(H,Direction,ros_Gamma(1),&
+          Jac0,Ghimj,Pivot,Singular)
+   IF (Singular) THEN ! More than 5 consecutive failed decompositions
+       CALL ros_ErrorMsg(-8,T,H,IERR)
+       RETURN
+   END IF
+
+!~~~>   Compute the stages
+Stage: DO istage = 1, ros_S
+      
+      ! Current istage offset. Current istage vector is K(ioffset+1:ioffset+N)
+       ioffset = N*(istage-1)
+
+      ! Initialize stage solution
+       CALL WCOPY(N,Y,1,Ynew,1)
+       CALL WCOPY(N*NTLM,Y_tlm,1,Ynew_tlm,1)
+      
+      ! For the 1st istage the function has been computed previously
+       IF ( istage == 1 ) THEN
+         CALL WCOPY(N,Fcn0,1,Fcn,1)
+         CALL WCOPY(N*NTLM,Fcn0_tlm,1,Fcn_tlm,1)
+      ! istage>1 and a new function evaluation is needed at the current istage
+       ELSEIF ( ros_NewF(istage) ) THEN
+         DO j = 1, istage-1
+           CALL WAXPY(N,ros_A((istage-1)*(istage-2)/2+j),    &
+                     K(N*(j-1)+1:N*j),1,Ynew,1) 
+           DO itlm=1,NTLM  
+              CALL WAXPY(N,ros_A((istage-1)*(istage-2)/2+j), &
+                     K_tlm(N*(j-1)+1:N*j,itlm),1,Ynew_tlm(1:N,itlm),1) 
+           END DO                    
+         END DO
+         Tau = T + ros_Alpha(istage)*Direction*H
+         CALL FunTemplate(Tau,Ynew,Fcn)   
+         ISTATUS(Nfun) = ISTATUS(Nfun) + 1
+         CALL JacTemplate(Tau,Ynew,Jac)    
+         ISTATUS(Njac) = ISTATUS(Njac) + 1
+         DO itlm=1,NTLM 
+           CALL Jac_SP_Vec ( Jac, Ynew_tlm(1:N,itlm), Fcn_tlm(1:N,itlm) )
+         END DO              
+       END IF ! if istage == 1 elseif ros_NewF(istage)
+       CALL WCOPY(N,Fcn,1,K(ioffset+1:ioffset+N),1)
+       DO itlm=1,NTLM   
+          CALL WCOPY(N,Fcn_tlm(1:N,itlm),1,K_tlm(ioffset+1:ioffset+N,itlm),1)
+       END DO                
+       DO j = 1, istage-1
+         HC = ros_C((istage-1)*(istage-2)/2+j)/(Direction*H)
+         CALL WAXPY(N,HC,K(N*(j-1)+1:N*j),1,K(ioffset+1:ioffset+N),1)
+         DO itlm=1,NTLM 
+           CALL WAXPY(N,HC,K_tlm(N*(j-1)+1:N*j,itlm),1,K_tlm(ioffset+1:ioffset+N,itlm),1)
+         END DO              
+       END DO
+       IF ((.NOT. Autonomous).AND.(ros_Gamma(istage).NE.ZERO)) THEN
+         HG = Direction*H*ros_Gamma(istage)
+         CALL WAXPY(N,HG,dFdT(1:N),1,K(ioffset+1:ioffset+N),1)
+         DO itlm=1,NTLM 
+           CALL Jac_SP_Vec ( dJdT, Ynew_tlm(1:N,itlm), Tmp )
+           CALL WAXPY(N,HG,Tmp,1,K_tlm(ioffset+1:ioffset+N,itlm),1)
+         END DO              
+       END IF
+       CALL ros_Solve(Ghimj, Pivot, K(ioffset+1:ioffset+N))
+       DO itlm=1,NTLM   
+         CALL Hess_Vec ( Hes0, K(ioffset+1:ioffset+N), Y_tlm(1:N,itlm), Tmp )
+         CALL WAXPY(N,ONE,Tmp,1,K_tlm(ioffset+1:ioffset+N,itlm),1)
+         CALL ros_Solve(Ghimj, Pivot, K_tlm(ioffset+1:ioffset+N,itlm))
+       END DO                
+      
+   END DO Stage     
+            
+
+!~~~>  Compute the new solution 
+   CALL WCOPY(N,Y,1,Ynew,1)
+   DO j=1,ros_S
+      CALL WAXPY(N,ros_M(j),K(N*(j-1)+1:N*j),1,Ynew,1)
+   END DO
+   DO itlm=1,NTLM       
+     CALL WCOPY(N,Y_tlm(1:N,itlm),1,Ynew_tlm(1:N,itlm),1)
+     DO j=1,ros_S
+       CALL WAXPY(N,ros_M(j),K_tlm(N*(j-1)+1:N*j,itlm),1,Ynew_tlm(1:N,itlm),1)
+     END DO
+   END DO
+
+!~~~>  Compute the error estimation 
+   CALL Set2zero(N,Yerr)
+   DO j=1,ros_S     
+        CALL WAXPY(N,ros_E(j),K(N*(j-1)+1:N*j),1,Yerr,1)
+   END DO 
+   Err = ros_ErrorNorm ( Y, Ynew, Yerr, AbsTol, RelTol, VectorTol )
+   IF (TLMtruncErr) THEN
+     Err1 = 0.0d0
+     CALL Set2zero(N*NTLM,Yerr_tlm)
+     DO itlm=1,NTLM
+       DO j=1,ros_S  
+         CALL WAXPY(N,ros_E(j),K_tlm(N*(j-1)+1:N*j,itlm),1,Yerr_tlm(1:N,itlm),1)
+       END DO 
+     END DO
+     Err = ros_ErrorNorm_tlm(Y_tlm,Ynew_tlm,Yerr_tlm,AbsTol_tlm,RelTol_tlm,Err,VectorTol)
+   END IF
+  
+!~~~> New step size is bounded by FacMin <= Hnew/H <= FacMax
+   Fac  = MIN(FacMax,MAX(FacMin,FacSafe/Err**(ONE/ros_ELO)))
+   Hnew = H*Fac  
+
+!~~~>  Check the error magnitude and adjust step size
+   ISTATUS(Nstp) = ISTATUS(Nstp) + 1
+   IF ( (Err <= ONE).OR.(H <= Hmin) ) THEN  !~~~> Accept step
+      ISTATUS(Nacc) = ISTATUS(Nacc) + 1
+      CALL WCOPY(N,Ynew,1,Y,1)
+      CALL WCOPY(N*NTLM,Ynew_tlm,1,Y_tlm,1)
+      T = T + Direction*H
+      Hnew = MAX(Hmin,MIN(Hnew,Hmax))
+      IF (RejectLastH) THEN  ! No step size increase after a rejected step
+         Hnew = MIN(Hnew,H) 
+      END IF   
+      RSTATUS(Nhexit) = H
+      RSTATUS(Nhnew)  = Hnew
+      RSTATUS(Ntexit) = T
+      RejectLastH = .FALSE.  
+      RejectMoreH = .FALSE.
+      H = Hnew
+      EXIT UntilAccepted ! EXIT THE LOOP: WHILE STEP NOT ACCEPTED
+   ELSE           !~~~> Reject step
+      IF (RejectMoreH) THEN
+         Hnew = H*FacRej
+      END IF   
+      RejectMoreH = RejectLastH
+      RejectLastH = .TRUE.
+      H = Hnew
+      IF (ISTATUS(Nacc) >= 1) THEN
+         ISTATUS(Nrej) = ISTATUS(Nrej) + 1
+      END IF    
+   END IF ! Err <= 1
+
+   END DO UntilAccepted 
+
+   END DO TimeLoop 
+   
+!~~~> Succesful exit
+   IERR = 1  !~~~> The integration was successful
+
+  END SUBROUTINE ros_TLM_Int
+   
+   
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  KPP_REAL FUNCTION ros_ErrorNorm ( Y, Ynew, Yerr, & 
+               AbsTol, RelTol, VectorTol )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> Computes the "scaled norm" of the error vector Yerr
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   IMPLICIT NONE         
+
+! Input arguments   
+   KPP_REAL, INTENT(IN) :: Y(N), Ynew(N),    &
+          Yerr(N), AbsTol(N), RelTol(N)
+   LOGICAL, INTENT(IN) ::  VectorTol
+! Local variables     
+   KPP_REAL :: Err, Scale, Ymax   
+   INTEGER  :: i
+   KPP_REAL, PARAMETER :: ZERO = 0.0d0
+   
+   Err = ZERO
+   DO i=1,N
+     Ymax = MAX(ABS(Y(i)),ABS(Ynew(i)))
+     IF (VectorTol) THEN
+       Scale = AbsTol(i)+RelTol(i)*Ymax
+     ELSE
+       Scale = AbsTol(1)+RelTol(1)*Ymax
+     END IF
+     Err = Err+(Yerr(i)/Scale)**2
+   END DO
+   Err  = SQRT(Err/N)
+
+   ros_ErrorNorm = MAX(Err,1.0d-10)
+   
+  END FUNCTION ros_ErrorNorm
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  KPP_REAL FUNCTION ros_ErrorNorm_tlm ( Y_tlm, Ynew_tlm, Yerr_tlm, & 
+               AbsTol_tlm, RelTol_tlm, Fwd_Err, VectorTol )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> Computes the "scaled norm" of the error vector Yerr_tlm
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   IMPLICIT NONE         
+
+! Input arguments   
+   KPP_REAL, INTENT(IN) :: Y_tlm(N,NTLM), Ynew_tlm(N,NTLM),    &
+          Yerr_tlm(N,NTLM), AbsTol_tlm(N,NTLM), RelTol_tlm(N,NTLM), Fwd_Err
+   LOGICAL, INTENT(IN) ::  VectorTol
+! Local variables     
+   KPP_REAL :: TMP, Err
+   INTEGER  :: itlm
+   
+   Err = FWD_Err
+   DO itlm = 1,NTLM
+     TMP = ros_ErrorNorm(Y_tlm(1,itlm), Ynew_tlm(1,itlm),Yerr_tlm(1,itlm), &
+     		AbsTol_tlm(1,itlm), RelTol_tlm(1,itlm), VectorTol)
+     Err = MAX(Err, TMP)
+   END DO
+
+   ros_ErrorNorm_tlm = MAX(Err,1.0d-10)
+   
+  END FUNCTION ros_ErrorNorm_tlm
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE ros_FunTimeDerivative ( T, Roundoff, Y, &
+                Fcn0, dFdT )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> The time partial derivative of the function by finite differences
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   IMPLICIT NONE         
+
+!~~~> Input arguments   
+   KPP_REAL, INTENT(IN) :: T, Roundoff, Y(N), Fcn0(N) 
+!~~~> Output arguments   
+   KPP_REAL, INTENT(OUT) :: dFdT(N)   
+!~~~> Local variables     
+   KPP_REAL :: Delta  
+   KPP_REAL, PARAMETER :: DeltaMin = 1.0d-6
+   
+   Delta = SQRT(Roundoff)*MAX(DeltaMin,ABS(T))
+   CALL FunTemplate(T+Delta,Y,dFdT)   
+   ISTATUS(Nfun) = ISTATUS(Nfun) + 1
+   CALL WAXPY(N,(-ONE),Fcn0,1,dFdT,1)
+   CALL WSCAL(N,(ONE/Delta),dFdT,1)
+
+  END SUBROUTINE ros_FunTimeDerivative
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE ros_JacTimeDerivative ( T, Roundoff, Y, &
+                Jac0, dJdT )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> The time partial derivative of the Jacobian by finite differences
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   IMPLICIT NONE         
+
+!~~~> Input arguments   
+   KPP_REAL, INTENT(IN) :: T, Roundoff, Y(N), Jac0(LU_NONZERO) 
+!~~~> Output arguments   
+   KPP_REAL, INTENT(OUT) :: dJdT(LU_NONZERO)   
+!~~~> Local variables     
+   KPP_REAL Delta  
+   KPP_REAL, PARAMETER :: ONE = 1.0d0, DeltaMin = 1.0d-6
+   
+   Delta = SQRT(Roundoff)*MAX(DeltaMin,ABS(T))
+   CALL JacTemplate(T+Delta,Y,dJdT)    
+   ISTATUS(Njac) = ISTATUS(Njac) + 1
+   CALL WAXPY(LU_NONZERO,(-ONE),Jac0,1,dJdT,1)
+   CALL WSCAL(LU_NONZERO,(ONE/Delta),dJdT,1)
+
+  END SUBROUTINE ros_JacTimeDerivative
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+  SUBROUTINE ros_PrepareMatrix ( H, Direction, gam, &
+             Jac0, Ghimj, Pivot, Singular )
+! --- --- --- --- --- --- --- --- --- --- --- --- ---
+!  Prepares the LHS matrix for stage calculations
+!  1.  Construct Ghimj = 1/(H*ham) - Jac0
+!      "(Gamma H) Inverse Minus Jacobian"
+!  2.  Repeat LU decomposition of Ghimj until successful.
+!       -half the step size if LU decomposition fails and retry
+!       -exit after 5 consecutive fails
+! --- --- --- --- --- --- --- --- --- --- --- --- ---
+   IMPLICIT NONE         
+   
+!~~~> Input arguments   
+   KPP_REAL, INTENT(IN) ::  gam, Jac0(LU_NONZERO)
+   INTEGER, INTENT(IN) ::  Direction
+!~~~> Output arguments   
+   KPP_REAL, INTENT(OUT) :: Ghimj(LU_NONZERO)
+   LOGICAL, INTENT(OUT) ::  Singular
+   INTEGER, INTENT(OUT) ::  Pivot(N)
+!~~~> Inout arguments   
+   KPP_REAL, INTENT(INOUT) :: H   ! step size is decreased when LU fails
+!~~~> Local variables     
+   INTEGER  :: i, ising, Nconsecutive
+   KPP_REAL ::  ghinv
+   KPP_REAL, PARAMETER :: ONE  = 1.0d0, HALF = 0.5d0
+   
+   Nconsecutive = 0
+   Singular = .TRUE.
+   
+   DO WHILE (Singular)
+   
+!~~~>    Construct Ghimj = 1/(H*ham) - Jac0
+     CALL WCOPY(LU_NONZERO,Jac0,1,Ghimj,1)
+     CALL WSCAL(LU_NONZERO,(-ONE),Ghimj,1)
+     ghinv = ONE/(Direction*H*gam)
+     DO i=1,N
+       Ghimj(LU_DIAG(i)) = Ghimj(LU_DIAG(i))+ghinv
+     END DO
+!~~~>    Compute LU decomposition 
+     CALL ros_Decomp( Ghimj, Pivot, ising )
+     IF (ising == 0) THEN
+!~~~>    If successful done 
+        Singular = .FALSE. 
+     ELSE ! ising .ne. 0
+!~~~>    If unsuccessful half the step size; if 5 consecutive fails then return
+        ISTATUS(Nsng) = ISTATUS(Nsng) + 1
+        Nconsecutive = Nconsecutive+1
+        Singular = .TRUE. 
+        PRINT*,'Warning: LU Decomposition returned ising = ',ising
+        IF (Nconsecutive <= 5) THEN ! Less than 5 consecutive failed decompositions
+           H = H*HALF
+        ELSE  ! More than 5 consecutive failed decompositions
+           RETURN
+        END IF  ! Nconsecutive
+      END IF    ! ising 
+         
+   END DO ! WHILE Singular
+
+  END SUBROUTINE ros_PrepareMatrix
+
+  
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+  SUBROUTINE ros_Decomp( A, Pivot, ising )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
+!  Template for the LU decomposition   
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+   IMPLICIT NONE
+!~~~> Inout variables     
+   KPP_REAL, INTENT(INOUT) :: A(LU_NONZERO)
+!~~~> Output variables     
+   INTEGER, INTENT(OUT) :: Pivot(N), ising
+   
+   CALL KppDecomp ( A, ising )
+!~~~> Note: for a full matrix use Lapack:
+!     CALL  DGETRF( N, N, A, N, Pivot, ising ) 
+   Pivot(1) = 1
+    
+   ISTATUS(Ndec) = ISTATUS(Ndec) + 1
+
+  END SUBROUTINE ros_Decomp
+ 
+ 
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+  SUBROUTINE ros_Solve( A, Pivot, b )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
+!  Template for the forward/backward substitution (using pre-computed LU decomposition)   
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+   IMPLICIT NONE
+!~~~> Input variables     
+   KPP_REAL, INTENT(IN) :: A(LU_NONZERO)
+   INTEGER, INTENT(IN) :: Pivot(N)
+!~~~> InOut variables     
+   KPP_REAL, INTENT(INOUT) :: b(N)
+   
+   CALL KppSolve( A, b )
+!~~~> Note: for a full matrix use Lapack:
+!     NRHS = 1
+!     CALL  DGETRS( 'N', N , NRHS, A, N, Pivot, b, N, INFO )
+     
+   ISTATUS(Nsol) = ISTATUS(Nsol) + 1
+
+  END SUBROUTINE ros_Solve
+
+ 
+ 
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+  SUBROUTINE Ros2 
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+! --- AN L-STABLE METHOD, 2 stages, order 2
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+
+   IMPLICIT NONE
+   DOUBLE PRECISION g
+   
+    g = 1.0d0 + 1.0d0/SQRT(2.0d0)
+   
+    rosMethod = RS2
+!~~~> Name of the method
+    ros_Name = 'ROS-2'   
+!~~~> Number of stages
+    ros_S = 2
+   
+!~~~> The coefficient matrices A and C are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+!   The general mapping formula is:
+!       A(i,j) = ros_A( (i-1)*(i-2)/2 + j )    
+!       C(i,j) = ros_C( (i-1)*(i-2)/2 + j )  
+   
+    ros_A(1) = (1.d0)/g
+    ros_C(1) = (-2.d0)/g
+!~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+    ros_NewF(1) = .TRUE.
+    ros_NewF(2) = .TRUE.
+!~~~> M_i = Coefficients for new step solution
+    ros_M(1)= (3.d0)/(2.d0*g)
+    ros_M(2)= (1.d0)/(2.d0*g)
+! E_i = Coefficients for error estimator    
+    ros_E(1) = 1.d0/(2.d0*g)
+    ros_E(2) = 1.d0/(2.d0*g)
+!~~~> ros_ELO = estimator of local order - the minimum between the
+!    main and the embedded scheme orders plus one
+    ros_ELO = 2.0d0    
+!~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+    ros_Alpha(1) = 0.0d0
+    ros_Alpha(2) = 1.0d0 
+!~~~> Gamma_i = \sum_j  gamma_{i,j}    
+    ros_Gamma(1) = g
+    ros_Gamma(2) =-g
+   
+ END SUBROUTINE Ros2
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+  SUBROUTINE Ros3
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+! --- AN L-STABLE METHOD, 3 stages, order 3, 2 function evaluations
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+  
+   IMPLICIT NONE
+   
+    rosMethod = RS3
+!~~~> Name of the method
+   ros_Name = 'ROS-3'   
+!~~~> Number of stages
+   ros_S = 3
+   
+!~~~> The coefficient matrices A and C are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+!   The general mapping formula is:
+!       A(i,j) = ros_A( (i-1)*(i-2)/2 + j )    
+!       C(i,j) = ros_C( (i-1)*(i-2)/2 + j )  
+     
+   ros_A(1)= 1.d0
+   ros_A(2)= 1.d0
+   ros_A(3)= 0.d0
+
+   ros_C(1) = -0.10156171083877702091975600115545d+01
+   ros_C(2) =  0.40759956452537699824805835358067d+01
+   ros_C(3) =  0.92076794298330791242156818474003d+01
+!~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+   ros_NewF(1) = .TRUE.
+   ros_NewF(2) = .TRUE.
+   ros_NewF(3) = .FALSE.
+!~~~> M_i = Coefficients for new step solution
+   ros_M(1) =  0.1d+01
+   ros_M(2) =  0.61697947043828245592553615689730d+01
+   ros_M(3) = -0.42772256543218573326238373806514d+00
+! E_i = Coefficients for error estimator    
+   ros_E(1) =  0.5d+00
+   ros_E(2) = -0.29079558716805469821718236208017d+01
+   ros_E(3) =  0.22354069897811569627360909276199d+00
+!~~~> ros_ELO = estimator of local order - the minimum between the
+!    main and the embedded scheme orders plus 1
+   ros_ELO = 3.0d0    
+!~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+   ros_Alpha(1)= 0.0d+00
+   ros_Alpha(2)= 0.43586652150845899941601945119356d+00
+   ros_Alpha(3)= 0.43586652150845899941601945119356d+00
+!~~~> Gamma_i = \sum_j  gamma_{i,j}    
+   ros_Gamma(1)= 0.43586652150845899941601945119356d+00
+   ros_Gamma(2)= 0.24291996454816804366592249683314d+00
+   ros_Gamma(3)= 0.21851380027664058511513169485832d+01
+
+  END SUBROUTINE Ros3
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+  SUBROUTINE Ros4
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+!     L-STABLE ROSENBROCK METHOD OF ORDER 4, WITH 4 STAGES
+!     L-STABLE EMBEDDED ROSENBROCK METHOD OF ORDER 3 
+!
+!      E. HAIRER AND G. WANNER, SOLVING ORDINARY DIFFERENTIAL
+!      EQUATIONS II. STIFF AND DIFFERENTIAL-ALGEBRAIC PROBLEMS.
+!      SPRINGER SERIES IN COMPUTATIONAL MATHEMATICS,
+!      SPRINGER-VERLAG (1990)         
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+
+   IMPLICIT NONE
+   
+    rosMethod = RS4
+!~~~> Name of the method
+   ros_Name = 'ROS-4'   
+!~~~> Number of stages
+   ros_S = 4
+   
+!~~~> The coefficient matrices A and C are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+!   The general mapping formula is:
+!       A(i,j) = ros_A( (i-1)*(i-2)/2 + j )    
+!       C(i,j) = ros_C( (i-1)*(i-2)/2 + j )  
+     
+   ros_A(1) = 0.2000000000000000d+01
+   ros_A(2) = 0.1867943637803922d+01
+   ros_A(3) = 0.2344449711399156d+00
+   ros_A(4) = ros_A(2)
+   ros_A(5) = ros_A(3)
+   ros_A(6) = 0.0D0
+
+   ros_C(1) =-0.7137615036412310d+01
+   ros_C(2) = 0.2580708087951457d+01
+   ros_C(3) = 0.6515950076447975d+00
+   ros_C(4) =-0.2137148994382534d+01
+   ros_C(5) =-0.3214669691237626d+00
+   ros_C(6) =-0.6949742501781779d+00
+!~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+   ros_NewF(1)  = .TRUE.
+   ros_NewF(2)  = .TRUE.
+   ros_NewF(3)  = .TRUE.
+   ros_NewF(4)  = .FALSE.
+!~~~> M_i = Coefficients for new step solution
+   ros_M(1) = 0.2255570073418735d+01
+   ros_M(2) = 0.2870493262186792d+00
+   ros_M(3) = 0.4353179431840180d+00
+   ros_M(4) = 0.1093502252409163d+01
+!~~~> E_i  = Coefficients for error estimator    
+   ros_E(1) =-0.2815431932141155d+00
+   ros_E(2) =-0.7276199124938920d-01
+   ros_E(3) =-0.1082196201495311d+00
+   ros_E(4) =-0.1093502252409163d+01
+!~~~> ros_ELO  = estimator of local order - the minimum between the
+!    main and the embedded scheme orders plus 1
+   ros_ELO  = 4.0d0    
+!~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+   ros_Alpha(1) = 0.D0
+   ros_Alpha(2) = 0.1145640000000000d+01
+   ros_Alpha(3) = 0.6552168638155900d+00
+   ros_Alpha(4) = ros_Alpha(3)
+!~~~> Gamma_i = \sum_j  gamma_{i,j}    
+   ros_Gamma(1) = 0.5728200000000000d+00
+   ros_Gamma(2) =-0.1769193891319233d+01
+   ros_Gamma(3) = 0.7592633437920482d+00
+   ros_Gamma(4) =-0.1049021087100450d+00
+
+  END SUBROUTINE Ros4
+   
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+  SUBROUTINE Rodas3
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+! --- A STIFFLY-STABLE METHOD, 4 stages, order 3
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+
+   IMPLICIT NONE
+   
+    rosMethod = RD3
+!~~~> Name of the method
+   ros_Name = 'RODAS-3'   
+!~~~> Number of stages
+   ros_S = 4
+   
+!~~~> The coefficient matrices A and C are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+!   The general mapping formula is:
+!       A(i,j) = ros_A( (i-1)*(i-2)/2 + j )    
+!       C(i,j) = ros_C( (i-1)*(i-2)/2 + j )  
+ 
+   ros_A(1) = 0.0d+00
+   ros_A(2) = 2.0d+00
+   ros_A(3) = 0.0d+00
+   ros_A(4) = 2.0d+00
+   ros_A(5) = 0.0d+00
+   ros_A(6) = 1.0d+00
+
+   ros_C(1) = 4.0d+00
+   ros_C(2) = 1.0d+00
+   ros_C(3) =-1.0d+00
+   ros_C(4) = 1.0d+00
+   ros_C(5) =-1.0d+00 
+   ros_C(6) =-(8.0d+00/3.0d+00) 
+         
+!~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+   ros_NewF(1)  = .TRUE.
+   ros_NewF(2)  = .FALSE.
+   ros_NewF(3)  = .TRUE.
+   ros_NewF(4)  = .TRUE.
+!~~~> M_i = Coefficients for new step solution
+   ros_M(1) = 2.0d+00
+   ros_M(2) = 0.0d+00
+   ros_M(3) = 1.0d+00
+   ros_M(4) = 1.0d+00
+!~~~> E_i  = Coefficients for error estimator    
+   ros_E(1) = 0.0d+00
+   ros_E(2) = 0.0d+00
+   ros_E(3) = 0.0d+00
+   ros_E(4) = 1.0d+00
+!~~~> ros_ELO  = estimator of local order - the minimum between the
+!    main and the embedded scheme orders plus 1
+   ros_ELO  = 3.0d+00    
+!~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+   ros_Alpha(1) = 0.0d+00
+   ros_Alpha(2) = 0.0d+00
+   ros_Alpha(3) = 1.0d+00
+   ros_Alpha(4) = 1.0d+00
+!~~~> Gamma_i = \sum_j  gamma_{i,j}    
+   ros_Gamma(1) = 0.5d+00
+   ros_Gamma(2) = 1.5d+00
+   ros_Gamma(3) = 0.0d+00
+   ros_Gamma(4) = 0.0d+00
+
+  END SUBROUTINE Rodas3
+    
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+  SUBROUTINE Rodas4
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+!     STIFFLY-STABLE ROSENBROCK METHOD OF ORDER 4, WITH 6 STAGES
+!
+!      E. HAIRER AND G. WANNER, SOLVING ORDINARY DIFFERENTIAL
+!      EQUATIONS II. STIFF AND DIFFERENTIAL-ALGEBRAIC PROBLEMS.
+!      SPRINGER SERIES IN COMPUTATIONAL MATHEMATICS,
+!      SPRINGER-VERLAG (1996)         
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+
+   IMPLICIT NONE
+
+    rosMethod = RD4
+!~~~> Name of the method
+    ros_Name = 'RODAS-4'   
+!~~~> Number of stages
+    ros_S = 6
+
+!~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+    ros_Alpha(1) = 0.000d0
+    ros_Alpha(2) = 0.386d0
+    ros_Alpha(3) = 0.210d0 
+    ros_Alpha(4) = 0.630d0
+    ros_Alpha(5) = 1.000d0
+    ros_Alpha(6) = 1.000d0
+        
+!~~~> Gamma_i = \sum_j  gamma_{i,j}    
+    ros_Gamma(1) = 0.2500000000000000d+00
+    ros_Gamma(2) =-0.1043000000000000d+00
+    ros_Gamma(3) = 0.1035000000000000d+00
+    ros_Gamma(4) =-0.3620000000000023d-01
+    ros_Gamma(5) = 0.0d0
+    ros_Gamma(6) = 0.0d0
+
+!~~~> The coefficient matrices A and C are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+!   The general mapping formula is:  A(i,j) = ros_A( (i-1)*(i-2)/2 + j )    
+!                  C(i,j) = ros_C( (i-1)*(i-2)/2 + j )  
+     
+    ros_A(1) = 0.1544000000000000d+01
+    ros_A(2) = 0.9466785280815826d+00
+    ros_A(3) = 0.2557011698983284d+00
+    ros_A(4) = 0.3314825187068521d+01
+    ros_A(5) = 0.2896124015972201d+01
+    ros_A(6) = 0.9986419139977817d+00
+    ros_A(7) = 0.1221224509226641d+01
+    ros_A(8) = 0.6019134481288629d+01
+    ros_A(9) = 0.1253708332932087d+02
+    ros_A(10) =-0.6878860361058950d+00
+    ros_A(11) = ros_A(7)
+    ros_A(12) = ros_A(8)
+    ros_A(13) = ros_A(9)
+    ros_A(14) = ros_A(10)
+    ros_A(15) = 1.0d+00
+
+    ros_C(1) =-0.5668800000000000d+01
+    ros_C(2) =-0.2430093356833875d+01
+    ros_C(3) =-0.2063599157091915d+00
+    ros_C(4) =-0.1073529058151375d+00
+    ros_C(5) =-0.9594562251023355d+01
+    ros_C(6) =-0.2047028614809616d+02
+    ros_C(7) = 0.7496443313967647d+01
+    ros_C(8) =-0.1024680431464352d+02
+    ros_C(9) =-0.3399990352819905d+02
+    ros_C(10) = 0.1170890893206160d+02
+    ros_C(11) = 0.8083246795921522d+01
+    ros_C(12) =-0.7981132988064893d+01
+    ros_C(13) =-0.3152159432874371d+02
+    ros_C(14) = 0.1631930543123136d+02
+    ros_C(15) =-0.6058818238834054d+01
+
+!~~~> M_i = Coefficients for new step solution
+    ros_M(1) = ros_A(7)
+    ros_M(2) = ros_A(8)
+    ros_M(3) = ros_A(9)
+    ros_M(4) = ros_A(10)
+    ros_M(5) = 1.0d+00
+    ros_M(6) = 1.0d+00
+
+!~~~> E_i  = Coefficients for error estimator    
+    ros_E(1) = 0.0d+00
+    ros_E(2) = 0.0d+00
+    ros_E(3) = 0.0d+00
+    ros_E(4) = 0.0d+00
+    ros_E(5) = 0.0d+00
+    ros_E(6) = 1.0d+00
+
+!~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+    ros_NewF(1) = .TRUE.
+    ros_NewF(2) = .TRUE.
+    ros_NewF(3) = .TRUE.
+    ros_NewF(4) = .TRUE.
+    ros_NewF(5) = .TRUE.
+    ros_NewF(6) = .TRUE.
+     
+!~~~> ros_ELO  = estimator of local order - the minimum between the
+!        main and the embedded scheme orders plus 1
+    ros_ELO = 4.0d0
+     
+  END SUBROUTINE Rodas4
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+END SUBROUTINE RosenbrockTLM
+!  and all its internal procedures
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+  
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+SUBROUTINE FunTemplate( T, Y, Ydot )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
+!  Template for the ODE function call.
+!  Updates the rate coefficients (and possibly the fixed species) at each call    
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+
+   IMPLICIT NONE
+!~~~> Input variables     
+   KPP_REAL :: T, Y(NVAR)
+!~~~> Output variables     
+   KPP_REAL :: Ydot(NVAR)
+!~~~> Local variables
+   KPP_REAL :: Told     
+
+   Told = TIME
+   TIME = T
+   CALL Update_SUN()
+   CALL Update_RCONST()
+   CALL Fun( Y, FIX, RCONST, Ydot )
+   TIME = Told
+        
+END SUBROUTINE FunTemplate
+
+ 
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+SUBROUTINE JacTemplate( T, Y, Jcb )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+!  Template for the ODE Jacobian call.
+!  Updates the rate coefficients (and possibly the fixed species) at each call    
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+    IMPLICIT NONE
+   
+!~~~> Input variables     
+    KPP_REAL :: T, Y(NVAR)
+!~~~> Output variables     
+    KPP_REAL :: Jcb(LU_NONZERO)
+!~~~> Local variables
+    KPP_REAL :: Told     
+
+    Told = TIME
+    TIME = T   
+    CALL Update_SUN()
+    CALL Update_RCONST()
+    CALL Jac_SP( Y, FIX, RCONST, Jcb )
+    TIME = Told
+     
+END SUBROUTINE JacTemplate                                      
+
+
+ 
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+SUBROUTINE HessTemplate( T, Y, Hes )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+!  Template for the ODE Hessian call.
+!  Updates the rate coefficients (and possibly the fixed species) at each call    
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+    IMPLICIT NONE
+    
+!~~~> Input variables     
+    KPP_REAL :: T, Y(NVAR)
+!~~~> Output variables     
+    KPP_REAL :: Hes(NHESS)
+!~~~> Local variables
+    KPP_REAL :: Told     
+
+    Told = TIME
+    TIME = T   
+    CALL Update_SUN()
+    CALL Update_RCONST()
+    CALL Hessian( Y, FIX, RCONST, Hes )
+    TIME = Told
+
+END SUBROUTINE HessTemplate                                      
+
+END MODULE KPP_ROOT_Integrator
+
+
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/runge_kutta.c
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/runge_kutta.c	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/runge_kutta.c	(revision 2696)
@@ -0,0 +1,2087 @@
+ #define MAX(a,b) ( ((a) >= (b)) ?(a):(b)  )
+ #define MIN(b,c) ( ((b) <  (c)) ?(b):(c)  )
+ #define ABS(x)   ( ((x) >=  0 ) ?(x):(-x) )
+ #define SQRT(d)  ( pow((d),0.5)  )
+ /* SIGN transfer function */
+ #define SIGN(x,y) (((y) >=  0 ) ?(ABS(x)):(-ABS(x)) ) 
+
+/*~~> Numerical constants */
+ #define  ZERO     (KPP_REAL)0.0
+ #define  ONE      (KPP_REAL)1.0
+
+/*~~~> Statistics on the work performed by the Runge-Kutta method */
+ #define Nfun	0
+ #define Njac	1
+ #define Nstp	2
+ #define Nacc	3
+ #define Nrej	4
+ #define Ndec	5
+ #define Nsol	6
+ #define Nsng	7
+ #define Ntexit	0
+ #define Nhacc	1
+ #define Nhnew	2
+
+/*~~~> Runge-Kutta method parameters */
+ #define RKmax 3
+
+ #define R2A 1
+ #define R1A 2
+ #define L3C 3
+ #define GAU 4
+ #define L3A 5
+
+ int rkMethod,
+     SdirkError;
+ KPP_REAL rkT[RKmax][RKmax],
+	rkTinv[RKmax][RKmax],
+       	rkTinvAinv[RKmax][RKmax],
+   	rkAinvT[RKmax][RKmax],
+   	rkA[RKmax+1][RKmax+1],
+   	rkB[RKmax+1],
+      	rkC[RKmax+1],
+       	rkD[RKmax+1],
+       	rkE[RKmax+1],
+   	rkBgam[RKmax+2],
+       	rkBhat[RKmax+2],
+       	rkTheta[RKmax+1],
+       	rkF[RKmax+2],
+   	rkGamma,
+   	rkAlpha,
+   	rkBeta,
+	rkELO;
+/*~~~> Function headers */
+// void INTEGRATE(KPP_REAL TIN, KPP_REAL TOUT, int ICNTRL_U[], KPP_REAL RCNTRL_U[],
+//		int ISTATUS_U[], KPP_REAL RSTATUS_U[], int IERR_U); 
+ void INTEGRATE(KPP_REAL TIN, KPP_REAL TOUT); 
+ void RungeKutta(int N, KPP_REAL T, KPP_REAL Tend, KPP_REAL Y[],
+     	       KPP_REAL RelTol[], KPP_REAL AbsTol[], KPP_REAL RCNTRL[],
+	       int ICNTRL[], KPP_REAL RSTATUS[], int ISTATUS[], int* IERR);
+ void RK_Integrator(int N, KPP_REAL*  T, KPP_REAL  Tend, KPP_REAL Y[],
+     		   KPP_REAL AbsTol[], KPP_REAL RelTol[], int ITOL,
+     		   int ISTATUS[], KPP_REAL RSTATUS[], KPP_REAL Hmin,
+		   KPP_REAL Hmax, KPP_REAL Hstart, KPP_REAL Roundoff,
+		   int Max_no_steps, int NewtonMaxit, int StartNewton,
+		   int Gustafsson, KPP_REAL ThetaMin, KPP_REAL NewtonTol,
+		   KPP_REAL FacSafe, KPP_REAL FacMax, KPP_REAL FacMin,
+     		   KPP_REAL FacRej, KPP_REAL Qmin, KPP_REAL Qmax, int* IERR);
+ void RK_ErrorMsg(int Code, KPP_REAL T, KPP_REAL H, int* IERR);
+ void RK_ErrorScale(int N, int ITOL, KPP_REAL AbsTol[], KPP_REAL RelTol[], 
+		KPP_REAL Y[], KPP_REAL SCAL[]);
+ /*void RK_Transform(int N, KPP_REAL Tr[][RKmax], KPP_REAL Z1[], KPP_REAL Z2[],
+                KPP_REAL Z3[], KPP_REAL W1[], KPP_REAL W2[], KPP_REAL W3[]);*/
+ void RK_Interpolate(char action[], int N, KPP_REAL H, KPP_REAL Hold,
+	 KPP_REAL Z1[], KPP_REAL Z2[], KPP_REAL Z3[], KPP_REAL CONT[][RKmax]);
+ void RK_PrepareRHS(int N, KPP_REAL T, KPP_REAL H, KPP_REAL Y[], KPP_REAL FO[],
+        KPP_REAL Z1[], KPP_REAL Z2[], KPP_REAL Z3[], KPP_REAL R1[], KPP_REAL R2[],
+        KPP_REAL R3[]);
+ void RK_Decomp(int N, KPP_REAL H, KPP_REAL FJAC[], KPP_REAL E1[],
+                int IP1[], KPP_REAL E2R[], KPP_REAL E2I[], 
+		int IP2[], int* ISING, int ISTATUS[]);
+ void RK_Solve(int N, KPP_REAL H, KPP_REAL E1[], int IP1[], KPP_REAL E2R[],
+	KPP_REAL E2I[], int IP2[], KPP_REAL R1[], KPP_REAL R2[], KPP_REAL R3[],
+	int ISTATUS[]);
+ void RK_ErrorEstimate(int N, KPP_REAL H, KPP_REAL T, KPP_REAL Y[],
+        KPP_REAL FO[], KPP_REAL E1[], int IP1[], KPP_REAL Z1[],
+        KPP_REAL Z2[], KPP_REAL Z3[], KPP_REAL SCAL[], KPP_REAL* Err,
+        int FirstStep, int Reject, int ISTATUS[]);
+ void Radau2A_Coefficients();
+ void Lobatto3C_Coefficients ();
+ void Gauss_Coefficients();
+ void Radau1A_Coefficients();
+ void Lobatto3A_Coefficients();
+ void FUN_CHEM(KPP_REAL T, KPP_REAL V[], KPP_REAL FCT[]);
+ void JAC_CHEM(KPP_REAL T, KPP_REAL V[], KPP_REAL JF[]);
+ KPP_REAL RK_ErrorNorm(int N, KPP_REAL SCAL[], KPP_REAL DY[]);
+ void Fun(KPP_REAL Y[], KPP_REAL FIX[], KPP_REAL RCONST[], KPP_REAL Ydot[]);
+ void Jac_SP(KPP_REAL Y[], KPP_REAL FIX[], KPP_REAL RCONST[], KPP_REAL Ydot[]);
+ void WCOPY(int N, KPP_REAL X[], int incX, KPP_REAL Y[], int incY);
+ void WADD(int N, KPP_REAL Y[], KPP_REAL Z[], KPP_REAL TMP[]);
+ void WAXPY(int N, KPP_REAL Alpha, KPP_REAL X[], int incX, KPP_REAL Y[], int incY );
+ KPP_REAL WLAMCH( char C );
+ void KppSolveCmplxR(KPP_REAL JVSR[], KPP_REAL JVSI[], KPP_REAL XR[], KPP_REAL XI[]);
+ int KppDecompCmplxR(KPP_REAL *JVSR, KPP_REAL *JVSI);
+ void Set2Zero(int N, KPP_REAL A[]);
+ int KppDecomp( KPP_REAL A[] );
+ void KppSolve ( KPP_REAL A[], KPP_REAL b[] );
+ void Update_SUN();
+ void Update_RCONST();
+ void Update_PHOTO();
+ 
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+//void INTEGRATE(KPP_REAL TIN, KPP_REAL TOUT, int ICNTRL_U[], KPP_REAL RCNTRL_U[],
+//	       int ISTATUS_U[], KPP_REAL RSTATUS_U[], int IERR_U )
+void INTEGRATE(KPP_REAL TIN, KPP_REAL TOUT )
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+/* RungeKutta - Fully Implicit 3-stage Runge-Kutta methods based on:
+          * Radau-2A   quadrature (order 5)                        
+          * Radau-1A   quadrature (order 5)                              
+          * Lobatto-3C quadrature (order 4)                              
+          * Gauss      quadrature (order 6)                              
+  By default the code employs the KPP sparse linear algebra routines     
+  Compile with -DFULL_ALGEBRA to use full linear algebra (LAPACK)        
+                                                                         
+    (C)  Adrian Sandu, August 2005                                       
+    Virginia Polytechnic Institute and State University                  
+    Contact: sandu@cs.vt.edu                                             
+    Revised by Philipp Miehe and Adrian Sandu, May 2006  
+    F90 to C translation by Tinting Jiang and Don Jacob, July 2006                
+    This implementation is part of KPP - the Kinetic PreProcessor        
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+{
+   int IERR;
+   KPP_REAL RCNTRL[20],
+  	  RSTATUS[20],
+	  T1,
+	  T2;
+   int ICNTRL[20],
+       ISTATUS[20];
+   static int Ntotal = 0; /* for printing the number of steps */
+   
+   int i;
+   for ( i = 0; i < 20; i++ ) {
+     RCNTRL[i] = ZERO;
+     ICNTRL[i] = 0;
+   } /* for */
+
+   /*~~~> fine-tune the integrator: */
+   ICNTRL[1]  = 0;    /* 0=vector tolerances, 1=scalar tolerances */
+   ICNTRL[4]  = 8;    /* Max no. of Newton iterations */
+   ICNTRL[5]  = 0;    /* Starting values for Newton are interpolated(0) or zero(1) */
+   ICNTRL[9]  = 1;    /* 0 - classic or 1 - SDIRK error estimation */
+   ICNTRL[10] = 0;    /* Gustaffson(0) or classic(1) controller */ 
+   
+//   /*~~~> if optional parameters are given, and if they are >0,
+//          then use them to overwrite default settings */	
+//   if (ICNTRL_U != NULL) {
+//	for ( i = 0; i < 20; i++) {
+//	   if (ICNTRL_U[i] > 0) {
+//		  ICNTRL[i] = ICNTRL_U[i];
+//	   } /* end if */
+//	} /* end for */
+//   } /* end if */
+//   if (RCNTRL_U != NULL) {
+//	for (i = 0; i < 20; i++) {
+//   	   if (RCNTRL_U[i] > 0) {
+//		RCNTRL[i] = RCNTRL_U[i];
+//	   } /* end if */
+//	} /* end for */
+//   } /* end if */
+
+   T1 = TIN;
+   /*printf("T1=%f\n", T1);*/
+   T2 = TOUT;
+   /*printf("T2=%f\n", T2);*/
+   RungeKutta(NVAR, T1, T2, VAR, RTOL, ATOL, RCNTRL,ICNTRL,RSTATUS,ISTATUS, &IERR);
+   
+   Ntotal += ISTATUS[Nstp];
+   printf("NSTEPS=%d (%d)  O3=%E ", ISTATUS[Nstp], Ntotal, VAR[ind_O3]);
+
+//   /* if optional parameters are given for output
+//    * use them to store information in them */
+//   if (ISTATUS_U != NULL) {
+//	for (i = 0; i < 20; i++) {
+//	   ISTATUS_U[i] = ISTATUS[i];
+//	} /* end for */
+//    } /* end if */
+//   if (RSTATUS_U != NULL) {
+//	for (i = 0; i < 20; i++) {
+//	   RSTATUS_U[i] = RSTATUS[i];
+//	} /* end for */
+//   } /* end if */
+//   /*if (IERR_U != NULL) */
+//	IERR_U = IERR;
+
+   if (IERR < 0) {
+	printf("Runge-Kutta: Unsuccessful exit at T=%f(IERR=%d)", TIN, IERR);
+   } /* end if */
+   
+} /* end INTEGRATE */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+void RungeKutta(int N, KPP_REAL T, KPP_REAL Tend, KPP_REAL Y[],
+     	       KPP_REAL RelTol[], KPP_REAL AbsTol[], KPP_REAL RCNTRL[],
+	       int ICNTRL[], KPP_REAL RSTATUS[], int ISTATUS[], int* IERR)
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+    This implementation is based on the book and the code Radau5:
+
+     	E. HAIRER AND G. WANNER
+     	"SOLVING ORDINARY DIFFERENTIAL EQUATIONS II.
+       	     STIFF AND DIFFERENTIAL-ALGEBRAIC PROBLEMS."
+     	SPRINGER SERIES IN COMPUTATIONAL MATHEMATICS 14,
+        SPRINGER-VERLAG (1991)
+
+	UNIVERSITE DE GENEVE, DEPT. DE MATHEMATIQUES
+	CH-1211 GENEVE 24, SWITZERLAND
+    	E-MAIL:  HAIRER@DIVSUN.UNIGE.CH,  WANNER@DIVSUN.UNIGE.CH
+   
+    Methods:
+	 * Radau-2A	quadrature (order 5)
+      	 * Radau-1A	quadrature (order 5)
+      	 * Lobatto-3C	quadrature (order 4)
+    	 * Gauss	quadrature (order 6)
+
+    (C)  Adrian Sandu, August 2005
+    Virginia Polytechnic Institute and State University
+    Contact: sandu@cs.vt.edu
+    This implementation is part of KPP - the Kinetic PreProcessor
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  *~~~>   INPUT ARGUMENTS:
+	  ----------------
+    Note: For input parameters equal to zero the default values of the
+	  corresponding variables are used.
+
+     N		Dimension of the system
+     T		Initial time value
+
+     Tend	Final T value (Tend-T may be positive or negative)
+
+     Y(N)	Initial values for Y
+
+     RelTol, AbsTol   Relative and absolute error tolerances.
+           for ICNTRL[1] = 0: AbsTol, RelTol are N-dimensional vectors
+                         = 1: AbsTol, RelTol are scalars
+  *~~~>   Integer input parameters:
+
+     ICNTRL[0] = not used
+     
+     ICNTRL[1] = 0: AbsTol, RelTol are NVAR-dimensional vectors
+               = 1: AbsTol, RelTol are scalars
+
+     ICNTRL[2] = RK method selection
+	     = 1: Radau-2A	(the default)
+	     = 2: Radau-1A
+	     = 3: Lobatto-3C
+	     = 4: Gauss
+	     = 5: Lobatto-3A (not yet implemented)
+
+     ICNTRL[3] -> maximum number of integration steps
+	For ICNTRL[3] = 0 the default value of 10000 is used
+
+     ICNTRL[4] -> maximum number of Newton iterations
+	For ICNTRL[4] = 0 the default value of 8 is used
+
+     ICNTRL[5] -> starting values of Newton iterations:
+	ICNTRL[5] = 0: starting values are obtained from
+		     the extrapolated collocation solution
+		     (the default)
+   	ICNTRL[5] = 1: starting values are zero
+
+     ICNTRL[9] -> switch for error estimation strategy
+	ICNTRL[9] = 0: one additional stage at c = 0,
+		     see Hairer (default)
+	ICNTRL[9] = 1: two additional stages at c = 0,
+		     and SDIRK at c = 1, stiffly accurate
+
+     ICNTRL[10] -> switch for step size strategy
+	ICNTRL[10] = 0: mod. predictive controller (Gustafsson, default)
+	ICNTRL[10] = 1: classical step size control
+ 	the choice 1 seems to produce safer results;
+	for simple problems, the choice 2 produces
+	often slightly faster runs
+
+  *~~~>   Real input parameters:
+     RCNTRL[0]  -> Hmin, lower bound for the integration step size
+		(highly recommended to keep Hmin = ZERO, the default)
+
+     RCNTRL[1]  -> Hmax, upper bound for the integration step size
+
+     RCNTRL[2]  -> Hstart, the starting step size
+
+     RCNTRL[3]  -> FacMin, lower bound on step decrease factor 
+		(default=0.2)
+
+     RCNTRL[4]  -> FacMax, upper bound on step increase factor
+		(default=6)
+
+     RCNTRL[5]  -> FacRej, step decrease factor after multiple rejections
+		(default=0.1)
+
+     RCNTRL[6]  -> FacSafe, by which the new step is slightly smaller
+		than the predicted value (default=0.9)
+
+     RCNTRL[7]  -> ThetaMin. If Newton convergence rate smaller
+		than ThetaMin the Jacobian is not recomputed;
+		(default=0.001)
+
+     RCNTRL[8]  -> NewtonTol, stopping criterion for Newton's method
+		(default=0.03)
+
+     RCNTRL[9]  -> Qmin
+
+     RCNTRL[10] -> Qmax. If Qmin < Hnew/Hold < Qmax, then the
+		 step size is kept constant and the LU factorization
+		 reused (default Qmin=1, Qmax=1.2)	
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  *~~~>     OUTPUT ARGUMENTS:
+            -----------------
+     T	      -> T value for which the solution has been computed
+		 (after successful return T=Tend).
+
+     Y(N)  -> Numerical solution at T
+
+  Note: each call to RungeKutta adds the current no. of fcn calls
+	to previous value of ISTATUS[0], and similar to other params.
+	Set ISTATUS[1:9] = 0 before call to avoid this accumulation.
+
+     ISTATUS[0] -> No. of function calls
+     ISTATUS[1] -> No. of Jacobian calls
+     ISTATUS[2] -> No. of steps
+     ISTATUS[3] -> No. of accepted steps
+     ISTATUS[4] -> No. of rejected steps (except at very beginning)
+     ISTATUS[5] -> No. of LU decompositions
+     ISTATUS[6] -> No. of forward/backward substitutions
+     ISTATUS[7] -> No. of singular matrix decompositions
+
+     RSTATUS[0] -> Texit, the time corresponding to the 
+		 computed Y upon return
+     RSTATUS[1] -> Hexit, last accepted step before exit
+     RSTATUS[2] -> Hnew, last predicted step (not yet taken)
+		 For multiple restarts, use Hnew as Hstart
+  		 in the subsequent run
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  *~~~>    RETURN VALUE (int):
+
+     IERR     -> Reports on successfulness upon return:
+	= 1 for success
+	< 0 for error (value equals error code)
+	= -1  : Improper value for maximal no of steps
+	= -2  : Improper value for maximal no of Newton iterations
+	= -3  : Hmin/Hmax/Hstart must be positive
+    	= -4  : Improper values for FacMin/FacMax/FacSafe/FacRej
+    	= -5  : Improper value for ThetaMin
+    	= -6  : Newton stopping tolerance too small
+    	= -7  : Improper values for Qmin, Qmax
+    	= -8  : Tolerances are too small
+    	= -9  : No of steps exceeds maximum bound
+    	= -10 : Step size too small
+	= -11 : Matrix is repeatedly singular
+   	= -12 : Non-convergence of Newton iterations
+    	= -13 : Requested RK method not implemented
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+{
+  /*~~~>  Control arguments */
+  /*printf("Starting RungeKutta\n");*/
+   int Max_no_steps;
+   KPP_REAL Hmin,
+  	  Hmax,
+	  Hstart,
+	  Qmin,
+	  Qmax,
+   	  Roundoff,
+	  ThetaMin,
+	  NewtonTol,
+   	  FacSafe,
+          FacMin,
+	  FacMax,
+	  FacRej;
+  /*~~~> Local variables */
+   int NewtonMaxit,
+       ITOL,
+       i,
+       StartNewton,
+       Gustafsson; 
+
+   *IERR = 0;
+   for (i = 0; i < 20; i++) {
+	ISTATUS[i] = 0;
+	RSTATUS[i] = ZERO;
+   } /* end for */
+   
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+
+  /*~~~> ICNTRL[0] - autonomous system - not used */
+  /*~~~> ITOL: 1 for vector and 0 for scalar AbsTol/RelTol */
+   if (ICNTRL[1] == 0) {
+	/*printf("Entering if ICNTRL[1] == 0\n");*/
+	ITOL = 1;
+   }
+   else {
+	ITOL = 0;
+   } /*end if */
+  /*~~~> Error control selection */
+   if (ICNTRL[9] == 0) {
+	SdirkError = 0;
+   }
+   else {
+	/*printf("Entering if ICNTRL[9] == 1\n");*/    
+	SdirkError = 1;
+   } /* end if */
+  /*~~~> Method Selection */
+  /*printf("Starting case ICNTRL[2]\n");*/
+   switch (ICNTRL[2]) {
+	case 0:
+	case 1:	Radau2A_Coefficients(); /*printf("case 0 or 1\n");*/
+		break;
+	case 2: Lobatto3C_Coefficients(); printf("case 2\n");
+		break;
+	case 3: Gauss_Coefficients(); printf("case 3\n");
+		break;
+	case 4: Radau1A_Coefficients(); printf("case 4\n");
+		break;
+	case 5: Lobatto3A_Coefficients(); printf("case 5\n");
+		break;
+	default:
+		printf("\n ICNTRL[2]=%d\n", ICNTRL[2]);
+		RK_ErrorMsg(-13, T, ZERO, IERR);
+   } /* end switch */
+ 
+ /*~~~> Max_no_steps: the maximal number of time steps */
+   if (ICNTRL[3] == 0) {
+	Max_no_steps = 200000;
+	/*printf("Max_no_steps = %d\n", Max_no_steps);*/
+   }
+   else {
+	Max_no_steps = ICNTRL[3];
+	if (Max_no_steps <= 0)
+	{
+		printf("\n ICNTRL[3]=%d\n", ICNTRL[3]);
+		RK_ErrorMsg(-1, T, ZERO, IERR);
+	} /* end if */
+   } /* end if */
+
+ /*~~~> NewtonMaxit: maximal number of Newton iterations */
+   if (ICNTRL[4] == 0)
+	NewtonMaxit = 8;
+   else 
+   {
+	NewtonMaxit = ICNTRL[4];
+	if (NewtonMaxit <= 0) {
+		printf("\n ICNTRL[4]=%d\n", ICNTRL[4]);
+		RK_ErrorMsg(-2, T, ZERO, IERR);
+	}
+	/*printf("NewtonMaxit = %d\n", NewtonMaxit);*/
+   } /* end if */
+
+ /*~~~> StartNewton: Use extrapolation for starting values of Newton iterations */
+   if (ICNTRL[5] == 0) {
+	StartNewton = 1;
+	/*printf("StartNewton = %d\n", StartNewton);*/
+   }
+   else {
+	StartNewton = 0;
+   } /* end if */
+
+ /*~~~> Gustafsson: step size controller */
+   if (ICNTRL[10] == 0) {
+	Gustafsson = 1;
+	/*printf("Gustafsson = %d\n", Gustafsson);*/
+   }
+   else {
+	Gustafsson = 0;
+   } /* end if */
+  
+ /*~~~> Roundoff: smallest number s.t. 1.0 + Roundoff > 1.0 */
+   Roundoff = WLAMCH('E');
+   /*printf("Roundoff=%f\n", Roundoff);*/
+ /*~~~> Hmin = minimal step size */
+   if (RCNTRL[0] == ZERO) {
+	/*printf("Entering if RCNTRL[0]=%f == ZERO\n", RCNTRL[0]);*/   
+	Hmin = ZERO;
+   }
+   else {
+	Hmin = MIN(ABS(RCNTRL[0]), ABS(Tend-T));
+   } /* end if */
+ /*~~~> Hmax = maximal step size */
+   if (RCNTRL[1] == ZERO) {
+	/*printf("Entering if RCNTRL[1]=%f == ZERO\n", RCNTRL[1]);*/   
+      	Hmax = ABS(Tend-T);
+   }
+   else {
+      	Hmax = MIN(ABS(RCNTRL[1]),ABS(Tend-T));
+   } /* end if */
+ /*~~~> Hstart = starting step size */
+   if (RCNTRL[2] == ZERO) {
+	/*printf("Entering if RCNTRL[2]=%f == ZERO\n", RCNTRL[2]);*/   
+    	Hstart = ZERO;
+   }
+   else {
+	Hstart = MIN(ABS(RCNTRL[2]),ABS(Tend-T));
+   } /* end if */
+ /*~~~> FacMin: lower bound on step decrease factor */
+   if (RCNTRL[3] == ZERO) {
+	/*printf("Entering if RCNTRL[3]=%f == ZERO\n", RCNTRL[3]);*/   
+	FacMin = (KPP_REAL)0.2;
+   }
+   else {
+   	FacMin = RCNTRL[3];
+   } /* end if */
+ /*~~~> FacMax: upper bound on step increase factor */
+   if (RCNTRL[4] == ZERO) {
+	/*printf("Entering if RCNTRL[4]=%f == ZERO\n", RCNTRL[4]);*/   
+    	FacMax = (KPP_REAL)8.0;
+   }
+   else {
+    	FacMax = RCNTRL[4];
+   } /* end if */
+ /*~~~> FacRej: step decrease factor after 2 consecutive rejections */
+   if (RCNTRL[5] == ZERO) {
+	/*printf("Entering if RCNTRL[5]=%f == ZERO\n", RCNTRL[5]);*/
+	FacRej = (KPP_REAL)0.1;
+   }
+   else {
+     	FacRej = RCNTRL[5];
+   } /* end if */
+ /*~~~> FacSafe: by which the new step is slightly smaller
+		 than the predicted value */
+   if (RCNTRL[6] == ZERO) {
+	/*printf("Entering if RCNTRL[6]=%f == ZERO\n", RCNTRL[6]);*/   
+    	FacSafe = (KPP_REAL)0.9;
+   }
+   else {
+ 	FacSafe = RCNTRL[6];
+   } /* end if */
+   if ((FacMax < ONE) || (FacMin > ONE) || (FacSafe <= 1.0e-03) || (FacSafe >= ONE)) {
+	printf("\n RCNTRL[3]=%f, RCNTRL[4]=%f, RCNTRL[5]=%f, RCNTRL[6]=%f\n",
+		RCNTRL[3], RCNTRL[4], RCNTRL[5], RCNTRL[6]);
+	RK_ErrorMsg(-4, T, ZERO, IERR);
+   } /* end if */
+
+ /*~~~> ThetaMin: decides whether the Jacobian should be recomputed */
+   if (RCNTRL[7] == ZERO)
+  	ThetaMin = (KPP_REAL)1.0e-03;
+   else {
+	ThetaMin = RCNTRL[7];
+	if (ThetaMin <= (KPP_REAL)0.0 || ThetaMin >= (KPP_REAL)1.0) {
+		printf("\n RCNTRL[7]=%f\n", RCNTRL[7]);
+		RK_ErrorMsg(-5, T, ZERO, IERR);
+	}
+   } /* end if */
+ /*~~~> NewtonTol: stopping criterion for Newton's method */
+   if (RCNTRL[8] == ZERO)
+	NewtonTol = (KPP_REAL)3.0e-02;
+   else {
+	NewtonTol = RCNTRL[8];
+  	if (NewtonTol <= Roundoff) {
+		printf("\n RCNTRL[8]=%f\n", RCNTRL[8]);
+		RK_ErrorMsg(-6, T, ZERO, IERR);
+	}
+   } /* end if */
+ /*~~~> Qmin AND Qmax: IF Qmin < Hnew/Hold < Qmax then step size = const. */
+   if (RCNTRL[9] == ZERO) {
+	Qmin = ONE;
+   }
+   else {
+	Qmin = RCNTRL[9];
+   } /* end if */
+   if (RCNTRL[10] == ZERO) {
+	Qmax = (KPP_REAL)1.2;
+   }
+   else {
+	Qmax = RCNTRL[10];
+   } /* end if */
+   if (Qmin > ONE || Qmax < ONE) {
+	printf("\n RCNTRL[9]=%f\n", Qmin);
+	printf("\n RCNTRL[10]=%f\n", Qmax);
+	RK_ErrorMsg(-7, T, ZERO, IERR);
+   } /* end if */
+ /*~~~> Check if tolerances are reasonable */
+   if (ITOL == 0) {
+	if ( AbsTol[0] <= ZERO || RelTol[0] <= ( ((KPP_REAL)10.0)*Roundoff) ) {
+	   printf("\n AbsTol=%f\n", AbsTol[0]);
+	   printf("\n RelTol=%f\n", RelTol[0]);
+	   RK_ErrorMsg(-8, T, ZERO, IERR);
+	}
+   }
+   else {
+	for (i = 0; i < N; i++) {
+	   if ( (AbsTol[i] <= ZERO) || (RelTol[i] <= ((KPP_REAL)10.0)*Roundoff) ) {
+                printf("\n AbsTol[%d] = %f\n", i, AbsTol[i]);
+		printf("\n AbsTol[%d] = %f\n", i, RelTol[i]);
+		RK_ErrorMsg(-8, T, ZERO, IERR);
+	   } /* end if */
+	} /* end for */
+   } /* end if */
+
+ /*~~~> Parameters are wrong */
+   if (*IERR < 0)
+	return;
+
+ /*~~~> Call the core method */	
+   RK_Integrator(N, &T, Tend, Y, AbsTol, RelTol, ITOL, ISTATUS, RSTATUS,
+		   Hmin, Hmax, Hstart, Roundoff, Max_no_steps, NewtonMaxit,
+		   StartNewton, Gustafsson, ThetaMin, NewtonTol,
+		   FacSafe, FacMax, FacMin, FacRej, Qmin, Qmax, IERR);
+  /*printf("*IERR = %d\n", *IERR);*/
+  /*printf("Ending RungeKutta\n");*/
+} /* RungeKutta */
+   
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void RK_Integrator( int N, 
+	/*~~~> Input: integration interval */        
+     	KPP_REAL*  T, KPP_REAL  Tend, KPP_REAL Y[],
+     	KPP_REAL AbsTol[], KPP_REAL RelTol[], int ITOL,
+  /*~~~> Input: the initial condition at T; output: the solution at Tend */     
+     	int ISTATUS[], KPP_REAL RSTATUS[], KPP_REAL Hmin, KPP_REAL Hmax, 
+	KPP_REAL Hstart, KPP_REAL Roundoff, int Max_no_steps, int NewtonMaxit,
+       	int StartNewton, int Gustafsson, KPP_REAL ThetaMin,
+       	KPP_REAL NewtonTol, KPP_REAL FacSafe, KPP_REAL FacMax, KPP_REAL FacMin,
+     	KPP_REAL FacRej, KPP_REAL Qmin, KPP_REAL Qmax, int* IERR)
+{  
+   /*printf("Starting RK_Integrator\n");*/
+   KPP_REAL FJAC[LU_NONZERO],
+  	  E1[LU_NONZERO],
+	  E2R[LU_NONZERO],
+	  E2I[LU_NONZERO];
+   KPP_REAL Z1[NVAR],
+  	  Z2[NVAR],
+	  Z3[NVAR],
+	  Z4[NVAR],
+	  SCAL[NVAR],
+	  DZ1[NVAR],
+	  DZ2[NVAR],
+	  DZ3[NVAR],
+	  DZ4[NVAR],
+	  G[NVAR],
+	  TMP[NVAR],
+	  FO[NVAR];   
+   KPP_REAL CONT[NVAR][RKmax],
+  	  Tdirection,
+	  H,
+	  Hacc,
+	  Hnew,
+	  Hold,
+	  Fac,
+	  FacGus, 
+   	  Theta,
+	  Err,
+	  ErrOld,
+	  NewtonRate,
+	  NewtonIncrement,
+	  Hratio,
+	  Qnewton, 
+	  NewtonPredictedErr,
+	  NewtonIncrementOld,
+	  ThetaSD;
+   int IP1[NVAR],
+       IP2[NVAR],
+       NewtonIter,
+       Nconsecutive,
+       i;
+   int ISING;
+   int Reject,
+       FirstStep,
+       SkipJac,
+       NewtonDone,
+       SkipLU;
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+   
+  /*~~~>  INITIAL setting */
+   /*printf("ONE=%f Tend-*T=%f\n", ONE, Tend-*T);*/
+   Tdirection = SIGN(ONE, Tend-*T);
+   /*printf("Tdirection=%f\n", Tdirection);*/
+   /*printf("Hmin=%g Hstart=%g \n", Hmin, Hstart);*/
+   /*printf("ABS(Hmin)=%g ABS(Hstart)=%g \n", ABS(Hmin), ABS(Hstart));*/
+   H = MIN( MAX(ABS(Hmin), ABS(Hstart)), Hmax ); 
+   if (ABS(H) <= ((KPP_REAL)10.0*Roundoff)) {
+	/*printf("Entering if ABS(H)=%g <= 10.0*Roundoff=%g\n", ABS(H),(KPP_REAL)10.0*Roundoff);*/
+        H = (KPP_REAL)(1.0e-06);
+   } /* end if */
+   H = SIGN(H, Tdirection);
+   Hold = H;
+   /*printf("Hold=%f\n", Hold);*/ 
+   Reject = 0;
+   FirstStep = 1;
+   SkipJac = 0;
+   SkipLU = 0;
+   if ((*T+H*((KPP_REAL)1.0001)-Tend)*Tdirection >= ZERO) {   
+	H = Tend - *T;
+   } /* end if */
+   Nconsecutive = 0;
+   RK_ErrorScale(N, ITOL, AbsTol, RelTol, Y, SCAL);
+   /*for(i=0; i<NVAR; i++) {
+        printf("AbsTol=%g RelTol=%g Y=%g SCAL=%g \n", AbsTol[i], RelTol[i], Y[i], SCAL[i] );
+   }*/
+   
+ /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+  /*~~~> Time loop begins */ 
+  /* while Tloop */
+Tloop:   while ( (Tend-*T)*Tdirection - Roundoff > ZERO ) {
+      /*printf("Starting Tloop: (Tend-*T)*Tdirection - Roundoff=%g > ZERO\n", (Tend-*T)*Tdirection-Roundoff);*/
+      /*if ( Reject == 0 ) { */
+	FUN_CHEM(*T,Y,FO);
+	ISTATUS[Nfun]++;
+      /* } * end if */ 
+      if ( SkipLU == 0 ) { /* This time around skip the Jac update and LU */
+	/*~~~> Compute the Jacobian matrix */
+	/*printf("Entering if SkipLU == 0\n");*/
+	if ( SkipJac == 0 ) {
+	   /*printf("Entering if SkipJac == 0\n");*/
+	   JAC_CHEM(*T,Y,FJAC);
+	   ISTATUS[Njac]++;
+	} /* end if */
+	/*~~~> Compute the matrices E1 and E2 and their decompositions */
+	RK_Decomp(N,H,FJAC,E1,IP1,E2R,E2I,IP2,&ISING,ISTATUS);
+	/*printf("ISING=%d\n", ISING);*/
+	if ( ISING != 0 ) {
+	   /*printf("Entering if ISING != 0\n");*/
+	   ISTATUS[Nsng]++;
+	   Nconsecutive++;
+	   if (Nconsecutive >= 5) {
+		RK_ErrorMsg(-12,*T,H,IERR);
+	   }
+	   H = H * ((KPP_REAL)0.5);
+	   Reject = 1;
+	   SkipJac = 1;
+	   SkipLU = 0;
+	   goto Tloop;
+	}
+	else {
+	   /*printf("Entering if ISING == 0\n");*/
+	   Nconsecutive = 0;
+	} /* end if */
+      } /* end if !SkipLU */
+
+      /*printf("NSTEPS=%d\n", ISTATUS[Nstp]);*/
+      ISTATUS[Nstp]++;
+      /*printf("NSTEPS=%d\n", ISTATUS[Nstp]);*/
+      if (ISTATUS[Nstp] > Max_no_steps) {
+	printf("\n Max number of time steps is = %d", Max_no_steps);
+	RK_ErrorMsg(-9,*T,H,IERR);
+      } /* end if */
+      if (((KPP_REAL)0.1)*ABS(H) <= ABS(*T)*Roundoff)
+	RK_ErrorMsg(-10,*T,H,IERR);
+ 
+ /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+ /*~~~>  Loop for the simplified Newton iterations */
+ /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+      /*~~~> Starting values for Newton iteration */  
+      if ( (FirstStep == 1) || (StartNewton == 0) ) {
+	/*printf("Entering if FirstStep or Not StartNewton\n");*/
+	Set2Zero(N,Z1);
+	Set2Zero(N,Z2);
+	Set2Zero(N,Z3);
+      }
+      else
+      {
+    	/* Evaluate quadratic polynomial */
+   	RK_Interpolate("eval",N,H,Hold,Z1,Z2,Z3,CONT);
+      } /* end if */
+
+      /*~~~> Initializations for Newton iteration */
+      NewtonDone = 0;
+      Fac = (KPP_REAL)0.5; /* Step reduction if too many iterations */
+  
+      /* for NewtonLoop */
+      for (NewtonIter = 1; NewtonIter <= NewtonMaxit; NewtonIter++)
+      {
+	/*printf("Starting NewtonIter loop: NewtonIter=%d\n", NewtonIter);*/
+   	/* Prepare the right-hand side */
+      	RK_PrepareRHS(N,*T,H,Y,FO,Z1,Z2,Z3,DZ1,DZ2,DZ3);
+
+	/* Solve the linear systems */
+  	RK_Solve(N,H,E1,IP1,E2R,E2I,IP2,DZ1,DZ2,DZ3,ISTATUS);
+
+	NewtonIncrement = 
+		SQRT((RK_ErrorNorm(N,SCAL,DZ1) * RK_ErrorNorm(N,SCAL,DZ1)
+		    + RK_ErrorNorm(N,SCAL,DZ2) * RK_ErrorNorm(N,SCAL,DZ2) 
+		    + RK_ErrorNorm(N,SCAL,DZ3) * RK_ErrorNorm(N,SCAL,DZ3))
+	            / (KPP_REAL)3.0 );
+	/*printf( "NewtonIncrement=%g \n", NewtonIncrement );*/
+	if (NewtonIter == 1) {
+	   /*printf("Entering NewtonIter=%d == 1\n", NewtonIter);*/
+	   Theta = ABS(ThetaMin);
+	   NewtonRate = (KPP_REAL)2.0;
+	}
+	else {
+	   /*printf("Entering else from NewtonIter=%d == 1\n", NewtonIter);*/
+	   Theta = NewtonIncrement / NewtonIncrementOld;
+	   /*printf("Theta=%f\n", Theta);*/
+	   if (Theta < (KPP_REAL)0.99) {
+		/*printf( "Entering if Theta=%g < 0.99\n", Theta );*/
+		NewtonRate = Theta / (ONE-Theta);
+	   }
+	   else { /* Non-convergence of Newton: Theta too large */
+       	      break; /* EXIT NewtonLoop */
+	   } /* end if */
+	   if (NewtonIter < NewtonMaxit) {
+	      /*printf("Entering if NewtonIter=%d < NewtonMaxit=%d\n", NewtonIter, NewtonMaxit);*/
+	      /* Predict error at the end of Newton process */
+ 	      NewtonPredictedErr = NewtonIncrement
+                             *pow(Theta,(NewtonMaxit-NewtonIter))/(ONE-Theta);
+	      /*printf("NewtonRate=%g NewtonPredictedErr=%g \n", NewtonRate, NewtonPredictedErr);*/
+	      if (NewtonPredictedErr >= NewtonTol) {
+		/*printf( "Entering if NewtonPredictedErr=%g >= NewtonTol%g \n", NewtonPredictedErr, NewtonTol );*/
+	      	/* Non-convergence of Newton: predicted error too large */
+	        Qnewton = MIN((KPP_REAL)10.0, NewtonPredictedErr/NewtonTol);
+	        Fac = (KPP_REAL)0.8*pow(Qnewton,(-ONE/(1+NewtonMaxit-NewtonIter)));
+	        break; /* EXIT NewtonLoop */
+	      } /* end if */
+	   } /* end if */
+   	} /* end if */
+	    
+   	NewtonIncrementOld = MAX(NewtonIncrement, Roundoff);
+	/*printf("NewtonIncrementOld=%f\n", NewtonIncrementOld);*/
+  	/*~~~> Update solution */
+   	WAXPY(N,-ONE,DZ1,1,Z1,1);	/* Z1 <- Z1 - DZ1 */
+   	WAXPY(N,-ONE,DZ2,1,Z2,1);	/* Z2 <- Z2 - DZ2 */
+   	WAXPY(N,-ONE,DZ3,1,Z3,1);	/* Z3 <- Z3 - DZ3 */
+        /*for(i=0; i<N; i++) 
+	   printf("DZ1[%d]=%g Z1[%d]=%g\n", i, DZ1[i], i, Z1[i]);*/
+  	/*~~~> Check error in Newton iterations */
+	/*printf( "NewtonRate=%g NewtonIncrement=%g NewtonTol=%g \n", NewtonRate, NewtonIncrement, NewtonTol );*/
+	NewtonDone = (NewtonRate*NewtonIncrement <= NewtonTol);
+	/*printf( "NewtonDone=%d \n", NewtonDone );*/
+   	if (NewtonDone == 1)
+	   break; /* Exit NewtonLoop */
+   	if (NewtonIter == NewtonMaxit)
+   	{
+	   printf("\n Slow or no convergence in Newton Iteration:");
+	   printf(" Max no. of Newton iterations reached");
+   	} /* end if */
+      }/* end for NewtonLoop */
+
+      if ( NewtonDone == 0)
+      {
+	/*printf( "Entering if NewtonDone == 0\n" );*/
+	/*RK_ErrorMsg(-12,*T,H,IERR); */
+	H = Fac*H;
+	Reject  = 1;
+	SkipJac = 1;
+	SkipLU  = 0;
+	goto Tloop;
+      } /* end if */
+
+ /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+ /*~~~> SDIRK Stage */
+ /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+      if (SdirkError == 1)
+      {
+	/*printf("Entering if SdirkError=%d==1\n", SdirkError);*/
+      	/*~~~> Starting values for Newton iterations */
+   	for (i = 0; i < N; i++)
+	{
+	   Z4[i] = Z3[i];
+ 	}
+      	/*~~~> Prepare the loop-independent part of the right-hand side */
+      	/* G = H*rkBgam(0)*FO + rkTheta(1)*Z1 
+		+ rkTheta(2)*Z2 + rkTheta(3)*Z3; */
+      	Set2Zero(N,G);
+      	if (rkMethod != L3A)
+	   WAXPY(N,rkBgam[0]*H, FO,1,G,1);
+      	WAXPY(N,rkTheta[0],Z1,1,G,1);  
+      	WAXPY(N,rkTheta[1],Z2,1,G,1);  
+      	WAXPY(N,rkTheta[2],Z3,1,G,1);  
+
+      	/*~~~> Initializations for Newton iteration */
+      	NewtonDone = 0;
+      	Fac = (KPP_REAL)0.5; /* Step reduction factor if too many iterations */
+
+      	/* for SDNewtonLoop */
+      	for (NewtonIter = 1; NewtonIter <= NewtonMaxit; NewtonIter++)
+      	{
+	   /*printf("Starting NewtonIter loop: NewtonIter=%d\n", NewtonIter);*/
+	   /*~~~> Prepare the loop-dependent part of right-hand side */
+	   WADD(N,Y,Z4,TMP);	/* TMP <- Y + Z4 */
+	   FUN_CHEM(*T+H,TMP,DZ4);	/* DZ4 <- Fun(Y+Z4) */
+	   ISTATUS[Nfun]++;
+	   /* DZ4[1,N] = (D[1, N]-Z4[1,N])*(rkGamma/H) + DZ4[1,N]; */
+	   WAXPY(N,-ONE*rkGamma/H,Z4,1,DZ4,1);
+	   WAXPY(N,rkGamma/H,G,1,DZ4,1);
+
+	   /*~~~> Solve the linear system */
+	   KppSolve(E1, DZ4);
+	   /*~~~> Note: for a full matrix use Lapack:
+		DGETRS('N', 5, 1, E1, N, IP1, DZ4, 5, ISING) */
+
+	   /*~~~> Check convergence of Newton iterations */
+	   NewtonIncrement = RK_ErrorNorm(N,SCAL,DZ4);
+	   /*printf( "NewtonIncrement=%g \n", NewtonIncrement );*/
+	   if (NewtonIter == 1) {
+	      /*printf("Entering NewtonIter=%d == 1\n", NewtonIter);*/
+	      ThetaSD = ABS(ThetaMin);
+              NewtonRate = (KPP_REAL)2.0;
+	   }
+	   else {
+	      /*printf("Entering else from NewtonIter=%d == 1\n", NewtonIter);*/
+	      ThetaSD = NewtonIncrement / NewtonIncrementOld;
+	      if (ThetaSD < (KPP_REAL)0.99) {
+		/*printf( "Entering if Theta=%g < 0.99\n", Theta );*/
+		NewtonRate = ThetaSD / (ONE-ThetaSD);
+		/* Predict error at the end of Newton process */
+		NewtonPredictedErr = NewtonIncrement
+			*pow(ThetaSD,(NewtonMaxit-NewtonIter))/(ONE-ThetaSD);
+	        /*printf("NewtonRate=%g NewtonPredictedErr=%g \n", NewtonRate, NewtonPredictedErr);*/
+		if (NewtonPredictedErr >= NewtonTol) {
+		   /*printf( "Entering if NewtonPredictedErr=%g >= NewtonTol%g \n", NewtonPredictedErr, NewtonTol );*/
+		   /* Non-convergence of Newton: predicted error too large */
+		   /* printf("\n Error too large", NewtonPredictedErr); */
+		   Qnewton = MIN((KPP_REAL)10.0,NewtonPredictedErr/NewtonTol);
+		   Fac = (KPP_REAL)0.8*pow(Qnewton,(-ONE/(1+NewtonMaxit-NewtonIter)));
+		   break; /* EXIT SDNewtonLoop */
+		} /* end if */
+	      }
+	      /* Non-convergence of Newton: Theta too large */
+	      else {
+		/* prinf("\n Theta too large", ThetaSD); */
+		break; /* EXIT SDNewtonLoop */
+	      } /* end if */
+	   } /* end if */
+     	   NewtonIncrementOld = NewtonIncrement;
+	   /*printf("NewtonIncrementOld=%f\n", NewtonIncrementOld);*/
+	   /* Update solution: Z4 <-- Z4 + DZ4; */
+	   WAXPY(N,ONE,DZ4,1,Z4,1);
+
+	   /* Check error in Newton iterations */
+	   NewtonDone = (NewtonRate*NewtonIncrement <= NewtonTol);
+	   /*printf( "NewtonDone=%d \n", NewtonDone );*/
+	   if (NewtonDone == 1)
+		break;	/* EXIT SDNewtonLoop */
+      	} /* end for SDNewtonLoop */
+      
+      	if ( NewtonDone == 0 ) {
+	   /*printf( "Entering if NewtonDone == 0\n" );*/
+	   H       = Fac*H;
+	   Reject  = 1;
+	   SkipJac = 1;
+	   SkipLU  = 0;
+	   goto Tloop;
+      	} /* end if */
+      } /* end if */
+      /*~~~> End of implified SDIRK Newton iterations */
+
+ /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+ /*~~~> Error estimation */
+ /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+      if (SdirkError == 1) {
+      	Set2Zero(N, DZ4);
+      	if (rkMethod == L3A) {
+	   for (i = 0; i < N; i++)
+		DZ4[i] = H*rkF[0]*FO[i];
+	   if (rkF[0] != ZERO)
+		WAXPY(N, rkF[0], Z1, 1, DZ4, 1);
+	   if (rkF[1] != ZERO)
+		WAXPY(N, rkF[1], Z2, 1, DZ4, 1);
+	   if (rkF[2] != ZERO)
+		WAXPY(N, rkF[2], Z3, 1, DZ4, 1);
+	   for (i = 0; i < N; i++)
+		 TMP[i] = Y[i] + Z4[i];
+	   FUN_CHEM(*T+H, TMP, DZ1);
+	   WAXPY(N, H*rkBgam[4], DZ1, 1, DZ4, 1);
+      	}
+      	else {
+	   /* DZ4(1,N) = rkD(1)*Z1 + rkD(2)*Z2 + rkD(3)*Z3 - Z4; */
+	   if (rkD[0] != ZERO)
+		WAXPY(N, rkD[0], Z1, 1, DZ4, 1);
+	   if (rkD[1] != ZERO)
+		WAXPY(N, rkD[1], Z2, 1, DZ4, 1);
+	   if (rkD[2] != ZERO)
+		WAXPY(N, rkD[2], Z3, 1, DZ4, 1);
+	   WAXPY(N, -ONE, Z4, 1, DZ4, 1);
+      	} /* end if */
+      	Err = RK_ErrorNorm(N,SCAL,DZ4);
+      }
+      else
+      {
+      	RK_ErrorEstimate(N,H,*T,Y,FO,E1,IP1,Z1,Z2,Z3,SCAL,&Err,
+			FirstStep,Reject,ISTATUS);
+      } /* end if */
+
+      /*~~~> Computation of new step size Hnew */
+      Fac = pow(Err, (-ONE/rkELO))
+	    *MIN(FacSafe,(ONE+2*NewtonMaxit)/(NewtonIter+2*NewtonMaxit));
+      Fac = MIN(FacMax,MAX(FacMin,Fac));
+      Hnew = Fac*H;
+
+ /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+ /*~~~> Accept/reject step */
+ /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+      // accept:
+      if (Err < ONE) { /*~~~> STEP IS ACCEPTED */
+      	FirstStep = 0;
+      	ISTATUS[Nacc]++;
+      	if (Gustafsson == 1) {
+	   /*~~~> Predictive controller of Gustafsson */
+	   if (ISTATUS[Nacc] > 1) {
+	      FacGus = FacSafe*(H/Hacc)*pow(Err*Err/ErrOld,(KPP_REAL)(-0.25));
+	      FacGus = MIN(FacMax,MAX(FacMin,FacGus));
+	      Fac = MIN(Fac,FacGus);	
+	      Hnew = Fac*H;
+	   } /* end if */
+	   Hacc = H;
+	   ErrOld = MAX((KPP_REAL)1.0e-02,Err);
+      	} /* end if */
+        Hold = H;
+      	*T = *T + H;
+      	/* Update solution: Y <- Y + sum(d_i Z-i) */
+      	if (rkD[0] != ZERO)
+	   WAXPY(N, rkD[0], Z1, 1, Y, 1);
+      	if (rkD[1] != ZERO)
+	   WAXPY(N, rkD[1], Z2, 1, Y, 1);
+      	if (rkD[2] != ZERO)
+	   WAXPY(N, rkD[2], Z3, 1, Y, 1);
+      	/* Construct the solution quadratic interpolant Q(c_i) = Z_i, i=1:3 */
+      	if (StartNewton == 1)
+	   RK_Interpolate("make",N,H,Hold,Z1,Z2,Z3,CONT);
+      	RK_ErrorScale(N,ITOL,AbsTol,RelTol,Y,SCAL);
+	RSTATUS[Ntexit] = *T;
+	RSTATUS[Nhnew] = Hnew;
+	RSTATUS[Nhacc] = H;
+      	Hnew = Tdirection*MIN( MAX(ABS(Hnew),Hmin), Hmax );
+      	if (Reject == 1)
+	   Hnew = Tdirection*MIN(ABS(Hnew),ABS(H));
+      	Reject = 0;
+      	if ((*T+Hnew/Qmin-Tend)*Tdirection >= ZERO)
+	   H = Tend - *T;
+      	else {
+	   Hratio = Hnew/H;
+	   /* Reuse the LU decomposition */
+	   SkipLU = (Theta <= ThetaMin) && (Hratio >= Qmin) && (Hratio <= Qmax);
+	   if ( SkipLU == 0)
+	   	H = Hnew;
+        } /* end if */
+        /* If convergence is fast enough, do not update Jacobian */
+      	/* SkipJac = (Theta <= ThetaMin); */
+      	SkipJac = 0;
+      }
+
+      /*~~~> Step is rejected */
+      else {
+      	if ((FirstStep == 1)  || (Reject == 1))
+	   H = FacRej*H;
+        else
+	   H = Hnew;
+        Reject  = 1;
+        SkipJac = 1; /* Skip if rejected - Jac is independent of H */
+        SkipLU  = 0;
+      	if (ISTATUS[Nacc] >= 1)
+	   ISTATUS[Nrej]++;
+      } /* end if accept */
+   } /* while: time Tloop */
+ 
+   /*~~~> Successful exit */
+   *IERR = 1;
+
+} /* RK_Integrator */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+	Handles all error messages and returns IERR = error Code
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void RK_ErrorMsg(int Code, KPP_REAL T, KPP_REAL H, int* IERR)
+{
+   Code = *IERR;
+   printf("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
+   printf("\nForced exit from RungeKutta due to the following error:\n");
+
+   switch (Code) {
+   case -1:
+      printf("--> Improper value for maximal no of steps");
+      break;
+   case -2:
+      printf("--> Improper value for maximal no of Newton iterations");
+      break;
+   case -3:
+      printf("--> Hmin/Hmax/Hstart must be positive");
+      break;
+   case -4:
+      printf("--> Improper values for FacMin/FacMax/FacSafe/FacRej");
+      break;
+   case -5:
+      printf("--> Improper value for ThetaMin");
+      break;
+   case -6:
+      printf("--> Newton stopping tolerance too small");
+      break;
+   case -7:
+      printf("--> Improper values for Qmin, Qmax");
+      break;
+   case -8:
+      printf("--> Tolerances are too small");
+      break;
+   case -9:
+      printf("--> No of steps exceeds maximum bound");
+      break;
+   case -10:
+      printf("--> Step size too small: (T + 10*H = T) or H < Roundoff");
+      break;
+   case -11:
+      printf("--> Matrix is repeatedly singular");
+      break;
+   case -12:
+      printf("--> Non-convergence of Newton iterations");
+      break;
+   case -13:
+      printf("--> Requested RK method not implemented");
+      break;
+   default:
+      printf("Unknown Error code: %d \n", Code);
+   } /* end switch */ 
+
+   printf("\n     T=%e,  H =%e", T, H);
+   printf("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
+
+} /* RK_ErrorMsg */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+/*	Handles all error messages and returns SCAL */
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void RK_ErrorScale(int N, 
+   /*~~~> Input arguments: */
+	int ITOL, KPP_REAL AbsTol[], KPP_REAL RelTol[], KPP_REAL Y[],
+   /*~~~> Output arguments: */
+	KPP_REAL SCAL[])
+{
+   /*printf("Starting RK_ErrorScale\n");*/
+   int i;
+   if (ITOL == 0) {
+	for (i = 0; i < N; i++) {
+	   SCAL[i] = ONE/(AbsTol[0]+RelTol[0]*ABS(Y[i]));
+	} /* end for loop*/
+   }
+   else {
+	for (i = 0; i< N; i++) {
+	   SCAL[i] = ONE/(AbsTol[i]+RelTol[i]*ABS(Y[i]));
+	} /* end for loop */
+   } /* end if */
+   /*printf("Ending RK_ErrorScale\n");*/
+} /* RK_ErrorScale */  
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+void RK_Transform(int N, KPP_REAL Tr[][3], KPP_REAL Z1[], KPP_REAL Z2[],
+		KPP_REAL Z3[], KPP_REAL W1[], KPP_REAL W2[], KPP_REAL W3[])
+-->	W <-- Tr x Z 
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+{
+   int i;
+   KPP_REAL x1,x2,x3;
+   for (i = 0; i < N; i++)
+   {
+	x1 = Z1[i];
+	x2 = Z2[i]; 
+	x3 = Z3[i]; 
+	W1[i] = Tr[0][0]*x1 + Tr[0][1]*x2 + Tr[0][2]*x3;
+	W2[i] = Tr[1][0]*x1 + Tr[1][1]*x2 + Tr[1][2]*x3;
+	W1[i] = Tr[2][0]*x1 + Tr[2][1]*x2 + Tr[2][2]*x3;
+   }  end for loop
+}  end RK_Transform */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+/*--> Constructs or evaluates a quadratic polynomial that
+      interpolates the Z solution at current step and
+      provides starting values for the next step
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void RK_Interpolate(char action[], int N, KPP_REAL H, KPP_REAL Hold, KPP_REAL Z1[],
+	KPP_REAL Z2[], KPP_REAL Z3[], KPP_REAL CONT[][RKmax])
+{
+   int i;
+   KPP_REAL r,x1,x2,x3,den;
+ 
+   /* Construct the solution quadratic interpolant Q(c_i) = Z_i, i=1:3 */
+   if (action == "make") {
+	den = (rkC[2]-rkC[1])*(rkC[1]-rkC[0])*(rkC[0]-rkC[2]);
+	for (i = 0; i < N; i++)
+	{
+	   CONT[i][0] = (-rkC[2]*rkC[2]*rkC[1]*Z1[i]
+			+Z3[i]*rkC[1]*rkC[0]*rkC[0]
+	   		+rkC[1]*rkC[1]*rkC[2]*Z1[i]
+	   		-rkC[1]*rkC[1]*rkC[0]*Z3[i]
+	   		+rkC[2]*rkC[2]*rkC[0]*Z2[i]
+	   		-Z2[i]*rkC[2]*rkC[0]*rkC[0])/den-Z3[i];
+	   CONT[i][1] = -( rkC[0]*rkC[0]*(Z3[i]-Z2[i])
+	   		+ rkC[1]*rkC[1]*(Z1[i]-Z3[i])
+	   		+ rkC[2]*rkC[2]*(Z2[i]-Z1[i]) )/den;
+	   CONT[i][2] = ( rkC[0]*(Z3[i]-Z2[i])
+	   		+ rkC[1]*(Z1[i]-Z3[i])
+	   		+ rkC[2]*(Z2[i]-Z1[i]) )/den;
+	} /* end for loop */
+   }
+   /* Evaluate quadratic polynomial */
+   else if (action == "eval") {
+   	r  = H / Hold;
+	x1 = ONE + rkC[0]*r;
+	x2 = ONE + rkC[1]*r;
+	x3 = ONE + rkC[2]*r;
+	for (i = 0; i < N; i++)
+	{
+	   Z1[i] = CONT[i][0]+x1*(CONT[i][1]+x1*CONT[i][2]);	
+	   Z2[i] = CONT[i][0]+x2*(CONT[i][1]+x2*CONT[i][2]);	
+	   Z3[i] = CONT[i][0]+x3*(CONT[i][1]+x3*CONT[i][2]);
+	} /* end for loop */
+   } /* end if */
+} /* RK_Interpolate */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+/*~~~> Prepare the right-hand side for Newton iterations
+       R = Z - hA x F
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void RK_PrepareRHS(int N, KPP_REAL T, KPP_REAL H, KPP_REAL Y[], KPP_REAL FO[],
+	KPP_REAL Z1[], KPP_REAL Z2[], KPP_REAL Z3[], KPP_REAL R1[], KPP_REAL R2[],
+	KPP_REAL R3[])
+{
+   KPP_REAL TMP[N], F[N];
+   WCOPY(N,Z1,1,R1,1); /* R1 <- Z1 */	
+   WCOPY(N,Z2,1,R2,1); /* R2 <- Z2 */	
+   WCOPY(N,Z3,1,R3,1); /* R3 <- Z3 */	
+ 
+   if (rkMethod == L3A)
+   {
+	WAXPY(N,-H*rkA[0][0],FO,1,R1,1); /* R1 <- R1 - h*A_10*FO */
+	WAXPY(N,-H*rkA[1][0],FO,1,R2,1); /* R2 <- R2 - h*A_20*FO */
+	WAXPY(N,-H*rkA[2][0],FO,1,R3,1); /* R3 <- R3 - h*A_30*FO */
+   } /* end if */
+
+   WADD(N,Y,Z1,TMP);			/* TMP <- Y + Z1 */
+   FUN_CHEM(T+rkC[0]*H,TMP,F);		/* F1 <- Fun(Y+Z1) */
+   WAXPY(N,-H*rkA[0][0],F,1,R1,1); 	/* R1 <- R1 - h*A_11*F1 */
+   WAXPY(N,-H*rkA[1][0],F,1,R2,1); 	/* R2 <- R2 - h*A_21*F1 */
+   WAXPY(N,-H*rkA[2][0],F,1,R3,1); 	/* R3 <- R3 - h*A_31*F1 */
+
+   WADD(N,Y,Z2,TMP);			/* TMP <- Y + Z2 */
+   FUN_CHEM(T+rkC[1]*H,TMP,F);		/* F2 <- Fun(Y+Z2) */
+   WAXPY(N,-H*rkA[0][1],F,1,R1,1); 	/* R1 <- R1 - h*A_12*F2 */
+   WAXPY(N,-H*rkA[1][1],F,1,R2,1); 	/* R2 <- R2 - h*A_22*F2 */
+   WAXPY(N,-H*rkA[2][1],F,1,R3,1); 	/* R3 <- R3 - h*A_32*F2 */
+
+   WADD(N,Y,Z3,TMP);			/* TMP <- Y + Z3 */
+   FUN_CHEM(T+rkC[2]*H,TMP,F);		/* F3 <- Fun(Y+Z3) */
+   WAXPY(N,-H*rkA[0][2],F,1,R1,1); 	/* R1 <- R1 - h*A_13*F3 */
+   WAXPY(N,-H*rkA[1][2],F,1,R2,1); 	/* R2 <- R2 - h*A_23*F3 */
+   WAXPY(N,-H*rkA[2][2],F,1,R3,1); 	/* R3 <- R3 - h*A_33*F3 */
+} /* RK_PrepareRHS */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+/*~~~> Compute the matrices E1 and E2 and their decompositions
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void RK_Decomp(int N, KPP_REAL H, KPP_REAL FJAC[], KPP_REAL E1[],
+	int IP1[], KPP_REAL E2R[], KPP_REAL E2I[], int IP2[], 
+	int* ISING, int ISTATUS[]) 
+{
+   /*printf("Starting RK_Decomp\n");*/
+   KPP_REAL Alpha, Beta, Gamma;
+   int i,j;
+
+   Gamma = rkGamma / H;
+   Alpha = rkAlpha / H;
+   Beta  = rkBeta / H;
+
+   for (i = 0; i < LU_NONZERO; i++) {
+	E1[i] = -FJAC[i];
+   }
+   for (i = 0; i < NVAR; i++) {
+	j = LU_DIAG[i];
+	E1[j] = E1[j] + Gamma;
+   }
+   *ISING = KppDecomp(E1);
+   /*~~~> Note: for a full matrix use Lapack:
+   for (j = 0; j < N; j++) {
+	for (i = 0; i < N; i++)
+	{  
+	   E1[i,j] = -FJAC[i][j];
+	}
+	E1[i][j] = E1[i][j]+Gamma;
+   }
+   DGETRF(N, N, E1, N, IP1, ISING); */
+
+   if (*ISING != 0) {
+	/*printf("Matrix is singular, ISING=%d\n", *ISING);*/
+	ISTATUS[Ndec]++;
+	return;
+   }
+
+   for (i = 0; i < LU_NONZERO; i++) {
+	E2R[i] = (KPP_REAL)(-FJAC[i]);
+	E2I[i] = ZERO;
+   }
+   for (i = 0; i < NVAR; i++) {
+	j = LU_DIAG[i];
+	E2R[j] = E2R[j] + Alpha;
+	E2I[j] = E2I[j] + Beta;
+   }
+   *ISING = KppDecompCmplxR(E2R, E2I);
+   /*printf("Matrix is singular, ISING=%d\n", *ISING);*/
+   /*~~~> Note: for a full matrix use Lapack:
+   for (j = 0; j < N; j++) {
+      	for (i = 0; i < N; i++) {
+	   E2[i,j] = DCMPLX( -FJAC[i,j], ZERO );
+	}
+	E2[j,j] = E2[j,j] + CMPLX( Alpha, Beta );
+   }
+   ZGETRF(N,N,E2,N,IP2,ISING); */
+   ISTATUS[Ndec]++;
+} /*RK_Decomp */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ 
+void RK_Solve(int N, KPP_REAL H, KPP_REAL E1[], int IP1[], KPP_REAL E2R[],
+	KPP_REAL E2I[], int IP2[],KPP_REAL R1[], KPP_REAL R2[], KPP_REAL R3[],
+	int ISTATUS[])
+{
+   KPP_REAL x1, x2, x3;
+   KPP_REAL BCR[N], BCI[N];
+   int i;
+
+   /* Z <- h^{-1) T^{-1) A^{-1) x Z */
+   for (i = 0; i < N; i++)
+   {
+	x1 = R1[i]/H;
+	x2 = R2[i]/H;
+	x3 = R3[i]/H;
+        R1[i] = rkTinvAinv[0][0]*x1 + rkTinvAinv[0][1]*x2 + rkTinvAinv[0][2]*x3;
+	R2[i] = rkTinvAinv[1][0]*x1 + rkTinvAinv[1][1]*x2 + rkTinvAinv[1][2]*x3;
+	R3[i] = rkTinvAinv[2][0]*x1 + rkTinvAinv[2][1]*x2 + rkTinvAinv[2][2]*x3;
+   } 
+   KppSolve(E1,R1);
+   /*~~~> Note: for a full matrix use Lapack:
+   DGETRS('N',5,1,E1,N,IP1,R1,5,0); */
+   for(i = 0; i < N; i++)
+   {
+        BCR[i] = (KPP_REAL)(R2[i]);
+        BCI[i] = (KPP_REAL)(R3[i]);
+   }
+   KppSolveCmplxR(E2R,E2I,BCR,BCI);
+   /*~~~> Note: for a full matrix use Lapack:
+   ZGETRS ('N',N,1,E2,N,IP2,BC,N,0); */
+   for (i = 0; i < N; i++)
+   {
+	R2[i] = (KPP_REAL)( BCR[i] );
+        R3[i] = (KPP_REAL)( BCI[i] );
+   }
+
+   /* Z <- T x Z */
+   for (i = 0; i < N; i++)
+   {
+	x1 = R1[i];
+	x2 = R2[i];
+	x3 = R3[i];
+        R1[i] = rkT[0][0]*x1 + rkT[0][1]*x2 + rkT[0][2]*x3;
+	R2[i] = rkT[1][0]*x1 + rkT[1][1]*x2 + rkT[1][2]*x3;
+	R3[i] = rkT[2][0]*x1 + rkT[2][1]*x2 + rkT[2][2]*x3;
+   } 
+   ISTATUS[Nsol]++;
+} /* RK_Solve */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void RK_ErrorEstimate(int N, KPP_REAL H, KPP_REAL T, KPP_REAL Y[], 
+	KPP_REAL FO[], KPP_REAL E1[], int IP1[], KPP_REAL Z1[], 
+	KPP_REAL Z2[], KPP_REAL Z3[], KPP_REAL SCAL[], KPP_REAL* Err,
+	int FirstStep, int Reject, int ISTATUS[])
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+{
+   KPP_REAL F1[N],F2[N],TMP[N];
+   KPP_REAL HrkE1,HrkE2,HrkE3;
+   int i;
+
+   HrkE1  = rkE[0]/H;
+   HrkE2  = rkE[1]/H;
+   HrkE3  = rkE[2]/H;
+
+   for (i = 0; i < N; i++)
+   {
+	F2[i]  = HrkE1*Z1[i]+HrkE2*Z2[i]+HrkE3*Z3[i];
+	TMP[i] = rkE[0]*FO[i] + F2[i];
+   }
+   
+   KppSolve(E1, TMP);
+   if ((rkMethod == R1A) || (rkMethod == GAU) || (rkMethod == L3A))
+	KppSolve(E1,TMP);
+   if (rkMethod == GAU)
+	KppSolve(E1,TMP);
+   /*~~~> Note: for a full matrix use Lapack:
+	DGETRS ('N',N,1,E1,N,IP1,TMP,N,0);
+      	if ((rkMethod == R1A) || (rkMethod == GAU) || (rkMethod == L3A))
+	   DGETRS('N',N,1,E1,N,IP1,TMP,N,0);
+   	if (rkMethod == GAU)
+	   DGETRS('N',N,1,E1,N,IP1,TMP,N,0); */
+
+   *Err = RK_ErrorNorm(N,SCAL,TMP);
+
+   if (*Err < ONE)
+	return;
+   /* firej */
+   if ((FirstStep == 1) || (Reject == 1)) {
+	for (i = 0; i < N; i++) {
+	   TMP[i] = Y[i] + TMP[i];
+        } /* end for */
+        FUN_CHEM(T,TMP,F1);
+        ISTATUS[Nfun]++;
+	for (i = 0; i < N; i++) {
+	   TMP[i] = F1[i] + F2[i];
+	} /* end for */
+
+        KppSolve(E1, TMP);
+	/*~~~> Note: for a full matrix use Lapack:
+	   DGETRS ('N',N,1,E1,N,IP1,TMP,N,0); */
+        *Err = RK_ErrorNorm(N,SCAL,TMP);
+   } /* end if firej */
+} /* RK_ErrorEstimate */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+   KPP_REAL RK_ErrorNorm(int N, KPP_REAL SCAL[], KPP_REAL DY[])
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+{
+   int i;
+   KPP_REAL RK_ErrorNorm = ZERO;
+   for (i = 0; i < N; i++) {
+	RK_ErrorNorm = RK_ErrorNorm + (DY[i]*SCAL[i]) * (DY[i]*SCAL[i]);
+   }    
+   RK_ErrorNorm = MAX( SQRT(RK_ErrorNorm/N), (KPP_REAL)1.0e-10 );
+   return RK_ErrorNorm;
+} /* RK_ErrorNorm */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+	The coefficients of the 3-stage Radau-2A method
+	(given to ~30 accurate digits)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void Radau2A_Coefficients()
+{
+   /*printf("Starting Radau2A\n");*/
+   /* The coefficients of the Radau2A method */
+   KPP_REAL b0;
+   /* b0 = (KPP_REAL)1.0; */
+   if (SdirkError == 1) {
+   	b0 = (KPP_REAL)(0.2e-01);
+	/*printf("b0 = %f\n", b0);*/
+   }
+   else {
+	b0 = (KPP_REAL)(0.5e-01);
+	/*printf("b0 = %f\n", b0);*/
+   } /*end if */
+   /* The coefficients of the Radau2A method */
+   rkMethod = R2A;
+
+   rkA[0][0] = (KPP_REAL)(1.968154772236604258683861429918299e-01);
+   rkA[0][1] = (KPP_REAL)(-6.55354258501983881085227825696087e-02);
+   rkA[0][2] = (KPP_REAL)(2.377097434822015242040823210718965e-02);
+   rkA[1][0] = (KPP_REAL)(3.944243147390872769974116714584975e-01);
+   rkA[1][1] = (KPP_REAL)(2.920734116652284630205027458970589e-01);
+   rkA[1][2] = (KPP_REAL)(-4.154875212599793019818600988496743e-02);
+   rkA[2][0] = (KPP_REAL)(3.764030627004672750500754423692808e-01);
+   rkA[2][1] = (KPP_REAL)(5.124858261884216138388134465196080e-01);
+   rkA[2][2] = (KPP_REAL)(1.111111111111111111111111111111111e-01);
+
+   rkB[0] = (KPP_REAL)(3.764030627004672750500754423692808e-01);
+   rkB[1] = (KPP_REAL)(5.124858261884216138388134465196080e-01);
+   rkB[2] = (KPP_REAL)(1111111111111111111111111111111111e-01);
+
+   rkC[0] = (KPP_REAL)(1.550510257216821901802715925294109e-01);
+   rkC[1] = (KPP_REAL)(6.449489742783178098197284074705891e-01);
+   rkC[2] = ONE;
+
+   /* New solution: H* Sum B_j*f(Z_j) = Sum D_j*Z_j */
+   rkD[0] = ZERO;
+   rkD[1] = ZERO;
+   rkD[2] = ONE;
+   
+   /* Classical error estimator: */
+   /* H* Sum (B_j-Bhat_j)*f(Z_j) = H*E(0)*f(0) + Sum E_j*Z_j */
+   rkE[0] = ONE*b0;
+   rkE[1] = (KPP_REAL)(-10.04880939982741556246032950764708)*b0;
+   rkE[2] = (KPP_REAL)1.382142733160748895793662840980412*b0;
+   rkE[3] = (KPP_REAL)(-.3333333333333333333333333333333333)*b0;
+
+   /* Sdirk error estimator */
+   rkBgam[0] = b0;
+   rkBgam[1] = (KPP_REAL).3764030627004672750500754423692807
+		-(KPP_REAL)1.558078204724922382431975370686279*b0;
+   rkBgam[2] = (KPP_REAL).8914115380582557157653087040196118*b0
+		+(KPP_REAL).5124858261884216138388134465196077;
+   rkBgam[3] = (KPP_REAL)(-.1637777184845662566367174924883037)
+		-(KPP_REAL).3333333333333333333333333333333333*b0;
+   rkBgam[4] = (KPP_REAL).2748888295956773677478286035994148;
+
+   /* H* Sum Bgam_j*f(Z_j) = H*Bgam(0)*f(0) + Sum Theta_j*Z_j */
+   rkTheta[0] = (KPP_REAL)(-1.520677486405081647234271944611547)
+		-(KPP_REAL)10.04880939982741556246032950764708*b0;
+   rkTheta[1] = (KPP_REAL)2.070455145596436382729929151810376
+		+(KPP_REAL)1.382142733160748895793662840980413*b0;
+   rkTheta[2] = (KPP_REAL)(-.3333333333333333333333333333333333)*b0
+		-(KPP_REAL).3744441479783868387391430179970741;
+
+   /* Local order of error estimator */
+   if ( b0 == ZERO)
+   	rkELO  = (KPP_REAL)6.0;
+   else
+        rkELO  = (KPP_REAL)4.0;
+
+   /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    ~~~> Diagonalize the RK matrix:
+    	 rkTinv * inv(rkA) * rkT =
+    	           |  rkGamma      0           0     |
+      	           |      0      rkAlpha   -rkBeta   |
+      	           |      0      rkBeta     rkAlpha  |
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+   rkGamma = (KPP_REAL)3.637834252744495732208418513577775;
+   rkAlpha = (KPP_REAL)2.681082873627752133895790743211112;
+   rkBeta  = (KPP_REAL)3.050430199247410569426377624787569;
+
+   rkT[0][0] = (KPP_REAL)(9.443876248897524148749007950641664e-02);
+   rkT[0][1] = (KPP_REAL)(-1.412552950209542084279903838077973e-01);
+   rkT[0][2] = (KPP_REAL)(-3.00291941051474244918611170890539e-02);
+   rkT[1][0] = (KPP_REAL)(2.502131229653333113765090675125018e-01);
+   rkT[1][1] = (KPP_REAL)(2.041293522937999319959908102983381e-01);
+   rkT[1][2] = (KPP_REAL)(3.829421127572619377954382335998733e-01);
+   rkT[2][0] =  ONE;
+   rkT[2][1] =  ONE;
+   rkT[2][2] =  ZERO;
+
+   rkTinv[0][0] = (KPP_REAL)4.178718591551904727346462658512057;
+   rkTinv[0][1] = (KPP_REAL)(3.27682820761062387082533272429617e-01);
+   rkTinv[0][2] = (KPP_REAL)(5.233764454994495480399309159089876e-01);
+   rkTinv[1][0] = (KPP_REAL)(-4.178718591551904727346462658512057);
+   rkTinv[1][1] = (KPP_REAL)(-3.27682820761062387082533272429617e-01);
+   rkTinv[1][2] = (KPP_REAL)(4.766235545005504519600690840910124e-01);
+   rkTinv[2][0] = (KPP_REAL)(-5.02872634945786875951247343139544e-01);
+   rkTinv[2][1] = (KPP_REAL)2.571926949855605429186785353601676;
+   rkTinv[2][2] = (KPP_REAL)(-5.960392048282249249688219110993024e-01);
+
+   rkTinvAinv[0][0] = (KPP_REAL)(1.520148562492775501049204957366528e+01);
+   rkTinvAinv[0][1] = (KPP_REAL)1.192055789400527921212348994770778;
+   rkTinvAinv[0][2] = (KPP_REAL)1.903956760517560343018332287285119;
+   rkTinvAinv[1][0] = (KPP_REAL)(-9.669512977505946748632625374449567);
+   rkTinvAinv[1][1] = (KPP_REAL)(-8.724028436822336183071773193986487);
+   rkTinvAinv[1][2] = (KPP_REAL)3.096043239482439656981667712714881;
+   rkTinvAinv[2][0] = (KPP_REAL)(-1.409513259499574544876303981551774e+01);
+   rkTinvAinv[2][1] = (KPP_REAL)5.895975725255405108079130152868952;
+   rkTinvAinv[2][2] = (KPP_REAL)(-1.441236197545344702389881889085515e-01);
+
+   rkAinvT[0][0] = (KPP_REAL).3435525649691961614912493915818282;
+   rkAinvT[0][1] = (KPP_REAL)(-.4703191128473198422370558694426832);
+   rkAinvT[0][2] = (KPP_REAL).3503786597113668965366406634269080;
+   rkAinvT[1][0] = (KPP_REAL).9102338692094599309122768354288852;
+   rkAinvT[1][1] = (KPP_REAL)1.715425895757991796035292755937326;
+   rkAinvT[1][2] = (KPP_REAL).4040171993145015239277111187301784;
+   rkAinvT[2][0] = (KPP_REAL)3.637834252744495732208418513577775;
+   rkAinvT[2][1] = (KPP_REAL)2.681082873627752133895790743211112;
+   rkAinvT[2][2] = (KPP_REAL)(-3.050430199247410569426377624787569);
+   /*printf("Ending Radau2A");*/
+} /* Radau2A_Coefficients */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+	The coefficients of the 3-stage Lobatto-3C method
+	(given to ~30 accurate digits)
+	The parameter b0 can be chosen to tune the error estimator
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void Lobatto3C_Coefficients ()
+{
+   KPP_REAL b0;	
+   rkMethod = L3C;
+   /* b0 = 1.0d0 */
+   if (SdirkError == 1)
+	b0 = (KPP_REAL)0.2;
+   else
+	b0 = (KPP_REAL)0.5;
+    
+   /* The coefficients of the Lobatto3C method */
+   rkA[0][0] = (KPP_REAL).1666666666666666666666666666666667;
+   rkA[0][1] = (KPP_REAL)(-.3333333333333333333333333333333333);
+   rkA[0][2] = (KPP_REAL).1666666666666666666666666666666667;
+   rkA[1][0] = (KPP_REAL).1666666666666666666666666666666667;
+   rkA[1][1] = (KPP_REAL).4166666666666666666666666666666667;
+   rkA[1][2] = (KPP_REAL)(-.8333333333333333333333333333333333e-01);
+   rkA[2][0] = (KPP_REAL).1666666666666666666666666666666667;
+   rkA[2][1] = (KPP_REAL).6666666666666666666666666666666667;
+   rkA[2][2] = (KPP_REAL).1666666666666666666666666666666667;
+
+   rkB[0] = (KPP_REAL).1666666666666666666666666666666667;
+   rkB[1] = (KPP_REAL).6666666666666666666666666666666667;
+   rkB[2] = (KPP_REAL).1666666666666666666666666666666667;
+
+   rkC[0] = ZERO;
+   rkC[1] = (KPP_REAL)0.5;
+   rkC[2] = ONE;
+
+   /* Classical error estimator, embedded solution: */
+   rkBhat[0] = b0;
+   rkBhat[1] = (KPP_REAL).16666666666666666666666666666666667-b0;
+   rkBhat[2] = (KPP_REAL).66666666666666666666666666666666667;
+   rkBhat[3] = (KPP_REAL).16666666666666666666666666666666667;
+
+   /* New solution: h Sum_j b_j f(Z_j) = sum d_j Z_j */
+   rkD[0] = ZERO;
+   rkD[1] = ZERO;
+   rkD[2] = ONE;
+
+   /* Classical error estimator: */
+   /* H* Sum (B_j-Bhat_j)*f(Z_j) = H*E(0)*f(0) + Sum E_j*Z_j */
+   rkE[0] = (KPP_REAL).3808338772072650364017425226487022*b0;
+   rkE[1] = (KPP_REAL)(-1.142501631621795109205227567946107)*b0;
+   rkE[2] = (KPP_REAL)(-1.523335508829060145606970090594809)*b0;
+   rkE[3] = (KPP_REAL).3808338772072650364017425226487022*b0;
+
+   /* Sdirk error estimator */
+   rkBgam[0] = b0;
+   rkBgam[1] = (KPP_REAL).1666666666666666666666666666666667-1.0*b0;
+   rkBgam[2] = (KPP_REAL).6666666666666666666666666666666667;
+   rkBgam[3] = (KPP_REAL)(-.2141672105405983697350758559820354);
+   rkBgam[4] = (KPP_REAL).3808338772072650364017425226487021;
+
+   /* H* Sum Bgam_j*f(Z_j) = H*Bgam(0)*f(0) + Sum Theta_j*Z_j */
+   rkTheta[0] = -3.0*b0-(KPP_REAL).3808338772072650364017425226487021;
+   rkTheta[1] = -4.0*b0+(KPP_REAL)1.523335508829060145606970090594808;
+   rkTheta[2] = (KPP_REAL)(-.142501631621795109205227567946106)+b0;
+
+   /* Local order of error estimator */
+   if (b0 == ZERO)
+	rkELO  = 5.0;
+   else
+	rkELO  = 4.0;
+
+   /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   ~~~> Diagonalize the RK matrix:
+    rkTinv * inv(rkA) * rkT =
+              |  rkGamma      0           0     |
+              |      0      rkAlpha   -rkBeta   |
+              |      0      rkBeta     rkAlpha  |
+   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+   rkGamma = (KPP_REAL)2.625816818958466716011888933765284;
+   rkAlpha = (KPP_REAL)1.687091590520766641994055533117359;
+   rkBeta  = (KPP_REAL)2.508731754924880510838743672432351;
+
+   rkT[0][1] = ONE;
+   rkT[0][1] = ONE;
+   rkT[0][2] = ZERO;
+   rkT[1][0] = (KPP_REAL).4554100411010284672111720348287483;
+   rkT[1][1] = (KPP_REAL)(-.6027050205505142336055860174143743);
+   rkT[1][2] = (KPP_REAL)(-.4309321229203225731070721341350346);
+   rkT[2][0] = (KPP_REAL)2.195823345445647152832799205549709;
+   rkT[2][1] = (KPP_REAL)(-1.097911672722823576416399602774855);
+   rkT[2][2] = (KPP_REAL).7850032632435902184104551358922130;
+
+   rkTinv[0][0] = (KPP_REAL).4205559181381766909344950150991349;
+   rkTinv[0][1] = (KPP_REAL).3488903392193734304046467270632057;
+   rkTinv[0][2] = (KPP_REAL).1915253879645878102698098373933487;
+   rkTinv[1][0] = (KPP_REAL).5794440818618233090655049849008650;
+   rkTinv[1][1] = (KPP_REAL)(-.3488903392193734304046467270632057);
+   rkTinv[1][2] = (KPP_REAL)(-.1915253879645878102698098373933487);
+   rkTinv[2][0] = (KPP_REAL)(-.3659705575742745254721332009249516);
+   rkTinv[2][1] = (KPP_REAL)(-1.463882230297098101888532803699806);
+   rkTinv[2][2] = (KPP_REAL).4702733607340189781407813565524989;
+
+   rkTinvAinv[0][0] = (KPP_REAL)1.104302803159744452668648155627548;
+   rkTinvAinv[0][1] = (KPP_REAL).916122120694355522658740710823143;
+   rkTinvAinv[0][2] = (KPP_REAL).5029105849749601702795812241441172;
+   rkTinvAinv[1][0] = (KPP_REAL)1.895697196840255547331351844372453;
+   rkTinvAinv[1][1] = (KPP_REAL)3.083877879305644477341259289176857;
+   rkTinvAinv[1][2] = (KPP_REAL)(-1.502910584974960170279581224144117);
+   rkTinvAinv[2][0] = (KPP_REAL).8362439183082935036129145574774502;
+   rkTinvAinv[2][1] = (KPP_REAL)(-3.344975673233174014451658229909802);
+   rkTinvAinv[2][2] = (KPP_REAL).312908409479233358005944466882642;
+
+   rkAinvT[0][0] = (KPP_REAL)2.625816818958466716011888933765282;
+   rkAinvT[0][1] = (KPP_REAL)1.687091590520766641994055533117358;
+   rkAinvT[0][2] = (KPP_REAL)(-2.508731754924880510838743672432351);
+   rkAinvT[1][0] = (KPP_REAL)1.195823345445647152832799205549710;
+   rkAinvT[1][1] = (KPP_REAL)(-2.097911672722823576416399602774855);
+   rkAinvT[1][2] = (KPP_REAL).7850032632435902184104551358922130;
+   rkAinvT[2][0] = (KPP_REAL)5.765829871932827589653709477334136;
+   rkAinvT[2][1] = (KPP_REAL).1170850640335862051731452613329320;
+   rkAinvT[2][2] = (KPP_REAL)4.078738281412060947659653944216779;
+} /* Lobatto3C_Coefficients */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+	The coefficients of the 3-stage Gauss method
+	(given to ~30 accurate digits)
+	The parameter b3 can be chosen by the user
+	to tune the error estimator
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void Gauss_Coefficients()
+{
+   rkMethod = GAU;
+   
+   /* The coefficients of the Gauss method */
+   KPP_REAL b0;
+   /*b0 = (KPP_REAL)4.0; */
+   b0 = (KPP_REAL)0.1;
+
+   /* The coefficients of the Gauss method */
+   rkA[0][0] = (KPP_REAL).1388888888888888888888888888888889;
+   rkA[0][1] = (KPP_REAL)(-.359766675249389034563954710966045e-01);
+   rkA[0][2] = (KPP_REAL)(.97894440153083260495800422294756e-02);
+   rkA[1][0] = (KPP_REAL).3002631949808645924380249472131556;
+   rkA[1][1] = (KPP_REAL).2222222222222222222222222222222222;
+   rkA[1][2] = (KPP_REAL)(-.224854172030868146602471694353778e-01);
+   rkA[2][0] = (KPP_REAL).2679883337624694517281977355483022;
+   rkA[2][1] = (KPP_REAL).4804211119693833479008399155410489;
+   rkA[2][2] = (KPP_REAL).1388888888888888888888888888888889;
+
+   rkB[0] = (KPP_REAL).2777777777777777777777777777777778;
+   rkB[1] = (KPP_REAL).4444444444444444444444444444444444;
+   rkB[2] = (KPP_REAL).2777777777777777777777777777777778;
+
+   rkC[0] = (KPP_REAL).1127016653792583114820734600217600;
+   rkC[1] = (KPP_REAL).5000000000000000000000000000000000;
+   rkC[2] = (KPP_REAL).8872983346207416885179265399782400;
+
+   /* Classical error estimator, embedded solution: */
+   rkBhat[0] = b0;
+   rkBhat[1] = (KPP_REAL)(-1.4788305577012361475298775666303999)*b0
+   		 +(KPP_REAL).27777777777777777777777777777777778;
+   rkBhat[2] = (KPP_REAL).44444444444444444444444444444444444
+    	         +(KPP_REAL).66666666666666666666666666666666667*b0;
+   rkBhat[3] = (KPP_REAL)(-.18783610896543051913678910003626672)*b0
+  	         +(KPP_REAL).27777777777777777777777777777777778;
+
+   /* New solution: h Sum_j b_j f(Z_j) = sum d_j Z_j */
+   rkD[0] = (KPP_REAL)(.1666666666666666666666666666666667e+01);
+   rkD[1] = (KPP_REAL)(-.1333333333333333333333333333333333e+01);
+   rkD[2] = (KPP_REAL)(.1666666666666666666666666666666667e+01);
+
+   /* Classical error estimator: */
+   /* H* Sum (B_j-Bhat_j)*f(Z_j) = H*E(0)*f(0) + Sum E_j*Z_j */
+   rkE[0] = (KPP_REAL).2153144231161121782447335303806954*b0;
+   rkE[1] = (KPP_REAL)(-2.825278112319014084275808340593191)*b0;
+   rkE[2] = (KPP_REAL).2870858974881495709929780405075939*b0;
+   rkE[3] = (KPP_REAL)(-.4558086256248162565397206448274867e-01)*b0;
+
+   /* Sdirk error estimator */
+   rkBgam[0] = ZERO;
+   rkBgam[1] = (KPP_REAL).2373339543355109188382583162660537;
+   rkBgam[2] = (KPP_REAL).5879873931885192299409334646982414;
+   rkBgam[3] = (KPP_REAL)(-.4063577064014232702392531134499046e-01);
+   rkBgam[4] = (KPP_REAL).2153144231161121782447335303806955;
+
+   /* H* Sum Bgam_j*f(Z_j) = H*Bgam(0)*f(0) + Sum Theta_j*Z_j */
+   rkTheta[0] = (KPP_REAL)(-2.594040933093095272574031876464493);
+   rkTheta[1] = (KPP_REAL)1.824611539036311947589425112250199;
+   rkTheta[2] = (KPP_REAL).1856563166634371860478043996459493;
+
+   /* ELO = local order of classical error estimator */
+   rkELO = (KPP_REAL)4.0;
+
+   /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   ~~~> Diagonalize the RK matrix:
+    rkTinv * inv(rkA) * rkT =
+              |  rkGamma      0           0     |
+              |      0      rkAlpha   -rkBeta   |
+              |      0      rkBeta     rkAlpha  |
+   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+   rkGamma = (KPP_REAL)4.644370709252171185822941421408064;
+   rkAlpha = (KPP_REAL)3.677814645373914407088529289295970;
+   rkBeta  = (KPP_REAL)3.508761919567443321903661209182446;
+
+   rkT[0][0] = (KPP_REAL)(.7215185205520017032081769924397664e-01);
+   rkT[0][1] = (KPP_REAL)(-.8224123057363067064866206597516454e-01);
+   rkT[0][2] = (KPP_REAL)(-.6012073861930850173085948921439054e-01);
+   rkT[1][0] = (KPP_REAL).1188325787412778070708888193730294;
+   rkT[1][1] = (KPP_REAL)(.5306509074206139504614411373957448e-01);
+   rkT[1][2] = (KPP_REAL).3162050511322915732224862926182701;
+   rkT[2][0] = ONE;
+   rkT[2][1] = ONE;
+   rkT[2][2] = ZERO;
+
+   rkTinv[0][0] = (KPP_REAL)5.991698084937800775649580743981285;
+   rkTinv[0][1] = (KPP_REAL)1.139214295155735444567002236934009;
+   rkTinv[0][2] = (KPP_REAL).4323121137838583855696375901180497;
+   rkTinv[1][0] = (KPP_REAL)(-5.991698084937800775649580743981285);
+   rkTinv[1][1] = (KPP_REAL)(-1.139214295155735444567002236934009);
+   rkTinv[1][2] = (KPP_REAL).5676878862161416144303624098819503;
+   rkTinv[2][0] = (KPP_REAL)(-1.246213273586231410815571640493082);
+   rkTinv[2][1] = (KPP_REAL)2.925559646192313662599230367054972;
+   rkTinv[2][2] = (KPP_REAL)(-.2577352012734324923468722836888244);
+
+   rkTinvAinv[0][0] = (KPP_REAL)27.82766708436744962047620566703329;
+   rkTinvAinv[0][1] = (KPP_REAL)5.290933503982655311815946575100597;
+   rkTinvAinv[0][2] = (KPP_REAL)2.007817718512643701322151051660114;
+   rkTinvAinv[1][0] = (KPP_REAL)(-17.66368928942422710690385180065675);
+   rkTinvAinv[1][1] = (KPP_REAL)(-14.45491129892587782538830044147713);
+   rkTinvAinv[1][2] = (KPP_REAL)2.992182281487356298677848948339886;
+   rkTinvAinv[2][0] = (KPP_REAL)(-25.60678350282974256072419392007303);
+   rkTinvAinv[2][1] = (KPP_REAL)6.762434375611708328910623303779923;
+   rkTinvAinv[2][2] = (KPP_REAL)1.043979339483109825041215970036771;
+
+   rkAinvT[0][0] = (KPP_REAL).3350999483034677402618981153470483;
+   rkAinvT[0][1] = (KPP_REAL)(-.5134173605009692329246186488441294);
+   rkAinvT[0][2] = (KPP_REAL)(.6745196507033116204327635673208923e-01);
+   rkAinvT[1][0] = (KPP_REAL).5519025480108928886873752035738885;
+   rkAinvT[1][1] = (KPP_REAL)1.304651810077110066076640761092008;
+   rkAinvT[1][2] = (KPP_REAL).9767507983414134987545585703726984;
+   rkAinvT[2][0] = (KPP_REAL)4.644370709252171185822941421408064;
+   rkAinvT[2][1] = (KPP_REAL)3.677814645373914407088529289295970;
+   rkAinvT[2][2] = (KPP_REAL)(-3.508761919567443321903661209182446);
+} /* Gauss_Coefficients */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+	The coefficients of the 3-stage Gauss method
+	(given to ~30 accurate digits)
+	The parameter b3 can be chosen by the user
+	to tune the error estimator
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void Radau1A_Coefficients()
+{
+   /* The coefficients of the Radau1A method */
+   KPP_REAL b0;
+   /*b0 = (KPP_REAL)0.3; */
+   b0 = (KPP_REAL)0.1;
+
+   /* The coefficients of the Radau1A method */
+   rkMethod = R1A;
+
+   rkA[0][0] = (KPP_REAL) .1111111111111111111111111111111111;
+   rkA[0][1] = (KPP_REAL)(-.1916383190435098943442935597058829);
+   rkA[0][2] = (KPP_REAL)(.8052720793239878323318244859477174e-01);
+   rkA[1][0] = (KPP_REAL).1111111111111111111111111111111111;
+   rkA[1][1] = (KPP_REAL).2920734116652284630205027458970589;
+   rkA[1][2] = (KPP_REAL)(-.481334970546573839513422644787591e-01);
+   rkA[2][0] = (KPP_REAL).1111111111111111111111111111111111;
+   rkA[2][1] = (KPP_REAL).5370223859435462728402311533676479;
+   rkA[2][2] = (KPP_REAL).1968154772236604258683861429918299;
+
+   rkB[0] = (KPP_REAL).1111111111111111111111111111111111;
+   rkB[1] = (KPP_REAL).5124858261884216138388134465196080;
+   rkB[2] = (KPP_REAL).3764030627004672750500754423692808;
+
+   rkC[0] = ZERO;
+   rkC[1] = (KPP_REAL).3550510257216821901802715925294109;
+   rkC[2] = (KPP_REAL).8449489742783178098197284074705891;
+
+   /* Classical error estimator, embedded solution: */
+   rkBhat[0] = b0;
+   rkBhat[1] = (KPP_REAL).11111111111111111111111111111111111-b0;
+   rkBhat[2] = (KPP_REAL).51248582618842161383881344651960810;
+   rkBhat[3] = (KPP_REAL).37640306270046727505007544236928079;
+
+   /* New solution: H* Sum B_j*f(Z_j) = Sum D_j*Z_j */
+   rkD[0] = (KPP_REAL).3333333333333333333333333333333333;
+   rkD[1] = (KPP_REAL)(-.8914115380582557157653087040196127);
+   rkD[2] = (KPP_REAL)(1.558078204724922382431975370686279);
+
+   /* Classical error estimator: */
+   /* H* Sum (b_j-bhat_j) f(Z_j) = H*E(0)*F(0) + Sum E_j Z_j */
+   rkE[0] = (KPP_REAL).2748888295956773677478286035994148*b0;
+   rkE[1] = (KPP_REAL)(-1.374444147978386838739143017997074)*b0;
+   rkE[2] = (KPP_REAL)(-1.335337922441686804550326197041126)*b0;
+   rkE[3] = (KPP_REAL).235782604058977333559011782643466*b0;
+
+   /* Sdirk error estimator */
+   rkBgam[0] = ZERO;
+   rkBgam[1] = (KPP_REAL)(.1948150124588532186183490991130616e-01);
+   rkBgam[2] = (KPP_REAL).7575249005733381398986810981093584;
+   rkBgam[3] = (KPP_REAL)(-.518952314149008295083446116200793e-01);
+   rkBgam[4] = (KPP_REAL).2748888295956773677478286035994148;
+
+   /* H* Sum Bgam_j*f(Z_j) = H*Bgam(0)*f(0) + Sum Theta_j*Z_j */
+   rkTheta[0] = (KPP_REAL)(-1.224370034375505083904362087063351);
+   rkTheta[1] = (KPP_REAL).9340045331532641409047527962010133;
+   rkTheta[2] = (KPP_REAL).4656990124352088397561234800640929;
+
+   /* ELO = local order of classical error estimator */
+   rkELO = (KPP_REAL)4.0;
+
+   /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   ~~~> Diagonalize the RK matrix:
+    rkTinv * inv(rkA) * rkT =
+              |  rkGamma      0           0     |
+              |      0      rkAlpha   -rkBeta   |
+              |      0      rkBeta     rkAlpha  |
+   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+   rkGamma = (KPP_REAL)3.637834252744495732208418513577775;
+   rkAlpha = (KPP_REAL)2.681082873627752133895790743211112;
+   rkBeta  = (KPP_REAL)3.050430199247410569426377624787569;
+
+   rkT[0][0] = (KPP_REAL).424293819848497965354371036408369;
+   rkT[0][1] = (KPP_REAL)(-.3235571519651980681202894497035503);
+   rkT[0][2] = (KPP_REAL)(-.522137786846287839586599927945048);
+   rkT[1][0] = (KPP_REAL)(.57594609499806128896291585429339e-01);
+   rkT[1][1] = (KPP_REAL)(.3148663231849760131614374283783e-02);
+   rkT[1][2] = (KPP_REAL).452429247674359778577728510381731;
+   rkT[2][0] = ONE;
+   rkT[2][1] = ONE;
+   rkT[2][2] = ZERO;
+
+   rkTinv[0][0] = (KPP_REAL)1.233523612685027760114769983066164;
+   rkTinv[0][1] = (KPP_REAL)1.423580134265707095505388133369554;
+   rkTinv[0][2] = (KPP_REAL).3946330125758354736049045150429624;
+   rkTinv[1][0] = (KPP_REAL)(-1.233523612685027760114769983066164);
+   rkTinv[1][1] = (KPP_REAL)(-1.423580134265707095505388133369554);
+   rkTinv[1][2] = (KPP_REAL).6053669874241645263950954849570376;
+   rkTinv[2][0] = (KPP_REAL)(-.1484438963257383124456490049673414);
+   rkTinv[2][1] = (KPP_REAL)2.038974794939896109682070471785315;
+   rkTinv[2][2] = (KPP_REAL)(-.544501292892686735299355831692542e-01);
+
+   rkTinvAinv[0][0] = (KPP_REAL)4.487354449794728738538663081025420;
+   rkTinvAinv[0][1] = (KPP_REAL)5.178748573958397475446442544234494;
+   rkTinvAinv[0][2] = (KPP_REAL)1.435609490412123627047824222335563;
+   rkTinvAinv[1][0] = (KPP_REAL)(-2.854361287939276673073807031221493);
+   rkTinvAinv[1][1] = (KPP_REAL)(-1.003648660720543859000994063139137e+01);
+   rkTinvAinv[1][2] = (KPP_REAL)1.789135380979465422050817815017383;
+   rkTinvAinv[2][0] = (KPP_REAL)(-4.160768067752685525282947313530352);
+   rkTinvAinv[2][1] = (KPP_REAL)1.124128569859216916690209918405860;
+   rkTinvAinv[2][2] = (KPP_REAL)1.700644430961823796581896350418417;
+
+   rkAinvT[0][0] = (KPP_REAL)1.543510591072668287198054583233180;
+   rkAinvT[0][1] = (KPP_REAL)(-2.460228411937788329157493833295004);
+   rkAinvT[0][2] = (KPP_REAL)(-.412906170450356277003910443520499);
+   rkAinvT[1][0] = (KPP_REAL).209519643211838264029272585946993;
+   rkAinvT[1][1] = (KPP_REAL)1.388545667194387164417459732995766;
+   rkAinvT[1][2] = (KPP_REAL)1.20339553005832004974976023130002;
+   rkAinvT[2][0] = (KPP_REAL)3.637834252744495732208418513577775;
+   rkAinvT[2][1] = (KPP_REAL)2.681082873627752133895790743211112;
+   rkAinvT[2][2] = (KPP_REAL)(-3.050430199247410569426377624787569);
+} /* Radau1A_Coefficients */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+	The coefficients of the 4-stage Lobatto-3A method
+	(given to ~30 accurate digits)
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void Lobatto3A_Coefficients()
+{
+   /* The coefficients of the Lobatto-3A method */
+   rkMethod = L3A;
+
+   rkA[0][0] = ZERO;
+   rkA[0][1] = ZERO;
+   rkA[0][2] = ZERO;
+   rkA[0][3] = ZERO;
+   rkA[1][0] = (KPP_REAL).11030056647916491413674311390609397;
+   rkA[1][1] = (KPP_REAL).1896994335208350858632568860939060;
+   rkA[1][2] = (KPP_REAL)(-.339073642291438837776604807792215e-01);
+   rkA[1][3] = (KPP_REAL)(.1030056647916491413674311390609397e-01);
+   rkA[2][0] = (KPP_REAL)(.73032766854168419196590219427239365e-01);
+   rkA[2][1] = (KPP_REAL).4505740308958105504443271474458881;
+   rkA[2][2] = (KPP_REAL).2269672331458315808034097805727606;
+   rkA[2][3] = (KPP_REAL)(-.2696723314583158080340978057276063e-01);
+   rkA[3][0] = (KPP_REAL)(.83333333333333333333333333333333333e-01);
+   rkA[3][1] = (KPP_REAL).4166666666666666666666666666666667;
+   rkA[3][2] = (KPP_REAL).4166666666666666666666666666666667;
+   rkA[3][3] = (KPP_REAL)(.8333333333333333333333333333333333e-01);
+
+   rkB[0] = (KPP_REAL)(.83333333333333333333333333333333333e-01);
+   rkB[1] = (KPP_REAL).4166666666666666666666666666666667;
+   rkB[2] = (KPP_REAL).4166666666666666666666666666666667;
+   rkB[3] = (KPP_REAL)(.8333333333333333333333333333333333e-01);
+
+   rkC[0] = ZERO;
+   rkC[1] = (KPP_REAL).2763932022500210303590826331268724;
+   rkC[2] = (KPP_REAL).7236067977499789696409173668731276;
+   rkC[3] = ONE;
+
+   /* New solution: H*Sum B_j*f(Z_j) = Sum D_j*Z_j */
+   rkD[0] = ZERO;
+   rkD[1] = ZERO;
+   rkD[2] = ZERO;
+   rkD[3] = ONE;
+
+   /* Classical error estimator, embedded solution: */
+   rkBhat[0] = (KPP_REAL)(.90909090909090909090909090909090909e-01);
+   rkBhat[1] = (KPP_REAL).39972675774621371442114262372173276;
+   rkBhat[2] = (KPP_REAL).43360657558711961891219070961160058;
+   rkBhat[3] = (KPP_REAL)(.15151515151515151515151515151515152e-01);
+
+   /* Classical error estimator: */
+   /* H* Sum (B_j-Bhat_j)*f(Z_j) = H*E(0)*f(0) + Sum E_j*Z_j */
+
+   rkE[0] = (KPP_REAL)(.1957403846510110711315759367097231e-01);
+   rkE[1] = (KPP_REAL)(-.1986820345632580910316020806676438);
+   rkE[2] = (KPP_REAL).1660586371214229125096727578826900;
+   rkE[3] = (KPP_REAL)(-.9787019232550553556578796835486154e-01);
+
+   /* Sdirk error estimator: */
+   rkF[0] = ZERO;
+   rkF[1] = (KPP_REAL)(-.66535815876916686607437314126436349);
+   rkF[2] = (KPP_REAL)1.7419302743497277572980407931678409;
+   rkF[3] = (KPP_REAL)(-1.2918865386966730694684011822841728);
+
+   /* ELO = local order of classical error estimator */
+   rkELO = (KPP_REAL)4.0;
+
+   /* Sdirk error estimator: */
+   rkBgam[0] = (KPP_REAL)(.2950472755430528877214995073815946e-01);
+   rkBgam[1] = (KPP_REAL).5370310883226113978352873633882769;
+   rkBgam[2] = (KPP_REAL).2963022450107219354980459699450564;
+   rkBgam[3] = (KPP_REAL)(-.7815248400375080035021681445218837e-01);
+   rkBgam[4] = (KPP_REAL).2153144231161121782447335303806956;
+
+   /* H* Sum Bgam_j*f(Z_j) = H*Bgam(0)*f(0) + Sum Theta_j*Z_j */
+   rkTheta[0] = (KPP_REAL)0.0;
+   rkTheta[1] = (KPP_REAL)(-.6653581587691668660743731412643631);
+   rkTheta[2] = (KPP_REAL)1.741930274349727757298040793167842;
+   rkTheta[3] = (KPP_REAL)(-.291886538696673069468401182284174);
+
+
+   /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   ~~~> Diagonalize the RK matrix:
+    rkTinv * inv(rkA) * rkT =
+              |  rkGamma      0           0     |
+              |      0      rkAlpha   -rkBeta   |
+              |      0      rkBeta     rkAlpha  |
+   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+   rkGamma = (KPP_REAL)4.644370709252171185822941421408063;
+   rkAlpha = (KPP_REAL)3.677814645373914407088529289295968;
+   rkBeta  = (KPP_REAL)3.508761919567443321903661209182446;
+
+   rkT[0][0] = (KPP_REAL)(.5303036326129938105898786144870856e-01);
+   rkT[0][1] = (KPP_REAL)(-.7776129960563076320631956091016914e-01);
+   rkT[0][2] = (KPP_REAL)(.6043307469475508514468017399717112e-02);
+   rkT[1][0] = (KPP_REAL).2637242522173698467283726114649606;
+   rkT[1][1] = (KPP_REAL).2193839918662961493126393244533346;
+   rkT[1][2] = (KPP_REAL).3198765142300936188514264752235344;
+   rkT[2][0] = ONE;
+   rkT[2][1] = ZERO;
+   rkT[2][2] = ZERO;
+
+   rkTinv[0][0] = (KPP_REAL)7.695032983257654470769069079238553;
+   rkTinv[0][1] = (KPP_REAL)(-.1453793830957233720334601186354032);
+   rkTinv[0][2] = (KPP_REAL).6302696746849084900422461036874826;
+   rkTinv[1][0] = (KPP_REAL)(-7.695032983257654470769069079238553);
+   rkTinv[1][1] = (KPP_REAL).1453793830957233720334601186354032;
+   rkTinv[1][2] = (KPP_REAL).3697303253150915099577538963125174;
+   rkTinv[2][0] = (KPP_REAL)(-1.066660885401270392058552736086173);
+   rkTinv[2][1] = (KPP_REAL)3.146358406832537460764521760668932;
+   rkTinv[2][2] = (KPP_REAL)(-.7732056038202974770406168510664738);
+
+   rkTinvAinv[0][0] = (KPP_REAL)35.73858579417120341641749040405149;
+   rkTinvAinv[0][1] = (KPP_REAL)(-.675195748578927863668368190236025);
+   rkTinvAinv[0][2] = (KPP_REAL)2.927206016036483646751158874041632;
+   rkTinvAinv[1][0] = (KPP_REAL)(-24.55824590667225493437162206039511);
+   rkTinvAinv[1][1] = (KPP_REAL)(-10.50514413892002061837750015342036);
+   rkTinvAinv[1][2] = (KPP_REAL)4.072793983963516353248841125958369;
+   rkTinvAinv[2][0] = (KPP_REAL)(-30.92301972744621647251975054630589);
+   rkTinvAinv[2][1] = (KPP_REAL)12.08182467154052413351908559269928;
+   rkTinvAinv[2][2] = (KPP_REAL)(-1.546411207640594954081233702132946);
+
+   rkAinvT[0][0] = (KPP_REAL).2462926658317812882584158369803835;
+   rkAinvT[0][1] = (KPP_REAL)(-.2647871194157644619747121197289574);
+   rkAinvT[0][2] = (KPP_REAL).2950720515900466654896406799284586;
+   rkAinvT[1][0] = (KPP_REAL)1.224833192317784474576995878738004;
+   rkAinvT[1][1] = (KPP_REAL)1.929224190340981580557006261869763;
+   rkAinvT[1][2] = (KPP_REAL).4066803323234419988910915619080306;
+   rkAinvT[2][0] = (KPP_REAL)4.644370709252171185822941421408064;
+   rkAinvT[2][1] = (KPP_REAL)3.677814645373914407088529289295968;
+   rkAinvT[2][2] = (KPP_REAL)(-3.508761919567443321903661209182446);
+} /* Lobatto3A_Coefficients */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+	END SUBROUTINE RungeKutta ! and all its internal procedures
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void FUN_CHEM(KPP_REAL T, KPP_REAL V[], KPP_REAL FCT[])
+{
+   KPP_REAL Told;
+
+   Told = TIME;
+   TIME = T;
+   Update_SUN();
+   Update_RCONST();
+   Update_PHOTO();
+   TIME = Told;
+
+   Fun(V, FIX, RCONST, FCT);
+
+} /* FUN_CHEM */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void JAC_CHEM (KPP_REAL T, KPP_REAL V[], KPP_REAL JF[])
+{
+   KPP_REAL Told;
+
+   Told = TIME;
+   TIME = T;
+   Update_SUN();
+   Update_RCONST();
+   Update_PHOTO();
+   TIME = Told;
+   Jac_SP(V, FIX, RCONST, JF);
+} /* JAC_CHEM */
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/runge_kutta.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/runge_kutta.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/runge_kutta.def	(revision 2696)
@@ -0,0 +1,8 @@
+ 
+#FUNCTION AGGREGATE
+#JACOBIAN SPARSE_LU_ROW
+
+#DOUBLE ON 
+#INTFILE runge_kutta
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/runge_kutta.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/runge_kutta.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/runge_kutta.f90	(revision 2696)
@@ -0,0 +1,1881 @@
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
+!  RungeKutta - Fully Implicit 3-stage Runge-Kutta methods based on:      !
+!          * Radau-2A   quadrature (order 5)                              !
+!          * Radau-1A   quadrature (order 5)                              !
+!          * Lobatto-3C quadrature (order 4)                              !
+!          * Gauss      quadrature (order 6)                              !
+!  By default the code employs the KPP sparse linear algebra routines     !
+!  Compile with -DFULL_ALGEBRA to use full linear algebra (LAPACK)        !
+!                                                                         !
+!    (C)  Adrian Sandu, August 2005                                       !
+!    Virginia Polytechnic Institute and State University                  !
+!    Contact: sandu@cs.vt.edu                                             !
+!    Revised by Philipp Miehe and Adrian Sandu, May 2006                  !
+!    This implementation is part of KPP - the Kinetic PreProcessor        !
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
+
+MODULE KPP_ROOT_Integrator
+
+  USE KPP_ROOT_Precision
+  USE KPP_ROOT_Parameters, ONLY: NVAR, NSPEC, NFIX, LU_NONZERO
+  USE KPP_ROOT_Global, ONLY: FIX, RCONST, TIME
+  USE KPP_ROOT_Jacobian,   ONLY: LU_DIAG
+  USE KPP_ROOT_LinearAlgebra
+
+  IMPLICIT NONE
+  PUBLIC
+  SAVE
+
+!~~~>  Statistics on the work performed by the Runge-Kutta method
+  INTEGER, PARAMETER :: Nfun=1, Njac=2, Nstp=3, Nacc=4, &
+    Nrej=5, Ndec=6, Nsol=7, Nsng=8, Ntexit=1, Nhacc=2, Nhnew=3
+  
+CONTAINS
+
+  ! **************************************************************************
+
+  SUBROUTINE INTEGRATE( TIN, TOUT, &
+    ICNTRL_U, RCNTRL_U, ISTATUS_U, RSTATUS_U, IERR_U )
+
+    USE KPP_ROOT_Parameters, ONLY: NVAR
+    USE KPP_ROOT_Global,     ONLY: ATOL,RTOL,VAR
+
+    IMPLICIT NONE
+
+    KPP_REAL :: TIN  ! TIN - Start Time
+    KPP_REAL :: TOUT ! TOUT - End Time
+    INTEGER,       INTENT(IN),  OPTIONAL :: ICNTRL_U(20)
+    KPP_REAL, INTENT(IN),  OPTIONAL :: RCNTRL_U(20)
+    INTEGER,       INTENT(OUT), OPTIONAL :: ISTATUS_U(20)
+    KPP_REAL, INTENT(OUT), OPTIONAL :: RSTATUS_U(20)
+    INTEGER,       INTENT(OUT), OPTIONAL :: IERR_U
+
+    INTEGER :: IERR
+
+    KPP_REAL :: RCNTRL(20), RSTATUS(20), T1, T2
+    INTEGER :: ICNTRL(20), ISTATUS(20)
+    INTEGER, SAVE :: Ntotal = 0
+
+    RCNTRL(1:20) = 0.0_dp
+    ICNTRL(1:20) = 0
+
+    !~~~> fine-tune the integrator:
+    ICNTRL(2)  = 0   ! 0=vector tolerances, 1=scalar tolerances
+    ICNTRL(5)  = 8   ! Max no. of Newton iterations
+    ICNTRL(6)  = 0   ! Starting values for Newton are interpolated (0) or zero (1)
+    ICNTRL(10) = 1   ! 0 - classic or 1 - SDIRK error estimation
+    ICNTRL(11) = 0   ! Gustaffson (0) or classic(1) controller
+
+    !~~~> if optional parameters are given, and if they are >0,
+    !     then use them to overwrite default settings
+    IF (PRESENT(ICNTRL_U)) THEN
+      WHERE(ICNTRL_U(:) > 0) ICNTRL(:) = ICNTRL_U(:)
+    END IF
+    IF (PRESENT(RCNTRL_U)) THEN
+      WHERE(RCNTRL_U(:) > 0) RCNTRL(:) = RCNTRL_U(:)
+    END IF
+
+    
+    T1 = TIN; T2 = TOUT
+    CALL RungeKutta(  NVAR, T1, T2, VAR, RTOL, ATOL, &
+                      RCNTRL,ICNTRL,RSTATUS,ISTATUS,IERR  )
+
+    Ntotal = Ntotal + ISTATUS(Nstp)
+    PRINT*,'NSTEPS=',ISTATUS(Nstp),' (',Ntotal,')','  O3=', VAR(ind_O3)
+
+    ! if optional parameters are given for output
+    ! use them to store information in them
+    IF (PRESENT(ISTATUS_U)) ISTATUS_U(:) = ISTATUS(:)
+    IF (PRESENT(RSTATUS_U)) RSTATUS_U(:) = RSTATUS(:)
+    IF (PRESENT(IERR_U)) IERR_U = IERR
+
+    IF (IERR < 0) THEN
+      PRINT *,'Runge-Kutta: Unsuccessful exit at T=', TIN,' (IERR=',IERR,')'
+    ENDIF
+
+  END SUBROUTINE INTEGRATE
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE RungeKutta( N,T,Tend,Y,RelTol,AbsTol,    &
+                         RCNTRL,ICNTRL,RSTATUS,ISTATUS,IERR )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!  This implementation is based on the book and the code Radau5:
+!
+!         E. HAIRER AND G. WANNER
+!         "SOLVING ORDINARY DIFFERENTIAL EQUATIONS II. 
+!              STIFF AND DIFFERENTIAL-ALGEBRAIC PROBLEMS."
+!         SPRINGER SERIES IN COMPUTATIONAL MATHEMATICS 14,
+!         SPRINGER-VERLAG (1991)
+!
+!         UNIVERSITE DE GENEVE, DEPT. DE MATHEMATIQUES
+!         CH-1211 GENEVE 24, SWITZERLAND
+!         E-MAIL:  HAIRER@DIVSUN.UNIGE.CH,  WANNER@DIVSUN.UNIGE.CH
+!
+!   Methods:
+!          * Radau-2A   quadrature (order 5)                              
+!          * Radau-1A   quadrature (order 5)                              
+!          * Lobatto-3C quadrature (order 4)                              
+!          * Gauss      quadrature (order 6)                              
+!                                                                         
+!   (C)  Adrian Sandu, August 2005                                       
+!   Virginia Polytechnic Institute and State University                  
+!   Contact: sandu@cs.vt.edu                                             
+!   Revised by Philipp Miehe and Adrian Sandu, May 2006                  
+!   This implementation is part of KPP - the Kinetic PreProcessor        
+!
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>   INPUT ARGUMENTS:
+!       ----------------
+!
+!    Note: For input parameters equal to zero the default values of the
+!          corresponding variables are used.
+!
+!     N           Dimension of the system
+!     T           Initial time value
+!
+!     Tend        Final T value (Tend-T may be positive or negative)
+!
+!     Y(N)        Initial values for Y
+!
+!     RelTol,AbsTol   Relative and absolute error tolerances. 
+!          for ICNTRL(2) = 0: AbsTol, RelTol are N-dimensional vectors
+!                        = 1: AbsTol, RelTol are scalars
+!
+!~~~>  Integer input parameters:
+!  
+!    ICNTRL(1) = not used
+!
+!    ICNTRL(2) = 0: AbsTol, RelTol are NVAR-dimensional vectors
+!              = 1: AbsTol, RelTol are scalars
+!
+!    ICNTRL(3) = RK method selection       
+!              = 1:  Radau-2A    (the default)
+!              = 2:  Lobatto-3C
+!              = 3:  Gauss
+!              = 4:  Radau-1A
+!	       = 5:  Lobatto-3A (not yet implemented)
+!
+!    ICNTRL(4)  -> maximum number of integration steps
+!        For ICNTRL(4)=0 the default value of 10000 is used
+!
+!    ICNTRL(5)  -> maximum number of Newton iterations
+!        For ICNTRL(5)=0 the default value of 8 is used
+!
+!    ICNTRL(6)  -> starting values of Newton iterations:
+!        ICNTRL(6)=0 : starting values are obtained from 
+!                      the extrapolated collocation solution
+!                      (the default)
+!        ICNTRL(6)=1 : starting values are zero
+!
+!    ICNTRL(10) -> switch for error estimation strategy
+!		ICNTRL(10) = 0: one additional stage at c=0, 
+!				see Hairer (default)
+!		ICNTRL(10) = 1: two additional stages at c=0 
+!				and SDIRK at c=1, stiffly accurate
+!
+!    ICNTRL(11) -> switch for step size strategy
+!              ICNTRL(11)=0:  mod. predictive controller (Gustafsson, default)
+!              ICNTRL(11)=1:  classical step size control
+!              the choice 1 seems to produce safer results;
+!              for simple problems, the choice 2 produces
+!              often slightly faster runs
+!
+!~~~>  Real input parameters:
+!
+!    RCNTRL(1)  -> Hmin, lower bound for the integration step size
+!                  (highly recommended to keep Hmin = ZERO, the default)
+!
+!    RCNTRL(2)  -> Hmax, upper bound for the integration step size
+!
+!    RCNTRL(3)  -> Hstart, the starting step size
+!
+!    RCNTRL(4)  -> FacMin, lower bound on step decrease factor (default=0.2)
+!
+!    RCNTRL(5)  -> FacMax, upper bound on step increase factor (default=6)
+!
+!    RCNTRL(6)  -> FacRej, step decrease factor after multiple rejections
+!                 (default=0.1)
+!
+!    RCNTRL(7)  -> FacSafe, by which the new step is slightly smaller
+!                  than the predicted value  (default=0.9)
+!
+!    RCNTRL(8)  -> ThetaMin. If Newton convergence rate smaller
+!                  than ThetaMin the Jacobian is not recomputed;
+!                  (default=0.001)
+!
+!    RCNTRL(9)  -> NewtonTol, stopping criterion for Newton's method
+!                  (default=0.03)
+!
+!    RCNTRL(10) -> Qmin
+!
+!    RCNTRL(11) -> Qmax. If Qmin < Hnew/Hold < Qmax, then the
+!                  step size is kept constant and the LU factorization
+!                  reused (default Qmin=1, Qmax=1.2)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!
+!    OUTPUT ARGUMENTS:
+!    -----------------
+!
+!    T           -> T value for which the solution has been computed
+!                     (after successful return T=Tend).
+!
+!    Y(N)        -> Numerical solution at T
+!
+!    IERR        -> Reports on successfulness upon return:
+!                    = 1 for success
+!                    < 0 for error (value equals error code)
+!
+!    ISTATUS(1)  -> No. of function calls
+!    ISTATUS(2)  -> No. of Jacobian calls
+!    ISTATUS(3)  -> No. of steps
+!    ISTATUS(4)  -> No. of accepted steps
+!    ISTATUS(5)  -> No. of rejected steps (except at very beginning)
+!    ISTATUS(6)  -> No. of LU decompositions
+!    ISTATUS(7)  -> No. of forward/backward substitutions
+!    ISTATUS(8)  -> No. of singular matrix decompositions
+!
+!    RSTATUS(1)  -> Texit, the time corresponding to the
+!                     computed Y upon return
+!    RSTATUS(2)  -> Hexit, last accepted step before exit
+!    RSTATUS(3)  -> Hnew, last predicted step (not yet taken)
+!                   For multiple restarts, use Hnew as Hstart 
+!                     in the subsequent run
+!
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      IMPLICIT NONE
+      
+      INTEGER :: N
+      KPP_REAL :: Y(N),AbsTol(N),RelTol(N),RCNTRL(20),RSTATUS(20)
+      INTEGER :: ICNTRL(20), ISTATUS(20)
+      LOGICAL :: StartNewton, Gustafsson, SdirkError
+      INTEGER :: IERR, ITOL
+      KPP_REAL :: T,Tend
+
+      !~~~> Control arguments
+      INTEGER :: Max_no_steps, NewtonMaxit, rkMethod
+      KPP_REAL :: Hmin,Hmax,Hstart,Qmin,Qmax
+      KPP_REAL :: Roundoff, ThetaMin, NewtonTol
+      KPP_REAL :: FacSafe,FacMin,FacMax,FacRej
+      ! Runge-Kutta method parameters
+      INTEGER, PARAMETER :: R2A=1, R1A=2, L3C=3, GAU=4, L3A=5
+      KPP_REAL :: rkT(3,3), rkTinv(3,3), rkTinvAinv(3,3), rkAinvT(3,3), &
+                       rkA(0:3,0:3), rkB(0:3),  rkC(0:3), rkD(0:3), rkE(0:3), &
+		       rkBgam(0:4), rkBhat(0:4), rkTheta(0:3), rkF(0:4),      &
+                       rkGamma,  rkAlpha, rkBeta, rkELO
+       !~~~> Local variables
+      INTEGER :: i
+      KPP_REAL, PARAMETER :: ZERO = 0.0d0, ONE = 1.0d0
+   
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!        SETTING THE PARAMETERS
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IERR = 0
+      ISTATUS(1:20) = 0
+      RSTATUS(1:20) = ZERO
+       
+!~~~> ICNTRL(1) - autonomous system - not used       
+!~~~> ITOL: 1 for vector and 0 for scalar AbsTol/RelTol
+      IF (ICNTRL(2) == 0) THEN
+         ITOL = 1
+      ELSE
+         ITOL = 0
+      END IF
+!~~~> Error control selection  
+      IF (ICNTRL(10) == 0) THEN 
+         SdirkError = .FALSE.
+      ELSE
+         SdirkError = .TRUE.
+      END IF      
+!~~~> Method selection  
+      SELECT CASE (ICNTRL(3))     
+      CASE (0,1)
+         CALL Radau2A_Coefficients
+      CASE (2)
+         CALL Lobatto3C_Coefficients
+      CASE (3)
+         CALL Gauss_Coefficients
+      CASE (4)
+         CALL Radau1A_Coefficients
+      CASE (5)
+         CALL Lobatto3A_Coefficients
+      CASE DEFAULT
+         WRITE(6,*) 'ICNTRL(3)=',ICNTRL(3)
+         CALL RK_ErrorMsg(-13,T,ZERO,IERR)
+      END SELECT
+!~~~> Max_no_steps: the maximal number of time steps
+      IF (ICNTRL(4) == 0) THEN
+         Max_no_steps = 200000
+      ELSE
+         Max_no_steps=ICNTRL(4)
+         IF (Max_no_steps <= 0) THEN
+            WRITE(6,*) 'ICNTRL(4)=',ICNTRL(4)
+            CALL RK_ErrorMsg(-1,T,ZERO,IERR)
+         END IF
+      END IF
+!~~~> NewtonMaxit    maximal number of Newton iterations
+      IF (ICNTRL(5) == 0) THEN
+         NewtonMaxit = 8
+      ELSE
+         NewtonMaxit=ICNTRL(5)
+         IF (NewtonMaxit <= 0) THEN
+            WRITE(6,*) 'ICNTRL(5)=',ICNTRL(5)
+            CALL RK_ErrorMsg(-2,T,ZERO,IERR)
+          END IF
+      END IF
+!~~~> StartNewton:  Use extrapolation for starting values of Newton iterations
+      IF (ICNTRL(6) == 0) THEN
+         StartNewton = .TRUE.
+      ELSE
+         StartNewton = .FALSE.
+      END IF      
+!~~~> Gustafsson: step size controller
+      IF(ICNTRL(11) == 0)THEN
+         Gustafsson = .TRUE.
+      ELSE
+         Gustafsson = .FALSE.
+      END IF
+
+!~~~> Roundoff: smallest number s.t. 1.0 + Roundoff > 1.0
+      Roundoff=WLAMCH('E');
+
+!~~~> Hmin = minimal step size
+      IF (RCNTRL(1) == ZERO) THEN
+         Hmin = ZERO
+      ELSE
+         Hmin = MIN(ABS(RCNTRL(1)),ABS(Tend-T))
+      END IF
+!~~~> Hmax = maximal step size
+      IF (RCNTRL(2) == ZERO) THEN
+         Hmax = ABS(Tend-T)
+      ELSE
+         Hmax = MIN(ABS(RCNTRL(2)),ABS(Tend-T))
+      END IF
+!~~~> Hstart = starting step size
+      IF (RCNTRL(3) == ZERO) THEN
+         Hstart = ZERO
+      ELSE
+         Hstart = MIN(ABS(RCNTRL(3)),ABS(Tend-T))
+      END IF
+!~~~> FacMin: lower bound on step decrease factor
+      IF(RCNTRL(4) == ZERO)THEN
+         FacMin = 0.2d0
+      ELSE
+         FacMin = RCNTRL(4)
+      END IF
+!~~~> FacMax: upper bound on step increase factor
+      IF(RCNTRL(5) == ZERO)THEN
+         FacMax = 8.D0
+      ELSE
+         FacMax = RCNTRL(5)
+      END IF
+!~~~> FacRej: step decrease factor after 2 consecutive rejections
+      IF(RCNTRL(6) == ZERO)THEN
+         FacRej = 0.1d0
+      ELSE
+         FacRej = RCNTRL(6)
+      END IF
+!~~~> FacSafe:  by which the new step is slightly smaller
+!               than the predicted value
+      IF (RCNTRL(7) == ZERO) THEN
+         FacSafe=0.9d0
+      ELSE
+         FacSafe=RCNTRL(7)
+      END IF
+      IF ( (FacMax < ONE) .OR. (FacMin > ONE) .OR. &
+           (FacSafe <= 1.0d-3) .OR. (FacSafe >= ONE) ) THEN
+            WRITE(6,*)'RCNTRL(4:7)=',RCNTRL(4:7)
+            CALL RK_ErrorMsg(-4,T,ZERO,IERR)
+      END IF
+
+!~~~> ThetaMin:  decides whether the Jacobian should be recomputed
+      IF (RCNTRL(8) == ZERO) THEN
+         ThetaMin = 1.0d-3
+      ELSE
+         ThetaMin=RCNTRL(8)
+         IF (ThetaMin <= 0.0d0 .OR. ThetaMin >= 1.0d0) THEN
+            WRITE(6,*) 'RCNTRL(8)=', RCNTRL(8)
+            CALL RK_ErrorMsg(-5,T,ZERO,IERR)
+         END IF
+      END IF
+!~~~> NewtonTol:  stopping crierion for Newton's method
+      IF (RCNTRL(9) == ZERO) THEN
+         NewtonTol = 3.0d-2
+      ELSE
+         NewtonTol = RCNTRL(9)
+         IF (NewtonTol <= Roundoff) THEN
+            WRITE(6,*) 'RCNTRL(9)=',RCNTRL(9)
+            CALL RK_ErrorMsg(-6,T,ZERO,IERR)
+         END IF
+      END IF
+!~~~> Qmin AND Qmax: IF Qmin < Hnew/Hold < Qmax then step size = const.
+      IF (RCNTRL(10) == ZERO) THEN
+         Qmin=1.D0
+      ELSE
+         Qmin=RCNTRL(10)
+      END IF
+      IF (RCNTRL(11) == ZERO) THEN
+         Qmax=1.2D0
+      ELSE
+         Qmax=RCNTRL(11)
+      END IF
+      IF (Qmin > ONE .OR. Qmax < ONE) THEN
+         WRITE(6,*) 'RCNTRL(10:11)=',Qmin,Qmax
+         CALL RK_ErrorMsg(-7,T,ZERO,IERR)
+      END IF
+!~~~> Check if tolerances are reasonable
+      IF (ITOL == 0) THEN
+          IF (AbsTol(1) <= ZERO.OR.RelTol(1) <= 10.d0*Roundoff) THEN
+              WRITE (6,*) 'AbsTol/RelTol=',AbsTol,RelTol 
+              CALL RK_ErrorMsg(-8,T,ZERO,IERR)
+          END IF
+      ELSE
+          DO i=1,N
+          IF (AbsTol(i) <= ZERO.OR.RelTol(i) <= 10.d0*Roundoff) THEN
+              WRITE (6,*) 'AbsTol/RelTol(',i,')=',AbsTol(i),RelTol(i)
+              CALL RK_ErrorMsg(-8,T,ZERO,IERR)
+          END IF
+          END DO
+      END IF
+
+!~~~> Parameters are wrong
+      IF (IERR < 0) RETURN
+
+!~~~> Call the core method
+      CALL RK_Integrator( N,T,Tend,Y,IERR )
+
+   CONTAINS ! Internal procedures to RungeKutta
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE RK_Integrator( N,T,Tend,Y,IERR )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      IMPLICIT NONE
+!~~~> Arguments
+      INTEGER,  INTENT(IN)         :: N
+      KPP_REAL, INTENT(IN)    :: Tend
+      KPP_REAL, INTENT(INOUT) :: T, Y(NVAR)
+      INTEGER,  INTENT(OUT)        :: IERR
+
+!~~~> Local variables
+#ifdef FULL_ALGEBRA
+      KPP_REAL    :: FJAC(NVAR,NVAR), E1(NVAR,NVAR)
+      COMPLEX(kind=dp) :: E2(NVAR,NVAR)   
+#else
+      KPP_REAL    :: FJAC(LU_NONZERO), E1(LU_NONZERO)
+      COMPLEX(kind=dp) :: E2(LU_NONZERO)   
+#endif                
+      KPP_REAL, DIMENSION(NVAR) :: Z1,Z2,Z3,Z4,SCAL,DZ1,DZ2,DZ3,DZ4, &
+      				G,TMP,F0
+      KPP_REAL  :: CONT(NVAR,3), Tdirection,  H, Hacc, Hnew, Hold, Fac, &
+                 FacGus, Theta, Err, ErrOld, NewtonRate, NewtonIncrement,    &
+                 Hratio, Qnewton, NewtonPredictedErr,NewtonIncrementOld, ThetaSD
+      INTEGER :: IP1(NVAR),IP2(NVAR),NewtonIter, ISING, Nconsecutive
+      LOGICAL :: Reject, FirstStep, SkipJac, NewtonDone, SkipLU
+      
+            
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Initial setting
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      Tdirection = SIGN(ONE,Tend-T)
+      H = MIN( MAX(ABS(Hmin),ABS(Hstart)) , Hmax )
+      IF (ABS(H) <= 10.d0*Roundoff) H = 1.0d-6
+      H = SIGN(H,Tdirection)
+      Hold      = H
+      Reject    = .FALSE.
+      FirstStep = .TRUE.
+      SkipJac   = .FALSE.
+      SkipLU    = .FALSE.
+      IF ((T+H*1.0001D0-Tend)*Tdirection >= ZERO) THEN
+         H = Tend-T
+      END IF
+      Nconsecutive = 0
+      CALL RK_ErrorScale(N,ITOL,AbsTol,RelTol,Y,SCAL)
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Time loop begins
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Tloop: DO WHILE ( (Tend-T)*Tdirection - Roundoff > ZERO )
+
+      !IF ( .NOT.Reject ) THEN      
+         CALL FUN_CHEM(T,Y,F0)
+         ISTATUS(Nfun) = ISTATUS(Nfun) + 1
+      !END IF   
+
+      IF ( .NOT.SkipLU ) THEN ! This time around skip the Jac update and LU
+        !~~~> Compute the Jacobian matrix
+        IF ( .NOT.SkipJac ) THEN
+          CALL JAC_CHEM(T,Y,FJAC)
+          ISTATUS(Njac) = ISTATUS(Njac) + 1
+        END IF
+        !~~~> Compute the matrices E1 and E2 and their decompositions
+        CALL RK_Decomp(N,H,FJAC,E1,IP1,E2,IP2,ISING)
+        IF (ISING /= 0) THEN
+          ISTATUS(Nsng) = ISTATUS(Nsng) + 1; Nconsecutive = Nconsecutive + 1
+          IF (Nconsecutive >= 5) THEN
+            CALL RK_ErrorMsg(-12,T,H,IERR); RETURN
+          END IF
+          H=H*0.5d0; Reject=.TRUE.; SkipJac = .TRUE.;  SkipLU = .FALSE.
+          CYCLE Tloop
+        ELSE
+          Nconsecutive = 0    
+        END IF   
+      END IF ! SkipLU
+   
+      ISTATUS(Nstp) = ISTATUS(Nstp) + 1
+      IF (ISTATUS(Nstp) > Max_no_steps) THEN
+        PRINT*,'Max number of time steps is ',Max_no_steps
+        CALL RK_ErrorMsg(-9,T,H,IERR); RETURN
+      END IF
+      IF (0.1D0*ABS(H) <= ABS(T)*Roundoff)  THEN
+        CALL RK_ErrorMsg(-10,T,H,IERR); RETURN
+      END IF
+      
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Loop for the simplified Newton iterations
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+            
+      !~~~>  Starting values for Newton iteration
+      IF ( FirstStep .OR. (.NOT.StartNewton) ) THEN
+         CALL Set2zero(N,Z1)
+         CALL Set2zero(N,Z2)
+         CALL Set2zero(N,Z3)
+      ELSE
+         ! Evaluate quadratic polynomial
+         CALL RK_Interpolate('eval',N,H,Hold,Z1,Z2,Z3,CONT)
+      END IF
+      
+      !~~~>  Initializations for Newton iteration
+      NewtonDone = .FALSE.
+      Fac = 0.5d0 ! Step reduction if too many iterations
+      
+NewtonLoop:DO  NewtonIter = 1, NewtonMaxit
+ 
+            !~~~> Prepare the right-hand side
+            CALL RK_PrepareRHS(N,T,H,Y,F0,Z1,Z2,Z3,DZ1,DZ2,DZ3)
+            
+            !~~~> Solve the linear systems
+            CALL RK_Solve( N,H,E1,IP1,E2,IP2,DZ1,DZ2,DZ3,ISING )
+            
+            NewtonIncrement = SQRT( ( RK_ErrorNorm(N,SCAL,DZ1)**2 + &
+                                RK_ErrorNorm(N,SCAL,DZ2)**2 + &
+                                RK_ErrorNorm(N,SCAL,DZ3)**2 )/3.0d0 )
+            
+            IF ( NewtonIter == 1 ) THEN
+                Theta      = ABS(ThetaMin)
+                NewtonRate = 2.0d0 
+            ELSE
+                Theta = NewtonIncrement/NewtonIncrementOld
+                IF (Theta < 0.99d0) THEN
+                    NewtonRate = Theta/(ONE-Theta)
+                ELSE ! Non-convergence of Newton: Theta too large
+                    EXIT NewtonLoop
+                END IF
+                IF ( NewtonIter < NewtonMaxit ) THEN 
+                  ! Predict error at the end of Newton process 
+                  NewtonPredictedErr = NewtonIncrement &
+                               *Theta**(NewtonMaxit-NewtonIter)/(ONE-Theta)
+                  IF (NewtonPredictedErr >= NewtonTol) THEN
+                    ! Non-convergence of Newton: predicted error too large
+                    Qnewton = MIN(10.0d0,NewtonPredictedErr/NewtonTol)
+                    Fac=0.8d0*Qnewton**(-ONE/(1+NewtonMaxit-NewtonIter))
+                    EXIT NewtonLoop
+                  END IF
+                END IF
+            END IF
+
+            NewtonIncrementOld = MAX(NewtonIncrement,Roundoff) 
+            ! Update solution
+            CALL WAXPY(N,-ONE,DZ1,1,Z1,1) ! Z1 <- Z1 - DZ1
+            CALL WAXPY(N,-ONE,DZ2,1,Z2,1) ! Z2 <- Z2 - DZ2
+            CALL WAXPY(N,-ONE,DZ3,1,Z3,1) ! Z3 <- Z3 - DZ3
+            
+            ! Check error in Newton iterations
+            NewtonDone = (NewtonRate*NewtonIncrement <= NewtonTol)
+            IF (NewtonDone) EXIT NewtonLoop
+   	    IF (NewtonIter == NewtonMaxit) THEN
+		PRINT*, 'Slow or no convergence in Newton Iteration: Max no. of', &
+		 	'Newton iterations reached'
+	    END IF
+            
+      END DO NewtonLoop
+            
+      IF (.NOT.NewtonDone) THEN
+           !CALL RK_ErrorMsg(-12,T,H,IERR);
+           H = Fac*H; Reject=.TRUE.; SkipJac = .TRUE.;  SkipLU = .FALSE.
+           CYCLE Tloop
+      END IF
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> SDIRK Stage
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IF (SdirkError) THEN
+
+!~~~>  Starting values for Newton iterations
+       Z4(1:N) = Z3(1:N)
+       
+!~~~>   Prepare the loop-independent part of the right-hand side
+!       G = H*rkBgam(0)*F0 + rkTheta(1)*Z1 + rkTheta(2)*Z2 + rkTheta(3)*Z3
+       CALL Set2Zero(N, G)
+       IF (rkMethod/=L3A) CALL WAXPY(N,rkBgam(0)*H, F0,1,G,1) 
+       CALL WAXPY(N,rkTheta(1),Z1,1,G,1)
+       CALL WAXPY(N,rkTheta(2),Z2,1,G,1)
+       CALL WAXPY(N,rkTheta(3),Z3,1,G,1)
+
+       !~~~>  Initializations for Newton iteration
+       NewtonDone = .FALSE.
+       Fac = 0.5d0 ! Step reduction factor if too many iterations
+            
+SDNewtonLoop:DO NewtonIter = 1, NewtonMaxit
+
+!~~~>   Prepare the loop-dependent part of the right-hand side
+	    CALL WADD(N,Y,Z4,TMP)         ! TMP <- Y + Z4
+	    CALL FUN_CHEM(T+H,TMP,DZ4) 	  ! DZ4 <- Fun(Y+Z4)         
+            ISTATUS(Nfun) = ISTATUS(Nfun) + 1
+!            DZ4(1:N) = (G(1:N)-Z4(1:N))*(rkGamma/H) + DZ4(1:N)
+	    CALL WAXPY (N, -ONE*rkGamma/H, Z4, 1, DZ4, 1)
+            CALL WAXPY (N, rkGamma/H, G,1, DZ4,1)
+
+!~~~>   Solve the linear system
+#ifdef FULL_ALGEBRA  
+            CALL DGETRS( 'N', N, 1, E1, N, IP1, DZ4, N, ISING )
+#else
+            CALL KppSolve(E1, DZ4)
+#endif
+            
+!~~~>   Check convergence of Newton iterations
+            NewtonIncrement = RK_ErrorNorm(N,SCAL,DZ4)
+            IF ( NewtonIter == 1 ) THEN
+                ThetaSD      = ABS(ThetaMin)
+                NewtonRate = 2.0d0 
+            ELSE
+                ThetaSD = NewtonIncrement/NewtonIncrementOld
+                IF (ThetaSD < 0.99d0) THEN
+                    NewtonRate = ThetaSD/(ONE-ThetaSD)
+                    ! Predict error at the end of Newton process 
+                    NewtonPredictedErr = NewtonIncrement &
+                               *ThetaSD**(NewtonMaxit-NewtonIter)/(ONE-ThetaSD)
+                    IF (NewtonPredictedErr >= NewtonTol) THEN
+                      ! Non-convergence of Newton: predicted error too large
+                      !PRINT*,'Error too large: ', NewtonPredictedErr
+                      Qnewton = MIN(10.0d0,NewtonPredictedErr/NewtonTol)
+                      Fac = 0.8d0*Qnewton**(-ONE/(1+NewtonMaxit-NewtonIter))
+                      EXIT SDNewtonLoop
+                    END IF
+                ELSE ! Non-convergence of Newton: Theta too large
+                    !PRINT*,'Theta too large: ',ThetaSD
+                    EXIT SDNewtonLoop
+                END IF
+            END IF
+            NewtonIncrementOld = NewtonIncrement
+            ! Update solution: Z4 <-- Z4 + DZ4
+            CALL WAXPY(N,ONE,DZ4,1,Z4,1) 
+            
+            ! Check error in Newton iterations
+            NewtonDone = (NewtonRate*NewtonIncrement <= NewtonTol)
+            IF (NewtonDone) EXIT SDNewtonLoop
+            
+            END DO SDNewtonLoop
+            
+            IF (.NOT.NewtonDone) THEN
+                H = Fac*H; Reject=.TRUE.; SkipJac = .TRUE.;  SkipLU = .FALSE.
+                CYCLE Tloop
+            END IF
+      END IF
+!~~~>  End of implified SDIRK Newton iterations
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> Error estimation
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IF (SdirkError) THEN
+	 CALL Set2Zero(N, DZ4)
+         IF (rkMethod==L3A) THEN
+           DZ4(1:N) = H*rkF(0)*F0(1:N)
+	   IF (rkF(1) /= ZERO)  CALL WAXPY(N, rkF(1), Z1, 1, DZ4, 1)
+	   IF (rkF(2) /= ZERO)  CALL WAXPY(N, rkF(2), Z2, 1, DZ4, 1)
+	   IF (rkF(3) /= ZERO)  CALL WAXPY(N, rkF(3), Z3, 1, DZ4, 1)
+           TMP = Y + Z4
+           CALL FUN_CHEM(T+H,TMP,DZ1)
+ 	   CALL WAXPY(N, H*rkBgam(4), DZ1, 1, DZ4, 1)
+         ELSE
+!         DZ4(1:N) =  rkD(1)*Z1 + rkD(2)*Z2 + rkD(3)*Z3 - Z4    
+  	   IF (rkD(1) /= ZERO)  CALL WAXPY(N, rkD(1), Z1, 1, DZ4, 1)
+	   IF (rkD(2) /= ZERO)  CALL WAXPY(N, rkD(2), Z2, 1, DZ4, 1)
+	   IF (rkD(3) /= ZERO)  CALL WAXPY(N, rkD(3), Z3, 1, DZ4, 1)
+	   CALL WAXPY(N, -ONE, Z4, 1, DZ4, 1)
+         END IF
+         Err = RK_ErrorNorm(N,SCAL,DZ4)    
+      ELSE
+         CALL  RK_ErrorEstimate(N,H,T,Y,F0, &
+               E1,IP1,Z1,Z2,Z3,SCAL,Err,FirstStep,Reject)
+      END IF
+
+!~~~> Computation of new step size Hnew
+      Fac  = Err**(-ONE/rkELO)*   &
+             MIN(FacSafe,(ONE+2*NewtonMaxit)/(NewtonIter+2*NewtonMaxit))
+      Fac  = MIN(FacMax,MAX(FacMin,Fac))
+      Hnew = Fac*H
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> Accept/reject step 
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+accept:IF (Err < ONE) THEN !~~~> STEP IS ACCEPTED
+         FirstStep=.FALSE.
+         ISTATUS(Nacc) = ISTATUS(Nacc) + 1
+         IF (Gustafsson) THEN
+            !~~~> Predictive controller of Gustafsson
+            IF (ISTATUS(Nacc) > 1) THEN
+               FacGus=FacSafe*(H/Hacc)*(Err**2/ErrOld)**(-0.25d0)
+               FacGus=MIN(FacMax,MAX(FacMin,FacGus))
+               Fac=MIN(Fac,FacGus)
+               Hnew = Fac*H
+            END IF
+            Hacc=H
+            ErrOld=MAX(1.0d-2,Err)
+         END IF
+         Hold = H
+         T = T+H 
+         ! Update solution: Y <- Y + sum(d_i Z_i)
+         IF (rkD(1) /= ZERO)  CALL WAXPY(N,rkD(1),Z1,1,Y,1)
+         IF (rkD(2) /= ZERO)  CALL WAXPY(N,rkD(2),Z2,1,Y,1)
+         IF (rkD(3) /= ZERO)  CALL WAXPY(N,rkD(3),Z3,1,Y,1)
+         ! Construct the solution quadratic interpolant Q(c_i) = Z_i, i=1:3
+         IF (StartNewton) CALL RK_Interpolate('make',N,H,Hold,Z1,Z2,Z3,CONT)
+         CALL RK_ErrorScale(N,ITOL,AbsTol,RelTol,Y,SCAL)
+         RSTATUS(Ntexit) = T
+         RSTATUS(Nhnew)  = Hnew
+         RSTATUS(Nhacc)  = H
+         Hnew = Tdirection*MIN( MAX(ABS(Hnew),Hmin) , Hmax )
+         IF (Reject) Hnew = Tdirection*MIN(ABS(Hnew),ABS(H))
+         Reject = .FALSE.
+         IF ((T+Hnew/Qmin-Tend)*Tdirection >=  ZERO) THEN
+            H = Tend-T
+         ELSE
+            Hratio=Hnew/H
+            ! Reuse the LU decomposition
+            SkipLU = (Theta<=ThetaMin) .AND. (Hratio>=Qmin) .AND. (Hratio<=Qmax)
+            IF (.NOT.SkipLU) H=Hnew
+         END IF
+         ! If convergence is fast enough, do not update Jacobian
+!         SkipJac = (Theta <= ThetaMin)
+         SkipJac  = .FALSE.
+
+      ELSE accept !~~~> Step is rejected
+         IF (FirstStep .OR. Reject) THEN
+             H = FacRej*H
+         ELSE
+             H = Hnew
+         END IF
+         Reject   = .TRUE.
+         SkipJac  = .TRUE.	! Skip if rejected - Jac is independent of H
+         SkipLU   = .FALSE. 
+         IF (ISTATUS(Nacc) >= 1) ISTATUS(Nrej) = ISTATUS(Nrej) + 1
+      END IF accept
+      
+    END DO Tloop
+    
+    ! Successful exit
+    IERR = 1  
+
+ END SUBROUTINE RK_Integrator
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE RK_ErrorMsg(Code,T,H,IERR)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!    Handles all error messages
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+   IMPLICIT NONE
+   KPP_REAL, INTENT(IN) :: T, H
+   INTEGER, INTENT(IN)  :: Code
+   INTEGER, INTENT(OUT) :: IERR
+
+   IERR = Code
+   PRINT * , &
+     'Forced exit from RungeKutta due to the following error:'
+
+
+   SELECT CASE (Code)
+    CASE (-1)
+      PRINT * , '--> Improper value for maximal no of steps'
+    CASE (-2)
+      PRINT * , '--> Improper value for maximal no of Newton iterations'
+    CASE (-3)
+      PRINT * , '--> Hmin/Hmax/Hstart must be positive'
+    CASE (-4)
+      PRINT * , '--> Improper values for FacMin/FacMax/FacSafe/FacRej'
+    CASE (-5)
+      PRINT * , '--> Improper value for ThetaMin'
+    CASE (-6)
+      PRINT * , '--> Newton stopping tolerance too small'
+    CASE (-7)
+      PRINT * , '--> Improper values for Qmin, Qmax'
+    CASE (-8)
+      PRINT * , '--> Tolerances are too small'
+    CASE (-9)
+      PRINT * , '--> No of steps exceeds maximum bound'
+    CASE (-10)
+      PRINT * , '--> Step size too small: T + 10*H = T', &
+            ' or H < Roundoff'
+    CASE (-11)
+      PRINT * , '--> Matrix is repeatedly singular'
+    CASE (-12)
+      PRINT * , '--> Non-convergence of Newton iterations'
+    CASE (-13)
+      PRINT * , '--> Requested RK method not implemented'
+    CASE DEFAULT
+      PRINT *, 'Unknown Error code: ', Code
+   END SELECT
+
+   WRITE(6,FMT="(5X,'T=',E12.5,'  H=',E12.5)") T, H 
+
+ END SUBROUTINE RK_ErrorMsg
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE RK_ErrorScale(N,ITOL,AbsTol,RelTol,Y,SCAL)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!    Handles all error messages
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   IMPLICIT NONE
+   INTEGER, INTENT(IN)  :: N, ITOL
+   KPP_REAL, INTENT(IN) :: AbsTol(*), RelTol(*), Y(N)
+   KPP_REAL, INTENT(OUT) :: SCAL(N)
+   INTEGER :: i
+   
+   IF (ITOL==0) THEN
+       DO i=1,N
+          SCAL(i)= ONE/(AbsTol(1)+RelTol(1)*ABS(Y(i)))
+       END DO
+   ELSE
+       DO i=1,N
+          SCAL(i)=ONE/(AbsTol(i)+RelTol(i)*ABS(Y(i)))
+       END DO
+   END IF
+      
+ END SUBROUTINE RK_ErrorScale
+
+
+!!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!  SUBROUTINE RK_Transform(N,Tr,Z1,Z2,Z3,W1,W2,W3)
+!!~~~>                 W <-- Tr x Z
+!!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!      IMPLICIT NONE
+!      INTEGER :: N, i
+!      KPP_REAL :: Tr(3,3),Z1(N),Z2(N),Z3(N),W1(N),W2(N),W3(N)
+!      KPP_REAL :: x1, x2, x3
+!      DO i=1,N
+!          x1 = Z1(i); x2 = Z2(i); x3 = Z3(i)
+!          W1(i) = Tr(1,1)*x1 + Tr(1,2)*x2 + Tr(1,3)*x3
+!          W2(i) = Tr(2,1)*x1 + Tr(2,2)*x2 + Tr(2,3)*x3
+!          W3(i) = Tr(3,1)*x1 + Tr(3,2)*x2 + Tr(3,3)*x3
+!      END DO
+!  END SUBROUTINE RK_Transform
+ 
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE RK_Interpolate(action,N,H,Hold,Z1,Z2,Z3,CONT)
+!~~~>   Constructs or evaluates a quadratic polynomial
+!         that interpolates the Z solution at current step
+!         and provides starting values for the next step
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      INTEGER :: N, i
+      KPP_REAL :: H,Hold,Z1(N),Z2(N),Z3(N),CONT(N,3)
+      KPP_REAL :: r, x1, x2, x3, den
+      CHARACTER(LEN=4) :: action
+       
+      SELECT CASE (action) 
+      CASE ('make')
+         ! Construct the solution quadratic interpolant Q(c_i) = Z_i, i=1:3
+         den = (rkC(3)-rkC(2))*(rkC(2)-rkC(1))*(rkC(1)-rkC(3))
+         DO i=1,N
+             CONT(i,1)=(-rkC(3)**2*rkC(2)*Z1(i)+Z3(i)*rkC(2)*rkC(1)**2 &
+                        +rkC(2)**2*rkC(3)*Z1(i)-rkC(2)**2*rkC(1)*Z3(i) &
+                        +rkC(3)**2*rkC(1)*Z2(i)-Z2(i)*rkC(3)*rkC(1)**2)&
+                        /den-Z3(i)
+             CONT(i,2)= -( rkC(1)**2*(Z3(i)-Z2(i)) + rkC(2)**2*(Z1(i)  &
+                          -Z3(i)) +rkC(3)**2*(Z2(i)-Z1(i)) )/den
+             CONT(i,3)= ( rkC(1)*(Z3(i)-Z2(i)) + rkC(2)*(Z1(i)-Z3(i))  &
+                           +rkC(3)*(Z2(i)-Z1(i)) )/den
+         END DO
+      CASE ('eval')
+          ! Evaluate quadratic polynomial
+          r = H/Hold
+         x1 = ONE + rkC(1)*r
+         x2 = ONE + rkC(2)*r
+         x3 = ONE + rkC(3)*r
+         DO i=1,N
+            Z1(i) = CONT(i,1)+x1*(CONT(i,2)+x1*CONT(i,3))
+            Z2(i) = CONT(i,1)+x2*(CONT(i,2)+x2*CONT(i,3))
+            Z3(i) = CONT(i,1)+x3*(CONT(i,2)+x3*CONT(i,3))
+         END DO
+       END SELECT   
+  END SUBROUTINE RK_Interpolate
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE RK_PrepareRHS(N,T,H,Y,F0,Z1,Z2,Z3,R1,R2,R3)
+!~~~> Prepare the right-hand side for Newton iterations
+!     R = Z - hA x F
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      
+      INTEGER :: N
+      KPP_REAL :: T, H
+      KPP_REAL, DIMENSION(N) :: Y,Z1,Z2,Z3,F0,F,R1,R2,R3,TMP
+
+      CALL WCOPY(N,Z1,1,R1,1) ! R1 <- Z1
+      CALL WCOPY(N,Z2,1,R2,1) ! R2 <- Z2
+      CALL WCOPY(N,Z3,1,R3,1) ! R3 <- Z3
+
+      IF (rkMethod==L3A) THEN
+         CALL WAXPY(N,-H*rkA(1,0),F0,1,R1,1) ! R1 <- R1 - h*A_10*F0
+         CALL WAXPY(N,-H*rkA(2,0),F0,1,R2,1) ! R2 <- R2 - h*A_20*F0
+         CALL WAXPY(N,-H*rkA(3,0),F0,1,R3,1) ! R3 <- R3 - h*A_30*F0
+      END IF
+
+      CALL WADD(N,Y,Z1,TMP)              ! TMP <- Y + Z1
+      CALL FUN_CHEM(T+rkC(1)*H,TMP,F)    ! F1 <- Fun(Y+Z1)         
+      CALL WAXPY(N,-H*rkA(1,1),F,1,R1,1) ! R1 <- R1 - h*A_11*F1
+      CALL WAXPY(N,-H*rkA(2,1),F,1,R2,1) ! R2 <- R2 - h*A_21*F1
+      CALL WAXPY(N,-H*rkA(3,1),F,1,R3,1) ! R3 <- R3 - h*A_31*F1
+
+      CALL WADD(N,Y,Z2,TMP)              ! TMP <- Y + Z2
+      CALL FUN_CHEM(T+rkC(2)*H,TMP,F)    ! F2 <- Fun(Y+Z2)        
+      CALL WAXPY(N,-H*rkA(1,2),F,1,R1,1) ! R1 <- R1 - h*A_12*F2
+      CALL WAXPY(N,-H*rkA(2,2),F,1,R2,1) ! R2 <- R2 - h*A_22*F2
+      CALL WAXPY(N,-H*rkA(3,2),F,1,R3,1) ! R3 <- R3 - h*A_32*F2
+
+      CALL WADD(N,Y,Z3,TMP)              ! TMP <- Y + Z3
+      CALL FUN_CHEM(T+rkC(3)*H,TMP,F)    ! F3 <- Fun(Y+Z3)     
+      CALL WAXPY(N,-H*rkA(1,3),F,1,R1,1) ! R1 <- R1 - h*A_13*F3
+      CALL WAXPY(N,-H*rkA(2,3),F,1,R2,1) ! R2 <- R2 - h*A_23*F3
+      CALL WAXPY(N,-H*rkA(3,3),F,1,R3,1) ! R3 <- R3 - h*A_33*F3
+            
+  END SUBROUTINE RK_PrepareRHS
+  
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE RK_Decomp(N,H,FJAC,E1,IP1,E2,IP2,ISING)
+   !~~~> Compute the matrices E1 and E2 and their decompositions
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      
+      INTEGER :: N, ISING
+      KPP_REAL    :: H, Alpha, Beta, Gamma
+#ifdef FULL_ALGEBRA      
+      KPP_REAL    :: FJAC(NVAR,NVAR),E1(NVAR,NVAR)
+      COMPLEX(kind=dp) :: E2(N,N)
+#else      
+      KPP_REAL    :: FJAC(LU_NONZERO),E1(LU_NONZERO)
+      COMPLEX(kind=dp) :: E2(LU_NONZERO)
+#endif      
+      INTEGER :: IP1(N), IP2(N), i, j
+      
+      Gamma = rkGamma/H
+      Alpha = rkAlpha/H
+      Beta  = rkBeta /H
+
+#ifdef FULL_ALGEBRA      
+      DO j=1,N
+         DO  i=1,N
+            E1(i,j)=-FJAC(i,j)
+         END DO
+         E1(j,j)=E1(j,j)+Gamma
+      END DO
+      CALL DGETRF(N,N,E1,N,IP1,ISING) 
+#else      
+      DO i=1,LU_NONZERO
+         E1(i)=-FJAC(i)
+      END DO
+      DO i=1,NVAR
+         j=LU_DIAG(i); E1(j)=E1(j)+Gamma
+      END DO
+      CALL KppDecomp(E1,ISING)
+#endif      
+      
+      IF (ISING /= 0) THEN
+         ISTATUS(Ndec) = ISTATUS(Ndec) + 1
+         RETURN
+      END IF
+     
+#ifdef FULL_ALGEBRA      
+      DO j=1,N
+        DO i=1,N
+          E2(i,j) = DCMPLX( -FJAC(i,j), ZERO )
+        END DO
+        E2(j,j) = E2(j,j) + CMPLX( Alpha, Beta )
+      END DO
+      CALL ZGETRF(N,N,E2,N,IP2,ISING)     
+#else  
+      DO i=1,LU_NONZERO
+         E2(i) = DCMPLX( -FJAC(i), ZERO )
+      END DO
+      DO i=1,NVAR
+         j=LU_DIAG(i); E2(j)=E2(j) + CMPLX( Alpha, Beta )
+      END DO
+      CALL KppDecompCmplx(E2,ISING)    
+#endif      
+      ISTATUS(Ndec) = ISTATUS(Ndec) + 1
+      
+   END SUBROUTINE RK_Decomp
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE RK_Solve(N,H,E1,IP1,E2,IP2,R1,R2,R3,ISING)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      INTEGER :: N,IP1(NVAR),IP2(NVAR),ISING
+#ifdef FULL_ALGEBRA      
+      KPP_REAL    :: E1(NVAR,NVAR)
+      COMPLEX(kind=dp) :: E2(NVAR,NVAR)
+#else      
+      KPP_REAL    :: E1(LU_NONZERO)
+      COMPLEX(kind=dp) :: E2(LU_NONZERO)
+#endif      
+      KPP_REAL    :: R1(N),R2(N),R3(N)
+      KPP_REAL    :: H, x1, x2, x3
+      COMPLEX(kind=dp) :: BC(N)
+      INTEGER :: i
+!      
+     ! Z <- h^{-1) T^{-1) A^{-1) x Z
+      DO i=1,N
+          x1 = R1(i)/H; x2 = R2(i)/H; x3 = R3(i)/H
+          R1(i) = rkTinvAinv(1,1)*x1 + rkTinvAinv(1,2)*x2 + rkTinvAinv(1,3)*x3
+          R2(i) = rkTinvAinv(2,1)*x1 + rkTinvAinv(2,2)*x2 + rkTinvAinv(2,3)*x3
+          R3(i) = rkTinvAinv(3,1)*x1 + rkTinvAinv(3,2)*x2 + rkTinvAinv(3,3)*x3
+      END DO
+
+#ifdef FULL_ALGEBRA      
+      CALL DGETRS ('N',N,1,E1,N,IP1,R1,N,0) 
+#else      
+      CALL KppSolve (E1,R1)
+#endif      
+!      
+      DO i=1,N
+        BC(i) = DCMPLX(R2(i),R3(i))
+      END DO
+#ifdef FULL_ALGEBRA      
+      CALL ZGETRS ('N',N,1,E2,N,IP2,BC,N,0) 
+#else      
+      CALL KppSolveCmplx (E2,BC)
+#endif      
+      DO i=1,N
+        R2(i) = DBLE( BC(i) )
+        R3(i) = AIMAG( BC(i) )
+      END DO
+
+      ! Z <- T x Z
+      DO i=1,N
+          x1 = R1(i); x2 = R2(i); x3 = R3(i)
+          R1(i) = rkT(1,1)*x1 + rkT(1,2)*x2 + rkT(1,3)*x3
+          R2(i) = rkT(2,1)*x1 + rkT(2,2)*x2 + rkT(2,3)*x3
+          R3(i) = rkT(3,1)*x1 + rkT(3,2)*x2 + rkT(3,3)*x3
+      END DO
+
+      ISTATUS(Nsol) = ISTATUS(Nsol) + 1
+
+   END SUBROUTINE RK_Solve
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE RK_ErrorEstimate(N,H,T,Y,F0,   &
+               E1,IP1,Z1,Z2,Z3,SCAL,Err,     &
+               FirstStep,Reject)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      
+      INTEGER :: N
+#ifdef FULL_ALGEBRA      
+      KPP_REAL :: E1(NVAR,NVAR)
+#else      
+      KPP_REAL :: E1(LU_NONZERO)
+#endif      
+      KPP_REAL :: SCAL(N),Z1(N),Z2(N),Z3(N),F1(N),F2(N), &
+                        F0(N),Y(N),TMP(N),T,H
+      INTEGER :: IP1(N), i
+      LOGICAL FirstStep,Reject
+      KPP_REAL :: HrkE1,HrkE2,HrkE3,Err
+
+      HrkE1  = rkE(1)/H
+      HrkE2  = rkE(2)/H
+      HrkE3  = rkE(3)/H
+
+      DO  i=1,N
+         F2(i)  = HrkE1*Z1(i)+HrkE2*Z2(i)+HrkE3*Z3(i)
+         TMP(i) = rkE(0)*F0(i) + F2(i)
+      END DO
+
+
+#ifdef FULL_ALGEBRA      
+      CALL DGETRS ('N',N,1,E1,N,IP1,TMP,N,0) 
+      IF ((rkMethod==R1A).OR.(rkMethod==GAU).OR.(rkMethod==L3A)) CALL DGETRS ('N',N,1,E1,N,IP1,TMP,N,0)
+      IF (rkMethod==GAU) CALL DGETRS ('N',N,1,E1,N,IP1,TMP,N,0)
+#else      
+      CALL KppSolve (E1, TMP)
+      IF ((rkMethod==R1A).OR.(rkMethod==GAU).OR.(rkMethod==L3A)) CALL KppSolve (E1,TMP)
+      IF (rkMethod==GAU) CALL KppSolve (E1,TMP)
+#endif      
+
+      Err = RK_ErrorNorm(N,SCAL,TMP)
+!
+      IF (Err < ONE) RETURN
+firej:IF (FirstStep.OR.Reject) THEN
+          DO i=1,N
+             TMP(i)=Y(i)+TMP(i)
+          END DO
+          CALL FUN_CHEM(T,TMP,F1)    
+          ISTATUS(Nfun) = ISTATUS(Nfun) + 1
+          DO i=1,N
+             TMP(i)=F1(i)+F2(i)
+          END DO
+
+#ifdef FULL_ALGEBRA      
+          CALL DGETRS ('N',N,1,E1,N,IP1,TMP,N,0) 
+#else      
+          CALL KppSolve (E1, TMP)
+#endif      
+          Err = RK_ErrorNorm(N,SCAL,TMP)
+       END IF firej
+ 
+   END SUBROUTINE RK_ErrorEstimate
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   KPP_REAL FUNCTION RK_ErrorNorm(N,SCAL,DY)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      
+      INTEGER :: N
+      KPP_REAL :: SCAL(N),DY(N)
+      INTEGER :: i
+
+      RK_ErrorNorm = ZERO
+        DO i=1,N
+          RK_ErrorNorm = RK_ErrorNorm + (DY(i)*SCAL(i))**2
+        END DO
+      RK_ErrorNorm = MAX( SQRT(RK_ErrorNorm/N), 1.0d-10 )
+ 
+   END FUNCTION RK_ErrorNorm
+  
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE Radau2A_Coefficients
+!    The coefficients of the 3-stage Radau-2A method
+!    (given to ~30 accurate digits)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
+      IMPLICIT NONE
+! The coefficients of the Radau2A method
+      KPP_REAL :: b0
+
+!      b0 = 1.0d0
+      IF (SdirkError) THEN
+        b0 = 0.2d-1
+      ELSE
+        b0 = 0.5d-1
+      END IF
+
+! The coefficients of the Radau2A method
+      rkMethod = R2A
+
+      rkA(1,1) =  1.968154772236604258683861429918299d-1
+      rkA(1,2) = -6.55354258501983881085227825696087d-2
+      rkA(1,3) =  2.377097434822015242040823210718965d-2
+      rkA(2,1) =  3.944243147390872769974116714584975d-1
+      rkA(2,2) =  2.920734116652284630205027458970589d-1
+      rkA(2,3) = -4.154875212599793019818600988496743d-2
+      rkA(3,1) =  3.764030627004672750500754423692808d-1
+      rkA(3,2) =  5.124858261884216138388134465196080d-1
+      rkA(3,3) =  1.111111111111111111111111111111111d-1
+
+      rkB(1) = 3.764030627004672750500754423692808d-1
+      rkB(2) = 5.124858261884216138388134465196080d-1
+      rkB(3) = 1.111111111111111111111111111111111d-1
+
+      rkC(1) = 1.550510257216821901802715925294109d-1
+      rkC(2) = 6.449489742783178098197284074705891d-1
+      rkC(3) = 1.0d0
+      
+      ! New solution: H* Sum B_j*f(Z_j) = Sum D_j*Z_j
+      rkD(1) = 0.0d0
+      rkD(2) = 0.0d0
+      rkD(3) = 1.0d0
+
+      ! Classical error estimator: 
+      ! H* Sum (B_j-Bhat_j)*f(Z_j) = H*E(0)*f(0) + Sum E_j*Z_j
+      rkE(0) = 1.0d0*b0
+      rkE(1) = -10.04880939982741556246032950764708d0*b0
+      rkE(2) = 1.382142733160748895793662840980412d0*b0
+      rkE(3) = -.3333333333333333333333333333333333d0*b0
+
+      ! Sdirk error estimator
+      rkBgam(0) = b0
+      rkBgam(1) = .3764030627004672750500754423692807d0-1.558078204724922382431975370686279d0*b0
+      rkBgam(2) = .8914115380582557157653087040196118d0*b0+.5124858261884216138388134465196077d0
+      rkBgam(3) = -.1637777184845662566367174924883037d0-.3333333333333333333333333333333333d0*b0
+      rkBgam(4) = .2748888295956773677478286035994148d0
+
+      ! H* Sum Bgam_j*f(Z_j) = H*Bgam(0)*f(0) + Sum Theta_j*Z_j
+      rkTheta(1) = -1.520677486405081647234271944611547d0-10.04880939982741556246032950764708d0*b0
+      rkTheta(2) = 2.070455145596436382729929151810376d0+1.382142733160748895793662840980413d0*b0
+      rkTheta(3) = -.3333333333333333333333333333333333d0*b0-.3744441479783868387391430179970741d0
+
+      ! Local order of error estimator 
+      IF (b0==0.0d0) THEN
+        rkELO  = 6.0d0
+      ELSE	
+        rkELO  = 4.0d0
+      END IF	
+
+      !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      !~~~> Diagonalize the RK matrix:               
+      ! rkTinv * inv(rkA) * rkT =          
+      !           |  rkGamma      0           0     |
+      !           |      0      rkAlpha   -rkBeta   |
+      !           |      0      rkBeta     rkAlpha  |
+      !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      rkGamma = 3.637834252744495732208418513577775d0
+      rkAlpha = 2.681082873627752133895790743211112d0
+      rkBeta  = 3.050430199247410569426377624787569d0
+
+      rkT(1,1) =  9.443876248897524148749007950641664d-2
+      rkT(1,2) = -1.412552950209542084279903838077973d-1
+      rkT(1,3) = -3.00291941051474244918611170890539d-2
+      rkT(2,1) =  2.502131229653333113765090675125018d-1
+      rkT(2,2) =  2.041293522937999319959908102983381d-1
+      rkT(2,3) =  3.829421127572619377954382335998733d-1
+      rkT(3,1) =  1.0d0
+      rkT(3,2) =  1.0d0
+      rkT(3,3) =  0.0d0
+
+      rkTinv(1,1) =  4.178718591551904727346462658512057d0
+      rkTinv(1,2) =  3.27682820761062387082533272429617d-1
+      rkTinv(1,3) =  5.233764454994495480399309159089876d-1
+      rkTinv(2,1) = -4.178718591551904727346462658512057d0
+      rkTinv(2,2) = -3.27682820761062387082533272429617d-1
+      rkTinv(2,3) =  4.766235545005504519600690840910124d-1
+      rkTinv(3,1) = -5.02872634945786875951247343139544d-1
+      rkTinv(3,2) =  2.571926949855605429186785353601676d0
+      rkTinv(3,3) = -5.960392048282249249688219110993024d-1
+
+      rkTinvAinv(1,1) =  1.520148562492775501049204957366528d+1
+      rkTinvAinv(1,2) =  1.192055789400527921212348994770778d0
+      rkTinvAinv(1,3) =  1.903956760517560343018332287285119d0
+      rkTinvAinv(2,1) = -9.669512977505946748632625374449567d0
+      rkTinvAinv(2,2) = -8.724028436822336183071773193986487d0
+      rkTinvAinv(2,3) =  3.096043239482439656981667712714881d0
+      rkTinvAinv(3,1) = -1.409513259499574544876303981551774d+1
+      rkTinvAinv(3,2) =  5.895975725255405108079130152868952d0
+      rkTinvAinv(3,3) = -1.441236197545344702389881889085515d-1
+
+      rkAinvT(1,1) = .3435525649691961614912493915818282d0
+      rkAinvT(1,2) = -.4703191128473198422370558694426832d0
+      rkAinvT(1,3) = .3503786597113668965366406634269080d0
+      rkAinvT(2,1) = .9102338692094599309122768354288852d0
+      rkAinvT(2,2) = 1.715425895757991796035292755937326d0
+      rkAinvT(2,3) = .4040171993145015239277111187301784d0
+      rkAinvT(3,1) = 3.637834252744495732208418513577775d0
+      rkAinvT(3,2) = 2.681082873627752133895790743211112d0
+      rkAinvT(3,3) = -3.050430199247410569426377624787569d0
+
+  END SUBROUTINE Radau2A_Coefficients
+
+    
+
+    
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE Lobatto3C_Coefficients
+!    The coefficients of the 3-stage Lobatto-3C method
+!    (given to ~30 accurate digits)
+!    The parameter b0 can be chosen to tune the error estimator
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
+      IMPLICIT NONE
+      KPP_REAL :: b0
+
+      rkMethod = L3C
+
+!      b0 = 1.0d0
+      IF (SdirkError) THEN
+        b0 = 0.2d0
+      ELSE
+        b0 = 0.5d0
+      END IF
+! The coefficients of the Lobatto3C method
+
+      rkA(1,1) =  .1666666666666666666666666666666667d0
+      rkA(1,2) = -.3333333333333333333333333333333333d0
+      rkA(1,3) =  .1666666666666666666666666666666667d0
+      rkA(2,1) =  .1666666666666666666666666666666667d0
+      rkA(2,2) =  .4166666666666666666666666666666667d0
+      rkA(2,3) = -.8333333333333333333333333333333333d-1
+      rkA(3,1) =  .1666666666666666666666666666666667d0
+      rkA(3,2) =  .6666666666666666666666666666666667d0
+      rkA(3,3) =  .1666666666666666666666666666666667d0
+
+      rkB(1) = .1666666666666666666666666666666667d0
+      rkB(2) = .6666666666666666666666666666666667d0
+      rkB(3) = .1666666666666666666666666666666667d0
+
+      rkC(1) = 0.0d0
+      rkC(2) = 0.5d0
+      rkC(3) = 1.0d0
+
+      ! Classical error estimator, embedded solution: 
+      rkBhat(0) = b0
+      rkBhat(1) = .16666666666666666666666666666666667d0-b0
+      rkBhat(2) = .66666666666666666666666666666666667d0
+      rkBhat(3) = .16666666666666666666666666666666667d0
+      
+      ! New solution: h Sum_j b_j f(Z_j) = sum d_j Z_j
+      rkD(1) = 0.0d0
+      rkD(2) = 0.0d0
+      rkD(3) = 1.0d0
+
+      ! Classical error estimator: 
+      !   H* Sum (B_j-Bhat_j)*f(Z_j) = H*E(0)*f(0) + Sum E_j*Z_j
+      rkE(0) =   .3808338772072650364017425226487022*b0
+      rkE(1) = -1.142501631621795109205227567946107*b0
+      rkE(2) = -1.523335508829060145606970090594809*b0
+      rkE(3) =   .3808338772072650364017425226487022*b0
+
+      ! Sdirk error estimator
+      rkBgam(0) = b0
+      rkBgam(1) = .1666666666666666666666666666666667d0-1.d0*b0
+      rkBgam(2) = .6666666666666666666666666666666667d0
+      rkBgam(3) = -.2141672105405983697350758559820354d0
+      rkBgam(4) = .3808338772072650364017425226487021d0
+
+      ! H* Sum Bgam_j*f(Z_j) = H*Bgam(0)*f(0) + Sum Theta_j*Z_j
+      rkTheta(1) = -3.d0*b0-.3808338772072650364017425226487021d0
+      rkTheta(2) = -4.d0*b0+1.523335508829060145606970090594808d0
+      rkTheta(3) = -.142501631621795109205227567946106d0+b0
+
+      ! Local order of error estimator 
+      IF (b0==0.0d0) THEN
+        rkELO  = 5.0d0
+      ELSE	
+        rkELO  = 4.0d0
+      END IF	
+
+      !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      !~~~> Diagonalize the RK matrix:               
+      ! rkTinv * inv(rkA) * rkT =          
+      !           |  rkGamma      0           0     |
+      !           |      0      rkAlpha   -rkBeta   |
+      !           |      0      rkBeta     rkAlpha  |
+      !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      rkGamma = 2.625816818958466716011888933765284d0
+      rkAlpha = 1.687091590520766641994055533117359d0
+      rkBeta  = 2.508731754924880510838743672432351d0
+
+      rkT(1,1) = 1.d0
+      rkT(1,2) = 1.d0
+      rkT(1,3) = 0.d0
+      rkT(2,1) = .4554100411010284672111720348287483d0
+      rkT(2,2) = -.6027050205505142336055860174143743d0
+      rkT(2,3) = -.4309321229203225731070721341350346d0
+      rkT(3,1) = 2.195823345445647152832799205549709d0
+      rkT(3,2) = -1.097911672722823576416399602774855d0
+      rkT(3,3) = .7850032632435902184104551358922130d0
+
+      rkTinv(1,1) = .4205559181381766909344950150991349d0
+      rkTinv(1,2) = .3488903392193734304046467270632057d0
+      rkTinv(1,3) = .1915253879645878102698098373933487d0
+      rkTinv(2,1) = .5794440818618233090655049849008650d0
+      rkTinv(2,2) = -.3488903392193734304046467270632057d0
+      rkTinv(2,3) = -.1915253879645878102698098373933487d0
+      rkTinv(3,1) = -.3659705575742745254721332009249516d0
+      rkTinv(3,2) = -1.463882230297098101888532803699806d0
+      rkTinv(3,3) = .4702733607340189781407813565524989d0
+
+      rkTinvAinv(1,1) = 1.104302803159744452668648155627548d0
+      rkTinvAinv(1,2) = .916122120694355522658740710823143d0
+      rkTinvAinv(1,3) = .5029105849749601702795812241441172d0
+      rkTinvAinv(2,1) = 1.895697196840255547331351844372453d0
+      rkTinvAinv(2,2) = 3.083877879305644477341259289176857d0
+      rkTinvAinv(2,3) = -1.502910584974960170279581224144117d0
+      rkTinvAinv(3,1) = .8362439183082935036129145574774502d0
+      rkTinvAinv(3,2) = -3.344975673233174014451658229909802d0
+      rkTinvAinv(3,3) = .312908409479233358005944466882642d0
+
+      rkAinvT(1,1) = 2.625816818958466716011888933765282d0
+      rkAinvT(1,2) = 1.687091590520766641994055533117358d0
+      rkAinvT(1,3) = -2.508731754924880510838743672432351d0
+      rkAinvT(2,1) = 1.195823345445647152832799205549710d0
+      rkAinvT(2,2) = -2.097911672722823576416399602774855d0
+      rkAinvT(2,3) = .7850032632435902184104551358922130d0
+      rkAinvT(3,1) = 5.765829871932827589653709477334136d0
+      rkAinvT(3,2) = .1170850640335862051731452613329320d0
+      rkAinvT(3,3) = 4.078738281412060947659653944216779d0
+
+  END SUBROUTINE Lobatto3C_Coefficients
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE Gauss_Coefficients
+!    The coefficients of the 3-stage Gauss method
+!    (given to ~30 accurate digits)
+!    The parameter b3 can be chosen by the user
+!    to tune the error estimator
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
+      IMPLICIT NONE
+      KPP_REAL :: b0
+! The coefficients of the Gauss method
+
+
+      rkMethod = GAU
+      
+!      b0 = 4.0d0
+      b0 = 0.1d0
+      
+! The coefficients of the Gauss method
+
+      rkA(1,1) =  .1388888888888888888888888888888889d0
+      rkA(1,2) = -.359766675249389034563954710966045d-1
+      rkA(1,3) =  .97894440153083260495800422294756d-2
+      rkA(2,1) =  .3002631949808645924380249472131556d0
+      rkA(2,2) =  .2222222222222222222222222222222222d0
+      rkA(2,3) = -.224854172030868146602471694353778d-1
+      rkA(3,1) =  .2679883337624694517281977355483022d0
+      rkA(3,2) =  .4804211119693833479008399155410489d0
+      rkA(3,3) =  .1388888888888888888888888888888889d0
+
+      rkB(1) = .2777777777777777777777777777777778d0
+      rkB(2) = .4444444444444444444444444444444444d0
+      rkB(3) = .2777777777777777777777777777777778d0
+
+      rkC(1) = .1127016653792583114820734600217600d0
+      rkC(2) = .5000000000000000000000000000000000d0
+      rkC(3) = .8872983346207416885179265399782400d0
+
+      ! Classical error estimator, embedded solution: 
+      rkBhat(0) = b0
+      rkBhat(1) =-1.4788305577012361475298775666303999d0*b0 &
+                  +.27777777777777777777777777777777778d0
+      rkBhat(2) =  .44444444444444444444444444444444444d0 &
+                  +.66666666666666666666666666666666667d0*b0
+      rkBhat(3) = -.18783610896543051913678910003626672d0*b0 &
+                  +.27777777777777777777777777777777778d0
+
+      ! New solution: h Sum_j b_j f(Z_j) = sum d_j Z_j
+      rkD(1) = .1666666666666666666666666666666667d1
+      rkD(2) = -.1333333333333333333333333333333333d1
+      rkD(3) = .1666666666666666666666666666666667d1
+
+      ! Classical error estimator: 
+      !   H* Sum (B_j-Bhat_j)*f(Z_j) = H*E(0)*f(0) + Sum E_j*Z_j
+      rkE(0) = .2153144231161121782447335303806954d0*b0
+      rkE(1) = -2.825278112319014084275808340593191d0*b0
+      rkE(2) = .2870858974881495709929780405075939d0*b0
+      rkE(3) = -.4558086256248162565397206448274867d-1*b0
+
+      ! Sdirk error estimator
+      rkBgam(0) = 0.d0
+      rkBgam(1) = .2373339543355109188382583162660537d0
+      rkBgam(2) = .5879873931885192299409334646982414d0
+      rkBgam(3) = -.4063577064014232702392531134499046d-1
+      rkBgam(4) = .2153144231161121782447335303806955d0
+
+      ! H* Sum Bgam_j*f(Z_j) = H*Bgam(0)*f(0) + Sum Theta_j*Z_j
+      rkTheta(1) = -2.594040933093095272574031876464493d0
+      rkTheta(2) = 1.824611539036311947589425112250199d0
+      rkTheta(3) = .1856563166634371860478043996459493d0
+
+      ! ELO = local order of classical error estimator 
+      rkELO = 4.0d0
+
+      !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      !~~~> Diagonalize the RK matrix:               
+      ! rkTinv * inv(rkA) * rkT =          
+      !           |  rkGamma      0           0     |
+      !           |      0      rkAlpha   -rkBeta   |
+      !           |      0      rkBeta     rkAlpha  |
+      !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      rkGamma = 4.644370709252171185822941421408064d0
+      rkAlpha = 3.677814645373914407088529289295970d0
+      rkBeta  = 3.508761919567443321903661209182446d0
+
+      rkT(1,1) =  .7215185205520017032081769924397664d-1
+      rkT(1,2) = -.8224123057363067064866206597516454d-1
+      rkT(1,3) = -.6012073861930850173085948921439054d-1
+      rkT(2,1) =  .1188325787412778070708888193730294d0
+      rkT(2,2) =  .5306509074206139504614411373957448d-1
+      rkT(2,3) =  .3162050511322915732224862926182701d0
+      rkT(3,1) = 1.d0
+      rkT(3,2) = 1.d0
+      rkT(3,3) = 0.d0
+
+      rkTinv(1,1) =  5.991698084937800775649580743981285d0
+      rkTinv(1,2) =  1.139214295155735444567002236934009d0
+      rkTinv(1,3) =   .4323121137838583855696375901180497d0
+      rkTinv(2,1) = -5.991698084937800775649580743981285d0
+      rkTinv(2,2) = -1.139214295155735444567002236934009d0
+      rkTinv(2,3) =   .5676878862161416144303624098819503d0
+      rkTinv(3,1) = -1.246213273586231410815571640493082d0
+      rkTinv(3,2) =  2.925559646192313662599230367054972d0
+      rkTinv(3,3) =  -.2577352012734324923468722836888244d0
+
+      rkTinvAinv(1,1) =  27.82766708436744962047620566703329d0
+      rkTinvAinv(1,2) =   5.290933503982655311815946575100597d0
+      rkTinvAinv(1,3) =   2.007817718512643701322151051660114d0
+      rkTinvAinv(2,1) = -17.66368928942422710690385180065675d0
+      rkTinvAinv(2,2) = -14.45491129892587782538830044147713d0
+      rkTinvAinv(2,3) =   2.992182281487356298677848948339886d0
+      rkTinvAinv(3,1) = -25.60678350282974256072419392007303d0
+      rkTinvAinv(3,2) =   6.762434375611708328910623303779923d0
+      rkTinvAinv(3,3) =   1.043979339483109825041215970036771d0
+      
+      rkAinvT(1,1) = .3350999483034677402618981153470483d0
+      rkAinvT(1,2) = -.5134173605009692329246186488441294d0
+      rkAinvT(1,3) = .6745196507033116204327635673208923d-1
+      rkAinvT(2,1) = .5519025480108928886873752035738885d0
+      rkAinvT(2,2) = 1.304651810077110066076640761092008d0
+      rkAinvT(2,3) = .9767507983414134987545585703726984d0
+      rkAinvT(3,1) = 4.644370709252171185822941421408064d0
+      rkAinvT(3,2) = 3.677814645373914407088529289295970d0
+      rkAinvT(3,3) = -3.508761919567443321903661209182446d0
+      
+  END SUBROUTINE Gauss_Coefficients
+
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE Radau1A_Coefficients
+!    The coefficients of the 3-stage Gauss method
+!    (given to ~30 accurate digits)
+!    The parameter b3 can be chosen by the user
+!    to tune the error estimator
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
+      IMPLICIT NONE
+!      KPP_REAL :: b0 = 0.3d0
+      KPP_REAL :: b0 = 0.1d0
+
+! The coefficients of the Radau1A method
+
+      rkMethod = R1A
+
+      rkA(1,1) =  .1111111111111111111111111111111111d0
+      rkA(1,2) = -.1916383190435098943442935597058829d0
+      rkA(1,3) =  .8052720793239878323318244859477174d-1
+      rkA(2,1) =  .1111111111111111111111111111111111d0
+      rkA(2,2) =  .2920734116652284630205027458970589d0
+      rkA(2,3) = -.481334970546573839513422644787591d-1
+      rkA(3,1) =  .1111111111111111111111111111111111d0
+      rkA(3,2) =  .5370223859435462728402311533676479d0
+      rkA(3,3) =  .1968154772236604258683861429918299d0
+
+      rkB(1) = .1111111111111111111111111111111111d0
+      rkB(2) = .5124858261884216138388134465196080d0
+      rkB(3) = .3764030627004672750500754423692808d0
+
+      rkC(1) = 0.d0
+      rkC(2) = .3550510257216821901802715925294109d0
+      rkC(3) = .8449489742783178098197284074705891d0
+
+      ! Classical error estimator, embedded solution: 
+      rkBhat(0) = b0
+      rkBhat(1) = .11111111111111111111111111111111111d0-b0
+      rkBhat(2) = .51248582618842161383881344651960810d0
+      rkBhat(3) = .37640306270046727505007544236928079d0
+
+      ! New solution: H* Sum B_j*f(Z_j) = Sum D_j*Z_j
+      rkD(1) = .3333333333333333333333333333333333d0
+      rkD(2) = -.8914115380582557157653087040196127d0
+      rkD(3) = .1558078204724922382431975370686279d1
+
+      ! Classical error estimator: 
+      ! H* Sum (b_j-bhat_j) f(Z_j) = H*E(0)*F(0) + Sum E_j Z_j
+      rkE(0) =   .2748888295956773677478286035994148d0*b0
+      rkE(1) = -1.374444147978386838739143017997074d0*b0
+      rkE(2) = -1.335337922441686804550326197041126d0*b0
+      rkE(3) =   .235782604058977333559011782643466d0*b0
+
+      ! Sdirk error estimator
+      rkBgam(0) = 0.0d0
+      rkBgam(1) = .1948150124588532186183490991130616d-1
+      rkBgam(2) = .7575249005733381398986810981093584d0
+      rkBgam(3) = -.518952314149008295083446116200793d-1
+      rkBgam(4) = .2748888295956773677478286035994148d0
+
+      ! H* Sum Bgam_j*f(Z_j) = H*Bgam(0)*f(0) + Sum Theta_j*Z_j
+      rkTheta(1) = -1.224370034375505083904362087063351d0
+      rkTheta(2) = .9340045331532641409047527962010133d0
+      rkTheta(3) = .4656990124352088397561234800640929d0
+
+      ! ELO = local order of classical error estimator 
+      rkELO = 4.0d0
+
+      !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      !~~~> Diagonalize the RK matrix:               
+      ! rkTinv * inv(rkA) * rkT =          
+      !           |  rkGamma      0           0     |
+      !           |      0      rkAlpha   -rkBeta   |
+      !           |      0      rkBeta     rkAlpha  |
+      !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      rkGamma = 3.637834252744495732208418513577775d0
+      rkAlpha = 2.681082873627752133895790743211112d0
+      rkBeta  = 3.050430199247410569426377624787569d0
+
+      rkT(1,1) =  .424293819848497965354371036408369d0
+      rkT(1,2) = -.3235571519651980681202894497035503d0
+      rkT(1,3) = -.522137786846287839586599927945048d0
+      rkT(2,1) =  .57594609499806128896291585429339d-1
+      rkT(2,2) =  .3148663231849760131614374283783d-2
+      rkT(2,3) =  .452429247674359778577728510381731d0
+      rkT(3,1) = 1.d0
+      rkT(3,2) = 1.d0
+      rkT(3,3) = 0.d0
+
+      rkTinv(1,1) = 1.233523612685027760114769983066164d0
+      rkTinv(1,2) = 1.423580134265707095505388133369554d0
+      rkTinv(1,3) = .3946330125758354736049045150429624d0
+      rkTinv(2,1) = -1.233523612685027760114769983066164d0
+      rkTinv(2,2) = -1.423580134265707095505388133369554d0
+      rkTinv(2,3) = .6053669874241645263950954849570376d0
+      rkTinv(3,1) = -.1484438963257383124456490049673414d0
+      rkTinv(3,2) = 2.038974794939896109682070471785315d0
+      rkTinv(3,3) = -.544501292892686735299355831692542d-1
+
+      rkTinvAinv(1,1) =  4.487354449794728738538663081025420d0
+      rkTinvAinv(1,2) =  5.178748573958397475446442544234494d0
+      rkTinvAinv(1,3) =  1.435609490412123627047824222335563d0
+      rkTinvAinv(2,1) = -2.854361287939276673073807031221493d0
+      rkTinvAinv(2,2) = -1.003648660720543859000994063139137d+1
+      rkTinvAinv(2,3) =  1.789135380979465422050817815017383d0
+      rkTinvAinv(3,1) = -4.160768067752685525282947313530352d0
+      rkTinvAinv(3,2) =  1.124128569859216916690209918405860d0
+      rkTinvAinv(3,3) =  1.700644430961823796581896350418417d0
+
+      rkAinvT(1,1) = 1.543510591072668287198054583233180d0
+      rkAinvT(1,2) = -2.460228411937788329157493833295004d0
+      rkAinvT(1,3) = -.412906170450356277003910443520499d0
+      rkAinvT(2,1) = .209519643211838264029272585946993d0
+      rkAinvT(2,2) = 1.388545667194387164417459732995766d0
+      rkAinvT(2,3) = 1.20339553005832004974976023130002d0
+      rkAinvT(3,1) = 3.637834252744495732208418513577775d0
+      rkAinvT(3,2) = 2.681082873627752133895790743211112d0
+      rkAinvT(3,3) = -3.050430199247410569426377624787569d0
+
+  END SUBROUTINE Radau1A_Coefficients
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE Lobatto3A_Coefficients
+!    The coefficients of the 4-stage Lobatto-3A method
+!    (given to ~30 accurate digits)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
+      IMPLICIT NONE
+
+! The coefficients of the Lobatto-3A method
+
+      rkMethod = L3A
+
+      rkA(0,0) = 0.0d0
+      rkA(0,1) = 0.0d0
+      rkA(0,2) = 0.0d0
+      rkA(0,3) = 0.0d0
+      rkA(1,0) = .11030056647916491413674311390609397d0
+      rkA(1,1) = .1896994335208350858632568860939060d0
+      rkA(1,2) = -.339073642291438837776604807792215d-1
+      rkA(1,3) = .1030056647916491413674311390609397d-1
+      rkA(2,0) = .73032766854168419196590219427239365d-1
+      rkA(2,1) = .4505740308958105504443271474458881d0
+      rkA(2,2) = .2269672331458315808034097805727606d0
+      rkA(2,3) = -.2696723314583158080340978057276063d-1
+      rkA(3,0) = .83333333333333333333333333333333333d-1
+      rkA(3,1) = .4166666666666666666666666666666667d0
+      rkA(3,2) = .4166666666666666666666666666666667d0
+      rkA(3,3) = .8333333333333333333333333333333333d-1
+      
+      rkB(0) = .83333333333333333333333333333333333d-1
+      rkB(1) = .4166666666666666666666666666666667d0
+      rkB(2) = .4166666666666666666666666666666667d0
+      rkB(3) = .8333333333333333333333333333333333d-1
+
+      rkC(0) = 0.0d0
+      rkC(1) = .2763932022500210303590826331268724d0
+      rkC(2) = .7236067977499789696409173668731276d0
+      rkC(3) = 1.0d0
+
+      ! New solution: H*Sum B_j*f(Z_j) = Sum D_j*Z_j
+      rkD(0) = 0.0d0
+      rkD(1) = 0.0d0
+      rkD(2) = 0.0d0
+      rkD(3) = 1.0d0
+      
+      ! Classical error estimator, embedded solution: 
+      rkBhat(0) = .90909090909090909090909090909090909d-1
+      rkBhat(1) = .39972675774621371442114262372173276d0
+      rkBhat(2) = .43360657558711961891219070961160058d0
+      rkBhat(3) = .15151515151515151515151515151515152d-1
+
+      ! Classical error estimator: 
+      ! H* Sum (B_j-Bhat_j)*f(Z_j) = H*E(0)*f(0) + Sum E_j*Z_j
+
+      rkE(0) =  .1957403846510110711315759367097231d-1
+      rkE(1) = -.1986820345632580910316020806676438d0
+      rkE(2) =  .1660586371214229125096727578826900d0
+      rkE(3) = -.9787019232550553556578796835486154d-1
+
+      ! Sdirk error estimator: 
+      rkF(0) =  0.0d0
+      rkF(1) = -.66535815876916686607437314126436349d0
+      rkF(2) =  1.7419302743497277572980407931678409d0
+      rkF(3) = -1.2918865386966730694684011822841728d0
+       
+      ! ELO = local order of classical error estimator 
+      rkELO = 4.0d0
+      
+      ! Sdirk error estimator: 
+      rkBgam(0) =  .2950472755430528877214995073815946d-1
+      rkBgam(1) =  .5370310883226113978352873633882769d0
+      rkBgam(2) =  .2963022450107219354980459699450564d0
+      rkBgam(3) = -.7815248400375080035021681445218837d-1
+      rkBgam(4) =  .2153144231161121782447335303806956d0
+      
+      ! H* Sum Bgam_j*f(Z_j) = H*Bgam(0)*f(0) + Sum Theta_j*Z_j
+      rkTheta(0) = 0.0d0
+      rkTheta(1) = -.6653581587691668660743731412643631d0
+      rkTheta(2) = 1.741930274349727757298040793167842d0
+      rkTheta(3) = -.291886538696673069468401182284174d0
+
+
+      !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      !~~~> Diagonalize the RK matrix:               
+      ! rkTinv * inv(rkA) * rkT =          
+      !           |  rkGamma      0           0     |
+      !           |      0      rkAlpha   -rkBeta   |
+      !           |      0      rkBeta     rkAlpha  |
+      !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      rkGamma = 4.644370709252171185822941421408063d0
+      rkAlpha = 3.677814645373914407088529289295968d0
+      rkBeta  = 3.508761919567443321903661209182446d0
+
+      rkT(1,1) = .5303036326129938105898786144870856d-1
+      rkT(1,2) = -.7776129960563076320631956091016914d-1
+      rkT(1,3) = .6043307469475508514468017399717112d-2
+      rkT(2,1) = .2637242522173698467283726114649606d0
+      rkT(2,2) = .2193839918662961493126393244533346d0
+      rkT(2,3) = .3198765142300936188514264752235344d0
+      rkT(3,1) = 1.d0
+      rkT(3,2) = 1.d0
+      rkT(3,3) = 0.d0
+
+      rkTinv(1,1) = 7.695032983257654470769069079238553d0
+      rkTinv(1,2) = -.1453793830957233720334601186354032d0
+      rkTinv(1,3) = .6302696746849084900422461036874826d0
+      rkTinv(2,1) = -7.695032983257654470769069079238553d0
+      rkTinv(2,2) = .1453793830957233720334601186354032d0
+      rkTinv(2,3) = .3697303253150915099577538963125174d0
+      rkTinv(3,1) = -1.066660885401270392058552736086173d0
+      rkTinv(3,2) = 3.146358406832537460764521760668932d0
+      rkTinv(3,3) = -.7732056038202974770406168510664738d0
+
+      rkTinvAinv(1,1) = 35.73858579417120341641749040405149d0
+      rkTinvAinv(1,2) = -.675195748578927863668368190236025d0
+      rkTinvAinv(1,3) = 2.927206016036483646751158874041632d0
+      rkTinvAinv(2,1) = -24.55824590667225493437162206039511d0
+      rkTinvAinv(2,2) = -10.50514413892002061837750015342036
+      rkTinvAinv(2,3) = 4.072793983963516353248841125958369d0
+      rkTinvAinv(3,1) = -30.92301972744621647251975054630589d0
+      rkTinvAinv(3,2) = 12.08182467154052413351908559269928d0
+      rkTinvAinv(3,3) = -1.546411207640594954081233702132946d0
+
+      rkAinvT(1,1) = .2462926658317812882584158369803835d0
+      rkAinvT(1,2) = -.2647871194157644619747121197289574d0
+      rkAinvT(1,3) = .2950720515900466654896406799284586d0
+      rkAinvT(2,1) = 1.224833192317784474576995878738004d0
+      rkAinvT(2,2) = 1.929224190340981580557006261869763d0
+      rkAinvT(2,3) = .4066803323234419988910915619080306d0
+      rkAinvT(3,1) = 4.644370709252171185822941421408064d0
+      rkAinvT(3,2) = 3.677814645373914407088529289295968d0
+      rkAinvT(3,3) = -3.508761919567443321903661209182446d0
+
+  END SUBROUTINE Lobatto3A_Coefficients
+  
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  END SUBROUTINE RungeKutta ! and all its internal procedures
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE FUN_CHEM(T, V, FCT)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+    USE KPP_ROOT_Parameters
+    USE KPP_ROOT_Global
+    USE KPP_ROOT_Function, ONLY: Fun
+    USE KPP_ROOT_Rates, ONLY: Update_SUN, Update_RCONST, Update_PHOTO
+
+    IMPLICIT NONE
+
+    KPP_REAL :: V(NVAR), FCT(NVAR)
+    KPP_REAL :: T, Told
+
+    Told = TIME
+    TIME = T
+    CALL Update_SUN()
+    CALL Update_RCONST()
+    CALL Update_PHOTO()
+    TIME = Told
+    
+    CALL Fun(V, FIX, RCONST, FCT)
+    
+  END SUBROUTINE FUN_CHEM
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE JAC_CHEM (T, V, JF)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+    USE KPP_ROOT_Parameters
+    USE KPP_ROOT_Global
+    USE KPP_ROOT_JacobianSP
+    USE KPP_ROOT_Jacobian, ONLY: Jac_SP
+    USE KPP_ROOT_Rates, ONLY: Update_SUN, Update_RCONST, Update_PHOTO
+
+    IMPLICIT NONE
+
+    KPP_REAL :: V(NVAR), T , Told
+#ifdef FULL_ALGEBRA    
+    KPP_REAL :: JV(LU_NONZERO), JF(NVAR,NVAR)
+    INTEGER :: i, j 
+#else
+    KPP_REAL :: JF(LU_NONZERO)
+#endif   
+
+    Told = TIME
+    TIME = T
+    CALL Update_SUN()
+    CALL Update_RCONST()
+    CALL Update_PHOTO()
+    TIME = Told
+    
+#ifdef FULL_ALGEBRA    
+    CALL Jac_SP(V, FIX, RCONST, JV)
+    DO j=1,NVAR
+      DO i=1,NVAR
+         JF(i,j) = 0.0d0
+      END DO
+    END DO
+    DO i=1,LU_NONZERO
+       JF(LU_IROW(i),LU_ICOL(i)) = JV(i)
+    END DO
+#else
+    CALL Jac_SP(V, FIX, RCONST, JF) 
+#endif   
+
+  END SUBROUTINE JAC_CHEM
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+END MODULE KPP_ROOT_Integrator
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/runge_kutta_adj.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/runge_kutta_adj.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/runge_kutta_adj.def	(revision 2696)
@@ -0,0 +1,8 @@
+ 
+#FUNCTION AGGREGATE
+#JACOBIAN SPARSE_LU_ROW
+
+#DOUBLE ON 
+#INTFILE runge_kutta_adj
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/runge_kutta_adj.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/runge_kutta_adj.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/runge_kutta_adj.f90	(revision 2696)
@@ -0,0 +1,2687 @@
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
+!  RungeKuttaADJ - Adjoint Model of Fully Implicit 3-stage Runge-Kutta:   !
+!          * Radau-2A   quadrature (order 5)                              !
+!          * Radau-1A   quadrature (order 5)                              !
+!          * Lobatto-3C quadrature (order 4)                              !
+!          * Gauss      quadrature (order 6)                              !
+!  By default the code employs the KPP sparse linear algebra routines     !
+!  Compile with -DFULL_ALGEBRA to use full linear algebra (LAPACK)        !
+!                                                                         !
+!    (C)  Adrian Sandu, August 2005                                       !
+!    Virginia Polytechnic Institute and State University                  !
+!    Contact: sandu@cs.vt.edu                                             !
+!    Revised by Philipp Miehe and Adrian Sandu, May 2006                  !
+!    This implementation is part of KPP - the Kinetic PreProcessor        !
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
+
+MODULE KPP_ROOT_Integrator
+
+  USE KPP_ROOT_Precision
+  USE KPP_ROOT_Parameters, ONLY: NVAR, NSPEC, NFIX, LU_NONZERO
+  USE KPP_ROOT_Global, ONLY: FIX, RCONST, TIME
+  USE KPP_ROOT_Jacobian
+  USE KPP_ROOT_LinearAlgebra
+
+  IMPLICIT NONE
+  PUBLIC
+  SAVE
+
+!~~~>  Statistics on the work performed by the Runge-Kutta method
+  INTEGER :: Nfun,Njac,Nstp,Nacc,Nrej,Ndec,Nsol,Nsng
+  INTEGER, PARAMETER :: ifun=1, ijac=2, istp=3, iacc=4, &
+    irej=5, idec=6, isol=7, isng=8, itexit=1, ihacc=2, ihnew=3
+  
+CONTAINS
+
+  ! **************************************************************************
+
+  SUBROUTINE INTEGRATE_ADJ(NADJ, Y, Lambda, TIN, TOUT,  &
+             ATOL_adj, RTOL_adj,                        &
+             ICNTRL_U, RCNTRL_U, ISTATUS_U, RSTATUS_U, IERR_U )
+
+    USE KPP_ROOT_Parameters, ONLY: NVAR
+    USE KPP_ROOT_Global,     ONLY: ATOL,RTOL
+
+    IMPLICIT NONE
+
+!~~~> Y - Concentrations
+   KPP_REAL  :: Y(NVAR)
+!~~~> NADJ - No. of cost functionals for which adjoints
+!                are evaluated simultaneously
+!            If single cost functional is considered (like in
+!                most applications) simply set NADJ = 1      
+   INTEGER NADJ
+!~~~> Lambda - Sensitivities of concentrations
+!     Note: Lambda (1:NVAR,j) contains sensitivities of
+!           the j-th cost functional w.r.t. Y(1:NVAR), j=1...NADJ
+    KPP_REAL :: Lambda(NVAR,NADJ)
+!~~~> Tolerances for adjoint calculations
+!     (used for full continuous adjoint, and for controlling
+!     the convergence of iterations for solving the discrete adjoint)   
+    KPP_REAL, INTENT(IN)  :: ATOL_adj(NVAR,NADJ), RTOL_adj(NVAR,NADJ)
+    KPP_REAL :: TIN  ! TIN - Start Time
+    KPP_REAL :: TOUT ! TOUT - End Time
+    INTEGER,       INTENT(IN),  OPTIONAL :: ICNTRL_U(20)
+    KPP_REAL, INTENT(IN),  OPTIONAL :: RCNTRL_U(20)
+    INTEGER,       INTENT(OUT), OPTIONAL :: ISTATUS_U(20)
+    KPP_REAL, INTENT(OUT), OPTIONAL :: RSTATUS_U(20)
+    INTEGER,       INTENT(OUT), OPTIONAL :: IERR_U
+
+    INTEGER :: IERR
+
+    KPP_REAL :: RCNTRL(20), RSTATUS(20), T1, T2
+    INTEGER       :: ICNTRL(20), ISTATUS(20)
+    INTEGER, SAVE :: Ntotal = 0
+
+
+    ICNTRL(1:20) = 0
+    RCNTRL(1:20) = 0.0_dp
+
+    !~~~> fine-tune the integrator:
+    ICNTRL(2)  = 0   ! 0=vector tolerances, 1=scalar tolerances
+    ICNTRL(5)  = 8   ! Max no. of Newton iterations
+    ICNTRL(6)  = 0   ! Starting values for Newton are: 0=interpolated, 1=zero
+    ICNTRL(7)  = 2   ! Adj. system solved by: 1=iteration, 2=direct, 3=adaptive
+    ICNTRL(8)  = 0   ! Adj. LU decomp: 0=compute, 1=save from fwd
+    ICNTRL(9)  = 2   ! Adjoint: 1=none, 2=discrete, 3=full continuous, 4=simplified continuous
+    ICNTRL(10) = 0   ! Error estimator: 0=classic, 1=SDIRK
+    ICNTRL(11) = 1   ! Step controller: 1=Gustaffson, 2=classic
+
+
+    !~~~> if optional parameters are given, and if they are >0,
+    !     then use them to overwrite default settings
+    IF (PRESENT(ICNTRL_U)) THEN
+      WHERE(ICNTRL_U(:) > 0) ICNTRL(:) = ICNTRL_U(:)
+    END IF
+    IF (PRESENT(RCNTRL_U)) THEN
+      WHERE(RCNTRL_U(:) > 0) RCNTRL(:) = RCNTRL_U(:)
+    END IF
+
+    
+    T1 = TIN; T2 = TOUT
+    CALL RungeKuttaADJ(NVAR, Y, NADJ, Lambda, T1, T2,   &
+                       RTOL, ATOL, ATOL_adj, RTOL_adj,  &
+                       RCNTRL, ICNTRL, RSTATUS, ISTATUS, IERR  )
+
+    Ntotal = Ntotal + ISTATUS(istp)
+!    PRINT*,'NSTEPS=',ISTATUS(istp),' (',Ntotal,')','  O3=', VAR(ind_O3)
+
+    ! if optional parameters are given for output
+    ! use them to store information in them
+    IF (PRESENT(ISTATUS_U)) ISTATUS_U(:) = ISTATUS(:)
+    IF (PRESENT(RSTATUS_U)) RSTATUS_U(:) = RSTATUS(:)
+    IF (PRESENT(IERR_U)) IERR_U = IERR
+
+    IF (IERR < 0) THEN
+      PRINT *,'Runge-Kutta-ADJ: Unsuccessful exit at T=', TIN,' (IERR=',IERR,')'
+    ENDIF
+
+  END SUBROUTINE INTEGRATE_ADJ
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE RungeKuttaADJ( N, Y, NADJ, Lambda,Tstart,Tend,      &
+                         RelTol, AbsTol, RelTol_adj, AbsTol_adj, &
+                         RCNTRL, ICNTRL, RSTATUS, ISTATUS, IERR )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!  This implementation is based on the book and the code Radau5:
+!
+!         E. HAIRER AND G. WANNER
+!         "SOLVING ORDINARY DIFFERENTIAL EQUATIONS II. 
+!              STIFF AND DIFFERENTIAL-ALGEBRAIC PROBLEMS."
+!         SPRINGER SERIES IN COMPUTATIONAL MATHEMATICS 14,
+!         SPRINGER-VERLAG (1991)
+!
+!         UNIVERSITE DE GENEVE, DEPT. DE MATHEMATIQUES
+!         CH-1211 GENEVE 24, SWITZERLAND
+!         E-MAIL:  HAIRER@DIVSUN.UNIGE.CH,  WANNER@DIVSUN.UNIGE.CH
+!
+!   Methods:
+!          * Radau-2A   quadrature (order 5)                              
+!          * Radau-1A   quadrature (order 5)                              
+!          * Lobatto-3C quadrature (order 4)                              
+!          * Gauss      quadrature (order 6)                              
+!                                                                         
+!   (C)  Adrian Sandu, August 2005                                       
+!   Virginia Polytechnic Institute and State University                  
+!   Contact: sandu@cs.vt.edu                                             
+!   Revised by Philipp Miehe and Adrian Sandu, May 2006                  
+!   This implementation is part of KPP - the Kinetic PreProcessor        
+!
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>   INPUT ARGUMENTS:
+!       ----------------
+!
+!    Note: For input parameters equal to zero the default values of the
+!          corresponding variables are used.
+!
+!     N           Dimension of the system
+!     T           Initial time value
+!
+!     Tend        Final T value (Tend-T may be positive or negative)
+!
+!     Y(N)        Initial values for Y
+!
+!     RelTol,AbsTol   Relative and absolute error tolerances. 
+!          for ICNTRL(2) = 0: AbsTol, RelTol are N-dimensional vectors
+!                        = 1: AbsTol, RelTol are scalars
+!
+!~~~>  Integer input parameters:
+!  
+!    ICNTRL(1) = not used
+!
+!    ICNTRL(2) = 0: AbsTol, RelTol are NVAR-dimensional vectors
+!              = 1: AbsTol, RelTol are scalars
+!
+!    ICNTRL(3) = RK method selection       
+!              = 1:  Radau-2A    (the default)
+!              = 2:  Lobatto-3C
+!              = 3:  Gauss
+!              = 4:  Radau-1A
+!
+!    ICNTRL(4)  -> maximum number of integration steps
+!        For ICNTRL(4)=0 the default value of 10000 is used
+!
+!    ICNTRL(5)  -> maximum number of Newton iterations
+!        For ICNTRL(5)=0 the default value of 8 is used
+!
+!    ICNTRL(6)  -> starting values of Newton iterations:
+!        ICNTRL(6)=0 : starting values are obtained from 
+!                      the extrapolated collocation solution
+!                      (the default)
+!        ICNTRL(6)=1 : starting values are zero
+!
+!    ICNTRL(7)  -> method to solve the linear ADJ equations:
+!        ICNTRL(7)=0,1 : modified Newton re-using LU (the default)
+!                        with a fixed number of iterations
+!        ICNTRL(7)=2 :   direct solution (additional one LU factorization
+!                        of 3Nx3N matrix per step); good for debugging
+!        ICNTRL(7)=3 :   adaptive solution (if Newton does not converge
+!                        switch to direct)
+!
+!    ICNTRL(8)  -> checkpointing the LU factorization at each step:
+!        ICNTRL(8)=0 : do *not* save LU factorization (the default)
+!        ICNTRL(8)=1 : save LU factorization
+!        Note: if ICNTRL(7)=1 the LU factorization is *not* saved
+!
+!    ICNTRL(9) -> Type of adjoint algorithm
+!         = 0 : default is discrete adjoint ( of method ICNTRL(3) )
+!         = 1 : no adjoint       
+!         = 2 : discrete adjoint ( of method ICNTRL(3) )
+!         = 3 : fully adaptive continuous adjoint ( with method ICNTRL(6) )
+!         = 4 : simplified continuous adjoint ( with method ICNTRL(6) )
+!
+!    ICNTRL(10) -> switch for error estimation strategy
+!		ICNTRL(10) = 0: one additional stage at c=0, 
+!				see Hairer (default)
+!		ICNTRL(10) = 1: two additional stages at c=0 
+!				and SDIRK at c=1, stiffly accurate
+!
+!    ICNTRL(11) -> switch for step size strategy
+!              ICNTRL(11)=1:  mod. predictive controller (Gustafsson, default)
+!              ICNTRL(11)=2:  classical step size control
+!              the choice 1 seems to produce safer results;
+!              for simple problems, the choice 2 produces
+!              often slightly faster runs
+!
+!~~~>  Real input parameters:
+!
+!    RCNTRL(1)  -> Hmin, lower bound for the integration step size
+!                  (highly recommended to keep Hmin = ZERO, the default)
+!
+!    RCNTRL(2)  -> Hmax, upper bound for the integration step size
+!
+!    RCNTRL(3)  -> Hstart, the starting step size
+!
+!    RCNTRL(4)  -> FacMin, lower bound on step decrease factor (default=0.2)
+!
+!    RCNTRL(5)  -> FacMax, upper bound on step increase factor (default=6)
+!
+!    RCNTRL(6)  -> FacRej, step decrease factor after multiple rejections
+!                 (default=0.1)
+!
+!    RCNTRL(7)  -> FacSafe, by which the new step is slightly smaller
+!                  than the predicted value  (default=0.9)
+!
+!    RCNTRL(8)  -> ThetaMin. If Newton convergence rate smaller
+!                  than ThetaMin the Jacobian is not recomputed;
+!                  (default=0.001)
+!
+!    RCNTRL(9)  -> NewtonTol, stopping criterion for Newton's method
+!                  (default=0.03)
+!
+!    RCNTRL(10) -> Qmin
+!
+!    RCNTRL(11) -> Qmax. If Qmin < Hnew/Hold < Qmax, then the
+!                  step size is kept constant and the LU factorization
+!                  reused (default Qmin=1, Qmax=1.2)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!
+!    OUTPUT ARGUMENTS:
+!    -----------------
+!
+!    T           -> T value for which the solution has been computed
+!                     (after successful return T=Tend).
+!
+!    Y(N)        -> Numerical solution at T
+!
+!    IERR        -> Reports on successfulness upon return:
+!                    = 1 for success
+!                    < 0 for error (value equals error code)
+!
+!    ISTATUS(1)  -> No. of function calls
+!    ISTATUS(2)  -> No. of Jacobian calls
+!    ISTATUS(3)  -> No. of steps
+!    ISTATUS(4)  -> No. of accepted steps
+!    ISTATUS(5)  -> No. of rejected steps (except at very beginning)
+!    ISTATUS(6)  -> No. of LU decompositions
+!    ISTATUS(7)  -> No. of forward/backward substitutions
+!    ISTATUS(8)  -> No. of singular matrix decompositions
+!
+!    RSTATUS(1)  -> Texit, the time corresponding to the
+!                     computed Y upon return
+!    RSTATUS(2)  -> Hexit, last accepted step before exit
+!    RSTATUS(3)  -> Hnew, last predicted step (not yet taken)
+!                   For multiple restarts, use Hnew as Hstart 
+!                     in the subsequent run
+!
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      IMPLICIT NONE
+      
+      INTEGER :: N
+      INTEGER, INTENT(IN)     :: NADJ
+      KPP_REAL, INTENT(INOUT) :: Lambda(N,NADJ)
+      KPP_REAL, INTENT(IN) :: AbsTol_adj(N,NADJ), RelTol_adj(N,NADJ)
+      KPP_REAL :: Y(N),AbsTol(N),RelTol(N),RCNTRL(20),RSTATUS(20)
+      INTEGER :: ICNTRL(20), ISTATUS(20)
+      LOGICAL :: StartNewton, Gustafsson, SdirkError, SaveLU
+      INTEGER :: IERR, ITOL
+      KPP_REAL, INTENT(IN):: Tstart,Tend
+      KPP_REAL :: Texit
+
+      !~~~> Control arguments
+      INTEGER :: Max_no_steps, NewtonMaxit, AdjointType, rkMethod
+      KPP_REAL :: Hmin,Hmax,Hstart,Qmin,Qmax
+      KPP_REAL :: Roundoff, ThetaMin, NewtonTol
+      KPP_REAL :: FacSafe,FacMin,FacMax,FacRej
+      ! Runge-Kutta method parameters
+      INTEGER, PARAMETER :: R2A=1, R1A=2, L3C=3, GAU=4, L3A=5
+      KPP_REAL :: rkT(3,3), rkTinv(3,3), rkTinvAinv(3,3), rkAinvT(3,3), &
+                       rkA(3,3), rkB(3),  rkC(3), rkD(0:3), rkE(0:3), 	   &
+		       rkBgam(0:4), rkBhat(0:4), rkTheta(0:3),             &
+                       rkGamma,  rkAlpha, rkBeta, rkELO
+      ! ADJ method parameters
+      INTEGER, PARAMETER :: KPP_ROOT_none = 1, KPP_ROOT_discrete = 2,     	   &
+                            KPP_ROOT_continuous = 3, KPP_ROOT_simple_continuous = 4
+      INTEGER :: AdjointSolve                      
+      INTEGER, PARAMETER :: Solve_direct = 1, Solve_fixed = 2,     	   &
+                            Solve_adaptive = 3
+      INTEGER, PARAMETER :: bufsize = 10000
+      INTEGER :: stack_ptr = 0 ! last written entry
+      KPP_REAL, DIMENSION(:), POINTER :: chk_H, chk_T
+      KPP_REAL, DIMENSION(:,:), POINTER :: chk_Y, chk_Z, chk_E1
+      INTEGER, DIMENSION(:), POINTER :: chk_NiT
+      COMPLEX(kind=dp), DIMENSION(:,:), POINTER :: chk_E2
+      KPP_REAL, DIMENSION(:,:), POINTER :: chk_dY, chk_d2Y
+      !~~~> Local variables
+      INTEGER :: i 
+      KPP_REAL, PARAMETER :: ZERO = 0.0d0, ONE = 1.0d0
+    
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!        SETTING THE PARAMETERS
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IERR = 0
+      ISTATUS(1:20) = 0
+      RSTATUS(1:20) = ZERO
+       
+!~~~> ICNTRL(1) - autonomous system - not used       
+!~~~> ITOL: 1 for vector and 0 for scalar AbsTol/RelTol
+      IF (ICNTRL(2) == 0) THEN
+         ITOL = 1
+      ELSE
+         ITOL = 0
+      END IF
+!~~~> Error control selection  
+      IF (ICNTRL(10) == 0) THEN 
+         SdirkError = .FALSE.
+      ELSE
+         SdirkError = .TRUE.
+      END IF      
+!~~~> Method selection  
+      SELECT CASE (ICNTRL(3))     
+      CASE (0,1)
+         CALL Radau2A_Coefficients
+      CASE (2)
+         CALL Lobatto3C_Coefficients
+      CASE (3)
+         CALL Gauss_Coefficients
+      CASE (4)
+         CALL Radau1A_Coefficients
+      CASE DEFAULT
+         WRITE(6,*) 'ICNTRL(3)=',ICNTRL(3)
+         CALL RK_ErrorMsg(-13,Tstart,ZERO,IERR)
+      END SELECT
+!~~~> Max_no_steps: the maximal number of time steps
+      IF (ICNTRL(4) == 0) THEN
+         Max_no_steps = 200000
+      ELSE
+         Max_no_steps=ICNTRL(4)
+         IF (Max_no_steps <= 0) THEN
+            WRITE(6,*) 'ICNTRL(4)=',ICNTRL(4)
+            CALL RK_ErrorMsg(-1,Tstart,ZERO,IERR)
+         END IF
+      END IF
+!~~~> NewtonMaxit    maximal number of Newton iterations
+      IF (ICNTRL(5) == 0) THEN
+         NewtonMaxit = 8
+      ELSE
+         NewtonMaxit=ICNTRL(5)
+         IF (NewtonMaxit <= 0) THEN
+            WRITE(6,*) 'ICNTRL(5)=',ICNTRL(5)
+            CALL RK_ErrorMsg(-2,Tstart,ZERO,IERR)
+          END IF
+      END IF
+!~~~> StartNewton:  Use extrapolation for starting values of Newton iterations
+      IF (ICNTRL(6) == 0) THEN
+         StartNewton = .TRUE.
+      ELSE
+         StartNewton = .FALSE.
+      END IF      
+!~~~>  How to solve the linear adjoint system
+      SELECT CASE (ICNTRL(7))     
+      CASE (0,1)
+         AdjointSolve = Solve_fixed
+      CASE (2)
+         AdjointSolve = Solve_direct
+      CASE (3)
+         AdjointSolve = Solve_adaptive
+      CASE DEFAULT  
+         PRINT * , 'User-selected adjoint solution: ICNTRL(7)=', ICNTRL(7)
+         PRINT * , 'Implemented: =(0,1) (fixed), =2 (direct), =3 (adaptive)'
+         CALL rk_ErrorMsg(-9,Tstart,ZERO,IERR)
+         RETURN      
+      END SELECT
+!~~~>  Discrete or continuous adjoint formulation
+      SELECT CASE (ICNTRL(9))     
+      CASE (0,2)
+         AdjointType = KPP_ROOT_discrete
+      CASE (1)
+         AdjointType = KPP_ROOT_none
+      CASE DEFAULT  
+         PRINT * , 'User-selected adjoint type: ICNTRL(9)=', ICNTRL(9)
+         PRINT * , 'Implemented: =(0,2) (discrete adj) and =1 (no adj)'
+         CALL rk_ErrorMsg(-9,Tstart,ZERO,IERR)
+         RETURN      
+      END SELECT
+!~~~> Save or not the forward LU factorization
+      SaveLU = (ICNTRL(8) /= 0) 
+      IF (AdjointSolve == Solve_direct) SaveLU = .FALSE.
+!~~~> Gustafsson: step size controller
+      IF (ICNTRL(11) == 0) THEN
+         Gustafsson = .TRUE.
+      ELSE
+         Gustafsson = .FALSE.
+      END IF
+
+!~~~> Roundoff: smallest number s.t. 1.0 + Roundoff > 1.0
+      Roundoff = WLAMCH('E');
+
+!~~~> Hmin = minimal step size
+      IF (RCNTRL(1) == ZERO) THEN
+         Hmin = ZERO
+      ELSE
+         Hmin = MIN(ABS(RCNTRL(1)),ABS(Tend-Tstart))
+      END IF
+!~~~> Hmax = maximal step size
+      IF (RCNTRL(2) == ZERO) THEN
+         Hmax = ABS(Tend-Tstart)
+      ELSE
+         Hmax = MIN(ABS(RCNTRL(2)),ABS(Tend-Tstart))
+      END IF
+!~~~> Hstart = starting step size
+      IF (RCNTRL(3) == ZERO) THEN
+         Hstart = ZERO
+      ELSE
+         Hstart = MIN(ABS(RCNTRL(3)),ABS(Tend-Tstart))
+      END IF
+!~~~> FacMin: lower bound on step decrease factor
+      IF(RCNTRL(4) == ZERO)THEN
+         FacMin = 0.2d0
+      ELSE
+         FacMin = RCNTRL(4)
+      END IF
+!~~~> FacMax: upper bound on step increase factor
+      IF(RCNTRL(5) == ZERO)THEN
+         FacMax = 8.D0
+      ELSE
+         FacMax = RCNTRL(5)
+      END IF
+!~~~> FacRej: step decrease factor after 2 consecutive rejections
+      IF(RCNTRL(6) == ZERO)THEN
+         FacRej = 0.1d0
+      ELSE
+         FacRej = RCNTRL(6)
+      END IF
+!~~~> FacSafe:  by which the new step is slightly smaller
+!               than the predicted value
+      IF (RCNTRL(7) == ZERO) THEN
+         FacSafe=0.9d0
+      ELSE
+         FacSafe=RCNTRL(7)
+      END IF
+      IF ( (FacMax < ONE) .OR. (FacMin > ONE) .OR. &
+           (FacSafe <= 1.0d-3) .OR. (FacSafe >= ONE) ) THEN
+            WRITE(6,*)'RCNTRL(4:7)=',RCNTRL(4:7)
+            CALL RK_ErrorMsg(-4,Tstart,ZERO,IERR)
+      END IF
+
+!~~~> ThetaMin:  decides whether the Jacobian should be recomputed
+      IF (RCNTRL(8) == ZERO) THEN
+         ThetaMin = 1.0d-3
+      ELSE
+         ThetaMin=RCNTRL(8)
+         IF (ThetaMin <= 0.0d0 .OR. ThetaMin >= 1.0d0) THEN
+            WRITE(6,*) 'RCNTRL(8)=', RCNTRL(8)
+            CALL RK_ErrorMsg(-5,Tstart,ZERO,IERR)
+         END IF
+      END IF
+!~~~> NewtonTol:  stopping crierion for Newton's method
+      IF (RCNTRL(9) == ZERO) THEN
+         NewtonTol = 3.0d-2
+      ELSE
+         NewtonTol = RCNTRL(9)
+         IF (NewtonTol <= Roundoff) THEN
+            WRITE(6,*) 'RCNTRL(9)=',RCNTRL(9)
+            CALL RK_ErrorMsg(-6,Tstart,ZERO,IERR)
+         END IF
+      END IF
+!~~~> Qmin AND Qmax: IF Qmin < Hnew/Hold < Qmax then step size = const.
+      IF (RCNTRL(10) == ZERO) THEN
+         Qmin=1.D0
+      ELSE
+         Qmin=RCNTRL(10)
+      END IF
+      IF (RCNTRL(11) == ZERO) THEN
+         Qmax=1.2D0
+      ELSE
+         Qmax=RCNTRL(11)
+      END IF
+      IF (Qmin > ONE .OR. Qmax < ONE) THEN
+         WRITE(6,*) 'RCNTRL(10:11)=',Qmin,Qmax
+         CALL RK_ErrorMsg(-7,Tstart,ZERO,IERR)
+      END IF
+!~~~> Check if tolerances are reasonable
+      IF (ITOL == 0) THEN
+          IF (AbsTol(1) <= ZERO.OR.RelTol(1) <= 10.d0*Roundoff) THEN
+              WRITE (6,*) 'AbsTol/RelTol=',AbsTol,RelTol 
+              CALL RK_ErrorMsg(-8,Tstart,ZERO,IERR)
+          END IF
+      ELSE
+          DO i=1,N
+          IF (AbsTol(i) <= ZERO.OR.RelTol(i) <= 10.d0*Roundoff) THEN
+              WRITE (6,*) 'AbsTol/RelTol(',i,')=',AbsTol(i),RelTol(i)
+              CALL RK_ErrorMsg(-8,Tstart,ZERO,IERR)
+          END IF
+          END DO
+      END IF
+
+!~~~> Parameters are wrong
+      IF (IERR < 0) RETURN
+
+!~~~>  Allocate checkpoint space or open checkpoint files
+   IF (AdjointType == KPP_ROOT_discrete) THEN
+       CALL rk_AllocateDBuffers()
+   ELSEIF ( (AdjointType == KPP_ROOT_continuous).OR. &
+           (AdjointType == KPP_ROOT_simple_continuous) ) THEN
+       CALL rk_AllocateCBuffers
+   END IF
+
+!~~~> Call the core method
+      CALL RK_FwdIntegrator( N,Tstart,Tend,Y,AdjointType,IERR )
+!   PRINT*,'FORWARD STATISTICS'
+!   PRINT*,'Step=',Istatus(istp),' Acc=',Istatus(iacc),   &
+!        ' Rej=',Istatus(irej), ' Singular=',Istatus(isng)
+   Nstp = 0
+   Nacc = 0
+   Nrej = 0
+   Nsng = 0
+
+!~~~>  If Forward integration failed return   
+   IF (IERR<0) RETURN
+
+   SELECT CASE (AdjointType)   
+   CASE (KPP_ROOT_discrete)   
+     CALL rk_DadjInt (                          &
+        NADJ, Lambda,                           &
+        Tstart, Tend, Texit,                    &
+        IERR )
+   CASE (KPP_ROOT_continuous) 
+     CALL rk_CadjInt (                          &
+        NADJ, Lambda,                           &
+        Tend, Tstart, Texit,                    &
+        IERR )
+   CASE (KPP_ROOT_simple_continuous)
+     CALL rk_SimpleCadjInt (                    &
+        NADJ, Lambda,                           &
+        Tstart, Tend, Texit,                    &
+        IERR )
+   END SELECT ! AdjointType
+!   PRINT*,'ADJOINT STATISTICS'
+!   PRINT*,'Step=',Nstp,' Acc=',Nacc,             &
+!        ' Rej=',Nrej, ' Singular=',Nsng
+
+!~~~>  Free checkpoint space or close checkpoint files
+   IF (AdjointType == KPP_ROOT_discrete) THEN
+      CALL rk_FreeDBuffers
+   ELSEIF ( (AdjointType == KPP_ROOT_continuous) .OR. &
+           (AdjointType == KPP_ROOT_simple_continuous) ) THEN
+      CALL rk_FreeCBuffers
+   END IF
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+CONTAINS ! Internal procedures to RungeKuttaADJ
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE rk_AllocateDBuffers()
+!~~~>  Allocate buffer space for discrete adjoint
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   INTEGER :: i
+   
+   ALLOCATE( chk_H(bufsize), STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed allocation of buffer H'; STOP
+   END IF   
+   ALLOCATE( chk_T(bufsize), STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed allocation of buffer T'; STOP
+   END IF   
+   ALLOCATE( chk_Y(NVAR,bufsize), STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed allocation of buffer Y'; STOP
+   END IF   
+   ALLOCATE( chk_Z(NVAR*3,bufsize), STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed allocation of buffer Z'; STOP
+   END IF   
+   ALLOCATE( chk_NiT(bufsize), STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed allocation of buffer NiT'; STOP
+   END IF   
+   IF (SaveLU) THEN 
+#ifdef FULL_ALGEBRA      
+     ALLOCATE( chk_E1(NVAR*NVAR,bufsize), STAT=i )
+     IF (i/=0) THEN
+        PRINT*,'Failed allocation of buffer E1'; STOP
+     END IF   
+     ALLOCATE( chk_E2(NVAR*NVAR,bufsize), STAT=i )
+     IF (i/=0) THEN
+        PRINT*,'Failed allocation of buffer E2'; STOP
+     END IF   
+#else      
+     ALLOCATE( chk_E1(LU_NONZERO,bufsize), STAT=i )
+     IF (i/=0) THEN
+        PRINT*,'Failed allocation of buffer E1'; STOP
+     END IF   
+     ALLOCATE( chk_E2(LU_NONZERO,bufsize), STAT=i )
+     IF (i/=0) THEN
+        PRINT*,'Failed allocation of buffer E2'; STOP
+     END IF   
+#endif
+   END IF   
+   
+ 
+ END SUBROUTINE rk_AllocateDBuffers
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE rk_FreeDBuffers()
+!~~~>  Dallocate buffer space for discrete adjoint
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   INTEGER :: i
+   
+   DEALLOCATE( chk_H, STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed deallocation of buffer H'; STOP
+   END IF   
+   DEALLOCATE( chk_T, STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed deallocation of buffer T'; STOP
+   END IF   
+   DEALLOCATE( chk_Y, STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed deallocation of buffer Y'; STOP
+   END IF   
+   DEALLOCATE( chk_Z, STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed deallocation of buffer Z'; STOP
+   END IF   
+   DEALLOCATE( chk_NiT, STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed deallocation of buffer NiT'; STOP
+   END IF   
+   IF (SaveLU) THEN 
+     DEALLOCATE( chk_E1, STAT=i )
+     IF (i/=0) THEN
+        PRINT*,'Failed allocation of buffer E1'; STOP
+     END IF   
+     DEALLOCATE( chk_E2, STAT=i )
+     IF (i/=0) THEN
+        PRINT*,'Failed allocation of buffer E2'; STOP
+     END IF   
+   END IF   
+
+ END SUBROUTINE rk_FreeDBuffers
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE rk_AllocateCBuffers()
+!~~~>  Allocate buffer space for continuous adjoint
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   INTEGER :: i
+   
+   ALLOCATE( chk_H(bufsize), STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed allocation of buffer H'; STOP
+   END IF   
+   ALLOCATE( chk_T(bufsize), STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed allocation of buffer T'; STOP
+   END IF   
+   ALLOCATE( chk_Y(NVAR,bufsize), STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed allocation of buffer Y'; STOP
+   END IF   
+   ALLOCATE( chk_dY(NVAR,bufsize), STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed allocation of buffer dY'; STOP
+   END IF   
+   ALLOCATE( chk_d2Y(NVAR,bufsize), STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed allocation of buffer d2Y'; STOP
+   END IF   
+ 
+ END SUBROUTINE rk_AllocateCBuffers
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE rk_FreeCBuffers()
+!~~~>  Dallocate buffer space for continuous adjoint
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   INTEGER :: i
+   print*,'cbuffers deallocate???'
+   DEALLOCATE( chk_H, STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed deallocation of buffer H'; STOP
+   END IF   
+   DEALLOCATE( chk_T, STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed deallocation of buffer T'; STOP
+   END IF   
+   DEALLOCATE( chk_Y, STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed deallocation of buffer Y'; STOP
+   END IF   
+   DEALLOCATE( chk_dY, STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed deallocation of buffer dY'; STOP
+   END IF   
+   DEALLOCATE( chk_d2Y, STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed deallocation of buffer d2Y'; STOP
+   END IF   
+ 
+ END SUBROUTINE rk_FreeCBuffers
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE rk_DPush( T, H, Y, Zstage, NewIt, E1, E2 )!, Jcb )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> Saves the next trajectory snapshot for discrete adjoints
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   KPP_REAL :: T, H, Y(NVAR), Zstage(NVAR*3)
+   INTEGER :: NewIt
+#ifdef FULL_ALGEBRA      
+   KPP_REAL :: E1(NVAR,NVAR)
+   COMPLEX(kind=dp) :: E2(NVAR,NVAR)
+   INTEGER :: i, j   
+#else      
+   KPP_REAL :: E1(LU_NONZERO)
+   COMPLEX(kind=dp) :: E2(LU_NONZERO)   
+#endif      
+
+   stack_ptr = stack_ptr + 1
+   IF ( stack_ptr > bufsize ) THEN
+     PRINT*,'Push failed: buffer overflow'
+     STOP
+   END IF  
+   chk_H( stack_ptr ) = H
+   chk_T( stack_ptr ) = T
+   ! CALL WCOPY(NVAR,Y,1,chk_Y(1,stack_ptr),1)
+   ! CALL WCOPY(NVAR*3,Zstage,1,chk_Z(1,stack_ptr),1)
+   chk_Y(1:N,stack_ptr) = Y(1:N)
+   chk_Z(1:3*N,stack_ptr) = Zstage(1:3*N)
+   chk_NiT( stack_ptr ) = NewIt
+   IF (SaveLU) THEN 
+#ifdef FULL_ALGEBRA      
+     ! CALL WCOPY(NVAR*NVAR, E1,1,chk_E1(1,stack_ptr),1)
+     ! CALL WCOPYCmplx(NVAR*NVAR, E2,1,chk_E2(1,stack_ptr),1)
+     DO j=1,NVAR
+       DO i=1,NVAR
+         chk_E1(NVAR*(j-1)+i,stack_ptr) = E1(i,j)
+         chk_E2(NVAR*(j-1)+i,stack_ptr) = E2(i,j)
+       END DO
+     END DO
+#else      
+     ! CALL WCOPY(LU_NONZERO, E1,1,chk_E1(1,stack_ptr),1)
+     ! CALL WCOPYCmplx(LU_NONZERO, E2,1,chk_E2(1,stack_ptr),1)
+     chk_E1(1:LU_NONZERO,stack_ptr) = E1(1:LU_NONZERO)
+     chk_E2(1:LU_NONZERO,stack_ptr) = E2(1:LU_NONZERO)
+#endif      
+   END IF  
+   !CALL WCOPY(LU_NONZERO,Jcb,1,chk_J(1,stack_ptr),1)
+  
+  END SUBROUTINE rk_DPush
+  
+   
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE rk_DPop( T, H, Y, Zstage, NewIt, E1, E2 ) !, Jcb )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> Retrieves the next trajectory snapshot for discrete adjoints
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+   KPP_REAL :: T, H, Y(NVAR), Zstage(NVAR*3) ! , Jcb(LU_NONZERO)
+   INTEGER :: NewIt
+#ifdef FULL_ALGEBRA      
+   KPP_REAL :: E1(NVAR,NVAR)
+   COMPLEX(kind=dp) :: E2(NVAR,NVAR)   
+   INTEGER :: i, j   
+#else      
+   KPP_REAL :: E1(LU_NONZERO)
+   COMPLEX(kind=dp) :: E2(LU_NONZERO)   
+#endif      
+   
+   IF ( stack_ptr <= 0 ) THEN
+     PRINT*,'Pop failed: empty buffer'
+     STOP
+   END IF  
+   H = chk_H( stack_ptr )
+   T = chk_T( stack_ptr )
+   ! CALL WCOPY(NVAR,chk_Y(1,stack_ptr),1,Y,1)
+   Y(1:NVAR) = chk_Y(1:NVAR,stack_ptr)
+   ! CALL WCOPY(NVAR*3,chk_Z(1,stack_ptr),1,Zstage,1)
+   Zstage(1:3*NVAR) = chk_Z(1:3*NVAR,stack_ptr)
+   NewIt = chk_NiT( stack_ptr )
+   IF (SaveLU) THEN
+#ifdef FULL_ALGEBRA      
+     ! CALL WCOPY(NVAR*NVAR,chk_E1(1,stack_ptr),1, E1,1)
+     ! CALL WCOPYCmplx(NVAR*NVAR,chk_E2(1,stack_ptr),1, E2,1)
+     DO j=1,NVAR
+       DO i=1,NVAR
+         E1(i,j) = chk_E1(NVAR*(j-1)+i,stack_ptr)
+         E2(i,j) = chk_E2(NVAR*(j-1)+i,stack_ptr)
+       END DO
+     END DO
+#else      
+     ! CALL WCOPY(LU_NONZERO,chk_E1(1,stack_ptr),1, E1,1)
+     ! CALL WCOPYCmplx(LU_NONZERO,chk_E2(1,stack_ptr),1, E2,1)
+     E1(1:LU_NONZERO) = chk_E1(1:LU_NONZERO,stack_ptr)
+     E2(1:LU_NONZERO) = chk_E2(1:LU_NONZERO,stack_ptr)
+#endif      
+   END IF  
+   !CALL WCOPY(LU_NONZERO,chk_J(1,stack_ptr),1,Jcb,1)
+
+   stack_ptr = stack_ptr - 1
+  
+  END SUBROUTINE rk_DPop
+ 
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE rk_CPush(T, H, Y, dY, d2Y )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> Saves the next trajectory snapshot for discrete adjoints
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+   KPP_REAL :: T, H, Y(NVAR), dY(NVAR), d2Y(NVAR)
+   
+   stack_ptr = stack_ptr + 1
+   IF ( stack_ptr > bufsize ) THEN
+     PRINT*,'Push failed: buffer overflow'
+     STOP
+   END IF  
+   chk_H( stack_ptr ) = H
+   chk_T( stack_ptr ) = T
+   ! CALL WCOPY(NVAR,Y,1,chk_Y(1,stack_ptr),1)
+   ! CALL WCOPY(NVAR,dY,1,chk_dY(1,stack_ptr),1)
+   ! CALL WCOPY(NVAR,d2Y,1,chk_d2Y(1,stack_ptr),1)
+   chk_Y(1:NVAR,stack_ptr)  =  Y(1:NVAR)
+   chk_dY(1:NVAR,stack_ptr) = dY(1:NVAR)
+   chk_d2Y(1:NVAR,stack_ptr)= d2Y(1:NVAR)
+  
+  END SUBROUTINE rk_CPush
+  
+   
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE rk_CPop( T, H, Y, dY, d2Y )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> Retrieves the next trajectory snapshot for discrete adjoints
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+   KPP_REAL :: T, H, Y(NVAR), dY(NVAR), d2Y(NVAR)
+   
+   IF ( stack_ptr <= 0 ) THEN
+     PRINT*,'Pop failed: empty buffer'
+     STOP
+   END IF  
+   H = chk_H( stack_ptr )
+   T = chk_T( stack_ptr )
+   ! CALL WCOPY(NVAR,chk_Y(1,stack_ptr),1,Y,1)
+   ! CALL WCOPY(NVAR,chk_dY(1,stack_ptr),1,dY,1)
+   ! CALL WCOPY(NVAR,chk_d2Y(1,stack_ptr),1,d2Y,1)
+     Y(1:NVAR) = chk_Y(1:NVAR,stack_ptr)
+    dY(1:NVAR) = chk_dY(1:NVAR,stack_ptr)
+   d2Y(1:NVAR) = chk_d2Y(1:NVAR,stack_ptr)
+
+   stack_ptr = stack_ptr - 1
+  
+  END SUBROUTINE rk_CPop
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE RK_FwdIntegrator( N,Tstart,Tend,Y,AdjointType,IERR )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      IMPLICIT NONE
+!~~~> Arguments
+      INTEGER,  INTENT(IN)         :: N
+      KPP_REAL, INTENT(IN)    :: Tend, Tstart
+      KPP_REAL, INTENT(INOUT) :: Y(N)
+      INTEGER,  INTENT(OUT)        :: IERR
+      INTEGER,  INTENT(IN)         :: AdjointType
+
+!~~~> Local variables
+#ifdef FULL_ALGEBRA
+      KPP_REAL    :: FJAC(N,N), E1(N,N)
+      COMPLEX(kind=dp) :: E2(N,N)   
+#else
+      KPP_REAL    :: FJAC(LU_NONZERO), E1(LU_NONZERO)
+      COMPLEX(kind=dp) :: E2(LU_NONZERO)   
+#endif                
+      KPP_REAL, DIMENSION(N) :: Z1,Z2,Z3,Z4,SCAL,DZ1,DZ2,DZ3,DZ4,G,TMP,FCN0
+      KPP_REAL  :: CONT(N,3), Tdirection,  H, T, Hacc, Hnew, Hold, Fac,  &
+                 FacGus, Theta, Err, ErrOld, NewtonRate, NewtonIncrement,  &
+                 Hratio, Qnewton, NewtonPredictedErr,NewtonIncrementOld, ThetaSD
+      INTEGER :: IP1(N),IP2(N),NewtonIter, ISING, Nconsecutive, NewIt
+      LOGICAL :: Reject, FirstStep, SkipJac, NewtonDone, SkipLU
+      
+      KPP_REAL, DIMENSION(:), POINTER :: Zstage
+            
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Initial setting
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IF (AdjointType == KPP_ROOT_discrete) THEN ! Save stage solution
+        ALLOCATE(Zstage(N*3), STAT=i)
+        IF (i/=0) THEN
+          PRINT*,'Allocation of Zstage failed'
+          STOP
+        END IF
+      END IF   
+      T=Tstart
+
+      Tdirection = SIGN(ONE,Tend-Tstart)
+      H = MIN( MAX(ABS(Hmin),ABS(Hstart)) , Hmax )
+      IF (ABS(H) <= 10.d0*Roundoff) H = 1.0d-6
+      H = SIGN(H,Tdirection)
+      Hold      = H
+      Reject    = .FALSE.
+      FirstStep = .TRUE.
+      SkipJac   = .FALSE.
+      SkipLU    = .FALSE.
+      IF ((T+H*1.0001D0-Tend)*Tdirection >= ZERO) THEN
+         H = Tend-T
+      END IF
+      Nconsecutive = 0
+      CALL RK_ErrorScale(N,ITOL,AbsTol,RelTol,Y,SCAL)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Time loop begins
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Tloop: DO WHILE ( (Tend-T)*Tdirection - Roundoff > ZERO )
+
+      IF ( .NOT.SkipLU ) THEN ! This time around skip the Jac update and LU
+        !~~~> Compute the Jacobian matrix
+        IF ( .NOT.SkipJac ) THEN
+          CALL JAC_CHEM(T,Y,FJAC)
+          ISTATUS(ijac) = ISTATUS(ijac) + 1
+        END IF
+        !~~~> Compute the matrices E1 and E2 and their decompositions
+        CALL RK_Decomp(N,H,FJAC,E1,IP1,E2,IP2,ISING)
+        IF (ISING /= 0) THEN
+          ISTATUS(isng) = ISTATUS(isng) + 1; Nconsecutive = Nconsecutive + 1
+          IF (Nconsecutive >= 5) THEN
+            CALL RK_ErrorMsg(-12,T,H,IERR); RETURN
+          END IF
+          H=H*0.5d0; Reject=.TRUE.; SkipJac = .TRUE.;  SkipLU = .FALSE.
+          CYCLE Tloop
+        ELSE
+          Nconsecutive = 0    
+        END IF   
+      END IF ! SkipLU
+   
+      ISTATUS(istp) = ISTATUS(istp) + 1
+      IF (ISTATUS(istp) > Max_no_steps) THEN
+        PRINT*,'Max number of time steps is ',Max_no_steps
+        CALL RK_ErrorMsg(-9,T,H,IERR); RETURN
+      END IF
+      IF (0.1D0*ABS(H) <= ABS(T)*Roundoff)  THEN
+        CALL RK_ErrorMsg(-10,T,H,IERR); RETURN
+      END IF
+      
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Loop for the simplified Newton iterations
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+            
+      !~~~>  Starting values for Newton iteration
+      IF ( FirstStep .OR. (.NOT.StartNewton) ) THEN
+         CALL Set2zero(N,Z1)
+         CALL Set2zero(N,Z2)
+         CALL Set2zero(N,Z3)
+      ELSE
+         ! Evaluate quadratic polynomial
+         CALL RK_Interpolate('eval',N,H,Hold,Z1,Z2,Z3,CONT)
+      END IF
+      
+      !~~~>  Initializations for Newton iteration
+      NewtonDone = .FALSE.
+      Fac = 0.5d0 ! Step reduction if too many iterations
+      
+NewtonLoop:DO  NewtonIter = 1, NewtonMaxit  
+ 
+            !~~~> Prepare the right-hand side
+            CALL RK_PrepareRHS(N,T,H,Y,Z1,Z2,Z3,DZ1,DZ2,DZ3)
+            
+            !~~~> Solve the linear systems
+            CALL RK_Solve( N,H,E1,IP1,E2,IP2,DZ1,DZ2,DZ3,ISING )
+
+
+            NewtonIncrement = SQRT( ( RK_ErrorNorm(N,SCAL,DZ1)**2 + &
+                                RK_ErrorNorm(N,SCAL,DZ2)**2 + &
+                                RK_ErrorNorm(N,SCAL,DZ3)**2 )/3.0d0 )
+            
+            IF ( NewtonIter == 1 ) THEN
+                Theta      = ABS(ThetaMin)
+                NewtonRate = 2.0d0 
+            ELSE
+                Theta = NewtonIncrement/NewtonIncrementOld
+                IF (Theta < 0.99d0) THEN
+                    NewtonRate = Theta/(ONE-Theta)
+                ELSE ! Non-convergence of Newton: Theta too large
+                    EXIT NewtonLoop
+                END IF
+                IF ( NewtonIter < NewtonMaxit ) THEN 
+                  ! Predict error at the end of Newton process 
+                  NewtonPredictedErr = NewtonIncrement &
+                               *Theta**(NewtonMaxit-NewtonIter)/(ONE-Theta)
+                  IF (NewtonPredictedErr >= NewtonTol) THEN
+                    ! Non-convergence of Newton: predicted error too large
+                    Qnewton = MIN(10.0d0,NewtonPredictedErr/NewtonTol)
+                    Fac=0.8d0*Qnewton**(-ONE/(1+NewtonMaxit-NewtonIter))
+                    EXIT NewtonLoop
+                  END IF
+                END IF
+            END IF
+
+            NewtonIncrementOld = MAX(NewtonIncrement,Roundoff) 
+            ! Update solution
+            CALL WAXPY(N,-ONE,DZ1,1,Z1,1) ! Z1 <- Z1 - DZ1
+            CALL WAXPY(N,-ONE,DZ2,1,Z2,1) ! Z2 <- Z2 - DZ2
+            CALL WAXPY(N,-ONE,DZ3,1,Z3,1) ! Z3 <- Z3 - DZ3
+            
+            ! Check error in Newton iterations
+            NewtonDone = (NewtonRate*NewtonIncrement <= NewtonTol)
+            IF (NewtonDone) THEN
+	      NewIt = NewtonIter
+	      EXIT NewtonLoop
+	    END IF  
+   	    IF (NewtonIter == NewtonMaxit) THEN
+		PRINT*, 'Slow or no convergence in Newton Iteration: Max no. of', &
+		 	'Newton iterations reached'
+	    END IF
+
+      END DO NewtonLoop
+
+            
+      IF (.NOT.NewtonDone) THEN
+           !CALL RK_ErrorMsg(-12,T,H,IERR);
+           H = Fac*H; Reject=.TRUE.; SkipJac = .TRUE.;  SkipLU = .FALSE.
+	   ISTATUS(irej) = ISTATUS(irej) + 1
+           CYCLE Tloop
+      END IF
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> SDIRK Stage
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IF (SdirkError) THEN
+
+!~~~>  Starting values for Newton iterations
+       Z4(1:N) = Z3(1:N)
+       
+!~~~>   Prepare the loop-independent part of the right-hand side
+       CALL FUN_CHEM(T,Y,DZ4)
+       ISTATUS(Nfun) = ISTATUS(Nfun) + 1
+       
+!       G = H*rkBgam(0)*DZ4 + rkTheta(1)*Z1 + rkTheta(2)*Z2 + rkTheta(3)*Z3
+       CALL Set2Zero(N, G)
+       CALL WAXPY(N,rkBgam(0)*H, DZ4,1,G,1) 
+       CALL WAXPY(N,rkTheta(1),Z1,1,G,1)
+       CALL WAXPY(N,rkTheta(2),Z2,1,G,1)
+       CALL WAXPY(N,rkTheta(3),Z3,1,G,1)
+
+       !~~~>  Initializations for Newton iteration
+       NewtonDone = .FALSE.
+       Fac = 0.5d0 ! Step reduction factor if too many iterations
+            
+SDNewtonLoop:DO NewtonIter = 1, NewtonMaxit
+
+!~~~>   Prepare the loop-dependent part of the right-hand side
+	    CALL WADD(N,Y,Z4,TMP)         ! TMP <- Y + Z4
+	    CALL FUN_CHEM(T+H,TMP,DZ4) 	  ! DZ4 <- Fun(Y+Z4)         
+            ISTATUS(Nfun) = ISTATUS(Nfun) + 1
+!            DZ4(1:N) = (G(1:N)-Z4(1:N))*(rkGamma/H) + DZ4(1:N)
+	    CALL WAXPY (N, -ONE*rkGamma/H, Z4, 1, DZ4, 1)
+            CALL WAXPY (N, rkGamma/H, G,1, DZ4,1)
+
+!~~~>   Solve the linear system
+#ifdef FULL_ALGEBRA  
+            CALL DGETRS( 'N', N, 1, E1, N, IP1, DZ4, N, ISING )
+#else
+            CALL KppSolve(E1, DZ4)
+#endif
+            
+!~~~>   Check convergence of Newton iterations
+            NewtonIncrement = RK_ErrorNorm(N,SCAL,DZ4)
+            IF ( NewtonIter == 1 ) THEN
+                ThetaSD      = ABS(ThetaMin)
+                NewtonRate = 2.0d0 
+            ELSE
+                ThetaSD = NewtonIncrement/NewtonIncrementOld
+                IF (ThetaSD < 0.99d0) THEN
+                    NewtonRate = ThetaSD/(ONE-ThetaSD)
+                    ! Predict error at the end of Newton process 
+                    NewtonPredictedErr = NewtonIncrement &
+                               *ThetaSD**(NewtonMaxit-NewtonIter)/(ONE-ThetaSD)
+                    IF (NewtonPredictedErr >= NewtonTol) THEN
+                      ! Non-convergence of Newton: predicted error too large
+                      !print*,'Error too large: ', NewtonPredictedErr
+                      Qnewton = MIN(10.0d0,NewtonPredictedErr/NewtonTol)
+                      Fac = 0.8d0*Qnewton**(-ONE/(1+NewtonMaxit-NewtonIter))
+                      EXIT SDNewtonLoop
+                    END IF
+                ELSE ! Non-convergence of Newton: ThetaSD too large
+                    !print*,'Theta too large: ',ThetaSD
+                    EXIT SDNewtonLoop
+                END IF
+            END IF
+            NewtonIncrementOld = NewtonIncrement
+            ! Update solution: Z4 <-- Z4 + DZ4
+            CALL WAXPY(N,ONE,DZ4,1,Z4,1) 
+            
+            ! Check error in Newton iterations
+            NewtonDone = (NewtonRate*NewtonIncrement <= NewtonTol)
+            IF (NewtonDone) EXIT SDNewtonLoop
+            
+            END DO SDNewtonLoop
+            
+            IF (.NOT.NewtonDone) THEN
+                H = Fac*H; Reject=.TRUE.; SkipJac = .TRUE.;  SkipLU = .FALSE.
+                CYCLE Tloop
+            END IF
+      END IF
+!~~~>  End of implified SDIRK Newton iterations
+
+            
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> Error estimation
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IF (SdirkError) THEN
+!         DZ4(1:N) =  rkD(1)*Z1 + rkD(2)*Z2 + rkD(3)*Z3 - Z4    
+	 CALL Set2Zero(N, DZ4)
+	 IF (rkD(1) /= ZERO) CALL WAXPY(N, rkD(1), Z1, 1, DZ4, 1)
+	 IF (rkD(2) /= ZERO) CALL WAXPY(N, rkD(2), Z2, 1, DZ4, 1)
+	 IF (rkD(3) /= ZERO) CALL WAXPY(N, rkD(3), Z3, 1, DZ4, 1)
+	 CALL WAXPY(N, -ONE, Z4, 1, DZ4, 1)
+         Err = RK_ErrorNorm(N,SCAL,DZ4)    
+      ELSE
+         CALL  RK_ErrorEstimate(N,H,Y,T, &
+               E1,IP1,Z1,Z2,Z3,SCAL,Err,FirstStep,Reject)
+      END IF
+!~~~> Computation of new step size Hnew
+      Fac  = Err**(-ONE/rkELO)*          &
+             MIN(FacSafe,(ONE+2*NewtonMaxit)/(NewtonIter+2*NewtonMaxit))
+      Fac  = MIN(FacMax,MAX(FacMin,Fac))
+      Hnew = Fac*H
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> Accept/reject step 
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+accept:IF (Err < ONE) THEN !~~~> STEP IS ACCEPTED
+         IF (AdjointType == KPP_ROOT_discrete) THEN ! Save stage solution
+            ! CALL WCOPY(N,Z1,1,Zstage(1),1)
+            ! CALL WCOPY(N,Z2,1,Zstage(N+1),1)
+            ! CALL WCOPY(N,Z3,1,Zstage(2*N+1),1)
+            Zstage(1:N)       = Z1(1:N) 
+            Zstage(N+1:2*N)   = Z2(1:N)
+            Zstage(2*N+1:3*N) = Z3(1:N)
+	    ! Push old Y - Y at the beginning of the stage
+            CALL rk_DPush(T, H, Y, Zstage, NewIt, E1, E2)
+         END IF
+
+         FirstStep=.FALSE.
+         ISTATUS(iacc) = ISTATUS(iacc) + 1
+         IF (Gustafsson) THEN
+            !~~~> Predictive controller of Gustafsson
+            IF (ISTATUS(iacc) > 1) THEN
+               FacGus=FacSafe*(H/Hacc)*(Err**2/ErrOld)**(-0.25d0)
+               FacGus=MIN(FacMax,MAX(FacMin,FacGus))
+               Fac=MIN(Fac,FacGus)
+               Hnew = Fac*H
+            END IF
+            Hacc=H
+            ErrOld=MAX(1.0d-2,Err)
+         END IF
+         Hold = H
+         T = T+H 
+         ! Update solution: Y <- Y + sum (d_i Z_i)
+         IF (rkD(1) /= ZERO) CALL WAXPY(N,rkD(1),Z1,1,Y,1)
+         IF (rkD(2) /= ZERO) CALL WAXPY(N,rkD(2),Z2,1,Y,1)
+         IF (rkD(3) /= ZERO) CALL WAXPY(N,rkD(3),Z3,1,Y,1)
+         ! Construct the solution quadratic interpolant Q(c_i) = Z_i, i=1:3
+         IF (StartNewton) CALL RK_Interpolate('make',N,H,Hold,Z1,Z2,Z3,CONT)
+         CALL RK_ErrorScale(N,ITOL,AbsTol,RelTol,Y,SCAL)
+         RSTATUS(itexit) = T
+         RSTATUS(ihnew)  = Hnew
+         RSTATUS(ihacc)  = H
+         Hnew = Tdirection*MIN( MAX(ABS(Hnew),Hmin) , Hmax )
+         IF (Reject) Hnew = Tdirection*MIN(ABS(Hnew),ABS(H))
+         Reject = .FALSE.
+         IF ((T+Hnew/Qmin-Tend)*Tdirection >=  ZERO) THEN
+            H = Tend-T
+         ELSE
+            Hratio=Hnew/H
+            ! Reuse the LU decomposition
+            SkipLU = (Theta<=ThetaMin) .AND. (Hratio>=Qmin) .AND. (Hratio<=Qmax)
+	    SkipLU = .false.
+            IF (.NOT.SkipLU) H=Hnew
+         END IF
+         ! If convergence is fast enough, do not update Jacobian
+         ! SkipJac = (Theta <= ThetaMin)
+         SkipJac = .FALSE.
+
+      ELSE accept !~~~> Step is rejected
+         IF (FirstStep .OR. Reject) THEN
+             H = FacRej*H
+         ELSE
+             H = Hnew
+         END IF
+         Reject   = .TRUE.
+         SkipJac  = .TRUE.
+         SkipLU   = .FALSE. 
+         IF (ISTATUS(iacc) >= 1) ISTATUS(irej) = ISTATUS(irej) + 1
+      END IF accept
+      
+    END DO Tloop
+
+!~~~> Save last state: only needed for continuous adjoint
+   IF ( (AdjointType == KPP_ROOT_continuous) .OR. &
+       (AdjointType == KPP_ROOT_simple_continuous) ) THEN
+       CALL Fun_Chem(T,Y,Fcn0)
+       CALL rk_CPush( T, H, Y, Fcn0, DZ3)
+!~~~> Deallocate stage buffer: only needed for discrete adjoint
+   ELSEIF (AdjointType == KPP_ROOT_discrete) THEN 
+        DEALLOCATE(Zstage, STAT=i)
+        IF (i/=0) THEN
+          PRINT*,'Deallocation of Zstage failed'
+          STOP
+        END IF
+   END IF   
+   
+    ! Successful exit
+    IERR = 1  
+
+ END SUBROUTINE RK_FwdIntegrator
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE rk_DadjInt( NADJ,Lambda,Tstart,Tend,T,IERR )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      IMPLICIT NONE
+!~~~> Arguments
+!~~~> Input: the initial condition at Tstart; Output: the solution at T   
+      INTEGER, INTENT(IN)     :: NADJ
+!~~~> First order adjoint   
+      KPP_REAL, INTENT(INOUT) :: Lambda(N,NADJ)
+      KPP_REAL, INTENT(IN)    :: Tstart, Tend
+      KPP_REAL, INTENT(INOUT) :: T
+      INTEGER,  INTENT(OUT)        :: IERR
+
+!~~~> Local variables
+#ifdef FULL_ALGEBRA
+      KPP_REAL    :: Jac0(N,N), Jac1(N,N),Jac2(N,N),Jac3(N,N), E1(N,N)
+      COMPLEX(kind=dp) :: E2(N,N)   
+      KPP_REAL    :: Jbig(3*N,3*N), X(3*N)
+      INTEGER          :: IPbig(3*N)
+#else
+      KPP_REAL, DIMENSION(LU_NONZERO) :: Jac0, Jac1, Jac2, Jac3, E1
+      COMPLEX(kind=dp), DIMENSION(LU_NONZERO) :: E2   
+      ! Next two lines for sparse big algebra:
+      ! KPP_REAL :: Jbig(3,3,LU_NONZERO), X(3,N)
+      ! INTEGER :: IPbig(3,N)
+      KPP_REAL :: Jbig(3*N,3*N), X(3*N)
+      INTEGER :: IPbig(3*N)
+#endif                
+      KPP_REAL, DIMENSION(N,NADJ) :: U1,U2,U3
+      KPP_REAL, DIMENSION(N) :: SCAL,DU1,DU2,DU3
+      KPP_REAL :: Y(N), Zstage(3*N)
+      KPP_REAL  :: H, NewtonRate, NewtonIncrement, NewtonIncrementOld
+      INTEGER :: IP1(N),IP2(N),NewtonIter, ISING, iadj, NewIt
+      LOGICAL :: Reject, NewtonDone, NewtonConverge
+      KPP_REAL :: T1, Theta
+      KPP_REAL, DIMENSION(N) :: TMP, G1, G2, G3
+      INTEGER :: info, i, j
+            
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Initial setting
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      T1 = Tend      
+!      Tdirection = SIGN(ONE,Tend-Tstart)
+      NewtonConverge = .TRUE.
+      Reject = .FALSE.
+      
+!~~~> Time loop begins below 
+TimeLoop:DO WHILE ( stack_ptr > 0 )
+
+   IF (.not.Reject) THEN
+   
+     !~~~>  Recover checkpoints for stage values and vectors
+     CALL rk_DPop(T, H, Y, Zstage, NewIt, E1, E2)
+
+     !~~~>  Compute LU decomposition 
+     IF (.NOT.SaveLU) THEN
+        !~~~> Compute the Jacobian matrix
+        CALL JAC_CHEM(T,Y,Jac0)
+        ISTATUS(ijac) = ISTATUS(ijac) + 1
+        !~~~> Compute the matrices E1 and E2 and their decompositions
+        CALL RK_Decomp(N,H,Jac0,E1,IP1,E2,IP2,ISING)
+     END IF
+   
+     !~~~>   Jacobian values at stage vectors
+     CALL WADD(N,Y,Zstage(1),TMP)       ! TMP  <- Y + Z1
+     CALL JAC_CHEM(T+rkC(1)*H,TMP,Jac1) ! Jac1 <- Jac(Y+Z1)  
+     CALL WADD(N,Y,Zstage(1+N),TMP)     ! TMP  <- Y + Z2
+     CALL JAC_CHEM(T+rkC(2)*H,TMP,Jac2) ! Jac2 <- Jac(Y+Z2)  
+     CALL WADD(N,Y,Zstage(1+2*N),TMP)   ! TMP  <- Y + Z3
+     CALL JAC_CHEM(T+rkC(3)*H,TMP,Jac3) ! Jac3 <- Jac(Y+Z3)
+      
+   END IF ! .not.Reject
+
+111 CONTINUE
+
+   IF ( (AdjointSolve == Solve_adaptive .and. .not.NewtonConverge) &
+         .or. (AdjointSolve == Solve_direct) ) THEN
+#ifdef FULL_ALGEBRA  
+       DO j=1,N
+         DO i=1,N
+          Jbig(i,j)         = -H*rkA(1,1)*Jac1(i,j)
+          Jbig(N+i,j)       = -H*rkA(2,1)*Jac1(i,j)
+          Jbig(2*N+i,j)     = -H*rkA(3,1)*Jac1(i,j)
+          Jbig(i,N+j)       = -H*rkA(1,2)*Jac2(i,j)
+          Jbig(N+i,N+j)     = -H*rkA(2,2)*Jac2(i,j)
+          Jbig(2*N+i,N+j)   = -H*rkA(3,2)*Jac2(i,j)
+          Jbig(i,2*N+j)     = -H*rkA(1,3)*Jac3(i,j)
+          Jbig(N+i,2*N+j)   = -H*rkA(2,3)*Jac3(i,j)
+          Jbig(2*N+i,2*N+j) = -H*rkA(3,3)*Jac3(i,j)
+         END DO  
+       END DO
+       DO i=1,3*N
+	  Jbig(i,i) = Jbig(i,i) + ONE
+       END DO
+       CALL DGETRF(3*N,3*N,Jbig,3*N,IPbig,info) 
+       ! CALL WGEFA(3*N,Jbig,IPbig,info) 
+       IF (info /= 0) THEN
+         PRINT*,'Big guy is singular'; STOP
+       END IF 
+#else    
+!  Commented lines for sparse big algebra:    
+!      !~~~>  Construct the big Jacobian
+!      DO j=1,LU_NONZERO
+!        DO i=1,3
+!          Jbig(i,1,j) = -H*rkA(i,1)*Jac1(j)
+!          Jbig(i,2,j) = -H*rkA(i,2)*Jac2(j)
+!          Jbig(i,3,j) = -H*rkA(i,3)*Jac3(j)
+!        END DO
+!      END DO
+!      DO j=1,NVAR
+!        DO i=1,3
+!          Jbig(i,i,LU_DIAG(j)) = ONE + Jbig(i,i,LU_DIAG(j))
+!        END DO
+!      END DO
+!      !~~~>  Solve the big system
+!      CALL KppDecompBig( Jbig, IPbig, info )
+!  Use full big algebra:    
+      Jbig(1:3*N,1:3*N) = 0.0d0
+      DO i=1,LU_NONZERO
+	  Jbig(LU_irow(i),LU_icol(i))         = -H*rkA(1,1)*Jac1(i)
+	  Jbig(LU_irow(i),N+LU_icol(i))       = -H*rkA(1,2)*Jac2(i)
+	  Jbig(LU_irow(i),2*N+LU_icol(i))     = -H*rkA(1,3)*Jac3(i)
+	  Jbig(N+LU_irow(i),LU_icol(i))       = -H*rkA(2,1)*Jac1(i)
+	  Jbig(N+LU_irow(i),N+LU_icol(i))     = -H*rkA(2,2)*Jac2(i)
+	  Jbig(N+LU_irow(i),2*N+LU_icol(i))   = -H*rkA(2,3)*Jac3(i)
+	  Jbig(2*N+LU_irow(i),LU_icol(i))     = -H*rkA(3,1)*Jac1(i)
+	  Jbig(2*N+LU_irow(i),N+LU_icol(i))   = -H*rkA(3,2)*Jac2(i)
+	  Jbig(2*N+LU_irow(i),2*N+LU_icol(i)) = -H*rkA(3,3)*Jac3(i)
+      END DO
+      DO i=1, 3*N
+	 Jbig(i,i) = ONE + Jbig(i,i)
+      END DO
+      ! CALL DGETRF(3*N,3*N,Jbig,3*N,IPbig,info) 
+      CALL WGEFA(3*N,Jbig,IPbig,info) 
+      IF (info /= 0) THEN
+         PRINT*,'Big guy is singular'; STOP
+      END IF
+#endif        
+    END IF
+      
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Loop for the simplified Newton iterations
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Adj:DO iadj = 1, NADJ      
+      !~~~>  Starting values for Newton iteration
+      ! CALL WCOPY(N,Lambda(1,iadj),1,U1(1,iadj),1)
+      ! CALL WCOPY(N,Lambda(1,iadj),1,U2(1,iadj),1)
+      ! CALL WCOPY(N,Lambda(1,iadj),1,U3(1,iadj),1)
+      CALL Set2Zero(N,U1(1,iadj))
+      CALL Set2Zero(N,U2(1,iadj))
+      CALL Set2Zero(N,U3(1,iadj))
+      
+      !~~~>  Initializations for Newton iteration
+      NewtonDone = .FALSE.
+      !~~~>    Right Hand Side - part G for all Newton iterations
+      CALL RK_PrepareRHS_G(N,H,Jac1,Jac2,Jac3,Lambda(1,iadj), 	      &
+      			G1, G2, G3)
+			
+      IF ( (AdjointSolve == Solve_adaptive .and. NewtonConverge)      &
+            .or. (AdjointSolve == Solve_fixed) ) THEN
+
+NewtonLoopAdj:DO  NewtonIter = 1, NewtonMaxit  
+
+            !~~~> Prepare the right-hand side
+            CALL RK_PrepareRHS_Adj(N,H,Jac1,Jac2,Jac3,Lambda(1,iadj), &
+	    		U1(1,iadj),U2(1,iadj),U3(1,iadj),	      &
+			G1, G2, G3, DU1,DU2,DU3)
+
+            !~~~> Solve the linear systems
+            CALL RK_SolveTR( N,H,E1,IP1,E2,IP2,DU1,DU2,DU3,ISING )
+
+!~~~> The following code performs an adaptive number of Newton
+!     iterations for solving adjoint system
+            IF (AdjointSolve == Solve_adaptive) THEN
+
+            CALL RK_ErrorScale(N,ITOL,                      &
+                 AbsTol_adj(1:N,iadj),RelTol_adj(1:N,iadj), &
+                 Lambda(1:N,iadj),SCAL)
+
+	    ! SCAL(1:N) = 1.0d0
+            NewtonIncrement = SQRT( ( RK_ErrorNorm(N,SCAL,DU1)**2 +   &
+                                RK_ErrorNorm(N,SCAL,DU2)**2 +         &
+                                RK_ErrorNorm(N,SCAL,DU3)**2 )/3.0d0 )
+            
+	
+            IF ( NewtonIter == 1 ) THEN
+                Theta      = ABS(ThetaMin)
+                NewtonRate = 2.0d0 
+            ELSE
+                Theta = NewtonIncrement/NewtonIncrementOld
+                IF (Theta < 0.99d0) THEN
+                    NewtonRate = Theta/(ONE-Theta)
+                ELSE ! Non-convergence of Newton: Theta too large
+		    Reject = .TRUE.
+		    NewtonDone = .FALSE.
+                    EXIT NewtonLoopAdj
+                END IF
+
+            END IF
+	  
+            NewtonIncrementOld = MAX(NewtonIncrement,Roundoff) 
+
+            END IF ! (AdjointSolve == Solve_adaptive)
+            
+            ! Update solution
+            CALL WAXPY(N,-ONE,DU1,1,U1(1,iadj),1) ! U1 <- U1 - DU1
+            CALL WAXPY(N,-ONE,DU2,1,U2(1,iadj),1) ! U2 <- U2 - DU2
+            CALL WAXPY(N,-ONE,DU3,1,U3(1,iadj),1) ! U3 <- U3 - DU3
+
+            IF (AdjointSolve == Solve_adaptive) THEN
+            ! When performing an adaptive number of iterations
+            !       check the error in Newton iterations
+               NewtonDone = (NewtonRate*NewtonIncrement <= NewtonTol)
+               IF ((NewtonDone).and.(NewtonIter>NewIt+1)) EXIT NewtonLoopAdj
+            ELSE IF (AdjointSolve == Solve_fixed) THEN
+               IF (NewtonIter>MAX(NewIt+1,6)) EXIT NewtonLoopAdj
+            END IF   
+            
+      END DO NewtonLoopAdj
+      
+      IF ((AdjointSolve==Solve_adaptive).AND.(.NOT.NewtonDone)) THEN
+         ! print*,'Newton iterations do not converge, switching to full system.'
+	 NewtonConverge = .FALSE.
+	 Reject = .TRUE.
+	 GOTO 111
+      END IF
+      
+      ! Update adjoint solution: Y_adj <- Y_adj + sum (U_i)
+      CALL WAXPY(N,ONE,U1(1,iadj),1,Lambda(1,iadj),1)
+      CALL WAXPY(N,ONE,U2(1,iadj),1,Lambda(1,iadj),1)
+      CALL WAXPY(N,ONE,U3(1,iadj),1,Lambda(1,iadj),1)
+
+      ELSE ! NewtonConverge = .false.
+
+#ifdef FULL_ALGEBRA  
+	X(1:N)       = -G1(1:N)
+	X(N+1:2*N)   = -G2(1:N)
+	X(2*N+1:3*N) = -G3(1:N)
+	CALL DGETRS('T',3*N,1,Jbig,3*N,IPbig,X,3*N,0) 
+        ! CALL WGESL('T',3*N,Jbig,IPbig,X)
+	Lambda(1:N,iadj) = Lambda(1:N,iadj)+X(1:N)+X(N+1:2*N)+X(2*N+1:3*N)
+#else        
+!   Commented lines for sparse big algebra:
+!	X(1,1:N) = -G1(1:N)
+!	X(2,1:N) = -G2(1:N)
+!	X(3,1:N) = -G3(1:N)
+!	CALL KppSolveBigTR( Jbig, IPbig, X )                
+!	Lambda(1:N,iadj) = Lambda(1:N,iadj)+X(1,1:N)+X(2,1:N)+X(3,1:N)
+!   Use fill big algebra:
+	X(1:N)       = -G1(1:N)
+	X(N+1:2*N)   = -G2(1:N)
+	X(2*N+1:3*N) = -G3(1:N)
+	! CALL DGETRS('T',3*N,1,Jbig,3*N,IPbig,X,3*N,0) 
+        CALL WGESL('T',3*N,Jbig,IPbig,X)
+	Lambda(1:N,iadj) = Lambda(1:N,iadj)+X(1:N)+X(N+1:2*N)+X(2*N+1:3*N)
+#endif        
+        IF ((AdjointSolve==Solve_adaptive).AND.(iadj>=NADJ)) THEN
+	  NewtonConverge = .TRUE.
+	  Reject = .FALSE.
+        END IF
+     
+     END IF ! NewtonConverge
+ 
+   END DO Adj
+   
+   T1 = T1-H
+      
+   END DO TimeLoop
+   
+    ! Successful exit
+    IERR = 1  
+
+ END SUBROUTINE RK_DadjInt
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE rk_CadjInt (                        &
+        NADJ, Y,                                &
+        Tstart, Tend, T, IERR)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+!~~~> Arguments
+!~~~> Input: the initial condition at Tstart; Output: the solution at T   
+      INTEGER, INTENT(IN)     :: NADJ
+!~~~> First order adjoint   
+      KPP_REAL, INTENT(INOUT) :: Y(N,NADJ)
+      KPP_REAL, INTENT(IN)    :: Tstart, Tend
+      KPP_REAL, INTENT(INOUT) :: T
+      INTEGER,  INTENT(OUT)        :: IERR
+
+  END SUBROUTINE rk_CadjInt
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE rk_SimpleCadjInt (                  &
+        NADJ, Y,                                &
+        Tstart, Tend, T,                        &
+        IERR )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+!~~~> Arguments
+!~~~> Input: the initial condition at Tstart; Output: the solution at T   
+      INTEGER, INTENT(IN)     :: NADJ
+!~~~> First order adjoint   
+      KPP_REAL, INTENT(INOUT) :: Y(N,NADJ)
+      KPP_REAL, INTENT(IN)    :: Tstart, Tend
+      KPP_REAL, INTENT(INOUT) :: T
+      INTEGER,  INTENT(OUT)        :: IERR
+
+  END SUBROUTINE rk_SimpleCadjInt
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE RK_ErrorMsg(Code,T,H,IERR)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!    Handles all error messages
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+   IMPLICIT NONE
+   KPP_REAL, INTENT(IN) :: T, H
+   INTEGER, INTENT(IN)  :: Code
+   INTEGER, INTENT(OUT) :: IERR
+
+   IERR = Code
+   PRINT * , &
+     'Forced exit from RungeKutta due to the following error:'
+
+
+   SELECT CASE (Code)
+    CASE (-1)
+      PRINT * , '--> Improper value for maximal no of steps'
+    CASE (-2)
+      PRINT * , '--> Improper value for maximal no of Newton iterations'
+    CASE (-3)
+      PRINT * , '--> Hmin/Hmax/Hstart must be positive'
+    CASE (-4)
+      PRINT * , '--> Improper values for FacMin/FacMax/FacSafe/FacRej'
+    CASE (-5)
+      PRINT * , '--> Improper value for ThetaMin'
+    CASE (-6)
+      PRINT * , '--> Newton stopping tolerance too small'
+    CASE (-7)
+      PRINT * , '--> Improper values for Qmin, Qmax'
+    CASE (-8)
+      PRINT * , '--> Tolerances are too small'
+    CASE (-9)
+      PRINT * , '--> No of steps exceeds maximum bound'
+    CASE (-10)
+      PRINT * , '--> Step size too small: T + 10*H = T', &
+            ' or H < Roundoff'
+    CASE (-11)
+      PRINT * , '--> Matrix is repeatedly singular'
+    CASE (-12)
+      PRINT * , '--> Non-convergence of Newton iterations'
+    CASE (-13)
+      PRINT * , '--> Requested RK method not implemented'
+    CASE DEFAULT
+      PRINT *, 'Unknown Error code: ', Code
+   END SELECT
+
+   WRITE(6,FMT="(5X,'T=',E12.5,'  H=',E12.5)") T, H 
+
+ END SUBROUTINE RK_ErrorMsg
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE RK_ErrorScale(N,ITOL,AbsTol,RelTol,Y,SCAL)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!    Handles all error messages
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   IMPLICIT NONE
+   INTEGER, INTENT(IN)  :: N, ITOL
+   KPP_REAL, INTENT(IN) :: AbsTol(*), RelTol(*), Y(N)
+   KPP_REAL, INTENT(OUT) :: SCAL(N)
+   INTEGER :: i
+   
+   IF (ITOL==0) THEN
+       DO i=1,N
+          SCAL(i)= ONE/(AbsTol(1)+RelTol(1)*ABS(Y(i)))
+       END DO
+   ELSE
+       DO i=1,N
+          SCAL(i)=ONE/(AbsTol(i)+RelTol(i)*ABS(Y(i)))
+       END DO
+   END IF
+      
+ END SUBROUTINE RK_ErrorScale
+
+
+!!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!  SUBROUTINE RK_Transform(N,Tr,Z1,Z2,Z3,W1,W2,W3)
+!!~~~>                 W <-- Tr x Z
+!!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!      IMPLICIT NONE
+!      INTEGER :: N, i
+!      KPP_REAL :: Tr(3,3),Z1(N),Z2(N),Z3(N),W1(N),W2(N),W3(N)
+!      KPP_REAL :: x1, x2, x3
+!      DO i=1,N
+!          x1 = Z1(i); x2 = Z2(i); x3 = Z3(i)
+!          W1(i) = Tr(1,1)*x1 + Tr(1,2)*x2 + Tr(1,3)*x3
+!          W2(i) = Tr(2,1)*x1 + Tr(2,2)*x2 + Tr(2,3)*x3
+!          W3(i) = Tr(3,1)*x1 + Tr(3,2)*x2 + Tr(3,3)*x3
+!      END DO
+!  END SUBROUTINE RK_Transform
+ 
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE RK_Interpolate(action,N,H,Hold,Z1,Z2,Z3,CONT)
+!~~~>   Constructs or evaluates a quadratic polynomial
+!         that interpolates the Z solution at current step
+!         and provides starting values for the next step
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      INTEGER :: N, i
+      KPP_REAL :: H,Hold,Z1(N),Z2(N),Z3(N),CONT(N,3)
+      KPP_REAL :: r, x1, x2, x3, den
+      CHARACTER(LEN=4) :: action
+       
+      SELECT CASE (action) 
+      CASE ('make')
+         ! Construct the solution quadratic interpolant Q(c_i) = Z_i, i=1:3
+         den = (rkC(3)-rkC(2))*(rkC(2)-rkC(1))*(rkC(1)-rkC(3))
+         DO i=1,N
+             CONT(i,1)=(-rkC(3)**2*rkC(2)*Z1(i)+Z3(i)*rkC(2)*rkC(1)**2 &
+                        +rkC(2)**2*rkC(3)*Z1(i)-rkC(2)**2*rkC(1)*Z3(i) &
+                        +rkC(3)**2*rkC(1)*Z2(i)-Z2(i)*rkC(3)*rkC(1)**2)&
+                        /den-Z3(i)
+             CONT(i,2)= -( rkC(1)**2*(Z3(i)-Z2(i)) + rkC(2)**2*(Z1(i)  &
+                          -Z3(i)) +rkC(3)**2*(Z2(i)-Z1(i)) )/den
+             CONT(i,3)= ( rkC(1)*(Z3(i)-Z2(i)) + rkC(2)*(Z1(i)-Z3(i))  &
+                           +rkC(3)*(Z2(i)-Z1(i)) )/den
+         END DO
+      CASE ('eval')
+          ! Evaluate quadratic polynomial
+          r = H/Hold
+         x1 = ONE + rkC(1)*r
+         x2 = ONE + rkC(2)*r
+         x3 = ONE + rkC(3)*r
+         DO i=1,N
+            Z1(i) = CONT(i,1)+x1*(CONT(i,2)+x1*CONT(i,3))
+            Z2(i) = CONT(i,1)+x2*(CONT(i,2)+x2*CONT(i,3))
+            Z3(i) = CONT(i,1)+x3*(CONT(i,2)+x3*CONT(i,3))
+         END DO
+       END SELECT   
+  END SUBROUTINE RK_Interpolate
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE RK_PrepareRHS(N,T,H,Y,Z1,Z2,Z3,R1,R2,R3)
+!~~~> Prepare the right-hand side for Newton iterations
+!     R = Z - hA x F
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      
+      INTEGER :: N
+      KPP_REAL :: T,H
+      KPP_REAL, DIMENSION(N) :: Y,Z1,Z2,Z3,F,R1,R2,R3,TMP
+
+      CALL WCOPY(N,Z1,1,R1,1) ! R1 <- Z1
+      CALL WCOPY(N,Z2,1,R2,1) ! R2 <- Z2
+      CALL WCOPY(N,Z3,1,R3,1) ! R3 <- Z3
+
+      CALL WADD(N,Y,Z1,TMP)              ! TMP <- Y + Z1
+      CALL FUN_CHEM(T+rkC(1)*H,TMP,F)    ! F1 <- Fun(Y+Z1)         
+      CALL WAXPY(N,-H*rkA(1,1),F,1,R1,1) ! R1 <- R1 - h*A_11*F1
+      CALL WAXPY(N,-H*rkA(2,1),F,1,R2,1) ! R2 <- R2 - h*A_21*F1
+      CALL WAXPY(N,-H*rkA(3,1),F,1,R3,1) ! R3 <- R3 - h*A_31*F1
+
+      CALL WADD(N,Y,Z2,TMP)              ! TMP <- Y + Z2
+      CALL FUN_CHEM(T+rkC(2)*H,TMP,F)    ! F2 <- Fun(Y+Z2)        
+      CALL WAXPY(N,-H*rkA(1,2),F,1,R1,1) ! R1 <- R1 - h*A_12*F2
+      CALL WAXPY(N,-H*rkA(2,2),F,1,R2,1) ! R2 <- R2 - h*A_22*F2
+      CALL WAXPY(N,-H*rkA(3,2),F,1,R3,1) ! R3 <- R3 - h*A_32*F2
+
+      CALL WADD(N,Y,Z3,TMP)              ! TMP <- Y + Z3
+      CALL FUN_CHEM(T+rkC(3)*H,TMP,F)    ! F3 <- Fun(Y+Z3)     
+      CALL WAXPY(N,-H*rkA(1,3),F,1,R1,1) ! R1 <- R1 - h*A_13*F3
+      CALL WAXPY(N,-H*rkA(2,3),F,1,R2,1) ! R2 <- R2 - h*A_23*F3
+      CALL WAXPY(N,-H*rkA(3,3),F,1,R3,1) ! R3 <- R3 - h*A_33*F3
+            
+  END SUBROUTINE RK_PrepareRHS
+  
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE RK_PrepareRHS_Adj(N,H,Jac1,Jac2,Jac3,Lambda, &
+                      U1,U2,U3,G1,G2,G3,R1,R2,R3)
+!~~~> Prepare the right-hand side for Newton iterations
+!     R = Z_adj - hA x Jac*Z_adj - h J^t b lambda
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      
+      INTEGER, INTENT(IN) :: N
+      KPP_REAL, INTENT(IN) :: H
+      KPP_REAL, DIMENSION(N), INTENT(IN) :: U1,U2,U3,Lambda,G1,G2,G3
+      KPP_REAL, DIMENSION(N), INTENT(OUT) :: R1,R2,R3
+#ifdef FULL_ALGEBRA      
+      KPP_REAL, DIMENSION(N,N), INTENT(IN) :: Jac1, Jac2, Jac3
+#else      
+      KPP_REAL, DIMENSION(LU_NONZERO),INTENT(IN) :: Jac1, Jac2, Jac3
+#endif
+      KPP_REAL, DIMENSION(N) ::  F,TMP
+
+
+      CALL WCOPY(N,G1,1,R1,1) ! R1 <- G1
+      CALL WCOPY(N,G2,1,R2,1) ! R2 <- G2
+      CALL WCOPY(N,G3,1,R3,1) ! R3 <- G3
+
+      CALL SET2ZERO(N,F)
+      CALL WAXPY(N,-H*rkA(1,1),U1,1,F,1) ! F1 <- -h*A_11*U1
+      CALL WAXPY(N,-H*rkA(2,1),U2,1,F,1) ! F1 <- F1 - h*A_21*U2
+      CALL WAXPY(N,-H*rkA(3,1),U3,1,F,1) ! F1 <- F1 - h*A_31*U3
+#ifdef FULL_ALGEBRA  
+      TMP = MATMUL(TRANSPOSE(Jac1),F)    
+#else      
+      CALL JacTR_SP_Vec ( Jac1, F, TMP )   ! R1 <- -Jac(Y+Z1)^t*h*sum(A_j1*U_j)  
+#endif      
+      CALL WAXPY(N,ONE,U1,1,TMP,1) ! R1 <- U1 -Jac(Y+Z1)^t*h*sum(A_j1*U_j)
+      CALL WAXPY(N,ONE,TMP,1,R1,1) ! R1 <- U1 -Jac(Y+Z1)^t*h*sum(A_j1*U_j)
+
+      CALL SET2ZERO(N,F)
+      CALL WAXPY(N,-H*rkA(1,2),U1,1,F,1) ! F2 <- -h*A_11*U1
+      CALL WAXPY(N,-H*rkA(2,2),U2,1,F,1) ! F2 <- F2 - h*A_21*U2
+      CALL WAXPY(N,-H*rkA(3,2),U3,1,F,1) ! F2 <- F2 - h*A_31*U3
+#ifdef FULL_ALGEBRA  
+      TMP = MATMUL(TRANSPOSE(Jac2),F)    
+#else      
+      CALL JacTR_SP_Vec ( Jac2, F, TMP )   ! R2 <- -Jac(Y+Z2)^t*h*sum(A_j2*U_j)  
+#endif      
+      CALL WAXPY(N,ONE,U2,1,TMP,1) ! R2 <- U2 -Jac(Y+Z2)^t*h*sum(A_j2*U_j)
+      CALL WAXPY(N,ONE,TMP,1,R2,1) ! R2 <- U2 -Jac(Y+Z2)^t*h*sum(A_j2*U_j)
+
+      CALL SET2ZERO(N,F)
+      CALL WAXPY(N,-H*rkA(1,3),U1,1,F,1) ! F3 <- -h*A_11*U1
+      CALL WAXPY(N,-H*rkA(2,3),U2,1,F,1) ! F3 <- F3 - h*A_21*U2
+      CALL WAXPY(N,-H*rkA(3,3),U3,1,F,1) ! F3 <- F3 - h*A_31*U3
+#ifdef FULL_ALGEBRA  
+      TMP = MATMUL(TRANSPOSE(Jac3),F)    
+#else      
+      CALL JacTR_SP_Vec ( Jac3, F, TMP )   ! R3 <- -Jac(Y+Z3)^t*h*sum(A_j3*U_j)  
+#endif      
+      CALL WAXPY(N,ONE,U3,1,TMP,1) ! R3 <- U3 -Jac(Y+Z3)^t*h*sum(A_j3*U_j)
+      CALL WAXPY(N,ONE,TMP,1,R3,1) ! R3 <- U3 -Jac(Y+Z3)^t*h*sum(A_j3*U_j)
+
+
+  END SUBROUTINE RK_PrepareRHS_Adj
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE RK_PrepareRHS_G(N,H,Jac1,Jac2,Jac3,Lambda, &
+                      G1,G2,G3)
+!~~~> Prepare the right-hand side for Newton iterations
+!     R = Z_adj - hA x Jac*Z_adj - h J^t b lambda
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      
+      INTEGER, INTENT(IN) :: N
+      KPP_REAL, INTENT(IN) :: H
+      KPP_REAL, DIMENSION(N), INTENT(IN) :: Lambda
+      KPP_REAL, DIMENSION(N), INTENT(OUT) :: G1,G2,G3
+#ifdef FULL_ALGEBRA      
+      KPP_REAL, DIMENSION(N,N), INTENT(IN) :: Jac1, Jac2, Jac3
+#else      
+      KPP_REAL, DIMENSION(LU_NONZERO),INTENT(IN) :: Jac1, Jac2, Jac3
+#endif
+      KPP_REAL, DIMENSION(N) ::  F  
+
+      CALL SET2ZERO(N,G1)
+      CALL SET2ZERO(N,G2)
+      CALL SET2ZERO(N,G3)
+#ifdef FULL_ALGEBRA  
+      F = MATMUL(TRANSPOSE(Jac1),Lambda)    
+#else      
+      CALL JacTR_SP_Vec ( Jac1, Lambda, F )   ! F1 <- Jac(Y+Z1)^t*Lambda  
+#endif      
+      CALL WAXPY(N,-H*rkB(1),F,1,G1,1) ! R1 <- R1 - h*B_1*F1
+
+#ifdef FULL_ALGEBRA      
+      F = MATMUL(TRANSPOSE(Jac2),Lambda)    
+#else      
+      CALL JacTR_SP_Vec ( Jac2, Lambda, F )   ! F2 <- Jac(Y+Z2)^t*Lambda  
+#endif      
+      CALL WAXPY(N,-H*rkB(2),F,1,G2,1) ! R2 <- R2 - h*B_2*F2
+
+#ifdef FULL_ALGEBRA      
+      F = MATMUL(TRANSPOSE(Jac3),Lambda)    
+#else      
+      CALL JacTR_SP_Vec ( Jac3, Lambda, F )   ! F3 <- Jac(Y+Z3)^t*Lambda  
+#endif      
+      CALL WAXPY(N,-H*rkB(3),F,1,G3,1) ! R3 <- R3 - h*B_3*F3
+
+            
+  END SUBROUTINE RK_PrepareRHS_G
+  
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE RK_Decomp(N,H,FJAC,E1,IP1,E2,IP2,ISING)
+   !~~~> Compute the matrices E1 and E2 and their decompositions
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      
+      INTEGER :: N, ISING
+      KPP_REAL    :: H, Alpha, Beta, Gamma
+#ifdef FULL_ALGEBRA      
+      KPP_REAL    :: FJAC(N,N),E1(N,N)
+      COMPLEX(kind=dp) :: E2(N,N)
+#else      
+      KPP_REAL    :: FJAC(LU_NONZERO),E1(LU_NONZERO)
+      COMPLEX(kind=dp) :: E2(LU_NONZERO)
+#endif      
+      INTEGER :: IP1(N), IP2(N), i, j
+      
+      Gamma = rkGamma/H
+      Alpha = rkAlpha/H
+      Beta  = rkBeta /H
+
+#ifdef FULL_ALGEBRA      
+      DO j=1,N
+         DO  i=1,N
+            E1(i,j)=-FJAC(i,j)
+         END DO
+         E1(j,j)=E1(j,j)+Gamma
+      END DO
+      CALL DGETRF(N,N,E1,N,IP1,ISING) 
+#else      
+      DO i=1,LU_NONZERO
+         E1(i)=-FJAC(i)
+      END DO
+      DO i=1,N
+         j=LU_DIAG(i); E1(j)=E1(j)+Gamma
+      END DO
+      CALL KppDecomp(E1,ISING)
+#endif      
+      
+      IF (ISING /= 0) THEN
+         ISTATUS(idec) = ISTATUS(idec) + 1
+         RETURN
+      END IF
+     
+#ifdef FULL_ALGEBRA      
+      DO j=1,N
+        DO i=1,N
+          E2(i,j) = DCMPLX( -FJAC(i,j), ZERO )
+        END DO
+        E2(j,j) = E2(j,j) + CMPLX( Alpha, Beta )
+      END DO
+      CALL ZGETRF(N,N,E2,N,IP2,ISING)     
+#else  
+      DO i=1,LU_NONZERO
+         E2(i) = DCMPLX( -FJAC(i), ZERO )
+      END DO
+      DO i=1,N
+         j = LU_DIAG(i); E2(j)=E2(j) + CMPLX( Alpha, Beta )
+      END DO
+      CALL KppDecompCmplx(E2,ISING)    
+#endif      
+      ISTATUS(idec) = ISTATUS(idec) + 1
+      
+   END SUBROUTINE RK_Decomp
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE RK_Solve(N,H,E1,IP1,E2,IP2,R1,R2,R3,ISING)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      INTEGER :: N,IP1(N),IP2(N),ISING
+#ifdef FULL_ALGEBRA      
+      KPP_REAL    :: E1(N,N)
+      COMPLEX(kind=dp) :: E2(N,N)
+#else      
+      KPP_REAL    :: E1(LU_NONZERO)
+      COMPLEX(kind=dp) :: E2(LU_NONZERO)
+#endif      
+      KPP_REAL    :: R1(N),R2(N),R3(N)
+      KPP_REAL    :: H, x1, x2, x3
+      COMPLEX(kind=dp) :: BC(N)
+      INTEGER :: i
+!      
+     ! Z <- h^{-1) T^{-1) A^{-1) x Z
+      DO i=1,N
+          x1 = R1(i)/H; x2 = R2(i)/H; x3 = R3(i)/H
+          R1(i) = rkTinvAinv(1,1)*x1 + rkTinvAinv(1,2)*x2 + rkTinvAinv(1,3)*x3
+          R2(i) = rkTinvAinv(2,1)*x1 + rkTinvAinv(2,2)*x2 + rkTinvAinv(2,3)*x3
+          R3(i) = rkTinvAinv(3,1)*x1 + rkTinvAinv(3,2)*x2 + rkTinvAinv(3,3)*x3
+      END DO
+
+#ifdef FULL_ALGEBRA      
+      CALL DGETRS ('N',N,1,E1,N,IP1,R1,N,0) 
+#else      
+      CALL KppSolve (E1,R1)
+#endif      
+!      
+      DO i=1,N
+        BC(i) = DCMPLX(R2(i),R3(i))
+      END DO
+#ifdef FULL_ALGEBRA      
+      CALL ZGETRS ('N',N,1,E2,N,IP2,BC,N,0) 
+#else      
+      CALL KppSolveCmplx (E2,BC)
+#endif      
+      DO i=1,N
+        R2(i) = DBLE( BC(i) )
+        R3(i) = AIMAG( BC(i) )
+      END DO
+
+      ! Z <- T x Z
+      DO i=1,N
+          x1 = R1(i); x2 = R2(i); x3 = R3(i)
+          R1(i) = rkT(1,1)*x1 + rkT(1,2)*x2 + rkT(1,3)*x3
+          R2(i) = rkT(2,1)*x1 + rkT(2,2)*x2 + rkT(2,3)*x3
+          R3(i) = rkT(3,1)*x1 + rkT(3,2)*x2 + rkT(3,3)*x3
+      END DO
+
+      ISTATUS(isol) = ISTATUS(isol) + 1
+
+   END SUBROUTINE RK_Solve
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE RK_SolveTR(N,H,E1,IP1,E2,IP2,R1,R2,R3,ISING)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      INTEGER, INTENT(IN)  :: N,IP1(N),IP2(N)
+      INTEGER, INTENT(OUT) :: ISING
+#ifdef FULL_ALGEBRA      
+      KPP_REAL,    INTENT(IN) :: E1(N,N)
+      COMPLEX(kind=dp), INTENT(IN) :: E2(N,N)
+#else      
+      KPP_REAL,    INTENT(IN) :: E1(LU_NONZERO)
+      COMPLEX(kind=dp), INTENT(IN) :: E2(LU_NONZERO)
+#endif      
+      KPP_REAL, INTENT(INOUT) :: R1(N),R2(N),R3(N)
+      KPP_REAL    :: H, x1, x2, x3
+      COMPLEX(kind=dp) :: BC(N)
+      INTEGER :: i
+!      
+     ! RHS <- h^{-1) (A^{-1) T^{-1))^t x RHS
+      DO i=1,N
+          x1 = R1(i)/H; x2 = R2(i)/H; x3 = R3(i)/H
+          R1(i) = rkAinvT(1,1)*x1 + rkAinvT(2,1)*x2 + rkAinvT(3,1)*x3
+          R2(i) = rkAinvT(1,2)*x1 + rkAinvT(2,2)*x2 + rkAinvT(3,2)*x3
+          R3(i) = rkAinvT(1,3)*x1 + rkAinvT(2,3)*x2 + rkAinvT(3,3)*x3
+      END DO
+
+#ifdef FULL_ALGEBRA      
+      CALL DGETRS ('T',N,1,E1,N,IP1,R1,N,0) 
+#else      
+      CALL KppSolveTR (E1,R1,R1)
+#endif      
+!      
+      DO i=1,N
+        BC(i) = DCMPLX(R2(i),-R3(i))
+      END DO
+#ifdef FULL_ALGEBRA      
+      CALL ZGETRS ('T',N,1,E2,N,IP2,BC,N,0) 
+#else      
+      CALL KppSolveTRCmplx (E2,BC)
+#endif      
+      DO i=1,N
+        R2(i) = DBLE( BC(i) )
+        R3(i) = -AIMAG( BC(i) )
+      END DO
+
+      ! X <- (T^{-1})^t x X
+      DO i=1,N
+          x1 = R1(i); x2 = R2(i); x3 = R3(i)
+          R1(i) = rkTinv(1,1)*x1 + rkTinv(2,1)*x2 + rkTinv(3,1)*x3
+          R2(i) = rkTinv(1,2)*x1 + rkTinv(2,2)*x2 + rkTinv(3,2)*x3
+          R3(i) = rkTinv(1,3)*x1 + rkTinv(2,3)*x2 + rkTinv(3,3)*x3
+      END DO
+
+      ISTATUS(isol) = ISTATUS(isol) + 1
+
+   END SUBROUTINE RK_SolveTR
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE RK_ErrorEstimate(N,H,Y,T, &
+               E1,IP1,Z1,Z2,Z3,SCAL,Err,     &
+               FirstStep,Reject)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      
+      INTEGER :: N
+#ifdef FULL_ALGEBRA      
+      KPP_REAL :: E1(N,N)
+#else      
+      KPP_REAL :: E1(LU_NONZERO)
+#endif      
+      KPP_REAL :: SCAL(N),Z1(N),Z2(N),Z3(N),F1(N),F2(N), &
+                        F0(N),Y(N),TMP(N),T,H
+      INTEGER :: IP1(N), i
+      LOGICAL FirstStep,Reject
+      KPP_REAL :: HEE1,HEE2,HEE3,Err
+
+      HEE1  = rkE(1)/H
+      HEE2  = rkE(2)/H
+      HEE3  = rkE(3)/H
+
+      CALL FUN_CHEM(T,Y,F0)
+      ISTATUS(ifun) = ISTATUS(ifun) + 1
+
+      DO  i=1,N
+         F2(i)  = HEE1*Z1(i)+HEE2*Z2(i)+HEE3*Z3(i)
+         TMP(i) = rkE(0)*F0(i) + F2(i)
+      END DO
+
+#ifdef FULL_ALGEBRA      
+      CALL DGETRS ('N',N,1,E1,N,IP1,TMP,N,0) 
+      IF ((rkMethod==R1A).OR.(rkMethod==GAU).OR.(rkMethod==L3A)) CALL DGETRS ('N',N,1,E1,N,IP1,TMP,N,0)
+      IF (rkMethod==GAU) CALL DGETRS ('N',N,1,E1,N,IP1,TMP,N,0)
+#else      
+      CALL KppSolve (E1, TMP)
+      IF ((rkMethod==R1A).OR.(rkMethod==GAU).OR.(rkMethod==L3A)) CALL KppSolve (E1,TMP)
+      IF (rkMethod==GAU) CALL KppSolve (E1,TMP)
+#endif      
+
+      Err = RK_ErrorNorm(N,SCAL,TMP)
+!
+      IF (Err < ONE) RETURN
+firej:IF (FirstStep.OR.Reject) THEN
+          DO i=1,N
+             TMP(i)=Y(i)+TMP(i)
+          END DO
+          CALL FUN_CHEM(T,TMP,F1)    
+          ISTATUS(ifun) = ISTATUS(ifun) + 1
+          DO i=1,N
+             TMP(i)=F1(i)+F2(i)
+          END DO
+
+#ifdef FULL_ALGEBRA      
+          CALL DGETRS ('N',N,1,E1,N,IP1,TMP,N,0) 
+#else      
+          CALL KppSolve (E1, TMP)
+#endif      
+          Err = RK_ErrorNorm(N,SCAL,TMP)
+       END IF firej
+ 
+   END SUBROUTINE RK_ErrorEstimate
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   KPP_REAL FUNCTION RK_ErrorNorm(N,SCAL,DY)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      
+      INTEGER :: N
+      KPP_REAL :: SCAL(N),DY(N)
+      INTEGER :: i
+
+      RK_ErrorNorm = ZERO
+      DO i=1,N
+          RK_ErrorNorm = RK_ErrorNorm + (DY(i)*SCAL(i))**2
+      END DO
+      RK_ErrorNorm = MAX( SQRT(RK_ErrorNorm/N), 1.0d-10 )
+ 
+   END FUNCTION RK_ErrorNorm
+  
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE Radau2A_Coefficients
+!    The coefficients of the 3-stage Radau-2A method
+!    (given to ~30 accurate digits)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
+      IMPLICIT NONE
+! The coefficients of the Radau2A method
+      KPP_REAL :: b0
+
+!      b0 = 1.0d0
+      IF (SdirkError) THEN
+        b0 = 0.2d-1
+      ELSE
+        b0 = 0.5d-1
+      END IF
+
+! The coefficients of the Radau2A method
+      rkMethod = R2A
+
+      rkA(1,1) =  1.968154772236604258683861429918299d-1
+      rkA(1,2) = -6.55354258501983881085227825696087d-2
+      rkA(1,3) =  2.377097434822015242040823210718965d-2
+      rkA(2,1) =  3.944243147390872769974116714584975d-1
+      rkA(2,2) =  2.920734116652284630205027458970589d-1
+      rkA(2,3) = -4.154875212599793019818600988496743d-2
+      rkA(3,1) =  3.764030627004672750500754423692808d-1
+      rkA(3,2) =  5.124858261884216138388134465196080d-1
+      rkA(3,3) =  1.111111111111111111111111111111111d-1
+
+      rkB(1) = 3.764030627004672750500754423692808d-1
+      rkB(2) = 5.124858261884216138388134465196080d-1
+      rkB(3) = 1.111111111111111111111111111111111d-1
+
+      rkC(1) = 1.550510257216821901802715925294109d-1
+      rkC(2) = 6.449489742783178098197284074705891d-1
+      rkC(3) = 1.0d0
+      
+      ! New solution: H* Sum B_j*f(Z_j) = Sum D_j*Z_j
+      rkD(1) = 0.0d0
+      rkD(2) = 0.0d0
+      rkD(3) = 1.0d0
+
+      ! Classical error estimator: 
+      ! H* Sum (B_j-Bhat_j)*f(Z_j) = H*E(0)*f(0) + Sum E_j*Z_j
+      rkE(0) = 1.0d0*b0
+      rkE(1) = -10.04880939982741556246032950764708d0*b0
+      rkE(2) = 1.382142733160748895793662840980412d0*b0
+      rkE(3) = -.3333333333333333333333333333333333d0*b0
+
+      ! Sdirk error estimator
+      rkBgam(0) = b0
+      rkBgam(1) = .3764030627004672750500754423692807d0-1.558078204724922382431975370686279d0*b0
+      rkBgam(2) = .8914115380582557157653087040196118d0*b0+.5124858261884216138388134465196077d0
+      rkBgam(3) = -.1637777184845662566367174924883037d0-.3333333333333333333333333333333333d0*b0
+      rkBgam(4) = .2748888295956773677478286035994148d0
+
+      ! H* Sum Bgam_j*f(Z_j) = H*Bgam(0)*f(0) + Sum Theta_j*Z_j
+      rkTheta(1) = -1.520677486405081647234271944611547d0-10.04880939982741556246032950764708d0*b0
+      rkTheta(2) = 2.070455145596436382729929151810376d0+1.382142733160748895793662840980413d0*b0
+      rkTheta(3) = -.3333333333333333333333333333333333d0*b0-.3744441479783868387391430179970741d0
+
+      ! Local order of error estimator 
+      IF (b0==0.0d0) THEN
+        rkELO  = 6.0d0
+      ELSE	
+        rkELO  = 4.0d0
+      END IF	
+
+      !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      !~~~> Diagonalize the RK matrix:               
+      ! rkTinv * inv(rkA) * rkT =          
+      !           |  rkGamma      0           0     |
+      !           |      0      rkAlpha   -rkBeta   |
+      !           |      0      rkBeta     rkAlpha  |
+      !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      rkGamma = 3.637834252744495732208418513577775d0
+      rkAlpha = 2.681082873627752133895790743211112d0
+      rkBeta  = 3.050430199247410569426377624787569d0
+
+      rkT(1,1) =  9.443876248897524148749007950641664d-2
+      rkT(1,2) = -1.412552950209542084279903838077973d-1
+      rkT(1,3) = -3.00291941051474244918611170890539d-2
+      rkT(2,1) =  2.502131229653333113765090675125018d-1
+      rkT(2,2) =  2.041293522937999319959908102983381d-1
+      rkT(2,3) =  3.829421127572619377954382335998733d-1
+      rkT(3,1) =  1.0d0
+      rkT(3,2) =  1.0d0
+      rkT(3,3) =  0.0d0
+
+      rkTinv(1,1) =  4.178718591551904727346462658512057d0
+      rkTinv(1,2) =  3.27682820761062387082533272429617d-1
+      rkTinv(1,3) =  5.233764454994495480399309159089876d-1
+      rkTinv(2,1) = -4.178718591551904727346462658512057d0
+      rkTinv(2,2) = -3.27682820761062387082533272429617d-1
+      rkTinv(2,3) =  4.766235545005504519600690840910124d-1
+      rkTinv(3,1) = -5.02872634945786875951247343139544d-1
+      rkTinv(3,2) =  2.571926949855605429186785353601676d0
+      rkTinv(3,3) = -5.960392048282249249688219110993024d-1
+
+      rkTinvAinv(1,1) =  1.520148562492775501049204957366528d+1
+      rkTinvAinv(1,2) =  1.192055789400527921212348994770778d0
+      rkTinvAinv(1,3) =  1.903956760517560343018332287285119d0
+      rkTinvAinv(2,1) = -9.669512977505946748632625374449567d0
+      rkTinvAinv(2,2) = -8.724028436822336183071773193986487d0
+      rkTinvAinv(2,3) =  3.096043239482439656981667712714881d0
+      rkTinvAinv(3,1) = -1.409513259499574544876303981551774d+1
+      rkTinvAinv(3,2) =  5.895975725255405108079130152868952d0
+      rkTinvAinv(3,3) = -1.441236197545344702389881889085515d-1
+
+      rkAinvT(1,1) = .3435525649691961614912493915818282d0
+      rkAinvT(1,2) = -.4703191128473198422370558694426832d0
+      rkAinvT(1,3) = .3503786597113668965366406634269080d0
+      rkAinvT(2,1) = .9102338692094599309122768354288852d0
+      rkAinvT(2,2) = 1.715425895757991796035292755937326d0
+      rkAinvT(2,3) = .4040171993145015239277111187301784d0
+      rkAinvT(3,1) = 3.637834252744495732208418513577775d0
+      rkAinvT(3,2) = 2.681082873627752133895790743211112d0
+      rkAinvT(3,3) = -3.050430199247410569426377624787569d0
+
+  END SUBROUTINE Radau2A_Coefficients
+
+    
+
+    
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE Lobatto3C_Coefficients
+!    The coefficients of the 3-stage Lobatto-3C method
+!    (given to ~30 accurate digits)
+!    The parameter b0 can be chosen to tune the error estimator
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
+      IMPLICIT NONE
+      KPP_REAL :: b0
+
+      rkMethod = L3C
+
+!      b0 = 1.0d0
+      IF (SdirkError) THEN
+        b0 = 0.2d0
+      ELSE
+        b0 = 0.5d0
+      END IF
+! The coefficients of the Lobatto3C method
+
+      rkA(1,1) =  .1666666666666666666666666666666667d0
+      rkA(1,2) = -.3333333333333333333333333333333333d0
+      rkA(1,3) =  .1666666666666666666666666666666667d0
+      rkA(2,1) =  .1666666666666666666666666666666667d0
+      rkA(2,2) =  .4166666666666666666666666666666667d0
+      rkA(2,3) = -.8333333333333333333333333333333333d-1
+      rkA(3,1) =  .1666666666666666666666666666666667d0
+      rkA(3,2) =  .6666666666666666666666666666666667d0
+      rkA(3,3) =  .1666666666666666666666666666666667d0
+
+      rkB(1) = .1666666666666666666666666666666667d0
+      rkB(2) = .6666666666666666666666666666666667d0
+      rkB(3) = .1666666666666666666666666666666667d0
+
+      rkC(1) = 0.0d0
+      rkC(2) = 0.5d0
+      rkC(3) = 1.0d0
+
+      ! Classical error estimator, embedded solution: 
+      rkBhat(0) = b0
+      rkBhat(1) = .16666666666666666666666666666666667d0-b0
+      rkBhat(2) = .66666666666666666666666666666666667d0
+      rkBhat(3) = .16666666666666666666666666666666667d0
+      
+      ! New solution: h Sum_j b_j f(Z_j) = sum d_j Z_j
+      rkD(1) = 0.0d0
+      rkD(2) = 0.0d0
+      rkD(3) = 1.0d0
+
+      ! Classical error estimator: 
+      !   H* Sum (B_j-Bhat_j)*f(Z_j) = H*E(0)*f(0) + Sum E_j*Z_j
+      rkE(0) =   .3808338772072650364017425226487022*b0
+      rkE(1) = -1.142501631621795109205227567946107*b0
+      rkE(2) = -1.523335508829060145606970090594809*b0
+      rkE(3) =   .3808338772072650364017425226487022*b0
+
+      ! Sdirk error estimator
+      rkBgam(0) = b0
+      rkBgam(1) = .1666666666666666666666666666666667d0-1.d0*b0
+      rkBgam(2) = .6666666666666666666666666666666667d0
+      rkBgam(3) = -.2141672105405983697350758559820354d0
+      rkBgam(4) = .3808338772072650364017425226487021d0
+
+      ! H* Sum Bgam_j*f(Z_j) = H*Bgam(0)*f(0) + Sum Theta_j*Z_j
+      rkTheta(1) = -3.d0*b0-.3808338772072650364017425226487021d0
+      rkTheta(2) = -4.d0*b0+1.523335508829060145606970090594808d0
+      rkTheta(3) = -.142501631621795109205227567946106d0+b0
+
+      ! Local order of error estimator 
+      IF (b0==0.0d0) THEN
+        rkELO  = 5.0d0
+      ELSE	
+        rkELO  = 4.0d0
+      END IF	
+
+      !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      !~~~> Diagonalize the RK matrix:               
+      ! rkTinv * inv(rkA) * rkT =          
+      !           |  rkGamma      0           0     |
+      !           |      0      rkAlpha   -rkBeta   |
+      !           |      0      rkBeta     rkAlpha  |
+      !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      rkGamma = 2.625816818958466716011888933765284d0
+      rkAlpha = 1.687091590520766641994055533117359d0
+      rkBeta  = 2.508731754924880510838743672432351d0
+
+      rkT(1,1) = 1.d0
+      rkT(1,2) = 1.d0
+      rkT(1,3) = 0.d0
+      rkT(2,1) = .4554100411010284672111720348287483d0
+      rkT(2,2) = -.6027050205505142336055860174143743d0
+      rkT(2,3) = -.4309321229203225731070721341350346d0
+      rkT(3,1) = 2.195823345445647152832799205549709d0
+      rkT(3,2) = -1.097911672722823576416399602774855d0
+      rkT(3,3) = .7850032632435902184104551358922130d0
+
+      rkTinv(1,1) = .4205559181381766909344950150991349d0
+      rkTinv(1,2) = .3488903392193734304046467270632057d0
+      rkTinv(1,3) = .1915253879645878102698098373933487d0
+      rkTinv(2,1) = .5794440818618233090655049849008650d0
+      rkTinv(2,2) = -.3488903392193734304046467270632057d0
+      rkTinv(2,3) = -.1915253879645878102698098373933487d0
+      rkTinv(3,1) = -.3659705575742745254721332009249516d0
+      rkTinv(3,2) = -1.463882230297098101888532803699806d0
+      rkTinv(3,3) = .4702733607340189781407813565524989d0
+
+      rkTinvAinv(1,1) = 1.104302803159744452668648155627548d0
+      rkTinvAinv(1,2) = .916122120694355522658740710823143d0
+      rkTinvAinv(1,3) = .5029105849749601702795812241441172d0
+      rkTinvAinv(2,1) = 1.895697196840255547331351844372453d0
+      rkTinvAinv(2,2) = 3.083877879305644477341259289176857d0
+      rkTinvAinv(2,3) = -1.502910584974960170279581224144117d0
+      rkTinvAinv(3,1) = .8362439183082935036129145574774502d0
+      rkTinvAinv(3,2) = -3.344975673233174014451658229909802d0
+      rkTinvAinv(3,3) = .312908409479233358005944466882642d0
+
+      rkAinvT(1,1) = 2.625816818958466716011888933765282d0
+      rkAinvT(1,2) = 1.687091590520766641994055533117358d0
+      rkAinvT(1,3) = -2.508731754924880510838743672432351d0
+      rkAinvT(2,1) = 1.195823345445647152832799205549710d0
+      rkAinvT(2,2) = -2.097911672722823576416399602774855d0
+      rkAinvT(2,3) = .7850032632435902184104551358922130d0
+      rkAinvT(3,1) = 5.765829871932827589653709477334136d0
+      rkAinvT(3,2) = .1170850640335862051731452613329320d0
+      rkAinvT(3,3) = 4.078738281412060947659653944216779d0
+
+  END SUBROUTINE Lobatto3C_Coefficients
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE Gauss_Coefficients
+!    The coefficients of the 3-stage Gauss method
+!    (given to ~30 accurate digits)
+!    The parameter b3 can be chosen by the user
+!    to tune the error estimator
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
+      IMPLICIT NONE
+      KPP_REAL :: b0
+! The coefficients of the Gauss method
+
+
+      rkMethod = GAU
+      
+!      b0 = 4.0d0
+      b0 = 0.1d0
+      
+! The coefficients of the Gauss method
+
+      rkA(1,1) =  .1388888888888888888888888888888889d0
+      rkA(1,2) = -.359766675249389034563954710966045d-1
+      rkA(1,3) =  .97894440153083260495800422294756d-2
+      rkA(2,1) =  .3002631949808645924380249472131556d0
+      rkA(2,2) =  .2222222222222222222222222222222222d0
+      rkA(2,3) = -.224854172030868146602471694353778d-1
+      rkA(3,1) =  .2679883337624694517281977355483022d0
+      rkA(3,2) =  .4804211119693833479008399155410489d0
+      rkA(3,3) =  .1388888888888888888888888888888889d0
+
+      rkB(1) = .2777777777777777777777777777777778d0
+      rkB(2) = .4444444444444444444444444444444444d0
+      rkB(3) = .2777777777777777777777777777777778d0
+
+      rkC(1) = .1127016653792583114820734600217600d0
+      rkC(2) = .5000000000000000000000000000000000d0
+      rkC(3) = .8872983346207416885179265399782400d0
+
+      ! Classical error estimator, embedded solution: 
+      rkBhat(0) = b0
+      rkBhat(1) =-1.4788305577012361475298775666303999d0*b0 &
+                  +.27777777777777777777777777777777778d0
+      rkBhat(2) =  .44444444444444444444444444444444444d0 &
+                  +.66666666666666666666666666666666667d0*b0
+      rkBhat(3) = -.18783610896543051913678910003626672d0*b0 &
+                  +.27777777777777777777777777777777778d0
+
+      ! New solution: h Sum_j b_j f(Z_j) = sum d_j Z_j
+      rkD(1) = .1666666666666666666666666666666667d1
+      rkD(2) = -.1333333333333333333333333333333333d1
+      rkD(3) = .1666666666666666666666666666666667d1
+
+      ! Classical error estimator: 
+      !   H* Sum (B_j-Bhat_j)*f(Z_j) = H*E(0)*f(0) + Sum E_j*Z_j
+      rkE(0) = .2153144231161121782447335303806954d0*b0
+      rkE(1) = -2.825278112319014084275808340593191d0*b0
+      rkE(2) = .2870858974881495709929780405075939d0*b0
+      rkE(3) = -.4558086256248162565397206448274867d-1*b0
+
+      ! Sdirk error estimator
+      rkBgam(0) = 0.d0
+      rkBgam(1) = .2373339543355109188382583162660537d0
+      rkBgam(2) = .5879873931885192299409334646982414d0
+      rkBgam(3) = -.4063577064014232702392531134499046d-1
+      rkBgam(4) = .2153144231161121782447335303806955d0
+
+      ! H* Sum Bgam_j*f(Z_j) = H*Bgam(0)*f(0) + Sum Theta_j*Z_j
+      rkTheta(1) = -2.594040933093095272574031876464493d0
+      rkTheta(2) = 1.824611539036311947589425112250199d0
+      rkTheta(3) = .1856563166634371860478043996459493d0
+
+      ! ELO = local order of classical error estimator 
+      rkELO = 4.0d0
+
+      !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      !~~~> Diagonalize the RK matrix:               
+      ! rkTinv * inv(rkA) * rkT =          
+      !           |  rkGamma      0           0     |
+      !           |      0      rkAlpha   -rkBeta   |
+      !           |      0      rkBeta     rkAlpha  |
+      !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      rkGamma = 4.644370709252171185822941421408064d0
+      rkAlpha = 3.677814645373914407088529289295970d0
+      rkBeta  = 3.508761919567443321903661209182446d0
+
+      rkT(1,1) =  .7215185205520017032081769924397664d-1
+      rkT(1,2) = -.8224123057363067064866206597516454d-1
+      rkT(1,3) = -.6012073861930850173085948921439054d-1
+      rkT(2,1) =  .1188325787412778070708888193730294d0
+      rkT(2,2) =  .5306509074206139504614411373957448d-1
+      rkT(2,3) =  .3162050511322915732224862926182701d0
+      rkT(3,1) = 1.d0
+      rkT(3,2) = 1.d0
+      rkT(3,3) = 0.d0
+
+      rkTinv(1,1) =  5.991698084937800775649580743981285d0
+      rkTinv(1,2) =  1.139214295155735444567002236934009d0
+      rkTinv(1,3) =   .4323121137838583855696375901180497d0
+      rkTinv(2,1) = -5.991698084937800775649580743981285d0
+      rkTinv(2,2) = -1.139214295155735444567002236934009d0
+      rkTinv(2,3) =   .5676878862161416144303624098819503d0
+      rkTinv(3,1) = -1.246213273586231410815571640493082d0
+      rkTinv(3,2) =  2.925559646192313662599230367054972d0
+      rkTinv(3,3) =  -.2577352012734324923468722836888244d0
+
+      rkTinvAinv(1,1) =  27.82766708436744962047620566703329d0
+      rkTinvAinv(1,2) =   5.290933503982655311815946575100597d0
+      rkTinvAinv(1,3) =   2.007817718512643701322151051660114d0
+      rkTinvAinv(2,1) = -17.66368928942422710690385180065675d0
+      rkTinvAinv(2,2) = -14.45491129892587782538830044147713d0
+      rkTinvAinv(2,3) =   2.992182281487356298677848948339886d0
+      rkTinvAinv(3,1) = -25.60678350282974256072419392007303d0
+      rkTinvAinv(3,2) =   6.762434375611708328910623303779923d0
+      rkTinvAinv(3,3) =   1.043979339483109825041215970036771d0
+      
+      rkAinvT(1,1) = .3350999483034677402618981153470483d0
+      rkAinvT(1,2) = -.5134173605009692329246186488441294d0
+      rkAinvT(1,3) = .6745196507033116204327635673208923d-1
+      rkAinvT(2,1) = .5519025480108928886873752035738885d0
+      rkAinvT(2,2) = 1.304651810077110066076640761092008d0
+      rkAinvT(2,3) = .9767507983414134987545585703726984d0
+      rkAinvT(3,1) = 4.644370709252171185822941421408064d0
+      rkAinvT(3,2) = 3.677814645373914407088529289295970d0
+      rkAinvT(3,3) = -3.508761919567443321903661209182446d0
+      
+  END SUBROUTINE Gauss_Coefficients
+
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE Radau1A_Coefficients
+!    The coefficients of the 3-stage Gauss method
+!    (given to ~30 accurate digits)
+!    The parameter b3 can be chosen by the user
+!    to tune the error estimator
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
+      IMPLICIT NONE
+!      KPP_REAL :: b0 = 0.3d0
+      KPP_REAL :: b0 = 0.1d0
+
+! The coefficients of the Radau1A method
+
+      rkMethod = R1A
+
+      rkA(1,1) =  .1111111111111111111111111111111111d0
+      rkA(1,2) = -.1916383190435098943442935597058829d0
+      rkA(1,3) =  .8052720793239878323318244859477174d-1
+      rkA(2,1) =  .1111111111111111111111111111111111d0
+      rkA(2,2) =  .2920734116652284630205027458970589d0
+      rkA(2,3) = -.481334970546573839513422644787591d-1
+      rkA(3,1) =  .1111111111111111111111111111111111d0
+      rkA(3,2) =  .5370223859435462728402311533676479d0
+      rkA(3,3) =  .1968154772236604258683861429918299d0
+
+      rkB(1) = .1111111111111111111111111111111111d0
+      rkB(2) = .5124858261884216138388134465196080d0
+      rkB(3) = .3764030627004672750500754423692808d0
+
+      rkC(1) = 0.d0
+      rkC(2) = .3550510257216821901802715925294109d0
+      rkC(3) = .8449489742783178098197284074705891d0
+
+      ! Classical error estimator, embedded solution: 
+      rkBhat(0) = b0
+      rkBhat(1) = .11111111111111111111111111111111111d0-b0
+      rkBhat(2) = .51248582618842161383881344651960810d0
+      rkBhat(3) = .37640306270046727505007544236928079d0
+
+      ! New solution: H* Sum B_j*f(Z_j) = Sum D_j*Z_j
+      rkD(1) = .3333333333333333333333333333333333d0
+      rkD(2) = -.8914115380582557157653087040196127d0
+      rkD(3) = .1558078204724922382431975370686279d1
+
+      ! Classical error estimator: 
+      ! H* Sum (b_j-bhat_j) f(Z_j) = H*E(0)*F(0) + Sum E_j Z_j
+      rkE(0) =   .2748888295956773677478286035994148d0*b0
+      rkE(1) = -1.374444147978386838739143017997074d0*b0
+      rkE(2) = -1.335337922441686804550326197041126d0*b0
+      rkE(3) =   .235782604058977333559011782643466d0*b0
+
+      ! Sdirk error estimator
+      rkBgam(0) = 0.0d0
+      rkBgam(1) = .1948150124588532186183490991130616d-1
+      rkBgam(2) = .7575249005733381398986810981093584d0
+      rkBgam(3) = -.518952314149008295083446116200793d-1
+      rkBgam(4) = .2748888295956773677478286035994148d0
+
+      ! H* Sum Bgam_j*f(Z_j) = H*Bgam(0)*f(0) + Sum Theta_j*Z_j
+      rkTheta(1) = -1.224370034375505083904362087063351d0
+      rkTheta(2) = .9340045331532641409047527962010133d0
+      rkTheta(3) = .4656990124352088397561234800640929d0
+
+      ! ELO = local order of classical error estimator 
+      rkELO = 4.0d0
+
+      !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      !~~~> Diagonalize the RK matrix:               
+      ! rkTinv * inv(rkA) * rkT =          
+      !           |  rkGamma      0           0     |
+      !           |      0      rkAlpha   -rkBeta   |
+      !           |      0      rkBeta     rkAlpha  |
+      !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      rkGamma = 3.637834252744495732208418513577775d0
+      rkAlpha = 2.681082873627752133895790743211112d0
+      rkBeta  = 3.050430199247410569426377624787569d0
+
+      rkT(1,1) =  .424293819848497965354371036408369d0
+      rkT(1,2) = -.3235571519651980681202894497035503d0
+      rkT(1,3) = -.522137786846287839586599927945048d0
+      rkT(2,1) =  .57594609499806128896291585429339d-1
+      rkT(2,2) =  .3148663231849760131614374283783d-2
+      rkT(2,3) =  .452429247674359778577728510381731d0
+      rkT(3,1) = 1.d0
+      rkT(3,2) = 1.d0
+      rkT(3,3) = 0.d0
+
+      rkTinv(1,1) = 1.233523612685027760114769983066164d0
+      rkTinv(1,2) = 1.423580134265707095505388133369554d0
+      rkTinv(1,3) = .3946330125758354736049045150429624d0
+      rkTinv(2,1) = -1.233523612685027760114769983066164d0
+      rkTinv(2,2) = -1.423580134265707095505388133369554d0
+      rkTinv(2,3) = .6053669874241645263950954849570376d0
+      rkTinv(3,1) = -.1484438963257383124456490049673414d0
+      rkTinv(3,2) = 2.038974794939896109682070471785315d0
+      rkTinv(3,3) = -.544501292892686735299355831692542d-1
+
+      rkTinvAinv(1,1) =  4.487354449794728738538663081025420d0
+      rkTinvAinv(1,2) =  5.178748573958397475446442544234494d0
+      rkTinvAinv(1,3) =  1.435609490412123627047824222335563d0
+      rkTinvAinv(2,1) = -2.854361287939276673073807031221493d0
+      rkTinvAinv(2,2) = -1.003648660720543859000994063139137d+1
+      rkTinvAinv(2,3) =  1.789135380979465422050817815017383d0
+      rkTinvAinv(3,1) = -4.160768067752685525282947313530352d0
+      rkTinvAinv(3,2) =  1.124128569859216916690209918405860d0
+      rkTinvAinv(3,3) =  1.700644430961823796581896350418417d0
+
+      rkAinvT(1,1) = 1.543510591072668287198054583233180d0
+      rkAinvT(1,2) = -2.460228411937788329157493833295004d0
+      rkAinvT(1,3) = -.412906170450356277003910443520499d0
+      rkAinvT(2,1) = .209519643211838264029272585946993d0
+      rkAinvT(2,2) = 1.388545667194387164417459732995766d0
+      rkAinvT(2,3) = 1.20339553005832004974976023130002d0
+      rkAinvT(3,1) = 3.637834252744495732208418513577775d0
+      rkAinvT(3,2) = 2.681082873627752133895790743211112d0
+      rkAinvT(3,3) = -3.050430199247410569426377624787569d0
+
+  END SUBROUTINE Radau1A_Coefficients
+
+  
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  END SUBROUTINE RungeKuttaADJ ! and all its internal procedures
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE FUN_CHEM(T, V, FCT)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+    USE KPP_ROOT_Parameters
+    USE KPP_ROOT_Global
+    USE KPP_ROOT_Function, ONLY: Fun
+    USE KPP_ROOT_Rates, ONLY: Update_SUN, Update_RCONST, Update_PHOTO
+
+    IMPLICIT NONE
+
+    KPP_REAL :: V(NVAR), FCT(NVAR)
+    KPP_REAL :: T, Told
+
+    Told = TIME
+    TIME = T
+    CALL Update_SUN()
+    CALL Update_RCONST()
+    CALL Update_PHOTO()
+    TIME = Told
+    
+    CALL Fun(V, FIX, RCONST, FCT)
+    
+  END SUBROUTINE FUN_CHEM
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE JAC_CHEM (T, V, JF)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+    USE KPP_ROOT_Parameters
+    USE KPP_ROOT_Global
+    USE KPP_ROOT_JacobianSP
+    USE KPP_ROOT_Jacobian, ONLY: Jac_SP
+    USE KPP_ROOT_Rates, ONLY: Update_SUN, Update_RCONST, Update_PHOTO
+
+    IMPLICIT NONE
+
+    KPP_REAL :: V(NVAR), T , Told
+#ifdef FULL_ALGEBRA    
+    KPP_REAL :: JV(LU_NONZERO), JF(NVAR,NVAR)
+    INTEGER       :: i, j 
+#else
+    KPP_REAL :: JF(LU_NONZERO)
+#endif   
+
+    Told = TIME
+    TIME = T
+    CALL Update_SUN()
+    CALL Update_RCONST()
+    CALL Update_PHOTO()
+    TIME = Told
+    
+#ifdef FULL_ALGEBRA    
+    CALL Jac_SP(V, FIX, RCONST, JV)
+    DO j=1,NVAR
+      DO i=1,NVAR
+         JF(i,j) = 0.0d0
+      END DO
+    END DO
+    DO i=1,LU_NONZERO
+       JF(LU_IROW(i),LU_ICOL(i)) = JV(i)
+    END DO
+#else
+    CALL Jac_SP(V, FIX, RCONST, JF) 
+#endif   
+
+  END SUBROUTINE JAC_CHEM
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+END MODULE KPP_ROOT_Integrator
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/runge_kutta_tlm.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/runge_kutta_tlm.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/runge_kutta_tlm.def	(revision 2696)
@@ -0,0 +1,8 @@
+ 
+#FUNCTION AGGREGATE
+#JACOBIAN SPARSE_LU_ROW
+
+#DOUBLE ON 
+#INTFILE runge_kutta_tlm
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/runge_kutta_tlm.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/runge_kutta_tlm.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/runge_kutta_tlm.f90	(revision 2696)
@@ -0,0 +1,2218 @@
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
+!  RungeKuttaTLM - Tangent Linear Model of Fully Implicit 3-stage RK:     !
+!          * Radau-2A   quadrature (order 5)                              !
+!          * Radau-1A   quadrature (order 5)                              !
+!          * Lobatto-3C quadrature (order 4)                              !
+!          * Gauss      quadrature (order 6)                              !
+!  By default the code employs the KPP sparse linear algebra routines     !
+!  Compile with -DFULL_ALGEBRA to use full linear algebra (LAPACK)        !
+!                                                                         !
+!    (C)  Adrian Sandu, August 2005                                       !
+!    Virginia Polytechnic Institute and State University                  !
+!    Contact: sandu@cs.vt.edu                                             !
+!    Revised by Philipp Miehe and Adrian Sandu, May 2006                  !
+!    This implementation is part of KPP - the Kinetic PreProcessor        !
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
+
+MODULE KPP_ROOT_Integrator
+
+  USE KPP_ROOT_Precision
+  USE KPP_ROOT_Parameters, ONLY: NVAR, NSPEC, NFIX, LU_NONZERO
+  USE KPP_ROOT_Global, ONLY: FIX, RCONST, TIME
+  USE KPP_ROOT_Jacobian
+  USE KPP_ROOT_LinearAlgebra
+
+  IMPLICIT NONE
+  PUBLIC
+  SAVE
+
+!~~~>  Statistics on the work performed by the Runge-Kutta method
+  INTEGER, PARAMETER :: Nfun=1, Njac=2, Nstp=3, Nacc=4, &
+    Nrej=5, Ndec=6, Nsol=7, Nsng=8, Ntexit=1, Nhacc=2, Nhnew=3
+
+CONTAINS
+
+  ! **************************************************************************
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+SUBROUTINE INTEGRATE_TLM( NTLM, Y, Y_tlm, TIN, TOUT, ATOL_tlm, RTOL_tlm, &
+       ICNTRL_U, RCNTRL_U, ISTATUS_U, RSTATUS_U, IERR_U )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+    USE KPP_ROOT_Parameters, ONLY: NVAR
+    USE KPP_ROOT_Global,     ONLY: ATOL,RTOL,VAR
+
+    IMPLICIT NONE
+
+!~~~> Y - Concentrations
+    KPP_REAL :: Y(NVAR)
+!~~~> NTLM - No. of sensitivity coefficients
+    INTEGER NTLM
+!~~~> Y_tlm - Sensitivities of concentrations
+!     Note: Y_tlm (1:NVAR,j) contains sensitivities of
+!               Y(1:NVAR) w.r.t. the j-th parameter, j=1...NTLM
+    KPP_REAL :: Y_tlm(NVAR,NTLM)
+    KPP_REAL :: TIN  ! TIN - Start Time
+    KPP_REAL :: TOUT ! TOUT - End Time
+    KPP_REAL, INTENT(IN),  OPTIONAL :: RTOL_tlm(NVAR,NTLM),ATOL_tlm(NVAR,NTLM)
+    INTEGER,       INTENT(IN),  OPTIONAL :: ICNTRL_U(20)
+    KPP_REAL, INTENT(IN),  OPTIONAL :: RCNTRL_U(20)
+    INTEGER,       INTENT(OUT), OPTIONAL :: ISTATUS_U(20)
+    KPP_REAL, INTENT(OUT), OPTIONAL :: RSTATUS_U(20)
+    INTEGER,       INTENT(OUT), OPTIONAL :: IERR_U
+
+    INTEGER :: IERR
+
+    KPP_REAL :: RCNTRL(20), RSTATUS(20), T1, T2
+    INTEGER :: ICNTRL(20), ISTATUS(20)
+    INTEGER, SAVE :: Ntotal = 0
+
+    ICNTRL(1:20) = 0
+    RCNTRL(1:20) = 0.0_dp
+
+    !~~~> fine-tune the integrator:
+    ICNTRL(2)  = 0   ! Tolerances: 0=vector, 1=scalar
+    ICNTRL(5)  = 8   ! Max no. of Newton iterations
+    ICNTRL(6)  = 0   ! Starting values for Newton are: 0=interpolated, 1=zero
+    ICNTRL(7)  = 1   ! TLM solution: 0=iterations, 1=direct
+    ICNTRL(9)  = 0   ! TLM Newton iteration error: 0=fwd Newton, 1=TLM Newton error est
+    ICNTRL(10) = 1   ! FWD error estimation: 0=classic, 1=SDIRK
+    ICNTRL(11) = 1   ! Step size ontroller: 1=Gustaffson, 2=classic
+    ICNTRL(12) = 0   ! Trunc. error estimate: 0=fwd only, 1=fwd and TLM
+
+    !~~~> if optional parameters are given, and if they are >0,
+    !     then use them to overwrite default settings
+    IF (PRESENT(ICNTRL_U)) THEN
+      WHERE(ICNTRL_U(:) > 0) ICNTRL(:) = ICNTRL_U(:)
+    END IF
+    IF (PRESENT(RCNTRL_U)) THEN
+      WHERE(RCNTRL_U(:) > 0) RCNTRL(:) = RCNTRL_U(:)
+    END IF
+
+    T1 = TIN; T2 = TOUT
+    CALL RungeKuttaTLM(  NVAR, NTLM, Y, Y_tlm, T1, T2, RTOL, ATOL, &
+                           RTOL_tlm, ATOL_tlm,                     &
+			   RCNTRL,ICNTRL,RSTATUS,ISTATUS,IERR  )
+
+    Ntotal = Ntotal + ISTATUS(Nstp)
+    PRINT*,'NSTEPS=',ISTATUS(Nstp),' (',Ntotal,')','  O3=', VAR(ind_O3)
+
+    ! if optional parameters are given for output
+    ! use them to store information in them
+    IF (PRESENT(ISTATUS_U)) ISTATUS_U(:) = ISTATUS(:)
+    IF (PRESENT(RSTATUS_U)) RSTATUS_U(:) = RSTATUS(:)
+    IF (PRESENT(IERR_U)) IERR_U = IERR
+
+    IF (IERR < 0) THEN
+      PRINT *,'Runge-Kutta-TLM: Unsuccessful exit at T=', TIN,' (IERR=',IERR,')'
+    ENDIF
+
+  END SUBROUTINE INTEGRATE_TLM
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE RungeKuttaTLM(  N, NTLM, Y, Y_tlm, T, Tend,RelTol,AbsTol,    &
+                             RelTol_tlm,AbsTol_tlm,RCNTRL,ICNTRL,RSTATUS,ISTATUS,IERR )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!  This implementation is based on the book and the code Radau5:
+!
+!         E. HAIRER AND G. WANNER
+!         "SOLVING ORDINARY DIFFERENTIAL EQUATIONS II. 
+!              STIFF AND DIFFERENTIAL-ALGEBRAIC PROBLEMS."
+!         SPRINGER SERIES IN COMPUTATIONAL MATHEMATICS 14,
+!         SPRINGER-VERLAG (1991)
+!
+!         UNIVERSITE DE GENEVE, DEPT. DE MATHEMATIQUES
+!         CH-1211 GENEVE 24, SWITZERLAND
+!         E-MAIL:  HAIRER@DIVSUN.UNIGE.CH,  WANNER@DIVSUN.UNIGE.CH
+!
+!   Methods:
+!          * Radau-2A   quadrature (order 5)                              
+!          * Radau-1A   quadrature (order 5)                              
+!          * Lobatto-3C quadrature (order 4)                              
+!          * Gauss      quadrature (order 6)                              
+!                                                                         
+!   (C)  Adrian Sandu, August 2005                                       
+!   Virginia Polytechnic Institute and State University                  
+!   Contact: sandu@cs.vt.edu                                             
+!   Revised by Philipp Miehe and Adrian Sandu, May 2006                  
+!   This implementation is part of KPP - the Kinetic PreProcessor        
+!
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>   INPUT ARGUMENTS:
+!       ----------------
+!
+!    Note: For input parameters equal to zero the default values of the
+!          corresponding variables are used.
+!
+!     N           Dimension of the system
+!     T           Initial time value
+!
+!     Tend        Final T value (Tend-T may be positive or negative)
+!
+!     Y(N)        Initial values for Y
+!
+!     RelTol,AbsTol   Relative and absolute error tolerances. 
+!          for ICNTRL(2) = 0: AbsTol, RelTol are N-dimensional vectors
+!                        = 1: AbsTol, RelTol are scalars
+!
+!~~~>  Integer input parameters:
+!  
+!    ICNTRL(1) = not used
+!
+!    ICNTRL(2) = 0: AbsTol, RelTol are NVAR-dimensional vectors
+!              = 1: AbsTol, RelTol are scalars
+!
+!    ICNTRL(3) = RK method selection       
+!              = 1:  Radau-2A    (the default)
+!              = 2:  Lobatto-3C
+!              = 3:  Gauss
+!	       = 4:  Radau-1A
+!
+!    ICNTRL(4)  -> maximum number of integration steps
+!        For ICNTRL(4)=0 the default value of 100000 is used
+!
+!    ICNTRL(5)  -> maximum number of Newton iterations
+!        For ICNTRL(5)=0 the default value of 8 is used
+!
+!    ICNTRL(6)  -> starting values of Newton iterations:
+!        ICNTRL(6)=0 : starting values are obtained from 
+!                      the extrapolated collocation solution
+!                      (the default)
+!        ICNTRL(6)=1 : starting values are zero
+!
+!    ICNTRL(7)  -> method to solve TLM equations:
+!        ICNTRL(7)=0 : modified Newton re-using LU (the default)
+!        ICNTRL(7)=1 : direct solution (additional one *big* LU factorization)
+!
+!    ICNTRL(9) -> switch for TLM Newton iteration error estimation strategy
+!		ICNTRL(9) = 0: base number of iterations as forward solution
+!		ICNTRL(9) = 1: use RTOL_tlm and ATOL_tlm to calculate
+!				error estimation for TLM at Newton stages
+!
+!    ICNTRL(10) -> switch for error estimation strategy
+!		ICNTRL(10) = 0: one additional stage: at c=0, 
+!				see Hairer (default)
+!		ICNTRL(10) = 1: two additional stages: one at c=0 
+!				and one SDIRK at c=1, stiffly accurate
+!
+!    ICNTRL(11) -> switch for step size strategy
+!              ICNTRL(11)=1:  mod. predictive controller (Gustafsson, default)
+!              ICNTRL(11)=2:  classical step size control
+!              the choice 1 seems to produce safer results;
+!              for simple problems, the choice 2 produces
+!              often slightly faster runs
+!
+!    ICNTRL(12) -> switch for TLM truncation error control
+!		ICNTRL(12) = 0: TLM error is not used
+!		ICNTRL(12) = 1: TLM error is computed and used
+!
+!
+!~~~>  Real input parameters:
+!
+!    RCNTRL(1)  -> Hmin, lower bound for the integration step size
+!                  (highly recommended to keep Hmin = ZERO, the default)
+!
+!    RCNTRL(2)  -> Hmax, upper bound for the integration step size
+!
+!    RCNTRL(3)  -> Hstart, the starting step size
+!
+!    RCNTRL(4)  -> FacMin, lower bound on step decrease factor (default=0.2)
+!
+!    RCNTRL(5)  -> FacMax, upper bound on step increase factor (default=6)
+!
+!    RCNTRL(6)  -> FacRej, step decrease factor after multiple rejections
+!                 (default=0.1)
+!
+!    RCNTRL(7)  -> FacSafe, by which the new step is slightly smaller
+!                  than the predicted value  (default=0.9)
+!
+!    RCNTRL(8)  -> ThetaMin. If Newton convergence rate smaller
+!                  than ThetaMin the Jacobian is not recomputed;
+!                  (default=0.001)
+!
+!    RCNTRL(9)  -> NewtonTol, stopping criterion for Newton's method
+!                  (default=0.03)
+!
+!    RCNTRL(10) -> Qmin
+!
+!    RCNTRL(11) -> Qmax. If Qmin < Hnew/Hold < Qmax, then the
+!                  step size is kept constant and the LU factorization
+!                  reused (default Qmin=1, Qmax=1.2)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!
+!    OUTPUT ARGUMENTS:
+!    -----------------
+!
+!    T           -> T value for which the solution has been computed
+!                     (after successful return T=Tend).
+!
+!    Y(N)        -> Numerical solution at T
+!
+!    IERR        -> Reports on successfulness upon return:
+!                    = 1 for success
+!                    < 0 for error (value equals error code)
+!
+!    ISTATUS(1)  -> No. of function calls
+!    ISTATUS(2)  -> No. of jacobian calls
+!    ISTATUS(3)  -> No. of steps
+!    ISTATUS(4)  -> No. of accepted steps
+!    ISTATUS(5)  -> No. of rejected steps (except at very beginning)
+!    ISTATUS(6)  -> No. of LU decompositions
+!    ISTATUS(7)  -> No. of forward/backward substitutions
+!    ISTATUS(8)  -> No. of singular matrix decompositions
+!
+!    RSTATUS(1)  -> Texit, the time corresponding to the
+!                     computed Y upon return
+!    RSTATUS(2)  -> Hexit, last accepted step before exit
+!    RSTATUS(3)  -> Hnew, last predicted step (not yet taken)
+!                   For multiple restarts, use Hnew as Hstart 
+!                     in the subsequent run
+!
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      IMPLICIT NONE
+      
+      INTEGER       :: N, NTLM
+      KPP_REAL :: Y(N),Y_tlm(N,NTLM)
+      KPP_REAL :: AbsTol(N),RelTol(N),RCNTRL(20),RSTATUS(20)
+      KPP_REAL :: AbsTol_tlm(N,NTLM),RelTol_tlm(N,NTLM)
+      INTEGER :: ICNTRL(20), ISTATUS(20)
+      LOGICAL :: StartNewton, Gustafsson, SdirkError, TLMNewtonEst, &
+                       TLMtruncErr, TLMDirect
+      INTEGER :: IERR, ITOL
+      KPP_REAL :: T,Tend
+
+      !~~~> Control arguments
+      INTEGER :: Max_no_steps, NewtonMaxit, rkMethod
+      KPP_REAL :: Hmin,Hmax,Hstart,Qmin,Qmax
+      KPP_REAL :: Roundoff, ThetaMin, NewtonTol
+      KPP_REAL :: FacSafe,FacMin,FacMax,FacRej
+      ! Runge-Kutta method parameters
+      INTEGER, PARAMETER :: R2A=1, R1A=2, L3C=3, GAU=4, L3A=5
+      KPP_REAL :: rkT(3,3), rkTinv(3,3), rkTinvAinv(3,3), rkAinvT(3,3), &
+                       rkA(3,3), rkB(3),  rkC(3), rkD(0:3), rkE(0:3), 	&
+	   	       rkBgam(0:4), rkBhat(0:4), rkTheta(0:3),          &
+                       rkGamma,  rkAlpha, rkBeta, rkELO
+      !~~~> Local variables
+      INTEGER :: i
+      KPP_REAL, PARAMETER :: ZERO = 0.0d0, ONE = 1.0d0
+    
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!        SETTING THE PARAMETERS
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IERR = 0
+      ISTATUS(1:20) = 0
+      RSTATUS(1:20) = ZERO
+       
+!~~~> ICNTRL(1) - autonomous system - not used       
+!~~~> ITOL: 1 for vector and 0 for scalar AbsTol/RelTol
+      IF (ICNTRL(2) == 0) THEN
+         ITOL = 1
+      ELSE
+         ITOL = 0
+      END IF
+!~~~> Error control selection  
+      IF (ICNTRL(10) == 0) THEN 
+         SdirkError = .FALSE.
+      ELSE
+         SdirkError = .TRUE.
+      END IF      
+!~~~> Method selection  
+      SELECT CASE (ICNTRL(3))     
+      CASE (0,1)
+         CALL Radau2A_Coefficients
+      CASE (2)
+         CALL Lobatto3C_Coefficients
+      CASE (3)
+         CALL Gauss_Coefficients
+      CASE (4)
+         CALL Radau1A_Coefficients
+      CASE DEFAULT
+         WRITE(6,*) 'ICNTRL(3)=',ICNTRL(3)
+         CALL RK_ErrorMsg(-13,T,ZERO,IERR)
+      END SELECT
+!~~~> Max_no_steps: the maximal number of time steps
+      IF (ICNTRL(4) == 0) THEN
+         Max_no_steps = 200000
+      ELSE
+         Max_no_steps=ICNTRL(4)
+         IF (Max_no_steps <= 0) THEN
+            WRITE(6,*) 'ICNTRL(4)=',ICNTRL(4)
+            CALL RK_ErrorMsg(-1,T,ZERO,IERR)
+         END IF
+      END IF
+!~~~> NewtonMaxit    maximal number of Newton iterations
+      IF (ICNTRL(5) == 0) THEN
+         NewtonMaxit = 8
+      ELSE
+         NewtonMaxit=ICNTRL(5)
+         IF (NewtonMaxit <= 0) THEN
+            WRITE(6,*) 'ICNTRL(5)=',ICNTRL(5)
+            CALL RK_ErrorMsg(-2,T,ZERO,IERR)
+          END IF
+      END IF
+!~~~> StartNewton:  Use extrapolation for starting values of Newton iterations
+      IF (ICNTRL(6) == 0) THEN
+         StartNewton = .TRUE.
+      ELSE
+         StartNewton = .FALSE.
+      END IF      
+!~~~> Solve TLM equations directly or by Newton iterations 
+      IF (ICNTRL(7) == 0) THEN
+         TLMDirect = .FALSE.
+      ELSE
+         TLMDirect = .TRUE.
+      END IF      
+!~~~> Newton iteration error control selection  
+      IF (ICNTRL(9) == 0) THEN 
+         TLMNewtonEst = .FALSE.
+      ELSE
+         TLMNewtonEst = .TRUE.
+      END IF      
+!~~~> Gustafsson: step size controller
+      IF(ICNTRL(11) == 0)THEN
+         Gustafsson = .TRUE.
+      ELSE
+         Gustafsson = .FALSE.
+      END IF
+!~~~> TLM truncation error control selection  
+      IF (ICNTRL(12) == 0) THEN 
+         TLMtruncErr = .FALSE.
+      ELSE
+         TLMtruncErr = .TRUE.
+      END IF      
+
+!~~~> Roundoff: smallest number s.t. 1.0 + Roundoff > 1.0
+      Roundoff=WLAMCH('E');
+
+!~~~> Hmin = minimal step size
+      IF (RCNTRL(1) == ZERO) THEN
+         Hmin = ZERO
+      ELSE
+         Hmin = MIN(ABS(RCNTRL(1)),ABS(Tend-T))
+      END IF
+!~~~> Hmax = maximal step size
+      IF (RCNTRL(2) == ZERO) THEN
+         Hmax = ABS(Tend-T)
+      ELSE
+         Hmax = MIN(ABS(RCNTRL(2)),ABS(Tend-T))
+      END IF
+!~~~> Hstart = starting step size
+      IF (RCNTRL(3) == ZERO) THEN
+         Hstart = ZERO
+      ELSE
+         Hstart = MIN(ABS(RCNTRL(3)),ABS(Tend-T))
+      END IF
+!~~~> FacMin: lower bound on step decrease factor
+      IF(RCNTRL(4) == ZERO)THEN
+         FacMin = 0.2d0
+      ELSE
+         FacMin = RCNTRL(4)
+      END IF
+!~~~> FacMax: upper bound on step increase factor
+      IF(RCNTRL(5) == ZERO)THEN
+         FacMax = 8.D0
+      ELSE
+         FacMax = RCNTRL(5)
+      END IF
+!~~~> FacRej: step decrease factor after 2 consecutive rejections
+      IF(RCNTRL(6) == ZERO)THEN
+         FacRej = 0.1d0
+      ELSE
+         FacRej = RCNTRL(6)
+      END IF
+!~~~> FacSafe:  by which the new step is slightly smaller
+!               than the predicted value
+      IF (RCNTRL(7) == ZERO) THEN
+         FacSafe=0.9d0
+      ELSE
+         FacSafe=RCNTRL(7)
+      END IF
+      IF ( (FacMax < ONE) .OR. (FacMin > ONE) .OR. &
+           (FacSafe <= 1.0d-3) .OR. (FacSafe >= ONE) ) THEN
+            WRITE(6,*)'RCNTRL(4:7)=',RCNTRL(4:7)
+            CALL RK_ErrorMsg(-4,T,ZERO,IERR)
+      END IF
+
+!~~~> ThetaMin:  decides whether the Jacobian should be recomputed
+      IF (RCNTRL(8) == ZERO) THEN
+         ThetaMin = 1.0d-3
+      ELSE
+         ThetaMin=RCNTRL(8)
+         IF (ThetaMin <= 0.0d0 .OR. ThetaMin >= 1.0d0) THEN
+            WRITE(6,*) 'RCNTRL(8)=', RCNTRL(8)
+            CALL RK_ErrorMsg(-5,T,ZERO,IERR)
+         END IF
+      END IF
+!~~~> NewtonTol:  stopping crierion for Newton's method
+      IF (RCNTRL(9) == ZERO) THEN
+         NewtonTol = 3.0d-2
+      ELSE
+         NewtonTol = RCNTRL(9)
+         IF (NewtonTol <= Roundoff) THEN
+            WRITE(6,*) 'RCNTRL(9)=',RCNTRL(9)
+            CALL RK_ErrorMsg(-6,T,ZERO,IERR)
+         END IF
+      END IF
+!~~~> Qmin AND Qmax: IF Qmin < Hnew/Hold < Qmax then step size = const.
+      IF (RCNTRL(10) == ZERO) THEN
+         Qmin=1.D0
+      ELSE
+         Qmin=RCNTRL(10)
+      END IF
+      IF (RCNTRL(11) == ZERO) THEN
+         Qmax=1.2D0
+      ELSE
+         Qmax=RCNTRL(11)
+      END IF
+      IF (Qmin > ONE .OR. Qmax < ONE) THEN
+         WRITE(6,*) 'RCNTRL(10:11)=',Qmin,Qmax
+         CALL RK_ErrorMsg(-7,T,ZERO,IERR)
+      END IF
+!~~~> Check if tolerances are reasonable
+      IF (ITOL == 0) THEN
+          IF (AbsTol(1) <= ZERO.OR.RelTol(1) <= 10.d0*Roundoff) THEN
+              WRITE (6,*) 'AbsTol/RelTol=',AbsTol,RelTol 
+              CALL RK_ErrorMsg(-8,T,ZERO,IERR)
+          END IF
+      ELSE
+          DO i=1,N
+          IF (AbsTol(i) <= ZERO.OR.RelTol(i) <= 10.d0*Roundoff) THEN
+              WRITE (6,*) 'AbsTol/RelTol(',i,')=',AbsTol(i),RelTol(i)
+              CALL RK_ErrorMsg(-8,T,ZERO,IERR)
+          END IF
+          END DO
+      END IF
+
+!~~~> Parameters are wrong
+      IF (IERR < 0) RETURN
+
+!~~~> Call the core method
+      CALL RK_IntegratorTLM( N,NTLM,T,Tend,Y,Y_tlm,IERR )
+
+   CONTAINS ! Internal procedures to RungeKutta
+
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE RK_IntegratorTLM( N,NTLM,T,Tend,Y,Y_tlm,IERR )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      IMPLICIT NONE
+!~~~> Arguments
+      INTEGER,  INTENT(IN)         :: N, NTLM
+      KPP_REAL, INTENT(IN)    :: Tend
+      KPP_REAL, INTENT(INOUT) :: T, Y(N), Y_tlm(NVAR,NTLM)
+      INTEGER,  INTENT(OUT)        :: IERR
+
+!~~~> Local variables
+#ifdef FULL_ALGEBRA
+      KPP_REAL, DIMENSION(NVAR,NVAR)    ::   &
+                             FJAC, E1, Jac1, Jac2, Jac3
+      COMPLEX(kind=dp), DIMENSION(NVAR,NVAR) :: E2   
+      KPP_REAL, DIMENSION(3*NVAR,3*NVAR)  :: Jbig, Ebig
+      KPP_REAL, DIMENSION(3*NVAR)         :: Zbig
+      INTEGER,       DIMENSION(3*NVAR)         :: IPbig
+#else
+      KPP_REAL, DIMENSION(LU_NONZERO)   ::   &
+                             FJAC, E1, Jac1, Jac2, Jac3
+      COMPLEX(kind=dp), DIMENSION(LU_NONZERO)  :: E2 
+!  Next 3 commented lines for sparse big linear algebra:
+!      KPP_REAL, DIMENSION(3,3,LU_NONZERO) :: Jbig
+!      KPP_REAL, DIMENSION(3,NVAR)         :: Zbig
+!      INTEGER, DIMENSION(3,NVAR)               :: IPbig
+      KPP_REAL, DIMENSION(3*NVAR,3*NVAR)  :: Jbig, Ebig
+      KPP_REAL, DIMENSION(3*NVAR)         :: Zbig
+      INTEGER,       DIMENSION(3*NVAR)         :: IPbig
+#endif                
+      KPP_REAL, DIMENSION(NVAR) :: Z1,Z2,Z3,Z4,SCAL,DZ1,DZ2,DZ3,DZ4, &
+                 G,TMP,SCAL_tlm
+      KPP_REAL, DIMENSION(NVAR,NTLM) :: Z1_tlm,Z2_tlm,Z3_tlm
+      KPP_REAL  :: CONT(NVAR,3), Tdirection,  H, Hacc, Hnew, Hold, Fac, &
+                 FacGus, Theta, Err, ErrOld, NewtonRate, NewtonIncrement,    &
+                 Hratio, Qnewton, NewtonPredictedErr,NewtonIncrementOld,    &
+		 ThetaTLM, ThetaSD
+      INTEGER :: i,j,IP1(NVAR),IP2(NVAR),NewtonIter, ISING, Nconsecutive, itlm
+      INTEGER :: saveNiter, NewtonIterTLM, info
+      LOGICAL :: Reject, FirstStep, SkipJac, NewtonDone, SkipLU
+      
+            
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Initial setting
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      Tdirection = SIGN(ONE,Tend-T)
+      H = MIN( MAX(ABS(Hmin),ABS(Hstart)) , Hmax )
+      IF (ABS(H) <= 10.d0*Roundoff) H = 1.0d-6
+      H = SIGN(H,Tdirection)
+      Hold      = H
+      Reject    = .FALSE.
+      FirstStep = .TRUE.
+      SkipJac   = .FALSE.
+      SkipLU    = .FALSE.
+      IF ((T+H*1.0001D0-Tend)*Tdirection >= ZERO) THEN
+         H = Tend-T
+      END IF
+      Nconsecutive = 0
+      CALL RK_ErrorScale(N,ITOL,AbsTol,RelTol,Y,SCAL)
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Time loop begins
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Tloop: DO WHILE ( (Tend-T)*Tdirection - Roundoff > ZERO )
+
+      IF ( .NOT.SkipLU ) THEN ! This time around skip the Jac update and LU
+        !~~~> Compute the Jacobian matrix
+        IF ( .NOT.SkipJac ) THEN
+          CALL JAC_CHEM(T,Y,FJAC)
+          ISTATUS(Njac) = ISTATUS(Njac) + 1
+        END IF
+        !~~~> Compute the matrices E1 and E2 and their decompositions
+        CALL RK_Decomp(N,H,FJAC,E1,IP1,E2,IP2,ISING)
+        IF (ISING /= 0) THEN
+          ISTATUS(Nsng) = ISTATUS(Nsng) + 1; Nconsecutive = Nconsecutive + 1
+          IF (Nconsecutive >= 5) THEN
+            CALL RK_ErrorMsg(-12,T,H,IERR); RETURN
+          END IF
+          H=H*0.5d0; Reject=.TRUE.; SkipJac = .TRUE.;  SkipLU = .FALSE.
+          CYCLE Tloop
+        ELSE
+          Nconsecutive = 0    
+        END IF   
+      END IF ! SkipLU
+   
+      ISTATUS(Nstp) = ISTATUS(Nstp) + 1
+      IF (ISTATUS(Nstp) > Max_no_steps) THEN
+        PRINT*,'Max number of time steps is ',Max_no_steps
+        CALL RK_ErrorMsg(-9,T,H,IERR); RETURN
+      END IF
+      IF (0.1D0*ABS(H) <= ABS(T)*Roundoff)  THEN
+        CALL RK_ErrorMsg(-10,T,H,IERR); RETURN
+      END IF
+      
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Loop for the simplified Newton iterations
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+            
+      !~~~>  Starting values for Newton iteration
+      IF ( FirstStep .OR. (.NOT.StartNewton) ) THEN
+         CALL Set2zero(N,Z1)
+         CALL Set2zero(N,Z2)
+         CALL Set2zero(N,Z3)
+      ELSE
+         ! Evaluate quadratic polynomial
+         CALL RK_Interpolate('eval',N,H,Hold,Z1,Z2,Z3,CONT)
+      END IF
+      
+      !~~~>  Initializations for Newton iteration
+      NewtonDone = .FALSE.
+      Fac = 0.5d0 ! Step reduction if too many iterations
+      
+NewtonLoop:DO  NewtonIter = 1, NewtonMaxit  
+ 
+            !~~~> Prepare the right-hand side
+            CALL RK_PrepareRHS(N,T,H,Y,Z1,Z2,Z3,DZ1,DZ2,DZ3)
+            
+            !~~~> Solve the linear systems
+            CALL RK_Solve( N,H,E1,IP1,E2,IP2,DZ1,DZ2,DZ3,ISING )
+            
+            NewtonIncrement = SQRT( ( RK_ErrorNorm(N,SCAL,DZ1)**2 + &
+                                RK_ErrorNorm(N,SCAL,DZ2)**2 +       &
+                                RK_ErrorNorm(N,SCAL,DZ3)**2 )/3.0d0 )
+            
+            IF ( NewtonIter == 1 ) THEN
+                Theta      = ABS(ThetaMin)
+                NewtonRate = 2.0d0 
+            ELSE
+                Theta = NewtonIncrement/NewtonIncrementOld
+                IF (Theta < 0.99d0) THEN
+                    NewtonRate = Theta/(ONE-Theta)
+                ELSE ! Non-convergence of Newton: Theta too large
+                    EXIT NewtonLoop
+                END IF
+                IF ( NewtonIter < NewtonMaxit ) THEN 
+                  ! Predict error at the end of Newton process 
+                  NewtonPredictedErr = NewtonIncrement &
+                               *Theta**(NewtonMaxit-NewtonIter)/(ONE-Theta)
+                  IF (NewtonPredictedErr >= NewtonTol) THEN
+                    ! Non-convergence of Newton: predicted error too large
+                    Qnewton = MIN(10.0d0,NewtonPredictedErr/NewtonTol)
+                    Fac=0.8d0*Qnewton**(-ONE/(1+NewtonMaxit-NewtonIter))
+                    EXIT NewtonLoop
+                  END IF
+                END IF
+            END IF
+
+            NewtonIncrementOld = MAX(NewtonIncrement,Roundoff) 
+            ! Update solution
+            CALL WAXPY(N,-ONE,DZ1,1,Z1,1) ! Z1 <- Z1 - DZ1
+            CALL WAXPY(N,-ONE,DZ2,1,Z2,1) ! Z2 <- Z2 - DZ2
+            CALL WAXPY(N,-ONE,DZ3,1,Z3,1) ! Z3 <- Z3 - DZ3
+            
+            ! Check error in Newton iterations
+            NewtonDone = (NewtonRate*NewtonIncrement <= NewtonTol)
+            IF (NewtonDone) THEN
+	      ! Tune error in TLM variables by defining the minimal number of Newton iterations.
+	      saveNiter = NewtonIter+1
+	      EXIT NewtonLoop
+	    END IF
+   	    IF (NewtonIter == NewtonMaxit) THEN
+		PRINT*, 'Slow or no convergence in Newton Iteration: Max no. of', &
+		 	'Newton iterations reached'
+	    END IF
+            
+      END DO NewtonLoop
+            
+      IF (.NOT.NewtonDone) THEN
+           !CALL RK_ErrorMsg(-12,T,H,IERR);
+           H = Fac*H; Reject=.TRUE.; SkipJac = .TRUE.;  SkipLU = .FALSE.
+           CYCLE Tloop
+      END IF
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> SDIRK Stage
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+       IF (SdirkError) THEN
+
+!~~~>  Starting values for Newton iterations
+       Z4(1:N) = Z3(1:N)
+       
+!~~~>   Prepare the loop-independent part of the right-hand side
+       CALL FUN_CHEM(T,Y,DZ4)
+       ISTATUS(Nfun) = ISTATUS(Nfun) + 1
+       
+!       G = H*rkBgam(0)*DZ4 + rkTheta(1)*Z1 + rkTheta(2)*Z2 + rkTheta(3)*Z3
+       CALL Set2Zero(N, G)
+       CALL WAXPY(N,rkBgam(0)*H, DZ4,1,G,1) 
+       CALL WAXPY(N,rkTheta(1),Z1,1,G,1)
+       CALL WAXPY(N,rkTheta(2),Z2,1,G,1)
+       CALL WAXPY(N,rkTheta(3),Z3,1,G,1)
+
+       !~~~>  Initializations for Newton iteration
+       NewtonDone = .FALSE.
+       Fac = 0.5d0 ! Step reduction factor if too many iterations
+            
+SDNewtonLoop:DO NewtonIter = 1, NewtonMaxit
+
+!~~~>   Prepare the loop-dependent part of the right-hand side
+	    CALL WADD(N,Y,Z4,TMP)         ! TMP <- Y + Z4
+	    CALL FUN_CHEM(T+H,TMP,DZ4) 	  ! DZ4 <- Fun(Y+Z4)         
+            ISTATUS(Nfun) = ISTATUS(Nfun) + 1
+!            DZ4(1:N) = (G(1:N)-Z4(1:N))*(rkGamma/H) + DZ4(1:N)
+	    CALL WAXPY (N, -ONE*rkGamma/H, Z4, 1, DZ4, 1)
+            CALL WAXPY (N, rkGamma/H, G,1, DZ4,1)
+
+!~~~>   Solve the linear system
+#ifdef FULL_ALGEBRA  
+            CALL DGETRS( 'N', N, 1, E1, N, IP1, DZ4, N, ISING )
+#else
+            CALL KppSolve(E1, DZ4)
+#endif
+            
+!~~~>   Check convergence of Newton iterations
+            NewtonIncrement = RK_ErrorNorm(N,SCAL,DZ4)
+            IF ( NewtonIter == 1 ) THEN
+                ThetaSD      = ABS(ThetaMin)
+                NewtonRate = 2.0d0 
+            ELSE
+                ThetaSD = NewtonIncrement/NewtonIncrementOld
+                IF (ThetaSD < 0.99d0) THEN
+                    NewtonRate = ThetaSD/(ONE-ThetaSD)
+                    ! Predict error at the end of Newton process 
+                    NewtonPredictedErr = NewtonIncrement &
+                               *ThetaSD**(NewtonMaxit-NewtonIter)/(ONE-ThetaSD)
+                    IF (NewtonPredictedErr >= NewtonTol) THEN
+                      ! Non-convergence of Newton: predicted error too large
+                      Qnewton = MIN(10.0d0,NewtonPredictedErr/NewtonTol)
+                      Fac = 0.8d0*Qnewton**(-ONE/(1+NewtonMaxit-NewtonIter))
+                      EXIT SDNewtonLoop
+                    END IF
+                ELSE ! Non-convergence of Newton: Theta too large
+                    print*,'Theta too large: ',ThetaSD
+                    EXIT SDNewtonLoop
+                END IF
+            END IF
+            NewtonIncrementOld = NewtonIncrement
+            ! Update solution: Z4 <-- Z4 + DZ4
+            CALL WAXPY(N,ONE,DZ4,1,Z4,1) 
+            
+            ! Check error in Newton iterations
+            NewtonDone = (NewtonRate*NewtonIncrement <= NewtonTol)
+            IF (NewtonDone) EXIT SDNewtonLoop
+            
+            END DO SDNewtonLoop
+            
+            IF (.NOT.NewtonDone) THEN
+                H = Fac*H; Reject=.TRUE.; SkipJac = .TRUE.;  SkipLU = .FALSE.
+                CYCLE Tloop
+            END IF
+
+!~~~>  End of implified SDIRK Newton iterations
+      END IF
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> Error estimation, forward solution
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IF (SdirkError) THEN
+!         DZ4(1:N) =  rkD(1)*Z1 + rkD(2)*Z2 + rkD(3)*Z3 - Z4    
+	 CALL Set2Zero(N, DZ4)
+	 IF (rkD(1) /= ZERO) CALL WAXPY(N, rkD(1), Z1, 1, DZ4, 1)
+	 IF (rkD(2) /= ZERO) CALL WAXPY(N, rkD(2), Z2, 1, DZ4, 1)
+	 IF (rkD(3) /= ZERO) CALL WAXPY(N, rkD(3), Z3, 1, DZ4, 1)
+	 CALL WAXPY(N, -ONE, Z4, 1, DZ4, 1)
+         Err = RK_ErrorNorm(N,SCAL,DZ4)    
+      ELSE
+        CALL  RK_ErrorEstimate(N,H,Y,T, &
+               E1,IP1,Z1,Z2,Z3,SCAL,Err,FirstStep,Reject)
+      END IF
+     
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> If error small enough, compute TLM solution
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IF (Err < ONE) THEN
+
+      !~~~>  Jacobian values
+      CALL WADD(N,Y,Z1,TMP)              ! TMP  <- Y + Z1
+      CALL JAC_CHEM(T+rkC(1)*H,TMP,Jac1) ! Jac1 <- Jac(Y+Z1)  
+      CALL WADD(N,Y,Z2,TMP)              ! TMP  <- Y + Z2
+      CALL JAC_CHEM(T+rkC(2)*H,TMP,Jac2) ! Jac2 <- Jac(Y+Z2)  
+      CALL WADD(N,Y,Z3,TMP)              ! TMP  <- Y + Z3
+      CALL JAC_CHEM(T+rkC(3)*H,TMP,Jac3) ! Jac3 <- Jac(Y+Z3)  
+       
+TLMDIR: IF (TLMDirect) THEN 
+       
+#ifdef FULL_ALGEBRA
+      !~~~>  Construct the full Jacobian
+      DO j=1,N
+        DO i=1,N
+          Jbig(i,j)         = -H*rkA(1,1)*Jac1(i,j)
+          Jbig(N+i,j)       = -H*rkA(2,1)*Jac1(i,j)
+          Jbig(2*N+i,j)     = -H*rkA(3,1)*Jac1(i,j)
+          Jbig(i,N+j)       = -H*rkA(1,2)*Jac2(i,j)
+          Jbig(N+i,N+j)     = -H*rkA(2,2)*Jac2(i,j)
+          Jbig(2*N+i,N+j)   = -H*rkA(3,2)*Jac2(i,j)
+          Jbig(i,2*N+j)     = -H*rkA(1,3)*Jac3(i,j)
+          Jbig(N+i,2*N+j)   = -H*rkA(2,3)*Jac3(i,j)
+          Jbig(2*N+i,2*N+j) = -H*rkA(3,3)*Jac3(i,j)
+        END DO  
+      END DO
+      Ebig = -Jbig
+      DO i=1,3*NVAR
+          Jbig(i,i) = ONE + Jbig(i,i)
+      END DO
+      !~~~>  Solve the big system
+      ! CALL DGETRF(3*NVAR,3*NVAR,Jbig,3*NVAR,IPbig,j) 
+      CALL WGEFA(3*N,Jbig,IPbig,info) 
+      IF (info /= 0) THEN
+        PRINT*,'Big big guy is singular'; STOP
+      END IF  
+      DO itlm = 1, NTLM      
+        DO j=1,NVAR
+            Zbig(j)        = Y_tlm(j,itlm)
+            Zbig(NVAR+j)   = Y_tlm(j,itlm)
+            Zbig(2*NVAR+j) = Y_tlm(j,itlm)
+        END DO
+        Zbig = MATMUL(Ebig,Zbig)
+        !CALL DGETRS ('N',3*NVAR,1,Jbig,3*NVAR,IPbig,Zbig,3*NVAR,0) 
+        CALL WGESL('N',3*N,Jbig,IPbig,Zbig)
+        DO j=1,NVAR
+            Z1_tlm(j,itlm) = Zbig(j)
+            Z2_tlm(j,itlm) = Zbig(NVAR+j)
+            Z3_tlm(j,itlm) = Zbig(2*NVAR+j)
+        END DO
+      END DO  
+#else       
+!  Commented code for sparse big linear algebra:
+!      !~~~>  Construct the big Jacobian
+!      DO j=1,LU_NONZERO
+!        DO i=1,3
+!          Jbig(i,1,j) = -H*rkA(i,1)*Jac1(j)
+!          Jbig(i,2,j) = -H*rkA(i,2)*Jac2(j)
+!          Jbig(i,3,j) = -H*rkA(i,3)*Jac3(j)
+!        END DO
+!      END DO
+!      DO j=1,NVAR
+!        DO i=1,3
+!          Jbig(i,i,LU_DIAG(j)) = ONE + Jbig(i,i,LU_DIAG(j))
+!        END DO
+!      END DO
+!      !~~~>  Solve the big system
+!      CALL KppDecompBig( Jbig, IPbig, j )
+!   Use full big linear algebra:
+      Jbig(1:3*N,1:3*N) = 0.0d0
+      DO i=1,LU_NONZERO
+	  Jbig(LU_irow(i),LU_icol(i))         = -H*rkA(1,1)*Jac1(i)
+	  Jbig(LU_irow(i),N+LU_icol(i))       = -H*rkA(1,2)*Jac2(i)
+	  Jbig(LU_irow(i),2*N+LU_icol(i))     = -H*rkA(1,3)*Jac3(i)
+	  Jbig(N+LU_irow(i),LU_icol(i))       = -H*rkA(2,1)*Jac1(i)
+	  Jbig(N+LU_irow(i),N+LU_icol(i))     = -H*rkA(2,2)*Jac2(i)
+	  Jbig(N+LU_irow(i),2*N+LU_icol(i))   = -H*rkA(2,3)*Jac3(i)
+	  Jbig(2*N+LU_irow(i),LU_icol(i))     = -H*rkA(3,1)*Jac1(i)
+	  Jbig(2*N+LU_irow(i),N+LU_icol(i))   = -H*rkA(3,2)*Jac2(i)
+	  Jbig(2*N+LU_irow(i),2*N+LU_icol(i)) = -H*rkA(3,3)*Jac3(i)
+      END DO
+      Ebig = -Jbig
+      DO i=1, 3*N
+	 Jbig(i,i) = ONE + Jbig(i,i)
+      END DO
+      ! CALL DGETRF(3*N,3*N,Jbig,3*N,IPbig,info) 
+      CALL WGEFA(3*N,Jbig,IPbig,info) 
+      IF (info /= 0) THEN
+        PRINT*,'Big guy is singular'; STOP
+      END IF  
+
+      DO itlm = 1, NTLM      
+!  Commented code for sparse big linear algebra:
+!       ! Compute RHS
+!        CALL RK_PrepareRHS_TLMdirect(N,H,Jac1,Jac2,Jac3,Y_tlm(1,itlm),Zbig)
+!       ! Solve the system
+!        CALL KppSolveBig( Jbig, IPbig, Zbig )
+!        DO j=1,NVAR
+!            Z1_tlm(j,itlm) = Zbig(1,j)
+!            Z2_tlm(j,itlm) = Zbig(2,j)
+!            Z3_tlm(j,itlm) = Zbig(3,j)
+!        END DO
+        ! Compute RHS
+        CALL RK_PrepareRHS_TLMdirect(N,H,Jac1,Jac2,Jac3,Y_tlm(1,itlm),Zbig)
+        ! Solve the system
+	! CALL DGETRS('N',3*N,1,Jbig,3*N,IPbig,Zbig,3*N,0) 
+        CALL WGESL('N',3*N,Jbig,IPbig,Zbig)
+        Z1_tlm(1:NVAR,itlm) = Zbig(1:NVAR)
+        Z2_tlm(1:NVAR,itlm) = Zbig(NVAR+1:2*NVAR)
+        Z3_tlm(1:NVAR,itlm) = Zbig(2*NVAR+1:3*NVAR)
+      END DO  
+#endif
+
+    ELSE TLMDIR
+    
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Loop for Newton iterations, TLM variables
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+         
+Tlm:DO itlm = 1, NTLM      
+            
+      !~~~>  Starting values for Newton iteration
+      CALL Set2zero(N,Z1_tlm(1,itlm))
+      CALL Set2zero(N,Z2_tlm(1,itlm))
+      CALL Set2zero(N,Z3_tlm(1,itlm))
+      
+      !~~~>  Initializations for Newton iteration
+      IF (TLMNewtonEst) THEN
+         NewtonDone = .FALSE.
+         Fac = 0.5d0 ! Step reduction if too many iterations
+
+         CALL RK_ErrorScale(N,ITOL,AbsTol_tlm(1,itlm),RelTol_tlm(1,itlm), &
+              Y_tlm(1,itlm),SCAL_tlm)
+      END IF
+      
+NewtonLoopTLM:DO  NewtonIterTLM = 1, NewtonMaxit  
+ 
+            !~~~> Prepare the right-hand side
+            CALL RK_PrepareRHS_TLM(N,H,Jac1,Jac2,Jac3,Y_tlm(1,itlm), &
+                      Z1_tlm(1,itlm),Z2_tlm(1,itlm),Z3_tlm(1,itlm),  &
+                      DZ1,DZ2,DZ3) 
+                                 
+            !~~~> Solve the linear systems
+            CALL RK_Solve( N,H,E1,IP1,E2,IP2,DZ1,DZ2,DZ3,ISING )
+            
+	    IF (TLMNewtonEst) THEN
+!~~~>   Check convergence of Newton iterations
+            NewtonIncrement = SQRT( ( RK_ErrorNorm(N,SCAL_tlm,DZ1)**2 + &
+                                RK_ErrorNorm(N,SCAL_tlm,DZ2)**2 +       &
+                                RK_ErrorNorm(N,SCAL_tlm,DZ3)**2 )/3.0d0 )
+            IF ( NewtonIterTLM == 1 ) THEN
+                ThetaTLM      = ABS(ThetaMin)
+                NewtonRate = 2.0d0 
+            ELSE
+                ThetaTLM = NewtonIncrement/NewtonIncrementOld
+                IF (ThetaTLM < 0.99d0) THEN
+                    NewtonRate = ThetaTLM/(ONE-ThetaTLM)
+                ELSE ! Non-convergence of Newton: ThetaTLM too large
+                    EXIT NewtonLoopTLM
+                END IF
+                IF ( NewtonIterTLM < NewtonMaxit ) THEN 
+                  ! Predict error at the end of Newton process 
+                  NewtonPredictedErr = NewtonIncrement &
+                               *ThetaTLM**(NewtonMaxit-NewtonIterTLM)/(ONE-ThetaTLM)
+                  IF (NewtonPredictedErr >= NewtonTol) THEN
+                    ! Non-convergence of Newton: predicted error too large
+                    Qnewton = MIN(10.0d0,NewtonPredictedErr/NewtonTol)
+                    Fac=0.8d0*Qnewton**(-ONE/(1+NewtonMaxit-NewtonIterTLM))
+                    EXIT NewtonLoopTLM
+                  END IF
+                END IF
+            END IF
+
+            NewtonIncrementOld = MAX(NewtonIncrement,Roundoff) 
+	    END IF !(TLMNewtonEst)
+            ! Update solution
+            CALL WAXPY(N,-ONE,DZ1,1,Z1_tlm(1,itlm),1) ! Z1 <- Z1 - DZ1
+            CALL WAXPY(N,-ONE,DZ2,1,Z2_tlm(1,itlm),1) ! Z2 <- Z2 - DZ2
+            CALL WAXPY(N,-ONE,DZ3,1,Z3_tlm(1,itlm),1) ! Z3 <- Z3 - DZ3
+            
+            ! Check error in Newton iterations
+            IF (TLMNewtonEst) THEN
+  	       NewtonDone = (NewtonRate*NewtonIncrement <= NewtonTol)
+	       IF (NewtonDone) EXIT NewtonLoopTLM
+	    ELSE
+  	       ! Minimum number of iterations same as FWD iterations
+               IF (NewtonIterTLM>=saveNiter) EXIT NewtonLoopTLM
+	    END IF
+            
+      END DO NewtonLoopTLM
+            
+      IF ((TLMNewtonEst) .AND. (.NOT.NewtonDone)) THEN
+           !CALL RK_ErrorMsg(-12,T,H,IERR);
+           H = Fac*H; Reject=.TRUE.; SkipJac = .TRUE.;  SkipLU = .FALSE.
+           CYCLE Tloop
+      END IF
+              
+  END DO Tlm    
+
+  END IF TLMDIR
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> Error estimation, TLM solution
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IF (TLMtruncErr) THEN
+        CALL RK_ErrorEstimate_tlm(N,NTLM,T,H,FJAC,Y, Y_tlm, &
+               E1,IP1,Z1_tlm,Z2_tlm,Z3_tlm,Err,FirstStep,Reject)
+      END IF
+
+  END IF ! (Err<ONE)
+            
+
+!~~~> Computation of new step size Hnew
+      Fac  = Err**(-ONE/rkELO)*   &
+             MIN(FacSafe,(ONE+2*NewtonMaxit)/(NewtonIter+2*NewtonMaxit))
+      Fac  = MIN(FacMax,MAX(FacMin,Fac))
+      Hnew = Fac*H
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> Accept/reject step 
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+accept:IF (Err < ONE) THEN !~~~> STEP IS ACCEPTED
+
+         FirstStep=.FALSE.
+         ISTATUS(Nacc) = ISTATUS(Nacc) + 1
+         IF (Gustafsson) THEN
+            !~~~> Predictive controller of Gustafsson
+            IF (ISTATUS(Nacc) > 1) THEN
+               FacGus=FacSafe*(H/Hacc)*(Err**2/ErrOld)**(-0.25d0)
+               FacGus=MIN(FacMax,MAX(FacMin,FacGus))
+               Fac=MIN(Fac,FacGus)
+               Hnew = Fac*H
+            END IF
+            Hacc=H
+            ErrOld=MAX(1.0d-2,Err)
+         END IF
+         Hold = H
+         T = T+H 
+         ! Update solution: Y <- Y + sum(d_i Z_i)
+         IF (rkD(1)/=ZERO) CALL WAXPY(N,rkD(1),Z1,1,Y,1)
+         IF (rkD(2)/=ZERO) CALL WAXPY(N,rkD(2),Z2,1,Y,1)
+         IF (rkD(3)/=ZERO) CALL WAXPY(N,rkD(3),Z3,1,Y,1)
+         ! Update TLM solution: Y <- Y + sum(d_i*Z_i_tlm)
+         DO itlm = 1,NTLM
+            IF (rkD(1)/=ZERO) CALL WAXPY(N,rkD(1),Z1_tlm(1,itlm),1,Y_tlm(1,itlm),1)
+            IF (rkD(2)/=ZERO) CALL WAXPY(N,rkD(2),Z2_tlm(1,itlm),1,Y_tlm(1,itlm),1)
+            IF (rkD(3)/=ZERO) CALL WAXPY(N,rkD(3),Z3_tlm(1,itlm),1,Y_tlm(1,itlm),1)
+         END DO   
+         ! Construct the solution quadratic interpolant Q(c_i) = Z_i, i=1:3
+         IF (StartNewton) CALL RK_Interpolate('make',N,H,Hold,Z1,Z2,Z3,CONT)
+         CALL RK_ErrorScale(N,ITOL,AbsTol,RelTol,Y,SCAL)
+         RSTATUS(Ntexit) = T
+         RSTATUS(Nhnew)  = Hnew
+         RSTATUS(Nhacc)  = H
+         Hnew = Tdirection*MIN( MAX(ABS(Hnew),Hmin) , Hmax )
+         IF (Reject) Hnew = Tdirection*MIN(ABS(Hnew),ABS(H))
+         Reject = .FALSE.
+         IF ((T+Hnew/Qmin-Tend)*Tdirection >=  ZERO) THEN
+            H = Tend-T
+         ELSE
+            Hratio=Hnew/H
+            ! Reuse the LU decomposition
+            SkipLU = (Theta<=ThetaMin) .AND. (Hratio>=Qmin) .AND. (Hratio<=Qmax)
+            ! For TLM: do not skip LU (decrease TLM error)
+  	    SkipLU = .FALSE.
+            IF (.NOT.SkipLU) H=Hnew
+         END IF
+         ! If convergence is fast enough, do not update Jacobian
+!         SkipJac = (Theta <= ThetaMin)
+         SkipJac  = .FALSE.	! For TLM: do not skip jac
+
+      ELSE accept !~~~> Step is rejected
+
+         IF (FirstStep .OR. Reject) THEN
+             H = FacRej*H
+         ELSE
+             H = Hnew
+         END IF
+         Reject   = .TRUE.
+         SkipJac  = .TRUE.
+         SkipLU   = .FALSE. 
+         IF (ISTATUS(Nacc) >= 1) ISTATUS(Nrej) = ISTATUS(Nrej) + 1
+
+      END IF accept
+      
+    END DO Tloop
+    
+    ! Successful exit
+    IERR = 1  
+
+ END SUBROUTINE RK_IntegratorTLM
+
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE RK_ErrorMsg(Code,T,H,IERR)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!    Handles all error messages
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+   IMPLICIT NONE
+   KPP_REAL, INTENT(IN) :: T, H
+   INTEGER, INTENT(IN)  :: Code
+   INTEGER, INTENT(OUT) :: IERR
+
+   IERR = Code
+   PRINT * , &
+     'Forced exit from RungeKutta due to the following error:'
+
+
+   SELECT CASE (Code)
+    CASE (-1)
+      PRINT * , '--> Improper value for maximal no of steps'
+    CASE (-2)
+      PRINT * , '--> Improper value for maximal no of Newton iterations'
+    CASE (-3)
+      PRINT * , '--> Hmin/Hmax/Hstart must be positive'
+    CASE (-4)
+      PRINT * , '--> Improper values for FacMin/FacMax/FacSafe/FacRej'
+    CASE (-5)
+      PRINT * , '--> Improper value for ThetaMin'
+    CASE (-6)
+      PRINT * , '--> Newton stopping tolerance too small'
+    CASE (-7)
+      PRINT * , '--> Improper values for Qmin, Qmax'
+    CASE (-8)
+      PRINT * , '--> Tolerances are too small'
+    CASE (-9)
+      PRINT * , '--> No of steps exceeds maximum bound'
+    CASE (-10)
+      PRINT * , '--> Step size too small: T + 10*H = T', &
+            ' or H < Roundoff'
+    CASE (-11)
+      PRINT * , '--> Matrix is repeatedly singular'
+    CASE (-12)
+      PRINT * , '--> Non-convergence of Newton iterations'
+    CASE (-13)
+      PRINT * , '--> Requested RK method not implemented'
+    CASE DEFAULT
+      PRINT *, 'Unknown Error code: ', Code
+   END SELECT
+
+   WRITE(6,FMT="(5X,'T=',E12.5,'  H=',E12.5)") T, H 
+
+ END SUBROUTINE RK_ErrorMsg
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE RK_ErrorScale(N,ITOL,AbsTol,RelTol,Y,SCAL)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!    Handles all error messages
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   IMPLICIT NONE
+   INTEGER, INTENT(IN)  :: N, ITOL
+   KPP_REAL, INTENT(IN) :: AbsTol(*), RelTol(*), Y(N)
+   KPP_REAL, INTENT(OUT) :: SCAL(N)
+   INTEGER :: i
+   
+   IF (ITOL==0) THEN
+       DO i=1,N
+          SCAL(i)= ONE/(AbsTol(1)+RelTol(1)*ABS(Y(i)))
+       END DO
+   ELSE
+       DO i=1,N
+          SCAL(i)=ONE/(AbsTol(i)+RelTol(i)*ABS(Y(i)))
+       END DO
+   END IF
+      
+ END SUBROUTINE RK_ErrorScale
+
+
+!!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!  SUBROUTINE RK_Transform(N,Tr,Z1,Z2,Z3,W1,W2,W3)
+!!~~~>                 W <-- Tr x Z
+!!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!      IMPLICIT NONE
+!      INTEGER :: N, i
+!      KPP_REAL :: Tr(3,3),Z1(N),Z2(N),Z3(N),W1(N),W2(N),W3(N)
+!      KPP_REAL :: x1, x2, x3
+!      DO i=1,N
+!          x1 = Z1(i); x2 = Z2(i); x3 = Z3(i)
+!          W1(i) = Tr(1,1)*x1 + Tr(1,2)*x2 + Tr(1,3)*x3
+!          W2(i) = Tr(2,1)*x1 + Tr(2,2)*x2 + Tr(2,3)*x3
+!          W3(i) = Tr(3,1)*x1 + Tr(3,2)*x2 + Tr(3,3)*x3
+!      END DO
+!  END SUBROUTINE RK_Transform
+ 
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE RK_Interpolate(action,N,H,Hold,Z1,Z2,Z3,CONT)
+!~~~>   Constructs or evaluates a quadratic polynomial
+!         that interpolates the Z solution at current step
+!         and provides starting values for the next step
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      INTEGER, INTENT(IN) :: N
+      KPP_REAL, INTENT(IN) :: H,Hold
+      KPP_REAL, INTENT(INOUT) :: Z1(N),Z2(N),Z3(N),CONT(N,3)
+      CHARACTER(LEN=4), INTENT(IN) :: action
+      KPP_REAL :: r, x1, x2, x3, den
+      INTEGER :: i
+       
+      SELECT CASE (action) 
+      CASE ('make')
+         ! Construct the solution quadratic interpolant Q(c_i) = Z_i, i=1:3
+         den = (rkC(3)-rkC(2))*(rkC(2)-rkC(1))*(rkC(1)-rkC(3))
+         DO i=1,N
+             CONT(i,1)=(-rkC(3)**2*rkC(2)*Z1(i)+Z3(i)*rkC(2)*rkC(1)**2 &
+                        +rkC(2)**2*rkC(3)*Z1(i)-rkC(2)**2*rkC(1)*Z3(i) &
+                        +rkC(3)**2*rkC(1)*Z2(i)-Z2(i)*rkC(3)*rkC(1)**2)&
+                        /den-Z3(i)
+             CONT(i,2)= -( rkC(1)**2*(Z3(i)-Z2(i)) + rkC(2)**2*(Z1(i)  &
+                          -Z3(i)) +rkC(3)**2*(Z2(i)-Z1(i)) )/den
+             CONT(i,3)= ( rkC(1)*(Z3(i)-Z2(i)) + rkC(2)*(Z1(i)-Z3(i))  &
+                           +rkC(3)*(Z2(i)-Z1(i)) )/den
+         END DO
+      CASE ('eval')
+          ! Evaluate quadratic polynomial
+          r = H/Hold
+         x1 = ONE + rkC(1)*r
+         x2 = ONE + rkC(2)*r
+         x3 = ONE + rkC(3)*r
+         DO i=1,N
+            Z1(i) = CONT(i,1)+x1*(CONT(i,2)+x1*CONT(i,3))
+            Z2(i) = CONT(i,1)+x2*(CONT(i,2)+x2*CONT(i,3))
+            Z3(i) = CONT(i,1)+x3*(CONT(i,2)+x3*CONT(i,3))
+         END DO
+       END SELECT   
+  END SUBROUTINE RK_Interpolate
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE RK_PrepareRHS(N,T,H,Y,Z1,Z2,Z3,R1,R2,R3)
+!~~~> Prepare the right-hand side for Newton iterations
+!     R = Z - hA x F
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      
+      INTEGER, INTENT(IN) :: N
+      KPP_REAL, INTENT(IN) :: T, H
+      KPP_REAL, INTENT(IN), DIMENSION(N) :: Y,Z1,Z2,Z3
+      KPP_REAL, INTENT(INOUT), DIMENSION(N) :: R1,R2,R3
+      KPP_REAL, DIMENSION(N) :: F, TMP
+      
+      CALL WCOPY(N,Z1,1,R1,1) ! R1 <- Z1
+      CALL WCOPY(N,Z2,1,R2,1) ! R2 <- Z2
+      CALL WCOPY(N,Z3,1,R3,1) ! R3 <- Z3
+
+      CALL WADD(N,Y,Z1,TMP)              ! TMP <- Y + Z1
+      CALL FUN_CHEM(T+rkC(1)*H,TMP,F)    ! F1 <- Fun(Y+Z1)         
+      CALL WAXPY(N,-H*rkA(1,1),F,1,R1,1) ! R1 <- R1 - h*A_11*F1
+      CALL WAXPY(N,-H*rkA(2,1),F,1,R2,1) ! R2 <- R2 - h*A_21*F1
+      CALL WAXPY(N,-H*rkA(3,1),F,1,R3,1) ! R3 <- R3 - h*A_31*F1
+
+      CALL WADD(N,Y,Z2,TMP)              ! TMP <- Y + Z2
+      CALL FUN_CHEM(T+rkC(2)*H,TMP,F)    ! F2 <- Fun(Y+Z2)        
+      CALL WAXPY(N,-H*rkA(1,2),F,1,R1,1) ! R1 <- R1 - h*A_12*F2
+      CALL WAXPY(N,-H*rkA(2,2),F,1,R2,1) ! R2 <- R2 - h*A_22*F2
+      CALL WAXPY(N,-H*rkA(3,2),F,1,R3,1) ! R3 <- R3 - h*A_32*F2
+
+      CALL WADD(N,Y,Z3,TMP)              ! TMP <- Y + Z3
+      CALL FUN_CHEM(T+rkC(3)*H,TMP,F)    ! F3 <- Fun(Y+Z3)     
+      CALL WAXPY(N,-H*rkA(1,3),F,1,R1,1) ! R1 <- R1 - h*A_13*F3
+      CALL WAXPY(N,-H*rkA(2,3),F,1,R2,1) ! R2 <- R2 - h*A_23*F3
+      CALL WAXPY(N,-H*rkA(3,3),F,1,R3,1) ! R3 <- R3 - h*A_33*F3
+            
+  END SUBROUTINE RK_PrepareRHS
+  
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE RK_PrepareRHS_TLM(N,H,Jac1,Jac2,Jac3,Y_tlm, &
+                      Z1_tlm,Z2_tlm,Z3_tlm,R1,R2,R3)
+!~~~> Prepare the right-hand side for Newton iterations
+!     R = Z_tlm - hA x Jac*Z_tlm
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      
+      INTEGER, INTENT(IN) :: N
+      KPP_REAL, INTENT(IN) :: H
+      KPP_REAL, INTENT(IN), DIMENSION(N) :: Y_tlm,Z1_tlm,Z2_tlm,Z3_tlm
+      KPP_REAL, INTENT(INOUT), DIMENSION(N) :: R1,R2,R3
+#ifdef FULL_ALGEBRA      
+      KPP_REAL, INTENT(IN), DIMENSION(NVAR,NVAR)  :: Jac1, Jac2, Jac3
+#else      
+      KPP_REAL, INTENT(IN), DIMENSION(LU_NONZERO) :: Jac1, Jac2, Jac3
+#endif
+      KPP_REAL, DIMENSION(N) :: F, TMP
+
+      CALL WCOPY(N,Z1_tlm,1,R1,1) ! R1 <- Z1_tlm
+      CALL WCOPY(N,Z2_tlm,1,R2,1) ! R2 <- Z2_tlm
+      CALL WCOPY(N,Z3_tlm,1,R3,1) ! R3 <- Z3_tlm
+
+      CALL WADD(N,Y_tlm,Z1_tlm,TMP)      ! TMP <- Y + Z1
+#ifdef FULL_ALGEBRA  
+      F = MATMUL(Jac1,TMP)    
+#else      
+      CALL Jac_SP_Vec ( Jac1, TMP, F )   ! F1 <- Jac(Y+Z1)*(Y_tlm+Z1_tlm)  
+#endif      
+      CALL WAXPY(N,-H*rkA(1,1),F,1,R1,1) ! R1 <- R1 - h*A_11*F1
+      CALL WAXPY(N,-H*rkA(2,1),F,1,R2,1) ! R2 <- R2 - h*A_21*F1
+      CALL WAXPY(N,-H*rkA(3,1),F,1,R3,1) ! R3 <- R3 - h*A_31*F1
+
+      CALL WADD(N,Y_tlm,Z2_tlm,TMP)      ! TMP <- Y + Z2
+#ifdef FULL_ALGEBRA      
+      F = MATMUL(Jac2,TMP)    
+#else      
+      CALL Jac_SP_Vec ( Jac2, TMP, F )   ! F2 <- Jac(Y+Z2)*(Y_tlm+Z2_tlm)  
+#endif      
+      CALL WAXPY(N,-H*rkA(1,2),F,1,R1,1) ! R1 <- R1 - h*A_12*F2
+      CALL WAXPY(N,-H*rkA(2,2),F,1,R2,1) ! R2 <- R2 - h*A_22*F2
+      CALL WAXPY(N,-H*rkA(3,2),F,1,R3,1) ! R3 <- R3 - h*A_32*F2
+
+      CALL WADD(N,Y_tlm,Z3_tlm,TMP)      ! TMP <- Y + Z3
+#ifdef FULL_ALGEBRA      
+      F = MATMUL(Jac3,TMP)    
+#else      
+      CALL Jac_SP_Vec ( Jac3, TMP, F )   ! F3 <- Jac(Y+Z3)*(Y_tlm+Z3_tlm)  
+#endif      
+      CALL WAXPY(N,-H*rkA(1,3),F,1,R1,1) ! R1 <- R1 - h*A_13*F3
+      CALL WAXPY(N,-H*rkA(2,3),F,1,R2,1) ! R2 <- R2 - h*A_23*F3
+      CALL WAXPY(N,-H*rkA(3,3),F,1,R3,1) ! R3 <- R3 - h*A_33*F3
+            
+  END SUBROUTINE RK_PrepareRHS_TLM
+  
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE RK_PrepareRHS_TLMdirect(N,H,Jac1,Jac2,Jac3,Y_tlm,Zbig)
+!~~~> Prepare the right-hand side for direct solution
+!     Z =  hA x Jac*Y_tlm
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      
+      INTEGER, INTENT(IN) :: N
+      KPP_REAL, INTENT(IN) :: H
+      KPP_REAL, INTENT(IN), DIMENSION(N) :: Y_tlm
+! Commented code for sparse big linear algebra:  
+!      KPP_REAL, INTENT(OUT), DIMENSION(3,N) :: Zbig
+      KPP_REAL, INTENT(OUT), DIMENSION(3*N) :: Zbig
+#ifdef FULL_ALGEBRA      
+      KPP_REAL, INTENT(IN), DIMENSION(NVAR,NVAR)  :: Jac1, Jac2, Jac3
+#else      
+      KPP_REAL, INTENT(IN), DIMENSION(LU_NONZERO) :: Jac1, Jac2, Jac3
+#endif
+      KPP_REAL, DIMENSION(N) :: F, TMP
+
+#ifdef FULL_ALGEBRA  
+      F = MATMUL(Jac1,Y_tlm)    
+#else      
+      CALL Jac_SP_Vec ( Jac1, Y_tlm, F )   ! F1 <- Jac(Y+Z1)*(Y_tlm)  
+#endif      
+! Commented code for sparse big linear algebra:  
+!      Zbig(1,1:N) = H*rkA(1,1)*F(1:N)
+!      Zbig(2,1:N) = H*rkA(2,1)*F(1:N)
+!      Zbig(3,1:N) = H*rkA(3,1)*F(1:N)
+      Zbig(1:N)       = H*rkA(1,1)*F(1:N)
+      Zbig(N+1:2*N)   = H*rkA(2,1)*F(1:N)
+      Zbig(2*N+1:3*N) = H*rkA(3,1)*F(1:N)
+
+#ifdef FULL_ALGEBRA      
+      F = MATMUL(Jac2,Y_tlm)    
+#else      
+      CALL Jac_SP_Vec ( Jac2, Y_tlm, F )   ! F2 <- Jac(Y+Z2)*(Y_tlm)  
+#endif    
+! Commented code for sparse big linear algebra:  
+!      Zbig(1,1:N) = Zbig(1,1:N) + H*rkA(1,2)*F(1:N)
+!      Zbig(2,1:N) = Zbig(2,1:N) + H*rkA(2,2)*F(1:N)
+!      Zbig(3,1:N) = Zbig(3,1:N) + H*rkA(3,2)*F(1:N)
+      Zbig(1:N)       = Zbig(1:N)       + H*rkA(1,2)*F(1:N)
+      Zbig(N+1:2*N)   = Zbig(N+1:2*N)   + H*rkA(2,2)*F(1:N)
+      Zbig(2*N+1:3*N) = Zbig(2*N+1:3*N) + H*rkA(3,2)*F(1:N)
+
+#ifdef FULL_ALGEBRA      
+      F = MATMUL(Jac3,Y_tlm)    
+#else      
+      CALL Jac_SP_Vec ( Jac3, Y_tlm, F )   ! F3 <- Jac(Y+Z3)*(Y_tlm)  
+#endif      
+! Commented code for sparse big linear algebra:  
+!      Zbig(1,1:N) = Zbig(1,1:N) + H*rkA(1,3)*F(1:N)
+!      Zbig(2,1:N) = Zbig(2,1:N) + H*rkA(2,3)*F(1:N)
+!      Zbig(3,1:N) = Zbig(3,1:N) + H*rkA(3,3)*F(1:N)
+      Zbig(1:N)       = Zbig(1:N)       + H*rkA(1,3)*F(1:N)
+      Zbig(N+1:2*N)   = Zbig(N+1:2*N)   + H*rkA(2,3)*F(1:N)
+      Zbig(2*N+1:3*N) = Zbig(2*N+1:3*N) + H*rkA(3,3)*F(1:N)
+            
+  END SUBROUTINE RK_PrepareRHS_TLMdirect
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE RK_Decomp(N,H,FJAC,E1,IP1,E2,IP2,ISING)
+   !~~~> Compute the matrices E1 and E2 and their decompositions
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      
+      INTEGER, INTENT(IN) :: N
+      KPP_REAL, INTENT(IN) :: H
+#ifdef FULL_ALGEBRA      
+      KPP_REAL, INTENT(IN) :: FJAC(NVAR,NVAR)
+      KPP_REAL, INTENT(OUT) ::E1(NVAR,NVAR)
+      COMPLEX(kind=dp), INTENT(OUT) :: E2(N,N)
+#else      
+      KPP_REAL, INTENT(IN) :: FJAC(LU_NONZERO)
+      KPP_REAL, INTENT(OUT) :: E1(LU_NONZERO)
+      COMPLEX(kind=dp),INTENT(OUT) :: E2(LU_NONZERO)
+#endif      
+      INTEGER, INTENT(OUT) :: IP1(N), IP2(N), ISING
+
+      INTEGER :: i, j
+      KPP_REAL    :: Alpha, Beta, Gamma
+      
+      Gamma = rkGamma/H
+      Alpha = rkAlpha/H
+      Beta  = rkBeta /H
+
+#ifdef FULL_ALGEBRA      
+      DO j=1,N
+         DO  i=1,N
+            E1(i,j)=-FJAC(i,j)
+         END DO
+         E1(j,j)=E1(j,j)+Gamma
+      END DO
+      CALL DGETRF(N,N,E1,N,IP1,ISING) 
+#else      
+      DO i=1,LU_NONZERO
+         E1(i)=-FJAC(i)
+      END DO
+      DO i=1,NVAR
+         j=LU_DIAG(i); E1(j)=E1(j)+Gamma
+      END DO
+      CALL KppDecomp(E1,ISING)
+#endif      
+      
+      IF (ISING /= 0) THEN
+         ISTATUS(Ndec) = ISTATUS(Ndec) + 1
+         RETURN
+      END IF
+     
+#ifdef FULL_ALGEBRA      
+      DO j=1,N
+        DO i=1,N
+          E2(i,j) = DCMPLX( -FJAC(i,j), ZERO )
+        END DO
+        E2(j,j) = E2(j,j) + CMPLX( Alpha, Beta )
+      END DO
+      CALL ZGETRF(N,N,E2,N,IP2,ISING)     
+#else  
+      DO i=1,LU_NONZERO
+         E2(i) = DCMPLX( -FJAC(i), ZERO )
+      END DO
+      DO i=1,NVAR
+         j = LU_DIAG(i); E2(j)=E2(j) + CMPLX( Alpha, Beta )
+      END DO
+      CALL KppDecompCmplx(E2,ISING)    
+#endif      
+      ISTATUS(Ndec) = ISTATUS(Ndec) + 1
+      
+   END SUBROUTINE RK_Decomp
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE RK_Solve(N,H,E1,IP1,E2,IP2,R1,R2,R3,ISING)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      INTEGER, INTENT(IN) :: N,IP1(NVAR),IP2(NVAR)
+      INTEGER, INTENT(OUT) :: ISING
+#ifdef FULL_ALGEBRA      
+      KPP_REAL, INTENT(IN) :: E1(NVAR,NVAR)
+      COMPLEX(kind=dp), INTENT(IN) :: E2(NVAR,NVAR)
+#else      
+      KPP_REAL, INTENT(IN) :: E1(LU_NONZERO)
+      COMPLEX(kind=dp), INTENT(IN) :: E2(LU_NONZERO)
+#endif      
+      KPP_REAL, INTENT(IN) :: H
+      KPP_REAL, INTENT(INOUT) :: R1(N),R2(N),R3(N)
+
+      KPP_REAL    :: x1, x2, x3
+      COMPLEX(kind=dp) :: BC(N)
+      INTEGER :: i
+!      
+     ! Z <- h^{-1) T^{-1) A^{-1) x Z
+      DO i=1,N
+          x1 = R1(i)/H; x2 = R2(i)/H; x3 = R3(i)/H
+          R1(i) = rkTinvAinv(1,1)*x1 + rkTinvAinv(1,2)*x2 + rkTinvAinv(1,3)*x3
+          R2(i) = rkTinvAinv(2,1)*x1 + rkTinvAinv(2,2)*x2 + rkTinvAinv(2,3)*x3
+          R3(i) = rkTinvAinv(3,1)*x1 + rkTinvAinv(3,2)*x2 + rkTinvAinv(3,3)*x3
+      END DO
+
+#ifdef FULL_ALGEBRA      
+      CALL DGETRS ('N',N,1,E1,N,IP1,R1,N,0) 
+#else      
+      CALL KppSolve (E1,R1)
+#endif      
+!      
+      DO i=1,N
+        BC(i) = DCMPLX(R2(i),R3(i))
+      END DO
+#ifdef FULL_ALGEBRA      
+      CALL ZGETRS ('N',N,1,E2,N,IP2,BC,N,0) 
+#else      
+      CALL KppSolveCmplx (E2,BC)
+#endif      
+      DO i=1,N
+        R2(i) = DBLE( BC(i) )
+        R3(i) = AIMAG( BC(i) )
+      END DO
+
+      ! Z <- T x Z
+      DO i=1,N
+          x1 = R1(i); x2 = R2(i); x3 = R3(i)
+          R1(i) = rkT(1,1)*x1 + rkT(1,2)*x2 + rkT(1,3)*x3
+          R2(i) = rkT(2,1)*x1 + rkT(2,2)*x2 + rkT(2,3)*x3
+          R3(i) = rkT(3,1)*x1 + rkT(3,2)*x2 + rkT(3,3)*x3
+      END DO
+
+      ISTATUS(Nsol) = ISTATUS(Nsol) + 1
+
+   END SUBROUTINE RK_Solve
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE RK_ErrorEstimate(N,H,Y,T,      &
+               E1,IP1,Z1,Z2,Z3,SCAL,Err,     &
+               FirstStep,Reject)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      
+      INTEGER, INTENT(IN) :: N, IP1(N)
+#ifdef FULL_ALGEBRA      
+      KPP_REAL, INTENT(IN) :: E1(NVAR,NVAR)
+#else      
+      KPP_REAL, INTENT(IN) :: E1(LU_NONZERO)
+#endif      
+      KPP_REAL, INTENT(IN) :: T,H,SCAL(N),Z1(N),Z2(N),Z3(N),Y(N)
+      LOGICAL,INTENT(IN) :: FirstStep,Reject
+      KPP_REAL, INTENT(INOUT) :: Err
+
+      KPP_REAL :: F1(N),F2(N),F0(N),TMP(N)
+      INTEGER :: i
+      KPP_REAL :: HEE1,HEE2,HEE3
+
+      HEE1  = rkE(1)/H
+      HEE2  = rkE(2)/H
+      HEE3  = rkE(3)/H
+
+      CALL FUN_CHEM(T,Y,F0)
+      ISTATUS(Nfun) = ISTATUS(Nfun) + 1
+
+      DO  i=1,N
+         F2(i)  = HEE1*Z1(i)+HEE2*Z2(i)+HEE3*Z3(i)
+         TMP(i) = rkE(0)*F0(i) + F2(i)
+      END DO
+
+#ifdef FULL_ALGEBRA      
+      CALL DGETRS ('N',N,1,E1,N,IP1,TMP,N,0) 
+      IF ((rkMethod==R1A).OR.(rkMethod==GAU).OR.(rkMethod==L3A)) CALL DGETRS ('N',N,1,E1,N,IP1,TMP,N,0)
+      IF (rkMethod==GAU) CALL DGETRS ('N',N,1,E1,N,IP1,TMP,N,0)
+#else      
+      CALL KppSolve (E1, TMP)
+      IF ((rkMethod==R1A).OR.(rkMethod==GAU).OR.(rkMethod==L3A)) CALL KppSolve (E1,TMP)
+      IF (rkMethod==GAU) CALL KppSolve (E1,TMP)
+#endif      
+
+      Err = RK_ErrorNorm(N,SCAL,TMP)
+!
+      IF (Err < ONE) RETURN
+firej:IF (FirstStep.OR.Reject) THEN
+          DO i=1,N
+             TMP(i)=Y(i)+TMP(i)
+          END DO
+          CALL FUN_CHEM(T,TMP,F1)    
+          ISTATUS(Nfun) = ISTATUS(Nfun) + 1
+          DO i=1,N
+             TMP(i)=F1(i)+F2(i)
+          END DO
+
+#ifdef FULL_ALGEBRA      
+          CALL DGETRS ('N',N,1,E1,N,IP1,TMP,N,0) 
+#else      
+          CALL KppSolve (E1, TMP)
+#endif      
+          Err = RK_ErrorNorm(N,SCAL,TMP)
+       END IF firej
+ 
+   END SUBROUTINE RK_ErrorEstimate
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE RK_ErrorEstimate_tlm(N,NTLM,T,H,FJAC,Y,Y_tlm, &
+               E1,IP1,Z1_tlm,Z2_tlm,Z3_tlm,FWD_Err,     &
+               FirstStep,Reject)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      
+      INTEGER, INTENT(IN) :: N,NTLM,IP1(N)
+#ifdef FULL_ALGEBRA      
+      KPP_REAL, INTENT(IN) :: FJAC(N,N),  E1(N,N)
+      KPP_REAL :: J0(N,N)
+#else      
+      KPP_REAL, INTENT(IN) :: FJAC(LU_NONZERO), E1(LU_NONZERO)
+      KPP_REAL :: J0(LU_NONZERO)
+#endif      
+      KPP_REAL, INTENT(IN) :: T,H, Z1_tlm(N,NTLM),Z2_tlm(N,NTLM),Z3_tlm(N,NTLM), &
+      				Y_tlm(N,NTLM), Y(N)
+      LOGICAL, INTENT(IN) :: FirstStep, Reject
+      KPP_REAL, INTENT(INOUT) :: FWD_Err
+
+      INTEGER :: itlm
+      KPP_REAL :: HEE1,HEE2,HEE3, SCAL_tlm(N), Err, TMP(N), TMP2(N), JY_tlm(N)
+	
+	HEE1  = rkE(1)/H
+	HEE2  = rkE(2)/H
+	HEE3  = rkE(3)/H
+	
+      DO itlm=1,NTLM
+        CALL RK_ErrorScale(N,ITOL,AbsTol_tlm(1,itlm),RelTol_tlm(1,itlm), &
+              Y_tlm(1,itlm),SCAL_tlm)
+
+ 	CALL JAC_CHEM(T,Y,J0)
+	ISTATUS(Njac) = ISTATUS(Njac) + 1
+	CALL JAC_SP_Vec(J0,Y_tlm(1,itlm),JY_tlm)
+
+	DO  i=1,N
+          TMP2(i)  = HEE1*Z1_tlm(i,itlm)+HEE2*Z2_tlm(i,itlm)+HEE3*Z3_tlm(i,itlm)
+          TMP(i) = rkE(0)*JY_tlm(i) + TMP2(i)
+	END DO
+
+#ifdef FULL_ALGEBRA      
+	CALL DGETRS ('N',N,1,E1,N,IP1,TMP,N,0) 
+!	IF ((ICNTRL(3)==3).OR.(ICNTRL(3)==4)) CALL DGETRS ('N',N,1,E1,N,IP1,TMP,N,0)
+!	IF (ICNTRL(3)==3) CALL DGETRS ('N',N,1,E1,N,IP1,TMP,N,0)
+#else      
+	CALL KppSolve (E1, TMP)
+!	IF ((ICNTRL(3)==3).OR.(ICNTRL(3)==4)) THEN
+!          CALL KppSolve (E1,TMP)
+!	END IF  
+!	IF (ICNTRL(3)==3) THEN
+!          CALL KppSolve (E1,TMP)
+!	END IF  
+#endif      
+
+        Err = RK_ErrorNorm(N,SCAL_tlm,TMP)
+!
+	FWD_Err = MAX(FWD_Err, Err)
+      END DO
+      
+   END SUBROUTINE RK_ErrorEstimate_tlm
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   KPP_REAL FUNCTION RK_ErrorNorm(N,SCAL,DY)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      
+      INTEGER, INTENT(IN) :: N
+      KPP_REAL, INTENT(IN) :: SCAL(N),DY(N)
+      INTEGER :: i
+
+      RK_ErrorNorm = ZERO
+      DO i=1,N
+          RK_ErrorNorm = RK_ErrorNorm + (DY(i)*SCAL(i))**2
+      END DO
+      RK_ErrorNorm = MAX( SQRT(RK_ErrorNorm/N), 1.0d-10 )
+ 
+   END FUNCTION RK_ErrorNorm
+  
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE Radau2A_Coefficients
+!    The coefficients of the 3-stage Radau-2A method
+!    (given to ~30 accurate digits)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
+      IMPLICIT NONE
+! The coefficients of the Radau2A method
+      KPP_REAL :: b0
+
+!      b0 = 1.0d0
+      IF (SdirkError) THEN
+        b0 = 0.2d-1
+      ELSE
+        b0 = 0.5d-1
+      END IF
+
+! The coefficients of the Radau2A method
+      rkMethod = R2A
+
+      rkA(1,1) =  1.968154772236604258683861429918299d-1
+      rkA(1,2) = -6.55354258501983881085227825696087d-2
+      rkA(1,3) =  2.377097434822015242040823210718965d-2
+      rkA(2,1) =  3.944243147390872769974116714584975d-1
+      rkA(2,2) =  2.920734116652284630205027458970589d-1
+      rkA(2,3) = -4.154875212599793019818600988496743d-2
+      rkA(3,1) =  3.764030627004672750500754423692808d-1
+      rkA(3,2) =  5.124858261884216138388134465196080d-1
+      rkA(3,3) =  1.111111111111111111111111111111111d-1
+
+      rkB(1) = 3.764030627004672750500754423692808d-1
+      rkB(2) = 5.124858261884216138388134465196080d-1
+      rkB(3) = 1.111111111111111111111111111111111d-1
+
+      rkC(1) = 1.550510257216821901802715925294109d-1
+      rkC(2) = 6.449489742783178098197284074705891d-1
+      rkC(3) = 1.0d0
+      
+      ! New solution: H* Sum B_j*f(Z_j) = Sum D_j*Z_j
+      rkD(1) = 0.0d0
+      rkD(2) = 0.0d0
+      rkD(3) = 1.0d0
+
+      ! Classical error estimator: 
+      ! H* Sum (B_j-Bhat_j)*f(Z_j) = H*E(0)*f(0) + Sum E_j*Z_j
+      rkE(0) = 1.0d0*b0
+      rkE(1) = -10.04880939982741556246032950764708d0*b0
+      rkE(2) = 1.382142733160748895793662840980412d0*b0
+      rkE(3) = -.3333333333333333333333333333333333d0*b0
+
+      ! Sdirk error estimator
+      rkBgam(0) = b0
+      rkBgam(1) = .3764030627004672750500754423692807d0-1.558078204724922382431975370686279d0*b0
+      rkBgam(2) = .8914115380582557157653087040196118d0*b0+.5124858261884216138388134465196077d0
+      rkBgam(3) = -.1637777184845662566367174924883037d0-.3333333333333333333333333333333333d0*b0
+      rkBgam(4) = .2748888295956773677478286035994148d0
+
+      ! H* Sum Bgam_j*f(Z_j) = H*Bgam(0)*f(0) + Sum Theta_j*Z_j
+      rkTheta(1) = -1.520677486405081647234271944611547d0-10.04880939982741556246032950764708d0*b0
+      rkTheta(2) = 2.070455145596436382729929151810376d0+1.382142733160748895793662840980413d0*b0
+      rkTheta(3) = -.3333333333333333333333333333333333d0*b0-.3744441479783868387391430179970741d0
+
+      ! Local order of error estimator 
+      IF (b0==0.0d0) THEN
+        rkELO  = 6.0d0
+      ELSE	
+        rkELO  = 4.0d0
+      END IF	
+
+      !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      !~~~> Diagonalize the RK matrix:               
+      ! rkTinv * inv(rkA) * rkT =          
+      !           |  rkGamma      0           0     |
+      !           |      0      rkAlpha   -rkBeta   |
+      !           |      0      rkBeta     rkAlpha  |
+      !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      rkGamma = 3.637834252744495732208418513577775d0
+      rkAlpha = 2.681082873627752133895790743211112d0
+      rkBeta  = 3.050430199247410569426377624787569d0
+
+      rkT(1,1) =  9.443876248897524148749007950641664d-2
+      rkT(1,2) = -1.412552950209542084279903838077973d-1
+      rkT(1,3) = -3.00291941051474244918611170890539d-2
+      rkT(2,1) =  2.502131229653333113765090675125018d-1
+      rkT(2,2) =  2.041293522937999319959908102983381d-1
+      rkT(2,3) =  3.829421127572619377954382335998733d-1
+      rkT(3,1) =  1.0d0
+      rkT(3,2) =  1.0d0
+      rkT(3,3) =  0.0d0
+
+      rkTinv(1,1) =  4.178718591551904727346462658512057d0
+      rkTinv(1,2) =  3.27682820761062387082533272429617d-1
+      rkTinv(1,3) =  5.233764454994495480399309159089876d-1
+      rkTinv(2,1) = -4.178718591551904727346462658512057d0
+      rkTinv(2,2) = -3.27682820761062387082533272429617d-1
+      rkTinv(2,3) =  4.766235545005504519600690840910124d-1
+      rkTinv(3,1) = -5.02872634945786875951247343139544d-1
+      rkTinv(3,2) =  2.571926949855605429186785353601676d0
+      rkTinv(3,3) = -5.960392048282249249688219110993024d-1
+
+      rkTinvAinv(1,1) =  1.520148562492775501049204957366528d+1
+      rkTinvAinv(1,2) =  1.192055789400527921212348994770778d0
+      rkTinvAinv(1,3) =  1.903956760517560343018332287285119d0
+      rkTinvAinv(2,1) = -9.669512977505946748632625374449567d0
+      rkTinvAinv(2,2) = -8.724028436822336183071773193986487d0
+      rkTinvAinv(2,3) =  3.096043239482439656981667712714881d0
+      rkTinvAinv(3,1) = -1.409513259499574544876303981551774d+1
+      rkTinvAinv(3,2) =  5.895975725255405108079130152868952d0
+      rkTinvAinv(3,3) = -1.441236197545344702389881889085515d-1
+
+      rkAinvT(1,1) = .3435525649691961614912493915818282d0
+      rkAinvT(1,2) = -.4703191128473198422370558694426832d0
+      rkAinvT(1,3) = .3503786597113668965366406634269080d0
+      rkAinvT(2,1) = .9102338692094599309122768354288852d0
+      rkAinvT(2,2) = 1.715425895757991796035292755937326d0
+      rkAinvT(2,3) = .4040171993145015239277111187301784d0
+      rkAinvT(3,1) = 3.637834252744495732208418513577775d0
+      rkAinvT(3,2) = 2.681082873627752133895790743211112d0
+      rkAinvT(3,3) = -3.050430199247410569426377624787569d0
+
+  END SUBROUTINE Radau2A_Coefficients
+
+    
+
+    
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE Lobatto3C_Coefficients
+!    The coefficients of the 3-stage Lobatto-3C method
+!    (given to ~30 accurate digits)
+!    The parameter b0 can be chosen to tune the error estimator
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
+      IMPLICIT NONE
+      KPP_REAL :: b0
+
+      rkMethod = L3C
+
+!      b0 = 1.0d0
+      IF (SdirkError) THEN
+        b0 = 0.2d0
+      ELSE
+        b0 = 0.5d0
+      END IF
+! The coefficients of the Lobatto3C method
+
+      rkA(1,1) =  .1666666666666666666666666666666667d0
+      rkA(1,2) = -.3333333333333333333333333333333333d0
+      rkA(1,3) =  .1666666666666666666666666666666667d0
+      rkA(2,1) =  .1666666666666666666666666666666667d0
+      rkA(2,2) =  .4166666666666666666666666666666667d0
+      rkA(2,3) = -.8333333333333333333333333333333333d-1
+      rkA(3,1) =  .1666666666666666666666666666666667d0
+      rkA(3,2) =  .6666666666666666666666666666666667d0
+      rkA(3,3) =  .1666666666666666666666666666666667d0
+
+      rkB(1) = .1666666666666666666666666666666667d0
+      rkB(2) = .6666666666666666666666666666666667d0
+      rkB(3) = .1666666666666666666666666666666667d0
+
+      rkC(1) = 0.0d0
+      rkC(2) = 0.5d0
+      rkC(3) = 1.0d0
+
+      ! Classical error estimator, embedded solution: 
+      rkBhat(0) = b0
+      rkBhat(1) = .16666666666666666666666666666666667d0-b0
+      rkBhat(2) = .66666666666666666666666666666666667d0
+      rkBhat(3) = .16666666666666666666666666666666667d0
+      
+      ! New solution: h Sum_j b_j f(Z_j) = sum d_j Z_j
+      rkD(1) = 0.0d0
+      rkD(2) = 0.0d0
+      rkD(3) = 1.0d0
+
+      ! Classical error estimator: 
+      !   H* Sum (B_j-Bhat_j)*f(Z_j) = H*E(0)*f(0) + Sum E_j*Z_j
+      rkE(0) =   .3808338772072650364017425226487022*b0
+      rkE(1) = -1.142501631621795109205227567946107*b0
+      rkE(2) = -1.523335508829060145606970090594809*b0
+      rkE(3) =   .3808338772072650364017425226487022*b0
+
+      ! Sdirk error estimator
+      rkBgam(0) = b0
+      rkBgam(1) = .1666666666666666666666666666666667d0-1.d0*b0
+      rkBgam(2) = .6666666666666666666666666666666667d0
+      rkBgam(3) = -.2141672105405983697350758559820354d0
+      rkBgam(4) = .3808338772072650364017425226487021d0
+
+      ! H* Sum Bgam_j*f(Z_j) = H*Bgam(0)*f(0) + Sum Theta_j*Z_j
+      rkTheta(1) = -3.d0*b0-.3808338772072650364017425226487021d0
+      rkTheta(2) = -4.d0*b0+1.523335508829060145606970090594808d0
+      rkTheta(3) = -.142501631621795109205227567946106d0+b0
+
+      ! Local order of error estimator 
+      IF (b0==0.0d0) THEN
+        rkELO  = 5.0d0
+      ELSE	
+        rkELO  = 4.0d0
+      END IF	
+
+      !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      !~~~> Diagonalize the RK matrix:               
+      ! rkTinv * inv(rkA) * rkT =          
+      !           |  rkGamma      0           0     |
+      !           |      0      rkAlpha   -rkBeta   |
+      !           |      0      rkBeta     rkAlpha  |
+      !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      rkGamma = 2.625816818958466716011888933765284d0
+      rkAlpha = 1.687091590520766641994055533117359d0
+      rkBeta  = 2.508731754924880510838743672432351d0
+
+      rkT(1,1) = 1.d0
+      rkT(1,2) = 1.d0
+      rkT(1,3) = 0.d0
+      rkT(2,1) = .4554100411010284672111720348287483d0
+      rkT(2,2) = -.6027050205505142336055860174143743d0
+      rkT(2,3) = -.4309321229203225731070721341350346d0
+      rkT(3,1) = 2.195823345445647152832799205549709d0
+      rkT(3,2) = -1.097911672722823576416399602774855d0
+      rkT(3,3) = .7850032632435902184104551358922130d0
+
+      rkTinv(1,1) = .4205559181381766909344950150991349d0
+      rkTinv(1,2) = .3488903392193734304046467270632057d0
+      rkTinv(1,3) = .1915253879645878102698098373933487d0
+      rkTinv(2,1) = .5794440818618233090655049849008650d0
+      rkTinv(2,2) = -.3488903392193734304046467270632057d0
+      rkTinv(2,3) = -.1915253879645878102698098373933487d0
+      rkTinv(3,1) = -.3659705575742745254721332009249516d0
+      rkTinv(3,2) = -1.463882230297098101888532803699806d0
+      rkTinv(3,3) = .4702733607340189781407813565524989d0
+
+      rkTinvAinv(1,1) = 1.104302803159744452668648155627548d0
+      rkTinvAinv(1,2) = .916122120694355522658740710823143d0
+      rkTinvAinv(1,3) = .5029105849749601702795812241441172d0
+      rkTinvAinv(2,1) = 1.895697196840255547331351844372453d0
+      rkTinvAinv(2,2) = 3.083877879305644477341259289176857d0
+      rkTinvAinv(2,3) = -1.502910584974960170279581224144117d0
+      rkTinvAinv(3,1) = .8362439183082935036129145574774502d0
+      rkTinvAinv(3,2) = -3.344975673233174014451658229909802d0
+      rkTinvAinv(3,3) = .312908409479233358005944466882642d0
+
+      rkAinvT(1,1) = 2.625816818958466716011888933765282d0
+      rkAinvT(1,2) = 1.687091590520766641994055533117358d0
+      rkAinvT(1,3) = -2.508731754924880510838743672432351d0
+      rkAinvT(2,1) = 1.195823345445647152832799205549710d0
+      rkAinvT(2,2) = -2.097911672722823576416399602774855d0
+      rkAinvT(2,3) = .7850032632435902184104551358922130d0
+      rkAinvT(3,1) = 5.765829871932827589653709477334136d0
+      rkAinvT(3,2) = .1170850640335862051731452613329320d0
+      rkAinvT(3,3) = 4.078738281412060947659653944216779d0
+
+  END SUBROUTINE Lobatto3C_Coefficients
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE Gauss_Coefficients
+!    The coefficients of the 3-stage Gauss method
+!    (given to ~30 accurate digits)
+!    The parameter b3 can be chosen by the user
+!    to tune the error estimator
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
+      IMPLICIT NONE
+      KPP_REAL :: b0
+! The coefficients of the Gauss method
+
+
+      rkMethod = GAU
+      
+!      b0 = 4.0d0
+      b0 = 0.1d0
+      
+! The coefficients of the Gauss method
+
+      rkA(1,1) =  .1388888888888888888888888888888889d0
+      rkA(1,2) = -.359766675249389034563954710966045d-1
+      rkA(1,3) =  .97894440153083260495800422294756d-2
+      rkA(2,1) =  .3002631949808645924380249472131556d0
+      rkA(2,2) =  .2222222222222222222222222222222222d0
+      rkA(2,3) = -.224854172030868146602471694353778d-1
+      rkA(3,1) =  .2679883337624694517281977355483022d0
+      rkA(3,2) =  .4804211119693833479008399155410489d0
+      rkA(3,3) =  .1388888888888888888888888888888889d0
+
+      rkB(1) = .2777777777777777777777777777777778d0
+      rkB(2) = .4444444444444444444444444444444444d0
+      rkB(3) = .2777777777777777777777777777777778d0
+
+      rkC(1) = .1127016653792583114820734600217600d0
+      rkC(2) = .5000000000000000000000000000000000d0
+      rkC(3) = .8872983346207416885179265399782400d0
+
+      ! Classical error estimator, embedded solution: 
+      rkBhat(0) = b0
+      rkBhat(1) =-1.4788305577012361475298775666303999d0*b0 &
+                  +.27777777777777777777777777777777778d0
+      rkBhat(2) =  .44444444444444444444444444444444444d0 &
+                  +.66666666666666666666666666666666667d0*b0
+      rkBhat(3) = -.18783610896543051913678910003626672d0*b0 &
+                  +.27777777777777777777777777777777778d0
+
+      ! New solution: h Sum_j b_j f(Z_j) = sum d_j Z_j
+      rkD(1) = .1666666666666666666666666666666667d1
+      rkD(2) = -.1333333333333333333333333333333333d1
+      rkD(3) = .1666666666666666666666666666666667d1
+
+      ! Classical error estimator: 
+      !   H* Sum (B_j-Bhat_j)*f(Z_j) = H*E(0)*f(0) + Sum E_j*Z_j
+      rkE(0) = .2153144231161121782447335303806954d0*b0
+      rkE(1) = -2.825278112319014084275808340593191d0*b0
+      rkE(2) = .2870858974881495709929780405075939d0*b0
+      rkE(3) = -.4558086256248162565397206448274867d-1*b0
+
+      ! Sdirk error estimator
+      rkBgam(0) = 0.d0
+      rkBgam(1) = .2373339543355109188382583162660537d0
+      rkBgam(2) = .5879873931885192299409334646982414d0
+      rkBgam(3) = -.4063577064014232702392531134499046d-1
+      rkBgam(4) = .2153144231161121782447335303806955d0
+
+      ! H* Sum Bgam_j*f(Z_j) = H*Bgam(0)*f(0) + Sum Theta_j*Z_j
+      rkTheta(1) = -2.594040933093095272574031876464493d0
+      rkTheta(2) = 1.824611539036311947589425112250199d0
+      rkTheta(3) = .1856563166634371860478043996459493d0
+
+      ! ELO = local order of classical error estimator 
+      rkELO = 4.0d0
+
+      !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      !~~~> Diagonalize the RK matrix:               
+      ! rkTinv * inv(rkA) * rkT =          
+      !           |  rkGamma      0           0     |
+      !           |      0      rkAlpha   -rkBeta   |
+      !           |      0      rkBeta     rkAlpha  |
+      !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      rkGamma = 4.644370709252171185822941421408064d0
+      rkAlpha = 3.677814645373914407088529289295970d0
+      rkBeta  = 3.508761919567443321903661209182446d0
+
+      rkT(1,1) =  .7215185205520017032081769924397664d-1
+      rkT(1,2) = -.8224123057363067064866206597516454d-1
+      rkT(1,3) = -.6012073861930850173085948921439054d-1
+      rkT(2,1) =  .1188325787412778070708888193730294d0
+      rkT(2,2) =  .5306509074206139504614411373957448d-1
+      rkT(2,3) =  .3162050511322915732224862926182701d0
+      rkT(3,1) = 1.d0
+      rkT(3,2) = 1.d0
+      rkT(3,3) = 0.d0
+
+      rkTinv(1,1) =  5.991698084937800775649580743981285d0
+      rkTinv(1,2) =  1.139214295155735444567002236934009d0
+      rkTinv(1,3) =   .4323121137838583855696375901180497d0
+      rkTinv(2,1) = -5.991698084937800775649580743981285d0
+      rkTinv(2,2) = -1.139214295155735444567002236934009d0
+      rkTinv(2,3) =   .5676878862161416144303624098819503d0
+      rkTinv(3,1) = -1.246213273586231410815571640493082d0
+      rkTinv(3,2) =  2.925559646192313662599230367054972d0
+      rkTinv(3,3) =  -.2577352012734324923468722836888244d0
+
+      rkTinvAinv(1,1) =  27.82766708436744962047620566703329d0
+      rkTinvAinv(1,2) =   5.290933503982655311815946575100597d0
+      rkTinvAinv(1,3) =   2.007817718512643701322151051660114d0
+      rkTinvAinv(2,1) = -17.66368928942422710690385180065675d0
+      rkTinvAinv(2,2) = -14.45491129892587782538830044147713d0
+      rkTinvAinv(2,3) =   2.992182281487356298677848948339886d0
+      rkTinvAinv(3,1) = -25.60678350282974256072419392007303d0
+      rkTinvAinv(3,2) =   6.762434375611708328910623303779923d0
+      rkTinvAinv(3,3) =   1.043979339483109825041215970036771d0
+      
+      rkAinvT(1,1) = .3350999483034677402618981153470483d0
+      rkAinvT(1,2) = -.5134173605009692329246186488441294d0
+      rkAinvT(1,3) = .6745196507033116204327635673208923d-1
+      rkAinvT(2,1) = .5519025480108928886873752035738885d0
+      rkAinvT(2,2) = 1.304651810077110066076640761092008d0
+      rkAinvT(2,3) = .9767507983414134987545585703726984d0
+      rkAinvT(3,1) = 4.644370709252171185822941421408064d0
+      rkAinvT(3,2) = 3.677814645373914407088529289295970d0
+      rkAinvT(3,3) = -3.508761919567443321903661209182446d0
+      
+  END SUBROUTINE Gauss_Coefficients
+
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE Radau1A_Coefficients
+!    The coefficients of the 3-stage Gauss method
+!    (given to ~30 accurate digits)
+!    The parameter b3 can be chosen by the user
+!    to tune the error estimator
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
+      IMPLICIT NONE
+!      KPP_REAL :: b0 = 0.3d0
+      KPP_REAL :: b0 = 0.1d0
+
+! The coefficients of the Radau1A method
+
+      rkMethod = R1A
+
+      rkA(1,1) =  .1111111111111111111111111111111111d0
+      rkA(1,2) = -.1916383190435098943442935597058829d0
+      rkA(1,3) =  .8052720793239878323318244859477174d-1
+      rkA(2,1) =  .1111111111111111111111111111111111d0
+      rkA(2,2) =  .2920734116652284630205027458970589d0
+      rkA(2,3) = -.481334970546573839513422644787591d-1
+      rkA(3,1) =  .1111111111111111111111111111111111d0
+      rkA(3,2) =  .5370223859435462728402311533676479d0
+      rkA(3,3) =  .1968154772236604258683861429918299d0
+
+      rkB(1) = .1111111111111111111111111111111111d0
+      rkB(2) = .5124858261884216138388134465196080d0
+      rkB(3) = .3764030627004672750500754423692808d0
+
+      rkC(1) = 0.d0
+      rkC(2) = .3550510257216821901802715925294109d0
+      rkC(3) = .8449489742783178098197284074705891d0
+
+      ! Classical error estimator, embedded solution: 
+      rkBhat(0) = b0
+      rkBhat(1) = .11111111111111111111111111111111111d0-b0
+      rkBhat(2) = .51248582618842161383881344651960810d0
+      rkBhat(3) = .37640306270046727505007544236928079d0
+
+      ! New solution: H* Sum B_j*f(Z_j) = Sum D_j*Z_j
+      rkD(1) = .3333333333333333333333333333333333d0
+      rkD(2) = -.8914115380582557157653087040196127d0
+      rkD(3) = .1558078204724922382431975370686279d1
+
+      ! Classical error estimator: 
+      ! H* Sum (b_j-bhat_j) f(Z_j) = H*E(0)*F(0) + Sum E_j Z_j
+      rkE(0) =   .2748888295956773677478286035994148d0*b0
+      rkE(1) = -1.374444147978386838739143017997074d0*b0
+      rkE(2) = -1.335337922441686804550326197041126d0*b0
+      rkE(3) =   .235782604058977333559011782643466d0*b0
+
+      ! Sdirk error estimator
+      rkBgam(0) = 0.0d0
+      rkBgam(1) = .1948150124588532186183490991130616d-1
+      rkBgam(2) = .7575249005733381398986810981093584d0
+      rkBgam(3) = -.518952314149008295083446116200793d-1
+      rkBgam(4) = .2748888295956773677478286035994148d0
+
+      ! H* Sum Bgam_j*f(Z_j) = H*Bgam(0)*f(0) + Sum Theta_j*Z_j
+      rkTheta(1) = -1.224370034375505083904362087063351d0
+      rkTheta(2) = .9340045331532641409047527962010133d0
+      rkTheta(3) = .4656990124352088397561234800640929d0
+
+      ! ELO = local order of classical error estimator 
+      rkELO = 4.0d0
+
+      !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      !~~~> Diagonalize the RK matrix:               
+      ! rkTinv * inv(rkA) * rkT =          
+      !           |  rkGamma      0           0     |
+      !           |      0      rkAlpha   -rkBeta   |
+      !           |      0      rkBeta     rkAlpha  |
+      !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      rkGamma = 3.637834252744495732208418513577775d0
+      rkAlpha = 2.681082873627752133895790743211112d0
+      rkBeta  = 3.050430199247410569426377624787569d0
+
+      rkT(1,1) =  .424293819848497965354371036408369d0
+      rkT(1,2) = -.3235571519651980681202894497035503d0
+      rkT(1,3) = -.522137786846287839586599927945048d0
+      rkT(2,1) =  .57594609499806128896291585429339d-1
+      rkT(2,2) =  .3148663231849760131614374283783d-2
+      rkT(2,3) =  .452429247674359778577728510381731d0
+      rkT(3,1) = 1.d0
+      rkT(3,2) = 1.d0
+      rkT(3,3) = 0.d0
+
+      rkTinv(1,1) = 1.233523612685027760114769983066164d0
+      rkTinv(1,2) = 1.423580134265707095505388133369554d0
+      rkTinv(1,3) = .3946330125758354736049045150429624d0
+      rkTinv(2,1) = -1.233523612685027760114769983066164d0
+      rkTinv(2,2) = -1.423580134265707095505388133369554d0
+      rkTinv(2,3) = .6053669874241645263950954849570376d0
+      rkTinv(3,1) = -.1484438963257383124456490049673414d0
+      rkTinv(3,2) = 2.038974794939896109682070471785315d0
+      rkTinv(3,3) = -.544501292892686735299355831692542d-1
+
+      rkTinvAinv(1,1) =  4.487354449794728738538663081025420d0
+      rkTinvAinv(1,2) =  5.178748573958397475446442544234494d0
+      rkTinvAinv(1,3) =  1.435609490412123627047824222335563d0
+      rkTinvAinv(2,1) = -2.854361287939276673073807031221493d0
+      rkTinvAinv(2,2) = -1.003648660720543859000994063139137d+1
+      rkTinvAinv(2,3) =  1.789135380979465422050817815017383d0
+      rkTinvAinv(3,1) = -4.160768067752685525282947313530352d0
+      rkTinvAinv(3,2) =  1.124128569859216916690209918405860d0
+      rkTinvAinv(3,3) =  1.700644430961823796581896350418417d0
+
+      rkAinvT(1,1) = 1.543510591072668287198054583233180d0
+      rkAinvT(1,2) = -2.460228411937788329157493833295004d0
+      rkAinvT(1,3) = -.412906170450356277003910443520499d0
+      rkAinvT(2,1) = .209519643211838264029272585946993d0
+      rkAinvT(2,2) = 1.388545667194387164417459732995766d0
+      rkAinvT(2,3) = 1.20339553005832004974976023130002d0
+      rkAinvT(3,1) = 3.637834252744495732208418513577775d0
+      rkAinvT(3,2) = 2.681082873627752133895790743211112d0
+      rkAinvT(3,3) = -3.050430199247410569426377624787569d0
+
+  END SUBROUTINE Radau1A_Coefficients
+
+  
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  END SUBROUTINE RungeKuttaTLM ! and all its internal procedures
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE FUN_CHEM(T, V, FCT)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+    USE KPP_ROOT_Parameters
+    USE KPP_ROOT_Global
+    USE KPP_ROOT_Function, ONLY: Fun
+    USE KPP_ROOT_Rates, ONLY: Update_SUN, Update_RCONST, Update_PHOTO
+
+    IMPLICIT NONE
+
+    KPP_REAL, INTENT(IN) :: V(NVAR), T
+    KPP_REAL, INTENT(INOUT) :: FCT(NVAR)
+    KPP_REAL :: Told
+
+    Told = TIME
+    TIME = T
+    CALL Update_SUN()
+    CALL Update_RCONST()
+    CALL Update_PHOTO()
+    TIME = Told
+    
+    CALL Fun(V, FIX, RCONST, FCT)
+    
+  END SUBROUTINE FUN_CHEM
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE JAC_CHEM (T, V, JF)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+    USE KPP_ROOT_Parameters
+    USE KPP_ROOT_Global
+    USE KPP_ROOT_JacobianSP
+    USE KPP_ROOT_Jacobian, ONLY: Jac_SP
+    USE KPP_ROOT_Rates, ONLY: Update_SUN, Update_RCONST, Update_PHOTO
+
+    IMPLICIT NONE
+
+    KPP_REAL, INTENT(IN) :: V(NVAR), T 
+#ifdef FULL_ALGEBRA    
+    KPP_REAL, INTENT(INOUT) :: JF(NVAR,NVAR)
+    KPP_REAL :: JV(LU_NONZERO)
+    INTEGER       :: i, j 
+#else
+    KPP_REAL, INTENT(INOUT) :: JF(LU_NONZERO)
+#endif   
+
+    KPP_REAL :: Told
+
+    Told = TIME
+    TIME = T
+    CALL Update_SUN()
+    CALL Update_RCONST()
+    CALL Update_PHOTO()
+    TIME = Told
+    
+#ifdef FULL_ALGEBRA    
+    CALL Jac_SP(V, FIX, RCONST, JV)
+    DO j=1,NVAR
+      DO i=1,NVAR
+         JF(i,j) = 0.0d0
+      END DO
+    END DO
+    DO i=1,LU_NONZERO
+       JF(LU_IROW(i),LU_ICOL(i)) = JV(i)
+    END DO
+#else
+    CALL Jac_SP(V, FIX, RCONST, JF) 
+#endif   
+
+  END SUBROUTINE JAC_CHEM
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+END MODULE KPP_ROOT_Integrator
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/sdirk.c
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/sdirk.c	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/sdirk.c	(revision 2696)
@@ -0,0 +1,1361 @@
+#define MAX(a,b) ( ((a) >= (b)) ?(a):(b)  )
+#define MIN(b,c) ( ((b) <  (c)) ?(b):(c)  )
+#define ABS(x)   ( ((x) >=  0 ) ?(x):(-x) )
+#define SQRT(d)  ( pow((d),0.5)  )
+#define SIGN(x,y)( ( (x*y) >= 0 ) ?(x):(-x) )/* Sign transfer function */
+#define MOD(A,B) (int)((A)%(B))
+
+/* ~~~> Numerical constants    */
+#define  ZERO     (KPP_REAL)0.0
+#define  ONE      (KPP_REAL)1.0
+
+/* ~~~>  Statistics on the work performed by the SDIRK method */
+#define  Nfun 1
+#define  Njac 2
+#define  Nstp 3
+#define  Nacc 4
+#define  Nrej 5
+#define  Ndec 6
+#define  Nsol 7
+#define  Nsng 8
+#define  Ntexit 1
+#define  Nhexit 2
+#define  Nhnew 3
+
+/*~~~>  SDIRK method coefficients, up to 5 stages    */
+#define Smax 5
+
+int S2A=1,
+	S2B=2,
+	S3A=3, 
+	S4A=4, 
+	S4B=5;
+
+int sdMethod, 
+	rkS;
+
+KPP_REAL rkGamma, 
+	rkA[Smax][Smax], 
+	rkB[Smax], 
+	rkELO, 
+	rkBhat[Smax],
+	rkC[Smax], 
+	rkD[Smax], 
+	rkE[Smax], 
+	rkTheta[Smax][Smax], 
+	rkAlpha[Smax][Smax];
+
+/*~~~> Function headers     */
+//void INTEGRATE(KPP_REAL TIN, KPP_REAL TOUT, int ICNTRL_U[], KPP_REAL RCNTRL_U[],
+//	int ISTATUS_U[], KPP_REAL RSTATUS_U[], int Ierr);
+void INTEGRATE(KPP_REAL TIN, KPP_REAL TOUT);
+int SDIRK(int N, KPP_REAL Tinitial, KPP_REAL Tfinal, KPP_REAL Y[], 
+	KPP_REAL RelTol[], KPP_REAL AbsTol[], KPP_REAL RCNTRL[], int ICNTRL[], 
+	KPP_REAL RSTATUS[], int ISTATUS[]);
+int SDIRK_Integrator(int N, KPP_REAL Tinitial, KPP_REAL Tfinal, KPP_REAL Y[], 
+	int Ierr, KPP_REAL Hstart, KPP_REAL Hmin, KPP_REAL Hmax, KPP_REAL Roundoff, 
+	KPP_REAL AbsTol[], KPP_REAL RelTol[], int ISTATUS[], KPP_REAL RSTATUS[],
+	int ITOL, int Max_no_steps, int StartNewton, KPP_REAL NewtonTol, 
+	KPP_REAL ThetaMin, KPP_REAL FacSafe, KPP_REAL FacMin, KPP_REAL FacMax,
+	KPP_REAL FacRej, KPP_REAL Qmin, KPP_REAL Qmax, int NewtonMaxit);
+void SDIRK_ErrorScale(int N, int ITOL, KPP_REAL AbsTol[], KPP_REAL RelTol[],
+	KPP_REAL Y[], KPP_REAL SCAL[]);
+KPP_REAL SDIRK_ErrorNorm(int N, KPP_REAL Y[], KPP_REAL SCAL[]);
+int SDIRK_ErrorMsg(int code, KPP_REAL T, KPP_REAL H, int Ierr);
+void SDIRK_PrepareMatrix(KPP_REAL H, KPP_REAL T, KPP_REAL Y[], KPP_REAL FJAC[], 
+	int SkipJac, int SkipLU, KPP_REAL E[], int IP[], int Reject, 
+	int ISING, int ISTATUS[]);
+void SDIRK_Solve(KPP_REAL H, int N, KPP_REAL E[], int IP[], int ISING, 
+	KPP_REAL RHS[], int ISTATUS[]);
+void Sdirk4a(void);
+void Sdirk4b(void);
+void Sdirk2a(void);
+void Sdirk2b(void);
+void Sdirk3a(void);
+void FUN_CHEM(KPP_REAL T, KPP_REAL Y[], KPP_REAL P[]);
+void JAC_CHEM(KPP_REAL T, KPP_REAL Y[], KPP_REAL JV[]);
+void Fun(KPP_REAL Y[], KPP_REAL FIX[], KPP_REAL RCONST[], KPP_REAL Ydot[]);
+void Jac_SP(KPP_REAL Y[], KPP_REAL FIX[], KPP_REAL RCONST[], KPP_REAL Ydot[]);
+void WAXPY(int N, KPP_REAL Alpha, KPP_REAL X[], int incX, KPP_REAL Y[], int incY);
+void WSCAL(int N, KPP_REAL Alpha, KPP_REAL X[], int incX);
+KPP_REAL WLAMCH(char C);
+void WADD(int N, KPP_REAL Y[], KPP_REAL Z[], KPP_REAL TMP[]);
+void Set2Zero(int N, KPP_REAL Y[]);
+void KppSolve(KPP_REAL A[], KPP_REAL b[]);
+int KppDecomp(KPP_REAL A[]);
+void Update_SUN();
+void Update_RCONST();
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+//void INTEGRATE(KPP_REAL TIN, KPP_REAL TOUT, int ICNTRL_U[], KPP_REAL RCNTRL_U[],
+//		int ISTATUS_U[], KPP_REAL RSTATUS_U[], int Ierr_U)
+void INTEGRATE(KPP_REAL TIN, KPP_REAL TOUT)
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+{
+
+/* int Ntotal = 0; *//* Used for debug option below to print the number of steps */
+KPP_REAL RCNTRL[20], 
+	RSTATUS[20], 
+	T1, 
+	T2;
+	
+int ICNTRL[20], 
+	ISTATUS[20], 
+	Ierr;
+
+Ierr = 0;
+
+int i;
+for(i=0; i<20; i++) {
+	ICNTRL[i] = 0;
+	RCNTRL[i] = (KPP_REAL)0.0;
+	ISTATUS[i] = 0;
+	RSTATUS[i] = (KPP_REAL)0.0;
+} /* end for */
+
+/*~> fine-tune the integrator: */
+ICNTRL[1] = 0; /* 0 - vector tolerances, 1 - scalar tolerances */
+ICNTRL[5] = 0; /* starting values of N. iter.: interpolated 0), zero (1) */
+
+///* If optional parameters are given, and if they are >0, 
+//	then they overwrite default settings. */
+//if(ICNTRL_U != NULL) { /* Check to see if ICNTRL_U is not NULL */
+//	for(i=0; i<20; i++) {
+//		if(ICNTRL_U[i] > 0) {
+//			ICNTRL[i] = ICNTRL_U[i];
+//		} /* end if */
+//	} /* end for */
+//} /* end if */
+//
+//if(RCNTRL_U != NULL) { /* Check to see if RCNTRL_U is not NULL */
+//	for(i=0; i<20; i++) {
+//		if(RCNTRL_U[i] > 0) {
+//			RCNTRL[i] = RCNTRL_U[i];
+//		} /* end if */
+//	} /* end for */
+//} /* end if */
+
+
+T1 = TIN;
+T2 = TOUT;
+Ierr = SDIRK( NVAR, T1, T2, VAR, RTOL, ATOL, RCNTRL, ICNTRL, RSTATUS,
+	ISTATUS);
+
+
+/*~~~> Debug option: print number of steps
+   Ntotal += ISTATUS[Nstp]; */
+
+if(Ierr < 0) {
+	printf("SDIRK: Unsuccessful exit at T=%f(Ierr=%d)", TIN, Ierr);
+}
+
+///*if optional parameters are given for output they to return information */
+//if(ISTATUS_U != NULL) { /* Check to see if ISTATUS_U is not NULL */
+//	for(i=0; i<20; i++) {
+//		ISTATUS_U[i] = ISTATUS[i];
+//	} /* end for */
+//} /* end if */
+//
+//if(RSTATUS_U != NULL) { /* Check to see if RSTATUS_U is not NULL */
+//	for(i=0; i<20; i++) {
+//		RSTATUS_U[i] = RSTATUS[i];
+//	} /* end for */
+//} /* end if */
+//
+//Ierr_U = Ierr;
+
+}
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+int SDIRK(int N, KPP_REAL Tinitial, KPP_REAL Tfinal, KPP_REAL Y[],
+	KPP_REAL RelTol[], KPP_REAL AbsTol[], KPP_REAL RCNTRL[],
+	int ICNTRL[], KPP_REAL RSTATUS[], int ISTATUS[])
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+    Solves the system y'=F(t,y) using a Singly-Diagonally-Implicit
+    Runge-Kutta (SDIRK) method.
+
+    This implementation is based on the book and the code Sdirk4:
+
+    E. Hairer and G. Wanner
+    "Solving ODEs II. Stiff and differential-algebraic problems".
+    Springer series in computational mathematics, Springer-Verlag, 1996.
+    This code is based on the SDIRK4 routine in the above book.
+
+    Methods:
+        * Sdirk 2a, 2b: L-stable, 2 stages, order 2
+        * Sdirk 3a:     L-stable, 3 stages, order 2, adjoint-invariant
+        * Sdirk 4a, 4b: L-stable, 5 stages, order 4
+
+    (C)  Adrian Sandu, July 2005
+    Virginia Polytechnic Institute and State University
+    Contact: sandu@cs.vt.edu
+    Revised by Philipp Miehe and Adrian Sandu, May 2006
+    Translation F90 to C by Paul Eller and Nicholas Hobbs, July 2006
+    This implementation is part of KPP - the Kinetic PreProcessor
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+~~~>  INPUT ARGUMENTS:
+
+   -     Y[NVAR]    = vector of initial conditions (at T=Tinitial)
+   -    [Tinitial,Tfinal]  = time range of integration
+        (if Tinitial>Tfinal the integration is performed backwards in time)
+   -    RelTol, AbsTol = user precribed accuracy
+   - SUBROUTINE ode_Fun( T, Y, Ydot ) = ODE function,
+        returns Ydot = Y' = F(T,Y)
+   - SUBROUTINE ode_Fun( T, Y, Ydot ) = Jacobian of the ODE function,
+        returns Jcb = dF/dY
+   -    ICNTRL[1:20]    = integer inputs parameters
+   -    RCNTRL[1:20]    = real inputs parameters
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+~~~>  OUTPUT ARGUMENTS:
+
+   -    Y[NVAR]         -> vector of final states (at T->Tfinal)
+   -    ISTATUS[1:20]   -> integer output parameters
+   -    RSTATUS[1:20]   -> real output parameters
+   -    Ierr            -> job status upon return
+                           success (positive value) or
+                           failure (negative value)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~>  INPUT PARAMETERS:
+    Note: For input parameters equal to zero the default values of the
+       corresponding variables are used.
+
+    Note: For input parameters equal to zero the default values of the
+       corresponding variables are used.
+~~~>
+    ICNTRL[0] = not used
+    ICNTRL[1] = 0: AbsTol, RelTol are NVAR-dimensional vectors
+                                           = 1: AbsTol, RelTol are scalars
+    ICNTRL[2] = Method
+    ICNTRL[3]  -> maximum number of integration steps
+            For ICNTRL[3]=0 the default value of 100000 is used
+    ICNTRL[4]  -> maximum number of Newton iterations
+        For ICNTRL(4)=0 the default value of 8 is used
+    ICNTRL[5]  -> starting values of Newton iterations:
+    ICNTRL[5]=0 : starting values are interpolated (the default)
+    ICNTRL[5]=1 : starting values are zero
+
+~~~>  Real parameters
+
+    RCNTRL[0]  -> Hmin, lower bound for the integration step size
+                  It is strongly recommended to keep Hmin = ZERO
+    RCNTRL[1]  -> Hmax, upper bound for the integration step size
+    RCNTRL[2]  -> Hstart, starting value for the integration step size
+    RCNTRL[3]  -> FacMin, lower bound on step decrease factor (default=0.2)
+    RCNTRL[4]  -> FacMax, upper bound on step increase factor (default=6)
+    RCNTRL[5]  -> FacRej, step decrease factor after multiple rejections
+                  (default=0.1)
+    RCNTRL[6]  -> FacSafe, by which the new step is slightly smaller
+                  than the predicted value  (default=0.9)
+    RCNTRL[7]  -> ThetaMin. If Newton convergence rate smaller
+                  than ThetaMin the Jacobian is not recomputed;
+                  (default=0.001)
+    RCNTRL[8]  -> NewtonTol, stopping criterion for Newton's method
+                  (default=0.03)
+    RCNTRL[9]  -> Qmin
+    RCNTRL[10] -> Qmax. If Qmin < Hnew/Hold < Qmax, then the
+                  step size is kept constant and the LU factorization
+                  reused (default Qmin=1, Qmax=1.2)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~>  OUTPUT PARAMETERS:
+   Note: each call to Rosenbrock adds the current no. of fcn calls
+   to previous value of ISTATUS(1), and similar for the other params.
+   Set ISTATUS(1:10) = 0 before call to avoid this accumulation.
+  ISTATUS[0] = No. of function calls
+  ISTATUS[1] = No. of jacobian calls
+  ISTATUS[2] = No. of steps
+  ISTATUS[3] = No. of accepted steps
+  ISTATUS[4] = No. of rejected steps (except at the beginning)
+  ISTATUS[5] = No. of LU decompositions
+  ISTATUS[6] = No. of forward/backward substitutions
+  ISTATUS[7] = No. of singular matrix decompositions
+  RSTATUS[0]  -> Texit, the time corresponding to the computed Y upon return
+  RSTATUS[1]  -> Hexit,last accepted step before return
+  RSTATUS[2]  -> Hnew, last predicted step before return
+  For multiple restarts, use Hnew as Hstart in the following run
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+{ 
+
+int Max_no_steps=0;
+
+/*~~~> Local variables      */
+int StartNewton;
+
+KPP_REAL  Hmin=0,
+	Hmax=0,
+	Hstart=0,
+	Roundoff,
+	FacMin=0,
+	FacMax=0,
+	FacSafe=0,
+	FacRej=0,
+	ThetaMin,
+	NewtonTol,
+	Qmin,
+	Qmax;
+
+int ITOL,
+	NewtonMaxit,
+	i,
+	Ierr = 0;
+
+/*~~~>  For Scalar tolerances (ICNTRL[1] !=0 )  the code uses AbsTol[1] and RelTol[1)
+    For Vector tolerances (ICNTRL[1] == 0) the code uses AbsTol[1:NVAR] and RelTol[1:NVAR] */
+if (ICNTRL[1]==0){
+	ITOL = 1;
+}
+else {
+	ITOL = 0;
+}  /* end if */
+
+/*~~~> ICNTRL[3] - method selection   */
+
+switch (ICNTRL[2]) {
+
+case 0: Sdirk2a();
+	break;
+
+case 1: Sdirk2a();
+	break;
+
+case 2: Sdirk2b();
+	break;
+
+case 3: Sdirk3a();
+	break;
+
+case 4: Sdirk4a();
+	break;
+
+case 5: Sdirk4b();
+	break;
+
+default: Sdirk2a();
+
+} /* end switch */
+
+/*~~~>   The maximum number of time steps admitted   */
+if (ICNTRL[3] == 0) {
+	Max_no_steps = 200000;
+}
+else if (ICNTRL[3] > 0) {
+	Max_no_steps = ICNTRL[3];
+}
+else {
+	printf("User-selected ICNTRL(4)=%d", ICNTRL[3]);
+	SDIRK_ErrorMsg(-1,Tinitial,ZERO,Ierr);
+} /*end if */
+
+/*~~~>The maximum number of Newton iterations admitted */
+if(ICNTRL[4]==0) {
+	NewtonMaxit = 8;
+}
+else {
+	NewtonMaxit=ICNTRL[4];
+	if(NewtonMaxit <=0) {
+		printf("User-selected ICNTRL(5)=%d", ICNTRL[4] );
+		SDIRK_ErrorMsg(-2,Tinitial,ZERO,Ierr);
+	}
+}
+
+/*~~~> StartNewton: Extrapolate for starting values of Newton iterations */
+if (ICNTRL[5] == 0) {
+	StartNewton = 1;
+}
+else {
+	StartNewton = 0;
+} /* end if */
+
+/*~~~>  Unit roundoff (1+Roundoff>1) */
+Roundoff = WLAMCH('E');
+
+/*~~~>  Lower bound on the step size: (positive value) */
+if (RCNTRL[0] == ZERO) {
+	Hmin = ZERO;
+}
+else if (RCNTRL[0] > ZERO) {
+	Hmin = RCNTRL[0];
+}
+else {
+	printf("User-selected RCNTRL[0]=%f", RCNTRL[0]);
+	SDIRK_ErrorMsg(-3,Tinitial,ZERO,Ierr);
+} /* end if */
+
+/*~~~>  Upper bound on the step size: (positive value) */
+if (RCNTRL[1] == ZERO) {
+	Hmax = ABS(Tfinal-Tinitial);
+}
+else if (RCNTRL[1] > ZERO) {
+	Hmax = MIN( ABS(RCNTRL[1]), ABS(Tfinal-Tinitial) );
+}
+else {
+	printf("User-selected RCNTRL[1]=%f", RCNTRL[1]);
+	SDIRK_ErrorMsg(-3,Tinitial,ZERO,Ierr);
+} /* end if */
+
+/*~~~>  Starting step size: (positive value) */
+if (RCNTRL[2] == ZERO) {
+	Hstart = MAX( Hmin, Roundoff);
+}
+else if (RCNTRL[2] > ZERO) {
+	Hstart = MIN( ABS(RCNTRL[2]), ABS(Tfinal-Tinitial) );
+}
+else {
+	printf("User-selected Hstart: RCNTRL[2]=%f", RCNTRL[2]);
+	SDIRK_ErrorMsg(-3,Tinitial,ZERO,Ierr);
+} /* end if */
+
+/*~~~>  Step size can be changed s.t.  FacMin < Hnew/Hexit < FacMax */
+if (RCNTRL[3] == ZERO) {
+	FacMin = (KPP_REAL)0.2;
+}
+else if (RCNTRL[3] > ZERO) {
+	FacMin = RCNTRL[3];
+}
+else {
+	printf("User-selected FacMin: RCNTRL[3]=%f", RCNTRL[3]);
+	SDIRK_ErrorMsg(-4,Tinitial,ZERO,Ierr);
+} /* end if */
+
+if (RCNTRL[4] == ZERO) {
+	FacMax = (KPP_REAL)10.0;
+}
+else if (RCNTRL[4] > ZERO) {
+	FacMax = RCNTRL[4];
+}
+else {
+	printf("User-selected FacMax: RCNTRL[4]=%f", RCNTRL[4]);
+	SDIRK_ErrorMsg(-4,Tinitial,ZERO,Ierr);
+} /* end if */
+
+/*~~~>   FacRej: Factor to decrease step after 2 succesive rejections */
+if (RCNTRL[5] == ZERO) {
+	FacRej = (KPP_REAL)0.1;
+}
+else if (RCNTRL[5] > ZERO) {
+	FacRej = RCNTRL[5];
+}
+else {
+	printf("User-selected FacRej: RCNTRL[5]=%f", RCNTRL[5]);
+	SDIRK_ErrorMsg(-4,Tinitial,ZERO,Ierr);
+} /*end if */
+
+/* ~~~>   FacSafe: Safety Factor in the computation of new step size  */
+if (RCNTRL[6] == ZERO) {
+	FacSafe = (KPP_REAL)0.9;
+}
+else if (RCNTRL[6] > ZERO) {
+	FacSafe = RCNTRL[6];
+}
+else {
+	printf("User-selected FacSafe: RCNTRL[6]=%f", RCNTRL[6]);
+	SDIRK_ErrorMsg(-4,Tinitial,ZERO,Ierr);
+} /* end if */
+
+/*~~~> ThetaMin: decides whether the Jacobian should be recomputed */
+if (RCNTRL[7] == ZERO) {
+	ThetaMin = (KPP_REAL)1.0e-03;
+}
+else {
+	ThetaMin = RCNTRL[7];
+} /* end if */
+
+/*~~~> Stopping criterion for Newton's method */
+if (RCNTRL[8] == ZERO) {
+	NewtonTol = (KPP_REAL)3.0e-02;
+}
+else {
+	NewtonTol = RCNTRL[8];
+} /* end if */
+
+/* ~~~> Qmin, Qmax: IF Qmin < Hnew/Hold < Qmax, STEP SIZE = CONST. */
+if (RCNTRL[9] == ZERO) {
+	Qmin = ONE;
+}
+else {
+	Qmin = RCNTRL[9];
+} /* end if */
+
+if (RCNTRL[10] == ZERO) {
+	Qmax = (KPP_REAL)1.2;
+}
+else {
+	Qmax = RCNTRL [10];
+} /* end if */
+
+/* ~~~>  Check if tolerances are reasonable */
+if (ITOL == 0) {
+	if ((AbsTol[0]<=ZERO || RelTol[0])<=(((KPP_REAL)10.0)*Roundoff)) {
+		SDIRK_ErrorMsg(-5,Tinitial,ZERO,Ierr);
+	} /* end internal if */
+}
+else {
+	for (i = 0; i < N; i++) {
+		if((AbsTol[i]<=ZERO)||(RelTol[i]<=((KPP_REAL)10.0)*Roundoff)){
+			SDIRK_ErrorMsg(-5,Tinitial,ZERO,Ierr);
+		} /* end internal if */
+	} /* end for */
+} /* end if */
+
+if (Ierr < 0) {
+	return Ierr;
+} /*end if */
+
+Ierr = SDIRK_Integrator(N, Tinitial, Tfinal, Y, Ierr, Hstart, Hmin, Hmax,
+	Roundoff, AbsTol, RelTol, ISTATUS, RSTATUS, ITOL, Max_no_steps,
+	StartNewton, NewtonTol, ThetaMin, FacSafe, FacMin, FacMax, FacRej,
+	Qmin, Qmax, NewtonMaxit);
+
+return Ierr;
+
+}  /* end of main SDIRK function */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+int SDIRK_Integrator(int N, KPP_REAL Tinitial, KPP_REAL Tfinal, KPP_REAL Y[], 
+	int Ierr, KPP_REAL Hstart, KPP_REAL Hmin, KPP_REAL Hmax, KPP_REAL Roundoff,
+	KPP_REAL AbsTol[], KPP_REAL RelTol[], int ISTATUS[], KPP_REAL RSTATUS[],
+	int ITOL, int Max_no_steps, int StartNewton, KPP_REAL NewtonTol,
+	KPP_REAL ThetaMin, KPP_REAL FacSafe, KPP_REAL FacMin, KPP_REAL FacMax,
+	KPP_REAL FacRej, KPP_REAL Qmin, KPP_REAL Qmax, int NewtonMaxit)
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+{
+
+/*~~~> Local variables:    */
+KPP_REAL Z[Smax][NVAR],
+	G[NVAR],
+	TMP[NVAR],
+	NewtonRate,
+	SCAL[NVAR],
+	RHS[NVAR],
+	T,
+	H,
+	Theta=0,
+	Hratio,
+	NewtonPredictedErr,
+	Qnewton,
+	Err=0,
+	Fac,
+	Hnew,
+	Tdirection,
+	NewtonIncrement=0,
+	NewtonIncrementOld=0;
+
+int IER=0,
+	istage,
+	NewtonIter,
+	IP[NVAR],
+	Reject,
+	FirstStep,
+	SkipJac,
+	SkipLU,
+	NewtonDone,
+	CycleTloop,
+	i,
+	j;
+
+#ifdef FULL_ALGEBRA
+	KPP_REAL FJAC[NVAR][NVAR];
+	KPP_REAL E[NVAR][NVAR];
+#else
+	KPP_REAL FJAC[LU_NONZERO];
+	KPP_REAL E[LU_NONZERO];
+#endif
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+/*~~~~>   Initializations              */
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+T = Tinitial;
+Tdirection = SIGN(ONE, Tfinal-Tinitial);
+H = MAX(ABS(Hmin), ABS(Hstart));
+
+if(ABS(H) <= ((KPP_REAL)10.0 * Roundoff)) {
+	H = (KPP_REAL)(1.0e-06);
+} /* end if */
+
+H = MIN(ABS(H), Hmax);
+H = SIGN(H, Tdirection);
+SkipLU = 0;
+SkipJac = 0;
+Reject = 0;
+FirstStep = 1;
+CycleTloop = 0;
+
+SDIRK_ErrorScale(N, ITOL, AbsTol, RelTol, Y, SCAL);
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+/*~~~>  Time loop begins                */
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+while((Tfinal-T)*Tdirection - Roundoff > ZERO) {  /* Tloop */
+
+/*~~~>  Compute E = 1/(h*gamma)-Jac and its LU decomposition */
+	if(SkipLU == 0) { /* This time around skip the Jac update and LU */
+		SDIRK_PrepareMatrix(H, T, Y, FJAC, SkipJac, SkipLU, E, IP, 
+			Reject, IER, ISTATUS);
+		if(IER != 0) {
+			SDIRK_ErrorMsg(-8, T, H, Ierr);
+		return Ierr;
+		} /* end if */
+	} /* end if */
+
+	if(ISTATUS[Nstp] > Max_no_steps) {
+		SDIRK_ErrorMsg(-6, T, H, Ierr);
+		return Ierr;
+	} /* end if */
+
+	if((T + ((KPP_REAL)0.1) * H == T) || (ABS(H) <= Roundoff)) {
+		SDIRK_ErrorMsg(-7, T, H, Ierr);
+		return Ierr;
+	} /* end if */
+
+/*stages*/ for(istage=0; istage < rkS; istage++) {
+		/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+		/*~~~>  Simplified Newton iterations          */
+		/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+		/*~~~>  Starting values for Newton iterations */
+		Set2Zero(N, &Z[istage][0]);
+
+	/*~~~>   Prepare the loop-independent part of the right-hand side */
+		Set2Zero(N, G);
+			if(istage > 0) {
+				for(j=0; j < istage; j++) {
+         				 WAXPY(N, rkTheta[j][istage], 
+						&Z[j][0], 1, G, 1);
+					if(StartNewton == 1) {
+						WAXPY(N, rkAlpha[j][istage],
+							&Z[j][0], 1, 
+							&Z[istage][0], 1);
+					} /* end if */
+				} /* end for */
+			} /* end if */
+
+	/*~~~>  Initializations for Newton iteration */
+		NewtonDone = 0; /* false */
+		Fac = (KPP_REAL)0.5; /* Step reduction factor */
+
+/*NewtonLoop*/	for(NewtonIter=0; NewtonIter<NewtonMaxit; NewtonIter++ ) {
+
+        /*~~~>  Prepare the loop-dependent part of the right-hand side */
+			WADD(N, Y, &Z[istage][0], TMP);
+			FUN_CHEM(T+rkC[istage]*H, TMP, RHS);
+			ISTATUS[Nfun]++;
+			WSCAL(N, H*rkGamma, RHS, 1);
+			WAXPY(N, -ONE, &Z[istage][0], 1, RHS, 1);
+			WAXPY(N, ONE, G, 1, RHS, 1 );
+
+	        /*~~~>   Solve the linear system  */
+			SDIRK_Solve(H, N, E, IP, IER, RHS, ISTATUS);
+
+		/*~~~>   Check convergence of Newton iterations */
+			NewtonIncrement = SDIRK_ErrorNorm(N, RHS, SCAL);
+
+			if(NewtonIter == 0) {
+				Theta = ABS(ThetaMin);
+				NewtonRate = (KPP_REAL)2.0;
+			}
+			else {
+				Theta = NewtonIncrement/NewtonIncrementOld;
+
+				if(Theta < (KPP_REAL)0.99) {
+					NewtonRate = Theta/(ONE-Theta);
+			/* Predict error at the end of Newton process */
+					NewtonPredictedErr = 	
+						(NewtonIncrement*pow(Theta,
+						(NewtonMaxit - (NewtonIter +
+						1)) / (ONE - Theta)));
+					if(NewtonPredictedErr >= NewtonTol) {
+		              /* Non-convergence of Newton: 
+				predicted error too large*/
+						Qnewton = MIN((KPP_REAL)10.0,
+							NewtonPredictedErr/
+							NewtonTol);
+						Fac = (KPP_REAL)0.8 * pow
+							(Qnewton, (-ONE / (1
+							+ NewtonMaxit -
+							NewtonIter + 1)));
+						break;
+					} /* end internal if */
+				}
+				else  /* Non-convergence of Newton: 
+					Theta too large */ {
+					break;
+				} /* end internal if else */
+			} /* end if else */
+
+			NewtonIncrementOld = NewtonIncrement;
+
+		/* Update solution: Z(:) <-- Z(:)+RHS(:) */
+			WAXPY(N, ONE, RHS, 1, &Z[istage][0], 1);
+
+		/* Check error in Newton iterations */
+			NewtonDone=(NewtonRate*NewtonIncrement<=NewtonTol);
+
+		        if(NewtonDone == 1) {
+				break;
+			}
+		} /* end NewtonLoop for */
+
+		if(NewtonDone == 0) {
+		/* CALL RK_ErrorMsg(-12,T,H,Ierr); */
+			H = Fac*H;
+			Reject = 1; /* true */
+			SkipJac = 1;/* true */
+			SkipLU = 0;/* false */
+			CycleTloop = 1; /* cycle Tloop */
+		} /* end if */
+
+		if(CycleTloop == 1) {
+			CycleTloop=0;
+			break;
+		}
+	} /* end stages for */
+
+	if(CycleTloop==0) {
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+/*~~~>  Error estimation      */
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+	ISTATUS[Nstp]++;
+	Set2Zero(N, TMP);
+
+	for(i=0; i<rkS; i++) {
+		if(rkE[i] != ZERO) {
+			WAXPY(N, rkE[i], &Z[i][0], 1, TMP, 1);
+		} /* end if */
+	} /* end for */
+
+	SDIRK_Solve(H, N, E, IP, IER, TMP, ISTATUS);
+	Err = SDIRK_ErrorNorm(N, TMP, SCAL);
+
+/*~~~~> Computation of new step size Hnew */
+	Fac = FacSafe * pow((Err), (-ONE/rkELO));
+	Fac = MAX(FacMin, MIN(FacMax, Fac));
+	Hnew = H*Fac;
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+/*~~~>  Accept/Reject step    */
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+	if(Err < ONE) { /*~~~> Step is accepted */
+		FirstStep = 0; /* false */
+		ISTATUS[Nacc]++;
+
+	/*~~~> Update time and solution */
+		T = T + H;
+
+        /* Y(:) <-- Y(:) + Sum_j rkD(j)*Z_j(:) */
+		for(i=0; i<rkS; i++) {
+			if(rkD[i] != ZERO) {
+				WAXPY(N, rkD[i], &Z[i][0], 1, Y, 1);
+			} /* end if */
+		} /* end for */
+
+	/*~~~> Update scaling coefficients */
+		SDIRK_ErrorScale(N, ITOL, AbsTol, RelTol, Y, SCAL);
+
+	/*~~~> Next time step */
+		Hnew = Tdirection*MIN(ABS(Hnew), Hmax);
+
+	/* Last T and H */
+		RSTATUS[Ntexit] = T;
+		RSTATUS[Nhexit] = H;
+		RSTATUS[Nhnew] = Hnew;
+
+	/* No step increase after a rejection */
+		if(Reject==1) {
+			Hnew = Tdirection*MIN(ABS(Hnew), ABS(H));
+		} /* end if */
+
+		Reject = 0; /* false */
+
+		if((T+Hnew/Qmin-Tfinal)*Tdirection > ZERO) {
+			H = Tfinal-T;
+		}
+		else {
+			Hratio = Hnew/H;
+		/* If step not changed too much keep Jacobian and reuse LU */
+			SkipLU = ((Theta <= ThetaMin) && (Hratio >= Qmin) && 
+				(Hratio <= Qmax));
+
+			if(SkipLU==0) {
+				H = Hnew;
+			} /* end internal if */
+		} /* end if else */
+
+		SkipJac = (Theta <= ThetaMin);
+		SkipJac = 0; /* false */
+		}
+		else { /*~~~> Step is rejected */
+			if((FirstStep==1) || (Reject==1)) {
+				H = FacRej * H;
+			}
+			else {
+				H = Hnew;
+			} /* end internal if */
+
+			Reject = 1;
+			SkipJac = 1;
+			SkipLU = 0;
+
+			if(ISTATUS[Nacc] >=1) {
+				ISTATUS[Nrej]++;
+			} /* end if */
+		} /* end if else */
+	} /* end CycleTloop if */
+} /* end Tloop */
+
+/* Successful return */
+Ierr = 1;
+return Ierr;
+
+} /* end SDIRK_Integrator */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void SDIRK_ErrorScale(int N, int ITOL, KPP_REAL AbsTol[], KPP_REAL RelTol[],
+			KPP_REAL Y[],KPP_REAL SCAL[])
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+{
+
+int i;
+if (ITOL == 0){
+	for (i = 0; i < NVAR; i++){
+		SCAL[i] = ONE / (AbsTol[0]+RelTol[0]*ABS(Y[i]) );
+	} /* end for */
+}
+else {
+	for (i = 0; i < NVAR; i++){
+		SCAL[i] = ONE / (AbsTol[i]+RelTol[i]*ABS(Y[i]) );
+	} /*  end for  */
+} /*  end if  */
+
+} /*  end SDIRK_ErrorScale  */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+KPP_REAL SDIRK_ErrorNorm(int N, KPP_REAL Y[], KPP_REAL SCAL[])
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+{
+
+int i;
+KPP_REAL Err = ZERO;
+
+for (i = 0; i < N; i++) {
+	Err = Err + pow( (Y[i]*SCAL[i]), 2);
+} /* end for */
+
+Err = MAX( SQRT(Err/(KPP_REAL)N), (KPP_REAL)1.0e-10);
+
+return Err;
+
+} /*  end SDIRK_ErrorNorm  */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+int SDIRK_ErrorMsg(int code, KPP_REAL T, KPP_REAL H, int Ierr)
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ *    Handles all error messages
+ *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+{
+
+Ierr = code;
+
+printf("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
+printf("\nForced exit from Sdirk due to the following error:\n");
+
+switch (code) {
+
+case -1:
+	printf("--> Improper value for maximal no of steps");
+	break;
+case -2:
+	printf("--> Selected Rosenbrock method not implemented");
+	break;
+case -3:
+	printf("--> Hmin/Hmax/Hstart must be positive");
+	break;
+case -4:
+	printf("--> FacMin/FacMax/FacRej must be positive");
+	break;
+case -5:
+	printf("--> Improper tolerance values");
+	break;
+case -6:
+	printf("--> No of steps exceeds maximum bound");
+	break;
+case -7:
+	printf("--> Step size too small (T + H/10 = T) or H < Roundoff");
+	break;
+case -8:
+	printf("--> Matrix is repeatedly singular");
+	break;
+default: /* causing an error */
+	printf("Unknown Error code: %d", code);
+
+} /*  end switch   */
+
+printf("\n   Time = %f and H = %f", T, H );
+printf("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
+
+return code;
+
+} /*  end SDIRK_ErrorMsg   */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void SDIRK_PrepareMatrix(KPP_REAL H, KPP_REAL T, KPP_REAL Y[], KPP_REAL FJAC[],
+			int SkipJac, int SkipLU, KPP_REAL E[], int IP[], 
+			int Reject, int ISING, int ISTATUS[] )
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ *  Compute the matrix E = 1/(H*GAMMA)*Jac, and its decomposition
+ *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+{
+
+KPP_REAL HGammaInv;
+int i, j;
+int ConsecutiveSng = 0;
+ISING = 1;
+
+
+while( ISING != 0) {
+	HGammaInv = ONE/(H*rkGamma);
+
+/*~~~>  Compute the Jacobian */
+	if(SkipJac==0) {
+		JAC_CHEM(T,Y,FJAC);
+		ISTATUS[Njac]++;
+	} /* end if */
+
+	#ifdef FULL_ALGEBRA
+		for(j=0; j<NVAR; j++) {
+			for(i=0; i<NVAR; i++) {
+				E[j][i] = -FJAC[j][i];
+			} /* end for */
+
+			E[j][j] = E[j][j] + HGammaInv;
+		} /* end for */
+
+		DGETRF(NVAR, NVAR, E, NVAR, IP, ISING);
+	#else
+		for(i=0; i<LU_NONZERO; i++) {
+			E[i] = -FJAC[i];
+		} /* end for */
+
+		for(i=0; i<NVAR; i++) {
+			j = LU_DIAG[i];
+			E[j]=E[j] + HGammaInv;
+		} /* end for */
+
+		ISING = KppDecomp(E);
+		IP[0] = 1;
+	#endif
+
+	ISTATUS[Ndec]++;
+
+	if(ISING != 0) {
+		ISTATUS[Nsng]++;
+		ConsecutiveSng++;
+
+		if(ConsecutiveSng >= 6) {
+			return; /* Failure */
+		} /* end internal if */
+
+		H = (KPP_REAL)(0.5) * H;
+		SkipJac = 1; /* true */
+		SkipLU = 0; /* false */
+		Reject = 1; /* true */
+	} /* end if */
+} /* end while */
+
+} /* end SDIRK_PrepareMatrix */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void SDIRK_Solve( KPP_REAL H, int N, KPP_REAL E[], int IP[], int ISING, 
+		KPP_REAL RHS[], int ISTATUS[] )
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ *  Solves the system (H*Gamma-Jac)*x = RHS
+ *      using the LU decomposition of E = I - 1/(H*Gamma)*Jac
+ *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+{
+
+KPP_REAL HGammaInv = ONE/(H * rkGamma);
+
+WSCAL(N, HGammaInv, RHS, 1);
+
+#ifdef FULL_ALGEBRA
+	DGETRS('N', N, 1, E, N, IP, RHS, N, ISING);
+#else
+	KppSolve(E, RHS);
+#endif
+	ISTATUS[Nsol]++;
+
+} /* end SDIRK_Solve */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void Sdirk4a()
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+{
+
+sdMethod = S4A;
+
+/* Number of stages */
+rkS = 5;
+
+/* Method Coefficients */
+rkGamma = (KPP_REAL)0.2666666666666666666666666666666667;
+
+rkA[0][0] = (KPP_REAL)0.2666666666666666666666666666666667;
+rkA[0][1] = (KPP_REAL)0.5000000000000000000000000000000000;
+rkA[1][1] = (KPP_REAL)0.2666666666666666666666666666666667;
+rkA[0][2] = (KPP_REAL)0.3541539528432732316227461858529820;
+rkA[1][2] = (KPP_REAL)(-0.5415395284327323162274618585298197e-01);
+rkA[2][2] = (KPP_REAL)0.2666666666666666666666666666666667;
+rkA[0][3] = (KPP_REAL)0.8515494131138652076337791881433756e-01;
+rkA[1][3] = (KPP_REAL)(-0.6484332287891555171683963466229754e-01);
+rkA[2][3] = (KPP_REAL)0.7915325296404206392428857585141242e-01;
+rkA[3][3] = (KPP_REAL)0.2666666666666666666666666666666667;
+rkA[0][4] = (KPP_REAL)2.100115700566932777970612055999074;
+rkA[1][4] = (KPP_REAL)(-0.7677800284445976813343102185062276);
+rkA[2][4] = (KPP_REAL)2.399816361080026398094746205273880;
+rkA[3][4] = (KPP_REAL)(-2.998818699869028161397714709433394);
+rkA[4][4] = (KPP_REAL)0.2666666666666666666666666666666667;
+rkB[0] = (KPP_REAL)2.100115700566932777970612055999074;
+rkB[1] = (KPP_REAL)(-0.7677800284445976813343102185062276);
+rkB[2] = (KPP_REAL)2.399816361080026398094746205273880;
+rkB[3] = (KPP_REAL)(-2.998818699869028161397714709433394);
+rkB[4] = (KPP_REAL)0.2666666666666666666666666666666667;
+
+rkBhat[0] = (KPP_REAL)2.885264204387193942183851612883390;
+rkBhat[1] = (KPP_REAL)(-0.1458793482962771337341223443218041);
+rkBhat[2] = (KPP_REAL)2.390008682465139866479830743628554;
+rkBhat[3] = (KPP_REAL)(-4.129393538556056674929560012190140);
+rkBhat[4] = ZERO;
+
+rkC[0] = (KPP_REAL)0.2666666666666666666666666666666667;
+rkC[1] = (KPP_REAL)0.7666666666666666666666666666666667;
+rkC[2] = (KPP_REAL)0.5666666666666666666666666666666667;
+rkC[3] = (KPP_REAL)0.3661315380631796996374935266701191;
+rkC[4] = ONE;
+
+/* Ynew = Yold + h*Sum_i {rkB_i*k_i} = Yold + Sum_i {rkD_i*Z_i} */
+rkD[0] = ZERO;
+rkD[1] = ZERO;
+rkD[2] = ZERO;
+rkD[3] = ZERO;
+rkD[4] = ONE;
+
+/* Err = h * Sum_i {(rkB_i-rkBhat_i)*k_i} = Sum_i {rkE_i*Z_i} */
+rkE[0] = (KPP_REAL)(-0.6804000050475287124787034884002302);
+rkE[1] = (KPP_REAL)(1.558961944525217193393931795738823);
+rkE[2] = (KPP_REAL)(-13.55893003128907927748632408763868);
+rkE[3] = (KPP_REAL)(15.48522576958521253098585004571302);
+rkE[4] = ONE;
+
+/* Local order of Err estimate */
+rkELO = 4;
+
+/* h*Sum_j {rkA_ij*k_j} = Sum_j {rkTheta_ij*Z_j} */
+rkTheta[0][1] = (KPP_REAL)1.875000000000000000000000000000000;
+rkTheta[0][2] = (KPP_REAL)1.708847304091539528432732316227462;
+rkTheta[1][2] = (KPP_REAL)(-0.2030773231622746185852981969486824);
+rkTheta[0][3] = (KPP_REAL)0.2680325578937783958847157206823118;
+rkTheta[1][3] = (KPP_REAL)(-0.1828840955527181631794050728644549);
+rkTheta[2][3] = (KPP_REAL)0.2968246986151577397160821594427966;
+rkTheta[0][4] = (KPP_REAL)0.9096171815241460655379433581446771;
+rkTheta[1][4] = (KPP_REAL)(-3.108254967778352416114774430509465);
+rkTheta[2][4] = (KPP_REAL)12.33727431701306195581826123274001;
+rkTheta[3][4] = (KPP_REAL)(-11.24557012450885560524143016037523);
+
+/* Starting value for Newton iterations: Z_i^0 = Sum_j {rkAlpha_ij*Z_j} */
+rkAlpha[0][1] = (KPP_REAL)2.875000000000000000000000000000000;
+rkAlpha[0][2] = (KPP_REAL)0.8500000000000000000000000000000000;
+rkAlpha[1][2] = (KPP_REAL)0.4434782608695652173913043478260870;
+rkAlpha[0][3] = (KPP_REAL)0.7352046091658870564637910527807370;
+rkAlpha[1][3] = (KPP_REAL)(-0.9525565003057343527941920657462074e-01);
+rkAlpha[2][3] = (KPP_REAL)0.4290111305453813852259481840631738;
+rkAlpha[0][4] = (KPP_REAL)(-16.10898993405067684831655675112808);
+rkAlpha[1][4] = (KPP_REAL)6.559571569643355712998131800797873;
+rkAlpha[2][4] = (KPP_REAL)(-15.90772144271326504260996815012482);
+rkAlpha[3][4] = (KPP_REAL)25.34908987169226073668861694892683;
+
+rkELO = (KPP_REAL)4.0;
+
+} /* end Sdirk4a */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void Sdirk4b()
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+{
+
+sdMethod = S4B;
+
+/* Number of stages */
+rkS = 5;
+
+/* Method coefficients */
+rkGamma = (KPP_REAL)0.25;
+
+rkA[0][0] = (KPP_REAL)0.25;
+rkA[0][1] = (KPP_REAL)0.5;
+rkA[1][1] = (KPP_REAL)0.25;
+rkA[0][2] = (KPP_REAL)0.34;
+rkA[1][2] = (KPP_REAL)(-0.40e-01);
+rkA[2][2] = (KPP_REAL)0.25;
+rkA[0][3] = (KPP_REAL)0.2727941176470588235294117647058824;
+rkA[1][3] = (KPP_REAL)(-0.5036764705882352941176470588235294e-01);
+rkA[2][3] = (KPP_REAL)0.2757352941176470588235294117647059e-01;
+rkA[3][3] = (KPP_REAL)0.25;
+rkA[0][4] = (KPP_REAL)1.041666666666666666666666666666667;
+rkA[1][4] = (KPP_REAL)(-1.020833333333333333333333333333333);
+rkA[2][4] = (KPP_REAL)7.812500000000000000000000000000000;
+rkA[3][4] = (KPP_REAL)(-7.083333333333333333333333333333333);
+rkA[4][4] = (KPP_REAL)0.25;
+
+rkB[0] = (KPP_REAL)1.041666666666666666666666666666667;
+rkB[1] = (KPP_REAL)(-1.020833333333333333333333333333333);
+rkB[2] = (KPP_REAL)7.812500000000000000000000000000000;
+rkB[3] = (KPP_REAL)(-7.083333333333333333333333333333333);
+rkB[4] = (KPP_REAL)0.250000000000000000000000000000000;
+
+rkBhat[0] = (KPP_REAL)1.069791666666666666666666666666667;
+rkBhat[1] = (KPP_REAL)(-0.894270833333333333333333333333333);
+rkBhat[2] = (KPP_REAL)7.695312500000000000000000000000000;
+rkBhat[3] = (KPP_REAL)(-7.083333333333333333333333333333333);
+rkBhat[4] = (KPP_REAL)0.212500000000000000000000000000000;
+
+rkC[0] = (KPP_REAL)0.25;
+rkC[1] = (KPP_REAL)0.75;
+rkC[2] = (KPP_REAL)0.55;
+rkC[3] = (KPP_REAL)0.5;
+rkC[4] = ONE;
+
+/* Ynew = Yold + h*Sum_i {rkB_i*k_i} = Yold + Sum_i {rkD_i*Z_i} */
+rkD[0] = ZERO;
+rkD[1] = ZERO;
+rkD[2] = ZERO;
+rkD[3] = ZERO;
+rkD[4] = ONE;
+
+/* Err = h * Sum_i {(rkB_i-rkBhat_i)*k_i} = Sum_i {rkE_i*Z_i} */
+rkE[0] = (KPP_REAL)0.5750;
+rkE[1] = (KPP_REAL)0.2125;
+rkE[2] = (KPP_REAL)(-4.6875);
+rkE[3] = (KPP_REAL)4.2500;
+rkE[4] = (KPP_REAL)0.1500;
+
+/* Local order of Err estimate */
+rkELO = 4;
+
+/* h*Sum_j {rkA_ij*k_j} = Sum_j {rkTheta_ij*Z_j} */
+rkTheta[0][1] = (KPP_REAL)2.0;
+rkTheta[0][2] = (KPP_REAL)1.680000000000000000000000000000000;
+rkTheta[1][2] = (KPP_REAL)(-0.1600000000000000000000000000000000);
+rkTheta[0][3] = (KPP_REAL)1.308823529411764705882352941176471;
+rkTheta[1][3] = (KPP_REAL)(-0.1838235294117647058823529411764706);
+rkTheta[2][3] = (KPP_REAL)0.1102941176470588235294117647058824;
+rkTheta[0][4] = (KPP_REAL)(-3.083333333333333333333333333333333);
+rkTheta[1][4] = (KPP_REAL)(-4.291666666666666666666666666666667);
+rkTheta[2][4] = (KPP_REAL)34.37500000000000000000000000000000;
+rkTheta[3][4] = (KPP_REAL)(-28.3333333333333333333333333333);
+
+/* Starting value for Newton iterations: Z_i^0 = Sum_j {rkAlpha_ij*Z_j} */
+rkAlpha[0][1] = (KPP_REAL)3.0;
+rkAlpha[0][2] = (KPP_REAL)0.8800000000000000000000000000000000;
+rkAlpha[1][2] = (KPP_REAL)0.4400000000000000000000000000000000;
+rkAlpha[0][3] = (KPP_REAL)0.1666666666666666666666666666666667;
+rkAlpha[1][3] = (KPP_REAL)(-0.8333333333333333333333333333333333e-01);
+rkAlpha[2][3] = (KPP_REAL)0.9469696969696969696969696969696970;
+rkAlpha[0][4] = (KPP_REAL)(-6.0);
+rkAlpha[1][4] = (KPP_REAL)9.0;
+rkAlpha[2][4] = (KPP_REAL)(-56.81818181818181818181818181818182);
+rkAlpha[3][4] = (KPP_REAL)54.0;
+
+} /* end Sdirk4b */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void Sdirk2a()
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+{
+
+sdMethod = S2A;
+
+/* ~~~> Number of stages    */
+rkS = 2;
+
+/* ~~~> Method coefficients    */
+rkGamma = (KPP_REAL)0.2928932188134524755991556378951510;
+rkA[0][0] = (KPP_REAL)0.2928932188134524755991556378951510;
+rkA[0][1] = (KPP_REAL)0.7071067811865475244008443621048490;
+rkA[1][1] = (KPP_REAL)0.2928932188134524755991556378951510;
+rkB[0] = (KPP_REAL)0.7071067811865475244008443621048490;
+rkB[1] = (KPP_REAL)0.2928932188134524755991556378951510;
+rkBhat[0] = (KPP_REAL)0.6666666666666666666666666666666667;
+rkBhat[1] = (KPP_REAL)0.3333333333333333333333333333333333;
+rkC[0] = (KPP_REAL)0.292893218813452475599155637895151;
+rkC[1] = ONE;
+
+/* ~~~> Ynew = Yold + h*Sum_i {rkB_i*k_i} = Yold + Sum_i {rkD_i*Z_i}    */
+rkD[0] = ZERO;
+rkD[1] = ONE;
+
+/* ~~~> Err = h * Sum_i {(rkB_i-rkBhat_i)*k_i} = Sum_i {rkE_i*Z_i}    */
+rkE[0] = (KPP_REAL)0.4714045207910316829338962414032326;
+rkE[1] = (KPP_REAL)(-0.1380711874576983496005629080698993);
+
+/* ~~~> Local order of Err estimate    */
+rkELO = 2;
+
+/* ~~~> h*Sum_j {rkA_ij*k_j} = Sum_j {rkTheta_ij*Z_j}    */
+rkTheta[0][1] = (KPP_REAL)2.414213562373095048801688724209698;
+
+/* ~~~> Starting value for Newton iterations */
+rkAlpha[0][1] = (KPP_REAL)3.414213562373095048801688724209698;
+
+} /* end Sdirk2a */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void Sdirk2b()
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+{
+
+sdMethod = S2B;
+
+/* ~~~> Number of stages    */
+rkS      = 2;
+
+/* ~~~> Method coefficients    */
+rkGamma = (KPP_REAL)1.707106781186547524400844362104849;
+rkA[0][0] = (KPP_REAL)1.707106781186547524400844362104849;
+rkA[0][1] = (KPP_REAL)(-0.707106781186547524400844362104849);
+rkA[1][1] = (KPP_REAL)1.707106781186547524400844362104849;
+rkB[0] = (KPP_REAL)(-0.707106781186547524400844362104849);
+rkB[1] = (KPP_REAL)1.707106781186547524400844362104849;
+rkBhat[0] = (KPP_REAL)0.6666666666666666666666666666666667;
+rkBhat[1] = (KPP_REAL)0.3333333333333333333333333333333333;
+rkC[0] = (KPP_REAL)1.707106781186547524400844362104849;
+rkC[1] = ONE;
+
+/* ~~~> Ynew = Yold + h*Sum_i {rkB_i*k_i} = Yold + Sum_i {rkD_i*Z_i}    */
+rkD[0] = ZERO;
+rkD[1] = ONE;
+
+/* ~~~> Err = h * Sum_i {(rkB_i-rkBhat_i)*k_i} = Sum_i {rkE_i*Z_i}    */
+rkE[0] = (KPP_REAL)(-0.4714045207910316829338962414032326);
+rkE[1] = (KPP_REAL)0.8047378541243650162672295747365659;
+
+/* ~~~> Local order of Err estimate    */
+rkELO = 2;
+
+/* ~~~> h*Sum_j {rkA_ij*k_j} = Sum_j {rkTheta_ij*Z_j}    */
+rkTheta[0][1] = (KPP_REAL)(-0.414213562373095048801688724209698);
+
+/* ~~~> Starting value for Newton iterations */
+rkAlpha[0][1] = (KPP_REAL)0.5857864376269049511983112757903019;
+
+} /* end Sdirk2b */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void Sdirk3a()
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+{
+
+sdMethod = S3A;
+
+/* ~~~> Number of stages    */
+rkS = 3;
+
+/* ~~~> Method coefficients    */
+rkGamma = (KPP_REAL)0.2113248654051871177454256097490213;
+rkA[0][0] = (KPP_REAL)0.2113248654051871177454256097490213;
+rkA[0][1] = (KPP_REAL)0.2113248654051871177454256097490213;
+rkA[1][1] = (KPP_REAL)0.2113248654051871177454256097490213;
+rkA[0][2] = (KPP_REAL)0.2113248654051871177454256097490213;
+rkA[1][2] = (KPP_REAL)0.5773502691896257645091487805019573;
+rkA[2][2] = (KPP_REAL)0.2113248654051871177454256097490213;
+rkB[0] = (KPP_REAL)0.2113248654051871177454256097490213;
+rkB[1] = (KPP_REAL)0.5773502691896257645091487805019573;
+rkB[2] = (KPP_REAL)0.2113248654051871177454256097490213;
+rkBhat[0]= (KPP_REAL)0.2113248654051871177454256097490213;
+rkBhat[1]= (KPP_REAL)0.6477918909913548037576239837516312;
+rkBhat[2]= (KPP_REAL)0.1408832436034580784969504064993475;
+rkC[0] = (KPP_REAL)0.2113248654051871177454256097490213;
+rkC[1] = (KPP_REAL)0.4226497308103742354908512194980427;
+rkC[2] = ONE;
+
+/* ~~~> Ynew = Yold + h*Sum_i {rkB_i*k_i} = Yold + Sum_i {rkD_i*Z_i}    */
+rkD[0] = ZERO;
+rkD[1] = ZERO;
+rkD[2] = ONE;
+
+/* ~~~> Err = h * Sum_i {(rkB_i-rkBhat_i)*k_i} = Sum_i {rkE_i*Z_i}    */
+rkE[0] = (KPP_REAL)0.9106836025229590978424821138352906;
+rkE[1] = (KPP_REAL)(-1.244016935856292431175815447168624);
+rkE[2] = (KPP_REAL)0.3333333333333333333333333333333333;
+
+/* ~~~> Local order of Err estimate    */
+rkELO    = 2;
+
+/* ~~~> h*Sum_j {rkA_ij*k_j} = Sum_j {rkTheta_ij*Z_j}    */
+rkTheta[0][1] =  ONE;
+rkTheta[0][2] = (KPP_REAL)(-1.732050807568877293527446341505872);
+rkTheta[1][2] = (KPP_REAL)2.732050807568877293527446341505872;
+
+/* ~~~> Starting value for Newton iterations */
+rkAlpha[0][1] = (KPP_REAL)2.0;
+rkAlpha[0][2] = (KPP_REAL)(-12.92820323027550917410978536602349);
+rkAlpha[1][2] = (KPP_REAL)8.83012701892219323381861585376468;
+
+} /* end Sdirk3a */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void FUN_CHEM(KPP_REAL T, KPP_REAL Y[], KPP_REAL P[])
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+{
+
+KPP_REAL Told;
+
+Told = TIME;
+TIME = T;
+Update_SUN();
+Update_RCONST();
+Fun( Y, FIX, RCONST, P );
+TIME = Told;
+
+
+}  /*  end FUN_CHEM  */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void JAC_CHEM(KPP_REAL T, KPP_REAL Y[], KPP_REAL JV[])
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+{
+
+KPP_REAL Told;
+
+#ifdef FULL_ALGEBRA
+	KPP_REAL JS[LU_NONZERO];
+	int i,j;
+#endif
+
+Told = TIME;
+TIME = T;
+Update_SUN();
+Update_RCONST();
+
+#ifdef FULL_ALGEBRA
+	Jac_SP( Y, FIX, RCONST, JS);
+
+	for(j=0; j<NVAR; j++) {
+		for(i=0; i<NVAR; i++) {
+			JV[j][i] = (KPP_REAL)0.0;
+		} /* end for */
+	} /* end for */
+
+	for(i=0; i<LU_NONZERO; i++) {
+		JV[LU_ICOL[i]][LU_IROW[i]] = JS[i];
+	} /* end for */
+#else
+	Jac_SP(Y, FIX, RCONST, JV);
+#endif
+
+TIME = Told;
+
+} /* end JAC_CHEM  */
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/sdirk.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/sdirk.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/sdirk.def	(revision 2696)
@@ -0,0 +1,20 @@
+ 
+#FUNCTION AGGREGATE
+#JACOBIAN SPARSE_LU_ROW
+
+#DOUBLE ON 
+#INTFILE sdirk
+
+#INLINE F77_GLOBAL
+      REAL*8 STEPSTART
+      COMMON /GDATA/ STEPSTART
+#ENDINLINE
+
+#INLINE F77_INIT
+        STEPMIN=0.0001
+        STEPMAX=3600.
+        STEPSTART=STEPMIN
+#ENDINLINE
+
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/sdirk.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/sdirk.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/sdirk.f	(revision 2696)
@@ -0,0 +1,705 @@
+      SUBROUTINE INTEGRATE( TIN, TOUT )
+
+      IMPLICIT KPP_REAL (A-H,O-Z)	 
+      INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Global.h'
+
+C TIN - Start Time
+      KPP_REAL TIN
+C TOUT - End Time
+      KPP_REAL TOUT
+      INTEGER i 
+
+      PARAMETER (LWORK=2*NVAR*NVAR+12*NVAR+7,LIWORK=2*NVAR+7)
+      PARAMETER (LRCONT=5*NVAR+2)
+
+      KPP_REAL WORK(LWORK)
+      INTEGER IWORK(LIWORK)   
+      COMMON /CONT/ ICONT(4),RCONT(LRCONT)
+      EXTERNAL FUNC_CHEM,JAC_CHEM
+
+      ITOL=1     ! --- VECTOR TOLERANCES
+      IJAC=1     ! --- COMPUTE THE JACOBIAN ANALYTICALLY
+      IMAS=0     ! --- DIFFERENTIAL EQUATION IS IN EXPLICIT FORM
+
+      DO i=1,20
+        IWORK(i) = 0
+        WORK(i) = 0.D0
+      ENDDO
+      
+      IWORK(3) = 8
+
+      CALL ATMSDIRK(NVAR,FUNC_CHEM,TIN,VAR,TOUT,STEPMIN,     
+     &                  RTOL,ATOL,ITOL,     
+     &                  JAC_CHEM ,IJAC, FUNC_CHEM ,IMAS,                   
+     &                  WORK,LWORK,IWORK,LIWORK,LRCONT,IDID)        
+
+      IF (IDID.LT.0) THEN
+        print *,'ATMSDIRK: Unsucessfull exit at T=',
+     &          TIN,' (IDID=',IDID,')'
+      ENDIF
+
+      RETURN
+      END
+
+
+      SUBROUTINE ATMSDIRK(N,FCN,X,Y,XEND,H,
+     &                  RelTol,AbsTol,ITOL,
+     &                  JAC ,IJAC, MAS ,IMAS,
+     &                  WORK,LWORK,IWORK,LIWORK,LRCONT,IDID)
+C ----------------------------------------------------------
+C *** *** *** *** *** *** *** *** *** *** *** *** ***
+C          DECLARATIONS 
+C *** *** *** *** *** *** *** *** *** *** *** *** *** 
+      IMPLICIT KPP_REAL (A-H,O-Z)
+      DIMENSION Y(N),AbsTol(1),RelTol(1),WORK(LWORK),IWORK(LIWORK)
+      LOGICAL IMPLCT,JBAND,ARRET
+      EXTERNAL FCN,JAC,MAS
+      COMMON/STAT/NFCN,NJAC,NSTEP,NACCPT,NREJCT,NDEC,NSOL
+
+C *** *** *** *** *** *** ***
+C        SETTING THE PARAMETERS 
+C *** *** *** *** *** *** ***
+       NFCN=0
+       NJAC=0
+       NSTEP=0
+       NACCPT=0
+       NREJCT=0
+       NDEC=0
+       NSOL=0
+       ARRET=.FALSE.
+C -------- SWITCH FOR TRANSFORMATION OF JACOBIAN TO HESS_CHEM FORM ---
+      NHESS1 = 0         ! ADRIAN
+C -------- NMAX , THE MAXIMAL NUMBER OF STEPS -----
+      IF(IWORK(2).EQ.0)THEN
+         NMAX=100000
+      ELSE
+         NMAX=IWORK(2)
+         IF(NMAX.LE.0)THEN
+            WRITE(6,*)' WRONG INPUT IWORK(2)=',IWORK(2)
+            ARRET=.TRUE.
+         END IF
+      END IF
+C -------- NIT    MAXIMAL NUMBER OF NEWTON ITERATIONS
+      IF(IWORK(3).EQ.0)THEN
+         NIT=8
+      ELSE
+         NIT=IWORK(3)
+         IF(NIT.LE.0)THEN
+            WRITE(6,*)' CURIOUS INPUT IWORK(3)=',IWORK(3)
+            ARRET=.TRUE.
+         END IF
+      END IF
+C -------- METH    SWITCH FOR THE COEFFICIENTS OF THE METHOD 
+      METH = 2
+C -------- UROUND   SMALLEST NUMBER SATISFYING 1.D0+UROUND>1.D0  
+      IF(WORK(1).EQ.0.D0)THEN
+         UROUND=1.D-16
+      ELSE
+         UROUND=WORK(1)
+         IF(UROUND.LE.1.D-19.OR.UROUND.GE.1.D0)THEN
+            WRITE(6,*)' COEFFICIENTS HAVE 20 DIGITS, UROUND=',WORK(1)
+            ARRET=.TRUE.
+         END IF
+      END IF
+C --------- SAFE     SAFETY FACTOR IN STEP SIZE PREDICTION
+      IF(WORK(2).EQ.0.D0)THEN
+         SAFE=0.9D0
+      ELSE
+         SAFE=WORK(2)
+         IF(SAFE.LE..001D0.OR.SAFE.GE.1.D0)THEN
+            WRITE(6,*)' CURIOUS INPUT FOR WORK(2)=',WORK(2)
+            ARRET=.TRUE.
+         END IF
+      END IF
+C ------ THET     DECIDES WHETHER THE JACOBIAN SHOULD BE RECOMPUTED;
+      IF(WORK(3).EQ.0.D0)THEN
+         THET=0.001D0
+      ELSE
+         THET=WORK(3)
+      END IF
+C --- FNEWT   STOPPING CRIERION FOR NEWTON'S METHOD, USUALLY CHOSEN <1.
+      IF(WORK(4).EQ.0.D0)THEN
+         FNEWT=0.03D0
+      ELSE
+         FNEWT=WORK(4)
+      END IF
+C --- QUOT1 AND QUOT2: IF QUOT1 < HNEW/HOLD < QUOT2, STEP SIZE = CONST.
+      IF(WORK(5).EQ.0.D0)THEN
+         QUOT1=1.D0
+      ELSE
+         QUOT1=WORK(5)
+      END IF
+      IF(WORK(6).EQ.0.D0)THEN
+         QUOT2=1.2D0
+      ELSE
+         QUOT2=WORK(6)
+      END IF
+C -------- MAXIMAL STEP SIZE
+      IF(WORK(7).EQ.0.D0)THEN
+         HMAX=XEND-X
+      ELSE
+         HMAX=WORK(7)
+      END IF
+C --------- CHECK IF TOLERANCES ARE O.K.
+      IF (ITOL.EQ.0) THEN
+          IF (AbsTol(1).LE.0.D0.OR.RelTol(1).LE.10.D0*UROUND) THEN
+              WRITE (6,*) ' TOLERANCES ARE TOO SMALL'
+              ARRET=.TRUE.
+          END IF
+      ELSE
+          DO 15 I=1,N
+          IF (AbsTol(I).LE.0.D0.OR.RelTol(I).LE.10.D0*UROUND) THEN
+              WRITE (6,*) ' TOLERANCES(',I,') ARE TOO SMALL'
+              ARRET=.TRUE.
+          END IF
+  15      CONTINUE
+      END IF
+
+C *** *** *** *** *** *** *** *** *** *** *** *** ***
+C         COMPUTATION OF ARRAY ENTRIES
+C *** *** *** *** *** *** *** *** *** *** *** *** ***
+C ---- IMPLICIT, BANDED OR NOT ?
+      IMPLCT=IMAS.NE.0
+      ARRET=.FALSE.
+C -------- COMPUTATION OF THE ROW-DIMENSIONS OF THE 2-ARRAYS ---
+C -- JACOBIAN 
+         LDJAC=N
+C -- MATRIX E FOR LINEAR ALGEBRA
+         LDE=N
+C -- MASS MATRIX
+      IF (IMPLCT) THEN
+          print *,'IMPLCT 1'
+      ELSE
+          LDMAS=0
+      END IF
+      LDMAS2=MAX(1,LDMAS)
+
+C ------- PREPARE THE ENTRY-POINTS FOR THE ARRAYS IN WORK -----
+      IEYHAT=8
+      IEZ=IEYHAT+N
+      IEY0=IEZ+N
+      IEZ1=IEY0+N
+      IEZ2=IEZ1+N
+      IEZ3=IEZ2+N
+      IEZ4=IEZ3+N
+      IEZ5=IEZ4+N
+      IESCAL=IEZ5+N
+      IEF1=IESCAL+N
+      IEG1=IEF1+N
+      IEH1=IEG1+N
+      IEJAC=IEH1+N
+      IEMAS=IEJAC+N*LDJAC
+      IEE=IEMAS+N*LDMAS
+
+C ------ TOTAL STORAGE REQUIREMENT -----------
+      ISTORE=IEE+N*LDE-1
+      IF(ISTORE.GT.LWORK)THEN
+         WRITE(6,*)' INSUFFICIENT STORAGE FOR WORK, MIN. LWORK=',ISTORE
+         ARRET=.TRUE.
+      END IF
+C ------- ENTRY POINTS FOR INTEGER WORKSPACE -----
+      IEIP=5
+      IEHES=IEIP+N
+C --------- TOTAL REQUIREMENT ---------------
+      ISTORE=IEHES+N-1
+      IF(ISTORE.GT.LIWORK)THEN
+         WRITE(6,*)' INSUFF. STORAGE FOR IWORK, MIN. LIWORK=',ISTORE
+         ARRET=.TRUE.
+      END IF
+C --------- CONTROL OF LENGTH OF COMMON BLOCK "CONT" -------
+      IF(LRCONT.LT.(5*N+2))THEN
+         WRITE(6,*)' INSUFF. STORAGE FOR RCONT, MIN. LRCONT=',5*N+2
+         ARRET=.TRUE.
+      END IF
+C ------ WHEN A FAIL HAS OCCURED, WE RETURN WITH IDID=-1
+      IF (ARRET) THEN
+         IDID=-1
+         RETURN
+      END IF
+C -------- CALL TO CORE INTEGRATOR ------------
+      CALL SDICOR(N,FCN,X,Y,XEND,HMAX,H,RelTol,AbsTol,ITOL,
+     &   JAC,IJAC,MLJAC,MUJAC,MAS,MLMAS,MUMAS,IOUT,IDID,
+     &   NMAX,UROUND,SAFE,THET,FNEWT,QUOT1,QUOT2,NIT,METH,NHESS1,
+     &   IMPLCT,JBAND,LDJAC,LDE,LDMAS2,
+     &   WORK(IEYHAT),WORK(IEZ),WORK(IEY0),WORK(IEZ1),WORK(IEZ2),
+     &   WORK(IEZ3),WORK(IEZ4),WORK(IEZ5),WORK(IESCAL),WORK(IEF1),
+     &   WORK(IEG1),WORK(IEH1),WORK(IEJAC),WORK(IEE),
+     &   WORK(IEMAS),IWORK(IEIP),IWORK(IEHES))
+C ----------- RETURN -----------
+      RETURN
+      END
+C
+C
+C
+C  ----- ... AND HERE IS THE CORE INTEGRATOR  ----------
+C
+      SUBROUTINE SDICOR(N,FCN,X,Y,XEND,HMAX,H,RelTol,AbsTol,ITOL,
+     &   JAC,IJAC,MLJAC,MUJAC,MAS,MLMAS,MUMAS,IOUT,IDID,
+     &   NMAX,UROUND,SAFE,THET,FNEWT,QUOT1,QUOT2,NIT,METH,NHESS1,
+     &   IMPLCT,BANDED,LDJAC,LE,LDMAS,
+     &   YHAT,Z,Y0,Z1,Z2,Z3,Z4,Z5,SCAL,F1,G1,H1,FJAC,E,FMAS,IP,IPHES)
+C ----------------------------------------------------------
+C     CORE INTEGRATOR FOR SDIRK4
+C     PARAMETERS SAME AS IN SDIRK4 WITH WORKSPACE ADDED 
+C ---------------------------------------------------------- 
+C         DECLARATIONS 
+C ---------------------------------------------------------- 
+      IMPLICIT KPP_REAL (A-H,O-Z)
+      INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Sparse.h'
+      KPP_REAL Y(N),YHAT(N),Z(N),Y0(N),Z1(N),Z2(N),Z3(N),Z4(N),Z5(N)
+      KPP_REAL SCAL(N),F1(N),G1(N),H1(N)
+      KPP_REAL FJAC(LU_NONZERO),E(LU_NONZERO),FMAS(LDMAS,N)
+      KPP_REAL AbsTol(1),RelTol(1)
+      INTEGER IP(N),IPHES(N)
+      LOGICAL REJECT,FIRST,IMPLCT,BANDED,CALJAC,NEWTRE
+      COMMON /CONT/NN,NN2,NN3,NN4,XOLD,HSOL,CONT(5*NVAR)
+      COMMON/STAT/NFCN,NJAC,NSTEP,NACCPT,NREJCT,NDEC,NSOL
+      EXTERNAL MAS, FCN, JAC
+
+C *** *** *** *** *** *** ***
+C  INITIALISATIONS
+C *** *** *** *** *** *** ***
+
+C --------- DUPLIFY N FOR COMMON BLOCK CONT -----
+      NN=N
+      NN2=2*N
+      NN3=3*N
+      NN4=4*N
+
+C ------- COMPUTE MASS MATRIX FOR IMPLICIT CASE ----------
+      IF(IMPLCT) CALL MAS(N,FMAS,LDMAS)
+
+C ---------- CONSTANTS ---------
+      MBDIAG=MUMAS+1
+      IF (METH.EQ.2) THEN
+C ---------- METHOD WITH GAMMA = 4/15 ---------------
+          GAMMA=4.0D0/15.0D0
+          C2=23.0D0/30.0D0
+          C3=17.0D0/30.0D0
+          C4=2881.0D0/28965.0D0+GAMMA
+          ALPH21=15.0D0/8.0D0
+          ALPH31=1577061.0D0/922880.0D0
+          ALPH32=-23427.0D0/115360.0D0
+          ALPH41=647163682356923881.0D0/2414496535205978880.0D0
+          ALPH42=-593512117011179.0D0/3245291041943520.0D0
+          ALPH43=559907973726451.0D0/1886325418129671.0D0
+          ALPH51=724545451.0D0/796538880.0D0
+          ALPH52=-830832077.0D0/267298560.0D0
+          ALPH53=30957577.0D0/2509272.0D0
+          ALPH54=-69863904375173.0D0/6212571137048.0D0
+          E1=7752107607.0D0/11393456128.0D0
+          E2=-17881415427.0D0/11470078208.0D0
+          E3=2433277665.0D0/179459416.0D0
+          E4=-96203066666797.0D0/6212571137048.0D0
+          D11= 24.74416644927758D0
+          D12= -4.325375951824688D0
+          D13= 41.39683763286316D0
+          D14= -61.04144619901784D0
+          D15= -3.391332232917013D0
+          D21= -51.98245719616925D0
+          D22= 10.52501981094525D0
+          D23= -154.2067922191855D0
+          D24= 214.3082125319825D0
+          D25= 14.71166018088679D0
+          D31= 33.14347947522142D0
+          D32= -19.72986789558523D0
+          D33= 230.4878502285804D0
+          D34= -287.6629744338197D0
+          D35= -18.99932366302254D0
+          D41= -5.905188728329743D0
+          D42= 13.53022403646467D0
+          D43= -117.6778956422581D0
+          D44= 134.3962081008550D0
+          D45= 8.678995715052762D0
+         ETA1=23.D0/8.D0
+         ANU1= 0.9838473040915402D0
+         ANU2= 0.3969226768377252D0
+         AMU1= 0.6563374010466914D0
+         AMU3= 0.3372498196189311D0
+      ELSE
+         PRINT *, 'WRONG  CHOICE OF <METH>'
+      END IF
+      POSNEG=SIGN(1.D0,XEND-X)
+      HMAX1=MIN(ABS(HMAX),ABS(XEND-X))
+      IF (ABS(H).LE.10.D0*UROUND) H=1.0D-6
+      H=MIN(ABS(H),HMAX1) 
+      H=SIGN(H,POSNEG) 
+      HOLD=H
+      CFAC=SAFE*(1+2*NIT)
+      NEWTRE=.FALSE.
+      REJECT=.FALSE.
+      FIRST=.TRUE.
+      FACCO1=1.D0
+      FACCO2=1.D0
+      FACCO3=1.D0
+      FACCO4=1.D0
+      FACCO5=1.D0
+      NSING=0
+      XOLD=X
+      IF (ITOL.EQ.0) THEN
+          DO 8 I=1,N
+   8      SCAL(I)=1.D0 / ( AbsTol(1)+RelTol(1)*DABS(Y(I)) )
+      ELSE
+          DO 9 I=1,N
+   9      SCAL(I)=1.D0 / ( AbsTol(I)+RelTol(I)*DABS(Y(I)) )
+      END IF
+
+C --- BASIC INTEGRATION STEP  
+  10  CONTINUE
+
+C *** *** *** *** *** *** ***
+C  COMPUTATION OF THE JACOBIAN
+C *** *** *** *** *** *** ***
+      NJAC=NJAC+1
+      CALL JAC(N,X,Y,FJAC)
+      CALJAC=.TRUE.
+  20  CONTINUE
+
+C *** *** *** *** *** *** ***
+C  COMPUTE THE MATRIX E AND ITS DECOMPOSITION
+C *** *** *** *** *** *** ***
+      FAC1=1.D0/(H*GAMMA)
+      IF (IMPLCT) THEN
+         print *, 'IMPLCT 4'
+      ELSE  ! EXPLICIT SYSTEM
+C --- THE MATRIX E (MAS=IDENTITY, JACOBIAN A FULL MATRIX)
+c         DO 526 J=1,N
+c           DO 525 I=1,N
+c 525         E(I,J)=-FJAC(I,J)
+c 526       E(J,J)=E(J,J)+FAC1
+c         CALL DEC(N,LE,E,IP,IER)
+          DO K=1,LU_NONZERO
+             E(K) = -FJAC(K)
+          END DO
+          DO I=1,N
+             IDG = LU_DIAG(I)
+             E(IDG) = E(IDG) + FAC1
+          END DO
+          CALL KppDecomp ( E, IER)
+          
+         IF (IER.NE.0) GOTO 79 
+      END IF
+      NDEC=NDEC+1
+  30  CONTINUE
+
+      IF (NSTEP.GT.NMAX.OR.X+.1D0*H.EQ.X.OR.ABS(H).LE.UROUND) GOTO 79
+      XPH=X+H
+C --- LOOP FOR THE 5 STAGES
+      FACCO1=DMAX1(FACCO1,UROUND)**0.8D0
+      FACCO2=DMAX1(FACCO2,UROUND)**0.8D0
+      FACCO3=DMAX1(FACCO3,UROUND)**0.8D0
+      FACCO4=DMAX1(FACCO4,UROUND)**0.8D0
+      FACCO5=DMAX1(FACCO5,UROUND)**0.8D0
+
+C *** *** *** *** *** *** ***
+C  STARTING VALUES FOR NEWTON ITERATION
+C *** *** *** *** *** *** ***
+      DO 59 ISTAGE=1,5
+      IF (ISTAGE.EQ.1) THEN
+          XCH=X+GAMMA*H
+          IF (FIRST.OR.NEWTRE) THEN
+              DO 132 I=1,N
+ 132          Z(I)=0.D0
+          ELSE
+              S=1.D0+GAMMA*H/HOLD
+              DO 232 I=1,N
+c  232          Z(I) = 0.D0
+ 232          Z(I)=S*(CONT(I+NN)+S*(CONT(I+NN2)+S*(CONT(I+NN3)
+     &             +S*CONT(I+NN4))))-YHAT(I)
+
+          END IF
+          DO 31 I=1,N
+  31      G1(I)=0.D0 
+          FACCON=FACCO1
+      END IF
+      IF (ISTAGE.EQ.2) THEN
+          XCH=X+C2*H
+          DO 131 I=1,N
+          Z1I=Z1(I)
+          Z(I)=ETA1*Z1I
+ 131      G1(I)=ALPH21*Z1I
+          FACCON=FACCO2
+      END IF
+      IF (ISTAGE.EQ.3) THEN
+          XCH=X+C3*H
+          DO 231 I=1,N
+          Z1I=Z1(I)
+          Z2I=Z2(I)
+          Z(I)=ANU1*Z1I+ANU2*Z2I
+ 231      G1(I)=ALPH31*Z1I+ALPH32*Z2I
+          FACCON=FACCO3
+      END IF
+      IF (ISTAGE.EQ.4) THEN
+          XCH=X+C4*H
+          DO 331 I=1,N
+          Z1I=Z1(I)
+          Z3I=Z3(I)
+          Z(I)=AMU1*Z1I+AMU3*Z3I
+ 331      G1(I)=ALPH41*Z1I+ALPH42*Z2(I)+ALPH43*Z3I
+          FACCON=FACCO4
+      END IF
+      IF (ISTAGE.EQ.5) THEN
+          XCH=XPH
+          DO 431 I=1,N
+          Z1I=Z1(I)
+          Z2I=Z2(I)
+          Z3I=Z3(I)
+          Z4I=Z4(I)
+          Z(I)=E1*Z1I+E2*Z2I+E3*Z3I+E4*Z4I
+          YHAT(I)=Z(I)
+ 431      G1(I)=ALPH51*Z1I+ALPH52*Z2I+ALPH53*Z3I+ALPH54*Z4I
+          FACCON=FACCO5
+      END IF
+
+
+
+C *** *** *** *** *** *** *** *** *** *** ***
+C  LOOP FOR THE SIMPLIFIED NEWTON ITERATION
+C *** *** *** *** *** *** *** *** *** *** ***
+            NEWT=0
+            THETA=ABS(THET)
+            IF (REJECT) THETA=2*ABS(THET)
+  40        CONTINUE
+            IF (NEWT.GE.NIT) THEN
+                H=H/2.D0
+                REJECT=.TRUE.
+                NEWTRE=.TRUE.
+                IF (CALJAC) GOTO 20
+                GOTO 10
+            END IF
+
+C ---     COMPUTE THE RIGHT-HAND SIDE
+            DO 41 I=1,N
+            H1(I)=G1(I)-Z(I)
+  41        CONT(I)=Y(I)+Z(I)
+            CALL FCN(N,XCH,CONT,F1)
+            NFCN=NFCN+1
+
+C ---     KppSolve THE LINEAR SYSTEMS
+            IF (IMPLCT) THEN
+                print *, 'IMPLCT 2'
+            ELSE
+                DO 345 I=1,N
+ 345            F1(I)=H1(I)*FAC1+F1(I)
+C                CALL SOL(N,LE,E,F1,IP)
+                CALL KppSolve(E, F1)
+            END IF
+            NEWT=NEWT+1
+            DYNO=0.D0
+C --- NORM 2 ---
+            DO 57 I=1,N
+  57        DYNO=DYNO+(F1(I)*SCAL(I))**2
+            DYNO=DSQRT(DYNO/N)
+C --- NORM INF ---
+C            DO 57 I=1,N
+C  57        DYNO=DMAX1( DYNO, DABS(F1(I)*SCAL(I)) )
+
+
+C ---     BAD CONVERGENCE OR NUMBER OF ITERATIONS TO LARGE
+            IF (NEWT.GE.2.AND.NEWT.LT.NIT) THEN
+                THETA=DYNO/DYNOLD
+                IF (THETA.LT.0.99D0) THEN
+                    FACCON=THETA/(1.0D0-THETA)
+                    DYTH=FACCON*DYNO*THETA**(NIT-1-NEWT)
+                    QNEWT=DMAX1(1.0D-4,DMIN1(16.0D0,DYTH/FNEWT))
+                    IF (QNEWT.GE.1.0D0) THEN
+                         H=.8D0*H*QNEWT**(-1.0D0/(NIT-NEWT))
+                         REJECT=.TRUE.
+                         NEWTRE=.TRUE.
+                         IF (CALJAC) GOTO 20
+                         GOTO 10
+                    END IF
+                ELSE
+                    NEWTRE=.TRUE.
+                    GOTO 78
+                END IF
+            END IF
+            DYNOLD=DYNO
+            DO 58 I=1,N
+  58        Z(I)=Z(I)+F1(I)
+            NSOL=NSOL+1
+            IF (FACCON*DYNO.GT.FNEWT) GOTO 40
+
+C --- END OF SIMPILFIED NEWTON
+      IF (ISTAGE.EQ.1) THEN
+          DO I=1,N
+            Z1(I) = Z(I)
+          END DO  
+          FACCO1=FACCON
+      END IF
+      IF (ISTAGE.EQ.2) THEN
+          DO I=1,N
+            Z2(I) = Z(I)
+          END DO  
+          FACCO2=FACCON
+      END IF
+      IF (ISTAGE.EQ.3) THEN
+          DO I=1,N
+            Z3(I) = Z(I)
+          END DO  
+          FACCO3=FACCON
+      END IF
+      IF (ISTAGE.EQ.4) THEN
+          DO I=1,N
+            Z4(I) = Z(I)
+          END DO  
+          FACCO4=FACCON
+      END IF
+      IF (ISTAGE.EQ.5) THEN
+          DO I=1,N
+            Z5(I) = Z(I)
+          END DO  
+          FACCO5=FACCON
+      END IF
+  59  CONTINUE
+
+
+C *** *** *** *** *** *** ***
+C  ERROR ESTIMATION  
+C *** *** *** *** *** *** ***
+      NSTEP=NSTEP+1
+      IF (IMPLCT) THEN
+          print *,'IMPLCT 3'
+      ELSE
+          DO 461 I=1,N 
+ 461      CONT(I)=FAC1*(Z5(I)-YHAT(I))
+      END IF
+
+      CALL KppSolve(E, CONT)
+
+      ERR=0.D0
+C ---- NORM 2 ---
+      DO 64 I=1,N
+  64  ERR=ERR+(CONT(I)*SCAL(I))**2
+      ERR=DMAX1(DSQRT(ERR/N),1.D-10)
+
+C ---- NORM INF ---
+C      DO 64 I=1,N
+c  64  ERR=DMAX1( ERR, DABS( CONT(I)*SCAL(I) ) )
+
+C --- COMPUTATION OF HNEW
+C --- WE REQUIRE .25<=HNEW/H<=10.
+      FAC=DMIN1(SAFE,CFAC/(NEWT+2*NIT))
+      QUOT=DMAX1(.25D0,DMIN1(10.D0,(ERR)**.25D0/FAC))
+      HNEW= H/QUOT
+
+C *** *** *** *** *** *** ***
+C  IS THE ERROR SMALL ENOUGH ?
+C *** *** *** *** *** *** ***
+      IF (ERR.LT.1.D0) THEN
+C --- STEP IS ACCEPTED  
+         FIRST=.FALSE.
+         NACCPT=NACCPT+1
+         HOLD=H
+         XOLD=X
+C --- COEFFICIENTS FOR CONTINUOUS SOLUTION
+         DO 74 I=1,N 
+          Z1I=Z1(I)
+          Z2I=Z2(I)
+          Z3I=Z3(I)
+          Z4I=Z4(I)
+          Z5I=Z5(I)
+         CONT(I)=Y(I)
+         Y(I)=Y(I)+Z5I  
+         CONT(I+NN) =D11*Z1I+D12*Z2I+D13*Z3I+D14*Z4I+D15*Z5I
+         CONT(I+NN2)=D21*Z1I+D22*Z2I+D23*Z3I+D24*Z4I+D25*Z5I
+         CONT(I+NN3)=D31*Z1I+D32*Z2I+D33*Z3I+D34*Z4I+D35*Z5I
+         CONT(I+NN4)=D41*Z1I+D42*Z2I+D43*Z3I+D44*Z4I+D45*Z5I
+         YHAT(I)=Z5I
+         IF (ITOL.EQ.0) THEN
+           SCAL(I)=1.D0/( AbsTol(1)+RelTol(1)*DABS(Y(I)) )
+         ELSE
+           SCAL(I)=1.D0/( AbsTol(I)+RelTol(I)*DABS(Y(I)) )
+         END IF
+  74     CONTINUE
+         X=XPH 
+         CALJAC=.FALSE.
+         IF ((X-XEND)*POSNEG+UROUND.GT.0.D0) THEN
+            H=HOPT
+            IDID=1
+            RETURN
+         END IF
+         IF (IJAC.EQ.0) CALL FCN(N,X,Y,Y0)
+         NFCN=NFCN+1
+         HNEW=POSNEG*DMIN1(DABS(HNEW),HMAX1)
+         HOPT=HNEW
+         IF (REJECT) HNEW=POSNEG*DMIN1(DABS(HNEW),DABS(H)) 
+         REJECT=.FALSE.
+         NEWTRE=.FALSE.
+         IF ((X+HNEW/QUOT1-XEND)*POSNEG.GT.0.D0) THEN
+            H=XEND-X
+         ELSE
+            QT=HNEW/H
+            IF (THETA.LE.THET.AND.QT.GE.QUOT1.AND.QT.LE.QUOT2) GOTO 30
+            H = HNEW 
+         END IF
+         IF (THETA.LE.THET) GOTO 20
+         GOTO 10
+
+      ELSE
+C --- STEP IS REJECTED  
+         REJECT=.TRUE.
+         IF (FIRST) THEN
+             H=H/10.D0
+         ELSE
+             H=HNEW
+         END IF
+         IF (NACCPT.GE.1) NREJCT=NREJCT+1
+         IF (CALJAC) GOTO 20
+         GOTO 10
+      END IF
+
+C --- UNEXPECTED STEP-REJECTION
+  78  CONTINUE
+      IF (IER.NE.0) THEN
+          WRITE (6,*) ' MATRIX IS SINGULAR, IER=',IER,' X=',X,' H=',H
+          NSING=NSING+1
+          IF (NSING.GE.6) GOTO 79
+      END IF
+      H=H*0.5D0
+      REJECT=.TRUE.
+      IF (CALJAC) GOTO 20
+      GOTO 10
+
+C --- FAIL EXIT
+  79  WRITE (6,979) X,H,IER
+ 979  FORMAT(' EXIT OF SDIRK4 AT X=',D14.7,'   H=',D14.7,'   IER=',I4)
+      IDID=-1
+      RETURN
+      END
+C
+
+ 
+      SUBROUTINE FUNC_CHEM(N, T, Y, P)
+      INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Global.h'
+      INTEGER N
+      KPP_REAL   T, Told
+      KPP_REAL   Y(NVAR), P(NVAR)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Fun( Y,  FIX, RCONST, P )
+      TIME = Told
+      RETURN
+      END
+
+ 
+      SUBROUTINE JAC_CHEM(N, T, Y, J)
+      INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Global.h'
+      INTEGER N
+      KPP_REAL   Told, T
+      KPP_REAL   Y(NVAR), J(LU_NONZERO)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Jac_SP( Y,  FIX, RCONST, J )
+      TIME = Told
+      RETURN
+      END                                                                                                                 
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/sdirk.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/sdirk.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/sdirk.f90	(revision 2696)
@@ -0,0 +1,1258 @@
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
+!  SDIRK - Singly-Diagonally-Implicit Runge-Kutta methods                 !
+!            * Sdirk 2a, 2b: L-stable, 2 stages, order 2                  !
+!            * Sdirk 3a:     L-stable, 3 stages, order 2, adj-invariant   !
+!            * Sdirk 4a, 4b: L-stable, 5 stages, order 4                  !
+!  By default the code employs the KPP sparse linear algebra routines     !
+!  Compile with -DFULL_ALGEBRA to use full linear algebra (LAPACK)        !
+!                                                                         !
+!    (C)  Adrian Sandu, July 2005                                         !
+!    Virginia Polytechnic Institute and State University                  !
+!    Contact: sandu@cs.vt.edu                                             !
+!    Revised by Philipp Miehe and Adrian Sandu, May 2006                  !
+!    This implementation is part of KPP - the Kinetic PreProcessor        !
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
+
+MODULE KPP_ROOT_Integrator
+
+  USE KPP_ROOT_Precision
+  USE KPP_ROOT_Global, ONLY: FIX, RCONST, TIME
+  USE KPP_ROOT_Parameters, ONLY: NVAR, NSPEC, NFIX, LU_NONZERO
+  USE KPP_ROOT_JacobianSP, ONLY: LU_DIAG
+  USE KPP_ROOT_LinearAlgebra, ONLY: KppDecomp,    &
+               KppSolve, Set2zero, WLAMCH, WCOPY, WAXPY, WSCAL, WADD
+  
+  IMPLICIT NONE
+  PUBLIC
+  SAVE
+  
+!~~~>  Statistics on the work performed by the SDIRK method
+  INTEGER, PARAMETER :: Nfun=1, Njac=2, Nstp=3, Nacc=4,  &
+           Nrej=5, Ndec=6, Nsol=7, Nsng=8,               &
+           Ntexit=1, Nhexit=2, Nhnew=3
+                 
+CONTAINS
+
+SUBROUTINE INTEGRATE( TIN, TOUT, &
+  ICNTRL_U, RCNTRL_U, ISTATUS_U, RSTATUS_U, Ierr_U )
+
+   USE KPP_ROOT_Parameters
+   USE KPP_ROOT_Global
+   IMPLICIT NONE
+
+   KPP_REAL, INTENT(IN) :: TIN  ! Start Time
+   KPP_REAL, INTENT(IN) :: TOUT ! End Time
+   ! Optional input parameters and statistics
+   INTEGER,       INTENT(IN),  OPTIONAL :: ICNTRL_U(20)
+   KPP_REAL, INTENT(IN),  OPTIONAL :: RCNTRL_U(20)
+   INTEGER,       INTENT(OUT), OPTIONAL :: ISTATUS_U(20)
+   KPP_REAL, INTENT(OUT), OPTIONAL :: RSTATUS_U(20)
+   INTEGER,       INTENT(OUT), OPTIONAL :: Ierr_U
+
+   INTEGER, SAVE :: Ntotal = 0
+   KPP_REAL :: RCNTRL(20), RSTATUS(20), T1, T2
+   INTEGER       :: ICNTRL(20), ISTATUS(20), Ierr
+
+   ICNTRL(:)  = 0
+   RCNTRL(:)  = 0.0_dp
+   ISTATUS(:) = 0
+   RSTATUS(:) = 0.0_dp
+
+   !~~~> fine-tune the integrator:
+   ICNTRL(2) = 0	! 0 - vector tolerances, 1 - scalar tolerances
+   ICNTRL(6) = 0	! starting values of Newton iterations: interpolated (0), zero (1)
+  ! If optional parameters are given, and if they are >0, 
+   ! then they overwrite default settings. 
+   IF (PRESENT(ICNTRL_U)) THEN
+     WHERE(ICNTRL_U(:) > 0) ICNTRL(:) = ICNTRL_U(:)
+   END IF
+   IF (PRESENT(RCNTRL_U)) THEN
+     WHERE(RCNTRL_U(:) > 0) RCNTRL(:) = RCNTRL_U(:)
+   END IF
+   
+   
+   T1 = TIN; T2 = TOUT
+   CALL SDIRK( NVAR,T1,T2,VAR,RTOL,ATOL,          &
+               RCNTRL,ICNTRL,RSTATUS,ISTATUS,Ierr )
+
+   !~~~> Debug option: print number of steps
+   ! Ntotal = Ntotal + ISTATUS(Nstp)
+   ! PRINT*,'NSTEPS=',ISTATUS(Nstp), '(',Ntotal,')','   O3=',VAR(ind_O3), &
+   !       '  NO2=',VAR(ind_NO2)
+
+   IF (Ierr < 0) THEN
+        PRINT *,'SDIRK: Unsuccessful exit at T=',TIN,' (Ierr=',Ierr,')'
+   ENDIF
+   
+   ! if optional parameters are given for output they to return information
+   IF (PRESENT(ISTATUS_U)) ISTATUS_U(:) = ISTATUS(:)
+   IF (PRESENT(RSTATUS_U)) RSTATUS_U(:) = RSTATUS(:)
+   IF (PRESENT(Ierr_U))    Ierr_U       = Ierr
+
+   END SUBROUTINE INTEGRATE
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE SDIRK(N, Tinitial, Tfinal, Y, RelTol, AbsTol,     &
+                       RCNTRL, ICNTRL, RSTATUS, ISTATUS, Ierr)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!    Solves the system y'=F(t,y) using a Singly-Diagonally-Implicit
+!    Runge-Kutta (SDIRK) method.
+!
+!    This implementation is based on the book and the code Sdirk4:
+!
+!      E. Hairer and G. Wanner
+!      "Solving ODEs II. Stiff and differential-algebraic problems".
+!      Springer series in computational mathematics, Springer-Verlag, 1996.
+!    This code is based on the SDIRK4 routine in the above book.
+!
+!    Methods:
+!            * Sdirk 2a, 2b: L-stable, 2 stages, order 2                  
+!            * Sdirk 3a:     L-stable, 3 stages, order 2, adjoint-invariant   
+!            * Sdirk 4a, 4b: L-stable, 5 stages, order 4                  
+!
+!    (C)  Adrian Sandu, July 2005
+!    Virginia Polytechnic Institute and State University
+!    Contact: sandu@cs.vt.edu
+!    Revised by Philipp Miehe and Adrian Sandu, May 2006                 
+!    This implementation is part of KPP - the Kinetic PreProcessor
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>   INPUT ARGUMENTS:
+!
+!-     Y(NVAR)    = vector of initial conditions (at T=Tinitial)
+!-    [Tinitial,Tfinal]  = time range of integration
+!     (if Tinitial>Tfinal the integration is performed backwards in time)
+!-    RelTol, AbsTol = user precribed accuracy
+!- SUBROUTINE ode_Fun( T, Y, Ydot ) = ODE function,
+!                       returns Ydot = Y' = F(T,Y)
+!- SUBROUTINE ode_Fun( T, Y, Ydot ) = Jacobian of the ODE function,
+!                       returns Jcb = dF/dY
+!-    ICNTRL(1:20)    = integer inputs parameters
+!-    RCNTRL(1:20)    = real inputs parameters
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>     OUTPUT ARGUMENTS:
+!
+!-    Y(NVAR)         -> vector of final states (at T->Tfinal)
+!-    ISTATUS(1:20)   -> integer output parameters
+!-    RSTATUS(1:20)   -> real output parameters
+!-    Ierr            -> job status upon return
+!                        success (positive value) or
+!                        failure (negative value)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>     INPUT PARAMETERS:
+!
+!    Note: For input parameters equal to zero the default values of the
+!       corresponding variables are used.
+!
+!    Note: For input parameters equal to zero the default values of the
+!          corresponding variables are used.
+!~~~>  
+!    ICNTRL(1) = not used
+!
+!    ICNTRL(2) = 0: AbsTol, RelTol are NVAR-dimensional vectors
+!              = 1: AbsTol, RelTol are scalars
+!
+!    ICNTRL(3) = Method
+!
+!    ICNTRL(4)  -> maximum number of integration steps
+!        For ICNTRL(4)=0 the default value of 100000 is used
+!
+!    ICNTRL(5)  -> maximum number of Newton iterations
+!        For ICNTRL(5)=0 the default value of 8 is used
+!
+!    ICNTRL(6)  -> starting values of Newton iterations:
+!        ICNTRL(6)=0 : starting values are interpolated (the default)
+!        ICNTRL(6)=1 : starting values are zero
+!
+!~~~>  Real parameters
+!
+!    RCNTRL(1)  -> Hmin, lower bound for the integration step size
+!                  It is strongly recommended to keep Hmin = ZERO
+!    RCNTRL(2)  -> Hmax, upper bound for the integration step size
+!    RCNTRL(3)  -> Hstart, starting value for the integration step size
+!
+!    RCNTRL(4)  -> FacMin, lower bound on step decrease factor (default=0.2)
+!    RCNTRL(5)  -> FacMax, upper bound on step increase factor (default=6)
+!    RCNTRL(6)  -> FacRej, step decrease factor after multiple rejections
+!                 (default=0.1)
+!    RCNTRL(7)  -> FacSafe, by which the new step is slightly smaller
+!                  than the predicted value  (default=0.9)
+!    RCNTRL(8)  -> ThetaMin. If Newton convergence rate smaller
+!                  than ThetaMin the Jacobian is not recomputed;
+!                  (default=0.001)
+!    RCNTRL(9)  -> NewtonTol, stopping criterion for Newton's method
+!                  (default=0.03)
+!    RCNTRL(10) -> Qmin
+!    RCNTRL(11) -> Qmax. If Qmin < Hnew/Hold < Qmax, then the
+!                  step size is kept constant and the LU factorization
+!                  reused (default Qmin=1, Qmax=1.2)
+!
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>     OUTPUT PARAMETERS:
+!
+!    Note: each call to Rosenbrock adds the current no. of fcn calls
+!      to previous value of ISTATUS(1), and similar for the other params.
+!      Set ISTATUS(1:10) = 0 before call to avoid this accumulation.
+!
+!    ISTATUS(1) = No. of function calls
+!    ISTATUS(2) = No. of jacobian calls
+!    ISTATUS(3) = No. of steps
+!    ISTATUS(4) = No. of accepted steps
+!    ISTATUS(5) = No. of rejected steps (except at the beginning)
+!    ISTATUS(6) = No. of LU decompositions
+!    ISTATUS(7) = No. of forward/backward substitutions
+!    ISTATUS(8) = No. of singular matrix decompositions
+!
+!    RSTATUS(1)  -> Texit, the time corresponding to the
+!                   computed Y upon return
+!    RSTATUS(2)  -> Hexit,last accepted step before return
+!    RSTATUS(3)  -> Hnew, last predicted step before return
+!        For multiple restarts, use Hnew as Hstart in the following run
+!
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+
+! Arguments      
+      INTEGER, INTENT(IN)          :: N, ICNTRL(20)
+      KPP_REAL, INTENT(IN)    :: Tinitial, Tfinal, &
+                    RelTol(NVAR), AbsTol(NVAR), RCNTRL(20)
+      KPP_REAL, INTENT(INOUT) :: Y(NVAR)
+      INTEGER, INTENT(OUT)         :: Ierr
+      INTEGER, INTENT(INOUT)       :: ISTATUS(20) 
+      KPP_REAL, INTENT(OUT)   :: RSTATUS(20)
+       
+!~~~>  SDIRK method coefficients, up to 5 stages
+      INTEGER, PARAMETER :: Smax = 5
+      INTEGER, PARAMETER :: S2A=1, S2B=2, S3A=3, S4A=4, S4B=5
+      KPP_REAL :: rkGamma, rkA(Smax,Smax), rkB(Smax), rkC(Smax), &
+                       rkD(Smax),  rkE(Smax), rkBhat(Smax), rkELO,    &
+                       rkAlpha(Smax,Smax), rkTheta(Smax,Smax)
+      INTEGER :: sdMethod, rkS ! The number of stages
+! Local variables      
+      LOGICAL :: StartNewton
+      KPP_REAL :: Hmin, Hmax, Hstart, Roundoff,    &
+                       FacMin, Facmax, FacSafe, FacRej, &
+                       ThetaMin, NewtonTol, Qmin, Qmax
+      INTEGER       :: ITOL, NewtonMaxit, Max_no_steps, i
+      KPP_REAL, PARAMETER :: ZERO = 0.0d0, ONE = 1.0d0
+
+       
+      ISTATUS(1:20) = 0
+      RSTATUS(1:20) = ZERO
+      Ierr = 0
+
+!~~~>  For Scalar tolerances (ICNTRL(2).NE.0)  the code uses AbsTol(1) and RelTol(1)
+!   For Vector tolerances (ICNTRL(2) == 0) the code uses AbsTol(1:NVAR) and RelTol(1:NVAR)
+      IF (ICNTRL(2) == 0) THEN
+         ITOL = 1
+      ELSE
+         ITOL = 0
+      END IF
+
+!~~~> ICNTRL(3) - method selection       
+      SELECT CASE (ICNTRL(3))
+      CASE (0,1)
+         CALL Sdirk2a
+      CASE (2)
+         CALL Sdirk2b
+      CASE (3)
+         CALL Sdirk3a
+      CASE (4)
+         CALL Sdirk4a
+      CASE (5)
+         CALL Sdirk4b
+      CASE DEFAULT
+         CALL Sdirk2a
+      END SELECT
+      
+!~~~>   The maximum number of time steps admitted
+      IF (ICNTRL(4) == 0) THEN
+         Max_no_steps = 200000
+      ELSEIF (ICNTRL(4) > 0) THEN
+         Max_no_steps=ICNTRL(4)
+      ELSE
+         PRINT * ,'User-selected ICNTRL(4)=',ICNTRL(4)
+         CALL SDIRK_ErrorMsg(-1,Tinitial,ZERO,Ierr)
+   END IF
+
+!~~~> The maximum number of Newton iterations admitted
+      IF(ICNTRL(5) == 0)THEN
+         NewtonMaxit=8
+      ELSE
+         NewtonMaxit=ICNTRL(5)
+         IF(NewtonMaxit <= 0)THEN
+             PRINT * ,'User-selected ICNTRL(5)=',ICNTRL(5)
+             CALL SDIRK_ErrorMsg(-2,Tinitial,ZERO,Ierr)
+         END IF
+      END IF
+
+!~~~> StartNewton:  Use extrapolation for starting values of Newton iterations
+      IF (ICNTRL(6) == 0) THEN
+         StartNewton = .TRUE.
+      ELSE
+         StartNewton = .FALSE.
+      END IF      
+
+!~~~>  Unit roundoff (1+Roundoff>1)
+      Roundoff = WLAMCH('E')
+
+!~~~>  Lower bound on the step size: (positive value)
+      IF (RCNTRL(1) == ZERO) THEN
+         Hmin = ZERO
+      ELSEIF (RCNTRL(1) > ZERO) THEN
+         Hmin = RCNTRL(1)
+      ELSE
+         PRINT * , 'User-selected RCNTRL(1)=', RCNTRL(1)
+         CALL SDIRK_ErrorMsg(-3,Tinitial,ZERO,Ierr)
+      END IF
+   
+!~~~>  Upper bound on the step size: (positive value)
+      IF (RCNTRL(2) == ZERO) THEN
+         Hmax = ABS(Tfinal-Tinitial)
+      ELSEIF (RCNTRL(2) > ZERO) THEN
+         Hmax = MIN(ABS(RCNTRL(2)),ABS(Tfinal-Tinitial))
+      ELSE
+         PRINT * , 'User-selected RCNTRL(2)=', RCNTRL(2)
+         CALL SDIRK_ErrorMsg(-3,Tinitial,ZERO,Ierr)
+      END IF
+   
+!~~~>  Starting step size: (positive value)
+      IF (RCNTRL(3) == ZERO) THEN
+         Hstart = MAX(Hmin,Roundoff)
+      ELSEIF (RCNTRL(3) > ZERO) THEN
+         Hstart = MIN(ABS(RCNTRL(3)),ABS(Tfinal-Tinitial))
+      ELSE
+         PRINT * , 'User-selected Hstart: RCNTRL(3)=', RCNTRL(3)
+         CALL SDIRK_ErrorMsg(-3,Tinitial,ZERO,Ierr)
+      END IF
+   
+!~~~>  Step size can be changed s.t.  FacMin < Hnew/Hexit < FacMax
+      IF (RCNTRL(4) == ZERO) THEN
+         FacMin = 0.2_dp
+      ELSEIF (RCNTRL(4) > ZERO) THEN
+         FacMin = RCNTRL(4)
+      ELSE
+         PRINT * , 'User-selected FacMin: RCNTRL(4)=', RCNTRL(4)
+         CALL SDIRK_ErrorMsg(-4,Tinitial,ZERO,Ierr)
+      END IF
+      IF (RCNTRL(5) == ZERO) THEN
+         FacMax = 10.0_dp
+      ELSEIF (RCNTRL(5) > ZERO) THEN
+         FacMax = RCNTRL(5)
+      ELSE
+         PRINT * , 'User-selected FacMax: RCNTRL(5)=', RCNTRL(5)
+         CALL SDIRK_ErrorMsg(-4,Tinitial,ZERO,Ierr)
+      END IF
+!~~~>   FacRej: Factor to decrease step after 2 succesive rejections
+      IF (RCNTRL(6) == ZERO) THEN
+         FacRej = 0.1_dp
+      ELSEIF (RCNTRL(6) > ZERO) THEN
+         FacRej = RCNTRL(6)
+      ELSE
+         PRINT * , 'User-selected FacRej: RCNTRL(6)=', RCNTRL(6)
+         CALL SDIRK_ErrorMsg(-4,Tinitial,ZERO,Ierr)
+      END IF
+!~~~>   FacSafe: Safety Factor in the computation of new step size
+      IF (RCNTRL(7) == ZERO) THEN
+         FacSafe = 0.9_dp
+      ELSEIF (RCNTRL(7) > ZERO) THEN
+         FacSafe = RCNTRL(7)
+      ELSE
+         PRINT * , 'User-selected FacSafe: RCNTRL(7)=', RCNTRL(7)
+         CALL SDIRK_ErrorMsg(-4,Tinitial,ZERO,Ierr)
+      END IF
+
+!~~~> ThetaMin: decides whether the Jacobian should be recomputed
+      IF(RCNTRL(8) == 0.D0)THEN
+         ThetaMin = 1.0d-3
+      ELSE
+         ThetaMin = RCNTRL(8)
+      END IF
+
+!~~~> Stopping criterion for Newton's method
+      IF(RCNTRL(9) == ZERO)THEN
+         NewtonTol = 3.0d-2
+      ELSE
+         NewtonTol = RCNTRL(9)
+      END IF
+
+!~~~> Qmin, Qmax: IF Qmin < Hnew/Hold < Qmax, STEP SIZE = CONST.
+      IF(RCNTRL(10) == ZERO)THEN
+         Qmin=ONE
+      ELSE
+         Qmin=RCNTRL(10)
+      END IF
+      IF(RCNTRL(11) == ZERO)THEN
+         Qmax=1.2D0
+      ELSE
+         Qmax=RCNTRL(11)
+      END IF
+
+!~~~>  Check if tolerances are reasonable
+      IF (ITOL == 0) THEN
+         IF (AbsTol(1) <= ZERO .OR. RelTol(1) <= 10.D0*Roundoff) THEN
+            PRINT * , ' Scalar AbsTol = ',AbsTol(1)
+            PRINT * , ' Scalar RelTol = ',RelTol(1)
+            CALL SDIRK_ErrorMsg(-5,Tinitial,ZERO,Ierr)
+         END IF
+      ELSE
+         DO i=1,N
+            IF (AbsTol(i) <= 0.D0.OR.RelTol(i) <= 10.D0*Roundoff) THEN
+              PRINT * , ' AbsTol(',i,') = ',AbsTol(i)
+              PRINT * , ' RelTol(',i,') = ',RelTol(i)
+              CALL SDIRK_ErrorMsg(-5,Tinitial,ZERO,Ierr)
+            END IF
+         END DO
+      END IF
+    
+    IF (Ierr < 0) RETURN
+
+    CALL SDIRK_Integrator( N,Tinitial,Tfinal,Y,Ierr )
+
+
+   !END SUBROUTINE SDIRK
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   CONTAINS  !  PROCEDURES INTERNAL TO SDIRK
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE SDIRK_Integrator( N,Tinitial,Tfinal,Y,Ierr )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      USE KPP_ROOT_Parameters
+      IMPLICIT NONE
+
+!~~~> Arguments:      
+      INTEGER, INTENT(IN) :: N
+      KPP_REAL, INTENT(INOUT) :: Y(NVAR)
+      KPP_REAL, INTENT(IN) :: Tinitial, Tfinal
+      INTEGER, INTENT(OUT) :: Ierr
+      
+!~~~> Local variables:      
+      KPP_REAL :: Z(NVAR,Smax), G(NVAR), TMP(NVAR),        &   
+                       NewtonRate, SCAL(NVAR), RHS(NVAR),       &
+                       T, H, Theta, Hratio, NewtonPredictedErr, &
+                       Qnewton, Err, Fac, Hnew,Tdirection,      &
+                       NewtonIncrement, NewtonIncrementOld
+      INTEGER :: j, IER, istage, NewtonIter, IP(NVAR)
+      LOGICAL :: Reject, FirstStep, SkipJac, SkipLU, NewtonDone
+      
+#ifdef FULL_ALGEBRA      
+      KPP_REAL FJAC(NVAR,NVAR),  E(NVAR,NVAR)
+#else      
+      KPP_REAL FJAC(LU_NONZERO), E(LU_NONZERO)
+#endif      
+      KPP_REAL, PARAMETER :: ZERO = 0.0d0, ONE = 1.0d0
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Initializations
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      T = Tinitial
+      Tdirection = SIGN(ONE,Tfinal-Tinitial)
+      H = MAX(ABS(Hmin),ABS(Hstart))
+      IF (ABS(H) <= 10.D0*Roundoff) H=1.0D-6
+      H=MIN(ABS(H),Hmax)
+      H=SIGN(H,Tdirection)
+      SkipLU =.FALSE.
+      SkipJac = .FALSE.
+      Reject=.FALSE.
+      FirstStep=.TRUE.
+
+      CALL SDIRK_ErrorScale(N, ITOL, AbsTol, RelTol, Y, SCAL)
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Time loop begins
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Tloop: DO WHILE ( (Tfinal-T)*Tdirection - Roundoff > ZERO )
+
+
+!~~~>  Compute E = 1/(h*gamma)-Jac and its LU decomposition
+      IF ( .NOT.SkipLU ) THEN ! This time around skip the Jac update and LU
+         CALL SDIRK_PrepareMatrix ( H, T, Y, FJAC, &
+                   SkipJac, SkipLU, E, IP, Reject, IER )
+         IF (IER /= 0) THEN
+             CALL SDIRK_ErrorMsg(-8,T,H,Ierr); RETURN
+         END IF
+      END IF      
+
+      IF (ISTATUS(Nstp) > Max_no_steps) THEN
+             CALL SDIRK_ErrorMsg(-6,T,H,Ierr); RETURN
+      END IF   
+      IF ( (T+0.1d0*H == T) .OR. (ABS(H) <= Roundoff) ) THEN
+             CALL SDIRK_ErrorMsg(-7,T,H,Ierr); RETURN
+      END IF   
+
+stages:DO istage = 1, rkS
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Simplified Newton iterations
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+!~~~>  Starting values for Newton iterations
+       CALL Set2zero(N,Z(1,istage))
+       
+!~~~>   Prepare the loop-independent part of the right-hand side
+       CALL Set2zero(N,G)
+       IF (istage > 1) THEN
+           DO j = 1, istage-1
+               ! Gj(:) = sum_j Theta(i,j)*Zj(:) = H * sum_j A(i,j)*Fun(Zj)
+               CALL WAXPY(N,rkTheta(istage,j),Z(1,j),1,G,1)
+               ! Zi(:) = sum_j Alpha(i,j)*Zj(:)
+	       IF (StartNewton) THEN
+                  CALL WAXPY(N,rkAlpha(istage,j),Z(1,j),1,Z(1,istage),1)
+	       END IF
+           END DO
+       END IF
+
+       !~~~>  Initializations for Newton iteration
+       NewtonDone = .FALSE.
+       Fac = 0.5d0 ! Step reduction factor if too many iterations
+            
+NewtonLoop:DO NewtonIter = 1, NewtonMaxit
+
+!~~~>   Prepare the loop-dependent part of the right-hand side
+ 	    CALL WADD(N,Y,Z(1,istage),TMP)         	! TMP <- Y + Zi
+            CALL FUN_CHEM(T+rkC(istage)*H,TMP,RHS)	! RHS <- Fun(Y+Zi)
+            ISTATUS(Nfun) = ISTATUS(Nfun) + 1
+!            RHS(1:N) = G(1:N) - Z(1:N,istage) + (H*rkGamma)*RHS(1:N)
+	    CALL WSCAL(N, H*rkGamma, RHS, 1)
+	    CALL WAXPY (N, -ONE, Z(1,istage), 1, RHS, 1)
+            CALL WAXPY (N, ONE, G,1, RHS,1)
+
+!~~~>   Solve the linear system
+            CALL SDIRK_Solve ( H, N, E, IP, IER, RHS )
+            
+!~~~>   Check convergence of Newton iterations
+            CALL SDIRK_ErrorNorm(N, RHS, SCAL, NewtonIncrement)
+            IF ( NewtonIter == 1 ) THEN
+                Theta      = ABS(ThetaMin)
+                NewtonRate = 2.0d0 
+            ELSE
+                Theta = NewtonIncrement/NewtonIncrementOld
+                IF (Theta < 0.99d0) THEN
+                    NewtonRate = Theta/(ONE-Theta)
+                    ! Predict error at the end of Newton process 
+                    NewtonPredictedErr = NewtonIncrement &
+                               *Theta**(NewtonMaxit-NewtonIter)/(ONE-Theta)
+                    IF (NewtonPredictedErr >= NewtonTol) THEN
+                      ! Non-convergence of Newton: predicted error too large
+                      Qnewton = MIN(10.0d0,NewtonPredictedErr/NewtonTol)
+                      Fac = 0.8d0*Qnewton**(-ONE/(1+NewtonMaxit-NewtonIter))
+                      EXIT NewtonLoop
+                    END IF
+                ELSE ! Non-convergence of Newton: Theta too large
+                    EXIT NewtonLoop
+                END IF
+            END IF
+            NewtonIncrementOld = NewtonIncrement
+            ! Update solution: Z(:) <-- Z(:)+RHS(:)
+            CALL WAXPY(N,ONE,RHS,1,Z(1,istage),1) 
+            
+            ! Check error in Newton iterations
+            NewtonDone = (NewtonRate*NewtonIncrement <= NewtonTol)
+            IF (NewtonDone) EXIT NewtonLoop
+            
+            END DO NewtonLoop
+            
+            IF (.NOT.NewtonDone) THEN
+                 !CALL RK_ErrorMsg(-12,T,H,Ierr);
+                 H = Fac*H; Reject=.TRUE.
+                 SkipJac = .TRUE.; SkipLU = .FALSE.
+                 CYCLE Tloop
+            END IF
+
+!~~~>  End of implified Newton iterations
+
+ 
+   END DO stages
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Error estimation
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      ISTATUS(Nstp) = ISTATUS(Nstp) + 1
+      CALL Set2zero(N,TMP)
+      DO i = 1,rkS
+         IF (rkE(i)/=ZERO) CALL WAXPY(N,rkE(i),Z(1,i),1,TMP,1)
+      END DO  
+
+      CALL SDIRK_Solve( H, N, E, IP, IER, TMP )
+      CALL SDIRK_ErrorNorm(N, TMP, SCAL, Err)
+
+!~~~> Computation of new step size Hnew
+      Fac  = FacSafe*(Err)**(-ONE/rkELO)
+      Fac  = MAX(FacMin,MIN(FacMax,Fac))
+      Hnew = H*Fac
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Accept/Reject step
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+accept: IF ( Err < ONE ) THEN !~~~> Step is accepted
+
+         FirstStep=.FALSE.
+         ISTATUS(Nacc) = ISTATUS(Nacc) + 1
+
+!~~~> Update time and solution
+         T  =  T + H
+         ! Y(:) <-- Y(:) + Sum_j rkD(j)*Z_j(:)
+         DO i = 1,rkS 
+            IF (rkD(i)/=ZERO) CALL WAXPY(N,rkD(i),Z(1,i),1,Y,1)
+         END DO  
+       
+!~~~> Update scaling coefficients
+         CALL SDIRK_ErrorScale(N, ITOL, AbsTol, RelTol, Y, SCAL)
+
+!~~~> Next time step
+         Hnew = Tdirection*MIN(ABS(Hnew),Hmax)
+         ! Last T and H
+         RSTATUS(Ntexit) = T
+         RSTATUS(Nhexit) = H
+         RSTATUS(Nhnew)  = Hnew
+         ! No step increase after a rejection
+         IF (Reject) Hnew = Tdirection*MIN(ABS(Hnew),ABS(H))
+         Reject = .FALSE.
+         IF ((T+Hnew/Qmin-Tfinal)*Tdirection > ZERO) THEN
+            H = Tfinal-T
+         ELSE
+            Hratio=Hnew/H
+            ! If step not changed too much keep Jacobian and reuse LU
+            SkipLU = ( (Theta <= ThetaMin) .AND. (Hratio >= Qmin) &
+                                     .AND. (Hratio <= Qmax) )
+            IF (.NOT.SkipLU) H = Hnew
+         END IF
+         ! If convergence is fast enough, do not update Jacobian
+!         SkipJac = (Theta <= ThetaMin)
+         SkipJac = .FALSE.
+	 
+      ELSE accept !~~~> Step is rejected
+
+         IF (FirstStep .OR. Reject) THEN
+             H = FacRej*H
+         ELSE
+             H = Hnew
+         END IF
+         Reject  = .TRUE.
+         SkipJac = .TRUE.
+         SkipLU  = .FALSE. 
+         IF (ISTATUS(Nacc) >= 1) ISTATUS(Nrej) = ISTATUS(Nrej) + 1
+         
+      END IF accept
+      
+      END DO Tloop
+
+      ! Successful return
+      Ierr  = 1
+  
+      END SUBROUTINE SDIRK_Integrator
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE SDIRK_ErrorScale(N, ITOL, AbsTol, RelTol, Y, SCAL)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      INTEGER :: i, N, ITOL
+      KPP_REAL :: AbsTol(NVAR), RelTol(NVAR), &
+                       Y(NVAR), SCAL(NVAR)
+      IF (ITOL == 0) THEN
+        DO i=1,NVAR
+          SCAL(i) = ONE / ( AbsTol(1)+RelTol(1)*ABS(Y(i)) )
+        END DO
+      ELSE
+        DO i=1,NVAR
+          SCAL(i) = ONE / ( AbsTol(i)+RelTol(i)*ABS(Y(i)) )
+        END DO
+      END IF
+      END SUBROUTINE SDIRK_ErrorScale
+      
+      
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE SDIRK_ErrorNorm(N, Y, SCAL, Err)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!      
+      INTEGER :: i, N
+      KPP_REAL :: Y(N), SCAL(N), Err      
+      Err = ZERO
+      DO i=1,N
+           Err = Err+(Y(i)*SCAL(i))**2
+      END DO
+      Err = MAX( SQRT(Err/DBLE(N)), 1.0d-10 )
+!
+      END SUBROUTINE SDIRK_ErrorNorm
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE SDIRK_ErrorMsg(Code,T,H,Ierr)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!    Handles all error messages
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+   KPP_REAL, INTENT(IN) :: T, H
+   INTEGER, INTENT(IN)  :: Code
+   INTEGER, INTENT(OUT) :: Ierr
+
+   Ierr = Code
+   PRINT * , &
+     'Forced exit from SDIRK due to the following error:'
+
+   SELECT CASE (Code)
+    CASE (-1)
+      PRINT * , '--> Improper value for maximal no of steps'
+    CASE (-2)
+      PRINT * , '--> Improper value for maximal no of Newton iterations'
+    CASE (-3)
+      PRINT * , '--> Hmin/Hmax/Hstart must be positive'
+    CASE (-4)
+      PRINT * , '--> FacMin/FacMax/FacRej must be positive'
+    CASE (-5)
+      PRINT * , '--> Improper tolerance values'
+    CASE (-6)
+      PRINT * , '--> No of steps exceeds maximum bound'
+    CASE (-7)
+      PRINT * , '--> Step size too small: T + 10*H = T', &
+            ' or H < Roundoff'
+    CASE (-8)
+      PRINT * , '--> Matrix is repeatedly singular'
+    CASE DEFAULT
+      PRINT *, 'Unknown Error code: ', Code
+   END SELECT
+
+   PRINT *, "T=", T, "and H=", H
+
+ END SUBROUTINE SDIRK_ErrorMsg
+      
+      
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE SDIRK_PrepareMatrix ( H, T, Y, FJAC, &
+                   SkipJac, SkipLU, E, IP, Reject, ISING )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Compute the matrix E = 1/(H*GAMMA)*Jac, and its decomposition
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+     
+      IMPLICIT NONE
+      
+      KPP_REAL, INTENT(INOUT) :: H
+      KPP_REAL, INTENT(IN)    :: T, Y(NVAR)
+      LOGICAL, INTENT(INOUT)       :: SkipJac,SkipLU,Reject
+      INTEGER, INTENT(OUT)         :: ISING, IP(NVAR)
+#ifdef FULL_ALGEBRA
+      KPP_REAL, INTENT(INOUT) :: FJAC(NVAR,NVAR)
+      KPP_REAL, INTENT(OUT)   :: E(NVAR,NVAR)
+#else
+      KPP_REAL, INTENT(INOUT) :: FJAC(LU_NONZERO)
+      KPP_REAL, INTENT(OUT)   :: E(LU_NONZERO)
+#endif
+      KPP_REAL                :: HGammaInv
+      INTEGER                      :: i, j, ConsecutiveSng
+
+      ConsecutiveSng = 0
+      ISING = 1
+      
+Hloop: DO WHILE (ISING /= 0)
+      
+      HGammaInv = ONE/(H*rkGamma)
+
+!~~~>  Compute the Jacobian
+!      IF (SkipJac) THEN
+!          SkipJac = .FALSE.
+!      ELSE
+      IF (.NOT. SkipJac) THEN
+          CALL JAC_CHEM( T, Y, FJAC )
+          ISTATUS(Njac) = ISTATUS(Njac) + 1
+      END IF  
+      
+#ifdef FULL_ALGEBRA
+      DO j=1,NVAR
+         DO i=1,NVAR
+            E(i,j) = -FJAC(i,j)
+         END DO
+         E(j,j) = E(j,j)+HGammaInv
+      END DO
+      CALL DGETRF( NVAR, NVAR, E, NVAR, IP, ISING )
+#else
+      DO i = 1,LU_NONZERO
+            E(i) = -FJAC(i)
+      END DO
+      DO i = 1,NVAR
+          j = LU_DIAG(i); E(j) = E(j) + HGammaInv
+      END DO
+      CALL KppDecomp ( E, ISING)
+      IP(1) = 1
+#endif
+      ISTATUS(Ndec) = ISTATUS(Ndec) + 1
+
+      IF (ISING /= 0) THEN
+          WRITE (6,*) ' MATRIX IS SINGULAR, ISING=',ISING,' T=',T,' H=',H
+          ISTATUS(Nsng) = ISTATUS(Nsng) + 1; ConsecutiveSng = ConsecutiveSng + 1
+          IF (ConsecutiveSng >= 6) RETURN ! Failure
+          H = 0.5d0*H
+          SkipJac = .TRUE.
+          SkipLU  = .FALSE.
+          Reject  = .TRUE.
+      END IF
+      
+      END DO Hloop
+
+      END SUBROUTINE SDIRK_PrepareMatrix
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE SDIRK_Solve ( H, N, E, IP, ISING, RHS )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Solves the system (H*Gamma-Jac)*x = RHS
+!      using the LU decomposition of E = I - 1/(H*Gamma)*Jac
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      INTEGER, INTENT(IN)       :: N, IP(N), ISING
+      KPP_REAL, INTENT(IN) :: H
+#ifdef FULL_ALGEBRA
+      KPP_REAL, INTENT(IN) :: E(NVAR,NVAR)
+#else
+      KPP_REAL, INTENT(IN) :: E(LU_NONZERO)
+#endif
+      KPP_REAL, INTENT(INOUT) :: RHS(N)
+      KPP_REAL                :: HGammaInv
+      
+      HGammaInv = ONE/(H*rkGamma)
+      CALL WSCAL(N,HGammaInv,RHS,1)
+#ifdef FULL_ALGEBRA  
+      CALL DGETRS( 'N', N, 1, E, N, IP, RHS, N, ISING )
+#else
+      CALL KppSolve(E, RHS)
+#endif
+      ISTATUS(Nsol) = ISTATUS(Nsol) + 1
+ 
+      END SUBROUTINE SDIRK_Solve
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE Sdirk4a
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      sdMethod = S4A
+! Number of stages
+      rkS = 5
+
+! Method coefficients
+      rkGamma = .2666666666666666666666666666666667d0
+
+      rkA(1,1) = .2666666666666666666666666666666667d0
+      rkA(2,1) = .5000000000000000000000000000000000d0
+      rkA(2,2) = .2666666666666666666666666666666667d0
+      rkA(3,1) = .3541539528432732316227461858529820d0
+      rkA(3,2) = -.5415395284327323162274618585298197d-1
+      rkA(3,3) = .2666666666666666666666666666666667d0
+      rkA(4,1) = .8515494131138652076337791881433756d-1
+      rkA(4,2) = -.6484332287891555171683963466229754d-1
+      rkA(4,3) = .7915325296404206392428857585141242d-1
+      rkA(4,4) = .2666666666666666666666666666666667d0
+      rkA(5,1) = 2.100115700566932777970612055999074d0
+      rkA(5,2) = -.7677800284445976813343102185062276d0
+      rkA(5,3) = 2.399816361080026398094746205273880d0
+      rkA(5,4) = -2.998818699869028161397714709433394d0
+      rkA(5,5) = .2666666666666666666666666666666667d0
+
+      rkB(1)   = 2.100115700566932777970612055999074d0
+      rkB(2)   = -.7677800284445976813343102185062276d0
+      rkB(3)   = 2.399816361080026398094746205273880d0
+      rkB(4)   = -2.998818699869028161397714709433394d0
+      rkB(5)   = .2666666666666666666666666666666667d0
+
+      rkBhat(1)= 2.885264204387193942183851612883390d0
+      rkBhat(2)= -.1458793482962771337341223443218041d0
+      rkBhat(3)= 2.390008682465139866479830743628554d0
+      rkBhat(4)= -4.129393538556056674929560012190140d0
+      rkBhat(5)= 0.d0
+
+      rkC(1)   = .2666666666666666666666666666666667d0
+      rkC(2)   = .7666666666666666666666666666666667d0
+      rkC(3)   = .5666666666666666666666666666666667d0
+      rkC(4)   = .3661315380631796996374935266701191d0
+      rkC(5)   = 1.d0
+
+! Ynew = Yold + h*Sum_i {rkB_i*k_i} = Yold + Sum_i {rkD_i*Z_i}
+      rkD(1)   = 0.d0
+      rkD(2)   = 0.d0
+      rkD(3)   = 0.d0
+      rkD(4)   = 0.d0
+      rkD(5)   = 1.d0
+
+! Err = h * Sum_i {(rkB_i-rkBhat_i)*k_i} = Sum_i {rkE_i*Z_i}
+      rkE(1)   = -.6804000050475287124787034884002302d0
+      rkE(2)   = 1.558961944525217193393931795738823d0
+      rkE(3)   = -13.55893003128907927748632408763868d0
+      rkE(4)   = 15.48522576958521253098585004571302d0
+      rkE(5)   = 1.d0
+
+! Local order of Err estimate
+      rkElo    = 4
+
+! h*Sum_j {rkA_ij*k_j} = Sum_j {rkTheta_ij*Z_j}
+      rkTheta(2,1) = 1.875000000000000000000000000000000d0
+      rkTheta(3,1) = 1.708847304091539528432732316227462d0
+      rkTheta(3,2) = -.2030773231622746185852981969486824d0
+      rkTheta(4,1) = .2680325578937783958847157206823118d0
+      rkTheta(4,2) = -.1828840955527181631794050728644549d0
+      rkTheta(4,3) = .2968246986151577397160821594427966d0
+      rkTheta(5,1) = .9096171815241460655379433581446771d0
+      rkTheta(5,2) = -3.108254967778352416114774430509465d0
+      rkTheta(5,3) = 12.33727431701306195581826123274001d0
+      rkTheta(5,4) = -11.24557012450885560524143016037523d0
+
+! Starting value for Newton iterations: Z_i^0 = Sum_j {rkAlpha_ij*Z_j}
+      rkAlpha(2,1) = 2.875000000000000000000000000000000d0
+      rkAlpha(3,1) = .8500000000000000000000000000000000d0
+      rkAlpha(3,2) = .4434782608695652173913043478260870d0
+      rkAlpha(4,1) = .7352046091658870564637910527807370d0
+      rkAlpha(4,2) = -.9525565003057343527941920657462074d-1
+      rkAlpha(4,3) = .4290111305453813852259481840631738d0
+      rkAlpha(5,1) = -16.10898993405067684831655675112808d0
+      rkAlpha(5,2) = 6.559571569643355712998131800797873d0
+      rkAlpha(5,3) = -15.90772144271326504260996815012482d0
+      rkAlpha(5,4) = 25.34908987169226073668861694892683d0
+               
+!~~~> Coefficients for continuous solution
+!          rkD(1,1)= 24.74416644927758d0
+!          rkD(1,2)= -4.325375951824688d0
+!          rkD(1,3)= 41.39683763286316d0
+!          rkD(1,4)= -61.04144619901784d0
+!          rkD(1,5)= -3.391332232917013d0
+!          rkD(2,1)= -51.98245719616925d0
+!          rkD(2,2)= 10.52501981094525d0
+!          rkD(2,3)= -154.2067922191855d0
+!          rkD(2,4)= 214.3082125319825d0
+!          rkD(2,5)= 14.71166018088679d0
+!          rkD(3,1)= 33.14347947522142d0
+!          rkD(3,2)= -19.72986789558523d0
+!          rkD(3,3)= 230.4878502285804d0
+!          rkD(3,4)= -287.6629744338197d0
+!          rkD(3,5)= -18.99932366302254d0
+!          rkD(4,1)= -5.905188728329743d0
+!          rkD(4,2)= 13.53022403646467d0
+!          rkD(4,3)= -117.6778956422581d0
+!          rkD(4,4)= 134.3962081008550d0
+!          rkD(4,5)= 8.678995715052762d0
+!
+!         DO i=1,4  ! CONTi <-- Sum_j rkD(i,j)*Zj
+!           CALL Set2zero(N,CONT(1,i))
+!           DO j = 1,rkS
+!             CALL WAXPY(N,rkD(i,j),Z(1,j),1,CONT(1,i),1)
+!           END DO
+!         END DO
+          
+          rkELO = 4.0d0
+          
+      END SUBROUTINE Sdirk4a
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE Sdirk4b
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      sdMethod = S4B
+! Number of stages
+      rkS = 5
+
+! Method coefficients
+      rkGamma = .25d0
+
+      rkA(1,1) = 0.25d0
+      rkA(2,1) = 0.5d00
+      rkA(2,2) = 0.25d0
+      rkA(3,1) = 0.34d0
+      rkA(3,2) =-0.40d-1
+      rkA(3,3) = 0.25d0
+      rkA(4,1) = 0.2727941176470588235294117647058824d0
+      rkA(4,2) =-0.5036764705882352941176470588235294d-1
+      rkA(4,3) = 0.2757352941176470588235294117647059d-1
+      rkA(4,4) = 0.25d0
+      rkA(5,1) = 1.041666666666666666666666666666667d0
+      rkA(5,2) =-1.020833333333333333333333333333333d0
+      rkA(5,3) = 7.812500000000000000000000000000000d0
+      rkA(5,4) =-7.083333333333333333333333333333333d0
+      rkA(5,5) = 0.25d0
+
+      rkB(1)   =  1.041666666666666666666666666666667d0
+      rkB(2)   = -1.020833333333333333333333333333333d0
+      rkB(3)   =  7.812500000000000000000000000000000d0
+      rkB(4)   = -7.083333333333333333333333333333333d0
+      rkB(5)   =  0.250000000000000000000000000000000d0
+
+      rkBhat(1)=  1.069791666666666666666666666666667d0
+      rkBhat(2)= -0.894270833333333333333333333333333d0
+      rkBhat(3)=  7.695312500000000000000000000000000d0
+      rkBhat(4)= -7.083333333333333333333333333333333d0
+      rkBhat(5)=  0.212500000000000000000000000000000d0
+
+      rkC(1)   = 0.25d0
+      rkC(2)   = 0.75d0
+      rkC(3)   = 0.55d0
+      rkC(4)   = 0.50d0
+      rkC(5)   = 1.00d0
+
+! Ynew = Yold + h*Sum_i {rkB_i*k_i} = Yold + Sum_i {rkD_i*Z_i}
+      rkD(1)   = 0.0d0
+      rkD(2)   = 0.0d0
+      rkD(3)   = 0.0d0
+      rkD(4)   = 0.0d0
+      rkD(5)   = 1.0d0
+
+! Err = h * Sum_i {(rkB_i-rkBhat_i)*k_i} = Sum_i {rkE_i*Z_i}
+      rkE(1)   =  0.5750d0
+      rkE(2)   =  0.2125d0
+      rkE(3)   = -4.6875d0
+      rkE(4)   =  4.2500d0
+      rkE(5)   =  0.1500d0
+
+! Local order of Err estimate
+      rkElo    = 4
+
+! h*Sum_j {rkA_ij*k_j} = Sum_j {rkTheta_ij*Z_j}
+      rkTheta(2,1) = 2.d0
+      rkTheta(3,1) = 1.680000000000000000000000000000000d0
+      rkTheta(3,2) = -.1600000000000000000000000000000000d0
+      rkTheta(4,1) = 1.308823529411764705882352941176471d0
+      rkTheta(4,2) = -.1838235294117647058823529411764706d0
+      rkTheta(4,3) = 0.1102941176470588235294117647058824d0
+      rkTheta(5,1) = -3.083333333333333333333333333333333d0
+      rkTheta(5,2) = -4.291666666666666666666666666666667d0
+      rkTheta(5,3) =  34.37500000000000000000000000000000d0
+      rkTheta(5,4) = -28.33333333333333333333333333333333d0
+
+! Starting value for Newton iterations: Z_i^0 = Sum_j {rkAlpha_ij*Z_j}
+      rkAlpha(2,1) = 3.
+      rkAlpha(3,1) = .8800000000000000000000000000000000d0
+      rkAlpha(3,2) = .4400000000000000000000000000000000d0
+      rkAlpha(4,1) = .1666666666666666666666666666666667d0
+      rkAlpha(4,2) = -.8333333333333333333333333333333333d-1
+      rkAlpha(4,3) = .9469696969696969696969696969696970d0
+      rkAlpha(5,1) = -6.d0
+      rkAlpha(5,2) = 9.d0
+      rkAlpha(5,3) = -56.81818181818181818181818181818182d0
+      rkAlpha(5,4) = 54.d0
+      
+      END SUBROUTINE Sdirk4b
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE Sdirk2a
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      sdMethod = S2A
+! Number of stages
+      rkS = 2
+
+! Method coefficients
+      rkGamma = .2928932188134524755991556378951510d0
+
+      rkA(1,1) = .2928932188134524755991556378951510d0
+      rkA(2,1) = .7071067811865475244008443621048490d0
+      rkA(2,2) = .2928932188134524755991556378951510d0
+
+      rkB(1)   = .7071067811865475244008443621048490d0
+      rkB(2)   = .2928932188134524755991556378951510d0
+
+      rkBhat(1)= .6666666666666666666666666666666667d0
+      rkBhat(2)= .3333333333333333333333333333333333d0
+
+      rkC(1)   = 0.292893218813452475599155637895151d0
+      rkC(2)   = 1.0d0
+
+! Ynew = Yold + h*Sum_i {rkB_i*k_i} = Yold + Sum_i {rkD_i*Z_i}
+      rkD(1)   = 0.0d0
+      rkD(2)   = 1.0d0
+
+! Err = h * Sum_i {(rkB_i-rkBhat_i)*k_i} = Sum_i {rkE_i*Z_i}
+      rkE(1)   =  0.4714045207910316829338962414032326d0
+      rkE(2)   = -0.1380711874576983496005629080698993d0
+
+! Local order of Err estimate
+      rkElo    = 2
+
+! h*Sum_j {rkA_ij*k_j} = Sum_j {rkTheta_ij*Z_j}
+      rkTheta(2,1) = 2.414213562373095048801688724209698d0
+
+! Starting value for Newton iterations: Z_i^0 = Sum_j {rkAlpha_ij*Z_j}
+      rkAlpha(2,1) = 3.414213562373095048801688724209698d0
+          
+      END SUBROUTINE Sdirk2a
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE Sdirk2b
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      sdMethod = S2B
+! Number of stages
+      rkS      = 2
+
+! Method coefficients
+      rkGamma  = 1.707106781186547524400844362104849d0
+
+      rkA(1,1) = 1.707106781186547524400844362104849d0
+      rkA(2,1) = -.707106781186547524400844362104849d0
+      rkA(2,2) = 1.707106781186547524400844362104849d0
+
+      rkB(1)   = -.707106781186547524400844362104849d0
+      rkB(2)   = 1.707106781186547524400844362104849d0
+
+      rkBhat(1)= .6666666666666666666666666666666667d0
+      rkBhat(2)= .3333333333333333333333333333333333d0
+
+      rkC(1)   = 1.707106781186547524400844362104849d0
+      rkC(2)   = 1.0d0
+
+! Ynew = Yold + h*Sum_i {rkB_i*k_i} = Yold + Sum_i {rkD_i*Z_i}
+      rkD(1)   = 0.0d0
+      rkD(2)   = 1.0d0
+
+! Err = h * Sum_i {(rkB_i-rkBhat_i)*k_i} = Sum_i {rkE_i*Z_i}
+      rkE(1)   = -.4714045207910316829338962414032326d0
+      rkE(2)   =  .8047378541243650162672295747365659d0
+
+! Local order of Err estimate
+      rkElo    = 2
+
+! h*Sum_j {rkA_ij*k_j} = Sum_j {rkTheta_ij*Z_j}
+      rkTheta(2,1) = -.414213562373095048801688724209698d0
+
+! Starting value for Newton iterations: Z_i^0 = Sum_j {rkAlpha_ij*Z_j}
+      rkAlpha(2,1) = .5857864376269049511983112757903019d0
+      
+      END SUBROUTINE Sdirk2b
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE Sdirk3a
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      sdMethod = S3A
+! Number of stages
+      rkS = 3
+
+! Method coefficients
+      rkGamma = .2113248654051871177454256097490213d0
+
+      rkA(1,1) = .2113248654051871177454256097490213d0
+      rkA(2,1) = .2113248654051871177454256097490213d0
+      rkA(2,2) = .2113248654051871177454256097490213d0
+      rkA(3,1) = .2113248654051871177454256097490213d0
+      rkA(3,2) = .5773502691896257645091487805019573d0
+      rkA(3,3) = .2113248654051871177454256097490213d0
+
+      rkB(1)   = .2113248654051871177454256097490213d0
+      rkB(2)   = .5773502691896257645091487805019573d0
+      rkB(3)   = .2113248654051871177454256097490213d0
+
+      rkBhat(1)= .2113248654051871177454256097490213d0
+      rkBhat(2)= .6477918909913548037576239837516312d0
+      rkBhat(3)= .1408832436034580784969504064993475d0
+
+      rkC(1)   = .2113248654051871177454256097490213d0
+      rkC(2)   = .4226497308103742354908512194980427d0
+      rkC(3)   = 1.d0
+
+! Ynew = Yold + h*Sum_i {rkB_i*k_i} = Yold + Sum_i {rkD_i*Z_i}
+      rkD(1)   = 0.d0
+      rkD(2)   = 0.d0
+      rkD(3)   = 1.d0
+
+! Err = h * Sum_i {(rkB_i-rkBhat_i)*k_i} = Sum_i {rkE_i*Z_i}
+      rkE(1)   =  0.9106836025229590978424821138352906d0
+      rkE(2)   = -1.244016935856292431175815447168624d0
+      rkE(3)   =  0.3333333333333333333333333333333333d0
+
+! Local order of Err estimate
+      rkElo    = 2
+
+! h*Sum_j {rkA_ij*k_j} = Sum_j {rkTheta_ij*Z_j}
+      rkTheta(2,1) =  1.0d0
+      rkTheta(3,1) = -1.732050807568877293527446341505872d0
+      rkTheta(3,2) =  2.732050807568877293527446341505872d0
+
+! Starting value for Newton iterations: Z_i^0 = Sum_j {rkAlpha_ij*Z_j}
+      rkAlpha(2,1) =   2.0d0
+      rkAlpha(3,1) = -12.92820323027550917410978536602349d0
+      rkAlpha(3,2) =   8.83012701892219323381861585376468d0
+
+      END SUBROUTINE Sdirk3a
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   END SUBROUTINE SDIRK ! AND ALL ITS INTERNAL PROCEDURES
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE FUN_CHEM( T, Y, P )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      USE KPP_ROOT_Parameters, ONLY: NVAR, LU_NONZERO
+      USE KPP_ROOT_Global, ONLY: FIX, RCONST, TIME
+      USE KPP_ROOT_Function, ONLY: Fun
+      USE KPP_ROOT_Rates, ONLY: Update_SUN, Update_RCONST, Update_PHOTO
+      IMPLICIT NONE
+
+      KPP_REAL :: T, Told
+      KPP_REAL :: Y(NVAR), P(NVAR)
+      
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      
+      CALL Fun( Y, FIX, RCONST, P )
+      
+      TIME = Told
+      
+      END SUBROUTINE FUN_CHEM
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE JAC_CHEM( T, Y, JV )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      USE KPP_ROOT_Parameters, ONLY: NVAR, LU_NONZERO
+      USE KPP_ROOT_Global, ONLY: FIX, RCONST, TIME
+      USE KPP_ROOT_Jacobian
+      USE KPP_ROOT_Jacobian, ONLY: Jac_SP
+      USE KPP_ROOT_Rates, ONLY: Update_SUN, Update_RCONST, Update_PHOTO
+      IMPLICIT NONE
+  
+      KPP_REAL ::  T, Told
+      KPP_REAL ::  Y(NVAR)
+#ifdef FULL_ALGEBRA
+      KPP_REAL :: JS(LU_NONZERO), JV(NVAR,NVAR)
+      INTEGER :: i, j
+#else
+      KPP_REAL :: JV(LU_NONZERO)
+#endif
+ 
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+
+#ifdef FULL_ALGEBRA
+      CALL Jac_SP(Y, FIX, RCONST, JS)
+      DO j=1,NVAR
+         DO i=1,NVAR
+          JV(i,j) = 0.0D0
+         END DO
+      END DO
+      DO i=1,LU_NONZERO
+         JV(LU_IROW(i),LU_ICOL(i)) = JS(i)
+      END DO
+#else
+      CALL Jac_SP(Y, FIX, RCONST, JV)
+#endif
+      TIME = Told
+
+      END SUBROUTINE JAC_CHEM
+
+END MODULE KPP_ROOT_Integrator
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/sdirk_adj.c
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/sdirk_adj.c	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/sdirk_adj.c	(revision 2696)
@@ -0,0 +1,1705 @@
+
+#define MAX(a,b) ( ((a) >= (b)) ? (a):(b)  )
+#define MIN(b,c) ( ((b) < (c))  ? (b):(c)  )
+#define ABS(x)	 ( ((x) >= 0 )  ? (x):(-x) )
+#define SIGN(x,y)( ( (x*y) >= 0 ) ?(x):(-x) )
+#define SQRT(d)  ( pow((d),0.5)  )
+
+/* Numerical Constants */
+#define ZERO	    (KPP_REAL)0.0
+#define ONE	    (KPP_REAL)1.0
+#define HALF        (KPP_REAL)0.5
+#define DeltaMin    (KPP_REAL)1.0e-5
+enum boolean { FALSE=0, TRUE=1 };
+  
+/*~~~>  Statistics on the work performed by the SDIRK method */
+enum statistics { Nfun=1, Njac=2, Nstp=3, Nacc=4, Nrej=5, Ndec=6, Nsol=7, 
+		  Nsng=8, Ntexit=1, Nhexit=2, Nhnew=3 };
+
+/*~~~>  SDIRK method coefficients, up to 5 stages */
+int Smax = 5;
+enum ros_Params { S2A=1, S2B=2, S3A=3, S4A=4, S4B=5 };
+KPP_REAL rkGamma, rkA[5][5], rkB[5], rkC[5], rkD[5], rkE[5], 
+  rkBhat[5], rkELO, rkAlpha[5][5], rkTheta[5][5];
+int sdMethod, rkS; /* The number of stages */
+
+/*~~~>  Checkpoints in memory buffers */
+int stack_ptr = -1; /* last written entry in checkpoint */
+KPP_REAL *chk_H, *chk_T;
+KPP_REAL **chk_Y;
+KPP_REAL ***chk_Z;
+int **chk_P;
+#ifdef FULL_ALGEBRA
+  KPP_REAL ***chk_J;
+#else
+  KPP_REAL **chk_J;
+#endif
+
+/* Function Headers */
+void INTEGRATE_ADJ( int NADJ, KPP_REAL Y[], KPP_REAL Lambda[][NVAR], 
+		    KPP_REAL TIN, KPP_REAL TOUT, KPP_REAL ATOL_adj[][NVAR], 
+		    KPP_REAL RTOL_adj[][NVAR], int ICNTRL_U[], 
+		    KPP_REAL RCNTRL_U[], int ISTATUS_U[], 
+		    KPP_REAL RSTATUS_U[] );
+int SDIRKADJ( int N, int NADJ, KPP_REAL Tinitial, KPP_REAL Tfinal, KPP_REAL Y[],
+	      KPP_REAL Lambda[][NVAR], KPP_REAL RelTol[], KPP_REAL AbsTol[], 
+	      KPP_REAL RelTol_adj[][NVAR], KPP_REAL AbsTol_adj[][NVAR], 
+	      KPP_REAL RCNTRL[], int ICNTRL[], KPP_REAL RSTATUS[], 
+	      int ISTATUS[]);
+int SDIRK_FwdInt( int N, KPP_REAL Tinitial, KPP_REAL Tfinal, KPP_REAL Y[], 
+		  KPP_REAL Hmax, KPP_REAL Hmin, KPP_REAL Hstart, 
+		  KPP_REAL Roundoff, KPP_REAL AbsTol[], KPP_REAL RelTol[], 
+		  int ISTATUS[], KPP_REAL RSTATUS[], int Max_no_steps, 
+		  int NewtonMaxit, KPP_REAL NewtonTol, KPP_REAL ThetaMin, 
+		  KPP_REAL FacSafe, KPP_REAL FacMin, KPP_REAL FacMax, 
+		  KPP_REAL FacRej, KPP_REAL Qmin, KPP_REAL Qmax, int ITOL, 
+		  int SaveLU );
+int SDIRK_DadjInt( int N, int NADJ, KPP_REAL Lambda[][NVAR], int SaveLU, 
+		   int ISTATUS[], int ITOL, KPP_REAL AbsTol_adj[][NVAR], 
+		   KPP_REAL RelTol_adj[][NVAR], int NewtonMaxit,
+		   KPP_REAL ThetaMin, KPP_REAL NewtonTol, int DirectADJ );
+void SDIRK_AllocBuffers( int Max_no_steps, int rkS, int SaveLU );
+void SDIRK_FreeBuffers( int Max_no_steps, int SaveLU );
+void SDIRK_Push( KPP_REAL T, KPP_REAL H, KPP_REAL Y[], KPP_REAL Z[][NVAR], 
+		 KPP_REAL E[], int P[], int Max_no_steps, int SaveLU );
+void SDIRK_Pop( KPP_REAL* T, KPP_REAL* H, KPP_REAL* Y, KPP_REAL* Z, 
+		KPP_REAL* E, int* P, int SaveLU );
+void SDIRK_ErrorScale( int N, int ITOL, KPP_REAL AbsTol[], KPP_REAL RelTol[],
+		       KPP_REAL Y[],KPP_REAL SCAL[]);
+KPP_REAL SDIRK_ErrorNorm( int N, KPP_REAL Y[], KPP_REAL SCAL[] );
+int SDIRK_ErrorMsg( int code, KPP_REAL T, KPP_REAL H );
+void SDIRK_PrepareMatrix( KPP_REAL H, KPP_REAL T, KPP_REAL Y[], KPP_REAL FJAC[],
+			  int SkipJac, int SkipLU, KPP_REAL E[], int IP[], 
+			  int Reject, int ISING, int ISTATUS[] );
+void SDIRK_Solve ( char Transp, KPP_REAL H, int N, KPP_REAL E[], 
+		   int IP[], int ISING, KPP_REAL RHS[], int ISTATUS[] );
+void Sdirk4a();
+void Sdirk4b();
+void Sdirk2a();
+void Sdirk2b();
+void Sdirk3a();
+void FUN_CHEM( KPP_REAL T, KPP_REAL Y[], KPP_REAL P[] );
+void JAC_CHEM( KPP_REAL T, KPP_REAL Y[], KPP_REAL JV[] );
+KPP_REAL WLAMCH( char C );
+void Set2Zero( int N, KPP_REAL Y[] );
+void WAXPY( int N, KPP_REAL Alpha, KPP_REAL X[], int incX, KPP_REAL Y[], 
+	    int incY );
+void WADD( int N, KPP_REAL Y[], KPP_REAL Z[], KPP_REAL TMP[] );
+void WSCAL( int N, KPP_REAL Alpha, KPP_REAL X[], int incX );
+void JacTR_SP_Vec( KPP_REAL Jac[], KPP_REAL Fcn[], KPP_REAL K[] );
+void KppSolve( KPP_REAL A[], KPP_REAL b[] );
+void KppSolveTR( KPP_REAL JVS[], KPP_REAL X[], KPP_REAL XX[] );
+int KppDecomp( KPP_REAL A[] );
+void Update_SUN();
+void Update_RCONST();
+void Fun( KPP_REAL Y[], KPP_REAL FIX[], KPP_REAL RCONST[], KPP_REAL Ydot[] );
+void Jac_SP( KPP_REAL Y[], KPP_REAL FIX[], KPP_REAL RCONST[], KPP_REAL Ydot[] );
+void Set2Zero( int N, KPP_REAL Y[] );
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void INTEGRATE_ADJ( int NADJ, KPP_REAL Y[], KPP_REAL Lambda[][NVAR], 
+		    KPP_REAL TIN, KPP_REAL TOUT, KPP_REAL ATOL_adj[][NVAR], 
+		    KPP_REAL RTOL_adj[][NVAR], int ICNTRL_U[], 
+		    KPP_REAL RCNTRL_U[], int ISTATUS_U[], 
+		    KPP_REAL RSTATUS_U[] ) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+  //int Ntotal = 0;
+  KPP_REAL RCNTRL[20], RSTATUS[20], T1, T2;
+  int ICNTRL[20], ISTATUS[20], Ierr, i;
+
+  for(i=0; i<20; i++) {
+    ICNTRL[i] = 0;
+    RCNTRL[i] = (KPP_REAL)0.0;
+    ISTATUS[i] = 0;
+    RSTATUS[i] = (KPP_REAL)0.0;
+  }
+
+  /*~~~> fine-tune the integrator: */
+  ICNTRL[4] = 8;    /* Max no. of Newton iterations */
+  ICNTRL[6] = 1;   /* Adjoint solution by: 0=Newton, 1=direct */
+  ICNTRL[7] = 1;    /* Save fwd LU factorization: 0 = do *not* save, 1 = save */
+
+  /* If optional parameters are given, and if they are >0, 
+     then they overwrite default settings. */ 
+  //if(ICNTRL_U != NULL) { /* Check to see if ICNTRL_U is not NULL */
+  //  for(i=0; i<20; i++) {
+  //	if(ICNTRL_U[i] > 0)
+  //	  ICNTRL[i] = ICNTRL_U[i];
+  //  }
+  //}
+  //
+  //if(RCNTRL_U != NULL) { /* Check to see if RCNTRL_U is not NULL */
+  //  for(i=0; i<20; i++) {
+  //	if(RCNTRL_U[i] > 0)
+  //	  RCNTRL[i] = RCNTRL_U[i];
+  //  }
+  //}
+  
+  T1 = TIN; 
+  T2 = TOUT;
+  Ierr = SDIRKADJ( NVAR, NADJ, T1, T2, Y, Lambda, RTOL, ATOL, ATOL_adj, 
+		   RTOL_adj, RCNTRL, ICNTRL, RSTATUS, ISTATUS );
+
+  /*~~~> Debug option: number of steps */
+  // Ntotal = Ntotal + ISTATUS(Nstp)
+  // printf( "NSTEP=%d Ntotal=%d O3=%e NO2=%e\n", ISTATUS(Nstp), Ntotal, 
+  //          VAR(ind_O3), VAR(ind_NO2) );    
+
+  if (Ierr < 0)
+    printf("SDIRK: Unsuccessful exit at T=%f (Ierr=%d)\n", TIN, Ierr );
+   
+  /* if optional parameters are given for output they to return information */
+  //if(ISTATUS_U != NULL) { /* Check to see if ISTATUS_U is not NULL */
+  //	for(i=0; i<20; i++)
+  //	  ISTATUS_U[i] = ISTATUS[i];
+  //} 
+  //
+  //if(RSTATUS_U != NULL) { /* Check to see if RSTATUS_U is not NULL */
+  //	for(i=0; i<20; i++)
+  //	  RSTATUS_U[i] = RSTATUS[i];
+  //}
+  //
+  //Ierr_U = Ierr;
+  
+} /* END of SUBROUTINE INTEGRATE_ADJ */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+int SDIRKADJ( int N, int NADJ, KPP_REAL Tinitial, KPP_REAL Tfinal, KPP_REAL Y[],
+	      KPP_REAL Lambda[][NVAR], KPP_REAL RelTol[], KPP_REAL AbsTol[], 
+	      KPP_REAL RelTol_adj[][NVAR], KPP_REAL AbsTol_adj[][NVAR], 
+	      KPP_REAL RCNTRL[], int ICNTRL[], KPP_REAL RSTATUS[], 
+	      int ISTATUS[] ) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+    Solves the system y'=F(t,y) using a Singly-Diagonally-Implicit
+    Runge-Kutta (SDIRK) method.
+
+    This implementation is based on the book and the code Sdirk4:
+
+      E. Hairer and G. Wanner
+      "Solving ODEs II. Stiff and differential-algebraic problems".
+      Springer series in computational mathematics, Springer-Verlag, 1996.
+    This code is based on the SDIRK4 routine in the above book.
+
+    Methods:
+            * Sdirk 2a, 2b: L-stable, 2 stages, order 2                  
+            * Sdirk 3a:     L-stable, 3 stages, order 2, adjoint-invariant   
+            * Sdirk 4a, 4b: L-stable, 5 stages, order 4                  
+
+    (C)  Adrian Sandu, July 2005
+    Virginia Polytechnic Institute and State University
+    Contact: sandu@cs.vt.edu
+    Revised by Philipp Miehe and Adrian Sandu, May 2006     
+    Translation F90 to C by Paul Eller, May 2007
+    This implementation is part of KPP - the Kinetic PreProcessor
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+~~~>   INPUT ARGUMENTS:
+
+-     Y[NVAR]    = vector of initial conditions (at T=Tinitial)
+-    [Tinitial,Tfinal]  = time range of integration
+     (if Tinitial>Tfinal the integration is performed backwards in time)
+-    RelTol, AbsTol = user precribed accuracy
+- SUBROUTINE ode_Fun( T, Y, Ydot ) = ODE function,
+                       returns Ydot = Y' = F(T,Y)
+- SUBROUTINE ode_Fun( T, Y, Ydot ) = Jacobian of the ODE function,
+                       returns Jcb = dF/dY
+-    ICNTRL[1:20]    = integer inputs parameters
+-    RCNTRL[1:20]    = real inputs parameters
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+~~~>     OUTPUT ARGUMENTS:
+
+-    Y[NVAR]         -> vector of final states (at T->Tfinal)
+-    ISTATUS[0:19]   -> integer output parameters
+-    RSTATUS[0:19]   -> real output parameters
+-    Ierr            -> job status upon return
+                        success (positive value) or
+                        failure (negative value)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+~~~>     INPUT PARAMETERS:
+
+    Note: For input parameters equal to zero the default values of the
+       corresponding variables are used.
+
+    Note: For input parameters equal to zero the default values of the
+          corresponding variables are used.
+~~~>  
+    ICNTRL[0] = not used
+
+    ICNTRL[1] = 0: AbsTol, RelTol are NVAR-dimensional vectors
+              = 1: AbsTol, RelTol are scalars
+
+    ICNTRL[2] = Method
+
+    ICNTRL[3]  -> maximum number of integration steps
+        For ICNTRL[3]=0 the default value of 1500 is used
+        Note: use a conservative estimate, since the checkpoint
+              buffers are allocated to hold Max_no_steps
+
+    ICNTRL[4]  -> maximum number of Newton iterations
+        For ICNTRL[4]=0 the default value of 8 is used
+
+    ICNTRL[5]  -> starting values of Newton iterations:
+        ICNTRL[5]=0 : starting values are interpolated (the default)
+        ICNTRL[5]=1 : starting values are zero
+
+    ICNTRL[6]  -> method to solve ADJ equations:
+        ICNTRL[6]=0 : modified Newton re-using LU (the default)
+        ICNTRL[6]=1 : direct solution(additional one LU factorization per stage)
+
+    ICNTRL[7]  -> checkpointing the LU factorization at each step:
+        ICNTRL[7]=0 : do *not* save LU factorization (the default)
+        ICNTRL[7]=1 : save LU factorization
+        Note: if ICNTRL[6]=1 the LU factorization is *not* saved
+
+~~~>  Real parameters
+
+    RCNTRL[0]  -> Hmin, lower bound for the integration step size
+                  It is strongly recommended to keep Hmin = ZERO
+    RCNTRL[1]  -> Hmax, upper bound for the integration step size
+    RCNTRL[2]  -> Hstart, starting value for the integration step size
+
+    RCNTRL[3]  -> FacMin, lower bound on step decrease factor (default=0.2)
+    RCNTRL[4]  -> FacMax, upper bound on step increase factor (default=6)
+    RCNTRL[5]  -> FacRej, step decrease factor after multiple rejections
+                 (default=0.1)
+    RCNTRL[6]  -> FacSafe, by which the new step is slightly smaller
+                  than the predicted value  (default=0.9)
+    RCNTRL[7]  -> ThetaMin. If Newton convergence rate smaller
+                  than ThetaMin the Jacobian is not recomputed;
+                  (default=0.001)
+    RCNTRL[8]  -> NewtonTol, stopping criterion for Newton's method
+                  (default=0.03)
+    RCNTRL[9] -> Qmin
+    RCNTRL[10] -> Qmax. If Qmin < Hnew/Hold < Qmax, then the
+                  step size is kept constant and the LU factorization
+                  reused (default Qmin=1, Qmax=1.2)
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+~~~>     OUTPUT PARAMETERS:
+
+    Note: each call to Rosenbrock adds the current no. of fcn calls
+      to previous value of ISTATUS[0], and similar for the other params.
+      Set ISTATUS[1:10] = 0 before call to avoid this accumulation.
+
+    ISTATUS[0] = No. of function calls
+    ISTATUS[1] = No. of jacobian calls
+    ISTATUS[2] = No. of steps
+    ISTATUS[3] = No. of accepted steps
+    ISTATUS[4] = No. of rejected steps (except at the beginning)
+    ISTATUS[5] = No. of LU decompositions
+    ISTATUS[6] = No. of forward/backward substitutions
+    ISTATUS[7] = No. of singular matrix decompositions
+
+    RSTATUS[0]  -> Texit, the time corresponding to the
+                   computed Y upon return
+    RSTATUS[1]  -> Hexit,last accepted step before return
+    RSTATUS[2]  -> Hnew, last predicted step before return
+        For multiple restarts, use Hnew as Hstart in the following run
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+/* Local variables */     
+  KPP_REAL Hmin=0.0, Hmax=0.0, Hstart=0.0, Roundoff, FacMin=0.0, FacMax=0.0, 
+    FacSafe=0.0, FacRej=0.0, ThetaMin, NewtonTol,Qmin, Qmax;
+  int SaveLU, DirectADJ; /* Boolean variables */                 
+  int ITOL, NewtonMaxit, Max_no_steps=0, i, Ierr=0;
+
+  stack_ptr = -1;
+
+/*~~~>  Initialize statistics */
+  for(i=0; i<20; i++) {
+    ISTATUS[i] = 0;
+    RSTATUS[i] = ZERO;
+  }
+
+/*~~~>  For Scalar tolerances (ICNTRL[1] != 0)  the code uses AbsTol[0] 
+            and RelTol[0]
+	For Vector tolerances (ICNTRL[1] == 0) the code uses AbsTol[0:NVAR-1] 
+            and RelTol[0:NVAR-1]*/
+  if (ICNTRL[1]==0)
+    ITOL = 1;
+  else
+    ITOL = 0;
+
+/*~~~> ICNTRL(3) - method selection */
+  switch (ICNTRL[2]) {
+    case 0:
+    case 1:
+      Sdirk2a();
+      break;
+    case 2:
+      Sdirk2b();
+      break;
+    case 3:
+      Sdirk3a();
+      break;
+    case 4:
+      Sdirk4a();
+      break;
+    case 5:
+      Sdirk4b();
+      break;
+    default:
+      Sdirk2a();
+  }
+      
+/*~~~>   The maximum number of time steps admitted */
+  if (ICNTRL[3] == 0)
+    Max_no_steps = 200000;
+  else if (ICNTRL[3] > 0)
+    Max_no_steps = ICNTRL[3];
+  else {
+    printf("User-selected ICNTRL(4)=%d", ICNTRL[3]);
+    Ierr = SDIRK_ErrorMsg(-1,Tinitial,ZERO);
+  }
+
+/*~~~>The maximum number of Newton iterations admitted */
+  if(ICNTRL[4]==0)
+    NewtonMaxit = 8;
+  else {
+    NewtonMaxit=ICNTRL[4];
+    if(NewtonMaxit <=0) {
+      printf("User-selected ICNTRL(5)=%d", ICNTRL[4] );
+      Ierr = SDIRK_ErrorMsg(-2,Tinitial,ZERO);
+    }
+  }
+
+/*~~~> Solve ADJ equations directly or by Newton iterations */
+  DirectADJ = (ICNTRL[6] == 1);
+ 
+/*~~~> Save or not the forward LU factorization */
+  SaveLU = ((ICNTRL[7] != 0) && (DirectADJ == 0));
+
+/*~~~>  Unit roundoff (1+Roundoff>1) */
+  Roundoff = WLAMCH('E');
+
+/*~~~>  Lower bound on the step size: (positive value) */
+  if (RCNTRL[0] == ZERO)
+    Hmin = ZERO;
+  else if (RCNTRL[0] > ZERO)
+    Hmin = RCNTRL[0];
+  else {
+    printf("User-selected RCNTRL[0]=%f", RCNTRL[0]);
+    Ierr = SDIRK_ErrorMsg(-3,Tinitial,ZERO);
+  }
+   
+/*~~~>  Upper bound on the step size: (positive value) */
+  if (RCNTRL[1] == ZERO)
+    Hmax = ABS(Tfinal-Tinitial);
+  else if (RCNTRL[1] > ZERO)
+    Hmax = MIN( ABS(RCNTRL[1]), ABS(Tfinal-Tinitial) );
+  else {
+    printf("User-selected RCNTRL[1]=%f", RCNTRL[1]);
+    Ierr = SDIRK_ErrorMsg(-3,Tinitial,ZERO);
+  }
+
+/*~~~>  Starting step size: (positive value) */
+  if (RCNTRL[2] == ZERO)
+    Hstart = MAX( Hmin, Roundoff);
+  else if (RCNTRL[2] > ZERO)
+    Hstart = MIN( ABS(RCNTRL[2]), ABS(Tfinal-Tinitial) );
+  else {
+    printf("User-selected Hstart: RCNTRL[2]=%f", RCNTRL[2]);
+    Ierr = SDIRK_ErrorMsg(-3,Tinitial,ZERO);
+  }
+
+/*~~~>  Step size can be changed s.t.  FacMin < Hnew/Hexit < FacMax */
+  if (RCNTRL[3] == ZERO)
+    FacMin = (KPP_REAL)0.2;
+  else if (RCNTRL[3] > ZERO)
+    FacMin = RCNTRL[3];
+  else {
+    printf("User-selected FacMin: RCNTRL[3]=%f", RCNTRL[3]);
+    Ierr = SDIRK_ErrorMsg(-4,Tinitial,ZERO);
+  }
+   
+  if (RCNTRL[4] == ZERO)
+    FacMax = (KPP_REAL)10.0;
+  else if (RCNTRL[4] > ZERO)
+    FacMax = RCNTRL[4];
+  else {
+    printf("User-selected FacMax: RCNTRL[4]=%f", RCNTRL[4]);
+    Ierr = SDIRK_ErrorMsg(-4,Tinitial,ZERO);
+  }
+
+/*~~~>   FacRej: Factor to decrease step after 2 succesive rejections */
+  if (RCNTRL[5] == ZERO)
+    FacRej = (KPP_REAL)0.1;
+  else if (RCNTRL[5] > ZERO)
+    FacRej = RCNTRL[5];
+  else {
+    printf("User-selected FacRej: RCNTRL[5]=%f", RCNTRL[5]);
+    Ierr = SDIRK_ErrorMsg(-4,Tinitial,ZERO);
+  }
+
+/* ~~~>   FacSafe: Safety Factor in the computation of new step size  */
+  if (RCNTRL[6] == ZERO)
+    FacSafe = (KPP_REAL)0.9;
+  else if (RCNTRL[6] > ZERO)
+    FacSafe = RCNTRL[6];
+  else {
+    printf("User-selected FacSafe: RCNTRL[6]=%f", RCNTRL[6]);
+    Ierr = SDIRK_ErrorMsg(-4,Tinitial,ZERO);
+  }
+
+/*~~~> ThetaMin: decides whether the Jacobian should be recomputed */
+  if (RCNTRL[7] == ZERO)
+    ThetaMin = (KPP_REAL)1.0e-03;
+  else
+    ThetaMin = RCNTRL[7];
+
+/*~~~> Stopping criterion for Newton's method */
+  if (RCNTRL[8] == ZERO)
+    NewtonTol = (KPP_REAL)3.0e-02;
+  else
+    NewtonTol = RCNTRL[8];
+
+/* ~~~> Qmin, Qmax: IF Qmin < Hnew/Hold < Qmax, STEP SIZE = CONST. */
+  if (RCNTRL[9] == ZERO)
+    Qmin = ONE;
+  else
+    Qmin = RCNTRL[9];
+
+  if (RCNTRL[10] == ZERO)
+    Qmax = (KPP_REAL)1.2;
+  else
+    Qmax = RCNTRL [10];
+
+/* ~~~>  Check if tolerances are reasonable */
+  if (ITOL == 0) {
+    if ((AbsTol[0]<=ZERO || RelTol[0])<=(((KPP_REAL)10.0)*Roundoff))
+      Ierr = SDIRK_ErrorMsg(-5,Tinitial,ZERO);
+  }
+  else {
+    for (i = 0; i < N; i++) {
+      if ((AbsTol[i]<=ZERO)||(RelTol[i]<=((KPP_REAL)10.0)*Roundoff))
+	Ierr = SDIRK_ErrorMsg(-5,Tinitial,ZERO);
+    }
+  }
+
+  if (Ierr < 0)
+    return Ierr;
+    
+/*~~~>  Allocate memory buffers */
+  SDIRK_AllocBuffers(Max_no_steps, rkS, SaveLU);
+
+/*~~~>  Call forward integration */
+  Ierr = SDIRK_FwdInt( N, Tinitial, Tfinal, Y, Hmax, Hmin, Hstart, Roundoff, 
+		       AbsTol, RelTol, ISTATUS, RSTATUS, Max_no_steps, 
+		       NewtonMaxit, NewtonTol, ThetaMin, FacSafe, FacMin, 
+		       FacMax, FacRej, Qmin, Qmax, ITOL, SaveLU );
+
+/*~~~>  Call adjoint integration */  
+  Ierr = SDIRK_DadjInt( N, NADJ, Lambda, SaveLU, ISTATUS, ITOL, AbsTol_adj, 
+			RelTol_adj, NewtonMaxit, ThetaMin, NewtonTol, 
+			DirectADJ );
+
+/*~~~>  Free memory buffers */ 
+  SDIRK_FreeBuffers(Max_no_steps, SaveLU);
+
+  return Ierr;
+
+} /* End of main SDIRK_ADJ */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+int SDIRK_FwdInt( int N, KPP_REAL Tinitial, KPP_REAL Tfinal, KPP_REAL Y[], 
+		  KPP_REAL Hmax, KPP_REAL Hmin, KPP_REAL Hstart, 
+		  KPP_REAL Roundoff, KPP_REAL AbsTol[], KPP_REAL RelTol[], 
+		  int ISTATUS[], KPP_REAL RSTATUS[], int Max_no_steps, 
+		  int NewtonMaxit, KPP_REAL NewtonTol, KPP_REAL ThetaMin, 
+		  KPP_REAL FacSafe, KPP_REAL FacMin, KPP_REAL FacMax, 
+		  KPP_REAL FacRej, KPP_REAL Qmin, KPP_REAL Qmax, int ITOL, 
+		  int SaveLU ) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+      
+/*~~~> Local variables: */   
+  KPP_REAL Z[Smax][NVAR], G[NVAR], TMP[NVAR], NewtonRate, SCAL[NVAR], RHS[NVAR],
+    T, H, Theta=0.0, Hratio, NewtonPredictedErr, Qnewton, Err, Fac, Hnew, 
+    Tdirection, NewtonIncrement, NewtonIncrementOld=0.0;
+  int i, j, IER=0, istage, NewtonIter, IP[NVAR];
+
+  /*Boolean Variables*/
+  int Reject, FirstStep, SkipJac, SkipLU, NewtonDone, CycleTloop;
+      
+#ifdef FULL_ALGEBRA      
+  KPP_REAL FJAC[NVAR][NVAR], E[NVAR][NVAR];
+#else      
+  KPP_REAL FJAC[LU_NONZERO], E[LU_NONZERO];
+#endif
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+/*~~~~>   Initializations              */
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+  T = Tinitial;
+  Tdirection = SIGN(ONE, Tfinal-Tinitial);
+  H = MAX(ABS(Hmin), ABS(Hstart));
+  if (ABS(H) <= ((KPP_REAL)10.0 * Roundoff))
+    H = (KPP_REAL)(1.0e-06);
+  H = MIN(ABS(H), Hmax);
+  H = SIGN(H, Tdirection);
+  SkipLU = 0;
+  SkipJac = 0;
+  Reject = 0;
+  FirstStep = 1;
+  CycleTloop = 0;
+
+  SDIRK_ErrorScale(N, ITOL, AbsTol, RelTol, Y, SCAL);
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+/*~~~>  Time loop begins                */
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+  while((Tfinal-T)*Tdirection - Roundoff > ZERO) {  /* Tloop */
+
+  /*~~~>  Compute E = 1/(h*gamma)-Jac and its LU decomposition */
+    if (SkipLU == 0) { /* This time around skip the Jac update and LU */
+      SDIRK_PrepareMatrix( H, T, Y, FJAC, SkipJac, SkipLU, E, IP, 
+	                   Reject, IER, ISTATUS);
+      if (IER != 0)
+	return SDIRK_ErrorMsg(-8, T, H);
+    }
+
+    if (ISTATUS[Nstp] > Max_no_steps)
+      return SDIRK_ErrorMsg(-6, T, H);
+
+    if ((T + ((KPP_REAL)0.1) * H == T) || (ABS(H) <= Roundoff)) {
+      return SDIRK_ErrorMsg(-7, T, H);
+    }
+
+    for (istage=0; istage < rkS; istage++) {  /*stages*/
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+/*~~~>  Simplified Newton iterations          */
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+    /*~~~>  Starting values for Newton iterations */
+      Set2Zero(N, &Z[istage][0]);
+
+    /*~~~>   Prepare the loop-independent part of the right-hand side */
+      Set2Zero(N, G);
+      if (istage > 0) {
+	for (j=0; j < istage; j++) {
+	/* Gj(:) = sum_j Theta(i,j)*Zj(:) = H * sum_j A(i,j)*Fun(Zj(:)) */
+          WAXPY(N, rkTheta[j][istage], &Z[j][0], 1, G, 1);
+	/* Zi(:) = sum_j Alpha(i,j)*Zj(:) */
+	  WAXPY(N, rkAlpha[j][istage],&Z[j][0], 1, &Z[istage][0], 1);
+	}
+      }
+
+    /*~~~>  Initializations for Newton iteration */
+      NewtonDone = 0; /* false */
+      Fac = (KPP_REAL)0.5; /* Step reduction factor */
+
+      for (NewtonIter=0; NewtonIter<NewtonMaxit; NewtonIter++ ) { /*NewtonLoop*/
+      /*~~~>  Prepare the loop-dependent part of the right-hand side */
+	WADD(N, Y, &Z[istage][0], TMP); /* TMP <- Y + Zi */
+        FUN_CHEM(T+rkC[istage]*H, TMP, RHS); /* RHS <- Run(Y+Zi) */
+	ISTATUS[Nfun]++;
+      /* RHS[0:N-1] = G[0:N-1] - Z[istage][0:N-1] + (H*rkGamma)*RHS[1:N] */
+	WSCAL(N, H*rkGamma, RHS, 1);
+	WAXPY(N, -ONE, &Z[istage][0], 1, RHS, 1);
+	WAXPY(N, ONE, G, 1, RHS, 1 );
+
+      /*~~~>   Solve the linear system  */
+	SDIRK_Solve('N', H, N, E, IP, IER, RHS, ISTATUS);
+            
+      /*~~~>   Check convergence of Newton iterations */
+	NewtonIncrement = SDIRK_ErrorNorm(N, RHS, SCAL);
+	if (NewtonIter == 0) {
+	  Theta = ABS(ThetaMin);
+	  NewtonRate = (KPP_REAL)2.0;
+       	}
+	else {
+	  Theta = NewtonIncrement/NewtonIncrementOld;
+   	  if (Theta < (KPP_REAL)0.99) {
+	    NewtonRate = Theta/(ONE-Theta);
+	  /* Predict error at the end of Newton process */
+	    NewtonPredictedErr = (NewtonIncrement*pow(Theta,
+				 (NewtonMaxit - (NewtonIter+1))/(ONE - Theta)));
+	    if(NewtonPredictedErr >= NewtonTol) {
+	    /* Non-convergence of Newton: predicted error too large*/
+	      Qnewton = MIN((KPP_REAL)10.0, NewtonPredictedErr/NewtonTol);
+	      Fac = (KPP_REAL)0.8 * pow(Qnewton, (-ONE / (1 + NewtonMaxit - 
+							  NewtonIter + 1)));
+	      break;
+	    }
+	  }
+	  else  /* Non-convergence of Newton: Theta too large */ {
+	    break;
+	  }
+	}
+
+	NewtonIncrementOld = NewtonIncrement;
+
+      /* Update solution: Z(:) <-- Z(:)+RHS(:) */
+	WAXPY(N, ONE, RHS, 1, &Z[istage][0], 1);
+
+      /* Check error in Newton iterations */
+	NewtonDone=(NewtonRate*NewtonIncrement<=NewtonTol);
+	if (NewtonDone == 1)
+	  break;
+      } /* end NewtonLoop for */
+                      
+      if(NewtonDone == 0) {
+	H = Fac*H;
+	Reject = 1;
+	SkipJac = 1;
+	SkipLU = 0;
+        CycleTloop = 1;
+      } /* end if */
+
+      if (CycleTloop == 1) {
+	CycleTloop=0;
+	break;
+      }
+    /* End of implified Newton iterations */
+    } /* end stages for */
+
+    if (CycleTloop==0) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+/*~~~>  Error estimation      */
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+      ISTATUS[Nstp]++;
+      Set2Zero(N, TMP);
+
+      for (i=0; i<rkS; i++) {
+        if (rkE[i] != ZERO)
+	  WAXPY(N, rkE[i], &Z[i][0], 1, TMP, 1);
+      }
+
+      SDIRK_Solve('N', H, N, E, IP, IER, TMP, ISTATUS);
+      Err = SDIRK_ErrorNorm(N, TMP, SCAL);
+
+    /*~~~~> Computation of new step size Hnew */
+      Fac = FacSafe * pow((Err), (-ONE/rkELO));
+      Fac = MAX(FacMin, MIN(FacMax, Fac));
+      Hnew = H*Fac;
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+/*~~~>  Accept/Reject step    */
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+      if (Err < ONE) { /*~~~> Step is accepted */
+        FirstStep = 0; /* false */
+        ISTATUS[Nacc]++;
+
+      /* Checkpoint solution */
+        SDIRK_Push( T, H, Y, Z, E, IP, Max_no_steps, SaveLU );
+
+      /*~~~> Update time and solution */
+        T = T + H;
+      /* Y(:) <-- Y(:) + Sum_j rkD(j)*Z_j(:) */
+        for(i=0; i<rkS; i++) {
+	  if(rkD[i] != ZERO)
+	    WAXPY(N, rkD[i], &Z[i][0], 1, Y, 1);
+        }
+
+      /*~~~> Update scaling coefficients */
+        SDIRK_ErrorScale(N, ITOL, AbsTol, RelTol, Y, SCAL);
+
+      /*~~~> Next time step */
+        Hnew = Tdirection*MIN(ABS(Hnew), Hmax);
+
+      /* Last T and H */
+        RSTATUS[Ntexit] = T;
+        RSTATUS[Nhexit] = H;
+        RSTATUS[Nhnew] = Hnew;
+
+      /* No step increase after a rejection */
+        if (Reject==1)
+	  Hnew = Tdirection*MIN(ABS(Hnew), ABS(H));
+        Reject = 0; /* false */
+        if ((T+Hnew/Qmin-Tfinal)*Tdirection > ZERO)
+	  H = Tfinal-T;
+        else {
+	  Hratio = Hnew/H;
+        /* If step not changed too much keep Jacobian and reuse LU */
+          SkipLU = ((Theta <= ThetaMin) && (Hratio >= Qmin) 
+		    && (Hratio <= Qmax));
+	  if (SkipLU==0)
+	    H = Hnew;
+        }
+
+        /* If convergence is fast enough, do not update Jacobian */
+        /* SkipJac = (Theta <= ThetaMin); */
+        SkipJac = 0;
+      }
+      else { /*~~~> Step is rejected */
+        if ((FirstStep==1) || (Reject==1))
+	  H = FacRej * H;
+        else  
+          H = Hnew;
+
+        Reject = 1;
+        SkipJac = 1;
+        SkipLU = 0;
+        if (ISTATUS[Nacc] >=1)
+	  ISTATUS[Nrej]++;
+
+      }
+    } /* end CycleTloop if */
+  } /* end Tloop */
+
+  /* Successful return */
+  return 1;
+
+} /* end SDIRK_FwdInt */
+         
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+int SDIRK_DadjInt( int N, int NADJ, KPP_REAL Lambda[][NVAR], int SaveLU, 
+		   int ISTATUS[], int ITOL, KPP_REAL AbsTol_adj[][NVAR], 
+		   KPP_REAL RelTol_adj[][NVAR], int NewtonMaxit, 
+		   KPP_REAL ThetaMin, KPP_REAL NewtonTol, int DirectADJ) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+/*~~~> Local variables: */
+  KPP_REAL Y[NVAR];
+  KPP_REAL Z[Smax][NVAR], U[Smax][NADJ][NVAR], TMP[NVAR], G[NVAR], NewtonRate, 
+    SCAL[NVAR], DU[NVAR], T, H, Theta, NewtonPredictedErr, NewtonIncrement, 
+    NewtonIncrementOld=0.0;
+  int i, j, IER=0, istage, iadj, NewtonIter, IP[NVAR], IP_adj[NVAR];
+  int Reject=0, SkipJac, SkipLU, NewtonDone; /* Boolean */
+      
+#ifdef FULL_ALGEBRA      
+  KPP_REAL E[NVAR][NVAR], Jac[NVAR][NVAR], E_adj[NVAR][NVAR];
+#else      
+  KPP_REAL E[LU_NONZERO], Jac[LU_NONZERO], E_adj[LU_NONZERO];
+#endif      
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~>  Time loop begins
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+  while ( stack_ptr > -1 ) { /* Tloop */
+        
+  /*~~~>  Recover checkpoints for stage values and vectors */
+    SDIRK_Pop( &T, &H, &Y[0], &Z[0][0], &E[0], &IP[0], SaveLU );
+
+  /*~~~>  Compute E = 1/(h*gamma)-Jac and its LU decomposition */
+    if (!SaveLU) {
+      SkipJac = FALSE; 
+      SkipLU = FALSE;
+      SDIRK_PrepareMatrix ( H, T, Y, Jac, SkipJac, SkipLU, E, IP, Reject, IER, 
+			    ISTATUS );
+      if (IER != 0)
+	return SDIRK_ErrorMsg(-8,T,H); 
+    }  
+
+    for( istage = rkS-1; istage >=0; istage--) { /* Stages Loop */
+    /*~~~>  Jacobian of the current stage solution */
+      for(i=0; i<N; i++)
+	TMP[i] = Y[i] + Z[istage][i];
+      JAC_CHEM(T+rkC[istage]*H,TMP,Jac);
+      ISTATUS[Njac]++;
+       
+      if (DirectADJ) {
+#ifdef FULL_ALGEBRA
+	for(i=0; i<N; i++) {
+	  for(j=0; j<N; j++)
+	    E_adj[i][j] = -Jac[i][j];
+	}
+	for(i=0; i<N; i++)
+	  E_adj[i][i] = E_adj[i][i] + ONE/(H*rkGamma);
+
+	DGETRF( N, N, E_adj, N, IP_adj, IER );
+#else
+	for(i=0; i<LU_NONZERO; i++)
+	  E_adj[i] = -Jac[i];
+	for(i=0; i<NVAR; i++) {
+	  j = LU_DIAG[i];
+	  E_adj[j] = E_adj[j] + ONE/(H*rkGamma);
+	}
+        IER = KppDecomp (E_adj);
+#endif
+	ISTATUS[Ndec]++;
+        if (IER != 0) {
+	  printf("At stage %d the matrix used in adjoint computation is " 
+		 "singular\n", istage);
+          return SDIRK_ErrorMsg(-8,T,H);
+	}
+      }
+
+      for(iadj=0; iadj<NADJ; iadj++) { /* adj loop */
+       
+      /*~~~> Update scaling coefficients */
+	for(i=0; i<NVAR; i++)
+	  SDIRK_ErrorScale(N, ITOL, &AbsTol_adj[iadj][i], &RelTol_adj[iadj][i], 
+			   &Lambda[iadj][i], SCAL);
+      
+      /*~~~>   Prepare the loop-independent part of the right-hand side
+	       G(:) = H*Jac^T*( B(i)*Lambda + sum_j A(j,i)*Uj(:) ) */
+	for(i=0; i<N; i++)
+	  G[i] = rkB[istage]*Lambda[iadj][i];
+	if (istage+1 < rkS) {
+	  for (j=istage+1; j<rkS; j++)
+	    WAXPY(N,rkA[istage][j],&U[j][iadj][0],1,G,1);
+	}
+#ifdef FULL_ALGEBRA  
+	TMP = MATMUL(TRANSPOSE(Jac),G); /* DZ <- Jac(Y+Z)*Y_tlm */
+#else      
+	JacTR_SP_Vec ( Jac, G, TMP );    
+#endif     
+	for(i=0; i<N; i++)
+	  G[i] = H*TMP[i];
+	
+	if (DirectADJ) {
+	  SDIRK_Solve ( 'T', H, N, E_adj, IP_adj, IER, G, ISTATUS );
+	  for(i=0; i<N; i++)
+	    U[istage][iadj][i] = G[i];
+	} else {
+	  /*~~~>  Initializations for Newton iteration */
+	  Set2Zero(N,&U[istage][iadj][0]);
+	  NewtonDone = FALSE;
+            
+	  /* Newton Loop */
+	  for( NewtonIter=0; NewtonIter<NewtonMaxit; NewtonIter++) {
+
+	  /*~~~>   Prepare the loop-dependent part of the right-hand side */
+#ifdef FULL_ALGEBRA  
+	    for(i=0; i<N; i++)
+	      TMP = MATMUL(TRANSPOSE(Jac),U[istage][iadj][i]);    
+#else      
+	    for(i=0; i<N; i++)
+	      JacTR_SP_Vec ( Jac, &U[istage][iadj][i], TMP );    
+#endif      
+	    for(i=0; i<N; i++)
+	      DU[i] = U[istage][iadj][i] - (H*rkGamma)*TMP[i] - G[i];
+
+	  /*~~~>   Solve the linear system */
+            SDIRK_Solve ( 'T', H, N, E, IP, IER, DU, ISTATUS );
+            
+	  /*~~~>   Check convergence of Newton iterations */
+            NewtonIncrement = SDIRK_ErrorNorm(N, DU, SCAL);
+            if ( NewtonIter == 0 ) {
+	      Theta = ABS(ThetaMin);
+	      NewtonRate = (KPP_REAL)2.0;
+	    }
+            else {
+	      Theta = NewtonIncrement/NewtonIncrementOld;
+	      if (Theta < (KPP_REAL)0.99) {
+		NewtonRate = Theta/(ONE-Theta);
+	      /* Predict error at the end of Newton process */ 
+		NewtonPredictedErr = NewtonIncrement*
+		  pow(Theta,(NewtonMaxit-NewtonIter)) / (ONE-Theta);
+	      /* Non-convergence of Newton: predicted error too large */
+                if (NewtonPredictedErr >= NewtonTol)
+		  break; /* Exit NewtonLoop */
+	      } else { /* Non-convergence of Newton: Theta too large */
+		break;
+	      }
+            }
+            NewtonIncrementOld = NewtonIncrement;
+	  /* Update solution */
+	    for(i=0; i<N; i++)
+	      U[istage][iadj][i] -= DU[i];
+            
+          /* Check error in Newton iterations */
+            NewtonDone = (NewtonRate*NewtonIncrement <= NewtonTol);
+          /* AbsTol is often inappropriate for adjoints -
+              we do at least 4 Newton iterations to ensure convergence
+              of all adjoint components */
+            if ((NewtonIter>=4) && NewtonDone)
+	      break; /* Exit Newton Loop */ 
+	  }
+            
+	/*~~~> If Newton iterations fail employ the direct solution */
+	  if (!NewtonDone) {
+	    printf("Problems with Newton Adjoint!!!\n");
+#ifdef FULL_ALGEBRA
+	    for(i=0; i<N; i++)
+	      E_adj[i][j] = -Jac[i][j];
+	    for(j=0; j<N; j++)
+	      E_adj[j][j] += ONE/(H*rkGamma);
+	    DGETRF( N, N, E_adj, N, IP_adj, IER );
+#else
+	    for(i=0; i<LU_NONZERO; i++)
+	      E_adj[i] = -Jac[i];
+	    for(i=0; i<NVAR; i++) {
+	      j = LU_DIAG[i];
+	      E_adj[j] += ONE/(H*rkGamma);
+	    }
+	    IER = KppDecomp ( E_adj);
+#endif
+	    ISTATUS[Ndec]++;
+	    if (IER != 0) {
+	      printf("At stage %d the matrix used in adjoint computation is "
+		     "singular", istage);
+	      return SDIRK_ErrorMsg(-8,T,H);
+	    }
+	    SDIRK_Solve ( 'T', H, N, E_adj, IP_adj, IER, G, ISTATUS );
+	    for(i=0; i<N; i++)
+	      U[istage][iadj][i] = G[i];  
+	  }
+
+	/*~~~>  End of implified Newton iterations */
+	} /* End of DirADJ */
+
+      } /* End of adj */
+ 
+    } /* End of stages */
+
+    /*~~~> Update adjoint solution
+           Y(:) <-- Y(:) + Sum_j rkD(j)*Z_j(:) */
+    for (istage=0; istage<rkS; istage++) {
+      for (iadj=0; iadj<NADJ; iadj++) {
+	for(i=0; i<N; i++)
+	  Lambda[iadj][i] += U[istage][iadj][i];
+      }
+    }
+  } /* End of Tloop */
+
+  /* Successful return */
+  return 1;
+  
+} /* End of SDIRK_DadjInt */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void SDIRK_AllocBuffers(int Max_no_steps, int rkS, int SaveLU) {
+/*~~~>  Allocate buffer space for checkpointing
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+  int i,j;
+
+  chk_H = (KPP_REAL*) malloc(Max_no_steps * sizeof(KPP_REAL));
+  if (chk_H == NULL) {
+    printf("Failed allocation of buffer H\n");
+    exit(0);
+  }
+
+  chk_T = (KPP_REAL*) malloc(Max_no_steps * sizeof(KPP_REAL));
+  if (chk_T == NULL) {
+    printf("Failed allocation of buffer T\n");
+    exit(0);
+  }
+
+  chk_Y = (KPP_REAL**) malloc(Max_no_steps * sizeof(KPP_REAL*));
+  if (chk_Y == NULL) {
+    printf("Failed allocation of buffer Y\n");
+    exit(0);
+  }
+  for(i=0; i<Max_no_steps; i++) {
+    chk_Y[i] = (KPP_REAL*) malloc(NVAR * sizeof(KPP_REAL));
+    if (chk_Y[i] == NULL) {
+      printf("Failed allocation of buffer Y\n");
+      exit(0);
+    }
+  }
+   
+  chk_Z = (KPP_REAL***) malloc(Max_no_steps * sizeof(KPP_REAL**));
+  if (chk_Z == NULL) {
+    printf("Failed allocation of buffer Z\n");
+    exit(0);
+  }
+  for(i=0; i<Max_no_steps; i++) {
+    chk_Z[i] = (KPP_REAL**) malloc(rkS * sizeof(KPP_REAL*));
+    if (chk_Z[i] == NULL) {
+      printf("Failed allocation of buffer Z\n");
+      exit(0);
+    }
+    for(j=0; j<rkS; j++) {
+      chk_Z[i][j] = (KPP_REAL*) malloc(NVAR * sizeof(KPP_REAL));
+      if (chk_Z[i][j] == NULL) {
+	printf("Failed allocation of buffer Z\n");
+	exit(0);
+      }
+    }
+  }
+
+  if (SaveLU) {
+#ifdef FULL_ALGEBRA
+    chk_J = (KPP_REAL***) malloc(Max_no_steps * sizeof(KPP_REAL**));
+    if (chk_J == NULL) {
+      printf("Failed allocation of buffer J\n");
+      exit(0);
+    }
+    for(i=0; i<Max_no_steps; i++) {
+      chk_J[i] = (KPP_REAL**) malloc(NVAR * sizeof(KPP_REAL*));
+      if (chk_J[i] == NULL) {
+	printf("Failed allocation of buffer J\n");
+	exit(0);
+      }
+      for(j=0; j<NVAR; j++) {
+	chk_J[i][j] = (KPP_REAL*) malloc(NVAR * sizeof(KPP_REAL));
+	if (chk_J[i][j] == NULL) {
+	  printf("Failed allocation of buffer J\n");
+	  exit(0);
+	}
+      }
+    }
+#else
+    chk_J = (KPP_REAL**) malloc(Max_no_steps * sizeof(KPP_REAL*));
+    if (chk_J == NULL) {
+      printf("Failed allocation of buffer J\n");
+      exit(0);
+    }
+    for(i=0; i<Max_no_steps; i++) {
+      chk_J[i] = (KPP_REAL*) malloc(LU_NONZERO * sizeof(KPP_REAL));
+      if (chk_J[i] == NULL) {
+	printf("Failed allocation of buffer J\n");
+	exit(0);
+      }
+    }
+#endif
+ 
+    chk_P = (int**) malloc(Max_no_steps * sizeof(int*));
+    if (chk_P == NULL) {
+      printf("Failed allocation of buffer P\n");
+      exit(0);
+    }
+    for(i=0; i<Max_no_steps; i++) {
+      chk_P[i] = (int*) malloc(NVAR * sizeof(int));
+      if (chk_P[i] == NULL) {
+	printf("Failed allocation of buffer P\n");
+	exit(0);
+      }
+    }
+  }
+} /* End of SDIRK_AllocBuffers */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void SDIRK_FreeBuffers(int Max_no_steps, int SaveLU) {
+/*~~~>  Deallocate buffer space for discrete adjoint
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+  int i,j;
+
+  free(chk_H);
+  free(chk_T);
+
+  for(i=0; i<Max_no_steps; i++)
+    free(chk_Y[i]);
+  free(chk_Y);
+
+  for(i=0; i<Max_no_steps; i++) {
+    for(j=0; j<rkS; j++) {
+      free(chk_Z[i][j]);
+    }
+    free(chk_Z[i]);
+  }
+  free(chk_Z);
+
+  if(SaveLU) {
+#ifdef FULL_ALGEBRA
+    for(i=0; i<Max_no_steps; i++) {
+      for(j=0; j<rkS; j++) {
+	free(chk_J[i][j]);
+      }
+      free(chk_J[i]);
+    }
+    free(chk_Z);
+#else
+    for(i=0; i<Max_no_steps; i++)
+      free(chk_J[i]);
+    free(chk_J);
+#endif
+
+    for(i=0; i<Max_no_steps; i++)
+      free(chk_P[i]);
+    free(chk_P);
+  }
+} /* End of SDIRK_FreeBuffers */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void SDIRK_Push( KPP_REAL T, KPP_REAL H, KPP_REAL Y[], KPP_REAL Z[][NVAR], 
+		 KPP_REAL E[], int P[], int Max_no_steps, int SaveLU ) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~> Saves the next trajectory snapshot for discrete adjoints
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+  
+  int i,j;
+
+  stack_ptr++;
+  if( stack_ptr > Max_no_steps ) {
+    printf( "Push failed: buffer overflow");
+    exit(0);
+  }
+
+  chk_H[ stack_ptr ] = H;
+  chk_T[ stack_ptr ] = T;
+  for(i=0; i<NVAR; i++) {
+    chk_Y[stack_ptr][i] = Y[i];
+    for(j=0; j<rkS; j++)
+      chk_Z[stack_ptr][j][i] = Z[j][i];
+  }
+
+  if (SaveLU) {
+#ifdef FULL_ALGEBRA
+    for(i=0; i<NVAR; i++) {
+      for(j=0; j<NVAR; j++)
+	chk_J[stack_ptr][i][j] = E[i][j];
+      chk_P[stack_ptr][i] = P[i];
+    }
+#else   
+    for(i=0; i<LU_NONZERO; i++)
+      chk_J[stack_ptr][i] = E[i];
+#endif
+  }
+  
+} /* End of SDIRK_Push */
+  
+   
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void SDIRK_Pop( KPP_REAL* T, KPP_REAL* H, KPP_REAL* Y, KPP_REAL* Z, KPP_REAL* E,
+		int* P, int SaveLU ) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~> Retrieves the next trajectory snapshot for discrete adjoints
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+   
+  int i,j;
+
+  if ( stack_ptr < 0 ) {
+    printf( "Pop failed: empty buffer\n" );
+    exit(0);
+  }
+
+  *H = chk_H[ stack_ptr ];
+  *T = chk_T[ stack_ptr ];
+  for(i=0; i<NVAR; i++) {
+    Y[i] = chk_Y[stack_ptr][i];
+    for(j=0; j<rkS; j++)
+      Z[(j * NVAR) + i] = chk_Z[stack_ptr][j][i];
+  }
+
+  if (SaveLU) {
+#ifdef FULL_ALGEBRA
+    for(i=0; i<NVAR; i++) {
+      for(j=0; j<NVAR; j++)
+	E[(j*NVAR)+i] = chk_J[stack_ptr][j][i];
+      P[i] = chk_P[stack_ptr][i];
+    }
+#else
+    for(i=0; i<LU_NONZERO; i++)
+      E[i] = chk_J[stack_ptr][i];
+#endif
+  }
+
+  stack_ptr--;
+  
+} /* End of SDIRK_Pop */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void SDIRK_ErrorScale( int N, int ITOL, KPP_REAL AbsTol[], KPP_REAL RelTol[],
+		       KPP_REAL Y[], KPP_REAL SCAL[]) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+  int i;
+  if (ITOL == 0){
+    for (i = 0; i < NVAR; i++)
+      SCAL[i] = ONE / (AbsTol[0]+RelTol[0]*ABS(Y[i]) );
+  }
+  else {
+    for (i = 0; i < NVAR; i++)
+      SCAL[i] = ONE / (AbsTol[i]+RelTol[i]*ABS(Y[i]) );
+  }
+
+} /*  End of SDIRK_ErrorScale */
+      
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+KPP_REAL SDIRK_ErrorNorm( int N, KPP_REAL Y[], KPP_REAL SCAL[] ) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+  int i;
+  KPP_REAL Err = ZERO;
+
+  for (i = 0; i < N; i++)
+    Err = Err + pow( (Y[i]*SCAL[i]), 2);
+  Err = MAX( SQRT(Err/(KPP_REAL)N), (KPP_REAL)1.0e-10);
+
+  return Err;
+
+} /*  End of SDIRK_ErrorNorm  */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+int SDIRK_ErrorMsg(int code, KPP_REAL T, KPP_REAL H) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    Handles all error messages
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+
+  printf("\nForced exit from Sdirk due to the following error:\n");
+
+  switch (code) {
+    case -1:
+      printf("--> Improper value for maximal no of steps\n");
+      break;
+    case -2:
+      printf("--> Selected Rosenbrock method not implemented\n");
+      break;
+    case -3:
+      printf("--> Hmin/Hmax/Hstart must be positive\n");
+      break;
+    case -4:
+      printf("--> FacMin/FacMax/FacRej must be positive\n");
+      break;
+    case -5:
+      printf("--> Improper tolerance values\n");
+      break;
+    case -6:
+      printf("--> No of steps exceeds maximum bound\n");
+      break;
+    case -7:
+      printf("--> Step size too small T + 10*H = T or H < Roundoff\n");
+      break;
+    case -8:
+      printf("--> Matrix is repeatedly singular\n");
+      break;
+    default: /* causing an error */
+      printf("Unknown Error code: %d\n", code);
+  }
+
+  printf("\nTime = %f and H = %f\n", T, H );
+  return code;
+
+} /*  end SDIRK_ErrorMsg   */
+      
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void SDIRK_PrepareMatrix ( KPP_REAL H, KPP_REAL T, KPP_REAL Y[], 
+			   KPP_REAL FJAC[], int SkipJac, int SkipLU, 
+			   KPP_REAL E[], int IP[], int Reject, int ISING, 
+			   int ISTATUS[] ) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~>  Compute the matrix E = 1/(H*GAMMA)*Jac, and its decomposition
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+  KPP_REAL HGammaInv;
+  int i, j, ConsecutiveSng = 0;
+
+  ISING = 1;
+
+  while (ISING != 0) {
+    HGammaInv = ONE/(H*rkGamma);
+
+  /*~~~>  Compute the Jacobian */
+    if (SkipJac==0) {
+      JAC_CHEM(T,Y,FJAC);
+      ISTATUS[Njac]++;
+    }
+
+#ifdef FULL_ALGEBRA
+    for(j=0; j<NVAR; j++) {
+      for(i=0; i<NVAR; i++)
+	E[j][i] = -FJAC[j][i];
+      E[j][j] = E[j][j] + HGammaInv;
+    }
+    DGETRF(NVAR, NVAR, E, NVAR, IP, ISING);
+#else
+    for(i=0; i<LU_NONZERO; i++)
+      E[i] = -FJAC[i];
+    for(i=0; i<NVAR; i++) {
+      j = LU_DIAG[i];
+      E[j]=E[j] + HGammaInv;
+    }
+
+    ISING = KppDecomp(E);
+    IP[0] = 1;
+#endif
+      
+    ISTATUS[Ndec]++;
+
+    if (ISING != 0) {
+      printf("MATRIX IS SINGULAR, ISING=%d T=%e H=%e\n", ISING, T, H);
+      ISTATUS[Nsng]++;
+      ConsecutiveSng++;
+      if (ConsecutiveSng >= 6) 
+	return; /* Failure */
+      H = (KPP_REAL)(0.5)*H;
+      SkipJac = 0; /* False */
+      SkipLU  = 0; /* False */
+      Reject  = 1; /* True */
+    }
+  }
+} /* End of SDIRK_PrepareMatrix */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void SDIRK_Solve ( char Transp, KPP_REAL H, int N, KPP_REAL E[], int IP[], 
+		   int ISING, KPP_REAL RHS[], int ISTATUS[] ) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~>  Solves the system (H*Gamma-Jac)*x = R
+      using the LU decomposition of E = I - 1/(H*Gamma)*Jac
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+  KPP_REAL HGammaInv;
+      
+  HGammaInv = ONE/(H*rkGamma);
+  WSCAL(N,HGammaInv,RHS,1);
+  switch (Transp) {
+    case 'N':
+#ifdef FULL_ALGEBRA  
+      DGETRS( 'N', N, 1, E, N, IP, RHS, N, ISING );
+#else
+      KppSolve(E, RHS);
+#endif
+      break;
+    case 'T':
+#ifdef FULL_ALGEBRA  
+      DGETRS( 'T', N, 1, E, N, IP, RHS, N, ISING );
+#else
+      KppSolveTR(E, RHS, RHS);
+#endif
+      break;
+    default:
+      printf("Error in SDIRK_Solve. Unknown Transp argument: %c\n", Transp);
+      exit(0);
+  }
+  ISTATUS[Nsol]++;
+} /* End of SDIRK_Solve */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void Sdirk4a()
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+{
+  sdMethod = S4A;
+
+/* Number of stages */
+  rkS = 5;
+
+/* Method Coefficients */
+  rkGamma = (KPP_REAL)0.2666666666666666666666666666666667;
+
+  rkA[0][0] = (KPP_REAL)0.2666666666666666666666666666666667;
+  rkA[0][1] = (KPP_REAL)0.5000000000000000000000000000000000;
+  rkA[1][1] = (KPP_REAL)0.2666666666666666666666666666666667;
+  rkA[0][2] = (KPP_REAL)0.3541539528432732316227461858529820;
+  rkA[1][2] = (KPP_REAL)(-0.5415395284327323162274618585298197e-01);
+  rkA[2][2] = (KPP_REAL)0.2666666666666666666666666666666667;
+  rkA[0][3] = (KPP_REAL)0.8515494131138652076337791881433756e-01;
+  rkA[1][3] = (KPP_REAL)(-0.6484332287891555171683963466229754e-01);
+  rkA[2][3] = (KPP_REAL)0.7915325296404206392428857585141242e-01;
+  rkA[3][3] = (KPP_REAL)0.2666666666666666666666666666666667;
+  rkA[0][4] = (KPP_REAL)2.100115700566932777970612055999074;
+  rkA[1][4] = (KPP_REAL)(-0.7677800284445976813343102185062276);
+  rkA[2][4] = (KPP_REAL)2.399816361080026398094746205273880;
+  rkA[3][4] = (KPP_REAL)(-2.998818699869028161397714709433394);
+  rkA[4][4] = (KPP_REAL)0.2666666666666666666666666666666667;
+  rkB[0] = (KPP_REAL)2.100115700566932777970612055999074;
+  rkB[1] = (KPP_REAL)(-0.7677800284445976813343102185062276);
+  rkB[2] = (KPP_REAL)2.399816361080026398094746205273880;
+  rkB[3] = (KPP_REAL)(-2.998818699869028161397714709433394);
+  rkB[4] = (KPP_REAL)0.2666666666666666666666666666666667;
+
+  rkBhat[0] = (KPP_REAL)2.885264204387193942183851612883390;
+  rkBhat[1] = (KPP_REAL)(-0.1458793482962771337341223443218041);
+  rkBhat[2] = (KPP_REAL)2.390008682465139866479830743628554;
+  rkBhat[3] = (KPP_REAL)(-4.129393538556056674929560012190140);
+  rkBhat[4] = ZERO;
+
+  rkC[0] = (KPP_REAL)0.2666666666666666666666666666666667;
+  rkC[1] = (KPP_REAL)0.7666666666666666666666666666666667;
+  rkC[2] = (KPP_REAL)0.5666666666666666666666666666666667;
+  rkC[3] = (KPP_REAL)0.3661315380631796996374935266701191;
+  rkC[4] = ONE;
+
+/* Ynew = Yold + h*Sum_i {rkB_i*k_i} = Yold + Sum_i {rkD_i*Z_i} */
+  rkD[0] = ZERO;
+  rkD[1] = ZERO;
+  rkD[2] = ZERO;
+  rkD[3] = ZERO;
+  rkD[4] = ONE;
+
+/* Err = h * Sum_i {(rkB_i-rkBhat_i)*k_i} = Sum_i {rkE_i*Z_i} */
+  rkE[0] = (KPP_REAL)(-0.6804000050475287124787034884002302);
+  rkE[1] = (KPP_REAL)(1.558961944525217193393931795738823);
+  rkE[2] = (KPP_REAL)(-13.55893003128907927748632408763868);
+  rkE[3] = (KPP_REAL)(15.48522576958521253098585004571302);
+  rkE[4] = ONE;
+
+/* Local order of Err estimate */
+  rkELO = 4;
+
+/* h*Sum_j {rkA_ij*k_j} = Sum_j {rkTheta_ij*Z_j} */
+  rkTheta[0][1] = (KPP_REAL)1.875000000000000000000000000000000;
+  rkTheta[0][2] = (KPP_REAL)1.708847304091539528432732316227462;
+  rkTheta[1][2] = (KPP_REAL)(-0.2030773231622746185852981969486824);
+  rkTheta[0][3] = (KPP_REAL)0.2680325578937783958847157206823118;
+  rkTheta[1][3] = (KPP_REAL)(-0.1828840955527181631794050728644549);
+  rkTheta[2][3] = (KPP_REAL)0.2968246986151577397160821594427966;
+  rkTheta[0][4] = (KPP_REAL)0.9096171815241460655379433581446771;
+  rkTheta[1][4] = (KPP_REAL)(-3.108254967778352416114774430509465);
+  rkTheta[2][4] = (KPP_REAL)12.33727431701306195581826123274001;
+  rkTheta[3][4] = (KPP_REAL)(-11.24557012450885560524143016037523);
+
+/* Starting value for Newton iterations: Z_i^0 = Sum_j {rkAlpha_ij*Z_j} */
+  rkAlpha[0][1] = (KPP_REAL)2.875000000000000000000000000000000;
+  rkAlpha[0][2] = (KPP_REAL)0.8500000000000000000000000000000000;
+  rkAlpha[1][2] = (KPP_REAL)0.4434782608695652173913043478260870;
+  rkAlpha[0][3] = (KPP_REAL)0.7352046091658870564637910527807370;
+  rkAlpha[1][3] = (KPP_REAL)(-0.9525565003057343527941920657462074e-01);
+  rkAlpha[2][3] = (KPP_REAL)0.4290111305453813852259481840631738;
+  rkAlpha[0][4] = (KPP_REAL)(-16.10898993405067684831655675112808);
+  rkAlpha[1][4] = (KPP_REAL)6.559571569643355712998131800797873;
+  rkAlpha[2][4] = (KPP_REAL)(-15.90772144271326504260996815012482);
+  rkAlpha[3][4] = (KPP_REAL)25.34908987169226073668861694892683;
+
+  rkELO = (KPP_REAL)4.0;
+
+} /* end Sdirk4a */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void Sdirk4b() {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+  sdMethod = S4B;
+
+/* Number of stages */
+  rkS = 5;
+
+/* Method coefficients */
+  rkGamma = (KPP_REAL)0.25;
+
+  rkA[0][0] = (KPP_REAL)0.25;
+  rkA[0][1] = (KPP_REAL)0.5;
+  rkA[1][1] = (KPP_REAL)0.25;
+  rkA[0][2] = (KPP_REAL)0.34;
+  rkA[1][2] = (KPP_REAL)(-0.40e-01);
+  rkA[2][2] = (KPP_REAL)0.25;
+  rkA[0][3] = (KPP_REAL)0.2727941176470588235294117647058824;
+  rkA[1][3] = (KPP_REAL)(-0.5036764705882352941176470588235294e-01);
+  rkA[2][3] = (KPP_REAL)0.2757352941176470588235294117647059e-01;
+  rkA[3][3] = (KPP_REAL)0.25;
+  rkA[0][4] = (KPP_REAL)1.041666666666666666666666666666667;
+  rkA[1][4] = (KPP_REAL)(-1.020833333333333333333333333333333);
+  rkA[2][4] = (KPP_REAL)7.812500000000000000000000000000000;
+  rkA[3][4] = (KPP_REAL)(-7.083333333333333333333333333333333);
+  rkA[4][4] = (KPP_REAL)0.25;
+
+  rkB[0] = (KPP_REAL)1.041666666666666666666666666666667;
+  rkB[1] = (KPP_REAL)(-1.020833333333333333333333333333333);
+  rkB[2] = (KPP_REAL)7.812500000000000000000000000000000;
+  rkB[3] = (KPP_REAL)(-7.083333333333333333333333333333333);
+  rkB[4] = (KPP_REAL)0.250000000000000000000000000000000;
+
+  rkBhat[0] = (KPP_REAL)1.069791666666666666666666666666667;
+  rkBhat[1] = (KPP_REAL)(-0.894270833333333333333333333333333);
+  rkBhat[2] = (KPP_REAL)7.695312500000000000000000000000000;
+  rkBhat[3] = (KPP_REAL)(-7.083333333333333333333333333333333);
+  rkBhat[4] = (KPP_REAL)0.212500000000000000000000000000000;
+
+  rkC[0] = (KPP_REAL)0.25;
+  rkC[1] = (KPP_REAL)0.75;
+  rkC[2] = (KPP_REAL)0.55;
+  rkC[3] = (KPP_REAL)0.5;
+  rkC[4] = ONE;
+
+/* Ynew = Yold + h*Sum_i {rkB_i*k_i} = Yold + Sum_i {rkD_i*Z_i} */
+  rkD[0] = ZERO;
+  rkD[1] = ZERO;
+  rkD[2] = ZERO;
+  rkD[3] = ZERO;
+  rkD[4] = ONE;
+
+/* Err = h * Sum_i {(rkB_i-rkBhat_i)*k_i} = Sum_i {rkE_i*Z_i} */
+  rkE[0] = (KPP_REAL)0.5750;
+  rkE[1] = (KPP_REAL)0.2125;
+  rkE[2] = (KPP_REAL)(-4.6875);
+  rkE[3] = (KPP_REAL)4.2500;
+  rkE[4] = (KPP_REAL)0.1500;
+
+/* Local order of Err estimate */
+  rkELO = 4;
+
+/* h*Sum_j {rkA_ij*k_j} = Sum_j {rkTheta_ij*Z_j} */
+  rkTheta[0][1] = (KPP_REAL)2.0;
+  rkTheta[0][2] = (KPP_REAL)1.680000000000000000000000000000000;
+  rkTheta[1][2] = (KPP_REAL)(-0.1600000000000000000000000000000000);
+  rkTheta[0][3] = (KPP_REAL)1.308823529411764705882352941176471;
+  rkTheta[1][3] = (KPP_REAL)(-0.1838235294117647058823529411764706);
+  rkTheta[2][3] = (KPP_REAL)0.1102941176470588235294117647058824;
+  rkTheta[0][4] = (KPP_REAL)(-3.083333333333333333333333333333333);
+  rkTheta[1][4] = (KPP_REAL)(-4.291666666666666666666666666666667);
+  rkTheta[2][4] = (KPP_REAL)34.37500000000000000000000000000000;
+  rkTheta[3][4] = (KPP_REAL)(-28.3333333333333333333333333333);
+
+/* Starting value for Newton iterations: Z_i^0 = Sum_j {rkAlpha_ij*Z_j} */
+  rkAlpha[0][1] = (KPP_REAL)3.0;
+  rkAlpha[0][2] = (KPP_REAL)0.8800000000000000000000000000000000;
+  rkAlpha[1][2] = (KPP_REAL)0.4400000000000000000000000000000000;
+  rkAlpha[0][3] = (KPP_REAL)0.1666666666666666666666666666666667;
+  rkAlpha[1][3] = (KPP_REAL)(-0.8333333333333333333333333333333333e-01);
+  rkAlpha[2][3] = (KPP_REAL)0.9469696969696969696969696969696970;
+  rkAlpha[0][4] = (KPP_REAL)(-6.0);
+  rkAlpha[1][4] = (KPP_REAL)9.0;
+  rkAlpha[2][4] = (KPP_REAL)(-56.81818181818181818181818181818182);
+  rkAlpha[3][4] = (KPP_REAL)54.0;
+
+} /* end Sdirk4b */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void Sdirk2a() {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+  sdMethod = S2A;
+
+/* ~~~> Number of stages */
+  rkS = 2;
+
+/* ~~~> Method coefficients */
+  rkGamma = (KPP_REAL)0.2928932188134524755991556378951510;
+  rkA[0][0] = (KPP_REAL)0.2928932188134524755991556378951510;
+  rkA[0][1] = (KPP_REAL)0.7071067811865475244008443621048490;
+  rkA[1][1] = (KPP_REAL)0.2928932188134524755991556378951510;
+  rkB[0] = (KPP_REAL)0.7071067811865475244008443621048490;
+  rkB[1] = (KPP_REAL)0.2928932188134524755991556378951510;
+  rkBhat[0] = (KPP_REAL)0.6666666666666666666666666666666667;
+  rkBhat[1] = (KPP_REAL)0.3333333333333333333333333333333333;
+  rkC[0] = (KPP_REAL)0.292893218813452475599155637895151;
+  rkC[1] = ONE;
+
+/* ~~~> Ynew = Yold + h*Sum_i {rkB_i*k_i} = Yold + Sum_i {rkD_i*Z_i} */
+  rkD[0] = ZERO;
+  rkD[1] = ONE;
+
+/* ~~~> Err = h * Sum_i {(rkB_i-rkBhat_i)*k_i} = Sum_i {rkE_i*Z_i} */
+  rkE[0] = (KPP_REAL)0.4714045207910316829338962414032326;
+  rkE[1] = (KPP_REAL)(-0.1380711874576983496005629080698993);
+
+/* ~~~> Local order of Err estimate */
+  rkELO = 2;
+
+/* ~~~> h*Sum_j {rkA_ij*k_j} = Sum_j {rkTheta_ij*Z_j} */
+  rkTheta[0][1] = (KPP_REAL)2.414213562373095048801688724209698;
+
+/* ~~~> Starting value for Newton iterations */
+  rkAlpha[0][1] = (KPP_REAL)3.414213562373095048801688724209698;
+
+} /* end Sdirk2a */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void Sdirk2b() {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+  sdMethod = S2B;
+
+/* ~~~> Number of stages */
+  rkS = 2;
+
+/* ~~~> Method coefficients */
+  rkGamma = (KPP_REAL)1.707106781186547524400844362104849;
+  rkA[0][0] = (KPP_REAL)1.707106781186547524400844362104849;
+  rkA[0][1] = (KPP_REAL)(-0.707106781186547524400844362104849);
+  rkA[1][1] = (KPP_REAL)1.707106781186547524400844362104849;
+  rkB[0] = (KPP_REAL)(-0.707106781186547524400844362104849);
+  rkB[1] = (KPP_REAL)1.707106781186547524400844362104849;
+  rkBhat[0] = (KPP_REAL)0.6666666666666666666666666666666667;
+  rkBhat[1] = (KPP_REAL)0.3333333333333333333333333333333333;
+  rkC[0] = (KPP_REAL)1.707106781186547524400844362104849;
+  rkC[1] = ONE;
+
+/* ~~~> Ynew = Yold + h*Sum_i {rkB_i*k_i} = Yold + Sum_i {rkD_i*Z_i} */
+  rkD[0] = ZERO;
+  rkD[1] = ONE;
+
+/* ~~~> Err = h * Sum_i {(rkB_i-rkBhat_i)*k_i} = Sum_i {rkE_i*Z_i} */
+  rkE[0] = (KPP_REAL)(-0.4714045207910316829338962414032326);
+  rkE[1] = (KPP_REAL)0.8047378541243650162672295747365659;
+
+/* ~~~> Local order of Err estimate */
+  rkELO = 2;
+
+/* ~~~> h*Sum_j {rkA_ij*k_j} = Sum_j {rkTheta_ij*Z_j} */
+  rkTheta[0][1] = (KPP_REAL)(-0.414213562373095048801688724209698);
+
+/* ~~~> Starting value for Newton iterations */
+  rkAlpha[0][1] = (KPP_REAL)0.5857864376269049511983112757903019;
+
+} /* end Sdirk2b */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void Sdirk3a() {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+  sdMethod = S3A;
+
+/* ~~~> Number of stages */
+  rkS = 3;
+
+/* ~~~> Method coefficients */
+  rkGamma = (KPP_REAL)0.2113248654051871177454256097490213;
+  rkA[0][0] = (KPP_REAL)0.2113248654051871177454256097490213;
+  rkA[0][1] = (KPP_REAL)0.2113248654051871177454256097490213;
+  rkA[1][1] = (KPP_REAL)0.2113248654051871177454256097490213;
+  rkA[0][2] = (KPP_REAL)0.2113248654051871177454256097490213;
+  rkA[1][2] = (KPP_REAL)0.5773502691896257645091487805019573;
+  rkA[2][2] = (KPP_REAL)0.2113248654051871177454256097490213;
+  rkB[0] = (KPP_REAL)0.2113248654051871177454256097490213;
+  rkB[1] = (KPP_REAL)0.5773502691896257645091487805019573;
+  rkB[2] = (KPP_REAL)0.2113248654051871177454256097490213;
+  rkBhat[0]= (KPP_REAL)0.2113248654051871177454256097490213;
+  rkBhat[1]= (KPP_REAL)0.6477918909913548037576239837516312;
+  rkBhat[2]= (KPP_REAL)0.1408832436034580784969504064993475;
+  rkC[0] = (KPP_REAL)0.2113248654051871177454256097490213;
+  rkC[1] = (KPP_REAL)0.4226497308103742354908512194980427;
+  rkC[2] = ONE;
+
+/* ~~~> Ynew = Yold + h*Sum_i {rkB_i*k_i} = Yold + Sum_i {rkD_i*Z_i} */
+  rkD[0] = ZERO;
+  rkD[1] = ZERO;
+  rkD[2] = ONE;
+
+/* ~~~> Err = h * Sum_i {(rkB_i-rkBhat_i)*k_i} = Sum_i {rkE_i*Z_i} */
+  rkE[0] = (KPP_REAL)0.9106836025229590978424821138352906;
+  rkE[1] = (KPP_REAL)(-1.244016935856292431175815447168624);
+  rkE[2] = (KPP_REAL)0.3333333333333333333333333333333333;
+
+/* ~~~> Local order of Err estimate    */
+  rkELO    = 2;
+
+/* ~~~> h*Sum_j {rkA_ij*k_j} = Sum_j {rkTheta_ij*Z_j} */
+  rkTheta[0][1] =  ONE;
+  rkTheta[0][2] = (KPP_REAL)(-1.732050807568877293527446341505872);
+  rkTheta[1][2] = (KPP_REAL)2.732050807568877293527446341505872;
+
+/* ~~~> Starting value for Newton iterations */
+  rkAlpha[0][1] = (KPP_REAL)2.0;
+  rkAlpha[0][2] = (KPP_REAL)(-12.92820323027550917410978536602349);
+  rkAlpha[1][2] = (KPP_REAL)8.83012701892219323381861585376468;
+
+} /* end Sdirk3a */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void FUN_CHEM(KPP_REAL T, KPP_REAL Y[], KPP_REAL P[])
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+{
+
+  KPP_REAL Told;
+
+  Told = TIME;
+  TIME = T;
+  Update_SUN();
+  Update_RCONST();
+  Fun( Y, FIX, RCONST, P );
+  TIME = Told;
+
+}  /*  end FUN_CHEM  */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void JAC_CHEM(KPP_REAL T, KPP_REAL Y[], KPP_REAL JV[]) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+  KPP_REAL Told;
+
+#ifdef FULL_ALGEBRA
+  KPP_REAL JS[LU_NONZERO];
+  int i,j;
+#endif
+
+  Told = TIME;
+  TIME = T;
+  Update_SUN();
+  Update_RCONST();
+
+#ifdef FULL_ALGEBRA
+  Jac_SP( Y, FIX, RCONST, JS);
+
+  for(j=0; j<NVAR; j++) {
+    for(i=0; i<NVAR; i++)
+      JV[j][i] = (KPP_REAL)0.0;
+  } /* end for */
+
+  for(i=0; i<LU_NONZERO; i++)
+    JV[LU_ICOL[i]][LU_IROW[i]] = JS[i];
+#else
+  Jac_SP(Y, FIX, RCONST, JV);
+#endif
+
+  TIME = Told;
+
+} /* end JAC_CHEM  */
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/sdirk_adj.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/sdirk_adj.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/sdirk_adj.def	(revision 2696)
@@ -0,0 +1,20 @@
+ 
+#FUNCTION AGGREGATE
+#JACOBIAN SPARSE_LU_ROW
+
+#DOUBLE ON 
+#INTFILE sdirk_adj
+
+#INLINE F77_GLOBAL
+      REAL*8 STEPSTART
+      COMMON /GDATA/ STEPSTART
+#ENDINLINE
+
+#INLINE F77_INIT
+        STEPMIN=0.0001
+        STEPMAX=3600.
+        STEPSTART=STEPMIN
+#ENDINLINE
+
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/sdirk_adj.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/sdirk_adj.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/sdirk_adj.f90	(revision 2696)
@@ -0,0 +1,1669 @@
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
+!  Adjoint of SDIRK - Singly-Diagonally-Implicit Runge-Kutta method       !
+!            * Sdirk 2a, 2b: L-stable, 2 stages, order 2                  !
+!            * Sdirk 3a:     L-stable, 3 stages, order 2, adj-invariant   !
+!            * Sdirk 4a, 4b: L-stable, 5 stages, order 4                  !
+!  By default the code employs the KPP sparse linear algebra routines     !
+!  Compile with -DFULL_ALGEBRA to use full linear algebra (LAPACK)        !
+!                                                                         !
+!    (C)  Adrian Sandu, July 2005                                         !
+!    Virginia Polytechnic Institute and State University                  !
+!    Contact: sandu@cs.vt.edu                                             !
+!    Revised by Philipp Miehe and Adrian Sandu, May 2006                  !
+!    This implementation is part of KPP - the Kinetic PreProcessor        !
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
+
+MODULE KPP_ROOT_Integrator
+
+  USE KPP_ROOT_Precision
+  USE KPP_ROOT_Global, ONLY: FIX, RCONST, TIME
+  USE KPP_ROOT_Parameters, ONLY: NVAR, NSPEC, NFIX, LU_NONZERO
+  USE KPP_ROOT_JacobianSP, ONLY: LU_DIAG
+  USE KPP_ROOT_Jacobian, ONLY: Jac_SP_Vec, JacTR_SP_Vec
+  USE KPP_ROOT_LinearAlgebra, ONLY: KppDecomp, KppSolve,    &
+               KppSolveTR, Set2zero, WLAMCH, WCOPY, WAXPY, WSCAL, WADD
+  
+  IMPLICIT NONE
+  PUBLIC
+  SAVE
+  
+!~~~>  Statistics on the work performed by the SDIRK method
+  INTEGER, PARAMETER :: Nfun=1, Njac=2, Nstp=3, Nacc=4,  &
+           Nrej=5, Ndec=6, Nsol=7, Nsng=8,               &
+           Ntexit=1, Nhexit=2, Nhnew=3
+                 
+CONTAINS
+
+SUBROUTINE INTEGRATE_ADJ( NADJ, Y, Lambda, TIN, TOUT, &
+           ATOL_adj, RTOL_adj,                        &
+           ICNTRL_U, RCNTRL_U, ISTATUS_U, RSTATUS_U, Ierr_U )
+
+   USE KPP_ROOT_Parameters
+   USE KPP_ROOT_Global
+   IMPLICIT NONE
+
+!~~~> Y - Concentrations
+   KPP_REAL :: Y(NVAR)
+!~~~> NADJ - No. of cost functionals for which adjoints
+!                are evaluated simultaneously
+!            If single cost functional is considered (like in
+!                most applications) simply set NADJ = 1      
+   INTEGER :: NADJ
+!~~~> Lambda - Sensitivities w.r.t. concentrations
+!     Note: Lambda (1:NVAR,j) contains sensitivities of
+!           the j-th cost functional w.r.t. Y(1:NVAR), j=1...NADJ
+   KPP_REAL  :: Lambda(NVAR,NADJ)
+!~~~> Tolerances for adjoint calculations
+!     (used for full continuous adjoint, and for controlling
+!      iterations when used to solve the discrete adjoint)   
+   KPP_REAL, INTENT(IN)  :: ATOL_adj(NVAR,NADJ), RTOL_adj(NVAR,NADJ)
+   KPP_REAL, INTENT(IN) :: TIN  ! Start Time
+   KPP_REAL, INTENT(IN) :: TOUT ! End Time
+   ! Optional input parameters and statistics
+   INTEGER,       INTENT(IN),  OPTIONAL :: ICNTRL_U(20)
+   KPP_REAL, INTENT(IN),  OPTIONAL :: RCNTRL_U(20)
+   INTEGER,       INTENT(OUT), OPTIONAL :: ISTATUS_U(20)
+   KPP_REAL, INTENT(OUT), OPTIONAL :: RSTATUS_U(20)
+   INTEGER,       INTENT(OUT), OPTIONAL :: Ierr_U
+
+   INTEGER, SAVE :: Ntotal = 0
+   KPP_REAL :: RCNTRL(20), RSTATUS(20), T1, T2
+   INTEGER       :: ICNTRL(20), ISTATUS(20), Ierr
+
+   ICNTRL(:)  = 0
+   RCNTRL(:)  = 0.0_dp
+   ISTATUS(:) = 0
+   RSTATUS(:) = 0.0_dp
+
+   !~~~> fine-tune the integrator:
+   ICNTRL(5) = 8    ! Max no. of Newton iterations
+   ICNTRL(7) = 1    ! Adjoint solution by: 0=Newton, 1=direct
+   ICNTRL(8) = 1    ! Save fwd LU factorization: 0 = do *not* save, 1 = save
+
+   ! If optional parameters are given, and if they are >0, 
+   ! then they overwrite default settings. 
+   IF (PRESENT(ICNTRL_U)) THEN
+     WHERE(ICNTRL_U(:) > 0) ICNTRL(:) = ICNTRL_U(:)
+   END IF
+   IF (PRESENT(RCNTRL_U)) THEN
+     WHERE(RCNTRL_U(:) > 0) RCNTRL(:) = RCNTRL_U(:)
+   END IF
+   
+   
+   T1 = TIN; T2 = TOUT
+   CALL SDIRKADJ( NVAR, NADJ, T1, T2, Y, Lambda,            &
+                  RTOL, ATOL, ATOL_adj, RTOL_adj,           &
+                  RCNTRL, ICNTRL, RSTATUS, ISTATUS, Ierr )
+
+   !~~~> Debug option: number of steps
+   ! Ntotal = Ntotal + ISTATUS(Nstp)
+   ! WRITE(6,777) ISTATUS(Nstp),Ntotal,VAR(ind_O3),VAR(ind_NO2)
+   ! 777 FORMAT('NSTEPS=',I5,' (',I5,')  O3=',E24.14,'  NO2=',E24.14)    
+
+   IF (Ierr < 0) THEN
+        PRINT *,'SDIRK: Unsuccessful exit at T=',TIN,' (Ierr=',Ierr,')'
+   ENDIF
+   
+   ! if optional parameters are given for output they to return information
+   IF (PRESENT(ISTATUS_U)) ISTATUS_U(:) = ISTATUS(:)
+   IF (PRESENT(RSTATUS_U)) RSTATUS_U(:) = RSTATUS(:)
+   IF (PRESENT(Ierr_U))    Ierr_U       = Ierr
+
+   END SUBROUTINE INTEGRATE_ADJ
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE SDIRKADJ(N, NADJ, Tinitial, Tfinal, Y, Lambda,   &
+                       RelTol, AbsTol, RelTol_adj, AbsTol_adj, &
+                       RCNTRL, ICNTRL, RSTATUS, ISTATUS, Ierr)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!    Solves the system y'=F(t,y) using a Singly-Diagonally-Implicit
+!    Runge-Kutta (SDIRK) method.
+!
+!    This implementation is based on the book and the code Sdirk4:
+!
+!      E. Hairer and G. Wanner
+!      "Solving ODEs II. Stiff and differential-algebraic problems".
+!      Springer series in computational mathematics, Springer-Verlag, 1996.
+!    This code is based on the SDIRK4 routine in the above book.
+!
+!    Methods:
+!            * Sdirk 2a, 2b: L-stable, 2 stages, order 2                  
+!            * Sdirk 3a:     L-stable, 3 stages, order 2, adjoint-invariant   
+!            * Sdirk 4a, 4b: L-stable, 5 stages, order 4                  
+!
+!    (C)  Adrian Sandu, July 2005
+!    Virginia Polytechnic Institute and State University
+!    Contact: sandu@cs.vt.edu
+!    Revised by Philipp Miehe and Adrian Sandu, May 2006                  
+!    This implementation is part of KPP - the Kinetic PreProcessor
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>   INPUT ARGUMENTS:
+!
+!-     Y(NVAR)    = vector of initial conditions (at T=Tinitial)
+!-    [Tinitial,Tfinal]  = time range of integration
+!     (if Tinitial>Tfinal the integration is performed backwards in time)
+!-    RelTol, AbsTol = user precribed accuracy
+!- SUBROUTINE ode_Fun( T, Y, Ydot ) = ODE function,
+!                       returns Ydot = Y' = F(T,Y)
+!- SUBROUTINE ode_Fun( T, Y, Ydot ) = Jacobian of the ODE function,
+!                       returns Jcb = dF/dY
+!-    ICNTRL(1:20)    = integer inputs parameters
+!-    RCNTRL(1:20)    = real inputs parameters
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>     OUTPUT ARGUMENTS:
+!
+!-    Y(NVAR)         -> vector of final states (at T->Tfinal)
+!-    ISTATUS(1:20)   -> integer output parameters
+!-    RSTATUS(1:20)   -> real output parameters
+!-    Ierr            -> job status upon return
+!                        success (positive value) or
+!                        failure (negative value)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>     INPUT PARAMETERS:
+!
+!    Note: For input parameters equal to zero the default values of the
+!       corresponding variables are used.
+!
+!    Note: For input parameters equal to zero the default values of the
+!          corresponding variables are used.
+!~~~>  
+!    ICNTRL(1) = not used
+!
+!    ICNTRL(2) = 0: AbsTol, RelTol are NVAR-dimensional vectors
+!              = 1: AbsTol, RelTol are scalars
+!
+!    ICNTRL(3) = Method
+!
+!    ICNTRL(4)  -> maximum number of integration steps
+!        For ICNTRL(4)=0 the default value of 1500 is used
+!        Note: use a conservative estimate, since the checkpoint
+!              buffers are allocated to hold Max_no_steps
+!
+!    ICNTRL(5)  -> maximum number of Newton iterations
+!        For ICNTRL(5)=0 the default value of 8 is used
+!
+!    ICNTRL(6)  -> starting values of Newton iterations:
+!        ICNTRL(6)=0 : starting values are interpolated (the default)
+!        ICNTRL(6)=1 : starting values are zero
+!
+!    ICNTRL(7)  -> method to solve ADJ equations:
+!        ICNTRL(7)=0 : modified Newton re-using LU (the default)
+!        ICNTRL(7)=1 : direct solution (additional one LU factorization per stage)
+!
+!    ICNTRL(8)  -> checkpointing the LU factorization at each step:
+!        ICNTRL(8)=0 : do *not* save LU factorization (the default)
+!        ICNTRL(8)=1 : save LU factorization
+!        Note: if ICNTRL(7)=1 the LU factorization is *not* saved
+!
+!~~~>  Real parameters
+!
+!    RCNTRL(1)  -> Hmin, lower bound for the integration step size
+!                  It is strongly recommended to keep Hmin = ZERO
+!    RCNTRL(2)  -> Hmax, upper bound for the integration step size
+!    RCNTRL(3)  -> Hstart, starting value for the integration step size
+!
+!    RCNTRL(4)  -> FacMin, lower bound on step decrease factor (default=0.2)
+!    RCNTRL(5)  -> FacMax, upper bound on step increase factor (default=6)
+!    RCNTRL(6)  -> FacRej, step decrease factor after multiple rejections
+!                 (default=0.1)
+!    RCNTRL(7)  -> FacSafe, by which the new step is slightly smaller
+!                  than the predicted value  (default=0.9)
+!    RCNTRL(8)  -> ThetaMin. If Newton convergence rate smaller
+!                  than ThetaMin the Jacobian is not recomputed;
+!                  (default=0.001)
+!    RCNTRL(9)  -> NewtonTol, stopping criterion for Newton's method
+!                  (default=0.03)
+!    RCNTRL(10) -> Qmin
+!    RCNTRL(11) -> Qmax. If Qmin < Hnew/Hold < Qmax, then the
+!                  step size is kept constant and the LU factorization
+!                  reused (default Qmin=1, Qmax=1.2)
+!
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>     OUTPUT PARAMETERS:
+!
+!    Note: each call to Rosenbrock adds the current no. of fcn calls
+!      to previous value of ISTATUS(1), and similar for the other params.
+!      Set ISTATUS(1:10) = 0 before call to avoid this accumulation.
+!
+!    ISTATUS(1) = No. of function calls
+!    ISTATUS(2) = No. of jacobian calls
+!    ISTATUS(3) = No. of steps
+!    ISTATUS(4) = No. of accepted steps
+!    ISTATUS(5) = No. of rejected steps (except at the beginning)
+!    ISTATUS(6) = No. of LU decompositions
+!    ISTATUS(7) = No. of forward/backward substitutions
+!    ISTATUS(8) = No. of singular matrix decompositions
+!
+!    RSTATUS(1)  -> Texit, the time corresponding to the
+!                   computed Y upon return
+!    RSTATUS(2)  -> Hexit,last accepted step before return
+!    RSTATUS(3)  -> Hnew, last predicted step before return
+!        For multiple restarts, use Hnew as Hstart in the following run
+!
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+
+! Arguments      
+      INTEGER, INTENT(IN)          :: N, NADJ, ICNTRL(20)
+      KPP_REAL, INTENT(INOUT) :: Y(NVAR), Lambda(NVAR,NADJ)
+      KPP_REAL, INTENT(IN)    :: Tinitial, Tfinal, &
+                    RelTol(NVAR), AbsTol(NVAR), RCNTRL(20), &
+                    RelTol_adj(NVAR,NADJ), AbsTol_adj(NVAR,NADJ)
+      INTEGER, INTENT(OUT)         :: Ierr
+      INTEGER, INTENT(INOUT)       :: ISTATUS(20) 
+      KPP_REAL, INTENT(OUT)   :: RSTATUS(20)
+       
+!~~~>  SDIRK method coefficients, up to 5 stages
+      INTEGER, PARAMETER :: Smax = 5
+      INTEGER, PARAMETER :: S2A=1, S2B=2, S3A=3, S4A=4, S4B=5
+      KPP_REAL :: rkGamma, rkA(Smax,Smax), rkB(Smax), rkC(Smax), &
+                       rkD(Smax),  rkE(Smax), rkBhat(Smax), rkELO,    &
+                       rkAlpha(Smax,Smax), rkTheta(Smax,Smax)
+      INTEGER :: sdMethod, rkS ! The number of stages
+
+!~~~>  Checkpoints in memory buffers
+      INTEGER :: stack_ptr = 0 ! last written entry in checkpoint
+      KPP_REAL, DIMENSION(:),     POINTER :: chk_H, chk_T
+      KPP_REAL, DIMENSION(:,:),   POINTER :: chk_Y
+      KPP_REAL, DIMENSION(:,:,:), POINTER :: chk_Z
+      INTEGER,       DIMENSION(:,:),   POINTER :: chk_P
+#ifdef FULL_ALGEBRA
+      KPP_REAL, DIMENSION(:,:,:), POINTER :: chk_J
+#else
+      KPP_REAL, DIMENSION(:,:),   POINTER :: chk_J
+#endif
+! Local variables      
+      KPP_REAL :: Hmin, Hmax, Hstart, Roundoff,    &
+                       FacMin, Facmax, FacSafe, FacRej, &
+                       ThetaMin, NewtonTol, Qmin, Qmax
+      LOGICAL       :: SaveLU, DirectADJ                 
+      INTEGER       :: ITOL, NewtonMaxit, Max_no_steps, i
+      KPP_REAL, PARAMETER :: ZERO = 0.0d0, ONE = 1.0d0
+      KPP_REAL, PARAMETER :: DeltaMin = 1.0d-5
+
+       
+!~~~>  Initialize statistics
+      ISTATUS(1:20) = 0
+      RSTATUS(1:20) = ZERO
+      Ierr          = 0
+
+!~~~>  For Scalar tolerances (ICNTRL(2).NE.0)  the code uses AbsTol(1) and RelTol(1)
+!   For Vector tolerances (ICNTRL(2) == 0) the code uses AbsTol(1:NVAR) and RelTol(1:NVAR)
+      IF (ICNTRL(2) == 0) THEN
+         ITOL = 1
+      ELSE
+         ITOL = 0
+      END IF
+
+!~~~> ICNTRL(3) - method selection       
+      SELECT CASE (ICNTRL(3))
+      CASE (0,1)
+         CALL Sdirk2a
+      CASE (2)
+         CALL Sdirk2b
+      CASE (3)
+         CALL Sdirk3a
+      CASE (4)
+         CALL Sdirk4a
+      CASE (5)
+         CALL Sdirk4b
+      CASE DEFAULT
+         CALL Sdirk2a
+      END SELECT
+      
+!~~~>   The maximum number of time steps admitted
+      IF (ICNTRL(4) == 0) THEN
+         Max_no_steps = 200000
+      ELSEIF (ICNTRL(4) > 0) THEN
+         Max_no_steps = ICNTRL(4)
+      ELSE
+         PRINT * ,'User-selected ICNTRL(4)=',ICNTRL(4)
+         CALL SDIRK_ErrorMsg(-1,Tinitial,ZERO,Ierr)
+   END IF
+ 
+!~~~> The maximum number of Newton iterations admitted
+      IF(ICNTRL(5) == 0)THEN
+         NewtonMaxit=8
+      ELSE
+         NewtonMaxit=ICNTRL(5)
+         IF(NewtonMaxit <= 0)THEN
+             PRINT * ,'User-selected ICNTRL(5)=',ICNTRL(5)
+             CALL SDIRK_ErrorMsg(-2,Tinitial,ZERO,Ierr)
+         END IF
+      END IF
+
+!~~~> Solve ADJ equations directly or by Newton iterations 
+      DirectADJ = (ICNTRL(7) == 1)
+ 
+!~~~> Save or not the forward LU factorization
+      SaveLU = (ICNTRL(8) /= 0) .AND. (.NOT.DirectADJ)
+
+!~~~>  Unit roundoff (1+Roundoff>1)
+      Roundoff = WLAMCH('E')
+
+!~~~>  Lower bound on the step size: (positive value)
+      IF (RCNTRL(1) == ZERO) THEN
+         Hmin = ZERO
+      ELSEIF (RCNTRL(1) > ZERO) THEN
+         Hmin = RCNTRL(1)
+      ELSE
+         PRINT * , 'User-selected RCNTRL(1)=', RCNTRL(1)
+         CALL SDIRK_ErrorMsg(-3,Tinitial,ZERO,Ierr)
+      END IF
+   
+!~~~>  Upper bound on the step size: (positive value)
+      IF (RCNTRL(2) == ZERO) THEN
+         Hmax = ABS(Tfinal-Tinitial)
+      ELSEIF (RCNTRL(2) > ZERO) THEN
+         Hmax = MIN(ABS(RCNTRL(2)),ABS(Tfinal-Tinitial))
+      ELSE
+         PRINT * , 'User-selected RCNTRL(2)=', RCNTRL(2)
+         CALL SDIRK_ErrorMsg(-3,Tinitial,ZERO,Ierr)
+      END IF
+   
+!~~~>  Starting step size: (positive value)
+      IF (RCNTRL(3) == ZERO) THEN
+         Hstart = MAX(Hmin,Roundoff)
+      ELSEIF (RCNTRL(3) > ZERO) THEN
+         Hstart = MIN(ABS(RCNTRL(3)),ABS(Tfinal-Tinitial))
+      ELSE
+         PRINT * , 'User-selected Hstart: RCNTRL(3)=', RCNTRL(3)
+         CALL SDIRK_ErrorMsg(-3,Tinitial,ZERO,Ierr)
+      END IF
+   
+!~~~>  Step size can be changed s.t.  FacMin < Hnew/Hexit < FacMax
+      IF (RCNTRL(4) == ZERO) THEN
+         FacMin = 0.2_dp
+      ELSEIF (RCNTRL(4) > ZERO) THEN
+         FacMin = RCNTRL(4)
+      ELSE
+         PRINT * , 'User-selected FacMin: RCNTRL(4)=', RCNTRL(4)
+         CALL SDIRK_ErrorMsg(-4,Tinitial,ZERO,Ierr)
+      END IF
+      IF (RCNTRL(5) == ZERO) THEN
+         FacMax = 10.0_dp
+      ELSEIF (RCNTRL(5) > ZERO) THEN
+         FacMax = RCNTRL(5)
+      ELSE
+         PRINT * , 'User-selected FacMax: RCNTRL(5)=', RCNTRL(5)
+         CALL SDIRK_ErrorMsg(-4,Tinitial,ZERO,Ierr)
+      END IF
+!~~~>   FacRej: Factor to decrease step after 2 succesive rejections
+      IF (RCNTRL(6) == ZERO) THEN
+         FacRej = 0.1_dp
+      ELSEIF (RCNTRL(6) > ZERO) THEN
+         FacRej = RCNTRL(6)
+      ELSE
+         PRINT * , 'User-selected FacRej: RCNTRL(6)=', RCNTRL(6)
+         CALL SDIRK_ErrorMsg(-4,Tinitial,ZERO,Ierr)
+      END IF
+!~~~>   FacSafe: Safety Factor in the computation of new step size
+      IF (RCNTRL(7) == ZERO) THEN
+         FacSafe = 0.9_dp
+      ELSEIF (RCNTRL(7) > ZERO) THEN
+         FacSafe = RCNTRL(7)
+      ELSE
+         PRINT * , 'User-selected FacSafe: RCNTRL(7)=', RCNTRL(7)
+         CALL SDIRK_ErrorMsg(-4,Tinitial,ZERO,Ierr)
+      END IF
+
+!~~~> ThetaMin: decides whether the Jacobian should be recomputed
+      IF(RCNTRL(8) == 0.D0)THEN
+         ThetaMin = 1.0d-3
+      ELSE
+         ThetaMin = RCNTRL(8)
+      END IF
+
+!~~~> Stopping criterion for Newton's method
+      IF(RCNTRL(9) == ZERO)THEN
+         NewtonTol = 3.0d-2
+      ELSE
+         NewtonTol = RCNTRL(9)
+      END IF
+
+!~~~> Qmin, Qmax: IF Qmin < Hnew/Hold < Qmax, STEP SIZE = CONST.
+      IF(RCNTRL(10) == ZERO)THEN
+         Qmin=ONE
+      ELSE
+         Qmin=RCNTRL(10)
+      END IF
+      IF(RCNTRL(11) == ZERO)THEN
+         Qmax=1.2D0
+      ELSE
+         Qmax=RCNTRL(11)
+      END IF
+
+!~~~>  Check if tolerances are reasonable
+      IF (ITOL == 0) THEN
+         IF (AbsTol(1) <= ZERO .OR. RelTol(1) <= 10.D0*Roundoff) THEN
+            PRINT * , ' Scalar AbsTol = ',AbsTol(1)
+            PRINT * , ' Scalar RelTol = ',RelTol(1)
+            CALL SDIRK_ErrorMsg(-5,Tinitial,ZERO,Ierr)
+         END IF
+      ELSE
+         DO i=1,N
+            IF (AbsTol(i) <= 0.D0.OR.RelTol(i) <= 10.D0*Roundoff) THEN
+              PRINT * , ' AbsTol(',i,') = ',AbsTol(i)
+              PRINT * , ' RelTol(',i,') = ',RelTol(i)
+              CALL SDIRK_ErrorMsg(-5,Tinitial,ZERO,Ierr)
+            END IF
+         END DO
+      END IF
+    
+    IF (Ierr < 0) RETURN
+    
+!~~~>  Allocate memory buffers    
+    CALL SDIRK_AllocBuffers
+
+!~~~>  Call forward integration    
+    CALL SDIRK_FwdInt( N, Tinitial, Tfinal, Y, Ierr )
+
+!~~~>  Call adjoint integration    
+    CALL SDIRK_DadjInt( N, NADJ, Lambda, Ierr )
+
+!~~~>  Free memory buffers    
+    CALL SDIRK_FreeBuffers
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   CONTAINS  !  Procedures internal to SDIRKADJ
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE SDIRK_FwdInt( N,Tinitial,Tfinal,Y,Ierr )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      USE KPP_ROOT_Parameters
+      IMPLICIT NONE
+
+!~~~> Arguments:      
+      INTEGER :: N
+      KPP_REAL, INTENT(INOUT) :: Y(NVAR)
+      KPP_REAL, INTENT(IN) :: Tinitial, Tfinal
+      INTEGER, INTENT(OUT) :: Ierr
+      
+!~~~> Local variables:      
+      KPP_REAL :: Z(NVAR,Smax), G(NVAR), TMP(NVAR),        &   
+                       NewtonRate, SCAL(NVAR), RHS(NVAR),       &
+                       T, H, Theta, Hratio, NewtonPredictedErr, &
+                       Qnewton, Err, Fac, Hnew,Tdirection,      &
+                       NewtonIncrement, NewtonIncrementOld
+      INTEGER :: j, IER, istage, NewtonIter, IP(NVAR)
+      LOGICAL :: Reject, FirstStep, SkipJac, SkipLU, NewtonDone
+      
+#ifdef FULL_ALGEBRA      
+      KPP_REAL, DIMENSION(NVAR,NVAR) :: FJAC, E
+#else      
+      KPP_REAL, DIMENSION(LU_NONZERO):: FJAC, E
+#endif      
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Initializations
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      T = Tinitial
+      Tdirection = SIGN(ONE,Tfinal-Tinitial)
+      H = MAX(ABS(Hmin),ABS(Hstart))
+      IF (ABS(H) <= 10.D0*Roundoff) H=1.0D-6
+      H=MIN(ABS(H),Hmax)
+      H=SIGN(H,Tdirection)
+      SkipLU =.FALSE.
+      SkipJac = .FALSE.
+      Reject=.FALSE.
+      FirstStep=.TRUE.
+
+      CALL SDIRK_ErrorScale(ITOL, AbsTol, RelTol, Y, SCAL)
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Time loop begins
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Tloop: DO WHILE ( (Tfinal-T)*Tdirection - Roundoff > ZERO )
+
+
+!~~~>  Compute E = 1/(h*gamma)-Jac and its LU decomposition
+      IF ( .NOT.SkipLU ) THEN ! This time around skip the Jac update and LU
+         CALL SDIRK_PrepareMatrix ( H, T, Y, FJAC, &
+                   SkipJac, SkipLU, E, IP, Reject, IER )
+         IF (IER /= 0) THEN
+             CALL SDIRK_ErrorMsg(-8,T,H,Ierr); RETURN
+         END IF
+      END IF      
+
+      IF (ISTATUS(Nstp) > Max_no_steps) THEN
+             CALL SDIRK_ErrorMsg(-6,T,H,Ierr); RETURN
+      END IF   
+      IF ( (T+0.1d0*H == T) .OR. (ABS(H) <= Roundoff) ) THEN
+             CALL SDIRK_ErrorMsg(-7,T,H,Ierr); RETURN
+      END IF   
+
+stages:DO istage = 1, rkS
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Simplified Newton iterations
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+!~~~>  Starting values for Newton iterations
+       CALL Set2zero(N,Z(1,istage))
+       
+!~~~>   Prepare the loop-independent part of the right-hand side
+       CALL Set2zero(N,G)
+       IF (istage > 1) THEN
+           DO j = 1, istage-1
+               ! Gj(:) = sum_j Theta(i,j)*Zj(:) = H * sum_j A(i,j)*Fun(Zj(:))
+               CALL WAXPY(N,rkTheta(istage,j),Z(1,j),1,G,1)
+               ! Zi(:) = sum_j Alpha(i,j)*Zj(:)
+               CALL WAXPY(N,rkAlpha(istage,j),Z(1,j),1,Z(1,istage),1)
+           END DO
+       END IF
+
+       !~~~>  Initializations for Newton iteration
+       NewtonDone = .FALSE.
+       Fac = 0.5d0 ! Step reduction factor if too many iterations
+            
+NewtonLoop:DO NewtonIter = 1, NewtonMaxit
+
+!~~~>   Prepare the loop-dependent part of the right-hand side
+ 	    CALL WADD(N,Y,Z(1,istage),TMP)         	! TMP <- Y + Zi
+            CALL FUN_CHEM(T+rkC(istage)*H,TMP,RHS)	! RHS <- Fun(Y+Zi)
+            ISTATUS(Nfun) = ISTATUS(Nfun) + 1
+!            RHS(1:N) = G(1:N) - Z(1:N,istage) + (H*rkGamma)*RHS(1:N)
+	    CALL WSCAL(N, H*rkGamma, RHS, 1)
+	    CALL WAXPY (N, -ONE, Z(1,istage), 1, RHS, 1)
+            CALL WAXPY (N, ONE, G,1, RHS,1)
+
+!~~~>   Solve the linear system
+            CALL SDIRK_Solve ( 'N', H, N, E, IP, IER, RHS )
+            
+!~~~>   Check convergence of Newton iterations
+            CALL SDIRK_ErrorNorm(N, RHS, SCAL, NewtonIncrement)
+            IF ( NewtonIter == 1 ) THEN
+                Theta      = ABS(ThetaMin)
+                NewtonRate = 2.0d0 
+            ELSE
+                Theta = NewtonIncrement/NewtonIncrementOld
+                IF (Theta < 0.99d0) THEN
+                    NewtonRate = Theta/(ONE-Theta)
+                    ! Predict error at the end of Newton process 
+                    NewtonPredictedErr = NewtonIncrement &
+                               *Theta**(NewtonMaxit-NewtonIter)/(ONE-Theta)
+                    IF (NewtonPredictedErr >= NewtonTol) THEN
+                      ! Non-convergence of Newton: predicted error too large
+                      Qnewton = MIN(10.0d0,NewtonPredictedErr/NewtonTol)
+                      Fac = 0.8d0*Qnewton**(-ONE/(1+NewtonMaxit-NewtonIter))
+                      EXIT NewtonLoop
+                    END IF
+                ELSE ! Non-convergence of Newton: Theta too large
+                    EXIT NewtonLoop
+                END IF
+            END IF
+            NewtonIncrementOld = NewtonIncrement
+            ! Update solution: Z(:) <-- Z(:)+RHS(:)
+            CALL WAXPY(N,ONE,RHS,1,Z(1,istage),1) 
+            
+            ! Check error in Newton iterations
+            NewtonDone = (NewtonRate*NewtonIncrement <= NewtonTol)
+            IF (NewtonDone) EXIT NewtonLoop
+            
+            END DO NewtonLoop
+            
+            IF (.NOT.NewtonDone) THEN
+                 !CALL RK_ErrorMsg(-12,T,H,Ierr);
+                 H = Fac*H; Reject=.TRUE.
+                 SkipJac = .TRUE.; SkipLU = .FALSE.
+                 CYCLE Tloop
+            END IF
+
+!~~~>  End of implified Newton iterations
+
+ 
+   END DO stages
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Error estimation
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      ISTATUS(Nstp) = ISTATUS(Nstp) + 1
+      CALL Set2zero(N,TMP)
+      DO i = 1,rkS
+         IF (rkE(i)/=ZERO) CALL WAXPY(N,rkE(i),Z(1,i),1,TMP,1)
+      END DO  
+
+      CALL SDIRK_Solve( 'N', H, N, E, IP, IER, TMP )
+      CALL SDIRK_ErrorNorm(N, TMP, SCAL, Err)
+
+!~~~> Computation of new step size Hnew
+      Fac  = FacSafe*(Err)**(-ONE/rkELO)
+      Fac  = MAX(FacMin,MIN(FacMax,Fac))
+      Hnew = H*Fac
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Accept/Reject step
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+accept: IF ( Err < ONE ) THEN !~~~> Step is accepted
+
+         FirstStep=.FALSE.
+         ISTATUS(Nacc) = ISTATUS(Nacc) + 1
+
+!~~~> Checkpoint solution
+         CALL SDIRK_Push( T, H, Y, Z, E, IP )
+
+!~~~> Update time and solution
+         T  =  T + H
+         ! Y(:) <-- Y(:) + Sum_j rkD(j)*Z_j(:)
+         DO i = 1,rkS 
+            IF (rkD(i)/=ZERO) CALL WAXPY(N,rkD(i),Z(1,i),1,Y,1)
+         END DO  
+       
+!~~~> Update scaling coefficients
+         CALL SDIRK_ErrorScale(ITOL, AbsTol, RelTol, Y, SCAL)
+
+!~~~> Next time step
+         Hnew = Tdirection*MIN(ABS(Hnew),Hmax)
+         ! Last T and H
+         RSTATUS(Ntexit) = T
+         RSTATUS(Nhexit) = H
+         RSTATUS(Nhnew)  = Hnew
+         ! No step increase after a rejection
+         IF (Reject) Hnew = Tdirection*MIN(ABS(Hnew),ABS(H))
+         Reject = .FALSE.
+         IF ((T+Hnew/Qmin-Tfinal)*Tdirection > ZERO) THEN
+            H = Tfinal-T
+         ELSE
+            Hratio=Hnew/H
+            ! If step not changed too much keep Jacobian and reuse LU
+            SkipLU = ( (Theta <= ThetaMin) .AND. (Hratio >= Qmin) &
+                                     .AND. (Hratio <= Qmax) )
+            IF (.NOT.SkipLU) H = Hnew
+         END IF
+         ! If convergence is fast enough, do not update Jacobian
+!         SkipJac = (Theta <= ThetaMin)
+         SkipJac = .FALSE.
+
+      ELSE accept !~~~> Step is rejected
+
+         IF (FirstStep .OR. Reject) THEN
+             H = FacRej*H
+         ELSE
+             H = Hnew
+         END IF
+         Reject  = .TRUE.
+         SkipJac = .TRUE.
+         SkipLU  = .FALSE. 
+         IF (ISTATUS(Nacc) >= 1) ISTATUS(Nrej) = ISTATUS(Nrej) + 1
+         
+      END IF accept
+      
+      END DO Tloop
+
+      ! Successful return
+      Ierr  = 1
+  
+      END SUBROUTINE SDIRK_FwdInt
+
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE SDIRK_DadjInt( N, NADJ, Lambda, Ierr )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      USE KPP_ROOT_Parameters
+      IMPLICIT NONE
+
+!~~~> Arguments:      
+      INTEGER, INTENT(IN) :: N, NADJ
+      KPP_REAL, INTENT(INOUT) :: Lambda(NVAR,NADJ)
+      INTEGER, INTENT(OUT) :: Ierr
+      
+!~~~> Local variables:      
+      KPP_REAL :: Y(NVAR)
+      KPP_REAL :: Z(NVAR,Smax), U(NVAR,NADJ,Smax),   &
+                       TMP(NVAR), G(NVAR),                &   
+                       NewtonRate, SCAL(NVAR), DU(NVAR),  &
+                       T, H, Theta, NewtonPredictedErr,   &
+                       NewtonIncrement, NewtonIncrementOld
+      INTEGER :: j, IER, istage, iadj, NewtonIter, &
+                 IP(NVAR), IP_adj(NVAR)
+      LOGICAL :: Reject, SkipJac, SkipLU, NewtonDone
+      
+#ifdef FULL_ALGEBRA      
+      KPP_REAL, DIMENSION(NVAR,NVAR) :: E, Jac, E_adj
+#else      
+      KPP_REAL, DIMENSION(LU_NONZERO):: E, Jac, E_adj
+#endif      
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Time loop begins
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Tloop: DO WHILE ( stack_ptr > 0 )
+        
+   !~~~>  Recover checkpoints for stage values and vectors
+      CALL SDIRK_Pop( T, H, Y, Z, E, IP )
+
+!~~~>  Compute E = 1/(h*gamma)-Jac and its LU decomposition
+      IF (.NOT.SaveLU) THEN
+          SkipJac = .FALSE.; SkipLU = .FALSE.
+          CALL SDIRK_PrepareMatrix ( H, T, Y, Jac, &
+                   SkipJac, SkipLU, E, IP, Reject, IER )
+         IF (IER /= 0) THEN
+             CALL SDIRK_ErrorMsg(-8,T,H,Ierr); RETURN
+         END IF
+      END IF      
+
+stages:DO istage = rkS, 1, -1
+
+!~~~>  Jacobian of the current stage solution
+       TMP(1:N) = Y(1:N) + Z(1:N,istage)
+       CALL JAC_CHEM(T+rkC(istage)*H,TMP,Jac)
+       ISTATUS(Njac) = ISTATUS(Njac) + 1
+       
+       IF (DirectADJ) THEN 
+#ifdef FULL_ALGEBRA
+         E_adj(1:N,1:N) = -Jac(1:N,1:N)
+         DO j=1,N
+            E_adj(j,j) = E_adj(j,j) + ONE/(H*rkGamma)
+         END DO
+         CALL DGETRF( N, N, E_adj, N, IP_adj, IER )
+#else
+         E_adj(1:LU_NONZERO) = -Jac(1:LU_NONZERO)
+         DO i = 1,NVAR
+            j = LU_DIAG(i); E_adj(j) = E_adj(j) + ONE/(H*rkGamma)
+         END DO
+         CALL KppDecomp ( E_adj, IER)
+#endif
+         ISTATUS(Ndec) = ISTATUS(Ndec) + 1
+         IF (IER /= 0)  THEN
+             PRINT*,'At stage ',istage,' the matrix used in adjoint', &
+                      ' computation is singular'
+             CALL SDIRK_ErrorMsg(-8,T,H,Ierr); RETURN
+         END IF
+       END IF
+
+adj:   DO iadj = 1, NADJ
+       
+!~~~> Update scaling coefficients
+       CALL SDIRK_ErrorScale(ITOL, AbsTol_adj(1:NVAR,iadj), &
+             RelTol_adj(1:NVAR,iadj), Lambda(1:NVAR,iadj), SCAL)
+      
+!~~~>   Prepare the loop-independent part of the right-hand side
+!       G(:) = H*Jac^T*( B(i)*Lambda + sum_j A(j,i)*Uj(:) )
+       G(1:N) = rkB(istage)*Lambda(1:N,iadj)
+       IF (istage < rkS) THEN
+           DO j = istage+1, rkS
+               CALL WAXPY(N,rkA(j,istage),U(1,iadj,j),1,G,1)
+           END DO
+       END IF
+#ifdef FULL_ALGEBRA  
+       TMP = MATMUL(TRANSPOSE(Jac),G)    ! DZ <- Jac(Y+Z)*Y_tlm
+#else      
+       CALL JacTR_SP_Vec ( Jac, G, TMP )    
+#endif      
+       G(1:N) = H*TMP(1:N)
+
+DirADJ:IF (DirectADJ) THEN 
+
+            CALL SDIRK_Solve ( 'T', H, N, E_adj, IP_adj, IER, G )
+            U(1:N,iadj,istage) = G(1:N)
+      
+       ELSE DirADJ
+
+            !~~~>  Initializations for Newton iteration
+            CALL Set2zero(N,U(1,iadj,istage))
+            NewtonDone = .FALSE.
+            
+NewtonLoop:DO NewtonIter = 1, NewtonMaxit
+
+!~~~>   Prepare the loop-dependent part of the right-hand side
+#ifdef FULL_ALGEBRA  
+            TMP = MATMUL(TRANSPOSE(Jac),U(1:N,iadj,istage))    
+#else      
+            CALL JacTR_SP_Vec ( Jac, U(1:N,iadj,istage), TMP )    
+#endif      
+            DU(1:N) = U(1:N,iadj,istage) - (H*rkGamma)*TMP(1:N) - G(1:N)
+
+!~~~>   Solve the linear system
+            CALL SDIRK_Solve ( 'T', H, N, E, IP, IER, DU )
+            
+!~~~>   Check convergence of Newton iterations
+            
+            CALL SDIRK_ErrorNorm(N, DU, SCAL, NewtonIncrement)
+            IF ( NewtonIter == 1 ) THEN
+                Theta      = ABS(ThetaMin)
+                NewtonRate = 2.0d0 
+            ELSE
+                Theta = NewtonIncrement/NewtonIncrementOld
+                IF (Theta < 0.99d0) THEN
+                    NewtonRate = Theta/(ONE-Theta)
+                     ! Predict error at the end of Newton process 
+                    NewtonPredictedErr = NewtonIncrement &
+                               *Theta**(NewtonMaxit-NewtonIter)/(ONE-Theta)
+                     ! Non-convergence of Newton: predicted error too large
+                    IF (NewtonPredictedErr >= NewtonTol) EXIT NewtonLoop
+                ELSE ! Non-convergence of Newton: Theta too large
+                    EXIT NewtonLoop
+                END IF
+            END IF
+            NewtonIncrementOld = NewtonIncrement
+            ! Update solution
+            U(1:N,iadj,istage) = U(1:N,iadj,istage) - DU(1:N)
+            
+            ! Check error in Newton iterations
+            NewtonDone = (NewtonRate*NewtonIncrement <= NewtonTol)
+            ! AbsTol is often inappropriate for adjoints -
+            !    we do at least 4 Newton iterations to ensure convergence
+            !    of all adjoint components
+            IF ((NewtonIter>=4) .AND. NewtonDone) EXIT NewtonLoop
+            
+            END DO NewtonLoop
+            
+            !~~~> If Newton iterations fail employ the direct solution
+            IF (.NOT.NewtonDone) THEN                 
+               PRINT*,'Problems with Newton Adjoint!!!'
+#ifdef FULL_ALGEBRA
+               E_adj(1:N,1:N) = -Jac(1:N,1:N)
+               DO j=1,N
+                  E_adj(j,j) = E_adj(j,j) + ONE/(H*rkGamma)
+               END DO
+               CALL DGETRF( N, N, E_adj, N, IP_adj, IER )
+#else
+               E_adj(1:LU_NONZERO) = -Jac(1:LU_NONZERO)
+               DO i = 1,NVAR
+                  j = LU_DIAG(i); E_adj(j) = E_adj(j) + ONE/(H*rkGamma)
+               END DO
+               CALL KppDecomp ( E_adj, IER)
+#endif
+               ISTATUS(Ndec) = ISTATUS(Ndec) + 1
+               IF (IER /= 0)  THEN
+                   PRINT*,'At stage ',istage,' the matrix used in adjoint', &
+                            ' computation is singular'
+                   CALL SDIRK_ErrorMsg(-8,T,H,Ierr); RETURN
+               END IF
+                  CALL SDIRK_Solve ( 'T', H, N, E_adj, IP_adj, IER, G )
+                  U(1:N,iadj,istage) = G(1:N)
+                 
+            END IF
+
+!~~~>  End of simplified Newton iterations
+      
+       END IF DirADJ
+
+   END DO adj
+ 
+   END DO stages
+
+!~~~> Update adjoint solution
+         ! Y(:) <-- Y(:) + Sum_j rkD(j)*Z_j(:)
+         DO istage = 1,rkS 
+             DO iadj = 1,NADJ
+                 Lambda(1:N,iadj) = Lambda(1:N,iadj) + U(1:N,iadj,istage)
+                 !CALL WAXPY(N,ONE,U(1:N,iadj,istage),1,Lambda(1,iadj),1)
+             END DO  
+         END DO  
+
+      END DO Tloop
+
+      ! Successful return
+      Ierr  = 1
+  
+      END SUBROUTINE SDIRK_DadjInt
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE SDIRK_AllocBuffers
+!~~~>  Allocate buffer space for checkpointing
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+       INTEGER :: i
+   
+       ALLOCATE( chk_H(Max_no_steps), STAT=i )
+       IF (i/=0) THEN
+          PRINT*,'Failed allocation of buffer H'; STOP
+       END IF   
+       ALLOCATE( chk_T(Max_no_steps), STAT=i )
+       IF (i/=0) THEN
+          PRINT*,'Failed allocation of buffer T'; STOP
+       END IF   
+       ALLOCATE( chk_Y(NVAR,Max_no_steps), STAT=i )
+       IF (i/=0) THEN
+          PRINT*,'Failed allocation of buffer Y'; STOP
+       END IF   
+       ALLOCATE( chk_Z(NVAR,rkS,Max_no_steps), STAT=i )
+       IF (i/=0) THEN
+          PRINT*,'Failed allocation of buffer K'; STOP
+       END IF   
+       IF (SaveLU) THEN
+#ifdef FULL_ALGEBRA
+          ALLOCATE( chk_J(NVAR,NVAR,Max_no_steps),  STAT=i )
+#else
+          ALLOCATE( chk_J(LU_NONZERO,Max_no_steps), STAT=i )
+#endif
+          IF (i/=0) THEN
+             PRINT*,'Failed allocation of buffer J'; STOP
+          END IF   
+          ALLOCATE( chk_P(NVAR,Max_no_steps), STAT=i )
+          IF (i/=0) THEN
+             PRINT*,'Failed allocation of buffer P'; STOP
+          END IF   
+       END IF   
+ 
+     END SUBROUTINE SDIRK_AllocBuffers
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+     SUBROUTINE SDIRK_FreeBuffers
+!~~~>  Dallocate buffer space for discrete adjoint
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+       INTEGER :: i
+   
+       DEALLOCATE( chk_H, STAT=i )
+       IF (i/=0) THEN
+          PRINT*,'Failed deallocation of buffer H'; STOP
+       END IF   
+       DEALLOCATE( chk_T, STAT=i )
+       IF (i/=0) THEN
+          PRINT*,'Failed deallocation of buffer T'; STOP
+       END IF   
+       DEALLOCATE( chk_Y, STAT=i )
+       IF (i/=0) THEN
+          PRINT*,'Failed deallocation of buffer Y'; STOP
+       END IF   
+       DEALLOCATE( chk_Z, STAT=i )
+       IF (i/=0) THEN
+          PRINT*,'Failed deallocation of buffer K'; STOP
+       END IF   
+       IF (SaveLU) THEN
+          DEALLOCATE( chk_J, STAT=i )
+          IF (i/=0) THEN
+             PRINT*,'Failed deallocation of buffer J'; STOP
+          END IF   
+          DEALLOCATE( chk_P, STAT=i )
+          IF (i/=0) THEN
+             PRINT*,'Failed deallocation of buffer P'; STOP
+          END IF   
+       END IF   
+ 
+     END SUBROUTINE SDIRK_FreeBuffers
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+     SUBROUTINE SDIRK_Push( T, H, Y, Z, E, P )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> Saves the next trajectory snapshot for discrete adjoints
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+       KPP_REAL :: T, H, Y(NVAR), Z(NVAR,Smax) 
+       INTEGER       :: P(NVAR)
+#ifdef FULL_ALGEBRA
+       KPP_REAL :: E(NVAR,NVAR)
+#else       
+       KPP_REAL :: E(LU_NONZERO)
+#endif
+   
+       stack_ptr = stack_ptr + 1
+       IF ( stack_ptr > Max_no_steps ) THEN
+         PRINT*,'Push failed: buffer overflow'
+         STOP
+       END IF  
+       chk_H( stack_ptr ) = H
+       chk_T( stack_ptr ) = T
+       chk_Y(1:NVAR,stack_ptr) = Y(1:NVAR)
+       chk_Z(1:NVAR,1:rkS,stack_ptr) = Z(1:NVAR,1:rkS)
+       IF (SaveLU) THEN 
+#ifdef FULL_ALGEBRA
+          chk_J(1:NVAR,1:NVAR,stack_ptr) = E(1:NVAR,1:NVAR)
+          chk_P(1:NVAR,stack_ptr)        = P(1:NVAR)
+#else       
+          chk_J(1:LU_NONZERO,stack_ptr)  = E(1:LU_NONZERO)
+#endif
+       END IF
+  
+      END SUBROUTINE SDIRK_Push
+  
+   
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE SDIRK_Pop( T, H, Y, Z, E, P )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> Retrieves the next trajectory snapshot for discrete adjoints
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+       KPP_REAL :: T, H, Y(NVAR), Z(NVAR,Smax)
+       INTEGER       :: P(NVAR)
+#ifdef FULL_ALGEBRA
+       KPP_REAL :: E(NVAR,NVAR)
+#else       
+       KPP_REAL :: E(LU_NONZERO)
+#endif
+   
+       IF ( stack_ptr <= 0 ) THEN
+         PRINT*,'Pop failed: empty buffer'
+         STOP
+       END IF  
+       H = chk_H( stack_ptr )
+       T = chk_T( stack_ptr )
+       Y(1:NVAR) = chk_Y(1:NVAR,stack_ptr)
+       Z(1:NVAR,1:rkS) = chk_Z(1:NVAR,1:rkS,stack_ptr)
+       IF (SaveLU) THEN
+#ifdef FULL_ALGEBRA
+          E(1:NVAR,1:NVAR) = chk_J(1:NVAR,1:NVAR,stack_ptr)
+          P(1:NVAR)        = chk_P(1:NVAR,stack_ptr)
+#else       
+          E(1:LU_NONZERO)  = chk_J(1:LU_NONZERO,stack_ptr)
+#endif
+       END IF
+
+       stack_ptr = stack_ptr - 1
+  
+      END SUBROUTINE SDIRK_Pop
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE SDIRK_ErrorScale(ITOL, AbsTol, RelTol, Y, SCAL)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      INTEGER :: i, ITOL
+      KPP_REAL :: AbsTol(NVAR), RelTol(NVAR), &
+                       Y(NVAR), SCAL(NVAR)
+      IF (ITOL == 0) THEN
+        DO i=1,NVAR
+          SCAL(i) = ONE / ( AbsTol(1)+RelTol(1)*ABS(Y(i)) )
+        END DO
+      ELSE
+        DO i=1,NVAR
+          SCAL(i) = ONE / ( AbsTol(i)+RelTol(i)*ABS(Y(i)) )
+        END DO
+      END IF
+      END SUBROUTINE SDIRK_ErrorScale
+      
+      
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE SDIRK_ErrorNorm(N, Y, SCAL, Err)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!      
+      INTEGER :: i, N
+      KPP_REAL :: Y(N), SCAL(N), Err      
+      Err = ZERO
+      DO i=1,N
+           Err = Err+(Y(i)*SCAL(i))**2
+      END DO
+      Err = MAX( SQRT(Err/DBLE(N)), 1.0d-10 )
+!
+      END SUBROUTINE SDIRK_ErrorNorm
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
+SUBROUTINE SDIRK_ErrorMsg(Code,T,H,Ierr)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!    Handles all error messages
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   KPP_REAL, INTENT(IN) :: T, H
+   INTEGER, INTENT(IN)  :: Code
+   INTEGER, INTENT(OUT) :: Ierr
+
+   Ierr = Code
+   PRINT * , &
+     'Forced exit from SDIRK due to the following error:'
+
+   SELECT CASE (Code)
+    CASE (-1)
+      PRINT * , '--> Improper value for maximal no of steps'
+    CASE (-2)
+      PRINT * , '--> Improper value for maximal no of Newton iterations'
+    CASE (-3)
+      PRINT * , '--> Hmin/Hmax/Hstart must be positive'
+    CASE (-4)
+      PRINT * , '--> FacMin/FacMax/FacRej must be positive'
+    CASE (-5)
+      PRINT * , '--> Improper tolerance values'
+    CASE (-6)
+      PRINT * , '--> No of steps exceeds maximum bound', max_no_steps
+    CASE (-7)
+      PRINT * , '--> Step size too small: T + 10*H = T', &
+            ' or H < Roundoff'
+    CASE (-8)
+      PRINT * , '--> Matrix is repeatedly singular'
+    CASE DEFAULT
+      PRINT *, 'Unknown Error code: ', Code
+   END SELECT
+
+   PRINT *, "T=", T, "and H=", H
+
+ END SUBROUTINE SDIRK_ErrorMsg
+      
+      
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE SDIRK_PrepareMatrix ( H, T, Y, FJAC, &
+                   SkipJac, SkipLU, E, IP, Reject, ISING )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Compute the matrix E = 1/(H*GAMMA)*Jac, and its decomposition
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+     
+      IMPLICIT NONE
+      
+      KPP_REAL, INTENT(INOUT) :: H
+      KPP_REAL, INTENT(IN)    :: T, Y(NVAR)
+      LOGICAL, INTENT(INOUT)       :: SkipJac,SkipLU,Reject
+      INTEGER, INTENT(OUT)         :: ISING, IP(NVAR)
+#ifdef FULL_ALGEBRA
+      KPP_REAL, INTENT(INOUT) :: FJAC(NVAR,NVAR)
+      KPP_REAL, INTENT(OUT)   :: E(NVAR,NVAR)
+#else
+      KPP_REAL, INTENT(INOUT) :: FJAC(LU_NONZERO)
+      KPP_REAL, INTENT(OUT)   :: E(LU_NONZERO)
+#endif
+      KPP_REAL                :: HGammaInv
+      INTEGER                      :: i, j, ConsecutiveSng
+
+      ConsecutiveSng = 0
+      ISING = 1
+      
+Hloop: DO WHILE (ISING /= 0)
+      
+      HGammaInv = ONE/(H*rkGamma)
+
+!~~~>  Compute the Jacobian
+!      IF (SkipJac) THEN
+!          SkipJac = .FALSE.
+!      ELSE
+      IF (.NOT. SkipJac) THEN
+          CALL JAC_CHEM( T, Y, FJAC )
+          ISTATUS(Njac) = ISTATUS(Njac) + 1
+      END IF  
+      
+#ifdef FULL_ALGEBRA
+      DO j=1,NVAR
+         DO i=1,NVAR
+            E(i,j) = -FJAC(i,j)
+         END DO
+         E(j,j) = E(j,j)+HGammaInv
+      END DO
+      CALL DGETRF( NVAR, NVAR, E, NVAR, IP, ISING )
+#else
+      DO i = 1,LU_NONZERO
+            E(i) = -FJAC(i)
+      END DO
+      DO i = 1,NVAR
+          j = LU_DIAG(i); E(j) = E(j) + HGammaInv
+      END DO
+      CALL KppDecomp ( E, ISING)
+      IP(1) = 1
+#endif
+      ISTATUS(Ndec) = ISTATUS(Ndec) + 1
+
+      IF (ISING /= 0) THEN
+          WRITE (6,*) ' MATRIX IS SINGULAR, ISING=',ISING,' T=',T,' H=',H
+          ISTATUS(Nsng) = ISTATUS(Nsng) + 1; ConsecutiveSng = ConsecutiveSng + 1
+          IF (ConsecutiveSng >= 6) RETURN ! Failure
+          H = 0.5d0*H
+          SkipJac = .FALSE.
+          SkipLU  = .FALSE.
+          Reject  = .TRUE.
+      END IF
+      
+      END DO Hloop
+
+      END SUBROUTINE SDIRK_PrepareMatrix
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE SDIRK_Solve ( Transp, H, N, E, IP, ISING, RHS )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Solves the system (H*Gamma-Jac)*x = R
+!      using the LU decomposition of E = I - 1/(H*Gamma)*Jac
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      INTEGER, INTENT(IN)       :: N, IP(N), ISING
+      CHARACTER, INTENT(IN)     :: Transp
+      KPP_REAL, INTENT(IN) :: H
+#ifdef FULL_ALGEBRA
+      KPP_REAL, INTENT(IN) :: E(NVAR,NVAR)
+#else
+      KPP_REAL, INTENT(IN) :: E(LU_NONZERO)
+#endif
+      KPP_REAL, INTENT(INOUT) :: RHS(N)
+      KPP_REAL                :: HGammaInv
+      
+      HGammaInv = ONE/(H*rkGamma)
+      CALL WSCAL(N,HGammaInv,RHS,1)
+      SELECT CASE (TRANSP)
+      CASE ('N')
+#ifdef FULL_ALGEBRA  
+         CALL DGETRS( 'N', N, 1, E, N, IP, RHS, N, ISING )
+#else
+         CALL KppSolve(E, RHS)
+#endif
+      CASE ('T')
+#ifdef FULL_ALGEBRA  
+         CALL DGETRS( 'T', N, 1, E, N, IP, RHS, N, ISING )
+#else
+         CALL KppSolveTR(E, RHS, RHS)
+#endif
+      CASE DEFAULT
+         PRINT*,'Error in SDIRK_Solve. Unknown Transp argument:',Transp
+         STOP
+      END SELECT
+      ISTATUS(Nsol) = ISTATUS(Nsol) + 1
+ 
+      END SUBROUTINE SDIRK_Solve
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE Sdirk4a
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      sdMethod = S4A
+! Number of stages
+      rkS = 5
+
+! Method coefficients
+      rkGamma = .2666666666666666666666666666666667d0
+
+      rkA(1,1) = .2666666666666666666666666666666667d0
+      rkA(2,1) = .5000000000000000000000000000000000d0
+      rkA(2,2) = .2666666666666666666666666666666667d0
+      rkA(3,1) = .3541539528432732316227461858529820d0
+      rkA(3,2) = -.5415395284327323162274618585298197d-1
+      rkA(3,3) = .2666666666666666666666666666666667d0
+      rkA(4,1) = .8515494131138652076337791881433756d-1
+      rkA(4,2) = -.6484332287891555171683963466229754d-1
+      rkA(4,3) = .7915325296404206392428857585141242d-1
+      rkA(4,4) = .2666666666666666666666666666666667d0
+      rkA(5,1) = 2.100115700566932777970612055999074d0
+      rkA(5,2) = -.7677800284445976813343102185062276d0
+      rkA(5,3) = 2.399816361080026398094746205273880d0
+      rkA(5,4) = -2.998818699869028161397714709433394d0
+      rkA(5,5) = .2666666666666666666666666666666667d0
+
+      rkB(1)   = 2.100115700566932777970612055999074d0
+      rkB(2)   = -.7677800284445976813343102185062276d0
+      rkB(3)   = 2.399816361080026398094746205273880d0
+      rkB(4)   = -2.998818699869028161397714709433394d0
+      rkB(5)   = .2666666666666666666666666666666667d0
+
+      rkBhat(1)= 2.885264204387193942183851612883390d0
+      rkBhat(2)= -.1458793482962771337341223443218041d0
+      rkBhat(3)= 2.390008682465139866479830743628554d0
+      rkBhat(4)= -4.129393538556056674929560012190140d0
+      rkBhat(5)= 0.d0
+
+      rkC(1)   = .2666666666666666666666666666666667d0
+      rkC(2)   = .7666666666666666666666666666666667d0
+      rkC(3)   = .5666666666666666666666666666666667d0
+      rkC(4)   = .3661315380631796996374935266701191d0
+      rkC(5)   = 1.d0
+
+! Ynew = Yold + h*Sum_i {rkB_i*k_i} = Yold + Sum_i {rkD_i*Z_i}
+      rkD(1)   = 0.d0
+      rkD(2)   = 0.d0
+      rkD(3)   = 0.d0
+      rkD(4)   = 0.d0
+      rkD(5)   = 1.d0
+
+! Err = h * Sum_i {(rkB_i-rkBhat_i)*k_i} = Sum_i {rkE_i*Z_i}
+      rkE(1)   = -.6804000050475287124787034884002302d0
+      rkE(2)   = 1.558961944525217193393931795738823d0
+      rkE(3)   = -13.55893003128907927748632408763868d0
+      rkE(4)   = 15.48522576958521253098585004571302d0
+      rkE(5)   = 1.d0
+
+! Local order of Err estimate
+      rkElo    = 4
+
+! h*Sum_j {rkA_ij*k_j} = Sum_j {rkTheta_ij*Z_j}
+      rkTheta(2,1) = 1.875000000000000000000000000000000d0
+      rkTheta(3,1) = 1.708847304091539528432732316227462d0
+      rkTheta(3,2) = -.2030773231622746185852981969486824d0
+      rkTheta(4,1) = .2680325578937783958847157206823118d0
+      rkTheta(4,2) = -.1828840955527181631794050728644549d0
+      rkTheta(4,3) = .2968246986151577397160821594427966d0
+      rkTheta(5,1) = .9096171815241460655379433581446771d0
+      rkTheta(5,2) = -3.108254967778352416114774430509465d0
+      rkTheta(5,3) = 12.33727431701306195581826123274001d0
+      rkTheta(5,4) = -11.24557012450885560524143016037523d0
+
+! Starting value for Newton iterations: Z_i^0 = Sum_j {rkAlpha_ij*Z_j}
+      rkAlpha(2,1) = 2.875000000000000000000000000000000d0
+      rkAlpha(3,1) = .8500000000000000000000000000000000d0
+      rkAlpha(3,2) = .4434782608695652173913043478260870d0
+      rkAlpha(4,1) = .7352046091658870564637910527807370d0
+      rkAlpha(4,2) = -.9525565003057343527941920657462074d-1
+      rkAlpha(4,3) = .4290111305453813852259481840631738d0
+      rkAlpha(5,1) = -16.10898993405067684831655675112808d0
+      rkAlpha(5,2) = 6.559571569643355712998131800797873d0
+      rkAlpha(5,3) = -15.90772144271326504260996815012482d0
+      rkAlpha(5,4) = 25.34908987169226073668861694892683d0
+               
+!~~~> Coefficients for continuous solution
+!          rkD(1,1)= 24.74416644927758d0
+!          rkD(1,2)= -4.325375951824688d0
+!          rkD(1,3)= 41.39683763286316d0
+!          rkD(1,4)= -61.04144619901784d0
+!          rkD(1,5)= -3.391332232917013d0
+!          rkD(2,1)= -51.98245719616925d0
+!          rkD(2,2)= 10.52501981094525d0
+!          rkD(2,3)= -154.2067922191855d0
+!          rkD(2,4)= 214.3082125319825d0
+!          rkD(2,5)= 14.71166018088679d0
+!          rkD(3,1)= 33.14347947522142d0
+!          rkD(3,2)= -19.72986789558523d0
+!          rkD(3,3)= 230.4878502285804d0
+!          rkD(3,4)= -287.6629744338197d0
+!          rkD(3,5)= -18.99932366302254d0
+!          rkD(4,1)= -5.905188728329743d0
+!          rkD(4,2)= 13.53022403646467d0
+!          rkD(4,3)= -117.6778956422581d0
+!          rkD(4,4)= 134.3962081008550d0
+!          rkD(4,5)= 8.678995715052762d0
+!
+!         DO i=1,4  ! CONTi <-- Sum_j rkD(i,j)*Zj
+!           CALL Set2zero(N,CONT(1,i))
+!           DO j = 1,rkS
+!             CALL WAXPY(N,rkD(i,j),Z(1,j),1,CONT(1,i),1)
+!           END DO
+!         END DO
+          
+          rkELO = 4.0d0
+          
+      END SUBROUTINE Sdirk4a
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE Sdirk4b
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      sdMethod = S4B
+! Number of stages
+      rkS = 5
+
+! Method coefficients
+      rkGamma = .25d0
+
+      rkA(1,1) = 0.25d0
+      rkA(2,1) = 0.5d00
+      rkA(2,2) = 0.25d0
+      rkA(3,1) = 0.34d0
+      rkA(3,2) =-0.40d-1
+      rkA(3,3) = 0.25d0
+      rkA(4,1) = 0.2727941176470588235294117647058824d0
+      rkA(4,2) =-0.5036764705882352941176470588235294d-1
+      rkA(4,3) = 0.2757352941176470588235294117647059d-1
+      rkA(4,4) = 0.25d0
+      rkA(5,1) = 1.041666666666666666666666666666667d0
+      rkA(5,2) =-1.020833333333333333333333333333333d0
+      rkA(5,3) = 7.812500000000000000000000000000000d0
+      rkA(5,4) =-7.083333333333333333333333333333333d0
+      rkA(5,5) = 0.25d0
+
+      rkB(1)   =  1.041666666666666666666666666666667d0
+      rkB(2)   = -1.020833333333333333333333333333333d0
+      rkB(3)   =  7.812500000000000000000000000000000d0
+      rkB(4)   = -7.083333333333333333333333333333333d0
+      rkB(5)   =  0.250000000000000000000000000000000d0
+
+      rkBhat(1)=  1.069791666666666666666666666666667d0
+      rkBhat(2)= -0.894270833333333333333333333333333d0
+      rkBhat(3)=  7.695312500000000000000000000000000d0
+      rkBhat(4)= -7.083333333333333333333333333333333d0
+      rkBhat(5)=  0.212500000000000000000000000000000d0
+
+      rkC(1)   = 0.25d0
+      rkC(2)   = 0.75d0
+      rkC(3)   = 0.55d0
+      rkC(4)   = 0.50d0
+      rkC(5)   = 1.00d0
+
+! Ynew = Yold + h*Sum_i {rkB_i*k_i} = Yold + Sum_i {rkD_i*Z_i}
+      rkD(1)   = 0.0d0
+      rkD(2)   = 0.0d0
+      rkD(3)   = 0.0d0
+      rkD(4)   = 0.0d0
+      rkD(5)   = 1.0d0
+
+! Err = h * Sum_i {(rkB_i-rkBhat_i)*k_i} = Sum_i {rkE_i*Z_i}
+      rkE(1)   =  0.5750d0
+      rkE(2)   =  0.2125d0
+      rkE(3)   = -4.6875d0
+      rkE(4)   =  4.2500d0
+      rkE(5)   =  0.1500d0
+
+! Local order of Err estimate
+      rkElo    = 4
+
+! h*Sum_j {rkA_ij*k_j} = Sum_j {rkTheta_ij*Z_j}
+      rkTheta(2,1) = 2.d0
+      rkTheta(3,1) = 1.680000000000000000000000000000000d0
+      rkTheta(3,2) = -.1600000000000000000000000000000000d0
+      rkTheta(4,1) = 1.308823529411764705882352941176471d0
+      rkTheta(4,2) = -.1838235294117647058823529411764706d0
+      rkTheta(4,3) = 0.1102941176470588235294117647058824d0
+      rkTheta(5,1) = -3.083333333333333333333333333333333d0
+      rkTheta(5,2) = -4.291666666666666666666666666666667d0
+      rkTheta(5,3) =  34.37500000000000000000000000000000d0
+      rkTheta(5,4) = -28.33333333333333333333333333333333d0
+
+! Starting value for Newton iterations: Z_i^0 = Sum_j {rkAlpha_ij*Z_j}
+      rkAlpha(2,1) = 3.
+      rkAlpha(3,1) = .8800000000000000000000000000000000d0
+      rkAlpha(3,2) = .4400000000000000000000000000000000d0
+      rkAlpha(4,1) = .1666666666666666666666666666666667d0
+      rkAlpha(4,2) = -.8333333333333333333333333333333333d-1
+      rkAlpha(4,3) = .9469696969696969696969696969696970d0
+      rkAlpha(5,1) = -6.d0
+      rkAlpha(5,2) = 9.d0
+      rkAlpha(5,3) = -56.81818181818181818181818181818182d0
+      rkAlpha(5,4) = 54.d0
+      
+      END SUBROUTINE Sdirk4b
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE Sdirk2a
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      sdMethod = S2A
+! Number of stages
+      rkS = 2
+
+! Method coefficients
+      rkGamma = .2928932188134524755991556378951510d0
+
+      rkA(1,1) = .2928932188134524755991556378951510d0
+      rkA(2,1) = .7071067811865475244008443621048490d0
+      rkA(2,2) = .2928932188134524755991556378951510d0
+
+      rkB(1)   = .7071067811865475244008443621048490d0
+      rkB(2)   = .2928932188134524755991556378951510d0
+
+      rkBhat(1)= .6666666666666666666666666666666667d0
+      rkBhat(2)= .3333333333333333333333333333333333d0
+
+      rkC(1)   = 0.292893218813452475599155637895151d0
+      rkC(2)   = 1.0d0
+
+! Ynew = Yold + h*Sum_i {rkB_i*k_i} = Yold + Sum_i {rkD_i*Z_i}
+      rkD(1)   = 0.0d0
+      rkD(2)   = 1.0d0
+
+! Err = h * Sum_i {(rkB_i-rkBhat_i)*k_i} = Sum_i {rkE_i*Z_i}
+      rkE(1)   =  0.4714045207910316829338962414032326d0
+      rkE(2)   = -0.1380711874576983496005629080698993d0
+
+! Local order of Err estimate
+      rkElo    = 2
+
+! h*Sum_j {rkA_ij*k_j} = Sum_j {rkTheta_ij*Z_j}
+      rkTheta(2,1) = 2.414213562373095048801688724209698d0
+
+! Starting value for Newton iterations: Z_i^0 = Sum_j {rkAlpha_ij*Z_j}
+      rkAlpha(2,1) = 3.414213562373095048801688724209698d0
+          
+      END SUBROUTINE Sdirk2a
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE Sdirk2b
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      sdMethod = S2B
+! Number of stages
+      rkS      = 2
+
+! Method coefficients
+      rkGamma  = 1.707106781186547524400844362104849d0
+
+      rkA(1,1) = 1.707106781186547524400844362104849d0
+      rkA(2,1) = -.707106781186547524400844362104849d0
+      rkA(2,2) = 1.707106781186547524400844362104849d0
+
+      rkB(1)   = -.707106781186547524400844362104849d0
+      rkB(2)   = 1.707106781186547524400844362104849d0
+
+      rkBhat(1)= .6666666666666666666666666666666667d0
+      rkBhat(2)= .3333333333333333333333333333333333d0
+
+      rkC(1)   = 1.707106781186547524400844362104849d0
+      rkC(2)   = 1.0d0
+
+! Ynew = Yold + h*Sum_i {rkB_i*k_i} = Yold + Sum_i {rkD_i*Z_i}
+      rkD(1)   = 0.0d0
+      rkD(2)   = 1.0d0
+
+! Err = h * Sum_i {(rkB_i-rkBhat_i)*k_i} = Sum_i {rkE_i*Z_i}
+      rkE(1)   = -.4714045207910316829338962414032326d0
+      rkE(2)   =  .8047378541243650162672295747365659d0
+
+! Local order of Err estimate
+      rkElo    = 2
+
+! h*Sum_j {rkA_ij*k_j} = Sum_j {rkTheta_ij*Z_j}
+      rkTheta(2,1) = -.414213562373095048801688724209698d0
+
+! Starting value for Newton iterations: Z_i^0 = Sum_j {rkAlpha_ij*Z_j}
+      rkAlpha(2,1) = .5857864376269049511983112757903019d0
+      
+      END SUBROUTINE Sdirk2b
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE Sdirk3a
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      sdMethod = S3A
+! Number of stages
+      rkS = 3
+
+! Method coefficients
+      rkGamma = .2113248654051871177454256097490213d0
+
+      rkA(1,1) = .2113248654051871177454256097490213d0
+      rkA(2,1) = .2113248654051871177454256097490213d0
+      rkA(2,2) = .2113248654051871177454256097490213d0
+      rkA(3,1) = .2113248654051871177454256097490213d0
+      rkA(3,2) = .5773502691896257645091487805019573d0
+      rkA(3,3) = .2113248654051871177454256097490213d0
+
+      rkB(1)   = .2113248654051871177454256097490213d0
+      rkB(2)   = .5773502691896257645091487805019573d0
+      rkB(3)   = .2113248654051871177454256097490213d0
+
+      rkBhat(1)= .2113248654051871177454256097490213d0
+      rkBhat(2)= .6477918909913548037576239837516312d0
+      rkBhat(3)= .1408832436034580784969504064993475d0
+
+      rkC(1)   = .2113248654051871177454256097490213d0
+      rkC(2)   = .4226497308103742354908512194980427d0
+      rkC(3)   = 1.d0
+
+! Ynew = Yold + h*Sum_i {rkB_i*k_i} = Yold + Sum_i {rkD_i*Z_i}
+      rkD(1)   = 0.d0
+      rkD(2)   = 0.d0
+      rkD(3)   = 1.d0
+
+! Err = h * Sum_i {(rkB_i-rkBhat_i)*k_i} = Sum_i {rkE_i*Z_i}
+      rkE(1)   =  0.9106836025229590978424821138352906d0
+      rkE(2)   = -1.244016935856292431175815447168624d0
+      rkE(3)   =  0.3333333333333333333333333333333333d0
+
+! Local order of Err estimate
+      rkElo    = 2
+
+! h*Sum_j {rkA_ij*k_j} = Sum_j {rkTheta_ij*Z_j}
+      rkTheta(2,1) =  1.0d0
+      rkTheta(3,1) = -1.732050807568877293527446341505872d0
+      rkTheta(3,2) =  2.732050807568877293527446341505872d0
+
+! Starting value for Newton iterations: Z_i^0 = Sum_j {rkAlpha_ij*Z_j}
+      rkAlpha(2,1) =   2.0d0
+      rkAlpha(3,1) = -12.92820323027550917410978536602349d0
+      rkAlpha(3,2) =   8.83012701892219323381861585376468d0
+
+      END SUBROUTINE Sdirk3a
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   END SUBROUTINE SDIRKADJ ! AND ALL ITS INTERNAL PROCEDURES
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE FUN_CHEM( T, Y, P )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      USE KPP_ROOT_Parameters, ONLY: NVAR
+      USE KPP_ROOT_Global, ONLY: TIME, FIX, RCONST
+      USE KPP_ROOT_Function, ONLY: Fun
+      USE KPP_ROOT_Rates, ONLY: Update_SUN, Update_RCONST, Update_PHOTO
+
+      KPP_REAL :: T, Told
+      KPP_REAL :: Y(NVAR), P(NVAR)
+      
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      
+      CALL Fun( Y, FIX, RCONST, P )
+      
+      TIME = Told
+      
+      END SUBROUTINE FUN_CHEM
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE JAC_CHEM( T, Y, JV )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      USE KPP_ROOT_Parameters, ONLY: NVAR, LU_NONZERO
+      USE KPP_ROOT_Global, ONLY: TIME, FIX, RCONST
+      USE KPP_ROOT_Jacobian, ONLY: Jac_SP,LU_IROW,LU_ICOL
+      USE KPP_ROOT_Rates, ONLY: Update_SUN, Update_RCONST, Update_PHOTO
+  
+      KPP_REAL ::  T, Told
+      KPP_REAL ::  Y(NVAR)
+#ifdef FULL_ALGEBRA
+      KPP_REAL :: JS(LU_NONZERO), JV(NVAR,NVAR)
+      INTEGER :: i, j
+#else
+      KPP_REAL :: JV(LU_NONZERO)
+#endif
+ 
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+
+#ifdef FULL_ALGEBRA
+      CALL Jac_SP(Y, FIX, RCONST, JS)
+      DO j=1,NVAR
+         DO j=1,NVAR
+          JV(i,j) = 0.0d0
+         END DO
+      END DO
+      DO i=1,LU_NONZERO
+         JV(LU_IROW(i),LU_ICOL(i)) = JS(i)
+      END DO
+#else
+      CALL Jac_SP(Y, FIX, RCONST, JV)
+#endif
+      TIME = Told
+
+      END SUBROUTINE JAC_CHEM
+
+END MODULE KPP_ROOT_Integrator
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/sdirk_soa.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/sdirk_soa.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/sdirk_soa.def	(revision 2696)
@@ -0,0 +1,20 @@
+ 
+#FUNCTION AGGREGATE
+#JACOBIAN SPARSE_LU_ROW
+
+#DOUBLE ON 
+#INTFILE sdirk_soa
+
+#INLINE F77_GLOBAL
+      REAL*8 STEPSTART
+      COMMON /GDATA/ STEPSTART
+#ENDINLINE
+
+#INLINE F77_INIT
+        STEPMIN=0.0001
+        STEPMAX=3600.
+        STEPSTART=STEPMIN
+#ENDINLINE
+
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/sdirk_soa.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/sdirk_soa.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/sdirk_soa.f90	(revision 2696)
@@ -0,0 +1,1758 @@
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
+!  Second Order Adjoint of SDIRK - Singly-Diagonally-Implicit Runge-Kutta !
+!            * Sdirk 2a, 2b: L-stable, 2 stages, order 2                  !
+!            * Sdirk 3a:     L-stable, 3 stages, order 2, adj-invariant   !
+!            * Sdirk 4a, 4b: L-stable, 5 stages, order 4                  !
+!  By default the code employs the KPP sparse linear algebra routines     !
+!  Compile with -DFULL_ALGEBRA to use full linear algebra (LAPACK)        !
+!                                                                         !
+!    (C)  Adrian Sandu, July 2007                                         !
+!    Virginia Polytechnic Institute and State University                  !
+!    Contact: sandu@cs.vt.edu                                             !
+!    This implementation is part of KPP - the Kinetic PreProcessor        !
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
+
+MODULE KPP_ROOT_Integrator
+
+  USE KPP_ROOT_Precision
+  USE KPP_ROOT_Global, ONLY: FIX, RCONST, TIME
+  USE KPP_ROOT_Parameters, ONLY: NVAR, NSPEC, NFIX, LU_NONZERO, NHESS
+  USE KPP_ROOT_JacobianSP, ONLY: LU_DIAG
+  USE KPP_ROOT_Jacobian, ONLY: Jac_SP_Vec, JacTR_SP_Vec
+  USE KPP_ROOT_LinearAlgebra, ONLY: KppDecomp, KppSolve,    &
+               KppSolveTR, Set2zero, WLAMCH, WCOPY, WAXPY, WSCAL, WADD
+  USE KPP_ROOT_Hessian
+  USE KPP_ROOT_Util
+  
+  IMPLICIT NONE
+  PUBLIC
+  SAVE
+  
+!~~~>  Statistics on the work performed by the SDIRK method
+  INTEGER, PARAMETER :: Nfun=1, Njac=2, Nstp=3, Nacc=4,  &
+           Nrej=5, Ndec=6, Nsol=7, Nsng=8,               &
+           Ntexit=1, Nhexit=2, Nhnew=3
+                 
+CONTAINS
+
+SUBROUTINE INTEGRATE_SOA( NSOA, Y, Y_tlm, Lambda, Sigma, &
+           TIN, TOUT, ATOL_adj, RTOL_adj,                &
+           ICNTRL_U, RCNTRL_U, ISTATUS_U, RSTATUS_U, Ierr_U )
+
+   USE KPP_ROOT_Parameters
+   USE KPP_ROOT_Global
+   IMPLICIT NONE
+
+!~~~> Y - Concentrations
+   KPP_REAL :: Y(NVAR)
+!~~~> NSOA - No. of vectors U_j for which
+!            Hessian*U_j is computed     
+   INTEGER :: NSOA
+!~~~> Y_tlm - Forward sensitivities
+!             Initially Y_tlm(1:NVAR,j) = U_j
+   KPP_REAL :: Y_tlm(NVAR,NSOA)
+!~~~> ADJ - No. of cost functionals (always 1)     
+   INTEGER, PARAMETER :: NADJ = 1
+!~~~> Lambda - Sensitivities w.r.t. concentrations
+!     Note: Lambda (1:NVAR,j) contains sensitivities of
+!           the j-th cost functional w.r.t. Y(1:NVAR), j=1...NADJ
+   KPP_REAL  :: Lambda(NVAR,NADJ)
+!~~~> Sigma - Second order adjoint sensitivities
+!     Note: Sigma(1:NVAR,j) = Hessian*U_j
+   KPP_REAL  :: Sigma(NVAR,NSOA)
+!~~~> Tolerances for adjoint calculations
+!     (used for full continuous adjoint, and for controlling
+!      iterations when used to solve the discrete adjoint)   
+   KPP_REAL, INTENT(IN)  :: ATOL_adj(NVAR,NADJ), RTOL_adj(NVAR,NADJ)
+   KPP_REAL, INTENT(IN) :: TIN  ! Start Time
+   KPP_REAL, INTENT(IN) :: TOUT ! End Time
+   ! Optional input parameters and statistics
+   INTEGER,       INTENT(IN),  OPTIONAL :: ICNTRL_U(20)
+   KPP_REAL, INTENT(IN),  OPTIONAL :: RCNTRL_U(20)
+   INTEGER,       INTENT(OUT), OPTIONAL :: ISTATUS_U(20)
+   KPP_REAL, INTENT(OUT), OPTIONAL :: RSTATUS_U(20)
+   INTEGER,       INTENT(OUT), OPTIONAL :: Ierr_U
+
+   INTEGER, SAVE :: Ntotal = 0
+   KPP_REAL :: RCNTRL(20), RSTATUS(20), T1, T2
+   INTEGER       :: ICNTRL(20), ISTATUS(20), Ierr
+
+   ICNTRL(:)  = 0
+   RCNTRL(:)  = 0.0_dp
+   ISTATUS(:) = 0
+   RSTATUS(:) = 0.0_dp
+
+   !~~~> fine-tune the integrator:
+   ICNTRL(5) = 8    ! Max no. of Newton iterations
+   ICNTRL(7) = 1    ! Adjoint solution by: 0=Newton, 1=direct
+   ICNTRL(8) = 1    ! Save fwd LU factorization: 0 = do *not* save, 1 = save
+
+   ! If optional parameters are given, and if they are >0, 
+   ! then they overwrite default settings. 
+   IF (PRESENT(ICNTRL_U)) THEN
+     WHERE(ICNTRL_U(:) > 0) ICNTRL(:) = ICNTRL_U(:)
+   END IF
+   IF (PRESENT(RCNTRL_U)) THEN
+     WHERE(RCNTRL_U(:) > 0) RCNTRL(:) = RCNTRL_U(:)
+   END IF
+   
+   
+   T1 = TIN; T2 = TOUT
+   CALL SDIRK_SOA(NVAR, NSOA, T1, T2, Y, Y_tlm, Lambda, Sigma,  &
+                  RTOL, ATOL, ATOL_adj, RTOL_adj,               &
+                  RCNTRL, ICNTRL, RSTATUS, ISTATUS, Ierr )
+
+   !~~~> Debug option: number of steps
+   ! Ntotal = Ntotal + ISTATUS(Nstp)
+   ! WRITE(6,777) ISTATUS(Nstp),Ntotal,VAR(ind_O3),VAR(ind_NO2)
+   ! 777 FORMAT('NSTEPS=',I5,' (',I5,')  O3=',E24.14,'  NO2=',E24.14)    
+
+   IF (Ierr < 0) THEN
+        PRINT *,'SDIRK: Unsuccessful exit at T=',TIN,' (Ierr=',Ierr,')'
+   ENDIF
+   
+   ! if optional parameters are given for output they to return information
+   IF (PRESENT(ISTATUS_U)) ISTATUS_U(:) = ISTATUS(:)
+   IF (PRESENT(RSTATUS_U)) RSTATUS_U(:) = RSTATUS(:)
+   IF (PRESENT(Ierr_U))    Ierr_U       = Ierr
+
+   END SUBROUTINE INTEGRATE_SOA
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE SDIRK_SOA(N, NSOA, Tinitial, Tfinal,              &
+                        Y, Y_tlm, Lambda, Sigma,                &
+                        RelTol, AbsTol, RelTol_adj, AbsTol_adj, &
+                        RCNTRL, ICNTRL, RSTATUS, ISTATUS, Ierr)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!    Solves the system y'=F(t,y) using a Singly-Diagonally-Implicit
+!    Runge-Kutta (SDIRK) method.
+!
+!    This implementation is based on the book and the code Sdirk4:
+!
+!      E. Hairer and G. Wanner
+!      "Solving ODEs II. Stiff and differential-algebraic problems".
+!      Springer series in computational mathematics, Springer-Verlag, 1996.
+!    This code is based on the SDIRK4 routine in the above book.
+!
+!    Methods:
+!            * Sdirk 2a, 2b: L-stable, 2 stages, order 2                  
+!            * Sdirk 3a:     L-stable, 3 stages, order 2, adjoint-invariant   
+!            * Sdirk 4a, 4b: L-stable, 5 stages, order 4                  
+!
+!    (C)  Adrian Sandu, July 2005
+!    Virginia Polytechnic Institute and State University
+!    Contact: sandu@cs.vt.edu
+!    Revised by Philipp Miehe and Adrian Sandu, May 2006                  
+!    This implementation is part of KPP - the Kinetic PreProcessor
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>   INPUT ARGUMENTS:
+!
+!-     Y(NVAR)    = vector of initial conditions (at T=Tinitial)
+!-    [Tinitial,Tfinal]  = time range of integration
+!     (if Tinitial>Tfinal the integration is performed backwards in time)
+!-    RelTol, AbsTol = user precribed accuracy
+!- SUBROUTINE ode_Fun( T, Y, Ydot ) = ODE function,
+!                       returns Ydot = Y' = F(T,Y)
+!- SUBROUTINE ode_Fun( T, Y, Ydot ) = Jacobian of the ODE function,
+!                       returns Jcb = dF/dY
+!-    ICNTRL(1:20)    = integer inputs parameters
+!-    RCNTRL(1:20)    = real inputs parameters
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>     OUTPUT ARGUMENTS:
+!
+!-    Y(NVAR)         -> vector of final states (at T->Tfinal)
+!-    ISTATUS(1:20)   -> integer output parameters
+!-    RSTATUS(1:20)   -> real output parameters
+!-    Ierr            -> job status upon return
+!                        success (positive value) or
+!                        failure (negative value)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>     INPUT PARAMETERS:
+!
+!    Note: For input parameters equal to zero the default values of the
+!       corresponding variables are used.
+!
+!    Note: For input parameters equal to zero the default values of the
+!          corresponding variables are used.
+!~~~>  
+!    ICNTRL(1) = not used
+!
+!    ICNTRL(2) = 0: AbsTol, RelTol are NVAR-dimensional vectors
+!              = 1: AbsTol, RelTol are scalars
+!
+!    ICNTRL(3) = Method
+!
+!    ICNTRL(4)  -> maximum number of integration steps
+!        For ICNTRL(4)=0 the default value of 100000 is used
+!
+!    ICNTRL(5)  -> maximum number of Newton iterations
+!        For ICNTRL(5)=0 the default value of 8 is used
+!
+!    ICNTRL(6)  -> starting values of Newton iterations:
+!        ICNTRL(6)=0 : starting values are interpolated (the default)
+!        ICNTRL(6)=1 : starting values are zero
+!
+!    ICNTRL(7)  -> method to solve TLM equations:
+!        ICNTRL(7)=0 : modified Newton re-using LU (the default)
+!        ICNTRL(7)=1 : direct solution (additional one LU factorization per stage)
+!
+!    ICNTRL(9) -> switch for TLM Newton iteration error estimation strategy
+!		ICNTRL(9) = 0: base number of iterations as forward solution
+!		ICNTRL(9) = 1: use RTOL_tlm and ATOL_tlm to calculate
+!				error estimation for TLM at Newton stages
+!
+!    ICNTRL(12) -> switch for TLM truncation error control
+!		ICNTRL(12) = 0: TLM error is not used
+!		ICNTRL(12) = 1: TLM error is computed and used
+!
+!
+!~~~>  Real parameters
+!
+!    RCNTRL(1)  -> Hmin, lower bound for the integration step size
+!                  It is strongly recommended to keep Hmin = ZERO
+!    RCNTRL(2)  -> Hmax, upper bound for the integration step size
+!    RCNTRL(3)  -> Hstart, starting value for the integration step size
+!
+!    RCNTRL(4)  -> FacMin, lower bound on step decrease factor (default=0.2)
+!    RCNTRL(5)  -> FacMax, upper bound on step increase factor (default=6)
+!    RCNTRL(6)  -> FacRej, step decrease factor after multiple rejections
+!                 (default=0.1)
+!    RCNTRL(7)  -> FacSafe, by which the new step is slightly smaller
+!                  than the predicted value  (default=0.9)
+!    RCNTRL(8)  -> ThetaMin. If Newton convergence rate smaller
+!                  than ThetaMin the Jacobian is not recomputed;
+!                  (default=0.001)
+!    RCNTRL(9)  -> NewtonTol, stopping criterion for Newton's method
+!                  (default=0.03)
+!    RCNTRL(10) -> Qmin
+!    RCNTRL(11) -> Qmax. If Qmin < Hnew/Hold < Qmax, then the
+!                  step size is kept constant and the LU factorization
+!                  reused (default Qmin=1, Qmax=1.2)
+!
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>     OUTPUT PARAMETERS:
+!
+!    Note: each call to Rosenbrock adds the current no. of fcn calls
+!      to previous value of ISTATUS(1), and similar for the other params.
+!      Set ISTATUS(1:10) = 0 before call to avoid this accumulation.
+!
+!    ISTATUS(1) = No. of function calls
+!    ISTATUS(2) = No. of jacobian calls
+!    ISTATUS(3) = No. of steps
+!    ISTATUS(4) = No. of accepted steps
+!    ISTATUS(5) = No. of rejected steps (except at the beginning)
+!    ISTATUS(6) = No. of LU decompositions
+!    ISTATUS(7) = No. of forward/backward substitutions
+!    ISTATUS(8) = No. of singular matrix decompositions
+!
+!    RSTATUS(1)  -> Texit, the time corresponding to the
+!                   computed Y upon return
+!    RSTATUS(2)  -> Hexit,last accepted step before return
+!    RSTATUS(3)  -> Hnew, last predicted step before return
+!        For multiple restarts, use Hnew as Hstart in the following run
+!
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+
+
+! Arguments      
+      INTEGER, PARAMETER           :: NADJ = 1
+      INTEGER, INTENT(IN)          :: N, NSOA
+      KPP_REAL, INTENT(INOUT) :: Y(NVAR), Y_tlm(NVAR,NSOA)
+      KPP_REAL, INTENT(INOUT) :: Lambda(NVAR,NADJ)
+      KPP_REAL, INTENT(INOUT) :: Sigma(NVAR,NSOA)
+      INTEGER, INTENT(IN)          :: ICNTRL(20)
+      KPP_REAL, INTENT(IN)    :: Tinitial, Tfinal, &
+                    RelTol(N), AbsTol(N), RCNTRL(20), &
+		    RelTol_adj(N,NSOA), AbsTol_adj(N,NSOA)
+      INTEGER, INTENT(OUT)         :: Ierr
+      INTEGER, INTENT(INOUT)       :: ISTATUS(20) 
+      KPP_REAL, INTENT(OUT)        :: RSTATUS(20)
+       
+!~~~>  SDIRK method coefficients, up to 5 stages
+      INTEGER, PARAMETER :: Smax = 5
+      INTEGER, PARAMETER :: S2A=1, S2B=2, S3A=3, S4A=4, S4B=5
+      KPP_REAL :: rkGamma, rkA(Smax,Smax), rkB(Smax), rkC(Smax), &
+                       rkD(Smax),  rkE(Smax), rkBhat(Smax), rkELO,    &
+                       rkAlpha(Smax,Smax), rkTheta(Smax,Smax)
+      INTEGER :: sdMethod, rkS ! The number of stages
+
+!~~~>  Checkpoints in memory buffers
+      INTEGER :: stack_ptr = 0 ! last written entry in checkpoint
+      KPP_REAL, DIMENSION(:),     POINTER :: chk_H, chk_T
+      KPP_REAL, DIMENSION(:,:),   POINTER :: chk_Y
+      KPP_REAL, DIMENSION(:,:,:), POINTER :: chk_Z
+      KPP_REAL, DIMENSION(:,:,:),   POINTER :: chk_Y_tlm
+      KPP_REAL, DIMENSION(:,:,:,:), POINTER :: chk_Z_tlm
+      INTEGER,       DIMENSION(:,:),   POINTER :: chk_P
+#ifdef FULL_ALGEBRA
+      KPP_REAL, DIMENSION(:,:,:), POINTER :: chk_J
+#else
+      KPP_REAL, DIMENSION(:,:),   POINTER :: chk_J
+#endif
+
+!~~~>   Local variables      
+      KPP_REAL :: Hmin, Hmax, Hstart, Roundoff,    &
+                       FacMin, Facmax, FacSafe, FacRej, &
+                       ThetaMin, NewtonTol, Qmin, Qmax
+      LOGICAL       :: SaveLU, DirectADJ                 
+      INTEGER       :: ITOL, NewtonMaxit, Max_no_steps, i
+      LOGICAL       :: StartNewton, DirectTLM, TLMNewtonEst, TLMtruncErr
+      KPP_REAL, PARAMETER :: ZERO = 0.0d0, ONE = 1.0d0
+
+       
+      Ierr = 0
+      ISTATUS(1:20) = 0
+      RSTATUS(1:20) = ZERO
+
+!~~~>  For Scalar tolerances (ICNTRL(2).NE.0)  the code uses AbsTol(1) and RelTol(1)
+!   For Vector tolerances (ICNTRL(2) == 0) the code uses AbsTol(1:NVAR) and RelTol(1:NVAR)
+      IF (ICNTRL(2) == 0) THEN
+         ITOL = 1
+      ELSE
+         ITOL = 0
+      END IF
+
+!~~~> ICNTRL(3) - method selection       
+      SELECT CASE (ICNTRL(3))
+      CASE (0,1)
+         CALL Sdirk2a
+      CASE (2)
+         CALL Sdirk2b
+      CASE (3)
+         CALL Sdirk3a
+      CASE (4)
+         CALL Sdirk4a
+      CASE (5)
+         CALL Sdirk4b
+      CASE DEFAULT
+         CALL Sdirk2a
+      END SELECT
+      
+!~~~>   The maximum number of time steps admitted
+      IF (ICNTRL(4) == 0) THEN
+         Max_no_steps = 200000
+      ELSEIF (ICNTRL(4) > 0) THEN
+         Max_no_steps=ICNTRL(4)
+      ELSE
+         PRINT * ,'User-selected ICNTRL(4)=',ICNTRL(4)
+         CALL SDIRK_ErrorMsg(-1,Tinitial,ZERO,Ierr)
+   END IF
+   !~~~> The maximum number of Newton iterations admitted
+      IF(ICNTRL(5) == 0)THEN
+         NewtonMaxit=8
+      ELSE
+         NewtonMaxit=ICNTRL(5)
+         IF(NewtonMaxit <= 0)THEN
+             PRINT * ,'User-selected ICNTRL(5)=',ICNTRL(5)
+             CALL SDIRK_ErrorMsg(-2,Tinitial,ZERO,Ierr)
+         END IF
+      END IF
+!~~~> StartNewton:  Use extrapolation for starting values of Newton iterations
+      IF (ICNTRL(6) == 0) THEN
+         StartNewton = .TRUE.
+      ELSE
+         StartNewton = .FALSE.
+      END IF      
+
+!~~~> Solve ADJ equations directly or by Newton iterations 
+      DirectADJ = (ICNTRL(7) == 1)
+ 
+!~~~> Save or not the forward LU factorization
+      SaveLU = (ICNTRL(8) /= 0) .AND. (.NOT.DirectADJ)
+
+!~~~> Newton iteration error control selection  
+      IF (ICNTRL(9) == 0) THEN 
+         TLMNewtonEst = .FALSE.
+      ELSE
+         TLMNewtonEst = .TRUE.
+      END IF      
+!~~~> TLM truncation error control selection  
+      IF (ICNTRL(12) == 0) THEN 
+         TLMtruncErr = .FALSE.
+      ELSE
+         TLMtruncErr = .TRUE.
+      END IF      
+           
+!~~~>  Unit roundoff (1+Roundoff>1)
+      Roundoff = WLAMCH('E')
+
+!~~~>  Lower bound on the step size: (positive value)
+      IF (RCNTRL(1) == ZERO) THEN
+         Hmin = ZERO
+      ELSEIF (RCNTRL(1) > ZERO) THEN
+         Hmin = RCNTRL(1)
+      ELSE
+         PRINT * , 'User-selected RCNTRL(1)=', RCNTRL(1)
+         CALL SDIRK_ErrorMsg(-3,Tinitial,ZERO,Ierr)
+      END IF
+   
+!~~~>  Upper bound on the step size: (positive value)
+      IF (RCNTRL(2) == ZERO) THEN
+         Hmax = ABS(Tfinal-Tinitial)
+      ELSEIF (RCNTRL(2) > ZERO) THEN
+         Hmax = MIN(ABS(RCNTRL(2)),ABS(Tfinal-Tinitial))
+      ELSE
+         PRINT * , 'User-selected RCNTRL(2)=', RCNTRL(2)
+         CALL SDIRK_ErrorMsg(-3,Tinitial,ZERO,Ierr)
+      END IF
+   
+!~~~>  Starting step size: (positive value)
+      IF (RCNTRL(3) == ZERO) THEN
+         Hstart = MAX(Hmin,Roundoff)
+      ELSEIF (RCNTRL(3) > ZERO) THEN
+         Hstart = MIN(ABS(RCNTRL(3)),ABS(Tfinal-Tinitial))
+      ELSE
+         PRINT * , 'User-selected Hstart: RCNTRL(3)=', RCNTRL(3)
+         CALL SDIRK_ErrorMsg(-3,Tinitial,ZERO,Ierr)
+      END IF
+   
+!~~~>  Step size can be changed s.t.  FacMin < Hnew/Hexit < FacMax
+      IF (RCNTRL(4) == ZERO) THEN
+         FacMin = 0.2_dp
+      ELSEIF (RCNTRL(4) > ZERO) THEN
+         FacMin = RCNTRL(4)
+      ELSE
+         PRINT * , 'User-selected FacMin: RCNTRL(4)=', RCNTRL(4)
+         CALL SDIRK_ErrorMsg(-4,Tinitial,ZERO,Ierr)
+      END IF
+      IF (RCNTRL(5) == ZERO) THEN
+         FacMax = 10.0_dp
+      ELSEIF (RCNTRL(5) > ZERO) THEN
+         FacMax = RCNTRL(5)
+      ELSE
+         PRINT * , 'User-selected FacMax: RCNTRL(5)=', RCNTRL(5)
+         CALL SDIRK_ErrorMsg(-4,Tinitial,ZERO,Ierr)
+      END IF
+!~~~>   FacRej: Factor to decrease step after 2 succesive rejections
+      IF (RCNTRL(6) == ZERO) THEN
+         FacRej = 0.1_dp
+      ELSEIF (RCNTRL(6) > ZERO) THEN
+         FacRej = RCNTRL(6)
+      ELSE
+         PRINT * , 'User-selected FacRej: RCNTRL(6)=', RCNTRL(6)
+         CALL SDIRK_ErrorMsg(-4,Tinitial,ZERO,Ierr)
+      END IF
+!~~~>   FacSafe: Safety Factor in the computation of new step size
+      IF (RCNTRL(7) == ZERO) THEN
+         FacSafe = 0.9_dp
+      ELSEIF (RCNTRL(7) > ZERO) THEN
+         FacSafe = RCNTRL(7)
+      ELSE
+         PRINT * , 'User-selected FacSafe: RCNTRL(7)=', RCNTRL(7)
+         CALL SDIRK_ErrorMsg(-4,Tinitial,ZERO,Ierr)
+      END IF
+
+!~~~> ThetaMin: decides whether the Jacobian should be recomputed
+      IF(RCNTRL(8) == 0.D0)THEN
+         ThetaMin = 1.0d-3
+      ELSE
+         ThetaMin = RCNTRL(8)
+      END IF
+
+!~~~> Stopping criterion for Newton's method
+      IF(RCNTRL(9) == ZERO)THEN
+         NewtonTol = 3.0d-2
+      ELSE
+         NewtonTol = RCNTRL(9)
+      END IF
+
+!~~~> Qmin, Qmax: IF Qmin < Hnew/Hold < Qmax, STEP SIZE = CONST.
+      IF(RCNTRL(10) == ZERO)THEN
+         Qmin=ONE
+      ELSE
+         Qmin=RCNTRL(10)
+      END IF
+      IF(RCNTRL(11) == ZERO)THEN
+         Qmax=1.2D0
+      ELSE
+         Qmax=RCNTRL(11)
+      END IF
+
+!~~~>  Check if tolerances are reasonable
+      IF (ITOL == 0) THEN
+         IF (AbsTol(1) <= ZERO .OR. RelTol(1) <= 10.D0*Roundoff) THEN
+            PRINT * , ' Scalar AbsTol = ',AbsTol(1)
+            PRINT * , ' Scalar RelTol = ',RelTol(1)
+            CALL SDIRK_ErrorMsg(-5,Tinitial,ZERO,Ierr)
+         END IF
+      ELSE
+         DO i=1,N
+            IF (AbsTol(i) <= 0.D0.OR.RelTol(i) <= 10.D0*Roundoff) THEN
+              PRINT * , ' AbsTol(',i,') = ',AbsTol(i)
+              PRINT * , ' RelTol(',i,') = ',RelTol(i)
+              CALL SDIRK_ErrorMsg(-5,Tinitial,ZERO,Ierr)
+            END IF
+         END DO
+      END IF
+    
+     IF (Ierr < 0) RETURN
+    
+!~~~>  Allocate memory buffers    
+    CALL SDIRK_AllocBuffers
+
+!~~~>  Call forward integration    
+    CALL SDIRK_FwdTlmInt( N, NSOA, Tinitial, Tfinal, Y, Y_tlm, Ierr )
+
+!~~~>  Call adjoint integration    
+    CALL SDIRK_SoaInt( N, NSOA, Lambda, Sigma, Ierr )
+
+!~~~>  Free memory buffers    
+    CALL SDIRK_FreeBuffers
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   CONTAINS  !  Procedures internal to SDIRK_SOA
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE SDIRK_FwdTlmInt( N,NTLM,Tinitial,Tfinal,Y,Y_tlm,Ierr )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      USE KPP_ROOT_Parameters
+      IMPLICIT NONE
+
+!~~~> Arguments:      
+      INTEGER, INTENT(IN) :: N, NTLM
+      KPP_REAL, INTENT(INOUT) :: Y(N), Y_tlm(N,NTLM)
+      KPP_REAL, INTENT(IN) :: Tinitial, Tfinal
+      INTEGER, INTENT(OUT) :: Ierr
+      
+!~~~> Local variables:      
+      KPP_REAL :: Z(NVAR,rkS), G(NVAR), TMP(NVAR),         &   
+                       NewtonRate, SCAL(NVAR), DZ(NVAR),        &
+                       T, H, Theta, Hratio, NewtonPredictedErr, &
+                       Qnewton, Err, Fac, Hnew, Tdirection,     &
+                       NewtonIncrement, NewtonIncrementOld, &
+		       SCAL_tlm(NVAR), Yerr(N), Yerr_tlm(N,NTLM), ThetaTLM
+      KPP_REAL :: Z_tlm(NVAR,rkS,NTLM)
+      INTEGER :: itlm, j, IER, istage, NewtonIter, saveNiter, NewtonIterTLM
+      INTEGER :: IP(NVAR), IP_tlm(NVAR)
+      LOGICAL :: Reject, FirstStep, SkipJac, SkipLU, NewtonDone
+      
+#ifdef FULL_ALGEBRA      
+      KPP_REAL, DIMENSION(NVAR,NVAR)  :: FJAC, E, Jac, E_tlm
+#else      
+      KPP_REAL, DIMENSION(LU_NONZERO) :: FJAC, E, Jac, E_tlm
+#endif      
+      KPP_REAL, PARAMETER :: ZERO = 0.0d0, ONE = 1.0d0
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Initializations
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      T = Tinitial
+      Tdirection = SIGN(ONE,Tfinal-Tinitial)
+      H = MAX(ABS(Hmin),ABS(Hstart))
+      IF (ABS(H) <= 10.D0*Roundoff) H=1.0D-6
+      H=MIN(ABS(H),Hmax)
+      H=SIGN(H,Tdirection)
+      SkipLU  = .FALSE.
+      SkipJac = .FALSE.
+      Reject =  .FALSE.
+      FirstStep=.TRUE.
+
+      CALL SDIRK_ErrorScale(N, ITOL, AbsTol, RelTol, Y, SCAL)
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Time loop begins
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Tloop: DO WHILE ( (Tfinal-T)*Tdirection - Roundoff > ZERO )
+
+
+!~~~>  Compute E = 1/(h*gamma)-Jac and its LU decomposition
+      IF ( .NOT.SkipLU ) THEN ! This time around skip the Jac update and LU
+         CALL SDIRK_PrepareMatrix ( H, T, Y, FJAC, &
+                   SkipJac, SkipLU, E, IP, Reject, IER )
+         IF (IER /= 0) THEN
+             CALL SDIRK_ErrorMsg(-8,T,H,Ierr); RETURN
+         END IF
+      END IF      
+
+      IF (ISTATUS(Nstp) > Max_no_steps) THEN
+             CALL SDIRK_ErrorMsg(-6,T,H,Ierr); RETURN
+      END IF   
+      IF ( (T+0.1d0*H == T) .OR. (ABS(H) <= Roundoff) ) THEN
+             CALL SDIRK_ErrorMsg(-7,T,H,Ierr); RETURN
+      END IF   
+
+stages:DO istage = 1, rkS
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Simplified Newton iterations
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+!~~~>  Starting values for Newton iterations
+       CALL Set2zero(N,Z(1,istage))
+       
+!~~~>   Prepare the loop-independent part of the right-hand side
+       CALL Set2zero(N,G)
+       IF (istage > 1) THEN
+           DO j = 1, istage-1
+               ! Gj(:) = sum_j Theta(i,j)*Zj(:) = H * sum_j A(i,j)*Fun(Zj(:))
+               CALL WAXPY(N,rkTheta(istage,j),Z(1,j),1,G,1)
+               ! Zi(:) = sum_j Alpha(i,j)*Zj(:)
+	       IF (StartNewton) THEN
+                 CALL WAXPY(N,rkAlpha(istage,j),Z(1,j),1,Z(1,istage),1)
+	       END IF
+           END DO
+       END IF
+
+       !~~~>  Initializations for Newton iteration
+       NewtonDone = .FALSE.
+       Fac = 0.5d0 ! Step reduction factor if too many iterations
+            
+NewtonLoop:DO NewtonIter = 1, NewtonMaxit
+
+!~~~>   Prepare the loop-dependent part of the right-hand side
+ 	    CALL WADD(N,Y,Z(1,istage),TMP)         	! TMP <- Y + Zi
+            CALL FUN_CHEM(T+rkC(istage)*H,TMP,DZ)	! DZ <- Fun(Y+Zi)
+            ISTATUS(Nfun) = ISTATUS(Nfun) + 1
+!            DZ(1:N) = G(1:N) - Z(1:N,istage) + (H*rkGamma)*DZ(1:N)
+	    CALL WSCAL(N, H*rkGamma, DZ, 1)
+	    CALL WAXPY (N, -ONE, Z(1,istage), 1, DZ, 1)
+            CALL WAXPY (N, ONE, G,1, DZ,1)
+
+!~~~>   Solve the linear system
+            CALL SDIRK_Solve ( 'N', H, N, E, IP, IER, DZ )
+            
+!~~~>   Check convergence of Newton iterations
+            CALL SDIRK_ErrorNorm(N, DZ, SCAL, NewtonIncrement)
+            IF ( NewtonIter == 1 ) THEN
+                Theta      = ABS(ThetaMin)
+                NewtonRate = 2.0d0 
+            ELSE
+                Theta = NewtonIncrement/NewtonIncrementOld
+                IF (Theta < 0.99d0) THEN
+                    NewtonRate = Theta/(ONE-Theta)
+                    ! Predict error at the end of Newton process 
+                    NewtonPredictedErr = NewtonIncrement &
+                               *Theta**(NewtonMaxit-NewtonIter)/(ONE-Theta)
+                    IF (NewtonPredictedErr >= NewtonTol) THEN
+                      ! Non-convergence of Newton: predicted error too large
+                      Qnewton = MIN(10.0d0,NewtonPredictedErr/NewtonTol)
+                      Fac = 0.8d0*Qnewton**(-ONE/(1+NewtonMaxit-NewtonIter))
+                      EXIT NewtonLoop
+                    END IF
+                ELSE ! Non-convergence of Newton: Theta too large
+                    EXIT NewtonLoop
+                END IF
+            END IF
+            NewtonIncrementOld = NewtonIncrement
+            ! Update solution: Z(:) <-- Z(:)+DZ(:)
+            CALL WAXPY(N,ONE,DZ,1,Z(1,istage),1) 
+            
+            ! Check error in Newton iterations
+            NewtonDone = (NewtonRate*NewtonIncrement <= NewtonTol)
+            IF (NewtonDone) THEN
+    	       ! Tune error in TLM variables by defining the minimal number of Newton iterations.
+	       saveNiter = NewtonIter+1
+	       EXIT NewtonLoop
+	    END IF
+            
+            END DO NewtonLoop
+            
+            IF (.NOT.NewtonDone) THEN
+                 !CALL RK_ErrorMsg(-12,T,H,Ierr);
+                 H = Fac*H; Reject=.TRUE.
+                 SkipJac = .TRUE.; SkipLU = .FALSE.
+                 CYCLE Tloop
+            END IF
+
+!~~~>  End of simplified Newton iterations for forward variables
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Solve for TLM variables
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+         TMP(1:N) = Y(1:N) + Z(1:N,istage)
+         SkipJac = .FALSE.
+         CALL SDIRK_PrepareMatrix ( H, T+rkC(istage)*H, TMP, Jac, &
+                   SkipJac, SkipLU, E_tlm, IP_tlm, Reject, IER )
+         IF (IER /= 0) CYCLE TLoop
+
+TlmL:    DO itlm = 1, NTLM
+            G(1:N) = Y_tlm(1:N,itlm)
+            IF (istage > 1) THEN
+              ! Gj(:) = sum_j Theta(i,j)*Zj_tlm(:) 
+              !       = H * sum_j A(i,j)*Jac(Zj(:))*(Yj_tlm+Zj_tlm)
+              DO j = 1, istage-1
+                  CALL WAXPY(N,rkTheta(istage,j),Z_tlm(1,j,itlm),1,G,1)
+              END DO
+            END IF
+            CALL SDIRK_Solve ( 'N', H, N, E_tlm, IP_tlm, IER, G )
+            Z_tlm(1:N,istage,itlm) = G(1:N) - Y_tlm(1:N,itlm)
+         END DO TlmL
+
+
+   END DO stages
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Error estimation 
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      ISTATUS(Nstp) = ISTATUS(Nstp) + 1
+      CALL Set2zero(N,Yerr)
+      DO i = 1,rkS
+         IF (rkE(i)/=ZERO) CALL WAXPY(N,rkE(i),Z(1,i),1,Yerr,1)
+      END DO  
+
+      CALL SDIRK_Solve ( 'N', H, N, E, IP, IER, Yerr )
+      CALL SDIRK_ErrorNorm(N, Yerr, SCAL, Err)
+
+!~~~> Computation of new step size Hnew
+      Fac  = FacSafe*(Err)**(-ONE/rkELO)
+      Fac  = MAX(FacMin,MIN(FacMax,Fac))
+      Hnew = H*Fac
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Accept/Reject step
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+accept: IF ( Err < ONE ) THEN !~~~> Step is accepted
+
+         FirstStep=.FALSE.
+         ISTATUS(Nacc) = ISTATUS(Nacc) + 1
+
+!~~~> Checkpoint (old) solution
+         CALL SDIRK_Push( T, H, Y, Z, Y_tlm, Z_tlm, E, IP )
+
+!~~~> Update time and solution
+         T  =  T + H
+         ! Y(:) <-- Y(:) + Sum_j rkD(j)*Z_j(:)
+         DO i = 1,rkS 
+            IF (rkD(i)/=ZERO) THEN
+                 CALL WAXPY(N,rkD(i),Z(1,i),1,Y,1)
+                 DO itlm = 1, NTLM
+                   CALL WAXPY(N,rkD(i),Z_tlm(1,i,itlm),1,Y_tlm(1,itlm),1)
+                 END DO  
+            END IF     
+         END DO  
+       
+!~~~> Update scaling coefficients
+         CALL SDIRK_ErrorScale(N, ITOL, AbsTol, RelTol, Y, SCAL)
+
+!~~~> Next time step
+         Hnew = Tdirection*MIN(ABS(Hnew),Hmax)
+         ! Last T and H
+         RSTATUS(Ntexit) = T
+         RSTATUS(Nhexit) = H
+         RSTATUS(Nhnew)  = Hnew
+         ! No step increase after a rejection
+         IF (Reject) Hnew = Tdirection*MIN(ABS(Hnew),ABS(H))
+         Reject = .FALSE.
+         IF ((T+Hnew/Qmin-Tfinal)*Tdirection > ZERO) THEN
+            H = Tfinal-T
+         ELSE
+            Hratio=Hnew/H
+            ! If step not changed too much keep Jacobian and reuse LU
+            SkipLU = ( (Theta <= ThetaMin) .AND. (Hratio >= Qmin) &
+                                     .AND. (Hratio <= Qmax) )
+            ! For TLM: do not skip LU (decrease TLM error)
+   	    SkipLU = .FALSE.
+            IF (.NOT.SkipLU) H = Hnew
+         END IF
+         ! If convergence is fast enough, do not update Jacobian
+!         SkipJac = (Theta <= ThetaMin)
+         SkipJac = .FALSE.
+
+      ELSE accept !~~~> Step is rejected
+
+         IF (FirstStep .OR. Reject) THEN
+             H = FacRej*H
+         ELSE
+             H = Hnew
+         END IF
+         Reject = .TRUE.
+         SkipJac = .TRUE.
+         SkipLU  = .FALSE. 
+         IF (ISTATUS(Nacc) >= 1) ISTATUS(Nrej) = ISTATUS(Nrej) + 1
+         
+      END IF accept
+      
+      END DO Tloop
+
+      ! Successful return
+      Ierr  = 1
+  
+      END SUBROUTINE SDIRK_FwdTlmInt
+
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE SDIRK_SoaInt( N, NSOA, Lambda, Sigma, Ierr )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      USE KPP_ROOT_Parameters
+      IMPLICIT NONE
+
+      INTEGER, PARAMETER  :: NADJ = 1
+!~~~> Arguments:      
+      INTEGER, INTENT(IN) :: N, NSOA
+      KPP_REAL, INTENT(INOUT) :: Lambda(NVAR,NADJ)
+      KPP_REAL, INTENT(INOUT) :: Sigma(NVAR,NSOA)
+      INTEGER, INTENT(OUT) :: Ierr
+      
+!~~~> Local variables:      
+      KPP_REAL :: Y(NVAR)
+      KPP_REAL :: Z(NVAR,Smax), U(NVAR,Smax),        &
+                       TMP(NVAR), G1(NVAR),               &   
+                       NewtonRate, SCAL(NVAR), DU(NVAR),  &
+                       T, H, Theta, NewtonPredictedErr,   &
+                       NewtonIncrement, NewtonIncrementOld
+      KPP_REAL :: Y_tlm(NVAR,NSOA), Z_tlm(NVAR,Smax,NSOA), &
+                       G2(NVAR,NSOA), Hess0(NHESS), TMP2(NVAR)
+      KPP_REAL :: W(NVAR,Smax,NSOA), TMP_tlm(NVAR) 
+      INTEGER :: j, IER, istage, iadj, isoa, NewtonIter, &
+                 IP(NVAR), IP_adj(NVAR)
+      LOGICAL :: Reject, SkipJac, SkipLU, NewtonDone
+      
+#ifdef FULL_ALGEBRA      
+      KPP_REAL, DIMENSION(NVAR,NVAR) :: E, Jac, E_adj
+#else      
+      KPP_REAL, DIMENSION(LU_NONZERO):: E, Jac, E_adj
+#endif      
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Time loop begins
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Tloop: DO WHILE ( stack_ptr > 0 )
+        
+   !~~~>  Recover checkpoints for stage values and vectors
+      CALL SDIRK_Pop( T, H, Y, Z, Y_tlm, Z_tlm, E, IP )
+
+!~~~>  Compute E = 1/(h*gamma)-Jac and its LU decomposition
+!      IF (.NOT.SaveLU) THEN
+!          SkipJac = .FALSE.; SkipLU = .FALSE.
+!          CALL SDIRK_PrepareMatrix ( H, T, Y, Jac, &
+!                   SkipJac, SkipLU, E, IP, Reject, IER )
+!         IF (IER /= 0) THEN
+!             CALL SDIRK_ErrorMsg(-8,T,H,Ierr); RETURN
+!         END IF
+!      END IF      
+
+stages:DO istage = rkS, 1, -1
+
+!~~~>  Jacobian at the current stage solution
+       TMP(1:N) = Y(1:N) + Z(1:N,istage)
+       CALL JAC_CHEM(T+rkC(istage)*H,TMP,Jac)
+       ISTATUS(Njac) = ISTATUS(Njac) + 1
+            
+!~~~>  Hessian at the current stage solution
+       CALL HESS_CHEM(T+rkC(istage)*H,TMP,Hess0)
+       
+#ifdef FULL_ALGEBRA
+         E_adj(1:N,1:N) = -Jac(1:N,1:N)
+         DO j=1,N
+            E_adj(j,j) = E_adj(j,j) + ONE/(H*rkGamma)
+         END DO
+         CALL DGETRF( N, N, E_adj, N, IP_adj, IER )
+#else
+         E_adj(1:LU_NONZERO) = -Jac(1:LU_NONZERO)
+         DO i = 1,NVAR
+            j = LU_DIAG(i); E_adj(j) = E_adj(j) + ONE/(H*rkGamma)
+         END DO
+         CALL KppDecomp ( E_adj, IER)
+#endif
+         ISTATUS(Ndec) = ISTATUS(Ndec) + 1
+         IF (IER /= 0)  THEN
+             PRINT*,'At stage ',istage,' the matrix used in adjoint', &
+                      ' computation is singular'
+             CALL SDIRK_ErrorMsg(-8,T,H,Ierr); RETURN
+         END IF
+
+!~~~>   Prepare the loop-independent part of the right-hand side
+!~~~>   G1(:) = H*( B(i)*Lambda + sum_j A(j,i)*Uj(:) )
+       G1(1:N) = rkB(istage)*Lambda(1:N,1)
+       IF (istage < rkS) THEN
+           DO j = istage+1, rkS
+               CALL WAXPY(N,rkA(j,istage),U(1,j),1,G1,1)
+           END DO
+       END IF
+       G1(1:N)   = H*G1(1:N)
+       TMP2(1:N) = G1(1:N)
+       
+!       G1(:) = H*Jac^T*( B(i)*Lambda + sum_j A(j,i)*Uj(:) )
+#ifdef FULL_ALGEBRA  
+       TMP = MATMUL(TRANSPOSE(Jac),G1)    ! DZ <- Jac(Y+Z)*Y_tlm
+#else      
+       CALL JacTR_SP_Vec ( Jac, G1, TMP )    
+#endif      
+       G1(1:N)   = TMP(1:N)
+
+!~~~>  Compute FOA stage
+       CALL SDIRK_Solve ( 'T', H, N, E_adj, IP_adj, IER, G1 )
+       U(1:N,istage) = G1(1:N)
+
+!~~~>   Prepare the loop-independent part of the SOA right-hand side
+       G1(1:N) = rkB(istage)*Lambda(1:N,1)
+       IF (istage < rkS) THEN
+           DO j = istage+1, rkS
+               CALL WAXPY(N,rkA(j,istage),U(1,j),1,G1,1)
+           END DO
+           CALL WAXPY(N,rkGamma,U(1,istage),1,G1,1)
+       END IF
+       G1(1:N)   = H*G1(1:N)
+       
+!~~~>    G2(:) = H*( B(i)*Sigma + sum_j A(j,i)*Wj(:) )
+       DO isoa = 1, NSOA
+       
+       G2(1:N,isoa) = rkB(istage)*Sigma(1:N,isoa)
+       IF (istage < rkS) THEN
+           DO j = istage+1, rkS
+	       G2(1:N,isoa) = G2(1:N,isoa) + rkA(j,istage)*W(1:N,j,isoa)
+           END DO
+       END IF
+       G2(1:N,isoa) = H*G2(1:N,isoa)
+
+#ifdef FULL_ALGEBRA  
+       TMP = MATMUL(TRANSPOSE(Jac),G2(1,isoa))    ! DZ <- Jac(Y+Z)*Y_tlm
+#else      
+       CALL JacTR_SP_Vec ( Jac, G2(1,isoa), TMP )    
+#endif      
+       G2(1:N,isoa) = TMP(1:N)
+
+!~~~>   Add [ Hess0 x Y_tlm(istage) ]^T * G1
+       TMP_tlm(1:N) = Y_tlm(1:N,isoa) + Z_tlm(1:N,istage,isoa)
+       CALL HessTR_Vec ( Hess0, G1, TMP_tlm, TMP )
+       G2(1:N,isoa) = G2(1:N,isoa) + TMP(1:N)
+
+       END DO ! isoa = 1, NSOA
+       
+!~~~>  Compute SOA stage
+       DO isoa = 1, NSOA
+         TMP(1:N) = G2(1:N,isoa)
+         CALL SDIRK_Solve ( 'T', H, N, E_adj, IP_adj, IER, TMP )
+         W(1:N,istage,isoa) = TMP
+       END DO ! isoa = 1, NSOA
+ 
+   END DO stages
+
+!~~~> Update first order adjoint solution
+         DO istage = 1,rkS 
+             Lambda(1:N,1) = Lambda(1:N,1) + U(1:N,istage)
+         END DO  
+
+!~~~> Update second order adjoint solution
+         DO istage = 1,rkS 
+             DO isoa = 1,NSOA
+                 Sigma(1:N,isoa) = Sigma(1:N,isoa) + W(1:N,istage,isoa)
+             END DO  
+         END DO  
+
+      END DO Tloop
+
+      ! Successful return
+      Ierr  = 1
+  
+      END SUBROUTINE SDIRK_SoaInt
+      
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE SDIRK_AllocBuffers
+!~~~>  Allocate buffer space for checkpointing
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+       INTEGER :: i
+   
+       ALLOCATE( chk_H(Max_no_steps), STAT=i )
+       IF (i/=0) THEN
+          PRINT*,'Failed allocation of buffer H'; STOP
+       END IF   
+       ALLOCATE( chk_T(Max_no_steps), STAT=i )
+       IF (i/=0) THEN
+          PRINT*,'Failed allocation of buffer T'; STOP
+       END IF   
+       ALLOCATE( chk_Y(NVAR,Max_no_steps), STAT=i )
+       IF (i/=0) THEN
+          PRINT*,'Failed allocation of buffer Y'; STOP
+       END IF   
+       ALLOCATE( chk_Y_tlm(NVAR,NSOA,Max_no_steps), STAT=i )
+       IF (i/=0) THEN
+          PRINT*,'Failed allocation of buffer Y_tlm'; STOP
+       END IF   
+       ALLOCATE( chk_Z(NVAR,rkS,Max_no_steps), STAT=i )
+       IF (i/=0) THEN
+          PRINT*,'Failed allocation of buffer Z'; STOP
+       END IF   
+       ALLOCATE( chk_Z_tlm(NVAR,rkS,NSOA,Max_no_steps), STAT=i )
+       IF (i/=0) THEN
+          PRINT*,'Failed allocation of buffer Z_tlm'; STOP
+       END IF   
+       IF (SaveLU) THEN
+#ifdef FULL_ALGEBRA
+          ALLOCATE( chk_J(NVAR,NVAR,Max_no_steps),  STAT=i )
+#else
+          ALLOCATE( chk_J(LU_NONZERO,Max_no_steps), STAT=i )
+#endif
+          IF (i/=0) THEN
+             PRINT*,'Failed allocation of buffer J'; STOP
+          END IF   
+          ALLOCATE( chk_P(NVAR,Max_no_steps), STAT=i )
+          IF (i/=0) THEN
+             PRINT*,'Failed allocation of buffer P'; STOP
+          END IF   
+       END IF   
+ 
+     END SUBROUTINE SDIRK_AllocBuffers
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+     SUBROUTINE SDIRK_FreeBuffers
+!~~~>  Dallocate buffer space for discrete adjoint
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+       INTEGER :: i
+   
+       DEALLOCATE( chk_H, STAT=i )
+       IF (i/=0) THEN
+          PRINT*,'Failed deallocation of buffer H'; STOP
+       END IF   
+       DEALLOCATE( chk_T, STAT=i )
+       IF (i/=0) THEN
+          PRINT*,'Failed deallocation of buffer T'; STOP
+       END IF   
+       DEALLOCATE( chk_Y, STAT=i )
+       IF (i/=0) THEN
+          PRINT*,'Failed deallocation of buffer Y'; STOP
+       END IF   
+       DEALLOCATE( chk_Y_tlm, STAT=i )
+       IF (i/=0) THEN
+          PRINT*,'Failed deallocation of buffer Y_tlm'; STOP
+       END IF   
+       DEALLOCATE( chk_Z, STAT=i )
+       IF (i/=0) THEN
+          PRINT*,'Failed deallocation of buffer Z'; STOP
+       END IF   
+       DEALLOCATE( chk_Z_tlm, STAT=i )
+       IF (i/=0) THEN
+          PRINT*,'Failed deallocation of buffer Z_tlm'; STOP
+       END IF   
+       IF (SaveLU) THEN
+          DEALLOCATE( chk_J, STAT=i )
+          IF (i/=0) THEN
+             PRINT*,'Failed deallocation of buffer J'; STOP
+          END IF   
+          DEALLOCATE( chk_P, STAT=i )
+          IF (i/=0) THEN
+             PRINT*,'Failed deallocation of buffer P'; STOP
+          END IF   
+       END IF   
+ 
+     END SUBROUTINE SDIRK_FreeBuffers
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+     SUBROUTINE SDIRK_Push( T, H, Y, Z, Y_tlm, Z_tlm, E, P )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> Saves the next trajectory snapshot for discrete adjoints
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+       KPP_REAL :: T, H, Y(NVAR), Z(NVAR,rkS) 
+       KPP_REAL :: Y_tlm(NVAR,NSOA), Z_tlm(NVAR,rkS,NSOA)
+       INTEGER       :: P(NVAR)
+#ifdef FULL_ALGEBRA
+       KPP_REAL :: E(NVAR,NVAR)
+#else       
+       KPP_REAL :: E(LU_NONZERO)
+#endif
+   
+       stack_ptr = stack_ptr + 1
+       IF ( stack_ptr > Max_no_steps ) THEN
+         PRINT*,'Push failed: buffer overflow'
+         STOP
+       END IF  
+       chk_H( stack_ptr ) = H
+       chk_T( stack_ptr ) = T
+       chk_Y(1:NVAR,stack_ptr) = Y(1:NVAR)
+       chk_Z(1:NVAR,1:rkS,stack_ptr) = Z(1:NVAR,1:rkS)
+       chk_Y_tlm(1:NVAR,1:NSOA,stack_ptr) = Y_tlm(1:NVAR,1:NSOA)
+       chk_Z_tlm(1:NVAR,1:rkS,1:NSOA,stack_ptr) = Z_tlm(1:NVAR,1:rkS,1:NSOA)
+       IF (SaveLU) THEN 
+#ifdef FULL_ALGEBRA
+          chk_J(1:NVAR,1:NVAR,stack_ptr) = E(1:NVAR,1:NVAR)
+          chk_P(1:NVAR,stack_ptr)        = P(1:NVAR)
+#else       
+          chk_J(1:LU_NONZERO,stack_ptr)  = E(1:LU_NONZERO)
+#endif
+       END IF
+  
+      END SUBROUTINE SDIRK_Push
+  
+   
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE SDIRK_Pop( T, H, Y, Z, Y_tlm, Z_tlm, E, P )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> Retrieves the next trajectory snapshot for discrete adjoints
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+       KPP_REAL :: T, H, Y(NVAR), Z(NVAR,Smax)
+       KPP_REAL :: Y_tlm(NVAR,NSOA), Z_tlm(NVAR,Smax,NSOA)
+       INTEGER       :: P(NVAR)
+#ifdef FULL_ALGEBRA
+       KPP_REAL :: E(NVAR,NVAR)
+#else       
+       KPP_REAL :: E(LU_NONZERO)
+#endif
+   
+       IF ( stack_ptr <= 0 ) THEN
+         PRINT*,'Pop failed: empty buffer'
+         STOP
+       END IF  
+       H = chk_H( stack_ptr )
+       T = chk_T( stack_ptr )
+       Y(1:NVAR) = chk_Y(1:NVAR,stack_ptr)
+       Z(1:NVAR,1:rkS) = chk_Z(1:NVAR,1:rkS,stack_ptr)
+       Y_tlm(1:NVAR,1:NSOA) = chk_Y_tlm(1:NVAR,1:NSOA,stack_ptr)
+       Z_tlm(1:NVAR,1:rkS,1:NSOA) = chk_Z_tlm(1:NVAR,1:rkS,1:NSOA,stack_ptr)
+       IF (SaveLU) THEN
+#ifdef FULL_ALGEBRA
+          E(1:NVAR,1:NVAR) = chk_J(1:NVAR,1:NVAR,stack_ptr)
+          P(1:NVAR)        = chk_P(1:NVAR,stack_ptr)
+#else       
+          E(1:LU_NONZERO)  = chk_J(1:LU_NONZERO,stack_ptr)
+#endif
+       END IF
+
+       stack_ptr = stack_ptr - 1
+  
+      END SUBROUTINE SDIRK_Pop
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE SDIRK_ErrorScale(N, ITOL, AbsTol, RelTol, Y, SCAL)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      INTEGER :: i, N, ITOL
+      KPP_REAL :: AbsTol(N), RelTol(N), &
+                       Y(N), SCAL(N)
+      IF (ITOL == 0) THEN
+        DO i=1,N
+          SCAL(i) = ONE / ( AbsTol(1)+RelTol(1)*ABS(Y(i)) )
+        END DO
+      ELSE
+        DO i=1,N
+          SCAL(i) = ONE / ( AbsTol(i)+RelTol(i)*ABS(Y(i)) )
+        END DO
+      END IF
+      END SUBROUTINE SDIRK_ErrorScale
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE SDIRK_ErrorNorm(N, Y, SCAL, Err)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!      
+      INTEGER :: i, N
+      KPP_REAL :: Y(N), SCAL(N), Err      
+      Err = ZERO
+      DO i=1,N
+           Err = Err+(Y(i)*SCAL(i))**2
+      END DO
+      Err = MAX( SQRT(Err/DBLE(N)), 1.0d-10 )
+!
+      END SUBROUTINE SDIRK_ErrorNorm
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
+SUBROUTINE SDIRK_ErrorMsg(Code,T,H,Ierr)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!    Handles all error messages
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   KPP_REAL, INTENT(IN) :: T, H
+   INTEGER, INTENT(IN)  :: Code
+   INTEGER, INTENT(OUT) :: Ierr
+
+   Ierr = Code
+   PRINT * , &
+     'Forced exit from SDIRK due to the following error:'
+
+   SELECT CASE (Code)
+    CASE (-1)
+      PRINT * , '--> Improper value for maximal no of steps'
+    CASE (-2)
+      PRINT * , '--> Improper value for maximal no of Newton iterations'
+    CASE (-3)
+      PRINT * , '--> Hmin/Hmax/Hstart must be positive'
+    CASE (-4)
+      PRINT * , '--> FacMin/FacMax/FacRej must be positive'
+    CASE (-5)
+      PRINT * , '--> Improper tolerance values'
+    CASE (-6)
+      PRINT * , '--> No of steps exceeds maximum bound', max_no_steps
+    CASE (-7)
+      PRINT * , '--> Step size too small: T + 10*H = T', &
+            ' or H < Roundoff'
+    CASE (-8)
+      PRINT * , '--> Matrix is repeatedly singular'
+    CASE DEFAULT
+      PRINT *, 'Unknown Error code: ', Code
+   END SELECT
+
+   PRINT *, "T=", T, "and H=", H
+
+ END SUBROUTINE SDIRK_ErrorMsg
+      
+      
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE SDIRK_PrepareMatrix ( H, T, Y, FJAC, &
+                   SkipJac, SkipLU, E, IP, Reject, ISING )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Compute the matrix E = 1/(H*GAMMA)*Jac, and its decomposition
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+     
+      IMPLICIT NONE
+      
+      KPP_REAL, INTENT(INOUT) :: H
+      KPP_REAL, INTENT(IN)    :: T, Y(NVAR)
+      LOGICAL, INTENT(INOUT)       :: SkipJac,SkipLU,Reject
+      INTEGER, INTENT(OUT)         :: ISING, IP(NVAR)
+#ifdef FULL_ALGEBRA
+      KPP_REAL, INTENT(INOUT) :: FJAC(NVAR,NVAR)
+      KPP_REAL, INTENT(OUT)   :: E(NVAR,NVAR)
+#else
+      KPP_REAL, INTENT(INOUT) :: FJAC(LU_NONZERO)
+      KPP_REAL, INTENT(OUT)   :: E(LU_NONZERO)
+#endif
+      KPP_REAL                :: HGammaInv
+      INTEGER                      :: i, j, ConsecutiveSng
+
+      ConsecutiveSng = 0
+      ISING = 1
+      
+Hloop: DO WHILE (ISING /= 0)
+      
+      HGammaInv = ONE/(H*rkGamma)
+
+!~~~>  Compute the Jacobian
+!      IF (SkipJac) THEN
+!          SkipJac = .FALSE.
+!      ELSE
+      IF (.NOT. SkipJac) THEN
+          CALL JAC_CHEM( T, Y, FJAC )
+          ISTATUS(Njac) = ISTATUS(Njac) + 1
+      END IF  
+      
+#ifdef FULL_ALGEBRA
+      DO j=1,NVAR
+         DO i=1,NVAR
+            E(i,j) = -FJAC(i,j)
+         END DO
+         E(j,j) = E(j,j)+HGammaInv
+      END DO
+      CALL DGETRF( NVAR, NVAR, E, NVAR, IP, ISING )
+#else
+      DO i = 1,LU_NONZERO
+            E(i) = -FJAC(i)
+      END DO
+      DO i = 1,NVAR
+          j = LU_DIAG(i); E(j) = E(j) + HGammaInv
+      END DO
+      CALL KppDecomp ( E, ISING)
+      IP(1) = 1
+#endif
+      ISTATUS(Ndec) = ISTATUS(Ndec) + 1
+
+      IF (ISING /= 0) THEN
+          WRITE (6,*) ' MATRIX IS SINGULAR, ISING=',ISING,' T=',T,' H=',H
+          ISTATUS(Nsng) = ISTATUS(Nsng) + 1; ConsecutiveSng = ConsecutiveSng + 1
+          IF (ConsecutiveSng >= 6) RETURN ! Failure
+          H = 0.5d0*H
+          SkipJac = .FALSE.
+          SkipLU  = .FALSE.
+          Reject  = .TRUE.
+      END IF
+      
+      END DO Hloop
+
+      END SUBROUTINE SDIRK_PrepareMatrix
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE SDIRK_Solve ( Transp, H, N, E, IP, ISING, RHS )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Solves the system (H*Gamma-Jac)*x = R
+!      using the LU decomposition of E = I - 1/(H*Gamma)*Jac
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      INTEGER, INTENT(IN)       :: N, IP(N), ISING
+      CHARACTER, INTENT(IN)     :: Transp
+      KPP_REAL, INTENT(IN) :: H
+#ifdef FULL_ALGEBRA
+      KPP_REAL, INTENT(IN) :: E(NVAR,NVAR)
+#else
+      KPP_REAL, INTENT(IN) :: E(LU_NONZERO)
+#endif
+      KPP_REAL, INTENT(INOUT) :: RHS(N)
+      KPP_REAL                :: HGammaInv
+      
+      HGammaInv = ONE/(H*rkGamma)
+      CALL WSCAL(N,HGammaInv,RHS,1)
+      SELECT CASE (TRANSP)
+      CASE ('N')
+#ifdef FULL_ALGEBRA  
+         CALL DGETRS( 'N', N, 1, E, N, IP, RHS, N, ISING )
+#else
+         CALL KppSolve(E, RHS)
+#endif
+      CASE ('T')
+#ifdef FULL_ALGEBRA  
+         CALL DGETRS( 'T', N, 1, E, N, IP, RHS, N, ISING )
+#else
+         CALL KppSolveTR(E, RHS, RHS)
+#endif
+      CASE DEFAULT
+         PRINT*,'Error in SDIRK_Solve. Unknown Transp argument:',Transp
+         STOP
+      END SELECT
+      ISTATUS(Nsol) = ISTATUS(Nsol) + 1
+ 
+      END SUBROUTINE SDIRK_Solve
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE Sdirk4a
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      sdMethod = S4A
+! Number of stages
+      rkS = 5
+
+! Method coefficients
+      rkGamma = .2666666666666666666666666666666667d0
+
+      rkA(1,1) = .2666666666666666666666666666666667d0
+      rkA(2,1) = .5000000000000000000000000000000000d0
+      rkA(2,2) = .2666666666666666666666666666666667d0
+      rkA(3,1) = .3541539528432732316227461858529820d0
+      rkA(3,2) = -.5415395284327323162274618585298197d-1
+      rkA(3,3) = .2666666666666666666666666666666667d0
+      rkA(4,1) = .8515494131138652076337791881433756d-1
+      rkA(4,2) = -.6484332287891555171683963466229754d-1
+      rkA(4,3) = .7915325296404206392428857585141242d-1
+      rkA(4,4) = .2666666666666666666666666666666667d0
+      rkA(5,1) = 2.100115700566932777970612055999074d0
+      rkA(5,2) = -.7677800284445976813343102185062276d0
+      rkA(5,3) = 2.399816361080026398094746205273880d0
+      rkA(5,4) = -2.998818699869028161397714709433394d0
+      rkA(5,5) = .2666666666666666666666666666666667d0
+
+      rkB(1)   = 2.100115700566932777970612055999074d0
+      rkB(2)   = -.7677800284445976813343102185062276d0
+      rkB(3)   = 2.399816361080026398094746205273880d0
+      rkB(4)   = -2.998818699869028161397714709433394d0
+      rkB(5)   = .2666666666666666666666666666666667d0
+
+      rkBhat(1)= 2.885264204387193942183851612883390d0
+      rkBhat(2)= -.1458793482962771337341223443218041d0
+      rkBhat(3)= 2.390008682465139866479830743628554d0
+      rkBhat(4)= -4.129393538556056674929560012190140d0
+      rkBhat(5)= 0.d0
+
+      rkC(1)   = .2666666666666666666666666666666667d0
+      rkC(2)   = .7666666666666666666666666666666667d0
+      rkC(3)   = .5666666666666666666666666666666667d0
+      rkC(4)   = .3661315380631796996374935266701191d0
+      rkC(5)   = 1.d0
+
+! Ynew = Yold + h*Sum_i {rkB_i*k_i} = Yold + Sum_i {rkD_i*Z_i}
+      rkD(1)   = 0.d0
+      rkD(2)   = 0.d0
+      rkD(3)   = 0.d0
+      rkD(4)   = 0.d0
+      rkD(5)   = 1.d0
+
+! Err = h * Sum_i {(rkB_i-rkBhat_i)*k_i} = Sum_i {rkE_i*Z_i}
+      rkE(1)   = -.6804000050475287124787034884002302d0
+      rkE(2)   = 1.558961944525217193393931795738823d0
+      rkE(3)   = -13.55893003128907927748632408763868d0
+      rkE(4)   = 15.48522576958521253098585004571302d0
+      rkE(5)   = 1.d0
+
+! Local order of Err estimate
+      rkElo    = 4
+
+! h*Sum_j {rkA_ij*k_j} = Sum_j {rkTheta_ij*Z_j}
+      rkTheta(2,1) = 1.875000000000000000000000000000000d0
+      rkTheta(3,1) = 1.708847304091539528432732316227462d0
+      rkTheta(3,2) = -.2030773231622746185852981969486824d0
+      rkTheta(4,1) = .2680325578937783958847157206823118d0
+      rkTheta(4,2) = -.1828840955527181631794050728644549d0
+      rkTheta(4,3) = .2968246986151577397160821594427966d0
+      rkTheta(5,1) = .9096171815241460655379433581446771d0
+      rkTheta(5,2) = -3.108254967778352416114774430509465d0
+      rkTheta(5,3) = 12.33727431701306195581826123274001d0
+      rkTheta(5,4) = -11.24557012450885560524143016037523d0
+
+! Starting value for Newton iterations: Z_i^0 = Sum_j {rkAlpha_ij*Z_j}
+      rkAlpha(2,1) = 2.875000000000000000000000000000000d0
+      rkAlpha(3,1) = .8500000000000000000000000000000000d0
+      rkAlpha(3,2) = .4434782608695652173913043478260870d0
+      rkAlpha(4,1) = .7352046091658870564637910527807370d0
+      rkAlpha(4,2) = -.9525565003057343527941920657462074d-1
+      rkAlpha(4,3) = .4290111305453813852259481840631738d0
+      rkAlpha(5,1) = -16.10898993405067684831655675112808d0
+      rkAlpha(5,2) = 6.559571569643355712998131800797873d0
+      rkAlpha(5,3) = -15.90772144271326504260996815012482d0
+      rkAlpha(5,4) = 25.34908987169226073668861694892683d0
+               
+!~~~> Coefficients for continuous solution
+!          rkD(1,1)= 24.74416644927758d0
+!          rkD(1,2)= -4.325375951824688d0
+!          rkD(1,3)= 41.39683763286316d0
+!          rkD(1,4)= -61.04144619901784d0
+!          rkD(1,5)= -3.391332232917013d0
+!          rkD(2,1)= -51.98245719616925d0
+!          rkD(2,2)= 10.52501981094525d0
+!          rkD(2,3)= -154.2067922191855d0
+!          rkD(2,4)= 214.3082125319825d0
+!          rkD(2,5)= 14.71166018088679d0
+!          rkD(3,1)= 33.14347947522142d0
+!          rkD(3,2)= -19.72986789558523d0
+!          rkD(3,3)= 230.4878502285804d0
+!          rkD(3,4)= -287.6629744338197d0
+!          rkD(3,5)= -18.99932366302254d0
+!          rkD(4,1)= -5.905188728329743d0
+!          rkD(4,2)= 13.53022403646467d0
+!          rkD(4,3)= -117.6778956422581d0
+!          rkD(4,4)= 134.3962081008550d0
+!          rkD(4,5)= 8.678995715052762d0
+!
+!         DO i=1,4  ! CONTi <-- Sum_j rkD(i,j)*Zj
+!           CALL Set2zero(N,CONT(1,i))
+!           DO j = 1,rkS
+!             CALL WAXPY(N,rkD(i,j),Z(1,j),1,CONT(1,i),1)
+!           END DO
+!         END DO
+          
+          rkELO = 4.0d0
+          
+      END SUBROUTINE Sdirk4a
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE Sdirk4b
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      sdMethod = S4B
+! Number of stages
+      rkS = 5
+
+! Method coefficients
+      rkGamma = .25d0
+
+      rkA(1,1) = 0.25d0
+      rkA(2,1) = 0.5d00
+      rkA(2,2) = 0.25d0
+      rkA(3,1) = 0.34d0
+      rkA(3,2) =-0.40d-1
+      rkA(3,3) = 0.25d0
+      rkA(4,1) = 0.2727941176470588235294117647058824d0
+      rkA(4,2) =-0.5036764705882352941176470588235294d-1
+      rkA(4,3) = 0.2757352941176470588235294117647059d-1
+      rkA(4,4) = 0.25d0
+      rkA(5,1) = 1.041666666666666666666666666666667d0
+      rkA(5,2) =-1.020833333333333333333333333333333d0
+      rkA(5,3) = 7.812500000000000000000000000000000d0
+      rkA(5,4) =-7.083333333333333333333333333333333d0
+      rkA(5,5) = 0.25d0
+
+      rkB(1)   =  1.041666666666666666666666666666667d0
+      rkB(2)   = -1.020833333333333333333333333333333d0
+      rkB(3)   =  7.812500000000000000000000000000000d0
+      rkB(4)   = -7.083333333333333333333333333333333d0
+      rkB(5)   =  0.250000000000000000000000000000000d0
+
+      rkBhat(1)=  1.069791666666666666666666666666667d0
+      rkBhat(2)= -0.894270833333333333333333333333333d0
+      rkBhat(3)=  7.695312500000000000000000000000000d0
+      rkBhat(4)= -7.083333333333333333333333333333333d0
+      rkBhat(5)=  0.212500000000000000000000000000000d0
+
+      rkC(1)   = 0.25d0
+      rkC(2)   = 0.75d0
+      rkC(3)   = 0.55d0
+      rkC(4)   = 0.50d0
+      rkC(5)   = 1.00d0
+
+! Ynew = Yold + h*Sum_i {rkB_i*k_i} = Yold + Sum_i {rkD_i*Z_i}
+      rkD(1)   = 0.0d0
+      rkD(2)   = 0.0d0
+      rkD(3)   = 0.0d0
+      rkD(4)   = 0.0d0
+      rkD(5)   = 1.0d0
+
+! Err = h * Sum_i {(rkB_i-rkBhat_i)*k_i} = Sum_i {rkE_i*Z_i}
+      rkE(1)   =  0.5750d0
+      rkE(2)   =  0.2125d0
+      rkE(3)   = -4.6875d0
+      rkE(4)   =  4.2500d0
+      rkE(5)   =  0.1500d0
+
+! Local order of Err estimate
+      rkElo    = 4
+
+! h*Sum_j {rkA_ij*k_j} = Sum_j {rkTheta_ij*Z_j}
+      rkTheta(2,1) = 2.d0
+      rkTheta(3,1) = 1.680000000000000000000000000000000d0
+      rkTheta(3,2) = -.1600000000000000000000000000000000d0
+      rkTheta(4,1) = 1.308823529411764705882352941176471d0
+      rkTheta(4,2) = -.1838235294117647058823529411764706d0
+      rkTheta(4,3) = 0.1102941176470588235294117647058824d0
+      rkTheta(5,1) = -3.083333333333333333333333333333333d0
+      rkTheta(5,2) = -4.291666666666666666666666666666667d0
+      rkTheta(5,3) =  34.37500000000000000000000000000000d0
+      rkTheta(5,4) = -28.33333333333333333333333333333333d0
+
+! Starting value for Newton iterations: Z_i^0 = Sum_j {rkAlpha_ij*Z_j}
+      rkAlpha(2,1) = 3.
+      rkAlpha(3,1) = .8800000000000000000000000000000000d0
+      rkAlpha(3,2) = .4400000000000000000000000000000000d0
+      rkAlpha(4,1) = .1666666666666666666666666666666667d0
+      rkAlpha(4,2) = -.8333333333333333333333333333333333d-1
+      rkAlpha(4,3) = .9469696969696969696969696969696970d0
+      rkAlpha(5,1) = -6.d0
+      rkAlpha(5,2) = 9.d0
+      rkAlpha(5,3) = -56.81818181818181818181818181818182d0
+      rkAlpha(5,4) = 54.d0
+      
+      END SUBROUTINE Sdirk4b
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE Sdirk2a
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      sdMethod = S2A
+! Number of stages
+      rkS = 2
+
+! Method coefficients
+      rkGamma = .2928932188134524755991556378951510d0
+
+      rkA(1,1) = .2928932188134524755991556378951510d0
+      rkA(2,1) = .7071067811865475244008443621048490d0
+      rkA(2,2) = .2928932188134524755991556378951510d0
+
+      rkB(1)   = .7071067811865475244008443621048490d0
+      rkB(2)   = .2928932188134524755991556378951510d0
+
+      rkBhat(1)= .6666666666666666666666666666666667d0
+      rkBhat(2)= .3333333333333333333333333333333333d0
+
+      rkC(1)   = 0.292893218813452475599155637895151d0
+      rkC(2)   = 1.0d0
+
+! Ynew = Yold + h*Sum_i {rkB_i*k_i} = Yold + Sum_i {rkD_i*Z_i}
+      rkD(1)   = 0.0d0
+      rkD(2)   = 1.0d0
+
+! Err = h * Sum_i {(rkB_i-rkBhat_i)*k_i} = Sum_i {rkE_i*Z_i}
+      rkE(1)   =  0.4714045207910316829338962414032326d0
+      rkE(2)   = -0.1380711874576983496005629080698993d0
+
+! Local order of Err estimate
+      rkElo    = 2
+
+! h*Sum_j {rkA_ij*k_j} = Sum_j {rkTheta_ij*Z_j}
+      rkTheta(2,1) = 2.414213562373095048801688724209698d0
+
+! Starting value for Newton iterations: Z_i^0 = Sum_j {rkAlpha_ij*Z_j}
+      rkAlpha(2,1) = 3.414213562373095048801688724209698d0
+          
+      END SUBROUTINE Sdirk2a
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE Sdirk2b
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      sdMethod = S2B
+! Number of stages
+      rkS      = 2
+
+! Method coefficients
+      rkGamma  = 1.707106781186547524400844362104849d0
+
+      rkA(1,1) = 1.707106781186547524400844362104849d0
+      rkA(2,1) = -.707106781186547524400844362104849d0
+      rkA(2,2) = 1.707106781186547524400844362104849d0
+
+      rkB(1)   = -.707106781186547524400844362104849d0
+      rkB(2)   = 1.707106781186547524400844362104849d0
+
+      rkBhat(1)= .6666666666666666666666666666666667d0
+      rkBhat(2)= .3333333333333333333333333333333333d0
+
+      rkC(1)   = 1.707106781186547524400844362104849d0
+      rkC(2)   = 1.0d0
+
+! Ynew = Yold + h*Sum_i {rkB_i*k_i} = Yold + Sum_i {rkD_i*Z_i}
+      rkD(1)   = 0.0d0
+      rkD(2)   = 1.0d0
+
+! Err = h * Sum_i {(rkB_i-rkBhat_i)*k_i} = Sum_i {rkE_i*Z_i}
+      rkE(1)   = -.4714045207910316829338962414032326d0
+      rkE(2)   =  .8047378541243650162672295747365659d0
+
+! Local order of Err estimate
+      rkElo    = 2
+
+! h*Sum_j {rkA_ij*k_j} = Sum_j {rkTheta_ij*Z_j}
+      rkTheta(2,1) = -.414213562373095048801688724209698d0
+
+! Starting value for Newton iterations: Z_i^0 = Sum_j {rkAlpha_ij*Z_j}
+      rkAlpha(2,1) = .5857864376269049511983112757903019d0
+      
+      END SUBROUTINE Sdirk2b
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE Sdirk3a
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      sdMethod = S3A
+! Number of stages
+      rkS = 3
+
+! Method coefficients
+      rkGamma = .2113248654051871177454256097490213d0
+
+      rkA(1,1) = .2113248654051871177454256097490213d0
+      rkA(2,1) = .2113248654051871177454256097490213d0
+      rkA(2,2) = .2113248654051871177454256097490213d0
+      rkA(3,1) = .2113248654051871177454256097490213d0
+      rkA(3,2) = .5773502691896257645091487805019573d0
+      rkA(3,3) = .2113248654051871177454256097490213d0
+
+      rkB(1)   = .2113248654051871177454256097490213d0
+      rkB(2)   = .5773502691896257645091487805019573d0
+      rkB(3)   = .2113248654051871177454256097490213d0
+
+      rkBhat(1)= .2113248654051871177454256097490213d0
+      rkBhat(2)= .6477918909913548037576239837516312d0
+      rkBhat(3)= .1408832436034580784969504064993475d0
+
+      rkC(1)   = .2113248654051871177454256097490213d0
+      rkC(2)   = .4226497308103742354908512194980427d0
+      rkC(3)   = 1.d0
+
+! Ynew = Yold + h*Sum_i {rkB_i*k_i} = Yold + Sum_i {rkD_i*Z_i}
+      rkD(1)   = 0.d0
+      rkD(2)   = 0.d0
+      rkD(3)   = 1.d0
+
+! Err = h * Sum_i {(rkB_i-rkBhat_i)*k_i} = Sum_i {rkE_i*Z_i}
+      rkE(1)   =  0.9106836025229590978424821138352906d0
+      rkE(2)   = -1.244016935856292431175815447168624d0
+      rkE(3)   =  0.3333333333333333333333333333333333d0
+
+! Local order of Err estimate
+      rkElo    = 2
+
+! h*Sum_j {rkA_ij*k_j} = Sum_j {rkTheta_ij*Z_j}
+      rkTheta(2,1) =  1.0d0
+      rkTheta(3,1) = -1.732050807568877293527446341505872d0
+      rkTheta(3,2) =  2.732050807568877293527446341505872d0
+
+! Starting value for Newton iterations: Z_i^0 = Sum_j {rkAlpha_ij*Z_j}
+      rkAlpha(2,1) =   2.0d0
+      rkAlpha(3,1) = -12.92820323027550917410978536602349d0
+      rkAlpha(3,2) =   8.83012701892219323381861585376468d0
+
+      END SUBROUTINE Sdirk3a
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   END SUBROUTINE SDIRK_SOA ! AND ALL ITS INTERNAL PROCEDURES
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE FUN_CHEM( T, Y, P )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      USE KPP_ROOT_Parameters, ONLY: NVAR
+      USE KPP_ROOT_Global, ONLY: TIME, FIX, RCONST
+      USE KPP_ROOT_Function, ONLY: Fun
+      USE KPP_ROOT_Rates, ONLY: Update_SUN, Update_RCONST, Update_PHOTO
+
+      KPP_REAL :: T, Told
+      KPP_REAL :: Y(NVAR), P(NVAR)
+      
+!    Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      
+      CALL Fun( Y, FIX, RCONST, P )
+    
+!    TIME = Told
+      
+      END SUBROUTINE FUN_CHEM
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE JAC_CHEM( T, Y, JV )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      USE KPP_ROOT_Parameters, ONLY: NVAR, LU_NONZERO
+      USE KPP_ROOT_Global, ONLY: TIME, FIX, RCONST
+      USE KPP_ROOT_Jacobian, ONLY: Jac_SP,LU_IROW,LU_ICOL
+      USE KPP_ROOT_Rates, ONLY: Update_SUN, Update_RCONST, Update_PHOTO
+  
+      KPP_REAL ::  T, Told
+      KPP_REAL ::  Y(NVAR)
+#ifdef FULL_ALGEBRA
+      KPP_REAL :: JS(LU_NONZERO), JV(NVAR,NVAR)
+      INTEGER :: i, j
+#else
+      KPP_REAL :: JV(LU_NONZERO)
+#endif
+ 
+!    Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+
+#ifdef FULL_ALGEBRA
+      CALL Jac_SP(Y, FIX, RCONST, JS)
+      DO j=1,NVAR
+         DO j=1,NVAR
+          JV(i,j) = 0.0d0
+         END DO
+      END DO
+      DO i=1,LU_NONZERO
+         JV(LU_IROW(i),LU_ICOL(i)) = JS(i)
+      END DO
+#else
+      CALL Jac_SP(Y, FIX, RCONST, JV)
+#endif
+    
+!    TIME = Told
+
+      END SUBROUTINE JAC_CHEM
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+SUBROUTINE HESS_CHEM( T, Y, Hes )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+
+    USE KPP_ROOT_Rates, ONLY: Update_SUN, Update_RCONST, Update_PHOTO
+
+!~~~> Input variables     
+    KPP_REAL, INTENT(IN)  :: T, Y(NVAR)
+!~~~> Output variables     
+    KPP_REAL, INTENT(OUT) :: Hes(NHESS)
+!~~~> Local variables
+    KPP_REAL :: Told     
+
+!    Told = TIME
+    TIME = T   
+    CALL Update_SUN()
+    CALL Update_RCONST()
+    
+    CALL Hessian( Y, FIX, RCONST, Hes )
+    
+!    TIME = Told
+
+END SUBROUTINE HESS_CHEM                                      
+
+END MODULE KPP_ROOT_Integrator
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/sdirk_tlm.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/sdirk_tlm.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/sdirk_tlm.def	(revision 2696)
@@ -0,0 +1,20 @@
+ 
+#FUNCTION AGGREGATE
+#JACOBIAN SPARSE_LU_ROW
+
+#DOUBLE ON 
+#INTFILE sdirk_tlm
+
+#INLINE F77_GLOBAL
+      REAL*8 STEPSTART
+      COMMON /GDATA/ STEPSTART
+#ENDINLINE
+
+#INLINE F77_INIT
+        STEPMIN=0.0001
+        STEPMAX=3600.
+        STEPSTART=STEPMIN
+#ENDINLINE
+
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/sdirk_tlm.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/sdirk_tlm.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/sdirk_tlm.f90	(revision 2696)
@@ -0,0 +1,1461 @@
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
+!  SDIRK-TLM - Tangent Linear Model of Singly-Diagonally-Implicit RK      !
+!            * Sdirk 2a, 2b: L-stable, 2 stages, order 2                  !
+!            * Sdirk 3a:     L-stable, 3 stages, order 2, adj-invariant   !
+!            * Sdirk 4a, 4b: L-stable, 5 stages, order 4                  !
+!  By default the code employs the KPP sparse linear algebra routines     !
+!  Compile with -DFULL_ALGEBRA to use full linear algebra (LAPACK)        !
+!                                                                         !
+!    (C)  Adrian Sandu, July 2005                                         !
+!    Virginia Polytechnic Institute and State University                  !
+!    Contact: sandu@cs.vt.edu                                             !
+!    Revised by Philipp Miehe and Adrian Sandu, May 2006                  !
+!    This implementation is part of KPP - the Kinetic PreProcessor        !
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
+
+MODULE KPP_ROOT_Integrator
+
+  USE KPP_ROOT_Precision
+  USE KPP_ROOT_Global, ONLY: FIX, RCONST, TIME
+  USE KPP_ROOT_Parameters, ONLY: NVAR, NSPEC, NFIX, LU_NONZERO
+  USE KPP_ROOT_JacobianSP, ONLY: LU_DIAG
+  USE KPP_ROOT_Jacobian, ONLY:   Jac_SP_Vec
+  USE KPP_ROOT_LinearAlgebra, ONLY: KppDecomp,    &
+               KppSolve, Set2zero, WLAMCH, WCOPY, WAXPY, WSCAL, WADD
+  
+  IMPLICIT NONE
+  PUBLIC
+  SAVE
+  
+!~~~>  Statistics on the work performed by the SDIRK method
+  INTEGER, PARAMETER :: Nfun=1, Njac=2, Nstp=3, Nacc=4,  &
+           Nrej=5, Ndec=6, Nsol=7, Nsng=8,               &
+           Ntexit=1, Nhexit=2, Nhnew=3
+                 
+CONTAINS
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+SUBROUTINE INTEGRATE_TLM( NTLM, Y, Y_tlm, TIN, TOUT, ATOL_tlm,RTOL_tlm, &
+       ICNTRL_U, RCNTRL_U, ISTATUS_U, RSTATUS_U, IERR_U )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+    USE KPP_ROOT_Parameters, ONLY: NVAR,ind_O3
+    USE KPP_ROOT_Global,     ONLY: ATOL,RTOL,VAR
+
+    IMPLICIT NONE
+
+!~~~> Y - Concentrations
+    KPP_REAL :: Y(NVAR)
+!~~~> NTLM - No. of sensitivity coefficients
+    INTEGER NTLM
+!~~~> Y_tlm - Sensitivities of concentrations
+!     Note: Y_tlm (1:NVAR,j) contains sensitivities of
+!               Y(1:NVAR) w.r.t. the j-th parameter, j=1...NTLM
+    KPP_REAL :: Y_tlm(NVAR,NTLM)
+    KPP_REAL :: TIN  ! TIN - Start Time
+    KPP_REAL :: TOUT ! TOUT - End Time
+    KPP_REAL, INTENT(IN),  OPTIONAL :: RTOL_tlm(NVAR,NTLM),ATOL_tlm(NVAR,NTLM)
+    INTEGER,       INTENT(IN),  OPTIONAL :: ICNTRL_U(20)
+    KPP_REAL, INTENT(IN),  OPTIONAL :: RCNTRL_U(20)
+    INTEGER,       INTENT(OUT), OPTIONAL :: ISTATUS_U(20)
+    KPP_REAL, INTENT(OUT), OPTIONAL :: RSTATUS_U(20)
+    INTEGER,       INTENT(OUT), OPTIONAL :: IERR_U
+
+    INTEGER :: IERR
+
+    KPP_REAL :: RCNTRL(20), RSTATUS(20), T1, T2
+    INTEGER       :: ICNTRL(20), ISTATUS(20)
+    INTEGER, SAVE :: Ntotal = 0
+
+    ICNTRL(1:20) = 0
+    RCNTRL(1:20) = 0.0_dp
+
+    !~~~> fine-tune the integrator:
+    ICNTRL(2)  = 0   ! 0=vector tolerances, 1=scalar tolerances
+    ICNTRL(5)  = 8   ! Max no. of Newton iterations
+    ICNTRL(6)  = 0   ! Starting values for Newton are interpolated (0) or zero (1)
+    ICNTRL(7)  = 0   ! How to solve TLM: 0=modified Newton, 1=direct
+    ICNTRL(9)  = 0   ! TLM Newton Iterations influence
+    ICNTRL(12) = 0   ! TLM Truncation Error influence
+
+    !~~~> if optional parameters are given, and if they are >0,
+    !     then use them to overwrite default settings
+    IF (PRESENT(ICNTRL_U)) THEN
+      WHERE(ICNTRL_U(:) > 0) ICNTRL(:) = ICNTRL_U(:)
+    END IF
+    IF (PRESENT(RCNTRL_U)) THEN
+      WHERE(RCNTRL_U(:) > 0) RCNTRL(:) = RCNTRL_U(:)
+    END IF
+
+
+    T1 = TIN; T2 = TOUT
+    CALL SdirkTLM(  NVAR, NTLM, T1, T2, Y, Y_tlm, RTOL, ATOL, &
+                    RTOL_tlm, ATOL_tlm, RCNTRL,ICNTRL,RSTATUS,ISTATUS,IERR  )
+
+    !~~~> Debug option: print number of steps
+    ! Ntotal = Ntotal + ISTATUS(Nstp)
+    ! PRINT*,'NSTEPS=',ISTATUS(Nstp),' (',Ntotal,')','  O3=', VAR(ind_O3)
+
+    ! if optional parameters are given for output
+    ! use them to store information in them
+    IF (PRESENT(ISTATUS_U)) ISTATUS_U(:) = ISTATUS(:)
+    IF (PRESENT(RSTATUS_U)) RSTATUS_U(:) = RSTATUS(:)
+    IF (PRESENT(IERR_U)) IERR_U = IERR
+
+    IF (IERR < 0) THEN
+      PRINT *,'SDIRK-TLM: Unsuccessful exit at T=', TIN,' (IERR=',IERR,')'
+    ENDIF
+
+  END SUBROUTINE INTEGRATE_TLM
+
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE SdirkTLM(N, NTLM, Tinitial, Tfinal, Y, Y_tlm, RelTol, AbsTol, &
+                          RelTol_tlm, AbsTol_tlm, &
+			  RCNTRL, ICNTRL, RSTATUS, ISTATUS, Ierr)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!    Solves the system y'=F(t,y) using a Singly-Diagonally-Implicit
+!    Runge-Kutta (SDIRK) method.
+!
+!    This implementation is based on the book and the code Sdirk4:
+!
+!      E. Hairer and G. Wanner
+!      "Solving ODEs II. Stiff and differential-algebraic problems".
+!      Springer series in computational mathematics, Springer-Verlag, 1996.
+!    This code is based on the SDIRK4 routine in the above book.
+!
+!    Methods:
+!            * Sdirk 2a, 2b: L-stable, 2 stages, order 2                  
+!            * Sdirk 3a:     L-stable, 3 stages, order 2, adjoint-invariant   
+!            * Sdirk 4a, 4b: L-stable, 5 stages, order 4                  
+!
+!    (C)  Adrian Sandu, July 2005
+!    Virginia Polytechnic Institute and State University
+!    Contact: sandu@cs.vt.edu
+!    Revised by Philipp Miehe and Adrian Sandu, May 2006                  
+!    This implementation is part of KPP - the Kinetic PreProcessor
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>   INPUT ARGUMENTS:
+!
+!-     Y(NVAR)    = vector of initial conditions (at T=Tinitial)
+!-    [Tinitial,Tfinal]  = time range of integration
+!     (if Tinitial>Tfinal the integration is performed backwards in time)
+!-    RelTol, AbsTol = user precribed accuracy
+!- SUBROUTINE ode_Fun( T, Y, Ydot ) = ODE function,
+!                       returns Ydot = Y' = F(T,Y)
+!- SUBROUTINE ode_Fun( T, Y, Ydot ) = Jacobian of the ODE function,
+!                       returns Jcb = dF/dY
+!-    ICNTRL(1:20)    = integer inputs parameters
+!-    RCNTRL(1:20)    = real inputs parameters
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>     OUTPUT ARGUMENTS:
+!
+!-    Y(NVAR)         -> vector of final states (at T->Tfinal)
+!-    ISTATUS(1:20)   -> integer output parameters
+!-    RSTATUS(1:20)   -> real output parameters
+!-    Ierr            -> job status upon return
+!                        success (positive value) or
+!                        failure (negative value)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>     INPUT PARAMETERS:
+!
+!    Note: For input parameters equal to zero the default values of the
+!       corresponding variables are used.
+!
+!    Note: For input parameters equal to zero the default values of the
+!          corresponding variables are used.
+!~~~>  
+!    ICNTRL(1) = not used
+!
+!    ICNTRL(2) = 0: AbsTol, RelTol are NVAR-dimensional vectors
+!              = 1: AbsTol, RelTol are scalars
+!
+!    ICNTRL(3) = Method
+!
+!    ICNTRL(4)  -> maximum number of integration steps
+!        For ICNTRL(4)=0 the default value of 100000 is used
+!
+!    ICNTRL(5)  -> maximum number of Newton iterations
+!        For ICNTRL(5)=0 the default value of 8 is used
+!
+!    ICNTRL(6)  -> starting values of Newton iterations:
+!        ICNTRL(6)=0 : starting values are interpolated (the default)
+!        ICNTRL(6)=1 : starting values are zero
+!
+!    ICNTRL(7)  -> method to solve TLM equations:
+!        ICNTRL(7)=0 : modified Newton re-using LU (the default)
+!        ICNTRL(7)=1 : direct solution (additional one LU factorization per stage)
+!
+!    ICNTRL(9) -> switch for TLM Newton iteration error estimation strategy
+!		ICNTRL(9) = 0: base number of iterations as forward solution
+!		ICNTRL(9) = 1: use RTOL_tlm and ATOL_tlm to calculate
+!				error estimation for TLM at Newton stages
+!
+!    ICNTRL(12) -> switch for TLM truncation error control
+!		ICNTRL(12) = 0: TLM error is not used
+!		ICNTRL(12) = 1: TLM error is computed and used
+!
+!
+!~~~>  Real parameters
+!
+!    RCNTRL(1)  -> Hmin, lower bound for the integration step size
+!                  It is strongly recommended to keep Hmin = ZERO
+!    RCNTRL(2)  -> Hmax, upper bound for the integration step size
+!    RCNTRL(3)  -> Hstart, starting value for the integration step size
+!
+!    RCNTRL(4)  -> FacMin, lower bound on step decrease factor (default=0.2)
+!    RCNTRL(5)  -> FacMax, upper bound on step increase factor (default=6)
+!    RCNTRL(6)  -> FacRej, step decrease factor after multiple rejections
+!                 (default=0.1)
+!    RCNTRL(7)  -> FacSafe, by which the new step is slightly smaller
+!                  than the predicted value  (default=0.9)
+!    RCNTRL(8)  -> ThetaMin. If Newton convergence rate smaller
+!                  than ThetaMin the Jacobian is not recomputed;
+!                  (default=0.001)
+!    RCNTRL(9)  -> NewtonTol, stopping criterion for Newton's method
+!                  (default=0.03)
+!    RCNTRL(10) -> Qmin
+!    RCNTRL(11) -> Qmax. If Qmin < Hnew/Hold < Qmax, then the
+!                  step size is kept constant and the LU factorization
+!                  reused (default Qmin=1, Qmax=1.2)
+!
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>     OUTPUT PARAMETERS:
+!
+!    Note: each call to Rosenbrock adds the current no. of fcn calls
+!      to previous value of ISTATUS(1), and similar for the other params.
+!      Set ISTATUS(1:10) = 0 before call to avoid this accumulation.
+!
+!    ISTATUS(1) = No. of function calls
+!    ISTATUS(2) = No. of jacobian calls
+!    ISTATUS(3) = No. of steps
+!    ISTATUS(4) = No. of accepted steps
+!    ISTATUS(5) = No. of rejected steps (except at the beginning)
+!    ISTATUS(6) = No. of LU decompositions
+!    ISTATUS(7) = No. of forward/backward substitutions
+!    ISTATUS(8) = No. of singular matrix decompositions
+!
+!    RSTATUS(1)  -> Texit, the time corresponding to the
+!                   computed Y upon return
+!    RSTATUS(2)  -> Hexit,last accepted step before return
+!    RSTATUS(3)  -> Hnew, last predicted step before return
+!        For multiple restarts, use Hnew as Hstart in the following run
+!
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+
+! Arguments      
+      INTEGER, INTENT(IN)          :: N, NTLM, ICNTRL(20)
+      KPP_REAL, INTENT(IN)    :: Tinitial, Tfinal, &
+                    RelTol(N), AbsTol(N), RCNTRL(20), &
+		    RelTol_tlm(N,NTLM), AbsTol_tlm(N,NTLM)
+      KPP_REAL, INTENT(INOUT) :: Y(NVAR), Y_tlm(N,NTLM)
+      INTEGER, INTENT(OUT)         :: Ierr
+      INTEGER, INTENT(INOUT)       :: ISTATUS(20) 
+      KPP_REAL, INTENT(OUT)   :: RSTATUS(20)
+       
+!~~~>  SDIRK method coefficients, up to 5 stages
+      INTEGER, PARAMETER :: Smax = 5
+      INTEGER, PARAMETER :: S2A=1, S2B=2, S3A=3, S4A=4, S4B=5
+      KPP_REAL :: rkGamma, rkA(Smax,Smax), rkB(Smax), rkC(Smax), &
+                       rkD(Smax),  rkE(Smax), rkBhat(Smax), rkELO,    &
+                       rkAlpha(Smax,Smax), rkTheta(Smax,Smax)
+      INTEGER :: sdMethod, rkS ! The number of stages
+
+! Local variables      
+      KPP_REAL :: Hmin, Hmax, Hstart, Roundoff,    &
+                       FacMin, Facmax, FacSafe, FacRej, &
+                       ThetaMin, NewtonTol, Qmin, Qmax
+      INTEGER       :: ITOL, NewtonMaxit, Max_no_steps, i
+      LOGICAL       :: StartNewton, DirectTLM, TLMNewtonEst, TLMtruncErr
+      KPP_REAL, PARAMETER :: ZERO = 0.0d0, ONE = 1.0d0
+
+       
+      Ierr = 0
+      ISTATUS(1:20) = 0
+      RSTATUS(1:20) = ZERO
+
+!~~~>  For Scalar tolerances (ICNTRL(2).NE.0)  the code uses AbsTol(1) and RelTol(1)
+!   For Vector tolerances (ICNTRL(2) == 0) the code uses AbsTol(1:NVAR) and RelTol(1:NVAR)
+      IF (ICNTRL(2) == 0) THEN
+         ITOL = 1
+      ELSE
+         ITOL = 0
+      END IF
+
+!~~~> ICNTRL(3) - method selection       
+      SELECT CASE (ICNTRL(3))
+      CASE (0,1)
+         CALL Sdirk2a
+      CASE (2)
+         CALL Sdirk2b
+      CASE (3)
+         CALL Sdirk3a
+      CASE (4)
+         CALL Sdirk4a
+      CASE (5)
+         CALL Sdirk4b
+      CASE DEFAULT
+         CALL Sdirk2a
+      END SELECT
+      
+!~~~>   The maximum number of time steps admitted
+      IF (ICNTRL(4) == 0) THEN
+         Max_no_steps = 200000
+      ELSEIF (ICNTRL(4) > 0) THEN
+         Max_no_steps=ICNTRL(4)
+      ELSE
+         PRINT * ,'User-selected ICNTRL(4)=',ICNTRL(4)
+         CALL SDIRK_ErrorMsg(-1,Tinitial,ZERO,Ierr)
+   END IF
+   !~~~> The maximum number of Newton iterations admitted
+      IF(ICNTRL(5) == 0)THEN
+         NewtonMaxit=8
+      ELSE
+         NewtonMaxit=ICNTRL(5)
+         IF(NewtonMaxit <= 0)THEN
+             PRINT * ,'User-selected ICNTRL(5)=',ICNTRL(5)
+             CALL SDIRK_ErrorMsg(-2,Tinitial,ZERO,Ierr)
+         END IF
+      END IF
+!~~~> StartNewton:  Use extrapolation for starting values of Newton iterations
+      IF (ICNTRL(6) == 0) THEN
+         StartNewton = .TRUE.
+      ELSE
+         StartNewton = .FALSE.
+      END IF      
+!~~~> Solve TLM equations directly or by Newton iterations 
+      DirectTLM = (ICNTRL(7) == 1)
+!~~~> Newton iteration error control selection  
+      IF (ICNTRL(9) == 0) THEN 
+         TLMNewtonEst = .FALSE.
+      ELSE
+         TLMNewtonEst = .TRUE.
+      END IF      
+!~~~> TLM truncation error control selection  
+      IF (ICNTRL(12) == 0) THEN 
+         TLMtruncErr = .FALSE.
+      ELSE
+         TLMtruncErr = .TRUE.
+      END IF      
+           
+!~~~>  Unit roundoff (1+Roundoff>1)
+      Roundoff = WLAMCH('E')
+
+!~~~>  Lower bound on the step size: (positive value)
+      IF (RCNTRL(1) == ZERO) THEN
+         Hmin = ZERO
+      ELSEIF (RCNTRL(1) > ZERO) THEN
+         Hmin = RCNTRL(1)
+      ELSE
+         PRINT * , 'User-selected RCNTRL(1)=', RCNTRL(1)
+         CALL SDIRK_ErrorMsg(-3,Tinitial,ZERO,Ierr)
+      END IF
+   
+!~~~>  Upper bound on the step size: (positive value)
+      IF (RCNTRL(2) == ZERO) THEN
+         Hmax = ABS(Tfinal-Tinitial)
+      ELSEIF (RCNTRL(2) > ZERO) THEN
+         Hmax = MIN(ABS(RCNTRL(2)),ABS(Tfinal-Tinitial))
+      ELSE
+         PRINT * , 'User-selected RCNTRL(2)=', RCNTRL(2)
+         CALL SDIRK_ErrorMsg(-3,Tinitial,ZERO,Ierr)
+      END IF
+   
+!~~~>  Starting step size: (positive value)
+      IF (RCNTRL(3) == ZERO) THEN
+         Hstart = MAX(Hmin,Roundoff)
+      ELSEIF (RCNTRL(3) > ZERO) THEN
+         Hstart = MIN(ABS(RCNTRL(3)),ABS(Tfinal-Tinitial))
+      ELSE
+         PRINT * , 'User-selected Hstart: RCNTRL(3)=', RCNTRL(3)
+         CALL SDIRK_ErrorMsg(-3,Tinitial,ZERO,Ierr)
+      END IF
+   
+!~~~>  Step size can be changed s.t.  FacMin < Hnew/Hexit < FacMax
+      IF (RCNTRL(4) == ZERO) THEN
+         FacMin = 0.2_dp
+      ELSEIF (RCNTRL(4) > ZERO) THEN
+         FacMin = RCNTRL(4)
+      ELSE
+         PRINT * , 'User-selected FacMin: RCNTRL(4)=', RCNTRL(4)
+         CALL SDIRK_ErrorMsg(-4,Tinitial,ZERO,Ierr)
+      END IF
+      IF (RCNTRL(5) == ZERO) THEN
+         FacMax = 10.0_dp
+      ELSEIF (RCNTRL(5) > ZERO) THEN
+         FacMax = RCNTRL(5)
+      ELSE
+         PRINT * , 'User-selected FacMax: RCNTRL(5)=', RCNTRL(5)
+         CALL SDIRK_ErrorMsg(-4,Tinitial,ZERO,Ierr)
+      END IF
+!~~~>   FacRej: Factor to decrease step after 2 succesive rejections
+      IF (RCNTRL(6) == ZERO) THEN
+         FacRej = 0.1_dp
+      ELSEIF (RCNTRL(6) > ZERO) THEN
+         FacRej = RCNTRL(6)
+      ELSE
+         PRINT * , 'User-selected FacRej: RCNTRL(6)=', RCNTRL(6)
+         CALL SDIRK_ErrorMsg(-4,Tinitial,ZERO,Ierr)
+      END IF
+!~~~>   FacSafe: Safety Factor in the computation of new step size
+      IF (RCNTRL(7) == ZERO) THEN
+         FacSafe = 0.9_dp
+      ELSEIF (RCNTRL(7) > ZERO) THEN
+         FacSafe = RCNTRL(7)
+      ELSE
+         PRINT * , 'User-selected FacSafe: RCNTRL(7)=', RCNTRL(7)
+         CALL SDIRK_ErrorMsg(-4,Tinitial,ZERO,Ierr)
+      END IF
+
+!~~~> ThetaMin: decides whether the Jacobian should be recomputed
+      IF(RCNTRL(8) == 0.D0)THEN
+         ThetaMin = 1.0d-3
+      ELSE
+         ThetaMin = RCNTRL(8)
+      END IF
+
+!~~~> Stopping criterion for Newton's method
+      IF(RCNTRL(9) == ZERO)THEN
+         NewtonTol = 3.0d-2
+      ELSE
+         NewtonTol = RCNTRL(9)
+      END IF
+
+!~~~> Qmin, Qmax: IF Qmin < Hnew/Hold < Qmax, STEP SIZE = CONST.
+      IF(RCNTRL(10) == ZERO)THEN
+         Qmin=ONE
+      ELSE
+         Qmin=RCNTRL(10)
+      END IF
+      IF(RCNTRL(11) == ZERO)THEN
+         Qmax=1.2D0
+      ELSE
+         Qmax=RCNTRL(11)
+      END IF
+
+!~~~>  Check if tolerances are reasonable
+      IF (ITOL == 0) THEN
+         IF (AbsTol(1) <= ZERO .OR. RelTol(1) <= 10.D0*Roundoff) THEN
+            PRINT * , ' Scalar AbsTol = ',AbsTol(1)
+            PRINT * , ' Scalar RelTol = ',RelTol(1)
+            CALL SDIRK_ErrorMsg(-5,Tinitial,ZERO,Ierr)
+         END IF
+      ELSE
+         DO i=1,N
+            IF (AbsTol(i) <= 0.D0.OR.RelTol(i) <= 10.D0*Roundoff) THEN
+              PRINT * , ' AbsTol(',i,') = ',AbsTol(i)
+              PRINT * , ' RelTol(',i,') = ',RelTol(i)
+              CALL SDIRK_ErrorMsg(-5,Tinitial,ZERO,Ierr)
+            END IF
+         END DO
+      END IF
+    
+    IF (Ierr < 0) RETURN
+
+    CALL SDIRK_IntegratorTLM( N,NTLM,Tinitial,Tfinal,Y,Y_tlm,Ierr )
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   CONTAINS  !  PROCEDURES INTERNAL TO SDIRK
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE SDIRK_IntegratorTLM( N,NTLM,Tinitial,Tfinal,Y,Y_tlm,Ierr )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      USE KPP_ROOT_Parameters
+      IMPLICIT NONE
+
+!~~~> Arguments:      
+      INTEGER, INTENT(IN) :: N, NTLM
+      KPP_REAL, INTENT(INOUT) :: Y(N), Y_tlm(N,NTLM)
+      KPP_REAL, INTENT(IN) :: Tinitial, Tfinal
+      INTEGER, INTENT(OUT) :: Ierr
+      
+!~~~> Local variables:      
+      KPP_REAL :: Z(NVAR,rkS), G(NVAR), TMP(NVAR),         &   
+                       NewtonRate, SCAL(NVAR), DZ(NVAR),        &
+                       T, H, Theta, Hratio, NewtonPredictedErr, &
+                       Qnewton, Err, Fac, Hnew, Tdirection,     &
+                       NewtonIncrement, NewtonIncrementOld, &
+		       SCAL_tlm(NVAR), Yerr(N), Yerr_tlm(N,NTLM), ThetaTLM
+      KPP_REAL :: Z_tlm(NVAR,rkS,NTLM)
+      INTEGER :: itlm, j, IER, istage, NewtonIter, saveNiter, NewtonIterTLM
+      INTEGER :: IP(NVAR), IP_tlm(NVAR)
+      LOGICAL :: Reject, FirstStep, SkipJac, SkipLU, NewtonDone
+      
+#ifdef FULL_ALGEBRA      
+      KPP_REAL, DIMENSION(NVAR,NVAR)  :: FJAC, E, Jac, E_tlm
+#else      
+      KPP_REAL, DIMENSION(LU_NONZERO) :: FJAC, E, Jac, E_tlm
+#endif      
+      KPP_REAL, PARAMETER :: ZERO = 0.0d0, ONE = 1.0d0
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Initializations
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      T = Tinitial
+      Tdirection = SIGN(ONE,Tfinal-Tinitial)
+      H = MAX(ABS(Hmin),ABS(Hstart))
+      IF (ABS(H) <= 10.D0*Roundoff) H=1.0D-6
+      H=MIN(ABS(H),Hmax)
+      H=SIGN(H,Tdirection)
+      SkipLU  = .FALSE.
+      SkipJac = .FALSE.
+      Reject =  .FALSE.
+      FirstStep=.TRUE.
+
+      CALL SDIRK_ErrorScale(N, ITOL, AbsTol, RelTol, Y, SCAL)
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Time loop begins
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Tloop: DO WHILE ( (Tfinal-T)*Tdirection - Roundoff > ZERO )
+
+
+!~~~>  Compute E = 1/(h*gamma)-Jac and its LU decomposition
+      IF ( .NOT.SkipLU ) THEN ! This time around skip the Jac update and LU
+         CALL SDIRK_PrepareMatrix ( H, T, Y, FJAC, &
+                   SkipJac, SkipLU, E, IP, Reject, IER )
+         IF (IER /= 0) THEN
+             CALL SDIRK_ErrorMsg(-8,T,H,Ierr); RETURN
+         END IF
+      END IF      
+
+      IF (ISTATUS(Nstp) > Max_no_steps) THEN
+             CALL SDIRK_ErrorMsg(-6,T,H,Ierr); RETURN
+      END IF   
+      IF ( (T+0.1d0*H == T) .OR. (ABS(H) <= Roundoff) ) THEN
+             CALL SDIRK_ErrorMsg(-7,T,H,Ierr); RETURN
+      END IF   
+
+stages:DO istage = 1, rkS
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Simplified Newton iterations
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+!~~~>  Starting values for Newton iterations
+       CALL Set2zero(N,Z(1,istage))
+       
+!~~~>   Prepare the loop-independent part of the right-hand side
+       CALL Set2zero(N,G)
+       IF (istage > 1) THEN
+           DO j = 1, istage-1
+               ! Gj(:) = sum_j Theta(i,j)*Zj(:) = H * sum_j A(i,j)*Fun(Zj(:))
+               CALL WAXPY(N,rkTheta(istage,j),Z(1,j),1,G,1)
+               ! Zi(:) = sum_j Alpha(i,j)*Zj(:)
+	       IF (StartNewton) THEN
+                 CALL WAXPY(N,rkAlpha(istage,j),Z(1,j),1,Z(1,istage),1)
+	       END IF
+           END DO
+       END IF
+
+       !~~~>  Initializations for Newton iteration
+       NewtonDone = .FALSE.
+       Fac = 0.5d0 ! Step reduction factor if too many iterations
+            
+NewtonLoop:DO NewtonIter = 1, NewtonMaxit
+
+!~~~>   Prepare the loop-dependent part of the right-hand side
+ 	    CALL WADD(N,Y,Z(1,istage),TMP)         	! TMP <- Y + Zi
+            CALL FUN_CHEM(T+rkC(istage)*H,TMP,DZ)	! DZ <- Fun(Y+Zi)
+            ISTATUS(Nfun) = ISTATUS(Nfun) + 1
+!            DZ(1:N) = G(1:N) - Z(1:N,istage) + (H*rkGamma)*DZ(1:N)
+	    CALL WSCAL(N, H*rkGamma, DZ, 1)
+	    CALL WAXPY (N, -ONE, Z(1,istage), 1, DZ, 1)
+            CALL WAXPY (N, ONE, G,1, DZ,1)
+
+!~~~>   Solve the linear system
+            CALL SDIRK_Solve ( H, N, E, IP, IER, DZ )
+            
+!~~~>   Check convergence of Newton iterations
+            CALL SDIRK_ErrorNorm(N, DZ, SCAL, NewtonIncrement)
+            IF ( NewtonIter == 1 ) THEN
+                Theta      = ABS(ThetaMin)
+                NewtonRate = 2.0d0 
+            ELSE
+                Theta = NewtonIncrement/NewtonIncrementOld
+                IF (Theta < 0.99d0) THEN
+                    NewtonRate = Theta/(ONE-Theta)
+                    ! Predict error at the end of Newton process 
+                    NewtonPredictedErr = NewtonIncrement &
+                               *Theta**(NewtonMaxit-NewtonIter)/(ONE-Theta)
+                    IF (NewtonPredictedErr >= NewtonTol) THEN
+                      ! Non-convergence of Newton: predicted error too large
+                      Qnewton = MIN(10.0d0,NewtonPredictedErr/NewtonTol)
+                      Fac = 0.8d0*Qnewton**(-ONE/(1+NewtonMaxit-NewtonIter))
+                      EXIT NewtonLoop
+                    END IF
+                ELSE ! Non-convergence of Newton: Theta too large
+                    EXIT NewtonLoop
+                END IF
+            END IF
+            NewtonIncrementOld = NewtonIncrement
+            ! Update solution: Z(:) <-- Z(:)+DZ(:)
+            CALL WAXPY(N,ONE,DZ,1,Z(1,istage),1) 
+            
+            ! Check error in Newton iterations
+            NewtonDone = (NewtonRate*NewtonIncrement <= NewtonTol)
+            IF (NewtonDone) THEN
+    	       ! Tune error in TLM variables by defining the minimal number of Newton iterations.
+	       saveNiter = NewtonIter+1
+	       EXIT NewtonLoop
+	    END IF
+            
+            END DO NewtonLoop
+            
+            IF (.NOT.NewtonDone) THEN
+                 !CALL RK_ErrorMsg(-12,T,H,Ierr);
+                 H = Fac*H; Reject=.TRUE.
+                 SkipJac = .TRUE.; SkipLU = .FALSE.
+                 CYCLE Tloop
+            END IF
+
+!~~~>  End of simplified Newton iterations for forward variables
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Solve for TLM variables
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+!~~~>  Direct solution for TLM variables
+DirTLM:IF (DirectTLM) THEN 
+
+         TMP(1:N) = Y(1:N) + Z(1:N,istage)
+         SkipJac = .FALSE.
+         CALL SDIRK_PrepareMatrix ( H, T+rkC(istage)*H, TMP, Jac, &
+                   SkipJac, SkipLU, E_tlm, IP_tlm, Reject, IER )
+         IF (IER /= 0) CYCLE TLoop
+
+TlmL:    DO itlm = 1, NTLM
+            G(1:N) = Y_tlm(1:N,itlm)
+            IF (istage > 1) THEN
+              ! Gj(:) = sum_j Theta(i,j)*Zj_tlm(:) 
+              !       = H * sum_j A(i,j)*Jac(Zj(:))*(Yj_tlm+Zj_tlm)
+              DO j = 1, istage-1
+                  CALL WAXPY(N,rkTheta(istage,j),Z_tlm(1,j,itlm),1,G,1)
+              END DO
+            END IF
+            CALL SDIRK_Solve ( H, N, E_tlm, IP_tlm, IER, G )
+            Z_tlm(1:N,istage,itlm) = G(1:N) - Y_tlm(1:N,itlm)
+         END DO TlmL
+
+       ELSE DirTLM
+
+!~~~>  Jacobian of the current stage solution
+       TMP(1:N) = Y(1:N) + Z(1:N,istage)
+       CALL JAC_CHEM(T+rkC(istage)*H,TMP,Jac)
+       ISTATUS(Njac) = ISTATUS(Njac) + 1
+
+!~~~>  Simplified Newton iterations for TLM variables
+TlmLoop:DO itlm = 1,NTLM
+       NewtonRate = MAX(NewtonRate,Roundoff)**0.8d0
+
+!~~~>  Starting values for Newton iterations
+       CALL Set2zero(N,Z_tlm(1,istage,itlm))
+       
+!~~~>   Prepare the loop-independent part of the right-hand side
+#ifdef FULL_ALGEBRA  
+       DZ = MATMUL(Jac,Y_tlm(1,itlm))    ! DZ <- Jac(Y+Z)*Y_tlm
+#else      
+       CALL Jac_SP_Vec ( Jac, Y_tlm(1,itlm), DZ )    
+#endif      
+       G(1:N) = (H*rkGamma)*DZ(1:N)
+       IF (istage > 1) THEN
+           ! Gj(:) = sum_j Theta(i,j)*Zj_tlm(:) 
+           !       = H * sum_j A(i,j)*Jac(Zj(:))*(Yj_tlm+Zj_tlm)
+           DO j = 1, istage-1
+               CALL WAXPY(N,rkTheta(istage,j),Z_tlm(1,j,itlm),1,G,1)
+           END DO
+       END IF
+       
+       
+       !~~~>  Initializations for Newton iteration
+       IF (TLMNewtonEst) THEN
+          NewtonDone = .FALSE.
+          Fac = 0.5d0 ! Step reduction factor if too many iterations
+
+          CALL SDIRK_ErrorScale(N,ITOL,AbsTol_tlm(1,itlm),RelTol_tlm(1,itlm), &
+               Y_tlm(1,itlm),SCAL_tlm)
+       END IF
+            
+NewtonLoopTLM:DO NewtonIterTLM = 1, NewtonMaxit
+
+!~~~>   Prepare the loop-dependent part of the right-hand side
+#ifdef FULL_ALGEBRA  
+            DZ = MATMUL(Jac,Z_tlm(1,istage,itlm))    ! DZ <- Jac(Y+Z)*Z_tlm
+#else      
+            CALL Jac_SP_Vec ( Jac, Z_tlm(1,istage,itlm), DZ )    
+#endif      
+            DZ(1:N) = (H*rkGamma)*DZ(1:N)+G(1:N)-Z_tlm(1:N,istage,itlm)
+
+            CALL SDIRK_Solve ( H, N, E, IP, IER, DZ )
+            
+	    IF (TLMNewtonEst) THEN
+!~~~>   Check convergence of Newton iterations
+            CALL SDIRK_ErrorNorm(N, DZ, SCAL_tlm, NewtonIncrement)
+            IF ( NewtonIterTLM <= 1 ) THEN
+                ThetaTLM      = ABS(ThetaMin)
+                NewtonRate = 2.0d0 
+            ELSE
+                ThetaTLM = NewtonIncrement/NewtonIncrementOld
+                IF (ThetaTLM < 0.99d0) THEN
+                    NewtonRate = ThetaTLM/(ONE-ThetaTLM)
+                    ! Predict error at the end of Newton process 
+                    NewtonPredictedErr = NewtonIncrement &
+                               *ThetaTLM**(NewtonMaxit-NewtonIterTLM)/(ONE-ThetaTLM)
+                    IF (NewtonPredictedErr >= NewtonTol) THEN
+                      ! Non-convergence of Newton: predicted error too large
+                      Qnewton = MIN(10.0d0,NewtonPredictedErr/NewtonTol)
+                      Fac = 0.8d0*Qnewton**(-ONE/(1+NewtonMaxit-NewtonIterTLM))
+                      EXIT NewtonLoopTLM
+                    END IF
+                ELSE ! Non-convergence of Newton: Theta too large
+                    EXIT NewtonLoopTLM
+                END IF
+            END IF
+            NewtonIncrementOld = NewtonIncrement
+	    END IF !(TLMNewtonEst)
+	    
+            ! Update solution: Z_tlm(:) <-- Z_tlm(:)+DZ(:)
+            CALL WAXPY(N,ONE,DZ,1,Z_tlm(1,istage,itlm),1) 
+            
+            ! Check error in Newton iterations
+            IF (TLMNewtonEst) THEN
+               NewtonDone = (NewtonRate*NewtonIncrement <= NewtonTol)
+               IF (NewtonDone) EXIT NewtonLoopTLM
+	    ELSE
+  	       ! Minimum number of iterations same as FWD iterations
+               IF (NewtonIterTLM>=saveNiter) EXIT NewtonLoopTLM
+	    END IF
+            
+            END DO NewtonLoopTLM
+            
+            IF ((TLMNewtonEst) .AND. (.NOT.NewtonDone)) THEN
+                 !CALL RK_ErrorMsg(-12,T,H,Ierr);
+                 H = Fac*H; Reject=.TRUE.
+                 SkipJac = .TRUE.; SkipLU = .FALSE.
+                 CYCLE Tloop
+            END IF
+
+      END DO TlmLoop
+!~~~> End of simplified Newton iterations for TLM
+
+    END IF DirTLM
+
+   END DO stages
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Error estimation 
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      ISTATUS(Nstp) = ISTATUS(Nstp) + 1
+      CALL Set2zero(N,Yerr)
+      DO i = 1,rkS
+         IF (rkE(i)/=ZERO) CALL WAXPY(N,rkE(i),Z(1,i),1,Yerr,1)
+      END DO  
+
+      CALL SDIRK_Solve ( H, N, E, IP, IER, Yerr )
+      CALL SDIRK_ErrorNorm(N, Yerr, SCAL, Err)
+
+      IF (TLMtruncErr) THEN
+        CALL Set2zero(NVAR*NTLM,Yerr_tlm)
+        DO itlm=1,NTLM
+          DO j=1,rkS  
+            IF (rkE(j) /= ZERO) CALL WAXPY(N,rkE(j),Z_tlm(1,j,itlm),1,Yerr_tlm(1,itlm),1)
+          END DO 
+	  CALL SDIRK_Solve (H, N, E, IP, IER, Yerr_tlm(1,itlm))
+        END DO
+        CALL SDIRK_ErrorNorm_tlm(N,NTLM, Yerr_tlm, Err)
+      END IF
+
+!~~~> Computation of new step size Hnew
+      Fac  = FacSafe*(Err)**(-ONE/rkELO)
+      Fac  = MAX(FacMin,MIN(FacMax,Fac))
+      Hnew = H*Fac
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Accept/Reject step
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+accept: IF ( Err < ONE ) THEN !~~~> Step is accepted
+
+         FirstStep=.FALSE.
+         ISTATUS(Nacc) = ISTATUS(Nacc) + 1
+
+!~~~> Update time and solution
+         T  =  T + H
+         ! Y(:) <-- Y(:) + Sum_j rkD(j)*Z_j(:)
+         DO i = 1,rkS 
+            IF (rkD(i)/=ZERO) THEN
+                 CALL WAXPY(N,rkD(i),Z(1,i),1,Y,1)
+                 DO itlm = 1, NTLM
+                   CALL WAXPY(N,rkD(i),Z_tlm(1,i,itlm),1,Y_tlm(1,itlm),1)
+                 END DO  
+            END IF     
+         END DO  
+       
+!~~~> Update scaling coefficients
+         CALL SDIRK_ErrorScale(N, ITOL, AbsTol, RelTol, Y, SCAL)
+
+!~~~> Next time step
+         Hnew = Tdirection*MIN(ABS(Hnew),Hmax)
+         ! Last T and H
+         RSTATUS(Ntexit) = T
+         RSTATUS(Nhexit) = H
+         RSTATUS(Nhnew)  = Hnew
+         ! No step increase after a rejection
+         IF (Reject) Hnew = Tdirection*MIN(ABS(Hnew),ABS(H))
+         Reject = .FALSE.
+         IF ((T+Hnew/Qmin-Tfinal)*Tdirection > ZERO) THEN
+            H = Tfinal-T
+         ELSE
+            Hratio=Hnew/H
+            ! If step not changed too much keep Jacobian and reuse LU
+            SkipLU = ( (Theta <= ThetaMin) .AND. (Hratio >= Qmin) &
+                                     .AND. (Hratio <= Qmax) )
+            ! For TLM: do not skip LU (decrease TLM error)
+   	    SkipLU = .FALSE.
+            IF (.NOT.SkipLU) H = Hnew
+         END IF
+         ! If convergence is fast enough, do not update Jacobian
+!         SkipJac = (Theta <= ThetaMin)
+         SkipJac = .FALSE.
+
+      ELSE accept !~~~> Step is rejected
+
+         IF (FirstStep .OR. Reject) THEN
+             H = FacRej*H
+         ELSE
+             H = Hnew
+         END IF
+         Reject = .TRUE.
+         SkipJac = .TRUE.
+         SkipLU  = .FALSE. 
+         IF (ISTATUS(Nacc) >= 1) ISTATUS(Nrej) = ISTATUS(Nrej) + 1
+         
+      END IF accept
+      
+      END DO Tloop
+
+      ! Successful return
+      Ierr  = 1
+  
+      END SUBROUTINE SDIRK_IntegratorTLM
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE SDIRK_ErrorScale(N, ITOL, AbsTol, RelTol, Y, SCAL)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      INTEGER :: N, i, ITOL
+      KPP_REAL :: AbsTol(NVAR), RelTol(NVAR), &
+                       Y(NVAR), SCAL(NVAR)
+      IF (ITOL == 0) THEN
+        DO i=1,N
+          SCAL(i) = ONE / ( AbsTol(1)+RelTol(1)*ABS(Y(i)) )
+        END DO
+      ELSE
+        DO i=1,N
+          SCAL(i) = ONE / ( AbsTol(i)+RelTol(i)*ABS(Y(i)) )
+        END DO
+      END IF
+      END SUBROUTINE SDIRK_ErrorScale
+      
+      
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE SDIRK_ErrorNorm(N, Y, SCAL, Err)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!      
+      INTEGER :: i, N
+      KPP_REAL :: Y(N), SCAL(N), Err      
+      Err = ZERO
+      DO i=1,N
+           Err = Err+(Y(i)*SCAL(i))**2
+      END DO
+      Err = MAX( SQRT(Err/DBLE(N)), 1.0d-10 )
+!
+      END SUBROUTINE SDIRK_ErrorNorm
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE SDIRK_ErrorNorm_tlm(N,NTLM, Y_tlm, FWD_Err)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!      
+      INTEGER :: itlm, NTLM, N
+      KPP_REAL :: Y_tlm(N,NTLM), SCAL_tlm(N), FWD_Err, Err  
+      
+      DO itlm=1,NTLM
+        CALL SDIRK_ErrorScale(N,ITOL,AbsTol_tlm(1,itlm),RelTol_tlm(1,itlm), &
+               Y_tlm(1,itlm),SCAL_tlm)
+	CALL SDIRK_ErrorNorm(N, Y_tlm(1,itlm), SCAL_tlm, Err)
+	FWD_Err = MAX(FWD_Err, Err)
+      END DO
+!
+      END SUBROUTINE SDIRK_ErrorNorm_tlm
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE SDIRK_ErrorMsg(Code,T,H,Ierr)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!    Handles all error messages
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+   KPP_REAL, INTENT(IN) :: T, H
+   INTEGER, INTENT(IN)  :: Code
+   INTEGER, INTENT(OUT) :: Ierr
+
+   Ierr = Code
+   PRINT * , &
+     'Forced exit from SDIRK due to the following error:'
+
+   SELECT CASE (Code)
+    CASE (-1)
+      PRINT * , '--> Improper value for maximal no of steps'
+    CASE (-2)
+      PRINT * , '--> Improper value for maximal no of Newton iterations'
+    CASE (-3)
+      PRINT * , '--> Hmin/Hmax/Hstart must be positive'
+    CASE (-4)
+      PRINT * , '--> FacMin/FacMax/FacRej must be positive'
+    CASE (-5)
+      PRINT * , '--> Improper tolerance values'
+    CASE (-6)
+      PRINT * , '--> No of steps exceeds maximum bound'
+    CASE (-7)
+      PRINT * , '--> Step size too small: T + 10*H = T', &
+            ' or H < Roundoff'
+    CASE (-8)
+      PRINT * , '--> Matrix is repeatedly singular'
+    CASE DEFAULT
+      PRINT *, 'Unknown Error code: ', Code
+   END SELECT
+
+   PRINT *, "T=", T, "and H=", H
+
+ END SUBROUTINE SDIRK_ErrorMsg
+      
+      
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE SDIRK_PrepareMatrix ( H, T, Y, FJAC, &
+                   SkipJac, SkipLU, E, IP, Reject, ISING )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Compute the matrix E = I - 1/(H*Gamma)*Jac, and its decomposition
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+     
+      IMPLICIT NONE
+      
+      KPP_REAL, INTENT(INOUT) :: H
+      KPP_REAL, INTENT(IN)    :: T, Y(NVAR)
+      LOGICAL, INTENT(INOUT)       :: SkipJac,SkipLU,Reject
+      INTEGER, INTENT(OUT)         :: ISING, IP(NVAR)
+#ifdef FULL_ALGEBRA
+      KPP_REAL, INTENT(INOUT) :: FJAC(NVAR,NVAR)
+      KPP_REAL, INTENT(OUT)   :: E(NVAR,NVAR)
+#else
+      KPP_REAL, INTENT(INOUT) :: FJAC(LU_NONZERO)
+      KPP_REAL, INTENT(OUT)   :: E(LU_NONZERO)
+#endif
+      KPP_REAL                :: HGammaInv
+      INTEGER                      :: i, j, ConsecutiveSng
+
+      ConsecutiveSng = 0
+      ISING = 1
+      
+Hloop: DO WHILE (ISING /= 0)
+      
+      HGammaInv = ONE/(H*rkGamma)
+
+!~~~>  Compute the Jacobian
+!      IF (SkipJac) THEN
+!          SkipJac = .FALSE.
+!      ELSE
+      IF (.NOT. SkipJac) THEN
+          CALL JAC_CHEM( T, Y, FJAC )
+          ISTATUS(Njac) = ISTATUS(Njac) + 1
+      END IF  
+      
+#ifdef FULL_ALGEBRA
+      DO j=1,NVAR
+         DO i=1,NVAR
+            E(i,j) = -FJAC(i,j)
+         END DO
+         E(j,j) = E(j,j)+HGammaInv
+      END DO
+      CALL DGETRF( NVAR, NVAR, E, NVAR, IP, ISING )
+#else
+      DO i = 1,LU_NONZERO
+            E(i) = -FJAC(i)
+      END DO
+      DO i = 1,NVAR
+          j = LU_DIAG(i); E(j) = E(j) + HGammaInv
+      END DO
+      CALL KppDecomp ( E, ISING)
+      IP(1) = 1
+#endif
+      ISTATUS(Ndec) = ISTATUS(Ndec) + 1
+
+      IF (ISING /= 0) THEN
+          WRITE (6,*) ' MATRIX IS SINGULAR, ISING=',ISING,' T=',T,' H=',H
+          ISTATUS(Nsng) = ISTATUS(Nsng) + 1; ConsecutiveSng = ConsecutiveSng + 1
+          IF (ConsecutiveSng >= 6) RETURN ! Failure
+          H = 0.5d0*H
+          SkipJac = .TRUE.
+          SkipLU  = .FALSE.
+          Reject  = .TRUE.
+      END IF
+      
+      END DO Hloop
+
+      END SUBROUTINE SDIRK_PrepareMatrix
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE SDIRK_Solve ( H, N, E, IP, ISING, RHS )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Solves the system (H*Gamma-Jac)*x = R
+!      using the LU decomposition of E = I - 1/(H*Gamma)*Jac
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      INTEGER, INTENT(IN)       :: N, IP(N), ISING
+      KPP_REAL, INTENT(IN) :: H
+#ifdef FULL_ALGEBRA
+      KPP_REAL, INTENT(IN) :: E(NVAR,NVAR)
+#else
+      KPP_REAL, INTENT(IN) :: E(LU_NONZERO)
+#endif
+      KPP_REAL, INTENT(INOUT) :: RHS(N)
+      KPP_REAL                :: HGammaInv
+      
+      HGammaInv = ONE/(H*rkGamma)
+      CALL WSCAL(N,HGammaInv,RHS,1)
+#ifdef FULL_ALGEBRA  
+      CALL DGETRS( 'N', N, 1, E, N, IP, RHS, N, ISING )
+#else
+      CALL KppSolve(E, RHS)
+#endif
+      ISTATUS(Nsol) = ISTATUS(Nsol) + 1
+ 
+      END SUBROUTINE SDIRK_Solve
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE Sdirk4a
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      sdMethod = S4A
+! Number of stages
+      rkS = 5
+
+! Method coefficients
+      rkGamma = .2666666666666666666666666666666667d0
+
+      rkA(1,1) = .2666666666666666666666666666666667d0
+      rkA(2,1) = .5000000000000000000000000000000000d0
+      rkA(2,2) = .2666666666666666666666666666666667d0
+      rkA(3,1) = .3541539528432732316227461858529820d0
+      rkA(3,2) = -.5415395284327323162274618585298197d-1
+      rkA(3,3) = .2666666666666666666666666666666667d0
+      rkA(4,1) = .8515494131138652076337791881433756d-1
+      rkA(4,2) = -.6484332287891555171683963466229754d-1
+      rkA(4,3) = .7915325296404206392428857585141242d-1
+      rkA(4,4) = .2666666666666666666666666666666667d0
+      rkA(5,1) = 2.100115700566932777970612055999074d0
+      rkA(5,2) = -.7677800284445976813343102185062276d0
+      rkA(5,3) = 2.399816361080026398094746205273880d0
+      rkA(5,4) = -2.998818699869028161397714709433394d0
+      rkA(5,5) = .2666666666666666666666666666666667d0
+
+      rkB(1)   = 2.100115700566932777970612055999074d0
+      rkB(2)   = -.7677800284445976813343102185062276d0
+      rkB(3)   = 2.399816361080026398094746205273880d0
+      rkB(4)   = -2.998818699869028161397714709433394d0
+      rkB(5)   = .2666666666666666666666666666666667d0
+
+      rkBhat(1)= 2.885264204387193942183851612883390d0
+      rkBhat(2)= -.1458793482962771337341223443218041d0
+      rkBhat(3)= 2.390008682465139866479830743628554d0
+      rkBhat(4)= -4.129393538556056674929560012190140d0
+      rkBhat(5)= 0.d0
+
+      rkC(1)   = .2666666666666666666666666666666667d0
+      rkC(2)   = .7666666666666666666666666666666667d0
+      rkC(3)   = .5666666666666666666666666666666667d0
+      rkC(4)   = .3661315380631796996374935266701191d0
+      rkC(5)   = 1.d0
+
+! Ynew = Yold + h*Sum_i {rkB_i*k_i} = Yold + Sum_i {rkD_i*Z_i}
+      rkD(1)   = 0.d0
+      rkD(2)   = 0.d0
+      rkD(3)   = 0.d0
+      rkD(4)   = 0.d0
+      rkD(5)   = 1.d0
+
+! Err = h * Sum_i {(rkB_i-rkBhat_i)*k_i} = Sum_i {rkE_i*Z_i}
+      rkE(1)   = -.6804000050475287124787034884002302d0
+      rkE(2)   = 1.558961944525217193393931795738823d0
+      rkE(3)   = -13.55893003128907927748632408763868d0
+      rkE(4)   = 15.48522576958521253098585004571302d0
+      rkE(5)   = 1.d0
+
+! Local order of Err estimate
+      rkElo    = 4
+
+! h*Sum_j {rkA_ij*k_j} = Sum_j {rkTheta_ij*Z_j}
+      rkTheta(2,1) = 1.875000000000000000000000000000000d0
+      rkTheta(3,1) = 1.708847304091539528432732316227462d0
+      rkTheta(3,2) = -.2030773231622746185852981969486824d0
+      rkTheta(4,1) = .2680325578937783958847157206823118d0
+      rkTheta(4,2) = -.1828840955527181631794050728644549d0
+      rkTheta(4,3) = .2968246986151577397160821594427966d0
+      rkTheta(5,1) = .9096171815241460655379433581446771d0
+      rkTheta(5,2) = -3.108254967778352416114774430509465d0
+      rkTheta(5,3) = 12.33727431701306195581826123274001d0
+      rkTheta(5,4) = -11.24557012450885560524143016037523d0
+
+! Starting value for Newton iterations: Z_i^0 = Sum_j {rkAlpha_ij*Z_j}
+      rkAlpha(2,1) = 2.875000000000000000000000000000000d0
+      rkAlpha(3,1) = .8500000000000000000000000000000000d0
+      rkAlpha(3,2) = .4434782608695652173913043478260870d0
+      rkAlpha(4,1) = .7352046091658870564637910527807370d0
+      rkAlpha(4,2) = -.9525565003057343527941920657462074d-1
+      rkAlpha(4,3) = .4290111305453813852259481840631738d0
+      rkAlpha(5,1) = -16.10898993405067684831655675112808d0
+      rkAlpha(5,2) = 6.559571569643355712998131800797873d0
+      rkAlpha(5,3) = -15.90772144271326504260996815012482d0
+      rkAlpha(5,4) = 25.34908987169226073668861694892683d0
+               
+!~~~> Coefficients for continuous solution
+!          rkD(1,1)= 24.74416644927758d0
+!          rkD(1,2)= -4.325375951824688d0
+!          rkD(1,3)= 41.39683763286316d0
+!          rkD(1,4)= -61.04144619901784d0
+!          rkD(1,5)= -3.391332232917013d0
+!          rkD(2,1)= -51.98245719616925d0
+!          rkD(2,2)= 10.52501981094525d0
+!          rkD(2,3)= -154.2067922191855d0
+!          rkD(2,4)= 214.3082125319825d0
+!          rkD(2,5)= 14.71166018088679d0
+!          rkD(3,1)= 33.14347947522142d0
+!          rkD(3,2)= -19.72986789558523d0
+!          rkD(3,3)= 230.4878502285804d0
+!          rkD(3,4)= -287.6629744338197d0
+!          rkD(3,5)= -18.99932366302254d0
+!          rkD(4,1)= -5.905188728329743d0
+!          rkD(4,2)= 13.53022403646467d0
+!          rkD(4,3)= -117.6778956422581d0
+!          rkD(4,4)= 134.3962081008550d0
+!          rkD(4,5)= 8.678995715052762d0
+!
+!         DO i=1,4  ! CONTi <-- Sum_j rkD(i,j)*Zj
+!           CALL Set2zero(N,CONT(1,i))
+!           DO j = 1,rkS
+!             CALL WAXPY(N,rkD(i,j),Z(1,j),1,CONT(1,i),1)
+!           END DO
+!         END DO
+          
+          rkELO = 4.0d0
+          
+      END SUBROUTINE Sdirk4a
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE Sdirk4b
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      sdMethod = S4B
+! Number of stages
+      rkS = 5
+
+! Method coefficients
+      rkGamma = .25d0
+
+      rkA(1,1) = 0.25d0
+      rkA(2,1) = 0.5d00
+      rkA(2,2) = 0.25d0
+      rkA(3,1) = 0.34d0
+      rkA(3,2) =-0.40d-1
+      rkA(3,3) = 0.25d0
+      rkA(4,1) = 0.2727941176470588235294117647058824d0
+      rkA(4,2) =-0.5036764705882352941176470588235294d-1
+      rkA(4,3) = 0.2757352941176470588235294117647059d-1
+      rkA(4,4) = 0.25d0
+      rkA(5,1) = 1.041666666666666666666666666666667d0
+      rkA(5,2) =-1.020833333333333333333333333333333d0
+      rkA(5,3) = 7.812500000000000000000000000000000d0
+      rkA(5,4) =-7.083333333333333333333333333333333d0
+      rkA(5,5) = 0.25d0
+
+      rkB(1)   =  1.041666666666666666666666666666667d0
+      rkB(2)   = -1.020833333333333333333333333333333d0
+      rkB(3)   =  7.812500000000000000000000000000000d0
+      rkB(4)   = -7.083333333333333333333333333333333d0
+      rkB(5)   =  0.250000000000000000000000000000000d0
+
+      rkBhat(1)=  1.069791666666666666666666666666667d0
+      rkBhat(2)= -0.894270833333333333333333333333333d0
+      rkBhat(3)=  7.695312500000000000000000000000000d0
+      rkBhat(4)= -7.083333333333333333333333333333333d0
+      rkBhat(5)=  0.212500000000000000000000000000000d0
+
+      rkC(1)   = 0.25d0
+      rkC(2)   = 0.75d0
+      rkC(3)   = 0.55d0
+      rkC(4)   = 0.50d0
+      rkC(5)   = 1.00d0
+
+! Ynew = Yold + h*Sum_i {rkB_i*k_i} = Yold + Sum_i {rkD_i*Z_i}
+      rkD(1)   = 0.0d0
+      rkD(2)   = 0.0d0
+      rkD(3)   = 0.0d0
+      rkD(4)   = 0.0d0
+      rkD(5)   = 1.0d0
+
+! Err = h * Sum_i {(rkB_i-rkBhat_i)*k_i} = Sum_i {rkE_i*Z_i}
+      rkE(1)   =  0.5750d0
+      rkE(2)   =  0.2125d0
+      rkE(3)   = -4.6875d0
+      rkE(4)   =  4.2500d0
+      rkE(5)   =  0.1500d0
+
+! Local order of Err estimate
+      rkElo    = 4
+
+! h*Sum_j {rkA_ij*k_j} = Sum_j {rkTheta_ij*Z_j}
+      rkTheta(2,1) = 2.d0
+      rkTheta(3,1) = 1.680000000000000000000000000000000d0
+      rkTheta(3,2) = -.1600000000000000000000000000000000d0
+      rkTheta(4,1) = 1.308823529411764705882352941176471d0
+      rkTheta(4,2) = -.1838235294117647058823529411764706d0
+      rkTheta(4,3) = 0.1102941176470588235294117647058824d0
+      rkTheta(5,1) = -3.083333333333333333333333333333333d0
+      rkTheta(5,2) = -4.291666666666666666666666666666667d0
+      rkTheta(5,3) =  34.37500000000000000000000000000000d0
+      rkTheta(5,4) = -28.33333333333333333333333333333333d0
+
+! Starting value for Newton iterations: Z_i^0 = Sum_j {rkAlpha_ij*Z_j}
+      rkAlpha(2,1) = 3.
+      rkAlpha(3,1) = .8800000000000000000000000000000000d0
+      rkAlpha(3,2) = .4400000000000000000000000000000000d0
+      rkAlpha(4,1) = .1666666666666666666666666666666667d0
+      rkAlpha(4,2) = -.8333333333333333333333333333333333d-1
+      rkAlpha(4,3) = .9469696969696969696969696969696970d0
+      rkAlpha(5,1) = -6.d0
+      rkAlpha(5,2) = 9.d0
+      rkAlpha(5,3) = -56.81818181818181818181818181818182d0
+      rkAlpha(5,4) = 54.d0
+      
+      END SUBROUTINE Sdirk4b
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE Sdirk2a
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      sdMethod = S2A
+! Number of stages
+      rkS = 2
+
+! Method coefficients
+      rkGamma = .2928932188134524755991556378951510d0
+
+      rkA(1,1) = .2928932188134524755991556378951510d0
+      rkA(2,1) = .7071067811865475244008443621048490d0
+      rkA(2,2) = .2928932188134524755991556378951510d0
+
+      rkB(1)   = .7071067811865475244008443621048490d0
+      rkB(2)   = .2928932188134524755991556378951510d0
+
+      rkBhat(1)= .6666666666666666666666666666666667d0
+      rkBhat(2)= .3333333333333333333333333333333333d0
+
+      rkC(1)   = 0.292893218813452475599155637895151d0
+      rkC(2)   = 1.0d0
+
+! Ynew = Yold + h*Sum_i {rkB_i*k_i} = Yold + Sum_i {rkD_i*Z_i}
+      rkD(1)   = 0.0d0
+      rkD(2)   = 1.0d0
+
+! Err = h * Sum_i {(rkB_i-rkBhat_i)*k_i} = Sum_i {rkE_i*Z_i}
+      rkE(1)   =  0.4714045207910316829338962414032326d0
+      rkE(2)   = -0.1380711874576983496005629080698993d0
+
+! Local order of Err estimate
+      rkElo    = 2
+
+! h*Sum_j {rkA_ij*k_j} = Sum_j {rkTheta_ij*Z_j}
+      rkTheta(2,1) = 2.414213562373095048801688724209698d0
+
+! Starting value for Newton iterations: Z_i^0 = Sum_j {rkAlpha_ij*Z_j}
+      rkAlpha(2,1) = 3.414213562373095048801688724209698d0
+          
+      END SUBROUTINE Sdirk2a
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE Sdirk2b
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      sdMethod = S2B
+! Number of stages
+      rkS      = 2
+
+! Method coefficients
+      rkGamma  = 1.707106781186547524400844362104849d0
+
+      rkA(1,1) = 1.707106781186547524400844362104849d0
+      rkA(2,1) = -.707106781186547524400844362104849d0
+      rkA(2,2) = 1.707106781186547524400844362104849d0
+
+      rkB(1)   = -.707106781186547524400844362104849d0
+      rkB(2)   = 1.707106781186547524400844362104849d0
+
+      rkBhat(1)= .6666666666666666666666666666666667d0
+      rkBhat(2)= .3333333333333333333333333333333333d0
+
+      rkC(1)   = 1.707106781186547524400844362104849d0
+      rkC(2)   = 1.0d0
+
+! Ynew = Yold + h*Sum_i {rkB_i*k_i} = Yold + Sum_i {rkD_i*Z_i}
+      rkD(1)   = 0.0d0
+      rkD(2)   = 1.0d0
+
+! Err = h * Sum_i {(rkB_i-rkBhat_i)*k_i} = Sum_i {rkE_i*Z_i}
+      rkE(1)   = -.4714045207910316829338962414032326d0
+      rkE(2)   =  .8047378541243650162672295747365659d0
+
+! Local order of Err estimate
+      rkElo    = 2
+
+! h*Sum_j {rkA_ij*k_j} = Sum_j {rkTheta_ij*Z_j}
+      rkTheta(2,1) = -.414213562373095048801688724209698d0
+
+! Starting value for Newton iterations: Z_i^0 = Sum_j {rkAlpha_ij*Z_j}
+      rkAlpha(2,1) = .5857864376269049511983112757903019d0
+      
+      END SUBROUTINE Sdirk2b
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE Sdirk3a
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      sdMethod = S3A
+! Number of stages
+      rkS = 3
+
+! Method coefficients
+      rkGamma = .2113248654051871177454256097490213d0
+
+      rkA(1,1) = .2113248654051871177454256097490213d0
+      rkA(2,1) = .2113248654051871177454256097490213d0
+      rkA(2,2) = .2113248654051871177454256097490213d0
+      rkA(3,1) = .2113248654051871177454256097490213d0
+      rkA(3,2) = .5773502691896257645091487805019573d0
+      rkA(3,3) = .2113248654051871177454256097490213d0
+
+      rkB(1)   = .2113248654051871177454256097490213d0
+      rkB(2)   = .5773502691896257645091487805019573d0
+      rkB(3)   = .2113248654051871177454256097490213d0
+
+      rkBhat(1)= .2113248654051871177454256097490213d0
+      rkBhat(2)= .6477918909913548037576239837516312d0
+      rkBhat(3)= .1408832436034580784969504064993475d0
+
+      rkC(1)   = .2113248654051871177454256097490213d0
+      rkC(2)   = .4226497308103742354908512194980427d0
+      rkC(3)   = 1.d0
+
+! Ynew = Yold + h*Sum_i {rkB_i*k_i} = Yold + Sum_i {rkD_i*Z_i}
+      rkD(1)   = 0.d0
+      rkD(2)   = 0.d0
+      rkD(3)   = 1.d0
+
+! Err = h * Sum_i {(rkB_i-rkBhat_i)*k_i} = Sum_i {rkE_i*Z_i}
+      rkE(1)   =  0.9106836025229590978424821138352906d0
+      rkE(2)   = -1.244016935856292431175815447168624d0
+      rkE(3)   =  0.3333333333333333333333333333333333d0
+
+! Local order of Err estimate
+      rkElo    = 2
+
+! h*Sum_j {rkA_ij*k_j} = Sum_j {rkTheta_ij*Z_j}
+      rkTheta(2,1) =  1.0d0
+      rkTheta(3,1) = -1.732050807568877293527446341505872d0
+      rkTheta(3,2) =  2.732050807568877293527446341505872d0
+
+! Starting value for Newton iterations: Z_i^0 = Sum_j {rkAlpha_ij*Z_j}
+      rkAlpha(2,1) =   2.0d0
+      rkAlpha(3,1) = -12.92820323027550917410978536602349d0
+      rkAlpha(3,2) =   8.83012701892219323381861585376468d0
+
+      END SUBROUTINE Sdirk3a
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   END SUBROUTINE SdirkTLM ! AND ALL ITS INTERNAL PROCEDURES
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE FUN_CHEM( T, Y, P )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      USE KPP_ROOT_Parameters, ONLY: NVAR
+      USE KPP_ROOT_Global, ONLY: TIME, FIX, RCONST
+      USE KPP_ROOT_Function, ONLY: Fun
+      USE KPP_ROOT_Rates, ONLY: Update_SUN, Update_RCONST, Update_PHOTO
+
+      KPP_REAL :: T, Told
+      KPP_REAL :: Y(NVAR), P(NVAR)
+      
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      
+      CALL Fun( Y, FIX, RCONST, P )
+      
+      TIME = Told
+      
+    END SUBROUTINE FUN_CHEM
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    SUBROUTINE JAC_CHEM( T, Y, JV )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+      USE KPP_ROOT_Parameters, ONLY: NVAR, LU_NONZERO
+      USE KPP_ROOT_Global, ONLY: TIME, FIX, RCONST
+      USE KPP_ROOT_Jacobian, ONLY: Jac_SP,LU_IROW,LU_ICOL
+      USE KPP_ROOT_Rates, ONLY: Update_SUN, Update_RCONST, Update_PHOTO
+  
+      KPP_REAL :: T, Told
+      KPP_REAL :: Y(NVAR)
+#ifdef FULL_ALGEBRA
+      KPP_REAL :: JS(LU_NONZERO), JV(NVAR,NVAR)
+      INTEGER :: i, j
+#else
+      KPP_REAL :: JV(LU_NONZERO)
+#endif
+ 
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+
+#ifdef FULL_ALGEBRA
+      CALL Jac_SP(Y, FIX, RCONST, JS)
+      DO j=1,NVAR
+         DO i=1,NVAR
+           JV(i,j) = 0.0D0
+         END DO
+      END DO
+      DO i=1,LU_NONZERO
+         JV(LU_IROW(i),LU_ICOL(i)) = JS(i)
+      END DO
+#else
+      CALL Jac_SP(Y, FIX, RCONST, JV)
+#endif
+      TIME = Told
+
+    END SUBROUTINE JAC_CHEM
+
+END MODULE KPP_ROOT_Integrator
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/tau_leap.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/tau_leap.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/tau_leap.def	(revision 2696)
@@ -0,0 +1,10 @@
+ 
+#FUNCTION   aggregate
+#JACOBIAN   SPARSE_LU_ROW
+#DOUBLE     on 
+#STOCHASTIC on 
+#INTFILE    tau_leap
+
+
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/tau_leap.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/tau_leap.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/tau_leap.f90	(revision 2696)
@@ -0,0 +1,1688 @@
+MODULE KPP_ROOT_Random
+! A module for random number generation from the following distributions:
+!
+!     Distribution                    Function/subroutine name
+!
+!     Normal (Gaussian)               random_normal
+!     Gamma                           random_gamma
+!     Chi-squared                     random_chisq
+!     Exponential                     random_exponential
+!     Weibull                         random_Weibull
+!     Beta                            random_beta
+!     t                               random_t
+!     Multivariate normal             random_mvnorm
+!     Generalized inverse Gaussian    random_inv_gauss
+!     Poisson                         random_Poisson
+!     Binomial                        random_binomial1   *
+!                                     random_binomial2   *
+!     Negative binomial               random_neg_binomial
+!     von Mises                       random_von_Mises
+!     Cauchy                          random_Cauchy
+!
+!  Generate a random ordering of the integers 1 .. N
+!                                     random_order
+!     Initialize (seed) the uniform random number generator for ANY compiler
+!                                     seed_random_number
+
+!     Lognormal - see note below.
+
+!  ** Two functions are provided for the binomial distribution.
+!  If the parameter values remain constant, it is recommended that the
+!  first function is used (random_binomial1).   If one or both of the
+!  parameters change, use the second function (random_binomial2).
+
+! The compilers own random number generator, SUBROUTINE RANDOM_NUMBER(r),
+! is used to provide a source of uniformly distributed random numbers.
+
+! N.B. At this stage, only one random number is generated at each call to
+!      one of the functions above.
+
+! The module uses the following functions which are included here:
+! bin_prob to calculate a single binomial probability
+! lngamma  to calculate the logarithm to base e of the gamma function
+
+! Some of the code is adapted from Dagpunar's book:
+!     Dagpunar, J. 'Principles of random variate generation'
+!     Clarendon Press, Oxford, 1988.   ISBN 0-19-852202-9
+!
+! In most of Dagpunar's routines, there is a test to see whether the value
+! of one or two floating-point parameters has changed since the last call.
+! These tests have been replaced by using a logical variable FIRST.
+! This should be set to .TRUE. on the first call using new values of the
+! parameters, and .FALSE. if the parameter values are the same as for the
+! previous call.
+
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! Lognormal distribution
+! If X has a lognormal distribution, then log(X) is normally distributed.
+! Here the logarithm is the natural logarithm, that is to base e, sometimes
+! denoted as ln.  To generate random variates from this distribution, generate
+! a random deviate from the normal distribution with mean and variance equal
+! to the mean and variance of the logarithms of X, then take its exponential.
+
+! Relationship between the mean & variance of log(X) and the mean & variance
+! of X, when X has a lognormal distribution.
+! Let m = mean of log(X), and s^2 = variance of log(X)
+! Then
+! mean of X     = exp(m + 0.5s^2)
+! variance of X = (mean(X))^2.[exp(s^2) - 1]
+
+! In the reverse direction (rarely used)
+! variance of log(X) = log[1 + var(X)/(mean(X))^2]
+! mean of log(X)     = log(mean(X) - 0.5var(log(X))
+
+! N.B. The above formulae relate to population parameters; they will only be
+!      approximate if applied to sample values.
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+! Version 1.13, 2 October 2000
+! Changes from version 1.01
+! 1. The random_order, random_Poisson & random_binomial routines have been
+!    replaced with more efficient routines.
+! 2. A routine, seed_random_number, has been added to seed the uniform random
+!    number generator.   This requires input of the required number of seeds
+!    for the particular compiler from a specified I/O unit such as a keyboard.
+! 3. Made compatible with Lahey's ELF90.
+! 4. Marsaglia & Tsang algorithm used for random_gamma when shape parameter > 1.
+! 5. INTENT for array f corrected in random_mvnorm.
+
+!     Author: Alan Miller
+!             CSIRO Division of Mathematical & Information Sciences
+!             Private Bag 10, Clayton South MDC
+!             Clayton 3169, Victoria, Australia
+!     Phone: (+61) 3 9545-8016      Fax: (+61) 3 9545-8080
+!     e-mail: amiller @ bigpond.net.au
+
+IMPLICIT NONE
+REAL, PRIVATE      :: zero = 0.0, half = 0.5, one = 1.0, two = 2.0,   &
+                      vsmall = TINY(1.0), vlarge = HUGE(1.0)
+PRIVATE            :: integral
+INTEGER, PARAMETER :: dp = SELECTED_REAL_KIND(12, 60)
+
+
+CONTAINS
+
+
+FUNCTION random_normal() RESULT(fn_val)
+
+! Adapted from the following Fortran 77 code
+!      ALGORITHM 712, COLLECTED ALGORITHMS FROM ACM.
+!      THIS WORK PUBLISHED IN TRANSACTIONS ON MATHEMATICAL SOFTWARE,
+!      VOL. 18, NO. 4, DECEMBER, 1992, PP. 434-435.
+
+!  The function random_normal() returns a normally distributed pseudo-random
+!  number with zero mean and unit variance.
+
+!  The algorithm uses the ratio of uniforms method of A.J. Kinderman
+!  and J.F. Monahan augmented with quadratic bounding curves.
+
+REAL :: fn_val
+
+!     Local variables
+REAL     :: s = 0.449871, t = -0.386595, a = 0.19600, b = 0.25472,           &
+            r1 = 0.27597, r2 = 0.27846, u, v, x, y, q
+
+!     Generate P = (u,v) uniform in rectangle enclosing acceptance region
+
+DO
+  CALL RANDOM_NUMBER(u)
+  CALL RANDOM_NUMBER(v)
+  v = 1.7156 * (v - half)
+
+!     Evaluate the quadratic form
+  x = u - s
+  y = ABS(v) - t
+  q = x**2 + y*(a*y - b*x)
+
+!     Accept P if inside inner ellipse
+  IF (q < r1) EXIT
+!     Reject P if outside outer ellipse
+  IF (q > r2) CYCLE
+!     Reject P if outside acceptance region
+  IF (v**2 < -4.0*LOG(u)*u**2) EXIT
+END DO
+
+!     Return ratio of P's coordinates as the normal deviate
+fn_val = v/u
+RETURN
+
+END FUNCTION random_normal
+
+
+
+FUNCTION random_gamma(s, first) RESULT(fn_val)
+
+! Adapted from Fortran 77 code from the book:
+!     Dagpunar, J. 'Principles of random variate generation'
+!     Clarendon Press, Oxford, 1988.   ISBN 0-19-852202-9
+
+!     FUNCTION GENERATES A RANDOM GAMMA VARIATE.
+!     CALLS EITHER random_gamma1 (S > 1.0)
+!     OR random_exponential (S = 1.0)
+!     OR random_gamma2 (S < 1.0).
+
+!     S = SHAPE PARAMETER OF DISTRIBUTION (0 < REAL).
+
+REAL, INTENT(IN)    :: s
+LOGICAL, INTENT(IN) :: first
+REAL                :: fn_val
+
+IF (s <= zero) THEN
+  WRITE(*, *) 'SHAPE PARAMETER VALUE MUST BE POSITIVE'
+  STOP
+END IF
+
+IF (s > one) THEN
+  fn_val = random_gamma1(s, first)
+ELSE IF (s < one) THEN
+  fn_val = random_gamma2(s, first)
+ELSE
+  fn_val = random_exponential()
+END IF
+
+RETURN
+END FUNCTION random_gamma
+
+
+
+FUNCTION random_gamma1(s, first) RESULT(fn_val)
+
+! Uses the algorithm in
+! Marsaglia, G. and Tsang, W.W. (2000) `A simple method for generating
+! gamma variables', Trans. om Math. Software (TOMS), vol.26(3), pp.363-372.
+
+! Generates a random gamma deviate for shape parameter s >= 1.
+
+REAL, INTENT(IN)    :: s
+LOGICAL, INTENT(IN) :: first
+REAL                :: fn_val
+
+! Local variables
+REAL, SAVE  :: c, d
+REAL        :: u, v, x
+
+IF (first) THEN
+  d = s - one/3.
+  c = one/SQRT(9.0*d)
+END IF
+
+! Start of main loop
+DO
+
+! Generate v = (1+cx)^3 where x is random normal; repeat if v <= 0.
+
+  DO
+    x = random_normal()
+    v = (one + c*x)**3
+    IF (v > zero) EXIT
+  END DO
+
+! Generate uniform variable U
+
+  CALL RANDOM_NUMBER(u)
+  IF (u < one - 0.0331*x**4) THEN
+    fn_val = d*v
+    EXIT
+  ELSE IF (LOG(u) < half*x**2 + d*(one - v + LOG(v))) THEN
+    fn_val = d*v
+    EXIT
+  END IF
+END DO
+
+RETURN
+END FUNCTION random_gamma1
+
+
+
+FUNCTION random_gamma2(s, first) RESULT(fn_val)
+
+! Adapted from Fortran 77 code from the book:
+!     Dagpunar, J. 'Principles of random variate generation'
+!     Clarendon Press, Oxford, 1988.   ISBN 0-19-852202-9
+
+! FUNCTION GENERATES A RANDOM VARIATE IN [0,INFINITY) FROM
+! A GAMMA DISTRIBUTION WITH DENSITY PROPORTIONAL TO
+! GAMMA2**(S-1) * EXP(-GAMMA2),
+! USING A SWITCHING METHOD.
+
+!    S = SHAPE PARAMETER OF DISTRIBUTION
+!          (REAL < 1.0)
+
+REAL, INTENT(IN)    :: s
+LOGICAL, INTENT(IN) :: first
+REAL                :: fn_val
+
+!     Local variables
+REAL       :: r, x, w
+REAL, SAVE :: a, p, c, uf, vr, d
+
+IF (s <= zero .OR. s >= one) THEN
+  WRITE(*, *) 'SHAPE PARAMETER VALUE OUTSIDE PERMITTED RANGE'
+  STOP
+END IF
+
+IF (first) THEN                        ! Initialization, if necessary
+  a = one - s
+  p = a/(a + s*EXP(-a))
+  IF (s < vsmall) THEN
+    WRITE(*, *) 'SHAPE PARAMETER VALUE TOO SMALL'
+    STOP
+  END IF
+  c = one/s
+  uf = p*(vsmall/a)**s
+  vr = one - vsmall
+  d = a*LOG(a)
+END IF
+
+DO
+  CALL RANDOM_NUMBER(r)
+  IF (r >= vr) THEN
+    CYCLE
+  ELSE IF (r > p) THEN
+    x = a - LOG((one - r)/(one - p))
+    w = a*LOG(x)-d
+  ELSE IF (r > uf) THEN
+    x = a*(r/p)**c
+    w = x
+  ELSE
+    fn_val = zero
+    RETURN
+  END IF
+
+  CALL RANDOM_NUMBER(r)
+  IF (one-r <= w .AND. r > zero) THEN
+    IF (r*(w + one) >= one) CYCLE
+    IF (-LOG(r) <= w) CYCLE
+  END IF
+  EXIT
+END DO
+
+fn_val = x
+RETURN
+
+END FUNCTION random_gamma2
+
+
+
+FUNCTION random_chisq(ndf, first) RESULT(fn_val)
+
+!     Generates a random variate from the chi-squared distribution with
+!     ndf degrees of freedom
+
+INTEGER, INTENT(IN) :: ndf
+LOGICAL, INTENT(IN) :: first
+REAL                :: fn_val
+
+fn_val = two * random_gamma(half*ndf, first)
+RETURN
+
+END FUNCTION random_chisq
+
+
+
+FUNCTION random_exponential() RESULT(fn_val)
+
+! Adapted from Fortran 77 code from the book:
+!     Dagpunar, J. 'Principles of random variate generation'
+!     Clarendon Press, Oxford, 1988.   ISBN 0-19-852202-9
+
+! FUNCTION GENERATES A RANDOM VARIATE IN [0,INFINITY) FROM
+! A NEGATIVE EXPONENTIAL DlSTRIBUTION WlTH DENSITY PROPORTIONAL
+! TO EXP(-random_exponential), USING INVERSION.
+
+REAL  :: fn_val
+
+!     Local variable
+REAL  :: r
+
+DO
+  CALL RANDOM_NUMBER(r)
+  IF (r > zero) EXIT
+END DO
+
+fn_val = -LOG(r)
+RETURN
+
+END FUNCTION random_exponential
+
+
+
+FUNCTION random_Weibull(a) RESULT(fn_val)
+
+!     Generates a random variate from the Weibull distribution with
+!     probability density:
+!                      a
+!               a-1  -x
+!     f(x) = a.x    e
+
+REAL, INTENT(IN) :: a
+REAL             :: fn_val
+
+!     For speed, there is no checking that a is not zero or very small.
+
+fn_val = random_exponential() ** (one/a)
+RETURN
+
+END FUNCTION random_Weibull
+
+
+
+FUNCTION random_beta(aa, bb, first) RESULT(fn_val)
+
+! Adapted from Fortran 77 code from the book:
+!     Dagpunar, J. 'Principles of random variate generation'
+!     Clarendon Press, Oxford, 1988.   ISBN 0-19-852202-9
+
+! FUNCTION GENERATES A RANDOM VARIATE IN [0,1]
+! FROM A BETA DISTRIBUTION WITH DENSITY
+! PROPORTIONAL TO BETA**(AA-1) * (1-BETA)**(BB-1).
+! USING CHENG'S LOG LOGISTIC METHOD.
+
+!     AA = SHAPE PARAMETER FROM DISTRIBUTION (0 < REAL)
+!     BB = SHAPE PARAMETER FROM DISTRIBUTION (0 < REAL)
+
+REAL, INTENT(IN)    :: aa, bb
+LOGICAL, INTENT(IN) :: first
+REAL                :: fn_val
+
+!     Local variables
+REAL, PARAMETER  :: aln4 = 1.3862944
+REAL             :: a, b, g, r, s, x, y, z
+REAL, SAVE       :: d, f, h, t, c
+LOGICAL, SAVE    :: swap
+
+IF (aa <= zero .OR. bb <= zero) THEN
+  WRITE(*, *) 'IMPERMISSIBLE SHAPE PARAMETER VALUE(S)'
+  STOP
+END IF
+
+IF (first) THEN                        ! Initialization, if necessary
+  a = aa
+  b = bb
+  swap = b > a
+  IF (swap) THEN
+    g = b
+    b = a
+    a = g
+  END IF
+  d = a/b
+  f = a+b
+  IF (b > one) THEN
+    h = SQRT((two*a*b - f)/(f - two))
+    t = one
+  ELSE
+    h = b
+    t = one/(one + (a/(vlarge*b))**b)
+  END IF
+  c = a+h
+END IF
+
+DO
+  CALL RANDOM_NUMBER(r)
+  CALL RANDOM_NUMBER(x)
+  s = r*r*x
+  IF (r < vsmall .OR. s <= zero) CYCLE
+  IF (r < t) THEN
+    x = LOG(r/(one - r))/h
+    y = d*EXP(x)
+    z = c*x + f*LOG((one + d)/(one + y)) - aln4
+    IF (s - one > z) THEN
+      IF (s - s*z > one) CYCLE
+      IF (LOG(s) > z) CYCLE
+    END IF
+    fn_val = y/(one + y)
+  ELSE
+    IF (4.0*s > (one + one/d)**f) CYCLE
+    fn_val = one
+  END IF
+  EXIT
+END DO
+
+IF (swap) fn_val = one - fn_val
+RETURN
+END FUNCTION random_beta
+
+
+
+FUNCTION random_t(m) RESULT(fn_val)
+
+! Adapted from Fortran 77 code from the book:
+!     Dagpunar, J. 'Principles of random variate generation'
+!     Clarendon Press, Oxford, 1988.   ISBN 0-19-852202-9
+
+! FUNCTION GENERATES A RANDOM VARIATE FROM A
+! T DISTRIBUTION USING KINDERMAN AND MONAHAN'S RATIO METHOD.
+
+!     M = DEGREES OF FREEDOM OF DISTRIBUTION
+!           (1 <= 1NTEGER)
+
+INTEGER, INTENT(IN) :: m
+REAL                :: fn_val
+
+!     Local variables
+REAL, SAVE      :: s, c, a, f, g
+REAL            :: r, x, v
+
+REAL, PARAMETER :: three = 3.0, four = 4.0, quart = 0.25,   &
+                   five = 5.0, sixteen = 16.0
+INTEGER         :: mm = 0
+
+IF (m < 1) THEN
+  WRITE(*, *) 'IMPERMISSIBLE DEGREES OF FREEDOM'
+  STOP
+END IF
+
+IF (m /= mm) THEN                    ! Initialization, if necessary
+  s = m
+  c = -quart*(s + one)
+  a = four/(one + one/s)**c
+  f = sixteen/a
+  IF (m > 1) THEN
+    g = s - one
+    g = ((s + one)/g)**c*SQRT((s+s)/g)
+  ELSE
+    g = one
+  END IF
+  mm = m
+END IF
+
+DO
+  CALL RANDOM_NUMBER(r)
+  IF (r <= zero) CYCLE
+  CALL RANDOM_NUMBER(v)
+  x = (two*v - one)*g/r
+  v = x*x
+  IF (v > five - a*r) THEN
+    IF (m >= 1 .AND. r*(v + three) > f) CYCLE
+    IF (r > (one + v/s)**c) CYCLE
+  END IF
+  EXIT
+END DO
+
+fn_val = x
+RETURN
+END FUNCTION random_t
+
+
+
+SUBROUTINE random_mvnorm(n, h, d, f, first, x, ier)
+
+! Adapted from Fortran 77 code from the book:
+!     Dagpunar, J. 'Principles of random variate generation'
+!     Clarendon Press, Oxford, 1988.   ISBN 0-19-852202-9
+
+! N.B. An extra argument, ier, has been added to Dagpunar's routine
+
+!     SUBROUTINE GENERATES AN N VARIATE RANDOM NORMAL
+!     VECTOR USING A CHOLESKY DECOMPOSITION.
+
+! ARGUMENTS:
+!        N = NUMBER OF VARIATES IN VECTOR
+!           (INPUT,INTEGER >= 1)
+!     H(J) = J'TH ELEMENT OF VECTOR OF MEANS
+!           (INPUT,REAL)
+!     X(J) = J'TH ELEMENT OF DELIVERED VECTOR
+!           (OUTPUT,REAL)
+!
+!    D(J*(J-1)/2+I) = (I,J)'TH ELEMENT OF VARIANCE MATRIX (J> = I)
+!            (INPUT,REAL)
+!    F((J-1)*(2*N-J)/2+I) = (I,J)'TH ELEMENT OF LOWER TRIANGULAR
+!           DECOMPOSITION OF VARIANCE MATRIX (J <= I)
+!            (OUTPUT,REAL)
+
+!    FIRST = .TRUE. IF THIS IS THE FIRST CALL OF THE ROUTINE
+!    OR IF THE DISTRIBUTION HAS CHANGED SINCE THE LAST CALL OF THE ROUTINE.
+!    OTHERWISE SET TO .FALSE.
+!            (INPUT,LOGICAL)
+
+!    ier = 1 if the input covariance matrix is not +ve definite
+!        = 0 otherwise
+
+INTEGER, INTENT(IN)   :: n
+REAL, INTENT(IN)      :: h(:), d(:)   ! d(n*(n+1)/2)
+REAL, INTENT(IN OUT)  :: f(:)         ! f(n*(n+1)/2)
+REAL, INTENT(OUT)     :: x(:)
+LOGICAL, INTENT(IN)   :: first
+INTEGER, INTENT(OUT)  :: ier
+
+!     Local variables
+INTEGER       :: j, i, m
+REAL          :: y, v
+INTEGER, SAVE :: n2
+
+IF (n < 1) THEN
+  WRITE(*, *) 'SIZE OF VECTOR IS NON POSITIVE'
+  STOP
+END IF
+
+ier = 0
+IF (first) THEN                        ! Initialization, if necessary
+  n2 = 2*n
+  IF (d(1) < zero) THEN
+    ier = 1
+    RETURN
+  END IF
+
+  f(1) = SQRT(d(1))
+  y = one/f(1)
+  DO j = 2,n
+    f(j) = d(1+j*(j-1)/2) * y
+  END DO
+
+  DO i = 2,n
+    v = d(i*(i-1)/2+i)
+    DO m = 1,i-1
+      v = v - f((m-1)*(n2-m)/2+i)**2
+    END DO
+
+    IF (v < zero) THEN
+      ier = 1
+      RETURN
+    END IF
+
+    v = SQRT(v)
+    y = one/v
+    f((i-1)*(n2-i)/2+i) = v
+    DO j = i+1,n
+      v = d(j*(j-1)/2+i)
+      DO m = 1,i-1
+        v = v - f((m-1)*(n2-m)/2+i)*f((m-1)*(n2-m)/2 + j)
+      END DO ! m = 1,i-1
+      f((i-1)*(n2-i)/2 + j) = v*y
+    END DO ! j = i+1,n
+  END DO ! i = 2,n
+END IF
+
+x(1:n) = h(1:n)
+DO j = 1,n
+  y = random_normal()
+  DO i = j,n
+    x(i) = x(i) + f((j-1)*(n2-j)/2 + i) * y
+  END DO ! i = j,n
+END DO ! j = 1,n
+
+RETURN
+END SUBROUTINE random_mvnorm
+
+
+
+FUNCTION random_inv_gauss(h, b, first) RESULT(fn_val)
+
+! Adapted from Fortran 77 code from the book:
+!     Dagpunar, J. 'Principles of random variate generation'
+!     Clarendon Press, Oxford, 1988.   ISBN 0-19-852202-9
+
+! FUNCTION GENERATES A RANDOM VARIATE IN [0,INFINITY] FROM
+! A REPARAMETERISED GENERALISED INVERSE GAUSSIAN (GIG) DISTRIBUTION
+! WITH DENSITY PROPORTIONAL TO  GIG**(H-1) * EXP(-0.5*B*(GIG+1/GIG))
+! USING A RATIO METHOD.
+
+!     H = PARAMETER OF DISTRIBUTION (0 <= REAL)
+!     B = PARAMETER OF DISTRIBUTION (0 < REAL)
+
+REAL, INTENT(IN)    :: h, b
+LOGICAL, INTENT(IN) :: first
+REAL                :: fn_val
+
+!     Local variables
+REAL            :: ym, xm, r, w, r1, r2, x
+REAL, SAVE      :: a, c, d, e
+REAL, PARAMETER :: quart = 0.25
+
+IF (h < zero .OR. b <= zero) THEN
+  WRITE(*, *) 'IMPERMISSIBLE DISTRIBUTION PARAMETER VALUES'
+  STOP
+END IF
+
+IF (first) THEN                        ! Initialization, if necessary
+  IF (h > quart*b*SQRT(vlarge)) THEN
+    WRITE(*, *) 'THE RATIO H:B IS TOO SMALL'
+    STOP
+  END IF
+  e = b*b
+  d = h + one
+  ym = (-d + SQRT(d*d + e))/b
+  IF (ym < vsmall) THEN
+    WRITE(*, *) 'THE VALUE OF B IS TOO SMALL'
+    STOP
+  END IF
+
+  d = h - one
+  xm = (d + SQRT(d*d + e))/b
+  d = half*d
+  e = -quart*b
+  r = xm + one/xm
+  w = xm*ym
+  a = w**(-half*h) * SQRT(xm/ym) * EXP(-e*(r - ym - one/ym))
+  IF (a < vsmall) THEN
+    WRITE(*, *) 'THE VALUE OF H IS TOO LARGE'
+    STOP
+  END IF
+  c = -d*LOG(xm) - e*r
+END IF
+
+DO
+  CALL RANDOM_NUMBER(r1)
+  IF (r1 <= zero) CYCLE
+  CALL RANDOM_NUMBER(r2)
+  x = a*r2/r1
+  IF (x <= zero) CYCLE
+  IF (LOG(r1) < d*LOG(x) + e*(x + one/x) + c) EXIT
+END DO
+
+fn_val = x
+
+RETURN
+END FUNCTION random_inv_gauss
+
+
+
+FUNCTION random_Poisson(mu, first) RESULT(ival)
+!**********************************************************************
+!     Translated to Fortran 90 by Alan Miller from:
+!                           RANLIB
+!
+!     Library of Fortran Routines for Random Number Generation
+!
+!                    Compiled and Written by:
+!
+!                         Barry W. Brown
+!                          James Lovato
+!
+!             Department of Biomathematics, Box 237
+!             The University of Texas, M.D. Anderson Cancer Center
+!             1515 Holcombe Boulevard
+!             Houston, TX      77030
+!
+! This work was supported by grant CA-16672 from the National Cancer Institute.
+
+!                    GENerate POIsson random deviate
+
+!                            Function
+
+! Generates a single random deviate from a Poisson distribution with mean mu.
+
+!                            Arguments
+
+!     mu --> The mean of the Poisson distribution from which
+!            a random deviate is to be generated.
+!                              REAL mu
+
+!                              Method
+
+!     For details see:
+
+!               Ahrens, J.H. and Dieter, U.
+!               Computer Generation of Poisson Deviates
+!               From Modified Normal Distributions.
+!               ACM Trans. Math. Software, 8, 2
+!               (June 1982),163-179
+
+!     TABLES: COEFFICIENTS A0-A7 FOR STEP F. FACTORIALS FACT
+!     COEFFICIENTS A(K) - FOR PX = FK*V*V*SUM(A(K)*V**K)-DEL
+
+!     SEPARATION OF CASES A AND B
+
+!     .. Scalar Arguments ..
+REAL, INTENT(IN)    :: mu
+LOGICAL, INTENT(IN) :: first
+INTEGER             :: ival
+!     ..
+!     .. Local Scalars ..
+REAL          :: b1, b2, c, c0, c1, c2, c3, del, difmuk, e, fk, fx, fy, g,  &
+                 omega, px, py, t, u, v, x, xx
+REAL, SAVE    :: s, d, p, q, p0
+INTEGER       :: j, k, kflag
+LOGICAL, SAVE :: full_init
+INTEGER, SAVE :: l, m
+!     ..
+!     .. Local Arrays ..
+REAL, SAVE    :: pp(35)
+!     ..
+!     .. Data statements ..
+REAL, PARAMETER :: a0 = -.5, a1 = .3333333, a2 = -.2500068, a3 = .2000118,  &
+                   a4 = -.1661269, a5 = .1421878, a6 = -.1384794,   &
+                   a7 = .1250060
+
+REAL, PARAMETER :: fact(10) = (/ 1., 1., 2., 6., 24., 120., 720., 5040.,  &
+                                 40320., 362880. /)
+
+!     ..
+!     .. Executable Statements ..
+IF (mu > 10.0) THEN
+!     C A S E  A. (RECALCULATION OF S, D, L IF MU HAS CHANGED)
+
+  IF (first) THEN
+    s = SQRT(mu)
+    d = 6.0*mu*mu
+
+!             THE POISSON PROBABILITIES PK EXCEED THE DISCRETE NORMAL
+!             PROBABILITIES FK WHENEVER K >= M(MU). L=IFIX(MU-1.1484)
+!             IS AN UPPER BOUND TO M(MU) FOR ALL MU >= 10 .
+
+    l = mu - 1.1484
+    full_init = .false.
+  END IF
+
+
+!     STEP N. NORMAL SAMPLE - random_normal() FOR STANDARD NORMAL DEVIATE
+
+  g = mu + s*random_normal()
+  IF (g > 0.0) THEN
+    ival = g
+
+!     STEP I. IMMEDIATE ACCEPTANCE IF ival IS LARGE ENOUGH
+
+    IF (ival>=l) RETURN
+
+!     STEP S. SQUEEZE ACCEPTANCE - SAMPLE U
+
+    fk = ival
+    difmuk = mu - fk
+    CALL RANDOM_NUMBER(u)
+    IF (d*u >= difmuk*difmuk*difmuk) RETURN
+  END IF
+
+!     STEP P. PREPARATIONS FOR STEPS Q AND H.
+!             (RECALCULATIONS OF PARAMETERS IF NECESSARY)
+!             .3989423=(2*PI)**(-.5)  .416667E-1=1./24.  .1428571=1./7.
+!             THE QUANTITIES B1, B2, C3, C2, C1, C0 ARE FOR THE HERMITE
+!             APPROXIMATIONS TO THE DISCRETE NORMAL PROBABILITIES FK.
+!             C=.1069/MU GUARANTEES MAJORIZATION BY THE 'HAT'-FUNCTION.
+
+  IF (.NOT. full_init) THEN
+    omega = .3989423/s
+    b1 = .4166667E-1/mu
+    b2 = .3*b1*b1
+    c3 = .1428571*b1*b2
+    c2 = b2 - 15.*c3
+    c1 = b1 - 6.*b2 + 45.*c3
+    c0 = 1. - b1 + 3.*b2 - 15.*c3
+    c = .1069/mu
+    full_init = .true.
+  END IF
+
+  IF (g < 0.0) GO TO 50
+
+!             'SUBROUTINE' F IS CALLED (KFLAG=0 FOR CORRECT RETURN)
+
+  kflag = 0
+  GO TO 70
+
+!     STEP Q. QUOTIENT ACCEPTANCE (RARE CASE)
+
+  40 IF (fy-u*fy <= py*EXP(px-fx)) RETURN
+
+!     STEP E. EXPONENTIAL SAMPLE - random_exponential() FOR STANDARD EXPONENTIAL
+!             DEVIATE E AND SAMPLE T FROM THE LAPLACE 'HAT'
+!             (IF T <= -.6744 THEN PK < FK FOR ALL MU >= 10.)
+
+  50 e = random_exponential()
+  CALL RANDOM_NUMBER(u)
+  u = u + u - one
+  t = 1.8 + SIGN(e, u)
+  IF (t <= (-.6744)) GO TO 50
+  ival = mu + s*t
+  fk = ival
+  difmuk = mu - fk
+
+!             'SUBROUTINE' F IS CALLED (KFLAG=1 FOR CORRECT RETURN)
+
+  kflag = 1
+  GO TO 70
+
+!     STEP H. HAT ACCEPTANCE (E IS REPEATED ON REJECTION)
+
+  60 IF (c*ABS(u) > py*EXP(px+e) - fy*EXP(fx+e)) GO TO 50
+  RETURN
+
+!     STEP F. 'SUBROUTINE' F. CALCULATION OF PX, PY, FX, FY.
+!             CASE ival < 10 USES FACTORIALS FROM TABLE FACT
+
+  70 IF (ival>=10) GO TO 80
+  px = -mu
+  py = mu**ival/fact(ival+1)
+  GO TO 110
+
+!             CASE ival >= 10 USES POLYNOMIAL APPROXIMATION
+!             A0-A7 FOR ACCURACY WHEN ADVISABLE
+!             .8333333E-1=1./12.  .3989423=(2*PI)**(-.5)
+
+  80 del = .8333333E-1/fk
+  del = del - 4.8*del*del*del
+  v = difmuk/fk
+  IF (ABS(v)>0.25) THEN
+    px = fk*LOG(one + v) - difmuk - del
+  ELSE
+    px = fk*v*v* (((((((a7*v+a6)*v+a5)*v+a4)*v+a3)*v+a2)*v+a1)*v+a0) - del
+  END IF
+  py = .3989423/SQRT(fk)
+  110 x = (half - difmuk)/s
+  xx = x*x
+  fx = -half*xx
+  fy = omega* (((c3*xx + c2)*xx + c1)*xx + c0)
+  IF (kflag <= 0) GO TO 40
+  GO TO 60
+
+!---------------------------------------------------------------------------
+!     C A S E  B.    mu < 10
+!     START NEW TABLE AND CALCULATE P0 IF NECESSARY
+
+ELSE
+  IF (first) THEN
+    m = MAX(1, INT(mu))
+    l = 0
+    p = EXP(-mu)
+    q = p
+    p0 = p
+  END IF
+
+!     STEP U. UNIFORM SAMPLE FOR INVERSION METHOD
+
+  DO
+    CALL RANDOM_NUMBER(u)
+    ival = 0
+    IF (u <= p0) RETURN
+
+!     STEP T. TABLE COMPARISON UNTIL THE END PP(L) OF THE
+!             PP-TABLE OF CUMULATIVE POISSON PROBABILITIES
+!             (0.458=PP(9) FOR MU=10)
+
+    IF (l == 0) GO TO 150
+    j = 1
+    IF (u > 0.458) j = MIN(l, m)
+    DO k = j, l
+      IF (u <= pp(k)) GO TO 180
+    END DO
+    IF (l == 35) CYCLE
+
+!     STEP C. CREATION OF NEW POISSON PROBABILITIES P
+!             AND THEIR CUMULATIVES Q=PP(K)
+
+    150 l = l + 1
+    DO k = l, 35
+      p = p*mu / k
+      q = q + p
+      pp(k) = q
+      IF (u <= q) GO TO 170
+    END DO
+    l = 35
+  END DO
+
+  170 l = k
+  180 ival = k
+  RETURN
+END IF
+
+RETURN
+END FUNCTION random_Poisson
+
+
+
+FUNCTION random_binomial1(n, p, first) RESULT(ival)
+
+! FUNCTION GENERATES A RANDOM BINOMIAL VARIATE USING C.D.Kemp's method.
+! This algorithm is suitable when many random variates are required
+! with the SAME parameter values for n & p.
+
+!    P = BERNOULLI SUCCESS PROBABILITY
+!           (0 <= REAL <= 1)
+!    N = NUMBER OF BERNOULLI TRIALS
+!           (1 <= INTEGER)
+!    FIRST = .TRUE. for the first call using the current parameter values
+!          = .FALSE. if the values of (n,p) are unchanged from last call
+
+! Reference: Kemp, C.D. (1986). `A modal method for generating binomial
+!            variables', Commun. Statist. - Theor. Meth. 15(3), 805-813.
+
+INTEGER, INTENT(IN) :: n
+REAL, INTENT(IN)    :: p
+LOGICAL, INTENT(IN) :: first
+INTEGER             :: ival
+
+!     Local variables
+
+INTEGER         :: ru, rd
+INTEGER, SAVE   :: r0
+REAL            :: u, pd, pu
+REAL, SAVE      :: odds_ratio, p_r
+REAL, PARAMETER :: zero = 0.0, one = 1.0
+
+IF (first) THEN
+  r0 = (n+1)*p
+  p_r = bin_prob(n, p, r0)
+  odds_ratio = p / (one - p)
+END IF
+
+CALL RANDOM_NUMBER(u)
+u = u - p_r
+IF (u < zero) THEN
+  ival = r0
+  RETURN
+END IF
+
+pu = p_r
+ru = r0
+pd = p_r
+rd = r0
+DO
+  rd = rd - 1
+  IF (rd >= 0) THEN
+    pd = pd * (rd+1) / (odds_ratio * (n-rd))
+    u = u - pd
+    IF (u < zero) THEN
+      ival = rd
+      RETURN
+    END IF
+  END IF
+
+  ru = ru + 1
+  IF (ru <= n) THEN
+    pu = pu * (n-ru+1) * odds_ratio / ru
+    u = u - pu
+    IF (u < zero) THEN
+      ival = ru
+      RETURN
+    END IF
+  END IF
+END DO
+
+!     This point should not be reached, but just in case:
+
+ival = r0
+RETURN
+
+END FUNCTION random_binomial1
+
+
+
+FUNCTION bin_prob(n, p, r) RESULT(fn_val)
+!     Calculate a binomial probability
+
+INTEGER, INTENT(IN) :: n, r
+REAL, INTENT(IN)    :: p
+REAL                :: fn_val
+
+!     Local variable
+REAL                :: one = 1.0
+
+fn_val = EXP( lngamma(DBLE(n+1)) - lngamma(DBLE(r+1)) - lngamma(DBLE(n-r+1)) &
+              + r*LOG(p) + (n-r)*LOG(one - p) )
+RETURN
+
+END FUNCTION bin_prob
+
+
+
+FUNCTION lngamma(x) RESULT(fn_val)
+
+! Logarithm to base e of the gamma function.
+!
+! Accurate to about 1.e-14.
+! Programmer: Alan Miller
+
+! Latest revision of Fortran 77 version - 28 February 1988
+
+REAL (dp), INTENT(IN) :: x
+REAL (dp)             :: fn_val
+
+!       Local variables
+
+REAL (dp) :: a1 = -4.166666666554424D-02, a2 = 2.430554511376954D-03,  &
+             a3 = -7.685928044064347D-04, a4 = 5.660478426014386D-04,  &
+             temp, arg, product, lnrt2pi = 9.189385332046727D-1,       &
+             pi = 3.141592653589793D0
+LOGICAL   :: reflect
+
+!       lngamma is not defined if x = 0 or a negative integer.
+
+IF (x > 0.d0) GO TO 10
+IF (x /= INT(x)) GO TO 10
+fn_val = 0.d0
+RETURN
+
+!       If x < 0, use the reflection formula:
+!               gamma(x) * gamma(1-x) = pi * cosec(pi.x)
+
+10 reflect = (x < 0.d0)
+IF (reflect) THEN
+  arg = 1.d0 - x
+ELSE
+  arg = x
+END IF
+
+!       Increase the argument, if necessary, to make it > 10.
+
+product = 1.d0
+20 IF (arg <= 10.d0) THEN
+  product = product * arg
+  arg = arg + 1.d0
+  GO TO 20
+END IF
+
+!  Use a polynomial approximation to Stirling's formula.
+!  N.B. The real Stirling's formula is used here, not the simpler, but less
+!       accurate formula given by De Moivre in a letter to Stirling, which
+!       is the one usually quoted.
+
+arg = arg - 0.5D0
+temp = 1.d0/arg**2
+fn_val = lnrt2pi + arg * (LOG(arg) - 1.d0 + &
+                  (((a4*temp + a3)*temp + a2)*temp + a1)*temp) - LOG(product)
+IF (reflect) THEN
+  temp = SIN(pi * x)
+  fn_val = LOG(pi/temp) - fn_val
+END IF
+RETURN
+END FUNCTION lngamma
+
+
+
+FUNCTION random_binomial2(n, pp, first) RESULT(ival)
+!**********************************************************************
+!     Translated to Fortran 90 by Alan Miller from:
+!                              RANLIB
+!
+!     Library of Fortran Routines for Random Number Generation
+!
+!                      Compiled and Written by:
+!
+!                           Barry W. Brown
+!                            James Lovato
+!
+!               Department of Biomathematics, Box 237
+!               The University of Texas, M.D. Anderson Cancer Center
+!               1515 Holcombe Boulevard
+!               Houston, TX      77030
+!
+! This work was supported by grant CA-16672 from the National Cancer Institute.
+
+!                    GENerate BINomial random deviate
+
+!                              Function
+
+!     Generates a single random deviate from a binomial
+!     distribution whose number of trials is N and whose
+!     probability of an event in each trial is P.
+
+!                              Arguments
+
+!     N  --> The number of trials in the binomial distribution
+!            from which a random deviate is to be generated.
+!                              INTEGER N
+
+!     P  --> The probability of an event in each trial of the
+!            binomial distribution from which a random deviate
+!            is to be generated.
+!                              REAL P
+
+!     FIRST --> Set FIRST = .TRUE. for the first call to perform initialization
+!               the set FIRST = .FALSE. for further calls using the same pair
+!               of parameter values (N, P).
+!                              LOGICAL FIRST
+
+!     random_binomial2 <-- A random deviate yielding the number of events
+!                from N independent trials, each of which has
+!                a probability of event P.
+!                              INTEGER random_binomial
+
+!                              Method
+
+!     This is algorithm BTPE from:
+
+!         Kachitvichyanukul, V. and Schmeiser, B. W.
+!         Binomial Random Variate Generation.
+!         Communications of the ACM, 31, 2 (February, 1988) 216.
+
+!**********************************************************************
+
+!*****DETERMINE APPROPRIATE ALGORITHM AND WHETHER SETUP IS NECESSARY
+
+!     ..
+!     .. Scalar Arguments ..
+REAL, INTENT(IN)    :: pp
+INTEGER, INTENT(IN) :: n
+LOGICAL, INTENT(IN) :: first
+INTEGER             :: ival
+!     ..
+!     .. Local Scalars ..
+REAL            :: alv, amaxp, f, f1, f2, u, v, w, w2, x, x1, x2, ynorm, z, z2
+REAL, PARAMETER :: zero = 0.0, half = 0.5, one = 1.0
+INTEGER         :: i, ix, ix1, k, mp
+INTEGER, SAVE   :: m
+REAL, SAVE      :: p, q, xnp, ffm, fm, xnpq, p1, xm, xl, xr, c, al, xll,  &
+                   xlr, p2, p3, p4, qn, r, g
+
+!     ..
+!     .. Executable Statements ..
+
+!*****SETUP, PERFORM ONLY WHEN PARAMETERS CHANGE
+
+IF (first) THEN
+  p = MIN(pp, one-pp)
+  q = one - p
+  xnp = n * p
+END IF
+
+IF (xnp > 30.) THEN
+  IF (first) THEN
+    ffm = xnp + p
+    m = ffm
+    fm = m
+    xnpq = xnp * q
+    p1 = INT(2.195*SQRT(xnpq) - 4.6*q) + half
+    xm = fm + half
+    xl = xm - p1
+    xr = xm + p1
+    c = 0.134 + 20.5 / (15.3 + fm)
+    al = (ffm-xl) / (ffm - xl*p)
+    xll = al * (one + half*al)
+    al = (xr - ffm) / (xr*q)
+    xlr = al * (one + half*al)
+    p2 = p1 * (one + c + c)
+    p3 = p2 + c / xll
+    p4 = p3 + c / xlr
+  END IF
+
+!*****GENERATE VARIATE, Binomial mean at least 30.
+
+  20 CALL RANDOM_NUMBER(u)
+  u = u * p4
+  CALL RANDOM_NUMBER(v)
+
+!     TRIANGULAR REGION
+
+  IF (u <= p1) THEN
+    ix = xm - p1 * v + u
+    GO TO 110
+  END IF
+
+!     PARALLELOGRAM REGION
+
+  IF (u <= p2) THEN
+    x = xl + (u-p1) / c
+    v = v * c + one - ABS(xm-x) / p1
+    IF (v > one .OR. v <= zero) GO TO 20
+    ix = x
+  ELSE
+
+!     LEFT TAIL
+
+    IF (u <= p3) THEN
+      ix = xl + LOG(v) / xll
+      IF (ix < 0) GO TO 20
+      v = v * (u-p2) * xll
+    ELSE
+
+!     RIGHT TAIL
+
+      ix = xr - LOG(v) / xlr
+      IF (ix > n) GO TO 20
+      v = v * (u-p3) * xlr
+    END IF
+  END IF
+
+!*****DETERMINE APPROPRIATE WAY TO PERFORM ACCEPT/REJECT TEST
+
+  k = ABS(ix-m)
+  IF (k <= 20 .OR. k >= xnpq/2-1) THEN
+
+!     EXPLICIT EVALUATION
+
+    f = one
+    r = p / q
+    g = (n+1) * r
+    IF (m < ix) THEN
+      mp = m + 1
+      DO i = mp, ix
+        f = f * (g/i-r)
+      END DO
+
+    ELSE IF (m > ix) THEN
+      ix1 = ix + 1
+      DO i = ix1, m
+        f = f / (g/i-r)
+      END DO
+    END IF
+
+    IF (v > f) THEN
+      GO TO 20
+    ELSE
+      GO TO 110
+    END IF
+  END IF
+
+!     SQUEEZING USING UPPER AND LOWER BOUNDS ON LOG(F(X))
+
+  amaxp = (k/xnpq) * ((k*(k/3. + .625) + .1666666666666)/xnpq + half)
+  ynorm = -k * k / (2.*xnpq)
+  alv = LOG(v)
+  IF (alv<ynorm - amaxp) GO TO 110
+  IF (alv>ynorm + amaxp) GO TO 20
+
+!     STIRLING'S (actually de Moivre's) FORMULA TO MACHINE ACCURACY FOR
+!     THE FINAL ACCEPTANCE/REJECTION TEST
+
+  x1 = ix + 1
+  f1 = fm + one
+  z = n + 1 - fm
+  w = n - ix + one
+  z2 = z * z
+  x2 = x1 * x1
+  f2 = f1 * f1
+  w2 = w * w
+  IF (alv - (xm*LOG(f1/x1) + (n-m+half)*LOG(z/w) + (ix-m)*LOG(w*p/(x1*q)) +    &
+      (13860.-(462.-(132.-(99.-140./f2)/f2)/f2)/f2)/f1/166320. +               &
+      (13860.-(462.-(132.-(99.-140./z2)/z2)/z2)/z2)/z/166320. +                &
+      (13860.-(462.-(132.-(99.-140./x2)/x2)/x2)/x2)/x1/166320. +               &
+      (13860.-(462.-(132.-(99.-140./w2)/w2)/w2)/w2)/w/166320.) > zero) THEN
+    GO TO 20
+  ELSE
+    GO TO 110
+  END IF
+
+ELSE
+!     INVERSE CDF LOGIC FOR MEAN LESS THAN 30
+  IF (first) THEN
+    qn = q ** n
+    r = p / q
+    g = r * (n+1)
+  END IF
+
+  90 ix = 0
+  f = qn
+  CALL RANDOM_NUMBER(u)
+  100 IF (u >= f) THEN
+    IF (ix > 110) GO TO 90
+    u = u - f
+    ix = ix + 1
+    f = f * (g/ix - r)
+    GO TO 100
+  END IF
+END IF
+
+110 IF (pp > half) ix = n - ix
+ival = ix
+RETURN
+
+END FUNCTION random_binomial2
+
+
+
+
+FUNCTION random_neg_binomial(sk, p) RESULT(ival)
+
+! Adapted from Fortran 77 code from the book:
+!     Dagpunar, J. 'Principles of random variate generation'
+!     Clarendon Press, Oxford, 1988.   ISBN 0-19-852202-9
+
+! FUNCTION GENERATES A RANDOM NEGATIVE BINOMIAL VARIATE USING UNSTORED
+! INVERSION AND/OR THE REPRODUCTIVE PROPERTY.
+
+!    SK = NUMBER OF FAILURES REQUIRED (Dagpunar's words!)
+!       = the `power' parameter of the negative binomial
+!           (0 < REAL)
+!    P = BERNOULLI SUCCESS PROBABILITY
+!           (0 < REAL < 1)
+
+! THE PARAMETER H IS SET SO THAT UNSTORED INVERSION ONLY IS USED WHEN P <= H,
+! OTHERWISE A COMBINATION OF UNSTORED INVERSION AND
+! THE REPRODUCTIVE PROPERTY IS USED.
+
+REAL, INTENT(IN)   :: sk, p
+INTEGER            :: ival
+
+!     Local variables
+! THE PARAMETER ULN = -LOG(MACHINE'S SMALLEST REAL NUMBER).
+
+REAL, PARAMETER    :: h = 0.7
+REAL               :: q, x, st, uln, v, r, s, y, g
+INTEGER            :: k, i, n
+
+IF (sk <= zero .OR. p <= zero .OR. p >= one) THEN
+  WRITE(*, *) 'IMPERMISSIBLE DISTRIBUTION PARAMETER VALUES'
+  STOP
+END IF
+
+q = one - p
+x = zero
+st = sk
+IF (p > h) THEN
+  v = one/LOG(p)
+  k = st
+  DO i = 1,k
+    DO
+      CALL RANDOM_NUMBER(r)
+      IF (r > zero) EXIT
+    END DO
+    n = v*LOG(r)
+    x = x + n
+  END DO
+  st = st - k
+END IF
+
+s = zero
+uln = -LOG(vsmall)
+IF (st > -uln/LOG(q)) THEN
+  WRITE(*, *) ' P IS TOO LARGE FOR THIS VALUE OF SK'
+  STOP
+END IF
+
+y = q**st
+g = st
+CALL RANDOM_NUMBER(r)
+DO
+  IF (y > r) EXIT
+  r = r - y
+  s = s + one
+  y = y*p*g/s
+  g = g + one
+END DO
+
+ival = x + s + half
+RETURN
+END FUNCTION random_neg_binomial
+
+
+
+FUNCTION random_von_Mises(k, first) RESULT(fn_val)
+
+!     Algorithm VMD from:
+!     Dagpunar, J.S. (1990) `Sampling from the von Mises distribution via a
+!     comparison of random numbers', J. of Appl. Statist., 17, 165-168.
+
+!     Fortran 90 code by Alan Miller
+!     CSIRO Division of Mathematical & Information Sciences
+
+!     Arguments:
+!     k (real)        parameter of the von Mises distribution.
+!     first (logical) set to .TRUE. the first time that the function
+!                     is called, or the first time with a new value
+!                     for k.   When first = .TRUE., the function sets
+!                     up starting values and may be very much slower.
+
+REAL, INTENT(IN)     :: k
+LOGICAL, INTENT(IN)  :: first
+REAL                 :: fn_val
+
+!     Local variables
+
+INTEGER          :: j, n
+INTEGER, SAVE    :: nk
+REAL, PARAMETER  :: pi = 3.14159265
+REAL, SAVE       :: p(20), theta(0:20)
+REAL             :: sump, r, th, lambda, rlast
+REAL (dp)        :: dk
+
+IF (first) THEN                        ! Initialization, if necessary
+  IF (k < zero) THEN
+    WRITE(*, *) '** Error: argument k for random_von_Mises = ', k
+    RETURN
+  END IF
+
+  nk = k + k + one
+  IF (nk > 20) THEN
+    WRITE(*, *) '** Error: argument k for random_von_Mises = ', k
+    RETURN
+  END IF
+
+  dk = k
+  theta(0) = zero
+  IF (k > half) THEN
+
+!     Set up array p of probabilities.
+
+    sump = zero
+    DO j = 1, nk
+      IF (j < nk) THEN
+        theta(j) = ACOS(one - j/k)
+      ELSE
+        theta(nk) = pi
+      END IF
+
+!     Numerical integration of e^[k.cos(x)] from theta(j-1) to theta(j)
+
+      CALL integral(theta(j-1), theta(j), p(j), dk)
+      sump = sump + p(j)
+    END DO
+    p(1:nk) = p(1:nk) / sump
+  ELSE
+    p(1) = one
+    theta(1) = pi
+  END IF                         ! if k > 0.5
+END IF                           ! if first
+
+CALL RANDOM_NUMBER(r)
+DO j = 1, nk
+  r = r - p(j)
+  IF (r < zero) EXIT
+END DO
+r = -r/p(j)
+
+DO
+  th = theta(j-1) + r*(theta(j) - theta(j-1))
+  lambda = k - j + one - k*COS(th)
+  n = 1
+  rlast = lambda
+
+  DO
+    CALL RANDOM_NUMBER(r)
+    IF (r > rlast) EXIT
+    n = n + 1
+    rlast = r
+  END DO
+
+  IF (n .NE. 2*(n/2)) EXIT         ! is n even?
+  CALL RANDOM_NUMBER(r)
+END DO
+
+fn_val = SIGN(th, (r - rlast)/(one - rlast) - half)
+RETURN
+END FUNCTION random_von_Mises
+
+
+
+SUBROUTINE integral(a, b, result, dk)
+
+!     Gaussian integration of exp(k.cosx) from a to b.
+
+REAL (dp), INTENT(IN) :: dk
+REAL, INTENT(IN)      :: a, b
+REAL, INTENT(OUT)     :: result
+
+!     Local variables
+
+REAL (dp)  :: xmid, range, x1, x2,                                    &
+  x(3) = (/0.238619186083197_dp, 0.661209386466265_dp, 0.932469514203152_dp/), &
+  w(3) = (/0.467913934572691_dp, 0.360761573048139_dp, 0.171324492379170_dp/)
+INTEGER    :: i
+
+xmid = (a + b)/2._dp
+range = (b - a)/2._dp
+
+result = 0._dp
+DO i = 1, 3
+  x1 = xmid + x(i)*range
+  x2 = xmid - x(i)*range
+  result = result + w(i)*(EXP(dk*COS(x1)) + EXP(dk*COS(x2)))
+END DO
+
+result = result * range
+RETURN
+END SUBROUTINE integral
+
+
+
+FUNCTION random_Cauchy() RESULT(fn_val)
+
+!     Generate a random deviate from the standard Cauchy distribution
+
+REAL     :: fn_val
+
+!     Local variables
+REAL     :: v(2)
+
+DO
+  CALL RANDOM_NUMBER(v)
+  v = two*(v - half)
+  IF (ABS(v(2)) < vsmall) CYCLE               ! Test for zero
+  IF (v(1)**2 + v(2)**2 < one) EXIT
+END DO
+fn_val = v(1) / v(2)
+
+RETURN
+END FUNCTION random_Cauchy
+
+
+
+SUBROUTINE random_order(order, n)
+
+!     Generate a random ordering of the integers 1 ... n.
+
+INTEGER, INTENT(IN)  :: n
+INTEGER, INTENT(OUT) :: order(n)
+
+!     Local variables
+
+INTEGER :: i, j, k
+REAL    :: wk
+
+DO i = 1, n
+  order(i) = i
+END DO
+
+!     Starting at the end, swap the current last indicator with one
+!     randomly chosen from those preceeding it.
+
+DO i = n, 2, -1
+  CALL RANDOM_NUMBER(wk)
+  j = 1 + i * wk
+  IF (j < i) THEN
+    k = order(i)
+    order(i) = order(j)
+    order(j) = k
+  END IF
+END DO
+
+RETURN
+END SUBROUTINE random_order
+
+
+
+SUBROUTINE seed_random_number(iounit)
+
+INTEGER, INTENT(IN)  :: iounit
+
+! Local variables
+
+INTEGER              :: k
+INTEGER, ALLOCATABLE :: seed(:)
+
+CALL RANDOM_SEED(SIZE=k)
+ALLOCATE( seed(k) )
+
+WRITE(*, '(a, i2, a)')' Enter ', k, ' integers for random no. seeds: '
+READ(*, *) seed
+WRITE(iounit, '(a, (7i10))') ' Random no. seeds: ', seed
+CALL RANDOM_SEED(PUT=seed)
+
+DEALLOCATE( seed )
+
+RETURN
+END SUBROUTINE seed_random_number
+
+
+END MODULE KPP_ROOT_Random
+
+MODULE KPP_ROOT_Integrator
+  USE KPP_ROOT_Random
+  USE KPP_ROOT_Parameters, ONLY : NVAR, NFIX, NREACT 
+  USE KPP_ROOT_Global, ONLY : TIME, RCONST, Volume 
+  USE KPP_ROOT_Stoichiom  
+  USE KPP_ROOT_Stochastic
+  USE KPP_ROOT_Rates
+  USE KPP_ROOT_Random, ddp => dp
+  IMPLICIT NONE
+
+CONTAINS
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+SUBROUTINE TauLeap(Nsteps, Tau, T, SCT, NmlcV, NmlcF)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!   Tau-leap stochastic integration
+!   INPUT:
+!       Nsteps  = no. of tau-leap steps to be simulated
+!       Tau     = time step length
+!       T       = time
+!       SCT     = stochastic rate constants
+!       NmlcV, NmlcF = no. of molecules for variable and fixed species
+!   OUTPUT:
+!       T       = updated time (after Nsteps)
+!       NmlcV   = updated no. of molecules for variable species
+!      
+!
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  IMPLICIT NONE
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    
+      KPP_REAL:: T, Tau
+      INTEGER :: Nsteps     
+      INTEGER :: NmlcV(NVAR), NmlcF(NFIX)
+      INTEGER :: i, j, irct, id, istep, Nfirings(NREACT)
+      REAL   :: mu
+      KPP_REAL :: A(NREACT), SCT(NREACT), x
+      LOGICAL, SAVE :: First = .TRUE.
+   
+      DO istep = 1, Nsteps
+
+          ! Propensity vector
+          CALL  Propensity ( NmlcV, NmlcF, SCT, A )
+          
+          ! Index of next reaction
+          DO irct = 1, NREACT
+            mu = A(irct)*Tau
+            Nfirings(irct) = random_Poisson(mu, First)
+            First = .TRUE.
+          END DO
+          
+          ! Update time with the leap interval
+          T = T + Tau;
+
+          ! Directly update state vector
+          DO irct = 1, NREACT
+             DO i = CCOL_STOICM(irct), CCOL_STOICM(irct+1)-1
+                id = IROW_STOICM(i)
+                NmlcV(id) = MAX(0, NmlcV(id) + Nfirings(irct)*INT(STOICM(i)))
+             END DO
+          END DO
+          
+          ! Update state vector
+          ! DO irct = 1, NREACT
+          !   DO j = 1, Nfirings(irct)
+          !    CALL MoleculeChange( irct, NmlcV )
+          !   END DO 
+          ! END DO
+        
+     END DO
+     
+CONTAINS
+
+     SUBROUTINE PropensityTemplate( T, NmlcV, NmlcF, Prop )
+      KPP_REAL, INTENT(IN)  :: T
+      INTEGER, INTENT(IN)   :: NmlcV(NVAR), NmlcF(NFIX)
+      KPP_REAL, INTENT(OUT) :: Prop(NREACT)
+      KPP_REAL :: Tsave
+! Update the stochastic reaction rates, which may be time dependent 
+      Tsave = TIME
+      TIME = T
+      CALL Update_RCONST()
+      CALL StochasticRates( RCONST, Volume, SCT )   
+      CALL Propensity ( NmlcV, NmlcF, SCT, Prop )
+      TIME = Tsave
+     END SUBROUTINE PropensityTemplate    
+    
+END SUBROUTINE TauLeap
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+END MODULE KPP_ROOT_Integrator
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/user_contributed/readme
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/user_contributed/readme	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/user_contributed/readme	(revision 2696)
@@ -0,0 +1,3 @@
+Integrators in this directory have been contributed by KPP users. By
+default, KPP will not search for integrators in this directory. To
+activate them, move them into the int/ directory.
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/user_contributed/ros2_manual.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/user_contributed/ros2_manual.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/user_contributed/ros2_manual.def	(revision 2696)
@@ -0,0 +1,5 @@
+#FUNCTION AGGREGATE
+#JACOBIAN SPARSE_LU_ROW 
+
+#DOUBLE ON
+#INTFILE ros2_manual
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/user_contributed/ros2_manual.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/user_contributed/ros2_manual.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int.modified_WCOPY/user_contributed/ros2_manual.f90	(revision 2696)
@@ -0,0 +1,119 @@
+! Rosenbrock integrator with manual time step control
+! Solve: d/dt c = f(t,c)
+
+! written by Edwin Spee, CWI, Amsterdam. Last update: July 28, 1997
+! email: Edwin.Spee@cwi.nl (http://edwin-spee.mypage.org/)
+! adapted to KPP-2.1 by Rolf Sander, Max-Planck Institute, Mainz, Germany, 2005
+!
+! Integration method for Ros2:
+! C_{n+1} = C_n + 3/2 dt k_1 + 1/2 dt k_2
+! k_1 = S f(t_n, C_n)
+! k_2 = S [f(t_{n+1},C_n + dt k_1) - 2 k_1]
+!
+! where g = 1.0 + sqrt(0.5_dp),
+! S = (I - g dt J ) ^ {-1}
+! with J the Jacobian
+
+MODULE KPP_ROOT_Integrator
+
+  USE KPP_ROOT_Precision, ONLY: dp
+
+  IMPLICIT NONE
+  PUBLIC
+  SAVE
+
+  ! description of the error numbers IERR
+  CHARACTER(LEN=50), PARAMETER, DIMENSION(1) :: IERR_NAMES = (/ &
+    'dummy value                                       ' /)
+
+CONTAINS
+
+  ! **************************************************************************
+
+  SUBROUTINE INTEGRATE( TIN, TOUT, &
+    ICNTRL_U, RCNTRL_U, ISTATUS_U, RSTATUS_U, IERR_U )
+
+    IMPLICIT NONE
+
+    KPP_REAL, INTENT(IN) :: TIN  ! TIN - Start Time
+    KPP_REAL, INTENT(IN) :: TOUT ! TOUT - End Time
+    ! Optional input parameters and statistics
+    INTEGER,  INTENT(IN),  OPTIONAL :: ICNTRL_U(20)
+    KPP_REAL, INTENT(IN),  OPTIONAL :: RCNTRL_U(20)
+    INTEGER,  INTENT(OUT), OPTIONAL :: ISTATUS_U(20)
+    KPP_REAL, INTENT(OUT), OPTIONAL :: RSTATUS_U(20)
+    INTEGER,  INTENT(OUT), OPTIONAL :: IERR_U
+
+    CALL ROS2(TIN, TOUT)
+
+    ! if optional parameters are given for output
+    ! use them to store information in them
+    IF (PRESENT(ISTATUS_U)) ISTATUS_U(:) = 0
+    IF (PRESENT(RSTATUS_U)) THEN
+      RSTATUS_U(:) = 0._dp
+      RSTATUS_U(1)=TOUT ! put final time into RSTATUS_U
+    ENDIF
+    IF (PRESENT(IERR_U)) IERR_U = 1 ! dummy value
+
+  END SUBROUTINE INTEGRATE
+
+  ! **************************************************************************
+
+  SUBROUTINE ROS2(Tstart,Tend)
+
+    USE KPP_ROOT_Jacobian,         ONLY: Jac_SP
+    USE KPP_ROOT_Global,           ONLY: VAR,   & ! VARiable species
+                                         FIX,   & ! FIXed species
+                                         RCONST   ! rate coefficients
+    USE KPP_ROOT_JacobianSP,       ONLY: LU_DIAG
+    USE KPP_ROOT_Function,         ONLY: Fun
+    USE KPP_ROOT_LinearAlgebra,    ONLY: KppDecomp, KppSolve
+    USE KPP_ROOT_Parameters,       ONLY: NVAR, LU_NONZERO
+
+    IMPLICIT NONE
+
+    KPP_REAL, INTENT(IN) :: Tstart, Tend
+
+    KPP_REAL :: dt ! time step                                          
+    KPP_REAL :: k1(NVAR), k2(NVAR), w1(NVAR), g, jvs(LU_NONZERO)
+    INTEGER ising, i
+
+    dt = Tend - Tstart
+    g = 1.0 + SQRT(0.5_dp)
+    CALL JAC_sp(VAR, FIX, RCONST, jvs)
+    jvs(1:LU_NONZERO) = -g*dt*jvs(1:LU_NONZERO)
+
+    ! Rolf von Kuhlmann:
+    ! optionally cut this out and replace it by directly addressed statements
+    DO i=1,NVAR
+      jvs(LU_DIAG(i)) = jvs(LU_DIAG(i)) + 1.0_dp
+    END DO
+
+    CALL KppDecomp (jvs, ising)
+
+    IF (ising /= 0) THEN
+      PRINT *,'ising <> 0, dt=',dt
+      STOP
+    END IF
+
+    CALL Fun(VAR, FIX, RCONST, k1 )
+
+    CALL KppSolve (jvs,k1)
+
+    DO i = 1,NVAR
+      w1(i) = MAX(0.0_dp, VAR(i) + dt * k1(i) )
+    END DO
+
+    CALL Fun(w1, FIX, RCONST, k2 )
+
+    k2(1:NVAR) = k2(1:NVAR) - 2.0_dp*k1(1:NVAR)
+    CALL KppSolve (jvs,k2)
+    DO i = 1,NVAR
+      VAR(i) = MAX( 0.0_dp, VAR(i)+1.5_dp*dt*k1(i)+0.5_dp*dt*k2(i) )
+    END DO
+
+  END SUBROUTINE ROS2
+
+  ! **************************************************************************
+
+END MODULE KPP_ROOT_Integrator
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/DVODE/ChangeRecord.txt
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/DVODE/ChangeRecord.txt	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/DVODE/ChangeRecord.txt	(revision 2696)
@@ -0,0 +1,354 @@
+!_______________________________________________________________________
+! DVODE_F90 Conversion Change Record
+! Last change: ST 01/01/08
+! ST 06/15/04:
+!   Convert test program dtest.f to dtest.f90
+!   Use unix2dos on vode.f
+!   Use Metcalf converter to produce dvode_1.f90 from vode.f
+!   Change some of the Metcalf formatting
+!   Trim trailing blanks to produce dvode_2.f90
+! ST 06/16/04:
+!   Dimension RPAR, IPAR, ATOL, ITOL as(*) or (1) in the documentation
+!     prologue and in dtest.f to produce dvode_3.f90
+!   Convert DVNORM to a subroutine DVNORMST to produce dvode_4.f90
+!   Convert IXSAV to a subroutine IXSAVST to produce dvode_5.f90
+!   Replace DUMACH and DUMSET by F90 intrinsic calculation to
+!     produce dvode_6.f90
+!   Convert IUMACH to subroutine IUMACHST to produce dvode_.7f90
+!   Convert function DDOT to subroutine DDOTST
+!   Convert function IDAMAX to subroutine IDAMAXST to produce
+!     dvode_.9f90
+!   Note: DVNORM, IXSAV, IUMACH, DDOT, IDAMAX later changed
+!     back to original forms (see 06/23/04 below)
+!   Convert dvode_9.f90 to a module DVODE_M.F90=dvode_10.f90
+!   Convert dvode_10.f90 to dvode_11.f90 with dynamic storage
+!     allocation for the nonuser portions of the RWORK and IWORK
+!     arrays.
+!   Deallocate work arrays at the start of new problems (ISTATE=1)
+!     to produce dvode_12.f90
+! ST 06/17/04:
+!   Remove LRWUSER and LIWUSER from call list. Set internally to
+!     22 and 30, respectively.
+!   Set lengths LRW and LIW of the allocatable works arrays
+!     according to value of MF and MAXORD and verify that the
+!     lengths of the arrays allocated are identical to
+!     original minimum sizes in dvode.f. Inserted IMPLICIT NONE
+!     and necessary declarations in all routines to produce
+!     dvode13.f90
+!   Get rid of warning messages for conditional arithmetic
+!     tests on equality to produce dvode14.f90
+!   Replace LE, GE, LT, GT, NE, EQ with <=, >=, <, >, /=, ==
+!     to produce dvode15.f90
+!   Miscellaneous cleanup to produce dvode16.f90
+! ST 06/18/04:
+!   Move DATA constants to PRIVATE section and eliminated the
+!     corresponding SAVE statements to produce dvode17.f90
+!   Move the DVOD02 common block to PRIVATE section to
+!     produce dvode18.f90
+!   Move the DVOD01 common block to PRIVATE section to
+!     produce dvode19.f90
+!   Modify DVSRCO to reflect above changes to produce dvode20.f90
+!   Add interface DVINDY_USER to allow the user to interpolate
+!     the derivative to produce dvode21.f90
+! ST 06/19/04:
+!   Add SET_OPTS function and GET_STATS subroutine.
+!   Add PUBLIC data type VODE_OPTS
+!   Remove MF, ITOL, ATOL, RTOL, IOPT, RUSER, IUSER from dvode
+!     argument list (passed via fields in OPTS)
+!   Add OPTS to dvode call list to produce dvode22.f90
+! ST 06/20/04:
+!   Add INTERFACE VODE_F90 to allow OPTIONS and JAC to be
+!     OPTIONAL, to produce dvode_f90_m23.f90
+! ST 06/21/04
+!   Add short summary of usage for DVODE_F90
+!   Eliminate RPAR and IPAR
+!   Modify prologue example programs to reflect changes
+! ST 06/22/04
+!   Make necessary changes to accommodate ISTATE=3 calls
+!     to produce dvode_f90_m24.f90 ** not yet tested **
+! ST 06/23/04
+!   Reactivate DVNLSD in its original form (passed as argument)
+!     to produce (v25)
+!   Reactivate DVNORM in its original form (as a function) (v26)
+!   Reactivate DDOT in its original form (as a function) (v27)
+!   Reactivate IDAMAX in its original form (as a function) (v28)
+!   Reactivate IXSAV and IUMACH in their original form (as
+!   functions) to produce dvode_f90_m29.f90 
+!   Convert new PRINT statements to (terminal) XERRDV error
+!     messages
+!   Debug INDEX = 3 changes to produce dvode_f90_m29.f90 
+!     (test program = check3.f90)
+! ST 06/23/04
+!   Change name of DYINDY to DVINDY_CORE and DYINDY_USER to
+!     DVINDY to produce dvode_f90_m31.f90
+! ST 06/29/04
+!   Add routine SET_IAJA to calculate sparse pointer arrays
+!     to produce dvode_f90_m32.f90 
+! ST 07/02/04
+!   Rewrite SET_OPTS to produce dvode_f90_m34.f90 
+!   Test various input options in demo34.f90
+! GB 07/05/04
+!   Change AE/RE options to ABSERR/RELERR
+! ST 07/18/04
+!   Finish first stab at implementing MA28
+! ST 07/26/04
+!   Finish second stab at implementing MA28 and MOSS
+! ST 07/27/04
+!   Finish third stab at implementing MA28 and MOSS
+! ST 07/28/04
+!   Test sparse option with the column humidification problem
+! ST 07/29/04
+!   Adapt LCHECK and LROOTS subroutines from LSODAR and add
+!     to DVODE_F90
+! ST 07/31/04
+!   Make JAC and GFUN optional; the VODE_F90 interface calls
+!     DVODE in one of four ways depending on presence of
+!     JAC and/or GFUN
+!   Error if SET_OPTS not called before DVODE_F90 called
+!     for the first time
+! ST 07/31/04
+!   First stab at root finding
+! ST 08/02/04
+!   Finish implementation of LSODAR root finding and adapt
+!   LSODAR demo problems for vode_f90 solution
+! ST 08/05/04
+!   Implement temporary changes for optional enforcement of
+!     nonnegativity constraints on the solution
+! ST 08/06/04
+!   Replace some labelled DO's and some loops
+!   Modify calls to DVODE_F90 in the test programs and
+!     and verify they work correctly
+!   First cut at printing warning message when |y| < abserr
+! ST 08/07/04
+!   Implement nonnegativity option in SET_OPTS and remove
+!     temporary coding from DVODE_F90
+! ST 08/08/04
+!   Remove temporary subroutine DVSTEPS (copy of DVSTEP for
+!     sparse solutions)
+!   Remove dummy PSOL from calls lists for DVSTEP, DVNLSD,
+!     and DVNLSS
+! ST 08/08/04
+!   Add short summary of typical OPTIONS settings
+!   Run source thru a spell checker
+!   Take another whack at the documentation prologue for DVODE_F90
+! ST 08/11/04
+!   Solve Robertson problem with nonnegativity, dense and sparse tests
+!   Change how sparse pointers arrays determined via derivative
+!     calls in DVPREPS to be the same as elsewhere
+!   Add easy to use version of SET_OPTS named mortal_opts
+!   Take another whack at the documentation prologue for DVODE_F90
+! ST 08/12/04
+!   Add argument Called_From_Where to CHECK_STAT to indicate where
+!     a storage allocation/deallocation occurred
+!   Add subroutine RELEASE_ARRAYS which may be called to deallocate
+!     the arrays allocated by DVODE_F90 and to determine how much
+!     storage was used
+! ST 08/13/04
+!   With the nonnegativity option, project both y and y'
+!   Whack on documentation prologues
+!   Temporary subroutine CHECK_MESSAGES to write all error messages
+!   Renumber error messages
+! ST 08/16/04
+!   Cleaner stab at nonnegativity
+!   Temporarily change DVINDY/DVINDY_CORE not to enforce negativity
+! ST 08/17/04
+!   Add DVINDY_BNDS for use by the user callable DVINDY to enforce
+!     nonnegativity
+!   Add INTENT attribute to all subroutine and function arguments
+! ST 08/18/04
+!   Reorganize type declarations
+!   Make cosmetic header changes
+!   Eliminate NMES from XERRDV and change name to XERRDV
+! ST 09/05/04
+!   Stopped being stupid and got nonnegativity to work
+! ST 09/07/04
+!   Arbitrary bounds enforcement
+! ST 10/26/04
+!   Get rid of some compiler warning messages about tests of equality
+! ST 11/03/04
+!   Fix an problem in DVROOTS involving JROOT
+! ST 11/11/04
+!   Remove mortal_opts function
+! ST 12/25/04-12/28/04
+!   Implement HSL MA48
+! ST 01/05/05
+!   Separate MA28 and MA48 versions
+! ST 01/09/05
+!   MA28 Hollerith formats to strings
+!   MA28 lower case
+!   0 default for lp/mp in MA28
+! ST 01/11/05
+!   Single precision version of MA28
+!   Save TSAVE in blocks G,H in DVODE
+!   Change DOUBLE PRECISION to REAL(KIND=WP)
+!   Single precision version SVODE_F90 of DVODE_F90
+!   D* to E* in SVODE_F90, *=0,...,9,-,+
+!   Some D's replaced by d's to make global replacements possible
+!   D to S in BLAS routines and rest of SVODE_F90
+! ST 01/11/05
+!   Change definition of UMAX in single precision version
+! ST 02/09/05
+!   Reorganize documentation prologue
+! ST 03/30/05
+!   Implement Alan's fix for root too close to X2 in root finder
+! ST 05/11/05
+!   Implement Alan's fix for testing for equality of T in
+!   DVINDY_CORE and DVINDY_BNDS
+!   Implement Alan's fix for nearby zeros in DVCHECK
+! ST 05/14/05
+!   Change distribution file to constitute only one F90 module
+!   Miscellaneous cosmetic changes
+!   Replace several decimal values for numbers by named variables
+!   Delete unused LINPACK function DNRM2
+! ST 05/15/05
+!   Determine the working precision and define UMAX for MA28
+!   accordingly in SET_OPTS
+!   Miscellaneous cosmetic changes
+!   Convert case in MA28
+!   Modify single precision demo programs to call DVODE
+!   than SVODE
+! ST 05/16/05
+!   Define arithmetic constants using _WP extension
+! ST 06/03/05
+!   Change name of NULL to MYNULL in MA28 routines
+!   Delete unnecessary commented out statements
+! ST 06/04/05
+!   Remove ACOR, SAVF, EWT from the RWORK array
+!   Eliminate LACOR, LSAVF, LEWT pointers
+! ST 06/05/05
+!   Remove WM from the RWORK array
+!   Use WM1, WM2 instead of WM(1), WM(2)
+! ST 06/06/05
+!   Make changes necessary to allow the maximum order to be
+!     reduced at output points (save YH, WM and restore)
+! ST 06/07/05
+!   Make cosmetic changes
+! ST 06/08/05
+!   Make cosmetic changes
+!   Add directions for building LAPACK-based and MA48-based
+!     versions
+! ST 06/11/05
+!   Standardize declaration and polish with nag
+!   Cosmetic changes
+! ST 06/12/05
+!   Cosmetic changes
+! ST 06/13/05
+!   Replace USE_LINPACK flag by USE_LAPACK flag
+!   Remove check on sizes of ISTAT and RSTAT arrays in GET_STATS
+!   Add explicit declarations of public and private subroutines
+!     and functions
+!   Add the user callable subroutines to the generic interfaces
+!     block
+! ST 06/14/05
+!   Cosmetic changes
+! ST 07/21/05
+!   Implement option to increase the elbow room in the MA28
+!     work arrays
+!   Implement option to invoke MC19 sparse scaling of numerical
+!     Jacobians
+!   Clean up the 2d diurnal kinetics program
+! ST 07/25/05
+!   Implement MA28_EPS threshold option for numerical singularity
+! ST 07/26/05
+!   Implement MA28_MESSAGES option to control MA28 printing
+! ST 07/30/05
+!   Implement sparsity recalculation if a structurally singular
+!     matrix is encountered
+! ST 07/31/05
+!   Implement MA28_RPS option to force calculation of a new pivot
+!     sequence if MA28BD encounters a singular matrix
+! ST 08/02/05
+!   Add SET_NORMAL_OPTS for normal usage
+!   Add SET_OPTS_2 for changing HMAX, HMIN, and MXSTEP
+! ST 08/03/05
+!   Change how swag storage increment for sparse Jacobians determined
+!   Change length of ISTATS to 31
+!   Change sparse statistics available in GET_STATS
+! ST 08/10/05
+!   Add SUB_DIAGONALS and SUP_DIAGONALS option for banded systems
+!   Add BGROUP to compute sparse column grouping for banded
+!      systems with known diagonals and verify it's results
+!      match those of DGROUP
+! ST 08/11/05
+!   Add subroutine BANDED_IAJA to compute the sparse matrix
+!      descriptor arrays for a banded matrix with known
+!      diagonals
+!   Make miscellaneous cosmetic changes
+! ST 08/12/05
+!   One at a time column version of BANDED_IAJA
+!   Modify DVJAC to handle banded systems using diagonal information
+! ST 08/16/05
+!   Work on documentation for SET_OPTS
+! ST 08/17/05
+!   Use DTEMP rather than SAVF in DVPREPS
+! ST 08/18/05
+!   Add CONSTANT_JACOBIAN option
+! ST 08/23/05
+!   Add SET_INTERMEDIATE_OPTS and work on the documentation for each
+!   of SET_NORMAL_OPTS, SET_INTERMEDIATE_OPTS, and SET_OPTS
+! ST 08/24/05
+!   Add warning if default error tolerances used
+!   Work on OPTs documentation
+! ST 08/25/05
+!   Make miscellaneous cosmetic changes
+! ST 08/28/05
+!   Work on the MA48 based sparse solution option
+! ST 08/29/05
+!   Fixes in the MA48 version
+! ST 09/05/05
+!   Put back the IMPLICIT NONE statements that nag tools deleted
+! ST 09/06/05
+!   Do not allow default error tolerances to be used
+! ST 09/08/05
+!   Add the USE_FAST_FACTOR flag in MA48 version
+! ST 09/11/05
+!   Add debug prints
+! ST 09/14/05
+!   Delete the first two slots in the WM Jacobian array
+! ST 09/18/05
+!   Incorporate option to use JACSP for sparse Jacobians
+! ST 09-19-05
+!   Change name of DSM to DVDSM
+!   Do not allow NEQ to be reduced
+!   Add flags for consecutive error test failures and for consecutive
+!   corrector failures.
+! ST 09-20-05
+!   Modify JACSP to produce JACSPDV
+!   Incorporate option to use JACSPDV for dense Jacobians
+!   Incorporate option to use JACSPDV for banded Jacobians
+!   Incorporate option to use JACSPDV for sparse Jacobians
+! ST 09-21-05
+!   Supply YSCALE to JACSPDV
+! ST 10-04-05
+!   Make a few changes to introductory comments
+! ST 12-05
+!   Add subroutine interfaces
+!   Change some MA28 work arrays to two-dimensional and reference
+!     differently to satisfy the Salford ftn95 compiler
+!   Modify demo programs to make Salford happy
+! ST 01-01-08
+!   Fixed bug found by Richard Cox (restore NZ when sparse
+!   analytic Jacobian used) 
+! End DVODE_F90 Conversion Change Record
+!_______________________________________________________________________
+! f77 REVISION HISTORY(YYYYMMDD)
+!  19890615  Date Written. Initial release.
+!  19890922  Added interrupt/restart ability, minor changes throughout.
+!  19910228  Minor revisions in line format, prologue, etc.
+!  19920227  Modifications by D. Pang:
+!            (1) Applied subgennam to get generic intrinsic names.
+!            (2) Changed intrinsic names to generic in comments.
+!            (3) Added *DECK lines before each routine.
+!  19920721  Names of routines and labelled common blocks changed, so as
+!            to be unique in combined single/real(wp) code (ACH)
+!  19920722  Minor revisions to prologue (ACH).
+!  19920831  Conversion to real(wp) done (ACH).
+!  19921106  Fixed minor bug: ETAQ,ETAQM1 in DVSTEP SAVE statement (ACH)
+!  19921118  Changed LUNSAV/MFLGSV to IXSAV(ACH).
+!  19941222  Removed MF overwrite; attached sign to H in est. second
+!            deriv. in DVHIN; misc. comment changes throughout (ACH).
+!  19970515  Minor corrections to comments in prologue, DVJAC(ACH).
+!  19981111  Corrected Block B by adding final line, GOTO 200 (ACH).
+!  20020430  Various upgrades (ACH): Use ODEPACK error handler package.
+!            Replaced D1MACH by DUMACH. Various changes to main
+!            prologue and other routine prologues.
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/DVODE/NonstiffOptionsReadme.txt
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/DVODE/NonstiffOptionsReadme.txt	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/DVODE/NonstiffOptionsReadme.txt	(revision 2696)
@@ -0,0 +1,9 @@
+After you have installed DVODE_F90 and run the two example programs
+in the distribution file, you may wish to run the test program
+'nonstiffoptions.f90' to test your installation. It solves each of
+the test problems in the Toronto nonstiff test suite. It does this
+for each of the scalar error tolerances 1.0D-4, 1.0D-6, 1.0D-8, and
+1.0D-10. All results are written to a file named 'nonstiffoptions.dat.'
+If after running the program, the last line of this file does not
+read as follows: 'No errors occurred.', please contact one of the
+authors.
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/DVODE/StiffOptionsReadme.txt
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/DVODE/StiffOptionsReadme.txt	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/DVODE/StiffOptionsReadme.txt	(revision 2696)
@@ -0,0 +1,9 @@
+After you have installed DVODE_F90 and run the two example programs
+in the distribution file, you may wish to run the test program
+'stiffoptions.f90' to test your installation. It solves each of the
+test problems in the Toronto stiff test suite in several different
+ways to test the dense, banded, and sparse Jacobian options using
+several different error tolerances. All results are written to a
+file named 'stiffoptions.dat.' If after running the program, the
+last line of this file does not read as follows: 'No errors occurred.',
+please contact one of the authors.
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/DVODE/dvode_f90_m.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/DVODE/dvode_f90_m.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/DVODE/dvode_f90_m.f90	(revision 2696)
@@ -0,0 +1,18921 @@
+  MODULE DVODE_F90_M
+! This version is the December 2005 release.
+! Last change: 01/01/08
+! _____________________________________________________________________
+! Working Precision
+  IMPLICIT NONE
+! Define the working precision for DVODE_F90. Change D0 to E0 in the
+! next statement to convert to single precision.
+  INTEGER, PARAMETER, PRIVATE :: WP = KIND(1.0D0)
+! ______________________________________________________________________
+! Overview
+
+! The f77 ordinary differential equation solver VODE.f is applicable to
+! nonstiff systems of odes and to stiff systems having dense or banded
+! Jacobians. DVODE_F90 is a Fortran 90 extension of VODE.f. While
+! retaining all of the features available in VODE.f, we have
+! incorporated several new options in DVODE_F90 including:
+!   1. the ability to solve stiff systems with sparse Jacobians
+!   2. internal management of storage and work arrays
+!   3. specification of options via optional keywords
+!   4. the ability to perform root finding or "event detection"
+!   5. various new diagnostic and warning messages
+!   6. the ability to impose solution bounds
+!   7. several specialized options for dealing with sparsity
+! ______________________________________________________________________
+! Version Information
+
+! This is DVODE_F90, the double precision FORTRAN 90 extension of the
+! f77 DVODE.f ordinary differential equation solver. This version uses
+! MA28 for sparse Jacobians. This file and related information can be
+! obtained at the following support page:
+!
+!     http://www.radford.edu/~thompson/vodef90web/
+!
+! We are indebted to Richard Cox (ORNL) for providing us with his
+! implementation of MA28 in LSOD28.f (a variant of Alan Hindmarsh's
+! lsodes.f). We are indebted to Alan Hindmarsh for numerous contributions.
+! In particular, we borrowed liberally from the f77 solvers VODE.f,
+! LSODAR.f, and LSODES.f while developing DVODE_F90. We are indebted
+! to Doug Salane for providing us with his JACSP Jacobian routines.
+!
+! If you find a bug or encounter a problem with DVODE_F90, please
+! contact one of us:
+!    G.D. Byrne (gbyrne@wi.rr.com)
+!    S. Thompson (thompson@radford.edu)
+! A set of quick start instructions is provided below.
+! ______________________________________________________________________
+! Note on F90/F95 Compilers
+
+! To date we have used DVODE_F90 successfully with all F90/F95 compilers
+! to which we have access. In particular, we have used it with the Lahey
+! F90 and Lahey-Fujitsu F95 compilers, the Compaq Visual F90 compiler,
+! the g90 compiler, and the INTEL, Portland, Salford, and SUN compilers.
+! It should be noted that compilers such as Salford's FTN95 complain
+! about uninitialized arrays passed as subroutine arguments and the use of
+! slices of two dimensional arrays as one dimensional vectors, and will
+! not run using the strictest compiler options. It is perfectly safe to
+! use the /-CHECK compiler option to avoid these FTN95 runtime checks.
+! DVODE_F90 does not use any variable for numerical purposes until it
+! has been assigned an appropriate value.
+! ______________________________________________________________________
+! Quick Start Instructions
+
+! (1) Compile this file. Then compile, link, and execute the program
+!     example1.f90. The output is written to the file example1.dat.
+!     Verify that the last line of the output is the string
+!     'No errors occurred.'
+! (2) Repeat this process for the program example2.f90.
+!
+! Other test programs you may wish to run to verify your installation
+! of DVODE_F90 are:
+!
+! (3) Run the test programs nonstiffoptions.f90 and stiffoptions.f90
+!     and verify that the last line in the output files produced is
+!     'No errors occurred.' They solve the problems in the Toronto
+!     test suites using several different error tolerances and various
+!     solution options. Note that stiffoptions.f90 takes several
+!     minutes to run because it performs several thousand separate
+!     integrations.
+! (4) Locate the file robertson.f90 in the demo programs and look at
+!     how options are set using SET_OPTS, how DVODE_F90 is called to
+!     obtain the solution at desired output times, and how the
+!     derivative and Jacobian routines are supplied. Note too the
+!     manner in which the solution is constrained to be nonnegative.
+! (5) Locate demoharmonic.f90 and look at how root finding options
+!     are set and how the event residual routine is supplied to
+!     DVODE_F90.
+! (6) The other demo programs available from the DVODE_F90 support
+!     page illustrate various other solution options available in
+!     DVODE_F90. The demo programs may be obtained from
+!
+!        http://www.radford.edu/~thompson/vodef90web/index.html
+! ______________________________________________________________________
+! DVODE_F90 Full Documentation Prologue
+
+! Section 1.  Setting Options in DVODE_F90
+! Section 2.  Calling DVODE_F90
+! Section 3.  Choosing Error Tolerances
+! Section 4.  Choosing the Method of Integration
+! Section 5.  Interpolation of the Solution and Derivatives
+! Section 6.  Handling Events (Root Finding)
+! Section 7.  Gathering Integration Statistics
+! Section 8.  Determining Jacobian Sparsity Structure Arrays
+! Section 9.  Original DVODE Documentation Prologue
+! Section 10. Example Usage
+
+! Note: Search on the string 'Section' to locate these sections. You
+! may wish to refer to the support page which has the sections broken
+! into smaller pieces.
+! ______________________________________________________________________
+! Section 1.  Setting Options in DVODE_F90
+!
+! You can use any of three options routines:
+!
+! SET_NORMAL_OPTS
+! SET_INTERMEDIATE_OPTS
+! SET_OPTS
+
+! OPTIONS = SET_NORMAL_OPTS(DENSE_J, BANDED_J, SPARSE_J,               &
+!   USER_SUPPLIED_JACOBIAN, LOWER_BANDWIDTH, UPPER_BANDWIDTH,          &
+!   RELERR, ABSERR, ABSERR_VECTOR, NEVENTS)
+
+! OPTIONS = SET_INTERMEDIATE_OPTS(DENSE_J, BANDED_J, SPARSE_J,         &
+!   USER_SUPPLIED_JACOBIAN,LOWER_BANDWIDTH, UPPER_BANDWIDTH,           &
+!   RELERR, ABSERR, ABSERR_VECTOR,TCRIT, H0, HMAX, HMIN, MAXORD,       &
+!   MXSTEP, MXHNIL, NZSWAG, USER_SUPPLIED_SPARSITY, MA28_RPS,          &
+!   NEVENTS, CONSTRAINED, CLOWER, CUPPER, CHANGE_ONLY_f77_OPTIONS)     &
+
+! OPTIONS = SET_OPTS(METHOD_FLAG, DENSE_J, BANDED_J, SPARSE_J,         &
+!   USER_SUPPLIED_JACOBIAN, SAVE_JACOBIAN, CONSTANT_JACOBIAN,          &
+!   LOWER_BANDWIDTH, UPPER_BANDWIDTH, SUB_DIAGONALS, SUP_DIAGONALS,    &
+!   RELERR, RELERR_VECTOR, ABSERR, ABSERR_VECTOR, TCRIT, H0, HMAX,     &
+!   HMIN, MAXORD, MXSTEP, MXHNIL, YMAGWARN, SETH, UPIVOT, NZSWAG,      &
+!   USER_SUPPLIED_SPARSITY, NEVENTS, CONSTRAINED, CLOWER, CUPPER,      &
+!   MA28_ELBOW_ROOM, MC19_SCALING, MA28_MESSAGES, MA28_EPS,            &
+!   MA28_RPS, CHANGE_ONLY_f77_OPTIONS, JACOBIAN_BY_JACSP)
+
+! Please refer to the documentation prologue for each of these functions
+! to see what options may be used with each. Note that input to each is
+! via keyword and all variables except error tolerances are optional.
+! Defaults are used for unspecified options. If an option is available
+! in SET_NORMAL OPTS, it is available and has the same meaning in
+! SET_INTERMEDIATE_OPTS and SET_OPTS. Similarly, if an option is available
+! in SET_INTERMEDIATE_OPTS, it is available and has the same meaning in
+! SET_OPTS.
+
+! The first two functions are provided merely for convenience.
+! SET_NORMAL_OPTS is available simply to relieve you of reading the
+! documentation for SET_OPTS and to use default values for all but
+! the most common options. SET_INTERMEDIATE_OPTS is available to allow
+! you more control of the integration while still using default values
+! for less commonly used options. SET_OPTS allows you to specify any
+! of the options available in DVODE_F90.
+
+! Roughly, SET_NORMAL_OPTS is intended to provide for dense, banded,
+! and numerical sparse Jacobians without the need to specify other
+! specialized options. SET_INTERMEDIATE_OPTIONS is intended to allow
+! more general sparse Jacobian options. SET_OPTS is intended to provide
+! access to all options in DVODE_F90.
+
+! Please note that SET_INTERMEDIATE_OPTS can be invoked using the same
+! arguments as SET_NORMAL_OPTS; and SET_OPTS can be invoked using the
+! same arguments as either SET_NORMAL_OPTS or SET_INTERMEDIATE_OPTS.
+! If you wish you can simply delete SET_NORMAL_OPTS as well as
+! SET_INTERMEDIATE_OPTS and use only SET_OPTS for all problems. If you
+! do so, you need only include the options that you wish to use when
+! you invoke SET_OPTIONS.
+
+! In the following description any reference to SET_OPTS applies equally
+! to SET_NORMAL_OPTS and SET_INTERMEDIATE OPTS.
+
+! Before calling DVODE_F90 for the first time, SET_OPTS must be invoked.
+! Typically, SET_OPTS is called once to set the desired integration
+! options and parameters. DVODE_F90 is then called in an output loop to
+! obtain the solution for the desired times. A detailed description of
+! the DVODE_F90 arguments is given in a section below. Detailed descriptions
+! of the options available via SET_OPTS are given in the documentation prologue.
+! Although each option available in the f77 version of DVODE as well as
+! several additional ones are available in DVODE_F90 via SET_OPTS,
+! several of the available options are not relevant for most problems
+! and need not be specified. Refer to the accompanying demonstration
+! programs for specific examples of each usage. Note that after any call
+! to DVODE_F90, you may call GET_STATS to gather relevant integration
+! statistics. After your problem has completed, you may call
+! RELEASE_ARRAYS to deallocate any internal arrays allocated by
+! DVODE_F90 and to determine how much storage was used by DVODE_F90.
+!
+! To communicate with DVODE_F90 you will need to include the following
+! statement in your calling program:
+!    USE DVODE_F90_M
+! and include the following statement in your type declarations section:
+!    TYPE(VODE_OPTS) :: OPTIONS
+! Below are brief summaries of typical uses of SET_OPTS.
+! Nonstiff Problems:
+! OPTIONS = SET_OPTS(RELERR=RTOL,ABSERR=ATOL)
+!    The above use of SET_OPTS will integrate your system of odes
+!    using the nonstiff Adams methods while using a relative error
+!    tolerance of RTOL and an absolute error tolerance of ATOL.
+!    Your subsequent call to DVODE_F90 might look like:
+!    CALL DVODE_F90(F,NEQ,Y,T,TOUT,ITASK,ISTATE,OPTIONS)
+! OPTIONS = SET_OPTS(RELERR=RTOL,ABSERR=ATOL,NEVENTS=NG)
+!    If you wish to do root finding, SET_OPTS can be used as above.
+!    Here, NEVENTS is the desired number of root finding functions.
+!    Your subsequent call to DVODE_F90 might look like:
+!    CALL DVODE_F90(F,NEQ,Y,T,TOUT,ITASK,ISTATE,OPTIONS,G_FCN=G)
+!    Here F is the name of your derivative subroutine and G is the
+!    name of your subroutine to evaluate residuals of the root
+!    finding functions.
+! OPTIONS = SET_OPTS(RELERR=RTOL,ABSERR_VECTOR=ATOL)
+!    This use of SET_OPTS indicates that a scalar relative error
+!    tolerance and a vector of absolute error tolerances will be
+!    used.
+! Stiff Problems, internally generated dense Jacobian:
+! OPTIONS = SET_OPTS(DENSE_J=.TRUE.,RELERR=RTOL,ABSERR=ATOL)
+!    This use of DENSE_J=.TRUE. indicates that DVODE_F90 will
+!    use the stiffly stable BDF methods and will approximate
+!    the Jacobian, considered to be a dense matrix, using
+!    finite differences. Your subsequent call to DVODE_F90
+!    might look like:
+!    CALL DVODE_F90(F,NEQ,Y,T,TOUT,ITASK,ISTATE,OPTIONS)
+! OPTIONS = SET_OPTS(DENSE_J=.TRUE.,ABSERR=ATOL,RELERR=RTOL, &
+!                    USER_SUPPLIED_JACOBIAN=.TRUE.)
+!    If you know the Jacobian and wish to supply subroutine JAC
+!    as described in the documentation for DVODE_F90, the options
+!    call could look like the above.
+!    Your subsequent call to DVODE_F90 might look like:
+!    CALL DVODE_F90(F1,NEQ,Y,T,TOUT,ITASK,ISTATE,OPTIONS,J_FCN=JAC)
+!    Here, JAC is the name of the subroutine that you provide to
+!    evaluate the known Jacobian.
+! Stiff Problems, internally generated banded Jacobian:
+! OPTIONS = SET_OPTS(BANDED_J=.TRUE.,RELERR=RTOL,ABSERR=ATOL, &
+!                       LOWER_BANDWIDTH=ML,UPPER_BANDWIDTH=MU)
+!    This use of BANDED_J=.TRUE. indicates that DVODE_F90 will
+!    use the stiffly stable BDF methods and will approximate the
+!    Jacobian, considered to be a banded matrix, using finite
+!    differences. Here ML is the lower bandwidth of the Jacobian
+!    and ML is the upper bandwidth of the Jacobian.
+! Stiff Problems, internally generated sparse Jacobian:
+! OPTIONS = SET_OPTS(SPARSE_J=.TRUE.,ABSERR=ATOL,RELERR=RTOL)
+!    This use of SET_OPTS indicates that the Jacobian is a sparse
+!    matrix. Its structure will be approximated internally by
+!    making calls to your derivative routine. If you know the
+!    structure before hand, you may provide it directly in a
+!    variety of ways as described in the documentation prologue
+!    for SET_OPTS. In addition, several other options related
+!    to sparsity are available.
+! More complicated common usage:
+!    Suppose you need to solve a stiff problem with a sparse Jacobian.
+!    After some time, the structure of the Jacobian changes and you
+!    wish to have DVODE_F90 recalculate the structure before continuing
+!    the integration. Suppose that initially you want to use an absolute
+!    error tolerance of 1.0D-5 and that when the Jacobian structure is
+!    changed you wish to reduce the error tolerance 1.0D-7. Your calls
+!    might look like this.
+!    RTOL = ...
+!    ATOL = 1.0D-5
+!    OPTIONS = SET_OPTS(SPARSE_J=.TRUE.,ABSERR=ATOL,RELERR=RTOL)
+!    Output loop:
+!       CALL DVODE_F90(FCN,NEQ,Y,T,TOUT,ITASK,ISTATE,OPTIONS)
+!       At desired time:
+!       ISTATE = 3
+!       ATOL = 1.0D-7
+!       OPTIONS = SET_OPTS(SPARSE_J=.TRUE.,ABSERR=ATOL,RELERR=RTOL)
+!    End of output loop
+
+! In the following we have summarized and described how some of the demonstration
+! programs set options and call DVODE_F90. In each case the necessary parameters
+! are defined before invoking SET_OPTS. The call to DVODE_F90 is in a loop in
+! which the output time is successively updated. The actual programs are available
+! from the web support page
+!
+!    http://www.radford. edu/~thompson/vodef90web/index.html/
+!
+!                              Problem Summary
+!
+! Problem                  NEQ      Jacobian            Features Illustrated
+!
+! Prologue Example 1        3        Dense               Basic
+!
+! Prologue Example 2        3        Dense               Root finding
+!
+! Robertson                 3        Dense               Solution bounds
+!
+! Harmonic Oscillator       4        Nonstiff            Root finding
+!
+! Flow Equations         5-1800      Sparse              Automatic determination
+!                                                        of sparsity arrays
+!
+! Diurnal Kinetics      50-5000      Sparse or banded    Sparsity options
+!
+!                       Options Used and DVODE_F90 Call
+!
+! Prologue Example 1
+!
+!    OPTIONS = SET_NORMAL_OPTS(DENSE_J=.TRUE., ABSERR_VECTOR=ATOL, RELERR=RTOL,     &
+!              USER_SUPPLIED_JACOBIAN=.TRUE.)
+!    CALL DVODE_F90(FEX,NEQ,Y,T,TOUT,ITASK,ISTATE,OPTIONS,J_FCN=JEX)
+!
+!    The problem consists of a stiff system of NEQ=3 equations. The dense
+!    Jacobian option (DENSE_J) is used. A vector ATOL(*) of error tolerances
+!    is used. A scalar relative error tolerance RTOL is used. Subroutine JEX
+!    is provided to evaluate the analytical Jacobian. If the last argument
+!    J_FCN=JEX is omitted (as in Example 2), a numerical Jacobian will
+!    be used.
+!
+! Prologue Example 2
+!
+!    OPTIONS = SET_NORMAL_OPTS(DENSE_J=.TRUE., RELERR=RTOL, ABSERR_VECTOR=ATOL,     &
+!              NEVENTS=NG)
+!    CALL DVODE_F90(FEX,NEQ,Y,T,TOUT,ITASK,ISTATE,OPTIONS,G_FCN=GEX)
+!
+!    The system in Example 1 is used to illustrate root finding. It is
+!    desired to locate the times at which two of the solution components
+!    attain prescribed values. NEVENTS=2 informs the solver that two such
+!    functions are used. Subroutine GEX is used to calculate the residuals
+!    for these two functions. A dense numerical Jacobian is used.
+!
+! Robertson Problem
+!
+!    OPTIONS = SET_INTERMEDIATE_OPTS(DENSE_J=.TRUE., RELERR_VECTOR=RTOL,            &
+!              ABSERR_VECTOR=ABSERR_TOLERANCES, CONSTRAINED=BOUNDED_COMPONENTS,     &
+!              CLOWER=LOWER_BOUNDS, CUPPER=UPPER_BOUNDS)
+!
+!    CALL DVODE_F90(DERIVS,NEQ,Y,T,TOUT,ITASK,ISTATE,OPTIONS,J_FCN=JACD)
+!    The system used in Examples 1 and 2 is solved over a much larger
+!    time interval. The solution is constrained to be nonegative. This
+!    is done by prescribing the components to be constrained (BOUNDED_COMPONENTS).
+!    Artificially large values are used to impose upper bounds (UPPER_BOUNDS)
+!    and lower bounds of zero are used to force a nonnegative solution.
+!
+! Harmonic Oscillator Problem
+!
+!    OPTIONS = SET_NORMAL_OPTS(RELERR=RTOL, ABSERR=ATOL, NEVENTS=NG)
+!    CALL DVODE_F90(DERIVS,NEQ,Y,T,TOUT,ITASK,ISTATE,OPTIONS,G_FCN=GEVENTS)
+!
+!    A nonstiff system of NEQ=4 equations is solved. The nonstiff option is
+!    used because neither DENSE_ nor BANDED_J nor SPARSE_J is present. It is
+!    desired to find the times at which Y(2) or Y(3) is equal to 0. Residuals
+!    for the two corresponding event functions are calculated in subroutine
+!    GEVENTS.
+!
+! Flow Equations Problem
+!
+!    OPTIONS = SET_OPTS(SPARSE_J=SPARSE, ABSERR=ATOL(1), RELERR=RTOL(1),            &
+!              MXSTEP=100000, NZSWAG=20000)
+!    CALL DVODE_F90(FCN,NEQ,Y,T,TOUT,ITASK,ISTATE,OPTIONS)
+!
+!    This is a stiff system of equations resulting a method of lines
+!    discretization. The Jacobian is sparse. Scalar absolute and relative
+!    error tolerances are used. The Jacobian structure and a numerical
+!    Jacobian are used. The solver is limited to a maximum of MXSTEP steps.
+!    NZSWAG is the amount by which allocated array sizes will be increased.
+!    The accompanying test program may be used to illutrate several other
+!    solution options.
+!
+! Diurnal Kinetics Problem
+!
+!    OPTIONS = SET_OPTS(SPARSE_J=SPARSE, BANDED_J=BANDED, DENSE_J=DENSE,            &
+!              ABSERR_VECTOR=ATOL(1:NEQ), RELERR=RTOL(1), MXSTEP=100000,            &
+!              NZSWAG=50000, HMAX=MAXH, LOWER_BANDWIDTH=ML, UPPER_BANDWIDTH=MU,     &
+!              MA28_ELBOW_ROOM=10, MC19_SCALING=.TRUE., MA28_MESSAGES=.FALSE.,      &
+!              MA28_EPS=1.0D-4, MA28_RPS=.TRUE.,                                    &
+!              USER_SUPPLIED_SPARSITY=SUPPLY_STRUCTURE)
+!   CALL USERSETS_IAJA(IA, IADIM, JA, JADIM)
+!   CALL DVODE_F90(FCN, NEQ, Y, T, TOUT, ITASK, ISTATE, OPTIONS)
+!
+!   This problem can be used to illustrate most solution options. Here, dense,
+!   banded, or sparse Jacobians are used depending on the values of the first
+!   three parameters. A vector error tolerance is used and a scalar relative
+!   error tolerance is used. If a banded solution is desired, it is necessary
+!   to supply the bandwidths ML and MU. If a sparse solution is desired,
+!   several special options are used. The most important one is MA28_RPS to
+!   force the solver to update the partial pivoting sequence when singular
+!   iteration matrices are encountered. The sparsity pattern is determined
+!   numerically if SUPPLY_STRUCTURE is FALSE. Otherwise the user will supply
+!   the pattern by calling subroutine USERSETS_IAJA.
+! ______________________________________________________________________
+! Section 2.  Calling DVODE_F90
+!
+! DVODE_F90 solves the initial value problem for stiff or nonstiff
+! systems of first order ODEs,
+!     dy/dt = f(t,y), or, in component form,
+!     dy(i)/dt = f(i) = f(i,t,y(1),y(2),...,y(NEQ)) (i = 1,...,NEQ).
+! DVODE_F90 is a package based on the EPISODE and EPISODEB packages,
+! and on the ODEPACK user interface standard. It was developed from
+! the f77 solver DVODE developed by Brown, Byrne, and Hindmarsh.
+! DVODE_F90 also provides for the solution of sparse systems in a
+! fashion similar to LSODES and LSOD28. Currently, MA28 is used
+! to perform the necessary sparse linear algebra. DVODE_F90 also
+! contains the provision to do root finding in a fashion similar
+! to the LSODAR solver from ODEPACK.
+
+! Communication between the user and the DVODE_F90 package, for normal
+! situations, is summarized here. This summary describes only a subset
+! of the full set of options available. See the full description for
+! details, including optional communication, nonstandard options, and
+! instructions for special situations.
+!    CALL DVODE_F90(F,NEQ,Y,T,TOUT,ITASK,ISTATE,OPTIONS,J_FCN=JAC,G_FCN=GEX)
+!    The arguments in the call list to DVODE_F90 have the following
+!    meanings.
+! F       = The name of the user-supplied subroutine defining the
+!           ODE system. The system must be put in the first-order
+!           form dy/dt = f(t,y), where f is a vector-valued function
+!           of the scalar t and the vector y. Subroutine F is to
+!           compute the function f. It is to have the form
+!                SUBROUTINE F(NEQ,T,Y,YDOT)
+!                DOUBLE PRECISION T,Y(NEQ),YDOT(NEQ)
+!           where NEQ, T, and Y are input, and the array YDOT = f(t,y)
+!           is output. Y and YDOT are arrays of length NEQ.
+!           Subroutine F should not alter Y(1),...,Y(NEQ).
+!           If F (and JAC) are not contained in a module available to
+!           your calling program, you must declare F to be EXTERNAL
+!           in the calling program.
+! NEQ     = The size of the ODE system (number of first order
+!           ordinary differential equations).
+! Y       = A double precision array for the vector of dependent variables,
+!           of length NEQ or more. Used for both input and output on the
+!           first call (ISTATE = 1), and only for output on other calls.
+!           On the first call, Y must contain the vector of initial
+!           values. In the output, Y contains the computed solution
+!           evaluated at T.
+! T       = The independent variable. In the input, T is used only on
+!           the first call, as the initial point of the integration.
+!           In the output, after each call, T is the value at which a
+!           computed solution Y is evaluated (usually the same as TOUT).
+!           On an error return, T is the farthest point reached.
+! TOUT    = The next value of t at which a computed solution is desired.
+!           TOUT is Used only for input. When starting the problem
+!           (ISTATE = 1), TOUT may be equal to T for one call, then
+!           should not equal T for the next call. For the initial T,
+!           an input value of TOUT unequal to T is used in order to
+!           determine the direction of the integration (i.e. the
+!           algebraic sign of the step sizes) and the rough scale
+!           of the problem. Integration in either direction (forward
+!           or backward in t) is permitted. If ITASK = 2 or 5 (one-step
+!           modes), TOUT is ignored after the first call (i.e. the
+!           first call with TOUT \= T). Otherwise, TOUT is required
+!           on every call. If ITASK = 1, 3, or 4, the values of TOUT
+!           need not be monotone, but a value of TOUT which backs up
+!           is limited to the current internal t interval, whose
+!           endpoints are TCUR - HU and TCUR. (Refer to the description
+!           of GET_STATS for a description of TCUR and HU.)
+! ITASK   = An index specifying the task to be performed.
+!           Input only. ITASK has the following values and meanings.
+!           1  means normal computation of output values of y(t) at
+!              t = TOUT (by overshooting and interpolating).
+!           2  means take one step only and return.
+!           3  means stop at the first internal mesh point at or
+!              beyond t = TOUT and return.
+!           4  means normal computation of output values of y(t) at
+!              t = TOUT but without overshooting t = TCRIT.
+!              TCRIT must be specified in your SET_OPTS call. TCRIT
+!              may be equal to or beyond TOUT, but not behind it in
+!              the direction of integration. This option is useful
+!              if the problem has a singularity at or beyond t = TCRIT.
+!           5  means take one step, without passing TCRIT, and return.
+!              TCRIT must be specified in your SET_OPTS call.
+!           If ITASK = 4 or 5 and the solver reaches TCRIT (within
+!           roundoff), it will return T = TCRIT(exactly) to indicate
+!           this (unless ITASK = 4 and TOUT comes before TCRIT, in
+!           which case answers at T = TOUT are returned first).
+! ISTATE  = an index used for input and output to specify the
+!           the state of the calculation.
+!           In the input, the values of ISTATE are as follows.
+!           1  means this is the first call for the problem
+!              (initializations will be done). See note below.
+!           2  means this is not the first call, and the calculation
+!              is to continue normally, with no change in any input
+!              parameters except possibly TOUT and ITASK.
+!           3  means this is not the first call, and the
+!              calculation is to continue normally, but with
+!              a change in input parameters other than
+!              TOUT and ITASK. Desired changes require SET_OPTS
+!              be called prior to calling DVODE_F90 again.
+!           A preliminary call with TOUT = T is not counted as a
+!           first call here, as no initialization or checking of
+!           input is done. (Such a call is sometimes useful to
+!           include the initial conditions in the output.)
+!           Thus the first call for which TOUT is unequal to T
+!           requires ISTATE = 1 in the input.
+!           In the output, ISTATE has the following values and meanings.
+!            1  means nothing was done, as TOUT was equal to T with
+!               ISTATE = 1 in the input.
+!            2  means the integration was performed successfully.
+!            3  means a root of one of your root finding functions
+!               has been located.
+!           A negative value of ISTATE indicates that DVODE_F90
+!           encountered an error as described in the printed error
+!           message. Since the normal output value of ISTATE is 2,
+!           it does not need to be reset for normal continuation.
+!           Also, since a negative input value of ISTATE will be
+!           regarded as illegal, a negative output value requires
+!           the user to change it, and possibly other input, before
+!           calling the solver again.
+! OPTIONS = The options structure produced by your call to SET_OPTS.
+! JAC     = The name of the user-supplied routine (MITER = 1 or 4 or 6)
+!           If you do not specify that a stiff method is to be used
+!           in your call to SET_OPTS, you need not include JAC in
+!           your call to DVODE_F90. If you specify a stiff method and
+!           that a user supplied Jacobian will be supplied, JAC must
+!           compute the Jacobian matrix, df/dy, as a function of the
+!           scalar t and the vector y. It is to have the form:
+!              SUBROUTINE JAC(NEQ, T, Y, ML, MU, PD, NROWPD)
+!              DOUBLE PRECISION T, Y(NEQ), PD(NROWPD,NEQ)
+!           where NEQ, T, Y, ML, MU, and NROWPD are input and the array
+!           PD is to be loaded with partial derivatives (elements of the
+!           Jacobian matrix) in the output. PD must be given a first
+!           dimension of NROWPD. T and Y have the same meaning as in
+!           Subroutine F.
+!           In the full matrix case (MITER = 1), ML and MU are
+!           ignored, and the Jacobian is to be loaded into PD in
+!           columnwise manner, with df(i)/dy(j) loaded into PD(i,j).
+!           In the band matrix case (MITER = 4), the elements
+!           within the band are to be loaded into PD in columnwise
+!           manner, with diagonal lines of df/dy loaded into the rows
+!           of PD. Thus df(i)/dy(j) is to be loaded into PD(i-j+MU+1,j).
+!           ML and MU are the half-bandwidth parameters. (See IUSER).
+!           The locations in PD in the two triangular areas which
+!           correspond to nonexistent matrix elements can be ignored
+!           or loaded arbitrarily, as they are overwritten by DVODE_F90.
+!           In the sparse matrix case the elements of the matrix
+!           are determined by the sparsity structure given by the
+!           IA and JA pointer arrays. Refer to the documentation
+!           prologue for SET_OPTS for a description of the arguments
+!           for JAC since they differ from the dense and banded cases.
+!           JAC need not provide df/dy exactly. A crude
+!           approximation (possibly with a smaller bandwidth) will do.
+!           In either case, PD is preset to zero by the solver,
+!           so that only the nonzero elements need be loaded by JAC.
+!           In the sparse matrix case, JAC has a different form:
+!                SUBROUTINE JAC (N, T, Y, IA, JA, NZ, PD)
+!           Given the number of odes N, the current time T, and the
+!           current solution vector Y, JAC must do the following:
+!              If NZ = 0 on input:
+!              Replace NZ by the number of nonzero elements in the
+!              Jacobian. The diagonal of the Jacobian must be included.
+!              Do NOT define the arrays IA, JA, PD at this time.
+!              Once JAC has been called with NZ = 0 and you have
+!              defined the value of NZ, future calls to JAC will use
+!              this value of NZ.
+!              When a call is made with NZ unequal to 0, you must
+!              define the sparsity structure arrays IA and JA, and
+!              the sparse Jacobian PD.
+!                 IA defines the number of nonzeros including the
+!                 diagonal in each column of the Jacobian. Define
+!                 IA(1) = 1 and for J = 1,..., N,
+!                 IA(J+1) = IA(J) + number of nonzeros in column J.
+!                 Diagonal elements must be included even if they are
+!                 zero. You should check to ensure that IA(N+1)-1 = NZ.
+!                 JA defines the rows in which the nonzeros occur.
+!                 For I = 1,...,NZ, JA(I) is the row in which the Ith
+!                 element of the Jacobian occurs. JA must also include
+!                 the diagonal elements of the Jacobian.
+!                 PD defines the numerical value of the Jacobian
+!                 elements. For I = 1,...,NZ, PD(I) is the numerical
+!                 value of the Ith element in the Jacobian. PD must
+!                 also include the diagonal elements of the Jacobian.
+! GFUN    = the name of the subroutine to evaluate the residuals for
+!           event functions. If you do not specify that events are
+!           present (by specifying NEVENTS > 0 in SET_OPTS), you
+!           need not include GFUN in your call list for DVODE_F90.
+!           If GFUN is not contained in a module available to your
+!           calling program, you must declare GFUN to be EXTERNAL
+!           in your calling program.
+! To continue the integration after a successful return, simply
+! reset TOUT and call DVODE_F90 again. No other parameters need
+! be reset unless ISTATE=3 in which case, reset it to 2 before
+! calling DVODE_F90 again.
+! ______________________________________________________________________
+! Section 3.  Choosing Error Tolerances
+!
+! This is the most important aspect of solving odes numerically.
+! You may supply any of four keywords and values. If you wish to
+! use scalar error tolerances, you should supply ABSERR and RELERR.
+! For a good many problems, it is advisable to supply a vector of
+! absolute error tolerances ABSERR_VECTOR = desired vector. This
+! allows you to use different tolerances for each component of
+! the solution. If ABSERR_VECTOR is supplied, it must be a vector
+! of length NEQ where NEQ is the number of odes in your system.
+! Similarly, you may supply a vector of relative error tolerances,
+! RELERR_VECTOR. If no tolerances are specified, DVODE_F90 will use
+! default error tolerances ABSERR=1D-6 and RELERR=1D-4; but it is
+! strongly recommended that you supply values that are appropriate
+! for your problem. In the event you do not supply error tolerances,
+! DVODE_F90 will print a reminder that the default error tolerances
+! are not appropriate for all problems.
+!
+! RELERR can be set to a scalar value as follows.
+! Determine the number of significant digits of accuracy desired, 
+! which will be a positive integer, say, N.
+! Then set RELERR = 10**-(N+1). 
+! The authors recommend that RELERR be no larger than 10**-4.
+! The authors recommend a vector valued absolute error tolerance,
+! which can be set as follows.
+! For the I-th component of the solution vector, Y(I), determine
+! the positive number FLOOR(I) at which ABS(Y(I)) becomes
+! negligible for the problem at hand. FLOOR(I) is sometimes called
+! the problem zero or the floor value for the I-th component and is
+! problem dependent. For a given problem that is not scaled, these
+! floor values may well vary by up to 9 orders of magnitude.
+! Set ABSERR(I) = FLOOR(I) or to be conservative
+! ABSERR_VECTOR(I) = 0.1*FLOOR(I). There is no variable FLOOR in
+! DVODE_F90. If it is difficult to divine the components of ABSERR,
+! (or FLOOR) make a reasonable guess, run the problem, then set that
+! ABSERR_VECTOR so for I = 1, 2,...NEQ,
+! ABSERR_VECTOR(I) = 1D-6*RELERR*MAX{ABS(Y(I,TOUT): for all TOUT}.
+! The correct choices for RELERR and ABSERR can and do have
+! significant impact on both the quality of the solution and run
+! time. Counter intuitively, error tolerances that are too loose
+! can and do increase run time significantly and the quality of
+! the solution may be seriously compromised.
+! Examples:
+! 1. OPTIONS = SET_OPTS(DENSE_J=.TRUE., ABSERR=1D-8,RELERR=1D-8)
+!    This will yield MF = 22. Both the relative error tolerance
+!    and the absolute error tolerance will equal 1D-8.
+! 2. OPTIONS = SET_OPTS(DENSE_J=.TRUE.,RELERR=1D-5, &
+!                       ABSERR_VECTOR=(/1D-6,1D-8/))
+!    For a system with NEQ=2 odes, this will yield MF = 22. A scalar
+!    relative error tolerance equal to 1D-5 will be used. Component 1
+!    of the solution will use an absolute error tolerance of 1D-6
+!    while component 2 will use an absolute error tolerance of 1D-8.
+! ______________________________________________________________________
+! Section 4.  Choosing the Method of Integration
+!
+! If you wish to specify a numerical value for METHOD_FLAG, it can equal
+! any of the legal values of MF for DVODE or LSODES. (See below.) If
+! you do not wish to specify a numerical value for METHOD_FLAG, you
+! may specify any combination of the five logical keywords DENSE_J,
+! BANDED_J, SPARSE_J, USER_SUPPLIED_JACOBIAN, SAVE_JACOBIAN that you
+! wish. Appropriate values will be used in DVODE_F90 for any variables
+! that are not present. The first three flags indicate the type of
+! Jacobian, dense, banded, or sparse. If USER_SUPPLIED_JACOBIAN=.TRUE.,
+! the Jacobian will be determined using the subroutine JAC you supply
+! in your call to DVODE_F90. Otherwise, an internal Jacobian will be
+! generated using finite differences.
+! Examples:
+! 1. OPTIONS = SET_OPTS(METHOD_FLAG=22,...)
+!    DVODE will use the value MF=22 as described in the documentation
+!    prologue. In this case, the stiff BDF methods will be used with
+!    a dense, internally generated Jacobian.
+! 2. OPTIONS = SET_OPTS(METHOD_FLAG=21,...)
+!    This is the same an Example 1 except that a user supplied dense
+!    Jacobian will be used and DVODE will use MF=21.
+! 3. OPTIONS = SET_OPTS(DENSE_J=.TRUE.,...)
+!    This will yield MF = 22 as in Example 1, provided
+!    USER_SUPPLIED_JACOBIAN and SAVE_JACOBIAN are not present, or if
+!    present are set to their default
+!     values of .FALSE. and .TRUE., respectively.
+! 4. OPTIONS = SET_OPTS(DENSE_J=.TRUE.,&
+!                       USER_SUPPLIED_JACOBIAN=.TRUE.,...)
+!    This will yield MF = 21 as in Example 2, provided SAVE_JACOBIAN
+!    is not present, or if present is set to its default value .FALSE.
+! Notes:
+! 1. If you specify more than one of DENSE_J, BANDED_J, and SPARSE_J,
+!    DENSE_J takes precedence over BANDED_J which in turn takes
+!    precedence over SPARSE_J.
+! 2. By default, DVODE_F90 saves a copy of the Jacobian and reuses the
+!    copy when necessary. For problems in which storage requirements
+!    are acute, you may wish to override this default and have
+!    DVODE_F90 recalculate the Jacobian rather than use a saved copy.
+!    You can do this by specifying SAVE_JACOBIAN=.FALSE. It is
+!    recommended that you not do this unless necessary since it can
+!    have a significant impact on the efficiency of DVODE_F90. (For
+!    example, when solving a linear problem only one evaluation of
+!    the Jacobian is required with the default option.)
+! 3. If you choose BANDED_J = .TRUE. or if you supply a value of MF
+!    that corresponds to a banded Jacobian, you must also supply the
+!    lower  bandwidth ML and the upper bandwidth of the Jacobian MU
+!    by including the keywords
+!    LOWER_BANDWIDTH = value of ML and UPPER_BANDWIDTH = value of M
+!                   More on Method Selection
+! The keyword options available in SET_OPTS are intended to replace
+! the original method indicator flag MF. However, if you wish to
+! retain the flexibility of the original solver, you may specify MF
+! directly in your call to SET_OPTS. This is done by using the
+! keyword METHOD_FLAG=MF in your SET_OPTS where MF has any of the
+! values in the following description. Refer to the demonstration
+! program demosp.f90 for an example in which this is done.
+! MF     = The method flag. Used only for input. The legal values of
+!          MF are:
+!          10, 11, 12, 13, 14, 15, 16, 17, 20, 21, 22, 23, 24, 25, 26,
+!          27, -11, -12, -14, -15, -21, -22, -24, -25, -26, -27.
+!          MF is a signed two-digit integer, MF = JSV*(10*METH+MITER).
+!          JSV = SIGN(MF) indicates the Jacobian-saving strategy:
+!            JSV =  1 means a copy of the Jacobian is saved for reuse
+!                     in the corrector iteration algorithm.
+!            JSV = -1 means a copy of the Jacobian is not saved
+!                     (valid only for MITER = 1, 2, 4, or 5).
+!          METH indicates the basic linear multistep method:
+!            METH = 1 means the implicit Adams method.
+!            METH = 2 means the method based on backward
+!                     differentiation formulas (BDF-s).
+!          MITER indicates the corrector iteration method:
+!            MITER = 0 means functional iteration (no Jacobian matrix
+!                      is involved).
+!            MITER = 1 means chord iteration with a user-supplied
+!                      full (NEQ by NEQ) Jacobian.
+!            MITER = 2 means chord iteration with an internally
+!                      generated (difference quotient) full Jacobian
+!                      (using NEQ extra calls to F per df/dy value).
+!            MITER = 4 means chord iteration with a user-supplied
+!                      banded Jacobian.
+!            MITER = 5 means chord iteration with an internally
+!                      generated banded Jacobian (using ML+MU+1 extra
+!                      calls to F per df/dy evaluation).
+!            MITER = 6 means chord iteration with a user-supplied
+!                      sparse Jacobian.
+!            MITER = 7 means chord iteration with an internally
+!                      generated sparse Jacobian
+!          If MITER = 1, 4, or 6 the user must supply a subroutine
+!          JAC(the name is arbitrary) as described above under JAC.
+!          For other values of MITER, JAC need not be provided.
+! ______________________________________________________________________
+! Section 5.  Interpolation of the Solution and Derivative
+!
+! Following a successful return from DVODE_F90, you may call
+! subroutine DVINDY to interpolate the solution or derivative.
+! SUBROUTINE DVINDY(T, K, DKY, IFLAG)
+! DVINDY computes interpolated values of the K-th derivative of the
+! dependent variable vector y, and stores it in DKY. This routine
+! is called with K = 0 or K = 1 and T = TOUT. In either case, the
+! results are returned in the array DKY of length at least NEQ which
+! must be declared and dimensioned in your calling program. The
+! computed values in DKY are obtained by interpolation using the
+! Nordsieck history array.
+! ______________________________________________________________________
+! Section 6.  Handling Events (Root Finding)
+!
+!    DVODE_F90 contains root finding provisions. It attempts to
+!    locates the roots of a set of functions
+!         g(i) = g(i,t,y(1),...,y(NEQ))  (i = 1,...,ng).
+!    To use root finding include NEVENTS=NG in your call to SET_OPTS
+!    where NG is the number of root finding functions. You must then
+!    supply subroutine GFUN in your call to DVODE_F90 using
+!    G_FCN=GFUN as the last argument. GFUN must has the form
+!               SUBROUTINE GFUN(NEQ, T, Y, NG, GOUT)
+!    where NEQ, T, Y, and NG are input, and the array GOUT is output.
+!    NEQ, T, and Y have the same meaning as in the F routine, and
+!    GOUT is an array of length NG. For i = 1,...,NG, this routine is
+!    to load into GOUT(i) the value at (T,Y) of the i-th constraint
+!    function g(i). DVODE_F90 will find roots of the g(i) of odd
+!    multiplicity (i.e. sign changes) as they occur during the
+!    integration. GFUN must be declared EXTERNAL in the calling
+!    program. Note that because of numerical errors in the functions
+!    g(i) due to roundoff and integration error, DVODE_F90 may return
+!    false roots, or return the same root at two or more nearly equal
+!    values of t. This is particularly true for problems in which the
+!    integration is restarted (ISTATE = 1) at a root. If such false
+!    roots are suspected, you should consider smaller error tolerances
+!    and/or higher precision in the evaluation of the g(i). Note
+!    further that if a root of some g(i) defines the end of the
+!    problem, the input to DVODE_F90 should nevertheless allow
+!    integration to a point slightly past that root, so that DVODE_F90
+!    can locate the root by interpolation. Each time DVODE_F90 locates
+!    a root of one of your event functions it makes a return to the
+!    calling program with ISTATE = 3. When such a return is made and
+!    you have processed the results, simply change ISTATE = 2 and call
+!    DVODE_F90 again without making other changes.
+! ______________________________________________________________________
+! Section 7.  Gathering Integration Statistics
+!
+! SUBROUTINE GET_STATS(RSTATS, ISTATS, NUMEVENTS, JROOTS)
+! Caution:
+! RSTATS and ISTATS must be declared and dimensioned in your
+! main program. The minimum dimensions are:
+! DIMENSION RSTATS(22), ISTATS(31)
+! This subroutine returns the user portions of the original DVODE
+! RUSER and IUSER arrays, and if root finding is being done, it
+! returns the original LSODAR JROOT vector. NUMEVENTS and JROOTS
+! are optional parameters. NUMEVENTS is the number of root functions
+! and JROOTS is an integer array of length NUMEVENTS.
+! Available Integration Statistics:
+! HU      RUSER(11) The step size in t last used (successfully).
+! HCUR    RUSER(12) The step size to be attempted on the next step.
+! TCUR    RUSER(13) The current value of the independent variable
+!                   which the solver has actually reached, i.e. the
+!                   current internal mesh point in t. In the output,
+!                   TCUR will always be at least as far from the
+!                   initial value of t as the current argument T,
+!                   but may be farther (if interpolation was done).
+! TOLSF   RUSER(14) A tolerance scale factor, greater than 1.0,
+!                   computed when a request for too much accuracy was
+!                   detected (ISTATE = -3 if detected at the start of
+!                   the problem, ISTATE = -2 otherwise). If ITOL is
+!                   left unaltered but RTOL and ATOL are uniformly
+!                   scaled up by a factor of TOLSF for the next call,
+!                   then the solver is deemed likely to succeed.
+!                   (The user may also ignore TOLSF and alter the
+!                   tolerance parameters in any other way appropriate.)
+! NST     IUSER(11) The number of steps taken for the problem so far.
+! NFE     IUSER(12) The number of f evaluations for the problem so far.
+! NJE     IUSER(13) The number of Jacobian evaluations so far.
+! NQU     IUSER(14) The method order last used (successfully).
+! NQCUR   IUSER(15) The order to be attempted on the next step.
+! IMXER   IUSER(16) The index of the component of largest magnitude in
+!                   the weighted local error vector (E(i)/EWT(i)),
+!                   on an error return with ISTATE = -4 or -5.
+! LENRW   IUSER(17) The length of RUSER actually required.
+!                   This is defined on normal returns and on an illegal
+!                   input return for insufficient storage.
+! LENIW   IUSER(18) The length of IUSER actually required.
+!                   This is defined on normal returns and on an illegal
+!                   input return for insufficient storage.
+! NLU     IUSER(19) The number of matrix LU decompositions so far.
+! NNI     IUSER(20) The number of nonlinear (Newton) iterations so far.
+! NCFN    IUSER(21) The number of convergence failures of the nonlinear
+!                   solver so far.
+! NETF    IUSER(22) The number of error test failures of the integrator
+!                   so far.
+! MA28AD_CALLS      IUSER(23) The number of calls made to MA28AD
+! MA28BD_CALLS      IUSER(24) The number of calls made to MA28BD
+! MA28CD_CALLS      IUSER(25) The number of calls made to MA28CD
+! MC19AD_CALLS      IUSER(26) The number of calls made to MC19AD
+! IRNCP             IUSER(27) The number of compressions done on array JAN
+! ICNCP             IUSER(28) The number of compressions done on array ICN
+! MINIRN            IUSER(29) Minimum size for JAN array
+! MINICN            IUSER(30) Minimum size for ICN array
+! MINNZ             IUSER(31) Number of nonzeros in sparse Jacobian
+! JROOTS  JROOTS    Optional array of component indices for components
+!                   having a zero at the current time
+! ______________________________________________________________________
+! Section 8.  Determining Jacobian Sparsity Structure Arrays
+!
+! If you are solving a problem with a sparse Jacobian, the arrays
+! that define the sparsity structure are needed. The arrays may
+! be determined in any of several ways.
+! 1. If you choose the default mode by indicating SPARSE=.TRUE.,
+!    the sparsity arrays will be determined internally by DVODE_F90
+!    by making calls to your derivative subroutine. This mode is
+!    equivalent to using the integration method flag MF = 227.
+! 2. The DVODE_F90 method flag MF is defined to be
+!    MF = 100*MOSS + 10*METH + MITER. If you supply MF = 227 (or 217),
+!    the sparse Jacobian will be determined using finite differences;
+!    and the sparsity arrays will be determined by calling your
+!    derivative subroutine.
+! 3. If you supply MF = 126 (or 116), you must supply the Jacobian
+!    subroutine JAC to define the exact Jacobian. JAC must have the
+!    following form:
+!           SUBROUTINE JAC (N, T, Y, IA, JA, NZ, PD)
+!    Given the number of odes N, the current time T, and the current
+!    solution vector Y, JAC must do the following:
+!    -  If NZ = 0 on input:
+!       Replace NZ by the number of nonzero elements in the Jacobian.
+!       The diagonal of the Jacobian must be included.
+!       Do NOT define the arrays IA, JA, PD at this time.
+!       Once JAC has been called with NZ = 0 and you have defined the
+!       value of NZ, future calls to JAC will use this value of NZ.
+!    -  When a call is made with NZ unequal to 0, you must define the
+!       sparsity structure arrays IA and JA, and the sparse Jacobian
+!       PD.
+!         - IA defines the number of nonzeros including the diagonal
+!           in each column of the Jacobian. Define IA(1) = 1 and for
+!           J = 1,..., N,
+!           IA(J+1) = IA(J) + number of nonzeros in column J.
+!           Diagonal elements must be include even if they are zero.
+!           You should check to ensure that IA(N+1)-1 = NZ.
+!         - JA defines the rows in which the nonzeros occur. For
+!           I = 1,...,NZ, JA(I) is the row in which the Ith element
+!           of the Jacobian occurs. JA must also include the diagonal
+!           elements of the Jacobian.
+!         - PD defines the numerical value of the Jacobian elements.
+!           For I = 1,...,NZ, PD(I) is the numerical value of the
+!           Ith element in the Jacobian. PD must also include the
+!           diagonal elements of the Jacobian.
+! 4. If you wish to supply the IA and JA arrays directly, use
+!    MF = 27. In this case, after calling SET_OPTS, you must call
+!    SET_IAJA supplying the arrays IAUSER and JAUSER described in
+!    the documentation prologue for SET_IAJA. These arrays will be
+!    used when approximate Jacobians are determined using finite
+!    differences.
+! There are two user callable sparsity structure subroutines:
+! USERSETS_IAJA may be used if you wish to supply the sparsity
+! structure directly.
+! SUBROUTINE USERSETS_IAJA(IAUSER,NIAUSER,JAUSER,NJAUSER)
+!     Caution:
+!     If it is called, USERSETS_IAJA must be called after the
+!     call to SET_OPTS.
+!     Usage:
+!     CALL SET_IAJA(IAUSER,NIAUSER,JAUSER,NJAUSER)
+!       In this case, IAUSER of length NIAUSER will be used for
+!       IA; and JAUSER of length NJAUSER will be used for JA.
+!     Arguments:
+!     IAUSER  = user supplied IA array
+!     NIAUSER = length of IAUSER array
+!     JAUSER  = user supplied JA vector
+!     NJAUSER = length of JAUSER array
+! The second subroutine allows you to approximate the sparsity
+! structure using derivative differences. It allows more flexibility
+! in the determination of perturbation increments used.
+! SUBROUTINE SET_IAJA(DFN,NEQ,T,Y,FMIN,NTURB,DTURB,IAUSER, &
+!   NIAUSER, JAUSER, NJAUSER)
+!     Caution:
+!     If it is called, SET_IAJA must be called after the call to
+!     SET_OPTS.
+!     Usage:
+!     SET_IAJA may be called in one of two ways:
+
+!     CALL SET_IAJA(DFN,NEQ,T,Y,FMIN,NTURB,DTURB)
+!       In this case IA and JA will be determined using calls
+!       to your derivative routine DFN.
+!     CALL SET_IAJA(DFN,NEQ,T,Y,FMIN,NTURB,DTURB,IAUSER,NIAUSER, &
+!       JAUSER, NJAUSER)
+!       In this case, IAUSER of length NIAUSER will be used for
+!       IA; and JAUSER of length NJAUSER will be used for JA.
+!       T, Y, FMIN, NTURB, and DTURB will be ignored (though
+!       they must be present in the argument list).
+!     Arguments:
+!     DFN     = DVODE derivative subroutine
+!     NEQ     = Number of odes
+!     T       = independent variable t
+!     Y       = solution y(t)
+!     FMIN    = Jacobian threshold value. Elements of the Jacobian
+!               with magnitude smaller than FMIN will be ignored.
+!               FMIN will be ignored if it is less than or equal
+!               to ZERO.
+!     NTURB   = Perturbation flag. If NTURB=1, component I of Y
+!               will be perturbed by 1.01D0.
+!               If NTURB=NEQ, component I of Y will be perturbed
+!               by ONE + DTURB(I).
+!     DTURB   = perturbation vector of length 1 or NEQ.
+!     If these four optional parameters are present, IAUSER and JAUSER
+!     will be copied to IA and JA rather than making derivative calls
+!     to approximate IA and JA:
+!        IAUSER  = user supplied IA array
+!        NIAUSER = length of IAUSER array
+!        JAUSER  = user supplied JA vector
+!        NJAUSER = length of JAUSER array
+! ______________________________________________________________________
+! Section 9.  Original DVODE.F Documentation Prologue
+!
+! SUBROUTINE DVODE(F, NEQ, Y, T, TOUT, ITASK, ISTATE, OPTS, JAC, GFUN)
+! DVODE: Variable-coefficient Ordinary Differential Equation solver,
+! with fixed-leading-coefficient implementation.
+! Note:
+! Numerous changes have been made in the documentation and the code
+! from the original Fortran 77 DVODE solver. With regard to the new
+! F90 version, if you choose options that correspond to options
+! available in the original f77 solver, you should obtain the same
+! results. In all testing, identical results have been obtained
+! between this version and a simple F90 translation of the original
+! solver.
+! DVODE solves the initial value problem for stiff or nonstiff
+! systems of first order ODEs,
+!     dy/dt = f(t,y), or, in component form,
+!     dy(i)/dt = f(i) = f(i,t,y(1),y(2),...,y(NEQ)) (i = 1,...,NEQ).
+! DVODE is a package based on the EPISODE and EPISODEB packages, and
+! on the ODEPACK user interface standard, with minor modifications.
+! This version is based also on elements of LSODES and LSODAR.
+! Authors:
+!               Peter N. Brown and Alan C. Hindmarsh
+!               Center for Applied Scientific Computing, L-561
+!               Lawrence Livermore National Laboratory
+!               Livermore, CA 94551
+!               George D. Byrne
+!               Illinois Institute of Technology
+!               Chicago, IL 60616
+! References:
+! 1. P. N. Brown, G. D. Byrne, and A. C. Hindmarsh, "VODE: A Variable
+!    Coefficient ODE Solver," SIAM J. Sci. Stat. Comput., 10 (1989),
+!    pp. 1038-1051. Also, LLNL Report UCRL-98412, June 1988.
+! 2. G. D. Byrne and A. C. Hindmarsh, "A Polyalgorithm for the
+!    Numerical Solution of Ordinary Differential Equations,"
+!    ACM Trans. Math. Software, 1 (1975), pp. 71-96.
+! 3. A. C. Hindmarsh and G. D. Byrne, "EPISODE: An Effective Package
+!    for the Integration of Systems of Ordinary Differential
+!    Equations," LLNL Report UCID/30112, Rev. 1, April 1977.
+! 4. G. D. Byrne and A. C. Hindmarsh, "EPISODEB: An Experimental
+!    Package for the Integration of Systems of Ordinary Differential
+!    Equations with Banded Jacobians," LLNL Report UCID/30132, April
+!    1976.
+! 5. A. C. Hindmarsh, "ODEPACK, a Systematized Collection of ODE
+!    Solvers," in Scientific Computing, R. S. Stepleman et al., eds.,
+!    North-Holland, Amsterdam, 1983, pp. 55-64.
+! 6. K. R. Jackson and R. Sacks-Davis, "An Alternative Implementation
+!    of Variable Step-Size Multistep Formulas for Stiff ODEs," ACM
+!    Trans. Math. Software, 6 (1980), pp. 295-318.
+!                     Summary of Usage
+! Communication between the user and the DVODE package, for normal
+! situations, is summarized here. This summary describes only a subset
+! of the full set of options available. See the full description for
+! details, including optional communication, nonstandard options,
+! and instructions for special situations. See also the example
+! problem (with program and output) following this summary.
+! A. First provide a subroutine of the form:
+!           SUBROUTINE F(NEQ, T, Y, YDOT)
+!           REAL(KIND=WP) T, Y(NEQ), YDOT(NEQ)
+! which supplies the vector function f by loading YDOT(i) with f(i).
+! B. Next determine (or guess) whether or not the problem is stiff.
+! Stiffness occurs when the Jacobian matrix df/dy has an eigenvalue
+! whose real part is negative and large in magnitude, compared to the
+! reciprocal of the t span of interest. If the problem is nonstiff,
+! use a method flag MF = 10. If it is stiff, there are four standard
+! choices for MF(21, 22, 24, 25), and DVODE requires the Jacobian
+! matrix in some form. In these cases (MF > 0), DVODE will use a
+! saved copy of the Jacobian matrix. If this is undesirable because of
+! storage limitations, set MF to the corresponding negative value
+! (-21, -22, -24, -25). (See full description of MF below.)
+! The Jacobian matrix is regarded either as full (MF = 21 or 22),
+! or banded (MF = 24 or 25). In the banded case, DVODE requires two
+! half-bandwidth parameters ML and MU. These are, respectively, the
+! widths of the lower and upper parts of the band, excluding the main
+! diagonal. Thus the band consists of the locations (i,j) with
+! i-ML <= j <= i+MU, and the full bandwidth is ML+MU+1.
+! C. If the problem is stiff, you are encouraged to supply the Jacobian
+! directly (MF = 21 or 24), but if this is not feasible, DVODE will
+! compute it internally by difference quotients (MF = 22 or 25).
+! If you are supplying the Jacobian, provide a subroutine of the form:
+!           SUBROUTINE JAC(NEQ, T, Y, ML, MU, PD, NROWPD)
+!           REAL(KIND=WP) T, Y(NEQ), PD(NROWPD,NEQ)
+! which supplies df/dy by loading PD as follows:
+!     For a full Jacobian (MF = 21), load PD(i,j) with df(i)/dy(j),
+! the partial derivative of f(i) with respect to y(j). (Ignore the
+! ML and MU arguments in this case.)
+!     For a banded Jacobian (MF = 24), load PD(i-j+MU+1,j) with
+! df(i)/dy(j), i.e. load the diagonal lines of df/dy into the rows of
+! PD from the top down.
+!     In either case, only nonzero elements need be loaded.
+! D. Write a main program which calls subroutine DVODE once for
+! each point at which answers are desired. This should also provide
+! for possible use of logical unit 6 for output of error messages
+! by DVODE. On the first call to DVODE, supply arguments as follows:
+! F      = Name of subroutine for right-hand side vector f.
+!          This name must be declared external in calling program.
+! NEQ    = Number of first order ODEs.
+! Y      = Array of initial values, of length NEQ.
+! T      = The initial value of the independent variable.
+! TOUT   = First point where output is desired (/= T).
+! ITOL   = 1 or 2 according as ATOL(below) is a scalar or array.
+! RTOL   = Relative tolerance parameter (scalar).
+! ATOL   = Absolute tolerance parameter (scalar or array).
+!          The estimated local error in Y(i) will be controlled so as
+!          to be roughly less (in magnitude) than
+!             EWT(i) = RTOL*ABS(Y(i)) + ATOL     if ITOL = 1, or
+!             EWT(i) = RTOL*ABS(Y(i)) + ATOL(i)  if ITOL = 2.
+!          Thus the local error test passes if, in each component,
+!          either the absolute error is less than ATOL(or ATOL(i)),
+!          or the relative error is less than RTOL.
+!          Use RTOL = 0.0 for pure absolute error control, and
+!          use ATOL = 0.0 (or ATOL(i) = 0.0) for pure relative error
+!          control. Caution: Actual (global) errors may exceed these
+!          local tolerances, so choose them conservatively.
+! ITASK  = 1 for normal computation of output values of Y at t = TOUT.
+! ISTATE = Integer flag (input and output). Set ISTATE = 1.
+! IOPT   = 0 to indicate no optional input used.
+! JAC    = Name of subroutine for Jacobian matrix (MF = 21 or 24).
+!          If used, this name must be declared external in calling
+!          program. If not used, pass a dummy name.
+! MF     = Method flag. Standard values are:
+!          10 for nonstiff (Adams) method, no Jacobian used.
+!          21 for stiff (BDF) method, user-supplied full Jacobian.
+!          22 for stiff method, internally generated full Jacobian.
+!          24 for stiff method, user-supplied banded Jacobian.
+!          25 for stiff method, internally generated banded Jacobian.
+! E. The output from the first call (or any call) is:
+!      Y = Array of computed values of y(t) vector.
+!      T = Corresponding value of independent variable (normally TOUT).
+! ISTATE = 2  if DVODE was successful, negative otherwise.
+!          -1 means excess work done on this call. (Perhaps wrong MF.)
+!          -2 means excess accuracy requested. (Tolerances too small.)
+!          -3 means illegal input detected. (See printed message.)
+!          -4 means repeated error test failures. (Check all input.)
+!          -5 means repeated convergence failures. (Perhaps bad
+!             Jacobian supplied or wrong choice of MF or tolerances.)
+!          -6 means error weight became zero during problem. (Solution
+!             component I vanished, and ATOL or ATOL(I) = 0.)
+! F. To continue the integration after a successful return, simply
+! reset TOUT and call DVODE again. No other parameters need be reset.
+!         Full Description of User Interface to DVODE
+! The user interface to DVODE consists of the following parts.
+! i.  The call sequence to subroutine DVODE, which is a driver
+!      routine for the solver. This includes descriptions of both
+!      the call sequence arguments and of user-supplied routines.
+!      Following these descriptions is
+!        * a description of optional input available through the
+!          call sequence,
+!        * a description of optional output (in the work arrays), and
+!        * instructions for interrupting and restarting a solution.
+! ii. Descriptions of other routines in the DVODE package that may be
+!      (optionally) called by the user. These provide the ability to
+!      alter error message handling, save and restore the internal
+!      PRIVATE variables, and obtain specified derivatives of the
+!      solution y(t).
+! iii. Descriptions of PRIVATE variables to be declared in overlay
+!      or similar environments.
+! iv. Description of two routines in the DVODE package, either of
+!      which the user may replace with his own version, if desired.
+!      these relate to the measurement of errors.
+! Part i. Call Sequence.
+! The call sequence parameters used for input only are
+!     F, NEQ, TOUT, ITOL, RTOL, ATOL, ITASK, IOPT, JAC, MF,
+! and those used for both input and output are
+!     Y, T, ISTATE.
+! The work arrays RUSER and IUSER are used for conditional and
+! optional input and optional output. (The term output here refers
+! to the return from subroutine DVODE to the user's calling program.)
+! The legality of input parameters will be thoroughly checked on the
+! initial call for the problem, but not checked thereafter unless a
+! change in input parameters is flagged by ISTATE = 3 in the input.
+! The descriptions of the call arguments are as follows.
+! F      = The name of the user-supplied subroutine defining the
+!          ODE system. The system must be put in the first-order
+!          form dy/dt = f(t,y), where f is a vector-valued function
+!          of the scalar t and the vector y. Subroutine F is to
+!          compute the function f. It is to have the form
+!               SUBROUTINE F(NEQ, T, Y, YDOT)
+!               REAL(KIND=WP) T, Y(NEQ), YDOT(NEQ)
+!          where NEQ, T, and Y are input, and the array YDOT = f(t,y)
+!          is output. Y and YDOT are arrays of length NEQ.
+!          Subroutine F should not alter Y(1),...,Y(NEQ).
+!          F must be declared EXTERNAL in the calling program.
+
+!          If quantities computed in the F routine are needed
+!          externally to DVODE, an extra call to F should be made
+!          for this purpose, for consistent and accurate results.
+!          If only the derivative dy/dt is needed, use DVINDY instead.
+! NEQ    = The size of the ODE system (number of first order
+!          ordinary differential equations). Used only for input.
+!          NEQ may not be increased during the problem, but
+!          can be decreased (with ISTATE = 3 in the input).
+! Y      = A real array for the vector of dependent variables, of
+!          length NEQ or more. Used for both input and output on the
+!          first call (ISTATE = 1), and only for output on other calls.
+!          On the first call, Y must contain the vector of initial
+!          values. In the output, Y contains the computed solution
+!          evaluated at T. If desired, the Y array may be used
+!          for other purposes between calls to the solver.
+!          This array is passed as the Y argument in all calls to
+!          F and JAC.
+! T      = The independent variable. In the input, T is used only on
+!          the first call, as the initial point of the integration.
+!          In the output, after each call, T is the value at which a
+!          computed solution Y is evaluated (usually the same as TOUT).
+!          On an error return, T is the farthest point reached.
+! TOUT   = The next value of t at which a computed solution is desired.
+!          Used only for input.
+!          When starting the problem (ISTATE = 1), TOUT may be equal
+!          to T for one call, then should /= T for the next call.
+!          For the initial T, an input value of TOUT /= T is used
+!          in order to determine the direction of the integration
+!          (i.e. the algebraic sign of the step sizes) and the rough
+!          scale of the problem. Integration in either direction
+!          (forward or backward in t) is permitted.
+!          If ITASK = 2 or 5 (one-step modes), TOUT is ignored after
+!          the first call (i.e. the first call with TOUT /= T).
+!          Otherwise, TOUT is required on every call.
+!          If ITASK = 1, 3, or 4, the values of TOUT need not be
+!          monotone, but a value of TOUT which backs up is limited
+!          to the current internal t interval, whose endpoints are
+!          TCUR - HU and TCUR. (See optional output, below, for
+!          TCUR and HU.)
+! ITOL   = An indicator for the type of error control. See
+!          description below under ATOL. Used only for input.
+! RTOL   = A relative error tolerance parameter, either a scalar or
+!          an array of length NEQ. See description below under ATOL.
+!          Input only.
+! ATOL   = An absolute error tolerance parameter, either a scalar or
+!          an array of length NEQ. Input only.
+!          The input parameters ITOL, RTOL, and ATOL determine
+!          the error control performed by the solver. The solver will
+!          control the vector e = (e(i)) of estimated local errors
+!          in Y, according to an inequality of the form
+!                      rms-norm of (E(i)/EWT(i)) <= 1,
+!          where       EWT(i) = RTOL(i)*ABS(Y(i)) + ATOL(i),
+!          and the rms-norm (root-mean-square norm) here is
+!          rms-norm(v) = sqrt(sum v(i)**2 / NEQ). Here EWT
+!          is a vector of weights which must always be positive, and
+!          the values of RTOL and ATOL should all be nonnegative.
+!          The following table gives the types (scalar/array) of
+!          RTOL and ATOL, and the corresponding form of EWT(i).
+!           ITOL    RTOL       ATOL          EWT(i)
+!            1     scalar     scalar     RTOL*ABS(Y(i)) + ATOL
+!            2     scalar     array      RTOL*ABS(Y(i)) + ATOL(i)
+!            3     array      scalar     RTOL(i)*ABS(Y(i)) + ATOL
+!            4     array      array      RTOL(i)*ABS(Y(i)) + ATOL(i)
+!          When either of these parameters is a scalar, it need not
+!          be dimensioned in the user's calling program.
+!          If none of the above choices (with ITOL, RTOL, and ATOL
+!          fixed throughout the problem) is suitable, more general
+!          error controls can be obtained by substituting
+!          user-supplied routines for the setting of EWT and/or for
+!          the norm calculation. See Part iv below.
+!          If global errors are to be estimated by making a repeated
+!          run on the same problem with smaller tolerances, then all
+!          components of RTOL and ATOL(i.e. of EWT) should be scaled
+!          down uniformly.
+! ITASK  = An index specifying the task to be performed.
+!          Input only. ITASK has the following values and meanings.
+!          1  means normal computation of output values of y(t) at
+!             t = TOUT(by overshooting and interpolating).
+!          2  means take one step only and return.
+!          3  means stop at the first internal mesh point at or
+!             beyond t = TOUT and return.
+!          4  means normal computation of output values of y(t) at
+!             t = TOUT but without overshooting t = TCRIT.
+!             TCRIT must be input as RUSER(1). TCRIT may be equal to
+!             or beyond TOUT, but not behind it in the direction of
+!             integration. This option is useful if the problem
+!             has a singularity at or beyond t = TCRIT.
+!          5  means take one step, without passing TCRIT, and return.
+!             TCRIT must be input as RUSER(1).
+!          Note:  If ITASK = 4 or 5 and the solver reaches TCRIT
+!          (within roundoff), it will return T = TCRIT(exactly) to
+!          indicate this (unless ITASK = 4 and TOUT comes before TCRIT,
+!          in which case answers at T = TOUT are returned first).
+! ISTATE = an index used for input and output to specify the
+!          the state of the calculation.
+!          In the input, the values of ISTATE are as follows.
+!          1  means this is the first call for the problem
+!             (initializations will be done). See note below.
+!          2  means this is not the first call, and the calculation
+!             is to continue normally, with no change in any input
+!             parameters except possibly TOUT and ITASK.
+!             (If ITOL, RTOL, and/or ATOL are changed between calls
+!             with ISTATE = 2, the new values will be used but not
+!             tested for legality.)
+!          3  means this is not the first call, and the
+!             calculation is to continue normally, but with
+!             a change in input parameters other than
+!             TOUT and ITASK. Changes are allowed in
+!             NEQ, ITOL, RTOL, ATOL, IOPT, MF, ML, MU,
+!             and any of the optional input except H0.
+!             (See IUSER description for ML and MU.)
+!          Caution:
+!          If you make a call to DVODE_F90 with ISTATE=3, you will
+!          first need to call SET_OPTS again, supplying the new
+!          necessary option values.
+!          Note:  A preliminary call with TOUT = T is not counted
+!          as a first call here, as no initialization or checking of
+!          input is done. (Such a call is sometimes useful to include
+!          the initial conditions in the output.)
+!          Thus the first call for which TOUT /= T requires
+!          ISTATE = 1 in the input.
+!          In the output, ISTATE has the following values and meanings.
+!           1  means nothing was done, as TOUT was equal to T with
+!              ISTATE = 1 in the input.
+!           2  means the integration was performed successfully.
+!          -1  means an excessive amount of work (more than MXSTEP
+!              steps) was done on this call, before completing the
+!              requested task, but the integration was otherwise
+!              successful as far as T. (MXSTEP is an optional input
+!              and is normally 5000.)  To continue, the user may
+!              simply reset ISTATE to a value > 1 and call again.
+!              (The excess work step counter will be reset to 0.)
+!              In addition, the user may increase MXSTEP to avoid
+!              this error return. (See optional input below.)
+!          -2  means too much accuracy was requested for the precision
+!              of the machine being used. This was detected before
+!              completing the requested task, but the integration
+!              was successful as far as T. To continue, the tolerance
+!              parameters must be reset, and ISTATE must be set
+!              to 3. The optional output TOLSF may be used for this
+!              purpose. (Note: If this condition is detected before
+!              taking any steps, then an illegal input return
+!              (ISTATE = -3) occurs instead.)
+!          -3  means illegal input was detected, before taking any
+!              integration steps. See written message for details.
+!              Note:  If the solver detects an infinite loop of calls
+!              to the solver with illegal input, it will cause
+!              the run to stop.
+!          -4  means there were repeated error test failures on
+!              one attempted step, before completing the requested
+!              task, but the integration was successful as far as T.
+!              The problem may have a singularity, or the input
+!              may be inappropriate.
+!          -5  means there were repeated convergence test failures on
+!              one attempted step, before completing the requested
+!              task, but the integration was successful as far as T.
+!              This may be caused by an inaccurate Jacobian matrix,
+!              if one is being used.
+!          -6  means EWT(i) became zero for some i during the
+!              integration. Pure relative error control (ATOL(i)=0.0)
+!              was requested on a variable which has now vanished.
+!              The integration was successful as far as T.
+!          Note:  Since the normal output value of ISTATE is 2,
+!          it does not need to be reset for normal continuation.
+!          Also, since a negative input value of ISTATE will be
+!          regarded as illegal, a negative output value requires the
+!          user to change it, and possibly other input, before
+!          calling the solver again.
+! IOPT   = An integer flag to specify whether or not any optional
+!          input is being used on this call. Input only.
+!          The optional input is listed separately below.
+!          IOPT = 0 means no optional input is being used.
+!                   Default values will be used in all cases.
+!          IOPT = 1 means optional input is being used.
+! RUSER  = A real working array (real(wp)).
+!          The length of RUSER must be at least 22
+!             20 + NYH * (MAXORD + 1) where
+!          NYH    = the initial value of NEQ,
+!          MAXORD = 12 (if METH = 1) or 5 (if METH = 2) (unless a
+!                   smaller value is given as an optional input),
+!          The first 22 words of RUSER are reserved for conditional
+!          and optional input and optional output.
+
+!          The following word in RUSER is a conditional input:
+!            RUSER(1) = TCRIT = critical value of t which the solver
+!                       is not to overshoot. Required if ITASK is
+!                       4 or 5, and ignored otherwise. (See ITASK.)
+! IUSER  = An integer work array. The length of IUSER must be at least 30.
+!             30        if MITER = 0 or 3 (MF = 10, 13, 20, 23), or
+!             30 + NEQ  otherwise (ABS(MF) = 11,12,14,15,16,17,21,22,
+!             24,25,26,27).
+!          The first 30 words of IUSER are reserved for conditional and
+!          optional input and optional output.
+
+!          The following 2 words in IUSER are conditional input:
+!            IUSER(1) = ML  These are the lower and upper
+!            IUSER(2) = MU  half-bandwidths, respectively, of the
+!                       banded Jacobian, excluding the main diagonal.
+!                       The band is defined by the matrix locations
+!                       (i,j) with i-ML <= j <= i+MU. ML and MU
+!                       must satisfy  0 <= ML,MU  <= NEQ-1.
+!                       These are required if MITER is 4 or 5, and
+!                       ignored otherwise. ML and MU may in fact be
+!                       the band parameters for a matrix to which
+!                       df/dy is only approximately equal.
+! Note:  The work arrays must not be altered between calls to DVODE
+! for the same problem, except possibly for the conditional and
+! optional input, and except for the last 3*NEQ words of RUSER.
+! The latter space is used for internal scratch space, and so is
+! available for use by the user outside DVODE between calls, if
+! desired (but not for use by F or JAC).
+! JAC    = The name of the user-supplied routine (MITER = 1 or 4 or 6)
+!          to compute the Jacobian matrix, df/dy, as a function of
+!          the scalar t and the vector y. It is to have the form
+!               SUBROUTINE JAC(NEQ, T, Y, ML, MU, PD, NROWPD)
+!               REAL(KIND=WP) T, Y(NEQ), PD(NROWPD,NEQ)
+!          where NEQ, T, Y, ML, MU, and NROWPD are input and the array
+!          PD is to be loaded with partial derivatives (elements of the
+!          Jacobian matrix) in the output. PD must be given a first
+!          dimension of NROWPD. T and Y have the same meaning as in
+!          Subroutine F.
+!               In the full matrix case (MITER = 1), ML and MU are
+!          ignored, and the Jacobian is to be loaded into PD in
+!          columnwise manner, with df(i)/dy(j) loaded into PD(i,j).
+!               In the band matrix case (MITER = 4), the elements
+!          within the band are to be loaded into PD in columnwise
+!          manner, with diagonal lines of df/dy loaded into the rows
+!          of PD. Thus df(i)/dy(j) is to be loaded into PD(i-j+MU+1,j).
+!          ML and MU are the half-bandwidth parameters. (See IUSER).
+!          The locations in PD in the two triangular areas which
+!          correspond to nonexistent matrix elements can be ignored
+!          or loaded arbitrarily, as they are overwritten by DVODE.
+!               In the sparse matrix case the elements of the matrix
+!          are determined by the sparsity structure given by the
+!          IA and JA pointer arrays. Refer to the documentation
+!          prologue for SET_OPTS for a description of the arguments
+!          for JAC since they differ from the dense and banded cases.
+!               JAC need not provide df/dy exactly. A crude
+!          approximation (possibly with a smaller bandwidth) will do.
+!               In either case, PD is preset to zero by the solver,
+!          so that only the nonzero elements need be loaded by JAC.
+!          Each call to JAC is preceded by a call to F with the same
+!          arguments NEQ, T, and Y. Thus to gain some efficiency,
+!          intermediate quantities shared by both calculations may be
+!          saved in a user common block by F and not recomputed by JAC,
+!          if desired. Also, JAC may alter the Y array, if desired.
+!          JAC must be declared external in the calling program.
+! MF     = The method flag. Used only for input. The legal values of
+!          MF are 10, 11, 12, 13, 14, 15, 16, 17, 20, 21, 22, 23, 24,
+!          25, 26, 27, -11, -12, -14, -15, -21, -22, -24, -25, -26,
+!          -27.
+!          MF is a signed two-digit integer, MF = JSV*(10*METH+MITER).
+!          JSV = SIGN(MF) indicates the Jacobian-saving strategy:
+!            JSV =  1 means a copy of the Jacobian is saved for reuse
+!                     in the corrector iteration algorithm.
+!            JSV = -1 means a copy of the Jacobian is not saved
+!                     (valid only for MITER = 1, 2, 4, or 5).
+!          METH indicates the basic linear multistep method:
+!            METH = 1 means the implicit Adams method.
+!            METH = 2 means the method based on backward
+!                     differentiation formulas (BDF-s).
+!          MITER indicates the corrector iteration method:
+!            MITER = 0 means functional iteration (no Jacobian matrix
+!                      is involved).
+!            MITER = 1 means chord iteration with a user-supplied
+!                      full (NEQ by NEQ) Jacobian.
+!            MITER = 2 means chord iteration with an internally
+!                      generated (difference quotient) full Jacobian
+!                      (using NEQ extra calls to F per df/dy value).
+!            MITER = 3 means chord iteration with an internally
+!                      generated diagonal Jacobian approximation
+!                      (using 1 extra call to F per df/dy evaluation).
+!            MITER = 4 means chord iteration with a user-supplied
+!                      banded Jacobian.
+!            MITER = 5 means chord iteration with an internally
+!                      generated banded Jacobian (using ML+MU+1 extra
+!                      calls to F per df/dy evaluation).
+!            MITER = 6 means chord iteration with a user-supplied
+!                      sparse Jacobian.
+!            MITER = 7 means chord iteration with an internally
+!                      generated sparse Jacobian
+!          If MITER = 1, 4, or 6 the user must supply a subroutine
+!          JAC(the name is arbitrary) as described above under JAC.
+!          For other values of MITER, a dummy argument can be used.
+!                         Optional Input
+! The following is a list of the optional input provided for in the
+! call sequence. (See also Part ii.)  For each such input variable,
+! this table lists its name as used in this documentation, its
+! location in the call sequence, its meaning, and the default value.
+! The use of any of this input requires IOPT = 1, and in that
+! case all of this input is examined. A value of zero for any of
+! these optional input variables will cause the default value to be
+! used. Thus to use a subset of the optional input, simply preload
+! locations 5 to 10 in RUSER and IUSER to 0.0 and 0, respectively,
+! and then set those of interest to nonzero values.
+! NAME    LOCATION      MEANING AND DEFAULT VALUE
+! H0      RUSER(5)  The step size to be attempted on the first step.
+!                   The default value is determined by the solver.
+! HMAX    RUSER(6)  The maximum absolute step size allowed.
+!                   The default value is infinite.
+! HMIN    RUSER(7)  The minimum absolute step size allowed.
+!                   The default value is 0. (This lower bound is not
+!                   enforced on the final step before reaching TCRIT
+!                   when ITASK = 4 or 5.)
+! MAXORD  IUSER(5)  The maximum order to be allowed. The default
+!                   value is 12 if METH = 1, and 5 if METH = 2.
+!                   If MAXORD exceeds the default value, it will
+!                   be reduced to the default value.
+!                   If MAXORD is changed during the problem, it may
+!                   cause the current order to be reduced.
+! MXSTEP  IUSER(6)  Maximum number of (internally defined) steps
+!                   allowed during one call to the solver.
+!                   The default value is 5000.
+! MXHNIL  IUSER(7)  Maximum number of messages printed (per problem)
+!                   warning that T + H = T on a step (H = step size).
+!                   This must be positive to result in a non-default
+!                   value. The default value is 10.
+!                          Optional Output
+! As optional additional output from DVODE, the variables listed
+! below are quantities related to the performance of DVODE
+! which are available to the user. These are communicated by way of
+! the work arrays, but also have internal mnemonic names as shown.
+! Except where stated otherwise, all of this output is defined
+! on any successful return from DVODE, and on any return with
+! ISTATE = -1, -2, -4, -5, or -6. On an illegal input return
+! (ISTATE = -3), they will be unchanged from their existing values
+! (if any), except possibly for TOLSF, LENRW, and LENIW.
+! On any error return, output relevant to the error will be defined,
+! as noted below.
+! NAME    LOCATION      MEANING
+! HU      RUSER(11) The step size in t last used (successfully).
+! HCUR    RUSER(12) The step size to be attempted on the next step.
+! TCUR    RUSER(13) The current value of the independent variable
+!                   which the solver has actually reached, i.e. the
+!                   current internal mesh point in t. In the output,
+!                   TCUR will always be at least as far from the
+!                   initial value of t as the current argument T,
+!                   but may be farther (if interpolation was done).
+! TOLSF   RUSER(14) A tolerance scale factor, greater than 1.0,
+!                   computed when a request for too much accuracy was
+!                   detected (ISTATE = -3 if detected at the start of
+!                   the problem, ISTATE = -2 otherwise). If ITOL is
+!                   left unaltered but RTOL and ATOL are uniformly
+!                   scaled up by a factor of TOLSF for the next call,
+!                   then the solver is deemed likely to succeed.
+!                   (The user may also ignore TOLSF and alter the
+!                   tolerance parameters in any other way appropriate.)
+! NST     IUSER(11) The number of steps taken for the problem so far.
+! NFE     IUSER(12) The number of f evaluations for the problem so far.
+! NJE     IUSER(13) The number of Jacobian evaluations so far.
+! NQU     IUSER(14) The method order last used (successfully).
+! NQCUR   IUSER(15) The order to be attempted on the next step.
+! IMXER   IUSER(16) The index of the component of largest magnitude in
+!                   the weighted local error vector (e(i)/EWT(i)),
+!                   on an error return with ISTATE = -4 or -5.
+! LENRW   IUSER(17) The length of RUSER actually required.
+!                   This is defined on normal returns and on an illegal
+!                   input return for insufficient storage.
+! LENIW   IUSER(18) The length of IUSER actually required.
+!                   This is defined on normal returns and on an illegal
+!                   input return for insufficient storage.
+! NLU     IUSER(19) The number of matrix LU decompositions so far.
+! NNI     IUSER(20) The number of nonlinear (Newton) iterations so far.
+! NCFN    IUSER(21) The number of convergence failures of the nonlinear
+!                   solver so far.
+! NETF    IUSER(22) The number of error test failures of the integrator
+!                   so far.
+! The following two arrays are segments of the RUSER array which
+! may also be of interest to the user as optional output.
+! For each array, the table below gives its internal name,
+! its base address in RUSER, and its description.
+!                  Interrupting and Restarting
+! If the integration of a given problem by DVODE is to be interrupted
+! and then later continued, such as when restarting an interrupted run
+! or alternating between two or more ODE problems, the user should save,
+! following the return from the last DVODE call prior to the
+! interruption, the contents of the call sequence variables and
+! internal PRIVATE variables, and later restore these values before the
+! next DVODE call for that problem. To save and restore the PRIVATE
+! variables, use subroutine DVSRCO, as described below in part ii.
+! In addition, if non-default values for either LUN or MFLAG are
+! desired, an extra call to XSETUN and/or XSETF should be made just
+! before continuing the integration. See Part ii below for details.
+! Part ii. Other Routines Callable.
+! The following are optional calls which the user may make to
+! gain additional capabilities in conjunction with DVODE.
+! (The routines XSETUN and XSETF are designed to conform to the
+! SLATEC error handling package.)
+!     FORM OF CALL                  FUNCTION
+!  CALL XSETUN(LUN)           Set the logical unit number, LUN, for
+!                             output of messages from DVODE, if
+!                             the default is not desired.
+!                             The default value of LUN is 6.
+!  CALL XSETF(MFLAG)          Set a flag to control the printing of
+!                             messages by DVODE.
+!                             MFLAG = 0 means do not print. (Danger:
+!                             This risks losing valuable information.)
+!                             Either of the above calls may be made at
+!                             any time and will take effect immediately.
+!  CALL DVINDY(...)           Provide derivatives of y, of various
+!                             orders, at a specified point T, if
+!                             desired. It may be called only after
+!                             a successful return from DVODE.
+! The detailed instructions for using DVINDY are as follows.
+! The form of the call is:
+!      CALL DVINDY(T,K,DKY,IFLAG)
+! The input parameters are:
+! T         = Value of independent variable where answers are desired
+!             (normally the same as the T last returned by DVODE).
+!             For valid results, T must lie between TCUR - HU and TCUR.
+!             (See optional output for TCUR and HU.)
+! K         = Integer order of the derivative desired. K must satisfy
+!             0 <= K <= NQCUR, where NQCUR is the current order
+!             (see optional output). The capability corresponding
+!             to K = 0, i.e. computing y(T), is already provided
+!             by DVODE directly. Since NQCUR >= 1, the first
+!             derivative dy/dt is always available with DVINDY.
+! The output parameters are:
+! DKY       = A real array of length NEQ containing the computed value
+!             of the K-th derivative of y(t).
+! IFLAG     = Integer flag, returned as 0 if K and T were legal,
+!             -1 if K was illegal, and -2 if T was illegal.
+!             On an error return, a message is also written.
+! Part iii. Optionally Replaceable Solver Routines.
+! Below are descriptions of two routines in the DVODE package which
+! relate to the measurement of errors. Either routine can be
+! replaced by a user-supplied version, if desired. However, since such
+! a replacement may have a major impact on performance, it should be
+! done only when absolutely necessary, and only with great caution.
+! (Note: The means by which the package version of a routine is
+! superseded by the user's version may be system-dependent.)
+! (a) DEWSET.
+! The following subroutine is called just before each internal
+! integration step, and sets the array of error weights, EWT, as
+! described under ITOL/RTOL/ATOL above:
+!     SUBROUTINE DEWSET(NEQ, ITOL, RTOL, ATOL, YCUR, EWT)
+! where NEQ, ITOL, RTOL, and ATOL are as in the DVODE call sequence,
+! YCUR contains the current dependent variable vector, and
+! EWT is the array of weights set by DEWSET.
+! If the user supplies this subroutine, it must return in EWT(i)
+! (i = 1,...,NEQ) a positive quantity suitable for comparison with
+! errors in Y(i). The EWT array returned by DEWSET is passed to the
+! DVNORM function (See below.), and also used by DVODE in the
+! computation of the optional output IMXER, the diagonal Jacobian
+! approximation, and the increments for difference quotient Jacobians.
+! In the user-supplied version of DEWSET, it may be desirable to use
+! the current values of derivatives of y. Derivatives up to order NQ
+! are available from the history array YH, described above under
+! Optional Output. In DEWSET, YH is identical to the YCUR array,
+! extended to NQ + 1 columns with a column length of NYH and scale
+! factors of h**j/factorial(j). On the first call for the problem,
+! given by NST = 0, NQ is 1 and H is temporarily set to 1.0.
+! NYH is the initial value of NEQ. Thus, for example, the current
+! value of dy/dt can be obtained as YCUR(NYH+i)/H  (i=1,...,NEQ)
+! (and the division by H is unnecessary when NST = 0).
+! (b) DVNORM.
+! The following is a function which computes the weighted
+! root-mean-square norm of a vector v:
+!     D = DVNORM(N, V, W)
+! where:
+!   N = the length of the vector,
+!   V = real array of length N containing the vector,
+!   W = real array of length N containing weights,
+!   D = sqrt((1/N) * sum(V(i)*W(i))**2).
+! DVNORM is called with N = NEQ and with W(i) = 1.0/EWT(i), where
+! EWT is as set by subroutine DEWSET.
+! If the user supplies this routine, it should return a nonnegative
+! value of DVNORM suitable for use in the error control in DVODE.
+! None of the arguments should be altered by DVNORM.
+! For example, a user-supplied DVNORM function might:
+!   -substitute a max-norm of (V(i)*W(i)) for the rms-norm, or
+!   -ignore some components of V in the norm, with the effect of
+!    suppressing the error control on those components of Y.
+!_______________________________________________________________________
+! Other Routines in the DVODE Package
+
+! In addition to subroutine DVODE, the DVODE package includes the
+! following subroutines and function routines (not user callable):
+!  DVHIN       computes an approximate step size for the initial step.
+!  DVINDY_CORE computes an interpolated value of the y vector at t=TOUT.
+!  DVINDY      computes an interpolated value of the y vector at t=TOUT.
+!              (user callable)
+!  DVSTEP      is the core integrator, which does one step of the
+!              integration and the associated error control.
+!  DVSET       sets all method coefficients and test constants.
+!  DVNLSD,     solves the underlying nonlinear system -- the corrector.
+!  DVNLSS28
+!  DVJAC,      computes and preprocesses the Jacobian matrix J = df/dy
+!  DVJACS28    and the Newton iteration matrix P = I - (h/l1)*J.
+!  DVSOL,      manages solution of linear system in chord iteration.
+!  DVSOLS28
+!  DVJUST      adjusts the history array on a change of order.
+!  DEWSET      sets the error weight vector EWT before each step.
+!  DVNORM      computes the weighted r.m.s. norm of a vector.
+!  DACOPY      is a routine to copy a two-dimensional array to another.
+!  DGEFA_F90 and DGESL_F90 are routines from LINPACK for solving full
+!              systems of linear algebraic equations.
+!  DGBFA_F90 and DGBSL_F90 are routines from LINPACK for solving banded
+!              linear systems.
+!  DAXPY_F90, DSCAL_F90, and DCOPY_F90 are basic linear algebra modules
+!              (BLAS).
+!  DVCHECK     does preliminary checking for roots, and serves as an
+!              interface between subroutine DVODE_F90 and subroutine
+!              DVROOTS.
+!  DVROOTS     finds the leftmost root of a set of functions.
+! ______________________________________________________________________
+! Section 10.  Example Usage
+!
+! MODULE example1
+! The following is a simple example problem, with the coding
+! needed for its solution by DVODE_F90. The problem is from
+! chemical kinetics, and consists of the following three rate
+! equations:
+!     dy1/dt = -.04d0*y1 + 1.d4*y2*y3
+!     dy2/dt = .04d0*y1 - 1.d4*y2*y3 - 3.d7*y2**2
+!     dy3/dt = 3.d7*y2**2
+! on the interval from t = 0.0d0 to t = 4.d10, with initial
+! conditions y1 = 1.0d0, y2 = y3 = 0.0d0. The problem is stiff.
+! The following coding solves this problem with DVODE_F90,
+! using a user supplied Jacobian and printing results at
+! t = .4, 4.,...,4.d10. It uses ITOL = 2 and ATOL much smaller
+! for y2 than y1 or y3 because y2 has much smaller values. At
+! the end of the run, statistical quantities of interest are
+! printed. (See optional output in the full DVODE description
+! below.) Output is written to the file example1.dat.
+! CONTAINS
+!     SUBROUTINE FEX(NEQ, T, Y, YDOT)
+!     IMPLICIT NONE
+!     INTEGER NEQ
+!     DOUBLE PRECISION T, Y, YDOT
+!     DIMENSION Y(NEQ), YDOT(NEQ)
+!     YDOT(1) = -.04D0*Y(1) + 1.D4*Y(2)*Y(3)
+!     YDOT(3) = 3.E7*Y(2)*Y(2)
+!     YDOT(2) = -YDOT(1) - YDOT(3)
+!     RETURN
+!     END SUBROUTINE FEX
+!     SUBROUTINE JEX(NEQ, T, Y, ML, MU, PD, NRPD)
+!     IMPLICIT NONE
+!     INTEGER NEQ,ML,MU,NRPD
+!     DOUBLE PRECISION PD, T, Y
+!     DIMENSION Y(NEQ), PD(NRPD,NEQ)
+!     PD(1,1) = -.04D0
+!     PD(1,2) = 1.D4*Y(3)
+!     PD(1,3) = 1.D4*Y(2)
+!     PD(2,1) = .04D0
+!     PD(2,3) = -PD(1,3)
+!     PD(3,2) = 6.E7*Y(2)
+!     PD(2,2) = -PD(1,2) - PD(3,2)
+!     RETURN
+!     END SUBROUTINE JEX
+! END MODULE example1
+!******************************************************************
+
+!     PROGRAM runexample1
+!     USE DVODE_F90_M
+!     USE example1
+!     IMPLICIT NONE
+!     DOUBLE PRECISION ATOL, RTOL, T, TOUT, Y, RSTATS
+!     INTEGER NEQ, ITASK, ISTATE, ISTATS, IOUT, IERROR, I
+!     DIMENSION Y(3), ATOL(3), RSTATS(22), ISTATS(31)
+!     TYPE(VODE_OPTS) :: OPTIONS
+!     OPEN(UNIT=6, FILE = 'example1.dat')
+!     IERROR = 0
+!     NEQ = 3
+!     Y(1) = 1.0D0
+!     Y(2) = 0.0D0
+!     Y(3) = 0.0D0
+!     T = 0.0D0
+!     TOUT = 0.4D0
+!     RTOL = 1.D-4
+!     ATOL(1) = 1.D-8
+!     ATOL(2) = 1.D-14
+!     ATOL(3) = 1.D-6
+!     ITASK = 1
+!     ISTATE = 1
+!     OPTIONS = SET_OPTS(DENSE_J=.TRUE.,ABSERR_VECTOR=ATOL, &
+!       RELERR=RTOL, USER_SUPPLIED_JACOBIAN=.TRUE.)
+!     DO IOUT = 1,12
+!       CALL DVODE_F90(FEX,NEQ,Y,T,TOUT,ITASK,ISTATE,OPTIONS,J_FCN=JEX)
+!       CALL GET_STATS(RSTATS,ISTATS)
+!       WRITE(6,63)T,Y(1),Y(2),Y(3)
+!       DO I = 1, NEQ
+!          IF (Y(I) < 0.0D0) IERROR = 1
+!       END DO
+!       IF (ISTATE < 0) THEN
+!          WRITE(6,64)ISTATE
+!          STOP
+!       END IF
+!       TOUT = TOUT*10.0D0
+!     END DO
+!     WRITE(6,60) ISTATS(11),ISTATS(12),ISTATS(13),ISTATS(19), &
+!                 ISTATS(20),ISTATS(21),ISTATS(22)
+!     IF (IERROR == 1) THEN
+!        WRITE(6,61)
+!     ELSE
+!        WRITE(6,62)
+!     END IF
+! 60  FORMAT(/'  No. steps =',I4,'   No. f-s =',I4,        &
+!             '  No. J-s =',I4,'   No. LU-s =',I4/         &
+!             '  No. nonlinear iterations =',I4/           &
+!             '  No. nonlinear convergence failures =',I4/ &
+!             '  No. error test failures =',I4/)
+! 61  FORMAT(/' An error occurred.')
+! 62  FORMAT(/' No errors occurred.')
+! 63  FORMAT(' At t =',D12.4,'   y =',3D14.6)
+! 64  FORMAT(///' Error halt: ISTATE =',I3)
+!     STOP
+!     END PROGRAM runexample1
+!
+! MODULE example2
+! The following is a modification of the previous example
+! program to illustrate root finding. The problem is from
+! chemical kinetics, and consists of the following three
+! rate equations:
+!     dy1/dt = -.04d0*y1 + 1.d4*y2*y3
+!     dy2/dt = .04d0*y1 - 1.d4*y2*y3 - 3.d7*y2**2
+!     dy3/dt = 3.d7*y2**2
+! on the interval from t = 0.0d0 to t = 4.d10, with initial
+! conditions y1 = 1.0d0, y2 = y3 = 0.0d0. The problem is stiff.
+! In addition, we want to find the values of t, y1, y2,
+! and y3 at which:
+!   (1) y1 reaches the value 1.d-4, and
+!   (2) y3 reaches the value 1.d-2.
+! The following coding solves this problem with DVODE_F90
+! using an internally generated dense Jacobian and
+! printing results at t = .4, 4., ..., 4.d10, and at the
+! computed roots. It uses ITOL = 2 and ATOL much smaller
+! for y2 than y1 or y3 because y2 has much smaller values.
+! At the end of the run, statistical quantities of interest
+! are printed (see optional outputs in the full description
+! below). Output is written to the file example2.dat.
+! CONTAINS
+!     SUBROUTINE FEX (NEQ, T, Y, YDOT)
+!     IMPLICIT NONE
+!     INTEGER NEQ
+!     DOUBLE PRECISION T, Y, YDOT
+!     DIMENSION Y(3), YDOT(3)
+!     YDOT(1) = -0.04D0*Y(1) + 1.0D4*Y(2)*Y(3)
+!     YDOT(3) = 3.0D7*Y(2)*Y(2)
+!     YDOT(2) = -YDOT(1) - YDOT(3)
+!     RETURN
+!     END SUBROUTINE FEX
+!     SUBROUTINE GEX (NEQ, T, Y, NG, GOUT)
+!     IMPLICIT NONE
+!     INTEGER NEQ, NG
+!     DOUBLE PRECISION T, Y, GOUT
+!     DIMENSION Y(3), GOUT(2)
+!     GOUT(1) = Y(1) - 1.0D-4
+!     GOUT(2) = Y(3) - 1.0D-2
+!     RETURN
+!     END SUBROUTINE GEX
+! END MODULE example2
+!******************************************************************
+!     PROGRAM runexample2
+!     USE DVODE_F90_M
+!     USE example2
+!     IMPLICIT NONE
+!     INTEGER ITASK, ISTATE, NG, NEQ, IOUT, JROOT, ISTATS, &
+!     IERROR, I
+!     DOUBLE PRECISION ATOL, RTOL, RSTATS, T, TOUT, Y
+!     DIMENSION Y(3), ATOL(3), RSTATS(22), ISTATS(31), JROOT(2)
+!     TYPE(VODE_OPTS) :: OPTIONS
+!     OPEN (UNIT=6, FILE='example2.dat')
+!     IERROR = 0
+!     NEQ = 3
+!     Y(1) = 1.0D0
+!     Y(2) = 0.0D0
+!     Y(3) = 0.0D0
+!     T = 0.0D0
+!     TOUT = 0.4D0
+!     RTOL = 1.0D-4
+!     ATOL(1) = 1.0D-8
+!     ATOL(2) = 1.0D-12
+!     ATOL(3) = 1.0D-8
+!     ITASK = 1
+!     ISTATE = 1
+!     NG = 2
+!     OPTIONS = SET_OPTS(DENSE_J=.TRUE.,RELERR=RTOL, &
+!       ABSERR_VECTOR=ATOL,NEVENTS=NG)
+!     DO 40 IOUT = 1,12
+! 10    CONTINUE
+!       CALL DVODE_F90(FEX,NEQ,Y,T,TOUT,ITASK,ISTATE,OPTIONS,G_FCN=GEX)
+!       CALL GET_STATS(RSTATS, ISTATS, NG, JROOT)
+!       WRITE(6,20) T, Y(1), Y(2), Y(3)
+!       DO I = 1, NEQ
+!          IF (Y(I) < 0.0D0) IERROR = 1
+!       END DO
+! 20    FORMAT(' At t =',D12.4,'   Y =',3D14.6)
+!       IF (ISTATE < 0) GOTO 60
+!       IF (ISTATE == 2) GOTO 40
+!       WRITE(6,30) JROOT(1),JROOT(2)
+! 30    FORMAT(5X,' The above line is a root, JROOT =',2I5)
+!       ISTATE = 2
+!       GOTO 10
+! 40  TOUT = TOUT*10.0D0
+!     WRITE(6,50) ISTATS(11), ISTATS(12), ISTATS(13), ISTATS(10)
+!     IF (IERROR == 1) THEN
+!        WRITE(6,61)
+!     ELSE
+!        WRITE(6,62)
+!     END IF
+! 50  FORMAT(/' No. steps =',I4,'  No. f-s =',I4,'  No. J-s =',I4, &
+!     '  No. g-s =',I4/)
+!     STOP
+! 60  WRITE(6,70) ISTATE
+! 61  FORMAT(/' An error occurred.')
+! 62  FORMAT(/' No errors occurred.')
+! 70  FORMAT(///' Error halt.. ISTATE =',I3)
+!     STOP
+!     END PROGRAM runexample2
+!_______________________________________________________________________
+! BEGINNING OF DVODE_F90_M PRIVATE SECTION.
+! Note: This global information is used throughout DVODE_F90.
+!_______________________________________________________________________
+! JACSPDB arrays and parameters.
+  LOGICAL, PRIVATE :: USE_JACSP, LIKE_ORIGINAL_VODE
+  INTEGER, PRIVATE :: INFODS, LIWADS, MAXGRPDS, MINGRPDS, NRFJACDS,    &
+    NCFJACDS, LWKDS, LIWKDS
+  INTEGER, ALLOCATABLE, PRIVATE :: INDROWDS(:), INDCOLDS(:),           &
+    NGRPDS(:), IPNTRDS(:), JPNTRDS(:), IWADS(:), IWKDS(:), IOPTDS(:)
+  REAL (WP), ALLOCATABLE, PRIVATE :: YSCALEDS(:), WKDS(:), FACDS(:)
+  REAL (WP), PRIVATE :: U125, U325
+!_______________________________________________________________________
+  LOGICAL, PARAMETER, PRIVATE :: USE_MA48_FOR_SPARSE=.FALSE.
+!_______________________________________________________________________
+! *****MA48 build change point. Replace the above statement.
+! LOGICAL, PARAMETER, PRIVATE :: USE_MA48_FOR_SPARSE=.TRUE.
+!_______________________________________________________________________
+! *****MA48 build change point. Insert these statements.
+! MA48 type declarations:
+! TYPE(ZD01_TYPE) MATRIX
+! TYPE(MA48_CONTROL) CONTROL
+! TYPE(MA48_FACTORS) FACTORS
+! TYPE(MA48_AINFO) AINFO
+! TYPE(MA48_FINFO) FINFO
+! TYPE(MA48_SINFO) SINFO
+!_______________________________________________________________________
+! .. Parameters ..
+!     IPCUTH_MAX - maximum number of times the solver will halve the
+!                  stepsize to prevent an infeasible prediction if
+!                  solution bounds are used
+!     KFC        - maximum number of consecutive convergence failures
+!                  before crashing the order
+!     KFH        - maximum number of consecutive error test failures
+!                  before giving up (changed from 7 to 15)
+!     MAXCOR     - maximum number of corrections
+!     MSBP       - maximum number of steps before forming new P matrix
+!     MXNCF      - maximum number of consecutive convergence failures
+!                  before giving up
+!     MXHNLO     - maximum number of T+H=T messages
+!     MXSTP0     - maximum number of integration steps
+!     L*****     - lengths and pointers for some internal arrays
+!     INTEGER, PARAMETER, PRIVATE :: KFC = -3, KFH = -7, LENIV1 = 33,    &
+      INTEGER, PARAMETER, PRIVATE :: IPCUTH_MAX = 100, KFC = -3,         &
+        KFH = -15, LENIV1 = 33,                                          &
+        LENIV2 = 8, LENRV1 = 48, LENRV2 = 1, LIWUSER = 30, LRWUSER = 22, &
+        MAXCOR = 3, MAX_ARRAY_SIZE = 900000000, MSBP = 20, MXHNL0 = 10,  &
+        MXNCF = 10, MXSTP0 = 5000
+!_______________________________________________________________________
+! *****LAPACK build change point. Use .TRUE. for LAPACK.
+!     LOGICAL, PARAMETER, PRIVATE :: USE_LAPACK = .TRUE.
+!_______________________________________________________________________
+      REAL (WP), PARAMETER, PRIVATE :: ADDON = 1.0E-6_WP
+      REAL (WP), PARAMETER, PRIVATE :: BIAS1 = 6.0_WP
+      REAL (WP), PARAMETER, PRIVATE :: BIAS2 = 6.0_WP
+      REAL (WP), PARAMETER, PRIVATE :: BIAS3 = 10.0_WP
+      REAL (WP), PARAMETER, PRIVATE :: CCMAX = 0.3_WP
+      REAL (WP), PARAMETER, PRIVATE :: CORTES = 0.1_WP
+      REAL (WP), PARAMETER, PRIVATE :: CRDOWN = 0.3_WP
+      REAL (WP), PARAMETER, PRIVATE :: ETACF = 0.25_WP
+      REAL (WP), PARAMETER, PRIVATE :: ETAMIN = 0.1_WP
+      REAL (WP), PARAMETER, PRIVATE :: ETAMX1 = 1.0E4_WP
+      REAL (WP), PARAMETER, PRIVATE :: ETAMX2 = 10.0_WP
+      REAL (WP), PARAMETER, PRIVATE :: ETAMX3 = 10.0_WP
+      REAL (WP), PARAMETER, PRIVATE :: ETAMXF = 0.2_WP
+      REAL (WP), PARAMETER, PRIVATE :: FIVE = 5.0_WP
+      REAL (WP), PARAMETER, PRIVATE :: FOUR = 4.0_WP
+      REAL (WP), PARAMETER, PRIVATE :: HALF = 0.5_WP
+      REAL (WP), PARAMETER, PRIVATE :: HUN = 100.0_WP
+      REAL (WP), PARAMETER, PRIVATE :: HUNDRETH = 0.01_WP
+      REAL (WP), PARAMETER, PRIVATE :: ONE = 1.0_WP
+      REAL (WP), PARAMETER, PRIVATE :: ONEPSM = 1.00001_WP
+      REAL (WP), PARAMETER, PRIVATE :: PT1 = 0.1_WP
+      REAL (WP), PARAMETER, PRIVATE :: PT2 = 0.2_WP
+      REAL (WP), PARAMETER, PRIVATE :: RDIV = 2.0_WP
+      REAL (WP), PARAMETER, PRIVATE :: SIX = 6.0_WP
+      REAL (WP), PARAMETER, PRIVATE :: TEN = 10.0_WP
+      REAL (WP), PARAMETER, PRIVATE :: TENTH = 0.1_WP
+      REAL (WP), PARAMETER, PRIVATE :: THOU = 1000.0_WP
+      REAL (WP), PARAMETER, PRIVATE :: THRESH = 1.5_WP
+      REAL (WP), PARAMETER, PRIVATE :: TWO = 2.0_WP
+      REAL (WP), PARAMETER, PRIVATE :: ZERO = 0.0_WP
+
+! Beginning of DVODE_F90 interface.
+! ..
+! .. Generic Interface Blocks ..
+      INTERFACE DVODE_F90
+
+!         VODE_F90 is the interface subroutine that is actually invoked
+!         when the user calls DVODE_F90. It in turn calls subroutine
+!         DVODE which is the driver that directs all the work.
+          MODULE PROCEDURE VODE_F90
+
+!         GET_STATS can be called to gather integration statistics.
+          MODULE PROCEDURE GET_STATS
+
+!         DVINDY can be called to interpolate the solution and derivative.
+          MODULE PROCEDURE DVINDY
+
+!         RELEASE_ARRAYS can be called to release/deallocate the work arrays.
+          MODULE PROCEDURE RELEASE_ARRAYS
+
+!         SET_IAJA can be called to set sparse matrix descriptor arrays.
+          MODULE PROCEDURE SET_IAJA
+
+!         USERSETS_IAJA can be called to set sparse matrix descriptor arrays.
+          MODULE PROCEDURE USERSETS_IAJA
+
+!         CHECK_STAT can be called to stop if a storage allocation or
+!         deallocation error occurs.
+          MODULE PROCEDURE CHECK_STAT
+
+!         JACSP can be called to calculate a Jacobian using Doug Salane's
+!         algoritm 
+          MODULE PROCEDURE JACSP
+
+!         DVDSM can be called to calculate sparse pointer arrays needed
+!         by JACSP
+          MODULE PROCEDURE DVDSM
+
+      END INTERFACE
+! ..
+! .. Derived Type Declarations ..
+      TYPE, PUBLIC :: VODE_OPTS
+        REAL (WP), DIMENSION (:), POINTER :: ATOL, RTOL
+        INTEGER :: MF, METH, MITER, MOSS, ITOL, IOPT, NG
+        LOGICAL :: DENSE, BANDED, SPARSE
+      END TYPE VODE_OPTS
+! ..
+! .. Local Scalars ..
+!_______________________________________________________________________
+! *****MA48 build change point. Insert these statements.
+!     For communication with subroutine ma48_control_array:
+!     REAL (WP), PUBLIC :: COPY_OF_U_PIVOT
+!_______________________________________________________________________
+      REAL (WP), PRIVATE :: ACNRM, ALPHA, BIG, BIG1, CCMXJ, CGCE, CONP, CRATE,  &
+        DRC, DRES, DXMAX, EPS, ERRMAX, ETA, ETAMAX, FRACINT, FRACSUB, H, HMIN,  &
+        HMXI, HNEW, HSCAL, HU, MEPS, MRESID, MRMIN, PRL1, RC, RESID, RL1,       &
+        RMIN, SETH, T0ST, THEMAX, TLAST, TN, TOL, TOL1, TOUTC, UMAX, UROUND,    &
+        U_PIVOT, X2, WM1, WM2
+      INTEGER, PRIVATE :: ADDTOJA, ADDTONNZ, CONSECUTIVE_CFAILS,                &
+        CONSECUTIVE_EFAILS, ELBOW_ROOM, IADIM, IANPIV, IAVPIV,                  &
+        ICF, ICNCP, IFAIL, IMAX, IMIN, INEWJ, INIT, IPUP, IRANK, IRFND, IRNCP,  &
+        ISTART, ISTATC, ITASKC, JADIM, JCUR, JMIN, JSTART, JSV, KFLAG, KOUNTL,  &
+        KUTH, L, LARGE, LAST, LENIGP, LICN_ALL, LIRN_ALL, LIW, LIWM, LMAX,      &
+        LOCJS, LP, LRW, LWM, LWMDIM, LWMTEMP, LYH, LYHTEMP, MANPIV, MAPIV, MAXG,&
+        MAXIT, MAXORD, MB28, MB48, METH, MICN, MICNCP, MINICN, MINIRN, MIRANK,  &
+        MIRN, MIRNCP, MITER, MLP, MOSS, MP, MSBG, MSBJ, MXHNIL, MXSTEP, N, NZB, &
+        NCFN, NDROP, NDROP1, NDX, NETF, NEWH, NEWQ, NFE, NGC, NGE, NGP, NHNIL,  &
+        NJE, NLP, NLU, NNI, NNZ, NOITER, NQ, NQNYH, NQU, NQWAIT, NSLG, NSLJ,    &
+        NSLP, NSRCH, NSRCH1, NST, NSUBS, NSUPS, NUM, NUMNZ, NYH, NZ_ALL,        &
+        NZ_SWAG, PREVIOUS_MAXORD, WPD, WPS, MA28AD_CALLS, MA28BD_CALLS,         &
+        MA28CD_CALLS, MC19AD_CALLS, MAX_MINIRN, MAX_MINICN, MAX_NNZ, BNGRP
+!       MA48AD_CALLS, MA48BD_CALLS, MA48CD_CALLS
+! *****MA48 build change point. Insert the above line.
+      LOGICAL, PRIVATE :: ABORT, ABORT1, ABORT2, ABORT3, ABORTA, ABORTB,        &
+        ALLOW_DEFAULT_TOLS, BUILD_IAJA, BOUNDS, CHANGED_ACOR, GROW, IAJA_CALLED,&
+        J_HAS_BEEN_COMPUTED, J_IS_CONSTANT, LBIG, LBIG1, LBLOCK, MA48_WAS_USED, &
+        OK_TO_CALL_MA28, SUBS, SUPS, OPTS_CALLED, REDO_PIVOT_SEQUENCE,          &
+        SCALE_MATRIX, SPARSE, USE_FAST_FACTOR, YMAXWARN  
+! ..
+! .. Local Arrays ..
+      REAL (WP), ALLOCATABLE, PRIVATE :: ACOR(:), CSCALEX(:), EWT(:),           &
+        FPTEMP(:), FTEMP(:), FTEMP1(:), G0(:), G1(:), GX(:), JMAT(:),           &
+        LB(:), PMAT(:), RSCALEX(:), RWORK(:), SAVF(:), UB(:), WM(:),            &
+        WMTEMP(:), WSCALEX(:,:), YHNQP2(:), YHTEMP(:), YMAX(:), YNNEG(:),       &
+        YTEMP(:), DTEMP(:)
+      REAL (WP), PRIVATE :: EL(13), RUSER(22), TAU(13), TQ(5)
+      INTEGER, ALLOCATABLE, PRIVATE :: BIGP(:), BJGP(:), IA(:), IAB(:), IAN(:), &
+        ICN(:), IDX(:), IGP(:), IKEEP28(:,:), IW28(:,:), IWORK(:), JA(:),       &
+        JAB(:), JAN(:), JATEMP(:), JGP(:), JROOT(:), JVECT(:), SUBDS(:), SUPDS(:)
+      INTEGER, PRIVATE :: IDISP(2), IUSER(30), LNPIV(10), LPIV(10)
+      INTEGER, PRIVATE :: MORD(2) = (/ 12, 5 /)
+! ..
+! .. Public Subroutines and Functions ..
+  PUBLIC ::                                                        &
+  DAXPY_F90, DCOPY_F90, DDOT_F90, DGBFA_F90, DGBSL_F90, DGEFA_F90, &
+  DGESL_F90, DSCAL_F90, IDAMAX_F90
+! ..
+! .. Private Subroutines and Functions ..
+  PRIVATE ::                                                       &
+  CHECK_DIAG    , DACOPY        , DEWSET        , DGROUP        ,  &
+  DGROUPDS      , DVCHECK       , DVHIN         , DVINDY_BNDS   ,  &
+  DVINDY_CORE   , DVJAC         , DVJACS28      , DVJUST        ,  &
+  DVNLSD        , DVNLSS28      , DVNORM        , DVNRDN        ,  &
+  DVNRDP        , DVNRDS        , DVODE         , DVPREPS       ,  &
+  DVROOTS       , DVSET         , DVSOL         , DVSOLS28      ,  &
+  DVSRCO        , DVSTEP        , GDUMMY        , IUMACH        ,  &
+  IXSAV         , JACSPDB       , JDUMMY        , MA28AD        ,  &
+  MA28BD        , MA28CD        , MA28DD        , MA28ID        ,  &
+  MA30AD        , MA30BD        , MA30CD        , MA30DD        ,  &
+  MC13E         , MC19AD        , MC20AD        , MC20BD        ,  &
+  MC21A         , MC21B         , MC22AD        , MC23AD        ,  &
+  MC24AD        , SET_ICN       , XERRDV        , XSETF         ,  &
+  XSETUN        , DEGR          , IDO           , NUMSRT        ,  &
+  SEQ           , SETR          , SLO           , SRTDAT        ,  &
+  FDJS
+! DVJACS48      , DVNLSS48      , DVPREPS48     , DVSOLS48
+!_______________________________________________________________________
+! *****MA48 build change point. Insert the above line.
+!_______________________________________________________________________
+! ..
+! .. Intrinsic Functions ..
+      INTRINSIC KIND
+! ..
+! .. Data Statements ..
+      DATA OPTS_CALLED/ .FALSE./
+      DATA MP/6/, NLP/6/, MLP/6/, NSRCH/32768/, ISTART/0/, MAXIT/16/, &
+        LBIG/ .FALSE./, LBLOCK/ .TRUE./, GROW/ .TRUE./,               &
+        TOL/0.0_WP/, CGCE/0.5_WP/, BIG/0.0_WP/, ABORT1/ .TRUE./,      &
+        ABORT2/ .TRUE./, ABORT3/ .FALSE./, ABORT/ .FALSE./, MIRN/0/,  &
+        MICN/0/, MIRNCP/0/, MICNCP/0/, MIRANK/0/, NDROP1/0/,          &
+        MRMIN/0.0D0/, MRESID/0/, OK_TO_CALL_MA28/.FALSE./
+! ..
+! END OF DVODE_F90 PRIVATE SECTION.
+!_______________________________________________________________________
+
+    CONTAINS
+
+      SUBROUTINE VODE_F90(F,NEQ,Y,T,TOUT,ITASK,ISTATE,OPTS,J_FCN,G_FCN)
+! ..
+! This is an interface for DVODE to allow JAC and GFUN to be
+! OPTIONAL arguments.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Structure Arguments ..
+        TYPE (VODE_OPTS) :: OPTS
+! ..
+! .. Scalar Arguments ..
+        REAL (WP), INTENT (INOUT) :: T, TOUT
+        INTEGER, INTENT (INOUT) :: ISTATE
+        INTEGER, INTENT (IN) :: ITASK, NEQ
+! ..
+! .. Array Arguments ..
+        REAL (WP), INTENT (INOUT) :: Y(*)
+! ..
+! .. Subroutine Arguments ..
+        OPTIONAL :: G_FCN, J_FCN
+        EXTERNAL J_FCN
+! ..
+! .. Subroutine Interfaces ..
+     INTERFACE
+       SUBROUTINE F(NEQ,T,Y,YDOT)
+         INTEGER, PARAMETER :: WP = KIND(1.0D0)
+         INTEGER NEQ
+         REAL(WP) T
+         REAL(WP), DIMENSION(NEQ) :: Y, YDOT
+         INTENT(IN)  :: NEQ, T, Y
+         INTENT(OUT) :: YDOT
+       END SUBROUTINE F
+     END INTERFACE
+
+     INTERFACE
+       SUBROUTINE G_FCN(NEQ,T,Y,NG,GROOT)
+         INTEGER, PARAMETER :: WP = KIND(1.0D0)
+         INTEGER NEQ, NG
+         REAL(WP) T
+         REAL(WP), DIMENSION(NEQ) :: Y
+         REAL(WP), DIMENSION(NG) :: GROOT(NG)
+         INTENT(IN)  :: NEQ, T, Y, NG
+         INTENT(OUT) :: GROOT
+       END SUBROUTINE G_FCN
+     END INTERFACE
+
+!    Note:
+!    The best we can do here is to declare J_FCN to be
+!    external. The interface for a sparse problem differs
+!    from that for a banded or dense problem. The following
+!    would suffuce for a banded or dense problem.
+!    INTERFACE
+!      SUBROUTINE J_FCN(NEQ,T,Y,ML,MU,PD,NROWPD)
+!        INTEGER, PARAMETER :: WP = KIND(1.0D0)
+!        INTEGER NEQ, ML, MU, NROWPD
+!        REAL(WP) T
+!        REAL(WP), DIMENSION(NEQ) :: Y
+!        REAL(WP), DIMENSION(NEQ) :: PD(NROWPD,NEQ)
+!        INTENT(IN)  :: NEQ, T, Y, ML, MU, NROWPD
+!        INTENT(INOUT) :: PD
+!      END SUBROUTINE J_FCN
+!    END INTERFACE
+!    The following would suffice for a sparse problem.
+!    INTERFACE
+!      SUBROUTINE J_FCN(NEQ,T,Y,IA,JA,NZ,P)
+!        INTEGER, PARAMETER :: WP = KIND(1.0D0)
+!        INTEGER NEQ, NZ
+!        REAL(WP) T
+!        REAL(WP), DIMENSION Y(*), P(*)
+!        INTEGER, DIMENSION IA(*), JA(*)
+!        INTENT(IN) :: NEQ, T, Y
+!        INTENT(INOUT) IA, JA, NZ, P
+!      END SUBROUTINE J_FCN
+!    END INTERFACE
+! ..
+! .. Local Scalars ..
+        INTEGER :: HOWCALL, METH, MFA, MITER, MOSS, NG
+        CHARACTER (80) :: MSG
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, PRESENT
+! ..
+! .. FIRST EXECUTABLE STATEMENT VODE_F90
+! ..
+!       Check that SET_OPTS has been called.
+        IF (.NOT.OPTS_CALLED) THEN
+          MSG = 'You have not called SET_OPTS before'
+          CALL XERRDV(MSG,10,1,0,0,0,0,ZERO,ZERO)
+          MSG = 'calling DVODE_F90 the first time.'
+          CALL XERRDV(MSG,10,2,0,0,0,0,ZERO,ZERO)
+        END IF
+
+!       Check that JAC is present if it is needed.
+        IF (PRESENT(J_FCN)) THEN
+        ELSE
+!         Note:
+!         MOSS is irrelevant. OPTS%MF is two digits after the
+!         call to SET_OPTS.
+          MFA = ABS(OPTS%MF)
+          MOSS = MFA/100
+          METH = (MFA-100*MOSS)/10
+          MITER = MFA - 100*MOSS - 10*METH
+          IF (MITER==1 .OR. MITER==4 .OR. MITER==6) THEN
+            MSG = 'You have specified a value of the integration'
+            CALL XERRDV(MSG,20,1,0,0,0,0,ZERO,ZERO)
+            MSG = 'method flag MF which requires that you supply'
+            CALL XERRDV(MSG,20,1,0,0,0,0,ZERO,ZERO)
+            MSG = 'a Jacobian subroutine JAC; but FAC is not'
+            CALL XERRDV(MSG,20,1,0,0,0,0,ZERO,ZERO)
+            MSG = 'present in the argument list.'
+            CALL XERRDV(MSG,20,2,0,0,0,0,ZERO,ZERO)
+          END IF
+        END IF
+
+!       Check that GFUN is present if it is needed.
+
+        IF (PRESENT(G_FCN)) THEN
+        ELSE
+          NG = OPTS%NG
+          IF (NG>0) THEN
+            MSG = 'You have indicated that events are present but'
+            CALL XERRDV(MSG,30,1,0,0,0,0,ZERO,ZERO)
+            MSG = 'you have not supplied a GFUN subroutine.'
+            CALL XERRDV(MSG,30,2,0,0,0,0,ZERO,ZERO)
+          END IF
+        END IF
+
+!     Determine how DVODE will be called.
+
+!     HOWCALL = 1: JDUMMY, GDUMMY
+!               2: JAC, GFUN
+!               3: JAC, GDUMMY
+!               4: JDUMMY, GFUN
+        HOWCALL = 1
+        IF (PRESENT(J_FCN)) THEN
+          IF (PRESENT(G_FCN)) THEN
+            HOWCALL = 2
+          ELSE
+            HOWCALL = 3
+          END IF
+        ELSE
+          IF (PRESENT(G_FCN)) THEN
+            HOWCALL = 4
+          ELSE
+            HOWCALL = 1
+          END IF
+        END IF
+
+!       Call DVODE to do the integration.
+
+        IF (HOWCALL==1) THEN
+          CALL DVODE(F,NEQ,Y,T,TOUT,ITASK,ISTATE,OPTS,JDUMMY,GDUMMY)
+        ELSE IF (HOWCALL==2) THEN
+          CALL DVODE(F,NEQ,Y,T,TOUT,ITASK,ISTATE,OPTS,J_FCN,G_FCN)
+        ELSE IF (HOWCALL==3) THEN
+          CALL DVODE(F,NEQ,Y,T,TOUT,ITASK,ISTATE,OPTS,J_FCN,GDUMMY)
+        ELSE IF (HOWCALL==4) THEN
+          CALL DVODE(F,NEQ,Y,T,TOUT,ITASK,ISTATE,OPTS,JDUMMY,G_FCN)
+        END IF
+        RETURN
+
+      END SUBROUTINE VODE_F90
+!_______________________________________________________________________
+
+      SUBROUTINE JDUMMY(NEQ,T,Y,ML,MU,PD,NROWPD)
+! ..
+! This is a dummy Jacobian subroutine for VODE_F90 (never called).
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        REAL (WP) :: T
+        INTEGER :: ML, MU, NEQ, NROWPD, I
+        LOGICAL DUMMY
+! ..
+! .. Array Arguments ..
+        REAL (WP) :: PD(NROWPD,*), Y(*)
+! ..
+      INTENT(IN) T, Y, ML, MU, NROWPD
+      INTENT(INOUT) PD
+! ..
+! .. FIRST EXECUTABLE STATEMENT JDUMMY
+! ..
+!       Get rid of some needless compiler warning messages.
+        DUMMY = .FALSE.
+        IF (DUMMY) THEN
+          I = NEQ
+          I = ML
+          I = MU
+          I = NROWPD
+          PD(1,1) = T
+          PD(1,1) = Y(1)
+          PD(1,1) = DBLE(REAL(I))
+        END IF
+        RETURN
+
+      END SUBROUTINE JDUMMY
+!_______________________________________________________________________
+
+      SUBROUTINE GDUMMY(NEQ,T,Y,NG,GOUT)
+! ..
+! This is a dummy event subroutine for VODE_F90 (never called).
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        REAL (WP) :: T
+        INTEGER :: NEQ, NG, I
+        LOGICAL DUMMY
+! ..
+! .. Array Arguments ..
+        REAL (WP) :: GOUT(*), Y(*)
+! ..
+      INTENT(IN) NEQ, T, Y, NG
+      INTENT(OUT) GOUT
+! ..
+! .. FIRST EXECUTABLE STATEMENT JDUMMY
+! ..
+!       Get rid of some needless compiler warning messages.
+        DUMMY = .FALSE.
+        IF (DUMMY) THEN
+          I = NEQ
+          I = NG
+          GOUT(1) = T
+          GOUT(1) = Y(1)
+          GOUT(1) = DBLE(REAL(I))
+        END IF
+        RETURN
+
+      END SUBROUTINE GDUMMY
+!_______________________________________________________________________
+
+  SUBROUTINE SET_OPTS_2(HMAX,HMIN,MXSTEP)
+! ..
+! Allow the maximum step size, the minimum step size, and the maximum
+! number of steps to be changed without restarting the integration.
+! ..
+!                     Quick Summary of Options
+! HMAX                   - Maximum step size in DVODE 
+! HMIN                   - Minimum step size in DVODE 
+! MXSTEP                 - Maximum number of integration steps in DVODE
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        REAL (WP), OPTIONAL, INTENT (IN) :: HMAX, HMIN
+        INTEGER, OPTIONAL, INTENT (IN) :: MXSTEP
+! ..
+! .. Local Scalars ..
+        CHARACTER (80) :: MSG
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ALLOCATED, PRESENT
+! ..
+! .. FIRST EXECUTABLE STATEMENT SET_OPTS_2
+! ..
+!       Check that SET_OPTS has been called:
+        IF (.NOT.OPTS_CALLED) THEN
+          MSG = 'You have not called SET_OPTS before'
+          CALL XERRDV(MSG,40,1,0,0,0,0,ZERO,ZERO)
+          MSG = 'calling subroutine SET_OPTS_2.'
+          CALL XERRDV(MSG,40,2,0,0,0,0,ZERO,ZERO)
+        END IF
+        IF (PRESENT(HMAX)) THEN
+          RUSER(6) = HMAX
+          MSG = 'HMAX changed in SET_OPTS_2.'
+          CALL XERRDV(MSG,50,1,0,0,0,1,HMAX,ZERO)
+        END IF
+        IF (PRESENT(HMIN)) THEN
+          RUSER(7) = HMIN
+          MSG = 'HMIN changed in SET_OPTS_2.'
+          CALL XERRDV(MSG,60,1,0,0,0,1,HMIN,ZERO)
+        END IF
+        IF (PRESENT(MXSTEP)) THEN
+          IUSER(6) = MXSTEP
+          MSG = 'MXSTEP changed in SET_OPTS_2.'
+          CALL XERRDV(MSG,70,1,1,MXSTEP,0,0,ZERO,ZERO)
+        END IF
+
+  END SUBROUTINE SET_OPTS_2
+!_______________________________________________________________________
+
+  FUNCTION SET_NORMAL_OPTS(DENSE_J, BANDED_J, SPARSE_J,                &
+    USER_SUPPLIED_JACOBIAN, LOWER_BANDWIDTH, UPPER_BANDWIDTH,          &
+    RELERR, ABSERR, ABSERR_VECTOR, NEVENTS) RESULT(OPTS)
+
+! FUNCTION SET_NORMAL_OPTS:
+!    Jacobian type:
+!       DENSE_J, BANDED_J, SPARSE_J
+!    Analytic Jacobian:
+!       USER_SUPPLIED_JACOBIAN
+!    If banded Jacobian:
+!       LOWER_BANDWIDTH,UPPER_BANDWIDTH
+!    Error tolerances:
+!       RELERR, ABSERR, ABSERR_VECTOR
+!    Rootfinding:
+!       NEVENTS
+! RESULT(OPTS)
+
+! Note:
+! Invoking SET_NORMAL_OPTS causes an integration restart. A common
+! situation is one in which all you wish to change is one of the
+! vode.f77 optional parameters HMAX, HMIN, or MXSTEP. Once the
+! integration is started and this is all you wish to do, you can
+! change any of these parameters without restarting the integration
+! simply by calling subroutine SET_OPTS_2:
+!      CALL SET_OPTS_2(HMAX,HMIN,MXSTEP)
+! Each of the three arguments is optional and only the ones actually
+! supplied will be used. Changes will take effect in the same manner
+! as in the VODE.f77 solver.
+!
+! NORMAL_OPTIONS sets user parameters for DVODE via keywords.
+! Values that are defined herein will be used internally by
+! DVODE. All option keywords are OPTIONAL and order is not
+! important. These options should be adequate for most problems.
+! If you wish to use more specialized options, you must use
+! SET_INTERMEDIATE_OPTS or SET_OPTS rather than NORMAL_OPTS.
+! If you wish to use SET_INTERMEDIATE_OPTS or SET_OPTS, you
+! may use any of the SET_NORMAL_OPTS keywords or any of the
+! keywords available for these two functions. Of course, you
+! may opt to simply use SET_OPTS for all problems.
+
+! Note that DVODE_F90 requires that one of SET_NORMAL_OPTS or
+! SET_INTERMEDIATE_OPTS or SET_OPTS is called before the first
+! time DVODE_F90 is called.
+!
+! Important Note:
+! If feasible, you should use the dense or banded option; but
+! SET_NORMAL_OPTS allows you to use a sparse internal Jacobian
+! (i.e., one that is determined using finite differences) and
+! structure pointere array that are determined internally
+! using finite differences. If any of the following are true
+!    (1) DVODE_F90 doesn't perform satisfactorily for
+!        your problem,
+!    (2) you are solving a very large problem,
+!    (3) you wish to supply the sparse pointer arrays
+!        directly,
+!    (4) you wish to supply an analytical sparse Jacobian,
+! or
+!    (5) you wish to use one of the specialized sparse
+!        Jacobian options,
+! you are encouraged to use SET_OPTS which contains several
+! provisions for solving sparse problems more efficiently.
+
+! Option Types:
+! DENSE_J                - logical
+! BANDED_J               - logical
+! SPARSE_J               - logical
+! USER_SUPPLIED_JACOBIAN - logical
+! LOWER_BANDWIDTH        - integer
+! UPPER_BANDWIDTH        - integer
+! RELERR                 - real(wp) scalar
+! ABSERR                 - real(wp) scalar
+! ABSERR_VECTOR          - real(wp) vector
+! NEVENTS                - integer
+! Options:
+! ABSERR                 = Absolute error tolerance
+! ABSERR_VECTOR          = Vector of absolute error tolerances
+! RELERR                 = Scalar relative error tolerance
+! NEVENTS                = Number of event functions (requires
+!                          user-supplied GFUN)
+! DENSE_J                = Use dense linear algebra if .TRUE.
+! BANDED_J               = Use banded linear algebra if .TRUE.
+!   LOWER_BANDWIDTH      = Lower bandwidth of the Jacobian
+!                          (required if BANDED_J = .TRUE.)
+!   UPPER_BANDWIDTH      = Upper bandwidth of the Jacobian
+!                          (required if BANDED_J = .TRUE.)
+! SPARSE_J               = Use sparse linear algebra if .TRUE.
+! USER_SUPPLIED_JACOBIAN = Exact Jacobian option
+!                          (requires user-supplied JAC;
+!                          ignored for SPARSE_J=.TRUE.)
+!
+! Note: DENSE_J takes precedence over BANDED_J which in turn
+! takes precedence over SPARSE_J if more than one is supplied.
+! If neither of the three flags is present, the nonstiff Adams
+! option will be used. Similiarly, ABSERR_VECTOR takes
+! precedence over ABSERR.
+!
+! Note on Jacobian Storage Formats:
+!
+! If you supply an analytic Jacobian PD, load the
+! Jacobian elements DF(I)/DY(J), the partial
+! derivative of F(I) with respect to Y(J), using
+! the following formats. Here, Y is the solution,
+! F is the derivative, and PD is the Jacobian.
+!
+! For a full Jacobian, load PD(I,J) with DF(I)/DY(J).
+! Your code might look like this:
+!    DO J = 1, NEQ
+!       DO I = 1, NEQ
+!          PD(I,J) = ... DF(I)/DY(J)
+!       END DO
+!    END DO       
+!
+! For a banded Jacobian, load PD(I-J+MU+1,J) with
+! DF(I)/DY(J) where ML is the lower bandwidth
+! and MU is the upper bandwidth of the Jacobian.
+! Your code might look like this:
+!    DO J = 1, NEQ
+!       I1 = MAX(1,J-ML)
+!       I2 = MIN(N,J+MU)
+!       DO I = I1, I2
+!          K = I-J+MU+1
+!          PD(K,J) = ... DF(I)/DY(J)
+!       END DO
+!    END DO
+! ..
+     IMPLICIT NONE
+! ..
+! .. Function Return Value ..
+        TYPE (VODE_OPTS) :: OPTS
+! ..
+! .. Scalar Arguments ..
+        REAL (WP), OPTIONAL, INTENT (IN) :: ABSERR,RELERR
+        INTEGER, OPTIONAL, INTENT (IN) :: LOWER_BANDWIDTH,   &
+          NEVENTS,UPPER_BANDWIDTH
+        LOGICAL, OPTIONAL, INTENT (IN) :: BANDED_J, DENSE_J, &
+          SPARSE_J, USER_SUPPLIED_JACOBIAN
+! ..
+! .. Array Arguments ..
+        REAL (WP), OPTIONAL, INTENT (IN) :: ABSERR_VECTOR(:)
+! ..
+! .. Local Scalars ..
+        INTEGER :: IER,IOPT,METH,MF,MFA,MFSIGN,MITER,ML,MOSS, &
+          MU,NAE,NG,NRE
+        LOGICAL :: BANDED,DENSE,SPARSE
+        CHARACTER (80) :: MSG
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ALLOCATED, IABS, MAX, MINVAL, PRESENT, SIGN, SIZE
+! ..
+! .. FIRST EXECUTABLE STATEMENT SET_NORMAL_OPTS
+! ..
+        RUSER(1:LRWUSER) = ZERO
+        IUSER(1:LIWUSER) = 0
+        
+!       Allow default error tolerances?
+        ALLOW_DEFAULT_TOLS = .FALSE.
+
+!       Maximum number of consecutive error test failures?
+        CONSECUTIVE_EFAILS = KFH
+
+!       Maximum number of consecutive corrector iteration failures?
+        CONSECUTIVE_CFAILS = MXNCF
+
+!       Use JACSP to approximate Jacobian?
+        USE_JACSP = .FALSE.
+
+!       Set the flag to indicate that SET_NORMAL_OPTS has been called.
+        OPTS_CALLED = .TRUE.
+
+!       Set the MA48 storage cleanup flag.
+        MA48_WAS_USED = .FALSE.
+
+!       Set the fast factor option for MA48,
+        USE_FAST_FACTOR = .TRUE.
+
+!       Set the constant Jacobian flags.
+        J_IS_CONSTANT = .FALSE.
+        J_HAS_BEEN_COMPUTED = .FALSE.
+
+!       Determine the working precision and define the value for UMAX
+!       expected by MA28. Note that it is different for single and
+!       double precision.
+        WPD = KIND(1.0D0)
+        WPS = KIND(1.0E0)
+        IF (WPD/=WP .AND. WPS/=WP) THEN
+          MSG = 'Illegal working precision in SET_NORMAL_OPTS.'
+          CALL XERRDV(MSG,80,2,0,0,0,0,ZERO,ZERO)
+        END IF
+        IF (WPD==WP) THEN
+!       Working precision is double.
+          UMAX = 0.999999999_WP
+        ELSE
+!       Working precision is single.
+          UMAX = 0.9999_WP
+        END IF
+
+        MA28AD_CALLS = 0
+        MA28BD_CALLS = 0
+        MA28CD_CALLS = 0
+        MC19AD_CALLS = 0
+!_______________________________________________________________________
+! *****MA48 build change point. Insert these statements.
+!       MA48AD_CALLS = 0
+!       MA48BD_CALLS = 0
+!       MA48CD_CALLS = 0
+!_______________________________________________________________________
+        IRNCP = 0
+        ICNCP = 0
+        MINIRN = 0
+        MINICN = 0
+        MAX_MINIRN = 0
+        MAX_MINICN = 0
+        MAX_NNZ = 0
+
+!       Set the flag to warn the user if |(y(t)| < abserr.
+        YMAXWARN = .FALSE.
+
+!       Load defaults for the optional input arrays for DVODE.
+        IUSER(1:8) = 0
+        RUSER(1:8) = ZERO
+
+!       Set the method flag.
+        MF = 10
+        IF (PRESENT(SPARSE_J)) THEN
+          IF (SPARSE_J) THEN
+             MF = 227
+             IF (PRESENT(USER_SUPPLIED_JACOBIAN)) THEN
+               MSG = 'You have indicated you wish to supply an'
+               CALL XERRDV(MSG,90,1,0,0,0,0,ZERO,ZERO)
+               MSG = 'exact sparse Jacobian in function'
+               CALL XERRDV(MSG,90,1,0,0,0,0,ZERO,ZERO)
+               MSG = 'SET_NORMAL_OPTS. In order to do this,'
+               CALL XERRDV(MSG,90,1,0,0,0,0,ZERO,ZERO)
+               MSG = 'you must use SET_OPTS. Execution will'
+               CALL XERRDV(MSG,90,1,0,0,0,0,ZERO,ZERO)
+               MSG = 'continue.'
+               CALL XERRDV(MSG,90,1,0,0,0,0,ZERO,ZERO)
+             END IF
+          END IF
+        END IF
+
+        IF (PRESENT(BANDED_J)) THEN
+          IF (BANDED_J) THEN
+            IF (PRESENT(USER_SUPPLIED_JACOBIAN)) THEN
+              IF (USER_SUPPLIED_JACOBIAN) THEN
+                MF = 24
+              ELSE
+                MF = 25
+              END IF
+            ELSE
+              MF = 25
+            END IF
+          END IF
+        END IF
+
+        IF (PRESENT(DENSE_J)) THEN
+          IF (DENSE_J) THEN
+            IF (PRESENT(USER_SUPPLIED_JACOBIAN)) THEN
+              IF (USER_SUPPLIED_JACOBIAN) THEN
+                MF = 21
+              ELSE
+                MF = 22
+              END IF
+            ELSE
+              MF = 22
+            END IF
+          END IF
+        END IF
+
+!       Check for errors in MF.
+        MFA = IABS(MF)
+        MOSS = MFA/100
+        METH = (MFA-100*MOSS)/10
+        MITER = MFA - 100*MOSS - 10*METH
+        IF (METH<1 .OR. METH>2) THEN
+          MSG = 'Illegal value of METH in SET_NORMAL_OPTS.'
+          CALL XERRDV(MSG,100,2,0,0,0,0,ZERO,ZERO)
+        END IF
+        IF (MITER<0 .OR. MITER>7) THEN
+          MSG = 'Illegal value of MITER in SET_NORMAL_OPTS.'
+          CALL XERRDV(MSG,110,2,0,0,0,0,ZERO,ZERO)
+        END IF
+        IF (MOSS<0 .OR. MOSS>2) THEN
+          MSG = 'Illegal value of MOSS in SET_NORMAL_OPTS.'
+          CALL XERRDV(MSG,120,2,0,0,0,0,ZERO,ZERO)
+        END IF
+
+!       Reset MF, now that MOSS is known.
+        MFSIGN = SIGN(1,MF)
+        MF = MF - 100*MOSS*MFSIGN
+
+        IF (MITER==0) THEN
+          DENSE = .FALSE.
+          BANDED = .FALSE.
+          SPARSE = .FALSE.
+        ELSE IF (MITER==1 .OR. MITER==2) THEN
+          DENSE = .TRUE.
+          BANDED = .FALSE.
+          SPARSE = .FALSE.
+        ELSE IF (MITER==3) THEN
+          DENSE = .FALSE.
+          BANDED = .FALSE.
+          SPARSE = .FALSE.
+        ELSE IF (MITER==4 .OR. MITER==5) THEN
+          DENSE = .FALSE.
+          BANDED = .TRUE.
+          SPARSE = .FALSE.
+        ELSE IF (MITER==6 .OR. MITER==7) THEN
+          DENSE = .FALSE.
+          BANDED = .FALSE.
+          SPARSE = .TRUE.
+        END IF
+
+!       Define the banded Jacobian band widths.
+        IF (BANDED) THEN
+          IF (PRESENT(LOWER_BANDWIDTH)) THEN
+            ML = LOWER_BANDWIDTH
+            IUSER(1) = ML
+          ELSE
+            MSG = 'In SET_NORMAL_OPTS you have indicated a'
+            CALL XERRDV(MSG,130,1,0,0,0,0,ZERO,ZERO)
+            MSG = 'banded Jacobian but you have not supplied'
+            CALL XERRDV(MSG,130,1,0,0,0,0,ZERO,ZERO)
+            MSG = 'the lower bandwidth.'
+            CALL XERRDV(MSG,130,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          IF (PRESENT(UPPER_BANDWIDTH)) THEN
+            MU = UPPER_BANDWIDTH
+            IUSER(2) = MU
+          ELSE
+            MSG = 'In SET_NORMAL_OPTS you have indicated a'
+            CALL XERRDV(MSG,140,1,0,0,0,0,ZERO,ZERO)
+            MSG = 'banded Jacobian but you have not supplied'
+            CALL XERRDV(MSG,140,1,0,0,0,0,ZERO,ZERO)
+            MSG = 'the upper bandwidth.'
+            CALL XERRDV(MSG,140,2,0,0,0,0,ZERO,ZERO)
+          END IF
+        END IF
+
+!       Define the sparse Jacobian options.
+        IF (SPARSE) THEN
+!         Set the MA28 message flag.
+          LP = 0
+!         Set the MA28 pivot sequence frequency flag.
+          REDO_PIVOT_SEQUENCE = .FALSE.
+!         Set the MA28 singularity threshold.
+          EPS = 1.0E-4_WP
+!         Use scaling of the iteration matrix.
+          SCALE_MATRIX = .TRUE.
+!         Define the elbow room factor for the MA28 sparse work arrays.
+          ELBOW_ROOM = 2
+!         NZSWAG is a swag for the number of nonzeros in the Jacobian.
+          NZ_SWAG = 0
+!         Use partial pivoting.
+          U_PIVOT = ONE
+!         Indicate that SET_IAJA has not yet been called successfully.
+          IAJA_CALLED = .FALSE.
+!         Check for illegal method flags.
+          IF (MOSS==2 .AND. MITER/=7) THEN
+            MSG = 'In SET_NORMAL_OPTS MOSS=2 but MITER is not 7.'
+            CALL XERRDV(MSG,150,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          IF (MOSS==1 .AND. MITER/=6) THEN
+            MSG = 'In SET_NORMAL_OPTS MOSS=1 but MITER is not 6.'
+            CALL XERRDV(MSG,160,2,0,0,0,0,ZERO,ZERO)
+          END IF
+!         IF (MOSS==0 .AND. MITER/=7) THEN
+!           MSG = 'In SET_NORMAL_OPTS MOSS=0 but MITER is not 7.'
+!           CALL XERRDV(MSG,170,2,0,0,0,0,ZERO,ZERO)
+!         END IF
+        END IF
+
+!       Define the number of event functions.
+        IF (PRESENT(NEVENTS)) THEN
+          IF (NEVENTS>0) THEN
+            NG = NEVENTS
+          ELSE
+            NG = 0
+          END IF
+        ELSE
+          NG = 0
+        END IF
+
+!       No solution bounds will be imposed.
+        BOUNDS = .FALSE.
+
+!       Load the user options into the solution structure.
+        OPTS%MF = MF
+        OPTS%METH = METH
+        OPTS%MITER = MITER
+        OPTS%MOSS = MOSS
+        OPTS%DENSE = DENSE
+        OPTS%BANDED = BANDED
+        OPTS%SPARSE = SPARSE
+        OPTS%NG = NG
+
+        IOPT = 1
+        OPTS%IOPT = IOPT
+
+!       Process the error tolerances.
+
+!       Relative error tolerance.
+        NRE = 1
+        ALLOCATE (OPTS%RTOL(NRE),STAT=IER)
+        CALL CHECK_STAT(IER,10)
+        IF (PRESENT(RELERR)) THEN
+          IF (RELERR<ZERO) THEN
+            MSG = 'RELERR must be nonnegative.'
+            CALL XERRDV(MSG,180,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          OPTS%RTOL = RELERR
+        ELSE
+          IF (ALLOW_DEFAULT_TOLS) THEN
+             OPTS%RTOL = 1.0E-4_WP
+             MSG = 'By not specifying RELERR, you have elected to use a default'
+             CALL XERRDV(MSG,190,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'relative error tolerance equal to 1.0D-4. Please be aware a'
+             CALL XERRDV(MSG,190,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'tolerance this large is not appropriate for all problems.'
+             CALL XERRDV(MSG,190,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'Execution will continue'
+             CALL XERRDV(MSG,190,1,0,0,0,0,ZERO,ZERO)
+          ELSE
+             MSG = 'You must specify a nonzero relative error tolerance.'
+             CALL XERRDV(MSG,200,2,0,0,0,0,ZERO,ZERO)
+          END IF
+        END IF
+
+!       Absolute error tolerance(s).
+        IF (PRESENT(ABSERR_VECTOR)) THEN
+          IF (MINVAL(ABSERR_VECTOR)<ZERO) THEN
+            MSG = 'All components of ABSERR_VECTOR must'
+            CALL XERRDV(MSG,210,1,0,0,0,0,ZERO,ZERO)
+            MSG = 'be nonnegative.'
+            CALL XERRDV(MSG,210,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          NAE = SIZE(ABSERR_VECTOR)
+        ELSE
+          NAE = 1
+        END IF
+        ALLOCATE (OPTS%ATOL(NAE),STAT=IER)
+        CALL CHECK_STAT(IER,20)
+        IF (PRESENT(ABSERR_VECTOR)) THEN
+          OPTS%ATOL = ABSERR_VECTOR
+        ELSE IF (PRESENT(ABSERR)) THEN
+          IF (ABSERR<ZERO) THEN
+            MSG = 'ABSERR must be nonnegative.'
+            CALL XERRDV(MSG,220,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          OPTS%ATOL = ABSERR
+        ELSE
+          IF (ALLOW_DEFAULT_TOLS) THEN
+             OPTS%ATOL = 1D-6
+             MSG = 'By not specifying ABSERR, you have elected to use a default'
+             CALL XERRDV(MSG,230,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'absolute error tolerance equal to 1.0D-6. Please be aware a'
+             CALL XERRDV(MSG,230,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'tolerance this large is not appropriate for all problems.'
+             CALL XERRDV(MSG,230,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'Execution will continue'
+             CALL XERRDV(MSG,230,1,0,0,0,0,ZERO,ZERO)
+          ELSE
+             MSG = 'You must specify a vector of absolute error tolerances or'
+             CALL XERRDV(MSG,240,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'a scalar error tolerance. It is recommended that you use'
+             CALL XERRDV(MSG,240,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'a vector of absolute error tolerances.'
+             CALL XERRDV(MSG,240,2,0,0,0,0,ZERO,ZERO)
+          END IF
+        END IF
+
+!       ITOL error tolerance flag.
+!          ITOL   RTOL     ATOL            EWT(i)
+!            1   scalar   scalar  RTOL*ABS(Y(i)) + ATOL
+!            2   scalar   array   RTOL*ABS(Y(i)) + ATOL(i)
+        IF (PRESENT(ABSERR_VECTOR)) THEN
+           OPTS%ITOL = 2
+        ELSE
+           OPTS%ITOL = 1
+        END IF
+        RETURN
+
+  END FUNCTION SET_NORMAL_OPTS
+!_______________________________________________________________________
+
+  FUNCTION SET_INTERMEDIATE_OPTS(DENSE_J, BANDED_J, SPARSE_J,          &
+    USER_SUPPLIED_JACOBIAN,                                            &
+    LOWER_BANDWIDTH, UPPER_BANDWIDTH,                                  &
+    RELERR, ABSERR, ABSERR_VECTOR,                                     &
+    TCRIT, H0, HMAX, HMIN, MAXORD, MXSTEP, MXHNIL,                     &
+    NZSWAG, USER_SUPPLIED_SPARSITY, MA28_RPS,                          &
+    NEVENTS, CONSTRAINED, CLOWER, CUPPER, CHANGE_ONLY_f77_OPTIONS)     &
+  RESULT(OPTS)
+
+! FUNCTION SET_INTERMEDIATE_OPTS:
+!    Jacobian type:
+!       DENSE_J, BANDED_J, SPARSE_J
+!    Analytic Jacobian:
+!       USER_SUPPLIED_JACOBIAN
+!    If banded Jacobian:
+!       LOWER_BANDWIDTH, UPPER_BANDWIDTH
+!    Error tolerances:
+!       RELERR, ABSERR, ABSERR_VECTOR
+!    VODE.f77 optional parameters:
+!       TCRIT, H0, HMAX, HMIN, MAXORD, MXSTEP, MXHNIL
+!    Sparse flags:
+!       NZSWAG, USER_SUPPLIED_SPARSITY, MA28_RPS
+!    Rootfinding:
+!       NEVENTS
+!    Impose bounds on solution:
+!       CONSTRAINED, CLOWER, CUPPER
+!    Change one or more of HMAX, HMIN, TCRIT, MXSTEP, MXHNIL, MAXORD
+!       CHANGE_ONLY_f77_OPTIONS
+! RESULT(OPTS)
+
+! SET_OPTIONS sets user parameters for DVODE via keywords. Values
+! that are defined herein will be used internally by DVODE.
+! All option keywords are OPTIONAL and order is not important.
+
+! Note that DVODE_F90 requires that one of SET_NORMAL_OPTS or
+! SET_INTERMEDIATE_OPTS or SET_OPTS is called before the first
+! time DVODE_F90 is called.
+
+!                     Quick Summary of Options
+
+! DENSE_J                - Jacobian is sparse alternative to MF
+! BANDED_J               - Jacobian is banded alternative to MF 
+! SPARSE_J               - Jacobian is sparse alternative to MF   
+! USER_SUPPLIED_JACOBIAN - User will supply Jacobian subroutine
+!                          (user supplied subroutine JAC required)
+! LOWER_BANDWIDTH        - Lower bandwidth ML in DVODE
+! UPPER_BANDWIDTH        - Upper bandwidth MU in DVODE
+! RELERR                 - Scalar relative error tolerance in DVODE
+! ABSERR                 - Scalar absolute error tolerance in DVODE
+! ABSERR_VECTOR          - Vector absolute error tolerance in DVODE
+! TCRIT                  - Critical time TCRIT in DVODE
+! H0                     - Starting step size in DVODE
+! HMAX                   - Maximum step size in DVODE 
+! HMIN                   - Minimum step size in DVODE 
+! MAXORD                 - Maximum integration order in DVODE
+! MXSTEP                 - Maximum number of integration steps
+!                          in DVODE
+! MXHNIL                 - Maximum number of T+H=T messages in DVODE
+! NZSWAG                 - guess for the number of nonzeros in sparse
+!                          Jacobian
+! USER_SUPPLIED_SPARSITY - user will supply sparsity structure
+!                          arrays by calling USERSETS_IAJA 
+! MA28_RPS               - Redo MA28AD pivot sequence if a singularity
+!                          is encountered
+! NEVENTS                - number of user defined root finding functions
+!                          (user supplied subroutine G required)
+! CONSTRAINED,           - array of solution component indices that
+! CLOWER,                  are to be constrained by the lower and
+! CUPPER                   upper bound arrays CLOWER and CUPPER so that
+!                          CLOWER(I) <= Y(CONSTRAINED(I)) <= CUPPER(I)
+!                     Options Types
+! DENSE_J                - logical
+! BANDED_J               - logical
+! SPARSE_J               - logical
+! USER_SUPPLIED_JACOBIAN - logical
+! LOWER_BANDWIDTH        - integer
+! UPPER_BANDWIDTH        - integer
+! RELERR                 - real(wp) scalar
+! ABSERR                 - real(wp) scalar
+! ABSERR_VECTOR          - real(wp) vector
+! TCRIT                  - real(wp) scalar
+! H0                     - real(wp) scalar
+! HMAX                   - real(wp) scalar
+! HMIN                   - real(wp) scalar
+! MAXORD                 - integer
+! MXSTEP                 - integer
+! MXHNIL                 - integer
+! NZSWAG                 - integer
+! USER_SUPPLIED_SPARSITY - logical
+! MA28_RPS               - logical
+! NEVENTS                - integer
+! CONSTRAINED            - integer array
+! CLOWER                 - real(wp) array
+! CUPPER                 - real(wp) array
+! CHANGE_ONLY_f77_OPTIONS- logical
+! Argument list parameters:
+! ABSERR                   = scalar absolute error tolerance
+! ABSERR_VECTOR            = vector of absolute error tolerances
+! RELERR                   = scalar relative error tolerance
+! NEVENTS                  = Number of event functions (requires
+!                            user-supplied GFUN)
+! DENSE_J                  = use dense linear algebra if .TRUE.
+! BANDED_J                 = use banded linear algebra if .TRUE.
+!   LOWER_BANDWIDTH        = lower bandwidth of the Jacobian
+!                            (required if BANDED_J = .TRUE.)
+!   UPPER_BANDWIDTH        = upper bandwidth of the Jacobian
+!                            (required if BANDED_J = .TRUE.)
+! SPARSE_J                 = use sparse linear algebra if .TRUE.
+!
+!   NZSWAG                 = If you wish you may supply a guess,
+!                            NZSWAG, at the number of nonzeros
+!                            in the Jacobian matrix. In some cases
+!                            this will speed up the determination
+!                            of the necessary storage.
+!   USER_SUPPLIED_SPARSITY = .TRUE. if you wish to supply the sparsity
+!                            structure arrays directly by calling
+!   MA28_RPS               = .TRUE. to force MA28AD to calculate a new
+!                            pivot sequence for use in MA28BD if a
+!                            singular iteration matrix is encountered
+!                            is smaller than EPS, it will flag the
+!                            Jacobian as singular and force MA28AD
+!                            to calculate a new pivot sequence.
+! USER_SUPPLIED_JACOBIAN   = exact Jacobian option
+!                            (requires user-supplied JAC)
+! TCRIT                    = critical time
+! H0                       = initial step size to try
+! HMAX                     = maximum allowable step size
+! HMIN                     = minimum allowable step size
+! MAXORD                   = maximum allowable integration order
+! MXSTEP                   = maximum number of integration steps
+!                            between calls to DVODE
+! MXHNIL                   = maximum number of printed messages
+!                            if the T+H=T condition occurs
+! CONSTRAINED              = array containing the indices of
+!                            solution components which are to be
+!                            be constrained by CLOWER and CUPPER.
+!                            The size of CONSTRAINED must be
+!                            positive and not exceed NEQ, the
+!                            number of ODEs. Each component of
+!                            CONSTRAINED must be between 1 and NEQ.
+!   CLOWER, CUPPER         = lower and upper bound arrays for the.
+!                            solution. Each must be the same size
+!                            as the CONSTRAINED vector.
+!
+!   User-callable Routines:
+!   The following routines may be called by the user:
+!   SET_INTERMEDIATE_OPTS      : Used to set options for DVODE_F90
+!   GET_STATS     : Used to gather summary integration
+!                   statistics following a successful
+!                   return from DVODE_F90
+!   DVINDY        : Used if the user wishes to interpolate
+!                   solution or derivative following a
+!                   successful return from DVODE_F90
+!   USERSETS_IAJA : Used if the user wishes to supply the
+!                   sparsity structure directly
+!   Detailed Description of SET_INTERMEDIATE_OPTS
+!   The following are defined in SET_INTERMEDIATE_OPTS:
+!   OPTS%MF     = Integration method flag (MF)
+!   OPTS%METH   = Integration family flag (METH)
+!   OPTS%MITER  = Iteration type flag (MITER)
+!   OPTS%MOSS   = Sparsity array type flag (MOSS)
+!   OPTS%ITOL   = Error tolerance flag (ITOL) (ITOL)
+!   OPTS%ATOL   = Absolute error tolerance(s) (ATOL)
+!   OPTS%RTOL   = Relative error tolerance(s) (RTOL)
+!   OPTS%DENSE  = Use dense linear algebra
+!   OPTS%BANDED = Use banded linear algebra 
+!   OPTS%SPARSE = Use sparse linear algebra 
+!   OPTS%IOPT   = DVODE optional parameter input flag (IOPT)
+!   OPTS%NG     = Number of event functions
+!   RUSER(1)    = TCRIT (don't step past)
+!   IUSER(1)    = Jacobian lower bandwidth (ML)
+!   IUSER(2)    = Jacobian upper bandwidth (MU)
+!   RUSER(5)    = Initial step size to try (H0)
+!   RUSER(6)    = Maximum allowable step size (HMAX)
+!   RUSER(7)    = Minimum allowable step size (HMIN)
+!   IUSER(5)    = Maximum allowable integration order (MAXORD)
+!   IUSER(6)    = Maximum number of integration steps (MXSTEP)
+!   IUSER(7)    = Maximum number of T+H=T messages (MXHNIL)
+!   NZ_SWAG     = Guess for the number of nonzeros in the
+!                 sparse Jacobian
+!   NG          = Number of user event functions
+!   BOUNDS,     = Nonnegativity information
+!   NDX, IDX
+!   YMAXWARN    = Warning flag for |y(t)| < abserr
+!   MA28_ELBOW_ROOM = Integer multiple by which to increase
+!                     the elbow room in the MA28 sparse work
+!                     arrays
+!   MC19_SCALING    = logical flag to control MC19 sparse
+!                     scaling of the Jacobian
+!   MA28_MESSAGES   = logical flag to control printing of MA28
+!                     messages.
+!   MA28_EPS        = real(wp) MA28 singularity threshold
+!
+!                         All Options
+!
+! METHOD_FLAG
+!
+! Default:   Not used
+! Change to: No need to specify if use one of next three parameters
+!            but can be changed to any value of the MF method flag
+!            in dvode.f77
+!
+! DENSE_J
+!
+! Default:   .FALSE.
+! Change to: .TRUE. for dense linear algebra
+!
+! BANDED_J
+!
+! Default:   .FALSE.
+! Change to: .TRUE. for banded linear algebra
+!
+! SPARSE_J
+!
+! Default:   .FALSE.
+! Change to: .TRUE. for sparse linear algebra
+
+! USER_SUPPLIED_JACOBIAN
+!
+! Default:   .FALSE.
+! Change to: .TRUE. if want to supply subroutine JAC to DVODE_F90
+!
+! LOWER_BANDWIDTH
+!
+! Default:   Not used
+! Change to: Lower bandwidth if BANDED_J = .TRUE.
+!
+! UPPER_BANDWIDTH
+!
+! Default:   Not used
+! Change to: Upper bandwidth if BANDED_J = .TRUE.
+!
+! RELERR
+!
+! Default:   None
+! Change to: Specify a nonzero relative error tolerance
+!
+! ABSERR
+!
+! Default:   None
+! Change to: Specify a scalar absolute error tolerance or
+!            a vector of absolute error tolerances
+!
+! ABSERR_VECTOR
+!
+! Default:   Not used
+! Change to: Vector of absolute error tolerances
+!
+! TCRIT
+!
+! Default:   Not used
+! Change to: Value of T which DVODE_F90 is not to step past
+!
+!     H0
+!
+! Default:   Determined by DVODE_F90
+! Change to: Guess for initial step size
+!
+! HMAX
+!
+! Default:   Infinity
+! Change to: Maximum allowable step size
+!
+! HMIN
+!
+! Default:   0.0D0
+! Change to: Minimum allowable step size
+!
+! MAXORD
+!
+! Default:   Determined by DVODE_F90
+! Change to: Maximum integration order
+!
+! MXSTEP
+!
+! Default:   5000
+!     Change to: Maximum number of steps between output points
+!
+! MXHNIL
+!
+! Default:   10
+! Change to: Maximum number of times T+H=T message will be printed
+!
+! NZSWAG
+!
+! Default:   Determined by DVODE_F90
+! Change to: Amount by which to increment sizes of sparse arrays
+!
+! USER_SUPPLIED_SPARSITY
+!
+! Default:   .FALSE.
+! Change to: .TRUE. if wish to call subroutine USERSETS_IAJA to
+!            define the sparse structure array pointers directly
+!
+! NEVENTS
+!
+! Default:   0
+! Change to: Number of event functions if wish to supply subroutine
+!            GFUN to DVODE_F90
+!
+! CONSTRAINED
+!
+! Default:   Bounds not imposed on solution
+! Change to: Array of indices for components on which to impose
+!            solution bounds
+!
+! CLOWER
+!
+! Default:   Not used
+! Change to: Vector containing lower bounds corresponding to
+!            CONSTRAINED
+!
+! CUPPER
+!
+! Default:   Not used
+! Change to: Vector containing upper bounds corresponding to
+!            CONSTRAINED
+!
+! MA28_RPS
+!
+! Default:   .FALSE.
+! Change to: Redo the MA28AD sparse pivoting sequence any time
+!            MA28BD considers the iteration matrix to be
+!            numerically singularity
+!
+!
+! Note on Jacobian Storage Formats:
+!
+! If you supply an analytic Jacobian PD, load the
+! Jacobian elements DF(I)/DY(J), the partial
+! derivative of F(I) with respect to Y(J), using
+! the following formats. Here, Y is the solution,
+! F is the derivative, and PD is the Jacobian.
+!
+! For a full Jacobian, load PD(I,J) with DF(I)/DY(J).
+! Your code might look like this:
+!    DO J = 1, NEQ
+!       DO I = 1, NEQ
+!          PD(I,J) = ... DF(I)/DY(J)
+!       END DO
+!    END DO       
+!
+! For a banded Jacobian, load PD(I-J+MU+1,J) with
+! DF(I)/DY(J) where ML is the lower bandwidth
+! and MU is the upper bandwidth of the Jacobian.
+! Your code might look like this:
+!    DO J = 1, NEQ
+!       I1 = MAX(1,J-ML)
+!       I2 = MIN(N,J+MU)
+!       DO I = I1, I2
+!          K = I-J+MU+1
+!          PD(K,J) = ... DF(I)/DY(J)
+!       END DO
+!    END DO
+!
+! For a sparse Jacobian, IA(J+1)-IA(J) is the number
+! of nonzeros in column change. JA(I) indicates the
+! rows in which the nonzeros occur. For column J,
+! the nonzeros occurs in rows I=JA(K) for K=I1,...,I2
+! where I1=IA(J) and I2= IA(J+1)-1. Load DF(I)/DY(J)
+! in PD(I). Your code might look like this:
+!    DO J = 1, NEQ
+!       I1 = IA(J)
+!       I2 = IA(J+1) - 1
+!       DO K = I1, I2
+!          I = JA(K)
+!          PD(I) = ... DF(I)/DY(J)
+!       END DO
+!    END DO
+!
+!                    More on Sparsity Options
+!
+! Two facts of life regarding the use of direct sparse solvers are
+! (1) significant improvements are possible, and (2) the use of
+! direct sparse solvers often is more demanding of the user.
+! Although SET_NORMAL_OPTS provides modest provisions for solving
+! problems with sparse Jacobians, using SET_INTERMEDIATE_OPTS rather than
+! SET_NORMAL_OPTS provides several advanced options. These options
+! are described below. The recommended manner in which to use
+! these options is also provided. Note that each of these optional
+! parameters have default values and need not be specified in your
+! call to SET_INTERMEDIATE_OPTS if you wish to use the default values. Note
+! also that the order in which the options are specified in a call
+! to SET_INTERMEDIATE_OPTS is not important.
+!
+!  (1) First determine if it is feasible to use either the BANDED
+!      or DENSE Jacobian option.
+!         Recommendation:
+!         Use the DENSE or BANDED option if possible. They do
+!         not require use of most of the options described here.
+!    
+!  (2) The Jacobian is approximated internally using differences
+!      if you do not provide an analytic Jacobian. The option
+!      USER_SUPPLIED_JACOBIAN=.TRUE. may be used if you wish to
+!      provide an analytic Jacobian.
+!         Recommendation:
+!         Use an internally generated Jacobian for most problems
+!         but consider providing an analytic Jacobian if it not
+!         too much trouble.
+!
+!  (3) If you do not provide the sparse structure arrays, they
+!      are approximated internally by making NEQ calls to your
+!      derivative subroutine and using differences to approximate
+!      the structure of the Jacobian. The option
+!      USER_SUPPLIED_SPARSITY and a call to USERSETS_IAJA can
+!      be used to supply the arrays directly. You can also use
+!      subroutine SET_IAJA to approximate the structure using
+!      different perturbation factors than those used in DVODE_F90.
+!         Recommendations:
+!         Although allowing DVODE_F90 to approximate the Jacobian
+!         structure suffices for most problems, if you know the
+!         sparsity pattern provide it directly. This eliminates
+!         the possibility that an important element that happens
+!         to be 0 when the sparsity pattern is approximated is
+!         later nonzero; and it avoids the NEQ extra calls to
+!         your derivative subroutine to approximate the structure.
+!         Note that a nemesis for any sparse ode solver is a
+!         problem in which the sparsity pattern actually changes
+!         during the integration. An example of such a problem
+!         is provided in the demohum21.f90 demonstration program.
+!         If you know the sparsity pattern changes or if you
+!         suspect it does because DVODE_F90 is generating
+!         nonconvergence error messages, consider having DVODE_F90
+!         re-approximate the structure by calling SET_INTERMEDIATE_OPTS and
+!         forcing an integration restart when control is returned
+!         to your calling program. Please do not do this at every
+!         output point since it will be extremely time consuming
+!         and inefficient if it is not needed.
+!
+!  (4) The optional parameter NZSWAG may/should be used to speed
+!      up the determination of acceptable array sizes for the
+!      internal sparse working arrays and the sparse Jacobian.
+!      Initially, DVODE_F90 allocates arrays of length
+!      max(10*NEQ,NSZSWAG) and increases this amount by
+!      max(10*NEQ,ELBOW_ROOM*NSZSWAG) as necessary. NZSWAG
+!      has a default value of 1000 and ELBOW_ROOM has a default
+!      value of 2.
+!         Recommendation:
+!         Provide a larger value for NZSWAG particularly if NEQ
+!         is large and you suspect considerable fill-in due to
+!         partial pivoting.
+!
+!  (5) MA28BD uses the pivot sequence initially determined by
+!      MA28AD. When a singularity is diagnosed, the internal
+!      procedure used by the DENSE and BANDED options is used
+!      to reduce the step size and re-calulate the iteration
+!      matrix. This works fine for most problems; but particularly
+!      for badly scaled problems, the solution may be unsuccessful
+!      or it may drag along using small step sizes. This is due
+!      to the fact MA28BD will continue to use the out-of-date pivot
+!      sequence until singularity is again diagnosed. An option not
+!      available in previous sparse ode solvers may be used to
+!      instruct DVODE_F90 to force MA28AD to calculate a new pivot
+!      sequence when MA28BD encounters a singularity. Although
+!      MA28AD is considerably slower than MA28BD, the additional
+!      calls to MA28AD ensure that the pivot sequence is more
+!      up to date. This can increase both the accuracy and the
+!      efficiency very dramatically. The demodirn.f90 demonstration
+!      program provides an illustration of the dramatic improvement
+!      that is possible. The optional parameter MA28_RPS may be set
+!      .TRUE. to force these pivot sequence updates.
+!         Recommendation:
+!         Use the default value MA28_RPS=.FALSE; but if DVODE_F90
+!         encounters nonconvergence, use MA28_RPS=.TRUE. to force
+!         pivot sequence updates.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Function Return Value ..
+        TYPE (VODE_OPTS) :: OPTS
+! ..
+! .. Scalar Arguments ..
+        REAL (WP), OPTIONAL, INTENT (IN) :: ABSERR, H0, HMAX, HMIN,         &
+        RELERR, TCRIT
+        INTEGER, OPTIONAL, INTENT (IN) :: LOWER_BANDWIDTH, MAXORD,          &
+          MXHNIL, MXSTEP, NEVENTS, NZSWAG, UPPER_BANDWIDTH
+        LOGICAL, OPTIONAL, INTENT (IN) :: BANDED_J, CHANGE_ONLY_f77_OPTIONS,&
+          DENSE_J, MA28_RPS, SPARSE_J, USER_SUPPLIED_JACOBIAN,              &
+          USER_SUPPLIED_SPARSITY
+! ..
+! .. Array Arguments ..
+        REAL (WP), OPTIONAL, INTENT (IN) :: ABSERR_VECTOR(:)
+        REAL (WP), OPTIONAL :: CLOWER(:), CUPPER(:)
+        INTEGER, OPTIONAL, INTENT (IN) :: CONSTRAINED(:)
+! ..
+! .. Local Scalars ..
+        INTEGER ::  IER, IOPT, METH, MF, MFA, MFSIGN, MITER, ML, MOSS, MU,  &
+          NAE, NG, NRE
+        LOGICAL :: BANDED, DENSE, SPARSE
+        CHARACTER (80) :: MSG
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ALLOCATED, IABS, MAX, MINVAL, PRESENT, SIGN, SIZE
+! ..
+! .. FIRST EXECUTABLE STATEMENT SET_INTERMEDIATE_OPTS
+! ..
+    RUSER(1:LRWUSER) = ZERO
+    IUSER(1:LIWUSER) = 0
+    
+!   Allow default error tolerances?
+    ALLOW_DEFAULT_TOLS = .FALSE.
+
+!   Maximum number of consecutive error test failures?
+    CONSECUTIVE_EFAILS = KFH
+
+!   Maximum number of consecutive corrector iteration failures?
+    CONSECUTIVE_CFAILS = MXNCF
+
+!   Use JACSP to approximate Jacobian?
+    USE_JACSP = .FALSE.
+
+!   If only f77 options are to be changed, do it and return.
+    IF (PRESENT(CHANGE_ONLY_f77_OPTIONS)) THEN
+       IF (CHANGE_ONLY_f77_OPTIONS) THEN
+          IF (.NOT.OPTS_CALLED) THEN
+             MSG = 'You have not previously called SET_OPTS before attempting'
+             CALL XERRDV(MSG,250,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'to change one or more of the vode.f77 optional parameters.'
+             CALL XERRDV(MSG,250,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          IF (PRESENT(HMAX)) THEN
+             IOPT = 1
+             RUSER(6) = HMAX
+             MSG = 'HMAX changed in SET_INTERMEDIATE_OPTS.'
+             CALL XERRDV(MSG,260,1,0,0,0,1,HMAX,ZERO)
+          END IF
+          IF (PRESENT(HMIN)) THEN
+             IOPT = 1
+             RUSER(7) = HMIN
+             MSG = 'HMIN changed in SET_INTERMEDIATE_OPTS.'
+             CALL XERRDV(MSG,270,1,0,0,0,1,HMIN,ZERO)
+          END IF
+          IF (PRESENT(TCRIT)) THEN
+             IOPT = 1
+             RUSER(1) = TCRIT
+             MSG = 'TCRIT changed in SET_INTERMEDIATE_OPTS.'
+             CALL XERRDV(MSG,280,1,0,0,0,1,TCRIT,ZERO)
+          END IF
+          IF (PRESENT(MXSTEP)) THEN
+             IOPT = 1
+             IUSER(6) = MXSTEP
+             MSG = 'MXSTEP changed in SET_INTERMEDIATE_OPTS.'
+             CALL XERRDV(MSG,290,1,1,MXSTEP,0,0,ZERO,ZERO)
+          END IF
+          IF (PRESENT(MAXORD)) THEN
+             IOPT = 1
+             IUSER(5) = MAXORD
+             MSG = 'MAXORD changed in SET_INTERMEDIATE_OPTS.'
+             CALL XERRDV(MSG,300,1,1,MAXORD,0,0,ZERO,ZERO)
+          END IF
+          IF (PRESENT(MXHNIL)) THEN
+             IOPT = 1
+             IUSER(7) = MXHNIL
+             MSG = 'MXHNIL changed in SET_INTERMEDIATE_OPTS.'
+             CALL XERRDV(MSG,310,1,1,MXHNIL,0,0,ZERO,ZERO)
+          END IF
+       END IF
+       RETURN
+    END IF
+
+!       Set the flag to indicate that SET_INTERMEDIATE_OPTS has been called.
+        OPTS_CALLED = .TRUE.
+
+!       Set the MA48 storage cleanup flag.
+        MA48_WAS_USED = .FALSE.
+
+!       Set the fast factor option for MA48,
+        USE_FAST_FACTOR = .TRUE.
+
+!       Determine the working precision and define the value for UMAX
+!       expected by MA28. Note that it is different for single and
+!       double precision.
+        WPD = KIND(1.0D0)
+        WPS = KIND(1.0E0)
+        IF (WPD/=WP .AND. WPS/=WP) THEN
+          MSG = 'Illegal working precision in SET_INTERMEDIATE_OPTS.'
+          CALL XERRDV(MSG,320,2,0,0,0,0,ZERO,ZERO)
+        END IF
+        IF (WPD==WP) THEN
+!       Working precision is double.
+          UMAX = 0.999999999_WP
+        ELSE
+!       Working precision is single.
+          UMAX = 0.9999_WP
+        END IF
+
+!       Set the MA28 message flag.
+        LP = 0
+
+!       Set the MA28 singularity threshold.
+        EPS = 1.0E-4_WP
+
+!       Set the MA28 pivot sequence frequency flag.
+        IF (PRESENT(MA28_RPS)) THEN
+           IF (MA28_RPS) THEN
+              REDO_PIVOT_SEQUENCE = MA28_RPS
+           ELSE
+              REDO_PIVOT_SEQUENCE = .FALSE.
+           END IF
+        ELSE
+           REDO_PIVOT_SEQUENCE = .FALSE.
+        END IF
+
+        MA28AD_CALLS = 0
+        MA28BD_CALLS = 0
+        MA28CD_CALLS = 0
+        MC19AD_CALLS = 0
+!_______________________________________________________________________
+! *****MA48 build change point. Insert these statements.
+!       MA48AD_CALLS = 0
+!       MA48BD_CALLS = 0
+!       MA48CD_CALLS = 0
+!_______________________________________________________________________
+        IRNCP = 0
+        ICNCP = 0
+        MINIRN = 0
+        MINICN = 0
+        MAX_MINIRN = 0
+        MAX_MINICN = 0
+        MAX_NNZ = 0
+
+!       Set the flag to warn the user if |(y(t)| < abserr.
+        YMAXWARN = .FALSE.
+
+!       Load defaults for the optional input arrays for DVODE.
+        IUSER(1:8) = 0
+        RUSER(1:8) = ZERO
+
+        IF (PRESENT(SPARSE_J)) THEN
+          IF (SPARSE_J) THEN
+            IF (PRESENT(USER_SUPPLIED_JACOBIAN)) THEN
+              IF (USER_SUPPLIED_JACOBIAN) THEN
+                MF = 126
+              ELSE
+                MF = 227
+              END IF
+            ELSE
+              MF = 227
+            END IF
+            IF (PRESENT(USER_SUPPLIED_SPARSITY)) THEN
+              IF (USER_SUPPLIED_SPARSITY) THEN
+                MF = MF - 100*(MF/100)
+              END IF
+            END IF
+          END IF
+        END IF
+
+        IF (PRESENT(BANDED_J)) THEN
+          IF (BANDED_J) THEN
+            IF (PRESENT(USER_SUPPLIED_JACOBIAN)) THEN
+              IF (USER_SUPPLIED_JACOBIAN) THEN
+                MF = 24
+              ELSE
+                MF = 25
+              END IF
+            ELSE
+              MF = 25
+            END IF
+          END IF
+        END IF
+
+        IF (PRESENT(DENSE_J)) THEN
+          IF (DENSE_J) THEN
+            IF (PRESENT(USER_SUPPLIED_JACOBIAN)) THEN
+              IF (USER_SUPPLIED_JACOBIAN) THEN
+                MF = 21
+              ELSE
+                MF = 22
+              END IF
+            ELSE
+              MF = 22
+            END IF
+          END IF
+        END IF
+
+!       Check for errors in MF.
+        MFA = IABS(MF)
+        MOSS = MFA/100
+        METH = (MFA-100*MOSS)/10
+        MITER = MFA - 100*MOSS - 10*METH
+        IF (METH<1 .OR. METH>2) THEN
+          MSG = 'Illegal value of METH in SET_INTERMEDIATE_OPTS.'
+          CALL XERRDV(MSG,330,2,0,0,0,0,ZERO,ZERO)
+        END IF
+        IF (MITER<0 .OR. MITER>7) THEN
+          MSG = 'Illegal value of MITER in SET_INTERMEDIATE_OPTS.'
+          CALL XERRDV(MSG,340,2,0,0,0,0,ZERO,ZERO)
+        END IF
+        IF (MOSS<0 .OR. MOSS>2) THEN
+          MSG = 'Illegal value of MOSS in SET_INTERMEDIATE_OPTS.'
+          CALL XERRDV(MSG,350,2,0,0,0,0,ZERO,ZERO)
+        END IF
+
+!       Reset MF, now that MOSS is known.
+        MFSIGN = SIGN(1,MF)
+        MF = MF - 100*MOSS*MFSIGN
+
+        IF (MITER==0) THEN
+          DENSE = .FALSE.
+          BANDED = .FALSE.
+          SPARSE = .FALSE.
+        ELSE IF (MITER==1 .OR. MITER==2) THEN
+          DENSE = .TRUE.
+          BANDED = .FALSE.
+          SPARSE = .FALSE.
+        ELSE IF (MITER==3) THEN
+          DENSE = .FALSE.
+          BANDED = .FALSE.
+          SPARSE = .FALSE.
+        ELSE IF (MITER==4 .OR. MITER==5) THEN
+          DENSE = .FALSE.
+          BANDED = .TRUE.
+          SPARSE = .FALSE.
+        ELSE IF (MITER==6 .OR. MITER==7) THEN
+          DENSE = .FALSE.
+          BANDED = .FALSE.
+          SPARSE = .TRUE.
+        END IF
+
+!       Define the banded Jacobian band widths.
+        IF (BANDED) THEN
+          IF (PRESENT(LOWER_BANDWIDTH)) THEN
+            ML = LOWER_BANDWIDTH
+            IUSER(1) = ML
+          ELSE
+            MSG = 'In SET_INTERMEDIATE_OPTS you have indicated a'
+            CALL XERRDV(MSG,360,1,0,0,0,0,ZERO,ZERO)
+            MSG = 'banded Jacobian but you have not'
+            CALL XERRDV(MSG,360,1,0,0,0,0,ZERO,ZERO)
+            MSG = 'supplied the lower bandwidth.'
+            CALL XERRDV(MSG,360,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          IF (PRESENT(UPPER_BANDWIDTH)) THEN
+            MU = UPPER_BANDWIDTH
+            IUSER(2) = MU
+          ELSE
+            MSG = 'In SET_INTERMEDIATE_OPTS you have indicated a'
+            CALL XERRDV(MSG,370,1,0,0,0,0,ZERO,ZERO)
+            MSG = 'banded Jacobian but you have not'
+            CALL XERRDV(MSG,370,1,0,0,0,0,ZERO,ZERO)
+            MSG = 'supplied the upper bandwidth.'
+            CALL XERRDV(MSG,370,2,0,0,0,0,ZERO,ZERO)
+          END IF
+!         Define the nonzero diagonals.
+          BNGRP = 0
+          SUBS = .FALSE.
+          SUPS = .FALSE.
+          NSUBS  = 0
+          NSUPS = 0
+        END IF
+
+!       Define the sparse Jacobian options.
+        SCALE_MATRIX = .FALSE.
+        ELBOW_ROOM = 2
+        IF (SPARSE) THEN
+!         NZSWAG for the number of nonzeros in the Jacobian.
+          IF (PRESENT(NZSWAG)) THEN
+            NZ_SWAG = MAX(NZSWAG,0)
+          ELSE
+            NZ_SWAG = 0
+          END IF
+!         Indicate that SET_IAJA has not yet been called successfully.
+          IAJA_CALLED = .FALSE.
+!         Check for illegal method flags.
+          IF (MOSS==2 .AND. MITER/=7) THEN
+            MSG = 'In SET_INTERMEDIATE_OPTS MOSS=2 but MITER is not 7.'
+            CALL XERRDV(MSG,380,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          IF (MOSS==1 .AND. MITER/=6) THEN
+            MSG = 'In SET_INTERMEDIATE_OPTS MOSS=1 but MITER is not 6.'
+            CALL XERRDV(MSG,390,2,0,0,0,0,ZERO,ZERO)
+          END IF
+!         IF (MOSS==0 .AND. MITER/=7) THEN
+!           MSG = 'In SET_INTERMEDIATE_OPTS MOSS=0 but MITER is not 7.'
+!           CALL XERRDV(MSG,400,2,0,0,0,0,ZERO,ZERO)
+!         END IF
+!         Allow MC19 scaling for the Jacobian.
+          SCALE_MATRIX = .FALSE.
+        END IF
+
+!       Define the number of event functions.
+        IF (PRESENT(NEVENTS)) THEN
+          IF (NEVENTS>0) THEN
+            NG = NEVENTS
+          ELSE
+            NG = 0
+          END IF
+        ELSE
+          NG = 0
+        END IF
+
+!       Process the constrained solution components.
+        IF (PRESENT(CONSTRAINED)) THEN
+          NDX = SIZE(CONSTRAINED)
+          IF (NDX<1) THEN
+            MSG = 'In SET_INTERMEDIATE_OPTS the size of CONSTRAINED < 1.'
+            CALL XERRDV(MSG,410,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          IF (.NOT.(PRESENT(CLOWER)) .OR. .NOT.(PRESENT(CUPPER))) THEN
+            MSG = 'In SET_INTERMEDIATE_OPTS the arrays CLOWER and CUPPER'
+            CALL XERRDV(MSG,420,1,0,0,0,0,ZERO,ZERO)
+            MSG = 'are not present.'
+            CALL XERRDV(MSG,420,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          IF (SIZE(CLOWER)/=NDX .OR. SIZE(CUPPER)/=NDX) THEN
+            MSG = 'In SET_INTERMEDIATE_OPTS the size of the solution bound'
+            CALL XERRDV(MSG,430,1,0,0,0,0,ZERO,ZERO)
+            MSG = 'arrays must be the same as the CONSTRAINED array.'
+            CALL XERRDV(MSG,430,2,0,0,0,0,ZERO,ZERO)
+          END IF
+!         Note: The contents of CONSTRAINED will be checked
+!         in subroutine DVODE after NEQ is known.
+          IF (ALLOCATED(IDX)) THEN
+            DEALLOCATE (IDX,LB,UB,STAT=IER)
+            CALL CHECK_STAT(IER,30)
+          END IF
+          ALLOCATE (IDX(NDX),LB(NDX),UB(NDX),STAT=IER)
+          CALL CHECK_STAT(IER,40)
+          IDX(1:NDX) = CONSTRAINED(1:NDX)
+          LB(1:NDX) = CLOWER(1:NDX)
+          UB(1:NDX) = CUPPER(1:NDX)
+          BOUNDS = .TRUE.
+        ELSE
+          IF (ALLOCATED(IDX)) THEN
+            DEALLOCATE (IDX,LB,UB,STAT=IER)
+            CALL CHECK_STAT(IER,50)
+          END IF
+          NDX = 0
+          BOUNDS = .FALSE.
+        END IF
+
+!       Is the Jacobian constant?
+        J_IS_CONSTANT = .FALSE.
+        J_HAS_BEEN_COMPUTED = .FALSE.
+
+!       Load the user options into the solution structure.
+        OPTS%MF = MF
+        OPTS%METH = METH
+        OPTS%MITER = MITER
+        OPTS%MOSS = MOSS
+        OPTS%DENSE = DENSE
+        OPTS%BANDED = BANDED
+        OPTS%SPARSE = SPARSE
+        OPTS%NG = NG
+
+!       Process the miscellaneous options.
+
+!       Don't step past TCRIT variable.
+        IF (PRESENT(TCRIT)) THEN
+          RUSER(1) = TCRIT
+        ELSE
+          RUSER(1) = ZERO
+        END IF
+
+!       DVODE optional parameters.
+        IOPT = 1
+        IF (PRESENT(MAXORD)) THEN
+          IUSER(5) = MAXORD
+          IOPT = 1
+        END IF
+        IF (PRESENT(MXSTEP)) THEN
+          IUSER(6) = MXSTEP
+          IOPT = 1
+        END IF
+        IF (PRESENT(MXHNIL)) THEN
+          IUSER(7) = MXHNIL
+          IOPT = 1
+        END IF
+        IF (PRESENT(H0)) THEN
+          RUSER(5) = H0
+          IOPT = 1
+        END IF
+        IF (PRESENT(HMAX)) THEN
+          RUSER(6) = HMAX
+          IOPT = 1
+        END IF
+        IF (PRESENT(HMIN)) THEN
+          RUSER(7) = HMIN
+          IOPT = 1
+        END IF
+        U_PIVOT = ONE
+        OPTS%IOPT = IOPT
+
+!       Define the error tolerances.
+
+!       Relative error tolerances.
+        NRE = 1
+        ALLOCATE (OPTS%RTOL(NRE),STAT=IER)
+        CALL CHECK_STAT(IER,60)
+        IF (PRESENT(RELERR)) THEN
+          IF (RELERR<ZERO) THEN
+            MSG = 'RELERR must be nonnegative.'
+            CALL XERRDV(MSG,440,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          OPTS%RTOL = RELERR
+        ELSE
+          IF (ALLOW_DEFAULT_TOLS) THEN
+             OPTS%RTOL = 1.0E-4_WP
+             MSG = 'By not specifying RELERR, you have elected to use a default'
+             CALL XERRDV(MSG,450,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'relative error tolerance equal to 1.0D-4. Please be aware a'
+             CALL XERRDV(MSG,450,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'tolerance this large is not appropriate for all problems.'
+             CALL XERRDV(MSG,450,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'Execution will continue'
+             CALL XERRDV(MSG,450,1,0,0,0,0,ZERO,ZERO)
+          ELSE
+             MSG = 'You must specify a nonzero relative error tolerance.'
+             CALL XERRDV(MSG,460,2,0,0,0,0,ZERO,ZERO)
+          END IF
+        END IF
+
+!       Absolute error tolerances.
+        IF (PRESENT(ABSERR_VECTOR)) THEN
+          IF (MINVAL(ABSERR_VECTOR)<ZERO) THEN
+            MSG = 'All components of ABSERR_VECTOR must'
+            CALL XERRDV(MSG,460,1,0,0,0,0,ZERO,ZERO)
+            MSG = 'be nonnegative.'
+            CALL XERRDV(MSG,460,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          NAE = SIZE(ABSERR_VECTOR)
+        ELSE
+          NAE = 1
+        END IF
+        ALLOCATE (OPTS%ATOL(NAE),STAT=IER)
+        CALL CHECK_STAT(IER,70)
+        IF (PRESENT(ABSERR_VECTOR)) THEN
+          OPTS%ATOL = ABSERR_VECTOR
+        ELSE IF (PRESENT(ABSERR)) THEN
+          IF (ABSERR<ZERO) THEN
+            MSG = 'ABSERR must be nonnegative.'
+            CALL XERRDV(MSG,470,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          OPTS%ATOL = ABSERR
+        ELSE
+          IF (ALLOW_DEFAULT_TOLS) THEN
+             OPTS%ATOL = 1D-6
+             MSG = 'By not specifying ABSERR, you have elected to use a default'
+             CALL XERRDV(MSG,480,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'absolute error tolerance equal to 1.0D-6. Please be aware a'
+             CALL XERRDV(MSG,480,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'tolerance this large is not appropriate for all problems.'
+             CALL XERRDV(MSG,480,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'Execution will continue'
+             CALL XERRDV(MSG,480,1,0,0,0,0,ZERO,ZERO)
+          ELSE
+             MSG = 'You must specify a vector of absolute error tolerances or'
+             CALL XERRDV(MSG,490,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'a scalar error tolerance. It is recommended that you use'
+             CALL XERRDV(MSG,490,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'a vector of absolute error tolerances.'
+             CALL XERRDV(MSG,490,2,0,0,0,0,ZERO,ZERO)
+          END IF
+        END IF
+
+!       ITOL error tolerance flag.
+!          ITOL   RTOL     ATOL            EWT(i)
+!            1   scalar   scalar  RTOL*ABS(Y(i)) + ATOL
+!            2   scalar   array   RTOL*ABS(Y(i)) + ATOL(i)
+!            3   array    scalar  RTOL(i)*ABS(Y(i)) + ATOL
+!            4   array    array   RTOL(i)*ABS(Y(i)) + ATOL(i)
+        IF (PRESENT(ABSERR_VECTOR)) THEN
+          OPTS%ITOL = 2
+        ELSE
+          OPTS%ITOL = 1
+        END IF
+        RETURN
+
+  END FUNCTION SET_INTERMEDIATE_OPTS
+!_______________________________________________________________________
+
+  FUNCTION SET_OPTS(METHOD_FLAG, DENSE_J, BANDED_J, SPARSE_J,          &
+    USER_SUPPLIED_JACOBIAN, SAVE_JACOBIAN, CONSTANT_JACOBIAN,          &
+    LOWER_BANDWIDTH, UPPER_BANDWIDTH, SUB_DIAGONALS, SUP_DIAGONALS,    &
+    RELERR, RELERR_VECTOR, ABSERR, ABSERR_VECTOR, TCRIT, H0, HMAX,     &
+    HMIN, MAXORD, MXSTEP, MXHNIL, YMAGWARN, SETH, UPIVOT, NZSWAG,      &
+    USER_SUPPLIED_SPARSITY, NEVENTS, CONSTRAINED, CLOWER, CUPPER,      &
+    MA28_ELBOW_ROOM, MC19_SCALING, MA28_MESSAGES, MA28_EPS,            &
+    MA28_RPS, CHANGE_ONLY_f77_OPTIONS,JACOBIAN_BY_JACSP)               &
+  RESULT(OPTS)
+
+! FUNCTION SET_OPTS:
+!    VODE.f77 method flag:
+!       METHOD_FLAG
+!    Jacobian type:
+!       DENSE_J, BANDED_J, SPARSE_J
+!    Analytic Jacobian:
+!       USER_SUPPLIED_JACOBIAN
+!    Jacobian options:
+!       SAVE_JACOBIAN, CONSTANT_JACOBIAN. JACOBIAN_BY_JACSP
+!    If banded Jacobian:
+!       LOWER_BANDWIDTH, UPPER_BANDWIDTH
+!    If specify the nonzero diagonals for banded Jacobian:
+!       SUB_DIAGONALS, SUP_DIAGONALS
+!    Error tolerances:
+!       RELERR, RELERR_VECTOR, ABSERR, ABSERR_VECTOR
+!    VODE.f77 optional parameters:
+!       TCRIT, H0, HMAX, HMIN, MAXORD, MXSTEP, MXHNIL
+!    Solution smaller than absolute error tolerance:
+!       YMAGWARN
+!    Sparse flags:
+!       SETH, UPIVOT, NZSWAG, USER_SUPPLIED_SPARSITY
+!       MA28_ELBOW_ROOM, MC19_SCALING, MA28_MESSAGES
+!       MA28_EPS, MA28_RPS
+!    Rootfinding:
+!       NEVENTS
+!    Impose bounds on solution:
+!       CONSTRAINED, CLOWER, CUPPER
+!    Change one or more of HMAX, HMIN, TCRIT, MXSTEP, MXHNIL, MAXORD
+!       CHANGE_ONLY_f77_OPTIONS
+! RESULT(OPTS)
+
+! SET_OPTIONS sets user parameters for DVODE via keywords. Values that
+! are defined herein will be used internally by DVODE. All option
+! keywords are OPTIONAL and order is not important.
+
+! Note that DVODE_F90 requires that one of SET_NORMAL_OPTS or
+! SET_INTERMEDIATE_OPTS or SET_OPTS is called before the first
+! time DVODE_F90 is called.
+
+!                     Quick Summary of Options
+
+! METHOD_FLAG            - any legal value of MF as in DVODE
+! DENSE_J                - Jacobian is sparse alternative to MF
+! BANDED_J               - Jacobian is banded alternative to MF 
+! SPARSE_J               - Jacobian is sparse alternative to MF   
+! USER_SUPPLIED_JACOBIAN - User will supply Jacobian subroutine
+!                          (user supplied subroutine JAC required)
+! SAVE_JACOBIAN          - Jacobian will be saved and reused
+! CONSTANT_JACOBIAN      - Jacobian is constant
+! JACOBIAN_BY_JACSP      - Use Doug Salane's approximate Jacobian
+!                          algorithm
+! LOWER_BANDWIDTH        - Lower bandwidth ML in DVODE
+! UPPER_BANDWIDTH        - Upper bandwidth MU in DVODE
+! SUB_DIAGONALS          - Nonzero sub diagonals in Jacobian
+! SUP_DIAGONALS          - Nonzero super diagonals in Jacobian
+! RELERR                 - Scalar relative error tolerance in DVODE
+! RELERR_VECTOR          - Vector relative error tolerance in DVODE
+! ABSERR                 - Scalar absolute error tolerance in DVODE
+! ABSERR_VECTOR          - Vector absolute error tolerance in DVODE
+! TCRIT                  - Critical time TCRIT in DVODE
+! H0                     - Starting step size in DVODE
+! HMAX                   - Maximum step size in DVODE 
+! HMIN                   - Minimum step size in DVODE 
+! MAXORD                 - Maximum integration order in DVODE
+! MXSTEP                 - Maximum number of integration steps
+!                          in DVODE
+! MXHNIL                 - Maximum number of T+H=T messages in DVODE
+! YMAGWARN               - Warn if magnitude of solution is smaller
+!                          than absolute error tolerance
+! SETH                   - Sparse Jacobian element threshold value
+! UPIVOT                 - MA28 partial pivoting parameter
+! NZSWAG                 - guess for the number of nonzeros in sparse
+!                          Jacobian
+! USER_SUPPLIED_SPARSITY - user will supply sparsity structure
+!                          arrays by calling USERSETS_IAJA 
+! MA28_ELBOW_ROOM        - Supply an integer greater than 2 if you
+!                          wish to increase the elbow room in the
+!                          MA28 work arrays (by MA28_ELBOW_ROOM * NZA).
+! MC19_SCALING           - .TRUE. if you wish to invoke sparse scaling
+!                           of the Jacobian.
+! MA28_MESSAGES          - Control printing of MA28 messages
+! MA28_RPS               - Redo MA28AD pivot sequence if a singularity
+!                          is encountered
+! NEVENTS                - number of user defined root finding functions
+!                          (user supplied subroutine G required)
+! CONSTRAINED,           - array of solution component indices that
+! CLOWER,                  are to be constrained by the lower and
+! CUPPER                   upper bound arrays CLOWER and CUPPER so that
+!                          CLOWER(I) <= Y(CONSTRAINED(I)) <= CUPPER(I)
+! CHANGE_ONLY_f77_OPTIONS- flag to indicate whether to only change any
+!                          of the parameters MXSTEP, MXHNIL, MAXORD,
+!                          HMAX, HMIN, TCRIT
+!                     Options Types
+! METHOD_FLAG            - integer
+! DENSE_J                - logical
+! BANDED_J               - logical
+! SPARSE_J               - logical
+! USER_SUPPLIED_JACOBIAN - logical
+! SAVE_JACOBIAN          - logical
+! CONSTANT_JACOBIAN      - logical
+! JACOBIAN_BY_JACSP      - logical
+! LOWER_BANDWIDTH        - integer
+! UPPER_BANDWIDTH        - integer
+! SUB_DIAGONALS          - integer array
+! SUP_DIAGONALS          - integer array
+! RELERR                 - real(wp) scalar
+! RELERR_VECTOR          - real(wp) vector
+! ABSERR                 - real(wp) scalar
+! ABSERR_VECTOR          - real(wp) vector
+! TCRIT                  - real(wp) scalar
+! H0                     - real(wp) scalar
+! HMAX                   - real(wp) scalar
+! HMIN                   - real(wp) scalar
+! MAXORD                 - integer
+! MXSTEP                 - integer
+! MXHNIL                 - integer
+! YMAGWARN               - logical
+! SETH                   - real(wp) scalar
+! UPIVOT                 - real(wp) scalar
+! NZSWAG                 - integer
+! USER_SUPPLIED_SPARSITY - logical
+! NEVENTS                - integer
+! CONSTRAINED            - integer array
+! CLOWER                 - real(wp) array
+! CUPPER                 - real(wp) array
+! CHANGE_ONLY_f77_OPTIONS- logical
+
+! Argument list parameters:
+! METHOD_FLAG              = integration method flag
+! ABSERR                   = scalar absolute error tolerance
+! ABSERR_VECTOR            = vector of absolute error tolerances
+! RELERR                   = scalar relative error tolerance
+! RELERR_VECTOR            = vector of relative error tolerances
+! NEVENTS                  = Number of event functions (requires
+!                            user-supplied GFUN)
+! DENSE_J                  = use dense linear algebra if .TRUE.
+! BANDED_J                 = use banded linear algebra if .TRUE.
+!   LOWER_BANDWIDTH        = lower bandwidth of the Jacobian
+!                            (required if BANDED_J = .TRUE.)
+!   UPPER_BANDWIDTH        = upper bandwidth of the Jacobian
+!                            (required if BANDED_J = .TRUE.)
+!   SUB_DIAGONALS          = starting row numbers of nonzero sub
+!                            diagonals counting up from the lowest
+!                            sub diagonal
+!   SUP_DIAGONALS          = starting column numbers of nonzero
+!                            super diagonals counting up from the
+!                            lowest super diagonal
+! SPARSE_J                 = use sparse linear algebra if .TRUE.
+!   UPIVOT                 = partial pivot control flag (default=ONE)
+!                          = 0.0D0 for no partial pivoting
+!                          = ONE for (full) partial pivoting
+!                            Values between 0.0D0 and ONE yield
+!                            MA28 (partial) partial pivoting.
+!   NZSWAG                 = If you wish you may supply a guess,
+!                            NZSWAG, at the number of nonzeros
+!                            in the Jacobian matrix. In some cases
+!                            this will speed up the determination
+!                            of the necessary storage.
+!   USER_SUPPLIED_SPARSITY = .TRUE. if you wish to supply the sparsity
+!                            structure arrays directly by calling
+!                            USERSETS_IAJA
+!   MA28_ELBOW_ROOM        = Supply an integer greater than 2 if you
+!                            wish to increase the elbow room in the
+!                            MA28 work arrays (by MA28_ELBOW_ROOM * NZA).
+!   MC19_SCALING           = .TRUE. if you wish to invoke sparse scaling
+!                            of the Jacobian.
+!   MA28_MESSAGES          = .TRUE. to print all MA28 messages.
+!   MA28_EPS               = MA28 singularity threshold. If MA28BD
+!                            determines that the ratio of the current
+!                            pivot to the largest element in the row
+!                            is smaller than EPS, it will flag the
+!                            Jacobian as singular and force MA28AD
+!                            to calculate a new pivot sequence.
+!   MA28_RPS               = .TRUE. to force MA28AD to calculate a new
+!                            pivot sequence for use in MA28BD if a
+!                            singular iteration matrix is encountered
+!                            is smaller than EPS, it will flag the
+!                            Jacobian as singular and force MA28AD
+!                            to calculate a new pivot sequence.
+! USER_SUPPLIED_JACOBIAN   = exact Jacobian option
+!                            (requires user-supplied JAC)
+! SAVE_JACOBIAN            = reuse saved Jacobians
+! JACOBIAN_BY_JACSP        = use Doug Salane's Jacobian algorithm
+! TCRIT                    = critical time
+! H0                       = initial step size to try
+! HMAX                     = maximum allowable step size
+! HMIN                     = minimum allowable step size
+! MAXORD                   = maximum allowable integration order
+! MXSTEP                   = maximum number of integration steps
+!                            between calls to DVODE
+! MXHNIL                   = maximum number of printed messages
+!                            if the T+H=T condition occurs
+! CONSTRAINED              = array containing the indices of
+!                            solution components which are to be
+!                            be constrained by CLOWER and CUPPER.
+!                            The size of CONSTRAINED must be
+!                            positive and not exceed NEQ, the
+!                            number of ODEs. Each component of
+!                            CONSTRAINED must be between 1 and NEQ.
+! CLOWER, CUPPER           = lower and upper bound arrays for the.
+!                            solution. Each must be the same size
+!                            as the CONSTRAINED vector.
+! YMAGWARN                 = If .TRUE., a warning will be issued
+!                            before any return from DVODE for any
+!                            solution component whose magnitude
+!                            is smaller than the absolute error
+!                            tolerance for that component.
+!   User-callable Routines:
+!   The following routines may be called by the user:
+!   SET_OPTS      : Used to set options for DVODE_F90
+!   GET_STATS     : Used to gather summary integration
+!                   statistics following a successful
+!                   return from DVODE_F90
+!   DVINDY        : Used if the user wishes to interpolate
+!                   solution or derivative following a
+!                   successful return from DVODE_F90
+!   USERSETS_IAJA : Used if the user wishes to supply the
+!                   sparsity structure directly
+!   Detailed Description of SET_OPTS
+!   The following are defined in SET_OPTS:
+!   OPTS%MF     = Integration method flag (MF)
+!   OPTS%METH   = Integration family flag (METH)
+!   OPTS%MITER  = Iteration type flag (MITER)
+!   OPTS%MOSS   = Sparsity array type flag (MOSS)
+!   OPTS%ITOL   = Error tolerance flag (ITOL) (ITOL)
+!   OPTS%ATOL   = Absolute error tolerance(s) (ATOL)
+!   OPTS%RTOL   = Relative error tolerance(s) (RTOL)
+!   OPTS%DENSE  = Use dense linear algebra
+!   OPTS%BANDED = Use banded linear algebra 
+!   OPTS%SPARSE = Use sparse linear algebra 
+!   OPTS%IOPT   = DVODE optional parameter input flag (IOPT)
+!   OPTS%NG     = Number of event functions
+!   RUSER(1)    = TCRIT (don't step past)
+!   IUSER(1)    = Jacobian lower bandwidth (ML)
+!   IUSER(2)    = Jacobian upper bandwidth (MU)
+!   RUSER(5)    = Initial step size to try (H0)
+!   RUSER(6)    = Maximum allowable step size (HMAX)
+!   RUSER(7)    = Minimum allowable step size (HMIN)
+!   IUSER(5)    = Maximum allowable integration order (MAXORD)
+!   IUSER(6)    = Maximum number of integration steps (MXSTEP)
+!   IUSER(7)    = Maximum number of T+H=T messages (MXHNIL)
+!   NZ_SWAG     = Guess for the number of nonzeros in the
+!                 sparse Jacobian
+!   NG          = Number of user event functions
+!   BOUNDS,     = Nonnegativity information
+!   NDX, IDX
+!   YMAXWARN    = Warning flag for |y(t)| < abserr
+!   MA28_ELBOW_ROOM = Integer multiple by which to increase
+!                     the elbow room in the MA28 sparse work
+!                     arrays
+!   MC19_SCALING    = logical flag to control MC19 sparse
+!                     scaling of the Jacobian
+!   MA28_MESSAGES   = logical flag to control printing of MA28
+!                     messages.
+!   MA28_EPS        = real(wp) MA28 singularity threshold
+!
+!                         All Options
+!
+! METHOD_FLAG
+!
+! Default:   Not used
+! Change to: No need to specify if use one of next three parameters
+!            but can be changed to any value of the MF method flag
+!            in dvode.f77
+!
+! DENSE_J
+!
+! Default:   .FALSE.
+! Change to: .TRUE. for dense linear algebra
+!
+! BANDED_J
+!
+! Default:   .FALSE.
+! Change to: .TRUE. for banded linear algebra
+!
+! SPARSE_J
+!
+! Default:   .FALSE.
+! Change to: .TRUE. for sparse linear algebra
+
+! USER_SUPPLIED_JACOBIAN
+!
+! Default:   .FALSE.
+! Change to: .TRUE. if want to supply subroutine JAC to DVODE_F90
+!
+! SAVE_JACOBIAN
+!
+! Default:   .TRUE.
+! Change to: .FALSE. if do not want DVODE_F90 to reuse saved
+!            Jacobians
+!
+! JACOBIAN_BY_JACSP
+!
+! Default:   .FALSE.
+! Change to: .TRUE. to approximate the Jacobian using Doug Salane's
+!            JACSP Jacobian subroutine
+!
+! CONSTANT_JACOBIAN
+!
+! Default:   .FALSE.
+! Change to: .TRUE. if Jacobian is constant
+!
+! LOWER_BANDWIDTH
+!
+! Default:   Not used
+! Change to: Lower bandwidth if BANDED_J = .TRUE.
+!
+! UPPER_BANDWIDTH
+!
+! Default:   Not used
+! Change to: Upper bandwidth if BANDED_J = .TRUE.
+!
+! SUB_DIAGONALS
+!
+! Default:   Not used
+! Change to: Starting row locations for sub diagonals in
+!            banded Jacobian
+!
+! SUP_DIAGONALS
+!
+! Default:   Not used
+! Change to: Starting columns locations for super diagonals
+!            in banded Jacobian
+!
+! RELERR
+!
+! Default:   None
+! Change to: Specify a nonzero relative error tolerance
+!
+! RELERR_VECTOR
+!
+! Default:   Not used
+! Change to: Vector of relative error tolerances
+!
+! ABSERR
+!
+! Default:   None
+! Change to: Specify a scalar absolute error tolerance or
+!            a vector of absolute error tolerances
+!
+! ABSERR_VECTOR
+!
+! Default:   Not used
+! Change to: Vector of absolute error tolerances
+!
+! TCRIT
+!
+! Default:   Not used
+! Change to: Value of T which DVODE_F90 is not to step past
+!
+!     H0
+!
+! Default:   Determined by DVODE_F90
+! Change to: Guess for initial step size
+!
+! HMAX
+!
+! Default:   Infinity
+! Change to: Maximum allowable step size
+!
+! HMIN
+!
+! Default:   0.0D0
+! Change to: Minimum allowable step size
+!
+! MAXORD
+!
+! Default:   Determined by DVODE_F90
+! Change to: Maximum integration order
+!
+! MXSTEP
+!
+! Default:   5000
+!     Change to: Maximum number of steps between output points
+!
+! MXHNIL
+!
+! Default:   10
+! Change to: Maximum number of times T+H=T message will be printed
+!
+! YMAGWARN
+!
+! Default:   .FALSE.
+! Change to: .TRUE. if wish to be warned when the magnitude of the
+!            solution is smaller than the absolute error tolerance
+!
+! SETH
+!
+! Default:   0.0D0
+! Change to: Threshold value below which Jacobian elements in the
+!            sparse Jacobian are considered to be zero
+!
+! UPIVOT
+!
+! Default:   1.0D0
+! Change to: partial pivoting factor between 0.0d0 and 1.0d0 to
+!            control the degree of partial pivoting used in sparse
+!            Gaussian Elimination
+!
+! NZSWAG
+!
+! Default:   Determined by DVODE_F90
+! Change to: Amount by which to increment sizes of sparse arrays
+!
+! USER_SUPPLIED_SPARSITY
+!
+! Default:   .FALSE.
+! Change to: .TRUE. if wish to call subroutine USERSETS_IAJA to
+!            define the sparse structure array pointers directly
+!
+! NEVENTS
+!
+! Default:   0
+! Change to: Number of event functions if wish to supply subroutine
+!            GFUN to DVODE_F90
+!
+! CONSTRAINED
+!
+! Default:   Bounds not imposed on solution
+! Change to: Array of indices for components on which to impose
+!            solution bounds
+!
+! CLOWER
+!
+! Default:   Not used
+! Change to: Vector containing lower bounds corresponding to
+!            CONSTRAINED
+!
+! CUPPER
+!
+! Default:   Not used
+! Change to: Vector containing upper bounds corresponding to
+!            CONSTRAINED
+!
+! MA28_ELBOW_ROOM
+!
+! Default:   2
+! Change to: Larger value to allow the sparse arrays more
+!            elbow room
+!
+! MC19_SCALING
+!
+! Default:   .FALSE.
+! Change to: .TRUE. to invoke scaling of the sparse solution
+!
+! MA28_MESSAGES
+!
+! Default:   .FALSE.
+! Change to: .TRUE. to have MA28 diagnostic messages written
+!            to unit 6
+!
+! MA28_EPS
+!
+! Default:   1.0D-4
+! Change to: Smaller positive value to allow the ratio of the
+!            magnitude of pivot elements and remaining row
+!            entries to be smaller before the iteration matrix
+!            is considered to be numerically singularity
+!
+! MA28_RPS
+!
+! Default:   .FALSE.
+! Change to: Redo the MA28AD sparse pivoting sequence any time
+!            MA28BD considers the iteration matrix to be
+!            numerically singularity
+!
+! Note on Jacobian Storage Formats:
+!
+! If you supply an analytic Jacobian PD, load the
+! Jacobian elements DF(I)/DY(J), the partial
+! derivative of F(I) with respect to Y(J), using
+! the following formats. Here, Y is the solution,
+! F is the derivative, and PD is the Jacobian.
+!
+! For a full Jacobian, load PD(I,J) with DF(I)/DY(J).
+! Your code might look like this:
+!    DO J = 1, NEQ
+!       DO I = 1, NEQ
+!          PD(I,J) = ... DF(I)/DY(J)
+!       END DO
+!    END DO       
+!
+! For a banded Jacobian, load PD(I-J+MU+1,J) with
+! DF(I)/DY(J) where ML is the lower bandwidth
+! and MU is the upper bandwidth of the Jacobian.
+! Your code might look like this:
+!    DO J = 1, NEQ
+!       I1 = MAX(1,J-ML)
+!       I2 = MIN(N,J+MU)
+!       DO I = I1, I2
+!          K = I-J+MU+1
+!          PD(K,J) = ... DF(I)/DY(J)
+!       END DO
+!    END DO
+!
+! For a sparse Jacobian, IA(J+1)-IA(J) is the number
+! of nonzeros in column change. JA(I) indicates the
+! rows in which the nonzeros occur. For column J,
+! the nonzeros occurs in rows I=JA(K) for K=I1,...,I2
+! where I1=IA(J) and I2= IA(J+1)-1. Load DF(I)/DY(J)
+! in PD(I). Your code might look like this:
+!    DO J = 1, NEQ
+!       I1 = IA(J)
+!       I2 = IA(J+1) - 1
+!       DO K = I1, I2
+!          I = JA(K)
+!          PD(I) = ... DF(I)/DY(J)
+!       END DO
+!    END DO
+!
+!                    More on Sparsity Options
+!
+! Two facts of life regarding the use of direct sparse solvers are
+! (1) significant improvements are possible, and (2) the use of
+! direct sparse solvers often is more demanding of the user.
+! Although SET_NORMAL_OPTS provides modest provisions for solving
+! problems with sparse Jacobians, using SET_OPTS rather than
+! SET_NORMAL_OPTS provides several advanced options. These options
+! are described below. The recommended manner in which to use
+! these options is also provided. Note that each of these optional
+! parameters have default values and need not be specified in your
+! call to SET_OPTS if you wish to use the default values. Note
+! also that the order in which the options are specified in a call
+! to SET_OPTS is not important.
+!
+!  (1) First determine if it is feasible to use either the BANDED
+!      or DENSE Jacobian option.
+!         Recommendation:
+!         Use the DENSE or BANDED option if possible. They do
+!         not require use of most of the options described here.
+!    
+!  (2) The Jacobian is approximated internally using differences
+!      if you do not provide an analytic Jacobian. The option
+!      USER_SUPPLIED_JACOBIAN=.TRUE. may be used if you wish to
+!      provide an analytic Jacobian.
+!         Recommendation:
+!         Use an internally generated Jacobian for most problems
+!         but consider providing an analytic Jacobian if it not
+!         too much trouble.
+!
+!  (3) If you do not provide the sparse structure arrays, they
+!      are approximated internally by making NEQ calls to your
+!      derivative subroutine and using differences to approximate
+!      the structure of the Jacobian. The option
+!      USER_SUPPLIED_SPARSITY and a call to USERSETS_IAJA can
+!      be used to supply the arrays directly. You can also use
+!      subroutine SET_IAJA to approximate the structure using
+!      different perturbation factors than those used in DVODE_F90.
+!         Recommendations:
+!         Although allowing DVODE_F90 to approximate the Jacobian
+!         structure suffices for most problems, if you know the
+!         sparsity pattern provide it directly. This eliminates
+!         the possibility that an important element that happens
+!         to be 0 when the sparsity pattern is approximated is
+!         later nonzero; and it avoids the NEQ extra calls to
+!         your derivative subroutine to approximate the structure.
+!         Note that a nemesis for any sparse ode solver is a
+!         problem in which the sparsity pattern actually changes
+!         during the integration. An example of such a problem
+!         is provided in the demohum21.f90 demonstration program.
+!         If you know the sparsity pattern changes or if you
+!         suspect it does because DVODE_F90 is generating
+!         nonconvergence error messages, consider having DVODE_F90
+!         re-approximate the structure by calling SET_OPTS and
+!         forcing an integration restart when control is returned
+!         to your calling program. Please do not do this at every
+!         output point since it will be extremely time consuming
+!         and inefficient if it is not needed.
+!
+!  (4) The optional parameter UPIVOT is used to control the type
+!      of partial pivoting pivoting in MA28AD. UPIVOT=0.0D0
+!      corresponds to no pivoting; and UPIVOT=1.0D0 corresponds
+!      to partial pivoting. UPIVOT may be assigned any value
+!      between 0 and 1. The pivoting strategy used in MA28AD is
+!      to accept a pivot for which the magnitude of the pivot
+!      element is greater than or equal to UPIVOT times the
+!      magnitude of the largest remaining element in the pivot
+!      row. The default value is UPIVOT=1.DO
+!         Recommendation:
+!         Use the default value UPIVOT=1.0D0.
+!
+!  (5) The optional parameter NZSWAG may/should be used to speed
+!      up the determination of acceptable array sizes for the
+!      internal sparse working arrays and the sparse Jacobian.
+!      Initially, DVODE_F90 allocates arrays of length
+!      max(10*NEQ,NSZSWAG) and increases this amount by
+!      max(10*NEQ,ELBOW_ROOM*NSZSWAG) as necessary. NZSWAG
+!      has a default value of 1000 and ELBOW_ROOM has a default
+!      value of 2.
+!         Recommendation:
+!         Provide a larger value for NZSWAG particularly if NEQ
+!         is large and you suspect considerable fill-in due to
+!         partial pivoting.
+!
+!  (6) The optional parameter ELBOW_ROOM may be used to control
+!      the amount of "elbow room" needed in the MA28 sparse arrays.
+!      The default value is 2 but a larger value can sometimes
+!      speed up the determination of sparse array sizes.
+!         Recommendation:
+!         MA28 error and diagnostic messages are turned off by
+!         default. The optional parameter MA28_MESSAGES may be
+!         used to turn them on if it is assigned a nonzero value.
+!         If you see several messages that state that LIRN_ALL
+!         or LICN_ALL is too small and that additional storage
+!         is being allocated for another try, and you have
+!         provided a large value for NZSWAG, increase the size
+!         of ELBOW_ROOM.
+!
+!  (7) The optional parameter SETH may be assigned a nonzero value
+!      that represents a threshhold value for the magitude of
+!      elements in the Jacobian below which the element will be
+!      treated as being zero. The default value is SETH=0.0D0.
+!         Recommendation:
+!         Use the default value SETH=0.0D0.
+!
+!  (8) MA28AD determines the pivot sequence to be used in subsequent
+!      calls to MA28BD. When MA28BD is called it considers the
+!      iteration matrix to be numerically singular if the magnitude
+!      of the ratio of the largest remaining element in the pivot
+!      row to the pivot element is less than EPS. This condition
+!      can arise since MA28BD is using an out-of-date pivot sequence.
+!      The default value used is EPS=1.0D-4. A smaller value
+!      of EPS may be appropriate for some problems. The optional
+!      parameter MA28_EPS may be used to change the default value.
+!         Recommendation:
+!         Use the default value EPS=1.0D-4.
+!
+!  (9) Badly scaled Jacobians can cause problems for sparse solvers.
+!      The parameter MA28_SCALING may be set .TRUE. to instruct
+!      DVODE_F90 to scale the iteration matrix using MC19AD. This
+!      can positively impact the performance of MA28AD. The default
+!      setting is MA28_SCALING=.FALSE.
+!         Recommendation:
+!         Unless the solution is not successful, use the default
+!         setting for MA29_SCALING; but consider using scaling
+!         if you know the problem is badly scaled (e.g., if the
+!         magnitudes of the components differ greatly).
+!
+! (10) As mentioned above, MA28BD uses the pivot sequence initially
+!      determined by MA28AD. When a singularity is diagnosed, the
+!      internal procedure used by the DENSE and BANDED options is
+!      used to reduce the step size and re-calulate the iteration
+!      matrix. This works fine for most problems; but particularly
+!      for badly scaled problems, the solution may be unsuccessful
+!      or it may drag along using small step sizes. This is due
+!      to the fact MA28BD will continue to use the out-of-date pivot
+!      sequence until singularity is again diagnosed. An option not
+!      available in previous sparse ode solvers may be used to
+!      instruct DVODE_F90 to force MA28AD to calculate a new pivot
+!      sequence when MA28BD encounters a singularity. Although
+!      MA28AD is considerably slower than MA28BD, the additional
+!      calls to MA28AD ensure that the pivot sequence is more
+!      up to date. This can increase both the accuracy and the
+!      efficiency very dramatically. The demodirn.f90 demonstration
+!      program provides an illustration of the dramatic improvement
+!      that is possible. The optional parameter MA28_RPS may be set
+!      .TRUE. to force these pivot sequence updates.
+!         Recommendation:
+!         Use the default value MA28_RPS=.FALSE; but if DVODE_F90
+!         encounters nonconvergence, use MA28_RPS=.TRUE. to force
+!         pivot sequence updates. Note that use of this option
+!         will usually obviate the necessity to use the other
+!         options described above. Note that we decided not to
+!         use MA28_RPS=.TRUE. as default simply because other
+!         sparse ode solvers are averse to calling MA28AD more
+!         than is absolutely necessary for a given problem.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Function Return Value ..
+        TYPE (VODE_OPTS) :: OPTS
+! ..
+! .. Scalar Arguments ..
+        REAL (WP), OPTIONAL, INTENT (IN) :: ABSERR, H0, HMAX, HMIN,         &
+        MA28_EPS, RELERR, SETH, TCRIT, UPIVOT
+        INTEGER, OPTIONAL, INTENT (IN) :: LOWER_BANDWIDTH, MAXORD,          &
+          MA28_ELBOW_ROOM, METHOD_FLAG, MXHNIL, MXSTEP, NEVENTS, NZSWAG,    &
+          UPPER_BANDWIDTH
+        LOGICAL, OPTIONAL, INTENT (IN) :: BANDED_J, CHANGE_ONLY_f77_OPTIONS,&
+          CONSTANT_JACOBIAN, DENSE_J, JACOBIAN_BY_JACSP, MA28_MESSAGES,     &
+          MA28_RPS, MC19_SCALING, SAVE_JACOBIAN, SPARSE_J,                  &
+          USER_SUPPLIED_JACOBIAN, USER_SUPPLIED_SPARSITY, YMAGWARN
+! ..
+! .. Array Arguments ..
+        REAL (WP), OPTIONAL, INTENT (IN) :: ABSERR_VECTOR(:), RELERR_VECTOR(:)
+        REAL (WP), OPTIONAL :: CLOWER(:), CUPPER(:)
+        INTEGER, OPTIONAL, INTENT (IN) :: CONSTRAINED(:), SUB_DIAGONALS(:), &
+        SUP_DIAGONALS(:)
+! ..
+! .. Local Scalars ..
+        INTEGER ::  IER, IOPT, METH, MF, MFA, MFSIGN, MITER, ML, MOSS, MU,  &
+          NAE, NG, NRE
+        LOGICAL :: BANDED, DENSE, SPARSE
+        CHARACTER (80) :: MSG
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ALLOCATED, IABS, MAX, MINVAL, PRESENT, SIGN, SIZE
+! ..
+! .. FIRST EXECUTABLE STATEMENT SET_OPTS
+! ..
+    RUSER(1:LRWUSER) = ZERO
+    IUSER(1:LIWUSER) = 0
+    
+!   Allow default error tolerances?
+    ALLOW_DEFAULT_TOLS = .FALSE.
+
+!   Maximum number of consecutive error test failures?
+    CONSECUTIVE_EFAILS = KFH
+
+!   Maximum number of consecutive corrector iteration failures?
+    CONSECUTIVE_CFAILS = MXNCF
+
+!   Use JACSP to approximate Jacobian?
+    USE_JACSP = .FALSE.
+    IF (PRESENT(JACOBIAN_BY_JACSP)) THEN
+       IF (JACOBIAN_BY_JACSP) USE_JACSP = .TRUE.
+    END IF
+
+!   If only f77 options are to be changed, do it and return.
+    IF (PRESENT(CHANGE_ONLY_f77_OPTIONS)) THEN
+       IF (CHANGE_ONLY_f77_OPTIONS) THEN
+          IF (.NOT.OPTS_CALLED) THEN
+             MSG = 'You have not previously called SET_OPTS before attempting'
+             CALL XERRDV(MSG,500,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'to change one or more of the vode.f77 optional parameters.'
+             CALL XERRDV(MSG,500,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          IF (PRESENT(HMAX)) THEN
+             IOPT = 1
+             RUSER(6) = HMAX
+             MSG = 'HMAX changed in SET_OPTS.'
+             CALL XERRDV(MSG,510,1,0,0,0,1,HMAX,ZERO)
+          END IF
+          IF (PRESENT(HMIN)) THEN
+             IOPT = 1
+             RUSER(7) = HMIN
+             MSG = 'HMIN changed in SET_OPTS.'
+             CALL XERRDV(MSG,520,1,0,0,0,1,HMIN,ZERO)
+          END IF
+          IF (PRESENT(TCRIT)) THEN
+             IOPT = 1
+             RUSER(1) = TCRIT
+             MSG = 'TCRIT changed in SET_OPTS.'
+             CALL XERRDV(MSG,530,1,0,0,0,1,TCRIT,ZERO)
+          END IF
+          IF (PRESENT(MXSTEP)) THEN
+             IOPT = 1
+             IUSER(6) = MXSTEP
+             MSG = 'MXSTEP changed in SET_OPTS.'
+             CALL XERRDV(MSG,530,1,1,MXSTEP,0,0,ZERO,ZERO)
+          END IF
+          IF (PRESENT(MAXORD)) THEN
+             IOPT = 1
+             IUSER(5) = MAXORD
+             MSG = 'MAXORD changed in SET_OPTS.'
+             CALL XERRDV(MSG,540,1,1,MAXORD,0,0,ZERO,ZERO)
+          END IF
+          IF (PRESENT(MXHNIL)) THEN
+             IOPT = 1
+             IUSER(7) = MXHNIL
+             MSG = 'MXHNIL changed in SET_OPTS.'
+             CALL XERRDV(MSG,550,1,1,MXHNIL,0,0,ZERO,ZERO)
+          END IF
+       END IF
+       RETURN
+    END IF
+
+!   Set the flag to indicate that SET_OPTS has been called.
+    OPTS_CALLED = .TRUE.
+
+!   Set the MA48 storage cleanup flag.
+    MA48_WAS_USED = .FALSE.
+
+!   Set the fast factor option for MA48,
+    USE_FAST_FACTOR = .TRUE.
+
+!   Determine the working precision and define the value for UMAX
+!   expected by MA28. Note that it is different for single and
+!   double precision.
+    WPD = KIND(1.0D0)
+    WPS = KIND(1.0E0)
+    IF (WPD/=WP .AND. WPS/=WP) THEN
+      MSG = 'Illegal working precision in SET_OPTS.'
+      CALL XERRDV(MSG,560,2,0,0,0,0,ZERO,ZERO)
+    END IF
+    IF (WPD==WP) THEN
+!   Working precision is double.
+      UMAX = 0.999999999_WP
+    ELSE
+!     Working precision is single.
+      UMAX = 0.9999_WP
+    END IF
+
+!   Set the MA28 message flag.
+    IF (PRESENT(MA28_MESSAGES)) THEN
+       LP = 0
+       IF (MA28_MESSAGES) LP = 6
+    ELSE
+       LP = 0
+    END IF
+
+!   Set the MA28 singularity threshold.
+    IF (PRESENT(MA28_EPS)) THEN
+       IF (MA28_EPS > ZERO) THEN
+          EPS = MA28_EPS
+       ELSE
+          EPS = 1.0E-4_WP
+       END IF
+     ELSE
+       EPS = 1.0E-4_WP
+     END IF
+
+!   Set the MA28 pivot sequence frequency flag.
+    IF (PRESENT(MA28_RPS)) THEN
+       IF (MA28_RPS) THEN
+          REDO_PIVOT_SEQUENCE = MA28_RPS
+       ELSE
+          REDO_PIVOT_SEQUENCE = .FALSE.
+       END IF
+     ELSE
+       REDO_PIVOT_SEQUENCE = .FALSE.
+     END IF
+
+     MA28AD_CALLS = 0
+     MA28BD_CALLS = 0
+     MA28CD_CALLS = 0
+     MC19AD_CALLS = 0
+!_______________________________________________________________________
+! *****MA48 build change point. Insert these statements.
+!    MA48AD_CALLS = 0
+!    MA48BD_CALLS = 0
+!    MA48CD_CALLS = 0
+!_______________________________________________________________________
+     IRNCP = 0
+     ICNCP = 0
+     MINIRN = 0
+     MINICN = 0
+     MAX_MINIRN = 0
+     MAX_MINICN = 0
+     MAX_NNZ = 0
+
+!   Set the flag to warn the user if |(y(t)| < abserr.
+     IF (PRESENT(YMAGWARN)) THEN
+       IF (YMAGWARN) THEN
+         YMAXWARN = .TRUE.
+       ELSE
+         YMAXWARN = .FALSE.
+       END IF
+     ELSE
+       YMAXWARN = .FALSE.
+     END IF
+
+!    Load defaults for the optional input arrays for DVODE.
+     IUSER(1:8) = 0
+     RUSER(1:8) = ZERO
+
+!    Set the method flag.
+     IF (.NOT.(PRESENT(METHOD_FLAG))) THEN
+       MF = 10
+       IF (PRESENT(SPARSE_J)) THEN
+         IF (SPARSE_J) THEN
+           IF (PRESENT(USER_SUPPLIED_JACOBIAN)) THEN
+             IF (USER_SUPPLIED_JACOBIAN) THEN
+               MF = 126
+             ELSE
+               MF = 227
+             END IF
+           ELSE
+             MF = 227
+           END IF
+           IF (PRESENT(USER_SUPPLIED_SPARSITY)) THEN
+             IF (USER_SUPPLIED_SPARSITY) THEN
+               MF = MF - 100*(MF/100)
+             END IF
+           END IF
+           IF (PRESENT(SAVE_JACOBIAN)) THEN
+             IF (.NOT.SAVE_JACOBIAN) THEN
+               MF = -MF
+             END IF
+           END IF
+          END IF
+          END IF
+
+          IF (PRESENT(BANDED_J)) THEN
+            IF (BANDED_J) THEN
+              IF (PRESENT(USER_SUPPLIED_JACOBIAN)) THEN
+                IF (USER_SUPPLIED_JACOBIAN) THEN
+                  MF = 24
+                ELSE
+                  MF = 25
+                END IF
+              ELSE
+                MF = 25
+              END IF
+              IF (PRESENT(SAVE_JACOBIAN)) THEN
+                IF (.NOT.SAVE_JACOBIAN) THEN
+                  MF = -MF
+                END IF
+              END IF
+            END IF
+          END IF
+
+          IF (PRESENT(DENSE_J)) THEN
+            IF (DENSE_J) THEN
+              IF (PRESENT(USER_SUPPLIED_JACOBIAN)) THEN
+                IF (USER_SUPPLIED_JACOBIAN) THEN
+                  MF = 21
+                ELSE
+                  MF = 22
+                END IF
+              ELSE
+                MF = 22
+              END IF
+              IF (PRESENT(SAVE_JACOBIAN)) THEN
+                IF (.NOT.SAVE_JACOBIAN) THEN
+                  MF = -MF
+                END IF
+              END IF
+            END IF
+          END IF
+     ELSE
+       MF = METHOD_FLAG
+     END IF
+
+!    Check for errors in MF.
+     MFA = IABS(MF)
+     MOSS = MFA/100
+     METH = (MFA-100*MOSS)/10
+     MITER = MFA - 100*MOSS - 10*METH
+     IF (METH<1 .OR. METH>2) THEN
+       MSG = 'Illegal value of METH in SET_OPTS.'
+       CALL XERRDV(MSG,570,2,0,0,0,0,ZERO,ZERO)
+     END IF
+     IF (MITER<0 .OR. MITER>7) THEN
+       MSG = 'Illegal value of MITER in SET_OPTS.'
+       CALL XERRDV(MSG,580,2,0,0,0,0,ZERO,ZERO)
+     END IF
+     IF (MOSS<0 .OR. MOSS>2) THEN
+       MSG = 'Illegal value of MOSS in SET_OPTS.'
+       CALL XERRDV(MSG,580,2,0,0,0,0,ZERO,ZERO)
+     END IF
+
+!    Reset MF, now that MOSS is known.
+     MFSIGN = SIGN(1,MF)
+     MF = MF - 100*MOSS*MFSIGN
+
+     IF (MITER==0) THEN
+       DENSE = .FALSE.
+       BANDED = .FALSE.
+       SPARSE = .FALSE.
+     ELSE IF (MITER==1 .OR. MITER==2) THEN
+       DENSE = .TRUE.
+       BANDED = .FALSE.
+       SPARSE = .FALSE.
+     ELSE IF (MITER==3) THEN
+       DENSE = .FALSE.
+       BANDED = .FALSE.
+       SPARSE = .FALSE.
+     ELSE IF (MITER==4 .OR. MITER==5) THEN
+       DENSE = .FALSE.
+       BANDED = .TRUE.
+       SPARSE = .FALSE.
+     ELSE IF (MITER==6 .OR. MITER==7) THEN
+       DENSE = .FALSE.
+       BANDED = .FALSE.
+       SPARSE = .TRUE.
+     END IF
+
+!    Define the banded Jacobian band widths.
+     IF (BANDED) THEN
+       IF (PRESENT(LOWER_BANDWIDTH)) THEN
+         ML = LOWER_BANDWIDTH
+         IUSER(1) = ML
+       ELSE
+         MSG = 'In SET_OPTS you have indicated a'
+         CALL XERRDV(MSG,590,1,0,0,0,0,ZERO,ZERO)
+         MSG = 'banded Jacobian but you have not'
+         CALL XERRDV(MSG,590,1,0,0,0,0,ZERO,ZERO)
+         MSG = 'supplied the lower bandwidth.'
+         CALL XERRDV(MSG,590,2,0,0,0,0,ZERO,ZERO)
+       END IF
+       IF (PRESENT(UPPER_BANDWIDTH)) THEN
+         MU = UPPER_BANDWIDTH
+         IUSER(2) = MU
+       ELSE
+         MSG = 'In SET_OPTS you have indicated a'
+         CALL XERRDV(MSG,600,1,0,0,0,0,ZERO,ZERO)
+         MSG = 'banded Jacobian but you have not'
+         CALL XERRDV(MSG,600,1,0,0,0,0,ZERO,ZERO)
+         MSG = 'supplied the upper bandwidth.'
+         CALL XERRDV(MSG,600,2,0,0,0,0,ZERO,ZERO)
+       END IF
+!      Define the nonzero diagonals.
+       BNGRP = 0
+       SUBS = .FALSE.
+       SUPS = .FALSE.
+       NSUBS  = 0
+       NSUPS = 0
+       IF (PRESENT(SUB_DIAGONALS)) THEN
+         SUBS = .TRUE.
+         NSUBS = SIZE(SUB_DIAGONALS)
+         IF (NSUBS > 0) THEN
+            IF (ALLOCATED(SUBDS)) THEN
+               DEALLOCATE(SUBDS,STAT=IER)
+               CALL CHECK_STAT(IER,80)
+            END IF
+            ALLOCATE(SUBDS(NSUBS),STAT=IER)
+            CALL CHECK_STAT(IER,90)
+            SUBDS(1:NSUBS) = SUB_DIAGONALS(1:NSUBS)
+         ELSE
+            IF (ML > 0) THEN
+               MSG = 'You must indicated that the lower bandwidth'
+               CALL XERRDV(MSG,610,1,0,0,0,0,ZERO,ZERO)
+               MSG = 'is positive but you have not specified the'
+               CALL XERRDV(MSG,610,1,0,0,0,0,ZERO,ZERO)
+               MSG = 'indices for the lower sub diagonals.'
+               CALL XERRDV(MSG,610,2,0,0,0,0,ZERO,ZERO)
+            END IF
+         END IF
+       END IF
+       IF (PRESENT(SUP_DIAGONALS)) THEN
+         SUPS = .TRUE.
+         NSUPS = SIZE(SUP_DIAGONALS)
+         IF (NSUPS > 0) THEN
+            IF (ALLOCATED(SUPDS)) THEN
+               DEALLOCATE(SUPDS,STAT=IER)
+               CALL CHECK_STAT(IER,100)
+            END IF
+            ALLOCATE(SUPDS(NSUPS),STAT=IER)
+            CALL CHECK_STAT(IER,110)
+            SUPDS(1:NSUPS) = SUP_DIAGONALS(1:NSUPS)
+         ELSE
+            IF (ML > 0) THEN
+               MSG = 'You must indicated that the upper bandwidth'
+               CALL XERRDV(MSG,620,1,0,0,0,0,ZERO,ZERO)
+               MSG = 'is positive but you have not specified the'
+               CALL XERRDV(MSG,620,1,0,0,0,0,ZERO,ZERO)
+               MSG = 'indices for the upper sub diagonals.'
+               CALL XERRDV(MSG,620,2,0,0,0,0,ZERO,ZERO)
+            END IF
+         END IF
+       END IF
+     END IF
+
+!    Define the sparse Jacobian options.
+     SCALE_MATRIX = .FALSE.
+     ELBOW_ROOM = 2
+     IF (SPARSE) THEN
+!      NZSWAG for the number of nonzeros in the Jacobian.
+       IF (PRESENT(NZSWAG)) THEN
+         NZ_SWAG = MAX(NZSWAG,0)
+       ELSE
+         NZ_SWAG = 0
+       END IF
+!      Indicate that SET_IAJA has not yet been called successfully.
+       IAJA_CALLED = .FALSE.
+!      Check for illegal method flags.
+       IF (MOSS==2 .AND. MITER/=7) THEN
+         MSG = 'In SET_OPTS MOSS=2 but MITER is not 7.'
+            CALL XERRDV(MSG,630,2,0,0,0,0,ZERO,ZERO)
+         END IF
+         IF (MOSS==1 .AND. MITER/=6) THEN
+           MSG = 'In SET_OPTS MOSS=1 but MITER is not 6.'
+           CALL XERRDV(MSG,640,2,0,0,0,0,ZERO,ZERO)
+         END IF
+!        IF (MOSS==0 .AND. MITER/=7) THEN
+!          MSG = 'In SET_OPTS MOSS=0 but MITER is not 7.'
+!          CALL XERRDV(MSG,650,2,0,0,0,0,ZERO,ZERO)
+!        END IF
+!        Allow the work array elbow room to be increased.
+         IF (PRESENT(MA28_ELBOW_ROOM)) THEN
+            ELBOW_ROOM = MAX(MA28_ELBOW_ROOM, ELBOW_ROOM)
+         END IF
+!      Allow MC19 scaling for the Jacobian.
+       SCALE_MATRIX = .FALSE.
+       IF (PRESENT(MC19_SCALING)) THEN
+          IF (MC19_SCALING) THEN
+!_______________________________________________________________________
+! *****MA48 build change point. Insert these statements.
+!         IF (USE_MA48_FOR_SPARSE) THEN
+!            MSG = 'MC29AD scaling is not available at this time.'
+!            CALL XERRDV(MSG,660,1,0,0,0,0,ZERO,ZERO)
+!            MSG = 'Execution will continue.'
+!            CALL XERRDV(MSG,660,1,0,0,0,0,ZERO,ZERO)
+!         END IF
+!_______________________________________________________________________
+             SCALE_MATRIX = MC19_SCALING
+!            SCALE_MATRIX = .FALSE.
+          END IF
+       END IF
+
+!_______________________________________________________________________
+! *****MA48 build change point. Replace above with these statements.
+!      IF (PRESENT(MC19_SCALING)) THEN
+!         IF (MC19_SCALING) THEN
+!            IF (USE_MA48_FOR_SPARSE) THEN
+!               MSG = 'Please note that this version uses MC19AD rather'
+!               CALL XERRDV(MSG,670,1,0,0,0,0,ZERO,ZERO)
+!               MSG = 'than MC29AD to sacle the iteration matrix.'
+!               CALL XERRDV(MSG,670,1,0,0,0,0,ZERO,ZERO)
+!               MSG = 'Execution will continue.'
+!               CALL XERRDV(MSG,670,1,0,0,0,0,ZERO,ZERO)
+!            END IF
+!            SCALE_MATRIX = MC19_SCALING
+!         END IF
+!       END IF
+!_______________________________________________________________________
+
+       END IF
+
+!       Define the number of event functions.
+        IF (PRESENT(NEVENTS)) THEN
+          IF (NEVENTS>0) THEN
+            NG = NEVENTS
+          ELSE
+            NG = 0
+          END IF
+        ELSE
+          NG = 0
+        END IF
+
+!       Process the constrained solution components.
+        IF (PRESENT(CONSTRAINED)) THEN
+          NDX = SIZE(CONSTRAINED)
+          IF (NDX<1) THEN
+            MSG = 'In SET_OPTS the size of CONSTRAINED < 1.'
+            CALL XERRDV(MSG,680,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          IF (.NOT.(PRESENT(CLOWER)) .OR. .NOT.(PRESENT(CUPPER))) THEN
+            MSG = 'In SET_OPTS the arrays CLOWER and CUPPER are'
+            CALL XERRDV(MSG,690,1,0,0,0,0,ZERO,ZERO)
+            MSG = 'not present.'
+            CALL XERRDV(MSG,690,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          IF (SIZE(CLOWER)/=NDX .OR. SIZE(CUPPER)/=NDX) THEN
+            MSG = 'In SET_OPTS the size of the solution bound arrays'
+            CALL XERRDV(MSG,700,1,0,0,0,0,ZERO,ZERO)
+            MSG = 'must be the same as the CONSTRAINED array.'
+            CALL XERRDV(MSG,700,2,0,0,0,0,ZERO,ZERO)
+          END IF
+!         Note: The contents of CONSTRAINED will be checked
+!         in subroutine DVODE after NEQ is known.
+          IF (ALLOCATED(IDX)) THEN
+            DEALLOCATE (IDX,LB,UB,STAT=IER)
+            CALL CHECK_STAT(IER,120)
+          END IF
+          ALLOCATE (IDX(NDX),LB(NDX),UB(NDX),STAT=IER)
+          CALL CHECK_STAT(IER,130)
+          IDX(1:NDX) = CONSTRAINED(1:NDX)
+          LB(1:NDX) = CLOWER(1:NDX)
+          UB(1:NDX) = CUPPER(1:NDX)
+          BOUNDS = .TRUE.
+        ELSE
+          IF (ALLOCATED(IDX)) THEN
+            DEALLOCATE (IDX,LB,UB,STAT=IER)
+            CALL CHECK_STAT(IER,140)
+          END IF
+          NDX = 0
+          BOUNDS = .FALSE.
+        END IF
+
+!       Is the Jacobian constant?
+        J_IS_CONSTANT = .FALSE.
+        J_HAS_BEEN_COMPUTED = .FALSE.
+
+!_______________________________________________________________________
+        IF (PRESENT(CONSTANT_JACOBIAN)) THEN
+           IF (CONSTANT_JACOBIAN) THEN
+              J_IS_CONSTANT = .TRUE.
+!_______________________________________________________________________
+! *****MA48 build change point. Insert these statements.
+              IF (USE_MA48_FOR_SPARSE .AND. SPARSE) THEN
+                 MSG = 'The constant Jacobian option is not yet available'
+                 CALL XERRDV(MSG,710,1,0,0,0,0,ZERO,ZERO)
+                 MSG = 'with the sparse MA48 solution option. Execution'
+                 CALL XERRDV(MSG,710,1,0,0,0,0,ZERO,ZERO)
+                 MSG = 'will continue.'
+                 CALL XERRDV(MSG,710,1,0,0,0,0,ZERO,ZERO)
+                 J_IS_CONSTANT = .FALSE.
+              END IF
+!_______________________________________________________________________
+           END IF
+        END IF
+! *****MA48 build change point. Replace above with these statements.
+!       IF (PRESENT(CONSTANT_JACOBIAN)) THEN
+!          IF (CONSTANT_JACOBIAN) THEN
+!             IF (USE_MA48_FOR_SPARSE) THEN
+!                MSG = 'The constant Jacobian option is not yet available'
+!                CALL XERRDV(MSG,720,1,0,0,0,0,ZERO,ZERO)
+!                MSG = 'with the sparse MA48 solution option. Execution'
+!                CALL XERRDV(MSG,720,1,0,0,0,0,ZERO,ZERO)
+!                MSG = 'will continue.'
+!                CALL XERRDV(MSG,720,1,0,0,0,0,ZERO,ZERO)
+!             END IF
+!          ELSE
+!             J_IS_CONSTANT = .TRUE.
+!          END IF
+!       END IF
+!_______________________________________________________________________
+        IF (J_IS_CONSTANT) THEN
+           IF (PRESENT(SAVE_JACOBIAN)) THEN
+              IF (.NOT.SAVE_JACOBIAN) THEN
+                 MSG = 'You have specified that the Jacobian is constant.'
+                 CALL XERRDV(MSG,730,1,0,0,0,0,ZERO,ZERO)
+                 MSG = 'In this case you cannot also specify that'
+                 CALL XERRDV(MSG,730,1,0,0,0,0,ZERO,ZERO)
+                 MSG = 'SAVE_JACOBIAN=.FALSE.'
+                 CALL XERRDV(MSG,730,2,0,0,0,0,ZERO,ZERO)
+              END IF
+           END IF
+           IF (PRESENT(USER_SUPPLIED_JACOBIAN)) THEN
+              IF (USER_SUPPLIED_JACOBIAN .AND. SPARSE) THEN
+                 MSG = 'You have specified that the Jacobian is constant'
+                 CALL XERRDV(MSG,740,1,0,0,0,0,ZERO,ZERO)
+                 MSG = 'and that you wish to supply an analytic Jacobian'
+                 CALL XERRDV(MSG,740,1,0,0,0,0,ZERO,ZERO)
+                 MSG = 'for a sparse problem. In this case your request'
+                 CALL XERRDV(MSG,740,1,0,0,0,0,ZERO,ZERO)
+                 MSG = 'to use a constant Jacobian will be ignored.'
+                 CALL XERRDV(MSG,740,1,0,0,0,0,ZERO,ZERO)
+                 MSG = 'Execution will continue.'
+                 CALL XERRDV(MSG,740,1,0,0,0,0,ZERO,ZERO)
+              END IF
+           END IF
+        END IF
+
+!       Load the user options into the solution structure.
+        OPTS%MF = MF
+        OPTS%METH = METH
+        OPTS%MITER = MITER
+        OPTS%MOSS = MOSS
+        OPTS%DENSE = DENSE
+        OPTS%BANDED = BANDED
+        OPTS%SPARSE = SPARSE
+        OPTS%NG = NG
+
+!       Process the miscellaneous options.
+
+!       Don't step past TCRIT variable.
+        IF (PRESENT(TCRIT)) THEN
+          RUSER(1) = TCRIT
+        ELSE
+          RUSER(1) = ZERO
+        END IF
+
+!       DVODE optional parameters.
+        IOPT = 1
+        IF (PRESENT(MAXORD)) THEN
+          IUSER(5) = MAXORD
+          IOPT = 1
+        END IF
+        IF (PRESENT(MXSTEP)) THEN
+          IUSER(6) = MXSTEP
+          IOPT = 1
+        END IF
+        IF (PRESENT(MXHNIL)) THEN
+          IUSER(7) = MXHNIL
+          IOPT = 1
+        END IF
+        IF (PRESENT(H0)) THEN
+          RUSER(5) = H0
+          IOPT = 1
+        END IF
+        IF (PRESENT(HMAX)) THEN
+          RUSER(6) = HMAX
+          IOPT = 1
+        END IF
+        IF (PRESENT(HMIN)) THEN
+          RUSER(7) = HMIN
+          IOPT = 1
+        END IF
+        IF (PRESENT(SETH)) THEN
+          RUSER(8) = SETH
+          IOPT = 1
+        END IF
+        IF (PRESENT(UPIVOT)) THEN
+          U_PIVOT = UPIVOT
+          IF (U_PIVOT<ZERO) U_PIVOT = ZERO
+          IF (U_PIVOT>ONE) U_PIVOT = ONE
+        ELSE
+          U_PIVOT = ONE
+        END IF
+!_______________________________________________________________________
+! *****MA48 build change point. Insert this statement.
+!       COPY_OF_U_PIVOT = U_PIVOT
+!_______________________________________________________________________
+        OPTS%IOPT = IOPT
+
+!       Define the error tolerances.
+
+!       Relative error tolerances.
+        IF (PRESENT(RELERR_VECTOR)) THEN
+          IF (MINVAL(RELERR_VECTOR)<ZERO) THEN
+            MSG = 'All components of RELERR_VECTOR must'
+            CALL XERRDV(MSG,750,1,0,0,0,0,ZERO,ZERO)
+            MSG = 'be nonnegative.'
+            CALL XERRDV(MSG,750,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          NRE = SIZE(RELERR_VECTOR)
+        ELSE
+          NRE = 1
+        END IF
+        ALLOCATE (OPTS%RTOL(NRE),STAT=IER)
+        CALL CHECK_STAT(IER,150)
+        IF (PRESENT(RELERR_VECTOR)) THEN
+          OPTS%RTOL = RELERR_VECTOR
+        ELSE IF (PRESENT(RELERR)) THEN
+          IF (RELERR<ZERO) THEN
+            MSG = 'RELERR must be nonnegative.'
+            CALL XERRDV(MSG,760,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          OPTS%RTOL = RELERR
+        ELSE
+          IF (ALLOW_DEFAULT_TOLS) THEN
+             OPTS%RTOL = 1.0E-4_WP
+             MSG = 'By not specifying RELERR, you have elected to use a default'
+             CALL XERRDV(MSG,770,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'relative error tolerance equal to 1.0D-4. Please be aware a'
+             CALL XERRDV(MSG,770,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'tolerance this large is not appropriate for all problems.'
+             CALL XERRDV(MSG,770,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'Execution will continue'
+             CALL XERRDV(MSG,770,1,0,0,0,0,ZERO,ZERO)
+          ELSE
+             MSG = 'You must specify a nonzero relative error tolerance.'
+             CALL XERRDV(MSG,780,2,0,0,0,0,ZERO,ZERO)
+          END IF
+        END IF
+
+!       Absolute error tolerances.
+        IF (PRESENT(ABSERR_VECTOR)) THEN
+          IF (MINVAL(ABSERR_VECTOR)<ZERO) THEN
+            MSG = 'All components of ABSERR_VECTOR must'
+            CALL XERRDV(MSG,790,1,0,0,0,0,ZERO,ZERO)
+            MSG = 'be nonnegative.'
+            CALL XERRDV(MSG,790,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          NAE = SIZE(ABSERR_VECTOR)
+        ELSE
+          NAE = 1
+        END IF
+        ALLOCATE (OPTS%ATOL(NAE),STAT=IER)
+        CALL CHECK_STAT(IER,160)
+        IF (PRESENT(ABSERR_VECTOR)) THEN
+          OPTS%ATOL = ABSERR_VECTOR
+        ELSE IF (PRESENT(ABSERR)) THEN
+          IF (ABSERR<ZERO) THEN
+            MSG = 'ABSERR must be nonnegative.'
+            CALL XERRDV(MSG,800,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          OPTS%ATOL = ABSERR
+        ELSE
+          IF (ALLOW_DEFAULT_TOLS) THEN
+             OPTS%ATOL = 1D-6
+             MSG = 'By not specifying ABSERR, you have elected to use a default'
+             CALL XERRDV(MSG,810,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'absolute error tolerance equal to 1.0D-6. Please be aware a'
+             CALL XERRDV(MSG,810,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'tolerance this large is not appropriate for all problems.'
+             CALL XERRDV(MSG,810,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'Execution will continue'
+             CALL XERRDV(MSG,810,1,0,0,0,0,ZERO,ZERO)
+          ELSE
+             MSG = 'You must specify a vector of absolute error tolerances or'
+             CALL XERRDV(MSG,820,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'a scalar error tolerance. It is recommended that you use'
+             CALL XERRDV(MSG,820,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'a vector of absolute error tolerances.'
+             CALL XERRDV(MSG,820,2,0,0,0,0,ZERO,ZERO)
+          END IF
+        END IF
+
+!       ITOL error tolerance flag.
+!          ITOL   RTOL     ATOL            EWT(i)
+!            1   scalar   scalar  RTOL*ABS(Y(i)) + ATOL
+!            2   scalar   array   RTOL*ABS(Y(i)) + ATOL(i)
+!            3   array    scalar  RTOL(i)*ABS(Y(i)) + ATOL
+!            4   array    array   RTOL(i)*ABS(Y(i)) + ATOL(i)
+        IF (PRESENT(ABSERR_VECTOR)) THEN
+          IF (PRESENT(RELERR_VECTOR)) THEN
+            OPTS%ITOL = 4
+          ELSE
+            OPTS%ITOL = 2
+          END IF
+        ELSE
+          IF (PRESENT(RELERR_VECTOR)) THEN
+            OPTS%ITOL = 3
+          ELSE
+            OPTS%ITOL = 1
+          END IF
+        END IF
+        RETURN
+
+  END FUNCTION SET_OPTS
+!_______________________________________________________________________
+
+      SUBROUTINE GET_STATS(RSTATS,ISTATS,NUMEVENTS,JROOTS)
+! ..
+! Return the user portions of the DVODE RUSER and IUSER arrays;
+! and if root finding is being done, return the JROOT vector
+! (not called by DVODE_F90).
+! ..
+! Available Integration Statistics.
+! HU      RUSER(11) The step size in t last used (successfully).
+! HCUR    RUSER(12) The step size to be attempted on the next step.
+! TCUR    RUSER(13) The current value of the independent variable
+!                   which the solver has actually reached, i.e. the
+!                   current internal mesh point in t. In the output,
+!                   TCUR will always be at least as far from the
+!                   initial value of t as the current argument T,
+!                   but may be farther (if interpolation was done).
+! TOLSF   RUSER(14) A tolerance scale factor, greater than 1.0,
+!                   computed when a request for too much accuracy was
+!                   detected (ISTATE = -3 if detected at the start of
+!                   the problem, ISTATE = -2 otherwise). If ITOL is
+!                   left unaltered but RTOL and ATOL are uniformly
+!                   scaled up by a factor of TOLSF for the next call,
+!                   then the solver is deemed likely to succeed.
+!                   (The user may also ignore TOLSF and alter the
+!                   tolerance parameters in any other way appropriate.)
+! NST     IUSER(11) The number of steps taken for the problem so far.
+! NFE     IUSER(12) The number of f evaluations for the problem so far.
+! NJE     IUSER(13) The number of Jacobian evaluations so far.
+! NQU     IUSER(14) The method order last used (successfully).
+! NQCUR   IUSER(15) The order to be attempted on the next step.
+! IMXER   IUSER(16) The index of the component of largest magnitude in
+!                   the weighted local error vector (e(i)/EWT(i)),
+!                   on an error return with ISTATE = -4 or -5.
+! LENRW   IUSER(17) The length of RUSER actually required.
+!                   This is defined on normal returns and on an illegal
+!                   input return for insufficient storage.
+! LENIW   IUSER(18) The length of IUSER actually required.
+!                   This is defined on normal returns and on an illegal
+!                   input return for insufficient storage.
+! NLU     IUSER(19) The number of matrix LU decompositions so far.
+! NNI     IUSER(20) The number of nonlinear (Newton) iterations so far.
+! NCFN    IUSER(21) The number of convergence failures of the nonlinear
+!                   solver so far.
+! NETF    IUSER(22) The number of error test failures of the integrator
+!                   so far.
+! MA28AD_CALLS      IUSER(23) The number of calls made to MA28AD
+! MA28BD_CALLS      IUSER(24) The number of calls made to MA28BD
+! MA28CD_CALLS      IUSER(25) The number of calls made to MA28CD
+! MC19AD_CALLS      IUSER(26) The number of calls made to MC19AD
+! IRNCP             IUSER(27) The number of compressions done on array JAN
+! ICNCP             IUSER(28) The number of compressions done on array ICN
+! MINIRN            IUSER(29) Minimum size for JAN array
+! MINICN            IUSER(30) Minimum size for ICN array
+! JROOTS  JROOTS    Optional array of component indices for components
+!                   having a zero at the current time
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, OPTIONAL, INTENT (IN) :: NUMEVENTS
+! ..
+! .. Array Arguments ..
+        REAL (WP), INTENT (INOUT) :: RSTATS(22)
+        INTEGER, INTENT (INOUT) :: ISTATS(31)
+        INTEGER, OPTIONAL, INTENT (INOUT) :: JROOTS(:)
+! ..
+! .. Local Scalars ..
+        CHARACTER (80) :: MSG
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ALLOCATED, PRESENT, SIZE
+! ..
+!   Caution:
+!   It is assumed that the size of RSTATS is 22.
+!   It is assumed that the size of ISTATS is 31.
+!   Refer to the documentation prologue for a description
+!   the optional output contained in RUSER and IUSER.
+! ..
+! .. FIRST EXECUTABLE STATEMENT GET_STATS
+! ..
+!       Check if DVODE_F90 has been called yet.
+        IF (.NOT.OPTS_CALLED) THEN
+          MSG = 'You have called GET_STATS before'
+          CALL XERRDV(MSG,830,1,0,0,0,0,ZERO,ZERO)
+          MSG = 'calling DVODE_F90 the first time.'
+          CALL XERRDV(MSG,830,1,0,0,0,0,ZERO,ZERO)
+          RETURN
+        END IF
+
+!       Check that the arrays are large enough to hold the statistics.
+!       Some compilers don't like this use of SIZE.
+!       IF (SIZE(RSTATS)<LRWUSER) THEN
+!       IF (SIZE(RSTATS)<31) THEN
+!         MSG = 'In GET_STATS, RSTATS array is too small.'
+!         CALL XERRDV(MSG,840,1,0,0,0,0,ZERO,ZERO)
+!         RETURN
+!       END IF
+!       IF (SIZE(ISTATS)<LIWUSER) THEN
+!       IF (SIZE(ISTATS)<31) THEN
+!         MSG = 'In GET_STATS, ISTATS array is too small.'
+!         CALL XERRDV(MSG,850,1,0,0,0,0,ZERO,ZERO)
+!         RETURN
+!       END IF
+
+!       Copy the statistics.
+        RSTATS(1:LRWUSER) = RUSER(1:LRWUSER)
+!       ISTATS(1:LIWUSER) = IUSER(1:LIWUSER)
+        ISTATS(1:22) = IUSER(1:22)
+        ISTATS(23) = MA28AD_CALLS
+        ISTATS(24) = MA28BD_CALLS
+        ISTATS(25) = MA28CD_CALLS
+!_______________________________________________________________________
+! *****MA48 build change point.Replace the three previous statements
+!      with these statements.
+!       IF (USE_MA48_FOR_SPARSE) THEN
+!          ISTATS(23) = MA48AD_CALLS
+!          ISTATS(24) = MA48BD_CALLS
+!          ISTATS(25) = MA48CD_CALLS
+!       ELSE
+!          ISTATS(23) = MA28AD_CALLS
+!          ISTATS(24) = MA28BD_CALLS
+!          ISTATS(25) = MA28CD_CALLS
+!       END IF
+!_______________________________________________________________________
+        ISTATS(26) = MC19AD_CALLS
+        ISTATS(27) = IRNCP
+        ISTATS(28) = ICNCP
+!       ISTATS(29) = MINIRN
+!       ISTATS(30) = MINICN
+!       ISTATS(31) = NZ_ALL
+        ISTATS(29) = MAX_MINIRN
+        ISTATS(30) = MAX_MINICN
+        ISTATS(31) = MAX_NNZ
+!       If root finding is being used return the JROOT vector.
+        IF (PRESENT(NUMEVENTS)) THEN
+          IF (PRESENT(JROOTS)) THEN
+            IF (ALLOCATED(JROOT)) THEN
+              JROOTS(1:NUMEVENTS) = JROOT(1:NUMEVENTS)
+            END IF
+          END IF
+        END IF
+        RETURN
+
+      END SUBROUTINE GET_STATS
+!_______________________________________________________________________
+
+      SUBROUTINE USERSETS_IAJA(IAUSER,NIAUSER,JAUSER,NJAUSER)
+! ..
+! Approximate or allow the user to supply the sparse Jacobian
+! structure pointer arrays IA and JA directly for DVODE_F90
+! (not called by DVODE_F90).
+! ..
+! Used if the user wishes to supply the sparsity structure
+! directly.
+!     Caution:
+!     If it is called, USERSETS_IAJA must be called after the
+!     call to SET_OPTS.
+!     Usage:
+!     CALL SET_IAJA(IAUSER,NIAUSER,JAUSER,NJAUSER)
+!       In this case, IAUSER of length NIAUSER will be used for
+!       IA; and JAUSER of length NJAUSER will be used for JA.
+!     Arguments:
+!     IAUSER  = user supplied IA array
+!     NIAUSER = length of IAUSER array
+!     JAUSER  = user supplied JA vector
+!     NJAUSER = length of JAUSER array
+!     Results:
+!     IA(IADIM), IADIM, JA(JADIM), JAMIN, SPARSE
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: NIAUSER, NJAUSER
+! ..
+! .. Array Arguments ..
+        INTEGER, INTENT (IN) :: IAUSER(NIAUSER), JAUSER(NJAUSER)
+! ..
+! .. Local Scalars ..
+        INTEGER :: JER
+        CHARACTER (80) :: MSG
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ALLOCATED
+! ..
+! .. FIRST EXECUTABLE STATEMENT USERSETS_IAJA
+! ..
+!       Check that SET_OPTS has been called:
+        IF (.NOT.OPTS_CALLED) THEN
+          MSG = 'You have not called SET_OPTS before'
+          CALL XERRDV(MSG,860,1,0,0,0,0,ZERO,ZERO)
+          MSG = 'calling USERSETS_IAJA.'
+          CALL XERRDV(MSG,860,2,0,0,0,0,ZERO,ZERO)
+        END IF
+        SPARSE = .FALSE.
+        IAJA_CALLED = .FALSE.
+        IADIM = NIAUSER
+        JADIM = NJAUSER
+        IF (ALLOCATED(IA)) THEN
+          DEALLOCATE (IA,JA,STAT=JER)
+          CALL CHECK_STAT(JER,170)
+        END IF
+        ALLOCATE (IA(IADIM),JA(JADIM),STAT=JER)
+        IF (JER/=0) THEN
+          MSG = 'Check your values of NIAUSER and NJAUSER'
+          CALL XERRDV(MSG,870,1,0,0,0,0,ZERO,ZERO)
+          MSG = 'in your call to USERSETS_IAJA.'
+          CALL XERRDV(MSG,870,2,0,0,0,0,ZERO,ZERO)
+        END IF
+        CALL CHECK_STAT(JER,180)
+        IA(1:IADIM) = IAUSER(1:IADIM)
+        JA(1:JADIM) = JAUSER(1:JADIM)
+!       Set the flags to indicate to DVODE_F90 that IA and JA have
+!       been loaded successfully.
+        SPARSE = .TRUE.
+        IAJA_CALLED = .TRUE.
+        RETURN
+
+      END SUBROUTINE USERSETS_IAJA
+!_______________________________________________________________________
+
+      SUBROUTINE SET_IAJA(DFN,NEQ,T,Y,FMIN,NTURB,DTURB,IAUSER,NIAUSER, &
+        JAUSER,NJAUSER)
+! ..
+!     Approximate or allow the user to supply the sparse Jacobian
+!     structure pointer arrays IA and JA for DVODE_F90 (not called
+!     by DVODE_F90).
+! ..
+!     Caution:
+!     If it is called, SET_IAJA must be called after the call to
+!     SET_OPTS.
+!     Usage:
+!     SET_IAJA may be called in one of two ways:
+!     CALL SET_IAJA(DFN,NEQ,T,Y,FMIN,NTURB,DTURB)
+!       In this case IA and JA will be determined using calls
+!       to your derivative routine DFN.
+!     CALL SET_IAJA(DFN,NEQ,T,Y,FMIN,NTURB,DTURB,IAUSER,NIAUSER, &
+!       JAUSER,NJAUSER)
+!       In this case, IAUSER of length NIAUSER will be used for
+!       IA; and JAUSER of length NJAUSER will be used for JA.
+!       T, Y, FMIN, NTURB, and DTURB will be ignored (though
+!       they must be present in the argument list).
+!
+!     Arguments:
+!     DFN     = VODE derivative subroutine
+!     NEQ     = Number of odes
+!     T       = independent variable t
+!     Y       = solution y(t)
+!     FMIN    = Jacobian threshold value. Elements of the Jacobian
+!               with magnitude smaller than FMIN will be ignored.
+!               FMIN will be ignored if it is less than or equal
+!               to ZERO.
+!     NTURB   = Perturbation flag. If NTURB=1, component I of Y
+!               will be perturbed by by 1.01D0.
+!               If NTURB=NEQ, component I of Y will be perturbed
+!               by ONE + DTURB(I).
+!     DTURB   = perturbation vector of length 1 or NEQ.
+!     If these four optional parameters are present, IAUSER and JAUSER
+!     will be copied to IA and JA rather than making derivative calls
+!     to approximate IA and JA:
+!     IAUSER  = user supplied IA array
+!     NIAUSER = length of IAUSER array
+!     JAUSER  = user supplied JA vector
+!     NJAUSER = length of JAUSER array
+!     Results:
+!     IA(IADIM), IADIM, IMIN, JA(JADIM), JAMIN, JMIN, SPARSE
+!     Allocated but free for further use by DVODE_F90:
+!     FTEMP(NEQ), FPTEMP(NEQ)
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        REAL (WP), INTENT (IN) :: FMIN, T
+        INTEGER, INTENT (IN) :: NEQ, NTURB
+        INTEGER, OPTIONAL, INTENT (IN) :: NIAUSER, NJAUSER
+! ..
+! .. Array Arguments ..
+        REAL (WP), INTENT (INOUT) :: DTURB(*), Y(NEQ)
+        INTEGER, OPTIONAL, INTENT (IN) :: IAUSER(:), JAUSER(:)
+! ..
+! .. Subroutine Arguments ..
+        EXTERNAL DFN
+! ..
+! .. Local Scalars ..
+        REAL (WP) :: AIJ, DTRB, EMIN, RJ, YJ, YJSAVE, YPJ
+        INTEGER :: I, J, JER, JP1, K, MTURB
+        CHARACTER (80) :: MSG
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, ALLOCATED, EPSILON, MAX, MIN, PRESENT
+! ..
+! .. FIRST EXECUTABLE STATEMENT SET_IAJA
+! ..
+        SPARSE = .FALSE.
+        IAJA_CALLED = .FALSE.
+        IF (NEQ<1) GOTO 30
+
+!       Check if the user is supplying the IA and JA arrays.
+        IF (PRESENT(IAUSER)) THEN
+!         If IAUSER is present, so must be NIAUSER, JAUSER,
+!         and NJAUSER.
+          IF (.NOT.(PRESENT(NIAUSER))) GOTO 30
+          IF (.NOT.(PRESENT(JAUSER))) GOTO 30
+          IF (.NOT.(PRESENT(NJAUSER))) GOTO 30
+          IF (NIAUSER<NEQ+1 .OR. NJAUSER<1) GOTO 30
+          IADIM = MIN(NIAUSER,NEQ+1)
+          IMIN = IADIM
+          JADIM = NJAUSER
+          JMIN = NJAUSER
+          IF (ALLOCATED(IA)) THEN
+            DEALLOCATE (IA,JA,FTEMP,FPTEMP,STAT=JER)
+            CALL CHECK_STAT(JER,190)
+          END IF
+          ALLOCATE (IA(IADIM),JA(JADIM),FTEMP(NEQ),FPTEMP(NEQ),STAT=JER)
+          CALL CHECK_STAT(JER,200)
+          IA(1:IADIM) = IAUSER(1:IADIM)
+          JA(1:JADIM) = JAUSER(1:JADIM)
+          GOTO 40
+        END IF
+
+!       Determine IA and JA using derivative calls.
+
+!       Jacobian element magnitude threshold value.
+        IF (FMIN>ZERO) THEN
+          EMIN = MAX(FMIN,ZERO)
+        ELSE
+          EMIN = ZERO
+        END IF
+
+!       Solution perturbation factors.
+        IF (NTURB>0) THEN
+          IF (NTURB<1 .OR. (NTURB>1 .AND. NTURB/=NEQ)) GOTO 30
+          IF (NTURB==NEQ) THEN
+            DO I = 1, NEQ
+              DTURB(I) = MAX(DTURB(I),HUNDRETH)
+            END DO
+          ELSE
+            MTURB = 1
+            DTRB = MAX(DTURB(1),HUNDRETH)
+          END IF
+        ELSE
+          MTURB = 1
+          DTRB = HUNDRETH
+        END IF
+
+        JADIM = MIN(NEQ*NEQ,MAX(1000,NZ_SWAG))
+        ADDTOJA = MAX(1000,NZ_SWAG)
+!       Loop point for array allocation.
+10      CONTINUE
+        IF (ALLOCATED(IA)) THEN
+          DEALLOCATE (IA,JA,FTEMP,FPTEMP,STAT=JER)
+          CALL CHECK_STAT(JER,210)
+        END IF
+        IMIN = NEQ + 1
+        IADIM = NEQ + 1
+        JMIN = 0
+        JADIM = JADIM + ADDTOJA
+        IF (JADIM>MAX_ARRAY_SIZE) THEN
+          MSG = 'Maximum array size exceeded. Stopping.'
+          CALL XERRDV(MSG,880,2,0,0,0,0,ZERO,ZERO)
+        END IF
+        ALLOCATE (IA(IADIM),JA(JADIM),FTEMP(NEQ),FPTEMP(NEQ),STAT=JER)
+        CALL CHECK_STAT(JER,220)
+
+!       f = y'(t,y).
+        CALL DFN(NEQ,T,Y,FTEMP)
+        IA(1) = 1
+        K = 1
+
+!       Calculate unit roundoff and powers of it used if JACSP
+!       is used.
+        UROUND = EPSILON(ONE)
+
+!       Successively perturb each of the solution components and
+!       calculate the corresponding derivatives.
+        DO J = 1, NEQ
+          IF (MTURB==NEQ) DTRB = DTURB(J)
+          YJ = Y(J)
+          YJSAVE = YJ
+          IF (ABS(YJ)<=ZERO) YJ = HUN*UROUND
+          YPJ = YJ*(ONE+DTRB)
+          RJ = ABS(YPJ-YJ)
+          IF (ABS(RJ)<=ZERO) RJ = HUN*UROUND
+          IF (ABS(RJ)<=ZERO) GOTO 30
+          Y(J) = YPJ
+          CALL DFN(NEQ,T,Y,FPTEMP)
+          DO 20 I = 1, NEQ
+!           Estimate the Jacobian element.
+            AIJ = ABS(FPTEMP(I)-FTEMP(I))/RJ
+            IF ((AIJ<=EMIN) .AND. (I/=J)) GOTO 20
+!           Need more storage for JA.
+            IF (K>JADIM) GOTO 10
+            JMIN = K
+            JA(K) = I
+            K = K + 1
+20        CONTINUE
+          JP1 = J + 1
+          IA(JP1) = K
+          Y(J) = YJSAVE
+        END DO
+        GOTO 40
+30      CONTINUE
+        MSG = 'An error occurred in subroutine SET_IAJA.'
+        CALL XERRDV(MSG,890,2,0,0,0,0,ZERO,ZERO)
+
+40      CONTINUE
+!       Set the flags to indicate to DVODE_F90 that IA and JA have
+!       been calculated successfully.
+        SPARSE = .TRUE.
+        IAJA_CALLED = .TRUE.
+
+!       Trim JA.
+        ALLOCATE (JATEMP(JMIN),STAT=JER)
+        CALL CHECK_STAT(JER,230)
+        JATEMP(1:JMIN) = JA(1:JMIN)
+        DEALLOCATE (JA,STAT=JER)
+        CALL CHECK_STAT(JER,240)
+        ALLOCATE (JA(JMIN),STAT=JER)
+        CALL CHECK_STAT(JER,250)
+        JA(1:JMIN) = JATEMP(1:JMIN)
+        DEALLOCATE (JATEMP,STAT=JER)
+        CALL CHECK_STAT(JER,260)
+        JADIM = JMIN
+        RETURN
+
+      END SUBROUTINE SET_IAJA
+!_______________________________________________________________________
+
+      SUBROUTINE DVODE(F,NEQ,Y,T,TOUT,ITASK,ISTATE,OPTS,JAC,GFUN)
+! ..
+! This is the core driver (modified original DVODE.F driver).
+! ..
+! The documentation prologue was moved nearer the top of the file.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Structure Arguments ..
+        TYPE (VODE_OPTS) :: OPTS
+! ..
+! .. Scalar Arguments ..
+        REAL (WP), INTENT (INOUT) :: T, TOUT
+        INTEGER, INTENT (INOUT) :: ISTATE
+        INTEGER, INTENT (IN) :: ITASK, NEQ
+! ..
+! .. Array Arguments ..
+        REAL (WP), INTENT (INOUT) :: Y(*)
+! ..
+! .. Subroutine Arguments ..
+        EXTERNAL F, GFUN, JAC
+! ..
+! .. Local Scalars ..
+        REAL (WP) :: ATOLI, BIG, EWTI, H0, HMAX, HMX, RH, RTOLI, SIZEST, &
+          TCRIT, TNEXT, TOLSF, TP
+        INTEGER :: I, IER, IFLAG, IMXER, IOPT, IPCUTH, IRFP, IRT, ITOL, JCO, &
+          JER, KGO, LENIW, LENJ, LENP, LENRW, LENWM, LF0, MBAND, MF, MFA, ML, &
+          MU, NG, NITER, NSLAST
+        LOGICAL :: IHIT
+        CHARACTER (80) :: MSG
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, ALLOCATED, EPSILON, MAX, MIN, SIGN, SQRT
+! ..
+! The following internal PRIVATE variable blocks contain variables which
+! are communicated between subroutines in the DVODE package, or which
+! are to be saved between calls to DVODE.
+! In each block, real variables precede integers.
+! The variables stored in the internal PRIVATE variable blocks are as
+! follows:
+! ACNRM  = Weighted r.m.s. norm of accumulated correction vectors.
+! CCMXJ  = Threshhold on DRC for updating the Jacobian. (See DRC.)
+! CONP   = The saved value of TQ(5).
+! CRATE  = Estimated corrector convergence rate constant.
+! DRC    = Relative change in H*RL1 since last DVJAC call.
+! EL     = Real array of integration coefficients. See DVSET.
+! ETA    = Saved tentative ratio of new to old H.
+! ETAMAX = Saved maximum value of ETA to be allowed.
+! H      = The step size.
+! HMIN   = The minimum absolute value of the step size H to be used.
+! HMXI   = Inverse of the maximum absolute value of H to be used.
+!          HMXI = 0.0 is allowed and corresponds to an infinite HMAX.
+! HNEW   = The step size to be attempted on the next step.
+! HSCAL  = Stepsize in scaling of YH array.
+! PRL1   = The saved value of RL1.
+! RC     = Ratio of current H*RL1 to value on last DVJAC call.
+! RL1    = The reciprocal of the coefficient EL(2).
+! TAU    = Real vector of past NQ step sizes, length 13.
+! TQ     = A real vector of length 5 in which DVSET stores constants
+!          used for the convergence test, the error test, and the
+!          selection of H at a new order.
+! TN     = The independent variable, updated on each step taken.
+! UROUND = The machine unit roundoff. The smallest positive real number
+!          such that  1.0 + UROUND /= 1.0
+! ICF    = Integer flag for convergence failure in DVNLSD:
+!            0 means no failures.
+!            1 means convergence failure with out of date Jacobian
+!                   (recoverable error).
+!            2 means convergence failure with current Jacobian or
+!                   singular matrix (unrecoverable error).
+! INIT   = Saved integer flag indicating whether initialization of the
+!          problem has been done (INIT = 1) or not.
+! IPUP   = Saved flag to signal updating of Newton matrix.
+! JCUR   = Output flag from DVJAC showing Jacobian status:
+!            JCUR = 0 means J is not current.
+!            JCUR = 1 means J is current.
+! JSTART = Integer flag used as input to DVSTEP:
+!            0  means perform the first step.
+!            1  means take a new step continuing from the last.
+!           -1  means take the next step with a new value of MAXORD,
+!               HMIN, HMXI, N, METH, MITER, and/or matrix parameters.
+!          On return, DVSTEP sets JSTART = 1.
+! JSV    = Integer flag for Jacobian saving, = sign(MF).
+! KFLAG  = A completion code from DVSTEP with the following meanings:
+!               0      the step was successful.
+!              -1      the requested error could not be achieved.
+!              -2      corrector convergence could not be achieved.
+!              -3, -4  fatal error in DVNLSD(can not occur here).
+! KUTH   = Input flag to DVSTEP showing whether H was reduced by the
+!          driver. KUTH = 1 if H was reduced, = 0 otherwise.
+! L      = Integer variable, NQ + 1, current order plus one.
+! LMAX   = MAXORD + 1 (used for dimensioning).
+! LOCJS  = A pointer to the saved Jacobian, whose storage starts at
+!          WM(LOCJS), if JSV = 1.
+! LYH    = Saved integer pointer to segments of RWORK and IWORK.
+! MAXORD = The maximum order of integration method to be allowed.
+! METH/MITER = The method flags. See MF.
+! MSBJ   = The maximum number of steps between J evaluations, = 50.
+! MXHNIL = Saved value of optional input MXHNIL.
+! MXSTEP = Saved value of optional input MXSTEP.
+! N      = The number of first-order ODEs, = NEQ.
+! NEWH   = Saved integer to flag change of H.
+! NEWQ   = The method order to be used on the next step.
+! NHNIL  = Saved counter for occurrences of T + H = T.
+! NQ     = Integer variable, the current integration method order.
+! NQNYH  = Saved value of NQ*NYH.
+! NQWAIT = A counter controlling the frequency of order changes.
+!          An order change is about to be considered if NQWAIT = 1.
+! NSLJ   = The number of steps taken as of the last Jacobian update.
+! NSLP   = Saved value of NST as of last Newton matrix update.
+! NYH    = Saved value of the initial value of NEQ.
+! HU     = The step size in t last used.
+! NCFN   = Number of nonlinear convergence failures so far.
+! NETF   = The number of error test failures of the integrator so far.
+! NFE    = The number of f evaluations for the problem so far.
+! NJE    = The number of Jacobian evaluations so far.
+! NLU    = The number of matrix LU decompositions so far.
+! NNI    = Number of nonlinear iterations so far.
+! NQU    = The method order last used.
+! NST    = The number of steps taken for the problem so far.
+! Block 0.
+! Retrieve the necessary flags from the OPTIONS structure and manage
+! the storage allocation.
+! ..
+! .. FIRST EXECUTABLE STATEMENT DVODE
+! ..
+!       Retrieve the local flags from the options structure.
+        IOPT = OPTS%IOPT
+        ITOL = OPTS%ITOL
+        MF = OPTS%MF
+        METH = OPTS%METH
+        MITER = OPTS%MITER
+        MOSS = OPTS%MOSS
+        NG = OPTS%NG
+
+!       Allocate the necessary storage for RWORK and IWORK. (Assume that
+!       both or neither of the arrays are allocated.)
+
+!       If we are starting a new problem, deallocate the old RWORK and
+!       IWORK arrays if they were allocated in a previous call. Also
+!       manage the event residual arrays.
+
+        IF (ISTATE==1) THEN
+          IF (ALLOCATED(DTEMP)) THEN
+            DEALLOCATE (DTEMP,YTEMP,STAT=JER)
+            CALL CHECK_STAT(JER,270)
+          END IF
+          IF (ALLOCATED(RWORK)) THEN
+            DEALLOCATE (RWORK,IWORK,ACOR,SAVF,EWT,WM,STAT=JER)
+            CALL CHECK_STAT(JER,280)
+          END IF
+          IF (ALLOCATED(JROOT)) THEN
+            DEALLOCATE (JROOT,G0,G1,GX,STAT=JER)
+            CALL CHECK_STAT(JER,290)
+          END IF
+          IF (ALLOCATED(YMAX)) THEN
+            DEALLOCATE (YMAX,STAT=JER)
+            CALL CHECK_STAT(JER,300)
+          END IF
+        END IF
+
+!       If the user has made changes and called DVODE_F90 with ISTATE=3,
+!       temporarily save the necessary portion of the Nordsieck array
+!       and then release RWORK and IWORK. Also, save the contents of
+!       the WM array and release WM. Note: ACOR, SAVF, and EWT do not
+!       need to be saved.
+
+        IF (ISTATE==3) THEN
+          IF (IOPT/=1) THEN
+            MAXORD = MORD(METH)
+          ELSE
+            MAXORD = IUSER(5)
+            IF (MAXORD<0) GOTO 520
+            IF (MAXORD==0) MAXORD = 100
+            MAXORD = MIN(MAXORD,MORD(METH))
+          END IF
+          IF (MAXORD<NQ) THEN
+!           If MAXORD is less than NQ, save column NQ+2 of YH for
+!           later use.
+            IF (ALLOCATED(YHNQP2)) THEN
+              DEALLOCATE (YHNQP2,STAT=JER)
+              CALL CHECK_STAT(JER,310)
+            END IF
+            ALLOCATE (YHNQP2(NEQ),STAT=JER)
+            CALL CHECK_STAT(JER,320)
+            CALL DCOPY_F90(NEQ,RWORK(LYH+NYH*(MAXORD+1)),1,YHNQP2,1)
+          END IF
+          LYHTEMP = MIN((PREVIOUS_MAXORD+1)*NYH+LYH-1,(MAXORD+1)*NYH+LYH-1)
+          ALLOCATE (YHTEMP(LYHTEMP),STAT=JER)
+          CALL CHECK_STAT(JER,330)
+!         Save YH.
+          YHTEMP(1:LYHTEMP) = RWORK(1:LYHTEMP)
+!         Save WM.
+          LWMTEMP = LWMDIM
+          ALLOCATE (WMTEMP(LWMTEMP),STAT=JER)
+          CALL CHECK_STAT(JER,340)
+          WMTEMP(1:LWMTEMP) = WM(1:LWMTEMP)
+          IF (ALLOCATED(DTEMP)) THEN
+             DEALLOCATE (DTEMP,YTEMP,STAT=JER)
+             CALL CHECK_STAT(JER,350)
+          END IF
+          DEALLOCATE (RWORK,IWORK,YMAX,ACOR,SAVF,EWT,WM,STAT=JER)
+          CALL CHECK_STAT(JER,360)
+        END IF
+
+!     Allocate the RWORK and WM work arrays if they haven't already
+!     been allocated in a previous call.
+!     LRW = 20 + (MAXORD + 1) * NEQ
+!     LWMDIM =     
+!            0                        for MF = 10,
+!            2 * NEQ**2               for MF = 11 or 12,
+!            NEQ**2                   for MF = -11 or -12,
+!            NEQ                      for MF = 13,
+!            (3*ML + 2*MU + 2) * NEQ  for MF = 14 or 15,
+!            (2*ML + MU + 1) * NEQ    for MF = -14 or -15,
+!            0                        for MF = 16 or 17,
+!            0                        for MF = -16 or -17,
+!            0                        for MF = 20,
+!            2 * NEQ**2               for MF = 21 or 22,
+!            NEQ**2                   for MF = -21 or -22,
+!            NEQ                      for MF = 23,
+!            (3*ML + 2*MU + 2) * NEQ  for MF = 24 or 25,
+!            (2*ML + MU + 1) * NEQ    for MF = -24 or -25,
+!            0                        for MF = 26 or 27,
+!            0                        for MF = -26 or -27.
+        IF (ALLOCATED(RWORK)) THEN
+        ELSE
+          MFA = ABS(MF)
+          IF (IOPT/=1) THEN
+            MAXORD = MORD(METH)
+          ELSE
+            MAXORD = IUSER(5)
+            IF (MAXORD<0) GOTO 520
+            IF (MAXORD==0) MAXORD = 100
+            MAXORD = MIN(MAXORD,MORD(METH))
+          END IF
+          LRW = LRWUSER + (MAXORD+1)*NEQ
+!        IF (MITER == 0) LRW = LRW - 2
+          LRW = LRW - 2
+          IF (MF==10) THEN
+            LWMDIM = 0
+          ELSE IF (MF==11 .OR. MF==12) THEN
+            LWMDIM = 2*NEQ**2
+          ELSE IF (MF==-11 .OR. MF==-12) THEN
+            LWMDIM = NEQ**2
+          ELSE IF (MF==13) THEN
+            LWMDIM = NEQ
+          ELSE IF (MF==14 .OR. MF==15) THEN
+            ML = IUSER(1)
+            MU = IUSER(2)
+            IF (ML<0 .OR. ML>=NEQ) GOTO 500
+            IF (MU<0 .OR. MU>=NEQ) GOTO 510
+            LWMDIM = (3*ML+2*MU+2)*NEQ
+          ELSE IF (MF==-14 .OR. MF==-15) THEN
+            ML = IUSER(1)
+            MU = IUSER(2)
+            IF (ML<0 .OR. ML>=NEQ) GOTO 500
+            IF (MU<0 .OR. MU>=NEQ) GOTO 510
+            LWMDIM = (2*ML+MU+1)*NEQ
+          ELSE IF (MF==16 .OR. MF==17) THEN
+            LWMDIM = 0
+          ELSE IF (MF==-16 .OR. MF==-17) THEN
+            LWMDIM = 0
+          ELSE IF (MF==20) THEN
+            LWMDIM = 0
+          ELSE IF (MF==21 .OR. MF==22) THEN
+            LWMDIM = 2*NEQ**2
+          ELSE IF (MF==-21 .OR. MF==-22) THEN
+            LWMDIM = NEQ**2
+          ELSE IF (MF==23) THEN
+            LWMDIM = NEQ
+          ELSE IF (MF==24 .OR. MF==25) THEN
+            ML = IUSER(1)
+            MU = IUSER(2)
+            IF (ML<0 .OR. ML>=NEQ) GOTO 500
+            IF (MU<0 .OR. MU>=NEQ) GOTO 510
+            LWMDIM = (3*ML+2*MU+2)*NEQ
+          ELSE IF (MF==-24 .OR. MF==-25) THEN
+            ML = IUSER(1)
+            MU = IUSER(2)
+            IF (ML<0 .OR. ML>=NEQ) GOTO 500
+            IF (MU<0 .OR. MU>=NEQ) GOTO 510
+            LWMDIM = (2*ML+MU+1)*NEQ
+          ELSE IF (MF==26 .OR. MF==27) THEN
+            LWMDIM = 0
+          ELSE IF (MF==-26 .OR. MF==-27) THEN
+            LWMDIM = 0
+          END IF
+!         LWMDIM = LWMDIM + 2
+          ALLOCATE (RWORK(LRW),WM(LWMDIM),STAT=JER)
+          CALL CHECK_STAT(JER,370)
+          RWORK(1:LRW) = ZERO
+          WM(1:LWMDIM) = ZERO
+          IF (.NOT.ALLOCATED(DTEMP)) THEN
+             ALLOCATE (DTEMP(NEQ),YTEMP(NEQ),STAT=JER)
+             CALL CHECK_STAT(JER,380)
+          END IF
+          ALLOCATE (ACOR(NEQ),SAVF(NEQ),EWT(NEQ),STAT=JER)
+          CALL CHECK_STAT(JER,390)
+!         If necessary, reload the saved portion of the Nordsieck
+!         array and the WM array, saved above.
+          IF (ISTATE==3) THEN
+            RWORK(1:LYHTEMP) = YHTEMP(1:LYHTEMP)
+            I = MIN(LWMTEMP,LWMDIM)
+!           WM(1:LWMTEMP) = WMTEMP(1:LWMTEMP)
+            WM(1:I) = WMTEMP(1:I)
+            DEALLOCATE (YHTEMP,WMTEMP,STAT=JER)
+            CALL CHECK_STAT(JER,400)
+          END IF
+          RWORK(1:LRWUSER) = RUSER(1:LRWUSER)
+!         IUSER: = LIWUSER if MITER = 0 or 3 (MF = 10, 13, 20, 23)
+!                = LIWUSER + NEQ otherwise
+!                  (ABS(MF) = 11,12,14,15,16,17,21,22,24,25,26,27).
+          LIW = LIWUSER + NEQ
+          IF (MITER==0 .OR. MITER==3) LIW = LIWUSER
+          ALLOCATE (IWORK(LIW),STAT=JER)
+          CALL CHECK_STAT(JER,410)
+          IWORK(1:LIWUSER) = IUSER(1:LIWUSER)
+!         Allocate the YMAX vector.
+          ALLOCATE (YMAX(NEQ),STAT=JER)
+          CALL CHECK_STAT(JER,420)
+        END IF
+!       Allocate the event arrays if they haven't already been allocated
+!       in a previous call.
+        IF (ALLOCATED(JROOT)) THEN
+        ELSE
+          IF (NG>0) THEN
+            ALLOCATE (JROOT(NG),G0(NG),G1(NG),GX(NG),STAT=JER)
+            CALL CHECK_STAT(JER,430)
+          END IF
+        END IF
+
+! Block A.
+! This code block is executed on every call. It tests ISTATE and
+! ITASK for legality and branches appropriately.
+! If ISTATE > 1 but the flag INIT shows that initialization has
+! not yet been done, an error return occurs.
+! If ISTATE = 1 and TOUT = T, return immediately.
+! The user portion of RWORK and IWORK are reloaded since something
+! may have changed since the previous visit.
+
+        RWORK(1:LRWUSER) = RUSER(1:LRWUSER)
+        IWORK(1:LIWUSER) = IUSER(1:LIWUSER)
+        IF (ISTATE<1 .OR. ISTATE>3) GOTO 420
+        IF (ITASK<1 .OR. ITASK>5) GOTO 430
+        ITASKC = ITASK
+        IF (ISTATE==1) GOTO 10
+        IF (INIT/=1) GOTO 440
+        IF (ISTATE==2) GOTO 130
+        GOTO 20
+10      INIT = 0
+        IF (ABS(TOUT-T)<=ZERO) THEN
+          RUSER(1:LRWUSER) = RWORK(1:LRWUSER)
+          IUSER(1:LIWUSER) = IWORK(1:LIWUSER)
+          RETURN
+        END IF
+
+! Block B.
+! The next code block is executed for the initial call (ISTATE = 1),
+! or for a continuation call with parameter changes (ISTATE = 3).
+! It contains checking of all input and various initializations.
+
+!       First check legality of the non-optional input NEQ, ITOL, IOPT,
+!       MF, ML, and MU.
+
+20      IF (NEQ<=0) GOTO 450
+        IF (ISTATE==1) GOTO 30
+        IF (NEQ>N) GOTO 460
+        IF (NEQ/=N) GOTO 465
+30      N = NEQ
+        IF (ITOL<1 .OR. ITOL>4) GOTO 470
+        IF (IOPT<0 .OR. IOPT>1) GOTO 480
+        JSV = SIGN(1,MF)
+        INEWJ = (1-JSV)/2
+        MFA = ABS(MF)
+        METH = MFA/10
+        MITER = MFA - 10*METH
+        IF (METH<1 .OR. METH>2) GOTO 490
+        IF (MITER<0 .OR. MITER>7) GOTO 490
+        IF (MITER<=3) GOTO 40
+        IF (MITER<=5) THEN
+          ML = IWORK(1)
+          MU = IWORK(2)
+          IF (ML<0 .OR. ML>=N) GOTO 500
+          IF (MU<0 .OR. MU>=N) GOTO 510
+        END IF
+40      CONTINUE
+        IF (NG<0) GOTO 700
+        IF (ISTATE==1) GOTO 50
+        IF (IRFND==0 .AND. NG/=NGC) GOTO 710
+50      NGC = NG
+!       Next process and check the optional input.
+        IF (IOPT==1) GOTO 60
+        MAXORD = MORD(METH)
+        MXSTEP = MXSTP0
+        MXHNIL = MXHNL0
+        IF (ISTATE==1) H0 = ZERO
+        HMXI = ZERO
+        HMIN = ZERO
+        GOTO 80
+60      MAXORD = IWORK(5)
+        IF (MAXORD<0) GOTO 520
+        IF (MAXORD==0) MAXORD = 100
+        MAXORD = MIN(MAXORD,MORD(METH))
+        MXSTEP = IWORK(6)
+        IF (MXSTEP<0) GOTO 530
+        IF (MXSTEP==0) MXSTEP = MXSTP0
+        MXHNIL = IWORK(7)
+        IF (MXHNIL<0) GOTO 540
+        IF (MXHNIL==0) MXHNIL = MXHNL0
+        IF (ISTATE/=1) GOTO 70
+        H0 = RWORK(5)
+        IF ((TOUT-T)*H0<ZERO) GOTO 550
+70      HMAX = RWORK(6)
+        IF (HMAX<ZERO) GOTO 560
+        HMXI = ZERO
+        IF (HMAX>ZERO) HMXI = ONE/HMAX
+        HMIN = RWORK(7)
+        IF (HMIN<ZERO) GOTO 570
+        SETH = RWORK(8)
+        IF (SETH<ZERO) GOTO 690
+!       Check the nonnegativity information.
+        IF (BOUNDS) THEN
+          IF (NDX<1 .OR. NDX>NEQ) THEN
+            MSG = 'The size of the CONSTRAINED vector'
+            CALL XERRDV(MSG,900,1,0,0,0,0,ZERO,ZERO)
+            MSG = 'must be between 1 and NEQ.'
+            CALL XERRDV(MSG,900,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          DO I = 1, NDX
+            IF (IDX(I)<1 .OR. IDX(I)>N) THEN
+              MSG = 'Each component of THE CONSTRAINED'
+              CALL XERRDV(MSG,910,1,0,0,0,0,ZERO,ZERO)
+              MSG = 'vector must be between 1 and N.'
+              CALL XERRDV(MSG,910,2,0,0,0,0,ZERO,ZERO)
+            END IF
+          END DO
+        END IF
+!       Check the sub diagonal and super diagonal arrays.
+        IF (MITER==4 .OR. MITER==5) THEN
+           IF (SUBS) THEN
+              DO I = 1, NSUBS
+                 IF (SUBDS(I) < 2 .OR. SUBDS(I) > ML+1) THEN
+                    MSG = 'Each element of SUB_DIAGONALS'
+                    CALL XERRDV(MSG,920,1,0,0,0,0,ZERO,ZERO)
+                    MSG = 'must be between 2 and ML + 1.'
+                    CALL XERRDV(MSG,920,2,0,0,0,0,ZERO,ZERO)
+                 END IF
+              END DO
+           END IF
+           IF (SUPS) THEN
+              DO I = 1, NSUPS
+                 IF (SUPDS(I) < 2 .OR. SUPDS(I) > MU + 1) THEN
+                    MSG = 'Each element of SUP_DIAGONALS'
+                    CALL XERRDV(MSG,930,1,0,0,0,0,ZERO,ZERO)
+                    MSG = 'must be between 2 and MU + 1.'
+                    CALL XERRDV(MSG,930,2,0,0,0,0,ZERO,ZERO)
+                 END IF
+              END DO
+           END IF
+!          Compute the banded column grouping.
+           IF (SUBS .OR. SUPS) THEN
+             CALL BGROUP(N,EWT,ACOR,YMAX,ML,MU)
+             BUILD_IAJA = .FALSE.
+             BUILD_IAJA = .TRUE.
+             IF (BUILD_IAJA) THEN
+                CALL BANDED_IAJA(N,ML,MU)
+                NZB = IAB(N+1) - 1
+             END IF
+           END IF
+        END IF
+
+        IF ((MITER==2 .OR. MITER==5) .AND. USE_JACSP) THEN
+!         Allocate the arrays needed by DVJAC/JACSPD.
+          IF (ALLOCATED(INDROWDS)) THEN
+             DEALLOCATE (INDROWDS, INDCOLDS, NGRPDS, IPNTRDS, JPNTRDS, &
+               IWADS, IWKDS, IOPTDS, YSCALEDS, WKDS, FACDS)
+             CALL CHECK_STAT(IER,440)
+          END IF
+          ALLOCATE (INDROWDS(1), INDCOLDS(1), NGRPDS(1), IPNTRDS(1),   &
+            JPNTRDS(1), IWADS(1), IWKDS(50+N), IOPTDS(5), YSCALEDS(N), &
+            WKDS(3*N), FACDS(N), STAT=IER)
+          CALL CHECK_STAT(IER,450)
+!         For use in DVJAC:
+          IOPTDS(4) = 0
+        END IF
+
+! Set work array pointers and check lengths LRW and LIW. Pointers
+! to segments of RWORK and IWORK are named by prefixing L to the
+! name of the segment. e.g., the segment YH starts at RWORK(LYH).
+! Within WM, LOCJS is the location of the saved Jacobian (JSV > 0).
+
+80      LYH = 21
+        IF (ISTATE==1) NYH = N
+        LENRW = LYH + (MAXORD+1)*NYH - 1
+        IWORK(17) = LENRW
+        IF (LENRW>LRW) GOTO 580
+        IF (LENRW/=LRW) GOTO 580
+        LWM = 1
+!       Save MAXORD in case the calling program calls with ISTATE=3.
+        PREVIOUS_MAXORD = MAXORD
+        JCO = MAX(0,JSV)
+!       IF (MITER==0) LENWM = 2
+        IF (MITER==0) LENWM = 0
+        IF (MITER==1 .OR. MITER==2) THEN
+!         LENWM = 2 + (1+JCO)*N*N
+!         LOCJS = N*N + 3
+          LENWM = (1+JCO)*N*N
+          LOCJS = N*N + 1
+        END IF
+!       IF (MITER==3) LENWM = N + 2
+        IF (MITER==3) LENWM = N
+        IF (MITER==4 .OR. MITER==5) THEN
+          MBAND = ML + MU + 1
+          LENP = (MBAND+ML)*N
+          LENJ = MBAND*N
+!         LENWM = 2 + LENP + JCO*LENJ
+!         LOCJS = LENP + 3
+          LENWM = LENP + JCO*LENJ
+          LOCJS = LENP + 1
+        END IF
+        IF (MITER==6 .OR. MITER==7) THEN
+!         LENWM = 2
+          LENWM = 0
+        END IF
+        IF (LENWM>LWMDIM) GOTO 730
+        IF (LENWM/=LWMDIM) GOTO 730
+        LIWM = 1
+        LENIW = 30 + N
+        IF (MITER==0 .OR. MITER==3) LENIW = 30
+        IWORK(18) = LENIW
+        IF (LENIW>LIW) GOTO 590
+!       Check RTOL and ATOL for legality.
+        RTOLI = OPTS%RTOL(1)
+        ATOLI = OPTS%ATOL(1)
+        DO I = 1, N
+          IF (ITOL>=3) RTOLI = OPTS%RTOL(I)
+          IF (ITOL==2 .OR. ITOL==4) ATOLI = OPTS%ATOL(I)
+          IF (RTOLI<ZERO) GOTO 600
+          IF (ATOLI<ZERO) GOTO 610
+        END DO
+        IF (ISTATE==1) GOTO 100
+!       If ISTATE = 3, set flag to signal parameter changes to DVSTEP.
+        JSTART = -1
+        IF (NQ<=MAXORD) GOTO 90
+!       MAXORD was reduced below NQ. Copy YH(*,MAXORD+2) into SAVF.
+!       YH(*,MAXORD+2) was copied to the YHNQP2 array at the
+!       beginning of DVODE when the ISTATE=3 call was made.
+        CALL DCOPY_F90(N,YHNQP2,1,SAVF,1)
+!       Reload WM1 since LWM may have changed.
+90      IF (MITER>0) WM1 = SQRT(UROUND)
+!       ISTATC controls the determination of the sparsity arrays
+!       if the sparse solution option is used.
+        ISTATC = ISTATE
+        GOTO 130
+
+! Block C.
+! The next block is for the initial call only (ISTATE = 1).
+! It contains all remaining initializations, the initial call to F,
+! and the calculation of the initial step size.
+! The error weights in EWT are inverted after being loaded.
+
+100     UROUND = EPSILON(ONE)
+        U125 = UROUND ** 0.125_WP
+        U325 = UROUND ** 0.325_WP
+!       ISTATC controls the determination of the sparsity arrays if
+!       the sparse solution option is used.
+        ISTATC = ISTATE
+        TN = T
+        IF (ITASK/=4 .AND. ITASK/=5) GOTO 110
+        TCRIT = RWORK(1)
+        IF ((TCRIT-TOUT)*(TOUT-T)<ZERO) GOTO 660
+        IF (ABS(H0)>ZERO .AND. (T+H0-TCRIT)*H0>ZERO) H0 = TCRIT - T
+110     JSTART = 0
+        IF (MITER>0) WM1 = SQRT(UROUND)
+        CCMXJ = PT2
+        MSBJ = 50
+        MSBG = 75
+        NHNIL = 0
+        NST = 0
+        NJE = 0
+        NNI = 0
+        NCFN = 0
+        NETF = 0
+        NLU = 0
+        NSLJ = 0
+        NSLAST = 0
+        HU = ZERO
+        NQU = 0
+        MB28 = 0
+!_______________________________________________________________________
+! *****MA48 build change point. Insert this statement.
+!       MB48 = 0
+!_______________________________________________________________________
+        NSLG = 0
+        NGE = 0
+!       Initial call to F. (LF0 points to YH(*,2).)
+        LF0 = LYH + NYH
+        CALL F(N,T,Y,RWORK(LF0))
+        NFE = 1
+!       Load the initial value vector in YH.
+        CALL DCOPY_F90(N,Y,1,RWORK(LYH),1)
+!       Load and invert the EWT array. (H is temporarily set to 1.0.)
+        NQ = 1
+        H = ONE
+        CALL DEWSET(N,ITOL,OPTS%RTOL,OPTS%ATOL,RWORK(LYH),EWT)
+        DO I = 1, N
+          IF (EWT(I)<=ZERO) GOTO 620
+          EWT(I) = ONE/EWT(I)
+        END DO
+        NNZ = 0
+        NGP = 0
+        IF (OPTS%SPARSE) THEN
+          ISTATC = ISTATE
+        END IF
+        IF (ABS(H0)>ZERO) GOTO 120
+!       Call DVHIN to set initial step size H0 to be attempted.
+        CALL DVHIN(N,T,RWORK(LYH),RWORK(LF0),F,TOUT,EWT,ITOL,OPTS%ATOL,Y,ACOR, &
+          H0,NITER,IER)
+        NFE = NFE + NITER
+        IF (IER/=0) GOTO 630
+!       Adjust H0 if necessary to meet HMAX bound.
+120     RH = ABS(H0)*HMXI
+        IF (RH>ONE) H0 = H0/RH
+!       Load H with H0 and scale YH(*,2) by H0.
+        H = H0
+        CALL DSCAL_F90(N,H0,RWORK(LF0),1)
+!       GOTO 270
+!       Check for a zero of g at T.
+        IRFND = 0
+        TOUTC = TOUT
+        IF (NGC==0) GOTO 210
+        CALL DVCHECK(1,GFUN,NEQ,Y,RWORK(LYH),NYH,G0,G1,GX,IRT)
+        IF (IRT==0) GOTO 210
+        GOTO 720
+
+! Block D.
+! The next code block is for continuation calls only (ISTATE = 2 or 3)
+! and is to check stop conditions before taking a step.
+
+130     NSLAST = NST
+        IRFP = IRFND
+        IF (NGC==0) GOTO 140
+        IF (ITASK==1 .OR. ITASK==4) TOUTC = TOUT
+        CALL DVCHECK(2,GFUN,NEQ,Y,RWORK(LYH),NYH,G0,G1,GX,IRT)
+        IF (IRT/=1) GOTO 140
+        IRFND = 1
+        ISTATE = 3
+        T = T0ST
+        GOTO 330
+140     CONTINUE
+        IRFND = 0
+        IF (IRFP==1 .AND. (ABS(TLAST-TN)>ZERO) .AND. ITASK==2) GOTO 310
+        KUTH = 0
+        GOTO (150,200,160,170,180) ITASK
+150     IF ((TN-TOUT)*H<ZERO) GOTO 200
+        CALL DVINDY_CORE(TOUT,0,RWORK(LYH),NYH,Y,IFLAG)
+        IF (IFLAG/=0) GOTO 680
+        IF (BOUNDS) THEN
+          DO I = 1, NDX
+            Y(IDX(I)) = MAX(Y(IDX(I)),LB(I))
+            Y(IDX(I)) = MIN(Y(IDX(I)),UB(I))
+          END DO
+        END IF
+        T = TOUT
+        GOTO 320
+160     TP = TN - HU*(ONE+HUN*UROUND)
+        IF ((TP-TOUT)*H>ZERO) GOTO 640
+        IF ((TN-TOUT)*H<ZERO) GOTO 200
+        GOTO 310
+170     TCRIT = RWORK(1)
+        IF ((TN-TCRIT)*H>ZERO) GOTO 650
+        IF ((TCRIT-TOUT)*H<ZERO) GOTO 660
+        IF ((TN-TOUT)*H<ZERO) GOTO 190
+        CALL DVINDY_CORE(TOUT,0,RWORK(LYH),NYH,Y,IFLAG)
+        IF (IFLAG/=0) GOTO 680
+        IF (BOUNDS) THEN
+          DO I = 1, NDX
+            Y(IDX(I)) = MAX(Y(IDX(I)),LB(I))
+            Y(IDX(I)) = MIN(Y(IDX(I)),UB(I))
+          END DO
+        END IF
+        T = TOUT
+        GOTO 320
+180     TCRIT = RWORK(1)
+        IF ((TN-TCRIT)*H>ZERO) GOTO 650
+190     HMX = ABS(TN) + ABS(H)
+        IHIT = ABS(TN-TCRIT) <= HUN*UROUND*HMX
+        IF (IHIT) GOTO 310
+        TNEXT = TN + HNEW*(ONE+FOUR*UROUND)
+        IF ((TNEXT-TCRIT)*H<=ZERO) GOTO 200
+        H = (TCRIT-TN)*(ONE-FOUR*UROUND)
+        KUTH = 1
+
+! Block E.
+! The next block is normally executed for all calls and contains
+! the call to the one-step core integrator DVSTEP. This is a
+! looping point for the integration steps.
+! First check for too many steps being taken, update EWT(if not
+! at start of problem), check for too much accuracy being
+! requested, and check for H below the roundoff level in T.
+
+200     CONTINUE
+        IF ((NST-NSLAST)>=MXSTEP) GOTO 340
+        CALL DEWSET(N,ITOL,OPTS%RTOL,OPTS%ATOL,RWORK(LYH),EWT)
+        DO I = 1, N
+          IF (EWT(I)<=ZERO) GOTO 350
+          EWT(I) = ONE/EWT(I)
+        END DO
+210     TOLSF = UROUND*DVNORM(N,RWORK(LYH),EWT)
+        IPCUTH = -1
+        IF (TOLSF<=ONE) GOTO 220
+        TOLSF = TOLSF*TWO
+        IF (NST==0) GOTO 670
+        GOTO 360
+220     CONTINUE
+        IPCUTH = IPCUTH + 1
+        IF (IPCUTH>=IPCUTH_MAX) THEN
+          MSG = 'Too many step reductions to prevent'
+          CALL XERRDV(MSG,940,1,0,0,0,0,ZERO,ZERO)
+          MSG = 'an infeasible prediction.'
+          CALL XERRDV(MSG,940,1,0,0,0,0,ZERO,ZERO)
+!         Retract the solution to TN:
+          CALL DVNRDN(RWORK(LYH),NYH,N,NQ)
+          ACOR(1:N) = ZERO
+          ISTATE = -7
+          GOTO 410
+        END IF
+        IF (ABS((TN+H)-TN)>ZERO) GOTO 230
+        NHNIL = NHNIL + 1
+        IF (NHNIL>MXHNIL) GOTO 230
+        MSG = 'Warning: internal T(=R1) and H(=R2) are such that'
+        CALL XERRDV(MSG,950,1,0,0,0,0,ZERO,ZERO)
+        MSG = 'in the machine, T + H = T on the next step.'
+        CALL XERRDV(MSG,950,1,0,0,0,0,ZERO,ZERO)
+        MSG = '(H = step size). The solver will continue anyway.'
+        CALL XERRDV(MSG,950,1,0,0,0,2,TN,H)
+        IF (NHNIL<MXHNIL) GOTO 230
+        MSG = 'The above warning has been issued I1 times.'
+        CALL XERRDV(MSG,950,1,0,0,0,0,ZERO,ZERO)
+        MSG = 'It will not be issued again for this problem.'
+        CALL XERRDV(MSG,950,1,1,MXHNIL,0,0,ZERO,ZERO)
+230     CONTINUE
+        IF (BOUNDS) THEN
+!         Check positive components for infeasible prediction; reduce 
+!         step size if infeasible prediction will occur in DVNLSD.
+          ACOR(1:N) = RWORK(LYH:LYH+N-1)
+!         Predict:
+          CALL DVNRDP(RWORK(LYH:LRW),NYH,N,NQ)
+          DO I = 1, NDX
+            IF ((ACOR(IDX(I))>LB(I) .AND. RWORK(LYH+ &
+                IDX(I)-1)<LB(I)) .OR. (ACOR(IDX(I))<UB(I) .AND. RWORK(LYH+ &
+                IDX(I)-1)>UB(I))) THEN
+!              Retract:
+              CALL DVNRDN(RWORK(LYH),NYH,N,NQ)
+              H = HALF*H
+              ETA = HALF
+!              Rescale:
+              CALL DVNRDS(RWORK(LYH),NYH,N,L,ETA)
+              GOTO 220
+            END IF
+          END DO
+!         Retract:
+          CALL DVNRDN(RWORK(LYH),NYH,N,NQ)
+          ACOR(1:N) = ZERO
+        END IF
+
+!       CALL DVSTEP(Y,YH,LDYH,YH1,EWT,SAVF,ACOR,WM,IWM,F,JAC, &
+!         VNLS,OPTS%ATOL,ITOL)
+!_______________________________________________________________________
+
+        IF (MITER/=6 .AND. MITER/=7) THEN
+          CALL DVSTEP(Y,RWORK(LYH),NYH,RWORK(LYH),EWT,SAVF,ACOR,WM, &
+            IWORK(LIWM),F,JAC,DVNLSD,OPTS%ATOL,ITOL)
+        ELSE
+          CALL DVSTEP(Y,RWORK(LYH),NYH,RWORK(LYH),EWT,SAVF,ACOR,WM, &
+            IWORK(LIWM),F,JAC,DVNLSS28,OPTS%ATOL,ITOL)
+        END IF
+! *****MA48 build change point. Replace above with these statements.
+!     IF (MITER /= 6 .AND. MITER /= 7) THEN
+!        CALL DVSTEP(Y,RWORK(LYH),NYH,RWORK(LYH),EWT,SAVF,ACOR,WM, &
+!          IWORK(LIWM),F,JAC,DVNLSD,OPTS%ATOL,ITOL)
+!     ELSE
+!        IF (USE_MA48_FOR_SPARSE) THEN
+!           CALL DVSTEP(Y,RWORK(LYH),NYH,RWORK(LYH),EWT,SAVF,ACOR,WM, &
+!             IWORK(LIWM), F, JAC, DVNLSS48,OPTS%ATOL,ITOL)
+!        ELSE
+!           CALL DVSTEP(Y,RWORK(LYH),NYH,RWORK(LYH),EWT,SAVF,ACOR,WM, &
+!           IWORK(LIWM),F,JAC,DVNLSS28,OPTS%ATOL,ITOL)
+!        END IF
+!     END IF
+!_______________________________________________________________________
+
+        KGO = 1 - KFLAG
+!       Branch on KFLAG. Note: In this version, KFLAG can not be set to
+!                            -3; KFLAG = 0, -1, -2.
+        GOTO (240,370,380) KGO
+
+! Block F.
+! The following block handles the case of a successful return from the
+! core integrator (KFLAG = 0). Test for stop conditions.
+
+240     INIT = 1
+        KUTH = 0
+        GOTO (250,310,270,280,300) ITASK
+!       ITASK = 1. If TOUT has been reached, interpolate.
+250     CONTINUE
+        IF (NGC==0) GOTO 260
+        CALL DVCHECK(3,GFUN,NEQ,Y,RWORK(LYH),NYH,G0,G1,GX,IRT)
+        IF (IRT/=1) GOTO 260
+        IRFND = 1
+        ISTATE = 3
+        T = T0ST
+        GOTO 330
+260     CONTINUE
+        IF ((TN-TOUT)*H<ZERO) GOTO 200
+        CALL DVINDY_CORE(TOUT,0,RWORK(LYH),NYH,Y,IFLAG)
+        IF (BOUNDS) THEN
+          DO I = 1, NDX
+            Y(IDX(I)) = MAX(Y(IDX(I)),LB(I))
+            Y(IDX(I)) = MIN(Y(IDX(I)),UB(I))
+          END DO
+        END IF
+        T = TOUT
+        GOTO 320
+!       ITASK = 3. Jump to exit if TOUT was reached.
+270     IF ((TN-TOUT)*H>=ZERO) GOTO 310
+        GOTO 200
+!       ITASK = 4. See if TOUT or TCRIT was reached. Adjust H if necessary.
+280     IF ((TN-TOUT)*H<ZERO) GOTO 290
+        CALL DVINDY_CORE(TOUT,0,RWORK(LYH),NYH,Y,IFLAG)
+        IF (BOUNDS) THEN
+          DO I = 1, NDX
+            Y(IDX(I)) = MAX(Y(IDX(I)),LB(I))
+            Y(IDX(I)) = MIN(Y(IDX(I)),UB(I))
+          END DO
+        END IF
+        T = TOUT
+        GOTO 320
+290     HMX = ABS(TN) + ABS(H)
+        IHIT = ABS(TN-TCRIT) <= HUN*UROUND*HMX
+        IF (IHIT) GOTO 310
+        TNEXT = TN + HNEW*(ONE+FOUR*UROUND)
+        IF ((TNEXT-TCRIT)*H<=ZERO) GOTO 200
+        H = (TCRIT-TN)*(ONE-FOUR*UROUND)
+        KUTH = 1
+        GOTO 200
+!       ITASK = 5. See if TCRIT was reached and jump to exit.
+300     HMX = ABS(TN) + ABS(H)
+        IHIT = ABS(TN-TCRIT) <= HUN*UROUND*HMX
+
+! Block G.
+! The following block handles all successful returns from DVODE.
+! If ITASK /= 1, Y is loaded from YH and T is set accordingly.
+! ISTATE is set to 2, and the optional output is loaded into the
+! work arrays before returning.
+
+310     CONTINUE
+        CALL DCOPY_F90(N,RWORK(LYH),1,Y,1)
+        T = TN
+        IF (ITASK/=4 .AND. ITASK/=5) GOTO 320
+        IF (IHIT) T = TCRIT
+320     ISTATE = 2
+330     CONTINUE
+        RWORK(11) = HU
+        RWORK(12) = HNEW
+        RWORK(13) = TN
+        IWORK(10) = NGE
+        IWORK(11) = NST
+        IWORK(12) = NFE
+        IWORK(13) = NJE
+        IWORK(14) = NQU
+        IWORK(15) = NEWQ
+        IWORK(19) = NLU
+        IWORK(20) = NNI
+        IWORK(21) = NCFN
+        IWORK(22) = NETF
+        TLAST = T
+        RUSER(1:LRWUSER) = RWORK(1:LRWUSER)
+        IUSER(1:LIWUSER) = IWORK(1:LIWUSER)
+!       Warn the user if |y(t)| < ATOL:
+        IF (ISTATE==2 .OR. ISTATE==3) THEN
+          IF (YMAXWARN) THEN
+            ATOLI = OPTS%ATOL(1)
+            DO I = 1, N
+              IF (ITOL==2 .OR. ITOL==4) ATOLI = OPTS%ATOL(I)
+              IF (ABS(Y(I))<ATOLI) THEN
+                MSG = 'Warning: Component I1 of the solution is'
+                CALL XERRDV(MSG,960,1,0,0,0,0,ZERO,ZERO)
+                MSG = 'smaller in magnitude than component I1'
+                CALL XERRDV(MSG,960,1,0,0,0,0,ZERO,ZERO)
+                MSG = 'of the absolute error tolerance vector.'
+                CALL XERRDV(MSG,960,1,1,I,0,0,ZERO,ZERO)
+              END IF
+            END DO
+          END IF
+        END IF
+        RETURN
+
+! Block H.
+! The following block handles all unsuccessful returns other than
+! those for illegal input. First the error message routine is called.
+! if there was an error test or convergence test failure, IMXER is set.
+! Then Y is loaded from YH, and T is set to TN. The optional output
+! is loaded into the work arrays before returning.
+
+!       The maximum number of steps was taken before reaching TOUT.
+340     MSG = 'At current T(=R1), MXSTEP(=I1) steps'
+        CALL XERRDV(MSG,970,1,0,0,0,0,ZERO,ZERO)
+        MSG = 'taken on this call before reaching TOUT.'
+        CALL XERRDV(MSG,970,1,1,MXSTEP,0,1,TN,ZERO)
+        ISTATE = -1
+        GOTO 410
+!       EWT(i) <= 0.0 for some i (not at start of problem).
+350     EWTI = EWT(I)
+        MSG = 'At T(=R1), EWT(I1) has become R2 <= 0.'
+        CALL XERRDV(MSG,980,1,1,I,0,2,TN,EWTI)
+        ISTATE = -6
+        GOTO 410
+!       Too much accuracy requested for machine precision.
+360     MSG = 'At T(=R1), too much accuracy was requested'
+        CALL XERRDV(MSG,990,1,0,0,0,0,ZERO,ZERO)
+        MSG = 'for precision of machine:   see TOLSF(=R2).'
+        CALL XERRDV(MSG,990,1,0,0,0,2,TN,TOLSF)
+        RWORK(14) = TOLSF
+        ISTATE = -2
+        GOTO 410
+!       KFLAG = -1. Error test failed repeatedly or with ABS(H) = HMIN.
+370     MSG = 'At T(=R1) and step size H(=R2), the error'
+        CALL XERRDV(MSG,1000,1,0,0,0,0,ZERO,ZERO)
+        MSG = 'test failed repeatedly or with ABS(H) = HMIN.'
+        CALL XERRDV(MSG,1000,1,0,0,0,2,TN,H)
+        ISTATE = -4
+        GOTO 390
+!       KFLAG = -2. Convergence failed repeatedly or with ABS(H) = HMIN.
+380     MSG = 'At T(=R1) and step size H(=R2), the'
+        CALL XERRDV(MSG,1010,1,0,0,0,0,ZERO,ZERO)
+        MSG = 'corrector convergence failed repeatedly'
+        CALL XERRDV(MSG,1010,1,0,0,0,0,ZERO,ZERO)
+        MSG = 'or with ABS(H) = HMIN.'
+        CALL XERRDV(MSG,1010,1,0,0,0,2,TN,H)
+        ISTATE = -5
+!       Compute IMXER if relevant.
+390     BIG = ZERO
+        IMXER = 1
+        DO 400 I = 1, N
+          SIZEST = ABS(ACOR(I)*EWT(I))
+          IF (BIG>=SIZEST) GOTO 400
+          BIG = SIZEST
+          IMXER = I
+400     END DO
+        IWORK(16) = IMXER
+!       Set Y vector, T, and optional output.
+410     CONTINUE
+        CALL DCOPY_F90(N,RWORK(LYH),1,Y,1)
+        T = TN
+        RWORK(11) = HU
+        RWORK(12) = H
+        RWORK(13) = TN
+        IWORK(10) = NGE
+        IWORK(11) = NST
+        IWORK(12) = NFE
+        IWORK(13) = NJE
+        IWORK(14) = NQU
+        IWORK(15) = NQ
+        IWORK(19) = NLU
+        IWORK(20) = NNI
+        IWORK(21) = NCFN
+        IWORK(22) = NETF
+        TLAST = T
+        RUSER(1:LRWUSER) = RWORK(1:LRWUSER)
+        IUSER(1:LIWUSER) = IWORK(1:LIWUSER)
+        RETURN
+
+! Block I.
+! The following block handles all error returns due to illegal input
+! (ISTATE = -3), as detected before calling the core integrator.
+! First the error message routine is called. If the illegal input
+! is a negative ISTATE, the run is aborted (apparent infinite loop).
+
+420     MSG = 'ISTATE(=I1) is illegal.'
+        CALL XERRDV(MSG,1020,1,1,ISTATE,0,0,ZERO,ZERO)
+        IF (ISTATE<0) GOTO 750
+        GOTO 740
+430     MSG = 'ITASK(=I1) is illegal.'
+        CALL XERRDV(MSG,1030,1,1,ITASK,0,0,ZERO,ZERO)
+        GOTO 740
+440     MSG = 'ISTATE(=I1) > 1 but DVODE is not initialized.'
+        CALL XERRDV(MSG,1040,1,1,ISTATE,0,0,ZERO,ZERO)
+        GOTO 740
+450     MSG = 'NEQ (=I1) < 1.'
+        CALL XERRDV(MSG,1050,1,1,NEQ,0,0,ZERO,ZERO)
+        GOTO 740
+460     MSG = 'ISTATE = 3 and NEQ increased (I1 to I2).'
+        CALL XERRDV(MSG,1060,1,2,N,NEQ,0,ZERO,ZERO)
+        GOTO 740
+465     MSG = 'This version of DVODE requires does not allow NEQ to be reduced.'
+        CALL XERRDV(MSG,1070,2,0,0,0,0,ZERO,ZERO)
+        GOTO 740
+470     MSG = 'ITOL(=I1) is illegal.'
+        CALL XERRDV(MSG,1080,1,1,ITOL,0,0,ZERO,ZERO)
+        GOTO 740
+480     MSG = 'IOPT(=I1) is illegal.'
+        CALL XERRDV(MSG,1090,1,1,IOPT,0,0,ZERO,ZERO)
+        GOTO 740
+490     MSG = 'MF(=I1) is illegal.'
+        CALL XERRDV(MSG,1100,1,1,MF,0,0,ZERO,ZERO)
+        GOTO 740
+500     MSG = 'ML(=I1) illegal: < 0 or >= NEQ (=I2)'
+        CALL XERRDV(MSG,1110,1,2,ML,NEQ,0,ZERO,ZERO)
+        GOTO 740
+510     MSG = 'MU(=I1) illegal: < 0 or >= NEQ (=I2)'
+        CALL XERRDV(MSG,1120,1,2,MU,NEQ,0,ZERO,ZERO)
+        GOTO 740
+520     MSG = 'MAXORD(=I1) < 0.'
+        CALL XERRDV(MSG,1130,1,1,MAXORD,0,0,ZERO,ZERO)
+        GOTO 740
+530     MSG = 'MXSTEP(=I1) < 0.'
+        CALL XERRDV(MSG,1140,1,1,MXSTEP,0,0,ZERO,ZERO)
+        GOTO 740
+540     MSG = 'MXHNIL(=I1) < 0.'
+        CALL XERRDV(MSG,1150,1,1,MXHNIL,0,0,ZERO,ZERO)
+        GOTO 740
+550     MSG = 'TOUT(=R1) is behind T(=R2).'
+        CALL XERRDV(MSG,1160,1,0,0,0,2,TOUT,T)
+        MSG = 'The integration direction is given by H0 (=R1).'
+        CALL XERRDV(MSG,1160,1,0,0,0,1,H0,ZERO)
+        GOTO 740
+560     MSG = 'HMAX(=R1) < 0.'
+        CALL XERRDV(MSG,1170,1,0,0,0,1,HMAX,ZERO)
+        GOTO 740
+570     MSG = 'HMIN(=R1) < 0.'
+        CALL XERRDV(MSG,1180,1,0,0,0,1,HMIN,ZERO)
+        GOTO 740
+580     CONTINUE
+        MSG = 'RWORK length needed, LENRW(=I1) > LRW(=I2)'
+        CALL XERRDV(MSG,1190,1,2,LENRW,LRW,0,ZERO,ZERO)
+        GOTO 740
+590     CONTINUE
+        MSG = 'IWORK length needed, LENIW(=I1) > LIW(=I2)'
+        CALL XERRDV(MSG,1200,1,2,LENIW,LIW,0,ZERO,ZERO)
+        GOTO 740
+600     MSG = 'RTOL(I1) is R1 < 0.'
+        CALL XERRDV(MSG,1210,1,1,I,0,1,RTOLI,ZERO)
+        GOTO 740
+610     MSG = 'ATOL(I1) is R1 < 0.'
+        CALL XERRDV(MSG,1220,1,1,I,0,1,ATOLI,ZERO)
+        GOTO 740
+620     EWTI = EWT(I)
+        MSG = 'EWT(I1) is R1 <= 0.'
+        CALL XERRDV(MSG,1230,1,1,I,0,1,EWTI,ZERO)
+        GOTO 740
+630     CONTINUE
+        MSG = 'TOUT(=R1) too close to T(=R2) to start.'
+        CALL XERRDV(MSG,1240,1,0,0,0,2,TOUT,T)
+        GOTO 740
+640     CONTINUE
+        MSG = 'ITASK = I1 and TOUT(=R1) < TCUR - HU(=R2).'
+        CALL XERRDV(MSG,1250,1,1,ITASK,0,2,TOUT,TP)
+        GOTO 740
+650     CONTINUE
+        MSG = 'ITASK = 4 or 5 and TCRIT(=R1) < TCUR(=R2).'
+        CALL XERRDV(MSG,1260,1,0,0,0,2,TCRIT,TN)
+        GOTO 740
+660     CONTINUE
+        MSG = 'ITASK = 4 or 5 and TCRIT(=R1) < TOUT(=R2).'
+        CALL XERRDV(MSG,1270,1,0,0,0,2,TCRIT,TOUT)
+        GOTO 740
+670     MSG = 'At the start of the problem, too much'
+        CALL XERRDV(MSG,1280,1,0,0,0,0,ZERO,ZERO)
+        MSG = 'accuracy was requested for precision'
+        CALL XERRDV(MSG,1280,1,0,0,0,1,TOLSF,ZERO)
+        MSG = 'of machine: see TOLSF(=R1).'
+        CALL XERRDV(MSG,1280,1,0,0,0,1,TOLSF,ZERO)
+        RWORK(14) = TOLSF
+        GOTO 740
+680     MSG = 'Trouble from DVINDY. ITASK = I1, TOUT = R1.'
+        CALL XERRDV(MSG,1290,1,1,ITASK,0,1,TOUT,ZERO)
+        GOTO 740
+690     MSG = 'SETH must be nonnegative.'
+        CALL XERRDV(MSG,1300,1,0,0,0,0,ZERO,ZERO)
+        GOTO 740
+700     MSG = 'NG(=I1) < 0.'
+        CALL XERRDV(MSG,1310,0,1,NG,0,0,ZERO,ZERO)
+        GOTO 740
+710     MSG = 'NG changed (from I1 to I2) illegally, i.e.,'
+        CALL XERRDV(MSG,1320,1,0,0,0,0,ZERO,ZERO)
+        MSG = 'not immediately after a root was found.'
+        CALL XERRDV(MSG,1320,1,2,NGC,NG,0,ZERO,ZERO)
+        GOTO 740
+720     MSG = 'One or more components of g has a root'
+        CALL XERRDV(MSG,1330,1,0,0,0,0,ZERO,ZERO)
+        MSG = 'too near to the initial point.'
+        CALL XERRDV(MSG,1330,1,0,0,0,0,ZERO,ZERO)
+        GOTO 740
+730     CONTINUE
+        MSG = 'WM length needed, LENWM(=I1) > LWMDIM(=I2)'
+        CALL XERRDV(MSG,1340,1,2,LENWM,LWMDIM,0,ZERO,ZERO)
+
+740     CONTINUE
+        ISTATE = -3
+        RUSER(1:LRWUSER) = RWORK(1:LRWUSER)
+        IUSER(1:LIWUSER) = IWORK(1:LIWUSER)
+        RETURN
+
+750     MSG = 'Run aborted:  apparent infinite loop.'
+        CALL XERRDV(MSG,1350,2,0,0,0,0,ZERO,ZERO)
+        RUSER(1:LRWUSER) = RWORK(1:LRWUSER)
+        IUSER(1:LIWUSER) = IWORK(1:LIWUSER)
+        RETURN
+
+      END SUBROUTINE DVODE
+!_______________________________________________________________________
+
+      SUBROUTINE DVHIN(N,T0,Y0,YDOT,F,TOUT,EWT,ITOL,ATOL,Y,TEMP,H0, &
+        NITER,IER)
+! ..
+! Calculate the initial step size.
+! ..
+! This routine computes the step size, H0, to be attempted on the
+! first step, when the user has not supplied a value for this.
+! First we check that TOUT - T0 differs significantly from zero. Then
+! an iteration is done to approximate the initial second derivative
+! and this is used to define h from w.r.m.s.norm(h**2 * yddot / 2) = 1.
+! A bias factor of 1/2 is applied to the resulting h.
+! The sign of H0 is inferred from the initial values of TOUT and T0.
+! Communication with DVHIN is done with the following variables:
+! N      = Size of ODE system, input.
+! T0     = Initial value of independent variable, input.
+! Y0     = Vector of initial conditions, input.
+! YDOT   = Vector of initial first derivatives, input.
+! F      = Name of subroutine for right-hand side f(t,y), input.
+! TOUT   = First output value of independent variable
+! UROUND = Machine unit roundoff
+! EWT, ITOL, ATOL = Error weights and tolerance parameters
+!                   as described in the driver routine, input.
+! Y, TEMP = Work arrays of length N.
+! H0     = Step size to be attempted, output.
+! NITER  = Number of iterations (and of f evaluations) to compute H0,
+!          output.
+! IER    = The error flag, returned with the value
+!          IER = 0  if no trouble occurred, or
+!          IER = -1 if TOUT and T0 are considered too close to proceed.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        REAL (WP), INTENT (INOUT) :: H0
+        REAL (WP), INTENT (IN) :: T0, TOUT
+        INTEGER :: IER
+        INTEGER, INTENT (IN) :: ITOL, N
+        INTEGER, INTENT (INOUT) :: NITER
+! ..
+! .. Array Arguments ..
+        REAL (WP), INTENT (IN) :: ATOL(*), EWT(*), Y0(*)
+        REAL (WP), INTENT (INOUT) :: TEMP(*), Y(*), YDOT(*)
+! ..
+! .. Subroutine Arguments ..
+        EXTERNAL F
+! ..
+! .. Local Scalars ..
+        REAL (WP) :: AFI, ATOLI, DELYI, H, HG, HLB, HNEW, HRAT, HUB, T1, &
+          TDIST, TROUND, YDDNRM
+        INTEGER :: I, ITER
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, MAX, SIGN, SQRT
+! ..
+! .. FIRST EXECUTABLE STATEMENT DVHIN
+! ..
+        NITER = 0
+        TDIST = ABS(TOUT-T0)
+        TROUND = UROUND*MAX(ABS(T0),ABS(TOUT))
+        IF (TDIST<TWO*TROUND) GOTO 40
+
+!       Set a lower bound on H based on the roundoff level in T0
+!       and TOUT.
+        HLB = HUN*TROUND
+!       Set an upper bound on H based on TOUT-T0 and the initial
+!       Y and YDOT.
+        HUB = PT1*TDIST
+        ATOLI = ATOL(1)
+        DO I = 1, N
+          IF (ITOL==2 .OR. ITOL==4) ATOLI = ATOL(I)
+          DELYI = PT1*ABS(Y0(I)) + ATOLI
+          AFI = ABS(YDOT(I))
+          IF (AFI*HUB>DELYI) HUB = DELYI/AFI
+        END DO
+!       Set initial guess for H as geometric mean of upper and
+!       lower bounds.
+        ITER = 0
+        HG = SQRT(HLB*HUB)
+!       If the bounds have crossed, exit with the mean value.
+        IF (HUB<HLB) THEN
+          H0 = HG
+          GOTO 30
+        END IF
+
+!       Looping point for iteration.
+10      CONTINUE
+!       Estimate the second derivative as a difference quotient in f.
+        H = SIGN(HG,TOUT-T0)
+        T1 = T0 + H
+        Y(1:N) = Y0(1:N) + H*YDOT(1:N)
+        CALL F(N,T1,Y,TEMP)
+        NFE = NFE + 1
+        TEMP(1:N) = (TEMP(1:N)-YDOT(1:N))/H
+        YDDNRM = DVNORM(N,TEMP,EWT)
+!       Get the corresponding new value of h.
+        IF (YDDNRM*HUB*HUB>TWO) THEN
+          HNEW = SQRT(TWO/YDDNRM)
+        ELSE
+          HNEW = SQRT(HG*HUB)
+        END IF
+        ITER = ITER + 1
+
+! Test the stopping conditions.
+! Stop if the new and previous h values differ by a factor of < 2.
+! Stop if four iterations have been done. Also, stop with previous h
+! if HNEW/HG > 2 after first iteration, as this probably means that
+! the second derivative value is bad because of cancellation error.
+
+        IF (ITER>=4) GOTO 20
+        HRAT = HNEW/HG
+        IF ((HRAT>HALF) .AND. (HRAT<TWO)) GOTO 20
+        IF ((ITER>=2) .AND. (HNEW>TWO*HG)) THEN
+          HNEW = HG
+          GOTO 20
+        END IF
+        HG = HNEW
+        GOTO 10
+
+!       Iteration done. Apply bounds, bias factor, and sign. Then exit.
+20      H0 = HNEW*HALF
+        IF (H0<HLB) H0 = HLB
+        IF (H0>HUB) H0 = HUB
+30      H0 = SIGN(H0,TOUT-T0)
+        NITER = ITER
+        IER = 0
+        RETURN
+!       Error return for TOUT - T0 too small.
+40      IER = -1
+        RETURN
+
+      END SUBROUTINE DVHIN
+!_______________________________________________________________________
+
+      SUBROUTINE DVINDY_CORE(T,K,YH,LDYH,DKY,IFLAG)
+! ..
+! Interpolate the solution and derivative.
+! ..
+! DVINDY_CORE computes interpolated values of the K-th derivative
+! of the dependent variable vector y, and stores it in DKY. This
+! routine is called within the package with K = 0 and T = TOUT,
+! but may also be called by the user for any K up to the current
+! order. (See detailed instructions in the usage documentation.)
+! The computed values in DKY are gotten by interpolation using the
+! Nordsieck history array YH. This array corresponds uniquely to a
+! vector-valued polynomial of degree NQCUR or less, and DKY is set
+! to the K-th derivative of this polynomial at T.
+! The formula for DKY is:
+!              q
+!  DKY(i)  =  sum  c(j,K) * (T - TN)**(j-K) * H**(-j) * YH(i,j+1)
+!             j=K
+! where  c(j,K) = j*(j-1)*...*(j-K+1), q = NQCUR, TN = TCUR, H = HCUR.
+! The quantities  NQ = NQCUR, L = NQ+1, N, TN, and H are
+! communicated by PRIVATE variables. The above sum is done in reverse
+! order.
+! IFLAG is returned negative if either K or T is out of bounds.
+! Discussion above and comments in driver explain all variables.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        REAL (WP), INTENT (IN) :: T
+        INTEGER, INTENT (INOUT) :: IFLAG
+        INTEGER, INTENT (IN) :: K, LDYH
+! ..
+! .. Array Arguments ..
+        REAL (WP), INTENT (INOUT) :: DKY(*), YH(LDYH,*)
+! ..
+! .. Local Scalars ..
+        REAL (WP) :: C, R, S, TFUZZ, TN1, TP
+        INTEGER :: IC, J, JB, JB2, JJ, JJ1, JP1
+        CHARACTER (80) :: MSG
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, REAL, SIGN
+! ..
+! .. FIRST EXECUTABLE STATEMENT DVINDY_CORE
+! ..
+        IFLAG = 0
+        IF (K<0 .OR. K>NQ) GOTO 40
+!       TFUZZ = HUN * UROUND * (TN + HU)
+        TFUZZ = HUN*UROUND*SIGN(ABS(TN)+ABS(HU),HU)
+        TP = TN - HU - TFUZZ
+        TN1 = TN + TFUZZ
+        IF ((T-TP)*(T-TN1)>ZERO) GOTO 50
+        S = (T-TN)/H
+        IC = 1
+        IF (K==0) GOTO 10
+        JJ1 = L - K
+        DO JJ = JJ1, NQ
+          IC = IC*JJ
+        END DO
+10      C = REAL(IC)
+        DKY(1:N) = C*YH(1:N,L)
+        IF (K==NQ) GOTO 30
+        JB2 = NQ - K
+        DO JB = 1, JB2
+          J = NQ - JB
+          JP1 = J + 1
+          IC = 1
+          IF (K==0) GOTO 20
+          JJ1 = JP1 - K
+          DO JJ = JJ1, J
+            IC = IC*JJ
+          END DO
+20        C = REAL(IC)
+          DKY(1:N) = C*YH(1:N,JP1) + S*DKY(1:N)
+        END DO
+30      R = H**(-K)
+        CALL DSCAL_F90(N,R,DKY,1)
+        RETURN
+40      MSG = 'Error in DVINDY, K(=I1) is illegal.'
+        CALL XERRDV(MSG,1360,1,1,K,0,0,ZERO,ZERO)
+        IFLAG = -1
+        RETURN
+50      MSG = 'Error in DVINDY, T(=R1) is illegal. T is not'
+        CALL XERRDV(MSG,1370,1,0,0,0,1,T,ZERO)
+        MSG = 'in interval TCUR - HU(= R1) to TCUR(=R2)'
+        CALL XERRDV(MSG,1370,1,0,0,0,2,TP,TN)
+        IFLAG = -2
+        RETURN
+
+      END SUBROUTINE DVINDY_CORE
+!_______________________________________________________________________
+
+      SUBROUTINE DVINDY_BNDS(T,K,YH,LDYH,DKY,IFLAG)
+! ..
+! Interpolate the solution and derivative and enforce nonnegativity
+! (used only if user calls DVINDY and the BOUNDS option is in
+! use).
+! ..
+! This version of DVINDY_CORE enforces nonnegativity and is called
+! only by DVINDY (which is called only by the user). It uses the
+! private YNNEG array produced by a call to DVINDY_CORE from DVINDY
+! to enforce nonnegativity.
+! DVINDY_BNDS computes interpolated values of the K-th derivative
+! of the dependent variable vector y, and stores it in DKY. This
+! routine is called within the package with K = 0 and T = TOUT,
+! but may also be called by the user for any K up to the current
+! order. (See detailed instructions in the usage documentation.)
+! The computed values in DKY are gotten by interpolation using the
+! Nordsieck history array YH. This array corresponds uniquely to a
+! vector-valued polynomial of degree NQCUR or less, and DKY is set
+! to the K-th derivative of this polynomial at T.
+! The formula for DKY is:
+!              q
+!  DKY(i)  =  sum  c(j,K) * (T - TN)**(j-K) * H**(-j) * YH(i,j+1)
+!             j=K
+! where  c(j,K) = j*(j-1)*...*(j-K+1), q = NQCUR, TN = TCUR, H = HCUR.
+! The quantities  NQ = NQCUR, L = NQ+1, N, TN, and H are
+! communicated by PRIVATE variables. The above sum is done in reverse
+! order.
+! IFLAG is returned negative if either K or T is out of bounds.
+! Discussion above and comments in driver explain all variables.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        REAL (WP), INTENT (IN) :: T
+        INTEGER, INTENT (INOUT) :: IFLAG
+        INTEGER, INTENT (IN) :: K, LDYH
+! ..
+! .. Array Arguments ..
+        REAL (WP), INTENT (INOUT) :: DKY(*), YH(LDYH,*)
+! ..
+! .. Local Scalars ..
+        REAL (WP) :: C, R, S, TFUZZ, TN1, TP
+        INTEGER :: I, IC, J, JB, JB2, JJ, JJ1, JP1
+        CHARACTER (80) :: MSG
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, REAL, SIGN
+! ..
+! .. FIRST EXECUTABLE STATEMENT DVINDY_BNDS
+! ..
+        IFLAG = 0
+        IF (K==0) GOTO 50
+        IF (K<0 .OR. K>NQ) GOTO 40
+!       TFUZZ = HUN * UROUND * (TN + HU)
+        TFUZZ = HUN*UROUND*SIGN(ABS(TN)+ABS(HU),HU)
+        TP = TN - HU - TFUZZ
+        TN1 = TN + TFUZZ
+        IF ((T-TP)*(T-TN1)>ZERO) GOTO 60
+        S = (T-TN)/H
+        IC = 1
+        IF (K==0) GOTO 10
+        JJ1 = L - K
+        DO JJ = JJ1, NQ
+          IC = IC*JJ
+        END DO
+10      C = REAL(IC)
+        DKY(1:N) = C*YH(1:N,L)
+        IF (BOUNDS) THEN
+          DO I = 1, NDX
+            IF (YNNEG(IDX(I))<LB(I) .OR. YNNEG(IDX(I))>UB(I)) DKY(IDX(I)) &
+              = ZERO
+          END DO
+        END IF
+        IF (K==NQ) GOTO 30
+        JB2 = NQ - K
+        DO JB = 1, JB2
+          J = NQ - JB
+          JP1 = J + 1
+          IC = 1
+          IF (K==0) GOTO 20
+          JJ1 = JP1 - K
+          DO JJ = JJ1, J
+            IC = IC*JJ
+          END DO
+20        C = REAL(IC)
+          DKY(1:N) = C*YH(1:N,JP1) + S*DKY(1:N)
+          IF (BOUNDS) THEN
+            DO I = 1, NDX
+              IF (YNNEG(IDX(I))<LB(I) .OR. YNNEG(IDX(I))>UB(I)) DKY(IDX(I)) &
+                = ZERO
+            END DO
+          END IF
+        END DO
+30      R = H**(-K)
+        CALL DSCAL_F90(N,R,DKY,1)
+        RETURN
+40      MSG = 'Error in DVINDY, K(=I1) is illegal.'
+        CALL XERRDV(MSG,1380,1,1,K,0,0,ZERO,ZERO)
+        IFLAG = -1
+        RETURN
+50      MSG = 'DVINDY_BNDS cannot be called with k = 0.'
+        CALL XERRDV(MSG,1390,1,0,0,0,0,ZERO,ZERO)
+        IFLAG = -1
+        RETURN
+60      MSG = 'Error in DVINDY, T(=R1) is illegal. T is not'
+        CALL XERRDV(MSG,1400,1,0,0,0,1,T,ZERO)
+        MSG = 'not in interval TCUR - HU(= R1) to TCUR(=R2)'
+        CALL XERRDV(MSG,1400,1,0,0,0,2,TP,TN)
+        IFLAG = -2
+        RETURN
+
+      END SUBROUTINE DVINDY_BNDS
+!_______________________________________________________________________
+
+      SUBROUTINE DVINDY(T,K,DKY,IFLAG)
+! ..
+! This is a dummy interface to allow the user to interpolate the
+! solution and the derivative (not called by DVODE_F90).
+! ..
+! May be used if the user wishes to interpolate solution or
+! derivative following a successful return from DVODE_F90
+! DVINDY computes interpolated values of the K-th derivative of
+! the dependent variable vector y, and stores it in DKY. This
+! routine is called within the package with K = 0 and T = TOUT,
+! but may also be called by the user for any K up to the current
+! order. (See detailed instructions in the usage documentation.)
+! The computed values in DKY are gotten by interpolation using the
+! Nordsieck history array YH. This array corresponds uniquely to a
+! vector-valued polynomial of degree NQCUR or less, and DKY is set
+! to the K-th derivative of this polynomial at T.
+! IFLAG is returned negative if either K or T is out of bounds.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        REAL (WP), INTENT (IN) :: T
+        INTEGER, INTENT (INOUT) :: IFLAG
+        INTEGER, INTENT (IN) :: K
+! ..
+! .. Array Arguments ..
+        REAL (WP), INTENT (INOUT) :: DKY(*)
+! ..
+! .. Local Scalars ..
+        INTEGER :: I, IER
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ALLOCATED, SIZE
+! ..
+! .. FIRST EXECUTABLE STATEMENT DVINDY
+! ..
+        CALL DVINDY_CORE(T,K,RWORK(LYH),N,DKY,IFLAG)
+        IF (.NOT.BOUNDS) RETURN
+
+        IF (K==0) THEN
+!         Interpolate only the solution.
+          CALL DVINDY_CORE(T,K,RWORK(LYH),N,DKY,IFLAG)
+!         Enforce bounds.
+          DO I = 1, NDX
+            IF (DKY(IDX(I))<LB(I)) DKY(IDX(I)) = LB(I)
+            IF (DKY(IDX(I))>UB(I)) DKY(IDX(I)) = UB(I)
+          END DO
+          RETURN
+        END IF
+
+!       k > 0 - derivatives requested.
+
+!       Make sure space is available for the interpolated solution.
+        IF (ALLOCATED(YNNEG)) THEN
+          IF (SIZE(YNNEG)<N) THEN
+            DEALLOCATE (YNNEG,STAT=IER)
+            CALL CHECK_STAT(IER,460)
+            ALLOCATE (YNNEG(N),STAT=IER)
+            CALL CHECK_STAT(IER,470)
+          END IF
+        ELSE
+          ALLOCATE (YNNEG(N),STAT=IER)
+          CALL CHECK_STAT(IER,480)
+        END IF
+!       Interpolate the solution; do not enforce bounds.
+        CALL DVINDY_CORE(T,0,RWORK(LYH),N,YNNEG,IFLAG)
+!       Now interpolate the derivative using YNNEG to enforce
+!       nonnegativity.
+        CALL DVINDY_BNDS(T,K,RWORK(LYH),N,DKY,IFLAG)
+        RETURN
+
+      END SUBROUTINE DVINDY
+!_______________________________________________________________________
+
+      SUBROUTINE DVSTEP(Y,YH,LDYH,YH1,EWT,SAVF,ACOR,WM,IWM,F,JAC, &
+        VNLS,ATOL,ITOL)
+! ..
+! This is the core step integrator for nonstiff and for dense, banded,
+! and sparse solutions.
+! ..
+! DVSTEP performs one step of the integration of an initial value
+! problem for a system of ordinary differential equations. It
+! calls subroutine DVNLSD for the solution of the nonlinear system
+! arising in the time step. Thus it is independent of the problem
+! Jacobian structure and the type of nonlinear system solution method.
+! DVSTEP returns a completion flag KFLAG (in PRIVATE variables block).
+! A return with KFLAG = -1 or -2 means either ABS(H) = HMIN or 10
+! consecutive failures occurred. On a return with KFLAG negative,
+! the values of TN and the YH array are as of the beginning of the last
+! step, and H is the last step size attempted.
+! Communication with DVSTEP is done with the following variables:
+! Y      = An array of length N used for the dependent variable vector.
+! YH     = An LDYH by LMAX array containing the dependent variables
+!          and their approximate scaled derivatives, where
+!          LMAX = MAXORD + 1. YH(i,j+1) contains the approximate
+!          j-th derivative of y(i), scaled by H**j/factorial(j)
+!          (j = 0,1,...,NQ). On entry for the first step, the first
+!          two columns of YH must be set from the initial values.
+! LDYH   = A constant integer >= N, the first dimension of YH.
+!          N is the number of ODEs in the system.
+! YH1    = A one-dimensional array occupying the same space as YH.
+! EWT    = An array of length N containing multiplicative weights
+!          for local error measurements. Local errors in y(i) are
+!          compared to 1.0/EWT(i) in various error tests.
+! SAVF   = An array of working storage, of length N.
+!          also used for input of YH(*,MAXORD+2) when JSTART = -1
+!          and MAXORD < the current order NQ.
+! ACOR   = A work array of length N, used for the accumulated
+!          corrections. On a successful return, ACOR(i) contains
+!          the estimated one-step local error in y(i).
+! WM,IWM = Real and integer work arrays associated with matrix
+!          operations in DVNLSD.
+! F      = Dummy name for the user supplied subroutine for f.
+! JAC    = Dummy name for the user supplied Jacobian subroutine.
+! DVNLSD = Dummy name for the nonlinear system solving subroutine,
+!          whose real name is dependent on the method used.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: LDYH, ITOL
+! ..
+! .. Array Arguments ..
+        REAL (WP), INTENT (INOUT) :: ACOR(*), EWT(*), SAVF(*), &
+          WM(*), Y(*), YH(LDYH,*), YH1(*)
+        REAL (WP), INTENT (IN) :: ATOL(*)
+        INTEGER, INTENT (INOUT) :: IWM(*)
+! ..
+! .. Subroutine Arguments ..
+        EXTERNAL F, JAC, VNLS
+! ..
+! .. Local Scalars ..
+        REAL (WP) :: CNQUOT, DDN, DSM, DUP, ETAQ, ETAQM1, ETAQP1, FLOTL, R, &
+          TOLD
+        INTEGER :: I, I1, I2, IBACK, J, JB, NCF, NFLAG
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, MAX, MIN, REAL
+! ..
+! .. FIRST EXECUTABLE STATEMENT DVSTEP
+! ..
+        KFLAG = 0
+        TOLD = TN
+        NCF = 0
+        JCUR = 0
+        NFLAG = 0
+        IF (JSTART>0) GOTO 10
+        IF (JSTART==-1) GOTO 30
+
+! On the first call, the order is set to 1, and other variables are
+! initialized. ETAMAX is the maximum ratio by which H can be increased
+! in a single step. It is normally 10, but is larger during the first
+! step to compensate for the small initial H. If a failure occurs
+! (in corrector convergence or error test), ETAMAX is set to 1 for
+! the next increase.
+
+        LMAX = MAXORD + 1
+        NQ = 1
+        L = 2
+        NQNYH = NQ*LDYH
+        TAU(1) = H
+        PRL1 = ONE
+        RC = ZERO
+        ETAMAX = ETAMX1
+        NQWAIT = 2
+        HSCAL = H
+        GOTO 70
+
+! Take preliminary actions on a normal continuation step (JSTART > 0).
+! If the driver changed H, then ETA must be reset and NEWH set to 1.
+! If a change of order was dictated on the previous step, then it is
+! done here and appropriate adjustments in the history are made.
+! On an order decrease, the history array is adjusted by DVJUST.
+! On an order increase, the history array is augmented by a column.
+! On a change of step size H, the history array YH is rescaled.
+
+10      CONTINUE
+        IF (KUTH==1) THEN
+          ETA = MIN(ETA,H/HSCAL)
+          NEWH = 1
+        END IF
+20      IF (NEWH==0) GOTO 70
+        IF (NEWQ==NQ) GOTO 60
+        IF (NEWQ<NQ) THEN
+          CALL DVJUST(YH,LDYH,-1)
+          NQ = NEWQ
+          L = NQ + 1
+          NQWAIT = L
+          GOTO 60
+        END IF
+        IF (NEWQ>NQ) THEN
+          CALL DVJUST(YH,LDYH,1)
+          NQ = NEWQ
+          L = NQ + 1
+          NQWAIT = L
+          GOTO 60
+        END IF
+
+! The following block handles preliminaries needed when JSTART = -1.
+! If N was reduced, zero out part of YH to avoid undefined references.
+! If MAXORD was reduced to a value less than the tentative order NEWQ,
+! then NQ is set to MAXORD, and a new H ratio ETA is chosen.
+! Otherwise, we take the same preliminary actions as for JSTART > 0.
+! In any case, NQWAIT is reset to L = NQ + 1 to prevent further
+! changes in order for that many steps. The new H ratio ETA is
+! limited by the input H if KUTH = 1, by HMIN if KUTH = 0, and by
+! HMXI in any case. Finally, the history array YH is rescaled.
+
+30      CONTINUE
+        LMAX = MAXORD + 1
+        IF (N==LDYH) GOTO 40
+        I1 = 1 + (NEWQ+1)*LDYH
+        I2 = (MAXORD+1)*LDYH
+        IF (I1>I2) GOTO 40
+        YH1(I1:I2) = ZERO
+40      IF (NEWQ<=MAXORD) GOTO 50
+        FLOTL = REAL(LMAX)
+        IF (MAXORD<NQ-1) THEN
+          DDN = DVNORM(N,SAVF,EWT)/TQ(1)
+          ETA = ONE/((BIAS1*DDN)**(ONE/FLOTL)+ADDON)
+        END IF
+        IF (MAXORD==NQ .AND. NEWQ==NQ+1) ETA = ETAQ
+        IF (MAXORD==NQ-1 .AND. NEWQ==NQ+1) THEN
+          ETA = ETAQM1
+          CALL DVJUST(YH,LDYH,-1)
+        END IF
+        IF (MAXORD==NQ-1 .AND. NEWQ==NQ) THEN
+          DDN = DVNORM(N,SAVF,EWT)/TQ(1)
+          ETA = ONE/((BIAS1*DDN)**(ONE/FLOTL)+ADDON)
+          CALL DVJUST(YH,LDYH,-1)
+        END IF
+        ETA = MIN(ETA,ONE)
+        NQ = MAXORD
+        L = LMAX
+50      IF (KUTH==1) ETA = MIN(ETA,ABS(H/HSCAL))
+        IF (KUTH==0) ETA = MAX(ETA,HMIN/ABS(HSCAL))
+        ETA = ETA/MAX(ONE,ABS(HSCAL)*HMXI*ETA)
+        NEWH = 1
+        NQWAIT = L
+        IF (NEWQ<=MAXORD) GOTO 20
+!       Rescale the history array for a change in H by a factor of ETA.
+60      R = ONE
+        DO J = 2, L
+          R = R*ETA
+! Original:
+!         CALL DSCAL_F90(N,R,YH(1,J),1)
+          CALL DSCAL_F90(N,R,YH(1:N,J),1)
+        END DO
+        H = HSCAL*ETA
+        HSCAL = H
+        RC = RC*ETA
+        NQNYH = NQ*LDYH
+
+! This section computes the predicted values by effectively
+! multiplying the YH array by the Pascal triangle matrix.
+! DVSET is called to calculate all integration coefficients.
+! RC is the ratio of new to old values of the coefficient
+! H/EL(2)=h/l1.
+
+70      TN = TN + H
+        I1 = NQNYH + 1
+        DO JB = 1, NQ
+          I1 = I1 - LDYH
+          DO I = I1, NQNYH
+            YH1(I) = YH1(I) + YH1(I+LDYH)
+          END DO
+        END DO
+        CALL DVSET
+        RL1 = ONE/EL(2)
+        RC = RC*(RL1/PRL1)
+        PRL1 = RL1
+
+!       Call the nonlinear system solver.
+
+        CALL VNLS(Y,YH,LDYH,SAVF,EWT,ACOR,IWM,WM,F,JAC,NFLAG, &
+          ATOL,ITOL)
+
+        IF (NFLAG==0) GOTO 80
+
+! The DVNLSD routine failed to achieve convergence (NFLAG /= 0).
+! The YH array is retracted to its values before prediction.
+! The step size H is reduced and the step is retried, if possible.
+! Otherwise, an error exit is taken.
+
+        NCF = NCF + 1
+        NCFN = NCFN + 1
+        ETAMAX = ONE
+        TN = TOLD
+        I1 = NQNYH + 1
+        DO JB = 1, NQ
+          I1 = I1 - LDYH
+          DO I = I1, NQNYH
+            YH1(I) = YH1(I) - YH1(I+LDYH)
+          END DO
+        END DO
+        IF (NFLAG<-1) GOTO 240
+        IF (ABS(H)<=HMIN*ONEPSM) GOTO 230
+!       IF (NCF==MXNCF) GOTO 230
+        IF (NCF==CONSECUTIVE_CFAILS) GOTO 230
+        ETA = ETACF
+        ETA = MAX(ETA,HMIN/ABS(H))
+        NFLAG = -1
+        GOTO 60
+
+! The corrector has converged (NFLAG = 0). The local error test is
+! made and control passes to statement 500 if it fails.
+
+80      CONTINUE
+        DSM = ACNRM/TQ(2)
+        IF (DSM>ONE) GOTO 100
+
+! After a successful step, update the YH and TAU arrays and decrement
+! NQWAIT. If NQWAIT is then 1 and NQ < MAXORD, then ACOR is saved
+! for use in a possible order increase on the next step.
+! If ETAMAX = 1 (a failure occurred this step), keep NQWAIT >= 2.
+
+        KFLAG = 0
+        NST = NST + 1
+        HU = H
+        NQU = NQ
+        DO IBACK = 1, NQ
+          I = L - IBACK
+          TAU(I+1) = TAU(I)
+        END DO
+        TAU(1) = H
+
+        IF (BOUNDS) THEN
+! Original:
+!         CALL DAXPY_F90(N,EL(1),ACOR,1,YH(1,1),1)
+!         CALL DAXPY_F90(N,EL(2),ACOR,1,YH(1,2),1)
+          CALL DAXPY_F90(N,EL(1),ACOR,1,YH(1:N,1),1)
+          CALL DAXPY_F90(N,EL(2),ACOR,1,YH(1:N,2),1)
+!         Take care of roundoff causing y(t) to be slightly unequal
+!         to the constraint bound.
+          DO J = 1, NDX
+            YH(IDX(J),1) = MAX(YH(IDX(J),1),LB(J))
+            Y(IDX(J)) = MAX(Y(IDX(J)),LB(J))
+            YH(IDX(J),1) = MIN(YH(IDX(J),1),UB(J))
+            Y(IDX(J)) = MIN(Y(IDX(J)),UB(J))
+          END DO
+!         Update the higher derivatives and project to zero if necessary.
+          IF (L>2) THEN
+            DO J = 3, L
+! Original:
+!             CALL DAXPY_F90(N,EL(J),ACOR,1,YH(1,J),1)
+              CALL DAXPY_F90(N,EL(J),ACOR,1,YH(1:N,J),1)
+            END DO
+          END IF
+        ELSE
+!         Proceed as usual.
+          DO J = 1, L
+! Original:
+!           CALL DAXPY_F90(N,EL(J),ACOR,1,YH(1,J),1)
+            CALL DAXPY_F90(N,EL(J),ACOR,1,YH(1:N,J),1)
+          END DO
+        END IF
+
+        NQWAIT = NQWAIT - 1
+        IF ((L==LMAX) .OR. (NQWAIT/=1)) GOTO 90
+! Original:
+!       CALL DCOPY_F90(N,ACOR,1,YH(1,LMAX),1)
+        CALL DCOPY_F90(N,ACOR,1,YH(1:N,LMAX),1)
+        CONP = TQ(5)
+90      IF (ABS(ETAMAX-ONE)>0) GOTO 130
+        IF (NQWAIT<2) NQWAIT = 2
+        NEWQ = NQ
+        NEWH = 0
+        ETA = ONE
+        HNEW = H
+        GOTO 250
+
+! The error test failed. KFLAG keeps track of multiple failures.
+! Restore TN and the YH array to their previous values, and prepare
+! to try the step again. Compute the optimum step size for the
+! same order. After repeated failures, H is forced to decrease
+! more rapidly.
+
+100     KFLAG = KFLAG - 1
+        NETF = NETF + 1
+        NFLAG = -2
+        TN = TOLD
+        I1 = NQNYH + 1
+        DO JB = 1, NQ
+          I1 = I1 - LDYH
+          DO I = I1, NQNYH
+            YH1(I) = YH1(I) - YH1(I+LDYH)
+          END DO
+        END DO
+        IF (ABS(H)<=HMIN*ONEPSM) GOTO 220
+        ETAMAX = ONE
+        IF (KFLAG<=KFC) GOTO 110
+!       Compute ratio of new H to current H at the current order.
+        FLOTL = REAL(L)
+        ETA = ONE/((BIAS2*DSM)**(ONE/FLOTL)+ADDON)
+        ETA = MAX(ETA,HMIN/ABS(H),ETAMIN)
+        IF ((KFLAG<=-2) .AND. (ETA>ETAMXF)) ETA = ETAMXF
+        GOTO 60
+
+! Control reaches this section if 3 or more consecutive failures
+! have occurred. It is assumed that the elements of the YH array
+! have accumulated errors of the wrong order. The order is reduced
+! by one, if possible. Then H is reduced by a factor of 0.1 and
+! the step is retried. After a total of 7 consecutive failures,
+! an exit is taken with KFLAG = -1.
+
+!110     IF (KFLAG==KFH) GOTO 220
+110     IF (KFLAG==CONSECUTIVE_EFAILS) GOTO 220
+        IF (NQ==1) GOTO 120
+        ETA = MAX(ETAMIN,HMIN/ABS(H))
+        CALL DVJUST(YH,LDYH,-1)
+        L = NQ
+        NQ = NQ - 1
+        NQWAIT = L
+        GOTO 60
+120     ETA = MAX(ETAMIN,HMIN/ABS(H))
+        H = H*ETA
+        HSCAL = H
+        TAU(1) = H
+        CALL F(N,TN,Y,SAVF)
+        NFE = NFE + 1
+        IF (BOUNDS) THEN
+          DO I = 1, NDX
+            IF (ABS(YH(IDX(I),1)-LB(I))<=ZERO) SAVF(IDX(I)) = &
+              MAX(SAVF(IDX(I)),ZERO)
+            IF (ABS(YH(IDX(I),1)-UB(I))<=ZERO) SAVF(IDX(I)) = &
+              MIN(SAVF(IDX(I)),ZERO)
+          END DO
+        END IF
+        YH(1:N,2) = H*SAVF(1:N)
+        NQWAIT = 10
+        GOTO 70
+
+! If NQWAIT = 0, an increase or decrease in order by one is considered.
+! Factors ETAQ, ETAQM1, ETAQP1 are computed by which H could be
+! multiplied at order q, q-1, or q+1, respectively. The largest of
+! these is determined, and the new order and step size set accordingly.
+! A change of H or NQ is made only if H increases by at least a factor
+! of THRESH. If an order change is considered and rejected, then NQWAIT
+! is set to 2 (reconsider it after 2 steps).
+
+!       Compute ratio of new H to current H at the current order.
+130     FLOTL = REAL(L)
+        ETAQ = ONE/((BIAS2*DSM)**(ONE/FLOTL)+ADDON)
+        IF (NQWAIT/=0) GOTO 170
+        NQWAIT = 2
+        ETAQM1 = ZERO
+        IF (NQ==1) GOTO 140
+!       Compute ratio of new H to current H at the current order
+!       less one.
+! Original:
+!       DDN = DVNORM(N,YH(1,L),EWT)/TQ(1)
+        DDN = DVNORM(N,YH(1:N,L),EWT)/TQ(1)
+        ETAQM1 = ONE/((BIAS1*DDN)**(ONE/(FLOTL-ONE))+ADDON)
+140     ETAQP1 = ZERO
+        IF (L==LMAX) GOTO 150
+!       Compute ratio of new H to current H at current order plus one.
+        CNQUOT = (TQ(5)/CONP)*(H/TAU(2))**L
+        SAVF(1:N) = ACOR(1:N) - CNQUOT*YH(1:N,LMAX)
+        DUP = DVNORM(N,SAVF,EWT)/TQ(3)
+        ETAQP1 = ONE/((BIAS3*DUP)**(ONE/(FLOTL+ONE))+ADDON)
+150     IF (ETAQ>=ETAQP1) GOTO 160
+        IF (ETAQP1>ETAQM1) GOTO 190
+        GOTO 180
+160     IF (ETAQ<ETAQM1) GOTO 180
+170     ETA = ETAQ
+        NEWQ = NQ
+        GOTO 200
+180     ETA = ETAQM1
+        NEWQ = NQ - 1
+        GOTO 200
+190     ETA = ETAQP1
+        NEWQ = NQ + 1
+! Original:
+!       CALL DCOPY_F90(N,ACOR,1,YH(1,LMAX),1)
+        CALL DCOPY_F90(N,ACOR,1,YH(1:N,LMAX),1)
+!       Test tentative new H against THRESH, ETAMAX, and HMXI and
+!       then exit.
+200     IF (ETA<THRESH .OR. ABS(ETAMAX-ONE)<=ZERO) GOTO 210
+        ETA = MIN(ETA,ETAMAX)
+        ETA = ETA/MAX(ONE,ABS(H)*HMXI*ETA)
+        NEWH = 1
+        HNEW = H*ETA
+        GOTO 250
+210     NEWQ = NQ
+        NEWH = 0
+        ETA = ONE
+        HNEW = H
+        GOTO 250
+
+! All returns are made through this section.
+! On a successful return, ETAMAX is reset and ACOR is scaled.
+
+220     KFLAG = -1
+        GOTO 260
+230     KFLAG = -2
+        GOTO 260
+240     IF (NFLAG==-2) KFLAG = -3
+        IF (NFLAG==-3) KFLAG = -4
+        GOTO 260
+250     ETAMAX = ETAMX3
+        IF (NST<=10) ETAMAX = ETAMX2
+        R = ONE/TQ(2)
+
+        CALL DSCAL_F90(N,R,ACOR,1)
+260     JSTART = 1
+        RETURN
+
+      END SUBROUTINE DVSTEP
+!_______________________________________________________________________
+
+      SUBROUTINE DVSET
+! ..
+! Set the integration coefficients for DVSTEP.
+! ..
+! For each order NQ, the coefficients in EL are calculated by use
+! of the generating polynomial lambda(x), with coefficients EL(i).
+!      lambda(x) = EL(1) + EL(2)*x + ... + EL(NQ+1)*(x**NQ).
+! For the backward differentiation formulas,
+!                                     NQ-1
+!      lambda(x) = (1 + x/xi*(NQ)) * product (1 + x/xi(i)) .
+!                                     i = 1
+! For the Adams formulas,
+!                              NQ-1
+!      (d/dx) lambda(x) = c * product (1 + x/xi(i)),
+!                              i = 1
+!      lambda(-1) = 0,    lambda(0) = 1,
+! where c is a normalization constant.
+! In both cases, xi(i) is defined by
+!      H*xi(i) = t sub n - t sub (n-i)
+!              = H + TAU(1) + TAU(2) + ... TAU(i-1).
+! In addition to variables described previously, communication
+! with DVSET uses the following:
+!   TAU    = A vector of length 13 containing the past NQ values
+!            of H.
+!   EL     = A vector of length 13 in which vset stores the
+!            coefficients for the corrector formula.
+!   TQ     = A vector of length 5 in which vset stores constants
+!            used for the convergence test, the error test, and the
+!            selection of H at a new order.
+!   METH   = The basic method indicator.
+!   NQ     = The current order.
+!   L      = NQ + 1, the length of the vector stored in EL, and
+!            the number of columns of the YH array being used.
+!   NQWAIT = A counter controlling the frequency of order changes.
+!            An order change is about to be considered if NQWAIT = 1.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Local Scalars ..
+        REAL (WP) :: AHATN0, ALPH0, CNQM1, CSUM, ELP, EM0, FLOTI, FLOTL, &
+          FLOTNQ, HSUM, RXI, RXIS, S, T1, T2, T3, T4, T5, T6, XI
+        INTEGER :: I, IBACK, J, JP1, NQM1, NQM2
+! ..
+! .. Local Arrays ..
+        REAL (WP) :: EM(13)
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, REAL
+! ..
+! .. FIRST EXECUTABLE STATEMENT DVSET
+! ..
+        FLOTL = REAL(L)
+        NQM1 = NQ - 1
+        NQM2 = NQ - 2
+        GOTO (10,40) METH
+
+!       Set coefficients for Adams methods.
+10      IF (NQ/=1) GOTO 20
+        EL(1) = ONE
+        EL(2) = ONE
+        TQ(1) = ONE
+        TQ(2) = TWO
+        TQ(3) = SIX*TQ(2)
+        TQ(5) = ONE
+        GOTO 60
+20      HSUM = H
+        EM(1) = ONE
+        FLOTNQ = FLOTL - ONE
+        EM(2:L) = ZERO
+        DO J = 1, NQM1
+          IF ((J/=NQM1) .OR. (NQWAIT/=1)) GOTO 30
+          S = ONE
+          CSUM = ZERO
+          DO I = 1, NQM1
+            CSUM = CSUM + S*EM(I)/REAL(I+1)
+            S = -S
+          END DO
+          TQ(1) = EM(NQM1)/(FLOTNQ*CSUM)
+30        RXI = H/HSUM
+          DO IBACK = 1, J
+            I = (J+2) - IBACK
+            EM(I) = EM(I) + EM(I-1)*RXI
+          END DO
+          HSUM = HSUM + TAU(J)
+        END DO
+!       Compute integral from -1 to 0 of polynomial and of x times it.
+        S = ONE
+        EM0 = ZERO
+        CSUM = ZERO
+        DO I = 1, NQ
+          FLOTI = REAL(I)
+          EM0 = EM0 + S*EM(I)/FLOTI
+          CSUM = CSUM + S*EM(I)/(FLOTI+ONE)
+          S = -S
+        END DO
+!       In EL, form coefficients of normalized integrated polynomial.
+        S = ONE/EM0
+        EL(1) = ONE
+        DO I = 1, NQ
+          EL(I+1) = S*EM(I)/REAL(I)
+        END DO
+        XI = HSUM/H
+        TQ(2) = XI*EM0/CSUM
+        TQ(5) = XI/EL(L)
+        IF (NQWAIT/=1) GOTO 60
+!       For higher order control constant, multiply polynomial by
+!       1+x/xi(q).
+        RXI = ONE/XI
+        DO IBACK = 1, NQ
+          I = (L+1) - IBACK
+          EM(I) = EM(I) + EM(I-1)*RXI
+        END DO
+!       Compute integral of polynomial.
+        S = ONE
+        CSUM = ZERO
+        DO I = 1, L
+          CSUM = CSUM + S*EM(I)/REAL(I+1)
+          S = -S
+        END DO
+        TQ(3) = FLOTL*EM0/CSUM
+        GOTO 60
+
+!       Set coefficients for BDF methods.
+40      EL(3:L) = ZERO
+        EL(1) = ONE
+        EL(2) = ONE
+        ALPH0 = -ONE
+        AHATN0 = -ONE
+        HSUM = H
+        RXI = ONE
+        RXIS = ONE
+        IF (NQ==1) GOTO 50
+        DO J = 1, NQM2
+!       In EL, construct coefficients of (1+x/xi(1))*...*(1+x/xi(j+1)).
+          HSUM = HSUM + TAU(J)
+          RXI = H/HSUM
+          JP1 = J + 1
+          ALPH0 = ALPH0 - ONE/REAL(JP1)
+          DO IBACK = 1, JP1
+            I = (J+3) - IBACK
+            EL(I) = EL(I) + EL(I-1)*RXI
+          END DO
+        END DO
+        ALPH0 = ALPH0 - ONE/REAL(NQ)
+        RXIS = -EL(2) - ALPH0
+        HSUM = HSUM + TAU(NQM1)
+        RXI = H/HSUM
+        AHATN0 = -EL(2) - RXI
+        DO IBACK = 1, NQ
+          I = (NQ+2) - IBACK
+          EL(I) = EL(I) + EL(I-1)*RXIS
+        END DO
+50      T1 = ONE - AHATN0 + ALPH0
+        T2 = ONE + REAL(NQ)*T1
+        TQ(2) = ABS(ALPH0*T2/T1)
+        TQ(5) = ABS(T2/(EL(L)*RXI/RXIS))
+        IF (NQWAIT/=1) GOTO 60
+        CNQM1 = RXIS/EL(L)
+        T3 = ALPH0 + ONE/REAL(NQ)
+        T4 = AHATN0 + RXI
+        ELP = T3/(ONE-T4+T3)
+        TQ(1) = ABS(ELP/CNQM1)
+        HSUM = HSUM + TAU(NQ)
+        RXI = H/HSUM
+        T5 = ALPH0 - ONE/REAL(NQ+1)
+        T6 = AHATN0 - RXI
+        ELP = T2/(ONE-T6+T5)
+        TQ(3) = ABS(ELP*RXI*(FLOTL+ONE)*T5)
+60      TQ(4) = CORTES*TQ(2)
+        RETURN
+
+      END SUBROUTINE DVSET
+!_______________________________________________________________________
+
+      SUBROUTINE DVJUST(YH,LDYH,IORD)
+! ..
+! Adjust the Nordsieck array.
+! ..
+! This subroutine adjusts the YH array on reduction of order, and
+! also when the order is increased for the stiff option (METH = 2).
+! Communication with DVJUST uses the following:
+! IORD  = An integer flag used when METH = 2 to indicate an order
+!         increase (IORD = +1) or an order decrease (IORD = -1).
+! HSCAL = Step size H used in scaling of Nordsieck array YH.
+!         (If IORD = +1, DVJUST assumes that HSCAL = TAU(1).)
+! See References 1 and 2 for details.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: IORD, LDYH
+! ..
+! .. Array Arguments ..
+        REAL (WP), INTENT (INOUT) :: YH(LDYH,*)
+! ..
+! .. Local Scalars ..
+        REAL (WP) :: ALPH0, ALPH1, HSUM, PROD, T1, XI, XIOLD
+        INTEGER :: I, IBACK, J, JP1, LP1, NQM1, NQM2, NQP1
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC REAL
+! ..
+! .. FIRST EXECUTABLE STATEMENT DVJUST
+! ..
+        IF ((NQ==2) .AND. (IORD/=1)) RETURN
+        NQM1 = NQ - 1
+        NQM2 = NQ - 2
+        GOTO (10,30) METH
+
+!       Nonstiff option.
+
+!       Check to see if the order is being increased or decreased.
+10      CONTINUE
+        IF (IORD==1) GOTO 20
+!       Order decrease.
+        EL(1:LMAX) = ZERO
+        EL(2) = ONE
+        HSUM = ZERO
+        DO J = 1, NQM2
+!         Construct coefficients of x*(x+xi(1))*...*(x+xi(j)).
+          HSUM = HSUM + TAU(J)
+          XI = HSUM/HSCAL
+          JP1 = J + 1
+          DO IBACK = 1, JP1
+            I = (J+3) - IBACK
+            EL(I) = EL(I)*XI + EL(I-1)
+          END DO
+        END DO
+!       Construct coefficients of integrated polynomial.
+        DO J = 2, NQM1
+          EL(J+1) = REAL(NQ)*EL(J)/REAL(J)
+        END DO
+!       Subtract correction terms from YH array.
+        DO J = 3, NQ
+          DO I = 1, N
+            YH(I,J) = YH(I,J) - YH(I,L)*EL(J)
+          END DO
+        END DO
+        RETURN
+!       Order increase.
+!       Zero out next column in YH array.
+20      CONTINUE
+        LP1 = L + 1
+        YH(1:N,LP1) = ZERO
+        RETURN
+
+!       Stiff option.
+
+!       Check to see if the order is being increased or decreased.
+30      CONTINUE
+        IF (IORD==1) GOTO 40
+!       Order decrease.
+        EL(1:LMAX) = ZERO
+        EL(3) = ONE
+        HSUM = ZERO
+        DO J = 1, NQM2
+!     Construct coefficients of x*x*(x+xi(1))*...*(x+xi(j)).
+          HSUM = HSUM + TAU(J)
+          XI = HSUM/HSCAL
+          JP1 = J + 1
+          DO IBACK = 1, JP1
+            I = (J+4) - IBACK
+            EL(I) = EL(I)*XI + EL(I-1)
+          END DO
+        END DO
+!       Subtract correction terms from YH array.
+        DO J = 3, NQ
+          YH(1:N,J) = YH(1:N,J) - YH(1:N,L)*EL(J)
+        END DO
+        RETURN
+!       Order increase.
+40      EL(1:LMAX) = ZERO
+        EL(3) = ONE
+        ALPH0 = -ONE
+        ALPH1 = ONE
+        PROD = ONE
+        XIOLD = ONE
+        HSUM = HSCAL
+        IF (NQ==1) GOTO 50
+        DO J = 1, NQM1
+!       Construct coefficients of x*x*(x+xi(1))*...*(x+xi(j)).
+          JP1 = J + 1
+          HSUM = HSUM + TAU(JP1)
+          XI = HSUM/HSCAL
+          PROD = PROD*XI
+          ALPH0 = ALPH0 - ONE/REAL(JP1)
+          ALPH1 = ALPH1 + ONE/XI
+          DO IBACK = 1, JP1
+            I = (J+4) - IBACK
+            EL(I) = EL(I)*XIOLD + EL(I-1)
+          END DO
+          XIOLD = XI
+        END DO
+50      CONTINUE
+        T1 = (-ALPH0-ALPH1)/PROD
+!       Load column L+1 in YH array.
+        LP1 = L + 1
+        YH(1:N,LP1) = T1*YH(1:N,LMAX)
+!       Add correction terms to YH array.
+        NQP1 = NQ + 1
+        DO J = 3, NQP1
+! Original:
+!         CALL DAXPY_F90(N,EL(J),YH(1,LP1),1,YH(1,J),1)
+          CALL DAXPY_F90(N,EL(J),YH(1:N,LP1),1,YH(1:N,J),1)
+        END DO
+        RETURN
+
+      END SUBROUTINE DVJUST
+!_______________________________________________________________________
+
+      SUBROUTINE DVNLSD(Y,YH,LDYH,SAVF,EWT,ACOR,IWM,WM,F,JAC,NFLAG,&
+        ATOL,ITOL)
+! ..
+! This is the nonlinear system solver for dense and banded solutions.
+! ..
+! Subroutine DVNLSD is a nonlinear system solver which uses functional
+! iteration or a chord (modified Newton) method. For the chord method
+! direct linear algebraic system solvers are used. Subroutine DVNLSD
+! then handles the corrector phase of this integration package.
+! Communication with DVNLSD is done with the following variables. (For
+! more details, please see the comments in the driver subroutine.)
+! Y          = The dependent variable, a vector of length N, input.
+! YH         = The Nordsieck (Taylor) array, LDYH by LMAX, input
+!              and output. On input, it contains predicted values.
+! LDYH       = A constant >= N, the first dimension of YH, input.
+! SAVF       = A work array of length N.
+! EWT        = An error weight vector of length N, input.
+! ACOR       = A work array of length N, used for the accumulated
+!              corrections to the predicted y vector.
+! WM,IWM     = Real and integer work arrays associated with matrix
+!              operations in chord iteration (MITER /= 0).
+! F          = Dummy name for user supplied routine for f.
+! JAC        = Dummy name for user supplied Jacobian routine.
+! NFLAG      = Input/output flag, with values and meanings as follows:
+!              INPUT
+!                  0 first call for this time step.
+!                 -1 convergence failure in previous call to DVNLSD.
+!                 -2 error test failure in DVSTEP.
+!              OUTPUT
+!                  0 successful completion of nonlinear solver.
+!                 -1 convergence failure or singular matrix.
+!                 -2 unrecoverable error in matrix preprocessing
+!                    (cannot occur here).
+!                 -3 unrecoverable error in solution (cannot occur
+!                    here).
+! IPUP       = Own variable flag with values and meanings as follows:
+!              0,          do not update the Newton matrix.
+!              MITER /= 0  update Newton matrix, because it is the
+!                          initial step, order was changed, the error
+!                          test failed, or an update is indicated by
+!                          the scalar RC or step counter NST.
+! For more details, see comments in driver subroutine.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: ITOL, LDYH
+        INTEGER, INTENT (INOUT) :: NFLAG
+! ..
+! .. Array Arguments ..
+        REAL (WP), INTENT (INOUT) :: ACOR(*), EWT(*), SAVF(*), &
+          WM(*), Y(*), YH(LDYH,*)
+        REAL (WP), INTENT (IN) :: ATOL(*)
+        INTEGER, INTENT (INOUT) :: IWM(*)
+! ..
+! .. Subroutine Arguments ..
+        EXTERNAL F, JAC
+! ..
+! .. Local Scalars ..
+        REAL (WP) :: ACNRMNEW, CSCALE, DCON, DEL, DELP
+        INTEGER :: I, IERPJ, IERSL, M
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, MAX, MIN
+! ..
+! .. FIRST EXECUTABLE STATEMENT DVNLSD
+! ..
+! On the first step, on a change of method order, or after a
+! nonlinear convergence failure with NFLAG = -2, set IPUP = MITER
+! to force a Jacobian update when MITER /= 0.
+        IF (JSTART==0) NSLP = 0
+        IF (NFLAG==0) ICF = 0
+        IF (NFLAG==-2) IPUP = MITER
+        IF ((JSTART==0) .OR. (JSTART==-1)) IPUP = MITER
+!     If this is functional iteration, set CRATE = 1 and drop to 220
+        IF (MITER==0) THEN
+          CRATE = ONE
+          GOTO 10
+        END IF
+
+! RC is the ratio of new to old values of the coefficient H/EL(2)=h/l1.
+! When RC differs from 1 by more than CCMAX, IPUP is set to MITER to
+! force DVJAC to be called, if a Jacobian is involved. In any case,
+! DVJAC is called at least every MSBP steps.
+
+        DRC = ABS(RC-ONE)
+        IF (DRC>CCMAX .OR. NST>=NSLP+MSBP) IPUP = MITER
+
+! Up to MAXCOR corrector iterations are taken. A convergence test is
+! made on the r.m.s. norm of each correction, weighted by the error
+! weight vector EWT. The sum of the corrections is accumulated in the
+! vector ACOR(i). The YH array is not altered in the corrector loop.
+
+10      M = 0
+        DELP = ZERO
+! Original:
+!       CALL DCOPY_F90(N,YH(1,1),1,Y,1)
+        CALL DCOPY_F90(N,YH(1:N,1),1,Y(1:N),1)
+        CALL F(N,TN,Y,SAVF)
+        NFE = NFE + 1
+        IF (BOUNDS) THEN
+          DO I = 1, NDX
+            IF (ABS(YH(IDX(I),1)-LB(I))<=ZERO) SAVF(IDX(I)) = &
+               MAX(SAVF(IDX(I)),ZERO)
+            IF (ABS(YH(IDX(I),1)-UB(I))<=ZERO) SAVF(IDX(I)) = &
+               MIN(SAVF(IDX(I)),ZERO)
+          END DO
+        END IF
+        IF (IPUP<=0) GOTO 20
+
+! If indicated, the matrix P = I - h*rl1*J is reevaluated and
+! preprocessed before starting the corrector iteration. IPUP
+! is set to 0 as an indicator that this has been done.
+
+        CALL DVJAC(Y,YH,LDYH,EWT,ACOR,SAVF,WM,IWM,F,JAC,IERPJ, &
+          ATOL,ITOL)
+        IPUP = 0
+        RC = ONE
+        DRC = ZERO
+        CRATE = ONE
+        NSLP = NST
+!       If matrix is singular, take error return to force cut in
+!       step size.
+        IF (IERPJ/=0) GOTO 70
+20      ACOR(1:N) = ZERO
+!       This is a looping point for the corrector iteration.
+30      IF (MITER/=0) GOTO 40
+
+! In the case of functional iteration, update Y directly from
+! the result of the last function evaluation.
+
+        SAVF(1:N) = RL1*(H*SAVF(1:N)-YH(1:N,2))
+        Y(1:N) = SAVF(1:N) - ACOR(1:N)
+        DEL = DVNORM(N,Y,EWT)
+        Y(1:N) = YH(1:N,1) + SAVF(1:N)
+        CALL DCOPY_F90(N,SAVF,1,ACOR,1)
+        GOTO 50
+
+! In the case of the chord method, compute the corrector error, and
+! solve the linear system with that as right-hand side and P as
+! coefficient matrix. The correction is scaled by the factor
+! 2/(1+RC) to account for changes in h*rl1 since the last DVJAC call.
+
+40      Y(1:N) = (RL1*H)*SAVF(1:N) - (RL1*YH(1:N,2)+ACOR(1:N))
+        CALL DVSOL(WM,IWM,Y,IERSL)
+        NNI = NNI + 1
+        IF (IERSL>0) GOTO 60
+        IF (METH==2 .AND. ABS(RC-ONE)>ZERO) THEN
+          CSCALE = TWO/(ONE+RC)
+          CALL DSCAL_F90(N,CSCALE,Y,1)
+        END IF
+        DEL = DVNORM(N,Y,EWT)
+        CALL DAXPY_F90(N,ONE,Y,1,ACOR,1)
+        Y(1:N) = YH(1:N,1) + ACOR(1:N)
+
+! Test for convergence. If M > 0, an estimate of the convergence
+! rate constant is stored in CRATE, and this is used in the test.
+
+50      IF (M/=0) CRATE = MAX(CRDOWN*CRATE,DEL/DELP)
+        DCON = DEL*MIN(ONE,CRATE)/TQ(4)
+        IF (DCON<=ONE) GOTO 80
+        M = M + 1
+        IF (M==MAXCOR) GOTO 60
+        IF (M>=2 .AND. DEL>RDIV*DELP) GOTO 60
+        DELP = DEL
+        CALL F(N,TN,Y,SAVF)
+        NFE = NFE + 1
+        IF (BOUNDS) THEN
+          DO I = 1, NDX
+            IF (ABS(YH(IDX(I),1)-LB(I))<=ZERO) SAVF(IDX(I)) = &
+               MAX(SAVF(IDX(I)),ZERO)
+            IF (ABS(YH(IDX(I),1)-UB(I))<=ZERO) SAVF(IDX(I)) = &
+               MIN(SAVF(IDX(I)),ZERO)
+          END DO
+        END IF
+        GOTO 30
+
+60      IF (MITER==0 .OR. JCUR==1) GOTO 70
+        ICF = 1
+        IPUP = MITER
+        GOTO 10
+
+70      CONTINUE
+        NFLAG = -1
+        ICF = 2
+        IPUP = MITER
+        RETURN
+
+!       Return for successful step.
+80      CONTINUE
+
+!       Enforce bounds.
+        IF (BOUNDS) THEN
+          CHANGED_ACOR = .FALSE.
+          IF (M==0) THEN
+            ACNRM = DEL
+          ELSE
+            ACNRM = DVNORM(N,ACOR,EWT)
+          END IF
+          IF (MITER/=0) THEN
+!           Since Y(:) = YH(:,1) + ACOR(:) ...
+            DO I = 1, NDX
+              IF (Y(IDX(I))<LB(I)) THEN
+                CHANGED_ACOR = .TRUE.
+                ACOR(IDX(I)) = LB(I) - YH(IDX(I),1)
+                SAVF(IDX(I)) = ACOR(IDX(I))
+              END IF
+              IF (Y(IDX(I))>UB(I)) THEN
+                CHANGED_ACOR = .TRUE.
+                ACOR(IDX(I)) = UB(I) - YH(IDX(I),1)
+                SAVF(IDX(I)) = ACOR(IDX(I))
+              END IF
+            END DO
+          ELSE
+!           Since Y(:) = YH(:,1) + SAVF(:) and
+!           since CALL DCOPY_F90(N,SAVF,1,ACOR,1) ...
+            DO I = 1, NDX
+              IF (Y(IDX(I))<LB(IDX(I))) THEN
+                CHANGED_ACOR = .TRUE.
+                ACOR(IDX(I)) = LB(I) - YH(IDX(I),1)
+              END IF
+              IF (Y(IDX(I))>UB(IDX(I))) THEN
+                CHANGED_ACOR = .TRUE.
+                ACOR(IDX(I)) = UB(I) - YH(IDX(I),1)
+              END IF
+            END DO
+          END IF
+          IF (CHANGED_ACOR) THEN
+            IF (M==0) THEN
+              ACNRMNEW = DEL
+            ELSE
+              ACNRMNEW = DVNORM(N,ACOR,EWT)
+            END IF
+!           ACNRM = ACNRMNEW
+            ACNRM = MAX(ACNRM,ACNRMNEW)
+          ELSE
+          END IF
+          NFLAG = 0
+          JCUR = 0
+          ICF = 0
+        ELSE
+!         No projections are required.
+          NFLAG = 0
+          JCUR = 0
+          ICF = 0
+          IF (M==0) ACNRM = DEL
+          IF (M>0) ACNRM = DVNORM(N,ACOR,EWT)
+        END IF
+        RETURN
+
+      END SUBROUTINE DVNLSD
+!_______________________________________________________________________
+
+      SUBROUTINE DVJAC(Y,YH,LDYH,EWT,FTEM,SAVF,WM,IWM,F,JAC,IERPJ, &
+        ATOL,ITOL)
+! ..
+! Compute and process the matrix P = I - h*rl1*J, where J is an
+! approximation to the Jacobian for dense and banded solutions.
+! ..
+! This is a version of DVJAC that allows use of the known nonzero
+! diagonals if it is available.
+! DVJAC is called by DVNLSD to compute and process the matrix
+! P = I - h*rl1*J, where J is an approximation to the Jacobian.
+! Here J is computed by the user-supplied routine JAC if
+! MITER = 1 or 4, or by finite differencing if MITER = 2, 3, or 5.
+! If MITER = 3, a diagonal approximation to J is used.
+! If JSV = -1, J is computed from scratch in all cases.
+! If JSV = 1 and MITER = 1, 2, 4, or 5, and if the saved value of J is
+! considered acceptable, then P is constructed from the saved J.
+! J is stored in wm and replaced by P. If MITER /= 3, P is then
+! subjected to LU decomposition in preparation for later solution
+! of linear systems with P as coefficient matrix. This is done
+! by DGEFA_F90 if MITER = 1 or 2, and by DGBFA_F90 if MITER = 4 or 5.
+! Communication with DVJAC is done with the following variables.
+! (For more details, please see the comments in the driver subroutine.)
+! Y          = Vector containing predicted values on entry.
+! YH         = The Nordsieck array, an LDYH by LMAX array, input.
+! LDYH       = A constant >= N, the first dimension of YH, input.
+! EWT        = An error weight vector of length N.
+! SAVF       = Array containing f evaluated at predicted y, input.
+! WM         = Real work space for matrices. In the output, it contains
+!              the inverse diagonal matrix if MITER = 3 and the LU
+!              decomposition of P if MITER is 1, 2, 4, or 5.
+!              Storage of matrix elements starts at WM(1).
+!              Storage of the saved Jacobian starts at WM(LOCJS).
+! IWM        = Integer work space containing pivot information,
+!              starting at IWM(31), if MITER is 1, 2, 4, or 5.
+!              IWM also contains band parameters ML = IWM(1) and
+!              MU = IWM(2) if MITER is 4 or 5.
+! F          = Dummy name for the user supplied subroutine for f.
+! JAC        = Dummy name for the user supplied Jacobian subroutine.
+! RL1        = 1/EL(2) (input).
+! IERPJ      = Output error flag, = 0 if no trouble, 1 if the P
+!              matrix is found to be singular.
+! JCUR       = Output flag to indicate whether the Jacobian matrix
+!              (or approximation) is now current.
+!              JCUR = 0 means J is not current.
+!              JCUR = 1 means J is current.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (INOUT) :: IERPJ
+        INTEGER, INTENT (IN) :: LDYH, ITOL
+! ..
+! .. Array Arguments ..
+        REAL (WP), INTENT (INOUT) :: EWT(*), FTEM(*), SAVF(*), WM(*), &
+          Y(*),YH(LDYH,*)
+        REAL (WP), INTENT (IN) :: ATOL(*)
+        INTEGER, INTENT (INOUT) :: IWM(*)
+! ..
+! .. Subroutine Arguments ..
+        EXTERNAL F, JAC
+! ..
+! .. Local Scalars ..
+        REAL (WP) :: CON, DI, FAC, HRL1, R, R0, SRUR, YI, YJ, YJJ
+        INTEGER :: I, I1, I2, IER, II, J, J1, JJ, JJ1, JJ2, JOK, K,   &
+          K1, K2, LENP, MBA, MBAND, MEB1, MEBAND, ML, ML1, MU, NG, NP1
+!         K1, K2, LENP, MBA, MBAND, MEB1, MEBAND, ML, ML3, MU, NG, NP1
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, MAX, MIN, REAL
+! ..
+! .. FIRST EXECUTABLE STATEMENT DVJAC
+! ..
+        IERPJ = 0
+        HRL1 = H*RL1
+!       See whether J should be evaluated (JOK = -1) or not (JOK = 1).
+        JOK = JSV
+        IF (JSV==1) THEN
+          IF (NST==0 .OR. NST>NSLJ+MSBJ) JOK = -1
+          IF (ICF==1 .AND. DRC<CCMXJ) JOK = -1
+          IF (ICF==2) JOK = -1
+        END IF
+        IF (J_IS_CONSTANT .AND. J_HAS_BEEN_COMPUTED) JOK = 1
+!       End of setting JOK.
+
+        IF (JOK==-1 .AND. MITER==1) THEN
+!         If JOK = -1 and MITER = 1, call JAC to evaluate Jacobian.
+          NJE = NJE + 1
+          NSLJ = NST
+          JCUR = 1
+          LENP = N*N
+!         WM(3:LENP+2) = ZERO
+          WM(1:LENP) = ZERO
+!         CALL JAC(N,TN,Y,0,0,WM(3),N)
+          CALL JAC(N,TN,Y,0,0,WM(1),N)
+          IF (J_IS_CONSTANT) J_HAS_BEEN_COMPUTED = .TRUE.
+!         IF (JSV==1) CALL DCOPY_F90(LENP,WM(3),1,WM(LOCJS),1)
+          IF (JSV==1) CALL DCOPY_F90(LENP,WM(1),1,WM(LOCJS),1)
+        END IF
+
+!       Set flag to indicate how the YSCALE vector will be set for
+!       JACSP.
+        LIKE_ORIGINAL_VODE = .FALSE.
+
+        IF (JOK==-1 .AND. MITER==2) THEN
+           IF (USE_JACSP) THEN
+!             Approximate the Jacobian using Doug Salane's JACSP.
+              NSLJ = NST
+              JCUR = 1
+              IOPTDS(1) = 0
+              IOPTDS(2) = 0
+              IOPTDS(3) = 1
+              IOPTDS(5) = 0
+!             INFORDS(4) was initialized in DVODE.
+              LWKDS  = 3 * N
+              LIWKDS = 50 + N
+              NRFJACDS = N
+              NCFJACDS = N
+              MAXGRPDS = N
+!             Calculate the YSCALEDS vector for JACSPDV.
+              IF (LIKE_ORIGINAL_VODE) THEN
+                 FAC = DVNORM(N,SAVF,EWT)
+!                JACSPDB multiplies YSCALEDS(*) BY UROUND**0.825:
+!                R0 = THOU*ABS(H)*UROUND*REAL(N)*FAC
+                 R0 = THOU*ABS(H)*REAL(N)*FAC
+                 IF (ABS(R0)<=ZERO) R0 = ONE
+                 SRUR = WM1
+                 DO J = 1, N
+!                   JACSPDB multiplies YSCALEDS(*) BY UROUND**0.825:
+!                   R = MAX(ABS(Y(J)),R0/EWT(J))
+                    R = MAX(ABS(Y(J))/U325,(R0/EWT(J))*U125)
+                    YSCALEDS(J) = R
+                 END DO
+              ELSE
+                 IF (ITOL == 1 .OR. ITOL == 3) THEN
+                    DO J = 1, N
+                       YSCALEDS(J) = MAX(ABS(Y(J)),ATOL(1),UROUND)
+                    END DO
+                 ELSE
+                    DO J = 1, N
+                       YSCALEDS(J) = MAX(ABS(Y(J)),ATOL(J),UROUND)
+                    END DO
+                 END IF
+              END IF
+
+              CALL JACSPDB(F,N,TN,Y,SAVF,WM(1),NRFJACDS, &
+                YSCALEDS,FACDS,IOPTDS,WKDS,LWKDS,IWKDS,LIWKDS, &
+                MAXGRPDS,NGRPDS,JPNTRDS,INDROWDS)
+              NFE = NFE + IWKDS(7)
+              NJE = NJE + 1
+           ELSE
+!             If MITER = 2, make N calls to F to approximate the Jacobian.
+              NSLJ = NST
+              JCUR = 1
+              FAC = DVNORM(N,SAVF,EWT)
+              R0 = THOU*ABS(H)*UROUND*REAL(N)*FAC
+              IF (ABS(R0)<=ZERO) R0 = ONE
+              SRUR = WM1
+!             J1 = 2
+              J1 = 0
+              DO J = 1, N
+                 YJ = Y(J)
+                 R = MAX(SRUR*ABS(YJ),R0/EWT(J))
+                 Y(J) = Y(J) + R
+                 FAC = ONE/R
+                 CALL F(N,TN,Y,FTEM)
+                 DO I = 1, N
+                   WM(I+J1) = (FTEM(I)-SAVF(I))*FAC
+                 END DO
+                 Y(J) = YJ
+                 J1 = J1 + N
+              END DO
+              NFE = NFE + N
+              NJE = NJE + 1
+           END IF
+           LENP = N*N
+!          IF (JSV==1) CALL DCOPY_F90(LENP,WM(3),1,WM(LOCJS),1)
+           IF (JSV==1) CALL DCOPY_F90(LENP,WM(1),1,WM(LOCJS),1)
+           IF (J_IS_CONSTANT) J_HAS_BEEN_COMPUTED = .TRUE.
+        END IF
+
+        IF (JOK==1 .AND. (MITER==1 .OR. MITER==2)) THEN
+          JCUR = 0
+          LENP = N*N
+!         CALL DCOPY_F90(LENP,WM(LOCJS),1,WM(3),1)
+          CALL DCOPY_F90(LENP,WM(LOCJS),1,WM(1),1)
+        END IF
+
+        IF (MITER==1 .OR. MITER==2) THEN
+!         Multiply Jacobian by scalar, add identity, and do LU
+!         decomposition.
+          CON = -HRL1
+!         CALL DSCAL_F90(LENP,CON,WM(3),1)
+          CALL DSCAL_F90(LENP,CON,WM(1),1)
+!         J = 3
+          J = 1
+          NP1 = N + 1
+          DO I = 1, N
+            WM(J) = WM(J) + ONE
+            J = J + NP1
+          END DO
+          NLU = NLU + 1
+! ______________________________________________________________________
+
+!         CALL DGEFA_F90(WM(3),N,N,IWM(31),IER)
+          CALL DGEFA_F90(WM(1),N,N,IWM(31),IER)
+          IF (IER/=0) IERPJ = 1
+! *****LAPACK build change point. Replace above with these statements.
+!        IF (.NOT.USE_LAPACK) THEN
+!!         CALL DGEFA_f90(WM(3),N,N,IWM(31),IER)
+!          CALL DGEFA_f90(WM(1),N,N,IWM(31),IER)
+!          IF (IER /= 0) IERPJ = 1
+!        ELSE
+!!         CALL DGETRF(N,N,WM(3),N,IWM(31),IER)
+!          CALL DGETRF(N,N,WM(1),N,IWM(31),IER)
+!          IF (IER /= 0) IERPJ = 1
+!        END IF
+! ______________________________________________________________________
+
+          RETURN
+        END IF
+!       End of code block for MITER = 1 or 2.
+
+        IF (MITER==3) THEN
+!         If MITER = 3, construct a diagonal approximation to
+!         J and P.
+          NJE = NJE + 1
+          JCUR = 1
+          WM2 = HRL1
+          R = RL1*PT1
+          Y(1:N) = Y(1:N) + R*(H*SAVF(1:N)-YH(1:N,2))
+!         CALL F(N,TN,Y,WM(3))
+          CALL F(N,TN,Y,WM(1))
+          NFE = NFE + 1
+          DO 10 I = 1, N
+            R0 = H*SAVF(I) - YH(I,2)
+!           DI = PT1*R0 - H*(WM(I+2)-SAVF(I))
+            DI = PT1*R0 - H*(WM(I)-SAVF(I))
+!           WM(I+2) = ONE
+            WM(I) = ONE
+            IF (ABS(R0)<UROUND/EWT(I)) GOTO 10
+            IF (ABS(DI)<=ZERO) GOTO 20
+!           WM(I+2) = PT1*R0/DI
+            WM(I) = PT1*R0/DI
+10        END DO
+          RETURN
+20        IERPJ = 1
+          RETURN
+        END IF
+!       End of code block for MITER = 3.
+
+!       Set constants for MITER = 4 or 5.
+        ML = IWM(1)
+        MU = IWM(2)
+!       ML3 = ML + 3
+        ML1 = ML + 1
+        MBAND = ML + MU + 1
+        MEBAND = MBAND + ML
+        LENP = MEBAND*N
+
+        IF (JOK==-1 .AND. MITER==4) THEN
+!       If JOK = -1 and MITER = 4, call JAC to evaluate Jacobian.
+          NJE = NJE + 1
+          NSLJ = NST
+          JCUR = 1
+!         WM(3:LENP+2) = ZERO
+          WM(1:LENP) = ZERO
+!         CALL JAC(N,TN,Y,ML,MU,WM(ML3),MEBAND)
+          CALL JAC(N,TN,Y,ML,MU,WM(ML1),MEBAND)
+          IF (J_IS_CONSTANT) J_HAS_BEEN_COMPUTED = .TRUE.
+!         IF (JSV==1) CALL DACOPY(MBAND,N,WM(ML3),MEBAND,WM(LOCJS),MBAND)
+          IF (JSV==1) CALL DACOPY(MBAND,N,WM(ML1),MEBAND,WM(LOCJS),MBAND)
+        END IF
+
+        IF (JOK==-1 .AND. MITER==5) THEN
+!       If MITER = 5, make ML+MU+1 calls to F to approximate the Jacobian
+!       unless the user has specified which sub and super diagonals are
+!       nonzero. In the latter case NSUBS+NSUPS+1 calls will be made.
+
+!         If the subdiagonals are known, use that information to build
+!         the Jacobian matrix.
+          IF ((SUBS .OR. SUPS) .OR. BNGRP >= MBAND) GOTO 60
+
+!         Otherwise, use the original algorithm.
+          IF (USE_JACSP) THEN
+!            Approximate the Jacobian using Doug Salane's JACSP.
+             NSLJ = NST
+             JCUR = 1
+             WM(1:LENP) = ZERO
+             IOPTDS(1) = 1
+             IOPTDS(2) = MBAND
+             IOPTDS(3) = 1
+             IOPTDS(5) = ML
+!            INFORDS(4) was initialized in DVODE.
+             LWKDS  = 3 * N
+             LIWKDS = 50 + N
+!            NRFJACDS = MEBAND*N
+!            NCFJACDS = 1
+             NRFJACDS = MEBAND
+             NCFJACDS = N
+             MBA = MIN(MBAND,N)
+             MAXGRPDS = MBA
+!            Calculate the YSCALEDS vector for JACSPDV.
+             IF (LIKE_ORIGINAL_VODE) THEN
+                FAC = DVNORM(N,SAVF,EWT)
+!               JACSPDB multiplies YSCALEDS(*) BY UROUND**0.825:
+!               R0 = THOU*ABS(H)*UROUND*REAL(N)*FAC
+                R0 = THOU*ABS(H)*REAL(N)*FAC
+                IF (ABS(R0)<=ZERO) R0 = ONE
+                SRUR = WM1
+                DO J = 1, N
+!                  JACSPDB multiplies YSCALEDS(*) BY UROUND**0.825:
+!                  R = MAX(ABS(Y(J)),R0/EWT(J))
+                   R = MAX(ABS(Y(J))/U325,(R0/EWT(J))*U125)
+                   YSCALEDS(J) = R
+                END DO
+             ELSE
+                IF (ITOL == 1 .OR. ITOL == 3) THEN
+                   DO J = 1, N
+                      YSCALEDS(J) = MAX(ABS(Y(J)),ATOL(1),UROUND)
+                   END DO
+                ELSE
+                   DO J = 1, N
+                      YSCALEDS(J) = MAX(ABS(Y(J)),ATOL(J),UROUND)
+                   END DO
+                END IF
+             END IF
+             CALL JACSPDB(F,N,TN,Y,SAVF,WM(1),NRFJACDS, &
+               YSCALEDS,FACDS,IOPTDS,WKDS,LWKDS,IWKDS,LIWKDS,  &
+               MAXGRPDS,NGRPDS,JPNTRDS,INDROWDS)
+             NFE = NFE + IWKDS(7)
+             NJE = NJE + 1
+          ELSE
+             NSLJ = NST
+             JCUR = 1
+             MBA = MIN(MBAND,N)
+             MEB1 = MEBAND - 1
+             SRUR = WM1
+             FAC = DVNORM(N,SAVF,EWT)
+             R0 = THOU*ABS(H)*UROUND*REAL(N)*FAC
+             IF (ABS(R0)<=ZERO) R0 = ONE
+             DO J = 1, MBA
+               DO I = J, N, MBAND
+                 YI = Y(I)
+                 R = MAX(SRUR*ABS(YI),R0/EWT(I))
+                 Y(I) = Y(I) + R
+               END DO
+               CALL F(N,TN,Y,FTEM)
+               DO JJ = J, N, MBAND
+                 Y(JJ) = YH(JJ,1)
+                 YJJ = Y(JJ)
+                 R = MAX(SRUR*ABS(YJJ),R0/EWT(JJ))
+                 FAC = ONE/R
+                 I1 = MAX(JJ-MU,1)
+                 I2 = MIN(JJ+ML,N)
+!                II = JJ*MEB1 - ML + 2
+                 II = JJ*MEB1 - ML
+                 DO I = I1, I2
+                   WM(II+I) = (FTEM(I)-SAVF(I))*FAC
+                 END DO
+               END DO
+             END DO
+             NFE = NFE + MBA
+             NJE = NJE + 1
+          END IF
+          IF (J_IS_CONSTANT) J_HAS_BEEN_COMPUTED = .TRUE.
+          GOTO 90
+   60     CONTINUE
+
+!         User supplied diagonals information is available.
+!         WM(3:LENP+2) = ZERO
+          WM(1:LENP) = ZERO
+          NJE = NJE + 1
+          NSLJ = NST
+          JCUR = 1
+          MBA = MIN(MBAND,N)
+          MEB1 = MEBAND - 1
+          SRUR = WM1
+          FAC = DVNORM(N,SAVF,EWT)
+          R0 = THOU*ABS(H)*UROUND*REAL(N)*FAC
+          IF (ABS(R0)<=ZERO) R0 = ONE
+!         For each group of columns...
+          DO NG = 1, BNGRP
+!            Find the first and last columns in the group.
+             JJ1 = BIGP(NG)
+             JJ2 = BIGP(NG+1) - 1
+!            For each column in this group...
+             DO JJ = JJ1, JJ2
+                J = BJGP(JJ)
+                R = MAX(SRUR*ABS(Y(J)),R0/EWT(J))
+                Y(J) = Y(J) + R
+             END DO
+             CALL F(N,TN,Y,FTEM)
+!            For each column in this group...
+             DO JJ = JJ1, JJ2
+                 J = BJGP(JJ)
+                 Y(J) = YH(J,1)
+                 R = MAX(SRUR*ABS(Y(J)),R0/EWT(J))
+                 FAC = ONE/R
+                 IF (BUILD_IAJA) THEN
+!                   Use the IAB, JAB sparse structure arrays to
+!                   determine the first and last nonzeros in
+!                   column J.
+                    K1 = IAB(J)
+                    K2 = IAB(J+1) - 1
+                 ELSE
+!                   Extract the positions of the first and
+!                   last nonzeros in this column directly.
+                    CALL BANDED_GET_BJNZ(N,ML,MU,J,IWM(31),I)
+                    DO K = 1, N
+                       IF (IWM(30+K) /= 0) THEN
+                          K1 = K
+                          GOTO 70
+                       END IF
+                    END DO
+   70               CONTINUE
+                    DO K = N, 1, -1
+                       IF (IWM(30+K) /= 0) THEN
+                          K2 = K
+                          GOTO 80
+                       END IF
+                    END DO
+   80               CONTINUE
+                 END IF
+!                Load the nonzeros for column J in the banded matrix.
+                 IF (BUILD_IAJA) THEN
+                    DO K = K1, K2
+                       I = JAB(K)
+!                      II = J * MEB1 - ML + 2
+                       II = J * MEB1 - ML
+                       WM(II+I) = (FTEM(I)-SAVF(I))*FAC
+                    END DO
+                 ELSE
+                    DO K = K1, K2
+                       I = IWM(30+K)
+                       IF (I /= 0) THEN
+!                         II = J * MEB1 - ML + 2
+                          II = J * MEB1 - ML
+                          WM(II+I) = (FTEM(I)-SAVF(I))*FAC
+                       END IF
+                    END DO
+                 END IF
+             END DO
+          END DO
+          NFE = NFE + BNGRP
+          IF (J_IS_CONSTANT) J_HAS_BEEN_COMPUTED = .TRUE.
+   90     CONTINUE
+!         IF (JSV==1) CALL DACOPY(MBAND,N,WM(ML3),MEBAND,WM(LOCJS),MBAND)
+          IF (JSV==1) CALL DACOPY(MBAND,N,WM(ML1),MEBAND,WM(LOCJS),MBAND)
+        END IF
+
+        IF (JOK==1) THEN
+          JCUR = 0
+!         CALL DACOPY(MBAND,N,WM(LOCJS),MBAND,WM(ML3),MEBAND)
+          CALL DACOPY(MBAND,N,WM(LOCJS),MBAND,WM(ML1),MEBAND)
+        END IF
+
+!       Multiply Jacobian by scalar, add identity, and do LU
+!       decomposition.
+        CON = -HRL1
+!       CALL DSCAL_F90(LENP,CON,WM(3),1)
+        CALL DSCAL_F90(LENP,CON,WM(1),1)
+!       II = MBAND + 2
+        II = MBAND
+        DO I = 1, N
+          WM(II) = WM(II) + ONE
+          II = II + MEBAND
+        END DO
+        NLU = NLU + 1
+! ______________________________________________________________________
+
+!       CALL DGBFA_F90(WM(3),MEBAND,N,ML,MU,IWM(31),IER)
+        CALL DGBFA_F90(WM(1),MEBAND,N,ML,MU,IWM(31),IER)
+        IF (IER/=0) IERPJ = 1
+! *****LAPACK build change point. Replace above with these statements.
+!       IF (.NOT.USE_LAPACK) THEN
+!!        CALL DGBFA_f90(WM(3),MEBAND,N,ML,MU,IWM(31),IER)
+!         CALL DGBFA_f90(WM(1),MEBAND,N,ML,MU,IWM(31),IER)
+!         IF (IER /= 0) IERPJ = 1
+!       ELSE
+!!        CALL DGBTRF(N,N,ML,MU,WM(3),MEBAND,IWM(31),IER)
+!         CALL DGBTRF(N,N,ML,MU,WM(1),MEBAND,IWM(31),IER)
+!         IF (IER /= 0) IERPJ = 1
+!       END IF
+! ______________________________________________________________________
+       RETURN
+!      End of code block for MITER = 4 or 5.
+
+      END SUBROUTINE DVJAC
+!_______________________________________________________________________
+
+      SUBROUTINE DACOPY(NROW,NCOL,A,NROWA,B,NROWB)
+! ..
+! Copy one array to another.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: NCOL, NROW, NROWA, NROWB
+! ..
+! .. Array Arguments ..
+        REAL (WP), INTENT (IN) :: A(NROWA,NCOL)
+        REAL (WP), INTENT (INOUT) :: B(NROWB,NCOL)
+! ..
+! .. Local Scalars ..
+        INTEGER :: IC
+! ..
+! .. FIRST EXECUTABLE STATEMENT DACOPY
+! ..
+        DO IC = 1, NCOL
+          CALL DCOPY_F90(NROW,A(1,IC),1,B(1,IC),1)
+        END DO
+        RETURN
+
+      END SUBROUTINE DACOPY
+!_______________________________________________________________________
+
+      SUBROUTINE DVSOL(WM,IWM,X,IERSL)
+! ..
+! Manage the solution of the linear system arising from a chord
+! iteration for dense and banded solutions.
+! ..
+! This routine manages the solution of the linear system arising from
+! a chord iteration. It is called if MITER /= 0.
+! If MITER is 1 or 2, it calls DGESL_F90 to accomplish this.
+! If MITER = 3 it updates the coefficient H*RL1 in the diagonal
+! matrix, and then computes the solution.
+! If MITER is 4 or 5, it calls DGBSL_F90.
+! Communication with DVSOL uses the following variables:
+! WM    = Real work space containing the inverse diagonal matrix if
+!         MITER = 3 and the LU decomposition of the matrix otherwise.
+!         Storage of matrix elements starts at WM(1).
+!         WM also contains the following matrix-related data:
+!         WM1 = SQRT(UROUND) (not used here),
+!         WM2 = HRL1, the previous value of H*RL1, used if MITER = 3.
+! IWM   = Integer work space containing pivot information, starting at
+!         IWM(31), if MITER is 1, 2, 4, or 5. IWM also contains band
+!         parameters ML = IWM(1) and MU = IWM(2) if MITER is 4 or 5.
+! X     = The right-hand side vector on input, and the solution vector
+!         on output, of length N.
+! IERSL = Output flag. IERSL = 0 if no trouble occurred.
+!         IERSL = 1 if a singular matrix arose with MITER = 3.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (INOUT) :: IERSL
+! ..
+! .. Array Arguments ..
+        REAL (WP), INTENT (INOUT) :: WM(*), X(*)
+        INTEGER, INTENT (INOUT) :: IWM(*)
+! ..
+! .. Local Scalars ..
+        REAL (WP) :: DI, HRL1, PHRL1, R
+        INTEGER :: I, MEBAND, ML, MU
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS
+! ..
+! ______________________________________________________________________
+
+! *****LAPACK build change point. Insert this statement.
+!       INTEGER INFO
+!       CHARACTER*1 TRANS
+! ______________________________________________________________________
+
+! .. FIRST EXECUTABLE STATEMENT DVSOL
+! ..
+        IERSL = 0
+        GOTO (10,10,20,50,50) MITER
+
+10      CONTINUE
+! ______________________________________________________________________
+
+!       CALL DGESL_F90(WM(3),N,N,IWM(31),X,0)
+        CALL DGESL_F90(WM(1),N,N,IWM(31),X,0)
+! *****LAPACK build change point. Replace above with these statements.
+!       IF (.NOT.USE_LAPACK) THEN
+!!         CALL DGESL_f90(WM(3),N,N,IWM(31),X,0)
+!          CALL DGESL_f90(WM(1),N,N,IWM(31),X,0)
+!       ELSE
+!          TRANS = 'N'
+!!         CALL DGETRS(TRANS,N,1,WM(3),N,IWM(31),X,N,INFO)
+!          CALL DGETRS(TRANS,N,1,WM(1),N,IWM(31),X,N,INFO)
+!          IF (INFO /= 0) THEN
+!             WRITE(6,*) 'Stopping in DVSOL with INFO = ', INFO
+!             STOP
+!          END IF
+!       END IF
+! ______________________________________________________________________
+
+        RETURN
+
+20      PHRL1 = WM2
+        HRL1 = H*RL1
+        WM2 = HRL1
+        IF (ABS(HRL1-PHRL1)<=ZERO) GOTO 30
+        R = HRL1/PHRL1
+        DO I = 1, N
+!         DI = ONE - R*(ONE-ONE/WM(I+2))
+          DI = ONE - R*(ONE-ONE/WM(I))
+          IF (ABS(DI)<=ZERO) GOTO 40
+!         WM(I+2) = ONE/DI
+          WM(I) = ONE/DI
+        END DO
+
+30      DO I = 1, N
+!         X(I) = WM(I+2)*X(I)
+          X(I) = WM(I)*X(I)
+        END DO
+        RETURN
+40      IERSL = 1
+        RETURN
+
+50      ML = IWM(1)
+        MU = IWM(2)
+        MEBAND = 2*ML + MU + 1
+! ______________________________________________________________________
+
+!       CALL DGBSL_F90(WM(3),MEBAND,N,ML,MU,IWM(31),X,0)
+        CALL DGBSL_F90(WM(1),MEBAND,N,ML,MU,IWM(31),X,0)
+! *****LAPACK build change point. Replace above with these statements.
+!       IF (.NOT.USE_LAPACK) THEN
+!!        CALL DGBSL_F90(WM(3),MEBAND,N,ML,MU,IWM(31),X,0)
+!         CALL DGBSL_F90(WM(1),MEBAND,N,ML,MU,IWM(31),X,0)
+!       ELSE
+!         TRANS = 'N'
+!!        CALL DGBTRS(TRANS,N,ML,MU,1,WM(3),MEBAND,IWM(31),X,N,INFO)
+!         CALL DGBTRS(TRANS,N,ML,MU,1,WM(1),MEBAND,IWM(31),X,N,INFO)
+!         IF (INFO /= 0) THEN
+!           WRITE(6,*) 'Stopping in DVSOL with INFO = ', INFO
+!           STOP
+!         END IF
+!       END IF
+! ______________________________________________________________________
+
+      RETURN
+
+      END SUBROUTINE DVSOL
+!_______________________________________________________________________
+
+      SUBROUTINE DVSRCO(RSAV,ISAV,JOB)
+! ..
+! Save or restore (depending on JOB) the contents of the PRIVATE
+! variable blocks, which are used internally by DVODE (not called
+! by DVODE_F90).
+! ..
+! RSAV = real array of length 49 or more.
+! ISAV = integer array of length 41 or more.
+! JOB  = flag indicating to save or restore the PRIVATE variable
+!        blocks:
+!        JOB  = 1 if PRIVATE variables is to be saved
+!                 (written to RSAV/ISAV).
+!        JOB  = 2 if PRIVATE variables is to be restored
+!                 (read from RSAV/ISAV).
+!        A call with JOB = 2 presumes a prior call with JOB = 1.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: JOB
+! ..
+! .. Array Arguments ..
+        REAL (WP), INTENT (INOUT) :: RSAV(*)
+        INTEGER, INTENT (INOUT) :: ISAV(*)
+! ..
+! .. FIRST EXECUTABLE STATEMENT DVSRCO
+! ..
+        IF (JOB/=2) THEN
+!         Save the contents of the PRIVATE blocks.
+          RSAV(1) = ACNRM
+          RSAV(2) = CCMXJ
+          RSAV(3) = CONP
+          RSAV(4) = CRATE
+          RSAV(5) = DRC
+          RSAV(6:18) = EL(1:13)
+          RSAV(19) = ETA
+          RSAV(20) = ETAMAX
+          RSAV(21) = H
+          RSAV(22) = HMIN
+          RSAV(23) = HMXI
+          RSAV(24) = HNEW
+          RSAV(25) = HSCAL
+          RSAV(26) = PRL1
+          RSAV(27) = RC
+          RSAV(28) = RL1
+          RSAV(29:41) = TAU(1:13)
+          RSAV(42:46) = TQ(1:5)
+          RSAV(47) = TN
+          RSAV(48) = UROUND
+          RSAV(LENRV1+1) = HU
+          ISAV(1) = ICF
+          ISAV(2) = INIT
+          ISAV(3) = IPUP
+          ISAV(4) = JCUR
+          ISAV(5) = JSTART
+          ISAV(6) = JSV
+          ISAV(7) = KFLAG
+          ISAV(8) = KUTH
+          ISAV(9) = L
+          ISAV(10) = LMAX
+          ISAV(11) = LYH
+          ISAV(12) = 0
+          ISAV(13) = 0
+          ISAV(14) = 0
+          ISAV(15) = LWM
+          ISAV(16) = LIWM
+          ISAV(17) = LOCJS
+          ISAV(18) = MAXORD
+          ISAV(19) = METH
+          ISAV(20) = MITER
+          ISAV(21) = MSBJ
+          ISAV(22) = MXHNIL
+          ISAV(23) = MXSTEP
+          ISAV(24) = N
+          ISAV(25) = NEWH
+          ISAV(26) = NEWQ
+          ISAV(27) = NHNIL
+          ISAV(28) = NQ
+          ISAV(29) = NQNYH
+          ISAV(30) = NQWAIT
+          ISAV(31) = NSLJ
+          ISAV(32) = NSLP
+          ISAV(33) = NYH
+          ISAV(LENIV1+1) = NCFN
+          ISAV(LENIV1+2) = NETF
+          ISAV(LENIV1+3) = NFE
+          ISAV(LENIV1+4) = NJE
+          ISAV(LENIV1+5) = NLU
+          ISAV(LENIV1+6) = NNI
+          ISAV(LENIV1+7) = NQU
+          ISAV(LENIV1+8) = NST
+          RETURN
+        ELSE
+!         Replace the contents of the PRIVATE blocks.
+          ACNRM = RSAV(1)
+          CCMXJ = RSAV(2)
+          CONP = RSAV(3)
+          CRATE = RSAV(4)
+          DRC = RSAV(5)
+          EL(1:13) = RSAV(6:18)
+          ETA = RSAV(19)
+          ETAMAX = RSAV(20)
+          H = RSAV(21)
+          HMIN = RSAV(22)
+          HMXI = RSAV(23)
+          HNEW = RSAV(24)
+          HSCAL = RSAV(25)
+          PRL1 = RSAV(26)
+          RC = RSAV(27)
+          RL1 = RSAV(28)
+          TAU(1:13) = RSAV(29:41)
+          TQ(1:5) = RSAV(42:46)
+          TN = RSAV(47)
+          UROUND = RSAV(48)
+          HU = RSAV(LENRV1+1)
+          ICF = ISAV(1)
+          INIT = ISAV(2)
+          IPUP = ISAV(3)
+          JCUR = ISAV(4)
+          JSTART = ISAV(5)
+          JSV = ISAV(6)
+          KFLAG = ISAV(7)
+          KUTH = ISAV(8)
+          L = ISAV(9)
+          LMAX = ISAV(10)
+          LYH = ISAV(11)
+          LWM = ISAV(15)
+          LIWM = ISAV(16)
+          LOCJS = ISAV(17)
+          MAXORD = ISAV(18)
+          METH = ISAV(19)
+          MITER = ISAV(20)
+          MSBJ = ISAV(21)
+          MXHNIL = ISAV(22)
+          MXSTEP = ISAV(23)
+          N = ISAV(24)
+          NEWH = ISAV(25)
+          NEWQ = ISAV(26)
+          NHNIL = ISAV(27)
+          NQ = ISAV(28)
+          NQNYH = ISAV(29)
+          NQWAIT = ISAV(30)
+          NSLJ = ISAV(31)
+          NSLP = ISAV(32)
+          NYH = ISAV(33)
+          NCFN = ISAV(LENIV1+1)
+          NETF = ISAV(LENIV1+2)
+          NFE = ISAV(LENIV1+3)
+          NJE = ISAV(LENIV1+4)
+          NLU = ISAV(LENIV1+5)
+          NNI = ISAV(LENIV1+6)
+          NQU = ISAV(LENIV1+7)
+          NST = ISAV(LENIV1+8)
+          RETURN
+        END IF
+
+      END SUBROUTINE DVSRCO
+!_______________________________________________________________________
+
+      SUBROUTINE DEWSET(N,ITOL,RTOL,ATOL,YCUR,EWT)
+! ..
+! Set the error weight vector.
+! ..
+! This subroutine sets the error weight vector EWT according to
+! EWT(i) = RTOL(i)*ABS(YCUR(i)) + ATOL(i), i = 1,...,N,
+! with the subscript on RTOL and/or ATOL possibly replaced by 1
+! above, depending on the value of ITOL.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: ITOL, N
+! ..
+! .. Array Arguments ..
+        REAL (WP), INTENT (IN) :: ATOL(*), RTOL(*), YCUR(N)
+        REAL (WP), INTENT (OUT) :: EWT(N)
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS
+! ..
+! .. FIRST EXECUTABLE STATEMENT DEWSET
+! ..
+        GOTO (10,20,30,40) ITOL
+10      CONTINUE
+        EWT(1:N) = RTOL(1)*ABS(YCUR(1:N)) + ATOL(1)
+        RETURN
+20      CONTINUE
+        EWT(1:N) = RTOL(1)*ABS(YCUR(1:N)) + ATOL(1:N)
+        RETURN
+30      CONTINUE
+        EWT(1:N) = RTOL(1:N)*ABS(YCUR(1:N)) + ATOL(1)
+        RETURN
+40      CONTINUE
+        EWT(1:N) = RTOL(1:N)*ABS(YCUR(1:N)) + ATOL(1:N)
+        RETURN
+
+      END SUBROUTINE DEWSET
+!_______________________________________________________________________
+
+      FUNCTION DVNORM(N,V,W)
+! ..
+! Calculate weighted root-mean-square (rms) vector norm.
+! ..
+! This routine computes the weighted root-mean-square norm
+! of the vector of length N contained in the array V, with
+! weights contained in the array W of length N.
+! DVNORM = SQRT((1/N) * SUM(V(i)*W(i))**2)
+! ..
+     IMPLICIT NONE
+! ..
+! .. Function Return Value ..
+        REAL (WP) :: DVNORM
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: N
+! ..
+! .. Array Arguments ..
+        REAL (WP), INTENT (IN) :: V(N), W(N)
+! ..
+! .. Local Scalars ..
+        REAL (WP) :: SUM
+        INTEGER :: I
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC SQRT
+! ..
+! .. FIRST EXECUTABLE STATEMENT DVNORM
+! ..
+        SUM = ZERO
+        DO I = 1, N
+          SUM = SUM + (V(I)*W(I))**2
+        END DO
+        DVNORM = SQRT(SUM/N)
+        RETURN
+
+      END FUNCTION DVNORM
+!_______________________________________________________________________
+
+! The modified SLATEC error handling routines begin here.
+      SUBROUTINE XERRDV(MSG,NERR,LEVEL,NI,I1,I2,NR,R1,R2)
+! ..
+! Write error messages with values.
+! ..
+! This is an adaptation of subroutine XERRWD (NMES eliminated).
+! Subroutines XERRDV, XSETF, XSETUN, and Functions IXSAV
+! as given here, constitute a simplified version of the SLATEC
+! error handling package.
+!
+! All arguments are input arguments.
+! MSG    = The message (character array).
+! NERR   = The error number (not used).
+! LEVEL  = The error level
+!          0 or 1 means recoverable (control returns to caller).
+!          2 means fatal (run is aborted--see note below).
+! NI     = Number of integers (0, 1, or 2) to be printed with message.
+! I1,I2  = Integers to be printed, depending on NI.
+! NR     = Number of reals (0, 1, or 2) to be printed with message.
+! R1,R2  = Reals to be printed, depending on NR.
+! Note: This routine is machine-dependent and specialized for use
+! in limited context, in the following ways:
+!  1. The argument MSG is assumed to be of type CHARACTER, and
+!     the message is printed with a format of (1X,A).
+!  2. The message is assumed to take only one line.
+!     Multi-line messages are generated by repeated calls.
+!  3. If LEVEL = 2, control passes to the statement: STOP
+!     to abort the run. This statement may be machine-dependent.
+!  4. R1 and R2 are assumed to be in real(wp) and are printed
+!     in D21.13 format.
+! Internal Notes:
+! For a different default logical unit number, IXSAV(or a subsidiary
+! function that it calls) will need to be modified.
+! For a different run-abort command, change the statement following
+! statement 100 at the end.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        REAL (WP) :: R1, R2
+        INTEGER :: I1, I2, LEVEL, NERR, NI, NR
+        CHARACTER (*) :: MSG
+        LOGICAL PRINT_NERR
+! ..
+! .. Local Scalars ..
+        INTEGER :: LUNIT, MESFLG
+! ..
+! .. FIRST EXECUTABLE STATEMENT XERRDV
+! ..
+!       Get logical unit number and message print flag.
+        LUNIT = IXSAV(1,0,.FALSE.)
+        MESFLG = IXSAV(2,0,.FALSE.)
+        IF (MESFLG==0) GOTO 10
+
+        PRINT_NERR = .FALSE.
+        IF (PRINT_NERR) PRINT *, MSG, 'Message number = ', NERR
+
+!       Write the message.
+        WRITE (LUNIT,90000) MSG
+90000   FORMAT (1X,A)
+        IF (NI==1) WRITE (LUNIT,90001) I1
+90001   FORMAT ('In the above message, I1 = ',I10)
+        IF (NI==2) WRITE (LUNIT,90002) I1, I2
+90002   FORMAT ('In the above message, I1 = ',I10,3X,'I2 = ',I10)
+        IF (NR==1) WRITE (LUNIT,90003) R1
+90003   FORMAT ('In the above message, R1 = ',D21.13)
+        IF (NR==2) WRITE (LUNIT,90004) R1, R2
+90004   FORMAT ('In the above message, R1 = ',D21.13,3X,'R2 = ',D21.13)
+
+!       Abort the run if LEVEL = 2.
+10      IF (LEVEL/=2) RETURN
+        WRITE (LUNIT,90005)
+90005   FORMAT ('LEVEL = 2 in XERRDV. Stopping.')
+        STOP
+
+      END SUBROUTINE XERRDV
+!_______________________________________________________________________
+
+      SUBROUTINE XSETF(MFLAG)
+! ..
+!     Reset the error print control flag.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: MFLAG
+! ..
+! .. Local Scalars ..
+        INTEGER :: JUNK
+! ..
+! .. FIRST EXECUTABLE STATEMENT XSETF
+! ..
+        IF (MFLAG==0 .OR. MFLAG==1) JUNK = IXSAV(2,MFLAG,.TRUE.)
+!       Get rid of a compiler warning message:
+        IF (JUNK/=JUNK) STOP
+        RETURN
+
+      END SUBROUTINE XSETF
+!_______________________________________________________________________
+
+      SUBROUTINE XSETUN(LUN)
+! ..
+!     Reset the logical unit number for error messages.
+! ..
+!     XSETUN sets the logical unit number for error messages to LUN.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER :: LUN
+! ..
+! .. Local Scalars ..
+        INTEGER :: JUNK
+! ..
+! .. FIRST EXECUTABLE STATEMENT XSETUN
+! ..
+        IF (LUN>0) JUNK = IXSAV(1,LUN,.TRUE.)
+!       Get rid of a compiler warning message:
+        IF (JUNK/=JUNK) STOP
+        RETURN
+
+      END SUBROUTINE XSETUN
+!_______________________________________________________________________
+
+      FUNCTION IXSAV(IPAR,IVALUE,ISET)
+! ..
+! Save and recall error message control parameters.
+! ..
+! IXSAV saves and recalls one of two error message parameters:
+!  LUNIT, the logical unit number to which messages are printed,
+!  and MESFLG, the message print flag.
+! This is a modification of the SLATEC library routine J4SAVE.
+! Saved local variables:
+!  LUNIT  = Logical unit number for messages. The default is
+!           obtained by a call to IUMACH(may be machine-dependent).
+!  MESFLG = Print control flag:
+!           1 means print all messages (the default).
+!           0 means no printing.
+! On input:
+!  IPAR   = Parameter indicator (1 for LUNIT, 2 for MESFLG).
+!  IVALUE = The value to be set for the parameter, if ISET = .TRUE.
+!  ISET   = Logical flag to indicate whether to read or write.
+!           If ISET = .TRUE., the parameter will be given
+!           the value IVALUE. If ISET = .FALSE., the parameter
+!           will be unchanged, and IVALUE is a dummy argument.
+! On return:
+!   IXSAV = The (old) value of the parameter.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Function Return Value ..
+        INTEGER :: IXSAV
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: IPAR, IVALUE
+        LOGICAL, INTENT (IN) :: ISET
+! ..
+! .. Local Scalars ..
+        INTEGER, SAVE :: LUNIT, MESFLG
+! ..
+! .. Data Statements ..
+        DATA LUNIT/ -1/, MESFLG/1/
+! ..
+! .. FIRST EXECUTABLE STATEMENT IXSAV
+! ..
+        IF (IPAR==1) THEN
+          IF (LUNIT==-1) LUNIT = IUMACH()
+!  i       Get rid of a compiler warning message:
+          IF (LUNIT/=LUNIT) STOP
+          IXSAV = LUNIT
+          IF (ISET) LUNIT = IVALUE
+        END IF
+
+        IF (IPAR==2) THEN
+          IXSAV = MESFLG
+          IF (ISET) MESFLG = IVALUE
+        END IF
+        RETURN
+
+      END FUNCTION IXSAV
+!_______________________________________________________________________
+
+      FUNCTION IUMACH()
+! ..
+!     Provide the standard output unit number.
+! ..
+!     INTEGER LOUT, IUMACH
+!     LOUT = IUMACH()
+!     Function Return Values:
+!     LOUT: the standard logical unit for Fortran output.
+!     Internal Notes:
+!     The built-in value of 6 is standard on a wide range
+!     of Fortran systems. This may be machine-dependent.
+! ..
+! .. Function Return Value ..
+        INTEGER :: IUMACH
+! ..
+! .. FIRST EXECUTABLE STATEMENT IUMACH
+! ..
+        IUMACH = 6
+        RETURN
+
+      END FUNCTION IUMACH
+! The modified error handling routines end here.
+!_______________________________________________________________________
+
+      SUBROUTINE CHECK_STAT(IER,CALLED_FROM_WHERE)
+! ..
+! Print an error message if a storage allocation error
+! occurred.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: CALLED_FROM_WHERE, IER
+! ..
+! .. Local Scalars ..
+        INTEGER :: I1
+        CHARACTER (80) :: MSG
+! ..
+! .. FIRST EXECUTABLE STATEMENT CHECK_STAT
+! ..
+        IF (IER/=0) THEN
+          I1 = CALLED_FROM_WHERE
+          MSG = 'A storage allocation error occurred.'
+          CALL XERRDV(MSG,1410,1,0,0,0,0,ZERO,ZERO)
+          MSG = 'The error occurred at location I1.'
+          CALL XERRDV(MSG,1410,2,1,I1,0,0,ZERO,ZERO)
+        END IF
+        RETURN
+
+      END SUBROUTINE CHECK_STAT
+!_______________________________________________________________________
+
+      SUBROUTINE DVPREPS(NEQ,Y,YH,LDYH,SAVF,EWT,F,JAC)
+! ..
+! Determine the sparsity structure and allocate the necessary arrays
+! for MA28 based sparse solutions.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: LDYH, NEQ
+! ..
+! .. Array Arguments ..
+        REAL (WP), INTENT (INOUT) :: EWT(*), Y(*)
+        REAL (WP) :: SAVF(*)
+        REAL (WP), INTENT (IN) :: YH(LDYH,*)
+! ..
+! .. Subroutine Arguments ..
+        EXTERNAL F, JAC
+! ..
+! .. Local Scalars ..
+        REAL (WP) :: DQ, DYJ, ERWT, FAC, YJ
+        INTEGER :: I, IER, J, JFOUND, K, KMAX, KMIN, KNEW, NP1, NZ
+        CHARACTER (80) :: MSG
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, ALLOCATED, MAX, SIGN
+! ..
+! .. FIRST EXECUTABLE STATEMENT DVPREPS
+! ..
+        NZ_SWAG = MAX(MAX(1000,NZ_SWAG),10*N)
+        NP1 = N + 1
+        NZ_ALL = NZ_SWAG
+!       ADDTONNZ = MAX(1000,NZ_SWAG)
+        ADDTONNZ = NZ_SWAG
+10      CONTINUE
+        IF (ALLOCATED(IAN)) THEN
+          DEALLOCATE (IAN,JAN,IGP,JGP,FTEMP1,IKEEP28,IW28,ICN,PMAT, &
+            JVECT,STAT=IER)
+          CALL CHECK_STAT(IER,490)
+          IF (ALLOCATED(JMAT)) THEN
+            DEALLOCATE (JMAT,STAT=IER)
+            CALL CHECK_STAT(IER,500)
+          END IF
+        END IF
+        NZ_ALL = NZ_ALL + ADDTONNZ
+        LICN_ALL = ELBOW_ROOM * NZ_ALL
+        LIRN_ALL = ELBOW_ROOM * NZ_ALL
+        IF (LICN_ALL>MAX_ARRAY_SIZE .OR. LIRN_ALL>MAX_ARRAY_SIZE) THEN
+          MSG = 'Maximum array size exceeded. Stopping.'
+          CALL XERRDV(MSG,1420,2,0,0,0,0,ZERO,ZERO)
+        END IF
+!       Note: ICN may need to be reallocated in DVJACS28.
+        ALLOCATE (IAN(NP1),JAN(LIRN_ALL),IGP(NP1),JGP(N),FTEMP1(N), &
+          IKEEP28(N,5),IW28(N,8),ICN(LICN_ALL),PMAT(LICN_ALL),      &
+          JVECT(LIRN_ALL),STAT=IER)
+        CALL CHECK_STAT(IER,510)
+        IF (JSV==1) THEN
+          ALLOCATE (JMAT(NZ_ALL),STAT=IER)
+          CALL CHECK_STAT(IER,520)
+          JMAT(1:NZ_ALL) = ZERO
+        END IF
+
+        IF (MOSS==0) GOTO 30
+        IF (ISTATC==3) GOTO 20
+
+!       ISTATE = 1 and MOSS /= 0.
+
+!       Perturb Y for structure determination:
+        DO I = 1, N
+          ERWT = ONE/EWT(I)
+          FAC = ONE + ONE/(I+ONE)
+          Y(I) = Y(I) + FAC*SIGN(ERWT,Y(I))
+        END DO
+        GOTO (60,70) MOSS
+
+20      CONTINUE
+!       ISTATE = 3 and MOSS /= 0.
+
+!       Load Y from YH(*,1):
+        Y(1:N) = YH(1:N,1)
+        GOTO (60,70) MOSS
+
+!       MOSS = 0
+
+!       Process user's IA,JA. Add diagonal entries if necessary:
+30      CONTINUE
+        IF (IAJA_CALLED) THEN
+        ELSE
+          MSG = 'You have indicated that you wish to supply the'
+          CALL XERRDV(MSG,1430,1,0,0,0,0,ZERO,ZERO)
+          MSG = 'sparsity arrays IA and JA directly but you did'
+          CALL XERRDV(MSG,1430,1,0,0,0,0,ZERO,ZERO)
+          MSG = 'not call SET_IAJA after calling SET_OPTS.'
+          CALL XERRDV(MSG,1430,2,0,0,0,0,ZERO,ZERO)
+        END IF
+        KNEW = 1
+        KMIN = IA(1)
+        IAN(1) = 1
+        DO J = 1, N
+          JFOUND = 0
+          KMAX = IA(J+1) - 1
+          IF (KMIN>KMAX) GOTO 40
+          DO K = KMIN, KMAX
+            I = JA(K)
+            IF (I==J) JFOUND = 1
+            IF (KNEW>NZ_ALL) THEN
+               IF (LP /= 0) THEN
+                  MSG = 'NZ_ALL (=I1) is not large enough.'
+                  CALL XERRDV(MSG,1440,1,0,0,0,0,ZERO,ZERO)
+                  MSG = 'Allocating more space for another try.'
+                  CALL XERRDV(MSG,1440,1,1,NZ_ALL,0,0,ZERO,ZERO)
+               END IF
+               GOTO 10
+            END IF
+            JAN(KNEW) = I
+            KNEW = KNEW + 1
+          END DO
+          IF (JFOUND==1) GOTO 50
+40        IF (KNEW>NZ_ALL) THEN
+             IF (LP /= 0) THEN
+                MSG = 'NZ_ALL (=I1) is not large enough.'
+                CALL XERRDV(MSG,1450,1,0,0,0,0,ZERO,ZERO)
+                MSG = 'Allocating more space for another try.'
+                CALL XERRDV(MSG,1450,1,1,NZ_ALL,0,0,ZERO,ZERO)
+             END IF
+             GOTO 10
+          END IF
+          JAN(KNEW) = J
+          KNEW = KNEW + 1
+50        IAN(J+1) = KNEW
+          KMIN = KMAX + 1
+        END DO
+        GOTO 90
+
+60      CONTINUE
+
+!       MOSS = 1.
+
+!       Compute structure from user-supplied Jacobian routine JAC.
+        NZ = 0
+        CALL JAC(NEQ,TN,Y,IAN,JAN,NZ,PMAT)
+        IF (NZ<=0) THEN
+          MSG = 'Illegal value of NZ from JAC in DVPREPS.'
+          CALL XERRDV(MSG,1460,2,0,0,0,0,ZERO,ZERO)
+        END IF
+        IF (NZ>NZ_ALL) THEN
+           IF (LP /= 0) THEN
+              MSG = 'NZ_ALL (=I1) is not large enough.'
+              CALL XERRDV(MSG,1470,1,0,0,0,0,ZERO,ZERO)
+              MSG = 'Allocating more space for another try.'
+              CALL XERRDV(MSG,1470,1,1,NZ_ALL,0,0,ZERO,ZERO)
+           END IF
+           GOTO 10
+        END IF
+        CALL JAC(NEQ,TN,Y,IAN,JAN,NZ,PMAT)
+        CALL SET_ICN(N,IAN,ICN)
+        CALL CHECK_DIAG(N,IAN,JAN,ICN)
+        GOTO 90
+
+!       MOSS = 2.
+
+!       Compute structure from results of N+1 calls to F.
+70      K = 1
+        IAN(1) = 1
+        DO I = 1, N
+          ERWT = ONE/EWT(I)
+          FAC = ONE + ONE/(I+ONE)
+          Y(I) = Y(I) + FAC*SIGN(ERWT,Y(I))
+        END DO
+        CALL F(NEQ,TN,Y,SAVF)
+        NFE = NFE + 1
+        DO J = 1, N
+          IF (K>NZ_ALL) THEN
+             IF (LP /= 0) THEN
+                MSG = 'NZ_ALL (=I1) is not large enough.'
+                CALL XERRDV(MSG,1480,1,0,0,0,0,ZERO,ZERO)
+                MSG = 'Allocating more space for another try.'
+                CALL XERRDV(MSG,1480,1,1,NZ_ALL,0,0,ZERO,ZERO)
+             END IF
+             GOTO 10
+          END IF
+          YJ = Y(J)
+          ERWT = ONE/EWT(J)
+          DYJ = SIGN(ERWT,YJ)
+          Y(J) = YJ + DYJ
+          CALL F(NEQ,TN,Y,FTEMP1)
+          NFE = NFE + 1
+          Y(J) = YJ
+          DO 80 I = 1, N
+            DQ = (FTEMP1(I)-SAVF(I))/DYJ
+            IF ((ABS(DQ)<=SETH) .AND. (I/=J)) GOTO 80
+            JAN(K) = I
+            K = K + 1
+80        END DO
+          IAN(J+1) = K
+        END DO
+90      CONTINUE
+        IF (MOSS==0 .OR. ISTATC/=1) GOTO 100
+!       If ISTATE = 1 and MOSS /= 0, restore Y from YH.
+        Y(1:N) = YH(1:N,1)
+100     NNZ = IAN(NP1) - 1
+        LENIGP = 0
+        MAXG = 0
+        IF (MITER==7) THEN
+!         Compute grouping of column indices.
+          MAXG = NP1
+          CALL DGROUP(N,IAN,JAN,MAXG,NGP,IGP,JGP,IKEEP28(1,1), &
+            IKEEP28(1,2),IER)
+          IF (IER/=0) THEN
+            MSG = 'An error occurred in DGROUP.'
+            CALL XERRDV(MSG,1490,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          LENIGP = NGP + 1
+        END IF
+
+        IF (USE_JACSP .AND. MITER==7) THEN
+!         Use Doug Salane's Jacobian routines to determine the column
+!         grouping; and allocate and initialize the necessary arrays
+!         for use in DVJACS48.
+          IF (ALLOCATED(INDROWDS)) THEN
+             DEALLOCATE (INDROWDS, INDCOLDS, NGRPDS, IPNTRDS, JPNTRDS, IWADS, &
+               IWKDS, IOPTDS, YSCALEDS, WKDS, FACDS)
+             CALL CHECK_STAT(IER,530)
+          END IF
+!         We could delete IWADS and use IW28 array.
+          ALLOCATE (INDROWDS(NNZ), INDCOLDS(NNZ), NGRPDS(N+1), IPNTRDS(N+1), &
+            JPNTRDS(N+1), IWADS(6*N), IWKDS(50+N), IOPTDS(5), YSCALEDS(N),  &
+            WKDS(3*N), FACDS(N) ,STAT=IER)
+          CALL CHECK_STAT(IER,540)
+          INDROWDS(1:NNZ) = JAN(1:NNZ)
+          CALL SET_ICN(N,IAN,INDCOLDS)
+          CALL CHECK_DIAG(N,IAN,INDROWDS,INDCOLDS)
+          LIWADS = 6 * N
+          CALL DVDSM(N,N,NNZ,INDROWDS,INDCOLDS,NGRPDS,MAXGRPDS,MINGRPDS,      &
+            INFODS,IPNTRDS,JPNTRDS,IWADS,LIWADS)
+          IF (INFODS /= 1) THEN
+             MSG = 'An error occurred in subroutine DSM. INFO = I1.'
+               CALL XERRDV(MSG,1500,2,1,INFODS,0,0,ZERO,ZERO)
+          END IF
+!         For use in DVJACS28:
+          IOPTDS(4) = 0
+!         Define the IGP and JGP arrays needed by DVJACS28.
+          CALL DGROUPDS(N,MAXGRPDS,NGRPDS,IGP,JGP)
+          NGP = MAXGRPDS
+          LENIGP = MAXGRPDS + 1
+        END IF
+
+!       Trim the arrays to the final sizes.
+
+        IF (NZ_ALL>NNZ) THEN
+          NZ_ALL = NNZ
+          MAX_NNZ = MAX(MAX_NNZ,NNZ)
+          LIRN_ALL = ELBOW_ROOM * NNZ
+          ICN(1:NNZ) = JAN(1:NNZ)
+          DEALLOCATE (JAN,STAT=IER)
+          CALL CHECK_STAT(IER,550)
+          ALLOCATE (JAN(LIRN_ALL),STAT=IER)
+          CALL CHECK_STAT(IER,560)
+          JAN(1:NNZ) = ICN(1:NNZ)
+          CALL CHECK_STAT(IER,570)
+          DEALLOCATE (ICN,PMAT,JVECT,STAT=IER)
+          CALL CHECK_STAT(IER,580)
+          IF (ALLOCATED(JMAT)) THEN
+            DEALLOCATE (JMAT,STAT=IER)
+            CALL CHECK_STAT(IER,590)
+          END IF
+          LICN_ALL = ELBOW_ROOM * NNZ
+          ALLOCATE (ICN(LICN_ALL),PMAT(LICN_ALL),JVECT(LIRN_ALL),STAT=IER)
+          CALL CHECK_STAT(IER,600)
+          IF (JSV==1) THEN
+            ALLOCATE (JMAT(NNZ),STAT=IER)
+            CALL CHECK_STAT(IER,610)
+            JMAT(1:NNZ) = ZERO
+          END IF
+          IF (MITER==7) THEN
+            JVECT(1:LENIGP) = IGP(1:LENIGP)
+            DEALLOCATE (IGP,STAT=IER)
+            CALL CHECK_STAT(IER,620)
+            ALLOCATE (IGP(LENIGP),STAT=IER)
+            CALL CHECK_STAT(IER,630)
+            IGP(1:LENIGP) = JVECT(1:LENIGP)
+          END IF
+        END IF
+        IF (SCALE_MATRIX) THEN
+           IF (ALLOCATED(CSCALEX)) THEN
+              DEALLOCATE (CSCALEX,RSCALEX,WSCALEX,STAT=IER)
+              CALL CHECK_STAT(IER,640)
+              ALLOCATE (CSCALEX(N),RSCALEX(N),WSCALEX(N,5),STAT=IER)
+              CALL CHECK_STAT(IER,650)
+           ELSE
+              ALLOCATE (CSCALEX(N),RSCALEX(N),WSCALEX(N,5),STAT=IER)
+              CALL CHECK_STAT(IER,660)
+           END IF
+        END IF
+        IF (LP /= 0) THEN
+           MSG = 'The final DVPRPEPS storage allocations are:'
+           CALL XERRDV(MSG,1510,1,0,0,0,0,ZERO,ZERO)
+           MSG = '   NZ_ALL (=I1):'
+           CALL XERRDV(MSG,1510,1,1,NZ_ALL,0,0,ZERO,ZERO)
+           MSG = '   LIRN_ALL (=I1) and LICN_ALL (=I2):'
+           CALL XERRDV(MSG,1510,1,2,LIRN_ALL,LICN_ALL,0,ZERO,ZERO)
+         END IF
+        RETURN
+
+      END SUBROUTINE DVPREPS
+!_______________________________________________________________________
+
+      SUBROUTINE DVRENEW(NEQ,Y,SAVF,EWT,F)
+! ..
+! In the event MA28BD encounters a zero pivot in the LU factorization
+! of the iteration matrix due to an out-of-date MA28AD pivot sequence,
+! re-calculate the sparsity structure using finite differences.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: NEQ
+! ..
+! .. Array Arguments ..
+        REAL (WP), INTENT (INOUT) :: EWT(*), SAVF(*), Y(*)
+! ..
+! .. Subroutine Arguments ..
+        EXTERNAL F
+! ..
+! .. Local Scalars ..
+        REAL (WP) :: DQ, DYJ, ERWT, FAC, YJ
+        INTEGER :: ADDTONZ, I, IER, J, K, KVAL, NP1
+        CHARACTER (80) :: MSG
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, ALLOCATED, MAX, SIGN
+! ..
+! .. FIRST EXECUTABLE STATEMENT DVRENEW
+! ..
+! .. Caution:
+!    This routine must not be called before DVPREPS has been called.
+!
+!    Note:
+!    On entry to DVRENEW, the allocated array sizes of arrays that
+!    may change size are:
+!      ICN, PMAT  = length LICN_ALL
+!      JAN, JVECT = length LIRN_ALL
+!      JMAT       = length NZ_ALL
+!      IGP        = length LENIGP on first entry; N+1 thereafter
+
+!       Check if a numerical Jacobian is being used and stop if
+!       it is not.
+        IF (MITER /= 7) THEN
+          MSG = 'DVRENEW can be used only if MITER = 7.'
+          CALL XERRDV(MSG,1520,2,0,0,0,0,ZERO,ZERO)
+        END IF
+
+!       Save Y and SAVF.
+        IF (.NOT.ALLOCATED(YTEMP)) THEN
+           ALLOCATE (YTEMP(N),DTEMP(N),STAT=IER)
+           CALL CHECK_STAT(IER,670)
+        END IF
+        YTEMP(1:N) = Y(1:N)
+        DTEMP(1:N) = SAVF(1:N)
+
+!       Define the amount to be added to the array lengths
+!       if necessary.
+        NP1 = N + 1
+        NNZ = IAN(NP1) - 1
+        ADDTONZ = ELBOW_ROOM * NNZ
+
+!       Just change the size of IGP to N+1 if have not already
+!       done so.
+        IF (SIZE(IGP) /= NP1) THEN
+           DEALLOCATE (IAN,STAT=IER)
+           CALL CHECK_STAT(IER,680)
+           ALLOCATE (IAN(NP1),STAT=IER)
+           CALL CHECK_STAT(IER,690)
+        END IF
+
+!       Go to the differencing section to determine the new
+!       sparsity structure.
+        GOTO 20
+
+10      CONTINUE
+
+!       Reallocate the arrays if necessary.
+        IF (KVAL > LIRN_ALL) THEN
+!          Note: JAN and JVECT may need to be reallocated in DVJACS28.
+           LIRN_ALL = LIRN_ALL + ADDTONZ
+           IF (LIRN_ALL>MAX_ARRAY_SIZE) THEN
+              MSG = 'Maximum array size exceeded. Stopping in DVRENEW.'
+             CALL XERRDV(MSG,1530,2,0,0,0,0,ZERO,ZERO)
+           END IF
+           DEALLOCATE (JAN,JVECT,STAT=IER)
+           CALL CHECK_STAT(IER,700)
+           ALLOCATE (JAN(LIRN_ALL),JVECT(LIRN_ALL),STAT=IER)
+           CALL CHECK_STAT(IER,710)
+        END IF
+        IF (KVAL > LICN_ALL) THEN
+!          Note: ICN and PMAT may need to be reallocated in DVJACS28.
+           LICN_ALL = LICN_ALL + ADDTONZ
+           IF (LICN_ALL>MAX_ARRAY_SIZE) THEN
+              MSG = 'Maximum array size exceeded. Stopping in DVRENEW.'
+             CALL XERRDV(MSG,1540,2,0,0,0,0,ZERO,ZERO)
+           END IF
+           DEALLOCATE (ICN,PMAT,STAT=IER)
+           CALL CHECK_STAT(IER,720)
+           ALLOCATE (ICN(LICN_ALL),PMAT(LICN_ALL),STAT=IER)
+           CALL CHECK_STAT(IER,730)
+        END IF
+
+   20   CONTINUE
+
+!       Perturb Y for structure determination:
+        DO I = 1, N
+          ERWT = ONE/EWT(I)
+          FAC = ONE + ONE/(I+ONE)
+          Y(I) = Y(I) + FAC*SIGN(ERWT,Y(I))
+        END DO
+
+!       Compute structure from results of N+1 calls to F.
+        K = 1
+        IAN(1) = 1
+        DO I = 1, N
+          ERWT = ONE/EWT(I)
+          FAC = ONE + ONE/(I+ONE)
+          Y(I) = Y(I) + FAC*SIGN(ERWT,Y(I))
+        END DO
+        CALL F(NEQ,TN,Y,SAVF)
+        NFE = NFE + 1
+        DO J = 1, N
+          KVAL = K
+          IF (KVAL > LIRN_ALL) THEN
+             IF (LP /= 0) THEN
+                MSG = 'LIRN_ALL (=I1) is not large enough.'
+                CALL XERRDV(MSG,1550,1,0,0,0,0,ZERO,ZERO)
+                MSG = 'Allocating more space for another try.'
+                CALL XERRDV(MSG,1550,1,1,LIRN_ALL,0,0,ZERO,ZERO)
+             END IF
+             GOTO 10
+          END IF
+          IF (KVAL > LICN_ALL) THEN
+             IF (LP /= 0) THEN
+                MSG = 'LICN_ALL (=I1) is not large enough.'
+                CALL XERRDV(MSG,1560,1,0,0,0,0,ZERO,ZERO)
+                MSG = 'Allocating more space for another try.'
+                CALL XERRDV(MSG,1560,1,1,LICN_ALL,0,0,ZERO,ZERO)
+             END IF
+             GOTO 10
+          END IF
+          YJ = Y(J)
+          ERWT = ONE/EWT(J)
+          DYJ = SIGN(ERWT,YJ)
+          Y(J) = YJ + DYJ
+          CALL F(NEQ,TN,Y,FTEMP1)
+          NFE = NFE + 1
+          Y(J) = YJ
+          DO 80 I = 1, N
+            DQ = (FTEMP1(I)-SAVF(I))/DYJ
+            IF ((ABS(DQ)<=SETH) .AND. (I/=J)) GOTO 80
+            JAN(K) = I
+            K = K + 1
+80        END DO
+          IAN(J+1) = K
+        END DO
+
+        NNZ = IAN(NP1) - 1
+        IF (NNZ > NZ_ALL .AND. JSV == 1) THEN
+!          Increase the size of JMAT if necessary.
+           NZ_ALL = NNZ
+           IF (LP /= 0) THEN
+              MSG = 'NZ_ALL (=I1) is not large enough.'
+              CALL XERRDV(MSG,1570,1,0,0,0,0,ZERO,ZERO)
+              MSG = 'Allocating more space for another try.'
+              CALL XERRDV(MSG,1570,1,1,NZ_ALL,0,0,ZERO,ZERO)
+           END IF
+           IF (NZ_ALL>MAX_ARRAY_SIZE) THEN
+              MSG = 'Maximum array size exceeded. Stopping in DVRENEW.'
+              CALL XERRDV(MSG,1580,2,0,0,0,0,ZERO,ZERO)
+           END IF
+           DEALLOCATE (JMAT,STAT=IER)
+           CALL CHECK_STAT(IER,740)
+           ALLOCATE (JMAT(NZ_ALL),STAT=IER)
+           CALL CHECK_STAT(IER,750)
+           JMAT(1:NZ_ALL) = ZERO
+        END IF
+
+!       Compute grouping of column indices.
+
+        LENIGP = 0
+        MAXG = 0
+        MAXG = NP1
+        CALL DGROUP(N,IAN,JAN,MAXG,NGP,IGP,JGP,IKEEP28(1,1), &
+          IKEEP28(1,2),IER)
+        IF (IER/=0) THEN
+          MSG = 'An error occurred in DGROUP.'
+          CALL XERRDV(MSG,1590,2,0,0,0,0,ZERO,ZERO)
+        END IF
+        LENIGP = NGP + 1
+
+!       Restore Y and SAVF.
+        Y(1:N) = YTEMP(1:N)
+        SAVF(1:N) = DTEMP(1:N)
+        RETURN
+
+      END SUBROUTINE DVRENEW
+!_______________________________________________________________________
+
+      SUBROUTINE DGROUP(N,IA,JA,MAXG,NGRP,IGP,JGP,INCL,JDONE,IER)
+! ..
+! Construct groupings of the column indices of the Jacobian matrix,
+! used in the numerical evaluation of the Jacobian by finite
+! differences for sparse solutions.
+! ..
+!     Input:
+!     N      = the order of the matrix
+!     IA,JA  = sparse structure descriptors of the matrix by rows
+!     MAXG   = length of available storage in the IGP array
+!     INCL and JDONE are working arrays of length N.
+!     Output:
+!     NGRP   = number of groups
+!     JGP    = array of length N containing the column indices by
+!              groups
+!     IGP    = pointer array of length NGRP + 1 to the locations
+!              in JGP of the beginning of each group
+!     IER    = error indicator. IER = 0 if no error occurred, or
+!              1 if MAXG was insufficient
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (INOUT) :: IER, NGRP
+        INTEGER, INTENT (IN) :: MAXG, N
+! ..
+! .. Array Arguments ..
+        INTEGER, INTENT (IN) :: IA(*), JA(*)
+        INTEGER, INTENT (INOUT) :: IGP(*), INCL(*), JDONE(*), JGP(*)
+! ..
+! .. Local Scalars ..
+        INTEGER :: I, J, K, KMAX, KMIN, NCOL, NG
+! ..
+! .. FIRST EXECUTABLE STATEMENT DGROUP
+! ..
+        IER = 0
+        JDONE(1:N) = 0
+        NCOL = 1
+        DO NG = 1, MAXG
+          IGP(NG) = NCOL
+          INCL(1:N) = 0
+          DO 20 J = 1, N
+!           Reject column J if it is already in a group.
+            IF (JDONE(J)==1) GOTO 20
+            KMIN = IA(J)
+            KMAX = IA(J+1) - 1
+            DO 10 K = KMIN, KMAX
+!           Reject column J if it overlaps any column already
+!           in this group.
+              I = JA(K)
+              IF (INCL(I)==1) GOTO 20
+10          END DO
+!           Accept column J into group NG.
+            JGP(NCOL) = J
+            NCOL = NCOL + 1
+            JDONE(J) = 1
+            DO K = KMIN, KMAX
+              I = JA(K)
+              INCL(I) = 1
+            END DO
+20        END DO
+!         Stop if this group is empty (grouping is complete).
+          IF (NCOL==IGP(NG)) GOTO 30
+        END DO
+!       Error return if not all columns were chosen (MAXG too small).
+        IF (NCOL<=N) GOTO 40
+        NG = MAXG
+30      NGRP = NG - 1
+        RETURN
+40      IER = 1
+        RETURN
+
+      END SUBROUTINE DGROUP
+!_______________________________________________________________________
+
+      SUBROUTINE BGROUP(N,BJA,BINCL,BDONE,ML,MU)
+! ..
+! Construct groupings of the column indices of the Jacobian
+! matrix, used in the numerical evaluation of the Jacobian
+! by finite differences for banded solutions when the nonzero
+! sub and super diagonals are known. BGROUP is similar to
+! DGROUP but it does not require the sparse structure arrays
+! and it uses real rather than integer work arrays.
+! ..
+!     Input:
+!
+!       N       = the order of the matrix (number of odes)
+!       BINCL   = real working array of length N
+!       BJA     = real working array of length N
+!       BDONE   = real working array of length N
+!       ML      = integer lower bandwidth
+!       MU      = integer upper bandwidth
+!
+!     Output: (PRIVATE information used in DVJAC)
+!
+!       BNGRP   = integer number of groups
+!       BJGP    = integer array of length N containing the
+!                 column indices by groups
+!       BIGP    = integer pointer array of length BNGRP + 1
+!                 to the locations in BJGP of the beginning
+!                 of each group
+!
+!       Note:
+!          On output:
+!             For I = 1, ..., BNGRP:
+!                Start of group I:
+!                  J = BIGP(I)
+!                Number of columns in group I:
+!                  K = BIGP(I+1) - BIGP(I)
+!                Columns in group I:
+!                  BJGP(J-1+L), L=1, ..., K
+!
+!    Note:
+!    The three arrays BJA, BINCL, and BDONE are REAL to avoid the
+!    necessity to allocate three new INTEGER arrays. BGROUP can
+!    be called only at an integration start or restart because
+!    DVODE_F90 work arrays are used for these arrays.
+!
+!    Note:
+!    The PRIVATE banded information SUBDS, NSUBDS, SUPDS, NSUPS,
+!    ML, and MU must be defined before calling BGROUP.
+!       ML        = lower bandwidth
+!       MU        = upper bandwidth
+!       NSUBS     = number of strict sub diagonals
+!       SUBDS(I)  = row in which the Ith sub diagonal
+!                   begins, I=1, ..., NSUBS
+!       NSUPS     = number of strict super diagonals
+!       SUPDS(I)  = column in which the Ith super diagonal
+!                   begins, I=1, ..., NSUPS
+! ..
+        IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: N, ML, MU
+! ..
+! .. Array Arguments ..
+        REAL (WP), INTENT (INOUT) :: BINCL(*), BJA(*), BDONE(*)
+! ..
+! .. Local Scalars ..
+        INTEGER :: I, IBDONE, IBINCL, IER, J, K, KBEGIN, KFINI, &
+          KI, KJ, MAXG, NCOL, NG
+        REAL (WP) :: FUDGE, ONE_PLUS_FUDGE
+        CHARACTER (80) :: MSG
+! ..
+! .. Intrinsic Functions ..
+     INTRINSIC INT, MAX, MIN, REAL
+! ..
+! .. FIRST EXECUTABLE STATEMENT BGROUP
+! ..
+!       Storage for the column grouping information.
+        IF (ALLOCATED(BIGP)) THEN
+           DEALLOCATE (BIGP,BJGP,STAT=IER)
+           CALL CHECK_STAT(IER,760)
+        END IF
+        ALLOCATE (BIGP(N+1),BJGP(N),STAT=IER)
+        CALL CHECK_STAT(IER,770)
+
+        FUDGE = 0.4_WP
+        ONE_PLUS_FUDGE = 1.0_WP + FUDGE
+        MAXG = N + 1
+!       BDONE(1:N) = 0 ...
+        BDONE(1:N) = FUDGE
+        NCOL = 1
+        DO NG = 1, MAXG
+           BIGP(NG) = NCOL
+!          BINCL(1:N) = 0 ...
+           BINCL(1:N) = FUDGE
+           DO 30 J = 1, N
+!             Reject column J if it is already in a group.
+!             IF (BDONE(J) == 1) GOTO 30 ...
+              IBDONE = INT(BDONE(J))
+              IF (IBDONE == 1) GOTO 30
+!             Vertical extent of band = KBEGIN to KFINI.
+!             KJ = number of nonzeros in column J.
+!             BJA(K) = K implies nonzero at (k,j).
+              KBEGIN = MAX(J-MU,1)
+              KFINI = MIN(J+ML,N)
+              KJ = 0
+!             BJA(1:N) = 0 ...
+              BJA(1:N) = FUDGE
+!             Locate the row positions of the nonzeros in column J.
+!             Restrict attention to the band:
+              DO 10 K = KBEGIN, KFINI
+                 IF (K < J) THEN
+                    IF (NSUPS > 0) THEN
+                       DO I = NSUPS, 1, -1
+!                         KI = SUPDS(I) + J - 1
+                          KI = J + 1 - SUPDS(I)
+                          IF (K == KI) THEN
+                             KJ = KJ + 1
+!                            BJA(K) = K ...
+                             BJA(K) = REAL(K) + FUDGE
+                          END IF
+                       END DO
+                    END IF
+                 ELSEIF (K == J) THEN
+                    KJ = KJ + 1
+!                   BJA(K) = K ...
+                    BJA(K) = REAL(K) + FUDGE
+                 ELSE
+                    IF (NSUBS > 0) THEN
+                       DO I = NSUBS, 1, -1
+                          KI = SUBDS(I) + J -1
+                          IF (K == KI) THEN
+                             KJ = KJ + 1
+!                            BJA(K) = K ...
+                             BJA(K) = REAL(K) + FUDGE
+                          END IF
+                       END DO
+                    END IF
+              END IF
+ 10           CONTINUE
+!             At this point BJA contains the row numbers for
+!             the nonzeros in column J.
+              DO 20 K = KBEGIN, KFINI
+!                Reject column J if it overlaps any column
+!                already in this group.
+!                I = BJA(K)
+                 I = INT(BJA(K))
+                 IBINCL = INT(BINCL(I))
+!                IF (BINCL(I) == 1 .AND. I == K) GOTO 30
+                 IF (IBINCL == 1 .AND. I == K) GOTO 30
+ 20           END DO
+!             Accept column J into group NG.
+              BJGP(NCOL) = J
+              NCOL = NCOL + 1
+!             BDONE(J) = 1 ...
+              BDONE(J) = ONE_PLUS_FUDGE
+              DO K = 1, N
+!                IF (I == K) BINCL(I) = 1 ...
+                 I = INT(BJA(K))
+                 IF (I == K) BINCL(I) = ONE_PLUS_FUDGE
+              END DO
+ 30        END DO
+!          Done if this group is empty (grouping is complete).
+           IF (NCOL == BIGP(NG)) GOTO 40
+        END DO
+
+!       Should not get here since MAXG = N + 1.
+!       Terminal error if not all columns were chosen
+!       because MAXG too small.
+        IF (NCOL <= N) THEN
+           MSG = 'An impossible error occurred in subroutine BGROUP.'
+           CALL XERRDV(MSG,1600,2,0,0,0,0,ZERO,ZERO)
+        END IF
+
+        NG = MAXG
+ 40     BNGRP = NG - 1
+
+!       Trim BIGP to it's actual size if necessary.
+        IF (NG < MAXG) THEN
+!          BJA(1:NG) = BIGP(1:NG) ...
+           DO I = 1, NG
+              BJA(I) = REAL(BIGP(I)) + FUDGE
+           END DO
+           DEALLOCATE (BIGP,STAT=IER)
+           CALL CHECK_STAT(IER,780)
+           ALLOCATE (BIGP(NG),STAT=IER)
+           CALL CHECK_STAT(IER,790)
+!          BIGP(1:NG) = BJA(1:NG) ...
+           DO I = 1, NG
+              BIGP(I) = INT(BJA(I))
+           END DO
+        END IF
+        RETURN
+
+      END SUBROUTINE BGROUP
+!_______________________________________________________________________
+
+      SUBROUTINE BANDED_IAJA(N,ML,MU)
+! ..
+! Build the sparse structure descriptor arrays for a banded
+! matrix if the nonzero diagonals are known.
+! ..
+!     Input:
+!
+!       N       = the order of the matrix (number of odes)
+!       ML      = integer lower bandwidth
+!       MU      = integer upper bandwidth
+!
+!     Output: (PRIVATE information used in DVJAC)
+!
+!       IAB     = IA descriptor array
+!       JAB     = JA descriptor array
+!
+!    Note:
+!    The PRIVATE banded information SUBDS, NSUBS, SUPDS, NSUPS,
+!    ML, and MU must be defined before calling BANDED_IAJA.
+!       ML        = lower bandwidth
+!       MU        = upper bandwidth
+!       NSUBS     = number of strict sub diagonals
+!       SUBDS(I)  = row in which the Ith sub diagonal
+!                   begins, I=1, ..., NSUBS
+!       NSUPS     = number of strict super diagonals
+!       SUPDS(I)  = column in which the Ith super diagonal
+!                   begins, I=1, ..., NSUPS
+! ..
+        IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: N, ML, MU
+! ..
+! .. Local Scalars ..
+        INTEGER :: I, IER, J, K, KBEGIN, KFINI, KI, KJ, &
+          NP1, NZBB
+        CHARACTER (80) :: MSG
+! ..
+! .. Intrinsic Functions ..
+     INTRINSIC ALLOCATED, MAX, MIN
+! ..
+! .. FIRST EXECUTABLE STATEMENT BANDED_IAJA
+! ..
+!    Check for errors.
+
+     IF (.NOT.BUILD_IAJA) THEN
+        MSG = 'BANDED_IAJA cannot be called with BUILD_IAJA = .FALSE.'
+        CALL XERRDV(MSG,1610,2,0,0,0,0,ZERO,ZERO)
+     END IF
+
+     IF (NSUBS < 0) THEN
+        MSG = 'NSUBS < 0 in BANDED_IAJA.'
+        CALL XERRDV(MSG,1620,2,0,0,0,0,ZERO,ZERO)
+     ELSE
+        IF (NSUBS > 0) THEN
+           IF (NSUBS /= SIZE(SUBDS)) THEN
+              MSG = 'The size of the SUBDS array must'
+              CALL XERRDV(MSG,1630,1,0,0,0,0,ZERO,ZERO)
+              MSG = 'equal NSUBS in BANDED_IAJA.'
+              CALL XERRDV(MSG,1630,2,0,0,0,0,ZERO,ZERO)
+           END IF
+        END IF
+     END IF
+
+     IF (NSUPS < 0) THEN
+        MSG = 'NSUPS < 0 in BANDED_IAJA.'
+        CALL XERRDV(MSG,1640,2,0,0,0,0,ZERO,ZERO)
+     ELSE
+        IF (NSUPS > 0) THEN
+           IF (NSUPS /= SIZE(SUPDS)) THEN
+              MSG = 'The size of the SUPDS array must'
+              CALL XERRDV(MSG,1650,1,0,0,0,0,ZERO,ZERO)
+              MSG = 'equal NSUPS in BANDED_IAJA.'
+              CALL XERRDV(MSG,1650,2,0,0,0,0,ZERO,ZERO)
+           END IF
+        END IF
+     END IF
+
+!    Allocate the necessary storage for the descriptor arrays.
+
+!    Define the total number of elements in all diagonals.
+     NP1 = N + 1
+     NZB = (NSUBS + NSUPS + 1) * NP1 - 1
+     IF (NSUBS /= 0) THEN
+        DO I = 1, NSUBS
+           NZB = NZB - SUBDS(I)
+        END DO
+     END IF
+     IF (NSUPS /= 0) THEN
+        DO I = 1, NSUPS
+           NZB = NZB - SUPDS(I)
+        END DO
+     END IF
+     IF (ALLOCATED(IAB)) THEN
+        DEALLOCATE(IAB,JAB,STAT=IER)
+        CALL CHECK_STAT(IER,800)
+     END IF
+     ALLOCATE(IAB(NP1),JAB(NZB),STAT=IER)
+     CALL CHECK_STAT(IER,810)
+     IAB(1) = 1
+     NZBB = 0
+
+!    For each column in the matrix...
+     DO J = 1, N
+!       Vertical extent of band = KBEGIN to KFINI.
+!       KJ = number of nonzeros in column J.
+        KBEGIN = MAX(J-MU,1)
+        KFINI = MIN(J+ML,N)
+        KJ = 0
+!       Locate the row positions of the nonzeros in column J.
+!       (Restrict attention to the band.)
+        IAB(J+1) = IAB(J)
+!       For each row in the intersection of the band with
+!       this column ...
+        DO K = KBEGIN, KFINI
+!          Does column J intersect a super diagonal at (K,J)?
+           IF (K < J) THEN
+              DO I = NSUPS, 1, -1
+                 KI = J + 1 - SUPDS(I)
+                 IF (K == KI) THEN
+                    KJ = KJ + 1
+                    IAB(J+1) = IAB(J+1) + 1
+                    NZBB = NZBB + 1
+                    JAB(NZBB) = K
+                    GOTO 10
+                 END IF
+              END DO
+           ELSEIF (K == J) THEN
+!             We are on the main diagonal.
+              KJ = KJ + 1
+              IAB(J+1) = IAB(J+1) + 1
+              NZBB = NZBB + 1
+              JAB(NZBB) = K
+              GOTO 10
+           ELSE
+!             Does column J intersect a sub diagonal at (K,J)?
+              DO I = NSUBS, 1, -1
+                 KI = SUBDS(I) + J - 1
+                 IF (K == KI) THEN
+                    KJ = KJ + 1
+                    IAB(J+1) = IAB(J+1) + 1
+                    NZBB = NZBB + 1
+                    JAB(NZBB) = K
+                    GOTO 10
+                 END IF
+              END DO
+           END IF
+10         CONTINUE
+        END DO
+     END DO
+
+     IF (NZBB /= NZB) THEN
+        MSG = 'NZBB (I1) is not equal to NZB (I2)'
+        CALL XERRDV(MSG,1660,1,0,0,0,0,ZERO,ZERO)
+        MSG = 'in BANDED_IAJA.'
+        CALL XERRDV(MSG,1660,2,2,NZBB,NZB,0,ZERO,ZERO)
+     END IF
+     RETURN
+
+   END SUBROUTINE BANDED_IAJA
+!_______________________________________________________________________
+
+      SUBROUTINE BANDED_GET_BJNZ(N,ML,MU,JCOL,JNZ,NZJ)
+! ..
+! Locate the nonzeros in a given column of a sparse banded matrix
+! with known diagonals. This is a version of BANDED_IAJA modified
+! to do only one column.
+! ..
+!     Input:
+!
+!       N       = the order of the matrix (number of odes)
+!       ML      = integer lower bandwidth
+!       MU      = integer upper bandwidth
+!       JCOL    = column number between 1 and N
+!       JZ      = integer array of length N
+!
+!     Output:
+!
+!       JNZ    = integer array of length N. If
+!                 JNZ(K) is not 0, there is a
+!                 nonzero at position (K,JCOL)
+!       NZJ     = number of nozeros in column JCOL
+!
+!    Caution:
+!    No parameter checking is done since this subroutine
+!    will be called many times. Note that a number of
+!    PRIVATE parameters must be set before calling this
+!    subroutine.
+! ..
+        IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: N, ML, MU, JCOL
+        INTEGER, INTENT (OUT) :: NZJ
+! ..
+! .. Array Arguments ..
+        INTEGER, INTENT (OUT) :: JNZ(*)
+! ..
+! .. Local Scalars ..
+        INTEGER :: I, J, K, KBEGIN, KFINI, KI, KJ
+! ..
+! .. Intrinsic Functions ..
+     INTRINSIC MAX, MIN
+! ..
+! .. FIRST EXECUTABLE STATEMENT BANDED_GET_BJNZ
+! ..
+        JNZ(1:N) = 0
+        J = JCOL
+
+!       Locate the row positions of the nonzeros in column J.
+
+!       Vertical extent of band = KBEGIN to KFINI.
+        KBEGIN = MAX(J-MU,1)
+        KFINI = MIN(J+ML,N)
+!       KJ = number of nonzeros in column J.
+        KJ = 0
+!       For each row in the intersection of the band with
+!       this column ...
+        DO K = KBEGIN, KFINI
+!          Does column J intersect a super diagonal at (K,J)?
+           IF (K < J) THEN
+              DO I = NSUPS, 1, -1
+                 KI = J + 1 - SUPDS(I)
+                 IF (K == KI) THEN
+                    KJ = KJ + 1
+                    JNZ(KJ) = K
+                    GOTO 10
+                 END IF
+              END DO
+           ELSEIF (K == J) THEN
+!             We are on the main diagonal.
+              KJ = KJ + 1
+              JNZ(KJ) = K
+              GOTO 10
+           ELSE
+!             Does column J intersect a sub diagonal at (K,J)?
+              DO I = NSUBS, 1, -1
+                 KI = SUBDS(I) + J - 1
+                 IF (K == KI) THEN
+                    KJ = KJ + 1
+                    JNZ(KJ) = K
+                    GOTO 10
+                 END IF
+              END DO
+           END IF
+10         CONTINUE
+        END DO
+        NZJ = KJ
+     RETURN
+
+   END SUBROUTINE BANDED_GET_BJNZ
+!_______________________________________________________________________
+
+! Beginning of Jacobian related routines that use MA28
+
+      SUBROUTINE DVNLSS28(Y,YH,LDYH,SAVF,EWT,ACOR,IWM,WM,F,JAC, &
+        NFLAG,ATOL,ITOL)
+! ..
+! This is the nonlinear system solver for MA28 based sparse solutions.
+! ..
+! Subroutine DVNLSS28 is a nonlinear system solver, which uses functional
+! iteration or a chord (modified Newton) method. For the chord method
+! direct linear algebraic system solvers are used. Subroutine DVNLSS28
+! then handles the corrector phase of this integration package.
+! Communication with DVNLSS28 is done with the following variables. (For
+! more details, please see the comments in the driver subroutine.)
+! Y          = The dependent variable, a vector of length N, input.
+! YH         = The Nordsieck (Taylor) array, LDYH by LMAX, input
+!              and output. On input, it contains predicted values.
+! LDYH       = A constant >= N, the first dimension of YH, input.
+! SAVF       = A work array of length N.
+! EWT        = An error weight vector of length N, input.
+! ACOR       = A work array of length N, used for the accumulated
+!              corrections to the predicted y vector.
+! WM,IWM     = Real and integer work arrays associated with matrix
+!              operations in chord iteration (MITER /= 0).
+! F          = Dummy name for user supplied routine for f.
+! JAC        = Dummy name for user supplied Jacobian routine.
+! NFLAG      = Input/output flag, with values and meanings as follows:
+!              INPUT
+!                  0 first call for this time step.
+!                 -1 convergence failure in previous call to DVNLSS28.
+!                 -2 error test failure in DVSTEP.
+!              OUTPUT
+!                  0 successful completion of nonlinear solver.
+!                 -1 convergence failure or singular matrix.
+!                 -2 unrecoverable error in matrix preprocessing
+!                    (cannot occur here).
+!                 -3 unrecoverable error in solution (cannot occur
+!                    here).
+! IPUP       = Own variable flag with values and meanings as follows:
+!              0,          do not update the Newton matrix.
+!              MITER \= 0  update Newton matrix, because it is the
+!                          initial step, order was changed, the error
+!                          test failed, or an update is indicated by
+!                          the scalar RC or step counter NST.
+! For more details, see comments in driver subroutine.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: ITOL, LDYH
+        INTEGER, INTENT (INOUT) :: NFLAG
+! ..
+! .. Array Arguments ..
+        REAL (WP), INTENT (INOUT) :: ACOR(*), EWT(*), SAVF(*), &
+          WM(*), Y(*), YH(LDYH,*)
+        REAL (WP), INTENT (IN) :: ATOL(*)
+        INTEGER IWM(*)
+        LOGICAL DUMMY
+! ..
+! .. Subroutine Arguments ..
+        EXTERNAL F, JAC
+! ..
+! .. Local Scalars ..
+        REAL (WP) :: ACNRMNEW, CSCALE, DCON, DEL, DELP
+        INTEGER :: I, IERPJ, IERSL, M
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, MAX, MIN
+! ..
+! .. FIRST EXECUTABLE STATEMENT DVNLSS28
+! ..
+! Get rid of a couple of needless compiler warning messages.
+        DUMMY = .FALSE.
+        IF (DUMMY) THEN
+          WM(1) = ZERO
+          IWM(1) = 0
+        END IF  
+! On the first step, on a change of method order, or after a
+! nonlinear convergence failure with NFLAG = -2, set IPUP = MITER
+! to force a Jacobian update when MITER /= 0.
+        IF (JSTART==0) NSLP = 0
+        IF (NFLAG==0) ICF = 0
+        IF (NFLAG==-2) IPUP = MITER
+        IF ((JSTART==0) .OR. (JSTART==-1)) IPUP = MITER
+!       If this is functional iteration, set CRATE = 1 and drop
+!       to 220.
+        IF (MITER==0) THEN
+          CRATE = ONE
+          GOTO 10
+        END IF
+
+! RC is the ratio of new to old values of the coefficient H/EL(2)=h/l1.
+! When RC differs from 1 by more than CCMAX, IPUP is set to MITER
+! to force DVJACS28 to be called, if a Jacobian is involved. In any
+! case, DVJACS28 is called at least every MSBP steps.
+
+        DRC = ABS(RC-ONE)
+        IF (DRC>CCMAX .OR. NST>=NSLP+MSBP) IPUP = MITER
+
+! Up to MAXCOR corrector iterations are taken. A convergence test is
+! made on the r.m.s. norm of each correction, weighted by the error
+! weight vector EWT. The sum of the corrections is accumulated in the
+! vector ACOR(i). The YH array is not altered in the corrector loop.
+
+10      M = 0
+        DELP = ZERO
+! Original:
+!       CALL DCOPY_F90(N,YH(1,1),1,Y,1)
+        CALL DCOPY_F90(N,YH(1:N,1),1,Y(1:N),1)
+        CALL F(N,TN,Y,SAVF)
+        NFE = NFE + 1
+        IF (BOUNDS) THEN
+          DO I = 1, NDX
+            IF (ABS(YH(IDX(I),1)-LB(I))<=ZERO) SAVF(IDX(I)) = &
+              MAX(SAVF(IDX(I)),ZERO)
+            IF (ABS(YH(IDX(I),1)-UB(I))<=ZERO) SAVF(IDX(I)) = &
+              MIN(SAVF(IDX(I)),ZERO)
+          END DO
+        END IF
+        IF (IPUP<=0) GOTO 20
+
+! If indicated, the matrix P = I - h*rl1*J is reevaluated and
+! preprocessed before starting the corrector iteration. IPUP
+! is set to 0 as an indicator that this has been done.
+
+        CALL DVJACS28(Y,YH,LDYH,EWT,ACOR,SAVF,F,JAC,IERPJ,N, &
+          ATOL,ITOL)
+        IPUP = 0
+        RC = ONE
+        DRC = ZERO
+        CRATE = ONE
+        NSLP = NST
+!     If matrix is singular, take error return to force cut in
+!     step size.
+        IF (IERPJ/=0) GOTO 70
+20      ACOR(1:N) = ZERO
+!       This is a looping point for the corrector iteration.
+30      IF (MITER/=0) GOTO 40
+
+! In the case of functional iteration, update Y directly from
+! the result of the last function evaluation.
+
+        SAVF(1:N) = RL1*(H*SAVF(1:N)-YH(1:N,2))
+        Y(1:N) = SAVF(1:N) - ACOR(1:N)
+        DEL = DVNORM(N,Y,EWT)
+        Y(1:N) = YH(1:N,1) + SAVF(1:N)
+        CALL DCOPY_F90(N,SAVF,1,ACOR,1)
+        GOTO 50
+
+! In the case of the chord method, compute the corrector error,
+! and solve the linear system with that as right-hand side and
+! P as coefficient matrix. The correction is scaled by the factor
+! 2/(1+RC) to account for changes in h*rl1 since the last
+! DVJACS28 call.
+
+40      Y(1:N) = (RL1*H)*SAVF(1:N) - (RL1*YH(1:N,2)+ACOR(1:N))
+        CALL DVSOLS28(Y,SAVF,IERSL)
+        NNI = NNI + 1
+        IF (IERSL>0) GOTO 60
+        IF (METH==2 .AND. ABS(RC-ONE)>ZERO) THEN
+          CSCALE = TWO/(ONE+RC)
+          CALL DSCAL_F90(N,CSCALE,Y,1)
+        END IF
+        DEL = DVNORM(N,Y,EWT)
+        CALL DAXPY_F90(N,ONE,Y,1,ACOR,1)
+        Y(1:N) = YH(1:N,1) + ACOR(1:N)
+
+! Test for convergence. If M > 0, an estimate of the convergence
+! rate constant is stored in CRATE, and this is used in the test.
+
+50      IF (M/=0) CRATE = MAX(CRDOWN*CRATE,DEL/DELP)
+        DCON = DEL*MIN(ONE,CRATE)/TQ(4)
+        IF (DCON<=ONE) GOTO 80
+        M = M + 1
+        IF (M==MAXCOR) GOTO 60
+        IF (M>=2 .AND. DEL>RDIV*DELP) GOTO 60
+        DELP = DEL
+        CALL F(N,TN,Y,SAVF)
+        NFE = NFE + 1
+        IF (BOUNDS) THEN
+          DO I = 1, NDX
+            IF (ABS(YH(IDX(I),1)-LB(I))<=ZERO) SAVF(IDX(I)) = &
+              MAX(SAVF(I),ZERO)
+            IF (ABS(YH(IDX(I),1)-UB(I))<=ZERO) SAVF(IDX(I)) = &
+              MIN(SAVF(I),ZERO)
+          END DO
+        END IF
+        GOTO 30
+
+60      IF (MITER==0 .OR. JCUR==1) GOTO 70
+        ICF = 1
+        IPUP = MITER
+        GOTO 10
+
+70      CONTINUE
+        NFLAG = -1
+        ICF = 2
+        IPUP = MITER
+        RETURN
+
+!       Return for successful step.
+80      NFLAG = 0
+
+!       Enforce bounds.
+        IF (BOUNDS) THEN
+          CHANGED_ACOR = .FALSE.
+          IF (M==0) THEN
+            ACNRM = DEL
+          ELSE
+            ACNRM = DVNORM(N,ACOR,EWT)
+          END IF
+          IF (MITER/=0) THEN
+!           Since Y(:) = YH(:,1) + ACOR(:):
+            DO I = 1, NDX
+              IF (Y(IDX(I))<LB(I)) THEN
+                CHANGED_ACOR = .TRUE.
+                ACOR(IDX(I)) = LB(I) - YH(IDX(I),1)
+                SAVF(IDX(I)) = ACOR(IDX(I))
+              END IF
+              IF (Y(IDX(I))>UB(I)) THEN
+                CHANGED_ACOR = .TRUE.
+                ACOR(IDX(I)) = UB(I) - YH(IDX(I),1)
+                SAVF(IDX(I)) = ACOR(IDX(I))
+              END IF
+            END DO
+          ELSE
+!           Since Y(:) = YH(:,1) + SAVF(:) and
+!           since CALL DCOPY_F90(N, SAVF, 1, ACOR, 1) ...
+            DO I = 1, NDX
+              IF (Y(IDX(I))<LB(IDX(I))) THEN
+                CHANGED_ACOR = .TRUE.
+                ACOR(IDX(I)) = LB(I) - YH(IDX(I),1)
+              END IF
+              IF (Y(IDX(I))>UB(IDX(I))) THEN
+                CHANGED_ACOR = .TRUE.
+                ACOR(IDX(I)) = UB(I) - YH(IDX(I),1)
+              END IF
+            END DO
+          END IF
+          IF (CHANGED_ACOR) THEN
+            IF (M==0) THEN
+              ACNRMNEW = DEL
+            ELSE
+              ACNRMNEW = DVNORM(N,ACOR,EWT)
+            END IF
+            ACNRM = MAX(ACNRM,ACNRMNEW)
+          ELSE
+          END IF
+          NFLAG = 0
+          JCUR = 0
+          ICF = 0
+        ELSE
+!         No projections are required.
+          NFLAG = 0
+          JCUR = 0
+          ICF = 0
+          IF (M==0) ACNRM = DEL
+          IF (M>0) ACNRM = DVNORM(N,ACOR,EWT)
+        END IF
+        RETURN
+
+      END SUBROUTINE DVNLSS28
+!_______________________________________________________________________
+
+      SUBROUTINE DVSOLS28(X,TEM,IERSL)
+! ..
+! Manage the solution of the MA28 based sparse linear system arising
+! from a chord iteration.
+! ..
+! This routine solves the sparse linear system arising from a chord
+! iteration. If MITER is 6 or 7, it calls MA28CD to accomplish this.
+! Communication with DVSOLS28 uses the following variables:
+! X = The right-hand side vector on input, and the solution vector
+!     on output, of length N.
+! TEM (=SAVF(*))
+! IERSL = Output flag. IERSL = 0 if no trouble occurred.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (INOUT) :: IERSL
+! ..
+! .. Array Arguments ..
+        REAL (WP), INTENT (INOUT) :: TEM(*), X(*)
+! ..
+! .. Local Scalars ..
+        INTEGER :: I
+! ..
+! .. FIRST EXECUTABLE STATEMENT DVSOLS28
+! ..
+        IF (SCALE_MATRIX) THEN
+           DO I = 1, N
+              X(I) = X(I) * RSCALEX(I)
+           END DO
+        END IF
+        IERSL = 0
+        CALL MA28CD(N,PMAT,LICN_ALL,ICN,IKEEP28,X,TEM,1)
+        MA28CD_CALLS = MA28CD_CALLS + 1
+        IF (SCALE_MATRIX) THEN
+           DO I = 1, N
+              X(I) = X(I) * CSCALEX(I)
+           END DO
+        END IF
+        RETURN
+
+      END SUBROUTINE DVSOLS28
+!_______________________________________________________________________
+
+      SUBROUTINE DVJACS28(Y,YH,LDYH,EWT,FTEMP1,SAVF,F,JAC,IERPJ,N, &
+        ATOL,ITOL)
+! ..
+! Compute and process P = I - H*RL1*J, where J is an approximation to
+! the MA28 based sparse Jacobian.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (INOUT) :: IERPJ
+        INTEGER, INTENT (IN) :: LDYH, N, ITOL
+! ..
+! .. Array Arguments ..
+        REAL (WP), INTENT (INOUT) :: EWT(*), FTEMP1(*), SAVF(*), Y(*), YH(LDYH,*)
+        REAL (WP), INTENT (IN) :: ATOL(*)
+! ..
+! .. Subroutine Arguments ..
+        EXTERNAL F, JAC
+! ..
+! .. Local Scalars ..
+        REAL (WP) :: CON, FAC, HRL1, R, R0, SRUR
+        INTEGER :: I, IER, J, JER, JJ, JJ1, JJ2, K, K1, K2, MA28,       &
+          MA28SAVE, MB28SAVE, NG, NZ
+        CHARACTER (80) :: MSG
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, EXP, MAX, REAL
+! ..
+! .. FIRST EXECUTABLE STATEMENT DVJACS28
+! ..
+        IERPJ = 0
+
+!       Structure determination
+
+!       Calculate the sparsity structure if this is the first call to
+!       DVJACS28 with ISTATE = 1 or if it is a continuation call with
+!       ISTATE = 3.
+        IF (ISTATC==1 .OR. ISTATC==3) THEN
+          CALL DVPREPS(N,Y,YH,LDYH,DTEMP,EWT,F,JAC)
+          ISTATC = 0
+        END IF
+        JCUR = 0
+        HRL1 = H*RL1
+        CON = -HRL1
+
+!       If MA28 = 4 the saved copy of the Jacobian will be used
+!       to restore PMAT. If MA28 = 1,2,3 the Jacobian will be
+!       recomputed. If MA28 = 1,2 the JVECT and ICN pointer arrays
+!       will be defined and MA28AD will be called to decompose
+!       PMAT. If MA28 = 3 the JVECT pointer array will be defined
+!       and MA28BD will be called to decompose PMAT using the ICN
+!       pointer array returned in the last call to MA28AD.
+
+        MA28 = 4
+        IF (INEWJ==1 .OR. MB28==0) MA28 = 3
+        IF (NST>=NSLJ+MSBJ) MA28 = 3
+!       IF (ICF==1 .OR. ICF==2) MA28 = 3
+        IF (ICF==1 .AND. DRC<CCMXJ) MA28 = 3
+        IF (ICF==2) MA28 = 3
+        IF (NST>=NSLG+MSBG) MA28 = 2
+        IF (JSTART==0 .OR. JSTART==-1) MA28 = 1
+        JSTART = 1
+10      IF (MA28<=2) NSLG = NST
+        IF (MA28<=3) NSLJ = NST
+
+!       Analytical Sparse Jacobian
+
+!       If MITER = 6, call JAC to evaluate J analytically, multiply
+!       J by CON = -H*EL(1), and add the identity matrix to form P.
+        IF (MITER==6) THEN
+          IF (MA28==4) THEN
+!           Reuse the saved Jacobian.
+            NZ = IAN(N+1) - 1
+            PMAT(1:NZ) = CON*JMAT(1:NZ)
+            DO K = 1, NZ
+              IF (JAN(K)==JVECT(K)) PMAT(K) = PMAT(K) + ONE
+            END DO
+            GOTO 90
+          END IF
+          JCUR = 1
+          NJE = NJE + 1
+          IF (MA28==1 .OR. MA28==2) THEN
+            NZ = IAN(N+1) - 1
+            CALL JAC(N,TN,Y,IAN,JAN,NZ,PMAT)
+            NZ = IAN(N+1) - 1
+            IF (NZ>NZ_ALL) THEN
+              MSG = 'DVODE_F90-- NZ > NZ_ALL in DVJACS28.'
+              CALL XERRDV(MSG,1670,2,0,0,0,0,ZERO,ZERO)
+            END IF
+!           Define column pointers for MA28AD.
+            CALL SET_ICN(N,IAN,ICN)
+            CALL CHECK_DIAG(N,IAN,JAN,ICN)
+            PMAT(1:NZ) = CON*PMAT(1:NZ)
+            DO K = 1, NZ
+              IF (JAN(K)==ICN(K)) PMAT(K) = PMAT(K) + ONE
+            END DO
+            GOTO 80
+          ELSE
+!           MA28 = 3...
+            NZ = IAN(N+1) - 1
+            CALL JAC(N,TN,Y,IAN,JAN,NZ,PMAT)
+            NZ = IAN(N+1) - 1
+            IF (NZ>NZ_ALL) THEN
+              MSG = 'DVODE_F90-- NZ > NZ_ALL in DVJACS28.'
+              CALL XERRDV(MSG,1680,2,0,0,0,0,ZERO,ZERO)
+            END IF
+!           Define column pointers for MA28AD.
+            CALL SET_ICN(N,IAN,JVECT)
+            CALL CHECK_DIAG(N,IAN,JAN,JVECT)
+            IF (INEWJ/=1) JMAT(1:NZ) = PMAT(1:NZ)
+            PMAT(1:NZ) = CON*PMAT(1:NZ)
+            DO K = 1, NZ
+              IF (JAN(K)==JVECT(K)) PMAT(K) = PMAT(K) + ONE
+            END DO
+            GOTO 90
+          END IF
+        END IF
+
+!       Finite Difference Sparse Jacobian
+
+!       If MITER = 7, evaluate J numerically, multiply J by
+!       CON, and add the identity matrix to form P.
+        IF (MITER==7) THEN
+          IF (MA28==4) THEN
+!           Reuse the saved constant Jacobian.
+            NZ = IAN(N+1) - 1
+            PMAT(1:NZ) = CON*JMAT(1:NZ)
+            DO J = 1, N
+              K1 = IAN(J)
+              K2 = IAN(J+1) - 1
+              DO K = K1, K2
+                I = JAN(K)
+                IF (I==J) PMAT(K) = PMAT(K) + ONE
+              END DO
+            END DO
+            GOTO 90
+          ELSE
+            NZ = IAN(N+1) - 1
+            JCUR = 1
+            IF (.NOT.(J_IS_CONSTANT.AND.J_HAS_BEEN_COMPUTED)) THEN
+               IF (USE_JACSP) THEN
+!                 Approximate the Jacobian using Doug Salane's JACSP.
+!                 The JPNTRDS and INDROWDS pointer arrays were defined
+!                 in DVPREPS (and altered in DSM).
+                  IOPTDS(1) = 2
+                  IOPTDS(2) = 0
+                  IOPTDS(3) = 1
+                  IOPTDS(5) = 0
+!                 INFORDS(4) was initialized in DVPREPS (and altered in
+!                 the first call to JACSP).
+                  LWKDS  = 3 * N
+                  LIWKDS = 50 + N
+                  NRFJACDS = NZ
+                  NCFJACDS = 1
+
+!                 Set flag to indicate how the YSCALE vector will be
+!                 set for JACSP.
+                  LIKE_ORIGINAL_VODE = .FALSE.
+!                 Calculate the YSCALEDS vector for JACSPDV.
+                  IF (LIKE_ORIGINAL_VODE) THEN
+                     FAC = DVNORM(N,SAVF,EWT)
+!                    JACSPDB multiplies YSCALEDS(*) BY UROUND**0.825:
+!                    R0 = THOU*ABS(H)*UROUND*REAL(N)*FAC
+                     R0 = THOU*ABS(H)*REAL(N)*FAC
+                     IF (ABS(R0)<=ZERO) R0 = ONE
+!                    SRUR = WM1
+                     DO J = 1, N
+!                       JACSPDB multiplies YSCALEDS(*) BY UROUND**0.825:
+!                       R = MAX(ABS(Y(J)),R0/EWT(J))
+                        R = MAX(ABS(Y(J))/U325,(R0/EWT(J))*U125)
+                        YSCALEDS(J) = R
+                     END DO
+                  ELSE
+                     IF (ITOL == 1 .OR. ITOL == 3) THEN
+                        DO J = 1, N
+                           YSCALEDS(J) = MAX(ABS(Y(J)),ATOL(1),UROUND)
+                        END DO
+                     ELSE
+                        DO J = 1, N
+                          YSCALEDS(J) = MAX(ABS(Y(J)),ATOL(J),UROUND)
+                        END DO
+                     END IF
+                  END IF
+
+                  CALL JACSPDB(F,N,TN,Y,SAVF,PMAT(1),NRFJACDS, &
+                    YSCALEDS,FACDS,IOPTDS,WKDS,LWKDS,IWKDS,LIWKDS, &
+                    MAXGRPDS,NGRPDS,JPNTRDS,INDROWDS)
+                  NFE = NFE + IWKDS(7)
+                  NJE = NJE + 1
+
+                  DO NG = 1, MAXGRPDS
+                    JJ1 = IGP(NG)
+                    JJ2 = IGP(NG+1) - 1
+                    DO JJ = JJ1, JJ2
+                      J = JGP(JJ)
+                      K1 = IAN(J)
+                      K2 = IAN(J+1) - 1
+                      DO K = K1, K2
+                        I = JAN(K)
+                        GOTO (17,17,18) MA28
+!                       Define the row pointers for MA28AD.
+17                      JVECT(K) = I
+!                       Define the column pointers for MA28AD.
+                        ICN(K) = J
+                        GOTO 19
+!                       Define the column pointers for MA28AD.
+18                      JVECT(K) = J
+19                      CONTINUE
+                        IF (INEWJ==0) JMAT(K) = PMAT(K)
+                        PMAT(K) = CON*PMAT(K)
+                        IF (I==J) PMAT(K) = PMAT(K) + ONE
+                      END DO
+                    END DO
+                  END DO
+                  NFE = NFE + MAXGRPDS
+               ELSE
+                  FAC = DVNORM(N,SAVF,EWT)
+                  R0 = THOU*ABS(H)*UROUND*REAL(N)*FAC
+                  IF (ABS(R0)<=ZERO) R0 = ONE
+                  SRUR = WM1
+                  DO NG = 1, NGP
+                    JJ1 = IGP(NG)
+                    JJ2 = IGP(NG+1) - 1
+                    DO JJ = JJ1, JJ2
+                      J = JGP(JJ)
+                      R = MAX(SRUR*ABS(Y(J)),R0/EWT(J))
+                      Y(J) = Y(J) + R
+                    END DO
+                    CALL F(N,TN,Y,FTEMP1)
+                    NFE = NFE + 1
+                    DO JJ = JJ1, JJ2
+                      J = JGP(JJ)
+                      Y(J) = YH(J,1)
+                      R = MAX(SRUR*ABS(Y(J)),R0/EWT(J))
+                      FAC = ONE / R
+                      K1 = IAN(J)
+                      K2 = IAN(J+1) - 1
+                      DO K = K1, K2
+                        I = JAN(K)
+                        GOTO (20,20,30) MA28
+!                       Define row pointers for MA28AD.
+20                      JVECT(K) = I
+!                       Define column pointers for MA28AD.
+                        ICN(K) = J
+                        GOTO 40
+!                       Define column pointers for MA28AD.
+30                      JVECT(K) = J
+40                      PMAT(K) = (FTEMP1(I)-SAVF(I)) * FAC
+                        IF (INEWJ==0) JMAT(K) = PMAT(K)
+                        PMAT(K) = CON*PMAT(K)
+                        IF (I==J) PMAT(K) = PMAT(K) + ONE
+                      END DO
+                    END DO
+                  END DO
+                  NFE = NFE + NGP
+                  NJE = NJE + 1
+               END IF
+               IF (J_IS_CONSTANT) J_HAS_BEEN_COMPUTED = .TRUE.
+            ELSE
+!              Do not recompute the constant Jacobian.
+!              Reuse the saved Jacobian.
+               NZ = IAN(N+1) - 1
+               PMAT(1:NZ) = CON*JMAT(1:NZ)
+               DO J = 1, N
+                 K1 = IAN(J)
+                 K2 = IAN(J+1) - 1
+                 DO K = K1, K2
+                   I = JAN(K)
+                   IF (I==J) PMAT(K) = PMAT(K) + ONE
+                   GOTO (50,50,60) MA28
+!                  Define row pointers for MA28AD.
+50                 JVECT(K) = I
+!                  Define column pointers for MA28AD.
+                   ICN(K) = J
+                   GOTO 70
+!                  Define column pointers for MA28AD.
+60                 JVECT(K) = J
+70                 CONTINUE
+                 END DO
+               END DO
+            END IF
+            GOTO (80,80,90) MA28
+          END IF
+        END IF
+
+!       MA28AD does an LU factorization based on a pivotal strategy
+!       designed to compromise between maintaining sparsity and
+!       controlling loss of accuracy due to roundoff error. Unless
+!       magnitudes of Jacobian elements change so as to invalidate
+!       choice of pivots, MA28AD need only be called at beginning
+!       of the integration.
+
+80      CONTINUE
+        IF (SCALE_MATRIX) THEN
+!          MA19AD computes scaling factors for the iteration matrix.
+           CALL MC19AD(N,NZ,PMAT,JAN,ICN,RSCALEX,CSCALEX,WSCALEX)
+           MC19AD_CALLS = MC19AD_CALLS + 1
+           DO I =1, N
+              RSCALEX(I) = EXP(RSCALEX(I))
+              CSCALEX(I) = EXP(CSCALEX(I))
+           END DO
+           DO K = 1, NZ
+              I = JAN(K)
+              J = ICN(K)
+              PMAT(K) = PMAT(K) * RSCALEX(I) * CSCALEX(J)
+           END DO
+        END IF
+        OK_TO_CALL_MA28 = .TRUE.
+        CALL MA28AD(N,NZ,PMAT,LICN_ALL,JAN,LIRN_ALL,ICN,U_PIVOT, &
+          IKEEP28,IW28,FTEMP1,IER)
+        OK_TO_CALL_MA28 = .FALSE.
+        MA28AD_CALLS = MA28AD_CALLS + 1
+        MA28SAVE = MA28
+        MB28SAVE = MB28
+        MB28 = 0
+        NLU = NLU + 1
+        MAX_MINIRN = MAX(MAX_MINIRN,MINIRN)
+        MAX_MINICN = MAX(MAX_MINICN,MINICN)
+!       IER = -1: Numerically singular Jacobian
+!       IER = -2: Structurally singular Jacobian
+        IF (IER==-1 .OR. IER==-2) IERPJ = 1
+        IF (IER==-3) THEN
+!         LIRN_ALL is not large enough.
+          IF (LP /= 0) THEN
+             MSG = 'LIRN_ALL (=I1) is not large enough.'
+             CALL XERRDV(MSG,1690,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'Allocating more space for another try.'
+             CALL XERRDV(MSG,1690,1,1,LIRN_ALL,0,0,ZERO,ZERO)
+          END IF
+!         Allocate more space for JAN and JVECT and try again.
+          LIRN_ALL = LIRN_ALL + MAX(MAX(1000,ELBOW_ROOM*NZ_SWAG),10*N)
+          LIRN_ALL = MAX(LIRN_ALL,(11*MINIRN)/10)
+          IF (LIRN_ALL>MAX_ARRAY_SIZE) THEN
+            MSG = 'Maximum array size exceeded. Stopping.'
+            CALL XERRDV(MSG,1700,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          DEALLOCATE (JAN,STAT=JER)
+          CALL CHECK_STAT(JER,820)
+          ALLOCATE (JAN(LIRN_ALL),STAT=JER)
+          CALL CHECK_STAT(JER,830)
+          IF (MITER==7) THEN
+            JAN(1:NZ) = JVECT(1:NZ)
+          END IF
+          DEALLOCATE (JVECT,STAT=JER)
+          CALL CHECK_STAT(JER,840)
+          ALLOCATE (JVECT(LIRN_ALL),STAT=JER)
+          CALL CHECK_STAT(JER,850)
+          IF (MITER==7) THEN
+            JVECT(1:NZ) = JAN(1:NZ)
+          END IF
+          MA28 = MA28SAVE
+          MB28 = MB28SAVE
+          NLU = NLU - 1
+!         Since PMAT has changed, it must be restored:
+          IF (J_IS_CONSTANT) J_HAS_BEEN_COMPUTED = .FALSE.
+          GOTO 10
+        END IF
+        IF (IER==-4 .OR. IER==-5 .OR. IER==-6) THEN
+!         LICN_ALL is not large enough.
+          IF (LP /= 0) THEN
+             MSG = 'LICN_ALL (=I1) is not large enough.'
+             CALL XERRDV(MSG,1710,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'Allocating more space for another try.'
+             CALL XERRDV(MSG,1710,1,1,LICN_ALL,0,0,ZERO,ZERO)
+          END IF
+!         Allocate more space for JAN and JVECT and try again.
+          LICN_ALL = LICN_ALL + MAX(MAX(1000,ELBOW_ROOM*NZ_SWAG),10*N)
+          LICN_ALL = MAX(LICN_ALL,(11*MINICN)/10)
+          IF (LICN_ALL>MAX_ARRAY_SIZE) THEN
+            MSG = 'Maximum array size exceeded. Stopping.'
+            CALL XERRDV(MSG,1720,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          DEALLOCATE (PMAT,ICN,STAT=JER)
+          CALL CHECK_STAT(JER,860)
+          ALLOCATE (PMAT(LICN_ALL),ICN(LICN_ALL),STAT=JER)
+          PMAT(1:LICN_ALL) = ZERO
+          CALL CHECK_STAT(JER,870)
+          IF (MITER==7) THEN
+            JAN(1:NZ) = JVECT(1:NZ)
+          END IF
+          MA28 = MA28SAVE
+          MB28 = MB28SAVE
+          NLU = NLU - 1
+          IF (J_IS_CONSTANT) J_HAS_BEEN_COMPUTED = .FALSE.
+          GOTO 10
+        END IF
+        IF (MITER/=7) RETURN
+        JAN(1:NZ) = JVECT(1:NZ)
+        RETURN
+
+!       MA28BD uses the pivot sequence generated by an earlier call
+!       to MA28AD to factor a new matrix of the same structure.
+
+90      CONTINUE
+
+        IF (SCALE_MATRIX) THEN
+           DO K =1, NZ
+              I = JAN(K)
+              J = JVECT(K)
+              PMAT(K) = PMAT(K) * RSCALEX(I) * CSCALEX(J)
+           END DO
+        END IF
+        CALL MA28BD(N,NZ,PMAT,LICN_ALL,JAN,JVECT,ICN,IKEEP28,IW28, &
+          FTEMP1,IER)
+        MA28BD_CALLS = MA28BD_CALLS + 1
+        MB28 = 1
+        NLU = NLU + 1
+!       IER = -2 : The matrix is numerically singular. The MA28AD
+!                  pivot sequence leads to a zero pivot, that is,
+!                  to one for which the ratio of it to the smallest
+!                  element in the row is less than EPS.
+!       IER = -13: The matrix is structurally singular.
+
+        IF (REDO_PIVOT_SEQUENCE) THEN
+!          Force MA28AD to calculate a new pivot sequence.
+           IF (IER/=-13 .AND. IER/=-2 .AND. IER<=0) RETURN
+           IF (IER==-2) MA28 = 1
+           IF (IER==-13) MA28 = 1
+           IF (J_IS_CONSTANT) J_HAS_BEEN_COMPUTED = .FALSE.
+        ELSE
+           IF (IER==-2) IERPJ = 1
+           IF (IER/=-13 .AND. IER<=0) RETURN
+           IF (IER==-13) MA28 = 1
+           IF (J_IS_CONSTANT) J_HAS_BEEN_COMPUTED = .FALSE.
+        END IF
+        IF (IER>0) MA28 = 2
+        IF (IER==-13 .AND. MITER==7 .AND. MOSS==2) THEN
+!          Recompute the sparsity structure.
+           CALL DVRENEW(N,Y,SAVF,EWT,F)
+           IF (J_IS_CONSTANT) J_HAS_BEEN_COMPUTED = .FALSE.
+        END IF
+        GOTO 10
+
+      END SUBROUTINE DVJACS28
+! End of Jacobian related routines that use MA28
+!_______________________________________________________________________
+
+      SUBROUTINE SET_ICN(N,IA,ICN)
+! ..
+! Define the column locations of nonzero elements for a sparse
+! matrix.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: N
+! ..
+! .. Array Arguments ..
+        INTEGER, INTENT (IN) :: IA(*)
+        INTEGER, INTENT (INOUT) :: ICN(*)
+! ..
+! .. Local Scalars ..
+        INTEGER :: J, KMAX, KMIN
+! ..
+! .. FIRST EXECUTABLE STATEMENT SET_ICN
+! ..
+        KMIN = 1
+        DO J = 1, N
+          KMAX = IA(J+1) - 1
+          ICN(KMIN:KMAX) = J
+          KMIN = KMAX + 1
+        END DO
+
+      END SUBROUTINE SET_ICN
+!_______________________________________________________________________
+
+      SUBROUTINE CHECK_DIAG(N,IA,JA,ICN)
+! ..
+! Check that the diagonal is included in the sparse matrix
+! description arrays.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: N
+! ..
+! .. Array Arguments ..
+        INTEGER, INTENT (IN) :: IA(*), ICN(*), JA(*)
+! ..
+! .. Local Scalars ..
+        INTEGER :: J, K, KMAX, KMIN
+        CHARACTER (80) :: MSG
+! ..
+! .. FIRST EXECUTABLE STATEMENT CHECK_DIAG
+! ..
+        KMIN = 1
+        DO J = 1, N
+          KMAX = IA(J+1) - 1
+          DO K = KMIN, KMAX
+            IF (JA(K)==ICN(K)) GOTO 10
+          END DO
+          MSG = 'In CHECK_DIAG, the diagonal is not present.'
+          CALL XERRDV(MSG,1730,2,0,0,0,0,ZERO,ZERO)
+10        CONTINUE
+          KMIN = KMAX + 1
+        END DO
+
+      END SUBROUTINE CHECK_DIAG
+!_______________________________________________________________________
+
+      SUBROUTINE DVCHECK(JOB,G,NEQ,Y,YH,NYH,G0,G1,GX,IRT)
+! ..
+! Check for the presence of a root in the vicinity of the current T,
+! in a manner depending on the input flag JOB, and call DVROOTS to
+! locate the root as precisely as possible.
+! ..
+! This subroutine is essentially DRCHEK from LSODAR.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (INOUT) :: IRT
+        INTEGER, INTENT (IN) :: JOB, NEQ, NYH
+! ..
+! .. Array Arguments ..
+        REAL (WP), INTENT (INOUT) :: G0(*), G1(*), GX(*), Y(*), YH(NYH,*)
+! ..
+! .. Subroutine Arguments ..
+        EXTERNAL G
+! ..
+! .. Local Scalars ..
+        REAL (WP) :: HMING, T1, TEMP1, TEMP2, X
+        INTEGER :: I, IFLAG, JFLAG
+        LOGICAL :: ZROOT
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, MAX, MIN, SIGN
+! ..
+! In addition to variables described previously, DVCHECK
+! uses the following for communication:
+! JOB    = integer flag indicating type of call:
+!          JOB = 1 means the problem is being initialized, and DVCHECK
+!                  is to look for a root at or very near the initial T.
+!          JOB = 2 means a continuation call to the solver was just
+!                  made, and DVCHECK is to check for a root in the
+!                  relevant part of the step last taken.
+!          JOB = 3 means a successful step was just taken, and DVCHECK
+!                  is to look for a root in the interval of the step.
+! G0     = array of length NG, containing the value of g at T = T0ST.
+!          G0 is input for JOB >= 2, and output in all cases.
+! G1,GX  = arrays of length NG for work space.
+! IRT    = completion flag:
+!          IRT = 0  means no root was found.
+!          IRT = -1 means JOB = 1 and a root was found too near to T.
+!          IRT = 1  means a legitimate root was found (JOB = 2 or 3).
+!                   On return, T0ST is the root location, and Y is the
+!                   corresponding solution vector.
+! T0ST   = value of T at one endpoint of interval of interest. Only
+!          roots beyond T0ST in the direction of integration are sought.
+!          T0ST is input if JOB >= 2, and output in all cases.
+!          T0ST is updated by DVCHECK, whether a root is found or not.
+! TLAST  = last value of T returned by the solver (input only).
+! TOUTC  = copy of TOUT(input only).
+! IRFND  = input flag showing whether the last step taken had a root.
+!          IRFND = 1 if it did, = 0 if not.
+! ITASKC = copy of ITASK (input only).
+! NGC    = copy of NG (input only).
+! ..
+! .. FIRST EXECUTABLE STATEMENT DVCHECK
+! ..
+        IRT = 0
+        JROOT(1:NGC) = 0
+        HMING = (ABS(TN)+ABS(H))*UROUND*HUN
+
+        GOTO (10,30,80) JOB
+
+!       Evaluate g at initial T, and check for zero values.
+10      CONTINUE
+        T0ST = TN
+        CALL G(NEQ,T0ST,Y,NGC,G0)
+        NGE = 1
+        ZROOT = .FALSE.
+        DO I = 1, NGC
+          IF (ABS(G0(I))<=ZERO) ZROOT = .TRUE.
+        END DO
+        IF (.NOT.ZROOT) GOTO 20
+!       g has a zero at T. Look at g at T + (small increment).
+!       TEMP1 = SIGN(HMING, H)
+!       T0ST = T0ST + TEMP1
+!       TEMP2 = TEMP1 / H
+        TEMP2 = MAX(HMING/ABS(H),TENTH)
+        TEMP1 = TEMP2*H
+        T0ST = T0ST + TEMP1
+        Y(1:N) = Y(1:N) + TEMP2*YH(1:N,2)
+        CALL G(NEQ,T0ST,Y,NGC,G0)
+        NGE = NGE + 1
+        ZROOT = .FALSE.
+        DO I = 1, NGC
+          IF (ABS(G0(I))<=ZERO) ZROOT = .TRUE.
+        END DO
+        IF (.NOT.ZROOT) GOTO 20
+!       g has a zero at T and also close to T. Take error return.
+        IRT = -1
+        RETURN
+
+20      CONTINUE
+        RETURN
+
+30      CONTINUE
+        IF (IRFND==0) GOTO 70
+!       If a root was found on the previous step, evaluate G0 = g(T0ST).
+        CALL DVINDY_CORE(T0ST,0,YH,NYH,Y,IFLAG)
+        IF (BOUNDS) THEN
+          DO I = 1, NDX
+            Y(IDX(I)) = MAX(Y(IDX(I)),LB(I))
+            Y(IDX(I)) = MIN(Y(IDX(I)),UB(I))
+          END DO
+        END IF
+        CALL G(NEQ,T0ST,Y,NGC,G0)
+        NGE = NGE + 1
+        ZROOT = .FALSE.
+        DO I = 1, NGC
+          IF (ABS(G0(I))<=ZERO) ZROOT = .TRUE.
+        END DO
+        IF (.NOT.ZROOT) GOTO 70
+!       g has a zero at T0ST. Look at g at T + (small increment).
+        TEMP1 = SIGN(HMING,H)
+        T0ST = T0ST + TEMP1
+        IF ((T0ST-TN)*H<ZERO) GOTO 40
+        TEMP2 = TEMP1/H
+        Y(1:N) = Y(1:N) + TEMP2*YH(1:N,2)
+        GOTO 50
+40      CALL DVINDY_CORE(T0ST,0,YH,NYH,Y,IFLAG)
+        IF (BOUNDS) THEN
+          DO I = 1, NDX
+            Y(IDX(I)) = MAX(Y(IDX(I)),LB(I))
+            Y(IDX(I)) = MIN(Y(IDX(I)),UB(I))
+          END DO
+        END IF
+50      CALL G(NEQ,T0ST,Y,NGC,G0)
+        NGE = NGE + 1
+        ZROOT = .FALSE.
+        DO 60 I = 1, NGC
+          IF (ABS(G0(I))>ZERO) GOTO 60
+          JROOT(I) = 1
+          ZROOT = .TRUE.
+60      END DO
+        IF (.NOT.ZROOT) GOTO 70
+!       g has a zero at T0ST and also close to T0ST. Return root.
+        IRT = 1
+        RETURN
+!       G0 has no zero components. Proceed to check relevant interval.
+70      IF (ABS(TN-TLAST)<=ZERO) GOTO 130
+
+80      CONTINUE
+!       Set T1 to TN or TOUTC, whichever comes first, and get g at T1.
+        IF (ITASKC==2 .OR. ITASKC==3 .OR. ITASKC==5) GOTO 90
+        IF ((TOUTC-TN)*H>=ZERO) GOTO 90
+        T1 = TOUTC
+        IF ((T1-T0ST)*H<=ZERO) GOTO 130
+        CALL DVINDY_CORE(T1,0,YH,NYH,Y,IFLAG)
+        IF (BOUNDS) THEN
+          DO I = 1, NDX
+            Y(IDX(I)) = MAX(Y(IDX(I)),LB(I))
+            Y(IDX(I)) = MIN(Y(IDX(I)),UB(I))
+          END DO
+        END IF
+        GOTO 100
+90      T1 = TN
+        DO I = 1, N
+          Y(I) = YH(I,1)
+        END DO
+100     CALL G(NEQ,T1,Y,NGC,G1)
+        NGE = NGE + 1
+!       Call DVROOTS to search for root in interval from T0ST to T1.
+        JFLAG = 0
+110     CONTINUE
+        CALL DVROOTS(NGC,HMING,JFLAG,T0ST,T1,G0,G1,GX,X)
+        IF (JFLAG>1) GOTO 120
+        CALL DVINDY_CORE(X,0,YH,NYH,Y,IFLAG)
+        IF (BOUNDS) THEN
+          DO I = 1, NDX
+            Y(IDX(I)) = MAX(Y(IDX(I)),LB(I))
+            Y(IDX(I)) = MIN(Y(IDX(I)),UB(I))
+          END DO
+        END IF
+        CALL G(NEQ,X,Y,NGC,GX)
+        NGE = NGE + 1
+        GOTO 110
+120     T0ST = X
+        CALL DCOPY_F90(NGC,GX,1,G0,1)
+        IF (JFLAG==4) GOTO 130
+!       Found a root. Interpolate to X and return.
+        CALL DVINDY_CORE(X,0,YH,NYH,Y,IFLAG)
+        IF (BOUNDS) THEN
+          DO I = 1, NDX
+            Y(IDX(I)) = MAX(Y(IDX(I)),LB(I))
+            Y(IDX(I)) = MIN(Y(IDX(I)),UB(I))
+          END DO
+        END IF
+        IRT = 1
+        RETURN
+130     CONTINUE
+        RETURN
+
+      END SUBROUTINE DVCHECK
+!_______________________________________________________________________
+
+      SUBROUTINE DVROOTS(NG,HMIN,JFLAG,X0,X1,G0,G1,GX,X)
+! ..
+! Perform root finding for DVODE_F90.
+! ..
+! This is essentially subroutine DROOTS from LSODAR.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        REAL (WP), INTENT (IN) :: HMIN
+        REAL (WP), INTENT (INOUT) :: X, X0, X1
+        INTEGER, INTENT (INOUT) :: JFLAG
+        INTEGER, INTENT (IN) :: NG
+! ..
+! .. Array Arguments ..
+        REAL (WP), INTENT (INOUT) :: G0(NG), G1(NG), GX(NG)
+! ..
+! .. Local Scalars ..
+        REAL (WP) :: T2, TMAX
+        INTEGER :: I, IMXOLD, NXLAST
+        LOGICAL :: SGNCHG, XROOT, ZROOT
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, SIGN
+! ..
+! This subroutine finds the leftmost root of a set of arbitrary
+! functions gi(x) (i = 1,...,NG) in an interval (X0,X1). Only roots
+! of odd multiplicity (i.e. changes of sign of the gi) are found.
+! Here the sign of X1 - X0 is arbitrary, but is constant for a given
+! problem, and 'leftmost' means nearest to X0.The values of the
+! vector-valued function g(x) = (gi, i=1...NG) are communicated
+! through the call sequence of DVROOTS. The method used is the
+! Illinois algorithm.
+
+! Reference:
+! Kathie L. Hiebert and Lawrence F. Shampine, Implicitly Defined
+! Output Points for Solutions of ODEs, Sandia Report SAND/80-0180,
+! February 1980.
+
+! Description of parameters.
+
+! NG     = number of functions gi, or the number of components of
+!          the vector valued function g(x). Input only.
+
+! HMIN   = resolution parameter in X. Input only. When a root is
+!          found, it is located only to within an error of HMIN in X.
+!          Typically, HMIN should be set to something on the order of
+!               100 * UROUND * MAX(ABS(X0),ABS(X1)),
+!          where UROUND is the unit roundoff of the machine.
+
+! JFLAG  = integer flag for input and output communication.
+
+!          On input, set JFLAG = 0 on the first call for the problem,
+!          and leave it unchanged until the problem is completed.
+!          (The problem is completed when JFLAG >= 2 on return.)
+
+!          On output, JFLAG has the following values and meanings:
+!          JFLAG = 1 means DVROOTS needs a value of g(x). Set GX = g(X)
+!                    and call DVROOTS again.
+!          JFLAG = 2 means a root has been found. The root is
+!                    at X, and GX contains g(X). (Actually, X is the
+!                    rightmost approximation to the root on an interval
+!                    (X0,X1) of size HMIN or less.)
+!          JFLAG = 3 means X = X1 is a root, with one or more of the gi
+!                    being zero at X1 and no sign changes in (X0,X1).
+!                    GX contains g(X) on output.
+!          JFLAG = 4 means no roots (of odd multiplicity) were
+!                    found in (X0,X1) (no sign changes).
+
+! X0,X1  = endpoints of the interval where roots are sought.
+!          X1 and X0 are input when JFLAG = 0 (first call), and
+!          must be left unchanged between calls until the problem is
+!          completed. X0 and X1 must be distinct, but X1 - X0 may be
+!          of either sign. However, the notion of 'left' and 'right'
+!          will be used to mean nearer to X0 or X1, respectively.
+!          When JFLAG >= 2 on return, X0 and X1 are output, and
+!          are the endpoints of the relevant interval.
+
+! G0,G1  = arrays of length NG containing the vectors g(X0) and g(X1),
+!          respectively. When JFLAG = 0, G0 and G1 are input and
+!          none of the G0(i) should be zero.
+!          When JFLAG >= 2 on return, G0 and G1 are output.
+
+! GX     = array of length NG containing g(X). GX is input
+!          when JFLAG = 1, and output when JFLAG >= 2.
+
+! X      = independent variable value. Output only.
+!          When JFLAG = 1 on output, X is the point at which g(x)
+!          is to be evaluated and loaded into GX.
+!          When JFLAG = 2 or 3, X is the root.
+!          When JFLAG = 4, X is the right endpoint of the interval, X1.
+
+! JROOT  = integer array of length NG. Output only.
+!          When JFLAG = 2 or 3, JROOT indicates which components
+!          of g(x) have a root at X. JROOT(i) is 1 if the i-th
+!          component has a root, and JROOT(i) = 0 otherwise.
+! ..
+! .. FIRST EXECUTABLE STATEMENT DVROOTS
+! ..
+        IF (JFLAG==1) GOTO 90
+!       JFLAG /= 1. Check for change in sign of g or zero at X1.
+        IMAX = 0
+        TMAX = ZERO
+        ZROOT = .FALSE.
+        DO 20 I = 1, NG
+          IF (ABS(G1(I))>ZERO) GOTO 10
+          ZROOT = .TRUE.
+          GOTO 20
+!         At this point, G0(i) has been checked and cannot be zero.
+10        IF (ABS(SIGN(ONE,G0(I))-SIGN(ONE,G1(I)))<=ZERO) GOTO 20
+          T2 = ABS(G1(I)/(G1(I)-G0(I)))
+          IF (T2<=TMAX) GOTO 20
+          TMAX = T2
+          IMAX = I
+20      END DO
+        IF (IMAX>0) GOTO 30
+        SGNCHG = .FALSE.
+        GOTO 40
+30      SGNCHG = .TRUE.
+40      IF (.NOT.SGNCHG) GOTO 200
+!       There is a sign change. Find the first root in the interval.
+        XROOT = .FALSE.
+        NXLAST = 0
+        LAST = 1
+
+!       Repeat until the first root in the interval is found. Loop point.
+50      CONTINUE
+        IF (XROOT) GOTO 170
+        IF (NXLAST==LAST) GOTO 60
+        ALPHA = ONE
+        GOTO 80
+60      IF (LAST==0) GOTO 70
+        ALPHA = HALF*ALPHA
+        GOTO 80
+70      ALPHA = TWO*ALPHA
+80      X2 = X1 - (X1-X0)*G1(IMAX)/(G1(IMAX)-ALPHA*G0(IMAX))
+!       IF ((ABS(X2 - X0) < HMIN) .AND. (ABS(X1 - X0) > TEN * &
+!       HMIN)) X2 = X0 + PT1 * (X1 - X0)
+
+!       If X2 is too close to X0 or X1, adjust it inward,
+!       by a fractional distance that is between 0.1 and 0.5.
+        IF (ABS(X2-X0)<HALF*HMIN) THEN
+          FRACINT = ABS(X1-X0)/HMIN
+          FRACSUB = TENTH
+          IF (FRACINT<=FIVE) FRACSUB = HALF/FRACINT
+          X2 = X0 + FRACSUB*(X1-X0)
+        END IF
+        IF (ABS(X1-X2)<HALF*HMIN) THEN
+          FRACINT = ABS(X1-X0)/HMIN
+          FRACSUB = TENTH
+          IF (FRACINT<=FIVE) FRACSUB = HALF/FRACINT
+          X2 = X1 - FRACSUB*(X1-X0)
+        END IF
+
+        JFLAG = 1
+        X = X2
+!       Return to the calling routine to get a value of GX = g(X).
+        RETURN
+!       Check to see in which interval g changes sign.
+90      IMXOLD = IMAX
+        IMAX = 0
+        TMAX = ZERO
+        ZROOT = .FALSE.
+        DO 110 I = 1, NG
+          IF (ABS(GX(I))>ZERO) GOTO 100
+          ZROOT = .TRUE.
+          GOTO 110
+!         Neither G0(i) nor GX(i) can be zero at this point.
+100       IF (ABS(SIGN(ONE,G0(I))-SIGN(ONE,GX(I)))<=ZERO) GOTO 110
+          T2 = ABS(GX(I)/(GX(I)-G0(I)))
+          IF (T2<=TMAX) GOTO 110
+          TMAX = T2
+          IMAX = I
+110     END DO
+        IF (IMAX>0) GOTO 120
+        SGNCHG = .FALSE.
+        IMAX = IMXOLD
+        GOTO 130
+120     SGNCHG = .TRUE.
+130     NXLAST = LAST
+        IF (.NOT.SGNCHG) GOTO 140
+!       Sign change between X0 and X2, so replace X1 with X2.
+        X1 = X2
+        CALL DCOPY_F90(NG,GX,1,G1,1)
+        LAST = 1
+        XROOT = .FALSE.
+        GOTO 160
+140     IF (.NOT.ZROOT) GOTO 150
+!       Zero value at X2 and no sign change in (X0,X2), so X2 is a root.
+        X1 = X2
+        CALL DCOPY_F90(NG,GX,1,G1,1)
+        XROOT = .TRUE.
+        GOTO 160
+!       No sign change between X0 and X2. Replace X0 with X2.
+150     CONTINUE
+        CALL DCOPY_F90(NG,GX,1,G0,1)
+        X0 = X2
+        LAST = 0
+        XROOT = .FALSE.
+160     IF (ABS(X1-X0)<=HMIN) XROOT = .TRUE.
+        GOTO 50
+
+!       Return with X1 as the root. Set JROOT. Set X = X1 and GX = G1.
+170     JFLAG = 2
+        X = X1
+        CALL DCOPY_F90(NG,G1,1,GX,1)
+        DO 190 I = 1, NG
+          JROOT(I) = 0
+          IF (ABS(G1(I))>ZERO) GOTO 180
+          JROOT(I) = 1
+          GOTO 190
+180       IF (ABS(SIGN(ONE,G0(I))-SIGN(ONE,G1(I)))>ZERO) JROOT(I) = 1
+190     END DO
+        RETURN
+
+!       No sign change in the interval. Check for zero at right endpoint.
+200     IF (.NOT.ZROOT) GOTO 210
+
+!       Zero value at X1 and no sign change in (X0,X1). Return JFLAG = 3.
+        X = X1
+        CALL DCOPY_F90(NG,G1,1,GX,1)
+        DO I = 1, NG
+          JROOT(I) = 0
+          IF (ABS(G1(I))<=ZERO) JROOT(I) = 1
+        END DO
+        JFLAG = 3
+        RETURN
+
+!       No sign changes in this interval. Set X = X1, return JFLAG = 4.
+210     CALL DCOPY_F90(NG,G1,1,GX,1)
+        X = X1
+        JFLAG = 4
+        RETURN
+
+      END SUBROUTINE DVROOTS
+!_______________________________________________________________________
+
+      SUBROUTINE DVNRDP(Y,IYDIM,NEQN,NQ)
+! ..
+! Retract the Nordsieck array (undo prediction).
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER :: IYDIM, NEQN, NQ
+! ..
+! .. Array Arguments ..
+        REAL (WP) :: Y(*)
+! ..
+! .. Local Scalars ..
+        INTEGER :: I, J, J1, J2
+! ..
+! .. FIRST EXECUTABLE STATEMENT DVNRDP
+! ..
+        DO J1 = 1, NQ
+          DO J2 = J1, NQ
+            J = (NQ+J1) - J2
+            DO I = 1, NEQN
+! Original:
+!             Y(I,J) = Y(I,J) + Y(I,J+1)
+              Y(I+(J-1)*IYDIM) = Y(I+(J-1)*IYDIM) + Y(I+J*IYDIM)
+            END DO
+          END DO
+        END DO
+        RETURN
+
+      END SUBROUTINE DVNRDP
+!_______________________________________________________________________
+
+      SUBROUTINE DVNRDN(Y,IYDIM,NEQN,NQ)
+! ..
+! Apply the Nordsieck array (predict).
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER :: IYDIM, NEQN, NQ
+! ..
+! .. Array Arguments ..
+        REAL (WP) :: Y(*)
+! ..
+! .. Local Scalars ..
+        INTEGER :: I, J, J1, J2
+! ..
+! .. FIRST EXECUTABLE STATEMENT DVNRDN
+! ..
+        DO J1 = 1, NQ
+          DO J2 = J1, NQ
+            J = (NQ+J1) - J2
+            DO I = 1, NEQN
+! Original:
+!             Y(I,J) = Y(I,J) - Y(I,J+1)
+              Y(I+(J-1)*IYDIM) = Y(I+(J-1)*IYDIM) - Y(I+J*IYDIM)
+            END DO
+          END DO
+        END DO
+        RETURN
+
+      END SUBROUTINE DVNRDN
+!_______________________________________________________________________
+
+      SUBROUTINE DVNRDS(Y,IYDIM,NEQN,L,RH)
+! ..
+! Scale the Nordsieck array.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        REAL (WP) :: RH
+        INTEGER :: IYDIM, L, NEQN
+! ..
+! .. Array Arguments ..
+        REAL (WP) :: Y(*)
+! ..
+! .. Local Scalars ..
+        REAL (WP) :: R1
+        INTEGER :: I, J
+! ..
+! .. FIRST EXECUTABLE STATEMENT DVNRDS
+! ..
+        R1 = ONE
+        DO J = 2, L
+          R1 = R1*RH
+          DO I = 1, NEQN
+! Original:
+!           Y(I,J) = Y(I,J)*R1
+            Y(I+(J-1)*IYDIM) = Y(I+(J-1)*IYDIM)*R1
+          END DO
+        END DO
+        RETURN
+
+      END SUBROUTINE DVNRDS
+!_______________________________________________________________________
+
+      SUBROUTINE RELEASE_ARRAYS
+! ..
+! Deallocate any allocated arrays and determine how much storage was
+! used (not called by DVODE_F90).
+! ..
+     IMPLICIT NONE
+! ..
+! .. Local Scalars ..
+        INTEGER :: IER, II, IR
+        CHARACTER (80) :: MSG
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ALLOCATED, SIZE
+! ..
+!_______________________________________________________________________
+! *****MA48 build change point. Insert these statements.
+!     INTEGER INFO
+!     INTEGER ISIZE
+!     COMMON /MA48SIZE/ ISIZE
+!_______________________________________________________________________
+! ..
+! .. FIRST EXECUTABLE STATEMENT RELEASE_ARRAYS
+! ..
+        IR = 0
+        IF (ALLOCATED(ACOR)) THEN
+          IR = IR + SIZE(ACOR)
+          DEALLOCATE (ACOR,STAT=IER)
+          CALL CHECK_STAT(IER,880)
+        END IF
+        IF (ALLOCATED(CSCALEX)) THEN
+          IR = IR + SIZE(CSCALEX) + SIZE(RSCALEX) + SIZE(WSCALEX)
+          DEALLOCATE (CSCALEX,RSCALEX,WSCALEX,STAT=IER)
+          CALL CHECK_STAT(IER,890)
+        END IF
+        IF (ALLOCATED(DTEMP)) THEN
+          IR = IR + SIZE(DTEMP)
+          DEALLOCATE (DTEMP,STAT=IER)
+          CALL CHECK_STAT(IER,900)
+        END IF
+        IF (ALLOCATED(EWT)) THEN
+          IR = IR + SIZE(EWT)
+          DEALLOCATE (EWT,STAT=IER)
+          CALL CHECK_STAT(IER,910)
+        END IF
+        IF (ALLOCATED(FACDS)) THEN
+          IR = IR + SIZE(FACDS)
+          DEALLOCATE (FACDS,STAT=IER)
+          CALL CHECK_STAT(IER,920)
+        END IF
+        IF (ALLOCATED(FPTEMP)) THEN
+          IR = IR + SIZE(FPTEMP)
+          DEALLOCATE (FPTEMP,STAT=IER)
+          CALL CHECK_STAT(IER,930)
+        END IF
+        IF (ALLOCATED(FTEMP)) THEN
+          IR = IR + SIZE(FTEMP)
+          DEALLOCATE (FTEMP,STAT=IER)
+          CALL CHECK_STAT(IER,940)
+        END IF
+        IF (ALLOCATED(FTEMP1)) THEN
+          IR = IR + SIZE(FTEMP1)
+          DEALLOCATE (FTEMP1,STAT=IER)
+          CALL CHECK_STAT(IER,950)
+        END IF
+        IF (ALLOCATED(G0)) THEN
+          IR = IR + SIZE(G0)
+          DEALLOCATE (G0,STAT=IER)
+          CALL CHECK_STAT(IER,960)
+        END IF
+        IF (ALLOCATED(G1)) THEN
+          IR = IR + SIZE(G1)
+          DEALLOCATE (G1,STAT=IER)
+          CALL CHECK_STAT(IER,970)
+        END IF
+        IF (ALLOCATED(GX)) THEN
+          IR = IR + SIZE(GX)
+          DEALLOCATE (GX,STAT=IER)
+          CALL CHECK_STAT(IER,980)
+        END IF
+        IF (ALLOCATED(JMAT)) THEN
+          IR = IR + SIZE(JMAT)
+          DEALLOCATE (JMAT,STAT=IER)
+          CALL CHECK_STAT(IER,990)
+        END IF
+        IF (ALLOCATED(LB)) THEN
+          IR = IR + SIZE(LB)
+          DEALLOCATE (LB,STAT=IER)
+          CALL CHECK_STAT(IER,1000)
+        END IF
+        IF (ALLOCATED(UB)) THEN
+          IR = IR + SIZE(UB)
+          DEALLOCATE (UB,STAT=IER)
+          CALL CHECK_STAT(IER,1000)
+        END IF
+        IF (ALLOCATED(PMAT)) THEN
+          IR = IR + SIZE(PMAT)
+          DEALLOCATE (PMAT,STAT=IER)
+          CALL CHECK_STAT(IER,1010)
+        END IF
+        IF (ALLOCATED(RWORK)) THEN
+          IR = IR + SIZE(RWORK)
+          DEALLOCATE (RWORK,STAT=IER)
+          CALL CHECK_STAT(IER,1020)
+        END IF
+        IF (ALLOCATED(SAVF)) THEN
+          IR = IR + SIZE(SAVF)
+          DEALLOCATE (SAVF,STAT=IER)
+          CALL CHECK_STAT(IER,1030)
+        END IF
+        IF (ALLOCATED(YMAX)) THEN
+          IR = IR + SIZE(YMAX)
+          DEALLOCATE (YMAX,STAT=IER)
+          CALL CHECK_STAT(IER,1040)
+        END IF
+        IF (ALLOCATED(WM)) THEN
+          IR = IR + SIZE(WM)
+          DEALLOCATE (WM,STAT=IER)
+          CALL CHECK_STAT(IER,1050)
+        END IF
+        IF (ALLOCATED(YHNQP2)) THEN
+          IR = IR + SIZE(YHNQP2)
+          DEALLOCATE (YHNQP2,STAT=IER)
+          CALL CHECK_STAT(IER,1060)
+        END IF
+        IF (ALLOCATED(YHTEMP)) THEN
+          IR = IR + SIZE(YHTEMP)
+          DEALLOCATE (YHTEMP,STAT=IER)
+          CALL CHECK_STAT(IER,1070)
+        END IF
+        IF (ALLOCATED(YMAX)) THEN
+          IR = IR + SIZE(YMAX)
+          DEALLOCATE (YMAX,STAT=IER)
+          CALL CHECK_STAT(IER,1080)
+        END IF
+        IF (ALLOCATED(YNNEG)) THEN
+          IR = IR + SIZE(YNNEG)
+          DEALLOCATE (YNNEG,STAT=IER)
+          CALL CHECK_STAT(IER,1090)
+        END IF
+        IF (ALLOCATED(YSCALEDS)) THEN
+          IR = IR + SIZE(YSCALEDS)
+          DEALLOCATE (YSCALEDS,STAT=IER)
+          CALL CHECK_STAT(IER,1100)
+        END IF
+        IF (ALLOCATED(YTEMP)) THEN
+          IR = IR + SIZE(YTEMP)
+          DEALLOCATE (YTEMP,STAT=IER)
+          CALL CHECK_STAT(IER,1110)
+        END IF
+        IF (ALLOCATED(WKDS)) THEN
+          IR = IR + SIZE(WKDS)
+          DEALLOCATE (WKDS,STAT=IER)
+          CALL CHECK_STAT(IER,1120)
+        END IF
+        II = 0
+        IF (ALLOCATED(BIGP)) THEN
+          II = II + SIZE(BIGP)
+          DEALLOCATE (BIGP,STAT=IER)
+          CALL CHECK_STAT(IER,1130)
+        END IF
+        IF (ALLOCATED(BJGP)) THEN
+          II = II + SIZE(BJGP)
+          DEALLOCATE (BJGP,STAT=IER)
+          CALL CHECK_STAT(IER,1140)
+        END IF
+        IF (ALLOCATED(IA)) THEN
+          II = II + SIZE(IA)
+          DEALLOCATE (IA,STAT=IER)
+          CALL CHECK_STAT(IER,1150)
+        END IF
+        IF (ALLOCATED(IAB)) THEN
+          II = II + SIZE(IAB)
+          DEALLOCATE (IAB,STAT=IER)
+          CALL CHECK_STAT(IER,1160)
+        END IF
+        IF (ALLOCATED(IAN)) THEN
+          II = II + SIZE(IAN)
+          DEALLOCATE (IAN,STAT=IER)
+          CALL CHECK_STAT(IER,1170)
+        END IF
+        IF (ALLOCATED(ICN)) THEN
+          II = II + SIZE(ICN)
+          DEALLOCATE (ICN,STAT=IER)
+          CALL CHECK_STAT(IER,1180)
+        END IF
+        IF (ALLOCATED(IDX)) THEN
+          II = II + SIZE(IDX)
+          DEALLOCATE (IDX,STAT=IER)
+          CALL CHECK_STAT(IER,1190)
+        END IF
+        IF (ALLOCATED(IGP)) THEN
+          II = II + SIZE(IGP)
+          DEALLOCATE (IGP,STAT=IER)
+          CALL CHECK_STAT(IER,1200)
+        END IF
+        IF (ALLOCATED(IKEEP28)) THEN
+          II = II + SIZE(IKEEP28,1)*SIZE(IKEEP28,2)
+          DEALLOCATE (IKEEP28,STAT=IER)
+          CALL CHECK_STAT(IER,1210)
+        END IF
+        IF (ALLOCATED(INDCOLDS)) THEN
+          II = II + SIZE(INDCOLDS)
+          DEALLOCATE (INDCOLDS,STAT=IER)
+          CALL CHECK_STAT(IER,1220)
+        END IF
+        IF (ALLOCATED(INDROWDS)) THEN
+          II = II + SIZE(INDROWDS)
+          DEALLOCATE (INDROWDS,STAT=IER)
+          CALL CHECK_STAT(IER,1230)
+        END IF
+        IF (ALLOCATED(IOPTDS)) THEN
+          II = II + SIZE(IOPTDS)
+          DEALLOCATE (IOPTDS,STAT=IER)
+          CALL CHECK_STAT(IER,1240)
+        END IF
+        IF (ALLOCATED(IPNTRDS)) THEN
+          II = II + SIZE(IPNTRDS)
+          DEALLOCATE (IPNTRDS,STAT=IER)
+          CALL CHECK_STAT(IER,1250)
+        END IF
+        IF (ALLOCATED(IWADS)) THEN
+          II = II + SIZE(IWADS)
+          DEALLOCATE (IWADS,STAT=IER)
+          CALL CHECK_STAT(IER,1260)
+        END IF
+        IF (ALLOCATED(IWKDS)) THEN
+          II = II + SIZE(IWKDS)
+          DEALLOCATE (IWKDS,STAT=IER)
+          CALL CHECK_STAT(IER,1270)
+        END IF
+        IF (ALLOCATED(IWORK)) THEN
+          II = II + SIZE(IWORK)
+          DEALLOCATE (IWORK,STAT=IER)
+          CALL CHECK_STAT(IER,1280)
+        END IF
+        IF (ALLOCATED(IW28)) THEN
+          II = II + SIZE(IW28,1)*SIZE(IW28,2)
+          DEALLOCATE (IW28,STAT=IER)
+          CALL CHECK_STAT(IER,1290)
+        END IF
+        IF (ALLOCATED(JA)) THEN
+          II = II + SIZE(JA)
+          DEALLOCATE (JA,STAT=IER)
+          CALL CHECK_STAT(IER,1300)
+        END IF
+        IF (ALLOCATED(JAB)) THEN
+          II = II + SIZE(JAB)
+          DEALLOCATE (JAB,STAT=IER)
+          CALL CHECK_STAT(IER,1310)
+        END IF
+        IF (ALLOCATED(JAN)) THEN
+          II = II + SIZE(JAN)
+          DEALLOCATE (JAN,STAT=IER)
+          CALL CHECK_STAT(IER,1320)
+        END IF
+        IF (ALLOCATED(JATEMP)) THEN
+          II = II + SIZE(JATEMP)
+          DEALLOCATE (JATEMP,STAT=IER)
+          CALL CHECK_STAT(IER,1330)
+        END IF
+        IF (ALLOCATED(JGP)) THEN
+          II = II + SIZE(JGP)
+          DEALLOCATE (JGP,STAT=IER)
+          CALL CHECK_STAT(IER,1340)
+        END IF
+        IF (ALLOCATED(JPNTRDS)) THEN
+          II = II + SIZE(JPNTRDS)
+          DEALLOCATE (JPNTRDS,STAT=IER)
+          CALL CHECK_STAT(IER,1350)
+        END IF
+        IF (ALLOCATED(JROOT)) THEN
+          II = II + SIZE(JROOT)
+          DEALLOCATE (JROOT,STAT=IER)
+          CALL CHECK_STAT(IER,1360)
+        END IF
+        IF (ALLOCATED(JVECT)) THEN
+          II = II + SIZE(JVECT)
+          DEALLOCATE (JVECT,STAT=IER)
+          CALL CHECK_STAT(IER,1370)
+        END IF
+        IF (ALLOCATED(NGRPDS)) THEN
+          II = II + SIZE(NGRPDS)
+          DEALLOCATE (NGRPDS,STAT=IER)
+          CALL CHECK_STAT(IER,1380)
+        END IF
+        IF (ALLOCATED(SUBDS)) THEN
+          II = II + SIZE(SUBDS)
+          DEALLOCATE (SUBDS,STAT=IER)
+          CALL CHECK_STAT(IER,1390)
+        END IF
+        IF (ALLOCATED(SUPDS)) THEN
+          II = II + SIZE(SUPDS)
+          DEALLOCATE (SUPDS,STAT=IER)
+          CALL CHECK_STAT(IER,1400)
+        END IF
+!_______________________________________________________________________
+! *****MA48 build change point. Insert these statements.
+!       IF (MA48_WAS_USED) THEN
+!          CALL MA48_FINALIZE(FACTORS,CONTROL,INFO)
+!          IF (INFO /= 0) THEN
+!             MSG = 'The call to MA48_FINALIZE FAILED.'
+!             CALL XERRDV(MSG,1740,1,1,II,0,0,ZERO,ZERO)
+!          END IF
+!          MSG = 'Size of MA48 deallocated arrays (I1) = '
+!          CALL XERRDV(MSG,1750,1,1,ISIZE,0,0,ZERO,ZERO)
+!       END IF
+!_______________________________________________________________________
+
+!       Print the amount of storage used.
+        MSG = 'I1 = Total length of REAL arrays used.'
+        CALL XERRDV(MSG,1760,1,1,IR,0,0,ZERO,ZERO)
+        MSG = 'I1 = Total length of INTEGER arrays used.'
+        CALL XERRDV(MSG,1760,1,1,II,0,0,ZERO,ZERO)
+
+!       In case DVODE_F90 is subsequently called:
+        OPTS_CALLED = .FALSE.
+        RETURN
+
+      END SUBROUTINE RELEASE_ARRAYS
+! End of DVODE_F90 subroutines
+!_______________________________________________________________________
+
+! Beginning of LINPACK and BLAS subroutines
+      SUBROUTINE DGEFA_F90(A,LDA,N,IPVT,INFO)
+! ..
+! Factor a matrix using Gaussian elimination.
+! ..
+!     DGEFA_F90 factors a real(wp) matrix by Gaussian elimination.
+!     DGEFA_F90 is usually called by DGECO, but it can be called
+!     directly with a saving in time if RCOND is not needed.
+!     (Time for DGECO) = (1 + 9/N)*(Time for DGEFA_F90).
+!     On Entry
+!        A       REAL(KIND=WP)(LDA, N)
+!                the matrix to be factored.
+!        LDA     INTEGER
+!                the leading dimension of the array A.
+!        N       INTEGER
+!                the order of the matrix A.
+!     On Return
+!        A       an upper triangular matrix and the multipliers
+!                which were used to obtain it.
+!                The factorization can be written A = L*U where
+!                L is a product of permutation and unit lower
+!                triangular matrices and U is upper triangular.
+!        IPVT    INTEGER(N)
+!                an integer vector of pivot indices.
+!        INFO    INTEGER
+!                = 0  normal value.
+!                = K  if U(K,K) == 0.0. This is not an error
+!                     condition for this subroutine, but it does
+!                     indicate that DGESL_F90 or DGEDI will divide
+!                     by zero if called. Use RCOND in DGECO for a
+!                     reliable indication of singularity.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (INOUT) :: INFO
+        INTEGER, INTENT (IN) :: LDA, N
+! ..
+! .. Array Arguments ..
+        REAL (WP), INTENT (INOUT) :: A(LDA,*)
+        INTEGER, INTENT (INOUT) :: IPVT(*)
+! ..
+! .. Local Scalars ..
+        REAL (WP) :: T
+        INTEGER :: J, K, KP1, L, NM1
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS
+! ..
+! .. FIRST EXECUTABLE STATEMENT DGEFA_F90
+! ..
+        INFO = 0
+        NM1 = N - 1
+        IF (NM1<1) GOTO 50
+        DO K = 1, NM1
+          KP1 = K + 1
+
+!         Find L = pivot index.
+
+! Original:
+!         L = IDAMAX_F90(N-K+1,A(K,K),1) + K - 1
+          L = IDAMAX_F90(N-K+1,A(K:N,K),1) + K - 1
+          IPVT(K) = L
+
+!         Zero pivot implies this column already triangularized.
+
+!         IF (A(L, K) == ZERO) GOTO 40
+          IF (ABS(A(L,K))<=ZERO) GOTO 30
+
+!         Interchange if necessary.
+
+          IF (L==K) GOTO 10
+          T = A(L,K)
+          A(L,K) = A(K,K)
+          A(K,K) = T
+10        CONTINUE
+
+!         Compute multipliers.
+
+          T = -ONE/A(K,K)
+! Original:          
+!         CALL DSCAL_F90(N-K,T,A(K+1,K),1)         
+          CALL DSCAL_F90(N-K,T,A(K+1:N,K),1)
+
+!         Row elimination with column indexing.
+
+          DO J = KP1, N
+            T = A(L,J)
+            IF (L==K) GOTO 20
+            A(L,J) = A(K,J)
+            A(K,J) = T
+20          CONTINUE
+! Original:            
+!           CALL DAXPY_F90(N-K,T,A(K+1,K),1,A(K+1,J),1)
+            CALL DAXPY_F90(N-K,T,A(K+1:N,K),1,A(K+1:N,J),1)
+          END DO
+          GOTO 40
+30        CONTINUE
+          INFO = K
+40        CONTINUE
+        END DO
+50      CONTINUE
+        IPVT(N) = N
+!       IF (A(N, N) == ZERO) INFO = N
+        IF (ABS(A(N,N))<=ZERO) INFO = N
+        RETURN
+
+      END SUBROUTINE DGEFA_F90
+!_______________________________________________________________________
+
+      SUBROUTINE DGESL_F90(A,LDA,N,IPVT,B,JOB)
+! ..
+! Solve the real system A*X=B or TRANS(A)*X=B using the factors
+! computed by DGECO or DGEFA_F90.
+! ..
+!     DGESL_F90 solves the real(wp) system
+!     A * X = B or TRANS(A) * X = B
+!     using the factors computed by DGECO or DGEFA_F90.
+!     On Entry
+!        A       REAL(KIND=WP)(LDA, N)
+!                the output from DGECO or DGEFA_F90.
+!        LDA     INTEGER
+!                the leading dimension of the array A.
+!        N       INTEGER
+!                the order of the matrix A.
+!        IPVT    INTEGER(N)
+!                the pivot vector from DGECO or DGEFA_F90.
+!        B       REAL(KIND=WP)(N)
+!                the right hand side vector.
+!        JOB     INTEGER
+!                = 0         to solve A*X = B,
+!                = nonzero   to solve TRANS(A)*X = B where
+!                            TRANS(A)is the transpose.
+!     On Return
+!        B       the solution vector X.
+!     Error Condition
+!        A division by zero will occur if the input factor contains a
+!        zero on the diagonal. Technically this indicates singularity
+!        but it is often caused by improper arguments or improper
+!        setting of LDA. It will not occur if the subroutines are
+!        called correctly and if DGECO has set RCOND > 0.0 or
+!        DGEFA_F90 has set INFO == 0.
+!     To compute INVERSE(A) * C where C is a matrix
+!     with P columns
+!           CALL DGECO(A,LDA,N,IPVT,RCOND,Z)
+!           IF (RCOND is too small) GOTO
+!           DO J = 1, P
+!              CALL DGESL_F90(A,LDA,N,IPVT,C(1,J),0)
+!           END DO
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: JOB, LDA, N
+! ..
+! .. Array Arguments ..
+        REAL (WP), INTENT (INOUT) :: A(LDA,*), B(*)
+        INTEGER, INTENT (INOUT) :: IPVT(*)
+! ..
+! .. Local Scalars ..
+        REAL (WP) :: T
+        INTEGER :: K, KB, L, NM1
+! ..
+! .. FIRST EXECUTABLE STATEMENT DGESL_F90
+! ..
+        NM1 = N - 1
+        IF (JOB/=0) GOTO 30
+
+!       JOB = 0, solve A*X = B.
+!       First solve L*Y = B.
+
+        IF (NM1<1) GOTO 20
+        DO K = 1, NM1
+          L = IPVT(K)
+          T = B(L)
+          IF (L==K) GOTO 10
+          B(L) = B(K)
+          B(K) = T
+10        CONTINUE
+! Original:
+!         CALL DAXPY_F90(N-K,T,A(K+1,K),1,B(K+1),1)
+          CALL DAXPY_F90(N-K,T,A(K+1:N,K),1,B(K+1:N),1)
+        END DO
+20      CONTINUE
+
+!       Now solve U*X = Y.
+
+        DO KB = 1, N
+          K = N + 1 - KB
+          B(K) = B(K)/A(K,K)
+          T = -B(K)
+! Original:
+!         CALL DAXPY_F90(K-1,T,A(1,K),1,B(1),1)
+          CALL DAXPY_F90(K-1,T,A(1:K-1,K),1,B(1:K-1),1)
+        END DO
+        GOTO 60
+30      CONTINUE
+
+!       JOB /= 0, solve TRANS(A)*X = B.
+!       First solve TRANS(U)*Y = B.
+
+        DO K = 1, N
+          T = DDOT_F90(K-1,A(1,K),1,B(1),1)
+          B(K) = (B(K)-T)/A(K,K)
+        END DO
+
+!       Now solve TRANS(L)*X = Y.
+
+        IF (NM1<1) GOTO 50
+        DO KB = 1, NM1
+          K = N - KB
+          B(K) = B(K) + DDOT_F90(N-K,A(K+1,K),1,B(K+1),1)
+          L = IPVT(K)
+          IF (L==K) GOTO 40
+          T = B(L)
+          B(L) = B(K)
+          B(K) = T
+40        CONTINUE
+        END DO
+50      CONTINUE
+60      CONTINUE
+        RETURN
+
+      END SUBROUTINE DGESL_F90
+!_______________________________________________________________________
+
+      SUBROUTINE DGBFA_F90(ABD,LDA,N,ML,MU,IPVT,INFO)
+! ..
+! Factor a banded matrix using Gaussian elimination.
+! ..
+!     DGBFA_F90 factors a real(wp) band matrix by elimination.
+!     DGBFA_F90 is usually called by DGBCO, but it can be called
+!     directly with a saving in time if RCOND is not needed.
+!     On Entry
+!        ABD     REAL(KIND=WP)(LDA, N)
+!                contains the matrix in band storage. The columns
+!                of the matrix are stored in the columns of ABD and
+!                the diagonals of the matrix are stored in rows
+!                ML+1 through 2*ML+MU+1 of ABD.
+!                See the comments below for details.
+!        LDA     INTEGER
+!                the leading dimension of the array ABD.
+!                LDA must be >= 2*ML + MU + 1.
+!        N       INTEGER
+!                the order of the original matrix.
+!        ML      INTEGER
+!                number of diagonals below the main diagonal.
+!                0 <= ML < N.
+!        MU      INTEGER
+!                number of diagonals above the main diagonal.
+!                0 <= MU < N.
+!                More efficient if ML <= MU.
+!     On Return
+!        ABD     an upper triangular matrix in band storage and
+!                the multipliers which were used to obtain it.
+!                The factorization can be written A = L*U where
+!                L is a product of permutation and unit lower
+!                triangular matrices and U is upper triangular.
+!        IPVT    INTEGER(N)
+!                an integer vector of pivot indices.
+!        INFO    INTEGER
+!                = 0  normal value.
+!                = K  if U(K,K) == 0.0. This is not an error
+!                     condition for this subroutine, but it does
+!                     indicate that DGBSL_F90 will divide by zero
+!                     if called. Use RCOND in DGBCO for a reliable
+!                     indication of singularity.
+!     Band Storage
+!           If A is a band matrix, the following program segment
+!           will set up the input.
+!                   ML = (band width below the diagonal)
+!                   MU = (band width above the diagonal)
+!                   M = ML + MU + 1
+!                   DO J = 1, N
+!                      I1 = MAX(1, J-MU)
+!                      I2 = MIN(N, J+ML)
+!                      DO 10 I = I1, I2
+!                         K = I - J + M
+!                         ABD(K,J) = A(I,J)
+!                      END DO
+!                   END DO
+!           This uses rows ML+1 through 2*ML+MU+1 of ABD.
+!           In addition, the first ML rows in ABD are used for
+!           elements generated during the triangularization.
+!           The total number of rows needed in ABD is 2*ML+MU+1.
+!           The ML+MU by ML+MU upper left triangle and the
+!           ML by ML lower right triangle are not referenced.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (INOUT) :: INFO
+        INTEGER, INTENT (IN) :: LDA, ML, MU, N
+! ..
+! .. Array Arguments ..
+        REAL (WP), INTENT (INOUT) :: ABD(LDA,*)
+        INTEGER, INTENT (INOUT) :: IPVT(*)
+! ..
+! .. Local Scalars ..
+        REAL (WP) :: T
+        INTEGER :: I0, J, J0, J1, JU, JZ, K, KP1, L, LM, M, MM, NM1
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, MAX, MIN
+! ..
+! .. FIRST EXECUTABLE STATEMENT DGBFA_F90
+! ..
+        M = ML + MU + 1
+        INFO = 0
+
+!       Zero initial fill-in columns.
+
+        J0 = MU + 2
+        J1 = MIN(N,M) - 1
+        IF (J1<J0) GOTO 10
+        DO JZ = J0, J1
+          I0 = M + 1 - JZ
+          ABD(I0:ML,JZ) = ZERO
+        END DO
+10      CONTINUE
+        JZ = J1
+        JU = 0
+
+!       Gaussian elimination with partial pivoting.
+
+        NM1 = N - 1
+        IF (NM1<1) GOTO 80
+        DO K = 1, NM1
+          KP1 = K + 1
+
+!         Zero next fill-in column.
+
+          JZ = JZ + 1
+          IF (JZ>N) GOTO 20
+          IF (ML<1) GOTO 20
+          ABD(1:ML,JZ) = ZERO
+20        CONTINUE
+
+!         Find L = pivot index.
+
+          LM = MIN(ML,N-K)
+! Original:
+!         L = IDAMAX_F90(LM+1,ABD(M,K),1) + M - 1
+          L = IDAMAX_F90(LM+1,ABD(M:M+LM,K),1) + M - 1
+
+          IPVT(K) = L + K - M
+
+!         Zero pivot implies this column already triangularized.
+
+!         IF (ABD(L, K) == ZERO) GOTO 100
+          IF (ABS(ABD(L,K))<=ZERO) GOTO 60
+
+!         Interchange if necessary.
+
+          IF (L==M) GOTO 30
+          T = ABD(L,K)
+          ABD(L,K) = ABD(M,K)
+          ABD(M,K) = T
+30        CONTINUE
+
+!         Compute multipliers.
+
+          T = -ONE/ABD(M,K)
+! Original:
+!         CALL DSCAL_F90(LM,T,ABD(M+1,K),1)
+          CALL DSCAL_F90(LM,T,ABD(M+1:M+LM,K),1)
+
+!         Row elimination with column indexing.
+
+          JU = MIN(MAX(JU,MU+IPVT(K)),N)
+          MM = M
+          IF (JU<KP1) GOTO 50
+          DO J = KP1, JU
+            L = L - 1
+            MM = MM - 1
+            T = ABD(L,J)
+            IF (L==MM) GOTO 40
+            ABD(L,J) = ABD(MM,J)
+            ABD(MM,J) = T
+40          CONTINUE
+! Original:
+!           CALL DAXPY_F90(LM,T,ABD(M+1,K),1,ABD(MM+1,J),1)
+            CALL DAXPY_F90(LM,T,ABD(M+1:M+LM,K),1,ABD(MM+1:M+LM,J),1)
+          END DO
+50        CONTINUE
+          GOTO 70
+60        CONTINUE
+          INFO = K
+70        CONTINUE
+        END DO
+80      CONTINUE
+        IPVT(N) = N
+!       IF (ABD(M, N) == ZERO) INFO = N
+        IF (ABS(ABD(M,N))<=ZERO) INFO = N
+        RETURN
+
+      END SUBROUTINE DGBFA_F90
+!_______________________________________________________________________
+
+      SUBROUTINE DGBSL_F90(ABD,LDA,N,ML,MU,IPVT,B,JOB)
+! ..
+! Solve the real band system A*X=B or TRANS(A)*X=B using the factors
+! computed by DGBCO or DGBFA_F90.
+! ..
+!     DGBSL_F90 solves the real(wp) band system
+!     A * X = B or TRANS(A) * X = B
+!     using the factors computed by DGBCO or DGBFA_F90.
+!     On Entry
+!        ABD     REAL(KIND=WP)(LDA, N)
+!                the output from DGBCO or DGBFA_F90.
+!        LDA     INTEGER
+!                the leading dimension of the array ABD.
+!        N       INTEGER
+!                the order of the original matrix.
+!        ML      INTEGER
+!                number of diagonals below the main diagonal.
+!        MU      INTEGER
+!                number of diagonals above the main diagonal.
+!        IPVT    INTEGER(N)
+!                the pivot vector from DGBCO or DGBFA_F90.
+!        B       REAL(KIND=WP)(N)
+!                the right hand side vector.
+!        JOB     INTEGER
+!                = 0         to solve A*X = B,
+!                = nonzero   to solve TRANS(A)*X = B, where
+!                            TRANS(A) is the transpose.
+!     On Return
+!        B       the solution vector X.
+!     Error Condition
+!        A division by zero will occur if the input factor contains a
+!        zero on the diagonal. Technically this indicates singularity
+!        but it is often caused by improper arguments or improper
+!        setting of LDA. It will not occur if the subroutines are
+!        called correctly and if DGBCO has set RCOND > 0.0
+!        or DGBFA_F90 has set INFO == 0 .
+!     To compute INVERSE(A) * C where C is a matrix
+!     with P columns
+!           CALL DGBCO(ABD,LDA,N,ML,MU,IPVT,RCOND,Z)
+!           IF (RCOND is too small) GOTO ...
+!           DO J = 1, P
+!              CALL DGBSL_F90(ABD,LDA,N,ML,MU,IPVT,C(1,J),0)
+!           END DO
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: JOB, LDA, ML, MU, N
+! ..
+! .. Array Arguments ..
+        REAL (WP), INTENT (INOUT) :: ABD(LDA,*), B(*)
+        INTEGER, INTENT (INOUT) :: IPVT(*)
+! ..
+! .. Local Scalars ..
+        REAL (WP) :: T
+        INTEGER :: K, KB, L, LA, LB, LM, M, NM1
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC MIN
+! ..
+! .. FIRST EXECUTABLE STATEMENT DGBSL_F90
+! ..
+        M = MU + ML + 1
+        NM1 = N - 1
+        IF (JOB/=0) GOTO 30
+
+!       JOB = 0, solve A*X = B.
+!       First solve L*Y = B.
+
+        IF (ML==0) GOTO 20
+        IF (NM1<1) GOTO 20
+        DO K = 1, NM1
+          LM = MIN(ML,N-K)
+          L = IPVT(K)
+          T = B(L)
+          IF (L==K) GOTO 10
+          B(L) = B(K)
+          B(K) = T
+10        CONTINUE
+! Original:
+!         CALL DAXPY_F90(LM,T,ABD(M+1,K),1,B(K+1),1)
+          CALL DAXPY_F90(LM,T,ABD(M+1:M+LM,K),1,B(K+1:K+LM),1)
+        END DO
+20      CONTINUE
+
+!       Now solve U*X = Y.
+
+        DO KB = 1, N
+          K = N + 1 - KB
+          B(K) = B(K)/ABD(M,K)
+          LM = MIN(K,M) - 1
+          LA = M - LM
+          LB = K - LM
+          T = -B(K)
+! Original:
+!         CALL DAXPY_F90(LM,T,ABD(LA,K),1,B(LB),1)
+          CALL DAXPY_F90(LM,T,ABD(LA:LA+LM-1,K),1,B(LB:LB+LM-1),1)
+        END DO
+        GOTO 60
+30      CONTINUE
+
+!       JOB /= 0, solve TRANS(A)*X = B.
+!       First solve TRANS(U)*Y = B.
+
+        DO K = 1, N
+          LM = MIN(K,M) - 1
+          LA = M - LM
+          LB = K - LM
+! Original:
+!         T = DDOT_F90(LM,ABD(LA,K),1,B(LB),1)
+          T = DDOT_F90(LM,ABD(LA:LA+LM-1,K),1,B(LB:LB+LM-1),1)
+          B(K) = (B(K)-T)/ABD(M,K)
+        END DO
+
+!       Now solve TRANS(L)*X = Y.
+
+        IF (ML==0) GOTO 50
+        IF (NM1<1) GOTO 50
+        DO KB = 1, NM1
+          K = N - KB
+          LM = MIN(ML,N-K)
+! Original:
+!         B(K) = B(K) + DDOT_F90(LM,ABD(M+1,K),1,B(K+1),1)
+          B(K) = B(K) + DDOT_F90(LM,ABD(M+1:M+LM,K),1,B(K+1:K+LM),1)
+          L = IPVT(K)
+          IF (L==K) GOTO 40
+          T = B(L)
+          B(L) = B(K)
+          B(K) = T
+40        CONTINUE
+        END DO
+50      CONTINUE
+60      CONTINUE
+        RETURN
+
+      END SUBROUTINE DGBSL_F90
+!_______________________________________________________________________
+
+      SUBROUTINE DAXPY_F90(N,DA,DX,INCX,DY,INCY)
+! ..
+! Compute a constant times a vector plus a vector.
+! ..
+!     Description of Parameters
+!     Input:
+!     N    - number of elements in input vector(s)
+!     DA   - real(wp) scalar multiplier
+!     DX   - real(wp) vector with N elements
+!     INCX - storage spacing between elements of DX
+!     DY   - real(wp) vector with N elements
+!     INCY -  storage spacing between elements of DY
+!     Output:
+!     DY - real(wp) result (unchanged if N <= 0)
+!     Overwrite real(wp) DY with real(wp) DA*DX + DY.
+!     For I = 0 to N-1, replace  DY(LY+I*INCY) with
+!     DA*DX(LX+I*INCX) + DY(LY+I*INCY),
+!     where LX = 1 if INCX >= 0, else LX = 1+(1-N)*INCX,
+!     and LY is defined in a similar way using INCY.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        REAL (WP), INTENT (IN) :: DA
+        INTEGER, INTENT (IN) :: INCX, INCY, N
+! ..
+! .. Array Arguments ..
+        REAL (WP), INTENT (IN) :: DX(*)
+        REAL (WP), INTENT (INOUT) :: DY(*)
+! ..
+! .. Local Scalars ..
+        INTEGER :: I, IX, IY, M, MP1, NS
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, MOD
+! ..
+! .. FIRST EXECUTABLE STATEMENT DAXPY_F90
+! ..
+!       IF (N <= 0 .OR. DA == ZERO) RETURN
+        IF (N<=0 .OR. ABS(DA)<=ZERO) RETURN
+!       IF (INCX==INCY) IF (INCX-1) 10, 20, 40
+        IF (INCX == INCY) THEN
+          IF (INCX < 1) THEN
+             GOTO 10
+          ELSEIF (INCX == 1) THEN
+             GOTO 20
+          ELSE
+             GOTO 40
+          END IF
+        END IF
+
+!       Code for unequal or nonpositive increments.
+
+10      IX = 1
+        IY = 1
+        IF (INCX<0) IX = (-N+1)*INCX + 1
+        IF (INCY<0) IY = (-N+1)*INCY + 1
+        DO I = 1, N
+          DY(IY) = DY(IY) + DA*DX(IX)
+          IX = IX + INCX
+          IY = IY + INCY
+        END DO
+        RETURN
+
+!       Code for both increments equal to 1.
+
+!       Clean-up loop so remaining vector length is a multiple of 4.
+
+20      M = MOD(N,4)
+        IF (M==0) GOTO 30
+        DY(1:M) = DY(1:M) + DA*DX(1:M)
+        IF (N<4) RETURN
+30      MP1 = M + 1
+        DO I = MP1, N, 4
+          DY(I) = DY(I) + DA*DX(I)
+          DY(I+1) = DY(I+1) + DA*DX(I+1)
+          DY(I+2) = DY(I+2) + DA*DX(I+2)
+          DY(I+3) = DY(I+3) + DA*DX(I+3)
+        END DO
+        RETURN
+
+!       Code for equal, positive, non-unit increments.
+
+40      NS = N*INCX
+        DO I = 1, NS, INCX
+          DY(I) = DA*DX(I) + DY(I)
+        END DO
+        RETURN
+
+      END SUBROUTINE DAXPY_F90
+!_______________________________________________________________________
+
+      SUBROUTINE DCOPY_F90(N,DX,INCX,DY,INCY)
+! ..
+! Copy a vector to another vector.
+! ..
+!     Description of Parameters
+!     Input:
+!     N    - number of elements in input vector(s)
+!     DX   - real(wp) vector with N elements
+!     INCX - storage spacing between elements of DX
+!     DY   - real(wp) vector with N elements
+!     INCY - storage spacing between elements of DY
+!     Output:
+!     DY - copy of vector DX(unchanged if N <= 0)
+!     Copy real(wp) DX to real(wp) DY.
+!     For I = 0 to N-1, copy DX(LX+I*INCX) to DY(LY+I*INCY),
+!     where LX = 1 if INCX >= 0, else LX = 1+(1-N)*INCX,
+!     and LY is defined in a similar way using INCY.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: INCX, INCY, N
+! ..
+! .. Array Arguments ..
+        REAL (WP), INTENT (IN) :: DX(*)
+        REAL (WP), INTENT (INOUT) :: DY(*)
+! ..
+! .. Local Scalars ..
+        INTEGER :: I, IX, IY, M, MP1, NS
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC MOD
+! ..
+! .. FIRST EXECUTABLE STATEMENT DCOPY_F90
+! ..
+        IF (N<=0) RETURN
+!       IF (INCX==INCY) IF (INCX-1) 10, 20, 40
+        IF (INCX == INCY) THEN
+          IF (INCX < 1) THEN
+             GOTO 10
+          ELSEIF (INCX == 1) THEN
+             GOTO 20
+          ELSE
+             GOTO 40
+          END IF
+        END IF
+
+!       Code for unequal or nonpositive increments.
+
+10      IX = 1
+        IY = 1
+        IF (INCX<0) IX = (-N+1)*INCX + 1
+        IF (INCY<0) IY = (-N+1)*INCY + 1
+        DO I = 1, N
+          DY(IY) = DX(IX)
+          IX = IX + INCX
+          IY = IY + INCY
+        END DO
+        RETURN
+
+!       Code for both increments equal to 1.
+
+!       Clean-up loop so remaining vector length is a multiple of 7.
+
+20      M = MOD(N,7)
+        IF (M==0) GOTO 30
+        DO I = 1, M
+          DY(I) = DX(I)
+        END DO
+        IF (N<7) RETURN
+30      MP1 = M + 1
+        DO I = MP1, N, 7
+          DY(I) = DX(I)
+          DY(I+1) = DX(I+1)
+          DY(I+2) = DX(I+2)
+          DY(I+3) = DX(I+3)
+          DY(I+4) = DX(I+4)
+          DY(I+5) = DX(I+5)
+          DY(I+6) = DX(I+6)
+        END DO
+        RETURN
+
+!       Code for equal, positive, non-unit increments.
+
+40      NS = N*INCX
+        DO I = 1, NS, INCX
+          DY(I) = DX(I)
+        END DO
+        RETURN
+
+      END SUBROUTINE DCOPY_F90
+!_______________________________________________________________________
+
+      FUNCTION DDOT_F90(N,DX,INCX,DY,INCY)
+! ..
+! Compute the inner product of two vectors.
+! ..
+!     Description of Parameters
+!     Input:
+!     N    - number of elements in input vector(s)
+!     DX   - real(wp) vector with N elements
+!     INCX - storage spacing between elements of DX
+!     DY   - real(wp) vector with N elements
+!     INCY - storage spacing between elements of DY
+!     Output:
+!     DDOT_F90 - real(wp) dot product (zero if N <= 0)
+!     Returns the dot product of real(wp) DX and DY.
+!     DDOT_F90 = sum for I = 0 to N-1 of  DX(LX+I*INCX) * DY(LY+I*INCY),
+!     where LX = 1 if INCX >= 0, else LX = 1+(1-N)*INCX, and LY is
+!     defined in a similar way using INCY.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Function Return Value ..
+        REAL (WP) :: DDOT_F90
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: INCX, INCY, N
+! ..
+! .. Array Arguments ..
+        REAL (WP), INTENT (IN) :: DX(*), DY(*)
+! ..
+! .. Local Scalars ..
+        INTEGER :: I, IX, IY, M, MP1, NS
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC MOD
+! ..
+! .. FIRST EXECUTABLE STATEMENT DDOT_F90
+! ..
+        DDOT_F90 = ZERO
+        IF (N<=0) RETURN
+!       IF (INCX==INCY) IF (INCX-1) 10, 20, 40
+        IF (INCX == INCY) THEN
+          IF (INCX < 1) THEN
+             GOTO 10
+          ELSEIF (INCX == 1) THEN
+             GOTO 20
+          ELSE
+             GOTO 40
+          END IF
+        END IF
+
+!       Code for unequal or nonpositive increments.
+
+10      IX = 1
+        IY = 1
+        IF (INCX<0) IX = (-N+1)*INCX + 1
+        IF (INCY<0) IY = (-N+1)*INCY + 1
+        DO I = 1, N
+          DDOT_F90 = DDOT_F90 + DX(IX)*DY(IY)
+          IX = IX + INCX
+          IY = IY + INCY
+        END DO
+        RETURN
+
+!       Code for both increments equal to 1.
+
+!       Clean-up loop so remaining vector length is a multiple of 5.
+
+20      M = MOD(N,5)
+        IF (M==0) GOTO 30
+        DO I = 1, M
+          DDOT_F90 = DDOT_F90 + DX(I)*DY(I)
+        END DO
+        IF (N<5) RETURN
+30      MP1 = M + 1
+        DO I = MP1, N, 5
+          DDOT_F90 = DDOT_F90 + DX(I)*DY(I) + DX(I+1)*DY(I+1) + &
+            DX(I+2)*DY(I+2) + DX(I+3)*DY(I+3) + DX(I+4)*DY(I+4)
+        END DO
+        RETURN
+
+!       Code for equal, positive, non-unit increments.
+
+40      NS = N*INCX
+        DO I = 1, NS, INCX
+          DDOT_F90 = DDOT_F90 + DX(I)*DY(I)
+        END DO
+        RETURN
+
+      END FUNCTION DDOT_F90
+!_______________________________________________________________________
+
+      SUBROUTINE DSCAL_F90(N,DA,DX,INCX)
+! ..
+! Multiply a vector by a constant.
+! ..
+!     Description of Parameters
+!     Input:
+!     N    - number of elements in input vector(s)
+!     DA   - real(wp) scale factor
+!     DX   - real(wp) vector with N elements
+!     INCX - storage spacing between elements of DX
+!     Output:
+!     DX - real(wp) result (unchanged if N <= 0)
+!     Replace real(wp) DX by real(wp) DA*DX.
+!     For I = 0 to N-1, replace DX(IX+I*INCX) with DA * DX(IX+I*INCX),
+!     where IX = 1 if INCX >= 0, else IX = 1+(1-N)*INCX.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        REAL (WP), INTENT (IN) :: DA
+        INTEGER, INTENT (IN) :: INCX, N
+! ..
+! .. Array Arguments ..
+        REAL (WP), INTENT (INOUT) :: DX(*)
+! ..
+! .. Local Scalars ..
+        INTEGER :: I, IX, M, MP1
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC MOD
+! ..
+! .. FIRST EXECUTABLE STATEMENT DSCAL_F90
+! ..
+        IF (N<=0) RETURN
+        IF (INCX==1) GOTO 10
+
+!       Code for increment not equal to 1.
+
+        IX = 1
+        IF (INCX<0) IX = (-N+1)*INCX + 1
+        DO I = 1, N
+          DX(IX) = DA*DX(IX)
+          IX = IX + INCX
+        END DO
+        RETURN
+
+!       Code for increment equal to 1.
+
+!       Clean-up loop so remaining vector length is a multiple of 5.
+
+10      M = MOD(N,5)
+        IF (M==0) GOTO 20
+        DX(1:M) = DA*DX(1:M)
+        IF (N<5) RETURN
+20      MP1 = M + 1
+        DO I = MP1, N, 5
+          DX(I) = DA*DX(I)
+          DX(I+1) = DA*DX(I+1)
+          DX(I+2) = DA*DX(I+2)
+          DX(I+3) = DA*DX(I+3)
+          DX(I+4) = DA*DX(I+4)
+        END DO
+        RETURN
+
+      END SUBROUTINE DSCAL_F90
+!_______________________________________________________________________
+
+      FUNCTION IDAMAX_F90(N,DX,INCX)
+! ..
+! Find the smallest index of that component of a vector
+! having the maximum magnitude.
+! ..
+!     Description of Parameters
+!     Input:
+!     N    - number of elements in input vector(s)
+!     DX   - real(wp) vector with N elements
+!     INCX - storage spacing between elements of DX
+!     Output:
+!     IDAMAX_F90 - smallest index (zero if N <= 0)
+!     Find smallest index of maximum magnitude of real(wp) DX.
+!     IDAMAX_F90 = first I, I = 1 to N, to maximize
+!     ABS(DX(IX+(I-1)*INCX)), where IX = 1 if INCX >= 0,
+!     else IX = 1+(1-N)*INCX.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Function Return Value ..
+        INTEGER :: IDAMAX_F90
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: INCX, N
+! ..
+! .. Array Arguments ..
+        REAL (WP), INTENT (IN) :: DX(*)
+! ..
+! .. Local Scalars ..
+        REAL (WP) :: DMAX, XMAG
+        INTEGER :: I, IX
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS
+! ..
+! .. FIRST EXECUTABLE STATEMENT IDAMAX_F90
+! ..
+        IDAMAX_F90 = 0
+        IF (N<=0) RETURN
+        IDAMAX_F90 = 1
+        IF (N==1) RETURN
+
+        IF (INCX==1) GOTO 10
+
+!       Code for increments not equal to 1.
+
+        IX = 1
+        IF (INCX<0) IX = (-N+1)*INCX + 1
+        DMAX = ABS(DX(IX))
+        IX = IX + INCX
+        DO I = 2, N
+          XMAG = ABS(DX(IX))
+          IF (XMAG>DMAX) THEN
+            IDAMAX_F90 = I
+            DMAX = XMAG
+          END IF
+          IX = IX + INCX
+        END DO
+        RETURN
+
+!       Code for increments equal to 1.
+
+10      DMAX = ABS(DX(1))
+        DO I = 2, N
+          XMAG = ABS(DX(I))
+          IF (XMAG>DMAX) THEN
+            IDAMAX_F90 = I
+            DMAX = XMAG
+          END IF
+        END DO
+        RETURN
+
+      END FUNCTION IDAMAX_F90
+! End of LINPACK and BLAS subroutines
+!_______________________________________________________________________
+
+! Beginning of MA28 subroutines
+! THIS IS A FORTRAN 90 TRANSLATION OF HSL'S F77 MA28. IT IS INTENDED
+! ONLY FOR USE IN CONJUNCTION WITH THE ODE SOLVER DVODE_F90 AND IS
+! NOT FUNCTIONAL IN A STANDALONE MANNER. PLEASE NOTE THAT MA28 IS NOT
+! PUBLIC DOMAIN SOFTWARE BUT HAS BEEN MADE AVAILABLE TO THE NUMERICAL
+! ANALYSIS COMMUNITY BY HARWELL. FOR OTHER USE PLEASE CONTACT HARWELL
+! AT HTTP://WWW.HSL-LIBRARY.COM OR CONTACT HSL@HYPROTECH.COM IF YOU
+! WISH TO SOLVE GENERAL SPARSE LINEAR SYSTEMS. IF YOU FIND A BUG OR
+! ENCOUNTER A PROBLEM WITH THE USE OF MA28 WITH DVODE.F90, PLEASE
+! CONTACT ONE OF THE AUTHORS OF DVODE_F90:
+!           G.D. Byrne (gbyrne@wi.rr.com)
+!           S. Thompson, thompson@radford.edu
+! NUMEROUS CHANGES WERE MADE IN CONNECTION WITH DVODE_F90 USAGE. THESE
+! INCLUDE USING METCALF'S CONVERTER TO TRANSLATE THE ORIGINAL f77 CODE
+! TO F90, MOVING INITIALIZATIONS TO THE DVODE_F90 PRIVATE SECTION,
+! ELIMINATION OF HOLLERITHS IN FORMAT STATEMENTS, ELIMINATION OF
+! BLOCKDATA, CHANGES IN ARITHMETICAL OPERATOR SYNTAX, AND CONVERSION
+! TO UPPER CASE. THIS VERSION OF MA28 IS INTENDED ONLY FOR USE WITH
+! DVODE_F90. PLEASE DO NOT MODIFY IT FOR ANY OTHER PURPOSE. IF YOU
+! HAVE LICENSED ACCESS TO THE HSL LIBRARY, AN ALTERNATE VERSION OF
+! DVODE_F90 BASED ON THE SUCCESSOR TO MA28, MA48, IS AVAILABLE FROM
+! THE AUTHORS. PLEASE NOTE THAT THE ALTERNATE VERSION OF DVODE_F90
+! IS NOT SELF CONTAINED SINCE MA48 IS NOT DISTRIBUTED WITH DVODE_F90.
+!******************************************************************
+!             *****MA28 COPYRIGHT NOTICE*****
+! COPYRIGHT (C) 2001 COUNCIL FOR THE CENTRAL LABORATORY
+!               OF THE RESEARCH COUNCILS
+! ALL RIGHTS RESERVED.
+
+! NONE OF THE COMMENTS IN THIS COPYRIGHT NOTICE BETWEEN THE LINES
+! OF ASTERISKS SHALL BE REMOVED OR ALTERED IN ANY WAY.
+
+! THIS PACKAGE IS INTENDED FOR COMPILATION WITHOUT MODIFICATION,
+! SO MOST OF THE EMBEDDED COMMENTS HAVE BEEN REMOVED.
+
+! ALL USE IS SUBJECT TO LICENCE. IF YOU NEED FURTHER CLARIFICATION,
+! PLEASE SEE HTTP://WWW.HSL-LIBRARY.COM OR CONTACT HSL@HYPROTECH.COM
+
+! PLEASE NOTE THAT:
+
+! 1. THE PACKAGES MAY ONLY BE USED FOR THE PURPOSES SPECIFIED IN THE
+!    LICENCE AGREEMENT AND MUST NOT BE COPIED BY THE LICENSEE FOR
+!    USE BY ANY OTHER PERSONS. USE OF THE PACKAGES IN ANY COMMERCIAL
+!    APPLICATION SHALL BE SUBJECT TO PRIOR WRITTEN AGREEMENT BETWEEN
+!    HYPROTECH UK LIMITED AND THE LICENSEE ON SUITABLE TERMS AND
+!    CONDITIONS, WHICH WILL INCLUDE FINANCIAL CONDITIONS.
+! 2. ALL INFORMATION ON THE PACKAGE IS PROVIDED TO THE LICENSEE ON
+!    THE UNDERSTANDING THAT THE DETAILS THEREOF ARE CONFIDENTIAL.
+! 3. ALL PUBLICATIONS ISSUED BY THE LICENSEE THAT INCLUDE RESULTS
+!    OBTAINED WITH THE HELP OF ONE OR MORE OF THE PACKAGES SHALL
+!    ACKNOWLEDGE THE USE OF THE PACKAGES. THE LICENSEE WILL NOTIFY
+!    HSL@HYPROTECH.COM OR HYPROTECH UK LIMITED OF ANY SUCH PUBLICATION.
+! 4. THE PACKAGES MAY BE MODIFIED BY OR ON BEHALF OF THE LICENSEE
+!    FOR SUCH USE IN RESEARCH APPLICATIONS BUT AT NO TIME SHALL SUCH
+!    PACKAGES OR MODIFICATIONS THEREOF BECOME THE PROPERTY OF THE
+!    LICENSEE. THE LICENSEE SHALL MAKE AVAILABLE FREE OF CHARGE TO THE
+!    COPYRIGHT HOLDER FOR ANY PURPOSE ALL INFORMATION RELATING TO
+!    ANY MODIFICATION.
+! 5. NEITHER COUNCIL FOR THE CENTRAL LABORATORY OF THE RESEARCH
+!    COUNCILS NOR HYPROTECH UK LIMITED SHALL BE LIABLE FOR ANY
+!    DIRECT OR CONSEQUENTIAL LOSS OR DAMAGE WHATSOEVER ARISING OUT OF
+!    THE USE OF PACKAGES BY THE LICENSEE.
+!******************************************************************
+
+      SUBROUTINE MA28AD(N,NZ,A,LICN,IRN,LIRN,ICN,U,IKEEP,IW,W,IFLAG)
+! ..
+! This subroutine performs the LU factorization of A.
+! ..
+! The parameters are as follows:
+! N     Order of matrix. Not altered by subroutine.
+! NZ    Number of non-zeros in input matrix. Not altered by subroutine.
+! A     Array of length LICN. Holds non-zeros of matrix
+!       on entry and non-zeros of factors on exit. Reordered by
+!       MA20AD and MC23AD and altered by MA30AD.
+! LICN  Length of arrays A and ICN. Not altered by subroutine.
+! IRN   Array of length LIRN. Holds row indices on input.
+!       Used as workspace by MA30AD to hold column orientation of
+!       matrix.
+! LIRN  Length of array IRN. Not altered by the subroutine.
+! ICN   Array of length LICN. Holds column indices on entry
+!       and column indices of decomposed matrix on exit. Reordered
+!       by MA20AD and MC23AD and altered by MA30AD.
+! U     Variable set by user to control bias towards numeric or
+!       sparsity pivoting. U = 1.0 gives partial pivoting
+!       while U = 0. does not check multipliers at all. Values of U
+!       greater than one are treated as one while negative values
+!       are treated as zero. Not altered by subroutine.
+! IKEEP Array of length 5*N used as workspace by MA28AD.
+!       (See later comments.) It is not required to be set on entry
+!       and, on exit, it contains information about the decomposition.
+!       It should be preserved between this call and subsequent calls
+!       to MA28BD or MA30CD.
+!       IKEEP(I,1),I = 1,N holds the total length of the part of row
+!       I in the diagonal block.
+!       Row IKEEP(I,2),I = 1,N of the input matrix is the Ith row in
+!       pivot order.
+!       Column IKEEP(I,3),I = 1,N of the input matrix is the Ith
+!       Column in pivot order.
+!       IKEEP(I,4),I = 1,N holds the length of the part of row I in
+!       the L part of the LU decomposition.
+!       IKEEP(I,5),I = 1,N holds the length of the part of row I in
+!       the off-diagonal blocks. If there is only one diagonal block,
+!       IKEEP(1,5) will be set to -1.
+! IW    Array of length 8*N. If the option NSRCH <= N is used, then
+!       the length of array IW can be reduced to 7*N.
+! W     Array length N. Used by MC24AD both as workspace and to return
+!       growth estimate in W(1). The use of this array by MA28AD is
+!       thus optional depending on logical variable GROW.
+! IFLAG Variable used as error flag by subroutine. A positive or
+!       zero value on exit indicates success. Possible negative
+!       values are -1 through -14.
+
+! Private Variable Information.
+! LP, MP Default value 6 (line printer). Unit number for error
+!     messages and duplicate element warning, respectively.
+! NLP, MLP INTEGER. Unit number for messages from MA30AD and
+!     MC23AD. Set by MA28AD to the value of LP.
+! LBLOCK Logical variable with default value .TRUE. If .TRUE.,
+!     MC23AD is used to first permute the matrix to block lower
+!     triangular form.
+! GROW Logical variable with default value .TRUE. If .TRUE., then
+!     an estimate of the increase in size of matrix elements during
+!     LU decomposition is given by MC24AD.
+! EPS, RMIN, RESID. Variables not referenced by MA28AD.
+! IRNCP, ICNCP INTEGER. Set to number of compresses on arrays IRN
+!     and ICN/A, respectively.
+! MINIRN, MINICN INTEGER. Minimum length of arrays IRN and ICN/A,
+!     respectively, for success on future runs.
+! IRANK INTEGER. Estimated rank of matrix.
+! MIRNCP, MICNCP, MIRANK, MIRN, MICN INTEGER. Variables used to
+!     communicate between MA30FD and MA28FD values of
+!     abovenamed variables with somewhat similar names.
+! ABORT1, ABORT2 LOGICAL. Variables with default value .TRUE.
+!     If .FALSE., then decomposition will be performed even
+!     if the matrix is structurally or numerically singular,
+!     respectively.
+! ABORTA, ABORTB LOGICAL. Variables used to communicate values
+!     of ABORT1 and ABORT2 to MA30AD.
+! ABORT Logical variable used to communicate value of ABORT1
+!     to MC23AD.
+! ABORT3 Logical variable. Not referenced by MA28AD.
+! IDISP Array of length 2. Used to communicate information
+!     on decomposition between this call to MA28AD and subsequent
+!     calls to MA28BD and MA30CD. On exit, IDISP(1) and
+!     IDISP(2) indicate position in arrays A and ICN of the
+!     first and last elements in the LU decomposition of the
+!     diagonal blocks, respectively.
+! NUMNZ Structural rank of matrix.
+! NUM   Number of diagonal blocks.
+! LARGE Size of largest diagonal block.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        REAL (WP) :: U
+        INTEGER :: IFLAG, LICN, LIRN, N, NZ
+! ..
+! .. Array Arguments ..
+        REAL (WP) :: A(LICN), W(N)
+        INTEGER :: ICN(LICN), IKEEP(N,5), IRN(LIRN), IW(N,8)
+! ..
+! .. Local Scalars ..
+        REAL (WP) :: UPRIV
+        INTEGER :: I, I1, IEND, II, J, J1, J2, JAY, JJ, KNUM, LENGTH, MOVE, &
+          NEWJ1, NEWPOS
+        CHARACTER (80) :: MSG
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, MAX
+! ..
+! .. FIRST EXECUTABLE STATEMENT MA28AD
+! ..
+!       Check that this call was made from DVODE_F90 and, if not, stop.
+        IF (.NOT.OK_TO_CALL_MA28) THEN
+          MSG = 'This version of MA28 may be used only in conjunction with DVODE_F90.'
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = 'Please refer to the following HSL copyright notice for MA28.'
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = '******************************************************************     '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = '             *****MA28 COPYRIGHT NOTICE*****                           '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = ' COPYRIGHT (C) 2001 COUNCIL FOR THE CENTRAL LABORATORY                 '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = '               OF THE RESEARCH COUNCILS                                '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = ' ALL RIGHTS RESERVED.                                                  '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = ' NONE OF THE COMMENTS IN THIS COPYRIGHT NOTICE BETWEEN THE LINES       '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = ' OF ASTERISKS SHALL BE REMOVED OR ALTERED IN ANY WAY.                  '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = ' THIS PACKAGE IS INTENDED FOR COMPILATION WITHOUT MODIFICATION,        '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = ' SO MOST OF THE EMBEDDED COMMENTS HAVE BEEN REMOVED.                   '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = ' ALL USE IS SUBJECT TO LICENCE. IF YOU NEED FURTHER CLARIFICATION,     '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = ' PLEASE SEE HTTP://WWW.HSL-LIBRARY.COM OR CONTACT HSL@HYPROTECH.COM    '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = ' PLEASE NOTE THAT:                                                     '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = ' 1. THE PACKAGES MAY ONLY BE USED FOR THE PURPOSES SPECIFIED IN THE    '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = '    LICENCE AGREEMENT AND MUST NOT BE COPIED BY THE LICENSEE FOR       '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = '    USE BY ANY OTHER PERSONS. USE OF THE PACKAGES IN ANY COMMERCIAL    '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = '    APPLICATION SHALL BE SUBJECT TO PRIOR WRITTEN AGREEMENT BETWEEN    '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = '    HYPROTECH UK LIMITED AND THE LICENSEE ON SUITABLE TERMS AND        '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = '    CONDITIONS, WHICH WILL INCLUDE FINANCIAL CONDITIONS.               '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = ' 2. ALL INFORMATION ON THE PACKAGE IS PROVIDED TO THE LICENSEE ON      '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = '    THE UNDERSTANDING THAT THE DETAILS THEREOF ARE CONFIDENTIAL.       '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = ' 3. ALL PUBLICATIONS ISSUED BY THE LICENSEE THAT INCLUDE RESULTS       '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = '    OBTAINED WITH THE HELP OF ONE OR MORE OF THE PACKAGES SHALL        '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = '    ACKNOWLEDGE THE USE OF THE PACKAGES. THE LICENSEE WILL NOTIFY      '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = '    HSL@HYPROTECH.COM OR HYPROTECH UK LIMITED OF ANY SUCH PUBLICATION. '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = ' 4. THE PACKAGES MAY BE MODIFIED BY OR ON BEHALF OF THE LICENSEE       '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = '    FOR SUCH USE IN RESEARCH APPLICATIONS BUT AT NO TIME SHALL SUCH    '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = '    PACKAGES OR MODIFICATIONS THEREOF BECOME THE PROPERTY OF THE       '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = '    LICENSEE. THE LICENSEE SHALL MAKE AVAILABLE FREE OF CHARGE TO THE  '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = '    COPYRIGHT HOLDER FOR ANY PURPOSE ALL INFORMATION RELATING TO       '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = '    ANY MODIFICATION.                                                  '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = ' 5. NEITHER COUNCIL FOR THE CENTRAL LABORATORY OF THE RESEARCH         '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = '    COUNCILS NOR HYPROTECH UK LIMITED SHALL BE LIABLE FOR ANY          '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = '    DIRECT OR CONSEQUENTIAL LOSS OR DAMAGE WHATSOEVER ARISING OUT OF   '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = '    THE USE OF PACKAGES BY THE LICENSEE.                               '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = '******************************************************************     '
+          CALL XERRDV(MSG,1770,2,0,0,0,0,ZERO,ZERO)
+        END IF
+
+!       Some initialization and transfer of information between
+!       common blocks (see earlier comments).
+        IFLAG = 0
+        ABORTA = ABORT1
+        ABORTB = ABORT2
+        ABORT = ABORT1
+        MLP = LP
+        NLP = LP
+        TOL1 = TOL
+        LBIG1 = LBIG
+        NSRCH1 = NSRCH
+!       UPRIV private copy of U is used in case it is outside
+!       range zero to one and is thus altered by MA30AD.
+        UPRIV = U
+!       Simple data check on input variables and array dimensions.
+        IF (N>0) GOTO 10
+        IFLAG = -8
+        IF (LP/=0) WRITE (LP,90000) N
+        GOTO 170
+10      IF (NZ>0) GOTO 20
+        IFLAG = -9
+        IF (LP/=0) WRITE (LP,90001) NZ
+        GOTO 170
+20      IF (LICN>=NZ) GOTO 30
+        IFLAG = -10
+        IF (LP/=0) WRITE (LP,90002) LICN
+        GOTO 170
+30      IF (LIRN>=NZ) GOTO 40
+        IFLAG = -11
+        IF (LP/=0) WRITE (LP,90003) LIRN
+        GOTO 170
+
+!       Data check to see if all indices lie between 1 and N.
+40      DO 50 I = 1, NZ
+          IF (IRN(I)>0 .AND. IRN(I)<=N .AND. ICN(I)>0 .AND. ICN(I)<=N) &
+            GOTO 50
+          IF (IFLAG==0 .AND. LP/=0) WRITE (LP,90004)
+          IFLAG = -12
+          IF (LP/=0) WRITE (LP,90005) I, A(I), IRN(I), ICN(I)
+50      END DO
+        IF (IFLAG<0) GOTO 180
+
+!       Sort matrix into row order.
+        CALL MC20AD(N,NZ,A,ICN,IW(1,1),IRN,0)
+!       Part of IKEEP is used here as a work-array. IKEEP(I,2) is
+!       the last row to have a non-zero in column I. IKEEP(I,3)
+!       is the off-set of column I from the start of the row.
+        IKEEP(1:N,2) = 0
+        IKEEP(1:N,1) = 0
+
+!       Check for duplicate elements summing any such entries
+!       and printing a warning message on unit MP.
+!       MOVE is equal to the number of duplicate elements found.
+        MOVE = 0
+!       The loop also calculates the largest element in the matrix,
+!       THEMAX.
+        THEMAX = ZERO
+!       J1 is position in arrays of first non-zero in row.
+        J1 = IW(1,1)
+        DO 90 I = 1, N
+          IEND = NZ + 1
+          IF (I/=N) IEND = IW(I+1,1)
+          LENGTH = IEND - J1
+          IF (LENGTH==0) GOTO 90
+          J2 = IEND - 1
+          NEWJ1 = J1 - MOVE
+          DO 80 JJ = J1, J2
+            J = ICN(JJ)
+            THEMAX = MAX(THEMAX,ABS(A(JJ)))
+            IF (IKEEP(J,2)==I) GOTO 70
+!           First time column has ocurred in current row.
+            IKEEP(J,2) = I
+            IKEEP(J,3) = JJ - MOVE - NEWJ1
+            IF (MOVE==0) GOTO 80
+!           Shift necessary because of previous duplicate element.
+            NEWPOS = JJ - MOVE
+            A(NEWPOS) = A(JJ)
+            ICN(NEWPOS) = ICN(JJ)
+            GOTO 80
+!           Duplicate element.
+70          MOVE = MOVE + 1
+            LENGTH = LENGTH - 1
+            JAY = IKEEP(J,3) + NEWJ1
+            IF (MP/=0) WRITE (MP,90006) I, J, A(JJ)
+            A(JAY) = A(JAY) + A(JJ)
+            THEMAX = MAX(THEMAX,ABS(A(JAY)))
+80        END DO
+          IKEEP(I,1) = LENGTH
+          J1 = IEND
+90      END DO
+
+!       KNUM is actual number of non-zeros in matrix with any multiple
+!       entries counted only once.
+        KNUM = NZ - MOVE
+        IF (.NOT.LBLOCK) GOTO 100
+
+!       Perform block triangularisation.
+        CALL MC23AD(N,ICN,A,LICN,IKEEP(1,1),IDISP,IKEEP(1,2),IKEEP(1,3), &
+          IKEEP(1,5),IW(1,3),IW)
+        IF (IDISP(1)>0) GOTO 130
+        IFLAG = -7
+        IF (IDISP(1)==-1) IFLAG = -1
+        IF (LP/=0) WRITE (LP,90007)
+        GOTO 170
+
+!       Block triangularization not requested.
+!       Move structure to end of data arrays in preparation for MA30AD.
+!       Also set LENOFF(1) to -1 and set permutation arrays.
+100     DO I = 1, KNUM
+          II = KNUM - I + 1
+          NEWPOS = LICN - I + 1
+          ICN(NEWPOS) = ICN(II)
+          A(NEWPOS) = A(II)
+        END DO
+        IDISP(1) = 1
+        IDISP(2) = LICN - KNUM + 1
+        DO I = 1, N
+          IKEEP(I,2) = I
+          IKEEP(I,3) = I
+        END DO
+        IKEEP(1,5) = -1
+130     IF (LBIG) BIG1 = THEMAX
+        IF (NSRCH<=N) GOTO 140
+
+!       Perform LU decomposition on diagonal blocks.
+        CALL MA30AD(N,ICN,A,LICN,IKEEP(1,1),IKEEP(1,4),IDISP,IKEEP(1,2),       &
+          IKEEP(1,3),IRN,LIRN,IW(1,2),IW(1,3),IW(1,4),IW(1,5),IW(1,6),IW(1,7), &
+          IW(1,8),IW,UPRIV,IFLAG)
+        GOTO 150
+!       This call if used if NSRCH has been set less than or equal to N.
+!       In this case, two integer work arrays of length can be saved.
+140     CALL MA30AD(N,ICN,A,LICN,IKEEP(1,1),IKEEP(1,4),IDISP,IKEEP(1,2),       &
+          IKEEP(1,3),IRN,LIRN,IW(1,2),IW(1,3),IW(1,4),IW(1,5),IW,IW,IW(1,6),IW,&
+          UPRIV,IFLAG)
+
+!       Transfer private variable information.
+!150    MINIRN = MAX(MIRN,NZ)
+!       MINICN = MAX(MICN,NZ)
+150     MINIRN = MAX(MINIRN,NZ)
+        MINICN = MAX(MINICN,NZ)
+!       IRNCP = MIRNCP
+!       ICNCP = MICNCP
+!       IRANK = MIRANK
+!       NDROP = NDROP1
+        IF (LBIG) BIG = BIG1
+        IF (IFLAG>=0) GOTO 160
+        IF (LP/=0) WRITE (LP,90008)
+        GOTO 170
+
+!       Reorder off-diagonal blocks according to pivot permutation.
+160     I1 = IDISP(1) - 1
+        IF (I1/=0) CALL MC22AD(N,ICN,A,I1,IKEEP(1,5),IKEEP(1,2), &
+          IKEEP(1,3),IW,IRN)
+        I1 = IDISP(1)
+        IEND = LICN - I1 + 1
+
+!       Optionally calculate element growth estimate.
+        IF (GROW) CALL MC24AD(N,ICN,A(I1),IEND,IKEEP,IKEEP(1,4),W)
+!       Increment growth estimate by original maximum element.
+        IF (GROW) W(1) = W(1) + THEMAX
+        IF (GROW .AND. N>1) W(2) = THEMAX
+!       Set flag if the only error is due to duplicate elements.
+        IF (IFLAG>=0 .AND. MOVE/=0) IFLAG = -14
+        GOTO 180
+170     IF (LP/=0) WRITE (LP,90009)
+180     RETURN
+90000   FORMAT (' N is out of range = ',I10)
+90001   FORMAT (' NZ is non positive = ',I10)
+90002   FORMAT (' LICN is too small = ',I10)
+90003   FORMAT (' LIRN is too small = ',I10)
+90004   FORMAT (' Error return from MA28AD because indices found out', &
+          ' of range')
+90005   FORMAT (1X,I6,'The element with value ',1P,D22.14, &
+          ' is out of range with indices ',I8,',',I8)
+90006   FORMAT (' Duplicate element in position ',I8,',',I8,' with value ',1P, &
+          D22.14)
+90007   FORMAT (' Error return from MC23AD')
+90008   FORMAT (' Error return from MA30AD')
+90009   FORMAT (' Error return from MA28AD')
+
+      END SUBROUTINE MA28AD
+!_______________________________________________________________________
+
+      SUBROUTINE MA28BD(N,NZ,A,LICN,IVECT,JVECT,ICN,IKEEP,IW,W,IFLAG)
+! ..
+! This subroutine factorizes a matrix of a similar sparsity
+! pattern to that previously factorized by MA28AD.
+! ..
+! The parameters are as follows:
+! N            Order of matrix. Not altered by subroutine.
+! NZ           Number of non-zeros in input matrix. Not
+!              altered by subroutine.
+! A            Array of length LICN. Holds non-zeros of
+!              matrix on entry and non-zeros of factors on exit.
+!              Reordered by MA28DD and altered by MA30BD.
+! LICN         Length of arrays A and ICN. Not altered by
+!              subroutine.
+! IVECT, JVECT Arrays of length NZ. Hold row and column
+!              indices of non-zeros, respectively. Not altered
+!              by subroutine.
+! ICN          Array of length LICN. Same array as output
+!              from MA28AD. Unchanged by MA28BD.
+! IKEEP        Array of length 5*N. Same array as output
+!              from MA28AD. Unchanged by MA28BD.
+! IW           Array length 5*N. Used as workspace by
+!              MA28DD and MA30BD.
+! W            Array of length N. Used as workspace by
+!              MA28DD, MA30BD and (optionally) MC24AD.
+! IFLAG        Integer used as error flag, with positive
+!              or zero value indicating success.
+
+! Private Variable Information.
+! Unless otherwise stated private variables are as in MA28AD.
+! Those variables referenced by MA28BD are mentioned below.
+! LP, MP     Integers used as in MA28AD as unit number for error
+!            and warning messages, respectively.
+! NLP        Integer variable used to give value of LP to MA30ED.
+! EPS        MA30BD will output a positive value
+!            for IFLAG if any modulus of the ratio of pivot element
+!            to the largest element in its row (U part only) is less
+!            than EPS (unless EPS is greater than 1.0 when no action
+!            takes place).
+! RMIN       Variable equal to the value of this minimum ratio in
+!            cases where EPS is less than or equal to 1.0.
+! MEPS,MRMIN Variables used by the subroutine to communicate between
+!            MA28FD and MA30GD.
+! IDISP      Integer array of length 2. The same as that used by
+!            MA28AD. Unchanged by MA28BD.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER :: IFLAG, LICN, N, NZ
+! ..
+! .. Array Arguments ..
+        REAL (WP) :: A(LICN), W(N)
+        INTEGER :: ICN(LICN), IKEEP(N,5), IVECT(NZ), IW(N,5), JVECT(NZ)
+! ..
+! .. Local Scalars ..
+        INTEGER :: I1, IDUP, IEND
+! ..
+! .. FIRST EXECUTABLE STATEMENT MA28BD
+! ..
+!       Check to see if elements were dropped in previous MA28AD call.
+        IF (NDROP==0) GOTO 10
+        IFLAG = -15
+        IF (LP/=0) WRITE (LP,90000) IFLAG, NDROP
+        GOTO 70
+10      IFLAG = 0
+        MEPS = EPS
+        NLP = LP
+!       Simple data check on variables.
+        IF (N>0) GOTO 20
+        IFLAG = -11
+        IF (LP/=0) WRITE (LP,90001) N
+        GOTO 60
+20      IF (NZ>0) GOTO 30
+        IFLAG = -10
+        IF (LP/=0) WRITE (LP,90002) NZ
+        GOTO 60
+30      IF (LICN>=NZ) GOTO 40
+        IFLAG = -9
+        IF (LP/=0) WRITE (LP,90003) LICN
+        GOTO 60
+
+40      CALL MA28DD(N,A,LICN,IVECT,JVECT,NZ,ICN,IKEEP(1,1),IKEEP(1,4), &
+          IKEEP(1,5),IKEEP(1,2),IKEEP(1,3),IW(1,3),IW,W(1),IFLAG)
+!       THEMAX is largest element in matrix.
+        THEMAX = W(1)
+        IF (LBIG) BIG1 = THEMAX
+!       IDUP equals one if there were duplicate elements, zero otherwise.
+        IDUP = 0
+        IF (IFLAG==(N+1)) IDUP = 1
+        IF (IFLAG<0) GOTO 60
+
+!       Perform row Gauss elimination on the structure received from MA28DD.
+        CALL MA30BD(N,ICN,A,LICN,IKEEP(1,1),IKEEP(1,4),IDISP,IKEEP(1,2), &
+          IKEEP(1,3),W,IW,IFLAG)
+
+!       Transfer private variable information.
+        IF (LBIG) BIG1 = BIG
+!       RMIN = MRMIN
+        IF (IFLAG>=0) GOTO 50
+        IFLAG = -2
+        IF (LP/=0) WRITE (LP,90004)
+        GOTO 60
+
+!       Optionally calculate the growth parameter.
+50      I1 = IDISP(1)
+        IEND = LICN - I1 + 1
+        IF (GROW) CALL MC24AD(N,ICN,A(I1),IEND,IKEEP,IKEEP(1,4),W)
+!       Increment estimate by largest element in input matrix.
+        IF (GROW) W(1) = W(1) + THEMAX
+        IF (GROW .AND. N>1) W(2) = THEMAX
+!       Set flag if the only error is due to duplicate elements.
+        IF (IDUP==1 .AND. IFLAG>=0) IFLAG = -14
+        GOTO 70
+60      IF (LP/=0) WRITE (LP,90005)
+70      RETURN
+90000   FORMAT (' Error return from MA28BD with IFLAG = ',I4/I7, &
+          ' Entries dropped from structure by MA28AD')
+90001   FORMAT (' N is out of range = ',I10)
+90002   FORMAT (' NZ is non positive = ',I10)
+90003   FORMAT (' LICN is too small = ',I10)
+90004   FORMAT (' Error return from MA30BD')
+90005   FORMAT (' + Error return from MA28BD')
+
+      END SUBROUTINE MA28BD
+!_______________________________________________________________________
+
+      SUBROUTINE MA28DD(N,A,LICN,IVECT,JVECT,NZ,ICN,LENR,LENRL,LENOFF, &
+        IP,IQ,IW1,IW,W1,IFLAG)
+! ..
+! This subroutine need never be called by the user directly. It sorts
+! the user's matrix into the structure of the decomposed form and checks
+! for the presence of duplicate entries or non-zeros lying outside the
+! sparsity pattern of the decomposition. It also calculates the largest
+! element in the input matrix.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        REAL (WP) :: W1
+        INTEGER :: IFLAG, LICN, N, NZ
+! ..
+! .. Array Arguments ..
+        REAL (WP) :: A(LICN)
+        INTEGER :: ICN(LICN), IP(N), IQ(N), IVECT(NZ), IW(N,2), IW1(N,3), &
+          JVECT(NZ), LENOFF(N), LENR(N), LENRL(N)
+! ..
+! .. Local Scalars ..
+        REAL (WP) :: AA
+        INTEGER :: I, IBLOCK, IDISP2, IDUMMY, II, INEW, IOLD, J1, J2, JCOMP, &
+          JDUMMY, JJ, JNEW, JOLD, MIDPT
+        LOGICAL :: BLOCKL
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, IABS, MAX
+! ..
+! .. FIRST EXECUTABLE STATEMENT MA28DD
+! ..
+        BLOCKL = LENOFF(1) >= 0
+!       IW1(I,3) is set to the block in which row I lies and the
+!       inverse permutations to IP and IQ are set in IW1(:,1) and
+!       IW1(:,2), respectively.
+!       Pointers to beginning of the part of row I in diagonal and
+!       off-diagonal blocks are set in IW(I,2) and IW(I,1),
+!       respectively.
+        IBLOCK = 1
+        IW(1,1) = 1
+        IW(1,2) = IDISP(1)
+        DO 10 I = 1, N
+          IW1(I,3) = IBLOCK
+          IF (IP(I)<0) IBLOCK = IBLOCK + 1
+          II = IABS(IP(I)+0)
+!         II = IABS(IP(I))
+          IW1(II,1) = I
+          JJ = IQ(I)
+          JJ = IABS(JJ)
+          IW1(JJ,2) = I
+          IF (I==1) GOTO 10
+          IF (BLOCKL) IW(I,1) = IW(I-1,1) + LENOFF(I-1)
+          IW(I,2) = IW(I-1,2) + LENR(I-1)
+10      END DO
+!       Place each non-zero in turn into its correct location in
+!       the A/ICN array.
+        IDISP2 = IDISP(2)
+        DO 170 I = 1, NZ
+!         Necessary to avoid reference to unassigned element of ICN.
+          IF (I>IDISP2) GOTO 20
+          IF (ICN(I)<0) GOTO 170
+20        IOLD = IVECT(I)
+          JOLD = JVECT(I)
+          AA = A(I)
+!         This is a dummy loop for following a chain of interchanges.
+!         It will be executed NZ TIMES in total.
+          DO IDUMMY = 1, NZ
+!           Perform some validity checks on IOLD and JOLD.
+            IF (IOLD<=N .AND. IOLD>0 .AND. JOLD<=N .AND. JOLD>0) GOTO 30
+            IF (LP/=0) WRITE (LP,90000) I, A(I), IOLD, JOLD
+            IFLAG = -12
+            GOTO 180
+30          INEW = IW1(IOLD,1)
+            JNEW = IW1(JOLD,2)
+!           Are we in a valid block and is it diagonal or off-diagonal?
+!           IF (IW1(INEW,3)-IW1(JNEW,3)) 40, 60, 50
+!40         IFLAG = -13
+            IF (IW1(INEW,3)-IW1(JNEW,3) == 0) GOTO 60
+            IF (IW1(INEW,3)-IW1(JNEW,3) > 0) GOTO 50
+            IFLAG = -13
+            IF (LP/=0) WRITE (LP,90001) IOLD, JOLD
+            GOTO 180
+50          J1 = IW(INEW,1)
+            J2 = J1 + LENOFF(INEW) - 1
+            GOTO 110
+!           Element is in diagonal block.
+60          J1 = IW(INEW,2)
+            IF (INEW>JNEW) GOTO 70
+            J2 = J1 + LENR(INEW) - 1
+            J1 = J1 + LENRL(INEW)
+            GOTO 110
+70          J2 = J1 + LENRL(INEW)
+!           Binary search of ordered list. Element in L part of row.
+            DO 100 JDUMMY = 1, N
+              MIDPT = (J1+J2)/2
+              JCOMP = IABS(ICN(MIDPT)+0)
+!             JCOMP = IABS(ICN(MIDPT))
+!             IF (JNEW-JCOMP) 80, 130, 90
+!80           J2 = MIDPT
+              IF (JNEW-JCOMP == 0) GOTO 130
+              IF (JNEW-JCOMP > 0) GOTO 90
+              J2 = MIDPT
+              GOTO 100
+90            J1 = MIDPT
+100         END DO
+            IFLAG = -13
+            IF (LP/=0) WRITE (LP,90002) IOLD, JOLD
+            GOTO 180
+!           Linear search. Element in L part of row or off-diagonal blocks.
+110         DO MIDPT = J1, J2
+              IF (IABS(ICN(MIDPT)+0)==JNEW) GOTO 130
+!             IF (IABS(ICN(MIDPT))==JNEW) GOTO 130
+            END DO
+            IFLAG = -13
+            IF (LP/=0) WRITE (LP,90002) IOLD, JOLD
+            GOTO 180
+!           Equivalent element of ICN is in position MIDPT.
+130         IF (ICN(MIDPT)<0) GOTO 160
+            IF (MIDPT>NZ .OR. MIDPT<=I) GOTO 150
+            W1 = A(MIDPT)
+            A(MIDPT) = AA
+            AA = W1
+            IOLD = IVECT(MIDPT)
+            JOLD = JVECT(MIDPT)
+            ICN(MIDPT) = -ICN(MIDPT)
+          END DO
+150       A(MIDPT) = AA
+          ICN(MIDPT) = -ICN(MIDPT)
+          GOTO 170
+160       A(MIDPT) = A(MIDPT) + AA
+!        Set flag for duplicate elements.
+          iflag = n + 1
+170     END DO
+!       Reset ICN array and zero elements in LU but not in A.
+!       Also calculate the maximum element of A.
+180     W1 = ZERO
+        DO 200 I = 1, IDISP2
+          IF (ICN(I)<0) GOTO 190
+          A(I) = ZERO
+          GOTO 200
+190       ICN(I) = -ICN(I)
+          W1 = MAX(W1,ABS(A(I)))
+200     END DO
+        RETURN
+90000   FORMAT (' Element ',I6,' with value ',D22.14,' has indices ',I8, &
+          ','/I8,' indices out of range')
+90001   FORMAT (' Non-zero ',I7,',',I6,' in zero off-diagonal',' block')
+90002   FORMAT (' Element ',I6,',',I6,' was not in LU pattern')
+
+      END SUBROUTINE MA28DD
+!_______________________________________________________________________
+
+      SUBROUTINE MA28CD(N,A,LICN,ICN,IKEEP,RHS,W,MTYPE)
+! ..
+! This subroutine uses the factors from MA28AD or MA28BD to solve a
+! system of equations without iterative refinement.
+! ..
+! The parameters are:
+! N     Order of matrix. Not altered by subroutine.
+! A     array of length LICN. the same array as
+!       was used in the most recent call to MA28AD or MA28BD.
+! LICN  Length of arrays A and ICN. Not altered by subroutine.
+! ICN   Array of length LICN. Same array as output from
+!       MA28AD. Unchanged by MA30CD.
+! IKEEP Array of length 5*N. Same array as output from
+!       MA28AD. Unchanged by MA30CD.
+! RHS   Array of length N. On entry, it holds the
+!       right hand side, on exit, the solution vector.
+! W     Array of length N. Used as workspace by MA30CD.
+! MTYPE Integer used to tell MA30CD to solve the direct
+!       equation (MTYPE = 1) or its transpose (MTYPE /= 1).
+
+! Private Variable Information.
+! Unless otherwise stated private variables are as in MA28AD.
+! Those variables referenced by MA30CD are mentioned below.
+! RESID   Variable which returns maximum residual of
+!         equations where pivot was zero.
+! MRESID  Variable used by MA30CD to communicate between
+!         MA28FD and MA30HD.
+! IDISP   Integer array of length 2. The same as that used
+!         by MA28AD. Unchanged by MA28BD.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER :: LICN, MTYPE, N
+! ..
+! .. Array Arguments ..
+        REAL (WP) :: A(LICN), RHS(N), W(N)
+        INTEGER :: ICN(LICN), IKEEP(N,5)
+! ..
+! .. FIRST EXECUTABLE STATEMENT MA28CD
+! ..
+!       This call performs the solution of the set of equations.
+        CALL MA30CD(N,ICN,A,LICN,IKEEP(1,1),IKEEP(1,4),IKEEP(1,5),IDISP, &
+          IKEEP(1,2),IKEEP(1,3),RHS,W,MTYPE)
+!       Transfer private variable information.
+        RESID = MRESID
+        RETURN
+
+      END SUBROUTINE MA28CD
+!_______________________________________________________________________
+
+      SUBROUTINE MA28ID(N,NZ,AORG,IRNORG,ICNORG,LICN,A,ICN,IKEEP,RHS, &
+        X,R,W,MTYPE,PREC,IFLAG)
+! ..
+! This subroutine uses the factors from an earlier call to MA28AD or
+! MA28BD to solve the system of equations with iterative refinement.
+! ..
+! The parameters are:
+! N      Order of the matrix. Not altered by the subroutine.
+! NZ     Number of entries in the original matrix. Not altered by
+!        the subroutine.
+!        For this entry the original matrix must have been saved in
+!        AORG, IRNORG, ICNORG where entry AORG(K) is in row IRNORG(K)
+!        and column ICNORG(K),K = 1,...,NZ. Information about the
+!        factors of A is communicated to this subroutine via the
+!        parameters LICN, A, ICN and IKEEP where:
+! AORG   Array of length NZ. Not altered by MA28ID.
+! IRNORG Array of length NZ. Not altered by MA28ID.
+! ICNORG Array of length NZ. Not altered by MA28ID.
+! LICN   Length of arrays A and ICN. Not altered by the subroutine.
+! A      Array of length LICN. It must be unchanged since the
+!        last call to MA28AD or MA28BD. Not altered by the
+!        subroutine.
+! ICN, IKEEP are the arrays (of lengths LICN and 5*N, respectively)
+!        of the same names as in the previous all to MA28AD. They
+!        should be unchanged since this earlier call and they are
+!        not altered by MA28ID.
+! The other parameters are as follows:
+! RHS    Array of length N. The user must set RHS(I) to contain
+!        the value of the Ith component of the right hand side.
+!        Not altered by MA28ID.
+! X      Array of length N. If an initial guess of the solution
+!        is given (ISTART equal to 1), then the user must set X(I)
+!        to contain the value of the Ith component of the estimated
+!        solution. On exit, X(I) contains the Ith component of the
+!        solution vector.
+! R      Array of length N. It need not be set on entry. On exit,
+!        R(I) contains the Ith component of an estimate of the error
+!        if MAXIT is greater than 0.
+! W      Array of length N. Used as workspace by MA28ID.
+! MTYPE  Must be set to determine whether MA28ID will solve A*X = RHS
+!        (MTYPE = 1) or AT*X = RHS (MTYPE /= 1). Not altered by MA28ID.
+! PREC   Should be set by the user to the relative accuracy required.
+!        The iterative refinement will terminate if the magnitude of
+!        the largest component of the estimated error relative to the
+!        largest component in the solution is less than PREC.
+!        Not altered by MA28ID.
+! IFLAG  Diagnostic flag which will be set to zero on successful
+!        exit from MA28ID. Otherwise it will have a non-zero value.
+!        The non-zero value IFLAG can have on exit from MA28ID are
+!        -16 indicating that more than MAXIT iteartions are required.
+!        -17 indicating that more convergence was too slow.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        REAL (WP) :: PREC
+        INTEGER :: IFLAG, LICN, MTYPE, N, NZ
+! ..
+! .. Array Arguments ..
+        REAL (WP) :: A(LICN), AORG(NZ), R(N), RHS(N), W(N), X(N)
+        INTEGER :: ICN(LICN), ICNORG(NZ), IKEEP(N,5), IRNORG(NZ)
+! ..
+! .. Local Scalars ..
+        REAL (WP) :: CONVER, D, DD
+        INTEGER :: I, ITERAT, NCOL, NROW
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, MAX
+! ..
+! .. FIRST EXECUTABLE STATEMENT MA28ID
+! ..
+!       Initialization of NOITER, ERRMAX, and IFLAG.
+        NOITER = 0
+        ERRMAX = ZERO
+        IFLAG = 0
+
+!       Jump if a starting vector has been supplied by the user.
+
+        IF (ISTART==1) GOTO 20
+
+!       Make a copy of the right-hand side vector.
+
+        X(1:N) = RHS(1:N)
+
+!       Find the first solution.
+
+        CALL MA28CD(N,A,LICN,ICN,IKEEP,X,W,MTYPE)
+
+!       Stop the computations if MAXIT = 0.
+
+20      IF (MAXIT==0) GOTO 160
+
+!       Calculate the max-norm of the first solution.
+
+        DD = 0.0
+        DO I = 1, N
+          DD = MAX(DD,ABS(X(I)))
+        END DO
+        DXMAX = DD
+
+!       Begin the iterative process.
+
+        DO 120 ITERAT = 1, MAXIT
+          D = DD
+
+!         Calculate the residual vector.
+
+          R(1:N) = RHS(1:N)
+          IF (MTYPE==1) GOTO 60
+          DO I = 1, NZ
+            NROW = IRNORG(I)
+            NCOL = ICNORG(I)
+            R(NCOL) = R(NCOL) - AORG(I)*X(NROW)
+          END DO
+          GOTO 80
+!         MTYPE = 1.
+60        DO I = 1, NZ
+            NROW = IRNORG(I)
+            NCOL = ICNORG(I)
+            R(NROW) = R(NROW) - AORG(I)*X(NCOL)
+          END DO
+80        DRES = 0.0
+
+!         Find the max-norm of the residual vector.
+
+          DO I = 1, N
+            DRES = MAX(DRES,ABS(R(I)))
+          END DO
+
+!         Stop the calculations if the max-norm of
+!         the residual vector is zero.
+
+!         IF (DRES == 0.0) GOTO 150
+          IF (ABS(DRES)<=ZERO) GOTO 150
+
+!         Calculate the correction vector.
+
+          NOITER = NOITER + 1
+          CALL MA28CD(N,A,LICN,ICN,IKEEP,R,W,MTYPE)
+
+!         Find the max-norm of the correction vector.
+
+          DD = 0.0
+          DO I = 1, N
+            DD = MAX(DD,ABS(R(I)))
+          END DO
+
+!         Check the convergence.
+
+          IF (DD>D*CGCE .AND. ITERAT>=2) GOTO 130
+          IF (ABS((DXMAX*TEN+DD)-(DXMAX*TEN))<=ZERO) GOTO 140
+
+!         Attempt to improve the solution.
+
+          DXMAX = 0.0
+          DO I = 1, N
+            X(I) = X(I) + R(I)
+            DXMAX = MAX(DXMAX,ABS(X(I)))
+          END DO
+
+!         Check the stopping criterion.
+ 
+          IF (DD<PREC*DXMAX) GOTO 140
+120     END DO
+!       More than MAXIT iterations required.
+        IFLAG = -16
+        WRITE (LP,90000) IFLAG, MAXIT
+        GOTO 140
+!       Convergence rate unacceptably slow.
+130     IFLAG = -17
+        CONVER = DD/D
+        WRITE (LP,90001) IFLAG, CONVER, CGCE
+
+!       The iterative process is terminated.
+
+140     ERRMAX = DD
+150     CONTINUE
+160     RETURN
+90000   FORMAT (' Error return from MA28ID with IFLAG = ',I3/' More than ', &
+          I5,' iterations required')
+90001   FORMAT (' Error return from MA28I with IFLAG = ', &
+          I3/' Convergence rate of ',1P,E9.2,' too slow'/ &
+          ' Maximum acceptable rate set to ',1P,E9.2)
+
+      END SUBROUTINE MA28ID
+!_______________________________________________________________________
+
+! Private Variable Information.
+! LP, MP are used by the subroutine as the unit numbers for its warning
+!     and diagnostic messages. Default value for both is 6 (for line
+!     printer output). The user can either reset them to a different
+!     stream number or suppress the output by setting them to zero.
+!     While LP directs the output of error diagnostics from the
+!     principal subroutines and internally called subroutines, MP
+!     controls only the output of a message which warns the user that
+!     he has input two or more non-zeros A(I),. .,A(K) with the same
+!     row and column indices. The action taken in this case is to
+!     proceed using a numerical value of A(I)+...+A(K). In the absence
+!     of other errors, IFLAG will equal -14 on exit.
+! LBLOCK Is a logical variable which controls an option of first
+!     preordering the matrix to block lower triangular form (using
+!     Harwell subroutine MC23A). The preordering is performed if LBLOCK
+!     is equal to its default value of .TRUE. If LBLOCK is set to
+!     .FALSE., the option is not invoked and the space allocated to
+!     IKEEP can be reduced to 4*N+1.
+! GROW is a logical variable. If it is left at its default value of
+!     .TRUE., then on return from MA28AD or MA28BD, W(1) will give
+!     an estimate (an upper bound) of the increase in size of elements
+!     encountered during the decomposition. If the matrix is well
+!     scaled, then a high value for W(1), relative to the largest entry
+!     in the input matrix, indicates that the LU decomposition may be
+!     inaccurate and the user should be wary of his results and perhaps
+!     increase U for subsequent runs. We would like to emphasise that
+!     this value only relates to the accuracy of our LU decomposition
+!     and gives no indication as to the singularity of the matrix or the
+!     accuracy of the solution. This upper bound can be a significant
+!     overestimate particularly if the matrix is badly scaled. If an
+!     accurate value for the growth is required, LBIG(Q.V.) should be
+!     set to .TRUE.
+! EPS, RMIN If, on entry to MA28BD, EPS is less than one, then RMIN
+!     will give the smallest ratio of the pivot to the largest element
+!     in the corresponding row of the upper triangular factor thus
+!     monitoring the stability of successive factorizations. If RMIN
+!     becomes very large and W(1) from MA28BD is also very large, it
+!     may be advisable to perform a new decomposition using MA28AD.
+! RESID Variable which on exit from MA30CD gives the value of the
+!     maximum residual over all the equations unsatisfied because
+!     of dependency (zero pivots).
+! IRNCP, ICNCP Variables which monitor the adequacy of "elbow room"
+!     in IRN and A/ICN, respectively. If either is quite large (say
+!     greater than N/10), it will probably pay to increase the size of
+!     the corresponding array for subsequent runs. If either is very low
+!     or zero, then one can perhaps save storage by reducing the size of
+!     the corresponding array.
+! MINIRN, MINICN Integer variables which, in the event of a successful
+!     return (IFLAG >= 0 or IFLAG = -14) give the minimum size of IRN
+!     and A/ICN, respectively which would enable a successful run on
+!     an identical matrix. On an exit with IFLAG equal to -5, MINICN
+!     gives the minimum value of ICN for success on subsequent runs on
+!     an identical matrix. In the event of failure with IFLAG = -6,-4,
+!     -3,-2, OR -1, then MINICN and MINIRN give the minimum value of
+!     LICN and LIRN, respectively which would be required for a
+!     successful decomposition up to the point at which the failure
+!     occurred.
+! IRANK Integer variable which gives an upper bound on the rank of
+!     the matrix.
+! ABORT1 is a logical variable with default value .TRUE. If ABORT1 is
+!     set to .FALSE., then MA28AD will decompose structurally singular
+!     matrices (including rectangular ones).
+! ABORT2 is a logical variable with default value .TRUE. If ABORT2 is
+!     set to .FALSE., then MA28AD will decompose numerically singular
+!     matrices.
+! IDISP is an integer array of length 2. On output from MA28AD, The
+!     indices of the diagonal blocks of the factors lie in positions
+!     IDISP(1) to IDISP(2) of A/ICN. This array must be preserved
+!     between a call to MA28AD and subsequent calls to MA28BD,
+!     MA30CD or MA28ID.
+! TOL If set to a positive value, then any non-zero whose modulus is
+!     less than TOL will be dropped from the factorization. The
+!     factorization will then require less storage but will be
+!     inaccurate. After a run of MA28AD with TOL positive it is not
+!     possible to use MA28BD and the user is recommended to use
+!     MA28ID to obtain the solution. The default value for TOL is 0.0.
+! THEMAX On exit from MA28AD, THEMAX will hold the largest entry of
+!     the original matrix.
+! BIG If LBIG has been set to .TRUE., BIG will hold the largest entry
+!     encountered during the factorization by MA28AD or MA28BD.
+! DXMAX On exit from MA28ID, DXMAX will be set to the largest component
+!     of the solution.
+! ERRMAX If MAXIT is positive, ERRMAX will be set to the largest
+!     component in the estimate of the error.
+! DRES On exit from MA28ID, if MAXIT is positive, DRES will be set to
+!     the largest component of the residual.
+! CGCE Used by MA28ID to check the convergence rate. If the ratio of
+!     successive corrections is not less than CGCE, then we terminate
+!     since the convergence rate is adjudged too slow.
+! NDROP If TOL has been set positive on exit from MA28AD, NDROP will
+!     hold the number of entries dropped from the data structure.
+! MAXIT Maximum number of iterations performed by MA28ID. Default = 16.
+! NOITER Set by MA28ID to the number of iterative refinement iterations
+!     actually used.
+! NSRCH If NSRCH is set to a value less than N, then a different pivot
+!     option will be employed by MA28AD. This may result in different
+!     fill-in and execution time for MA28AD. If NSRCH is less than or
+!     equal to N, the workspace array IW can be reduced in length. The
+!     default value for NSRCH is 32768.
+! ISTART If ISTART is set to a value other than zero, then the user
+!     must supply an estimate of the solution to MA28ID. The default
+!     value for istart is zero.
+! LBIG If LBIG is set to .TRUE., the value of the largest element
+!     encountered in the factorization by MA28AD or MA28BD is returned
+!     in BIG. Setting LBIG to .TRUE. will increase the time for MA28AD
+!     marginally and that for MA28BD by about 20%. The default value
+!     for LBIG is .FALSE.
+!_______________________________________________________________________
+
+      SUBROUTINE MA30AD(NN,ICN,A,LICN,LENR,LENRL,IDISP,IP,IQ,IRN,LIRN, &
+        LENC,IFIRST,LASTR,NEXTR,LASTC,NEXTC,IPTR,IPC,U,IFLAG)
+! ..
+!     If the user requires a more convenient data interface then the
+!     MA28 package should be used. The MA28 subroutines call the MA30
+!     subroutines after checking the user's input data and optionally
+!     using MC23AD to permute the matrix to block triangular form.
+!     This package of subroutines (MA30AD, MA30BD, MA30CD, and MA30DD)
+!     performs operations pertinent to the solution of a general
+!     sparse N by N system of linear equations (i.e., solve
+!     AX = B). Structually singular matrices are permitted including
+!     those with row or columns consisting entirely of zeros (i.e.,
+!     including rectangular matrices). It is assumed that the
+!     non-zeros of the matrix A do not differ widely in size. If
+!     necessary a prior call of the scaling subroutine MA19AD may be
+!     made.
+!     A discussion of the design of these subroutines is given by Duff
+!     and Reid (ACM TRANS MATH SOFTWARE 5 PP 18-35, 1979(CSS 48)) while
+!     fuller details of the implementation are given in duff (HARWELL
+!     REPORT AERE-R 8730, 1977). The additional pivoting option in
+!     ma30ad and the use of drop tolerances (see private variables for
+!     MA30ID) were added to the package after joint work with Reid,
+!     Schaumburg, Wasniewski and Zlatev (Duff, Reid, Schaumburg,
+!     Wasniewski and Zlatev, HARWELL REPORT CSS 135, 1983).
+
+!     MA30AD performs the LU decomposition of the diagonal blocks of
+!     the permutation PAQ of a sparse matrix A, where input permutations
+!     P1 and Q1 are used to define the diagonal blocks. There may be
+!     non-zeros in the off-diagonal blocks but they are unaffected by
+!     MA30AD. P and P1 differ only within blocks as do Q and Q1. The
+!     permutations P1 and Q1 may be found by calling MC23AD or the
+!     matrix may be treated as a single block by using P1 = Q1 = I. The
+!     matrix non-zeros should be held compactly by rows, although it
+!     should be noted that the user can supply the matrix by columns
+!     to get the LU decomposition of A transpose.
+
+!     This description should also be consulted for further information
+!     on most of the parameters of MA30BD and MA30CD.
+!     The parameters are:
+! N   is an integer variable which must be set by the user to the order
+!     of the matrix. It is not altered by MA30AD.
+! ICN is an integer array of length LICN. Positions IDISP(2) to
+!     LICN must be set by the user to contain the column indices of
+!     the non-zeros in the diagonal blocks of P1*A*Q1. Those belonging
+!     to a single row must be contiguous but the ordering of column
+!     indices with each row is unimportant. The non-zeros of row I
+!     precede those of row I+1,I = 1,...,N-1 and no wasted space is
+!     allowed between the rows. On output the column indices of the
+!     LU decomposition of PAQ are held in positions IDISP(1) to
+!     IDISP(2), the rows are in pivotal order, and the column indices
+!     of the L Part of each row are in pivotal order and precede those
+!     of U. Again there is no wasted space either within a row or
+!     between the rows. ICN(1) to ICN(IDISP(1)-1), are neither
+!     required nor altered. If MC23AD has been called, these will hold
+!     information about the off-diagonal blocks.
+! A   Array of length LICN whose entries IDISP(2) to LICN must be set
+!     by the user to the values of the non-zero entries of the matrix
+!     in the order indicated by ICN. On output A will hold the LU
+!     factors of the matrix where again the position in the matrix
+!     is determined by the corresponding values in ICN.
+!     A(1) to A(IDISP(1)-1) are neither required nor altered.
+! LICN is an integer variable which must be set by the user to the
+!     length of arrays ICN and A. It must be big enough for A and ICN
+!     to hold all the non-zeros of L and U and leave some "elbow
+!     room". It is possible to calculate a minimum value for LICN by
+!     a preliminary run of MA30AD. The adequacy of the elbow room
+!     can be judged by the size of the private variable ICNCP.
+!     It is not altered by MA30AD.
+! LENR is an integer array of length N. On input, LENR(I) should
+!     equal the number of non-zeros in row I,I = 1,...,N of the
+!     diagonal blocks of P1*A*Q1. On output, LENR(I) will equal the
+!     total number of non-zeros in row I of L and row I of U.
+! LENRL is an integer array of length N. On output from MA30AD,
+!     LENRL(I) will hold the number of non-zeros in row I of L.
+! IDISP is an integer array of length 2. The user should set IDISP(1)
+!     to be the first available position in A/ICN for the LU
+!     decomposition while IDISP(2) is set to the position in A/ICN of
+!     the first non-zero in the diagonal blocks of P1*A*Q1. On output,
+!     IDISP(1) will be unaltered while IDISP(2) will be set to the
+!     position in A/ICN of the last non-zero of the LU decomposition.
+! IP  is an integer array of length N which holds a permutation of
+!     the integers 1 to N. On input to MA30AD, the absolute value of
+!     IP(I) must be set to the row of A which is row I of P1*A*Q1. A
+!     negative value for IP(I) indicates that row I is at the end of a
+!     diagonal block. On output from MA30AD, IP(I) indicates the row
+!     of A which is the Ith row in PAQ. IP(I) will still be negative
+!     for the last row of each block (except the last).
+! IQ  is an integer array of length N which again holds a
+!     permutation of the integers 1 to N. On input to MA30AD, IQ(J)
+!     must be set to the column of A which is column J of P1*A*Q1. On
+!     output from MA30AD, the absolute value of IQ(J) indicates the
+!     column of A which is the Jth in PAQ. For rows, I say, in which
+!     structural or numerical singularity is detected IQ(I) is
+!     negated.
+! IRN is an integer array of length LIRN used as workspace by
+!     MA30AD.
+! LIRN is an integer variable. It should be greater than the
+!     largest number of non-zeros in a diagonal block of P1*A*Q1 but
+!     need not be as large as LICN. It is the length of array IRN and
+!     should be large enough to hold the active part of any block,
+!     plus some "elbow room", the a posteriori adequacy of which can
+!     be estimated by examining the size of private variable
+!     IRNCP.
+! LENC, FIRST, LASTR, NEXTR, LASTC, NEXTC are all integer arrays of
+!     length N which are used as workspace by MA30AD. If NSRCH is
+!     set to a value less than or equal to N, then arrays LASTC and
+!     NEXTC are not referenced by MA30AD and so can be dummied in
+!     the call to MA30AD.
+! IPTR, IPC are integer arrays of length N which are used as
+!     workspace by MA30AD.
+! U   is a real(kind=wp) variable which should be set by the user
+!     to a value between 0. and 1.0. If less than zero it is reset
+!     to zero and if its value is 1.0 or greater it is reset to
+!     0.9999 (0.999999999 in D version). It determines the balance
+!     between pivoting for sparsity and for stability, values near
+!     zero emphasizing sparsity and values near one emphasizing
+!     stability. We recommend U = 0.1 as a posible first trial value.
+!     The stability can be judged by a later call to MC24AD or by
+!     setting LBIG to .TRUE.
+! IFLAG is an integer variable. It will have a non-negative value
+!     if MA30AD is successful. Negative values indicate error
+!     conditions while positive values indicate that the matrix has
+!     been successfully decomposed but is singular. For each non-zero
+!     value, an appropriate message is output on unit LP. Possible
+!     non-zero values for IFLAG are
+! -1  THe matrix is structurally singular with rank given by IRANK
+!     in private variables for MA30FD.
+! +1  If, however, the user wants the LU decomposition of a
+!     structurally singular matrix and sets the private variable
+!     ABORT1 to .FALSE., then, in the event of singularity and a
+!     successful decomposition, Iflag is returned with the value +1
+!     and no message is output.
+! -2  The matrix is numerically singular (it may also be structurally
+!     singular) with estimated rank given by IRANK in private variables
+!     for MA30FD.
+! +2  THE user can choose to continue the decomposition even when a
+!     zero pivot is encountered by setting private variable
+!     ABORT2 TO .FALSE. If a singularity is encountered, IFLAG will
+!     then return with a value of +2, and no message is output if
+!     the decomposition has been completed successfully.
+! -3  LIRN has not been large enough to continue with the
+!     decomposition. If the stage was zero then private variable
+!     MINIRN gives the length sufficient to start the decomposition on
+!     this block. FOr a successful decomposition on this block the
+!     user should make LIRN slightly (say about N/2) greater than this
+!     value.
+! -4  LICN is not large enough to continue with the decomposition.
+! -5  The decomposition has been completed but some of the LU factors
+!     have been discarded to create enough room in A/ICN to continue
+!     the decomposition. The variable MINICN in private variables for
+!     MA30FD. Then gives the size that LICN should be to enable the
+!     factorization to be successful. If the user sets private
+!     variable ABORT3 to .TRUE., then the subroutine will exit
+!     immediately instead of destroying any factors and continuing.
+! -6  Both LICN and LIRN are too small. Termination has been caused
+!     by lack of space in IRN (see error IFLAG = -3), but already
+!     some of the LU factors in A/ICN have been lost (see error
+!     IFLAG = -5). MINICN gives the minimum amount of space
+!     required in A/ICN for decomposition up to this point.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        REAL (WP) :: U
+        INTEGER :: IFLAG, LICN, LIRN, NN
+! ..
+! .. Array Arguments ..
+        REAL (WP) :: A(LICN)
+        INTEGER :: ICN(LICN), IDISP(2), IFIRST(NN), IP(NN), IPC(NN), &
+          IPTR(NN), IQ(NN), IRN(LIRN), LASTC(NN), LASTR(NN),         &
+          LENC(NN), LENR(NN), LENRL(NN), NEXTC(NN), NEXTR(NN)
+! ..
+! .. Local Scalars ..
+        REAL (WP) :: AANEW, AMAX, ANEW, AU, PIVR, PIVRAT, SCALE
+        INTEGER :: COLUPD, DISPC, I, I1, I2, IACTIV, IBEG, IDISPC,   &
+          IDROP, IDUMMY, IEND, IFILL, IFIR, II, III, IJFIR, IJP1,    &
+          IJPOS, ILAST, INDROW, IOP, IPIV, IPOS, IROWS, ISING, ISRCH,&
+          ISTART, ISW, ISW1, ITOP, J, J1, J2, JBEG, JCOST, JCOUNT,   &
+          JDIFF, JDUMMY, JEND, JJ, JMORE, JNEW, JNPOS, JOLD, JPIV,   &
+          JPOS, JROOM, JVAL, JZER, JZERO, K, KCOST, KDROP, L, LC,    &
+          LENPIV, LENPP, LL, LR, MOREI, MSRCH, N, NBLOCK, NC, NNM1,  &
+          NR, NUM, NZ, NZ2, NZCOL, NZMIN, NZPC, NZROW, OLDEND,       &
+          OLDPIV, PIVEND, PIVOT, PIVROW, ROWI
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, IABS, MAX, MIN
+! ..
+! .. FIRST EXECUTABLE STATEMENT MA30AD
+! ..
+        MSRCH = NSRCH
+        NDROP = 0
+        LNPIV(1:10) = 0
+        LPIV(1:10) = 0
+        MAPIV = 0
+        MANPIV = 0
+        IAVPIV = 0
+        IANPIV = 0
+        KOUNTL = 0
+        MINIRN = 0
+        MINICN = IDISP(1) - 1
+        MOREI = 0
+        IRANK = NN
+        IRNCP = 0
+        ICNCP = 0
+        IFLAG = 0
+!       Reset U if necessary.
+        U = MIN(U,UMAX)
+!       IBEG is the position of the next pivot row after elimination
+!       step using it.
+        U = MAX(U,ZERO)
+        IBEG = IDISP(1)
+!       IACTIV is the position of the first entry in the active part
+!       of A/ICN.
+        IACTIV = IDISP(2)
+!       NZROW is current number of non-zeros in active and unprocessed
+!       part of row file ICN.
+        NZROW = LICN - IACTIV + 1
+        MINICN = NZROW + MINICN
+
+!       Count the number of diagonal blocks and set up pointers to the
+!       beginnings of the rows. NUM is the number of diagonal blocks.
+        NUM = 1
+        IPTR(1) = IACTIV
+        IF (NN==1) GOTO 30
+        NNM1 = NN - 1
+        DO I = 1, NNM1
+          IF (IP(I)<0) NUM = NUM + 1
+          IPTR(I+1) = IPTR(I) + LENR(I)
+        END DO
+!       ILAST is the last row in the previous block.
+30      ILAST = 0
+
+! ***********************************************
+! ****    LU decomposition of block NBLOCK   ****
+! ***********************************************
+
+!       Each pass through this loop performs LU decomposition on one
+!       of the diagonal blocks.
+        DO 1070 NBLOCK = 1, NUM
+          ISTART = ILAST + 1
+          DO IROWS = ISTART, NN
+            IF (IP(IROWS)<0) GOTO 50
+          END DO
+          IROWS = NN
+50        ILAST = IROWS
+!         N is the number of rows in the current block.
+!         ISTART is the index of the first row in the current block.
+!         ILAST is the index of the last row in the current block.
+!         IACTIV is the position of the first entry in the block.
+!         ITOP is the position of the last entry in the block.
+          N = ILAST - ISTART + 1
+          IF (N/=1) GOTO 100
+
+!         Code for dealing WITH 1x1 block.
+          LENRL(ILAST) = 0
+          ISING = ISTART
+          IF (LENR(ILAST)/=0) GOTO 60
+!         Block is structurally singular.
+          IRANK = IRANK - 1
+          ISING = -ISING
+          IF (IFLAG/=2 .AND. IFLAG/=-5) IFLAG = 1
+          IF (.NOT.ABORT1) GOTO 90
+          IDISP(2) = IACTIV
+          IFLAG = -1
+          IF (LP/=0) WRITE (LP,90000)
+!         RETURN
+          GOTO 1190
+60        SCALE = ABS(A(IACTIV))
+          IF (ABS(SCALE)<=ZERO) GOTO 70
+          IF (LBIG) BIG = MAX(BIG,SCALE)
+          GOTO 80
+70        ISING = -ISING
+          IRANK = IRANK - 1
+          IPTR(ILAST) = 0
+          IF (IFLAG/=-5) IFLAG = 2
+          IF (.NOT.ABORT2) GOTO 80
+          IDISP(2) = IACTIV
+          IFLAG = -2
+          IF (LP/=0) WRITE (LP,90001)
+          GOTO 1190
+80        A(IBEG) = A(IACTIV)
+          ICN(IBEG) = ICN(IACTIV)
+          IACTIV = IACTIV + 1
+          IPTR(ISTART) = 0
+          IBEG = IBEG + 1
+          NZROW = NZROW - 1
+90        LASTR(ISTART) = ISTART
+          IPC(ISTART) = -ISING
+          GOTO 1070
+
+!         Non-trivial block.
+100       ITOP = LICN
+          IF (ILAST/=NN) ITOP = IPTR(ILAST+1) - 1
+
+!         Set up column oriented storage.
+          LENRL(ISTART:ILAST) = 0
+          LENC(ISTART:ILAST) = 0
+          IF (ITOP-IACTIV<LIRN) GOTO 120
+          MINIRN = ITOP - IACTIV + 1
+          PIVOT = ISTART - 1
+          GOTO 1170
+
+!         Calculate column counts.
+120       DO II = IACTIV, ITOP
+            I = ICN(II)
+            LENC(I) = LENC(I) + 1
+          END DO
+!         Set up column pointers so that IPC(J) points to position
+!         after end of column J in column file.
+          IPC(ILAST) = LIRN + 1
+          J1 = ISTART + 1
+          DO JJ = J1, ILAST
+            J = ILAST - JJ + J1 - 1
+            IPC(J) = IPC(J+1) - LENC(J+1)
+          END DO
+          DO 160 INDROW = ISTART, ILAST
+            J1 = IPTR(INDROW)
+            J2 = J1 + LENR(INDROW) - 1
+            IF (J1>J2) GOTO 160
+            DO JJ = J1, J2
+              J = ICN(JJ)
+              IPOS = IPC(J) - 1
+              IRN(IPOS) = INDROW
+              IPC(J) = IPOS
+            END DO
+160       END DO
+!         DISPC is the lowest indexed active location in the column file.
+          DISPC = IPC(ISTART)
+          NZCOL = LIRN - DISPC + 1
+          MINIRN = MAX(NZCOL,MINIRN)
+          NZMIN = 1
+
+!         Initialize array IFIRST. IFIRST(I) = +/- K indicates that
+!         row/col K has I non-zeros. If IFIRST(I) = 0, there is no
+!         row or column with I non-zeros.
+          IFIRST(1:N) = 0
+
+!         Compute ordering of row and column counts.
+!         First run through columns (from column N to column 1).
+          DO 190 JJ = ISTART, ILAST
+            J = ILAST - JJ + ISTART
+            NZ = LENC(J)
+            IF (NZ/=0) GOTO 180
+            IPC(J) = 0
+            GOTO 190
+180         IF (NSRCH<=NN) GOTO 190
+            ISW = IFIRST(NZ)
+            IFIRST(NZ) = -J
+            LASTC(J) = 0
+            NEXTC(J) = -ISW
+            ISW1 = IABS(ISW)
+            IF (ISW/=0) LASTC(ISW1) = J
+190       END DO
+!        Now run through rows (again from N to 1).
+          DO 220 II = ISTART, ILAST
+               I = ILAST - II + ISTART
+            NZ = LENR(I)
+            IF (NZ/=0) GOTO 200
+            IPTR(I) = 0
+            LASTR(I) = 0
+            GOTO 220
+200         ISW = IFIRST(NZ)
+            IFIRST(NZ) = I
+            IF (ISW>0) GOTO 210
+            NEXTR(I) = 0
+            LASTR(I) = ISW
+            GOTO 220
+210         NEXTR(I) = ISW
+            LASTR(I) = LASTR(ISW)
+            LASTR(ISW) = I
+220       END DO
+
+! **********************************************
+! ****    Start of main elimination loop    ****
+! **********************************************
+          DO 1050 PIVOT = ISTART, ILAST
+
+!           First find the pivot using MARKOWITZ criterion with
+!           stability control.
+!           JCOST is the Markowitz cost of the best pivot so far.
+!           This pivot is in row IPIV and column JPIV.
+            NZ2 = NZMIN
+            JCOST = N*N
+
+!           Examine rows/columns in order of ascending count.
+            DO L = 1, 2
+              PIVRAT = ZERO
+              ISRCH = 1
+              LL = L
+!             A pass with L equal to 2 is only performed in the
+!             case of singularity.
+              DO 340 NZ = NZ2, N
+                IF (JCOST<=(NZ-1)**2) GOTO 430
+                IJFIR = IFIRST(NZ)
+!               IF (IJFIR) 240, 230, 250
+!230            IF (LL==1) NZMIN = NZ + 1
+                IF (IJFIR < 0) GOTO 240
+                IF (IJFIR > 0) GOTO 250
+                IF (LL==1) NZMIN = NZ + 1
+                GOTO 340
+240             LL = 2
+                IJFIR = -IJFIR
+                GOTO 300
+250             LL = 2
+!               Scan rows with NZ non-zeros.
+                DO IDUMMY = 1, N
+                  IF (JCOST<=(NZ-1)**2) GOTO 430
+                  IF (ISRCH>MSRCH) GOTO 430
+                  IF (IJFIR==0) GOTO 290
+!                 Row IJFIR is now examined.
+                  I = IJFIR
+                  IJFIR = NEXTR(I)
+!                 First calculate multiplier threshold level.
+                  AMAX = ZERO
+                  J1 = IPTR(I) + LENRL(I)
+                  J2 = IPTR(I) + LENR(I) - 1
+                  DO JJ = J1, J2
+                    AMAX = MAX(AMAX,ABS(A(JJ)))
+                  END DO
+                  AU = AMAX*U
+                  ISRCH = ISRCH + 1
+!                 Scan row for possible pivots.
+                  DO 270 JJ = J1, J2
+                    IF (ABS(A(JJ))<=AU .AND. L==1) GOTO 270
+                    J = ICN(JJ)
+                    KCOST = (NZ-1)*(LENC(J)-1)
+                    IF (KCOST>JCOST) GOTO 270
+                    PIVR = ZERO
+                    IF (ABS(AMAX)>ZERO) PIVR = ABS(A(JJ))/AMAX
+                    IF (KCOST==JCOST .AND. (PIVR<=PIVRAT .OR. NSRCH>NN+1)) &
+                      GOTO 270
+!                   Best pivot so far is found.
+                    JCOST = KCOST
+                    IJPOS = JJ
+                    IPIV = I
+                    JPIV = J
+                    IF (MSRCH>NN+1 .AND. JCOST<=(NZ-1)**2) GOTO 430
+                    PIVRAT = PIVR
+270               END DO
+                END DO
+
+!               Columns with NZ non-zeros now examined.
+290             IJFIR = IFIRST(NZ)
+                IJFIR = -LASTR(IJFIR)
+300             IF (JCOST<=NZ*(NZ-1)) GOTO 430
+                IF (MSRCH<=NN) GOTO 340
+                DO 330 IDUMMY = 1, N
+                  IF (IJFIR==0) GOTO 340
+                  J = IJFIR
+                  IJFIR = NEXTC(IJFIR)
+                  I1 = IPC(J)
+                  I2 = I1 + NZ - 1
+!                 Scan column J.
+                  DO 320 II = I1, I2
+                    I = IRN(II)
+                    KCOST = (NZ-1)*(LENR(I)-LENRL(I)-1)
+                    IF (KCOST>=JCOST) GOTO 320
+!                   Pivot has best Markowitz count so far. Now
+!                   check its suitability on numeric grounds by
+!                   examining the other non-zeros in its row.
+                    J1 = IPTR(I) + LENRL(I)
+                    J2 = IPTR(I) + LENR(I) - 1
+!                   We need a stability check on singleton columns
+!                   because of possible problems with
+!                   underdetermined systems.
+                    AMAX = ZERO
+                    DO JJ = J1, J2
+                      AMAX = MAX(AMAX,ABS(A(JJ)))
+                      IF (ICN(JJ)==J) JPOS = JJ
+                    END DO
+                    IF (ABS(A(JPOS))<=AMAX*U .AND. L==1) GOTO 320
+                    JCOST = KCOST
+                    IPIV = I
+                    JPIV = J
+                    IJPOS = JPOS
+                    IF (ABS(AMAX)>ZERO) PIVRAT = ABS(A(JPOS))/AMAX
+                    IF (JCOST<=NZ*(NZ-1)) GOTO 430
+320               END DO
+330             END DO
+340           END DO
+!             In the event of singularity, we must make sure all
+!             rows and columns are tested.
+              MSRCH = N
+
+!             Matrix is numerically or structurally singular. Which
+!             it is will be diagnosed later.
+              IRANK = IRANK - 1
+            END DO
+!           Assign rest of rows and columns to ordering array.
+!           Matrix is structurally singular.
+            IF (IFLAG/=2 .AND. IFLAG/=-5) IFLAG = 1
+            IRANK = IRANK - ILAST + PIVOT + 1
+            IF (.NOT.ABORT1) GOTO 360
+            IDISP(2) = IACTIV
+            IFLAG = -1
+            IF (LP/=0) WRITE (LP,90000)
+            GOTO 1190
+360         K = PIVOT - 1
+            DO 400 I = ISTART, ILAST
+              IF (LASTR(I)/=0) GOTO 400
+              K = K + 1
+              LASTR(I) = K
+              IF (LENRL(I)==0) GOTO 390
+              MINICN = MAX(MINICN,NZROW+IBEG-1+MOREI+LENRL(I))
+              IF (IACTIV-IBEG>=LENRL(I)) GOTO 370
+              CALL MA30DD(A,ICN,IPTR(ISTART),N,IACTIV,ITOP,.TRUE.)
+!             Check now to see if MA30DD has created enough
+!             available space.
+              IF (IACTIV-IBEG>=LENRL(I)) GOTO 370
+!             Create more space by destroying previously created
+!             LU factors.
+              MOREI = MOREI + IBEG - IDISP(1)
+              IBEG = IDISP(1)
+              IF (LP/=0) WRITE (LP,90002)
+              IFLAG = -5
+              IF (ABORT3) GOTO 1160
+370           J1 = IPTR(I)
+              J2 = J1 + LENRL(I) - 1
+              IPTR(I) = 0
+              DO JJ = J1, J2
+                A(IBEG) = A(JJ)
+                ICN(IBEG) = ICN(JJ)
+                ICN(JJ) = 0
+                IBEG = IBEG + 1
+              END DO
+              NZROW = NZROW - LENRL(I)
+390           IF (K==ILAST) GOTO 410
+400         END DO
+410         K = PIVOT - 1
+            DO 420 I = ISTART, ILAST
+              IF (IPC(I)/=0) GOTO 420
+              K = K + 1
+              IPC(I) = K
+              IF (K==ILAST) GOTO 1060
+420         END DO
+
+!           The pivot has now been found in position (IPIV,JPIV)
+!           in location IJPOS in row file.
+!           Update column and row ordering arrays to correspond
+!           with removal of the active part of the matrix.
+430         ISING = PIVOT
+            IF (ABS(A(IJPOS))>ZERO) GOTO 440
+!           Numerical singularity is recorded here.
+            ISING = -ISING
+            IF (IFLAG/=-5) IFLAG = 2
+            IF (.NOT.ABORT2) GOTO 440
+            IDISP(2) = IACTIV
+            IFLAG = -2
+            IF (LP/=0) WRITE (LP,90001)
+            GOTO 1190
+440         OLDPIV = IPTR(IPIV) + LENRL(IPIV)
+            OLDEND = IPTR(IPIV) + LENR(IPIV) - 1
+!           Changes to column ordering.
+            IF (NSRCH<=NN) GOTO 470
+            COLUPD = NN + 1
+            LENPP = OLDEND - OLDPIV + 1
+            IF (LENPP<4) LPIV(1) = LPIV(1) + 1
+            IF (LENPP>=4 .AND. LENPP<=6) LPIV(2) = LPIV(2) + 1
+            IF (LENPP>=7 .AND. LENPP<=10) LPIV(3) = LPIV(3) + 1
+            IF (LENPP>=11 .AND. LENPP<=15) LPIV(4) = LPIV(4) + 1
+            IF (LENPP>=16 .AND. LENPP<=20) LPIV(5) = LPIV(5) + 1
+            IF (LENPP>=21 .AND. LENPP<=30) LPIV(6) = LPIV(6) + 1
+            IF (LENPP>=31 .AND. LENPP<=50) LPIV(7) = LPIV(7) + 1
+            IF (LENPP>=51 .AND. LENPP<=70) LPIV(8) = LPIV(8) + 1
+            IF (LENPP>=71 .AND. LENPP<=100) LPIV(9) = LPIV(9) + 1
+            IF (LENPP>=101) LPIV(10) = LPIV(10) + 1
+            MAPIV = MAX(MAPIV,LENPP)
+            IAVPIV = IAVPIV + LENPP
+            DO 460 JJ = OLDPIV, OLDEND
+              J = ICN(JJ)
+              LC = LASTC(J)
+              NC = NEXTC(J)
+              NEXTC(J) = -COLUPD
+              IF (JJ/=IJPOS) COLUPD = J
+              IF (NC/=0) LASTC(NC) = LC
+              IF (LC==0) GOTO 450
+              NEXTC(LC) = NC
+              GOTO 460
+450           NZ = LENC(J)
+              ISW = IFIRST(NZ)
+              IF (ISW>0) LASTR(ISW) = -NC
+              IF (ISW<0) IFIRST(NZ) = -NC
+460         END DO
+!           Changes to row ordering.
+470         I1 = IPC(JPIV)
+            I2 = I1 + LENC(JPIV) - 1
+            DO 490 II = I1, I2
+              I = IRN(II)
+              LR = LASTR(I)
+              NR = NEXTR(I)
+              IF (NR/=0) LASTR(NR) = LR
+              IF (LR<=0) GOTO 480
+              NEXTR(LR) = NR
+              GOTO 490
+480           NZ = LENR(I) - LENRL(I)
+              IF (NR/=0) IFIRST(NZ) = NR
+              IF (NR==0) IFIRST(NZ) = LR
+490         END DO
+
+!           Move pivot to position LENRL+1 in pivot row and move pivot
+!           row to the beginning of the available storage. The L part
+!           and the pivot in the old copy of the pivot row is nullified
+!           while, in the strictly upper triangular part, the column
+!           indices, J say, are overwritten by the corresponding entry
+!           of IQ (IQ(J)) and IQ(J) is set to the negative of the
+!           displacement of the column index from the pivot entry.
+            IF (OLDPIV==IJPOS) GOTO 500
+            AU = A(OLDPIV)
+            A(OLDPIV) = A(IJPOS)
+            A(IJPOS) = AU
+            ICN(IJPOS) = ICN(OLDPIV)
+            ICN(OLDPIV) = JPIV
+!           Check to see if there is space immediately available in
+!           A/ICN to hold new copy of pivot row.
+500         MINICN = MAX(MINICN,NZROW+IBEG-1+MOREI+LENR(IPIV))
+            IF (IACTIV-IBEG>=LENR(IPIV)) GOTO 510
+            CALL MA30DD(A,ICN,IPTR(ISTART),N,IACTIV,ITOP,.TRUE.)
+            OLDPIV = IPTR(IPIV) + LENRL(IPIV)
+            OLDEND = IPTR(IPIV) + LENR(IPIV) - 1
+!           Check now to see if MA30DD has created enough
+!           available space.
+            IF (IACTIV-IBEG>=LENR(IPIV)) GOTO 510
+!           Create more space by destroying previously created
+!           LU factors.
+            MOREI = MOREI + IBEG - IDISP(1)
+            IBEG = IDISP(1)
+            IF (LP/=0) WRITE (LP,90002)
+            IFLAG = -5
+            IF (ABORT3) GOTO 1160
+            IF (IACTIV-IBEG>=LENR(IPIV)) GOTO 510
+!           There is still not enough room in A/ICN.
+            IFLAG = -4
+            GOTO 1160
+!           Copy pivot row and set up IQ array.
+510         IJPOS = 0
+            J1 = IPTR(IPIV)
+
+            DO JJ = J1, OLDEND
+              A(IBEG) = A(JJ)
+              ICN(IBEG) = ICN(JJ)
+              IF (IJPOS/=0) GOTO 520
+              IF (ICN(JJ)==JPIV) IJPOS = IBEG
+              ICN(JJ) = 0
+              GOTO 530
+520           K = IBEG - IJPOS
+              J = ICN(JJ)
+              ICN(JJ) = IQ(J)
+              IQ(J) = -K
+530           IBEG = IBEG + 1
+            END DO
+
+            IJP1 = IJPOS + 1
+            PIVEND = IBEG - 1
+            LENPIV = PIVEND - IJPOS
+            NZROW = NZROW - LENRL(IPIV) - 1
+            IPTR(IPIV) = OLDPIV + 1
+            IF (LENPIV==0) IPTR(IPIV) = 0
+
+!           Remove pivot row (including pivot) from column
+!           oriented file.
+            DO JJ = IJPOS, PIVEND
+              J = ICN(JJ)
+              I1 = IPC(J)
+              LENC(J) = LENC(J) - 1
+!             I2 is last position in new column.
+              I2 = IPC(J) + LENC(J) - 1
+              IF (I2<I1) GOTO 560
+              DO 550 II = I1, I2
+                IF (IRN(II)/=IPIV) GOTO 550
+                IRN(II) = IRN(I2+1)
+                GOTO 560
+550           END DO
+560           IRN(I2+1) = 0
+            END DO
+            NZCOL = NZCOL - LENPIV - 1
+
+!           Go down the pivot column and for each row with a
+!           non-zero add the appropriate multiple of the pivot
+!           row to it. We loop on the number of non-zeros in
+!           the pivot column since MA30DD may change its
+!           actual position.
+
+            NZPC = LENC(JPIV)
+            IF (NZPC==0) GOTO 940
+            DO 880 III = 1, NZPC
+              II = IPC(JPIV) + III - 1
+              I = IRN(II)
+!             Search row I For non-zero to be eliminated,
+!             calculate multiplier, and place it in position
+!             LENRL+1 in its row. IDROP is the number of
+!             non-zero entries dropped from row I because
+!             these fall beneath tolerance level.
+              IDROP = 0
+              J1 = IPTR(I) + LENRL(I)
+              IEND = IPTR(I) + LENR(I) - 1
+              DO 580 JJ = J1, IEND
+                IF (ICN(JJ)/=JPIV) GOTO 580
+!               IF pivot is zero, rest of column is and so
+!               multiplier is zero.
+                AU = ZERO
+                IF (ABS(A(IJPOS))>ZERO) AU = -A(JJ)/A(IJPOS)
+                IF (LBIG) BIG = MAX(BIG,ABS(AU))
+                A(JJ) = A(J1)
+                A(J1) = AU
+                ICN(JJ) = ICN(J1)
+                ICN(J1) = JPIV
+                LENRL(I) = LENRL(I) + 1
+                GOTO 590
+580           END DO
+!             JUMP if pivot row is a singleton.
+590           IF (LENPIV==0) GOTO 880
+!             Now perform necessary operations on rest of non-pivot
+!             row I.
+              ROWI = J1 + 1
+              IOP = 0
+!             Jump if all the pivot row causes fill-in.
+              IF (ROWI>IEND) GOTO 670
+!             Perform operations on current non-zeros in row I.
+!             Innermost loop.
+              LENPP = IEND - ROWI + 1
+              IF (LENPP<4) LNPIV(1) = LNPIV(1) + 1
+              IF (LENPP>=4 .AND. LENPP<=6) LNPIV(2) = LNPIV(2) + 1
+              IF (LENPP>=7 .AND. LENPP<=10) LNPIV(3) = LNPIV(3) + 1
+              IF (LENPP>=11 .AND. LENPP<=15) LNPIV(4) = LNPIV(4) + 1
+              IF (LENPP>=16 .AND. LENPP<=20) LNPIV(5) = LNPIV(5) + 1
+              IF (LENPP>=21 .AND. LENPP<=30) LNPIV(6) = LNPIV(6) + 1
+              IF (LENPP>=31 .AND. LENPP<=50) LNPIV(7) = LNPIV(7) + 1
+              IF (LENPP>=51 .AND. LENPP<=70) LNPIV(8) = LNPIV(8) + 1
+              IF (LENPP>=71 .AND. LENPP<=100) LNPIV(9) = LNPIV(9) + 1
+              IF (LENPP>=101) LNPIV(10) = LNPIV(10) + 1
+              MANPIV = MAX(MANPIV,LENPP)
+              IANPIV = IANPIV + LENPP
+              KOUNTL = KOUNTL + 1
+              DO 600 JJ = ROWI, IEND
+                J = ICN(JJ)
+                IF (IQ(J)>0) GOTO 600
+                IOP = IOP + 1
+                PIVROW = IJPOS - IQ(J)
+                A(JJ) = A(JJ) + AU*A(PIVROW)
+                IF (LBIG) BIG = MAX(ABS(A(JJ)),BIG)
+                ICN(PIVROW) = -ICN(PIVROW)
+                IF (ABS(A(JJ))<TOL) IDROP = IDROP + 1
+600           END DO
+
+!             JUMP if no non-zeros in non-pivot row have been removed
+!             because these are beneath the drop-tolerance TOL.
+
+              IF (IDROP==0) GOTO 670
+
+!             Run through non-pivot row compressing row so that only
+!             non-zeros greater than TOL are stored. All non-zeros
+!             less than TOL are also removed from the column structure.
+
+              JNEW = ROWI
+              DO 650 JJ = ROWI, IEND
+                IF (ABS(A(JJ))<TOL) GOTO 610
+                A(JNEW) = A(JJ)
+                ICN(JNEW) = ICN(JJ)
+                JNEW = JNEW + 1
+                GOTO 650
+
+!               Remove non-zero entry from column structure.
+
+610             J = ICN(JJ)
+                I1 = IPC(J)
+                I2 = I1 + LENC(J) - 1
+                DO II = I1, I2
+                  IF (IRN(II)==I) GOTO 630
+                END DO
+630             IRN(II) = IRN(I2)
+                IRN(I2) = 0
+                LENC(J) = LENC(J) - 1
+                IF (NSRCH<=NN) GOTO 650
+!               Remove column from column chain and place in
+!               update chain.
+                IF (NEXTC(J)<0) GOTO 650
+!               JUMP if column already in update chain.
+                LC = LASTC(J)
+                NC = NEXTC(J)
+                NEXTC(J) = -COLUPD
+                COLUPD = J
+                IF (NC/=0) LASTC(NC) = LC
+                IF (LC==0) GOTO 640
+                NEXTC(LC) = NC
+                GOTO 650
+640             NZ = LENC(J) + 1
+                ISW = IFIRST(NZ)
+                IF (ISW>0) LASTR(ISW) = -NC
+                IF (ISW<0) IFIRST(NZ) = -NC
+650           END DO
+              ICN(JNEW:IEND) = 0
+!             The value of IDROP might be different from that
+!             calculated earlier because we may now have dropped
+!             some non-zeros which were not modified by the pivot
+!             row.
+              IDROP = IEND + 1 - JNEW
+              IEND = JNEW - 1
+              LENR(I) = LENR(I) - IDROP
+              NZROW = NZROW - IDROP
+              NZCOL = NZCOL - IDROP
+              NDROP = NDROP + IDROP
+670           IFILL = LENPIV - IOP
+!             Jump is if there is no fill-in.
+              IF (IFILL==0) GOTO 770
+!             Now for the fill-in.
+              MINICN = MAX(MINICN,MOREI+IBEG-1+NZROW+IFILL+LENR(I))
+!             See if there is room for fill-in.
+!             Get maximum space for row I in situ.
+              DO JDIFF = 1, IFILL
+                JNPOS = IEND + JDIFF
+                IF (JNPOS>LICN) GOTO 690
+                IF (ICN(JNPOS)/=0) GOTO 690
+              END DO
+!             There is room for all the fill-in after the end of the
+!             row so it can be left in situ.
+!             Next available space for fill-in.
+              IEND = IEND + 1
+              GOTO 770
+!             JMORE spaces for fill-in are required in front of row.
+690           JMORE = IFILL - JDIFF + 1
+              I1 = IPTR(I)
+!             We now look in front of the row to see if there is space
+!             for the rest of the fill-in.
+              DO JDIFF = 1, JMORE
+                JNPOS = I1 - JDIFF
+                IF (JNPOS<IACTIV) GOTO 710
+                IF (ICN(JNPOS)/=0) GOTO 720
+              END DO
+710           JNPOS = I1 - JMORE
+              GOTO 730
+!             Whole row must be moved to the beginning of available
+!             storage.
+720           JNPOS = IACTIV - LENR(I) - IFILL
+!             Jump if there is space immediately available for the
+!             shifted row.
+730           IF (JNPOS>=IBEG) GOTO 750
+              CALL MA30DD(A,ICN,IPTR(ISTART),N,IACTIV,ITOP,.TRUE.)
+              I1 = IPTR(I)
+              IEND = I1 + LENR(I) - 1
+              JNPOS = IACTIV - LENR(I) - IFILL
+              IF (JNPOS>=IBEG) GOTO 750
+!             No space available so try to create some by throwing
+!             away previous LU decomposition.
+              MOREI = MOREI + IBEG - IDISP(1) - LENPIV - 1
+              IF (LP/=0) WRITE (LP,90002)
+              IFLAG = -5
+              IF (ABORT3) GOTO 1160
+!             Keep record of current pivot row.
+              IBEG = IDISP(1)
+              ICN(IBEG) = JPIV
+              A(IBEG) = A(IJPOS)
+              IJPOS = IBEG
+              DO JJ = IJP1, PIVEND
+                IBEG = IBEG + 1
+                A(IBEG) = A(JJ)
+                ICN(IBEG) = ICN(JJ)
+              END DO
+              IJP1 = IJPOS + 1
+              PIVEND = IBEG
+              IBEG = IBEG + 1
+              IF (JNPOS>=IBEG) GOTO 750
+!             This still does not give enough room.
+              IFLAG = -4
+              GOTO 1160
+750           IACTIV = MIN(IACTIV,JNPOS)
+!             Move non-pivot row I.
+              IPTR(I) = JNPOS
+              DO JJ = I1, IEND
+                A(JNPOS) = A(JJ)
+                ICN(JNPOS) = ICN(JJ)
+                JNPOS = JNPOS + 1
+                ICN(JJ) = 0
+              END DO
+!             First new available space.
+              IEND = JNPOS
+770           NZROW = NZROW + IFILL
+!             Innermost fill-in loop which also resets ICN.
+              IDROP = 0
+              DO 850 JJ = IJP1, PIVEND
+                J = ICN(JJ)
+                IF (J<0) GOTO 840
+                ANEW = AU*A(JJ)
+                AANEW = ABS(ANEW)
+                IF (AANEW>=TOL) GOTO 780
+                IDROP = IDROP + 1
+                NDROP = NDROP + 1
+                NZROW = NZROW - 1
+                MINICN = MINICN - 1
+                IFILL = IFILL - 1
+                GOTO 850
+780             IF (LBIG) BIG = MAX(AANEW,BIG)
+                A(IEND) = ANEW
+                ICN(IEND) = J
+                IEND = IEND + 1
+
+!               Put new entry in column file.
+                MINIRN = MAX(MINIRN,NZCOL+LENC(J)+1)
+                JEND = IPC(J) + LENC(J)
+                JROOM = NZPC - III + 1 + LENC(J)
+                IF (JEND>LIRN) GOTO 790
+                IF (IRN(JEND)==0) GOTO 830
+790             IF (JROOM<DISPC) GOTO 800
+!               Compress column file to obtain space for new
+!               copy of column.
+                CALL MA30DD(A,IRN,IPC(ISTART),N,DISPC,LIRN,.FALSE.)
+                IF (JROOM<DISPC) GOTO 800
+                JROOM = DISPC - 1
+                IF (JROOM>=LENC(J)+1) GOTO 800
+!               Column file is not large enough.
+                GOTO 1170
+!               Copy column to beginning of file.
+800             JBEG = IPC(J)
+                JEND = IPC(J) + LENC(J) - 1
+                JZERO = DISPC - 1
+                DISPC = DISPC - JROOM
+                IDISPC = DISPC
+                DO II = JBEG, JEND
+                  IRN(IDISPC) = IRN(II)
+                  IRN(II) = 0
+                  IDISPC = IDISPC + 1
+                END DO
+                IPC(J) = DISPC
+                JEND = IDISPC
+                IRN(JEND:JZERO) = 0
+830             IRN(JEND) = I
+                NZCOL = NZCOL + 1
+                LENC(J) = LENC(J) + 1
+!               End of adjustment to column file.
+                GOTO 850
+840             ICN(JJ) = -J
+850           END DO
+              IF (IDROP==0) GOTO 870
+              DO KDROP = 1, IDROP
+                ICN(IEND) = 0
+                IEND = IEND + 1
+              END DO
+870           LENR(I) = LENR(I) + IFILL
+!             End of scan of pivot column.
+880         END DO
+
+!           Remove pivot column from column oriented storage
+!           and update row ordering arrays.
+            I1 = IPC(JPIV)
+            I2 = IPC(JPIV) + LENC(JPIV) - 1
+            NZCOL = NZCOL - LENC(JPIV)
+            DO 930 II = I1, I2
+              I = IRN(II)
+              IRN(II) = 0
+              NZ = LENR(I) - LENRL(I)
+              IF (NZ/=0) GOTO 890
+              LASTR(I) = 0
+              GOTO 930
+890           IFIR = IFIRST(NZ)
+              IFIRST(NZ) = I
+!             IF (IFIR) 900, 920, 910
+!900          LASTR(I) = IFIR
+              IF (IFIR == 0) GOTO 920
+              IF (IFIR > 0) GOTO 910
+              LASTR(I) = IFIR
+              NEXTR(I) = 0
+              GOTO 930
+910           LASTR(I) = LASTR(IFIR)
+              NEXTR(I) = IFIR
+              LASTR(IFIR) = I
+              GOTO 930
+920           LASTR(I) = 0
+              NEXTR(I) = 0
+              NZMIN = MIN(NZMIN,NZ)
+930         END DO
+!           Restore IQ and nullify U part of old pivot row.
+!           Record the column permutation in LASTC(JPIV) and
+!           the row permutation in LASTR(IPIV).
+940         IPC(JPIV) = -ISING
+            LASTR(IPIV) = PIVOT
+            IF (LENPIV==0) GOTO 1050
+            NZROW = NZROW - LENPIV
+            JVAL = IJP1
+            JZER = IPTR(IPIV)
+            IPTR(IPIV) = 0
+            DO JCOUNT = 1, LENPIV
+              J = ICN(JVAL)
+              IQ(J) = ICN(JZER)
+              ICN(JZER) = 0
+              JVAL = JVAL + 1
+              JZER = JZER + 1
+            END DO
+!           Adjust column ordering arrays.
+            IF (NSRCH>NN) GOTO 980
+            DO 970 JJ = IJP1, PIVEND
+              J = ICN(JJ)
+              NZ = LENC(J)
+              IF (NZ/=0) GOTO 960
+              IPC(J) = 0
+              GOTO 970
+960           NZMIN = MIN(NZMIN,NZ)
+970         END DO
+            GOTO 1050
+980         JJ = COLUPD
+            DO 1040 JDUMMY = 1, NN
+              J = JJ
+              IF (J==NN+1) GOTO 1050
+              JJ = -NEXTC(J)
+              NZ = LENC(J)
+              IF (NZ/=0) GOTO 990
+              IPC(J) = 0
+              GOTO 1040
+990           IFIR = IFIRST(NZ)
+              LASTC(J) = 0
+!             IF (IFIR) 1000, 1010, 1020
+!1000         IFIRST(NZ) = -J
+              IF (IFIR == 0) GOTO 1010
+              IF (IFIR > 0) GOTO 1020
+              IFIRST(NZ) = -J
+              IFIR = -IFIR
+              LASTC(IFIR) = J
+              NEXTC(J) = IFIR
+              GOTO 1040
+1010          IFIRST(NZ) = -J
+              NEXTC(J) = 0
+              GOTO 1030
+1020          LC = -LASTR(IFIR)
+              LASTR(IFIR) = -J
+              NEXTC(J) = LC
+              IF (LC/=0) LASTC(LC) = J
+1030          NZMIN = MIN(NZMIN,NZ)
+1040        END DO
+1050      END DO
+! ********************************************
+! ****    End of main elimination loop    ****
+! ********************************************
+
+!         Reset IACTIV to point to the beginning of the
+!         next block.
+1060      IF (ILAST/=NN) IACTIV = IPTR(ILAST+1)
+1070    END DO
+
+! ********************************************
+! ****    End of deomposition of block    ****
+! ********************************************
+
+!     Record singularity (if any) in IQ array.
+        IF (IRANK==NN) GOTO 1090
+        DO 1080 I = 1, NN
+          IF (IPC(I)<0) GOTO 1080
+          ISING = IPC(I)
+          IQ(ISING) = -IQ(ISING)
+          IPC(I) = -ISING
+1080    END DO
+
+!       Run through LU decomposition changing column indices
+!       to that of new order and permuting LENR and LENRL
+!       arrays according to pivot permutations.
+1090    ISTART = IDISP(1)
+        IEND = IBEG - 1
+        IF (IEND<ISTART) GOTO 1110
+        DO JJ = ISTART, IEND
+          JOLD = ICN(JJ)
+          ICN(JJ) = -IPC(JOLD)
+        END DO
+1110    DO II = 1, NN
+          I = LASTR(II)
+          NEXTR(I) = LENR(II)
+          IPTR(I) = LENRL(II)
+        END DO
+        LENRL(1:NN) = IPTR(1:NN)
+        LENR(1:NN) = NEXTR(1:NN)
+
+!       Update permutation arrays IP and IQ.
+        DO II = 1, NN
+          I = LASTR(II)
+          J = -IPC(II)
+          NEXTR(I) = IABS(IP(II)+0)
+          IPTR(J) = IABS(IQ(II)+0)
+!         NEXTR(I) = IABS(IP(II))
+!         IPTR(J) = IABS(IQ(II))
+        END DO
+        DO I = 1, NN
+          IF (IP(I)<0) NEXTR(I) = -NEXTR(I)
+          IP(I) = NEXTR(I)
+          IF (IQ(I)<0) IPTR(I) = -IPTR(I)
+          IQ(I) = IPTR(I)
+        END DO
+        IP(NN) = IABS(IP(NN)+0)
+!       IP(NN) = IABS(IP(NN))
+        IDISP(2) = IEND
+        GOTO 1190
+
+!       Error returns
+1160    IDISP(2) = IACTIV
+        IF (LP==0) GOTO 1190
+        WRITE (LP,90003)
+        GOTO 1180
+1170    IF (IFLAG==-5) IFLAG = -6
+        IF (IFLAG/=-6) IFLAG = -3
+        IDISP(2) = IACTIV
+        IF (LP==0) GOTO 1190
+        IF (IFLAG==-3) WRITE (LP,90004)
+        IF (IFLAG==-6) WRITE (LP,90005)
+1180    PIVOT = PIVOT - ISTART + 1
+        WRITE (LP,90006) PIVOT, NBLOCK, ISTART, ILAST
+        IF (PIVOT==0) WRITE (LP,90007) MINIRN
+
+1190    RETURN
+90000   FORMAT (' Error return from MA30AD because matrix is', &
+          ' structurally singular')
+90001   FORMAT (' Error return from MA30AD because matrix is', &
+          ' numerically singular')
+90002   FORMAT (' LU decomposition destroyed to create more space')
+90003   FORMAT (' Error return from MA30AD because LICN is not big enough')
+90004   FORMAT (' Error return from MA30AD because LIRN is not big enough')
+90005   FORMAT (' Error return from MA30AD LIRN and LICN are too small')
+90006   FORMAT (' At stage ',I5,' in block ',I5,' with first row ',I5, &
+          ' and last row ',I5)
+90007   FORMAT (' To continue set LIRN to at least ',I8)
+
+      END SUBROUTINE MA30AD
+!_______________________________________________________________________
+
+      SUBROUTINE MA30DD(A,ICN,IPTR,N,IACTIV,ITOP,REALS)
+! ..
+! This subroutine performs garbage collection operations on the arrays
+! A, ICN, and IRN.
+! ..
+! IACTIV is the first position in arrays A/ICN from which the compress
+! starts. On exit, IACTIV equals the position of the first entry.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER :: IACTIV, ITOP, N
+        LOGICAL :: REALS
+! ..
+! .. Array Arguments ..
+        REAL (WP) :: A(ITOP)
+        INTEGER :: ICN(ITOP), IPTR(N)
+! ..
+! .. Local Scalars ..
+        INTEGER :: J, JPOS, K, KL, KN
+! ..
+! .. FIRST EXECUTABLE STATEMENT MA30DD
+! ..
+        IF (REALS) ICNCP = ICNCP + 1
+        IF (.NOT.REALS) IRNCP = IRNCP + 1
+!       Set the first non-zero entry in each row to the negative of the
+!       row/col number and hold this row/col index in the row/col
+!       pointer. This is so that the beginning of each row/col can
+!       be recognized in the subsequent scan.
+        DO 10 J = 1, N
+          K = IPTR(J)
+          IF (K<IACTIV) GOTO 10
+          IPTR(J) = ICN(K)
+          ICN(K) = -J
+10      END DO
+        KN = ITOP + 1
+        KL = ITOP - IACTIV + 1
+!       Go through arrays in reverse order compressing to the back so
+!       that there are no zeros held in positions IACTIV to ITOP in ICN.
+!       Reset first entry of each row/col and pointer array IPTR.
+        DO 30 K = 1, KL
+          JPOS = ITOP - K + 1
+          IF (ICN(JPOS)==0) GOTO 30
+          KN = KN - 1
+          IF (REALS) A(KN) = A(JPOS)
+          IF (ICN(JPOS)>=0) GOTO 20
+!         First non-zero of row/col has been located.
+          J = -ICN(JPOS)
+          ICN(JPOS) = IPTR(J)
+          IPTR(J) = KN
+20        ICN(KN) = ICN(JPOS)
+30      END DO
+        IACTIV = KN
+        RETURN
+
+      END SUBROUTINE MA30DD
+!_______________________________________________________________________
+
+      SUBROUTINE MA30BD(N,ICN,A,LICN,LENR,LENRL,IDISP,IP,IQ,W,IW,IFLAG)
+! ..
+! MA30BD performs the LU decomposition of the diagonal blocks of
+! a new matrix PAQ of the same sparsity pattern, using information
+! from a previous call to MA30AD. THe entries of the input matrix
+! must already be in their final positions in the LU decomposition
+! structure. This routine executes about five times faster than
+! MA30AD.
+! ..
+! We now describe the argument list for MA30BD. Consult MA30AD for
+!     further information on these parameters.
+! N   is an integer variable set to the order of the matrix.
+! ICN is an integer array of length LICN. It should be unchanged
+!     since the last call to MA30AD. It is not altered by MA30BD.
+! A   is a real(kind=wp) array of length LICN. The user must set
+!     entries IDISP(1) to IDISP(2) to contain the entries in the
+!     diagonal blocks of the matrix PAQ whose column numbers are
+!     held in ICN, using corresponding positions. Note that some
+!     zeros may need to be held explicitly. On output entries
+!     IDISP(1) to IDISP(2) of array A contain the LU decomposition
+!     of the diagonal blocks of PAQ. Entries A(1) to A(IDISP(1)-1)
+!     are neither required nor altered by MA30BD.
+! LICN is an integer variable which must be set by the user to the
+!     length of arrays A and ICN. it is not altered by MA30BD.
+! LENR, LENRL are integer arrays of length N. They should be
+!     unchanged since the last call to MA30AD. They are not
+!     altered by MA30BD.
+! IDISP is an integer array of length 2. It should be unchanged
+!     since the last call to MA30AD. It is not altered by MA30BD.
+! IP, IQ are integer arrays of length N. They should be unchanged
+!     since the last call to MA30AD. They are not altered by
+!     MA30BD.
+! W   is a REAL(KIND=WP) array of length N which is used as
+!     workspace by MA30BD.
+! IW  is an integer array of length N which is used as workspace
+!     by MA30BD.
+! IFLAG is an integer variable. On output from MA30BD, IFLAG has
+!     the value zero if the factorization was successful, has the
+!     value I if pivot I was very small and has the value -I if
+!     an unexpected singularity was detected at stage I of the
+!     decomposition.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER :: IFLAG, LICN, N
+! ..
+! .. Array Arguments ..
+        REAL (WP) :: A(LICN), W(N)
+        INTEGER :: ICN(LICN), IDISP(2), IP(N), IQ(N), IW(N), LENR(N), LENRL(N)
+! ..
+! .. Local Scalars ..
+        REAL (WP) :: AU, ROWMAX
+        INTEGER :: I, IFIN, ILEND, IPIVJ, ISING, ISTART, J, JAY, JAYJAY, JFIN, &
+          JJ, PIVPOS
+        LOGICAL :: STAB
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, MAX
+! ..
+! .. FIRST EXECUTABLE STATEMENT MA30BD
+! ..
+        STAB = EPS <= ONE
+        RMIN = EPS
+        ISING = 0
+        IFLAG = 0
+        W(1:N) = ZERO
+!       Set up pointers to the beginning of the rows.
+        IW(1) = IDISP(1)
+        IF (N==1) GOTO 30
+        DO I = 2, N
+          IW(I) = IW(I-1) + LENR(I-1)
+        END DO
+
+!       Start of main loop.
+!       At step I, row I of A is transformed to row I of LU by
+!       adding appropriate multiples of rows 1 TO I-1 using row
+!       Gauss elimination.
+30      DO 170 I = 1, N
+!         ISTART is beginning of row I of A and row I of L.
+          ISTART = IW(I)
+!         IFIN is end of row I of A and row I of U.
+          IFIN = ISTART + LENR(I) - 1
+!         ILEND is end of row I of L.
+          ILEND = ISTART + LENRL(I) - 1
+          IF (ISTART>ILEND) GOTO 100
+!         Load row I of A into vector W.
+          DO JJ = ISTART, IFIN
+            J = ICN(JJ)
+            W(J) = A(JJ)
+          END DO
+
+!         Add multiples of appropriate rows of I to I-1 to row I.
+          DO 80 JJ = ISTART, ILEND
+            J = ICN(JJ)
+!           IPIVJ is position of pivot in row J.
+            IPIVJ = IW(J) + LENRL(J)
+!           Form multiplier AU.
+            AU = -W(J)/A(IPIVJ)
+            IF (LBIG) BIG = MAX(ABS(AU),BIG)
+            W(J) = AU
+!           AU * ROW J (U part) is added to row I.
+            IPIVJ = IPIVJ + 1
+            JFIN = IW(J) + LENR(J) - 1
+            IF (IPIVJ>JFIN) GOTO 80
+!           Innermost loop.
+            IF (LBIG) GOTO 60
+            DO JAYJAY = IPIVJ, JFIN
+              JAY = ICN(JAYJAY)
+              W(JAY) = W(JAY) + AU*A(JAYJAY)
+            END DO
+            GOTO 80
+60          DO JAYJAY = IPIVJ, JFIN
+              JAY = ICN(JAYJAY)
+              W(JAY) = W(JAY) + AU*A(JAYJAY)
+              BIG = MAX(ABS(W(JAY)),BIG)
+            END DO
+80        END DO
+
+!         Reload W back into A (now LU).
+          DO JJ = ISTART, IFIN
+            J = ICN(JJ)
+            A(JJ) = W(J)
+            W(J) = ZERO
+          END DO
+!         We now perform the stability checks.
+100       PIVPOS = ILEND + 1
+          IF (IQ(I)>0) GOTO 150
+!         Matrix had singularity at this point in MA30AD.
+!         Is it the first such pivot in current block?
+          IF (ISING==0) ISING = I
+!         Does current matrix have a singularity in the same place?
+          IF (PIVPOS>IFIN) GOTO 110
+          IF (ABS(A(PIVPOS))>ZERO) GOTO 180
+!         It does, so set ising if it is not the end of the current
+!         block. Check to see that appropriate part of LU is zero
+!         or null.
+110       IF (ISTART>IFIN) GOTO 130
+          DO 120 JJ = ISTART, IFIN
+            IF (ICN(JJ)<ISING) GOTO 120
+            IF (ABS(A(JJ))>ZERO) GOTO 180
+120       END DO
+130       IF (PIVPOS<=IFIN) A(PIVPOS) = ONE
+          IF (IP(I)>0 .AND. I/=N) GOTO 170
+!         End of current block. Reset zero pivots and ISING.
+          DO 140 J = ISING, I
+            IF ((LENR(J)-LENRL(J))==0) GOTO 140
+            JJ = IW(J) + LENRL(J)
+            A(JJ) = ZERO
+140       END DO
+          ISING = 0
+          GOTO 170
+!         Matrix had non-zero pivot in MA30AD at this stage.
+150       IF (PIVPOS>IFIN) GOTO 180
+          IF (ABS(A(PIVPOS))<=ZERO) GOTO 180
+          IF (.NOT.STAB) GOTO 170
+          ROWMAX = ZERO
+          DO JJ = PIVPOS, IFIN
+            ROWMAX = MAX(ROWMAX,ABS(A(JJ)))
+          END DO
+          IF (ABS(A(PIVPOS))/ROWMAX>=RMIN) GOTO 170
+          IFLAG = I
+          RMIN = ABS(A(PIVPOS))/ROWMAX
+!         End of main loop.
+170     END DO
+
+        GOTO 190
+!       Error return
+180     IF (LP/=0) WRITE (LP,90000) I
+        IFLAG = -I
+
+190     RETURN
+90000   FORMAT (' Error return from MA30BD; Singularity detected in',' row', &
+          I8)
+
+      END SUBROUTINE MA30BD
+!_______________________________________________________________________
+
+      SUBROUTINE MA30CD(N,ICN,A,LICN,LENR,LENRL,LENOFF,IDISP,IP,IQ,X, &
+        W,MTYPE)
+! ..
+! MA30CD uses the factors produced by MA30AD or MA30BD to solve
+! AX = B or A TRANSPOSE X = B when the matrix P1*A*Q1(PAQ) is
+! block lower triangular (including the case of only one diagonal
+! block).
+! ..
+! We now describe the argument list for MA30CD.
+! N   is an integer variable set to the order of the matrix. It is
+!     not altered by the subroutine.
+! ICN is an integer array of length LICN. Entries IDISP(1) to
+!     IDISP(2) should be unchanged since the last call to MA30AD. If
+!     the matrix has more than one diagonal block, then column indices
+!     corresponding to non-zeros in sub-diagonal blocks of PAQ must
+!     appear in positions 1 to IDISP(1)-1. For the same row those
+!     entries must be contiguous, with those in row I preceding those
+!     in row I+1 (I=1,...,N-1) and no wasted space between rows.
+!     Entries may be in any order within each row. It is not altered
+!     by MA30CD.
+! A   is a REAL(KIND=WP) array of length LICN. Entries IDISP(1) to
+!     IDISP(2) should be unchanged since the last call to MA30AD or
+!     MA30BD. If the matrix has more than one diagonal block, then
+!     the values of the non-zeros in sub-diagonal blocks must be in
+!     positions 1 to IDISP(1)-1 in the order given by ICN. It is not
+!     altered by MA30CD.
+! LICN is an integer variable set to the size of arrays ICN and A.
+!     It is not altered by MA30CD.
+! LENR, LENRL are integer arrays of length N which should be
+!     unchanged since the last call to MA30AD. They are not
+!     altered by MA30CD.
+! LENOFF is an integer array of length N. If the matrix PAQ (or
+!     P1*A*Q1) has more than one diagonal block, then LENOFF(I),
+!     I=1,...,N should be set to the number of non-zeros in row I of
+!     the matrix PAQ which are in sub-diagonal blocks. If there is
+!     only one diagonal block then LENOFF(1) may be set TO -1, in
+!     which case the other entries of LENOFF are never accessed.
+!     It is not altered by ma30cd.
+! IDISP is an integer array of length 2 which should be unchanged
+!     since the last call to MA30AD. It is not altered by MA30CD.
+! IP, IQ are integer arrays of length N which should be unchanged
+!     since the last call to MA30AD. They are not altered by
+!     MA30CD.
+! X   is a REAL(KIND=WP) array of length N. It must be set by the
+!     user to the values of the right hand side vector B for the
+!     equations being solved. ON exit from MA30CD it will be equal
+!     to the solution X required.
+! W   is a REAL(KIND=WP) array of length N which is used as
+!     workspace by MA30CD.
+! MTYPE is an integer variable which must be set by the user. If
+!     MTYPE = 1, then the solution to the system AX = B is returned.
+!     Any other value for mtype will return the solution to the
+!     system A TRANSPOSE X = B. It is not altered by MA30CD.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER :: LICN, MTYPE, N
+! ..
+! .. Array Arguments ..
+        REAL (WP) :: A(LICN), W(N), X(N)
+        INTEGER :: ICN(LICN), IDISP(2), IP(N), IQ(N), LENOFF(N), LENR(N), &
+          LENRL(N)
+! ..
+! .. Local Scalars ..
+        REAL (WP) :: WI, WII
+        INTEGER :: I, IB, IBACK, IBLEND, IBLOCK, IEND, IFIRST, II, III,   &
+          ILAST, J, J1, J2, J3, JJ, JPIV, JPIVP1, K, LJ1, LJ2, LT, LTEND, &
+          NUMBLK
+        LOGICAL :: NEG, NOBLOC
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, IABS, MAX
+! ..
+! .. FIRST EXECUTABLE STATEMENT MA30CD
+! ..
+!       The final value of RESID is the maximum residual for an
+!       inconsistent set of equations.
+        RESID = ZERO
+!       NOBLOC is .TRUE. if subroutine block has been used
+!       previously and is .FALSE. otherwise. The value .FALSE.
+!       means that LENOFF will not be subsequently accessed.
+        NOBLOC = LENOFF(1) < 0
+        IF (MTYPE/=1) GOTO 140
+
+!       We now solve  A * X = B.
+!       NEG is used to indicate when the last row in a block
+!       has been reached. It is then set to .TRUE. whereafter
+!       back substitution is performed on the block.
+        NEG = .FALSE.
+!       IP(N) is negated so that the last row of the last
+!       block can be recognised. It is reset to its positive
+!       value on exit.
+        IP(N) = -IP(N)
+!       Preorder VECTOR ... W(I) = X(IP(I))
+        DO II = 1, N
+          I = IP(II)
+          I = IABS(I)
+          W(II) = X(I)
+        END DO
+!       LT holds the position of the first non-zero in the current
+!       row of the off-diagonal blocks.
+        LT = 1
+!       IFIRST holds the index of the first row in the current block.
+        IFIRST = 1
+!       IBLOCK holds the position of the first non-zero in the current
+!       row of the LU decomposition of the diagonal blocks.
+        IBLOCK = IDISP(1)
+!       If I is not the last row of a block, then a pass through this
+!       loop adds the inner product of row I of the off-diagonal blocks
+!       and W to W and performs forward elimination using row I of the
+!       LU decomposition. If I is the last row of a block then, after
+!       performing these aforementioned operations, back substitution
+!       is performed using the rows of the block.
+        DO 120 I = 1, N
+          WI = W(I)
+          IF (NOBLOC) GOTO 30
+          IF (LENOFF(I)==0) GOTO 30
+!         Operations using lower triangular blocks.
+!         LTEND is the end of row I in the off-diagonal blocks.
+          LTEND = LT + LENOFF(I) - 1
+          DO JJ = LT, LTEND
+            J = ICN(JJ)
+            WI = WI - A(JJ)*W(J)
+          END DO
+!         LT is set the beginning of the next off-diagonal row.
+          LT = LTEND + 1
+!         Set NEG to .TRUE. if we are on the last row of the block.
+30        IF (IP(I)<0) NEG = .TRUE.
+          IF (LENRL(I)==0) GOTO 50
+!         Forward elimination phase.
+!         IEND is the end of the L part of row I in the LU decomposition.
+          IEND = IBLOCK + LENRL(I) - 1
+          DO JJ = IBLOCK, IEND
+            J = ICN(JJ)
+            WI = WI + A(JJ)*W(J)
+          END DO
+!         IBLOCK is adjusted to point to the start of the next row.
+50        IBLOCK = IBLOCK + LENR(I)
+          W(I) = WI
+          IF (.NOT.NEG) GOTO 120
+!         Back substitution phase.
+!         J1 is position in A/ICN after end of block beginning in
+!         row IFIRST and ending in row I.
+          J1 = IBLOCK
+!         Are there any singularities in this block? If not, continue
+!         with the back substitution.
+          IB = I
+          IF (IQ(I)>0) GOTO 70
+          DO III = IFIRST, I
+            IB = I - III + IFIRST
+            IF (IQ(IB)>0) GOTO 70
+            J1 = J1 - LENR(IB)
+            RESID = MAX(RESID,ABS(W(IB)))
+            W(IB) = ZERO
+          END DO
+!         Entire block is singular.
+          GOTO 110
+!         Each pass through this loop performs the back substitution
+!         operations for a single row, starting at the end of the
+!         block and working through it in reverse order.
+70        DO III = IFIRST, IB
+            II = IB - III + IFIRST
+!           J2 is end of row II.
+            J2 = J1 - 1
+!           J1 is beginning of row II.
+            J1 = J1 - LENR(II)
+!           JPIV is the position of the pivot in row II.
+            JPIV = J1 + LENRL(II)
+            JPIVP1 = JPIV + 1
+!           JUMP if row II of U has no non-zeros.
+            IF (J2<JPIVP1) GOTO 90
+            WII = W(II)
+            DO JJ = JPIVP1, J2
+              J = ICN(JJ)
+              WII = WII - A(JJ)*W(J)
+            END DO
+            W(II) = WII
+90          W(II) = W(II)/A(JPIV)
+          END DO
+110       IFIRST = I + 1
+          NEG = .FALSE.
+120     END DO
+
+!       Reorder solution vector, X(I) = W(IQINVERSE(I)).
+        DO II = 1, N
+          I = IQ(II)
+          I = IABS(I)
+          X(I) = W(II)
+        END DO
+        IP(N) = -IP(N)
+        GOTO 320
+
+!       WE now solve ATRANSPOSE * X = B.
+!       Preorder vector, W(I) = X(IQ(I)).
+140     DO II = 1, N
+          I = IQ(II)
+          I = IABS(I)
+          W(II) = X(I)
+        END DO
+!       LJ1 points to the beginning the current row in the off-diagonal
+!       blocks.
+        LJ1 = IDISP(1)
+!       IBLOCK is initialized to point to the beginning of the block
+!       after the last one.
+        IBLOCK = IDISP(2) + 1
+!       ILAST is the last row in the current block.
+        ILAST = N
+!       IBLEND points to the position after the last non-zero in the
+!       current block.
+        IBLEND = IBLOCK
+!       Each pass through this loop operates with one diagonal block and
+!       the off-diagonal part of the matrix corresponding to the rows
+!       of this block. The blocks are taken in reverse order and the
+!       number of times the loop is entered is MIN(N, NO. BLOCKS+1).
+        DO NUMBLK = 1, N
+          IF (ILAST==0) GOTO 300
+          IBLOCK = IBLOCK - LENR(ILAST)
+!         This loop finds the index of the first row in the current
+!         block. It is FIRST and IBLOCK is set to the position of
+!         the beginning of this first row.
+          DO K = 1, N
+            II = ILAST - K
+            IF (II==0) GOTO 170
+            IF (IP(II)<0) GOTO 170
+            IBLOCK = IBLOCK - LENR(II)
+          END DO
+170       IFIRST = II + 1
+!         J1 points to the position of the beginning of row I (LT part)
+!         or pivot.
+          J1 = IBLOCK
+!         Forward elimination.
+!         Each pass through this loop performs the operations for one row
+!         of the block. If the corresponding entry of W is zero then the
+!         operations can be avoided.
+          DO I = IFIRST, ILAST
+            IF (ABS(W(I))<=ZERO) GOTO 200
+!           JUMP IF ROW I SINGULAR.
+            IF (IQ(I)<0) GOTO 220
+!           J2 first points to the pivot in row I and then is made
+!           to point to the first non-zero in the U TRANSPOSE part
+!           of the row.
+            J2 = J1 + LENRL(I)
+            WI = W(I)/A(J2)
+            IF (LENR(I)-LENRL(I)==1) GOTO 190
+            J2 = J2 + 1
+!           J3 points to the end of row I.
+            J3 = J1 + LENR(I) - 1
+            DO JJ = J2, J3
+              J = ICN(JJ)
+              W(J) = W(J) - A(JJ)*WI
+            END DO
+190         W(I) = WI
+200         J1 = J1 + LENR(I)
+          END DO
+          GOTO 240
+!         Deal with rest of block which is singular.
+220       DO II = I, ILAST
+            RESID = MAX(RESID,ABS(W(II)))
+            W(II) = ZERO
+          END DO
+!         Back substitution.
+!         This loop does the back substitution on the rows of the
+!         block in the reverse order doing it simultaneously on
+!         the L TRANSPOSE part of the diagonal blocks and the
+!         off-diagonal blocks.
+240       J1 = IBLEND
+          DO 280 IBACK = IFIRST, ILAST
+            I = ILAST - IBACK + IFIRST
+!           J1 points to the beginning of row I.
+            J1 = J1 - LENR(I)
+            IF (LENRL(I)==0) GOTO 260
+!           J2 points to the end of the L TRANSPOSE part of row I.
+            J2 = J1 + LENRL(I) - 1
+            DO JJ = J1, J2
+              J = ICN(JJ)
+              W(J) = W(J) + A(JJ)*W(I)
+            END DO
+260         IF (NOBLOC) GOTO 280
+!           Operations using lower triangular blocks.
+            IF (LENOFF(I)==0) GOTO 280
+!           LJ2 points to the end of row I of the off-diagonal blocks.
+            LJ2 = LJ1 - 1
+!           LJ1 points to the beginning of row I of the off-diagonal
+!           blocks.
+            LJ1 = LJ1 - LENOFF(I)
+            DO JJ = LJ1, LJ2
+              J = ICN(JJ)
+              W(J) = W(J) - A(JJ)*W(I)
+            END DO
+280       END DO
+          IBLEND = J1
+          ILAST = IFIRST - 1
+        END DO
+!       Reorder solution vector, X(I) = W(IPINVERSE(I)).
+300     DO II = 1, N
+          I = IP(II)
+          I = IABS(I)
+          X(I) = W(II)
+        END DO
+
+320     RETURN
+
+      END SUBROUTINE MA30CD
+!_______________________________________________________________________
+
+! Private Variable Information.
+! Private variables for MA30ED hold control parameters.
+!     Original : COMMON /MA30ED/ LP,ABORT1,ABORT2,ABORT3
+! The integer LP is the unit number to which the error messages are
+!     sent. LP has a default value of 6. This default value can be
+!     reset by the user, if desired. A value of 0 suppresses all
+!     messages.
+! The logical variables ABORT1, ABORT2, ABORT3 are used to control
+!     the conditions under which the subroutine will terminate.
+! If ABORT1 iS .TRUE. then the subroutine will exit immediately on
+!     detecting structural singularity.
+! If ABORT2 iS .TRUE. then the subroutine will exit immediately on
+!     detecting numerical singularity.
+! If ABORT3 iS .TRUE. then the subroutine will exit immediately when
+!     the available space in A/ICN is filled up by the previously
+!     decomposed, active, and undecomposed parts of the matrix.
+! The default values for ABORT1, ABORT2, ABORT3 are set to .TRUE.,
+!     .TRUE., and .FALSE., respectively.
+
+! The private variables for MA30FD are used to provide the user with
+! information on the decomposition.
+!     Original : COMMON /MA30FD/ IRNCP,ICNCP,IRANK,MINIRN,MINICN
+! IRNCP AND ICNCP are integer variables used to monitor the adequacy
+!     of the allocated space in arrays IRN and A/ICN, respectively,
+!     by taking account of the number of data management compresses
+!     required on these arrays. If IRNCP or ICNCP is fairly large (say
+!     greater than N/10), It may be advantageous to increase the size
+!     of the corresponding array(s). IRNCP and ICNCP are initialized
+!     to zero on entry to MA30AD and are incremented each time the
+!     compressing routine MA30DD is entered.
+! ICNCP is the number of compresses on A/ICN.
+! IRNCP is the number of compresses on IRN.
+! IRANK is an integer variable which gives an estimate (actually an
+!     upper bound) of the rank of the matrix. On an exit with IFLAG
+!     equal to 0, this will be equal to N.
+! MINIRN is an integer variable which, after a successful call to
+!     MA30AD, indicates the minimum length to which IRN can be
+!     reduced while still permitting a successful decomposition
+!     of the same matrix. If, however, the user were to decrease the
+!     length of IRN to that size, the number of compresses (IRNCP)
+!     may be very high and quite costly. If LIRN is not large enough
+!     to begin the decomposition on a diagonal block, MINIRN will be
+!     equal to the value required to continue the decomposition and
+!     IFLAG will be set to -3 or -6. A value of LIRN slightly greater
+!     than this (say about N/2) will usually provide enough space to
+!     complete the decomposition on that block. In the event of any
+!     other failure minirn gives the minimum size of IRN required
+!     for a successful decomposition up to that point.
+! MINICN is an integer variable which after a successful call to
+!     MA30AD, indicates the minimum size of LICN required to enable
+!     a successful decomposition. In the event of failure with
+!     IFLAG = -5, MINICN will, if ABORT3 is left set to .FALSE.,
+!     indicate the minimum length that would be sufficient to
+!     prevent this error in a subsequent run on an identical matrix.
+!     Again the user may prefer to use a value of icn slightly
+!     greater than MINICN for subsequent runs to avoid too many
+!     conpresses (ICNCP). In the event of failure with IFLAG equal
+!     to any negative value except -4, minicn will give the minimum
+!     length to which licn could be reduced to enable a successful
+!     decomposition to the point at which failure occurred. Notice
+!     that, on a successful entry IDISP(2) gives the amount of space
+!     in A/ICN required for the decomposition while MINICN will
+!     usually be slightly greater because of the need for
+!     "elbow room". If the user is very unsure how large to make
+!     LICN, the variable MINICN can be used to provide that
+!     information. A preliminary run should be performed with ABORT3
+!     left set to .FALSE. and LICN about 3/2 times as big as the
+!     number of non-zeros in the original matrix. Unless the initial
+!     problem is very sparse (when the run will be successful) or
+!     fills in extremely badly (giving an error return with
+!     IFLAG = -4), an error return with IFLAG = -5 should result and
+!     MINICN will give the amount of space required for a successful
+!     decomposition.
+
+! The private variables for MA30GD are used by the MA30BD entry only.
+!     Original : COMMON /MA30GD/ EPS,RMIN
+! EPS is a REAL(KIND=WP) variable. It is used to test for small
+!     pivots. Its default value is 1.0D-4 (1.0E-4 in E version).
+!     If the user sets EPS to any value greater than 1.0, then no
+!     check is made on the size of the pivots. Although the absence
+!     of such a check would fail to warn the user of bad instability,
+!     its absence will enable MA30BD to run slightly faster. An a
+!     posteriori check on the stability of the factorization can
+!     be obtained from MC24AD.
+! RMIN is a REAL(KIND=WP) variable which gives the user some
+!     information about the stability of the decomposition. At each
+!     stage of the LU decomposition the magnitude of the pivot APIV
+!     is compared with the largest off-diagonal entry currently in
+!     its row (row of U), ROWMAX say. If the ratio
+!                       MIN(APIV/ROWMAX)
+!     where the minimum is taken over all the rows, is less than EPS
+!     then RMIN is set to this minimum value and IFLAG is returned
+!     with the value +I where I is the row in which this minimum
+!     occurs. If the user sets EPS greater than one, then this test
+!     is not performed. In this case, and when there are no small
+!     pivots rmin will be set equal to EPS.
+
+! The private variables for MA30HD are used by MA30CD only.
+!     Original : COMMON /MA30HD/ RESID
+! RESID is a REAL(KIND=WP) variable. In the case of singular or
+!     rectangular matrices its final value will be equal to the
+!     maximum residual for the unsatisfied equations; otherwise
+!     its value will be set to zero.
+
+!  MA30ID private variables control the use of drop tolerances,
+!     the modified pivot option and the calculation of the largest
+!     entry in the factorization process. These private variables
+!     were added to the MA30 package in February, 1983.
+!     Original : COMMON /MA30ID/ TOL,BIG,NDROP,NSRCH,LBIG
+! TOL is a REAL(KIND=WP) variable. If it is set to a positive
+!     value, then MA30AD will drop from the factors any non-zero
+!     whose modulus is less than TOL. The factorization will then
+!     require less storage but will be inaccurate. After a run of
+!     MA30AD where entries have been dropped, MA30BD should not
+!     be called. The default value for TOL is 0.0.
+! BIG is a REAL(KIND=WP) variable. If LBIG has been set to .TRUE.,
+!     BIG will be set to the largest entry encountered during the
+!     factorization.
+! NDROP is an integer variable. If TOL has been set positive, on
+!     exit from MA30AD, NDROP will hold the number of entries
+!     dropped from the data structure.
+! NSRCH is an integer variable. If NSRCH is set to a value less
+!     than or equal to N, then a different pivot option will be
+!     employed by MA30AD. This may result in different fill-in
+!     and execution time for MA30AD. If NSRCH is less than or
+!     equal to N, the workspace arrays LASTC and NEXTC are not
+!     referenced by MA30AD. The default value for NSRCH is 32768.
+! LBIG is a logical variable. If LBIG is set to .TRUE., the value
+!     of the largest entry encountered in the factorization by
+!     MA30AD is returned in BIG. Setting LBIG to .TRUE. will
+!     marginally increase the factorization time for MA30AD and
+!     will increase that for MA30BD by about 20%. The default
+!     value for LBIG is .FALSE.
+!_______________________________________________________________________
+
+      SUBROUTINE MC13D(N,ICN,LICN,IP,LENR,IOR,IB,NUM,IW)
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER :: LICN, N, NUM
+! ..
+! .. Array Arguments ..
+        INTEGER :: IB(N), ICN(LICN), IOR(N), IP(N), IW(N,3), LENR(N)
+! ..
+! .. FIRST EXECUTABLE STATEMENT MA13D
+! ..
+        CALL MC13E(N,ICN,LICN,IP,LENR,IOR,IB,NUM,IW(1,1),IW(1,2),IW(1,3))
+        RETURN
+
+      END SUBROUTINE MC13D
+!_______________________________________________________________________
+
+      SUBROUTINE MC13E(N,ICN,LICN,IP,LENR,ARP,IB,NUM,LOWL,NUMB,PREV)
+! ..
+! ARP(I) is one less than the number of unsearched edges leaving
+!     node I. At the end of the algorithm it is set to a
+!     permutation which puts the matrix in block lower
+!     triangular form.
+! IB(I) is the position in the ordering of the start of the Ith
+!     block. IB(N+1-I) holds the node number of the Ith node
+!     on the stack.
+! LOWL(I) is the smallest stack position of any node to which a
+!     path from node I has been found. It is set to N+1 when
+!     node I is removed from the stack.
+! NUMB(I) is the position of node I in the stack if it is on
+!     the stack. It is the permuted order of node I for those
+!     nodes whose final position has been found and is otherwise
+!     zero.
+! PREV(I) is the node at the end of the path when node I was
+!     placed on the stack.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER :: LICN, N, NUM
+! ..
+! .. Array Arguments ..
+        INTEGER :: ARP(N), IB(N), ICN(LICN), IP(N), LENR(N), LOWL(N),  &
+          NUMB(N), PREV(N)
+! ..
+! .. Local Scalars ..
+        INTEGER :: DUMMY, I, I1, I2, ICNT, II, ISN, IST, IST1, IV, IW, &
+          J, K, LCNT, NNM1, STP
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC MIN
+! ..
+! .. FIRST EXECUTABLE STATEMENT MA13E
+! ..
+!       ICNT is the number of nodes whose positions in final ordering
+!       have been found.
+        ICNT = 0
+!       NUM is the number of blocks that have been found.
+        NUM = 0
+        NNM1 = N + N - 1
+
+!       Initialization of arrays.
+        DO J = 1, N
+          NUMB(J) = 0
+          ARP(J) = LENR(J) - 1
+        END DO
+
+        DO 90 ISN = 1, N
+!         Look for a starting node.
+          IF (NUMB(ISN)/=0) GOTO 90
+          IV = ISN
+!         IST is the number of nodes on the stack. It is the
+!         stack pointer.
+          IST = 1
+!         Put node IV at beginning of stack.
+          LOWL(IV) = 1
+          NUMB(IV) = 1
+          IB(N) = IV
+
+!         The body of this loop puts a new node on the stack
+!         or backtracks.
+          DO 80 DUMMY = 1, NNM1
+            I1 = ARP(IV)
+!           Have all edges leaving node iv been searched?
+            IF (I1<0) GOTO 30
+            I2 = IP(IV) + LENR(IV) - 1
+            I1 = I2 - I1
+
+!           Look at edges leaving node iv until one enters a
+!           new node or all edges are exhausted.
+            DO 20 II = I1, I2
+              IW = ICN(II)
+!             Has node iw been on stack already?
+              IF (NUMB(IW)==0) GOTO 70
+!             Update value of LOWL(IV) if necessary.
+20          LOWL(IV) = MIN(LOWL(IV),LOWL(IW))
+
+!           There are no more edges leaving node IV.
+            ARP(IV) = -1
+!           Is node IV the root of a block.
+30          IF (LOWL(IV)<NUMB(IV)) GOTO 60
+
+!           Order nodes in a block.
+            NUM = NUM + 1
+            IST1 = N + 1 - IST
+            LCNT = ICNT + 1
+!           Peel block off the top of the stack starting at the
+!           top and working down to the root of the block.
+            DO STP = IST1, N
+              IW = IB(STP)
+              LOWL(IW) = N + 1
+              ICNT = ICNT + 1
+              NUMB(IW) = ICNT
+              IF (IW==IV) GOTO 50
+            END DO
+50          IST = N - STP
+            IB(NUM) = LCNT
+!           Are there any nodes left on the stack?
+            IF (IST/=0) GOTO 60
+!           Have all the nodes been ordered?
+            IF (ICNT<N) GOTO 90
+            GOTO 100
+
+!           Backtrack to previous node on path.
+60          IW = IV
+            IV = PREV(IV)
+!           Update value of LOWL(IV) if necessary.
+            LOWL(IV) = MIN(LOWL(IV),LOWL(IW))
+            GOTO 80
+
+!           Put new node on the stack.
+70          ARP(IV) = I2 - II - 1
+            PREV(IW) = IV
+            IV = IW
+            IST = IST + 1
+            LOWL(IV) = IST
+            NUMB(IV) = IST
+            K = N + 1 - IST
+            IB(K) = IV
+80        END DO
+
+90      END DO
+
+!       Put permutation in the required form.
+100     DO I = 1, N
+          II = NUMB(I)
+          ARP(II) = I
+        END DO
+        RETURN
+
+      END SUBROUTINE MC13E
+!_______________________________________________________________________
+
+      SUBROUTINE MC20AD(NC,MAXA,A,INUM,JPTR,JNUM,JDISP)
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+! ..
+        INTEGER :: JDISP, MAXA, NC
+! ..
+! .. Array Arguments ..
+        REAL (WP) :: A(MAXA)
+        INTEGER :: INUM(MAXA), JNUM(MAXA), JPTR(NC)
+! ..
+! .. Local Scalars ..
+        REAL (WP) :: ACE, ACEP
+        INTEGER :: I, ICE, ICEP, J, JA, JB, JCE, JCEP, K, KR, LOC, MYNULL
+! ..
+! .. FIRST EXECUTABLE STATEMENT MA20AD
+! ..
+        MYNULL = -JDISP
+!       CLEAR JPTR
+        JPTR(1:NC) = 0
+!       Count the number of elements in each column.
+        DO K = 1, MAXA
+          J = JNUM(K) + JDISP
+          JPTR(J) = JPTR(J) + 1
+        END DO
+!       SET THE JPTR ARRAY.
+        K = 1
+        DO J = 1, NC
+          KR = K + JPTR(J)
+          JPTR(J) = K
+          K = KR
+        END DO
+
+!       Reorder the elements into column order. The algorithm is an
+!       in-place sort and is of order MAXA.
+        DO 50 I = 1, MAXA
+!         Establish the current entry.
+          JCE = JNUM(I) + JDISP
+          IF (JCE==0) GOTO 50
+          ACE = A(I)
+          ICE = INUM(I)
+!         Clear the location vacated.
+          JNUM(I) = MYNULL
+!         Chain from current entry to store items.
+          DO 40 J = 1, MAXA
+!           Current entry not in correct position. Determine the
+!           correct position to store entry.
+            LOC = JPTR(JCE)
+            JPTR(JCE) = JPTR(JCE) + 1
+!           Save contents of that location.
+            ACEP = A(LOC)
+            ICEP = INUM(LOC)
+            JCEP = JNUM(LOC)
+!           Store current entry.
+            A(LOC) = ACE
+            INUM(LOC) = ICE
+            JNUM(LOC) = MYNULL
+!           Check if next current entry needs to be processed.
+            IF (JCEP==MYNULL) GOTO 50
+!           It does. Copy into current entry.
+            ACE = ACEP
+            ICE = ICEP
+40        JCE = JCEP + JDISP
+
+50      END DO
+
+!       Reset JPTR vector.
+        JA = 1
+        DO J = 1, NC
+          JB = JPTR(J)
+          JPTR(J) = JA
+          JA = JB
+        END DO
+        RETURN
+
+      END SUBROUTINE MC20AD
+!_______________________________________________________________________
+
+      SUBROUTINE MC20BD(NC,MAXA,A,INUM,JPTR)
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER :: MAXA, NC
+! ..
+! .. Array Arguments ..
+        REAL (WP) :: A(MAXA)
+        INTEGER :: INUM(MAXA), JPTR(NC)
+! ..
+! .. Local Scalars ..
+        REAL (WP) :: ACE
+        INTEGER :: ICE, IK, J, JJ, K, KDUMMY, KLO, KMAX, KOR
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC IABS
+! ..
+! .. FIRST EXECUTABLE STATEMENT MA20BD
+! ..
+        KMAX = MAXA
+        DO JJ = 1, NC
+          J = NC + 1 - JJ
+          KLO = JPTR(J) + 1
+          IF (KLO>KMAX) GOTO 40
+          KOR = KMAX
+          DO KDUMMY = KLO, KMAX
+!           Items KOR,KOR+1,...,KMAX are in order.
+            ACE = A(KOR-1)
+            ICE = INUM(KOR-1)
+            DO K = KOR, KMAX
+              IK = INUM(K)
+              IF (IABS(ICE)<=IABS(IK)) GOTO 20
+              INUM(K-1) = IK
+              A(K-1) = A(K)
+            END DO
+            K = KMAX + 1
+20          INUM(K-1) = ICE
+            A(K-1) = ACE
+            KOR = KOR - 1
+          END DO
+!         Next column.
+40        KMAX = KLO - 2
+        END DO
+        RETURN
+
+      END SUBROUTINE MC20BD
+!_______________________________________________________________________
+
+      SUBROUTINE MC21A(N,ICN,LICN,IP,LENR,IPERM,NUMNZ,IW)
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER :: LICN, N, NUMNZ
+! ..
+! .. Array Arguments ..
+        INTEGER :: ICN(LICN), IP(N), IPERM(N), IW(N,4), LENR(N)
+! ..
+! .. FIRST EXECUTABLE STATEMENT MA21A
+! ..
+        CALL MC21B(N,ICN,LICN,IP,LENR,IPERM,NUMNZ,IW(1,1),IW(1,2), &
+          IW(1,3),IW(1,4))
+        RETURN
+
+      END SUBROUTINE MC21A
+!_______________________________________________________________________
+
+      SUBROUTINE MC21B(N,ICN,LICN,IP,LENR,IPERM,NUMNZ,PR,ARP,CV,OUT)
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+! ..
+        INTEGER :: LICN, N, NUMNZ
+! ..
+! .. Array Arguments ..
+        INTEGER :: ARP(N), CV(N), ICN(LICN), IP(N), IPERM(N), LENR(N), &
+          OUT(N), PR(N)
+! ..
+! .. Local Scalars ..
+        INTEGER :: I, II, IN1, IN2, IOUTK, J, J1, JORD, K, KK
+! ..
+! .. FIRST EXECUTABLE STATEMENT MA21B
+! ..
+! PR(I) is the previous row to I in the depth first search.
+!    It is used as a work array in the sorting algorithm.
+!    Elements (IPERM(I),I) I=1,...,N are non-zero at the
+!    end of the algorithm unless N assignments have not
+!    been made, in which case (IPERM(I),I) will be zero
+!    for N-NUMNZ entries.
+! CV(I) is the most recent row extension at which column I
+!    was visited.
+! ARP(I) is one less than the number of non-zeros in row I
+!    which have not been scanned when looking for a cheap
+!    assignment.
+! OUT(I) is one less than the number of non-zeros in row I
+!    which have not been scanned during one pass through
+!    the main loop.
+
+!       Initialization of arrays.
+        DO I = 1, N
+          ARP(I) = LENR(I) - 1
+          CV(I) = 0
+          IPERM(I) = 0
+        END DO
+        NUMNZ = 0
+
+!       Main loop.
+!       Each pass round this loop either results in a new
+!       assignment or gives a row with no assignment.
+        DO 100 JORD = 1, N
+          J = JORD
+          PR(J) = -1
+          DO 70 K = 1, JORD
+!           Look for a cheap assignment.
+            IN1 = ARP(J)
+            IF (IN1<0) GOTO 30
+            IN2 = IP(J) + LENR(J) - 1
+            IN1 = IN2 - IN1
+            DO II = IN1, IN2
+              I = ICN(II)
+              IF (IPERM(I)==0) GOTO 80
+            END DO
+!           No cheap assignment in row.
+            ARP(J) = -1
+!           Begin looking for assignment chain starting with row J.
+30          OUT(J) = LENR(J) - 1
+!           Inner loop. Extends chain by one or backtracks.
+            DO KK = 1, JORD
+              IN1 = OUT(J)
+              IF (IN1<0) GOTO 50
+              IN2 = IP(J) + LENR(J) - 1
+              IN1 = IN2 - IN1
+!             Forward scan.
+              DO 40 II = IN1, IN2
+                I = ICN(II)
+                IF (CV(I)==JORD) GOTO 40
+!               Column I has not yet been accessed during this pass.
+                J1 = J
+                J = IPERM(I)
+                CV(I) = JORD
+                PR(J) = J1
+                OUT(J1) = IN2 - II - 1
+                GOTO 70
+40            END DO
+
+!             Backtracking step.
+50            J = PR(J)
+              IF (J==-1) GOTO 100
+            END DO
+
+70        END DO
+
+!         New assignment is made.
+80        IPERM(I) = J
+          ARP(J) = IN2 - II - 1
+          NUMNZ = NUMNZ + 1
+          DO K = 1, JORD
+            J = PR(J)
+            IF (J==-1) GOTO 100
+            II = IP(J) + LENR(J) - OUT(J) - 2
+            I = ICN(II)
+            IPERM(I) = J
+          END DO
+
+100     END DO
+
+!       If matrix is structurally singular, we now complete the
+!       permutation IPERM.
+        IF (NUMNZ==N) RETURN
+        ARP(1:N) = 0
+        K = 0
+        DO 130 I = 1, N
+          IF (IPERM(I)/=0) GOTO 120
+          K = K + 1
+          OUT(K) = I
+          GOTO 130
+120       J = IPERM(I)
+          ARP(J) = I
+130     END DO
+        K = 0
+        DO 140 I = 1, N
+          IF (ARP(I)/=0) GOTO 140
+          K = K + 1
+          IOUTK = OUT(K)
+          IPERM(IOUTK) = I
+140     END DO
+        RETURN
+
+      END SUBROUTINE MC21B
+!_______________________________________________________________________
+
+      SUBROUTINE MC22AD(N,ICN,A,NZ,LENROW,IP,IQ,IW,IW1)
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER :: N, NZ
+! ..
+! .. Array Arguments ..
+        REAL (WP) :: A(NZ)
+        INTEGER :: ICN(NZ), IP(N), IQ(N), IW(N,2), IW1(NZ), LENROW(N)
+! ..
+! .. Local Scalars ..
+        REAL (WP) :: AVAL
+        INTEGER :: I, ICHAIN, IOLD, IPOS, J, J2, JJ, JNUM, JVAL, LENGTH, &
+          NEWPOS
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC IABS
+! ..
+! .. FIRST EXECUTABLE STATEMENT MA22AD
+! ..
+        IF (NZ<=0) GOTO 90
+        IF (N<=0) GOTO 90
+!       Set start of row I in IW(I,1) and LENROW(I) in IW(I,2)
+        IW(1,1) = 1
+        IW(1,2) = LENROW(1)
+        DO I = 2, N
+          IW(I,1) = IW(I-1,1) + LENROW(I-1)
+          IW(I,2) = LENROW(I)
+        END DO
+!       Permute LENROW according to IP. Set off-sets for new
+!       position of row IOLD in IW(IOLD,1) and put old row
+!       indices in IW1 in positions corresponding to the new
+!       position of this row in A/ICN.
+        JJ = 1
+        DO 30 I = 1, N
+          IOLD = IP(I)
+          IOLD = IABS(IOLD)
+          LENGTH = IW(IOLD,2)
+          LENROW(I) = LENGTH
+          IF (LENGTH==0) GOTO 30
+          IW(IOLD,1) = IW(IOLD,1) - JJ
+          J2 = JJ + LENGTH - 1
+          DO 20 J = JJ, J2
+20        IW1(J) = IOLD
+          JJ = J2 + 1
+30      END DO
+!       Set inverse permutation to IQ in IW(:,2).
+        DO I = 1, N
+          IOLD = IQ(I)
+          IOLD = IABS(IOLD)
+          IW(IOLD,2) = I
+        END DO
+!       Permute A and ICN in place, changing to new column numbers.
+!       Main loop.
+!       Each pass through this loop places a closed chain of
+!       column indices in their new (and final) positions.
+!       This is recorded by setting the iw1 entry to zero so
+!       that any which are subsequently encountered during
+!       this major scan can be bypassed.
+        DO 80 I = 1, NZ
+          IOLD = IW1(I)
+          IF (IOLD==0) GOTO 80
+          IPOS = I
+          JVAL = ICN(I)
+!         If row IOLD is in same positions after permutation,
+!         GOTO 150.
+          IF (IW(IOLD,1)==0) GOTO 70
+          AVAL = A(I)
+!         Chain loop.
+!         Each pass through this loop places one(permuted) column
+!         index in its final position, viz. IPOS.
+          DO ICHAIN = 1, NZ
+!           NEWPOS is the original position in A/ICN of the
+!           element to be placed in position IPOS. It is also
+!           the position of the next element in the chain.
+            NEWPOS = IPOS + IW(IOLD,1)
+!           Is chain complete?
+            IF (NEWPOS==I) GOTO 60
+            A(IPOS) = A(NEWPOS)
+            JNUM = ICN(NEWPOS)
+            ICN(IPOS) = IW(JNUM,2)
+            IPOS = NEWPOS
+            IOLD = IW1(IPOS)
+            IW1(IPOS) = 0
+!           End of chain loop.
+          END DO
+60        A(IPOS) = AVAL
+70        ICN(IPOS) = IW(JVAL,2)
+!         END OF MAIN LOOP
+80      END DO
+90      RETURN
+
+      END SUBROUTINE MC22AD
+!_______________________________________________________________________
+
+      SUBROUTINE MC23AD(N,ICN,A,LICN,LENR,IDISP,IP,IQ,LENOFF,IW,IW1)
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER :: LICN, N
+! ..
+! .. Array Arguments ..
+        REAL (WP) :: A(LICN)
+        INTEGER :: ICN(LICN), IDISP(2), IP(N), IQ(N), IW(N,5), IW1(N,2), &
+          LENOFF(N), LENR(N)
+! ..
+! .. Local Scalars ..
+        INTEGER :: I, I1, I2, IBEG, IBLOCK, IEND, II, ILEND, INEW, IOLD, &
+          IROWB, IROWE, J, JJ, JNEW, JNPOS, JOLD, K, LENI, NZ
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC MAX, MIN
+! ..
+! .. FIRST EXECUTABLE STATEMENT MA23AD
+! ..
+!     Input ... N,ICN ... A,ICN,LENR ...
+!     Set up pointers IW(:,1) to the beginning of the rows
+!     and set LENOFF equal to LENR.
+        IW1(1,1) = 1
+        LENOFF(1) = LENR(1)
+        IF (N==1) GOTO 20
+        DO I = 2, N
+          LENOFF(I) = LENR(I)
+          IW1(I,1) = IW1(I-1,1) + LENR(I-1)
+        END DO
+!       IDISP(1) points to the first position in A/ICN after
+!       the off-diagonal blocks and untreated rows.
+20      IDISP(1) = IW1(N,1) + LENR(N)
+
+!       Find row permutation ip to make diagonal zero-free.
+        CALL MC21A(N,ICN,LICN,IW1(1,1),LENR,IP,NUMNZ,IW(1,1))
+
+!       Possible error return for structurally singular matrices.
+        IF (NUMNZ/=N .AND. ABORT) GOTO 170
+
+!       IW1(:,2) and LENR are permutations of IW1(:,1) and
+!       LENR/LENOFF suitable for entry to MC13D since matrix
+!       with these row pointer and length arrays has maximum
+!       number of non-zeros on the diagonal.
+        DO II = 1, N
+          I = IP(II)
+          IW1(II,2) = IW1(I,1)
+          LENR(II) = LENOFF(I)
+        END DO
+
+!       Find symmetric permutation IQ to block lower triangular form.
+        CALL MC13D(N,ICN,LICN,IW1(1,2),LENR,IQ,IW(1,4),NUM,IW)
+
+        IF (NUM/=1) GOTO 60
+
+!       Action taken if matrix is irreducible: The
+!       whole matrix is just moved to the end of the storage.
+        DO I = 1, N
+          LENR(I) = LENOFF(I)
+          IP(I) = I
+          IQ(I) = I
+        END DO
+        LENOFF(1) = -1
+!       IDISP(1) is the first position after the last element in
+!       the off-diagonal blocks and untreated rows.
+        NZ = IDISP(1) - 1
+        IDISP(1) = 1
+!       IDISP(2) Is the position in A/ICN of the first element
+!       in the diagonal blocks.
+        IDISP(2) = LICN - NZ + 1
+        LARGE = N
+        IF (NZ==LICN) GOTO 200
+        DO K = 1, NZ
+          J = NZ - K + 1
+          JJ = LICN - K + 1
+          A(JJ) = A(J)
+          ICN(JJ) = ICN(J)
+        END DO
+        GOTO 200
+
+!       Data structure reordered.
+
+!       Form composite row permutation, IP(I) = IP(IQ(I)).
+60      DO II = 1, N
+          I = IQ(II)
+          IW(II,1) = IP(I)
+        END DO
+        DO I = 1, N
+          IP(I) = IW(I,1)
+        END DO
+
+!       Run through blocks in reverse order separating diagonal
+!       blocks which are moved to the end of the storage. Elements
+!       in off-diagonal blocks are left in place unless a compress
+!       is necessary.
+
+!       IBEG indicates the lowest value of J for which ICN(J) has
+!       been set to zero when element in position J was moved to
+!       the diagonal block part of storage.
+        IBEG = LICN + 1
+!       IEND is the position of the first element of those treated
+!       rows which are in diagonal blocks.
+        IEND = LICN + 1
+!       LARGE is the dimension of the largest block encountered
+!       so far.
+        LARGE = 0
+
+!       NUM is the number of diagonal blocks.
+        DO K = 1, NUM
+          IBLOCK = NUM - K + 1
+!         I1 is first row (in permuted form) of block IBLOCK.
+!         I2 is last row (in permuted form) of block IBLOCK.
+          I1 = IW(IBLOCK,4)
+          I2 = N
+          IF (K/=1) I2 = IW(IBLOCK+1,4) - 1
+          LARGE = MAX(LARGE,I2-I1+1)
+!         Go through the rows of block IBLOCK in the reverse order.
+          DO II = I1, I2
+            INEW = I2 - II + I1
+!           We now deal with row inew in permuted form (row IOLD
+!           in original matrix).
+            IOLD = IP(INEW)
+!           If there is space to move up diagonal block portion
+!           of row GOTO 110.
+            IF (IEND-IDISP(1)>=LENOFF(IOLD)) GOTO 110
+
+!           In-line compress.
+!           Moves separated off-diagonal elements and untreated
+!           rows to front of storage.
+            JNPOS = IBEG
+            ILEND = IDISP(1) - 1
+            IF (ILEND<IBEG) GOTO 180
+            DO 90 J = IBEG, ILEND
+              IF (ICN(J)==0) GOTO 90
+              ICN(JNPOS) = ICN(J)
+              A(JNPOS) = A(J)
+              JNPOS = JNPOS + 1
+90          END DO
+            IDISP(1) = JNPOS
+            IF (IEND-JNPOS<LENOFF(IOLD)) GOTO 180
+            IBEG = LICN + 1
+!           Reset pointers to the beginning of the rows.
+            DO 100 I = 2, N
+100         IW1(I,1) = IW1(I-1,1) + LENOFF(I-1)
+
+!           Row IOLD is now split into diagonal and off-diagonal parts.
+110         IROWB = IW1(IOLD,1)
+            LENI = 0
+            IROWE = IROWB + LENOFF(IOLD) - 1
+!           Backward scan of whole of row IOLD (in original matrix).
+            IF (IROWE<IROWB) GOTO 130
+            DO 120 JJ = IROWB, IROWE
+              J = IROWE - JJ + IROWB
+              JOLD = ICN(J)
+!             IW(:,2) holds the inverse permutation to IQ.
+!             It was set to this in MC13D.
+              JNEW = IW(JOLD,2)
+!             IF (JNEW < I1) THEN ...
+!             Element is in off-diagonal block and so is
+!             left in situ.
+              IF (JNEW<I1) GOTO 120
+!             Element is in diagonal block and is moved to
+!             the end of the storage.
+              IEND = IEND - 1
+              A(IEND) = A(J)
+              ICN(IEND) = JNEW
+              IBEG = MIN(IBEG,J)
+              ICN(J) = 0
+              LENI = LENI + 1
+120         END DO
+
+            LENOFF(IOLD) = LENOFF(IOLD) - LENI
+130         LENR(INEW) = LENI
+          END DO
+
+          IP(I2) = -IP(I2)
+        END DO
+!       Resets IP(N) to positive value.
+        IP(N) = -IP(N)
+!       IDISP(2) is position of first element in diagonal blocks.
+        IDISP(2) = IEND
+
+!       This compress is used to move all off-diagonal elements
+!       to the front of the storage.
+        IF (IBEG>LICN) GOTO 200
+        JNPOS = IBEG
+        ILEND = IDISP(1) - 1
+        DO 160 J = IBEG, ILEND
+          IF (ICN(J)==0) GOTO 160
+          ICN(JNPOS) = ICN(J)
+          A(JNPOS) = A(J)
+          JNPOS = JNPOS + 1
+160     END DO
+!       IDISP(1) is first position after last element of
+!       off-diagonal blocks.
+        IDISP(1) = JNPOS
+        GOTO 200
+
+!       Error return
+170     IF (LP/=0) WRITE (LP,90000) NUMNZ
+90000   FORMAT (' Matrix is structurally singular, rank = ',I6)
+        IDISP(1) = -1
+        GOTO 190
+180     IF (LP/=0) WRITE (LP,90001) N
+90001   FORMAT (' LICN is not big enough; increase by ',I6)
+        IDISP(1) = -2
+190     IF (LP/=0) WRITE (LP,90002)
+90002   FORMAT (' + Error return from MC23AD')
+200     RETURN
+
+      END SUBROUTINE MC23AD
+!_______________________________________________________________________
+
+      SUBROUTINE MC24AD(N,ICN,A,LICN,LENR,LENRL,W)
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER :: LICN, N
+! ..
+! .. Array Arguments ..
+        REAL (WP) :: A(LICN), W(N)
+        INTEGER :: ICN(LICN), LENR(N), LENRL(N)
+! ..
+! .. Local Scalars ..
+        REAL (WP) :: AMAXL, AMAXU, WROWL
+        INTEGER :: I, J, J0, J1, J2, JJ
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, MAX
+! ..
+! .. FIRST EXECUTABLE STATEMENT MA24AD
+! ..
+        AMAXL = ZERO
+        W(1:N) = ZERO
+        J0 = 1
+        DO 60 I = 1, N
+          IF (LENR(I)==0) GOTO 60
+          J2 = J0 + LENR(I) - 1
+          IF (LENRL(I)==0) GOTO 30
+!         Calculation of 1-norm of L.
+          J1 = J0 + LENRL(I) - 1
+          WROWL = ZERO
+          DO 20 JJ = J0, J1
+20        WROWL = WROWL + ABS(A(JJ))
+!         AMAXL is the maximum norm of columns of L so far found.
+          AMAXL = MAX(AMAXL,WROWL)
+          J0 = J1 + 1
+!         Calculation of norms of columns of U(MAX-NORMS).
+30        J0 = J0 + 1
+          IF (J0>J2) GOTO 50
+          DO 40 JJ = J0, J2
+            J = ICN(JJ)
+40        W(J) = MAX(ABS(A(JJ)),W(J))
+50        J0 = J2 + 1
+60      END DO
+!       AMAXU is set to maximum max-norm of columns of U.
+        AMAXU = ZERO
+        DO I = 1, N
+          AMAXU = MAX(AMAXU,W(I))
+        END DO
+!       GROFAC is MAX U max-norm times MAX L 1-norm.
+        W(1) = AMAXL*AMAXU
+        RETURN
+
+      END SUBROUTINE MC24AD
+!_______________________________________________________________________
+
+      SUBROUTINE MC19AD(N,NA,A,IRN,ICN,R,C,W)
+! ..
+!     MC19A was altered to use same precision for R, C,
+!     and W as is used for other variables in program.
+! ..
+!     REAL A(NA),R(N),C(N),W(N,5)
+!     R(I) is used to return log(scaling factor for row I).
+!     C(J) is used to return log(scaling factor for col J).
+!     W(I,1), W(I,2) hold row,col non-zero counts.
+!     W(J,3) holds - COL J LOG during execution.
+!     W(J,4) holds 2-iteration change in W(J,3).
+!     W(I,5) is used to save average element log for row I.
+!     INTEGER*2 IRN(NA), ICN(NA)
+!     IRN(K) gives row number of element in A(K).
+!     ICN(K) gives col number of element in A(K).
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER :: N, NA
+! ..
+! .. Array Arguments ..
+        REAL (WP) :: A(NA), C(N), R(N), W(N,5)
+        INTEGER :: ICN(NA), IRN(NA)
+! ..
+! .. Local Scalars ..
+        REAL (WP) :: E, E1, EM, Q, Q1, QM, S, S1, SM, SMIN, U, V
+        INTEGER :: I, I1, I2, ITER, J, K, MAXIT
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, LOG, REAL
+! ..
+! .. Data Statements ..
+!       MAXIT is the maximal permitted number of iterations.
+!       SMIN is used in a convergence test on (residual norm)**2.
+        DATA MAXIT/100/, SMIN/0.1/
+! ..
+! .. FIRST EXECUTABLE STATEMENT MA19AD
+! ..
+!       Check scalar data.
+        IFAIL = 1
+        IF (N<1) GOTO 210
+        IFAIL = 2
+!       IF (N > 32767)GOTO 230
+        IFAIL = 2
+        IFAIL = 0
+
+!       Initialise for accumulation of sums and products.
+        C(1:N) = ZERO
+        R(1:N) = ZERO
+        W(1:N,1:4) = ZERO
+        IF (NA<=0) GOTO 220
+        DO 40 K = 1, NA
+          U = ABS(A(K))
+!         IF (U == ZERO) GOTO 30
+          IF (ABS(U-ZERO)<=ZERO) GOTO 40
+          U = LOG(U)
+          I1 = IRN(K)
+          I2 = ICN(K)
+          IF (I1>=1 .AND. I1<=N .AND. I2>=1 .AND. I2<=N) GOTO 30
+          IF (LP>0) WRITE (LP,90000) K, I1, I2
+90000     FORMAT (' MC19 error. Element ',I5,' is in row ',I5,' and column ', &
+            I5)
+          IFAIL = 3
+          GOTO 40
+!         Count row/col non-zeros and compute rhs vectors.
+30        W(I1,1) = W(I1,1) + 1.
+          W(I2,2) = W(I2,2) + 1.
+          R(I1) = R(I1) + U
+          W(I2,3) = W(I2,3) + U
+40      END DO
+        IF (IFAIL==3) GOTO 210
+
+!       Divide rhs by diagonal matrices.
+        DO I = 1, N
+!        IF (W(I,1) == ZERO) W(I,1) = 1.
+          IF (ABS(W(I,1))<=ZERO) W(I,1) = ONE
+          R(I) = R(I)/W(I,1)
+!         SAVE R(I) FOR USE AT END.
+          W(I,5) = R(I)
+!         IF (W(I,2) == ZERO) W(I,2) = 1.
+          IF (ABS(W(I,2))<=ZERO) W(I,2) = ONE
+          W(I,3) = W(I,3)/W(I,2)
+        END DO
+!       SM = SMIN*FLOAT(NA)
+        SM = SMIN*REAL(NA)
+!       Sweep to compute initial residual vector.
+        DO 60 K = 1, NA
+!         IF (A(K) == ZERO) GOTO 80
+          IF (ABS(A(K))<=ZERO) GOTO 60
+          I = IRN(K)
+          J = ICN(K)
+          R(I) = R(I) - W(J,3)/W(I,1)
+60      END DO
+
+!       Initialise iteration.
+        E = ZERO
+        Q = 1.
+        S = ZERO
+        DO I = 1, N
+          S = S + W(I,1)*R(I)**2
+        END DO
+        IF (S<=SM) GOTO 160
+
+!       Iteration loop.
+        DO ITER = 1, MAXIT
+!         Sweep through matrix to update residual vector.
+          DO 80 K = 1, NA
+!           IF (A(K) == ZERO) GOTO 130
+            IF (ABS(A(K))<=ZERO) GOTO 80
+            I = ICN(K)
+            J = IRN(K)
+            C(I) = C(I) + R(J)
+80        END DO
+          S1 = S
+          S = ZERO
+          DO I = 1, N
+            V = -C(I)/Q
+            C(I) = V/W(I,2)
+            S = S + V*C(I)
+          END DO
+          E1 = E
+          E = Q*S/S1
+          Q = 1. - E
+          IF (S<=SM) E = ZERO
+!         Update residual.
+          DO I = 1, N
+            R(I) = R(I)*E*W(I,1)
+          END DO
+          IF (S<=SM) GOTO 180
+          EM = E*E1
+!         Sweep through matrix to update residual vector.
+          DO 110 K = 1, NA
+!           IF (A(K) == ZERO) GOTO 152
+            IF (ABS(A(K))<=ZERO) GOTO 110
+            I = IRN(K)
+            J = ICN(K)
+            R(I) = R(I) + C(J)
+110       END DO
+          S1 = S
+          S = ZERO
+          DO I = 1, N
+            V = -R(I)/Q
+            R(I) = V/W(I,1)
+            S = S + V*R(I)
+          END DO
+          E1 = E
+          E = Q*S/S1
+          Q1 = Q
+          Q = 1. - E
+!         Special fixup for last iteration.
+          IF (S<=SM) Q = 1.
+!         Update colulm scaling powers.
+          QM = Q*Q1
+          DO I = 1, N
+            W(I,4) = (EM*W(I,4)+C(I))/QM
+            W(I,3) = W(I,3) + W(I,4)
+          END DO
+          IF (S<=SM) GOTO 160
+!         Update residual.
+          DO I = 1, N
+            C(I) = C(I)*E*W(I,2)
+          END DO
+        END DO
+160     DO I = 1, N
+          R(I) = R(I)*W(I,1)
+        END DO
+
+!       Sweep through matrix to prepare to get row scaling powers.
+180     DO 190 K = 1, NA
+!         IF (A(K) == ZERO) GOTO 200
+          IF (ABS(A(K))<=ZERO) GOTO 190
+          I = IRN(K)
+          J = ICN(K)
+          R(I) = R(I) + W(J,3)
+190     END DO
+
+!       Final conversion to output values.
+        DO I = 1, N
+          R(I) = R(I)/W(I,1) - W(I,5)
+          C(I) = -W(I,3)
+        END DO
+        GOTO 220
+210     IF (LP>0) WRITE (LP,90001) IFAIL
+90001   FORMAT (' Error return ',I2,' from MC19')
+220     RETURN
+      END SUBROUTINE MC19AD
+! End of  MA28 subroutines.
+!_______________________________________________________________________
+! Beginning of JACSP routines.
+! Change Record:
+! ST 09-01-05
+!   Convert to F90 using Metcalf converter
+!   Trim trailing blanks using trimem.pl
+!   Convert arithmetic operators to F90
+!   Replace R1MACH by EPSILON
+!   Run through nag tools suite
+! ST 09-17-05
+!   Delete RDUM and IDUM
+!   Change FCN argument list
+! ST 09-18-05
+!   Add subroutine DGROUPDS to define the IGP and JGP arrays for JACSP
+! ST 09-20-05
+!   Modify JACSP to produce JACSPDB for sparse, dense, and
+!   banded Jacobians
+!_______________________________________________________________________
+
+    SUBROUTINE JACSP(FCN,N,T,Y,F,FJAC,NRFJAC,YSCALE,FAC,IOPT,WK, &
+      LWK,IWK,LIWK,MAXGRP,NGRP,JPNTR,INDROW)
+
+! BEGIN PROLOGUE JACSP
+! DATE WRITTEN 850415
+! CATEGORY NO. D4
+! KEYWORDS NUMERICAL DIFFERENCING, SPARSE JACOBIANS
+! AUTHOR SALANE, DOUGLAS E., SANDIA NATIONAL LABORATORIES
+!        NUMERICAL MATHEMATICS DIVISION,1642
+!        ALBUQUERQUE, NM 87185
+
+! SUBROUTINE JACSP USES FINITE DIFFERENCES TO COMPUTE THE JACOBIAN OF
+! A SPARSE SYSTEM OF N EQUATIONS AND N UNKNOWNS. JACSP IS DESIGNED FOR
+! USE IN NUMERICAL METHODS FOR SOLVING NONLINEAR PROBLEMS WHERE THE
+! JACOBIAN IS EVALUATED REPEATEDLY AND OFTEN AT NEIGHBORING ARGUMENTS
+! (E.G., NEWTON'S METHOD OR A BDF METHOD FOR SOVING STIFF ORDINARY
+! DIFFERENTIAL EQUATIONS). JACSP IS INTENDED FOR APPLICATIONS IN WHICH
+! THE REQUIRED JACOBIANS ARE LARGE AND SPARSE.
+
+! TAKING ADVANTAGE OF SPARSITY.
+
+! SUBROUTINE JACSP TAKES ADVANTAGE OF THE SPARSITY OF A MATRIX TO REDUCE
+! THE NUMBER OF FUNCTION EVALUATIONS REQUIRED TO COMPUTE THE JACOBIAN.
+! TO REALIZE THIS ADVANTAGE, THE USER MUST PROVIDE JACSP WITH A COLUMN
+! GROUPING. THIS MEANS THE USER MUST ASSIGN COLUMNS OF THE JACOBIAN TO
+! MUTUALLY EXCLUSIVE GROUPS BASED ON THE SPARSITY OF THE COLUMNS.THE
+! DIFFERENCES REQUIRED TO COMPUTE THE NONZERO ELEMENTS IN ALL COLUMNS IN
+! A GROUP ARE FORMED USING ONLY ONE ADDITIONAL FUNCTION EVALUATION. FOR
+! MORE DETAILS, THE USER IS REFERRED TO THE REPORT BY D.E. SALANE AND
+! L.F. SHAMPINE (REF. 1).
+
+! THE SUBROUTINE DVDSM (REF 2.) IS THE WAY MOST USERS WILL DETERMINE A
+! COLUMN GROUPING FOR JACSP. THE USE OF DSM AND JACSP IS DESCRIBED
+! LATER IN THE PROLOGUE.
+
+! STORAGE.
+
+! JACSP REQUIRES THE USER TO PROVIDE A SPARSE DATA STRUCTURE FOR THE
+! JACOBIAN TO BE COMPUTED. JACSP REQUIRES THE USER TO SPECIFY THE
+! INDICES OF THE NONZERO ELEMENTS IN A COLUMN PACKED SPARSE DATA
+! STRUCTURE (SEE REF.1). THE SUBROUTINE DVDSM( REF 2.) CAN BE USED TO
+! ESTABLISH THE SPARSE DATA STRUCTURE REQUIRED BY JACSP. THE USE OF
+! JACSP AND DSM IS DESCRIBED LATER IN THE PROLOGUE.
+
+! ON OUTPUT, SUBROUTINE JACSP WILL RETURN THE JACOBIAN IN ANY ONE OF
+! THE FOLLOWING THREE FORMATS SPECIFIED BY THE USER.
+
+! (1) FULL STORAGE FORMAT.......THE COMPUTED JACOBIAN IS STORED IN
+!      AN ARRAY WHOSE ROW AND COLUMN DIMENSIONS ARE THE NUMBER OF
+!      EQUATIONS.
+
+! (2) BANDED STORAGE FORMAT.....THE COMPUTED MATRIX IS STORED IN A TWO
+!      DIMENSIONAL ARRAY WHOSE ROW DIMENSION IS
+!      2*(NUMBER OF LOWER DIAGONALS) + (THE NUMBER OF UPPER DIAGONALS)
+!      + 1. THE COLUMN DIMENSION OF THIS ARRAY IS THE NUMBER OF
+!      EQUATIONS. THIS STORAGE FORMAT IS COMPATIBLE WITH THE LINPACK
+!      GENERAL BAND MATRIX EQUATION SOLVER.
+
+! (3) SPARSE STORAGE FORMAT.....THE COMPUTED JACOBIAN IS STORED IN A
+!      ONE DIMENSIONAL ARRAY WHOSE LENGTH IS THE NUMBER OF NONZERO
+!      ELEMENTS IN THE JACOBIAN.
+
+! DESCRIPTION
+
+!  SUBROUTINE PARAMETERS
+
+!  FCN()......A USER-PROVIDED FUNCTION (SEE SUBROUTINE DESCRIPTION).
+!  N..........THE NUMBER OF EQUATIONS.
+!  T..........A SCALAR VARIABLE. T IS PROVIDED SO USERS CAN PASS THE
+!             VALUE OF AN INDEPENDENT VARIALBE TO THE FUNCTION
+!             EVALUATION ROUTINE.
+!  Y(*).......AN ARRAY OF DIMENSION N. THE POINT AT WHICH THE
+!             JACOBIAN IS TO BE EVALUATED.
+!  F(*).......AN ARRAY OF DIMENSION N. THE EQUATIONS EVALUATED AT
+!             THE POINT Y.
+!  FJAC(*,*)..AN ARRAY OF WHOSE DIMENSIONS DEPEND ON THE STORAGE
+!      FORMAT SELECTED BY THE USER. THE ROW AND COLUMN DIMENSIONS ARE
+!      SET BY THE USER. IF THE SPARSE MATRIX FORMAT IS SELECTED, FJAC
+!      SHOULD BE TREATED AS A ONE DIMENSIONAL ARRAY BY THE CALLING
+!      PROGRAM. FOR FURTHER DETAILS, SEE THE DESCRIPTION OF THE
+!      PARAMETER IOPT(1) WHICH CONTROLS THE STORAGE FORMAT.
+
+!      NOTE THAT IF THE BANDED OR FULL OPTION IS USED,THE USER SHOULD
+!      ZERO OUT THOSE POSITIONS OF FJAC THAT WILL NOT BE ACCESSED BY
+!      JACSP. JACSP DOES NOT ZERO OUT THE MATRIX FJAC BEFORE
+!      COMPUTING THE JACOBIAN. POSITIONS OF FJAC THAT ARE NOT ASSIGNED
+!      VALUES BY JACSP WILL BE THE SAME ON EXIT AS ON ENTRY TO JACSP.
+
+!  NRFJAC.....THE NUMBER OF ROWS IN FJAC AND THE LEADING DIMENSION
+!             OF FJAC (SEE IOPT(1)).
+!  NCFJAC.....THE NUMBER OF COLUMNS IN FJAC AND THE COLUMN DIMENSION
+!             OF FJAC (SEE IOPT(1)).
+!  YSCALE(*)..AN ARRAY OF DIMENSION N. YSCALE(I) CONTAINS A
+!     REPRESENTATIVE MAGNITUDE FOR Y(I). YSCALE(I) MUST BE POSITIVE.
+!     YSCALE IS AN OPTIONAL FEATURE OF THE ROUTINE. IF THE USER DOES
+!     NOT WISH TO PROVIDE YSCALE, IT CAN BE TREATED AS A DUMMY SCALAR
+!     VARIABLE (SEE IOPT(3)).
+
+!  FAC(*).....AN ARRAY OF DIMENSION N. FAC CONTAINS A PERCENTAGE FOR
+!     USE IN COMPUTING THE INCREMENT.
+
+!     THE NORMAL WAY TO USE THE CODE IS TO LET JACSP ADJUST FAC VALUES.
+!     IN THIS CASE FAC IS INITIALIZED BY JACSP. ALSO, THE USER MUST
+!     NOT ALTER FAC VALUES BETWEEN CALLS TO JACSP.
+
+!     THE USER MAY PROVIDE FAC VALUES IF DESIRED (SEE IOPT(4) FOR
+!     DETAILS). IF THE USER PROVIDES FAC VALUES, FAC(I) SHOULD BE
+!     SHOULD BE SET TO A VALUE BETWEEN O AND 1. JACSP WILL NOT PERMIT
+!     FAC(I) TO BE SET TO A VALUE THAT RESULTS IN TOO SMALL AN
+!     INCREMENT. JACSP ENSURES THAT
+!                     FACMIN <= FAC(I) <= FACMAX.
+!     FOR FURTHER DETAILS ON FACMIN AND FACMAX SEE
+!     THE REPORT(REF.3).
+
+!  IOPT(*)....AN INTEGER ARRAY OF LENGTH 5 FOR USER SELECTED OPTIONS.
+
+!          IOPT(1) CONTROLS THE STORAGE FORMAT.
+
+!             IOPT(1) = 0 INDICATES FULL STORAGE FORMAT. SET BOTH
+!             NRFJAC = N AMD NCFJAC = N.
+
+!             IOPT(1) = 1 INDICATES BANDED STORAGE FORMAT. SET
+!             NRFJAC = 2 * ML + MU + 1 WHERE
+!             ML = NUMBER OF SUB-DIAGONALS BELOW THE MAIN DIAGONAL AND
+!             MU = NUMBER OF SUPER-DIAGONALS ABOVE THE MAIN DIAGONAL.
+!             SET NCFJAC = N.
+
+!             IOPT(1) = 2 INDICATES SPARSE STORAGE FORMAT. SET
+!             NRFJAC = TO THE NUMBER OF NONZEROS IN THE JACOBIAN AND
+!             SET NCFJAC = 1.
+
+!          IOPT(2) MUST BE SET TO THE BANDWIDTH OF THE MATRIX.
+!          IOPT(2) NEED ONLY BE PROVIDED IF BANDED STORAGE
+!          FORMAT IS REQUESTED(I.E., IOPT(1) = 1).
+
+!          IOPT(3) ALLOWS THE USER TO PROVIDE TYPICAL VALUES
+!          TO BE USED IN COMPUTING INCREMENTS FOR DIFFERENCING.
+
+!             IOPT(3) = 0 INDICATES Y VALUES ARE USED IN COMPUTING
+!             INCREMENTS. IF IOPT(3) = 0, NO STORAGE IS REQUIRED FOR
+!             YSCALE AND IT MAY BE TREATED AS A DUMMY VARIABLE.
+
+!             IOPT(3) = 1 INDICATES THAT YSCALE VALUES ARE TO BE USED.
+!             IF IOPT(3) = 1, THE USER MUST PROVIDE AN ARRAY OF NONZERO
+!             VALUES IN YSCALE.
+
+!          IOPT(4) ALLOWS THE USER TO PROVIDE THE VALUES USED
+!          IN THE FAC ARRAY TO COMPUTE INCREMENTS FOR DIFFERENCING.
+
+!             IF IOPT(4) = 0, EACH COMPONENT OF FAC IS
+!             SET TO THE SQUARE ROOT OF MACHINE UNIT ROUNDOFF ON THE
+!             FIRST CALL TO JACSP. IOPT(4) IS SET TO ONE ON RETURN.
+
+!             IF IOPT(4) = 1, EACH COMPONENT OF FAC MUST BE SET
+!             BY THE CALLING ROUTINE. UNLESS THE USER WISHES TO
+!             INITIALIZE FAC, THE FAC ARRAY SHOULD NOT BE ALTERED
+!             BETWEEN SUBSEQUENT CALLS TO JACSP. ALSO, THE USER
+!             SHOULD NOT CHANGE THE VALUE OF IOPT(4) RETURNED BY
+!             JACSP.
+
+!          IOPT(5) IS NOT USED IN JACSP.
+
+!  WK(*)......A WORK ARRAY OF DIMENSION AT LEAST 3*N
+!  LWK........THE LENGTH OF THE WORK ARRAY. LWK IS AT LEAST 3*N.
+!  IWK(*)...AN INTEGER ARRAY OF LENGTH LIWK = 50 + N WHICH GIVES
+!      DIAGNOSTIC INFORMATION IN POSITIONS 1 THROUGH 50. POSITIONS 51
+!      THROUGH 50 + N ARE USED AS INTEGER WORKSPACE.
+
+!      IWK(1) GIVES THE NUMBER OF TIMES THE INCREMENT FOR DIFFERENCING
+!      (DEL) WAS COMPUTED AND HAD TO BE INCREASED BECAUSE (Y(JCOL)+DEL)
+!      -Y(JCOL)) WAS TOO SMALL RELATIVE TO Y(JCOL) OR YSCALE(JCOL).
+
+!      IWK(2) GIVES THE NUMBER OF COLUMNS IN WHICH THREE ATTEMPTS WERE
+!      MADE TO INCREASE A PERCENTAGE FACTOR FOR DIFFERENCING (I.E., A
+!      COMPONENT IN THE FAC ARRAY) BUT THE COMPUTED DEL REMAINED
+!      UNACCEPTABLY SMALL RELATIVE TO Y(JCOL) OR YSCALE(JCOL). IN SUCH
+!      CASES THE PERCENTAGE FACTOR IS SET TO THE SQUARE ROOT OF THE UNIT
+!      ROUNDOFF OF THE MACHINE. THE FIRST 10 COLUMNS ARE GIVEN IN
+!      IWK(21),...,IWK(30).
+
+!      IWK(3) GIVES THE NUMBER OF COLUMNS IN WHICH THE COMPUTED DEL WAS
+!      ZERO TO MACHINE PRECISION BECAUSE Y(JCOL) OR YSCALE(JCOL) WAS
+!      ZERO. IN SUCH CASES DEL IS SET TO THE SQUARE ROOT OF THE UNIT
+!      ROUNDOFF.
+
+!      IWK(4) GIVES THE NUMBER OF COLUMNS WHICH HAD TO BE RECOMPUTED
+!      BECAUSE THE LARGEST DIFFERENCE FORMED IN THE COLUMN WAS VERY
+!      CLOSE TO ZERO RELATIVE TO SCALE WHERE
+
+!                    SCALE = MAX(F(Y),F(Y+DEL))
+!                                 I     I
+
+!      AND I DENOTES THE ROW INDEX OF THE LARGEST DIFFERENCE IN THE
+!      COLUMN CURRENTLY BEING PROCESSED. IWK(31),...,IWK(40) GIVES THE
+!      FIRST 10 OF THESE COLUMNS.
+
+!      IWK(5) GIVES THE NUMBER OF COLUMNS WHOSE LARGEST DIFFERENCE IS
+!      CLOSE TO ZERO RELATIVE TO SCALE AFTER THE COLUMN HAS BEEN
+!      RECOMPUTED. THE FIRST 10 OF THESE COLUMNS ARE GIVEN IN POSITIONS
+!      IWK(41)...IWK(50).
+!      IWK(6) GIVES THE NUMBER OF TIMES SCALE INFORMATION WAS NOT
+!      AVAILABLE FOR USE IN THE ROUNDOFF AND TRUNCATION ERROR TESTS.
+!      THIS OCCURS WHEN
+!                    MIN(F(Y),F(Y+DEL)) = 0.
+!                          I     I
+!      WHERE I IS THE INDEX OF THE LARGEST DIFFERENCE FOR THE COLUMN
+!      CURRENTLY BEING PROCESSED.
+!      IWK(7) GIVES THE NUMBER OF TIMES THE FUNCTION EVALUATION ROUTINE
+!      WAS CALLED.
+!      IWK(8) GIVES THE NUMBER OF TIMES A COMPONENT OF THE FAC ARRAY WAS
+!      REDUCED BECAUSE CHANGES IN FUNCTION VALUES WERE LARGE AND EXCESS
+!      TRUNCATION ERROR WAS SUSPECTED. IWK(11),...,IWK(20) GIVES THE FIRST
+!      10 OF THESE COLUMNS.
+!      IWK(9) AND IWK(10) ARE NOT USED IN JACSP.
+!  LIWK.....THE LENGTH OF THE ARRAY IWK. LIWK = 50 + N.
+!      THE FOLLOWING PARAMETERS MAY BE PROVIDED BY THE USER OR
+!      INITIALIZED BY THE SUBROUTINE DVDSM (SEE LONG DESCRIPTION
+!      SECTION OF THE PROLOGUE).
+!  PARAMETERS CONTAINING COLUMN GROUPING:
+!  MAXGRP.....THE NUMBER OF DIFFERENT GROUPS TO WHICH THE COLUMNS
+!             HAVE BEEN ASSIGNED.
+!  NGRP(*)....AN ARRAY OF LENGTH N THAT CONTAINS THE COLUMN GROUPING.
+!             NGRP(I) IS THE GROUP TO WHICH THE I-TH COLUMN HAS BEEN
+!             ASSIGNED.
+!             (SEE USE OF DSM AND JACSP FOR DETERMINING MAXGRP AND NGRP)
+!  PARAMETERS CONTAINING THE SPARSE DATA STRUCTURE:
+!  JPNTR(*)...AN ARRAY OF LENGTH N+1 THAT CONTAINS POINTERS TO
+!             THE ROW INDICES IN INDROW (SEE INDROW).
+!  INDROW(*)..AN ARRAY WHOSE LENGTH IS THE NUMBER OF NONZERO ELEMENTS
+!             IN THE JACOBIAN. INDROW CONTAINS THE ROW INDICES
+!             STORED IN COLUMN PACKED FORMAT. IN OTHER WORDS, THE
+!             ROW INDICES OF THE NONZERO ELEMENTS OF A GIVEN
+!             COLUMN OF THE JACOBIAN ARE STORED CONTIGUOUSLY IN
+!             INDROW. JPNTR(JCOL) POINTS TO THE ROW INDEX OF THE FIRST
+!             NONZERO ELEMENT IN THE COLUMN JCOL. JPNTR(JCOL+1) - 1
+!             POINTS TO THE ROW INDEX OF THE LAST NONZERO ELEMENT IN
+!             THE COLUMN JCOL.
+!             (SEE USE OF DSM AND JACSP FOR DETERMINING INDROW AND JPNTR)
+!  REQUIRED SUBROUTINES: SUBROUTINE FCN(N,T,Y,F)
+!     T......AN INDEPENDENT SCALAR VARIABLE WHICH MAY BE USED
+!           IN EVALUATING F(E.G., F(Y(T),T)).
+!     Y(*)...AN ARRAY OF DIMENSION N WHICH CONTAINS THE POINT AT
+!            WHICH THE EQUATIONS ARE TO BE EVALUATED.
+!     F(*)...AN ARRAY OF DIMENSION N WHICH ON RETURN FROM FCN
+!            CONTAINS THE EQUATIONS EVALUATED AT Y.
+
+! LONG DESCRIPTION
+
+! ROUNDOFF AND TRUNCATION ERRORS.
+! SUBROUTINE JACSP TAKES ADVANTAGE OF THE WAY IN WHICH THE JACOBIAN
+! IS EVALUATED TO ADJUST INCREMENTS FOR DIFFERENCING TO CONTROL
+! ROUNDOFF AND TRUNCATION ERRORS. THE ROUTINE SELDOM REQUIRES MORE
+! THAN ONE ADDITIONAL FUNCTION EVALUATION TO COMPUTE A COLUMN OF THE
+! JACOBIAN. ALSO, THE ROUTINE RETURNS A VARIETY OF ERROR DIAGNOSTICS
+! TO WARN USERS WHEN COMPUTED DERIVATIVES MAY NOT BE ACCURATE.
+! WARNING: JACSP CAN NOT GUARANTEE THE ACCURACY OF THE COMPUTED
+! DERIVATIVES. IN ORDER O SAVE ON FUNCTION EVALUATIONS, HEURISTIC
+! TECNIQUES FOR INCREMENT ADJUSTMENT AND SAFEGUARDING INCREMENTS ARE
+! USED. THESE USUALLY WORK WELL.
+! WARNING: SOME OF THE DIAGNOSTICS RETURNED CAN ONLY BE INTERPRETED
+! WITH A DETAILED KNOWLEDGE OF THE ROUTINE. NEVERTHELESS, THEY ARE
+! PROVIDED TO GIVE USERS FULL ACCESS TO THE INFORMATION PRODUCED BY
+! THE SUBROUTINE.
+! USE OF DSM AND JACSP.
+! SUBROUTINE DVDSM CAN BE USED TO DETERMINE THE COLUMN GROUPING (MAXGRP
+! AND NGRP(*)) AND THE SPARSE DATA STRUCTURE VARIABLES (JPNTR(*) AND
+! INDROW(*)). THE USER CAN CALL DVDSM ONCE TO INITIALIZE
+! MAXGRP,NGRP,JPNTR AND INDROW. JACSP MAY THEN BE CALLED REPEATEDLY TO
+! EVALUATE THE JACOBIAN. THE FOLLOWING ARE THE IMPORTANT VARIABLES IN
+! THE DSM CALLING SEQUENCE.
+! SUBROUTINE DVDSM(...,INDROW,INDCOL,NGRP,MAXGRP,..,JPNTR,...)
+! ON INPUT, THE USER MUST PROVIDE DSM WITH THE INTEGER ARRAYS INDROW AND
+! INDCOL. THE PAIR
+!                  (INDROW(I),INDCOL(I))
+! PROVIDES THE INDEX OF A NONZERO ELEMENT OF THE JACOBIAN. THE LENGTH OF
+! INDROW AND INDCOL IS THE NUMBER OF NONZERO ELEMENTS IN THE JACOBIAN.
+! NO ORDERING OF THE INDICES FOR NONZERO ELEMENTS IS REQUIRED IN THE
+! ARRAYS INDROW AND INDCOL.
+! ON RETURN FROM DSM, MAXGRP,NGRP,INDROW,JPNTR ARE INITIALIZED
+! FOR INPUT TO JACSP. THE USER MUST NOT CHANGE MAXGRP,NGRP,JPNTR OR
+! INDROW AFTER CALLING DSM.
+! WE REFER THE READER TO THE IN CODE DOCUMENTATION FOR DSM OR THE REPORT
+! BY MORE AND COLEMAN (REF 2.) FOR FURTHER DETAILS.
+! REFERENCES
+!  (1) D.E. SALANE AND L. F. SHAMPINE
+!      "AN ECONOMICAL AND EFFICIENT ROUTINE FOR COMPUTING
+!      SPARSE JACOBIANS", REPORT NO. SAND85-0977, SANDIA NATIONAL
+!      LABORATORIES, ALBUQUERQUE,NM,87185.
+!  (2) T.F. COLEMAN AND J.J. MORE
+!      "SOFTWARE FOR ESTIMATING SPARSE JACOBIAN MATRICES" ACM TOMS,
+!      V10.,N0.3,SEPT. 1984.
+!  (3) D.E. SALANE AND L. F. SHAMPINE
+!      "THREE ADAPTIVE ROUTINES FOR FORMING JACOBIANS NUMERICALLY,"
+!       REPORT NO. SAND86- ****, SANDIA NATIONAL LABORATORIES,
+!       ALBUQUERQUE, NM, 87185.
+!  REQUIRED FORTRAN INTRINSIC FUNCTIONS: MAX,MIN,ABS,SIGN
+!  MACHINE DEPENDENT CONSTANT: U (MACHINE UNIT ROUNDOFF)
+!  JACSP SETS THE REQUIRED MACHINE CONSTANT USING THE F90
+!  INTRINSIC EPSILON.
+!  END PROLOGUE JACSP
+
+     IMPLICIT NONE
+
+! .. Parameters ..
+      INTEGER, PARAMETER :: WP = KIND(0.0D0)
+! ..
+! .. Scalar Arguments ..
+      REAL (WP) :: T
+      INTEGER :: LIWK, LWK, MAXGRP, N, NRFJAC
+! ..
+! .. Array Arguments ..
+      REAL (WP) :: F(N), FAC(N), FJAC(NRFJAC,*), WK(LWK), Y(N), YSCALE(*)
+      INTEGER :: INDROW(*), IOPT(5), IWK(LIWK), JPNTR(*), NGRP(N)
+! ..
+! .. Subroutine Arguments ..
+      EXTERNAL FCN
+! ..
+! .. Local Scalars ..
+      REAL (WP) :: ADIFF, AY, DEL, DELM, DFMJ, DIFF, DMAX, EXPFMN, FACMAX, &
+        FACMIN, FJACL, FMJ, ONE, P125, P25, P75, P875, PERT, RDEL, RMNFDF, &
+        RMXFDF, SDF, SF, SGN, T1, T2, U, U3QRT, U7EGT, UEGT, UMEGT, UQRT, &
+        USQT, ZERO
+      INTEGER :: IDXL, IDXU, IFLAG1, IFLAG2, IRCMP, IRDEL, IROW, IROWB, &
+        IROWMX, ITRY, J, JCOL, KT1, KT2, KT3, KT4, KT5, L, NID1, NID2, NID3, &
+        NID4, NID5, NID6, NIFAC, NT2, NUMGRP
+! ..
+! .. Intrinsic Functions ..
+!     INTRINSIC ABS, EPSILON, KIND, MAX, MIN, SIGN, SQRT
+      INTRINSIC ABS, EPSILON, MAX, MIN, SIGN, SQRT
+! ..
+! .. Data Statements ..
+      DATA PERT/2.0E+0_WP/, FACMAX/1.E-1_WP/, EXPFMN/.75E+0_WP/
+      DATA ONE/1.0E0_WP/, ZERO/0.0E0_WP/
+      DATA P125/.125E+0_WP/, P25/.25E+0_WP/, P75/.75E+0_WP/, P875/.875E+0_WP/
+      DATA NIFAC/3/, NID1/10/, NID2/20/, NID3/30/, NID4/40/, NID5/50/
+! ..
+!     COMPUTE ALGORITHM AND MACHINE CONSTANTS.
+! ..
+! ..  FIRST EXECUTABLE STATEMENT JACSP
+! ..
+      U = EPSILON(ONE)
+      USQT = SQRT(U)
+      UEGT = U**P125
+      UMEGT = ONE/UEGT
+      UQRT = U**P25
+      U3QRT = U**P75
+      U7EGT = U**P875
+      FACMIN = U**EXPFMN
+
+      IF (IOPT(4) == 0) THEN
+        IOPT(4) = 1
+        DO 10 J = 1, N
+          FAC(J) = USQT
+10      CONTINUE
+      END IF
+      DO 20 J = 1, 50
+        IWK(J) = 0
+20    CONTINUE
+      KT1 = NID1
+      KT2 = NID2
+      KT3 = NID3
+      KT4 = NID4
+      KT5 = NID5
+      NID6 = LIWK
+      NT2 = 2*N
+      DO NUMGRP = 1, MAXGRP
+!       COMPUTE AND SAVE THE INCREMENTS FOR THE COLUMNS IN GROUP NUMGRP.
+        IRCMP = 0
+        ITRY = 0
+        DO 30 J = NID5 + 1, NID6
+          IWK(J) = 0
+30      CONTINUE
+40      CONTINUE
+        DO JCOL = 1, N
+          IF (NGRP(JCOL) == NUMGRP) THEN
+            WK(N+JCOL) = Y(JCOL)
+!           COMPUTE DEL. IF DEL IS TOO SMALL INCREASE FAC(JCOL) AND RECOMPUTE
+!           DEL. NIFAC ATTEMPTS ARE MADE TO INCREASE FAC(JCOL) AND FIND AN
+!           APPROPRIATE DEL. IF DEL CANT BE FOUND IN THIS MANNER, DEL IS COMPUTED
+!           WITH FAC(JCOL) SET TO THE SQUARE ROOT OF THE MACHINE PRECISION (USQT).
+!           IF DEL IS ZERO TO MACHINE PRECISION BECAUSE Y(JCOL) IS ZERO OR
+!           YSCALE(JCOL) IS ZERO, DEL IS SET TO USQT.
+            SGN = SIGN(ONE,F(JCOL))
+            IRDEL = 0
+            IF (IOPT(3) == 1) THEN
+              AY = ABS(YSCALE(JCOL))
+            ELSE
+              AY = ABS(Y(JCOL))
+            END IF
+            DELM = U7EGT*AY
+
+            DO 50 J = 1, NIFAC
+              DEL = FAC(JCOL)*AY*SGN
+!             IF (DEL == ZERO) THEN
+              IF (ABS(DEL) <= ZERO) THEN
+
+                DEL = USQT*SGN
+                IF (ITRY == 0) IWK(3) = IWK(3) + 1
+              END IF
+              T1 = Y(JCOL) + DEL
+              DEL = T1 - Y(JCOL)
+              IF (ABS(DEL) < DELM) THEN
+                IF (J >= NIFAC) GOTO 50
+                IF (IRDEL == 0) THEN
+                  IRDEL = 1
+                  IWK(1) = IWK(1) + 1
+                END IF
+                T1 = FAC(JCOL)*UMEGT
+                FAC(JCOL) = MIN(T1,FACMAX)
+              ELSE
+                GOTO 60
+              END IF
+50          END DO
+
+            FAC(JCOL) = USQT
+            DEL = USQT*AY*SGN
+            IWK(2) = IWK(2) + 1
+            IF (KT2 < NID3) THEN
+              KT2 = KT2 + 1
+              IWK(KT2) = JCOL
+            END IF
+
+60          CONTINUE
+            WK(NT2+JCOL) = DEL
+            Y(JCOL) = Y(JCOL) + DEL
+          END IF
+        END DO
+
+        IWK(7) = IWK(7) + 1
+        CALL FCN(N,T,Y,WK)
+        DO JCOL = 1, N
+          IF (NGRP(JCOL) == NUMGRP) Y(JCOL) = WK(N+JCOL)
+        END DO
+
+!       COMPUTE THE JACOBIAN ENTRIES FOR ALL COLUMNS IN NUMGRP.
+!       STORE ENTRIES ACCORDING TO SELECTED STORAGE FORMAT.
+!       USE LARGEST ELEMENTS IN A COLUMN TO DETERMINE SCALING
+!       INFORMATION FOR ROUNDOFF AND TRUNCATION ERROR TESTS.
+        DO JCOL = 1, N
+          IF (NGRP(JCOL) == NUMGRP) THEN
+            IDXL = JPNTR(JCOL)
+            IDXU = JPNTR(JCOL+1) - 1
+            DMAX = ZERO
+            RDEL = ONE/WK(NT2+JCOL)
+            IROWMX = 1
+            DO L = IDXL, IDXU
+              IROW = INDROW(L)
+              DIFF = WK(IROW) - F(IROW)
+              ADIFF = ABS(DIFF)
+              IF (ADIFF >= DMAX) THEN
+                IROWMX = IROW
+                DMAX = ADIFF
+                SF = F(IROW)
+                SDF = WK(IROW)
+              END IF
+              FJACL = DIFF*RDEL
+              IF (ITRY == 1) WK(IROW) = FJACL
+
+              IF (IOPT(1) == 0) THEN
+                IF (ITRY == 1) WK(IROW+N) = FJAC(IROW,JCOL)
+                FJAC(IROW,JCOL) = FJACL
+              END IF
+              IF (IOPT(1) == 1) THEN
+                IROWB = IROW - JCOL + IOPT(2)
+                IF (ITRY == 1) WK(IROW+N) = FJAC(IROWB,JCOL)
+                FJAC(IROWB,JCOL) = FJACL
+              END IF
+              IF (IOPT(1) == 2) THEN
+                IF (ITRY == 1) WK(IROW+N) = FJAC(L,1)
+                FJAC(L,1) = FJACL
+              END IF
+            END DO
+
+!           IF A COLUMN IS BEING RECOMPUTED (ITRY=1),THIS SECTION OF THE
+!           CODE PERFORMS AN EXTRAPOLATION TEST TO ENABLE THE CODE TO
+!           COMPUTE SMALL DERIVATIVES MORE ACCURATELY. THIS TEST IS ONLY
+!           PERFORMED ON THOSE COLUMNS WHOSE LARGEST DIFFERENCE IS CLOSE
+!           TO ZERO RELATIVE TO SCALE.
+            IF (ITRY == 1) THEN
+              IFLAG1 = 0
+              IFLAG2 = 0
+              DO 100 J = NID5 + 1, NID6
+                IF (IWK(J) == JCOL) IFLAG1 = 1
+100           CONTINUE
+              IF (IFLAG1 == 1) THEN
+                IFLAG1 = 0
+                T1 = WK(IROWMX+N)
+                T2 = WK(IROWMX)*FAC(JCOL)
+                IF (ABS(T2) < ABS(T1)*PERT) IFLAG2 = 1
+              END IF
+
+              IF (IFLAG2 == 1) THEN
+                IFLAG2 = 0
+                T1 = FAC(JCOL)*FAC(JCOL)
+                FAC(JCOL) = MAX(T1,FACMIN)
+                DO L = IDXL, IDXU
+                  IROW = INDROW(L)
+                  FJACL = WK(IROW+N)
+                  IF (IOPT(1) == 0) FJAC(IROW,JCOL) = FJACL
+                  IF (IOPT(1) == 1) THEN
+                    IROWB = IROW - JCOL + IOPT(2)
+                    FJAC(IROWB,JCOL) = FJACL
+                  END IF
+                  IF (IOPT(1) == 2) FJAC(L,1) = FJACL
+                END DO
+              END IF
+            END IF
+
+            FMJ = ABS(SF)
+            DFMJ = ABS(SDF)
+            RMXFDF = MAX(FMJ,DFMJ)
+            RMNFDF = MIN(FMJ,DFMJ)
+
+!           IF SCALE INFORMATION IS NOT AVAILABLE, PERFORM NO ROUNDOFF
+!           OR TRUNCATION ERROR TESTS. IF THE EXTRAPOLATION TEST HAS
+!           CAUSED FAC(JCOL) TO BE RESET TO ITS PREVIOUS VALUE (IAJAC=1)
+!           THEN NO FURTHER ROUNDOFF OR TRUNCATION ERROR TESTS ARE
+!           PERFORMED.
+!           IF (RMNFDF/=ZERO) THEN
+            IF (ABS(RMNFDF) > ZERO) THEN
+!             TEST FOR POSSIBLE ROUNDOFF ERROR (FIRST TEST)
+!             AND ALSO FOR POSSIBLE SERIOUS ROUNDOFF ERROR (SECOND TEST).
+              IF (DMAX <= (U3QRT*RMXFDF)) THEN
+                IF (DMAX <= (U7EGT*RMXFDF)) THEN
+                  IF (ITRY == 0) THEN
+                    T1 = SQRT(FAC(JCOL))
+                    FAC(JCOL) = MIN(T1,FACMAX)
+                    IRCMP = 1
+                    IF (KT5 < NID6) THEN
+                      KT5 = KT5 + 1
+                      IWK(KT5) = JCOL
+                    END IF
+                    IWK(4) = IWK(4) + 1
+                    IF (KT3 < NID4) THEN
+                      KT3 = KT3 + 1
+                      IWK(KT3) = JCOL
+                    END IF
+                  ELSE
+                    IWK(5) = IWK(5) + 1
+                    IF (KT4 < NID5) THEN
+                      KT4 = KT4 + 1
+                      IWK(KT4) = JCOL
+                    END IF
+                  END IF
+                ELSE
+                  T1 = UMEGT*FAC(JCOL)
+                  FAC(JCOL) = MIN(T1,FACMAX)
+                END IF
+              END IF
+!             TEST FOR POSSIBLE TRUNCATION ERROR.
+              IF (DMAX > UQRT*RMXFDF) THEN
+                T1 = FAC(JCOL)*UEGT
+                FAC(JCOL) = MAX(T1,FACMIN)
+                IWK(8) = IWK(8) + 1
+                IF (KT1 < NID2) THEN
+                  KT1 = KT1 + 1
+                  IWK(KT1) = JCOL
+                END IF
+              END IF
+            ELSE
+              IWK(6) = IWK(6) + 1
+            END IF
+          END IF
+        END DO
+
+!       IF SERIOUS ROUNDOFF ERROR IS SUSPECTED, RECOMPUTE ALL
+!       COLUMNS IN GROUP NUMGRP.
+        IF (IRCMP == 1) THEN
+          IRCMP = 0
+          ITRY = 1
+          GOTO 40
+        END IF
+        ITRY = 0
+      END DO
+      RETURN
+
+    END SUBROUTINE JACSP
+!_______________________________________________________________________
+
+    SUBROUTINE DEGR(N,INDROW,JPNTR,INDCOL,IPNTR,NDEG,IWA)
+
+!     GIVEN THE SPARSITY PATTERN OF AN M BY N MATRIX A,
+!     THIS SUBROUTINE DETERMINES THE DEGREE SEQUENCE FOR
+!     THE INTERSECTION GRAPH OF THE COLUMNS OF A.
+!     IN GRAPH-THEORY TERMINOLOGY, THE INTERSECTION GRAPH OF
+!     THE COLUMNS OF A IS THE LOOPLESS GRAPH G WITH VERTICES
+!     A(J), J = 1,2,...,N WHERE A(J) IS THE J-TH COLUMN OF A
+!     AND WITH EDGE (A(I),A(J)) IF AND ONLY IF COLUMNS I AND J
+!     HAVE A NON-ZERO IN THE SAME ROW POSITION.
+!     NOTE THAT THE VALUE OF M IS NOT NEEDED BY DEGR AND IS
+!     THEREFORE NOT PRESENT IN THE SUBROUTINE STATEMENT.
+!     THE SUBROUTINE STATEMENT IS
+!       SUBROUTINE DEGR(N,INDROW,JPNTR,INDCOL,IPNTR,NDEG,IWA)
+!     WHERE
+!       N IS A POSITIVE INTEGER INPUT VARIABLE SET TO THE NUMBER
+!         OF COLUMNS OF A.
+!       INDROW IS AN INTEGER INPUT ARRAY WHICH CONTAINS THE ROW
+!         INDICES FOR THE NON-ZEROES IN THE MATRIX A.
+!       JPNTR IS AN INTEGER INPUT ARRAY OF LENGTH N + 1 WHICH
+!         SPECIFIES THE LOCATIONS OF THE ROW INDICES IN INDROW.
+!         THE ROW INDICES FOR COLUMN J ARE
+!               INDROW(K), K = JPNTR(J),...,JPNTR(J+1)-1.
+!         NOTE THAT JPNTR(N+1)-1 IS THEN THE NUMBER OF NON-ZERO
+!         ELEMENTS OF THE MATRIX A.
+!       INDCOL IS AN INTEGER INPUT ARRAY WHICH CONTAINS THE
+!         COLUMN INDICES FOR THE NON-ZEROES IN THE MATRIX A.
+!       IPNTR IS AN INTEGER INPUT ARRAY OF LENGTH M + 1 WHICH
+!         SPECIFIES THE LOCATIONS OF THE COLUMN INDICES IN INDCOL.
+!         THE COLUMN INDICES FOR ROW I ARE
+!               INDCOL(K), K = IPNTR(I),...,IPNTR(I+1)-1.
+!         NOTE THAT IPNTR(M+1)-1 IS THEN THE NUMBER OF NON-ZERO
+!         ELEMENTS OF THE MATRIX A.
+!       NDEG IS AN INTEGER OUTPUT ARRAY OF LENGTH N WHICH
+!         SPECIFIES THE DEGREE SEQUENCE. THE DEGREE OF THE
+!         J-TH COLUMN OF A IS NDEG(J).
+!       IWA IS AN INTEGER WORK ARRAY OF LENGTH N.
+!     ARGONNE NATIONAL LABORATORY. MINPACK PROJECT. JULY 1983.
+!     THOMAS F. COLEMAN, BURTON S. GARBOW, JORGE J. MORE'
+
+     IMPLICIT NONE
+
+! .. Scalar Arguments ..
+      INTEGER :: N
+! ..
+! .. Array Arguments ..
+      INTEGER :: INDCOL(*), INDROW(*), IPNTR(*), IWA(N), JPNTR(N+1), NDEG(N)
+! ..
+! .. Local Scalars ..
+      INTEGER :: IC, IP, IR, JCOL, JP
+! ..
+! ..  FIRST EXECUTABLE STATEMENT DEGR
+! ..
+!     INITIALIZATION BLOCK.
+      NDEG(1:N) = 0
+      IWA(1:N) = 0
+
+!     COMPUTE THE DEGREE SEQUENCE BY DETERMINING THE CONTRIBUTIONS
+!     TO THE DEGREES FROM THE CURRENT (JCOL) COLUMN AND FURTHER
+!     COLUMNS WHICH HAVE NOT YET BEEN CONSIDERED.
+      DO JCOL = 2, N
+        IWA(JCOL) = N
+!       DETERMINE ALL POSITIONS (IR,JCOL) WHICH CORRESPOND
+!       TO NON-ZEROES IN THE MATRIX.
+        DO JP = JPNTR(JCOL), JPNTR(JCOL+1) - 1
+          IR = INDROW(JP)
+!         FOR EACH ROW IR, DETERMINE ALL POSITIONS (IR,IC)
+!         WHICH CORRESPOND TO NON-ZEROES IN THE MATRIX.
+          DO IP = IPNTR(IR), IPNTR(IR+1) - 1
+            IC = INDCOL(IP)
+!           ARRAY IWA MARKS COLUMNS WHICH HAVE CONTRIBUTED TO
+!           THE DEGREE COUNT OF COLUMN JCOL. UPDATE THE DEGREE
+!           COUNTS OF THESE COLUMNS AS WELL AS COLUMN JCOL.
+            IF (IWA(IC) < JCOL) THEN
+              IWA(IC) = JCOL
+              NDEG(IC) = NDEG(IC) + 1
+              NDEG(JCOL) = NDEG(JCOL) + 1
+            END IF
+          END DO
+        END DO
+      END DO
+      RETURN
+
+    END SUBROUTINE DEGR
+!_______________________________________________________________________
+
+    SUBROUTINE IDO(M,N,INDROW,JPNTR,INDCOL,IPNTR,NDEG,LIST,MAXCLQ, &
+      IWA1,IWA2,IWA3,IWA4)
+
+!     SUBROUTINE IDO
+!     GIVEN THE SPARSITY PATTERN OF AN M BY N MATRIX A, THIS
+!     SUBROUTINE DETERMINES AN INCIDENCE-DEGREE ORDERING OF THE
+!     COLUMNS OF A.
+!     THE INCIDENCE-DEGREE ORDERING IS DEFINED FOR THE LOOPLESS
+!     GRAPH G WITH VERTICES A(J), J = 1,2,...,N WHERE A(J) IS THE
+!     J-TH COLUMN OF A AND WITH EDGE (A(I),A(J)) IF AND ONLY IF
+!     COLUMNS I AND J HAVE A NON-ZERO IN THE SAME ROW POSITION.
+!     THE INCIDENCE-DEGREE ORDERING IS DETERMINED RECURSIVELY BY
+!     LETTING LIST(K), K = 1,...,N BE A COLUMN WITH MAXIMAL
+!     INCIDENCE TO THE SUBGRAPH SPANNED BY THE ORDERED COLUMNS.
+!     AMONG ALL THE COLUMNS OF MAXIMAL INCIDENCE, IDO CHOOSES A
+!     COLUMN OF MAXIMAL DEGREE.
+!     THE SUBROUTINE STATEMENT IS
+!       SUBROUTINE IDO(M,N,INDROW,JPNTR,INDCOL,IPNTR,NDEG,LIST,
+!                      MAXCLQ,IWA1,IWA2,IWA3,IWA4)
+!     WHERE
+!       M IS A POSITIVE INTEGER INPUT VARIABLE SET TO THE NUMBER
+!         OF ROWS OF A.
+!       N IS A POSITIVE INTEGER INPUT VARIABLE SET TO THE NUMBER
+!         OF COLUMNS OF A.
+!       INDROW IS AN INTEGER INPUT ARRAY WHICH CONTAINS THE ROW
+!         INDICES FOR THE NON-ZEROES IN THE MATRIX A.
+!       JPNTR IS AN INTEGER INPUT ARRAY OF LENGTH N + 1 WHICH
+!         SPECIFIES THE LOCATIONS OF THE ROW INDICES IN INDROW.
+!         THE ROW INDICES FOR COLUMN J ARE
+!               INDROW(K), K = JPNTR(J),...,JPNTR(J+1)-1.
+!         NOTE THAT JPNTR(N+1)-1 IS THEN THE NUMBER OF NON-ZERO
+!         ELEMENTS OF THE MATRIX A.
+!       INDCOL IS AN INTEGER INPUT ARRAY WHICH CONTAINS THE
+!         COLUMN INDICES FOR THE NON-ZEROES IN THE MATRIX A.
+!       IPNTR IS AN INTEGER INPUT ARRAY OF LENGTH M + 1 WHICH
+!         SPECIFIES THE LOCATIONS OF THE COLUMN INDICES IN INDCOL.
+!         THE COLUMN INDICES FOR ROW I ARE
+!               INDCOL(K), K = IPNTR(I),...,IPNTR(I+1)-1.
+!         NOTE THAT IPNTR(M+1)-1 IS THEN THE NUMBER OF NON-ZERO
+!         ELEMENTS OF THE MATRIX A.
+!       NDEG IS AN INTEGER INPUT ARRAY OF LENGTH N WHICH SPECIFIES
+!         THE DEGREE SEQUENCE. THE DEGREE OF THE J-TH COLUMN
+!         OF A IS NDEG(J).
+!       LIST IS AN INTEGER OUTPUT ARRAY OF LENGTH N WHICH SPECIFIES
+!         THE INCIDENCE-DEGREE ORDERING OF THE COLUMNS OF A. THE J-TH
+!         COLUMN IN THIS ORDER IS LIST(J).
+!       MAXCLQ IS AN INTEGER OUTPUT VARIABLE SET TO THE SIZE
+!         OF THE LARGEST CLIQUE FOUND DURING THE ORDERING.
+!       IWA1,IWA2,IWA3, AND IWA4 ARE INTEGER WORK ARRAYS OF LENGTH N.
+!     SUBPROGRAMS CALLED
+!       MINPACK-SUPPLIED ... NUMSRT
+!       INTRINSIC ... MAX
+!     ARGONNE NATIONAL LABORATORY. MINPACK PROJECT. JULY 1983.
+!     THOMAS F. COLEMAN, BURTON S. GARBOW, JORGE J. MORE'
+
+     IMPLICIT NONE
+
+! .. Scalar Arguments ..
+      INTEGER :: M, MAXCLQ, N
+! ..
+! .. Array Arguments ..
+      INTEGER :: INDCOL(*), INDROW(*), IPNTR(M+1), IWA1(0:N-1), IWA2(N), &
+        IWA3(N), IWA4(N), JPNTR(N+1), LIST(N), NDEG(N)
+! ..
+! .. Local Scalars ..
+      INTEGER :: IC, IP, IR, JCOL, JP, MAXINC, MAXLST, NCOMP, NUMINC, NUMLST, &
+        NUMORD, NUMWGT
+! ..
+! .. External Subroutines ..
+!     EXTERNAL NUMSRT
+! ..
+! .. Intrinsic Functions ..
+      INTRINSIC MAX
+! ..
+! ..  FIRST EXECUTABLE STATEMENT IDO
+! ..
+!     SORT THE DEGREE SEQUENCE.
+      CALL NUMSRT(N,N-1,NDEG,-1,IWA4,IWA2,IWA3)
+
+!     INITIALIZATION BLOCK.
+
+!     CREATE A DOUBLY-LINKED LIST TO ACCESS THE INCIDENCES OF THE
+!     COLUMNS. THE POINTERS FOR THE LINKED LIST ARE AS FOLLOWS.
+
+!     EACH UNORDERED COLUMN IC IS IN A LIST (THE INCIDENCE LIST)
+!     OF COLUMNS WITH THE SAME INCIDENCE.
+
+!     IWA1(NUMINC) IS THE FIRST COLUMN IN THE NUMINC LIST
+!     UNLESS IWA1(NUMINC) = 0. IN THIS CASE THERE ARE
+!     NO COLUMNS IN THE NUMINC LIST.
+
+!     IWA2(IC) IS THE COLUMN BEFORE IC IN THE INCIDENCE LIST
+!     UNLESS IWA2(IC) = 0. IN THIS CASE IC IS THE FIRST
+!     COLUMN IN THIS INCIDENCE LIST.
+
+!     IWA3(IC) IS THE COLUMN AFTER IC IN THE INCIDENCE LIST
+!     UNLESS IWA3(IC) = 0. IN THIS CASE IC IS THE LAST
+!     COLUMN IN THIS INCIDENCE LIST.
+
+!     IF IC IS AN UN-ORDERED COLUMN, THEN LIST(IC) IS THE
+!     INCIDENCE OF IC TO THE GRAPH INDUCED BY THE ORDERED
+!     COLUMNS. IF JCOL IS AN ORDERED COLUMN, THEN LIST(JCOL)
+!     IS THE INCIDENCE-DEGREE ORDER OF COLUMN JCOL.
+
+      MAXINC = 0
+      DO JP = N, 1, -1
+        IC = IWA4(JP)
+        IWA1(N-JP) = 0
+        IWA2(IC) = 0
+        IWA3(IC) = IWA1(0)
+        IF (IWA1(0) > 0) IWA2(IWA1(0)) = IC
+        IWA1(0) = IC
+        IWA4(JP) = 0
+        LIST(JP) = 0
+      END DO
+
+!     DETERMINE THE MAXIMAL SEARCH LENGTH FOR THE LIST
+!     OF COLUMNS OF MAXIMAL INCIDENCE.
+      MAXLST = 0
+      DO IR = 1, M
+        MAXLST = MAXLST + (IPNTR(IR+1)-IPNTR(IR))**2
+      END DO
+      MAXLST = MAXLST/N
+      MAXCLQ = 0
+      NUMORD = 1
+
+!     BEGINNING OF ITERATION LOOP.
+
+30    CONTINUE
+
+!     UPDATE THE SIZE OF THE LARGEST CLIQUE
+!     FOUND DURING THE ORDERING.
+      IF (MAXINC == 0) NCOMP = 0
+      NCOMP = NCOMP + 1
+      IF (MAXINC+1 == NCOMP) MAXCLQ = MAX(MAXCLQ,NCOMP)
+
+!     CHOOSE A COLUMN JCOL OF MAXIMAL DEGREE AMONG THE
+!     COLUMNS OF MAXIMAL INCIDENCE MAXINC.
+40    CONTINUE
+      JP = IWA1(MAXINC)
+      IF (JP > 0) GOTO 50
+      MAXINC = MAXINC - 1
+      GOTO 40
+50    CONTINUE
+      NUMWGT = -1
+      DO NUMLST = 1, MAXLST
+        IF (NDEG(JP) > NUMWGT) THEN
+          NUMWGT = NDEG(JP)
+          JCOL = JP
+        END IF
+        JP = IWA3(JP)
+        IF (JP <= 0) GOTO 70
+      END DO
+70    CONTINUE
+      LIST(JCOL) = NUMORD
+      NUMORD = NUMORD + 1
+
+!     TERMINATION TEST.
+      IF (NUMORD > N) GOTO 100
+
+!     DELETE COLUMN JCOL FROM THE MAXINC LIST.
+      IF (IWA2(JCOL) == 0) THEN
+        IWA1(MAXINC) = IWA3(JCOL)
+      ELSE
+        IWA3(IWA2(JCOL)) = IWA3(JCOL)
+      END IF
+      IF (IWA3(JCOL) > 0) IWA2(IWA3(JCOL)) = IWA2(JCOL)
+
+!     FIND ALL COLUMNS ADJACENT TO COLUMN JCOL.
+      IWA4(JCOL) = N
+
+!     DETERMINE ALL POSITIONS(IR,JCOL) WHICH CORRESPOND
+!     TO NON-ZEROES IN THE MATRIX.
+      DO JP = JPNTR(JCOL), JPNTR(JCOL+1) - 1
+        IR = INDROW(JP)
+!       FOR EACH ROW IR, DETERMINE ALL POSITIONS(IR,IC)
+!       WHICH CORRESPOND TO NON-ZEROES IN THE MATRIX.
+        DO IP = IPNTR(IR), IPNTR(IR+1) - 1
+          IC = INDCOL(IP)
+!         ARRAY IWA4 MARKS COLUMNS WHICH ARE ADJACENT TO
+!         COLUMN JCOL.
+          IF (IWA4(IC) < NUMORD) THEN
+            IWA4(IC) = NUMORD
+!           UPDATE THE POINTERS TO THE CURRENT INCIDENCE LISTS.
+            NUMINC = LIST(IC)
+            LIST(IC) = LIST(IC) + 1
+            MAXINC = MAX(MAXINC,LIST(IC))
+!           DELETE COLUMN IC FROM THE NUMINC LIST.
+            IF (IWA2(IC) == 0) THEN
+              IWA1(NUMINC) = IWA3(IC)
+            ELSE
+              IWA3(IWA2(IC)) = IWA3(IC)
+            END IF
+            IF (IWA3(IC) > 0) IWA2(IWA3(IC)) = IWA2(IC)
+!           ADD COLUMN IC TO THE NUMINC+1 LIST.
+            IWA2(IC) = 0
+            IWA3(IC) = IWA1(NUMINC+1)
+            IF (IWA1(NUMINC+1) > 0) IWA2(IWA1(NUMINC+1)) = IC
+            IWA1(NUMINC+1) = IC
+          END IF
+        END DO
+      END DO
+!     END OF ITERATION LOOP.
+      GOTO 30
+100   CONTINUE
+!     INVERT THE ARRAY LIST.
+      DO JCOL = 1, N
+        IWA2(LIST(JCOL)) = JCOL
+      END DO
+      LIST(1:N) = IWA2(1:N)
+      RETURN
+
+    END SUBROUTINE IDO
+!_______________________________________________________________________
+
+    SUBROUTINE NUMSRT(N,NMAX,NUM,MODE,INDEX,LAST,NEXT)
+
+!     GIVEN A SEQUENCE OF INTEGERS, THIS SUBROUTINE GROUPS TOGETHER THOSE
+!     INDICES WITH THE SAME SEQUENCE VALUE AND, OPTIONALLY, SORTS THE
+!     SEQUENCE INTO EITHER ASCENDING OR DESCENDING ORDER. THE SEQUENCE
+!     OF INTEGERS IS DEFINED BY THE ARRAY NUM, AND IT IS ASSUMED THAT THE
+!     INTEGERS ARE EACH FROM THE SET 0,1,...,NMAX. ON OUTPUT THE INDICES
+!     K SUCH THAT NUM(K) = L FOR ANY L = 0,1,...,NMAX CAN BE OBTAINED
+!     FROM THE ARRAYS LAST AND NEXT AS FOLLOWS.
+!           K = LAST(L)
+!           WHILE(K /= 0) K = NEXT(K)
+!     OPTIONALLY, THE SUBROUTINE PRODUCES AN ARRAY INDEX SO THAT
+!     THE SEQUENCE NUM(INDEX(I)), I = 1,2,...,N IS SORTED.
+!     THE SUBROUTINE STATEMENT IS
+!       SUBROUTINE NUMSRT(N,NMAX,NUM,MODE,INDEX,LAST,NEXT)
+!     WHERE
+!       N IS A POSITIVE INTEGER INPUT VARIABLE.
+!       NMAX IS A POSITIVE INTEGER INPUT VARIABLE.
+!       NUM IS AN INPUT ARRAY OF LENGTH N WHICH CONTAINS THE
+!         SEQUENCE OF INTEGERS TO BE GROUPED AND SORTED. IT
+!         IS ASSUMED THAT THE INTEGERS ARE EACH FROM THE SET
+!         0,1,...,NMAX.
+!       MODE IS AN INTEGER INPUT VARIABLE. THE SEQUENCE NUM IS
+!         SORTED IN ASCENDING ORDER IF MODE IS POSITIVE AND IN
+!         DESCENDING ORDER IF MODE IS NEGATIVE. IF MODE IS 0,
+!         NO SORTING IS DONE.
+!       INDEX IS AN INTEGER OUTPUT ARRAY OF LENGTH N SET SO
+!         THAT THE SEQUENCE
+!               NUM(INDEX(I)), I = 1,2,...,N
+!         IS SORTED ACCORDING TO THE SETTING OF MODE. IF MODE
+!         IS 0, INDEX IS NOT REFERENCED.
+!       LAST IS AN INTEGER OUTPUT ARRAY OF LENGTH NMAX + 1. THE
+!         INDEX OF NUM FOR THE LAST OCCURRENCE OF L IS LAST(L)
+!         FOR ANY L = 0,1,...,NMAX UNLESS LAST(L) = 0. IN
+!         THIS CASE L DOES NOT APPEAR IN NUM.
+!       NEXT IS AN INTEGER OUTPUT ARRAY OF LENGTH N. IF
+!         NUM(K) = L, THEN THE INDEX OF NUM FOR THE PREVIOUS
+!         OCCURRENCE OF L IS NEXT(K) FOR ANY L = 0,1,...,NMAX
+!         UNLESS NEXT(K) = 0. IN THIS CASE THERE IS NO PREVIOUS
+!         OCCURRENCE OF L IN NUM.
+!     ARGONNE NATIONAL LABORATORY. MINPACK PROJECT. JULY 1983.
+!     THOMAS F. COLEMAN, BURTON S. GARBOW, JORGE J. MORE'
+
+      IMPLICIT NONE
+
+! .. Scalar Arguments ..
+      INTEGER :: MODE, N, NMAX
+! ..
+! .. Array Arguments ..
+      INTEGER :: INDEX(N), LAST(0:NMAX), NEXT(N), NUM(N)
+! ..
+! .. Local Scalars ..
+      INTEGER :: I, J, JINC, JL, JU, K, L
+! ..
+! ..  FIRST EXECUTABLE STATEMENT NUMSRT
+! ..
+!     DETERMINE THE ARRAYS NEXT AND LAST.
+      LAST(0:NMAX) = 0
+      DO K = 1, N
+        L = NUM(K)
+        NEXT(K) = LAST(L)
+        LAST(L) = K
+      END DO
+      IF (MODE == 0) RETURN
+
+!     STORE THE POINTERS TO THE SORTED ARRAY IN INDEX.
+      I = 1
+      IF (MODE > 0) THEN
+        JL = 0
+        JU = NMAX
+        JINC = 1
+      ELSE
+        JL = NMAX
+        JU = 0
+        JINC = -1
+      END IF
+      DO J = JL, JU, JINC
+        K = LAST(J)
+30      CONTINUE
+        IF (K == 0) GOTO 40
+        INDEX(I) = K
+        I = I + 1
+        K = NEXT(K)
+        GOTO 30
+40      CONTINUE
+      END DO
+      RETURN
+
+    END SUBROUTINE NUMSRT
+!_______________________________________________________________________
+
+    SUBROUTINE SEQ(N,INDROW,JPNTR,INDCOL,IPNTR,LIST,NGRP,MAXGRP,IWA)
+
+!     GIVEN THE SPARSITY PATTERN OF AN M BY N MATRIX A, THIS
+!     SUBROUTINE DETERMINES A CONSISTENT PARTITION OF THE
+!     COLUMNS OF A BY A SEQUENTIAL ALGORITHM.
+!     A CONSISTENT PARTITION IS DEFINED IN TERMS OF THE LOOPLESS
+!     GRAPH G WITH VERTICES A(J), J = 1,2,...,N WHERE A(J) IS THE
+!     J-TH COLUMN OF A AND WITH EDGE(A(I),A(J)) IF AND ONLY IF
+!     COLUMNS I AND J HAVE A NON-ZERO IN THE SAME ROW POSITION.
+!     A PARTITION OF THE COLUMNS OF A INTO GROUPS IS CONSISTENT
+!     IF THE COLUMNS IN ANY GROUP ARE NOT ADJACENT IN THE GRAPH G.
+!     IN GRAPH-THEORY TERMINOLOGY, A CONSISTENT PARTITION OF THE
+!     COLUMNS OF A CORRESPONDS TO A COLORING OF THE GRAPH G.
+!     THE SUBROUTINE EXAMINES THE COLUMNS IN THE ORDER SPECIFIED
+!     BY THE ARRAY LIST, AND ASSIGNS THE CURRENT COLUMN TO THE
+!     GROUP WITH THE SMALLEST POSSIBLE NUMBER.
+!     NOTE THAT THE VALUE OF M IS NOT NEEDED BY SEQ AND IS
+!     THEREFORE NOT PRESENT IN THE SUBROUTINE STATEMENT.
+!     THE SUBROUTINE STATEMENT IS
+!     SUBROUTINE SEQ(N,INDROW,JPNTR,INDCOL,IPNTR,LIST,NGRP,MAXGRP,IWA)
+!     WHERE
+!       N IS A POSITIVE INTEGER INPUT VARIABLE SET TO THE NUMBER
+!         OF COLUMNS OF A.
+!       INDROW IS AN INTEGER INPUT ARRAY WHICH CONTAINS THE ROW
+!         INDICES FOR THE NON-ZEROES IN THE MATRIX A.
+!       JPNTR IS AN INTEGER INPUT ARRAY OF LENGTH N + 1 WHICH
+!         SPECIFIES THE LOCATIONS OF THE ROW INDICES IN INDROW.
+!         THE ROW INDICES FOR COLUMN J ARE
+!               INDROW(K), K = JPNTR(J),...,JPNTR(J+1)-1.
+!         NOTE THAT JPNTR(N+1)-1 IS THEN THE NUMBER OF NON-ZERO
+!         ELEMENTS OF THE MATRIX A.
+!       INDCOL IS AN INTEGER INPUT ARRAY WHICH CONTAINS THE
+!         COLUMN INDICES FOR THE NON-ZEROES IN THE MATRIX A.
+!       IPNTR IS AN INTEGER INPUT ARRAY OF LENGTH M + 1 WHICH
+!         SPECIFIES THE LOCATIONS OF THE COLUMN INDICES IN INDCOL.
+!         THE COLUMN INDICES FOR ROW I ARE
+!               INDCOL(K), K = IPNTR(I),...,IPNTR(I+1)-1.
+!         NOTE THAT IPNTR(M+1)-1 IS THEN THE NUMBER OF NON-ZERO
+!         ELEMENTS OF THE MATRIX A.
+!       LIST IS AN INTEGER INPUT ARRAY OF LENGTH N WHICH SPECIFIES
+!         THE ORDER TO BE USED BY THE SEQUENTIAL ALGORITHM.
+!         THE J-TH COLUMN IN THIS ORDER IS LIST(J).
+!       NGRP IS AN INTEGER OUTPUT ARRAY OF LENGTH N WHICH SPECIFIES
+!         THE PARTITION OF THE COLUMNS OF A. COLUMN JCOL BELONGS
+!         TO GROUP NGRP(JCOL).
+!       MAXGRP IS AN INTEGER OUTPUT VARIABLE WHICH SPECIFIES THE
+!         NUMBER OF GROUPS IN THE PARTITION OF THE COLUMNS OF A.
+!       IWA IS AN INTEGER WORK ARRAY OF LENGTH N.
+!     ARGONNE NATIONAL LABORATORY. MINPACK PROJECT. JULY 1983.
+!     THOMAS F. COLEMAN, BURTON S. GARBOW, JORGE J. MORE'
+
+     IMPLICIT NONE
+
+! .. Scalar Arguments ..
+      INTEGER :: MAXGRP, N
+! ..
+! .. Array Arguments ..
+      INTEGER :: INDCOL(*), INDROW(*), IPNTR(*), IWA(N), JPNTR(N+1), &
+        LIST(N), NGRP(N)
+! ..
+! .. Local Scalars ..
+      INTEGER :: IC, IP, IR, J, JCOL, JP
+! ..
+! ..  FIRST EXECUTABLE STATEMENT SEQ
+! ..
+!     INITIALIZATION BLOCK.
+      MAXGRP = 0
+      NGRP(1:N) = N
+      IWA(1:N) = 0
+
+!     BEGINNING OF ITERATION LOOP.
+
+      DO J = 1, N
+        JCOL = LIST(J)
+!       FIND ALL COLUMNS ADJACENT TO COLUMN JCOL.
+!       DETERMINE ALL POSITIONS (IR,JCOL) WHICH CORRESPOND
+!       TO NON-ZEROES IN THE MATRIX.
+        DO JP = JPNTR(JCOL), JPNTR(JCOL+1) - 1
+          IR = INDROW(JP)
+!         FOR EACH ROW IR, DETERMINE ALL POSITIONS (IR,IC)
+!         WHICH CORRESPOND TO NON-ZEROES IN THE MATRIX.
+          DO IP = IPNTR(IR), IPNTR(IR+1) - 1
+            IC = INDCOL(IP)
+!           ARRAY IWA MARKS THE GROUP NUMBERS OF THE
+!           COLUMNS WHICH ARE ADJACENT TO COLUMN JCOL.
+            IWA(NGRP(IC)) = J
+          END DO
+        END DO
+!       ASSIGN THE SMALLEST UN-MARKED GROUP NUMBER TO JCOL.
+        DO JP = 1, MAXGRP
+          IF (IWA(JP)/=J) GOTO 50
+        END DO
+        MAXGRP = MAXGRP + 1
+50      CONTINUE
+        NGRP(JCOL) = JP
+      END DO
+
+!     END OF ITERATION LOOP.
+
+      RETURN
+
+    END SUBROUTINE SEQ
+!_______________________________________________________________________
+
+    SUBROUTINE SETR(M,N,INDROW,JPNTR,INDCOL,IPNTR,IWA)
+
+!     GIVEN A COLUMN-ORIENTED DEFINITION OF THE SPARSITY PATTERN
+!     OF AN M BY N MATRIX A, THIS SUBROUTINE DETERMINES A
+!     ROW-ORIENTED DEFINITION OF THE SPARSITY PATTERN OF A.
+!     ON INPUT THE COLUMN-ORIENTED DEFINITION IS SPECIFIED BY
+!     THE ARRAYS INDROW AND JPNTR. ON OUTPUT THE ROW-ORIENTED
+!     DEFINITION IS SPECIFIED BY THE ARRAYS INDCOL AND IPNTR.
+!     THE SUBROUTINE STATEMENT IS
+!       SUBROUTINE SETR(M,N,INDROW,JPNTR,INDCOL,IPNTR,IWA)
+!     WHERE
+!       M IS A POSITIVE INTEGER INPUT VARIABLE SET TO THE NUMBER
+!         OF ROWS OF A.
+!       N IS A POSITIVE INTEGER INPUT VARIABLE SET TO THE NUMBER
+!         OF COLUMNS OF A.
+!       INDROW IS AN INTEGER INPUT ARRAY WHICH CONTAINS THE ROW
+!         INDICES FOR THE NON-ZEROES IN THE MATRIX A.
+!       JPNTR IS AN INTEGER INPUT ARRAY OF LENGTH N + 1 WHICH
+!         SPECIFIES THE LOCATIONS OF THE ROW INDICES IN INDROW.
+!         THE ROW INDICES FOR COLUMN J ARE
+!               INDROW(K), K = JPNTR(J),...,JPNTR(J+1)-1.
+!         NOTE THAT JPNTR(N+1)-1 IS THEN THE NUMBER OF NON-ZERO
+!         ELEMENTS OF THE MATRIX A.
+!       INDCOL IS AN INTEGER OUTPUT ARRAY WHICH CONTAINS THE
+!         COLUMN INDICES FOR THE NON-ZEROES IN THE MATRIX A.
+!       IPNTR IS AN INTEGER OUTPUT ARRAY OF LENGTH M + 1 WHICH
+!         SPECIFIES THE LOCATIONS OF THE COLUMN INDICES IN INDCOL.
+!         THE COLUMN INDICES FOR ROW I ARE
+!               INDCOL(K), K = IPNTR(I),...,IPNTR(I+1)-1.
+!         NOTE THAT IPNTR(1) IS SET TO 1 AND THAT IPNTR(M+1)-1 IS
+!         THEN THE NUMBER OF NON-ZERO ELEMENTS OF THE MATRIX A.
+!       IWA IS AN INTEGER WORK ARRAY OF LENGTH M.
+!     ARGONNE NATIONAL LABORATORY. MINPACK PROJECT. JULY 1983.
+!     THOMAS F. COLEMAN, BURTON S. GARBOW, JORGE J. MORE'
+
+     IMPLICIT NONE
+
+! .. Scalar Arguments ..
+      INTEGER :: M, N
+! ..
+! .. Array Arguments ..
+      INTEGER :: INDCOL(*), INDROW(*), IPNTR(M+1), IWA(M), JPNTR(N+1)
+! ..
+! .. Local Scalars ..
+      INTEGER :: IR, JCOL, JP
+! ..
+! ..  FIRST EXECUTABLE STATEMENT SETR
+! ..
+!     STORE IN ARRAY IWA THE COUNTS OF NON-ZEROES IN THE ROWS.
+      IWA(1:M) = 0
+      DO JP = 1, JPNTR(N+1) - 1
+        IWA(INDROW(JP)) = IWA(INDROW(JP)) + 1
+      END DO
+
+!     SET POINTERS TO THE START OF THE ROWS IN INDCOL.
+      IPNTR(1) = 1
+      DO IR = 1, M
+        IPNTR(IR+1) = IPNTR(IR) + IWA(IR)
+        IWA(IR) = IPNTR(IR)
+      END DO
+
+!     FILL INDCOL.
+      DO JCOL = 1, N
+        DO JP = JPNTR(JCOL), JPNTR(JCOL+1) - 1
+          IR = INDROW(JP)
+          INDCOL(IWA(IR)) = JCOL
+          IWA(IR) = IWA(IR) + 1
+        END DO
+      END DO
+      RETURN
+
+    END SUBROUTINE SETR
+!_______________________________________________________________________
+
+    SUBROUTINE SLO(N,INDROW,JPNTR,INDCOL,IPNTR,NDEG,LIST,MAXCLQ,IWA1,IWA2, &
+        IWA3,IWA4)
+
+!     GIVEN THE SPARSITY PATTERN OF AN M BY N MATRIX A, THIS
+!     SUBROUTINE DETERMINES THE SMALLEST-LAST ORDERING OF THE
+!     COLUMNS OF A.
+!     THE SMALLEST-LAST ORDERING IS DEFINED FOR THE LOOPLESS
+!     GRAPH G WITH VERTICES A(J), J = 1,2,...,N WHERE A(J) IS THE
+!     J-TH COLUMN OF A AND WITH EDGE(A(I),A(J)) IF AND ONLY IF
+!     COLUMNS I AND J HAVE A NON-ZERO IN THE SAME ROW POSITION.
+!     THE SMALLEST-LAST ORDERING IS DETERMINED RECURSIVELY BY
+!     LETTING LIST(K), K = N,...,1 BE A COLUMN WITH LEAST DEGREE
+!     IN THE SUBGRAPH SPANNED BY THE UN-ORDERED COLUMNS.
+!     NOTE THAT THE VALUE OF M IS NOT NEEDED BY SLO AND IS
+!     THEREFORE NOT PRESENT IN THE SUBROUTINE STATEMENT.
+!     THE SUBROUTINE STATEMENT IS
+!     SUBROUTINE SLO(N,INDROW,JPNTR,INDCOL,IPNTR,NDEG,LIST, &
+!                    MAXCLQ,IWA1,IWA2,IWA3,IWA4)
+!     WHERE
+!       N IS A POSITIVE INTEGER INPUT VARIABLE SET TO THE NUMBER
+!         OF COLUMNS OF A.
+!       INDROW IS AN INTEGER INPUT ARRAY WHICH CONTAINS THE ROW
+!         INDICES FOR THE NON-ZEROES IN THE MATRIX A.
+!       JPNTR IS AN INTEGER INPUT ARRAY OF LENGTH N + 1 WHICH
+!         SPECIFIES THE LOCATIONS OF THE ROW INDICES IN INDROW.
+!         THE ROW INDICES FOR COLUMN J ARE
+!               INDROW(K), K = JPNTR(J),...,JPNTR(J+1)-1.
+!         NOTE THAT JPNTR(N+1)-1 IS THEN THE NUMBER OF NON-ZERO
+!         ELEMENTS OF THE MATRIX A.
+!       INDCOL IS AN INTEGER INPUT ARRAY WHICH CONTAINS THE
+!         COLUMN INDICES FOR THE NON-ZEROES IN THE MATRIX A.
+!       IPNTR IS AN INTEGER INPUT ARRAY OF LENGTH M + 1 WHICH
+!         SPECIFIES THE LOCATIONS OF THE COLUMN INDICES IN INDCOL.
+!         THE COLUMN INDICES FOR ROW I ARE
+!               INDCOL(K), K = IPNTR(I),...,IPNTR(I+1)-1.
+!         NOTE THAT IPNTR(M+1)-1 IS THEN THE NUMBER OF NON-ZERO
+!         ELEMENTS OF THE MATRIX A.
+!       NDEG IS AN INTEGER INPUT ARRAY OF LENGTH N WHICH SPECIFIES
+!         THE DEGREE SEQUENCE. THE DEGREE OF THE J-TH COLUMN
+!         OF A IS NDEG(J).
+!       LIST IS AN INTEGER OUTPUT ARRAY OF LENGTH N WHICH SPECIFIES
+!         THE SMALLEST-LAST ORDERING OF THE COLUMNS OF A. THE J-TH
+!         COLUMN IN THIS ORDER IS LIST(J).
+!       MAXCLQ IS AN INTEGER OUTPUT VARIABLE SET TO THE SIZE
+!         OF THE LARGEST CLIQUE FOUND DURING THE ORDERING.
+!       IWA1,IWA2,IWA3, AND IWA4 ARE INTEGER WORK ARRAYS OF LENGTH N.
+!     SUBPROGRAMS CALLED
+!       INTRINSIC ... MIN
+!     ARGONNE NATIONAL LABORATORY. MINPACK PROJECT. JULY 1983.
+!     THOMAS F. COLEMAN, BURTON S. GARBOW, JORGE J. MORE'
+
+     IMPLICIT NONE
+
+! .. Scalar Arguments ..
+      INTEGER :: MAXCLQ, N
+! ..
+! .. Array Arguments ..
+      INTEGER :: INDCOL(*), INDROW(*), IPNTR(*), IWA1(0:N-1), IWA2(N), &
+        IWA3(N), IWA4(N), JPNTR(N+1), LIST(N), NDEG(N)
+! ..
+! .. Local Scalars ..
+      INTEGER :: IC, IP, IR, JCOL, JP, MINDEG, NUMDEG, NUMORD
+! ..
+! .. Intrinsic Functions ..
+      INTRINSIC MIN
+! ..
+! ..  FIRST EXECUTABLE STATEMENT SLO
+! ..
+!     INITIALIZATION BLOCK.
+      MINDEG = N
+      DO JP = 1, N
+        IWA1(JP-1) = 0
+        IWA4(JP) = N
+        LIST(JP) = NDEG(JP)
+        MINDEG = MIN(MINDEG,NDEG(JP))
+      END DO
+
+!     CREATE A DOUBLY-LINKED LIST TO ACCESS THE DEGREES OF THE
+!     COLUMNS. THE POINTERS FOR THE LINKED LIST ARE AS FOLLOWS.
+
+!     EACH UN-ORDERED COLUMN IC IS IN A LIST (THE DEGREE LIST)
+!     OF COLUMNS WITH THE SAME DEGREE.
+
+!     IWA1(NUMDEG) IS THE FIRST COLUMN IN THE NUMDEG LIST
+!     UNLESS IWA1(NUMDEG) = 0. IN THIS CASE THERE ARE
+!     NO COLUMNS IN THE NUMDEG LIST.
+
+!     IWA2(IC) IS THE COLUMN BEFORE IC IN THE DEGREE LIST
+!     UNLESS IWA2(IC) = 0. IN THIS CASE IC IS THE FIRST
+!     COLUMN IN THIS DEGREE LIST.
+
+!     IWA3(IC) IS THE COLUMN AFTER IC IN THE DEGREE LIST
+!     UNLESS IWA3(IC) = 0. IN THIS CASE IC IS THE LAST
+!     COLUMN IN THIS DEGREE LIST.
+
+!     IF IC IS AN UN-ORDERED COLUMN, THEN LIST(IC) IS THE
+!     DEGREE OF IC IN THE GRAPH INDUCED BY THE UN-ORDERED
+!     COLUMNS. IF JCOL IS AN ORDERED COLUMN, THEN LIST(JCOL)
+!     IS THE SMALLEST-LAST ORDER OF COLUMN JCOL.
+
+      DO JP = 1, N
+        NUMDEG = NDEG(JP)
+        IWA2(JP) = 0
+        IWA3(JP) = IWA1(NUMDEG)
+        IF (IWA1(NUMDEG) > 0) IWA2(IWA1(NUMDEG)) = JP
+        IWA1(NUMDEG) = JP
+      END DO
+      MAXCLQ = 0
+      NUMORD = N
+
+!     BEGINNING OF ITERATION LOOP.
+
+30    CONTINUE
+
+!     MARK THE SIZE OF THE LARGEST CLIQUE
+!     FOUND DURING THE ORDERING.
+      IF (MINDEG+1 == NUMORD .AND. MAXCLQ == 0) MAXCLQ = NUMORD
+
+!     CHOOSE A COLUMN JCOL OF MINIMAL DEGREE MINDEG.
+40    CONTINUE
+      JCOL = IWA1(MINDEG)
+      IF (JCOL > 0) GOTO 50
+      MINDEG = MINDEG + 1
+      GOTO 40
+50    CONTINUE
+      LIST(JCOL) = NUMORD
+      NUMORD = NUMORD - 1
+
+!     TERMINATION TEST.
+      IF (NUMORD == 0) GOTO 80
+
+!     DELETE COLUMN JCOL FROM THE MINDEG LIST.
+      IWA1(MINDEG) = IWA3(JCOL)
+      IF (IWA3(JCOL) > 0) IWA2(IWA3(JCOL)) = 0
+
+!     FIND ALL COLUMNS ADJACENT TO COLUMN JCOL.
+      IWA4(JCOL) = 0
+
+!     DETERMINE ALL POSITIONS (IR,JCOL) WHICH CORRESPOND
+!     TO NON-ZEROES IN THE MATRIX.
+      DO JP = JPNTR(JCOL), JPNTR(JCOL+1) - 1
+        IR = INDROW(JP)
+!       FOR EACH ROW IR, DETERMINE ALL POSITIONS (IR,IC)
+!       WHICH CORRESPOND TO NON-ZEROES IN THE MATRIX.
+        DO IP = IPNTR(IR), IPNTR(IR+1) - 1
+          IC = INDCOL(IP)
+!         ARRAY IWA4 MARKS COLUMNS WHICH ARE ADJACENT TO
+!         COLUMN JCOL.
+
+          IF (IWA4(IC) > NUMORD) THEN
+            IWA4(IC) = NUMORD
+!           UPDATE THE POINTERS TO THE CURRENT DEGREE LISTS.
+            NUMDEG = LIST(IC)
+            LIST(IC) = LIST(IC) - 1
+            MINDEG = MIN(MINDEG,LIST(IC))
+!           DELETE COLUMN IC FROM THE NUMDEG LIST.
+            IF (IWA2(IC) == 0) THEN
+              IWA1(NUMDEG) = IWA3(IC)
+            ELSE
+              IWA3(IWA2(IC)) = IWA3(IC)
+            END IF
+            IF (IWA3(IC) > 0) IWA2(IWA3(IC)) = IWA2(IC)
+!           ADD COLUMN IC TO THE NUMDEG-1 LIST.
+            IWA2(IC) = 0
+            IWA3(IC) = IWA1(NUMDEG-1)
+            IF (IWA1(NUMDEG-1) > 0) IWA2(IWA1(NUMDEG-1)) = IC
+            IWA1(NUMDEG-1) = IC
+          END IF
+        END DO
+      END DO
+!     END OF ITERATION LOOP.
+
+      GOTO 30
+80    CONTINUE
+
+!     INVERT THE ARRAY LIST.
+      DO JCOL = 1, N
+        IWA2(LIST(JCOL)) = JCOL
+      END DO
+      LIST(1:N) = IWA2(1:N)
+      RETURN
+
+    END SUBROUTINE SLO
+!_______________________________________________________________________
+
+    SUBROUTINE SRTDAT(N,NNZ,INDROW,INDCOL,JPNTR,IWA)
+
+!     GIVEN THE NON-ZERO ELEMENTS OF AN M BY N MATRIX A IN ARBITRARY
+!     ORDER AS SPECIFIED BY THEIR ROW AND COLUMN INDICES, THIS SUBROUTINE
+!     PERMUTES THESE ELEMENTS SO THAT THEIR COLUMN INDICES ARE IN
+!     NON-DECREASING ORDER. ON INPUT IT IS ASSUMED THAT THE ELEMENTS ARE
+!     SPECIFIED IN
+!           INDROW(K),INDCOL(K), K = 1,...,NNZ.
+!     ON OUTPUT THE ELEMENTS ARE PERMUTED SO THAT INDCOL IS IN
+!     NON-DECREASING ORDER. IN ADDITION, THE ARRAY JPNTR IS SET SO THAT
+!     THE ROW INDICES FOR COLUMN J ARE
+!           INDROW(K), K = JPNTR(J),...,JPNTR(J+1)-1.
+!     NOTE THAT THE VALUE OF M IS NOT NEEDED BY SRTDAT AND IS THEREFORE
+!     NOT PRESENT IN THE SUBROUTINE STATEMENT.
+!     THE SUBROUTINE STATEMENT IS
+!       SUBROUTINE SRTDAT(N,NNZ,INDROW,INDCOL,JPNTR,IWA)
+!     WHERE
+!       N IS A POSITIVE INTEGER INPUT VARIABLE SET TO THE NUMBER
+!         OF COLUMNS OF A.
+!       NNZ IS A POSITIVE INTEGER INPUT VARIABLE SET TO THE NUMBER
+!         OF NON-ZERO ELEMENTS OF A.
+!       INDROW IS AN INTEGER ARRAY OF LENGTH NNZ. ON INPUT INDROW
+!         MUST CONTAIN THE ROW INDICES OF THE NON-ZERO ELEMENTS OF A.
+!         ON OUTPUT INDROW IS PERMUTED SO THAT THE CORRESPONDING
+!         COLUMN INDICES OF INDCOL ARE IN NON-DECREASING ORDER.
+!       INDCOL IS AN INTEGER ARRAY OF LENGTH NNZ. ON INPUT INDCOL
+!         MUST CONTAIN THE COLUMN INDICES OF THE NON-ZERO ELEMENTS
+!         OF A. ON OUTPUT INDCOL IS PERMUTED SO THAT THESE INDICES
+!         ARE IN NON-DECREASING ORDER.
+!       JPNTR IS AN INTEGER OUTPUT ARRAY OF LENGTH N + 1 WHICH
+!         SPECIFIES THE LOCATIONS OF THE ROW INDICES IN THE OUTPUT
+!         INDROW. THE ROW INDICES FOR COLUMN J ARE
+!               INDROW(K), K = JPNTR(J),...,JPNTR(J+1)-1.
+!         NOTE THAT JPNTR(1) IS SET TO 1 AND THAT JPNTR(N+1)-1
+!         IS THEN NNZ.
+!       IWA IS AN INTEGER WORK ARRAY OF LENGTH N.
+!     SUBPROGRAMS CALLED - NONE
+!     INTRINSIC - MAX
+!     ARGONNE NATIONAL LABORATORY. MINPACK PROJECT. JULY 1983.
+!     THOMAS F. COLEMAN, BURTON S. GARBOW, JORGE J. MORE'
+
+     IMPLICIT NONE
+
+! .. Scalar Arguments ..
+      INTEGER :: N, NNZ
+! ..
+! .. Array Arguments ..
+      INTEGER :: INDCOL(NNZ), INDROW(NNZ), IWA(N), JPNTR(N+1)
+! ..
+! .. Local Scalars ..
+      INTEGER :: I, J, K, L
+! ..
+! .. Intrinsic Functions ..
+      INTRINSIC MAX
+! ..
+! ..  FIRST EXECUTABLE STATEMENT SRTDAT
+! ..
+!     STORE IN ARRAY IWA THE COUNTS OF NON-ZEROES IN THE COLUMNS.
+      IWA(1:N) = 0
+      DO K = 1, NNZ
+        IWA(INDCOL(K)) = IWA(INDCOL(K)) + 1
+      END DO
+
+!     SET POINTERS TO THE START OF THE COLUMNS IN INDROW.
+      JPNTR(1) = 1
+      DO J = 1, N
+        JPNTR(J+1) = JPNTR(J) + IWA(J)
+        IWA(J) = JPNTR(J)
+      END DO
+      K = 1
+
+!     BEGIN IN-PLACE SORT.
+40    CONTINUE
+      J = INDCOL(K)
+      IF (K >= JPNTR(J)) THEN
+!        CURRENT ELEMENT IS IN POSITION. NOW EXAMINE THE
+!        NEXT ELEMENT OR THE FIRST UN-SORTED ELEMENT IN
+!        THE J-TH GROUP.
+        K = MAX(K+1,IWA(J))
+      ELSE
+!       CURRENT ELEMENT IS NOT IN POSITION. PLACE ELEMENT
+!       IN POSITION AND MAKE THE DISPLACED ELEMENT THE
+!       CURRENT ELEMENT.
+        L = IWA(J)
+        IWA(J) = IWA(J) + 1
+        I = INDROW(K)
+        INDROW(K) = INDROW(L)
+        INDCOL(K) = INDCOL(L)
+        INDROW(L) = I
+        INDCOL(L) = J
+      END IF
+      IF (K <= NNZ) GOTO 40
+      RETURN
+
+    END SUBROUTINE SRTDAT
+!_______________________________________________________________________
+
+    SUBROUTINE FDJS(M,N,COL,IND,NPNTR,NGRP,NUMGRP,D,FJACD,FJAC)
+
+!     GIVEN A CONSISTENT PARTITION OF THE COLUMNS OF AN M BY N
+!     JACOBIAN MATRIX INTO GROUPS, THIS SUBROUTINE COMPUTES
+!     APPROXIMATIONS TO THOSE COLUMNS IN A GIVEN GROUP. THE
+!     APPROXIMATIONS ARE STORED INTO EITHER A COLUMN-ORIENTED
+!     OR A ROW-ORIENTED PATTERN.
+!     A PARTITION IS CONSISTENT IF THE COLUMNS IN ANY GROUP
+!     DO NOT HAVE A NON-ZERO IN THE SAME ROW POSITION.
+!     APPROXIMATIONS TO THE COLUMNS OF THE JACOBIAN MATRIX IN A
+!     GIVEN GROUP CAN BE OBTAINED BY SPECIFYING A DIFFERENCE
+!     PARAMETER ARRAY D WITH D(JCOL) NON-ZERO IF AND ONLY IF
+!     JCOL IS A COLUMN IN THE GROUP, AND AN APPROXIMATION TO
+!     JAC*D WHERE JAC DENOTES THE JACOBIAN MATRIX OF A MAPPING F.
+!     D CAN BE DEFINED WITH THE FOLLOWING SEGMENT OF CODE.
+!           DO 10 JCOL = 1, N
+!             D(JCOL) = 0.0
+!             IF (NGRP(JCOL) == NUMGRP) D(JCOL) = ETA(JCOL)
+!        10 CONTINUE
+!     IN THE ABOVE CODE NUMGRP IS THE GIVEN GROUP NUMBER,
+!     NGRP(JCOL) IS THE GROUP NUMBER OF COLUMN JCOL, AND
+!     ETA(JCOL) IS THE DIFFERENCE PARAMETER USED TO
+!     APPROXIMATE COLUMN JCOL OF THE JACOBIAN MATRIX.
+!     SUITABLE VALUES FOR THE ARRAY ETA MUST BE PROVIDED.
+!     AS MENTIONED ABOVE, AN APPROXIMATION TO JAC*D MUST
+!     ALSO BE PROVIDED. FOR EXAMPLE, THE APPROXIMATION
+!           F(X+D) - F(X)
+!     CORRESPONDS TO THE FORWARD DIFFERENCE FORMULA AT X.
+!     THE SUBROUTINE STATEMENT IS
+!       SUBROUTINE FDJS(M,N,COL,IND,NPNTR,NGRP,NUMGRP,D,FJACD,FJAC)
+!     WHERE
+!       M IS A POSITIVE INTEGER INPUT VARIABLE SET TO THE NUMBER
+!         OF ROWS OF THE JACOBIAN MATRIX.
+!       N IS A POSITIVE INTEGER INPUT VARIABLE SET TO THE NUMBER
+!         OF COLUMNS OF THE JACOBIAN MATRIX.
+!       COL IS A LOGICAL INPUT VARIABLE. IF COL IS SET TRUE, THEN THE
+!         JACOBIAN APPROXIMATIONS ARE STORED INTO A COLUMN-ORIENTED
+!         PATTERN. IF COL IS SET FALSE, THEN THE JACOBIAN
+!         APPROXIMATIONS ARE STORED INTO A ROW-ORIENTED PATTERN.
+!       IND IS AN INTEGER INPUT ARRAY WHICH CONTAINS THE ROW
+!         INDICES FOR THE NON-ZEROES IN THE JACOBIAN MATRIX
+!         IF COL IS TRUE, AND CONTAINS THE COLUMN INDICES FOR
+!         THE NON-ZEROES IN THE JACOBIAN MATRIX IF COL IS FALSE.
+!       NPNTR IS AN INTEGER INPUT ARRAY WHICH SPECIFIES THE
+!         LOCATIONS OF THE ROW INDICES IN IND IF COL IS TRUE, AND
+!         SPECIFIES THE LOCATIONS OF THE COLUMN INDICES IN IND IF
+!         COL IS FALSE. IF COL IS TRUE, THE INDICES FOR COLUMN J ARE
+!               IND(K), K = NPNTR(J),...,NPNTR(J+1)-1.
+!         IF COL IS FALSE, THE INDICES FOR ROW I ARE
+!               IND(K), K = NPNTR(I),...,NPNTR(I+1)-1.
+!         NOTE THAT NPNTR(N+1)-1 IF COL IS TRUE, OR NPNTR(M+1)-1
+!         IF COL IS FALSE, IS THEN THE NUMBER OF NON-ZERO ELEMENTS
+!         OF THE JACOBIAN MATRIX.
+!       NGRP IS AN INTEGER INPUT ARRAY OF LENGTH N WHICH SPECIFIES
+!         THE PARTITION OF THE COLUMNS OF THE JACOBIAN MATRIX.
+!         COLUMN JCOL BELONGS TO GROUP NGRP(JCOL).
+!       NUMGRP IS A POSITIVE INTEGER INPUT VARIABLE SET TO A GROUP
+!         NUMBER IN THE PARTITION. THE COLUMNS OF THE JACOBIAN
+!         MATRIX IN THIS GROUP ARE TO BE ESTIMATED ON THIS CALL.
+!       D IS AN INPUT ARRAY OF LENGTH N WHICH CONTAINS THE
+!         DIFFERENCE PARAMETER VECTOR FOR THE ESTIMATE OF
+!         THE JACOBIAN MATRIX COLUMNS IN GROUP NUMGRP.
+!       FJACD IS AN INPUT ARRAY OF LENGTH M WHICH CONTAINS
+!         AN APPROXIMATION TO THE DIFFERENCE VECTOR JAC*D,
+!         WHERE JAC DENOTES THE JACOBIAN MATRIX.
+!       FJAC IS AN OUTPUT ARRAY OF LENGTH NNZ, WHERE NNZ IS THE
+!         NUMBER OF ITS NON-ZERO ELEMENTS. AT EACH CALL OF FDJS,
+!         FJAC IS UPDATED TO INCLUDE THE NON-ZERO ELEMENTS OF THE
+!         JACOBIAN MATRIX FOR THOSE COLUMNS IN GROUP NUMGRP. FJAC
+!         SHOULD NOT BE ALTERED BETWEEN SUCCESSIVE CALLS TO FDJS.
+!     ARGONNE NATIONAL LABORATORY. MINPACK PROJECT. JULY 1983.
+!     THOMAS F. COLEMAN, BURTON S. GARBOW, JORGE J. MORE'
+
+     IMPLICIT NONE
+
+! .. Parameters ..
+      INTEGER, PARAMETER :: WP = KIND(0.0D0)
+! ..
+! .. Scalar Arguments ..
+      INTEGER :: M, N, NUMGRP
+      LOGICAL :: COL
+! ..
+! .. Array Arguments ..
+      REAL (WP) :: D(N), FJAC(*), FJACD(M)
+      INTEGER :: IND(*), NGRP(N), NPNTR(*)
+! ..
+! .. Local Scalars ..
+      INTEGER :: IP, IROW, JCOL, JP
+! ..
+! .. Intrinsic Functions ..
+!     INTRINSIC KIND
+! ..
+! ..  FIRST EXECUTABLE STATEMENT FDJS
+! ..
+!     COMPUTE ESTIMATES OF JACOBIAN MATRIX COLUMNS IN GROUP
+!     NUMGRP. THE ARRAY FJACD MUST CONTAIN AN APPROXIMATION
+!     TO JAC*D, WHERE JAC DENOTES THE JACOBIAN MATRIX AND D
+!     IS A DIFFERENCE PARAMETER VECTOR WITH D(JCOL) NON-ZERO
+!     IF AND ONLY IF JCOL IS A COLUMN IN GROUP NUMGRP.
+      IF (COL) THEN
+!       COLUMN ORIENTATION.
+        DO JCOL = 1, N
+          IF (NGRP(JCOL) == NUMGRP) THEN
+            DO JP = NPNTR(JCOL), NPNTR(JCOL+1) - 1
+              IROW = IND(JP)
+              FJAC(JP) = FJACD(IROW)/D(JCOL)
+            END DO
+          END IF
+        END DO
+      ELSE
+!       ROW ORIENTATION.
+        DO IROW = 1, M
+          DO IP = NPNTR(IROW), NPNTR(IROW+1) - 1
+            JCOL = IND(IP)
+            IF (NGRP(JCOL) == NUMGRP) THEN
+              FJAC(IP) = FJACD(IROW)/D(JCOL)
+              GOTO 40
+            END IF
+          END DO
+40        CONTINUE
+        END DO
+      END IF
+      RETURN
+
+    END SUBROUTINE FDJS
+!_______________________________________________________________________
+
+    SUBROUTINE DVDSM(M,N,NPAIRS,INDROW,INDCOL,NGRP,MAXGRP,MINGRP,INFO, &
+        IPNTR, JPNTR,IWA,LIWA)
+
+!     THE PURPOSE OF DSM IS TO DETERMINE AN OPTIMAL OR NEAR-
+!     OPTIMAL CONSISTENT PARTITION OF THE COLUMNS OF A SPARSE
+!     M BY N MATRIX A.
+!     THE SPARSITY PATTERN OF THE MATRIX A IS SPECIFIED BY
+!     THE ARRAYS INDROW AND INDCOL. ON INPUT THE INDICES
+!     FOR THE NON-ZERO ELEMENTS OF A ARE
+!           INDROW(K),INDCOL(K), K = 1,2,...,NPAIRS.
+!     THE(INDROW,INDCOL) PAIRS MAY BE SPECIFIED IN ANY ORDER.
+!     DUPLICATE INPUT PAIRS ARE PERMITTED, BUT THE SUBROUTINE
+!     ELIMINATES THEM.
+!     THE SUBROUTINE PARTITIONS THE COLUMNS OF A INTO GROUPS
+!     SUCH THAT COLUMNS IN THE SAME GROUP DO NOT HAVE A
+!     NON-ZERO IN THE SAME ROW POSITION. A PARTITION OF THE
+!     COLUMNS OF A WITH THIS PROPERTY IS CONSISTENT WITH THE
+!     DIRECT DETERMINATION OF A.
+!     THE SUBROUTINE STATEMENT IS
+!       SUBROUTINE DVDSM(M,N,NPAIRS,INDROW,INDCOL,NGRP,MAXGRP,MINGRP,
+!                      INFO,IPNTR,JPNTR,IWA,LIWA)
+!     WHERE
+!       M IS A POSITIVE INTEGER INPUT VARIABLE SET TO THE NUMBER
+!         OF ROWS OF A.
+!       N IS A POSITIVE INTEGER INPUT VARIABLE SET TO THE NUMBER
+!         OF COLUMNS OF A.
+!       NPAIRS IS A POSITIVE INTEGER INPUT VARIABLE SET TO THE
+!         NUMBER OF (INDROW,INDCOL) PAIRS USED TO DESCRIBE THE
+!         SPARSITY PATTERN OF A.
+!       INDROW IS AN INTEGER ARRAY OF LENGTH NPAIRS. ON INPUT INDROW
+!         MUST CONTAIN THE ROW INDICES OF THE NON-ZERO ELEMENTS OF A.
+!         ON OUTPUT INDROW IS PERMUTED SO THAT THE CORRESPONDING
+!         COLUMN INDICES ARE IN NON-DECREASING ORDER. THE COLUMN
+!         INDICES CAN BE RECOVERED FROM THE ARRAY JPNTR.
+!       INDCOL IS AN INTEGER ARRAY OF LENGTH NPAIRS. ON INPUT INDCOL
+!         MUST CONTAIN THE COLUMN INDICES OF THE NON-ZERO ELEMENTS OF
+!         A. ON OUTPUT INDCOL IS PERMUTED SO THAT THE CORRESPONDING
+!         ROW INDICES ARE IN NON-DECREASING ORDER. THE ROW INDICES
+!         CAN BE RECOVERED FROM THE ARRAY IPNTR.
+!       NGRP IS AN INTEGER OUTPUT ARRAY OF LENGTH N WHICH SPECIFIES
+!         THE PARTITION OF THE COLUMNS OF A. COLUMN JCOL BELONGS
+!         TO GROUP NGRP(JCOL).
+!       MAXGRP IS AN INTEGER OUTPUT VARIABLE WHICH SPECIFIES THE
+!         NUMBER OF GROUPS IN THE PARTITION OF THE COLUMNS OF A.
+!       MINGRP IS AN INTEGER OUTPUT VARIABLE WHICH SPECIFIES A LOWER
+!         BOUND FOR THE NUMBER OF GROUPS IN ANY CONSISTENT PARTITION
+!         OF THE COLUMNS OF A.
+!       INFO IS AN INTEGER OUTPUT VARIABLE SET AS FOLLOWS. FOR
+!         NORMAL TERMINATION INFO = 1. IF M, N, OR NPAIRS IS NOT
+!         POSITIVE OR LIWA IS LESS THAN MAX(M,6*N), THEN INFO = 0.
+!         IF THE K-TH ELEMENT OF INDROW IS NOT AN INTEGER BETWEEN
+!         1 AND M OR THE K-TH ELEMENT OF INDCOL IS NOT AN INTEGER
+!         BETWEEN 1 AND N, THEN INFO = -K.
+!       IPNTR IS AN INTEGER OUTPUT ARRAY OF LENGTH M + 1 WHICH
+!         SPECIFIES THE LOCATIONS OF THE COLUMN INDICES IN INDCOL.
+!         THE COLUMN INDICES FOR ROW I ARE
+!               INDCOL(K), K = IPNTR(I),...,IPNTR(I+1)-1.
+!         NOTE THAT IPNTR(M+1)-1 IS THEN THE NUMBER OF NON-ZERO
+!         ELEMENTS OF THE MATRIX A.
+!       JPNTR IS AN INTEGER OUTPUT ARRAY OF LENGTH N + 1 WHICH
+!         SPECIFIES THE LOCATIONS OF THE ROW INDICES IN INDROW.
+!         THE ROW INDICES FOR COLUMN J ARE
+!               INDROW(K), K = JPNTR(J),...,JPNTR(J+1)-1.
+!         NOTE THAT JPNTR(N+1)-1 IS THEN THE NUMBER OF NON-ZERO
+!         ELEMENTS OF THE MATRIX A.
+!       IWA IS AN INTEGER WORK ARRAY OF LENGTH LIWA.
+!       LIWA IS A POSITIVE INTEGER INPUT VARIABLE NOT LESS THAN
+!         MAX(M,6*N).
+!       MINPACK-SUPPLIED ... DEGR,IDO,NUMSRT,SEQ,SETR,SLO,SRTDAT
+!       INTRINSIC - MAX
+!     ARGONNE NATIONAL LABORATORY. MINPACK PROJECT. JULY 1983.
+!     THOMAS F. COLEMAN, BURTON S. GARBOW, JORGE J. MORE'
+
+     IMPLICIT NONE
+
+! .. Scalar Arguments ..
+      INTEGER :: INFO, LIWA, M, MAXGRP, MINGRP, N, NPAIRS
+! ..
+! .. Array Arguments ..
+      INTEGER :: INDCOL(NPAIRS), INDROW(NPAIRS), IPNTR(M+1), IWA(LIWA), &
+        JPNTR(N+1), NGRP(N)
+! ..
+! .. Local Scalars ..
+      INTEGER :: I, IR, J, JP, K, MAXCLQ, NNZ, NUMGRP
+! ..
+! .. External Subroutines ..
+!     EXTERNAL DEGR, IDO, NUMSRT, SEQ, SETR, SLO, SRTDAT
+! ..
+! .. Intrinsic Functions ..
+      INTRINSIC MAX
+! ..
+! ..  FIRST EXECUTABLE STATEMENT DSM
+! ..
+!     CHECK THE INPUT DATA.
+      INFO = 0
+      IF (M<1 .OR. N<1 .OR. NPAIRS<1 .OR. LIWA<MAX(M,6*N)) RETURN
+      DO K = 1, NPAIRS
+        INFO = -K
+        IF (INDROW(K)<1 .OR. INDROW(K)>M .OR. INDCOL(K)<1 .OR. INDCOL(K)>N) &
+          RETURN
+      END DO
+      INFO = 1
+
+!     SORT THE DATA STRUCTURE BY COLUMNS.
+      CALL SRTDAT(N,NPAIRS,INDROW,INDCOL,JPNTR,IWA)
+
+!     COMPRESS THE DATA AND DETERMINE THE NUMBER OF
+!     NON-ZERO ELEMENTS OF A.
+      IWA(1:M) =  0
+      NNZ = 1
+      DO J = 1, N
+        K = NNZ
+        DO JP = JPNTR(J), JPNTR(J+1) - 1
+          IR = INDROW(JP)
+          IF (IWA(IR)/=J) THEN
+            INDROW(NNZ) = IR
+            NNZ = NNZ + 1
+            IWA(IR) = J
+          END IF
+        END DO
+        JPNTR(J) = K
+      END DO
+      JPNTR(N+1) = NNZ
+
+!     EXTEND THE DATA STRUCTURE TO ROWS.
+      CALL SETR(M,N,INDROW,JPNTR,INDCOL,IPNTR,IWA)
+
+!     DETERMINE A LOWER BOUND FOR THE NUMBER OF GROUPS.
+      MINGRP = 0
+      DO I = 1, M
+        MINGRP = MAX(MINGRP,IPNTR(I+1)-IPNTR(I))
+      END DO
+
+!     DETERMINE THE DEGREE SEQUENCE FOR THE INTERSECTION
+!     GRAPH OF THE COLUMNS OF A.
+      CALL DEGR(N,INDROW,JPNTR,INDCOL,IPNTR,IWA(5*N+1),IWA(N+1))
+
+!     COLOR THE INTERSECTION GRAPH OF THE COLUMNS OF A
+!     WITH THE SMALLEST-LAST (SL) ORDERING.
+      CALL SLO(N,INDROW,JPNTR,INDCOL,IPNTR,IWA(5*N+1),IWA(4*N+1),MAXCLQ, &
+        IWA(1),IWA(N+1),IWA(2*N+1),IWA(3*N+1))
+      CALL SEQ(N,INDROW,JPNTR,INDCOL,IPNTR,IWA(4*N+1),NGRP,MAXGRP,IWA(N+1))
+      MINGRP = MAX(MINGRP,MAXCLQ)
+
+!     EXIT IF THE SMALLEST-LAST ORDERING IS OPTIMAL.
+
+      IF (MAXGRP == MINGRP) RETURN
+
+!     COLOR THE INTERSECTION GRAPH OF THE COLUMNS OF A
+!     WITH THE INCIDENCE-DEGREE(ID) ORDERING.
+      CALL IDO(M,N,INDROW,JPNTR,INDCOL,IPNTR,IWA(5*N+1),IWA(4*N+1),MAXCLQ, &
+        IWA(1),IWA(N+1),IWA(2*N+1),IWA(3*N+1))
+      CALL SEQ(N,INDROW,JPNTR,INDCOL,IPNTR,IWA(4*N+1),IWA(1),NUMGRP,IWA(N+1))
+      MINGRP = MAX(MINGRP,MAXCLQ)
+
+!     RETAIN THE BETTER OF THE TWO ORDERINGS SO FAR.
+      IF (NUMGRP < MAXGRP) THEN
+        MAXGRP = NUMGRP
+        NGRP(1:N) = IWA(1:N)
+
+!       EXIT IF THE INCIDENCE-DEGREE ORDERING IS OPTIMAL.
+        IF (MAXGRP == MINGRP) RETURN
+      END IF
+
+!     COLOR THE INTERSECTION GRAPH OF THE COLUMNS OF A
+!     WITH THE LARGEST-FIRST (LF) ORDERING.
+      CALL NUMSRT(N,N-1,IWA(5*N+1),-1,IWA(4*N+1),IWA(2*N+1),IWA(N+1))
+      CALL SEQ(N,INDROW,JPNTR,INDCOL,IPNTR,IWA(4*N+1),IWA(1),NUMGRP,IWA(N+1))
+
+!     RETAIN THE BEST OF THE THREE ORDERINGS AND EXIT.
+      IF (NUMGRP < MAXGRP) THEN
+        MAXGRP = NUMGRP
+        NGRP(1:N) = IWA(1:N)
+      END IF
+      RETURN
+
+    END SUBROUTINE DVDSM
+!_______________________________________________________________________
+
+      SUBROUTINE DGROUPDS(N,MAXGRPDS,NGRPDS,IGP,JGP)
+! ..
+! Construct the column grouping arrays IGP anf JGP needed by DVJACS28
+! from the DSM array NGRPDS.
+! ..
+!     Input:
+!
+!     N        = the order of the matrix
+!     MAXGRPDS = number of groups (from DSM)
+!     NGRPDS   = DSM output array
+!     Output:
+!     JGP      = array of length N containing the column
+!                indices by groups
+!     IGP      = pointer array of length NGRP + 1 to the
+!                locations in JGP of the beginning of
+!                each group
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: N, MAXGRPDS
+! ..
+! .. Array Arguments ..
+        INTEGER, INTENT (IN) :: NGRPDS(MAXGRPDS)
+        INTEGER, INTENT (OUT) :: IGP(MAXGRPDS+1), JGP(N)
+! ..
+! .. Local Scalars ..
+        INTEGER :: IGRP, INDEX, JCOL
+! ..
+! .. FIRST EXECUTABLE STATEMENT DGROUPDS
+! ..
+        IGP(1) = 1
+        INDEX =  0
+        DO IGRP = 1, MAXGRPDS
+           IGP(IGRP+1) = IGP(IGRP)
+           DO JCOL = 1, N
+              IF (NGRPDS(JCOL) == IGRP) THEN
+                 IGP(IGRP+1) = IGP(IGRP+1) + 1
+                 INDEX = INDEX + 1
+                 JGP(INDEX) = JCOL
+              END IF
+           END DO
+        END DO
+        RETURN
+
+      END SUBROUTINE DGROUPDS
+!_______________________________________________________________________
+
+    SUBROUTINE JACSPDB(FCN,N,T,Y,F,FJAC,NRFJAC,YSCALE,FAC,IOPT, &
+      WK,LWK,IWK,LIWK,MAXGRP,NGRP,JPNTR,INDROW)
+
+! This is a modified version of JACSP which does not require the NGRP,
+! JPNTR and INDROW sparse pointer arrays in the event a dense or a
+! banded matrix is being processed.
+
+! Refer to the documentation for JACSP for a description of the
+! parameters. If the banded option is used, IOPT(5) is used to
+! input the lower bandwidth ML in this version.
+
+     IMPLICIT NONE
+
+! .. Parameters ..
+      INTEGER, PARAMETER :: WP = KIND(0.0D0)
+! ..
+! .. Scalar Arguments ..
+      REAL (WP) :: T
+      INTEGER :: LIWK, LWK, MAXGRP, N, NRFJAC
+! ..
+! .. Array Arguments ..
+      REAL (WP) :: F(N), FAC(N), FJAC(NRFJAC,*), WK(LWK), Y(N), YSCALE(*)
+      INTEGER :: INDROW(*), IOPT(5), IWK(LIWK), JPNTR(*), NGRP(N)
+! ..
+! .. Subroutine Arguments ..
+      EXTERNAL FCN
+! ..
+! .. Local Scalars ..
+      REAL (WP) :: ADIFF, AY, DEL, DELM, DFMJ, DIFF, DMAX, EXPFMN, FACMAX, &
+        FACMIN, FJACL, FMJ, ONE, P125, P25, P75, P875, PERT, RDEL, RMNFDF, &
+        RMXFDF, SDF, SF, SGN, T1, T2, U, U3QRT, U7EGT, UEGT, UMEGT, UQRT,  &
+        USQT, ZERO
+      INTEGER :: IDXL, IDXU, IFLAG1, IFLAG2, IRCMP, IRDEL, IROW, IROWB,    &
+        IROWMX, ITRY, J, JCOL, JFIRST, JINC, JLAST, KT1, KT2, KT3, KT4,    &
+        KT5, L, MBAND, ML, MU, NID1, NID2, NID3, NID4, NID5, NID6,         &
+        NIFAC, NT2, NUMGRP
+!       KT5, L, MBAND, MEB1, ML, MU, NID1, NID2, NID3, NID4, NID5, NID6,   &
+      LOGICAL :: DOTHISBLOCK
+      CHARACTER (80) :: MSG
+! ..
+! .. Intrinsic Functions ..
+!     INTRINSIC ABS, EPSILON, KIND, MAX, MIN, SIGN, SQRT
+      INTRINSIC ABS, EPSILON, MAX, MIN, SIGN, SQRT
+! ..
+! .. Data Statements ..
+      DATA PERT/2.0E+0_WP/, FACMAX/1.E-1_WP/, EXPFMN/.75E+0_WP/
+      DATA ONE/1.0E0_WP/, ZERO/0.0E0_WP/
+      DATA P125/.125E+0_WP/, P25/.25E+0_WP/, P75/.75E+0_WP/, P875/.875E+0_WP/
+      DATA NIFAC/3/, NID1/10/, NID2/20/, NID3/30/, NID4/40/, NID5/50/
+! ..
+!     COMPUTE ALGORITHM AND MACHINE CONSTANTS.
+! ..
+! ..  FIRST EXECUTABLE STATEMENT JACSPDB
+! ..
+      IF (IOPT(1) == 0 .AND. MAXGRP /= N) THEN
+         MSG = 'JACSPDB requires that MAXGRP=N for a dense matrix.'
+         CALL XERRDV(MSG,1800,2,0,0,0,0,ZERO,ZERO)
+      END IF
+
+      IF (IOPT(1) == 1) THEN
+         MBAND = IOPT(2)
+         ML = IOPT(5)
+         MU = MBAND - ML - 1
+!        MEB1 = 2*ML + MU
+      END IF
+
+      U = EPSILON(ONE)
+      USQT = SQRT(U)
+      UEGT = U**P125
+      UMEGT = ONE/UEGT
+      UQRT = U**P25
+      U3QRT = U**P75
+      U7EGT = U**P875
+      FACMIN = U**EXPFMN
+
+      IF (IOPT(4) == 0) THEN
+        IOPT(4) = 1
+        DO 10 J = 1, N
+          FAC(J) = USQT
+10      CONTINUE
+      END IF
+      DO 20 J = 1, 50
+        IWK(J) = 0
+20    CONTINUE
+      KT1 = NID1
+      KT2 = NID2
+      KT3 = NID3
+      KT4 = NID4
+      KT5 = NID5
+      NID6 = LIWK
+      NT2 = 2*N
+
+      DO NUMGRP = 1, MAXGRP
+!       COMPUTE AND SAVE THE INCREMENTS FOR THE COLUMNS IN GROUP NUMGRP.
+        IRCMP = 0
+        ITRY = 0
+        DO 30 J = NID5 + 1, NID6
+          IWK(J) = 0
+30      CONTINUE
+40      CONTINUE
+
+!       Note: For banded in DVJAC:
+!       mba = min(mband,n)
+!          Groups: j=1,...,mba
+!             Columns in group j: jj=j,...,n by mband
+!                Rows in column jj: i1=max(jj-mu,1),...,i2=min(jj+ml,n)       
+
+        IF (IOPT(1) == 0 .OR. IOPT(1) == 2) THEN
+          JFIRST = 1
+          JLAST = N
+          JINC = 1
+        ELSE
+          JFIRST = NUMGRP
+          JLAST = N
+          JINC = MBAND
+        END IF
+        DO JCOL = JFIRST, JLAST, JINC
+          DOTHISBLOCK = .FALSE.
+          IF (IOPT(1) == 2) THEN
+            IF (NGRP(JCOL) == NUMGRP) DOTHISBLOCK = .TRUE.
+          ELSE
+            IF (IOPT(1) == 0) THEN
+              IF (JCOL == NUMGRP) DOTHISBLOCK = .TRUE.
+            ELSE
+              IF (IOPT(1) == 1) THEN
+                DOTHISBLOCK = .TRUE.
+              END IF
+            END IF
+          END IF
+
+          IF (DOTHISBLOCK) THEN
+            WK(N+JCOL) = Y(JCOL)
+!           COMPUTE DEL. IF DEL IS TOO SMALL INCREASE FAC(JCOL) AND RECOMPUTE
+!           DEL. NIFAC ATTEMPTS ARE MADE TO INCREASE FAC(JCOL) AND FIND AN
+!           APPROPRIATE DEL. IF DEL CANT BE FOUND IN THIS MANNER, DEL IS COMPUTED
+!           WITH FAC(JCOL) SET TO THE SQUARE ROOT OF THE MACHINE PRECISION (USQT).
+!           IF DEL IS ZERO TO MACHINE PRECISION BECAUSE Y(JCOL) IS ZERO OR
+!           YSCALE(JCOL) IS ZERO, DEL IS SET TO USQT.
+            SGN = SIGN(ONE,F(JCOL))
+            IRDEL = 0
+            IF (IOPT(3) == 1) THEN
+              AY = ABS(YSCALE(JCOL))
+            ELSE
+              AY = ABS(Y(JCOL))
+            END IF
+            DELM = U7EGT*AY
+
+            DO 50 J = 1, NIFAC
+              DEL = FAC(JCOL)*AY*SGN
+              IF (ABS(DEL) <= ZERO) THEN
+                DEL = USQT*SGN
+                IF (ITRY == 0) IWK(3) = IWK(3) + 1
+              END IF
+              T1 = Y(JCOL) + DEL
+              DEL = T1 - Y(JCOL)
+              IF (ABS(DEL) < DELM) THEN
+                IF (J >= NIFAC) GOTO 50
+                IF (IRDEL == 0) THEN
+                  IRDEL = 1
+                  IWK(1) = IWK(1) + 1
+                END IF
+                T1 = FAC(JCOL)*UMEGT
+                FAC(JCOL) = MIN(T1,FACMAX)
+              ELSE
+                GOTO 60
+              END IF
+50          END DO
+
+            FAC(JCOL) = USQT
+            DEL = USQT*AY*SGN
+            IWK(2) = IWK(2) + 1
+            IF (KT2 < NID3) THEN
+              KT2 = KT2 + 1
+              IWK(KT2) = JCOL
+            END IF
+
+60          CONTINUE
+            WK(NT2+JCOL) = DEL
+            Y(JCOL) = Y(JCOL) + DEL
+          END IF
+        END DO
+
+        IWK(7) = IWK(7) + 1
+        CALL FCN(N,T,Y,WK)
+
+        DO JCOL = JFIRST, JLAST, JINC
+          IF (IOPT(1) == 2) THEN
+             IF (NGRP(JCOL) == NUMGRP) Y(JCOL) = WK(N+JCOL)
+          ELSE
+             IF (IOPT(1) == 0) THEN
+                IF (JCOL == NUMGRP) Y(JCOL) = WK(N+JCOL)
+             ELSE
+                IF (IOPT(1) == 1) Y(JCOL) = WK(N+JCOL) 
+             END IF
+          END IF
+        END DO
+
+!       COMPUTE THE JACOBIAN ENTRIES FOR ALL COLUMNS IN NUMGRP.
+!       STORE ENTRIES ACCORDING TO SELECTED STORAGE FORMAT.
+!       USE LARGEST ELEMENTS IN A COLUMN TO DETERMINE SCALING
+!       INFORMATION FOR ROUNDOFF AND TRUNCATION ERROR TESTS.
+
+        DO JCOL = JFIRST, JLAST, JINC
+          DOTHISBLOCK = .FALSE.
+          IF (IOPT(1) == 2) THEN
+             IF (NGRP(JCOL) == NUMGRP) DOTHISBLOCK = .TRUE.
+          ELSE
+             IF (IOPT(1) == 0) THEN
+                IF (JCOL == NUMGRP) DOTHISBLOCK = .TRUE.
+             ELSE
+                IF(IOPT(1) == 1) DOTHISBLOCK = .TRUE. 
+             END IF
+          END IF
+          IF (DOTHISBLOCK) THEN
+            IF (IOPT(1) == 2) THEN
+              IDXL = JPNTR(JCOL)
+              IDXU = JPNTR(JCOL+1) - 1
+            ELSE
+              IF (IOPT(1) == 0) THEN
+                IDXL = 1
+                IDXU = N
+              ELSE
+                IF (IOPT(1) == 1) THEN
+                  IDXL = MAX(JCOL-MU,1)
+                  IDXU = MIN(JCOL+ML,N)
+                END IF
+              END IF
+            END IF
+            DMAX = ZERO
+            RDEL = ONE/WK(NT2+JCOL)
+            IROWMX = 1
+            DO L = IDXL, IDXU
+              IF (IOPT(1) == 2) THEN
+                 IROW = INDROW(L)
+              ELSE
+                 IF (IOPT(1)==0 .OR. IOPT(1)==1) IROW = L
+              END IF
+              DIFF = WK(IROW) - F(IROW)
+              ADIFF = ABS(DIFF)
+              IF (ADIFF >= DMAX) THEN
+                IROWMX = IROW
+                DMAX = ADIFF
+                SF = F(IROW)
+                SDF = WK(IROW)
+              END IF
+              FJACL = DIFF*RDEL
+              IF (ITRY == 1) WK(IROW) = FJACL
+
+              IF (IOPT(1) == 0) THEN
+                IF (ITRY == 1) WK(IROW+N) = FJAC(IROW,JCOL)
+                FJAC(IROW,JCOL) = FJACL
+              END IF
+              IF (IOPT(1) == 1) THEN
+                IROWB = IROW - JCOL + IOPT(2)
+                IF (ITRY == 1) WK(IROW+N) = FJAC(IROWB,JCOL)
+                FJAC(IROWB,JCOL) = FJACL
+!               IROWB = JCOL * MEB1 - ML + L
+!               IF (ITRY == 1) WK(IROW+N) = FJAC(IROWB,1)
+!               FJAC(IROWB,1) = FJACL
+              END IF
+              IF (IOPT(1) == 2) THEN
+                IF (ITRY == 1) WK(IROW+N) = FJAC(L,1)
+                FJAC(L,1) = FJACL
+              END IF
+            END DO
+
+!           IF A COLUMN IS BEING RECOMPUTED (ITRY=1),THIS SECTION OF THE
+!           CODE PERFORMS AN EXTRAPOLATION TEST TO ENABLE THE CODE TO
+!           COMPUTE SMALL DERIVATIVES MORE ACCURATELY. THIS TEST IS ONLY
+!           PERFORMED ON THOSE COLUMNS WHOSE LARGEST DIFFERENCE IS CLOSE
+!           TO ZERO RELATIVE TO SCALE.
+            IF (ITRY == 1) THEN
+              IFLAG1 = 0
+              IFLAG2 = 0
+              DO 100 J = NID5 + 1, NID6
+                IF (IWK(J) == JCOL) IFLAG1 = 1
+100           CONTINUE
+              IF (IFLAG1 == 1) THEN
+                IFLAG1 = 0
+                T1 = WK(IROWMX+N)
+                T2 = WK(IROWMX)*FAC(JCOL)
+                IF (ABS(T2) < ABS(T1)*PERT) IFLAG2 = 1
+              END IF
+
+              IF (IFLAG2 == 1) THEN
+                IFLAG2 = 0
+                T1 = FAC(JCOL)*FAC(JCOL)
+                FAC(JCOL) = MAX(T1,FACMIN)
+                DO L = IDXL, IDXU
+                  IF (IOPT(1) == 2) THEN
+                     IROW = INDROW(L)
+                  ELSE
+                     IF (IOPT(1)==0 .OR. IOPT(1)==1) IROW = L
+                  END IF
+                  FJACL = WK(IROW+N)
+                  IF (IOPT(1) == 0) FJAC(IROW,JCOL) = FJACL
+                  IF (IOPT(1) == 1) THEN
+                    IROWB = IROW - JCOL + IOPT(2)
+                    FJAC(IROWB,JCOL) = FJACL
+!                   IROWB = JCOL * MEB1 - ML + L
+!                   FJAC(IROWB,1) = FJACL
+                  END IF
+                  IF (IOPT(1) == 2) FJAC(L,1) = FJACL
+              END DO
+              END IF
+            END IF
+
+            FMJ = ABS(SF)
+            DFMJ = ABS(SDF)
+            RMXFDF = MAX(FMJ,DFMJ)
+            RMNFDF = MIN(FMJ,DFMJ)
+
+!           IF SCALE INFORMATION IS NOT AVAILABLE, PERFORM NO ROUNDOFF
+!           OR TRUNCATION ERROR TESTS. IF THE EXTRAPOLATION TEST HAS
+!           CAUSED FAC(JCOL) TO BE RESET TO ITS PREVIOUS VALUE (IAJAC=1)
+!           THEN NO FURTHER ROUNDOFF OR TRUNCATION ERROR TESTS ARE
+!           PERFORMED.
+!           IF (RMNFDF/=ZERO) THEN
+            IF (ABS(RMNFDF) > ZERO) THEN
+!             TEST FOR POSSIBLE ROUNDOFF ERROR (FIRST TEST)
+!             AND ALSO FOR POSSIBLE SERIOUS ROUNDOFF ERROR (SECOND TEST).
+              IF (DMAX <= (U3QRT*RMXFDF)) THEN
+                IF (DMAX <= (U7EGT*RMXFDF)) THEN
+                  IF (ITRY == 0) THEN
+                    T1 = SQRT(FAC(JCOL))
+                    FAC(JCOL) = MIN(T1,FACMAX)
+                    IRCMP = 1
+                    IF (KT5 < NID6) THEN
+                      KT5 = KT5 + 1
+                      IWK(KT5) = JCOL
+                    END IF
+                    IWK(4) = IWK(4) + 1
+                    IF (KT3 < NID4) THEN
+                      KT3 = KT3 + 1
+                      IWK(KT3) = JCOL
+                    END IF
+                  ELSE
+                    IWK(5) = IWK(5) + 1
+                    IF (KT4 < NID5) THEN
+                      KT4 = KT4 + 1
+                      IWK(KT4) = JCOL
+                    END IF
+                  END IF
+                ELSE
+                  T1 = UMEGT*FAC(JCOL)
+                  FAC(JCOL) = MIN(T1,FACMAX)
+                END IF
+              END IF
+!             TEST FOR POSSIBLE TRUNCATION ERROR.
+              IF (DMAX > UQRT*RMXFDF) THEN
+                T1 = FAC(JCOL)*UEGT
+                FAC(JCOL) = MAX(T1,FACMIN)
+                IWK(8) = IWK(8) + 1
+                IF (KT1 < NID2) THEN
+                  KT1 = KT1 + 1
+                  IWK(KT1) = JCOL
+                END IF
+              END IF
+            ELSE
+              IWK(6) = IWK(6) + 1
+            END IF
+          END IF
+        END DO
+
+!       IF SERIOUS ROUNDOFF ERROR IS SUSPECTED, RECOMPUTE ALL
+!       COLUMNS IN GROUP NUMGRP.
+        IF (IRCMP == 1) THEN
+          IRCMP = 0
+          ITRY = 1
+          GOTO 40
+        END IF
+        ITRY = 0
+      END DO
+      RETURN
+
+    END SUBROUTINE JACSPDB
+
+! End of JACSP routines.
+!_______________________________________________________________________
+! *****MA48 build change point. Insert the MA48 Jacobian related
+! routines DVNLSS48, DVSOLS48, DVPREPS48, and DVJACS48 here.
+! filename = jacobian_for_ma48.f90. Insert the following line
+! after the first line of this file:
+! USE hsl_ma48_double
+!_______________________________________________________________________
+
+! *****LAPACK build change point. Insert the following line after the
+! first line of this file:
+! USE lapackd_f90_m
+! Include the module lapackd_f90_m.f90 at the beginning of this file
+! or as an external module.
+!_______________________________________________________________________
+
+    END MODULE DVODE_F90_M
+!_______________________________________________________________________
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/DVODE/dvode_f90_m.mod
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/DVODE/dvode_f90_m.mod	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/DVODE/dvode_f90_m.mod	(revision 2696)
@@ -0,0 +1,4428 @@
+V24 dvode_f90_m
+15 dvode_f90_m.f90 S582 0
+05/10/2011  17:19:07
+enduse
+D 33 21 6 1 28 27 0 1 0 0 1
+ 19 23 25 19 23 21
+D 36 21 6 1 0 16 0 0 0 0 0
+ 0 16 0 3 16 0
+D 39 21 6 1 37 36 0 1 0 0 1
+ 31 34 35 31 34 32
+D 42 21 6 1 0 16 0 0 0 0 0
+ 0 16 0 3 16 0
+D 45 21 6 1 46 45 0 1 0 0 1
+ 40 43 44 40 43 41
+D 48 21 6 1 0 16 0 0 0 0 0
+ 0 16 0 3 16 0
+D 51 21 6 1 55 54 0 1 0 0 1
+ 49 52 53 49 52 50
+D 54 21 6 1 0 16 0 0 0 0 0
+ 0 16 0 3 16 0
+D 57 21 6 1 64 63 0 1 0 0 1
+ 58 61 62 58 61 59
+D 60 21 6 1 0 16 0 0 0 0 0
+ 0 16 0 3 16 0
+D 63 21 6 1 73 72 0 1 0 0 1
+ 67 70 71 67 70 68
+D 66 21 6 1 0 16 0 0 0 0 0
+ 0 16 0 3 16 0
+D 69 21 6 1 82 81 0 1 0 0 1
+ 76 79 80 76 79 77
+D 72 21 6 1 0 16 0 0 0 0 0
+ 0 16 0 3 16 0
+D 75 21 6 1 91 90 0 1 0 0 1
+ 85 88 89 85 88 86
+D 78 21 6 1 0 16 0 0 0 0 0
+ 0 16 0 3 16 0
+D 81 21 9 1 100 99 0 1 0 0 1
+ 94 97 98 94 97 95
+D 84 21 6 1 0 16 0 0 0 0 0
+ 0 16 0 3 16 0
+D 87 21 9 1 109 108 0 1 0 0 1
+ 103 106 107 103 106 104
+D 90 21 6 1 0 16 0 0 0 0 0
+ 0 16 0 3 16 0
+D 93 21 9 1 118 117 0 1 0 0 1
+ 112 115 116 112 115 113
+D 96 21 6 1 0 16 0 0 0 0 0
+ 0 16 0 3 16 0
+D 99 24 755 216 753 7
+D 105 21 9 1 205 204 0 1 0 0 1
+ 199 202 203 199 202 200
+D 108 21 6 1 0 16 0 0 0 0 0
+ 0 16 0 3 16 0
+D 111 21 9 1 214 213 0 1 0 0 1
+ 208 211 212 208 211 209
+D 114 21 6 1 0 16 0 0 0 0 0
+ 0 16 0 3 16 0
+D 117 21 9 1 223 222 0 1 0 0 1
+ 217 220 221 217 220 218
+D 120 21 6 1 0 16 0 0 0 0 0
+ 0 16 0 3 16 0
+D 123 21 9 1 232 231 0 1 0 0 1
+ 226 229 230 226 229 227
+D 126 21 6 1 0 16 0 0 0 0 0
+ 0 16 0 3 16 0
+D 129 21 9 1 241 240 0 1 0 0 1
+ 235 238 239 235 238 236
+D 132 21 6 1 0 16 0 0 0 0 0
+ 0 16 0 3 16 0
+D 135 21 9 1 250 249 0 1 0 0 1
+ 244 247 248 244 247 245
+D 138 21 6 1 0 16 0 0 0 0 0
+ 0 16 0 3 16 0
+D 141 21 9 1 259 258 0 1 0 0 1
+ 253 256 257 253 256 254
+D 144 21 6 1 0 16 0 0 0 0 0
+ 0 16 0 3 16 0
+D 147 21 9 1 268 267 0 1 0 0 1
+ 262 265 266 262 265 263
+D 150 21 6 1 0 16 0 0 0 0 0
+ 0 16 0 3 16 0
+D 153 21 9 1 277 276 0 1 0 0 1
+ 271 274 275 271 274 272
+D 156 21 6 1 0 16 0 0 0 0 0
+ 0 16 0 3 16 0
+D 159 21 9 1 286 285 0 1 0 0 1
+ 280 283 284 280 283 281
+D 162 21 6 1 0 16 0 0 0 0 0
+ 0 16 0 3 16 0
+D 165 21 9 1 295 294 0 1 0 0 1
+ 289 292 293 289 292 290
+D 168 21 6 1 0 16 0 0 0 0 0
+ 0 16 0 3 16 0
+D 171 21 9 1 304 303 0 1 0 0 1
+ 298 301 302 298 301 299
+D 174 21 6 1 0 16 0 0 0 0 0
+ 0 16 0 3 16 0
+D 177 21 9 1 313 312 0 1 0 0 1
+ 307 310 311 307 310 308
+D 180 21 6 1 0 16 0 0 0 0 0
+ 0 16 0 3 16 0
+D 183 21 9 1 322 321 0 1 0 0 1
+ 316 319 320 316 319 317
+D 186 21 6 1 0 16 0 0 0 0 0
+ 0 16 0 3 16 0
+D 189 21 9 1 331 330 0 1 0 0 1
+ 325 328 329 325 328 326
+D 192 21 6 1 0 16 0 0 0 0 0
+ 0 16 0 3 16 0
+D 195 21 9 1 340 339 0 1 0 0 1
+ 334 337 338 334 337 335
+D 198 21 6 1 0 16 0 0 0 0 0
+ 0 16 0 3 16 0
+D 201 21 9 1 349 348 0 1 0 0 1
+ 343 346 347 343 346 344
+D 204 21 6 1 0 16 0 0 0 0 0
+ 0 16 0 3 16 0
+D 207 21 9 1 358 357 0 1 0 0 1
+ 352 355 356 352 355 353
+D 210 21 6 1 0 16 0 0 0 0 0
+ 0 16 0 3 16 0
+D 213 21 9 1 367 366 0 1 0 0 1
+ 361 364 365 361 364 362
+D 216 21 6 1 0 16 0 0 0 0 0
+ 0 16 0 3 16 0
+D 219 21 9 1 376 375 0 1 0 0 1
+ 370 373 374 370 373 371
+D 222 21 6 1 0 16 0 0 0 0 0
+ 0 16 0 3 16 0
+D 225 21 9 2 394 393 0 1 0 0 1
+ 381 384 390 381 384 382
+ 386 389 392 386 389 387
+D 228 21 6 1 0 379 0 0 0 0 0
+ 0 379 0 3 379 0
+D 231 21 9 1 403 402 0 1 0 0 1
+ 397 400 401 397 400 398
+D 234 21 6 1 0 16 0 0 0 0 0
+ 0 16 0 3 16 0
+D 237 21 9 1 412 411 0 1 0 0 1
+ 406 409 410 406 409 407
+D 240 21 6 1 0 16 0 0 0 0 0
+ 0 16 0 3 16 0
+D 243 21 9 1 421 420 0 1 0 0 1
+ 415 418 419 415 418 416
+D 246 21 6 1 0 16 0 0 0 0 0
+ 0 16 0 3 16 0
+D 249 21 9 1 430 429 0 1 0 0 1
+ 424 427 428 424 427 425
+D 252 21 6 1 0 16 0 0 0 0 0
+ 0 16 0 3 16 0
+D 255 21 9 1 439 438 0 1 0 0 1
+ 433 436 437 433 436 434
+D 258 21 6 1 0 16 0 0 0 0 0
+ 0 16 0 3 16 0
+D 261 21 9 1 448 447 0 1 0 0 1
+ 442 445 446 442 445 443
+D 264 21 6 1 0 16 0 0 0 0 0
+ 0 16 0 3 16 0
+D 267 21 9 1 3 17 0 0 0 0 0
+ 0 17 3 3 17 17
+D 270 21 9 1 3 137 0 0 0 0 0
+ 0 137 3 3 137 137
+D 273 21 9 1 3 17 0 0 0 0 0
+ 0 17 3 3 17 17
+D 276 21 9 1 3 449 0 0 0 0 0
+ 0 449 3 3 449 449
+D 279 21 6 1 458 457 0 1 0 0 1
+ 452 455 456 452 455 453
+D 282 21 6 1 0 16 0 0 0 0 0
+ 0 16 0 3 16 0
+D 285 21 6 1 467 466 0 1 0 0 1
+ 461 464 465 461 464 462
+D 288 21 6 1 0 16 0 0 0 0 0
+ 0 16 0 3 16 0
+D 291 21 6 1 476 475 0 1 0 0 1
+ 470 473 474 470 473 471
+D 294 21 6 1 0 16 0 0 0 0 0
+ 0 16 0 3 16 0
+D 297 21 6 1 485 484 0 1 0 0 1
+ 479 482 483 479 482 480
+D 300 21 6 1 0 16 0 0 0 0 0
+ 0 16 0 3 16 0
+D 303 21 6 1 494 493 0 1 0 0 1
+ 488 491 492 488 491 489
+D 306 21 6 1 0 16 0 0 0 0 0
+ 0 16 0 3 16 0
+D 309 21 6 1 503 502 0 1 0 0 1
+ 497 500 501 497 500 498
+D 312 21 6 1 0 16 0 0 0 0 0
+ 0 16 0 3 16 0
+D 315 21 6 1 512 511 0 1 0 0 1
+ 506 509 510 506 509 507
+D 318 21 6 1 0 16 0 0 0 0 0
+ 0 16 0 3 16 0
+D 321 21 6 1 521 520 0 1 0 0 1
+ 515 518 519 515 518 516
+D 324 21 6 1 0 16 0 0 0 0 0
+ 0 16 0 3 16 0
+D 327 21 6 2 536 535 0 1 0 0 1
+ 525 528 533 525 528 526
+ 529 532 534 529 532 530
+D 330 21 6 1 0 379 0 0 0 0 0
+ 0 379 0 3 379 0
+D 333 21 6 2 551 550 0 1 0 0 1
+ 540 543 548 540 543 541
+ 544 547 549 544 547 545
+D 336 21 6 1 0 379 0 0 0 0 0
+ 0 379 0 3 379 0
+D 339 21 6 1 560 559 0 1 0 0 1
+ 554 557 558 554 557 555
+D 342 21 6 1 0 16 0 0 0 0 0
+ 0 16 0 3 16 0
+D 345 21 6 1 569 568 0 1 0 0 1
+ 563 566 567 563 566 564
+D 348 21 6 1 0 16 0 0 0 0 0
+ 0 16 0 3 16 0
+D 351 21 6 1 578 577 0 1 0 0 1
+ 572 575 576 572 575 573
+D 354 21 6 1 0 16 0 0 0 0 0
+ 0 16 0 3 16 0
+D 357 21 6 1 587 586 0 1 0 0 1
+ 581 584 585 581 584 582
+D 360 21 6 1 0 16 0 0 0 0 0
+ 0 16 0 3 16 0
+D 363 21 6 1 596 595 0 1 0 0 1
+ 590 593 594 590 593 591
+D 366 21 6 1 0 16 0 0 0 0 0
+ 0 16 0 3 16 0
+D 369 21 6 1 605 604 0 1 0 0 1
+ 599 602 603 599 602 600
+D 372 21 6 1 0 16 0 0 0 0 0
+ 0 16 0 3 16 0
+D 375 21 6 1 614 613 0 1 0 0 1
+ 608 611 612 608 611 609
+D 378 21 6 1 0 16 0 0 0 0 0
+ 0 16 0 3 16 0
+D 381 21 6 1 623 622 0 1 0 0 1
+ 617 620 621 617 620 618
+D 384 21 6 1 0 16 0 0 0 0 0
+ 0 16 0 3 16 0
+D 387 21 6 1 632 631 0 1 0 0 1
+ 626 629 630 626 629 627
+D 390 21 6 1 0 16 0 0 0 0 0
+ 0 16 0 3 16 0
+D 393 21 6 1 641 640 0 1 0 0 1
+ 635 638 639 635 638 636
+D 396 21 6 1 0 16 0 0 0 0 0
+ 0 16 0 3 16 0
+D 399 21 6 1 3 642 0 0 0 0 0
+ 0 642 3 3 642 642
+D 402 21 6 1 3 135 0 0 0 0 0
+ 0 135 3 3 135 135
+D 405 21 6 1 3 144 0 0 0 0 0
+ 0 144 3 3 144 144
+D 408 21 6 1 3 144 0 0 0 0 0
+ 0 144 3 3 144 144
+D 411 21 6 1 3 642 0 0 0 0 0
+ 0 642 3 3 642 642
+D 417 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 675
+D 420 21 9 1 3 677 0 0 1 0 0
+ 0 676 3 3 677 677
+D 423 21 9 1 3 677 0 0 1 0 0
+ 0 676 3 3 677 677
+D 426 21 9 1 3 679 0 0 1 0 0
+ 0 678 3 3 679 679
+D 429 21 9 1 3 681 0 0 1 0 0
+ 0 680 3 3 681 681
+D 432 21 9 2 682 0 0 0 1 1 0
+ 0 683 3 3 684 684
+ 0 0 684 3 0 685
+D 435 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 686
+D 438 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 687
+D 441 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 688
+D 444 21 9 1 689 692 1 1 0 0 1
+ 3 690 3 3 690 691
+D 447 21 9 1 693 696 1 1 0 0 1
+ 3 694 3 3 694 695
+D 450 21 9 1 697 700 1 1 0 0 1
+ 3 698 3 3 698 699
+D 453 21 9 1 701 704 1 1 0 0 1
+ 3 702 3 3 702 703
+D 456 21 6 1 705 708 1 1 0 0 1
+ 3 706 3 3 706 707
+D 459 21 9 1 709 712 1 1 0 0 1
+ 3 710 3 3 710 711
+D 462 21 9 1 713 716 1 1 0 0 1
+ 3 714 3 3 714 715
+D 465 21 9 1 717 720 1 1 0 0 1
+ 3 718 3 3 718 719
+D 468 21 9 1 721 724 1 1 0 0 1
+ 3 722 3 3 722 723
+D 471 21 6 1 725 728 1 1 0 0 1
+ 3 726 3 3 726 727
+D 474 21 6 1 729 732 1 1 0 0 1
+ 3 730 3 3 730 731
+D 477 21 6 1 733 736 1 1 0 0 1
+ 3 734 3 3 734 735
+D 480 21 9 1 3 137 0 0 0 0 0
+ 0 137 3 3 137 137
+D 483 21 6 1 3 737 0 0 0 0 0
+ 0 737 3 3 737 737
+D 486 21 6 1 738 741 1 1 0 0 1
+ 3 739 3 3 739 740
+D 489 21 6 1 3 743 0 0 1 0 0
+ 0 742 3 3 743 743
+D 492 21 6 1 3 745 0 0 1 0 0
+ 0 744 3 3 745 745
+D 495 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 746
+D 498 21 9 1 3 748 0 0 1 0 0
+ 0 747 3 3 748 748
+D 501 21 6 1 749 752 1 1 0 0 1
+ 3 750 3 3 750 751
+D 504 21 6 1 753 756 1 1 0 0 1
+ 3 754 3 3 754 755
+D 507 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 757
+D 510 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 758
+D 513 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 759
+D 516 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 760
+D 519 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 761
+D 522 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 762
+D 525 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 763
+D 528 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 764
+D 531 21 9 2 765 0 0 0 1 1 0
+ 0 766 3 3 767 767
+ 0 0 767 3 0 768
+D 534 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 769
+D 537 21 9 2 770 0 0 0 1 1 0
+ 0 771 3 3 772 772
+ 0 0 772 3 0 773
+D 540 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 774
+D 543 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 775
+D 546 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 776
+D 549 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 777
+D 552 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 778
+D 555 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 779
+D 558 21 9 2 780 0 0 0 1 1 0
+ 0 781 3 3 782 782
+ 0 0 782 3 0 783
+D 561 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 784
+D 564 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 785
+D 567 21 6 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 786
+D 570 21 9 2 787 0 0 0 1 1 0
+ 0 788 3 3 789 789
+ 0 0 789 3 0 790
+D 573 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 791
+D 576 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 792
+D 579 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 793
+D 582 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 794
+D 585 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 795
+D 588 21 9 2 796 0 0 0 1 1 0
+ 0 797 3 3 798 798
+ 0 0 798 3 0 799
+D 591 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 800
+D 594 21 6 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 801
+D 597 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 802
+D 600 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 803
+D 603 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 804
+D 606 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 805
+D 609 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 806
+D 612 21 9 2 807 0 0 0 1 1 0
+ 0 808 3 3 809 809
+ 0 0 809 3 0 810
+D 615 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 811
+D 618 21 6 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 812
+D 621 21 9 2 813 818 0 0 1 0 0
+ 0 814 3 3 815 815
+ 0 816 815 3 817 817
+D 624 21 9 2 819 822 0 0 1 0 0
+ 0 820 3 3 821 821
+ 0 816 821 3 817 817
+D 627 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 823
+D 630 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 824
+D 633 21 6 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 825
+D 636 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 826
+D 639 21 6 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 827
+D 642 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 828
+D 645 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 829
+D 648 21 9 1 3 831 0 0 1 0 0
+ 0 830 3 3 831 831
+D 651 21 9 1 3 831 0 0 1 0 0
+ 0 830 3 3 831 831
+D 654 21 9 1 3 833 0 0 1 0 0
+ 0 832 3 3 833 833
+D 657 21 9 1 3 833 0 0 1 0 0
+ 0 832 3 3 833 833
+D 660 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 834
+D 663 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 835
+D 666 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 836
+D 669 21 9 2 837 0 0 0 1 1 0
+ 0 838 3 3 839 839
+ 0 0 839 3 0 840
+D 672 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 841
+D 675 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 842
+D 678 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 843
+D 681 21 6 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 844
+D 684 21 6 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 845
+D 687 21 6 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 846
+D 690 21 6 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 847
+D 693 21 6 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 848
+D 696 21 6 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 849
+D 699 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 850
+D 702 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 851
+D 705 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 852
+D 708 21 6 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 853
+D 711 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 854
+D 714 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 855
+D 717 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 856
+D 720 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 857
+D 723 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 858
+D 726 21 9 2 859 0 0 0 1 1 0
+ 0 860 3 3 861 861
+ 0 0 861 3 0 862
+D 729 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 863
+D 732 21 6 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 864
+D 735 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 865
+D 738 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 866
+D 741 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 867
+D 744 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 868
+D 747 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 869
+D 750 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 870
+D 753 21 9 2 871 0 0 0 1 1 0
+ 0 872 3 3 873 873
+ 0 0 873 3 0 874
+D 756 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 875
+D 759 21 6 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 876
+D 762 21 6 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 877
+D 765 21 6 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 878
+D 768 21 6 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 879
+D 771 21 6 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 880
+D 774 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 881
+D 777 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 882
+D 780 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 883
+D 783 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 884
+D 786 21 9 2 885 0 0 0 1 1 0
+ 0 886 3 3 887 887
+ 0 0 887 3 0 888
+D 789 21 9 1 3 890 0 0 1 0 0
+ 0 889 3 3 890 890
+D 792 21 9 1 3 890 0 0 1 0 0
+ 0 889 3 3 890 890
+D 795 21 9 1 3 890 0 0 1 0 0
+ 0 889 3 3 890 890
+D 798 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 891
+D 801 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 892
+D 804 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 893
+D 807 21 9 2 894 0 0 0 1 1 0
+ 0 895 3 3 896 896
+ 0 0 896 3 0 897
+D 810 21 6 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 898
+D 813 21 9 2 899 0 0 0 1 1 0
+ 0 900 3 3 901 901
+ 0 0 901 3 0 902
+D 816 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 903
+D 819 21 6 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 904
+D 822 21 9 2 905 0 0 0 1 1 0
+ 0 906 3 3 907 907
+ 0 0 907 3 0 908
+D 825 21 6 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 909
+D 828 21 9 2 910 0 0 0 1 1 0
+ 0 911 3 3 912 912
+ 0 0 912 3 0 913
+D 831 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 914
+D 834 21 6 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 915
+D 837 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 916
+D 840 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 917
+D 843 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 918
+D 846 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 919
+D 849 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 920
+D 852 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 921
+D 855 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 922
+D 858 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 923
+D 861 21 9 1 3 925 0 0 1 0 0
+ 0 924 3 3 925 925
+D 864 21 9 1 3 927 0 0 1 0 0
+ 0 926 3 3 927 927
+D 867 21 6 1 3 925 0 0 1 0 0
+ 0 924 3 3 925 925
+D 870 21 6 2 928 929 0 0 1 0 0
+ 0 926 3 3 927 927
+ 0 449 927 3 449 449
+D 873 21 6 1 3 931 0 0 1 0 0
+ 0 930 3 3 931 931
+D 876 21 6 2 928 932 0 0 1 0 0
+ 0 926 3 3 927 927
+ 0 13 927 3 13 13
+D 879 21 9 1 3 934 0 0 1 0 0
+ 0 933 3 3 934 934
+D 882 21 9 1 3 936 0 0 1 0 0
+ 0 935 3 3 936 936
+D 885 21 6 1 3 934 0 0 1 0 0
+ 0 933 3 3 934 934
+D 888 21 6 2 937 938 0 0 1 0 0
+ 0 935 3 3 936 936
+ 0 449 936 3 449 449
+D 891 21 6 1 3 940 0 0 1 0 0
+ 0 939 3 3 940 940
+D 894 21 6 2 937 938 0 0 1 0 0
+ 0 935 3 3 936 936
+ 0 449 936 3 449 449
+D 897 21 6 1 3 940 0 0 1 0 0
+ 0 939 3 3 940 940
+D 900 21 9 1 3 942 0 0 1 0 0
+ 0 941 3 3 942 942
+D 903 21 6 1 3 942 0 0 1 0 0
+ 0 941 3 3 942 942
+D 906 21 6 1 3 944 0 0 1 0 0
+ 0 943 3 3 944 944
+D 909 21 6 1 3 944 0 0 1 0 0
+ 0 943 3 3 944 944
+D 912 21 6 1 3 946 0 0 1 0 0
+ 0 945 3 3 946 946
+D 915 21 6 2 947 948 0 0 1 0 0
+ 0 943 3 3 944 944
+ 0 642 944 3 642 642
+D 918 21 6 2 947 949 0 0 1 0 0
+ 0 943 3 3 944 944
+ 0 123 944 3 123 123
+D 921 21 6 1 3 946 0 0 1 0 0
+ 0 945 3 3 946 946
+D 924 21 6 1 3 944 0 0 1 0 0
+ 0 943 3 3 944 944
+D 927 21 6 1 3 944 0 0 1 0 0
+ 0 943 3 3 944 944
+D 930 21 6 1 3 944 0 0 1 0 0
+ 0 943 3 3 944 944
+D 933 21 9 1 3 951 0 0 1 0 0
+ 0 950 3 3 951 951
+D 936 21 9 1 3 953 0 0 1 0 0
+ 0 952 3 3 953 953
+D 939 21 9 1 3 953 0 0 1 0 0
+ 0 952 3 3 953 953
+D 942 21 6 1 3 951 0 0 1 0 0
+ 0 950 3 3 951 951
+D 945 21 6 2 954 955 0 0 1 0 0
+ 0 952 3 3 953 953
+ 0 449 953 3 449 449
+D 948 21 9 1 3 957 0 0 1 0 0
+ 0 956 3 3 957 957
+D 951 21 9 1 3 959 0 0 1 0 0
+ 0 958 3 3 959 959
+D 954 21 9 1 3 961 0 0 1 0 0
+ 0 960 3 3 961 961
+D 957 21 9 1 3 961 0 0 1 0 0
+ 0 960 3 3 961 961
+D 960 21 9 1 3 961 0 0 1 0 0
+ 0 960 3 3 961 961
+D 963 21 9 1 3 961 0 0 1 0 0
+ 0 960 3 3 961 961
+D 966 21 6 1 3 957 0 0 1 0 0
+ 0 956 3 3 957 957
+D 969 21 6 1 3 959 0 0 1 0 0
+ 0 958 3 3 959 959
+D 972 21 6 2 962 963 0 0 1 0 0
+ 0 960 3 3 961 961
+ 0 449 961 3 449 449
+D 975 21 6 1 3 959 0 0 1 0 0
+ 0 958 3 3 959 959
+D 978 21 9 1 3 965 0 0 1 0 0
+ 0 964 3 3 965 965
+D 981 21 6 1 3 965 0 0 1 0 0
+ 0 964 3 3 965 965
+D 984 21 6 1 3 642 0 0 0 0 0
+ 0 642 3 3 642 642
+D 987 21 6 1 3 967 0 0 1 0 0
+ 0 966 3 3 967 967
+D 990 21 6 1 3 967 0 0 1 0 0
+ 0 966 3 3 967 967
+D 993 21 6 1 3 967 0 0 1 0 0
+ 0 966 3 3 967 967
+D 996 21 6 1 3 967 0 0 1 0 0
+ 0 966 3 3 967 967
+D 999 21 6 1 3 967 0 0 1 0 0
+ 0 966 3 3 967 967
+D 1002 21 6 1 3 969 0 0 1 0 0
+ 0 968 3 3 969 969
+D 1005 21 6 1 3 967 0 0 1 0 0
+ 0 966 3 3 967 967
+D 1008 21 6 1 3 967 0 0 1 0 0
+ 0 966 3 3 967 967
+D 1011 21 6 1 3 967 0 0 1 0 0
+ 0 966 3 3 967 967
+D 1014 21 6 1 3 967 0 0 1 0 0
+ 0 966 3 3 967 967
+D 1017 21 6 1 3 967 0 0 1 0 0
+ 0 966 3 3 967 967
+D 1020 21 6 1 3 967 0 0 1 0 0
+ 0 966 3 3 967 967
+D 1023 21 6 1 3 967 0 0 1 0 0
+ 0 966 3 3 967 967
+D 1026 21 9 1 3 971 0 0 1 0 0
+ 0 970 3 3 971 971
+D 1029 21 6 1 3 971 0 0 1 0 0
+ 0 970 3 3 971 971
+D 1032 21 6 1 3 973 0 0 1 0 0
+ 0 972 3 3 973 973
+D 1035 21 9 1 3 975 0 0 1 0 0
+ 0 974 3 3 975 975
+D 1038 21 9 1 3 977 0 0 1 0 0
+ 0 976 3 3 977 977
+D 1041 21 6 1 3 975 0 0 1 0 0
+ 0 974 3 3 975 975
+D 1044 21 6 1 3 642 0 0 0 0 0
+ 0 642 3 3 642 642
+D 1047 21 6 1 3 977 0 0 1 0 0
+ 0 976 3 3 977 977
+D 1050 21 6 1 3 977 0 0 1 0 0
+ 0 976 3 3 977 977
+D 1053 21 6 1 3 977 0 0 1 0 0
+ 0 976 3 3 977 977
+D 1056 21 6 1 3 977 0 0 1 0 0
+ 0 976 3 3 977 977
+D 1059 21 6 1 3 977 0 0 1 0 0
+ 0 976 3 3 977 977
+D 1062 21 9 1 3 979 0 0 1 0 0
+ 0 978 3 3 979 979
+D 1065 21 9 1 3 981 0 0 1 0 0
+ 0 980 3 3 981 981
+D 1068 21 9 1 3 981 0 0 1 0 0
+ 0 980 3 3 981 981
+D 1071 21 6 1 3 979 0 0 1 0 0
+ 0 978 3 3 979 979
+D 1074 21 6 1 3 642 0 0 0 0 0
+ 0 642 3 3 642 642
+D 1077 21 6 1 3 981 0 0 1 0 0
+ 0 980 3 3 981 981
+D 1080 21 6 1 3 981 0 0 1 0 0
+ 0 980 3 3 981 981
+D 1083 21 6 1 3 981 0 0 1 0 0
+ 0 980 3 3 981 981
+D 1086 21 6 1 3 981 0 0 1 0 0
+ 0 980 3 3 981 981
+D 1089 21 6 1 3 981 0 0 1 0 0
+ 0 980 3 3 981 981
+D 1092 21 6 1 3 983 0 0 1 0 0
+ 0 982 3 3 983 983
+D 1095 21 6 1 3 985 0 0 1 0 0
+ 0 984 3 3 985 985
+D 1098 21 6 1 3 983 0 0 1 0 0
+ 0 982 3 3 983 983
+D 1101 21 6 1 3 983 0 0 1 0 0
+ 0 982 3 3 983 983
+D 1104 21 6 2 986 987 0 0 1 0 0
+ 0 982 3 3 983 983
+ 0 123 983 3 123 123
+D 1107 21 6 1 3 983 0 0 1 0 0
+ 0 982 3 3 983 983
+D 1110 21 6 1 3 989 0 0 1 0 0
+ 0 988 3 3 989 989
+D 1113 21 6 1 3 989 0 0 1 0 0
+ 0 988 3 3 989 989
+D 1116 21 6 1 3 991 0 0 1 0 0
+ 0 990 3 3 991 991
+D 1119 21 6 1 3 989 0 0 1 0 0
+ 0 988 3 3 989 989
+D 1122 21 6 1 3 989 0 0 1 0 0
+ 0 988 3 3 989 989
+D 1125 21 6 1 3 989 0 0 1 0 0
+ 0 988 3 3 989 989
+D 1128 21 6 1 3 989 0 0 1 0 0
+ 0 988 3 3 989 989
+D 1131 21 6 1 3 989 0 0 1 0 0
+ 0 988 3 3 989 989
+D 1134 21 9 1 3 993 0 0 1 0 0
+ 0 992 3 3 993 993
+D 1137 21 6 1 3 993 0 0 1 0 0
+ 0 992 3 3 993 993
+D 1140 21 6 1 3 993 0 0 1 0 0
+ 0 992 3 3 993 993
+D 1143 21 6 1 3 995 0 0 1 0 0
+ 0 994 3 3 995 995
+D 1146 21 9 1 3 997 0 0 1 0 0
+ 0 996 3 3 997 997
+D 1149 21 6 1 3 997 0 0 1 0 0
+ 0 996 3 3 997 997
+D 1152 21 6 1 3 999 0 0 1 0 0
+ 0 998 3 3 999 999
+D 1155 21 6 1 3 1001 0 0 1 0 0
+ 0 1000 3 3 1001 1001
+D 1158 21 6 1 3 1003 0 0 1 0 0
+ 0 1002 3 3 1003 1003
+D 1161 21 6 1 3 1003 0 0 1 0 0
+ 0 1002 3 3 1003 1003
+D 1164 21 6 2 1004 1006 0 0 1 0 0
+ 0 1002 3 3 1003 1003
+ 0 1005 1003 3 1005 1005
+D 1167 21 6 1 3 1003 0 0 1 0 0
+ 0 1002 3 3 1003 1003
+D 1170 21 6 1 3 1008 0 0 1 0 0
+ 0 1007 3 3 1008 1008
+D 1173 21 6 1 3 1008 0 0 1 0 0
+ 0 1007 3 3 1008 1008
+D 1176 21 6 1 3 1010 0 0 1 0 0
+ 0 1009 3 3 1010 1010
+D 1179 21 6 1 3 1008 0 0 1 0 0
+ 0 1007 3 3 1008 1008
+D 1182 21 6 1 3 1008 0 0 1 0 0
+ 0 1007 3 3 1008 1008
+D 1185 21 6 1 3 1008 0 0 1 0 0
+ 0 1007 3 3 1008 1008
+D 1188 21 6 1 3 1008 0 0 1 0 0
+ 0 1007 3 3 1008 1008
+D 1191 21 6 1 3 1008 0 0 1 0 0
+ 0 1007 3 3 1008 1008
+D 1194 21 9 1 3 1012 0 0 1 0 0
+ 0 1011 3 3 1012 1012
+D 1197 21 6 1 3 1012 0 0 1 0 0
+ 0 1011 3 3 1012 1012
+D 1200 21 6 1 3 1014 0 0 1 0 0
+ 0 1013 3 3 1014 1014
+D 1203 21 6 1 3 1014 0 0 1 0 0
+ 0 1013 3 3 1014 1014
+D 1206 21 6 2 1015 1016 0 0 1 0 0
+ 0 1013 3 3 1014 1014
+ 0 642 1014 3 642 642
+D 1209 21 6 1 3 1012 0 0 1 0 0
+ 0 1011 3 3 1012 1012
+D 1212 21 6 1 3 1014 0 0 1 0 0
+ 0 1013 3 3 1014 1014
+D 1215 21 9 1 3 1018 0 0 1 0 0
+ 0 1017 3 3 1018 1018
+D 1218 21 6 1 3 1018 0 0 1 0 0
+ 0 1017 3 3 1018 1018
+D 1221 21 6 1 3 642 0 0 0 0 0
+ 0 642 3 3 642 642
+D 1224 21 6 1 3 1020 0 0 1 0 0
+ 0 1019 3 3 1020 1020
+D 1227 21 6 1 3 1020 0 0 1 0 0
+ 0 1019 3 3 1020 1020
+D 1230 21 6 2 1021 1022 0 0 1 0 0
+ 0 1019 3 3 1020 1020
+ 0 449 1020 3 449 449
+D 1233 21 6 2 1021 1023 0 0 1 0 0
+ 0 1019 3 3 1020 1020
+ 0 642 1020 3 642 642
+D 1236 21 6 1 3 1020 0 0 1 0 0
+ 0 1019 3 3 1020 1020
+D 1239 21 6 1 3 1020 0 0 1 0 0
+ 0 1019 3 3 1020 1020
+D 1242 21 9 1 3 1025 0 0 1 0 0
+ 0 1024 3 3 1025 1025
+D 1245 21 9 1 3 1027 0 0 1 0 0
+ 0 1026 3 3 1027 1027
+D 1248 21 6 1 3 1025 0 0 1 0 0
+ 0 1024 3 3 1025 1025
+D 1251 21 6 1 3 1027 0 0 1 0 0
+ 0 1026 3 3 1027 1027
+D 1254 21 6 1 3 1027 0 0 1 0 0
+ 0 1026 3 3 1027 1027
+D 1257 21 9 1 3 1029 0 0 1 0 0
+ 0 1028 3 3 1029 1029
+D 1260 21 9 1 3 1031 0 0 1 0 0
+ 0 1030 3 3 1031 1031
+D 1263 21 9 1 3 1031 0 0 1 0 0
+ 0 1030 3 3 1031 1031
+D 1266 21 9 2 1032 1033 0 0 1 0 0
+ 0 1030 3 3 1031 1031
+ 0 449 1031 3 449 449
+D 1269 21 6 1 3 1029 0 0 1 0 0
+ 0 1028 3 3 1029 1029
+D 1272 21 6 1 3 1029 0 0 1 0 0
+ 0 1028 3 3 1029 1029
+D 1275 21 9 1 3 1035 0 0 1 0 0
+ 0 1034 3 3 1035 1035
+D 1278 21 9 1 3 1035 0 0 1 0 0
+ 0 1034 3 3 1035 1035
+D 1281 21 9 2 1036 0 0 0 1 1 0
+ 0 1037 3 3 1038 1038
+ 0 0 1038 3 0 1039
+D 1284 21 9 1 3 1041 0 0 1 0 0
+ 0 1040 3 3 1041 1041
+D 1287 21 9 1 3 1035 0 0 1 0 0
+ 0 1034 3 3 1035 1035
+D 1290 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 1042
+D 1293 21 6 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 1043
+D 1296 21 6 1 3 449 0 0 0 0 0
+ 0 449 3 3 449 449
+D 1299 21 6 1 3 1045 0 0 1 0 0
+ 0 1044 3 3 1045 1045
+D 1302 21 6 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 1046
+D 1305 21 6 1 3 1035 0 0 1 0 0
+ 0 1034 3 3 1035 1035
+D 1308 21 6 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 1047
+D 1311 21 6 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 1048
+D 1314 21 6 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 1049
+D 1317 21 6 1 3 1051 0 0 1 0 0
+ 0 1050 3 3 1051 1051
+D 1320 21 6 1 3 1053 0 0 1 0 0
+ 0 1052 3 3 1053 1053
+D 1323 21 6 1 3 1051 0 0 1 0 0
+ 0 1050 3 3 1051 1051
+D 1326 21 6 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 1054
+D 1329 21 6 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 1055
+D 1332 21 6 1 3 1058 0 0 1 0 0
+ 0 1057 3 3 1058 1058
+D 1335 21 6 1 2 1062 0 0 1 0 0
+ 2 1060 3 2 1061 1062
+D 1338 21 6 1 3 1063 0 0 1 0 0
+ 0 1059 3 3 1063 1063
+D 1341 21 6 1 3 1063 0 0 1 0 0
+ 0 1059 3 3 1063 1063
+D 1344 21 6 1 3 1063 0 0 1 0 0
+ 0 1059 3 3 1063 1063
+D 1347 21 6 1 3 1065 0 0 1 0 0
+ 0 1064 3 3 1065 1065
+D 1350 21 6 1 3 1063 0 0 1 0 0
+ 0 1059 3 3 1063 1063
+D 1353 21 6 1 3 1063 0 0 1 0 0
+ 0 1059 3 3 1063 1063
+D 1356 21 6 1 3 1067 0 0 1 0 0
+ 0 1066 3 3 1067 1067
+D 1359 21 6 1 2 1070 0 0 1 0 0
+ 2 1068 3 2 1069 1070
+D 1362 21 6 1 3 1067 0 0 1 0 0
+ 0 1066 3 3 1067 1067
+D 1365 21 6 1 3 1067 0 0 1 0 0
+ 0 1066 3 3 1067 1067
+D 1368 21 6 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 1071
+D 1371 21 6 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 1072
+D 1374 21 6 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 1073
+D 1377 21 6 1 3 1075 0 0 1 0 0
+ 0 1074 3 3 1075 1075
+D 1380 21 6 1 3 1077 0 0 1 0 0
+ 0 1076 3 3 1077 1077
+D 1383 21 6 1 3 1075 0 0 1 0 0
+ 0 1074 3 3 1075 1075
+D 1386 21 6 1 3 1075 0 0 1 0 0
+ 0 1074 3 3 1075 1075
+D 1389 21 6 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 1078
+D 1392 21 6 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 1079
+D 1395 21 6 1 3 1082 0 0 1 0 0
+ 0 1081 3 3 1082 1082
+D 1398 21 6 1 3 1083 0 0 1 0 0
+ 0 1080 3 3 1083 1083
+D 1401 21 6 1 3 1086 0 0 1 0 0
+ 0 1085 3 3 1086 1086
+D 1404 21 6 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 1087
+D 1407 21 6 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 1088
+D 1410 21 6 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 1089
+D 1413 21 6 1 2 1093 0 0 1 0 0
+ 2 1091 3 2 1092 1093
+D 1416 21 6 1 3 1094 0 0 1 0 0
+ 0 1090 3 3 1094 1094
+D 1419 21 6 1 3 1094 0 0 1 0 0
+ 0 1090 3 3 1094 1094
+D 1422 21 6 1 3 1094 0 0 1 0 0
+ 0 1090 3 3 1094 1094
+D 1425 21 6 1 3 1096 0 0 1 0 0
+ 0 1095 3 3 1096 1096
+D 1428 21 6 1 3 1094 0 0 1 0 0
+ 0 1090 3 3 1094 1094
+D 1431 21 6 1 3 1094 0 0 1 0 0
+ 0 1090 3 3 1094 1094
+D 1434 21 6 1 3 1098 0 0 1 0 0
+ 0 1097 3 3 1098 1098
+D 1437 21 6 1 3 1098 0 0 1 0 0
+ 0 1097 3 3 1098 1098
+D 1440 21 6 1 3 1100 0 0 1 0 0
+ 0 1099 3 3 1100 1100
+D 1443 21 6 1 3 1102 0 0 1 0 0
+ 0 1101 3 3 1102 1102
+D 1446 21 9 1 3 1104 0 0 1 0 0
+ 0 1103 3 3 1104 1104
+D 1449 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 1105
+D 1452 21 9 1 3 1107 0 0 1 0 0
+ 0 1106 3 3 1107 1107
+D 1455 21 6 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 1108
+D 1458 21 6 1 3 1104 0 0 1 0 0
+ 0 1103 3 3 1104 1104
+D 1461 21 6 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 1109
+D 1464 21 6 1 3 1111 0 0 1 0 0
+ 0 1110 3 3 1111 1111
+D 1467 21 6 1 3 1111 0 0 1 0 0
+ 0 1110 3 3 1111 1111
+D 1470 21 6 1 3 1114 0 0 1 0 0
+ 0 1113 3 3 1114 1114
+D 1473 21 6 1 3 1116 0 0 1 0 0
+ 0 1115 3 3 1116 1116
+D 1476 21 6 1 3 1119 0 0 1 0 0
+ 0 1118 3 3 1119 1119
+D 1479 21 6 1 3 1120 0 0 1 0 0
+ 0 1117 3 3 1120 1120
+D 1482 21 6 1 3 1122 0 0 1 0 0
+ 0 1121 3 3 1122 1122
+D 1485 21 6 1 3 1124 0 0 1 0 0
+ 0 1123 3 3 1124 1124
+D 1488 21 6 1 3 1126 0 0 1 0 0
+ 0 1125 3 3 1126 1126
+D 1491 21 9 1 3 1128 0 0 1 0 0
+ 0 1127 3 3 1128 1128
+D 1494 21 9 1 3 1128 0 0 1 0 0
+ 0 1127 3 3 1128 1128
+D 1497 21 9 2 1129 0 0 0 1 1 0
+ 0 1130 3 3 1131 1131
+ 0 0 1131 3 0 1132
+D 1500 21 9 1 3 1134 0 0 1 0 0
+ 0 1133 3 3 1134 1134
+D 1503 21 9 1 3 1128 0 0 1 0 0
+ 0 1127 3 3 1128 1128
+D 1506 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 1135
+D 1509 21 6 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 1136
+D 1512 21 6 1 3 449 0 0 0 0 0
+ 0 449 3 3 449 449
+D 1515 21 6 1 3 1138 0 0 1 0 0
+ 0 1137 3 3 1138 1138
+D 1518 21 6 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 1139
+D 1521 21 6 1 3 1128 0 0 1 0 0
+ 0 1127 3 3 1128 1128
+S 582 24 0 0 0 8 1 0 4668 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 dvode_f90_m
+S 583 16 1 0 0 6 1 582 4680 14 400000 0 0 0 0 8 13 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 wp
+S 584 3 0 0 0 6 1 1 0 0 0 0 0 0 0 0 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6
+S 585 6 4 0 0 16 586 582 4689 14 0 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 use_jacsp
+S 586 6 4 0 0 16 587 582 4699 14 0 0 4 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 like_original_vode
+S 587 6 4 0 0 6 588 582 4718 14 0 0 8 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 infods
+S 588 6 4 0 0 6 589 582 4725 14 0 0 12 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 liwads
+S 589 6 4 0 0 6 590 582 4732 14 0 0 16 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 maxgrpds
+S 590 6 4 0 0 6 591 582 4741 14 0 0 20 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 mingrpds
+S 591 6 4 0 0 6 592 582 4750 14 0 0 24 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 nrfjacds
+S 592 6 4 0 0 6 593 582 4759 14 0 0 28 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ncfjacds
+S 593 6 4 0 0 6 594 582 4768 14 0 0 32 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 lwkds
+S 594 6 4 0 0 6 821 582 4774 14 0 0 36 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 liwkds
+S 595 7 6 0 0 33 1 582 4781 10a00014 51 0 0 599 0 0 0 601 0 0 0 0 0 0 0 0 598 0 0 600 582 0 0 0 0 indrowds
+S 596 6 4 0 0 6 607 582 4790 40800006 0 0 0 0 0 0 0 0 0 1329 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 z_b_0
+S 597 3 0 0 0 6 1 1 0 0 0 0 0 0 0 0 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6
+S 598 8 4 0 0 36 609 582 4796 40822014 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 indrowds$sd
+S 599 6 4 0 0 7 600 582 4808 40802011 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 indrowds$p
+S 600 6 4 0 0 7 598 582 4819 40802010 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 indrowds$o
+S 601 22 0 0 0 6 1 582 4830 40000000 1000 0 0 0 595 0 0 0 0 598 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 indrowds$arrdsc
+S 602 3 0 0 0 6 1 1 0 0 0 0 0 0 0 0 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6
+S 603 3 0 0 0 6 1 1 0 0 0 0 0 0 0 0 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6
+S 604 3 0 0 0 6 1 1 0 0 0 0 0 0 0 0 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6
+S 605 3 0 0 0 6 1 1 0 0 0 0 0 0 0 0 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6
+S 606 7 6 0 0 39 1 582 4846 10a00014 51 0 0 609 0 0 0 611 0 0 0 0 0 0 0 0 608 0 0 610 582 0 0 0 0 indcolds
+S 607 6 4 0 0 6 613 582 4855 40800006 0 0 4 0 0 0 0 0 0 1329 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 z_b_1
+S 608 8 4 0 0 42 615 582 4861 40822014 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 indcolds$sd
+S 609 6 4 0 0 7 610 582 4873 40802011 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 indcolds$p
+S 610 6 4 0 0 7 608 582 4884 40802010 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 indcolds$o
+S 611 22 0 0 0 6 1 582 4895 40000000 1000 0 0 0 606 0 0 0 0 608 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 indcolds$arrdsc
+S 612 7 6 0 0 45 1 582 4911 10a00014 51 0 0 615 0 0 0 617 0 0 0 0 0 0 0 0 614 0 0 616 582 0 0 0 0 ngrpds
+S 613 6 4 0 0 6 619 582 4918 40800006 0 0 8 0 0 0 0 0 0 1329 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 z_b_2
+S 614 8 4 0 0 48 621 582 4924 40822014 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ngrpds$sd
+S 615 6 4 0 0 7 616 582 4934 40802011 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ngrpds$p
+S 616 6 4 0 0 7 614 582 4943 40802010 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ngrpds$o
+S 617 22 0 0 0 6 1 582 4952 40000000 1000 0 0 0 612 0 0 0 0 614 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ngrpds$arrdsc
+S 618 7 6 0 0 51 1 582 4966 10a00014 51 0 0 621 0 0 0 623 0 0 0 0 0 0 0 0 620 0 0 622 582 0 0 0 0 ipntrds
+S 619 6 4 0 0 6 625 582 4974 40800006 0 0 12 0 0 0 0 0 0 1329 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 z_b_3
+S 620 8 4 0 0 54 627 582 4980 40822014 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ipntrds$sd
+S 621 6 4 0 0 7 622 582 4991 40802011 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ipntrds$p
+S 622 6 4 0 0 7 620 582 5001 40802010 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ipntrds$o
+S 623 22 0 0 0 6 1 582 5011 40000000 1000 0 0 0 618 0 0 0 0 620 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ipntrds$arrdsc
+S 624 7 6 0 0 57 1 582 5026 10a00014 51 0 0 627 0 0 0 629 0 0 0 0 0 0 0 0 626 0 0 628 582 0 0 0 0 jpntrds
+S 625 6 4 0 0 6 631 582 5034 40800006 0 0 16 0 0 0 0 0 0 1329 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 z_b_4
+S 626 8 4 0 0 60 633 582 5040 40822014 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 jpntrds$sd
+S 627 6 4 0 0 7 628 582 5051 40802011 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 jpntrds$p
+S 628 6 4 0 0 7 626 582 5061 40802010 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 jpntrds$o
+S 629 22 0 0 0 6 1 582 5071 40000000 1000 0 0 0 624 0 0 0 0 626 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 jpntrds$arrdsc
+S 630 7 6 0 0 63 1 582 5086 10a00014 51 0 0 633 0 0 0 635 0 0 0 0 0 0 0 0 632 0 0 634 582 0 0 0 0 iwads
+S 631 6 4 0 0 6 637 582 5092 40800006 0 0 20 0 0 0 0 0 0 1329 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 z_b_5
+S 632 8 4 0 0 66 639 582 5098 40822014 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 iwads$sd
+S 633 6 4 0 0 7 634 582 5107 40802011 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 iwads$p
+S 634 6 4 0 0 7 632 582 5115 40802010 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 iwads$o
+S 635 22 0 0 0 6 1 582 5123 40000000 1000 0 0 0 630 0 0 0 0 632 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 iwads$arrdsc
+S 636 7 6 0 0 69 1 582 5136 10a00014 51 0 0 639 0 0 0 641 0 0 0 0 0 0 0 0 638 0 0 640 582 0 0 0 0 iwkds
+S 637 6 4 0 0 6 643 582 5142 40800006 0 0 24 0 0 0 0 0 0 1329 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 z_b_6
+S 638 8 4 0 0 72 645 582 5148 40822014 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 iwkds$sd
+S 639 6 4 0 0 7 640 582 5157 40802011 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 iwkds$p
+S 640 6 4 0 0 7 638 582 5165 40802010 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 iwkds$o
+S 641 22 0 0 0 6 1 582 5173 40000000 1000 0 0 0 636 0 0 0 0 638 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 iwkds$arrdsc
+S 642 7 6 0 0 75 1 582 5186 10a00014 51 0 0 645 0 0 0 647 0 0 0 0 0 0 0 0 644 0 0 646 582 0 0 0 0 ioptds
+S 643 6 4 0 0 6 649 582 5193 40800006 0 0 28 0 0 0 0 0 0 1329 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 z_b_7
+S 644 8 4 0 0 78 651 582 5199 40822014 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ioptds$sd
+S 645 6 4 0 0 7 646 582 5209 40802011 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ioptds$p
+S 646 6 4 0 0 7 644 582 5218 40802010 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ioptds$o
+S 647 22 0 0 0 6 1 582 5227 40000000 1000 0 0 0 642 0 0 0 0 644 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ioptds$arrdsc
+S 648 7 6 0 0 81 1 582 5241 10a00014 51 0 0 651 0 0 0 653 0 0 0 0 0 0 0 0 650 0 0 652 582 0 0 0 0 yscaleds
+S 649 6 4 0 0 6 655 582 5250 40800006 0 0 32 0 0 0 0 0 0 1329 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 z_b_8
+S 650 8 4 0 0 84 657 582 5256 40822014 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 yscaleds$sd
+S 651 6 4 0 0 7 652 582 5268 40802011 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 yscaleds$p
+S 652 6 4 0 0 7 650 582 5279 40802010 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 yscaleds$o
+S 653 22 0 0 0 8 1 582 5290 40000000 1000 0 0 0 648 0 0 0 0 650 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 yscaleds$arrdsc
+S 654 7 6 0 0 87 1 582 5306 10a00014 51 0 0 657 0 0 0 659 0 0 0 0 0 0 0 0 656 0 0 658 582 0 0 0 0 wkds
+S 655 6 4 0 0 6 661 582 5311 40800006 0 0 36 0 0 0 0 0 0 1329 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 z_b_9
+S 656 8 4 0 0 90 663 582 5317 40822014 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 wkds$sd
+S 657 6 4 0 0 7 658 582 5325 40802011 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 wkds$p
+S 658 6 4 0 0 7 656 582 5332 40802010 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 wkds$o
+S 659 22 0 0 0 8 1 582 5339 40000000 1000 0 0 0 654 0 0 0 0 656 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 wkds$arrdsc
+S 660 7 6 0 0 93 1 582 5351 10a00014 51 0 0 663 0 0 0 665 0 0 0 0 0 0 0 0 662 0 0 664 582 0 0 0 0 facds
+S 661 6 4 0 0 6 754 582 5357 40800006 0 0 40 0 0 0 0 0 0 1329 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 z_b_10
+S 662 8 4 0 0 96 969 582 5364 40822014 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 facds$sd
+S 663 6 4 0 0 7 664 582 5373 40802011 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 facds$p
+S 664 6 4 0 0 7 662 582 5381 40802010 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 facds$o
+S 665 22 0 0 0 8 1 582 5389 40000000 1000 0 0 0 660 0 0 0 0 662 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 facds$arrdsc
+S 666 6 4 0 0 9 667 582 5402 14 0 0 0 0 0 0 0 0 0 1330 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 u125
+S 667 6 4 0 0 9 776 582 5407 14 0 0 8 0 0 0 0 0 0 1330 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 u325
+S 668 16 0 0 0 16 1 582 5412 14 400000 0 0 0 0 0 119 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 use_ma48_for_sparse
+S 669 3 0 0 0 16 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16
+S 670 16 0 0 0 6 1 582 5432 14 400000 0 0 0 0 100 121 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ipcuth_max
+S 671 3 0 0 0 6 0 1 0 0 0 0 0 0 0 0 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6
+S 672 16 0 0 0 6 1 582 5443 14 400000 0 0 0 0 -3 124 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 kfc
+S 673 3 0 0 0 6 1 1 0 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6
+S 674 3 0 0 0 6 0 1 0 0 0 0 0 0 0 -1 -3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6
+S 675 16 0 0 0 6 1 582 5447 14 400000 0 0 0 0 -15 127 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 kfh
+S 677 3 0 0 0 6 0 1 0 0 0 0 0 0 0 -1 -15 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6
+S 678 16 0 0 0 6 1 582 5451 14 400000 0 0 0 0 33 129 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 leniv1
+S 679 3 0 0 0 6 0 1 0 0 0 0 0 0 0 0 33 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6
+S 680 16 0 0 0 6 1 582 5458 14 400000 0 0 0 0 8 13 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 leniv2
+S 681 16 0 0 0 6 1 582 5465 14 400000 0 0 0 0 48 132 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 lenrv1
+S 682 3 0 0 0 6 0 1 0 0 0 0 0 0 0 0 48 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6
+S 683 16 0 0 0 6 1 582 5472 14 400000 0 0 0 0 1 3 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 lenrv2
+S 684 16 0 0 0 6 1 582 5479 14 400000 0 0 0 0 30 135 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 liwuser
+S 685 3 0 0 0 6 0 1 0 0 0 0 0 0 0 0 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6
+S 686 16 0 0 0 6 1 582 5487 14 400000 0 0 0 0 22 137 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 lrwuser
+S 687 3 0 0 0 6 1 1 0 0 0 0 0 0 0 0 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6
+S 688 16 0 0 0 6 1 582 5495 14 400000 0 0 0 0 3 123 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 maxcor
+S 689 16 0 0 0 6 1 582 5502 14 400000 0 0 0 0 900000000 140 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 max_array_size
+S 690 3 0 0 0 6 0 1 0 0 0 0 0 0 0 0 900000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6
+S 691 16 0 0 0 6 1 582 5517 14 400000 0 0 0 0 20 142 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 msbp
+S 692 3 0 0 0 6 0 1 0 0 0 0 0 0 0 0 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6
+S 693 16 0 0 0 6 1 582 5522 14 400000 0 0 0 0 10 144 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 mxhnl0
+S 694 3 0 0 0 6 0 1 0 0 0 0 0 0 0 0 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6
+S 695 16 0 0 0 6 1 582 5529 14 400000 0 0 0 0 10 144 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 mxncf
+S 696 16 0 0 0 6 1 582 5535 14 400000 0 0 0 0 5000 147 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 mxstp0
+S 697 3 0 0 0 6 0 1 0 0 0 0 0 0 0 0 5000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6
+S 698 16 0 0 0 9 1 582 5542 14 400000 0 0 0 0 699 149 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 addon
+S 699 3 0 0 0 9 0 1 0 0 0 0 0 0 0 1051772663 -1598689907 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9
+S 700 16 0 0 0 9 1 582 5558 14 400000 0 0 0 0 701 151 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 bias1
+S 701 3 0 0 0 9 0 1 0 0 0 0 0 0 0 1075314688 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9
+S 702 16 0 0 0 9 1 582 5571 14 400000 0 0 0 0 701 151 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 bias2
+S 703 16 0 0 0 9 1 582 5584 14 400000 0 0 0 0 704 154 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 bias3
+S 704 3 0 0 0 9 0 1 0 0 0 0 0 0 0 1076101120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9
+S 705 16 0 0 0 9 1 582 5598 14 400000 0 0 0 0 706 156 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ccmax
+S 706 3 0 0 0 9 0 1 0 0 0 0 0 0 0 1070805811 858993459 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9
+S 707 16 0 0 0 9 1 582 5611 14 400000 0 0 0 0 708 158 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 cortes
+S 708 3 0 0 0 9 0 1 0 0 0 0 0 0 0 1069128089 -1717986918 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9
+S 709 16 0 0 0 9 1 582 5625 14 400000 0 0 0 0 706 156 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 crdown
+S 710 16 0 0 0 9 1 582 5639 14 400000 0 0 0 0 711 161 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 etacf
+S 711 3 0 0 0 9 0 1 0 0 0 0 0 0 0 1070596096 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9
+S 712 16 0 0 0 9 1 582 5653 14 400000 0 0 0 0 708 158 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 etamin
+S 713 16 0 0 0 9 1 582 5667 14 400000 0 0 0 0 714 164 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 etamx1
+S 714 3 0 0 0 9 0 1 0 0 0 0 0 0 0 1086556160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9
+S 715 16 0 0 0 9 1 582 5683 14 400000 0 0 0 0 704 154 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 etamx2
+S 716 16 0 0 0 9 1 582 5698 14 400000 0 0 0 0 704 154 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 etamx3
+S 717 16 0 0 0 9 1 582 5713 14 400000 0 0 0 0 718 168 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 etamxf
+S 718 3 0 0 0 9 0 1 0 0 0 0 0 0 0 1070176665 -1717986918 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9
+S 719 16 0 0 0 9 1 582 5727 14 400000 0 0 0 0 720 170 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 five
+S 720 3 0 0 0 9 0 1 0 0 0 0 0 0 0 1075052544 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9
+S 721 16 0 0 0 9 1 582 5739 14 400000 0 0 0 0 722 172 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 four
+S 722 3 0 0 0 9 0 1 0 0 0 0 0 0 0 1074790400 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9
+S 723 16 0 0 0 9 1 582 5751 14 400000 0 0 0 0 580 174 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 half
+S 724 16 0 0 0 9 1 582 5763 14 400000 0 0 0 0 725 176 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 hun
+S 725 3 0 0 0 9 0 1 0 0 0 0 0 0 0 1079574528 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9
+S 726 16 0 0 0 9 1 582 5776 14 400000 0 0 0 0 727 178 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 hundreth
+S 727 3 0 0 0 9 0 1 0 0 0 0 0 0 0 1065646817 1202590843 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9
+S 728 16 0 0 0 9 1 582 5793 14 400000 0 0 0 0 578 12 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 one
+S 729 16 0 0 0 9 1 582 5804 14 400000 0 0 0 0 730 181 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 onepsm
+S 730 3 0 0 0 9 0 1 0 0 0 0 0 0 0 1072693258 2086323314 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9
+S 731 16 0 0 0 9 1 582 5822 14 400000 0 0 0 0 708 158 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 pt1
+S 732 16 0 0 0 9 1 582 5833 14 400000 0 0 0 0 718 168 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 pt2
+S 733 16 0 0 0 9 1 582 5844 14 400000 0 0 0 0 579 185 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 rdiv
+S 734 16 0 0 0 9 1 582 5856 14 400000 0 0 0 0 701 151 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 six
+S 735 16 0 0 0 9 1 582 5867 14 400000 0 0 0 0 704 154 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ten
+S 736 16 0 0 0 9 1 582 5879 14 400000 0 0 0 0 708 158 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 tenth
+S 737 16 0 0 0 9 1 582 5892 14 400000 0 0 0 0 738 190 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 thou
+S 738 3 0 0 0 9 0 1 0 0 0 0 0 0 0 1083129856 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9
+S 739 16 0 0 0 9 1 582 5907 14 400000 0 0 0 0 740 192 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 thresh
+S 740 3 0 0 0 9 0 1 0 0 0 0 0 0 0 1073217536 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9
+S 741 16 0 0 0 9 1 582 5921 14 400000 0 0 0 0 579 185 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 two
+S 742 16 0 0 0 9 1 582 5932 14 400000 0 0 0 0 577 195 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 zero
+S 743 19 0 0 0 8 1 582 5944 4000 0 0 0 0 0 0 0 0 0 0 0 0 0 18 9 0 0 0 0 0 582 0 0 0 0 dvode_f90
+O 743 9 752 751 750 749 748 747 746 745 744
+S 744 27 0 0 0 8 1333 582 5954 10000 0 0 0 19 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 vode_f90
+Q 744 743 0
+S 745 27 0 0 0 8 1514 582 5963 10000 0 0 0 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 get_stats
+Q 745 743 0
+S 746 27 0 0 0 8 1615 582 5973 10000 0 0 0 23 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 dvindy
+Q 746 743 0
+S 747 27 0 0 0 8 1980 582 5980 10000 0 0 0 25 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 release_arrays
+Q 747 743 0
+S 748 27 0 0 0 8 1533 582 5995 10000 0 0 0 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 set_iaja
+Q 748 743 0
+S 749 27 0 0 0 8 1525 582 6004 10000 0 0 0 21 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 usersets_iaja
+Q 749 743 0
+S 750 27 0 0 0 8 1784 582 6018 10000 0 0 0 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 check_stat
+Q 750 743 0
+S 751 27 0 0 0 6 2384 582 6029 10000 0 0 0 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 jacsp
+Q 751 743 0
+S 752 27 0 0 0 8 2540 582 6035 10000 0 0 0 27 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 dvdsm
+Q 752 743 0
+S 753 25 0 0 0 99 1 582 6041 4 800004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 vode_opts
+S 754 6 4 0 0 6 761 582 6051 40800006 0 0 44 0 0 0 0 0 0 1329 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 z_b_11
+S 755 5 6 0 0 105 757 582 6058 10a00004 14 0 0 757 0 99 0 759 0 0 0 0 0 0 0 0 756 1 755 758 582 0 0 0 0 atol
+S 756 5 0 0 0 108 760 582 6063 40822004 1020 0 16 0 0 99 0 0 0 0 0 0 0 0 0 0 0 758 756 0 582 0 0 0 0 atol$sd
+S 757 5 0 0 0 7 758 582 6071 40802001 1020 0 0 0 0 99 0 0 0 0 0 0 0 0 0 0 0 755 757 0 582 0 0 0 0 atol$p
+S 758 5 0 0 0 7 756 582 6078 40802000 1020 0 8 0 0 99 0 0 0 0 0 0 0 0 0 0 0 757 758 0 582 0 0 0 0 atol$o
+S 759 22 0 0 0 8 1 582 6085 40000000 1000 0 0 0 755 0 0 0 0 756 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 atol$arrdsc
+S 760 5 6 0 0 111 763 582 6097 10a00004 14 0 88 763 0 99 0 765 0 0 0 0 0 0 0 0 762 755 760 764 582 0 0 0 0 rtol
+S 761 6 4 0 0 6 967 582 6102 40800006 0 0 48 0 0 0 0 0 0 1329 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 z_b_12
+S 762 5 0 0 0 114 766 582 6109 40822004 1020 0 104 0 0 99 0 0 0 0 0 0 0 0 0 0 0 764 762 0 582 0 0 0 0 rtol$sd
+S 763 5 0 0 0 7 764 582 6117 40802001 1020 0 88 0 0 99 0 0 0 0 0 0 0 0 0 0 0 760 763 0 582 0 0 0 0 rtol$p
+S 764 5 0 0 0 7 762 582 6124 40802000 1020 0 96 0 0 99 0 0 0 0 0 0 0 0 0 0 0 763 764 0 582 0 0 0 0 rtol$o
+S 765 22 0 0 0 8 1 582 6131 40000000 1000 0 0 0 760 0 0 0 0 762 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 rtol$arrdsc
+S 766 5 0 0 0 6 767 582 6143 800004 0 0 176 0 0 99 0 0 0 0 0 0 0 0 0 0 0 760 766 0 582 0 0 0 0 mf
+S 767 5 0 0 0 6 768 582 6146 800004 0 0 180 0 0 99 0 0 0 0 0 0 0 0 0 0 0 766 767 0 582 0 0 0 0 meth
+S 768 5 0 0 0 6 769 582 6151 800004 0 0 184 0 0 99 0 0 0 0 0 0 0 0 0 0 0 767 768 0 582 0 0 0 0 miter
+S 769 5 0 0 0 6 770 582 6157 800004 0 0 188 0 0 99 0 0 0 0 0 0 0 0 0 0 0 768 769 0 582 0 0 0 0 moss
+S 770 5 0 0 0 6 771 582 6162 800004 0 0 192 0 0 99 0 0 0 0 0 0 0 0 0 0 0 769 770 0 582 0 0 0 0 itol
+S 771 5 0 0 0 6 772 582 6167 800004 0 0 196 0 0 99 0 0 0 0 0 0 0 0 0 0 0 770 771 0 582 0 0 0 0 iopt
+S 772 5 0 0 0 6 773 582 6172 800004 0 0 200 0 0 99 0 0 0 0 0 0 0 0 0 0 0 771 772 0 582 0 0 0 0 ng
+S 773 5 0 0 0 16 774 582 6175 800004 0 0 204 0 0 99 0 0 0 0 0 0 0 0 0 0 0 772 773 0 582 0 0 0 0 dense
+S 774 5 0 0 0 16 775 582 6181 800004 0 0 208 0 0 99 0 0 0 0 0 0 0 0 0 0 0 773 774 0 582 0 0 0 0 banded
+S 775 5 0 0 0 16 1 582 6188 800004 0 0 212 0 0 99 0 0 0 0 0 0 0 0 0 0 0 774 775 0 582 0 0 0 0 sparse
+S 776 6 4 0 0 9 777 582 6195 14 0 0 16 0 0 0 0 0 0 1330 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 acnrm
+S 777 6 4 0 0 9 779 582 6201 14 0 0 24 0 0 0 0 0 0 1330 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 alpha
+S 778 6 4 0 0 9 781 582 6207 80001c 0 0 0 0 0 0 0 0 0 1331 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 big
+S 779 6 4 0 0 9 780 582 6211 14 0 0 32 0 0 0 0 0 0 1330 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 big1
+S 780 6 4 0 0 9 782 582 6216 14 0 0 40 0 0 0 0 0 0 1330 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ccmxj
+S 781 6 4 0 0 9 800 582 6222 80001c 0 0 8 0 0 0 0 0 0 1331 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 cgce
+S 782 6 4 0 0 9 783 582 6227 14 0 0 48 0 0 0 0 0 0 1330 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 conp
+S 783 6 4 0 0 9 784 582 6232 14 0 0 56 0 0 0 0 0 0 1330 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 crate
+S 784 6 4 0 0 9 785 582 6238 14 0 0 64 0 0 0 0 0 0 1330 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 drc
+S 785 6 4 0 0 9 786 582 6242 14 0 0 72 0 0 0 0 0 0 1330 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 dres
+S 786 6 4 0 0 9 787 582 6247 14 0 0 80 0 0 0 0 0 0 1330 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 dxmax
+S 787 6 4 0 0 9 788 582 6253 14 0 0 88 0 0 0 0 0 0 1330 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 eps
+S 788 6 4 0 0 9 789 582 6257 14 0 0 96 0 0 0 0 0 0 1330 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 errmax
+S 789 6 4 0 0 9 790 582 6264 14 0 0 104 0 0 0 0 0 0 1330 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 eta
+S 790 6 4 0 0 9 791 582 6268 14 0 0 112 0 0 0 0 0 0 1330 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 etamax
+S 791 6 4 0 0 9 792 582 6275 14 0 0 120 0 0 0 0 0 0 1330 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 fracint
+S 792 6 4 0 0 9 793 582 6283 14 0 0 128 0 0 0 0 0 0 1330 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 fracsub
+S 793 6 4 0 0 9 794 582 6291 14 0 0 136 0 0 0 0 0 0 1330 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 h
+S 794 6 4 0 0 9 795 582 6293 14 0 0 144 0 0 0 0 0 0 1330 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 hmin
+S 795 6 4 0 0 9 796 582 6298 14 0 0 152 0 0 0 0 0 0 1330 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 hmxi
+S 796 6 4 0 0 9 797 582 6303 14 0 0 160 0 0 0 0 0 0 1330 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 hnew
+S 797 6 4 0 0 9 798 582 6308 14 0 0 168 0 0 0 0 0 0 1330 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 hscal
+S 798 6 4 0 0 9 799 582 6314 14 0 0 176 0 0 0 0 0 0 1330 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 hu
+S 799 6 4 0 0 9 802 582 6317 14 0 0 184 0 0 0 0 0 0 1330 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 meps
+S 800 6 4 0 0 9 801 582 6322 80001c 0 0 16 0 0 0 0 0 0 1331 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 mresid
+S 801 6 4 0 0 9 812 582 6329 80001c 0 0 24 0 0 0 0 0 0 1331 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 mrmin
+S 802 6 4 0 0 9 803 582 6335 14 0 0 192 0 0 0 0 0 0 1330 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 prl1
+S 803 6 4 0 0 9 804 582 6340 14 0 0 200 0 0 0 0 0 0 1330 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 rc
+S 804 6 4 0 0 9 805 582 6343 14 0 0 208 0 0 0 0 0 0 1330 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 resid
+S 805 6 4 0 0 9 806 582 6349 14 0 0 216 0 0 0 0 0 0 1330 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 rl1
+S 806 6 4 0 0 9 807 582 6353 14 0 0 224 0 0 0 0 0 0 1330 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 rmin
+S 807 6 4 0 0 9 808 582 6358 14 0 0 232 0 0 0 0 0 0 1330 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 seth
+S 808 6 4 0 0 9 809 582 6363 14 0 0 240 0 0 0 0 0 0 1330 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 t0st
+S 809 6 4 0 0 9 810 582 6368 14 0 0 248 0 0 0 0 0 0 1330 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 themax
+S 810 6 4 0 0 9 811 582 6375 14 0 0 256 0 0 0 0 0 0 1330 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 tlast
+S 811 6 4 0 0 9 813 582 6381 14 0 0 264 0 0 0 0 0 0 1330 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 tn
+S 812 6 4 0 0 9 1 582 6384 80001c 0 0 32 0 0 0 0 0 0 1331 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 tol
+S 813 6 4 0 0 9 814 582 6388 14 0 0 272 0 0 0 0 0 0 1330 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 tol1
+S 814 6 4 0 0 9 815 582 6393 14 0 0 280 0 0 0 0 0 0 1330 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 toutc
+S 815 6 4 0 0 9 816 582 6399 14 0 0 288 0 0 0 0 0 0 1330 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 umax
+S 816 6 4 0 0 9 817 582 6404 14 0 0 296 0 0 0 0 0 0 1330 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 uround
+S 817 6 4 0 0 9 818 582 6411 14 0 0 304 0 0 0 0 0 0 1330 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 u_pivot
+S 818 6 4 0 0 9 819 582 6419 14 0 0 312 0 0 0 0 0 0 1330 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 x2
+S 819 6 4 0 0 9 820 582 6422 14 0 0 320 0 0 0 0 0 0 1330 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 wm1
+S 820 6 4 0 0 9 1120 582 6426 14 0 0 328 0 0 0 0 0 0 1330 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 wm2
+S 821 6 4 0 0 6 822 582 6430 14 0 0 40 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 addtoja
+S 822 6 4 0 0 6 823 582 6438 14 0 0 44 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 addtonnz
+S 823 6 4 0 0 6 824 582 6447 14 0 0 48 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 consecutive_cfails
+S 824 6 4 0 0 6 825 582 6466 14 0 0 52 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 consecutive_efails
+S 825 6 4 0 0 6 826 582 6485 14 0 0 56 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 elbow_room
+S 826 6 4 0 0 6 827 582 6496 14 0 0 60 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 iadim
+S 827 6 4 0 0 6 828 582 6502 14 0 0 64 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ianpiv
+S 828 6 4 0 0 6 829 582 6509 14 0 0 68 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 iavpiv
+S 829 6 4 0 0 6 830 582 6516 14 0 0 72 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 icf
+S 830 6 4 0 0 6 831 582 6520 14 0 0 76 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 icncp
+S 831 6 4 0 0 6 832 582 6526 14 0 0 80 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ifail
+S 832 6 4 0 0 6 833 582 6532 14 0 0 84 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 imax
+S 833 6 4 0 0 6 834 582 6537 14 0 0 88 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 imin
+S 834 6 4 0 0 6 835 582 6542 14 0 0 92 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 inewj
+S 835 6 4 0 0 6 836 582 6548 14 0 0 96 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 init
+S 836 6 4 0 0 6 837 582 6553 14 0 0 100 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ipup
+S 837 6 4 0 0 6 838 582 6558 14 0 0 104 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 irank
+S 838 6 4 0 0 6 839 582 6564 14 0 0 108 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 irfnd
+S 839 6 4 0 0 6 841 582 6570 14 0 0 112 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 irncp
+S 840 6 4 0 0 6 871 582 6576 80001c 0 0 0 0 0 0 0 0 0 1332 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 istart
+S 841 6 4 0 0 6 842 582 6583 14 0 0 116 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 istatc
+S 842 6 4 0 0 6 843 582 6590 14 0 0 120 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 itaskc
+S 843 6 4 0 0 6 844 582 6597 14 0 0 124 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 jadim
+S 844 6 4 0 0 6 845 582 6603 14 0 0 128 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 jcur
+S 845 6 4 0 0 6 846 582 6608 14 0 0 132 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 jmin
+S 846 6 4 0 0 6 847 582 6613 14 0 0 136 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 jstart
+S 847 6 4 0 0 6 848 582 6620 14 0 0 140 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 jsv
+S 848 6 4 0 0 6 849 582 6624 14 0 0 144 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 kflag
+S 849 6 4 0 0 6 850 582 6630 14 0 0 148 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 kountl
+S 850 6 4 0 0 6 851 582 6637 14 0 0 152 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 kuth
+S 851 6 4 0 0 6 852 582 6642 14 0 0 156 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 l
+S 852 6 4 0 0 6 853 582 6644 14 0 0 160 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 large
+S 853 6 4 0 0 6 854 582 6650 14 0 0 164 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 last
+S 854 6 4 0 0 6 855 582 6655 14 0 0 168 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 lenigp
+S 855 6 4 0 0 6 856 582 6662 14 0 0 172 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 licn_all
+S 856 6 4 0 0 6 857 582 6671 14 0 0 176 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 lirn_all
+S 857 6 4 0 0 6 858 582 6680 14 0 0 180 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 liw
+S 858 6 4 0 0 6 859 582 6684 14 0 0 184 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 liwm
+S 859 6 4 0 0 6 860 582 6689 14 0 0 188 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 lmax
+S 860 6 4 0 0 6 861 582 6694 14 0 0 192 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 locjs
+S 861 6 4 0 0 6 862 582 6700 14 0 0 196 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 lp
+S 862 6 4 0 0 6 863 582 6703 14 0 0 200 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 lrw
+S 863 6 4 0 0 6 864 582 6707 14 0 0 204 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 lwm
+S 864 6 4 0 0 6 865 582 6711 14 0 0 208 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 lwmdim
+S 865 6 4 0 0 6 866 582 6718 14 0 0 212 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 lwmtemp
+S 866 6 4 0 0 6 867 582 6726 14 0 0 216 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 lyh
+S 867 6 4 0 0 6 868 582 6730 14 0 0 220 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 lyhtemp
+S 868 6 4 0 0 6 869 582 6738 14 0 0 224 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 manpiv
+S 869 6 4 0 0 6 870 582 6745 14 0 0 228 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 mapiv
+S 870 6 4 0 0 6 872 582 6751 14 0 0 232 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 maxg
+S 871 6 4 0 0 6 876 582 6756 80001c 0 0 4 0 0 0 0 0 0 1332 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 maxit
+S 872 6 4 0 0 6 873 582 6762 14 0 0 236 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 maxord
+S 873 6 4 0 0 6 874 582 6769 14 0 0 240 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 mb28
+S 874 6 4 0 0 6 875 582 6774 14 0 0 244 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 mb48
+S 875 6 4 0 0 6 878 582 6146 14 0 0 248 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 meth
+S 876 6 4 0 0 6 877 582 6779 80001c 0 0 8 0 0 0 0 0 0 1332 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 micn
+S 877 6 4 0 0 6 880 582 6784 80001c 0 0 12 0 0 0 0 0 0 1332 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 micncp
+S 878 6 4 0 0 6 879 582 6791 14 0 0 252 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 minicn
+S 879 6 4 0 0 6 883 582 6798 14 0 0 256 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 minirn
+S 880 6 4 0 0 6 881 582 6805 80001c 0 0 16 0 0 0 0 0 0 1332 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 mirank
+S 881 6 4 0 0 6 882 582 6812 80001c 0 0 20 0 0 0 0 0 0 1332 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 mirn
+S 882 6 4 0 0 6 884 582 6817 80001c 0 0 24 0 0 0 0 0 0 1332 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 mirncp
+S 883 6 4 0 0 6 885 582 6151 14 0 0 260 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 miter
+S 884 6 4 0 0 6 886 582 6824 80001c 0 0 28 0 0 0 0 0 0 1332 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 mlp
+S 885 6 4 0 0 6 887 582 6157 14 0 0 264 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 moss
+S 886 6 4 0 0 6 895 582 6828 80001c 0 0 32 0 0 0 0 0 0 1332 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 mp
+S 887 6 4 0 0 6 888 582 6831 14 0 0 268 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 msbg
+S 888 6 4 0 0 6 889 582 6836 14 0 0 272 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 msbj
+S 889 6 4 0 0 6 890 582 6841 14 0 0 276 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 mxhnil
+S 890 6 4 0 0 6 891 582 6848 14 0 0 280 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 mxstep
+S 891 6 4 0 0 6 892 582 6855 14 0 0 284 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 n
+S 892 6 4 0 0 6 893 582 6857 14 0 0 288 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 nzb
+S 893 6 4 0 0 6 894 582 6861 14 0 0 292 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ncfn
+S 894 6 4 0 0 6 896 582 6866 14 0 0 296 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ndrop
+S 895 6 4 0 0 6 906 582 6872 80001c 0 0 36 0 0 0 0 0 0 1332 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ndrop1
+S 896 6 4 0 0 6 897 582 6879 14 0 0 300 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ndx
+S 897 6 4 0 0 6 898 582 6883 14 0 0 304 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 netf
+S 898 6 4 0 0 6 899 582 6888 14 0 0 308 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 newh
+S 899 6 4 0 0 6 900 582 6893 14 0 0 312 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 newq
+S 900 6 4 0 0 6 901 582 6898 14 0 0 316 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 nfe
+S 901 6 4 0 0 6 902 582 6902 14 0 0 320 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ngc
+S 902 6 4 0 0 6 903 582 6906 14 0 0 324 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 nge
+S 903 6 4 0 0 6 904 582 6910 14 0 0 328 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ngp
+S 904 6 4 0 0 6 905 582 6914 14 0 0 332 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 nhnil
+S 905 6 4 0 0 6 907 582 6920 14 0 0 336 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 nje
+S 906 6 4 0 0 6 918 582 6924 80001c 0 0 40 0 0 0 0 0 0 1332 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 nlp
+S 907 6 4 0 0 6 908 582 6928 14 0 0 340 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 nlu
+S 908 6 4 0 0 6 909 582 6932 14 0 0 344 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 nni
+S 909 6 4 0 0 6 910 582 6936 14 0 0 348 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 nnz
+S 910 6 4 0 0 6 911 582 6940 14 0 0 352 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 noiter
+S 911 6 4 0 0 6 912 582 6947 14 0 0 356 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 nq
+S 912 6 4 0 0 6 913 582 6950 14 0 0 360 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 nqnyh
+S 913 6 4 0 0 6 914 582 6956 14 0 0 364 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 nqu
+S 914 6 4 0 0 6 915 582 6960 14 0 0 368 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 nqwait
+S 915 6 4 0 0 6 916 582 6967 14 0 0 372 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 nslg
+S 916 6 4 0 0 6 917 582 6972 14 0 0 376 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 nslj
+S 917 6 4 0 0 6 919 582 6977 14 0 0 380 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 nslp
+S 918 6 4 0 0 6 939 582 6982 80001c 0 0 44 0 0 0 0 0 0 1332 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 nsrch
+S 919 6 4 0 0 6 920 582 6988 14 0 0 384 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 nsrch1
+S 920 6 4 0 0 6 921 582 6995 14 0 0 388 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 nst
+S 921 6 4 0 0 6 922 582 6999 14 0 0 392 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 nsubs
+S 922 6 4 0 0 6 923 582 7005 14 0 0 396 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 nsups
+S 923 6 4 0 0 6 924 582 7011 14 0 0 400 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 num
+S 924 6 4 0 0 6 925 582 7015 14 0 0 404 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 numnz
+S 925 6 4 0 0 6 926 582 7021 14 0 0 408 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 nyh
+S 926 6 4 0 0 6 927 582 7025 14 0 0 412 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 nz_all
+S 927 6 4 0 0 6 928 582 7032 14 0 0 416 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 nz_swag
+S 928 6 4 0 0 6 929 582 7040 14 0 0 420 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 previous_maxord
+S 929 6 4 0 0 6 930 582 7056 14 0 0 424 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 wpd
+S 930 6 4 0 0 6 931 582 7060 14 0 0 428 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 wps
+S 931 6 4 0 0 6 932 582 7064 14 0 0 432 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ma28ad_calls
+S 932 6 4 0 0 6 933 582 7077 14 0 0 436 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ma28bd_calls
+S 933 6 4 0 0 6 934 582 7090 14 0 0 440 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ma28cd_calls
+S 934 6 4 0 0 6 935 582 7103 14 0 0 444 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 mc19ad_calls
+S 935 6 4 0 0 6 936 582 7116 14 0 0 448 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 max_minirn
+S 936 6 4 0 0 6 937 582 7127 14 0 0 452 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 max_minicn
+S 937 6 4 0 0 6 938 582 7138 14 0 0 456 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 max_nnz
+S 938 6 4 0 0 6 943 582 7146 14 0 0 460 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 bngrp
+S 939 6 4 0 0 16 940 582 7152 80001c 0 0 48 0 0 0 0 0 0 1332 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 abort
+S 940 6 4 0 0 16 941 582 7158 80001c 0 0 52 0 0 0 0 0 0 1332 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 abort1
+S 941 6 4 0 0 16 942 582 7165 80001c 0 0 56 0 0 0 0 0 0 1332 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 abort2
+S 942 6 4 0 0 16 949 582 7172 80001c 0 0 60 0 0 0 0 0 0 1332 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 abort3
+S 943 6 4 0 0 16 944 582 7179 14 0 0 464 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 aborta
+S 944 6 4 0 0 16 945 582 7186 14 0 0 468 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 abortb
+S 945 6 4 0 0 16 946 582 7193 14 0 0 472 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 allow_default_tols
+S 946 6 4 0 0 16 947 582 7212 14 0 0 476 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 build_iaja
+S 947 6 4 0 0 16 948 582 7223 14 0 0 480 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 bounds
+S 948 6 4 0 0 16 950 582 7230 14 0 0 484 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 changed_acor
+S 949 6 4 0 0 16 953 582 7243 80001c 0 0 64 0 0 0 0 0 0 1332 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 grow
+S 950 6 4 0 0 16 951 582 7248 14 0 0 488 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 iaja_called
+S 951 6 4 0 0 16 952 582 7260 14 0 0 492 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 j_has_been_computed
+S 952 6 4 0 0 16 954 582 7280 14 0 0 496 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 j_is_constant
+S 953 6 4 0 0 16 955 582 7294 80001c 0 0 68 0 0 0 0 0 0 1332 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 lbig
+S 954 6 4 0 0 16 956 582 7299 14 0 0 500 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 lbig1
+S 955 6 4 0 0 16 957 582 7305 80001c 0 0 72 0 0 0 0 0 0 1332 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 lblock
+S 956 6 4 0 0 16 958 582 7312 14 0 0 504 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ma48_was_used
+S 957 6 4 0 0 16 960 582 7326 80001c 0 0 76 0 0 0 0 0 0 1332 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ok_to_call_ma28
+S 958 6 4 0 0 16 959 582 7342 14 0 0 508 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 subs
+S 959 6 4 0 0 16 961 582 7347 14 0 0 512 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 sups
+S 960 6 4 0 0 16 1252 582 7352 80001c 0 0 80 0 0 0 0 0 0 1332 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 opts_called
+S 961 6 4 0 0 16 962 582 7364 14 0 0 516 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 redo_pivot_sequence
+S 962 6 4 0 0 16 963 582 7384 14 0 0 520 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 scale_matrix
+S 963 6 4 0 0 16 964 582 6188 14 0 0 524 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 sparse
+S 964 6 4 0 0 16 965 582 7397 14 0 0 528 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 use_fast_factor
+S 965 6 4 0 0 16 1247 582 7413 14 0 0 532 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ymaxwarn
+S 966 7 6 0 0 117 1 582 7422 10a00014 51 0 0 969 0 0 0 971 0 0 0 0 0 0 0 0 968 0 0 970 582 0 0 0 0 acor
+S 967 6 4 0 0 6 973 582 7427 40800006 0 0 52 0 0 0 0 0 0 1329 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 z_b_13
+S 968 8 4 0 0 120 975 582 7434 40822014 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 acor$sd
+S 969 6 4 0 0 7 970 582 7442 40802011 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 acor$p
+S 970 6 4 0 0 7 968 582 7449 40802010 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 acor$o
+S 971 22 0 0 0 8 1 582 7456 40000000 1000 0 0 0 966 0 0 0 0 968 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 acor$arrdsc
+S 972 7 6 0 0 123 1 582 7468 10a00014 51 0 0 975 0 0 0 977 0 0 0 0 0 0 0 0 974 0 0 976 582 0 0 0 0 cscalex
+S 973 6 4 0 0 6 979 582 7476 40800006 0 0 56 0 0 0 0 0 0 1329 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 z_b_14
+S 974 8 4 0 0 126 981 582 7483 40822014 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 cscalex$sd
+S 975 6 4 0 0 7 976 582 7494 40802011 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 cscalex$p
+S 976 6 4 0 0 7 974 582 7504 40802010 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 cscalex$o
+S 977 22 0 0 0 8 1 582 7514 40000000 1000 0 0 0 972 0 0 0 0 974 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 cscalex$arrdsc
+S 978 7 6 0 0 129 1 582 7529 10a00014 51 0 0 981 0 0 0 983 0 0 0 0 0 0 0 0 980 0 0 982 582 0 0 0 0 ewt
+S 979 6 4 0 0 6 985 582 7533 40800006 0 0 60 0 0 0 0 0 0 1329 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 z_b_15
+S 980 8 4 0 0 132 987 582 7540 40822014 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ewt$sd
+S 981 6 4 0 0 7 982 582 7547 40802011 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ewt$p
+S 982 6 4 0 0 7 980 582 7553 40802010 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ewt$o
+S 983 22 0 0 0 8 1 582 7559 40000000 1000 0 0 0 978 0 0 0 0 980 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ewt$arrdsc
+S 984 7 6 0 0 135 1 582 7570 10a00014 51 0 0 987 0 0 0 989 0 0 0 0 0 0 0 0 986 0 0 988 582 0 0 0 0 fptemp
+S 985 6 4 0 0 6 991 582 7577 40800006 0 0 64 0 0 0 0 0 0 1329 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 z_b_16
+S 986 8 4 0 0 138 993 582 7584 40822014 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 fptemp$sd
+S 987 6 4 0 0 7 988 582 7594 40802011 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 fptemp$p
+S 988 6 4 0 0 7 986 582 7603 40802010 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 fptemp$o
+S 989 22 0 0 0 8 1 582 7612 40000000 1000 0 0 0 984 0 0 0 0 986 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 fptemp$arrdsc
+S 990 7 6 0 0 141 1 582 7626 10a00014 51 0 0 993 0 0 0 995 0 0 0 0 0 0 0 0 992 0 0 994 582 0 0 0 0 ftemp
+S 991 6 4 0 0 6 997 582 7632 40800006 0 0 68 0 0 0 0 0 0 1329 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 z_b_17
+S 992 8 4 0 0 144 999 582 7639 40822014 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ftemp$sd
+S 993 6 4 0 0 7 994 582 7648 40802011 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ftemp$p
+S 994 6 4 0 0 7 992 582 7656 40802010 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ftemp$o
+S 995 22 0 0 0 8 1 582 7664 40000000 1000 0 0 0 990 0 0 0 0 992 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ftemp$arrdsc
+S 996 7 6 0 0 147 1 582 7677 10a00014 51 0 0 999 0 0 0 1001 0 0 0 0 0 0 0 0 998 0 0 1000 582 0 0 0 0 ftemp1
+S 997 6 4 0 0 6 1003 582 7684 40800006 0 0 72 0 0 0 0 0 0 1329 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 z_b_18
+S 998 8 4 0 0 150 1005 582 7691 40822014 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ftemp1$sd
+S 999 6 4 0 0 7 1000 582 7701 40802011 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ftemp1$p
+S 1000 6 4 0 0 7 998 582 7710 40802010 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ftemp1$o
+S 1001 22 0 0 0 8 1 582 7719 40000000 1000 0 0 0 996 0 0 0 0 998 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ftemp1$arrdsc
+S 1002 7 6 0 0 153 1 582 7733 10a00014 51 0 0 1005 0 0 0 1007 0 0 0 0 0 0 0 0 1004 0 0 1006 582 0 0 0 0 g0
+S 1003 6 4 0 0 6 1009 582 7736 40800006 0 0 76 0 0 0 0 0 0 1329 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 z_b_19
+S 1004 8 4 0 0 156 1011 582 7743 40822014 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 g0$sd
+S 1005 6 4 0 0 7 1006 582 7749 40802011 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 g0$p
+S 1006 6 4 0 0 7 1004 582 7754 40802010 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 g0$o
+S 1007 22 0 0 0 8 1 582 7759 40000000 1000 0 0 0 1002 0 0 0 0 1004 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 g0$arrdsc
+S 1008 7 6 0 0 159 1 582 7769 10a00014 51 0 0 1011 0 0 0 1013 0 0 0 0 0 0 0 0 1010 0 0 1012 582 0 0 0 0 g1
+S 1009 6 4 0 0 6 1015 582 7772 40800006 0 0 80 0 0 0 0 0 0 1329 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 z_b_20
+S 1010 8 4 0 0 162 1017 582 7779 40822014 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 g1$sd
+S 1011 6 4 0 0 7 1012 582 7785 40802011 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 g1$p
+S 1012 6 4 0 0 7 1010 582 7790 40802010 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 g1$o
+S 1013 22 0 0 0 8 1 582 7795 40000000 1000 0 0 0 1008 0 0 0 0 1010 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 g1$arrdsc
+S 1014 7 6 0 0 165 1 582 7805 10a00014 51 0 0 1017 0 0 0 1019 0 0 0 0 0 0 0 0 1016 0 0 1018 582 0 0 0 0 gx
+S 1015 6 4 0 0 6 1021 582 7808 40800006 0 0 84 0 0 0 0 0 0 1329 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 z_b_21
+S 1016 8 4 0 0 168 1023 582 7815 40822014 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 gx$sd
+S 1017 6 4 0 0 7 1018 582 7821 40802011 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 gx$p
+S 1018 6 4 0 0 7 1016 582 7826 40802010 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 gx$o
+S 1019 22 0 0 0 8 1 582 7831 40000000 1000 0 0 0 1014 0 0 0 0 1016 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 gx$arrdsc
+S 1020 7 6 0 0 171 1 582 7841 10a00014 51 0 0 1023 0 0 0 1025 0 0 0 0 0 0 0 0 1022 0 0 1024 582 0 0 0 0 jmat
+S 1021 6 4 0 0 6 1027 582 7846 40800006 0 0 88 0 0 0 0 0 0 1329 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 z_b_22
+S 1022 8 4 0 0 174 1029 582 7853 40822014 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 jmat$sd
+S 1023 6 4 0 0 7 1024 582 7861 40802011 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 jmat$p
+S 1024 6 4 0 0 7 1022 582 7868 40802010 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 jmat$o
+S 1025 22 0 0 0 6 1 582 7875 40000000 1000 0 0 0 1020 0 0 0 0 1022 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 jmat$arrdsc
+S 1026 7 6 0 0 177 1 582 7887 10a00014 51 0 0 1029 0 0 0 1031 0 0 0 0 0 0 0 0 1028 0 0 1030 582 0 0 0 0 lb
+S 1027 6 4 0 0 6 1033 582 7890 40800006 0 0 92 0 0 0 0 0 0 1329 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 z_b_23
+S 1028 8 4 0 0 180 1035 582 7897 40822014 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 lb$sd
+S 1029 6 4 0 0 7 1030 582 7903 40802011 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 lb$p
+S 1030 6 4 0 0 7 1028 582 7908 40802010 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 lb$o
+S 1031 22 0 0 0 6 1 582 7913 40000000 1000 0 0 0 1026 0 0 0 0 1028 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 lb$arrdsc
+S 1032 7 6 0 0 183 1 582 7923 10a00014 51 0 0 1035 0 0 0 1037 0 0 0 0 0 0 0 0 1034 0 0 1036 582 0 0 0 0 pmat
+S 1033 6 4 0 0 6 1039 582 7928 40800006 0 0 96 0 0 0 0 0 0 1329 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 z_b_24
+S 1034 8 4 0 0 186 1041 582 7935 40822014 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 pmat$sd
+S 1035 6 4 0 0 7 1036 582 7943 40802011 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 pmat$p
+S 1036 6 4 0 0 7 1034 582 7950 40802010 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 pmat$o
+S 1037 22 0 0 0 8 1 582 7957 40000000 1000 0 0 0 1032 0 0 0 0 1034 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 pmat$arrdsc
+S 1038 7 6 0 0 189 1 582 7969 10a00014 51 0 0 1041 0 0 0 1043 0 0 0 0 0 0 0 0 1040 0 0 1042 582 0 0 0 0 rscalex
+S 1039 6 4 0 0 6 1045 582 7977 40800006 0 0 100 0 0 0 0 0 0 1329 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 z_b_25
+S 1040 8 4 0 0 192 1047 582 7984 40822014 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 rscalex$sd
+S 1041 6 4 0 0 7 1042 582 7995 40802011 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 rscalex$p
+S 1042 6 4 0 0 7 1040 582 8005 40802010 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 rscalex$o
+S 1043 22 0 0 0 8 1 582 8015 40000000 1000 0 0 0 1038 0 0 0 0 1040 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 rscalex$arrdsc
+S 1044 7 6 0 0 195 1 582 8030 10a00014 51 0 0 1047 0 0 0 1049 0 0 0 0 0 0 0 0 1046 0 0 1048 582 0 0 0 0 rwork
+S 1045 6 4 0 0 6 1051 582 8036 40800006 0 0 104 0 0 0 0 0 0 1329 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 z_b_26
+S 1046 8 4 0 0 198 1053 582 8043 40822014 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 rwork$sd
+S 1047 6 4 0 0 7 1048 582 8052 40802011 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 rwork$p
+S 1048 6 4 0 0 7 1046 582 8060 40802010 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 rwork$o
+S 1049 22 0 0 0 8 1 582 8068 40000000 1000 0 0 0 1044 0 0 0 0 1046 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 rwork$arrdsc
+S 1050 7 6 0 0 201 1 582 8081 10a00014 51 0 0 1053 0 0 0 1055 0 0 0 0 0 0 0 0 1052 0 0 1054 582 0 0 0 0 savf
+S 1051 6 4 0 0 6 1057 582 8086 40800006 0 0 108 0 0 0 0 0 0 1329 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 z_b_27
+S 1052 8 4 0 0 204 1059 582 8093 40822014 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 savf$sd
+S 1053 6 4 0 0 7 1054 582 8101 40802011 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 savf$p
+S 1054 6 4 0 0 7 1052 582 8108 40802010 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 savf$o
+S 1055 22 0 0 0 8 1 582 8115 40000000 1000 0 0 0 1050 0 0 0 0 1052 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 savf$arrdsc
+S 1056 7 6 0 0 207 1 582 8127 10a00014 51 0 0 1059 0 0 0 1061 0 0 0 0 0 0 0 0 1058 0 0 1060 582 0 0 0 0 ub
+S 1057 6 4 0 0 6 1063 582 8130 40800006 0 0 112 0 0 0 0 0 0 1329 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 z_b_28
+S 1058 8 4 0 0 210 1065 582 8137 40822014 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ub$sd
+S 1059 6 4 0 0 7 1060 582 8143 40802011 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ub$p
+S 1060 6 4 0 0 7 1058 582 8148 40802010 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ub$o
+S 1061 22 0 0 0 8 1 582 8153 40000000 1000 0 0 0 1056 0 0 0 0 1058 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ub$arrdsc
+S 1062 7 6 0 0 213 1 582 8163 10a00014 51 0 0 1065 0 0 0 1067 0 0 0 0 0 0 0 0 1064 0 0 1066 582 0 0 0 0 wm
+S 1063 6 4 0 0 6 1069 582 8166 40800006 0 0 116 0 0 0 0 0 0 1329 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 z_b_29
+S 1064 8 4 0 0 216 1071 582 8173 40822014 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 wm$sd
+S 1065 6 4 0 0 7 1066 582 8179 40802011 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 wm$p
+S 1066 6 4 0 0 7 1064 582 8184 40802010 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 wm$o
+S 1067 22 0 0 0 8 1 582 8189 40000000 1000 0 0 0 1062 0 0 0 0 1064 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 wm$arrdsc
+S 1068 7 6 0 0 219 1 582 8199 10a00014 51 0 0 1071 0 0 0 1073 0 0 0 0 0 0 0 0 1070 0 0 1072 582 0 0 0 0 wmtemp
+S 1069 6 4 0 0 6 1075 582 8206 40800006 0 0 120 0 0 0 0 0 0 1329 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 z_b_30
+S 1070 8 4 0 0 222 1079 582 8213 40822014 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 wmtemp$sd
+S 1071 6 4 0 0 7 1072 582 8223 40802011 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 wmtemp$p
+S 1072 6 4 0 0 7 1070 582 8232 40802010 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 wmtemp$o
+S 1073 22 0 0 0 8 1 582 8241 40000000 1000 0 0 0 1068 0 0 0 0 1070 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 wmtemp$arrdsc
+S 1074 7 6 0 0 225 1 582 8255 10a00014 51 0 0 1079 0 0 0 1081 0 0 0 0 0 0 0 0 1078 0 0 1080 582 0 0 0 0 wscalex
+S 1075 6 4 0 0 6 1076 582 8263 40800006 0 0 124 0 0 0 0 0 0 1329 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 z_b_31
+S 1076 6 4 0 0 6 1085 582 8270 40800006 0 0 128 0 0 0 0 0 0 1329 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 z_b_32
+S 1077 3 0 0 0 6 0 1 0 0 0 0 0 0 0 0 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6
+S 1078 8 4 0 0 228 1087 582 8277 40822014 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 wscalex$sd
+S 1079 6 4 0 0 7 1080 582 8288 40802011 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 wscalex$p
+S 1080 6 4 0 0 7 1078 582 8298 40802010 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 wscalex$o
+S 1081 22 0 0 0 8 1 582 8308 40000000 1000 0 0 0 1074 0 0 0 0 1078 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 wscalex$arrdsc
+S 1082 3 0 0 0 6 0 1 0 0 0 0 0 0 0 0 19 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6
+S 1083 3 0 0 0 6 0 1 0 0 0 0 0 0 0 0 23 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6
+S 1084 7 6 0 0 231 1 582 8323 10a00014 51 0 0 1087 0 0 0 1089 0 0 0 0 0 0 0 0 1086 0 0 1088 582 0 0 0 0 yhnqp2
+S 1085 6 4 0 0 6 1091 582 8330 40800006 0 0 132 0 0 0 0 0 0 1329 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 z_b_33
+S 1086 8 4 0 0 234 1093 582 8337 40822014 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 yhnqp2$sd
+S 1087 6 4 0 0 7 1088 582 8347 40802011 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 yhnqp2$p
+S 1088 6 4 0 0 7 1086 582 8356 40802010 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 yhnqp2$o
+S 1089 22 0 0 0 8 1 582 8365 40000000 1000 0 0 0 1084 0 0 0 0 1086 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 yhnqp2$arrdsc
+S 1090 7 6 0 0 237 1 582 8379 10a00014 51 0 0 1093 0 0 0 1095 0 0 0 0 0 0 0 0 1092 0 0 1094 582 0 0 0 0 yhtemp
+S 1091 6 4 0 0 6 1097 582 8386 40800006 0 0 136 0 0 0 0 0 0 1329 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 z_b_34
+S 1092 8 4 0 0 240 1099 582 8393 40822014 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 yhtemp$sd
+S 1093 6 4 0 0 7 1094 582 8403 40802011 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 yhtemp$p
+S 1094 6 4 0 0 7 1092 582 8412 40802010 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 yhtemp$o
+S 1095 22 0 0 0 8 1 582 8421 40000000 1000 0 0 0 1090 0 0 0 0 1092 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 yhtemp$arrdsc
+S 1096 7 6 0 0 243 1 582 8435 10a00014 51 0 0 1099 0 0 0 1101 0 0 0 0 0 0 0 0 1098 0 0 1100 582 0 0 0 0 ymax
+S 1097 6 4 0 0 6 1103 582 8440 40800006 0 0 140 0 0 0 0 0 0 1329 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 z_b_35
+S 1098 8 4 0 0 246 1105 582 8447 40822014 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ymax$sd
+S 1099 6 4 0 0 7 1100 582 8455 40802011 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ymax$p
+S 1100 6 4 0 0 7 1098 582 8462 40802010 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ymax$o
+S 1101 22 0 0 0 8 1 582 8469 40000000 1000 0 0 0 1096 0 0 0 0 1098 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ymax$arrdsc
+S 1102 7 6 0 0 249 1 582 8481 10a00014 51 0 0 1105 0 0 0 1107 0 0 0 0 0 0 0 0 1104 0 0 1106 582 0 0 0 0 ynneg
+S 1103 6 4 0 0 6 1109 582 8487 40800006 0 0 144 0 0 0 0 0 0 1329 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 z_b_36
+S 1104 8 4 0 0 252 1111 582 8494 40822014 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ynneg$sd
+S 1105 6 4 0 0 7 1106 582 8503 40802011 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ynneg$p
+S 1106 6 4 0 0 7 1104 582 8511 40802010 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ynneg$o
+S 1107 22 0 0 0 8 1 582 8519 40000000 1000 0 0 0 1102 0 0 0 0 1104 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ynneg$arrdsc
+S 1108 7 6 0 0 255 1 582 8532 10a00014 51 0 0 1111 0 0 0 1113 0 0 0 0 0 0 0 0 1110 0 0 1112 582 0 0 0 0 ytemp
+S 1109 6 4 0 0 6 1115 582 8538 40800006 0 0 148 0 0 0 0 0 0 1329 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 z_b_37
+S 1110 8 4 0 0 258 1117 582 8545 40822014 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ytemp$sd
+S 1111 6 4 0 0 7 1112 582 8554 40802011 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ytemp$p
+S 1112 6 4 0 0 7 1110 582 8562 40802010 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ytemp$o
+S 1113 22 0 0 0 8 1 582 8570 40000000 1000 0 0 0 1108 0 0 0 0 1110 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ytemp$arrdsc
+S 1114 7 6 0 0 261 1 582 8583 10a00014 51 0 0 1117 0 0 0 1119 0 0 0 0 0 0 0 0 1116 0 0 1118 582 0 0 0 0 dtemp
+S 1115 6 4 0 0 6 1126 582 8589 40800006 0 0 152 0 0 0 0 0 0 1329 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 z_b_38
+S 1116 8 4 0 0 264 1128 582 8596 40822014 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 dtemp$sd
+S 1117 6 4 0 0 7 1118 582 8605 40802011 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 dtemp$p
+S 1118 6 4 0 0 7 1116 582 8613 40802010 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 dtemp$o
+S 1119 22 0 0 0 8 1 582 8621 40000000 1000 0 0 0 1114 0 0 0 0 1116 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 dtemp$arrdsc
+S 1120 7 4 0 4 267 1121 582 8634 800014 100 0 336 0 0 0 0 0 0 1330 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 el
+S 1121 7 4 0 4 270 1122 582 8637 800014 100 0 448 0 0 0 0 0 0 1330 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ruser
+S 1122 7 4 0 4 273 1123 582 8643 800014 100 0 624 0 0 0 0 0 0 1330 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 tau
+S 1123 7 4 0 4 276 1 582 8647 800014 100 0 736 0 0 0 0 0 0 1330 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 tq
+S 1124 3 0 0 0 6 1 1 0 0 0 0 0 0 0 0 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6
+S 1125 7 6 0 0 279 1 582 8650 10a00014 51 0 0 1128 0 0 0 1130 0 0 0 0 0 0 0 0 1127 0 0 1129 582 0 0 0 0 bigp
+S 1126 6 4 0 0 6 1132 582 8655 40800006 0 0 156 0 0 0 0 0 0 1329 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 z_b_39
+S 1127 8 4 0 0 282 1134 582 8662 40822014 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 bigp$sd
+S 1128 6 4 0 0 7 1129 582 8670 40802011 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 bigp$p
+S 1129 6 4 0 0 7 1127 582 8677 40802010 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 bigp$o
+S 1130 22 0 0 0 8 1 582 8684 40000000 1000 0 0 0 1125 0 0 0 0 1127 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 bigp$arrdsc
+S 1131 7 6 0 0 285 1 582 8696 10a00014 51 0 0 1134 0 0 0 1136 0 0 0 0 0 0 0 0 1133 0 0 1135 582 0 0 0 0 bjgp
+S 1132 6 4 0 0 6 1138 582 8701 40800006 0 0 160 0 0 0 0 0 0 1329 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 z_b_40
+S 1133 8 4 0 0 288 1140 582 8708 40822014 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 bjgp$sd
+S 1134 6 4 0 0 7 1135 582 8716 40802011 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 bjgp$p
+S 1135 6 4 0 0 7 1133 582 8723 40802010 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 bjgp$o
+S 1136 22 0 0 0 8 1 582 8730 40000000 1000 0 0 0 1131 0 0 0 0 1133 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 bjgp$arrdsc
+S 1137 7 6 0 0 291 1 582 8742 10a00014 51 0 0 1140 0 0 0 1142 0 0 0 0 0 0 0 0 1139 0 0 1141 582 0 0 0 0 ia
+S 1138 6 4 0 0 6 1144 582 8745 40800006 0 0 164 0 0 0 0 0 0 1329 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 z_b_41
+S 1139 8 4 0 0 294 1146 582 8752 40822014 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ia$sd
+S 1140 6 4 0 0 7 1141 582 8758 40802011 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ia$p
+S 1141 6 4 0 0 7 1139 582 8763 40802010 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ia$o
+S 1142 22 0 0 0 6 1 582 8768 40000000 1000 0 0 0 1137 0 0 0 0 1139 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ia$arrdsc
+S 1143 7 6 0 0 297 1 582 8778 10a00014 51 0 0 1146 0 0 0 1148 0 0 0 0 0 0 0 0 1145 0 0 1147 582 0 0 0 0 iab
+S 1144 6 4 0 0 6 1150 582 8782 40800006 0 0 168 0 0 0 0 0 0 1329 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 z_b_42
+S 1145 8 4 0 0 300 1152 582 8789 40822014 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 iab$sd
+S 1146 6 4 0 0 7 1147 582 8796 40802011 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 iab$p
+S 1147 6 4 0 0 7 1145 582 8802 40802010 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 iab$o
+S 1148 22 0 0 0 6 1 582 8808 40000000 1000 0 0 0 1143 0 0 0 0 1145 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 iab$arrdsc
+S 1149 7 6 0 0 303 1 582 8819 10a00014 51 0 0 1152 0 0 0 1154 0 0 0 0 0 0 0 0 1151 0 0 1153 582 0 0 0 0 ian
+S 1150 6 4 0 0 6 1156 582 8823 40800006 0 0 172 0 0 0 0 0 0 1329 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 z_b_43
+S 1151 8 4 0 0 306 1158 582 8830 40822014 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ian$sd
+S 1152 6 4 0 0 7 1153 582 8837 40802011 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ian$p
+S 1153 6 4 0 0 7 1151 582 8843 40802010 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ian$o
+S 1154 22 0 0 0 6 1 582 8849 40000000 1000 0 0 0 1149 0 0 0 0 1151 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ian$arrdsc
+S 1155 7 6 0 0 309 1 582 8860 10a00014 51 0 0 1158 0 0 0 1160 0 0 0 0 0 0 0 0 1157 0 0 1159 582 0 0 0 0 icn
+S 1156 6 4 0 0 6 1162 582 8864 40800006 0 0 176 0 0 0 0 0 0 1329 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 z_b_44
+S 1157 8 4 0 0 312 1164 582 8871 40822014 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 icn$sd
+S 1158 6 4 0 0 7 1159 582 8878 40802011 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 icn$p
+S 1159 6 4 0 0 7 1157 582 8884 40802010 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 icn$o
+S 1160 22 0 0 0 6 1 582 8890 40000000 1000 0 0 0 1155 0 0 0 0 1157 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 icn$arrdsc
+S 1161 7 6 0 0 315 1 582 8901 10a00014 51 0 0 1164 0 0 0 1166 0 0 0 0 0 0 0 0 1163 0 0 1165 582 0 0 0 0 idx
+S 1162 6 4 0 0 6 1168 582 8905 40800006 0 0 180 0 0 0 0 0 0 1329 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 z_b_45
+S 1163 8 4 0 0 318 1170 582 8912 40822014 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 idx$sd
+S 1164 6 4 0 0 7 1165 582 8919 40802011 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 idx$p
+S 1165 6 4 0 0 7 1163 582 8925 40802010 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 idx$o
+S 1166 22 0 0 0 6 1 582 8931 40000000 1000 0 0 0 1161 0 0 0 0 1163 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 idx$arrdsc
+S 1167 7 6 0 0 321 1 582 8942 10a00014 51 0 0 1170 0 0 0 1172 0 0 0 0 0 0 0 0 1169 0 0 1171 582 0 0 0 0 igp
+S 1168 6 4 0 0 6 1174 582 8946 40800006 0 0 184 0 0 0 0 0 0 1329 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 z_b_46
+S 1169 8 4 0 0 324 1177 582 8953 40822014 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 igp$sd
+S 1170 6 4 0 0 7 1171 582 8960 40802011 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 igp$p
+S 1171 6 4 0 0 7 1169 582 8966 40802010 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 igp$o
+S 1172 22 0 0 0 6 1 582 8972 40000000 1000 0 0 0 1167 0 0 0 0 1169 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 igp$arrdsc
+S 1173 7 6 0 0 327 1 582 8983 10a00014 51 0 0 1177 0 0 0 1179 0 0 0 0 0 0 0 0 1176 0 0 1178 582 0 0 0 0 ikeep28
+S 1174 6 4 0 0 6 1175 582 8991 40800006 0 0 188 0 0 0 0 0 0 1329 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 z_b_47
+S 1175 6 4 0 0 6 1181 582 8998 40800006 0 0 192 0 0 0 0 0 0 1329 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 z_b_48
+S 1176 8 4 0 0 330 1184 582 9005 40822014 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ikeep28$sd
+S 1177 6 4 0 0 7 1178 582 9016 40802011 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ikeep28$p
+S 1178 6 4 0 0 7 1176 582 9026 40802010 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ikeep28$o
+S 1179 22 0 0 0 6 1 582 9036 40000000 1000 0 0 0 1173 0 0 0 0 1176 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ikeep28$arrdsc
+S 1180 7 6 0 0 333 1 582 9051 10a00014 51 0 0 1184 0 0 0 1186 0 0 0 0 0 0 0 0 1183 0 0 1185 582 0 0 0 0 iw28
+S 1181 6 4 0 0 6 1182 582 9056 40800006 0 0 196 0 0 0 0 0 0 1329 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 z_b_49
+S 1182 6 4 0 0 6 1188 582 9063 40800006 0 0 200 0 0 0 0 0 0 1329 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 z_b_50
+S 1183 8 4 0 0 336 1190 582 9070 40822014 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 iw28$sd
+S 1184 6 4 0 0 7 1185 582 9078 40802011 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 iw28$p
+S 1185 6 4 0 0 7 1183 582 9085 40802010 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 iw28$o
+S 1186 22 0 0 0 6 1 582 9092 40000000 1000 0 0 0 1180 0 0 0 0 1183 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 iw28$arrdsc
+S 1187 7 6 0 0 339 1 582 9104 10a00014 51 0 0 1190 0 0 0 1192 0 0 0 0 0 0 0 0 1189 0 0 1191 582 0 0 0 0 iwork
+S 1188 6 4 0 0 6 1194 582 9110 40800006 0 0 204 0 0 0 0 0 0 1329 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 z_b_51
+S 1189 8 4 0 0 342 1196 582 9117 40822014 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 iwork$sd
+S 1190 6 4 0 0 7 1191 582 9126 40802011 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 iwork$p
+S 1191 6 4 0 0 7 1189 582 9134 40802010 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 iwork$o
+S 1192 22 0 0 0 6 1 582 9142 40000000 1000 0 0 0 1187 0 0 0 0 1189 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 iwork$arrdsc
+S 1193 7 6 0 0 345 1 582 9155 10a00014 51 0 0 1196 0 0 0 1198 0 0 0 0 0 0 0 0 1195 0 0 1197 582 0 0 0 0 ja
+S 1194 6 4 0 0 6 1200 582 9158 40800006 0 0 208 0 0 0 0 0 0 1329 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 z_b_52
+S 1195 8 4 0 0 348 1202 582 9165 40822014 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ja$sd
+S 1196 6 4 0 0 7 1197 582 9171 40802011 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ja$p
+S 1197 6 4 0 0 7 1195 582 9176 40802010 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ja$o
+S 1198 22 0 0 0 6 1 582 9181 40000000 1000 0 0 0 1193 0 0 0 0 1195 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ja$arrdsc
+S 1199 7 6 0 0 351 1 582 9191 10a00014 51 0 0 1202 0 0 0 1204 0 0 0 0 0 0 0 0 1201 0 0 1203 582 0 0 0 0 jab
+S 1200 6 4 0 0 6 1206 582 9195 40800006 0 0 212 0 0 0 0 0 0 1329 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 z_b_53
+S 1201 8 4 0 0 354 1208 582 9202 40822014 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 jab$sd
+S 1202 6 4 0 0 7 1203 582 9209 40802011 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 jab$p
+S 1203 6 4 0 0 7 1201 582 9215 40802010 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 jab$o
+S 1204 22 0 0 0 6 1 582 9221 40000000 1000 0 0 0 1199 0 0 0 0 1201 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 jab$arrdsc
+S 1205 7 6 0 0 357 1 582 9232 10a00014 51 0 0 1208 0 0 0 1210 0 0 0 0 0 0 0 0 1207 0 0 1209 582 0 0 0 0 jan
+S 1206 6 4 0 0 6 1212 582 9236 40800006 0 0 216 0 0 0 0 0 0 1329 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 z_b_54
+S 1207 8 4 0 0 360 1214 582 9243 40822014 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 jan$sd
+S 1208 6 4 0 0 7 1209 582 9250 40802011 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 jan$p
+S 1209 6 4 0 0 7 1207 582 9256 40802010 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 jan$o
+S 1210 22 0 0 0 6 1 582 9262 40000000 1000 0 0 0 1205 0 0 0 0 1207 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 jan$arrdsc
+S 1211 7 6 0 0 363 1 582 9273 10a00014 51 0 0 1214 0 0 0 1216 0 0 0 0 0 0 0 0 1213 0 0 1215 582 0 0 0 0 jatemp
+S 1212 6 4 0 0 6 1218 582 9280 40800006 0 0 220 0 0 0 0 0 0 1329 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 z_b_55
+S 1213 8 4 0 0 366 1220 582 9287 40822014 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 jatemp$sd
+S 1214 6 4 0 0 7 1215 582 9297 40802011 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 jatemp$p
+S 1215 6 4 0 0 7 1213 582 9306 40802010 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 jatemp$o
+S 1216 22 0 0 0 6 1 582 9315 40000000 1000 0 0 0 1211 0 0 0 0 1213 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 jatemp$arrdsc
+S 1217 7 6 0 0 369 1 582 9329 10a00014 51 0 0 1220 0 0 0 1222 0 0 0 0 0 0 0 0 1219 0 0 1221 582 0 0 0 0 jgp
+S 1218 6 4 0 0 6 1224 582 9333 40800006 0 0 224 0 0 0 0 0 0 1329 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 z_b_56
+S 1219 8 4 0 0 372 1226 582 9340 40822014 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 jgp$sd
+S 1220 6 4 0 0 7 1221 582 9347 40802011 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 jgp$p
+S 1221 6 4 0 0 7 1219 582 9353 40802010 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 jgp$o
+S 1222 22 0 0 0 6 1 582 9359 40000000 1000 0 0 0 1217 0 0 0 0 1219 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 jgp$arrdsc
+S 1223 7 6 0 0 375 1 582 9370 10a00014 51 0 0 1226 0 0 0 1228 0 0 0 0 0 0 0 0 1225 0 0 1227 582 0 0 0 0 jroot
+S 1224 6 4 0 0 6 1230 582 9376 40800006 0 0 228 0 0 0 0 0 0 1329 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 z_b_57
+S 1225 8 4 0 0 378 1232 582 9383 40822014 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 jroot$sd
+S 1226 6 4 0 0 7 1227 582 9392 40802011 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 jroot$p
+S 1227 6 4 0 0 7 1225 582 9400 40802010 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 jroot$o
+S 1228 22 0 0 0 6 1 582 9408 40000000 1000 0 0 0 1223 0 0 0 0 1225 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 jroot$arrdsc
+S 1229 7 6 0 0 381 1 582 9421 10a00014 51 0 0 1232 0 0 0 1234 0 0 0 0 0 0 0 0 1231 0 0 1233 582 0 0 0 0 jvect
+S 1230 6 4 0 0 6 1236 582 9427 40800006 0 0 232 0 0 0 0 0 0 1329 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 z_b_58
+S 1231 8 4 0 0 384 1238 582 9434 40822014 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 jvect$sd
+S 1232 6 4 0 0 7 1233 582 9443 40802011 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 jvect$p
+S 1233 6 4 0 0 7 1231 582 9451 40802010 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 jvect$o
+S 1234 22 0 0 0 6 1 582 9459 40000000 1000 0 0 0 1229 0 0 0 0 1231 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 jvect$arrdsc
+S 1235 7 6 0 0 387 1 582 9472 10a00014 51 0 0 1238 0 0 0 1240 0 0 0 0 0 0 0 0 1237 0 0 1239 582 0 0 0 0 subds
+S 1236 6 4 0 0 6 1242 582 9478 40800006 0 0 236 0 0 0 0 0 0 1329 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 z_b_59
+S 1237 8 4 0 0 390 1244 582 9485 40822014 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 subds$sd
+S 1238 6 4 0 0 7 1239 582 9494 40802011 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 subds$p
+S 1239 6 4 0 0 7 1237 582 9502 40802010 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 subds$o
+S 1240 22 0 0 0 8 1 582 9510 40000000 1000 0 0 0 1235 0 0 0 0 1237 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 subds$arrdsc
+S 1241 7 6 0 0 393 1 582 9523 10a00014 51 0 0 1244 0 0 0 1246 0 0 0 0 0 0 0 0 1243 0 0 1245 582 0 0 0 0 supds
+S 1242 6 4 0 0 6 1 582 9529 40800006 0 0 240 0 0 0 0 0 0 1329 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 z_b_60
+S 1243 8 4 0 0 396 585 582 9536 40822014 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 supds$sd
+S 1244 6 4 0 0 7 1245 582 9545 40802011 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 supds$p
+S 1245 6 4 0 0 7 1243 582 9553 40802010 1020 0 0 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 supds$o
+S 1246 22 0 0 0 8 1 582 9561 40000000 1000 0 0 0 1241 0 0 0 0 1243 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 supds$arrdsc
+S 1247 7 4 0 4 399 1249 582 9574 800014 100 0 544 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 idisp
+S 1248 3 0 0 0 6 1 1 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6
+S 1249 7 4 0 4 402 1250 582 9580 800014 100 0 560 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 iuser
+S 1250 7 4 0 4 405 1251 582 9586 800014 100 0 688 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 lnpiv
+S 1251 7 4 0 4 408 1 582 9592 800014 100 0 736 0 0 0 0 0 0 1328 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 lpiv
+S 1252 7 4 0 4 411 1 582 9597 80001c 100 0 96 0 0 0 0 0 0 1332 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 mord
+S 1254 27 0 0 0 8 2034 582 9602 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 daxpy_f90
+S 1255 27 0 0 0 8 2044 582 9612 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 dcopy_f90
+S 1256 27 0 0 0 8 2053 582 9622 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ddot_f90
+S 1257 27 0 0 0 8 2006 582 9631 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 dgbfa_f90
+S 1258 27 0 0 0 8 2019 582 9641 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 dgbsl_f90
+S 1259 27 0 0 0 8 1982 582 9651 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 dgefa_f90
+S 1260 27 0 0 0 8 1993 582 9661 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 dgesl_f90
+S 1261 27 0 0 0 8 2063 582 9671 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 dscal_f90
+S 1262 27 0 0 0 6 2070 582 9681 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 idamax_f90
+S 1263 27 0 0 0 8 1918 582 9692 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 check_diag
+S 1264 27 0 0 0 8 1709 582 9703 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 dacopy
+S 1265 27 0 0 0 8 1740 582 9710 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 dewset
+S 1266 27 0 0 0 8 1814 582 9717 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 dgroup
+S 1267 27 0 0 0 8 2560 582 9724 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 dgroupds
+S 1268 27 0 0 0 8 1927 582 9733 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 dvcheck
+S 1269 27 0 0 0 8 1569 582 9741 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 dvhin
+S 1270 27 0 0 0 8 1603 582 9747 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 dvindy_bnds
+S 1271 27 0 0 0 8 1591 582 9759 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 dvindy_core
+S 1272 27 0 0 0 8 1684 582 9771 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 dvjac
+S 1273 27 0 0 0 8 1889 582 9777 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 dvjacs28
+S 1274 27 0 0 0 8 1651 582 9786 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 dvjust
+S 1275 27 0 0 0 8 1659 582 9793 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 dvnlsd
+S 1276 27 0 0 0 8 1857 582 9800 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 dvnlss28
+S 1277 27 0 0 0 8 1751 582 9809 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 dvnorm
+S 1278 27 0 0 0 8 1965 582 9816 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 dvnrdn
+S 1279 27 0 0 0 8 1958 582 9823 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 dvnrdp
+S 1280 27 0 0 0 8 1972 582 9830 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 dvnrds
+S 1281 27 0 0 0 8 1556 582 9837 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 dvode
+S 1282 27 0 0 0 8 1788 582 9843 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 dvpreps
+S 1283 27 0 0 0 8 1946 582 9851 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 dvroots
+S 1284 27 0 0 0 8 1649 582 9859 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 dvset
+S 1285 27 0 0 0 8 1724 582 9865 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 dvsol
+S 1286 27 0 0 0 8 1882 582 9871 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 dvsols28
+S 1287 27 0 0 0 8 1733 582 9880 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 dvsrco
+S 1288 27 0 0 0 8 1622 582 9887 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 dvstep
+S 1289 27 0 0 0 8 1371 582 9894 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 gdummy
+S 1290 27 0 0 0 6 1781 582 9901 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 iumach
+S 1291 27 0 0 0 6 1775 582 9908 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ixsav
+S 1292 27 0 0 0 6 2570 582 9914 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 jacspdb
+S 1293 27 0 0 0 6 1358 582 9922 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 jdummy
+S 1294 27 0 0 0 6 2077 582 9929 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ma28ad
+S 1295 27 0 0 0 6 2097 582 9936 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ma28bd
+S 1296 27 0 0 0 6 2139 582 9943 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ma28cd
+S 1297 27 0 0 0 6 2115 582 9950 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ma28dd
+S 1298 27 0 0 0 6 2153 582 9957 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ma28id
+S 1299 27 0 0 0 6 2176 582 9964 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ma30ad
+S 1300 27 0 0 0 6 2213 582 9971 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ma30bd
+S 1301 27 0 0 0 6 2229 582 9978 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ma30cd
+S 1302 27 0 0 0 6 2202 582 9985 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ma30dd
+S 1303 27 0 0 0 6 2261 582 9992 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 mc13e
+S 1304 27 0 0 0 6 2370 582 9998 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 mc19ad
+S 1305 27 0 0 0 6 2276 582 10005 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 mc20ad
+S 1306 27 0 0 0 6 2287 582 10012 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 mc20bd
+S 1307 27 0 0 0 6 2296 582 10019 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 mc21a
+S 1308 27 0 0 0 6 2311 582 10025 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 mc21b
+S 1309 27 0 0 0 6 2326 582 10031 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 mc22ad
+S 1310 27 0 0 0 6 2341 582 10038 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 mc23ad
+S 1311 27 0 0 0 6 2359 582 10045 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 mc24ad
+S 1312 27 0 0 0 8 1911 582 10052 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 set_icn
+S 1313 27 0 0 0 8 1758 582 10060 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 xerrdv
+S 1314 27 0 0 0 8 1769 582 10067 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 xsetf
+S 1315 27 0 0 0 8 1772 582 10073 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 xsetun
+S 1316 27 0 0 0 8 2413 582 10080 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 degr
+S 1317 27 0 0 0 6 2427 582 10085 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 ido
+S 1318 27 0 0 0 6 2449 582 10089 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 numsrt
+S 1319 27 0 0 0 8 2461 582 10096 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 seq
+S 1320 27 0 0 0 8 2477 582 10100 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 setr
+S 1321 27 0 0 0 8 2491 582 10105 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 slo
+S 1322 27 0 0 0 8 2512 582 10109 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 srtdat
+S 1323 27 0 0 0 8 2523 582 10116 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 fdjs
+S 1328 11 0 0 1 8 1 582 10148 40800010 801000 0 5776 0 0 599 1251 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 dvode_f90_m$4
+S 1329 11 0 0 0 8 1328 582 10162 40800000 801000 0 244 0 0 596 1242 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 dvode_f90_m$0
+S 1330 11 0 0 1 8 1329 582 10176 40800010 801000 0 776 0 0 666 1123 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 dvode_f90_m$6
+S 1331 11 0 0 0 8 1330 582 10190 40800010 801000 0 40 0 0 778 812 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 dvode_f90_m$14
+S 1332 11 0 0 1 8 1331 582 10205 40800010 801000 0 104 0 0 840 1252 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 dvode_f90_m$12
+S 1333 23 5 0 0 0 1344 582 5954 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 vode_f90
+S 1334 14 3 0 0 6 1 1333 10220 10000 3000 0 0 0 2 4 0 0 0 0 0 0 0 0 0 0 0 0 2065 0 0 0 0 0 0 f
+F 1334 4 1347 1348 1349 1346
+S 1335 1 3 1 0 6 1 1333 10222 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 neq
+S 1336 7 3 0 0 417 1 1333 10226 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 y
+S 1337 1 3 0 0 9 1 1333 10228 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 t
+S 1338 1 3 0 0 9 1 1333 10230 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 tout
+S 1339 1 3 1 0 6 1 1333 10235 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 itask
+S 1340 1 3 0 0 6 1 1333 10241 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 istate
+S 1341 1 3 0 0 99 1 1333 10248 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 opts
+S 1342 14 3 0 0 6 1 1333 10253 80010000 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 j_fcn
+S 1343 14 3 0 0 6 1 1333 10259 80010000 3000 0 0 0 7 5 0 0 0 0 0 0 0 0 0 0 0 0 2076 0 0 0 0 0 0 g_fcn
+F 1343 5 1352 1353 1354 1355 1351
+S 1344 14 5 0 0 0 1 1333 5954 100 400000 0 0 0 13 10 0 0 0 0 0 0 0 0 0 0 0 0 2041 0 582 0 0 0 0 vode_f90
+F 1344 10 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343
+S 1345 6 1 0 0 6 1 1333 10265 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_0_1
+S 1346 7 3 2 0 423 1 1334 10273 802204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ydot
+S 1347 6 3 1 0 6 1 1334 10222 802004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 neq
+S 1348 1 3 1 0 9 1 1334 10228 2004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 t
+S 1349 7 3 1 0 420 1 1334 10226 802204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 y
+S 1350 6 1 0 0 6 1 1334 10278 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_677
+S 1351 7 3 2 0 429 1 1343 10286 802204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 groot
+S 1352 6 3 1 0 6 1 1343 10222 802004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 neq
+S 1353 1 3 1 0 9 1 1343 10228 2004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 t
+S 1354 7 3 1 0 426 1 1343 10226 802204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 y
+S 1355 6 3 1 0 6 1 1343 6172 802004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ng
+S 1356 6 1 0 0 6 1 1343 10292 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_680
+S 1357 6 1 0 0 6 1 1343 10300 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_682
+S 1358 23 5 0 0 0 1366 582 9922 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 jdummy
+S 1359 1 3 0 0 6 1 1358 10222 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 neq
+S 1360 1 3 1 0 9 1 1358 10228 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 t
+S 1361 7 3 1 0 435 1 1358 10226 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 y
+S 1362 1 3 1 0 6 1 1358 10308 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ml
+S 1363 1 3 1 0 6 1 1358 10311 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 mu
+S 1364 7 3 0 0 432 1 1358 10314 800304 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 pd
+S 1365 6 3 1 0 6 1 1358 10317 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 nrowpd
+S 1366 14 5 0 0 0 1 1358 9922 310 400000 0 0 0 24 7 0 0 0 0 0 0 0 0 0 0 0 0 2205 0 582 0 0 0 0 jdummy
+F 1366 7 1359 1360 1361 1362 1363 1364 1365
+S 1367 6 1 0 0 6 1 1358 10300 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_682
+S 1368 6 1 0 0 6 1 1358 10265 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_0_1
+S 1369 6 1 0 0 6 1 1358 10324 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_685
+S 1370 6 1 0 0 6 1 1358 10332 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_1_1
+S 1371 23 5 0 0 0 1377 582 9894 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 gdummy
+S 1372 1 3 1 0 6 1 1371 10222 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 neq
+S 1373 1 3 1 0 9 1 1371 10228 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 t
+S 1374 7 3 1 0 441 1 1371 10226 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 y
+S 1375 7 3 2 0 438 1 1371 10340 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 gout
+S 1376 1 3 1 0 6 1 1371 6172 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ng
+S 1377 14 5 0 0 0 1 1371 9894 110 400000 0 0 0 32 5 0 0 0 0 0 0 0 0 0 0 0 0 2240 0 582 0 0 0 0 gdummy
+F 1377 5 1372 1373 1374 1376 1375
+S 1378 6 1 0 0 6 1 1371 10265 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_0_1
+S 1379 6 1 0 0 6 1 1371 10332 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_1_1
+S 1380 23 5 0 0 0 1384 582 10345 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 set_opts_2
+S 1381 1 3 1 0 9 1 1380 10356 80000004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 hmax
+S 1382 1 3 1 0 9 1 1380 6293 80000004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 hmin
+S 1383 1 3 1 0 6 1 1380 6848 80000004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 mxstep
+S 1384 14 5 0 0 0 1 1380 10345 0 400000 0 0 0 38 3 0 0 0 0 0 0 0 0 0 0 0 0 2273 0 582 0 0 0 0 set_opts_2
+F 1384 3 1381 1382 1383
+S 1385 23 5 0 0 8 1397 582 10361 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 set_normal_opts
+S 1386 1 3 1 0 16 1 1385 10377 80000004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 dense_j
+S 1387 1 3 1 0 16 1 1385 10385 80000004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 banded_j
+S 1388 1 3 1 0 16 1 1385 10394 80000004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 sparse_j
+S 1389 1 3 1 0 16 1 1385 10403 80000004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 user_supplied_jacobian
+S 1390 1 3 1 0 6 1 1385 10426 80000004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 lower_bandwidth
+S 1391 1 3 1 0 6 1 1385 10442 80000004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 upper_bandwidth
+S 1392 1 3 1 0 9 1 1385 10458 80000004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 relerr
+S 1393 1 3 1 0 9 1 1385 10465 80000004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 abserr
+S 1394 7 3 1 0 444 1 1385 10472 a0000004 10003000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 abserr_vector
+S 1395 1 3 1 0 6 1 1385 10486 80000004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 nevents
+S 1396 1 3 0 0 99 1 1385 10248 4 1003000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 opts
+S 1397 14 5 0 0 99 1 1385 10361 20000004 1400000 0 0 0 42 10 0 0 1396 0 0 0 0 0 0 0 0 0 2323 0 582 0 0 0 0 set_normal_opts
+F 1397 10 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395
+S 1398 6 1 0 0 6 1 1385 10265 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_0_1
+S 1399 6 1 0 0 6 1 1385 10494 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_2_1
+S 1400 6 1 0 0 6 1 1385 10502 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_3_1
+S 1401 6 1 0 0 6 1 1385 10510 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_694
+S 1402 23 5 0 0 8 1428 582 10518 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 set_intermediate_opts
+S 1403 1 3 1 0 16 1 1402 10377 80000004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 dense_j
+S 1404 1 3 1 0 16 1 1402 10385 80000004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 banded_j
+S 1405 1 3 1 0 16 1 1402 10394 80000004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 sparse_j
+S 1406 1 3 1 0 16 1 1402 10403 80000004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 user_supplied_jacobian
+S 1407 1 3 1 0 6 1 1402 10426 80000004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 lower_bandwidth
+S 1408 1 3 1 0 6 1 1402 10442 80000004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 upper_bandwidth
+S 1409 1 3 1 0 9 1 1402 10458 80000004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 relerr
+S 1410 1 3 1 0 9 1 1402 10465 80000004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 abserr
+S 1411 7 3 1 0 447 1 1402 10472 a0000004 10003000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 abserr_vector
+S 1412 1 3 1 0 9 1 1402 10540 80000004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 tcrit
+S 1413 1 3 1 0 9 1 1402 10546 80000004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 h0
+S 1414 1 3 1 0 9 1 1402 10356 80000004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 hmax
+S 1415 1 3 1 0 6 1 1402 10549 80000004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 nzswag
+S 1416 1 3 1 0 16 1 1402 10556 80000004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 user_supplied_sparsity
+S 1417 1 3 1 0 16 1 1402 10579 80000004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ma28_rps
+S 1418 1 3 1 0 6 1 1402 10486 80000004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 nevents
+S 1419 7 3 1 0 456 1 1402 10588 a0000004 10003000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 constrained
+S 1420 7 3 0 0 450 1 1402 10600 a0000004 10003000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 clower
+S 1421 7 3 0 0 453 1 1402 10607 a0000004 10003000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 cupper
+S 1422 1 3 1 0 16 1 1402 10614 80000004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 change_only_f77_options
+S 1423 1 3 0 0 99 1 1402 10248 4 1003000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 opts
+S 1424 1 3 1 0 9 1 1402 6293 80000004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 hmin
+S 1425 1 3 1 0 6 1 1402 6762 80000004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 maxord
+S 1426 1 3 1 0 6 1 1402 6848 80000004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 mxstep
+S 1427 1 3 1 0 6 1 1402 6841 80000004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 mxhnil
+S 1428 14 5 0 0 99 1 1402 10518 20000004 1400000 0 0 0 53 24 0 0 1423 0 0 0 0 0 0 0 0 0 2808 0 582 0 0 0 0 set_intermediate_opts
+F 1428 24 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1424 1425 1426 1427 1415 1416 1417 1418 1419 1420 1421 1422
+S 1429 6 1 0 0 6 1 1402 10265 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_0_1
+S 1430 6 1 0 0 6 1 1402 10494 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_2_1
+S 1431 6 1 0 0 6 1 1402 10502 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_3_1
+S 1432 6 1 0 0 6 1 1402 10638 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_698
+S 1433 6 1 0 0 6 1 1402 10646 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_4_1
+S 1434 6 1 0 0 6 1 1402 10654 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_6_1
+S 1435 6 1 0 0 6 1 1402 10662 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_7_1
+S 1436 6 1 0 0 6 1 1402 10670 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_705
+S 1437 6 1 0 0 6 1 1402 10678 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_8_1
+S 1438 6 1 0 0 6 1 1402 10686 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_10_1
+S 1439 6 1 0 0 6 1 1402 10695 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_11_1
+S 1440 6 1 0 0 6 1 1402 10704 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_712
+S 1441 6 1 0 0 6 1 1402 10712 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_12_1
+S 1442 6 1 0 0 6 1 1402 10721 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_14_1
+S 1443 6 1 0 0 6 1 1402 10730 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_15_1
+S 1444 6 1 0 0 6 1 1402 10739 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_719
+S 1445 23 5 0 0 8 1485 582 10747 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 set_opts
+S 1446 1 3 1 0 6 1 1445 10756 80000004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 method_flag
+S 1447 1 3 1 0 16 1 1445 10377 80000004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 dense_j
+S 1448 1 3 1 0 16 1 1445 10385 80000004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 banded_j
+S 1449 1 3 1 0 16 1 1445 10394 80000004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 sparse_j
+S 1450 1 3 1 0 16 1 1445 10403 80000004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 user_supplied_jacobian
+S 1451 1 3 1 0 16 1 1445 10768 80000004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 save_jacobian
+S 1452 1 3 1 0 16 1 1445 10782 80000004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 constant_jacobian
+S 1453 1 3 1 0 6 1 1445 10426 80000004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 lower_bandwidth
+S 1454 1 3 1 0 6 1 1445 10442 80000004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 upper_bandwidth
+S 1455 7 3 1 0 474 1 1445 10800 a0000004 10003000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 sub_diagonals
+S 1456 7 3 1 0 477 1 1445 10814 a0000004 10003000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 sup_diagonals
+S 1457 1 3 1 0 9 1 1445 10458 80000004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 relerr
+S 1458 7 3 1 0 462 1 1445 10828 a0000004 10003000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 relerr_vector
+S 1459 1 3 1 0 9 1 1445 10465 80000004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 abserr
+S 1460 7 3 1 0 459 1 1445 10472 a0000004 10003000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 abserr_vector
+S 1461 1 3 1 0 9 1 1445 10540 80000004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 tcrit
+S 1462 1 3 1 0 9 1 1445 10546 80000004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 h0
+S 1463 1 3 1 0 9 1 1445 10356 80000004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 hmax
+S 1464 1 3 1 0 16 1 1445 10842 80000004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ymagwarn
+S 1465 1 3 1 0 9 1 1445 10851 80000004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 upivot
+S 1466 1 3 1 0 6 1 1445 10549 80000004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 nzswag
+S 1467 1 3 1 0 16 1 1445 10556 80000004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 user_supplied_sparsity
+S 1468 1 3 1 0 6 1 1445 10486 80000004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 nevents
+S 1469 7 3 1 0 471 1 1445 10588 a0000004 10003000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 constrained
+S 1470 7 3 0 0 465 1 1445 10600 a0000004 10003000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 clower
+S 1471 7 3 0 0 468 1 1445 10607 a0000004 10003000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 cupper
+S 1472 1 3 1 0 6 1 1445 10858 80000004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ma28_elbow_room
+S 1473 1 3 1 0 16 1 1445 10874 80000004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 mc19_scaling
+S 1474 1 3 1 0 16 1 1445 10887 80000004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ma28_messages
+S 1475 1 3 1 0 9 1 1445 10901 80000004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ma28_eps
+S 1476 1 3 1 0 16 1 1445 10579 80000004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ma28_rps
+S 1477 1 3 1 0 16 1 1445 10614 80000004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 change_only_f77_options
+S 1478 1 3 1 0 16 1 1445 10910 80000004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 jacobian_by_jacsp
+S 1479 1 3 0 0 99 1 1445 10248 4 1003000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 opts
+S 1480 1 3 1 0 9 1 1445 6293 80000004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 hmin
+S 1481 1 3 1 0 6 1 1445 6762 80000004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 maxord
+S 1482 1 3 1 0 6 1 1445 6848 80000004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 mxstep
+S 1483 1 3 1 0 6 1 1445 6841 80000004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 mxhnil
+S 1484 1 3 1 0 9 1 1445 6358 80000004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 seth
+S 1485 14 5 0 0 99 1 1445 10747 20000004 1400000 0 0 0 78 38 0 0 1479 0 0 0 0 0 0 0 0 0 3779 0 582 0 0 0 0 set_opts
+F 1485 38 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1480 1481 1482 1483 1464 1484 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478
+S 1486 6 1 0 0 6 1 1445 10265 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_0_1
+S 1487 6 1 0 0 6 1 1445 10494 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_2_1
+S 1488 6 1 0 0 6 1 1445 10502 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_3_1
+S 1489 6 1 0 0 6 1 1445 10928 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_714
+S 1490 6 1 0 0 6 1 1445 10646 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_4_1
+S 1491 6 1 0 0 6 1 1445 10654 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_6_1
+S 1492 6 1 0 0 6 1 1445 10662 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_7_1
+S 1493 6 1 0 0 6 1 1445 10936 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_721
+S 1494 6 1 0 0 6 1 1445 10678 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_8_1
+S 1495 6 1 0 0 6 1 1445 10686 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_10_1
+S 1496 6 1 0 0 6 1 1445 10695 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_11_1
+S 1497 6 1 0 0 6 1 1445 10944 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_728
+S 1498 6 1 0 0 6 1 1445 10712 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_12_1
+S 1499 6 1 0 0 6 1 1445 10721 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_14_1
+S 1500 6 1 0 0 6 1 1445 10730 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_15_1
+S 1501 6 1 0 0 6 1 1445 10952 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_735
+S 1502 6 1 0 0 6 1 1445 10960 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_16_1
+S 1503 6 1 0 0 6 1 1445 10969 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_18_1
+S 1504 6 1 0 0 6 1 1445 10978 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_19_1
+S 1505 6 1 0 0 6 1 1445 10987 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_742
+S 1506 6 1 0 0 6 1 1445 10995 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_20_1
+S 1507 6 1 0 0 6 1 1445 11004 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_22_1
+S 1508 6 1 0 0 6 1 1445 11013 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_23_1
+S 1509 6 1 0 0 6 1 1445 11022 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_749
+S 1510 6 1 0 0 6 1 1445 11030 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_24_1
+S 1511 6 1 0 0 6 1 1445 11039 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_26_1
+S 1512 6 1 0 0 6 1 1445 11048 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_27_1
+S 1513 6 1 0 0 6 1 1445 11057 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_756
+S 1514 23 5 0 0 0 1519 582 5963 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 get_stats
+S 1515 7 3 0 0 480 1 1514 11065 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 rstats
+S 1516 7 3 0 0 483 1 1514 11072 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 istats
+S 1517 1 3 1 0 6 1 1514 11079 80000004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 numevents
+S 1518 7 3 0 0 486 1 1514 11089 a0000004 10003000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 jroots
+S 1519 14 5 0 0 0 1 1514 5963 20000000 400000 0 0 0 117 4 0 0 0 0 0 0 0 0 0 0 0 0 5185 0 582 0 0 0 0 get_stats
+F 1519 4 1515 1516 1517 1518
+S 1520 3 0 0 0 6 1 1 0 0 0 0 0 0 0 0 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6
+S 1521 6 1 0 0 6 1 1514 10265 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_0_1
+S 1522 6 1 0 0 6 1 1514 10494 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_2_1
+S 1523 6 1 0 0 6 1 1514 10502 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_3_1
+S 1524 6 1 0 0 6 1 1514 11096 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_743
+S 1525 23 5 0 0 0 1530 582 6004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 usersets_iaja
+S 1526 7 3 1 0 489 1 1525 11104 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 iauser
+S 1527 6 3 1 0 6 1 1525 11111 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 niauser
+S 1528 7 3 1 0 492 1 1525 11119 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 jauser
+S 1529 6 3 1 0 6 1 1525 11126 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 njauser
+S 1530 14 5 0 0 0 1 1525 6004 200 400000 0 0 0 122 4 0 0 0 0 0 0 0 0 0 0 0 0 5330 0 582 0 0 0 0 usersets_iaja
+F 1530 4 1526 1527 1528 1529
+S 1531 6 1 0 0 6 1 1525 10987 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_742
+S 1532 6 1 0 0 6 1 1525 11134 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_744
+S 1533 23 5 0 0 0 1545 582 5995 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 set_iaja
+S 1534 14 3 0 0 8 1 1533 11142 10000 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 dfn
+S 1535 6 3 1 0 6 1 1533 10222 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 neq
+S 1536 1 3 1 0 9 1 1533 10228 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 t
+S 1537 7 3 0 0 498 1 1533 10226 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 y
+S 1538 1 3 1 0 9 1 1533 11146 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 fmin
+S 1539 1 3 1 0 6 1 1533 11151 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 nturb
+S 1540 7 3 0 0 495 1 1533 11157 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 dturb
+S 1541 7 3 1 0 501 1 1533 11104 a0000004 10003000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 iauser
+S 1542 1 3 1 0 6 1 1533 11111 80000004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 niauser
+S 1543 7 3 1 0 504 1 1533 11119 a0000004 10003000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 jauser
+S 1544 1 3 1 0 6 1 1533 11126 80000004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 njauser
+S 1545 14 5 0 0 0 1 1533 5995 20000300 400000 0 0 0 127 11 0 0 0 0 0 0 0 0 0 0 0 0 5404 0 582 0 0 0 0 set_iaja
+F 1545 11 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544
+S 1546 6 1 0 0 6 1 1533 10265 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_0_1
+S 1547 6 1 0 0 6 1 1533 11163 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_747
+S 1548 6 1 0 0 6 1 1533 10332 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_1_1
+S 1549 6 1 0 0 6 1 1533 10502 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_3_1
+S 1550 6 1 0 0 6 1 1533 10646 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_4_1
+S 1551 6 1 0 0 6 1 1533 11171 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_754
+S 1552 6 1 0 0 6 1 1533 11179 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_5_1
+S 1553 6 1 0 0 6 1 1533 10662 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_7_1
+S 1554 6 1 0 0 6 1 1533 10678 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_8_1
+S 1555 6 1 0 0 6 1 1533 11187 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_761
+S 1556 23 5 0 0 0 1567 582 9837 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 dvode
+S 1557 14 3 0 0 8 1 1556 10220 10000 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 f
+S 1558 1 3 1 0 6 1 1556 10222 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 neq
+S 1559 7 3 0 0 507 1 1556 10226 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 y
+S 1560 1 3 0 0 9 1 1556 10228 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 t
+S 1561 1 3 0 0 9 1 1556 10230 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 tout
+S 1562 1 3 1 0 6 1 1556 10235 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 itask
+S 1563 1 3 0 0 6 1 1556 10241 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 istate
+S 1564 1 3 0 0 99 1 1556 10248 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 opts
+S 1565 14 3 0 0 6 1 1556 11195 10000 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 jac
+S 1566 14 3 0 0 8 1 1556 11199 10000 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 gfun
+S 1567 14 5 0 0 0 1 1556 9837 110 400000 0 0 0 139 10 0 0 0 0 0 0 0 0 0 0 0 0 5611 0 582 0 0 0 0 dvode
+F 1567 10 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566
+S 1568 6 1 0 0 6 1 1556 10265 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_0_1
+S 1569 23 5 0 0 0 1584 582 9741 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 dvhin
+S 1570 1 3 1 0 9 1 1569 11204 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 t0
+S 1571 7 3 1 0 516 1 1569 11207 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 y0
+S 1572 7 3 0 0 525 1 1569 10273 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ydot
+S 1573 14 3 0 0 8 1 1569 10220 10000 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 f
+S 1574 1 3 1 0 9 1 1569 10230 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 tout
+S 1575 7 3 0 0 522 1 1569 10226 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 y
+S 1576 7 3 0 0 519 1 1569 11210 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 temp
+S 1577 1 3 0 0 9 1 1569 10546 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 h0
+S 1578 1 3 0 0 6 1 1569 11215 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 niter
+S 1579 1 3 0 0 6 1 1569 11221 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ier
+S 1580 1 3 1 0 6 1 1569 6855 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 n
+S 1581 7 3 1 0 513 1 1569 7529 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ewt
+S 1582 1 3 1 0 6 1 1569 6162 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 itol
+S 1583 7 3 1 0 510 1 1569 6058 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 atol
+S 1584 14 5 0 0 0 1 1569 9741 110 400000 0 0 0 150 14 0 0 0 0 0 0 0 0 0 0 0 0 6725 0 582 0 0 0 0 dvhin
+F 1584 14 1580 1570 1571 1572 1573 1574 1581 1582 1583 1575 1576 1577 1578 1579
+S 1585 6 1 0 0 6 1 1569 10265 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_0_1
+S 1586 6 1 0 0 6 1 1569 10332 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_1_1
+S 1587 6 1 0 0 6 1 1569 10494 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_2_1
+S 1588 6 1 0 0 6 1 1569 10502 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_3_1
+S 1589 6 1 0 0 6 1 1569 10646 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_4_1
+S 1590 6 1 0 0 6 1 1569 11179 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_5_1
+S 1591 23 5 0 0 0 1598 582 9759 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 dvindy_core
+S 1592 1 3 1 0 9 1 1591 10228 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 t
+S 1593 1 3 1 0 6 1 1591 11225 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 k
+S 1594 7 3 0 0 531 1 1591 11227 800304 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 yh
+S 1595 6 3 1 0 6 1 1591 11230 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ldyh
+S 1596 7 3 0 0 528 1 1591 11235 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 dky
+S 1597 1 3 0 0 6 1 1591 11239 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 iflag
+S 1598 14 5 0 0 0 1 1591 9759 310 400000 0 0 0 165 6 0 0 0 0 0 0 0 0 0 0 0 0 6858 0 582 0 0 0 0 dvindy_core
+F 1598 6 1592 1593 1594 1595 1596 1597
+S 1599 6 1 0 0 6 1 1591 10265 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_0_1
+S 1600 6 1 0 0 6 1 1591 11245 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_765
+S 1601 6 1 0 0 6 1 1591 10332 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_1_1
+S 1602 6 1 0 0 6 1 1591 11253 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_768
+S 1603 23 5 0 0 0 1610 582 9747 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 dvindy_bnds
+S 1604 1 3 1 0 9 1 1603 10228 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 t
+S 1605 1 3 1 0 6 1 1603 11225 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 k
+S 1606 7 3 0 0 537 1 1603 11227 800304 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 yh
+S 1607 6 3 1 0 6 1 1603 11230 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ldyh
+S 1608 7 3 0 0 534 1 1603 11235 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 dky
+S 1609 1 3 0 0 6 1 1603 11239 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 iflag
+S 1610 14 5 0 0 0 1 1603 9747 310 400000 0 0 0 172 6 0 0 0 0 0 0 0 0 0 0 0 0 6949 0 582 0 0 0 0 dvindy_bnds
+F 1610 6 1604 1605 1606 1607 1608 1609
+S 1611 6 1 0 0 6 1 1603 10265 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_0_1
+S 1612 6 1 0 0 6 1 1603 11261 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_770
+S 1613 6 1 0 0 6 1 1603 10332 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_1_1
+S 1614 6 1 0 0 6 1 1603 11269 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_773
+S 1615 23 5 0 0 0 1620 582 5973 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 dvindy
+S 1616 1 3 1 0 9 1 1615 10228 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 t
+S 1617 1 3 1 0 6 1 1615 11225 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 k
+S 1618 7 3 0 0 540 1 1615 11235 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 dky
+S 1619 1 3 0 0 6 1 1615 11239 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 iflag
+S 1620 14 5 0 0 0 1 1615 5973 100 400000 0 0 0 179 4 0 0 0 0 0 0 0 0 0 0 0 0 7063 0 582 0 0 0 0 dvindy
+F 1620 4 1616 1617 1618 1619
+S 1621 6 1 0 0 6 1 1615 10265 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_0_1
+S 1622 23 5 0 0 0 1637 582 9887 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 dvstep
+S 1623 7 3 0 0 555 1 1622 10226 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 y
+S 1624 7 3 0 0 558 1 1622 11227 800304 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 yh
+S 1625 6 3 1 0 6 1 1622 11230 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ldyh
+S 1626 7 3 0 0 561 1 1622 11277 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 yh1
+S 1627 7 3 0 0 567 1 1622 11281 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 iwm
+S 1628 14 3 0 0 8 1 1622 10220 10000 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 f
+S 1629 14 3 0 0 6 1 1622 11195 10000 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 jac
+S 1630 14 3 0 0 8 1 1622 11285 10000 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 vnls
+S 1631 7 3 0 0 546 1 1622 7529 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ewt
+S 1632 7 3 0 0 549 1 1622 8081 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 savf
+S 1633 7 3 0 0 543 1 1622 7422 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 acor
+S 1634 7 3 0 0 552 1 1622 8163 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 wm
+S 1635 7 3 1 0 564 1 1622 6058 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 atol
+S 1636 1 3 1 0 6 1 1622 6162 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 itol
+S 1637 14 5 0 0 0 1 1622 9887 310 400000 0 0 0 184 14 0 0 0 0 0 0 0 0 0 0 0 0 7137 0 582 0 0 0 0 dvstep
+F 1637 14 1623 1624 1625 1626 1631 1632 1633 1634 1627 1628 1629 1630 1635 1636
+S 1638 6 1 0 0 6 1 1622 10265 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_0_1
+S 1639 6 1 0 0 6 1 1622 10332 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_1_1
+S 1640 6 1 0 0 6 1 1622 10494 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_2_1
+S 1641 6 1 0 0 6 1 1622 10502 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_3_1
+S 1642 6 1 0 0 6 1 1622 10646 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_4_1
+S 1643 6 1 0 0 6 1 1622 11290 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_780
+S 1644 6 1 0 0 6 1 1622 11179 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_5_1
+S 1645 6 1 0 0 6 1 1622 11298 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_783
+S 1646 6 1 0 0 6 1 1622 10654 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_6_1
+S 1647 6 1 0 0 6 1 1622 10662 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_7_1
+S 1648 6 1 0 0 6 1 1622 10678 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_8_1
+S 1649 23 5 0 0 0 1650 582 9859 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 dvset
+S 1650 14 5 0 0 0 1 1649 9859 10 400000 0 0 0 199 0 0 0 0 0 0 0 0 0 0 0 0 0 7573 0 582 0 0 0 0 dvset
+F 1650 0
+S 1651 23 5 0 0 0 1655 582 9786 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 dvjust
+S 1652 7 3 0 0 570 1 1651 11227 800304 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 yh
+S 1653 6 3 1 0 6 1 1651 11230 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ldyh
+S 1654 1 3 1 0 6 1 1651 11306 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 iord
+S 1655 14 5 0 0 0 1 1651 9786 310 400000 0 0 0 200 3 0 0 0 0 0 0 0 0 0 0 0 0 7747 0 582 0 0 0 0 dvjust
+F 1655 3 1652 1653 1654
+S 1656 6 1 0 0 6 1 1651 11311 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_787
+S 1657 6 1 0 0 6 1 1651 10265 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_0_1
+S 1658 6 1 0 0 6 1 1651 11319 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_790
+S 1659 23 5 0 0 0 1673 582 9793 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 dvnlsd
+S 1660 7 3 0 0 585 1 1659 10226 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 y
+S 1661 7 3 0 0 588 1 1659 11227 800304 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 yh
+S 1662 6 3 1 0 6 1 1659 11230 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ldyh
+S 1663 7 3 0 0 594 1 1659 11281 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 iwm
+S 1664 14 3 0 0 8 1 1659 10220 10000 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 f
+S 1665 14 3 0 0 6 1 1659 11195 10000 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 jac
+S 1666 1 3 0 0 6 1 1659 11327 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 nflag
+S 1667 7 3 0 0 579 1 1659 8081 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 savf
+S 1668 7 3 0 0 576 1 1659 7529 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ewt
+S 1669 7 3 0 0 573 1 1659 7422 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 acor
+S 1670 7 3 0 0 582 1 1659 8163 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 wm
+S 1671 7 3 1 0 591 1 1659 6058 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 atol
+S 1672 1 3 1 0 6 1 1659 6162 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 itol
+S 1673 14 5 0 0 0 1 1659 9793 310 400000 0 0 0 204 13 0 0 0 0 0 0 0 0 0 0 0 0 7883 0 582 0 0 0 0 dvnlsd
+F 1673 13 1660 1661 1662 1667 1668 1669 1663 1670 1664 1665 1666 1671 1672
+S 1674 6 1 0 0 6 1 1659 10265 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_0_1
+S 1675 6 1 0 0 6 1 1659 10332 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_1_1
+S 1676 6 1 0 0 6 1 1659 10494 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_2_1
+S 1677 6 1 0 0 6 1 1659 10502 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_3_1
+S 1678 6 1 0 0 6 1 1659 10646 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_4_1
+S 1679 6 1 0 0 6 1 1659 11333 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_796
+S 1680 6 1 0 0 6 1 1659 11179 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_5_1
+S 1681 6 1 0 0 6 1 1659 11341 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_799
+S 1682 6 1 0 0 6 1 1659 10654 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_6_1
+S 1683 6 1 0 0 6 1 1659 10662 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_7_1
+S 1684 23 5 0 0 0 1698 582 9771 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 dvjac
+S 1685 7 3 0 0 609 1 1684 10226 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 y
+S 1686 7 3 0 0 612 1 1684 11227 800304 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 yh
+S 1687 6 3 1 0 6 1 1684 11230 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ldyh
+S 1688 7 3 0 0 600 1 1684 11349 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ftem
+S 1689 7 3 0 0 618 1 1684 11281 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 iwm
+S 1690 14 3 0 0 8 1 1684 10220 10000 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 f
+S 1691 14 3 0 0 6 1 1684 11195 10000 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 jac
+S 1692 1 3 0 0 6 1 1684 11354 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ierpj
+S 1693 7 3 0 0 597 1 1684 7529 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ewt
+S 1694 7 3 0 0 603 1 1684 8081 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 savf
+S 1695 7 3 0 0 606 1 1684 8163 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 wm
+S 1696 7 3 1 0 615 1 1684 6058 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 atol
+S 1697 1 3 1 0 6 1 1684 6162 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 itol
+S 1698 14 5 0 0 0 1 1684 9771 310 400000 0 0 0 218 13 0 0 0 0 0 0 0 0 0 0 0 0 8136 0 582 0 0 0 0 dvjac
+F 1698 13 1685 1686 1687 1693 1688 1694 1695 1689 1690 1691 1692 1696 1697
+S 1699 6 1 0 0 6 1 1684 10265 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_0_1
+S 1700 6 1 0 0 6 1 1684 10332 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_1_1
+S 1701 6 1 0 0 6 1 1684 10494 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_2_1
+S 1702 6 1 0 0 6 1 1684 10502 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_3_1
+S 1703 6 1 0 0 6 1 1684 10646 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_4_1
+S 1704 6 1 0 0 6 1 1684 11360 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_807
+S 1705 6 1 0 0 6 1 1684 11179 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_5_1
+S 1706 6 1 0 0 6 1 1684 11368 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_810
+S 1707 6 1 0 0 6 1 1684 10654 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_6_1
+S 1708 6 1 0 0 6 1 1684 10662 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_7_1
+S 1709 23 5 0 0 0 1716 582 9703 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 dacopy
+S 1710 1 3 1 0 6 1 1709 11376 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 nrow
+S 1711 6 3 1 0 6 1 1709 11381 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ncol
+S 1712 7 3 1 0 621 1 1709 11386 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 a
+S 1713 6 3 1 0 6 1 1709 11388 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 nrowa
+S 1714 7 3 0 0 624 1 1709 11394 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 b
+S 1715 6 3 1 0 6 1 1709 11396 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 nrowb
+S 1716 14 5 0 0 0 1 1709 9703 210 400000 0 0 0 232 6 0 0 0 0 0 0 0 0 0 0 0 0 8626 0 582 0 0 0 0 dacopy
+F 1716 6 1710 1711 1712 1713 1714 1715
+S 1717 6 1 0 0 6 1 1709 11402 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_813
+S 1718 6 1 0 0 6 1 1709 11410 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_814
+S 1719 6 1 0 0 6 1 1709 11418 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_817
+S 1720 6 1 0 0 6 1 1709 11426 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_819
+S 1721 6 1 0 0 6 1 1709 11434 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_821
+S 1722 6 1 0 0 6 1 1709 11442 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_823
+S 1723 6 1 0 0 6 1 1709 11450 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_825
+S 1724 23 5 0 0 0 1729 582 9865 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 dvsol
+S 1725 7 3 0 0 633 1 1724 11281 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 iwm
+S 1726 7 3 0 0 630 1 1724 11458 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 x
+S 1727 1 3 0 0 6 1 1724 11460 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 iersl
+S 1728 7 3 0 0 627 1 1724 8163 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 wm
+S 1729 14 5 0 0 0 1 1724 9865 110 400000 0 0 0 239 4 0 0 0 0 0 0 0 0 0 0 0 0 8652 0 582 0 0 0 0 dvsol
+F 1729 4 1728 1725 1726 1727
+S 1730 6 1 0 0 6 1 1724 10265 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_0_1
+S 1731 6 1 0 0 6 1 1724 10332 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_1_1
+S 1732 6 1 0 0 6 1 1724 10494 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_2_1
+S 1733 23 5 0 0 0 1737 582 9880 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 dvsrco
+S 1734 7 3 0 0 636 1 1733 11466 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 rsav
+S 1735 7 3 0 0 639 1 1733 11471 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 isav
+S 1736 1 3 1 0 6 1 1733 11476 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 job
+S 1737 14 5 0 0 0 1 1733 9880 110 400000 0 0 0 244 3 0 0 0 0 0 0 0 0 0 0 0 0 8776 0 582 0 0 0 0 dvsrco
+F 1737 3 1734 1735 1736
+S 1738 6 1 0 0 6 1 1733 10265 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_0_1
+S 1739 6 1 0 0 6 1 1733 10332 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_1_1
+S 1740 23 5 0 0 0 1747 582 9710 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 dewset
+S 1741 7 3 1 0 648 1 1740 11480 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ycur
+S 1742 6 3 1 0 6 1 1740 6855 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 n
+S 1743 1 3 1 0 6 1 1740 6162 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 itol
+S 1744 7 3 1 0 645 1 1740 6097 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 rtol
+S 1745 7 3 1 0 642 1 1740 6058 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 atol
+S 1746 7 3 2 0 651 1 1740 7529 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ewt
+S 1747 14 5 0 0 0 1 1740 9710 310 400000 0 0 0 248 6 0 0 0 0 0 0 0 0 0 0 0 0 8935 0 582 0 0 0 0 dewset
+F 1747 6 1742 1743 1744 1745 1741 1746
+S 1748 6 1 0 0 6 1 1740 10265 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_0_1
+S 1749 6 1 0 0 6 1 1740 10332 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_1_1
+S 1750 6 1 0 0 6 1 1740 11485 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_830
+S 1751 23 5 0 0 8 1755 582 9809 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 dvnorm
+S 1752 7 3 1 0 654 1 1751 11493 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 v
+S 1753 7 3 1 0 657 1 1751 11495 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 w
+S 1754 6 3 1 0 6 1 1751 6855 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 n
+S 1755 14 5 0 0 9 1 1751 9809 214 400000 0 0 0 255 3 0 0 1756 0 0 0 0 0 0 0 0 0 8975 0 582 0 0 0 0 dvnorm
+F 1755 3 1754 1752 1753
+S 1756 1 3 0 0 9 1 1751 9809 4 1003000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 dvnorm
+S 1757 6 1 0 0 6 1 1751 11497 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_832
+S 1758 23 5 0 0 0 1768 582 10060 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xerrdv
+S 1759 1 3 0 0 28 1 1758 11505 4 43000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 msg
+S 1760 1 3 0 0 6 1 1758 11509 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 nerr
+S 1761 1 3 0 0 6 1 1758 11514 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 level
+S 1762 1 3 0 0 6 1 1758 11520 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ni
+S 1763 1 3 0 0 6 1 1758 11523 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 i1
+S 1764 1 3 0 0 6 1 1758 11526 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 i2
+S 1765 1 3 0 0 6 1 1758 11529 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 nr
+S 1766 1 3 0 0 9 1 1758 11532 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 r1
+S 1767 1 3 0 0 9 1 1758 11535 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 r2
+S 1768 14 5 0 0 0 1 1758 10060 10 400000 0 0 0 259 9 0 0 0 0 0 0 0 0 0 0 0 0 9015 0 582 0 0 0 0 xerrdv
+F 1768 9 1759 1760 1761 1762 1763 1764 1765 1766 1767
+S 1769 23 5 0 0 0 1771 582 10067 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xsetf
+S 1770 1 3 1 0 6 1 1769 11538 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 mflag
+S 1771 14 5 0 0 0 1 1769 10067 10 400000 0 0 0 269 1 0 0 0 0 0 0 0 0 0 0 0 0 9092 0 582 0 0 0 0 xsetf
+F 1771 1 1770
+S 1772 23 5 0 0 0 1774 582 10073 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xsetun
+S 1773 1 3 0 0 6 1 1772 11544 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 lun
+S 1774 14 5 0 0 0 1 1772 10073 10 400000 0 0 0 271 1 0 0 0 0 0 0 0 0 0 0 0 0 9114 0 582 0 0 0 0 xsetun
+F 1774 1 1773
+S 1775 23 5 0 0 6 1779 582 9908 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ixsav
+S 1776 1 3 1 0 6 1 1775 11548 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ipar
+S 1777 1 3 1 0 6 1 1775 11553 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ivalue
+S 1778 1 3 1 0 16 1 1775 11560 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 iset
+S 1779 14 5 0 0 6 1 1775 9908 14 400000 0 0 0 273 3 0 0 1780 0 0 0 0 0 0 0 0 0 9138 0 582 0 0 0 0 ixsav
+F 1779 3 1776 1777 1778
+S 1780 1 3 0 0 6 1 1775 9908 4 1003000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ixsav
+S 1781 23 5 0 0 6 1782 582 9901 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 iumach
+S 1782 14 5 0 0 6 1 1781 9901 14 400000 0 0 0 277 0 0 0 1783 0 0 0 0 0 0 0 0 0 9196 0 582 0 0 0 0 iumach
+F 1782 0
+S 1783 1 3 0 0 6 1 1781 9901 4 1003000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 iumach
+S 1784 23 5 0 0 0 1787 582 6018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 check_stat
+S 1785 1 3 1 0 6 1 1784 11221 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ier
+S 1786 1 3 1 0 6 1 1784 11565 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 called_from_where
+S 1787 14 5 0 0 0 1 1784 6018 0 400000 0 0 0 278 2 0 0 0 0 0 0 0 0 0 0 0 0 9220 0 582 0 0 0 0 check_stat
+F 1787 2 1785 1786
+S 1788 23 5 0 0 0 1797 582 9843 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 dvpreps
+S 1789 1 3 1 0 6 1 1788 10222 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 neq
+S 1790 7 3 0 0 663 1 1788 10226 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 y
+S 1791 7 3 1 0 669 1 1788 11227 800304 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 yh
+S 1792 6 3 1 0 6 1 1788 11230 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ldyh
+S 1793 14 3 0 0 8 1 1788 10220 10000 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 f
+S 1794 14 3 0 0 6 1 1788 11195 10000 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 jac
+S 1795 7 3 0 0 666 1 1788 8081 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 savf
+S 1796 7 3 0 0 660 1 1788 7529 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ewt
+S 1797 14 5 0 0 0 1 1788 9843 310 400000 0 0 0 281 8 0 0 0 0 0 0 0 0 0 0 0 0 9248 0 582 0 0 0 0 dvpreps
+F 1797 8 1789 1790 1791 1792 1795 1796 1793 1794
+S 1798 6 1 0 0 6 1 1788 10265 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_0_1
+S 1799 6 1 0 0 6 1 1788 10332 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_1_1
+S 1800 6 1 0 0 6 1 1788 10494 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_2_1
+S 1801 6 1 0 0 6 1 1788 11583 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_837
+S 1802 6 1 0 0 6 1 1788 10502 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_3_1
+S 1803 6 1 0 0 6 1 1788 11591 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_840
+S 1804 23 5 0 0 0 1810 582 11599 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 dvrenew
+S 1805 1 3 1 0 6 1 1804 10222 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 neq
+S 1806 7 3 0 0 678 1 1804 10226 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 y
+S 1807 14 3 0 0 8 1 1804 10220 10000 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 f
+S 1808 7 3 0 0 675 1 1804 8081 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 savf
+S 1809 7 3 0 0 672 1 1804 7529 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ewt
+S 1810 14 5 0 0 0 1 1804 11599 100 400000 0 0 0 290 5 0 0 0 0 0 0 0 0 0 0 0 0 9554 0 582 0 0 0 0 dvrenew
+F 1810 5 1805 1806 1808 1809 1807
+S 1811 6 1 0 0 6 1 1804 10265 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_0_1
+S 1812 6 1 0 0 6 1 1804 10332 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_1_1
+S 1813 6 1 0 0 6 1 1804 10494 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_2_1
+S 1814 23 5 0 0 0 1825 582 9717 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 dgroup
+S 1815 1 3 0 0 6 1 1814 11607 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ngrp
+S 1816 7 3 0 0 690 1 1814 11612 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 incl
+S 1817 7 3 0 0 693 1 1814 11617 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 jdone
+S 1818 1 3 0 0 6 1 1814 11221 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ier
+S 1819 1 3 1 0 6 1 1814 6855 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 n
+S 1820 7 3 1 0 681 1 1814 8742 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ia
+S 1821 7 3 1 0 684 1 1814 9155 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ja
+S 1822 1 3 1 0 6 1 1814 6751 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 maxg
+S 1823 7 3 0 0 687 1 1814 8942 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 igp
+S 1824 7 3 0 0 696 1 1814 9329 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 jgp
+S 1825 14 5 0 0 0 1 1814 9717 110 400000 0 0 0 296 10 0 0 0 0 0 0 0 0 0 0 0 0 9751 0 582 0 0 0 0 dgroup
+F 1825 10 1819 1820 1821 1822 1815 1823 1824 1816 1817 1818
+S 1826 6 1 0 0 6 1 1814 10265 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_0_1
+S 1827 6 1 0 0 6 1 1814 10332 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_1_1
+S 1828 6 1 0 0 6 1 1814 10494 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_2_1
+S 1829 6 1 0 0 6 1 1814 10502 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_3_1
+S 1830 6 1 0 0 6 1 1814 10646 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_4_1
+S 1831 6 1 0 0 6 1 1814 11179 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_5_1
+S 1832 23 5 0 0 0 1839 582 11623 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 bgroup
+S 1833 7 3 0 0 702 1 1832 11630 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 bja
+S 1834 7 3 0 0 699 1 1832 11634 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 bincl
+S 1835 7 3 0 0 705 1 1832 11640 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 bdone
+S 1836 1 3 1 0 6 1 1832 10308 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ml
+S 1837 1 3 1 0 6 1 1832 10311 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 mu
+S 1838 1 3 1 0 6 1 1832 6855 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 n
+S 1839 14 5 0 0 0 1 1832 11623 100 400000 0 0 0 307 6 0 0 0 0 0 0 0 0 0 0 0 0 9826 0 582 0 0 0 0 bgroup
+F 1839 6 1838 1833 1834 1835 1836 1837
+S 1840 6 1 0 0 6 1 1832 10265 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_0_1
+S 1841 6 1 0 0 6 1 1832 10332 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_1_1
+S 1842 6 1 0 0 6 1 1832 10494 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_2_1
+S 1843 23 5 0 0 0 1847 582 11646 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 banded_iaja
+S 1844 1 3 1 0 6 1 1843 10308 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ml
+S 1845 1 3 1 0 6 1 1843 10311 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 mu
+S 1846 1 3 1 0 6 1 1843 6855 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 n
+S 1847 14 5 0 0 0 1 1843 11646 0 400000 0 0 0 314 3 0 0 0 0 0 0 0 0 0 0 0 0 10020 0 582 0 0 0 0 banded_iaja
+F 1847 3 1846 1844 1845
+S 1848 23 5 0 0 0 1855 582 11658 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 banded_get_bjnz
+S 1849 1 3 1 0 6 1 1848 10308 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ml
+S 1850 1 3 1 0 6 1 1848 10311 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 mu
+S 1851 1 3 1 0 6 1 1848 11674 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 jcol
+S 1852 7 3 2 0 708 1 1848 11679 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 jnz
+S 1853 1 3 2 0 6 1 1848 11683 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 nzj
+S 1854 1 3 1 0 6 1 1848 6855 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 n
+S 1855 14 5 0 0 0 1 1848 11658 100 400000 0 0 0 318 6 0 0 0 0 0 0 0 0 0 0 0 0 10182 0 582 0 0 0 0 banded_get_bjnz
+F 1855 6 1854 1849 1850 1851 1852 1853
+S 1856 6 1 0 0 6 1 1848 10265 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_0_1
+S 1857 23 5 0 0 0 1871 582 9800 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 dvnlss28
+S 1858 7 3 0 0 723 1 1857 10226 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 y
+S 1859 7 3 0 0 726 1 1857 11227 800304 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 yh
+S 1860 6 3 1 0 6 1 1857 11230 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ldyh
+S 1861 7 3 0 0 732 1 1857 11281 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 iwm
+S 1862 14 3 0 0 8 1 1857 10220 10000 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 f
+S 1863 14 3 0 0 6 1 1857 11195 10000 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 jac
+S 1864 1 3 0 0 6 1 1857 11327 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 nflag
+S 1865 7 3 0 0 717 1 1857 8081 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 savf
+S 1866 7 3 0 0 714 1 1857 7529 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ewt
+S 1867 7 3 0 0 711 1 1857 7422 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 acor
+S 1868 7 3 0 0 720 1 1857 8163 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 wm
+S 1869 7 3 1 0 729 1 1857 6058 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 atol
+S 1870 1 3 1 0 6 1 1857 6162 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 itol
+S 1871 14 5 0 0 0 1 1857 9800 310 400000 0 0 0 325 13 0 0 0 0 0 0 0 0 0 0 0 0 10275 0 582 0 0 0 0 dvnlss28
+F 1871 13 1858 1859 1860 1865 1866 1867 1861 1868 1862 1863 1864 1869 1870
+S 1872 6 1 0 0 6 1 1857 10265 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_0_1
+S 1873 6 1 0 0 6 1 1857 10332 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_1_1
+S 1874 6 1 0 0 6 1 1857 10494 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_2_1
+S 1875 6 1 0 0 6 1 1857 10502 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_3_1
+S 1876 6 1 0 0 6 1 1857 10646 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_4_1
+S 1877 6 1 0 0 6 1 1857 11687 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_859
+S 1878 6 1 0 0 6 1 1857 11179 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_5_1
+S 1879 6 1 0 0 6 1 1857 11695 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_862
+S 1880 6 1 0 0 6 1 1857 10654 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_6_1
+S 1881 6 1 0 0 6 1 1857 10662 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_7_1
+S 1882 23 5 0 0 0 1886 582 9871 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 dvsols28
+S 1883 7 3 0 0 738 1 1882 11458 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 x
+S 1884 7 3 0 0 735 1 1882 11703 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 tem
+S 1885 1 3 0 0 6 1 1882 11460 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 iersl
+S 1886 14 5 0 0 0 1 1882 9871 110 400000 0 0 0 339 3 0 0 0 0 0 0 0 0 0 0 0 0 10536 0 582 0 0 0 0 dvsols28
+F 1886 3 1883 1884 1885
+S 1887 6 1 0 0 6 1 1882 10265 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_0_1
+S 1888 6 1 0 0 6 1 1882 10332 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_1_1
+S 1889 23 5 0 0 0 1902 582 9777 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 dvjacs28
+S 1890 7 3 0 0 750 1 1889 10226 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 y
+S 1891 7 3 0 0 753 1 1889 11227 800304 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 yh
+S 1892 6 3 1 0 6 1 1889 11230 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ldyh
+S 1893 14 3 0 0 8 1 1889 10220 10000 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 f
+S 1894 14 3 0 0 6 1 1889 11195 10000 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 jac
+S 1895 1 3 0 0 6 1 1889 11354 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ierpj
+S 1896 7 3 0 0 741 1 1889 7529 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ewt
+S 1897 7 3 0 0 744 1 1889 7677 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ftemp1
+S 1898 7 3 0 0 747 1 1889 8081 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 savf
+S 1899 1 3 1 0 6 1 1889 6855 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 n
+S 1900 7 3 1 0 756 1 1889 6058 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 atol
+S 1901 1 3 1 0 6 1 1889 6162 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 itol
+S 1902 14 5 0 0 0 1 1889 9777 310 400000 0 0 0 343 12 0 0 0 0 0 0 0 0 0 0 0 0 10580 0 582 0 0 0 0 dvjacs28
+F 1902 12 1890 1891 1892 1896 1897 1898 1893 1894 1895 1899 1900 1901
+S 1903 6 1 0 0 6 1 1889 10265 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_0_1
+S 1904 6 1 0 0 6 1 1889 10332 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_1_1
+S 1905 6 1 0 0 6 1 1889 10494 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_2_1
+S 1906 6 1 0 0 6 1 1889 10502 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_3_1
+S 1907 6 1 0 0 6 1 1889 11707 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_871
+S 1908 6 1 0 0 6 1 1889 10646 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_4_1
+S 1909 6 1 0 0 6 1 1889 11715 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_874
+S 1910 6 1 0 0 6 1 1889 11179 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_5_1
+S 1911 23 5 0 0 0 1915 582 10052 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 set_icn
+S 1912 1 3 1 0 6 1 1911 6855 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 n
+S 1913 7 3 1 0 759 1 1911 8742 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ia
+S 1914 7 3 0 0 762 1 1911 8860 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 icn
+S 1915 14 5 0 0 0 1 1911 10052 110 400000 0 0 0 356 3 0 0 0 0 0 0 0 0 0 0 0 0 11017 0 582 0 0 0 0 set_icn
+F 1915 3 1912 1913 1914
+S 1916 6 1 0 0 6 1 1911 10265 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_0_1
+S 1917 6 1 0 0 6 1 1911 10332 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_1_1
+S 1918 23 5 0 0 0 1923 582 9692 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 check_diag
+S 1919 1 3 1 0 6 1 1918 6855 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 n
+S 1920 7 3 1 0 765 1 1918 8742 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ia
+S 1921 7 3 1 0 771 1 1918 9155 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ja
+S 1922 7 3 1 0 768 1 1918 8860 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 icn
+S 1923 14 5 0 0 0 1 1918 9692 110 400000 0 0 0 360 4 0 0 0 0 0 0 0 0 0 0 0 0 11046 0 582 0 0 0 0 check_diag
+F 1923 4 1919 1920 1921 1922
+S 1924 6 1 0 0 6 1 1918 10265 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_0_1
+S 1925 6 1 0 0 6 1 1918 10332 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_1_1
+S 1926 6 1 0 0 6 1 1918 10494 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_2_1
+S 1927 23 5 0 0 0 1938 582 9733 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 dvcheck
+S 1928 1 3 1 0 6 1 1927 11476 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 job
+S 1929 14 3 0 0 8 1 1927 11723 10000 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 g
+S 1930 1 3 1 0 6 1 1927 10222 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 neq
+S 1931 7 3 0 0 783 1 1927 10226 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 y
+S 1932 7 3 0 0 786 1 1927 11227 800304 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 yh
+S 1933 1 3 0 0 6 1 1927 11725 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 irt
+S 1934 6 3 1 0 6 1 1927 7021 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 nyh
+S 1935 7 3 0 0 774 1 1927 7733 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 g0
+S 1936 7 3 0 0 777 1 1927 7769 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 g1
+S 1937 7 3 0 0 780 1 1927 7805 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 gx
+S 1938 14 5 0 0 0 1 1927 9733 310 400000 0 0 0 365 10 0 0 0 0 0 0 0 0 0 0 0 0 11080 0 582 0 0 0 0 dvcheck
+F 1938 10 1928 1929 1930 1931 1932 1934 1935 1936 1937 1933
+S 1939 6 1 0 0 6 1 1927 10265 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_0_1
+S 1940 6 1 0 0 6 1 1927 10332 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_1_1
+S 1941 6 1 0 0 6 1 1927 10494 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_2_1
+S 1942 6 1 0 0 6 1 1927 10502 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_3_1
+S 1943 6 1 0 0 6 1 1927 11729 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_885
+S 1944 6 1 0 0 6 1 1927 10646 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_4_1
+S 1945 6 1 0 0 6 1 1927 11737 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_888
+S 1946 23 5 0 0 0 1956 582 9851 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 dvroots
+S 1947 1 3 0 0 6 1 1946 11745 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 jflag
+S 1948 1 3 0 0 9 1 1946 11751 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 x0
+S 1949 1 3 0 0 9 1 1946 11754 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 x1
+S 1950 1 3 0 0 9 1 1946 11458 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 x
+S 1951 6 3 1 0 6 1 1946 6172 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ng
+S 1952 1 3 1 0 9 1 1946 6293 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 hmin
+S 1953 7 3 0 0 789 1 1946 7733 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 g0
+S 1954 7 3 0 0 792 1 1946 7769 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 g1
+S 1955 7 3 0 0 795 1 1946 7805 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 gx
+S 1956 14 5 0 0 0 1 1946 9851 210 400000 0 0 0 376 9 0 0 0 0 0 0 0 0 0 0 0 0 11278 0 582 0 0 0 0 dvroots
+F 1956 9 1951 1952 1947 1948 1949 1953 1954 1955 1950
+S 1957 6 1 0 0 6 1 1946 11757 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_889
+S 1958 23 5 0 0 0 1963 582 9823 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 dvnrdp
+S 1959 7 3 0 0 798 1 1958 10226 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 y
+S 1960 1 3 0 0 6 1 1958 11765 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 iydim
+S 1961 1 3 0 0 6 1 1958 11771 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 neqn
+S 1962 1 3 0 0 6 1 1958 6947 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 nq
+S 1963 14 5 0 0 0 1 1958 9823 110 400000 0 0 0 386 4 0 0 0 0 0 0 0 0 0 0 0 0 11515 0 582 0 0 0 0 dvnrdp
+F 1963 4 1959 1960 1961 1962
+S 1964 6 1 0 0 6 1 1958 10265 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_0_1
+S 1965 23 5 0 0 0 1970 582 9816 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 dvnrdn
+S 1966 7 3 0 0 801 1 1965 10226 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 y
+S 1967 1 3 0 0 6 1 1965 11765 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 iydim
+S 1968 1 3 0 0 6 1 1965 11771 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 neqn
+S 1969 1 3 0 0 6 1 1965 6947 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 nq
+S 1970 14 5 0 0 0 1 1965 9816 110 400000 0 0 0 391 4 0 0 0 0 0 0 0 0 0 0 0 0 11547 0 582 0 0 0 0 dvnrdn
+F 1970 4 1966 1967 1968 1969
+S 1971 6 1 0 0 6 1 1965 10265 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_0_1
+S 1972 23 5 0 0 0 1978 582 9830 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 dvnrds
+S 1973 7 3 0 0 804 1 1972 10226 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 y
+S 1974 1 3 0 0 6 1 1972 11765 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 iydim
+S 1975 1 3 0 0 6 1 1972 11771 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 neqn
+S 1976 1 3 0 0 9 1 1972 11776 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 rh
+S 1977 1 3 0 0 6 1 1972 6642 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 l
+S 1978 14 5 0 0 0 1 1972 9830 110 400000 0 0 0 396 5 0 0 0 0 0 0 0 0 0 0 0 0 11579 0 582 0 0 0 0 dvnrds
+F 1978 5 1973 1974 1975 1977 1976
+S 1979 6 1 0 0 6 1 1972 10265 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_0_1
+S 1980 23 5 0 0 0 1981 582 5980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 release_arrays
+S 1981 14 5 0 0 0 1 1980 5980 0 400000 0 0 0 402 0 0 0 0 0 0 0 0 0 0 0 0 0 11612 0 582 0 0 0 0 release_arrays
+F 1981 0
+S 1982 23 5 0 0 0 1988 582 9651 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 dgefa_f90
+S 1983 7 3 0 0 807 1 1982 11386 800304 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 a
+S 1984 6 3 1 0 6 1 1982 11779 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 lda
+S 1985 7 3 0 0 810 1 1982 11783 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ipvt
+S 1986 1 3 0 0 6 1 1982 11788 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 info
+S 1987 1 3 1 0 6 1 1982 6855 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 n
+S 1988 14 5 0 0 0 1 1982 9651 300 400000 0 0 0 403 5 0 0 0 0 0 0 0 0 0 0 0 0 11935 0 582 0 0 0 0 dgefa_f90
+F 1988 5 1983 1984 1987 1985 1986
+S 1989 6 1 0 0 6 1 1982 11793 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_894
+S 1990 6 1 0 0 6 1 1982 10265 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_0_1
+S 1991 6 1 0 0 6 1 1982 11801 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_897
+S 1992 6 1 0 0 6 1 1982 10332 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_1_1
+S 1993 23 5 0 0 0 2000 582 9661 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 dgesl_f90
+S 1994 7 3 0 0 813 1 1993 11386 800304 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 a
+S 1995 6 3 1 0 6 1 1993 11779 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 lda
+S 1996 7 3 0 0 819 1 1993 11783 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ipvt
+S 1997 7 3 0 0 816 1 1993 11394 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 b
+S 1998 1 3 1 0 6 1 1993 11476 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 job
+S 1999 1 3 1 0 6 1 1993 6855 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 n
+S 2000 14 5 0 0 0 1 1993 9661 300 400000 0 0 0 409 6 0 0 0 0 0 0 0 0 0 0 0 0 12044 0 582 0 0 0 0 dgesl_f90
+F 2000 6 1994 1995 1999 1996 1997 1998
+S 2001 6 1 0 0 6 1 1993 11809 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_899
+S 2002 6 1 0 0 6 1 1993 10265 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_0_1
+S 2003 6 1 0 0 6 1 1993 11817 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_902
+S 2004 6 1 0 0 6 1 1993 10332 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_1_1
+S 2005 6 1 0 0 6 1 1993 10494 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_2_1
+S 2006 23 5 0 0 0 2014 582 9631 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 dgbfa_f90
+S 2007 7 3 0 0 822 1 2006 11825 800304 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 abd
+S 2008 6 3 1 0 6 1 2006 11779 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 lda
+S 2009 1 3 1 0 6 1 2006 10308 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ml
+S 2010 1 3 1 0 6 1 2006 10311 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 mu
+S 2011 7 3 0 0 825 1 2006 11783 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ipvt
+S 2012 1 3 0 0 6 1 2006 11788 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 info
+S 2013 1 3 1 0 6 1 2006 6855 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 n
+S 2014 14 5 0 0 0 1 2006 9631 300 400000 0 0 0 416 7 0 0 0 0 0 0 0 0 0 0 0 0 12160 0 582 0 0 0 0 dgbfa_f90
+F 2014 7 2007 2008 2013 2009 2010 2011 2012
+S 2015 6 1 0 0 6 1 2006 11829 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_905
+S 2016 6 1 0 0 6 1 2006 10265 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_0_1
+S 2017 6 1 0 0 6 1 2006 11837 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_908
+S 2018 6 1 0 0 6 1 2006 10332 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_1_1
+S 2019 23 5 0 0 0 2028 582 9641 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 dgbsl_f90
+S 2020 7 3 0 0 828 1 2019 11825 800304 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 abd
+S 2021 6 3 1 0 6 1 2019 11779 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 lda
+S 2022 1 3 1 0 6 1 2019 10308 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ml
+S 2023 1 3 1 0 6 1 2019 10311 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 mu
+S 2024 7 3 0 0 834 1 2019 11783 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ipvt
+S 2025 7 3 0 0 831 1 2019 11394 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 b
+S 2026 1 3 1 0 6 1 2019 11476 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 job
+S 2027 1 3 1 0 6 1 2019 6855 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 n
+S 2028 14 5 0 0 0 1 2019 9641 300 400000 0 0 0 424 8 0 0 0 0 0 0 0 0 0 0 0 0 12333 0 582 0 0 0 0 dgbsl_f90
+F 2028 8 2020 2021 2027 2022 2023 2024 2025 2026
+S 2029 6 1 0 0 6 1 2019 11845 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_910
+S 2030 6 1 0 0 6 1 2019 10265 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_0_1
+S 2031 6 1 0 0 6 1 2019 11853 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_913
+S 2032 6 1 0 0 6 1 2019 10332 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_1_1
+S 2033 6 1 0 0 6 1 2019 10494 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_2_1
+S 2034 23 5 0 0 0 2041 582 9602 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 daxpy_f90
+S 2035 1 3 1 0 9 1 2034 11861 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 da
+S 2036 7 3 1 0 837 1 2034 11864 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 dx
+S 2037 1 3 1 0 6 1 2034 11867 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 incx
+S 2038 7 3 0 0 840 1 2034 11872 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 dy
+S 2039 1 3 1 0 6 1 2034 11875 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 incy
+S 2040 1 3 1 0 6 1 2034 6855 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 n
+S 2041 14 5 0 0 0 1 2034 9602 100 400000 0 0 0 433 6 0 0 0 0 0 0 0 0 0 0 0 0 12471 0 582 0 0 0 0 daxpy_f90
+F 2041 6 2040 2035 2036 2037 2038 2039
+S 2042 6 1 0 0 6 1 2034 10265 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_0_1
+S 2043 6 1 0 0 6 1 2034 10332 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_1_1
+S 2044 23 5 0 0 0 2050 582 9612 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 dcopy_f90
+S 2045 7 3 1 0 843 1 2044 11864 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 dx
+S 2046 1 3 1 0 6 1 2044 11867 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 incx
+S 2047 7 3 0 0 846 1 2044 11872 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 dy
+S 2048 1 3 1 0 6 1 2044 11875 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 incy
+S 2049 1 3 1 0 6 1 2044 6855 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 n
+S 2050 14 5 0 0 0 1 2044 9612 100 400000 0 0 0 440 5 0 0 0 0 0 0 0 0 0 0 0 0 12563 0 582 0 0 0 0 dcopy_f90
+F 2050 5 2049 2045 2046 2047 2048
+S 2051 6 1 0 0 6 1 2044 10265 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_0_1
+S 2052 6 1 0 0 6 1 2044 10332 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_1_1
+S 2053 23 5 0 0 8 2059 582 9622 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ddot_f90
+S 2054 7 3 1 0 849 1 2053 11864 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 dx
+S 2055 1 3 1 0 6 1 2053 11867 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 incx
+S 2056 7 3 1 0 852 1 2053 11872 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 dy
+S 2057 1 3 1 0 6 1 2053 11875 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 incy
+S 2058 1 3 1 0 6 1 2053 6855 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 n
+S 2059 14 5 0 0 9 1 2053 9622 104 400000 0 0 0 446 5 0 0 2060 0 0 0 0 0 0 0 0 0 12656 0 582 0 0 0 0 ddot_f90
+F 2059 5 2058 2054 2055 2056 2057
+S 2060 1 3 0 0 9 1 2053 9622 4 1003000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ddot_f90
+S 2061 6 1 0 0 6 1 2053 10265 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_0_1
+S 2062 6 1 0 0 6 1 2053 10332 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_1_1
+S 2063 23 5 0 0 0 2068 582 9671 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 dscal_f90
+S 2064 1 3 1 0 9 1 2063 11861 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 da
+S 2065 7 3 0 0 855 1 2063 11864 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 dx
+S 2066 1 3 1 0 6 1 2063 11867 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 incx
+S 2067 1 3 1 0 6 1 2063 6855 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 n
+S 2068 14 5 0 0 0 1 2063 9671 100 400000 0 0 0 452 4 0 0 0 0 0 0 0 0 0 0 0 0 12747 0 582 0 0 0 0 dscal_f90
+F 2068 4 2067 2064 2065 2066
+S 2069 6 1 0 0 6 1 2063 10265 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_0_1
+S 2070 23 5 0 0 6 2074 582 9681 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 idamax_f90
+S 2071 7 3 1 0 858 1 2070 11864 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 dx
+S 2072 1 3 1 0 6 1 2070 11867 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 incx
+S 2073 1 3 1 0 6 1 2070 6855 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 n
+S 2074 14 5 0 0 6 1 2070 9681 104 400000 0 0 0 457 3 0 0 2075 0 0 0 0 0 0 0 0 0 12814 0 582 0 0 0 0 idamax_f90
+F 2074 3 2073 2071 2072
+S 2075 1 3 0 0 6 1 2070 9681 4 1003000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 idamax_f90
+S 2076 6 1 0 0 6 1 2070 10265 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_0_1
+S 2077 23 5 0 0 0 2090 582 9929 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ma28ad
+S 2078 1 3 0 0 6 1 2077 11880 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 nz
+S 2079 7 3 0 0 861 1 2077 11386 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 a
+S 2080 6 3 0 0 6 1 2077 11883 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 licn
+S 2081 7 3 0 0 873 1 2077 11888 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 irn
+S 2082 6 3 0 0 6 1 2077 11892 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 lirn
+S 2083 1 3 0 0 9 1 2077 11897 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 u
+S 2084 7 3 0 0 870 1 2077 11899 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ikeep
+S 2085 7 3 0 0 876 1 2077 11905 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 iw
+S 2086 7 3 0 0 864 1 2077 11495 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 w
+S 2087 1 3 0 0 6 1 2077 11239 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 iflag
+S 2088 6 3 0 0 6 1 2077 6855 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 n
+S 2089 7 3 0 0 867 1 2077 8860 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 icn
+S 2090 14 5 0 0 0 1 2077 9929 210 400000 0 0 0 461 12 0 0 0 0 0 0 0 0 0 0 0 0 12954 0 582 0 0 0 0 ma28ad
+F 2090 12 2088 2078 2079 2080 2081 2082 2089 2083 2084 2085 2086 2087
+S 2091 6 1 0 0 6 1 2077 11908 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_924
+S 2092 6 1 0 0 6 1 2077 11916 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_926
+S 2093 6 1 0 0 6 1 2077 11924 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_928
+S 2094 6 1 0 0 6 1 2077 11932 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_930
+S 2095 6 1 0 0 6 1 2077 11940 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_932
+S 2096 6 1 0 0 6 1 2077 11948 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_934
+S 2097 23 5 0 0 0 2109 582 9936 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ma28bd
+S 2098 6 3 0 0 6 1 2097 11880 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 nz
+S 2099 7 3 0 0 879 1 2097 11386 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 a
+S 2100 6 3 0 0 6 1 2097 11883 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 licn
+S 2101 7 3 0 0 891 1 2097 11956 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ivect
+S 2102 7 3 0 0 888 1 2097 11899 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ikeep
+S 2103 7 3 0 0 894 1 2097 11905 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 iw
+S 2104 7 3 0 0 882 1 2097 11495 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 w
+S 2105 1 3 0 0 6 1 2097 11239 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 iflag
+S 2106 6 3 0 0 6 1 2097 6855 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 n
+S 2107 7 3 0 0 897 1 2097 9421 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 jvect
+S 2108 7 3 0 0 885 1 2097 8860 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 icn
+S 2109 14 5 0 0 0 1 2097 9936 210 400000 0 0 0 474 11 0 0 0 0 0 0 0 0 0 0 0 0 13323 0 582 0 0 0 0 ma28bd
+F 2109 11 2106 2098 2099 2100 2101 2107 2108 2102 2103 2104 2105
+S 2110 6 1 0 0 6 1 2097 11962 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_933
+S 2111 6 1 0 0 6 1 2097 11970 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_935
+S 2112 6 1 0 0 6 1 2097 11978 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_937
+S 2113 6 1 0 0 6 1 2097 11986 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_939
+S 2114 6 1 0 0 6 1 2097 11994 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_941
+S 2115 23 5 0 0 0 2132 582 9950 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ma28dd
+S 2116 7 3 0 0 900 1 2115 11386 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 a
+S 2117 6 3 0 0 6 1 2115 11883 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 licn
+S 2118 7 3 0 0 912 1 2115 11956 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ivect
+S 2119 6 3 0 0 6 1 2115 11880 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 nz
+S 2120 7 3 0 0 927 1 2115 12002 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 lenr
+S 2121 7 3 0 0 930 1 2115 12007 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 lenrl
+S 2122 7 3 0 0 924 1 2115 12013 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 lenoff
+S 2123 7 3 0 0 906 1 2115 12020 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ip
+S 2124 7 3 0 0 909 1 2115 12023 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 iq
+S 2125 7 3 0 0 918 1 2115 12026 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 iw1
+S 2126 7 3 0 0 915 1 2115 11905 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 iw
+S 2127 1 3 0 0 9 1 2115 12030 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 w1
+S 2128 1 3 0 0 6 1 2115 11239 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 iflag
+S 2129 6 3 0 0 6 1 2115 6855 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 n
+S 2130 7 3 0 0 921 1 2115 9421 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 jvect
+S 2131 7 3 0 0 903 1 2115 8860 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 icn
+S 2132 14 5 0 0 0 1 2115 9950 210 400000 0 0 0 486 16 0 0 0 0 0 0 0 0 0 0 0 0 13450 0 582 0 0 0 0 ma28dd
+F 2132 16 2129 2116 2117 2118 2130 2119 2131 2120 2121 2122 2123 2124 2125 2126 2127 2128
+S 2133 6 1 0 0 6 1 2115 11994 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_941
+S 2134 6 1 0 0 6 1 2115 12033 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_943
+S 2135 6 1 0 0 6 1 2115 12041 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_945
+S 2136 6 1 0 0 6 1 2115 12049 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_947
+S 2137 6 1 0 0 6 1 2115 12057 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_949
+S 2138 6 1 0 0 6 1 2115 12065 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_951
+S 2139 23 5 0 0 0 2148 582 9943 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ma28cd
+S 2140 7 3 0 0 933 1 2139 11386 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 a
+S 2141 6 3 0 0 6 1 2139 11883 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 licn
+S 2142 7 3 0 0 945 1 2139 11899 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ikeep
+S 2143 7 3 0 0 936 1 2139 12073 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 rhs
+S 2144 7 3 0 0 939 1 2139 11495 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 w
+S 2145 1 3 0 0 6 1 2139 12077 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 mtype
+S 2146 6 3 0 0 6 1 2139 6855 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 n
+S 2147 7 3 0 0 942 1 2139 8860 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 icn
+S 2148 14 5 0 0 0 1 2139 9943 210 400000 0 0 0 503 8 0 0 0 0 0 0 0 0 0 0 0 0 13602 0 582 0 0 0 0 ma28cd
+F 2148 8 2146 2140 2141 2147 2142 2143 2144 2145
+S 2149 6 1 0 0 6 1 2139 12083 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_950
+S 2150 6 1 0 0 6 1 2139 12091 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_952
+S 2151 6 1 0 0 6 1 2139 12099 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_954
+S 2152 6 1 0 0 6 1 2139 12107 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_956
+S 2153 23 5 0 0 0 2170 582 9957 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ma28id
+S 2154 6 3 0 0 6 1 2153 11880 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 nz
+S 2155 7 3 0 0 951 1 2153 12115 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 aorg
+S 2156 7 3 0 0 975 1 2153 12120 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 irnorg
+S 2157 7 3 0 0 969 1 2153 12127 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 icnorg
+S 2158 6 3 0 0 6 1 2153 11883 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 licn
+S 2159 7 3 0 0 948 1 2153 11386 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 a
+S 2160 7 3 0 0 972 1 2153 11899 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ikeep
+S 2161 7 3 0 0 957 1 2153 12073 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 rhs
+S 2162 7 3 0 0 963 1 2153 11458 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 x
+S 2163 7 3 0 0 954 1 2153 12134 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 r
+S 2164 7 3 0 0 960 1 2153 11495 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 w
+S 2165 1 3 0 0 6 1 2153 12077 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 mtype
+S 2166 1 3 0 0 9 1 2153 12136 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 prec
+S 2167 1 3 0 0 6 1 2153 11239 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 iflag
+S 2168 6 3 0 0 6 1 2153 6855 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 n
+S 2169 7 3 0 0 966 1 2153 8860 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 icn
+S 2170 14 5 0 0 0 1 2153 9957 210 400000 0 0 0 512 16 0 0 0 0 0 0 0 0 0 0 0 0 13653 0 582 0 0 0 0 ma28id
+F 2170 16 2168 2154 2155 2156 2157 2158 2159 2169 2160 2161 2162 2163 2164 2165 2166 2167
+S 2171 6 1 0 0 6 1 2153 12107 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_956
+S 2172 6 1 0 0 6 1 2153 12141 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_958
+S 2173 6 1 0 0 6 1 2153 12149 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_960
+S 2174 6 1 0 0 6 1 2153 12157 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_962
+S 2175 6 1 0 0 6 1 2153 12165 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_964
+S 2176 23 5 0 0 0 2198 582 9964 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ma30ad
+S 2177 6 3 0 0 6 1 2176 12173 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 nn
+S 2178 7 3 0 0 978 1 2176 11386 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 a
+S 2179 6 3 0 0 6 1 2176 11883 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 licn
+S 2180 7 3 0 0 1014 1 2176 12002 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 lenr
+S 2181 7 3 0 0 1017 1 2176 12007 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 lenrl
+S 2182 7 3 0 0 990 1 2176 12020 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ip
+S 2183 7 3 0 0 999 1 2176 12023 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 iq
+S 2184 7 3 0 0 1002 1 2176 11888 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 irn
+S 2185 6 3 0 0 6 1 2176 11892 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 lirn
+S 2186 7 3 0 0 1011 1 2176 12176 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 lenc
+S 2187 7 3 0 0 987 1 2176 12181 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ifirst
+S 2188 7 3 0 0 1008 1 2176 12188 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 lastr
+S 2189 7 3 0 0 1023 1 2176 12194 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 nextr
+S 2190 7 3 0 0 1005 1 2176 12200 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 lastc
+S 2191 7 3 0 0 1020 1 2176 12206 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 nextc
+S 2192 7 3 0 0 996 1 2176 12212 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 iptr
+S 2193 7 3 0 0 993 1 2176 12217 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ipc
+S 2194 1 3 0 0 9 1 2176 11897 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 u
+S 2195 1 3 0 0 6 1 2176 11239 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 iflag
+S 2196 7 3 0 0 981 1 2176 8860 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 icn
+S 2197 7 3 0 0 984 1 2176 9574 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 idisp
+S 2198 14 5 0 0 0 1 2176 9964 210 400000 0 0 0 529 21 0 0 0 0 0 0 0 0 0 0 0 0 13949 0 582 0 0 0 0 ma30ad
+F 2198 21 2177 2196 2178 2179 2180 2181 2197 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195
+S 2199 6 1 0 0 6 1 2176 12165 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_964
+S 2200 6 1 0 0 6 1 2176 12221 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_966
+S 2201 6 1 0 0 6 1 2176 12229 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_968
+S 2202 23 5 0 0 0 2210 582 9985 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ma30dd
+S 2203 7 3 0 0 1026 1 2202 11386 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 a
+S 2204 7 3 0 0 1032 1 2202 12212 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 iptr
+S 2205 1 3 0 0 6 1 2202 12237 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 iactiv
+S 2206 6 3 0 0 6 1 2202 12244 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 itop
+S 2207 1 3 0 0 16 1 2202 12249 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 reals
+S 2208 7 3 0 0 1029 1 2202 8860 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 icn
+S 2209 6 3 0 0 6 1 2202 6855 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 n
+S 2210 14 5 0 0 0 1 2202 9985 210 400000 0 0 0 551 7 0 0 0 0 0 0 0 0 0 0 0 0 15067 0 582 0 0 0 0 ma30dd
+F 2210 7 2203 2208 2204 2209 2205 2206 2207
+S 2211 6 1 0 0 6 1 2202 12255 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_970
+S 2212 6 1 0 0 6 1 2202 12263 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_972
+S 2213 23 5 0 0 0 2226 582 9971 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ma30bd
+S 2214 7 3 0 0 1035 1 2213 11386 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 a
+S 2215 6 3 0 0 6 1 2213 11883 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 licn
+S 2216 7 3 0 0 1056 1 2213 12002 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 lenr
+S 2217 7 3 0 0 1059 1 2213 12007 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 lenrl
+S 2218 7 3 0 0 1047 1 2213 12020 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ip
+S 2219 7 3 0 0 1050 1 2213 12023 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 iq
+S 2220 7 3 0 0 1038 1 2213 11495 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 w
+S 2221 7 3 0 0 1053 1 2213 11905 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 iw
+S 2222 1 3 0 0 6 1 2213 11239 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 iflag
+S 2223 6 3 0 0 6 1 2213 6855 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 n
+S 2224 7 3 0 0 1041 1 2213 8860 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 icn
+S 2225 7 3 0 0 1044 1 2213 9574 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 idisp
+S 2226 14 5 0 0 0 1 2213 9971 210 400000 0 0 0 559 12 0 0 0 0 0 0 0 0 0 0 0 0 15125 0 582 0 0 0 0 ma30bd
+F 2226 12 2223 2224 2214 2215 2216 2217 2225 2218 2219 2220 2221 2222
+S 2227 6 1 0 0 6 1 2213 12271 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_974
+S 2228 6 1 0 0 6 1 2213 12279 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_976
+S 2229 23 5 0 0 0 2243 582 9978 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ma30cd
+S 2230 7 3 0 0 1062 1 2229 11386 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 a
+S 2231 6 3 0 0 6 1 2229 11883 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 licn
+S 2232 7 3 0 0 1086 1 2229 12002 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 lenr
+S 2233 7 3 0 0 1089 1 2229 12007 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 lenrl
+S 2234 7 3 0 0 1083 1 2229 12013 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 lenoff
+S 2235 7 3 0 0 1077 1 2229 12020 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ip
+S 2236 7 3 0 0 1080 1 2229 12023 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 iq
+S 2237 7 3 0 0 1068 1 2229 11458 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 x
+S 2238 7 3 0 0 1065 1 2229 11495 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 w
+S 2239 1 3 0 0 6 1 2229 12077 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 mtype
+S 2240 6 3 0 0 6 1 2229 6855 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 n
+S 2241 7 3 0 0 1071 1 2229 8860 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 icn
+S 2242 7 3 0 0 1074 1 2229 9574 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 idisp
+S 2243 14 5 0 0 0 1 2229 9978 210 400000 0 0 0 572 13 0 0 0 0 0 0 0 0 0 0 0 0 15303 0 582 0 0 0 0 ma30cd
+F 2243 13 2240 2241 2230 2231 2232 2233 2234 2242 2235 2236 2237 2238 2239
+S 2244 6 1 0 0 6 1 2229 12287 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_978
+S 2245 6 1 0 0 6 1 2229 12295 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_980
+S 2246 23 5 0 0 0 2256 582 12303 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 mc13d
+S 2247 6 3 0 0 6 1 2246 11883 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 licn
+S 2248 7 3 0 0 1101 1 2246 12020 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ip
+S 2249 7 3 0 0 1107 1 2246 12002 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 lenr
+S 2250 7 3 0 0 1098 1 2246 2288 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ior
+S 2251 7 3 0 0 1092 1 2246 12309 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ib
+S 2252 7 3 0 0 1104 1 2246 11905 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 iw
+S 2253 6 3 0 0 6 1 2246 6855 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 n
+S 2254 7 3 0 0 1095 1 2246 8860 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 icn
+S 2255 1 3 0 0 6 1 2246 7011 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 num
+S 2256 14 5 0 0 0 1 2246 12303 200 400000 0 0 0 586 9 0 0 0 0 0 0 0 0 0 0 0 0 15744 0 582 0 0 0 0 mc13d
+F 2256 9 2253 2254 2247 2248 2249 2250 2251 2255 2252
+S 2257 6 1 0 0 6 1 2246 12312 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_982
+S 2258 6 1 0 0 6 1 2246 12320 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_984
+S 2259 6 1 0 0 6 1 2246 12328 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_986
+S 2260 6 1 0 0 6 1 2246 12336 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_988
+S 2261 23 5 0 0 0 2273 582 9992 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 mc13e
+S 2262 6 3 0 0 6 1 2261 11883 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 licn
+S 2263 7 3 0 0 1119 1 2261 12020 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ip
+S 2264 7 3 0 0 1122 1 2261 12002 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 lenr
+S 2265 7 3 0 0 1110 1 2261 12344 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 arp
+S 2266 7 3 0 0 1113 1 2261 12309 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ib
+S 2267 7 3 0 0 1125 1 2261 12348 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 lowl
+S 2268 7 3 0 0 1128 1 2261 12353 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 numb
+S 2269 7 3 0 0 1131 1 2261 12358 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 prev
+S 2270 6 3 0 0 6 1 2261 6855 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 n
+S 2271 7 3 0 0 1116 1 2261 8860 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 icn
+S 2272 1 3 0 0 6 1 2261 7011 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 num
+S 2273 14 5 0 0 0 1 2261 9992 210 400000 0 0 0 596 11 0 0 0 0 0 0 0 0 0 0 0 0 15762 0 582 0 0 0 0 mc13e
+F 2273 11 2270 2271 2262 2263 2264 2265 2266 2272 2267 2268 2269
+S 2274 6 1 0 0 6 1 2261 12336 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_988
+S 2275 6 1 0 0 6 1 2261 12363 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_990
+S 2276 23 5 0 0 0 2284 582 10005 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 mc20ad
+S 2277 6 3 0 0 6 1 2276 12371 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 nc
+S 2278 6 3 0 0 6 1 2276 12374 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 maxa
+S 2279 7 3 0 0 1134 1 2276 11386 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 a
+S 2280 7 3 0 0 1137 1 2276 12379 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 inum
+S 2281 7 3 0 0 1143 1 2276 12384 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 jptr
+S 2282 7 3 0 0 1140 1 2276 12389 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 jnum
+S 2283 1 3 0 0 6 1 2276 12394 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 jdisp
+S 2284 14 5 0 0 0 1 2276 10005 210 400000 0 0 0 608 7 0 0 0 0 0 0 0 0 0 0 0 0 15898 0 582 0 0 0 0 mc20ad
+F 2284 7 2277 2278 2279 2280 2281 2282 2283
+S 2285 6 1 0 0 6 1 2276 12400 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_992
+S 2286 6 1 0 0 6 1 2276 12408 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_994
+S 2287 23 5 0 0 0 2293 582 10012 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 mc20bd
+S 2288 6 3 0 0 6 1 2287 12371 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 nc
+S 2289 6 3 0 0 6 1 2287 12374 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 maxa
+S 2290 7 3 0 0 1146 1 2287 11386 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 a
+S 2291 7 3 0 0 1149 1 2287 12379 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 inum
+S 2292 7 3 0 0 1152 1 2287 12384 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 jptr
+S 2293 14 5 0 0 0 1 2287 10012 210 400000 0 0 0 616 5 0 0 0 0 0 0 0 0 0 0 0 0 15977 0 582 0 0 0 0 mc20bd
+F 2293 5 2288 2289 2290 2291 2292
+S 2294 6 1 0 0 6 1 2287 12416 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_996
+S 2295 6 1 0 0 6 1 2287 12424 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_998
+S 2296 23 5 0 0 0 2305 582 10019 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 mc21a
+S 2297 6 3 0 0 6 1 2296 11883 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 licn
+S 2298 7 3 0 0 1158 1 2296 12020 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ip
+S 2299 7 3 0 0 1167 1 2296 12002 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 lenr
+S 2300 7 3 0 0 1161 1 2296 12432 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 iperm
+S 2301 7 3 0 0 1164 1 2296 11905 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 iw
+S 2302 6 3 0 0 6 1 2296 6855 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 n
+S 2303 7 3 0 0 1155 1 2296 8860 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 icn
+S 2304 1 3 0 0 6 1 2296 7015 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 numnz
+S 2305 14 5 0 0 0 1 2296 10019 210 400000 0 0 0 622 8 0 0 0 0 0 0 0 0 0 0 0 0 16026 0 582 0 0 0 0 mc21a
+F 2305 8 2302 2303 2297 2298 2299 2300 2304 2301
+S 2306 6 1 0 0 6 1 2296 12438 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_1000
+S 2307 6 1 0 0 6 1 2296 12447 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_1002
+S 2308 3 0 0 0 6 1 1 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6
+S 2309 6 1 0 0 6 1 2296 12456 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_1005
+S 2310 6 1 0 0 6 1 2296 12465 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_1007
+S 2311 23 5 0 0 0 2323 582 10025 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 mc21b
+S 2312 6 3 0 0 6 1 2311 11883 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 licn
+S 2313 7 3 0 0 1179 1 2311 12020 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ip
+S 2314 7 3 0 0 1185 1 2311 12002 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 lenr
+S 2315 7 3 0 0 1182 1 2311 12432 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 iperm
+S 2316 7 3 0 0 1191 1 2311 12474 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 pr
+S 2317 7 3 0 0 1170 1 2311 12344 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 arp
+S 2318 7 3 0 0 1173 1 2311 12477 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 cv
+S 2319 7 3 0 0 1188 1 2311 12480 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 out
+S 2320 6 3 0 0 6 1 2311 6855 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 n
+S 2321 7 3 0 0 1176 1 2311 8860 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 icn
+S 2322 1 3 0 0 6 1 2311 7015 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 numnz
+S 2323 14 5 0 0 0 1 2311 10025 210 400000 0 0 0 631 11 0 0 0 0 0 0 0 0 0 0 0 0 16045 0 582 0 0 0 0 mc21b
+F 2323 11 2320 2321 2312 2313 2314 2315 2322 2316 2317 2318 2319
+S 2324 6 1 0 0 6 1 2311 12465 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_1007
+S 2325 6 1 0 0 6 1 2311 12484 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_1009
+S 2326 23 5 0 0 0 2336 582 10031 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 mc22ad
+S 2327 7 3 0 0 1194 1 2326 11386 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 a
+S 2328 6 3 0 0 6 1 2326 11880 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 nz
+S 2329 7 3 0 0 1212 1 2326 12493 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 lenrow
+S 2330 7 3 0 0 1200 1 2326 12020 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ip
+S 2331 7 3 0 0 1203 1 2326 12023 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 iq
+S 2332 7 3 0 0 1206 1 2326 11905 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 iw
+S 2333 7 3 0 0 1209 1 2326 12026 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 iw1
+S 2334 6 3 0 0 6 1 2326 6855 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 n
+S 2335 7 3 0 0 1197 1 2326 8860 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 icn
+S 2336 14 5 0 0 0 1 2326 10031 210 400000 0 0 0 643 9 0 0 0 0 0 0 0 0 0 0 0 0 16170 0 582 0 0 0 0 mc22ad
+F 2336 9 2334 2335 2327 2328 2329 2330 2331 2332 2333
+S 2337 6 1 0 0 6 1 2326 12500 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_1011
+S 2338 6 1 0 0 6 1 2326 12509 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_1013
+S 2339 6 1 0 0 6 1 2326 12518 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_1015
+S 2340 6 1 0 0 6 1 2326 12527 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_1017
+S 2341 23 5 0 0 0 2353 582 10038 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 mc23ad
+S 2342 7 3 0 0 1215 1 2341 11386 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 a
+S 2343 6 3 0 0 6 1 2341 11883 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 licn
+S 2344 7 3 0 0 1239 1 2341 12002 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 lenr
+S 2345 7 3 0 0 1224 1 2341 12020 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ip
+S 2346 7 3 0 0 1227 1 2341 12023 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 iq
+S 2347 7 3 0 0 1236 1 2341 12013 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 lenoff
+S 2348 7 3 0 0 1230 1 2341 11905 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 iw
+S 2349 7 3 0 0 1233 1 2341 12026 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 iw1
+S 2350 6 3 0 0 6 1 2341 6855 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 n
+S 2351 7 3 0 0 1218 1 2341 8860 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 icn
+S 2352 7 3 0 0 1221 1 2341 9574 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 idisp
+S 2353 14 5 0 0 0 1 2341 10038 210 400000 0 0 0 653 11 0 0 0 0 0 0 0 0 0 0 0 0 16266 0 582 0 0 0 0 mc23ad
+F 2353 11 2350 2351 2342 2343 2344 2352 2345 2346 2347 2348 2349
+S 2354 6 1 0 0 6 1 2341 12527 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_1017
+S 2355 6 1 0 0 6 1 2341 12536 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_1019
+S 2356 6 1 0 0 6 1 2341 12545 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_1021
+S 2357 6 1 0 0 6 1 2341 12554 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_1023
+S 2358 6 1 0 0 6 1 2341 12563 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_1025
+S 2359 23 5 0 0 0 2367 582 10045 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 mc24ad
+S 2360 7 3 0 0 1242 1 2359 11386 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 a
+S 2361 6 3 0 0 6 1 2359 11883 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 licn
+S 2362 7 3 0 0 1251 1 2359 12002 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 lenr
+S 2363 7 3 0 0 1254 1 2359 12007 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 lenrl
+S 2364 7 3 0 0 1245 1 2359 11495 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 w
+S 2365 6 3 0 0 6 1 2359 6855 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 n
+S 2366 7 3 0 0 1248 1 2359 8860 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 icn
+S 2367 14 5 0 0 0 1 2359 10045 210 400000 0 0 0 665 7 0 0 0 0 0 0 0 0 0 0 0 0 16480 0 582 0 0 0 0 mc24ad
+F 2367 7 2365 2366 2360 2361 2362 2363 2364
+S 2368 6 1 0 0 6 1 2359 12572 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_1024
+S 2369 6 1 0 0 6 1 2359 12581 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_1026
+S 2370 23 5 0 0 0 2379 582 9998 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 mc19ad
+S 2371 6 3 0 0 6 1 2370 12590 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 na
+S 2372 7 3 0 0 1257 1 2370 11386 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 a
+S 2373 7 3 0 0 1272 1 2370 11888 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 irn
+S 2374 7 3 0 0 1263 1 2370 12134 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 r
+S 2375 7 3 0 0 1260 1 2370 12593 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 c
+S 2376 7 3 0 0 1266 1 2370 11495 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 w
+S 2377 6 3 0 0 6 1 2370 6855 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 n
+S 2378 7 3 0 0 1269 1 2370 8860 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 icn
+S 2379 14 5 0 0 0 1 2370 9998 210 400000 0 0 0 673 8 0 0 0 0 0 0 0 0 0 0 0 0 16535 0 582 0 0 0 0 mc19ad
+F 2379 8 2377 2371 2372 2373 2378 2374 2375 2376
+S 2380 6 1 0 0 6 1 2370 12595 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_1028
+S 2381 6 1 0 0 6 1 2370 12604 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_1030
+S 2382 6 1 0 0 6 1 2370 12613 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_1032
+S 2383 6 1 0 0 6 1 2370 12622 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_1034
+S 2384 23 5 0 0 0 2403 582 6029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 jacsp
+S 2385 14 3 0 0 8 1 2384 12631 10000 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 fcn
+S 2386 1 3 0 0 9 1 2384 10228 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 t
+S 2387 7 3 0 0 1287 1 2384 10226 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 y
+S 2388 7 3 0 0 1275 1 2384 10220 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 f
+S 2389 7 3 0 0 1281 1 2384 12635 800304 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 fjac
+S 2390 6 3 0 0 6 1 2384 12640 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 nrfjac
+S 2391 7 3 0 0 1290 1 2384 12647 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 yscale
+S 2392 7 3 0 0 1278 1 2384 12654 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 fac
+S 2393 7 3 0 0 1284 1 2384 12658 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 wk
+S 2394 6 3 0 0 6 1 2384 12661 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 lwk
+S 2395 7 3 0 0 1299 1 2384 12665 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 iwk
+S 2396 6 3 0 0 6 1 2384 12669 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 liwk
+S 2397 1 3 0 0 6 1 2384 12674 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 maxgrp
+S 2398 7 3 0 0 1305 1 2384 11607 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ngrp
+S 2399 7 3 0 0 1302 1 2384 12681 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 jpntr
+S 2400 7 3 0 0 1293 1 2384 12687 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 indrow
+S 2401 6 3 0 0 6 1 2384 6855 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 n
+S 2402 7 3 0 0 1296 1 2384 6167 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 iopt
+S 2403 14 5 0 0 0 1 2384 6029 300 400000 0 0 0 682 18 0 0 0 0 0 0 0 0 0 0 0 0 16742 0 582 0 0 0 0 jacsp
+F 2403 18 2385 2401 2386 2387 2388 2389 2390 2391 2392 2402 2393 2394 2395 2396 2397 2398 2399 2400
+S 2404 6 1 0 0 6 1 2384 12694 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_1035
+S 2405 6 1 0 0 6 1 2384 12703 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_1037
+S 2406 6 1 0 0 6 1 2384 10265 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_0_1
+S 2407 6 1 0 0 6 1 2384 12712 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_1040
+S 2408 6 1 0 0 6 1 2384 12721 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_1042
+S 2409 6 1 0 0 6 1 2384 10332 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_1_1
+S 2410 6 1 0 0 6 1 2384 10494 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_2_1
+S 2411 6 1 0 0 6 1 2384 12730 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_1046
+S 2412 6 1 0 0 6 1 2384 10502 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_3_1
+S 2413 23 5 0 0 0 2421 582 10080 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 degr
+S 2414 7 3 0 0 1311 1 2413 12687 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 indrow
+S 2415 7 3 0 0 1320 1 2413 12681 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 jpntr
+S 2416 7 3 0 0 1308 1 2413 12739 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 indcol
+S 2417 7 3 0 0 1314 1 2413 12746 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ipntr
+S 2418 7 3 0 0 1323 1 2413 12752 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ndeg
+S 2419 7 3 0 0 1317 1 2413 12757 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 iwa
+S 2420 6 3 0 0 6 1 2413 6855 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 n
+S 2421 14 5 0 0 0 1 2413 10080 310 400000 0 0 0 701 7 0 0 0 0 0 0 0 0 0 0 0 0 17321 0 582 0 0 0 0 degr
+F 2421 7 2420 2414 2415 2416 2417 2418 2419
+S 2422 6 1 0 0 6 1 2413 10265 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_0_1
+S 2423 6 1 0 0 6 1 2413 10332 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_1_1
+S 2424 6 1 0 0 6 1 2413 10494 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_2_1
+S 2425 6 1 0 0 6 1 2413 12761 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_1050
+S 2426 6 1 0 0 6 1 2413 12770 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_1052
+S 2427 23 5 0 0 0 2441 582 10085 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ido
+S 2428 6 3 0 0 6 1 2427 12779 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 m
+S 2429 7 3 0 0 1329 1 2427 12687 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 indrow
+S 2430 7 3 0 0 1347 1 2427 12681 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 jpntr
+S 2431 7 3 0 0 1326 1 2427 12739 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 indcol
+S 2432 7 3 0 0 1332 1 2427 12746 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ipntr
+S 2433 7 3 0 0 1353 1 2427 12752 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ndeg
+S 2434 7 3 0 0 1350 1 2427 12781 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 list
+S 2435 1 3 0 0 6 1 2427 12786 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 maxclq
+S 2436 7 3 0 0 1335 1 2427 12793 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 iwa1
+S 2437 7 3 0 0 1338 1 2427 12798 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 iwa2
+S 2438 7 3 0 0 1341 1 2427 12803 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 iwa3
+S 2439 7 3 0 0 1344 1 2427 12808 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 iwa4
+S 2440 6 3 0 0 6 1 2427 6855 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 n
+S 2441 14 5 0 0 0 1 2427 10085 310 400000 0 0 0 709 13 0 0 0 0 0 0 0 0 0 0 0 0 17407 0 582 0 0 0 0 ido
+F 2441 13 2428 2440 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439
+S 2442 6 1 0 0 6 1 2427 10265 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_0_1
+S 2443 6 1 0 0 6 1 2427 10332 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_1_1
+S 2444 6 1 0 0 6 1 2427 12813 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_1057
+S 2445 6 1 0 0 6 1 2427 12822 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_1060
+S 2446 6 1 0 0 6 1 2427 12831 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_1062
+S 2447 6 1 0 0 6 1 2427 12840 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_1059
+S 2448 6 1 0 0 6 1 2427 12849 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_1065
+S 2449 23 5 0 0 0 2457 582 10089 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 numsrt
+S 2450 6 3 0 0 6 1 2449 12858 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 nmax
+S 2451 1 3 0 0 6 1 2449 12863 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 mode
+S 2452 7 3 0 0 1356 1 2449 3107 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 index
+S 2453 7 3 0 0 1362 1 2449 12868 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 next
+S 2454 6 3 0 0 6 1 2449 6855 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 n
+S 2455 7 3 0 0 1365 1 2449 7011 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 num
+S 2456 7 3 0 0 1359 1 2449 6650 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 last
+S 2457 14 5 0 0 0 1 2449 10089 210 400000 0 0 0 723 7 0 0 0 0 0 0 0 0 0 0 0 0 17622 0 582 0 0 0 0 numsrt
+F 2457 7 2454 2450 2455 2451 2452 2456 2453
+S 2458 6 1 0 0 6 1 2449 12873 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_1066
+S 2459 6 1 0 0 6 1 2449 12882 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_1068
+S 2460 6 1 0 0 6 1 2449 12891 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_1070
+S 2461 23 5 0 0 0 2471 582 10096 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 seq
+S 2462 7 3 0 0 1371 1 2461 12687 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 indrow
+S 2463 7 3 0 0 1380 1 2461 12681 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 jpntr
+S 2464 7 3 0 0 1368 1 2461 12739 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 indcol
+S 2465 7 3 0 0 1374 1 2461 12746 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ipntr
+S 2466 7 3 0 0 1383 1 2461 12781 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 list
+S 2467 7 3 0 0 1386 1 2461 11607 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ngrp
+S 2468 1 3 0 0 6 1 2461 12674 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 maxgrp
+S 2469 7 3 0 0 1377 1 2461 12757 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 iwa
+S 2470 6 3 0 0 6 1 2461 6855 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 n
+S 2471 14 5 0 0 0 1 2461 10096 310 400000 0 0 0 731 9 0 0 0 0 0 0 0 0 0 0 0 0 17713 0 582 0 0 0 0 seq
+F 2471 9 2470 2462 2463 2464 2465 2466 2467 2468 2469
+S 2472 6 1 0 0 6 1 2461 10265 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_0_1
+S 2473 6 1 0 0 6 1 2461 10332 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_1_1
+S 2474 6 1 0 0 6 1 2461 10494 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_2_1
+S 2475 6 1 0 0 6 1 2461 12900 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_1074
+S 2476 6 1 0 0 6 1 2461 12909 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_1076
+S 2477 23 5 0 0 0 2485 582 10100 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 setr
+S 2478 6 3 0 0 6 1 2477 12779 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 m
+S 2479 7 3 0 0 1392 1 2477 12687 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 indrow
+S 2480 7 3 0 0 1401 1 2477 12681 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 jpntr
+S 2481 7 3 0 0 1389 1 2477 12739 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 indcol
+S 2482 7 3 0 0 1395 1 2477 12746 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ipntr
+S 2483 7 3 0 0 1398 1 2477 12757 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 iwa
+S 2484 6 3 0 0 6 1 2477 6855 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 n
+S 2485 14 5 0 0 0 1 2477 10100 310 400000 0 0 0 741 7 0 0 0 0 0 0 0 0 0 0 0 0 17817 0 582 0 0 0 0 setr
+F 2485 7 2478 2484 2479 2480 2481 2482 2483
+S 2486 6 1 0 0 6 1 2477 10265 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_0_1
+S 2487 6 1 0 0 6 1 2477 10332 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_1_1
+S 2488 6 1 0 0 6 1 2477 12918 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_1081
+S 2489 6 1 0 0 6 1 2477 12927 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_1080
+S 2490 6 1 0 0 6 1 2477 12936 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_1085
+S 2491 23 5 0 0 0 2504 582 10105 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 slo
+S 2492 7 3 0 0 1407 1 2491 12687 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 indrow
+S 2493 7 3 0 0 1425 1 2491 12681 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 jpntr
+S 2494 7 3 0 0 1404 1 2491 12739 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 indcol
+S 2495 7 3 0 0 1410 1 2491 12746 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ipntr
+S 2496 7 3 0 0 1431 1 2491 12752 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ndeg
+S 2497 7 3 0 0 1428 1 2491 12781 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 list
+S 2498 1 3 0 0 6 1 2491 12786 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 maxclq
+S 2499 7 3 0 0 1413 1 2491 12793 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 iwa1
+S 2500 7 3 0 0 1416 1 2491 12798 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 iwa2
+S 2501 7 3 0 0 1419 1 2491 12803 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 iwa3
+S 2502 7 3 0 0 1422 1 2491 12808 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 iwa4
+S 2503 6 3 0 0 6 1 2491 6855 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 n
+S 2504 14 5 0 0 0 1 2491 10105 310 400000 0 0 0 749 12 0 0 0 0 0 0 0 0 0 0 0 0 17891 0 582 0 0 0 0 slo
+F 2504 12 2503 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502
+S 2505 6 1 0 0 6 1 2491 10265 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_0_1
+S 2506 6 1 0 0 6 1 2491 10332 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_1_1
+S 2507 6 1 0 0 6 1 2491 10494 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_2_1
+S 2508 6 1 0 0 6 1 2491 12945 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_1091
+S 2509 6 1 0 0 6 1 2491 12954 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_1093
+S 2510 6 1 0 0 6 1 2491 12963 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_1090
+S 2511 6 1 0 0 6 1 2491 12972 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_1096
+S 2512 23 5 0 0 0 2519 582 10109 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 srtdat
+S 2513 7 3 0 0 1437 1 2512 12687 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 indrow
+S 2514 7 3 0 0 1434 1 2512 12739 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 indcol
+S 2515 7 3 0 0 1443 1 2512 12681 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 jpntr
+S 2516 7 3 0 0 1440 1 2512 12757 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 iwa
+S 2517 6 3 0 0 6 1 2512 6855 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 n
+S 2518 6 3 0 0 6 1 2512 6936 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 nnz
+S 2519 14 5 0 0 0 1 2512 10109 210 400000 0 0 0 762 6 0 0 0 0 0 0 0 0 0 0 0 0 18076 0 582 0 0 0 0 srtdat
+F 2519 6 2517 2518 2513 2514 2515 2516
+S 2520 6 1 0 0 6 1 2512 12981 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_1097
+S 2521 6 1 0 0 6 1 2512 12990 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_1099
+S 2522 6 1 0 0 6 1 2512 12999 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_1101
+S 2523 23 5 0 0 0 2534 582 10116 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 fdjs
+S 2524 6 3 0 0 6 1 2523 12779 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 m
+S 2525 1 3 0 0 16 1 2523 13008 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 col
+S 2526 7 3 0 0 1455 1 2523 13012 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ind
+S 2527 7 3 0 0 1461 1 2523 13016 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 npntr
+S 2528 7 3 0 0 1458 1 2523 11607 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ngrp
+S 2529 1 3 0 0 6 1 2523 13022 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 numgrp
+S 2530 7 3 0 0 1446 1 2523 13029 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 d
+S 2531 7 3 0 0 1452 1 2523 13031 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 fjacd
+S 2532 7 3 0 0 1449 1 2523 12635 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 fjac
+S 2533 6 3 0 0 6 1 2523 6855 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 n
+S 2534 14 5 0 0 0 1 2523 10116 310 400000 0 0 0 769 10 0 0 0 0 0 0 0 0 0 0 0 0 18173 0 582 0 0 0 0 fdjs
+F 2534 10 2524 2533 2525 2526 2527 2528 2529 2530 2531 2532
+S 2535 6 1 0 0 6 1 2523 13037 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_1104
+S 2536 6 1 0 0 6 1 2523 10265 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_0_1
+S 2537 6 1 0 0 6 1 2523 13046 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_1107
+S 2538 6 1 0 0 6 1 2523 10332 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_1_1
+S 2539 6 1 0 0 6 1 2523 10494 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_2_1
+S 2540 23 5 0 0 0 2554 582 6035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 dvdsm
+S 2541 6 3 0 0 6 1 2540 12779 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 m
+S 2542 6 3 0 0 6 1 2540 13055 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 npairs
+S 2543 7 3 0 0 1467 1 2540 12687 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 indrow
+S 2544 7 3 0 0 1464 1 2540 12739 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 indcol
+S 2545 7 3 0 0 1479 1 2540 11607 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ngrp
+S 2546 1 3 0 0 6 1 2540 12674 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 maxgrp
+S 2547 1 3 0 0 6 1 2540 13062 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 mingrp
+S 2548 1 3 0 0 6 1 2540 11788 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 info
+S 2549 7 3 0 0 1470 1 2540 12746 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ipntr
+S 2550 7 3 0 0 1476 1 2540 12681 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 jpntr
+S 2551 7 3 0 0 1473 1 2540 12757 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 iwa
+S 2552 6 3 0 0 6 1 2540 13069 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 liwa
+S 2553 6 3 0 0 6 1 2540 6855 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 n
+S 2554 14 5 0 0 0 1 2540 6035 200 400000 0 0 0 780 13 0 0 0 0 0 0 0 0 0 0 0 0 18300 0 582 0 0 0 0 dvdsm
+F 2554 13 2541 2553 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552
+S 2555 6 1 0 0 6 1 2540 13074 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_1110
+S 2556 6 1 0 0 6 1 2540 13083 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_1113
+S 2557 6 1 0 0 6 1 2540 13092 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_1115
+S 2558 6 1 0 0 6 1 2540 13101 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_1118
+S 2559 6 1 0 0 6 1 2540 13110 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_1117
+S 2560 23 5 0 0 0 2566 582 9724 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 dgroupds
+S 2561 6 3 1 0 6 1 2560 6855 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 n
+S 2562 6 3 1 0 6 1 2560 4732 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 maxgrpds
+S 2563 7 3 1 0 1482 1 2560 4911 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ngrpds
+S 2564 7 3 2 0 1485 1 2560 8942 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 igp
+S 2565 7 3 2 0 1488 1 2560 9329 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 jgp
+S 2566 14 5 0 0 0 1 2560 9724 210 400000 0 0 0 794 5 0 0 0 0 0 0 0 0 0 0 0 0 18479 0 582 0 0 0 0 dgroupds
+F 2566 5 2561 2562 2563 2564 2565
+S 2567 6 1 0 0 6 1 2560 13119 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_1121
+S 2568 6 1 0 0 6 1 2560 13128 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_1123
+S 2569 6 1 0 0 6 1 2560 13137 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_1125
+S 2570 23 5 0 0 0 2589 582 9914 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 jacspdb
+S 2571 14 3 0 0 8 1 2570 12631 10000 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 fcn
+S 2572 1 3 0 0 9 1 2570 10228 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 t
+S 2573 7 3 0 0 1503 1 2570 10226 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 y
+S 2574 7 3 0 0 1491 1 2570 10220 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 f
+S 2575 7 3 0 0 1497 1 2570 12635 800304 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 fjac
+S 2576 6 3 0 0 6 1 2570 12640 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 nrfjac
+S 2577 7 3 0 0 1506 1 2570 12647 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 yscale
+S 2578 7 3 0 0 1494 1 2570 12654 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 fac
+S 2579 7 3 0 0 1500 1 2570 12658 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 wk
+S 2580 6 3 0 0 6 1 2570 12661 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 lwk
+S 2581 7 3 0 0 1515 1 2570 12665 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 iwk
+S 2582 6 3 0 0 6 1 2570 12669 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 liwk
+S 2583 1 3 0 0 6 1 2570 12674 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 maxgrp
+S 2584 7 3 0 0 1521 1 2570 11607 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ngrp
+S 2585 7 3 0 0 1518 1 2570 12681 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 jpntr
+S 2586 7 3 0 0 1509 1 2570 12687 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 indrow
+S 2587 6 3 0 0 6 1 2570 6855 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 n
+S 2588 7 3 0 0 1512 1 2570 6167 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 iopt
+S 2589 14 5 0 0 0 1 2570 9914 310 400000 0 0 0 800 18 0 0 0 0 0 0 0 0 0 0 0 0 18527 0 582 0 0 0 0 jacspdb
+F 2589 18 2571 2587 2572 2573 2574 2575 2576 2577 2578 2588 2579 2580 2581 2582 2583 2584 2585 2586
+S 2590 6 1 0 0 6 1 2570 13146 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_1128
+S 2591 6 1 0 0 6 1 2570 13155 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_1130
+S 2592 6 1 0 0 6 1 2570 10265 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_0_1
+S 2593 6 1 0 0 6 1 2570 13164 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_1133
+S 2594 6 1 0 0 6 1 2570 13173 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_1135
+S 2595 6 1 0 0 6 1 2570 10332 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_1_1
+S 2596 6 1 0 0 6 1 2570 10494 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_2_1
+S 2597 6 1 0 0 6 1 2570 13182 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_1139
+S 2598 6 1 0 0 6 1 2570 10502 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_3_1
+A 12 2 0 0 0 9 578 0 0 0 12 0 0 0 0 0 0 0 0 0
+A 13 2 0 0 0 6 584 0 0 0 13 0 0 0 0 0 0 0 0 0
+A 16 2 0 0 0 6 597 0 0 0 16 0 0 0 0 0 0 0 0 0
+A 17 2 0 0 0 6 602 0 0 0 17 0 0 0 0 0 0 0 0 0
+A 18 1 0 1 0 36 598 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 19 10 0 0 0 6 18 1 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 17
+A 20 2 0 0 0 6 603 0 0 0 20 0 0 0 0 0 0 0 0 0
+A 21 10 0 0 19 6 18 4 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 20
+A 22 4 0 0 0 6 21 0 3 0 0 0 0 2 0 0 0 0 0 0
+A 23 4 0 0 7 6 19 0 22 0 0 0 0 1 0 0 0 0 0 0
+A 24 2 0 0 0 6 604 0 0 0 24 0 0 0 0 0 0 0 0 0
+A 25 10 0 0 21 6 18 7 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 24
+A 26 2 0 0 0 6 605 0 0 0 26 0 0 0 0 0 0 0 0 0
+A 27 10 0 0 25 6 18 10 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 26
+A 28 10 0 0 27 6 18 13 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 13
+A 30 1 0 1 0 42 608 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 31 10 0 0 0 6 30 1 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 17
+A 32 10 0 0 31 6 30 4 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 20
+A 33 4 0 0 0 6 32 0 3 0 0 0 0 2 0 0 0 0 0 0
+A 34 4 0 0 0 6 31 0 33 0 0 0 0 1 0 0 0 0 0 0
+A 35 10 0 0 32 6 30 7 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 24
+A 36 10 0 0 35 6 30 10 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 26
+A 37 10 0 0 36 6 30 13 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 13
+A 39 1 0 1 0 48 614 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 40 10 0 0 0 6 39 1 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 17
+A 41 10 0 0 40 6 39 4 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 20
+A 42 4 0 0 0 6 41 0 3 0 0 0 0 2 0 0 0 0 0 0
+A 43 4 0 0 0 6 40 0 42 0 0 0 0 1 0 0 0 0 0 0
+A 44 10 0 0 41 6 39 7 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 24
+A 45 10 0 0 44 6 39 10 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 26
+A 46 10 0 0 45 6 39 13 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 13
+A 48 1 0 1 0 54 620 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 49 10 0 0 0 6 48 1 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 17
+A 50 10 0 0 49 6 48 4 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 20
+A 51 4 0 0 0 6 50 0 3 0 0 0 0 2 0 0 0 0 0 0
+A 52 4 0 0 0 6 49 0 51 0 0 0 0 1 0 0 0 0 0 0
+A 53 10 0 0 50 6 48 7 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 24
+A 54 10 0 0 53 6 48 10 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 26
+A 55 10 0 0 54 6 48 13 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 13
+A 57 1 0 1 0 60 626 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 58 10 0 0 0 6 57 1 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 17
+A 59 10 0 0 58 6 57 4 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 20
+A 60 4 0 0 0 6 59 0 3 0 0 0 0 2 0 0 0 0 0 0
+A 61 4 0 0 0 6 58 0 60 0 0 0 0 1 0 0 0 0 0 0
+A 62 10 0 0 59 6 57 7 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 24
+A 63 10 0 0 62 6 57 10 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 26
+A 64 10 0 0 63 6 57 13 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 13
+A 66 1 0 1 0 66 632 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 67 10 0 0 0 6 66 1 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 17
+A 68 10 0 0 67 6 66 4 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 20
+A 69 4 0 0 0 6 68 0 3 0 0 0 0 2 0 0 0 0 0 0
+A 70 4 0 0 0 6 67 0 69 0 0 0 0 1 0 0 0 0 0 0
+A 71 10 0 0 68 6 66 7 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 24
+A 72 10 0 0 71 6 66 10 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 26
+A 73 10 0 0 72 6 66 13 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 13
+A 75 1 0 1 14 72 638 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 76 10 0 0 0 6 75 1 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 17
+A 77 10 0 0 76 6 75 4 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 20
+A 78 4 0 0 0 6 77 0 3 0 0 0 0 2 0 0 0 0 0 0
+A 79 4 0 0 0 6 76 0 78 0 0 0 0 1 0 0 0 0 0 0
+A 80 10 0 0 77 6 75 7 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 24
+A 81 10 0 0 80 6 75 10 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 26
+A 82 10 0 0 81 6 75 13 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 13
+A 84 1 0 1 0 78 644 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 85 10 0 0 84 6 84 1 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 17
+A 86 10 0 0 85 6 84 4 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 20
+A 87 4 0 0 0 6 86 0 3 0 0 0 0 2 0 0 0 0 0 0
+A 88 4 0 0 0 6 85 0 87 0 0 0 0 1 0 0 0 0 0 0
+A 89 10 0 0 86 6 84 7 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 24
+A 90 10 0 0 89 6 84 10 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 26
+A 91 10 0 0 90 6 84 13 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 13
+A 93 1 0 1 0 84 650 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 94 10 0 0 0 6 93 1 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 17
+A 95 10 0 0 94 6 93 4 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 20
+A 96 4 0 0 13 6 95 0 3 0 0 0 0 2 0 0 0 0 0 0
+A 97 4 0 0 0 6 94 0 96 0 0 0 0 1 0 0 0 0 0 0
+A 98 10 0 0 95 6 93 7 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 24
+A 99 10 0 0 98 6 93 10 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 26
+A 100 10 0 0 99 6 93 13 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 13
+A 102 1 0 1 0 90 656 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 103 10 0 0 29 6 102 1 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 17
+A 104 10 0 0 103 6 102 4 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 20
+A 105 4 0 0 0 6 104 0 3 0 0 0 0 2 0 0 0 0 0 0
+A 106 4 0 0 60 6 103 0 105 0 0 0 0 1 0 0 0 0 0 0
+A 107 10 0 0 104 6 102 7 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 24
+A 108 10 0 0 107 6 102 10 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 26
+A 109 10 0 0 108 6 102 13 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 13
+A 111 1 0 1 0 96 662 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 112 10 0 0 0 6 111 1 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 17
+A 113 10 0 0 112 6 111 4 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 20
+A 114 4 0 0 17 6 113 0 3 0 0 0 0 2 0 0 0 0 0 0
+A 115 4 0 0 0 6 112 0 114 0 0 0 0 1 0 0 0 0 0 0
+A 116 10 0 0 113 6 111 7 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 24
+A 117 10 0 0 116 6 111 10 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 26
+A 118 10 0 0 117 6 111 13 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 13
+A 119 2 0 0 0 16 669 0 0 0 119 0 0 0 0 0 0 0 0 0
+A 121 2 0 0 0 6 671 0 0 0 121 0 0 0 0 0 0 0 0 0
+A 123 2 0 0 0 6 673 0 0 0 123 0 0 0 0 0 0 0 0 0
+A 124 2 0 0 0 6 674 0 0 0 124 0 0 0 0 0 0 0 0 0
+A 127 2 0 0 0 6 677 0 0 0 127 0 0 0 0 0 0 0 0 0
+A 129 2 0 0 0 6 679 0 0 0 129 0 0 0 0 0 0 0 0 0
+A 132 2 0 0 0 6 682 0 0 0 132 0 0 0 0 0 0 0 0 0
+A 135 2 0 0 0 6 685 0 0 0 135 0 0 0 0 0 0 0 0 0
+A 137 2 0 0 0 6 687 0 0 0 137 0 0 0 0 0 0 0 0 0
+A 140 2 0 0 0 6 690 0 0 0 140 0 0 0 0 0 0 0 0 0
+A 142 2 0 0 0 6 692 0 0 0 142 0 0 0 0 0 0 0 0 0
+A 144 2 0 0 0 6 694 0 0 0 144 0 0 0 0 0 0 0 0 0
+A 147 2 0 0 0 6 697 0 0 0 147 0 0 0 0 0 0 0 0 0
+A 149 2 0 0 0 9 699 0 0 0 149 0 0 0 0 0 0 0 0 0
+A 151 2 0 0 0 9 701 0 0 0 151 0 0 0 0 0 0 0 0 0
+A 154 2 0 0 0 9 704 0 0 0 154 0 0 0 0 0 0 0 0 0
+A 156 2 0 0 0 9 706 0 0 0 156 0 0 0 0 0 0 0 0 0
+A 158 2 0 0 0 9 708 0 0 0 158 0 0 0 0 0 0 0 0 0
+A 161 2 0 0 0 9 711 0 0 0 161 0 0 0 0 0 0 0 0 0
+A 164 2 0 0 0 9 714 0 0 0 164 0 0 0 0 0 0 0 0 0
+A 168 2 0 0 0 9 718 0 0 0 168 0 0 0 0 0 0 0 0 0
+A 170 2 0 0 30 9 720 0 0 0 170 0 0 0 0 0 0 0 0 0
+A 172 2 0 0 0 9 722 0 0 0 172 0 0 0 0 0 0 0 0 0
+A 174 2 0 0 0 9 580 0 0 0 174 0 0 0 0 0 0 0 0 0
+A 176 2 0 0 0 9 725 0 0 0 176 0 0 0 0 0 0 0 0 0
+A 178 2 0 0 0 9 727 0 0 0 178 0 0 0 0 0 0 0 0 0
+A 181 2 0 0 0 9 730 0 0 0 181 0 0 0 0 0 0 0 0 0
+A 185 2 0 0 143 9 579 0 0 0 185 0 0 0 0 0 0 0 0 0
+A 190 2 0 0 0 9 738 0 0 0 190 0 0 0 0 0 0 0 0 0
+A 192 2 0 0 0 9 740 0 0 0 192 0 0 0 0 0 0 0 0 0
+A 195 2 0 0 141 9 577 0 0 0 195 0 0 0 0 0 0 0 0 0
+A 198 1 0 1 0 108 756 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 199 10 0 0 155 6 198 1 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 17
+A 200 10 0 0 199 6 198 4 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 20
+A 201 4 0 0 0 6 200 0 3 0 0 0 0 2 0 0 0 0 0 0
+A 202 4 0 0 0 6 199 0 201 0 0 0 0 1 0 0 0 0 0 0
+A 203 10 0 0 200 6 198 7 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 24
+A 204 10 0 0 203 6 198 10 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 26
+A 205 10 0 0 204 6 198 13 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 13
+A 207 1 0 1 0 114 762 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 208 10 0 0 163 6 207 1 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 17
+A 209 10 0 0 208 6 207 4 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 20
+A 210 4 0 0 0 6 209 0 3 0 0 0 0 2 0 0 0 0 0 0
+A 211 4 0 0 93 6 208 0 210 0 0 0 0 1 0 0 0 0 0 0
+A 212 10 0 0 209 6 207 7 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 24
+A 213 10 0 0 212 6 207 10 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 26
+A 214 10 0 0 213 6 207 13 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 13
+A 216 1 0 1 0 120 968 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 217 10 0 0 173 6 216 1 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 17
+A 218 10 0 0 217 6 216 4 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 20
+A 219 4 0 0 207 6 218 0 3 0 0 0 0 2 0 0 0 0 0 0
+A 220 4 0 0 0 6 217 0 219 0 0 0 0 1 0 0 0 0 0 0
+A 221 10 0 0 218 6 216 7 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 24
+A 222 10 0 0 221 6 216 10 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 26
+A 223 10 0 0 222 6 216 13 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 13
+A 225 1 0 1 0 126 974 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 226 10 0 0 0 6 225 1 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 17
+A 227 10 0 0 226 6 225 4 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 20
+A 228 4 0 0 0 6 227 0 3 0 0 0 0 2 0 0 0 0 0 0
+A 229 4 0 0 0 6 226 0 228 0 0 0 0 1 0 0 0 0 0 0
+A 230 10 0 0 227 6 225 7 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 24
+A 231 10 0 0 230 6 225 10 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 26
+A 232 10 0 0 231 6 225 13 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 13
+A 234 1 0 1 0 132 980 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 235 10 0 0 193 6 234 1 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 17
+A 236 10 0 0 235 6 234 4 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 20
+A 237 4 0 0 176 6 236 0 3 0 0 0 0 2 0 0 0 0 0 0
+A 238 4 0 0 0 6 235 0 237 0 0 0 0 1 0 0 0 0 0 0
+A 239 10 0 0 236 6 234 7 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 24
+A 240 10 0 0 239 6 234 10 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 26
+A 241 10 0 0 240 6 234 13 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 13
+A 243 1 0 1 0 138 986 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 244 10 0 0 0 6 243 1 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 17
+A 245 10 0 0 244 6 243 4 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 20
+A 246 4 0 0 0 6 245 0 3 0 0 0 0 2 0 0 0 0 0 0
+A 247 4 0 0 133 6 244 0 246 0 0 0 0 1 0 0 0 0 0 0
+A 248 10 0 0 245 6 243 7 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 24
+A 249 10 0 0 248 6 243 10 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 26
+A 250 10 0 0 249 6 243 13 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 13
+A 252 1 0 1 0 144 992 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 253 10 0 0 0 6 252 1 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 17
+A 254 10 0 0 253 6 252 4 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 20
+A 255 4 0 0 0 6 254 0 3 0 0 0 0 2 0 0 0 0 0 0
+A 256 4 0 0 0 6 253 0 255 0 0 0 0 1 0 0 0 0 0 0
+A 257 10 0 0 254 6 252 7 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 24
+A 258 10 0 0 257 6 252 10 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 26
+A 259 10 0 0 258 6 252 13 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 13
+A 261 1 0 1 0 150 998 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 262 10 0 0 0 6 261 1 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 17
+A 263 10 0 0 262 6 261 4 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 20
+A 264 4 0 0 255 6 263 0 3 0 0 0 0 2 0 0 0 0 0 0
+A 265 4 0 0 0 6 262 0 264 0 0 0 0 1 0 0 0 0 0 0
+A 266 10 0 0 263 6 261 7 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 24
+A 267 10 0 0 266 6 261 10 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 26
+A 268 10 0 0 267 6 261 13 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 13
+A 270 1 0 1 0 156 1004 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 271 10 0 0 0 6 270 1 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 17
+A 272 10 0 0 271 6 270 4 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 20
+A 273 4 0 0 0 6 272 0 3 0 0 0 0 2 0 0 0 0 0 0
+A 274 4 0 0 0 6 271 0 273 0 0 0 0 1 0 0 0 0 0 0
+A 275 10 0 0 272 6 270 7 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 24
+A 276 10 0 0 275 6 270 10 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 26
+A 277 10 0 0 276 6 270 13 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 13
+A 279 1 0 1 0 162 1010 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 280 10 0 0 220 6 279 1 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 17
+A 281 10 0 0 280 6 279 4 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 20
+A 282 4 0 0 0 6 281 0 3 0 0 0 0 2 0 0 0 0 0 0
+A 283 4 0 0 0 6 280 0 282 0 0 0 0 1 0 0 0 0 0 0
+A 284 10 0 0 281 6 279 7 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 24
+A 285 10 0 0 284 6 279 10 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 26
+A 286 10 0 0 285 6 279 13 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 13
+A 288 1 0 1 0 168 1016 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 289 10 0 0 0 6 288 1 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 17
+A 290 10 0 0 289 6 288 4 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 20
+A 291 4 0 0 0 6 290 0 3 0 0 0 0 2 0 0 0 0 0 0
+A 292 4 0 0 0 6 289 0 291 0 0 0 0 1 0 0 0 0 0 0
+A 293 10 0 0 290 6 288 7 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 24
+A 294 10 0 0 293 6 288 10 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 26
+A 295 10 0 0 294 6 288 13 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 13
+A 297 1 0 1 33 174 1022 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 298 10 0 0 140 6 297 1 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 17
+A 299 10 0 0 298 6 297 4 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 20
+A 300 4 0 0 0 6 299 0 3 0 0 0 0 2 0 0 0 0 0 0
+A 301 4 0 0 0 6 298 0 300 0 0 0 0 1 0 0 0 0 0 0
+A 302 10 0 0 299 6 297 7 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 24
+A 303 10 0 0 302 6 297 10 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 26
+A 304 10 0 0 303 6 297 13 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 13
+A 306 1 0 1 0 180 1028 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 307 10 0 0 149 6 306 1 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 17
+A 308 10 0 0 307 6 306 4 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 20
+A 309 4 0 0 0 6 308 0 3 0 0 0 0 2 0 0 0 0 0 0
+A 310 4 0 0 34 6 307 0 309 0 0 0 0 1 0 0 0 0 0 0
+A 311 10 0 0 308 6 306 7 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 24
+A 312 10 0 0 311 6 306 10 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 26
+A 313 10 0 0 312 6 306 13 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 13
+A 315 1 0 1 0 186 1034 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 316 10 0 0 158 6 315 1 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 17
+A 317 10 0 0 316 6 315 4 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 20
+A 318 4 0 0 0 6 317 0 3 0 0 0 0 2 0 0 0 0 0 0
+A 319 4 0 0 0 6 316 0 318 0 0 0 0 1 0 0 0 0 0 0
+A 320 10 0 0 317 6 315 7 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 24
+A 321 10 0 0 320 6 315 10 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 26
+A 322 10 0 0 321 6 315 13 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 13
+A 324 1 0 1 0 192 1040 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 325 10 0 0 0 6 324 1 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 17
+A 326 10 0 0 325 6 324 4 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 20
+A 327 4 0 0 0 6 326 0 3 0 0 0 0 2 0 0 0 0 0 0
+A 328 4 0 0 52 6 325 0 327 0 0 0 0 1 0 0 0 0 0 0
+A 329 10 0 0 326 6 324 7 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 24
+A 330 10 0 0 329 6 324 10 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 26
+A 331 10 0 0 330 6 324 13 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 13
+A 333 1 0 1 0 198 1046 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 334 10 0 0 0 6 333 1 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 17
+A 335 10 0 0 334 6 333 4 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 20
+A 336 4 0 0 0 6 335 0 3 0 0 0 0 2 0 0 0 0 0 0
+A 337 4 0 0 0 6 334 0 336 0 0 0 0 1 0 0 0 0 0 0
+A 338 10 0 0 335 6 333 7 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 24
+A 339 10 0 0 338 6 333 10 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 26
+A 340 10 0 0 339 6 333 13 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 13
+A 342 1 0 1 0 204 1052 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 343 10 0 0 9 6 342 1 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 17
+A 344 10 0 0 343 6 342 4 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 20
+A 345 4 0 0 0 6 344 0 3 0 0 0 0 2 0 0 0 0 0 0
+A 346 4 0 0 70 6 343 0 345 0 0 0 0 1 0 0 0 0 0 0
+A 347 10 0 0 344 6 342 7 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 24
+A 348 10 0 0 347 6 342 10 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 26
+A 349 10 0 0 348 6 342 13 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 13
+A 351 1 0 1 0 210 1058 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 352 10 0 0 0 6 351 1 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 17
+A 353 10 0 0 352 6 351 4 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 20
+A 354 4 0 0 0 6 353 0 3 0 0 0 0 2 0 0 0 0 0 0
+A 355 4 0 0 0 6 352 0 354 0 0 0 0 1 0 0 0 0 0 0
+A 356 10 0 0 353 6 351 7 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 24
+A 357 10 0 0 356 6 351 10 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 26
+A 358 10 0 0 357 6 351 13 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 13
+A 360 1 0 1 0 216 1064 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 361 10 0 0 0 6 360 1 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 17
+A 362 10 0 0 361 6 360 4 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 20
+A 363 4 0 0 0 6 362 0 3 0 0 0 0 2 0 0 0 0 0 0
+A 364 4 0 0 88 6 361 0 363 0 0 0 0 1 0 0 0 0 0 0
+A 365 10 0 0 362 6 360 7 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 24
+A 366 10 0 0 365 6 360 10 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 26
+A 367 10 0 0 366 6 360 13 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 13
+A 369 1 0 1 295 222 1070 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 370 10 0 0 0 6 369 1 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 17
+A 371 10 0 0 370 6 369 4 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 20
+A 372 4 0 0 0 6 371 0 3 0 0 0 0 2 0 0 0 0 0 0
+A 373 4 0 0 0 6 370 0 372 0 0 0 0 1 0 0 0 0 0 0
+A 374 10 0 0 371 6 369 7 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 24
+A 375 10 0 0 374 6 369 10 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 26
+A 376 10 0 0 375 6 369 13 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 13
+A 379 2 0 0 138 6 1077 0 0 0 379 0 0 0 0 0 0 0 0 0
+A 380 1 0 3 0 228 1078 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 381 10 0 0 0 6 380 1 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 17
+A 382 10 0 0 381 6 380 4 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 20
+A 383 4 0 0 0 6 382 0 3 0 0 0 0 2 0 0 0 0 0 0
+A 384 4 0 0 0 6 381 0 383 0 0 0 0 1 0 0 0 0 0 0
+A 385 2 0 0 185 6 1082 0 0 0 385 0 0 0 0 0 0 0 0 0
+A 386 10 0 0 382 6 380 16 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 385
+A 387 10 0 0 386 6 380 19 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 142
+A 388 4 0 0 233 6 387 0 3 0 0 0 0 2 0 0 0 0 0 0
+A 389 4 0 0 0 6 386 0 388 0 0 0 0 1 0 0 0 0 0 0
+A 390 10 0 0 387 6 380 7 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 24
+A 391 2 0 0 174 6 1083 0 0 0 391 0 0 0 0 0 0 0 0 0
+A 392 10 0 0 390 6 380 22 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 391
+A 393 10 0 0 392 6 380 10 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 26
+A 394 10 0 0 393 6 380 13 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 13
+A 396 1 0 1 42 234 1086 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 397 10 0 0 0 6 396 1 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 17
+A 398 10 0 0 397 6 396 4 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 20
+A 399 4 0 0 0 6 398 0 3 0 0 0 0 2 0 0 0 0 0 0
+A 400 4 0 0 0 6 397 0 399 0 0 0 0 1 0 0 0 0 0 0
+A 401 10 0 0 398 6 396 7 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 24
+A 402 10 0 0 401 6 396 10 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 26
+A 403 10 0 0 402 6 396 13 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 13
+A 405 1 0 1 323 240 1092 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 406 10 0 0 0 6 405 1 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 17
+A 407 10 0 0 406 6 405 4 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 20
+A 408 4 0 0 0 6 407 0 3 0 0 0 0 2 0 0 0 0 0 0
+A 409 4 0 0 368 6 406 0 408 0 0 0 0 1 0 0 0 0 0 0
+A 410 10 0 0 407 6 405 7 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 24
+A 411 10 0 0 410 6 405 10 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 26
+A 412 10 0 0 411 6 405 13 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 13
+A 414 1 0 1 332 246 1098 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 415 10 0 0 0 6 414 1 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 17
+A 416 10 0 0 415 6 414 4 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 20
+A 417 4 0 0 0 6 416 0 3 0 0 0 0 2 0 0 0 0 0 0
+A 418 4 0 0 0 6 415 0 417 0 0 0 0 1 0 0 0 0 0 0
+A 419 10 0 0 416 6 414 7 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 24
+A 420 10 0 0 419 6 414 10 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 26
+A 421 10 0 0 420 6 414 13 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 13
+A 423 1 0 1 341 252 1104 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 424 10 0 0 0 6 423 1 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 17
+A 425 10 0 0 424 6 423 4 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 20
+A 426 4 0 0 0 6 425 0 3 0 0 0 0 2 0 0 0 0 0 0
+A 427 4 0 0 0 6 424 0 426 0 0 0 0 1 0 0 0 0 0 0
+A 428 10 0 0 425 6 423 7 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 24
+A 429 10 0 0 428 6 423 10 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 26
+A 430 10 0 0 429 6 423 13 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 13
+A 432 1 0 1 0 258 1110 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 433 10 0 0 0 6 432 1 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 17
+A 434 10 0 0 433 6 432 4 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 20
+A 435 4 0 0 28 6 434 0 3 0 0 0 0 2 0 0 0 0 0 0
+A 436 4 0 0 23 6 433 0 435 0 0 0 0 1 0 0 0 0 0 0
+A 437 10 0 0 434 6 432 7 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 24
+A 438 10 0 0 437 6 432 10 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 26
+A 439 10 0 0 438 6 432 13 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 13
+A 441 1 0 1 0 264 1116 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 442 10 0 0 0 6 441 1 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 17
+A 443 10 0 0 442 6 441 4 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 20
+A 444 4 0 0 0 6 443 0 3 0 0 0 0 2 0 0 0 0 0 0
+A 445 4 0 0 0 6 442 0 444 0 0 0 0 1 0 0 0 0 0 0
+A 446 10 0 0 443 6 441 7 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 24
+A 447 10 0 0 446 6 441 10 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 26
+A 448 10 0 0 447 6 441 13 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 13
+A 449 2 0 0 186 6 1124 0 0 0 449 0 0 0 0 0 0 0 0 0
+A 451 1 0 1 0 282 1127 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 452 10 0 0 0 6 451 1 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 17
+A 453 10 0 0 452 6 451 4 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 20
+A 454 4 0 0 414 6 453 0 3 0 0 0 0 2 0 0 0 0 0 0
+A 455 4 0 0 219 6 452 0 454 0 0 0 0 1 0 0 0 0 0 0
+A 456 10 0 0 453 6 451 7 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 24
+A 457 10 0 0 456 6 451 10 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 26
+A 458 10 0 0 457 6 451 13 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 13
+A 460 1 0 1 380 288 1133 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 461 10 0 0 346 6 460 1 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 17
+A 462 10 0 0 461 6 460 4 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 20
+A 463 4 0 0 0 6 462 0 3 0 0 0 0 2 0 0 0 0 0 0
+A 464 4 0 0 0 6 461 0 463 0 0 0 0 1 0 0 0 0 0 0
+A 465 10 0 0 462 6 460 7 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 24
+A 466 10 0 0 465 6 460 10 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 26
+A 467 10 0 0 466 6 460 13 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 13
+A 469 1 0 1 0 294 1139 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 470 10 0 0 383 6 469 1 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 17
+A 471 10 0 0 470 6 469 4 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 20
+A 472 4 0 0 359 6 471 0 3 0 0 0 0 2 0 0 0 0 0 0
+A 473 4 0 0 327 6 470 0 472 0 0 0 0 1 0 0 0 0 0 0
+A 474 10 0 0 471 6 469 7 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 24
+A 475 10 0 0 474 6 469 10 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 26
+A 476 10 0 0 475 6 469 13 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 13
+A 478 1 0 1 0 300 1145 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 479 10 0 0 0 6 478 1 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 17
+A 480 10 0 0 479 6 478 4 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 20
+A 481 4 0 0 274 6 480 0 3 0 0 0 0 2 0 0 0 0 0 0
+A 482 4 0 0 159 6 479 0 481 0 0 0 0 1 0 0 0 0 0 0
+A 483 10 0 0 480 6 478 7 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 24
+A 484 10 0 0 483 6 478 10 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 26
+A 485 10 0 0 484 6 478 13 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 13
+A 487 1 0 1 0 306 1151 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 488 10 0 0 102 6 487 1 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 17
+A 489 10 0 0 488 6 487 4 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 20
+A 490 4 0 0 0 6 489 0 3 0 0 0 0 2 0 0 0 0 0 0
+A 491 4 0 0 426 6 488 0 490 0 0 0 0 1 0 0 0 0 0 0
+A 492 10 0 0 489 6 487 7 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 24
+A 493 10 0 0 492 6 487 10 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 26
+A 494 10 0 0 493 6 487 13 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 13
+A 496 1 0 1 0 312 1157 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 497 10 0 0 0 6 496 1 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 17
+A 498 10 0 0 497 6 496 4 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 20
+A 499 4 0 0 0 6 498 0 3 0 0 0 0 2 0 0 0 0 0 0
+A 500 4 0 0 144 6 497 0 499 0 0 0 0 1 0 0 0 0 0 0
+A 501 10 0 0 498 6 496 7 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 24
+A 502 10 0 0 501 6 496 10 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 26
+A 503 10 0 0 502 6 496 13 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 13
+A 505 1 0 1 0 318 1163 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 506 10 0 0 0 6 505 1 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 17
+A 507 10 0 0 506 6 505 4 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 20
+A 508 4 0 0 15 6 507 0 3 0 0 0 0 2 0 0 0 0 0 0
+A 509 4 0 0 38 6 506 0 508 0 0 0 0 1 0 0 0 0 0 0
+A 510 10 0 0 507 6 505 7 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 24
+A 511 10 0 0 510 6 505 10 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 26
+A 512 10 0 0 511 6 505 13 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 13
+A 514 1 0 1 0 324 1169 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 515 10 0 0 0 6 514 1 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 17
+A 516 10 0 0 515 6 514 4 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 20
+A 517 4 0 0 508 6 516 0 3 0 0 0 0 2 0 0 0 0 0 0
+A 518 4 0 0 0 6 515 0 517 0 0 0 0 1 0 0 0 0 0 0
+A 519 10 0 0 516 6 514 7 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 24
+A 520 10 0 0 519 6 514 10 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 26
+A 521 10 0 0 520 6 514 13 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 13
+A 524 1 0 3 403 330 1176 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 525 10 0 0 0 6 524 1 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 17
+A 526 10 0 0 525 6 524 4 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 20
+A 527 4 0 0 431 6 526 0 3 0 0 0 0 2 0 0 0 0 0 0
+A 528 4 0 0 0 6 525 0 527 0 0 0 0 1 0 0 0 0 0 0
+A 529 10 0 0 526 6 524 16 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 385
+A 530 10 0 0 529 6 524 19 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 142
+A 531 4 0 0 0 6 530 0 3 0 0 0 0 2 0 0 0 0 0 0
+A 532 4 0 0 224 6 529 0 531 0 0 0 0 1 0 0 0 0 0 0
+A 533 10 0 0 530 6 524 7 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 24
+A 534 10 0 0 533 6 524 22 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 391
+A 535 10 0 0 534 6 524 10 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 26
+A 536 10 0 0 535 6 524 13 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 13
+A 539 1 0 3 0 336 1183 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 540 10 0 0 0 6 539 1 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 17
+A 541 10 0 0 540 6 539 4 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 20
+A 542 4 0 0 279 6 541 0 3 0 0 0 0 2 0 0 0 0 0 0
+A 543 4 0 0 270 6 540 0 542 0 0 0 0 1 0 0 0 0 0 0
+A 544 10 0 0 541 6 539 16 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 385
+A 545 10 0 0 544 6 539 19 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 142
+A 546 4 0 0 56 6 545 0 3 0 0 0 0 2 0 0 0 0 0 0
+A 547 4 0 0 142 6 544 0 546 0 0 0 0 1 0 0 0 0 0 0
+A 548 10 0 0 545 6 539 7 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 24
+A 549 10 0 0 548 6 539 22 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 391
+A 550 10 0 0 549 6 539 10 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 26
+A 551 10 0 0 550 6 539 13 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 13
+A 553 1 0 1 304 342 1189 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 554 10 0 0 0 6 553 1 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 17
+A 555 10 0 0 554 6 553 4 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 20
+A 556 4 0 0 468 6 555 0 3 0 0 0 0 2 0 0 0 0 0 0
+A 557 4 0 0 0 6 554 0 556 0 0 0 0 1 0 0 0 0 0 0
+A 558 10 0 0 555 6 553 7 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 24
+A 559 10 0 0 558 6 553 10 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 26
+A 560 10 0 0 559 6 553 13 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 13
+A 562 1 0 1 0 348 1195 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 563 10 0 0 0 6 562 1 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 17
+A 564 10 0 0 563 6 562 4 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 20
+A 565 4 0 0 0 6 564 0 3 0 0 0 0 2 0 0 0 0 0 0
+A 566 4 0 0 128 6 563 0 565 0 0 0 0 1 0 0 0 0 0 0
+A 567 10 0 0 564 6 562 7 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 24
+A 568 10 0 0 567 6 562 10 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 26
+A 569 10 0 0 568 6 562 13 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 13
+A 571 1 0 1 486 354 1201 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 572 10 0 0 378 6 571 1 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 17
+A 573 10 0 0 572 6 571 4 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 20
+A 574 4 0 0 495 6 573 0 3 0 0 0 0 2 0 0 0 0 0 0
+A 575 4 0 0 0 6 572 0 574 0 0 0 0 1 0 0 0 0 0 0
+A 576 10 0 0 573 6 571 7 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 24
+A 577 10 0 0 576 6 571 10 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 26
+A 578 10 0 0 577 6 571 13 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 13
+A 580 1 0 1 574 360 1207 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 581 10 0 0 395 6 580 1 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 17
+A 582 10 0 0 581 6 580 4 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 20
+A 583 4 0 0 0 6 582 0 3 0 0 0 0 2 0 0 0 0 0 0
+A 584 4 0 0 0 6 581 0 583 0 0 0 0 1 0 0 0 0 0 0
+A 585 10 0 0 582 6 580 7 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 24
+A 586 10 0 0 585 6 580 10 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 26
+A 587 10 0 0 586 6 580 13 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 13
+A 589 1 0 1 504 366 1213 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 590 10 0 0 0 6 589 1 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 17
+A 591 10 0 0 590 6 589 4 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 20
+A 592 4 0 0 522 6 591 0 3 0 0 0 0 2 0 0 0 0 0 0
+A 593 4 0 0 377 6 590 0 592 0 0 0 0 1 0 0 0 0 0 0
+A 594 10 0 0 591 6 589 7 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 24
+A 595 10 0 0 594 6 589 10 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 26
+A 596 10 0 0 595 6 589 13 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 13
+A 598 1 0 1 55 372 1219 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 599 10 0 0 422 6 598 1 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 17
+A 600 10 0 0 599 6 598 4 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 20
+A 601 4 0 0 131 6 600 0 3 0 0 0 0 2 0 0 0 0 0 0
+A 602 4 0 0 282 6 599 0 601 0 0 0 0 1 0 0 0 0 0 0
+A 603 10 0 0 600 6 598 7 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 24
+A 604 10 0 0 603 6 598 10 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 26
+A 605 10 0 0 604 6 598 13 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 13
+A 607 1 0 1 0 378 1225 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 608 10 0 0 0 6 607 1 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 17
+A 609 10 0 0 608 6 607 4 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 20
+A 610 4 0 0 195 6 609 0 3 0 0 0 0 2 0 0 0 0 0 0
+A 611 4 0 0 580 6 608 0 610 0 0 0 0 1 0 0 0 0 0 0
+A 612 10 0 0 609 6 607 7 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 24
+A 613 10 0 0 612 6 607 10 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 26
+A 614 10 0 0 613 6 607 13 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 13
+A 616 1 0 1 524 384 1231 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 617 10 0 0 0 6 616 1 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 17
+A 618 10 0 0 617 6 616 4 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 20
+A 619 4 0 0 150 6 618 0 3 0 0 0 0 2 0 0 0 0 0 0
+A 620 4 0 0 363 6 617 0 619 0 0 0 0 1 0 0 0 0 0 0
+A 621 10 0 0 618 6 616 7 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 24
+A 622 10 0 0 621 6 616 10 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 26
+A 623 10 0 0 622 6 616 13 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 13
+A 625 1 0 1 0 390 1237 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 626 10 0 0 288 6 625 1 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 17
+A 627 10 0 0 626 6 625 4 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 20
+A 628 4 0 0 482 6 627 0 3 0 0 0 0 2 0 0 0 0 0 0
+A 629 4 0 0 252 6 626 0 628 0 0 0 0 1 0 0 0 0 0 0
+A 630 10 0 0 627 6 625 7 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 24
+A 631 10 0 0 630 6 625 10 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 26
+A 632 10 0 0 631 6 625 13 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 13
+A 634 1 0 1 0 396 1243 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 635 10 0 0 0 6 634 1 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 17
+A 636 10 0 0 635 6 634 4 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 20
+A 637 4 0 0 167 6 636 0 3 0 0 0 0 2 0 0 0 0 0 0
+A 638 4 0 0 0 6 635 0 637 0 0 0 0 1 0 0 0 0 0 0
+A 639 10 0 0 636 6 634 7 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 24
+A 640 10 0 0 639 6 634 10 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 26
+A 641 10 0 0 640 6 634 13 0 0 0 0 0 0 0 0 0 0 0 0
+X 1 13
+A 642 2 0 0 0 6 1248 0 0 0 642 0 0 0 0 0 0 0 0 0
+A 675 1 0 0 181 6 1345 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 676 1 0 0 0 6 1347 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 677 1 0 0 349 6 1350 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 678 1 0 0 0 6 1352 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 679 1 0 0 0 6 1356 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 680 1 0 0 192 6 1355 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 681 1 0 0 0 6 1357 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 682 1 0 0 328 6 1369 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 683 1 0 0 643 6 1365 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 684 1 0 0 273 6 1367 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 685 1 0 0 367 6 1368 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 686 1 0 0 0 6 1370 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 687 1 0 0 324 6 1378 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 688 1 0 0 667 6 1379 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 689 1 0 0 0 6 1400 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 690 1 0 0 671 6 1398 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 691 1 0 0 0 6 1401 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 692 1 0 0 441 6 1399 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 693 1 0 0 430 6 1431 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 694 1 0 0 0 6 1429 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 695 1 0 0 0 6 1432 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 696 1 0 0 336 6 1430 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 697 1 0 0 0 6 1435 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 698 1 0 0 0 6 1433 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 699 1 0 0 647 6 1436 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 700 1 0 0 0 6 1434 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 701 1 0 0 345 6 1439 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 702 1 0 0 651 6 1437 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 703 1 0 0 439 6 1440 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 704 1 0 0 654 6 1438 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 705 1 0 0 0 6 1443 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 706 1 0 0 0 6 1441 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 707 1 0 0 0 6 1444 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 708 1 0 0 0 6 1442 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 709 1 0 0 242 6 1488 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 710 1 0 0 485 6 1486 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 711 1 0 0 211 6 1489 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 712 1 0 0 0 6 1487 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 713 1 0 0 0 6 1492 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 714 1 0 0 0 6 1490 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 715 1 0 0 399 6 1493 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 716 1 0 0 0 6 1491 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 717 1 0 0 0 6 1496 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 718 1 0 0 251 6 1494 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 719 1 0 0 0 6 1497 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 720 1 0 0 494 6 1495 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 721 1 0 0 260 6 1500 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 722 1 0 0 0 6 1498 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 723 1 0 0 0 6 1501 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 724 1 0 0 0 6 1499 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 725 1 0 0 503 6 1504 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 726 1 0 0 408 6 1502 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 727 1 0 0 0 6 1505 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 728 1 0 0 0 6 1503 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 729 1 0 0 0 6 1508 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 730 1 0 0 269 6 1506 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 731 1 0 0 0 6 1509 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 732 1 0 0 0 6 1507 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 733 1 0 0 278 6 1512 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 734 1 0 0 0 6 1510 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 735 1 0 0 512 6 1513 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 736 1 0 0 417 6 1511 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 737 2 0 0 0 6 1520 0 0 0 737 0 0 0 0 0 0 0 0 0
+A 738 1 0 0 0 6 1523 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 739 1 0 0 0 6 1521 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 740 1 0 0 296 6 1524 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 741 1 0 0 521 6 1522 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 742 1 0 0 0 6 1527 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 743 1 0 0 0 6 1531 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 744 1 0 0 435 6 1529 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 745 1 0 0 536 6 1532 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 746 1 0 0 487 6 1546 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 747 1 0 0 0 6 1535 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 748 1 0 0 551 6 1547 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 749 1 0 0 46 6 1550 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 750 1 0 0 454 6 1548 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 751 1 0 0 657 6 1551 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 752 1 0 0 0 6 1549 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 753 1 0 0 423 6 1554 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 754 1 0 0 496 6 1552 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 755 1 0 0 0 6 1555 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 756 1 0 0 0 6 1553 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 757 1 0 0 64 6 1568 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 758 1 0 0 0 6 1585 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 759 1 0 0 82 6 1586 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 760 1 0 0 0 6 1587 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 761 1 0 0 587 6 1588 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 762 1 0 0 75 6 1589 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 763 1 0 0 0 6 1590 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 764 1 0 0 0 6 1599 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 765 1 0 0 517 6 1602 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 766 1 0 0 91 6 1595 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 767 1 0 0 413 6 1600 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 768 1 0 0 0 6 1601 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 769 1 0 0 0 6 1611 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 770 1 0 0 464 6 1614 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 771 1 0 0 0 6 1607 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 772 1 0 0 527 6 1612 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 773 1 0 0 109 6 1613 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 774 1 0 0 0 6 1621 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 775 1 0 0 0 6 1638 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 776 1 0 0 297 6 1639 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 777 1 0 0 460 6 1640 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 778 1 0 0 556 6 1641 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 779 1 0 0 641 6 1642 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 780 1 0 0 0 6 1645 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 781 1 0 0 47 6 1625 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 782 1 0 0 74 6 1643 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 783 1 0 0 0 6 1644 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 784 1 0 0 469 6 1646 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 785 1 0 0 477 6 1647 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 786 1 0 0 396 6 1648 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 787 1 0 0 0 6 1658 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 788 1 0 0 571 6 1653 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 789 1 0 0 0 6 1656 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 790 1 0 0 51 6 1657 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 791 1 0 0 292 6 1674 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 792 1 0 0 69 6 1675 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 793 1 0 0 122 6 1676 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 794 1 0 0 592 6 1677 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 795 1 0 0 523 6 1678 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 796 1 0 0 566 6 1681 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 797 1 0 0 0 6 1662 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 798 1 0 0 337 6 1679 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 799 1 0 0 0 6 1680 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 800 1 0 0 0 6 1682 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 801 1 0 0 0 6 1683 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 802 1 0 0 145 6 1699 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 803 1 0 0 0 6 1700 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 804 1 0 0 146 6 1701 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 805 1 0 0 148 6 1702 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 806 1 0 0 570 6 1703 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 807 1 0 0 152 6 1706 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 808 1 0 0 247 6 1687 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 809 1 0 0 619 6 1704 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 810 1 0 0 0 6 1705 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 811 1 0 0 0 6 1707 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 812 1 0 0 153 6 1708 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 813 1 0 0 114 6 1720 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 814 1 0 0 628 6 1713 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 815 1 0 0 0 6 1717 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 816 1 0 0 157 6 1711 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 817 1 0 0 214 6 1718 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 818 1 0 0 165 6 1719 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 819 1 0 0 169 6 1723 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 820 1 0 0 588 6 1715 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 821 1 0 0 597 6 1721 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 822 1 0 0 637 6 1722 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 823 1 0 0 177 6 1730 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 824 1 0 0 0 6 1731 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 825 1 0 0 179 6 1732 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 826 1 0 0 184 6 1738 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 827 1 0 0 624 6 1739 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 828 1 0 0 196 6 1748 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 829 1 0 0 0 6 1749 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 830 1 0 0 189 6 1742 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 831 1 0 0 0 6 1750 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 832 1 0 0 250 6 1754 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 833 1 0 0 0 6 1757 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 834 1 0 0 0 6 1798 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 835 1 0 0 369 6 1799 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 836 1 0 0 132 6 1800 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 837 1 0 0 135 6 1803 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 838 1 0 0 124 6 1792 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 839 1 0 0 451 6 1801 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 840 1 0 0 539 6 1802 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 841 1 0 0 0 6 1811 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 842 1 0 0 500 6 1812 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 843 1 0 0 0 6 1813 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 844 1 0 0 322 6 1826 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 845 1 0 0 0 6 1827 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 846 1 0 0 18 6 1828 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 847 1 0 0 161 6 1829 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 848 1 0 0 0 6 1830 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 849 1 0 0 0 6 1831 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 850 1 0 0 172 6 1840 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 851 1 0 0 0 6 1841 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 852 1 0 0 0 6 1842 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 853 1 0 0 190 6 1856 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 854 1 0 0 682 6 1872 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 855 1 0 0 686 6 1873 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 856 1 0 0 0 6 1874 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 857 1 0 0 0 6 1875 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 858 1 0 0 234 6 1876 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 859 1 0 0 602 6 1879 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 860 1 0 0 681 6 1860 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 861 1 0 0 653 6 1877 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 862 1 0 0 0 6 1878 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 863 1 0 0 376 6 1880 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 864 1 0 0 687 6 1881 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 865 1 0 0 666 6 1887 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 866 1 0 0 668 6 1888 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 867 1 0 0 689 6 1903 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 868 1 0 0 691 6 1904 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 869 1 0 0 0 6 1905 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 870 1 0 0 309 6 1906 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 871 1 0 0 0 6 1909 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 872 1 0 0 646 6 1892 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 873 1 0 0 616 6 1907 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 874 1 0 0 0 6 1908 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 875 1 0 0 0 6 1910 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 876 1 0 0 412 6 1916 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 877 1 0 0 0 6 1917 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 878 1 0 0 650 6 1924 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 879 1 0 0 421 6 1925 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 880 1 0 0 0 6 1926 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 881 1 0 0 699 6 1939 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 882 1 0 0 702 6 1940 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 883 1 0 0 704 6 1941 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 884 1 0 0 701 6 1942 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 885 1 0 0 708 6 1945 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 886 1 0 0 693 6 1934 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 887 1 0 0 703 6 1943 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 888 1 0 0 706 6 1944 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 889 1 0 0 354 6 1951 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 890 1 0 0 528 6 1957 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 891 1 0 0 575 6 1964 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 892 1 0 0 467 6 1971 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 893 1 0 0 532 6 1979 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 894 1 0 0 709 6 1991 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 895 1 0 0 301 6 1984 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 896 1 0 0 710 6 1989 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 897 1 0 0 712 6 1990 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 898 1 0 0 711 6 1992 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 899 1 0 0 721 6 2003 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 900 1 0 0 713 6 1995 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 901 1 0 0 722 6 2001 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 902 1 0 0 724 6 2002 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 903 1 0 0 723 6 2004 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 904 1 0 0 726 6 2005 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 905 1 0 0 0 6 2017 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 906 1 0 0 727 6 2008 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 907 1 0 0 733 6 2015 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 908 1 0 0 735 6 2016 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 909 1 0 0 0 6 2018 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 910 1 0 0 216 6 2031 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 911 1 0 0 287 6 2021 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 912 1 0 0 0 6 2029 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 913 1 0 0 742 6 2030 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 914 1 0 0 744 6 2032 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 915 1 0 0 305 6 2033 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 916 1 0 0 315 6 2042 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 917 1 0 0 0 6 2043 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 918 1 0 0 750 6 2051 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 919 1 0 0 752 6 2052 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 920 1 0 0 505 6 2061 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 921 1 0 0 598 6 2062 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 922 1 0 0 472 6 2069 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 923 1 0 0 0 6 2076 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 924 1 0 0 73 6 2080 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 925 1 0 0 761 6 2091 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 926 1 0 0 758 6 2088 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 927 1 0 0 762 6 2092 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 928 1 0 0 0 6 2094 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 929 1 0 0 763 6 2093 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 930 1 0 0 578 6 2082 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 931 1 0 0 0 6 2095 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 932 1 0 0 499 6 2096 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 933 1 0 0 596 6 2100 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 934 1 0 0 771 6 2110 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 935 1 0 0 0 6 2106 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 936 1 0 0 0 6 2111 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 937 1 0 0 0 6 2113 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 938 1 0 0 0 6 2112 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 939 1 0 0 766 6 2098 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 940 1 0 0 769 6 2114 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 941 1 0 0 770 6 2117 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 942 1 0 0 0 6 2133 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 943 1 0 0 0 6 2129 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 944 1 0 0 546 6 2134 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 945 1 0 0 531 6 2119 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 946 1 0 0 737 6 2135 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 947 1 0 0 0 6 2137 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 948 1 0 0 632 6 2136 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 949 1 0 0 459 6 2138 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 950 1 0 0 775 6 2141 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 951 1 0 0 784 6 2149 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 952 1 0 0 782 6 2146 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 953 1 0 0 785 6 2150 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 954 1 0 0 83 6 2152 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 955 1 0 0 786 6 2151 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 956 1 0 0 92 6 2158 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 957 1 0 0 583 6 2171 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 958 1 0 0 0 6 2154 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 959 1 0 0 0 6 2172 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 960 1 0 0 589 6 2168 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 961 1 0 0 61 6 2173 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 962 1 0 0 0 6 2175 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 963 1 0 0 513 6 2174 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 964 1 0 0 793 6 2179 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 965 1 0 0 12 6 2199 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 966 1 0 0 791 6 2177 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 967 1 0 0 561 6 2200 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 968 1 0 0 800 6 2185 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 969 1 0 0 391 6 2201 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 970 1 0 0 806 6 2206 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 971 1 0 0 812 6 2211 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 972 1 0 0 807 6 2209 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 973 1 0 0 579 6 2212 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 974 1 0 0 0 6 2215 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 975 1 0 0 0 6 2227 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 976 1 0 0 813 6 2223 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 977 1 0 0 171 6 2228 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 978 1 0 0 0 6 2231 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 979 1 0 0 188 6 2244 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 980 1 0 0 183 6 2240 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 981 1 0 0 830 6 2245 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 982 1 0 0 831 6 2253 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 983 1 0 0 832 6 2257 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 984 1 0 0 57 6 2247 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 985 1 0 0 0 6 2258 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 986 1 0 0 833 6 2260 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 987 1 0 0 0 6 2259 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 988 1 0 0 206 6 2270 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 989 1 0 0 0 6 2274 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 990 1 0 0 0 6 2262 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 991 1 0 0 268 6 2275 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 992 1 0 0 0 6 2278 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 993 1 0 0 261 6 2285 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 994 1 0 0 0 6 2277 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 995 1 0 0 0 6 2286 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 996 1 0 0 265 6 2289 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 997 1 0 0 123 6 2294 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 998 1 0 0 0 6 2288 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 999 1 0 0 838 6 2295 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1000 1 0 0 126 6 2297 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1001 1 0 0 837 6 2306 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1002 1 0 0 835 6 2302 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1003 1 0 0 0 6 2307 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1004 1 0 0 672 6 2310 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1005 2 0 0 877 6 2308 0 0 0 1005 0 0 0 0 0 0 0 0 0
+A 1006 1 0 0 673 6 2309 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1007 1 0 0 313 6 2320 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1008 1 0 0 0 6 2324 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1009 1 0 0 0 6 2312 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1010 1 0 0 154 6 2325 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1011 1 0 0 455 6 2328 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1012 1 0 0 662 6 2337 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1013 1 0 0 849 6 2334 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1014 1 0 0 663 6 2338 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1015 1 0 0 111 6 2340 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1016 1 0 0 664 6 2339 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1017 1 0 0 850 6 2343 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1018 1 0 0 674 6 2354 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1019 1 0 0 655 6 2350 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1020 1 0 0 246 6 2355 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1021 1 0 0 645 6 2357 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1022 1 0 0 677 6 2356 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1023 1 0 0 678 6 2358 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1024 1 0 0 680 6 2361 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1025 1 0 0 0 6 2368 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1026 1 0 0 358 6 2365 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1027 1 0 0 0 6 2369 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1028 1 0 0 683 6 2371 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1029 1 0 0 861 6 2380 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1030 1 0 0 856 6 2377 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1031 1 0 0 862 6 2381 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1032 1 0 0 863 6 2383 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1033 1 0 0 859 6 2382 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1034 1 0 0 0 6 2401 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1035 1 0 0 690 6 2404 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1036 1 0 0 868 6 2407 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1037 1 0 0 865 6 2390 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1038 1 0 0 692 6 2405 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1039 1 0 0 867 6 2406 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1040 1 0 0 394 6 2394 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1041 1 0 0 869 6 2408 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1042 1 0 0 870 6 2409 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1043 1 0 0 873 6 2410 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1044 1 0 0 342 6 2396 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1045 1 0 0 874 6 2411 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1046 1 0 0 871 6 2412 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1047 1 0 0 634 6 2422 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1048 1 0 0 518 6 2423 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1049 1 0 0 0 6 2424 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1050 1 0 0 1005 6 2420 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1051 1 0 0 0 6 2425 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1052 4 0 0 958 6 1050 0 3 0 0 0 0 1 0 0 0 0 0 0
+A 1053 1 0 0 0 6 2426 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1054 1 0 0 881 6 2442 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1055 1 0 0 882 6 2443 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1056 1 0 0 879 6 2428 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1057 4 0 0 790 6 1056 0 3 0 0 0 0 1 0 0 0 0 0 0
+A 1058 1 0 0 883 6 2444 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1059 1 0 0 700 6 2440 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1060 4 0 0 0 6 1059 0 3 0 0 0 0 2 0 0 0 0 0 0
+A 1061 1 0 0 884 6 2445 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1062 1 0 0 887 6 2446 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1063 1 0 0 888 6 2447 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1064 4 0 0 1060 6 1059 0 3 0 0 0 0 1 0 0 0 0 0 0
+A 1065 1 0 0 885 6 2448 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1066 1 0 0 889 6 2454 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1067 1 0 0 0 6 2458 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1068 1 0 0 707 6 2450 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1069 1 0 0 0 6 2459 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1070 1 0 0 890 6 2460 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1071 1 0 0 372 6 2472 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1072 1 0 0 0 6 2473 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1073 1 0 0 892 6 2474 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1074 1 0 0 115 6 2470 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1075 1 0 0 0 6 2475 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1076 4 0 0 792 6 1074 0 3 0 0 0 0 1 0 0 0 0 0 0
+A 1077 1 0 0 215 6 2476 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1078 1 0 0 0 6 2486 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1079 1 0 0 895 6 2487 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1080 1 0 0 0 6 2478 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1081 4 0 0 796 6 1080 0 3 0 0 0 0 1 0 0 0 0 0 0
+A 1082 1 0 0 388 6 2488 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1083 1 0 0 0 6 2489 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1084 1 0 0 0 6 2484 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1085 4 0 0 538 6 1084 0 3 0 0 0 0 1 0 0 0 0 0 0
+A 1086 1 0 0 0 6 2490 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1087 1 0 0 902 6 2505 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1088 1 0 0 899 6 2506 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1089 1 0 0 903 6 2507 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1090 1 0 0 719 6 2503 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1091 4 0 0 552 6 1090 0 3 0 0 0 0 2 0 0 0 0 0 0
+A 1092 1 0 0 904 6 2508 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1093 1 0 0 728 6 2509 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1094 1 0 0 725 6 2510 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1095 4 0 0 1091 6 1090 0 3 0 0 0 0 1 0 0 0 0 0 0
+A 1096 1 0 0 906 6 2511 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1097 1 0 0 907 6 2518 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1098 1 0 0 905 6 2520 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1099 1 0 0 736 6 2517 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1100 1 0 0 909 6 2521 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1101 4 0 0 803 6 1099 0 3 0 0 0 0 1 0 0 0 0 0 0
+A 1102 1 0 0 0 6 2522 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1103 1 0 0 913 6 2533 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1104 1 0 0 914 6 2535 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1105 1 0 0 915 6 2536 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1106 1 0 0 911 6 2524 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1107 1 0 0 743 6 2537 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1108 1 0 0 745 6 2538 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1109 1 0 0 306 6 2539 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1110 1 0 0 314 6 2542 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1111 1 0 0 919 6 2555 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1112 1 0 0 747 6 2541 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1113 4 0 0 814 6 1112 0 3 0 0 0 0 1 0 0 0 0 0 0
+A 1114 1 0 0 749 6 2556 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1115 1 0 0 746 6 2552 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1116 1 0 0 751 6 2557 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1117 1 0 0 748 6 2553 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1118 4 0 0 817 6 1117 0 3 0 0 0 0 1 0 0 0 0 0 0
+A 1119 1 0 0 754 6 2558 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1120 1 0 0 756 6 2559 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1121 1 0 0 0 6 2562 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1122 1 0 0 560 6 2567 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1123 4 0 0 822 6 1121 0 3 0 0 0 0 1 0 0 0 0 0 0
+A 1124 1 0 0 120 6 2568 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1125 1 0 0 755 6 2561 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1126 1 0 0 0 6 2569 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1127 1 0 0 0 6 2587 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1128 1 0 0 490 6 2590 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1129 1 0 0 760 6 2593 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1130 1 0 0 569 6 2576 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1131 1 0 0 926 6 2591 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1132 1 0 0 759 6 2592 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1133 1 0 0 638 6 2580 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1134 1 0 0 925 6 2594 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1135 1 0 0 927 6 2595 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1136 1 0 0 929 6 2596 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1137 1 0 0 0 6 2582 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1138 1 0 0 928 6 2597 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 1139 1 0 0 931 6 2598 0 0 0 0 0 0 0 0 0 0 0 0 0
+Z
+Z
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/DVODE/example1.dat
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/DVODE/example1.dat	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/DVODE/example1.dat	(revision 2696)
@@ -0,0 +1,20 @@
+ At t =  0.4000D+00   y =  0.985164D+00  0.338624D-04  0.148020D-01
+ At t =  0.4000D+01   y =  0.905510D+00  0.224034D-04  0.944679D-01
+ At t =  0.4000D+02   y =  0.715801D+00  0.918506D-05  0.284189D+00
+ At t =  0.4000D+03   y =  0.450542D+00  0.322311D-05  0.549455D+00
+ At t =  0.4000D+04   y =  0.183206D+00  0.894285D-06  0.816793D+00
+ At t =  0.4000D+05   y =  0.389805D-01  0.162165D-06  0.961019D+00
+ At t =  0.4000D+06   y =  0.493369D-02  0.198317D-07  0.995066D+00
+ At t =  0.4000D+07   y =  0.516828D-03  0.206837D-08  0.999483D+00
+ At t =  0.4000D+08   y =  0.520449D-04  0.208190D-09  0.999948D+00
+ At t =  0.4000D+09   y =  0.523068D-05  0.209228D-10  0.999995D+00
+ At t =  0.4000D+10   y =  0.520829D-06  0.208332D-11  0.999999D+00
+ At t =  0.4000D+11   y =  0.567917D-07  0.227167D-12  0.100000D+01
+
+  No. steps = 578   No. f-s = 827  No. J-s =  12   No. LU-s = 122
+  No. nonlinear iterations = 822
+  No. nonlinear convergence failures =   0
+  No. error test failures =  33
+
+
+ No errors occurred.
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/DVODE/example1.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/DVODE/example1.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/DVODE/example1.f90	(revision 2696)
@@ -0,0 +1,116 @@
+    MODULE EXAMPLE1
+
+! DEMONSTRATION PROGRAM FOR THE DVODE_F90 PACKAGE.
+
+! The following is a simple example problem, with the coding
+! needed for its solution by DVODE_F90. The problem is from
+! chemical kinetics, and consists of the following three rate
+! equations:
+!     dy1/dt = -.04d0*y1 + 1.d4*y2*y3
+!     dy2/dt = .04d0*y1 - 1.d4*y2*y3 - 3.d7*y2**2
+!     dy3/dt = 3.d7*y2**2
+! on the interval from t = 0.0d0 to t = 4.d10, with initial
+! conditions y1 = 1.0d0, y2 = y3 = 0.0d0. The problem is stiff.
+
+! The following coding solves this problem with DVODE_F90,
+! using a user supplied Jacobian and printing results at
+! t = .4, 4.,...,4.d10. It uses ITOL = 2 and ATOL much smaller
+! for y2 than y1 or y3 because y2 has much smaller values. At
+! the end of the run, statistical quantities of interest are
+! printed. (See optional output in the full DVODE description
+! below.) Output is written to the file example1.dat.
+
+    CONTAINS
+
+      SUBROUTINE FEX(NEQ,T,Y,YDOT)
+        IMPLICIT NONE
+        INTEGER NEQ
+        DOUBLE PRECISION T, Y, YDOT
+        DIMENSION Y(NEQ), YDOT(NEQ)
+
+        YDOT(1) = -.04D0*Y(1) + 1.D4*Y(2)*Y(3)
+        YDOT(3) = 3.E7*Y(2)*Y(2)
+        YDOT(2) = -YDOT(1) - YDOT(3)
+        RETURN
+      END SUBROUTINE FEX
+
+      SUBROUTINE JEX(NEQ,T,Y,ML,MU,PD,NRPD)
+        IMPLICIT NONE
+        INTEGER NEQ, ML, MU, NRPD
+        DOUBLE PRECISION PD, T, Y
+        DIMENSION Y(NEQ), PD(NRPD,NEQ)
+
+        PD(1,1) = -.04D0
+        PD(1,2) = 1.D4*Y(3)
+        PD(1,3) = 1.D4*Y(2)
+        PD(2,1) = .04D0
+        PD(2,3) = -PD(1,3)
+        PD(3,2) = 6.E7*Y(2)
+        PD(2,2) = -PD(1,2) - PD(3,2)
+        RETURN
+      END SUBROUTINE JEX
+
+    END MODULE EXAMPLE1
+
+!******************************************************************
+
+    PROGRAM RUNEXAMPLE1
+
+      USE DVODE_F90_M
+      USE EXAMPLE1
+
+      IMPLICIT NONE
+      DOUBLE PRECISION ATOL, RTOL, T, TOUT, Y, RSTATS
+      INTEGER NEQ, ITASK, ISTATE, ISTATS, IOUT, IERROR, I
+      DIMENSION Y(3), ATOL(3), RSTATS(22), ISTATS(31)
+
+      TYPE (VODE_OPTS) :: OPTIONS
+
+      OPEN (UNIT=6,FILE='example1.dat')
+      IERROR = 0
+      NEQ = 3
+      Y(1) = 1.0D0
+      Y(2) = 0.0D0
+      Y(3) = 0.0D0
+      T = 0.0D0
+      TOUT = 0.4D0
+      RTOL = 1.D-4
+      ATOL(1) = 1.D-8
+      ATOL(2) = 1.D-14
+      ATOL(3) = 1.D-6
+      ITASK = 1
+      ISTATE = 1
+!     OPTIONS = SET_OPTS(DENSE_J=.TRUE.,ABSERR_VECTOR=ATOL,RELERR=RTOL, &
+!       USER_SUPPLIED_JACOBIAN=.TRUE.)
+      OPTIONS = SET_NORMAL_OPTS(DENSE_J=.TRUE.,ABSERR_VECTOR=ATOL,      &
+        RELERR=RTOL,USER_SUPPLIED_JACOBIAN=.TRUE.)
+      DO IOUT = 1, 12
+        CALL DVODE_F90(FEX,NEQ,Y,T,TOUT,ITASK,ISTATE,OPTIONS,J_FCN=JEX)
+        CALL GET_STATS(RSTATS,ISTATS)
+        WRITE (6,90003) T, Y(1), Y(2), Y(3)
+        DO I = 1, NEQ
+          IF (Y(I)<0.0D0) IERROR = 1
+        END DO
+        IF (ISTATE<0) THEN
+          WRITE (6,90004) ISTATE
+          STOP
+        END IF
+        TOUT = TOUT*10.0D0
+      END DO
+      WRITE (6,90000) ISTATS(11), ISTATS(12), ISTATS(13), ISTATS(19), &
+        ISTATS(20), ISTATS(21), ISTATS(22)
+      IF (IERROR==1) THEN
+        WRITE (6,90001)
+      ELSE
+        WRITE (6,90002)
+      END IF
+90000 FORMAT (/'  No. steps =',I4,'   No. f-s =',I4,'  No. J-s =',I4, &
+        '   No. LU-s =',I4/'  No. nonlinear iterations =', &
+        I4/'  No. nonlinear convergence failures =', &
+        I4/'  No. error test failures =',I4/)
+90001 FORMAT (/' An error occurred.')
+90002 FORMAT (/' No errors occurred.')
+90003 FORMAT (' At t =',D12.4,'   y =',3D14.6)
+90004 FORMAT (///' Error halt: ISTATE =',I3)
+      STOP
+    END PROGRAM RUNEXAMPLE1
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/DVODE/example1.mod
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/DVODE/example1.mod	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/DVODE/example1.mod	(revision 2696)
@@ -0,0 +1,46 @@
+V24 example1
+12 example1.f90 S582 0
+05/10/2011  17:19:07
+enduse
+D 33 21 9 1 3 13 0 0 1 0 0
+ 0 12 3 3 13 13
+D 36 21 9 1 3 13 0 0 1 0 0
+ 0 12 3 3 13 13
+D 39 21 9 1 3 15 0 0 1 0 0
+ 0 14 3 3 15 15
+D 42 21 9 2 16 19 0 0 1 0 0
+ 0 17 3 3 18 18
+ 0 14 18 3 15 15
+S 582 24 0 0 0 8 1 0 4668 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 example1
+S 583 23 5 0 0 0 588 582 4677 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 fex
+S 584 6 3 0 0 6 1 583 4681 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 neq
+S 585 1 3 0 0 9 1 583 4685 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 t
+S 586 7 3 0 0 33 1 583 4687 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 y
+S 587 7 3 0 0 36 1 583 4689 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ydot
+S 588 14 5 0 0 0 1 583 4677 200 400000 0 0 0 2 4 0 0 0 0 0 0 0 0 0 0 0 0 25 0 582 0 0 0 0 fex
+F 588 4 584 585 586 587
+S 589 6 1 0 0 6 1 583 4694 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_12
+S 590 23 5 0 0 0 598 582 4701 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 jex
+S 591 6 3 0 0 6 1 590 4681 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 neq
+S 592 1 3 0 0 9 1 590 4685 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 t
+S 593 7 3 0 0 39 1 590 4687 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 y
+S 594 1 3 0 0 6 1 590 4705 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ml
+S 595 1 3 0 0 6 1 590 4708 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 mu
+S 596 7 3 0 0 42 1 590 4711 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 pd
+S 597 6 3 0 0 6 1 590 4714 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 nrpd
+S 598 14 5 0 0 0 1 590 4701 200 400000 0 0 0 7 7 0 0 0 0 0 0 0 0 0 0 0 0 37 0 582 0 0 0 0 jex
+F 598 7 591 592 593 594 595 596 597
+S 599 6 1 0 0 6 1 590 4719 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_14
+S 600 6 1 0 0 6 1 590 4726 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_16
+S 601 6 1 0 0 6 1 590 4733 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_18
+S 602 6 1 0 0 6 1 590 4740 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_20
+A 12 1 0 0 0 6 584 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 13 1 0 0 0 6 589 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 14 1 0 0 0 6 591 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 15 1 0 0 0 6 599 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 16 1 0 0 0 6 602 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 17 1 0 0 0 6 597 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 18 1 0 0 0 6 600 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 19 1 0 0 0 6 601 0 0 0 0 0 0 0 0 0 0 0 0 0
+Z
+Z
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/DVODE/example2.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/DVODE/example2.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/DVODE/example2.f90	(revision 2696)
@@ -0,0 +1,118 @@
+    MODULE EXAMPLE2
+
+! DEMONSTRATION PROGRAM FOR THE DVODE_F90 PACKAGE.
+
+! The following is a modification of the previous example
+! program to illustrate root finding. The problem is from
+! chemical kinetics, and consists of the following three
+! rate equations:
+!     dy1/dt = -.04d0*y1 + 1.d4*y2*y3
+!     dy2/dt = .04d0*y1 - 1.d4*y2*y3 - 3.d7*y2**2
+!     dy3/dt = 3.d7*y2**2
+! on the interval from t = 0.0d0 to t = 4.d10, with initial
+! conditions y1 = 1.0d0, y2 = y3 = 0.0d0. The problem is stiff.
+! In addition, we want to find the values of t, y1, y2,
+! and y3 at which:
+!   (1) y1 reaches the value 1.d-4, and
+!   (2) y3 reaches the value 1.d-2.
+
+! The following coding solves this problem with DVODE_F90
+! using an internally generated dense Jacobian and
+! printing results at t = .4, 4., ..., 4.d10, and at the
+! computed roots. It uses ITOL = 2 and ATOL much smaller
+! for y2 than y1 or y3 because y2 has much smaller values.
+! At the end of the run, statistical quantities of interest
+! are printed (see optional outputs in the full description
+! below). Output is written to the file example2.dat.
+
+    CONTAINS
+
+      SUBROUTINE FEX(NEQ,T,Y,YDOT)
+        IMPLICIT NONE
+        INTEGER NEQ
+        DOUBLE PRECISION T, Y, YDOT
+        DIMENSION Y(3), YDOT(3)
+
+        YDOT(1) = -0.04D0*Y(1) + 1.0D4*Y(2)*Y(3)
+        YDOT(3) = 3.0D7*Y(2)*Y(2)
+        YDOT(2) = -YDOT(1) - YDOT(3)
+        RETURN
+      END SUBROUTINE FEX
+
+      SUBROUTINE GEX(NEQ,T,Y,NG,GOUT)
+        IMPLICIT NONE
+        INTEGER NEQ, NG
+        DOUBLE PRECISION T, Y, GOUT
+        DIMENSION Y(3), GOUT(2)
+
+        GOUT(1) = Y(1) - 1.0D-4
+        GOUT(2) = Y(3) - 1.0D-2
+        RETURN
+      END SUBROUTINE GEX
+
+    END MODULE EXAMPLE2
+
+!******************************************************************
+
+    PROGRAM RUNEXAMPLE2
+
+      USE DVODE_F90_M
+      USE EXAMPLE2
+
+      IMPLICIT NONE
+      INTEGER ITASK, ISTATE, NG, NEQ, IOUT, JROOT, ISTATS, IERROR, I
+      DOUBLE PRECISION ATOL, RTOL, RSTATS, T, TOUT, Y
+      DIMENSION Y(3), ATOL(3), RSTATS(22), ISTATS(31), JROOT(2)
+
+      TYPE (VODE_OPTS) :: OPTIONS
+
+      OPEN (UNIT=6,FILE='example2.dat')
+      IERROR = 0
+      NEQ = 3
+      Y(1) = 1.0D0
+      Y(2) = 0.0D0
+      Y(3) = 0.0D0
+      T = 0.0D0
+      TOUT = 0.4D0
+      RTOL = 1.0D-4
+      ATOL(1) = 1.0D-8
+      ATOL(2) = 1.0D-10
+      ATOL(3) = 1.0D-8
+      ITASK = 1
+      ISTATE = 1
+      NG = 2
+!     OPTIONS = SET_OPTS(DENSE_J=.TRUE.,RELERR=RTOL,ABSERR_VECTOR=ATOL, &
+!       NEVENTS=NG)
+      OPTIONS = SET_NORMAL_OPTS(DENSE_J=.TRUE.,RELERR=RTOL,             &
+        ABSERR_VECTOR=ATOL,NEVENTS=NG)
+      DO 20 IOUT = 1, 12
+10      CONTINUE
+        CALL DVODE_F90(FEX,NEQ,Y,T,TOUT,ITASK,ISTATE,OPTIONS,G_FCN=GEX)
+        CALL GET_STATS(RSTATS,ISTATS,NG,JROOT)
+        WRITE (6,90000) T, Y(1), Y(2), Y(3)
+        DO I = 1, NEQ
+          IF (Y(I)<0.0D0) IERROR = 1
+        END DO
+90000   FORMAT (' At t =',D12.4,'   Y =',3D14.6)
+        IF (ISTATE<0) GO TO 30
+        IF (ISTATE==2) GO TO 20
+        WRITE (6,90001) JROOT(1), JROOT(2)
+90001   FORMAT (5X,' The above line is a root, JROOT =',2I5)
+        ISTATE = 2
+        GO TO 10
+20    TOUT = TOUT*10.0D0
+      WRITE (6,90002) ISTATS(11), ISTATS(12), ISTATS(13), ISTATS(10)
+      IF (IERROR==1) THEN
+        WRITE (6,90003)
+      ELSE
+        WRITE (6,90004)
+      END IF
+90002 FORMAT (/' No. steps =',I4,'  No. f-s =',I4,'  No. J-s =',I4, &
+        '  No. g-s =',I4/)
+      STOP
+30    WRITE (6,90005) ISTATE
+90003 FORMAT (/' An error occurred.')
+90004 FORMAT (/' No errors occurred.')
+90005 FORMAT (///' Error halt.. ISTATE =',I3)
+      STOP
+    END PROGRAM RUNEXAMPLE2
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/DVODE/nonstiffoptions.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/DVODE/nonstiffoptions.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/DVODE/nonstiffoptions.f90	(revision 2696)
@@ -0,0 +1,1232 @@
+! DVODE_F90 demonstration program
+
+! Toronto Nonstiff Test Set
+
+! Reference:
+! ALGORITHM 648, COLLECTED ALGORITHMS FROM ACM.
+! TRANSACTIONS ON MATHEMATICAL SOFTWARE,
+! VOL. 13, NO. 1, P. 28
+
+! Caution:
+! This version of the test set is intended for use only
+! in conjunction with this demo program for DVODE_F90.
+! The original test routines are altered in this version.
+! Some subroutine arguments, COMMON variables, and local
+! variables have been moved to the following global header.
+! You should obtain the original test suite from netlib
+! if you plan to use the routines for another solver.
+
+!******************************************************************
+
+    MODULE NONSTIFFSET
+
+! Note:
+! In this version ID is defined in the main program
+! demostiff. The other parameters are obtained by
+! calling IVALU with a modified argument list.
+
+      IMPLICIT NONE
+      INTEGER IWT, N, ID, NFCN
+      DOUBLE PRECISION W
+      DIMENSION W(51)
+
+    CONTAINS
+
+      SUBROUTINE DERIVS(NEQ,T,Y,YDOT)
+        IMPLICIT NONE
+        INTEGER NEQ
+        DOUBLE PRECISION T, Y, YDOT
+        DIMENSION Y(NEQ), YDOT(NEQ)
+
+        CALL FCN(T,Y,YDOT)
+        RETURN
+      END SUBROUTINE DERIVS
+
+      SUBROUTINE IVALU(XSTART,XEND,HBEGIN,HMAX,Y)
+
+!      ROUTINE TO PROVIDE THE INITIAL VALUES REQUIRED TO SPECIFY
+!      THE MATHEMATICAL PROBLEM AS WELL AS VARIOUS PROBLEM
+!      PARAMETERS REQUIRED BY THE TESTING PACKAGE. THE APPROPRIATE
+!      SCALING VECTOR IS ALSO INITIALISED IN CASE THIS OPTION IS
+!      SELECTED.
+
+!      PARAMETERS (OUTPUT)
+!      N      - DIMENSION OF THE PROBLEM
+!      XSTART - INITIAL VALUE OF THE INDEPENDENT VARIABLE
+!      XEND   - FINAL VALUE OF THE INDEPENDENT VARIABLE
+!      HBEGIN - APPROPRIATE STARTING STEPSIZE
+!      Y      - VECTOR OF INITIAL CONDITIONS FOR THE DEPENDENT
+!               VARIABLES
+!      WT     - VECTOR OF WEIGHTS USED TO SCALE THE PROBLEM IF
+!               THIS OPTION IS SELECTED.
+
+!      PARAMETER  (INPUT)
+!      IWT    - FLAG TO INDICATE IF SCALED OPTION IS SELESTED
+!      ID     - FLAG IDENTIFYING WHICH EQUATION IS BEING SOLVED
+
+        IMPLICIT NONE
+
+!     .. Scalar Arguments ..
+        DOUBLE PRECISION HBEGIN, HMAX, XEND, XSTART
+!     INTEGER ID, IWT, N
+!     .. Array Arguments ..
+        DOUBLE PRECISION Y(51)
+!     DOUBLE PRECISION W(51)
+!     .. Local Scalars ..
+        DOUBLE PRECISION E, HB, HM, XE, XS
+        INTEGER I, IOUT
+!     .. Data statements ..
+        DATA HM, HB, XS, XE/20.0D0, 1.0D0, 0.0D0, 20.0D0/
+
+!     .. Executable Statements ..
+
+        HMAX = HM
+        HBEGIN = HB
+        XSTART = XS
+        XEND = XE
+!     GOTO (40, 60, 80, 100, 120, 20, 20, 20, 20, 20, 140, 160, 180,    &
+!     200, 220, 20, 20, 20, 20, 20, 240, 280, 320, 360, 400, 20, 20, 20,&
+!     20, 20, 420, 420, 420, 420, 420, 20, 20, 20, 20, 20, 540, 560,    &
+!     580, 600, 620, 20, 20, 20, 20, 20, 640, 660, 680, 700, 720) ID
+        GO TO (20,30,40,50,60,10,10,10,10,10,70,80,90,100,110,10,10,10,10,10, &
+          120,130,140,150,160,10,10,10,10,10,170,170,170,170,170,10,10,10,10, &
+          10,230,240,250,260,270,10,10,10,10,10,280,290,300,310,320) ID
+10      IOUT = 6
+        WRITE (IOUT,FMT=90000) ID
+        STOP
+
+!     PROBLEM CLASS A
+
+!     1:
+20      CONTINUE
+!     PROBLEM A1
+        N = 1
+        W(1) = 0.100D+01
+        Y(1) = 1.0D0
+        GO TO 330
+!     2:
+30      CONTINUE
+!     PROBLEM A2
+        N = 1
+        W(1) = 0.100D+01
+        Y(1) = 1.0D0
+        GO TO 330
+!     3:
+40      CONTINUE
+!     PROBLEM A3
+        N = 1
+        W(1) = 0.271D+01
+        Y(1) = 1.0D0
+        GO TO 330
+!     4:
+50      CONTINUE
+!     PROBLEM A4
+        N = 1
+        W(1) = 0.177D+02
+        Y(1) = 1.0D0
+        GO TO 330
+!     5:
+60      CONTINUE
+!     PROBLEM A5
+        N = 1
+        W(1) = 0.620D+01
+        Y(1) = 4.0D0
+        GO TO 330
+
+!     PROBLEM CLASS B
+
+!     11:
+70      CONTINUE
+!     PROBLEM B1
+        N = 2
+        W(1) = 0.425D+01
+        W(2) = 0.300D+01
+        Y(1) = 1.0D0
+        Y(2) = 3.0D0
+        GO TO 330
+!     12:
+80      CONTINUE
+!     PROBLEM B2
+        N = 3
+        W(1) = 0.200D+01
+        W(2) = 0.100D+01
+        W(3) = 0.100D+01
+        Y(1) = 2.0D0
+        Y(2) = 0.0D0
+        Y(3) = 1.0D0
+        GO TO 330
+!     13:
+90      CONTINUE
+!     PROBLEM B3
+        N = 3
+        W(1) = 0.100D+01
+        W(2) = 0.519D+00
+        W(3) = 0.947D+00
+        Y(1) = 1.0D0
+        Y(2) = 0.0D0
+        Y(3) = 0.0D0
+        GO TO 330
+!     14:
+100     CONTINUE
+!     PROBLEM B4
+        N = 3
+        W(1) = 0.300D+01
+        W(2) = 0.220D+01
+        W(3) = 0.100D+01
+        Y(1) = 3.0D0
+        Y(2) = 0.0D0
+        Y(3) = 0.0D0
+        GO TO 330
+!     15:
+110     CONTINUE
+!     PROBLEM B5
+        N = 3
+        W(1) = 0.100D+01
+        W(2) = 0.100D+01
+        W(3) = 0.100D+01
+        Y(1) = 0.0D0
+        Y(2) = 1.0D0
+        Y(3) = 1.0D0
+        GO TO 330
+
+!     PROBLEM CLASS C
+
+!     21:
+120     CONTINUE
+!     PROBLEM C1
+        N = 10
+        W(1) = 0.100D+01
+        W(2) = 0.368D+00
+        W(3) = 0.271D+00
+        W(4) = 0.224D+00
+        W(5) = 0.195D+00
+        W(6) = 0.175D+00
+        W(7) = 0.161D+00
+        W(8) = 0.149D+00
+        W(9) = 0.139D+00
+        W(10) = 0.998D+00
+        Y(1) = 1.0D0
+        DO I = 2, N
+          Y(I) = 0.0D0
+        END DO
+        GO TO 330
+!     22:
+130     CONTINUE
+!     PROBLEM C2
+        N = 10
+        W(1) = 0.100D+01
+        W(2) = 0.250D+00
+        W(3) = 0.148D+00
+        W(4) = 0.105D+00
+        W(5) = 0.818D-01
+        W(6) = 0.669D-01
+        W(7) = 0.566D-01
+        W(8) = 0.491D-01
+        W(9) = 0.433D-01
+        W(10) = 0.100D+01
+        Y(1) = 1.0D0
+        DO I = 2, N
+          Y(I) = 0.0D0
+        END DO
+        GO TO 330
+!     23:
+140     CONTINUE
+!     PROBLEM C3
+        N = 10
+        W(1) = 0.100D+01
+        W(2) = 0.204D+00
+        W(3) = 0.955D-01
+        W(4) = 0.553D-01
+        W(5) = 0.359D-01
+        W(6) = 0.252D-01
+        W(7) = 0.184D-01
+        W(8) = 0.133D-01
+        W(9) = 0.874D-02
+        W(10) = 0.435D-02
+        Y(1) = 1.0D0
+        DO I = 2, N
+          Y(I) = 0.0D0
+        END DO
+        GO TO 330
+!     24:
+150     CONTINUE
+!     PROBLEM C4
+        N = 51
+        W(1) = 0.100D+01
+        W(2) = 0.204D+00
+        W(3) = 0.955D-01
+        W(4) = 0.553D-01
+        W(5) = 0.359D-01
+        W(6) = 0.252D-01
+        W(7) = 0.186D-01
+        W(8) = 0.143D-01
+        W(9) = 0.113D-01
+        W(10) = 0.918D-02
+        W(11) = 0.760D-02
+        W(12) = 0.622D-02
+        W(13) = 0.494D-02
+        W(14) = 0.380D-02
+        W(15) = 0.284D-02
+        W(16) = 0.207D-02
+        W(17) = 0.146D-02
+        W(18) = 0.101D-02
+        W(19) = 0.678D-03
+        W(20) = 0.444D-03
+        W(21) = 0.283D-03
+        W(22) = 0.177D-03
+        W(23) = 0.107D-03
+        W(24) = 0.637D-04
+        W(25) = 0.370D-04
+        W(26) = 0.210D-04
+        W(27) = 0.116D-04
+        W(28) = 0.631D-05
+        W(29) = 0.335D-05
+        W(30) = 0.174D-05
+        W(31) = 0.884D-06
+        W(32) = 0.440D-06
+        W(33) = 0.215D-06
+        W(34) = 0.103D-06
+        W(35) = 0.481D-07
+        W(36) = 0.221D-07
+        W(37) = 0.996D-08
+        W(38) = 0.440D-08
+        W(39) = 0.191D-08
+        W(40) = 0.814D-09
+        W(41) = 0.340D-09
+        W(42) = 0.140D-09
+        W(43) = 0.564D-10
+        W(44) = 0.224D-10
+        W(45) = 0.871D-11
+        W(46) = 0.334D-11
+        W(47) = 0.126D-11
+        W(48) = 0.465D-12
+        W(49) = 0.169D-12
+        W(50) = 0.600D-13
+        W(51) = 0.189D-13
+        Y(1) = 1.0D0
+        DO I = 2, N
+          Y(I) = 0.0D0
+        END DO
+        GO TO 330
+!     25:
+160     CONTINUE
+!     PROBLEM C5
+        N = 30
+        W(1) = 0.545D+01
+        W(2) = 0.471D+01
+        W(3) = 0.203D+01
+        W(4) = 0.664D+01
+        W(5) = 0.834D+01
+        W(6) = 0.346D+01
+        W(7) = 0.113D+02
+        W(8) = 0.172D+02
+        W(9) = 0.748D+01
+        W(10) = 0.302D+02
+        W(11) = 0.411D+01
+        W(12) = 0.144D+01
+        W(13) = 0.244D+02
+        W(14) = 0.284D+02
+        W(15) = 0.154D+02
+        W(16) = 0.764D+00
+        W(17) = 0.661D+00
+        W(18) = 0.284D+00
+        W(19) = 0.588D+00
+        W(20) = 0.366D+00
+        W(21) = 0.169D+00
+        W(22) = 0.388D+00
+        W(23) = 0.190D+00
+        W(24) = 0.877D-01
+        W(25) = 0.413D-01
+        W(26) = 0.289D+00
+        W(27) = 0.119D+00
+        W(28) = 0.177D+00
+        W(29) = 0.246D+00
+        W(30) = 0.319D-01
+        Y(1) = 3.42947415189D0
+        Y(2) = 3.35386959711D0
+        Y(3) = 1.35494901715D0
+        Y(4) = 6.64145542550D0
+        Y(5) = 5.97156957878D0
+        Y(6) = 2.18231499728D0
+        Y(7) = 11.2630437207D0
+        Y(8) = 14.6952576794D0
+        Y(9) = 6.27960525067D0
+        Y(10) = -30.1552268759D0
+        Y(11) = 1.65699966404D0
+        Y(12) = 1.43785752721D0
+        Y(13) = -21.1238353380D0
+        Y(14) = 28.4465098142D0
+        Y(15) = 15.3882659679D0
+        Y(16) = -.557160570446D0
+        Y(17) = .505696783289D0
+        Y(18) = .230578543901D0
+        Y(19) = -.415570776342D0
+        Y(20) = .365682722812D0
+        Y(21) = .169143213293D0
+        Y(22) = -.325325669158D0
+        Y(23) = .189706021964D0
+        Y(24) = .0877265322780D0
+        Y(25) = -.0240476254170D0
+        Y(26) = -.287659532608D0
+        Y(27) = -.117219543175D0
+        Y(28) = -.176860753121D0
+        Y(29) = -.216393453025D0
+        Y(30) = -.0148647893090D0
+        GO TO 330
+
+!     PROBLEM CLASS D
+
+170     CONTINUE
+!     PROBLEM D1, D2, D3, D4, D5
+        E = .2D0*(REAL(ID)-3.D1) - .1D0
+        N = 4
+        IF (ID/=31) GO TO 180
+        W(1) = 0.110D+01
+        W(2) = 0.995D+00
+        W(3) = 0.101D+01
+        W(4) = 0.111D+01
+180     IF (ID/=32) GO TO 190
+        W(1) = 0.130D+01
+        W(2) = 0.954D+00
+        W(3) = 0.105D+01
+        W(4) = 0.136D+01
+190     IF (ID/=33) GO TO 200
+        W(1) = 0.150D+01
+        W(2) = 0.866D+00
+        W(3) = 0.115D+01
+        W(4) = 0.173D+01
+200     IF (ID/=34) GO TO 210
+        W(1) = 0.170D+01
+        W(2) = 0.714D+00
+        W(3) = 0.140D+01
+        W(4) = 0.238D+01
+210     IF (ID/=35) GO TO 220
+        W(1) = 0.190D+01
+        W(2) = 0.436D+00
+        W(3) = 0.229D+01
+        W(4) = 0.436D+01
+220     CONTINUE
+        Y(1) = 1.0D0 - E
+        Y(2) = 0.0D0
+        Y(3) = 0.0D0
+        Y(4) = SQRT((1.0D0+E)/(1.0D0-E))
+        GO TO 330
+
+!     PROBLEM CLASS E
+
+!     41:
+230     CONTINUE
+!     PROBLEM E1
+        N = 2
+        W(1) = 0.679D+00
+        W(2) = 0.478D+00
+        E = .79788456080286536D0
+        Y(1) = E*.84147098480789651D0
+        Y(2) = E*.11956681346419146D0
+        GO TO 330
+!     42:
+240     CONTINUE
+!     PROBLEM E2
+        N = 2
+        W(1) = 0.201D+01
+        W(2) = 0.268D+01
+        Y(1) = 2.0D0
+        Y(2) = 0.0D0
+        GO TO 330
+!     43:
+250     CONTINUE
+!     PROBLEM E3
+        N = 2
+        W(1) = 0.116D+01
+        W(2) = 0.128D+01
+        Y(1) = 0.0D0
+        Y(2) = 0.0D0
+        GO TO 330
+!     44:
+260     CONTINUE
+!     PROBLEM E4
+        N = 2
+        W(1) = 0.340D+02
+        W(2) = 0.277D+00
+        Y(1) = 3.D1
+        Y(2) = 0.D0
+        GO TO 330
+!     45:
+270     CONTINUE
+!     PROBLEM E5
+        N = 2
+        W(1) = 0.141D+02
+        W(2) = 0.240D+01
+        Y(1) = 0.0D0
+        Y(2) = 0.0D0
+        GO TO 330
+
+!     PROBLEM CLASS F
+
+!     51:
+280     CONTINUE
+!     PROBLEM F1
+        N = 2
+        W(1) = 0.129D+02
+        W(2) = 0.384D+02
+        Y(1) = 0.0D0
+        Y(2) = 0.0D0
+        HMAX = 1.0D0
+        GO TO 330
+!     52:
+290     CONTINUE
+!     PROBLEM F2
+        N = 1
+        W(1) = 0.110D+03
+        Y(1) = 110.0D0
+        HMAX = 1.0D0
+        GO TO 330
+!     53:
+300     CONTINUE
+!     PROBLEM F3
+        N = 2
+        W(1) = 0.131D+01
+        W(2) = 0.737D+00
+        Y(1) = 0.0D0
+        Y(2) = 0.0D0
+        HMAX = 1.0D0
+        HBEGIN = 0.9D0
+        GO TO 330
+!     54:
+310     CONTINUE
+!     PROBLEM F4
+        N = 1
+        W(1) = 0.152D+01
+        Y(1) = 1.0D0
+        HMAX = 10.0D0
+        GO TO 330
+!     55:
+320     CONTINUE
+!     PROBLEM F5
+        N = 1
+        W(1) = 0.100D+01
+        Y(1) = 1.0D0
+        HMAX = 20.0D0
+330     CONTINUE
+        IF (IWT<0.) GO TO 340
+        DO I = 1, N
+          Y(I) = Y(I)/W(I)
+        END DO
+340     CONTINUE
+        RETURN
+
+90000   FORMAT ('AN INVALID INTERNAL PROBLEM ID OF ',I4, &
+          ' WAS FOUND BY THE IVALU ROUTINE',/ &
+          ' RUN TERMINATED. CHECK THE DATA.')
+      END SUBROUTINE IVALU
+
+      SUBROUTINE EVALU(Y)
+
+!     ROUTINE TO PROVIDE THE 'TRUE' SOLUTION OF THE DIFFERENTIAL
+!     EQUATION EVALUATED AT THE ENDPOINT OF THE INTEGRATION.
+
+!     PARAMETER  (OUTPUT)
+!        Y      - THE TRUE SOLUTION VECTOR EVALUATED AT THE ENDPOINT
+
+!     PARAMETERS (INPUT)
+!        N      - DIMENSION OF THE PROBLEM
+!        W      - VECTOR OF WEIGHTS USED TO SCALE THE PROBLEM
+!                 IF THIS OPTION IS SELECTED
+!        IWT    - FLAG USED TO SIGNAL WHEN THE SCALED PROBLEM IS
+!                 BEING SOLVED
+!        ID     - FLAG USED TO INDICATE WHICH EQUATION IS BEING
+!                 SOLVED
+
+        IMPLICIT NONE
+
+!     .. Scalar Arguments ..
+!     INTEGER ID, IWT, N
+!     .. Array Arguments ..
+        DOUBLE PRECISION Y(51)
+!     DOUBLE PRECISION W(51)
+!     .. Local Scalars ..
+        INTEGER I
+
+!     .. Executable Statements ..
+
+!     GOTO (20, 40, 60, 80, 100, 620, 620, 620, 620, 620, 120, 140, 160,&
+!     180, 200, 620, 620, 620, 620, 620, 220, 240, 260, 280, 300, 620,  &
+!     620, 620, 620, 620, 320, 340, 360, 380, 400, 620, 620, 620, 620,  &
+!     620, 420, 440, 460, 480, 500, 620, 620, 620, 620, 620, 520, 540,  &
+!     560, 580, 600) ID
+        GO TO (10,20,30,40,50,310,310,310,310,310,60,70,80,90,100,310,310,310, &
+          310,310,110,120,130,140,150,310,310,310,310,310,160,170,180,190,200, &
+          310,310,310,310,310,210,220,230,240,250,310,310,310,310,310,260,270, &
+          280,290,300) ID
+        GO TO 310
+
+!     PROBLEM CLASS A
+
+!     1:
+!        PROBLEM A1
+10      Y(1) = 2.061153353012535D-09
+        GO TO 310
+!     2:
+!        PROBLEM A2
+20      Y(1) = 2.182178902359887D-01
+        GO TO 310
+!     3:
+!        PROBLEM A3
+30      Y(1) = 2.491650271850414D+00
+        GO TO 310
+!     4:
+!        PROBLEM A4
+40      Y(1) = 1.773016648131483D+01
+        GO TO 310
+!     5:
+!        PROBLEM A5
+50      Y(1) = -7.887826688964196D-01
+        GO TO 310
+
+!     PROBLEM CLASS B
+
+!     11:
+!        PROBLEM B1
+60      Y(1) = 6.761876008576667D-01
+        Y(2) = 1.860816099640036D-01
+        GO TO 310
+!     12:
+!        PROBLEM B2
+70      Y(1) = 1.000000001030576D+00
+        Y(2) = 1.000000000000000D+00
+        Y(3) = 9.999999989694235D-01
+        GO TO 310
+!     13:
+!        PROBLEM B3
+80      Y(1) = 2.061153488557776D-09
+        Y(2) = 5.257228022048349D-02
+        Y(3) = 9.474277177183630D-01
+        GO TO 310
+!     14:
+!        PROBLEM B4
+90      Y(1) = 9.826950928005993D-01
+        Y(2) = 2.198447081694832D+00
+        Y(3) = 9.129452507276399D-01
+        GO TO 310
+!     15:
+!        PROBLEM B5
+100     Y(1) = -9.396570798729192D-01
+        Y(2) = -3.421177754000779D-01
+        Y(3) = 7.414126596199957D-01
+        GO TO 310
+
+!     PROBLEM CLASS C
+
+!     21:
+!        PROBLEM C1
+110     Y(1) = 2.061153622240064D-09
+        Y(2) = 4.122307244619555D-08
+        Y(3) = 4.122307244716968D-07
+        Y(4) = 2.748204829855288D-06
+        Y(5) = 1.374102414941961D-05
+        Y(6) = 5.496409659803266D-05
+        Y(7) = 1.832136553274552D-04
+        Y(8) = 5.234675866508716D-04
+        Y(9) = 1.308668966628220D-03
+        Y(10) = 9.979127409508656D-01
+        GO TO 310
+!     22:
+!        PROBLEM C2
+120     Y(1) = 2.061153577984930D-09
+        Y(2) = 2.061153573736588D-09
+        Y(3) = 2.061153569488245D-09
+        Y(4) = 2.061153565239902D-09
+        Y(5) = 2.061153560991560D-09
+        Y(6) = 2.061153556743217D-09
+        Y(7) = 2.061153552494874D-09
+        Y(8) = 2.061153548246532D-09
+        Y(9) = 2.061153543998189D-09
+        Y(10) = 9.999999814496180D-01
+        GO TO 310
+!     23:
+!        PROBLEM C3
+130     Y(1) = 2.948119211022058D-03
+        Y(2) = 5.635380154844266D-03
+        Y(3) = 7.829072515926013D-03
+        Y(4) = 9.348257908594937D-03
+        Y(5) = 1.007943610301970D-02
+        Y(6) = 9.982674171429909D-03
+        Y(7) = 9.088693332766085D-03
+        Y(8) = 7.489115195185912D-03
+        Y(9) = 5.322964130953349D-03
+        Y(10) = 2.762434379029886D-03
+        GO TO 310
+!     24:
+!        PROBLEM C4
+140     Y(1) = 3.124111453721466D-03
+        Y(2) = 6.015416842150318D-03
+        Y(3) = 8.470021834842650D-03
+        Y(4) = 1.033682931733337D-02
+        Y(5) = 1.153249572873923D-02
+        Y(6) = 1.204549525737964D-02
+        Y(7) = 1.192957068015293D-02
+        Y(8) = 1.128883207111195D-02
+        Y(9) = 1.025804501391024D-02
+        Y(10) = 8.982017581934167D-03
+        Y(11) = 7.597500902492453D-03
+        Y(12) = 6.219920556824985D-03
+        Y(13) = 4.935916341009131D-03
+        Y(14) = 3.801432544256119D-03
+        Y(15) = 2.844213677587894D-03
+        Y(16) = 2.069123394222672D-03
+        Y(17) = 1.464687282843915D-03
+        Y(18) = 1.009545263941126D-03
+        Y(19) = 6.779354330227017D-04
+        Y(20) = 4.437815269118510D-04
+        Y(21) = 2.833264542938954D-04
+        Y(22) = 1.765005798796805D-04
+        Y(23) = 1.073342592697238D-04
+        Y(24) = 6.374497601777217D-05
+        Y(25) = 3.698645309704183D-05
+        Y(26) = 2.097466832643746D-05
+        Y(27) = 1.162956710412555D-05
+        Y(28) = 6.306710405783322D-06
+        Y(29) = 3.346286430868515D-06
+        Y(30) = 1.737760074184334D-06
+        Y(31) = 8.835366904275847D-07
+        Y(32) = 4.399520411127637D-07
+        Y(33) = 2.146181897152360D-07
+        Y(34) = 1.025981211654928D-07
+        Y(35) = 4.807864068784215D-08
+        Y(36) = 2.209175152474847D-08
+        Y(37) = 9.956251263138180D-09
+        Y(38) = 4.402193653748924D-09
+        Y(39) = 1.910149382204028D-09
+        Y(40) = 8.135892921473050D-10
+        Y(41) = 3.402477118549235D-10
+        Y(42) = 1.397485617545782D-10
+        Y(43) = 5.638575303049199D-11
+        Y(44) = 2.235459707956947D-11
+        Y(45) = 8.710498036398032D-12
+        Y(46) = 3.336554275346643D-12
+        Y(47) = 1.256679567784939D-12
+        Y(48) = 4.654359053128788D-13
+        Y(49) = 1.693559145599857D-13
+        Y(50) = 5.996593816663054D-14
+        Y(51) = 1.891330702629865D-14
+        GO TO 310
+!     25:
+!        PROBLEM C5
+150     Y(1) = -4.792730224323733D+00
+        Y(2) = -2.420550725448973D+00
+        Y(3) = -9.212509306014886D-01
+        Y(4) = -4.217310404035213D+00
+        Y(5) = 7.356202947498970D+00
+        Y(6) = 3.223785985421212D+00
+        Y(7) = 4.035559443262270D+00
+        Y(8) = 1.719865528670555D+01
+        Y(9) = 7.478910794233703D+00
+        Y(10) = -2.998759326324844D+01
+        Y(11) = -4.107310937550929D+00
+        Y(12) = -9.277008321754407D-01
+        Y(13) = -2.442125302518482D+01
+        Y(14) = 2.381459045746554D+01
+        Y(15) = 1.492096306951359D+01
+        Y(16) = 3.499208963063806D-01
+        Y(17) = -5.748487687912825D-01
+        Y(18) = -2.551694020879149D-01
+        Y(19) = -5.237040978903326D-01
+        Y(20) = -2.493000463579661D-01
+        Y(21) = -8.045341642044464D-02
+        Y(22) = -3.875289237334110D-01
+        Y(23) = 5.648603288767891D-02
+        Y(24) = 3.023606472143342D-02
+        Y(25) = 4.133856546712445D-02
+        Y(26) = -2.862393029841379D-01
+        Y(27) = -1.183032405136207D-01
+        Y(28) = -1.511986457359206D-01
+        Y(29) = -2.460068894318766D-01
+        Y(30) = -3.189687411323877D-02
+        GO TO 310
+
+!     PROBLEM CLASS D
+
+!     31:
+!        PROBLEM D1
+160     Y(1) = 2.198835352008397D-01
+        Y(2) = 9.427076846341813D-01
+        Y(3) = -9.787659841058176D-01
+        Y(4) = 3.287977990962036D-01
+        GO TO 310
+!     32:
+!        PROBLEM D2
+170     Y(1) = -1.777027357140412D-01
+        Y(2) = 9.467784719905892D-01
+        Y(3) = -1.030294163192969D+00
+        Y(4) = 1.211074890053952D-01
+        GO TO 310
+!     33:
+!        PROBLEM D3
+180     Y(1) = -5.780432953035361D-01
+        Y(2) = 8.633840009194193D-01
+        Y(3) = -9.595083730380727D-01
+        Y(4) = -6.504915126712089D-02
+        GO TO 310
+!     34:
+!        PROBLEM D4
+190     Y(1) = -9.538990293416394D-01
+        Y(2) = 6.907409024219432D-01
+        Y(3) = -8.212674270877433D-01
+        Y(4) = -1.539574259125825D-01
+        GO TO 310
+!     35:
+!        PROBLEM D5
+200     Y(1) = -1.295266250987574D+00
+        Y(2) = 4.003938963792321D-01
+        Y(3) = -6.775390924707566D-01
+        Y(4) = -1.270838154278686D-01
+        GO TO 310
+
+!     PROBLEM CLASS E
+
+!     41:
+!        PROBLEM E1
+210     Y(1) = 1.456723600728308D-01
+        Y(2) = -9.883500195574063D-02
+        GO TO 310
+!     42:
+!        PROBLEM E2
+220     Y(1) = 2.008149762174948D+00
+        Y(2) = -4.250887527320057D-02
+        GO TO 310
+!     43:
+!        PROBLEM E3
+230     Y(1) = -1.004178858647128D-01
+        Y(2) = 2.411400132095954D-01
+        GO TO 310
+!     44:
+!        PROBLEM E4
+240     Y(1) = 3.395091444646555D+01
+        Y(2) = 2.767822659672869D-01
+        GO TO 310
+!     45:
+!        PROBLEM E5
+250     Y(1) = 1.411797390542629D+01
+        Y(2) = 2.400000000000002D+00
+        GO TO 310
+
+!     PROBLEM CLASS F
+
+!     51:
+!        PROBLEM F1
+260     Y(1) = -1.294460621213470D1
+        Y(2) = -2.208575158908672D-15
+        GO TO 310
+!     52:
+!        PROBLEM F2
+270     Y(1) = 70.03731057008607D0
+        GO TO 310
+!     53:
+!        PROBLEM F3
+280     Y(1) = -3.726957553088175D-1
+        Y(2) = -6.230137949234190D-1
+        GO TO 310
+!     54:
+!        PROBLEM F4
+290     Y(1) = 9.815017249707434D-11
+        GO TO 310
+!     55:
+!        PROBLEM F5
+300     Y(1) = 1.0D0
+310     CONTINUE
+        IF (IWT<0) GO TO 320
+        DO I = 1, N
+          Y(I) = Y(I)/W(I)
+        END DO
+320     CONTINUE
+        RETURN
+      END SUBROUTINE EVALU
+
+      SUBROUTINE FCN(X,Y,YP)
+
+!     ROUTINE TO EVALUATE THE DERIVATIVE F(X,Y) CORRESPONDING TO
+!     THE DIFFERENTIAL EQUATION:
+!                    DY/DX = F(X,Y) .
+!     THE ROUTINE STORES THE VECTOR OF DERIVATIVES IN YP(*). THE
+!     PARTICULAR EQUATION BEING INTEGRATED IS INDICATED BY THE
+!     VALUE OF THE FLAG ID WHICH IS PASSED THROUGH COMMON. THE
+!     DIFFERENTIAL EQUATION IS SCALED BY THE WEIGHT VECTOR W(*)
+!     IF THIS OPTION HAS BEEN SELECTED (IF SO IT IS SIGNALLED
+!     BY THE FLAG IWT).
+
+        IMPLICIT NONE
+
+!     .. Scalar Arguments ..
+        DOUBLE PRECISION X
+!     .. Array Arguments ..
+        DOUBLE PRECISION Y(51), YP(51)
+!     .. Local Scalars ..
+        DOUBLE PRECISION C1, C2, D, EX, K2, M0, P, TEMP
+        INTEGER I, I3, I3M2, ITEMP, J, L, LL, MM
+!     .. Local Arrays ..
+        DOUBLE PRECISION M(5), Q(5,5), R(5), YTEMP(51)
+!     .. Data statements ..
+!     THE FOLLOWING DATA IS FOR PROBLEM C5 AND DEFINES THE MASSES
+!     OF THE 5 OUTER PLANETS ETC. IN SOLAR UNITS.
+!     K2 IS THE GRAVITATIONAL CONSTANT.
+!     THE NEXT DATA IS FOR PROBLEMS F1 AND F5.
+!     C1 IS PI**2 + 0.1**2 AND C2 IS SUM I**(4/3) FOR I=1 TO 19.
+        DATA M0/1.00000597682D0/, M/.954786104043D-3, .285583733151D-3, &
+          .437273164546D-4, .517759138449D-4, .277777777778D-5/
+        DATA K2/2.95912208286D0/
+        DATA EX, C1, C2/.33333333333333333D0, 9.879604401089358D0, &
+          438.4461015267790D0/
+
+!     .. Executable Statements ..
+
+        NFCN = NFCN + 1
+        IF (IWT<0) GO TO 10
+        DO I = 1, N
+          YTEMP(I) = Y(I)
+          Y(I) = Y(I)*W(I)
+        END DO
+10      CONTINUE
+        GO TO (20,30,40,50,60,330,330,330,330,330,70,80,90,100,110,330,330, &
+          330,330,330,120,130,140,150,160,330,330,330,330,330,190,190,190,190, &
+          190,330,330,330,330,330,200,210,220,230,240,330,330,330,330,330,250, &
+          270,290,300,320) ID
+        GO TO 330
+
+!     PROBLEM CLASS A
+
+!     1:
+!        PROBLEM A1
+20      YP(1) = -Y(1)
+        GO TO 330
+!     2:
+!        PROBLEM A2
+30      YP(1) = -.5D0*Y(1)*Y(1)*Y(1)
+        GO TO 330
+!     3:
+!        PROBLEM A3
+40      YP(1) = Y(1)*COS(X)
+        GO TO 330
+!     4:
+!        PROBLEM A4
+50      YP(1) = (1.0D0-Y(1)/20.0D0)*Y(1)/4.D0
+        GO TO 330
+!     5:
+!        PROBLEM A5
+60      YP(1) = (Y(1)-X)/(Y(1)+X)
+        GO TO 330
+
+!     PROBLEM CLASS B
+
+!     11:
+!        PROBLEM B1
+70      D = Y(1) - Y(1)*Y(2)
+        YP(1) = D + D
+        YP(2) = -(Y(2)-Y(1)*Y(2))
+        GO TO 330
+!     12:
+!        PROBLEM B2
+80      YP(1) = -Y(1) + Y(2)
+        YP(3) = Y(2) - Y(3)
+        YP(2) = -YP(1) - YP(3)
+        GO TO 330
+!     13:
+!        PROBLEM B3
+90      D = Y(2)*Y(2)
+        YP(1) = -Y(1)
+        YP(2) = Y(1) - D
+        YP(3) = D
+        GO TO 330
+!     14:
+!        PROBLEM B4
+100     D = SQRT(Y(1)*Y(1)+Y(2)*Y(2))
+        YP(1) = -Y(2) - Y(1)*Y(3)/D
+        YP(2) = Y(1) - Y(2)*Y(3)/D
+        YP(3) = Y(1)/D
+        GO TO 330
+!     15:
+!        PROBLEM B5
+110     YP(1) = Y(2)*Y(3)
+        YP(2) = -Y(1)*Y(3)
+        YP(3) = -.51D0*Y(1)*Y(2)
+        GO TO 330
+
+!     PROBLEM CLASS C
+
+!     21:
+!        PROBLEM C1
+120     YP(1) = -Y(1)
+        DO I = 2, 9
+          YP(I) = Y(I-1) - Y(I)
+        END DO
+        YP(10) = Y(9)
+        GO TO 330
+!     22:
+!        PROBLEM C2
+130     YP(1) = -Y(1)
+        DO I = 2, 9
+          YP(I) = REAL(I-1)*Y(I-1) - REAL(I)*Y(I)
+        END DO
+        YP(10) = 9.0D0*Y(9)
+        GO TO 330
+!     23:
+!        PROBLEM C3
+140     YP(1) = -2.0D0*Y(1) + Y(2)
+        DO I = 2, 9
+          YP(I) = Y(I-1) - 2.0D0*Y(I) + Y(I+1)
+        END DO
+        YP(10) = Y(9) - 2.0D0*Y(10)
+        GO TO 330
+!     24:
+!        PROBLEM C4
+150     YP(1) = -2.0D0*Y(1) + Y(2)
+        DO I = 2, 50
+          YP(I) = Y(I-1) - 2.0D0*Y(I) + Y(I+1)
+        END DO
+        YP(51) = Y(50) - 2.0D0*Y(51)
+        GO TO 330
+!     25:
+!        PROBLEM C5
+160     I = 0
+        DO L = 3, 15, 3
+          I = I + 1
+          P = Y(L-2)**2 + Y(L-1)**2 + Y(L)**2
+          R(I) = 1.0D0/(P*SQRT(P))
+          J = 0
+          DO LL = 3, 15, 3
+            J = J + 1
+            IF (LL/=L) GO TO 170
+            GO TO 180
+!              THEN
+170         P = (Y(L-2)-Y(LL-2))**2 + (Y(L-1)-Y(LL-1))**2 + (Y(L)-Y(LL))**2
+            Q(I,J) = 1.0D0/(P*SQRT(P))
+            Q(J,I) = Q(I,J)
+180         CONTINUE
+          END DO
+        END DO
+        I3 = 0
+        DO I = 1, 5
+          I3 = I3 + 3
+          I3M2 = I3 - 2
+          DO LL = I3M2, I3
+            MM = LL - I3
+            YP(LL) = Y(LL+15)
+            P = 0.0D0
+            DO J = 1, 5
+              MM = MM + 3
+              IF (J/=I) P = P + M(J)*(Y(MM)*(Q(I,J)-R(J))-Y(LL)*Q(I,J))
+            END DO
+            YP(LL+15) = K2*(-(M0+M(I))*Y(LL)*R(I)+P)
+          END DO
+        END DO
+        GO TO 330
+
+!     PROBLEM CLASS D
+
+!     31:32:33:34:35:
+!        PROBLEMS D1, D2, D3, D4, D5
+190     YP(1) = Y(3)
+        YP(2) = Y(4)
+        D = Y(1)*Y(1) + Y(2)*Y(2)
+        D = SQRT(D*D*D)
+        YP(3) = -Y(1)/D
+        YP(4) = -Y(2)/D
+        GO TO 330
+
+!     PROBLEM CLASS E
+
+!     41:
+!        PROBLEM E1
+200     YP(1) = Y(2)
+        YP(2) = -(Y(2)/(X+1.0D0)+(1.0D0-.25D0/(X+1.0D0)**2)*Y(1))
+        GO TO 330
+!     42:
+!        PROBLEM E2
+210     YP(1) = Y(2)
+        YP(2) = (1.0D0-Y(1)*Y(1))*Y(2) - Y(1)
+        GO TO 330
+!     43:
+!        PROBLEM E3
+220     YP(1) = Y(2)
+        YP(2) = Y(1)**3/6.0D0 - Y(1) + 2.0D0*SIN(2.78535D0*X)
+        GO TO 330
+!     44:
+!        PROBLEM E4
+230     YP(1) = Y(2)
+        YP(2) = .032D0 - .4D0*Y(2)*Y(2)
+        GO TO 330
+!     45:
+!        PROBLEM E5
+240     YP(1) = Y(2)
+        YP(2) = SQRT(1.0D0+Y(2)*Y(2))/(25.0D0-X)
+        GO TO 330
+
+!     PROBLEM CLASS F
+
+!     51:
+!        PROBLEM F1
+250     YP(1) = Y(2)
+        YP(2) = .2D0*Y(2) - C1*Y(1)
+        ITEMP = INT(X)
+        IF ((ITEMP/2)*2==ITEMP) GO TO 260
+        YP(2) = YP(2) - 1.0D0
+        GO TO 330
+260     YP(2) = YP(2) + 1.0D0
+        GO TO 330
+!     52:
+!        PROBLEM F2
+270     ITEMP = INT(X)
+        IF ((ITEMP/2)*2==ITEMP) GO TO 280
+        YP(1) = 55.0D0 - .50D0*Y(1)
+        GO TO 330
+280     YP(1) = 55.0D0 - 1.50D0*Y(1)
+        GO TO 330
+!     53:
+!        PROBLEM F3
+290     YP(1) = Y(2)
+        YP(2) = .01D0*Y(2)*(1.0D0-Y(1)**2) - Y(1) - ABS(SIN( &
+          3.1415926535897932D0*X))
+        GO TO 330
+!     54:
+!        PROBLEM F4
+300     IF (X>10.) GO TO 310
+        TEMP = X - 5.0D0
+        YP(1) = -2.0D0/21.0D0 - 120.0D0*TEMP/(1.0D0+4.0D0*TEMP**2)**16
+        GO TO 330
+310     YP(1) = -2.0D0*Y(1)
+        GO TO 330
+!     55:
+!        PROBLEM F5
+320     YP(1) = Y(1)*(4.0D0/(3.0D0*C2))*(SIGN(ABS(X- &
+          1.0D0)**EX,X-1.0D0)+SIGN(ABS(X-2.0D0)**EX,X-2.0D0)+SIGN(ABS(X- &
+          3.0D0)**EX,X-3.0D0)+SIGN(ABS(X-4.0D0)**EX,X-4.0D0)+SIGN(ABS(X- &
+          5.0D0)**EX,X-5.0D0)+SIGN(ABS(X-6.0D0)**EX,X-6.0D0)+SIGN(ABS(X- &
+          7.0D0)**EX,X-7.0D0)+SIGN(ABS(X-8.0D0)**EX,X-8.0D0)+SIGN(ABS(X- &
+          9.0D0)**EX,X-9.0D0)+SIGN(ABS(X-10.0D0)**EX,X-10.0D0)+SIGN(ABS(X- &
+          11.0D0)**EX,X-11.0D0)+SIGN(ABS(X-12.0D0)**EX,X-12.0D0)+SIGN(ABS(X- &
+          13.0D0)**EX,X-13.0D0)+SIGN(ABS(X-14.0D0)**EX,X-14.0D0)+SIGN(ABS(X- &
+          15.0D0)**EX,X-15.0D0)+SIGN(ABS(X-16.0D0)**EX,X-16.0D0)+SIGN(ABS(X- &
+          17.0D0)**EX,X-17.0D0)+SIGN(ABS(X-18.0D0)**EX,X-18.0D0)+SIGN(ABS(X- &
+          19.0D0)**EX,X-19.0D0))
+330     CONTINUE
+        IF (IWT<0) GO TO 340
+        DO I = 1, N
+          YP(I) = YP(I)/W(I)
+          Y(I) = YTEMP(I)
+        END DO
+340     CONTINUE
+        RETURN
+      END SUBROUTINE FCN
+
+    END MODULE NONSTIFFSET
+
+!******************************************************************
+
+    PROGRAM DEMONONSTIFF
+
+      USE NONSTIFFSET
+      USE DVODE_F90_M
+
+      IMPLICIT NONE
+      INTEGER ITASK, ISTATE, ISTATS, NEQ, I, CLASS, PROBLEM, MYID, ITEST, ITOL
+      DOUBLE PRECISION RSTATS, T, TOUT, HBEGIN, HBOUND, TBEGIN, TEND, Y, EPS, &
+        YINIT, YFINAL, RELERR_TOLERANCES, ABSERR_TOLERANCES, AERROR
+      LOGICAL USEW, USEHBEGIN, ERRORS
+      DIMENSION Y(51), RSTATS(22), ISTATS(31), YINIT(51), YFINAL(51), MYID(55)
+      DIMENSION RELERR_TOLERANCES(51), ABSERR_TOLERANCES(51), AERROR(51)
+      TYPE (VODE_OPTS) :: OPTIONS
+      DATA MYID/1, 2, 3, 4, 5, 0, 0, 0, 0, 0, 11, 12, 13, 14, 15, 0, 0, 0, 0, &
+        0, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 31, 32, 33, 34, 35, 0, 0, 0, 0, &
+        0, 41, 42, 43, 44, 45, 0, 0, 0, 0, 0, 51, 52, 53, 54, 55/
+
+      OPEN (UNIT=6,FILE='nonstiffoptions.dat')
+
+      ERRORS = .FALSE.
+
+      DO ITOL = 4, 10, 2
+      WRITE(6,*) 'Results for ITOL = ', ITOL, ' follow.'
+      DO ITEST = 1, 55
+        ID = MYID(ITEST)
+        IF (ID==0) GO TO 20
+        WRITE (6,90010)
+        CLASS = ID/10
+        PROBLEM = ID - 10*CLASS
+        IF (CLASS==0) THEN
+          WRITE (6,90000) PROBLEM
+        ELSE IF (CLASS==1) THEN
+          WRITE (6,90001) PROBLEM
+        ELSE IF (CLASS==2) THEN
+          WRITE (6,90002) PROBLEM
+        ELSE IF (CLASS==3) THEN
+          WRITE (6,90003) PROBLEM
+        ELSE IF (CLASS==4) THEN
+          WRITE (6,90004) PROBLEM
+        ELSE IF (CLASS==5) THEN
+          WRITE (6,90005) PROBLEM
+        END IF
+!     Scale the odes?
+        USEW = .TRUE.
+!     Use the IVALU starting step size?
+        USEHBEGIN = .TRUE.
+        IWT = -1
+        IF (USEW) IWT = 1
+        CALL IVALU(TBEGIN,TEND,HBEGIN,HBOUND,YINIT)
+        IF (.NOT. USEHBEGIN) HBEGIN = 0.0D0
+        NEQ = N
+        T = TBEGIN
+        TOUT = TEND
+        Y(1:NEQ) = YINIT(1:NEQ)
+        EPS = 1.0D0 / 10.0D0**ITOL
+        RELERR_TOLERANCES(1:NEQ) = EPS
+        ABSERR_TOLERANCES(1:NEQ) = EPS
+        WRITE (6,90007) ID, TBEGIN, TEND, HBEGIN, HBOUND, IWT, N, EPS, Y(1:NEQ)
+        ITASK = 1
+        ISTATE = 1
+        OPTIONS = SET_OPTS(RELERR_VECTOR=RELERR_TOLERANCES(1:NEQ), &
+          ABSERR_VECTOR=ABSERR_TOLERANCES(1:NEQ),MXSTEP=100000,H0=HBEGIN, &
+          HMAX=HBOUND)
+10      CONTINUE
+        CALL DVODE_F90(DERIVS,NEQ,Y,T,TOUT,ITASK,ISTATE,OPTIONS)
+        IF (ISTATE<0) THEN
+          WRITE (6,90006) ISTATE
+          ERRORS = .TRUE.
+!         STOP
+        END IF
+        CALL GET_STATS(RSTATS,ISTATS)
+        WRITE (6,90009) ISTATS(11), ISTATS(12)
+        IF (TOUT<TEND) GO TO 10
+        CALL EVALU(YFINAL)
+        DO I = 1, NEQ
+          AERROR(I) = ABS(Y(I)-YFINAL(I))
+        END DO
+        WRITE (6,90008) (I,Y(I),YFINAL(I),AERROR(I),I=1,NEQ)
+20    END DO ! End of ITEST Loop
+      END DO ! End of ITOL Loop
+
+      IF (ERRORS) THEN
+         WRITE(6,90011)
+      ELSE
+         WRITE(6,90012)
+      END IF
+
+!     Format statements for this problem:
+90000 FORMAT (' Class/Problem = A',I1)
+90001 FORMAT (' Class/Problem = B',I1)
+90002 FORMAT (' Class/Problem = C',I1)
+90003 FORMAT (' Class/Problem = D',I1)
+90004 FORMAT (' Class/Problem = E',I1)
+90005 FORMAT (' Class/Problem = F',I1)
+90006 FORMAT (' An error occurred in VODE_F90. ISTATE = ',I3)
+90007 FORMAT (' Problem ID       = ',I3,/,' Initial time     = ',D15.5,/, &
+        ' Final time       = ',D15.5,/,' Initial stepsize = ',D15.5,/, &
+        ' Maximum stepsize = ',D15.5,/,' IWT flag         = ',I3,/, &
+        ' Number of odes   = ',I3,/,' Error tolerance  = ',D15.5,/, &
+        ' Initial solution = ',/,(D15.5))
+90008 FORMAT (' Computed and reference solutions and absolute', &
+        ' errors follow:',/,(I3,3D15.5))
+90009 FORMAT (' Steps = ',I10,' f-s = ',I10)
+90010 FORMAT (' _________________________________________')
+90011 FORMAT (' Errors occurred.')
+90012 FORMAT (' No errors occurred.')
+      STOP
+
+    END PROGRAM DEMONONSTIFF
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/DVODE/stiffoptions.dat
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/DVODE/stiffoptions.dat	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/DVODE/stiffoptions.dat	(revision 2696)
@@ -0,0 +1,125388 @@
+
+
+ To locate the summary results, search on the phrase
+ Summary Statistics Follow in the output file (stiffoptions.dat).
+
+
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        127 f-s =        192 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.47076D-04    0.45400D-04    0.16763D-05
+  2   -0.32451D-05    0.20612D-08    0.32471D-05
+  3    0.22841D-18    0.28230D-55    0.22841D-18
+  4    0.15703D-17    0.52358D-51    0.15703D-17
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =   1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        141 f-s =        224 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D+00    0.99999D+00    0.34133D-06
+  2    0.99999D+00    0.99999D+00    0.34259D-06
+  3    0.99999D+00    0.99999D+00    0.51723D-06
+  4    0.99999D+00    0.99999D+00    0.57532D-06
+  5    0.99999D+00    0.99999D+00    0.39636D-06
+  6    0.10000D+01    0.10000D+01    0.66556D-07
+  7    0.10000D+01    0.10000D+01    0.20715D-06
+  8    0.10000D+01    0.10000D+01    0.26641D-06
+  9    0.10000D+01    0.10000D+01    0.11845D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        335
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        109
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.12788D+00
+    0.10000D+01
+ Steps =        152 f-s =        221 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13533D-02   -0.13534D-02    0.14992D-07
+  2    0.13685D-01    0.13685D-01    0.17063D-06
+  3    0.19229D+00    0.19229D+00    0.21302D-05
+  4    0.13534D+00    0.13534D+00    0.38420D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        189 f-s =        291 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.36792D+00    0.36788D+00    0.35755D-04
+  2    0.12636D-06    0.12659D-13    0.12636D-06
+  3   -0.10000D-10    0.19115D-41    0.10000D-10
+  4   -0.10809D-15    0.22774D-54    0.10809D-15
+  5    0.10328D-19    0.00000D+00    0.10328D-19
+  6    0.87708D-28    0.00000D+00    0.87708D-28
+  7    0.18845D-30    0.00000D+00    0.18845D-30
+  8    0.71774D-35    0.00000D+00    0.71774D-35
+  9   -0.21962D-39    0.00000D+00    0.21962D-39
+ 10    0.44605D-45    0.00000D+00    0.44605D-45
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        390
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        111
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =        520 f-s =        604 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1    0.18462D-04    0.10042D-08    0.18461D-04
+  2   -0.58714D-04    0.20955D-08    0.58717D-04
+  3   -0.23135D-34    0.00000D+00    0.23135D-34
+  4   -0.52263D-34   -0.18767D-79    0.52263D-34
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        107 f-s =        154 J-s =          4
+ Computed and reference solutions and absolute errors follow:
+  1   -0.18968D-09    0.61813D-30    0.18968D-09
+  2   -0.16812D-08    0.89637D-30    0.16812D-08
+  3    0.25452D-07    0.27384D-26    0.25452D-07
+  4    0.11727D-06    0.20612D-08    0.11521D-06
+  5    0.47978D-04    0.45400D-04    0.25783D-05
+  6    0.13534D+00    0.13534D+00    0.23688D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        194
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        115 f-s =        166 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1   -0.27832D-08   -0.10768D-27    0.27832D-08
+  2   -0.44455D-09    0.54550D-27    0.44455D-09
+  3    0.31585D-09    0.27385D-26    0.31585D-09
+  4   -0.12067D-06    0.20612D-08    0.12273D-06
+  5    0.45765D-04    0.45400D-04    0.36548D-06
+  6    0.13534D+00    0.13534D+00    0.89097D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        194
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        182 f-s =        236 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.40261D-11    0.11886D-21    0.40261D-11
+  2    0.24941D-12   -0.23259D-21    0.24941D-12
+  3    0.41539D-11    0.15179D-34    0.41539D-11
+  4    0.30879D-05    0.20612D-08    0.30858D-05
+  5    0.69917D-04    0.45400D-04    0.24517D-04
+  6    0.13534D+00    0.13534D+00    0.61092D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        194
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.76336D+00
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       2551 f-s =       2963 J-s =         46
+ Computed and reference solutions and absolute errors follow:
+  1   -0.16202D-04   -0.23669D-13    0.16202D-04
+  2   -0.66245D-05    0.34489D-13    0.66245D-05
+  3    0.18048D-34    0.18049D-34    0.47720D-39
+  4    0.20612D-08    0.20612D-08    0.34557D-16
+  5    0.45400D-04    0.45400D-04    0.55984D-13
+  6    0.13534D+00    0.13534D+00    0.10815D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        194
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.98039D+00
+    0.97087D+00
+    0.10000D+01
+    0.10000D+01
+ Steps =        135 f-s =        196 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.37231D-03    0.39247D-03    0.20168D-04
+  2    0.38850D-03    0.38850D-03    0.31524D-08
+  3    0.40000D-03    0.40000D-03    0.70167D-11
+  4    0.20000D-01    0.20000D-01    0.11449D-15
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        135 f-s =        191 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.28851D-06
+  2    0.40000D-01    0.40000D-01    0.74441D-07
+  3    0.40016D-01    0.40016D-01    0.44910D-07
+  4    0.40032D-01    0.40032D-01    0.49931D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        127 f-s =        180 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.30005D-05
+  2    0.40000D+00    0.40000D+00    0.25814D-05
+  3    0.41600D+00    0.41600D+00    0.25610D-05
+  4    0.43330D+00    0.43331D+00    0.27149D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.50000D+00
+    0.25000D+00
+    0.50000D-01
+    0.23810D-02
+ Steps =        114 f-s =        162 J-s =          4
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.34585D-08
+  2    0.10000D+01    0.10000D+01    0.10291D-07
+  3    0.10000D+01    0.10000D+01    0.40875D-07
+  4    0.10000D+01    0.10000D+01    0.23601D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.50000D+00
+    0.12500D+00
+    0.73529D-02
+    0.26954D-04
+ Steps =        103 f-s =        135 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.22995D-08
+  2    0.10000D+01    0.10000D+01    0.77431D-08
+  3    0.10000D+01    0.10000D+01    0.25669D-07
+  4    0.10008D+01    0.10008D+01    0.67400D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         72 f-s =        136 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.99749D+00    0.99741D+00    0.84203D-04
+  2    0.10004D+01    0.10004D+01    0.38677D-04
+  3    0.10000D+01    0.10000D+01    0.14433D-14
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        155 f-s =        226 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.41429D-05
+  2    0.25168D+00    0.25166D+00    0.18943D-04
+  3    0.99705D+00    0.99707D+00    0.14539D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        199 f-s =        307 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.14472D-05
+  2    0.56309D-02    0.56309D-02    0.28225D-08
+  3    0.10007D+01    0.10007D+01    0.40200D-05
+  4    0.65374D+00    0.65374D+00    0.14949D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.70423D+00
+    0.00000D+00
+ Steps =         99 f-s =        156 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.59768D+00    0.59765D+00    0.20796D-04
+  2    0.98755D+00    0.98757D+00    0.14645D-04
+  3   -0.51037D+00   -0.51035D+00    0.19521D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =         76 f-s =        126 J-s =          4
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99961D+00   -0.99964D+00    0.27517D-04
+  2    0.99927D+00    0.99933D+00    0.51238D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         62
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         95
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        127 f-s =        195 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.39116D-06
+  2    0.99730D+00    0.99730D+00    0.26429D-05
+  3    0.10005D+01    0.10005D+01    0.84746D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        124 f-s =        188 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.10690D-08
+  2   -0.37279D-08   -0.72884D-12    0.37272D-08
+  3    0.19309D-08    0.15348D-11    0.19294D-08
+  4    0.53712D-09   -0.10837D-11    0.53820D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.99010D+00
+    0.00000D+00
+ Steps =        178 f-s =        245 J-s =          4
+ Computed and reference solutions and absolute errors follow:
+  1   -0.57301D+00   -0.57361D+00    0.60070D-03
+  2    0.56512D-01    0.56344D-01    0.16776D-03
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         62
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         95
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.61350D+00
+    0.62500D+00
+    0.00000D+00
+ Steps =        150 f-s =        273 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.26039D-02    0.26092D-02    0.53611D-05
+  2    0.33174D-02    0.33231D-02    0.57550D-05
+  3    0.99914D+00    0.99911D+00    0.35616D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.00000D+00
+   -0.67797D-01
+   -0.64516D-01
+   -0.61350D-01
+ Steps =        253 f-s =        378 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.69446D+00    0.69444D+00    0.11329D-04
+  2   -0.67796D+00   -0.67797D+00    0.11060D-04
+  3    0.21034D-04   -0.14501D-07    0.21049D-04
+  4   -0.20004D-04    0.13789D-07    0.20018D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         74 f-s =        100 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.91936D+00    0.91936D+00    0.56626D-05
+  2    0.94673D+00    0.94674D+00    0.51646D-05
+  3    0.99777D+00    0.99777D+00    0.12573D-05
+  4    0.94182D+00    0.94183D+00    0.55455D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.62893D+00
+    0.00000D+00
+    0.49587D+00
+    0.10000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =        384 f-s =        745 J-s =         22
+ Computed and reference solutions and absolute errors follow:
+  1    0.10009D+01    0.10009D+01    0.42450D-05
+  2    0.15223D-03    0.15223D-03    0.10057D-08
+  3    0.99887D+00    0.99887D+00    0.42135D-05
+  4    0.32420D-02    0.32420D-02    0.83672D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        128
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =         95 f-s =        137 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.39126D+00    0.39127D+00    0.92966D-05
+  2    0.52567D+00    0.52568D+00    0.12491D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         66
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        195 f-s =        274 J-s =          4
+ Computed and reference solutions and absolute errors follow:
+  1    0.27175D-07    0.80898D-07    0.53723D-07
+  2    0.23607D+00    0.23607D+00    0.94184D-07
+  3    0.20413D-04    0.20426D-04    0.13195D-07
+  4    0.99860D+00    0.99860D+00    0.56194D-07
+  5    0.99879D+00    0.99879D+00    0.44042D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        165
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        106
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.33898D-04
+    0.62147D-03
+    0.12780D-03
+ Nonnegativity will be enforced for this problem.
+ Steps =        674 f-s =       1045 J-s =         21
+ Computed and reference solutions and absolute errors follow:
+  1    0.34488D-04    0.37443D-04    0.29554D-05
+  2    0.73900D-03    0.72895D-03    0.10047D-04
+  3    0.93225D-04    0.96463D-04    0.32374D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         95
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        100
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10015D+01
+    0.10001D+01
+    0.26527D+00
+    0.98220D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        183 f-s =        284 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.50999D+00    0.50999D+00    0.27808D-09
+  2    0.44958D+00    0.44958D+00    0.67338D-10
+  3    0.99988D+00    0.99988D+00    0.14986D-09
+  4    0.99949D+00    0.99949D+00    0.69479D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        128
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        127 f-s =        208 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.47076D-04    0.45400D-04    0.16763D-05
+  2   -0.32451D-05    0.20612D-08    0.32471D-05
+  3    0.22841D-18    0.28230D-55    0.22841D-18
+  4    0.15703D-17    0.52358D-51    0.15703D-17
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =   1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        141 f-s =        287 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D+00    0.99999D+00    0.34119D-06
+  2    0.99999D+00    0.99999D+00    0.34133D-06
+  3    0.99999D+00    0.99999D+00    0.51680D-06
+  4    0.99999D+00    0.99999D+00    0.57503D-06
+  5    0.99999D+00    0.99999D+00    0.39600D-06
+  6    0.10000D+01    0.10000D+01    0.66321D-07
+  7    0.10000D+01    0.10000D+01    0.20739D-06
+  8    0.10000D+01    0.10000D+01    0.26654D-06
+  9    0.10000D+01    0.10000D+01    0.11850D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        425
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =       1072
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.12788D+00
+    0.10000D+01
+ Steps =        152 f-s =        249 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13533D-02   -0.13534D-02    0.15147D-07
+  2    0.13685D-01    0.13685D-01    0.17233D-06
+  3    0.19229D+00    0.19229D+00    0.21522D-05
+  4    0.13534D+00    0.13534D+00    0.38212D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        189 f-s =        391 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.36792D+00    0.36788D+00    0.35755D-04
+  2    0.12636D-06    0.12659D-13    0.12636D-06
+  3   -0.10000D-10    0.19115D-41    0.10000D-10
+  4   -0.10809D-15    0.22774D-54    0.10809D-15
+  5    0.10328D-19    0.00000D+00    0.10328D-19
+  6    0.87706D-28    0.00000D+00    0.87706D-28
+  7    0.18845D-30    0.00000D+00    0.18845D-30
+  8    0.71774D-35    0.00000D+00    0.71774D-35
+  9   -0.21962D-39    0.00000D+00    0.21962D-39
+ 10    0.44605D-45    0.00000D+00    0.44605D-45
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        500
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =       1271
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =        520 f-s =        684 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1    0.18463D-04    0.10042D-08    0.18462D-04
+  2   -0.58716D-04    0.20955D-08    0.58718D-04
+  3   -0.23138D-34    0.00000D+00    0.23138D-34
+  4   -0.52277D-34   -0.18767D-79    0.52277D-34
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        107 f-s =        190 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1   -0.18969D-09    0.61813D-30    0.18969D-09
+  2   -0.16812D-08    0.89637D-30    0.16812D-08
+  3    0.25452D-07    0.27384D-26    0.25452D-07
+  4    0.11727D-06    0.20612D-08    0.11521D-06
+  5    0.47978D-04    0.45400D-04    0.25783D-05
+  6    0.13534D+00    0.13534D+00    0.23688D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        236
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        583
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        115 f-s =        196 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1   -0.27832D-08   -0.10768D-27    0.27832D-08
+  2   -0.44455D-09    0.54550D-27    0.44455D-09
+  3    0.31585D-09    0.27385D-26    0.31585D-09
+  4   -0.12067D-06    0.20612D-08    0.12273D-06
+  5    0.45765D-04    0.45400D-04    0.36548D-06
+  6    0.13534D+00    0.13534D+00    0.89097D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        236
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        583
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        182 f-s =        302 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.40260D-11    0.11886D-21    0.40260D-11
+  2    0.24954D-12   -0.23259D-21    0.24954D-12
+  3    0.41539D-11    0.15179D-34    0.41539D-11
+  4    0.30879D-05    0.20612D-08    0.30858D-05
+  5    0.69917D-04    0.45400D-04    0.24517D-04
+  6    0.13534D+00    0.13534D+00    0.61093D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        236
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        583
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.76336D+00
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       2551 f-s =       3551 J-s =         72
+ Computed and reference solutions and absolute errors follow:
+  1   -0.16197D-04   -0.23669D-13    0.16197D-04
+  2   -0.66189D-05    0.34489D-13    0.66189D-05
+  3    0.18048D-34    0.18049D-34    0.47720D-39
+  4    0.20612D-08    0.20612D-08    0.34555D-16
+  5    0.45400D-04    0.45400D-04    0.56004D-13
+  6    0.13534D+00    0.13534D+00    0.10827D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        236
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        583
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.98039D+00
+    0.97087D+00
+    0.10000D+01
+    0.10000D+01
+ Steps =        144 f-s =        237 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.39045D-03    0.39247D-03    0.20211D-05
+  2    0.38850D-03    0.38850D-03    0.27513D-08
+  3    0.40000D-03    0.40000D-03    0.18907D-14
+  4    0.20000D-01    0.20000D-01    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        134 f-s =        210 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.38024D-05
+  2    0.40000D-01    0.40000D-01    0.35167D-07
+  3    0.40016D-01    0.40016D-01    0.14096D-06
+  4    0.40032D-01    0.40032D-01    0.98699D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        127 f-s =        198 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.74788D-06
+  2    0.40000D+00    0.40000D+00    0.23855D-06
+  3    0.41600D+00    0.41600D+00    0.14033D-06
+  4    0.43331D+00    0.43331D+00    0.17981D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.50000D+00
+    0.25000D+00
+    0.50000D-01
+    0.23810D-02
+ Steps =        107 f-s =        175 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.27031D-06
+  2    0.10000D+01    0.10000D+01    0.59874D-06
+  3    0.10000D+01    0.10000D+01    0.10898D-05
+  4    0.10000D+01    0.10000D+01    0.21357D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.50000D+00
+    0.12500D+00
+    0.73529D-02
+    0.26954D-04
+ Steps =         97 f-s =        158 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.12428D-05
+  2    0.10000D+01    0.10000D+01    0.27612D-05
+  3    0.99999D+00    0.10000D+01    0.54762D-05
+  4    0.10007D+01    0.10008D+01    0.11030D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         72 f-s =        151 J-s =          4
+ Computed and reference solutions and absolute errors follow:
+  1    0.99749D+00    0.99741D+00    0.83964D-04
+  2    0.10004D+01    0.10004D+01    0.38712D-04
+  3    0.10000D+01    0.10000D+01    0.33307D-15
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        248 f-s =        436 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.42049D-06
+  2    0.25166D+00    0.25166D+00    0.20016D-06
+  3    0.99706D+00    0.99707D+00    0.14727D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        209 f-s =        346 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.35581D-06
+  2    0.56309D-02    0.56309D-02    0.98871D-08
+  3    0.10007D+01    0.10007D+01    0.98823D-06
+  4    0.65374D+00    0.65374D+00    0.35664D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.70423D+00
+    0.00000D+00
+ Steps =         97 f-s =        170 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.59768D+00    0.59765D+00    0.23083D-04
+  2    0.98755D+00    0.98757D+00    0.16256D-04
+  3   -0.51037D+00   -0.51035D+00    0.22488D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =         76 f-s =        134 J-s =          4
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99961D+00   -0.99964D+00    0.27517D-04
+  2    0.99927D+00    0.99933D+00    0.51238D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         68
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        183
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        129 f-s =        207 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.11770D-05
+  2    0.99729D+00    0.99730D+00    0.79526D-05
+  3    0.10005D+01    0.10005D+01    0.54080D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        124 f-s =        200 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.19644D-08
+  2   -0.39269D-08   -0.72884D-12    0.39261D-08
+  3    0.17084D-08    0.15348D-11    0.17069D-08
+  4    0.63483D-09   -0.10837D-11    0.63591D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.99010D+00
+    0.00000D+00
+ Steps =        166 f-s =        286 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1   -0.57293D+00   -0.57361D+00    0.68612D-03
+  2    0.56530D-01    0.56344D-01    0.18554D-03
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         68
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        183
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.61350D+00
+    0.62500D+00
+    0.00000D+00
+ Steps =        134 f-s =        206 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.26134D-02    0.26092D-02    0.41565D-05
+  2    0.33277D-02    0.33231D-02    0.46013D-05
+  3    0.99912D+00    0.99911D+00    0.18211D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.00000D+00
+   -0.67797D-01
+   -0.64516D-01
+   -0.61350D-01
+ Steps =        316 f-s =        521 J-s =         13
+ Computed and reference solutions and absolute errors follow:
+  1    0.69445D+00    0.69444D+00    0.10294D-04
+  2   -0.67796D+00   -0.67797D+00    0.10178D-04
+  3    0.19004D-04   -0.14501D-07    0.19018D-04
+  4   -0.18512D-04    0.13789D-07    0.18525D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         80 f-s =        140 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.91936D+00    0.91936D+00    0.54941D-05
+  2    0.94673D+00    0.94674D+00    0.40348D-05
+  3    0.99777D+00    0.99777D+00    0.12823D-05
+  4    0.94182D+00    0.94183D+00    0.43454D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.62893D+00
+    0.00000D+00
+    0.49587D+00
+    0.10000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =        260 f-s =        555 J-s =         20
+ Computed and reference solutions and absolute errors follow:
+  1    0.10009D+01    0.10009D+01    0.64518D-05
+  2    0.15225D-03    0.15223D-03    0.17056D-07
+  3    0.99887D+00    0.99887D+00    0.64038D-05
+  4    0.32420D-02    0.32420D-02    0.14198D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        148
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        351
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =         95 f-s =        152 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.39126D+00    0.39127D+00    0.92640D-05
+  2    0.52567D+00    0.52568D+00    0.12435D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         72
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        185
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        184 f-s =        334 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.80905D-07    0.80898D-07    0.70220D-11
+  2    0.23606D+00    0.23607D+00    0.52901D-05
+  3    0.20426D-04    0.20426D-04    0.10795D-09
+  4    0.99861D+00    0.99860D+00    0.52485D-05
+  5    0.99881D+00    0.99879D+00    0.27632D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        195
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        461
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.33898D-04
+    0.62147D-03
+    0.12780D-03
+ Nonnegativity will be enforced for this problem.
+ Steps =        658 f-s =       1139 J-s =         34
+ Computed and reference solutions and absolute errors follow:
+  1    0.35341D-04    0.37443D-04    0.21021D-05
+  2    0.73521D-03    0.72895D-03    0.62567D-05
+  3    0.94301D-04    0.96463D-04    0.21616D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        259
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10015D+01
+    0.10001D+01
+    0.26527D+00
+    0.98220D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        193 f-s =        341 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.50999D+00    0.50999D+00    0.23881D-07
+  2    0.44958D+00    0.44958D+00    0.21452D-07
+  3    0.99988D+00    0.99988D+00    0.47789D-07
+  4    0.99949D+00    0.99949D+00    0.87374D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        148
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        351
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        127 f-s =        192 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.47076D-04    0.45400D-04    0.16763D-05
+  2   -0.32451D-05    0.20612D-08    0.32471D-05
+  3    0.22841D-18    0.28230D-55    0.22841D-18
+  4    0.15703D-17    0.52358D-51    0.15703D-17
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =   1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        141 f-s =        224 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D+00    0.99999D+00    0.34133D-06
+  2    0.99999D+00    0.99999D+00    0.34259D-06
+  3    0.99999D+00    0.99999D+00    0.51723D-06
+  4    0.99999D+00    0.99999D+00    0.57532D-06
+  5    0.99999D+00    0.99999D+00    0.39636D-06
+  6    0.10000D+01    0.10000D+01    0.66556D-07
+  7    0.10000D+01    0.10000D+01    0.20715D-06
+  8    0.10000D+01    0.10000D+01    0.26641D-06
+  9    0.10000D+01    0.10000D+01    0.11845D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        551
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        109
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.12788D+00
+    0.10000D+01
+ Steps =        152 f-s =        221 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13533D-02   -0.13534D-02    0.14992D-07
+  2    0.13685D-01    0.13685D-01    0.17063D-06
+  3    0.19229D+00    0.19229D+00    0.21302D-05
+  4    0.13534D+00    0.13534D+00    0.38420D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        189 f-s =        291 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.36792D+00    0.36788D+00    0.35755D-04
+  2    0.12636D-06    0.12659D-13    0.12636D-06
+  3   -0.10000D-10    0.19115D-41    0.10000D-10
+  4   -0.10809D-15    0.22774D-54    0.10809D-15
+  5    0.10328D-19    0.00000D+00    0.10328D-19
+  6    0.87708D-28    0.00000D+00    0.87708D-28
+  7    0.18845D-30    0.00000D+00    0.18845D-30
+  8    0.71774D-35    0.00000D+00    0.71774D-35
+  9   -0.21962D-39    0.00000D+00    0.21962D-39
+ 10    0.44605D-45    0.00000D+00    0.44605D-45
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        660
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        111
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =        520 f-s =        604 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1    0.18462D-04    0.10042D-08    0.18461D-04
+  2   -0.58714D-04    0.20955D-08    0.58717D-04
+  3   -0.23135D-34    0.00000D+00    0.23135D-34
+  4   -0.52263D-34   -0.18767D-79    0.52263D-34
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        107 f-s =        154 J-s =          4
+ Computed and reference solutions and absolute errors follow:
+  1   -0.18968D-09    0.61813D-30    0.18968D-09
+  2   -0.16812D-08    0.89637D-30    0.16812D-08
+  3    0.25452D-07    0.27384D-26    0.25452D-07
+  4    0.11727D-06    0.20612D-08    0.11521D-06
+  5    0.47978D-04    0.45400D-04    0.25783D-05
+  6    0.13534D+00    0.13534D+00    0.23688D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        284
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        115 f-s =        166 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1   -0.27832D-08   -0.10768D-27    0.27832D-08
+  2   -0.44455D-09    0.54550D-27    0.44455D-09
+  3    0.31585D-09    0.27385D-26    0.31585D-09
+  4   -0.12067D-06    0.20612D-08    0.12273D-06
+  5    0.45765D-04    0.45400D-04    0.36548D-06
+  6    0.13534D+00    0.13534D+00    0.89097D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        284
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        182 f-s =        236 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.40261D-11    0.11886D-21    0.40261D-11
+  2    0.24941D-12   -0.23259D-21    0.24941D-12
+  3    0.41539D-11    0.15179D-34    0.41539D-11
+  4    0.30879D-05    0.20612D-08    0.30858D-05
+  5    0.69917D-04    0.45400D-04    0.24517D-04
+  6    0.13534D+00    0.13534D+00    0.61092D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        284
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.76336D+00
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       2551 f-s =       2963 J-s =         46
+ Computed and reference solutions and absolute errors follow:
+  1   -0.16202D-04   -0.23669D-13    0.16202D-04
+  2   -0.66245D-05    0.34489D-13    0.66245D-05
+  3    0.18048D-34    0.18049D-34    0.47720D-39
+  4    0.20612D-08    0.20612D-08    0.34557D-16
+  5    0.45400D-04    0.45400D-04    0.55984D-13
+  6    0.13534D+00    0.13534D+00    0.10815D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        284
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.98039D+00
+    0.97087D+00
+    0.10000D+01
+    0.10000D+01
+ Steps =        135 f-s =        196 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.37231D-03    0.39247D-03    0.20168D-04
+  2    0.38850D-03    0.38850D-03    0.31524D-08
+  3    0.40000D-03    0.40000D-03    0.70167D-11
+  4    0.20000D-01    0.20000D-01    0.11449D-15
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        135 f-s =        191 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.28851D-06
+  2    0.40000D-01    0.40000D-01    0.74441D-07
+  3    0.40016D-01    0.40016D-01    0.44910D-07
+  4    0.40032D-01    0.40032D-01    0.49931D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        127 f-s =        180 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.30005D-05
+  2    0.40000D+00    0.40000D+00    0.25814D-05
+  3    0.41600D+00    0.41600D+00    0.25610D-05
+  4    0.43330D+00    0.43331D+00    0.27149D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.50000D+00
+    0.25000D+00
+    0.50000D-01
+    0.23810D-02
+ Steps =        114 f-s =        162 J-s =          4
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.34585D-08
+  2    0.10000D+01    0.10000D+01    0.10291D-07
+  3    0.10000D+01    0.10000D+01    0.40875D-07
+  4    0.10000D+01    0.10000D+01    0.23601D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.50000D+00
+    0.12500D+00
+    0.73529D-02
+    0.26954D-04
+ Steps =        103 f-s =        135 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.22995D-08
+  2    0.10000D+01    0.10000D+01    0.77431D-08
+  3    0.10000D+01    0.10000D+01    0.25669D-07
+  4    0.10008D+01    0.10008D+01    0.67400D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         72 f-s =        136 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.99749D+00    0.99741D+00    0.84203D-04
+  2    0.10004D+01    0.10004D+01    0.38677D-04
+  3    0.10000D+01    0.10000D+01    0.14433D-14
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        155 f-s =        226 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.41429D-05
+  2    0.25168D+00    0.25166D+00    0.18943D-04
+  3    0.99705D+00    0.99707D+00    0.14539D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        199 f-s =        307 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.14472D-05
+  2    0.56309D-02    0.56309D-02    0.28225D-08
+  3    0.10007D+01    0.10007D+01    0.40200D-05
+  4    0.65374D+00    0.65374D+00    0.14949D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.70423D+00
+    0.00000D+00
+ Steps =         99 f-s =        156 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.59768D+00    0.59765D+00    0.20796D-04
+  2    0.98755D+00    0.98757D+00    0.14645D-04
+  3   -0.51037D+00   -0.51035D+00    0.19521D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =         76 f-s =        126 J-s =          4
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99961D+00   -0.99964D+00    0.27517D-04
+  2    0.99927D+00    0.99933D+00    0.51238D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         68
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         95
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        127 f-s =        195 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.39116D-06
+  2    0.99730D+00    0.99730D+00    0.26429D-05
+  3    0.10005D+01    0.10005D+01    0.84746D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        124 f-s =        188 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.10690D-08
+  2   -0.37279D-08   -0.72884D-12    0.37272D-08
+  3    0.19309D-08    0.15348D-11    0.19294D-08
+  4    0.53712D-09   -0.10837D-11    0.53820D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.99010D+00
+    0.00000D+00
+ Steps =        178 f-s =        245 J-s =          4
+ Computed and reference solutions and absolute errors follow:
+  1   -0.57301D+00   -0.57361D+00    0.60070D-03
+  2    0.56512D-01    0.56344D-01    0.16776D-03
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         68
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         95
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.61350D+00
+    0.62500D+00
+    0.00000D+00
+ Steps =        150 f-s =        273 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.26039D-02    0.26092D-02    0.53611D-05
+  2    0.33174D-02    0.33231D-02    0.57550D-05
+  3    0.99914D+00    0.99911D+00    0.35616D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.00000D+00
+   -0.67797D-01
+   -0.64516D-01
+   -0.61350D-01
+ Steps =        253 f-s =        378 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.69446D+00    0.69444D+00    0.11329D-04
+  2   -0.67796D+00   -0.67797D+00    0.11060D-04
+  3    0.21034D-04   -0.14501D-07    0.21049D-04
+  4   -0.20004D-04    0.13789D-07    0.20018D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         74 f-s =        100 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.91936D+00    0.91936D+00    0.56626D-05
+  2    0.94673D+00    0.94674D+00    0.51646D-05
+  3    0.99777D+00    0.99777D+00    0.12573D-05
+  4    0.94182D+00    0.94183D+00    0.55455D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.62893D+00
+    0.00000D+00
+    0.49587D+00
+    0.10000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =        384 f-s =        745 J-s =         22
+ Computed and reference solutions and absolute errors follow:
+  1    0.10009D+01    0.10009D+01    0.42450D-05
+  2    0.15223D-03    0.15223D-03    0.10057D-08
+  3    0.99887D+00    0.99887D+00    0.42135D-05
+  4    0.32420D-02    0.32420D-02    0.83672D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =         95 f-s =        137 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.39126D+00    0.39127D+00    0.92966D-05
+  2    0.52567D+00    0.52568D+00    0.12491D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         72
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        195 f-s =        274 J-s =          4
+ Computed and reference solutions and absolute errors follow:
+  1    0.27175D-07    0.80898D-07    0.53723D-07
+  2    0.23607D+00    0.23607D+00    0.94184D-07
+  3    0.20413D-04    0.20426D-04    0.13195D-07
+  4    0.99860D+00    0.99860D+00    0.56194D-07
+  5    0.99879D+00    0.99879D+00    0.44042D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        225
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        106
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.33898D-04
+    0.62147D-03
+    0.12780D-03
+ Nonnegativity will be enforced for this problem.
+ Steps =        674 f-s =       1045 J-s =         21
+ Computed and reference solutions and absolute errors follow:
+  1    0.34488D-04    0.37443D-04    0.29554D-05
+  2    0.73900D-03    0.72895D-03    0.10047D-04
+  3    0.93225D-04    0.96463D-04    0.32374D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        113
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        100
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10015D+01
+    0.10001D+01
+    0.26527D+00
+    0.98220D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        183 f-s =        284 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.50999D+00    0.50999D+00    0.27808D-09
+  2    0.44958D+00    0.44958D+00    0.67338D-10
+  3    0.99988D+00    0.99988D+00    0.14986D-09
+  4    0.99949D+00    0.99949D+00    0.69479D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        168 f-s =        242 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.45705D-04    0.45400D-04    0.30489D-06
+  2   -0.90865D-08    0.20612D-08    0.11148D-07
+  3    0.24157D-22    0.28230D-55    0.24157D-22
+  4   -0.15644D-21    0.52358D-51    0.15644D-21
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =   1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        206 f-s =        330 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D+00    0.99999D+00    0.38582D-05
+  2    0.99999D+00    0.99999D+00    0.38580D-05
+  3    0.99999D+00    0.99999D+00    0.36148D-05
+  4    0.99999D+00    0.99999D+00    0.32319D-05
+  5    0.99999D+00    0.99999D+00    0.27472D-05
+  6    0.99999D+00    0.10000D+01    0.21917D-05
+  7    0.99999D+00    0.10000D+01    0.15990D-05
+  8    0.10000D+01    0.10000D+01    0.10053D-05
+  9    0.10000D+01    0.10000D+01    0.44680D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        335
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        109
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.12788D+00
+    0.10000D+01
+ Steps =        206 f-s =        299 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.13323D-08
+  2    0.13685D-01    0.13685D-01    0.14068D-07
+  3    0.19229D+00    0.19229D+00    0.18930D-06
+  4    0.13534D+00    0.13534D+00    0.74264D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        254 f-s =        390 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.76940D-06
+  2    0.34439D-06    0.12659D-13    0.34439D-06
+  3   -0.44767D-10    0.19115D-41    0.44767D-10
+  4   -0.33848D-18    0.22774D-54    0.33848D-18
+  5   -0.21641D-22    0.00000D+00    0.21641D-22
+  6    0.28625D-31    0.00000D+00    0.28625D-31
+  7   -0.17291D-39    0.00000D+00    0.17291D-39
+  8   -0.77559D-46    0.00000D+00    0.77559D-46
+  9    0.19301D-53    0.00000D+00    0.19301D-53
+ 10    0.40515D-60    0.00000D+00    0.40515D-60
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        390
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        111
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =        686 f-s =        795 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1   -0.52997D-05    0.10042D-08    0.53007D-05
+  2    0.19335D-04    0.20955D-08    0.19333D-04
+  3   -0.57221D-42    0.00000D+00    0.57221D-42
+  4    0.11111D-41   -0.18767D-79    0.11111D-41
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        137 f-s =        201 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.13210D-11    0.61813D-30    0.13210D-11
+  2   -0.47809D-12    0.89637D-30    0.47809D-12
+  3    0.17546D-08    0.27384D-26    0.17546D-08
+  4    0.28827D-07    0.20612D-08    0.26765D-07
+  5    0.47562D-04    0.45400D-04    0.21619D-05
+  6    0.13534D+00    0.13534D+00    0.13840D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        194
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        148 f-s =        207 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1   -0.10780D-10   -0.10768D-27    0.10780D-10
+  2   -0.17657D-09    0.54550D-27    0.17657D-09
+  3   -0.25324D-09    0.27385D-26    0.25324D-09
+  4    0.26160D-07    0.20612D-08    0.24099D-07
+  5    0.47467D-04    0.45400D-04    0.20675D-05
+  6    0.13534D+00    0.13534D+00    0.13337D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        194
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        276 f-s =        343 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1   -0.22556D-10    0.11886D-21    0.22556D-10
+  2   -0.37063D-10   -0.23259D-21    0.37063D-10
+  3   -0.33232D-14    0.15179D-34    0.33232D-14
+  4    0.13648D-07    0.20612D-08    0.11587D-07
+  5    0.46631D-04    0.45400D-04    0.12312D-05
+  6    0.13534D+00    0.13534D+00    0.92459D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        194
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.76336D+00
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       2619 f-s =       3088 J-s =         49
+ Computed and reference solutions and absolute errors follow:
+  1   -0.22347D-04   -0.23669D-13    0.22347D-04
+  2   -0.15450D-05    0.34489D-13    0.15450D-05
+  3    0.18048D-34    0.18049D-34    0.31900D-39
+  4    0.20612D-08    0.20612D-08    0.32924D-16
+  5    0.45400D-04    0.45400D-04    0.15320D-13
+  6    0.13534D+00    0.13534D+00    0.95440D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        194
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.98039D+00
+    0.97087D+00
+    0.10000D+01
+    0.10000D+01
+ Steps =        182 f-s =        254 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.39226D-03    0.39247D-03    0.20968D-06
+  2    0.38850D-03    0.38850D-03    0.11918D-11
+  3    0.40000D-03    0.40000D-03    0.21684D-18
+  4    0.20000D-01    0.20000D-01    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        177 f-s =        252 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.55706D-07
+  2    0.40000D-01    0.40000D-01    0.46668D-08
+  3    0.40016D-01    0.40016D-01    0.45689D-08
+  4    0.40032D-01    0.40032D-01    0.45084D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        174 f-s =        249 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.37237D-07
+  2    0.40000D+00    0.40000D+00    0.35114D-07
+  3    0.41600D+00    0.41600D+00    0.33077D-07
+  4    0.43331D+00    0.43331D+00    0.34506D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.50000D+00
+    0.25000D+00
+    0.50000D-01
+    0.23810D-02
+ Steps =        153 f-s =        216 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.33896D-07
+  2    0.10000D+01    0.10000D+01    0.74437D-07
+  3    0.10000D+01    0.10000D+01    0.13199D-06
+  4    0.10000D+01    0.10000D+01    0.24962D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.50000D+00
+    0.12500D+00
+    0.73529D-02
+    0.26954D-04
+ Steps =        147 f-s =        208 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.92876D-07
+  2    0.10000D+01    0.10000D+01    0.20651D-06
+  3    0.10000D+01    0.10000D+01    0.40174D-06
+  4    0.10008D+01    0.10008D+01    0.83501D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        142 f-s =        237 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.99742D+00    0.99741D+00    0.10459D-04
+  2    0.10004D+01    0.10004D+01    0.11006D-04
+  3    0.10000D+01    0.10000D+01    0.33307D-15
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        204 f-s =        321 J-s =          4
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.14766D-05
+  2    0.25166D+00    0.25166D+00    0.24455D-06
+  3    0.99707D+00    0.99707D+00    0.51810D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        254 f-s =        365 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.23769D-06
+  2    0.56309D-02    0.56309D-02    0.46371D-09
+  3    0.10007D+01    0.10007D+01    0.66024D-06
+  4    0.65374D+00    0.65374D+00    0.24551D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.70423D+00
+    0.00000D+00
+ Steps =        110 f-s =        177 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.79363D-06
+  2    0.98757D+00    0.98757D+00    0.55890D-06
+  3   -0.51035D+00   -0.51035D+00    0.59322D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        107 f-s =        179 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99965D+00   -0.99964D+00    0.95448D-05
+  2    0.99932D+00    0.99933D+00    0.50664D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         62
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         95
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        201 f-s =        299 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.99964D-06
+  2    0.99731D+00    0.99730D+00    0.67543D-05
+  3    0.10005D+01    0.10005D+01    0.21366D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        171 f-s =        245 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.23940D-09
+  2   -0.35983D-09   -0.72884D-12    0.35910D-09
+  3   -0.50193D-10    0.15348D-11    0.51728D-10
+  4    0.26402D-09   -0.10837D-11    0.26510D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.99010D+00
+    0.00000D+00
+ Steps =        228 f-s =        313 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1   -0.57358D+00   -0.57361D+00    0.37357D-04
+  2    0.56350D-01    0.56344D-01    0.57863D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         62
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         95
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.61350D+00
+    0.62500D+00
+    0.00000D+00
+ Steps =        195 f-s =        299 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.26090D-02    0.26092D-02    0.27101D-06
+  2    0.33229D-02    0.33231D-02    0.20233D-06
+  3    0.99912D+00    0.99911D+00    0.10851D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.00000D+00
+   -0.67797D-01
+   -0.64516D-01
+   -0.61350D-01
+ Steps =        282 f-s =        411 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.69444D+00    0.69444D+00    0.44440D-06
+  2   -0.67797D+00   -0.67797D+00    0.43458D-06
+  3   -0.84126D-06   -0.14501D-07    0.82676D-06
+  4    0.79931D-06    0.13789D-07    0.78552D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         88 f-s =        133 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.91936D+00    0.91936D+00    0.13718D-05
+  2    0.94674D+00    0.94674D+00    0.96190D-06
+  3    0.99777D+00    0.99777D+00    0.17383D-06
+  4    0.94183D+00    0.94183D+00    0.10284D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.62893D+00
+    0.00000D+00
+    0.49587D+00
+    0.10000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =        405 f-s =        728 J-s =         23
+ Computed and reference solutions and absolute errors follow:
+  1    0.10009D+01    0.10009D+01    0.40150D-06
+  2    0.15223D-03    0.15223D-03    0.72353D-09
+  3    0.99887D+00    0.99887D+00    0.39844D-06
+  4    0.32420D-02    0.32420D-02    0.60228D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        128
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        108 f-s =        170 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.39126D+00    0.39127D+00    0.51282D-05
+  2    0.52567D+00    0.52568D+00    0.68819D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         66
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        225 f-s =        303 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.75295D-07    0.80898D-07    0.56032D-08
+  2    0.23607D+00    0.23607D+00    0.11868D-06
+  3    0.20425D-04    0.20426D-04    0.14145D-08
+  4    0.99860D+00    0.99860D+00    0.40834D-06
+  5    0.99879D+00    0.99879D+00    0.10033D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        165
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        106
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.33898D-04
+    0.62147D-03
+    0.12780D-03
+ Nonnegativity will be enforced for this problem.
+ Steps =        845 f-s =       1297 J-s =         23
+ Computed and reference solutions and absolute errors follow:
+  1    0.38386D-04    0.37443D-04    0.94309D-06
+  2    0.72738D-03    0.72895D-03    0.15766D-05
+  3    0.97716D-04    0.96463D-04    0.12530D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         95
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        100
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10015D+01
+    0.10001D+01
+    0.26527D+00
+    0.98220D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        276 f-s =        416 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.50999D+00    0.50999D+00    0.11401D-08
+  2    0.44958D+00    0.44958D+00    0.13044D-08
+  3    0.99988D+00    0.99988D+00    0.28990D-08
+  4    0.99949D+00    0.99949D+00    0.66486D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        128
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        168 f-s =        278 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.45705D-04    0.45400D-04    0.30488D-06
+  2   -0.90858D-08    0.20612D-08    0.11147D-07
+  3    0.24100D-22    0.28230D-55    0.24100D-22
+  4   -0.15607D-21    0.52358D-51    0.15607D-21
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =   1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        207 f-s =        410 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D+00    0.99999D+00    0.42534D-05
+  2    0.99999D+00    0.99999D+00    0.42532D-05
+  3    0.99999D+00    0.99999D+00    0.39827D-05
+  4    0.99999D+00    0.99999D+00    0.35587D-05
+  5    0.99999D+00    0.99999D+00    0.30230D-05
+  6    0.99999D+00    0.10000D+01    0.24100D-05
+  7    0.99999D+00    0.10000D+01    0.17572D-05
+  8    0.10000D+01    0.10000D+01    0.11043D-05
+  9    0.10000D+01    0.10000D+01    0.49082D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        425
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =       1072
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.12788D+00
+    0.10000D+01
+ Steps =        206 f-s =        337 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13533D-02   -0.13534D-02    0.26156D-07
+  2    0.13685D-01    0.13685D-01    0.26365D-06
+  3    0.19229D+00    0.19229D+00    0.37164D-05
+  4    0.13533D+00    0.13534D+00    0.26994D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        254 f-s =        530 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.76940D-06
+  2    0.34439D-06    0.12659D-13    0.34439D-06
+  3   -0.44767D-10    0.19115D-41    0.44767D-10
+  4   -0.33857D-18    0.22774D-54    0.33857D-18
+  5   -0.21641D-22    0.00000D+00    0.21641D-22
+  6    0.28625D-31    0.00000D+00    0.28625D-31
+  7   -0.17291D-39    0.00000D+00    0.17291D-39
+  8   -0.77559D-46    0.00000D+00    0.77559D-46
+  9    0.19301D-53    0.00000D+00    0.19301D-53
+ 10    0.40515D-60    0.00000D+00    0.40515D-60
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        500
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =       1271
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =        686 f-s =        899 J-s =         21
+ Computed and reference solutions and absolute errors follow:
+  1   -0.52998D-05    0.10042D-08    0.53008D-05
+  2    0.19335D-04    0.20955D-08    0.19333D-04
+  3   -0.57223D-42    0.00000D+00    0.57223D-42
+  4    0.11112D-41   -0.18767D-79    0.11112D-41
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        137 f-s =        231 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.13210D-11    0.61813D-30    0.13210D-11
+  2   -0.47809D-12    0.89637D-30    0.47809D-12
+  3    0.17546D-08    0.27384D-26    0.17546D-08
+  4    0.28827D-07    0.20612D-08    0.26765D-07
+  5    0.47562D-04    0.45400D-04    0.21619D-05
+  6    0.13534D+00    0.13534D+00    0.13840D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        236
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        583
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        148 f-s =        249 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1   -0.10780D-10   -0.10768D-27    0.10780D-10
+  2   -0.17657D-09    0.54550D-27    0.17657D-09
+  3   -0.25324D-09    0.27385D-26    0.25324D-09
+  4    0.26160D-07    0.20612D-08    0.24099D-07
+  5    0.47467D-04    0.45400D-04    0.20675D-05
+  6    0.13534D+00    0.13534D+00    0.13337D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        236
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        583
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        276 f-s =        433 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1   -0.22556D-10    0.11886D-21    0.22556D-10
+  2   -0.37063D-10   -0.23259D-21    0.37063D-10
+  3   -0.33230D-14    0.15179D-34    0.33230D-14
+  4    0.13648D-07    0.20612D-08    0.11587D-07
+  5    0.46631D-04    0.45400D-04    0.12312D-05
+  6    0.13534D+00    0.13534D+00    0.92459D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        236
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        583
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.76336D+00
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       2619 f-s =       3658 J-s =         72
+ Computed and reference solutions and absolute errors follow:
+  1   -0.22488D-04   -0.23669D-13    0.22488D-04
+  2   -0.11299D-05    0.34489D-13    0.11299D-05
+  3    0.18048D-34    0.18049D-34    0.31880D-39
+  4    0.20612D-08    0.20612D-08    0.32901D-16
+  5    0.45400D-04    0.45400D-04    0.15283D-13
+  6    0.13534D+00    0.13534D+00    0.96784D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        236
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        583
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.98039D+00
+    0.97087D+00
+    0.10000D+01
+    0.10000D+01
+ Steps =        184 f-s =        298 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.39194D-03    0.39247D-03    0.53723D-06
+  2    0.38850D-03    0.38850D-03    0.55884D-10
+  3    0.40000D-03    0.40000D-03    0.53023D-15
+  4    0.20000D-01    0.20000D-01    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        175 f-s =        286 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.19179D-05
+  2    0.40000D-01    0.40000D-01    0.16999D-06
+  3    0.40016D-01    0.40016D-01    0.15752D-06
+  4    0.40032D-01    0.40032D-01    0.15524D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        173 f-s =        289 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.36349D-06
+  2    0.40000D+00    0.40000D+00    0.33041D-06
+  3    0.41600D+00    0.41600D+00    0.32555D-06
+  4    0.43331D+00    0.43331D+00    0.34782D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.50000D+00
+    0.25000D+00
+    0.50000D-01
+    0.23810D-02
+ Steps =        145 f-s =        244 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.77756D-07
+  2    0.10000D+01    0.10000D+01    0.17275D-06
+  3    0.10000D+01    0.10000D+01    0.31553D-06
+  4    0.10000D+01    0.10000D+01    0.62207D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.50000D+00
+    0.12500D+00
+    0.73529D-02
+    0.26954D-04
+ Steps =        145 f-s =        222 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.43312D-08
+  2    0.10000D+01    0.10000D+01    0.12939D-07
+  3    0.10000D+01    0.10000D+01    0.29749D-07
+  4    0.10008D+01    0.10008D+01    0.14653D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        140 f-s =        232 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.99744D+00    0.99741D+00    0.28008D-04
+  2    0.10004D+01    0.10004D+01    0.20546D-04
+  3    0.10000D+01    0.10000D+01    0.13323D-14
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        243 f-s =        413 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.18961D-05
+  2    0.25166D+00    0.25166D+00    0.22387D-05
+  3    0.99706D+00    0.99707D+00    0.66534D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        231 f-s =        381 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.12471D-06
+  2    0.56309D-02    0.56309D-02    0.24379D-09
+  3    0.10007D+01    0.10007D+01    0.34641D-06
+  4    0.65374D+00    0.65374D+00    0.12882D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.70423D+00
+    0.00000D+00
+ Steps =        114 f-s =        194 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.37648D-05
+  2    0.98757D+00    0.98757D+00    0.26513D-05
+  3   -0.51034D+00   -0.51035D+00    0.40388D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        117 f-s =        202 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99962D+00   -0.99964D+00    0.17110D-04
+  2    0.99931D+00    0.99933D+00    0.13266D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         68
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        183
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        205 f-s =        311 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.26315D-07
+  2    0.99730D+00    0.99730D+00    0.17781D-06
+  3    0.10005D+01    0.10005D+01    0.14188D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        171 f-s =        269 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.25677D-09
+  2    0.11572D-08   -0.72884D-12    0.11579D-08
+  3   -0.13905D-08    0.15348D-11    0.13920D-08
+  4    0.59114D-09   -0.10837D-11    0.59222D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.99010D+00
+    0.00000D+00
+ Steps =        232 f-s =        363 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1   -0.57350D+00   -0.57361D+00    0.11643D-03
+  2    0.56375D-01    0.56344D-01    0.30322D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         68
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        183
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.61350D+00
+    0.62500D+00
+    0.00000D+00
+ Steps =        245 f-s =        416 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.26115D-02    0.26092D-02    0.22476D-05
+  2    0.33260D-02    0.33231D-02    0.28699D-05
+  3    0.99912D+00    0.99911D+00    0.10473D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.00000D+00
+   -0.67797D-01
+   -0.64516D-01
+   -0.61350D-01
+ Steps =        275 f-s =        449 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1    0.69444D+00    0.69444D+00    0.20622D-06
+  2   -0.67797D+00   -0.67797D+00    0.20133D-06
+  3    0.36866D-06   -0.14501D-07    0.38316D-06
+  4   -0.35058D-06    0.13789D-07    0.36437D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         88 f-s =        153 J-s =          4
+ Computed and reference solutions and absolute errors follow:
+  1    0.91936D+00    0.91936D+00    0.13700D-05
+  2    0.94674D+00    0.94674D+00    0.11030D-05
+  3    0.99777D+00    0.99777D+00    0.17559D-06
+  4    0.94183D+00    0.94183D+00    0.11779D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.62893D+00
+    0.00000D+00
+    0.49587D+00
+    0.10000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =        373 f-s =        816 J-s =         25
+ Computed and reference solutions and absolute errors follow:
+  1    0.10009D+01    0.10009D+01    0.24899D-05
+  2    0.15223D-03    0.15223D-03    0.40360D-08
+  3    0.99887D+00    0.99887D+00    0.24717D-05
+  4    0.32420D-02    0.32420D-02    0.33604D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        148
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        351
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        108 f-s =        175 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.39126D+00    0.39127D+00    0.51826D-05
+  2    0.52567D+00    0.52568D+00    0.69564D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         72
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        185
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        219 f-s =        354 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.80896D-07    0.80898D-07    0.19935D-11
+  2    0.23607D+00    0.23607D+00    0.75528D-07
+  3    0.20426D-04    0.20426D-04    0.72273D-12
+  4    0.99860D+00    0.99860D+00    0.60506D-07
+  5    0.99879D+00    0.99879D+00    0.38004D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        195
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        461
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.33898D-04
+    0.62147D-03
+    0.12780D-03
+ Nonnegativity will be enforced for this problem.
+ Steps =        754 f-s =       1272 J-s =         35
+ Computed and reference solutions and absolute errors follow:
+  1    0.37194D-04    0.37443D-04    0.24933D-06
+  2    0.72913D-03    0.72895D-03    0.17638D-06
+  3    0.96371D-04    0.96463D-04    0.91616D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        259
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10015D+01
+    0.10001D+01
+    0.26527D+00
+    0.98220D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        257 f-s =        431 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.50999D+00    0.50999D+00    0.96308D-09
+  2    0.44958D+00    0.44958D+00    0.85071D-09
+  3    0.99988D+00    0.99988D+00    0.18920D-08
+  4    0.99949D+00    0.99949D+00    0.37712D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        148
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        351
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        168 f-s =        242 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.45705D-04    0.45400D-04    0.30489D-06
+  2   -0.90865D-08    0.20612D-08    0.11148D-07
+  3    0.24157D-22    0.28230D-55    0.24157D-22
+  4   -0.15644D-21    0.52358D-51    0.15644D-21
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =   1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        206 f-s =        330 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D+00    0.99999D+00    0.38582D-05
+  2    0.99999D+00    0.99999D+00    0.38580D-05
+  3    0.99999D+00    0.99999D+00    0.36148D-05
+  4    0.99999D+00    0.99999D+00    0.32319D-05
+  5    0.99999D+00    0.99999D+00    0.27472D-05
+  6    0.99999D+00    0.10000D+01    0.21917D-05
+  7    0.99999D+00    0.10000D+01    0.15990D-05
+  8    0.10000D+01    0.10000D+01    0.10053D-05
+  9    0.10000D+01    0.10000D+01    0.44680D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        551
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        109
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.12788D+00
+    0.10000D+01
+ Steps =        206 f-s =        299 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.13323D-08
+  2    0.13685D-01    0.13685D-01    0.14068D-07
+  3    0.19229D+00    0.19229D+00    0.18930D-06
+  4    0.13534D+00    0.13534D+00    0.74264D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        254 f-s =        390 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.76940D-06
+  2    0.34439D-06    0.12659D-13    0.34439D-06
+  3   -0.44767D-10    0.19115D-41    0.44767D-10
+  4   -0.33848D-18    0.22774D-54    0.33848D-18
+  5   -0.21641D-22    0.00000D+00    0.21641D-22
+  6    0.28625D-31    0.00000D+00    0.28625D-31
+  7   -0.17291D-39    0.00000D+00    0.17291D-39
+  8   -0.77559D-46    0.00000D+00    0.77559D-46
+  9    0.19301D-53    0.00000D+00    0.19301D-53
+ 10    0.40515D-60    0.00000D+00    0.40515D-60
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        660
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        111
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =        686 f-s =        795 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1   -0.52997D-05    0.10042D-08    0.53007D-05
+  2    0.19335D-04    0.20955D-08    0.19333D-04
+  3   -0.57221D-42    0.00000D+00    0.57221D-42
+  4    0.11111D-41   -0.18767D-79    0.11111D-41
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        137 f-s =        201 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.13210D-11    0.61813D-30    0.13210D-11
+  2   -0.47809D-12    0.89637D-30    0.47809D-12
+  3    0.17546D-08    0.27384D-26    0.17546D-08
+  4    0.28827D-07    0.20612D-08    0.26765D-07
+  5    0.47562D-04    0.45400D-04    0.21619D-05
+  6    0.13534D+00    0.13534D+00    0.13840D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        284
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        148 f-s =        207 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1   -0.10780D-10   -0.10768D-27    0.10780D-10
+  2   -0.17657D-09    0.54550D-27    0.17657D-09
+  3   -0.25324D-09    0.27385D-26    0.25324D-09
+  4    0.26160D-07    0.20612D-08    0.24099D-07
+  5    0.47467D-04    0.45400D-04    0.20675D-05
+  6    0.13534D+00    0.13534D+00    0.13337D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        284
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        276 f-s =        343 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1   -0.22556D-10    0.11886D-21    0.22556D-10
+  2   -0.37063D-10   -0.23259D-21    0.37063D-10
+  3   -0.33232D-14    0.15179D-34    0.33232D-14
+  4    0.13648D-07    0.20612D-08    0.11587D-07
+  5    0.46631D-04    0.45400D-04    0.12312D-05
+  6    0.13534D+00    0.13534D+00    0.92459D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        284
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.76336D+00
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       2619 f-s =       3088 J-s =         49
+ Computed and reference solutions and absolute errors follow:
+  1   -0.22347D-04   -0.23669D-13    0.22347D-04
+  2   -0.15450D-05    0.34489D-13    0.15450D-05
+  3    0.18048D-34    0.18049D-34    0.31900D-39
+  4    0.20612D-08    0.20612D-08    0.32924D-16
+  5    0.45400D-04    0.45400D-04    0.15320D-13
+  6    0.13534D+00    0.13534D+00    0.95440D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        284
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.98039D+00
+    0.97087D+00
+    0.10000D+01
+    0.10000D+01
+ Steps =        182 f-s =        254 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.39226D-03    0.39247D-03    0.20968D-06
+  2    0.38850D-03    0.38850D-03    0.11918D-11
+  3    0.40000D-03    0.40000D-03    0.21684D-18
+  4    0.20000D-01    0.20000D-01    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        177 f-s =        252 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.55706D-07
+  2    0.40000D-01    0.40000D-01    0.46668D-08
+  3    0.40016D-01    0.40016D-01    0.45689D-08
+  4    0.40032D-01    0.40032D-01    0.45084D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        174 f-s =        249 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.37237D-07
+  2    0.40000D+00    0.40000D+00    0.35114D-07
+  3    0.41600D+00    0.41600D+00    0.33077D-07
+  4    0.43331D+00    0.43331D+00    0.34506D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.50000D+00
+    0.25000D+00
+    0.50000D-01
+    0.23810D-02
+ Steps =        153 f-s =        216 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.33896D-07
+  2    0.10000D+01    0.10000D+01    0.74437D-07
+  3    0.10000D+01    0.10000D+01    0.13199D-06
+  4    0.10000D+01    0.10000D+01    0.24962D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.50000D+00
+    0.12500D+00
+    0.73529D-02
+    0.26954D-04
+ Steps =        147 f-s =        208 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.92876D-07
+  2    0.10000D+01    0.10000D+01    0.20651D-06
+  3    0.10000D+01    0.10000D+01    0.40174D-06
+  4    0.10008D+01    0.10008D+01    0.83501D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        142 f-s =        237 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.99742D+00    0.99741D+00    0.10459D-04
+  2    0.10004D+01    0.10004D+01    0.11006D-04
+  3    0.10000D+01    0.10000D+01    0.33307D-15
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        204 f-s =        321 J-s =          4
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.14766D-05
+  2    0.25166D+00    0.25166D+00    0.24455D-06
+  3    0.99707D+00    0.99707D+00    0.51810D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        254 f-s =        365 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.23769D-06
+  2    0.56309D-02    0.56309D-02    0.46371D-09
+  3    0.10007D+01    0.10007D+01    0.66024D-06
+  4    0.65374D+00    0.65374D+00    0.24551D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.70423D+00
+    0.00000D+00
+ Steps =        110 f-s =        177 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.79363D-06
+  2    0.98757D+00    0.98757D+00    0.55890D-06
+  3   -0.51035D+00   -0.51035D+00    0.59322D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        107 f-s =        179 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99965D+00   -0.99964D+00    0.95448D-05
+  2    0.99932D+00    0.99933D+00    0.50664D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         68
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         95
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        201 f-s =        299 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.99964D-06
+  2    0.99731D+00    0.99730D+00    0.67543D-05
+  3    0.10005D+01    0.10005D+01    0.21366D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        171 f-s =        245 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.23940D-09
+  2   -0.35983D-09   -0.72884D-12    0.35910D-09
+  3   -0.50193D-10    0.15348D-11    0.51728D-10
+  4    0.26402D-09   -0.10837D-11    0.26510D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.99010D+00
+    0.00000D+00
+ Steps =        228 f-s =        313 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1   -0.57358D+00   -0.57361D+00    0.37357D-04
+  2    0.56350D-01    0.56344D-01    0.57863D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         68
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         95
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.61350D+00
+    0.62500D+00
+    0.00000D+00
+ Steps =        195 f-s =        299 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.26090D-02    0.26092D-02    0.27101D-06
+  2    0.33229D-02    0.33231D-02    0.20233D-06
+  3    0.99912D+00    0.99911D+00    0.10851D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.00000D+00
+   -0.67797D-01
+   -0.64516D-01
+   -0.61350D-01
+ Steps =        282 f-s =        411 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.69444D+00    0.69444D+00    0.44440D-06
+  2   -0.67797D+00   -0.67797D+00    0.43458D-06
+  3   -0.84126D-06   -0.14501D-07    0.82676D-06
+  4    0.79931D-06    0.13789D-07    0.78552D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         88 f-s =        133 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.91936D+00    0.91936D+00    0.13718D-05
+  2    0.94674D+00    0.94674D+00    0.96190D-06
+  3    0.99777D+00    0.99777D+00    0.17383D-06
+  4    0.94183D+00    0.94183D+00    0.10284D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.62893D+00
+    0.00000D+00
+    0.49587D+00
+    0.10000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =        405 f-s =        728 J-s =         23
+ Computed and reference solutions and absolute errors follow:
+  1    0.10009D+01    0.10009D+01    0.40150D-06
+  2    0.15223D-03    0.15223D-03    0.72353D-09
+  3    0.99887D+00    0.99887D+00    0.39844D-06
+  4    0.32420D-02    0.32420D-02    0.60228D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        108 f-s =        170 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.39126D+00    0.39127D+00    0.51282D-05
+  2    0.52567D+00    0.52568D+00    0.68819D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         72
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        225 f-s =        303 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.75295D-07    0.80898D-07    0.56032D-08
+  2    0.23607D+00    0.23607D+00    0.11868D-06
+  3    0.20425D-04    0.20426D-04    0.14145D-08
+  4    0.99860D+00    0.99860D+00    0.40834D-06
+  5    0.99879D+00    0.99879D+00    0.10033D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        225
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        106
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.33898D-04
+    0.62147D-03
+    0.12780D-03
+ Nonnegativity will be enforced for this problem.
+ Steps =        845 f-s =       1297 J-s =         23
+ Computed and reference solutions and absolute errors follow:
+  1    0.38386D-04    0.37443D-04    0.94309D-06
+  2    0.72738D-03    0.72895D-03    0.15766D-05
+  3    0.97716D-04    0.96463D-04    0.12530D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        113
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        100
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10015D+01
+    0.10001D+01
+    0.26527D+00
+    0.98220D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        276 f-s =        416 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.50999D+00    0.50999D+00    0.11401D-08
+  2    0.44958D+00    0.44958D+00    0.13044D-08
+  3    0.99988D+00    0.99988D+00    0.28990D-08
+  4    0.99949D+00    0.99949D+00    0.66486D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        229 f-s =        308 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.45579D-04    0.45400D-04    0.17939D-06
+  2    0.44586D-08    0.20612D-08    0.23974D-08
+  3    0.15376D-27    0.28230D-55    0.15376D-27
+  4    0.19802D-26    0.52358D-51    0.19802D-26
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =   1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        268 f-s =        421 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D+00    0.99999D+00    0.12239D-06
+  2    0.99999D+00    0.99999D+00    0.12237D-06
+  3    0.99999D+00    0.99999D+00    0.11409D-06
+  4    0.99999D+00    0.99999D+00    0.10126D-06
+  5    0.99999D+00    0.99999D+00    0.85334D-07
+  6    0.10000D+01    0.10000D+01    0.67503D-07
+  7    0.10000D+01    0.10000D+01    0.48893D-07
+  8    0.10000D+01    0.10000D+01    0.30592D-07
+  9    0.10000D+01    0.10000D+01    0.13597D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        335
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        109
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.12788D+00
+    0.10000D+01
+ Steps =        276 f-s =        385 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.39216D-10
+  2    0.13685D-01    0.13685D-01    0.83753D-10
+  3    0.19229D+00    0.19229D+00    0.55713D-08
+  4    0.13534D+00    0.13534D+00    0.51466D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        358 f-s =        535 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.13268D-06
+  2   -0.43440D-08    0.12659D-13    0.43440D-08
+  3    0.40051D-16    0.19115D-41    0.40051D-16
+  4   -0.32925D-22    0.22774D-54    0.32925D-22
+  5   -0.39433D-31    0.00000D+00    0.39433D-31
+  6   -0.12327D-41    0.00000D+00    0.12327D-41
+  7   -0.52242D-53    0.00000D+00    0.52242D-53
+  8    0.37414D-64    0.00000D+00    0.37414D-64
+  9    0.13554D-72    0.00000D+00    0.13554D-72
+ 10    0.23570D-80    0.00000D+00    0.23570D-80
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        390
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        111
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =        975 f-s =       1107 J-s =         21
+ Computed and reference solutions and absolute errors follow:
+  1   -0.17030D-06    0.10042D-08    0.17130D-06
+  2    0.58479D-06    0.20955D-08    0.58269D-06
+  3    0.68665D-44    0.00000D+00    0.68665D-44
+  4    0.37321D-43   -0.18767D-79    0.37321D-43
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        201 f-s =        282 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.10445D-14    0.61813D-30    0.10445D-14
+  2    0.55349D-15    0.89637D-30    0.55349D-15
+  3   -0.31348D-12    0.27384D-26    0.31348D-12
+  4    0.17054D-08    0.20612D-08    0.35571D-09
+  5    0.45523D-04    0.45400D-04    0.12318D-06
+  6    0.13534D+00    0.13534D+00    0.14002D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        194
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        219 f-s =        301 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1   -0.25085D-12   -0.10768D-27    0.25085D-12
+  2    0.25516D-12    0.54550D-27    0.25516D-12
+  3    0.20234D-13    0.27385D-26    0.20234D-13
+  4    0.32642D-08    0.20612D-08    0.12030D-08
+  5    0.45517D-04    0.45400D-04    0.11735D-06
+  6    0.13534D+00    0.13534D+00    0.12669D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        194
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        373 f-s =        461 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1   -0.98378D-11    0.11886D-21    0.98378D-11
+  2    0.31375D-10   -0.23259D-21    0.31375D-10
+  3   -0.73055D-17    0.15179D-34    0.73055D-17
+  4    0.16508D-08    0.20612D-08    0.41040D-09
+  5    0.45488D-04    0.45400D-04    0.88396D-07
+  6    0.13534D+00    0.13534D+00    0.82984D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        194
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.76336D+00
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       2868 f-s =       3382 J-s =         53
+ Computed and reference solutions and absolute errors follow:
+  1    0.97125D-07   -0.23669D-13    0.97125D-07
+  2    0.20089D-05    0.34489D-13    0.20089D-05
+  3    0.18048D-34    0.18049D-34    0.13281D-39
+  4    0.20612D-08    0.20612D-08    0.14763D-16
+  5    0.45400D-04    0.45400D-04    0.93105D-14
+  6    0.13534D+00    0.13534D+00    0.10128D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        194
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.98039D+00
+    0.97087D+00
+    0.10000D+01
+    0.10000D+01
+ Steps =        269 f-s =        352 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.39250D-03    0.39247D-03    0.26281D-07
+  2    0.38850D-03    0.38850D-03    0.23703D-14
+  3    0.40000D-03    0.40000D-03    0.54210D-19
+  4    0.20000D-01    0.20000D-01    0.34694D-17
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        239 f-s =        330 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.42538D-07
+  2    0.40000D-01    0.40000D-01    0.38015D-08
+  3    0.40016D-01    0.40016D-01    0.34925D-08
+  4    0.40032D-01    0.40032D-01    0.34429D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        239 f-s =        332 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.75664D-07
+  2    0.40000D+00    0.40000D+00    0.67634D-07
+  3    0.41600D+00    0.41600D+00    0.67646D-07
+  4    0.43331D+00    0.43331D+00    0.72296D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.50000D+00
+    0.25000D+00
+    0.50000D-01
+    0.23810D-02
+ Steps =        207 f-s =        277 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.98492D-08
+  2    0.10000D+01    0.10000D+01    0.21530D-07
+  3    0.10000D+01    0.10000D+01    0.37481D-07
+  4    0.10000D+01    0.10000D+01    0.66996D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.50000D+00
+    0.12500D+00
+    0.73529D-02
+    0.26954D-04
+ Steps =        196 f-s =        291 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.19495D-08
+  2    0.10000D+01    0.10000D+01    0.43368D-08
+  3    0.10000D+01    0.10000D+01    0.86158D-08
+  4    0.10008D+01    0.10008D+01    0.17272D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        193 f-s =        298 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.99741D+00    0.99741D+00    0.81574D-06
+  2    0.10004D+01    0.10004D+01    0.45063D-08
+  3    0.10000D+01    0.10000D+01    0.24425D-14
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        334 f-s =        458 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.38169D-06
+  2    0.25166D+00    0.25166D+00    0.57129D-06
+  3    0.99706D+00    0.99707D+00    0.13393D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        314 f-s =        440 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.60693D-07
+  2    0.56309D-02    0.56309D-02    0.11817D-09
+  3    0.10007D+01    0.10007D+01    0.16859D-06
+  4    0.65374D+00    0.65374D+00    0.62692D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.70423D+00
+    0.00000D+00
+ Steps =        161 f-s =        242 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.91746D-06
+  2    0.98757D+00    0.98757D+00    0.64610D-06
+  3   -0.51035D+00   -0.51035D+00    0.10017D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        160 f-s =        254 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99963D+00   -0.99964D+00    0.50711D-05
+  2    0.99932D+00    0.99933D+00    0.57779D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         62
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         95
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        296 f-s =        402 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.15127D-08
+  2    0.99730D+00    0.99730D+00    0.10221D-07
+  3    0.10005D+01    0.10005D+01    0.28200D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        236 f-s =        342 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.83381D-09
+  2   -0.21815D-09   -0.72884D-12    0.21742D-09
+  3   -0.67345D-09    0.15348D-11    0.67499D-09
+  4    0.33899D-10   -0.10837D-11    0.34982D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.99010D+00
+    0.00000D+00
+ Steps =        289 f-s =        401 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1   -0.57361D+00   -0.57361D+00    0.88978D-05
+  2    0.56347D-01    0.56344D-01    0.26471D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         62
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         95
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.61350D+00
+    0.62500D+00
+    0.00000D+00
+ Steps =        314 f-s =        463 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1    0.26090D-02    0.26092D-02    0.23697D-06
+  2    0.33228D-02    0.33231D-02    0.30255D-06
+  3    0.99910D+00    0.99911D+00    0.99478D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.00000D+00
+   -0.67797D-01
+   -0.64516D-01
+   -0.61350D-01
+ Steps =        409 f-s =        556 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1    0.69444D+00    0.69444D+00    0.15194D-07
+  2   -0.67797D+00   -0.67797D+00    0.14823D-07
+  3   -0.42736D-07   -0.14501D-07    0.28235D-07
+  4    0.40615D-07    0.13789D-07    0.26826D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        119 f-s =        169 J-s =          4
+ Computed and reference solutions and absolute errors follow:
+  1    0.91936D+00    0.91936D+00    0.17151D-06
+  2    0.94674D+00    0.94674D+00    0.84205D-07
+  3    0.99777D+00    0.99777D+00    0.85966D-07
+  4    0.94183D+00    0.94183D+00    0.91992D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.62893D+00
+    0.00000D+00
+    0.49587D+00
+    0.10000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =        538 f-s =        977 J-s =         25
+ Computed and reference solutions and absolute errors follow:
+  1    0.10009D+01    0.10009D+01    0.89191D-07
+  2    0.15223D-03    0.15223D-03    0.12278D-08
+  3    0.99887D+00    0.99887D+00    0.88531D-07
+  4    0.32420D-02    0.32420D-02    0.10144D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        128
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        142 f-s =        207 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.52922D-06
+  2    0.52568D+00    0.52568D+00    0.71041D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         66
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        346 f-s =        491 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.80901D-07    0.80898D-07    0.35659D-11
+  2    0.23607D+00    0.23607D+00    0.30900D-07
+  3    0.20426D-04    0.20426D-04    0.11815D-11
+  4    0.99860D+00    0.99860D+00    0.14214D-07
+  5    0.99879D+00    0.99879D+00    0.14488D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        165
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        106
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.33898D-04
+    0.62147D-03
+    0.12780D-03
+ Nonnegativity will be enforced for this problem.
+ Steps =        937 f-s =       1556 J-s =         27
+ Computed and reference solutions and absolute errors follow:
+  1    0.37274D-04    0.37443D-04    0.16906D-06
+  2    0.72899D-03    0.72895D-03    0.38067D-07
+  3    0.96376D-04    0.96463D-04    0.86300D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         95
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        100
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10015D+01
+    0.10001D+01
+    0.26527D+00
+    0.98220D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        372 f-s =        544 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.50999D+00    0.50999D+00    0.15034D-08
+  2    0.44958D+00    0.44958D+00    0.13491D-08
+  3    0.99988D+00    0.99988D+00    0.30004D-08
+  4    0.99949D+00    0.99949D+00    0.52782D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        128
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        229 f-s =        340 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.45579D-04    0.45400D-04    0.17939D-06
+  2    0.44586D-08    0.20612D-08    0.23974D-08
+  3    0.15376D-27    0.28230D-55    0.15376D-27
+  4    0.19802D-26    0.52358D-51    0.19802D-26
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =   1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        264 f-s =        528 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D+00    0.99999D+00    0.13796D-06
+  2    0.99999D+00    0.99999D+00    0.13795D-06
+  3    0.99999D+00    0.99999D+00    0.12861D-06
+  4    0.99999D+00    0.99999D+00    0.11414D-06
+  5    0.99999D+00    0.99999D+00    0.96190D-07
+  6    0.10000D+01    0.10000D+01    0.76087D-07
+  7    0.10000D+01    0.10000D+01    0.55109D-07
+  8    0.10000D+01    0.10000D+01    0.34481D-07
+  9    0.10000D+01    0.10000D+01    0.15326D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        425
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =       1072
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.12788D+00
+    0.10000D+01
+ Steps =        276 f-s =        441 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.47026D-10
+  2    0.13685D-01    0.13685D-01    0.46279D-10
+  3    0.19229D+00    0.19229D+00    0.66814D-08
+  4    0.13534D+00    0.13534D+00    0.47194D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        358 f-s =        705 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.13268D-06
+  2   -0.43440D-08    0.12659D-13    0.43441D-08
+  3    0.40050D-16    0.19115D-41    0.40050D-16
+  4   -0.32925D-22    0.22774D-54    0.32925D-22
+  5   -0.39433D-31    0.00000D+00    0.39433D-31
+  6   -0.12327D-41    0.00000D+00    0.12327D-41
+  7   -0.52242D-53    0.00000D+00    0.52242D-53
+  8    0.37414D-64    0.00000D+00    0.37414D-64
+  9    0.13554D-72    0.00000D+00    0.13554D-72
+ 10    0.23570D-80    0.00000D+00    0.23570D-80
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        500
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =       1271
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =        975 f-s =       1263 J-s =         30
+ Computed and reference solutions and absolute errors follow:
+  1   -0.17036D-06    0.10042D-08    0.17137D-06
+  2    0.58484D-06    0.20955D-08    0.58274D-06
+  3    0.68593D-44    0.00000D+00    0.68593D-44
+  4    0.37335D-43   -0.18767D-79    0.37335D-43
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        201 f-s =        324 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.10445D-14    0.61813D-30    0.10445D-14
+  2    0.55349D-15    0.89637D-30    0.55349D-15
+  3   -0.31348D-12    0.27384D-26    0.31348D-12
+  4    0.17054D-08    0.20612D-08    0.35571D-09
+  5    0.45523D-04    0.45400D-04    0.12318D-06
+  6    0.13534D+00    0.13534D+00    0.14002D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        236
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        583
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        219 f-s =        343 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1   -0.25085D-12   -0.10768D-27    0.25085D-12
+  2    0.25516D-12    0.54550D-27    0.25516D-12
+  3    0.20234D-13    0.27385D-26    0.20234D-13
+  4    0.32642D-08    0.20612D-08    0.12030D-08
+  5    0.45517D-04    0.45400D-04    0.11735D-06
+  6    0.13534D+00    0.13534D+00    0.12669D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        236
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        583
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        373 f-s =        557 J-s =         13
+ Computed and reference solutions and absolute errors follow:
+  1   -0.98378D-11    0.11886D-21    0.98378D-11
+  2    0.31375D-10   -0.23259D-21    0.31375D-10
+  3   -0.73055D-17    0.15179D-34    0.73055D-17
+  4    0.16508D-08    0.20612D-08    0.41040D-09
+  5    0.45488D-04    0.45400D-04    0.88396D-07
+  6    0.13534D+00    0.13534D+00    0.82984D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        236
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        583
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.76336D+00
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       2868 f-s =       3976 J-s =         76
+ Computed and reference solutions and absolute errors follow:
+  1    0.97425D-07   -0.23669D-13    0.97425D-07
+  2    0.20088D-05    0.34489D-13    0.20088D-05
+  3    0.18048D-34    0.18049D-34    0.13281D-39
+  4    0.20612D-08    0.20612D-08    0.14761D-16
+  5    0.45400D-04    0.45400D-04    0.92869D-14
+  6    0.13534D+00    0.13534D+00    0.11530D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        236
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        583
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.98039D+00
+    0.97087D+00
+    0.10000D+01
+    0.10000D+01
+ Steps =        265 f-s =        405 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.39248D-03    0.39247D-03    0.49626D-08
+  2    0.38850D-03    0.38850D-03    0.17099D-13
+  3    0.40000D-03    0.40000D-03    0.00000D+00
+  4    0.20000D-01    0.20000D-01    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        240 f-s =        367 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.49231D-07
+  2    0.40000D-01    0.40000D-01    0.43966D-08
+  3    0.40016D-01    0.40016D-01    0.40424D-08
+  4    0.40032D-01    0.40032D-01    0.39848D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        238 f-s =        367 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.91194D-07
+  2    0.40000D+00    0.40000D+00    0.82497D-07
+  3    0.41600D+00    0.41600D+00    0.81703D-07
+  4    0.43331D+00    0.43331D+00    0.87260D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.50000D+00
+    0.25000D+00
+    0.50000D-01
+    0.23810D-02
+ Steps =        195 f-s =        301 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.44353D-07
+  2    0.10000D+01    0.10000D+01    0.98563D-07
+  3    0.10000D+01    0.10000D+01    0.17994D-06
+  4    0.10000D+01    0.10000D+01    0.35465D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.50000D+00
+    0.12500D+00
+    0.73529D-02
+    0.26954D-04
+ Steps =        193 f-s =        323 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.50479D-07
+  2    0.10000D+01    0.10000D+01    0.11217D-06
+  3    0.10000D+01    0.10000D+01    0.22267D-06
+  4    0.10008D+01    0.10008D+01    0.44946D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        190 f-s =        337 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.99741D+00    0.99741D+00    0.26073D-05
+  2    0.10004D+01    0.10004D+01    0.19672D-05
+  3    0.10000D+01    0.10000D+01    0.13323D-14
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        322 f-s =        527 J-s =         13
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.16415D-07
+  2    0.25166D+00    0.25166D+00    0.17101D-07
+  3    0.99707D+00    0.99707D+00    0.57601D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        344 f-s =        532 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.31832D-08
+  2    0.56309D-02    0.56309D-02    0.62125D-11
+  3    0.10007D+01    0.10007D+01    0.88421D-08
+  4    0.65374D+00    0.65374D+00    0.32880D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.70423D+00
+    0.00000D+00
+ Steps =        161 f-s =        257 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.91419D-06
+  2    0.98757D+00    0.98757D+00    0.64380D-06
+  3   -0.51035D+00   -0.51035D+00    0.94864D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        178 f-s =        313 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99964D+00   -0.99964D+00    0.10426D-05
+  2    0.99932D+00    0.99933D+00    0.17124D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         68
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        183
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        276 f-s =        463 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.84921D-08
+  2    0.99730D+00    0.99730D+00    0.57380D-07
+  3    0.10005D+01    0.10005D+01    0.20697D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        255 f-s =        400 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.23226D-08
+  2   -0.36031D-07   -0.72884D-12    0.36031D-07
+  3    0.13943D-06    0.15348D-11    0.13943D-06
+  4   -0.14846D-06   -0.10837D-11    0.14846D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.99010D+00
+    0.00000D+00
+ Steps =        286 f-s =        420 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1   -0.57360D+00   -0.57361D+00    0.11627D-04
+  2    0.56347D-01    0.56344D-01    0.28542D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         68
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        183
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.61350D+00
+    0.62500D+00
+    0.00000D+00
+ Steps =        276 f-s =        467 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.26096D-02    0.26092D-02    0.34497D-06
+  2    0.33236D-02    0.33231D-02    0.42881D-06
+  3    0.99910D+00    0.99911D+00    0.20239D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.00000D+00
+   -0.67797D-01
+   -0.64516D-01
+   -0.61350D-01
+ Steps =        384 f-s =        613 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1    0.69444D+00    0.69444D+00    0.75474D-08
+  2   -0.67797D+00   -0.67797D+00    0.73828D-08
+  3   -0.28528D-07   -0.14501D-07    0.14027D-07
+  4    0.27140D-07    0.13789D-07    0.13351D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        121 f-s =        196 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.91936D+00    0.91936D+00    0.18027D-06
+  2    0.94674D+00    0.94674D+00    0.18061D-06
+  3    0.99777D+00    0.99777D+00    0.33278D-08
+  4    0.94183D+00    0.94183D+00    0.18863D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.62893D+00
+    0.00000D+00
+    0.49587D+00
+    0.10000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =        568 f-s =       1229 J-s =         30
+ Computed and reference solutions and absolute errors follow:
+  1    0.10009D+01    0.10009D+01    0.27678D-06
+  2    0.15223D-03    0.15223D-03    0.52202D-09
+  3    0.99887D+00    0.99887D+00    0.27471D-06
+  4    0.32420D-02    0.32420D-02    0.43456D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        148
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        351
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        145 f-s =        234 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.63086D-07
+  2    0.52568D+00    0.52568D+00    0.84577D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         72
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        185
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        292 f-s =        469 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.80869D-07    0.80898D-07    0.29215D-10
+  2    0.23607D+00    0.23607D+00    0.82214D-10
+  3    0.20426D-04    0.20426D-04    0.72636D-11
+  4    0.99860D+00    0.99860D+00    0.29711D-09
+  5    0.99879D+00    0.99879D+00    0.19831D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        195
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        461
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.33898D-04
+    0.62147D-03
+    0.12780D-03
+ Nonnegativity will be enforced for this problem.
+ Steps =        973 f-s =       1726 J-s =         43
+ Computed and reference solutions and absolute errors follow:
+  1    0.37418D-04    0.37443D-04    0.25105D-07
+  2    0.72893D-03    0.72895D-03    0.17648D-07
+  3    0.96422D-04    0.96463D-04    0.40697D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        259
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10015D+01
+    0.10001D+01
+    0.26527D+00
+    0.98220D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        340 f-s =        550 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.50999D+00    0.50999D+00    0.36734D-07
+  2    0.44958D+00    0.44958D+00    0.32966D-07
+  3    0.99988D+00    0.99988D+00    0.73318D-07
+  4    0.99949D+00    0.99949D+00    0.12972D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        148
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        351
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        229 f-s =        308 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.45579D-04    0.45400D-04    0.17939D-06
+  2    0.44586D-08    0.20612D-08    0.23974D-08
+  3    0.15376D-27    0.28230D-55    0.15376D-27
+  4    0.19802D-26    0.52358D-51    0.19802D-26
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =   1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        268 f-s =        421 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D+00    0.99999D+00    0.12239D-06
+  2    0.99999D+00    0.99999D+00    0.12237D-06
+  3    0.99999D+00    0.99999D+00    0.11409D-06
+  4    0.99999D+00    0.99999D+00    0.10126D-06
+  5    0.99999D+00    0.99999D+00    0.85334D-07
+  6    0.10000D+01    0.10000D+01    0.67503D-07
+  7    0.10000D+01    0.10000D+01    0.48893D-07
+  8    0.10000D+01    0.10000D+01    0.30592D-07
+  9    0.10000D+01    0.10000D+01    0.13597D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        551
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        109
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.12788D+00
+    0.10000D+01
+ Steps =        276 f-s =        385 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.39216D-10
+  2    0.13685D-01    0.13685D-01    0.83753D-10
+  3    0.19229D+00    0.19229D+00    0.55713D-08
+  4    0.13534D+00    0.13534D+00    0.51466D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        358 f-s =        535 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.13268D-06
+  2   -0.43440D-08    0.12659D-13    0.43440D-08
+  3    0.40051D-16    0.19115D-41    0.40051D-16
+  4   -0.32925D-22    0.22774D-54    0.32925D-22
+  5   -0.39433D-31    0.00000D+00    0.39433D-31
+  6   -0.12327D-41    0.00000D+00    0.12327D-41
+  7   -0.52242D-53    0.00000D+00    0.52242D-53
+  8    0.37414D-64    0.00000D+00    0.37414D-64
+  9    0.13554D-72    0.00000D+00    0.13554D-72
+ 10    0.23570D-80    0.00000D+00    0.23570D-80
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        660
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        111
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =        975 f-s =       1107 J-s =         21
+ Computed and reference solutions and absolute errors follow:
+  1   -0.17030D-06    0.10042D-08    0.17130D-06
+  2    0.58479D-06    0.20955D-08    0.58269D-06
+  3    0.68665D-44    0.00000D+00    0.68665D-44
+  4    0.37321D-43   -0.18767D-79    0.37321D-43
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        201 f-s =        282 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.10445D-14    0.61813D-30    0.10445D-14
+  2    0.55349D-15    0.89637D-30    0.55349D-15
+  3   -0.31348D-12    0.27384D-26    0.31348D-12
+  4    0.17054D-08    0.20612D-08    0.35571D-09
+  5    0.45523D-04    0.45400D-04    0.12318D-06
+  6    0.13534D+00    0.13534D+00    0.14002D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        284
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        219 f-s =        301 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1   -0.25085D-12   -0.10768D-27    0.25085D-12
+  2    0.25516D-12    0.54550D-27    0.25516D-12
+  3    0.20234D-13    0.27385D-26    0.20234D-13
+  4    0.32642D-08    0.20612D-08    0.12030D-08
+  5    0.45517D-04    0.45400D-04    0.11735D-06
+  6    0.13534D+00    0.13534D+00    0.12669D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        284
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        373 f-s =        461 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1   -0.98378D-11    0.11886D-21    0.98378D-11
+  2    0.31375D-10   -0.23259D-21    0.31375D-10
+  3   -0.73055D-17    0.15179D-34    0.73055D-17
+  4    0.16508D-08    0.20612D-08    0.41040D-09
+  5    0.45488D-04    0.45400D-04    0.88396D-07
+  6    0.13534D+00    0.13534D+00    0.82984D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        284
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.76336D+00
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       2868 f-s =       3382 J-s =         53
+ Computed and reference solutions and absolute errors follow:
+  1    0.97125D-07   -0.23669D-13    0.97125D-07
+  2    0.20089D-05    0.34489D-13    0.20089D-05
+  3    0.18048D-34    0.18049D-34    0.13281D-39
+  4    0.20612D-08    0.20612D-08    0.14763D-16
+  5    0.45400D-04    0.45400D-04    0.93105D-14
+  6    0.13534D+00    0.13534D+00    0.10128D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        284
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.98039D+00
+    0.97087D+00
+    0.10000D+01
+    0.10000D+01
+ Steps =        269 f-s =        352 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.39250D-03    0.39247D-03    0.26281D-07
+  2    0.38850D-03    0.38850D-03    0.23703D-14
+  3    0.40000D-03    0.40000D-03    0.54210D-19
+  4    0.20000D-01    0.20000D-01    0.34694D-17
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        239 f-s =        330 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.42538D-07
+  2    0.40000D-01    0.40000D-01    0.38015D-08
+  3    0.40016D-01    0.40016D-01    0.34925D-08
+  4    0.40032D-01    0.40032D-01    0.34429D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        239 f-s =        332 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.75664D-07
+  2    0.40000D+00    0.40000D+00    0.67634D-07
+  3    0.41600D+00    0.41600D+00    0.67646D-07
+  4    0.43331D+00    0.43331D+00    0.72296D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.50000D+00
+    0.25000D+00
+    0.50000D-01
+    0.23810D-02
+ Steps =        207 f-s =        277 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.98492D-08
+  2    0.10000D+01    0.10000D+01    0.21530D-07
+  3    0.10000D+01    0.10000D+01    0.37481D-07
+  4    0.10000D+01    0.10000D+01    0.66996D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.50000D+00
+    0.12500D+00
+    0.73529D-02
+    0.26954D-04
+ Steps =        196 f-s =        291 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.19495D-08
+  2    0.10000D+01    0.10000D+01    0.43368D-08
+  3    0.10000D+01    0.10000D+01    0.86158D-08
+  4    0.10008D+01    0.10008D+01    0.17272D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        193 f-s =        298 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.99741D+00    0.99741D+00    0.81574D-06
+  2    0.10004D+01    0.10004D+01    0.45063D-08
+  3    0.10000D+01    0.10000D+01    0.24425D-14
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        334 f-s =        458 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.38169D-06
+  2    0.25166D+00    0.25166D+00    0.57129D-06
+  3    0.99706D+00    0.99707D+00    0.13393D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        314 f-s =        440 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.60693D-07
+  2    0.56309D-02    0.56309D-02    0.11817D-09
+  3    0.10007D+01    0.10007D+01    0.16859D-06
+  4    0.65374D+00    0.65374D+00    0.62692D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.70423D+00
+    0.00000D+00
+ Steps =        161 f-s =        242 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.91746D-06
+  2    0.98757D+00    0.98757D+00    0.64610D-06
+  3   -0.51035D+00   -0.51035D+00    0.10017D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        160 f-s =        254 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99963D+00   -0.99964D+00    0.50711D-05
+  2    0.99932D+00    0.99933D+00    0.57779D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         68
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         95
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        296 f-s =        402 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.15127D-08
+  2    0.99730D+00    0.99730D+00    0.10221D-07
+  3    0.10005D+01    0.10005D+01    0.28200D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        236 f-s =        342 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.83381D-09
+  2   -0.21815D-09   -0.72884D-12    0.21742D-09
+  3   -0.67345D-09    0.15348D-11    0.67499D-09
+  4    0.33899D-10   -0.10837D-11    0.34982D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.99010D+00
+    0.00000D+00
+ Steps =        289 f-s =        401 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1   -0.57361D+00   -0.57361D+00    0.88978D-05
+  2    0.56347D-01    0.56344D-01    0.26471D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         68
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         95
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.61350D+00
+    0.62500D+00
+    0.00000D+00
+ Steps =        314 f-s =        463 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1    0.26090D-02    0.26092D-02    0.23697D-06
+  2    0.33228D-02    0.33231D-02    0.30255D-06
+  3    0.99910D+00    0.99911D+00    0.99478D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.00000D+00
+   -0.67797D-01
+   -0.64516D-01
+   -0.61350D-01
+ Steps =        409 f-s =        556 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1    0.69444D+00    0.69444D+00    0.15194D-07
+  2   -0.67797D+00   -0.67797D+00    0.14823D-07
+  3   -0.42736D-07   -0.14501D-07    0.28235D-07
+  4    0.40615D-07    0.13789D-07    0.26826D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        119 f-s =        169 J-s =          4
+ Computed and reference solutions and absolute errors follow:
+  1    0.91936D+00    0.91936D+00    0.17151D-06
+  2    0.94674D+00    0.94674D+00    0.84205D-07
+  3    0.99777D+00    0.99777D+00    0.85966D-07
+  4    0.94183D+00    0.94183D+00    0.91992D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.62893D+00
+    0.00000D+00
+    0.49587D+00
+    0.10000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =        538 f-s =        977 J-s =         25
+ Computed and reference solutions and absolute errors follow:
+  1    0.10009D+01    0.10009D+01    0.89191D-07
+  2    0.15223D-03    0.15223D-03    0.12278D-08
+  3    0.99887D+00    0.99887D+00    0.88531D-07
+  4    0.32420D-02    0.32420D-02    0.10144D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        142 f-s =        207 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.52922D-06
+  2    0.52568D+00    0.52568D+00    0.71041D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         72
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        346 f-s =        491 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.80901D-07    0.80898D-07    0.35659D-11
+  2    0.23607D+00    0.23607D+00    0.30900D-07
+  3    0.20426D-04    0.20426D-04    0.11815D-11
+  4    0.99860D+00    0.99860D+00    0.14214D-07
+  5    0.99879D+00    0.99879D+00    0.14488D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        225
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        106
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.33898D-04
+    0.62147D-03
+    0.12780D-03
+ Nonnegativity will be enforced for this problem.
+ Steps =        937 f-s =       1556 J-s =         27
+ Computed and reference solutions and absolute errors follow:
+  1    0.37274D-04    0.37443D-04    0.16906D-06
+  2    0.72899D-03    0.72895D-03    0.38067D-07
+  3    0.96376D-04    0.96463D-04    0.86300D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        113
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        100
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10015D+01
+    0.10001D+01
+    0.26527D+00
+    0.98220D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        372 f-s =        544 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.50999D+00    0.50999D+00    0.15034D-08
+  2    0.44958D+00    0.44958D+00    0.13491D-08
+  3    0.99988D+00    0.99988D+00    0.30004D-08
+  4    0.99949D+00    0.99949D+00    0.52782D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        302 f-s =        408 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.45410D-04    0.45400D-04    0.10373D-07
+  2    0.21066D-08    0.20612D-08    0.45434D-10
+  3    0.13566D-36    0.28230D-55    0.13566D-36
+  4   -0.21446D-34    0.52358D-51    0.21446D-34
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =   1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        374 f-s =        536 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D+00    0.99999D+00    0.11411D-07
+  2    0.99999D+00    0.99999D+00    0.11410D-07
+  3    0.99999D+00    0.99999D+00    0.10638D-07
+  4    0.99999D+00    0.99999D+00    0.94414D-08
+  5    0.99999D+00    0.99999D+00    0.79571D-08
+  6    0.10000D+01    0.10000D+01    0.62945D-08
+  7    0.10000D+01    0.10000D+01    0.45591D-08
+  8    0.10000D+01    0.10000D+01    0.28526D-08
+  9    0.10000D+01    0.10000D+01    0.12677D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        335
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        109
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.12788D+00
+    0.10000D+01
+ Steps =        385 f-s =        494 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.44852D-09
+  2    0.13685D-01    0.13685D-01    0.45067D-08
+  3    0.19229D+00    0.19229D+00    0.63728D-07
+  4    0.13534D+00    0.13534D+00    0.47698D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        495 f-s =        685 J-s =         13
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.30809D-08
+  2    0.81042D-08    0.12659D-13    0.81042D-08
+  3   -0.47930D-16    0.19115D-41    0.47930D-16
+  4    0.16367D-27    0.22774D-54    0.16367D-27
+  5   -0.76092D-39    0.00000D+00    0.76092D-39
+  6   -0.31273D-52    0.00000D+00    0.31273D-52
+  7   -0.64761D-65    0.00000D+00    0.64761D-65
+  8    0.16712D-81    0.00000D+00    0.16712D-81
+  9    0.37406D-92    0.00000D+00    0.37406D-92
+ 10    0.27832-108    0.00000D+00    0.27832-108
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        390
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        111
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =       1361 f-s =       1529 J-s =         28
+ Computed and reference solutions and absolute errors follow:
+  1    0.87787D-07    0.10042D-08    0.86782D-07
+  2   -0.15830D-06    0.20955D-08    0.16039D-06
+  3   -0.28590D-63    0.00000D+00    0.28590D-63
+  4    0.19259D-62   -0.18767D-79    0.19259D-62
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        281 f-s =        371 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.88001D-22    0.61813D-30    0.88001D-22
+  2   -0.28787D-19    0.89637D-30    0.28787D-19
+  3    0.24212D-17    0.27384D-26    0.24212D-17
+  4    0.21533D-08    0.20612D-08    0.92104D-10
+  5    0.45420D-04    0.45400D-04    0.20557D-07
+  6    0.13534D+00    0.13534D+00    0.24873D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        194
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        305 f-s =        402 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1   -0.34875D-16   -0.10768D-27    0.34875D-16
+  2   -0.20762D-15    0.54550D-27    0.20762D-15
+  3   -0.14217D-16    0.27385D-26    0.14217D-16
+  4    0.21473D-08    0.20612D-08    0.86185D-10
+  5    0.45416D-04    0.45400D-04    0.16174D-07
+  6    0.13534D+00    0.13534D+00    0.20554D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        194
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        585 f-s =        725 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1   -0.12168D-10    0.11886D-21    0.12168D-10
+  2   -0.12671D-11   -0.23259D-21    0.12671D-11
+  3   -0.13147D-25    0.15179D-34    0.13147D-25
+  4    0.21214D-08    0.20612D-08    0.60284D-10
+  5    0.45410D-04    0.45400D-04    0.10211D-07
+  6    0.13534D+00    0.13534D+00    0.25005D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        194
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.76336D+00
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       3239 f-s =       3774 J-s =         59
+ Computed and reference solutions and absolute errors follow:
+  1   -0.11098D-07   -0.23669D-13    0.11098D-07
+  2    0.39550D-06    0.34489D-13    0.39550D-06
+  3    0.18048D-34    0.18049D-34    0.50689D-39
+  4    0.20612D-08    0.20612D-08    0.53771D-16
+  5    0.45400D-04    0.45400D-04    0.36615D-13
+  6    0.13534D+00    0.13534D+00    0.17458D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        194
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.98039D+00
+    0.97087D+00
+    0.10000D+01
+    0.10000D+01
+ Steps =        367 f-s =        464 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1    0.39247D-03    0.39247D-03    0.18517D-08
+  2    0.38850D-03    0.38850D-03    0.23852D-17
+  3    0.40000D-03    0.40000D-03    0.54210D-19
+  4    0.20000D-01    0.20000D-01    0.34694D-17
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        336 f-s =        435 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.58869D-08
+  2    0.40000D-01    0.40000D-01    0.51489D-09
+  3    0.40016D-01    0.40016D-01    0.47755D-09
+  4    0.40032D-01    0.40032D-01    0.47120D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        324 f-s =        413 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.47449D-08
+  2    0.40000D+00    0.40000D+00    0.42025D-08
+  3    0.41600D+00    0.41600D+00    0.42316D-08
+  4    0.43331D+00    0.43331D+00    0.45274D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.50000D+00
+    0.25000D+00
+    0.50000D-01
+    0.23810D-02
+ Steps =        260 f-s =        356 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.42888D-08
+  2    0.10000D+01    0.10000D+01    0.95313D-08
+  3    0.10000D+01    0.10000D+01    0.17401D-07
+  4    0.10000D+01    0.10000D+01    0.34294D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.50000D+00
+    0.12500D+00
+    0.73529D-02
+    0.26954D-04
+ Steps =        252 f-s =        337 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.90918D-09
+  2    0.10000D+01    0.10000D+01    0.20201D-08
+  3    0.10000D+01    0.10000D+01    0.40088D-08
+  4    0.10008D+01    0.10008D+01    0.80857D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        301 f-s =        467 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.99741D+00    0.99741D+00    0.16855D-06
+  2    0.10004D+01    0.10004D+01    0.14654D-06
+  3    0.10000D+01    0.10000D+01    0.23315D-14
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        416 f-s =        593 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.12465D-07
+  2    0.25166D+00    0.25166D+00    0.45985D-08
+  3    0.99707D+00    0.99707D+00    0.43735D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        444 f-s =        577 J-s =         13
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.14312D-08
+  2    0.56309D-02    0.56309D-02    0.27907D-11
+  3    0.10007D+01    0.10007D+01    0.39755D-08
+  4    0.65374D+00    0.65374D+00    0.14783D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.70423D+00
+    0.00000D+00
+ Steps =        245 f-s =        358 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.14623D-06
+  2    0.98757D+00    0.98757D+00    0.10298D-06
+  3   -0.51035D+00   -0.51035D+00    0.15173D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        274 f-s =        474 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99964D+00   -0.99964D+00    0.25312D-06
+  2    0.99933D+00    0.99933D+00    0.25334D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         62
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         95
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        375 f-s =        539 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.13025D-07
+  2    0.99730D+00    0.99730D+00    0.88004D-07
+  3    0.10005D+01    0.10005D+01    0.27903D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        317 f-s =        421 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.91495D-09
+  2   -0.25599D-08   -0.72884D-12    0.25592D-08
+  3    0.23755D-08    0.15348D-11    0.23740D-08
+  4   -0.82493D-09   -0.10837D-11    0.82385D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.99010D+00
+    0.00000D+00
+ Steps =        398 f-s =        515 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1   -0.57361D+00   -0.57361D+00    0.14853D-05
+  2    0.56345D-01    0.56344D-01    0.40928D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         62
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         95
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.61350D+00
+    0.62500D+00
+    0.00000D+00
+ Steps =        385 f-s =        531 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.26093D-02    0.26092D-02    0.40721D-07
+  2    0.33232D-02    0.33231D-02    0.50468D-07
+  3    0.99911D+00    0.99911D+00    0.68687D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.00000D+00
+   -0.67797D-01
+   -0.64516D-01
+   -0.61350D-01
+ Steps =        558 f-s =        727 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.69444D+00    0.69444D+00    0.21329D-08
+  2   -0.67797D+00   -0.67797D+00    0.20836D-08
+  3   -0.10535D-07   -0.14501D-07    0.39659D-08
+  4    0.10022D-07    0.13789D-07    0.37668D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        179 f-s =        254 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.91936D+00    0.91936D+00    0.30387D-08
+  2    0.94674D+00    0.94674D+00    0.95841D-08
+  3    0.99777D+00    0.99777D+00    0.43732D-08
+  4    0.94183D+00    0.94183D+00    0.10221D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.62893D+00
+    0.00000D+00
+    0.49587D+00
+    0.10000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =        720 f-s =       1174 J-s =         26
+ Computed and reference solutions and absolute errors follow:
+  1    0.10009D+01    0.10009D+01    0.98051D-08
+  2    0.15223D-03    0.15223D-03    0.15321D-10
+  3    0.99887D+00    0.99887D+00    0.97327D-08
+  4    0.32420D-02    0.32420D-02    0.12759D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        128
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        204 f-s =        277 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.54121D-07
+  2    0.52568D+00    0.52568D+00    0.72658D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         66
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        414 f-s =        507 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.80902D-07    0.80898D-07    0.39254D-11
+  2    0.23607D+00    0.23607D+00    0.16556D-08
+  3    0.20426D-04    0.20426D-04    0.11062D-11
+  4    0.99860D+00    0.99860D+00    0.56650D-08
+  5    0.99879D+00    0.99879D+00    0.13436D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        165
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        106
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.33898D-04
+    0.62147D-03
+    0.12780D-03
+ Nonnegativity will be enforced for this problem.
+ Steps =       1438 f-s =       2398 J-s =         34
+ Computed and reference solutions and absolute errors follow:
+  1    0.37342D-04    0.37443D-04    0.10143D-06
+  2    0.72901D-03    0.72895D-03    0.60131D-07
+  3    0.96406D-04    0.96463D-04    0.56598D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         95
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        100
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10015D+01
+    0.10001D+01
+    0.26527D+00
+    0.98220D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        500 f-s =        732 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.50999D+00    0.50999D+00    0.25413D-08
+  2    0.44958D+00    0.44958D+00    0.22805D-08
+  3    0.99988D+00    0.99988D+00    0.50719D-08
+  4    0.99949D+00    0.99949D+00    0.89435D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        128
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        302 f-s =        452 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.45410D-04    0.45400D-04    0.10373D-07
+  2    0.21066D-08    0.20612D-08    0.45434D-10
+  3    0.13567D-36    0.28230D-55    0.13567D-36
+  4   -0.21446D-34    0.52358D-51    0.21446D-34
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =   1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        376 f-s =        684 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D+00    0.99999D+00    0.15639D-07
+  2    0.99999D+00    0.99999D+00    0.15638D-07
+  3    0.99999D+00    0.99999D+00    0.14581D-07
+  4    0.99999D+00    0.99999D+00    0.12941D-07
+  5    0.99999D+00    0.99999D+00    0.10906D-07
+  6    0.10000D+01    0.10000D+01    0.86272D-08
+  7    0.10000D+01    0.10000D+01    0.62488D-08
+  8    0.10000D+01    0.10000D+01    0.39098D-08
+  9    0.10000D+01    0.10000D+01    0.17377D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        425
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =       1072
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.12788D+00
+    0.10000D+01
+ Steps =        385 f-s =        570 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.44853D-09
+  2    0.13685D-01    0.13685D-01    0.45068D-08
+  3    0.19229D+00    0.19229D+00    0.63730D-07
+  4    0.13534D+00    0.13534D+00    0.47699D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        495 f-s =        875 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.30809D-08
+  2    0.81042D-08    0.12659D-13    0.81042D-08
+  3   -0.47930D-16    0.19115D-41    0.47930D-16
+  4    0.16367D-27    0.22774D-54    0.16367D-27
+  5   -0.76092D-39    0.00000D+00    0.76092D-39
+  6   -0.31273D-52    0.00000D+00    0.31273D-52
+  7   -0.64762D-65    0.00000D+00    0.64762D-65
+  8    0.16712D-81    0.00000D+00    0.16712D-81
+  9    0.37406D-92    0.00000D+00    0.37406D-92
+ 10    0.27832-108    0.00000D+00    0.27832-108
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        500
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =       1271
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =       1361 f-s =       1729 J-s =         39
+ Computed and reference solutions and absolute errors follow:
+  1    0.87726D-07    0.10042D-08    0.86722D-07
+  2   -0.15830D-06    0.20955D-08    0.16040D-06
+  3   -0.28596D-63    0.00000D+00    0.28596D-63
+  4    0.19235D-62   -0.18767D-79    0.19235D-62
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        281 f-s =        449 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.87999D-22    0.61813D-30    0.87999D-22
+  2   -0.28787D-19    0.89637D-30    0.28787D-19
+  3    0.24212D-17    0.27384D-26    0.24212D-17
+  4    0.21533D-08    0.20612D-08    0.92104D-10
+  5    0.45420D-04    0.45400D-04    0.20557D-07
+  6    0.13534D+00    0.13534D+00    0.24873D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        236
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        583
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        305 f-s =        474 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1   -0.34875D-16   -0.10768D-27    0.34875D-16
+  2   -0.20762D-15    0.54550D-27    0.20762D-15
+  3   -0.14217D-16    0.27385D-26    0.14217D-16
+  4    0.21473D-08    0.20612D-08    0.86185D-10
+  5    0.45416D-04    0.45400D-04    0.16174D-07
+  6    0.13534D+00    0.13534D+00    0.20554D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        236
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        583
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        585 f-s =        851 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1   -0.12168D-10    0.11886D-21    0.12168D-10
+  2   -0.12674D-11   -0.23259D-21    0.12674D-11
+  3   -0.13148D-25    0.15179D-34    0.13148D-25
+  4    0.21214D-08    0.20612D-08    0.60284D-10
+  5    0.45410D-04    0.45400D-04    0.10211D-07
+  6    0.13534D+00    0.13534D+00    0.25005D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        236
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        583
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.76336D+00
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       3239 f-s =       4488 J-s =         89
+ Computed and reference solutions and absolute errors follow:
+  1   -0.19884D-07   -0.23669D-13    0.19884D-07
+  2    0.40233D-06    0.34489D-13    0.40233D-06
+  3    0.18048D-34    0.18049D-34    0.50703D-39
+  4    0.20612D-08    0.20612D-08    0.53785D-16
+  5    0.45400D-04    0.45400D-04    0.36621D-13
+  6    0.13534D+00    0.13534D+00    0.15044D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        236
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        583
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.98039D+00
+    0.97087D+00
+    0.10000D+01
+    0.10000D+01
+ Steps =        367 f-s =        520 J-s =         13
+ Computed and reference solutions and absolute errors follow:
+  1    0.39247D-03    0.39247D-03    0.18530D-08
+  2    0.38850D-03    0.38850D-03    0.22226D-17
+  3    0.40000D-03    0.40000D-03    0.54210D-19
+  4    0.20000D-01    0.20000D-01    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        336 f-s =        495 J-s =         13
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.60414D-08
+  2    0.40000D-01    0.40000D-01    0.53693D-09
+  3    0.40016D-01    0.40016D-01    0.49608D-09
+  4    0.40032D-01    0.40032D-01    0.48925D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        324 f-s =        461 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.32007D-08
+  2    0.40000D+00    0.40000D+00    0.26487D-08
+  3    0.41600D+00    0.41600D+00    0.29466D-08
+  4    0.43331D+00    0.43331D+00    0.31514D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.50000D+00
+    0.25000D+00
+    0.50000D-01
+    0.23810D-02
+ Steps =        259 f-s =        392 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.14432D-08
+  2    0.10000D+01    0.10000D+01    0.32117D-08
+  3    0.10000D+01    0.10000D+01    0.58648D-08
+  4    0.10000D+01    0.10000D+01    0.11560D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.50000D+00
+    0.12500D+00
+    0.73529D-02
+    0.26954D-04
+ Steps =        245 f-s =        370 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.66266D-08
+  2    0.10000D+01    0.10000D+01    0.14731D-07
+  3    0.10000D+01    0.10000D+01    0.29237D-07
+  4    0.10008D+01    0.10008D+01    0.58998D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        397 f-s =        665 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1    0.99741D+00    0.99741D+00    0.39249D-06
+  2    0.10004D+01    0.10004D+01    0.31833D-06
+  3    0.10000D+01    0.10000D+01    0.99920D-15
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        421 f-s =        679 J-s =         17
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.53128D-08
+  2    0.25166D+00    0.25166D+00    0.31233D-08
+  3    0.99707D+00    0.99707D+00    0.18642D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        419 f-s =        657 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.22031D-09
+  2    0.56309D-02    0.56309D-02    0.42959D-12
+  3    0.10007D+01    0.10007D+01    0.61198D-09
+  4    0.65374D+00    0.65374D+00    0.22757D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.70423D+00
+    0.00000D+00
+ Steps =        244 f-s =        383 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.13329D-06
+  2    0.98757D+00    0.98757D+00    0.93863D-07
+  3   -0.51035D+00   -0.51035D+00    0.13883D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        237 f-s =        449 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99964D+00   -0.99964D+00    0.57868D-06
+  2    0.99932D+00    0.99933D+00    0.76780D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         68
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        183
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        356 f-s =        583 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.98810D-08
+  2    0.99730D+00    0.99730D+00    0.66762D-07
+  3    0.10005D+01    0.10005D+01    0.21117D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        348 f-s =        526 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.12645D-07
+  2    0.29610D-08   -0.72884D-12    0.29617D-08
+  3   -0.16713D-07    0.15348D-11    0.16715D-07
+  4   -0.16557D-07   -0.10837D-11    0.16556D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.99010D+00
+    0.00000D+00
+ Steps =        402 f-s =        560 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1   -0.57361D+00   -0.57361D+00    0.13671D-05
+  2    0.56345D-01    0.56344D-01    0.35985D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         68
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        183
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.61350D+00
+    0.62500D+00
+    0.00000D+00
+ Steps =        362 f-s =        573 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.26093D-02    0.26092D-02    0.31425D-07
+  2    0.33232D-02    0.33231D-02    0.39561D-07
+  3    0.99911D+00    0.99911D+00    0.34322D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.00000D+00
+   -0.67797D-01
+   -0.64516D-01
+   -0.61350D-01
+ Steps =        540 f-s =        803 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1    0.69444D+00    0.69444D+00    0.33274D-08
+  2   -0.67797D+00   -0.67797D+00    0.32507D-08
+  3   -0.20688D-07   -0.14501D-07    0.61869D-08
+  4    0.19667D-07    0.13789D-07    0.58780D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        190 f-s =        296 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.91936D+00    0.91936D+00    0.46782D-08
+  2    0.94674D+00    0.94674D+00    0.39818D-08
+  3    0.99777D+00    0.99777D+00    0.95418D-08
+  4    0.94183D+00    0.94183D+00    0.40361D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.62893D+00
+    0.00000D+00
+    0.49587D+00
+    0.10000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =        686 f-s =       1220 J-s =         30
+ Computed and reference solutions and absolute errors follow:
+  1    0.10009D+01    0.10009D+01    0.38840D-07
+  2    0.15223D-03    0.15223D-03    0.72682D-10
+  3    0.99887D+00    0.99887D+00    0.38564D-07
+  4    0.32420D-02    0.32420D-02    0.60505D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        148
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        351
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        209 f-s =        304 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.10997D-07
+  2    0.52568D+00    0.52568D+00    0.14767D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         72
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        185
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        401 f-s =        615 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1    0.80902D-07    0.80898D-07    0.39671D-11
+  2    0.23607D+00    0.23607D+00    0.71639D-08
+  3    0.20426D-04    0.20426D-04    0.15019D-11
+  4    0.99860D+00    0.99860D+00    0.24491D-07
+  5    0.99879D+00    0.99879D+00    0.58212D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        195
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        461
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.33898D-04
+    0.62147D-03
+    0.12780D-03
+ Nonnegativity will be enforced for this problem.
+ Steps =       1171 f-s =       2120 J-s =         51
+ Computed and reference solutions and absolute errors follow:
+  1    0.37441D-04    0.37443D-04    0.25190D-08
+  2    0.72892D-03    0.72895D-03    0.29301D-07
+  3    0.96490D-04    0.96463D-04    0.27073D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        259
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10015D+01
+    0.10001D+01
+    0.26527D+00
+    0.98220D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        409 f-s =        639 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1    0.50999D+00    0.50999D+00    0.25374D-09
+  2    0.44958D+00    0.44958D+00    0.22770D-09
+  3    0.99988D+00    0.99988D+00    0.50640D-09
+  4    0.99949D+00    0.99949D+00    0.89264D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        148
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        351
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        302 f-s =        408 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.45410D-04    0.45400D-04    0.10373D-07
+  2    0.21066D-08    0.20612D-08    0.45434D-10
+  3    0.13566D-36    0.28230D-55    0.13566D-36
+  4   -0.21446D-34    0.52358D-51    0.21446D-34
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =   1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        374 f-s =        536 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D+00    0.99999D+00    0.11411D-07
+  2    0.99999D+00    0.99999D+00    0.11410D-07
+  3    0.99999D+00    0.99999D+00    0.10638D-07
+  4    0.99999D+00    0.99999D+00    0.94414D-08
+  5    0.99999D+00    0.99999D+00    0.79571D-08
+  6    0.10000D+01    0.10000D+01    0.62945D-08
+  7    0.10000D+01    0.10000D+01    0.45591D-08
+  8    0.10000D+01    0.10000D+01    0.28526D-08
+  9    0.10000D+01    0.10000D+01    0.12677D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        551
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        109
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.12788D+00
+    0.10000D+01
+ Steps =        385 f-s =        494 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.44852D-09
+  2    0.13685D-01    0.13685D-01    0.45067D-08
+  3    0.19229D+00    0.19229D+00    0.63728D-07
+  4    0.13534D+00    0.13534D+00    0.47698D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        495 f-s =        685 J-s =         13
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.30809D-08
+  2    0.81042D-08    0.12659D-13    0.81042D-08
+  3   -0.47930D-16    0.19115D-41    0.47930D-16
+  4    0.16367D-27    0.22774D-54    0.16367D-27
+  5   -0.76092D-39    0.00000D+00    0.76092D-39
+  6   -0.31273D-52    0.00000D+00    0.31273D-52
+  7   -0.64761D-65    0.00000D+00    0.64761D-65
+  8    0.16712D-81    0.00000D+00    0.16712D-81
+  9    0.37406D-92    0.00000D+00    0.37406D-92
+ 10    0.27832-108    0.00000D+00    0.27832-108
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        660
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        111
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =       1361 f-s =       1529 J-s =         28
+ Computed and reference solutions and absolute errors follow:
+  1    0.87787D-07    0.10042D-08    0.86782D-07
+  2   -0.15830D-06    0.20955D-08    0.16039D-06
+  3   -0.28590D-63    0.00000D+00    0.28590D-63
+  4    0.19259D-62   -0.18767D-79    0.19259D-62
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        281 f-s =        371 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.88001D-22    0.61813D-30    0.88001D-22
+  2   -0.28787D-19    0.89637D-30    0.28787D-19
+  3    0.24212D-17    0.27384D-26    0.24212D-17
+  4    0.21533D-08    0.20612D-08    0.92104D-10
+  5    0.45420D-04    0.45400D-04    0.20557D-07
+  6    0.13534D+00    0.13534D+00    0.24873D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        284
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        305 f-s =        402 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1   -0.34875D-16   -0.10768D-27    0.34875D-16
+  2   -0.20762D-15    0.54550D-27    0.20762D-15
+  3   -0.14217D-16    0.27385D-26    0.14217D-16
+  4    0.21473D-08    0.20612D-08    0.86185D-10
+  5    0.45416D-04    0.45400D-04    0.16174D-07
+  6    0.13534D+00    0.13534D+00    0.20554D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        284
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        585 f-s =        725 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1   -0.12168D-10    0.11886D-21    0.12168D-10
+  2   -0.12671D-11   -0.23259D-21    0.12671D-11
+  3   -0.13147D-25    0.15179D-34    0.13147D-25
+  4    0.21214D-08    0.20612D-08    0.60284D-10
+  5    0.45410D-04    0.45400D-04    0.10211D-07
+  6    0.13534D+00    0.13534D+00    0.25005D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        284
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.76336D+00
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       3239 f-s =       3774 J-s =         59
+ Computed and reference solutions and absolute errors follow:
+  1   -0.11098D-07   -0.23669D-13    0.11098D-07
+  2    0.39550D-06    0.34489D-13    0.39550D-06
+  3    0.18048D-34    0.18049D-34    0.50689D-39
+  4    0.20612D-08    0.20612D-08    0.53771D-16
+  5    0.45400D-04    0.45400D-04    0.36615D-13
+  6    0.13534D+00    0.13534D+00    0.17458D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        284
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.98039D+00
+    0.97087D+00
+    0.10000D+01
+    0.10000D+01
+ Steps =        367 f-s =        464 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1    0.39247D-03    0.39247D-03    0.18517D-08
+  2    0.38850D-03    0.38850D-03    0.23852D-17
+  3    0.40000D-03    0.40000D-03    0.54210D-19
+  4    0.20000D-01    0.20000D-01    0.34694D-17
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        336 f-s =        435 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.58869D-08
+  2    0.40000D-01    0.40000D-01    0.51489D-09
+  3    0.40016D-01    0.40016D-01    0.47755D-09
+  4    0.40032D-01    0.40032D-01    0.47120D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        324 f-s =        413 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.47449D-08
+  2    0.40000D+00    0.40000D+00    0.42025D-08
+  3    0.41600D+00    0.41600D+00    0.42316D-08
+  4    0.43331D+00    0.43331D+00    0.45274D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.50000D+00
+    0.25000D+00
+    0.50000D-01
+    0.23810D-02
+ Steps =        260 f-s =        356 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.42888D-08
+  2    0.10000D+01    0.10000D+01    0.95313D-08
+  3    0.10000D+01    0.10000D+01    0.17401D-07
+  4    0.10000D+01    0.10000D+01    0.34294D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.50000D+00
+    0.12500D+00
+    0.73529D-02
+    0.26954D-04
+ Steps =        252 f-s =        337 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.90918D-09
+  2    0.10000D+01    0.10000D+01    0.20201D-08
+  3    0.10000D+01    0.10000D+01    0.40088D-08
+  4    0.10008D+01    0.10008D+01    0.80857D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        301 f-s =        467 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.99741D+00    0.99741D+00    0.16855D-06
+  2    0.10004D+01    0.10004D+01    0.14654D-06
+  3    0.10000D+01    0.10000D+01    0.23315D-14
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        416 f-s =        593 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.12465D-07
+  2    0.25166D+00    0.25166D+00    0.45985D-08
+  3    0.99707D+00    0.99707D+00    0.43735D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        444 f-s =        577 J-s =         13
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.14312D-08
+  2    0.56309D-02    0.56309D-02    0.27907D-11
+  3    0.10007D+01    0.10007D+01    0.39755D-08
+  4    0.65374D+00    0.65374D+00    0.14783D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.70423D+00
+    0.00000D+00
+ Steps =        245 f-s =        358 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.14623D-06
+  2    0.98757D+00    0.98757D+00    0.10298D-06
+  3   -0.51035D+00   -0.51035D+00    0.15173D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        274 f-s =        474 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99964D+00   -0.99964D+00    0.25312D-06
+  2    0.99933D+00    0.99933D+00    0.25334D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         68
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         95
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        375 f-s =        539 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.13025D-07
+  2    0.99730D+00    0.99730D+00    0.88004D-07
+  3    0.10005D+01    0.10005D+01    0.27903D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        317 f-s =        421 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.91495D-09
+  2   -0.25599D-08   -0.72884D-12    0.25592D-08
+  3    0.23755D-08    0.15348D-11    0.23740D-08
+  4   -0.82493D-09   -0.10837D-11    0.82385D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.99010D+00
+    0.00000D+00
+ Steps =        398 f-s =        515 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1   -0.57361D+00   -0.57361D+00    0.14853D-05
+  2    0.56345D-01    0.56344D-01    0.40928D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         68
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         95
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.61350D+00
+    0.62500D+00
+    0.00000D+00
+ Steps =        385 f-s =        531 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.26093D-02    0.26092D-02    0.40721D-07
+  2    0.33232D-02    0.33231D-02    0.50468D-07
+  3    0.99911D+00    0.99911D+00    0.68687D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.00000D+00
+   -0.67797D-01
+   -0.64516D-01
+   -0.61350D-01
+ Steps =        558 f-s =        727 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.69444D+00    0.69444D+00    0.21329D-08
+  2   -0.67797D+00   -0.67797D+00    0.20836D-08
+  3   -0.10535D-07   -0.14501D-07    0.39659D-08
+  4    0.10022D-07    0.13789D-07    0.37668D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        179 f-s =        254 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.91936D+00    0.91936D+00    0.30387D-08
+  2    0.94674D+00    0.94674D+00    0.95841D-08
+  3    0.99777D+00    0.99777D+00    0.43732D-08
+  4    0.94183D+00    0.94183D+00    0.10221D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.62893D+00
+    0.00000D+00
+    0.49587D+00
+    0.10000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =        720 f-s =       1174 J-s =         26
+ Computed and reference solutions and absolute errors follow:
+  1    0.10009D+01    0.10009D+01    0.98051D-08
+  2    0.15223D-03    0.15223D-03    0.15321D-10
+  3    0.99887D+00    0.99887D+00    0.97327D-08
+  4    0.32420D-02    0.32420D-02    0.12759D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        204 f-s =        277 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.54121D-07
+  2    0.52568D+00    0.52568D+00    0.72658D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         72
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        414 f-s =        507 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.80902D-07    0.80898D-07    0.39254D-11
+  2    0.23607D+00    0.23607D+00    0.16556D-08
+  3    0.20426D-04    0.20426D-04    0.11062D-11
+  4    0.99860D+00    0.99860D+00    0.56650D-08
+  5    0.99879D+00    0.99879D+00    0.13436D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        225
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        106
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.33898D-04
+    0.62147D-03
+    0.12780D-03
+ Nonnegativity will be enforced for this problem.
+ Steps =       1438 f-s =       2398 J-s =         34
+ Computed and reference solutions and absolute errors follow:
+  1    0.37342D-04    0.37443D-04    0.10143D-06
+  2    0.72901D-03    0.72895D-03    0.60131D-07
+  3    0.96406D-04    0.96463D-04    0.56598D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        113
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        100
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10015D+01
+    0.10001D+01
+    0.26527D+00
+    0.98220D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        500 f-s =        732 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.50999D+00    0.50999D+00    0.25413D-08
+  2    0.44958D+00    0.44958D+00    0.22805D-08
+  3    0.99988D+00    0.99988D+00    0.50719D-08
+  4    0.99949D+00    0.99949D+00    0.89435D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        428 f-s =        542 J-s =         13
+ Computed and reference solutions and absolute errors follow:
+  1    0.45402D-04    0.45400D-04    0.20958D-08
+  2    0.20698D-08    0.20612D-08    0.86833D-11
+  3   -0.53753D-44    0.28230D-55    0.53753D-44
+  4   -0.26328D-41    0.52358D-51    0.26328D-41
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =   1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        522 f-s =        718 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D+00    0.99999D+00    0.24991D-08
+  2    0.99999D+00    0.99999D+00    0.24990D-08
+  3    0.99999D+00    0.99999D+00    0.23298D-08
+  4    0.99999D+00    0.99999D+00    0.20678D-08
+  5    0.99999D+00    0.99999D+00    0.17427D-08
+  6    0.10000D+01    0.10000D+01    0.13785D-08
+  7    0.10000D+01    0.10000D+01    0.99846D-09
+  8    0.10000D+01    0.10000D+01    0.62471D-09
+  9    0.10000D+01    0.10000D+01    0.27766D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        335
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        109
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.12788D+00
+    0.10000D+01
+ Steps =        537 f-s =        657 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.61667D-10
+  2    0.13685D-01    0.13685D-01    0.61999D-09
+  3    0.19229D+00    0.19229D+00    0.87621D-08
+  4    0.13534D+00    0.13534D+00    0.65233D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        703 f-s =        953 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.36942D-09
+  2   -0.19627D-10    0.12659D-13    0.19640D-10
+  3    0.50490D-23    0.19115D-41    0.50490D-23
+  4   -0.40027D-36    0.22774D-54    0.40027D-36
+  5   -0.12542D-51    0.00000D+00    0.12542D-51
+  6    0.19246D-70    0.00000D+00    0.19246D-70
+  7    0.18000D-88    0.00000D+00    0.18000D-88
+  8   -0.16260-107    0.00000D+00    0.16260-107
+  9    0.75665-126    0.00000D+00    0.75665-126
+ 10    0.28911-143    0.00000D+00    0.28911-143
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        390
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        111
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =       2034 f-s =       2248 J-s =         39
+ Computed and reference solutions and absolute errors follow:
+  1    0.33792D-08    0.10042D-08    0.23750D-08
+  2   -0.14988D-08    0.20955D-08    0.35943D-08
+  3    0.15326-119    0.00000D+00    0.15326-119
+  4   -0.31934-119   -0.18767D-79    0.18767D-79
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        390 f-s =        495 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1   -0.67751D-25    0.61813D-30    0.67751D-25
+  2    0.67162D-25    0.89637D-30    0.67161D-25
+  3   -0.11972D-21    0.27384D-26    0.11972D-21
+  4    0.20700D-08    0.20612D-08    0.88533D-11
+  5    0.45402D-04    0.45400D-04    0.22293D-08
+  6    0.13534D+00    0.13534D+00    0.32690D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        194
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        426 f-s =        529 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1   -0.44272D-19   -0.10768D-27    0.44272D-19
+  2   -0.17172D-19    0.54550D-27    0.17172D-19
+  3   -0.20650D-22    0.27385D-26    0.20652D-22
+  4    0.20679D-08    0.20612D-08    0.67196D-11
+  5    0.45402D-04    0.45400D-04    0.16949D-08
+  6    0.13534D+00    0.13534D+00    0.25365D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        194
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        798 f-s =        960 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1   -0.17622D-10    0.11886D-21    0.17622D-10
+  2   -0.21725D-10   -0.23259D-21    0.21725D-10
+  3   -0.34190D-29    0.15179D-34    0.34190D-29
+  4    0.20931D-08    0.20612D-08    0.31954D-10
+  5    0.45404D-04    0.45400D-04    0.42677D-08
+  6    0.13534D+00    0.13534D+00    0.64904D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        194
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.76336D+00
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       3790 f-s =       4373 J-s =         69
+ Computed and reference solutions and absolute errors follow:
+  1   -0.28880D-07   -0.23669D-13    0.28880D-07
+  2   -0.59793D-08    0.34489D-13    0.59793D-08
+  3    0.18048D-34    0.18049D-34    0.40443D-39
+  4    0.20612D-08    0.20612D-08    0.43256D-16
+  5    0.45400D-04    0.45400D-04    0.29553D-13
+  6    0.13534D+00    0.13534D+00    0.28894D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        194
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.98039D+00
+    0.97087D+00
+    0.10000D+01
+    0.10000D+01
+ Steps =        525 f-s =        643 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1    0.39248D-03    0.39247D-03    0.21201D-08
+  2    0.38850D-03    0.38850D-03    0.10842D-18
+  3    0.40000D-03    0.40000D-03    0.10842D-18
+  4    0.20000D-01    0.20000D-01    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        460 f-s =        573 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.63349D-09
+  2    0.40000D-01    0.40000D-01    0.56293D-10
+  3    0.40016D-01    0.40016D-01    0.52025D-10
+  4    0.40032D-01    0.40032D-01    0.51278D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        468 f-s =        570 J-s =         13
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.48844D-09
+  2    0.40000D+00    0.40000D+00    0.43414D-09
+  3    0.41600D+00    0.41600D+00    0.43638D-09
+  4    0.43331D+00    0.43331D+00    0.46644D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.50000D+00
+    0.25000D+00
+    0.50000D-01
+    0.23810D-02
+ Steps =        363 f-s =        461 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.15667D-09
+  2    0.10000D+01    0.10000D+01    0.34817D-09
+  3    0.10000D+01    0.10000D+01    0.63562D-09
+  4    0.10000D+01    0.10000D+01    0.12527D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.50000D+00
+    0.12500D+00
+    0.73529D-02
+    0.26954D-04
+ Steps =        345 f-s =        443 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.54570D-09
+  2    0.10000D+01    0.10000D+01    0.12127D-08
+  3    0.10000D+01    0.10000D+01    0.24070D-08
+  4    0.10008D+01    0.10008D+01    0.48572D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        489 f-s =        733 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.99741D+00    0.99741D+00    0.44446D-08
+  2    0.10004D+01    0.10004D+01    0.28133D-08
+  3    0.10000D+01    0.10000D+01    0.56621D-14
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        525 f-s =        721 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.51527D-08
+  2    0.25166D+00    0.25166D+00    0.54237D-08
+  3    0.99707D+00    0.99707D+00    0.18080D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        593 f-s =        740 J-s =         17
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.35274D-09
+  2    0.56309D-02    0.56309D-02    0.68782D-12
+  3    0.10007D+01    0.10007D+01    0.97984D-09
+  4    0.65374D+00    0.65374D+00    0.36436D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.70423D+00
+    0.00000D+00
+ Steps =        323 f-s =        438 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.10166D-07
+  2    0.98757D+00    0.98757D+00    0.71590D-08
+  3   -0.51035D+00   -0.51035D+00    0.93455D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        365 f-s =        570 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99964D+00   -0.99964D+00    0.81592D-07
+  2    0.99933D+00    0.99933D+00    0.80051D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         62
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         95
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        469 f-s =        645 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.38096D-09
+  2    0.99730D+00    0.99730D+00    0.25741D-08
+  3    0.10005D+01    0.10005D+01    0.81154D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        451 f-s =        572 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.82068D-12
+  2   -0.31989D-11   -0.72884D-12    0.24701D-11
+  3    0.40250D-11    0.15348D-11    0.24902D-11
+  4   -0.21326D-11   -0.10837D-11    0.10489D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.99010D+00
+    0.00000D+00
+ Steps =        587 f-s =        714 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1   -0.57361D+00   -0.57361D+00    0.40208D-06
+  2    0.56344D-01    0.56344D-01    0.97776D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         62
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         95
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.61350D+00
+    0.62500D+00
+    0.00000D+00
+ Steps =        522 f-s =        777 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1    0.26092D-02    0.26092D-02    0.27744D-08
+  2    0.33231D-02    0.33231D-02    0.35073D-08
+  3    0.99911D+00    0.99911D+00    0.21622D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.00000D+00
+   -0.67797D-01
+   -0.64516D-01
+   -0.61350D-01
+ Steps =        766 f-s =        950 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1    0.69444D+00    0.69444D+00    0.26170D-10
+  2   -0.67797D+00   -0.67797D+00    0.25442D-10
+  3   -0.14549D-07   -0.14501D-07    0.48625D-10
+  4    0.13835D-07    0.13789D-07    0.46011D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        262 f-s =        345 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.91936D+00    0.91936D+00    0.43720D-07
+  2    0.94674D+00    0.94674D+00    0.49233D-07
+  3    0.99777D+00    0.99777D+00    0.72614D-08
+  4    0.94183D+00    0.94183D+00    0.51652D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.62893D+00
+    0.00000D+00
+    0.49587D+00
+    0.10000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       1010 f-s =       1644 J-s =         31
+ Computed and reference solutions and absolute errors follow:
+  1    0.10009D+01    0.10009D+01    0.35698D-09
+  2    0.15223D-03    0.15223D-03    0.57871D-12
+  3    0.99887D+00    0.99887D+00    0.35436D-09
+  4    0.32420D-02    0.32420D-02    0.31327D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        128
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        284 f-s =        368 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.21002D-08
+  2    0.52568D+00    0.52568D+00    0.28195D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         66
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        598 f-s =        723 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.80903D-07    0.80898D-07    0.48709D-11
+  2    0.23607D+00    0.23607D+00    0.84340D-08
+  3    0.20426D-04    0.20426D-04    0.63907D-12
+  4    0.99860D+00    0.99860D+00    0.28828D-07
+  5    0.99879D+00    0.99879D+00    0.68499D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        165
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        106
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.33898D-04
+    0.62147D-03
+    0.12780D-03
+ Nonnegativity will be enforced for this problem.
+ Steps =       1685 f-s =       2766 J-s =         38
+ Computed and reference solutions and absolute errors follow:
+  1    0.37442D-04    0.37443D-04    0.12654D-08
+  2    0.72895D-03    0.72895D-03    0.11617D-08
+  3    0.96463D-04    0.96463D-04    0.93119D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         95
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        100
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10015D+01
+    0.10001D+01
+    0.26527D+00
+    0.98220D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        666 f-s =        993 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1    0.50999D+00    0.50999D+00    0.27384D-08
+  2    0.44958D+00    0.44958D+00    0.24574D-08
+  3    0.99988D+00    0.99988D+00    0.54653D-08
+  4    0.99949D+00    0.99949D+00    0.96345D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        128
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        428 f-s =        618 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1    0.45402D-04    0.45400D-04    0.20958D-08
+  2    0.20698D-08    0.20612D-08    0.86833D-11
+  3   -0.53753D-44    0.28230D-55    0.53753D-44
+  4   -0.26328D-41    0.52358D-51    0.26328D-41
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =   1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        522 f-s =        880 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D+00    0.99999D+00    0.26028D-08
+  2    0.99999D+00    0.99999D+00    0.26026D-08
+  3    0.99999D+00    0.99999D+00    0.24263D-08
+  4    0.99999D+00    0.99999D+00    0.21535D-08
+  5    0.99999D+00    0.99999D+00    0.18150D-08
+  6    0.10000D+01    0.10000D+01    0.14357D-08
+  7    0.10000D+01    0.10000D+01    0.10398D-08
+  8    0.10000D+01    0.10000D+01    0.65053D-09
+  9    0.10000D+01    0.10000D+01    0.28913D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        425
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =       1072
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.12788D+00
+    0.10000D+01
+ Steps =        537 f-s =        753 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.61669D-10
+  2    0.13685D-01    0.13685D-01    0.61999D-09
+  3    0.19229D+00    0.19229D+00    0.87620D-08
+  4    0.13534D+00    0.13534D+00    0.65233D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        703 f-s =       1293 J-s =         26
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.36942D-09
+  2   -0.19624D-10    0.12659D-13    0.19636D-10
+  3    0.50488D-23    0.19115D-41    0.50488D-23
+  4   -0.40026D-36    0.22774D-54    0.40026D-36
+  5   -0.12542D-51    0.00000D+00    0.12542D-51
+  6    0.19244D-70    0.00000D+00    0.19244D-70
+  7    0.17999D-88    0.00000D+00    0.17999D-88
+  8   -0.16259-107    0.00000D+00    0.16259-107
+  9    0.75659-126    0.00000D+00    0.75659-126
+ 10    0.28910-143    0.00000D+00    0.28910-143
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        500
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =       1271
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =       2034 f-s =       2532 J-s =         55
+ Computed and reference solutions and absolute errors follow:
+  1    0.33800D-08    0.10042D-08    0.23758D-08
+  2   -0.15016D-08    0.20955D-08    0.35970D-08
+  3    0.15383-119    0.00000D+00    0.15383-119
+  4   -0.31991-119   -0.18767D-79    0.18767D-79
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        390 f-s =        609 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1   -0.67751D-25    0.61813D-30    0.67752D-25
+  2    0.67163D-25    0.89637D-30    0.67162D-25
+  3   -0.11972D-21    0.27384D-26    0.11972D-21
+  4    0.20700D-08    0.20612D-08    0.88533D-11
+  5    0.45402D-04    0.45400D-04    0.22293D-08
+  6    0.13534D+00    0.13534D+00    0.32690D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        236
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        583
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        426 f-s =        619 J-s =         13
+ Computed and reference solutions and absolute errors follow:
+  1   -0.44272D-19   -0.10768D-27    0.44272D-19
+  2   -0.17172D-19    0.54550D-27    0.17172D-19
+  3   -0.20650D-22    0.27385D-26    0.20652D-22
+  4    0.20679D-08    0.20612D-08    0.67196D-11
+  5    0.45402D-04    0.45400D-04    0.16949D-08
+  6    0.13534D+00    0.13534D+00    0.25365D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        236
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        583
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        798 f-s =       1140 J-s =         24
+ Computed and reference solutions and absolute errors follow:
+  1   -0.17622D-10    0.11886D-21    0.17622D-10
+  2   -0.21726D-10   -0.23259D-21    0.21726D-10
+  3   -0.34190D-29    0.15179D-34    0.34191D-29
+  4    0.20931D-08    0.20612D-08    0.31954D-10
+  5    0.45404D-04    0.45400D-04    0.42677D-08
+  6    0.13534D+00    0.13534D+00    0.64903D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        236
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        583
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.76336D+00
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       3790 f-s =       5183 J-s =        102
+ Computed and reference solutions and absolute errors follow:
+  1   -0.28889D-07   -0.23669D-13    0.28889D-07
+  2   -0.60034D-08    0.34489D-13    0.60034D-08
+  3    0.18048D-34    0.18049D-34    0.40443D-39
+  4    0.20612D-08    0.20612D-08    0.43256D-16
+  5    0.45400D-04    0.45400D-04    0.29551D-13
+  6    0.13534D+00    0.13534D+00    0.27228D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        236
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        583
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.98039D+00
+    0.97087D+00
+    0.10000D+01
+    0.10000D+01
+ Steps =        525 f-s =        724 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1    0.39248D-03    0.39247D-03    0.21699D-08
+  2    0.38850D-03    0.38850D-03    0.54210D-19
+  3    0.40000D-03    0.40000D-03    0.10842D-18
+  4    0.20000D-01    0.20000D-01    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        460 f-s =        637 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.63784D-09
+  2    0.40000D-01    0.40000D-01    0.56587D-10
+  3    0.40016D-01    0.40016D-01    0.52296D-10
+  4    0.40032D-01    0.40032D-01    0.51529D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        468 f-s =        639 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.47464D-09
+  2    0.40000D+00    0.40000D+00    0.42158D-09
+  3    0.41600D+00    0.41600D+00    0.42380D-09
+  4    0.43331D+00    0.43331D+00    0.45299D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.50000D+00
+    0.25000D+00
+    0.50000D-01
+    0.23810D-02
+ Steps =        363 f-s =        527 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.73168D-09
+  2    0.10000D+01    0.10000D+01    0.16260D-08
+  3    0.10000D+01    0.10000D+01    0.29684D-08
+  4    0.10000D+01    0.10000D+01    0.58505D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.50000D+00
+    0.12500D+00
+    0.73529D-02
+    0.26954D-04
+ Steps =        347 f-s =        491 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.53738D-09
+  2    0.10000D+01    0.10000D+01    0.11942D-08
+  3    0.10000D+01    0.10000D+01    0.23704D-08
+  4    0.10008D+01    0.10008D+01    0.47832D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        510 f-s =        858 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1    0.99741D+00    0.99741D+00    0.18151D-07
+  2    0.10004D+01    0.10004D+01    0.15155D-07
+  3    0.10000D+01    0.10000D+01    0.34417D-14
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        513 f-s =        764 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.22283D-08
+  2    0.25166D+00    0.25166D+00    0.25937D-08
+  3    0.99707D+00    0.99707D+00    0.78188D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        610 f-s =        864 J-s =         21
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.12122D-09
+  2    0.56309D-02    0.56309D-02    0.23632D-12
+  3    0.10007D+01    0.10007D+01    0.33671D-09
+  4    0.65374D+00    0.65374D+00    0.12521D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.70423D+00
+    0.00000D+00
+ Steps =        329 f-s =        521 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.70692D-08
+  2    0.98757D+00    0.98757D+00    0.49783D-08
+  3   -0.51035D+00   -0.51035D+00    0.73218D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        353 f-s =        600 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99964D+00   -0.99964D+00    0.52362D-07
+  2    0.99933D+00    0.99933D+00    0.58559D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         68
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        183
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        469 f-s =        718 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.34373D-09
+  2    0.99730D+00    0.99730D+00    0.23229D-08
+  3    0.10005D+01    0.10005D+01    0.73208D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        451 f-s =        640 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.11557D-11
+  2   -0.32461D-11   -0.72884D-12    0.25173D-11
+  3    0.35112D-11    0.15348D-11    0.19763D-11
+  4   -0.18365D-11   -0.10837D-11    0.75274D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.99010D+00
+    0.00000D+00
+ Steps =        578 f-s =        759 J-s =         21
+ Computed and reference solutions and absolute errors follow:
+  1   -0.57361D+00   -0.57361D+00    0.24234D-06
+  2    0.56344D-01    0.56344D-01    0.68783D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         68
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        183
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.61350D+00
+    0.62500D+00
+    0.00000D+00
+ Steps =        508 f-s =        818 J-s =         20
+ Computed and reference solutions and absolute errors follow:
+  1    0.26092D-02    0.26092D-02    0.21931D-08
+  2    0.33231D-02    0.33231D-02    0.27700D-08
+  3    0.99911D+00    0.99911D+00    0.12044D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.00000D+00
+   -0.67797D-01
+   -0.64516D-01
+   -0.61350D-01
+ Steps =       1244 f-s =       3392 J-s =        198
+ Computed and reference solutions and absolute errors follow:
+  1    0.69444D+00    0.69444D+00    0.33806D-09
+  2   -0.67797D+00   -0.67797D+00    0.43396D-09
+  3    0.67135D-06   -0.14501D-07    0.68585D-06
+  4    0.66459D-06    0.13789D-07    0.65080D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        239 f-s =        356 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.91936D+00    0.91936D+00    0.43756D-07
+  2    0.94674D+00    0.94674D+00    0.46889D-07
+  3    0.99777D+00    0.99777D+00    0.44793D-08
+  4    0.94183D+00    0.94183D+00    0.49339D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.62893D+00
+    0.00000D+00
+    0.49587D+00
+    0.10000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =        960 f-s =       1748 J-s =         41
+ Computed and reference solutions and absolute errors follow:
+  1    0.10009D+01    0.10009D+01    0.30183D-08
+  2    0.15223D-03    0.15223D-03    0.70044D-10
+  3    0.99887D+00    0.99887D+00    0.29960D-08
+  4    0.32420D-02    0.32420D-02    0.58990D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        148
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        351
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        288 f-s =        408 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.30650D-08
+  2    0.52568D+00    0.52568D+00    0.41146D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         72
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        185
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        589 f-s =        882 J-s =         22
+ Computed and reference solutions and absolute errors follow:
+  1    0.80902D-07    0.80898D-07    0.38755D-11
+  2    0.23607D+00    0.23607D+00    0.36959D-09
+  3    0.20426D-04    0.20426D-04    0.99811D-12
+  4    0.99860D+00    0.99860D+00    0.99486D-09
+  5    0.99879D+00    0.99879D+00    0.57345D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        195
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        461
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.33898D-04
+    0.62147D-03
+    0.12780D-03
+ Nonnegativity will be enforced for this problem.
+ Steps =       1609 f-s =       2925 J-s =         68
+ Computed and reference solutions and absolute errors follow:
+  1    0.37444D-04    0.37443D-04    0.92864D-09
+  2    0.72895D-03    0.72895D-03    0.11713D-08
+  3    0.96468D-04    0.96463D-04    0.48541D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        259
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10015D+01
+    0.10001D+01
+    0.26527D+00
+    0.98220D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        714 f-s =       1254 J-s =         29
+ Computed and reference solutions and absolute errors follow:
+  1    0.50999D+00    0.50999D+00    0.10103D-08
+  2    0.44958D+00    0.44958D+00    0.90666D-09
+  3    0.99988D+00    0.99988D+00    0.20164D-08
+  4    0.99949D+00    0.99949D+00    0.35549D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        148
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        351
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        428 f-s =        542 J-s =         13
+ Computed and reference solutions and absolute errors follow:
+  1    0.45402D-04    0.45400D-04    0.20958D-08
+  2    0.20698D-08    0.20612D-08    0.86833D-11
+  3   -0.53753D-44    0.28230D-55    0.53753D-44
+  4   -0.26328D-41    0.52358D-51    0.26328D-41
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =   1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        522 f-s =        718 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D+00    0.99999D+00    0.24991D-08
+  2    0.99999D+00    0.99999D+00    0.24990D-08
+  3    0.99999D+00    0.99999D+00    0.23298D-08
+  4    0.99999D+00    0.99999D+00    0.20678D-08
+  5    0.99999D+00    0.99999D+00    0.17427D-08
+  6    0.10000D+01    0.10000D+01    0.13785D-08
+  7    0.10000D+01    0.10000D+01    0.99846D-09
+  8    0.10000D+01    0.10000D+01    0.62471D-09
+  9    0.10000D+01    0.10000D+01    0.27766D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        551
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        109
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.12788D+00
+    0.10000D+01
+ Steps =        537 f-s =        657 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.61667D-10
+  2    0.13685D-01    0.13685D-01    0.61999D-09
+  3    0.19229D+00    0.19229D+00    0.87621D-08
+  4    0.13534D+00    0.13534D+00    0.65233D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        703 f-s =        953 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.36942D-09
+  2   -0.19627D-10    0.12659D-13    0.19640D-10
+  3    0.50490D-23    0.19115D-41    0.50490D-23
+  4   -0.40027D-36    0.22774D-54    0.40027D-36
+  5   -0.12542D-51    0.00000D+00    0.12542D-51
+  6    0.19246D-70    0.00000D+00    0.19246D-70
+  7    0.18000D-88    0.00000D+00    0.18000D-88
+  8   -0.16260-107    0.00000D+00    0.16260-107
+  9    0.75665-126    0.00000D+00    0.75665-126
+ 10    0.28911-143    0.00000D+00    0.28911-143
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        660
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        111
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =       2034 f-s =       2248 J-s =         39
+ Computed and reference solutions and absolute errors follow:
+  1    0.33792D-08    0.10042D-08    0.23750D-08
+  2   -0.14988D-08    0.20955D-08    0.35943D-08
+  3    0.15326-119    0.00000D+00    0.15326-119
+  4   -0.31934-119   -0.18767D-79    0.18767D-79
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        390 f-s =        495 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1   -0.67751D-25    0.61813D-30    0.67751D-25
+  2    0.67162D-25    0.89637D-30    0.67161D-25
+  3   -0.11972D-21    0.27384D-26    0.11972D-21
+  4    0.20700D-08    0.20612D-08    0.88533D-11
+  5    0.45402D-04    0.45400D-04    0.22293D-08
+  6    0.13534D+00    0.13534D+00    0.32690D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        284
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        426 f-s =        529 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1   -0.44272D-19   -0.10768D-27    0.44272D-19
+  2   -0.17172D-19    0.54550D-27    0.17172D-19
+  3   -0.20650D-22    0.27385D-26    0.20652D-22
+  4    0.20679D-08    0.20612D-08    0.67196D-11
+  5    0.45402D-04    0.45400D-04    0.16949D-08
+  6    0.13534D+00    0.13534D+00    0.25365D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        284
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        798 f-s =        960 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1   -0.17622D-10    0.11886D-21    0.17622D-10
+  2   -0.21725D-10   -0.23259D-21    0.21725D-10
+  3   -0.34190D-29    0.15179D-34    0.34190D-29
+  4    0.20931D-08    0.20612D-08    0.31954D-10
+  5    0.45404D-04    0.45400D-04    0.42677D-08
+  6    0.13534D+00    0.13534D+00    0.64904D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        284
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.76336D+00
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       3790 f-s =       4373 J-s =         69
+ Computed and reference solutions and absolute errors follow:
+  1   -0.28880D-07   -0.23669D-13    0.28880D-07
+  2   -0.59793D-08    0.34489D-13    0.59793D-08
+  3    0.18048D-34    0.18049D-34    0.40443D-39
+  4    0.20612D-08    0.20612D-08    0.43256D-16
+  5    0.45400D-04    0.45400D-04    0.29553D-13
+  6    0.13534D+00    0.13534D+00    0.28894D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        284
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.98039D+00
+    0.97087D+00
+    0.10000D+01
+    0.10000D+01
+ Steps =        525 f-s =        643 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1    0.39248D-03    0.39247D-03    0.21201D-08
+  2    0.38850D-03    0.38850D-03    0.10842D-18
+  3    0.40000D-03    0.40000D-03    0.10842D-18
+  4    0.20000D-01    0.20000D-01    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        460 f-s =        573 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.63349D-09
+  2    0.40000D-01    0.40000D-01    0.56293D-10
+  3    0.40016D-01    0.40016D-01    0.52025D-10
+  4    0.40032D-01    0.40032D-01    0.51278D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        468 f-s =        570 J-s =         13
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.48844D-09
+  2    0.40000D+00    0.40000D+00    0.43414D-09
+  3    0.41600D+00    0.41600D+00    0.43638D-09
+  4    0.43331D+00    0.43331D+00    0.46644D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.50000D+00
+    0.25000D+00
+    0.50000D-01
+    0.23810D-02
+ Steps =        363 f-s =        461 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.15667D-09
+  2    0.10000D+01    0.10000D+01    0.34817D-09
+  3    0.10000D+01    0.10000D+01    0.63562D-09
+  4    0.10000D+01    0.10000D+01    0.12527D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.50000D+00
+    0.12500D+00
+    0.73529D-02
+    0.26954D-04
+ Steps =        345 f-s =        443 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.54570D-09
+  2    0.10000D+01    0.10000D+01    0.12127D-08
+  3    0.10000D+01    0.10000D+01    0.24070D-08
+  4    0.10008D+01    0.10008D+01    0.48572D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        489 f-s =        733 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.99741D+00    0.99741D+00    0.44446D-08
+  2    0.10004D+01    0.10004D+01    0.28133D-08
+  3    0.10000D+01    0.10000D+01    0.56621D-14
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        525 f-s =        721 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.51527D-08
+  2    0.25166D+00    0.25166D+00    0.54237D-08
+  3    0.99707D+00    0.99707D+00    0.18080D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        593 f-s =        740 J-s =         17
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.35274D-09
+  2    0.56309D-02    0.56309D-02    0.68782D-12
+  3    0.10007D+01    0.10007D+01    0.97984D-09
+  4    0.65374D+00    0.65374D+00    0.36436D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.70423D+00
+    0.00000D+00
+ Steps =        323 f-s =        438 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.10166D-07
+  2    0.98757D+00    0.98757D+00    0.71590D-08
+  3   -0.51035D+00   -0.51035D+00    0.93455D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        365 f-s =        570 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99964D+00   -0.99964D+00    0.81592D-07
+  2    0.99933D+00    0.99933D+00    0.80051D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         68
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         95
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        469 f-s =        645 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.38096D-09
+  2    0.99730D+00    0.99730D+00    0.25741D-08
+  3    0.10005D+01    0.10005D+01    0.81154D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        451 f-s =        572 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.82068D-12
+  2   -0.31989D-11   -0.72884D-12    0.24701D-11
+  3    0.40250D-11    0.15348D-11    0.24902D-11
+  4   -0.21326D-11   -0.10837D-11    0.10489D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.99010D+00
+    0.00000D+00
+ Steps =        587 f-s =        714 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1   -0.57361D+00   -0.57361D+00    0.40208D-06
+  2    0.56344D-01    0.56344D-01    0.97776D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         68
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         95
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.61350D+00
+    0.62500D+00
+    0.00000D+00
+ Steps =        522 f-s =        777 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1    0.26092D-02    0.26092D-02    0.27744D-08
+  2    0.33231D-02    0.33231D-02    0.35073D-08
+  3    0.99911D+00    0.99911D+00    0.21622D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.00000D+00
+   -0.67797D-01
+   -0.64516D-01
+   -0.61350D-01
+ Steps =        766 f-s =        950 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1    0.69444D+00    0.69444D+00    0.26170D-10
+  2   -0.67797D+00   -0.67797D+00    0.25442D-10
+  3   -0.14549D-07   -0.14501D-07    0.48625D-10
+  4    0.13835D-07    0.13789D-07    0.46011D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        262 f-s =        345 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.91936D+00    0.91936D+00    0.43720D-07
+  2    0.94674D+00    0.94674D+00    0.49233D-07
+  3    0.99777D+00    0.99777D+00    0.72614D-08
+  4    0.94183D+00    0.94183D+00    0.51652D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.62893D+00
+    0.00000D+00
+    0.49587D+00
+    0.10000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       1010 f-s =       1644 J-s =         31
+ Computed and reference solutions and absolute errors follow:
+  1    0.10009D+01    0.10009D+01    0.35698D-09
+  2    0.15223D-03    0.15223D-03    0.57871D-12
+  3    0.99887D+00    0.99887D+00    0.35436D-09
+  4    0.32420D-02    0.32420D-02    0.31327D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        284 f-s =        368 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.21002D-08
+  2    0.52568D+00    0.52568D+00    0.28195D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         72
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        598 f-s =        723 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.80903D-07    0.80898D-07    0.48709D-11
+  2    0.23607D+00    0.23607D+00    0.84340D-08
+  3    0.20426D-04    0.20426D-04    0.63907D-12
+  4    0.99860D+00    0.99860D+00    0.28828D-07
+  5    0.99879D+00    0.99879D+00    0.68499D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        225
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        106
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.33898D-04
+    0.62147D-03
+    0.12780D-03
+ Nonnegativity will be enforced for this problem.
+ Steps =       1685 f-s =       2766 J-s =         38
+ Computed and reference solutions and absolute errors follow:
+  1    0.37442D-04    0.37443D-04    0.12654D-08
+  2    0.72895D-03    0.72895D-03    0.11617D-08
+  3    0.96463D-04    0.96463D-04    0.93119D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        113
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        100
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10015D+01
+    0.10001D+01
+    0.26527D+00
+    0.98220D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        666 f-s =        993 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1    0.50999D+00    0.50999D+00    0.27384D-08
+  2    0.44958D+00    0.44958D+00    0.24574D-08
+  3    0.99988D+00    0.99988D+00    0.54653D-08
+  4    0.99949D+00    0.99949D+00    0.96345D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        591 f-s =        713 J-s =         17
+ Computed and reference solutions and absolute errors follow:
+  1    0.45400D-04    0.45400D-04    0.33624D-09
+  2    0.20624D-08    0.20612D-08    0.12571D-11
+  3    0.92264D-53    0.28230D-55    0.91981D-53
+  4    0.81954D-50    0.52358D-51    0.76718D-50
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =   1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        735 f-s =        996 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D+00    0.99999D+00    0.32399D-09
+  2    0.99999D+00    0.99999D+00    0.32397D-09
+  3    0.99999D+00    0.99999D+00    0.30201D-09
+  4    0.99999D+00    0.99999D+00    0.26803D-09
+  5    0.99999D+00    0.99999D+00    0.22588D-09
+  6    0.10000D+01    0.10000D+01    0.17867D-09
+  7    0.10000D+01    0.10000D+01    0.12941D-09
+  8    0.10000D+01    0.10000D+01    0.80970D-10
+  9    0.10000D+01    0.10000D+01    0.35989D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        335
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        109
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.12788D+00
+    0.10000D+01
+ Steps =        760 f-s =        908 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.14914D-11
+  2    0.13685D-01    0.13685D-01    0.15047D-10
+  3    0.19229D+00    0.19229D+00    0.21191D-09
+  4    0.13534D+00    0.13534D+00    0.15259D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        999 f-s =       1284 J-s =         22
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.54749D-09
+  2    0.10353D-10    0.12659D-13    0.10341D-10
+  3   -0.96722D-30    0.19115D-41    0.96722D-30
+  4    0.36835D-45    0.22774D-54    0.36835D-45
+  5   -0.26039D-66    0.00000D+00    0.26039D-66
+  6   -0.24198D-87    0.00000D+00    0.24198D-87
+  7   -0.55392-112    0.00000D+00    0.55392-112
+  8    0.11561-137    0.00000D+00    0.11561-137
+  9   -0.36661-165    0.00000D+00    0.36661-165
+ 10   -0.13089-187    0.00000D+00    0.13089-187
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        390
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        111
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =       2913 f-s =       3206 J-s =         55
+ Computed and reference solutions and absolute errors follow:
+  1    0.96983D-09    0.10042D-08    0.34337D-10
+  2    0.16923D-08    0.20955D-08    0.40318D-09
+  3    0.95137-207    0.00000D+00    0.95137-207
+  4   -0.43484-206   -0.18767D-79    0.18767D-79
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        558 f-s =        697 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1   -0.31672D-32    0.61813D-30    0.62130D-30
+  2   -0.11777D-32    0.89637D-30    0.89754D-30
+  3    0.28935D-26    0.27384D-26    0.15509D-27
+  4    0.20625D-08    0.20612D-08    0.13589D-11
+  5    0.45400D-04    0.45400D-04    0.36754D-09
+  6    0.13534D+00    0.13534D+00    0.57915D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        194
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        598 f-s =        735 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1   -0.17676D-26   -0.10768D-27    0.16600D-26
+  2    0.10594D-25    0.54550D-27    0.10049D-25
+  3    0.48294D-27    0.27385D-26    0.22556D-26
+  4    0.20623D-08    0.20612D-08    0.11767D-11
+  5    0.45400D-04    0.45400D-04    0.32141D-09
+  6    0.13534D+00    0.13534D+00    0.51098D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        194
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1106 f-s =       1299 J-s =         24
+ Computed and reference solutions and absolute errors follow:
+  1    0.36473D-12    0.11886D-21    0.36473D-12
+  2    0.17238D-11   -0.23259D-21    0.17238D-11
+  3    0.97880D-35    0.15179D-34    0.53906D-35
+  4    0.20606D-08    0.20612D-08    0.55352D-12
+  5    0.45400D-04    0.45400D-04    0.33828D-09
+  6    0.13534D+00    0.13534D+00    0.29354D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        194
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.76336D+00
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       4571 f-s =       5275 J-s =         83
+ Computed and reference solutions and absolute errors follow:
+  1   -0.31884D-08   -0.23669D-13    0.31884D-08
+  2    0.27580D-08    0.34489D-13    0.27580D-08
+  3    0.18048D-34    0.18049D-34    0.51115D-39
+  4    0.20612D-08    0.20612D-08    0.54212D-16
+  5    0.45400D-04    0.45400D-04    0.36983D-13
+  6    0.13534D+00    0.13534D+00    0.28255D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        194
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.98039D+00
+    0.97087D+00
+    0.10000D+01
+    0.10000D+01
+ Steps =        735 f-s =        888 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1    0.39247D-03    0.39247D-03    0.25669D-09
+  2    0.38850D-03    0.38850D-03    0.54210D-19
+  3    0.40000D-03    0.40000D-03    0.54210D-19
+  4    0.20000D-01    0.20000D-01    0.34694D-17
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        661 f-s =        796 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.46526D-09
+  2    0.40000D-01    0.40000D-01    0.41344D-10
+  3    0.40016D-01    0.40016D-01    0.38203D-10
+  4    0.40032D-01    0.40032D-01    0.37657D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        656 f-s =        783 J-s =         17
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.17845D-09
+  2    0.40000D+00    0.40000D+00    0.15862D-09
+  3    0.41600D+00    0.41600D+00    0.15944D-09
+  4    0.43331D+00    0.43331D+00    0.17042D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.50000D+00
+    0.25000D+00
+    0.50000D-01
+    0.23810D-02
+ Steps =        517 f-s =        628 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.18391D-10
+  2    0.10000D+01    0.10000D+01    0.40870D-10
+  3    0.10000D+01    0.10000D+01    0.74614D-10
+  4    0.10000D+01    0.10000D+01    0.14706D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.50000D+00
+    0.12500D+00
+    0.73529D-02
+    0.26954D-04
+ Steps =        502 f-s =        602 J-s =         13
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.11046D-10
+  2    0.10000D+01    0.10000D+01    0.24547D-10
+  3    0.10000D+01    0.10000D+01    0.48724D-10
+  4    0.10008D+01    0.10008D+01    0.98321D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        573 f-s =        815 J-s =         13
+ Computed and reference solutions and absolute errors follow:
+  1    0.99741D+00    0.99741D+00    0.36247D-08
+  2    0.10004D+01    0.10004D+01    0.29891D-08
+  3    0.10000D+01    0.10000D+01    0.55511D-15
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        770 f-s =       1094 J-s =         17
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.81718D-09
+  2    0.25166D+00    0.25166D+00    0.69674D-09
+  3    0.99707D+00    0.99707D+00    0.28674D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        871 f-s =       1044 J-s =         21
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.61416D-11
+  2    0.56309D-02    0.56309D-02    0.11980D-13
+  3    0.10007D+01    0.10007D+01    0.17064D-10
+  4    0.65374D+00    0.65374D+00    0.63445D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.70423D+00
+    0.00000D+00
+ Steps =        439 f-s =        602 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.41640D-10
+  2    0.98757D+00    0.98757D+00    0.29324D-10
+  3   -0.51035D+00   -0.51035D+00    0.43798D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        533 f-s =        832 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99964D+00   -0.99964D+00    0.80270D-08
+  2    0.99933D+00    0.99933D+00    0.87922D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         62
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         95
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        652 f-s =        934 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.81613D-10
+  2    0.99730D+00    0.99730D+00    0.55119D-09
+  3    0.10005D+01    0.10005D+01    0.17376D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        737 f-s =        917 J-s =         21
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.49893D-12
+  2    0.19552D-11   -0.72884D-12    0.26841D-11
+  3   -0.14698D-11    0.15348D-11    0.30046D-11
+  4   -0.11863D-10   -0.10837D-11    0.10779D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.99010D+00
+    0.00000D+00
+ Steps =        835 f-s =        997 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1   -0.57361D+00   -0.57361D+00    0.38996D-07
+  2    0.56344D-01    0.56344D-01    0.11220D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         62
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         95
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.61350D+00
+    0.62500D+00
+    0.00000D+00
+ Steps =        642 f-s =        858 J-s =         17
+ Computed and reference solutions and absolute errors follow:
+  1    0.26092D-02    0.26092D-02    0.34928D-09
+  2    0.33231D-02    0.33231D-02    0.44395D-09
+  3    0.99911D+00    0.99911D+00    0.66566D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.00000D+00
+   -0.67797D-01
+   -0.64516D-01
+   -0.61350D-01
+ Steps =       1208 f-s =       1736 J-s =         73
+ Computed and reference solutions and absolute errors follow:
+  1    0.69444D+00    0.69444D+00    0.99564D-10
+  2   -0.67797D+00   -0.67797D+00    0.92188D-10
+  3   -0.43676D-08   -0.14501D-07    0.10133D-07
+  4    0.23768D-07    0.13789D-07    0.99787D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        369 f-s =        500 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1    0.91936D+00    0.91936D+00    0.45188D-07
+  2    0.94674D+00    0.94674D+00    0.51103D-07
+  3    0.99777D+00    0.99777D+00    0.77462D-08
+  4    0.94183D+00    0.94183D+00    0.53601D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.62893D+00
+    0.00000D+00
+    0.49587D+00
+    0.10000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       1530 f-s =       2359 J-s =         35
+ Computed and reference solutions and absolute errors follow:
+  1    0.10009D+01    0.10009D+01    0.34065D-09
+  2    0.15223D-03    0.15223D-03    0.64298D-12
+  3    0.99887D+00    0.99887D+00    0.33812D-09
+  4    0.32420D-02    0.32420D-02    0.53513D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        128
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        398 f-s =        474 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.42979D-09
+  2    0.52568D+00    0.52568D+00    0.57701D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         66
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        827 f-s =        967 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1    0.80902D-07    0.80898D-07    0.39381D-11
+  2    0.23607D+00    0.23607D+00    0.11741D-10
+  3    0.20426D-04    0.20426D-04    0.99271D-12
+  4    0.99860D+00    0.99860D+00    0.39988D-10
+  5    0.99879D+00    0.99879D+00    0.47933D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        165
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        106
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.33898D-04
+    0.62147D-03
+    0.12780D-03
+ Nonnegativity will be enforced for this problem.
+ Steps =       2127 f-s =       3285 J-s =         46
+ Computed and reference solutions and absolute errors follow:
+  1    0.37443D-04    0.37443D-04    0.43293D-10
+  2    0.72895D-03    0.72895D-03    0.47860D-09
+  3    0.96463D-04    0.96463D-04    0.44708D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         95
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        100
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10015D+01
+    0.10001D+01
+    0.26527D+00
+    0.98220D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        828 f-s =       1178 J-s =         21
+ Computed and reference solutions and absolute errors follow:
+  1    0.50999D+00    0.50999D+00    0.61136D-08
+  2    0.44958D+00    0.44958D+00    0.54862D-08
+  3    0.99988D+00    0.99988D+00    0.12202D-07
+  4    0.99949D+00    0.99949D+00    0.21510D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        128
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        591 f-s =        789 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1    0.45400D-04    0.45400D-04    0.33624D-09
+  2    0.20624D-08    0.20612D-08    0.12571D-11
+  3    0.92261D-53    0.28230D-55    0.91979D-53
+  4    0.81952D-50    0.52358D-51    0.76717D-50
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =   1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        736 f-s =       1252 J-s =         24
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D+00    0.99999D+00    0.34220D-09
+  2    0.99999D+00    0.99999D+00    0.34220D-09
+  3    0.99999D+00    0.99999D+00    0.31904D-09
+  4    0.99999D+00    0.99999D+00    0.28319D-09
+  5    0.99999D+00    0.99999D+00    0.23867D-09
+  6    0.10000D+01    0.10000D+01    0.18880D-09
+  7    0.10000D+01    0.10000D+01    0.13675D-09
+  8    0.10000D+01    0.10000D+01    0.85568D-10
+  9    0.10000D+01    0.10000D+01    0.38033D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        425
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =       1072
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.12788D+00
+    0.10000D+01
+ Steps =        760 f-s =       1024 J-s =         24
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.14882D-11
+  2    0.13685D-01    0.13685D-01    0.15015D-10
+  3    0.19229D+00    0.19229D+00    0.21146D-09
+  4    0.13534D+00    0.13534D+00    0.15226D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        999 f-s =       1684 J-s =         31
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.54749D-09
+  2    0.10354D-10    0.12659D-13    0.10341D-10
+  3   -0.96715D-30    0.19115D-41    0.96715D-30
+  4    0.36841D-45    0.22774D-54    0.36841D-45
+  5   -0.26041D-66    0.00000D+00    0.26041D-66
+  6   -0.24201D-87    0.00000D+00    0.24201D-87
+  7   -0.55398-112    0.00000D+00    0.55398-112
+  8    0.11562-137    0.00000D+00    0.11562-137
+  9   -0.36664-165    0.00000D+00    0.36664-165
+ 10   -0.13091-187    0.00000D+00    0.13091-187
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        500
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =       1271
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =       2913 f-s =       3602 J-s =         77
+ Computed and reference solutions and absolute errors follow:
+  1    0.96982D-09    0.10042D-08    0.34347D-10
+  2    0.16924D-08    0.20955D-08    0.40311D-09
+  3    0.94904-207    0.00000D+00    0.94904-207
+  4   -0.43756-206   -0.18767D-79    0.18767D-79
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        558 f-s =        823 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1   -0.31672D-32    0.61813D-30    0.62130D-30
+  2   -0.11778D-32    0.89637D-30    0.89754D-30
+  3    0.28935D-26    0.27384D-26    0.15509D-27
+  4    0.20625D-08    0.20612D-08    0.13589D-11
+  5    0.45400D-04    0.45400D-04    0.36754D-09
+  6    0.13534D+00    0.13534D+00    0.57915D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        236
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        583
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        598 f-s =        867 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1   -0.17677D-26   -0.10768D-27    0.16600D-26
+  2    0.10594D-25    0.54550D-27    0.10049D-25
+  3    0.48294D-27    0.27385D-26    0.22556D-26
+  4    0.20623D-08    0.20612D-08    0.11767D-11
+  5    0.45400D-04    0.45400D-04    0.32141D-09
+  6    0.13534D+00    0.13534D+00    0.51097D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        236
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        583
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1106 f-s =       1527 J-s =         31
+ Computed and reference solutions and absolute errors follow:
+  1    0.36411D-12    0.11886D-21    0.36411D-12
+  2    0.17243D-11   -0.23259D-21    0.17243D-11
+  3    0.97878D-35    0.15179D-34    0.53907D-35
+  4    0.20606D-08    0.20612D-08    0.55354D-12
+  5    0.45400D-04    0.45400D-04    0.33829D-09
+  6    0.13534D+00    0.13534D+00    0.29355D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        236
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        583
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.76336D+00
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       4587 f-s =       6251 J-s =        123
+ Computed and reference solutions and absolute errors follow:
+  1   -0.23026D-09   -0.23669D-13    0.23023D-09
+  2   -0.91895D-10    0.34489D-13    0.91929D-10
+  3    0.18048D-34    0.18049D-34    0.47894D-39
+  4    0.20612D-08    0.20612D-08    0.50859D-16
+  5    0.45400D-04    0.45400D-04    0.34718D-13
+  6    0.13534D+00    0.13534D+00    0.36304D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        236
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        583
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.98039D+00
+    0.97087D+00
+    0.10000D+01
+    0.10000D+01
+ Steps =        734 f-s =       1001 J-s =         24
+ Computed and reference solutions and absolute errors follow:
+  1    0.39247D-03    0.39247D-03    0.10058D-09
+  2    0.38850D-03    0.38850D-03    0.54210D-19
+  3    0.40000D-03    0.40000D-03    0.10842D-18
+  4    0.20000D-01    0.20000D-01    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        661 f-s =        900 J-s =         22
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.46606D-09
+  2    0.40000D-01    0.40000D-01    0.41421D-10
+  3    0.40016D-01    0.40016D-01    0.38276D-10
+  4    0.40032D-01    0.40032D-01    0.37726D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        652 f-s =        881 J-s =         20
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.32244D-10
+  2    0.40000D+00    0.40000D+00    0.28663D-10
+  3    0.41600D+00    0.41600D+00    0.28809D-10
+  4    0.43331D+00    0.43331D+00    0.30794D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.50000D+00
+    0.25000D+00
+    0.50000D-01
+    0.23810D-02
+ Steps =        517 f-s =        704 J-s =         17
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.24309D-10
+  2    0.10000D+01    0.10000D+01    0.54020D-10
+  3    0.10000D+01    0.10000D+01    0.98622D-10
+  4    0.10000D+01    0.10000D+01    0.19437D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.50000D+00
+    0.12500D+00
+    0.73529D-02
+    0.26954D-04
+ Steps =        502 f-s =        678 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.12332D-10
+  2    0.10000D+01    0.10000D+01    0.27405D-10
+  3    0.10000D+01    0.10000D+01    0.54396D-10
+  4    0.10008D+01    0.10008D+01    0.10977D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        578 f-s =        926 J-s =         22
+ Computed and reference solutions and absolute errors follow:
+  1    0.99741D+00    0.99741D+00    0.28838D-08
+  2    0.10004D+01    0.10004D+01    0.23767D-08
+  3    0.10000D+01    0.10000D+01    0.53291D-14
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        751 f-s =       1168 J-s =         29
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.10177D-08
+  2    0.25166D+00    0.25166D+00    0.10918D-08
+  3    0.99707D+00    0.99707D+00    0.35710D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        868 f-s =       1206 J-s =         30
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.15320D-10
+  2    0.56309D-02    0.56309D-02    0.29856D-13
+  3    0.10007D+01    0.10007D+01    0.42556D-10
+  4    0.65374D+00    0.65374D+00    0.15828D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.70423D+00
+    0.00000D+00
+ Steps =        424 f-s =        641 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.17163D-08
+  2    0.98757D+00    0.98757D+00    0.12086D-08
+  3   -0.51035D+00   -0.51035D+00    0.18415D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        509 f-s =        834 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99964D+00   -0.99964D+00    0.60968D-08
+  2    0.99933D+00    0.99933D+00    0.67064D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         68
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        183
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        626 f-s =        935 J-s =         22
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.95688D-10
+  2    0.99730D+00    0.99730D+00    0.64653D-09
+  3    0.10005D+01    0.10005D+01    0.20397D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        896 f-s =       2210 J-s =        122
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.75643D-09
+  2   -0.45111D-09   -0.72884D-12    0.45039D-09
+  3   -0.76362D-10    0.15348D-11    0.77897D-10
+  4   -0.25644D-11   -0.10837D-11    0.14807D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.99010D+00
+    0.00000D+00
+ Steps =        833 f-s =       1059 J-s =         27
+ Computed and reference solutions and absolute errors follow:
+  1   -0.57361D+00   -0.57361D+00    0.42937D-07
+  2    0.56344D-01    0.56344D-01    0.12702D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         68
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        183
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.61350D+00
+    0.62500D+00
+    0.00000D+00
+ Steps =        616 f-s =        912 J-s =         22
+ Computed and reference solutions and absolute errors follow:
+  1    0.26092D-02    0.26092D-02    0.20162D-09
+  2    0.33231D-02    0.33231D-02    0.25518D-09
+  3    0.99911D+00    0.99911D+00    0.88365D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.00000D+00
+   -0.67797D-01
+   -0.64516D-01
+   -0.61350D-01
+ Steps =       1405 f-s =       2101 J-s =         58
+ Computed and reference solutions and absolute errors follow:
+  1    0.69444D+00    0.69444D+00    0.49845D-10
+  2   -0.67797D+00   -0.67797D+00    0.48615D-10
+  3   -0.14670D-07   -0.14501D-07    0.16934D-09
+  4    0.13804D-07    0.13789D-07    0.15027D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        362 f-s =        560 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.91936D+00    0.91936D+00    0.45175D-07
+  2    0.94674D+00    0.94674D+00    0.51019D-07
+  3    0.99777D+00    0.99777D+00    0.76684D-08
+  4    0.94183D+00    0.94183D+00    0.53517D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.62893D+00
+    0.00000D+00
+    0.49587D+00
+    0.10000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       1523 f-s =       2603 J-s =         54
+ Computed and reference solutions and absolute errors follow:
+  1    0.10009D+01    0.10009D+01    0.14209D-11
+  2    0.15223D-03    0.15223D-03    0.74673D-14
+  3    0.99887D+00    0.99887D+00    0.14275D-11
+  4    0.32420D-02    0.32420D-02    0.76549D-14
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        148
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        351
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        397 f-s =        505 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.43888D-09
+  2    0.52568D+00    0.52568D+00    0.58912D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         72
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        185
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        817 f-s =       1151 J-s =         27
+ Computed and reference solutions and absolute errors follow:
+  1    0.80902D-07    0.80898D-07    0.39396D-11
+  2    0.23607D+00    0.23607D+00    0.12084D-09
+  3    0.20426D-04    0.20426D-04    0.98486D-12
+  4    0.99860D+00    0.99860D+00    0.44213D-09
+  5    0.99879D+00    0.99879D+00    0.64206D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        195
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        461
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.33898D-04
+    0.62147D-03
+    0.12780D-03
+ Nonnegativity will be enforced for this problem.
+ Steps =       2055 f-s =       3498 J-s =         79
+ Computed and reference solutions and absolute errors follow:
+  1    0.37443D-04    0.37443D-04    0.45439D-11
+  2    0.72895D-03    0.72895D-03    0.35346D-10
+  3    0.96463D-04    0.96463D-04    0.68655D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        259
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10015D+01
+    0.10001D+01
+    0.26527D+00
+    0.98220D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        815 f-s =       1342 J-s =         31
+ Computed and reference solutions and absolute errors follow:
+  1    0.50999D+00    0.50999D+00    0.68049D-09
+  2    0.44958D+00    0.44958D+00    0.61066D-09
+  3    0.99988D+00    0.99988D+00    0.13581D-08
+  4    0.99949D+00    0.99949D+00    0.23942D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        148
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        351
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        591 f-s =        713 J-s =         17
+ Computed and reference solutions and absolute errors follow:
+  1    0.45400D-04    0.45400D-04    0.33624D-09
+  2    0.20624D-08    0.20612D-08    0.12571D-11
+  3    0.92264D-53    0.28230D-55    0.91981D-53
+  4    0.81954D-50    0.52358D-51    0.76718D-50
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =   1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        735 f-s =        996 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D+00    0.99999D+00    0.32399D-09
+  2    0.99999D+00    0.99999D+00    0.32397D-09
+  3    0.99999D+00    0.99999D+00    0.30201D-09
+  4    0.99999D+00    0.99999D+00    0.26803D-09
+  5    0.99999D+00    0.99999D+00    0.22588D-09
+  6    0.10000D+01    0.10000D+01    0.17867D-09
+  7    0.10000D+01    0.10000D+01    0.12941D-09
+  8    0.10000D+01    0.10000D+01    0.80970D-10
+  9    0.10000D+01    0.10000D+01    0.35989D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        551
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        109
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.12788D+00
+    0.10000D+01
+ Steps =        760 f-s =        908 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.14914D-11
+  2    0.13685D-01    0.13685D-01    0.15047D-10
+  3    0.19229D+00    0.19229D+00    0.21191D-09
+  4    0.13534D+00    0.13534D+00    0.15259D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        999 f-s =       1284 J-s =         22
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.54749D-09
+  2    0.10353D-10    0.12659D-13    0.10341D-10
+  3   -0.96722D-30    0.19115D-41    0.96722D-30
+  4    0.36835D-45    0.22774D-54    0.36835D-45
+  5   -0.26039D-66    0.00000D+00    0.26039D-66
+  6   -0.24198D-87    0.00000D+00    0.24198D-87
+  7   -0.55392-112    0.00000D+00    0.55392-112
+  8    0.11561-137    0.00000D+00    0.11561-137
+  9   -0.36661-165    0.00000D+00    0.36661-165
+ 10   -0.13089-187    0.00000D+00    0.13089-187
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        660
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        111
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =       2913 f-s =       3206 J-s =         55
+ Computed and reference solutions and absolute errors follow:
+  1    0.96983D-09    0.10042D-08    0.34337D-10
+  2    0.16923D-08    0.20955D-08    0.40318D-09
+  3    0.95137-207    0.00000D+00    0.95137-207
+  4   -0.43484-206   -0.18767D-79    0.18767D-79
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        558 f-s =        697 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1   -0.31672D-32    0.61813D-30    0.62130D-30
+  2   -0.11777D-32    0.89637D-30    0.89754D-30
+  3    0.28935D-26    0.27384D-26    0.15509D-27
+  4    0.20625D-08    0.20612D-08    0.13589D-11
+  5    0.45400D-04    0.45400D-04    0.36754D-09
+  6    0.13534D+00    0.13534D+00    0.57915D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        284
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        598 f-s =        735 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1   -0.17676D-26   -0.10768D-27    0.16600D-26
+  2    0.10594D-25    0.54550D-27    0.10049D-25
+  3    0.48294D-27    0.27385D-26    0.22556D-26
+  4    0.20623D-08    0.20612D-08    0.11767D-11
+  5    0.45400D-04    0.45400D-04    0.32141D-09
+  6    0.13534D+00    0.13534D+00    0.51098D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        284
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1106 f-s =       1299 J-s =         24
+ Computed and reference solutions and absolute errors follow:
+  1    0.36473D-12    0.11886D-21    0.36473D-12
+  2    0.17238D-11   -0.23259D-21    0.17238D-11
+  3    0.97880D-35    0.15179D-34    0.53906D-35
+  4    0.20606D-08    0.20612D-08    0.55352D-12
+  5    0.45400D-04    0.45400D-04    0.33828D-09
+  6    0.13534D+00    0.13534D+00    0.29354D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        284
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.76336D+00
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       4571 f-s =       5275 J-s =         83
+ Computed and reference solutions and absolute errors follow:
+  1   -0.31884D-08   -0.23669D-13    0.31884D-08
+  2    0.27580D-08    0.34489D-13    0.27580D-08
+  3    0.18048D-34    0.18049D-34    0.51115D-39
+  4    0.20612D-08    0.20612D-08    0.54212D-16
+  5    0.45400D-04    0.45400D-04    0.36983D-13
+  6    0.13534D+00    0.13534D+00    0.28255D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        284
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.98039D+00
+    0.97087D+00
+    0.10000D+01
+    0.10000D+01
+ Steps =        735 f-s =        888 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1    0.39247D-03    0.39247D-03    0.25669D-09
+  2    0.38850D-03    0.38850D-03    0.54210D-19
+  3    0.40000D-03    0.40000D-03    0.54210D-19
+  4    0.20000D-01    0.20000D-01    0.34694D-17
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        661 f-s =        796 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.46526D-09
+  2    0.40000D-01    0.40000D-01    0.41344D-10
+  3    0.40016D-01    0.40016D-01    0.38203D-10
+  4    0.40032D-01    0.40032D-01    0.37657D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        656 f-s =        783 J-s =         17
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.17845D-09
+  2    0.40000D+00    0.40000D+00    0.15862D-09
+  3    0.41600D+00    0.41600D+00    0.15944D-09
+  4    0.43331D+00    0.43331D+00    0.17042D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.50000D+00
+    0.25000D+00
+    0.50000D-01
+    0.23810D-02
+ Steps =        517 f-s =        628 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.18391D-10
+  2    0.10000D+01    0.10000D+01    0.40870D-10
+  3    0.10000D+01    0.10000D+01    0.74614D-10
+  4    0.10000D+01    0.10000D+01    0.14706D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.50000D+00
+    0.12500D+00
+    0.73529D-02
+    0.26954D-04
+ Steps =        502 f-s =        602 J-s =         13
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.11046D-10
+  2    0.10000D+01    0.10000D+01    0.24547D-10
+  3    0.10000D+01    0.10000D+01    0.48724D-10
+  4    0.10008D+01    0.10008D+01    0.98321D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        573 f-s =        815 J-s =         13
+ Computed and reference solutions and absolute errors follow:
+  1    0.99741D+00    0.99741D+00    0.36247D-08
+  2    0.10004D+01    0.10004D+01    0.29891D-08
+  3    0.10000D+01    0.10000D+01    0.55511D-15
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        770 f-s =       1094 J-s =         17
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.81718D-09
+  2    0.25166D+00    0.25166D+00    0.69674D-09
+  3    0.99707D+00    0.99707D+00    0.28674D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        871 f-s =       1044 J-s =         21
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.61416D-11
+  2    0.56309D-02    0.56309D-02    0.11980D-13
+  3    0.10007D+01    0.10007D+01    0.17064D-10
+  4    0.65374D+00    0.65374D+00    0.63445D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.70423D+00
+    0.00000D+00
+ Steps =        439 f-s =        602 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.41640D-10
+  2    0.98757D+00    0.98757D+00    0.29324D-10
+  3   -0.51035D+00   -0.51035D+00    0.43798D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        533 f-s =        832 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99964D+00   -0.99964D+00    0.80270D-08
+  2    0.99933D+00    0.99933D+00    0.87922D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         68
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         95
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        652 f-s =        934 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.81613D-10
+  2    0.99730D+00    0.99730D+00    0.55119D-09
+  3    0.10005D+01    0.10005D+01    0.17376D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        737 f-s =        917 J-s =         21
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.49893D-12
+  2    0.19552D-11   -0.72884D-12    0.26841D-11
+  3   -0.14698D-11    0.15348D-11    0.30046D-11
+  4   -0.11863D-10   -0.10837D-11    0.10779D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.99010D+00
+    0.00000D+00
+ Steps =        835 f-s =        997 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1   -0.57361D+00   -0.57361D+00    0.38996D-07
+  2    0.56344D-01    0.56344D-01    0.11220D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         68
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         95
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.61350D+00
+    0.62500D+00
+    0.00000D+00
+ Steps =        642 f-s =        858 J-s =         17
+ Computed and reference solutions and absolute errors follow:
+  1    0.26092D-02    0.26092D-02    0.34928D-09
+  2    0.33231D-02    0.33231D-02    0.44395D-09
+  3    0.99911D+00    0.99911D+00    0.66566D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.00000D+00
+   -0.67797D-01
+   -0.64516D-01
+   -0.61350D-01
+ Steps =       1208 f-s =       1736 J-s =         73
+ Computed and reference solutions and absolute errors follow:
+  1    0.69444D+00    0.69444D+00    0.99564D-10
+  2   -0.67797D+00   -0.67797D+00    0.92188D-10
+  3   -0.43676D-08   -0.14501D-07    0.10133D-07
+  4    0.23768D-07    0.13789D-07    0.99787D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        369 f-s =        500 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1    0.91936D+00    0.91936D+00    0.45188D-07
+  2    0.94674D+00    0.94674D+00    0.51103D-07
+  3    0.99777D+00    0.99777D+00    0.77462D-08
+  4    0.94183D+00    0.94183D+00    0.53601D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.62893D+00
+    0.00000D+00
+    0.49587D+00
+    0.10000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       1530 f-s =       2359 J-s =         35
+ Computed and reference solutions and absolute errors follow:
+  1    0.10009D+01    0.10009D+01    0.34065D-09
+  2    0.15223D-03    0.15223D-03    0.64298D-12
+  3    0.99887D+00    0.99887D+00    0.33812D-09
+  4    0.32420D-02    0.32420D-02    0.53513D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        398 f-s =        474 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.42979D-09
+  2    0.52568D+00    0.52568D+00    0.57701D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         72
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        827 f-s =        967 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1    0.80902D-07    0.80898D-07    0.39381D-11
+  2    0.23607D+00    0.23607D+00    0.11741D-10
+  3    0.20426D-04    0.20426D-04    0.99271D-12
+  4    0.99860D+00    0.99860D+00    0.39988D-10
+  5    0.99879D+00    0.99879D+00    0.47933D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        225
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        106
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.33898D-04
+    0.62147D-03
+    0.12780D-03
+ Nonnegativity will be enforced for this problem.
+ Steps =       2127 f-s =       3285 J-s =         46
+ Computed and reference solutions and absolute errors follow:
+  1    0.37443D-04    0.37443D-04    0.43293D-10
+  2    0.72895D-03    0.72895D-03    0.47860D-09
+  3    0.96463D-04    0.96463D-04    0.44708D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        113
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        100
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10015D+01
+    0.10001D+01
+    0.26527D+00
+    0.98220D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        828 f-s =       1178 J-s =         21
+ Computed and reference solutions and absolute errors follow:
+  1    0.50999D+00    0.50999D+00    0.61136D-08
+  2    0.44958D+00    0.44958D+00    0.54862D-08
+  3    0.99988D+00    0.99988D+00    0.12202D-07
+  4    0.99949D+00    0.99949D+00    0.21510D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        868 f-s =       1013 J-s =         21
+ Computed and reference solutions and absolute errors follow:
+  1    0.45400D-04    0.45400D-04    0.33886D-10
+  2    0.20613D-08    0.20612D-08    0.11428D-12
+  3   -0.18641D-65    0.28230D-55    0.28230D-55
+  4   -0.60003D-64    0.52358D-51    0.52358D-51
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =   1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =       1026 f-s =       1326 J-s =         25
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D+00    0.99999D+00    0.50967D-10
+  2    0.99999D+00    0.99999D+00    0.50966D-10
+  3    0.99999D+00    0.99999D+00    0.47514D-10
+  4    0.99999D+00    0.99999D+00    0.42171D-10
+  5    0.99999D+00    0.99999D+00    0.35541D-10
+  6    0.10000D+01    0.10000D+01    0.28114D-10
+  7    0.10000D+01    0.10000D+01    0.20363D-10
+  8    0.10000D+01    0.10000D+01    0.12741D-10
+  9    0.10000D+01    0.10000D+01    0.56627D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        335
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        109
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.12788D+00
+    0.10000D+01
+ Steps =       1065 f-s =       1228 J-s =         23
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.10515D-11
+  2    0.13685D-01    0.13685D-01    0.10608D-10
+  3    0.19229D+00    0.19229D+00    0.14940D-09
+  4    0.13534D+00    0.13534D+00    0.10759D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1447 f-s =       1825 J-s =         31
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.27668D-09
+  2    0.24333D-11    0.12659D-13    0.24207D-11
+  3    0.12344D-37    0.19115D-41    0.12342D-37
+  4    0.29516D-57    0.22774D-54    0.22745D-54
+  5    0.62662D-84    0.00000D+00    0.62662D-84
+  6   -0.11726-113    0.00000D+00    0.11726-113
+  7    0.11345-145    0.00000D+00    0.11345-145
+  8    0.19805-182    0.00000D+00    0.19805-182
+  9    0.19867-214    0.00000D+00    0.19867-214
+ 10   -0.11006-247    0.00000D+00    0.11006-247
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        390
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        111
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =       4319 f-s =       4722 J-s =         78
+ Computed and reference solutions and absolute errors follow:
+  1    0.98293D-09    0.10042D-08    0.21236D-10
+  2    0.20201D-08    0.20955D-08    0.75409D-10
+  3   -0.90579-305    0.00000D+00    0.90579-305
+  4   -0.10666-303   -0.18767D-79    0.18767D-79
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        789 f-s =        950 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1    0.36739D-43    0.61813D-30    0.61813D-30
+  2   -0.90070D-44    0.89637D-30    0.89637D-30
+  3   -0.23309D-31    0.27384D-26    0.27384D-26
+  4    0.20613D-08    0.20612D-08    0.18168D-12
+  5    0.45400D-04    0.45400D-04    0.52756D-10
+  6    0.13534D+00    0.13534D+00    0.89031D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        194
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        846 f-s =       1006 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1   -0.24510D-36   -0.10768D-27    0.10768D-27
+  2   -0.23096D-36    0.54550D-27    0.54550D-27
+  3    0.11218D-31    0.27385D-26    0.27385D-26
+  4    0.20613D-08    0.20612D-08    0.17291D-12
+  5    0.45400D-04    0.45400D-04    0.50269D-10
+  6    0.13534D+00    0.13534D+00    0.84672D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        194
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1319 f-s =       1544 J-s =         28
+ Computed and reference solutions and absolute errors follow:
+  1   -0.28466D-11    0.11886D-21    0.28466D-11
+  2    0.15176D-10   -0.23259D-21    0.15176D-10
+  3    0.66180D-33    0.15179D-34    0.64663D-33
+  4    0.20612D-08    0.20612D-08    0.80782D-13
+  5    0.45400D-04    0.45400D-04    0.24207D-10
+  6    0.13534D+00    0.13534D+00    0.44165D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        194
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.76336D+00
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       5843 f-s =       6685 J-s =        104
+ Computed and reference solutions and absolute errors follow:
+  1    0.59987D-10   -0.23669D-13    0.60011D-10
+  2   -0.32389D-10    0.34489D-13    0.32423D-10
+  3    0.18048D-34    0.18049D-34    0.38106D-39
+  4    0.20612D-08    0.20612D-08    0.40837D-16
+  5    0.45400D-04    0.45400D-04    0.27897D-13
+  6    0.13534D+00    0.13534D+00    0.12240D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        194
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.98039D+00
+    0.97087D+00
+    0.10000D+01
+    0.10000D+01
+ Steps =       1070 f-s =       1229 J-s =         25
+ Computed and reference solutions and absolute errors follow:
+  1    0.39247D-03    0.39247D-03    0.61172D-11
+  2    0.38850D-03    0.38850D-03    0.54210D-19
+  3    0.40000D-03    0.40000D-03    0.10842D-18
+  4    0.20000D-01    0.20000D-01    0.34694D-17
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        936 f-s =       1090 J-s =         22
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.17746D-10
+  2    0.40000D-01    0.40000D-01    0.15774D-11
+  3    0.40016D-01    0.40016D-01    0.14574D-11
+  4    0.40032D-01    0.40032D-01    0.14365D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        923 f-s =       1070 J-s =         22
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.13408D-10
+  2    0.40000D+00    0.40000D+00    0.11918D-10
+  3    0.41600D+00    0.41600D+00    0.11979D-10
+  4    0.43331D+00    0.43331D+00    0.12805D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.50000D+00
+    0.25000D+00
+    0.50000D-01
+    0.23810D-02
+ Steps =        736 f-s =        872 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.14755D-11
+  2    0.10000D+01    0.10000D+01    0.32792D-11
+  3    0.10000D+01    0.10000D+01    0.59863D-11
+  4    0.10000D+01    0.10000D+01    0.11799D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.50000D+00
+    0.12500D+00
+    0.73529D-02
+    0.26954D-04
+ Steps =        717 f-s =        831 J-s =         17
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.23557D-11
+  2    0.10000D+01    0.10000D+01    0.52353D-11
+  3    0.10000D+01    0.10000D+01    0.10391D-10
+  4    0.10008D+01    0.10008D+01    0.20969D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        769 f-s =       1067 J-s =         17
+ Computed and reference solutions and absolute errors follow:
+  1    0.99741D+00    0.99741D+00    0.55292D-09
+  2    0.10004D+01    0.10004D+01    0.44032D-09
+  3    0.10000D+01    0.10000D+01    0.83267D-14
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        984 f-s =       1326 J-s =         20
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.96467D-10
+  2    0.25166D+00    0.25166D+00    0.10458D-09
+  3    0.99707D+00    0.99707D+00    0.33849D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =       1189 f-s =       1394 J-s =         28
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.21838D-12
+  2    0.56309D-02    0.56309D-02    0.42934D-15
+  3    0.10007D+01    0.10007D+01    0.60840D-12
+  4    0.65374D+00    0.65374D+00    0.22504D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.70423D+00
+    0.00000D+00
+ Steps =        597 f-s =        778 J-s =         17
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.16025D-10
+  2    0.98757D+00    0.98757D+00    0.11293D-10
+  3   -0.51035D+00   -0.51035D+00    0.17109D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        721 f-s =       1116 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99964D+00   -0.99964D+00    0.87370D-09
+  2    0.99933D+00    0.99933D+00    0.10661D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         62
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         95
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        874 f-s =       1177 J-s =         22
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.13529D-10
+  2    0.99730D+00    0.99730D+00    0.91399D-10
+  3    0.10005D+01    0.10005D+01    0.28822D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =       1142 f-s =       1485 J-s =         35
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.29817D-11
+  2   -0.18937D-10   -0.72884D-12    0.18208D-10
+  3   -0.14896D-10    0.15348D-11    0.16431D-10
+  4    0.62419D-11   -0.10837D-11    0.73256D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.99010D+00
+    0.00000D+00
+ Steps =       1197 f-s =       1399 J-s =         25
+ Computed and reference solutions and absolute errors follow:
+  1   -0.57361D+00   -0.57361D+00    0.75668D-08
+  2    0.56344D-01    0.56344D-01    0.21768D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         62
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         95
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.61350D+00
+    0.62500D+00
+    0.00000D+00
+ Steps =        823 f-s =       1051 J-s =         21
+ Computed and reference solutions and absolute errors follow:
+  1    0.26092D-02    0.26092D-02    0.17820D-10
+  2    0.33231D-02    0.33231D-02    0.22453D-10
+  3    0.99911D+00    0.99911D+00    0.22316D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.00000D+00
+   -0.67797D-01
+   -0.64516D-01
+   -0.61350D-01
+ Steps =       3377 f-s =      10342 J-s =       1029
+ Computed and reference solutions and absolute errors follow:
+  1    0.69444D+00    0.69444D+00    0.10770D-09
+  2   -0.67797D+00   -0.67797D+00    0.10646D-09
+  3   -0.14875D-07   -0.14501D-07    0.37456D-09
+  4    0.13816D-07    0.13789D-07    0.26791D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        467 f-s =        592 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1    0.91936D+00    0.91936D+00    0.45442D-07
+  2    0.94674D+00    0.94674D+00    0.51402D-07
+  3    0.99777D+00    0.99777D+00    0.78000D-08
+  4    0.94183D+00    0.94183D+00    0.53915D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.62893D+00
+    0.00000D+00
+    0.49587D+00
+    0.10000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       2132 f-s =       3065 J-s =         45
+ Computed and reference solutions and absolute errors follow:
+  1    0.10009D+01    0.10009D+01    0.50261D-10
+  2    0.15223D-03    0.15223D-03    0.95039D-13
+  3    0.99887D+00    0.99887D+00    0.49891D-10
+  4    0.32420D-02    0.32420D-02    0.79094D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        128
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        563 f-s =        654 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.10430D-09
+  2    0.52568D+00    0.52568D+00    0.14003D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         66
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =       1169 f-s =       1343 J-s =         21
+ Computed and reference solutions and absolute errors follow:
+  1    0.80902D-07    0.80898D-07    0.39411D-11
+  2    0.23607D+00    0.23607D+00    0.74385D-11
+  3    0.20426D-04    0.20426D-04    0.99381D-12
+  4    0.99860D+00    0.99860D+00    0.23326D-10
+  5    0.99879D+00    0.99879D+00    0.32693D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        165
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        106
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.33898D-04
+    0.62147D-03
+    0.12780D-03
+ Nonnegativity will be enforced for this problem.
+ Steps =       2792 f-s =       4086 J-s =         57
+ Computed and reference solutions and absolute errors follow:
+  1    0.37443D-04    0.37443D-04    0.90021D-11
+  2    0.72895D-03    0.72895D-03    0.74371D-10
+  3    0.96463D-04    0.96463D-04    0.45026D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         95
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        100
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10015D+01
+    0.10001D+01
+    0.26527D+00
+    0.98220D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =       1137 f-s =       1581 J-s =         29
+ Computed and reference solutions and absolute errors follow:
+  1    0.50999D+00    0.50999D+00    0.43472D-09
+  2    0.44958D+00    0.44958D+00    0.39011D-09
+  3    0.99988D+00    0.99988D+00    0.86760D-09
+  4    0.99949D+00    0.99949D+00    0.15293D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        128
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        868 f-s =       1129 J-s =         25
+ Computed and reference solutions and absolute errors follow:
+  1    0.45400D-04    0.45400D-04    0.33883D-10
+  2    0.20613D-08    0.20612D-08    0.11427D-12
+  3   -0.18805D-65    0.28230D-55    0.28230D-55
+  4   -0.61154D-64    0.52358D-51    0.52358D-51
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =   1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =       1031 f-s =       1651 J-s =         30
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D+00    0.99999D+00    0.54345D-10
+  2    0.99999D+00    0.99999D+00    0.54344D-10
+  3    0.99999D+00    0.99999D+00    0.50665D-10
+  4    0.99999D+00    0.99999D+00    0.44968D-10
+  5    0.99999D+00    0.99999D+00    0.37897D-10
+  6    0.10000D+01    0.10000D+01    0.29978D-10
+  7    0.10000D+01    0.10000D+01    0.21713D-10
+  8    0.10000D+01    0.10000D+01    0.13585D-10
+  9    0.10000D+01    0.10000D+01    0.60383D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        425
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =       1072
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.12788D+00
+    0.10000D+01
+ Steps =       1065 f-s =       1400 J-s =         33
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.10665D-11
+  2    0.13685D-01    0.13685D-01    0.10759D-10
+  3    0.19229D+00    0.19229D+00    0.15153D-09
+  4    0.13534D+00    0.13534D+00    0.10912D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1447 f-s =       2395 J-s =         44
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.27667D-09
+  2    0.24331D-11    0.12659D-13    0.24204D-11
+  3    0.12343D-37    0.19115D-41    0.12341D-37
+  4    0.29508D-57    0.22774D-54    0.22745D-54
+  5    0.62633D-84    0.00000D+00    0.62633D-84
+  6   -0.11719-113    0.00000D+00    0.11719-113
+  7    0.11344-145    0.00000D+00    0.11344-145
+  8    0.20330-182    0.00000D+00    0.20330-182
+  9    0.19846-214    0.00000D+00    0.19846-214
+ 10   -0.10997-247    0.00000D+00    0.10997-247
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        500
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =       1271
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =       4319 f-s =       5322 J-s =        114
+ Computed and reference solutions and absolute errors follow:
+  1    0.98286D-09    0.10042D-08    0.21302D-10
+  2    0.20178D-08    0.20955D-08    0.77730D-10
+  3   -0.65015-305    0.00000D+00    0.65015-305
+  4   -0.10181-303   -0.18767D-79    0.18767D-79
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        789 f-s =       1136 J-s =         25
+ Computed and reference solutions and absolute errors follow:
+  1    0.36739D-43    0.61813D-30    0.61813D-30
+  2   -0.90065D-44    0.89637D-30    0.89637D-30
+  3   -0.23309D-31    0.27384D-26    0.27384D-26
+  4    0.20613D-08    0.20612D-08    0.18168D-12
+  5    0.45400D-04    0.45400D-04    0.52756D-10
+  6    0.13534D+00    0.13534D+00    0.89037D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        236
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        583
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        846 f-s =       1204 J-s =         26
+ Computed and reference solutions and absolute errors follow:
+  1   -0.24509D-36   -0.10768D-27    0.10768D-27
+  2   -0.23095D-36    0.54550D-27    0.54550D-27
+  3    0.11218D-31    0.27385D-26    0.27385D-26
+  4    0.20613D-08    0.20612D-08    0.17291D-12
+  5    0.45400D-04    0.45400D-04    0.50269D-10
+  6    0.13534D+00    0.13534D+00    0.84676D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        236
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        583
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1319 f-s =       1832 J-s =         38
+ Computed and reference solutions and absolute errors follow:
+  1   -0.27686D-11    0.11886D-21    0.27686D-11
+  2    0.15193D-10   -0.23259D-21    0.15193D-10
+  3    0.66251D-33    0.15179D-34    0.64733D-33
+  4    0.20612D-08    0.20612D-08    0.80781D-13
+  5    0.45400D-04    0.45400D-04    0.24207D-10
+  6    0.13534D+00    0.13534D+00    0.44172D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        236
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        583
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.76336D+00
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       5843 f-s =       7937 J-s =        156
+ Computed and reference solutions and absolute errors follow:
+  1    0.55627D-10   -0.23669D-13    0.55650D-10
+  2   -0.14811D-10    0.34489D-13    0.14845D-10
+  3    0.18048D-34    0.18049D-34    0.38394D-39
+  4    0.20612D-08    0.20612D-08    0.41136D-16
+  5    0.45400D-04    0.45400D-04    0.28112D-13
+  6    0.13534D+00    0.13534D+00    0.20844D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        236
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        583
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.98039D+00
+    0.97087D+00
+    0.10000D+01
+    0.10000D+01
+ Steps =       1070 f-s =       1386 J-s =         32
+ Computed and reference solutions and absolute errors follow:
+  1    0.39247D-03    0.39247D-03    0.61120D-11
+  2    0.38850D-03    0.38850D-03    0.54210D-19
+  3    0.40000D-03    0.40000D-03    0.00000D+00
+  4    0.20000D-01    0.20000D-01    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        936 f-s =       1235 J-s =         29
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.17742D-10
+  2    0.40000D-01    0.40000D-01    0.15770D-11
+  3    0.40016D-01    0.40016D-01    0.14573D-11
+  4    0.40032D-01    0.40032D-01    0.14367D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        923 f-s =       1208 J-s =         28
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.13238D-10
+  2    0.40000D+00    0.40000D+00    0.11767D-10
+  3    0.41600D+00    0.41600D+00    0.11827D-10
+  4    0.43331D+00    0.43331D+00    0.12640D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.50000D+00
+    0.25000D+00
+    0.50000D-01
+    0.23810D-02
+ Steps =        737 f-s =        989 J-s =         24
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.14568D-11
+  2    0.10000D+01    0.10000D+01    0.32375D-11
+  3    0.10000D+01    0.10000D+01    0.59098D-11
+  4    0.10000D+01    0.10000D+01    0.11648D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.50000D+00
+    0.12500D+00
+    0.73529D-02
+    0.26954D-04
+ Steps =        717 f-s =        948 J-s =         23
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.23589D-11
+  2    0.10000D+01    0.10000D+01    0.52424D-11
+  3    0.10000D+01    0.10000D+01    0.10406D-10
+  4    0.10008D+01    0.10008D+01    0.20998D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        712 f-s =       1117 J-s =         26
+ Computed and reference solutions and absolute errors follow:
+  1    0.99741D+00    0.99741D+00    0.60922D-09
+  2    0.10004D+01    0.10004D+01    0.46788D-09
+  3    0.10000D+01    0.10000D+01    0.38858D-14
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        910 f-s =       1332 J-s =         31
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.40262D-10
+  2    0.25166D+00    0.25166D+00    0.44839D-10
+  3    0.99707D+00    0.99707D+00    0.14127D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =       1213 f-s =       1622 J-s =         38
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.55733D-13
+  2    0.56309D-02    0.56309D-02    0.10842D-15
+  3    0.10007D+01    0.10007D+01    0.15277D-12
+  4    0.65374D+00    0.65374D+00    0.56732D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.70423D+00
+    0.00000D+00
+ Steps =        590 f-s =        851 J-s =         20
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.44093D-10
+  2    0.98757D+00    0.98757D+00    0.31060D-10
+  3   -0.51035D+00   -0.51035D+00    0.56216D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        705 f-s =       1136 J-s =         26
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99964D+00   -0.99964D+00    0.10051D-08
+  2    0.99933D+00    0.99933D+00    0.12698D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         68
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        183
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        839 f-s =       1244 J-s =         28
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.13497D-10
+  2    0.99730D+00    0.99730D+00    0.91202D-10
+  3    0.10005D+01    0.10005D+01    0.28767D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =       1273 f-s =       3339 J-s =        188
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.45519D-13
+  2    0.13991D-12   -0.72884D-12    0.86876D-12
+  3    0.55472D-12    0.15348D-11    0.98009D-12
+  4   -0.19064D-13   -0.10837D-11    0.10646D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.99010D+00
+    0.00000D+00
+ Steps =       1182 f-s =       1479 J-s =         36
+ Computed and reference solutions and absolute errors follow:
+  1   -0.57361D+00   -0.57361D+00    0.77815D-08
+  2    0.56344D-01    0.56344D-01    0.21912D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         68
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        183
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.61350D+00
+    0.62500D+00
+    0.00000D+00
+ Steps =        788 f-s =       1083 J-s =         25
+ Computed and reference solutions and absolute errors follow:
+  1    0.26092D-02    0.26092D-02    0.33295D-10
+  2    0.33231D-02    0.33231D-02    0.42277D-10
+  3    0.99911D+00    0.99911D+00    0.72006D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.00000D+00
+   -0.67797D-01
+   -0.64516D-01
+   -0.61350D-01
+ Steps =       2844 f-s =      10037 J-s =        678
+ Computed and reference solutions and absolute errors follow:
+  1    0.69444D+00    0.69444D+00    0.48654D-10
+  2   -0.67797D+00   -0.67797D+00    0.47513D-10
+  3   -0.14592D-07   -0.14501D-07    0.91198D-10
+  4    0.13874D-07    0.13789D-07    0.85234D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        480 f-s =        714 J-s =         17
+ Computed and reference solutions and absolute errors follow:
+  1    0.91936D+00    0.91936D+00    0.45450D-07
+  2    0.94674D+00    0.94674D+00    0.51414D-07
+  3    0.99777D+00    0.99777D+00    0.78040D-08
+  4    0.94183D+00    0.94183D+00    0.53927D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.62893D+00
+    0.00000D+00
+    0.49587D+00
+    0.10000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       2033 f-s =       3441 J-s =         75
+ Computed and reference solutions and absolute errors follow:
+  1    0.10009D+01    0.10009D+01    0.58758D-10
+  2    0.15223D-03    0.15223D-03    0.11070D-12
+  3    0.99887D+00    0.99887D+00    0.58322D-10
+  4    0.32420D-02    0.32420D-02    0.92123D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        148
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        351
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        548 f-s =        695 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.98842D-10
+  2    0.52568D+00    0.52568D+00    0.13270D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         72
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        185
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =       1173 f-s =       1618 J-s =         35
+ Computed and reference solutions and absolute errors follow:
+  1    0.80902D-07    0.80898D-07    0.39396D-11
+  2    0.23607D+00    0.23607D+00    0.86375D-10
+  3    0.20426D-04    0.20426D-04    0.10003D-11
+  4    0.99860D+00    0.99860D+00    0.31057D-09
+  5    0.99879D+00    0.99879D+00    0.59680D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        195
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        461
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.33898D-04
+    0.62147D-03
+    0.12780D-03
+ Nonnegativity will be enforced for this problem.
+ Steps =       2718 f-s =       4357 J-s =         98
+ Computed and reference solutions and absolute errors follow:
+  1    0.37443D-04    0.37443D-04    0.20392D-10
+  2    0.72895D-03    0.72895D-03    0.74189D-10
+  3    0.96463D-04    0.96463D-04    0.64783D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        259
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10015D+01
+    0.10001D+01
+    0.26527D+00
+    0.98220D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =       1049 f-s =       1685 J-s =         39
+ Computed and reference solutions and absolute errors follow:
+  1    0.50999D+00    0.50999D+00    0.28988D-09
+  2    0.44958D+00    0.44958D+00    0.26013D-09
+  3    0.99988D+00    0.99988D+00    0.57853D-09
+  4    0.99949D+00    0.99949D+00    0.10197D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        148
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        351
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        868 f-s =       1013 J-s =         21
+ Computed and reference solutions and absolute errors follow:
+  1    0.45400D-04    0.45400D-04    0.33886D-10
+  2    0.20613D-08    0.20612D-08    0.11428D-12
+  3   -0.18641D-65    0.28230D-55    0.28230D-55
+  4   -0.60003D-64    0.52358D-51    0.52358D-51
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =   1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =       1026 f-s =       1326 J-s =         25
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D+00    0.99999D+00    0.50967D-10
+  2    0.99999D+00    0.99999D+00    0.50966D-10
+  3    0.99999D+00    0.99999D+00    0.47514D-10
+  4    0.99999D+00    0.99999D+00    0.42171D-10
+  5    0.99999D+00    0.99999D+00    0.35541D-10
+  6    0.10000D+01    0.10000D+01    0.28114D-10
+  7    0.10000D+01    0.10000D+01    0.20363D-10
+  8    0.10000D+01    0.10000D+01    0.12741D-10
+  9    0.10000D+01    0.10000D+01    0.56627D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        551
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        109
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.12788D+00
+    0.10000D+01
+ Steps =       1065 f-s =       1228 J-s =         23
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.10515D-11
+  2    0.13685D-01    0.13685D-01    0.10608D-10
+  3    0.19229D+00    0.19229D+00    0.14940D-09
+  4    0.13534D+00    0.13534D+00    0.10759D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1447 f-s =       1825 J-s =         31
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.27668D-09
+  2    0.24333D-11    0.12659D-13    0.24207D-11
+  3    0.12344D-37    0.19115D-41    0.12342D-37
+  4    0.29516D-57    0.22774D-54    0.22745D-54
+  5    0.62662D-84    0.00000D+00    0.62662D-84
+  6   -0.11726-113    0.00000D+00    0.11726-113
+  7    0.11345-145    0.00000D+00    0.11345-145
+  8    0.19805-182    0.00000D+00    0.19805-182
+  9    0.19867-214    0.00000D+00    0.19867-214
+ 10   -0.11006-247    0.00000D+00    0.11006-247
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        660
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        111
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =       4319 f-s =       4722 J-s =         78
+ Computed and reference solutions and absolute errors follow:
+  1    0.98293D-09    0.10042D-08    0.21236D-10
+  2    0.20201D-08    0.20955D-08    0.75409D-10
+  3   -0.90579-305    0.00000D+00    0.90579-305
+  4   -0.10666-303   -0.18767D-79    0.18767D-79
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        789 f-s =        950 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1    0.36739D-43    0.61813D-30    0.61813D-30
+  2   -0.90070D-44    0.89637D-30    0.89637D-30
+  3   -0.23309D-31    0.27384D-26    0.27384D-26
+  4    0.20613D-08    0.20612D-08    0.18168D-12
+  5    0.45400D-04    0.45400D-04    0.52756D-10
+  6    0.13534D+00    0.13534D+00    0.89031D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        284
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        846 f-s =       1006 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1   -0.24510D-36   -0.10768D-27    0.10768D-27
+  2   -0.23096D-36    0.54550D-27    0.54550D-27
+  3    0.11218D-31    0.27385D-26    0.27385D-26
+  4    0.20613D-08    0.20612D-08    0.17291D-12
+  5    0.45400D-04    0.45400D-04    0.50269D-10
+  6    0.13534D+00    0.13534D+00    0.84672D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        284
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1319 f-s =       1544 J-s =         28
+ Computed and reference solutions and absolute errors follow:
+  1   -0.28466D-11    0.11886D-21    0.28466D-11
+  2    0.15176D-10   -0.23259D-21    0.15176D-10
+  3    0.66180D-33    0.15179D-34    0.64663D-33
+  4    0.20612D-08    0.20612D-08    0.80782D-13
+  5    0.45400D-04    0.45400D-04    0.24207D-10
+  6    0.13534D+00    0.13534D+00    0.44165D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        284
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.76336D+00
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       5843 f-s =       6685 J-s =        104
+ Computed and reference solutions and absolute errors follow:
+  1    0.59987D-10   -0.23669D-13    0.60011D-10
+  2   -0.32389D-10    0.34489D-13    0.32423D-10
+  3    0.18048D-34    0.18049D-34    0.38106D-39
+  4    0.20612D-08    0.20612D-08    0.40837D-16
+  5    0.45400D-04    0.45400D-04    0.27897D-13
+  6    0.13534D+00    0.13534D+00    0.12240D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        284
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.98039D+00
+    0.97087D+00
+    0.10000D+01
+    0.10000D+01
+ Steps =       1070 f-s =       1229 J-s =         25
+ Computed and reference solutions and absolute errors follow:
+  1    0.39247D-03    0.39247D-03    0.61172D-11
+  2    0.38850D-03    0.38850D-03    0.54210D-19
+  3    0.40000D-03    0.40000D-03    0.10842D-18
+  4    0.20000D-01    0.20000D-01    0.34694D-17
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        936 f-s =       1090 J-s =         22
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.17746D-10
+  2    0.40000D-01    0.40000D-01    0.15774D-11
+  3    0.40016D-01    0.40016D-01    0.14574D-11
+  4    0.40032D-01    0.40032D-01    0.14365D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        923 f-s =       1070 J-s =         22
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.13408D-10
+  2    0.40000D+00    0.40000D+00    0.11918D-10
+  3    0.41600D+00    0.41600D+00    0.11979D-10
+  4    0.43331D+00    0.43331D+00    0.12805D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.50000D+00
+    0.25000D+00
+    0.50000D-01
+    0.23810D-02
+ Steps =        736 f-s =        872 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.14755D-11
+  2    0.10000D+01    0.10000D+01    0.32792D-11
+  3    0.10000D+01    0.10000D+01    0.59863D-11
+  4    0.10000D+01    0.10000D+01    0.11799D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.50000D+00
+    0.12500D+00
+    0.73529D-02
+    0.26954D-04
+ Steps =        717 f-s =        831 J-s =         17
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.23557D-11
+  2    0.10000D+01    0.10000D+01    0.52353D-11
+  3    0.10000D+01    0.10000D+01    0.10391D-10
+  4    0.10008D+01    0.10008D+01    0.20969D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        769 f-s =       1067 J-s =         17
+ Computed and reference solutions and absolute errors follow:
+  1    0.99741D+00    0.99741D+00    0.55292D-09
+  2    0.10004D+01    0.10004D+01    0.44032D-09
+  3    0.10000D+01    0.10000D+01    0.83267D-14
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        984 f-s =       1326 J-s =         20
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.96467D-10
+  2    0.25166D+00    0.25166D+00    0.10458D-09
+  3    0.99707D+00    0.99707D+00    0.33849D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =       1189 f-s =       1394 J-s =         28
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.21838D-12
+  2    0.56309D-02    0.56309D-02    0.42934D-15
+  3    0.10007D+01    0.10007D+01    0.60840D-12
+  4    0.65374D+00    0.65374D+00    0.22504D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.70423D+00
+    0.00000D+00
+ Steps =        597 f-s =        778 J-s =         17
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.16025D-10
+  2    0.98757D+00    0.98757D+00    0.11293D-10
+  3   -0.51035D+00   -0.51035D+00    0.17109D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        721 f-s =       1116 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99964D+00   -0.99964D+00    0.87370D-09
+  2    0.99933D+00    0.99933D+00    0.10661D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         68
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         95
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        874 f-s =       1177 J-s =         22
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.13529D-10
+  2    0.99730D+00    0.99730D+00    0.91399D-10
+  3    0.10005D+01    0.10005D+01    0.28822D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =       1142 f-s =       1485 J-s =         35
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.29817D-11
+  2   -0.18937D-10   -0.72884D-12    0.18208D-10
+  3   -0.14896D-10    0.15348D-11    0.16431D-10
+  4    0.62419D-11   -0.10837D-11    0.73256D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.99010D+00
+    0.00000D+00
+ Steps =       1197 f-s =       1399 J-s =         25
+ Computed and reference solutions and absolute errors follow:
+  1   -0.57361D+00   -0.57361D+00    0.75668D-08
+  2    0.56344D-01    0.56344D-01    0.21768D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         68
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         95
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.61350D+00
+    0.62500D+00
+    0.00000D+00
+ Steps =        823 f-s =       1051 J-s =         21
+ Computed and reference solutions and absolute errors follow:
+  1    0.26092D-02    0.26092D-02    0.17820D-10
+  2    0.33231D-02    0.33231D-02    0.22453D-10
+  3    0.99911D+00    0.99911D+00    0.22316D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.00000D+00
+   -0.67797D-01
+   -0.64516D-01
+   -0.61350D-01
+ Steps =       3377 f-s =      10342 J-s =       1029
+ Computed and reference solutions and absolute errors follow:
+  1    0.69444D+00    0.69444D+00    0.10770D-09
+  2   -0.67797D+00   -0.67797D+00    0.10646D-09
+  3   -0.14875D-07   -0.14501D-07    0.37456D-09
+  4    0.13816D-07    0.13789D-07    0.26791D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        467 f-s =        592 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1    0.91936D+00    0.91936D+00    0.45442D-07
+  2    0.94674D+00    0.94674D+00    0.51402D-07
+  3    0.99777D+00    0.99777D+00    0.78000D-08
+  4    0.94183D+00    0.94183D+00    0.53915D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.62893D+00
+    0.00000D+00
+    0.49587D+00
+    0.10000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       2132 f-s =       3065 J-s =         45
+ Computed and reference solutions and absolute errors follow:
+  1    0.10009D+01    0.10009D+01    0.50261D-10
+  2    0.15223D-03    0.15223D-03    0.95039D-13
+  3    0.99887D+00    0.99887D+00    0.49891D-10
+  4    0.32420D-02    0.32420D-02    0.79094D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        563 f-s =        654 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.10430D-09
+  2    0.52568D+00    0.52568D+00    0.14003D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         72
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =       1169 f-s =       1343 J-s =         21
+ Computed and reference solutions and absolute errors follow:
+  1    0.80902D-07    0.80898D-07    0.39411D-11
+  2    0.23607D+00    0.23607D+00    0.74385D-11
+  3    0.20426D-04    0.20426D-04    0.99381D-12
+  4    0.99860D+00    0.99860D+00    0.23326D-10
+  5    0.99879D+00    0.99879D+00    0.32693D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        225
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        106
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.33898D-04
+    0.62147D-03
+    0.12780D-03
+ Nonnegativity will be enforced for this problem.
+ Steps =       2792 f-s =       4086 J-s =         57
+ Computed and reference solutions and absolute errors follow:
+  1    0.37443D-04    0.37443D-04    0.90021D-11
+  2    0.72895D-03    0.72895D-03    0.74371D-10
+  3    0.96463D-04    0.96463D-04    0.45026D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        113
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        100
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10015D+01
+    0.10001D+01
+    0.26527D+00
+    0.98220D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =       1137 f-s =       1581 J-s =         29
+ Computed and reference solutions and absolute errors follow:
+  1    0.50999D+00    0.50999D+00    0.43472D-09
+  2    0.44958D+00    0.44958D+00    0.39011D-09
+  3    0.99988D+00    0.99988D+00    0.86760D-09
+  4    0.99949D+00    0.99949D+00    0.15293D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1239 f-s =       1417 J-s =         28
+ Computed and reference solutions and absolute errors follow:
+  1    0.45400D-04    0.45400D-04    0.68578D-11
+  2    0.20612D-08    0.20612D-08    0.22718D-13
+  3    0.46240D-83    0.28230D-55    0.28230D-55
+  4   -0.54017D-81    0.52358D-51    0.52358D-51
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =   1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =       1518 f-s =       1898 J-s =         33
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D+00    0.99999D+00    0.13180D-10
+  2    0.99999D+00    0.99999D+00    0.13179D-10
+  3    0.99999D+00    0.99999D+00    0.12287D-10
+  4    0.99999D+00    0.99999D+00    0.10905D-10
+  5    0.99999D+00    0.99999D+00    0.91910D-11
+  6    0.10000D+01    0.10000D+01    0.72703D-11
+  7    0.10000D+01    0.10000D+01    0.52659D-11
+  8    0.10000D+01    0.10000D+01    0.32949D-11
+  9    0.10000D+01    0.10000D+01    0.14644D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        335
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        109
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.12788D+00
+    0.10000D+01
+ Steps =       1595 f-s =       1812 J-s =         33
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.67727D-13
+  2    0.13685D-01    0.13685D-01    0.68361D-12
+  3    0.19229D+00    0.19229D+00    0.96231D-11
+  4    0.13534D+00    0.13534D+00    0.68976D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       2088 f-s =       2581 J-s =         42
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.20548D-10
+  2    0.17334D-13    0.12659D-13    0.46754D-14
+  3    0.13242D-46    0.19115D-41    0.19115D-41
+  4   -0.20177D-75    0.22774D-54    0.22774D-54
+  5    0.88166-109    0.00000D+00    0.88166-109
+  6   -0.91781-148    0.00000D+00    0.91781-148
+  7   -0.28134-190    0.00000D+00    0.28134-190
+  8    0.74098-237    0.00000D+00    0.74098-237
+  9   -0.38761-283    0.00000D+00    0.38761-283
+ 10    0.00000D+00    0.00000D+00    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        390
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        111
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =       6206 f-s =       6769 J-s =        111
+ Computed and reference solutions and absolute errors follow:
+  1    0.99916D-09    0.10042D-08    0.50040D-11
+  2    0.20868D-08    0.20955D-08    0.86494D-11
+  3    0.00000D+00    0.00000D+00    0.00000D+00
+  4    0.00000D+00   -0.18767D-79    0.18767D-79
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1126 f-s =       1328 J-s =         24
+ Computed and reference solutions and absolute errors follow:
+  1   -0.32341D-55    0.61813D-30    0.61813D-30
+  2    0.70205D-56    0.89637D-30    0.89637D-30
+  3    0.19970D-34    0.27384D-26    0.27384D-26
+  4    0.20612D-08    0.20612D-08    0.27424D-13
+  5    0.45400D-04    0.45400D-04    0.82190D-11
+  6    0.13534D+00    0.13534D+00    0.15070D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        194
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1254 f-s =       1463 J-s =         27
+ Computed and reference solutions and absolute errors follow:
+  1   -0.10535D-48   -0.10768D-27    0.10768D-27
+  2    0.74038D-50    0.54550D-27    0.54550D-27
+  3    0.21256D-34    0.27385D-26    0.27385D-26
+  4    0.20612D-08    0.20612D-08    0.26897D-13
+  5    0.45400D-04    0.45400D-04    0.80713D-11
+  6    0.13534D+00    0.13534D+00    0.14461D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        194
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       2001 f-s =       2293 J-s =         39
+ Computed and reference solutions and absolute errors follow:
+  1    0.12058D-20    0.11886D-21    0.10870D-20
+  2   -0.21665D-21   -0.23259D-21    0.15943D-22
+  3    0.20709D-34    0.15179D-34    0.55302D-35
+  4    0.20612D-08    0.20612D-08    0.22584D-13
+  5    0.45400D-04    0.45400D-04    0.66490D-11
+  6    0.13534D+00    0.13534D+00    0.14001D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        194
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.76336D+00
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       7522 f-s =       8540 J-s =        133
+ Computed and reference solutions and absolute errors follow:
+  1    0.57897D-12   -0.23669D-13    0.60264D-12
+  2    0.37572D-11    0.34489D-13    0.37228D-11
+  3    0.18048D-34    0.18049D-34    0.35107D-39
+  4    0.20612D-08    0.20612D-08    0.37693D-16
+  5    0.45400D-04    0.45400D-04    0.25787D-13
+  6    0.13534D+00    0.13534D+00    0.32613D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        194
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.98039D+00
+    0.97087D+00
+    0.10000D+01
+    0.10000D+01
+ Steps =       1545 f-s =       1746 J-s =         34
+ Computed and reference solutions and absolute errors follow:
+  1    0.39247D-03    0.39247D-03    0.93097D-12
+  2    0.38850D-03    0.38850D-03    0.54210D-19
+  3    0.40000D-03    0.40000D-03    0.54210D-19
+  4    0.20000D-01    0.20000D-01    0.34694D-17
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1384 f-s =       1577 J-s =         31
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.35293D-11
+  2    0.40000D-01    0.40000D-01    0.31371D-12
+  3    0.40016D-01    0.40016D-01    0.28984D-12
+  4    0.40032D-01    0.40032D-01    0.28566D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1380 f-s =       1568 J-s =         30
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.11434D-11
+  2    0.40000D+00    0.40000D+00    0.10166D-11
+  3    0.41600D+00    0.41600D+00    0.10217D-11
+  4    0.43331D+00    0.43331D+00    0.10922D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.50000D+00
+    0.25000D+00
+    0.50000D-01
+    0.23810D-02
+ Steps =       1077 f-s =       1225 J-s =         24
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.20683D-12
+  2    0.10000D+01    0.10000D+01    0.46030D-12
+  3    0.10000D+01    0.10000D+01    0.84011D-12
+  4    0.10000D+01    0.10000D+01    0.16558D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.50000D+00
+    0.12500D+00
+    0.73529D-02
+    0.26954D-04
+ Steps =       1016 f-s =       1165 J-s =         24
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.35516D-12
+  2    0.10000D+01    0.10000D+01    0.78948D-12
+  3    0.10000D+01    0.10000D+01    0.15675D-11
+  4    0.10008D+01    0.10008D+01    0.31619D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        896 f-s =       1167 J-s =         20
+ Computed and reference solutions and absolute errors follow:
+  1    0.99741D+00    0.99741D+00    0.14691D-09
+  2    0.10004D+01    0.10004D+01    0.11997D-09
+  3    0.10000D+01    0.10000D+01    0.88818D-14
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =       1204 f-s =       1491 J-s =         24
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.17406D-11
+  2    0.25166D+00    0.25166D+00    0.20231D-11
+  3    0.99707D+00    0.99707D+00    0.61038D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =       1730 f-s =       1984 J-s =         38
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.58942D-12
+  2    0.56309D-02    0.56309D-02    0.11467D-14
+  3    0.10007D+01    0.10007D+01    0.16391D-11
+  4    0.65374D+00    0.65374D+00    0.60996D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.70423D+00
+    0.00000D+00
+ Steps =        788 f-s =        999 J-s =         21
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.33100D-10
+  2    0.98757D+00    0.98757D+00    0.23315D-10
+  3   -0.51035D+00   -0.51035D+00    0.34421D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        939 f-s =       1355 J-s =         22
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99964D+00   -0.99964D+00    0.12166D-09
+  2    0.99933D+00    0.99933D+00    0.12896D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         62
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         95
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =       1145 f-s =       1449 J-s =         28
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.18814D-11
+  2    0.99730D+00    0.99730D+00    0.12703D-10
+  3    0.10005D+01    0.10005D+01    0.40026D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =       1690 f-s =       2674 J-s =        142
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.13656D-13
+  2    0.10394D-15   -0.72884D-12    0.72895D-12
+  3   -0.53587D-13    0.15348D-11    0.15884D-11
+  4   -0.42764D-13   -0.10837D-11    0.10409D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.99010D+00
+    0.00000D+00
+ Steps =       1749 f-s =       1981 J-s =         33
+ Computed and reference solutions and absolute errors follow:
+  1   -0.57361D+00   -0.57361D+00    0.11729D-08
+  2    0.56344D-01    0.56344D-01    0.33781D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         62
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         95
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.61350D+00
+    0.62500D+00
+    0.00000D+00
+ Steps =       1086 f-s =       1299 J-s =         25
+ Computed and reference solutions and absolute errors follow:
+  1    0.26092D-02    0.26092D-02    0.10044D-10
+  2    0.33231D-02    0.33231D-02    0.12769D-10
+  3    0.99911D+00    0.99911D+00    0.20814D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.00000D+00
+   -0.67797D-01
+   -0.64516D-01
+   -0.61350D-01
+ Steps =       4956 f-s =      14098 J-s =       1323
+ Computed and reference solutions and absolute errors follow:
+  1    0.69444D+00    0.69444D+00    0.13183D-09
+  2   -0.67797D+00   -0.67797D+00    0.12927D-09
+  3   -0.14800D-07   -0.14501D-07    0.29906D-09
+  4    0.13972D-07    0.13789D-07    0.18251D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        669 f-s =        834 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1    0.91936D+00    0.91936D+00    0.45448D-07
+  2    0.94674D+00    0.94674D+00    0.51423D-07
+  3    0.99777D+00    0.99777D+00    0.78153D-08
+  4    0.94183D+00    0.94183D+00    0.53936D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.62893D+00
+    0.00000D+00
+    0.49587D+00
+    0.10000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       2895 f-s =       4062 J-s =         55
+ Computed and reference solutions and absolute errors follow:
+  1    0.10009D+01    0.10009D+01    0.91980D-11
+  2    0.15223D-03    0.15223D-03    0.17341D-13
+  3    0.99887D+00    0.99887D+00    0.91304D-11
+  4    0.32420D-02    0.32420D-02    0.14432D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        128
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        778 f-s =        894 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.20677D-10
+  2    0.52568D+00    0.52568D+00    0.27760D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         66
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =       1680 f-s =       1900 J-s =         29
+ Computed and reference solutions and absolute errors follow:
+  1    0.80902D-07    0.80898D-07    0.39396D-11
+  2    0.23607D+00    0.23607D+00    0.39968D-14
+  3    0.20426D-04    0.20426D-04    0.99390D-12
+  4    0.99860D+00    0.99860D+00    0.11102D-13
+  5    0.99879D+00    0.99879D+00    0.48531D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        165
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        106
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.33898D-04
+    0.62147D-03
+    0.12780D-03
+ Nonnegativity will be enforced for this problem.
+ Steps =       3881 f-s =       5628 J-s =         72
+ Computed and reference solutions and absolute errors follow:
+  1    0.37443D-04    0.37443D-04    0.88075D-12
+  2    0.72895D-03    0.72895D-03    0.21217D-10
+  3    0.96463D-04    0.96463D-04    0.17429D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         95
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        100
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10015D+01
+    0.10001D+01
+    0.26527D+00
+    0.98220D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =       1458 f-s =       1999 J-s =         48
+ Computed and reference solutions and absolute errors follow:
+  1    0.50999D+00    0.50999D+00    0.29548D-09
+  2    0.44958D+00    0.44958D+00    0.26516D-09
+  3    0.99988D+00    0.99988D+00    0.58973D-09
+  4    0.99949D+00    0.99949D+00    0.10400D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        128
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1239 f-s =       1593 J-s =         36
+ Computed and reference solutions and absolute errors follow:
+  1    0.45400D-04    0.45400D-04    0.68577D-11
+  2    0.20612D-08    0.20612D-08    0.22718D-13
+  3    0.46116D-83    0.28230D-55    0.28230D-55
+  4   -0.53930D-81    0.52358D-51    0.52358D-51
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =   1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =       1523 f-s =       2404 J-s =         44
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D+00    0.99999D+00    0.13297D-10
+  2    0.99999D+00    0.99999D+00    0.13297D-10
+  3    0.99999D+00    0.99999D+00    0.12396D-10
+  4    0.99999D+00    0.99999D+00    0.11003D-10
+  5    0.99999D+00    0.99999D+00    0.92727D-11
+  6    0.10000D+01    0.10000D+01    0.73350D-11
+  7    0.10000D+01    0.10000D+01    0.53126D-11
+  8    0.10000D+01    0.10000D+01    0.33242D-11
+  9    0.10000D+01    0.10000D+01    0.14775D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        425
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =       1072
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.12788D+00
+    0.10000D+01
+ Steps =       1603 f-s =       2050 J-s =         45
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.61293D-13
+  2    0.13685D-01    0.13685D-01    0.61867D-12
+  3    0.19229D+00    0.19229D+00    0.87089D-11
+  4    0.13534D+00    0.13534D+00    0.62417D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       2088 f-s =       3321 J-s =         58
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.20544D-10
+  2    0.17334D-13    0.12659D-13    0.46750D-14
+  3    0.13204D-46    0.19115D-41    0.19115D-41
+  4   -0.20126D-75    0.22774D-54    0.22774D-54
+  5    0.87474-109    0.00000D+00    0.87474-109
+  6   -0.91112-148    0.00000D+00    0.91112-148
+  7   -0.27914-190    0.00000D+00    0.27914-190
+  8    0.73439-237    0.00000D+00    0.73439-237
+  9   -0.38509-283    0.00000D+00    0.38509-283
+ 10    0.00000D+00    0.00000D+00    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        500
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =       1271
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =       6206 f-s =       7597 J-s =        159
+ Computed and reference solutions and absolute errors follow:
+  1    0.99916D-09    0.10042D-08    0.50031D-11
+  2    0.20868D-08    0.20955D-08    0.86476D-11
+  3    0.00000D+00    0.00000D+00    0.00000D+00
+  4    0.00000D+00   -0.18767D-79    0.18767D-79
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1126 f-s =       1556 J-s =         31
+ Computed and reference solutions and absolute errors follow:
+  1   -0.32348D-55    0.61813D-30    0.61813D-30
+  2    0.71849D-56    0.89637D-30    0.89637D-30
+  3    0.19968D-34    0.27384D-26    0.27384D-26
+  4    0.20612D-08    0.20612D-08    0.27425D-13
+  5    0.45400D-04    0.45400D-04    0.82192D-11
+  6    0.13534D+00    0.13534D+00    0.15074D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        236
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        583
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1254 f-s =       1733 J-s =         36
+ Computed and reference solutions and absolute errors follow:
+  1   -0.10535D-48   -0.10768D-27    0.10768D-27
+  2    0.73977D-50    0.54550D-27    0.54550D-27
+  3    0.21256D-34    0.27385D-26    0.27385D-26
+  4    0.20612D-08    0.20612D-08    0.26897D-13
+  5    0.45400D-04    0.45400D-04    0.80714D-11
+  6    0.13534D+00    0.13534D+00    0.14472D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        236
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        583
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       2001 f-s =       2707 J-s =         54
+ Computed and reference solutions and absolute errors follow:
+  1    0.12047D-20    0.11886D-21    0.10859D-20
+  2   -0.21584D-21   -0.23259D-21    0.16750D-22
+  3    0.20708D-34    0.15179D-34    0.55298D-35
+  4    0.20612D-08    0.20612D-08    0.22582D-13
+  5    0.45400D-04    0.45400D-04    0.66484D-11
+  6    0.13534D+00    0.13534D+00    0.13997D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        236
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        583
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.76336D+00
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       7506 f-s =      10173 J-s =        197
+ Computed and reference solutions and absolute errors follow:
+  1   -0.88593D-11   -0.23669D-13    0.88356D-11
+  2   -0.19996D-10    0.34489D-13    0.20030D-10
+  3    0.18048D-34    0.18049D-34    0.26526D-39
+  4    0.20612D-08    0.20612D-08    0.28814D-16
+  5    0.45400D-04    0.45400D-04    0.19761D-13
+  6    0.13534D+00    0.13534D+00    0.34694D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        236
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        583
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.98039D+00
+    0.97087D+00
+    0.10000D+01
+    0.10000D+01
+ Steps =       1545 f-s =       1987 J-s =         47
+ Computed and reference solutions and absolute errors follow:
+  1    0.39247D-03    0.39247D-03    0.99165D-12
+  2    0.38850D-03    0.38850D-03    0.54210D-19
+  3    0.40000D-03    0.40000D-03    0.10842D-18
+  4    0.20000D-01    0.20000D-01    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1384 f-s =       1759 J-s =         38
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.35295D-11
+  2    0.40000D-01    0.40000D-01    0.31373D-12
+  3    0.40016D-01    0.40016D-01    0.28993D-12
+  4    0.40032D-01    0.40032D-01    0.28578D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1380 f-s =       1761 J-s =         39
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.11307D-11
+  2    0.40000D+00    0.40000D+00    0.10053D-11
+  3    0.41600D+00    0.41600D+00    0.10104D-11
+  4    0.43331D+00    0.43331D+00    0.10800D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.50000D+00
+    0.25000D+00
+    0.50000D-01
+    0.23810D-02
+ Steps =       1077 f-s =       1386 J-s =         32
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.20850D-12
+  2    0.10000D+01    0.10000D+01    0.46374D-12
+  3    0.10000D+01    0.10000D+01    0.84666D-12
+  4    0.10000D+01    0.10000D+01    0.16690D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.50000D+00
+    0.12500D+00
+    0.73529D-02
+    0.26954D-04
+ Steps =       1016 f-s =       1310 J-s =         30
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.38725D-12
+  2    0.10000D+01    0.10000D+01    0.86098D-12
+  3    0.10000D+01    0.10000D+01    0.17092D-11
+  4    0.10008D+01    0.10008D+01    0.34486D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        872 f-s =       1274 J-s =         31
+ Computed and reference solutions and absolute errors follow:
+  1    0.99741D+00    0.99741D+00    0.18243D-09
+  2    0.10004D+01    0.10004D+01    0.15060D-09
+  3    0.10000D+01    0.10000D+01    0.67724D-14
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =       1208 f-s =       1701 J-s =         43
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.83500D-12
+  2    0.25166D+00    0.25166D+00    0.89911D-12
+  3    0.99707D+00    0.99707D+00    0.29291D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =       1733 f-s =       2263 J-s =         54
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.16909D-12
+  2    0.56309D-02    0.56309D-02    0.32700D-15
+  3    0.10007D+01    0.10007D+01    0.46696D-12
+  4    0.65374D+00    0.65374D+00    0.17408D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.70423D+00
+    0.00000D+00
+ Steps =        764 f-s =       1054 J-s =         24
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.83209D-11
+  2    0.98757D+00    0.98757D+00    0.58624D-11
+  3   -0.51035D+00   -0.51035D+00    0.85114D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =       1009 f-s =       1556 J-s =         36
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99964D+00   -0.99964D+00    0.11626D-09
+  2    0.99933D+00    0.99933D+00    0.13513D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         68
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        183
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =       1157 f-s =       1600 J-s =         38
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.19426D-11
+  2    0.99730D+00    0.99730D+00    0.13117D-10
+  3    0.10005D+01    0.10005D+01    0.41331D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =       1731 f-s =       3293 J-s =        143
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.14211D-13
+  2    0.32612D-13   -0.72884D-12    0.76146D-12
+  3   -0.12147D-13    0.15348D-11    0.15470D-11
+  4   -0.58223D-13   -0.10837D-11    0.10255D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.99010D+00
+    0.00000D+00
+ Steps =       1758 f-s =       2138 J-s =         53
+ Computed and reference solutions and absolute errors follow:
+  1   -0.57361D+00   -0.57361D+00    0.12932D-08
+  2    0.56344D-01    0.56344D-01    0.36665D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         68
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        183
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.61350D+00
+    0.62500D+00
+    0.00000D+00
+ Steps =       1079 f-s =       1379 J-s =         32
+ Computed and reference solutions and absolute errors follow:
+  1    0.26092D-02    0.26092D-02    0.10049D-10
+  2    0.33231D-02    0.33231D-02    0.12759D-10
+  3    0.99911D+00    0.99911D+00    0.32006D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.00000D+00
+   -0.67797D-01
+   -0.64516D-01
+   -0.61350D-01
+ Steps =       5150 f-s =      21439 J-s =       1518
+ Computed and reference solutions and absolute errors follow:
+  1    0.69444D+00    0.69444D+00    0.38088D-09
+  2   -0.67797D+00   -0.67797D+00    0.37184D-09
+  3   -0.15209D-07   -0.14501D-07    0.70771D-09
+  4    0.14462D-07    0.13789D-07    0.67295D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        664 f-s =        923 J-s =         20
+ Computed and reference solutions and absolute errors follow:
+  1    0.91936D+00    0.91936D+00    0.45448D-07
+  2    0.94674D+00    0.94674D+00    0.51423D-07
+  3    0.99777D+00    0.99777D+00    0.78155D-08
+  4    0.94183D+00    0.94183D+00    0.53936D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.62893D+00
+    0.00000D+00
+    0.49587D+00
+    0.10000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       2646 f-s =       4201 J-s =         84
+ Computed and reference solutions and absolute errors follow:
+  1    0.10009D+01    0.10009D+01    0.55835D-11
+  2    0.15223D-03    0.15223D-03    0.10518D-13
+  3    0.99887D+00    0.99887D+00    0.55427D-11
+  4    0.32420D-02    0.32420D-02    0.87560D-14
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        148
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        351
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        779 f-s =        968 J-s =         26
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.16542D-10
+  2    0.52568D+00    0.52568D+00    0.22209D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         72
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        185
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =       1674 f-s =       2232 J-s =         49
+ Computed and reference solutions and absolute errors follow:
+  1    0.80902D-07    0.80898D-07    0.39535D-11
+  2    0.23607D+00    0.23607D+00    0.11805D-10
+  3    0.20426D-04    0.20426D-04    0.99635D-12
+  4    0.99860D+00    0.99860D+00    0.53804D-10
+  5    0.99879D+00    0.99879D+00    0.91025D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        195
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        461
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.33898D-04
+    0.62147D-03
+    0.12780D-03
+ Nonnegativity will be enforced for this problem.
+ Steps =       3815 f-s =       6013 J-s =        137
+ Computed and reference solutions and absolute errors follow:
+  1    0.37443D-04    0.37443D-04    0.34358D-11
+  2    0.72895D-03    0.72895D-03    0.16975D-10
+  3    0.96463D-04    0.96463D-04    0.94514D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        259
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10015D+01
+    0.10001D+01
+    0.26527D+00
+    0.98220D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =       1420 f-s =       2240 J-s =         58
+ Computed and reference solutions and absolute errors follow:
+  1    0.50999D+00    0.50999D+00    0.17662D-09
+  2    0.44958D+00    0.44958D+00    0.15850D-09
+  3    0.99988D+00    0.99988D+00    0.35250D-09
+  4    0.99949D+00    0.99949D+00    0.62130D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        148
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        351
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1239 f-s =       1417 J-s =         28
+ Computed and reference solutions and absolute errors follow:
+  1    0.45400D-04    0.45400D-04    0.68578D-11
+  2    0.20612D-08    0.20612D-08    0.22718D-13
+  3    0.46240D-83    0.28230D-55    0.28230D-55
+  4   -0.54017D-81    0.52358D-51    0.52358D-51
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =   1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =       1518 f-s =       1898 J-s =         33
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D+00    0.99999D+00    0.13180D-10
+  2    0.99999D+00    0.99999D+00    0.13179D-10
+  3    0.99999D+00    0.99999D+00    0.12287D-10
+  4    0.99999D+00    0.99999D+00    0.10905D-10
+  5    0.99999D+00    0.99999D+00    0.91910D-11
+  6    0.10000D+01    0.10000D+01    0.72703D-11
+  7    0.10000D+01    0.10000D+01    0.52659D-11
+  8    0.10000D+01    0.10000D+01    0.32949D-11
+  9    0.10000D+01    0.10000D+01    0.14644D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        551
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        109
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.12788D+00
+    0.10000D+01
+ Steps =       1595 f-s =       1812 J-s =         33
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.67727D-13
+  2    0.13685D-01    0.13685D-01    0.68361D-12
+  3    0.19229D+00    0.19229D+00    0.96231D-11
+  4    0.13534D+00    0.13534D+00    0.68976D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       2088 f-s =       2581 J-s =         42
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.20548D-10
+  2    0.17334D-13    0.12659D-13    0.46754D-14
+  3    0.13242D-46    0.19115D-41    0.19115D-41
+  4   -0.20177D-75    0.22774D-54    0.22774D-54
+  5    0.88166-109    0.00000D+00    0.88166-109
+  6   -0.91781-148    0.00000D+00    0.91781-148
+  7   -0.28134-190    0.00000D+00    0.28134-190
+  8    0.74098-237    0.00000D+00    0.74098-237
+  9   -0.38761-283    0.00000D+00    0.38761-283
+ 10    0.00000D+00    0.00000D+00    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        660
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        111
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =       6206 f-s =       6769 J-s =        111
+ Computed and reference solutions and absolute errors follow:
+  1    0.99916D-09    0.10042D-08    0.50040D-11
+  2    0.20868D-08    0.20955D-08    0.86494D-11
+  3    0.00000D+00    0.00000D+00    0.00000D+00
+  4    0.00000D+00   -0.18767D-79    0.18767D-79
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1126 f-s =       1328 J-s =         24
+ Computed and reference solutions and absolute errors follow:
+  1   -0.32341D-55    0.61813D-30    0.61813D-30
+  2    0.70205D-56    0.89637D-30    0.89637D-30
+  3    0.19970D-34    0.27384D-26    0.27384D-26
+  4    0.20612D-08    0.20612D-08    0.27424D-13
+  5    0.45400D-04    0.45400D-04    0.82190D-11
+  6    0.13534D+00    0.13534D+00    0.15070D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        284
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1254 f-s =       1463 J-s =         27
+ Computed and reference solutions and absolute errors follow:
+  1   -0.10535D-48   -0.10768D-27    0.10768D-27
+  2    0.74038D-50    0.54550D-27    0.54550D-27
+  3    0.21256D-34    0.27385D-26    0.27385D-26
+  4    0.20612D-08    0.20612D-08    0.26897D-13
+  5    0.45400D-04    0.45400D-04    0.80713D-11
+  6    0.13534D+00    0.13534D+00    0.14461D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        284
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       2001 f-s =       2293 J-s =         39
+ Computed and reference solutions and absolute errors follow:
+  1    0.12058D-20    0.11886D-21    0.10870D-20
+  2   -0.21665D-21   -0.23259D-21    0.15943D-22
+  3    0.20709D-34    0.15179D-34    0.55302D-35
+  4    0.20612D-08    0.20612D-08    0.22584D-13
+  5    0.45400D-04    0.45400D-04    0.66490D-11
+  6    0.13534D+00    0.13534D+00    0.14001D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        284
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.76336D+00
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       7522 f-s =       8540 J-s =        133
+ Computed and reference solutions and absolute errors follow:
+  1    0.57897D-12   -0.23669D-13    0.60264D-12
+  2    0.37572D-11    0.34489D-13    0.37228D-11
+  3    0.18048D-34    0.18049D-34    0.35107D-39
+  4    0.20612D-08    0.20612D-08    0.37693D-16
+  5    0.45400D-04    0.45400D-04    0.25787D-13
+  6    0.13534D+00    0.13534D+00    0.32613D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        284
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.98039D+00
+    0.97087D+00
+    0.10000D+01
+    0.10000D+01
+ Steps =       1545 f-s =       1746 J-s =         34
+ Computed and reference solutions and absolute errors follow:
+  1    0.39247D-03    0.39247D-03    0.93097D-12
+  2    0.38850D-03    0.38850D-03    0.54210D-19
+  3    0.40000D-03    0.40000D-03    0.54210D-19
+  4    0.20000D-01    0.20000D-01    0.34694D-17
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1384 f-s =       1577 J-s =         31
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.35293D-11
+  2    0.40000D-01    0.40000D-01    0.31371D-12
+  3    0.40016D-01    0.40016D-01    0.28984D-12
+  4    0.40032D-01    0.40032D-01    0.28566D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1380 f-s =       1568 J-s =         30
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.11434D-11
+  2    0.40000D+00    0.40000D+00    0.10166D-11
+  3    0.41600D+00    0.41600D+00    0.10217D-11
+  4    0.43331D+00    0.43331D+00    0.10922D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.50000D+00
+    0.25000D+00
+    0.50000D-01
+    0.23810D-02
+ Steps =       1077 f-s =       1225 J-s =         24
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.20683D-12
+  2    0.10000D+01    0.10000D+01    0.46030D-12
+  3    0.10000D+01    0.10000D+01    0.84011D-12
+  4    0.10000D+01    0.10000D+01    0.16558D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.50000D+00
+    0.12500D+00
+    0.73529D-02
+    0.26954D-04
+ Steps =       1016 f-s =       1165 J-s =         24
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.35516D-12
+  2    0.10000D+01    0.10000D+01    0.78948D-12
+  3    0.10000D+01    0.10000D+01    0.15675D-11
+  4    0.10008D+01    0.10008D+01    0.31619D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        896 f-s =       1167 J-s =         20
+ Computed and reference solutions and absolute errors follow:
+  1    0.99741D+00    0.99741D+00    0.14691D-09
+  2    0.10004D+01    0.10004D+01    0.11997D-09
+  3    0.10000D+01    0.10000D+01    0.88818D-14
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =       1204 f-s =       1491 J-s =         24
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.17406D-11
+  2    0.25166D+00    0.25166D+00    0.20231D-11
+  3    0.99707D+00    0.99707D+00    0.61038D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =       1730 f-s =       1984 J-s =         38
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.58942D-12
+  2    0.56309D-02    0.56309D-02    0.11467D-14
+  3    0.10007D+01    0.10007D+01    0.16391D-11
+  4    0.65374D+00    0.65374D+00    0.60996D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.70423D+00
+    0.00000D+00
+ Steps =        788 f-s =        999 J-s =         21
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.33100D-10
+  2    0.98757D+00    0.98757D+00    0.23315D-10
+  3   -0.51035D+00   -0.51035D+00    0.34421D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        939 f-s =       1355 J-s =         22
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99964D+00   -0.99964D+00    0.12166D-09
+  2    0.99933D+00    0.99933D+00    0.12896D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         68
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         95
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =       1145 f-s =       1449 J-s =         28
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.18814D-11
+  2    0.99730D+00    0.99730D+00    0.12703D-10
+  3    0.10005D+01    0.10005D+01    0.40026D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =       1690 f-s =       2674 J-s =        142
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.13656D-13
+  2    0.10394D-15   -0.72884D-12    0.72895D-12
+  3   -0.53587D-13    0.15348D-11    0.15884D-11
+  4   -0.42764D-13   -0.10837D-11    0.10409D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.99010D+00
+    0.00000D+00
+ Steps =       1749 f-s =       1981 J-s =         33
+ Computed and reference solutions and absolute errors follow:
+  1   -0.57361D+00   -0.57361D+00    0.11729D-08
+  2    0.56344D-01    0.56344D-01    0.33781D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         68
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         95
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.61350D+00
+    0.62500D+00
+    0.00000D+00
+ Steps =       1086 f-s =       1299 J-s =         25
+ Computed and reference solutions and absolute errors follow:
+  1    0.26092D-02    0.26092D-02    0.10044D-10
+  2    0.33231D-02    0.33231D-02    0.12769D-10
+  3    0.99911D+00    0.99911D+00    0.20814D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.00000D+00
+   -0.67797D-01
+   -0.64516D-01
+   -0.61350D-01
+ Steps =       4956 f-s =      14098 J-s =       1323
+ Computed and reference solutions and absolute errors follow:
+  1    0.69444D+00    0.69444D+00    0.13183D-09
+  2   -0.67797D+00   -0.67797D+00    0.12927D-09
+  3   -0.14800D-07   -0.14501D-07    0.29906D-09
+  4    0.13972D-07    0.13789D-07    0.18251D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        669 f-s =        834 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1    0.91936D+00    0.91936D+00    0.45448D-07
+  2    0.94674D+00    0.94674D+00    0.51423D-07
+  3    0.99777D+00    0.99777D+00    0.78153D-08
+  4    0.94183D+00    0.94183D+00    0.53936D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.62893D+00
+    0.00000D+00
+    0.49587D+00
+    0.10000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       2895 f-s =       4062 J-s =         55
+ Computed and reference solutions and absolute errors follow:
+  1    0.10009D+01    0.10009D+01    0.91980D-11
+  2    0.15223D-03    0.15223D-03    0.17341D-13
+  3    0.99887D+00    0.99887D+00    0.91304D-11
+  4    0.32420D-02    0.32420D-02    0.14432D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        778 f-s =        894 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.20677D-10
+  2    0.52568D+00    0.52568D+00    0.27760D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         72
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =       1680 f-s =       1900 J-s =         29
+ Computed and reference solutions and absolute errors follow:
+  1    0.80902D-07    0.80898D-07    0.39396D-11
+  2    0.23607D+00    0.23607D+00    0.39968D-14
+  3    0.20426D-04    0.20426D-04    0.99390D-12
+  4    0.99860D+00    0.99860D+00    0.11102D-13
+  5    0.99879D+00    0.99879D+00    0.48531D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        225
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        106
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.33898D-04
+    0.62147D-03
+    0.12780D-03
+ Nonnegativity will be enforced for this problem.
+ Steps =       3881 f-s =       5628 J-s =         72
+ Computed and reference solutions and absolute errors follow:
+  1    0.37443D-04    0.37443D-04    0.88075D-12
+  2    0.72895D-03    0.72895D-03    0.21217D-10
+  3    0.96463D-04    0.96463D-04    0.17429D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        113
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        100
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10015D+01
+    0.10001D+01
+    0.26527D+00
+    0.98220D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =       1458 f-s =       1999 J-s =         48
+ Computed and reference solutions and absolute errors follow:
+  1    0.50999D+00    0.50999D+00    0.29548D-09
+  2    0.44958D+00    0.44958D+00    0.26516D-09
+  3    0.99988D+00    0.99988D+00    0.58973D-09
+  4    0.99949D+00    0.99949D+00    0.10400D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+
+
+                     Results for ITOL =   5
+
+ Maximum Errors for All Problems Follow:
+ The JACSP Jacobian was used.
+ The ODEs were scaled.
+
+           Maximum Errors for Individual Problems Follow:
+
+Tolerance   Problem    Dense          Sparse         Banded
+    5          1    0.32471D-05    0.32471D-05    0.32471D-05
+    5          2    0.57532D-06    0.57503D-06    0.57532D-06
+    5          3    0.21302D-05    0.21522D-05    0.21302D-05
+    5          4    0.35755D-04    0.35755D-04    0.35755D-04
+    5         11    0.58717D-04    0.58718D-04    0.58717D-04
+    5         12    0.25783D-05    0.25783D-05    0.25783D-05
+    5         13    0.36548D-06    0.36548D-06    0.36548D-06
+    5         14    0.24517D-04    0.24517D-04    0.24517D-04
+    5         15    0.16202D-04    0.16197D-04    0.16202D-04
+    5         21    0.20168D-04    0.20211D-05    0.20168D-04
+    5         22    0.28851D-06    0.38024D-05    0.28851D-06
+    5         23    0.30005D-05    0.74788D-06    0.30005D-05
+    5         24    0.23601D-05    0.21357D-05    0.23601D-05
+    5         25    0.67400D-06    0.11030D-04    0.67400D-06
+    5         31    0.84203D-04    0.83964D-04    0.84203D-04
+    5         32    0.18943D-04    0.14727D-05    0.18943D-04
+    5         33    0.40200D-05    0.98823D-06    0.40200D-05
+    5         34    0.20796D-04    0.23083D-04    0.20796D-04
+    5         35    0.51238D-04    0.51238D-04    0.51238D-04
+    5         36    0.26429D-05    0.79526D-05    0.26429D-05
+    5         41    0.37272D-08    0.39261D-08    0.37272D-08
+    5         42    0.60070D-03    0.68612D-03    0.60070D-03
+    5         43    0.35616D-04    0.18211D-04    0.35616D-04
+    5         44    0.21049D-04    0.19018D-04    0.21049D-04
+    5         45    0.56626D-05    0.54941D-05    0.56626D-05
+    5         51    0.42450D-05    0.64518D-05    0.42450D-05
+    5         52    0.12491D-04    0.12435D-04    0.12491D-04
+    5         53    0.44042D-06    0.27632D-04    0.44042D-06
+    5         54    0.10047D-04    0.62567D-05    0.10047D-04
+    5         55    0.69479D-09    0.47789D-07    0.69479D-09
+
+
+                     Results for ITOL =   6
+
+ Maximum Errors for All Problems Follow:
+ The JACSP Jacobian was used.
+ The ODEs were scaled.
+
+           Maximum Errors for Individual Problems Follow:
+
+Tolerance   Problem    Dense          Sparse         Banded
+    6          1    0.30489D-06    0.30488D-06    0.30489D-06
+    6          2    0.38582D-05    0.42534D-05    0.38582D-05
+    6          3    0.18930D-06    0.37164D-05    0.18930D-06
+    6          4    0.76940D-06    0.76940D-06    0.76940D-06
+    6         11    0.19333D-04    0.19333D-04    0.19333D-04
+    6         12    0.21619D-05    0.21619D-05    0.21619D-05
+    6         13    0.20675D-05    0.20675D-05    0.20675D-05
+    6         14    0.12312D-05    0.12312D-05    0.12312D-05
+    6         15    0.22347D-04    0.22488D-04    0.22347D-04
+    6         21    0.20968D-06    0.53723D-06    0.20968D-06
+    6         22    0.55706D-07    0.19179D-05    0.55706D-07
+    6         23    0.37237D-07    0.36349D-06    0.37237D-07
+    6         24    0.24962D-06    0.62207D-06    0.24962D-06
+    6         25    0.83501D-06    0.29749D-07    0.83501D-06
+    6         31    0.11006D-04    0.28008D-04    0.11006D-04
+    6         32    0.51810D-05    0.66534D-05    0.51810D-05
+    6         33    0.66024D-06    0.34641D-06    0.66024D-06
+    6         34    0.79363D-06    0.40388D-05    0.79363D-06
+    6         35    0.95448D-05    0.17110D-04    0.95448D-05
+    6         36    0.67543D-05    0.17781D-06    0.67543D-05
+    6         41    0.35910D-09    0.13920D-08    0.35910D-09
+    6         42    0.37357D-04    0.11643D-03    0.37357D-04
+    6         43    0.10851D-04    0.10473D-04    0.10851D-04
+    6         44    0.82676D-06    0.38316D-06    0.82676D-06
+    6         45    0.13718D-05    0.13700D-05    0.13718D-05
+    6         51    0.40150D-06    0.24899D-05    0.40150D-06
+    6         52    0.68819D-05    0.69564D-05    0.68819D-05
+    6         53    0.40834D-06    0.38004D-06    0.40834D-06
+    6         54    0.15766D-05    0.24933D-06    0.15766D-05
+    6         55    0.28990D-08    0.18920D-08    0.28990D-08
+
+
+                     Results for ITOL =   7
+
+ Maximum Errors for All Problems Follow:
+ The JACSP Jacobian was used.
+ The ODEs were scaled.
+
+           Maximum Errors for Individual Problems Follow:
+
+Tolerance   Problem    Dense          Sparse         Banded
+    7          1    0.17939D-06    0.17939D-06    0.17939D-06
+    7          2    0.12239D-06    0.13796D-06    0.12239D-06
+    7          3    0.51466D-07    0.47194D-07    0.51466D-07
+    7          4    0.13268D-06    0.13268D-06    0.13268D-06
+    7         11    0.58269D-06    0.58274D-06    0.58269D-06
+    7         12    0.12318D-06    0.12318D-06    0.12318D-06
+    7         13    0.11735D-06    0.11735D-06    0.11735D-06
+    7         14    0.88396D-07    0.88396D-07    0.88396D-07
+    7         15    0.20089D-05    0.20088D-05    0.20089D-05
+    7         21    0.26281D-07    0.49626D-08    0.26281D-07
+    7         22    0.42538D-07    0.49231D-07    0.42538D-07
+    7         23    0.75664D-07    0.91194D-07    0.75664D-07
+    7         24    0.66996D-07    0.35465D-06    0.66996D-07
+    7         25    0.17272D-07    0.44946D-06    0.17272D-07
+    7         31    0.81574D-06    0.26073D-05    0.81574D-06
+    7         32    0.13393D-05    0.57601D-07    0.13393D-05
+    7         33    0.16859D-06    0.88421D-08    0.16859D-06
+    7         34    0.10017D-05    0.94864D-06    0.10017D-05
+    7         35    0.57779D-05    0.17124D-05    0.57779D-05
+    7         36    0.28200D-07    0.57380D-07    0.28200D-07
+    7         41    0.83381D-09    0.14846D-06    0.83381D-09
+    7         42    0.88978D-05    0.11627D-04    0.88978D-05
+    7         43    0.99478D-06    0.20239D-05    0.99478D-06
+    7         44    0.28235D-07    0.14027D-07    0.28235D-07
+    7         45    0.17151D-06    0.18863D-06    0.17151D-06
+    7         51    0.89191D-07    0.27678D-06    0.89191D-07
+    7         52    0.71041D-06    0.84577D-07    0.71041D-06
+    7         53    0.14488D-06    0.29711D-09    0.14488D-06
+    7         54    0.16906D-06    0.40697D-07    0.16906D-06
+    7         55    0.30004D-08    0.73318D-07    0.30004D-08
+
+
+                     Results for ITOL =   8
+
+ Maximum Errors for All Problems Follow:
+ The JACSP Jacobian was used.
+ The ODEs were scaled.
+
+           Maximum Errors for Individual Problems Follow:
+
+Tolerance   Problem    Dense          Sparse         Banded
+    8          1    0.10373D-07    0.10373D-07    0.10373D-07
+    8          2    0.11411D-07    0.15639D-07    0.11411D-07
+    8          3    0.63728D-07    0.63730D-07    0.63728D-07
+    8          4    0.81042D-08    0.81042D-08    0.81042D-08
+    8         11    0.16039D-06    0.16040D-06    0.16039D-06
+    8         12    0.20557D-07    0.20557D-07    0.20557D-07
+    8         13    0.16174D-07    0.16174D-07    0.16174D-07
+    8         14    0.10211D-07    0.10211D-07    0.10211D-07
+    8         15    0.39550D-06    0.40233D-06    0.39550D-06
+    8         21    0.18517D-08    0.18530D-08    0.18517D-08
+    8         22    0.58869D-08    0.60414D-08    0.58869D-08
+    8         23    0.47449D-08    0.32007D-08    0.47449D-08
+    8         24    0.34294D-07    0.11560D-07    0.34294D-07
+    8         25    0.80857D-08    0.58998D-07    0.80857D-08
+    8         31    0.16855D-06    0.39249D-06    0.16855D-06
+    8         32    0.43735D-07    0.18642D-07    0.43735D-07
+    8         33    0.39755D-08    0.61198D-09    0.39755D-08
+    8         34    0.15173D-06    0.13883D-06    0.15173D-06
+    8         35    0.25334D-06    0.76780D-06    0.25334D-06
+    8         36    0.88004D-07    0.66762D-07    0.88004D-07
+    8         41    0.25592D-08    0.16715D-07    0.25592D-08
+    8         42    0.14853D-05    0.13671D-05    0.14853D-05
+    8         43    0.50468D-07    0.39561D-07    0.50468D-07
+    8         44    0.39659D-08    0.61869D-08    0.39659D-08
+    8         45    0.10221D-07    0.95418D-08    0.10221D-07
+    8         51    0.98051D-08    0.38840D-07    0.98051D-08
+    8         52    0.72658D-07    0.14767D-07    0.72658D-07
+    8         53    0.56650D-08    0.24491D-07    0.56650D-08
+    8         54    0.10143D-06    0.29301D-07    0.10143D-06
+    8         55    0.50719D-08    0.50640D-09    0.50719D-08
+
+
+                     Results for ITOL =   9
+
+ Maximum Errors for All Problems Follow:
+ The JACSP Jacobian was used.
+ The ODEs were scaled.
+
+           Maximum Errors for Individual Problems Follow:
+
+Tolerance   Problem    Dense          Sparse         Banded
+    9          1    0.20958D-08    0.20958D-08    0.20958D-08
+    9          2    0.24991D-08    0.26028D-08    0.24991D-08
+    9          3    0.87621D-08    0.87620D-08    0.87621D-08
+    9          4    0.36942D-09    0.36942D-09    0.36942D-09
+    9         11    0.35943D-08    0.35970D-08    0.35943D-08
+    9         12    0.22293D-08    0.22293D-08    0.22293D-08
+    9         13    0.16949D-08    0.16949D-08    0.16949D-08
+    9         14    0.42677D-08    0.42677D-08    0.42677D-08
+    9         15    0.28880D-07    0.28889D-07    0.28880D-07
+    9         21    0.21201D-08    0.21699D-08    0.21201D-08
+    9         22    0.63349D-09    0.63784D-09    0.63349D-09
+    9         23    0.48844D-09    0.47464D-09    0.48844D-09
+    9         24    0.12527D-08    0.58505D-08    0.12527D-08
+    9         25    0.48572D-08    0.47832D-08    0.48572D-08
+    9         31    0.44446D-08    0.18151D-07    0.44446D-08
+    9         32    0.18080D-07    0.78188D-08    0.18080D-07
+    9         33    0.97984D-09    0.33671D-09    0.97984D-09
+    9         34    0.10166D-07    0.73218D-08    0.10166D-07
+    9         35    0.81592D-07    0.58559D-07    0.81592D-07
+    9         36    0.25741D-08    0.23229D-08    0.25741D-08
+    9         41    0.24902D-11    0.25173D-11    0.24902D-11
+    9         42    0.40208D-06    0.24234D-06    0.40208D-06
+    9         43    0.21622D-07    0.12044D-07    0.21622D-07
+    9         44    0.48625D-10    0.68585D-06    0.48625D-10
+    9         45    0.51652D-07    0.49339D-07    0.51652D-07
+    9         51    0.35698D-09    0.30183D-08    0.35698D-09
+    9         52    0.28195D-08    0.41146D-08    0.28195D-08
+    9         53    0.28828D-07    0.99486D-09    0.28828D-07
+    9         54    0.12654D-08    0.48541D-08    0.12654D-08
+    9         55    0.54653D-08    0.20164D-08    0.54653D-08
+
+
+                     Results for ITOL =  10
+
+ Maximum Errors for All Problems Follow:
+ The JACSP Jacobian was used.
+ The ODEs were scaled.
+
+           Maximum Errors for Individual Problems Follow:
+
+Tolerance   Problem    Dense          Sparse         Banded
+   10          1    0.33624D-09    0.33624D-09    0.33624D-09
+   10          2    0.32399D-09    0.34220D-09    0.32399D-09
+   10          3    0.21191D-09    0.21146D-09    0.21191D-09
+   10          4    0.54749D-09    0.54749D-09    0.54749D-09
+   10         11    0.40318D-09    0.40311D-09    0.40318D-09
+   10         12    0.36754D-09    0.36754D-09    0.36754D-09
+   10         13    0.32141D-09    0.32141D-09    0.32141D-09
+   10         14    0.33828D-09    0.33829D-09    0.33828D-09
+   10         15    0.31884D-08    0.23023D-09    0.31884D-08
+   10         21    0.25669D-09    0.10058D-09    0.25669D-09
+   10         22    0.46526D-09    0.46606D-09    0.46526D-09
+   10         23    0.17845D-09    0.32244D-10    0.17845D-09
+   10         24    0.14706D-09    0.19437D-09    0.14706D-09
+   10         25    0.98321D-10    0.10977D-09    0.98321D-10
+   10         31    0.36247D-08    0.28838D-08    0.36247D-08
+   10         32    0.28674D-08    0.35710D-08    0.28674D-08
+   10         33    0.17064D-10    0.42556D-10    0.17064D-10
+   10         34    0.43798D-10    0.18415D-08    0.43798D-10
+   10         35    0.87922D-08    0.67064D-08    0.87922D-08
+   10         36    0.55119D-09    0.64653D-09    0.55119D-09
+   10         41    0.10779D-10    0.75643D-09    0.10779D-10
+   10         42    0.38996D-07    0.42937D-07    0.38996D-07
+   10         43    0.66566D-09    0.88365D-09    0.66566D-09
+   10         44    0.10133D-07    0.16934D-09    0.10133D-07
+   10         45    0.53601D-07    0.53517D-07    0.53601D-07
+   10         51    0.34065D-09    0.14275D-11    0.34065D-09
+   10         52    0.57701D-09    0.58912D-09    0.57701D-09
+   10         53    0.39988D-10    0.44213D-09    0.39988D-10
+   10         54    0.47860D-09    0.68655D-09    0.47860D-09
+   10         55    0.12202D-07    0.13581D-08    0.12202D-07
+
+
+                     Results for ITOL =  11
+
+ Maximum Errors for All Problems Follow:
+ The JACSP Jacobian was used.
+ The ODEs were scaled.
+
+           Maximum Errors for Individual Problems Follow:
+
+Tolerance   Problem    Dense          Sparse         Banded
+   11          1    0.33886D-10    0.33883D-10    0.33886D-10
+   11          2    0.50967D-10    0.54345D-10    0.50967D-10
+   11          3    0.14940D-09    0.15153D-09    0.14940D-09
+   11          4    0.27668D-09    0.27667D-09    0.27668D-09
+   11         11    0.75409D-10    0.77730D-10    0.75409D-10
+   11         12    0.52756D-10    0.52756D-10    0.52756D-10
+   11         13    0.50269D-10    0.50269D-10    0.50269D-10
+   11         14    0.24207D-10    0.24207D-10    0.24207D-10
+   11         15    0.60011D-10    0.55650D-10    0.60011D-10
+   11         21    0.61172D-11    0.61120D-11    0.61172D-11
+   11         22    0.17746D-10    0.17742D-10    0.17746D-10
+   11         23    0.13408D-10    0.13238D-10    0.13408D-10
+   11         24    0.11799D-10    0.11648D-10    0.11799D-10
+   11         25    0.20969D-10    0.20998D-10    0.20969D-10
+   11         31    0.55292D-09    0.60922D-09    0.55292D-09
+   11         32    0.33849D-09    0.14127D-09    0.33849D-09
+   11         33    0.60840D-12    0.15277D-12    0.60840D-12
+   11         34    0.17109D-10    0.56216D-10    0.17109D-10
+   11         35    0.10661D-08    0.12698D-08    0.10661D-08
+   11         36    0.91399D-10    0.91202D-10    0.91399D-10
+   11         41    0.18208D-10    0.10646D-11    0.18208D-10
+   11         42    0.75668D-08    0.77815D-08    0.75668D-08
+   11         43    0.22316D-09    0.72006D-10    0.22316D-09
+   11         44    0.37456D-09    0.91198D-10    0.37456D-09
+   11         45    0.53915D-07    0.53927D-07    0.53915D-07
+   11         51    0.50261D-10    0.58758D-10    0.50261D-10
+   11         52    0.14003D-09    0.13270D-09    0.14003D-09
+   11         53    0.23326D-10    0.31057D-09    0.23326D-10
+   11         54    0.74371D-10    0.74189D-10    0.74371D-10
+   11         55    0.86760D-09    0.57853D-09    0.86760D-09
+
+
+                     Results for ITOL =  12
+
+ Maximum Errors for All Problems Follow:
+ The JACSP Jacobian was used.
+ The ODEs were scaled.
+
+           Maximum Errors for Individual Problems Follow:
+
+Tolerance   Problem    Dense          Sparse         Banded
+   12          1    0.68578D-11    0.68577D-11    0.68578D-11
+   12          2    0.13180D-10    0.13297D-10    0.13180D-10
+   12          3    0.96231D-11    0.87089D-11    0.96231D-11
+   12          4    0.20548D-10    0.20544D-10    0.20548D-10
+   12         11    0.86494D-11    0.86476D-11    0.86494D-11
+   12         12    0.82190D-11    0.82192D-11    0.82190D-11
+   12         13    0.80713D-11    0.80714D-11    0.80713D-11
+   12         14    0.66490D-11    0.66484D-11    0.66490D-11
+   12         15    0.37228D-11    0.20030D-10    0.37228D-11
+   12         21    0.93097D-12    0.99165D-12    0.93097D-12
+   12         22    0.35293D-11    0.35295D-11    0.35293D-11
+   12         23    0.11434D-11    0.11307D-11    0.11434D-11
+   12         24    0.16558D-11    0.16690D-11    0.16558D-11
+   12         25    0.31619D-11    0.34486D-11    0.31619D-11
+   12         31    0.14691D-09    0.18243D-09    0.14691D-09
+   12         32    0.61038D-11    0.29291D-11    0.61038D-11
+   12         33    0.16391D-11    0.46696D-12    0.16391D-11
+   12         34    0.34421D-10    0.85114D-11    0.34421D-10
+   12         35    0.12896D-09    0.13513D-09    0.12896D-09
+   12         36    0.12703D-10    0.13117D-10    0.12703D-10
+   12         41    0.15884D-11    0.15470D-11    0.15884D-11
+   12         42    0.11729D-08    0.12932D-08    0.11729D-08
+   12         43    0.20814D-10    0.32006D-10    0.20814D-10
+   12         44    0.29906D-09    0.70771D-09    0.29906D-09
+   12         45    0.53936D-07    0.53936D-07    0.53936D-07
+   12         51    0.91980D-11    0.55835D-11    0.91980D-11
+   12         52    0.27760D-10    0.22209D-10    0.27760D-10
+   12         53    0.48531D-11    0.53804D-10    0.48531D-11
+   12         54    0.21217D-10    0.16975D-10    0.21217D-10
+   12         55    0.58973D-09    0.35250D-09    0.58973D-09
+
+
+                     Results for ITOL =   5
+
+ Integration Statistics Follow:
+ The JACSP Jacobian was used.
+ The ODEs were scaled.
+
+ Problem            Dense    Sparse    Banded
+    1   Steps:        127       127       127
+        Jacs:           6         5         6
+        Ders:         192       208       192
+  
+    2   Steps:        141       141       141
+        Jacs:           5         6         5
+        Ders:         224       287       224
+  
+    3   Steps:        152       152       152
+        Jacs:           5         6         5
+        Ders:         221       249       221
+  
+    4   Steps:        189       189       189
+        Jacs:           6         8         6
+        Ders:         291       391       291
+  
+   11   Steps:        520       520       520
+        Jacs:          12        16        12
+        Ders:         604       684       604
+  
+   12   Steps:        107       107       107
+        Jacs:           4         5         4
+        Ders:         154       190       154
+  
+   13   Steps:        115       115       115
+        Jacs:           5         5         5
+        Ders:         166       196       166
+  
+   14   Steps:        182       182       182
+        Jacs:           5         8         5
+        Ders:         236       302       236
+  
+   15   Steps:       2551      2551      2551
+        Jacs:          46        72        46
+        Ders:        2963      3551      2963
+  
+   21   Steps:        135       144       135
+        Jacs:           6         6         6
+        Ders:         196       237       196
+  
+   22   Steps:        135       134       135
+        Jacs:           6         5         6
+        Ders:         191       210       191
+  
+   23   Steps:        127       127       127
+        Jacs:           5         5         5
+        Ders:         180       198       180
+  
+   24   Steps:        114       107       114
+        Jacs:           4         5         4
+        Ders:         162       175       162
+  
+   25   Steps:        103        97       103
+        Jacs:           3         5         3
+        Ders:         135       158       135
+  
+   31   Steps:         72        72        72
+        Jacs:           3         4         3
+        Ders:         136       151       136
+  
+   32   Steps:        155       248       155
+        Jacs:           3        11         3
+        Ders:         226       436       226
+  
+   33   Steps:        199       209       199
+        Jacs:           7         8         7
+        Ders:         307       346       307
+  
+   34   Steps:         99        97        99
+        Jacs:           5         5         5
+        Ders:         156       170       156
+  
+   35   Steps:         76        76        76
+        Jacs:           4         4         4
+        Ders:         126       134       126
+  
+   36   Steps:        127       129       127
+        Jacs:           6         5         6
+        Ders:         195       207       195
+  
+   41   Steps:        124       124       124
+        Jacs:           7         5         7
+        Ders:         188       200       188
+  
+   42   Steps:        178       166       178
+        Jacs:           4         8         4
+        Ders:         245       286       245
+  
+   43   Steps:        150       134       150
+        Jacs:           5         5         5
+        Ders:         273       206       273
+  
+   44   Steps:        253       316       253
+        Jacs:           8        13         8
+        Ders:         378       521       378
+  
+   45   Steps:         74        80        74
+        Jacs:           2         5         2
+        Ders:         100       140       100
+  
+   51   Steps:        384       260       384
+        Jacs:          22        20        22
+        Ders:         745       555       745
+  
+   52   Steps:         95        95        95
+        Jacs:           3         5         3
+        Ders:         137       152       137
+  
+   53   Steps:        195       184       195
+        Jacs:           4         8         4
+        Ders:         274       334       274
+  
+   54   Steps:        674       658       674
+        Jacs:          21        34        21
+        Ders:        1045      1139      1045
+  
+   55   Steps:        183       193       183
+        Jacs:           7         8         7
+        Ders:         284       341       284
+  
+
+
+                     Results for ITOL =   6
+
+ Integration Statistics Follow:
+ The JACSP Jacobian was used.
+ The ODEs were scaled.
+
+ Problem            Dense    Sparse    Banded
+    1   Steps:        168       168       168
+        Jacs:           7         8         7
+        Ders:         242       278       242
+  
+    2   Steps:        206       207       206
+        Jacs:           7         8         7
+        Ders:         330       410       330
+  
+    3   Steps:        206       206       206
+        Jacs:           6         8         6
+        Ders:         299       337       299
+  
+    4   Steps:        254       254       254
+        Jacs:           8        11         8
+        Ders:         390       530       390
+  
+   11   Steps:        686       686       686
+        Jacs:          16        21        16
+        Ders:         795       899       795
+  
+   12   Steps:        137       137       137
+        Jacs:           5         5         5
+        Ders:         201       231       201
+  
+   13   Steps:        148       148       148
+        Jacs:           5         6         5
+        Ders:         207       249       207
+  
+   14   Steps:        276       276       276
+        Jacs:           7        11         7
+        Ders:         343       433       343
+  
+   15   Steps:       2619      2619      2619
+        Jacs:          49        72        49
+        Ders:        3088      3658      3088
+  
+   21   Steps:        182       184       182
+        Jacs:           7         8         7
+        Ders:         254       298       254
+  
+   22   Steps:        177       175       177
+        Jacs:           8         8         8
+        Ders:         252       286       252
+  
+   23   Steps:        174       173       174
+        Jacs:           7         8         7
+        Ders:         249       289       249
+  
+   24   Steps:        153       145       153
+        Jacs:           5         6         5
+        Ders:         216       244       216
+  
+   25   Steps:        147       145       147
+        Jacs:           5         6         5
+        Ders:         208       222       208
+  
+   31   Steps:        142       140       142
+        Jacs:           3         5         3
+        Ders:         237       232       237
+  
+   32   Steps:        204       243       204
+        Jacs:           4        11         4
+        Ders:         321       413       321
+  
+   33   Steps:        254       231       254
+        Jacs:           8         9         8
+        Ders:         365       381       365
+  
+   34   Steps:        110       114       110
+        Jacs:           7         5         7
+        Ders:         177       194       177
+  
+   35   Steps:        107       117       107
+        Jacs:           5         6         5
+        Ders:         179       202       179
+  
+   36   Steps:        201       205       201
+        Jacs:           8         8         8
+        Ders:         299       311       299
+  
+   41   Steps:        171       171       171
+        Jacs:           8         7         8
+        Ders:         245       269       245
+  
+   42   Steps:        228       232       228
+        Jacs:           5         9         5
+        Ders:         313       363       313
+  
+   43   Steps:        195       245       195
+        Jacs:           7        11         7
+        Ders:         299       416       299
+  
+   44   Steps:        282       275       282
+        Jacs:           9        12         9
+        Ders:         411       449       411
+  
+   45   Steps:         88        88        88
+        Jacs:           3         4         3
+        Ders:         133       153       133
+  
+   51   Steps:        405       373       405
+        Jacs:          23        25        23
+        Ders:         728       816       728
+  
+   52   Steps:        108       108       108
+        Jacs:           5         5         5
+        Ders:         170       175       170
+  
+   53   Steps:        225       219       225
+        Jacs:           5         9         5
+        Ders:         303       354       303
+  
+   54   Steps:        845       754       845
+        Jacs:          23        35        23
+        Ders:        1297      1272      1297
+  
+   55   Steps:        276       257       276
+        Jacs:           9        11         9
+        Ders:         416       431       416
+  
+
+
+                     Results for ITOL =   7
+
+ Integration Statistics Follow:
+ The JACSP Jacobian was used.
+ The ODEs were scaled.
+
+ Problem            Dense    Sparse    Banded
+    1   Steps:        229       229       229
+        Jacs:           8         8         8
+        Ders:         308       340       308
+  
+    2   Steps:        268       264       268
+        Jacs:           9        11         9
+        Ders:         421       528       421
+  
+    3   Steps:        276       276       276
+        Jacs:           8        11         8
+        Ders:         385       441       385
+  
+    4   Steps:        358       358       358
+        Jacs:          11        14        11
+        Ders:         535       705       535
+  
+   11   Steps:        975       975       975
+        Jacs:          21        30        21
+        Ders:        1107      1263      1107
+  
+   12   Steps:        201       201       201
+        Jacs:           7         7         7
+        Ders:         282       324       282
+  
+   13   Steps:        219       219       219
+        Jacs:           7         7         7
+        Ders:         301       343       301
+  
+   14   Steps:        373       373       373
+        Jacs:          10        13        10
+        Ders:         461       557       461
+  
+   15   Steps:       2868      2868      2868
+        Jacs:          53        76        53
+        Ders:        3382      3976      3382
+  
+   21   Steps:        269       265       269
+        Jacs:           9        11         9
+        Ders:         352       405       352
+  
+   22   Steps:        239       240       239
+        Jacs:           9         9         9
+        Ders:         330       367       330
+  
+   23   Steps:        239       238       239
+        Jacs:           9         9         9
+        Ders:         332       367       332
+  
+   24   Steps:        207       195       207
+        Jacs:           7         8         7
+        Ders:         277       301       277
+  
+   25   Steps:        196       193       196
+        Jacs:           6         8         6
+        Ders:         291       323       291
+  
+   31   Steps:        193       190       193
+        Jacs:           5         8         5
+        Ders:         298       337       298
+  
+   32   Steps:        334       322       334
+        Jacs:           7        13         7
+        Ders:         458       527       458
+  
+   33   Steps:        314       344       314
+        Jacs:          10        14        10
+        Ders:         440       532       440
+  
+   34   Steps:        161       161       161
+        Jacs:           7         6         7
+        Ders:         242       257       242
+  
+   35   Steps:        160       178       160
+        Jacs:           7         9         7
+        Ders:         254       313       254
+  
+   36   Steps:        296       276       296
+        Jacs:           9        11         9
+        Ders:         402       463       402
+  
+   41   Steps:        236       255       236
+        Jacs:          10        11        10
+        Ders:         342       400       342
+  
+   42   Steps:        289       286       289
+        Jacs:           7        10         7
+        Ders:         401       420       401
+  
+   43   Steps:        314       276       314
+        Jacs:          10        11        10
+        Ders:         463       467       463
+  
+   44   Steps:        409       384       409
+        Jacs:          12        15        12
+        Ders:         556       613       556
+  
+   45   Steps:        119       121       119
+        Jacs:           4         5         4
+        Ders:         169       196       169
+  
+   51   Steps:        538       568       538
+        Jacs:          25        30        25
+        Ders:         977      1229       977
+  
+   52   Steps:        142       145       142
+        Jacs:           5         6         5
+        Ders:         207       234       207
+  
+   53   Steps:        346       292       346
+        Jacs:           7        11         7
+        Ders:         491       469       491
+  
+   54   Steps:        937       973       937
+        Jacs:          27        43        27
+        Ders:        1556      1726      1556
+  
+   55   Steps:        372       340       372
+        Jacs:          11        14        11
+        Ders:         544       550       544
+  
+
+
+                     Results for ITOL =   8
+
+ Integration Statistics Follow:
+ The JACSP Jacobian was used.
+ The ODEs were scaled.
+
+ Problem            Dense    Sparse    Banded
+    1   Steps:        302       302       302
+        Jacs:          11        11        11
+        Ders:         408       452       408
+  
+    2   Steps:        374       376       374
+        Jacs:          11        14        11
+        Ders:         536       684       536
+  
+    3   Steps:        385       385       385
+        Jacs:          11        15        11
+        Ders:         494       570       494
+  
+    4   Steps:        495       495       495
+        Jacs:          13        16        13
+        Ders:         685       875       685
+  
+   11   Steps:       1361      1361      1361
+        Jacs:          28        39        28
+        Ders:        1529      1729      1529
+  
+   12   Steps:        281       281       281
+        Jacs:           9        11         9
+        Ders:         371       449       371
+  
+   13   Steps:        305       305       305
+        Jacs:          10        11        10
+        Ders:         402       474       402
+  
+   14   Steps:        585       585       585
+        Jacs:          15        18        15
+        Ders:         725       851       725
+  
+   15   Steps:       3239      3239      3239
+        Jacs:          59        89        59
+        Ders:        3774      4488      3774
+  
+   21   Steps:        367       367       367
+        Jacs:          12        13        12
+        Ders:         464       520       464
+  
+   22   Steps:        336       336       336
+        Jacs:          11        13        11
+        Ders:         435       495       435
+  
+   23   Steps:        324       324       324
+        Jacs:          10        11        10
+        Ders:         413       461       413
+  
+   24   Steps:        260       259       260
+        Jacs:           9        11         9
+        Ders:         356       392       356
+  
+   25   Steps:        252       245       252
+        Jacs:           8        10         8
+        Ders:         337       370       337
+  
+   31   Steps:        301       397       301
+        Jacs:           7        15         7
+        Ders:         467       665       467
+  
+   32   Steps:        416       421       416
+        Jacs:           9        17         9
+        Ders:         593       679       593
+  
+   33   Steps:        444       419       444
+        Jacs:          13        18        13
+        Ders:         577       657       577
+  
+   34   Steps:        245       244       245
+        Jacs:          10        10        10
+        Ders:         358       383       358
+  
+   35   Steps:        274       237       274
+        Jacs:           9        12         9
+        Ders:         474       449       474
+  
+   36   Steps:        375       356       375
+        Jacs:          12        14        12
+        Ders:         539       583       539
+  
+   41   Steps:        317       348       317
+        Jacs:          12        14        12
+        Ders:         421       526       421
+  
+   42   Steps:        398       402       398
+        Jacs:          10        15        10
+        Ders:         515       560       515
+  
+   43   Steps:        385       362       385
+        Jacs:          11        14        11
+        Ders:         531       573       531
+  
+   44   Steps:        558       540       558
+        Jacs:          14        18        14
+        Ders:         727       803       727
+  
+   45   Steps:        179       190       179
+        Jacs:           6         8         6
+        Ders:         254       296       254
+  
+   51   Steps:        720       686       720
+        Jacs:          26        30        26
+        Ders:        1174      1220      1174
+  
+   52   Steps:        204       209       204
+        Jacs:           7         8         7
+        Ders:         277       304       277
+  
+   53   Steps:        414       401       414
+        Jacs:           8        15         8
+        Ders:         507       615       507
+  
+   54   Steps:       1438      1171      1438
+        Jacs:          34        51        34
+        Ders:        2398      2120      2398
+  
+   55   Steps:        500       409       500
+        Jacs:          14        16        14
+        Ders:         732       639       732
+  
+
+
+                     Results for ITOL =   9
+
+ Integration Statistics Follow:
+ The JACSP Jacobian was used.
+ The ODEs were scaled.
+
+ Problem            Dense    Sparse    Banded
+    1   Steps:        428       428       428
+        Jacs:          13        16        13
+        Ders:         542       618       542
+  
+    2   Steps:        522       522       522
+        Jacs:          14        16        14
+        Ders:         718       880       718
+  
+    3   Steps:        537       537       537
+        Jacs:          14        19        14
+        Ders:         657       753       657
+  
+    4   Steps:        703       703       703
+        Jacs:          18        26        18
+        Ders:         953      1293       953
+  
+   11   Steps:       2034      2034      2034
+        Jacs:          39        55        39
+        Ders:        2248      2532      2248
+  
+   12   Steps:        390       390       390
+        Jacs:          11        15        11
+        Ders:         495       609       495
+  
+   13   Steps:        426       426       426
+        Jacs:          11        13        11
+        Ders:         529       619       529
+  
+   14   Steps:        798       798       798
+        Jacs:          18        24        18
+        Ders:         960      1140       960
+  
+   15   Steps:       3790      3790      3790
+        Jacs:          69       102        69
+        Ders:        4373      5183      4373
+  
+   21   Steps:        525       525       525
+        Jacs:          16        18        16
+        Ders:         643       724       643
+  
+   22   Steps:        460       460       460
+        Jacs:          14        15        14
+        Ders:         573       637       573
+  
+   23   Steps:        468       468       468
+        Jacs:          13        15        13
+        Ders:         570       639       570
+  
+   24   Steps:        363       363       363
+        Jacs:          11        14        11
+        Ders:         461       527       461
+  
+   25   Steps:        345       347       345
+        Jacs:          11        12        11
+        Ders:         443       491       443
+  
+   31   Steps:        489       510       489
+        Jacs:          11        19        11
+        Ders:         733       858       733
+  
+   32   Steps:        525       513       525
+        Jacs:          11        19        11
+        Ders:         721       764       721
+  
+   33   Steps:        593       610       593
+        Jacs:          17        21        17
+        Ders:         740       864       740
+  
+   34   Steps:        323       329       323
+        Jacs:          11        12        11
+        Ders:         438       521       438
+  
+   35   Steps:        365       353       365
+        Jacs:          11        15        11
+        Ders:         570       600       570
+  
+   36   Steps:        469       469       469
+        Jacs:          14        18        14
+        Ders:         645       718       645
+  
+   41   Steps:        451       451       451
+        Jacs:          15        16        15
+        Ders:         572       640       572
+  
+   42   Steps:        587       578       587
+        Jacs:          12        21        12
+        Ders:         714       759       714
+  
+   43   Steps:        522       508       522
+        Jacs:          15        20        15
+        Ders:         777       818       777
+  
+   44   Steps:        766      1244       766
+        Jacs:          19       198        19
+        Ders:         950      3392       950
+  
+   45   Steps:        262       239       262
+        Jacs:           7         8         7
+        Ders:         345       356       345
+  
+   51   Steps:       1010       960      1010
+        Jacs:          31        41        31
+        Ders:        1644      1748      1644
+  
+   52   Steps:        284       288       284
+        Jacs:          10        12        10
+        Ders:         368       408       368
+  
+   53   Steps:        598       589       598
+        Jacs:          11        22        11
+        Ders:         723       882       723
+  
+   54   Steps:       1685      1609      1685
+        Jacs:          38        68        38
+        Ders:        2766      2925      2766
+  
+   55   Steps:        666       714       666
+        Jacs:          18        29        18
+        Ders:         993      1254       993
+  
+
+
+                     Results for ITOL =  10
+
+ Integration Statistics Follow:
+ The JACSP Jacobian was used.
+ The ODEs were scaled.
+
+ Problem            Dense    Sparse    Banded
+    1   Steps:        591       591       591
+        Jacs:          17        18        17
+        Ders:         713       789       713
+  
+    2   Steps:        735       736       735
+        Jacs:          19        24        19
+        Ders:         996      1252       996
+  
+    3   Steps:        760       760       760
+        Jacs:          19        24        19
+        Ders:         908      1024       908
+  
+    4   Steps:        999       999       999
+        Jacs:          22        31        22
+        Ders:        1284      1684      1284
+  
+   11   Steps:       2913      2913      2913
+        Jacs:          55        77        55
+        Ders:        3206      3602      3206
+  
+   12   Steps:        558       558       558
+        Jacs:          15        18        15
+        Ders:         697       823       697
+  
+   13   Steps:        598       598       598
+        Jacs:          16        19        16
+        Ders:         735       867       735
+  
+   14   Steps:       1106      1106      1106
+        Jacs:          24        31        24
+        Ders:        1299      1527      1299
+  
+   15   Steps:       4571      4587      4571
+        Jacs:          83       123        83
+        Ders:        5275      6251      5275
+  
+   21   Steps:        735       734       735
+        Jacs:          19        24        19
+        Ders:         888      1001       888
+  
+   22   Steps:        661       661       661
+        Jacs:          18        22        18
+        Ders:         796       900       796
+  
+   23   Steps:        656       652       656
+        Jacs:          17        20        17
+        Ders:         783       881       783
+  
+   24   Steps:        517       517       517
+        Jacs:          15        17        15
+        Ders:         628       704       628
+  
+   25   Steps:        502       502       502
+        Jacs:          13        16        13
+        Ders:         602       678       602
+  
+   31   Steps:        573       578       573
+        Jacs:          13        22        13
+        Ders:         815       926       815
+  
+   32   Steps:        770       751       770
+        Jacs:          17        29        17
+        Ders:        1094      1168      1094
+  
+   33   Steps:        871       868       871
+        Jacs:          21        30        21
+        Ders:        1044      1206      1044
+  
+   34   Steps:        439       424       439
+        Jacs:          14        15        14
+        Ders:         602       641       602
+  
+   35   Steps:        533       509       533
+        Jacs:          14        19        14
+        Ders:         832       834       832
+  
+   36   Steps:        652       626       652
+        Jacs:          18        22        18
+        Ders:         934       935       934
+  
+   41   Steps:        737       896       737
+        Jacs:          21       122        21
+        Ders:         917      2210       917
+  
+   42   Steps:        835       833       835
+        Jacs:          18        27        18
+        Ders:         997      1059       997
+  
+   43   Steps:        642       616       642
+        Jacs:          17        22        17
+        Ders:         858       912       858
+  
+   44   Steps:       1208      1405      1208
+        Jacs:          73        58        73
+        Ders:        1736      2101      1736
+  
+   45   Steps:        369       362       369
+        Jacs:          10        14        10
+        Ders:         500       560       500
+  
+   51   Steps:       1530      1523      1530
+        Jacs:          35        54        35
+        Ders:        2359      2603      2359
+  
+   52   Steps:        398       397       398
+        Jacs:          12        14        12
+        Ders:         474       505       474
+  
+   53   Steps:        827       817       827
+        Jacs:          15        27        15
+        Ders:         967      1151       967
+  
+   54   Steps:       2127      2055      2127
+        Jacs:          46        79        46
+        Ders:        3285      3498      3285
+  
+   55   Steps:        828       815       828
+        Jacs:          21        31        21
+        Ders:        1178      1342      1178
+  
+
+
+                     Results for ITOL =  11
+
+ Integration Statistics Follow:
+ The JACSP Jacobian was used.
+ The ODEs were scaled.
+
+ Problem            Dense    Sparse    Banded
+    1   Steps:        868       868       868
+        Jacs:          21        25        21
+        Ders:        1013      1129      1013
+  
+    2   Steps:       1026      1031      1026
+        Jacs:          25        30        25
+        Ders:        1326      1651      1326
+  
+    3   Steps:       1065      1065      1065
+        Jacs:          23        33        23
+        Ders:        1228      1400      1228
+  
+    4   Steps:       1447      1447      1447
+        Jacs:          31        44        31
+        Ders:        1825      2395      1825
+  
+   11   Steps:       4319      4319      4319
+        Jacs:          78       114        78
+        Ders:        4722      5322      4722
+  
+   12   Steps:        789       789       789
+        Jacs:          19        25        19
+        Ders:         950      1136       950
+  
+   13   Steps:        846       846       846
+        Jacs:          19        26        19
+        Ders:        1006      1204      1006
+  
+   14   Steps:       1319      1319      1319
+        Jacs:          28        38        28
+        Ders:        1544      1832      1544
+  
+   15   Steps:       5843      5843      5843
+        Jacs:         104       156       104
+        Ders:        6685      7937      6685
+  
+   21   Steps:       1070      1070      1070
+        Jacs:          25        32        25
+        Ders:        1229      1386      1229
+  
+   22   Steps:        936       936       936
+        Jacs:          22        29        22
+        Ders:        1090      1235      1090
+  
+   23   Steps:        923       923       923
+        Jacs:          22        28        22
+        Ders:        1070      1208      1070
+  
+   24   Steps:        736       737       736
+        Jacs:          19        24        19
+        Ders:         872       989       872
+  
+   25   Steps:        717       717       717
+        Jacs:          17        23        17
+        Ders:         831       948       831
+  
+   31   Steps:        769       712       769
+        Jacs:          17        26        17
+        Ders:        1067      1117      1067
+  
+   32   Steps:        984       910       984
+        Jacs:          20        31        20
+        Ders:        1326      1332      1326
+  
+   33   Steps:       1189      1213      1189
+        Jacs:          28        38        28
+        Ders:        1394      1622      1394
+  
+   34   Steps:        597       590       597
+        Jacs:          17        20        17
+        Ders:         778       851       778
+  
+   35   Steps:        721       705       721
+        Jacs:          18        26        18
+        Ders:        1116      1136      1116
+  
+   36   Steps:        874       839       874
+        Jacs:          22        28        22
+        Ders:        1177      1244      1177
+  
+   41   Steps:       1142      1273      1142
+        Jacs:          35       188        35
+        Ders:        1485      3339      1485
+  
+   42   Steps:       1197      1182      1197
+        Jacs:          25        36        25
+        Ders:        1399      1479      1399
+  
+   43   Steps:        823       788       823
+        Jacs:          21        25        21
+        Ders:        1051      1083      1051
+  
+   44   Steps:       3377      2844      3377
+        Jacs:        1029       678      1029
+        Ders:       10342     10037     10342
+  
+   45   Steps:        467       480       467
+        Jacs:          12        17        12
+        Ders:         592       714       592
+  
+   51   Steps:       2132      2033      2132
+        Jacs:          45        75        45
+        Ders:        3065      3441      3065
+  
+   52   Steps:        563       548       563
+        Jacs:          15        18        15
+        Ders:         654       695       654
+  
+   53   Steps:       1169      1173      1169
+        Jacs:          21        35        21
+        Ders:        1343      1618      1343
+  
+   54   Steps:       2792      2718      2792
+        Jacs:          57        98        57
+        Ders:        4086      4357      4086
+  
+   55   Steps:       1137      1049      1137
+        Jacs:          29        39        29
+        Ders:        1581      1685      1581
+  
+
+
+                     Results for ITOL =  12
+
+ Integration Statistics Follow:
+ The JACSP Jacobian was used.
+ The ODEs were scaled.
+
+ Problem            Dense    Sparse    Banded
+    1   Steps:       1239      1239      1239
+        Jacs:          28        36        28
+        Ders:        1417      1593      1417
+  
+    2   Steps:       1518      1523      1518
+        Jacs:          33        44        33
+        Ders:        1898      2404      1898
+  
+    3   Steps:       1595      1603      1595
+        Jacs:          33        45        33
+        Ders:        1812      2050      1812
+  
+    4   Steps:       2088      2088      2088
+        Jacs:          42        58        42
+        Ders:        2581      3321      2581
+  
+   11   Steps:       6206      6206      6206
+        Jacs:         111       159       111
+        Ders:        6769      7597      6769
+  
+   12   Steps:       1126      1126      1126
+        Jacs:          24        31        24
+        Ders:        1328      1556      1328
+  
+   13   Steps:       1254      1254      1254
+        Jacs:          27        36        27
+        Ders:        1463      1733      1463
+  
+   14   Steps:       2001      2001      2001
+        Jacs:          39        54        39
+        Ders:        2293      2707      2293
+  
+   15   Steps:       7522      7506      7522
+        Jacs:         133       197       133
+        Ders:        8540     10173      8540
+  
+   21   Steps:       1545      1545      1545
+        Jacs:          34        47        34
+        Ders:        1746      1987      1746
+  
+   22   Steps:       1384      1384      1384
+        Jacs:          31        38        31
+        Ders:        1577      1759      1577
+  
+   23   Steps:       1380      1380      1380
+        Jacs:          30        39        30
+        Ders:        1568      1761      1568
+  
+   24   Steps:       1077      1077      1077
+        Jacs:          24        32        24
+        Ders:        1225      1386      1225
+  
+   25   Steps:       1016      1016      1016
+        Jacs:          24        30        24
+        Ders:        1165      1310      1165
+  
+   31   Steps:        896       872       896
+        Jacs:          20        31        20
+        Ders:        1167      1274      1167
+  
+   32   Steps:       1204      1208      1204
+        Jacs:          24        43        24
+        Ders:        1491      1701      1491
+  
+   33   Steps:       1730      1733      1730
+        Jacs:          38        54        38
+        Ders:        1984      2263      1984
+  
+   34   Steps:        788       764       788
+        Jacs:          21        24        21
+        Ders:         999      1054       999
+  
+   35   Steps:        939      1009       939
+        Jacs:          22        36        22
+        Ders:        1355      1556      1355
+  
+   36   Steps:       1145      1157      1145
+        Jacs:          28        38        28
+        Ders:        1449      1600      1449
+  
+   41   Steps:       1690      1731      1690
+        Jacs:         142       143       142
+        Ders:        2674      3293      2674
+  
+   42   Steps:       1749      1758      1749
+        Jacs:          33        53        33
+        Ders:        1981      2138      1981
+  
+   43   Steps:       1086      1079      1086
+        Jacs:          25        32        25
+        Ders:        1299      1379      1299
+  
+   44   Steps:       4956      5150      4956
+        Jacs:        1323      1518      1323
+        Ders:       14098     21439     14098
+  
+   45   Steps:        669       664       669
+        Jacs:          16        20        16
+        Ders:         834       923       834
+  
+   51   Steps:       2895      2646      2895
+        Jacs:          55        84        55
+        Ders:        4062      4201      4062
+  
+   52   Steps:        778       779       778
+        Jacs:          19        26        19
+        Ders:         894       968       894
+  
+   53   Steps:       1680      1674      1680
+        Jacs:          29        49        29
+        Ders:        1900      2232      1900
+  
+   54   Steps:       3881      3815      3881
+        Jacs:          72       137        72
+        Ders:        5628      6013      5628
+  
+   55   Steps:       1458      1420      1458
+        Jacs:          48        58        48
+        Ders:        1999      2240      1999
+  
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        127 f-s =        192 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.47076D-04    0.45400D-04    0.16763D-05
+  2   -0.32451D-05    0.20612D-08    0.32471D-05
+  3    0.22841D-18    0.28230D-55    0.22841D-18
+  4    0.15703D-17    0.52358D-51    0.15703D-17
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =   1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        141 f-s =        224 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D+00    0.99999D+00    0.31960D-06
+  2    0.99999D+00    0.99999D+00    0.31975D-06
+  3    0.99999D+00    0.99999D+00    0.50136D-06
+  4    0.99999D+00    0.99999D+00    0.56583D-06
+  5    0.99999D+00    0.99999D+00    0.38941D-06
+  6    0.10000D+01    0.10000D+01    0.58933D-07
+  7    0.10000D+01    0.10000D+01    0.21570D-06
+  8    0.10000D+01    0.10000D+01    0.27353D-06
+  9    0.10000D+01    0.10000D+01    0.12162D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        290
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         39
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.12788D+00
+    0.10000D+01
+ Steps =        152 f-s =        221 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13533D-02   -0.13534D-02    0.14764D-07
+  2    0.13685D-01    0.13685D-01    0.16812D-06
+  3    0.19229D+00    0.19229D+00    0.20977D-05
+  4    0.13534D+00    0.13534D+00    0.38712D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        189 f-s =        291 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.36792D+00    0.36788D+00    0.35755D-04
+  2    0.12636D-06    0.12659D-13    0.12636D-06
+  3   -0.10000D-10    0.19115D-41    0.10000D-10
+  4   -0.10809D-15    0.22774D-54    0.10809D-15
+  5    0.10328D-19    0.00000D+00    0.10328D-19
+  6    0.87705D-28    0.00000D+00    0.87705D-28
+  7    0.18845D-30    0.00000D+00    0.18845D-30
+  8    0.71774D-35    0.00000D+00    0.71774D-35
+  9   -0.21962D-39    0.00000D+00    0.21962D-39
+ 10    0.44604D-45    0.00000D+00    0.44604D-45
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        340
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         40
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =        520 f-s =        604 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1    0.18464D-04    0.10042D-08    0.18463D-04
+  2   -0.58717D-04    0.20955D-08    0.58719D-04
+  3   -0.23138D-34    0.00000D+00    0.23138D-34
+  4   -0.52283D-34   -0.18767D-79    0.52283D-34
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        107 f-s =        154 J-s =          4
+ Computed and reference solutions and absolute errors follow:
+  1   -0.18969D-09    0.61813D-30    0.18969D-09
+  2   -0.16812D-08    0.89637D-30    0.16812D-08
+  3    0.25452D-07    0.27384D-26    0.25452D-07
+  4    0.11727D-06    0.20612D-08    0.11521D-06
+  5    0.47978D-04    0.45400D-04    0.25783D-05
+  6    0.13534D+00    0.13534D+00    0.23688D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        115 f-s =        166 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1   -0.27832D-08   -0.10768D-27    0.27832D-08
+  2   -0.44455D-09    0.54550D-27    0.44455D-09
+  3    0.31585D-09    0.27385D-26    0.31585D-09
+  4   -0.12067D-06    0.20612D-08    0.12273D-06
+  5    0.45765D-04    0.45400D-04    0.36548D-06
+  6    0.13534D+00    0.13534D+00    0.89097D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        182 f-s =        236 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.40260D-11    0.11886D-21    0.40260D-11
+  2    0.24944D-12   -0.23259D-21    0.24944D-12
+  3    0.41539D-11    0.15179D-34    0.41539D-11
+  4    0.30879D-05    0.20612D-08    0.30858D-05
+  5    0.69917D-04    0.45400D-04    0.24517D-04
+  6    0.13534D+00    0.13534D+00    0.61092D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.76336D+00
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       2551 f-s =       2963 J-s =         46
+ Computed and reference solutions and absolute errors follow:
+  1   -0.16206D-04   -0.23669D-13    0.16206D-04
+  2   -0.66289D-05    0.34489D-13    0.66289D-05
+  3    0.18048D-34    0.18049D-34    0.47720D-39
+  4    0.20612D-08    0.20612D-08    0.34555D-16
+  5    0.45400D-04    0.45400D-04    0.56009D-13
+  6    0.13534D+00    0.13534D+00    0.10830D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.98039D+00
+    0.97087D+00
+    0.10000D+01
+    0.10000D+01
+ Steps =        135 f-s =        196 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.37231D-03    0.39247D-03    0.20165D-04
+  2    0.38850D-03    0.38850D-03    0.31535D-08
+  3    0.40000D-03    0.40000D-03    0.70164D-11
+  4    0.20000D-01    0.20000D-01    0.12143D-15
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        135 f-s =        191 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.28851D-06
+  2    0.40000D-01    0.40000D-01    0.74441D-07
+  3    0.40016D-01    0.40016D-01    0.44910D-07
+  4    0.40032D-01    0.40032D-01    0.49931D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        127 f-s =        180 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.30005D-05
+  2    0.40000D+00    0.40000D+00    0.25814D-05
+  3    0.41600D+00    0.41600D+00    0.25610D-05
+  4    0.43330D+00    0.43331D+00    0.27149D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.50000D+00
+    0.25000D+00
+    0.50000D-01
+    0.23810D-02
+ Steps =        114 f-s =        162 J-s =          4
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.34595D-08
+  2    0.10000D+01    0.10000D+01    0.10295D-07
+  3    0.10000D+01    0.10000D+01    0.40867D-07
+  4    0.10000D+01    0.10000D+01    0.23606D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.50000D+00
+    0.12500D+00
+    0.73529D-02
+    0.26954D-04
+ Steps =        103 f-s =        135 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.22995D-08
+  2    0.10000D+01    0.10000D+01    0.77431D-08
+  3    0.10000D+01    0.10000D+01    0.25669D-07
+  4    0.10008D+01    0.10008D+01    0.67400D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         72 f-s =        136 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.99749D+00    0.99741D+00    0.84092D-04
+  2    0.10004D+01    0.10004D+01    0.38693D-04
+  3    0.10000D+01    0.10000D+01    0.99920D-15
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        173 f-s =        266 J-s =          4
+ Computed and reference solutions and absolute errors follow:
+  1    0.71582D+00    0.71583D+00    0.27899D-05
+  2    0.25166D+00    0.25166D+00    0.32104D-05
+  3    0.99708D+00    0.99707D+00    0.97897D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        200 f-s =        307 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.27697D-06
+  2    0.56309D-02    0.56309D-02    0.50783D-09
+  3    0.10007D+01    0.10007D+01    0.76936D-06
+  4    0.65374D+00    0.65374D+00    0.28704D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.70423D+00
+    0.00000D+00
+ Steps =         99 f-s =        159 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.59767D+00    0.59765D+00    0.15211D-04
+  2    0.98756D+00    0.98757D+00    0.10712D-04
+  3   -0.51034D+00   -0.51035D+00    0.56129D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =         70 f-s =        130 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99961D+00   -0.99964D+00    0.33188D-04
+  2    0.99927D+00    0.99933D+00    0.55601D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         52
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         32
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        126 f-s =        198 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.77224D-06
+  2    0.99731D+00    0.99730D+00    0.52139D-05
+  3    0.10005D+01    0.10005D+01    0.16966D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        129 f-s =        192 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.39074D-06
+  2    0.12270D-05   -0.72884D-12    0.12270D-05
+  3   -0.12415D-05    0.15348D-11    0.12415D-05
+  4    0.47051D-06   -0.10837D-11    0.47051D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.99010D+00
+    0.00000D+00
+ Steps =        178 f-s =        245 J-s =          4
+ Computed and reference solutions and absolute errors follow:
+  1   -0.57302D+00   -0.57361D+00    0.59786D-03
+  2    0.56511D-01    0.56344D-01    0.16702D-03
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         52
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         32
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.61350D+00
+    0.62500D+00
+    0.00000D+00
+ Steps =        150 f-s =        273 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.26039D-02    0.26092D-02    0.53308D-05
+  2    0.33174D-02    0.33231D-02    0.57364D-05
+  3    0.99914D+00    0.99911D+00    0.35648D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.00000D+00
+   -0.67797D-01
+   -0.64516D-01
+   -0.61350D-01
+ Steps =        241 f-s =        341 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.69445D+00    0.69444D+00    0.60845D-05
+  2   -0.67796D+00   -0.67797D+00    0.59401D-05
+  3    0.11291D-04   -0.14501D-07    0.11306D-04
+  4   -0.10737D-04    0.13789D-07    0.10750D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         73 f-s =        104 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.91935D+00    0.91936D+00    0.73767D-05
+  2    0.94672D+00    0.94674D+00    0.18855D-04
+  3    0.99778D+00    0.99777D+00    0.11419D-04
+  4    0.94183D+00    0.94183D+00    0.27713D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.62893D+00
+    0.00000D+00
+    0.49587D+00
+    0.10000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =        349 f-s =        664 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1    0.10009D+01    0.10009D+01    0.30154D-05
+  2    0.16061D-03    0.15223D-03    0.83831D-05
+  3    0.99887D+00    0.99887D+00    0.29930D-05
+  4    0.32490D-02    0.32420D-02    0.69770D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        108
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         38
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =         95 f-s =        137 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.39126D+00    0.39127D+00    0.92975D-05
+  2    0.52567D+00    0.52568D+00    0.12492D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         56
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        191 f-s =        270 J-s =          4
+ Computed and reference solutions and absolute errors follow:
+  1    0.42509D-07    0.80898D-07    0.38389D-07
+  2    0.23608D+00    0.23607D+00    0.70784D-05
+  3    0.20853D-04    0.20426D-04    0.42713D-06
+  4    0.99859D+00    0.99860D+00    0.92601D-05
+  5    0.99878D+00    0.99879D+00    0.13261D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         40
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.33898D-04
+    0.62147D-03
+    0.12780D-03
+ Nonnegativity will be enforced for this problem.
+ Steps =        685 f-s =       1058 J-s =         21
+ Computed and reference solutions and absolute errors follow:
+  1    0.35941D-04    0.37443D-04    0.15026D-05
+  2    0.73856D-03    0.72895D-03    0.96101D-05
+  3    0.92568D-04    0.96463D-04    0.38946D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         80
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10015D+01
+    0.10001D+01
+    0.26527D+00
+    0.98220D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        183 f-s =        284 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.50999D+00    0.50999D+00    0.57882D-09
+  2    0.44958D+00    0.44958D+00    0.51633D-09
+  3    0.99988D+00    0.99988D+00    0.11483D-08
+  4    0.99949D+00    0.99949D+00    0.13535D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        108
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         38
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        127 f-s =        208 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.47076D-04    0.45400D-04    0.16763D-05
+  2   -0.32451D-05    0.20612D-08    0.32471D-05
+  3    0.22841D-18    0.28230D-55    0.22841D-18
+  4    0.15703D-17    0.52358D-51    0.15703D-17
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =   1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        141 f-s =        287 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D+00    0.99999D+00    0.34056D-06
+  2    0.99999D+00    0.99999D+00    0.34071D-06
+  3    0.99999D+00    0.99999D+00    0.51633D-06
+  4    0.99999D+00    0.99999D+00    0.57517D-06
+  5    0.99999D+00    0.99999D+00    0.39637D-06
+  6    0.10000D+01    0.10000D+01    0.66298D-07
+  7    0.10000D+01    0.10000D+01    0.20772D-06
+  8    0.10000D+01    0.10000D+01    0.26699D-06
+  9    0.10000D+01    0.10000D+01    0.11871D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        380
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        762
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.12788D+00
+    0.10000D+01
+ Steps =        152 f-s =        249 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13533D-02   -0.13534D-02    0.14590D-07
+  2    0.13685D-01    0.13685D-01    0.16621D-06
+  3    0.19229D+00    0.19229D+00    0.20731D-05
+  4    0.13534D+00    0.13534D+00    0.38924D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        189 f-s =        391 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.36792D+00    0.36788D+00    0.35755D-04
+  2    0.12636D-06    0.12659D-13    0.12636D-06
+  3   -0.10000D-10    0.19115D-41    0.10000D-10
+  4   -0.10809D-15    0.22774D-54    0.10809D-15
+  5    0.10328D-19    0.00000D+00    0.10328D-19
+  6    0.87705D-28    0.00000D+00    0.87705D-28
+  7    0.18845D-30    0.00000D+00    0.18845D-30
+  8    0.71774D-35    0.00000D+00    0.71774D-35
+  9   -0.21962D-39    0.00000D+00    0.21962D-39
+ 10    0.44605D-45    0.00000D+00    0.44605D-45
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        450
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        913
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =        520 f-s =        684 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1    0.18463D-04    0.10042D-08    0.18462D-04
+  2   -0.58716D-04    0.20955D-08    0.58718D-04
+  3   -0.23138D-34    0.00000D+00    0.23138D-34
+  4   -0.52279D-34   -0.18767D-79    0.52279D-34
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        107 f-s =        190 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1   -0.18969D-09    0.61813D-30    0.18969D-09
+  2   -0.16812D-08    0.89637D-30    0.16812D-08
+  3    0.25452D-07    0.27384D-26    0.25452D-07
+  4    0.11727D-06    0.20612D-08    0.11521D-06
+  5    0.47978D-04    0.45400D-04    0.25783D-05
+  6    0.13534D+00    0.13534D+00    0.23688D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        206
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        393
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        115 f-s =        196 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1   -0.27832D-08   -0.10768D-27    0.27832D-08
+  2   -0.44455D-09    0.54550D-27    0.44455D-09
+  3    0.31585D-09    0.27385D-26    0.31585D-09
+  4   -0.12067D-06    0.20612D-08    0.12273D-06
+  5    0.45765D-04    0.45400D-04    0.36548D-06
+  6    0.13534D+00    0.13534D+00    0.89097D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        206
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        393
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        182 f-s =        302 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.40258D-11    0.11886D-21    0.40258D-11
+  2    0.24963D-12   -0.23259D-21    0.24963D-12
+  3    0.41539D-11    0.15179D-34    0.41539D-11
+  4    0.30879D-05    0.20612D-08    0.30858D-05
+  5    0.69917D-04    0.45400D-04    0.24517D-04
+  6    0.13534D+00    0.13534D+00    0.61092D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        206
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        393
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.76336D+00
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       2551 f-s =       3551 J-s =         72
+ Computed and reference solutions and absolute errors follow:
+  1   -0.16213D-04   -0.23669D-13    0.16213D-04
+  2   -0.66346D-05    0.34489D-13    0.66346D-05
+  3    0.18048D-34    0.18049D-34    0.47720D-39
+  4    0.20612D-08    0.20612D-08    0.34558D-16
+  5    0.45400D-04    0.45400D-04    0.55975D-13
+  6    0.13534D+00    0.13534D+00    0.10810D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        206
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        393
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.98039D+00
+    0.97087D+00
+    0.10000D+01
+    0.10000D+01
+ Steps =        144 f-s =        237 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.39045D-03    0.39247D-03    0.20198D-05
+  2    0.38850D-03    0.38850D-03    0.27523D-08
+  3    0.40000D-03    0.40000D-03    0.18924D-14
+  4    0.20000D-01    0.20000D-01    0.34694D-17
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        134 f-s =        210 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.38024D-05
+  2    0.40000D-01    0.40000D-01    0.35167D-07
+  3    0.40016D-01    0.40016D-01    0.14096D-06
+  4    0.40032D-01    0.40032D-01    0.98699D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        127 f-s =        198 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.74788D-06
+  2    0.40000D+00    0.40000D+00    0.23855D-06
+  3    0.41600D+00    0.41600D+00    0.14033D-06
+  4    0.43331D+00    0.43331D+00    0.17981D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.50000D+00
+    0.25000D+00
+    0.50000D-01
+    0.23810D-02
+ Steps =        107 f-s =        175 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.27035D-06
+  2    0.10000D+01    0.10000D+01    0.59882D-06
+  3    0.10000D+01    0.10000D+01    0.10899D-05
+  4    0.10000D+01    0.10000D+01    0.21360D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.50000D+00
+    0.12500D+00
+    0.73529D-02
+    0.26954D-04
+ Steps =         97 f-s =        158 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.12431D-05
+  2    0.10000D+01    0.10000D+01    0.27618D-05
+  3    0.99999D+00    0.10000D+01    0.54775D-05
+  4    0.10007D+01    0.10008D+01    0.11033D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         72 f-s =        151 J-s =          4
+ Computed and reference solutions and absolute errors follow:
+  1    0.99749D+00    0.99741D+00    0.83931D-04
+  2    0.10004D+01    0.10004D+01    0.38716D-04
+  3    0.10000D+01    0.10000D+01    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        155 f-s =        267 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.71584D+00    0.71583D+00    0.14253D-04
+  2    0.25167D+00    0.25166D+00    0.15227D-04
+  3    0.99702D+00    0.99707D+00    0.50011D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        209 f-s =        346 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.16431D-06
+  2    0.56309D-02    0.56309D-02    0.11425D-07
+  3    0.10007D+01    0.10007D+01    0.45641D-06
+  4    0.65374D+00    0.65374D+00    0.15761D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.70423D+00
+    0.00000D+00
+ Steps =         97 f-s =        170 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.59768D+00    0.59765D+00    0.23338D-04
+  2    0.98755D+00    0.98757D+00    0.16435D-04
+  3   -0.51037D+00   -0.51035D+00    0.22785D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =         75 f-s =        142 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99990D+00   -0.99964D+00    0.25685D-03
+  2    0.99958D+00    0.99933D+00    0.25047D-03
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         58
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        129 f-s =        208 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.12233D-05
+  2    0.99729D+00    0.99730D+00    0.82648D-05
+  3    0.10005D+01    0.10005D+01    0.24378D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        124 f-s =        199 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.20451D-08
+  2   -0.40738D-08   -0.72884D-12    0.40731D-08
+  3    0.17468D-08    0.15348D-11    0.17453D-08
+  4    0.68347D-09   -0.10837D-11    0.68455D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.99010D+00
+    0.00000D+00
+ Steps =        166 f-s =        286 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1   -0.57293D+00   -0.57361D+00    0.68611D-03
+  2    0.56530D-01    0.56344D-01    0.18554D-03
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         58
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.61350D+00
+    0.62500D+00
+    0.00000D+00
+ Steps =        134 f-s =        206 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.26134D-02    0.26092D-02    0.41762D-05
+  2    0.33277D-02    0.33231D-02    0.46104D-05
+  3    0.99912D+00    0.99911D+00    0.18213D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.00000D+00
+   -0.67797D-01
+   -0.64516D-01
+   -0.61350D-01
+ Steps =        258 f-s =        414 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.69444D+00    0.69444D+00    0.10030D-06
+  2   -0.67797D+00   -0.67797D+00    0.97920D-07
+  3    0.17210D-06   -0.14501D-07    0.18660D-06
+  4   -0.16321D-06    0.13789D-07    0.17700D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         80 f-s =        139 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.91936D+00    0.91936D+00    0.54950D-05
+  2    0.94673D+00    0.94674D+00    0.40962D-05
+  3    0.99777D+00    0.99777D+00    0.12227D-05
+  4    0.94182D+00    0.94183D+00    0.44063D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.62893D+00
+    0.00000D+00
+    0.49587D+00
+    0.10000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =        252 f-s =        599 J-s =         21
+ Computed and reference solutions and absolute errors follow:
+  1    0.10009D+01    0.10009D+01    0.75494D-05
+  2    0.15222D-03    0.15223D-03    0.14002D-07
+  3    0.99888D+00    0.99887D+00    0.74935D-05
+  4    0.32420D-02    0.32420D-02    0.11656D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        128
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        221
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =         95 f-s =        152 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.39126D+00    0.39127D+00    0.92658D-05
+  2    0.52567D+00    0.52568D+00    0.12438D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         62
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        521 f-s =        909 J-s =         21
+ Computed and reference solutions and absolute errors follow:
+  1    0.80905D-07    0.80898D-07    0.69005D-11
+  2    0.23606D+00    0.23607D+00    0.67522D-05
+  3    0.20426D-04    0.20426D-04    0.16430D-09
+  4    0.99861D+00    0.99860D+00    0.79838D-05
+  5    0.99882D+00    0.99879D+00    0.36554D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        170
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        303
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.33898D-04
+    0.62147D-03
+    0.12780D-03
+ Nonnegativity will be enforced for this problem.
+ Steps =        654 f-s =       1147 J-s =         35
+ Computed and reference solutions and absolute errors follow:
+  1    0.35929D-04    0.37443D-04    0.15141D-05
+  2    0.73555D-03    0.72895D-03    0.65989D-05
+  3    0.94699D-04    0.96463D-04    0.17634D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        153
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10015D+01
+    0.10001D+01
+    0.26527D+00
+    0.98220D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        193 f-s =        341 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.50999D+00    0.50999D+00    0.58759D-09
+  2    0.44958D+00    0.44958D+00    0.59326D-09
+  3    0.99988D+00    0.99988D+00    0.10778D-08
+  4    0.99949D+00    0.99949D+00    0.20250D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        128
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        221
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        127 f-s =        192 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.47076D-04    0.45400D-04    0.16763D-05
+  2   -0.32451D-05    0.20612D-08    0.32471D-05
+  3    0.22841D-18    0.28230D-55    0.22841D-18
+  4    0.15703D-17    0.52358D-51    0.15703D-17
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =   1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        141 f-s =        224 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D+00    0.99999D+00    0.31960D-06
+  2    0.99999D+00    0.99999D+00    0.31975D-06
+  3    0.99999D+00    0.99999D+00    0.50136D-06
+  4    0.99999D+00    0.99999D+00    0.56583D-06
+  5    0.99999D+00    0.99999D+00    0.38941D-06
+  6    0.10000D+01    0.10000D+01    0.58933D-07
+  7    0.10000D+01    0.10000D+01    0.21570D-06
+  8    0.10000D+01    0.10000D+01    0.27353D-06
+  9    0.10000D+01    0.10000D+01    0.12162D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        506
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         39
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.12788D+00
+    0.10000D+01
+ Steps =        152 f-s =        221 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13533D-02   -0.13534D-02    0.14764D-07
+  2    0.13685D-01    0.13685D-01    0.16812D-06
+  3    0.19229D+00    0.19229D+00    0.20977D-05
+  4    0.13534D+00    0.13534D+00    0.38712D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        189 f-s =        291 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.36792D+00    0.36788D+00    0.35755D-04
+  2    0.12636D-06    0.12659D-13    0.12636D-06
+  3   -0.10000D-10    0.19115D-41    0.10000D-10
+  4   -0.10809D-15    0.22774D-54    0.10809D-15
+  5    0.10328D-19    0.00000D+00    0.10328D-19
+  6    0.87705D-28    0.00000D+00    0.87705D-28
+  7    0.18845D-30    0.00000D+00    0.18845D-30
+  8    0.71774D-35    0.00000D+00    0.71774D-35
+  9   -0.21962D-39    0.00000D+00    0.21962D-39
+ 10    0.44604D-45    0.00000D+00    0.44604D-45
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        610
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         40
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =        520 f-s =        604 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1    0.18464D-04    0.10042D-08    0.18463D-04
+  2   -0.58717D-04    0.20955D-08    0.58719D-04
+  3   -0.23138D-34    0.00000D+00    0.23138D-34
+  4   -0.52283D-34   -0.18767D-79    0.52283D-34
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        107 f-s =        154 J-s =          4
+ Computed and reference solutions and absolute errors follow:
+  1   -0.18969D-09    0.61813D-30    0.18969D-09
+  2   -0.16812D-08    0.89637D-30    0.16812D-08
+  3    0.25452D-07    0.27384D-26    0.25452D-07
+  4    0.11727D-06    0.20612D-08    0.11521D-06
+  5    0.47978D-04    0.45400D-04    0.25783D-05
+  6    0.13534D+00    0.13534D+00    0.23688D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        254
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        115 f-s =        166 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1   -0.27832D-08   -0.10768D-27    0.27832D-08
+  2   -0.44455D-09    0.54550D-27    0.44455D-09
+  3    0.31585D-09    0.27385D-26    0.31585D-09
+  4   -0.12067D-06    0.20612D-08    0.12273D-06
+  5    0.45765D-04    0.45400D-04    0.36548D-06
+  6    0.13534D+00    0.13534D+00    0.89097D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        254
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        182 f-s =        236 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.40260D-11    0.11886D-21    0.40260D-11
+  2    0.24944D-12   -0.23259D-21    0.24944D-12
+  3    0.41539D-11    0.15179D-34    0.41539D-11
+  4    0.30879D-05    0.20612D-08    0.30858D-05
+  5    0.69917D-04    0.45400D-04    0.24517D-04
+  6    0.13534D+00    0.13534D+00    0.61092D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        254
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.76336D+00
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       2551 f-s =       2963 J-s =         46
+ Computed and reference solutions and absolute errors follow:
+  1   -0.16206D-04   -0.23669D-13    0.16206D-04
+  2   -0.66289D-05    0.34489D-13    0.66289D-05
+  3    0.18048D-34    0.18049D-34    0.47720D-39
+  4    0.20612D-08    0.20612D-08    0.34555D-16
+  5    0.45400D-04    0.45400D-04    0.56009D-13
+  6    0.13534D+00    0.13534D+00    0.10830D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        254
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.98039D+00
+    0.97087D+00
+    0.10000D+01
+    0.10000D+01
+ Steps =        135 f-s =        196 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.37231D-03    0.39247D-03    0.20165D-04
+  2    0.38850D-03    0.38850D-03    0.31535D-08
+  3    0.40000D-03    0.40000D-03    0.70164D-11
+  4    0.20000D-01    0.20000D-01    0.12143D-15
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        135 f-s =        191 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.28851D-06
+  2    0.40000D-01    0.40000D-01    0.74441D-07
+  3    0.40016D-01    0.40016D-01    0.44910D-07
+  4    0.40032D-01    0.40032D-01    0.49931D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        127 f-s =        180 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.30005D-05
+  2    0.40000D+00    0.40000D+00    0.25814D-05
+  3    0.41600D+00    0.41600D+00    0.25610D-05
+  4    0.43330D+00    0.43331D+00    0.27149D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.50000D+00
+    0.25000D+00
+    0.50000D-01
+    0.23810D-02
+ Steps =        114 f-s =        162 J-s =          4
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.34595D-08
+  2    0.10000D+01    0.10000D+01    0.10295D-07
+  3    0.10000D+01    0.10000D+01    0.40867D-07
+  4    0.10000D+01    0.10000D+01    0.23606D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.50000D+00
+    0.12500D+00
+    0.73529D-02
+    0.26954D-04
+ Steps =        103 f-s =        135 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.22995D-08
+  2    0.10000D+01    0.10000D+01    0.77431D-08
+  3    0.10000D+01    0.10000D+01    0.25669D-07
+  4    0.10008D+01    0.10008D+01    0.67400D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         72 f-s =        136 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.99749D+00    0.99741D+00    0.84092D-04
+  2    0.10004D+01    0.10004D+01    0.38693D-04
+  3    0.10000D+01    0.10000D+01    0.99920D-15
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        173 f-s =        266 J-s =          4
+ Computed and reference solutions and absolute errors follow:
+  1    0.71582D+00    0.71583D+00    0.27899D-05
+  2    0.25166D+00    0.25166D+00    0.32104D-05
+  3    0.99708D+00    0.99707D+00    0.97897D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        200 f-s =        307 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.27697D-06
+  2    0.56309D-02    0.56309D-02    0.50783D-09
+  3    0.10007D+01    0.10007D+01    0.76936D-06
+  4    0.65374D+00    0.65374D+00    0.28704D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.70423D+00
+    0.00000D+00
+ Steps =         99 f-s =        159 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.59767D+00    0.59765D+00    0.15211D-04
+  2    0.98756D+00    0.98757D+00    0.10712D-04
+  3   -0.51034D+00   -0.51035D+00    0.56129D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =         70 f-s =        130 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99961D+00   -0.99964D+00    0.33188D-04
+  2    0.99927D+00    0.99933D+00    0.55601D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         58
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         32
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        126 f-s =        198 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.77224D-06
+  2    0.99731D+00    0.99730D+00    0.52139D-05
+  3    0.10005D+01    0.10005D+01    0.16966D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        129 f-s =        192 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.39074D-06
+  2    0.12270D-05   -0.72884D-12    0.12270D-05
+  3   -0.12415D-05    0.15348D-11    0.12415D-05
+  4    0.47051D-06   -0.10837D-11    0.47051D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.99010D+00
+    0.00000D+00
+ Steps =        178 f-s =        245 J-s =          4
+ Computed and reference solutions and absolute errors follow:
+  1   -0.57302D+00   -0.57361D+00    0.59786D-03
+  2    0.56511D-01    0.56344D-01    0.16702D-03
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         58
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         32
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.61350D+00
+    0.62500D+00
+    0.00000D+00
+ Steps =        150 f-s =        273 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.26039D-02    0.26092D-02    0.53308D-05
+  2    0.33174D-02    0.33231D-02    0.57364D-05
+  3    0.99914D+00    0.99911D+00    0.35648D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.00000D+00
+   -0.67797D-01
+   -0.64516D-01
+   -0.61350D-01
+ Steps =        241 f-s =        341 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.69445D+00    0.69444D+00    0.60845D-05
+  2   -0.67796D+00   -0.67797D+00    0.59401D-05
+  3    0.11291D-04   -0.14501D-07    0.11306D-04
+  4   -0.10737D-04    0.13789D-07    0.10750D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         73 f-s =        104 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.91935D+00    0.91936D+00    0.73767D-05
+  2    0.94672D+00    0.94674D+00    0.18855D-04
+  3    0.99778D+00    0.99777D+00    0.11419D-04
+  4    0.94183D+00    0.94183D+00    0.27713D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.62893D+00
+    0.00000D+00
+    0.49587D+00
+    0.10000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =        349 f-s =        664 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1    0.10009D+01    0.10009D+01    0.30154D-05
+  2    0.16061D-03    0.15223D-03    0.83831D-05
+  3    0.99887D+00    0.99887D+00    0.29930D-05
+  4    0.32490D-02    0.32420D-02    0.69770D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        144
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         38
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =         95 f-s =        137 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.39126D+00    0.39127D+00    0.92975D-05
+  2    0.52567D+00    0.52568D+00    0.12492D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         62
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        191 f-s =        270 J-s =          4
+ Computed and reference solutions and absolute errors follow:
+  1    0.42509D-07    0.80898D-07    0.38389D-07
+  2    0.23608D+00    0.23607D+00    0.70784D-05
+  3    0.20853D-04    0.20426D-04    0.42713D-06
+  4    0.99859D+00    0.99860D+00    0.92601D-05
+  5    0.99878D+00    0.99879D+00    0.13261D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        200
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         40
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.33898D-04
+    0.62147D-03
+    0.12780D-03
+ Nonnegativity will be enforced for this problem.
+ Steps =        685 f-s =       1058 J-s =         21
+ Computed and reference solutions and absolute errors follow:
+  1    0.35941D-04    0.37443D-04    0.15026D-05
+  2    0.73856D-03    0.72895D-03    0.96101D-05
+  3    0.92568D-04    0.96463D-04    0.38946D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         98
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10015D+01
+    0.10001D+01
+    0.26527D+00
+    0.98220D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        183 f-s =        284 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.50999D+00    0.50999D+00    0.57882D-09
+  2    0.44958D+00    0.44958D+00    0.51633D-09
+  3    0.99988D+00    0.99988D+00    0.11483D-08
+  4    0.99949D+00    0.99949D+00    0.13535D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        144
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         38
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        168 f-s =        242 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.45705D-04    0.45400D-04    0.30490D-06
+  2   -0.90870D-08    0.20612D-08    0.11148D-07
+  3    0.24196D-22    0.28230D-55    0.24196D-22
+  4   -0.15669D-21    0.52358D-51    0.15669D-21
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =   1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        208 f-s =        321 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D+00    0.99999D+00    0.23459D-05
+  2    0.99999D+00    0.99999D+00    0.23458D-05
+  3    0.99999D+00    0.99999D+00    0.22002D-05
+  4    0.99999D+00    0.99999D+00    0.19703D-05
+  5    0.99999D+00    0.99999D+00    0.16776D-05
+  6    0.99999D+00    0.10000D+01    0.13404D-05
+  7    0.10000D+01    0.10000D+01    0.97915D-06
+  8    0.10000D+01    0.10000D+01    0.61606D-06
+  9    0.10000D+01    0.10000D+01    0.27382D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        290
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         39
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.12788D+00
+    0.10000D+01
+ Steps =        207 f-s =        301 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13533D-02   -0.13534D-02    0.70172D-08
+  2    0.13685D-01    0.13685D-01    0.71839D-07
+  3    0.19229D+00    0.19229D+00    0.99705D-06
+  4    0.13533D+00    0.13534D+00    0.61468D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        254 f-s =        390 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.76940D-06
+  2    0.34439D-06    0.12659D-13    0.34439D-06
+  3   -0.44767D-10    0.19115D-41    0.44767D-10
+  4   -0.33859D-18    0.22774D-54    0.33859D-18
+  5   -0.21641D-22    0.00000D+00    0.21641D-22
+  6    0.28625D-31    0.00000D+00    0.28625D-31
+  7   -0.17291D-39    0.00000D+00    0.17291D-39
+  8   -0.77559D-46    0.00000D+00    0.77559D-46
+  9    0.19301D-53    0.00000D+00    0.19301D-53
+ 10    0.40515D-60    0.00000D+00    0.40515D-60
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        340
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         40
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =        686 f-s =        795 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1   -0.52997D-05    0.10042D-08    0.53007D-05
+  2    0.19335D-04    0.20955D-08    0.19333D-04
+  3   -0.57221D-42    0.00000D+00    0.57221D-42
+  4    0.11111D-41   -0.18767D-79    0.11111D-41
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        137 f-s =        201 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.13210D-11    0.61813D-30    0.13210D-11
+  2   -0.47809D-12    0.89637D-30    0.47809D-12
+  3    0.17546D-08    0.27384D-26    0.17546D-08
+  4    0.28827D-07    0.20612D-08    0.26765D-07
+  5    0.47562D-04    0.45400D-04    0.21619D-05
+  6    0.13534D+00    0.13534D+00    0.13840D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        148 f-s =        207 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1   -0.10780D-10   -0.10768D-27    0.10780D-10
+  2   -0.17657D-09    0.54550D-27    0.17657D-09
+  3   -0.25324D-09    0.27385D-26    0.25324D-09
+  4    0.26160D-07    0.20612D-08    0.24099D-07
+  5    0.47467D-04    0.45400D-04    0.20675D-05
+  6    0.13534D+00    0.13534D+00    0.13337D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        276 f-s =        343 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1   -0.22556D-10    0.11886D-21    0.22556D-10
+  2   -0.37063D-10   -0.23259D-21    0.37063D-10
+  3   -0.33230D-14    0.15179D-34    0.33230D-14
+  4    0.13648D-07    0.20612D-08    0.11587D-07
+  5    0.46631D-04    0.45400D-04    0.12312D-05
+  6    0.13534D+00    0.13534D+00    0.92459D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.76336D+00
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       2619 f-s =       3088 J-s =         49
+ Computed and reference solutions and absolute errors follow:
+  1   -0.22340D-04   -0.23669D-13    0.22340D-04
+  2   -0.15279D-05    0.34489D-13    0.15279D-05
+  3    0.18048D-34    0.18049D-34    0.31899D-39
+  4    0.20612D-08    0.20612D-08    0.32921D-16
+  5    0.45400D-04    0.45400D-04    0.15297D-13
+  6    0.13534D+00    0.13534D+00    0.96778D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.98039D+00
+    0.97087D+00
+    0.10000D+01
+    0.10000D+01
+ Steps =        182 f-s =        254 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.39226D-03    0.39247D-03    0.20967D-06
+  2    0.38850D-03    0.38850D-03    0.11918D-11
+  3    0.40000D-03    0.40000D-03    0.00000D+00
+  4    0.20000D-01    0.20000D-01    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        177 f-s =        252 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.55706D-07
+  2    0.40000D-01    0.40000D-01    0.46668D-08
+  3    0.40016D-01    0.40016D-01    0.45689D-08
+  4    0.40032D-01    0.40032D-01    0.45084D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        174 f-s =        249 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.37237D-07
+  2    0.40000D+00    0.40000D+00    0.35114D-07
+  3    0.41600D+00    0.41600D+00    0.33077D-07
+  4    0.43331D+00    0.43331D+00    0.34506D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.50000D+00
+    0.25000D+00
+    0.50000D-01
+    0.23810D-02
+ Steps =        153 f-s =        216 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.33900D-07
+  2    0.10000D+01    0.10000D+01    0.74445D-07
+  3    0.10000D+01    0.10000D+01    0.13201D-06
+  4    0.10000D+01    0.10000D+01    0.24967D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.50000D+00
+    0.12500D+00
+    0.73529D-02
+    0.26954D-04
+ Steps =        147 f-s =        208 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.92876D-07
+  2    0.10000D+01    0.10000D+01    0.20651D-06
+  3    0.10000D+01    0.10000D+01    0.40174D-06
+  4    0.10008D+01    0.10008D+01    0.83501D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        142 f-s =        237 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.99742D+00    0.99741D+00    0.10456D-04
+  2    0.10004D+01    0.10004D+01    0.11011D-04
+  3    0.10000D+01    0.10000D+01    0.99920D-15
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        185 f-s =        274 J-s =          4
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.43546D-06
+  2    0.25166D+00    0.25166D+00    0.43638D-06
+  3    0.99706D+00    0.99707D+00    0.15280D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        234 f-s =        337 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.14903D-06
+  2    0.56309D-02    0.56309D-02    0.29091D-09
+  3    0.10007D+01    0.10007D+01    0.41396D-06
+  4    0.65374D+00    0.65374D+00    0.15386D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.70423D+00
+    0.00000D+00
+ Steps =        110 f-s =        177 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.79359D-06
+  2    0.98757D+00    0.98757D+00    0.55887D-06
+  3   -0.51035D+00   -0.51035D+00    0.59317D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        129 f-s =        205 J-s =          4
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99969D+00   -0.99964D+00    0.47709D-04
+  2    0.99937D+00    0.99933D+00    0.45580D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         52
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         32
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        208 f-s =        309 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.21161D-06
+  2    0.99730D+00    0.99730D+00    0.14298D-05
+  3    0.10005D+01    0.10005D+01    0.53410D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        180 f-s =        258 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.47729D-07
+  2    0.32649D-07   -0.72884D-12    0.32650D-07
+  3    0.72617D-07    0.15348D-11    0.72615D-07
+  4   -0.69620D-07   -0.10837D-11    0.69619D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.99010D+00
+    0.00000D+00
+ Steps =        228 f-s =        313 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1   -0.57358D+00   -0.57361D+00    0.37357D-04
+  2    0.56350D-01    0.56344D-01    0.57863D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         52
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         32
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.61350D+00
+    0.62500D+00
+    0.00000D+00
+ Steps =        195 f-s =        299 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.26095D-02    0.26092D-02    0.22678D-06
+  2    0.33230D-02    0.33231D-02    0.18421D-06
+  3    0.99912D+00    0.99911D+00    0.10902D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.00000D+00
+   -0.67797D-01
+   -0.64516D-01
+   -0.61350D-01
+ Steps =        282 f-s =        411 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.69444D+00    0.69444D+00    0.44514D-06
+  2   -0.67797D+00   -0.67797D+00    0.43457D-06
+  3   -0.84159D-06   -0.14501D-07    0.82709D-06
+  4    0.80029D-06    0.13789D-07    0.78650D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        106 f-s =        151 J-s =          4
+ Computed and reference solutions and absolute errors follow:
+  1    0.91936D+00    0.91936D+00    0.71901D-06
+  2    0.94674D+00    0.94674D+00    0.57235D-07
+  3    0.99777D+00    0.99777D+00    0.17207D-05
+  4    0.94183D+00    0.94183D+00    0.19244D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.62893D+00
+    0.00000D+00
+    0.49587D+00
+    0.10000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =        406 f-s =        747 J-s =         22
+ Computed and reference solutions and absolute errors follow:
+  1    0.10009D+01    0.10009D+01    0.34351D-05
+  2    0.15224D-03    0.15223D-03    0.64767D-08
+  3    0.99887D+00    0.99887D+00    0.34097D-05
+  4    0.32420D-02    0.32420D-02    0.53913D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        108
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         38
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        108 f-s =        170 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.39126D+00    0.39127D+00    0.51096D-05
+  2    0.52567D+00    0.52568D+00    0.68569D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         56
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        225 f-s =        302 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.81162D-07    0.80898D-07    0.26437D-09
+  2    0.23607D+00    0.23607D+00    0.50495D-06
+  3    0.20426D-04    0.20426D-04    0.10205D-09
+  4    0.99861D+00    0.99860D+00    0.17257D-05
+  5    0.99879D+00    0.99879D+00    0.40916D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         40
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.33898D-04
+    0.62147D-03
+    0.12780D-03
+ Nonnegativity will be enforced for this problem.
+ Steps =        805 f-s =       1216 J-s =         24
+ Computed and reference solutions and absolute errors follow:
+  1    0.36644D-04    0.37443D-04    0.79964D-06
+  2    0.73055D-03    0.72895D-03    0.15970D-05
+  3    0.96083D-04    0.96463D-04    0.37997D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         80
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10015D+01
+    0.10001D+01
+    0.26527D+00
+    0.98220D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        278 f-s =        419 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.50999D+00    0.50999D+00    0.54461D-11
+  2    0.44958D+00    0.44958D+00    0.52479D-11
+  3    0.99988D+00    0.99988D+00    0.11877D-10
+  4    0.99949D+00    0.99949D+00    0.10758D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        108
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         38
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        168 f-s =        278 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.45705D-04    0.45400D-04    0.30487D-06
+  2   -0.90853D-08    0.20612D-08    0.11146D-07
+  3    0.24062D-22    0.28230D-55    0.24062D-22
+  4   -0.15582D-21    0.52358D-51    0.15582D-21
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =   1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        207 f-s =        410 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D+00    0.99999D+00    0.42008D-05
+  2    0.99999D+00    0.99999D+00    0.42006D-05
+  3    0.99999D+00    0.99999D+00    0.39339D-05
+  4    0.99999D+00    0.99999D+00    0.35153D-05
+  5    0.99999D+00    0.99999D+00    0.29859D-05
+  6    0.99999D+00    0.10000D+01    0.23803D-05
+  7    0.99999D+00    0.10000D+01    0.17355D-05
+  8    0.10000D+01    0.10000D+01    0.10906D-05
+  9    0.10000D+01    0.10000D+01    0.48475D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        380
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        762
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.12788D+00
+    0.10000D+01
+ Steps =        207 f-s =        342 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13533D-02   -0.13534D-02    0.85035D-08
+  2    0.13685D-01    0.13685D-01    0.87492D-07
+  3    0.19229D+00    0.19229D+00    0.12082D-05
+  4    0.13533D+00    0.13534D+00    0.70160D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        254 f-s =        530 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.76940D-06
+  2    0.34439D-06    0.12659D-13    0.34439D-06
+  3   -0.44767D-10    0.19115D-41    0.44767D-10
+  4   -0.33848D-18    0.22774D-54    0.33848D-18
+  5   -0.21641D-22    0.00000D+00    0.21641D-22
+  6    0.28625D-31    0.00000D+00    0.28625D-31
+  7   -0.17291D-39    0.00000D+00    0.17291D-39
+  8   -0.77559D-46    0.00000D+00    0.77559D-46
+  9    0.19301D-53    0.00000D+00    0.19301D-53
+ 10    0.40515D-60    0.00000D+00    0.40515D-60
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        450
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        913
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =        686 f-s =        899 J-s =         21
+ Computed and reference solutions and absolute errors follow:
+  1   -0.52998D-05    0.10042D-08    0.53008D-05
+  2    0.19335D-04    0.20955D-08    0.19333D-04
+  3   -0.57223D-42    0.00000D+00    0.57223D-42
+  4    0.11111D-41   -0.18767D-79    0.11111D-41
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        137 f-s =        231 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.13210D-11    0.61813D-30    0.13210D-11
+  2   -0.47809D-12    0.89637D-30    0.47809D-12
+  3    0.17546D-08    0.27384D-26    0.17546D-08
+  4    0.28827D-07    0.20612D-08    0.26765D-07
+  5    0.47562D-04    0.45400D-04    0.21619D-05
+  6    0.13534D+00    0.13534D+00    0.13840D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        206
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        393
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        148 f-s =        249 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1   -0.10780D-10   -0.10768D-27    0.10780D-10
+  2   -0.17657D-09    0.54550D-27    0.17657D-09
+  3   -0.25324D-09    0.27385D-26    0.25324D-09
+  4    0.26160D-07    0.20612D-08    0.24099D-07
+  5    0.47467D-04    0.45400D-04    0.20675D-05
+  6    0.13534D+00    0.13534D+00    0.13337D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        206
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        393
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        276 f-s =        433 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1   -0.22556D-10    0.11886D-21    0.22556D-10
+  2   -0.37064D-10   -0.23259D-21    0.37064D-10
+  3   -0.33232D-14    0.15179D-34    0.33232D-14
+  4    0.13648D-07    0.20612D-08    0.11586D-07
+  5    0.46631D-04    0.45400D-04    0.12312D-05
+  6    0.13534D+00    0.13534D+00    0.92459D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        206
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        393
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.76336D+00
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       2620 f-s =       3659 J-s =         72
+ Computed and reference solutions and absolute errors follow:
+  1   -0.22377D-04   -0.23669D-13    0.22377D-04
+  2   -0.86207D-06    0.34489D-13    0.86207D-06
+  3    0.18048D-34    0.18049D-34    0.31870D-39
+  4    0.20612D-08    0.20612D-08    0.32891D-16
+  5    0.45400D-04    0.45400D-04    0.15272D-13
+  6    0.13534D+00    0.13534D+00    0.97081D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        206
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        393
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.98039D+00
+    0.97087D+00
+    0.10000D+01
+    0.10000D+01
+ Steps =        184 f-s =        298 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.39194D-03    0.39247D-03    0.53735D-06
+  2    0.38850D-03    0.38850D-03    0.55904D-10
+  3    0.40000D-03    0.40000D-03    0.53061D-15
+  4    0.20000D-01    0.20000D-01    0.34694D-17
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        175 f-s =        286 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.19179D-05
+  2    0.40000D-01    0.40000D-01    0.16999D-06
+  3    0.40016D-01    0.40016D-01    0.15752D-06
+  4    0.40032D-01    0.40032D-01    0.15524D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        173 f-s =        289 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.36350D-06
+  2    0.40000D+00    0.40000D+00    0.33042D-06
+  3    0.41600D+00    0.41600D+00    0.32556D-06
+  4    0.43331D+00    0.43331D+00    0.34782D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.50000D+00
+    0.25000D+00
+    0.50000D-01
+    0.23810D-02
+ Steps =        145 f-s =        244 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.77755D-07
+  2    0.10000D+01    0.10000D+01    0.17275D-06
+  3    0.10000D+01    0.10000D+01    0.31552D-06
+  4    0.10000D+01    0.10000D+01    0.62205D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.50000D+00
+    0.12500D+00
+    0.73529D-02
+    0.26954D-04
+ Steps =        145 f-s =        222 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.43311D-08
+  2    0.10000D+01    0.10000D+01    0.12939D-07
+  3    0.10000D+01    0.10000D+01    0.29749D-07
+  4    0.10008D+01    0.10008D+01    0.14653D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        140 f-s =        232 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.99744D+00    0.99741D+00    0.28008D-04
+  2    0.10004D+01    0.10004D+01    0.20546D-04
+  3    0.10000D+01    0.10000D+01    0.12212D-14
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        241 f-s =        407 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.45712D-06
+  2    0.25166D+00    0.25166D+00    0.52321D-06
+  3    0.99707D+00    0.99707D+00    0.16040D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        235 f-s =        393 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.16767D-05
+  2    0.56308D-02    0.56309D-02    0.32722D-08
+  3    0.10007D+01    0.10007D+01    0.46576D-05
+  4    0.65374D+00    0.65374D+00    0.17320D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.70423D+00
+    0.00000D+00
+ Steps =        114 f-s =        194 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.38488D-05
+  2    0.98757D+00    0.98757D+00    0.27104D-05
+  3   -0.51034D+00   -0.51035D+00    0.41703D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        133 f-s =        221 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99963D+00   -0.99964D+00    0.83820D-05
+  2    0.99932D+00    0.99933D+00    0.91243D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         58
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        240 f-s =        415 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.51853D-06
+  2    0.99730D+00    0.99730D+00    0.35034D-05
+  3    0.10005D+01    0.10005D+01    0.11057D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        170 f-s =        264 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.56587D-08
+  2    0.93977D-08   -0.72884D-12    0.93984D-08
+  3   -0.36957D-08    0.15348D-11    0.36973D-08
+  4   -0.48168D-09   -0.10837D-11    0.48060D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.99010D+00
+    0.00000D+00
+ Steps =        232 f-s =        363 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1   -0.57350D+00   -0.57361D+00    0.11643D-03
+  2    0.56375D-01    0.56344D-01    0.30322D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         58
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.61350D+00
+    0.62500D+00
+    0.00000D+00
+ Steps =        245 f-s =        416 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.26115D-02    0.26092D-02    0.22469D-05
+  2    0.33260D-02    0.33231D-02    0.28690D-05
+  3    0.99912D+00    0.99911D+00    0.10473D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.00000D+00
+   -0.67797D-01
+   -0.64516D-01
+   -0.61350D-01
+ Steps =        276 f-s =        449 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1    0.69444D+00    0.69444D+00    0.95690D-07
+  2   -0.67797D+00   -0.67797D+00    0.93419D-07
+  3    0.16330D-06   -0.14501D-07    0.17780D-06
+  4   -0.15528D-06    0.13789D-07    0.16907D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         98 f-s =        169 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.91936D+00    0.91936D+00    0.72896D-06
+  2    0.94674D+00    0.94674D+00    0.15627D-05
+  3    0.99777D+00    0.99777D+00    0.40345D-06
+  4    0.94183D+00    0.94183D+00    0.33786D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.62893D+00
+    0.00000D+00
+    0.49587D+00
+    0.10000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =        340 f-s =        713 J-s =         24
+ Computed and reference solutions and absolute errors follow:
+  1    0.10009D+01    0.10009D+01    0.85278D-06
+  2    0.15223D-03    0.15223D-03    0.16377D-08
+  3    0.99887D+00    0.99887D+00    0.84647D-06
+  4    0.32420D-02    0.32420D-02    0.13633D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        128
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        221
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        108 f-s =        175 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.39126D+00    0.39127D+00    0.51818D-05
+  2    0.52567D+00    0.52568D+00    0.69553D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         62
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        220 f-s =        354 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.80901D-07    0.80898D-07    0.37315D-11
+  2    0.23607D+00    0.23607D+00    0.68873D-07
+  3    0.20426D-04    0.20426D-04    0.12294D-10
+  4    0.99860D+00    0.99860D+00    0.55420D-06
+  5    0.99879D+00    0.99879D+00    0.26292D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        170
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        303
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.33898D-04
+    0.62147D-03
+    0.12780D-03
+ Nonnegativity will be enforced for this problem.
+ Steps =        834 f-s =       1415 J-s =         37
+ Computed and reference solutions and absolute errors follow:
+  1    0.36570D-04    0.37443D-04    0.87322D-06
+  2    0.73199D-03    0.72895D-03    0.30389D-05
+  3    0.95643D-04    0.96463D-04    0.82019D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        153
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10015D+01
+    0.10001D+01
+    0.26527D+00
+    0.98220D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        258 f-s =        432 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.50999D+00    0.50999D+00    0.75919D-10
+  2    0.44958D+00    0.44958D+00    0.68280D-10
+  3    0.99988D+00    0.99988D+00    0.15185D-09
+  4    0.99949D+00    0.99949D+00    0.30038D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        128
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        221
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        168 f-s =        242 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.45705D-04    0.45400D-04    0.30490D-06
+  2   -0.90870D-08    0.20612D-08    0.11148D-07
+  3    0.24196D-22    0.28230D-55    0.24196D-22
+  4   -0.15669D-21    0.52358D-51    0.15669D-21
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =   1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        208 f-s =        321 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D+00    0.99999D+00    0.23459D-05
+  2    0.99999D+00    0.99999D+00    0.23458D-05
+  3    0.99999D+00    0.99999D+00    0.22002D-05
+  4    0.99999D+00    0.99999D+00    0.19703D-05
+  5    0.99999D+00    0.99999D+00    0.16776D-05
+  6    0.99999D+00    0.10000D+01    0.13404D-05
+  7    0.10000D+01    0.10000D+01    0.97915D-06
+  8    0.10000D+01    0.10000D+01    0.61606D-06
+  9    0.10000D+01    0.10000D+01    0.27382D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        506
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         39
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.12788D+00
+    0.10000D+01
+ Steps =        207 f-s =        301 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13533D-02   -0.13534D-02    0.70172D-08
+  2    0.13685D-01    0.13685D-01    0.71839D-07
+  3    0.19229D+00    0.19229D+00    0.99705D-06
+  4    0.13533D+00    0.13534D+00    0.61468D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        254 f-s =        390 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.76940D-06
+  2    0.34439D-06    0.12659D-13    0.34439D-06
+  3   -0.44767D-10    0.19115D-41    0.44767D-10
+  4   -0.33859D-18    0.22774D-54    0.33859D-18
+  5   -0.21641D-22    0.00000D+00    0.21641D-22
+  6    0.28625D-31    0.00000D+00    0.28625D-31
+  7   -0.17291D-39    0.00000D+00    0.17291D-39
+  8   -0.77559D-46    0.00000D+00    0.77559D-46
+  9    0.19301D-53    0.00000D+00    0.19301D-53
+ 10    0.40515D-60    0.00000D+00    0.40515D-60
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        610
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         40
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =        686 f-s =        795 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1   -0.52997D-05    0.10042D-08    0.53007D-05
+  2    0.19335D-04    0.20955D-08    0.19333D-04
+  3   -0.57221D-42    0.00000D+00    0.57221D-42
+  4    0.11111D-41   -0.18767D-79    0.11111D-41
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        137 f-s =        201 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.13210D-11    0.61813D-30    0.13210D-11
+  2   -0.47809D-12    0.89637D-30    0.47809D-12
+  3    0.17546D-08    0.27384D-26    0.17546D-08
+  4    0.28827D-07    0.20612D-08    0.26765D-07
+  5    0.47562D-04    0.45400D-04    0.21619D-05
+  6    0.13534D+00    0.13534D+00    0.13840D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        254
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        148 f-s =        207 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1   -0.10780D-10   -0.10768D-27    0.10780D-10
+  2   -0.17657D-09    0.54550D-27    0.17657D-09
+  3   -0.25324D-09    0.27385D-26    0.25324D-09
+  4    0.26160D-07    0.20612D-08    0.24099D-07
+  5    0.47467D-04    0.45400D-04    0.20675D-05
+  6    0.13534D+00    0.13534D+00    0.13337D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        254
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        276 f-s =        343 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1   -0.22556D-10    0.11886D-21    0.22556D-10
+  2   -0.37063D-10   -0.23259D-21    0.37063D-10
+  3   -0.33230D-14    0.15179D-34    0.33230D-14
+  4    0.13648D-07    0.20612D-08    0.11587D-07
+  5    0.46631D-04    0.45400D-04    0.12312D-05
+  6    0.13534D+00    0.13534D+00    0.92459D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        254
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.76336D+00
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       2619 f-s =       3088 J-s =         49
+ Computed and reference solutions and absolute errors follow:
+  1   -0.22340D-04   -0.23669D-13    0.22340D-04
+  2   -0.15279D-05    0.34489D-13    0.15279D-05
+  3    0.18048D-34    0.18049D-34    0.31899D-39
+  4    0.20612D-08    0.20612D-08    0.32921D-16
+  5    0.45400D-04    0.45400D-04    0.15297D-13
+  6    0.13534D+00    0.13534D+00    0.96778D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        254
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.98039D+00
+    0.97087D+00
+    0.10000D+01
+    0.10000D+01
+ Steps =        182 f-s =        254 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.39226D-03    0.39247D-03    0.20967D-06
+  2    0.38850D-03    0.38850D-03    0.11918D-11
+  3    0.40000D-03    0.40000D-03    0.00000D+00
+  4    0.20000D-01    0.20000D-01    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        177 f-s =        252 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.55706D-07
+  2    0.40000D-01    0.40000D-01    0.46668D-08
+  3    0.40016D-01    0.40016D-01    0.45689D-08
+  4    0.40032D-01    0.40032D-01    0.45084D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        174 f-s =        249 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.37237D-07
+  2    0.40000D+00    0.40000D+00    0.35114D-07
+  3    0.41600D+00    0.41600D+00    0.33077D-07
+  4    0.43331D+00    0.43331D+00    0.34506D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.50000D+00
+    0.25000D+00
+    0.50000D-01
+    0.23810D-02
+ Steps =        153 f-s =        216 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.33900D-07
+  2    0.10000D+01    0.10000D+01    0.74445D-07
+  3    0.10000D+01    0.10000D+01    0.13201D-06
+  4    0.10000D+01    0.10000D+01    0.24967D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.50000D+00
+    0.12500D+00
+    0.73529D-02
+    0.26954D-04
+ Steps =        147 f-s =        208 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.92876D-07
+  2    0.10000D+01    0.10000D+01    0.20651D-06
+  3    0.10000D+01    0.10000D+01    0.40174D-06
+  4    0.10008D+01    0.10008D+01    0.83501D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        142 f-s =        237 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.99742D+00    0.99741D+00    0.10456D-04
+  2    0.10004D+01    0.10004D+01    0.11011D-04
+  3    0.10000D+01    0.10000D+01    0.99920D-15
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        185 f-s =        274 J-s =          4
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.43546D-06
+  2    0.25166D+00    0.25166D+00    0.43638D-06
+  3    0.99706D+00    0.99707D+00    0.15280D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        234 f-s =        337 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.14903D-06
+  2    0.56309D-02    0.56309D-02    0.29091D-09
+  3    0.10007D+01    0.10007D+01    0.41396D-06
+  4    0.65374D+00    0.65374D+00    0.15386D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.70423D+00
+    0.00000D+00
+ Steps =        110 f-s =        177 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.79359D-06
+  2    0.98757D+00    0.98757D+00    0.55887D-06
+  3   -0.51035D+00   -0.51035D+00    0.59317D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        129 f-s =        205 J-s =          4
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99969D+00   -0.99964D+00    0.47709D-04
+  2    0.99937D+00    0.99933D+00    0.45580D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         58
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         32
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        208 f-s =        309 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.21161D-06
+  2    0.99730D+00    0.99730D+00    0.14298D-05
+  3    0.10005D+01    0.10005D+01    0.53410D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        180 f-s =        258 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.47729D-07
+  2    0.32649D-07   -0.72884D-12    0.32650D-07
+  3    0.72617D-07    0.15348D-11    0.72615D-07
+  4   -0.69620D-07   -0.10837D-11    0.69619D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.99010D+00
+    0.00000D+00
+ Steps =        228 f-s =        313 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1   -0.57358D+00   -0.57361D+00    0.37357D-04
+  2    0.56350D-01    0.56344D-01    0.57863D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         58
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         32
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.61350D+00
+    0.62500D+00
+    0.00000D+00
+ Steps =        195 f-s =        299 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.26095D-02    0.26092D-02    0.22678D-06
+  2    0.33230D-02    0.33231D-02    0.18421D-06
+  3    0.99912D+00    0.99911D+00    0.10902D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.00000D+00
+   -0.67797D-01
+   -0.64516D-01
+   -0.61350D-01
+ Steps =        282 f-s =        411 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.69444D+00    0.69444D+00    0.44514D-06
+  2   -0.67797D+00   -0.67797D+00    0.43457D-06
+  3   -0.84159D-06   -0.14501D-07    0.82709D-06
+  4    0.80029D-06    0.13789D-07    0.78650D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        106 f-s =        151 J-s =          4
+ Computed and reference solutions and absolute errors follow:
+  1    0.91936D+00    0.91936D+00    0.71901D-06
+  2    0.94674D+00    0.94674D+00    0.57235D-07
+  3    0.99777D+00    0.99777D+00    0.17207D-05
+  4    0.94183D+00    0.94183D+00    0.19244D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.62893D+00
+    0.00000D+00
+    0.49587D+00
+    0.10000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =        406 f-s =        747 J-s =         22
+ Computed and reference solutions and absolute errors follow:
+  1    0.10009D+01    0.10009D+01    0.34351D-05
+  2    0.15224D-03    0.15223D-03    0.64767D-08
+  3    0.99887D+00    0.99887D+00    0.34097D-05
+  4    0.32420D-02    0.32420D-02    0.53913D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        144
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         38
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        108 f-s =        170 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.39126D+00    0.39127D+00    0.51096D-05
+  2    0.52567D+00    0.52568D+00    0.68569D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         62
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        225 f-s =        302 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.81162D-07    0.80898D-07    0.26437D-09
+  2    0.23607D+00    0.23607D+00    0.50495D-06
+  3    0.20426D-04    0.20426D-04    0.10205D-09
+  4    0.99861D+00    0.99860D+00    0.17257D-05
+  5    0.99879D+00    0.99879D+00    0.40916D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        200
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         40
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.33898D-04
+    0.62147D-03
+    0.12780D-03
+ Nonnegativity will be enforced for this problem.
+ Steps =        805 f-s =       1216 J-s =         24
+ Computed and reference solutions and absolute errors follow:
+  1    0.36644D-04    0.37443D-04    0.79964D-06
+  2    0.73055D-03    0.72895D-03    0.15970D-05
+  3    0.96083D-04    0.96463D-04    0.37997D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         98
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10015D+01
+    0.10001D+01
+    0.26527D+00
+    0.98220D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        278 f-s =        419 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.50999D+00    0.50999D+00    0.54461D-11
+  2    0.44958D+00    0.44958D+00    0.52479D-11
+  3    0.99988D+00    0.99988D+00    0.11877D-10
+  4    0.99949D+00    0.99949D+00    0.10758D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        144
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         38
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        229 f-s =        308 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.45579D-04    0.45400D-04    0.17939D-06
+  2    0.44586D-08    0.20612D-08    0.23974D-08
+  3    0.15376D-27    0.28230D-55    0.15376D-27
+  4    0.19802D-26    0.52358D-51    0.19802D-26
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =   1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        263 f-s =        418 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D+00    0.99999D+00    0.91142D-07
+  2    0.99999D+00    0.99999D+00    0.91137D-07
+  3    0.99999D+00    0.99999D+00    0.84950D-07
+  4    0.99999D+00    0.99999D+00    0.75375D-07
+  5    0.99999D+00    0.99999D+00    0.63502D-07
+  6    0.10000D+01    0.10000D+01    0.50215D-07
+  7    0.10000D+01    0.10000D+01    0.36359D-07
+  8    0.10000D+01    0.10000D+01    0.22745D-07
+  9    0.10000D+01    0.10000D+01    0.10109D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        290
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         39
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.12788D+00
+    0.10000D+01
+ Steps =        276 f-s =        385 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.39608D-10
+  2    0.13685D-01    0.13685D-01    0.75704D-10
+  3    0.19229D+00    0.19229D+00    0.56270D-08
+  4    0.13534D+00    0.13534D+00    0.51101D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        358 f-s =        535 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.13268D-06
+  2   -0.43441D-08    0.12659D-13    0.43441D-08
+  3    0.40050D-16    0.19115D-41    0.40050D-16
+  4   -0.32925D-22    0.22774D-54    0.32925D-22
+  5   -0.39433D-31    0.00000D+00    0.39433D-31
+  6   -0.12327D-41    0.00000D+00    0.12327D-41
+  7   -0.52242D-53    0.00000D+00    0.52242D-53
+  8    0.37414D-64    0.00000D+00    0.37414D-64
+  9    0.13554D-72    0.00000D+00    0.13554D-72
+ 10    0.23569D-80    0.00000D+00    0.23569D-80
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        340
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         40
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =        975 f-s =       1107 J-s =         21
+ Computed and reference solutions and absolute errors follow:
+  1   -0.17030D-06    0.10042D-08    0.17130D-06
+  2    0.58479D-06    0.20955D-08    0.58269D-06
+  3    0.68664D-44    0.00000D+00    0.68664D-44
+  4    0.37321D-43   -0.18767D-79    0.37321D-43
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        201 f-s =        282 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.10445D-14    0.61813D-30    0.10445D-14
+  2    0.55349D-15    0.89637D-30    0.55349D-15
+  3   -0.31348D-12    0.27384D-26    0.31348D-12
+  4    0.17054D-08    0.20612D-08    0.35571D-09
+  5    0.45523D-04    0.45400D-04    0.12318D-06
+  6    0.13534D+00    0.13534D+00    0.14002D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        219 f-s =        301 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1   -0.25085D-12   -0.10768D-27    0.25085D-12
+  2    0.25516D-12    0.54550D-27    0.25516D-12
+  3    0.20234D-13    0.27385D-26    0.20234D-13
+  4    0.32642D-08    0.20612D-08    0.12030D-08
+  5    0.45517D-04    0.45400D-04    0.11735D-06
+  6    0.13534D+00    0.13534D+00    0.12669D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        373 f-s =        461 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1   -0.98379D-11    0.11886D-21    0.98379D-11
+  2    0.31375D-10   -0.23259D-21    0.31375D-10
+  3   -0.73055D-17    0.15179D-34    0.73055D-17
+  4    0.16508D-08    0.20612D-08    0.41040D-09
+  5    0.45488D-04    0.45400D-04    0.88396D-07
+  6    0.13534D+00    0.13534D+00    0.82984D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.76336D+00
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       2868 f-s =       3382 J-s =         53
+ Computed and reference solutions and absolute errors follow:
+  1    0.97315D-07   -0.23669D-13    0.97315D-07
+  2    0.20088D-05    0.34489D-13    0.20088D-05
+  3    0.18048D-34    0.18049D-34    0.13281D-39
+  4    0.20612D-08    0.20612D-08    0.14762D-16
+  5    0.45400D-04    0.45400D-04    0.93005D-14
+  6    0.13534D+00    0.13534D+00    0.10719D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.98039D+00
+    0.97087D+00
+    0.10000D+01
+    0.10000D+01
+ Steps =        269 f-s =        352 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.39250D-03    0.39247D-03    0.26281D-07
+  2    0.38850D-03    0.38850D-03    0.23706D-14
+  3    0.40000D-03    0.40000D-03    0.00000D+00
+  4    0.20000D-01    0.20000D-01    0.34694D-17
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        239 f-s =        330 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.42538D-07
+  2    0.40000D-01    0.40000D-01    0.38015D-08
+  3    0.40016D-01    0.40016D-01    0.34925D-08
+  4    0.40032D-01    0.40032D-01    0.34429D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        239 f-s =        332 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.75664D-07
+  2    0.40000D+00    0.40000D+00    0.67634D-07
+  3    0.41600D+00    0.41600D+00    0.67646D-07
+  4    0.43331D+00    0.43331D+00    0.72296D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.50000D+00
+    0.25000D+00
+    0.50000D-01
+    0.23810D-02
+ Steps =        207 f-s =        277 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.98491D-08
+  2    0.10000D+01    0.10000D+01    0.21530D-07
+  3    0.10000D+01    0.10000D+01    0.37481D-07
+  4    0.10000D+01    0.10000D+01    0.66996D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.50000D+00
+    0.12500D+00
+    0.73529D-02
+    0.26954D-04
+ Steps =        196 f-s =        291 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.20481D-08
+  2    0.10000D+01    0.10000D+01    0.45559D-08
+  3    0.10000D+01    0.10000D+01    0.90500D-08
+  4    0.10008D+01    0.10008D+01    0.18149D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        216 f-s =        330 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.99741D+00    0.99741D+00    0.19719D-05
+  2    0.10004D+01    0.10004D+01    0.10872D-05
+  3    0.10000D+01    0.10000D+01    0.99920D-15
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        353 f-s =        508 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.13925D-06
+  2    0.25166D+00    0.25166D+00    0.14925D-06
+  3    0.99707D+00    0.99707D+00    0.48861D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        327 f-s =        454 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.11314D-11
+  2    0.56309D-02    0.56309D-02    0.92495D-14
+  3    0.10007D+01    0.10007D+01    0.31548D-11
+  4    0.65374D+00    0.65374D+00    0.86631D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.70423D+00
+    0.00000D+00
+ Steps =        161 f-s =        242 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.91746D-06
+  2    0.98757D+00    0.98757D+00    0.64610D-06
+  3   -0.51035D+00   -0.51035D+00    0.10017D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        168 f-s =        273 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99964D+00   -0.99964D+00    0.35837D-05
+  2    0.99932D+00    0.99933D+00    0.40834D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         52
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         32
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        274 f-s =        380 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.51951D-07
+  2    0.99730D+00    0.99730D+00    0.35102D-06
+  3    0.10005D+01    0.10005D+01    0.10998D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        242 f-s =        325 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.37902D-10
+  2   -0.32148D-09   -0.72884D-12    0.32075D-09
+  3    0.11305D-08    0.15348D-11    0.11289D-08
+  4   -0.81371D-09   -0.10837D-11    0.81263D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.99010D+00
+    0.00000D+00
+ Steps =        289 f-s =        401 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1   -0.57361D+00   -0.57361D+00    0.89271D-05
+  2    0.56347D-01    0.56344D-01    0.26480D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         52
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         32
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.61350D+00
+    0.62500D+00
+    0.00000D+00
+ Steps =        289 f-s =        423 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.26095D-02    0.26092D-02    0.29638D-06
+  2    0.33235D-02    0.33231D-02    0.36947D-06
+  3    0.99911D+00    0.99911D+00    0.46789D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.00000D+00
+   -0.67797D-01
+   -0.64516D-01
+   -0.61350D-01
+ Steps =        416 f-s =        565 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1    0.69444D+00    0.69444D+00    0.10119D-07
+  2   -0.67797D+00   -0.67797D+00    0.98792D-08
+  3   -0.33303D-07   -0.14501D-07    0.18802D-07
+  4    0.31669D-07    0.13789D-07    0.17880D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        136 f-s =        184 J-s =          4
+ Computed and reference solutions and absolute errors follow:
+  1    0.91936D+00    0.91936D+00    0.14972D-06
+  2    0.94674D+00    0.94674D+00    0.13649D-06
+  3    0.99777D+00    0.99777D+00    0.29530D-06
+  4    0.94183D+00    0.94183D+00    0.43258D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.62893D+00
+    0.00000D+00
+    0.49587D+00
+    0.10000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =        607 f-s =       1024 J-s =         23
+ Computed and reference solutions and absolute errors follow:
+  1    0.10009D+01    0.10009D+01    0.24681D-06
+  2    0.15223D-03    0.15223D-03    0.38538D-09
+  3    0.99887D+00    0.99887D+00    0.24498D-06
+  4    0.32420D-02    0.32420D-02    0.32087D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        108
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         38
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        142 f-s =        207 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.52919D-06
+  2    0.52568D+00    0.52568D+00    0.71038D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         56
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        351 f-s =        471 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.81539D-07    0.80898D-07    0.64119D-09
+  2    0.23607D+00    0.23607D+00    0.36915D-07
+  3    0.20426D-04    0.20426D-04    0.16227D-09
+  4    0.99860D+00    0.99860D+00    0.33268D-07
+  5    0.99879D+00    0.99879D+00    0.19027D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         40
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.33898D-04
+    0.62147D-03
+    0.12780D-03
+ Nonnegativity will be enforced for this problem.
+ Steps =       1018 f-s =       1726 J-s =         28
+ Computed and reference solutions and absolute errors follow:
+  1    0.37183D-04    0.37443D-04    0.26064D-06
+  2    0.72887D-03    0.72895D-03    0.85195D-07
+  3    0.96495D-04    0.96463D-04    0.31912D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         80
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10015D+01
+    0.10001D+01
+    0.26527D+00
+    0.98220D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        343 f-s =        511 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.50999D+00    0.50999D+00    0.16726D-09
+  2    0.44958D+00    0.44958D+00    0.15010D-09
+  3    0.99988D+00    0.99988D+00    0.33382D-09
+  4    0.99949D+00    0.99949D+00    0.58824D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        108
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         38
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        229 f-s =        340 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.45579D-04    0.45400D-04    0.17939D-06
+  2    0.44586D-08    0.20612D-08    0.23974D-08
+  3    0.15376D-27    0.28230D-55    0.15376D-27
+  4    0.19802D-26    0.52358D-51    0.19802D-26
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =   1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        268 f-s =        544 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D+00    0.99999D+00    0.95234D-07
+  2    0.99999D+00    0.99999D+00    0.95229D-07
+  3    0.99999D+00    0.99999D+00    0.88783D-07
+  4    0.99999D+00    0.99999D+00    0.78801D-07
+  5    0.99999D+00    0.99999D+00    0.66412D-07
+  6    0.10000D+01    0.10000D+01    0.52535D-07
+  7    0.10000D+01    0.10000D+01    0.38051D-07
+  8    0.10000D+01    0.10000D+01    0.23808D-07
+  9    0.10000D+01    0.10000D+01    0.10582D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        380
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        762
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.12788D+00
+    0.10000D+01
+ Steps =        276 f-s =        441 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.42292D-10
+  2    0.13685D-01    0.13685D-01    0.28842D-10
+  3    0.19229D+00    0.19229D+00    0.60083D-08
+  4    0.13534D+00    0.13534D+00    0.49417D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        358 f-s =        705 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.13268D-06
+  2   -0.43441D-08    0.12659D-13    0.43441D-08
+  3    0.40050D-16    0.19115D-41    0.40050D-16
+  4   -0.32925D-22    0.22774D-54    0.32925D-22
+  5   -0.39433D-31    0.00000D+00    0.39433D-31
+  6   -0.12327D-41    0.00000D+00    0.12327D-41
+  7   -0.52242D-53    0.00000D+00    0.52242D-53
+  8    0.37414D-64    0.00000D+00    0.37414D-64
+  9    0.13554D-72    0.00000D+00    0.13554D-72
+ 10    0.23569D-80    0.00000D+00    0.23569D-80
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        450
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        913
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =        975 f-s =       1263 J-s =         30
+ Computed and reference solutions and absolute errors follow:
+  1   -0.17036D-06    0.10042D-08    0.17136D-06
+  2    0.58484D-06    0.20955D-08    0.58274D-06
+  3    0.68593D-44    0.00000D+00    0.68593D-44
+  4    0.37335D-43   -0.18767D-79    0.37335D-43
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        201 f-s =        324 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.10445D-14    0.61813D-30    0.10445D-14
+  2    0.55349D-15    0.89637D-30    0.55349D-15
+  3   -0.31348D-12    0.27384D-26    0.31348D-12
+  4    0.17054D-08    0.20612D-08    0.35571D-09
+  5    0.45523D-04    0.45400D-04    0.12318D-06
+  6    0.13534D+00    0.13534D+00    0.14002D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        206
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        393
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        219 f-s =        343 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1   -0.25085D-12   -0.10768D-27    0.25085D-12
+  2    0.25516D-12    0.54550D-27    0.25516D-12
+  3    0.20234D-13    0.27385D-26    0.20234D-13
+  4    0.32642D-08    0.20612D-08    0.12030D-08
+  5    0.45517D-04    0.45400D-04    0.11735D-06
+  6    0.13534D+00    0.13534D+00    0.12669D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        206
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        393
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        373 f-s =        557 J-s =         13
+ Computed and reference solutions and absolute errors follow:
+  1   -0.98379D-11    0.11886D-21    0.98379D-11
+  2    0.31375D-10   -0.23259D-21    0.31375D-10
+  3   -0.73055D-17    0.15179D-34    0.73055D-17
+  4    0.16508D-08    0.20612D-08    0.41040D-09
+  5    0.45488D-04    0.45400D-04    0.88396D-07
+  6    0.13534D+00    0.13534D+00    0.82984D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        206
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        393
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.76336D+00
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       2868 f-s =       3976 J-s =         76
+ Computed and reference solutions and absolute errors follow:
+  1    0.97660D-07   -0.23669D-13    0.97660D-07
+  2    0.20087D-05    0.34489D-13    0.20087D-05
+  3    0.18048D-34    0.18049D-34    0.13281D-39
+  4    0.20612D-08    0.20612D-08    0.14763D-16
+  5    0.45400D-04    0.45400D-04    0.93046D-14
+  6    0.13534D+00    0.13534D+00    0.10469D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        206
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        393
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.98039D+00
+    0.97087D+00
+    0.10000D+01
+    0.10000D+01
+ Steps =        265 f-s =        405 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.39248D-03    0.39247D-03    0.49625D-08
+  2    0.38850D-03    0.38850D-03    0.17221D-13
+  3    0.40000D-03    0.40000D-03    0.10842D-18
+  4    0.20000D-01    0.20000D-01    0.34694D-17
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        240 f-s =        367 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.49236D-07
+  2    0.40000D-01    0.40000D-01    0.43971D-08
+  3    0.40016D-01    0.40016D-01    0.40429D-08
+  4    0.40032D-01    0.40032D-01    0.39852D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        238 f-s =        367 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.91194D-07
+  2    0.40000D+00    0.40000D+00    0.82496D-07
+  3    0.41600D+00    0.41600D+00    0.81702D-07
+  4    0.43331D+00    0.43331D+00    0.87260D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.50000D+00
+    0.25000D+00
+    0.50000D-01
+    0.23810D-02
+ Steps =        195 f-s =        301 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.44344D-07
+  2    0.10000D+01    0.10000D+01    0.98543D-07
+  3    0.10000D+01    0.10000D+01    0.17990D-06
+  4    0.10000D+01    0.10000D+01    0.35457D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.50000D+00
+    0.12500D+00
+    0.73529D-02
+    0.26954D-04
+ Steps =        193 f-s =        323 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.52447D-07
+  2    0.10000D+01    0.10000D+01    0.11654D-06
+  3    0.10000D+01    0.10000D+01    0.23135D-06
+  4    0.10008D+01    0.10008D+01    0.46698D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        206 f-s =        360 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.99741D+00    0.99741D+00    0.18508D-05
+  2    0.10004D+01    0.10004D+01    0.11744D-05
+  3    0.10000D+01    0.10000D+01    0.21094D-14
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        338 f-s =        570 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.53435D-06
+  2    0.25166D+00    0.25166D+00    0.56315D-06
+  3    0.99706D+00    0.99707D+00    0.18750D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        344 f-s =        532 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.37800D-08
+  2    0.56309D-02    0.56309D-02    0.73708D-11
+  3    0.10007D+01    0.10007D+01    0.10500D-07
+  4    0.65374D+00    0.65374D+00    0.39046D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.70423D+00
+    0.00000D+00
+ Steps =        161 f-s =        257 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.91418D-06
+  2    0.98757D+00    0.98757D+00    0.64379D-06
+  3   -0.51035D+00   -0.51035D+00    0.94863D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        156 f-s =        289 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99964D+00   -0.99964D+00    0.77260D-06
+  2    0.99932D+00    0.99933D+00    0.92703D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         58
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        280 f-s =        465 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.25088D-07
+  2    0.99730D+00    0.99730D+00    0.16951D-06
+  3    0.10005D+01    0.10005D+01    0.46775D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        239 f-s =        356 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.12241D-08
+  2   -0.16627D-08   -0.72884D-12    0.16620D-08
+  3    0.12614D-08    0.15348D-11    0.12598D-08
+  4   -0.38146D-09   -0.10837D-11    0.38038D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.99010D+00
+    0.00000D+00
+ Steps =        286 f-s =        420 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1   -0.57360D+00   -0.57361D+00    0.11627D-04
+  2    0.56347D-01    0.56344D-01    0.28544D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         58
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.61350D+00
+    0.62500D+00
+    0.00000D+00
+ Steps =        268 f-s =        436 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.26096D-02    0.26092D-02    0.32589D-06
+  2    0.33236D-02    0.33231D-02    0.41417D-06
+  3    0.99911D+00    0.99911D+00    0.27001D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.00000D+00
+   -0.67797D-01
+   -0.64516D-01
+   -0.61350D-01
+ Steps =        408 f-s =        658 J-s =         17
+ Computed and reference solutions and absolute errors follow:
+  1    0.69444D+00    0.69444D+00    0.11240D-07
+  2   -0.67797D+00   -0.67797D+00    0.11023D-07
+  3   -0.32280D-07   -0.14501D-07    0.17779D-07
+  4    0.36694D-07    0.13789D-07    0.22905D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        132 f-s =        204 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.91936D+00    0.91936D+00    0.14478D-06
+  2    0.94674D+00    0.94674D+00    0.15965D-06
+  3    0.99777D+00    0.99777D+00    0.25505D-06
+  4    0.94183D+00    0.94183D+00    0.41049D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.62893D+00
+    0.00000D+00
+    0.49587D+00
+    0.10000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =        491 f-s =       1019 J-s =         30
+ Computed and reference solutions and absolute errors follow:
+  1    0.10009D+01    0.10009D+01    0.11446D-06
+  2    0.15223D-03    0.15223D-03    0.21430D-09
+  3    0.99887D+00    0.99887D+00    0.11361D-06
+  4    0.32420D-02    0.32420D-02    0.17840D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        128
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        221
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        145 f-s =        234 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.63221D-07
+  2    0.52568D+00    0.52568D+00    0.84761D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         62
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        289 f-s =        463 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.80916D-07    0.80898D-07    0.18581D-10
+  2    0.23607D+00    0.23607D+00    0.13368D-09
+  3    0.20426D-04    0.20426D-04    0.47038D-11
+  4    0.99860D+00    0.99860D+00    0.59935D-09
+  5    0.99879D+00    0.99879D+00    0.10889D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        170
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        303
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.33898D-04
+    0.62147D-03
+    0.12780D-03
+ Nonnegativity will be enforced for this problem.
+ Steps =        833 f-s =       1482 J-s =         38
+ Computed and reference solutions and absolute errors follow:
+  1    0.37074D-04    0.37443D-04    0.36883D-06
+  2    0.72907D-03    0.72895D-03    0.12056D-06
+  3    0.96299D-04    0.96463D-04    0.16418D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        153
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10015D+01
+    0.10001D+01
+    0.26527D+00
+    0.98220D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        364 f-s =        588 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.50999D+00    0.50999D+00    0.57489D-10
+  2    0.44958D+00    0.44958D+00    0.51596D-10
+  3    0.99988D+00    0.99988D+00    0.11474D-09
+  4    0.99949D+00    0.99949D+00    0.20335D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        128
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        221
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        229 f-s =        308 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.45579D-04    0.45400D-04    0.17939D-06
+  2    0.44586D-08    0.20612D-08    0.23974D-08
+  3    0.15376D-27    0.28230D-55    0.15376D-27
+  4    0.19802D-26    0.52358D-51    0.19802D-26
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =   1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        263 f-s =        418 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D+00    0.99999D+00    0.91142D-07
+  2    0.99999D+00    0.99999D+00    0.91137D-07
+  3    0.99999D+00    0.99999D+00    0.84950D-07
+  4    0.99999D+00    0.99999D+00    0.75375D-07
+  5    0.99999D+00    0.99999D+00    0.63502D-07
+  6    0.10000D+01    0.10000D+01    0.50215D-07
+  7    0.10000D+01    0.10000D+01    0.36359D-07
+  8    0.10000D+01    0.10000D+01    0.22745D-07
+  9    0.10000D+01    0.10000D+01    0.10109D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        506
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         39
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.12788D+00
+    0.10000D+01
+ Steps =        276 f-s =        385 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.39608D-10
+  2    0.13685D-01    0.13685D-01    0.75704D-10
+  3    0.19229D+00    0.19229D+00    0.56270D-08
+  4    0.13534D+00    0.13534D+00    0.51101D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        358 f-s =        535 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.13268D-06
+  2   -0.43441D-08    0.12659D-13    0.43441D-08
+  3    0.40050D-16    0.19115D-41    0.40050D-16
+  4   -0.32925D-22    0.22774D-54    0.32925D-22
+  5   -0.39433D-31    0.00000D+00    0.39433D-31
+  6   -0.12327D-41    0.00000D+00    0.12327D-41
+  7   -0.52242D-53    0.00000D+00    0.52242D-53
+  8    0.37414D-64    0.00000D+00    0.37414D-64
+  9    0.13554D-72    0.00000D+00    0.13554D-72
+ 10    0.23569D-80    0.00000D+00    0.23569D-80
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        610
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         40
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =        975 f-s =       1107 J-s =         21
+ Computed and reference solutions and absolute errors follow:
+  1   -0.17030D-06    0.10042D-08    0.17130D-06
+  2    0.58479D-06    0.20955D-08    0.58269D-06
+  3    0.68664D-44    0.00000D+00    0.68664D-44
+  4    0.37321D-43   -0.18767D-79    0.37321D-43
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        201 f-s =        282 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.10445D-14    0.61813D-30    0.10445D-14
+  2    0.55349D-15    0.89637D-30    0.55349D-15
+  3   -0.31348D-12    0.27384D-26    0.31348D-12
+  4    0.17054D-08    0.20612D-08    0.35571D-09
+  5    0.45523D-04    0.45400D-04    0.12318D-06
+  6    0.13534D+00    0.13534D+00    0.14002D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        254
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        219 f-s =        301 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1   -0.25085D-12   -0.10768D-27    0.25085D-12
+  2    0.25516D-12    0.54550D-27    0.25516D-12
+  3    0.20234D-13    0.27385D-26    0.20234D-13
+  4    0.32642D-08    0.20612D-08    0.12030D-08
+  5    0.45517D-04    0.45400D-04    0.11735D-06
+  6    0.13534D+00    0.13534D+00    0.12669D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        254
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        373 f-s =        461 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1   -0.98379D-11    0.11886D-21    0.98379D-11
+  2    0.31375D-10   -0.23259D-21    0.31375D-10
+  3   -0.73055D-17    0.15179D-34    0.73055D-17
+  4    0.16508D-08    0.20612D-08    0.41040D-09
+  5    0.45488D-04    0.45400D-04    0.88396D-07
+  6    0.13534D+00    0.13534D+00    0.82984D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        254
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.76336D+00
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       2868 f-s =       3382 J-s =         53
+ Computed and reference solutions and absolute errors follow:
+  1    0.97315D-07   -0.23669D-13    0.97315D-07
+  2    0.20088D-05    0.34489D-13    0.20088D-05
+  3    0.18048D-34    0.18049D-34    0.13281D-39
+  4    0.20612D-08    0.20612D-08    0.14762D-16
+  5    0.45400D-04    0.45400D-04    0.93005D-14
+  6    0.13534D+00    0.13534D+00    0.10719D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        254
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.98039D+00
+    0.97087D+00
+    0.10000D+01
+    0.10000D+01
+ Steps =        269 f-s =        352 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.39250D-03    0.39247D-03    0.26281D-07
+  2    0.38850D-03    0.38850D-03    0.23706D-14
+  3    0.40000D-03    0.40000D-03    0.00000D+00
+  4    0.20000D-01    0.20000D-01    0.34694D-17
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        239 f-s =        330 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.42538D-07
+  2    0.40000D-01    0.40000D-01    0.38015D-08
+  3    0.40016D-01    0.40016D-01    0.34925D-08
+  4    0.40032D-01    0.40032D-01    0.34429D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        239 f-s =        332 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.75664D-07
+  2    0.40000D+00    0.40000D+00    0.67634D-07
+  3    0.41600D+00    0.41600D+00    0.67646D-07
+  4    0.43331D+00    0.43331D+00    0.72296D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.50000D+00
+    0.25000D+00
+    0.50000D-01
+    0.23810D-02
+ Steps =        207 f-s =        277 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.98491D-08
+  2    0.10000D+01    0.10000D+01    0.21530D-07
+  3    0.10000D+01    0.10000D+01    0.37481D-07
+  4    0.10000D+01    0.10000D+01    0.66996D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.50000D+00
+    0.12500D+00
+    0.73529D-02
+    0.26954D-04
+ Steps =        196 f-s =        291 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.20481D-08
+  2    0.10000D+01    0.10000D+01    0.45559D-08
+  3    0.10000D+01    0.10000D+01    0.90500D-08
+  4    0.10008D+01    0.10008D+01    0.18149D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        216 f-s =        330 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.99741D+00    0.99741D+00    0.19719D-05
+  2    0.10004D+01    0.10004D+01    0.10872D-05
+  3    0.10000D+01    0.10000D+01    0.99920D-15
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        353 f-s =        508 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.13925D-06
+  2    0.25166D+00    0.25166D+00    0.14925D-06
+  3    0.99707D+00    0.99707D+00    0.48861D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        327 f-s =        454 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.11314D-11
+  2    0.56309D-02    0.56309D-02    0.92495D-14
+  3    0.10007D+01    0.10007D+01    0.31548D-11
+  4    0.65374D+00    0.65374D+00    0.86631D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.70423D+00
+    0.00000D+00
+ Steps =        161 f-s =        242 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.91746D-06
+  2    0.98757D+00    0.98757D+00    0.64610D-06
+  3   -0.51035D+00   -0.51035D+00    0.10017D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        168 f-s =        273 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99964D+00   -0.99964D+00    0.35837D-05
+  2    0.99932D+00    0.99933D+00    0.40834D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         58
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         32
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        274 f-s =        380 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.51951D-07
+  2    0.99730D+00    0.99730D+00    0.35102D-06
+  3    0.10005D+01    0.10005D+01    0.10998D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        242 f-s =        325 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.37902D-10
+  2   -0.32148D-09   -0.72884D-12    0.32075D-09
+  3    0.11305D-08    0.15348D-11    0.11289D-08
+  4   -0.81371D-09   -0.10837D-11    0.81263D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.99010D+00
+    0.00000D+00
+ Steps =        289 f-s =        401 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1   -0.57361D+00   -0.57361D+00    0.89271D-05
+  2    0.56347D-01    0.56344D-01    0.26480D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         58
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         32
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.61350D+00
+    0.62500D+00
+    0.00000D+00
+ Steps =        289 f-s =        423 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.26095D-02    0.26092D-02    0.29638D-06
+  2    0.33235D-02    0.33231D-02    0.36947D-06
+  3    0.99911D+00    0.99911D+00    0.46789D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.00000D+00
+   -0.67797D-01
+   -0.64516D-01
+   -0.61350D-01
+ Steps =        416 f-s =        565 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1    0.69444D+00    0.69444D+00    0.10119D-07
+  2   -0.67797D+00   -0.67797D+00    0.98792D-08
+  3   -0.33303D-07   -0.14501D-07    0.18802D-07
+  4    0.31669D-07    0.13789D-07    0.17880D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        136 f-s =        184 J-s =          4
+ Computed and reference solutions and absolute errors follow:
+  1    0.91936D+00    0.91936D+00    0.14972D-06
+  2    0.94674D+00    0.94674D+00    0.13649D-06
+  3    0.99777D+00    0.99777D+00    0.29530D-06
+  4    0.94183D+00    0.94183D+00    0.43258D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.62893D+00
+    0.00000D+00
+    0.49587D+00
+    0.10000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =        607 f-s =       1024 J-s =         23
+ Computed and reference solutions and absolute errors follow:
+  1    0.10009D+01    0.10009D+01    0.24681D-06
+  2    0.15223D-03    0.15223D-03    0.38538D-09
+  3    0.99887D+00    0.99887D+00    0.24498D-06
+  4    0.32420D-02    0.32420D-02    0.32087D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        144
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         38
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        142 f-s =        207 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.52919D-06
+  2    0.52568D+00    0.52568D+00    0.71038D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         62
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        351 f-s =        471 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.81539D-07    0.80898D-07    0.64119D-09
+  2    0.23607D+00    0.23607D+00    0.36915D-07
+  3    0.20426D-04    0.20426D-04    0.16227D-09
+  4    0.99860D+00    0.99860D+00    0.33268D-07
+  5    0.99879D+00    0.99879D+00    0.19027D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        200
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         40
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.33898D-04
+    0.62147D-03
+    0.12780D-03
+ Nonnegativity will be enforced for this problem.
+ Steps =       1018 f-s =       1726 J-s =         28
+ Computed and reference solutions and absolute errors follow:
+  1    0.37183D-04    0.37443D-04    0.26064D-06
+  2    0.72887D-03    0.72895D-03    0.85195D-07
+  3    0.96495D-04    0.96463D-04    0.31912D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         98
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10015D+01
+    0.10001D+01
+    0.26527D+00
+    0.98220D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        343 f-s =        511 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.50999D+00    0.50999D+00    0.16726D-09
+  2    0.44958D+00    0.44958D+00    0.15010D-09
+  3    0.99988D+00    0.99988D+00    0.33382D-09
+  4    0.99949D+00    0.99949D+00    0.58824D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        144
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         38
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        302 f-s =        408 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.45410D-04    0.45400D-04    0.10373D-07
+  2    0.21066D-08    0.20612D-08    0.45434D-10
+  3    0.13566D-36    0.28230D-55    0.13566D-36
+  4   -0.21446D-34    0.52358D-51    0.21446D-34
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =   1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        375 f-s =        530 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D+00    0.99999D+00    0.24812D-07
+  2    0.99999D+00    0.99999D+00    0.24810D-07
+  3    0.99999D+00    0.99999D+00    0.23131D-07
+  4    0.99999D+00    0.99999D+00    0.20530D-07
+  5    0.99999D+00    0.99999D+00    0.17302D-07
+  6    0.10000D+01    0.10000D+01    0.13687D-07
+  7    0.10000D+01    0.10000D+01    0.99132D-08
+  8    0.10000D+01    0.10000D+01    0.62026D-08
+  9    0.10000D+01    0.10000D+01    0.27568D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        290
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         39
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.12788D+00
+    0.10000D+01
+ Steps =        385 f-s =        494 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.44852D-09
+  2    0.13685D-01    0.13685D-01    0.45067D-08
+  3    0.19229D+00    0.19229D+00    0.63728D-07
+  4    0.13534D+00    0.13534D+00    0.47698D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        495 f-s =        685 J-s =         13
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.30809D-08
+  2    0.81042D-08    0.12659D-13    0.81042D-08
+  3   -0.47930D-16    0.19115D-41    0.47930D-16
+  4    0.16367D-27    0.22774D-54    0.16367D-27
+  5   -0.76092D-39    0.00000D+00    0.76092D-39
+  6   -0.31273D-52    0.00000D+00    0.31273D-52
+  7   -0.64761D-65    0.00000D+00    0.64761D-65
+  8    0.16712D-81    0.00000D+00    0.16712D-81
+  9    0.37406D-92    0.00000D+00    0.37406D-92
+ 10    0.27832-108    0.00000D+00    0.27832-108
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        340
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         40
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =       1361 f-s =       1529 J-s =         28
+ Computed and reference solutions and absolute errors follow:
+  1    0.10574D-06    0.10042D-08    0.10474D-06
+  2   -0.15963D-06    0.20955D-08    0.16172D-06
+  3   -0.12280D-63    0.00000D+00    0.12280D-63
+  4    0.42197D-62   -0.18767D-79    0.42197D-62
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        281 f-s =        371 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.87998D-22    0.61813D-30    0.87998D-22
+  2   -0.28787D-19    0.89637D-30    0.28787D-19
+  3    0.24212D-17    0.27384D-26    0.24212D-17
+  4    0.21533D-08    0.20612D-08    0.92104D-10
+  5    0.45420D-04    0.45400D-04    0.20557D-07
+  6    0.13534D+00    0.13534D+00    0.24873D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        305 f-s =        402 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1   -0.34875D-16   -0.10768D-27    0.34875D-16
+  2   -0.20762D-15    0.54550D-27    0.20762D-15
+  3   -0.14217D-16    0.27385D-26    0.14217D-16
+  4    0.21473D-08    0.20612D-08    0.86185D-10
+  5    0.45416D-04    0.45400D-04    0.16174D-07
+  6    0.13534D+00    0.13534D+00    0.20554D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        585 f-s =        725 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1   -0.12168D-10    0.11886D-21    0.12168D-10
+  2   -0.12670D-11   -0.23259D-21    0.12670D-11
+  3   -0.13147D-25    0.15179D-34    0.13147D-25
+  4    0.21214D-08    0.20612D-08    0.60284D-10
+  5    0.45410D-04    0.45400D-04    0.10211D-07
+  6    0.13534D+00    0.13534D+00    0.25005D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.76336D+00
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       3238 f-s =       3773 J-s =         59
+ Computed and reference solutions and absolute errors follow:
+  1   -0.39584D-07   -0.23669D-13    0.39584D-07
+  2    0.42399D-06    0.34489D-13    0.42399D-06
+  3    0.18048D-34    0.18049D-34    0.50737D-39
+  4    0.20612D-08    0.20612D-08    0.53822D-16
+  5    0.45400D-04    0.45400D-04    0.36659D-13
+  6    0.13534D+00    0.13534D+00    0.23065D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.98039D+00
+    0.97087D+00
+    0.10000D+01
+    0.10000D+01
+ Steps =        367 f-s =        464 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1    0.39247D-03    0.39247D-03    0.18517D-08
+  2    0.38850D-03    0.38850D-03    0.24395D-17
+  3    0.40000D-03    0.40000D-03    0.10842D-18
+  4    0.20000D-01    0.20000D-01    0.34694D-17
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        336 f-s =        435 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.58869D-08
+  2    0.40000D-01    0.40000D-01    0.51489D-09
+  3    0.40016D-01    0.40016D-01    0.47755D-09
+  4    0.40032D-01    0.40032D-01    0.47120D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        324 f-s =        413 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.47449D-08
+  2    0.40000D+00    0.40000D+00    0.42025D-08
+  3    0.41600D+00    0.41600D+00    0.42316D-08
+  4    0.43331D+00    0.43331D+00    0.45274D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.50000D+00
+    0.25000D+00
+    0.50000D-01
+    0.23810D-02
+ Steps =        260 f-s =        356 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.42626D-08
+  2    0.10000D+01    0.10000D+01    0.94730D-08
+  3    0.10000D+01    0.10000D+01    0.17294D-07
+  4    0.10000D+01    0.10000D+01    0.34084D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.50000D+00
+    0.12500D+00
+    0.73529D-02
+    0.26954D-04
+ Steps =        252 f-s =        337 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.90918D-09
+  2    0.10000D+01    0.10000D+01    0.20201D-08
+  3    0.10000D+01    0.10000D+01    0.40088D-08
+  4    0.10008D+01    0.10008D+01    0.80857D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        375 f-s =        555 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.99741D+00    0.99741D+00    0.24683D-06
+  2    0.10004D+01    0.10004D+01    0.21390D-06
+  3    0.10000D+01    0.10000D+01    0.36637D-14
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        454 f-s =        639 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.88688D-07
+  2    0.25166D+00    0.25166D+00    0.79424D-07
+  3    0.99707D+00    0.99707D+00    0.31120D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        444 f-s =        577 J-s =         13
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.14170D-08
+  2    0.56309D-02    0.56309D-02    0.27630D-11
+  3    0.10007D+01    0.10007D+01    0.39360D-08
+  4    0.65374D+00    0.65374D+00    0.14636D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.70423D+00
+    0.00000D+00
+ Steps =        246 f-s =        355 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.79118D-07
+  2    0.98757D+00    0.98757D+00    0.55717D-07
+  3   -0.51035D+00   -0.51035D+00    0.81210D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        215 f-s =        345 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99964D+00   -0.99964D+00    0.64733D-06
+  2    0.99932D+00    0.99933D+00    0.70299D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         52
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         32
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        375 f-s =        542 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.42723D-08
+  2    0.99730D+00    0.99730D+00    0.28867D-07
+  3    0.10005D+01    0.10005D+01    0.90582D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        331 f-s =        422 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.13083D-09
+  2   -0.40876D-09   -0.72884D-12    0.40803D-09
+  3    0.43128D-09    0.15348D-11    0.42974D-09
+  4   -0.18092D-09   -0.10837D-11    0.17983D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.99010D+00
+    0.00000D+00
+ Steps =        401 f-s =        518 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1   -0.57361D+00   -0.57361D+00    0.93642D-06
+  2    0.56344D-01    0.56344D-01    0.21113D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         52
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         32
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.61350D+00
+    0.62500D+00
+    0.00000D+00
+ Steps =        418 f-s =        595 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1    0.26092D-02    0.26092D-02    0.14551D-07
+  2    0.33232D-02    0.33231D-02    0.18497D-07
+  3    0.99911D+00    0.99911D+00    0.15033D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.00000D+00
+   -0.67797D-01
+   -0.64516D-01
+   -0.61350D-01
+ Steps =        564 f-s =        737 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.69444D+00    0.69444D+00    0.13132D-08
+  2   -0.67797D+00   -0.67797D+00    0.12820D-08
+  3   -0.12061D-07   -0.14501D-07    0.24400D-08
+  4    0.11469D-07    0.13789D-07    0.23203D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        182 f-s =        250 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.91936D+00    0.91936D+00    0.66406D-08
+  2    0.94674D+00    0.94674D+00    0.17136D-07
+  3    0.99777D+00    0.99777D+00    0.39190D-08
+  4    0.94183D+00    0.94183D+00    0.18415D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.62893D+00
+    0.00000D+00
+    0.49587D+00
+    0.10000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =        725 f-s =       1191 J-s =         26
+ Computed and reference solutions and absolute errors follow:
+  1    0.10009D+01    0.10009D+01    0.35524D-07
+  2    0.15223D-03    0.15223D-03    0.70904D-10
+  3    0.99887D+00    0.99887D+00    0.35261D-07
+  4    0.32420D-02    0.32420D-02    0.59021D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        108
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         38
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        204 f-s =        277 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.54122D-07
+  2    0.52568D+00    0.52568D+00    0.72659D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         56
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        422 f-s =        515 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.80900D-07    0.80898D-07    0.17524D-11
+  2    0.23607D+00    0.23607D+00    0.17681D-07
+  3    0.20426D-04    0.20426D-04    0.79556D-12
+  4    0.99860D+00    0.99860D+00    0.60485D-07
+  5    0.99879D+00    0.99879D+00    0.14292D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         40
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.33898D-04
+    0.62147D-03
+    0.12780D-03
+ Nonnegativity will be enforced for this problem.
+ Steps =       1237 f-s =       2084 J-s =         31
+ Computed and reference solutions and absolute errors follow:
+  1    0.37452D-04    0.37443D-04    0.86547D-08
+  2    0.72887D-03    0.72895D-03    0.80383D-07
+  3    0.96511D-04    0.96463D-04    0.48379D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         80
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10015D+01
+    0.10001D+01
+    0.26527D+00
+    0.98220D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        501 f-s =        733 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.50999D+00    0.50999D+00    0.83864D-10
+  2    0.44958D+00    0.44958D+00    0.75259D-10
+  3    0.99988D+00    0.99988D+00    0.16738D-09
+  4    0.99949D+00    0.99949D+00    0.29521D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        108
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         38
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        302 f-s =        452 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.45410D-04    0.45400D-04    0.10373D-07
+  2    0.21066D-08    0.20612D-08    0.45434D-10
+  3    0.13566D-36    0.28230D-55    0.13566D-36
+  4   -0.21446D-34    0.52358D-51    0.21446D-34
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =   1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        376 f-s =        700 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D+00    0.99999D+00    0.11087D-07
+  2    0.99999D+00    0.99999D+00    0.11087D-07
+  3    0.99999D+00    0.99999D+00    0.10336D-07
+  4    0.99999D+00    0.99999D+00    0.91739D-08
+  5    0.99999D+00    0.99999D+00    0.77316D-08
+  6    0.10000D+01    0.10000D+01    0.61159D-08
+  7    0.10000D+01    0.10000D+01    0.44298D-08
+  8    0.10000D+01    0.10000D+01    0.27716D-08
+  9    0.10000D+01    0.10000D+01    0.12319D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        380
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        762
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.12788D+00
+    0.10000D+01
+ Steps =        385 f-s =        570 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.44854D-09
+  2    0.13685D-01    0.13685D-01    0.45069D-08
+  3    0.19229D+00    0.19229D+00    0.63731D-07
+  4    0.13534D+00    0.13534D+00    0.47700D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        495 f-s =        875 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.30809D-08
+  2    0.81042D-08    0.12659D-13    0.81042D-08
+  3   -0.47930D-16    0.19115D-41    0.47930D-16
+  4    0.16367D-27    0.22774D-54    0.16367D-27
+  5   -0.76092D-39    0.00000D+00    0.76092D-39
+  6   -0.31273D-52    0.00000D+00    0.31273D-52
+  7   -0.64761D-65    0.00000D+00    0.64761D-65
+  8    0.16712D-81    0.00000D+00    0.16712D-81
+  9    0.37406D-92    0.00000D+00    0.37406D-92
+ 10    0.27832-108    0.00000D+00    0.27832-108
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        450
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        913
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =       1361 f-s =       1729 J-s =         39
+ Computed and reference solutions and absolute errors follow:
+  1    0.87727D-07    0.10042D-08    0.86722D-07
+  2   -0.15830D-06    0.20955D-08    0.16040D-06
+  3   -0.28596D-63    0.00000D+00    0.28596D-63
+  4    0.19235D-62   -0.18767D-79    0.19235D-62
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        281 f-s =        449 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.88000D-22    0.61813D-30    0.88000D-22
+  2   -0.28787D-19    0.89637D-30    0.28787D-19
+  3    0.24212D-17    0.27384D-26    0.24212D-17
+  4    0.21533D-08    0.20612D-08    0.92104D-10
+  5    0.45420D-04    0.45400D-04    0.20557D-07
+  6    0.13534D+00    0.13534D+00    0.24873D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        206
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        393
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        305 f-s =        474 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1   -0.34875D-16   -0.10768D-27    0.34875D-16
+  2   -0.20762D-15    0.54550D-27    0.20762D-15
+  3   -0.14217D-16    0.27385D-26    0.14217D-16
+  4    0.21473D-08    0.20612D-08    0.86185D-10
+  5    0.45416D-04    0.45400D-04    0.16174D-07
+  6    0.13534D+00    0.13534D+00    0.20554D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        206
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        393
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        585 f-s =        851 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1   -0.12168D-10    0.11886D-21    0.12168D-10
+  2   -0.12672D-11   -0.23259D-21    0.12672D-11
+  3   -0.13147D-25    0.15179D-34    0.13147D-25
+  4    0.21214D-08    0.20612D-08    0.60284D-10
+  5    0.45410D-04    0.45400D-04    0.10211D-07
+  6    0.13534D+00    0.13534D+00    0.25005D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        206
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        393
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.76336D+00
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       3239 f-s =       4488 J-s =         89
+ Computed and reference solutions and absolute errors follow:
+  1   -0.19006D-07   -0.23669D-13    0.19006D-07
+  2    0.40166D-06    0.34489D-13    0.40166D-06
+  3    0.18048D-34    0.18049D-34    0.50701D-39
+  4    0.20612D-08    0.20612D-08    0.53785D-16
+  5    0.45400D-04    0.45400D-04    0.36634D-13
+  6    0.13534D+00    0.13534D+00    0.23037D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        206
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        393
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.98039D+00
+    0.97087D+00
+    0.10000D+01
+    0.10000D+01
+ Steps =        367 f-s =        520 J-s =         13
+ Computed and reference solutions and absolute errors follow:
+  1    0.39247D-03    0.39247D-03    0.18530D-08
+  2    0.38850D-03    0.38850D-03    0.22768D-17
+  3    0.40000D-03    0.40000D-03    0.10842D-18
+  4    0.20000D-01    0.20000D-01    0.34694D-17
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        336 f-s =        495 J-s =         13
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.60484D-08
+  2    0.40000D-01    0.40000D-01    0.53764D-09
+  3    0.40016D-01    0.40016D-01    0.49671D-09
+  4    0.40032D-01    0.40032D-01    0.48958D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        324 f-s =        461 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.32007D-08
+  2    0.40000D+00    0.40000D+00    0.26488D-08
+  3    0.41600D+00    0.41600D+00    0.29465D-08
+  4    0.43331D+00    0.43331D+00    0.31514D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.50000D+00
+    0.25000D+00
+    0.50000D-01
+    0.23810D-02
+ Steps =        259 f-s =        392 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.14432D-08
+  2    0.10000D+01    0.10000D+01    0.32118D-08
+  3    0.10000D+01    0.10000D+01    0.58650D-08
+  4    0.10000D+01    0.10000D+01    0.11561D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.50000D+00
+    0.12500D+00
+    0.73529D-02
+    0.26954D-04
+ Steps =        245 f-s =        370 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.66267D-08
+  2    0.10000D+01    0.10000D+01    0.14731D-07
+  3    0.10000D+01    0.10000D+01    0.29238D-07
+  4    0.10008D+01    0.10008D+01    0.59000D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        390 f-s =        663 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1    0.99741D+00    0.99741D+00    0.80963D-07
+  2    0.10004D+01    0.10004D+01    0.87601D-07
+  3    0.10000D+01    0.10000D+01    0.16653D-14
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        387 f-s =        597 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.37716D-07
+  2    0.25166D+00    0.25166D+00    0.40170D-07
+  3    0.99707D+00    0.99707D+00    0.13234D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        419 f-s =        657 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.30188D-09
+  2    0.56309D-02    0.56309D-02    0.58866D-12
+  3    0.10007D+01    0.10007D+01    0.83857D-09
+  4    0.65374D+00    0.65374D+00    0.31182D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.70423D+00
+    0.00000D+00
+ Steps =        244 f-s =        383 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.13330D-06
+  2    0.98757D+00    0.98757D+00    0.93870D-07
+  3   -0.51035D+00   -0.51035D+00    0.13884D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        264 f-s =        499 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99964D+00   -0.99964D+00    0.75752D-06
+  2    0.99932D+00    0.99933D+00    0.82563D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         58
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        354 f-s =        568 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.17038D-07
+  2    0.99730D+00    0.99730D+00    0.11512D-06
+  3    0.10005D+01    0.10005D+01    0.36344D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        324 f-s =        477 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.70193D-09
+  2   -0.10352D-08   -0.72884D-12    0.10345D-08
+  3    0.76396D-08    0.15348D-11    0.76380D-08
+  4    0.62546D-08   -0.10837D-11    0.62557D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.99010D+00
+    0.00000D+00
+ Steps =        402 f-s =        560 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1   -0.57361D+00   -0.57361D+00    0.13736D-05
+  2    0.56345D-01    0.56344D-01    0.35956D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         58
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.61350D+00
+    0.62500D+00
+    0.00000D+00
+ Steps =        352 f-s =        526 J-s =         13
+ Computed and reference solutions and absolute errors follow:
+  1    0.26093D-02    0.26092D-02    0.35787D-07
+  2    0.33232D-02    0.33231D-02    0.45459D-07
+  3    0.99911D+00    0.99911D+00    0.37349D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.00000D+00
+   -0.67797D-01
+   -0.64516D-01
+   -0.61350D-01
+ Steps =        539 f-s =        790 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1    0.69444D+00    0.69444D+00    0.41229D-08
+  2   -0.67797D+00   -0.67797D+00    0.40251D-08
+  3   -0.22162D-07   -0.14501D-07    0.76607D-08
+  4    0.21074D-07    0.13789D-07    0.72847D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        193 f-s =        295 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.91936D+00    0.91936D+00    0.28957D-08
+  2    0.94674D+00    0.94674D+00    0.42365D-07
+  3    0.99777D+00    0.99777D+00    0.14138D-07
+  4    0.94183D+00    0.94183D+00    0.76051D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.62893D+00
+    0.00000D+00
+    0.49587D+00
+    0.10000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =        780 f-s =       1456 J-s =         34
+ Computed and reference solutions and absolute errors follow:
+  1    0.10009D+01    0.10009D+01    0.50334D-07
+  2    0.15223D-03    0.15223D-03    0.27044D-09
+  3    0.99887D+00    0.99887D+00    0.49961D-07
+  4    0.32420D-02    0.32420D-02    0.22496D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        128
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        221
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        209 f-s =        304 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.10995D-07
+  2    0.52568D+00    0.52568D+00    0.14764D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         62
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        401 f-s =        612 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1    0.80902D-07    0.80898D-07    0.39667D-11
+  2    0.23607D+00    0.23607D+00    0.72361D-08
+  3    0.20426D-04    0.20426D-04    0.15085D-11
+  4    0.99860D+00    0.99860D+00    0.24813D-07
+  5    0.99879D+00    0.99879D+00    0.58046D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        170
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        303
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.33898D-04
+    0.62147D-03
+    0.12780D-03
+ Nonnegativity will be enforced for this problem.
+ Steps =       1294 f-s =       2356 J-s =         53
+ Computed and reference solutions and absolute errors follow:
+  1    0.37426D-04    0.37443D-04    0.17438D-07
+  2    0.72906D-03    0.72895D-03    0.10454D-06
+  3    0.96390D-04    0.96463D-04    0.72442D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        153
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10015D+01
+    0.10001D+01
+    0.26527D+00
+    0.98220D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        437 f-s =        674 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1    0.50999D+00    0.50999D+00    0.28978D-09
+  2    0.44958D+00    0.44958D+00    0.26004D-09
+  3    0.99988D+00    0.99988D+00    0.57834D-09
+  4    0.99949D+00    0.99949D+00    0.10193D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        128
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        221
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        302 f-s =        408 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.45410D-04    0.45400D-04    0.10373D-07
+  2    0.21066D-08    0.20612D-08    0.45434D-10
+  3    0.13566D-36    0.28230D-55    0.13566D-36
+  4   -0.21446D-34    0.52358D-51    0.21446D-34
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =   1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        375 f-s =        530 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D+00    0.99999D+00    0.24812D-07
+  2    0.99999D+00    0.99999D+00    0.24810D-07
+  3    0.99999D+00    0.99999D+00    0.23131D-07
+  4    0.99999D+00    0.99999D+00    0.20530D-07
+  5    0.99999D+00    0.99999D+00    0.17302D-07
+  6    0.10000D+01    0.10000D+01    0.13687D-07
+  7    0.10000D+01    0.10000D+01    0.99132D-08
+  8    0.10000D+01    0.10000D+01    0.62026D-08
+  9    0.10000D+01    0.10000D+01    0.27568D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        506
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         39
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.12788D+00
+    0.10000D+01
+ Steps =        385 f-s =        494 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.44852D-09
+  2    0.13685D-01    0.13685D-01    0.45067D-08
+  3    0.19229D+00    0.19229D+00    0.63728D-07
+  4    0.13534D+00    0.13534D+00    0.47698D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        495 f-s =        685 J-s =         13
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.30809D-08
+  2    0.81042D-08    0.12659D-13    0.81042D-08
+  3   -0.47930D-16    0.19115D-41    0.47930D-16
+  4    0.16367D-27    0.22774D-54    0.16367D-27
+  5   -0.76092D-39    0.00000D+00    0.76092D-39
+  6   -0.31273D-52    0.00000D+00    0.31273D-52
+  7   -0.64761D-65    0.00000D+00    0.64761D-65
+  8    0.16712D-81    0.00000D+00    0.16712D-81
+  9    0.37406D-92    0.00000D+00    0.37406D-92
+ 10    0.27832-108    0.00000D+00    0.27832-108
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        610
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         40
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =       1361 f-s =       1529 J-s =         28
+ Computed and reference solutions and absolute errors follow:
+  1    0.10574D-06    0.10042D-08    0.10474D-06
+  2   -0.15963D-06    0.20955D-08    0.16172D-06
+  3   -0.12280D-63    0.00000D+00    0.12280D-63
+  4    0.42197D-62   -0.18767D-79    0.42197D-62
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        281 f-s =        371 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.87998D-22    0.61813D-30    0.87998D-22
+  2   -0.28787D-19    0.89637D-30    0.28787D-19
+  3    0.24212D-17    0.27384D-26    0.24212D-17
+  4    0.21533D-08    0.20612D-08    0.92104D-10
+  5    0.45420D-04    0.45400D-04    0.20557D-07
+  6    0.13534D+00    0.13534D+00    0.24873D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        254
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        305 f-s =        402 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1   -0.34875D-16   -0.10768D-27    0.34875D-16
+  2   -0.20762D-15    0.54550D-27    0.20762D-15
+  3   -0.14217D-16    0.27385D-26    0.14217D-16
+  4    0.21473D-08    0.20612D-08    0.86185D-10
+  5    0.45416D-04    0.45400D-04    0.16174D-07
+  6    0.13534D+00    0.13534D+00    0.20554D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        254
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        585 f-s =        725 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1   -0.12168D-10    0.11886D-21    0.12168D-10
+  2   -0.12670D-11   -0.23259D-21    0.12670D-11
+  3   -0.13147D-25    0.15179D-34    0.13147D-25
+  4    0.21214D-08    0.20612D-08    0.60284D-10
+  5    0.45410D-04    0.45400D-04    0.10211D-07
+  6    0.13534D+00    0.13534D+00    0.25005D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        254
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.76336D+00
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       3238 f-s =       3773 J-s =         59
+ Computed and reference solutions and absolute errors follow:
+  1   -0.39584D-07   -0.23669D-13    0.39584D-07
+  2    0.42399D-06    0.34489D-13    0.42399D-06
+  3    0.18048D-34    0.18049D-34    0.50737D-39
+  4    0.20612D-08    0.20612D-08    0.53822D-16
+  5    0.45400D-04    0.45400D-04    0.36659D-13
+  6    0.13534D+00    0.13534D+00    0.23065D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        254
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.98039D+00
+    0.97087D+00
+    0.10000D+01
+    0.10000D+01
+ Steps =        367 f-s =        464 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1    0.39247D-03    0.39247D-03    0.18517D-08
+  2    0.38850D-03    0.38850D-03    0.24395D-17
+  3    0.40000D-03    0.40000D-03    0.10842D-18
+  4    0.20000D-01    0.20000D-01    0.34694D-17
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        336 f-s =        435 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.58869D-08
+  2    0.40000D-01    0.40000D-01    0.51489D-09
+  3    0.40016D-01    0.40016D-01    0.47755D-09
+  4    0.40032D-01    0.40032D-01    0.47120D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        324 f-s =        413 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.47449D-08
+  2    0.40000D+00    0.40000D+00    0.42025D-08
+  3    0.41600D+00    0.41600D+00    0.42316D-08
+  4    0.43331D+00    0.43331D+00    0.45274D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.50000D+00
+    0.25000D+00
+    0.50000D-01
+    0.23810D-02
+ Steps =        260 f-s =        356 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.42626D-08
+  2    0.10000D+01    0.10000D+01    0.94730D-08
+  3    0.10000D+01    0.10000D+01    0.17294D-07
+  4    0.10000D+01    0.10000D+01    0.34084D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.50000D+00
+    0.12500D+00
+    0.73529D-02
+    0.26954D-04
+ Steps =        252 f-s =        337 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.90918D-09
+  2    0.10000D+01    0.10000D+01    0.20201D-08
+  3    0.10000D+01    0.10000D+01    0.40088D-08
+  4    0.10008D+01    0.10008D+01    0.80857D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        375 f-s =        555 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.99741D+00    0.99741D+00    0.24683D-06
+  2    0.10004D+01    0.10004D+01    0.21390D-06
+  3    0.10000D+01    0.10000D+01    0.36637D-14
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        454 f-s =        639 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.88688D-07
+  2    0.25166D+00    0.25166D+00    0.79424D-07
+  3    0.99707D+00    0.99707D+00    0.31120D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        444 f-s =        577 J-s =         13
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.14170D-08
+  2    0.56309D-02    0.56309D-02    0.27630D-11
+  3    0.10007D+01    0.10007D+01    0.39360D-08
+  4    0.65374D+00    0.65374D+00    0.14636D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.70423D+00
+    0.00000D+00
+ Steps =        246 f-s =        355 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.79118D-07
+  2    0.98757D+00    0.98757D+00    0.55717D-07
+  3   -0.51035D+00   -0.51035D+00    0.81210D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        215 f-s =        345 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99964D+00   -0.99964D+00    0.64733D-06
+  2    0.99932D+00    0.99933D+00    0.70299D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         58
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         32
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        375 f-s =        542 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.42723D-08
+  2    0.99730D+00    0.99730D+00    0.28867D-07
+  3    0.10005D+01    0.10005D+01    0.90582D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        331 f-s =        422 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.13083D-09
+  2   -0.40876D-09   -0.72884D-12    0.40803D-09
+  3    0.43128D-09    0.15348D-11    0.42974D-09
+  4   -0.18092D-09   -0.10837D-11    0.17983D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.99010D+00
+    0.00000D+00
+ Steps =        401 f-s =        518 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1   -0.57361D+00   -0.57361D+00    0.93642D-06
+  2    0.56344D-01    0.56344D-01    0.21113D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         58
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         32
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.61350D+00
+    0.62500D+00
+    0.00000D+00
+ Steps =        418 f-s =        595 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1    0.26092D-02    0.26092D-02    0.14551D-07
+  2    0.33232D-02    0.33231D-02    0.18497D-07
+  3    0.99911D+00    0.99911D+00    0.15033D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.00000D+00
+   -0.67797D-01
+   -0.64516D-01
+   -0.61350D-01
+ Steps =        564 f-s =        737 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.69444D+00    0.69444D+00    0.13132D-08
+  2   -0.67797D+00   -0.67797D+00    0.12820D-08
+  3   -0.12061D-07   -0.14501D-07    0.24400D-08
+  4    0.11469D-07    0.13789D-07    0.23203D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        182 f-s =        250 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.91936D+00    0.91936D+00    0.66406D-08
+  2    0.94674D+00    0.94674D+00    0.17136D-07
+  3    0.99777D+00    0.99777D+00    0.39190D-08
+  4    0.94183D+00    0.94183D+00    0.18415D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.62893D+00
+    0.00000D+00
+    0.49587D+00
+    0.10000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =        725 f-s =       1191 J-s =         26
+ Computed and reference solutions and absolute errors follow:
+  1    0.10009D+01    0.10009D+01    0.35524D-07
+  2    0.15223D-03    0.15223D-03    0.70904D-10
+  3    0.99887D+00    0.99887D+00    0.35261D-07
+  4    0.32420D-02    0.32420D-02    0.59021D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        144
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         38
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        204 f-s =        277 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.54122D-07
+  2    0.52568D+00    0.52568D+00    0.72659D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         62
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        422 f-s =        515 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.80900D-07    0.80898D-07    0.17524D-11
+  2    0.23607D+00    0.23607D+00    0.17681D-07
+  3    0.20426D-04    0.20426D-04    0.79556D-12
+  4    0.99860D+00    0.99860D+00    0.60485D-07
+  5    0.99879D+00    0.99879D+00    0.14292D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        200
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         40
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.33898D-04
+    0.62147D-03
+    0.12780D-03
+ Nonnegativity will be enforced for this problem.
+ Steps =       1237 f-s =       2084 J-s =         31
+ Computed and reference solutions and absolute errors follow:
+  1    0.37452D-04    0.37443D-04    0.86547D-08
+  2    0.72887D-03    0.72895D-03    0.80383D-07
+  3    0.96511D-04    0.96463D-04    0.48379D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         98
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10015D+01
+    0.10001D+01
+    0.26527D+00
+    0.98220D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        501 f-s =        733 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.50999D+00    0.50999D+00    0.83864D-10
+  2    0.44958D+00    0.44958D+00    0.75259D-10
+  3    0.99988D+00    0.99988D+00    0.16738D-09
+  4    0.99949D+00    0.99949D+00    0.29521D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        144
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         38
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        428 f-s =        542 J-s =         13
+ Computed and reference solutions and absolute errors follow:
+  1    0.45402D-04    0.45400D-04    0.20958D-08
+  2    0.20698D-08    0.20612D-08    0.86833D-11
+  3   -0.53753D-44    0.28230D-55    0.53753D-44
+  4   -0.26328D-41    0.52358D-51    0.26328D-41
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =   1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        522 f-s =        731 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D+00    0.99999D+00    0.14111D-08
+  2    0.99999D+00    0.99999D+00    0.14110D-08
+  3    0.99999D+00    0.99999D+00    0.13155D-08
+  4    0.99999D+00    0.99999D+00    0.11676D-08
+  5    0.99999D+00    0.99999D+00    0.98403D-09
+  6    0.10000D+01    0.10000D+01    0.77840D-09
+  7    0.10000D+01    0.10000D+01    0.56380D-09
+  8    0.10000D+01    0.10000D+01    0.35276D-09
+  9    0.10000D+01    0.10000D+01    0.15679D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        290
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         39
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.12788D+00
+    0.10000D+01
+ Steps =        537 f-s =        657 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.61667D-10
+  2    0.13685D-01    0.13685D-01    0.61998D-09
+  3    0.19229D+00    0.19229D+00    0.87620D-08
+  4    0.13534D+00    0.13534D+00    0.65232D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        703 f-s =        953 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.36942D-09
+  2   -0.19630D-10    0.12659D-13    0.19642D-10
+  3    0.50491D-23    0.19115D-41    0.50491D-23
+  4   -0.40029D-36    0.22774D-54    0.40029D-36
+  5   -0.12541D-51    0.00000D+00    0.12541D-51
+  6    0.19248D-70    0.00000D+00    0.19248D-70
+  7    0.18002D-88    0.00000D+00    0.18002D-88
+  8   -0.16262-107    0.00000D+00    0.16262-107
+  9    0.75670-126    0.00000D+00    0.75670-126
+ 10    0.28912-143    0.00000D+00    0.28912-143
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        340
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         40
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =       2035 f-s =       2249 J-s =         39
+ Computed and reference solutions and absolute errors follow:
+  1    0.33939D-08    0.10042D-08    0.23898D-08
+  2   -0.12830D-08    0.20955D-08    0.33785D-08
+  3   -0.54793-120    0.00000D+00    0.54793-120
+  4   -0.35918-119   -0.18767D-79    0.18767D-79
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        390 f-s =        495 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1   -0.67751D-25    0.61813D-30    0.67751D-25
+  2    0.67161D-25    0.89637D-30    0.67160D-25
+  3   -0.11972D-21    0.27384D-26    0.11972D-21
+  4    0.20700D-08    0.20612D-08    0.88533D-11
+  5    0.45402D-04    0.45400D-04    0.22293D-08
+  6    0.13534D+00    0.13534D+00    0.32690D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        426 f-s =        529 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1   -0.44272D-19   -0.10768D-27    0.44272D-19
+  2   -0.17172D-19    0.54550D-27    0.17172D-19
+  3   -0.20650D-22    0.27385D-26    0.20652D-22
+  4    0.20679D-08    0.20612D-08    0.67196D-11
+  5    0.45402D-04    0.45400D-04    0.16949D-08
+  6    0.13534D+00    0.13534D+00    0.25365D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        798 f-s =        960 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1   -0.17622D-10    0.11886D-21    0.17622D-10
+  2   -0.21726D-10   -0.23259D-21    0.21726D-10
+  3   -0.34190D-29    0.15179D-34    0.34190D-29
+  4    0.20931D-08    0.20612D-08    0.31954D-10
+  5    0.45404D-04    0.45400D-04    0.42677D-08
+  6    0.13534D+00    0.13534D+00    0.64903D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.76336D+00
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       3790 f-s =       4374 J-s =         69
+ Computed and reference solutions and absolute errors follow:
+  1   -0.28967D-07   -0.23669D-13    0.28967D-07
+  2   -0.62827D-08    0.34489D-13    0.62827D-08
+  3    0.18048D-34    0.18049D-34    0.40448D-39
+  4    0.20612D-08    0.20612D-08    0.43260D-16
+  5    0.45400D-04    0.45400D-04    0.29543D-13
+  6    0.13534D+00    0.13534D+00    0.20706D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.98039D+00
+    0.97087D+00
+    0.10000D+01
+    0.10000D+01
+ Steps =        525 f-s =        643 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1    0.39248D-03    0.39247D-03    0.21201D-08
+  2    0.38850D-03    0.38850D-03    0.10842D-18
+  3    0.40000D-03    0.40000D-03    0.10842D-18
+  4    0.20000D-01    0.20000D-01    0.34694D-17
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        460 f-s =        573 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.63349D-09
+  2    0.40000D-01    0.40000D-01    0.56293D-10
+  3    0.40016D-01    0.40016D-01    0.52025D-10
+  4    0.40032D-01    0.40032D-01    0.51279D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        468 f-s =        570 J-s =         13
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.48844D-09
+  2    0.40000D+00    0.40000D+00    0.43414D-09
+  3    0.41600D+00    0.41600D+00    0.43638D-09
+  4    0.43331D+00    0.43331D+00    0.46644D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.50000D+00
+    0.25000D+00
+    0.50000D-01
+    0.23810D-02
+ Steps =        363 f-s =        461 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.15694D-09
+  2    0.10000D+01    0.10000D+01    0.34876D-09
+  3    0.10000D+01    0.10000D+01    0.63670D-09
+  4    0.10000D+01    0.10000D+01    0.12549D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.50000D+00
+    0.12500D+00
+    0.73529D-02
+    0.26954D-04
+ Steps =        345 f-s =        443 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.54573D-09
+  2    0.10000D+01    0.10000D+01    0.12127D-08
+  3    0.10000D+01    0.10000D+01    0.24072D-08
+  4    0.10008D+01    0.10008D+01    0.48575D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        493 f-s =        738 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1    0.99741D+00    0.99741D+00    0.55273D-08
+  2    0.10004D+01    0.10004D+01    0.53110D-08
+  3    0.10000D+01    0.10000D+01    0.34417D-14
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        534 f-s =        726 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.33962D-08
+  2    0.25166D+00    0.25166D+00    0.32336D-08
+  3    0.99707D+00    0.99707D+00    0.11917D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        593 f-s =        740 J-s =         17
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.35272D-09
+  2    0.56309D-02    0.56309D-02    0.68779D-12
+  3    0.10007D+01    0.10007D+01    0.97980D-09
+  4    0.65374D+00    0.65374D+00    0.36434D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.70423D+00
+    0.00000D+00
+ Steps =        321 f-s =        449 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.98087D-08
+  2    0.98757D+00    0.98757D+00    0.69076D-08
+  3   -0.51035D+00   -0.51035D+00    0.11512D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        425 f-s =        703 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99964D+00   -0.99964D+00    0.38554D-07
+  2    0.99933D+00    0.99933D+00    0.42170D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         52
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         32
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        497 f-s =        717 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.37272D-09
+  2    0.99730D+00    0.99730D+00    0.25184D-08
+  3    0.10005D+01    0.10005D+01    0.79669D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        452 f-s =        563 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.58842D-13
+  2   -0.45772D-12   -0.72884D-12    0.27113D-12
+  3    0.10947D-11    0.15348D-11    0.44010D-12
+  4   -0.78266D-12   -0.10837D-11    0.30105D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.99010D+00
+    0.00000D+00
+ Steps =        587 f-s =        714 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1   -0.57361D+00   -0.57361D+00    0.40208D-06
+  2    0.56344D-01    0.56344D-01    0.97776D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         52
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         32
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.61350D+00
+    0.62500D+00
+    0.00000D+00
+ Steps =        510 f-s =        730 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.26092D-02    0.26092D-02    0.21124D-08
+  2    0.33231D-02    0.33231D-02    0.26041D-08
+  3    0.99911D+00    0.99911D+00    0.25372D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.00000D+00
+   -0.67797D-01
+   -0.64516D-01
+   -0.61350D-01
+ Steps =        769 f-s =        956 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1    0.69444D+00    0.69444D+00    0.93511D-09
+  2   -0.67797D+00   -0.67797D+00    0.91292D-09
+  3   -0.16238D-07   -0.14501D-07    0.17375D-08
+  4    0.15441D-07    0.13789D-07    0.16522D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        263 f-s =        350 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.91936D+00    0.91936D+00    0.43812D-07
+  2    0.94674D+00    0.94674D+00    0.47788D-07
+  3    0.99777D+00    0.99777D+00    0.53592D-08
+  4    0.94183D+00    0.94183D+00    0.50265D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.62893D+00
+    0.00000D+00
+    0.49587D+00
+    0.10000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       1013 f-s =       1603 J-s =         31
+ Computed and reference solutions and absolute errors follow:
+  1    0.10009D+01    0.10009D+01    0.33201D-08
+  2    0.15223D-03    0.15223D-03    0.32141D-10
+  3    0.99887D+00    0.99887D+00    0.32956D-08
+  4    0.32420D-02    0.32420D-02    0.26710D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        108
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         38
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        285 f-s =        359 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.70270D-08
+  2    0.52568D+00    0.52568D+00    0.94341D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         56
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        598 f-s =        721 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.80903D-07    0.80898D-07    0.48145D-11
+  2    0.23607D+00    0.23607D+00    0.84626D-08
+  3    0.20426D-04    0.20426D-04    0.62199D-12
+  4    0.99860D+00    0.99860D+00    0.28972D-07
+  5    0.99879D+00    0.99879D+00    0.68275D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         40
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.33898D-04
+    0.62147D-03
+    0.12780D-03
+ Nonnegativity will be enforced for this problem.
+ Steps =       1679 f-s =       2745 J-s =         40
+ Computed and reference solutions and absolute errors follow:
+  1    0.37442D-04    0.37443D-04    0.11007D-08
+  2    0.72895D-03    0.72895D-03    0.51311D-09
+  3    0.96464D-04    0.96463D-04    0.15844D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         80
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10015D+01
+    0.10001D+01
+    0.26527D+00
+    0.98220D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        639 f-s =        948 J-s =         17
+ Computed and reference solutions and absolute errors follow:
+  1    0.50999D+00    0.50999D+00    0.25650D-09
+  2    0.44958D+00    0.44958D+00    0.23018D-09
+  3    0.99988D+00    0.99988D+00    0.51192D-09
+  4    0.99949D+00    0.99949D+00    0.90262D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        108
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         38
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        428 f-s =        618 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1    0.45402D-04    0.45400D-04    0.20958D-08
+  2    0.20698D-08    0.20612D-08    0.86833D-11
+  3   -0.53753D-44    0.28230D-55    0.53753D-44
+  4   -0.26328D-41    0.52358D-51    0.26328D-41
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =   1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        521 f-s =        895 J-s =         17
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D+00    0.99999D+00    0.22225D-08
+  2    0.99999D+00    0.99999D+00    0.22223D-08
+  3    0.99999D+00    0.99999D+00    0.20719D-08
+  4    0.99999D+00    0.99999D+00    0.18389D-08
+  5    0.99999D+00    0.99999D+00    0.15498D-08
+  6    0.10000D+01    0.10000D+01    0.12260D-08
+  7    0.10000D+01    0.10000D+01    0.88795D-09
+  8    0.10000D+01    0.10000D+01    0.55558D-09
+  9    0.10000D+01    0.10000D+01    0.24694D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        380
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        762
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.12788D+00
+    0.10000D+01
+ Steps =        537 f-s =        753 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.61667D-10
+  2    0.13685D-01    0.13685D-01    0.61999D-09
+  3    0.19229D+00    0.19229D+00    0.87621D-08
+  4    0.13534D+00    0.13534D+00    0.65233D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        703 f-s =       1293 J-s =         26
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.36942D-09
+  2   -0.19620D-10    0.12659D-13    0.19632D-10
+  3    0.50487D-23    0.19115D-41    0.50487D-23
+  4   -0.40024D-36    0.22774D-54    0.40024D-36
+  5   -0.12542D-51    0.00000D+00    0.12542D-51
+  6    0.19241D-70    0.00000D+00    0.19241D-70
+  7    0.17997D-88    0.00000D+00    0.17997D-88
+  8   -0.16257-107    0.00000D+00    0.16257-107
+  9    0.75653-126    0.00000D+00    0.75653-126
+ 10    0.28909-143    0.00000D+00    0.28909-143
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        450
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        913
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =       2034 f-s =       2532 J-s =         55
+ Computed and reference solutions and absolute errors follow:
+  1    0.33799D-08    0.10042D-08    0.23758D-08
+  2   -0.15014D-08    0.20955D-08    0.35969D-08
+  3    0.15381-119    0.00000D+00    0.15381-119
+  4   -0.31988-119   -0.18767D-79    0.18767D-79
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        390 f-s =        609 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1   -0.67751D-25    0.61813D-30    0.67751D-25
+  2    0.67161D-25    0.89637D-30    0.67161D-25
+  3   -0.11972D-21    0.27384D-26    0.11972D-21
+  4    0.20700D-08    0.20612D-08    0.88533D-11
+  5    0.45402D-04    0.45400D-04    0.22293D-08
+  6    0.13534D+00    0.13534D+00    0.32690D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        206
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        393
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        426 f-s =        619 J-s =         13
+ Computed and reference solutions and absolute errors follow:
+  1   -0.44272D-19   -0.10768D-27    0.44272D-19
+  2   -0.17172D-19    0.54550D-27    0.17172D-19
+  3   -0.20650D-22    0.27385D-26    0.20652D-22
+  4    0.20679D-08    0.20612D-08    0.67196D-11
+  5    0.45402D-04    0.45400D-04    0.16949D-08
+  6    0.13534D+00    0.13534D+00    0.25365D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        206
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        393
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        798 f-s =       1140 J-s =         24
+ Computed and reference solutions and absolute errors follow:
+  1   -0.17622D-10    0.11886D-21    0.17622D-10
+  2   -0.21725D-10   -0.23259D-21    0.21725D-10
+  3   -0.34190D-29    0.15179D-34    0.34190D-29
+  4    0.20931D-08    0.20612D-08    0.31954D-10
+  5    0.45404D-04    0.45400D-04    0.42677D-08
+  6    0.13534D+00    0.13534D+00    0.64904D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        206
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        393
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.76336D+00
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       3790 f-s =       5184 J-s =        102
+ Computed and reference solutions and absolute errors follow:
+  1   -0.28919D-07   -0.23669D-13    0.28919D-07
+  2   -0.61159D-08    0.34489D-13    0.61160D-08
+  3    0.18048D-34    0.18049D-34    0.40445D-39
+  4    0.20612D-08    0.20612D-08    0.43257D-16
+  5    0.45400D-04    0.45400D-04    0.29548D-13
+  6    0.13534D+00    0.13534D+00    0.25008D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        206
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        393
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.98039D+00
+    0.97087D+00
+    0.10000D+01
+    0.10000D+01
+ Steps =        525 f-s =        724 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1    0.39248D-03    0.39247D-03    0.21699D-08
+  2    0.38850D-03    0.38850D-03    0.54210D-19
+  3    0.40000D-03    0.40000D-03    0.10842D-18
+  4    0.20000D-01    0.20000D-01    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        460 f-s =        637 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.63783D-09
+  2    0.40000D-01    0.40000D-01    0.56587D-10
+  3    0.40016D-01    0.40016D-01    0.52296D-10
+  4    0.40032D-01    0.40032D-01    0.51527D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        468 f-s =        639 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.47465D-09
+  2    0.40000D+00    0.40000D+00    0.42159D-09
+  3    0.41600D+00    0.41600D+00    0.42381D-09
+  4    0.43331D+00    0.43331D+00    0.45301D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.50000D+00
+    0.25000D+00
+    0.50000D-01
+    0.23810D-02
+ Steps =        363 f-s =        527 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.73151D-09
+  2    0.10000D+01    0.10000D+01    0.16256D-08
+  3    0.10000D+01    0.10000D+01    0.29677D-08
+  4    0.10000D+01    0.10000D+01    0.58490D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.50000D+00
+    0.12500D+00
+    0.73529D-02
+    0.26954D-04
+ Steps =        347 f-s =        491 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.53226D-09
+  2    0.10000D+01    0.10000D+01    0.11828D-08
+  3    0.10000D+01    0.10000D+01    0.23478D-08
+  4    0.10008D+01    0.10008D+01    0.47376D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        513 f-s =        883 J-s =         20
+ Computed and reference solutions and absolute errors follow:
+  1    0.99741D+00    0.99741D+00    0.23834D-07
+  2    0.10004D+01    0.10004D+01    0.16667D-07
+  3    0.10000D+01    0.10000D+01    0.35527D-14
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        569 f-s =        898 J-s =         22
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.21758D-08
+  2    0.25166D+00    0.25166D+00    0.23037D-08
+  3    0.99707D+00    0.99707D+00    0.76346D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        610 f-s =        864 J-s =         21
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.12119D-09
+  2    0.56309D-02    0.56309D-02    0.23631D-12
+  3    0.10007D+01    0.10007D+01    0.33663D-09
+  4    0.65374D+00    0.65374D+00    0.12518D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.70423D+00
+    0.00000D+00
+ Steps =        334 f-s =        491 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.11993D-07
+  2    0.98757D+00    0.98757D+00    0.84459D-08
+  3   -0.51035D+00   -0.51035D+00    0.12067D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        366 f-s =        616 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99964D+00   -0.99964D+00    0.64258D-07
+  2    0.99933D+00    0.99933D+00    0.71500D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         58
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        447 f-s =        665 J-s =         17
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.38108D-09
+  2    0.99730D+00    0.99730D+00    0.25749D-08
+  3    0.10005D+01    0.10005D+01    0.81228D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        457 f-s =        642 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.18450D-11
+  2    0.14997D-11   -0.72884D-12    0.22286D-11
+  3    0.43952D-12    0.15348D-11    0.10953D-11
+  4   -0.10690D-11   -0.10837D-11    0.14699D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.99010D+00
+    0.00000D+00
+ Steps =        578 f-s =        759 J-s =         21
+ Computed and reference solutions and absolute errors follow:
+  1   -0.57361D+00   -0.57361D+00    0.24234D-06
+  2    0.56344D-01    0.56344D-01    0.68783D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         58
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.61350D+00
+    0.62500D+00
+    0.00000D+00
+ Steps =        476 f-s =        747 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1    0.26092D-02    0.26092D-02    0.12009D-08
+  2    0.33231D-02    0.33231D-02    0.15387D-08
+  3    0.99911D+00    0.99911D+00    0.87503D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.00000D+00
+   -0.67797D-01
+   -0.64516D-01
+   -0.61350D-01
+ Steps =        771 f-s =       1087 J-s =         27
+ Computed and reference solutions and absolute errors follow:
+  1    0.69444D+00    0.69444D+00    0.49479D-10
+  2   -0.67797D+00   -0.67797D+00    0.48306D-10
+  3   -0.14593D-07   -0.14501D-07    0.91936D-10
+  4    0.13877D-07    0.13789D-07    0.87424D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        276 f-s =        421 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.91936D+00    0.91936D+00    0.43734D-07
+  2    0.94674D+00    0.94674D+00    0.49039D-07
+  3    0.99777D+00    0.99777D+00    0.71385D-08
+  4    0.94183D+00    0.94183D+00    0.51484D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.62893D+00
+    0.00000D+00
+    0.49587D+00
+    0.10000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =        980 f-s =       1858 J-s =         42
+ Computed and reference solutions and absolute errors follow:
+  1    0.10009D+01    0.10009D+01    0.47336D-08
+  2    0.15223D-03    0.15223D-03    0.85958D-11
+  3    0.99887D+00    0.99887D+00    0.46986D-08
+  4    0.32420D-02    0.32420D-02    0.92616D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        128
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        221
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        285 f-s =        402 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.45802D-08
+  2    0.52568D+00    0.52568D+00    0.61490D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         62
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        589 f-s =        873 J-s =         22
+ Computed and reference solutions and absolute errors follow:
+  1    0.80902D-07    0.80898D-07    0.39162D-11
+  2    0.23607D+00    0.23607D+00    0.73687D-09
+  3    0.20426D-04    0.20426D-04    0.10396D-11
+  4    0.99860D+00    0.99860D+00    0.25205D-08
+  5    0.99879D+00    0.99879D+00    0.60108D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        170
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        303
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.33898D-04
+    0.62147D-03
+    0.12780D-03
+ Nonnegativity will be enforced for this problem.
+ Steps =       1750 f-s =       3002 J-s =         70
+ Computed and reference solutions and absolute errors follow:
+  1    0.37440D-04    0.37443D-04    0.30123D-08
+  2    0.72895D-03    0.72895D-03    0.59517D-08
+  3    0.96468D-04    0.96463D-04    0.53805D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        153
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10015D+01
+    0.10001D+01
+    0.26527D+00
+    0.98220D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        613 f-s =        989 J-s =         22
+ Computed and reference solutions and absolute errors follow:
+  1    0.50999D+00    0.50999D+00    0.49190D-09
+  2    0.44958D+00    0.44958D+00    0.44142D-09
+  3    0.99988D+00    0.99988D+00    0.98173D-09
+  4    0.99949D+00    0.99949D+00    0.17305D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        128
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        221
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        428 f-s =        542 J-s =         13
+ Computed and reference solutions and absolute errors follow:
+  1    0.45402D-04    0.45400D-04    0.20958D-08
+  2    0.20698D-08    0.20612D-08    0.86833D-11
+  3   -0.53753D-44    0.28230D-55    0.53753D-44
+  4   -0.26328D-41    0.52358D-51    0.26328D-41
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =   1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        522 f-s =        731 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D+00    0.99999D+00    0.14111D-08
+  2    0.99999D+00    0.99999D+00    0.14110D-08
+  3    0.99999D+00    0.99999D+00    0.13155D-08
+  4    0.99999D+00    0.99999D+00    0.11676D-08
+  5    0.99999D+00    0.99999D+00    0.98403D-09
+  6    0.10000D+01    0.10000D+01    0.77840D-09
+  7    0.10000D+01    0.10000D+01    0.56380D-09
+  8    0.10000D+01    0.10000D+01    0.35276D-09
+  9    0.10000D+01    0.10000D+01    0.15679D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        506
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         39
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.12788D+00
+    0.10000D+01
+ Steps =        537 f-s =        657 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.61667D-10
+  2    0.13685D-01    0.13685D-01    0.61998D-09
+  3    0.19229D+00    0.19229D+00    0.87620D-08
+  4    0.13534D+00    0.13534D+00    0.65232D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        703 f-s =        953 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.36942D-09
+  2   -0.19630D-10    0.12659D-13    0.19642D-10
+  3    0.50491D-23    0.19115D-41    0.50491D-23
+  4   -0.40029D-36    0.22774D-54    0.40029D-36
+  5   -0.12541D-51    0.00000D+00    0.12541D-51
+  6    0.19248D-70    0.00000D+00    0.19248D-70
+  7    0.18002D-88    0.00000D+00    0.18002D-88
+  8   -0.16262-107    0.00000D+00    0.16262-107
+  9    0.75670-126    0.00000D+00    0.75670-126
+ 10    0.28912-143    0.00000D+00    0.28912-143
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        610
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         40
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =       2035 f-s =       2249 J-s =         39
+ Computed and reference solutions and absolute errors follow:
+  1    0.33939D-08    0.10042D-08    0.23898D-08
+  2   -0.12830D-08    0.20955D-08    0.33785D-08
+  3   -0.54793-120    0.00000D+00    0.54793-120
+  4   -0.35918-119   -0.18767D-79    0.18767D-79
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        390 f-s =        495 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1   -0.67751D-25    0.61813D-30    0.67751D-25
+  2    0.67161D-25    0.89637D-30    0.67160D-25
+  3   -0.11972D-21    0.27384D-26    0.11972D-21
+  4    0.20700D-08    0.20612D-08    0.88533D-11
+  5    0.45402D-04    0.45400D-04    0.22293D-08
+  6    0.13534D+00    0.13534D+00    0.32690D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        254
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        426 f-s =        529 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1   -0.44272D-19   -0.10768D-27    0.44272D-19
+  2   -0.17172D-19    0.54550D-27    0.17172D-19
+  3   -0.20650D-22    0.27385D-26    0.20652D-22
+  4    0.20679D-08    0.20612D-08    0.67196D-11
+  5    0.45402D-04    0.45400D-04    0.16949D-08
+  6    0.13534D+00    0.13534D+00    0.25365D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        254
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        798 f-s =        960 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1   -0.17622D-10    0.11886D-21    0.17622D-10
+  2   -0.21726D-10   -0.23259D-21    0.21726D-10
+  3   -0.34190D-29    0.15179D-34    0.34190D-29
+  4    0.20931D-08    0.20612D-08    0.31954D-10
+  5    0.45404D-04    0.45400D-04    0.42677D-08
+  6    0.13534D+00    0.13534D+00    0.64903D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        254
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.76336D+00
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       3790 f-s =       4374 J-s =         69
+ Computed and reference solutions and absolute errors follow:
+  1   -0.28967D-07   -0.23669D-13    0.28967D-07
+  2   -0.62827D-08    0.34489D-13    0.62827D-08
+  3    0.18048D-34    0.18049D-34    0.40448D-39
+  4    0.20612D-08    0.20612D-08    0.43260D-16
+  5    0.45400D-04    0.45400D-04    0.29543D-13
+  6    0.13534D+00    0.13534D+00    0.20706D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        254
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.98039D+00
+    0.97087D+00
+    0.10000D+01
+    0.10000D+01
+ Steps =        525 f-s =        643 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1    0.39248D-03    0.39247D-03    0.21201D-08
+  2    0.38850D-03    0.38850D-03    0.10842D-18
+  3    0.40000D-03    0.40000D-03    0.10842D-18
+  4    0.20000D-01    0.20000D-01    0.34694D-17
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        460 f-s =        573 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.63349D-09
+  2    0.40000D-01    0.40000D-01    0.56293D-10
+  3    0.40016D-01    0.40016D-01    0.52025D-10
+  4    0.40032D-01    0.40032D-01    0.51279D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        468 f-s =        570 J-s =         13
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.48844D-09
+  2    0.40000D+00    0.40000D+00    0.43414D-09
+  3    0.41600D+00    0.41600D+00    0.43638D-09
+  4    0.43331D+00    0.43331D+00    0.46644D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.50000D+00
+    0.25000D+00
+    0.50000D-01
+    0.23810D-02
+ Steps =        363 f-s =        461 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.15694D-09
+  2    0.10000D+01    0.10000D+01    0.34876D-09
+  3    0.10000D+01    0.10000D+01    0.63670D-09
+  4    0.10000D+01    0.10000D+01    0.12549D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.50000D+00
+    0.12500D+00
+    0.73529D-02
+    0.26954D-04
+ Steps =        345 f-s =        443 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.54573D-09
+  2    0.10000D+01    0.10000D+01    0.12127D-08
+  3    0.10000D+01    0.10000D+01    0.24072D-08
+  4    0.10008D+01    0.10008D+01    0.48575D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        493 f-s =        738 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1    0.99741D+00    0.99741D+00    0.55273D-08
+  2    0.10004D+01    0.10004D+01    0.53110D-08
+  3    0.10000D+01    0.10000D+01    0.34417D-14
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        534 f-s =        726 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.33962D-08
+  2    0.25166D+00    0.25166D+00    0.32336D-08
+  3    0.99707D+00    0.99707D+00    0.11917D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        593 f-s =        740 J-s =         17
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.35272D-09
+  2    0.56309D-02    0.56309D-02    0.68779D-12
+  3    0.10007D+01    0.10007D+01    0.97980D-09
+  4    0.65374D+00    0.65374D+00    0.36434D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.70423D+00
+    0.00000D+00
+ Steps =        321 f-s =        449 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.98087D-08
+  2    0.98757D+00    0.98757D+00    0.69076D-08
+  3   -0.51035D+00   -0.51035D+00    0.11512D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        425 f-s =        703 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99964D+00   -0.99964D+00    0.38554D-07
+  2    0.99933D+00    0.99933D+00    0.42170D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         58
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         32
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        497 f-s =        717 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.37272D-09
+  2    0.99730D+00    0.99730D+00    0.25184D-08
+  3    0.10005D+01    0.10005D+01    0.79669D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        452 f-s =        563 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.58842D-13
+  2   -0.45772D-12   -0.72884D-12    0.27113D-12
+  3    0.10947D-11    0.15348D-11    0.44010D-12
+  4   -0.78266D-12   -0.10837D-11    0.30105D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.99010D+00
+    0.00000D+00
+ Steps =        587 f-s =        714 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1   -0.57361D+00   -0.57361D+00    0.40208D-06
+  2    0.56344D-01    0.56344D-01    0.97776D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         58
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         32
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.61350D+00
+    0.62500D+00
+    0.00000D+00
+ Steps =        510 f-s =        730 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.26092D-02    0.26092D-02    0.21124D-08
+  2    0.33231D-02    0.33231D-02    0.26041D-08
+  3    0.99911D+00    0.99911D+00    0.25372D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.00000D+00
+   -0.67797D-01
+   -0.64516D-01
+   -0.61350D-01
+ Steps =        769 f-s =        956 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1    0.69444D+00    0.69444D+00    0.93511D-09
+  2   -0.67797D+00   -0.67797D+00    0.91292D-09
+  3   -0.16238D-07   -0.14501D-07    0.17375D-08
+  4    0.15441D-07    0.13789D-07    0.16522D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        263 f-s =        350 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.91936D+00    0.91936D+00    0.43812D-07
+  2    0.94674D+00    0.94674D+00    0.47788D-07
+  3    0.99777D+00    0.99777D+00    0.53592D-08
+  4    0.94183D+00    0.94183D+00    0.50265D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.62893D+00
+    0.00000D+00
+    0.49587D+00
+    0.10000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       1013 f-s =       1603 J-s =         31
+ Computed and reference solutions and absolute errors follow:
+  1    0.10009D+01    0.10009D+01    0.33201D-08
+  2    0.15223D-03    0.15223D-03    0.32141D-10
+  3    0.99887D+00    0.99887D+00    0.32956D-08
+  4    0.32420D-02    0.32420D-02    0.26710D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        144
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         38
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        285 f-s =        359 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.70270D-08
+  2    0.52568D+00    0.52568D+00    0.94341D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         62
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        598 f-s =        721 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.80903D-07    0.80898D-07    0.48145D-11
+  2    0.23607D+00    0.23607D+00    0.84626D-08
+  3    0.20426D-04    0.20426D-04    0.62199D-12
+  4    0.99860D+00    0.99860D+00    0.28972D-07
+  5    0.99879D+00    0.99879D+00    0.68275D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        200
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         40
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.33898D-04
+    0.62147D-03
+    0.12780D-03
+ Nonnegativity will be enforced for this problem.
+ Steps =       1679 f-s =       2745 J-s =         40
+ Computed and reference solutions and absolute errors follow:
+  1    0.37442D-04    0.37443D-04    0.11007D-08
+  2    0.72895D-03    0.72895D-03    0.51311D-09
+  3    0.96464D-04    0.96463D-04    0.15844D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         98
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10015D+01
+    0.10001D+01
+    0.26527D+00
+    0.98220D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        639 f-s =        948 J-s =         17
+ Computed and reference solutions and absolute errors follow:
+  1    0.50999D+00    0.50999D+00    0.25650D-09
+  2    0.44958D+00    0.44958D+00    0.23018D-09
+  3    0.99988D+00    0.99988D+00    0.51192D-09
+  4    0.99949D+00    0.99949D+00    0.90262D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        144
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         38
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        591 f-s =        712 J-s =         17
+ Computed and reference solutions and absolute errors follow:
+  1    0.45400D-04    0.45400D-04    0.33624D-09
+  2    0.20624D-08    0.20612D-08    0.12571D-11
+  3    0.92264D-53    0.28230D-55    0.91982D-53
+  4    0.81954D-50    0.52358D-51    0.76719D-50
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =   1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        736 f-s =        990 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D+00    0.99999D+00    0.33713D-09
+  2    0.99999D+00    0.99999D+00    0.33711D-09
+  3    0.99999D+00    0.99999D+00    0.31429D-09
+  4    0.99999D+00    0.99999D+00    0.27895D-09
+  5    0.99999D+00    0.99999D+00    0.23509D-09
+  6    0.10000D+01    0.10000D+01    0.18597D-09
+  7    0.10000D+01    0.10000D+01    0.13470D-09
+  8    0.10000D+01    0.10000D+01    0.84278D-10
+  9    0.10000D+01    0.10000D+01    0.37459D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        290
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         39
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.12788D+00
+    0.10000D+01
+ Steps =        760 f-s =        908 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.14900D-11
+  2    0.13685D-01    0.13685D-01    0.15033D-10
+  3    0.19229D+00    0.19229D+00    0.21171D-09
+  4    0.13534D+00    0.13534D+00    0.15245D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        999 f-s =       1284 J-s =         22
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.54749D-09
+  2    0.10354D-10    0.12659D-13    0.10341D-10
+  3   -0.96718D-30    0.19115D-41    0.96718D-30
+  4    0.36838D-45    0.22774D-54    0.36838D-45
+  5   -0.26040D-66    0.00000D+00    0.26040D-66
+  6   -0.24200D-87    0.00000D+00    0.24200D-87
+  7   -0.55396-112    0.00000D+00    0.55396-112
+  8    0.11562-137    0.00000D+00    0.11562-137
+  9   -0.36663-165    0.00000D+00    0.36663-165
+ 10   -0.13090-187    0.00000D+00    0.13090-187
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        340
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         40
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =       2933 f-s =       3230 J-s =         56
+ Computed and reference solutions and absolute errors follow:
+  1    0.98068D-09    0.10042D-08    0.23487D-10
+  2    0.16677D-08    0.20955D-08    0.42778D-09
+  3    0.22688-208    0.00000D+00    0.22688-208
+  4    0.19330-208   -0.18767D-79    0.18767D-79
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        558 f-s =        697 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1   -0.31673D-32    0.61813D-30    0.62130D-30
+  2   -0.11777D-32    0.89637D-30    0.89754D-30
+  3    0.28935D-26    0.27384D-26    0.15509D-27
+  4    0.20625D-08    0.20612D-08    0.13589D-11
+  5    0.45400D-04    0.45400D-04    0.36754D-09
+  6    0.13534D+00    0.13534D+00    0.57915D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        598 f-s =        735 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1   -0.17676D-26   -0.10768D-27    0.16599D-26
+  2    0.10594D-25    0.54550D-27    0.10049D-25
+  3    0.48294D-27    0.27385D-26    0.22556D-26
+  4    0.20623D-08    0.20612D-08    0.11767D-11
+  5    0.45400D-04    0.45400D-04    0.32141D-09
+  6    0.13534D+00    0.13534D+00    0.51098D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1106 f-s =       1300 J-s =         24
+ Computed and reference solutions and absolute errors follow:
+  1    0.36453D-12    0.11886D-21    0.36453D-12
+  2    0.17240D-11   -0.23259D-21    0.17240D-11
+  3    0.97879D-35    0.15179D-34    0.53906D-35
+  4    0.20606D-08    0.20612D-08    0.55353D-12
+  5    0.45400D-04    0.45400D-04    0.33829D-09
+  6    0.13534D+00    0.13534D+00    0.29355D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.76336D+00
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       4572 f-s =       5276 J-s =         83
+ Computed and reference solutions and absolute errors follow:
+  1   -0.26611D-08   -0.23669D-13    0.26610D-08
+  2    0.29670D-08    0.34489D-13    0.29670D-08
+  3    0.18048D-34    0.18049D-34    0.51038D-39
+  4    0.20612D-08    0.20612D-08    0.54134D-16
+  5    0.45400D-04    0.45400D-04    0.36945D-13
+  6    0.13534D+00    0.13534D+00    0.38886D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.98039D+00
+    0.97087D+00
+    0.10000D+01
+    0.10000D+01
+ Steps =        735 f-s =        888 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1    0.39247D-03    0.39247D-03    0.25669D-09
+  2    0.38850D-03    0.38850D-03    0.59631D-18
+  3    0.40000D-03    0.40000D-03    0.37947D-18
+  4    0.20000D-01    0.20000D-01    0.34694D-17
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        661 f-s =        796 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.46526D-09
+  2    0.40000D-01    0.40000D-01    0.41344D-10
+  3    0.40016D-01    0.40016D-01    0.38203D-10
+  4    0.40032D-01    0.40032D-01    0.37657D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        656 f-s =        783 J-s =         17
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.17842D-09
+  2    0.40000D+00    0.40000D+00    0.15859D-09
+  3    0.41600D+00    0.41600D+00    0.15941D-09
+  4    0.43331D+00    0.43331D+00    0.17040D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.50000D+00
+    0.25000D+00
+    0.50000D-01
+    0.23810D-02
+ Steps =        517 f-s =        628 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.18390D-10
+  2    0.10000D+01    0.10000D+01    0.40866D-10
+  3    0.10000D+01    0.10000D+01    0.74607D-10
+  4    0.10000D+01    0.10000D+01    0.14704D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.50000D+00
+    0.12500D+00
+    0.73529D-02
+    0.26954D-04
+ Steps =        502 f-s =        602 J-s =         13
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.11045D-10
+  2    0.10000D+01    0.10000D+01    0.24545D-10
+  3    0.10000D+01    0.10000D+01    0.48720D-10
+  4    0.10008D+01    0.10008D+01    0.98313D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        609 f-s =        884 J-s =         13
+ Computed and reference solutions and absolute errors follow:
+  1    0.99741D+00    0.99741D+00    0.49973D-08
+  2    0.10004D+01    0.10004D+01    0.42783D-08
+  3    0.10000D+01    0.10000D+01    0.88818D-15
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        723 f-s =       1013 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.78932D-09
+  2    0.25166D+00    0.25166D+00    0.84692D-09
+  3    0.99707D+00    0.99707D+00    0.27697D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        860 f-s =       1031 J-s =         21
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.44877D-11
+  2    0.56309D-02    0.56309D-02    0.87482D-14
+  3    0.10007D+01    0.10007D+01    0.12460D-10
+  4    0.65374D+00    0.65374D+00    0.46343D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.70423D+00
+    0.00000D+00
+ Steps =        427 f-s =        608 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.21289D-09
+  2    0.98757D+00    0.98757D+00    0.14992D-09
+  3   -0.51035D+00   -0.51035D+00    0.21946D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        584 f-s =        931 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99964D+00   -0.99964D+00    0.81062D-08
+  2    0.99933D+00    0.99933D+00    0.96201D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         52
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         32
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        624 f-s =        885 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.95356D-10
+  2    0.99730D+00    0.99730D+00    0.64428D-09
+  3    0.10005D+01    0.10005D+01    0.20329D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        635 f-s =        762 J-s =         17
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.64038D-12
+  2    0.41518D-12   -0.72884D-12    0.11440D-11
+  3    0.18750D-13    0.15348D-11    0.15161D-11
+  4   -0.19988D-13   -0.10837D-11    0.10637D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.99010D+00
+    0.00000D+00
+ Steps =        835 f-s =        997 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1   -0.57361D+00   -0.57361D+00    0.38996D-07
+  2    0.56344D-01    0.56344D-01    0.11220D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         52
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         32
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.61350D+00
+    0.62500D+00
+    0.00000D+00
+ Steps =        638 f-s =        861 J-s =         17
+ Computed and reference solutions and absolute errors follow:
+  1    0.26092D-02    0.26092D-02    0.22850D-09
+  2    0.33231D-02    0.33231D-02    0.28821D-09
+  3    0.99911D+00    0.99911D+00    0.23672D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.00000D+00
+   -0.67797D-01
+   -0.64516D-01
+   -0.61350D-01
+ Steps =       1122 f-s =       1337 J-s =         24
+ Computed and reference solutions and absolute errors follow:
+  1    0.69444D+00    0.69444D+00    0.39557D-10
+  2   -0.67797D+00   -0.67797D+00    0.38619D-10
+  3   -0.14574D-07   -0.14501D-07    0.73500D-10
+  4    0.13859D-07    0.13789D-07    0.69892D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        344 f-s =        449 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1    0.91936D+00    0.91936D+00    0.45480D-07
+  2    0.94674D+00    0.94674D+00    0.51370D-07
+  3    0.99777D+00    0.99777D+00    0.77284D-08
+  4    0.94183D+00    0.94183D+00    0.53885D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.62893D+00
+    0.00000D+00
+    0.49587D+00
+    0.10000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       1496 f-s =       2279 J-s =         36
+ Computed and reference solutions and absolute errors follow:
+  1    0.10009D+01    0.10009D+01    0.44423D-09
+  2    0.15223D-03    0.15223D-03    0.83889D-12
+  3    0.99887D+00    0.99887D+00    0.44095D-09
+  4    0.32420D-02    0.32420D-02    0.69832D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        108
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         38
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        388 f-s =        470 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.15823D-08
+  2    0.52568D+00    0.52568D+00    0.21244D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         56
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        822 f-s =        960 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1    0.80902D-07    0.80898D-07    0.39396D-11
+  2    0.23607D+00    0.23607D+00    0.28844D-10
+  3    0.20426D-04    0.20426D-04    0.99592D-12
+  4    0.99860D+00    0.99860D+00    0.98668D-10
+  5    0.99879D+00    0.99879D+00    0.28208D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         40
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.33898D-04
+    0.62147D-03
+    0.12780D-03
+ Nonnegativity will be enforced for this problem.
+ Steps =       2337 f-s =       3662 J-s =         50
+ Computed and reference solutions and absolute errors follow:
+  1    0.37443D-04    0.37443D-04    0.10977D-09
+  2    0.72895D-03    0.72895D-03    0.10080D-08
+  3    0.96464D-04    0.96463D-04    0.86098D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         80
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10015D+01
+    0.10001D+01
+    0.26527D+00
+    0.98220D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        838 f-s =       1214 J-s =         23
+ Computed and reference solutions and absolute errors follow:
+  1    0.50999D+00    0.50999D+00    0.19531D-10
+  2    0.44958D+00    0.44958D+00    0.17528D-10
+  3    0.99988D+00    0.99988D+00    0.38982D-10
+  4    0.99949D+00    0.99949D+00    0.68912D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        108
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         38
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        591 f-s =        788 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1    0.45400D-04    0.45400D-04    0.33624D-09
+  2    0.20624D-08    0.20612D-08    0.12571D-11
+  3    0.92265D-53    0.28230D-55    0.91982D-53
+  4    0.81954D-50    0.52358D-51    0.76719D-50
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =   1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        735 f-s =       1268 J-s =         25
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D+00    0.99999D+00    0.33385D-09
+  2    0.99999D+00    0.99999D+00    0.33383D-09
+  3    0.99999D+00    0.99999D+00    0.31123D-09
+  4    0.99999D+00    0.99999D+00    0.27623D-09
+  5    0.99999D+00    0.99999D+00    0.23280D-09
+  6    0.10000D+01    0.10000D+01    0.18416D-09
+  7    0.10000D+01    0.10000D+01    0.13338D-09
+  8    0.10000D+01    0.10000D+01    0.83457D-10
+  9    0.10000D+01    0.10000D+01    0.37094D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        380
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        762
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.12788D+00
+    0.10000D+01
+ Steps =        760 f-s =       1024 J-s =         24
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.14902D-11
+  2    0.13685D-01    0.13685D-01    0.15034D-10
+  3    0.19229D+00    0.19229D+00    0.21173D-09
+  4    0.13534D+00    0.13534D+00    0.15246D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        999 f-s =       1684 J-s =         31
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.54749D-09
+  2    0.10354D-10    0.12659D-13    0.10341D-10
+  3   -0.96719D-30    0.19115D-41    0.96719D-30
+  4    0.36837D-45    0.22774D-54    0.36837D-45
+  5   -0.26040D-66    0.00000D+00    0.26040D-66
+  6   -0.24199D-87    0.00000D+00    0.24199D-87
+  7   -0.55395-112    0.00000D+00    0.55395-112
+  8    0.11562-137    0.00000D+00    0.11562-137
+  9   -0.36663-165    0.00000D+00    0.36663-165
+ 10   -0.13090-187    0.00000D+00    0.13090-187
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        450
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        913
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =       2913 f-s =       3602 J-s =         77
+ Computed and reference solutions and absolute errors follow:
+  1    0.96980D-09    0.10042D-08    0.34368D-10
+  2    0.16925D-08    0.20955D-08    0.40296D-09
+  3    0.94382-207    0.00000D+00    0.94382-207
+  4   -0.44305-206   -0.18767D-79    0.18767D-79
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        558 f-s =        823 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1   -0.31672D-32    0.61813D-30    0.62130D-30
+  2   -0.11778D-32    0.89637D-30    0.89754D-30
+  3    0.28935D-26    0.27384D-26    0.15509D-27
+  4    0.20625D-08    0.20612D-08    0.13589D-11
+  5    0.45400D-04    0.45400D-04    0.36754D-09
+  6    0.13534D+00    0.13534D+00    0.57914D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        206
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        393
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        598 f-s =        867 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1   -0.17676D-26   -0.10768D-27    0.16599D-26
+  2    0.10594D-25    0.54550D-27    0.10049D-25
+  3    0.48294D-27    0.27385D-26    0.22556D-26
+  4    0.20623D-08    0.20612D-08    0.11767D-11
+  5    0.45400D-04    0.45400D-04    0.32141D-09
+  6    0.13534D+00    0.13534D+00    0.51098D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        206
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        393
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1106 f-s =       1528 J-s =         31
+ Computed and reference solutions and absolute errors follow:
+  1    0.36456D-12    0.11886D-21    0.36456D-12
+  2    0.17239D-11   -0.23259D-21    0.17239D-11
+  3    0.97879D-35    0.15179D-34    0.53906D-35
+  4    0.20606D-08    0.20612D-08    0.55352D-12
+  5    0.45400D-04    0.45400D-04    0.33829D-09
+  6    0.13534D+00    0.13534D+00    0.29354D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        206
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        393
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.76336D+00
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       4584 f-s =       6258 J-s =        123
+ Computed and reference solutions and absolute errors follow:
+  1   -0.33886D-09   -0.23669D-13    0.33883D-09
+  2   -0.41512D-09    0.34489D-13    0.41516D-09
+  3    0.18048D-34    0.18049D-34    0.48183D-39
+  4    0.20612D-08    0.20612D-08    0.51160D-16
+  5    0.45400D-04    0.45400D-04    0.34904D-13
+  6    0.13534D+00    0.13534D+00    0.23481D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        206
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        393
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.98039D+00
+    0.97087D+00
+    0.10000D+01
+    0.10000D+01
+ Steps =        734 f-s =       1001 J-s =         24
+ Computed and reference solutions and absolute errors follow:
+  1    0.39247D-03    0.39247D-03    0.10058D-09
+  2    0.38850D-03    0.38850D-03    0.00000D+00
+  3    0.40000D-03    0.40000D-03    0.10842D-18
+  4    0.20000D-01    0.20000D-01    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        661 f-s =        900 J-s =         22
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.46582D-09
+  2    0.40000D-01    0.40000D-01    0.41400D-10
+  3    0.40016D-01    0.40016D-01    0.38252D-10
+  4    0.40032D-01    0.40032D-01    0.37704D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        652 f-s =        881 J-s =         20
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.33598D-10
+  2    0.40000D+00    0.40000D+00    0.29866D-10
+  3    0.41600D+00    0.41600D+00    0.30018D-10
+  4    0.43331D+00    0.43331D+00    0.32087D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.50000D+00
+    0.25000D+00
+    0.50000D-01
+    0.23810D-02
+ Steps =        517 f-s =        704 J-s =         17
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.24311D-10
+  2    0.10000D+01    0.10000D+01    0.54024D-10
+  3    0.10000D+01    0.10000D+01    0.98629D-10
+  4    0.10000D+01    0.10000D+01    0.19439D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.50000D+00
+    0.12500D+00
+    0.73529D-02
+    0.26954D-04
+ Steps =        502 f-s =        678 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.12336D-10
+  2    0.10000D+01    0.10000D+01    0.27413D-10
+  3    0.10000D+01    0.10000D+01    0.54412D-10
+  4    0.10008D+01    0.10008D+01    0.10980D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        531 f-s =        856 J-s =         20
+ Computed and reference solutions and absolute errors follow:
+  1    0.99741D+00    0.99741D+00    0.64512D-08
+  2    0.10004D+01    0.10004D+01    0.49462D-08
+  3    0.10000D+01    0.10000D+01    0.16653D-14
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        798 f-s =       1301 J-s =         32
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.20236D-09
+  2    0.25166D+00    0.25166D+00    0.22844D-09
+  3    0.99707D+00    0.99707D+00    0.71006D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        868 f-s =       1206 J-s =         30
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.15279D-10
+  2    0.56309D-02    0.56309D-02    0.29792D-13
+  3    0.10007D+01    0.10007D+01    0.42447D-10
+  4    0.65374D+00    0.65374D+00    0.15785D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.70423D+00
+    0.00000D+00
+ Steps =        425 f-s =        642 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.14259D-08
+  2    0.98757D+00    0.98757D+00    0.10041D-08
+  3   -0.51035D+00   -0.51035D+00    0.15828D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        488 f-s =        815 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99964D+00   -0.99964D+00    0.73821D-08
+  2    0.99933D+00    0.99933D+00    0.87193D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         58
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        600 f-s =        902 J-s =         22
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.10279D-09
+  2    0.99730D+00    0.99730D+00    0.69450D-09
+  3    0.10005D+01    0.10005D+01    0.21904D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        738 f-s =       1217 J-s =         39
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.20204D-08
+  2   -0.47171D-08   -0.72884D-12    0.47164D-08
+  3    0.33187D-08    0.15348D-11    0.33172D-08
+  4   -0.30893D-09   -0.10837D-11    0.30784D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.99010D+00
+    0.00000D+00
+ Steps =        833 f-s =       1059 J-s =         27
+ Computed and reference solutions and absolute errors follow:
+  1   -0.57361D+00   -0.57361D+00    0.42937D-07
+  2    0.56344D-01    0.56344D-01    0.12702D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         58
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.61350D+00
+    0.62500D+00
+    0.00000D+00
+ Steps =        622 f-s =        892 J-s =         21
+ Computed and reference solutions and absolute errors follow:
+  1    0.26092D-02    0.26092D-02    0.28092D-09
+  2    0.33231D-02    0.33231D-02    0.35613D-09
+  3    0.99911D+00    0.99911D+00    0.95209D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.00000D+00
+   -0.67797D-01
+   -0.64516D-01
+   -0.61350D-01
+ Steps =       1125 f-s =       1528 J-s =         36
+ Computed and reference solutions and absolute errors follow:
+  1    0.69444D+00    0.69444D+00    0.25605D-10
+  2   -0.67797D+00   -0.67797D+00    0.24997D-10
+  3   -0.14548D-07   -0.14501D-07    0.47575D-10
+  4    0.13834D-07    0.13789D-07    0.45240D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        361 f-s =        556 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.91936D+00    0.91936D+00    0.45176D-07
+  2    0.94674D+00    0.94674D+00    0.51007D-07
+  3    0.99777D+00    0.99777D+00    0.76560D-08
+  4    0.94183D+00    0.94183D+00    0.53505D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.62893D+00
+    0.00000D+00
+    0.49587D+00
+    0.10000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       1520 f-s =       2561 J-s =         55
+ Computed and reference solutions and absolute errors follow:
+  1    0.10009D+01    0.10009D+01    0.78980D-09
+  2    0.15223D-03    0.15223D-03    0.13785D-11
+  3    0.99887D+00    0.99887D+00    0.78396D-09
+  4    0.32420D-02    0.32420D-02    0.11478D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        128
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        221
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        397 f-s =        505 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.43884D-09
+  2    0.52568D+00    0.52568D+00    0.58908D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         62
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        811 f-s =       1145 J-s =         27
+ Computed and reference solutions and absolute errors follow:
+  1    0.80902D-07    0.80898D-07    0.39400D-11
+  2    0.23607D+00    0.23607D+00    0.33066D-10
+  3    0.20426D-04    0.20426D-04    0.99170D-12
+  4    0.99860D+00    0.99860D+00    0.11303D-09
+  5    0.99879D+00    0.99879D+00    0.21928D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        170
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        303
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.33898D-04
+    0.62147D-03
+    0.12780D-03
+ Nonnegativity will be enforced for this problem.
+ Steps =       2249 f-s =       3975 J-s =         88
+ Computed and reference solutions and absolute errors follow:
+  1    0.37443D-04    0.37443D-04    0.18982D-09
+  2    0.72895D-03    0.72895D-03    0.64865D-09
+  3    0.96463D-04    0.96463D-04    0.48551D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        153
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10015D+01
+    0.10001D+01
+    0.26527D+00
+    0.98220D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        785 f-s =       1263 J-s =         28
+ Computed and reference solutions and absolute errors follow:
+  1    0.50999D+00    0.50999D+00    0.99548D-10
+  2    0.44958D+00    0.44958D+00    0.89333D-10
+  3    0.99988D+00    0.99988D+00    0.19868D-09
+  4    0.99949D+00    0.99949D+00    0.35020D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        128
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        221
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        591 f-s =        712 J-s =         17
+ Computed and reference solutions and absolute errors follow:
+  1    0.45400D-04    0.45400D-04    0.33624D-09
+  2    0.20624D-08    0.20612D-08    0.12571D-11
+  3    0.92264D-53    0.28230D-55    0.91982D-53
+  4    0.81954D-50    0.52358D-51    0.76719D-50
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =   1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        736 f-s =        990 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D+00    0.99999D+00    0.33713D-09
+  2    0.99999D+00    0.99999D+00    0.33711D-09
+  3    0.99999D+00    0.99999D+00    0.31429D-09
+  4    0.99999D+00    0.99999D+00    0.27895D-09
+  5    0.99999D+00    0.99999D+00    0.23509D-09
+  6    0.10000D+01    0.10000D+01    0.18597D-09
+  7    0.10000D+01    0.10000D+01    0.13470D-09
+  8    0.10000D+01    0.10000D+01    0.84278D-10
+  9    0.10000D+01    0.10000D+01    0.37459D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        506
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         39
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.12788D+00
+    0.10000D+01
+ Steps =        760 f-s =        908 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.14900D-11
+  2    0.13685D-01    0.13685D-01    0.15033D-10
+  3    0.19229D+00    0.19229D+00    0.21171D-09
+  4    0.13534D+00    0.13534D+00    0.15245D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        999 f-s =       1284 J-s =         22
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.54749D-09
+  2    0.10354D-10    0.12659D-13    0.10341D-10
+  3   -0.96718D-30    0.19115D-41    0.96718D-30
+  4    0.36838D-45    0.22774D-54    0.36838D-45
+  5   -0.26040D-66    0.00000D+00    0.26040D-66
+  6   -0.24200D-87    0.00000D+00    0.24200D-87
+  7   -0.55396-112    0.00000D+00    0.55396-112
+  8    0.11562-137    0.00000D+00    0.11562-137
+  9   -0.36663-165    0.00000D+00    0.36663-165
+ 10   -0.13090-187    0.00000D+00    0.13090-187
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        610
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         40
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =       2933 f-s =       3230 J-s =         56
+ Computed and reference solutions and absolute errors follow:
+  1    0.98068D-09    0.10042D-08    0.23487D-10
+  2    0.16677D-08    0.20955D-08    0.42778D-09
+  3    0.22688-208    0.00000D+00    0.22688-208
+  4    0.19330-208   -0.18767D-79    0.18767D-79
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        558 f-s =        697 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1   -0.31673D-32    0.61813D-30    0.62130D-30
+  2   -0.11777D-32    0.89637D-30    0.89754D-30
+  3    0.28935D-26    0.27384D-26    0.15509D-27
+  4    0.20625D-08    0.20612D-08    0.13589D-11
+  5    0.45400D-04    0.45400D-04    0.36754D-09
+  6    0.13534D+00    0.13534D+00    0.57915D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        254
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        598 f-s =        735 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1   -0.17676D-26   -0.10768D-27    0.16599D-26
+  2    0.10594D-25    0.54550D-27    0.10049D-25
+  3    0.48294D-27    0.27385D-26    0.22556D-26
+  4    0.20623D-08    0.20612D-08    0.11767D-11
+  5    0.45400D-04    0.45400D-04    0.32141D-09
+  6    0.13534D+00    0.13534D+00    0.51098D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        254
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1106 f-s =       1300 J-s =         24
+ Computed and reference solutions and absolute errors follow:
+  1    0.36453D-12    0.11886D-21    0.36453D-12
+  2    0.17240D-11   -0.23259D-21    0.17240D-11
+  3    0.97879D-35    0.15179D-34    0.53906D-35
+  4    0.20606D-08    0.20612D-08    0.55353D-12
+  5    0.45400D-04    0.45400D-04    0.33829D-09
+  6    0.13534D+00    0.13534D+00    0.29355D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        254
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.76336D+00
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       4572 f-s =       5276 J-s =         83
+ Computed and reference solutions and absolute errors follow:
+  1   -0.26611D-08   -0.23669D-13    0.26610D-08
+  2    0.29670D-08    0.34489D-13    0.29670D-08
+  3    0.18048D-34    0.18049D-34    0.51038D-39
+  4    0.20612D-08    0.20612D-08    0.54134D-16
+  5    0.45400D-04    0.45400D-04    0.36945D-13
+  6    0.13534D+00    0.13534D+00    0.38886D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        254
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.98039D+00
+    0.97087D+00
+    0.10000D+01
+    0.10000D+01
+ Steps =        735 f-s =        888 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1    0.39247D-03    0.39247D-03    0.25669D-09
+  2    0.38850D-03    0.38850D-03    0.59631D-18
+  3    0.40000D-03    0.40000D-03    0.37947D-18
+  4    0.20000D-01    0.20000D-01    0.34694D-17
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        661 f-s =        796 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.46526D-09
+  2    0.40000D-01    0.40000D-01    0.41344D-10
+  3    0.40016D-01    0.40016D-01    0.38203D-10
+  4    0.40032D-01    0.40032D-01    0.37657D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        656 f-s =        783 J-s =         17
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.17842D-09
+  2    0.40000D+00    0.40000D+00    0.15859D-09
+  3    0.41600D+00    0.41600D+00    0.15941D-09
+  4    0.43331D+00    0.43331D+00    0.17040D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.50000D+00
+    0.25000D+00
+    0.50000D-01
+    0.23810D-02
+ Steps =        517 f-s =        628 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.18390D-10
+  2    0.10000D+01    0.10000D+01    0.40866D-10
+  3    0.10000D+01    0.10000D+01    0.74607D-10
+  4    0.10000D+01    0.10000D+01    0.14704D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.50000D+00
+    0.12500D+00
+    0.73529D-02
+    0.26954D-04
+ Steps =        502 f-s =        602 J-s =         13
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.11045D-10
+  2    0.10000D+01    0.10000D+01    0.24545D-10
+  3    0.10000D+01    0.10000D+01    0.48720D-10
+  4    0.10008D+01    0.10008D+01    0.98313D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        609 f-s =        884 J-s =         13
+ Computed and reference solutions and absolute errors follow:
+  1    0.99741D+00    0.99741D+00    0.49973D-08
+  2    0.10004D+01    0.10004D+01    0.42783D-08
+  3    0.10000D+01    0.10000D+01    0.88818D-15
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        723 f-s =       1013 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.78932D-09
+  2    0.25166D+00    0.25166D+00    0.84692D-09
+  3    0.99707D+00    0.99707D+00    0.27697D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        860 f-s =       1031 J-s =         21
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.44877D-11
+  2    0.56309D-02    0.56309D-02    0.87482D-14
+  3    0.10007D+01    0.10007D+01    0.12460D-10
+  4    0.65374D+00    0.65374D+00    0.46343D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.70423D+00
+    0.00000D+00
+ Steps =        427 f-s =        608 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.21289D-09
+  2    0.98757D+00    0.98757D+00    0.14992D-09
+  3   -0.51035D+00   -0.51035D+00    0.21946D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        584 f-s =        931 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99964D+00   -0.99964D+00    0.81062D-08
+  2    0.99933D+00    0.99933D+00    0.96201D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         58
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         32
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        624 f-s =        885 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.95356D-10
+  2    0.99730D+00    0.99730D+00    0.64428D-09
+  3    0.10005D+01    0.10005D+01    0.20329D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        635 f-s =        762 J-s =         17
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.64038D-12
+  2    0.41518D-12   -0.72884D-12    0.11440D-11
+  3    0.18750D-13    0.15348D-11    0.15161D-11
+  4   -0.19988D-13   -0.10837D-11    0.10637D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.99010D+00
+    0.00000D+00
+ Steps =        835 f-s =        997 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1   -0.57361D+00   -0.57361D+00    0.38996D-07
+  2    0.56344D-01    0.56344D-01    0.11220D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         58
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         32
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.61350D+00
+    0.62500D+00
+    0.00000D+00
+ Steps =        638 f-s =        861 J-s =         17
+ Computed and reference solutions and absolute errors follow:
+  1    0.26092D-02    0.26092D-02    0.22850D-09
+  2    0.33231D-02    0.33231D-02    0.28821D-09
+  3    0.99911D+00    0.99911D+00    0.23672D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.00000D+00
+   -0.67797D-01
+   -0.64516D-01
+   -0.61350D-01
+ Steps =       1122 f-s =       1337 J-s =         24
+ Computed and reference solutions and absolute errors follow:
+  1    0.69444D+00    0.69444D+00    0.39557D-10
+  2   -0.67797D+00   -0.67797D+00    0.38619D-10
+  3   -0.14574D-07   -0.14501D-07    0.73500D-10
+  4    0.13859D-07    0.13789D-07    0.69892D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        344 f-s =        449 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1    0.91936D+00    0.91936D+00    0.45480D-07
+  2    0.94674D+00    0.94674D+00    0.51370D-07
+  3    0.99777D+00    0.99777D+00    0.77284D-08
+  4    0.94183D+00    0.94183D+00    0.53885D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.62893D+00
+    0.00000D+00
+    0.49587D+00
+    0.10000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       1496 f-s =       2279 J-s =         36
+ Computed and reference solutions and absolute errors follow:
+  1    0.10009D+01    0.10009D+01    0.44423D-09
+  2    0.15223D-03    0.15223D-03    0.83889D-12
+  3    0.99887D+00    0.99887D+00    0.44095D-09
+  4    0.32420D-02    0.32420D-02    0.69832D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        144
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         38
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        388 f-s =        470 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.15823D-08
+  2    0.52568D+00    0.52568D+00    0.21244D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         62
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        822 f-s =        960 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1    0.80902D-07    0.80898D-07    0.39396D-11
+  2    0.23607D+00    0.23607D+00    0.28844D-10
+  3    0.20426D-04    0.20426D-04    0.99592D-12
+  4    0.99860D+00    0.99860D+00    0.98668D-10
+  5    0.99879D+00    0.99879D+00    0.28208D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        200
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         40
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.33898D-04
+    0.62147D-03
+    0.12780D-03
+ Nonnegativity will be enforced for this problem.
+ Steps =       2337 f-s =       3662 J-s =         50
+ Computed and reference solutions and absolute errors follow:
+  1    0.37443D-04    0.37443D-04    0.10977D-09
+  2    0.72895D-03    0.72895D-03    0.10080D-08
+  3    0.96464D-04    0.96463D-04    0.86098D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         98
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10015D+01
+    0.10001D+01
+    0.26527D+00
+    0.98220D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        838 f-s =       1214 J-s =         23
+ Computed and reference solutions and absolute errors follow:
+  1    0.50999D+00    0.50999D+00    0.19531D-10
+  2    0.44958D+00    0.44958D+00    0.17528D-10
+  3    0.99988D+00    0.99988D+00    0.38982D-10
+  4    0.99949D+00    0.99949D+00    0.68912D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        144
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         38
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        868 f-s =       1012 J-s =         21
+ Computed and reference solutions and absolute errors follow:
+  1    0.45400D-04    0.45400D-04    0.33879D-10
+  2    0.20613D-08    0.20612D-08    0.11426D-12
+  3   -0.18992D-65    0.28230D-55    0.28230D-55
+  4   -0.62485D-64    0.52358D-51    0.52358D-51
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =   1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =       1039 f-s =       1337 J-s =         24
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D+00    0.99999D+00    0.37573D-10
+  2    0.99999D+00    0.99999D+00    0.37571D-10
+  3    0.99999D+00    0.99999D+00    0.35027D-10
+  4    0.99999D+00    0.99999D+00    0.31089D-10
+  5    0.99999D+00    0.99999D+00    0.26201D-10
+  6    0.10000D+01    0.10000D+01    0.20726D-10
+  7    0.10000D+01    0.10000D+01    0.15012D-10
+  8    0.10000D+01    0.10000D+01    0.93927D-11
+  9    0.10000D+01    0.10000D+01    0.41750D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        290
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         39
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.12788D+00
+    0.10000D+01
+ Steps =       1065 f-s =       1228 J-s =         23
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.10682D-11
+  2    0.13685D-01    0.13685D-01    0.10777D-10
+  3    0.19229D+00    0.19229D+00    0.15178D-09
+  4    0.13534D+00    0.13534D+00    0.10931D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1447 f-s =       1825 J-s =         31
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.27668D-09
+  2    0.24335D-11    0.12659D-13    0.24208D-11
+  3    0.12345D-37    0.19115D-41    0.12343D-37
+  4    0.29523D-57    0.22774D-54    0.22745D-54
+  5    0.62684D-84    0.00000D+00    0.62684D-84
+  6   -0.11731-113    0.00000D+00    0.11731-113
+  7    0.11346-145    0.00000D+00    0.11346-145
+  8    0.19356-182    0.00000D+00    0.19356-182
+  9    0.19884-214    0.00000D+00    0.19884-214
+ 10   -0.11014-247    0.00000D+00    0.11014-247
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        340
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         40
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =       4306 f-s =       4710 J-s =         78
+ Computed and reference solutions and absolute errors follow:
+  1    0.98291D-09    0.10042D-08    0.21257D-10
+  2    0.20197D-08    0.20955D-08    0.75796D-10
+  3    0.99714-304    0.00000D+00    0.99714-304
+  4   -0.51588-303   -0.18767D-79    0.18767D-79
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        789 f-s =        950 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1    0.36739D-43    0.61813D-30    0.61813D-30
+  2   -0.90070D-44    0.89637D-30    0.89637D-30
+  3   -0.23309D-31    0.27384D-26    0.27384D-26
+  4    0.20613D-08    0.20612D-08    0.18168D-12
+  5    0.45400D-04    0.45400D-04    0.52756D-10
+  6    0.13534D+00    0.13534D+00    0.89026D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        846 f-s =       1005 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1   -0.24510D-36   -0.10768D-27    0.10768D-27
+  2   -0.23098D-36    0.54550D-27    0.54550D-27
+  3    0.11218D-31    0.27385D-26    0.27385D-26
+  4    0.20613D-08    0.20612D-08    0.17291D-12
+  5    0.45400D-04    0.45400D-04    0.50269D-10
+  6    0.13534D+00    0.13534D+00    0.84673D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1319 f-s =       1544 J-s =         28
+ Computed and reference solutions and absolute errors follow:
+  1   -0.28283D-11    0.11886D-21    0.28283D-11
+  2    0.15162D-10   -0.23259D-21    0.15162D-10
+  3    0.66178D-33    0.15179D-34    0.64660D-33
+  4    0.20612D-08    0.20612D-08    0.80782D-13
+  5    0.45400D-04    0.45400D-04    0.24207D-10
+  6    0.13534D+00    0.13534D+00    0.44176D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.76336D+00
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       5843 f-s =       6685 J-s =        104
+ Computed and reference solutions and absolute errors follow:
+  1    0.61144D-10   -0.23669D-13    0.61168D-10
+  2   -0.33637D-10    0.34489D-13    0.33671D-10
+  3    0.18048D-34    0.18049D-34    0.38115D-39
+  4    0.20612D-08    0.20612D-08    0.40848D-16
+  5    0.45400D-04    0.45400D-04    0.27917D-13
+  6    0.13534D+00    0.13534D+00    0.21094D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.98039D+00
+    0.97087D+00
+    0.10000D+01
+    0.10000D+01
+ Steps =       1070 f-s =       1229 J-s =         25
+ Computed and reference solutions and absolute errors follow:
+  1    0.39247D-03    0.39247D-03    0.61175D-11
+  2    0.38850D-03    0.38850D-03    0.54210D-19
+  3    0.40000D-03    0.40000D-03    0.00000D+00
+  4    0.20000D-01    0.20000D-01    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        936 f-s =       1090 J-s =         22
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.17755D-10
+  2    0.40000D-01    0.40000D-01    0.15782D-11
+  3    0.40016D-01    0.40016D-01    0.14581D-11
+  4    0.40032D-01    0.40032D-01    0.14371D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        923 f-s =       1070 J-s =         22
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.13406D-10
+  2    0.40000D+00    0.40000D+00    0.11917D-10
+  3    0.41600D+00    0.41600D+00    0.11978D-10
+  4    0.43331D+00    0.43331D+00    0.12803D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.50000D+00
+    0.25000D+00
+    0.50000D-01
+    0.23810D-02
+ Steps =        736 f-s =        872 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.14750D-11
+  2    0.10000D+01    0.10000D+01    0.32778D-11
+  3    0.10000D+01    0.10000D+01    0.59837D-11
+  4    0.10000D+01    0.10000D+01    0.11793D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.50000D+00
+    0.12500D+00
+    0.73529D-02
+    0.26954D-04
+ Steps =        717 f-s =        831 J-s =         17
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.23572D-11
+  2    0.10000D+01    0.10000D+01    0.52387D-11
+  3    0.10000D+01    0.10000D+01    0.10399D-10
+  4    0.10008D+01    0.10008D+01    0.20983D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        732 f-s =       1029 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1    0.99741D+00    0.99741D+00    0.87426D-09
+  2    0.10004D+01    0.10004D+01    0.69670D-09
+  3    0.10000D+01    0.10000D+01    0.77716D-15
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        955 f-s =       1286 J-s =         20
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.10964D-09
+  2    0.25166D+00    0.25166D+00    0.11435D-09
+  3    0.99707D+00    0.99707D+00    0.38472D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =       1186 f-s =       1393 J-s =         28
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.11409D-11
+  2    0.56309D-02    0.56309D-02    0.22326D-14
+  3    0.10007D+01    0.10007D+01    0.31697D-11
+  4    0.65374D+00    0.65374D+00    0.11756D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.70423D+00
+    0.00000D+00
+ Steps =        590 f-s =        772 J-s =         17
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.44199D-09
+  2    0.98757D+00    0.98757D+00    0.31127D-09
+  3   -0.51035D+00   -0.51035D+00    0.45865D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        734 f-s =       1088 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99964D+00   -0.99964D+00    0.11104D-08
+  2    0.99933D+00    0.99933D+00    0.12675D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         52
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         32
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        888 f-s =       1201 J-s =         22
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.13321D-10
+  2    0.99730D+00    0.99730D+00    0.90006D-10
+  3    0.10005D+01    0.10005D+01    0.28399D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =       1152 f-s =       2166 J-s =        159
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.29088D-13
+  2    0.18369D-12   -0.72884D-12    0.91254D-12
+  3    0.53709D-12    0.15348D-11    0.99772D-12
+  4    0.46617D-13   -0.10837D-11    0.11303D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.99010D+00
+    0.00000D+00
+ Steps =       1196 f-s =       1396 J-s =         25
+ Computed and reference solutions and absolute errors follow:
+  1   -0.57361D+00   -0.57361D+00    0.74475D-08
+  2    0.56344D-01    0.56344D-01    0.21201D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         52
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         32
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.61350D+00
+    0.62500D+00
+    0.00000D+00
+ Steps =        821 f-s =       1072 J-s =         21
+ Computed and reference solutions and absolute errors follow:
+  1    0.26092D-02    0.26092D-02    0.24912D-10
+  2    0.33231D-02    0.33231D-02    0.31508D-10
+  3    0.99911D+00    0.99911D+00    0.19905D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.00000D+00
+   -0.67797D-01
+   -0.64516D-01
+   -0.61350D-01
+ Steps =       1586 f-s =       1836 J-s =         33
+ Computed and reference solutions and absolute errors follow:
+  1    0.69444D+00    0.69444D+00    0.41381D-11
+  2   -0.67797D+00   -0.67797D+00    0.40404D-11
+  3   -0.14509D-07   -0.14501D-07    0.76892D-11
+  4    0.13796D-07    0.13789D-07    0.73123D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        475 f-s =        603 J-s =         13
+ Computed and reference solutions and absolute errors follow:
+  1    0.91936D+00    0.91936D+00    0.45445D-07
+  2    0.94674D+00    0.94674D+00    0.51409D-07
+  3    0.99777D+00    0.99777D+00    0.78042D-08
+  4    0.94183D+00    0.94183D+00    0.53922D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.62893D+00
+    0.00000D+00
+    0.49587D+00
+    0.10000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       2097 f-s =       3024 J-s =         43
+ Computed and reference solutions and absolute errors follow:
+  1    0.10009D+01    0.10009D+01    0.55779D-10
+  2    0.15223D-03    0.15223D-03    0.10559D-12
+  3    0.99887D+00    0.99887D+00    0.55367D-10
+  4    0.32420D-02    0.32420D-02    0.87901D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        108
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         38
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        560 f-s =        670 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.72901D-10
+  2    0.52568D+00    0.52568D+00    0.97876D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         56
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =       1184 f-s =       1373 J-s =         21
+ Computed and reference solutions and absolute errors follow:
+  1    0.80902D-07    0.80898D-07    0.39397D-11
+  2    0.23607D+00    0.23607D+00    0.38058D-11
+  3    0.20426D-04    0.20426D-04    0.99366D-12
+  4    0.99860D+00    0.99860D+00    0.13018D-10
+  5    0.99879D+00    0.99879D+00    0.17744D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         40
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.33898D-04
+    0.62147D-03
+    0.12780D-03
+ Nonnegativity will be enforced for this problem.
+ Steps =       2972 f-s =       4407 J-s =         58
+ Computed and reference solutions and absolute errors follow:
+  1    0.37443D-04    0.37443D-04    0.16919D-10
+  2    0.72895D-03    0.72895D-03    0.27593D-10
+  3    0.96463D-04    0.96463D-04    0.74297D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         80
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10015D+01
+    0.10001D+01
+    0.26527D+00
+    0.98220D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =       1122 f-s =       1731 J-s =         52
+ Computed and reference solutions and absolute errors follow:
+  1    0.50999D+00    0.50999D+00    0.61287D-10
+  2    0.44958D+00    0.44958D+00    0.54998D-10
+  3    0.99988D+00    0.99988D+00    0.12232D-09
+  4    0.99949D+00    0.99949D+00    0.21578D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        108
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         38
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        868 f-s =       1128 J-s =         25
+ Computed and reference solutions and absolute errors follow:
+  1    0.45400D-04    0.45400D-04    0.33879D-10
+  2    0.20613D-08    0.20612D-08    0.11426D-12
+  3   -0.18973D-65    0.28230D-55    0.28230D-55
+  4   -0.62350D-64    0.52358D-51    0.52358D-51
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =   1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =       1027 f-s =       1655 J-s =         31
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D+00    0.99999D+00    0.52035D-10
+  2    0.99999D+00    0.99999D+00    0.52032D-10
+  3    0.99999D+00    0.99999D+00    0.48510D-10
+  4    0.99999D+00    0.99999D+00    0.43055D-10
+  5    0.99999D+00    0.99999D+00    0.36286D-10
+  6    0.10000D+01    0.10000D+01    0.28703D-10
+  7    0.10000D+01    0.10000D+01    0.20790D-10
+  8    0.10000D+01    0.10000D+01    0.13008D-10
+  9    0.10000D+01    0.10000D+01    0.57818D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        380
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        762
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.12788D+00
+    0.10000D+01
+ Steps =       1065 f-s =       1400 J-s =         33
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.10568D-11
+  2    0.13685D-01    0.13685D-01    0.10662D-10
+  3    0.19229D+00    0.19229D+00    0.15016D-09
+  4    0.13534D+00    0.13534D+00    0.10814D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1447 f-s =       2395 J-s =         44
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.27666D-09
+  2    0.24327D-11    0.12659D-13    0.24201D-11
+  3    0.12340D-37    0.19115D-41    0.12338D-37
+  4    0.29491D-57    0.22774D-54    0.22745D-54
+  5    0.62581D-84    0.00000D+00    0.62581D-84
+  6   -0.11707-113    0.00000D+00    0.11707-113
+  7    0.11343-145    0.00000D+00    0.11343-145
+  8    0.21349-182    0.00000D+00    0.21349-182
+  9    0.19806-214    0.00000D+00    0.19806-214
+ 10   -0.10979-247    0.00000D+00    0.10979-247
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        450
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        913
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =       4319 f-s =       5322 J-s =        114
+ Computed and reference solutions and absolute errors follow:
+  1    0.98287D-09    0.10042D-08    0.21301D-10
+  2    0.20178D-08    0.20955D-08    0.77682D-10
+  3   -0.73084-305    0.00000D+00    0.73084-305
+  4   -0.10316-303   -0.18767D-79    0.18767D-79
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        789 f-s =       1136 J-s =         25
+ Computed and reference solutions and absolute errors follow:
+  1    0.36739D-43    0.61813D-30    0.61813D-30
+  2   -0.90068D-44    0.89637D-30    0.89637D-30
+  3   -0.23309D-31    0.27384D-26    0.27384D-26
+  4    0.20613D-08    0.20612D-08    0.18168D-12
+  5    0.45400D-04    0.45400D-04    0.52756D-10
+  6    0.13534D+00    0.13534D+00    0.89031D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        206
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        393
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        846 f-s =       1203 J-s =         26
+ Computed and reference solutions and absolute errors follow:
+  1   -0.24509D-36   -0.10768D-27    0.10768D-27
+  2   -0.23094D-36    0.54550D-27    0.54550D-27
+  3    0.11218D-31    0.27385D-26    0.27385D-26
+  4    0.20613D-08    0.20612D-08    0.17291D-12
+  5    0.45400D-04    0.45400D-04    0.50269D-10
+  6    0.13534D+00    0.13534D+00    0.84665D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        206
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        393
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1319 f-s =       1832 J-s =         38
+ Computed and reference solutions and absolute errors follow:
+  1   -0.28304D-11    0.11886D-21    0.28304D-11
+  2    0.15161D-10   -0.23259D-21    0.15161D-10
+  3    0.66157D-33    0.15179D-34    0.64639D-33
+  4    0.20612D-08    0.20612D-08    0.80782D-13
+  5    0.45400D-04    0.45400D-04    0.24207D-10
+  6    0.13534D+00    0.13534D+00    0.44174D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        206
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        393
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.76336D+00
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       5858 f-s =       7996 J-s =        160
+ Computed and reference solutions and absolute errors follow:
+  1   -0.36005D-10   -0.23669D-13    0.35982D-10
+  2    0.42606D-10    0.34489D-13    0.42571D-10
+  3    0.18048D-34    0.18049D-34    0.40804D-39
+  4    0.20612D-08    0.20612D-08    0.43598D-16
+  5    0.45400D-04    0.45400D-04    0.29794D-13
+  6    0.13534D+00    0.13534D+00    0.33362D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        206
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        393
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.98039D+00
+    0.97087D+00
+    0.10000D+01
+    0.10000D+01
+ Steps =       1070 f-s =       1386 J-s =         32
+ Computed and reference solutions and absolute errors follow:
+  1    0.39247D-03    0.39247D-03    0.61119D-11
+  2    0.38850D-03    0.38850D-03    0.10842D-18
+  3    0.40000D-03    0.40000D-03    0.00000D+00
+  4    0.20000D-01    0.20000D-01    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        936 f-s =       1235 J-s =         29
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.17735D-10
+  2    0.40000D-01    0.40000D-01    0.15765D-11
+  3    0.40016D-01    0.40016D-01    0.14565D-11
+  4    0.40032D-01    0.40032D-01    0.14356D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        923 f-s =       1208 J-s =         28
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.13312D-10
+  2    0.40000D+00    0.40000D+00    0.11833D-10
+  3    0.41600D+00    0.41600D+00    0.11894D-10
+  4    0.43331D+00    0.43331D+00    0.12713D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.50000D+00
+    0.25000D+00
+    0.50000D-01
+    0.23810D-02
+ Steps =        737 f-s =        989 J-s =         24
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.14566D-11
+  2    0.10000D+01    0.10000D+01    0.32374D-11
+  3    0.10000D+01    0.10000D+01    0.59097D-11
+  4    0.10000D+01    0.10000D+01    0.11647D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.50000D+00
+    0.12500D+00
+    0.73529D-02
+    0.26954D-04
+ Steps =        717 f-s =        948 J-s =         23
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.23602D-11
+  2    0.10000D+01    0.10000D+01    0.52449D-11
+  3    0.10000D+01    0.10000D+01    0.10411D-10
+  4    0.10008D+01    0.10008D+01    0.21008D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        659 f-s =        997 J-s =         24
+ Computed and reference solutions and absolute errors follow:
+  1    0.99741D+00    0.99741D+00    0.70994D-09
+  2    0.10004D+01    0.10004D+01    0.58146D-09
+  3    0.10000D+01    0.10000D+01    0.67724D-14
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        938 f-s =       1408 J-s =         32
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.83356D-12
+  2    0.25166D+00    0.25166D+00    0.90075D-11
+  3    0.99707D+00    0.99707D+00    0.29213D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =       1205 f-s =       1620 J-s =         39
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.62994D-12
+  2    0.56309D-02    0.56309D-02    0.12308D-14
+  3    0.10007D+01    0.10007D+01    0.17435D-11
+  4    0.65374D+00    0.65374D+00    0.64726D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.70423D+00
+    0.00000D+00
+ Steps =        582 f-s =        836 J-s =         20
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.24584D-09
+  2    0.98757D+00    0.98757D+00    0.17314D-09
+  3   -0.51035D+00   -0.51035D+00    0.26183D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        678 f-s =       1053 J-s =         24
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99964D+00   -0.99964D+00    0.13532D-08
+  2    0.99933D+00    0.99933D+00    0.15231D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         58
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        828 f-s =       1210 J-s =         29
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.12811D-10
+  2    0.99730D+00    0.99730D+00    0.86557D-10
+  3    0.10005D+01    0.10005D+01    0.27298D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =       1282 f-s =       4261 J-s =        291
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.74829D-13
+  2   -0.43158D-12   -0.72884D-12    0.29727D-12
+  3   -0.48417D-12    0.15348D-11    0.20190D-11
+  4    0.51647D-12   -0.10837D-11    0.16002D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.99010D+00
+    0.00000D+00
+ Steps =       1182 f-s =       1479 J-s =         36
+ Computed and reference solutions and absolute errors follow:
+  1   -0.57361D+00   -0.57361D+00    0.77815D-08
+  2    0.56344D-01    0.56344D-01    0.21912D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         58
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.61350D+00
+    0.62500D+00
+    0.00000D+00
+ Steps =        763 f-s =       1045 J-s =         26
+ Computed and reference solutions and absolute errors follow:
+  1    0.26092D-02    0.26092D-02    0.15238D-10
+  2    0.33231D-02    0.33231D-02    0.19343D-10
+  3    0.99911D+00    0.99911D+00    0.57774D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.00000D+00
+   -0.67797D-01
+   -0.64516D-01
+   -0.61350D-01
+ Steps =       1585 f-s =       2087 J-s =         48
+ Computed and reference solutions and absolute errors follow:
+  1    0.69444D+00    0.69444D+00    0.33972D-11
+  2   -0.67797D+00   -0.67797D+00    0.33171D-11
+  3   -0.14507D-07   -0.14501D-07    0.63126D-11
+  4    0.13795D-07    0.13789D-07    0.60030D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        495 f-s =        737 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1    0.91936D+00    0.91936D+00    0.45458D-07
+  2    0.94674D+00    0.94674D+00    0.51419D-07
+  3    0.99777D+00    0.99777D+00    0.78016D-08
+  4    0.94183D+00    0.94183D+00    0.53933D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.62893D+00
+    0.00000D+00
+    0.49587D+00
+    0.10000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       2076 f-s =       3525 J-s =         74
+ Computed and reference solutions and absolute errors follow:
+  1    0.10009D+01    0.10009D+01    0.50330D-10
+  2    0.15223D-03    0.15223D-03    0.96006D-13
+  3    0.99887D+00    0.99887D+00    0.49958D-10
+  4    0.32420D-02    0.32420D-02    0.79915D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        128
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        221
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        537 f-s =        683 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.12401D-09
+  2    0.52568D+00    0.52568D+00    0.16649D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         62
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =       1171 f-s =       1614 J-s =         36
+ Computed and reference solutions and absolute errors follow:
+  1    0.80902D-07    0.80898D-07    0.39396D-11
+  2    0.23607D+00    0.23607D+00    0.58559D-11
+  3    0.20426D-04    0.20426D-04    0.99349D-12
+  4    0.99860D+00    0.99860D+00    0.20022D-10
+  5    0.99879D+00    0.99879D+00    0.10825D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        170
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        303
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.33898D-04
+    0.62147D-03
+    0.12780D-03
+ Nonnegativity will be enforced for this problem.
+ Steps =       2723 f-s =       4382 J-s =        101
+ Computed and reference solutions and absolute errors follow:
+  1    0.37443D-04    0.37443D-04    0.13152D-12
+  2    0.72895D-03    0.72895D-03    0.10936D-09
+  3    0.96463D-04    0.96463D-04    0.75740D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        153
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10015D+01
+    0.10001D+01
+    0.26527D+00
+    0.98220D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =       1128 f-s =       2140 J-s =         71
+ Computed and reference solutions and absolute errors follow:
+  1    0.50999D+00    0.50999D+00    0.99475D-11
+  2    0.44958D+00    0.44958D+00    0.89269D-11
+  3    0.99988D+00    0.99988D+00    0.19853D-10
+  4    0.99949D+00    0.99949D+00    0.35016D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        128
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        221
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        868 f-s =       1012 J-s =         21
+ Computed and reference solutions and absolute errors follow:
+  1    0.45400D-04    0.45400D-04    0.33879D-10
+  2    0.20613D-08    0.20612D-08    0.11426D-12
+  3   -0.18992D-65    0.28230D-55    0.28230D-55
+  4   -0.62485D-64    0.52358D-51    0.52358D-51
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =   1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =       1039 f-s =       1337 J-s =         24
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D+00    0.99999D+00    0.37573D-10
+  2    0.99999D+00    0.99999D+00    0.37571D-10
+  3    0.99999D+00    0.99999D+00    0.35027D-10
+  4    0.99999D+00    0.99999D+00    0.31089D-10
+  5    0.99999D+00    0.99999D+00    0.26201D-10
+  6    0.10000D+01    0.10000D+01    0.20726D-10
+  7    0.10000D+01    0.10000D+01    0.15012D-10
+  8    0.10000D+01    0.10000D+01    0.93927D-11
+  9    0.10000D+01    0.10000D+01    0.41750D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        506
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         39
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.12788D+00
+    0.10000D+01
+ Steps =       1065 f-s =       1228 J-s =         23
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.10682D-11
+  2    0.13685D-01    0.13685D-01    0.10777D-10
+  3    0.19229D+00    0.19229D+00    0.15178D-09
+  4    0.13534D+00    0.13534D+00    0.10931D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1447 f-s =       1825 J-s =         31
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.27668D-09
+  2    0.24335D-11    0.12659D-13    0.24208D-11
+  3    0.12345D-37    0.19115D-41    0.12343D-37
+  4    0.29523D-57    0.22774D-54    0.22745D-54
+  5    0.62684D-84    0.00000D+00    0.62684D-84
+  6   -0.11731-113    0.00000D+00    0.11731-113
+  7    0.11346-145    0.00000D+00    0.11346-145
+  8    0.19356-182    0.00000D+00    0.19356-182
+  9    0.19884-214    0.00000D+00    0.19884-214
+ 10   -0.11014-247    0.00000D+00    0.11014-247
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        610
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         40
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =       4306 f-s =       4710 J-s =         78
+ Computed and reference solutions and absolute errors follow:
+  1    0.98291D-09    0.10042D-08    0.21257D-10
+  2    0.20197D-08    0.20955D-08    0.75796D-10
+  3    0.99714-304    0.00000D+00    0.99714-304
+  4   -0.51588-303   -0.18767D-79    0.18767D-79
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        789 f-s =        950 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1    0.36739D-43    0.61813D-30    0.61813D-30
+  2   -0.90070D-44    0.89637D-30    0.89637D-30
+  3   -0.23309D-31    0.27384D-26    0.27384D-26
+  4    0.20613D-08    0.20612D-08    0.18168D-12
+  5    0.45400D-04    0.45400D-04    0.52756D-10
+  6    0.13534D+00    0.13534D+00    0.89026D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        254
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        846 f-s =       1005 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1   -0.24510D-36   -0.10768D-27    0.10768D-27
+  2   -0.23098D-36    0.54550D-27    0.54550D-27
+  3    0.11218D-31    0.27385D-26    0.27385D-26
+  4    0.20613D-08    0.20612D-08    0.17291D-12
+  5    0.45400D-04    0.45400D-04    0.50269D-10
+  6    0.13534D+00    0.13534D+00    0.84673D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        254
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1319 f-s =       1544 J-s =         28
+ Computed and reference solutions and absolute errors follow:
+  1   -0.28283D-11    0.11886D-21    0.28283D-11
+  2    0.15162D-10   -0.23259D-21    0.15162D-10
+  3    0.66178D-33    0.15179D-34    0.64660D-33
+  4    0.20612D-08    0.20612D-08    0.80782D-13
+  5    0.45400D-04    0.45400D-04    0.24207D-10
+  6    0.13534D+00    0.13534D+00    0.44176D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        254
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.76336D+00
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       5843 f-s =       6685 J-s =        104
+ Computed and reference solutions and absolute errors follow:
+  1    0.61144D-10   -0.23669D-13    0.61168D-10
+  2   -0.33637D-10    0.34489D-13    0.33671D-10
+  3    0.18048D-34    0.18049D-34    0.38115D-39
+  4    0.20612D-08    0.20612D-08    0.40848D-16
+  5    0.45400D-04    0.45400D-04    0.27917D-13
+  6    0.13534D+00    0.13534D+00    0.21094D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        254
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.98039D+00
+    0.97087D+00
+    0.10000D+01
+    0.10000D+01
+ Steps =       1070 f-s =       1229 J-s =         25
+ Computed and reference solutions and absolute errors follow:
+  1    0.39247D-03    0.39247D-03    0.61175D-11
+  2    0.38850D-03    0.38850D-03    0.54210D-19
+  3    0.40000D-03    0.40000D-03    0.00000D+00
+  4    0.20000D-01    0.20000D-01    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        936 f-s =       1090 J-s =         22
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.17755D-10
+  2    0.40000D-01    0.40000D-01    0.15782D-11
+  3    0.40016D-01    0.40016D-01    0.14581D-11
+  4    0.40032D-01    0.40032D-01    0.14371D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        923 f-s =       1070 J-s =         22
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.13406D-10
+  2    0.40000D+00    0.40000D+00    0.11917D-10
+  3    0.41600D+00    0.41600D+00    0.11978D-10
+  4    0.43331D+00    0.43331D+00    0.12803D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.50000D+00
+    0.25000D+00
+    0.50000D-01
+    0.23810D-02
+ Steps =        736 f-s =        872 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.14750D-11
+  2    0.10000D+01    0.10000D+01    0.32778D-11
+  3    0.10000D+01    0.10000D+01    0.59837D-11
+  4    0.10000D+01    0.10000D+01    0.11793D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.50000D+00
+    0.12500D+00
+    0.73529D-02
+    0.26954D-04
+ Steps =        717 f-s =        831 J-s =         17
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.23572D-11
+  2    0.10000D+01    0.10000D+01    0.52387D-11
+  3    0.10000D+01    0.10000D+01    0.10399D-10
+  4    0.10008D+01    0.10008D+01    0.20983D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        732 f-s =       1029 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1    0.99741D+00    0.99741D+00    0.87426D-09
+  2    0.10004D+01    0.10004D+01    0.69670D-09
+  3    0.10000D+01    0.10000D+01    0.77716D-15
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        955 f-s =       1286 J-s =         20
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.10964D-09
+  2    0.25166D+00    0.25166D+00    0.11435D-09
+  3    0.99707D+00    0.99707D+00    0.38472D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =       1186 f-s =       1393 J-s =         28
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.11409D-11
+  2    0.56309D-02    0.56309D-02    0.22326D-14
+  3    0.10007D+01    0.10007D+01    0.31697D-11
+  4    0.65374D+00    0.65374D+00    0.11756D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.70423D+00
+    0.00000D+00
+ Steps =        590 f-s =        772 J-s =         17
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.44199D-09
+  2    0.98757D+00    0.98757D+00    0.31127D-09
+  3   -0.51035D+00   -0.51035D+00    0.45865D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        734 f-s =       1088 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99964D+00   -0.99964D+00    0.11104D-08
+  2    0.99933D+00    0.99933D+00    0.12675D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         58
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         32
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        888 f-s =       1201 J-s =         22
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.13321D-10
+  2    0.99730D+00    0.99730D+00    0.90006D-10
+  3    0.10005D+01    0.10005D+01    0.28399D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =       1152 f-s =       2166 J-s =        159
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.29088D-13
+  2    0.18369D-12   -0.72884D-12    0.91254D-12
+  3    0.53709D-12    0.15348D-11    0.99772D-12
+  4    0.46617D-13   -0.10837D-11    0.11303D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.99010D+00
+    0.00000D+00
+ Steps =       1196 f-s =       1396 J-s =         25
+ Computed and reference solutions and absolute errors follow:
+  1   -0.57361D+00   -0.57361D+00    0.74475D-08
+  2    0.56344D-01    0.56344D-01    0.21201D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         58
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         32
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.61350D+00
+    0.62500D+00
+    0.00000D+00
+ Steps =        821 f-s =       1072 J-s =         21
+ Computed and reference solutions and absolute errors follow:
+  1    0.26092D-02    0.26092D-02    0.24912D-10
+  2    0.33231D-02    0.33231D-02    0.31508D-10
+  3    0.99911D+00    0.99911D+00    0.19905D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.00000D+00
+   -0.67797D-01
+   -0.64516D-01
+   -0.61350D-01
+ Steps =       1586 f-s =       1836 J-s =         33
+ Computed and reference solutions and absolute errors follow:
+  1    0.69444D+00    0.69444D+00    0.41381D-11
+  2   -0.67797D+00   -0.67797D+00    0.40404D-11
+  3   -0.14509D-07   -0.14501D-07    0.76892D-11
+  4    0.13796D-07    0.13789D-07    0.73123D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        475 f-s =        603 J-s =         13
+ Computed and reference solutions and absolute errors follow:
+  1    0.91936D+00    0.91936D+00    0.45445D-07
+  2    0.94674D+00    0.94674D+00    0.51409D-07
+  3    0.99777D+00    0.99777D+00    0.78042D-08
+  4    0.94183D+00    0.94183D+00    0.53922D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.62893D+00
+    0.00000D+00
+    0.49587D+00
+    0.10000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       2097 f-s =       3024 J-s =         43
+ Computed and reference solutions and absolute errors follow:
+  1    0.10009D+01    0.10009D+01    0.55779D-10
+  2    0.15223D-03    0.15223D-03    0.10559D-12
+  3    0.99887D+00    0.99887D+00    0.55367D-10
+  4    0.32420D-02    0.32420D-02    0.87901D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        144
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         38
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        560 f-s =        670 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.72901D-10
+  2    0.52568D+00    0.52568D+00    0.97876D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         62
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =       1184 f-s =       1373 J-s =         21
+ Computed and reference solutions and absolute errors follow:
+  1    0.80902D-07    0.80898D-07    0.39397D-11
+  2    0.23607D+00    0.23607D+00    0.38058D-11
+  3    0.20426D-04    0.20426D-04    0.99366D-12
+  4    0.99860D+00    0.99860D+00    0.13018D-10
+  5    0.99879D+00    0.99879D+00    0.17744D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        200
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         40
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.33898D-04
+    0.62147D-03
+    0.12780D-03
+ Nonnegativity will be enforced for this problem.
+ Steps =       2972 f-s =       4407 J-s =         58
+ Computed and reference solutions and absolute errors follow:
+  1    0.37443D-04    0.37443D-04    0.16919D-10
+  2    0.72895D-03    0.72895D-03    0.27593D-10
+  3    0.96463D-04    0.96463D-04    0.74297D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         98
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10015D+01
+    0.10001D+01
+    0.26527D+00
+    0.98220D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =       1122 f-s =       1731 J-s =         52
+ Computed and reference solutions and absolute errors follow:
+  1    0.50999D+00    0.50999D+00    0.61287D-10
+  2    0.44958D+00    0.44958D+00    0.54998D-10
+  3    0.99988D+00    0.99988D+00    0.12232D-09
+  4    0.99949D+00    0.99949D+00    0.21578D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        144
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         38
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1239 f-s =       1417 J-s =         28
+ Computed and reference solutions and absolute errors follow:
+  1    0.45400D-04    0.45400D-04    0.68578D-11
+  2    0.20612D-08    0.20612D-08    0.22718D-13
+  3    0.46255D-83    0.28230D-55    0.28230D-55
+  4   -0.54052D-81    0.52358D-51    0.52358D-51
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =   1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =       1522 f-s =       1906 J-s =         33
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D+00    0.99999D+00    0.13130D-10
+  2    0.99999D+00    0.99999D+00    0.13129D-10
+  3    0.99999D+00    0.99999D+00    0.12241D-10
+  4    0.99999D+00    0.99999D+00    0.10864D-10
+  5    0.99999D+00    0.99999D+00    0.91562D-11
+  6    0.10000D+01    0.10000D+01    0.72429D-11
+  7    0.10000D+01    0.10000D+01    0.52459D-11
+  8    0.10000D+01    0.10000D+01    0.32825D-11
+  9    0.10000D+01    0.10000D+01    0.14588D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        290
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         39
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.12788D+00
+    0.10000D+01
+ Steps =       1599 f-s =       1817 J-s =         33
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.74685D-13
+  2    0.13685D-01    0.13685D-01    0.75383D-12
+  3    0.19229D+00    0.19229D+00    0.10612D-10
+  4    0.13534D+00    0.13534D+00    0.76071D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       2088 f-s =       2581 J-s =         42
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.20549D-10
+  2    0.17334D-13    0.12659D-13    0.46754D-14
+  3    0.13241D-46    0.19115D-41    0.19115D-41
+  4   -0.20177D-75    0.22774D-54    0.22774D-54
+  5    0.88157-109    0.00000D+00    0.88157-109
+  6   -0.91772-148    0.00000D+00    0.91772-148
+  7   -0.28131-190    0.00000D+00    0.28131-190
+  8    0.74089-237    0.00000D+00    0.74089-237
+  9   -0.38758-283    0.00000D+00    0.38758-283
+ 10    0.00000D+00    0.00000D+00    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        340
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         40
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =       6205 f-s =       6767 J-s =        111
+ Computed and reference solutions and absolute errors follow:
+  1    0.99918D-09    0.10042D-08    0.49889D-11
+  2    0.20869D-08    0.20955D-08    0.86181D-11
+  3    0.00000D+00    0.00000D+00    0.00000D+00
+  4    0.00000D+00   -0.18767D-79    0.18767D-79
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1126 f-s =       1328 J-s =         24
+ Computed and reference solutions and absolute errors follow:
+  1   -0.32339D-55    0.61813D-30    0.61813D-30
+  2    0.69701D-56    0.89637D-30    0.89637D-30
+  3    0.19970D-34    0.27384D-26    0.27384D-26
+  4    0.20612D-08    0.20612D-08    0.27424D-13
+  5    0.45400D-04    0.45400D-04    0.82189D-11
+  6    0.13534D+00    0.13534D+00    0.15064D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1254 f-s =       1463 J-s =         27
+ Computed and reference solutions and absolute errors follow:
+  1   -0.10535D-48   -0.10768D-27    0.10768D-27
+  2    0.73959D-50    0.54550D-27    0.54550D-27
+  3    0.21256D-34    0.27385D-26    0.27385D-26
+  4    0.20612D-08    0.20612D-08    0.26897D-13
+  5    0.45400D-04    0.45400D-04    0.80714D-11
+  6    0.13534D+00    0.13534D+00    0.14458D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       2001 f-s =       2293 J-s =         39
+ Computed and reference solutions and absolute errors follow:
+  1    0.12055D-20    0.11886D-21    0.10866D-20
+  2   -0.21641D-21   -0.23259D-21    0.16181D-22
+  3    0.20709D-34    0.15179D-34    0.55301D-35
+  4    0.20612D-08    0.20612D-08    0.22583D-13
+  5    0.45400D-04    0.45400D-04    0.66488D-11
+  6    0.13534D+00    0.13534D+00    0.14007D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.76336D+00
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       7516 f-s =       8566 J-s =        132
+ Computed and reference solutions and absolute errors follow:
+  1    0.76836D-11   -0.23669D-13    0.77073D-11
+  2    0.90379D-11    0.34489D-13    0.90034D-11
+  3    0.18048D-34    0.18049D-34    0.37362D-39
+  4    0.20612D-08    0.20612D-08    0.40078D-16
+  5    0.45400D-04    0.45400D-04    0.27387D-13
+  6    0.13534D+00    0.13534D+00    0.16070D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.98039D+00
+    0.97087D+00
+    0.10000D+01
+    0.10000D+01
+ Steps =       1545 f-s =       1746 J-s =         34
+ Computed and reference solutions and absolute errors follow:
+  1    0.39247D-03    0.39247D-03    0.93085D-12
+  2    0.38850D-03    0.38850D-03    0.54210D-19
+  3    0.40000D-03    0.40000D-03    0.10842D-18
+  4    0.20000D-01    0.20000D-01    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1384 f-s =       1577 J-s =         31
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.35285D-11
+  2    0.40000D-01    0.40000D-01    0.31367D-12
+  3    0.40016D-01    0.40016D-01    0.28982D-12
+  4    0.40032D-01    0.40032D-01    0.28563D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1380 f-s =       1568 J-s =         30
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.11453D-11
+  2    0.40000D+00    0.40000D+00    0.10183D-11
+  3    0.41600D+00    0.41600D+00    0.10234D-11
+  4    0.43331D+00    0.43331D+00    0.10940D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.50000D+00
+    0.25000D+00
+    0.50000D-01
+    0.23810D-02
+ Steps =       1077 f-s =       1229 J-s =         25
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.21816D-12
+  2    0.10000D+01    0.10000D+01    0.48517D-12
+  3    0.10000D+01    0.10000D+01    0.88574D-12
+  4    0.10000D+01    0.10000D+01    0.17458D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.50000D+00
+    0.12500D+00
+    0.73529D-02
+    0.26954D-04
+ Steps =       1016 f-s =       1165 J-s =         24
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.38414D-12
+  2    0.10000D+01    0.10000D+01    0.85376D-12
+  3    0.10000D+01    0.10000D+01    0.16950D-11
+  4    0.10008D+01    0.10008D+01    0.34199D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        899 f-s =       1201 J-s =         21
+ Computed and reference solutions and absolute errors follow:
+  1    0.99741D+00    0.99741D+00    0.16629D-09
+  2    0.10004D+01    0.10004D+01    0.13723D-09
+  3    0.10000D+01    0.10000D+01    0.10769D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =       1263 f-s =       1607 J-s =         25
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.14356D-10
+  2    0.25166D+00    0.25166D+00    0.15429D-10
+  3    0.99707D+00    0.99707D+00    0.50374D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =       1730 f-s =       1984 J-s =         38
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.59996D-12
+  2    0.56309D-02    0.56309D-02    0.11657D-14
+  3    0.10007D+01    0.10007D+01    0.16707D-11
+  4    0.65374D+00    0.65374D+00    0.62239D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.70423D+00
+    0.00000D+00
+ Steps =        804 f-s =       1022 J-s =         21
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.59515D-10
+  2    0.98757D+00    0.98757D+00    0.41917D-10
+  3   -0.51035D+00   -0.51035D+00    0.62474D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        982 f-s =       1415 J-s =         23
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99964D+00   -0.99964D+00    0.10775D-09
+  2    0.99933D+00    0.99933D+00    0.12467D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         52
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         32
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =       1142 f-s =       1445 J-s =         28
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.15526D-11
+  2    0.99730D+00    0.99730D+00    0.10510D-10
+  3    0.10005D+01    0.10005D+01    0.33222D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =       1571 f-s =       2955 J-s =        224
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.18097D-13
+  2    0.19761D-15   -0.72884D-12    0.72904D-12
+  3   -0.13069D-13    0.15348D-11    0.15479D-11
+  4    0.77866D-13   -0.10837D-11    0.11616D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.99010D+00
+    0.00000D+00
+ Steps =       1748 f-s =       1980 J-s =         33
+ Computed and reference solutions and absolute errors follow:
+  1   -0.57361D+00   -0.57361D+00    0.11759D-08
+  2    0.56344D-01    0.56344D-01    0.33888D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         52
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         32
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.61350D+00
+    0.62500D+00
+    0.00000D+00
+ Steps =       1064 f-s =       1241 J-s =         24
+ Computed and reference solutions and absolute errors follow:
+  1    0.26092D-02    0.26092D-02    0.65811D-11
+  2    0.33231D-02    0.33231D-02    0.83605D-11
+  3    0.99911D+00    0.99911D+00    0.18109D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.00000D+00
+   -0.67797D-01
+   -0.64516D-01
+   -0.61350D-01
+ Steps =       2282 f-s =       2599 J-s =         44
+ Computed and reference solutions and absolute errors follow:
+  1    0.69444D+00    0.69444D+00    0.47351D-12
+  2   -0.67797D+00   -0.67797D+00    0.46285D-12
+  3   -0.14502D-07   -0.14501D-07    0.87967D-12
+  4    0.13790D-07    0.13789D-07    0.83734D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        684 f-s =        834 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1    0.91936D+00    0.91936D+00    0.45448D-07
+  2    0.94674D+00    0.94674D+00    0.51423D-07
+  3    0.99777D+00    0.99777D+00    0.78154D-08
+  4    0.94183D+00    0.94183D+00    0.53935D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.62893D+00
+    0.00000D+00
+    0.49587D+00
+    0.10000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       2913 f-s =       4059 J-s =         56
+ Computed and reference solutions and absolute errors follow:
+  1    0.10009D+01    0.10009D+01    0.69398D-11
+  2    0.15223D-03    0.15223D-03    0.13082D-13
+  3    0.99887D+00    0.99887D+00    0.68887D-11
+  4    0.32420D-02    0.32420D-02    0.10889D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        108
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         38
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        790 f-s =        905 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.11221D-10
+  2    0.52568D+00    0.52568D+00    0.15065D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         56
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =       1676 f-s =       1900 J-s =         29
+ Computed and reference solutions and absolute errors follow:
+  1    0.80902D-07    0.80898D-07    0.39396D-11
+  2    0.23607D+00    0.23607D+00    0.46063D-12
+  3    0.20426D-04    0.20426D-04    0.99394D-12
+  4    0.99860D+00    0.99860D+00    0.15975D-11
+  5    0.99879D+00    0.99879D+00    0.52112D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         40
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.33898D-04
+    0.62147D-03
+    0.12780D-03
+ Nonnegativity will be enforced for this problem.
+ Steps =       3815 f-s =       5518 J-s =         74
+ Computed and reference solutions and absolute errors follow:
+  1    0.37443D-04    0.37443D-04    0.25800D-11
+  2    0.72895D-03    0.72895D-03    0.18871D-10
+  3    0.96463D-04    0.96463D-04    0.15001D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         80
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10015D+01
+    0.10001D+01
+    0.26527D+00
+    0.98220D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =       1527 f-s =       2230 J-s =         66
+ Computed and reference solutions and absolute errors follow:
+  1    0.50999D+00    0.50999D+00    0.15288D-11
+  2    0.44958D+00    0.44958D+00    0.13717D-11
+  3    0.99988D+00    0.99988D+00    0.30504D-11
+  4    0.99949D+00    0.99949D+00    0.52847D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        108
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         38
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1239 f-s =       1593 J-s =         36
+ Computed and reference solutions and absolute errors follow:
+  1    0.45400D-04    0.45400D-04    0.68578D-11
+  2    0.20612D-08    0.20612D-08    0.22718D-13
+  3    0.46242D-83    0.28230D-55    0.28230D-55
+  4   -0.54030D-81    0.52358D-51    0.52358D-51
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =   1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =       1522 f-s =       2383 J-s =         43
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D+00    0.99999D+00    0.13253D-10
+  2    0.99999D+00    0.99999D+00    0.13253D-10
+  3    0.99999D+00    0.99999D+00    0.12356D-10
+  4    0.99999D+00    0.99999D+00    0.10966D-10
+  5    0.99999D+00    0.99999D+00    0.92423D-11
+  6    0.10000D+01    0.10000D+01    0.73107D-11
+  7    0.10000D+01    0.10000D+01    0.52953D-11
+  8    0.10000D+01    0.10000D+01    0.33132D-11
+  9    0.10000D+01    0.10000D+01    0.14726D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        380
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        762
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.12788D+00
+    0.10000D+01
+ Steps =       1594 f-s =       2049 J-s =         46
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.77132D-13
+  2    0.13685D-01    0.13685D-01    0.77853D-12
+  3    0.19229D+00    0.19229D+00    0.10959D-10
+  4    0.13534D+00    0.13534D+00    0.78567D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       2088 f-s =       3321 J-s =         58
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.20558D-10
+  2    0.17335D-13    0.12659D-13    0.46762D-14
+  3    0.13322D-46    0.19115D-41    0.19115D-41
+  4   -0.20278D-75    0.22774D-54    0.22774D-54
+  5    0.89617-109    0.00000D+00    0.89617-109
+  6   -0.93169-148    0.00000D+00    0.93169-148
+  7   -0.28591-190    0.00000D+00    0.28591-190
+  8    0.75476-237    0.00000D+00    0.75476-237
+  9   -0.39278-283    0.00000D+00    0.39278-283
+ 10    0.00000D+00    0.00000D+00    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        450
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        913
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =       6206 f-s =       7597 J-s =        159
+ Computed and reference solutions and absolute errors follow:
+  1    0.99914D-09    0.10042D-08    0.50289D-11
+  2    0.20868D-08    0.20955D-08    0.87121D-11
+  3    0.00000D+00    0.00000D+00    0.00000D+00
+  4    0.00000D+00   -0.18767D-79    0.18767D-79
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1126 f-s =       1556 J-s =         31
+ Computed and reference solutions and absolute errors follow:
+  1   -0.32350D-55    0.61813D-30    0.61813D-30
+  2    0.72321D-56    0.89637D-30    0.89637D-30
+  3    0.19968D-34    0.27384D-26    0.27384D-26
+  4    0.20612D-08    0.20612D-08    0.27425D-13
+  5    0.45400D-04    0.45400D-04    0.82192D-11
+  6    0.13534D+00    0.13534D+00    0.15079D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        206
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        393
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1254 f-s =       1733 J-s =         36
+ Computed and reference solutions and absolute errors follow:
+  1   -0.10535D-48   -0.10768D-27    0.10768D-27
+  2    0.73972D-50    0.54550D-27    0.54550D-27
+  3    0.21256D-34    0.27385D-26    0.27385D-26
+  4    0.20612D-08    0.20612D-08    0.26897D-13
+  5    0.45400D-04    0.45400D-04    0.80714D-11
+  6    0.13534D+00    0.13534D+00    0.14476D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        206
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        393
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       2001 f-s =       2707 J-s =         54
+ Computed and reference solutions and absolute errors follow:
+  1    0.12046D-20    0.11886D-21    0.10857D-20
+  2   -0.21575D-21   -0.23259D-21    0.16845D-22
+  3    0.20708D-34    0.15179D-34    0.55297D-35
+  4    0.20612D-08    0.20612D-08    0.22582D-13
+  5    0.45400D-04    0.45400D-04    0.66484D-11
+  6    0.13534D+00    0.13534D+00    0.14004D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        206
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        393
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.76336D+00
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       7542 f-s =      10206 J-s =        199
+ Computed and reference solutions and absolute errors follow:
+  1   -0.29241D-11   -0.23669D-13    0.29004D-11
+  2   -0.13519D-11    0.34489D-13    0.13864D-11
+  3    0.18048D-34    0.18049D-34    0.38737D-39
+  4    0.20612D-08    0.20612D-08    0.41425D-16
+  5    0.45400D-04    0.45400D-04    0.28309D-13
+  6    0.13534D+00    0.13534D+00    0.27200D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        206
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        393
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.98039D+00
+    0.97087D+00
+    0.10000D+01
+    0.10000D+01
+ Steps =       1545 f-s =       1987 J-s =         47
+ Computed and reference solutions and absolute errors follow:
+  1    0.39247D-03    0.39247D-03    0.99169D-12
+  2    0.38850D-03    0.38850D-03    0.54210D-19
+  3    0.40000D-03    0.40000D-03    0.10842D-18
+  4    0.20000D-01    0.20000D-01    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1384 f-s =       1759 J-s =         38
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.35303D-11
+  2    0.40000D-01    0.40000D-01    0.31382D-12
+  3    0.40016D-01    0.40016D-01    0.28996D-12
+  4    0.40032D-01    0.40032D-01    0.28579D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1380 f-s =       1761 J-s =         39
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.11335D-11
+  2    0.40000D+00    0.40000D+00    0.10078D-11
+  3    0.41600D+00    0.41600D+00    0.10129D-11
+  4    0.43331D+00    0.43331D+00    0.10827D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.50000D+00
+    0.25000D+00
+    0.50000D-01
+    0.23810D-02
+ Steps =       1077 f-s =       1386 J-s =         32
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.20806D-12
+  2    0.10000D+01    0.10000D+01    0.46307D-12
+  3    0.10000D+01    0.10000D+01    0.84499D-12
+  4    0.10000D+01    0.10000D+01    0.16659D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.50000D+00
+    0.12500D+00
+    0.73529D-02
+    0.26954D-04
+ Steps =       1016 f-s =       1310 J-s =         30
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.38780D-12
+  2    0.10000D+01    0.10000D+01    0.86198D-12
+  3    0.10000D+01    0.10000D+01    0.17111D-11
+  4    0.10008D+01    0.10008D+01    0.34526D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        840 f-s =       1197 J-s =         29
+ Computed and reference solutions and absolute errors follow:
+  1    0.99741D+00    0.99741D+00    0.17895D-09
+  2    0.10004D+01    0.10004D+01    0.14742D-09
+  3    0.10000D+01    0.10000D+01    0.82157D-14
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =       1220 f-s =       1737 J-s =         42
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.41698D-11
+  2    0.25166D+00    0.25166D+00    0.46828D-11
+  3    0.99707D+00    0.99707D+00    0.14628D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =       1733 f-s =       2263 J-s =         54
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.16687D-12
+  2    0.56309D-02    0.56309D-02    0.32439D-15
+  3    0.10007D+01    0.10007D+01    0.46252D-12
+  4    0.65374D+00    0.65374D+00    0.17231D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.70423D+00
+    0.00000D+00
+ Steps =        765 f-s =       1056 J-s =         24
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.13749D-10
+  2    0.98757D+00    0.98757D+00    0.96855D-11
+  3   -0.51035D+00   -0.51035D+00    0.14220D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        962 f-s =       1424 J-s =         32
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99964D+00   -0.99964D+00    0.10145D-09
+  2    0.99933D+00    0.99933D+00    0.11902D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         58
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =       1130 f-s =       1584 J-s =         39
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.12150D-11
+  2    0.99730D+00    0.99730D+00    0.82102D-11
+  3    0.10005D+01    0.10005D+01    0.25897D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =       1464 f-s =       2848 J-s =        137
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.99920D-14
+  2    0.64947D-14   -0.72884D-12    0.73534D-12
+  3   -0.33558D-13    0.15348D-11    0.15684D-11
+  4   -0.40810D-13   -0.10837D-11    0.10429D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.99010D+00
+    0.00000D+00
+ Steps =       1758 f-s =       2138 J-s =         53
+ Computed and reference solutions and absolute errors follow:
+  1   -0.57361D+00   -0.57361D+00    0.12933D-08
+  2    0.56344D-01    0.56344D-01    0.36666D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         58
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.61350D+00
+    0.62500D+00
+    0.00000D+00
+ Steps =       1071 f-s =       1371 J-s =         32
+ Computed and reference solutions and absolute errors follow:
+  1    0.26092D-02    0.26092D-02    0.43286D-11
+  2    0.33231D-02    0.33231D-02    0.55044D-11
+  3    0.99911D+00    0.99911D+00    0.72027D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.00000D+00
+   -0.67797D-01
+   -0.64516D-01
+   -0.61350D-01
+ Steps =       2282 f-s =       2960 J-s =         67
+ Computed and reference solutions and absolute errors follow:
+  1    0.69444D+00    0.69444D+00    0.41134D-12
+  2   -0.67797D+00   -0.67797D+00    0.40157D-12
+  3   -0.14502D-07   -0.14501D-07    0.76457D-12
+  4    0.13790D-07    0.13789D-07    0.72659D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        675 f-s =        940 J-s =         21
+ Computed and reference solutions and absolute errors follow:
+  1    0.91936D+00    0.91936D+00    0.45448D-07
+  2    0.94674D+00    0.94674D+00    0.51423D-07
+  3    0.99777D+00    0.99777D+00    0.78150D-08
+  4    0.94183D+00    0.94183D+00    0.53936D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.62893D+00
+    0.00000D+00
+    0.49587D+00
+    0.10000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       2719 f-s =       4306 J-s =         89
+ Computed and reference solutions and absolute errors follow:
+  1    0.10009D+01    0.10009D+01    0.83380D-11
+  2    0.15223D-03    0.15223D-03    0.15712D-13
+  3    0.99887D+00    0.99887D+00    0.82765D-11
+  4    0.32420D-02    0.32420D-02    0.13079D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        128
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        221
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        780 f-s =        961 J-s =         25
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.15206D-10
+  2    0.52568D+00    0.52568D+00    0.20416D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         62
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =       1661 f-s =       2216 J-s =         49
+ Computed and reference solutions and absolute errors follow:
+  1    0.80902D-07    0.80898D-07    0.39389D-11
+  2    0.23607D+00    0.23607D+00    0.35250D-14
+  3    0.20426D-04    0.20426D-04    0.99373D-12
+  4    0.99860D+00    0.99860D+00    0.34417D-14
+  5    0.99879D+00    0.99879D+00    0.48481D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        170
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        303
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.33898D-04
+    0.62147D-03
+    0.12780D-03
+ Nonnegativity will be enforced for this problem.
+ Steps =       3656 f-s =       5767 J-s =        125
+ Computed and reference solutions and absolute errors follow:
+  1    0.37443D-04    0.37443D-04    0.17266D-11
+  2    0.72895D-03    0.72895D-03    0.58819D-11
+  3    0.96463D-04    0.96463D-04    0.15722D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        153
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10015D+01
+    0.10001D+01
+    0.26527D+00
+    0.98220D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =       1558 f-s =       3010 J-s =        114
+ Computed and reference solutions and absolute errors follow:
+  1    0.50999D+00    0.50999D+00    0.27719D-10
+  2    0.44958D+00    0.44958D+00    0.24875D-10
+  3    0.99988D+00    0.99988D+00    0.55322D-10
+  4    0.99949D+00    0.99949D+00    0.97655D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        128
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        221
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1239 f-s =       1417 J-s =         28
+ Computed and reference solutions and absolute errors follow:
+  1    0.45400D-04    0.45400D-04    0.68578D-11
+  2    0.20612D-08    0.20612D-08    0.22718D-13
+  3    0.46255D-83    0.28230D-55    0.28230D-55
+  4   -0.54052D-81    0.52358D-51    0.52358D-51
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =   1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =       1522 f-s =       1906 J-s =         33
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D+00    0.99999D+00    0.13130D-10
+  2    0.99999D+00    0.99999D+00    0.13129D-10
+  3    0.99999D+00    0.99999D+00    0.12241D-10
+  4    0.99999D+00    0.99999D+00    0.10864D-10
+  5    0.99999D+00    0.99999D+00    0.91562D-11
+  6    0.10000D+01    0.10000D+01    0.72429D-11
+  7    0.10000D+01    0.10000D+01    0.52459D-11
+  8    0.10000D+01    0.10000D+01    0.32825D-11
+  9    0.10000D+01    0.10000D+01    0.14588D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        506
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         39
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.12788D+00
+    0.10000D+01
+ Steps =       1599 f-s =       1817 J-s =         33
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.74685D-13
+  2    0.13685D-01    0.13685D-01    0.75383D-12
+  3    0.19229D+00    0.19229D+00    0.10612D-10
+  4    0.13534D+00    0.13534D+00    0.76071D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       2088 f-s =       2581 J-s =         42
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.20549D-10
+  2    0.17334D-13    0.12659D-13    0.46754D-14
+  3    0.13241D-46    0.19115D-41    0.19115D-41
+  4   -0.20177D-75    0.22774D-54    0.22774D-54
+  5    0.88157-109    0.00000D+00    0.88157-109
+  6   -0.91772-148    0.00000D+00    0.91772-148
+  7   -0.28131-190    0.00000D+00    0.28131-190
+  8    0.74089-237    0.00000D+00    0.74089-237
+  9   -0.38758-283    0.00000D+00    0.38758-283
+ 10    0.00000D+00    0.00000D+00    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        610
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         40
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =       6205 f-s =       6767 J-s =        111
+ Computed and reference solutions and absolute errors follow:
+  1    0.99918D-09    0.10042D-08    0.49889D-11
+  2    0.20869D-08    0.20955D-08    0.86181D-11
+  3    0.00000D+00    0.00000D+00    0.00000D+00
+  4    0.00000D+00   -0.18767D-79    0.18767D-79
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1126 f-s =       1328 J-s =         24
+ Computed and reference solutions and absolute errors follow:
+  1   -0.32339D-55    0.61813D-30    0.61813D-30
+  2    0.69701D-56    0.89637D-30    0.89637D-30
+  3    0.19970D-34    0.27384D-26    0.27384D-26
+  4    0.20612D-08    0.20612D-08    0.27424D-13
+  5    0.45400D-04    0.45400D-04    0.82189D-11
+  6    0.13534D+00    0.13534D+00    0.15064D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        254
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1254 f-s =       1463 J-s =         27
+ Computed and reference solutions and absolute errors follow:
+  1   -0.10535D-48   -0.10768D-27    0.10768D-27
+  2    0.73959D-50    0.54550D-27    0.54550D-27
+  3    0.21256D-34    0.27385D-26    0.27385D-26
+  4    0.20612D-08    0.20612D-08    0.26897D-13
+  5    0.45400D-04    0.45400D-04    0.80714D-11
+  6    0.13534D+00    0.13534D+00    0.14458D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        254
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       2001 f-s =       2293 J-s =         39
+ Computed and reference solutions and absolute errors follow:
+  1    0.12055D-20    0.11886D-21    0.10866D-20
+  2   -0.21641D-21   -0.23259D-21    0.16181D-22
+  3    0.20709D-34    0.15179D-34    0.55301D-35
+  4    0.20612D-08    0.20612D-08    0.22583D-13
+  5    0.45400D-04    0.45400D-04    0.66488D-11
+  6    0.13534D+00    0.13534D+00    0.14007D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        254
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.76336D+00
+    0.89286D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       7516 f-s =       8566 J-s =        132
+ Computed and reference solutions and absolute errors follow:
+  1    0.76836D-11   -0.23669D-13    0.77073D-11
+  2    0.90379D-11    0.34489D-13    0.90034D-11
+  3    0.18048D-34    0.18049D-34    0.37362D-39
+  4    0.20612D-08    0.20612D-08    0.40078D-16
+  5    0.45400D-04    0.45400D-04    0.27387D-13
+  6    0.13534D+00    0.13534D+00    0.16070D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        254
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.98039D+00
+    0.97087D+00
+    0.10000D+01
+    0.10000D+01
+ Steps =       1545 f-s =       1746 J-s =         34
+ Computed and reference solutions and absolute errors follow:
+  1    0.39247D-03    0.39247D-03    0.93085D-12
+  2    0.38850D-03    0.38850D-03    0.54210D-19
+  3    0.40000D-03    0.40000D-03    0.10842D-18
+  4    0.20000D-01    0.20000D-01    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1384 f-s =       1577 J-s =         31
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.35285D-11
+  2    0.40000D-01    0.40000D-01    0.31367D-12
+  3    0.40016D-01    0.40016D-01    0.28982D-12
+  4    0.40032D-01    0.40032D-01    0.28563D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.50000D+00
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1380 f-s =       1568 J-s =         30
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.11453D-11
+  2    0.40000D+00    0.40000D+00    0.10183D-11
+  3    0.41600D+00    0.41600D+00    0.10234D-11
+  4    0.43331D+00    0.43331D+00    0.10940D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.50000D+00
+    0.25000D+00
+    0.50000D-01
+    0.23810D-02
+ Steps =       1077 f-s =       1229 J-s =         25
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.21816D-12
+  2    0.10000D+01    0.10000D+01    0.48517D-12
+  3    0.10000D+01    0.10000D+01    0.88574D-12
+  4    0.10000D+01    0.10000D+01    0.17458D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.50000D+00
+    0.12500D+00
+    0.73529D-02
+    0.26954D-04
+ Steps =       1016 f-s =       1165 J-s =         24
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.38414D-12
+  2    0.10000D+01    0.10000D+01    0.85376D-12
+  3    0.10000D+01    0.10000D+01    0.16950D-11
+  4    0.10008D+01    0.10008D+01    0.34199D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        899 f-s =       1201 J-s =         21
+ Computed and reference solutions and absolute errors follow:
+  1    0.99741D+00    0.99741D+00    0.16629D-09
+  2    0.10004D+01    0.10004D+01    0.13723D-09
+  3    0.10000D+01    0.10000D+01    0.10769D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =       1263 f-s =       1607 J-s =         25
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.14356D-10
+  2    0.25166D+00    0.25166D+00    0.15429D-10
+  3    0.99707D+00    0.99707D+00    0.50374D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =       1730 f-s =       1984 J-s =         38
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.59996D-12
+  2    0.56309D-02    0.56309D-02    0.11657D-14
+  3    0.10007D+01    0.10007D+01    0.16707D-11
+  4    0.65374D+00    0.65374D+00    0.62239D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.70423D+00
+    0.00000D+00
+ Steps =        804 f-s =       1022 J-s =         21
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.59515D-10
+  2    0.98757D+00    0.98757D+00    0.41917D-10
+  3   -0.51035D+00   -0.51035D+00    0.62474D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        982 f-s =       1415 J-s =         23
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99964D+00   -0.99964D+00    0.10775D-09
+  2    0.99933D+00    0.99933D+00    0.12467D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         58
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         32
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =       1142 f-s =       1445 J-s =         28
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.15526D-11
+  2    0.99730D+00    0.99730D+00    0.10510D-10
+  3    0.10005D+01    0.10005D+01    0.33222D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =       1571 f-s =       2955 J-s =        224
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+01    0.10000D+01    0.18097D-13
+  2    0.19761D-15   -0.72884D-12    0.72904D-12
+  3   -0.13069D-13    0.15348D-11    0.15479D-11
+  4    0.77866D-13   -0.10837D-11    0.11616D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.99010D+00
+    0.00000D+00
+ Steps =       1748 f-s =       1980 J-s =         33
+ Computed and reference solutions and absolute errors follow:
+  1   -0.57361D+00   -0.57361D+00    0.11759D-08
+  2    0.56344D-01    0.56344D-01    0.33888D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         58
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         32
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.61350D+00
+    0.62500D+00
+    0.00000D+00
+ Steps =       1064 f-s =       1241 J-s =         24
+ Computed and reference solutions and absolute errors follow:
+  1    0.26092D-02    0.26092D-02    0.65811D-11
+  2    0.33231D-02    0.33231D-02    0.83605D-11
+  3    0.99911D+00    0.99911D+00    0.18109D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.00000D+00
+   -0.67797D-01
+   -0.64516D-01
+   -0.61350D-01
+ Steps =       2282 f-s =       2599 J-s =         44
+ Computed and reference solutions and absolute errors follow:
+  1    0.69444D+00    0.69444D+00    0.47351D-12
+  2   -0.67797D+00   -0.67797D+00    0.46285D-12
+  3   -0.14502D-07   -0.14501D-07    0.87967D-12
+  4    0.13790D-07    0.13789D-07    0.83734D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        684 f-s =        834 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1    0.91936D+00    0.91936D+00    0.45448D-07
+  2    0.94674D+00    0.94674D+00    0.51423D-07
+  3    0.99777D+00    0.99777D+00    0.78154D-08
+  4    0.94183D+00    0.94183D+00    0.53935D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.62893D+00
+    0.00000D+00
+    0.49587D+00
+    0.10000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       2913 f-s =       4059 J-s =         56
+ Computed and reference solutions and absolute errors follow:
+  1    0.10009D+01    0.10009D+01    0.69398D-11
+  2    0.15223D-03    0.15223D-03    0.13082D-13
+  3    0.99887D+00    0.99887D+00    0.68887D-11
+  4    0.32420D-02    0.32420D-02    0.10889D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        144
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         38
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =   1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        790 f-s =        905 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.11221D-10
+  2    0.52568D+00    0.52568D+00    0.15065D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         62
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =       1676 f-s =       1900 J-s =         29
+ Computed and reference solutions and absolute errors follow:
+  1    0.80902D-07    0.80898D-07    0.39396D-11
+  2    0.23607D+00    0.23607D+00    0.46063D-12
+  3    0.20426D-04    0.20426D-04    0.99394D-12
+  4    0.99860D+00    0.99860D+00    0.15975D-11
+  5    0.99879D+00    0.99879D+00    0.52112D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        200
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         40
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =   1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.33898D-04
+    0.62147D-03
+    0.12780D-03
+ Nonnegativity will be enforced for this problem.
+ Steps =       3815 f-s =       5518 J-s =         74
+ Computed and reference solutions and absolute errors follow:
+  1    0.37443D-04    0.37443D-04    0.25800D-11
+  2    0.72895D-03    0.72895D-03    0.18871D-10
+  3    0.96463D-04    0.96463D-04    0.15001D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         98
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will be scaled.
+  The ODEs will be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =   1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10015D+01
+    0.10001D+01
+    0.26527D+00
+    0.98220D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =       1527 f-s =       2230 J-s =         66
+ Computed and reference solutions and absolute errors follow:
+  1    0.50999D+00    0.50999D+00    0.15288D-11
+  2    0.44958D+00    0.44958D+00    0.13717D-11
+  3    0.99988D+00    0.99988D+00    0.30504D-11
+  4    0.99949D+00    0.99949D+00    0.52847D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        144
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         38
+
+
+                     Results for ITOL =   5
+
+ Maximum Errors for All Problems Follow:
+ The original VODE Jacobian was used.
+ The ODEs were scaled.
+
+           Maximum Errors for Individual Problems Follow:
+
+Tolerance   Problem    Dense          Sparse         Banded
+    5          1    0.32471D-05    0.32471D-05    0.32471D-05
+    5          2    0.56583D-06    0.57517D-06    0.56583D-06
+    5          3    0.20977D-05    0.20731D-05    0.20977D-05
+    5          4    0.35755D-04    0.35755D-04    0.35755D-04
+    5         11    0.58719D-04    0.58718D-04    0.58719D-04
+    5         12    0.25783D-05    0.25783D-05    0.25783D-05
+    5         13    0.36548D-06    0.36548D-06    0.36548D-06
+    5         14    0.24517D-04    0.24517D-04    0.24517D-04
+    5         15    0.16206D-04    0.16213D-04    0.16206D-04
+    5         21    0.20165D-04    0.20198D-05    0.20165D-04
+    5         22    0.28851D-06    0.38024D-05    0.28851D-06
+    5         23    0.30005D-05    0.74788D-06    0.30005D-05
+    5         24    0.23606D-05    0.21360D-05    0.23606D-05
+    5         25    0.67400D-06    0.11033D-04    0.67400D-06
+    5         31    0.84092D-04    0.83931D-04    0.84092D-04
+    5         32    0.97897D-05    0.50011D-04    0.97897D-05
+    5         33    0.76936D-06    0.45641D-06    0.76936D-06
+    5         34    0.15211D-04    0.23338D-04    0.15211D-04
+    5         35    0.55601D-04    0.25685D-03    0.55601D-04
+    5         36    0.52139D-05    0.82648D-05    0.52139D-05
+    5         41    0.12415D-05    0.40731D-08    0.12415D-05
+    5         42    0.59786D-03    0.68611D-03    0.59786D-03
+    5         43    0.35648D-04    0.18213D-04    0.35648D-04
+    5         44    0.11306D-04    0.18660D-06    0.11306D-04
+    5         45    0.18855D-04    0.54950D-05    0.18855D-04
+    5         51    0.83831D-05    0.75494D-05    0.83831D-05
+    5         52    0.12492D-04    0.12438D-04    0.12492D-04
+    5         53    0.92601D-05    0.36554D-04    0.92601D-05
+    5         54    0.96101D-05    0.65989D-05    0.96101D-05
+    5         55    0.11483D-08    0.10778D-08    0.11483D-08
+
+
+                     Results for ITOL =   6
+
+ Maximum Errors for All Problems Follow:
+ The original VODE Jacobian was used.
+ The ODEs were scaled.
+
+           Maximum Errors for Individual Problems Follow:
+
+Tolerance   Problem    Dense          Sparse         Banded
+    6          1    0.30490D-06    0.30487D-06    0.30490D-06
+    6          2    0.23459D-05    0.42008D-05    0.23459D-05
+    6          3    0.99705D-06    0.12082D-05    0.99705D-06
+    6          4    0.76940D-06    0.76940D-06    0.76940D-06
+    6         11    0.19333D-04    0.19333D-04    0.19333D-04
+    6         12    0.21619D-05    0.21619D-05    0.21619D-05
+    6         13    0.20675D-05    0.20675D-05    0.20675D-05
+    6         14    0.12312D-05    0.12312D-05    0.12312D-05
+    6         15    0.22340D-04    0.22377D-04    0.22340D-04
+    6         21    0.20967D-06    0.53735D-06    0.20967D-06
+    6         22    0.55706D-07    0.19179D-05    0.55706D-07
+    6         23    0.37237D-07    0.36350D-06    0.37237D-07
+    6         24    0.24967D-06    0.62205D-06    0.24967D-06
+    6         25    0.83501D-06    0.29749D-07    0.83501D-06
+    6         31    0.11011D-04    0.28008D-04    0.11011D-04
+    6         32    0.15280D-05    0.16040D-05    0.15280D-05
+    6         33    0.41396D-06    0.46576D-05    0.41396D-06
+    6         34    0.79359D-06    0.41703D-05    0.79359D-06
+    6         35    0.47709D-04    0.91243D-05    0.47709D-04
+    6         36    0.14298D-05    0.35034D-05    0.14298D-05
+    6         41    0.72615D-07    0.93984D-08    0.72615D-07
+    6         42    0.37357D-04    0.11643D-03    0.37357D-04
+    6         43    0.10902D-04    0.10473D-04    0.10902D-04
+    6         44    0.82709D-06    0.17780D-06    0.82709D-06
+    6         45    0.19244D-05    0.15627D-05    0.19244D-05
+    6         51    0.34351D-05    0.85278D-06    0.34351D-05
+    6         52    0.68569D-05    0.69553D-05    0.68569D-05
+    6         53    0.17257D-05    0.55420D-06    0.17257D-05
+    6         54    0.15970D-05    0.30389D-05    0.15970D-05
+    6         55    0.11877D-10    0.15185D-09    0.11877D-10
+
+
+                     Results for ITOL =   7
+
+ Maximum Errors for All Problems Follow:
+ The original VODE Jacobian was used.
+ The ODEs were scaled.
+
+           Maximum Errors for Individual Problems Follow:
+
+Tolerance   Problem    Dense          Sparse         Banded
+    7          1    0.17939D-06    0.17939D-06    0.17939D-06
+    7          2    0.91142D-07    0.95234D-07    0.91142D-07
+    7          3    0.51101D-07    0.49417D-07    0.51101D-07
+    7          4    0.13268D-06    0.13268D-06    0.13268D-06
+    7         11    0.58269D-06    0.58274D-06    0.58269D-06
+    7         12    0.12318D-06    0.12318D-06    0.12318D-06
+    7         13    0.11735D-06    0.11735D-06    0.11735D-06
+    7         14    0.88396D-07    0.88396D-07    0.88396D-07
+    7         15    0.20088D-05    0.20087D-05    0.20088D-05
+    7         21    0.26281D-07    0.49625D-08    0.26281D-07
+    7         22    0.42538D-07    0.49236D-07    0.42538D-07
+    7         23    0.75664D-07    0.91194D-07    0.75664D-07
+    7         24    0.66996D-07    0.35457D-06    0.66996D-07
+    7         25    0.18149D-07    0.46698D-06    0.18149D-07
+    7         31    0.19719D-05    0.18508D-05    0.19719D-05
+    7         32    0.48861D-06    0.18750D-05    0.48861D-06
+    7         33    0.31548D-11    0.10500D-07    0.31548D-11
+    7         34    0.10017D-05    0.94863D-06    0.10017D-05
+    7         35    0.40834D-05    0.92703D-06    0.40834D-05
+    7         36    0.35102D-06    0.16951D-06    0.35102D-06
+    7         41    0.11289D-08    0.16620D-08    0.11289D-08
+    7         42    0.89271D-05    0.11627D-04    0.89271D-05
+    7         43    0.46789D-06    0.41417D-06    0.46789D-06
+    7         44    0.18802D-07    0.22905D-07    0.18802D-07
+    7         45    0.43258D-06    0.41049D-06    0.43258D-06
+    7         51    0.24681D-06    0.11446D-06    0.24681D-06
+    7         52    0.71038D-06    0.84761D-07    0.71038D-06
+    7         53    0.19027D-06    0.59935D-09    0.19027D-06
+    7         54    0.26064D-06    0.36883D-06    0.26064D-06
+    7         55    0.33382D-09    0.11474D-09    0.33382D-09
+
+
+                     Results for ITOL =   8
+
+ Maximum Errors for All Problems Follow:
+ The original VODE Jacobian was used.
+ The ODEs were scaled.
+
+           Maximum Errors for Individual Problems Follow:
+
+Tolerance   Problem    Dense          Sparse         Banded
+    8          1    0.10373D-07    0.10373D-07    0.10373D-07
+    8          2    0.24812D-07    0.11087D-07    0.24812D-07
+    8          3    0.63728D-07    0.63731D-07    0.63728D-07
+    8          4    0.81042D-08    0.81042D-08    0.81042D-08
+    8         11    0.16172D-06    0.16040D-06    0.16172D-06
+    8         12    0.20557D-07    0.20557D-07    0.20557D-07
+    8         13    0.16174D-07    0.16174D-07    0.16174D-07
+    8         14    0.10211D-07    0.10211D-07    0.10211D-07
+    8         15    0.42399D-06    0.40166D-06    0.42399D-06
+    8         21    0.18517D-08    0.18530D-08    0.18517D-08
+    8         22    0.58869D-08    0.60484D-08    0.58869D-08
+    8         23    0.47449D-08    0.32007D-08    0.47449D-08
+    8         24    0.34084D-07    0.11561D-07    0.34084D-07
+    8         25    0.80857D-08    0.59000D-07    0.80857D-08
+    8         31    0.24683D-06    0.87601D-07    0.24683D-06
+    8         32    0.31120D-06    0.13234D-06    0.31120D-06
+    8         33    0.39360D-08    0.83857D-09    0.39360D-08
+    8         34    0.81210D-07    0.13884D-06    0.81210D-07
+    8         35    0.70299D-06    0.82563D-06    0.70299D-06
+    8         36    0.28867D-07    0.11512D-06    0.28867D-07
+    8         41    0.42974D-09    0.76380D-08    0.42974D-09
+    8         42    0.93642D-06    0.13736D-05    0.93642D-06
+    8         43    0.18497D-07    0.45459D-07    0.18497D-07
+    8         44    0.24400D-08    0.76607D-08    0.24400D-08
+    8         45    0.18415D-07    0.42365D-07    0.18415D-07
+    8         51    0.35524D-07    0.50334D-07    0.35524D-07
+    8         52    0.72659D-07    0.14764D-07    0.72659D-07
+    8         53    0.60485D-07    0.24813D-07    0.60485D-07
+    8         54    0.80383D-07    0.10454D-06    0.80383D-07
+    8         55    0.16738D-09    0.57834D-09    0.16738D-09
+
+
+                     Results for ITOL =   9
+
+ Maximum Errors for All Problems Follow:
+ The original VODE Jacobian was used.
+ The ODEs were scaled.
+
+           Maximum Errors for Individual Problems Follow:
+
+Tolerance   Problem    Dense          Sparse         Banded
+    9          1    0.20958D-08    0.20958D-08    0.20958D-08
+    9          2    0.14111D-08    0.22225D-08    0.14111D-08
+    9          3    0.87620D-08    0.87621D-08    0.87620D-08
+    9          4    0.36942D-09    0.36942D-09    0.36942D-09
+    9         11    0.33785D-08    0.35969D-08    0.33785D-08
+    9         12    0.22293D-08    0.22293D-08    0.22293D-08
+    9         13    0.16949D-08    0.16949D-08    0.16949D-08
+    9         14    0.42677D-08    0.42677D-08    0.42677D-08
+    9         15    0.28967D-07    0.28919D-07    0.28967D-07
+    9         21    0.21201D-08    0.21699D-08    0.21201D-08
+    9         22    0.63349D-09    0.63783D-09    0.63349D-09
+    9         23    0.48844D-09    0.47465D-09    0.48844D-09
+    9         24    0.12549D-08    0.58490D-08    0.12549D-08
+    9         25    0.48575D-08    0.47376D-08    0.48575D-08
+    9         31    0.55273D-08    0.23834D-07    0.55273D-08
+    9         32    0.11917D-07    0.76346D-08    0.11917D-07
+    9         33    0.97980D-09    0.33663D-09    0.97980D-09
+    9         34    0.11512D-07    0.12067D-07    0.11512D-07
+    9         35    0.42170D-07    0.71500D-07    0.42170D-07
+    9         36    0.25184D-08    0.25749D-08    0.25184D-08
+    9         41    0.44010D-12    0.22286D-11    0.44010D-12
+    9         42    0.40208D-06    0.24234D-06    0.40208D-06
+    9         43    0.25372D-07    0.87503D-08    0.25372D-07
+    9         44    0.17375D-08    0.91936D-10    0.17375D-08
+    9         45    0.50265D-07    0.51484D-07    0.50265D-07
+    9         51    0.33201D-08    0.47336D-08    0.33201D-08
+    9         52    0.94341D-08    0.61490D-08    0.94341D-08
+    9         53    0.28972D-07    0.25205D-08    0.28972D-07
+    9         54    0.15844D-08    0.59517D-08    0.15844D-08
+    9         55    0.51192D-09    0.98173D-09    0.51192D-09
+
+
+                     Results for ITOL =  10
+
+ Maximum Errors for All Problems Follow:
+ The original VODE Jacobian was used.
+ The ODEs were scaled.
+
+           Maximum Errors for Individual Problems Follow:
+
+Tolerance   Problem    Dense          Sparse         Banded
+   10          1    0.33624D-09    0.33624D-09    0.33624D-09
+   10          2    0.33713D-09    0.33385D-09    0.33713D-09
+   10          3    0.21171D-09    0.21173D-09    0.21171D-09
+   10          4    0.54749D-09    0.54749D-09    0.54749D-09
+   10         11    0.42778D-09    0.40296D-09    0.42778D-09
+   10         12    0.36754D-09    0.36754D-09    0.36754D-09
+   10         13    0.32141D-09    0.32141D-09    0.32141D-09
+   10         14    0.33829D-09    0.33829D-09    0.33829D-09
+   10         15    0.29670D-08    0.41516D-09    0.29670D-08
+   10         21    0.25669D-09    0.10058D-09    0.25669D-09
+   10         22    0.46526D-09    0.46582D-09    0.46526D-09
+   10         23    0.17842D-09    0.33598D-10    0.17842D-09
+   10         24    0.14704D-09    0.19439D-09    0.14704D-09
+   10         25    0.98313D-10    0.10980D-09    0.98313D-10
+   10         31    0.49973D-08    0.64512D-08    0.49973D-08
+   10         32    0.27697D-08    0.71006D-09    0.27697D-08
+   10         33    0.12460D-10    0.42447D-10    0.12460D-10
+   10         34    0.21946D-09    0.15828D-08    0.21946D-09
+   10         35    0.96201D-08    0.87193D-08    0.96201D-08
+   10         36    0.64428D-09    0.69450D-09    0.64428D-09
+   10         41    0.15161D-11    0.47164D-08    0.15161D-11
+   10         42    0.38996D-07    0.42937D-07    0.38996D-07
+   10         43    0.23672D-08    0.95209D-09    0.23672D-08
+   10         44    0.73500D-10    0.47575D-10    0.73500D-10
+   10         45    0.53885D-07    0.53505D-07    0.53885D-07
+   10         51    0.44423D-09    0.78980D-09    0.44423D-09
+   10         52    0.21244D-08    0.58908D-09    0.21244D-08
+   10         53    0.98668D-10    0.11303D-09    0.98668D-10
+   10         54    0.10080D-08    0.64865D-09    0.10080D-08
+   10         55    0.38982D-10    0.19868D-09    0.38982D-10
+
+
+                     Results for ITOL =  11
+
+ Maximum Errors for All Problems Follow:
+ The original VODE Jacobian was used.
+ The ODEs were scaled.
+
+           Maximum Errors for Individual Problems Follow:
+
+Tolerance   Problem    Dense          Sparse         Banded
+   11          1    0.33879D-10    0.33879D-10    0.33879D-10
+   11          2    0.37573D-10    0.52035D-10    0.37573D-10
+   11          3    0.15178D-09    0.15016D-09    0.15178D-09
+   11          4    0.27668D-09    0.27666D-09    0.27668D-09
+   11         11    0.75796D-10    0.77682D-10    0.75796D-10
+   11         12    0.52756D-10    0.52756D-10    0.52756D-10
+   11         13    0.50269D-10    0.50269D-10    0.50269D-10
+   11         14    0.24207D-10    0.24207D-10    0.24207D-10
+   11         15    0.61168D-10    0.42571D-10    0.61168D-10
+   11         21    0.61175D-11    0.61119D-11    0.61175D-11
+   11         22    0.17755D-10    0.17735D-10    0.17755D-10
+   11         23    0.13406D-10    0.13312D-10    0.13406D-10
+   11         24    0.11793D-10    0.11647D-10    0.11793D-10
+   11         25    0.20983D-10    0.21008D-10    0.20983D-10
+   11         31    0.87426D-09    0.70994D-09    0.87426D-09
+   11         32    0.38472D-09    0.90075D-11    0.38472D-09
+   11         33    0.31697D-11    0.17435D-11    0.31697D-11
+   11         34    0.45865D-09    0.26183D-09    0.45865D-09
+   11         35    0.12675D-08    0.15231D-08    0.12675D-08
+   11         36    0.90006D-10    0.86557D-10    0.90006D-10
+   11         41    0.11303D-11    0.20190D-11    0.11303D-11
+   11         42    0.74475D-08    0.77815D-08    0.74475D-08
+   11         43    0.19905D-09    0.57774D-10    0.19905D-09
+   11         44    0.76892D-11    0.63126D-11    0.76892D-11
+   11         45    0.53922D-07    0.53933D-07    0.53922D-07
+   11         51    0.55779D-10    0.50330D-10    0.55779D-10
+   11         52    0.97876D-10    0.16649D-09    0.97876D-10
+   11         53    0.13018D-10    0.20022D-10    0.13018D-10
+   11         54    0.74297D-10    0.10936D-09    0.74297D-10
+   11         55    0.12232D-09    0.19853D-10    0.12232D-09
+
+
+                     Results for ITOL =  12
+
+ Maximum Errors for All Problems Follow:
+ The original VODE Jacobian was used.
+ The ODEs were scaled.
+
+           Maximum Errors for Individual Problems Follow:
+
+Tolerance   Problem    Dense          Sparse         Banded
+   12          1    0.68578D-11    0.68578D-11    0.68578D-11
+   12          2    0.13130D-10    0.13253D-10    0.13130D-10
+   12          3    0.10612D-10    0.10959D-10    0.10612D-10
+   12          4    0.20549D-10    0.20558D-10    0.20549D-10
+   12         11    0.86181D-11    0.87121D-11    0.86181D-11
+   12         12    0.82189D-11    0.82192D-11    0.82189D-11
+   12         13    0.80714D-11    0.80714D-11    0.80714D-11
+   12         14    0.66488D-11    0.66484D-11    0.66488D-11
+   12         15    0.90034D-11    0.29004D-11    0.90034D-11
+   12         21    0.93085D-12    0.99169D-12    0.93085D-12
+   12         22    0.35285D-11    0.35303D-11    0.35285D-11
+   12         23    0.11453D-11    0.11335D-11    0.11453D-11
+   12         24    0.17458D-11    0.16659D-11    0.17458D-11
+   12         25    0.34199D-11    0.34526D-11    0.34199D-11
+   12         31    0.16629D-09    0.17895D-09    0.16629D-09
+   12         32    0.50374D-10    0.14628D-10    0.50374D-10
+   12         33    0.16707D-11    0.46252D-12    0.16707D-11
+   12         34    0.62474D-10    0.14220D-10    0.62474D-10
+   12         35    0.12467D-09    0.11902D-09    0.12467D-09
+   12         36    0.10510D-10    0.82102D-11    0.10510D-10
+   12         41    0.15479D-11    0.15684D-11    0.15479D-11
+   12         42    0.11759D-08    0.12933D-08    0.11759D-08
+   12         43    0.18109D-10    0.72027D-11    0.18109D-10
+   12         44    0.87967D-12    0.76457D-12    0.87967D-12
+   12         45    0.53935D-07    0.53936D-07    0.53935D-07
+   12         51    0.69398D-11    0.83380D-11    0.69398D-11
+   12         52    0.15065D-10    0.20416D-10    0.15065D-10
+   12         53    0.52112D-11    0.48481D-11    0.52112D-11
+   12         54    0.18871D-10    0.15722D-10    0.18871D-10
+   12         55    0.30504D-11    0.55322D-10    0.30504D-11
+
+
+                     Results for ITOL =   5
+
+ Integration Statistics Follow:
+ The original VODE Jacobian was used.
+ The ODEs were scaled.
+
+ Problem            Dense    Sparse    Banded
+    1   Steps:        127       127       127
+        Jacs:           6         5         6
+        Ders:         192       208       192
+  
+    2   Steps:        141       141       141
+        Jacs:           5         6         5
+        Ders:         224       287       224
+  
+    3   Steps:        152       152       152
+        Jacs:           5         6         5
+        Ders:         221       249       221
+  
+    4   Steps:        189       189       189
+        Jacs:           6         8         6
+        Ders:         291       391       291
+  
+   11   Steps:        520       520       520
+        Jacs:          12        16        12
+        Ders:         604       684       604
+  
+   12   Steps:        107       107       107
+        Jacs:           4         5         4
+        Ders:         154       190       154
+  
+   13   Steps:        115       115       115
+        Jacs:           5         5         5
+        Ders:         166       196       166
+  
+   14   Steps:        182       182       182
+        Jacs:           5         8         5
+        Ders:         236       302       236
+  
+   15   Steps:       2551      2551      2551
+        Jacs:          46        72        46
+        Ders:        2963      3551      2963
+  
+   21   Steps:        135       144       135
+        Jacs:           6         6         6
+        Ders:         196       237       196
+  
+   22   Steps:        135       134       135
+        Jacs:           6         5         6
+        Ders:         191       210       191
+  
+   23   Steps:        127       127       127
+        Jacs:           5         5         5
+        Ders:         180       198       180
+  
+   24   Steps:        114       107       114
+        Jacs:           4         5         4
+        Ders:         162       175       162
+  
+   25   Steps:        103        97       103
+        Jacs:           3         5         3
+        Ders:         135       158       135
+  
+   31   Steps:         72        72        72
+        Jacs:           3         4         3
+        Ders:         136       151       136
+  
+   32   Steps:        173       155       173
+        Jacs:           4         7         4
+        Ders:         266       267       266
+  
+   33   Steps:        200       209       200
+        Jacs:           7         8         7
+        Ders:         307       346       307
+  
+   34   Steps:         99        97        99
+        Jacs:           5         5         5
+        Ders:         159       170       159
+  
+   35   Steps:         70        75        70
+        Jacs:           5         5         5
+        Ders:         130       142       130
+  
+   36   Steps:        126       129       126
+        Jacs:           6         5         6
+        Ders:         198       208       198
+  
+   41   Steps:        129       124       129
+        Jacs:           7         5         7
+        Ders:         192       199       192
+  
+   42   Steps:        178       166       178
+        Jacs:           4         8         4
+        Ders:         245       286       245
+  
+   43   Steps:        150       134       150
+        Jacs:           5         5         5
+        Ders:         273       206       273
+  
+   44   Steps:        241       258       241
+        Jacs:           7        11         7
+        Ders:         341       414       341
+  
+   45   Steps:         73        80        73
+        Jacs:           3         5         3
+        Ders:         104       139       104
+  
+   51   Steps:        349       252       349
+        Jacs:          19        21        19
+        Ders:         664       599       664
+  
+   52   Steps:         95        95        95
+        Jacs:           3         5         3
+        Ders:         137       152       137
+  
+   53   Steps:        191       521       191
+        Jacs:           4        21         4
+        Ders:         270       909       270
+  
+   54   Steps:        685       654       685
+        Jacs:          21        35        21
+        Ders:        1058      1147      1058
+  
+   55   Steps:        183       193       183
+        Jacs:           7         8         7
+        Ders:         284       341       284
+  
+
+
+                     Results for ITOL =   6
+
+ Integration Statistics Follow:
+ The original VODE Jacobian was used.
+ The ODEs were scaled.
+
+ Problem            Dense    Sparse    Banded
+    1   Steps:        168       168       168
+        Jacs:           7         8         7
+        Ders:         242       278       242
+  
+    2   Steps:        208       207       208
+        Jacs:           7         8         7
+        Ders:         321       410       321
+  
+    3   Steps:        207       207       207
+        Jacs:           6         8         6
+        Ders:         301       342       301
+  
+    4   Steps:        254       254       254
+        Jacs:           8        11         8
+        Ders:         390       530       390
+  
+   11   Steps:        686       686       686
+        Jacs:          16        21        16
+        Ders:         795       899       795
+  
+   12   Steps:        137       137       137
+        Jacs:           5         5         5
+        Ders:         201       231       201
+  
+   13   Steps:        148       148       148
+        Jacs:           5         6         5
+        Ders:         207       249       207
+  
+   14   Steps:        276       276       276
+        Jacs:           7        11         7
+        Ders:         343       433       343
+  
+   15   Steps:       2619      2620      2619
+        Jacs:          49        72        49
+        Ders:        3088      3659      3088
+  
+   21   Steps:        182       184       182
+        Jacs:           7         8         7
+        Ders:         254       298       254
+  
+   22   Steps:        177       175       177
+        Jacs:           8         8         8
+        Ders:         252       286       252
+  
+   23   Steps:        174       173       174
+        Jacs:           7         8         7
+        Ders:         249       289       249
+  
+   24   Steps:        153       145       153
+        Jacs:           5         6         5
+        Ders:         216       244       216
+  
+   25   Steps:        147       145       147
+        Jacs:           5         6         5
+        Ders:         208       222       208
+  
+   31   Steps:        142       140       142
+        Jacs:           3         5         3
+        Ders:         237       232       237
+  
+   32   Steps:        185       241       185
+        Jacs:           4        11         4
+        Ders:         274       407       274
+  
+   33   Steps:        234       235       234
+        Jacs:           8         9         8
+        Ders:         337       393       337
+  
+   34   Steps:        110       114       110
+        Jacs:           7         5         7
+        Ders:         177       194       177
+  
+   35   Steps:        129       133       129
+        Jacs:           4         6         4
+        Ders:         205       221       205
+  
+   36   Steps:        208       240       208
+        Jacs:           8         9         8
+        Ders:         309       415       309
+  
+   41   Steps:        180       170       180
+        Jacs:           8         7         8
+        Ders:         258       264       258
+  
+   42   Steps:        228       232       228
+        Jacs:           5         9         5
+        Ders:         313       363       313
+  
+   43   Steps:        195       245       195
+        Jacs:           7        11         7
+        Ders:         299       416       299
+  
+   44   Steps:        282       276       282
+        Jacs:           9        12         9
+        Ders:         411       449       411
+  
+   45   Steps:        106        98       106
+        Jacs:           4         5         4
+        Ders:         151       169       151
+  
+   51   Steps:        406       340       406
+        Jacs:          22        24        22
+        Ders:         747       713       747
+  
+   52   Steps:        108       108       108
+        Jacs:           5         5         5
+        Ders:         170       175       170
+  
+   53   Steps:        225       220       225
+        Jacs:           5         9         5
+        Ders:         302       354       302
+  
+   54   Steps:        805       834       805
+        Jacs:          24        37        24
+        Ders:        1216      1415      1216
+  
+   55   Steps:        278       258       278
+        Jacs:           9        11         9
+        Ders:         419       432       419
+  
+
+
+                     Results for ITOL =   7
+
+ Integration Statistics Follow:
+ The original VODE Jacobian was used.
+ The ODEs were scaled.
+
+ Problem            Dense    Sparse    Banded
+    1   Steps:        229       229       229
+        Jacs:           8         8         8
+        Ders:         308       340       308
+  
+    2   Steps:        263       268       263
+        Jacs:           9        11         9
+        Ders:         418       544       418
+  
+    3   Steps:        276       276       276
+        Jacs:           8        11         8
+        Ders:         385       441       385
+  
+    4   Steps:        358       358       358
+        Jacs:          11        14        11
+        Ders:         535       705       535
+  
+   11   Steps:        975       975       975
+        Jacs:          21        30        21
+        Ders:        1107      1263      1107
+  
+   12   Steps:        201       201       201
+        Jacs:           7         7         7
+        Ders:         282       324       282
+  
+   13   Steps:        219       219       219
+        Jacs:           7         7         7
+        Ders:         301       343       301
+  
+   14   Steps:        373       373       373
+        Jacs:          10        13        10
+        Ders:         461       557       461
+  
+   15   Steps:       2868      2868      2868
+        Jacs:          53        76        53
+        Ders:        3382      3976      3382
+  
+   21   Steps:        269       265       269
+        Jacs:           9        11         9
+        Ders:         352       405       352
+  
+   22   Steps:        239       240       239
+        Jacs:           9         9         9
+        Ders:         330       367       330
+  
+   23   Steps:        239       238       239
+        Jacs:           9         9         9
+        Ders:         332       367       332
+  
+   24   Steps:        207       195       207
+        Jacs:           7         8         7
+        Ders:         277       301       277
+  
+   25   Steps:        196       193       196
+        Jacs:           6         8         6
+        Ders:         291       323       291
+  
+   31   Steps:        216       206       216
+        Jacs:           5         8         5
+        Ders:         330       360       330
+  
+   32   Steps:        353       338       353
+        Jacs:           8        14         8
+        Ders:         508       570       508
+  
+   33   Steps:        327       344       327
+        Jacs:          10        14        10
+        Ders:         454       532       454
+  
+   34   Steps:        161       161       161
+        Jacs:           7         6         7
+        Ders:         242       257       242
+  
+   35   Steps:        168       156       168
+        Jacs:           8         8         8
+        Ders:         273       289       273
+  
+   36   Steps:        274       280       274
+        Jacs:           9        11         9
+        Ders:         380       465       380
+  
+   41   Steps:        242       239       242
+        Jacs:          10        10        10
+        Ders:         325       356       325
+  
+   42   Steps:        289       286       289
+        Jacs:           7        10         7
+        Ders:         401       420       401
+  
+   43   Steps:        289       268       289
+        Jacs:           9        11         9
+        Ders:         423       436       423
+  
+   44   Steps:        416       408       416
+        Jacs:          12        17        12
+        Ders:         565       658       565
+  
+   45   Steps:        136       132       136
+        Jacs:           4         5         4
+        Ders:         184       204       184
+  
+   51   Steps:        607       491       607
+        Jacs:          23        30        23
+        Ders:        1024      1019      1024
+  
+   52   Steps:        142       145       142
+        Jacs:           5         6         5
+        Ders:         207       234       207
+  
+   53   Steps:        351       289       351
+        Jacs:           7        11         7
+        Ders:         471       463       471
+  
+   54   Steps:       1018       833      1018
+        Jacs:          28        38        28
+        Ders:        1726      1482      1726
+  
+   55   Steps:        343       364       343
+        Jacs:          11        14        11
+        Ders:         511       588       511
+  
+
+
+                     Results for ITOL =   8
+
+ Integration Statistics Follow:
+ The original VODE Jacobian was used.
+ The ODEs were scaled.
+
+ Problem            Dense    Sparse    Banded
+    1   Steps:        302       302       302
+        Jacs:          11        11        11
+        Ders:         408       452       408
+  
+    2   Steps:        375       376       375
+        Jacs:          11        15        11
+        Ders:         530       700       530
+  
+    3   Steps:        385       385       385
+        Jacs:          11        15        11
+        Ders:         494       570       494
+  
+    4   Steps:        495       495       495
+        Jacs:          13        16        13
+        Ders:         685       875       685
+  
+   11   Steps:       1361      1361      1361
+        Jacs:          28        39        28
+        Ders:        1529      1729      1529
+  
+   12   Steps:        281       281       281
+        Jacs:           9        11         9
+        Ders:         371       449       371
+  
+   13   Steps:        305       305       305
+        Jacs:          10        11        10
+        Ders:         402       474       402
+  
+   14   Steps:        585       585       585
+        Jacs:          15        18        15
+        Ders:         725       851       725
+  
+   15   Steps:       3238      3239      3238
+        Jacs:          59        89        59
+        Ders:        3773      4488      3773
+  
+   21   Steps:        367       367       367
+        Jacs:          12        13        12
+        Ders:         464       520       464
+  
+   22   Steps:        336       336       336
+        Jacs:          11        13        11
+        Ders:         435       495       435
+  
+   23   Steps:        324       324       324
+        Jacs:          10        11        10
+        Ders:         413       461       413
+  
+   24   Steps:        260       259       260
+        Jacs:           9        11         9
+        Ders:         356       392       356
+  
+   25   Steps:        252       245       252
+        Jacs:           8        10         8
+        Ders:         337       370       337
+  
+   31   Steps:        375       390       375
+        Jacs:           8        16         8
+        Ders:         555       663       555
+  
+   32   Steps:        454       387       454
+        Jacs:           9        16         9
+        Ders:         639       597       639
+  
+   33   Steps:        444       419       444
+        Jacs:          13        18        13
+        Ders:         577       657       577
+  
+   34   Steps:        246       244       246
+        Jacs:          10        10        10
+        Ders:         355       383       355
+  
+   35   Steps:        215       264       215
+        Jacs:          10        11        10
+        Ders:         345       499       345
+  
+   36   Steps:        375       354       375
+        Jacs:          12        14        12
+        Ders:         542       568       542
+  
+   41   Steps:        331       324       331
+        Jacs:          11        11        11
+        Ders:         422       477       422
+  
+   42   Steps:        401       402       401
+        Jacs:           9        15         9
+        Ders:         518       560       518
+  
+   43   Steps:        418       352       418
+        Jacs:          12        13        12
+        Ders:         595       526       595
+  
+   44   Steps:        564       539       564
+        Jacs:          14        18        14
+        Ders:         737       790       737
+  
+   45   Steps:        182       193       182
+        Jacs:           6         8         6
+        Ders:         250       295       250
+  
+   51   Steps:        725       780       725
+        Jacs:          26        34        26
+        Ders:        1191      1456      1191
+  
+   52   Steps:        204       209       204
+        Jacs:           7         8         7
+        Ders:         277       304       277
+  
+   53   Steps:        422       401       422
+        Jacs:           8        15         8
+        Ders:         515       612       515
+  
+   54   Steps:       1237      1294      1237
+        Jacs:          31        53        31
+        Ders:        2084      2356      2084
+  
+   55   Steps:        501       437       501
+        Jacs:          14        16        14
+        Ders:         733       674       733
+  
+
+
+                     Results for ITOL =   9
+
+ Integration Statistics Follow:
+ The original VODE Jacobian was used.
+ The ODEs were scaled.
+
+ Problem            Dense    Sparse    Banded
+    1   Steps:        428       428       428
+        Jacs:          13        16        13
+        Ders:         542       618       542
+  
+    2   Steps:        522       521       522
+        Jacs:          15        17        15
+        Ders:         731       895       731
+  
+    3   Steps:        537       537       537
+        Jacs:          14        19        14
+        Ders:         657       753       657
+  
+    4   Steps:        703       703       703
+        Jacs:          18        26        18
+        Ders:         953      1293       953
+  
+   11   Steps:       2035      2034      2035
+        Jacs:          39        55        39
+        Ders:        2249      2532      2249
+  
+   12   Steps:        390       390       390
+        Jacs:          11        15        11
+        Ders:         495       609       495
+  
+   13   Steps:        426       426       426
+        Jacs:          11        13        11
+        Ders:         529       619       529
+  
+   14   Steps:        798       798       798
+        Jacs:          18        24        18
+        Ders:         960      1140       960
+  
+   15   Steps:       3790      3790      3790
+        Jacs:          69       102        69
+        Ders:        4374      5184      4374
+  
+   21   Steps:        525       525       525
+        Jacs:          16        18        16
+        Ders:         643       724       643
+  
+   22   Steps:        460       460       460
+        Jacs:          14        15        14
+        Ders:         573       637       573
+  
+   23   Steps:        468       468       468
+        Jacs:          13        15        13
+        Ders:         570       639       570
+  
+   24   Steps:        363       363       363
+        Jacs:          11        14        11
+        Ders:         461       527       461
+  
+   25   Steps:        345       347       345
+        Jacs:          11        12        11
+        Ders:         443       491       443
+  
+   31   Steps:        493       513       493
+        Jacs:          12        20        12
+        Ders:         738       883       738
+  
+   32   Steps:        534       569       534
+        Jacs:          11        22        11
+        Ders:         726       898       726
+  
+   33   Steps:        593       610       593
+        Jacs:          17        21        17
+        Ders:         740       864       740
+  
+   34   Steps:        321       334       321
+        Jacs:          11        11        11
+        Ders:         449       491       449
+  
+   35   Steps:        425       366       425
+        Jacs:          12        14        12
+        Ders:         703       616       703
+  
+   36   Steps:        497       447       497
+        Jacs:          14        17        14
+        Ders:         717       665       717
+  
+   41   Steps:        452       457       452
+        Jacs:          14        16        14
+        Ders:         563       642       563
+  
+   42   Steps:        587       578       587
+        Jacs:          12        21        12
+        Ders:         714       759       714
+  
+   43   Steps:        510       476       510
+        Jacs:          14        19        14
+        Ders:         730       747       730
+  
+   44   Steps:        769       771       769
+        Jacs:          19        27        19
+        Ders:         956      1087       956
+  
+   45   Steps:        263       276       263
+        Jacs:           7        11         7
+        Ders:         350       421       350
+  
+   51   Steps:       1013       980      1013
+        Jacs:          31        42        31
+        Ders:        1603      1858      1603
+  
+   52   Steps:        285       285       285
+        Jacs:           9        12         9
+        Ders:         359       402       359
+  
+   53   Steps:        598       589       598
+        Jacs:          11        22        11
+        Ders:         721       873       721
+  
+   54   Steps:       1679      1750      1679
+        Jacs:          40        70        40
+        Ders:        2745      3002      2745
+  
+   55   Steps:        639       613       639
+        Jacs:          17        22        17
+        Ders:         948       989       948
+  
+
+
+                     Results for ITOL =  10
+
+ Integration Statistics Follow:
+ The original VODE Jacobian was used.
+ The ODEs were scaled.
+
+ Problem            Dense    Sparse    Banded
+    1   Steps:        591       591       591
+        Jacs:          17        18        17
+        Ders:         712       788       712
+  
+    2   Steps:        736       735       736
+        Jacs:          19        25        19
+        Ders:         990      1268       990
+  
+    3   Steps:        760       760       760
+        Jacs:          19        24        19
+        Ders:         908      1024       908
+  
+    4   Steps:        999       999       999
+        Jacs:          22        31        22
+        Ders:        1284      1684      1284
+  
+   11   Steps:       2933      2913      2933
+        Jacs:          56        77        56
+        Ders:        3230      3602      3230
+  
+   12   Steps:        558       558       558
+        Jacs:          15        18        15
+        Ders:         697       823       697
+  
+   13   Steps:        598       598       598
+        Jacs:          16        19        16
+        Ders:         735       867       735
+  
+   14   Steps:       1106      1106      1106
+        Jacs:          24        31        24
+        Ders:        1300      1528      1300
+  
+   15   Steps:       4572      4584      4572
+        Jacs:          83       123        83
+        Ders:        5276      6258      5276
+  
+   21   Steps:        735       734       735
+        Jacs:          19        24        19
+        Ders:         888      1001       888
+  
+   22   Steps:        661       661       661
+        Jacs:          18        22        18
+        Ders:         796       900       796
+  
+   23   Steps:        656       652       656
+        Jacs:          17        20        17
+        Ders:         783       881       783
+  
+   24   Steps:        517       517       517
+        Jacs:          15        17        15
+        Ders:         628       704       628
+  
+   25   Steps:        502       502       502
+        Jacs:          13        16        13
+        Ders:         602       678       602
+  
+   31   Steps:        609       531       609
+        Jacs:          13        20        13
+        Ders:         884       856       884
+  
+   32   Steps:        723       798       723
+        Jacs:          16        32        16
+        Ders:        1013      1301      1013
+  
+   33   Steps:        860       868       860
+        Jacs:          21        30        21
+        Ders:        1031      1206      1031
+  
+   34   Steps:        427       425       427
+        Jacs:          14        15        14
+        Ders:         608       642       608
+  
+   35   Steps:        584       488       584
+        Jacs:          15        18        15
+        Ders:         931       815       931
+  
+   36   Steps:        624       600       624
+        Jacs:          18        22        18
+        Ders:         885       902       885
+  
+   41   Steps:        635       738       635
+        Jacs:          17        39        17
+        Ders:         762      1217       762
+  
+   42   Steps:        835       833       835
+        Jacs:          18        27        18
+        Ders:         997      1059       997
+  
+   43   Steps:        638       622       638
+        Jacs:          17        21        17
+        Ders:         861       892       861
+  
+   44   Steps:       1122      1125      1122
+        Jacs:          24        36        24
+        Ders:        1337      1528      1337
+  
+   45   Steps:        344       361       344
+        Jacs:          10        14        10
+        Ders:         449       556       449
+  
+   51   Steps:       1496      1520      1496
+        Jacs:          36        55        36
+        Ders:        2279      2561      2279
+  
+   52   Steps:        388       397       388
+        Jacs:          11        14        11
+        Ders:         470       505       470
+  
+   53   Steps:        822       811       822
+        Jacs:          15        27        15
+        Ders:         960      1145       960
+  
+   54   Steps:       2337      2249      2337
+        Jacs:          50        88        50
+        Ders:        3662      3975      3662
+  
+   55   Steps:        838       785       838
+        Jacs:          23        28        23
+        Ders:        1214      1263      1214
+  
+
+
+                     Results for ITOL =  11
+
+ Integration Statistics Follow:
+ The original VODE Jacobian was used.
+ The ODEs were scaled.
+
+ Problem            Dense    Sparse    Banded
+    1   Steps:        868       868       868
+        Jacs:          21        25        21
+        Ders:        1012      1128      1012
+  
+    2   Steps:       1039      1027      1039
+        Jacs:          24        31        24
+        Ders:        1337      1655      1337
+  
+    3   Steps:       1065      1065      1065
+        Jacs:          23        33        23
+        Ders:        1228      1400      1228
+  
+    4   Steps:       1447      1447      1447
+        Jacs:          31        44        31
+        Ders:        1825      2395      1825
+  
+   11   Steps:       4306      4319      4306
+        Jacs:          78       114        78
+        Ders:        4710      5322      4710
+  
+   12   Steps:        789       789       789
+        Jacs:          19        25        19
+        Ders:         950      1136       950
+  
+   13   Steps:        846       846       846
+        Jacs:          19        26        19
+        Ders:        1005      1203      1005
+  
+   14   Steps:       1319      1319      1319
+        Jacs:          28        38        28
+        Ders:        1544      1832      1544
+  
+   15   Steps:       5843      5858      5843
+        Jacs:         104       160       104
+        Ders:        6685      7996      6685
+  
+   21   Steps:       1070      1070      1070
+        Jacs:          25        32        25
+        Ders:        1229      1386      1229
+  
+   22   Steps:        936       936       936
+        Jacs:          22        29        22
+        Ders:        1090      1235      1090
+  
+   23   Steps:        923       923       923
+        Jacs:          22        28        22
+        Ders:        1070      1208      1070
+  
+   24   Steps:        736       737       736
+        Jacs:          19        24        19
+        Ders:         872       989       872
+  
+   25   Steps:        717       717       717
+        Jacs:          17        23        17
+        Ders:         831       948       831
+  
+   31   Steps:        732       659       732
+        Jacs:          16        24        16
+        Ders:        1029       997      1029
+  
+   32   Steps:        955       938       955
+        Jacs:          20        32        20
+        Ders:        1286      1408      1286
+  
+   33   Steps:       1186      1205      1186
+        Jacs:          28        39        28
+        Ders:        1393      1620      1393
+  
+   34   Steps:        590       582       590
+        Jacs:          17        20        17
+        Ders:         772       836       772
+  
+   35   Steps:        734       678       734
+        Jacs:          18        24        18
+        Ders:        1088      1053      1088
+  
+   36   Steps:        888       828       888
+        Jacs:          22        29        22
+        Ders:        1201      1210      1201
+  
+   41   Steps:       1152      1282      1152
+        Jacs:         159       291       159
+        Ders:        2166      4261      2166
+  
+   42   Steps:       1196      1182      1196
+        Jacs:          25        36        25
+        Ders:        1396      1479      1396
+  
+   43   Steps:        821       763       821
+        Jacs:          21        26        21
+        Ders:        1072      1045      1072
+  
+   44   Steps:       1586      1585      1586
+        Jacs:          33        48        33
+        Ders:        1836      2087      1836
+  
+   45   Steps:        475       495       475
+        Jacs:          13        19        13
+        Ders:         603       737       603
+  
+   51   Steps:       2097      2076      2097
+        Jacs:          43        74        43
+        Ders:        3024      3525      3024
+  
+   52   Steps:        560       537       560
+        Jacs:          15        18        15
+        Ders:         670       683       670
+  
+   53   Steps:       1184      1171      1184
+        Jacs:          21        36        21
+        Ders:        1373      1614      1373
+  
+   54   Steps:       2972      2723      2972
+        Jacs:          58       101        58
+        Ders:        4407      4382      4407
+  
+   55   Steps:       1122      1128      1122
+        Jacs:          52        71        52
+        Ders:        1731      2140      1731
+  
+
+
+                     Results for ITOL =  12
+
+ Integration Statistics Follow:
+ The original VODE Jacobian was used.
+ The ODEs were scaled.
+
+ Problem            Dense    Sparse    Banded
+    1   Steps:       1239      1239      1239
+        Jacs:          28        36        28
+        Ders:        1417      1593      1417
+  
+    2   Steps:       1522      1522      1522
+        Jacs:          33        43        33
+        Ders:        1906      2383      1906
+  
+    3   Steps:       1599      1594      1599
+        Jacs:          33        46        33
+        Ders:        1817      2049      1817
+  
+    4   Steps:       2088      2088      2088
+        Jacs:          42        58        42
+        Ders:        2581      3321      2581
+  
+   11   Steps:       6205      6206      6205
+        Jacs:         111       159       111
+        Ders:        6767      7597      6767
+  
+   12   Steps:       1126      1126      1126
+        Jacs:          24        31        24
+        Ders:        1328      1556      1328
+  
+   13   Steps:       1254      1254      1254
+        Jacs:          27        36        27
+        Ders:        1463      1733      1463
+  
+   14   Steps:       2001      2001      2001
+        Jacs:          39        54        39
+        Ders:        2293      2707      2293
+  
+   15   Steps:       7516      7542      7516
+        Jacs:         132       199       132
+        Ders:        8566     10206      8566
+  
+   21   Steps:       1545      1545      1545
+        Jacs:          34        47        34
+        Ders:        1746      1987      1746
+  
+   22   Steps:       1384      1384      1384
+        Jacs:          31        38        31
+        Ders:        1577      1759      1577
+  
+   23   Steps:       1380      1380      1380
+        Jacs:          30        39        30
+        Ders:        1568      1761      1568
+  
+   24   Steps:       1077      1077      1077
+        Jacs:          25        32        25
+        Ders:        1229      1386      1229
+  
+   25   Steps:       1016      1016      1016
+        Jacs:          24        30        24
+        Ders:        1165      1310      1165
+  
+   31   Steps:        899       840       899
+        Jacs:          21        29        21
+        Ders:        1201      1197      1201
+  
+   32   Steps:       1263      1220      1263
+        Jacs:          25        42        25
+        Ders:        1607      1737      1607
+  
+   33   Steps:       1730      1733      1730
+        Jacs:          38        54        38
+        Ders:        1984      2263      1984
+  
+   34   Steps:        804       765       804
+        Jacs:          21        24        21
+        Ders:        1022      1056      1022
+  
+   35   Steps:        982       962       982
+        Jacs:          23        32        23
+        Ders:        1415      1424      1415
+  
+   36   Steps:       1142      1130      1142
+        Jacs:          28        39        28
+        Ders:        1445      1584      1445
+  
+   41   Steps:       1571      1464      1571
+        Jacs:         224       137       224
+        Ders:        2955      2848      2955
+  
+   42   Steps:       1748      1758      1748
+        Jacs:          33        53        33
+        Ders:        1980      2138      1980
+  
+   43   Steps:       1064      1071      1064
+        Jacs:          24        32        24
+        Ders:        1241      1371      1241
+  
+   44   Steps:       2282      2282      2282
+        Jacs:          44        67        44
+        Ders:        2599      2960      2599
+  
+   45   Steps:        684       675       684
+        Jacs:          16        21        16
+        Ders:         834       940       834
+  
+   51   Steps:       2913      2719      2913
+        Jacs:          56        89        56
+        Ders:        4059      4306      4059
+  
+   52   Steps:        790       780       790
+        Jacs:          19        25        19
+        Ders:         905       961       905
+  
+   53   Steps:       1676      1661      1676
+        Jacs:          29        49        29
+        Ders:        1900      2216      1900
+  
+   54   Steps:       3815      3656      3815
+        Jacs:          74       125        74
+        Ders:        5518      5767      5518
+  
+   55   Steps:       1527      1558      1527
+        Jacs:          66       114        66
+        Ders:        2230      3010      2230
+  
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        127 f-s =        192 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.47076D-04    0.45400D-04    0.16763D-05
+  2   -0.32451D-05    0.20612D-08    0.32471D-05
+  3    0.22841D-18    0.28230D-55    0.22841D-18
+  4    0.15703D-17    0.52358D-51    0.15703D-17
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        153 f-s =        249 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+00    0.99999D-01    0.12919D-05
+  2    0.20000D+00    0.20000D+00    0.25836D-05
+  3    0.30000D+00    0.30000D+00    0.36121D-05
+  4    0.40000D+00    0.40000D+00    0.42755D-05
+  5    0.50000D+00    0.50000D+00    0.45095D-05
+  6    0.60000D+00    0.60000D+00    0.42901D-05
+  7    0.70000D+00    0.70000D+00    0.36349D-05
+  8    0.80000D+00    0.80000D+00    0.26047D-05
+  9    0.90000D+00    0.90000D+00    0.13024D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        335
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        109
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        157 f-s =        226 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.36849D-09
+  2    0.13685D-01    0.13685D-01    0.31753D-08
+  3    0.15037D+01    0.15037D+01    0.40943D-06
+  4    0.13534D+00    0.13534D+00    0.91389D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        189 f-s =        291 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.36792D+00    0.36788D+00    0.35755D-04
+  2    0.12636D-06    0.12659D-13    0.12636D-06
+  3   -0.10000D-10    0.19115D-41    0.10000D-10
+  4   -0.10809D-15    0.22774D-54    0.10809D-15
+  5    0.10328D-19    0.00000D+00    0.10328D-19
+  6    0.87708D-28    0.00000D+00    0.87708D-28
+  7    0.18845D-30    0.00000D+00    0.18845D-30
+  8    0.71774D-35    0.00000D+00    0.71774D-35
+  9   -0.21962D-39    0.00000D+00    0.21962D-39
+ 10    0.44605D-45    0.00000D+00    0.44605D-45
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        390
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        111
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =        570 f-s =        713 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.14194D-04    0.10042D-08    0.14193D-04
+  2    0.82077D-04    0.18000D-07    0.82059D-04
+  3    0.51775D-33    0.00000D+00    0.51775D-33
+  4   -0.12039D-30   -0.60430D-78    0.12039D-30
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        107 f-s =        154 J-s =          4
+ Computed and reference solutions and absolute errors follow:
+  1   -0.18968D-09    0.61813D-30    0.18968D-09
+  2   -0.16812D-08    0.89637D-30    0.16812D-08
+  3    0.25452D-07    0.27384D-26    0.25452D-07
+  4    0.11727D-06    0.20612D-08    0.11521D-06
+  5    0.47978D-04    0.45400D-04    0.25783D-05
+  6    0.13534D+00    0.13534D+00    0.23688D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        194
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        115 f-s =        166 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1   -0.27832D-08   -0.10768D-27    0.27832D-08
+  2   -0.44455D-09    0.54550D-27    0.44455D-09
+  3    0.31585D-09    0.27385D-26    0.31585D-09
+  4   -0.12067D-06    0.20612D-08    0.12273D-06
+  5    0.45765D-04    0.45400D-04    0.36548D-06
+  6    0.13534D+00    0.13534D+00    0.89097D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        194
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        169 f-s =        223 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1   -0.19033D-12    0.13312D-21    0.19033D-12
+  2   -0.10521D-10   -0.23259D-21    0.10521D-10
+  3   -0.37707D-10    0.15179D-34    0.37707D-10
+  4    0.76153D-06    0.20612D-08    0.75946D-06
+  5    0.58685D-04    0.45400D-04    0.13286D-04
+  6    0.13534D+00    0.13534D+00    0.51649D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        194
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       2552 f-s =       3023 J-s =         46
+ Computed and reference solutions and absolute errors follow:
+  1   -0.11726D-03   -0.31006D-13    0.11726D-03
+  2   -0.22721D-03    0.38628D-13    0.22721D-03
+  3    0.18048D-34    0.18049D-34    0.50176D-39
+  4    0.20612D-08    0.20612D-08    0.38794D-16
+  5    0.45400D-04    0.45400D-04    0.44911D-13
+  6    0.13534D+00    0.13534D+00    0.97024D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        194
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        141 f-s =        199 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.40054D-03    0.40032D-03    0.21725D-06
+  2    0.40016D-03    0.40016D-03    0.54348D-09
+  3    0.40000D-03    0.40000D-03    0.29682D-12
+  4    0.20000D-01    0.20000D-01    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        137 f-s =        196 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.10060D-06
+  2    0.40000D-01    0.40000D-01    0.26613D-06
+  3    0.40016D-01    0.40016D-01    0.13896D-06
+  4    0.40032D-01    0.40032D-01    0.10179D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        127 f-s =        182 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.58233D-05
+  2    0.40000D+00    0.40000D+00    0.25734D-05
+  3    0.41600D+00    0.41600D+00    0.25912D-05
+  4    0.43330D+00    0.43331D+00    0.27705D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        155 f-s =        224 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.20441D-06
+  2    0.40000D+01    0.40000D+01    0.75102D-06
+  3    0.20000D+02    0.20000D+02    0.44356D-05
+  4    0.42000D+03    0.42000D+03    0.12272D-03
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        150 f-s =        207 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.44187D-07
+  2    0.80000D+01    0.80000D+01    0.40855D-06
+  3    0.13600D+03    0.13600D+03    0.15833D-04
+  4    0.37128D+05    0.37128D+05    0.26298D-01
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        153 f-s =        265 J-s =          4
+ Computed and reference solutions and absolute errors follow:
+  1    0.22243D+02    0.22242D+02    0.10988D-02
+  2    0.27112D+02    0.27111D+02    0.10756D-02
+  3    0.40000D+03    0.40000D+03    0.11369D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        139 f-s =        184 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.41589D-05
+  2    0.91852D-01    0.91855D-01    0.32405D-05
+  3    0.28416D+02    0.28416D+02    0.41585D-03
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        201 f-s =        313 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.30056D-05
+  2    0.56309D-02    0.56309D-02    0.52582D-08
+  3    0.36024D+00    0.36024D+00    0.30056D-05
+  4    0.31706D+00    0.31706D+00    0.15055D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =         21 f-s =         32 J-s =          1
+ Computed and reference solutions and absolute errors follow:
+  1    0.59763D+00    0.59765D+00    0.22714D-04
+  2    0.14024D+01    0.14023D+01    0.22714D-04
+  3   -0.18934D-05   -0.18934D-05    0.36304D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =         70 f-s =        117 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99622D+00   -0.99164D+00    0.45755D-02
+  2    0.98698D+00    0.98334D+00    0.36395D-02
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         62
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         95
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =         52 f-s =         83 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.85239D+00    0.85240D+00    0.74222D-05
+  2    0.14761D+00    0.14760D+00    0.74222D-05
+  3    0.57732D-07    0.57731D-07    0.90709D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         42 f-s =         72 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D-07    0.10000D-07    0.97106D-15
+  2    0.47575D-13   -0.16253D-18    0.47575D-13
+  3   -0.16565D-11    0.20260D-16    0.16566D-11
+  4   -0.50714D-11   -0.18531D-14    0.50696D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.20000D+01
+    0.00000D+00
+ Steps =        215 f-s =        318 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1   -0.11586D+01   -0.11587D+01    0.78411D-04
+  2    0.43050D+00    0.43047D+00    0.34522D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         62
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         95
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =        189 f-s =        316 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.42734D-02    0.42531D-02    0.20365D-04
+  2    0.53422D-02    0.53170D-02    0.25150D-04
+  3    0.26276D+02    0.26276D+02    0.42416D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.00000D+00
+   -0.20000D+01
+   -0.10000D+01
+   -0.10000D+01
+ Steps =        292 f-s =        424 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+02    0.20000D+02    0.52553D-04
+  2   -0.20000D+02   -0.20000D+02    0.52554D-04
+  3    0.52329D-04   -0.22476D-06    0.52554D-04
+  4   -0.52328D-04    0.22476D-06    0.52553D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.17600D-02
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         10 f-s =         29 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.21577D-02    0.16181D-02    0.53967D-03
+  2   -0.57503D-09    0.13822D-09    0.71325D-09
+  3   -0.25475D-10    0.82516D-11    0.33726D-10
+  4   -0.54955D-09    0.12997D-09    0.67952D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.76100D+03
+    0.00000D+00
+    0.60000D+03
+    0.10000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        273 f-s =        474 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1    0.12111D+04    0.12111D+04    0.98034D-02
+  2    0.13156D-04    0.12711D-04    0.44521D-06
+  3    0.12086D+04    0.12086D+04    0.97308D-02
+  4    0.32464D-03    0.32420D-03    0.44262D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        128
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =         81 f-s =        113 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.39130D+00    0.39127D+00    0.30169D-04
+  2    0.13301D-02    0.13300D-02    0.10244D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         66
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.40000D-05
+    0.10000D-05
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =         20 f-s =         34 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.15471D-11    0.32359D-12    0.12235D-11
+  2    0.12675D-06    0.23607D-06    0.10931D-06
+  3    0.87327D-13    0.76393D-13    0.10934D-13
+  4    0.87326D-06    0.76393D-06    0.10933D-06
+  5    0.95128D-05    0.32361D-05    0.62767D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        165
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        106
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.40000D+01
+    0.11000D+01
+    0.40000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       1180 f-s =       1914 J-s =         29
+ Computed and reference solutions and absolute errors follow:
+  1    0.44200D+01    0.44183D+01    0.17101D-02
+  2    0.12901D+01    0.12902D+01    0.15324D-03
+  3    0.30201D+01    0.30193D+01    0.81082D-03
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         95
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        100
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.33650D-06
+    0.82610D-02
+    0.16420D-02
+    0.93800D-05
+ Nonnegativity will be enforced for this problem.
+ Steps =         45 f-s =         71 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.17136D-06    0.17136D-06    0.24133D-13
+  2    0.37136D-02    0.37136D-02    0.63098D-08
+  3    0.61893D-02    0.61893D-02    0.84776D-08
+  4    0.95451D-05    0.95451D-05    0.24174D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        128
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        127 f-s =        208 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.47076D-04    0.45400D-04    0.16763D-05
+  2   -0.32451D-05    0.20612D-08    0.32471D-05
+  3    0.22841D-18    0.28230D-55    0.22841D-18
+  4    0.15703D-17    0.52358D-51    0.15703D-17
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        153 f-s =        312 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+00    0.99999D-01    0.12910D-05
+  2    0.20000D+00    0.20000D+00    0.25819D-05
+  3    0.30000D+00    0.30000D+00    0.36097D-05
+  4    0.40000D+00    0.40000D+00    0.42726D-05
+  5    0.50000D+00    0.50000D+00    0.45063D-05
+  6    0.60000D+00    0.60000D+00    0.42870D-05
+  7    0.70000D+00    0.70000D+00    0.36323D-05
+  8    0.80000D+00    0.80000D+00    0.26028D-05
+  9    0.90000D+00    0.90000D+00    0.13015D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        425
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =       1072
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        157 f-s =        254 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.34797D-09
+  2    0.13685D-01    0.13685D-01    0.29447D-08
+  3    0.15037D+01    0.15037D+01    0.38662D-06
+  4    0.13534D+00    0.13534D+00    0.91616D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        189 f-s =        391 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.36792D+00    0.36788D+00    0.35755D-04
+  2    0.12636D-06    0.12659D-13    0.12636D-06
+  3   -0.10000D-10    0.19115D-41    0.10000D-10
+  4   -0.10809D-15    0.22774D-54    0.10809D-15
+  5    0.10328D-19    0.00000D+00    0.10328D-19
+  6    0.87706D-28    0.00000D+00    0.87706D-28
+  7    0.18845D-30    0.00000D+00    0.18845D-30
+  8    0.71774D-35    0.00000D+00    0.71774D-35
+  9   -0.21962D-39    0.00000D+00    0.21962D-39
+ 10    0.44605D-45    0.00000D+00    0.44605D-45
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        500
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =       1271
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =        566 f-s =        811 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1   -0.20428D-04    0.10042D-08    0.20429D-04
+  2   -0.16597D-04    0.18000D-07    0.16615D-04
+  3   -0.14376D-39    0.00000D+00    0.14376D-39
+  4    0.12003D-37   -0.60430D-78    0.12003D-37
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        107 f-s =        190 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1   -0.18969D-09    0.61813D-30    0.18969D-09
+  2   -0.16812D-08    0.89637D-30    0.16812D-08
+  3    0.25452D-07    0.27384D-26    0.25452D-07
+  4    0.11727D-06    0.20612D-08    0.11521D-06
+  5    0.47978D-04    0.45400D-04    0.25783D-05
+  6    0.13534D+00    0.13534D+00    0.23688D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        236
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        583
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        115 f-s =        196 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1   -0.27832D-08   -0.10768D-27    0.27832D-08
+  2   -0.44455D-09    0.54550D-27    0.44455D-09
+  3    0.31585D-09    0.27385D-26    0.31585D-09
+  4   -0.12067D-06    0.20612D-08    0.12273D-06
+  5    0.45765D-04    0.45400D-04    0.36548D-06
+  6    0.13534D+00    0.13534D+00    0.89097D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        236
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        583
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        169 f-s =        289 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1   -0.19037D-12    0.13312D-21    0.19037D-12
+  2   -0.10521D-10   -0.23259D-21    0.10521D-10
+  3   -0.37706D-10    0.15179D-34    0.37706D-10
+  4    0.76152D-06    0.20612D-08    0.75946D-06
+  5    0.58685D-04    0.45400D-04    0.13286D-04
+  6    0.13534D+00    0.13534D+00    0.51649D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        236
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        583
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       2552 f-s =       3587 J-s =         70
+ Computed and reference solutions and absolute errors follow:
+  1   -0.11726D-03   -0.31006D-13    0.11726D-03
+  2   -0.22721D-03    0.38628D-13    0.22721D-03
+  3    0.18048D-34    0.18049D-34    0.50176D-39
+  4    0.20612D-08    0.20612D-08    0.38794D-16
+  5    0.45400D-04    0.45400D-04    0.44911D-13
+  6    0.13534D+00    0.13534D+00    0.97023D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        236
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        583
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        138 f-s =        214 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.39878D-03    0.40032D-03    0.15396D-05
+  2    0.40016D-03    0.40016D-03    0.23293D-09
+  3    0.40000D-03    0.40000D-03    0.65269D-16
+  4    0.20000D-01    0.20000D-01    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        136 f-s =        211 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.44573D-05
+  2    0.39999D-01    0.40000D-01    0.52529D-06
+  3    0.40016D-01    0.40016D-01    0.24479D-06
+  4    0.40032D-01    0.40032D-01    0.22382D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        128 f-s =        199 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.13384D-05
+  2    0.40000D+00    0.40000D+00    0.46498D-06
+  3    0.41600D+00    0.41600D+00    0.50369D-06
+  4    0.43331D+00    0.43331D+00    0.54350D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        149 f-s =        237 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.31329D-07
+  2    0.40000D+01    0.40000D+01    0.14647D-06
+  3    0.20000D+02    0.20000D+02    0.73913D-05
+  4    0.42000D+03    0.42000D+03    0.15539D-02
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        151 f-s =        236 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.71167D-07
+  2    0.80000D+01    0.80000D+01    0.63269D-06
+  3    0.13600D+03    0.13600D+03    0.21350D-04
+  4    0.37128D+05    0.37128D+05    0.11753D-01
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        146 f-s =        294 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.22243D+02    0.22242D+02    0.68249D-03
+  2    0.27112D+02    0.27111D+02    0.84515D-03
+  3    0.40000D+03    0.40000D+03    0.17053D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        160 f-s =        266 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.71584D+00    0.71583D+00    0.93980D-05
+  2    0.91859D-01    0.91855D-01    0.36574D-05
+  3    0.28415D+02    0.28416D+02    0.93984D-03
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        197 f-s =        320 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.12985D-06
+  2    0.56309D-02    0.56309D-02    0.90679D-10
+  3    0.36024D+00    0.36024D+00    0.12985D-06
+  4    0.31706D+00    0.31706D+00    0.64968D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =         21 f-s =         53 J-s =          4
+ Computed and reference solutions and absolute errors follow:
+  1    0.59761D+00    0.59765D+00    0.42350D-04
+  2    0.14024D+01    0.14023D+01    0.42351D-04
+  3   -0.18933D-05   -0.18934D-05    0.12630D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =         71 f-s =        121 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99622D+00   -0.99164D+00    0.45789D-02
+  2    0.98699D+00    0.98334D+00    0.36557D-02
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         68
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        183
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =         46 f-s =         93 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.26880D-05
+  2    0.14760D+00    0.14760D+00    0.26880D-05
+  3    0.57731D-07    0.57731D-07    0.34059D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         42 f-s =         76 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D-07    0.10000D-07    0.97123D-15
+  2    0.47580D-13   -0.16253D-18    0.47580D-13
+  3   -0.16566D-11    0.20260D-16    0.16567D-11
+  4   -0.50806D-11   -0.18531D-14    0.50787D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.20000D+01
+    0.00000D+00
+ Steps =        205 f-s =        328 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1   -0.11586D+01   -0.11587D+01    0.70042D-04
+  2    0.43047D+00    0.43047D+00    0.29209D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         68
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        183
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =        138 f-s =        223 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.42420D-02    0.42531D-02    0.11018D-04
+  2    0.53043D-02    0.53170D-02    0.12744D-04
+  3    0.26277D+02    0.26276D+02    0.17876D-03
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.00000D+00
+   -0.20000D+01
+   -0.10000D+01
+   -0.10000D+01
+ Steps =        287 f-s =        444 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+02    0.20000D+02    0.86248D-06
+  2   -0.20000D+02   -0.20000D+02    0.88552D-06
+  3   -0.96585D-06   -0.22476D-06    0.74109D-06
+  4    0.12322D-05    0.22476D-06    0.10074D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.17600D-02
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         10 f-s =         65 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.16256D-02    0.16181D-02    0.75382D-05
+  2    0.13947D-09    0.13822D-09    0.12510D-11
+  3    0.82857D-11    0.82516D-11    0.34084D-13
+  4    0.13119D-09    0.12997D-09    0.12169D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.76100D+03
+    0.00000D+00
+    0.60000D+03
+    0.10000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        348 f-s =        724 J-s =         24
+ Computed and reference solutions and absolute errors follow:
+  1    0.12111D+04    0.12111D+04    0.90740D-02
+  2    0.54037D-05    0.12711D-04    0.73075D-05
+  3    0.12086D+04    0.12086D+04    0.90079D-02
+  4    0.31692D-03    0.32420D-03    0.72808D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        148
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        351
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =         81 f-s =        130 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.39123D+00    0.39127D+00    0.44281D-04
+  2    0.13298D-02    0.13300D-02    0.15040D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         72
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        185
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.40000D-05
+    0.10000D-05
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =         20 f-s =         54 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.15476D-11    0.32359D-12    0.12240D-11
+  2    0.12676D-06    0.23607D-06    0.10931D-06
+  3    0.87325D-13    0.76393D-13    0.10932D-13
+  4    0.87325D-06    0.76393D-06    0.10932D-06
+  5    0.95127D-05    0.32361D-05    0.62766D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        195
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        461
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.40000D+01
+    0.11000D+01
+    0.40000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       1004 f-s =       1864 J-s =         45
+ Computed and reference solutions and absolute errors follow:
+  1    0.44196D+01    0.44183D+01    0.12704D-02
+  2    0.12901D+01    0.12902D+01    0.11661D-03
+  3    0.30199D+01    0.30193D+01    0.62094D-03
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        259
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.33650D-06
+    0.82610D-02
+    0.16420D-02
+    0.93800D-05
+ Nonnegativity will be enforced for this problem.
+ Steps =         88 f-s =        152 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.17136D-06    0.17136D-06    0.18684D-15
+  2    0.37136D-02    0.37136D-02    0.41172D-11
+  3    0.61893D-02    0.61893D-02    0.69075D-11
+  4    0.95451D-05    0.95451D-05    0.18709D-15
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        148
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        351
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        127 f-s =        192 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.47076D-04    0.45400D-04    0.16763D-05
+  2   -0.32451D-05    0.20612D-08    0.32471D-05
+  3    0.22841D-18    0.28230D-55    0.22841D-18
+  4    0.15703D-17    0.52358D-51    0.15703D-17
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        153 f-s =        249 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+00    0.99999D-01    0.12919D-05
+  2    0.20000D+00    0.20000D+00    0.25836D-05
+  3    0.30000D+00    0.30000D+00    0.36121D-05
+  4    0.40000D+00    0.40000D+00    0.42755D-05
+  5    0.50000D+00    0.50000D+00    0.45095D-05
+  6    0.60000D+00    0.60000D+00    0.42901D-05
+  7    0.70000D+00    0.70000D+00    0.36349D-05
+  8    0.80000D+00    0.80000D+00    0.26047D-05
+  9    0.90000D+00    0.90000D+00    0.13024D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        551
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        109
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        157 f-s =        226 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.36849D-09
+  2    0.13685D-01    0.13685D-01    0.31753D-08
+  3    0.15037D+01    0.15037D+01    0.40943D-06
+  4    0.13534D+00    0.13534D+00    0.91389D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        189 f-s =        291 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.36792D+00    0.36788D+00    0.35755D-04
+  2    0.12636D-06    0.12659D-13    0.12636D-06
+  3   -0.10000D-10    0.19115D-41    0.10000D-10
+  4   -0.10809D-15    0.22774D-54    0.10809D-15
+  5    0.10328D-19    0.00000D+00    0.10328D-19
+  6    0.87708D-28    0.00000D+00    0.87708D-28
+  7    0.18845D-30    0.00000D+00    0.18845D-30
+  8    0.71774D-35    0.00000D+00    0.71774D-35
+  9   -0.21962D-39    0.00000D+00    0.21962D-39
+ 10    0.44605D-45    0.00000D+00    0.44605D-45
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        660
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        111
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =        570 f-s =        713 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.14194D-04    0.10042D-08    0.14193D-04
+  2    0.82077D-04    0.18000D-07    0.82059D-04
+  3    0.51775D-33    0.00000D+00    0.51775D-33
+  4   -0.12039D-30   -0.60430D-78    0.12039D-30
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        107 f-s =        154 J-s =          4
+ Computed and reference solutions and absolute errors follow:
+  1   -0.18968D-09    0.61813D-30    0.18968D-09
+  2   -0.16812D-08    0.89637D-30    0.16812D-08
+  3    0.25452D-07    0.27384D-26    0.25452D-07
+  4    0.11727D-06    0.20612D-08    0.11521D-06
+  5    0.47978D-04    0.45400D-04    0.25783D-05
+  6    0.13534D+00    0.13534D+00    0.23688D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        284
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        115 f-s =        166 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1   -0.27832D-08   -0.10768D-27    0.27832D-08
+  2   -0.44455D-09    0.54550D-27    0.44455D-09
+  3    0.31585D-09    0.27385D-26    0.31585D-09
+  4   -0.12067D-06    0.20612D-08    0.12273D-06
+  5    0.45765D-04    0.45400D-04    0.36548D-06
+  6    0.13534D+00    0.13534D+00    0.89097D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        284
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        169 f-s =        223 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1   -0.19033D-12    0.13312D-21    0.19033D-12
+  2   -0.10521D-10   -0.23259D-21    0.10521D-10
+  3   -0.37707D-10    0.15179D-34    0.37707D-10
+  4    0.76153D-06    0.20612D-08    0.75946D-06
+  5    0.58685D-04    0.45400D-04    0.13286D-04
+  6    0.13534D+00    0.13534D+00    0.51649D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        284
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       2552 f-s =       3023 J-s =         46
+ Computed and reference solutions and absolute errors follow:
+  1   -0.11726D-03   -0.31006D-13    0.11726D-03
+  2   -0.22721D-03    0.38628D-13    0.22721D-03
+  3    0.18048D-34    0.18049D-34    0.50176D-39
+  4    0.20612D-08    0.20612D-08    0.38794D-16
+  5    0.45400D-04    0.45400D-04    0.44911D-13
+  6    0.13534D+00    0.13534D+00    0.97024D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        284
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        141 f-s =        199 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.40054D-03    0.40032D-03    0.21725D-06
+  2    0.40016D-03    0.40016D-03    0.54348D-09
+  3    0.40000D-03    0.40000D-03    0.29682D-12
+  4    0.20000D-01    0.20000D-01    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        137 f-s =        196 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.10060D-06
+  2    0.40000D-01    0.40000D-01    0.26613D-06
+  3    0.40016D-01    0.40016D-01    0.13896D-06
+  4    0.40032D-01    0.40032D-01    0.10179D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        127 f-s =        182 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.58233D-05
+  2    0.40000D+00    0.40000D+00    0.25734D-05
+  3    0.41600D+00    0.41600D+00    0.25912D-05
+  4    0.43330D+00    0.43331D+00    0.27705D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        155 f-s =        224 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.20441D-06
+  2    0.40000D+01    0.40000D+01    0.75102D-06
+  3    0.20000D+02    0.20000D+02    0.44356D-05
+  4    0.42000D+03    0.42000D+03    0.12272D-03
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        150 f-s =        207 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.44187D-07
+  2    0.80000D+01    0.80000D+01    0.40855D-06
+  3    0.13600D+03    0.13600D+03    0.15833D-04
+  4    0.37128D+05    0.37128D+05    0.26298D-01
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        153 f-s =        265 J-s =          4
+ Computed and reference solutions and absolute errors follow:
+  1    0.22243D+02    0.22242D+02    0.10988D-02
+  2    0.27112D+02    0.27111D+02    0.10756D-02
+  3    0.40000D+03    0.40000D+03    0.11369D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        139 f-s =        184 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.41589D-05
+  2    0.91852D-01    0.91855D-01    0.32405D-05
+  3    0.28416D+02    0.28416D+02    0.41585D-03
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        201 f-s =        313 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.30056D-05
+  2    0.56309D-02    0.56309D-02    0.52582D-08
+  3    0.36024D+00    0.36024D+00    0.30056D-05
+  4    0.31706D+00    0.31706D+00    0.15055D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =         21 f-s =         32 J-s =          1
+ Computed and reference solutions and absolute errors follow:
+  1    0.59763D+00    0.59765D+00    0.22714D-04
+  2    0.14024D+01    0.14023D+01    0.22714D-04
+  3   -0.18934D-05   -0.18934D-05    0.36304D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =         70 f-s =        117 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99622D+00   -0.99164D+00    0.45755D-02
+  2    0.98698D+00    0.98334D+00    0.36395D-02
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         68
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         95
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =         52 f-s =         83 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.85239D+00    0.85240D+00    0.74222D-05
+  2    0.14761D+00    0.14760D+00    0.74222D-05
+  3    0.57732D-07    0.57731D-07    0.90709D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         42 f-s =         72 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D-07    0.10000D-07    0.97106D-15
+  2    0.47575D-13   -0.16253D-18    0.47575D-13
+  3   -0.16565D-11    0.20260D-16    0.16566D-11
+  4   -0.50714D-11   -0.18531D-14    0.50696D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.20000D+01
+    0.00000D+00
+ Steps =        215 f-s =        318 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1   -0.11586D+01   -0.11587D+01    0.78411D-04
+  2    0.43050D+00    0.43047D+00    0.34522D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         68
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         95
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =        189 f-s =        316 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.42734D-02    0.42531D-02    0.20365D-04
+  2    0.53422D-02    0.53170D-02    0.25150D-04
+  3    0.26276D+02    0.26276D+02    0.42416D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.00000D+00
+   -0.20000D+01
+   -0.10000D+01
+   -0.10000D+01
+ Steps =        292 f-s =        424 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+02    0.20000D+02    0.52553D-04
+  2   -0.20000D+02   -0.20000D+02    0.52554D-04
+  3    0.52329D-04   -0.22476D-06    0.52554D-04
+  4   -0.52328D-04    0.22476D-06    0.52553D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.17600D-02
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         10 f-s =         29 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.21577D-02    0.16181D-02    0.53967D-03
+  2   -0.57503D-09    0.13822D-09    0.71325D-09
+  3   -0.25475D-10    0.82516D-11    0.33726D-10
+  4   -0.54955D-09    0.12997D-09    0.67952D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.76100D+03
+    0.00000D+00
+    0.60000D+03
+    0.10000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        273 f-s =        474 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1    0.12111D+04    0.12111D+04    0.98034D-02
+  2    0.13156D-04    0.12711D-04    0.44521D-06
+  3    0.12086D+04    0.12086D+04    0.97308D-02
+  4    0.32464D-03    0.32420D-03    0.44262D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =         81 f-s =        113 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.39130D+00    0.39127D+00    0.30169D-04
+  2    0.13301D-02    0.13300D-02    0.10244D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         72
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.40000D-05
+    0.10000D-05
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =         20 f-s =         34 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.15471D-11    0.32359D-12    0.12235D-11
+  2    0.12675D-06    0.23607D-06    0.10931D-06
+  3    0.87327D-13    0.76393D-13    0.10934D-13
+  4    0.87326D-06    0.76393D-06    0.10933D-06
+  5    0.95128D-05    0.32361D-05    0.62767D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        225
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        106
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.40000D+01
+    0.11000D+01
+    0.40000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       1180 f-s =       1914 J-s =         29
+ Computed and reference solutions and absolute errors follow:
+  1    0.44200D+01    0.44183D+01    0.17101D-02
+  2    0.12901D+01    0.12902D+01    0.15324D-03
+  3    0.30201D+01    0.30193D+01    0.81082D-03
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        113
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        100
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.33650D-06
+    0.82610D-02
+    0.16420D-02
+    0.93800D-05
+ Nonnegativity will be enforced for this problem.
+ Steps =         45 f-s =         71 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.17136D-06    0.17136D-06    0.24133D-13
+  2    0.37136D-02    0.37136D-02    0.63098D-08
+  3    0.61893D-02    0.61893D-02    0.84776D-08
+  4    0.95451D-05    0.95451D-05    0.24174D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        168 f-s =        242 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.45705D-04    0.45400D-04    0.30489D-06
+  2   -0.90865D-08    0.20612D-08    0.11148D-07
+  3    0.24157D-22    0.28230D-55    0.24157D-22
+  4   -0.15644D-21    0.52358D-51    0.15644D-21
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        195 f-s =        311 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D-01    0.99999D-01    0.54992D-07
+  2    0.20000D+00    0.20000D+00    0.10998D-06
+  3    0.30000D+00    0.30000D+00    0.15608D-06
+  4    0.40000D+00    0.40000D+00    0.18851D-06
+  5    0.50000D+00    0.50000D+00    0.20318D-06
+  6    0.60000D+00    0.60000D+00    0.19717D-06
+  7    0.70000D+00    0.70000D+00    0.16972D-06
+  8    0.80000D+00    0.80000D+00    0.12284D-06
+  9    0.90000D+00    0.90000D+00    0.61422D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        335
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        109
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        210 f-s =        294 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13533D-02   -0.13534D-02    0.13921D-07
+  2    0.13685D-01    0.13685D-01    0.14358D-06
+  3    0.15037D+01    0.15037D+01    0.15468D-04
+  4    0.13533D+00    0.13534D+00    0.11139D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        254 f-s =        390 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.76940D-06
+  2    0.34439D-06    0.12659D-13    0.34439D-06
+  3   -0.44767D-10    0.19115D-41    0.44767D-10
+  4   -0.33848D-18    0.22774D-54    0.33848D-18
+  5   -0.21641D-22    0.00000D+00    0.21641D-22
+  6    0.28625D-31    0.00000D+00    0.28625D-31
+  7   -0.17291D-39    0.00000D+00    0.17291D-39
+  8   -0.77559D-46    0.00000D+00    0.77559D-46
+  9    0.19301D-53    0.00000D+00    0.19301D-53
+ 10    0.40515D-60    0.00000D+00    0.40515D-60
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        390
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        111
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =        763 f-s =        959 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1    0.88645D-06    0.10042D-08    0.88545D-06
+  2   -0.67775D-05    0.18000D-07    0.67955D-05
+  3   -0.21192D-46    0.00000D+00    0.21192D-46
+  4   -0.17966D-43   -0.60430D-78    0.17966D-43
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        137 f-s =        201 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.13210D-11    0.61813D-30    0.13210D-11
+  2   -0.47809D-12    0.89637D-30    0.47809D-12
+  3    0.17546D-08    0.27384D-26    0.17546D-08
+  4    0.28827D-07    0.20612D-08    0.26765D-07
+  5    0.47562D-04    0.45400D-04    0.21619D-05
+  6    0.13534D+00    0.13534D+00    0.13840D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        194
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        148 f-s =        207 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1   -0.10780D-10   -0.10768D-27    0.10780D-10
+  2   -0.17657D-09    0.54550D-27    0.17657D-09
+  3   -0.25324D-09    0.27385D-26    0.25324D-09
+  4    0.26160D-07    0.20612D-08    0.24099D-07
+  5    0.47467D-04    0.45400D-04    0.20675D-05
+  6    0.13534D+00    0.13534D+00    0.13337D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        194
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        303 f-s =        386 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.27743D-10    0.13312D-21    0.27743D-10
+  2    0.47648D-10   -0.23259D-21    0.47648D-10
+  3   -0.20095D-14    0.15179D-34    0.20095D-14
+  4    0.20735D-06    0.20612D-08    0.20528D-06
+  5    0.47184D-04    0.45400D-04    0.17836D-05
+  6    0.13534D+00    0.13534D+00    0.95883D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        194
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       2684 f-s =       3153 J-s =         49
+ Computed and reference solutions and absolute errors follow:
+  1    0.30968D-05   -0.31006D-13    0.30968D-05
+  2    0.61734D-05    0.38628D-13    0.61734D-05
+  3    0.18048D-34    0.18049D-34    0.52734D-39
+  4    0.20612D-08    0.20612D-08    0.54548D-16
+  5    0.45400D-04    0.45400D-04    0.30391D-13
+  6    0.13534D+00    0.13534D+00    0.88793D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        194
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        186 f-s =        255 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.40036D-03    0.40032D-03    0.33301D-07
+  2    0.40016D-03    0.40016D-03    0.11796D-14
+  3    0.40000D-03    0.40000D-03    0.54210D-19
+  4    0.20000D-01    0.20000D-01    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        178 f-s =        253 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.21868D-07
+  2    0.40000D-01    0.40000D-01    0.13655D-08
+  3    0.40016D-01    0.40016D-01    0.90119D-09
+  4    0.40032D-01    0.40032D-01    0.88534D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        174 f-s =        249 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.23894D-07
+  2    0.40000D+00    0.40000D+00    0.35876D-09
+  3    0.41600D+00    0.41600D+00    0.11849D-07
+  4    0.43331D+00    0.43331D+00    0.21393D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        202 f-s =        315 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.40081D-07
+  2    0.40000D+01    0.40000D+01    0.17524D-06
+  3    0.20000D+02    0.20000D+02    0.15440D-05
+  4    0.42000D+03    0.42000D+03    0.59623D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        199 f-s =        299 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.61338D-07
+  2    0.80000D+01    0.80000D+01    0.51083D-06
+  3    0.13600D+03    0.13600D+03    0.14301D-04
+  4    0.37128D+05    0.37128D+05    0.35452D-02
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        208 f-s =        366 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.22242D+02    0.22242D+02    0.13529D-03
+  2    0.27111D+02    0.27111D+02    0.23503D-03
+  3    0.40000D+03    0.40000D+03    0.11369D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        263 f-s =        404 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.92475D-06
+  2    0.91855D-01    0.91855D-01    0.17024D-06
+  3    0.28416D+02    0.28416D+02    0.92473D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        265 f-s =        382 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.27665D-06
+  2    0.56309D-02    0.56309D-02    0.48940D-09
+  3    0.36024D+00    0.36024D+00    0.27665D-06
+  4    0.31706D+00    0.31706D+00    0.13857D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =         30 f-s =         45 J-s =          1
+ Computed and reference solutions and absolute errors follow:
+  1    0.59766D+00    0.59765D+00    0.50323D-05
+  2    0.14023D+01    0.14023D+01    0.50323D-05
+  3   -0.18934D-05   -0.18934D-05    0.18292D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =         88 f-s =        146 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99163D+00   -0.99164D+00    0.12630D-04
+  2    0.98332D+00    0.98334D+00    0.13796D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         62
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         95
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =         61 f-s =         97 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.44471D-05
+  2    0.14760D+00    0.14760D+00    0.44471D-05
+  3    0.57730D-07    0.57731D-07    0.57078D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         86 f-s =        138 J-s =          4
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D-07    0.10000D-07    0.16002D-15
+  2   -0.17694D-13   -0.16253D-18    0.17694D-13
+  3    0.56855D-11    0.20260D-16    0.56855D-11
+  4   -0.10704D-08   -0.18531D-14    0.10704D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.20000D+01
+    0.00000D+00
+ Steps =        269 f-s =        402 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1   -0.11586D+01   -0.11587D+01    0.77411D-04
+  2    0.43054D+00    0.43047D+00    0.73975D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         62
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         95
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =        210 f-s =        298 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.42518D-02    0.42531D-02    0.12793D-05
+  2    0.53154D-02    0.53170D-02    0.16210D-05
+  3    0.26276D+02    0.26276D+02    0.48663D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.00000D+00
+   -0.20000D+01
+   -0.10000D+01
+   -0.10000D+01
+ Steps =        377 f-s =        527 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+02    0.20000D+02    0.96148D-06
+  2   -0.20000D+02   -0.20000D+02    0.96148D-06
+  3    0.73670D-06   -0.22476D-06    0.96146D-06
+  4   -0.73674D-06    0.22476D-06    0.96150D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.17600D-02
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         15 f-s =         34 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.16162D-02    0.16181D-02    0.18276D-05
+  2    0.14133D-09    0.13822D-09    0.31072D-11
+  3    0.84403D-11    0.82516D-11    0.18870D-12
+  4    0.13289D-09    0.12997D-09    0.29185D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.76100D+03
+    0.00000D+00
+    0.60000D+03
+    0.10000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        432 f-s =        764 J-s =         21
+ Computed and reference solutions and absolute errors follow:
+  1    0.12111D+04    0.12111D+04    0.14824D-02
+  2    0.12711D-04    0.12711D-04    0.18621D-09
+  3    0.12086D+04    0.12086D+04    0.14713D-02
+  4    0.32420D-03    0.32420D-03    0.18563D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        128
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        102 f-s =        141 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.39128D+00    0.39127D+00    0.78947D-05
+  2    0.13300D-02    0.13300D-02    0.26820D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         66
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.40000D-05
+    0.10000D-05
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =         27 f-s =         45 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.00000D+00    0.32359D-12    0.32359D-12
+  2    0.29142D-06    0.23607D-06    0.55353D-07
+  3    0.34530D-12    0.76393D-13    0.26890D-12
+  4    0.70882D-06    0.76393D-06    0.55110D-07
+  5    0.29320D-05    0.32361D-05    0.30404D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        165
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        106
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.40000D+01
+    0.11000D+01
+    0.40000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       1348 f-s =       2337 J-s =         35
+ Computed and reference solutions and absolute errors follow:
+  1    0.44185D+01    0.44183D+01    0.20587D-03
+  2    0.12902D+01    0.12902D+01    0.19429D-04
+  3    0.30194D+01    0.30193D+01    0.88724D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         95
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        100
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.33650D-06
+    0.82610D-02
+    0.16420D-02
+    0.93800D-05
+ Nonnegativity will be enforced for this problem.
+ Steps =         70 f-s =        103 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.17136D-06    0.17136D-06    0.30230D-13
+  2    0.37136D-02    0.37136D-02    0.50903D-08
+  3    0.61893D-02    0.61893D-02    0.70973D-08
+  4    0.95451D-05    0.95451D-05    0.30292D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        128
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        168 f-s =        278 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.45705D-04    0.45400D-04    0.30488D-06
+  2   -0.90858D-08    0.20612D-08    0.11147D-07
+  3    0.24100D-22    0.28230D-55    0.24100D-22
+  4   -0.15607D-21    0.52358D-51    0.15607D-21
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        195 f-s =        391 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D-01    0.99999D-01    0.55209D-07
+  2    0.20000D+00    0.20000D+00    0.10988D-06
+  3    0.30000D+00    0.30000D+00    0.15571D-06
+  4    0.40000D+00    0.40000D+00    0.18820D-06
+  5    0.50000D+00    0.50000D+00    0.20257D-06
+  6    0.60000D+00    0.60000D+00    0.19654D-06
+  7    0.70000D+00    0.70000D+00    0.16920D-06
+  8    0.80000D+00    0.80000D+00    0.12248D-06
+  9    0.90000D+00    0.90000D+00    0.61245D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        425
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =       1072
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        210 f-s =        334 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13533D-02   -0.13534D-02    0.13932D-07
+  2    0.13685D-01    0.13685D-01    0.14370D-06
+  3    0.15037D+01    0.15037D+01    0.15480D-04
+  4    0.13533D+00    0.13534D+00    0.11144D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        254 f-s =        530 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.76940D-06
+  2    0.34439D-06    0.12659D-13    0.34439D-06
+  3   -0.44767D-10    0.19115D-41    0.44767D-10
+  4   -0.33857D-18    0.22774D-54    0.33857D-18
+  5   -0.21641D-22    0.00000D+00    0.21641D-22
+  6    0.28625D-31    0.00000D+00    0.28625D-31
+  7   -0.17291D-39    0.00000D+00    0.17291D-39
+  8   -0.77559D-46    0.00000D+00    0.77559D-46
+  9    0.19301D-53    0.00000D+00    0.19301D-53
+ 10    0.40515D-60    0.00000D+00    0.40515D-60
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        500
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =       1271
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =        763 f-s =       1099 J-s =         27
+ Computed and reference solutions and absolute errors follow:
+  1    0.88636D-06    0.10042D-08    0.88536D-06
+  2   -0.67739D-05    0.18000D-07    0.67919D-05
+  3   -0.21134D-46    0.00000D+00    0.21134D-46
+  4   -0.17809D-43   -0.60430D-78    0.17809D-43
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        137 f-s =        231 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.13210D-11    0.61813D-30    0.13210D-11
+  2   -0.47809D-12    0.89637D-30    0.47809D-12
+  3    0.17546D-08    0.27384D-26    0.17546D-08
+  4    0.28827D-07    0.20612D-08    0.26765D-07
+  5    0.47562D-04    0.45400D-04    0.21619D-05
+  6    0.13534D+00    0.13534D+00    0.13840D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        236
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        583
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        148 f-s =        249 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1   -0.10780D-10   -0.10768D-27    0.10780D-10
+  2   -0.17657D-09    0.54550D-27    0.17657D-09
+  3   -0.25324D-09    0.27385D-26    0.25324D-09
+  4    0.26160D-07    0.20612D-08    0.24099D-07
+  5    0.47467D-04    0.45400D-04    0.20675D-05
+  6    0.13534D+00    0.13534D+00    0.13337D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        236
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        583
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        303 f-s =        464 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.27743D-10    0.13312D-21    0.27743D-10
+  2    0.47648D-10   -0.23259D-21    0.47648D-10
+  3   -0.20095D-14    0.15179D-34    0.20095D-14
+  4    0.20735D-06    0.20612D-08    0.20528D-06
+  5    0.47184D-04    0.45400D-04    0.17836D-05
+  6    0.13534D+00    0.13534D+00    0.95883D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        236
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        583
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       2684 f-s =       3723 J-s =         72
+ Computed and reference solutions and absolute errors follow:
+  1    0.30963D-05   -0.31006D-13    0.30963D-05
+  2    0.61736D-05    0.38628D-13    0.61736D-05
+  3    0.18048D-34    0.18049D-34    0.52734D-39
+  4    0.20612D-08    0.20612D-08    0.54546D-16
+  5    0.45400D-04    0.45400D-04    0.30369D-13
+  6    0.13534D+00    0.13534D+00    0.90111D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        236
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        583
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        183 f-s =        301 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.40123D-03    0.40032D-03    0.90321D-06
+  2    0.40016D-03    0.40016D-03    0.76340D-10
+  3    0.40000D-03    0.40000D-03    0.13119D-15
+  4    0.20000D-01    0.20000D-01    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        177 f-s =        287 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.21958D-06
+  2    0.40000D-01    0.40000D-01    0.97446D-08
+  3    0.40016D-01    0.40016D-01    0.90187D-08
+  4    0.40032D-01    0.40032D-01    0.88876D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        173 f-s =        290 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.13264D-05
+  2    0.40000D+00    0.40000D+00    0.63432D-06
+  3    0.41600D+00    0.41600D+00    0.59830D-06
+  4    0.43330D+00    0.43331D+00    0.63800D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        194 f-s =        319 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.57376D-07
+  2    0.40000D+01    0.40000D+01    0.25479D-06
+  3    0.20000D+02    0.20000D+02    0.23238D-05
+  4    0.42000D+03    0.42000D+03    0.96022D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        192 f-s =        322 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.10301D-06
+  2    0.80000D+01    0.80000D+01    0.89205D-06
+  3    0.13600D+03    0.13600D+03    0.28227D-04
+  4    0.37128D+05    0.37128D+05    0.13233D-01
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        177 f-s =        325 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.22242D+02    0.22242D+02    0.20596D-03
+  2    0.27111D+02    0.27111D+02    0.18306D-03
+  3    0.40000D+03    0.40000D+03    0.11369D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        223 f-s =        384 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.11874D-05
+  2    0.91856D-01    0.91855D-01    0.48111D-06
+  3    0.28416D+02    0.28416D+02    0.11874D-03
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        249 f-s =        407 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.56288D-07
+  2    0.56309D-02    0.56309D-02    0.10958D-09
+  3    0.36024D+00    0.36024D+00    0.56288D-07
+  4    0.31706D+00    0.31706D+00    0.28199D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =         30 f-s =         54 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.59766D+00    0.59765D+00    0.50882D-05
+  2    0.14023D+01    0.14023D+01    0.50882D-05
+  3   -0.18934D-05   -0.18934D-05    0.17887D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =         88 f-s =        159 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99163D+00   -0.99164D+00    0.14228D-04
+  2    0.98332D+00    0.98334D+00    0.17239D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         68
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        183
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =         59 f-s =        131 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.12928D-05
+  2    0.14760D+00    0.14760D+00    0.12928D-05
+  3    0.57731D-07    0.57731D-07    0.11043D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         87 f-s =        163 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D-07    0.10000D-07    0.41251D-15
+  2   -0.67950D-14   -0.16253D-18    0.67948D-14
+  3    0.61930D-11    0.20260D-16    0.61930D-11
+  4   -0.13112D-08   -0.18531D-14    0.13112D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.20000D+01
+    0.00000D+00
+ Steps =        248 f-s =        387 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1   -0.11587D+01   -0.11587D+01    0.42142D-04
+  2    0.43051D+00    0.43047D+00    0.43792D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         68
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        183
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =        222 f-s =        387 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.42529D-02    0.42531D-02    0.19920D-06
+  2    0.53168D-02    0.53170D-02    0.25011D-06
+  3    0.26276D+02    0.26276D+02    0.12284D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.00000D+00
+   -0.20000D+01
+   -0.10000D+01
+   -0.10000D+01
+ Steps =        562 f-s =       1511 J-s =         80
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+02    0.20000D+02    0.38752D-04
+  2   -0.20000D+02   -0.20000D+02    0.38816D-04
+  3   -0.38986D-04   -0.22476D-06    0.38761D-04
+  4    0.39032D-04    0.22476D-06    0.38807D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.17600D-02
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         14 f-s =         84 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.16055D-02    0.16181D-02    0.12578D-04
+  2    0.12369D-09    0.13822D-09    0.14531D-10
+  3    0.74219D-11    0.82516D-11    0.82967D-12
+  4    0.11627D-09    0.12997D-09    0.13699D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.76100D+03
+    0.00000D+00
+    0.60000D+03
+    0.10000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        406 f-s =        801 J-s =         24
+ Computed and reference solutions and absolute errors follow:
+  1    0.12111D+04    0.12111D+04    0.33431D-03
+  2    0.12711D-04    0.12711D-04    0.43433D-10
+  3    0.12086D+04    0.12086D+04    0.33184D-03
+  4    0.32420D-03    0.32420D-03    0.43299D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        148
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        351
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        102 f-s =        155 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.39128D+00    0.39127D+00    0.83441D-05
+  2    0.13300D-02    0.13300D-02    0.28346D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         72
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        185
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.40000D-05
+    0.10000D-05
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =         27 f-s =         65 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.00000D+00    0.32359D-12    0.32359D-12
+  2    0.29136D-06    0.23607D-06    0.55291D-07
+  3    0.34580D-12    0.76393D-13    0.26941D-12
+  4    0.70890D-06    0.76393D-06    0.55036D-07
+  5    0.29338D-05    0.32361D-05    0.30228D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        195
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        461
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.40000D+01
+    0.11000D+01
+    0.40000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       1224 f-s =       2386 J-s =         54
+ Computed and reference solutions and absolute errors follow:
+  1    0.44183D+01    0.44183D+01    0.64346D-05
+  2    0.12902D+01    0.12902D+01    0.64769D-06
+  3    0.30193D+01    0.30193D+01    0.39711D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        259
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.33650D-06
+    0.82610D-02
+    0.16420D-02
+    0.93800D-05
+ Nonnegativity will be enforced for this problem.
+ Steps =        134 f-s =        248 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.17136D-06    0.17136D-06    0.14569D-16
+  2    0.37136D-02    0.37136D-02    0.32130D-12
+  3    0.61893D-02    0.61893D-02    0.53584D-12
+  4    0.95451D-05    0.95451D-05    0.14540D-16
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        148
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        351
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        168 f-s =        242 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.45705D-04    0.45400D-04    0.30489D-06
+  2   -0.90865D-08    0.20612D-08    0.11148D-07
+  3    0.24157D-22    0.28230D-55    0.24157D-22
+  4   -0.15644D-21    0.52358D-51    0.15644D-21
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        195 f-s =        311 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D-01    0.99999D-01    0.54992D-07
+  2    0.20000D+00    0.20000D+00    0.10998D-06
+  3    0.30000D+00    0.30000D+00    0.15608D-06
+  4    0.40000D+00    0.40000D+00    0.18851D-06
+  5    0.50000D+00    0.50000D+00    0.20318D-06
+  6    0.60000D+00    0.60000D+00    0.19717D-06
+  7    0.70000D+00    0.70000D+00    0.16972D-06
+  8    0.80000D+00    0.80000D+00    0.12284D-06
+  9    0.90000D+00    0.90000D+00    0.61422D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        551
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        109
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        210 f-s =        294 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13533D-02   -0.13534D-02    0.13921D-07
+  2    0.13685D-01    0.13685D-01    0.14358D-06
+  3    0.15037D+01    0.15037D+01    0.15468D-04
+  4    0.13533D+00    0.13534D+00    0.11139D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        254 f-s =        390 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.76940D-06
+  2    0.34439D-06    0.12659D-13    0.34439D-06
+  3   -0.44767D-10    0.19115D-41    0.44767D-10
+  4   -0.33848D-18    0.22774D-54    0.33848D-18
+  5   -0.21641D-22    0.00000D+00    0.21641D-22
+  6    0.28625D-31    0.00000D+00    0.28625D-31
+  7   -0.17291D-39    0.00000D+00    0.17291D-39
+  8   -0.77559D-46    0.00000D+00    0.77559D-46
+  9    0.19301D-53    0.00000D+00    0.19301D-53
+ 10    0.40515D-60    0.00000D+00    0.40515D-60
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        660
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        111
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =        763 f-s =        959 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1    0.88645D-06    0.10042D-08    0.88545D-06
+  2   -0.67775D-05    0.18000D-07    0.67955D-05
+  3   -0.21192D-46    0.00000D+00    0.21192D-46
+  4   -0.17966D-43   -0.60430D-78    0.17966D-43
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        137 f-s =        201 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.13210D-11    0.61813D-30    0.13210D-11
+  2   -0.47809D-12    0.89637D-30    0.47809D-12
+  3    0.17546D-08    0.27384D-26    0.17546D-08
+  4    0.28827D-07    0.20612D-08    0.26765D-07
+  5    0.47562D-04    0.45400D-04    0.21619D-05
+  6    0.13534D+00    0.13534D+00    0.13840D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        284
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        148 f-s =        207 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1   -0.10780D-10   -0.10768D-27    0.10780D-10
+  2   -0.17657D-09    0.54550D-27    0.17657D-09
+  3   -0.25324D-09    0.27385D-26    0.25324D-09
+  4    0.26160D-07    0.20612D-08    0.24099D-07
+  5    0.47467D-04    0.45400D-04    0.20675D-05
+  6    0.13534D+00    0.13534D+00    0.13337D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        284
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        303 f-s =        386 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.27743D-10    0.13312D-21    0.27743D-10
+  2    0.47648D-10   -0.23259D-21    0.47648D-10
+  3   -0.20095D-14    0.15179D-34    0.20095D-14
+  4    0.20735D-06    0.20612D-08    0.20528D-06
+  5    0.47184D-04    0.45400D-04    0.17836D-05
+  6    0.13534D+00    0.13534D+00    0.95883D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        284
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       2684 f-s =       3153 J-s =         49
+ Computed and reference solutions and absolute errors follow:
+  1    0.30968D-05   -0.31006D-13    0.30968D-05
+  2    0.61734D-05    0.38628D-13    0.61734D-05
+  3    0.18048D-34    0.18049D-34    0.52734D-39
+  4    0.20612D-08    0.20612D-08    0.54548D-16
+  5    0.45400D-04    0.45400D-04    0.30391D-13
+  6    0.13534D+00    0.13534D+00    0.88793D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        284
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        186 f-s =        255 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.40036D-03    0.40032D-03    0.33301D-07
+  2    0.40016D-03    0.40016D-03    0.11796D-14
+  3    0.40000D-03    0.40000D-03    0.54210D-19
+  4    0.20000D-01    0.20000D-01    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        178 f-s =        253 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.21868D-07
+  2    0.40000D-01    0.40000D-01    0.13655D-08
+  3    0.40016D-01    0.40016D-01    0.90119D-09
+  4    0.40032D-01    0.40032D-01    0.88534D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        174 f-s =        249 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.23894D-07
+  2    0.40000D+00    0.40000D+00    0.35876D-09
+  3    0.41600D+00    0.41600D+00    0.11849D-07
+  4    0.43331D+00    0.43331D+00    0.21393D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        202 f-s =        315 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.40081D-07
+  2    0.40000D+01    0.40000D+01    0.17524D-06
+  3    0.20000D+02    0.20000D+02    0.15440D-05
+  4    0.42000D+03    0.42000D+03    0.59623D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        199 f-s =        299 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.61338D-07
+  2    0.80000D+01    0.80000D+01    0.51083D-06
+  3    0.13600D+03    0.13600D+03    0.14301D-04
+  4    0.37128D+05    0.37128D+05    0.35452D-02
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        208 f-s =        366 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.22242D+02    0.22242D+02    0.13529D-03
+  2    0.27111D+02    0.27111D+02    0.23503D-03
+  3    0.40000D+03    0.40000D+03    0.11369D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        263 f-s =        404 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.92475D-06
+  2    0.91855D-01    0.91855D-01    0.17024D-06
+  3    0.28416D+02    0.28416D+02    0.92473D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        265 f-s =        382 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.27665D-06
+  2    0.56309D-02    0.56309D-02    0.48940D-09
+  3    0.36024D+00    0.36024D+00    0.27665D-06
+  4    0.31706D+00    0.31706D+00    0.13857D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =         30 f-s =         45 J-s =          1
+ Computed and reference solutions and absolute errors follow:
+  1    0.59766D+00    0.59765D+00    0.50323D-05
+  2    0.14023D+01    0.14023D+01    0.50323D-05
+  3   -0.18934D-05   -0.18934D-05    0.18292D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =         88 f-s =        146 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99163D+00   -0.99164D+00    0.12630D-04
+  2    0.98332D+00    0.98334D+00    0.13796D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         68
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         95
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =         61 f-s =         97 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.44471D-05
+  2    0.14760D+00    0.14760D+00    0.44471D-05
+  3    0.57730D-07    0.57731D-07    0.57078D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         86 f-s =        138 J-s =          4
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D-07    0.10000D-07    0.16002D-15
+  2   -0.17694D-13   -0.16253D-18    0.17694D-13
+  3    0.56855D-11    0.20260D-16    0.56855D-11
+  4   -0.10704D-08   -0.18531D-14    0.10704D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.20000D+01
+    0.00000D+00
+ Steps =        269 f-s =        402 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1   -0.11586D+01   -0.11587D+01    0.77411D-04
+  2    0.43054D+00    0.43047D+00    0.73975D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         68
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         95
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =        210 f-s =        298 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.42518D-02    0.42531D-02    0.12793D-05
+  2    0.53154D-02    0.53170D-02    0.16210D-05
+  3    0.26276D+02    0.26276D+02    0.48663D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.00000D+00
+   -0.20000D+01
+   -0.10000D+01
+   -0.10000D+01
+ Steps =        377 f-s =        527 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+02    0.20000D+02    0.96148D-06
+  2   -0.20000D+02   -0.20000D+02    0.96148D-06
+  3    0.73670D-06   -0.22476D-06    0.96146D-06
+  4   -0.73674D-06    0.22476D-06    0.96150D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.17600D-02
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         15 f-s =         34 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.16162D-02    0.16181D-02    0.18276D-05
+  2    0.14133D-09    0.13822D-09    0.31072D-11
+  3    0.84403D-11    0.82516D-11    0.18870D-12
+  4    0.13289D-09    0.12997D-09    0.29185D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.76100D+03
+    0.00000D+00
+    0.60000D+03
+    0.10000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        432 f-s =        764 J-s =         21
+ Computed and reference solutions and absolute errors follow:
+  1    0.12111D+04    0.12111D+04    0.14824D-02
+  2    0.12711D-04    0.12711D-04    0.18621D-09
+  3    0.12086D+04    0.12086D+04    0.14713D-02
+  4    0.32420D-03    0.32420D-03    0.18563D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        102 f-s =        141 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.39128D+00    0.39127D+00    0.78947D-05
+  2    0.13300D-02    0.13300D-02    0.26820D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         72
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.40000D-05
+    0.10000D-05
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =         27 f-s =         45 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.00000D+00    0.32359D-12    0.32359D-12
+  2    0.29142D-06    0.23607D-06    0.55353D-07
+  3    0.34530D-12    0.76393D-13    0.26890D-12
+  4    0.70882D-06    0.76393D-06    0.55110D-07
+  5    0.29320D-05    0.32361D-05    0.30404D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        225
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        106
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.40000D+01
+    0.11000D+01
+    0.40000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       1348 f-s =       2337 J-s =         35
+ Computed and reference solutions and absolute errors follow:
+  1    0.44185D+01    0.44183D+01    0.20587D-03
+  2    0.12902D+01    0.12902D+01    0.19429D-04
+  3    0.30194D+01    0.30193D+01    0.88724D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        113
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        100
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.33650D-06
+    0.82610D-02
+    0.16420D-02
+    0.93800D-05
+ Nonnegativity will be enforced for this problem.
+ Steps =         70 f-s =        103 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.17136D-06    0.17136D-06    0.30230D-13
+  2    0.37136D-02    0.37136D-02    0.50903D-08
+  3    0.61893D-02    0.61893D-02    0.70973D-08
+  4    0.95451D-05    0.95451D-05    0.30292D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        229 f-s =        308 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.45579D-04    0.45400D-04    0.17939D-06
+  2    0.44586D-08    0.20612D-08    0.23974D-08
+  3    0.15376D-27    0.28230D-55    0.15376D-27
+  4    0.19802D-26    0.52358D-51    0.19802D-26
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        251 f-s =        399 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D-01    0.99999D-01    0.25829D-07
+  2    0.20000D+00    0.20000D+00    0.51658D-07
+  3    0.30000D+00    0.30000D+00    0.72245D-07
+  4    0.40000D+00    0.40000D+00    0.85497D-07
+  5    0.50000D+00    0.50000D+00    0.90068D-07
+  6    0.60000D+00    0.60000D+00    0.85501D-07
+  7    0.70000D+00    0.70000D+00    0.72253D-07
+  8    0.80000D+00    0.80000D+00    0.51668D-07
+  9    0.90000D+00    0.90000D+00    0.25835D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        335
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        109
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        290 f-s =        401 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.37284D-09
+  2    0.13685D-01    0.13685D-01    0.37959D-08
+  3    0.15037D+01    0.15037D+01    0.41427D-06
+  4    0.13534D+00    0.13534D+00    0.34738D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        358 f-s =        535 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.13268D-06
+  2   -0.43440D-08    0.12659D-13    0.43440D-08
+  3    0.40051D-16    0.19115D-41    0.40051D-16
+  4   -0.32925D-22    0.22774D-54    0.32925D-22
+  5   -0.39433D-31    0.00000D+00    0.39433D-31
+  6   -0.12327D-41    0.00000D+00    0.12327D-41
+  7   -0.52242D-53    0.00000D+00    0.52242D-53
+  8    0.37414D-64    0.00000D+00    0.37414D-64
+  9    0.13554D-72    0.00000D+00    0.13554D-72
+ 10    0.23570D-80    0.00000D+00    0.23570D-80
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        390
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        111
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =       1094 f-s =       1357 J-s =         25
+ Computed and reference solutions and absolute errors follow:
+  1   -0.92915D-07    0.10042D-08    0.93919D-07
+  2    0.43119D-06    0.18000D-07    0.41319D-06
+  3    0.16872D-46    0.00000D+00    0.16872D-46
+  4    0.31547D-43   -0.60430D-78    0.31547D-43
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        201 f-s =        282 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.10445D-14    0.61813D-30    0.10445D-14
+  2    0.55349D-15    0.89637D-30    0.55349D-15
+  3   -0.31348D-12    0.27384D-26    0.31348D-12
+  4    0.17054D-08    0.20612D-08    0.35571D-09
+  5    0.45523D-04    0.45400D-04    0.12318D-06
+  6    0.13534D+00    0.13534D+00    0.14002D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        194
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        219 f-s =        301 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1   -0.25085D-12   -0.10768D-27    0.25085D-12
+  2    0.25516D-12    0.54550D-27    0.25516D-12
+  3    0.20234D-13    0.27385D-26    0.20234D-13
+  4    0.32642D-08    0.20612D-08    0.12030D-08
+  5    0.45517D-04    0.45400D-04    0.11735D-06
+  6    0.13534D+00    0.13534D+00    0.12669D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        194
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        364 f-s =        453 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1   -0.17323D-10    0.13312D-21    0.17323D-10
+  2   -0.39927D-10   -0.23259D-21    0.39927D-10
+  3   -0.76656D-17    0.15179D-34    0.76656D-17
+  4    0.29890D-08    0.20612D-08    0.92781D-09
+  5    0.45529D-04    0.45400D-04    0.12901D-06
+  6    0.13534D+00    0.13534D+00    0.12839D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        194
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       2961 f-s =       3451 J-s =         55
+ Computed and reference solutions and absolute errors follow:
+  1    0.11408D-05   -0.31006D-13    0.11408D-05
+  2   -0.24118D-05    0.38628D-13    0.24118D-05
+  3    0.18048D-34    0.18049D-34    0.51555D-39
+  4    0.20612D-08    0.20612D-08    0.54548D-16
+  5    0.45400D-04    0.45400D-04    0.36455D-13
+  6    0.13534D+00    0.13534D+00    0.70915D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        194
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        267 f-s =        354 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.40033D-03    0.40032D-03    0.57591D-08
+  2    0.40016D-03    0.40016D-03    0.94916D-15
+  3    0.40000D-03    0.40000D-03    0.54210D-19
+  4    0.20000D-01    0.20000D-01    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        242 f-s =        334 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.19503D-07
+  2    0.40000D-01    0.40000D-01    0.85634D-09
+  3    0.40016D-01    0.40016D-01    0.80066D-09
+  4    0.40032D-01    0.40032D-01    0.78917D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        241 f-s =        334 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.71641D-07
+  2    0.40000D+00    0.40000D+00    0.31873D-07
+  3    0.41600D+00    0.41600D+00    0.31989D-07
+  4    0.43331D+00    0.43331D+00    0.34204D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        254 f-s =        374 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.38473D-07
+  2    0.40000D+01    0.40000D+01    0.17100D-06
+  3    0.20000D+02    0.20000D+02    0.15613D-05
+  4    0.42000D+03    0.42000D+03    0.64642D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        256 f-s =        342 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.37442D-07
+  2    0.80000D+01    0.80000D+01    0.33291D-06
+  3    0.13600D+03    0.13600D+03    0.11234D-04
+  4    0.37128D+05    0.37128D+05    0.61838D-02
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        274 f-s =        420 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.22242D+02    0.22242D+02    0.20445D-04
+  2    0.27111D+02    0.27111D+02    0.23586D-04
+  3    0.40000D+03    0.40000D+03    0.11369D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        299 f-s =        420 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.25631D-06
+  2    0.91855D-01    0.91855D-01    0.86989D-07
+  3    0.28416D+02    0.28416D+02    0.25632D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        326 f-s =        476 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.65874D-09
+  2    0.56309D-02    0.56309D-02    0.24086D-11
+  3    0.36024D+00    0.36024D+00    0.65874D-09
+  4    0.31706D+00    0.31706D+00    0.33057D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =         55 f-s =         81 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.22796D-07
+  2    0.14023D+01    0.14023D+01    0.22809D-07
+  3   -0.18934D-05   -0.18934D-05    0.12122D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        153 f-s =        263 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99164D+00   -0.99164D+00    0.11003D-05
+  2    0.98334D+00    0.98334D+00    0.13145D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         62
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         95
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        147 f-s =        245 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.19589D-07
+  2    0.14760D+00    0.14760D+00    0.19589D-07
+  3    0.57731D-07    0.57731D-07    0.24853D-14
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        108 f-s =        172 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D-07    0.10000D-07    0.85096D-14
+  2    0.56666D-12   -0.16253D-18    0.56666D-12
+  3   -0.32494D-10    0.20260D-16    0.32494D-10
+  4    0.19435D-08   -0.18531D-14    0.19435D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.20000D+01
+    0.00000D+00
+ Steps =        364 f-s =        501 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1   -0.11587D+01   -0.11587D+01    0.11002D-04
+  2    0.43048D+00    0.43047D+00    0.11205D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         62
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         95
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =        327 f-s =        514 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1    0.42528D-02    0.42531D-02    0.28951D-06
+  2    0.53167D-02    0.53170D-02    0.35936D-06
+  3    0.26276D+02    0.26276D+02    0.23507D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.00000D+00
+   -0.20000D+01
+   -0.10000D+01
+   -0.10000D+01
+ Steps =        552 f-s =        725 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+02    0.20000D+02    0.82983D-08
+  2   -0.20000D+02   -0.20000D+02    0.82987D-08
+  3   -0.21646D-06   -0.22476D-06    0.82990D-08
+  4    0.21647D-06    0.22476D-06    0.82981D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.17600D-02
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         22 f-s =         42 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.16169D-02    0.16181D-02    0.11765D-05
+  2    0.13854D-09    0.13822D-09    0.31150D-12
+  3    0.82751D-11    0.82516D-11    0.23526D-13
+  4    0.13026D-09    0.12997D-09    0.28798D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.76100D+03
+    0.00000D+00
+    0.60000D+03
+    0.10000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        610 f-s =       1079 J-s =         22
+ Computed and reference solutions and absolute errors follow:
+  1    0.12111D+04    0.12111D+04    0.32637D-04
+  2    0.12681D-04    0.12711D-04    0.29772D-07
+  3    0.12086D+04    0.12086D+04    0.32384D-04
+  4    0.32417D-03    0.32420D-03    0.29589D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        128
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        123 f-s =        192 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.80363D-06
+  2    0.13300D-02    0.13300D-02    0.27288D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         66
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.40000D-05
+    0.10000D-05
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =         46 f-s =         64 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.73298D-13    0.32359D-12    0.25029D-12
+  2    0.23761D-06    0.23607D-06    0.15378D-08
+  3    0.17406D-12    0.76393D-13    0.97665D-13
+  4    0.76254D-06    0.76393D-06    0.13898D-08
+  5    0.33423D-05    0.32361D-05    0.10621D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        165
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        106
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.40000D+01
+    0.11000D+01
+    0.40000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       1637 f-s =       2695 J-s =         39
+ Computed and reference solutions and absolute errors follow:
+  1    0.44183D+01    0.44183D+01    0.32802D-04
+  2    0.12902D+01    0.12902D+01    0.27986D-05
+  3    0.30193D+01    0.30193D+01    0.89456D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         95
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        100
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.33650D-06
+    0.82610D-02
+    0.16420D-02
+    0.93800D-05
+ Nonnegativity will be enforced for this problem.
+ Steps =        117 f-s =        197 J-s =          4
+ Computed and reference solutions and absolute errors follow:
+  1    0.17136D-06    0.17136D-06    0.54929D-17
+  2    0.37136D-02    0.37136D-02    0.26523D-12
+  3    0.61893D-02    0.61893D-02    0.85288D-13
+  4    0.95451D-05    0.95451D-05    0.55243D-17
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        128
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        229 f-s =        340 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.45579D-04    0.45400D-04    0.17939D-06
+  2    0.44586D-08    0.20612D-08    0.23974D-08
+  3    0.15376D-27    0.28230D-55    0.15376D-27
+  4    0.19802D-26    0.52358D-51    0.19802D-26
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        256 f-s =        525 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D-01    0.99999D-01    0.55530D-07
+  2    0.20000D+00    0.20000D+00    0.11105D-06
+  3    0.30000D+00    0.30000D+00    0.15529D-06
+  4    0.40000D+00    0.40000D+00    0.18391D-06
+  5    0.50000D+00    0.50000D+00    0.19394D-06
+  6    0.60000D+00    0.60000D+00    0.18427D-06
+  7    0.70000D+00    0.70000D+00    0.15584D-06
+  8    0.80000D+00    0.80000D+00    0.11150D-06
+  9    0.90000D+00    0.90000D+00    0.55753D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        425
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =       1072
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        289 f-s =        454 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.22364D-09
+  2    0.13685D-01    0.13685D-01    0.32517D-08
+  3    0.15037D+01    0.15037D+01    0.24850D-06
+  4    0.13534D+00    0.13534D+00    0.75664D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        358 f-s =        705 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.13268D-06
+  2   -0.43440D-08    0.12659D-13    0.43441D-08
+  3    0.40050D-16    0.19115D-41    0.40050D-16
+  4   -0.32925D-22    0.22774D-54    0.32925D-22
+  5   -0.39433D-31    0.00000D+00    0.39433D-31
+  6   -0.12327D-41    0.00000D+00    0.12327D-41
+  7   -0.52242D-53    0.00000D+00    0.52242D-53
+  8    0.37414D-64    0.00000D+00    0.37414D-64
+  9    0.13554D-72    0.00000D+00    0.13554D-72
+ 10    0.23570D-80    0.00000D+00    0.23570D-80
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        500
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =       1271
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =       1094 f-s =       1545 J-s =         36
+ Computed and reference solutions and absolute errors follow:
+  1   -0.92915D-07    0.10042D-08    0.93919D-07
+  2    0.43119D-06    0.18000D-07    0.41319D-06
+  3    0.16989D-46    0.00000D+00    0.16989D-46
+  4    0.31543D-43   -0.60430D-78    0.31543D-43
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        201 f-s =        324 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.10445D-14    0.61813D-30    0.10445D-14
+  2    0.55349D-15    0.89637D-30    0.55349D-15
+  3   -0.31348D-12    0.27384D-26    0.31348D-12
+  4    0.17054D-08    0.20612D-08    0.35571D-09
+  5    0.45523D-04    0.45400D-04    0.12318D-06
+  6    0.13534D+00    0.13534D+00    0.14002D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        236
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        583
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        219 f-s =        343 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1   -0.25085D-12   -0.10768D-27    0.25085D-12
+  2    0.25516D-12    0.54550D-27    0.25516D-12
+  3    0.20234D-13    0.27385D-26    0.20234D-13
+  4    0.32642D-08    0.20612D-08    0.12030D-08
+  5    0.45517D-04    0.45400D-04    0.11735D-06
+  6    0.13534D+00    0.13534D+00    0.12669D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        236
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        583
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        364 f-s =        549 J-s =         13
+ Computed and reference solutions and absolute errors follow:
+  1   -0.17323D-10    0.13312D-21    0.17323D-10
+  2   -0.39927D-10   -0.23259D-21    0.39927D-10
+  3   -0.76656D-17    0.15179D-34    0.76656D-17
+  4    0.29890D-08    0.20612D-08    0.92781D-09
+  5    0.45529D-04    0.45400D-04    0.12901D-06
+  6    0.13534D+00    0.13534D+00    0.12839D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        236
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        583
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       2961 f-s =       4129 J-s =         84
+ Computed and reference solutions and absolute errors follow:
+  1    0.11409D-05   -0.31006D-13    0.11409D-05
+  2   -0.24119D-05    0.38628D-13    0.24119D-05
+  3    0.18048D-34    0.18049D-34    0.51555D-39
+  4    0.20612D-08    0.20612D-08    0.54548D-16
+  5    0.45400D-04    0.45400D-04    0.36454D-13
+  6    0.13534D+00    0.13534D+00    0.72137D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        236
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        583
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        266 f-s =        409 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.40033D-03    0.40032D-03    0.85781D-08
+  2    0.40016D-03    0.40016D-03    0.16881D-13
+  3    0.40000D-03    0.40000D-03    0.54210D-19
+  4    0.20000D-01    0.20000D-01    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        241 f-s =        379 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.41482D-06
+  2    0.40000D-01    0.40000D-01    0.18443D-07
+  3    0.40016D-01    0.40016D-01    0.17034D-07
+  4    0.40032D-01    0.40032D-01    0.16789D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        240 f-s =        369 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.85808D-07
+  2    0.40000D+00    0.40000D+00    0.37821D-07
+  3    0.41600D+00    0.41600D+00    0.38268D-07
+  4    0.43331D+00    0.43331D+00    0.40930D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        254 f-s =        412 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.12826D-07
+  2    0.40000D+01    0.40000D+01    0.57010D-07
+  3    0.20000D+02    0.20000D+02    0.52041D-06
+  4    0.42000D+03    0.42000D+03    0.21539D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        258 f-s =        413 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.50106D-08
+  2    0.80000D+01    0.80000D+01    0.44534D-07
+  3    0.13600D+03    0.13600D+03    0.15023D-05
+  4    0.37128D+05    0.37128D+05    0.82646D-03
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        323 f-s =        547 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1    0.22242D+02    0.22242D+02    0.16189D-04
+  2    0.27111D+02    0.27111D+02    0.14676D-04
+  3    0.40000D+03    0.40000D+03    0.11369D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        268 f-s =        420 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.47019D-07
+  2    0.91855D-01    0.91855D-01    0.10600D-06
+  3    0.28416D+02    0.28416D+02    0.47030D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        310 f-s =        515 J-s =         13
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.12084D-06
+  2    0.56309D-02    0.56309D-02    0.23564D-09
+  3    0.36024D+00    0.36024D+00    0.12084D-06
+  4    0.31706D+00    0.31706D+00    0.60540D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =         55 f-s =         90 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.22796D-07
+  2    0.14023D+01    0.14023D+01    0.22809D-07
+  3   -0.18934D-05   -0.18934D-05    0.12122D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        150 f-s =        261 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99164D+00   -0.99164D+00    0.50192D-05
+  2    0.98333D+00    0.98334D+00    0.56839D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         68
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        183
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =         84 f-s =        163 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.23374D-06
+  2    0.14760D+00    0.14760D+00    0.23374D-06
+  3    0.57731D-07    0.57731D-07    0.19821D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        106 f-s =        190 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D-07    0.10000D-07    0.11209D-13
+  2   -0.67171D-12   -0.16253D-18    0.67171D-12
+  3    0.34504D-10    0.20260D-16    0.34504D-10
+  4   -0.22232D-08   -0.18531D-14    0.22232D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.20000D+01
+    0.00000D+00
+ Steps =        366 f-s =        530 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1   -0.11587D+01   -0.11587D+01    0.66851D-05
+  2    0.43048D+00    0.43047D+00    0.70297D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         68
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        183
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =        327 f-s =        546 J-s =         13
+ Computed and reference solutions and absolute errors follow:
+  1    0.42533D-02    0.42531D-02    0.27472D-06
+  2    0.53174D-02    0.53170D-02    0.34341D-06
+  3    0.26276D+02    0.26276D+02    0.56879D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.00000D+00
+   -0.20000D+01
+   -0.10000D+01
+   -0.10000D+01
+ Steps =        811 f-s =       2010 J-s =         95
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+02    0.20000D+02    0.11932D-05
+  2   -0.20000D+02   -0.20000D+02    0.11980D-05
+  3   -0.14060D-05   -0.22476D-06    0.11812D-05
+  4    0.14348D-05    0.22476D-06    0.12100D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.17600D-02
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         20 f-s =         72 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.16182D-02    0.16181D-02    0.10684D-06
+  2    0.13818D-09    0.13822D-09    0.42949D-13
+  3    0.82495D-11    0.82516D-11    0.20530D-14
+  4    0.12993D-09    0.12997D-09    0.40896D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.76100D+03
+    0.00000D+00
+    0.60000D+03
+    0.10000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        529 f-s =       1058 J-s =         31
+ Computed and reference solutions and absolute errors follow:
+  1    0.12111D+04    0.12111D+04    0.24654D-04
+  2    0.12711D-04    0.12711D-04    0.27143D-11
+  3    0.12086D+04    0.12086D+04    0.24467D-04
+  4    0.32420D-03    0.32420D-03    0.27069D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        148
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        351
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        121 f-s =        195 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.69584D-06
+  2    0.13300D-02    0.13300D-02    0.23621D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         72
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        185
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.40000D-05
+    0.10000D-05
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =         46 f-s =         85 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.33014D-12    0.32359D-12    0.65466D-14
+  2    0.23260D-06    0.23607D-06    0.34637D-08
+  3    0.76755D-13    0.76393D-13    0.36185D-15
+  4    0.76755D-06    0.76393D-06    0.36185D-08
+  5    0.33000D-05    0.32361D-05    0.63975D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        195
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        461
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.40000D+01
+    0.11000D+01
+    0.40000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       1569 f-s =       2747 J-s =         64
+ Computed and reference solutions and absolute errors follow:
+  1    0.44183D+01    0.44183D+01    0.14950D-04
+  2    0.12902D+01    0.12902D+01    0.11952D-05
+  3    0.30193D+01    0.30193D+01    0.35316D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        259
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.33650D-06
+    0.82610D-02
+    0.16420D-02
+    0.93800D-05
+ Nonnegativity will be enforced for this problem.
+ Steps =        109 f-s =        235 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.17136D-06    0.17136D-06    0.25752D-15
+  2    0.37136D-02    0.37136D-02    0.56810D-11
+  3    0.61893D-02    0.61893D-02    0.94684D-11
+  4    0.95451D-05    0.95451D-05    0.25751D-15
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        148
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        351
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        229 f-s =        308 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.45579D-04    0.45400D-04    0.17939D-06
+  2    0.44586D-08    0.20612D-08    0.23974D-08
+  3    0.15376D-27    0.28230D-55    0.15376D-27
+  4    0.19802D-26    0.52358D-51    0.19802D-26
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        251 f-s =        399 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D-01    0.99999D-01    0.25829D-07
+  2    0.20000D+00    0.20000D+00    0.51658D-07
+  3    0.30000D+00    0.30000D+00    0.72245D-07
+  4    0.40000D+00    0.40000D+00    0.85497D-07
+  5    0.50000D+00    0.50000D+00    0.90068D-07
+  6    0.60000D+00    0.60000D+00    0.85501D-07
+  7    0.70000D+00    0.70000D+00    0.72253D-07
+  8    0.80000D+00    0.80000D+00    0.51668D-07
+  9    0.90000D+00    0.90000D+00    0.25835D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        551
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        109
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        290 f-s =        401 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.37284D-09
+  2    0.13685D-01    0.13685D-01    0.37959D-08
+  3    0.15037D+01    0.15037D+01    0.41427D-06
+  4    0.13534D+00    0.13534D+00    0.34738D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        358 f-s =        535 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.13268D-06
+  2   -0.43440D-08    0.12659D-13    0.43440D-08
+  3    0.40051D-16    0.19115D-41    0.40051D-16
+  4   -0.32925D-22    0.22774D-54    0.32925D-22
+  5   -0.39433D-31    0.00000D+00    0.39433D-31
+  6   -0.12327D-41    0.00000D+00    0.12327D-41
+  7   -0.52242D-53    0.00000D+00    0.52242D-53
+  8    0.37414D-64    0.00000D+00    0.37414D-64
+  9    0.13554D-72    0.00000D+00    0.13554D-72
+ 10    0.23570D-80    0.00000D+00    0.23570D-80
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        660
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        111
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =       1094 f-s =       1357 J-s =         25
+ Computed and reference solutions and absolute errors follow:
+  1   -0.92915D-07    0.10042D-08    0.93919D-07
+  2    0.43119D-06    0.18000D-07    0.41319D-06
+  3    0.16872D-46    0.00000D+00    0.16872D-46
+  4    0.31547D-43   -0.60430D-78    0.31547D-43
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        201 f-s =        282 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.10445D-14    0.61813D-30    0.10445D-14
+  2    0.55349D-15    0.89637D-30    0.55349D-15
+  3   -0.31348D-12    0.27384D-26    0.31348D-12
+  4    0.17054D-08    0.20612D-08    0.35571D-09
+  5    0.45523D-04    0.45400D-04    0.12318D-06
+  6    0.13534D+00    0.13534D+00    0.14002D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        284
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        219 f-s =        301 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1   -0.25085D-12   -0.10768D-27    0.25085D-12
+  2    0.25516D-12    0.54550D-27    0.25516D-12
+  3    0.20234D-13    0.27385D-26    0.20234D-13
+  4    0.32642D-08    0.20612D-08    0.12030D-08
+  5    0.45517D-04    0.45400D-04    0.11735D-06
+  6    0.13534D+00    0.13534D+00    0.12669D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        284
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        364 f-s =        453 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1   -0.17323D-10    0.13312D-21    0.17323D-10
+  2   -0.39927D-10   -0.23259D-21    0.39927D-10
+  3   -0.76656D-17    0.15179D-34    0.76656D-17
+  4    0.29890D-08    0.20612D-08    0.92781D-09
+  5    0.45529D-04    0.45400D-04    0.12901D-06
+  6    0.13534D+00    0.13534D+00    0.12839D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        284
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       2961 f-s =       3451 J-s =         55
+ Computed and reference solutions and absolute errors follow:
+  1    0.11408D-05   -0.31006D-13    0.11408D-05
+  2   -0.24118D-05    0.38628D-13    0.24118D-05
+  3    0.18048D-34    0.18049D-34    0.51555D-39
+  4    0.20612D-08    0.20612D-08    0.54548D-16
+  5    0.45400D-04    0.45400D-04    0.36455D-13
+  6    0.13534D+00    0.13534D+00    0.70915D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        284
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        267 f-s =        354 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.40033D-03    0.40032D-03    0.57591D-08
+  2    0.40016D-03    0.40016D-03    0.94916D-15
+  3    0.40000D-03    0.40000D-03    0.54210D-19
+  4    0.20000D-01    0.20000D-01    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        242 f-s =        334 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.19503D-07
+  2    0.40000D-01    0.40000D-01    0.85634D-09
+  3    0.40016D-01    0.40016D-01    0.80066D-09
+  4    0.40032D-01    0.40032D-01    0.78917D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        241 f-s =        334 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.71641D-07
+  2    0.40000D+00    0.40000D+00    0.31873D-07
+  3    0.41600D+00    0.41600D+00    0.31989D-07
+  4    0.43331D+00    0.43331D+00    0.34204D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        254 f-s =        374 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.38473D-07
+  2    0.40000D+01    0.40000D+01    0.17100D-06
+  3    0.20000D+02    0.20000D+02    0.15613D-05
+  4    0.42000D+03    0.42000D+03    0.64642D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        256 f-s =        342 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.37442D-07
+  2    0.80000D+01    0.80000D+01    0.33291D-06
+  3    0.13600D+03    0.13600D+03    0.11234D-04
+  4    0.37128D+05    0.37128D+05    0.61838D-02
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        274 f-s =        420 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.22242D+02    0.22242D+02    0.20445D-04
+  2    0.27111D+02    0.27111D+02    0.23586D-04
+  3    0.40000D+03    0.40000D+03    0.11369D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        299 f-s =        420 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.25631D-06
+  2    0.91855D-01    0.91855D-01    0.86989D-07
+  3    0.28416D+02    0.28416D+02    0.25632D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        326 f-s =        476 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.65874D-09
+  2    0.56309D-02    0.56309D-02    0.24086D-11
+  3    0.36024D+00    0.36024D+00    0.65874D-09
+  4    0.31706D+00    0.31706D+00    0.33057D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =         55 f-s =         81 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.22796D-07
+  2    0.14023D+01    0.14023D+01    0.22809D-07
+  3   -0.18934D-05   -0.18934D-05    0.12122D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        153 f-s =        263 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99164D+00   -0.99164D+00    0.11003D-05
+  2    0.98334D+00    0.98334D+00    0.13145D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         68
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         95
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        147 f-s =        245 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.19589D-07
+  2    0.14760D+00    0.14760D+00    0.19589D-07
+  3    0.57731D-07    0.57731D-07    0.24853D-14
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        108 f-s =        172 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D-07    0.10000D-07    0.85096D-14
+  2    0.56666D-12   -0.16253D-18    0.56666D-12
+  3   -0.32494D-10    0.20260D-16    0.32494D-10
+  4    0.19435D-08   -0.18531D-14    0.19435D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.20000D+01
+    0.00000D+00
+ Steps =        364 f-s =        501 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1   -0.11587D+01   -0.11587D+01    0.11002D-04
+  2    0.43048D+00    0.43047D+00    0.11205D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         68
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         95
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =        327 f-s =        514 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1    0.42528D-02    0.42531D-02    0.28951D-06
+  2    0.53167D-02    0.53170D-02    0.35936D-06
+  3    0.26276D+02    0.26276D+02    0.23507D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.00000D+00
+   -0.20000D+01
+   -0.10000D+01
+   -0.10000D+01
+ Steps =        552 f-s =        725 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+02    0.20000D+02    0.82983D-08
+  2   -0.20000D+02   -0.20000D+02    0.82987D-08
+  3   -0.21646D-06   -0.22476D-06    0.82990D-08
+  4    0.21647D-06    0.22476D-06    0.82981D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.17600D-02
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         22 f-s =         42 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.16169D-02    0.16181D-02    0.11765D-05
+  2    0.13854D-09    0.13822D-09    0.31150D-12
+  3    0.82751D-11    0.82516D-11    0.23526D-13
+  4    0.13026D-09    0.12997D-09    0.28798D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.76100D+03
+    0.00000D+00
+    0.60000D+03
+    0.10000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        610 f-s =       1079 J-s =         22
+ Computed and reference solutions and absolute errors follow:
+  1    0.12111D+04    0.12111D+04    0.32637D-04
+  2    0.12681D-04    0.12711D-04    0.29772D-07
+  3    0.12086D+04    0.12086D+04    0.32384D-04
+  4    0.32417D-03    0.32420D-03    0.29589D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        123 f-s =        192 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.80363D-06
+  2    0.13300D-02    0.13300D-02    0.27288D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         72
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.40000D-05
+    0.10000D-05
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =         46 f-s =         64 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.73298D-13    0.32359D-12    0.25029D-12
+  2    0.23761D-06    0.23607D-06    0.15378D-08
+  3    0.17406D-12    0.76393D-13    0.97665D-13
+  4    0.76254D-06    0.76393D-06    0.13898D-08
+  5    0.33423D-05    0.32361D-05    0.10621D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        225
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        106
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.40000D+01
+    0.11000D+01
+    0.40000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       1637 f-s =       2695 J-s =         39
+ Computed and reference solutions and absolute errors follow:
+  1    0.44183D+01    0.44183D+01    0.32802D-04
+  2    0.12902D+01    0.12902D+01    0.27986D-05
+  3    0.30193D+01    0.30193D+01    0.89456D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        113
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        100
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.33650D-06
+    0.82610D-02
+    0.16420D-02
+    0.93800D-05
+ Nonnegativity will be enforced for this problem.
+ Steps =        117 f-s =        197 J-s =          4
+ Computed and reference solutions and absolute errors follow:
+  1    0.17136D-06    0.17136D-06    0.54929D-17
+  2    0.37136D-02    0.37136D-02    0.26523D-12
+  3    0.61893D-02    0.61893D-02    0.85288D-13
+  4    0.95451D-05    0.95451D-05    0.55243D-17
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        302 f-s =        408 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.45410D-04    0.45400D-04    0.10373D-07
+  2    0.21066D-08    0.20612D-08    0.45434D-10
+  3    0.13566D-36    0.28230D-55    0.13566D-36
+  4   -0.21446D-34    0.52358D-51    0.21446D-34
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        354 f-s =        526 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D-01    0.99999D-01    0.27035D-08
+  2    0.20000D+00    0.20000D+00    0.54053D-08
+  3    0.30000D+00    0.30000D+00    0.75586D-08
+  4    0.40000D+00    0.40000D+00    0.89458D-08
+  5    0.50000D+00    0.50000D+00    0.94242D-08
+  6    0.60000D+00    0.60000D+00    0.89457D-08
+  7    0.70000D+00    0.70000D+00    0.75592D-08
+  8    0.80000D+00    0.80000D+00    0.54053D-08
+  9    0.90000D+00    0.90000D+00    0.27028D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        335
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        109
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        400 f-s =        514 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.10797D-09
+  2    0.13685D-01    0.13685D-01    0.10870D-08
+  3    0.15037D+01    0.15037D+01    0.11996D-06
+  4    0.13534D+00    0.13534D+00    0.11264D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        495 f-s =        685 J-s =         13
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.30809D-08
+  2    0.81042D-08    0.12659D-13    0.81042D-08
+  3   -0.47930D-16    0.19115D-41    0.47930D-16
+  4    0.16367D-27    0.22774D-54    0.16367D-27
+  5   -0.76092D-39    0.00000D+00    0.76092D-39
+  6   -0.31273D-52    0.00000D+00    0.31273D-52
+  7   -0.64761D-65    0.00000D+00    0.64761D-65
+  8    0.16712D-81    0.00000D+00    0.16712D-81
+  9    0.37406D-92    0.00000D+00    0.37406D-92
+ 10    0.27832-108    0.00000D+00    0.27832-108
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        390
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        111
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =       1510 f-s =       1803 J-s =         32
+ Computed and reference solutions and absolute errors follow:
+  1   -0.16803D-07    0.10042D-08    0.17807D-07
+  2    0.81112D-07    0.18000D-07    0.63111D-07
+  3   -0.28797D-66    0.00000D+00    0.28797D-66
+  4    0.23743D-64   -0.60430D-78    0.23743D-64
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        281 f-s =        371 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.88001D-22    0.61813D-30    0.88001D-22
+  2   -0.28787D-19    0.89637D-30    0.28787D-19
+  3    0.24212D-17    0.27384D-26    0.24212D-17
+  4    0.21533D-08    0.20612D-08    0.92104D-10
+  5    0.45420D-04    0.45400D-04    0.20557D-07
+  6    0.13534D+00    0.13534D+00    0.24873D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        194
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        305 f-s =        402 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1   -0.34875D-16   -0.10768D-27    0.34875D-16
+  2   -0.20762D-15    0.54550D-27    0.20762D-15
+  3   -0.14217D-16    0.27385D-26    0.14217D-16
+  4    0.21473D-08    0.20612D-08    0.86185D-10
+  5    0.45416D-04    0.45400D-04    0.16174D-07
+  6    0.13534D+00    0.13534D+00    0.20554D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        194
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        592 f-s =        737 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1   -0.14587D-10    0.13312D-21    0.14587D-10
+  2   -0.67278D-11   -0.23259D-21    0.67278D-11
+  3   -0.80778D-24    0.15179D-34    0.80778D-24
+  4    0.22822D-08    0.20612D-08    0.22107D-09
+  5    0.45437D-04    0.45400D-04    0.37012D-07
+  6    0.13534D+00    0.13534D+00    0.43414D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        194
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       3304 f-s =       3852 J-s =         60
+ Computed and reference solutions and absolute errors follow:
+  1   -0.46625D-07   -0.31006D-13    0.46625D-07
+  2    0.87365D-07    0.38628D-13    0.87365D-07
+  3    0.18048D-34    0.18049D-34    0.49651D-39
+  4    0.20612D-08    0.20612D-08    0.52735D-16
+  5    0.45400D-04    0.45400D-04    0.35925D-13
+  6    0.13534D+00    0.13534D+00    0.23148D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        194
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        368 f-s =        463 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1    0.40033D-03    0.40032D-03    0.34941D-08
+  2    0.40016D-03    0.40016D-03    0.70473D-18
+  3    0.40000D-03    0.40000D-03    0.54210D-19
+  4    0.20000D-01    0.20000D-01    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        340 f-s =        444 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.56117D-07
+  2    0.40000D-01    0.40000D-01    0.24918D-08
+  3    0.40016D-01    0.40016D-01    0.23024D-08
+  4    0.40032D-01    0.40032D-01    0.22707D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        327 f-s =        415 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.30034D-09
+  2    0.40000D+00    0.40000D+00    0.13360D-09
+  3    0.41600D+00    0.41600D+00    0.13422D-09
+  4    0.43331D+00    0.43331D+00    0.14354D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        341 f-s =        445 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.10593D-08
+  2    0.40000D+01    0.40000D+01    0.46847D-08
+  3    0.20000D+02    0.20000D+02    0.42415D-07
+  4    0.42000D+03    0.42000D+03    0.17307D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        351 f-s =        460 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.64595D-08
+  2    0.80000D+01    0.80000D+01    0.57420D-07
+  3    0.13600D+03    0.13600D+03    0.19376D-05
+  4    0.37128D+05    0.37128D+05    0.10668D-02
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        418 f-s =        611 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1    0.22242D+02    0.22242D+02    0.16291D-05
+  2    0.27111D+02    0.27111D+02    0.17604D-05
+  3    0.40000D+03    0.40000D+03    0.11369D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        419 f-s =        596 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.57623D-08
+  2    0.91855D-01    0.91855D-01    0.21016D-08
+  3    0.28416D+02    0.28416D+02    0.57625D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        434 f-s =        580 J-s =         13
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.87616D-08
+  2    0.56309D-02    0.56309D-02    0.17084D-10
+  3    0.36024D+00    0.36024D+00    0.87616D-08
+  4    0.31706D+00    0.31706D+00    0.43893D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =         65 f-s =        100 J-s =          4
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.27091D-06
+  2    0.14023D+01    0.14023D+01    0.27091D-06
+  3   -0.18934D-05   -0.18934D-05    0.26351D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        217 f-s =        335 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99164D+00   -0.99164D+00    0.59941D-06
+  2    0.98334D+00    0.98334D+00    0.68338D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         62
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         95
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        147 f-s =        230 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.34370D-07
+  2    0.14760D+00    0.14760D+00    0.34370D-07
+  3    0.57731D-07    0.57731D-07    0.42851D-14
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        135 f-s =        208 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D-07    0.10000D-07    0.24053D-15
+  2   -0.19908D-13   -0.16253D-18    0.19908D-13
+  3    0.14481D-11    0.20260D-16    0.14481D-11
+  4   -0.94768D-10   -0.18531D-14    0.94766D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.20000D+01
+    0.00000D+00
+ Steps =        531 f-s =        666 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1   -0.11587D+01   -0.11587D+01    0.13623D-05
+  2    0.43047D+00    0.43047D+00    0.14174D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         62
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         95
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =        384 f-s =        578 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.42531D-02    0.42531D-02    0.20670D-07
+  2    0.53170D-02    0.53170D-02    0.25685D-07
+  3    0.26276D+02    0.26276D+02    0.65369D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.00000D+00
+   -0.20000D+01
+   -0.10000D+01
+   -0.10000D+01
+ Steps =        728 f-s =        914 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+02    0.20000D+02    0.59688D-08
+  2   -0.20000D+02   -0.20000D+02    0.59676D-08
+  3   -0.23074D-06   -0.22476D-06    0.59783D-08
+  4    0.23072D-06    0.22476D-06    0.59581D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.17600D-02
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         26 f-s =         53 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.16182D-02    0.16181D-02    0.16166D-06
+  2    0.13827D-09    0.13822D-09    0.47889D-13
+  3    0.82526D-11    0.82516D-11    0.99606D-15
+  4    0.13002D-09    0.12997D-09    0.46893D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.76100D+03
+    0.00000D+00
+    0.60000D+03
+    0.10000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        753 f-s =       1289 J-s =         25
+ Computed and reference solutions and absolute errors follow:
+  1    0.12111D+04    0.12111D+04    0.55294D-05
+  2    0.12711D-04    0.12711D-04    0.69181D-12
+  3    0.12086D+04    0.12086D+04    0.54883D-05
+  4    0.32420D-03    0.32420D-03    0.68988D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        128
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        166 f-s =        219 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.21761D-07
+  2    0.13300D-02    0.13300D-02    0.73843D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         66
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.40000D-05
+    0.10000D-05
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =         63 f-s =         87 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.32382D-12    0.32359D-12    0.23205D-15
+  2    0.23609D-06    0.23607D-06    0.17434D-10
+  3    0.76400D-13    0.76393D-13    0.63799D-17
+  4    0.76400D-06    0.76393D-06    0.63324D-10
+  5    0.32361D-05    0.32361D-05    0.29262D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        165
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        106
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.40000D+01
+    0.11000D+01
+    0.40000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       2262 f-s =       3535 J-s =         47
+ Computed and reference solutions and absolute errors follow:
+  1    0.44183D+01    0.44183D+01    0.71240D-05
+  2    0.12902D+01    0.12902D+01    0.61416D-06
+  3    0.30193D+01    0.30193D+01    0.26042D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         95
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        100
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.33650D-06
+    0.82610D-02
+    0.16420D-02
+    0.93800D-05
+ Nonnegativity will be enforced for this problem.
+ Steps =        161 f-s =        296 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.17136D-06    0.17136D-06    0.25184D-16
+  2    0.37136D-02    0.37136D-02    0.55559D-12
+  3    0.61893D-02    0.61893D-02    0.92598D-12
+  4    0.95451D-05    0.95451D-05    0.25194D-16
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        128
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        302 f-s =        452 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.45410D-04    0.45400D-04    0.10373D-07
+  2    0.21066D-08    0.20612D-08    0.45434D-10
+  3    0.13567D-36    0.28230D-55    0.13567D-36
+  4   -0.21446D-34    0.52358D-51    0.21446D-34
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        358 f-s =        679 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D-01    0.99999D-01    0.50419D-08
+  2    0.20000D+00    0.20000D+00    0.10083D-07
+  3    0.30000D+00    0.30000D+00    0.14099D-07
+  4    0.40000D+00    0.40000D+00    0.16685D-07
+  5    0.50000D+00    0.50000D+00    0.17578D-07
+  6    0.60000D+00    0.60000D+00    0.16686D-07
+  7    0.70000D+00    0.70000D+00    0.14100D-07
+  8    0.80000D+00    0.80000D+00    0.10082D-07
+  9    0.90000D+00    0.90000D+00    0.50416D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        425
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =       1072
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        400 f-s =        582 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.10796D-09
+  2    0.13685D-01    0.13685D-01    0.10870D-08
+  3    0.15037D+01    0.15037D+01    0.11996D-06
+  4    0.13534D+00    0.13534D+00    0.11264D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        495 f-s =        875 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.30809D-08
+  2    0.81042D-08    0.12659D-13    0.81042D-08
+  3   -0.47930D-16    0.19115D-41    0.47930D-16
+  4    0.16367D-27    0.22774D-54    0.16367D-27
+  5   -0.76092D-39    0.00000D+00    0.76092D-39
+  6   -0.31273D-52    0.00000D+00    0.31273D-52
+  7   -0.64762D-65    0.00000D+00    0.64762D-65
+  8    0.16712D-81    0.00000D+00    0.16712D-81
+  9    0.37406D-92    0.00000D+00    0.37406D-92
+ 10    0.27832-108    0.00000D+00    0.27832-108
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        500
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =       1271
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =       1544 f-s =       2107 J-s =         48
+ Computed and reference solutions and absolute errors follow:
+  1    0.12752D-07    0.10042D-08    0.11748D-07
+  2    0.13709D-06    0.18000D-07    0.11909D-06
+  3    0.57296D-75    0.00000D+00    0.57296D-75
+  4   -0.10952D-72   -0.60430D-78    0.10952D-72
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        281 f-s =        449 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.87999D-22    0.61813D-30    0.87999D-22
+  2   -0.28787D-19    0.89637D-30    0.28787D-19
+  3    0.24212D-17    0.27384D-26    0.24212D-17
+  4    0.21533D-08    0.20612D-08    0.92104D-10
+  5    0.45420D-04    0.45400D-04    0.20557D-07
+  6    0.13534D+00    0.13534D+00    0.24873D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        236
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        583
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        305 f-s =        474 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1   -0.34875D-16   -0.10768D-27    0.34875D-16
+  2   -0.20762D-15    0.54550D-27    0.20762D-15
+  3   -0.14217D-16    0.27385D-26    0.14217D-16
+  4    0.21473D-08    0.20612D-08    0.86185D-10
+  5    0.45416D-04    0.45400D-04    0.16174D-07
+  6    0.13534D+00    0.13534D+00    0.20554D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        236
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        583
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        592 f-s =        863 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1   -0.14587D-10    0.13312D-21    0.14587D-10
+  2   -0.67278D-11   -0.23259D-21    0.67278D-11
+  3   -0.80778D-24    0.15179D-34    0.80778D-24
+  4    0.22822D-08    0.20612D-08    0.22107D-09
+  5    0.45437D-04    0.45400D-04    0.37012D-07
+  6    0.13534D+00    0.13534D+00    0.43414D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        236
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        583
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       3304 f-s =       4560 J-s =         89
+ Computed and reference solutions and absolute errors follow:
+  1   -0.46625D-07   -0.31006D-13    0.46625D-07
+  2    0.87365D-07    0.38628D-13    0.87365D-07
+  3    0.18048D-34    0.18049D-34    0.49651D-39
+  4    0.20612D-08    0.20612D-08    0.52735D-16
+  5    0.45400D-04    0.45400D-04    0.35926D-13
+  6    0.13534D+00    0.13534D+00    0.23953D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        236
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        583
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        368 f-s =        519 J-s =         13
+ Computed and reference solutions and absolute errors follow:
+  1    0.40033D-03    0.40032D-03    0.35009D-08
+  2    0.40016D-03    0.40016D-03    0.70473D-18
+  3    0.40000D-03    0.40000D-03    0.00000D+00
+  4    0.20000D-01    0.20000D-01    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        339 f-s =        502 J-s =         13
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.65117D-07
+  2    0.40000D-01    0.40000D-01    0.28943D-08
+  3    0.40016D-01    0.40016D-01    0.26739D-08
+  4    0.40032D-01    0.40032D-01    0.26356D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        325 f-s =        462 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.13574D-08
+  2    0.40000D+00    0.40000D+00    0.63557D-09
+  3    0.41600D+00    0.41600D+00    0.60468D-09
+  4    0.43331D+00    0.43331D+00    0.64861D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        336 f-s =        509 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.12339D-08
+  2    0.40000D+01    0.40000D+01    0.54840D-08
+  3    0.20000D+02    0.20000D+02    0.50059D-07
+  4    0.42000D+03    0.42000D+03    0.20719D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        346 f-s =        510 J-s =         13
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.21549D-08
+  2    0.80000D+01    0.80000D+01    0.19154D-07
+  3    0.13600D+03    0.13600D+03    0.64634D-06
+  4    0.37128D+05    0.37128D+05    0.35578D-03
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        380 f-s =        623 J-s =         13
+ Computed and reference solutions and absolute errors follow:
+  1    0.22242D+02    0.22242D+02    0.17090D-05
+  2    0.27111D+02    0.27111D+02    0.93006D-06
+  3    0.40000D+03    0.40000D+03    0.11369D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        389 f-s =        627 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.51766D-08
+  2    0.91855D-01    0.91855D-01    0.21859D-08
+  3    0.28416D+02    0.28416D+02    0.51769D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        413 f-s =        654 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.30134D-08
+  2    0.56309D-02    0.56309D-02    0.58766D-11
+  3    0.36024D+00    0.36024D+00    0.30134D-08
+  4    0.31706D+00    0.31706D+00    0.15096D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =         66 f-s =        109 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.20539D-06
+  2    0.14023D+01    0.14023D+01    0.20540D-06
+  3   -0.18934D-05   -0.18934D-05    0.97725D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        229 f-s =        415 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99164D+00   -0.99164D+00    0.33514D-06
+  2    0.98334D+00    0.98334D+00    0.32594D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         68
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        183
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        151 f-s =        280 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.12788D-07
+  2    0.14760D+00    0.14760D+00    0.12788D-07
+  3    0.57731D-07    0.57731D-07    0.22662D-14
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        141 f-s =        228 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D-07    0.10000D-07    0.62574D-14
+  2   -0.45385D-12   -0.16253D-18    0.45385D-12
+  3    0.27985D-10    0.20260D-16    0.27985D-10
+  4   -0.13014D-08   -0.18531D-14    0.13014D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.20000D+01
+    0.00000D+00
+ Steps =        503 f-s =        699 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1   -0.11587D+01   -0.11587D+01    0.13312D-05
+  2    0.43047D+00    0.43047D+00    0.14068D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         68
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        183
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =        410 f-s =        647 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1    0.42531D-02    0.42531D-02    0.51242D-07
+  2    0.53171D-02    0.53170D-02    0.63951D-07
+  3    0.26276D+02    0.26276D+02    0.45508D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.00000D+00
+   -0.20000D+01
+   -0.10000D+01
+   -0.10000D+01
+ Steps =        870 f-s =       1539 J-s =         50
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+02    0.20000D+02    0.49579D-09
+  2   -0.20000D+02   -0.20000D+02    0.66207D-09
+  3   -0.21995D-06   -0.22476D-06    0.48099D-08
+  4    0.23073D-06    0.22476D-06    0.59677D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.17600D-02
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         30 f-s =         93 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.16180D-02    0.16181D-02    0.99133D-07
+  2    0.13823D-09    0.13822D-09    0.57973D-14
+  3    0.82531D-11    0.82516D-11    0.14941D-14
+  4    0.12998D-09    0.12997D-09    0.42137D-14
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.76100D+03
+    0.00000D+00
+    0.60000D+03
+    0.10000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        684 f-s =       1247 J-s =         32
+ Computed and reference solutions and absolute errors follow:
+  1    0.12111D+04    0.12111D+04    0.41407D-04
+  2    0.12711D-04    0.12711D-04    0.55088D-11
+  3    0.12086D+04    0.12086D+04    0.41098D-04
+  4    0.32420D-03    0.32420D-03    0.54918D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        148
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        351
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        164 f-s =        224 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.82699D-08
+  2    0.13300D-02    0.13300D-02    0.28130D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         72
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        185
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.40000D-05
+    0.10000D-05
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =         63 f-s =        107 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.32382D-12    0.32359D-12    0.22656D-15
+  2    0.23609D-06    0.23607D-06    0.17179D-10
+  3    0.76400D-13    0.76393D-13    0.63444D-17
+  4    0.76399D-06    0.76393D-06    0.62981D-10
+  5    0.32361D-05    0.32361D-05    0.31303D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        195
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        461
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.40000D+01
+    0.11000D+01
+    0.40000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       2276 f-s =       3876 J-s =         83
+ Computed and reference solutions and absolute errors follow:
+  1    0.44183D+01    0.44183D+01    0.62731D-05
+  2    0.12902D+01    0.12902D+01    0.54467D-06
+  3    0.30193D+01    0.30193D+01    0.21295D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        259
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.33650D-06
+    0.82610D-02
+    0.16420D-02
+    0.93800D-05
+ Nonnegativity will be enforced for this problem.
+ Steps =        170 f-s =        326 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.17136D-06    0.17136D-06    0.37855D-12
+  2    0.37136D-02    0.37136D-02    0.83511D-08
+  3    0.61893D-02    0.61893D-02    0.13918D-07
+  4    0.95451D-05    0.95451D-05    0.37855D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        148
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        351
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        302 f-s =        408 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.45410D-04    0.45400D-04    0.10373D-07
+  2    0.21066D-08    0.20612D-08    0.45434D-10
+  3    0.13566D-36    0.28230D-55    0.13566D-36
+  4   -0.21446D-34    0.52358D-51    0.21446D-34
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        354 f-s =        526 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D-01    0.99999D-01    0.27035D-08
+  2    0.20000D+00    0.20000D+00    0.54053D-08
+  3    0.30000D+00    0.30000D+00    0.75586D-08
+  4    0.40000D+00    0.40000D+00    0.89458D-08
+  5    0.50000D+00    0.50000D+00    0.94242D-08
+  6    0.60000D+00    0.60000D+00    0.89457D-08
+  7    0.70000D+00    0.70000D+00    0.75592D-08
+  8    0.80000D+00    0.80000D+00    0.54053D-08
+  9    0.90000D+00    0.90000D+00    0.27028D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        551
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        109
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        400 f-s =        514 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.10797D-09
+  2    0.13685D-01    0.13685D-01    0.10870D-08
+  3    0.15037D+01    0.15037D+01    0.11996D-06
+  4    0.13534D+00    0.13534D+00    0.11264D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        495 f-s =        685 J-s =         13
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.30809D-08
+  2    0.81042D-08    0.12659D-13    0.81042D-08
+  3   -0.47930D-16    0.19115D-41    0.47930D-16
+  4    0.16367D-27    0.22774D-54    0.16367D-27
+  5   -0.76092D-39    0.00000D+00    0.76092D-39
+  6   -0.31273D-52    0.00000D+00    0.31273D-52
+  7   -0.64761D-65    0.00000D+00    0.64761D-65
+  8    0.16712D-81    0.00000D+00    0.16712D-81
+  9    0.37406D-92    0.00000D+00    0.37406D-92
+ 10    0.27832-108    0.00000D+00    0.27832-108
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        660
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        111
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =       1510 f-s =       1803 J-s =         32
+ Computed and reference solutions and absolute errors follow:
+  1   -0.16803D-07    0.10042D-08    0.17807D-07
+  2    0.81112D-07    0.18000D-07    0.63111D-07
+  3   -0.28797D-66    0.00000D+00    0.28797D-66
+  4    0.23743D-64   -0.60430D-78    0.23743D-64
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        281 f-s =        371 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.88001D-22    0.61813D-30    0.88001D-22
+  2   -0.28787D-19    0.89637D-30    0.28787D-19
+  3    0.24212D-17    0.27384D-26    0.24212D-17
+  4    0.21533D-08    0.20612D-08    0.92104D-10
+  5    0.45420D-04    0.45400D-04    0.20557D-07
+  6    0.13534D+00    0.13534D+00    0.24873D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        284
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        305 f-s =        402 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1   -0.34875D-16   -0.10768D-27    0.34875D-16
+  2   -0.20762D-15    0.54550D-27    0.20762D-15
+  3   -0.14217D-16    0.27385D-26    0.14217D-16
+  4    0.21473D-08    0.20612D-08    0.86185D-10
+  5    0.45416D-04    0.45400D-04    0.16174D-07
+  6    0.13534D+00    0.13534D+00    0.20554D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        284
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        592 f-s =        737 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1   -0.14587D-10    0.13312D-21    0.14587D-10
+  2   -0.67278D-11   -0.23259D-21    0.67278D-11
+  3   -0.80778D-24    0.15179D-34    0.80778D-24
+  4    0.22822D-08    0.20612D-08    0.22107D-09
+  5    0.45437D-04    0.45400D-04    0.37012D-07
+  6    0.13534D+00    0.13534D+00    0.43414D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        284
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       3304 f-s =       3852 J-s =         60
+ Computed and reference solutions and absolute errors follow:
+  1   -0.46625D-07   -0.31006D-13    0.46625D-07
+  2    0.87365D-07    0.38628D-13    0.87365D-07
+  3    0.18048D-34    0.18049D-34    0.49651D-39
+  4    0.20612D-08    0.20612D-08    0.52735D-16
+  5    0.45400D-04    0.45400D-04    0.35925D-13
+  6    0.13534D+00    0.13534D+00    0.23148D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        284
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        368 f-s =        463 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1    0.40033D-03    0.40032D-03    0.34941D-08
+  2    0.40016D-03    0.40016D-03    0.70473D-18
+  3    0.40000D-03    0.40000D-03    0.54210D-19
+  4    0.20000D-01    0.20000D-01    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        340 f-s =        444 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.56117D-07
+  2    0.40000D-01    0.40000D-01    0.24918D-08
+  3    0.40016D-01    0.40016D-01    0.23024D-08
+  4    0.40032D-01    0.40032D-01    0.22707D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        327 f-s =        415 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.30034D-09
+  2    0.40000D+00    0.40000D+00    0.13360D-09
+  3    0.41600D+00    0.41600D+00    0.13422D-09
+  4    0.43331D+00    0.43331D+00    0.14354D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        341 f-s =        445 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.10593D-08
+  2    0.40000D+01    0.40000D+01    0.46847D-08
+  3    0.20000D+02    0.20000D+02    0.42415D-07
+  4    0.42000D+03    0.42000D+03    0.17307D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        351 f-s =        460 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.64595D-08
+  2    0.80000D+01    0.80000D+01    0.57420D-07
+  3    0.13600D+03    0.13600D+03    0.19376D-05
+  4    0.37128D+05    0.37128D+05    0.10668D-02
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        418 f-s =        611 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1    0.22242D+02    0.22242D+02    0.16291D-05
+  2    0.27111D+02    0.27111D+02    0.17604D-05
+  3    0.40000D+03    0.40000D+03    0.11369D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        419 f-s =        596 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.57623D-08
+  2    0.91855D-01    0.91855D-01    0.21016D-08
+  3    0.28416D+02    0.28416D+02    0.57625D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        434 f-s =        580 J-s =         13
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.87616D-08
+  2    0.56309D-02    0.56309D-02    0.17084D-10
+  3    0.36024D+00    0.36024D+00    0.87616D-08
+  4    0.31706D+00    0.31706D+00    0.43893D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =         65 f-s =        100 J-s =          4
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.27091D-06
+  2    0.14023D+01    0.14023D+01    0.27091D-06
+  3   -0.18934D-05   -0.18934D-05    0.26351D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        217 f-s =        335 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99164D+00   -0.99164D+00    0.59941D-06
+  2    0.98334D+00    0.98334D+00    0.68338D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         68
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         95
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        147 f-s =        230 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.34370D-07
+  2    0.14760D+00    0.14760D+00    0.34370D-07
+  3    0.57731D-07    0.57731D-07    0.42851D-14
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        135 f-s =        208 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D-07    0.10000D-07    0.24053D-15
+  2   -0.19908D-13   -0.16253D-18    0.19908D-13
+  3    0.14481D-11    0.20260D-16    0.14481D-11
+  4   -0.94768D-10   -0.18531D-14    0.94766D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.20000D+01
+    0.00000D+00
+ Steps =        531 f-s =        666 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1   -0.11587D+01   -0.11587D+01    0.13623D-05
+  2    0.43047D+00    0.43047D+00    0.14174D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         68
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         95
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =        384 f-s =        578 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.42531D-02    0.42531D-02    0.20670D-07
+  2    0.53170D-02    0.53170D-02    0.25685D-07
+  3    0.26276D+02    0.26276D+02    0.65369D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.00000D+00
+   -0.20000D+01
+   -0.10000D+01
+   -0.10000D+01
+ Steps =        728 f-s =        914 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+02    0.20000D+02    0.59688D-08
+  2   -0.20000D+02   -0.20000D+02    0.59676D-08
+  3   -0.23074D-06   -0.22476D-06    0.59783D-08
+  4    0.23072D-06    0.22476D-06    0.59581D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.17600D-02
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         26 f-s =         53 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.16182D-02    0.16181D-02    0.16166D-06
+  2    0.13827D-09    0.13822D-09    0.47889D-13
+  3    0.82526D-11    0.82516D-11    0.99606D-15
+  4    0.13002D-09    0.12997D-09    0.46893D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.76100D+03
+    0.00000D+00
+    0.60000D+03
+    0.10000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        753 f-s =       1289 J-s =         25
+ Computed and reference solutions and absolute errors follow:
+  1    0.12111D+04    0.12111D+04    0.55294D-05
+  2    0.12711D-04    0.12711D-04    0.69181D-12
+  3    0.12086D+04    0.12086D+04    0.54883D-05
+  4    0.32420D-03    0.32420D-03    0.68988D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        166 f-s =        219 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.21761D-07
+  2    0.13300D-02    0.13300D-02    0.73843D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         72
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.40000D-05
+    0.10000D-05
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =         63 f-s =         87 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.32382D-12    0.32359D-12    0.23205D-15
+  2    0.23609D-06    0.23607D-06    0.17434D-10
+  3    0.76400D-13    0.76393D-13    0.63799D-17
+  4    0.76400D-06    0.76393D-06    0.63324D-10
+  5    0.32361D-05    0.32361D-05    0.29262D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        225
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        106
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.40000D+01
+    0.11000D+01
+    0.40000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       2262 f-s =       3535 J-s =         47
+ Computed and reference solutions and absolute errors follow:
+  1    0.44183D+01    0.44183D+01    0.71240D-05
+  2    0.12902D+01    0.12902D+01    0.61416D-06
+  3    0.30193D+01    0.30193D+01    0.26042D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        113
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        100
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.33650D-06
+    0.82610D-02
+    0.16420D-02
+    0.93800D-05
+ Nonnegativity will be enforced for this problem.
+ Steps =        161 f-s =        296 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.17136D-06    0.17136D-06    0.25184D-16
+  2    0.37136D-02    0.37136D-02    0.55559D-12
+  3    0.61893D-02    0.61893D-02    0.92598D-12
+  4    0.95451D-05    0.95451D-05    0.25194D-16
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        428 f-s =        542 J-s =         13
+ Computed and reference solutions and absolute errors follow:
+  1    0.45402D-04    0.45400D-04    0.20958D-08
+  2    0.20698D-08    0.20612D-08    0.86833D-11
+  3   -0.53753D-44    0.28230D-55    0.53753D-44
+  4   -0.26328D-41    0.52358D-51    0.26328D-41
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        486 f-s =        674 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D-01    0.99999D-01    0.51193D-09
+  2    0.20000D+00    0.20000D+00    0.10238D-08
+  3    0.30000D+00    0.30000D+00    0.14317D-08
+  4    0.40000D+00    0.40000D+00    0.16941D-08
+  5    0.50000D+00    0.50000D+00    0.17847D-08
+  6    0.60000D+00    0.60000D+00    0.16940D-08
+  7    0.70000D+00    0.70000D+00    0.14315D-08
+  8    0.80000D+00    0.80000D+00    0.10236D-08
+  9    0.90000D+00    0.90000D+00    0.51174D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        335
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        109
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        554 f-s =        674 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.55030D-10
+  2    0.13685D-01    0.13685D-01    0.55289D-09
+  3    0.15037D+01    0.15037D+01    0.61145D-07
+  4    0.13534D+00    0.13534D+00    0.58582D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        703 f-s =        953 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.36942D-09
+  2   -0.19627D-10    0.12659D-13    0.19640D-10
+  3    0.50490D-23    0.19115D-41    0.50490D-23
+  4   -0.40027D-36    0.22774D-54    0.40027D-36
+  5   -0.12542D-51    0.00000D+00    0.12542D-51
+  6    0.19246D-70    0.00000D+00    0.19246D-70
+  7    0.18000D-88    0.00000D+00    0.18000D-88
+  8   -0.16260-107    0.00000D+00    0.16260-107
+  9    0.75665-126    0.00000D+00    0.75665-126
+ 10    0.28911-143    0.00000D+00    0.28911-143
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        390
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        111
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =       2234 f-s =       2646 J-s =         44
+ Computed and reference solutions and absolute errors follow:
+  1    0.13751D-08    0.10042D-08    0.37092D-09
+  2    0.46182D-09    0.18000D-07    0.17538D-07
+  3    0.41812-130    0.00000D+00    0.41812-130
+  4    0.11651-128   -0.60430D-78    0.60430D-78
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        390 f-s =        495 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1   -0.67751D-25    0.61813D-30    0.67751D-25
+  2    0.67162D-25    0.89637D-30    0.67161D-25
+  3   -0.11972D-21    0.27384D-26    0.11972D-21
+  4    0.20700D-08    0.20612D-08    0.88533D-11
+  5    0.45402D-04    0.45400D-04    0.22293D-08
+  6    0.13534D+00    0.13534D+00    0.32690D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        194
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        426 f-s =        529 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1   -0.44272D-19   -0.10768D-27    0.44272D-19
+  2   -0.17172D-19    0.54550D-27    0.17172D-19
+  3   -0.20650D-22    0.27385D-26    0.20652D-22
+  4    0.20679D-08    0.20612D-08    0.67196D-11
+  5    0.45402D-04    0.45400D-04    0.16949D-08
+  6    0.13534D+00    0.13534D+00    0.25365D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        194
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        844 f-s =       1015 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1    0.33183D-10    0.13312D-21    0.33183D-10
+  2   -0.18365D-10   -0.23259D-21    0.18365D-10
+  3   -0.25756D-30    0.15179D-34    0.25758D-30
+  4    0.20689D-08    0.20612D-08    0.77617D-11
+  5    0.45401D-04    0.45400D-04    0.84210D-09
+  6    0.13534D+00    0.13534D+00    0.36199D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        194
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       3856 f-s =       4465 J-s =         70
+ Computed and reference solutions and absolute errors follow:
+  1    0.68319D-09   -0.31006D-13    0.68322D-09
+  2    0.10516D-07    0.38628D-13    0.10516D-07
+  3    0.18048D-34    0.18049D-34    0.49484D-39
+  4    0.20612D-08    0.20612D-08    0.52562D-16
+  5    0.45400D-04    0.45400D-04    0.35873D-13
+  6    0.13534D+00    0.13534D+00    0.34528D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        194
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        525 f-s =        643 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1    0.40033D-03    0.40032D-03    0.32933D-08
+  2    0.40016D-03    0.40016D-03    0.16263D-18
+  3    0.40000D-03    0.40000D-03    0.21684D-18
+  4    0.20000D-01    0.20000D-01    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        465 f-s =        579 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.31902D-09
+  2    0.40000D-01    0.40000D-01    0.14183D-10
+  3    0.40016D-01    0.40016D-01    0.13096D-10
+  4    0.40032D-01    0.40032D-01    0.12910D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        469 f-s =        571 J-s =         13
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.94382D-09
+  2    0.40000D+00    0.40000D+00    0.41947D-09
+  3    0.41600D+00    0.41600D+00    0.42161D-09
+  4    0.43331D+00    0.43331D+00    0.45066D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        483 f-s =        605 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.29364D-09
+  2    0.40000D+01    0.40000D+01    0.13051D-08
+  3    0.20000D+02    0.20000D+02    0.11913D-07
+  4    0.42000D+03    0.42000D+03    0.49305D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        478 f-s =        608 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.10173D-09
+  2    0.80000D+01    0.80000D+01    0.90426D-09
+  3    0.13600D+03    0.13600D+03    0.30514D-07
+  4    0.37128D+05    0.37128D+05    0.16797D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        574 f-s =        823 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.22242D+02    0.22242D+02    0.18208D-06
+  2    0.27111D+02    0.27111D+02    0.14509D-06
+  3    0.40000D+03    0.40000D+03    0.11369D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        527 f-s =        755 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.26901D-08
+  2    0.91855D-01    0.91855D-01    0.12786D-08
+  3    0.28416D+02    0.28416D+02    0.26902D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        580 f-s =        727 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.11006D-09
+  2    0.56309D-02    0.56309D-02    0.21453D-12
+  3    0.36024D+00    0.36024D+00    0.11006D-09
+  4    0.31706D+00    0.31706D+00    0.55135D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =         93 f-s =        163 J-s =          4
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.38194D-07
+  2    0.14023D+01    0.14023D+01    0.38196D-07
+  3   -0.18934D-05   -0.18934D-05    0.23352D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        424 f-s =        637 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99164D+00   -0.99164D+00    0.50949D-07
+  2    0.98334D+00    0.98334D+00    0.57433D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         62
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         95
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        231 f-s =        366 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.18072D-08
+  2    0.14760D+00    0.14760D+00    0.18414D-08
+  3    0.57731D-07    0.57731D-07    0.22563D-15
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        182 f-s =        269 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D-07    0.10000D-07    0.81464D-15
+  2    0.43704D-13   -0.16253D-18    0.43704D-13
+  3   -0.18757D-11    0.20260D-16    0.18757D-11
+  4    0.40561D-10   -0.18531D-14    0.40563D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.20000D+01
+    0.00000D+00
+ Steps =        726 f-s =        889 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1   -0.11587D+01   -0.11587D+01    0.18099D-06
+  2    0.43047D+00    0.43047D+00    0.18211D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         62
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         95
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =        529 f-s =        771 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1    0.42531D-02    0.42531D-02    0.22381D-08
+  2    0.53170D-02    0.53170D-02    0.27809D-08
+  3    0.26276D+02    0.26276D+02    0.20068D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.00000D+00
+   -0.20000D+01
+   -0.10000D+01
+   -0.10000D+01
+ Steps =       1062 f-s =       1274 J-s =         24
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+02    0.20000D+02    0.21182D-09
+  2   -0.20000D+02   -0.20000D+02    0.21105D-09
+  3   -0.22494D-06   -0.22476D-06    0.17678D-09
+  4    0.22501D-06    0.22476D-06    0.24609D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.17600D-02
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         42 f-s =         75 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.16181D-02    0.16181D-02    0.51084D-08
+  2    0.13823D-09    0.13822D-09    0.28748D-14
+  3    0.82517D-11    0.82516D-11    0.14515D-15
+  4    0.12997D-09    0.12997D-09    0.27296D-14
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.76100D+03
+    0.00000D+00
+    0.60000D+03
+    0.10000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =       1025 f-s =       1620 J-s =         28
+ Computed and reference solutions and absolute errors follow:
+  1    0.12111D+04    0.12111D+04    0.48443D-06
+  2    0.12711D-04    0.12711D-04    0.30161D-09
+  3    0.12086D+04    0.12086D+04    0.48092D-06
+  4    0.32420D-03    0.32420D-03    0.29961D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        128
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        238 f-s =        314 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.28042D-08
+  2    0.13300D-02    0.13300D-02    0.95250D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         66
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.40000D-05
+    0.10000D-05
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =         69 f-s =         95 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.58916D-13    0.32359D-12    0.26468D-12
+  2    0.23607D-06    0.23607D-06    0.70149D-12
+  3    0.76399D-13    0.76393D-13    0.58240D-17
+  4    0.76393D-06    0.76393D-06    0.51567D-12
+  5    0.32361D-05    0.32361D-05    0.13075D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        165
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        106
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.40000D+01
+    0.11000D+01
+    0.40000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       3019 f-s =       4554 J-s =         60
+ Computed and reference solutions and absolute errors follow:
+  1    0.44183D+01    0.44183D+01    0.15118D-05
+  2    0.12902D+01    0.12902D+01    0.13071D-06
+  3    0.30193D+01    0.30193D+01    0.60597D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         95
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        100
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.33650D-06
+    0.82610D-02
+    0.16420D-02
+    0.93800D-05
+ Nonnegativity will be enforced for this problem.
+ Steps =        235 f-s =        416 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.17136D-06    0.17136D-06    0.19083D-15
+  2    0.37136D-02    0.37136D-02    0.42098D-11
+  3    0.61893D-02    0.61893D-02    0.70164D-11
+  4    0.95451D-05    0.95451D-05    0.19083D-15
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        128
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        428 f-s =        618 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1    0.45402D-04    0.45400D-04    0.20958D-08
+  2    0.20698D-08    0.20612D-08    0.86833D-11
+  3   -0.53753D-44    0.28230D-55    0.53753D-44
+  4   -0.26328D-41    0.52358D-51    0.26328D-41
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        486 f-s =        836 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D-01    0.99999D-01    0.51277D-09
+  2    0.20000D+00    0.20000D+00    0.10255D-08
+  3    0.30000D+00    0.30000D+00    0.14339D-08
+  4    0.40000D+00    0.40000D+00    0.16969D-08
+  5    0.50000D+00    0.50000D+00    0.17876D-08
+  6    0.60000D+00    0.60000D+00    0.16968D-08
+  7    0.70000D+00    0.70000D+00    0.14338D-08
+  8    0.80000D+00    0.80000D+00    0.10252D-08
+  9    0.90000D+00    0.90000D+00    0.51257D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        425
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =       1072
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        554 f-s =        762 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.55046D-10
+  2    0.13685D-01    0.13685D-01    0.55305D-09
+  3    0.15037D+01    0.15037D+01    0.61163D-07
+  4    0.13534D+00    0.13534D+00    0.58600D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        703 f-s =       1293 J-s =         26
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.36942D-09
+  2   -0.19624D-10    0.12659D-13    0.19636D-10
+  3    0.50488D-23    0.19115D-41    0.50488D-23
+  4   -0.40026D-36    0.22774D-54    0.40026D-36
+  5   -0.12542D-51    0.00000D+00    0.12542D-51
+  6    0.19244D-70    0.00000D+00    0.19244D-70
+  7    0.17999D-88    0.00000D+00    0.17999D-88
+  8   -0.16259-107    0.00000D+00    0.16259-107
+  9    0.75659-126    0.00000D+00    0.75659-126
+ 10    0.28910-143    0.00000D+00    0.28910-143
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        500
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =       1271
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =       2234 f-s =       2990 J-s =         65
+ Computed and reference solutions and absolute errors follow:
+  1    0.13751D-08    0.10042D-08    0.37092D-09
+  2    0.46200D-09    0.18000D-07    0.17538D-07
+  3    0.41778-130    0.00000D+00    0.41778-130
+  4    0.11312-128   -0.60430D-78    0.60430D-78
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        390 f-s =        609 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1   -0.67751D-25    0.61813D-30    0.67752D-25
+  2    0.67163D-25    0.89637D-30    0.67162D-25
+  3   -0.11972D-21    0.27384D-26    0.11972D-21
+  4    0.20700D-08    0.20612D-08    0.88533D-11
+  5    0.45402D-04    0.45400D-04    0.22293D-08
+  6    0.13534D+00    0.13534D+00    0.32690D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        236
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        583
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        426 f-s =        619 J-s =         13
+ Computed and reference solutions and absolute errors follow:
+  1   -0.44272D-19   -0.10768D-27    0.44272D-19
+  2   -0.17172D-19    0.54550D-27    0.17172D-19
+  3   -0.20650D-22    0.27385D-26    0.20652D-22
+  4    0.20679D-08    0.20612D-08    0.67196D-11
+  5    0.45402D-04    0.45400D-04    0.16949D-08
+  6    0.13534D+00    0.13534D+00    0.25365D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        236
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        583
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        844 f-s =       1225 J-s =         27
+ Computed and reference solutions and absolute errors follow:
+  1    0.33184D-10    0.13312D-21    0.33184D-10
+  2   -0.18365D-10   -0.23259D-21    0.18365D-10
+  3   -0.25756D-30    0.15179D-34    0.25758D-30
+  4    0.20689D-08    0.20612D-08    0.77617D-11
+  5    0.45401D-04    0.45400D-04    0.84210D-09
+  6    0.13534D+00    0.13534D+00    0.36199D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        236
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        583
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       3856 f-s =       5305 J-s =        105
+ Computed and reference solutions and absolute errors follow:
+  1    0.68307D-09   -0.31006D-13    0.68311D-09
+  2    0.10516D-07    0.38628D-13    0.10516D-07
+  3    0.18048D-34    0.18049D-34    0.49484D-39
+  4    0.20612D-08    0.20612D-08    0.52561D-16
+  5    0.45400D-04    0.45400D-04    0.35859D-13
+  6    0.13534D+00    0.13534D+00    0.26701D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        236
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        583
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        525 f-s =        724 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1    0.40033D-03    0.40032D-03    0.33742D-08
+  2    0.40016D-03    0.40016D-03    0.10842D-18
+  3    0.40000D-03    0.40000D-03    0.00000D+00
+  4    0.20000D-01    0.20000D-01    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        465 f-s =        643 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.32844D-09
+  2    0.40000D-01    0.40000D-01    0.14638D-10
+  3    0.40016D-01    0.40016D-01    0.13560D-10
+  4    0.40032D-01    0.40032D-01    0.13350D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        469 f-s =        643 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.31511D-08
+  2    0.40000D+00    0.40000D+00    0.14004D-08
+  3    0.41600D+00    0.41600D+00    0.14076D-08
+  4    0.43331D+00    0.43331D+00    0.15046D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        480 f-s =        653 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.24469D-09
+  2    0.40000D+01    0.40000D+01    0.10875D-08
+  3    0.20000D+02    0.20000D+02    0.99269D-08
+  4    0.42000D+03    0.42000D+03    0.41085D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        492 f-s =        682 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.14624D-09
+  2    0.80000D+01    0.80000D+01    0.13007D-08
+  3    0.13600D+03    0.13600D+03    0.43962D-07
+  4    0.37128D+05    0.37128D+05    0.24274D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        627 f-s =       1032 J-s =         24
+ Computed and reference solutions and absolute errors follow:
+  1    0.22242D+02    0.22242D+02    0.15107D-06
+  2    0.27111D+02    0.27111D+02    0.15953D-06
+  3    0.40000D+03    0.40000D+03    0.11369D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        496 f-s =        772 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.27540D-08
+  2    0.91855D-01    0.91855D-01    0.11234D-08
+  3    0.28416D+02    0.28416D+02    0.27541D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        582 f-s =        824 J-s =         20
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.37633D-08
+  2    0.56309D-02    0.56309D-02    0.73378D-11
+  3    0.36024D+00    0.36024D+00    0.37633D-08
+  4    0.31706D+00    0.31706D+00    0.18853D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =         87 f-s =        147 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.60457D-08
+  2    0.14023D+01    0.14023D+01    0.60457D-08
+  3   -0.18934D-05   -0.18934D-05    0.28860D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        338 f-s =        540 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99164D+00   -0.99164D+00    0.89476D-07
+  2    0.98334D+00    0.98334D+00    0.10623D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         68
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        183
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        173 f-s =        311 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.44054D-08
+  2    0.14760D+00    0.14760D+00    0.43986D-08
+  3    0.57731D-07    0.57731D-07    0.10328D-14
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        181 f-s =        305 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D-07    0.10000D-07    0.63985D-14
+  2    0.22320D-12   -0.16253D-18    0.22320D-12
+  3    0.18815D-11    0.20260D-16    0.18815D-11
+  4   -0.11164D-08   -0.18531D-14    0.11164D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.20000D+01
+    0.00000D+00
+ Steps =        727 f-s =        948 J-s =         23
+ Computed and reference solutions and absolute errors follow:
+  1   -0.11587D+01   -0.11587D+01    0.17731D-06
+  2    0.43047D+00    0.43047D+00    0.17704D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         68
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        183
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =        495 f-s =        718 J-s =         17
+ Computed and reference solutions and absolute errors follow:
+  1    0.42531D-02    0.42531D-02    0.15046D-08
+  2    0.53170D-02    0.53170D-02    0.18875D-08
+  3    0.26276D+02    0.26276D+02    0.10500D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.00000D+00
+   -0.20000D+01
+   -0.10000D+01
+   -0.10000D+01
+ Steps =       1655 f-s =       4104 J-s =        223
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+02    0.20000D+02    0.45326D-08
+  2   -0.20000D+02   -0.20000D+02    0.48380D-08
+  3   -0.22017D-06   -0.22476D-06    0.45916D-08
+  4    0.22966D-06    0.22476D-06    0.48970D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.17600D-02
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         43 f-s =        107 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.16181D-02    0.16181D-02    0.78998D-08
+  2    0.13824D-09    0.13822D-09    0.19846D-13
+  3    0.82527D-11    0.82516D-11    0.11724D-14
+  4    0.12999D-09    0.12997D-09    0.18673D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.76100D+03
+    0.00000D+00
+    0.60000D+03
+    0.10000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =       1039 f-s =       1839 J-s =         42
+ Computed and reference solutions and absolute errors follow:
+  1    0.12111D+04    0.12111D+04    0.23201D-06
+  2    0.12711D-04    0.12711D-04    0.28616D-12
+  3    0.12086D+04    0.12086D+04    0.23056D-06
+  4    0.32420D-03    0.32420D-03    0.20697D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        148
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        351
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        242 f-s =        346 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.74534D-08
+  2    0.13300D-02    0.13300D-02    0.25318D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         72
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        185
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.40000D-05
+    0.10000D-05
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =         69 f-s =        115 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.55771D-13    0.32359D-12    0.26782D-12
+  2    0.23607D-06    0.23607D-06    0.72039D-12
+  3    0.76400D-13    0.76393D-13    0.63357D-17
+  4    0.76393D-06    0.76393D-06    0.50029D-12
+  5    0.32361D-05    0.32361D-05    0.13375D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        195
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        461
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.40000D+01
+    0.11000D+01
+    0.40000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       2960 f-s =       4976 J-s =        109
+ Computed and reference solutions and absolute errors follow:
+  1    0.44183D+01    0.44183D+01    0.28223D-06
+  2    0.12902D+01    0.12902D+01    0.24027D-07
+  3    0.30193D+01    0.30193D+01    0.13508D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        259
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.33650D-06
+    0.82610D-02
+    0.16420D-02
+    0.93800D-05
+ Nonnegativity will be enforced for this problem.
+ Steps =        207 f-s =        398 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.17136D-06    0.17136D-06    0.47639D-16
+  2    0.37136D-02    0.37136D-02    0.10505D-11
+  3    0.61893D-02    0.61893D-02    0.17527D-11
+  4    0.95451D-05    0.95451D-05    0.47641D-16
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        148
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        351
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        428 f-s =        542 J-s =         13
+ Computed and reference solutions and absolute errors follow:
+  1    0.45402D-04    0.45400D-04    0.20958D-08
+  2    0.20698D-08    0.20612D-08    0.86833D-11
+  3   -0.53753D-44    0.28230D-55    0.53753D-44
+  4   -0.26328D-41    0.52358D-51    0.26328D-41
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        486 f-s =        674 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D-01    0.99999D-01    0.51193D-09
+  2    0.20000D+00    0.20000D+00    0.10238D-08
+  3    0.30000D+00    0.30000D+00    0.14317D-08
+  4    0.40000D+00    0.40000D+00    0.16941D-08
+  5    0.50000D+00    0.50000D+00    0.17847D-08
+  6    0.60000D+00    0.60000D+00    0.16940D-08
+  7    0.70000D+00    0.70000D+00    0.14315D-08
+  8    0.80000D+00    0.80000D+00    0.10236D-08
+  9    0.90000D+00    0.90000D+00    0.51174D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        551
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        109
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        554 f-s =        674 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.55030D-10
+  2    0.13685D-01    0.13685D-01    0.55289D-09
+  3    0.15037D+01    0.15037D+01    0.61145D-07
+  4    0.13534D+00    0.13534D+00    0.58582D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        703 f-s =        953 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.36942D-09
+  2   -0.19627D-10    0.12659D-13    0.19640D-10
+  3    0.50490D-23    0.19115D-41    0.50490D-23
+  4   -0.40027D-36    0.22774D-54    0.40027D-36
+  5   -0.12542D-51    0.00000D+00    0.12542D-51
+  6    0.19246D-70    0.00000D+00    0.19246D-70
+  7    0.18000D-88    0.00000D+00    0.18000D-88
+  8   -0.16260-107    0.00000D+00    0.16260-107
+  9    0.75665-126    0.00000D+00    0.75665-126
+ 10    0.28911-143    0.00000D+00    0.28911-143
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        660
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        111
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =       2234 f-s =       2646 J-s =         44
+ Computed and reference solutions and absolute errors follow:
+  1    0.13751D-08    0.10042D-08    0.37092D-09
+  2    0.46182D-09    0.18000D-07    0.17538D-07
+  3    0.41812-130    0.00000D+00    0.41812-130
+  4    0.11651-128   -0.60430D-78    0.60430D-78
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        390 f-s =        495 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1   -0.67751D-25    0.61813D-30    0.67751D-25
+  2    0.67162D-25    0.89637D-30    0.67161D-25
+  3   -0.11972D-21    0.27384D-26    0.11972D-21
+  4    0.20700D-08    0.20612D-08    0.88533D-11
+  5    0.45402D-04    0.45400D-04    0.22293D-08
+  6    0.13534D+00    0.13534D+00    0.32690D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        284
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        426 f-s =        529 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1   -0.44272D-19   -0.10768D-27    0.44272D-19
+  2   -0.17172D-19    0.54550D-27    0.17172D-19
+  3   -0.20650D-22    0.27385D-26    0.20652D-22
+  4    0.20679D-08    0.20612D-08    0.67196D-11
+  5    0.45402D-04    0.45400D-04    0.16949D-08
+  6    0.13534D+00    0.13534D+00    0.25365D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        284
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        844 f-s =       1015 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1    0.33183D-10    0.13312D-21    0.33183D-10
+  2   -0.18365D-10   -0.23259D-21    0.18365D-10
+  3   -0.25756D-30    0.15179D-34    0.25758D-30
+  4    0.20689D-08    0.20612D-08    0.77617D-11
+  5    0.45401D-04    0.45400D-04    0.84210D-09
+  6    0.13534D+00    0.13534D+00    0.36199D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        284
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       3856 f-s =       4465 J-s =         70
+ Computed and reference solutions and absolute errors follow:
+  1    0.68319D-09   -0.31006D-13    0.68322D-09
+  2    0.10516D-07    0.38628D-13    0.10516D-07
+  3    0.18048D-34    0.18049D-34    0.49484D-39
+  4    0.20612D-08    0.20612D-08    0.52562D-16
+  5    0.45400D-04    0.45400D-04    0.35873D-13
+  6    0.13534D+00    0.13534D+00    0.34528D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        284
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        525 f-s =        643 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1    0.40033D-03    0.40032D-03    0.32933D-08
+  2    0.40016D-03    0.40016D-03    0.16263D-18
+  3    0.40000D-03    0.40000D-03    0.21684D-18
+  4    0.20000D-01    0.20000D-01    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        465 f-s =        579 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.31902D-09
+  2    0.40000D-01    0.40000D-01    0.14183D-10
+  3    0.40016D-01    0.40016D-01    0.13096D-10
+  4    0.40032D-01    0.40032D-01    0.12910D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        469 f-s =        571 J-s =         13
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.94382D-09
+  2    0.40000D+00    0.40000D+00    0.41947D-09
+  3    0.41600D+00    0.41600D+00    0.42161D-09
+  4    0.43331D+00    0.43331D+00    0.45066D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        483 f-s =        605 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.29364D-09
+  2    0.40000D+01    0.40000D+01    0.13051D-08
+  3    0.20000D+02    0.20000D+02    0.11913D-07
+  4    0.42000D+03    0.42000D+03    0.49305D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        478 f-s =        608 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.10173D-09
+  2    0.80000D+01    0.80000D+01    0.90426D-09
+  3    0.13600D+03    0.13600D+03    0.30514D-07
+  4    0.37128D+05    0.37128D+05    0.16797D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        574 f-s =        823 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.22242D+02    0.22242D+02    0.18208D-06
+  2    0.27111D+02    0.27111D+02    0.14509D-06
+  3    0.40000D+03    0.40000D+03    0.11369D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        527 f-s =        755 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.26901D-08
+  2    0.91855D-01    0.91855D-01    0.12786D-08
+  3    0.28416D+02    0.28416D+02    0.26902D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        580 f-s =        727 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.11006D-09
+  2    0.56309D-02    0.56309D-02    0.21453D-12
+  3    0.36024D+00    0.36024D+00    0.11006D-09
+  4    0.31706D+00    0.31706D+00    0.55135D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =         93 f-s =        163 J-s =          4
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.38194D-07
+  2    0.14023D+01    0.14023D+01    0.38196D-07
+  3   -0.18934D-05   -0.18934D-05    0.23352D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        424 f-s =        637 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99164D+00   -0.99164D+00    0.50949D-07
+  2    0.98334D+00    0.98334D+00    0.57433D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         68
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         95
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        231 f-s =        366 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.18072D-08
+  2    0.14760D+00    0.14760D+00    0.18414D-08
+  3    0.57731D-07    0.57731D-07    0.22563D-15
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        182 f-s =        269 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D-07    0.10000D-07    0.81464D-15
+  2    0.43704D-13   -0.16253D-18    0.43704D-13
+  3   -0.18757D-11    0.20260D-16    0.18757D-11
+  4    0.40561D-10   -0.18531D-14    0.40563D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.20000D+01
+    0.00000D+00
+ Steps =        726 f-s =        889 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1   -0.11587D+01   -0.11587D+01    0.18099D-06
+  2    0.43047D+00    0.43047D+00    0.18211D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         68
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         95
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =        529 f-s =        771 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1    0.42531D-02    0.42531D-02    0.22381D-08
+  2    0.53170D-02    0.53170D-02    0.27809D-08
+  3    0.26276D+02    0.26276D+02    0.20068D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.00000D+00
+   -0.20000D+01
+   -0.10000D+01
+   -0.10000D+01
+ Steps =       1062 f-s =       1274 J-s =         24
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+02    0.20000D+02    0.21182D-09
+  2   -0.20000D+02   -0.20000D+02    0.21105D-09
+  3   -0.22494D-06   -0.22476D-06    0.17678D-09
+  4    0.22501D-06    0.22476D-06    0.24609D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.17600D-02
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         42 f-s =         75 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.16181D-02    0.16181D-02    0.51084D-08
+  2    0.13823D-09    0.13822D-09    0.28748D-14
+  3    0.82517D-11    0.82516D-11    0.14515D-15
+  4    0.12997D-09    0.12997D-09    0.27296D-14
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.76100D+03
+    0.00000D+00
+    0.60000D+03
+    0.10000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =       1025 f-s =       1620 J-s =         28
+ Computed and reference solutions and absolute errors follow:
+  1    0.12111D+04    0.12111D+04    0.48443D-06
+  2    0.12711D-04    0.12711D-04    0.30161D-09
+  3    0.12086D+04    0.12086D+04    0.48092D-06
+  4    0.32420D-03    0.32420D-03    0.29961D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        238 f-s =        314 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.28042D-08
+  2    0.13300D-02    0.13300D-02    0.95250D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         72
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.40000D-05
+    0.10000D-05
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =         69 f-s =         95 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.58916D-13    0.32359D-12    0.26468D-12
+  2    0.23607D-06    0.23607D-06    0.70149D-12
+  3    0.76399D-13    0.76393D-13    0.58240D-17
+  4    0.76393D-06    0.76393D-06    0.51567D-12
+  5    0.32361D-05    0.32361D-05    0.13075D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        225
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        106
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.40000D+01
+    0.11000D+01
+    0.40000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       3019 f-s =       4554 J-s =         60
+ Computed and reference solutions and absolute errors follow:
+  1    0.44183D+01    0.44183D+01    0.15118D-05
+  2    0.12902D+01    0.12902D+01    0.13071D-06
+  3    0.30193D+01    0.30193D+01    0.60597D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        113
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        100
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.33650D-06
+    0.82610D-02
+    0.16420D-02
+    0.93800D-05
+ Nonnegativity will be enforced for this problem.
+ Steps =        235 f-s =        416 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.17136D-06    0.17136D-06    0.19083D-15
+  2    0.37136D-02    0.37136D-02    0.42098D-11
+  3    0.61893D-02    0.61893D-02    0.70164D-11
+  4    0.95451D-05    0.95451D-05    0.19083D-15
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        591 f-s =        713 J-s =         17
+ Computed and reference solutions and absolute errors follow:
+  1    0.45400D-04    0.45400D-04    0.33624D-09
+  2    0.20624D-08    0.20612D-08    0.12571D-11
+  3    0.92264D-53    0.28230D-55    0.91981D-53
+  4    0.81954D-50    0.52358D-51    0.76718D-50
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        700 f-s =        945 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D-01    0.99999D-01    0.58657D-10
+  2    0.20000D+00    0.20000D+00    0.11731D-09
+  3    0.30000D+00    0.30000D+00    0.16405D-09
+  4    0.40000D+00    0.40000D+00    0.19414D-09
+  5    0.50000D+00    0.50000D+00    0.20452D-09
+  6    0.60000D+00    0.60000D+00    0.19414D-09
+  7    0.70000D+00    0.70000D+00    0.16405D-09
+  8    0.80000D+00    0.80000D+00    0.11731D-09
+  9    0.90000D+00    0.90000D+00    0.58656D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        335
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        109
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        787 f-s =        928 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.24105D-11
+  2    0.13685D-01    0.13685D-01    0.24313D-10
+  3    0.15037D+01    0.15037D+01    0.26783D-08
+  4    0.13534D+00    0.13534D+00    0.24717D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        999 f-s =       1284 J-s =         22
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.54749D-09
+  2    0.10353D-10    0.12659D-13    0.10341D-10
+  3   -0.96722D-30    0.19115D-41    0.96722D-30
+  4    0.36835D-45    0.22774D-54    0.36835D-45
+  5   -0.26039D-66    0.00000D+00    0.26039D-66
+  6   -0.24198D-87    0.00000D+00    0.24198D-87
+  7   -0.55392-112    0.00000D+00    0.55392-112
+  8    0.11561-137    0.00000D+00    0.11561-137
+  9   -0.36661-165    0.00000D+00    0.36661-165
+ 10   -0.13089-187    0.00000D+00    0.13089-187
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        390
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        111
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =       3262 f-s =       3798 J-s =         62
+ Computed and reference solutions and absolute errors follow:
+  1    0.98636D-09    0.10042D-08    0.17811D-10
+  2    0.15563D-07    0.18000D-07    0.24371D-08
+  3    0.14111-226    0.00000D+00    0.14111-226
+  4    0.21649-224   -0.60430D-78    0.60430D-78
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        558 f-s =        697 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1   -0.31672D-32    0.61813D-30    0.62130D-30
+  2   -0.11777D-32    0.89637D-30    0.89754D-30
+  3    0.28935D-26    0.27384D-26    0.15509D-27
+  4    0.20625D-08    0.20612D-08    0.13589D-11
+  5    0.45400D-04    0.45400D-04    0.36754D-09
+  6    0.13534D+00    0.13534D+00    0.57915D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        194
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        598 f-s =        735 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1   -0.17676D-26   -0.10768D-27    0.16600D-26
+  2    0.10594D-25    0.54550D-27    0.10049D-25
+  3    0.48294D-27    0.27385D-26    0.22556D-26
+  4    0.20623D-08    0.20612D-08    0.11767D-11
+  5    0.45400D-04    0.45400D-04    0.32141D-09
+  6    0.13534D+00    0.13534D+00    0.51098D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        194
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1129 f-s =       1323 J-s =         24
+ Computed and reference solutions and absolute errors follow:
+  1   -0.17084D-11    0.13312D-21    0.17084D-11
+  2    0.29903D-11   -0.23259D-21    0.29903D-11
+  3    0.12799D-34    0.15179D-34    0.23800D-35
+  4    0.20608D-08    0.20612D-08    0.30844D-12
+  5    0.45400D-04    0.45400D-04    0.19133D-09
+  6    0.13534D+00    0.13534D+00    0.16759D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        194
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       4689 f-s =       5407 J-s =         86
+ Computed and reference solutions and absolute errors follow:
+  1    0.51656D-08   -0.31006D-13    0.51657D-08
+  2   -0.43354D-09    0.38628D-13    0.43357D-09
+  3    0.18048D-34    0.18049D-34    0.49621D-39
+  4    0.20612D-08    0.20612D-08    0.52696D-16
+  5    0.45400D-04    0.45400D-04    0.35968D-13
+  6    0.13534D+00    0.13534D+00    0.33862D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        194
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        736 f-s =        886 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1    0.40032D-03    0.40032D-03    0.25390D-09
+  2    0.40016D-03    0.40016D-03    0.18974D-17
+  3    0.40000D-03    0.40000D-03    0.21684D-18
+  4    0.20000D-01    0.20000D-01    0.34694D-16
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        669 f-s =        804 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.79985D-09
+  2    0.40000D-01    0.40000D-01    0.35541D-10
+  3    0.40016D-01    0.40016D-01    0.32837D-10
+  4    0.40032D-01    0.40032D-01    0.32367D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        659 f-s =        791 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.34163D-09
+  2    0.40000D+00    0.40000D+00    0.15184D-09
+  3    0.41600D+00    0.41600D+00    0.15263D-09
+  4    0.43331D+00    0.43331D+00    0.16315D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        694 f-s =        826 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.22888D-10
+  2    0.40000D+01    0.40000D+01    0.10173D-09
+  3    0.20000D+02    0.20000D+02    0.92857D-09
+  4    0.42000D+03    0.42000D+03    0.38432D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        703 f-s =        839 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.98963D-11
+  2    0.80000D+01    0.80000D+01    0.87970D-10
+  3    0.13600D+03    0.13600D+03    0.29684D-08
+  4    0.37128D+05    0.37128D+05    0.16340D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        728 f-s =        998 J-s =         17
+ Computed and reference solutions and absolute errors follow:
+  1    0.22242D+02    0.22242D+02    0.54675D-07
+  2    0.27111D+02    0.27111D+02    0.54525D-07
+  3    0.40000D+03    0.40000D+03    0.11369D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        717 f-s =       1026 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.47143D-09
+  2    0.91855D-01    0.91855D-01    0.20061D-09
+  3    0.28416D+02    0.28416D+02    0.47145D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        836 f-s =        999 J-s =         21
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.48293D-10
+  2    0.56309D-02    0.56309D-02    0.94155D-13
+  3    0.36024D+00    0.36024D+00    0.48292D-10
+  4    0.31706D+00    0.31706D+00    0.24192D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =        123 f-s =        189 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.12068D-08
+  2    0.14023D+01    0.14023D+01    0.12067D-08
+  3   -0.18934D-05   -0.18934D-05    0.12008D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        561 f-s =        925 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99164D+00   -0.99164D+00    0.10014D-07
+  2    0.98334D+00    0.98334D+00    0.11142D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         62
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         95
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        278 f-s =        462 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.24453D-09
+  2    0.14760D+00    0.14760D+00    0.24453D-09
+  3    0.57731D-07    0.57731D-07    0.30128D-16
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        227 f-s =        342 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D-07    0.10000D-07    0.12071D-16
+  2   -0.74956D-15   -0.16253D-18    0.74940D-15
+  3    0.41118D-13    0.20260D-16    0.41097D-13
+  4   -0.19017D-11   -0.18531D-14    0.18998D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.20000D+01
+    0.00000D+00
+ Steps =       1041 f-s =       1214 J-s =         21
+ Computed and reference solutions and absolute errors follow:
+  1   -0.11587D+01   -0.11587D+01    0.35081D-07
+  2    0.43047D+00    0.43047D+00    0.36829D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         62
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         95
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =        660 f-s =        869 J-s =         17
+ Computed and reference solutions and absolute errors follow:
+  1    0.42531D-02    0.42531D-02    0.31829D-09
+  2    0.53170D-02    0.53170D-02    0.39099D-09
+  3    0.26276D+02    0.26276D+02    0.10193D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.00000D+00
+   -0.20000D+01
+   -0.10000D+01
+   -0.10000D+01
+ Steps =       2969 f-s =       9199 J-s =        931
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+02    0.20000D+02    0.45631D-10
+  2   -0.20000D+02   -0.20000D+02    0.23675D-10
+  3   -0.22375D-06   -0.22476D-06    0.10150D-08
+  4    0.22585D-06    0.22476D-06    0.10843D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.17600D-02
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         66 f-s =        100 J-s =          1
+ Computed and reference solutions and absolute errors follow:
+  1    0.16181D-02    0.16181D-02    0.33732D-08
+  2    0.13825D-09    0.13822D-09    0.22262D-13
+  3    0.82528D-11    0.82516D-11    0.12422D-14
+  4    0.12999D-09    0.12997D-09    0.21019D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.76100D+03
+    0.00000D+00
+    0.60000D+03
+    0.10000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =       1299 f-s =       1994 J-s =         33
+ Computed and reference solutions and absolute errors follow:
+  1    0.12111D+04    0.12111D+04    0.28004D-06
+  2    0.12711D-04    0.12711D-04    0.36764D-13
+  3    0.12086D+04    0.12086D+04    0.27798D-06
+  4    0.32420D-03    0.32420D-03    0.36650D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        128
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        323 f-s =        395 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.27797D-09
+  2    0.13300D-02    0.13300D-02    0.94395D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         66
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.40000D-05
+    0.10000D-05
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        137 f-s =        182 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.32098D-12    0.32359D-12    0.26060D-14
+  2    0.23606D-06    0.23607D-06    0.79045D-11
+  3    0.76470D-13    0.76393D-13    0.77105D-16
+  4    0.76394D-06    0.76393D-06    0.78984D-11
+  5    0.32362D-05    0.32361D-05    0.14171D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        165
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        106
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.40000D+01
+    0.11000D+01
+    0.40000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       4324 f-s =       6276 J-s =         81
+ Computed and reference solutions and absolute errors follow:
+  1    0.44183D+01    0.44183D+01    0.12712D-06
+  2    0.12902D+01    0.12902D+01    0.11219D-07
+  3    0.30193D+01    0.30193D+01    0.52407D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         95
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        100
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.33650D-06
+    0.82610D-02
+    0.16420D-02
+    0.93800D-05
+ Nonnegativity will be enforced for this problem.
+ Steps =        355 f-s =        603 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.17136D-06    0.17136D-06    0.15208D-15
+  2    0.37136D-02    0.37136D-02    0.33549D-11
+  3    0.61893D-02    0.61893D-02    0.55915D-11
+  4    0.95451D-05    0.95451D-05    0.15207D-15
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        128
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        591 f-s =        789 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1    0.45400D-04    0.45400D-04    0.33624D-09
+  2    0.20624D-08    0.20612D-08    0.12571D-11
+  3    0.92261D-53    0.28230D-55    0.91979D-53
+  4    0.81952D-50    0.52358D-51    0.76717D-50
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        700 f-s =       1186 J-s =         23
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D-01    0.99999D-01    0.65130D-10
+  2    0.20000D+00    0.20000D+00    0.13025D-09
+  3    0.30000D+00    0.30000D+00    0.18215D-09
+  4    0.40000D+00    0.40000D+00    0.21557D-09
+  5    0.50000D+00    0.50000D+00    0.22710D-09
+  6    0.60000D+00    0.60000D+00    0.21558D-09
+  7    0.70000D+00    0.70000D+00    0.18217D-09
+  8    0.80000D+00    0.80000D+00    0.13027D-09
+  9    0.90000D+00    0.90000D+00    0.65144D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        425
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =       1072
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        787 f-s =       1056 J-s =         25
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.24100D-11
+  2    0.13685D-01    0.13685D-01    0.24308D-10
+  3    0.15037D+01    0.15037D+01    0.26778D-08
+  4    0.13534D+00    0.13534D+00    0.24713D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        999 f-s =       1684 J-s =         31
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.54749D-09
+  2    0.10354D-10    0.12659D-13    0.10341D-10
+  3   -0.96715D-30    0.19115D-41    0.96715D-30
+  4    0.36841D-45    0.22774D-54    0.36841D-45
+  5   -0.26041D-66    0.00000D+00    0.26041D-66
+  6   -0.24201D-87    0.00000D+00    0.24201D-87
+  7   -0.55398-112    0.00000D+00    0.55398-112
+  8    0.11562-137    0.00000D+00    0.11562-137
+  9   -0.36664-165    0.00000D+00    0.36664-165
+ 10   -0.13091-187    0.00000D+00    0.13091-187
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        500
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =       1271
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =       3264 f-s =       4290 J-s =         94
+ Computed and reference solutions and absolute errors follow:
+  1    0.98635D-09    0.10042D-08    0.17812D-10
+  2    0.15563D-07    0.18000D-07    0.24371D-08
+  3    0.21254-228    0.00000D+00    0.21254-228
+  4    0.60845-226   -0.60430D-78    0.60430D-78
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        558 f-s =        823 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1   -0.31672D-32    0.61813D-30    0.62130D-30
+  2   -0.11778D-32    0.89637D-30    0.89754D-30
+  3    0.28935D-26    0.27384D-26    0.15509D-27
+  4    0.20625D-08    0.20612D-08    0.13589D-11
+  5    0.45400D-04    0.45400D-04    0.36754D-09
+  6    0.13534D+00    0.13534D+00    0.57915D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        236
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        583
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        598 f-s =        867 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1   -0.17677D-26   -0.10768D-27    0.16600D-26
+  2    0.10594D-25    0.54550D-27    0.10049D-25
+  3    0.48294D-27    0.27385D-26    0.22556D-26
+  4    0.20623D-08    0.20612D-08    0.11767D-11
+  5    0.45400D-04    0.45400D-04    0.32141D-09
+  6    0.13534D+00    0.13534D+00    0.51097D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        236
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        583
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1129 f-s =       1563 J-s =         32
+ Computed and reference solutions and absolute errors follow:
+  1   -0.17086D-11    0.13312D-21    0.17086D-11
+  2    0.29899D-11   -0.23259D-21    0.29899D-11
+  3    0.12798D-34    0.15179D-34    0.23801D-35
+  4    0.20608D-08    0.20612D-08    0.30845D-12
+  5    0.45400D-04    0.45400D-04    0.19134D-09
+  6    0.13534D+00    0.13534D+00    0.16759D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        236
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        583
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       4689 f-s =       6427 J-s =        128
+ Computed and reference solutions and absolute errors follow:
+  1    0.51656D-08   -0.31006D-13    0.51657D-08
+  2   -0.43353D-09    0.38628D-13    0.43357D-09
+  3    0.18048D-34    0.18049D-34    0.49621D-39
+  4    0.20612D-08    0.20612D-08    0.52697D-16
+  5    0.45400D-04    0.45400D-04    0.35981D-13
+  6    0.13534D+00    0.13534D+00    0.42771D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        236
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        583
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        736 f-s =       1006 J-s =         24
+ Computed and reference solutions and absolute errors follow:
+  1    0.40032D-03    0.40032D-03    0.24187D-09
+  2    0.40016D-03    0.40016D-03    0.10842D-18
+  3    0.40000D-03    0.40000D-03    0.32526D-18
+  4    0.20000D-01    0.20000D-01    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        669 f-s =        908 J-s =         22
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.80670D-09
+  2    0.40000D-01    0.40000D-01    0.35850D-10
+  3    0.40016D-01    0.40016D-01    0.33128D-10
+  4    0.40032D-01    0.40032D-01    0.32641D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        654 f-s =        883 J-s =         20
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.11422D-09
+  2    0.40000D+00    0.40000D+00    0.50766D-10
+  3    0.41600D+00    0.41600D+00    0.51026D-10
+  4    0.43331D+00    0.43331D+00    0.54542D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        683 f-s =        944 J-s =         25
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.22531D-10
+  2    0.40000D+01    0.40000D+01    0.10014D-09
+  3    0.20000D+02    0.20000D+02    0.91408D-09
+  4    0.42000D+03    0.42000D+03    0.37833D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        709 f-s =        950 J-s =         22
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.18575D-10
+  2    0.80000D+01    0.80000D+01    0.16511D-09
+  3    0.13600D+03    0.13600D+03    0.55715D-08
+  4    0.37128D+05    0.37128D+05    0.30670D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        723 f-s =       1169 J-s =         28
+ Computed and reference solutions and absolute errors follow:
+  1    0.22242D+02    0.22242D+02    0.50348D-07
+  2    0.27111D+02    0.27111D+02    0.50422D-07
+  3    0.40000D+03    0.40000D+03    0.11369D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        661 f-s =       1029 J-s =         26
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.34172D-09
+  2    0.91855D-01    0.91855D-01    0.13356D-09
+  3    0.28416D+02    0.28416D+02    0.34173D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        833 f-s =       1156 J-s =         29
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.10476D-10
+  2    0.56309D-02    0.56309D-02    0.20433D-13
+  3    0.36024D+00    0.36024D+00    0.10476D-10
+  4    0.31706D+00    0.31706D+00    0.52482D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =        124 f-s =        218 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.34319D-09
+  2    0.14023D+01    0.14023D+01    0.34321D-09
+  3   -0.18934D-05   -0.18934D-05    0.17254D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        447 f-s =        754 J-s =         17
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99164D+00   -0.99164D+00    0.93595D-08
+  2    0.98334D+00    0.98334D+00    0.11106D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         68
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        183
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        228 f-s =        409 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.41084D-09
+  2    0.14760D+00    0.14760D+00    0.41084D-09
+  3    0.57731D-07    0.57731D-07    0.50528D-16
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        237 f-s =        382 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D-07    0.10000D-07    0.10285D-15
+  2   -0.79886D-14   -0.16253D-18    0.79885D-14
+  3    0.13456D-14    0.20260D-16    0.13253D-14
+  4    0.14058D-09   -0.18531D-14    0.14058D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.20000D+01
+    0.00000D+00
+ Steps =       1042 f-s =       1313 J-s =         34
+ Computed and reference solutions and absolute errors follow:
+  1   -0.11587D+01   -0.11587D+01    0.28419D-07
+  2    0.43047D+00    0.43047D+00    0.30750D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         68
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        183
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =        609 f-s =        857 J-s =         20
+ Computed and reference solutions and absolute errors follow:
+  1    0.42531D-02    0.42531D-02    0.85970D-09
+  2    0.53170D-02    0.53170D-02    0.10724D-08
+  3    0.26276D+02    0.26276D+02    0.37776D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.00000D+00
+   -0.20000D+01
+   -0.10000D+01
+   -0.10000D+01
+ Steps =       3728 f-s =      16705 J-s =       1213
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+02    0.20000D+02    0.88853D-08
+  2   -0.20000D+02   -0.20000D+02    0.88609D-08
+  3   -0.22571D-06   -0.22476D-06    0.94635D-09
+  4    0.20607D-06    0.22476D-06    0.18693D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.17600D-02
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         66 f-s =        136 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.16181D-02    0.16181D-02    0.32759D-08
+  2    0.13824D-09    0.13822D-09    0.18252D-13
+  3    0.82527D-11    0.82516D-11    0.11519D-14
+  4    0.12999D-09    0.12997D-09    0.17101D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.76100D+03
+    0.00000D+00
+    0.60000D+03
+    0.10000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =       1156 f-s =       2091 J-s =         48
+ Computed and reference solutions and absolute errors follow:
+  1    0.12111D+04    0.12111D+04    0.36814D-06
+  2    0.12711D-04    0.12711D-04    0.47966D-13
+  3    0.12086D+04    0.12086D+04    0.36541D-06
+  4    0.32420D-03    0.32420D-03    0.47820D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        148
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        351
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        323 f-s =        419 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.28170D-09
+  2    0.13300D-02    0.13300D-02    0.95673D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         72
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        185
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.40000D-05
+    0.10000D-05
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        131 f-s =        217 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.53504D-12    0.32359D-12    0.21145D-12
+  2    0.23605D-06    0.23607D-06    0.15924D-10
+  3    0.76394D-13    0.76393D-13    0.91999D-18
+  4    0.76395D-06    0.76393D-06    0.15877D-10
+  5    0.32364D-05    0.32361D-05    0.28536D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        195
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        461
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.40000D+01
+    0.11000D+01
+    0.40000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       4080 f-s =       6552 J-s =        146
+ Computed and reference solutions and absolute errors follow:
+  1    0.44183D+01    0.44183D+01    0.15492D-06
+  2    0.12902D+01    0.12902D+01    0.13336D-07
+  3    0.30193D+01    0.30193D+01    0.61215D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        259
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.33650D-06
+    0.82610D-02
+    0.16420D-02
+    0.93800D-05
+ Nonnegativity will be enforced for this problem.
+ Steps =        333 f-s =        665 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1    0.17136D-06    0.17136D-06    0.14378D-15
+  2    0.37136D-02    0.37136D-02    0.31718D-11
+  3    0.61893D-02    0.61893D-02    0.52863D-11
+  4    0.95451D-05    0.95451D-05    0.14377D-15
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        148
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        351
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        591 f-s =        713 J-s =         17
+ Computed and reference solutions and absolute errors follow:
+  1    0.45400D-04    0.45400D-04    0.33624D-09
+  2    0.20624D-08    0.20612D-08    0.12571D-11
+  3    0.92264D-53    0.28230D-55    0.91981D-53
+  4    0.81954D-50    0.52358D-51    0.76718D-50
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        700 f-s =        945 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D-01    0.99999D-01    0.58657D-10
+  2    0.20000D+00    0.20000D+00    0.11731D-09
+  3    0.30000D+00    0.30000D+00    0.16405D-09
+  4    0.40000D+00    0.40000D+00    0.19414D-09
+  5    0.50000D+00    0.50000D+00    0.20452D-09
+  6    0.60000D+00    0.60000D+00    0.19414D-09
+  7    0.70000D+00    0.70000D+00    0.16405D-09
+  8    0.80000D+00    0.80000D+00    0.11731D-09
+  9    0.90000D+00    0.90000D+00    0.58656D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        551
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        109
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        787 f-s =        928 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.24105D-11
+  2    0.13685D-01    0.13685D-01    0.24313D-10
+  3    0.15037D+01    0.15037D+01    0.26783D-08
+  4    0.13534D+00    0.13534D+00    0.24717D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        999 f-s =       1284 J-s =         22
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.54749D-09
+  2    0.10353D-10    0.12659D-13    0.10341D-10
+  3   -0.96722D-30    0.19115D-41    0.96722D-30
+  4    0.36835D-45    0.22774D-54    0.36835D-45
+  5   -0.26039D-66    0.00000D+00    0.26039D-66
+  6   -0.24198D-87    0.00000D+00    0.24198D-87
+  7   -0.55392-112    0.00000D+00    0.55392-112
+  8    0.11561-137    0.00000D+00    0.11561-137
+  9   -0.36661-165    0.00000D+00    0.36661-165
+ 10   -0.13089-187    0.00000D+00    0.13089-187
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        660
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        111
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =       3262 f-s =       3798 J-s =         62
+ Computed and reference solutions and absolute errors follow:
+  1    0.98636D-09    0.10042D-08    0.17811D-10
+  2    0.15563D-07    0.18000D-07    0.24371D-08
+  3    0.14111-226    0.00000D+00    0.14111-226
+  4    0.21649-224   -0.60430D-78    0.60430D-78
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        558 f-s =        697 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1   -0.31672D-32    0.61813D-30    0.62130D-30
+  2   -0.11777D-32    0.89637D-30    0.89754D-30
+  3    0.28935D-26    0.27384D-26    0.15509D-27
+  4    0.20625D-08    0.20612D-08    0.13589D-11
+  5    0.45400D-04    0.45400D-04    0.36754D-09
+  6    0.13534D+00    0.13534D+00    0.57915D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        284
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        598 f-s =        735 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1   -0.17676D-26   -0.10768D-27    0.16600D-26
+  2    0.10594D-25    0.54550D-27    0.10049D-25
+  3    0.48294D-27    0.27385D-26    0.22556D-26
+  4    0.20623D-08    0.20612D-08    0.11767D-11
+  5    0.45400D-04    0.45400D-04    0.32141D-09
+  6    0.13534D+00    0.13534D+00    0.51098D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        284
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1129 f-s =       1323 J-s =         24
+ Computed and reference solutions and absolute errors follow:
+  1   -0.17084D-11    0.13312D-21    0.17084D-11
+  2    0.29903D-11   -0.23259D-21    0.29903D-11
+  3    0.12799D-34    0.15179D-34    0.23800D-35
+  4    0.20608D-08    0.20612D-08    0.30844D-12
+  5    0.45400D-04    0.45400D-04    0.19133D-09
+  6    0.13534D+00    0.13534D+00    0.16759D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        284
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       4689 f-s =       5407 J-s =         86
+ Computed and reference solutions and absolute errors follow:
+  1    0.51656D-08   -0.31006D-13    0.51657D-08
+  2   -0.43354D-09    0.38628D-13    0.43357D-09
+  3    0.18048D-34    0.18049D-34    0.49621D-39
+  4    0.20612D-08    0.20612D-08    0.52696D-16
+  5    0.45400D-04    0.45400D-04    0.35968D-13
+  6    0.13534D+00    0.13534D+00    0.33862D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        284
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        736 f-s =        886 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1    0.40032D-03    0.40032D-03    0.25390D-09
+  2    0.40016D-03    0.40016D-03    0.18974D-17
+  3    0.40000D-03    0.40000D-03    0.21684D-18
+  4    0.20000D-01    0.20000D-01    0.34694D-16
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        669 f-s =        804 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.79985D-09
+  2    0.40000D-01    0.40000D-01    0.35541D-10
+  3    0.40016D-01    0.40016D-01    0.32837D-10
+  4    0.40032D-01    0.40032D-01    0.32367D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        659 f-s =        791 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.34163D-09
+  2    0.40000D+00    0.40000D+00    0.15184D-09
+  3    0.41600D+00    0.41600D+00    0.15263D-09
+  4    0.43331D+00    0.43331D+00    0.16315D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        694 f-s =        826 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.22888D-10
+  2    0.40000D+01    0.40000D+01    0.10173D-09
+  3    0.20000D+02    0.20000D+02    0.92857D-09
+  4    0.42000D+03    0.42000D+03    0.38432D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        703 f-s =        839 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.98963D-11
+  2    0.80000D+01    0.80000D+01    0.87970D-10
+  3    0.13600D+03    0.13600D+03    0.29684D-08
+  4    0.37128D+05    0.37128D+05    0.16340D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        728 f-s =        998 J-s =         17
+ Computed and reference solutions and absolute errors follow:
+  1    0.22242D+02    0.22242D+02    0.54675D-07
+  2    0.27111D+02    0.27111D+02    0.54525D-07
+  3    0.40000D+03    0.40000D+03    0.11369D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        717 f-s =       1026 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.47143D-09
+  2    0.91855D-01    0.91855D-01    0.20061D-09
+  3    0.28416D+02    0.28416D+02    0.47145D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        836 f-s =        999 J-s =         21
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.48293D-10
+  2    0.56309D-02    0.56309D-02    0.94155D-13
+  3    0.36024D+00    0.36024D+00    0.48292D-10
+  4    0.31706D+00    0.31706D+00    0.24192D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =        123 f-s =        189 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.12068D-08
+  2    0.14023D+01    0.14023D+01    0.12067D-08
+  3   -0.18934D-05   -0.18934D-05    0.12008D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        561 f-s =        925 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99164D+00   -0.99164D+00    0.10014D-07
+  2    0.98334D+00    0.98334D+00    0.11142D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         68
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         95
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        278 f-s =        462 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.24453D-09
+  2    0.14760D+00    0.14760D+00    0.24453D-09
+  3    0.57731D-07    0.57731D-07    0.30128D-16
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        227 f-s =        342 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D-07    0.10000D-07    0.12071D-16
+  2   -0.74956D-15   -0.16253D-18    0.74940D-15
+  3    0.41118D-13    0.20260D-16    0.41097D-13
+  4   -0.19017D-11   -0.18531D-14    0.18998D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.20000D+01
+    0.00000D+00
+ Steps =       1041 f-s =       1214 J-s =         21
+ Computed and reference solutions and absolute errors follow:
+  1   -0.11587D+01   -0.11587D+01    0.35081D-07
+  2    0.43047D+00    0.43047D+00    0.36829D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         68
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         95
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =        660 f-s =        869 J-s =         17
+ Computed and reference solutions and absolute errors follow:
+  1    0.42531D-02    0.42531D-02    0.31829D-09
+  2    0.53170D-02    0.53170D-02    0.39099D-09
+  3    0.26276D+02    0.26276D+02    0.10193D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.00000D+00
+   -0.20000D+01
+   -0.10000D+01
+   -0.10000D+01
+ Steps =       2969 f-s =       9199 J-s =        931
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+02    0.20000D+02    0.45631D-10
+  2   -0.20000D+02   -0.20000D+02    0.23675D-10
+  3   -0.22375D-06   -0.22476D-06    0.10150D-08
+  4    0.22585D-06    0.22476D-06    0.10843D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.17600D-02
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         66 f-s =        100 J-s =          1
+ Computed and reference solutions and absolute errors follow:
+  1    0.16181D-02    0.16181D-02    0.33732D-08
+  2    0.13825D-09    0.13822D-09    0.22262D-13
+  3    0.82528D-11    0.82516D-11    0.12422D-14
+  4    0.12999D-09    0.12997D-09    0.21019D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.76100D+03
+    0.00000D+00
+    0.60000D+03
+    0.10000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =       1299 f-s =       1994 J-s =         33
+ Computed and reference solutions and absolute errors follow:
+  1    0.12111D+04    0.12111D+04    0.28004D-06
+  2    0.12711D-04    0.12711D-04    0.36764D-13
+  3    0.12086D+04    0.12086D+04    0.27798D-06
+  4    0.32420D-03    0.32420D-03    0.36650D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        323 f-s =        395 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.27797D-09
+  2    0.13300D-02    0.13300D-02    0.94395D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         72
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.40000D-05
+    0.10000D-05
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        137 f-s =        182 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.32098D-12    0.32359D-12    0.26060D-14
+  2    0.23606D-06    0.23607D-06    0.79045D-11
+  3    0.76470D-13    0.76393D-13    0.77105D-16
+  4    0.76394D-06    0.76393D-06    0.78984D-11
+  5    0.32362D-05    0.32361D-05    0.14171D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        225
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        106
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.40000D+01
+    0.11000D+01
+    0.40000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       4324 f-s =       6276 J-s =         81
+ Computed and reference solutions and absolute errors follow:
+  1    0.44183D+01    0.44183D+01    0.12712D-06
+  2    0.12902D+01    0.12902D+01    0.11219D-07
+  3    0.30193D+01    0.30193D+01    0.52407D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        113
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        100
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.33650D-06
+    0.82610D-02
+    0.16420D-02
+    0.93800D-05
+ Nonnegativity will be enforced for this problem.
+ Steps =        355 f-s =        603 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.17136D-06    0.17136D-06    0.15208D-15
+  2    0.37136D-02    0.37136D-02    0.33549D-11
+  3    0.61893D-02    0.61893D-02    0.55915D-11
+  4    0.95451D-05    0.95451D-05    0.15207D-15
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        868 f-s =       1013 J-s =         21
+ Computed and reference solutions and absolute errors follow:
+  1    0.45400D-04    0.45400D-04    0.33886D-10
+  2    0.20613D-08    0.20612D-08    0.11428D-12
+  3   -0.18641D-65    0.28230D-55    0.28230D-55
+  4   -0.60003D-64    0.52358D-51    0.52358D-51
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        987 f-s =       1318 J-s =         24
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D-01    0.99999D-01    0.95969D-11
+  2    0.20000D+00    0.20000D+00    0.19193D-10
+  3    0.30000D+00    0.30000D+00    0.26839D-10
+  4    0.40000D+00    0.40000D+00    0.31760D-10
+  5    0.50000D+00    0.50000D+00    0.33458D-10
+  6    0.60000D+00    0.60000D+00    0.31759D-10
+  7    0.70000D+00    0.70000D+00    0.26837D-10
+  8    0.80000D+00    0.80000D+00    0.19190D-10
+  9    0.90000D+00    0.90000D+00    0.95957D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        335
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        109
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1112 f-s =       1271 J-s =         23
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.84807D-12
+  2    0.13685D-01    0.13685D-01    0.85564D-11
+  3    0.15037D+01    0.15037D+01    0.94230D-09
+  4    0.13534D+00    0.13534D+00    0.86729D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1447 f-s =       1825 J-s =         31
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.27668D-09
+  2    0.24333D-11    0.12659D-13    0.24207D-11
+  3    0.12344D-37    0.19115D-41    0.12342D-37
+  4    0.29516D-57    0.22774D-54    0.22745D-54
+  5    0.62662D-84    0.00000D+00    0.62662D-84
+  6   -0.11726-113    0.00000D+00    0.11726-113
+  7    0.11345-145    0.00000D+00    0.11345-145
+  8    0.19805-182    0.00000D+00    0.19805-182
+  9    0.19867-214    0.00000D+00    0.19867-214
+ 10   -0.11006-247    0.00000D+00    0.11006-247
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        390
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        111
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =       4785 f-s =       5478 J-s =         88
+ Computed and reference solutions and absolute errors follow:
+  1    0.99141D-09    0.10042D-08    0.12753D-10
+  2    0.17675D-07    0.18000D-07    0.32522D-09
+  3    0.00000D+00    0.00000D+00    0.00000D+00
+  4   -0.35581-306   -0.60430D-78    0.60430D-78
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        789 f-s =        950 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1    0.36739D-43    0.61813D-30    0.61813D-30
+  2   -0.90070D-44    0.89637D-30    0.89637D-30
+  3   -0.23309D-31    0.27384D-26    0.27384D-26
+  4    0.20613D-08    0.20612D-08    0.18168D-12
+  5    0.45400D-04    0.45400D-04    0.52756D-10
+  6    0.13534D+00    0.13534D+00    0.89031D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        194
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        846 f-s =       1006 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1   -0.24510D-36   -0.10768D-27    0.10768D-27
+  2   -0.23096D-36    0.54550D-27    0.54550D-27
+  3    0.11218D-31    0.27385D-26    0.27385D-26
+  4    0.20613D-08    0.20612D-08    0.17291D-12
+  5    0.45400D-04    0.45400D-04    0.50269D-10
+  6    0.13534D+00    0.13534D+00    0.84672D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        194
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1404 f-s =       1635 J-s =         29
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13628D-10    0.13312D-21    0.13628D-10
+  2    0.52820D-10   -0.23259D-21    0.52820D-10
+  3   -0.49380D-33    0.15179D-34    0.50898D-33
+  4    0.20612D-08    0.20612D-08    0.61063D-13
+  5    0.45400D-04    0.45400D-04    0.18400D-10
+  6    0.13534D+00    0.13534D+00    0.34382D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        194
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       6016 f-s =       6870 J-s =        107
+ Computed and reference solutions and absolute errors follow:
+  1    0.25725D-10   -0.31006D-13    0.25756D-10
+  2    0.18657D-11    0.38628D-13    0.18271D-11
+  3    0.18048D-34    0.18049D-34    0.44729D-39
+  4    0.20612D-08    0.20612D-08    0.47586D-16
+  5    0.45400D-04    0.45400D-04    0.32492D-13
+  6    0.13534D+00    0.13534D+00    0.28699D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        194
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1072 f-s =       1231 J-s =         25
+ Computed and reference solutions and absolute errors follow:
+  1    0.40032D-03    0.40032D-03    0.61056D-11
+  2    0.40016D-03    0.40016D-03    0.10842D-18
+  3    0.40000D-03    0.40000D-03    0.10842D-18
+  4    0.20000D-01    0.20000D-01    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        947 f-s =       1104 J-s =         23
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.18913D-10
+  2    0.40000D-01    0.40000D-01    0.84059D-12
+  3    0.40016D-01    0.40016D-01    0.77666D-12
+  4    0.40032D-01    0.40032D-01    0.76546D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        931 f-s =       1077 J-s =         22
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.69820D-11
+  2    0.40000D+00    0.40000D+00    0.31032D-11
+  3    0.41600D+00    0.41600D+00    0.31191D-11
+  4    0.43331D+00    0.43331D+00    0.33342D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        993 f-s =       1144 J-s =         23
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.18263D-11
+  2    0.40000D+01    0.40000D+01    0.81184D-11
+  3    0.20000D+02    0.20000D+02    0.74099D-10
+  4    0.42000D+03    0.42000D+03    0.30669D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1023 f-s =       1189 J-s =         25
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.27522D-11
+  2    0.80000D+01    0.80000D+01    0.24468D-10
+  3    0.13600D+03    0.13600D+03    0.82571D-09
+  4    0.37128D+05    0.37128D+05    0.45450D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        898 f-s =       1212 J-s =         20
+ Computed and reference solutions and absolute errors follow:
+  1    0.22242D+02    0.22242D+02    0.91100D-08
+  2    0.27111D+02    0.27111D+02    0.88023D-08
+  3    0.40000D+03    0.40000D+03    0.11369D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        931 f-s =       1231 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.17097D-09
+  2    0.91855D-01    0.91855D-01    0.64880D-10
+  3    0.28416D+02    0.28416D+02    0.17097D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =       1167 f-s =       1375 J-s =         27
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.54350D-11
+  2    0.56309D-02    0.56309D-02    0.10587D-13
+  3    0.36024D+00    0.36024D+00    0.54354D-11
+  4    0.31706D+00    0.31706D+00    0.27240D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =        180 f-s =        309 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.97265D-10
+  2    0.14023D+01    0.14023D+01    0.97267D-10
+  3   -0.18934D-05   -0.18934D-05    0.37311D-15
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        669 f-s =       1022 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99164D+00   -0.99164D+00    0.99291D-09
+  2    0.98334D+00    0.98334D+00    0.11972D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         62
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         95
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        331 f-s =        473 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.23630D-10
+  2    0.14760D+00    0.14760D+00    0.23629D-10
+  3    0.57731D-07    0.57731D-07    0.29069D-17
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        316 f-s =        447 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D-07    0.10000D-07    0.32637D-17
+  2    0.17914D-15   -0.16253D-18    0.17930D-15
+  3   -0.78515D-14    0.20260D-16    0.78718D-14
+  4    0.17817D-12   -0.18531D-14    0.18003D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.20000D+01
+    0.00000D+00
+ Steps =       1510 f-s =       1728 J-s =         30
+ Computed and reference solutions and absolute errors follow:
+  1   -0.11587D+01   -0.11587D+01    0.40074D-08
+  2    0.43047D+00    0.43047D+00    0.44212D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         62
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         95
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =        870 f-s =       1101 J-s =         21
+ Computed and reference solutions and absolute errors follow:
+  1    0.42531D-02    0.42531D-02    0.41602D-10
+  2    0.53170D-02    0.53170D-02    0.51792D-10
+  3    0.26276D+02    0.26276D+02    0.23873D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.00000D+00
+   -0.20000D+01
+   -0.10000D+01
+   -0.10000D+01
+ Steps =       5489 f-s =      17557 J-s =       1754
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+02    0.20000D+02    0.15371D-08
+  2   -0.20000D+02   -0.20000D+02    0.15373D-08
+  3   -0.22630D-06   -0.22476D-06    0.15374D-08
+  4    0.22630D-06    0.22476D-06    0.15370D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.17600D-02
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         84 f-s =        130 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.16181D-02    0.16181D-02    0.67854D-09
+  2    0.13822D-09    0.13822D-09    0.20557D-15
+  3    0.82516D-11    0.82516D-11    0.36625D-18
+  4    0.12997D-09    0.12997D-09    0.20594D-15
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.76100D+03
+    0.00000D+00
+    0.60000D+03
+    0.10000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =       1742 f-s =       2681 J-s =         38
+ Computed and reference solutions and absolute errors follow:
+  1    0.12111D+04    0.12111D+04    0.40679D-07
+  2    0.12711D-04    0.12711D-04    0.52879D-14
+  3    0.12086D+04    0.12086D+04    0.40379D-07
+  4    0.32420D-03    0.32420D-03    0.52717D-14
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        128
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        443 f-s =        534 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.19253D-09
+  2    0.13300D-02    0.13300D-02    0.65394D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         66
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.40000D-05
+    0.10000D-05
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        135 f-s =        198 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.32652D-12    0.32359D-12    0.29299D-14
+  2    0.23607D-06    0.23607D-06    0.13988D-12
+  3    0.76393D-13    0.76393D-13    0.21806D-18
+  4    0.76393D-06    0.76393D-06    0.13630D-12
+  5    0.32361D-05    0.32361D-05    0.24920D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        165
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        106
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.40000D+01
+    0.11000D+01
+    0.40000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       5707 f-s =       7825 J-s =        104
+ Computed and reference solutions and absolute errors follow:
+  1    0.44183D+01    0.44183D+01    0.31099D-07
+  2    0.12902D+01    0.12902D+01    0.26903D-08
+  3    0.30193D+01    0.30193D+01    0.12260D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         95
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        100
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.33650D-06
+    0.82610D-02
+    0.16420D-02
+    0.93800D-05
+ Nonnegativity will be enforced for this problem.
+ Steps =        427 f-s =        694 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.17136D-06    0.17136D-06    0.44170D-16
+  2    0.37136D-02    0.37136D-02    0.97442D-12
+  3    0.61893D-02    0.61893D-02    0.16240D-11
+  4    0.95451D-05    0.95451D-05    0.44161D-16
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        128
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        868 f-s =       1129 J-s =         25
+ Computed and reference solutions and absolute errors follow:
+  1    0.45400D-04    0.45400D-04    0.33883D-10
+  2    0.20613D-08    0.20612D-08    0.11427D-12
+  3   -0.18805D-65    0.28230D-55    0.28230D-55
+  4   -0.61154D-64    0.52358D-51    0.52358D-51
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        986 f-s =       1661 J-s =         32
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D-01    0.99999D-01    0.91271D-11
+  2    0.20000D+00    0.20000D+00    0.18253D-10
+  3    0.30000D+00    0.30000D+00    0.25527D-10
+  4    0.40000D+00    0.40000D+00    0.30209D-10
+  5    0.50000D+00    0.50000D+00    0.31825D-10
+  6    0.60000D+00    0.60000D+00    0.30210D-10
+  7    0.70000D+00    0.70000D+00    0.25528D-10
+  8    0.80000D+00    0.80000D+00    0.18254D-10
+  9    0.90000D+00    0.90000D+00    0.91271D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        425
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =       1072
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1112 f-s =       1451 J-s =         34
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.84785D-12
+  2    0.13685D-01    0.13685D-01    0.85542D-11
+  3    0.15037D+01    0.15037D+01    0.94206D-09
+  4    0.13534D+00    0.13534D+00    0.86707D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1447 f-s =       2395 J-s =         44
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.27667D-09
+  2    0.24331D-11    0.12659D-13    0.24204D-11
+  3    0.12343D-37    0.19115D-41    0.12341D-37
+  4    0.29508D-57    0.22774D-54    0.22745D-54
+  5    0.62633D-84    0.00000D+00    0.62633D-84
+  6   -0.11719-113    0.00000D+00    0.11719-113
+  7    0.11344-145    0.00000D+00    0.11344-145
+  8    0.20330-182    0.00000D+00    0.20330-182
+  9    0.19846-214    0.00000D+00    0.19846-214
+ 10   -0.10997-247    0.00000D+00    0.10997-247
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        500
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =       1271
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =       4784 f-s =       6163 J-s =        130
+ Computed and reference solutions and absolute errors follow:
+  1    0.99141D-09    0.10042D-08    0.12753D-10
+  2    0.17675D-07    0.18000D-07    0.32522D-09
+  3    0.00000D+00    0.00000D+00    0.00000D+00
+  4    0.00000D+00   -0.60430D-78    0.60430D-78
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        789 f-s =       1136 J-s =         25
+ Computed and reference solutions and absolute errors follow:
+  1    0.36739D-43    0.61813D-30    0.61813D-30
+  2   -0.90065D-44    0.89637D-30    0.89637D-30
+  3   -0.23309D-31    0.27384D-26    0.27384D-26
+  4    0.20613D-08    0.20612D-08    0.18168D-12
+  5    0.45400D-04    0.45400D-04    0.52756D-10
+  6    0.13534D+00    0.13534D+00    0.89037D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        236
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        583
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        846 f-s =       1204 J-s =         26
+ Computed and reference solutions and absolute errors follow:
+  1   -0.24509D-36   -0.10768D-27    0.10768D-27
+  2   -0.23095D-36    0.54550D-27    0.54550D-27
+  3    0.11218D-31    0.27385D-26    0.27385D-26
+  4    0.20613D-08    0.20612D-08    0.17291D-12
+  5    0.45400D-04    0.45400D-04    0.50269D-10
+  6    0.13534D+00    0.13534D+00    0.84676D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        236
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        583
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1404 f-s =       1953 J-s =         41
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13360D-10    0.13312D-21    0.13360D-10
+  2    0.53140D-10   -0.23259D-21    0.53140D-10
+  3   -0.49307D-33    0.15179D-34    0.50825D-33
+  4    0.20612D-08    0.20612D-08    0.61062D-13
+  5    0.45400D-04    0.45400D-04    0.18400D-10
+  6    0.13534D+00    0.13534D+00    0.34387D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        236
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        583
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       6016 f-s =       8122 J-s =        158
+ Computed and reference solutions and absolute errors follow:
+  1    0.24865D-10   -0.31006D-13    0.24896D-10
+  2    0.14360D-11    0.38628D-13    0.13974D-11
+  3    0.18048D-34    0.18049D-34    0.44725D-39
+  4    0.20612D-08    0.20612D-08    0.47580D-16
+  5    0.45400D-04    0.45400D-04    0.32478D-13
+  6    0.13534D+00    0.13534D+00    0.22649D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        236
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        583
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1072 f-s =       1388 J-s =         32
+ Computed and reference solutions and absolute errors follow:
+  1    0.40032D-03    0.40032D-03    0.61009D-11
+  2    0.40016D-03    0.40016D-03    0.54210D-19
+  3    0.40000D-03    0.40000D-03    0.10842D-18
+  4    0.20000D-01    0.20000D-01    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        947 f-s =       1245 J-s =         29
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.18912D-10
+  2    0.40000D-01    0.40000D-01    0.84054D-12
+  3    0.40016D-01    0.40016D-01    0.77648D-12
+  4    0.40032D-01    0.40032D-01    0.76502D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        931 f-s =       1214 J-s =         28
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.69267D-11
+  2    0.40000D+00    0.40000D+00    0.30789D-11
+  3    0.41600D+00    0.41600D+00    0.30945D-11
+  4    0.43331D+00    0.43331D+00    0.33079D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        993 f-s =       1301 J-s =         31
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.16867D-11
+  2    0.40000D+01    0.40000D+01    0.74971D-11
+  3    0.20000D+02    0.20000D+02    0.68429D-10
+  4    0.42000D+03    0.42000D+03    0.28321D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1023 f-s =       1314 J-s =         28
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.27349D-11
+  2    0.80000D+01    0.80000D+01    0.24311D-10
+  3    0.13600D+03    0.13600D+03    0.82042D-09
+  4    0.37128D+05    0.37128D+05    0.45160D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        886 f-s =       1327 J-s =         34
+ Computed and reference solutions and absolute errors follow:
+  1    0.22242D+02    0.22242D+02    0.92818D-08
+  2    0.27111D+02    0.27111D+02    0.93494D-08
+  3    0.40000D+03    0.40000D+03    0.11369D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =       1003 f-s =       1526 J-s =         37
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.75875D-11
+  2    0.91855D-01    0.91855D-01    0.32728D-11
+  3    0.28416D+02    0.28416D+02    0.75887D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =       1147 f-s =       1545 J-s =         37
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.18702D-10
+  2    0.56309D-02    0.56309D-02    0.36496D-13
+  3    0.36024D+00    0.36024D+00    0.18704D-10
+  4    0.31706D+00    0.31706D+00    0.93705D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =        162 f-s =        296 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.45911D-10
+  2    0.14023D+01    0.14023D+01    0.45919D-10
+  3   -0.18934D-05   -0.18934D-05    0.84356D-14
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        640 f-s =       1011 J-s =         23
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99164D+00   -0.99164D+00    0.12471D-08
+  2    0.98334D+00    0.98334D+00    0.14287D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         68
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        183
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        352 f-s =        569 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.39189D-10
+  2    0.14760D+00    0.14760D+00    0.39187D-10
+  3    0.57731D-07    0.57731D-07    0.48237D-17
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        338 f-s =        547 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D-07    0.10000D-07    0.86864D-18
+  2    0.47071D-16   -0.16253D-18    0.47233D-16
+  3   -0.54946D-14    0.20260D-16    0.55149D-14
+  4    0.32244D-12   -0.18531D-14    0.32429D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.20000D+01
+    0.00000D+00
+ Steps =       1525 f-s =       1881 J-s =         48
+ Computed and reference solutions and absolute errors follow:
+  1   -0.11587D+01   -0.11587D+01    0.51991D-08
+  2    0.43047D+00    0.43047D+00    0.55394D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         68
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        183
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =        825 f-s =       1099 J-s =         27
+ Computed and reference solutions and absolute errors follow:
+  1    0.42531D-02    0.42531D-02    0.38945D-10
+  2    0.53170D-02    0.53170D-02    0.48531D-10
+  3    0.26276D+02    0.26276D+02    0.23293D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.00000D+00
+   -0.20000D+01
+   -0.10000D+01
+   -0.10000D+01
+ Steps =       5923 f-s =      25091 J-s =       1748
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+02    0.20000D+02    0.46935D-09
+  2   -0.20000D+02   -0.20000D+02    0.46942D-09
+  3   -0.22523D-06   -0.22476D-06    0.46963D-09
+  4    0.22523D-06    0.22476D-06    0.46913D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.17600D-02
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         86 f-s =        172 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.16181D-02    0.16181D-02    0.91000D-09
+  2    0.13822D-09    0.13822D-09    0.10744D-15
+  3    0.82516D-11    0.82516D-11    0.25595D-17
+  4    0.12997D-09    0.12997D-09    0.11007D-15
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.76100D+03
+    0.00000D+00
+    0.60000D+03
+    0.10000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =       1812 f-s =       3086 J-s =         64
+ Computed and reference solutions and absolute errors follow:
+  1    0.12111D+04    0.12111D+04    0.26661D-07
+  2    0.12711D-04    0.12711D-04    0.34655D-14
+  3    0.12086D+04    0.12086D+04    0.26464D-07
+  4    0.32420D-03    0.32420D-03    0.34548D-14
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        148
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        351
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        443 f-s =        570 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.19460D-09
+  2    0.13300D-02    0.13300D-02    0.66099D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         72
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        185
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.40000D-05
+    0.10000D-05
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        157 f-s =        286 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.32172D-12    0.32359D-12    0.18720D-14
+  2    0.23606D-06    0.23607D-06    0.12661D-10
+  3    0.76390D-13    0.76393D-13    0.30240D-17
+  4    0.76391D-06    0.76393D-06    0.25510D-10
+  5    0.32361D-05    0.32361D-05    0.65464D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        195
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        461
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.40000D+01
+    0.11000D+01
+    0.40000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       5440 f-s =       8178 J-s =        182
+ Computed and reference solutions and absolute errors follow:
+  1    0.44183D+01    0.44183D+01    0.68204D-08
+  2    0.12902D+01    0.12902D+01    0.58144D-09
+  3    0.30193D+01    0.30193D+01    0.31238D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        259
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.33650D-06
+    0.82610D-02
+    0.16420D-02
+    0.93800D-05
+ Nonnegativity will be enforced for this problem.
+ Steps =        454 f-s =        818 J-s =         17
+ Computed and reference solutions and absolute errors follow:
+  1    0.17136D-06    0.17136D-06    0.13385D-16
+  2    0.37136D-02    0.37136D-02    0.29527D-12
+  3    0.61893D-02    0.61893D-02    0.49212D-12
+  4    0.95451D-05    0.95451D-05    0.13378D-16
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        148
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        351
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        868 f-s =       1013 J-s =         21
+ Computed and reference solutions and absolute errors follow:
+  1    0.45400D-04    0.45400D-04    0.33886D-10
+  2    0.20613D-08    0.20612D-08    0.11428D-12
+  3   -0.18641D-65    0.28230D-55    0.28230D-55
+  4   -0.60003D-64    0.52358D-51    0.52358D-51
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        987 f-s =       1318 J-s =         24
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D-01    0.99999D-01    0.95969D-11
+  2    0.20000D+00    0.20000D+00    0.19193D-10
+  3    0.30000D+00    0.30000D+00    0.26839D-10
+  4    0.40000D+00    0.40000D+00    0.31760D-10
+  5    0.50000D+00    0.50000D+00    0.33458D-10
+  6    0.60000D+00    0.60000D+00    0.31759D-10
+  7    0.70000D+00    0.70000D+00    0.26837D-10
+  8    0.80000D+00    0.80000D+00    0.19190D-10
+  9    0.90000D+00    0.90000D+00    0.95957D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        551
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        109
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1112 f-s =       1271 J-s =         23
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.84807D-12
+  2    0.13685D-01    0.13685D-01    0.85564D-11
+  3    0.15037D+01    0.15037D+01    0.94230D-09
+  4    0.13534D+00    0.13534D+00    0.86729D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1447 f-s =       1825 J-s =         31
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.27668D-09
+  2    0.24333D-11    0.12659D-13    0.24207D-11
+  3    0.12344D-37    0.19115D-41    0.12342D-37
+  4    0.29516D-57    0.22774D-54    0.22745D-54
+  5    0.62662D-84    0.00000D+00    0.62662D-84
+  6   -0.11726-113    0.00000D+00    0.11726-113
+  7    0.11345-145    0.00000D+00    0.11345-145
+  8    0.19805-182    0.00000D+00    0.19805-182
+  9    0.19867-214    0.00000D+00    0.19867-214
+ 10   -0.11006-247    0.00000D+00    0.11006-247
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        660
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        111
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =       4785 f-s =       5478 J-s =         88
+ Computed and reference solutions and absolute errors follow:
+  1    0.99141D-09    0.10042D-08    0.12753D-10
+  2    0.17675D-07    0.18000D-07    0.32522D-09
+  3    0.00000D+00    0.00000D+00    0.00000D+00
+  4   -0.35581-306   -0.60430D-78    0.60430D-78
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        789 f-s =        950 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1    0.36739D-43    0.61813D-30    0.61813D-30
+  2   -0.90070D-44    0.89637D-30    0.89637D-30
+  3   -0.23309D-31    0.27384D-26    0.27384D-26
+  4    0.20613D-08    0.20612D-08    0.18168D-12
+  5    0.45400D-04    0.45400D-04    0.52756D-10
+  6    0.13534D+00    0.13534D+00    0.89031D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        284
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        846 f-s =       1006 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1   -0.24510D-36   -0.10768D-27    0.10768D-27
+  2   -0.23096D-36    0.54550D-27    0.54550D-27
+  3    0.11218D-31    0.27385D-26    0.27385D-26
+  4    0.20613D-08    0.20612D-08    0.17291D-12
+  5    0.45400D-04    0.45400D-04    0.50269D-10
+  6    0.13534D+00    0.13534D+00    0.84672D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        284
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1404 f-s =       1635 J-s =         29
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13628D-10    0.13312D-21    0.13628D-10
+  2    0.52820D-10   -0.23259D-21    0.52820D-10
+  3   -0.49380D-33    0.15179D-34    0.50898D-33
+  4    0.20612D-08    0.20612D-08    0.61063D-13
+  5    0.45400D-04    0.45400D-04    0.18400D-10
+  6    0.13534D+00    0.13534D+00    0.34382D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        284
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       6016 f-s =       6870 J-s =        107
+ Computed and reference solutions and absolute errors follow:
+  1    0.25725D-10   -0.31006D-13    0.25756D-10
+  2    0.18657D-11    0.38628D-13    0.18271D-11
+  3    0.18048D-34    0.18049D-34    0.44729D-39
+  4    0.20612D-08    0.20612D-08    0.47586D-16
+  5    0.45400D-04    0.45400D-04    0.32492D-13
+  6    0.13534D+00    0.13534D+00    0.28699D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        284
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1072 f-s =       1231 J-s =         25
+ Computed and reference solutions and absolute errors follow:
+  1    0.40032D-03    0.40032D-03    0.61056D-11
+  2    0.40016D-03    0.40016D-03    0.10842D-18
+  3    0.40000D-03    0.40000D-03    0.10842D-18
+  4    0.20000D-01    0.20000D-01    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        947 f-s =       1104 J-s =         23
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.18913D-10
+  2    0.40000D-01    0.40000D-01    0.84059D-12
+  3    0.40016D-01    0.40016D-01    0.77666D-12
+  4    0.40032D-01    0.40032D-01    0.76546D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        931 f-s =       1077 J-s =         22
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.69820D-11
+  2    0.40000D+00    0.40000D+00    0.31032D-11
+  3    0.41600D+00    0.41600D+00    0.31191D-11
+  4    0.43331D+00    0.43331D+00    0.33342D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        993 f-s =       1144 J-s =         23
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.18263D-11
+  2    0.40000D+01    0.40000D+01    0.81184D-11
+  3    0.20000D+02    0.20000D+02    0.74099D-10
+  4    0.42000D+03    0.42000D+03    0.30669D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1023 f-s =       1189 J-s =         25
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.27522D-11
+  2    0.80000D+01    0.80000D+01    0.24468D-10
+  3    0.13600D+03    0.13600D+03    0.82571D-09
+  4    0.37128D+05    0.37128D+05    0.45450D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        898 f-s =       1212 J-s =         20
+ Computed and reference solutions and absolute errors follow:
+  1    0.22242D+02    0.22242D+02    0.91100D-08
+  2    0.27111D+02    0.27111D+02    0.88023D-08
+  3    0.40000D+03    0.40000D+03    0.11369D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        931 f-s =       1231 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.17097D-09
+  2    0.91855D-01    0.91855D-01    0.64880D-10
+  3    0.28416D+02    0.28416D+02    0.17097D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =       1167 f-s =       1375 J-s =         27
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.54350D-11
+  2    0.56309D-02    0.56309D-02    0.10587D-13
+  3    0.36024D+00    0.36024D+00    0.54354D-11
+  4    0.31706D+00    0.31706D+00    0.27240D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =        180 f-s =        309 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.97265D-10
+  2    0.14023D+01    0.14023D+01    0.97267D-10
+  3   -0.18934D-05   -0.18934D-05    0.37311D-15
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        669 f-s =       1022 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99164D+00   -0.99164D+00    0.99291D-09
+  2    0.98334D+00    0.98334D+00    0.11972D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         68
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         95
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        331 f-s =        473 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.23630D-10
+  2    0.14760D+00    0.14760D+00    0.23629D-10
+  3    0.57731D-07    0.57731D-07    0.29069D-17
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        316 f-s =        447 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D-07    0.10000D-07    0.32637D-17
+  2    0.17914D-15   -0.16253D-18    0.17930D-15
+  3   -0.78515D-14    0.20260D-16    0.78718D-14
+  4    0.17817D-12   -0.18531D-14    0.18003D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.20000D+01
+    0.00000D+00
+ Steps =       1510 f-s =       1728 J-s =         30
+ Computed and reference solutions and absolute errors follow:
+  1   -0.11587D+01   -0.11587D+01    0.40074D-08
+  2    0.43047D+00    0.43047D+00    0.44212D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         68
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         95
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =        870 f-s =       1101 J-s =         21
+ Computed and reference solutions and absolute errors follow:
+  1    0.42531D-02    0.42531D-02    0.41602D-10
+  2    0.53170D-02    0.53170D-02    0.51792D-10
+  3    0.26276D+02    0.26276D+02    0.23873D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.00000D+00
+   -0.20000D+01
+   -0.10000D+01
+   -0.10000D+01
+ Steps =       5489 f-s =      17557 J-s =       1754
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+02    0.20000D+02    0.15371D-08
+  2   -0.20000D+02   -0.20000D+02    0.15373D-08
+  3   -0.22630D-06   -0.22476D-06    0.15374D-08
+  4    0.22630D-06    0.22476D-06    0.15370D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.17600D-02
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         84 f-s =        130 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.16181D-02    0.16181D-02    0.67854D-09
+  2    0.13822D-09    0.13822D-09    0.20557D-15
+  3    0.82516D-11    0.82516D-11    0.36625D-18
+  4    0.12997D-09    0.12997D-09    0.20594D-15
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.76100D+03
+    0.00000D+00
+    0.60000D+03
+    0.10000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =       1742 f-s =       2681 J-s =         38
+ Computed and reference solutions and absolute errors follow:
+  1    0.12111D+04    0.12111D+04    0.40679D-07
+  2    0.12711D-04    0.12711D-04    0.52879D-14
+  3    0.12086D+04    0.12086D+04    0.40379D-07
+  4    0.32420D-03    0.32420D-03    0.52717D-14
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        443 f-s =        534 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.19253D-09
+  2    0.13300D-02    0.13300D-02    0.65394D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         72
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.40000D-05
+    0.10000D-05
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        135 f-s =        198 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.32652D-12    0.32359D-12    0.29299D-14
+  2    0.23607D-06    0.23607D-06    0.13988D-12
+  3    0.76393D-13    0.76393D-13    0.21806D-18
+  4    0.76393D-06    0.76393D-06    0.13630D-12
+  5    0.32361D-05    0.32361D-05    0.24920D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        225
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        106
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.40000D+01
+    0.11000D+01
+    0.40000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       5707 f-s =       7825 J-s =        104
+ Computed and reference solutions and absolute errors follow:
+  1    0.44183D+01    0.44183D+01    0.31099D-07
+  2    0.12902D+01    0.12902D+01    0.26903D-08
+  3    0.30193D+01    0.30193D+01    0.12260D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        113
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        100
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.33650D-06
+    0.82610D-02
+    0.16420D-02
+    0.93800D-05
+ Nonnegativity will be enforced for this problem.
+ Steps =        427 f-s =        694 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.17136D-06    0.17136D-06    0.44170D-16
+  2    0.37136D-02    0.37136D-02    0.97442D-12
+  3    0.61893D-02    0.61893D-02    0.16240D-11
+  4    0.95451D-05    0.95451D-05    0.44161D-16
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1239 f-s =       1417 J-s =         28
+ Computed and reference solutions and absolute errors follow:
+  1    0.45400D-04    0.45400D-04    0.68578D-11
+  2    0.20612D-08    0.20612D-08    0.22718D-13
+  3    0.46240D-83    0.28230D-55    0.28230D-55
+  4   -0.54017D-81    0.52358D-51    0.52358D-51
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =       1389 f-s =       1746 J-s =         30
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D-01    0.99999D-01    0.14655D-11
+  2    0.20000D+00    0.20000D+00    0.29309D-11
+  3    0.30000D+00    0.30000D+00    0.40989D-11
+  4    0.40000D+00    0.40000D+00    0.48506D-11
+  5    0.50000D+00    0.50000D+00    0.51101D-11
+  6    0.60000D+00    0.60000D+00    0.48507D-11
+  7    0.70000D+00    0.70000D+00    0.40988D-11
+  8    0.80000D+00    0.80000D+00    0.29310D-11
+  9    0.90000D+00    0.90000D+00    0.14656D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        335
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        109
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1661 f-s =       1890 J-s =         34
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.87729D-13
+  2    0.13685D-01    0.13685D-01    0.88546D-12
+  3    0.15037D+01    0.15037D+01    0.97478D-10
+  4    0.13534D+00    0.13534D+00    0.89390D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       2088 f-s =       2581 J-s =         42
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.20548D-10
+  2    0.17334D-13    0.12659D-13    0.46754D-14
+  3    0.13242D-46    0.19115D-41    0.19115D-41
+  4   -0.20177D-75    0.22774D-54    0.22774D-54
+  5    0.88166-109    0.00000D+00    0.88166-109
+  6   -0.91781-148    0.00000D+00    0.91781-148
+  7   -0.28134-190    0.00000D+00    0.28134-190
+  8    0.74098-237    0.00000D+00    0.74098-237
+  9   -0.38761-283    0.00000D+00    0.38761-283
+ 10    0.00000D+00    0.00000D+00    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        390
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        111
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =       6745 f-s =       7690 J-s =        122
+ Computed and reference solutions and absolute errors follow:
+  1    0.10010D-08    0.10042D-08    0.31773D-11
+  2    0.17951D-07    0.18000D-07    0.49520D-10
+  3    0.00000D+00    0.00000D+00    0.00000D+00
+  4   -0.10634-306   -0.60430D-78    0.60430D-78
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1126 f-s =       1328 J-s =         24
+ Computed and reference solutions and absolute errors follow:
+  1   -0.32341D-55    0.61813D-30    0.61813D-30
+  2    0.70205D-56    0.89637D-30    0.89637D-30
+  3    0.19970D-34    0.27384D-26    0.27384D-26
+  4    0.20612D-08    0.20612D-08    0.27424D-13
+  5    0.45400D-04    0.45400D-04    0.82190D-11
+  6    0.13534D+00    0.13534D+00    0.15070D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        194
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1254 f-s =       1463 J-s =         27
+ Computed and reference solutions and absolute errors follow:
+  1   -0.10535D-48   -0.10768D-27    0.10768D-27
+  2    0.74038D-50    0.54550D-27    0.54550D-27
+  3    0.21256D-34    0.27385D-26    0.27385D-26
+  4    0.20612D-08    0.20612D-08    0.26897D-13
+  5    0.45400D-04    0.45400D-04    0.80713D-11
+  6    0.13534D+00    0.13534D+00    0.14461D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        194
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       2020 f-s =       2315 J-s =         40
+ Computed and reference solutions and absolute errors follow:
+  1    0.22879D-21    0.13312D-21    0.95661D-22
+  2    0.42124D-20   -0.23259D-21    0.44450D-20
+  3    0.19922D-34    0.15179D-34    0.47431D-35
+  4    0.20612D-08    0.20612D-08    0.18487D-13
+  5    0.45400D-04    0.45400D-04    0.55017D-11
+  6    0.13534D+00    0.13534D+00    0.12139D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        194
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       7698 f-s =       8751 J-s =        136
+ Computed and reference solutions and absolute errors follow:
+  1   -0.15940D-10   -0.31006D-13    0.15909D-10
+  2   -0.52697D-11    0.38628D-13    0.53083D-11
+  3    0.18048D-34    0.18049D-34    0.39252D-39
+  4    0.20612D-08    0.20612D-08    0.42011D-16
+  5    0.45400D-04    0.45400D-04    0.28705D-13
+  6    0.13534D+00    0.13534D+00    0.22593D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        194
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1548 f-s =       1749 J-s =         34
+ Computed and reference solutions and absolute errors follow:
+  1    0.40032D-03    0.40032D-03    0.95595D-12
+  2    0.40016D-03    0.40016D-03    0.16263D-18
+  3    0.40000D-03    0.40000D-03    0.10842D-18
+  4    0.20000D-01    0.20000D-01    0.34694D-17
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1399 f-s =       1592 J-s =         31
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.43547D-11
+  2    0.40000D-01    0.40000D-01    0.19355D-12
+  3    0.40016D-01    0.40016D-01    0.17886D-12
+  4    0.40032D-01    0.40032D-01    0.17628D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1385 f-s =       1573 J-s =         30
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.22844D-11
+  2    0.40000D+00    0.40000D+00    0.10154D-11
+  3    0.41600D+00    0.41600D+00    0.10207D-11
+  4    0.43331D+00    0.43331D+00    0.10913D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1442 f-s =       1634 J-s =         32
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.24203D-12
+  2    0.40000D+01    0.40000D+01    0.10765D-11
+  3    0.20000D+02    0.20000D+02    0.98126D-11
+  4    0.42000D+03    0.42000D+03    0.40643D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1471 f-s =       1668 J-s =         32
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.40301D-12
+  2    0.80000D+01    0.80000D+01    0.35856D-11
+  3    0.13600D+03    0.13600D+03    0.12108D-09
+  4    0.37128D+05    0.37128D+05    0.66611D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =       1131 f-s =       1382 J-s =         25
+ Computed and reference solutions and absolute errors follow:
+  1    0.22242D+02    0.22242D+02    0.16952D-08
+  2    0.27111D+02    0.27111D+02    0.16836D-08
+  3    0.40000D+03    0.40000D+03    0.11369D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =       1196 f-s =       1482 J-s =         23
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.36513D-11
+  2    0.91855D-01    0.91855D-01    0.17145D-11
+  3    0.28416D+02    0.28416D+02    0.36537D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =       1657 f-s =       1905 J-s =         36
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.18641D-12
+  2    0.56309D-02    0.56309D-02    0.36429D-15
+  3    0.36024D+00    0.36024D+00    0.18452D-12
+  4    0.31706D+00    0.31706D+00    0.92426D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =        209 f-s =        327 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.84600D-11
+  2    0.14023D+01    0.14023D+01    0.84555D-11
+  3   -0.18934D-05   -0.18934D-05    0.50029D-14
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        982 f-s =       1392 J-s =         22
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99164D+00   -0.99164D+00    0.14085D-09
+  2    0.98334D+00    0.98334D+00    0.16464D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         62
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         95
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        470 f-s =        685 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.62341D-11
+  2    0.14760D+00    0.14760D+00    0.62345D-11
+  3    0.57731D-07    0.57731D-07    0.76693D-18
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        429 f-s =        586 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D-07    0.10000D-07    0.10913D-18
+  2    0.15167D-16   -0.16253D-18    0.15329D-16
+  3    0.22909D-15    0.20260D-16    0.20883D-15
+  4   -0.94167D-13   -0.18531D-14    0.92314D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.20000D+01
+    0.00000D+00
+ Steps =       2143 f-s =       2444 J-s =         40
+ Computed and reference solutions and absolute errors follow:
+  1   -0.11587D+01   -0.11587D+01    0.71436D-09
+  2    0.43047D+00    0.43047D+00    0.77042D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         62
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         95
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =       1123 f-s =       1294 J-s =         26
+ Computed and reference solutions and absolute errors follow:
+  1    0.42531D-02    0.42531D-02    0.94980D-11
+  2    0.53170D-02    0.53170D-02    0.11860D-10
+  3    0.26276D+02    0.26276D+02    0.20265D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         89
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.00000D+00
+   -0.20000D+01
+   -0.10000D+01
+   -0.10000D+01
+ Steps =       6988 f-s =      18983 J-s =       1610
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+02    0.20000D+02    0.73932D-10
+  2   -0.20000D+02   -0.20000D+02    0.73815D-10
+  3   -0.22484D-06   -0.22476D-06    0.73937D-10
+  4    0.22484D-06    0.22476D-06    0.73804D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.17600D-02
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        103 f-s =        143 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.16181D-02    0.16181D-02    0.22400D-09
+  2    0.13822D-09    0.13822D-09    0.13925D-16
+  3    0.82516D-11    0.82516D-11    0.88715D-18
+  4    0.12997D-09    0.12997D-09    0.14812D-16
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.76100D+03
+    0.00000D+00
+    0.60000D+03
+    0.10000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =       2478 f-s =       3507 J-s =         49
+ Computed and reference solutions and absolute errors follow:
+  1    0.12111D+04    0.12111D+04    0.56027D-08
+  2    0.12711D-04    0.12711D-04    0.72880D-15
+  3    0.12086D+04    0.12086D+04    0.55616D-08
+  4    0.32420D-03    0.32420D-03    0.72658D-15
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        128
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        638 f-s =        741 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.32807D-10
+  2    0.13300D-02    0.13300D-02    0.11144D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         66
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.40000D-05
+    0.10000D-05
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        215 f-s =        290 J-s =          4
+ Computed and reference solutions and absolute errors follow:
+  1    0.58978D-12    0.32359D-12    0.26619D-12
+  2    0.23607D-06    0.23607D-06    0.23707D-11
+  3    0.75758D-13    0.76393D-13    0.63542D-15
+  4    0.76393D-06    0.76393D-06    0.23837D-11
+  5    0.32361D-05    0.32361D-05    0.40680D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        165
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        106
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.40000D+01
+    0.11000D+01
+    0.40000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       7855 f-s =      10179 J-s =        141
+ Computed and reference solutions and absolute errors follow:
+  1    0.44183D+01    0.44183D+01    0.35412D-08
+  2    0.12902D+01    0.12902D+01    0.30483D-09
+  3    0.30193D+01    0.30193D+01    0.14302D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         95
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        100
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.33650D-06
+    0.82610D-02
+    0.16420D-02
+    0.93800D-05
+ Nonnegativity will be enforced for this problem.
+ Steps =        553 f-s =        870 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1    0.17136D-06    0.17136D-06    0.12012D-14
+  2    0.37136D-02    0.37136D-02    0.26500D-10
+  3    0.61893D-02    0.61893D-02    0.44166D-10
+  4    0.95451D-05    0.95451D-05    0.12012D-14
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        128
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1239 f-s =       1593 J-s =         36
+ Computed and reference solutions and absolute errors follow:
+  1    0.45400D-04    0.45400D-04    0.68577D-11
+  2    0.20612D-08    0.20612D-08    0.22718D-13
+  3    0.46116D-83    0.28230D-55    0.28230D-55
+  4   -0.53930D-81    0.52358D-51    0.52358D-51
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =       1400 f-s =       2299 J-s =         45
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D-01    0.99999D-01    0.19189D-11
+  2    0.20000D+00    0.20000D+00    0.38375D-11
+  3    0.30000D+00    0.30000D+00    0.53667D-11
+  4    0.40000D+00    0.40000D+00    0.63507D-11
+  5    0.50000D+00    0.50000D+00    0.66901D-11
+  6    0.60000D+00    0.60000D+00    0.63507D-11
+  7    0.70000D+00    0.70000D+00    0.53664D-11
+  8    0.80000D+00    0.80000D+00    0.38374D-11
+  9    0.90000D+00    0.90000D+00    0.19189D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        425
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =       1072
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1654 f-s =       2113 J-s =         45
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.63829D-13
+  2    0.13685D-01    0.13685D-01    0.64426D-12
+  3    0.15037D+01    0.15037D+01    0.70922D-10
+  4    0.13534D+00    0.13534D+00    0.65012D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       2088 f-s =       3321 J-s =         58
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.20544D-10
+  2    0.17334D-13    0.12659D-13    0.46750D-14
+  3    0.13204D-46    0.19115D-41    0.19115D-41
+  4   -0.20126D-75    0.22774D-54    0.22774D-54
+  5    0.87474-109    0.00000D+00    0.87474-109
+  6   -0.91112-148    0.00000D+00    0.91112-148
+  7   -0.27914-190    0.00000D+00    0.27914-190
+  8    0.73439-237    0.00000D+00    0.73439-237
+  9   -0.38509-283    0.00000D+00    0.38509-283
+ 10    0.00000D+00    0.00000D+00    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        500
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =       1271
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =       6814 f-s =       8700 J-s =        180
+ Computed and reference solutions and absolute errors follow:
+  1    0.10008D-08    0.10042D-08    0.33650D-11
+  2    0.17942D-07    0.18000D-07    0.58109D-10
+  3    0.00000D+00    0.00000D+00    0.00000D+00
+  4    0.00000D+00   -0.60430D-78    0.60430D-78
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1126 f-s =       1556 J-s =         31
+ Computed and reference solutions and absolute errors follow:
+  1   -0.32348D-55    0.61813D-30    0.61813D-30
+  2    0.71849D-56    0.89637D-30    0.89637D-30
+  3    0.19968D-34    0.27384D-26    0.27384D-26
+  4    0.20612D-08    0.20612D-08    0.27425D-13
+  5    0.45400D-04    0.45400D-04    0.82192D-11
+  6    0.13534D+00    0.13534D+00    0.15074D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        236
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        583
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1254 f-s =       1733 J-s =         36
+ Computed and reference solutions and absolute errors follow:
+  1   -0.10535D-48   -0.10768D-27    0.10768D-27
+  2    0.73977D-50    0.54550D-27    0.54550D-27
+  3    0.21256D-34    0.27385D-26    0.27385D-26
+  4    0.20612D-08    0.20612D-08    0.26897D-13
+  5    0.45400D-04    0.45400D-04    0.80714D-11
+  6    0.13534D+00    0.13534D+00    0.14472D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        236
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        583
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       2020 f-s =       2747 J-s =         56
+ Computed and reference solutions and absolute errors follow:
+  1    0.23553D-21    0.13312D-21    0.10240D-21
+  2    0.42175D-20   -0.23259D-21    0.44501D-20
+  3    0.19921D-34    0.15179D-34    0.47421D-35
+  4    0.20612D-08    0.20612D-08    0.18480D-13
+  5    0.45400D-04    0.45400D-04    0.54998D-11
+  6    0.13534D+00    0.13534D+00    0.12131D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        236
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        583
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       7701 f-s =      10385 J-s =        204
+ Computed and reference solutions and absolute errors follow:
+  1   -0.78107D-11   -0.31006D-13    0.77797D-11
+  2    0.59108D-11    0.38628D-13    0.58721D-11
+  3    0.18048D-34    0.18049D-34    0.38800D-39
+  4    0.20612D-08    0.20612D-08    0.41540D-16
+  5    0.45400D-04    0.45400D-04    0.28396D-13
+  6    0.13534D+00    0.13534D+00    0.30337D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        236
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        583
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1548 f-s =       1990 J-s =         47
+ Computed and reference solutions and absolute errors follow:
+  1    0.40032D-03    0.40032D-03    0.95538D-12
+  2    0.40016D-03    0.40016D-03    0.00000D+00
+  3    0.40000D-03    0.40000D-03    0.54210D-19
+  4    0.20000D-01    0.20000D-01    0.34694D-17
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1399 f-s =       1782 J-s =         39
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.43714D-11
+  2    0.40000D-01    0.40000D-01    0.19430D-12
+  3    0.40016D-01    0.40016D-01    0.17954D-12
+  4    0.40032D-01    0.40032D-01    0.17696D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1385 f-s =       1766 J-s =         39
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.22662D-11
+  2    0.40000D+00    0.40000D+00    0.10075D-11
+  3    0.41600D+00    0.41600D+00    0.10126D-11
+  4    0.43331D+00    0.43331D+00    0.10824D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1438 f-s =       1849 J-s =         43
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.25602D-12
+  2    0.40000D+01    0.40000D+01    0.11404D-11
+  3    0.20000D+02    0.20000D+02    0.10399D-10
+  4    0.42000D+03    0.42000D+03    0.43048D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1475 f-s =       1898 J-s =         44
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.40545D-12
+  2    0.80000D+01    0.80000D+01    0.36069D-11
+  3    0.13600D+03    0.13600D+03    0.12176D-09
+  4    0.37128D+05    0.37128D+05    0.66982D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =       1147 f-s =       1584 J-s =         41
+ Computed and reference solutions and absolute errors follow:
+  1    0.22242D+02    0.22242D+02    0.22788D-08
+  2    0.27111D+02    0.27111D+02    0.22937D-08
+  3    0.40000D+03    0.40000D+03    0.11369D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =       1149 f-s =       1534 J-s =         39
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.42549D-11
+  2    0.91855D-01    0.91855D-01    0.19119D-11
+  3    0.28416D+02    0.28416D+02    0.42574D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =       1652 f-s =       2169 J-s =         52
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.13595D-11
+  2    0.56309D-02    0.56309D-02    0.26350D-14
+  3    0.36024D+00    0.36024D+00    0.13612D-11
+  4    0.31706D+00    0.31706D+00    0.68467D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =        234 f-s =        417 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.31759D-10
+  2    0.14023D+01    0.14023D+01    0.31757D-10
+  3   -0.18934D-05   -0.18934D-05    0.12266D-15
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        921 f-s =       1380 J-s =         32
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99164D+00   -0.99164D+00    0.16232D-09
+  2    0.98334D+00    0.98334D+00    0.18684D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         68
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        183
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        467 f-s =        709 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.55376D-11
+  2    0.14760D+00    0.14760D+00    0.55367D-11
+  3    0.57731D-07    0.57731D-07    0.68062D-18
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        607 f-s =       1016 J-s =         29
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D-07    0.10000D-07    0.51823D-18
+  2   -0.30691D-17   -0.16253D-18    0.29065D-17
+  3    0.61744D-15    0.20260D-16    0.59718D-15
+  4    0.31268D-13   -0.18531D-14    0.33121D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.20000D+01
+    0.00000D+00
+ Steps =       2175 f-s =       2628 J-s =         62
+ Computed and reference solutions and absolute errors follow:
+  1   -0.11587D+01   -0.11587D+01    0.68097D-09
+  2    0.43047D+00    0.43047D+00    0.73122D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         68
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        183
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =       1140 f-s =       1456 J-s =         37
+ Computed and reference solutions and absolute errors follow:
+  1    0.42531D-02    0.42531D-02    0.69986D-11
+  2    0.53170D-02    0.53170D-02    0.87279D-11
+  3    0.26276D+02    0.26276D+02    0.30732D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        101
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        256
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.00000D+00
+   -0.20000D+01
+   -0.10000D+01
+   -0.10000D+01
+ Steps =       7437 f-s =      26031 J-s =       1620
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+02    0.20000D+02    0.29559D-10
+  2   -0.20000D+02   -0.20000D+02    0.29527D-10
+  3   -0.22479D-06   -0.22476D-06    0.30552D-10
+  4    0.22479D-06    0.22476D-06    0.28529D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.17600D-02
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        103 f-s =        191 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.16181D-02    0.16181D-02    0.23251D-09
+  2    0.13822D-09    0.13822D-09    0.13125D-16
+  3    0.82516D-11    0.82516D-11    0.22272D-18
+  4    0.12997D-09    0.12997D-09    0.13348D-16
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        347
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.76100D+03
+    0.00000D+00
+    0.60000D+03
+    0.10000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =       2401 f-s =       3904 J-s =         81
+ Computed and reference solutions and absolute errors follow:
+  1    0.12111D+04    0.12111D+04    0.47503D-08
+  2    0.12711D-04    0.12711D-04    0.61744D-15
+  3    0.12086D+04    0.12086D+04    0.47155D-08
+  4    0.32420D-03    0.32420D-03    0.61556D-15
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        148
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        351
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        657 f-s =        817 J-s =         21
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.18717D-11
+  2    0.13300D-02    0.13300D-02    0.63569D-14
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         72
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        185
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.40000D-05
+    0.10000D-05
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        219 f-s =        362 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.32354D-12    0.32359D-12    0.54948D-16
+  2    0.23607D-06    0.23607D-06    0.29011D-13
+  3    0.76393D-13    0.76393D-13    0.12127D-19
+  4    0.76393D-06    0.76393D-06    0.78850D-13
+  5    0.32361D-05    0.32361D-05    0.62705D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        195
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        461
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.40000D+01
+    0.11000D+01
+    0.40000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       7412 f-s =      10737 J-s =        235
+ Computed and reference solutions and absolute errors follow:
+  1    0.44183D+01    0.44183D+01    0.16820D-08
+  2    0.12902D+01    0.12902D+01    0.14404D-09
+  3    0.30193D+01    0.30193D+01    0.73661D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        259
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.33650D-06
+    0.82610D-02
+    0.16420D-02
+    0.93800D-05
+ Nonnegativity will be enforced for this problem.
+ Steps =        523 f-s =        944 J-s =         22
+ Computed and reference solutions and absolute errors follow:
+  1    0.17136D-06    0.17136D-06    0.25167D-16
+  2    0.37136D-02    0.37136D-02    0.55521D-12
+  3    0.61893D-02    0.61893D-02    0.92535D-12
+  4    0.95451D-05    0.95451D-05    0.25182D-16
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        148
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        351
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1239 f-s =       1417 J-s =         28
+ Computed and reference solutions and absolute errors follow:
+  1    0.45400D-04    0.45400D-04    0.68578D-11
+  2    0.20612D-08    0.20612D-08    0.22718D-13
+  3    0.46240D-83    0.28230D-55    0.28230D-55
+  4   -0.54017D-81    0.52358D-51    0.52358D-51
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =       1389 f-s =       1746 J-s =         30
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D-01    0.99999D-01    0.14655D-11
+  2    0.20000D+00    0.20000D+00    0.29309D-11
+  3    0.30000D+00    0.30000D+00    0.40989D-11
+  4    0.40000D+00    0.40000D+00    0.48506D-11
+  5    0.50000D+00    0.50000D+00    0.51101D-11
+  6    0.60000D+00    0.60000D+00    0.48507D-11
+  7    0.70000D+00    0.70000D+00    0.40988D-11
+  8    0.80000D+00    0.80000D+00    0.29310D-11
+  9    0.90000D+00    0.90000D+00    0.14656D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        551
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        109
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1661 f-s =       1890 J-s =         34
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.87729D-13
+  2    0.13685D-01    0.13685D-01    0.88546D-12
+  3    0.15037D+01    0.15037D+01    0.97478D-10
+  4    0.13534D+00    0.13534D+00    0.89390D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       2088 f-s =       2581 J-s =         42
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.20548D-10
+  2    0.17334D-13    0.12659D-13    0.46754D-14
+  3    0.13242D-46    0.19115D-41    0.19115D-41
+  4   -0.20177D-75    0.22774D-54    0.22774D-54
+  5    0.88166-109    0.00000D+00    0.88166-109
+  6   -0.91781-148    0.00000D+00    0.91781-148
+  7   -0.28134-190    0.00000D+00    0.28134-190
+  8    0.74098-237    0.00000D+00    0.74098-237
+  9   -0.38761-283    0.00000D+00    0.38761-283
+ 10    0.00000D+00    0.00000D+00    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        660
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        111
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =       6745 f-s =       7690 J-s =        122
+ Computed and reference solutions and absolute errors follow:
+  1    0.10010D-08    0.10042D-08    0.31773D-11
+  2    0.17951D-07    0.18000D-07    0.49520D-10
+  3    0.00000D+00    0.00000D+00    0.00000D+00
+  4   -0.10634-306   -0.60430D-78    0.60430D-78
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1126 f-s =       1328 J-s =         24
+ Computed and reference solutions and absolute errors follow:
+  1   -0.32341D-55    0.61813D-30    0.61813D-30
+  2    0.70205D-56    0.89637D-30    0.89637D-30
+  3    0.19970D-34    0.27384D-26    0.27384D-26
+  4    0.20612D-08    0.20612D-08    0.27424D-13
+  5    0.45400D-04    0.45400D-04    0.82190D-11
+  6    0.13534D+00    0.13534D+00    0.15070D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        284
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1254 f-s =       1463 J-s =         27
+ Computed and reference solutions and absolute errors follow:
+  1   -0.10535D-48   -0.10768D-27    0.10768D-27
+  2    0.74038D-50    0.54550D-27    0.54550D-27
+  3    0.21256D-34    0.27385D-26    0.27385D-26
+  4    0.20612D-08    0.20612D-08    0.26897D-13
+  5    0.45400D-04    0.45400D-04    0.80713D-11
+  6    0.13534D+00    0.13534D+00    0.14461D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        284
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       2020 f-s =       2315 J-s =         40
+ Computed and reference solutions and absolute errors follow:
+  1    0.22879D-21    0.13312D-21    0.95661D-22
+  2    0.42124D-20   -0.23259D-21    0.44450D-20
+  3    0.19922D-34    0.15179D-34    0.47431D-35
+  4    0.20612D-08    0.20612D-08    0.18487D-13
+  5    0.45400D-04    0.45400D-04    0.55017D-11
+  6    0.13534D+00    0.13534D+00    0.12139D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        284
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       7698 f-s =       8751 J-s =        136
+ Computed and reference solutions and absolute errors follow:
+  1   -0.15940D-10   -0.31006D-13    0.15909D-10
+  2   -0.52697D-11    0.38628D-13    0.53083D-11
+  3    0.18048D-34    0.18049D-34    0.39252D-39
+  4    0.20612D-08    0.20612D-08    0.42011D-16
+  5    0.45400D-04    0.45400D-04    0.28705D-13
+  6    0.13534D+00    0.13534D+00    0.22593D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        284
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1548 f-s =       1749 J-s =         34
+ Computed and reference solutions and absolute errors follow:
+  1    0.40032D-03    0.40032D-03    0.95595D-12
+  2    0.40016D-03    0.40016D-03    0.16263D-18
+  3    0.40000D-03    0.40000D-03    0.10842D-18
+  4    0.20000D-01    0.20000D-01    0.34694D-17
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1399 f-s =       1592 J-s =         31
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.43547D-11
+  2    0.40000D-01    0.40000D-01    0.19355D-12
+  3    0.40016D-01    0.40016D-01    0.17886D-12
+  4    0.40032D-01    0.40032D-01    0.17628D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1385 f-s =       1573 J-s =         30
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.22844D-11
+  2    0.40000D+00    0.40000D+00    0.10154D-11
+  3    0.41600D+00    0.41600D+00    0.10207D-11
+  4    0.43331D+00    0.43331D+00    0.10913D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1442 f-s =       1634 J-s =         32
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.24203D-12
+  2    0.40000D+01    0.40000D+01    0.10765D-11
+  3    0.20000D+02    0.20000D+02    0.98126D-11
+  4    0.42000D+03    0.42000D+03    0.40643D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1471 f-s =       1668 J-s =         32
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.40301D-12
+  2    0.80000D+01    0.80000D+01    0.35856D-11
+  3    0.13600D+03    0.13600D+03    0.12108D-09
+  4    0.37128D+05    0.37128D+05    0.66611D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =       1131 f-s =       1382 J-s =         25
+ Computed and reference solutions and absolute errors follow:
+  1    0.22242D+02    0.22242D+02    0.16952D-08
+  2    0.27111D+02    0.27111D+02    0.16836D-08
+  3    0.40000D+03    0.40000D+03    0.11369D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =       1196 f-s =       1482 J-s =         23
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.36513D-11
+  2    0.91855D-01    0.91855D-01    0.17145D-11
+  3    0.28416D+02    0.28416D+02    0.36537D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =       1657 f-s =       1905 J-s =         36
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.18641D-12
+  2    0.56309D-02    0.56309D-02    0.36429D-15
+  3    0.36024D+00    0.36024D+00    0.18452D-12
+  4    0.31706D+00    0.31706D+00    0.92426D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =        209 f-s =        327 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.84600D-11
+  2    0.14023D+01    0.14023D+01    0.84555D-11
+  3   -0.18934D-05   -0.18934D-05    0.50029D-14
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        982 f-s =       1392 J-s =         22
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99164D+00   -0.99164D+00    0.14085D-09
+  2    0.98334D+00    0.98334D+00    0.16464D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         68
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         95
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        470 f-s =        685 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.62341D-11
+  2    0.14760D+00    0.14760D+00    0.62345D-11
+  3    0.57731D-07    0.57731D-07    0.76693D-18
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        429 f-s =        586 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D-07    0.10000D-07    0.10913D-18
+  2    0.15167D-16   -0.16253D-18    0.15329D-16
+  3    0.22909D-15    0.20260D-16    0.20883D-15
+  4   -0.94167D-13   -0.18531D-14    0.92314D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.20000D+01
+    0.00000D+00
+ Steps =       2143 f-s =       2444 J-s =         40
+ Computed and reference solutions and absolute errors follow:
+  1   -0.11587D+01   -0.11587D+01    0.71436D-09
+  2    0.43047D+00    0.43047D+00    0.77042D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         68
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         95
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =       1123 f-s =       1294 J-s =         26
+ Computed and reference solutions and absolute errors follow:
+  1    0.42531D-02    0.42531D-02    0.94980D-11
+  2    0.53170D-02    0.53170D-02    0.11860D-10
+  3    0.26276D+02    0.26276D+02    0.20265D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        107
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.00000D+00
+   -0.20000D+01
+   -0.10000D+01
+   -0.10000D+01
+ Steps =       6988 f-s =      18983 J-s =       1610
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+02    0.20000D+02    0.73932D-10
+  2   -0.20000D+02   -0.20000D+02    0.73815D-10
+  3   -0.22484D-06   -0.22476D-06    0.73937D-10
+  4    0.22484D-06    0.22476D-06    0.73804D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.17600D-02
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        103 f-s =        143 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.16181D-02    0.16181D-02    0.22400D-09
+  2    0.13822D-09    0.13822D-09    0.13925D-16
+  3    0.82516D-11    0.82516D-11    0.88715D-18
+  4    0.12997D-09    0.12997D-09    0.14812D-16
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        156
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.76100D+03
+    0.00000D+00
+    0.60000D+03
+    0.10000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =       2478 f-s =       3507 J-s =         49
+ Computed and reference solutions and absolute errors follow:
+  1    0.12111D+04    0.12111D+04    0.56027D-08
+  2    0.12711D-04    0.12711D-04    0.72880D-15
+  3    0.12086D+04    0.12086D+04    0.55616D-08
+  4    0.32420D-03    0.32420D-03    0.72658D-15
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        638 f-s =        741 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.32807D-10
+  2    0.13300D-02    0.13300D-02    0.11144D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         72
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.40000D-05
+    0.10000D-05
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        215 f-s =        290 J-s =          4
+ Computed and reference solutions and absolute errors follow:
+  1    0.58978D-12    0.32359D-12    0.26619D-12
+  2    0.23607D-06    0.23607D-06    0.23707D-11
+  3    0.75758D-13    0.76393D-13    0.63542D-15
+  4    0.76393D-06    0.76393D-06    0.23837D-11
+  5    0.32361D-05    0.32361D-05    0.40680D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        225
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        106
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.40000D+01
+    0.11000D+01
+    0.40000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       7855 f-s =      10179 J-s =        141
+ Computed and reference solutions and absolute errors follow:
+  1    0.44183D+01    0.44183D+01    0.35412D-08
+  2    0.12902D+01    0.12902D+01    0.30483D-09
+  3    0.30193D+01    0.30193D+01    0.14302D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        113
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        100
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for JACSP Jacobian follow.
+  Results for JACSP Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.33650D-06
+    0.82610D-02
+    0.16420D-02
+    0.93800D-05
+ Nonnegativity will be enforced for this problem.
+ Steps =        553 f-s =        870 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1    0.17136D-06    0.17136D-06    0.12012D-14
+  2    0.37136D-02    0.37136D-02    0.26500D-10
+  3    0.61893D-02    0.61893D-02    0.44166D-10
+  4    0.95451D-05    0.95451D-05    0.12012D-14
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        103
+
+
+                     Results for ITOL =   5
+
+ Maximum Errors for All Problems Follow:
+ The JACSP Jacobian was used.
+ The ODEs were not scaled.
+
+           Maximum Errors for Individual Problems Follow:
+
+Tolerance   Problem    Dense          Sparse         Banded
+    5          1    0.32471D-05    0.32471D-05    0.32471D-05
+    5          2    0.45095D-05    0.45063D-05    0.45095D-05
+    5          3    0.40943D-06    0.38662D-06    0.40943D-06
+    5          4    0.35755D-04    0.35755D-04    0.35755D-04
+    5         11    0.82059D-04    0.20429D-04    0.82059D-04
+    5         12    0.25783D-05    0.25783D-05    0.25783D-05
+    5         13    0.36548D-06    0.36548D-06    0.36548D-06
+    5         14    0.13286D-04    0.13286D-04    0.13286D-04
+    5         15    0.22721D-03    0.22721D-03    0.22721D-03
+    5         21    0.21725D-06    0.15396D-05    0.21725D-06
+    5         22    0.26613D-06    0.44573D-05    0.26613D-06
+    5         23    0.58233D-05    0.13384D-05    0.58233D-05
+    5         24    0.12272D-03    0.15539D-02    0.12272D-03
+    5         25    0.26298D-01    0.11753D-01    0.26298D-01
+    5         31    0.10988D-02    0.84515D-03    0.10988D-02
+    5         32    0.41585D-03    0.93984D-03    0.41585D-03
+    5         33    0.30056D-05    0.12985D-06    0.30056D-05
+    5         34    0.22714D-04    0.42351D-04    0.22714D-04
+    5         35    0.45755D-02    0.45789D-02    0.45755D-02
+    5         36    0.74222D-05    0.26880D-05    0.74222D-05
+    5         41    0.50696D-11    0.50787D-11    0.50696D-11
+    5         42    0.78411D-04    0.70042D-04    0.78411D-04
+    5         43    0.42416D-04    0.17876D-03    0.42416D-04
+    5         44    0.52554D-04    0.10074D-05    0.52554D-04
+    5         45    0.53967D-03    0.75382D-05    0.53967D-03
+    5         51    0.98034D-02    0.90740D-02    0.98034D-02
+    5         52    0.30169D-04    0.44281D-04    0.30169D-04
+    5         53    0.62767D-05    0.62766D-05    0.62767D-05
+    5         54    0.17101D-02    0.12704D-02    0.17101D-02
+    5         55    0.84776D-08    0.69075D-11    0.84776D-08
+
+
+                     Results for ITOL =   6
+
+ Maximum Errors for All Problems Follow:
+ The JACSP Jacobian was used.
+ The ODEs were not scaled.
+
+           Maximum Errors for Individual Problems Follow:
+
+Tolerance   Problem    Dense          Sparse         Banded
+    6          1    0.30489D-06    0.30488D-06    0.30489D-06
+    6          2    0.20318D-06    0.20257D-06    0.20318D-06
+    6          3    0.15468D-04    0.15480D-04    0.15468D-04
+    6          4    0.76940D-06    0.76940D-06    0.76940D-06
+    6         11    0.67955D-05    0.67919D-05    0.67955D-05
+    6         12    0.21619D-05    0.21619D-05    0.21619D-05
+    6         13    0.20675D-05    0.20675D-05    0.20675D-05
+    6         14    0.17836D-05    0.17836D-05    0.17836D-05
+    6         15    0.61734D-05    0.61736D-05    0.61734D-05
+    6         21    0.33301D-07    0.90321D-06    0.33301D-07
+    6         22    0.21868D-07    0.21958D-06    0.21868D-07
+    6         23    0.23894D-07    0.13264D-05    0.23894D-07
+    6         24    0.59623D-04    0.96022D-04    0.59623D-04
+    6         25    0.35452D-02    0.13233D-01    0.35452D-02
+    6         31    0.23503D-03    0.20596D-03    0.23503D-03
+    6         32    0.92473D-04    0.11874D-03    0.92473D-04
+    6         33    0.27665D-06    0.56288D-07    0.27665D-06
+    6         34    0.50323D-05    0.50882D-05    0.50323D-05
+    6         35    0.13796D-04    0.17239D-04    0.13796D-04
+    6         36    0.44471D-05    0.12928D-05    0.44471D-05
+    6         41    0.10704D-08    0.13112D-08    0.10704D-08
+    6         42    0.77411D-04    0.43792D-04    0.77411D-04
+    6         43    0.48663D-04    0.12284D-04    0.48663D-04
+    6         44    0.96150D-06    0.38816D-04    0.96150D-06
+    6         45    0.18276D-05    0.12578D-04    0.18276D-05
+    6         51    0.14824D-02    0.33431D-03    0.14824D-02
+    6         52    0.78947D-05    0.83441D-05    0.78947D-05
+    6         53    0.30404D-06    0.30228D-06    0.30404D-06
+    6         54    0.20587D-03    0.64346D-05    0.20587D-03
+    6         55    0.70973D-08    0.53584D-12    0.70973D-08
+
+
+                     Results for ITOL =   7
+
+ Maximum Errors for All Problems Follow:
+ The JACSP Jacobian was used.
+ The ODEs were not scaled.
+
+           Maximum Errors for Individual Problems Follow:
+
+Tolerance   Problem    Dense          Sparse         Banded
+    7          1    0.17939D-06    0.17939D-06    0.17939D-06
+    7          2    0.90068D-07    0.19394D-06    0.90068D-07
+    7          3    0.41427D-06    0.24850D-06    0.41427D-06
+    7          4    0.13268D-06    0.13268D-06    0.13268D-06
+    7         11    0.41319D-06    0.41319D-06    0.41319D-06
+    7         12    0.12318D-06    0.12318D-06    0.12318D-06
+    7         13    0.11735D-06    0.11735D-06    0.11735D-06
+    7         14    0.12901D-06    0.12901D-06    0.12901D-06
+    7         15    0.24118D-05    0.24119D-05    0.24118D-05
+    7         21    0.57591D-08    0.85781D-08    0.57591D-08
+    7         22    0.19503D-07    0.41482D-06    0.19503D-07
+    7         23    0.71641D-07    0.85808D-07    0.71641D-07
+    7         24    0.64642D-04    0.21539D-04    0.64642D-04
+    7         25    0.61838D-02    0.82646D-03    0.61838D-02
+    7         31    0.23586D-04    0.16189D-04    0.23586D-04
+    7         32    0.25632D-04    0.47030D-05    0.25632D-04
+    7         33    0.65874D-09    0.12084D-06    0.65874D-09
+    7         34    0.22809D-07    0.22809D-07    0.22809D-07
+    7         35    0.13145D-05    0.56839D-05    0.13145D-05
+    7         36    0.19589D-07    0.23374D-06    0.19589D-07
+    7         41    0.19435D-08    0.22232D-08    0.19435D-08
+    7         42    0.11205D-04    0.70297D-05    0.11205D-04
+    7         43    0.23507D-05    0.56879D-05    0.23507D-05
+    7         44    0.82990D-08    0.12100D-05    0.82990D-08
+    7         45    0.11765D-05    0.10684D-06    0.11765D-05
+    7         51    0.32637D-04    0.24654D-04    0.32637D-04
+    7         52    0.80363D-06    0.69584D-06    0.80363D-06
+    7         53    0.10621D-06    0.63975D-07    0.10621D-06
+    7         54    0.32802D-04    0.14950D-04    0.32802D-04
+    7         55    0.26523D-12    0.94684D-11    0.26523D-12
+
+
+                     Results for ITOL =   8
+
+ Maximum Errors for All Problems Follow:
+ The JACSP Jacobian was used.
+ The ODEs were not scaled.
+
+           Maximum Errors for Individual Problems Follow:
+
+Tolerance   Problem    Dense          Sparse         Banded
+    8          1    0.10373D-07    0.10373D-07    0.10373D-07
+    8          2    0.94242D-08    0.17578D-07    0.94242D-08
+    8          3    0.11996D-06    0.11996D-06    0.11996D-06
+    8          4    0.81042D-08    0.81042D-08    0.81042D-08
+    8         11    0.63111D-07    0.11909D-06    0.63111D-07
+    8         12    0.20557D-07    0.20557D-07    0.20557D-07
+    8         13    0.16174D-07    0.16174D-07    0.16174D-07
+    8         14    0.37012D-07    0.37012D-07    0.37012D-07
+    8         15    0.87365D-07    0.87365D-07    0.87365D-07
+    8         21    0.34941D-08    0.35009D-08    0.34941D-08
+    8         22    0.56117D-07    0.65117D-07    0.56117D-07
+    8         23    0.30034D-09    0.13574D-08    0.30034D-09
+    8         24    0.17307D-05    0.20719D-05    0.17307D-05
+    8         25    0.10668D-02    0.35578D-03    0.10668D-02
+    8         31    0.17604D-05    0.17090D-05    0.17604D-05
+    8         32    0.57625D-06    0.51769D-06    0.57625D-06
+    8         33    0.87616D-08    0.30134D-08    0.87616D-08
+    8         34    0.27091D-06    0.20540D-06    0.27091D-06
+    8         35    0.68338D-06    0.33514D-06    0.68338D-06
+    8         36    0.34370D-07    0.12788D-07    0.34370D-07
+    8         41    0.94766D-10    0.13014D-08    0.94766D-10
+    8         42    0.14174D-05    0.14068D-05    0.14174D-05
+    8         43    0.65369D-06    0.45508D-06    0.65369D-06
+    8         44    0.59783D-08    0.59677D-08    0.59783D-08
+    8         45    0.16166D-06    0.99133D-07    0.16166D-06
+    8         51    0.55294D-05    0.41407D-04    0.55294D-05
+    8         52    0.21761D-07    0.82699D-08    0.21761D-07
+    8         53    0.63324D-10    0.62981D-10    0.63324D-10
+    8         54    0.71240D-05    0.62731D-05    0.71240D-05
+    8         55    0.92598D-12    0.13918D-07    0.92598D-12
+
+
+                     Results for ITOL =   9
+
+ Maximum Errors for All Problems Follow:
+ The JACSP Jacobian was used.
+ The ODEs were not scaled.
+
+           Maximum Errors for Individual Problems Follow:
+
+Tolerance   Problem    Dense          Sparse         Banded
+    9          1    0.20958D-08    0.20958D-08    0.20958D-08
+    9          2    0.17847D-08    0.17876D-08    0.17847D-08
+    9          3    0.61145D-07    0.61163D-07    0.61145D-07
+    9          4    0.36942D-09    0.36942D-09    0.36942D-09
+    9         11    0.17538D-07    0.17538D-07    0.17538D-07
+    9         12    0.22293D-08    0.22293D-08    0.22293D-08
+    9         13    0.16949D-08    0.16949D-08    0.16949D-08
+    9         14    0.84210D-09    0.84210D-09    0.84210D-09
+    9         15    0.10516D-07    0.10516D-07    0.10516D-07
+    9         21    0.32933D-08    0.33742D-08    0.32933D-08
+    9         22    0.31902D-09    0.32844D-09    0.31902D-09
+    9         23    0.94382D-09    0.31511D-08    0.94382D-09
+    9         24    0.49305D-06    0.41085D-06    0.49305D-06
+    9         25    0.16797D-04    0.24274D-04    0.16797D-04
+    9         31    0.18208D-06    0.15953D-06    0.18208D-06
+    9         32    0.26902D-06    0.27541D-06    0.26902D-06
+    9         33    0.11006D-09    0.37633D-08    0.11006D-09
+    9         34    0.38196D-07    0.60457D-08    0.38196D-07
+    9         35    0.57433D-07    0.10623D-06    0.57433D-07
+    9         36    0.18414D-08    0.44054D-08    0.18414D-08
+    9         41    0.40563D-10    0.11164D-08    0.40563D-10
+    9         42    0.18211D-06    0.17731D-06    0.18211D-06
+    9         43    0.20068D-06    0.10500D-06    0.20068D-06
+    9         44    0.24609D-09    0.48970D-08    0.24609D-09
+    9         45    0.51084D-08    0.78998D-08    0.51084D-08
+    9         51    0.48443D-06    0.23201D-06    0.48443D-06
+    9         52    0.28042D-08    0.74534D-08    0.28042D-08
+    9         53    0.13075D-10    0.13375D-10    0.13075D-10
+    9         54    0.15118D-05    0.28223D-06    0.15118D-05
+    9         55    0.70164D-11    0.17527D-11    0.70164D-11
+
+
+                     Results for ITOL =  10
+
+ Maximum Errors for All Problems Follow:
+ The JACSP Jacobian was used.
+ The ODEs were not scaled.
+
+           Maximum Errors for Individual Problems Follow:
+
+Tolerance   Problem    Dense          Sparse         Banded
+   10          1    0.33624D-09    0.33624D-09    0.33624D-09
+   10          2    0.20452D-09    0.22710D-09    0.20452D-09
+   10          3    0.26783D-08    0.26778D-08    0.26783D-08
+   10          4    0.54749D-09    0.54749D-09    0.54749D-09
+   10         11    0.24371D-08    0.24371D-08    0.24371D-08
+   10         12    0.36754D-09    0.36754D-09    0.36754D-09
+   10         13    0.32141D-09    0.32141D-09    0.32141D-09
+   10         14    0.19133D-09    0.19134D-09    0.19133D-09
+   10         15    0.51657D-08    0.51657D-08    0.51657D-08
+   10         21    0.25390D-09    0.24187D-09    0.25390D-09
+   10         22    0.79985D-09    0.80670D-09    0.79985D-09
+   10         23    0.34163D-09    0.11422D-09    0.34163D-09
+   10         24    0.38432D-07    0.37833D-07    0.38432D-07
+   10         25    0.16340D-05    0.30670D-05    0.16340D-05
+   10         31    0.54675D-07    0.50422D-07    0.54675D-07
+   10         32    0.47145D-07    0.34173D-07    0.47145D-07
+   10         33    0.48293D-10    0.10476D-10    0.48293D-10
+   10         34    0.12068D-08    0.34321D-09    0.12068D-08
+   10         35    0.11142D-07    0.11106D-07    0.11142D-07
+   10         36    0.24453D-09    0.41084D-09    0.24453D-09
+   10         41    0.18998D-11    0.14058D-09    0.18998D-11
+   10         42    0.36829D-07    0.30750D-07    0.36829D-07
+   10         43    0.10193D-06    0.37776D-07    0.10193D-06
+   10         44    0.10843D-08    0.18693D-07    0.10843D-08
+   10         45    0.33732D-08    0.32759D-08    0.33732D-08
+   10         51    0.28004D-06    0.36814D-06    0.28004D-06
+   10         52    0.27797D-09    0.28170D-09    0.27797D-09
+   10         53    0.14171D-09    0.28536D-09    0.14171D-09
+   10         54    0.12712D-06    0.15492D-06    0.12712D-06
+   10         55    0.55915D-11    0.52863D-11    0.55915D-11
+
+
+                     Results for ITOL =  11
+
+ Maximum Errors for All Problems Follow:
+ The JACSP Jacobian was used.
+ The ODEs were not scaled.
+
+           Maximum Errors for Individual Problems Follow:
+
+Tolerance   Problem    Dense          Sparse         Banded
+   11          1    0.33886D-10    0.33883D-10    0.33886D-10
+   11          2    0.33458D-10    0.31825D-10    0.33458D-10
+   11          3    0.94230D-09    0.94206D-09    0.94230D-09
+   11          4    0.27668D-09    0.27667D-09    0.27668D-09
+   11         11    0.32522D-09    0.32522D-09    0.32522D-09
+   11         12    0.52756D-10    0.52756D-10    0.52756D-10
+   11         13    0.50269D-10    0.50269D-10    0.50269D-10
+   11         14    0.52820D-10    0.53140D-10    0.52820D-10
+   11         15    0.25756D-10    0.24896D-10    0.25756D-10
+   11         21    0.61056D-11    0.61009D-11    0.61056D-11
+   11         22    0.18913D-10    0.18912D-10    0.18913D-10
+   11         23    0.69820D-11    0.69267D-11    0.69820D-11
+   11         24    0.30669D-08    0.28321D-08    0.30669D-08
+   11         25    0.45450D-06    0.45160D-06    0.45450D-06
+   11         31    0.91100D-08    0.93494D-08    0.91100D-08
+   11         32    0.17097D-07    0.75887D-09    0.17097D-07
+   11         33    0.54354D-11    0.18704D-10    0.54354D-11
+   11         34    0.97267D-10    0.45919D-10    0.97267D-10
+   11         35    0.11972D-08    0.14287D-08    0.11972D-08
+   11         36    0.23630D-10    0.39189D-10    0.23630D-10
+   11         41    0.18003D-12    0.32429D-12    0.18003D-12
+   11         42    0.44212D-08    0.55394D-08    0.44212D-08
+   11         43    0.23873D-08    0.23293D-08    0.23873D-08
+   11         44    0.15374D-08    0.46963D-09    0.15374D-08
+   11         45    0.67854D-09    0.91000D-09    0.67854D-09
+   11         51    0.40679D-07    0.26661D-07    0.40679D-07
+   11         52    0.19253D-09    0.19460D-09    0.19253D-09
+   11         53    0.24920D-11    0.65464D-10    0.24920D-11
+   11         54    0.31099D-07    0.68204D-08    0.31099D-07
+   11         55    0.16240D-11    0.49212D-12    0.16240D-11
+
+
+                     Results for ITOL =  12
+
+ Maximum Errors for All Problems Follow:
+ The JACSP Jacobian was used.
+ The ODEs were not scaled.
+
+           Maximum Errors for Individual Problems Follow:
+
+Tolerance   Problem    Dense          Sparse         Banded
+   12          1    0.68578D-11    0.68577D-11    0.68578D-11
+   12          2    0.51101D-11    0.66901D-11    0.51101D-11
+   12          3    0.97478D-10    0.70922D-10    0.97478D-10
+   12          4    0.20548D-10    0.20544D-10    0.20548D-10
+   12         11    0.49520D-10    0.58109D-10    0.49520D-10
+   12         12    0.82190D-11    0.82192D-11    0.82190D-11
+   12         13    0.80713D-11    0.80714D-11    0.80713D-11
+   12         14    0.55017D-11    0.54998D-11    0.55017D-11
+   12         15    0.15909D-10    0.77797D-11    0.15909D-10
+   12         21    0.95595D-12    0.95538D-12    0.95595D-12
+   12         22    0.43547D-11    0.43714D-11    0.43547D-11
+   12         23    0.22844D-11    0.22662D-11    0.22844D-11
+   12         24    0.40643D-09    0.43048D-09    0.40643D-09
+   12         25    0.66611D-07    0.66982D-07    0.66611D-07
+   12         31    0.16952D-08    0.22937D-08    0.16952D-08
+   12         32    0.36537D-09    0.42574D-09    0.36537D-09
+   12         33    0.18641D-12    0.13612D-11    0.18641D-12
+   12         34    0.84600D-11    0.31759D-10    0.84600D-11
+   12         35    0.16464D-09    0.18684D-09    0.16464D-09
+   12         36    0.62345D-11    0.55376D-11    0.62345D-11
+   12         41    0.92314D-13    0.33121D-13    0.92314D-13
+   12         42    0.77042D-09    0.73122D-09    0.77042D-09
+   12         43    0.20265D-09    0.30732D-09    0.20265D-09
+   12         44    0.73937D-10    0.30552D-10    0.73937D-10
+   12         45    0.22400D-09    0.23251D-09    0.22400D-09
+   12         51    0.56027D-08    0.47503D-08    0.56027D-08
+   12         52    0.32807D-10    0.18717D-11    0.32807D-10
+   12         53    0.40680D-11    0.78850D-13    0.40680D-11
+   12         54    0.35412D-08    0.16820D-08    0.35412D-08
+   12         55    0.44166D-10    0.92535D-12    0.44166D-10
+
+
+                     Results for ITOL =   5
+
+ Integration Statistics Follow:
+ The JACSP Jacobian was used.
+ The ODEs were not scaled.
+
+ Problem            Dense    Sparse    Banded
+    1   Steps:        127       127       127
+        Jacs:           6         5         6
+        Ders:         192       208       192
+  
+    2   Steps:        153       153       153
+        Jacs:           5         6         5
+        Ders:         249       312       249
+  
+    3   Steps:        157       157       157
+        Jacs:           5         6         5
+        Ders:         226       254       226
+  
+    4   Steps:        189       189       189
+        Jacs:           6         8         6
+        Ders:         291       391       291
+  
+   11   Steps:        570       566       570
+        Jacs:          14        19        14
+        Ders:         713       811       713
+  
+   12   Steps:        107       107       107
+        Jacs:           4         5         4
+        Ders:         154       190       154
+  
+   13   Steps:        115       115       115
+        Jacs:           5         5         5
+        Ders:         166       196       166
+  
+   14   Steps:        169       169       169
+        Jacs:           5         8         5
+        Ders:         223       289       223
+  
+   15   Steps:       2552      2552      2552
+        Jacs:          46        70        46
+        Ders:        3023      3587      3023
+  
+   21   Steps:        141       138       141
+        Jacs:           6         5         6
+        Ders:         199       214       199
+  
+   22   Steps:        137       136       137
+        Jacs:           6         5         6
+        Ders:         196       211       196
+  
+   23   Steps:        127       128       127
+        Jacs:           5         5         5
+        Ders:         182       199       182
+  
+   24   Steps:        155       149       155
+        Jacs:           6         5         6
+        Ders:         224       237       224
+  
+   25   Steps:        150       151       150
+        Jacs:           5         6         5
+        Ders:         207       236       207
+  
+   31   Steps:        153       146       153
+        Jacs:           4         7         4
+        Ders:         265       294       265
+  
+   32   Steps:        139       160       139
+        Jacs:           3         8         3
+        Ders:         184       266       184
+  
+   33   Steps:        201       197       201
+        Jacs:           7         8         7
+        Ders:         313       320       313
+  
+   34   Steps:         21        21        21
+        Jacs:           1         4         1
+        Ders:          32        53        32
+  
+   35   Steps:         70        71        70
+        Jacs:           3         3         3
+        Ders:         117       121       117
+  
+   36   Steps:         52        46        52
+        Jacs:           2         5         2
+        Ders:          83        93        83
+  
+   41   Steps:         42        42        42
+        Jacs:           3         2         3
+        Ders:          72        76        72
+  
+   42   Steps:        215       205       215
+        Jacs:           5         8         5
+        Ders:         318       328       318
+  
+   43   Steps:        189       138       189
+        Jacs:           6         5         6
+        Ders:         316       223       316
+  
+   44   Steps:        292       287       292
+        Jacs:           8        11         8
+        Ders:         424       444       424
+  
+   45   Steps:         10        10        10
+        Jacs:           2         6         2
+        Ders:          29        65        29
+  
+   51   Steps:        273       348       273
+        Jacs:          16        24        16
+        Ders:         474       724       474
+  
+   52   Steps:         81        81        81
+        Jacs:           3         5         3
+        Ders:         113       130       113
+  
+   53   Steps:         20        20        20
+        Jacs:           2         3         2
+        Ders:          34        54        34
+  
+   54   Steps:       1180      1004      1180
+        Jacs:          29        45        29
+        Ders:        1914      1864      1914
+  
+   55   Steps:         45        88        45
+        Jacs:           2         5         2
+        Ders:          71       152        71
+  
+
+
+                     Results for ITOL =   6
+
+ Integration Statistics Follow:
+ The JACSP Jacobian was used.
+ The ODEs were not scaled.
+
+ Problem            Dense    Sparse    Banded
+    1   Steps:        168       168       168
+        Jacs:           7         8         7
+        Ders:         242       278       242
+  
+    2   Steps:        195       195       195
+        Jacs:           7         8         7
+        Ders:         311       391       311
+  
+    3   Steps:        210       210       210
+        Jacs:           6         8         6
+        Ders:         294       334       294
+  
+    4   Steps:        254       254       254
+        Jacs:           8        11         8
+        Ders:         390       530       390
+  
+   11   Steps:        763       763       763
+        Jacs:          19        27        19
+        Ders:         959      1099       959
+  
+   12   Steps:        137       137       137
+        Jacs:           5         5         5
+        Ders:         201       231       201
+  
+   13   Steps:        148       148       148
+        Jacs:           5         6         5
+        Ders:         207       249       207
+  
+   14   Steps:        303       303       303
+        Jacs:           9        11         9
+        Ders:         386       464       386
+  
+   15   Steps:       2684      2684      2684
+        Jacs:          49        72        49
+        Ders:        3153      3723      3153
+  
+   21   Steps:        186       183       186
+        Jacs:           7         8         7
+        Ders:         255       301       255
+  
+   22   Steps:        178       177       178
+        Jacs:           8         8         8
+        Ders:         253       287       253
+  
+   23   Steps:        174       173       174
+        Jacs:           7         8         7
+        Ders:         249       290       249
+  
+   24   Steps:        202       194       202
+        Jacs:           8         8         8
+        Ders:         315       319       315
+  
+   25   Steps:        199       192       199
+        Jacs:           7         8         7
+        Ders:         299       322       299
+  
+   31   Steps:        208       177       208
+        Jacs:           5         8         5
+        Ders:         366       325       366
+  
+   32   Steps:        263       223       263
+        Jacs:           5         9         5
+        Ders:         404       384       404
+  
+   33   Steps:        265       249       265
+        Jacs:           8        11         8
+        Ders:         382       407       382
+  
+   34   Steps:         30        30        30
+        Jacs:           1         2         1
+        Ders:          45        54        45
+  
+   35   Steps:         88        88        88
+        Jacs:           5         6         5
+        Ders:         146       159       146
+  
+   36   Steps:         61        59        61
+        Jacs:           2         5         2
+        Ders:          97       131        97
+  
+   41   Steps:         86        87        86
+        Jacs:           4         5         4
+        Ders:         138       163       138
+  
+   42   Steps:        269       248       269
+        Jacs:           6        10         6
+        Ders:         402       387       402
+  
+   43   Steps:        210       222       210
+        Jacs:           7         9         7
+        Ders:         298       387       298
+  
+   44   Steps:        377       562       377
+        Jacs:          11        80        11
+        Ders:         527      1511       527
+  
+   45   Steps:         15        14        15
+        Jacs:           2         7         2
+        Ders:          34        84        34
+  
+   51   Steps:        432       406       432
+        Jacs:          21        24        21
+        Ders:         764       801       764
+  
+   52   Steps:        102       102       102
+        Jacs:           3         5         3
+        Ders:         141       155       141
+  
+   53   Steps:         27        27        27
+        Jacs:           2         3         2
+        Ders:          45        65        45
+  
+   54   Steps:       1348      1224      1348
+        Jacs:          35        54        35
+        Ders:        2337      2386      2337
+  
+   55   Steps:         70       134        70
+        Jacs:           2         5         2
+        Ders:         103       248       103
+  
+
+
+                     Results for ITOL =   7
+
+ Integration Statistics Follow:
+ The JACSP Jacobian was used.
+ The ODEs were not scaled.
+
+ Problem            Dense    Sparse    Banded
+    1   Steps:        229       229       229
+        Jacs:           8         8         8
+        Ders:         308       340       308
+  
+    2   Steps:        251       256       251
+        Jacs:           9        11         9
+        Ders:         399       525       399
+  
+    3   Steps:        290       289       290
+        Jacs:           8        11         8
+        Ders:         401       454       401
+  
+    4   Steps:        358       358       358
+        Jacs:          11        14        11
+        Ders:         535       705       535
+  
+   11   Steps:       1094      1094      1094
+        Jacs:          25        36        25
+        Ders:        1357      1545      1357
+  
+   12   Steps:        201       201       201
+        Jacs:           7         7         7
+        Ders:         282       324       282
+  
+   13   Steps:        219       219       219
+        Jacs:           7         7         7
+        Ders:         301       343       301
+  
+   14   Steps:        364       364       364
+        Jacs:          10        13        10
+        Ders:         453       549       453
+  
+   15   Steps:       2961      2961      2961
+        Jacs:          55        84        55
+        Ders:        3451      4129      3451
+  
+   21   Steps:        267       266       267
+        Jacs:           9        11         9
+        Ders:         354       409       354
+  
+   22   Steps:        242       241       242
+        Jacs:           9        10         9
+        Ders:         334       379       334
+  
+   23   Steps:        241       240       241
+        Jacs:           9         9         9
+        Ders:         334       369       334
+  
+   24   Steps:        254       254       254
+        Jacs:           9        11         9
+        Ders:         374       412       374
+  
+   25   Steps:        256       258       256
+        Jacs:           9        11         9
+        Ders:         342       413       342
+  
+   31   Steps:        274       323       274
+        Jacs:           6        12         6
+        Ders:         420       547       420
+  
+   32   Steps:        299       268       299
+        Jacs:           7        11         7
+        Ders:         420       420       420
+  
+   33   Steps:        326       310       326
+        Jacs:          11        13        11
+        Ders:         476       515       476
+  
+   34   Steps:         55        55        55
+        Jacs:           3         3         3
+        Ders:          81        90        81
+  
+   35   Steps:        153       150       153
+        Jacs:           7         7         7
+        Ders:         263       261       263
+  
+   36   Steps:        147        84       147
+        Jacs:           3         5         3
+        Ders:         245       163       245
+  
+   41   Steps:        108       106       108
+        Jacs:           5         5         5
+        Ders:         172       190       172
+  
+   42   Steps:        364       366       364
+        Jacs:           9        14         9
+        Ders:         501       530       501
+  
+   43   Steps:        327       327       327
+        Jacs:          10        13        10
+        Ders:         514       546       514
+  
+   44   Steps:        552       811       552
+        Jacs:          14        95        14
+        Ders:         725      2010       725
+  
+   45   Steps:         22        20        22
+        Jacs:           2         5         2
+        Ders:          42        72        42
+  
+   51   Steps:        610       529       610
+        Jacs:          22        31        22
+        Ders:        1079      1058      1079
+  
+   52   Steps:        123       121       123
+        Jacs:           5         5         5
+        Ders:         192       195       192
+  
+   53   Steps:         46        46        46
+        Jacs:           2         3         2
+        Ders:          64        85        64
+  
+   54   Steps:       1637      1569      1637
+        Jacs:          39        64        39
+        Ders:        2695      2747      2695
+  
+   55   Steps:        117       109       117
+        Jacs:           4         8         4
+        Ders:         197       235       197
+  
+
+
+                     Results for ITOL =   8
+
+ Integration Statistics Follow:
+ The JACSP Jacobian was used.
+ The ODEs were not scaled.
+
+ Problem            Dense    Sparse    Banded
+    1   Steps:        302       302       302
+        Jacs:          11        11        11
+        Ders:         408       452       408
+  
+    2   Steps:        354       358       354
+        Jacs:          11        14        11
+        Ders:         526       679       526
+  
+    3   Steps:        400       400       400
+        Jacs:          11        14        11
+        Ders:         514       582       514
+  
+    4   Steps:        495       495       495
+        Jacs:          13        16        13
+        Ders:         685       875       685
+  
+   11   Steps:       1510      1544      1510
+        Jacs:          32        48        32
+        Ders:        1803      2107      1803
+  
+   12   Steps:        281       281       281
+        Jacs:           9        11         9
+        Ders:         371       449       371
+  
+   13   Steps:        305       305       305
+        Jacs:          10        11        10
+        Ders:         402       474       402
+  
+   14   Steps:        592       592       592
+        Jacs:          15        18        15
+        Ders:         737       863       737
+  
+   15   Steps:       3304      3304      3304
+        Jacs:          60        89        60
+        Ders:        3852      4560      3852
+  
+   21   Steps:        368       368       368
+        Jacs:          12        13        12
+        Ders:         463       519       463
+  
+   22   Steps:        340       339       340
+        Jacs:          11        13        11
+        Ders:         444       502       444
+  
+   23   Steps:        327       325       327
+        Jacs:          10        11        10
+        Ders:         415       462       415
+  
+   24   Steps:        341       336       341
+        Jacs:          11        14        11
+        Ders:         445       509       445
+  
+   25   Steps:        351       346       351
+        Jacs:          12        13        12
+        Ders:         460       510       460
+  
+   31   Steps:        418       380       418
+        Jacs:          10        13        10
+        Ders:         611       623       611
+  
+   32   Steps:        419       389       419
+        Jacs:           9        16         9
+        Ders:         596       627       596
+  
+   33   Steps:        434       413       434
+        Jacs:          13        18        13
+        Ders:         580       654       580
+  
+   34   Steps:         65        66        65
+        Jacs:           4         3         4
+        Ders:         100       109       100
+  
+   35   Steps:        217       229       217
+        Jacs:           9        10         9
+        Ders:         335       415       335
+  
+   36   Steps:        147       151       147
+        Jacs:           3         7         3
+        Ders:         230       280       230
+  
+   41   Steps:        135       141       135
+        Jacs:           7         5         7
+        Ders:         208       228       208
+  
+   42   Steps:        531       503       531
+        Jacs:          12        18        12
+        Ders:         666       699       666
+  
+   43   Steps:        384       410       384
+        Jacs:          11        16        11
+        Ders:         578       647       578
+  
+   44   Steps:        728       870       728
+        Jacs:          18        50        18
+        Ders:         914      1539       914
+  
+   45   Steps:         26        30        26
+        Jacs:           2         5         2
+        Ders:          53        93        53
+  
+   51   Steps:        753       684       753
+        Jacs:          25        32        25
+        Ders:        1289      1247      1289
+  
+   52   Steps:        166       164       166
+        Jacs:           5         5         5
+        Ders:         219       224       219
+  
+   53   Steps:         63        63        63
+        Jacs:           2         3         2
+        Ders:          87       107        87
+  
+   54   Steps:       2262      2276      2262
+        Jacs:          47        83        47
+        Ders:        3535      3876      3535
+  
+   55   Steps:        161       170       161
+        Jacs:           5         8         5
+        Ders:         296       326       296
+  
+
+
+                     Results for ITOL =   9
+
+ Integration Statistics Follow:
+ The JACSP Jacobian was used.
+ The ODEs were not scaled.
+
+ Problem            Dense    Sparse    Banded
+    1   Steps:        428       428       428
+        Jacs:          13        16        13
+        Ders:         542       618       542
+  
+    2   Steps:        486       486       486
+        Jacs:          14        16        14
+        Ders:         674       836       674
+  
+    3   Steps:        554       554       554
+        Jacs:          14        18        14
+        Ders:         674       762       674
+  
+    4   Steps:        703       703       703
+        Jacs:          18        26        18
+        Ders:         953      1293       953
+  
+   11   Steps:       2234      2234      2234
+        Jacs:          44        65        44
+        Ders:        2646      2990      2646
+  
+   12   Steps:        390       390       390
+        Jacs:          11        15        11
+        Ders:         495       609       495
+  
+   13   Steps:        426       426       426
+        Jacs:          11        13        11
+        Ders:         529       619       529
+  
+   14   Steps:        844       844       844
+        Jacs:          19        27        19
+        Ders:        1015      1225      1015
+  
+   15   Steps:       3856      3856      3856
+        Jacs:          70       105        70
+        Ders:        4465      5305      4465
+  
+   21   Steps:        525       525       525
+        Jacs:          16        18        16
+        Ders:         643       724       643
+  
+   22   Steps:        465       465       465
+        Jacs:          14        15        14
+        Ders:         579       643       579
+  
+   23   Steps:        469       469       469
+        Jacs:          13        15        13
+        Ders:         571       643       571
+  
+   24   Steps:        483       480       483
+        Jacs:          14        15        14
+        Ders:         605       653       605
+  
+   25   Steps:        478       492       478
+        Jacs:          14        16        14
+        Ders:         608       682       608
+  
+   31   Steps:        574       627       574
+        Jacs:          14        24        14
+        Ders:         823      1032       823
+  
+   32   Steps:        527       496       527
+        Jacs:          11        19        11
+        Ders:         755       772       755
+  
+   33   Steps:        580       582       580
+        Jacs:          16        20        16
+        Ders:         727       824       727
+  
+   34   Steps:         93        87        93
+        Jacs:           4         5         4
+        Ders:         163       147       163
+  
+   35   Steps:        424       338       424
+        Jacs:          12        14        12
+        Ders:         637       540       637
+  
+   36   Steps:        231       173       231
+        Jacs:           5         7         5
+        Ders:         366       311       366
+  
+   41   Steps:        182       181       182
+        Jacs:           7         8         7
+        Ders:         269       305       269
+  
+   42   Steps:        726       727       726
+        Jacs:          16        23        16
+        Ders:         889       948       889
+  
+   43   Steps:        529       495       529
+        Jacs:          15        17        15
+        Ders:         771       718       771
+  
+   44   Steps:       1062      1655      1062
+        Jacs:          24       223        24
+        Ders:        1274      4104      1274
+  
+   45   Steps:         42        43        42
+        Jacs:           2         5         2
+        Ders:          75       107        75
+  
+   51   Steps:       1025      1039      1025
+        Jacs:          28        42        28
+        Ders:        1620      1839      1620
+  
+   52   Steps:        238       242       238
+        Jacs:           8         9         8
+        Ders:         314       346       314
+  
+   53   Steps:         69        69        69
+        Jacs:           2         3         2
+        Ders:          95       115        95
+  
+   54   Steps:       3019      2960      3019
+        Jacs:          60       109        60
+        Ders:        4554      4976      4554
+  
+   55   Steps:        235       207       235
+        Jacs:           7         8         7
+        Ders:         416       398       416
+  
+
+
+                     Results for ITOL =  10
+
+ Integration Statistics Follow:
+ The JACSP Jacobian was used.
+ The ODEs were not scaled.
+
+ Problem            Dense    Sparse    Banded
+    1   Steps:        591       591       591
+        Jacs:          17        18        17
+        Ders:         713       789       713
+  
+    2   Steps:        700       700       700
+        Jacs:          19        23        19
+        Ders:         945      1186       945
+  
+    3   Steps:        787       787       787
+        Jacs:          18        25        18
+        Ders:         928      1056       928
+  
+    4   Steps:        999       999       999
+        Jacs:          22        31        22
+        Ders:        1284      1684      1284
+  
+   11   Steps:       3262      3264      3262
+        Jacs:          62        94        62
+        Ders:        3798      4290      3798
+  
+   12   Steps:        558       558       558
+        Jacs:          15        18        15
+        Ders:         697       823       697
+  
+   13   Steps:        598       598       598
+        Jacs:          16        19        16
+        Ders:         735       867       735
+  
+   14   Steps:       1129      1129      1129
+        Jacs:          24        32        24
+        Ders:        1323      1563      1323
+  
+   15   Steps:       4689      4689      4689
+        Jacs:          86       128        86
+        Ders:        5407      6427      5407
+  
+   21   Steps:        736       736       736
+        Jacs:          19        24        19
+        Ders:         886      1006       886
+  
+   22   Steps:        669       669       669
+        Jacs:          18        22        18
+        Ders:         804       908       804
+  
+   23   Steps:        659       654       659
+        Jacs:          18        20        18
+        Ders:         791       883       791
+  
+   24   Steps:        694       683       694
+        Jacs:          18        25        18
+        Ders:         826       944       826
+  
+   25   Steps:        703       709       703
+        Jacs:          18        22        18
+        Ders:         839       950       839
+  
+   31   Steps:        728       723       728
+        Jacs:          17        28        17
+        Ders:         998      1169       998
+  
+   32   Steps:        717       661       717
+        Jacs:          15        26        15
+        Ders:        1026      1029      1026
+  
+   33   Steps:        836       833       836
+        Jacs:          21        29        21
+        Ders:         999      1156       999
+  
+   34   Steps:        123       124       123
+        Jacs:           6         5         6
+        Ders:         189       218       189
+  
+   35   Steps:        561       447       561
+        Jacs:          14        17        14
+        Ders:         925       754       925
+  
+   36   Steps:        278       228       278
+        Jacs:           7        10         7
+        Ders:         462       409       462
+  
+   41   Steps:        227       237       227
+        Jacs:          10        10        10
+        Ders:         342       382       342
+  
+   42   Steps:       1041      1042      1041
+        Jacs:          21        34        21
+        Ders:        1214      1313      1214
+  
+   43   Steps:        660       609       660
+        Jacs:          17        20        17
+        Ders:         869       857       869
+  
+   44   Steps:       2969      3728      2969
+        Jacs:         931      1213       931
+        Ders:        9199     16705      9199
+  
+   45   Steps:         66        66        66
+        Jacs:           1         5         1
+        Ders:         100       136       100
+  
+   51   Steps:       1299      1156      1299
+        Jacs:          33        48        33
+        Ders:        1994      2091      1994
+  
+   52   Steps:        323       323       323
+        Jacs:          10        11        10
+        Ders:         395       419       395
+  
+   53   Steps:        137       131       137
+        Jacs:           3         6         3
+        Ders:         182       217       182
+  
+   54   Steps:       4324      4080      4324
+        Jacs:          81       146        81
+        Ders:        6276      6552      6276
+  
+   55   Steps:        355       333       355
+        Jacs:           9        16         9
+        Ders:         603       665       603
+  
+
+
+                     Results for ITOL =  11
+
+ Integration Statistics Follow:
+ The JACSP Jacobian was used.
+ The ODEs were not scaled.
+
+ Problem            Dense    Sparse    Banded
+    1   Steps:        868       868       868
+        Jacs:          21        25        21
+        Ders:        1013      1129      1013
+  
+    2   Steps:        987       986       987
+        Jacs:          24        32        24
+        Ders:        1318      1661      1318
+  
+    3   Steps:       1112      1112      1112
+        Jacs:          23        34        23
+        Ders:        1271      1451      1271
+  
+    4   Steps:       1447      1447      1447
+        Jacs:          31        44        31
+        Ders:        1825      2395      1825
+  
+   11   Steps:       4785      4784      4785
+        Jacs:          88       130        88
+        Ders:        5478      6163      5478
+  
+   12   Steps:        789       789       789
+        Jacs:          19        25        19
+        Ders:         950      1136       950
+  
+   13   Steps:        846       846       846
+        Jacs:          19        26        19
+        Ders:        1006      1204      1006
+  
+   14   Steps:       1404      1404      1404
+        Jacs:          29        41        29
+        Ders:        1635      1953      1635
+  
+   15   Steps:       6016      6016      6016
+        Jacs:         107       158       107
+        Ders:        6870      8122      6870
+  
+   21   Steps:       1072      1072      1072
+        Jacs:          25        32        25
+        Ders:        1231      1388      1231
+  
+   22   Steps:        947       947       947
+        Jacs:          23        29        23
+        Ders:        1104      1245      1104
+  
+   23   Steps:        931       931       931
+        Jacs:          22        28        22
+        Ders:        1077      1214      1077
+  
+   24   Steps:        993       993       993
+        Jacs:          23        31        23
+        Ders:        1144      1301      1144
+  
+   25   Steps:       1023      1023      1023
+        Jacs:          25        28        25
+        Ders:        1189      1314      1189
+  
+   31   Steps:        898       886       898
+        Jacs:          20        34        20
+        Ders:        1212      1327      1212
+  
+   32   Steps:        931      1003       931
+        Jacs:          19        37        19
+        Ders:        1231      1526      1231
+  
+   33   Steps:       1167      1147      1167
+        Jacs:          27        37        27
+        Ders:        1375      1545      1375
+  
+   34   Steps:        180       162       180
+        Jacs:           8         7         8
+        Ders:         309       296       309
+  
+   35   Steps:        669       640       669
+        Jacs:          16        23        16
+        Ders:        1022      1011      1022
+  
+   36   Steps:        331       352       331
+        Jacs:           8        14         8
+        Ders:         473       569       473
+  
+   41   Steps:        316       338       316
+        Jacs:          12        15        12
+        Ders:         447       547       447
+  
+   42   Steps:       1510      1525      1510
+        Jacs:          30        48        30
+        Ders:        1728      1881      1728
+  
+   43   Steps:        870       825       870
+        Jacs:          21        27        21
+        Ders:        1101      1099      1101
+  
+   44   Steps:       5489      5923      5489
+        Jacs:        1754      1748      1754
+        Ders:       17557     25091     17557
+  
+   45   Steps:         84        86        84
+        Jacs:           2         6         2
+        Ders:         130       172       130
+  
+   51   Steps:       1742      1812      1742
+        Jacs:          38        64        38
+        Ders:        2681      3086      2681
+  
+   52   Steps:        443       443       443
+        Jacs:          12        15        12
+        Ders:         534       570       534
+  
+   53   Steps:        135       157       135
+        Jacs:           3         8         3
+        Ders:         198       286       198
+  
+   54   Steps:       5707      5440      5707
+        Jacs:         104       182       104
+        Ders:        7825      8178      7825
+  
+   55   Steps:        427       454       427
+        Jacs:          11        17        11
+        Ders:         694       818       694
+  
+
+
+                     Results for ITOL =  12
+
+ Integration Statistics Follow:
+ The JACSP Jacobian was used.
+ The ODEs were not scaled.
+
+ Problem            Dense    Sparse    Banded
+    1   Steps:       1239      1239      1239
+        Jacs:          28        36        28
+        Ders:        1417      1593      1417
+  
+    2   Steps:       1389      1400      1389
+        Jacs:          30        45        30
+        Ders:        1746      2299      1746
+  
+    3   Steps:       1661      1654      1661
+        Jacs:          34        45        34
+        Ders:        1890      2113      1890
+  
+    4   Steps:       2088      2088      2088
+        Jacs:          42        58        42
+        Ders:        2581      3321      2581
+  
+   11   Steps:       6745      6814      6745
+        Jacs:         122       180       122
+        Ders:        7690      8700      7690
+  
+   12   Steps:       1126      1126      1126
+        Jacs:          24        31        24
+        Ders:        1328      1556      1328
+  
+   13   Steps:       1254      1254      1254
+        Jacs:          27        36        27
+        Ders:        1463      1733      1463
+  
+   14   Steps:       2020      2020      2020
+        Jacs:          40        56        40
+        Ders:        2315      2747      2315
+  
+   15   Steps:       7698      7701      7698
+        Jacs:         136       204       136
+        Ders:        8751     10385      8751
+  
+   21   Steps:       1548      1548      1548
+        Jacs:          34        47        34
+        Ders:        1749      1990      1749
+  
+   22   Steps:       1399      1399      1399
+        Jacs:          31        39        31
+        Ders:        1592      1782      1592
+  
+   23   Steps:       1385      1385      1385
+        Jacs:          30        39        30
+        Ders:        1573      1766      1573
+  
+   24   Steps:       1442      1438      1442
+        Jacs:          32        43        32
+        Ders:        1634      1849      1634
+  
+   25   Steps:       1471      1475      1471
+        Jacs:          32        44        32
+        Ders:        1668      1898      1668
+  
+   31   Steps:       1131      1147      1131
+        Jacs:          25        41        25
+        Ders:        1382      1584      1382
+  
+   32   Steps:       1196      1149      1196
+        Jacs:          23        39        23
+        Ders:        1482      1534      1482
+  
+   33   Steps:       1657      1652      1657
+        Jacs:          36        52        36
+        Ders:        1905      2169      1905
+  
+   34   Steps:        209       234       209
+        Jacs:           8         9         8
+        Ders:         327       417       327
+  
+   35   Steps:        982       921       982
+        Jacs:          22        32        22
+        Ders:        1392      1380      1392
+  
+   36   Steps:        470       467       470
+        Jacs:          11        16        11
+        Ders:         685       709       685
+  
+   41   Steps:        429       607       429
+        Jacs:          15        29        15
+        Ders:         586      1016       586
+  
+   42   Steps:       2143      2175      2143
+        Jacs:          40        62        40
+        Ders:        2444      2628      2444
+  
+   43   Steps:       1123      1140      1123
+        Jacs:          26        37        26
+        Ders:        1294      1456      1294
+  
+   44   Steps:       6988      7437      6988
+        Jacs:        1610      1620      1610
+        Ders:       18983     26031     18983
+  
+   45   Steps:        103       103       103
+        Jacs:           2         7         2
+        Ders:         143       191       143
+  
+   51   Steps:       2478      2401      2478
+        Jacs:          49        81        49
+        Ders:        3507      3904      3507
+  
+   52   Steps:        638       657       638
+        Jacs:          16        21        16
+        Ders:         741       817       741
+  
+   53   Steps:        215       219       215
+        Jacs:           4         8         4
+        Ders:         290       362       290
+  
+   54   Steps:       7855      7412      7855
+        Jacs:         141       235       141
+        Ders:       10179     10737     10179
+  
+   55   Steps:        553       523       553
+        Jacs:          15        22        15
+        Ders:         870       944       870
+  
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        127 f-s =        192 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.47076D-04    0.45400D-04    0.16763D-05
+  2   -0.32451D-05    0.20612D-08    0.32471D-05
+  3    0.22841D-18    0.28230D-55    0.22841D-18
+  4    0.15703D-17    0.52358D-51    0.15703D-17
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        153 f-s =        249 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+00    0.99999D-01    0.12923D-05
+  2    0.20000D+00    0.20000D+00    0.25844D-05
+  3    0.30000D+00    0.30000D+00    0.36132D-05
+  4    0.40000D+00    0.40000D+00    0.42769D-05
+  5    0.50000D+00    0.50000D+00    0.45109D-05
+  6    0.60000D+00    0.60000D+00    0.42915D-05
+  7    0.70000D+00    0.70000D+00    0.36361D-05
+  8    0.80000D+00    0.80000D+00    0.26056D-05
+  9    0.90000D+00    0.90000D+00    0.13029D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        290
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         39
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        157 f-s =        226 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.32361D-09
+  2    0.13685D-01    0.13685D-01    0.26711D-08
+  3    0.15037D+01    0.15037D+01    0.35956D-06
+  4    0.13534D+00    0.13534D+00    0.91883D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        189 f-s =        291 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.36792D+00    0.36788D+00    0.35755D-04
+  2    0.12636D-06    0.12659D-13    0.12636D-06
+  3   -0.10000D-10    0.19115D-41    0.10000D-10
+  4   -0.10809D-15    0.22774D-54    0.10809D-15
+  5    0.10328D-19    0.00000D+00    0.10328D-19
+  6    0.87705D-28    0.00000D+00    0.87705D-28
+  7    0.18845D-30    0.00000D+00    0.18845D-30
+  8    0.71774D-35    0.00000D+00    0.71774D-35
+  9   -0.21962D-39    0.00000D+00    0.21962D-39
+ 10    0.44604D-45    0.00000D+00    0.44604D-45
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        340
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         40
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =        570 f-s =        713 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.14194D-04    0.10042D-08    0.14193D-04
+  2    0.82072D-04    0.18000D-07    0.82054D-04
+  3    0.51689D-33    0.00000D+00    0.51689D-33
+  4   -0.12036D-30   -0.60430D-78    0.12036D-30
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        107 f-s =        154 J-s =          4
+ Computed and reference solutions and absolute errors follow:
+  1   -0.18969D-09    0.61813D-30    0.18969D-09
+  2   -0.16812D-08    0.89637D-30    0.16812D-08
+  3    0.25452D-07    0.27384D-26    0.25452D-07
+  4    0.11727D-06    0.20612D-08    0.11521D-06
+  5    0.47978D-04    0.45400D-04    0.25783D-05
+  6    0.13534D+00    0.13534D+00    0.23688D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        115 f-s =        166 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1   -0.27832D-08   -0.10768D-27    0.27832D-08
+  2   -0.44455D-09    0.54550D-27    0.44455D-09
+  3    0.31585D-09    0.27385D-26    0.31585D-09
+  4   -0.12067D-06    0.20612D-08    0.12273D-06
+  5    0.45765D-04    0.45400D-04    0.36548D-06
+  6    0.13534D+00    0.13534D+00    0.89097D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        169 f-s =        223 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1   -0.19035D-12    0.13312D-21    0.19035D-12
+  2   -0.10521D-10   -0.23259D-21    0.10521D-10
+  3   -0.37706D-10    0.15179D-34    0.37706D-10
+  4    0.76152D-06    0.20612D-08    0.75946D-06
+  5    0.58685D-04    0.45400D-04    0.13286D-04
+  6    0.13534D+00    0.13534D+00    0.51649D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       2552 f-s =       3023 J-s =         46
+ Computed and reference solutions and absolute errors follow:
+  1   -0.11725D-03   -0.31006D-13    0.11725D-03
+  2   -0.22722D-03    0.38628D-13    0.22722D-03
+  3    0.18048D-34    0.18049D-34    0.50176D-39
+  4    0.20612D-08    0.20612D-08    0.38795D-16
+  5    0.45400D-04    0.45400D-04    0.44899D-13
+  6    0.13534D+00    0.13534D+00    0.96960D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        141 f-s =        199 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.40054D-03    0.40032D-03    0.21724D-06
+  2    0.40016D-03    0.40016D-03    0.54344D-09
+  3    0.40000D-03    0.40000D-03    0.29683D-12
+  4    0.20000D-01    0.20000D-01    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        137 f-s =        196 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.10059D-06
+  2    0.40000D-01    0.40000D-01    0.26613D-06
+  3    0.40016D-01    0.40016D-01    0.13896D-06
+  4    0.40032D-01    0.40032D-01    0.10179D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        127 f-s =        182 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.58233D-05
+  2    0.40000D+00    0.40000D+00    0.25734D-05
+  3    0.41600D+00    0.41600D+00    0.25912D-05
+  4    0.43330D+00    0.43331D+00    0.27705D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        155 f-s =        224 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.20441D-06
+  2    0.40000D+01    0.40000D+01    0.75101D-06
+  3    0.20000D+02    0.20000D+02    0.44355D-05
+  4    0.42000D+03    0.42000D+03    0.12272D-03
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        150 f-s =        207 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.44187D-07
+  2    0.80000D+01    0.80000D+01    0.40855D-06
+  3    0.13600D+03    0.13600D+03    0.15833D-04
+  4    0.37128D+05    0.37128D+05    0.26298D-01
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        154 f-s =        265 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.22243D+02    0.22242D+02    0.94883D-03
+  2    0.27112D+02    0.27111D+02    0.15815D-02
+  3    0.40000D+03    0.40000D+03    0.11369D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        139 f-s =        183 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.41610D-05
+  2    0.91852D-01    0.91855D-01    0.32288D-05
+  3    0.28416D+02    0.28416D+02    0.41606D-03
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        179 f-s =        276 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.77384D-06
+  2    0.56309D-02    0.56309D-02    0.99464D-09
+  3    0.36024D+00    0.36024D+00    0.77384D-06
+  4    0.31706D+00    0.31706D+00    0.38741D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =         21 f-s =         32 J-s =          1
+ Computed and reference solutions and absolute errors follow:
+  1    0.59763D+00    0.59765D+00    0.22714D-04
+  2    0.14024D+01    0.14023D+01    0.22714D-04
+  3   -0.18934D-05   -0.18934D-05    0.36304D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =         70 f-s =        117 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99622D+00   -0.99164D+00    0.45754D-02
+  2    0.98698D+00    0.98334D+00    0.36394D-02
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         52
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         32
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =         51 f-s =         84 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.85239D+00    0.85240D+00    0.11467D-04
+  2    0.14761D+00    0.14760D+00    0.11467D-04
+  3    0.57733D-07    0.57731D-07    0.18609D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         42 f-s =         72 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D-07    0.10000D-07    0.10220D-14
+  2    0.48887D-13   -0.16253D-18    0.48887D-13
+  3   -0.16836D-11    0.20260D-16    0.16836D-11
+  4   -0.66697D-11   -0.18531D-14    0.66679D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.20000D+01
+    0.00000D+00
+ Steps =        215 f-s =        318 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1   -0.11586D+01   -0.11587D+01    0.78507D-04
+  2    0.43050D+00    0.43047D+00    0.34142D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         52
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         32
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =        189 f-s =        316 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.42734D-02    0.42531D-02    0.20356D-04
+  2    0.53422D-02    0.53170D-02    0.25135D-04
+  3    0.26276D+02    0.26276D+02    0.42188D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.00000D+00
+   -0.20000D+01
+   -0.10000D+01
+   -0.10000D+01
+ Steps =        288 f-s =        423 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+02    0.20000D+02    0.38158D-04
+  2   -0.20000D+02   -0.20000D+02    0.38158D-04
+  3   -0.38382D-04   -0.22476D-06    0.38158D-04
+  4    0.38382D-04    0.22476D-06    0.38158D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.17600D-02
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         10 f-s =         29 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.21588D-02    0.16181D-02    0.54075D-03
+  2   -0.57688D-09    0.13822D-09    0.71510D-09
+  3   -0.25543D-10    0.82516D-11    0.33795D-10
+  4   -0.55133D-09    0.12997D-09    0.68131D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.76100D+03
+    0.00000D+00
+    0.60000D+03
+    0.10000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        295 f-s =        514 J-s =         17
+ Computed and reference solutions and absolute errors follow:
+  1    0.12111D+04    0.12111D+04    0.66681D-02
+  2    0.14691D-04    0.12711D-04    0.19801D-05
+  3    0.12086D+04    0.12086D+04    0.66184D-02
+  4    0.32617D-03    0.32420D-03    0.19718D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        108
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         38
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =         81 f-s =        116 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.39123D+00    0.39127D+00    0.42227D-04
+  2    0.13298D-02    0.13300D-02    0.14327D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         56
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.40000D-05
+    0.10000D-05
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =         19 f-s =         32 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.00000D+00    0.32359D-12    0.32359D-12
+  2    0.46255D-07    0.23607D-06    0.18981D-06
+  3    0.81580D-11    0.76393D-13    0.80817D-11
+  4    0.94311D-07    0.76393D-06    0.66962D-06
+  5    0.10062D-04    0.32361D-05    0.68255D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         40
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.40000D+01
+    0.11000D+01
+    0.40000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       1158 f-s =       1963 J-s =         29
+ Computed and reference solutions and absolute errors follow:
+  1    0.44188D+01    0.44183D+01    0.54195D-03
+  2    0.12902D+01    0.12902D+01    0.46282D-04
+  3    0.30195D+01    0.30193D+01    0.25751D-03
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         80
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.33650D-06
+    0.82610D-02
+    0.16420D-02
+    0.93800D-05
+ Nonnegativity will be enforced for this problem.
+ Steps =         45 f-s =         71 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.17136D-06    0.17136D-06    0.52655D-13
+  2    0.37136D-02    0.37136D-02    0.57491D-08
+  3    0.61893D-02    0.61893D-02    0.10316D-07
+  4    0.95451D-05    0.95451D-05    0.52597D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        108
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         38
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        127 f-s =        208 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.47076D-04    0.45400D-04    0.16763D-05
+  2   -0.32451D-05    0.20612D-08    0.32471D-05
+  3    0.22841D-18    0.28230D-55    0.22841D-18
+  4    0.15703D-17    0.52358D-51    0.15703D-17
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        153 f-s =        312 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+00    0.99999D-01    0.12870D-05
+  2    0.20000D+00    0.20000D+00    0.25738D-05
+  3    0.30000D+00    0.30000D+00    0.35983D-05
+  4    0.40000D+00    0.40000D+00    0.42590D-05
+  5    0.50000D+00    0.50000D+00    0.44918D-05
+  6    0.60000D+00    0.60000D+00    0.42729D-05
+  7    0.70000D+00    0.70000D+00    0.36201D-05
+  8    0.80000D+00    0.80000D+00    0.25941D-05
+  9    0.90000D+00    0.90000D+00    0.12971D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        380
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        762
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        157 f-s =        254 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.38884D-09
+  2    0.13685D-01    0.13685D-01    0.34039D-08
+  3    0.15037D+01    0.15037D+01    0.43204D-06
+  4    0.13534D+00    0.13534D+00    0.91162D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        189 f-s =        391 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.36792D+00    0.36788D+00    0.35755D-04
+  2    0.12636D-06    0.12659D-13    0.12636D-06
+  3   -0.10000D-10    0.19115D-41    0.10000D-10
+  4   -0.10809D-15    0.22774D-54    0.10809D-15
+  5    0.10328D-19    0.00000D+00    0.10328D-19
+  6    0.87705D-28    0.00000D+00    0.87705D-28
+  7    0.18845D-30    0.00000D+00    0.18845D-30
+  8    0.71774D-35    0.00000D+00    0.71774D-35
+  9   -0.21962D-39    0.00000D+00    0.21962D-39
+ 10    0.44605D-45    0.00000D+00    0.44605D-45
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        450
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        913
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =        566 f-s =        811 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1   -0.20513D-04    0.10042D-08    0.20514D-04
+  2   -0.17682D-04    0.18000D-07    0.17700D-04
+  3   -0.15268D-39    0.00000D+00    0.15268D-39
+  4    0.12048D-37   -0.60430D-78    0.12048D-37
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        107 f-s =        190 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1   -0.18969D-09    0.61813D-30    0.18969D-09
+  2   -0.16812D-08    0.89637D-30    0.16812D-08
+  3    0.25452D-07    0.27384D-26    0.25452D-07
+  4    0.11727D-06    0.20612D-08    0.11521D-06
+  5    0.47978D-04    0.45400D-04    0.25783D-05
+  6    0.13534D+00    0.13534D+00    0.23688D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        206
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        393
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        115 f-s =        196 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1   -0.27832D-08   -0.10768D-27    0.27832D-08
+  2   -0.44455D-09    0.54550D-27    0.44455D-09
+  3    0.31585D-09    0.27385D-26    0.31585D-09
+  4   -0.12067D-06    0.20612D-08    0.12273D-06
+  5    0.45765D-04    0.45400D-04    0.36548D-06
+  6    0.13534D+00    0.13534D+00    0.89097D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        206
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        393
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        169 f-s =        289 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1   -0.19032D-12    0.13312D-21    0.19032D-12
+  2   -0.10521D-10   -0.23259D-21    0.10521D-10
+  3   -0.37706D-10    0.15179D-34    0.37706D-10
+  4    0.76153D-06    0.20612D-08    0.75946D-06
+  5    0.58685D-04    0.45400D-04    0.13286D-04
+  6    0.13534D+00    0.13534D+00    0.51649D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        206
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        393
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       2552 f-s =       3587 J-s =         70
+ Computed and reference solutions and absolute errors follow:
+  1   -0.11726D-03   -0.31006D-13    0.11726D-03
+  2   -0.22722D-03    0.38628D-13    0.22722D-03
+  3    0.18048D-34    0.18049D-34    0.50176D-39
+  4    0.20612D-08    0.20612D-08    0.38795D-16
+  5    0.45400D-04    0.45400D-04    0.44902D-13
+  6    0.13534D+00    0.13534D+00    0.96970D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        206
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        393
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        138 f-s =        214 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.39878D-03    0.40032D-03    0.15394D-05
+  2    0.40016D-03    0.40016D-03    0.23294D-09
+  3    0.40000D-03    0.40000D-03    0.65432D-16
+  4    0.20000D-01    0.20000D-01    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        136 f-s =        211 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.44573D-05
+  2    0.39999D-01    0.40000D-01    0.52529D-06
+  3    0.40016D-01    0.40016D-01    0.24479D-06
+  4    0.40032D-01    0.40032D-01    0.22382D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        128 f-s =        199 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.13384D-05
+  2    0.40000D+00    0.40000D+00    0.46498D-06
+  3    0.41600D+00    0.41600D+00    0.50369D-06
+  4    0.43331D+00    0.43331D+00    0.54350D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        149 f-s =        237 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.31326D-07
+  2    0.40000D+01    0.40000D+01    0.14647D-06
+  3    0.20000D+02    0.20000D+02    0.73916D-05
+  4    0.42000D+03    0.42000D+03    0.15540D-02
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        151 f-s =        236 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.71166D-07
+  2    0.80000D+01    0.80000D+01    0.63268D-06
+  3    0.13600D+03    0.13600D+03    0.21350D-04
+  4    0.37128D+05    0.37128D+05    0.11753D-01
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        152 f-s =        281 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.22243D+02    0.22242D+02    0.83322D-03
+  2    0.27112D+02    0.27111D+02    0.14478D-02
+  3    0.40000D+03    0.40000D+03    0.11369D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        161 f-s =        266 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.71584D+00    0.71583D+00    0.93195D-05
+  2    0.91859D-01    0.91855D-01    0.36184D-05
+  3    0.28415D+02    0.28416D+02    0.93199D-03
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        206 f-s =        340 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.20905D-05
+  2    0.56308D-02    0.56309D-02    0.52595D-07
+  3    0.36024D+00    0.36024D+00    0.20905D-05
+  4    0.31706D+00    0.31706D+00    0.10189D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =         21 f-s =         53 J-s =          4
+ Computed and reference solutions and absolute errors follow:
+  1    0.59761D+00    0.59765D+00    0.42350D-04
+  2    0.14024D+01    0.14023D+01    0.42351D-04
+  3   -0.18933D-05   -0.18934D-05    0.12630D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =         71 f-s =        121 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99622D+00   -0.99164D+00    0.45821D-02
+  2    0.98700D+00    0.98334D+00    0.36587D-02
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         58
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =         46 f-s =         93 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.26993D-05
+  2    0.14760D+00    0.14760D+00    0.26993D-05
+  3    0.57731D-07    0.57731D-07    0.34222D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         42 f-s =         76 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D-07    0.10000D-07    0.96397D-15
+  2    0.47391D-13   -0.16253D-18    0.47391D-13
+  3   -0.16527D-11    0.20260D-16    0.16527D-11
+  4   -0.48539D-11   -0.18531D-14    0.48520D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.20000D+01
+    0.00000D+00
+ Steps =        205 f-s =        328 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1   -0.11586D+01   -0.11587D+01    0.69927D-04
+  2    0.43047D+00    0.43047D+00    0.28371D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         58
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =        138 f-s =        223 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.42420D-02    0.42531D-02    0.11018D-04
+  2    0.53043D-02    0.53170D-02    0.12744D-04
+  3    0.26277D+02    0.26276D+02    0.17876D-03
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.00000D+00
+   -0.20000D+01
+   -0.10000D+01
+   -0.10000D+01
+ Steps =        294 f-s =        464 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+02    0.20000D+02    0.13429D-04
+  2   -0.20000D+02   -0.20000D+02    0.13429D-04
+  3   -0.13654D-04   -0.22476D-06    0.13429D-04
+  4    0.13654D-04    0.22476D-06    0.13429D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.17600D-02
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         10 f-s =         65 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.16256D-02    0.16181D-02    0.75382D-05
+  2    0.13947D-09    0.13822D-09    0.12509D-11
+  3    0.82857D-11    0.82516D-11    0.34090D-13
+  4    0.13119D-09    0.12997D-09    0.12170D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.76100D+03
+    0.00000D+00
+    0.60000D+03
+    0.10000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        301 f-s =        647 J-s =         22
+ Computed and reference solutions and absolute errors follow:
+  1    0.12111D+04    0.12111D+04    0.86694D-02
+  2    0.12712D-04    0.12711D-04    0.42343D-09
+  3    0.12086D+04    0.12086D+04    0.86053D-02
+  4    0.32420D-03    0.32420D-03    0.42500D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        128
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        221
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =         81 f-s =        130 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.39123D+00    0.39127D+00    0.44278D-04
+  2    0.13298D-02    0.13300D-02    0.15039D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         62
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.40000D-05
+    0.10000D-05
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =         17 f-s =         61 J-s =          4
+ Computed and reference solutions and absolute errors follow:
+  1    0.52782D-05    0.32359D-12    0.52782D-05
+  2    0.00000D+00    0.23607D-06    0.23607D-06
+  3    0.00000D+00    0.76393D-13    0.76393D-13
+  4    0.00000D+00    0.76393D-06    0.76393D-06
+  5    0.00000D+00    0.32361D-05    0.32361D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        170
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        303
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.40000D+01
+    0.11000D+01
+    0.40000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       1073 f-s =       1958 J-s =         48
+ Computed and reference solutions and absolute errors follow:
+  1    0.44200D+01    0.44183D+01    0.16665D-02
+  2    0.12901D+01    0.12902D+01    0.13402D-03
+  3    0.30199D+01    0.30193D+01    0.64597D-03
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        153
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.33650D-06
+    0.82610D-02
+    0.16420D-02
+    0.93800D-05
+ Nonnegativity will be enforced for this problem.
+ Steps =         88 f-s =        152 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.17136D-06    0.17136D-06    0.44148D-16
+  2    0.37136D-02    0.37136D-02    0.94077D-12
+  3    0.61893D-02    0.61893D-02    0.16224D-11
+  4    0.95451D-05    0.95451D-05    0.44325D-16
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        128
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        221
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        127 f-s =        192 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.47076D-04    0.45400D-04    0.16763D-05
+  2   -0.32451D-05    0.20612D-08    0.32471D-05
+  3    0.22841D-18    0.28230D-55    0.22841D-18
+  4    0.15703D-17    0.52358D-51    0.15703D-17
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        153 f-s =        249 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D+00    0.99999D-01    0.12923D-05
+  2    0.20000D+00    0.20000D+00    0.25844D-05
+  3    0.30000D+00    0.30000D+00    0.36132D-05
+  4    0.40000D+00    0.40000D+00    0.42769D-05
+  5    0.50000D+00    0.50000D+00    0.45109D-05
+  6    0.60000D+00    0.60000D+00    0.42915D-05
+  7    0.70000D+00    0.70000D+00    0.36361D-05
+  8    0.80000D+00    0.80000D+00    0.26056D-05
+  9    0.90000D+00    0.90000D+00    0.13029D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        506
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         39
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        157 f-s =        226 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.32361D-09
+  2    0.13685D-01    0.13685D-01    0.26711D-08
+  3    0.15037D+01    0.15037D+01    0.35956D-06
+  4    0.13534D+00    0.13534D+00    0.91883D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        189 f-s =        291 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.36792D+00    0.36788D+00    0.35755D-04
+  2    0.12636D-06    0.12659D-13    0.12636D-06
+  3   -0.10000D-10    0.19115D-41    0.10000D-10
+  4   -0.10809D-15    0.22774D-54    0.10809D-15
+  5    0.10328D-19    0.00000D+00    0.10328D-19
+  6    0.87705D-28    0.00000D+00    0.87705D-28
+  7    0.18845D-30    0.00000D+00    0.18845D-30
+  8    0.71774D-35    0.00000D+00    0.71774D-35
+  9   -0.21962D-39    0.00000D+00    0.21962D-39
+ 10    0.44604D-45    0.00000D+00    0.44604D-45
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        610
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         40
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =        570 f-s =        713 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.14194D-04    0.10042D-08    0.14193D-04
+  2    0.82072D-04    0.18000D-07    0.82054D-04
+  3    0.51689D-33    0.00000D+00    0.51689D-33
+  4   -0.12036D-30   -0.60430D-78    0.12036D-30
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        107 f-s =        154 J-s =          4
+ Computed and reference solutions and absolute errors follow:
+  1   -0.18969D-09    0.61813D-30    0.18969D-09
+  2   -0.16812D-08    0.89637D-30    0.16812D-08
+  3    0.25452D-07    0.27384D-26    0.25452D-07
+  4    0.11727D-06    0.20612D-08    0.11521D-06
+  5    0.47978D-04    0.45400D-04    0.25783D-05
+  6    0.13534D+00    0.13534D+00    0.23688D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        254
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        115 f-s =        166 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1   -0.27832D-08   -0.10768D-27    0.27832D-08
+  2   -0.44455D-09    0.54550D-27    0.44455D-09
+  3    0.31585D-09    0.27385D-26    0.31585D-09
+  4   -0.12067D-06    0.20612D-08    0.12273D-06
+  5    0.45765D-04    0.45400D-04    0.36548D-06
+  6    0.13534D+00    0.13534D+00    0.89097D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        254
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        169 f-s =        223 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1   -0.19035D-12    0.13312D-21    0.19035D-12
+  2   -0.10521D-10   -0.23259D-21    0.10521D-10
+  3   -0.37706D-10    0.15179D-34    0.37706D-10
+  4    0.76152D-06    0.20612D-08    0.75946D-06
+  5    0.58685D-04    0.45400D-04    0.13286D-04
+  6    0.13534D+00    0.13534D+00    0.51649D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        254
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       2552 f-s =       3023 J-s =         46
+ Computed and reference solutions and absolute errors follow:
+  1   -0.11725D-03   -0.31006D-13    0.11725D-03
+  2   -0.22722D-03    0.38628D-13    0.22722D-03
+  3    0.18048D-34    0.18049D-34    0.50176D-39
+  4    0.20612D-08    0.20612D-08    0.38795D-16
+  5    0.45400D-04    0.45400D-04    0.44899D-13
+  6    0.13534D+00    0.13534D+00    0.96960D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        254
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        141 f-s =        199 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.40054D-03    0.40032D-03    0.21724D-06
+  2    0.40016D-03    0.40016D-03    0.54344D-09
+  3    0.40000D-03    0.40000D-03    0.29683D-12
+  4    0.20000D-01    0.20000D-01    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        137 f-s =        196 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.10059D-06
+  2    0.40000D-01    0.40000D-01    0.26613D-06
+  3    0.40016D-01    0.40016D-01    0.13896D-06
+  4    0.40032D-01    0.40032D-01    0.10179D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        127 f-s =        182 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.58233D-05
+  2    0.40000D+00    0.40000D+00    0.25734D-05
+  3    0.41600D+00    0.41600D+00    0.25912D-05
+  4    0.43330D+00    0.43331D+00    0.27705D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        155 f-s =        224 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.20441D-06
+  2    0.40000D+01    0.40000D+01    0.75101D-06
+  3    0.20000D+02    0.20000D+02    0.44355D-05
+  4    0.42000D+03    0.42000D+03    0.12272D-03
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        150 f-s =        207 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.44187D-07
+  2    0.80000D+01    0.80000D+01    0.40855D-06
+  3    0.13600D+03    0.13600D+03    0.15833D-04
+  4    0.37128D+05    0.37128D+05    0.26298D-01
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        154 f-s =        265 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.22243D+02    0.22242D+02    0.94883D-03
+  2    0.27112D+02    0.27111D+02    0.15815D-02
+  3    0.40000D+03    0.40000D+03    0.11369D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        139 f-s =        183 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.41610D-05
+  2    0.91852D-01    0.91855D-01    0.32288D-05
+  3    0.28416D+02    0.28416D+02    0.41606D-03
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        179 f-s =        276 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.77384D-06
+  2    0.56309D-02    0.56309D-02    0.99464D-09
+  3    0.36024D+00    0.36024D+00    0.77384D-06
+  4    0.31706D+00    0.31706D+00    0.38741D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =         21 f-s =         32 J-s =          1
+ Computed and reference solutions and absolute errors follow:
+  1    0.59763D+00    0.59765D+00    0.22714D-04
+  2    0.14024D+01    0.14023D+01    0.22714D-04
+  3   -0.18934D-05   -0.18934D-05    0.36304D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =         70 f-s =        117 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99622D+00   -0.99164D+00    0.45754D-02
+  2    0.98698D+00    0.98334D+00    0.36394D-02
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         58
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         32
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =         51 f-s =         84 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.85239D+00    0.85240D+00    0.11467D-04
+  2    0.14761D+00    0.14760D+00    0.11467D-04
+  3    0.57733D-07    0.57731D-07    0.18609D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         42 f-s =         72 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D-07    0.10000D-07    0.10220D-14
+  2    0.48887D-13   -0.16253D-18    0.48887D-13
+  3   -0.16836D-11    0.20260D-16    0.16836D-11
+  4   -0.66697D-11   -0.18531D-14    0.66679D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.20000D+01
+    0.00000D+00
+ Steps =        215 f-s =        318 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1   -0.11586D+01   -0.11587D+01    0.78507D-04
+  2    0.43050D+00    0.43047D+00    0.34142D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         58
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         32
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =        189 f-s =        316 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.42734D-02    0.42531D-02    0.20356D-04
+  2    0.53422D-02    0.53170D-02    0.25135D-04
+  3    0.26276D+02    0.26276D+02    0.42188D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.00000D+00
+   -0.20000D+01
+   -0.10000D+01
+   -0.10000D+01
+ Steps =        288 f-s =        423 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+02    0.20000D+02    0.38158D-04
+  2   -0.20000D+02   -0.20000D+02    0.38158D-04
+  3   -0.38382D-04   -0.22476D-06    0.38158D-04
+  4    0.38382D-04    0.22476D-06    0.38158D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.17600D-02
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         10 f-s =         29 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.21588D-02    0.16181D-02    0.54075D-03
+  2   -0.57688D-09    0.13822D-09    0.71510D-09
+  3   -0.25543D-10    0.82516D-11    0.33795D-10
+  4   -0.55133D-09    0.12997D-09    0.68131D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.76100D+03
+    0.00000D+00
+    0.60000D+03
+    0.10000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        295 f-s =        514 J-s =         17
+ Computed and reference solutions and absolute errors follow:
+  1    0.12111D+04    0.12111D+04    0.66681D-02
+  2    0.14691D-04    0.12711D-04    0.19801D-05
+  3    0.12086D+04    0.12086D+04    0.66184D-02
+  4    0.32617D-03    0.32420D-03    0.19718D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        144
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         38
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =         81 f-s =        116 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.39123D+00    0.39127D+00    0.42227D-04
+  2    0.13298D-02    0.13300D-02    0.14327D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         62
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.40000D-05
+    0.10000D-05
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =         19 f-s =         32 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.00000D+00    0.32359D-12    0.32359D-12
+  2    0.46255D-07    0.23607D-06    0.18981D-06
+  3    0.81580D-11    0.76393D-13    0.80817D-11
+  4    0.94311D-07    0.76393D-06    0.66962D-06
+  5    0.10062D-04    0.32361D-05    0.68255D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        200
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         40
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.40000D+01
+    0.11000D+01
+    0.40000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       1158 f-s =       1963 J-s =         29
+ Computed and reference solutions and absolute errors follow:
+  1    0.44188D+01    0.44183D+01    0.54195D-03
+  2    0.12902D+01    0.12902D+01    0.46282D-04
+  3    0.30195D+01    0.30193D+01    0.25751D-03
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         98
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =             5  follow.
+  Results for ITOL =             5  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-04
+ Initial solution = 
+    0.33650D-06
+    0.82610D-02
+    0.16420D-02
+    0.93800D-05
+ Nonnegativity will be enforced for this problem.
+ Steps =         45 f-s =         71 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.17136D-06    0.17136D-06    0.52655D-13
+  2    0.37136D-02    0.37136D-02    0.57491D-08
+  3    0.61893D-02    0.61893D-02    0.10316D-07
+  4    0.95451D-05    0.95451D-05    0.52597D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        144
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         38
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        168 f-s =        242 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.45705D-04    0.45400D-04    0.30490D-06
+  2   -0.90870D-08    0.20612D-08    0.11148D-07
+  3    0.24196D-22    0.28230D-55    0.24196D-22
+  4   -0.15669D-21    0.52358D-51    0.15669D-21
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        195 f-s =        309 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D-01    0.99999D-01    0.54848D-07
+  2    0.20000D+00    0.20000D+00    0.10969D-06
+  3    0.30000D+00    0.30000D+00    0.15555D-06
+  4    0.40000D+00    0.40000D+00    0.18793D-06
+  5    0.50000D+00    0.50000D+00    0.20269D-06
+  6    0.60000D+00    0.60000D+00    0.19689D-06
+  7    0.70000D+00    0.70000D+00    0.16963D-06
+  8    0.80000D+00    0.80000D+00    0.12284D-06
+  9    0.90000D+00    0.90000D+00    0.61424D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        290
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         39
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        210 f-s =        294 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13533D-02   -0.13534D-02    0.13975D-07
+  2    0.13685D-01    0.13685D-01    0.14417D-06
+  3    0.15037D+01    0.15037D+01    0.15528D-04
+  4    0.13533D+00    0.13534D+00    0.11159D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        254 f-s =        390 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.76940D-06
+  2    0.34439D-06    0.12659D-13    0.34439D-06
+  3   -0.44767D-10    0.19115D-41    0.44767D-10
+  4   -0.33859D-18    0.22774D-54    0.33859D-18
+  5   -0.21641D-22    0.00000D+00    0.21641D-22
+  6    0.28625D-31    0.00000D+00    0.28625D-31
+  7   -0.17291D-39    0.00000D+00    0.17291D-39
+  8   -0.77559D-46    0.00000D+00    0.77559D-46
+  9    0.19301D-53    0.00000D+00    0.19301D-53
+ 10    0.40515D-60    0.00000D+00    0.40515D-60
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        340
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         40
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =        763 f-s =        960 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1    0.88738D-06    0.10042D-08    0.88638D-06
+  2   -0.68091D-05    0.18000D-07    0.68271D-05
+  3   -0.22172D-46    0.00000D+00    0.22172D-46
+  4   -0.19566D-43   -0.60430D-78    0.19566D-43
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        137 f-s =        201 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.13210D-11    0.61813D-30    0.13210D-11
+  2   -0.47809D-12    0.89637D-30    0.47809D-12
+  3    0.17546D-08    0.27384D-26    0.17546D-08
+  4    0.28827D-07    0.20612D-08    0.26765D-07
+  5    0.47562D-04    0.45400D-04    0.21619D-05
+  6    0.13534D+00    0.13534D+00    0.13840D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        148 f-s =        207 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1   -0.10780D-10   -0.10768D-27    0.10780D-10
+  2   -0.17657D-09    0.54550D-27    0.17657D-09
+  3   -0.25324D-09    0.27385D-26    0.25324D-09
+  4    0.26160D-07    0.20612D-08    0.24099D-07
+  5    0.47467D-04    0.45400D-04    0.20675D-05
+  6    0.13534D+00    0.13534D+00    0.13337D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        303 f-s =        386 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.27743D-10    0.13312D-21    0.27743D-10
+  2    0.47648D-10   -0.23259D-21    0.47648D-10
+  3   -0.20095D-14    0.15179D-34    0.20095D-14
+  4    0.20735D-06    0.20612D-08    0.20528D-06
+  5    0.47184D-04    0.45400D-04    0.17836D-05
+  6    0.13534D+00    0.13534D+00    0.95883D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       2684 f-s =       3153 J-s =         49
+ Computed and reference solutions and absolute errors follow:
+  1    0.30953D-05   -0.31006D-13    0.30953D-05
+  2    0.61741D-05    0.38628D-13    0.61741D-05
+  3    0.18048D-34    0.18049D-34    0.52734D-39
+  4    0.20612D-08    0.20612D-08    0.54546D-16
+  5    0.45400D-04    0.45400D-04    0.30370D-13
+  6    0.13534D+00    0.13534D+00    0.90100D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        186 f-s =        255 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.40036D-03    0.40032D-03    0.33301D-07
+  2    0.40016D-03    0.40016D-03    0.11796D-14
+  3    0.40000D-03    0.40000D-03    0.54210D-19
+  4    0.20000D-01    0.20000D-01    0.34694D-17
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        178 f-s =        253 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.21868D-07
+  2    0.40000D-01    0.40000D-01    0.13655D-08
+  3    0.40016D-01    0.40016D-01    0.90119D-09
+  4    0.40032D-01    0.40032D-01    0.88534D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        174 f-s =        249 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.23894D-07
+  2    0.40000D+00    0.40000D+00    0.35876D-09
+  3    0.41600D+00    0.41600D+00    0.11849D-07
+  4    0.43331D+00    0.43331D+00    0.21393D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        202 f-s =        315 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.40078D-07
+  2    0.40000D+01    0.40000D+01    0.17523D-06
+  3    0.20000D+02    0.20000D+02    0.15438D-05
+  4    0.42000D+03    0.42000D+03    0.59616D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        199 f-s =        299 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.61337D-07
+  2    0.80000D+01    0.80000D+01    0.51082D-06
+  3    0.13600D+03    0.13600D+03    0.14301D-04
+  4    0.37128D+05    0.37128D+05    0.35452D-02
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        205 f-s =        348 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.22242D+02    0.22242D+02    0.13043D-03
+  2    0.27111D+02    0.27111D+02    0.10472D-03
+  3    0.40000D+03    0.40000D+03    0.11369D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        253 f-s =        392 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.60123D-06
+  2    0.91857D-01    0.91855D-01    0.12761D-05
+  3    0.28416D+02    0.28416D+02    0.60136D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        248 f-s =        358 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.21535D-06
+  2    0.56309D-02    0.56309D-02    0.42003D-09
+  3    0.36024D+00    0.36024D+00    0.21535D-06
+  4    0.31706D+00    0.31706D+00    0.10787D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =         30 f-s =         45 J-s =          1
+ Computed and reference solutions and absolute errors follow:
+  1    0.59766D+00    0.59765D+00    0.50323D-05
+  2    0.14023D+01    0.14023D+01    0.50323D-05
+  3   -0.18934D-05   -0.18934D-05    0.18292D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =         88 f-s =        146 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99163D+00   -0.99164D+00    0.12629D-04
+  2    0.98332D+00    0.98334D+00    0.13792D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         52
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         32
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =         74 f-s =        136 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.89511D-06
+  2    0.14760D+00    0.14760D+00    0.89511D-06
+  3    0.57731D-07    0.57731D-07    0.11100D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         83 f-s =        137 J-s =          4
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D-07    0.10000D-07    0.32582D-13
+  2    0.41753D-11   -0.16253D-18    0.41753D-11
+  3   -0.49137D-09    0.20260D-16    0.49137D-09
+  4    0.47668D-07   -0.18531D-14    0.47668D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.20000D+01
+    0.00000D+00
+ Steps =        266 f-s =        382 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1   -0.11587D+01   -0.11587D+01    0.42191D-04
+  2    0.43051D+00    0.43047D+00    0.39273D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         52
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         32
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =        210 f-s =        298 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.42518D-02    0.42531D-02    0.12780D-05
+  2    0.53154D-02    0.53170D-02    0.16193D-05
+  3    0.26276D+02    0.26276D+02    0.48515D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.00000D+00
+   -0.20000D+01
+   -0.10000D+01
+   -0.10000D+01
+ Steps =        380 f-s =        525 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+02    0.20000D+02    0.85324D-07
+  2   -0.20000D+02   -0.20000D+02    0.85324D-07
+  3   -0.31009D-06   -0.22476D-06    0.85324D-07
+  4    0.31009D-06    0.22476D-06    0.85324D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.17600D-02
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         15 f-s =         34 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.16162D-02    0.16181D-02    0.18339D-05
+  2    0.14136D-09    0.13822D-09    0.31334D-11
+  3    0.84424D-11    0.82516D-11    0.19087D-12
+  4    0.13291D-09    0.12997D-09    0.29425D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.76100D+03
+    0.00000D+00
+    0.60000D+03
+    0.10000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        385 f-s =        649 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1    0.12111D+04    0.12111D+04    0.82423D-03
+  2    0.12707D-04    0.12711D-04    0.40225D-08
+  3    0.12086D+04    0.12086D+04    0.81814D-03
+  4    0.32419D-03    0.32420D-03    0.40067D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        108
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         38
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        102 f-s =        141 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.39128D+00    0.39127D+00    0.78947D-05
+  2    0.13300D-02    0.13300D-02    0.26820D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         56
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.40000D-05
+    0.10000D-05
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =         27 f-s =         45 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.40159D-07    0.32359D-12    0.40159D-07
+  2    0.13879D-06    0.23607D-06    0.97275D-07
+  3    0.22179D-12    0.76393D-13    0.14539D-12
+  4    0.54377D-06    0.76393D-06    0.22017D-06
+  5    0.39134D-05    0.32361D-05    0.67732D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         40
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.40000D+01
+    0.11000D+01
+    0.40000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       1308 f-s =       2206 J-s =         34
+ Computed and reference solutions and absolute errors follow:
+  1    0.44184D+01    0.44183D+01    0.86593D-04
+  2    0.12902D+01    0.12902D+01    0.74589D-05
+  3    0.30193D+01    0.30193D+01    0.54684D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         80
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.33650D-06
+    0.82610D-02
+    0.16420D-02
+    0.93800D-05
+ Nonnegativity will be enforced for this problem.
+ Steps =         70 f-s =        103 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.17136D-06    0.17136D-06    0.32656D-13
+  2    0.37136D-02    0.37136D-02    0.63884D-08
+  3    0.61893D-02    0.61893D-02    0.42586D-08
+  4    0.95451D-05    0.95451D-05    0.32657D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        108
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         38
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        168 f-s =        278 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.45705D-04    0.45400D-04    0.30487D-06
+  2   -0.90853D-08    0.20612D-08    0.11146D-07
+  3    0.24062D-22    0.28230D-55    0.24062D-22
+  4   -0.15582D-21    0.52358D-51    0.15582D-21
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        195 f-s =        391 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D-01    0.99999D-01    0.55040D-07
+  2    0.20000D+00    0.20000D+00    0.11008D-06
+  3    0.30000D+00    0.30000D+00    0.15603D-06
+  4    0.40000D+00    0.40000D+00    0.18837D-06
+  5    0.50000D+00    0.50000D+00    0.20302D-06
+  6    0.60000D+00    0.60000D+00    0.19706D-06
+  7    0.70000D+00    0.70000D+00    0.16968D-06
+  8    0.80000D+00    0.80000D+00    0.12283D-06
+  9    0.90000D+00    0.90000D+00    0.61419D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        380
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        762
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        210 f-s =        334 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13533D-02   -0.13534D-02    0.13966D-07
+  2    0.13685D-01    0.13685D-01    0.14406D-06
+  3    0.15037D+01    0.15037D+01    0.15518D-04
+  4    0.13533D+00    0.13534D+00    0.11156D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        254 f-s =        530 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.76940D-06
+  2    0.34439D-06    0.12659D-13    0.34439D-06
+  3   -0.44767D-10    0.19115D-41    0.44767D-10
+  4   -0.33848D-18    0.22774D-54    0.33848D-18
+  5   -0.21641D-22    0.00000D+00    0.21641D-22
+  6    0.28625D-31    0.00000D+00    0.28625D-31
+  7   -0.17291D-39    0.00000D+00    0.17291D-39
+  8   -0.77559D-46    0.00000D+00    0.77559D-46
+  9    0.19301D-53    0.00000D+00    0.19301D-53
+ 10    0.40515D-60    0.00000D+00    0.40515D-60
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        450
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        913
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =        763 f-s =       1099 J-s =         27
+ Computed and reference solutions and absolute errors follow:
+  1    0.88635D-06    0.10042D-08    0.88535D-06
+  2   -0.67734D-05    0.18000D-07    0.67914D-05
+  3   -0.21127D-46    0.00000D+00    0.21127D-46
+  4   -0.17787D-43   -0.60430D-78    0.17787D-43
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        137 f-s =        231 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.13210D-11    0.61813D-30    0.13210D-11
+  2   -0.47809D-12    0.89637D-30    0.47809D-12
+  3    0.17546D-08    0.27384D-26    0.17546D-08
+  4    0.28827D-07    0.20612D-08    0.26765D-07
+  5    0.47562D-04    0.45400D-04    0.21619D-05
+  6    0.13534D+00    0.13534D+00    0.13840D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        206
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        393
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        148 f-s =        249 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1   -0.10780D-10   -0.10768D-27    0.10780D-10
+  2   -0.17657D-09    0.54550D-27    0.17657D-09
+  3   -0.25324D-09    0.27385D-26    0.25324D-09
+  4    0.26160D-07    0.20612D-08    0.24099D-07
+  5    0.47467D-04    0.45400D-04    0.20675D-05
+  6    0.13534D+00    0.13534D+00    0.13337D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        206
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        393
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        303 f-s =        464 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.27743D-10    0.13312D-21    0.27743D-10
+  2    0.47648D-10   -0.23259D-21    0.47648D-10
+  3   -0.20095D-14    0.15179D-34    0.20095D-14
+  4    0.20735D-06    0.20612D-08    0.20528D-06
+  5    0.47184D-04    0.45400D-04    0.17836D-05
+  6    0.13534D+00    0.13534D+00    0.95883D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        206
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        393
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       2684 f-s =       3723 J-s =         72
+ Computed and reference solutions and absolute errors follow:
+  1    0.32625D-05   -0.31006D-13    0.32625D-05
+  2    0.57991D-05    0.38628D-13    0.57991D-05
+  3    0.18048D-34    0.18049D-34    0.52698D-39
+  4    0.20612D-08    0.20612D-08    0.54509D-16
+  5    0.45400D-04    0.45400D-04    0.30341D-13
+  6    0.13534D+00    0.13534D+00    0.90300D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        206
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        393
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        183 f-s =        301 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.40123D-03    0.40032D-03    0.90318D-06
+  2    0.40016D-03    0.40016D-03    0.76334D-10
+  3    0.40000D-03    0.40000D-03    0.13786D-15
+  4    0.20000D-01    0.20000D-01    0.34694D-17
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        177 f-s =        287 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.21958D-06
+  2    0.40000D-01    0.40000D-01    0.97446D-08
+  3    0.40016D-01    0.40016D-01    0.90186D-08
+  4    0.40032D-01    0.40032D-01    0.88875D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        173 f-s =        290 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.13264D-05
+  2    0.40000D+00    0.40000D+00    0.63430D-06
+  3    0.41600D+00    0.41600D+00    0.59829D-06
+  4    0.43330D+00    0.43331D+00    0.63800D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        194 f-s =        319 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.57372D-07
+  2    0.40000D+01    0.40000D+01    0.25477D-06
+  3    0.20000D+02    0.20000D+02    0.23237D-05
+  4    0.42000D+03    0.42000D+03    0.96016D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        192 f-s =        322 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.10303D-06
+  2    0.80000D+01    0.80000D+01    0.89222D-06
+  3    0.13600D+03    0.13600D+03    0.28232D-04
+  4    0.37128D+05    0.37128D+05    0.13236D-01
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        196 f-s =        360 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.22242D+02    0.22242D+02    0.61789D-05
+  2    0.27111D+02    0.27111D+02    0.46695D-04
+  3    0.40000D+03    0.40000D+03    0.11369D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        233 f-s =        412 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.85797D-06
+  2    0.91856D-01    0.91855D-01    0.36329D-06
+  3    0.28416D+02    0.28416D+02    0.85801D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        249 f-s =        406 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.56131D-07
+  2    0.56309D-02    0.56309D-02    0.10936D-09
+  3    0.36024D+00    0.36024D+00    0.56131D-07
+  4    0.31706D+00    0.31706D+00    0.28120D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =         30 f-s =         54 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.59766D+00    0.59765D+00    0.50882D-05
+  2    0.14023D+01    0.14023D+01    0.50882D-05
+  3   -0.18934D-05   -0.18934D-05    0.17887D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =         88 f-s =        159 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99163D+00   -0.99164D+00    0.14223D-04
+  2    0.98332D+00    0.98334D+00    0.17234D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         58
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =         59 f-s =        131 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.12935D-05
+  2    0.14760D+00    0.14760D+00    0.12935D-05
+  3    0.57731D-07    0.57731D-07    0.11044D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         87 f-s =        163 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D-07    0.10000D-07    0.99558D-15
+  2    0.15187D-13   -0.16253D-18    0.15187D-13
+  3    0.81755D-11    0.20260D-16    0.81755D-11
+  4   -0.20076D-08   -0.18531D-14    0.20076D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.20000D+01
+    0.00000D+00
+ Steps =        253 f-s =        406 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1   -0.11587D+01   -0.11587D+01    0.48165D-04
+  2    0.43052D+00    0.43047D+00    0.48535D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         58
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =        222 f-s =        387 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.42529D-02    0.42531D-02    0.20017D-06
+  2    0.53168D-02    0.53170D-02    0.25054D-06
+  3    0.26276D+02    0.26276D+02    0.12792D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.00000D+00
+   -0.20000D+01
+   -0.10000D+01
+   -0.10000D+01
+ Steps =        396 f-s =        620 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+02    0.20000D+02    0.12523D-06
+  2   -0.20000D+02   -0.20000D+02    0.12521D-06
+  3   -0.34995D-06   -0.22476D-06    0.12519D-06
+  4    0.35001D-06    0.22476D-06    0.12525D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.17600D-02
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         14 f-s =         84 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.16055D-02    0.16181D-02    0.12577D-04
+  2    0.12370D-09    0.13822D-09    0.14525D-10
+  3    0.74221D-11    0.82516D-11    0.82948D-12
+  4    0.11628D-09    0.12997D-09    0.13696D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.76100D+03
+    0.00000D+00
+    0.60000D+03
+    0.10000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        334 f-s =        726 J-s =         23
+ Computed and reference solutions and absolute errors follow:
+  1    0.12111D+04    0.12111D+04    0.15384D-02
+  2    0.12711D-04    0.12711D-04    0.36938D-09
+  3    0.12086D+04    0.12086D+04    0.15270D-02
+  4    0.32420D-03    0.32420D-03    0.36814D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        128
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        221
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        102 f-s =        155 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.39128D+00    0.39127D+00    0.83441D-05
+  2    0.13300D-02    0.13300D-02    0.28346D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         62
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.40000D-05
+    0.10000D-05
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =         27 f-s =         66 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.37454D-07    0.32359D-12    0.37454D-07
+  2    0.13653D-06    0.23607D-06    0.99534D-07
+  3    0.18473D-12    0.76393D-13    0.10834D-12
+  4    0.54060D-06    0.76393D-06    0.22333D-06
+  5    0.39108D-05    0.32361D-05    0.67472D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        170
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        303
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.40000D+01
+    0.11000D+01
+    0.40000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       1144 f-s =       2115 J-s =         50
+ Computed and reference solutions and absolute errors follow:
+  1    0.44183D+01    0.44183D+01    0.27303D-04
+  2    0.12902D+01    0.12902D+01    0.98022D-06
+  3    0.30193D+01    0.30193D+01    0.10710D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        153
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.33650D-06
+    0.82610D-02
+    0.16420D-02
+    0.93800D-05
+ Nonnegativity will be enforced for this problem.
+ Steps =        134 f-s =        247 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.17136D-06    0.17136D-06    0.10342D-15
+  2    0.37136D-02    0.37136D-02    0.22807D-11
+  3    0.61893D-02    0.61893D-02    0.38018D-11
+  4    0.95451D-05    0.95451D-05    0.10347D-15
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        128
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        221
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        168 f-s =        242 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.45705D-04    0.45400D-04    0.30490D-06
+  2   -0.90870D-08    0.20612D-08    0.11148D-07
+  3    0.24196D-22    0.28230D-55    0.24196D-22
+  4   -0.15669D-21    0.52358D-51    0.15669D-21
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        195 f-s =        309 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D-01    0.99999D-01    0.54848D-07
+  2    0.20000D+00    0.20000D+00    0.10969D-06
+  3    0.30000D+00    0.30000D+00    0.15555D-06
+  4    0.40000D+00    0.40000D+00    0.18793D-06
+  5    0.50000D+00    0.50000D+00    0.20269D-06
+  6    0.60000D+00    0.60000D+00    0.19689D-06
+  7    0.70000D+00    0.70000D+00    0.16963D-06
+  8    0.80000D+00    0.80000D+00    0.12284D-06
+  9    0.90000D+00    0.90000D+00    0.61424D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        506
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         39
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        210 f-s =        294 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13533D-02   -0.13534D-02    0.13975D-07
+  2    0.13685D-01    0.13685D-01    0.14417D-06
+  3    0.15037D+01    0.15037D+01    0.15528D-04
+  4    0.13533D+00    0.13534D+00    0.11159D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        254 f-s =        390 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.76940D-06
+  2    0.34439D-06    0.12659D-13    0.34439D-06
+  3   -0.44767D-10    0.19115D-41    0.44767D-10
+  4   -0.33859D-18    0.22774D-54    0.33859D-18
+  5   -0.21641D-22    0.00000D+00    0.21641D-22
+  6    0.28625D-31    0.00000D+00    0.28625D-31
+  7   -0.17291D-39    0.00000D+00    0.17291D-39
+  8   -0.77559D-46    0.00000D+00    0.77559D-46
+  9    0.19301D-53    0.00000D+00    0.19301D-53
+ 10    0.40515D-60    0.00000D+00    0.40515D-60
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        610
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         40
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =        763 f-s =        960 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1    0.88738D-06    0.10042D-08    0.88638D-06
+  2   -0.68091D-05    0.18000D-07    0.68271D-05
+  3   -0.22172D-46    0.00000D+00    0.22172D-46
+  4   -0.19566D-43   -0.60430D-78    0.19566D-43
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        137 f-s =        201 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.13210D-11    0.61813D-30    0.13210D-11
+  2   -0.47809D-12    0.89637D-30    0.47809D-12
+  3    0.17546D-08    0.27384D-26    0.17546D-08
+  4    0.28827D-07    0.20612D-08    0.26765D-07
+  5    0.47562D-04    0.45400D-04    0.21619D-05
+  6    0.13534D+00    0.13534D+00    0.13840D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        254
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        148 f-s =        207 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1   -0.10780D-10   -0.10768D-27    0.10780D-10
+  2   -0.17657D-09    0.54550D-27    0.17657D-09
+  3   -0.25324D-09    0.27385D-26    0.25324D-09
+  4    0.26160D-07    0.20612D-08    0.24099D-07
+  5    0.47467D-04    0.45400D-04    0.20675D-05
+  6    0.13534D+00    0.13534D+00    0.13337D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        254
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        303 f-s =        386 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.27743D-10    0.13312D-21    0.27743D-10
+  2    0.47648D-10   -0.23259D-21    0.47648D-10
+  3   -0.20095D-14    0.15179D-34    0.20095D-14
+  4    0.20735D-06    0.20612D-08    0.20528D-06
+  5    0.47184D-04    0.45400D-04    0.17836D-05
+  6    0.13534D+00    0.13534D+00    0.95883D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        254
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       2684 f-s =       3153 J-s =         49
+ Computed and reference solutions and absolute errors follow:
+  1    0.30953D-05   -0.31006D-13    0.30953D-05
+  2    0.61741D-05    0.38628D-13    0.61741D-05
+  3    0.18048D-34    0.18049D-34    0.52734D-39
+  4    0.20612D-08    0.20612D-08    0.54546D-16
+  5    0.45400D-04    0.45400D-04    0.30370D-13
+  6    0.13534D+00    0.13534D+00    0.90100D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        254
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        186 f-s =        255 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.40036D-03    0.40032D-03    0.33301D-07
+  2    0.40016D-03    0.40016D-03    0.11796D-14
+  3    0.40000D-03    0.40000D-03    0.54210D-19
+  4    0.20000D-01    0.20000D-01    0.34694D-17
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        178 f-s =        253 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.21868D-07
+  2    0.40000D-01    0.40000D-01    0.13655D-08
+  3    0.40016D-01    0.40016D-01    0.90119D-09
+  4    0.40032D-01    0.40032D-01    0.88534D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        174 f-s =        249 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.23894D-07
+  2    0.40000D+00    0.40000D+00    0.35876D-09
+  3    0.41600D+00    0.41600D+00    0.11849D-07
+  4    0.43331D+00    0.43331D+00    0.21393D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        202 f-s =        315 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.40078D-07
+  2    0.40000D+01    0.40000D+01    0.17523D-06
+  3    0.20000D+02    0.20000D+02    0.15438D-05
+  4    0.42000D+03    0.42000D+03    0.59616D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        199 f-s =        299 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.61337D-07
+  2    0.80000D+01    0.80000D+01    0.51082D-06
+  3    0.13600D+03    0.13600D+03    0.14301D-04
+  4    0.37128D+05    0.37128D+05    0.35452D-02
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        205 f-s =        348 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.22242D+02    0.22242D+02    0.13043D-03
+  2    0.27111D+02    0.27111D+02    0.10472D-03
+  3    0.40000D+03    0.40000D+03    0.11369D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        253 f-s =        392 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.60123D-06
+  2    0.91857D-01    0.91855D-01    0.12761D-05
+  3    0.28416D+02    0.28416D+02    0.60136D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        248 f-s =        358 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.21535D-06
+  2    0.56309D-02    0.56309D-02    0.42003D-09
+  3    0.36024D+00    0.36024D+00    0.21535D-06
+  4    0.31706D+00    0.31706D+00    0.10787D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =         30 f-s =         45 J-s =          1
+ Computed and reference solutions and absolute errors follow:
+  1    0.59766D+00    0.59765D+00    0.50323D-05
+  2    0.14023D+01    0.14023D+01    0.50323D-05
+  3   -0.18934D-05   -0.18934D-05    0.18292D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =         88 f-s =        146 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99163D+00   -0.99164D+00    0.12629D-04
+  2    0.98332D+00    0.98334D+00    0.13792D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         58
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         32
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =         74 f-s =        136 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.89511D-06
+  2    0.14760D+00    0.14760D+00    0.89511D-06
+  3    0.57731D-07    0.57731D-07    0.11100D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         83 f-s =        137 J-s =          4
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D-07    0.10000D-07    0.32582D-13
+  2    0.41753D-11   -0.16253D-18    0.41753D-11
+  3   -0.49137D-09    0.20260D-16    0.49137D-09
+  4    0.47668D-07   -0.18531D-14    0.47668D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.20000D+01
+    0.00000D+00
+ Steps =        266 f-s =        382 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1   -0.11587D+01   -0.11587D+01    0.42191D-04
+  2    0.43051D+00    0.43047D+00    0.39273D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         58
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         32
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =        210 f-s =        298 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.42518D-02    0.42531D-02    0.12780D-05
+  2    0.53154D-02    0.53170D-02    0.16193D-05
+  3    0.26276D+02    0.26276D+02    0.48515D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.00000D+00
+   -0.20000D+01
+   -0.10000D+01
+   -0.10000D+01
+ Steps =        380 f-s =        525 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+02    0.20000D+02    0.85324D-07
+  2   -0.20000D+02   -0.20000D+02    0.85324D-07
+  3   -0.31009D-06   -0.22476D-06    0.85324D-07
+  4    0.31009D-06    0.22476D-06    0.85324D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.17600D-02
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         15 f-s =         34 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.16162D-02    0.16181D-02    0.18339D-05
+  2    0.14136D-09    0.13822D-09    0.31334D-11
+  3    0.84424D-11    0.82516D-11    0.19087D-12
+  4    0.13291D-09    0.12997D-09    0.29425D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.76100D+03
+    0.00000D+00
+    0.60000D+03
+    0.10000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        385 f-s =        649 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1    0.12111D+04    0.12111D+04    0.82423D-03
+  2    0.12707D-04    0.12711D-04    0.40225D-08
+  3    0.12086D+04    0.12086D+04    0.81814D-03
+  4    0.32419D-03    0.32420D-03    0.40067D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        144
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         38
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        102 f-s =        141 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.39128D+00    0.39127D+00    0.78947D-05
+  2    0.13300D-02    0.13300D-02    0.26820D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         62
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.40000D-05
+    0.10000D-05
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =         27 f-s =         45 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.40159D-07    0.32359D-12    0.40159D-07
+  2    0.13879D-06    0.23607D-06    0.97275D-07
+  3    0.22179D-12    0.76393D-13    0.14539D-12
+  4    0.54377D-06    0.76393D-06    0.22017D-06
+  5    0.39134D-05    0.32361D-05    0.67732D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        200
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         40
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.40000D+01
+    0.11000D+01
+    0.40000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       1308 f-s =       2206 J-s =         34
+ Computed and reference solutions and absolute errors follow:
+  1    0.44184D+01    0.44183D+01    0.86593D-04
+  2    0.12902D+01    0.12902D+01    0.74589D-05
+  3    0.30193D+01    0.30193D+01    0.54684D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         98
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =             6  follow.
+  Results for ITOL =             6  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-05
+ Initial solution = 
+    0.33650D-06
+    0.82610D-02
+    0.16420D-02
+    0.93800D-05
+ Nonnegativity will be enforced for this problem.
+ Steps =         70 f-s =        103 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.17136D-06    0.17136D-06    0.32656D-13
+  2    0.37136D-02    0.37136D-02    0.63884D-08
+  3    0.61893D-02    0.61893D-02    0.42586D-08
+  4    0.95451D-05    0.95451D-05    0.32657D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        144
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         38
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        229 f-s =        308 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.45579D-04    0.45400D-04    0.17939D-06
+  2    0.44586D-08    0.20612D-08    0.23974D-08
+  3    0.15376D-27    0.28230D-55    0.15376D-27
+  4    0.19802D-26    0.52358D-51    0.19802D-26
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        258 f-s =        409 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D-01    0.99999D-01    0.26735D-07
+  2    0.20000D+00    0.20000D+00    0.53467D-07
+  3    0.30000D+00    0.30000D+00    0.74769D-07
+  4    0.40000D+00    0.40000D+00    0.88478D-07
+  5    0.50000D+00    0.50000D+00    0.93205D-07
+  6    0.60000D+00    0.60000D+00    0.88469D-07
+  7    0.70000D+00    0.70000D+00    0.74754D-07
+  8    0.80000D+00    0.80000D+00    0.53453D-07
+  9    0.90000D+00    0.90000D+00    0.26728D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        290
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         39
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        289 f-s =        398 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.23063D-09
+  2    0.13685D-01    0.13685D-01    0.33336D-08
+  3    0.15037D+01    0.15037D+01    0.25626D-06
+  4    0.13534D+00    0.13534D+00    0.76074D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        358 f-s =        535 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.13268D-06
+  2   -0.43441D-08    0.12659D-13    0.43441D-08
+  3    0.40050D-16    0.19115D-41    0.40050D-16
+  4   -0.32925D-22    0.22774D-54    0.32925D-22
+  5   -0.39433D-31    0.00000D+00    0.39433D-31
+  6   -0.12327D-41    0.00000D+00    0.12327D-41
+  7   -0.52242D-53    0.00000D+00    0.52242D-53
+  8    0.37414D-64    0.00000D+00    0.37414D-64
+  9    0.13554D-72    0.00000D+00    0.13554D-72
+ 10    0.23569D-80    0.00000D+00    0.23569D-80
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        340
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         40
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =       1095 f-s =       1360 J-s =         25
+ Computed and reference solutions and absolute errors follow:
+  1   -0.92777D-07    0.10042D-08    0.93781D-07
+  2    0.43161D-06    0.18000D-07    0.41361D-06
+  3    0.27144D-45    0.00000D+00    0.27144D-45
+  4    0.28054D-43   -0.60430D-78    0.28054D-43
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        201 f-s =        282 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.10445D-14    0.61813D-30    0.10445D-14
+  2    0.55349D-15    0.89637D-30    0.55349D-15
+  3   -0.31348D-12    0.27384D-26    0.31348D-12
+  4    0.17054D-08    0.20612D-08    0.35571D-09
+  5    0.45523D-04    0.45400D-04    0.12318D-06
+  6    0.13534D+00    0.13534D+00    0.14002D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        219 f-s =        301 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1   -0.25085D-12   -0.10768D-27    0.25085D-12
+  2    0.25516D-12    0.54550D-27    0.25516D-12
+  3    0.20234D-13    0.27385D-26    0.20234D-13
+  4    0.32642D-08    0.20612D-08    0.12030D-08
+  5    0.45517D-04    0.45400D-04    0.11735D-06
+  6    0.13534D+00    0.13534D+00    0.12669D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        364 f-s =        453 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1   -0.17323D-10    0.13312D-21    0.17323D-10
+  2   -0.39927D-10   -0.23259D-21    0.39927D-10
+  3   -0.76656D-17    0.15179D-34    0.76656D-17
+  4    0.29890D-08    0.20612D-08    0.92780D-09
+  5    0.45529D-04    0.45400D-04    0.12901D-06
+  6    0.13534D+00    0.13534D+00    0.12839D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       2961 f-s =       3451 J-s =         55
+ Computed and reference solutions and absolute errors follow:
+  1    0.11407D-05   -0.31006D-13    0.11407D-05
+  2   -0.24117D-05    0.38628D-13    0.24117D-05
+  3    0.18048D-34    0.18049D-34    0.51555D-39
+  4    0.20612D-08    0.20612D-08    0.54547D-16
+  5    0.45400D-04    0.45400D-04    0.36449D-13
+  6    0.13534D+00    0.13534D+00    0.74496D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        267 f-s =        354 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.40033D-03    0.40032D-03    0.57592D-08
+  2    0.40016D-03    0.40016D-03    0.94906D-15
+  3    0.40000D-03    0.40000D-03    0.54210D-19
+  4    0.20000D-01    0.20000D-01    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        242 f-s =        334 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.19503D-07
+  2    0.40000D-01    0.40000D-01    0.85636D-09
+  3    0.40016D-01    0.40016D-01    0.80068D-09
+  4    0.40032D-01    0.40032D-01    0.78920D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        241 f-s =        334 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.71641D-07
+  2    0.40000D+00    0.40000D+00    0.31873D-07
+  3    0.41600D+00    0.41600D+00    0.31989D-07
+  4    0.43331D+00    0.43331D+00    0.34204D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        254 f-s =        374 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.38558D-07
+  2    0.40000D+01    0.40000D+01    0.17139D-06
+  3    0.20000D+02    0.20000D+02    0.15648D-05
+  4    0.42000D+03    0.42000D+03    0.64786D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        256 f-s =        342 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.37442D-07
+  2    0.80000D+01    0.80000D+01    0.33291D-06
+  3    0.13600D+03    0.13600D+03    0.11234D-04
+  4    0.37128D+05    0.37128D+05    0.61838D-02
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        298 f-s =        480 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.22242D+02    0.22242D+02    0.11522D-04
+  2    0.27111D+02    0.27111D+02    0.11356D-04
+  3    0.40000D+03    0.40000D+03    0.11369D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        299 f-s =        418 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.25653D-06
+  2    0.91855D-01    0.91855D-01    0.87235D-07
+  3    0.28416D+02    0.28416D+02    0.25653D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        317 f-s =        444 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.18859D-07
+  2    0.56309D-02    0.56309D-02    0.36650D-10
+  3    0.36024D+00    0.36024D+00    0.18859D-07
+  4    0.31706D+00    0.31706D+00    0.94477D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =         55 f-s =         81 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.22789D-07
+  2    0.14023D+01    0.14023D+01    0.22800D-07
+  3   -0.18934D-05   -0.18934D-05    0.12126D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        186 f-s =        295 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99164D+00   -0.99164D+00    0.11777D-05
+  2    0.98334D+00    0.98334D+00    0.12894D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         52
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         32
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        109 f-s =        216 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.12860D-05
+  2    0.14760D+00    0.14760D+00    0.12860D-05
+  3    0.57731D-07    0.57731D-07    0.15809D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        105 f-s =        170 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D-07    0.10000D-07    0.37502D-13
+  2   -0.25943D-11   -0.16253D-18    0.25943D-11
+  3    0.14856D-09    0.20260D-16    0.14856D-09
+  4   -0.10966D-07   -0.18531D-14    0.10966D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.20000D+01
+    0.00000D+00
+ Steps =        377 f-s =        519 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1   -0.11587D+01   -0.11587D+01    0.13584D-04
+  2    0.43048D+00    0.43047D+00    0.13161D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         52
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         32
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =        345 f-s =        524 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.42531D-02    0.42531D-02    0.70756D-07
+  2    0.53171D-02    0.53170D-02    0.85457D-07
+  3    0.26276D+02    0.26276D+02    0.13106D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.00000D+00
+   -0.20000D+01
+   -0.10000D+01
+   -0.10000D+01
+ Steps =        549 f-s =        711 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+02    0.20000D+02    0.10582D-06
+  2   -0.20000D+02   -0.20000D+02    0.10582D-06
+  3   -0.33058D-06   -0.22476D-06    0.10582D-06
+  4    0.33058D-06    0.22476D-06    0.10582D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.17600D-02
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         22 f-s =         42 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.16169D-02    0.16181D-02    0.11756D-05
+  2    0.13855D-09    0.13822D-09    0.32166D-12
+  3    0.82757D-11    0.82516D-11    0.24136D-13
+  4    0.13027D-09    0.12997D-09    0.29741D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.76100D+03
+    0.00000D+00
+    0.60000D+03
+    0.10000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        579 f-s =       1014 J-s =         22
+ Computed and reference solutions and absolute errors follow:
+  1    0.12111D+04    0.12111D+04    0.31004D-04
+  2    0.12711D-04    0.12711D-04    0.52301D-11
+  3    0.12086D+04    0.12086D+04    0.30932D-04
+  4    0.32420D-03    0.32420D-03    0.11304D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        108
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         38
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        123 f-s =        192 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.80369D-06
+  2    0.13300D-02    0.13300D-02    0.27290D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         56
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.40000D-05
+    0.10000D-05
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =         35 f-s =         55 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.25262D-09    0.32359D-12    0.25230D-09
+  2    0.22204D-06    0.23607D-06    0.14025D-07
+  3    0.72566D-13    0.76393D-13    0.38275D-14
+  4    0.72783D-06    0.76393D-06    0.36100D-07
+  5    0.32784D-05    0.32361D-05    0.42297D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         40
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.40000D+01
+    0.11000D+01
+    0.40000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       1811 f-s =       2965 J-s =         41
+ Computed and reference solutions and absolute errors follow:
+  1    0.44183D+01    0.44183D+01    0.30100D-04
+  2    0.12902D+01    0.12902D+01    0.26190D-05
+  3    0.30193D+01    0.30193D+01    0.10137D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         80
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.33650D-06
+    0.82610D-02
+    0.16420D-02
+    0.93800D-05
+ Nonnegativity will be enforced for this problem.
+ Steps =        117 f-s =        197 J-s =          4
+ Computed and reference solutions and absolute errors follow:
+  1    0.17136D-06    0.17136D-06    0.34724D-16
+  2    0.37136D-02    0.37136D-02    0.90051D-12
+  3    0.61893D-02    0.61893D-02    0.11096D-11
+  4    0.95451D-05    0.95451D-05    0.34735D-16
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        108
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         38
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        229 f-s =        340 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.45579D-04    0.45400D-04    0.17939D-06
+  2    0.44586D-08    0.20612D-08    0.23974D-08
+  3    0.15376D-27    0.28230D-55    0.15376D-27
+  4    0.19802D-26    0.52358D-51    0.19802D-26
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        256 f-s =        532 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D-01    0.99999D-01    0.21365D-07
+  2    0.20000D+00    0.20000D+00    0.42728D-07
+  3    0.30000D+00    0.30000D+00    0.59754D-07
+  4    0.40000D+00    0.40000D+00    0.70714D-07
+  5    0.50000D+00    0.50000D+00    0.74497D-07
+  6    0.60000D+00    0.60000D+00    0.70717D-07
+  7    0.70000D+00    0.70000D+00    0.59758D-07
+  8    0.80000D+00    0.80000D+00    0.42731D-07
+  9    0.90000D+00    0.90000D+00    0.21367D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        380
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        762
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        289 f-s =        454 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.19716D-09
+  2    0.13685D-01    0.13685D-01    0.29412D-08
+  3    0.15037D+01    0.15037D+01    0.21908D-06
+  4    0.13534D+00    0.13534D+00    0.74073D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        358 f-s =        705 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.13268D-06
+  2   -0.43441D-08    0.12659D-13    0.43441D-08
+  3    0.40050D-16    0.19115D-41    0.40050D-16
+  4   -0.32925D-22    0.22774D-54    0.32925D-22
+  5   -0.39433D-31    0.00000D+00    0.39433D-31
+  6   -0.12327D-41    0.00000D+00    0.12327D-41
+  7   -0.52242D-53    0.00000D+00    0.52242D-53
+  8    0.37414D-64    0.00000D+00    0.37414D-64
+  9    0.13554D-72    0.00000D+00    0.13554D-72
+ 10    0.23569D-80    0.00000D+00    0.23569D-80
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        450
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        913
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =       1094 f-s =       1545 J-s =         36
+ Computed and reference solutions and absolute errors follow:
+  1   -0.92915D-07    0.10042D-08    0.93919D-07
+  2    0.43119D-06    0.18000D-07    0.41319D-06
+  3    0.16989D-46    0.00000D+00    0.16989D-46
+  4    0.31543D-43   -0.60430D-78    0.31543D-43
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        201 f-s =        324 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.10445D-14    0.61813D-30    0.10445D-14
+  2    0.55349D-15    0.89637D-30    0.55349D-15
+  3   -0.31348D-12    0.27384D-26    0.31348D-12
+  4    0.17054D-08    0.20612D-08    0.35571D-09
+  5    0.45523D-04    0.45400D-04    0.12318D-06
+  6    0.13534D+00    0.13534D+00    0.14002D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        206
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        393
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        219 f-s =        343 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1   -0.25085D-12   -0.10768D-27    0.25085D-12
+  2    0.25516D-12    0.54550D-27    0.25516D-12
+  3    0.20234D-13    0.27385D-26    0.20234D-13
+  4    0.32642D-08    0.20612D-08    0.12030D-08
+  5    0.45517D-04    0.45400D-04    0.11735D-06
+  6    0.13534D+00    0.13534D+00    0.12669D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        206
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        393
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        364 f-s =        549 J-s =         13
+ Computed and reference solutions and absolute errors follow:
+  1   -0.17323D-10    0.13312D-21    0.17323D-10
+  2   -0.39927D-10   -0.23259D-21    0.39927D-10
+  3   -0.76656D-17    0.15179D-34    0.76656D-17
+  4    0.29890D-08    0.20612D-08    0.92781D-09
+  5    0.45529D-04    0.45400D-04    0.12901D-06
+  6    0.13534D+00    0.13534D+00    0.12839D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        206
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        393
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       2961 f-s =       4129 J-s =         84
+ Computed and reference solutions and absolute errors follow:
+  1    0.11406D-05   -0.31006D-13    0.11406D-05
+  2   -0.24117D-05    0.38628D-13    0.24117D-05
+  3    0.18048D-34    0.18049D-34    0.51555D-39
+  4    0.20612D-08    0.20612D-08    0.54548D-16
+  5    0.45400D-04    0.45400D-04    0.36457D-13
+  6    0.13534D+00    0.13534D+00    0.69361D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        206
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        393
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        266 f-s =        409 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.40033D-03    0.40032D-03    0.85755D-08
+  2    0.40016D-03    0.40016D-03    0.16829D-13
+  3    0.40000D-03    0.40000D-03    0.10842D-18
+  4    0.20000D-01    0.20000D-01    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        241 f-s =        379 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.41483D-06
+  2    0.40000D-01    0.40000D-01    0.18444D-07
+  3    0.40016D-01    0.40016D-01    0.17035D-07
+  4    0.40032D-01    0.40032D-01    0.16789D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        240 f-s =        369 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.85808D-07
+  2    0.40000D+00    0.40000D+00    0.37821D-07
+  3    0.41600D+00    0.41600D+00    0.38268D-07
+  4    0.43331D+00    0.43331D+00    0.40930D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        254 f-s =        412 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.12827D-07
+  2    0.40000D+01    0.40000D+01    0.57016D-07
+  3    0.20000D+02    0.20000D+02    0.52047D-06
+  4    0.42000D+03    0.42000D+03    0.21542D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        258 f-s =        413 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.50094D-08
+  2    0.80000D+01    0.80000D+01    0.44523D-07
+  3    0.13600D+03    0.13600D+03    0.15019D-05
+  4    0.37128D+05    0.37128D+05    0.82625D-03
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        326 f-s =        593 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.22242D+02    0.22242D+02    0.10963D-04
+  2    0.27111D+02    0.27111D+02    0.11153D-04
+  3    0.40000D+03    0.40000D+03    0.56843D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        268 f-s =        418 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.46943D-07
+  2    0.91855D-01    0.91855D-01    0.10708D-06
+  3    0.28416D+02    0.28416D+02    0.46953D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        309 f-s =        519 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.13443D-06
+  2    0.56309D-02    0.56309D-02    0.26213D-09
+  3    0.36024D+00    0.36024D+00    0.13443D-06
+  4    0.31706D+00    0.31706D+00    0.67344D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =         55 f-s =         90 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.22789D-07
+  2    0.14023D+01    0.14023D+01    0.22800D-07
+  3   -0.18934D-05   -0.18934D-05    0.12126D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        154 f-s =        318 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99164D+00   -0.99164D+00    0.89716D-06
+  2    0.98334D+00    0.98334D+00    0.91511D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         58
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =         84 f-s =        163 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.24077D-06
+  2    0.14760D+00    0.14760D+00    0.24077D-06
+  3    0.57731D-07    0.57731D-07    0.18704D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        106 f-s =        192 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D-07    0.10000D-07    0.70422D-14
+  2    0.13271D-11   -0.16253D-18    0.13271D-11
+  3   -0.11234D-09    0.20260D-16    0.11234D-09
+  4   -0.32407D-08   -0.18531D-14    0.32407D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.20000D+01
+    0.00000D+00
+ Steps =        366 f-s =        530 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1   -0.11587D+01   -0.11587D+01    0.66841D-05
+  2    0.43048D+00    0.43047D+00    0.70261D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         58
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =        295 f-s =        494 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.42531D-02    0.42531D-02    0.70239D-07
+  2    0.53171D-02    0.53170D-02    0.85809D-07
+  3    0.26276D+02    0.26276D+02    0.19326D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.00000D+00
+   -0.20000D+01
+   -0.10000D+01
+   -0.10000D+01
+ Steps =        532 f-s =        813 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+02    0.20000D+02    0.13323D-06
+  2   -0.20000D+02   -0.20000D+02    0.13323D-06
+  3   -0.35800D-06   -0.22476D-06    0.13323D-06
+  4    0.35800D-06    0.22476D-06    0.13323D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.17600D-02
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         20 f-s =         72 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.16182D-02    0.16181D-02    0.10684D-06
+  2    0.13818D-09    0.13822D-09    0.42948D-13
+  3    0.82495D-11    0.82516D-11    0.20531D-14
+  4    0.12993D-09    0.12997D-09    0.40897D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.76100D+03
+    0.00000D+00
+    0.60000D+03
+    0.10000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        452 f-s =        912 J-s =         27
+ Computed and reference solutions and absolute errors follow:
+  1    0.12111D+04    0.12111D+04    0.41469D-04
+  2    0.12693D-04    0.12711D-04    0.18425D-07
+  3    0.12086D+04    0.12086D+04    0.41151D-04
+  4    0.32418D-03    0.32420D-03    0.18166D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        128
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        221
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        121 f-s =        195 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.69569D-06
+  2    0.13300D-02    0.13300D-02    0.23616D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         62
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.40000D-05
+    0.10000D-05
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =         35 f-s =         75 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.25251D-09    0.32359D-12    0.25219D-09
+  2    0.22290D-06    0.23607D-06    0.13169D-07
+  3    0.72793D-13    0.76393D-13    0.36007D-14
+  4    0.73019D-06    0.76393D-06    0.33746D-07
+  5    0.32764D-05    0.32361D-05    0.40358D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        170
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        303
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.40000D+01
+    0.11000D+01
+    0.40000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       1563 f-s =       2714 J-s =         65
+ Computed and reference solutions and absolute errors follow:
+  1    0.44183D+01    0.44183D+01    0.31403D-04
+  2    0.12902D+01    0.12902D+01    0.26202D-05
+  3    0.30193D+01    0.30193D+01    0.10104D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        153
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.33650D-06
+    0.82610D-02
+    0.16420D-02
+    0.93800D-05
+ Nonnegativity will be enforced for this problem.
+ Steps =        109 f-s =        219 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.17136D-06    0.17136D-06    0.16332D-16
+  2    0.37136D-02    0.37136D-02    0.36077D-12
+  3    0.61893D-02    0.61893D-02    0.59936D-12
+  4    0.95451D-05    0.95451D-05    0.16332D-16
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        128
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        221
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        229 f-s =        308 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.45579D-04    0.45400D-04    0.17939D-06
+  2    0.44586D-08    0.20612D-08    0.23974D-08
+  3    0.15376D-27    0.28230D-55    0.15376D-27
+  4    0.19802D-26    0.52358D-51    0.19802D-26
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        258 f-s =        409 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D-01    0.99999D-01    0.26735D-07
+  2    0.20000D+00    0.20000D+00    0.53467D-07
+  3    0.30000D+00    0.30000D+00    0.74769D-07
+  4    0.40000D+00    0.40000D+00    0.88478D-07
+  5    0.50000D+00    0.50000D+00    0.93205D-07
+  6    0.60000D+00    0.60000D+00    0.88469D-07
+  7    0.70000D+00    0.70000D+00    0.74754D-07
+  8    0.80000D+00    0.80000D+00    0.53453D-07
+  9    0.90000D+00    0.90000D+00    0.26728D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        506
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         39
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        289 f-s =        398 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.23063D-09
+  2    0.13685D-01    0.13685D-01    0.33336D-08
+  3    0.15037D+01    0.15037D+01    0.25626D-06
+  4    0.13534D+00    0.13534D+00    0.76074D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        358 f-s =        535 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.13268D-06
+  2   -0.43441D-08    0.12659D-13    0.43441D-08
+  3    0.40050D-16    0.19115D-41    0.40050D-16
+  4   -0.32925D-22    0.22774D-54    0.32925D-22
+  5   -0.39433D-31    0.00000D+00    0.39433D-31
+  6   -0.12327D-41    0.00000D+00    0.12327D-41
+  7   -0.52242D-53    0.00000D+00    0.52242D-53
+  8    0.37414D-64    0.00000D+00    0.37414D-64
+  9    0.13554D-72    0.00000D+00    0.13554D-72
+ 10    0.23569D-80    0.00000D+00    0.23569D-80
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        610
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         40
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =       1095 f-s =       1360 J-s =         25
+ Computed and reference solutions and absolute errors follow:
+  1   -0.92777D-07    0.10042D-08    0.93781D-07
+  2    0.43161D-06    0.18000D-07    0.41361D-06
+  3    0.27144D-45    0.00000D+00    0.27144D-45
+  4    0.28054D-43   -0.60430D-78    0.28054D-43
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        201 f-s =        282 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.10445D-14    0.61813D-30    0.10445D-14
+  2    0.55349D-15    0.89637D-30    0.55349D-15
+  3   -0.31348D-12    0.27384D-26    0.31348D-12
+  4    0.17054D-08    0.20612D-08    0.35571D-09
+  5    0.45523D-04    0.45400D-04    0.12318D-06
+  6    0.13534D+00    0.13534D+00    0.14002D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        254
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        219 f-s =        301 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1   -0.25085D-12   -0.10768D-27    0.25085D-12
+  2    0.25516D-12    0.54550D-27    0.25516D-12
+  3    0.20234D-13    0.27385D-26    0.20234D-13
+  4    0.32642D-08    0.20612D-08    0.12030D-08
+  5    0.45517D-04    0.45400D-04    0.11735D-06
+  6    0.13534D+00    0.13534D+00    0.12669D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        254
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        364 f-s =        453 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1   -0.17323D-10    0.13312D-21    0.17323D-10
+  2   -0.39927D-10   -0.23259D-21    0.39927D-10
+  3   -0.76656D-17    0.15179D-34    0.76656D-17
+  4    0.29890D-08    0.20612D-08    0.92780D-09
+  5    0.45529D-04    0.45400D-04    0.12901D-06
+  6    0.13534D+00    0.13534D+00    0.12839D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        254
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       2961 f-s =       3451 J-s =         55
+ Computed and reference solutions and absolute errors follow:
+  1    0.11407D-05   -0.31006D-13    0.11407D-05
+  2   -0.24117D-05    0.38628D-13    0.24117D-05
+  3    0.18048D-34    0.18049D-34    0.51555D-39
+  4    0.20612D-08    0.20612D-08    0.54547D-16
+  5    0.45400D-04    0.45400D-04    0.36449D-13
+  6    0.13534D+00    0.13534D+00    0.74496D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        254
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        267 f-s =        354 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.40033D-03    0.40032D-03    0.57592D-08
+  2    0.40016D-03    0.40016D-03    0.94906D-15
+  3    0.40000D-03    0.40000D-03    0.54210D-19
+  4    0.20000D-01    0.20000D-01    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        242 f-s =        334 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.19503D-07
+  2    0.40000D-01    0.40000D-01    0.85636D-09
+  3    0.40016D-01    0.40016D-01    0.80068D-09
+  4    0.40032D-01    0.40032D-01    0.78920D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        241 f-s =        334 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.71641D-07
+  2    0.40000D+00    0.40000D+00    0.31873D-07
+  3    0.41600D+00    0.41600D+00    0.31989D-07
+  4    0.43331D+00    0.43331D+00    0.34204D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        254 f-s =        374 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.38558D-07
+  2    0.40000D+01    0.40000D+01    0.17139D-06
+  3    0.20000D+02    0.20000D+02    0.15648D-05
+  4    0.42000D+03    0.42000D+03    0.64786D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        256 f-s =        342 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.37442D-07
+  2    0.80000D+01    0.80000D+01    0.33291D-06
+  3    0.13600D+03    0.13600D+03    0.11234D-04
+  4    0.37128D+05    0.37128D+05    0.61838D-02
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        298 f-s =        480 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.22242D+02    0.22242D+02    0.11522D-04
+  2    0.27111D+02    0.27111D+02    0.11356D-04
+  3    0.40000D+03    0.40000D+03    0.11369D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        299 f-s =        418 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.25653D-06
+  2    0.91855D-01    0.91855D-01    0.87235D-07
+  3    0.28416D+02    0.28416D+02    0.25653D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        317 f-s =        444 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.18859D-07
+  2    0.56309D-02    0.56309D-02    0.36650D-10
+  3    0.36024D+00    0.36024D+00    0.18859D-07
+  4    0.31706D+00    0.31706D+00    0.94477D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =         55 f-s =         81 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.22789D-07
+  2    0.14023D+01    0.14023D+01    0.22800D-07
+  3   -0.18934D-05   -0.18934D-05    0.12126D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        186 f-s =        295 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99164D+00   -0.99164D+00    0.11777D-05
+  2    0.98334D+00    0.98334D+00    0.12894D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         58
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         32
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        109 f-s =        216 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.12860D-05
+  2    0.14760D+00    0.14760D+00    0.12860D-05
+  3    0.57731D-07    0.57731D-07    0.15809D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        105 f-s =        170 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D-07    0.10000D-07    0.37502D-13
+  2   -0.25943D-11   -0.16253D-18    0.25943D-11
+  3    0.14856D-09    0.20260D-16    0.14856D-09
+  4   -0.10966D-07   -0.18531D-14    0.10966D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.20000D+01
+    0.00000D+00
+ Steps =        377 f-s =        519 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1   -0.11587D+01   -0.11587D+01    0.13584D-04
+  2    0.43048D+00    0.43047D+00    0.13161D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         58
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         32
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =        345 f-s =        524 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.42531D-02    0.42531D-02    0.70756D-07
+  2    0.53171D-02    0.53170D-02    0.85457D-07
+  3    0.26276D+02    0.26276D+02    0.13106D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.00000D+00
+   -0.20000D+01
+   -0.10000D+01
+   -0.10000D+01
+ Steps =        549 f-s =        711 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+02    0.20000D+02    0.10582D-06
+  2   -0.20000D+02   -0.20000D+02    0.10582D-06
+  3   -0.33058D-06   -0.22476D-06    0.10582D-06
+  4    0.33058D-06    0.22476D-06    0.10582D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.17600D-02
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         22 f-s =         42 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.16169D-02    0.16181D-02    0.11756D-05
+  2    0.13855D-09    0.13822D-09    0.32166D-12
+  3    0.82757D-11    0.82516D-11    0.24136D-13
+  4    0.13027D-09    0.12997D-09    0.29741D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.76100D+03
+    0.00000D+00
+    0.60000D+03
+    0.10000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        579 f-s =       1014 J-s =         22
+ Computed and reference solutions and absolute errors follow:
+  1    0.12111D+04    0.12111D+04    0.31004D-04
+  2    0.12711D-04    0.12711D-04    0.52301D-11
+  3    0.12086D+04    0.12086D+04    0.30932D-04
+  4    0.32420D-03    0.32420D-03    0.11304D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        144
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         38
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        123 f-s =        192 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.80369D-06
+  2    0.13300D-02    0.13300D-02    0.27290D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         62
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.40000D-05
+    0.10000D-05
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =         35 f-s =         55 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.25262D-09    0.32359D-12    0.25230D-09
+  2    0.22204D-06    0.23607D-06    0.14025D-07
+  3    0.72566D-13    0.76393D-13    0.38275D-14
+  4    0.72783D-06    0.76393D-06    0.36100D-07
+  5    0.32784D-05    0.32361D-05    0.42297D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        200
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         40
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.40000D+01
+    0.11000D+01
+    0.40000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       1811 f-s =       2965 J-s =         41
+ Computed and reference solutions and absolute errors follow:
+  1    0.44183D+01    0.44183D+01    0.30100D-04
+  2    0.12902D+01    0.12902D+01    0.26190D-05
+  3    0.30193D+01    0.30193D+01    0.10137D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         98
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =             7  follow.
+  Results for ITOL =             7  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-06
+ Initial solution = 
+    0.33650D-06
+    0.82610D-02
+    0.16420D-02
+    0.93800D-05
+ Nonnegativity will be enforced for this problem.
+ Steps =        117 f-s =        197 J-s =          4
+ Computed and reference solutions and absolute errors follow:
+  1    0.17136D-06    0.17136D-06    0.34724D-16
+  2    0.37136D-02    0.37136D-02    0.90051D-12
+  3    0.61893D-02    0.61893D-02    0.11096D-11
+  4    0.95451D-05    0.95451D-05    0.34735D-16
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        144
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         38
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        302 f-s =        408 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.45410D-04    0.45400D-04    0.10373D-07
+  2    0.21066D-08    0.20612D-08    0.45434D-10
+  3    0.13566D-36    0.28230D-55    0.13566D-36
+  4   -0.21446D-34    0.52358D-51    0.21446D-34
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        357 f-s =        520 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D-01    0.99999D-01    0.51290D-08
+  2    0.20000D+00    0.20000D+00    0.10257D-07
+  3    0.30000D+00    0.30000D+00    0.14345D-07
+  4    0.40000D+00    0.40000D+00    0.16975D-07
+  5    0.50000D+00    0.50000D+00    0.17883D-07
+  6    0.60000D+00    0.60000D+00    0.16975D-07
+  7    0.70000D+00    0.70000D+00    0.14344D-07
+  8    0.80000D+00    0.80000D+00    0.10257D-07
+  9    0.90000D+00    0.90000D+00    0.51289D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        290
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         39
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        400 f-s =        514 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.10796D-09
+  2    0.13685D-01    0.13685D-01    0.10870D-08
+  3    0.15037D+01    0.15037D+01    0.11996D-06
+  4    0.13534D+00    0.13534D+00    0.11264D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        495 f-s =        685 J-s =         13
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.30809D-08
+  2    0.81042D-08    0.12659D-13    0.81042D-08
+  3   -0.47930D-16    0.19115D-41    0.47930D-16
+  4    0.16367D-27    0.22774D-54    0.16367D-27
+  5   -0.76092D-39    0.00000D+00    0.76092D-39
+  6   -0.31273D-52    0.00000D+00    0.31273D-52
+  7   -0.64761D-65    0.00000D+00    0.64761D-65
+  8    0.16712D-81    0.00000D+00    0.16712D-81
+  9    0.37406D-92    0.00000D+00    0.37406D-92
+ 10    0.27832-108    0.00000D+00    0.27832-108
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        340
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         40
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =       1507 f-s =       1811 J-s =         32
+ Computed and reference solutions and absolute errors follow:
+  1    0.13518D-07    0.10042D-08    0.12514D-07
+  2    0.10907D-06    0.18000D-07    0.91067D-07
+  3    0.65628D-70    0.00000D+00    0.65628D-70
+  4    0.55985D-68   -0.60430D-78    0.55985D-68
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        281 f-s =        371 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.87998D-22    0.61813D-30    0.87998D-22
+  2   -0.28787D-19    0.89637D-30    0.28787D-19
+  3    0.24212D-17    0.27384D-26    0.24212D-17
+  4    0.21533D-08    0.20612D-08    0.92104D-10
+  5    0.45420D-04    0.45400D-04    0.20557D-07
+  6    0.13534D+00    0.13534D+00    0.24873D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        305 f-s =        402 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1   -0.34875D-16   -0.10768D-27    0.34875D-16
+  2   -0.20762D-15    0.54550D-27    0.20762D-15
+  3   -0.14217D-16    0.27385D-26    0.14217D-16
+  4    0.21473D-08    0.20612D-08    0.86185D-10
+  5    0.45416D-04    0.45400D-04    0.16174D-07
+  6    0.13534D+00    0.13534D+00    0.20554D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        592 f-s =        737 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1   -0.14587D-10    0.13312D-21    0.14587D-10
+  2   -0.67278D-11   -0.23259D-21    0.67278D-11
+  3   -0.80777D-24    0.15179D-34    0.80777D-24
+  4    0.22822D-08    0.20612D-08    0.22107D-09
+  5    0.45437D-04    0.45400D-04    0.37012D-07
+  6    0.13534D+00    0.13534D+00    0.43414D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       3304 f-s =       3852 J-s =         60
+ Computed and reference solutions and absolute errors follow:
+  1   -0.46627D-07   -0.31006D-13    0.46627D-07
+  2    0.87363D-07    0.38628D-13    0.87363D-07
+  3    0.18048D-34    0.18049D-34    0.49651D-39
+  4    0.20612D-08    0.20612D-08    0.52736D-16
+  5    0.45400D-04    0.45400D-04    0.35928D-13
+  6    0.13534D+00    0.13534D+00    0.24925D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        368 f-s =        463 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1    0.40033D-03    0.40032D-03    0.34941D-08
+  2    0.40016D-03    0.40016D-03    0.65052D-18
+  3    0.40000D-03    0.40000D-03    0.00000D+00
+  4    0.20000D-01    0.20000D-01    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        340 f-s =        444 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.56117D-07
+  2    0.40000D-01    0.40000D-01    0.24918D-08
+  3    0.40016D-01    0.40016D-01    0.23024D-08
+  4    0.40032D-01    0.40032D-01    0.22707D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        327 f-s =        415 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.30035D-09
+  2    0.40000D+00    0.40000D+00    0.13360D-09
+  3    0.41600D+00    0.41600D+00    0.13422D-09
+  4    0.43331D+00    0.43331D+00    0.14354D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        341 f-s =        445 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.10593D-08
+  2    0.40000D+01    0.40000D+01    0.46847D-08
+  3    0.20000D+02    0.20000D+02    0.42415D-07
+  4    0.42000D+03    0.42000D+03    0.17307D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        351 f-s =        460 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.64607D-08
+  2    0.80000D+01    0.80000D+01    0.57430D-07
+  3    0.13600D+03    0.13600D+03    0.19379D-05
+  4    0.37128D+05    0.37128D+05    0.10670D-02
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        419 f-s =        612 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1    0.22242D+02    0.22242D+02    0.15293D-05
+  2    0.27111D+02    0.27111D+02    0.16896D-05
+  3    0.40000D+03    0.40000D+03    0.56843D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        418 f-s =        583 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.19803D-07
+  2    0.91855D-01    0.91855D-01    0.65643D-08
+  3    0.28416D+02    0.28416D+02    0.19803D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        434 f-s =        578 J-s =         13
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.87250D-08
+  2    0.56309D-02    0.56309D-02    0.17013D-10
+  3    0.36024D+00    0.36024D+00    0.87250D-08
+  4    0.31706D+00    0.31706D+00    0.43710D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =         65 f-s =        100 J-s =          4
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.27090D-06
+  2    0.14023D+01    0.14023D+01    0.27090D-06
+  3   -0.18934D-05   -0.18934D-05    0.26343D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        231 f-s =        363 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99164D+00   -0.99164D+00    0.76078D-06
+  2    0.98334D+00    0.98334D+00    0.83890D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         52
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         32
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        145 f-s =        236 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.29125D-07
+  2    0.14760D+00    0.14760D+00    0.29125D-07
+  3    0.57731D-07    0.57731D-07    0.36121D-14
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        132 f-s =        215 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D-07    0.10000D-07    0.98672D-15
+  2    0.60814D-13   -0.16253D-18    0.60814D-13
+  3   -0.32857D-11    0.20260D-16    0.32857D-11
+  4    0.14738D-09   -0.18531D-14    0.14738D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.20000D+01
+    0.00000D+00
+ Steps =        531 f-s =        666 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1   -0.11587D+01   -0.11587D+01    0.13625D-05
+  2    0.43047D+00    0.43047D+00    0.14176D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         52
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         32
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =        397 f-s =        584 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1    0.42531D-02    0.42531D-02    0.16683D-07
+  2    0.53170D-02    0.53170D-02    0.20528D-07
+  3    0.26276D+02    0.26276D+02    0.25055D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.00000D+00
+   -0.20000D+01
+   -0.10000D+01
+   -0.10000D+01
+ Steps =        748 f-s =        916 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+02    0.20000D+02    0.25958D-09
+  2   -0.20000D+02   -0.20000D+02    0.25960D-09
+  3   -0.22502D-06   -0.22476D-06    0.25959D-09
+  4    0.22502D-06    0.22476D-06    0.25959D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.17600D-02
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         29 f-s =         56 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.16184D-02    0.16181D-02    0.29771D-06
+  2    0.13819D-09    0.13822D-09    0.31354D-13
+  3    0.82518D-11    0.82516D-11    0.19165D-15
+  4    0.12994D-09    0.12997D-09    0.31545D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.76100D+03
+    0.00000D+00
+    0.60000D+03
+    0.10000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        816 f-s =       1339 J-s =         25
+ Computed and reference solutions and absolute errors follow:
+  1    0.12111D+04    0.12111D+04    0.98613D-05
+  2    0.12711D-04    0.12711D-04    0.12592D-11
+  3    0.12086D+04    0.12086D+04    0.97883D-05
+  4    0.32420D-03    0.32420D-03    0.12552D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        108
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         38
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        166 f-s =        219 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.21761D-07
+  2    0.13300D-02    0.13300D-02    0.73842D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         56
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.40000D-05
+    0.10000D-05
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =         56 f-s =         83 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.30037D-12    0.32359D-12    0.23225D-13
+  2    0.24926D-06    0.23607D-06    0.13190D-07
+  3    0.79768D-13    0.76393D-13    0.33747D-14
+  4    0.79768D-06    0.76393D-06    0.33747D-07
+  5    0.32002D-05    0.32361D-05    0.35852D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         40
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.40000D+01
+    0.11000D+01
+    0.40000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       2320 f-s =       3652 J-s =         49
+ Computed and reference solutions and absolute errors follow:
+  1    0.44183D+01    0.44183D+01    0.68297D-05
+  2    0.12902D+01    0.12902D+01    0.56960D-06
+  3    0.30193D+01    0.30193D+01    0.22183D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         80
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.33650D-06
+    0.82610D-02
+    0.16420D-02
+    0.93800D-05
+ Nonnegativity will be enforced for this problem.
+ Steps =        161 f-s =        296 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.17136D-06    0.17136D-06    0.89537D-16
+  2    0.37136D-02    0.37136D-02    0.19752D-11
+  3    0.61893D-02    0.61893D-02    0.32921D-11
+  4    0.95451D-05    0.95451D-05    0.89538D-16
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        108
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         38
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        302 f-s =        452 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.45410D-04    0.45400D-04    0.10373D-07
+  2    0.21066D-08    0.20612D-08    0.45434D-10
+  3    0.13566D-36    0.28230D-55    0.13566D-36
+  4   -0.21446D-34    0.52358D-51    0.21446D-34
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        354 f-s =        675 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D-01    0.99999D-01    0.47152D-08
+  2    0.20000D+00    0.20000D+00    0.94299D-08
+  3    0.30000D+00    0.30000D+00    0.13187D-07
+  4    0.40000D+00    0.40000D+00    0.15606D-07
+  5    0.50000D+00    0.50000D+00    0.16440D-07
+  6    0.60000D+00    0.60000D+00    0.15606D-07
+  7    0.70000D+00    0.70000D+00    0.13187D-07
+  8    0.80000D+00    0.80000D+00    0.94298D-08
+  9    0.90000D+00    0.90000D+00    0.47151D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        380
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        762
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        400 f-s =        582 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.10796D-09
+  2    0.13685D-01    0.13685D-01    0.10870D-08
+  3    0.15037D+01    0.15037D+01    0.11996D-06
+  4    0.13534D+00    0.13534D+00    0.11264D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        495 f-s =        875 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.30809D-08
+  2    0.81042D-08    0.12659D-13    0.81042D-08
+  3   -0.47930D-16    0.19115D-41    0.47930D-16
+  4    0.16367D-27    0.22774D-54    0.16367D-27
+  5   -0.76092D-39    0.00000D+00    0.76092D-39
+  6   -0.31273D-52    0.00000D+00    0.31273D-52
+  7   -0.64761D-65    0.00000D+00    0.64761D-65
+  8    0.16712D-81    0.00000D+00    0.16712D-81
+  9    0.37406D-92    0.00000D+00    0.37406D-92
+ 10    0.27832-108    0.00000D+00    0.27832-108
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        450
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        913
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =       1544 f-s =       2106 J-s =         48
+ Computed and reference solutions and absolute errors follow:
+  1    0.12751D-07    0.10042D-08    0.11747D-07
+  2    0.13711D-06    0.18000D-07    0.11911D-06
+  3    0.57241D-75    0.00000D+00    0.57241D-75
+  4   -0.10958D-72   -0.60430D-78    0.10958D-72
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        281 f-s =        449 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.88000D-22    0.61813D-30    0.88000D-22
+  2   -0.28787D-19    0.89637D-30    0.28787D-19
+  3    0.24212D-17    0.27384D-26    0.24212D-17
+  4    0.21533D-08    0.20612D-08    0.92104D-10
+  5    0.45420D-04    0.45400D-04    0.20557D-07
+  6    0.13534D+00    0.13534D+00    0.24873D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        206
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        393
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        305 f-s =        474 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1   -0.34875D-16   -0.10768D-27    0.34875D-16
+  2   -0.20762D-15    0.54550D-27    0.20762D-15
+  3   -0.14217D-16    0.27385D-26    0.14217D-16
+  4    0.21473D-08    0.20612D-08    0.86185D-10
+  5    0.45416D-04    0.45400D-04    0.16174D-07
+  6    0.13534D+00    0.13534D+00    0.20554D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        206
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        393
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        592 f-s =        863 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1   -0.14587D-10    0.13312D-21    0.14587D-10
+  2   -0.67278D-11   -0.23259D-21    0.67278D-11
+  3   -0.80777D-24    0.15179D-34    0.80777D-24
+  4    0.22822D-08    0.20612D-08    0.22107D-09
+  5    0.45437D-04    0.45400D-04    0.37012D-07
+  6    0.13534D+00    0.13534D+00    0.43414D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        206
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        393
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       3304 f-s =       4560 J-s =         89
+ Computed and reference solutions and absolute errors follow:
+  1   -0.46629D-07   -0.31006D-13    0.46629D-07
+  2    0.87362D-07    0.38628D-13    0.87362D-07
+  3    0.18048D-34    0.18049D-34    0.49651D-39
+  4    0.20612D-08    0.20612D-08    0.52737D-16
+  5    0.45400D-04    0.45400D-04    0.35948D-13
+  6    0.13534D+00    0.13534D+00    0.36832D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        206
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        393
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        368 f-s =        519 J-s =         13
+ Computed and reference solutions and absolute errors follow:
+  1    0.40033D-03    0.40032D-03    0.35009D-08
+  2    0.40016D-03    0.40016D-03    0.75894D-18
+  3    0.40000D-03    0.40000D-03    0.00000D+00
+  4    0.20000D-01    0.20000D-01    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        339 f-s =        502 J-s =         13
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.64005D-07
+  2    0.40000D-01    0.40000D-01    0.28448D-08
+  3    0.40016D-01    0.40016D-01    0.26282D-08
+  4    0.40032D-01    0.40032D-01    0.25905D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        325 f-s =        462 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.13570D-08
+  2    0.40000D+00    0.40000D+00    0.63537D-09
+  3    0.41600D+00    0.41600D+00    0.60447D-09
+  4    0.43331D+00    0.43331D+00    0.64839D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        336 f-s =        509 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.12334D-08
+  2    0.40000D+01    0.40000D+01    0.54816D-08
+  3    0.20000D+02    0.20000D+02    0.50037D-07
+  4    0.42000D+03    0.42000D+03    0.20710D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        346 f-s =        510 J-s =         13
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.21712D-08
+  2    0.80000D+01    0.80000D+01    0.19300D-07
+  3    0.13600D+03    0.13600D+03    0.65124D-06
+  4    0.37128D+05    0.37128D+05    0.35850D-03
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        414 f-s =        696 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1    0.22242D+02    0.22242D+02    0.19005D-05
+  2    0.27111D+02    0.27111D+02    0.17730D-05
+  3    0.40000D+03    0.40000D+03    0.11369D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        387 f-s =        622 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.27717D-07
+  2    0.91855D-01    0.91855D-01    0.12480D-07
+  3    0.28416D+02    0.28416D+02    0.27718D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        413 f-s =        653 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.30057D-08
+  2    0.56309D-02    0.56309D-02    0.58610D-11
+  3    0.36024D+00    0.36024D+00    0.30057D-08
+  4    0.31706D+00    0.31706D+00    0.15058D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =         66 f-s =        109 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.20551D-06
+  2    0.14023D+01    0.14023D+01    0.20551D-06
+  3   -0.18934D-05   -0.18934D-05    0.97673D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        210 f-s =        373 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99164D+00   -0.99164D+00    0.51653D-06
+  2    0.98334D+00    0.98334D+00    0.59310D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         58
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        151 f-s =        282 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.19944D-07
+  2    0.14760D+00    0.14760D+00    0.19944D-07
+  3    0.57731D-07    0.57731D-07    0.24565D-14
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        135 f-s =        221 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D-07    0.10000D-07    0.36250D-15
+  2    0.23319D-13   -0.16253D-18    0.23319D-13
+  3   -0.13229D-11    0.20260D-16    0.13230D-11
+  4    0.62884D-10   -0.18531D-14    0.62885D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.20000D+01
+    0.00000D+00
+ Steps =        508 f-s =        704 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1   -0.11587D+01   -0.11587D+01    0.14090D-05
+  2    0.43047D+00    0.43047D+00    0.14825D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         58
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =        410 f-s =        647 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1    0.42531D-02    0.42531D-02    0.51228D-07
+  2    0.53171D-02    0.53170D-02    0.63933D-07
+  3    0.26276D+02    0.26276D+02    0.45533D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.00000D+00
+   -0.20000D+01
+   -0.10000D+01
+   -0.10000D+01
+ Steps =        739 f-s =       1057 J-s =         25
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+02    0.20000D+02    0.67201D-08
+  2   -0.20000D+02   -0.20000D+02    0.67201D-08
+  3   -0.21804D-06   -0.22476D-06    0.67201D-08
+  4    0.21804D-06    0.22476D-06    0.67201D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.17600D-02
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         30 f-s =         93 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.16180D-02    0.16181D-02    0.99142D-07
+  2    0.13823D-09    0.13822D-09    0.57590D-14
+  3    0.82531D-11    0.82516D-11    0.14968D-14
+  4    0.12998D-09    0.12997D-09    0.42590D-14
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.76100D+03
+    0.00000D+00
+    0.60000D+03
+    0.10000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        735 f-s =       1410 J-s =         36
+ Computed and reference solutions and absolute errors follow:
+  1    0.12111D+04    0.12111D+04    0.21342D-04
+  2    0.12711D-04    0.12711D-04    0.27996D-11
+  3    0.12086D+04    0.12086D+04    0.21184D-04
+  4    0.32420D-03    0.32420D-03    0.27909D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        128
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        221
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        164 f-s =        224 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.82571D-08
+  2    0.13300D-02    0.13300D-02    0.28086D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         62
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.40000D-05
+    0.10000D-05
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =         50 f-s =         96 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.19541D-12    0.32359D-12    0.12818D-12
+  2    0.25241D-06    0.23607D-06    0.16344D-07
+  3    0.80570D-13    0.76393D-13    0.41765D-14
+  4    0.80566D-06    0.76393D-06    0.41731D-07
+  5    0.31919D-05    0.32361D-05    0.44211D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        170
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        303
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.40000D+01
+    0.11000D+01
+    0.40000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       2237 f-s =       3832 J-s =         82
+ Computed and reference solutions and absolute errors follow:
+  1    0.44183D+01    0.44183D+01    0.99637D-06
+  2    0.12902D+01    0.12902D+01    0.86810D-07
+  3    0.30193D+01    0.30193D+01    0.33910D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        153
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.33650D-06
+    0.82610D-02
+    0.16420D-02
+    0.93800D-05
+ Nonnegativity will be enforced for this problem.
+ Steps =        156 f-s =        290 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.17136D-06    0.17136D-06    0.16128D-16
+  2    0.37136D-02    0.37136D-02    0.35579D-12
+  3    0.61893D-02    0.61893D-02    0.59299D-12
+  4    0.95451D-05    0.95451D-05    0.16128D-16
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        128
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        221
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        302 f-s =        408 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.45410D-04    0.45400D-04    0.10373D-07
+  2    0.21066D-08    0.20612D-08    0.45434D-10
+  3    0.13566D-36    0.28230D-55    0.13566D-36
+  4   -0.21446D-34    0.52358D-51    0.21446D-34
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        357 f-s =        520 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D-01    0.99999D-01    0.51290D-08
+  2    0.20000D+00    0.20000D+00    0.10257D-07
+  3    0.30000D+00    0.30000D+00    0.14345D-07
+  4    0.40000D+00    0.40000D+00    0.16975D-07
+  5    0.50000D+00    0.50000D+00    0.17883D-07
+  6    0.60000D+00    0.60000D+00    0.16975D-07
+  7    0.70000D+00    0.70000D+00    0.14344D-07
+  8    0.80000D+00    0.80000D+00    0.10257D-07
+  9    0.90000D+00    0.90000D+00    0.51289D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        506
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         39
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        400 f-s =        514 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.10796D-09
+  2    0.13685D-01    0.13685D-01    0.10870D-08
+  3    0.15037D+01    0.15037D+01    0.11996D-06
+  4    0.13534D+00    0.13534D+00    0.11264D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        495 f-s =        685 J-s =         13
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.30809D-08
+  2    0.81042D-08    0.12659D-13    0.81042D-08
+  3   -0.47930D-16    0.19115D-41    0.47930D-16
+  4    0.16367D-27    0.22774D-54    0.16367D-27
+  5   -0.76092D-39    0.00000D+00    0.76092D-39
+  6   -0.31273D-52    0.00000D+00    0.31273D-52
+  7   -0.64761D-65    0.00000D+00    0.64761D-65
+  8    0.16712D-81    0.00000D+00    0.16712D-81
+  9    0.37406D-92    0.00000D+00    0.37406D-92
+ 10    0.27832-108    0.00000D+00    0.27832-108
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        610
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         40
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =       1507 f-s =       1811 J-s =         32
+ Computed and reference solutions and absolute errors follow:
+  1    0.13518D-07    0.10042D-08    0.12514D-07
+  2    0.10907D-06    0.18000D-07    0.91067D-07
+  3    0.65628D-70    0.00000D+00    0.65628D-70
+  4    0.55985D-68   -0.60430D-78    0.55985D-68
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        281 f-s =        371 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.87998D-22    0.61813D-30    0.87998D-22
+  2   -0.28787D-19    0.89637D-30    0.28787D-19
+  3    0.24212D-17    0.27384D-26    0.24212D-17
+  4    0.21533D-08    0.20612D-08    0.92104D-10
+  5    0.45420D-04    0.45400D-04    0.20557D-07
+  6    0.13534D+00    0.13534D+00    0.24873D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        254
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        305 f-s =        402 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1   -0.34875D-16   -0.10768D-27    0.34875D-16
+  2   -0.20762D-15    0.54550D-27    0.20762D-15
+  3   -0.14217D-16    0.27385D-26    0.14217D-16
+  4    0.21473D-08    0.20612D-08    0.86185D-10
+  5    0.45416D-04    0.45400D-04    0.16174D-07
+  6    0.13534D+00    0.13534D+00    0.20554D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        254
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        592 f-s =        737 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1   -0.14587D-10    0.13312D-21    0.14587D-10
+  2   -0.67278D-11   -0.23259D-21    0.67278D-11
+  3   -0.80777D-24    0.15179D-34    0.80777D-24
+  4    0.22822D-08    0.20612D-08    0.22107D-09
+  5    0.45437D-04    0.45400D-04    0.37012D-07
+  6    0.13534D+00    0.13534D+00    0.43414D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        254
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       3304 f-s =       3852 J-s =         60
+ Computed and reference solutions and absolute errors follow:
+  1   -0.46627D-07   -0.31006D-13    0.46627D-07
+  2    0.87363D-07    0.38628D-13    0.87363D-07
+  3    0.18048D-34    0.18049D-34    0.49651D-39
+  4    0.20612D-08    0.20612D-08    0.52736D-16
+  5    0.45400D-04    0.45400D-04    0.35928D-13
+  6    0.13534D+00    0.13534D+00    0.24925D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        254
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        368 f-s =        463 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1    0.40033D-03    0.40032D-03    0.34941D-08
+  2    0.40016D-03    0.40016D-03    0.65052D-18
+  3    0.40000D-03    0.40000D-03    0.00000D+00
+  4    0.20000D-01    0.20000D-01    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        340 f-s =        444 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.56117D-07
+  2    0.40000D-01    0.40000D-01    0.24918D-08
+  3    0.40016D-01    0.40016D-01    0.23024D-08
+  4    0.40032D-01    0.40032D-01    0.22707D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        327 f-s =        415 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.30035D-09
+  2    0.40000D+00    0.40000D+00    0.13360D-09
+  3    0.41600D+00    0.41600D+00    0.13422D-09
+  4    0.43331D+00    0.43331D+00    0.14354D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        341 f-s =        445 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.10593D-08
+  2    0.40000D+01    0.40000D+01    0.46847D-08
+  3    0.20000D+02    0.20000D+02    0.42415D-07
+  4    0.42000D+03    0.42000D+03    0.17307D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        351 f-s =        460 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.64607D-08
+  2    0.80000D+01    0.80000D+01    0.57430D-07
+  3    0.13600D+03    0.13600D+03    0.19379D-05
+  4    0.37128D+05    0.37128D+05    0.10670D-02
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        419 f-s =        612 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1    0.22242D+02    0.22242D+02    0.15293D-05
+  2    0.27111D+02    0.27111D+02    0.16896D-05
+  3    0.40000D+03    0.40000D+03    0.56843D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        418 f-s =        583 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.19803D-07
+  2    0.91855D-01    0.91855D-01    0.65643D-08
+  3    0.28416D+02    0.28416D+02    0.19803D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        434 f-s =        578 J-s =         13
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.87250D-08
+  2    0.56309D-02    0.56309D-02    0.17013D-10
+  3    0.36024D+00    0.36024D+00    0.87250D-08
+  4    0.31706D+00    0.31706D+00    0.43710D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =         65 f-s =        100 J-s =          4
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.27090D-06
+  2    0.14023D+01    0.14023D+01    0.27090D-06
+  3   -0.18934D-05   -0.18934D-05    0.26343D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        231 f-s =        363 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99164D+00   -0.99164D+00    0.76078D-06
+  2    0.98334D+00    0.98334D+00    0.83890D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         58
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         32
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        145 f-s =        236 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.29125D-07
+  2    0.14760D+00    0.14760D+00    0.29125D-07
+  3    0.57731D-07    0.57731D-07    0.36121D-14
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        132 f-s =        215 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D-07    0.10000D-07    0.98672D-15
+  2    0.60814D-13   -0.16253D-18    0.60814D-13
+  3   -0.32857D-11    0.20260D-16    0.32857D-11
+  4    0.14738D-09   -0.18531D-14    0.14738D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.20000D+01
+    0.00000D+00
+ Steps =        531 f-s =        666 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1   -0.11587D+01   -0.11587D+01    0.13625D-05
+  2    0.43047D+00    0.43047D+00    0.14176D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         58
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         32
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =        397 f-s =        584 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1    0.42531D-02    0.42531D-02    0.16683D-07
+  2    0.53170D-02    0.53170D-02    0.20528D-07
+  3    0.26276D+02    0.26276D+02    0.25055D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.00000D+00
+   -0.20000D+01
+   -0.10000D+01
+   -0.10000D+01
+ Steps =        748 f-s =        916 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+02    0.20000D+02    0.25958D-09
+  2   -0.20000D+02   -0.20000D+02    0.25960D-09
+  3   -0.22502D-06   -0.22476D-06    0.25959D-09
+  4    0.22502D-06    0.22476D-06    0.25959D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.17600D-02
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         29 f-s =         56 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.16184D-02    0.16181D-02    0.29771D-06
+  2    0.13819D-09    0.13822D-09    0.31354D-13
+  3    0.82518D-11    0.82516D-11    0.19165D-15
+  4    0.12994D-09    0.12997D-09    0.31545D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.76100D+03
+    0.00000D+00
+    0.60000D+03
+    0.10000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        816 f-s =       1339 J-s =         25
+ Computed and reference solutions and absolute errors follow:
+  1    0.12111D+04    0.12111D+04    0.98613D-05
+  2    0.12711D-04    0.12711D-04    0.12592D-11
+  3    0.12086D+04    0.12086D+04    0.97883D-05
+  4    0.32420D-03    0.32420D-03    0.12552D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        144
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         38
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        166 f-s =        219 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.21761D-07
+  2    0.13300D-02    0.13300D-02    0.73842D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         62
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.40000D-05
+    0.10000D-05
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =         56 f-s =         83 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.30037D-12    0.32359D-12    0.23225D-13
+  2    0.24926D-06    0.23607D-06    0.13190D-07
+  3    0.79768D-13    0.76393D-13    0.33747D-14
+  4    0.79768D-06    0.76393D-06    0.33747D-07
+  5    0.32002D-05    0.32361D-05    0.35852D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        200
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         40
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.40000D+01
+    0.11000D+01
+    0.40000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       2320 f-s =       3652 J-s =         49
+ Computed and reference solutions and absolute errors follow:
+  1    0.44183D+01    0.44183D+01    0.68297D-05
+  2    0.12902D+01    0.12902D+01    0.56960D-06
+  3    0.30193D+01    0.30193D+01    0.22183D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         98
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =             8  follow.
+  Results for ITOL =             8  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-07
+ Initial solution = 
+    0.33650D-06
+    0.82610D-02
+    0.16420D-02
+    0.93800D-05
+ Nonnegativity will be enforced for this problem.
+ Steps =        161 f-s =        296 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.17136D-06    0.17136D-06    0.89537D-16
+  2    0.37136D-02    0.37136D-02    0.19752D-11
+  3    0.61893D-02    0.61893D-02    0.32921D-11
+  4    0.95451D-05    0.95451D-05    0.89538D-16
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        144
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         38
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        428 f-s =        542 J-s =         13
+ Computed and reference solutions and absolute errors follow:
+  1    0.45402D-04    0.45400D-04    0.20958D-08
+  2    0.20698D-08    0.20612D-08    0.86833D-11
+  3   -0.53753D-44    0.28230D-55    0.53753D-44
+  4   -0.26328D-41    0.52358D-51    0.26328D-41
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        486 f-s =        673 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D-01    0.99999D-01    0.51302D-09
+  2    0.20000D+00    0.20000D+00    0.10260D-08
+  3    0.30000D+00    0.30000D+00    0.14348D-08
+  4    0.40000D+00    0.40000D+00    0.16979D-08
+  5    0.50000D+00    0.50000D+00    0.17887D-08
+  6    0.60000D+00    0.60000D+00    0.16979D-08
+  7    0.70000D+00    0.70000D+00    0.14348D-08
+  8    0.80000D+00    0.80000D+00    0.10260D-08
+  9    0.90000D+00    0.90000D+00    0.51301D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        290
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         39
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        554 f-s =        674 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.55048D-10
+  2    0.13685D-01    0.13685D-01    0.55307D-09
+  3    0.15037D+01    0.15037D+01    0.61165D-07
+  4    0.13534D+00    0.13534D+00    0.58603D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        703 f-s =        953 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.36942D-09
+  2   -0.19630D-10    0.12659D-13    0.19642D-10
+  3    0.50491D-23    0.19115D-41    0.50491D-23
+  4   -0.40029D-36    0.22774D-54    0.40029D-36
+  5   -0.12541D-51    0.00000D+00    0.12541D-51
+  6    0.19248D-70    0.00000D+00    0.19248D-70
+  7    0.18002D-88    0.00000D+00    0.18002D-88
+  8   -0.16262-107    0.00000D+00    0.16262-107
+  9    0.75670-126    0.00000D+00    0.75670-126
+ 10    0.28912-143    0.00000D+00    0.28912-143
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        340
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         40
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =       2270 f-s =       2668 J-s =         45
+ Computed and reference solutions and absolute errors follow:
+  1    0.20380D-08    0.10042D-08    0.10338D-08
+  2    0.98186D-08    0.18000D-07    0.81817D-08
+  3   -0.21651-133    0.00000D+00    0.21651-133
+  4    0.15879-131   -0.60430D-78    0.60430D-78
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        390 f-s =        495 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1   -0.67751D-25    0.61813D-30    0.67751D-25
+  2    0.67161D-25    0.89637D-30    0.67160D-25
+  3   -0.11972D-21    0.27384D-26    0.11972D-21
+  4    0.20700D-08    0.20612D-08    0.88533D-11
+  5    0.45402D-04    0.45400D-04    0.22293D-08
+  6    0.13534D+00    0.13534D+00    0.32690D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        426 f-s =        529 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1   -0.44272D-19   -0.10768D-27    0.44272D-19
+  2   -0.17172D-19    0.54550D-27    0.17172D-19
+  3   -0.20650D-22    0.27385D-26    0.20652D-22
+  4    0.20679D-08    0.20612D-08    0.67196D-11
+  5    0.45402D-04    0.45400D-04    0.16949D-08
+  6    0.13534D+00    0.13534D+00    0.25365D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        844 f-s =       1015 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1    0.33183D-10    0.13312D-21    0.33183D-10
+  2   -0.18365D-10   -0.23259D-21    0.18365D-10
+  3   -0.25756D-30    0.15179D-34    0.25758D-30
+  4    0.20689D-08    0.20612D-08    0.77617D-11
+  5    0.45401D-04    0.45400D-04    0.84210D-09
+  6    0.13534D+00    0.13534D+00    0.36199D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       3856 f-s =       4464 J-s =         70
+ Computed and reference solutions and absolute errors follow:
+  1    0.68300D-09   -0.31006D-13    0.68303D-09
+  2    0.10516D-07    0.38628D-13    0.10516D-07
+  3    0.18048D-34    0.18049D-34    0.49484D-39
+  4    0.20612D-08    0.20612D-08    0.52561D-16
+  5    0.45400D-04    0.45400D-04    0.35866D-13
+  6    0.13534D+00    0.13534D+00    0.31058D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        525 f-s =        643 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1    0.40033D-03    0.40032D-03    0.32933D-08
+  2    0.40016D-03    0.40016D-03    0.54210D-19
+  3    0.40000D-03    0.40000D-03    0.00000D+00
+  4    0.20000D-01    0.20000D-01    0.34694D-17
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        465 f-s =        579 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.31903D-09
+  2    0.40000D-01    0.40000D-01    0.14183D-10
+  3    0.40016D-01    0.40016D-01    0.13096D-10
+  4    0.40032D-01    0.40032D-01    0.12911D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        469 f-s =        571 J-s =         13
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.94382D-09
+  2    0.40000D+00    0.40000D+00    0.41947D-09
+  3    0.41600D+00    0.41600D+00    0.42161D-09
+  4    0.43331D+00    0.43331D+00    0.45066D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        483 f-s =        605 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.29362D-09
+  2    0.40000D+01    0.40000D+01    0.13050D-08
+  3    0.20000D+02    0.20000D+02    0.11912D-07
+  4    0.42000D+03    0.42000D+03    0.49301D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        478 f-s =        608 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.10170D-09
+  2    0.80000D+01    0.80000D+01    0.90407D-09
+  3    0.13600D+03    0.13600D+03    0.30507D-07
+  4    0.37128D+05    0.37128D+05    0.16794D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        591 f-s =        851 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.22242D+02    0.22242D+02    0.29791D-06
+  2    0.27111D+02    0.27111D+02    0.33049D-06
+  3    0.40000D+03    0.40000D+03    0.11369D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        539 f-s =        797 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.32205D-08
+  2    0.91855D-01    0.91855D-01    0.13007D-08
+  3    0.28416D+02    0.28416D+02    0.32206D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        580 f-s =        725 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.11107D-09
+  2    0.56309D-02    0.56309D-02    0.21650D-12
+  3    0.36024D+00    0.36024D+00    0.11107D-09
+  4    0.31706D+00    0.31706D+00    0.55643D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =         93 f-s =        163 J-s =          4
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.38193D-07
+  2    0.14023D+01    0.14023D+01    0.38196D-07
+  3   -0.18934D-05   -0.18934D-05    0.23351D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        359 f-s =        548 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99164D+00   -0.99164D+00    0.96444D-07
+  2    0.98334D+00    0.98334D+00    0.11193D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         52
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         32
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        218 f-s =        354 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.57991D-08
+  2    0.14760D+00    0.14760D+00    0.57991D-08
+  3    0.57731D-07    0.57731D-07    0.71432D-15
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        182 f-s =        281 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D-07    0.10000D-07    0.25731D-15
+  2   -0.10609D-13   -0.16253D-18    0.10609D-13
+  3    0.18370D-12    0.20260D-16    0.18368D-12
+  4    0.24734D-10   -0.18531D-14    0.24736D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.20000D+01
+    0.00000D+00
+ Steps =        726 f-s =        889 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1   -0.11587D+01   -0.11587D+01    0.18099D-06
+  2    0.43047D+00    0.43047D+00    0.18211D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         52
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         32
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =        535 f-s =        773 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1    0.42531D-02    0.42531D-02    0.29515D-08
+  2    0.53170D-02    0.53170D-02    0.36924D-08
+  3    0.26276D+02    0.26276D+02    0.63616D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.00000D+00
+   -0.20000D+01
+   -0.10000D+01
+   -0.10000D+01
+ Steps =       1048 f-s =       1267 J-s =         23
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+02    0.20000D+02    0.12428D-08
+  2   -0.20000D+02   -0.20000D+02    0.12427D-08
+  3   -0.22352D-06   -0.22476D-06    0.12428D-08
+  4    0.22352D-06    0.22476D-06    0.12427D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.17600D-02
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         41 f-s =         77 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.16181D-02    0.16181D-02    0.13511D-08
+  2    0.13822D-09    0.13822D-09    0.38402D-15
+  3    0.82516D-11    0.82516D-11    0.12070D-16
+  4    0.12997D-09    0.12997D-09    0.37195D-15
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.76100D+03
+    0.00000D+00
+    0.60000D+03
+    0.10000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        960 f-s =       1545 J-s =         29
+ Computed and reference solutions and absolute errors follow:
+  1    0.12111D+04    0.12111D+04    0.21504D-05
+  2    0.12711D-04    0.12711D-04    0.27993D-12
+  3    0.12086D+04    0.12086D+04    0.21345D-05
+  4    0.32420D-03    0.32420D-03    0.27906D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        108
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         38
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        238 f-s =        314 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.28025D-08
+  2    0.13300D-02    0.13300D-02    0.95191D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         56
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.40000D-05
+    0.10000D-05
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =         76 f-s =        109 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.18753D-12    0.32359D-12    0.13606D-12
+  2    0.23289D-06    0.23607D-06    0.31821D-08
+  3    0.75585D-13    0.76393D-13    0.80851D-15
+  4    0.75585D-06    0.76393D-06    0.80842D-08
+  5    0.32456D-05    0.32361D-05    0.95041D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         40
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.40000D+01
+    0.11000D+01
+    0.40000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       3208 f-s =       4842 J-s =         62
+ Computed and reference solutions and absolute errors follow:
+  1    0.44183D+01    0.44183D+01    0.15477D-05
+  2    0.12902D+01    0.12902D+01    0.13430D-06
+  3    0.30193D+01    0.30193D+01    0.63800D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         80
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.33650D-06
+    0.82610D-02
+    0.16420D-02
+    0.93800D-05
+ Nonnegativity will be enforced for this problem.
+ Steps =        218 f-s =        391 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.17136D-06    0.17136D-06    0.41125D-16
+  2    0.37136D-02    0.37136D-02    0.90725D-12
+  3    0.61893D-02    0.61893D-02    0.15121D-11
+  4    0.95451D-05    0.95451D-05    0.41118D-16
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        108
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         38
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        428 f-s =        618 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1    0.45402D-04    0.45400D-04    0.20958D-08
+  2    0.20698D-08    0.20612D-08    0.86833D-11
+  3   -0.53753D-44    0.28230D-55    0.53753D-44
+  4   -0.26328D-41    0.52358D-51    0.26328D-41
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        486 f-s =        835 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D-01    0.99999D-01    0.51268D-09
+  2    0.20000D+00    0.20000D+00    0.10253D-08
+  3    0.30000D+00    0.30000D+00    0.14338D-08
+  4    0.40000D+00    0.40000D+00    0.16968D-08
+  5    0.50000D+00    0.50000D+00    0.17876D-08
+  6    0.60000D+00    0.60000D+00    0.16968D-08
+  7    0.70000D+00    0.70000D+00    0.14338D-08
+  8    0.80000D+00    0.80000D+00    0.10253D-08
+  9    0.90000D+00    0.90000D+00    0.51268D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        380
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        762
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        554 f-s =        762 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.55056D-10
+  2    0.13685D-01    0.13685D-01    0.55314D-09
+  3    0.15037D+01    0.15037D+01    0.61173D-07
+  4    0.13534D+00    0.13534D+00    0.58611D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        703 f-s =       1293 J-s =         26
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.36942D-09
+  2   -0.19620D-10    0.12659D-13    0.19632D-10
+  3    0.50487D-23    0.19115D-41    0.50487D-23
+  4   -0.40024D-36    0.22774D-54    0.40024D-36
+  5   -0.12542D-51    0.00000D+00    0.12542D-51
+  6    0.19241D-70    0.00000D+00    0.19241D-70
+  7    0.17997D-88    0.00000D+00    0.17997D-88
+  8   -0.16257-107    0.00000D+00    0.16257-107
+  9    0.75653-126    0.00000D+00    0.75653-126
+ 10    0.28909-143    0.00000D+00    0.28909-143
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        450
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        913
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =       2244 f-s =       3002 J-s =         66
+ Computed and reference solutions and absolute errors follow:
+  1    0.20380D-08    0.10042D-08    0.10338D-08
+  2    0.98184D-08    0.18000D-07    0.81818D-08
+  3   -0.10374-129    0.00000D+00    0.10374-129
+  4    0.11794-127   -0.60430D-78    0.60430D-78
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        390 f-s =        609 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1   -0.67751D-25    0.61813D-30    0.67751D-25
+  2    0.67161D-25    0.89637D-30    0.67161D-25
+  3   -0.11972D-21    0.27384D-26    0.11972D-21
+  4    0.20700D-08    0.20612D-08    0.88533D-11
+  5    0.45402D-04    0.45400D-04    0.22293D-08
+  6    0.13534D+00    0.13534D+00    0.32690D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        206
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        393
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        426 f-s =        619 J-s =         13
+ Computed and reference solutions and absolute errors follow:
+  1   -0.44272D-19   -0.10768D-27    0.44272D-19
+  2   -0.17172D-19    0.54550D-27    0.17172D-19
+  3   -0.20650D-22    0.27385D-26    0.20652D-22
+  4    0.20679D-08    0.20612D-08    0.67196D-11
+  5    0.45402D-04    0.45400D-04    0.16949D-08
+  6    0.13534D+00    0.13534D+00    0.25365D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        206
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        393
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        844 f-s =       1225 J-s =         27
+ Computed and reference solutions and absolute errors follow:
+  1    0.33183D-10    0.13312D-21    0.33183D-10
+  2   -0.18365D-10   -0.23259D-21    0.18365D-10
+  3   -0.25756D-30    0.15179D-34    0.25758D-30
+  4    0.20689D-08    0.20612D-08    0.77616D-11
+  5    0.45401D-04    0.45400D-04    0.84210D-09
+  6    0.13534D+00    0.13534D+00    0.36199D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        206
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        393
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       3856 f-s =       5304 J-s =        105
+ Computed and reference solutions and absolute errors follow:
+  1    0.68309D-09   -0.31006D-13    0.68312D-09
+  2    0.10516D-07    0.38628D-13    0.10516D-07
+  3    0.18048D-34    0.18049D-34    0.49484D-39
+  4    0.20612D-08    0.20612D-08    0.52562D-16
+  5    0.45400D-04    0.45400D-04    0.35880D-13
+  6    0.13534D+00    0.13534D+00    0.38636D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        206
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        393
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        525 f-s =        724 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1    0.40033D-03    0.40032D-03    0.33742D-08
+  2    0.40016D-03    0.40016D-03    0.16263D-18
+  3    0.40000D-03    0.40000D-03    0.10842D-18
+  4    0.20000D-01    0.20000D-01    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        465 f-s =        643 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.32843D-09
+  2    0.40000D-01    0.40000D-01    0.14637D-10
+  3    0.40016D-01    0.40016D-01    0.13560D-10
+  4    0.40032D-01    0.40032D-01    0.13349D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        469 f-s =        643 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.31507D-08
+  2    0.40000D+00    0.40000D+00    0.14002D-08
+  3    0.41600D+00    0.41600D+00    0.14074D-08
+  4    0.43331D+00    0.43331D+00    0.15044D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        480 f-s =        653 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.24473D-09
+  2    0.40000D+01    0.40000D+01    0.10877D-08
+  3    0.20000D+02    0.20000D+02    0.99285D-08
+  4    0.42000D+03    0.42000D+03    0.41093D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        492 f-s =        682 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.14622D-09
+  2    0.80000D+01    0.80000D+01    0.13006D-08
+  3    0.13600D+03    0.13600D+03    0.43957D-07
+  4    0.37128D+05    0.37128D+05    0.24272D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        592 f-s =        958 J-s =         23
+ Computed and reference solutions and absolute errors follow:
+  1    0.22242D+02    0.22242D+02    0.15611D-06
+  2    0.27111D+02    0.27111D+02    0.14672D-06
+  3    0.40000D+03    0.40000D+03    0.11369D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        544 f-s =        879 J-s =         21
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.57892D-08
+  2    0.91855D-01    0.91855D-01    0.22649D-08
+  3    0.28416D+02    0.28416D+02    0.57894D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        582 f-s =        823 J-s =         20
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.38292D-08
+  2    0.56309D-02    0.56309D-02    0.74667D-11
+  3    0.36024D+00    0.36024D+00    0.38292D-08
+  4    0.31706D+00    0.31706D+00    0.19183D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =         87 f-s =        147 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.60451D-08
+  2    0.14023D+01    0.14023D+01    0.60451D-08
+  3   -0.18934D-05   -0.18934D-05    0.28860D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        328 f-s =        513 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99164D+00   -0.99164D+00    0.96467D-07
+  2    0.98334D+00    0.98334D+00    0.11257D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         58
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        226 f-s =        426 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.12713D-08
+  2    0.14760D+00    0.14760D+00    0.12713D-08
+  3    0.57731D-07    0.57731D-07    0.15672D-15
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        182 f-s =        305 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D-07    0.10000D-07    0.37297D-15
+  2    0.17195D-13   -0.16253D-18    0.17195D-13
+  3   -0.63531D-12    0.20260D-16    0.63533D-12
+  4    0.91238D-11   -0.18531D-14    0.91256D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.20000D+01
+    0.00000D+00
+ Steps =        725 f-s =        949 J-s =         23
+ Computed and reference solutions and absolute errors follow:
+  1   -0.11587D+01   -0.11587D+01    0.18442D-06
+  2    0.43047D+00    0.43047D+00    0.18838D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         58
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =        495 f-s =        742 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1    0.42531D-02    0.42531D-02    0.80286D-09
+  2    0.53170D-02    0.53170D-02    0.99612D-09
+  3    0.26276D+02    0.26276D+02    0.11097D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.00000D+00
+   -0.20000D+01
+   -0.10000D+01
+   -0.10000D+01
+ Steps =       1047 f-s =       1411 J-s =         31
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+02    0.20000D+02    0.69176D-09
+  2   -0.20000D+02   -0.20000D+02    0.69177D-09
+  3   -0.22546D-06   -0.22476D-06    0.69177D-09
+  4    0.22546D-06    0.22476D-06    0.69177D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.17600D-02
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         43 f-s =        107 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.16181D-02    0.16181D-02    0.79010D-08
+  2    0.13824D-09    0.13822D-09    0.19865D-13
+  3    0.82527D-11    0.82516D-11    0.11735D-14
+  4    0.12999D-09    0.12997D-09    0.18691D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.76100D+03
+    0.00000D+00
+    0.60000D+03
+    0.10000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =       1104 f-s =       2015 J-s =         46
+ Computed and reference solutions and absolute errors follow:
+  1    0.12111D+04    0.12111D+04    0.12477D-05
+  2    0.12711D-04    0.12711D-04    0.16231D-12
+  3    0.12086D+04    0.12086D+04    0.12385D-05
+  4    0.32420D-03    0.32420D-03    0.16181D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        128
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        221
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        242 f-s =        346 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.74528D-08
+  2    0.13300D-02    0.13300D-02    0.25316D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         62
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.40000D-05
+    0.10000D-05
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =         77 f-s =        146 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.32436D-12    0.32359D-12    0.76730D-15
+  2    0.23385D-06    0.23607D-06    0.22139D-08
+  3    0.75824D-13    0.76393D-13    0.56875D-15
+  4    0.75824D-06    0.76393D-06    0.56878D-08
+  5    0.32424D-05    0.32361D-05    0.63143D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        170
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        303
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.40000D+01
+    0.11000D+01
+    0.40000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       3105 f-s =       5145 J-s =        112
+ Computed and reference solutions and absolute errors follow:
+  1    0.44183D+01    0.44183D+01    0.76446D-06
+  2    0.12902D+01    0.12902D+01    0.66173D-07
+  3    0.30193D+01    0.30193D+01    0.30494D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        153
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.33650D-06
+    0.82610D-02
+    0.16420D-02
+    0.93800D-05
+ Nonnegativity will be enforced for this problem.
+ Steps =        209 f-s =        402 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.17136D-06    0.17136D-06    0.27180D-16
+  2    0.37136D-02    0.37136D-02    0.60152D-12
+  3    0.61893D-02    0.61893D-02    0.99489D-12
+  4    0.95451D-05    0.95451D-05    0.27195D-16
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        128
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        221
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        428 f-s =        542 J-s =         13
+ Computed and reference solutions and absolute errors follow:
+  1    0.45402D-04    0.45400D-04    0.20958D-08
+  2    0.20698D-08    0.20612D-08    0.86833D-11
+  3   -0.53753D-44    0.28230D-55    0.53753D-44
+  4   -0.26328D-41    0.52358D-51    0.26328D-41
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        486 f-s =        673 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D-01    0.99999D-01    0.51302D-09
+  2    0.20000D+00    0.20000D+00    0.10260D-08
+  3    0.30000D+00    0.30000D+00    0.14348D-08
+  4    0.40000D+00    0.40000D+00    0.16979D-08
+  5    0.50000D+00    0.50000D+00    0.17887D-08
+  6    0.60000D+00    0.60000D+00    0.16979D-08
+  7    0.70000D+00    0.70000D+00    0.14348D-08
+  8    0.80000D+00    0.80000D+00    0.10260D-08
+  9    0.90000D+00    0.90000D+00    0.51301D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        506
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         39
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        554 f-s =        674 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.55048D-10
+  2    0.13685D-01    0.13685D-01    0.55307D-09
+  3    0.15037D+01    0.15037D+01    0.61165D-07
+  4    0.13534D+00    0.13534D+00    0.58603D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        703 f-s =        953 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.36942D-09
+  2   -0.19630D-10    0.12659D-13    0.19642D-10
+  3    0.50491D-23    0.19115D-41    0.50491D-23
+  4   -0.40029D-36    0.22774D-54    0.40029D-36
+  5   -0.12541D-51    0.00000D+00    0.12541D-51
+  6    0.19248D-70    0.00000D+00    0.19248D-70
+  7    0.18002D-88    0.00000D+00    0.18002D-88
+  8   -0.16262-107    0.00000D+00    0.16262-107
+  9    0.75670-126    0.00000D+00    0.75670-126
+ 10    0.28912-143    0.00000D+00    0.28912-143
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        610
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         40
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =       2270 f-s =       2668 J-s =         45
+ Computed and reference solutions and absolute errors follow:
+  1    0.20380D-08    0.10042D-08    0.10338D-08
+  2    0.98186D-08    0.18000D-07    0.81817D-08
+  3   -0.21651-133    0.00000D+00    0.21651-133
+  4    0.15879-131   -0.60430D-78    0.60430D-78
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        390 f-s =        495 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1   -0.67751D-25    0.61813D-30    0.67751D-25
+  2    0.67161D-25    0.89637D-30    0.67160D-25
+  3   -0.11972D-21    0.27384D-26    0.11972D-21
+  4    0.20700D-08    0.20612D-08    0.88533D-11
+  5    0.45402D-04    0.45400D-04    0.22293D-08
+  6    0.13534D+00    0.13534D+00    0.32690D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        254
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        426 f-s =        529 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1   -0.44272D-19   -0.10768D-27    0.44272D-19
+  2   -0.17172D-19    0.54550D-27    0.17172D-19
+  3   -0.20650D-22    0.27385D-26    0.20652D-22
+  4    0.20679D-08    0.20612D-08    0.67196D-11
+  5    0.45402D-04    0.45400D-04    0.16949D-08
+  6    0.13534D+00    0.13534D+00    0.25365D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        254
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        844 f-s =       1015 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1    0.33183D-10    0.13312D-21    0.33183D-10
+  2   -0.18365D-10   -0.23259D-21    0.18365D-10
+  3   -0.25756D-30    0.15179D-34    0.25758D-30
+  4    0.20689D-08    0.20612D-08    0.77617D-11
+  5    0.45401D-04    0.45400D-04    0.84210D-09
+  6    0.13534D+00    0.13534D+00    0.36199D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        254
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       3856 f-s =       4464 J-s =         70
+ Computed and reference solutions and absolute errors follow:
+  1    0.68300D-09   -0.31006D-13    0.68303D-09
+  2    0.10516D-07    0.38628D-13    0.10516D-07
+  3    0.18048D-34    0.18049D-34    0.49484D-39
+  4    0.20612D-08    0.20612D-08    0.52561D-16
+  5    0.45400D-04    0.45400D-04    0.35866D-13
+  6    0.13534D+00    0.13534D+00    0.31058D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        254
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        525 f-s =        643 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1    0.40033D-03    0.40032D-03    0.32933D-08
+  2    0.40016D-03    0.40016D-03    0.54210D-19
+  3    0.40000D-03    0.40000D-03    0.00000D+00
+  4    0.20000D-01    0.20000D-01    0.34694D-17
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        465 f-s =        579 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.31903D-09
+  2    0.40000D-01    0.40000D-01    0.14183D-10
+  3    0.40016D-01    0.40016D-01    0.13096D-10
+  4    0.40032D-01    0.40032D-01    0.12911D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        469 f-s =        571 J-s =         13
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.94382D-09
+  2    0.40000D+00    0.40000D+00    0.41947D-09
+  3    0.41600D+00    0.41600D+00    0.42161D-09
+  4    0.43331D+00    0.43331D+00    0.45066D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        483 f-s =        605 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.29362D-09
+  2    0.40000D+01    0.40000D+01    0.13050D-08
+  3    0.20000D+02    0.20000D+02    0.11912D-07
+  4    0.42000D+03    0.42000D+03    0.49301D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        478 f-s =        608 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.10170D-09
+  2    0.80000D+01    0.80000D+01    0.90407D-09
+  3    0.13600D+03    0.13600D+03    0.30507D-07
+  4    0.37128D+05    0.37128D+05    0.16794D-04
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        591 f-s =        851 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.22242D+02    0.22242D+02    0.29791D-06
+  2    0.27111D+02    0.27111D+02    0.33049D-06
+  3    0.40000D+03    0.40000D+03    0.11369D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        539 f-s =        797 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.32205D-08
+  2    0.91855D-01    0.91855D-01    0.13007D-08
+  3    0.28416D+02    0.28416D+02    0.32206D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        580 f-s =        725 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.11107D-09
+  2    0.56309D-02    0.56309D-02    0.21650D-12
+  3    0.36024D+00    0.36024D+00    0.11107D-09
+  4    0.31706D+00    0.31706D+00    0.55643D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =         93 f-s =        163 J-s =          4
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.38193D-07
+  2    0.14023D+01    0.14023D+01    0.38196D-07
+  3   -0.18934D-05   -0.18934D-05    0.23351D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        359 f-s =        548 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99164D+00   -0.99164D+00    0.96444D-07
+  2    0.98334D+00    0.98334D+00    0.11193D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         58
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         32
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        218 f-s =        354 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.57991D-08
+  2    0.14760D+00    0.14760D+00    0.57991D-08
+  3    0.57731D-07    0.57731D-07    0.71432D-15
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        182 f-s =        281 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D-07    0.10000D-07    0.25731D-15
+  2   -0.10609D-13   -0.16253D-18    0.10609D-13
+  3    0.18370D-12    0.20260D-16    0.18368D-12
+  4    0.24734D-10   -0.18531D-14    0.24736D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.20000D+01
+    0.00000D+00
+ Steps =        726 f-s =        889 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1   -0.11587D+01   -0.11587D+01    0.18099D-06
+  2    0.43047D+00    0.43047D+00    0.18211D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         58
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         32
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =        535 f-s =        773 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1    0.42531D-02    0.42531D-02    0.29515D-08
+  2    0.53170D-02    0.53170D-02    0.36924D-08
+  3    0.26276D+02    0.26276D+02    0.63616D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.00000D+00
+   -0.20000D+01
+   -0.10000D+01
+   -0.10000D+01
+ Steps =       1048 f-s =       1267 J-s =         23
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+02    0.20000D+02    0.12428D-08
+  2   -0.20000D+02   -0.20000D+02    0.12427D-08
+  3   -0.22352D-06   -0.22476D-06    0.12428D-08
+  4    0.22352D-06    0.22476D-06    0.12427D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.17600D-02
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         41 f-s =         77 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.16181D-02    0.16181D-02    0.13511D-08
+  2    0.13822D-09    0.13822D-09    0.38402D-15
+  3    0.82516D-11    0.82516D-11    0.12070D-16
+  4    0.12997D-09    0.12997D-09    0.37195D-15
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.76100D+03
+    0.00000D+00
+    0.60000D+03
+    0.10000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        960 f-s =       1545 J-s =         29
+ Computed and reference solutions and absolute errors follow:
+  1    0.12111D+04    0.12111D+04    0.21504D-05
+  2    0.12711D-04    0.12711D-04    0.27993D-12
+  3    0.12086D+04    0.12086D+04    0.21345D-05
+  4    0.32420D-03    0.32420D-03    0.27906D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        144
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         38
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        238 f-s =        314 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.28025D-08
+  2    0.13300D-02    0.13300D-02    0.95191D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         62
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.40000D-05
+    0.10000D-05
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =         76 f-s =        109 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.18753D-12    0.32359D-12    0.13606D-12
+  2    0.23289D-06    0.23607D-06    0.31821D-08
+  3    0.75585D-13    0.76393D-13    0.80851D-15
+  4    0.75585D-06    0.76393D-06    0.80842D-08
+  5    0.32456D-05    0.32361D-05    0.95041D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        200
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         40
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.40000D+01
+    0.11000D+01
+    0.40000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       3208 f-s =       4842 J-s =         62
+ Computed and reference solutions and absolute errors follow:
+  1    0.44183D+01    0.44183D+01    0.15477D-05
+  2    0.12902D+01    0.12902D+01    0.13430D-06
+  3    0.30193D+01    0.30193D+01    0.63800D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         98
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =             9  follow.
+  Results for ITOL =             9  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-08
+ Initial solution = 
+    0.33650D-06
+    0.82610D-02
+    0.16420D-02
+    0.93800D-05
+ Nonnegativity will be enforced for this problem.
+ Steps =        218 f-s =        391 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.17136D-06    0.17136D-06    0.41125D-16
+  2    0.37136D-02    0.37136D-02    0.90725D-12
+  3    0.61893D-02    0.61893D-02    0.15121D-11
+  4    0.95451D-05    0.95451D-05    0.41118D-16
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        144
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         38
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        591 f-s =        712 J-s =         17
+ Computed and reference solutions and absolute errors follow:
+  1    0.45400D-04    0.45400D-04    0.33624D-09
+  2    0.20624D-08    0.20612D-08    0.12571D-11
+  3    0.92264D-53    0.28230D-55    0.91982D-53
+  4    0.81954D-50    0.52358D-51    0.76719D-50
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        699 f-s =        919 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D-01    0.99999D-01    0.35667D-10
+  2    0.20000D+00    0.20000D+00    0.71330D-10
+  3    0.30000D+00    0.30000D+00    0.99751D-10
+  4    0.40000D+00    0.40000D+00    0.11805D-09
+  5    0.50000D+00    0.50000D+00    0.12436D-09
+  6    0.60000D+00    0.60000D+00    0.11805D-09
+  7    0.70000D+00    0.70000D+00    0.99751D-10
+  8    0.80000D+00    0.80000D+00    0.71329D-10
+  9    0.90000D+00    0.90000D+00    0.35666D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        290
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         39
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        787 f-s =        928 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.24111D-11
+  2    0.13685D-01    0.13685D-01    0.24319D-10
+  3    0.15037D+01    0.15037D+01    0.26790D-08
+  4    0.13534D+00    0.13534D+00    0.24724D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        999 f-s =       1284 J-s =         22
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.54749D-09
+  2    0.10354D-10    0.12659D-13    0.10341D-10
+  3   -0.96718D-30    0.19115D-41    0.96718D-30
+  4    0.36838D-45    0.22774D-54    0.36838D-45
+  5   -0.26040D-66    0.00000D+00    0.26040D-66
+  6   -0.24200D-87    0.00000D+00    0.24200D-87
+  7   -0.55396-112    0.00000D+00    0.55396-112
+  8    0.11562-137    0.00000D+00    0.11562-137
+  9   -0.36663-165    0.00000D+00    0.36663-165
+ 10   -0.13090-187    0.00000D+00    0.13090-187
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        340
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         40
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =       3303 f-s =       3833 J-s =         63
+ Computed and reference solutions and absolute errors follow:
+  1    0.98635D-09    0.10042D-08    0.17812D-10
+  2    0.15563D-07    0.18000D-07    0.24371D-08
+  3   -0.38125-228    0.00000D+00    0.38125-228
+  4    0.11116-226   -0.60430D-78    0.60430D-78
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        558 f-s =        697 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1   -0.31673D-32    0.61813D-30    0.62130D-30
+  2   -0.11777D-32    0.89637D-30    0.89754D-30
+  3    0.28935D-26    0.27384D-26    0.15509D-27
+  4    0.20625D-08    0.20612D-08    0.13589D-11
+  5    0.45400D-04    0.45400D-04    0.36754D-09
+  6    0.13534D+00    0.13534D+00    0.57915D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        598 f-s =        735 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1   -0.17676D-26   -0.10768D-27    0.16599D-26
+  2    0.10594D-25    0.54550D-27    0.10049D-25
+  3    0.48294D-27    0.27385D-26    0.22556D-26
+  4    0.20623D-08    0.20612D-08    0.11767D-11
+  5    0.45400D-04    0.45400D-04    0.32141D-09
+  6    0.13534D+00    0.13534D+00    0.51098D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1129 f-s =       1324 J-s =         24
+ Computed and reference solutions and absolute errors follow:
+  1   -0.17084D-11    0.13312D-21    0.17084D-11
+  2    0.29903D-11   -0.23259D-21    0.29903D-11
+  3    0.12799D-34    0.15179D-34    0.23800D-35
+  4    0.20608D-08    0.20612D-08    0.30844D-12
+  5    0.45400D-04    0.45400D-04    0.19133D-09
+  6    0.13534D+00    0.13534D+00    0.16759D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       4689 f-s =       5406 J-s =         86
+ Computed and reference solutions and absolute errors follow:
+  1    0.51657D-08   -0.31006D-13    0.51657D-08
+  2   -0.43352D-09    0.38628D-13    0.43356D-09
+  3    0.18048D-34    0.18049D-34    0.49621D-39
+  4    0.20612D-08    0.20612D-08    0.52696D-16
+  5    0.45400D-04    0.45400D-04    0.35976D-13
+  6    0.13534D+00    0.13534D+00    0.38664D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        736 f-s =        886 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1    0.40032D-03    0.40032D-03    0.25390D-09
+  2    0.40016D-03    0.40016D-03    0.27105D-18
+  3    0.40000D-03    0.40000D-03    0.54210D-18
+  4    0.20000D-01    0.20000D-01    0.17347D-16
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        669 f-s =        804 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.79983D-09
+  2    0.40000D-01    0.40000D-01    0.35540D-10
+  3    0.40016D-01    0.40016D-01    0.32836D-10
+  4    0.40032D-01    0.40032D-01    0.32366D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        659 f-s =        791 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.34159D-09
+  2    0.40000D+00    0.40000D+00    0.15182D-09
+  3    0.41600D+00    0.41600D+00    0.15262D-09
+  4    0.43331D+00    0.43331D+00    0.16313D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        694 f-s =        826 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.22898D-10
+  2    0.40000D+01    0.40000D+01    0.10177D-09
+  3    0.20000D+02    0.20000D+02    0.92899D-09
+  4    0.42000D+03    0.42000D+03    0.38450D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        703 f-s =        839 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.11017D-10
+  2    0.80000D+01    0.80000D+01    0.97931D-10
+  3    0.13600D+03    0.13600D+03    0.33046D-08
+  4    0.37128D+05    0.37128D+05    0.18191D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        747 f-s =       1062 J-s =         17
+ Computed and reference solutions and absolute errors follow:
+  1    0.22242D+02    0.22242D+02    0.45975D-07
+  2    0.27111D+02    0.27111D+02    0.45746D-07
+  3    0.40000D+03    0.40000D+03    0.11369D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        726 f-s =       1019 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.31961D-09
+  2    0.91855D-01    0.91855D-01    0.12741D-09
+  3    0.28416D+02    0.28416D+02    0.31962D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        836 f-s =        997 J-s =         21
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.48135D-10
+  2    0.56309D-02    0.56309D-02    0.93844D-13
+  3    0.36024D+00    0.36024D+00    0.48134D-10
+  4    0.31706D+00    0.31706D+00    0.24114D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =        123 f-s =        189 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.12091D-08
+  2    0.14023D+01    0.14023D+01    0.12091D-08
+  3   -0.18934D-05   -0.18934D-05    0.11997D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        511 f-s =        782 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99164D+00   -0.99164D+00    0.10442D-07
+  2    0.98334D+00    0.98334D+00    0.12008D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         52
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         32
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        291 f-s =        471 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.17599D-09
+  2    0.14760D+00    0.14760D+00    0.17600D-09
+  3    0.57731D-07    0.57731D-07    0.21649D-16
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        234 f-s =        342 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D-07    0.10000D-07    0.45924D-16
+  2   -0.50459D-14   -0.16253D-18    0.50457D-14
+  3    0.59836D-13    0.20260D-16    0.59815D-13
+  4   -0.13093D-10   -0.18531D-14    0.13091D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.20000D+01
+    0.00000D+00
+ Steps =       1041 f-s =       1214 J-s =         21
+ Computed and reference solutions and absolute errors follow:
+  1   -0.11587D+01   -0.11587D+01    0.35081D-07
+  2    0.43047D+00    0.43047D+00    0.36829D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         52
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         32
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =        671 f-s =        918 J-s =         17
+ Computed and reference solutions and absolute errors follow:
+  1    0.42531D-02    0.42531D-02    0.67982D-09
+  2    0.53170D-02    0.53170D-02    0.84541D-09
+  3    0.26276D+02    0.26276D+02    0.48339D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.00000D+00
+   -0.20000D+01
+   -0.10000D+01
+   -0.10000D+01
+ Steps =       1525 f-s =       1801 J-s =         32
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+02    0.20000D+02    0.12546D-08
+  2   -0.20000D+02   -0.20000D+02    0.12561D-08
+  3   -0.22351D-06   -0.22476D-06    0.12545D-08
+  4    0.22351D-06    0.22476D-06    0.12562D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.17600D-02
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         61 f-s =         93 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.16181D-02    0.16181D-02    0.46690D-08
+  2    0.13822D-09    0.13822D-09    0.97684D-15
+  3    0.82515D-11    0.82516D-11    0.62642D-16
+  4    0.12997D-09    0.12997D-09    0.91420D-15
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.76100D+03
+    0.00000D+00
+    0.60000D+03
+    0.10000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =       1299 f-s =       2016 J-s =         32
+ Computed and reference solutions and absolute errors follow:
+  1    0.12111D+04    0.12111D+04    0.24935D-06
+  2    0.12711D-04    0.12711D-04    0.32486D-13
+  3    0.12086D+04    0.12086D+04    0.24750D-06
+  4    0.32420D-03    0.32420D-03    0.32385D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        108
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         38
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        318 f-s =        385 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.14619D-08
+  2    0.13300D-02    0.13300D-02    0.49653D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         56
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.40000D-05
+    0.10000D-05
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        131 f-s =        182 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.32342D-12    0.32359D-12    0.16701D-15
+  2    0.23607D-06    0.23607D-06    0.35734D-12
+  3    0.76394D-13    0.76393D-13    0.42503D-18
+  4    0.76394D-06    0.76393D-06    0.41797D-11
+  5    0.32361D-05    0.32361D-05    0.22604D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         40
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.40000D+01
+    0.11000D+01
+    0.40000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       3984 f-s =       5659 J-s =         78
+ Computed and reference solutions and absolute errors follow:
+  1    0.44183D+01    0.44183D+01    0.26443D-06
+  2    0.12902D+01    0.12902D+01    0.22858D-07
+  3    0.30193D+01    0.30193D+01    0.10225D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         80
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.33650D-06
+    0.82610D-02
+    0.16420D-02
+    0.93800D-05
+ Nonnegativity will be enforced for this problem.
+ Steps =        374 f-s =        631 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1    0.17136D-06    0.17136D-06    0.16876D-15
+  2    0.37136D-02    0.37136D-02    0.37228D-11
+  3    0.61893D-02    0.61893D-02    0.62047D-11
+  4    0.95451D-05    0.95451D-05    0.16874D-15
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        108
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         38
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        591 f-s =        788 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1    0.45400D-04    0.45400D-04    0.33624D-09
+  2    0.20624D-08    0.20612D-08    0.12571D-11
+  3    0.92265D-53    0.28230D-55    0.91982D-53
+  4    0.81954D-50    0.52358D-51    0.76719D-50
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        699 f-s =       1189 J-s =         24
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D-01    0.99999D-01    0.35663D-10
+  2    0.20000D+00    0.20000D+00    0.71323D-10
+  3    0.30000D+00    0.30000D+00    0.99742D-10
+  4    0.40000D+00    0.40000D+00    0.11804D-09
+  5    0.50000D+00    0.50000D+00    0.12435D-09
+  6    0.60000D+00    0.60000D+00    0.11804D-09
+  7    0.70000D+00    0.70000D+00    0.99742D-10
+  8    0.80000D+00    0.80000D+00    0.71323D-10
+  9    0.90000D+00    0.90000D+00    0.35663D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        380
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        762
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        787 f-s =       1056 J-s =         25
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.24106D-11
+  2    0.13685D-01    0.13685D-01    0.24314D-10
+  3    0.15037D+01    0.15037D+01    0.26784D-08
+  4    0.13534D+00    0.13534D+00    0.24719D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        999 f-s =       1684 J-s =         31
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.54749D-09
+  2    0.10354D-10    0.12659D-13    0.10341D-10
+  3   -0.96719D-30    0.19115D-41    0.96719D-30
+  4    0.36837D-45    0.22774D-54    0.36837D-45
+  5   -0.26040D-66    0.00000D+00    0.26040D-66
+  6   -0.24199D-87    0.00000D+00    0.24199D-87
+  7   -0.55395-112    0.00000D+00    0.55395-112
+  8    0.11562-137    0.00000D+00    0.11562-137
+  9   -0.36663-165    0.00000D+00    0.36663-165
+ 10   -0.13090-187    0.00000D+00    0.13090-187
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        450
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        913
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =       3260 f-s =       4267 J-s =         93
+ Computed and reference solutions and absolute errors follow:
+  1    0.97871D-09    0.10042D-08    0.25457D-10
+  2    0.15533D-07    0.18000D-07    0.24674D-08
+  3    0.12038-228    0.00000D+00    0.12038-228
+  4    0.33073-226   -0.60430D-78    0.60430D-78
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        558 f-s =        823 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1   -0.31672D-32    0.61813D-30    0.62130D-30
+  2   -0.11778D-32    0.89637D-30    0.89754D-30
+  3    0.28935D-26    0.27384D-26    0.15509D-27
+  4    0.20625D-08    0.20612D-08    0.13589D-11
+  5    0.45400D-04    0.45400D-04    0.36754D-09
+  6    0.13534D+00    0.13534D+00    0.57914D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        206
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        393
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        598 f-s =        867 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1   -0.17676D-26   -0.10768D-27    0.16599D-26
+  2    0.10594D-25    0.54550D-27    0.10049D-25
+  3    0.48294D-27    0.27385D-26    0.22556D-26
+  4    0.20623D-08    0.20612D-08    0.11767D-11
+  5    0.45400D-04    0.45400D-04    0.32141D-09
+  6    0.13534D+00    0.13534D+00    0.51098D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        206
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        393
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1129 f-s =       1564 J-s =         32
+ Computed and reference solutions and absolute errors follow:
+  1   -0.17084D-11    0.13312D-21    0.17084D-11
+  2    0.29904D-11   -0.23259D-21    0.29904D-11
+  3    0.12799D-34    0.15179D-34    0.23799D-35
+  4    0.20608D-08    0.20612D-08    0.30844D-12
+  5    0.45400D-04    0.45400D-04    0.19133D-09
+  6    0.13534D+00    0.13534D+00    0.16758D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        206
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        393
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       4689 f-s =       6426 J-s =        128
+ Computed and reference solutions and absolute errors follow:
+  1    0.51657D-08   -0.31006D-13    0.51657D-08
+  2   -0.43351D-09    0.38628D-13    0.43355D-09
+  3    0.18048D-34    0.18049D-34    0.49621D-39
+  4    0.20612D-08    0.20612D-08    0.52696D-16
+  5    0.45400D-04    0.45400D-04    0.35973D-13
+  6    0.13534D+00    0.13534D+00    0.38136D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        206
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        393
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        736 f-s =       1006 J-s =         24
+ Computed and reference solutions and absolute errors follow:
+  1    0.40032D-03    0.40032D-03    0.24187D-09
+  2    0.40016D-03    0.40016D-03    0.10842D-18
+  3    0.40000D-03    0.40000D-03    0.54210D-19
+  4    0.20000D-01    0.20000D-01    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        669 f-s =        908 J-s =         22
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.80675D-09
+  2    0.40000D-01    0.40000D-01    0.35851D-10
+  3    0.40016D-01    0.40016D-01    0.33123D-10
+  4    0.40032D-01    0.40032D-01    0.32648D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        654 f-s =        883 J-s =         20
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.11570D-09
+  2    0.40000D+00    0.40000D+00    0.51425D-10
+  3    0.41600D+00    0.41600D+00    0.51688D-10
+  4    0.43331D+00    0.43331D+00    0.55249D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        683 f-s =        944 J-s =         25
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.22533D-10
+  2    0.40000D+01    0.40000D+01    0.10015D-09
+  3    0.20000D+02    0.20000D+02    0.91418D-09
+  4    0.42000D+03    0.42000D+03    0.37837D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        709 f-s =        950 J-s =         22
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.18567D-10
+  2    0.80000D+01    0.80000D+01    0.16504D-09
+  3    0.13600D+03    0.13600D+03    0.55691D-08
+  4    0.37128D+05    0.37128D+05    0.30656D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        741 f-s =       1197 J-s =         29
+ Computed and reference solutions and absolute errors follow:
+  1    0.22242D+02    0.22242D+02    0.36232D-07
+  2    0.27111D+02    0.27111D+02    0.36615D-07
+  3    0.40000D+03    0.40000D+03    0.11369D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        661 f-s =       1049 J-s =         26
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.66998D-10
+  2    0.91855D-01    0.91855D-01    0.27313D-10
+  3    0.28416D+02    0.28416D+02    0.67000D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        832 f-s =       1146 J-s =         28
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.47667D-10
+  2    0.56309D-02    0.56309D-02    0.92943D-13
+  3    0.36024D+00    0.36024D+00    0.47667D-10
+  4    0.31706D+00    0.31706D+00    0.23881D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =        124 f-s =        218 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.34334D-09
+  2    0.14023D+01    0.14023D+01    0.34335D-09
+  3   -0.18934D-05   -0.18934D-05    0.17253D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        519 f-s =        876 J-s =         20
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99164D+00   -0.99164D+00    0.68345D-08
+  2    0.98334D+00    0.98334D+00    0.80470D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         58
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        254 f-s =        443 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.30078D-09
+  2    0.14760D+00    0.14760D+00    0.30078D-09
+  3    0.57731D-07    0.57731D-07    0.37123D-16
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        221 f-s =        359 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D-07    0.10000D-07    0.46135D-15
+  2   -0.79499D-14   -0.16253D-18    0.79498D-14
+  3    0.56312D-12    0.20260D-16    0.56310D-12
+  4   -0.68897D-11   -0.18531D-14    0.68879D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.20000D+01
+    0.00000D+00
+ Steps =       1042 f-s =       1313 J-s =         34
+ Computed and reference solutions and absolute errors follow:
+  1   -0.11587D+01   -0.11587D+01    0.28418D-07
+  2    0.43047D+00    0.43047D+00    0.30748D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         58
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =        615 f-s =        877 J-s =         21
+ Computed and reference solutions and absolute errors follow:
+  1    0.42531D-02    0.42531D-02    0.51456D-09
+  2    0.53170D-02    0.53170D-02    0.64010D-09
+  3    0.26276D+02    0.26276D+02    0.31999D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.00000D+00
+   -0.20000D+01
+   -0.10000D+01
+   -0.10000D+01
+ Steps =       1508 f-s =       2015 J-s =         48
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+02    0.20000D+02    0.89891D-10
+  2   -0.20000D+02   -0.20000D+02    0.89823D-10
+  3   -0.22485D-06   -0.22476D-06    0.90016D-10
+  4    0.22485D-06    0.22476D-06    0.89691D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.17600D-02
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         66 f-s =        136 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.16181D-02    0.16181D-02    0.32760D-08
+  2    0.13824D-09    0.13822D-09    0.18261D-13
+  3    0.82527D-11    0.82516D-11    0.11523D-14
+  4    0.12999D-09    0.12997D-09    0.17109D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.76100D+03
+    0.00000D+00
+    0.60000D+03
+    0.10000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =       1290 f-s =       2270 J-s =         50
+ Computed and reference solutions and absolute errors follow:
+  1    0.12111D+04    0.12111D+04    0.28625D-06
+  2    0.12711D-04    0.12711D-04    0.13935D-12
+  3    0.12086D+04    0.12086D+04    0.28413D-06
+  4    0.32420D-03    0.32420D-03    0.13834D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        128
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        221
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        323 f-s =        419 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.28179D-09
+  2    0.13300D-02    0.13300D-02    0.95704D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         62
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.40000D-05
+    0.10000D-05
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        135 f-s =        228 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.32368D-12    0.32359D-12    0.90820D-16
+  2    0.23605D-06    0.23607D-06    0.19222D-10
+  3    0.76396D-13    0.76393D-13    0.26438D-17
+  4    0.76396D-06    0.76393D-06    0.26313D-10
+  5    0.32364D-05    0.32361D-05    0.37499D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        170
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        303
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.40000D+01
+    0.11000D+01
+    0.40000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       4194 f-s =       6749 J-s =        147
+ Computed and reference solutions and absolute errors follow:
+  1    0.44183D+01    0.44183D+01    0.13681D-06
+  2    0.12902D+01    0.12902D+01    0.11838D-07
+  3    0.30193D+01    0.30193D+01    0.56910D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        153
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.33650D-06
+    0.82610D-02
+    0.16420D-02
+    0.93800D-05
+ Nonnegativity will be enforced for this problem.
+ Steps =        336 f-s =        651 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.17136D-06    0.17136D-06    0.11124D-16
+  2    0.37136D-02    0.37136D-02    0.24541D-12
+  3    0.61893D-02    0.61893D-02    0.40902D-12
+  4    0.95451D-05    0.95451D-05    0.11135D-16
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        128
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        221
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        591 f-s =        712 J-s =         17
+ Computed and reference solutions and absolute errors follow:
+  1    0.45400D-04    0.45400D-04    0.33624D-09
+  2    0.20624D-08    0.20612D-08    0.12571D-11
+  3    0.92264D-53    0.28230D-55    0.91982D-53
+  4    0.81954D-50    0.52358D-51    0.76719D-50
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        699 f-s =        919 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D-01    0.99999D-01    0.35667D-10
+  2    0.20000D+00    0.20000D+00    0.71330D-10
+  3    0.30000D+00    0.30000D+00    0.99751D-10
+  4    0.40000D+00    0.40000D+00    0.11805D-09
+  5    0.50000D+00    0.50000D+00    0.12436D-09
+  6    0.60000D+00    0.60000D+00    0.11805D-09
+  7    0.70000D+00    0.70000D+00    0.99751D-10
+  8    0.80000D+00    0.80000D+00    0.71329D-10
+  9    0.90000D+00    0.90000D+00    0.35666D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        506
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         39
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        787 f-s =        928 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.24111D-11
+  2    0.13685D-01    0.13685D-01    0.24319D-10
+  3    0.15037D+01    0.15037D+01    0.26790D-08
+  4    0.13534D+00    0.13534D+00    0.24724D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        999 f-s =       1284 J-s =         22
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.54749D-09
+  2    0.10354D-10    0.12659D-13    0.10341D-10
+  3   -0.96718D-30    0.19115D-41    0.96718D-30
+  4    0.36838D-45    0.22774D-54    0.36838D-45
+  5   -0.26040D-66    0.00000D+00    0.26040D-66
+  6   -0.24200D-87    0.00000D+00    0.24200D-87
+  7   -0.55396-112    0.00000D+00    0.55396-112
+  8    0.11562-137    0.00000D+00    0.11562-137
+  9   -0.36663-165    0.00000D+00    0.36663-165
+ 10   -0.13090-187    0.00000D+00    0.13090-187
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        610
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         40
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =       3303 f-s =       3833 J-s =         63
+ Computed and reference solutions and absolute errors follow:
+  1    0.98635D-09    0.10042D-08    0.17812D-10
+  2    0.15563D-07    0.18000D-07    0.24371D-08
+  3   -0.38125-228    0.00000D+00    0.38125-228
+  4    0.11116-226   -0.60430D-78    0.60430D-78
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        558 f-s =        697 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1   -0.31673D-32    0.61813D-30    0.62130D-30
+  2   -0.11777D-32    0.89637D-30    0.89754D-30
+  3    0.28935D-26    0.27384D-26    0.15509D-27
+  4    0.20625D-08    0.20612D-08    0.13589D-11
+  5    0.45400D-04    0.45400D-04    0.36754D-09
+  6    0.13534D+00    0.13534D+00    0.57915D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        254
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        598 f-s =        735 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1   -0.17676D-26   -0.10768D-27    0.16599D-26
+  2    0.10594D-25    0.54550D-27    0.10049D-25
+  3    0.48294D-27    0.27385D-26    0.22556D-26
+  4    0.20623D-08    0.20612D-08    0.11767D-11
+  5    0.45400D-04    0.45400D-04    0.32141D-09
+  6    0.13534D+00    0.13534D+00    0.51098D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        254
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1129 f-s =       1324 J-s =         24
+ Computed and reference solutions and absolute errors follow:
+  1   -0.17084D-11    0.13312D-21    0.17084D-11
+  2    0.29903D-11   -0.23259D-21    0.29903D-11
+  3    0.12799D-34    0.15179D-34    0.23800D-35
+  4    0.20608D-08    0.20612D-08    0.30844D-12
+  5    0.45400D-04    0.45400D-04    0.19133D-09
+  6    0.13534D+00    0.13534D+00    0.16759D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        254
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       4689 f-s =       5406 J-s =         86
+ Computed and reference solutions and absolute errors follow:
+  1    0.51657D-08   -0.31006D-13    0.51657D-08
+  2   -0.43352D-09    0.38628D-13    0.43356D-09
+  3    0.18048D-34    0.18049D-34    0.49621D-39
+  4    0.20612D-08    0.20612D-08    0.52696D-16
+  5    0.45400D-04    0.45400D-04    0.35976D-13
+  6    0.13534D+00    0.13534D+00    0.38664D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        254
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        736 f-s =        886 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1    0.40032D-03    0.40032D-03    0.25390D-09
+  2    0.40016D-03    0.40016D-03    0.27105D-18
+  3    0.40000D-03    0.40000D-03    0.54210D-18
+  4    0.20000D-01    0.20000D-01    0.17347D-16
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        669 f-s =        804 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.79983D-09
+  2    0.40000D-01    0.40000D-01    0.35540D-10
+  3    0.40016D-01    0.40016D-01    0.32836D-10
+  4    0.40032D-01    0.40032D-01    0.32366D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        659 f-s =        791 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.34159D-09
+  2    0.40000D+00    0.40000D+00    0.15182D-09
+  3    0.41600D+00    0.41600D+00    0.15262D-09
+  4    0.43331D+00    0.43331D+00    0.16313D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        694 f-s =        826 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.22898D-10
+  2    0.40000D+01    0.40000D+01    0.10177D-09
+  3    0.20000D+02    0.20000D+02    0.92899D-09
+  4    0.42000D+03    0.42000D+03    0.38450D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        703 f-s =        839 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.11017D-10
+  2    0.80000D+01    0.80000D+01    0.97931D-10
+  3    0.13600D+03    0.13600D+03    0.33046D-08
+  4    0.37128D+05    0.37128D+05    0.18191D-05
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        747 f-s =       1062 J-s =         17
+ Computed and reference solutions and absolute errors follow:
+  1    0.22242D+02    0.22242D+02    0.45975D-07
+  2    0.27111D+02    0.27111D+02    0.45746D-07
+  3    0.40000D+03    0.40000D+03    0.11369D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        726 f-s =       1019 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.31961D-09
+  2    0.91855D-01    0.91855D-01    0.12741D-09
+  3    0.28416D+02    0.28416D+02    0.31962D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        836 f-s =        997 J-s =         21
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.48135D-10
+  2    0.56309D-02    0.56309D-02    0.93844D-13
+  3    0.36024D+00    0.36024D+00    0.48134D-10
+  4    0.31706D+00    0.31706D+00    0.24114D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =        123 f-s =        189 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.12091D-08
+  2    0.14023D+01    0.14023D+01    0.12091D-08
+  3   -0.18934D-05   -0.18934D-05    0.11997D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        511 f-s =        782 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99164D+00   -0.99164D+00    0.10442D-07
+  2    0.98334D+00    0.98334D+00    0.12008D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         58
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         32
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        291 f-s =        471 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.17599D-09
+  2    0.14760D+00    0.14760D+00    0.17600D-09
+  3    0.57731D-07    0.57731D-07    0.21649D-16
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        234 f-s =        342 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D-07    0.10000D-07    0.45924D-16
+  2   -0.50459D-14   -0.16253D-18    0.50457D-14
+  3    0.59836D-13    0.20260D-16    0.59815D-13
+  4   -0.13093D-10   -0.18531D-14    0.13091D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.20000D+01
+    0.00000D+00
+ Steps =       1041 f-s =       1214 J-s =         21
+ Computed and reference solutions and absolute errors follow:
+  1   -0.11587D+01   -0.11587D+01    0.35081D-07
+  2    0.43047D+00    0.43047D+00    0.36829D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         58
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         32
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =        671 f-s =        918 J-s =         17
+ Computed and reference solutions and absolute errors follow:
+  1    0.42531D-02    0.42531D-02    0.67982D-09
+  2    0.53170D-02    0.53170D-02    0.84541D-09
+  3    0.26276D+02    0.26276D+02    0.48339D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.00000D+00
+   -0.20000D+01
+   -0.10000D+01
+   -0.10000D+01
+ Steps =       1525 f-s =       1801 J-s =         32
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+02    0.20000D+02    0.12546D-08
+  2   -0.20000D+02   -0.20000D+02    0.12561D-08
+  3   -0.22351D-06   -0.22476D-06    0.12545D-08
+  4    0.22351D-06    0.22476D-06    0.12562D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.17600D-02
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         61 f-s =         93 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.16181D-02    0.16181D-02    0.46690D-08
+  2    0.13822D-09    0.13822D-09    0.97684D-15
+  3    0.82515D-11    0.82516D-11    0.62642D-16
+  4    0.12997D-09    0.12997D-09    0.91420D-15
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.76100D+03
+    0.00000D+00
+    0.60000D+03
+    0.10000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =       1299 f-s =       2016 J-s =         32
+ Computed and reference solutions and absolute errors follow:
+  1    0.12111D+04    0.12111D+04    0.24935D-06
+  2    0.12711D-04    0.12711D-04    0.32486D-13
+  3    0.12086D+04    0.12086D+04    0.24750D-06
+  4    0.32420D-03    0.32420D-03    0.32385D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        144
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         38
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        318 f-s =        385 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.14619D-08
+  2    0.13300D-02    0.13300D-02    0.49653D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         62
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.40000D-05
+    0.10000D-05
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        131 f-s =        182 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.32342D-12    0.32359D-12    0.16701D-15
+  2    0.23607D-06    0.23607D-06    0.35734D-12
+  3    0.76394D-13    0.76393D-13    0.42503D-18
+  4    0.76394D-06    0.76393D-06    0.41797D-11
+  5    0.32361D-05    0.32361D-05    0.22604D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        200
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         40
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.40000D+01
+    0.11000D+01
+    0.40000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       3984 f-s =       5659 J-s =         78
+ Computed and reference solutions and absolute errors follow:
+  1    0.44183D+01    0.44183D+01    0.26443D-06
+  2    0.12902D+01    0.12902D+01    0.22858D-07
+  3    0.30193D+01    0.30193D+01    0.10225D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         98
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =            10  follow.
+  Results for ITOL =            10  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-09
+ Initial solution = 
+    0.33650D-06
+    0.82610D-02
+    0.16420D-02
+    0.93800D-05
+ Nonnegativity will be enforced for this problem.
+ Steps =        374 f-s =        631 J-s =         10
+ Computed and reference solutions and absolute errors follow:
+  1    0.17136D-06    0.17136D-06    0.16876D-15
+  2    0.37136D-02    0.37136D-02    0.37228D-11
+  3    0.61893D-02    0.61893D-02    0.62047D-11
+  4    0.95451D-05    0.95451D-05    0.16874D-15
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        144
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         38
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        868 f-s =       1012 J-s =         21
+ Computed and reference solutions and absolute errors follow:
+  1    0.45400D-04    0.45400D-04    0.33879D-10
+  2    0.20613D-08    0.20612D-08    0.11426D-12
+  3   -0.18992D-65    0.28230D-55    0.28230D-55
+  4   -0.62485D-64    0.52358D-51    0.52358D-51
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        965 f-s =       1270 J-s =         23
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D-01    0.99999D-01    0.95203D-11
+  2    0.20000D+00    0.20000D+00    0.19039D-10
+  3    0.30000D+00    0.30000D+00    0.26626D-10
+  4    0.40000D+00    0.40000D+00    0.31509D-10
+  5    0.50000D+00    0.50000D+00    0.33194D-10
+  6    0.60000D+00    0.60000D+00    0.31509D-10
+  7    0.70000D+00    0.70000D+00    0.26626D-10
+  8    0.80000D+00    0.80000D+00    0.19039D-10
+  9    0.90000D+00    0.90000D+00    0.95203D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        290
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         39
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1112 f-s =       1271 J-s =         23
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.84815D-12
+  2    0.13685D-01    0.13685D-01    0.85572D-11
+  3    0.15037D+01    0.15037D+01    0.94239D-09
+  4    0.13534D+00    0.13534D+00    0.86738D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1447 f-s =       1825 J-s =         31
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.27668D-09
+  2    0.24335D-11    0.12659D-13    0.24208D-11
+  3    0.12345D-37    0.19115D-41    0.12343D-37
+  4    0.29523D-57    0.22774D-54    0.22745D-54
+  5    0.62684D-84    0.00000D+00    0.62684D-84
+  6   -0.11731-113    0.00000D+00    0.11731-113
+  7    0.11346-145    0.00000D+00    0.11346-145
+  8    0.19356-182    0.00000D+00    0.19356-182
+  9    0.19884-214    0.00000D+00    0.19884-214
+ 10   -0.11014-247    0.00000D+00    0.11014-247
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        340
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         40
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =       4822 f-s =       5515 J-s =         88
+ Computed and reference solutions and absolute errors follow:
+  1    0.99105D-09    0.10042D-08    0.13118D-10
+  2    0.17619D-07    0.18000D-07    0.38074D-09
+  3    0.00000D+00    0.00000D+00    0.00000D+00
+  4    0.11716-306   -0.60430D-78    0.60430D-78
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        789 f-s =        950 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1    0.36739D-43    0.61813D-30    0.61813D-30
+  2   -0.90070D-44    0.89637D-30    0.89637D-30
+  3   -0.23309D-31    0.27384D-26    0.27384D-26
+  4    0.20613D-08    0.20612D-08    0.18168D-12
+  5    0.45400D-04    0.45400D-04    0.52756D-10
+  6    0.13534D+00    0.13534D+00    0.89026D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        846 f-s =       1005 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1   -0.24510D-36   -0.10768D-27    0.10768D-27
+  2   -0.23098D-36    0.54550D-27    0.54550D-27
+  3    0.11218D-31    0.27385D-26    0.27385D-26
+  4    0.20613D-08    0.20612D-08    0.17291D-12
+  5    0.45400D-04    0.45400D-04    0.50269D-10
+  6    0.13534D+00    0.13534D+00    0.84673D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1404 f-s =       1635 J-s =         29
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13668D-10    0.13312D-21    0.13668D-10
+  2    0.52820D-10   -0.23259D-21    0.52820D-10
+  3   -0.49376D-33    0.15179D-34    0.50894D-33
+  4    0.20612D-08    0.20612D-08    0.61063D-13
+  5    0.45400D-04    0.45400D-04    0.18400D-10
+  6    0.13534D+00    0.13534D+00    0.34384D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       6016 f-s =       6869 J-s =        107
+ Computed and reference solutions and absolute errors follow:
+  1    0.25305D-10   -0.31006D-13    0.25336D-10
+  2    0.13852D-11    0.38628D-13    0.13466D-11
+  3    0.18048D-34    0.18049D-34    0.44713D-39
+  4    0.20612D-08    0.20612D-08    0.47568D-16
+  5    0.45400D-04    0.45400D-04    0.32466D-13
+  6    0.13534D+00    0.13534D+00    0.21427D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1072 f-s =       1231 J-s =         25
+ Computed and reference solutions and absolute errors follow:
+  1    0.40032D-03    0.40032D-03    0.61056D-11
+  2    0.40016D-03    0.40016D-03    0.54210D-19
+  3    0.40000D-03    0.40000D-03    0.54210D-19
+  4    0.20000D-01    0.20000D-01    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        947 f-s =       1104 J-s =         23
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.18911D-10
+  2    0.40000D-01    0.40000D-01    0.84050D-12
+  3    0.40016D-01    0.40016D-01    0.77655D-12
+  4    0.40032D-01    0.40032D-01    0.76537D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        931 f-s =       1077 J-s =         22
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.69813D-11
+  2    0.40000D+00    0.40000D+00    0.31030D-11
+  3    0.41600D+00    0.41600D+00    0.31189D-11
+  4    0.43331D+00    0.43331D+00    0.33339D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        993 f-s =       1144 J-s =         23
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.18272D-11
+  2    0.40000D+01    0.40000D+01    0.81228D-11
+  3    0.20000D+02    0.20000D+02    0.74142D-10
+  4    0.42000D+03    0.42000D+03    0.30688D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1023 f-s =       1189 J-s =         25
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.27527D-11
+  2    0.80000D+01    0.80000D+01    0.24471D-10
+  3    0.13600D+03    0.13600D+03    0.82582D-09
+  4    0.37128D+05    0.37128D+05    0.45457D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        903 f-s =       1203 J-s =         21
+ Computed and reference solutions and absolute errors follow:
+  1    0.22242D+02    0.22242D+02    0.84356D-08
+  2    0.27111D+02    0.27111D+02    0.85188D-08
+  3    0.40000D+03    0.40000D+03    0.11369D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        930 f-s =       1234 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.49509D-10
+  2    0.91855D-01    0.91855D-01    0.19533D-10
+  3    0.28416D+02    0.28416D+02    0.49510D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =       1163 f-s =       1370 J-s =         27
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.18862D-10
+  2    0.56309D-02    0.56309D-02    0.36774D-13
+  3    0.36024D+00    0.36024D+00    0.18858D-10
+  4    0.31706D+00    0.31706D+00    0.94483D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =        182 f-s =        337 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.10899D-09
+  2    0.14023D+01    0.14023D+01    0.10899D-09
+  3   -0.18934D-05   -0.18934D-05    0.42517D-15
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        653 f-s =        944 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99164D+00   -0.99164D+00    0.14916D-08
+  2    0.98334D+00    0.98334D+00    0.16604D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         52
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         32
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        334 f-s =        484 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.27951D-10
+  2    0.14760D+00    0.14760D+00    0.27952D-10
+  3    0.57731D-07    0.57731D-07    0.34369D-17
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        390 f-s =        527 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D-07    0.10000D-07    0.73232D-17
+  2   -0.33669D-16   -0.16253D-18    0.33506D-16
+  3   -0.13478D-12    0.20260D-16    0.13480D-12
+  4   -0.22915D-10   -0.18531D-14    0.22913D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.20000D+01
+    0.00000D+00
+ Steps =       1504 f-s =       1727 J-s =         30
+ Computed and reference solutions and absolute errors follow:
+  1   -0.11587D+01   -0.11587D+01    0.53134D-08
+  2    0.43047D+00    0.43047D+00    0.56664D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         52
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         32
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =        841 f-s =       1080 J-s =         21
+ Computed and reference solutions and absolute errors follow:
+  1    0.42531D-02    0.42531D-02    0.50737D-10
+  2    0.53170D-02    0.53170D-02    0.63119D-10
+  3    0.26276D+02    0.26276D+02    0.44747D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.00000D+00
+   -0.20000D+01
+   -0.10000D+01
+   -0.10000D+01
+ Steps =       2182 f-s =       2483 J-s =         43
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+02    0.20000D+02    0.94680D-11
+  2   -0.20000D+02   -0.20000D+02    0.94538D-11
+  3   -0.22477D-06   -0.22476D-06    0.94527D-11
+  4    0.22477D-06    0.22476D-06    0.94650D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.17600D-02
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         85 f-s =        127 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.16181D-02    0.16181D-02    0.82755D-09
+  2    0.13822D-09    0.13822D-09    0.10294D-15
+  3    0.82516D-11    0.82516D-11    0.56397D-17
+  4    0.12997D-09    0.12997D-09    0.10858D-15
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.76100D+03
+    0.00000D+00
+    0.60000D+03
+    0.10000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =       1881 f-s =       2767 J-s =         39
+ Computed and reference solutions and absolute errors follow:
+  1    0.12111D+04    0.12111D+04    0.41034D-07
+  2    0.12711D-04    0.12711D-04    0.53360D-14
+  3    0.12086D+04    0.12086D+04    0.40730D-07
+  4    0.32420D-03    0.32420D-03    0.53195D-14
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        108
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         38
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        445 f-s =        533 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.16732D-09
+  2    0.13300D-02    0.13300D-02    0.56834D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         56
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.40000D-05
+    0.10000D-05
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        144 f-s =        201 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.21910D-12    0.32359D-12    0.10450D-12
+  2    0.23606D-06    0.23607D-06    0.45997D-11
+  3    0.76399D-13    0.76393D-13    0.59835D-17
+  4    0.76392D-06    0.76393D-06    0.10776D-10
+  5    0.32361D-05    0.32361D-05    0.17536D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         40
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.40000D+01
+    0.11000D+01
+    0.40000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       5666 f-s =       7821 J-s =        104
+ Computed and reference solutions and absolute errors follow:
+  1    0.44183D+01    0.44183D+01    0.28879D-07
+  2    0.12902D+01    0.12902D+01    0.25059D-08
+  3    0.30193D+01    0.30193D+01    0.11387D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         80
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.33650D-06
+    0.82610D-02
+    0.16420D-02
+    0.93800D-05
+ Nonnegativity will be enforced for this problem.
+ Steps =        429 f-s =        678 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1    0.17136D-06    0.17136D-06    0.66978D-16
+  2    0.37136D-02    0.37136D-02    0.14776D-11
+  3    0.61893D-02    0.61893D-02    0.24626D-11
+  4    0.95451D-05    0.95451D-05    0.66982D-16
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        108
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         38
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        868 f-s =       1128 J-s =         25
+ Computed and reference solutions and absolute errors follow:
+  1    0.45400D-04    0.45400D-04    0.33879D-10
+  2    0.20613D-08    0.20612D-08    0.11426D-12
+  3   -0.18973D-65    0.28230D-55    0.28230D-55
+  4   -0.62350D-64    0.52358D-51    0.52358D-51
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        987 f-s =       1640 J-s =         31
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D-01    0.99999D-01    0.93099D-11
+  2    0.20000D+00    0.20000D+00    0.18619D-10
+  3    0.30000D+00    0.30000D+00    0.26037D-10
+  4    0.40000D+00    0.40000D+00    0.30813D-10
+  5    0.50000D+00    0.50000D+00    0.32460D-10
+  6    0.60000D+00    0.60000D+00    0.30813D-10
+  7    0.70000D+00    0.70000D+00    0.26037D-10
+  8    0.80000D+00    0.80000D+00    0.18619D-10
+  9    0.90000D+00    0.90000D+00    0.93098D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        380
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        762
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1112 f-s =       1451 J-s =         34
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.84928D-12
+  2    0.13685D-01    0.13685D-01    0.85686D-11
+  3    0.15037D+01    0.15037D+01    0.94365D-09
+  4    0.13534D+00    0.13534D+00    0.86854D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1447 f-s =       2395 J-s =         44
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.27666D-09
+  2    0.24327D-11    0.12659D-13    0.24201D-11
+  3    0.12340D-37    0.19115D-41    0.12338D-37
+  4    0.29491D-57    0.22774D-54    0.22745D-54
+  5    0.62581D-84    0.00000D+00    0.62581D-84
+  6   -0.11707-113    0.00000D+00    0.11707-113
+  7    0.11343-145    0.00000D+00    0.11343-145
+  8    0.21349-182    0.00000D+00    0.21349-182
+  9    0.19806-214    0.00000D+00    0.19806-214
+ 10   -0.10979-247    0.00000D+00    0.10979-247
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        450
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        913
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =       4792 f-s =       6182 J-s =        130
+ Computed and reference solutions and absolute errors follow:
+  1    0.99104D-09    0.10042D-08    0.13125D-10
+  2    0.17619D-07    0.18000D-07    0.38080D-09
+  3    0.00000D+00    0.00000D+00    0.00000D+00
+  4    0.00000D+00   -0.60430D-78    0.60430D-78
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        789 f-s =       1136 J-s =         25
+ Computed and reference solutions and absolute errors follow:
+  1    0.36739D-43    0.61813D-30    0.61813D-30
+  2   -0.90068D-44    0.89637D-30    0.89637D-30
+  3   -0.23309D-31    0.27384D-26    0.27384D-26
+  4    0.20613D-08    0.20612D-08    0.18168D-12
+  5    0.45400D-04    0.45400D-04    0.52756D-10
+  6    0.13534D+00    0.13534D+00    0.89031D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        206
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        393
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        846 f-s =       1203 J-s =         26
+ Computed and reference solutions and absolute errors follow:
+  1   -0.24509D-36   -0.10768D-27    0.10768D-27
+  2   -0.23094D-36    0.54550D-27    0.54550D-27
+  3    0.11218D-31    0.27385D-26    0.27385D-26
+  4    0.20613D-08    0.20612D-08    0.17291D-12
+  5    0.45400D-04    0.45400D-04    0.50269D-10
+  6    0.13534D+00    0.13534D+00    0.84665D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        206
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        393
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1404 f-s =       1953 J-s =         41
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13667D-10    0.13312D-21    0.13667D-10
+  2    0.52821D-10   -0.23259D-21    0.52821D-10
+  3   -0.49376D-33    0.15179D-34    0.50894D-33
+  4    0.20612D-08    0.20612D-08    0.61063D-13
+  5    0.45400D-04    0.45400D-04    0.18400D-10
+  6    0.13534D+00    0.13534D+00    0.34371D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        206
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        393
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       6014 f-s =       8107 J-s =        157
+ Computed and reference solutions and absolute errors follow:
+  1    0.34430D-10   -0.31006D-13    0.34461D-10
+  2    0.14632D-10    0.38628D-13    0.14593D-10
+  3    0.18048D-34    0.18049D-34    0.44981D-39
+  4    0.20612D-08    0.20612D-08    0.47848D-16
+  5    0.45400D-04    0.45400D-04    0.32657D-13
+  6    0.13534D+00    0.13534D+00    0.21400D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        206
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        393
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1072 f-s =       1388 J-s =         32
+ Computed and reference solutions and absolute errors follow:
+  1    0.40032D-03    0.40032D-03    0.61009D-11
+  2    0.40016D-03    0.40016D-03    0.00000D+00
+  3    0.40000D-03    0.40000D-03    0.00000D+00
+  4    0.20000D-01    0.20000D-01    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        947 f-s =       1245 J-s =         29
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.18915D-10
+  2    0.40000D-01    0.40000D-01    0.84066D-12
+  3    0.40016D-01    0.40016D-01    0.77671D-12
+  4    0.40032D-01    0.40032D-01    0.76554D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        931 f-s =       1214 J-s =         28
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.69285D-11
+  2    0.40000D+00    0.40000D+00    0.30794D-11
+  3    0.41600D+00    0.41600D+00    0.30952D-11
+  4    0.43331D+00    0.43331D+00    0.33085D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        993 f-s =       1301 J-s =         31
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.16869D-11
+  2    0.40000D+01    0.40000D+01    0.74989D-11
+  3    0.20000D+02    0.20000D+02    0.68443D-10
+  4    0.42000D+03    0.42000D+03    0.28331D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1024 f-s =       1315 J-s =         28
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.27398D-11
+  2    0.80000D+01    0.80000D+01    0.24360D-10
+  3    0.13600D+03    0.13600D+03    0.82201D-09
+  4    0.37128D+05    0.37128D+05    0.45246D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        887 f-s =       1253 J-s =         30
+ Computed and reference solutions and absolute errors follow:
+  1    0.22242D+02    0.22242D+02    0.11165D-07
+  2    0.27111D+02    0.27111D+02    0.11150D-07
+  3    0.40000D+03    0.40000D+03    0.11369D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        947 f-s =       1419 J-s =         34
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.39866D-10
+  2    0.91855D-01    0.91855D-01    0.14378D-10
+  3    0.28416D+02    0.28416D+02    0.39867D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =       1147 f-s =       1544 J-s =         37
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.19429D-10
+  2    0.56309D-02    0.56309D-02    0.37894D-13
+  3    0.36024D+00    0.36024D+00    0.19432D-10
+  4    0.31706D+00    0.31706D+00    0.97339D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =        176 f-s =        310 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.18284D-09
+  2    0.14023D+01    0.14023D+01    0.18284D-09
+  3   -0.18934D-05   -0.18934D-05    0.85269D-15
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        643 f-s =        983 J-s =         23
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99164D+00   -0.99164D+00    0.13512D-08
+  2    0.98334D+00    0.98334D+00    0.15352D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         58
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        355 f-s =        602 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.41518D-10
+  2    0.14760D+00    0.14760D+00    0.41518D-10
+  3    0.57731D-07    0.57731D-07    0.51057D-17
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        363 f-s =        597 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D-07    0.10000D-07    0.14383D-17
+  2   -0.40927D-16   -0.16253D-18    0.40764D-16
+  3    0.70832D-14    0.20260D-16    0.70630D-14
+  4   -0.27359D-12   -0.18531D-14    0.27174D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.20000D+01
+    0.00000D+00
+ Steps =       1525 f-s =       1881 J-s =         48
+ Computed and reference solutions and absolute errors follow:
+  1   -0.11587D+01   -0.11587D+01    0.51991D-08
+  2    0.43047D+00    0.43047D+00    0.55395D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         58
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =        800 f-s =       1059 J-s =         25
+ Computed and reference solutions and absolute errors follow:
+  1    0.42531D-02    0.42531D-02    0.71342D-10
+  2    0.53170D-02    0.53170D-02    0.88878D-10
+  3    0.26276D+02    0.26276D+02    0.43679D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.00000D+00
+   -0.20000D+01
+   -0.10000D+01
+   -0.10000D+01
+ Steps =       2179 f-s =       2813 J-s =         62
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+02    0.20000D+02    0.76380D-10
+  2   -0.20000D+02   -0.20000D+02    0.73108D-10
+  3   -0.22469D-06   -0.22476D-06    0.75404D-10
+  4    0.22469D-06    0.22476D-06    0.74071D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.17600D-02
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         86 f-s =        172 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.16181D-02    0.16181D-02    0.91000D-09
+  2    0.13822D-09    0.13822D-09    0.10766D-15
+  3    0.82516D-11    0.82516D-11    0.25663D-17
+  4    0.12997D-09    0.12997D-09    0.11025D-15
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.76100D+03
+    0.00000D+00
+    0.60000D+03
+    0.10000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =       1673 f-s =       2706 J-s =         56
+ Computed and reference solutions and absolute errors follow:
+  1    0.12111D+04    0.12111D+04    0.34577D-07
+  2    0.12711D-04    0.12711D-04    0.45017D-14
+  3    0.12086D+04    0.12086D+04    0.34322D-07
+  4    0.32420D-03    0.32420D-03    0.44878D-14
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        128
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        221
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        442 f-s =        569 J-s =         15
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.20958D-09
+  2    0.13300D-02    0.13300D-02    0.71186D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         62
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.40000D-05
+    0.10000D-05
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        155 f-s =        259 J-s =          6
+ Computed and reference solutions and absolute errors follow:
+  1    0.32168D-12    0.32359D-12    0.19109D-14
+  2    0.23607D-06    0.23607D-06    0.17975D-11
+  3    0.76393D-13    0.76393D-13    0.20232D-18
+  4    0.76394D-06    0.76393D-06    0.62854D-11
+  5    0.32361D-05    0.32361D-05    0.20636D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        170
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        303
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.40000D+01
+    0.11000D+01
+    0.40000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       5627 f-s =       8589 J-s =        193
+ Computed and reference solutions and absolute errors follow:
+  1    0.44183D+01    0.44183D+01    0.76714D-08
+  2    0.12902D+01    0.12902D+01    0.65745D-09
+  3    0.30193D+01    0.30193D+01    0.35015D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        153
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.33650D-06
+    0.82610D-02
+    0.16420D-02
+    0.93800D-05
+ Nonnegativity will be enforced for this problem.
+ Steps =        457 f-s =        876 J-s =         18
+ Computed and reference solutions and absolute errors follow:
+  1    0.17136D-06    0.17136D-06    0.47288D-16
+  2    0.37136D-02    0.37136D-02    0.10432D-11
+  3    0.61893D-02    0.61893D-02    0.17387D-11
+  4    0.95451D-05    0.95451D-05    0.47286D-16
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        128
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        221
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        868 f-s =       1012 J-s =         21
+ Computed and reference solutions and absolute errors follow:
+  1    0.45400D-04    0.45400D-04    0.33879D-10
+  2    0.20613D-08    0.20612D-08    0.11426D-12
+  3   -0.18992D-65    0.28230D-55    0.28230D-55
+  4   -0.62485D-64    0.52358D-51    0.52358D-51
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        965 f-s =       1270 J-s =         23
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D-01    0.99999D-01    0.95203D-11
+  2    0.20000D+00    0.20000D+00    0.19039D-10
+  3    0.30000D+00    0.30000D+00    0.26626D-10
+  4    0.40000D+00    0.40000D+00    0.31509D-10
+  5    0.50000D+00    0.50000D+00    0.33194D-10
+  6    0.60000D+00    0.60000D+00    0.31509D-10
+  7    0.70000D+00    0.70000D+00    0.26626D-10
+  8    0.80000D+00    0.80000D+00    0.19039D-10
+  9    0.90000D+00    0.90000D+00    0.95203D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        506
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         39
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1112 f-s =       1271 J-s =         23
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.84815D-12
+  2    0.13685D-01    0.13685D-01    0.85572D-11
+  3    0.15037D+01    0.15037D+01    0.94239D-09
+  4    0.13534D+00    0.13534D+00    0.86738D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1447 f-s =       1825 J-s =         31
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.27668D-09
+  2    0.24335D-11    0.12659D-13    0.24208D-11
+  3    0.12345D-37    0.19115D-41    0.12343D-37
+  4    0.29523D-57    0.22774D-54    0.22745D-54
+  5    0.62684D-84    0.00000D+00    0.62684D-84
+  6   -0.11731-113    0.00000D+00    0.11731-113
+  7    0.11346-145    0.00000D+00    0.11346-145
+  8    0.19356-182    0.00000D+00    0.19356-182
+  9    0.19884-214    0.00000D+00    0.19884-214
+ 10   -0.11014-247    0.00000D+00    0.11014-247
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        610
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         40
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =       4822 f-s =       5515 J-s =         88
+ Computed and reference solutions and absolute errors follow:
+  1    0.99105D-09    0.10042D-08    0.13118D-10
+  2    0.17619D-07    0.18000D-07    0.38074D-09
+  3    0.00000D+00    0.00000D+00    0.00000D+00
+  4    0.11716-306   -0.60430D-78    0.60430D-78
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        789 f-s =        950 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1    0.36739D-43    0.61813D-30    0.61813D-30
+  2   -0.90070D-44    0.89637D-30    0.89637D-30
+  3   -0.23309D-31    0.27384D-26    0.27384D-26
+  4    0.20613D-08    0.20612D-08    0.18168D-12
+  5    0.45400D-04    0.45400D-04    0.52756D-10
+  6    0.13534D+00    0.13534D+00    0.89026D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        254
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        846 f-s =       1005 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1   -0.24510D-36   -0.10768D-27    0.10768D-27
+  2   -0.23098D-36    0.54550D-27    0.54550D-27
+  3    0.11218D-31    0.27385D-26    0.27385D-26
+  4    0.20613D-08    0.20612D-08    0.17291D-12
+  5    0.45400D-04    0.45400D-04    0.50269D-10
+  6    0.13534D+00    0.13534D+00    0.84673D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        254
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1404 f-s =       1635 J-s =         29
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13668D-10    0.13312D-21    0.13668D-10
+  2    0.52820D-10   -0.23259D-21    0.52820D-10
+  3   -0.49376D-33    0.15179D-34    0.50894D-33
+  4    0.20612D-08    0.20612D-08    0.61063D-13
+  5    0.45400D-04    0.45400D-04    0.18400D-10
+  6    0.13534D+00    0.13534D+00    0.34384D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        254
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       6016 f-s =       6869 J-s =        107
+ Computed and reference solutions and absolute errors follow:
+  1    0.25305D-10   -0.31006D-13    0.25336D-10
+  2    0.13852D-11    0.38628D-13    0.13466D-11
+  3    0.18048D-34    0.18049D-34    0.44713D-39
+  4    0.20612D-08    0.20612D-08    0.47568D-16
+  5    0.45400D-04    0.45400D-04    0.32466D-13
+  6    0.13534D+00    0.13534D+00    0.21427D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        254
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1072 f-s =       1231 J-s =         25
+ Computed and reference solutions and absolute errors follow:
+  1    0.40032D-03    0.40032D-03    0.61056D-11
+  2    0.40016D-03    0.40016D-03    0.54210D-19
+  3    0.40000D-03    0.40000D-03    0.54210D-19
+  4    0.20000D-01    0.20000D-01    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        947 f-s =       1104 J-s =         23
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.18911D-10
+  2    0.40000D-01    0.40000D-01    0.84050D-12
+  3    0.40016D-01    0.40016D-01    0.77655D-12
+  4    0.40032D-01    0.40032D-01    0.76537D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        931 f-s =       1077 J-s =         22
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.69813D-11
+  2    0.40000D+00    0.40000D+00    0.31030D-11
+  3    0.41600D+00    0.41600D+00    0.31189D-11
+  4    0.43331D+00    0.43331D+00    0.33339D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =        993 f-s =       1144 J-s =         23
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.18272D-11
+  2    0.40000D+01    0.40000D+01    0.81228D-11
+  3    0.20000D+02    0.20000D+02    0.74142D-10
+  4    0.42000D+03    0.42000D+03    0.30688D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1023 f-s =       1189 J-s =         25
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.27527D-11
+  2    0.80000D+01    0.80000D+01    0.24471D-10
+  3    0.13600D+03    0.13600D+03    0.82582D-09
+  4    0.37128D+05    0.37128D+05    0.45457D-06
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        903 f-s =       1203 J-s =         21
+ Computed and reference solutions and absolute errors follow:
+  1    0.22242D+02    0.22242D+02    0.84356D-08
+  2    0.27111D+02    0.27111D+02    0.85188D-08
+  3    0.40000D+03    0.40000D+03    0.11369D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        930 f-s =       1234 J-s =         19
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.49509D-10
+  2    0.91855D-01    0.91855D-01    0.19533D-10
+  3    0.28416D+02    0.28416D+02    0.49510D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =       1163 f-s =       1370 J-s =         27
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.18862D-10
+  2    0.56309D-02    0.56309D-02    0.36774D-13
+  3    0.36024D+00    0.36024D+00    0.18858D-10
+  4    0.31706D+00    0.31706D+00    0.94483D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =        182 f-s =        337 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.10899D-09
+  2    0.14023D+01    0.14023D+01    0.10899D-09
+  3   -0.18934D-05   -0.18934D-05    0.42517D-15
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        653 f-s =        944 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99164D+00   -0.99164D+00    0.14916D-08
+  2    0.98334D+00    0.98334D+00    0.16604D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         58
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         32
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        334 f-s =        484 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.27951D-10
+  2    0.14760D+00    0.14760D+00    0.27952D-10
+  3    0.57731D-07    0.57731D-07    0.34369D-17
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        390 f-s =        527 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D-07    0.10000D-07    0.73232D-17
+  2   -0.33669D-16   -0.16253D-18    0.33506D-16
+  3   -0.13478D-12    0.20260D-16    0.13480D-12
+  4   -0.22915D-10   -0.18531D-14    0.22913D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.20000D+01
+    0.00000D+00
+ Steps =       1504 f-s =       1727 J-s =         30
+ Computed and reference solutions and absolute errors follow:
+  1   -0.11587D+01   -0.11587D+01    0.53134D-08
+  2    0.43047D+00    0.43047D+00    0.56664D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         58
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         32
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =        841 f-s =       1080 J-s =         21
+ Computed and reference solutions and absolute errors follow:
+  1    0.42531D-02    0.42531D-02    0.50737D-10
+  2    0.53170D-02    0.53170D-02    0.63119D-10
+  3    0.26276D+02    0.26276D+02    0.44747D-08
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.00000D+00
+   -0.20000D+01
+   -0.10000D+01
+   -0.10000D+01
+ Steps =       2182 f-s =       2483 J-s =         43
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+02    0.20000D+02    0.94680D-11
+  2   -0.20000D+02   -0.20000D+02    0.94538D-11
+  3   -0.22477D-06   -0.22476D-06    0.94527D-11
+  4    0.22477D-06    0.22476D-06    0.94650D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.17600D-02
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =         85 f-s =        127 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.16181D-02    0.16181D-02    0.82755D-09
+  2    0.13822D-09    0.13822D-09    0.10294D-15
+  3    0.82516D-11    0.82516D-11    0.56397D-17
+  4    0.12997D-09    0.12997D-09    0.10858D-15
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.76100D+03
+    0.00000D+00
+    0.60000D+03
+    0.10000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =       1881 f-s =       2767 J-s =         39
+ Computed and reference solutions and absolute errors follow:
+  1    0.12111D+04    0.12111D+04    0.41034D-07
+  2    0.12711D-04    0.12711D-04    0.53360D-14
+  3    0.12086D+04    0.12086D+04    0.40730D-07
+  4    0.32420D-03    0.32420D-03    0.53195D-14
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        144
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         38
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        445 f-s =        533 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.16732D-09
+  2    0.13300D-02    0.13300D-02    0.56834D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         62
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.40000D-05
+    0.10000D-05
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        144 f-s =        201 J-s =          3
+ Computed and reference solutions and absolute errors follow:
+  1    0.21910D-12    0.32359D-12    0.10450D-12
+  2    0.23606D-06    0.23607D-06    0.45997D-11
+  3    0.76399D-13    0.76393D-13    0.59835D-17
+  4    0.76392D-06    0.76393D-06    0.10776D-10
+  5    0.32361D-05    0.32361D-05    0.17536D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        200
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         40
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.40000D+01
+    0.11000D+01
+    0.40000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       5666 f-s =       7821 J-s =        104
+ Computed and reference solutions and absolute errors follow:
+  1    0.44183D+01    0.44183D+01    0.28879D-07
+  2    0.12902D+01    0.12902D+01    0.25059D-08
+  3    0.30193D+01    0.30193D+01    0.11387D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         98
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =            11  follow.
+  Results for ITOL =            11  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-10
+ Initial solution = 
+    0.33650D-06
+    0.82610D-02
+    0.16420D-02
+    0.93800D-05
+ Nonnegativity will be enforced for this problem.
+ Steps =        429 f-s =        678 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1    0.17136D-06    0.17136D-06    0.66978D-16
+  2    0.37136D-02    0.37136D-02    0.14776D-11
+  3    0.61893D-02    0.61893D-02    0.24626D-11
+  4    0.95451D-05    0.95451D-05    0.66982D-16
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        144
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         38
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1239 f-s =       1417 J-s =         28
+ Computed and reference solutions and absolute errors follow:
+  1    0.45400D-04    0.45400D-04    0.68578D-11
+  2    0.20612D-08    0.20612D-08    0.22718D-13
+  3    0.46255D-83    0.28230D-55    0.28230D-55
+  4   -0.54052D-81    0.52358D-51    0.52358D-51
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =       1410 f-s =       1771 J-s =         31
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D-01    0.99999D-01    0.15778D-11
+  2    0.20000D+00    0.20000D+00    0.31554D-11
+  3    0.30000D+00    0.30000D+00    0.44129D-11
+  4    0.40000D+00    0.40000D+00    0.52221D-11
+  5    0.50000D+00    0.50000D+00    0.55014D-11
+  6    0.60000D+00    0.60000D+00    0.52222D-11
+  7    0.70000D+00    0.70000D+00    0.44128D-11
+  8    0.80000D+00    0.80000D+00    0.31556D-11
+  9    0.90000D+00    0.90000D+00    0.15780D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        290
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         39
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1659 f-s =       1884 J-s =         34
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.43045D-13
+  2    0.13685D-01    0.13685D-01    0.43450D-12
+  3    0.15037D+01    0.15037D+01    0.47828D-10
+  4    0.13534D+00    0.13534D+00    0.43825D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       2088 f-s =       2581 J-s =         42
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.20549D-10
+  2    0.17334D-13    0.12659D-13    0.46754D-14
+  3    0.13241D-46    0.19115D-41    0.19115D-41
+  4   -0.20177D-75    0.22774D-54    0.22774D-54
+  5    0.88157-109    0.00000D+00    0.88157-109
+  6   -0.91772-148    0.00000D+00    0.91772-148
+  7   -0.28131-190    0.00000D+00    0.28131-190
+  8    0.74089-237    0.00000D+00    0.74089-237
+  9   -0.38758-283    0.00000D+00    0.38758-283
+ 10    0.00000D+00    0.00000D+00    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        340
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         40
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =       6934 f-s =       7861 J-s =        124
+ Computed and reference solutions and absolute errors follow:
+  1    0.10008D-08    0.10042D-08    0.33650D-11
+  2    0.17942D-07    0.18000D-07    0.58109D-10
+  3    0.00000D+00    0.00000D+00    0.00000D+00
+  4   -0.68963-306   -0.60430D-78    0.60430D-78
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1126 f-s =       1328 J-s =         24
+ Computed and reference solutions and absolute errors follow:
+  1   -0.32339D-55    0.61813D-30    0.61813D-30
+  2    0.69701D-56    0.89637D-30    0.89637D-30
+  3    0.19970D-34    0.27384D-26    0.27384D-26
+  4    0.20612D-08    0.20612D-08    0.27424D-13
+  5    0.45400D-04    0.45400D-04    0.82189D-11
+  6    0.13534D+00    0.13534D+00    0.15064D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1254 f-s =       1463 J-s =         27
+ Computed and reference solutions and absolute errors follow:
+  1   -0.10535D-48   -0.10768D-27    0.10768D-27
+  2    0.73959D-50    0.54550D-27    0.54550D-27
+  3    0.21256D-34    0.27385D-26    0.27385D-26
+  4    0.20612D-08    0.20612D-08    0.26897D-13
+  5    0.45400D-04    0.45400D-04    0.80714D-11
+  6    0.13534D+00    0.13534D+00    0.14458D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       2020 f-s =       2315 J-s =         40
+ Computed and reference solutions and absolute errors follow:
+  1    0.23656D-21    0.13312D-21    0.10344D-21
+  2    0.42183D-20   -0.23259D-21    0.44509D-20
+  3    0.19920D-34    0.15179D-34    0.47419D-35
+  4    0.20612D-08    0.20612D-08    0.18479D-13
+  5    0.45400D-04    0.45400D-04    0.54995D-11
+  6    0.13534D+00    0.13534D+00    0.12144D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       7702 f-s =       8751 J-s =        136
+ Computed and reference solutions and absolute errors follow:
+  1   -0.39985D-11   -0.31006D-13    0.39675D-11
+  2    0.66998D-11    0.38628D-13    0.66611D-11
+  3    0.18048D-34    0.18049D-34    0.38599D-39
+  4    0.20612D-08    0.20612D-08    0.41328D-16
+  5    0.45400D-04    0.45400D-04    0.28238D-13
+  6    0.13534D+00    0.13534D+00    0.21844D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        164
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1548 f-s =       1749 J-s =         34
+ Computed and reference solutions and absolute errors follow:
+  1    0.40032D-03    0.40032D-03    0.95569D-12
+  2    0.40016D-03    0.40016D-03    0.00000D+00
+  3    0.40000D-03    0.40000D-03    0.54210D-19
+  4    0.20000D-01    0.20000D-01    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1399 f-s =       1592 J-s =         31
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.43643D-11
+  2    0.40000D-01    0.40000D-01    0.19399D-12
+  3    0.40016D-01    0.40016D-01    0.17924D-12
+  4    0.40032D-01    0.40032D-01    0.17666D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1385 f-s =       1573 J-s =         30
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.22922D-11
+  2    0.40000D+00    0.40000D+00    0.10189D-11
+  3    0.41600D+00    0.41600D+00    0.10240D-11
+  4    0.43331D+00    0.43331D+00    0.10948D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1438 f-s =       1626 J-s =         31
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.24492D-12
+  2    0.40000D+01    0.40000D+01    0.10902D-11
+  3    0.20000D+02    0.20000D+02    0.99512D-11
+  4    0.42000D+03    0.42000D+03    0.41189D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1472 f-s =       1669 J-s =         32
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.38991D-12
+  2    0.80000D+01    0.80000D+01    0.34701D-11
+  3    0.13600D+03    0.13600D+03    0.11713D-09
+  4    0.37128D+05    0.37128D+05    0.64443D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =       1129 f-s =       1372 J-s =         24
+ Computed and reference solutions and absolute errors follow:
+  1    0.22242D+02    0.22242D+02    0.21392D-08
+  2    0.27111D+02    0.27111D+02    0.21066D-08
+  3    0.40000D+03    0.40000D+03    0.11369D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =       1137 f-s =       1382 J-s =         22
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.58165D-12
+  2    0.91855D-01    0.91855D-01    0.36550D-12
+  3    0.28416D+02    0.28416D+02    0.58204D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =       1657 f-s =       1900 J-s =         36
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.13811D-12
+  2    0.56309D-02    0.56309D-02    0.26194D-15
+  3    0.36024D+00    0.36024D+00    0.13961D-12
+  4    0.31706D+00    0.31706D+00    0.71276D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =        259 f-s =        434 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.26102D-10
+  2    0.14023D+01    0.14023D+01    0.26099D-10
+  3   -0.18934D-05   -0.18934D-05    0.10627D-15
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =       1045 f-s =       1500 J-s =         24
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99164D+00   -0.99164D+00    0.99028D-10
+  2    0.98334D+00    0.98334D+00    0.11166D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         52
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         32
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        451 f-s =        628 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.43796D-11
+  2    0.14760D+00    0.14760D+00    0.43804D-11
+  3    0.57731D-07    0.57731D-07    0.53875D-18
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        418 f-s =        559 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D-07    0.10000D-07    0.29205D-16
+  2   -0.39393D-15   -0.16253D-18    0.39376D-15
+  3   -0.52729D-14    0.20260D-16    0.52931D-14
+  4    0.50848D-13   -0.18531D-14    0.52701D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.20000D+01
+    0.00000D+00
+ Steps =       2195 f-s =       2491 J-s =         41
+ Computed and reference solutions and absolute errors follow:
+  1   -0.11587D+01   -0.11587D+01    0.78175D-09
+  2    0.43047D+00    0.43047D+00    0.83014D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         52
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         32
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =       1134 f-s =       1314 J-s =         26
+ Computed and reference solutions and absolute errors follow:
+  1    0.42531D-02    0.42531D-02    0.88912D-11
+  2    0.53170D-02    0.53170D-02    0.11095D-10
+  3    0.26276D+02    0.26276D+02    0.30349D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         74
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.00000D+00
+   -0.20000D+01
+   -0.10000D+01
+   -0.10000D+01
+ Steps =       3190 f-s =       3644 J-s =         61
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+02    0.20000D+02    0.55245D-11
+  2   -0.20000D+02   -0.20000D+02    0.55103D-11
+  3   -0.22476D-06   -0.22476D-06    0.55176D-11
+  4    0.22476D-06    0.22476D-06    0.55211D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.17600D-02
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        105 f-s =        151 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.16181D-02    0.16181D-02    0.25207D-09
+  2    0.13822D-09    0.13822D-09    0.33118D-16
+  3    0.82516D-11    0.82516D-11    0.97533D-18
+  4    0.12997D-09    0.12997D-09    0.32142D-16
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        100
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.76100D+03
+    0.00000D+00
+    0.60000D+03
+    0.10000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =       2298 f-s =       3270 J-s =         47
+ Computed and reference solutions and absolute errors follow:
+  1    0.12111D+04    0.12111D+04    0.42260D-08
+  2    0.12711D-04    0.12711D-04    0.54923D-15
+  3    0.12086D+04    0.12086D+04    0.41946D-08
+  4    0.32420D-03    0.32420D-03    0.54758D-15
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        108
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         38
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        656 f-s =        775 J-s =         17
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.23898D-10
+  2    0.13300D-02    0.13300D-02    0.81175D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         56
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.40000D-05
+    0.10000D-05
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        212 f-s =        298 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.32362D-12    0.32359D-12    0.24242D-16
+  2    0.23607D-06    0.23607D-06    0.27954D-13
+  3    0.76393D-13    0.76393D-13    0.48488D-19
+  4    0.76393D-06    0.76393D-06    0.41758D-13
+  5    0.32361D-05    0.32361D-05    0.20679D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        140
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         40
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.40000D+01
+    0.11000D+01
+    0.40000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       7815 f-s =      10298 J-s =        141
+ Computed and reference solutions and absolute errors follow:
+  1    0.44183D+01    0.44183D+01    0.21857D-08
+  2    0.12902D+01    0.12902D+01    0.18836D-09
+  3    0.30193D+01    0.30193D+01    0.91865D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         80
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for dense Jacobian option follow.
+  Results for dense Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.33650D-06
+    0.82610D-02
+    0.16420D-02
+    0.93800D-05
+ Nonnegativity will be enforced for this problem.
+ Steps =        544 f-s =        859 J-s =         17
+ Computed and reference solutions and absolute errors follow:
+  1    0.17136D-06    0.17136D-06    0.31128D-19
+  2    0.37136D-02    0.37136D-02    0.68782D-15
+  3    0.61893D-02    0.61893D-02    0.11449D-14
+  4    0.95451D-05    0.95451D-05    0.35575D-19
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        108
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         38
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1239 f-s =       1593 J-s =         36
+ Computed and reference solutions and absolute errors follow:
+  1    0.45400D-04    0.45400D-04    0.68578D-11
+  2    0.20612D-08    0.20612D-08    0.22718D-13
+  3    0.46242D-83    0.28230D-55    0.28230D-55
+  4   -0.54030D-81    0.52358D-51    0.52358D-51
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =       1405 f-s =       2247 J-s =         42
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D-01    0.99999D-01    0.18770D-11
+  2    0.20000D+00    0.20000D+00    0.37538D-11
+  3    0.30000D+00    0.30000D+00    0.52496D-11
+  4    0.40000D+00    0.40000D+00    0.62124D-11
+  5    0.50000D+00    0.50000D+00    0.65446D-11
+  6    0.60000D+00    0.60000D+00    0.62125D-11
+  7    0.70000D+00    0.70000D+00    0.52496D-11
+  8    0.80000D+00    0.80000D+00    0.37538D-11
+  9    0.90000D+00    0.90000D+00    0.18771D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        380
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        762
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1660 f-s =       2148 J-s =         48
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.48312D-13
+  2    0.13685D-01    0.13685D-01    0.48766D-12
+  3    0.15037D+01    0.15037D+01    0.53681D-10
+  4    0.13534D+00    0.13534D+00    0.49193D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       2088 f-s =       3321 J-s =         58
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.20558D-10
+  2    0.17335D-13    0.12659D-13    0.46762D-14
+  3    0.13322D-46    0.19115D-41    0.19115D-41
+  4   -0.20278D-75    0.22774D-54    0.22774D-54
+  5    0.89617-109    0.00000D+00    0.89617-109
+  6   -0.93169-148    0.00000D+00    0.93169-148
+  7   -0.28591-190    0.00000D+00    0.28591-190
+  8    0.75476-237    0.00000D+00    0.75476-237
+  9   -0.39278-283    0.00000D+00    0.39278-283
+ 10    0.00000D+00    0.00000D+00    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        450
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        913
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =       6804 f-s =       8688 J-s =        180
+ Computed and reference solutions and absolute errors follow:
+  1    0.10008D-08    0.10042D-08    0.33650D-11
+  2    0.17942D-07    0.18000D-07    0.58109D-10
+  3    0.00000D+00    0.00000D+00    0.00000D+00
+  4   -0.32836-306   -0.60430D-78    0.60430D-78
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1126 f-s =       1556 J-s =         31
+ Computed and reference solutions and absolute errors follow:
+  1   -0.32350D-55    0.61813D-30    0.61813D-30
+  2    0.72321D-56    0.89637D-30    0.89637D-30
+  3    0.19968D-34    0.27384D-26    0.27384D-26
+  4    0.20612D-08    0.20612D-08    0.27425D-13
+  5    0.45400D-04    0.45400D-04    0.82192D-11
+  6    0.13534D+00    0.13534D+00    0.15079D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        206
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        393
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1254 f-s =       1733 J-s =         36
+ Computed and reference solutions and absolute errors follow:
+  1   -0.10535D-48   -0.10768D-27    0.10768D-27
+  2    0.73972D-50    0.54550D-27    0.54550D-27
+  3    0.21256D-34    0.27385D-26    0.27385D-26
+  4    0.20612D-08    0.20612D-08    0.26897D-13
+  5    0.45400D-04    0.45400D-04    0.80714D-11
+  6    0.13534D+00    0.13534D+00    0.14476D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        206
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        393
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       2020 f-s =       2747 J-s =         56
+ Computed and reference solutions and absolute errors follow:
+  1    0.23655D-21    0.13312D-21    0.10343D-21
+  2    0.42183D-20   -0.23259D-21    0.44509D-20
+  3    0.19920D-34    0.15179D-34    0.47419D-35
+  4    0.20612D-08    0.20612D-08    0.18479D-13
+  5    0.45400D-04    0.45400D-04    0.54995D-11
+  6    0.13534D+00    0.13534D+00    0.12136D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        206
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        393
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       7706 f-s =      10399 J-s =        205
+ Computed and reference solutions and absolute errors follow:
+  1    0.20253D-11   -0.31006D-13    0.20563D-11
+  2    0.27197D-11    0.38628D-13    0.26811D-11
+  3    0.18048D-34    0.18049D-34    0.38107D-39
+  4    0.20612D-08    0.20612D-08    0.40812D-16
+  5    0.45400D-04    0.45400D-04    0.27890D-13
+  6    0.13534D+00    0.13534D+00    0.22510D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        206
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        393
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1548 f-s =       1990 J-s =         47
+ Computed and reference solutions and absolute errors follow:
+  1    0.40032D-03    0.40032D-03    0.95546D-12
+  2    0.40016D-03    0.40016D-03    0.10842D-18
+  3    0.40000D-03    0.40000D-03    0.54210D-19
+  4    0.20000D-01    0.20000D-01    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1399 f-s =       1782 J-s =         39
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.43787D-11
+  2    0.40000D-01    0.40000D-01    0.19462D-12
+  3    0.40016D-01    0.40016D-01    0.17984D-12
+  4    0.40032D-01    0.40032D-01    0.17723D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1385 f-s =       1766 J-s =         39
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.22640D-11
+  2    0.40000D+00    0.40000D+00    0.10063D-11
+  3    0.41600D+00    0.41600D+00    0.10112D-11
+  4    0.43331D+00    0.43331D+00    0.10810D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1438 f-s =       1849 J-s =         43
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.25713D-12
+  2    0.40000D+01    0.40000D+01    0.11453D-11
+  3    0.20000D+02    0.20000D+02    0.10441D-10
+  4    0.42000D+03    0.42000D+03    0.43229D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1475 f-s =       1898 J-s =         44
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.40723D-12
+  2    0.80000D+01    0.80000D+01    0.36220D-11
+  3    0.13600D+03    0.13600D+03    0.12224D-09
+  4    0.37128D+05    0.37128D+05    0.67274D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =       1119 f-s =       1485 J-s =         35
+ Computed and reference solutions and absolute errors follow:
+  1    0.22242D+02    0.22242D+02    0.18072D-08
+  2    0.27111D+02    0.27111D+02    0.18082D-08
+  3    0.40000D+03    0.40000D+03    0.11369D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =       1160 f-s =       1558 J-s =         39
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.24425D-13
+  2    0.91855D-01    0.91855D-01    0.78271D-14
+  3    0.28416D+02    0.28416D+02    0.24372D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =       1652 f-s =       2167 J-s =         52
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.13697D-11
+  2    0.56309D-02    0.56309D-02    0.26723D-14
+  3    0.36024D+00    0.36024D+00    0.13688D-11
+  4    0.31706D+00    0.31706D+00    0.68556D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =        247 f-s =        455 J-s =         11
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.52328D-10
+  2    0.14023D+01    0.14023D+01    0.52328D-10
+  3   -0.18934D-05   -0.18934D-05    0.19997D-15
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =        937 f-s =       1445 J-s =         34
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99164D+00   -0.99164D+00    0.16560D-09
+  2    0.98334D+00    0.98334D+00    0.18949D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         58
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        445 f-s =        686 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.63386D-11
+  2    0.14760D+00    0.14760D+00    0.63392D-11
+  3    0.57731D-07    0.57731D-07    0.77965D-18
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        447 f-s =        674 J-s =         16
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D-07    0.10000D-07    0.24123D-15
+  2    0.57112D-14   -0.16253D-18    0.57114D-14
+  3   -0.40630D-13    0.20260D-16    0.40650D-13
+  4   -0.56849D-11   -0.18531D-14    0.56831D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.20000D+01
+    0.00000D+00
+ Steps =       2175 f-s =       2628 J-s =         62
+ Computed and reference solutions and absolute errors follow:
+  1   -0.11587D+01   -0.11587D+01    0.68130D-09
+  2    0.43047D+00    0.43047D+00    0.73155D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         58
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         97
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =       1090 f-s =       1402 J-s =         35
+ Computed and reference solutions and absolute errors follow:
+  1    0.42531D-02    0.42531D-02    0.35989D-11
+  2    0.53170D-02    0.53170D-02    0.44812D-11
+  3    0.26276D+02    0.26276D+02    0.27266D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         86
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        150
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.00000D+00
+   -0.20000D+01
+   -0.10000D+01
+   -0.10000D+01
+ Steps =       3130 f-s =       4013 J-s =         89
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+02    0.20000D+02    0.10516D-11
+  2   -0.20000D+02   -0.20000D+02    0.10481D-11
+  3   -0.22476D-06   -0.22476D-06    0.10259D-11
+  4    0.22476D-06    0.22476D-06    0.10748D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.17600D-02
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        103 f-s =        191 J-s =          7
+ Computed and reference solutions and absolute errors follow:
+  1    0.16181D-02    0.16181D-02    0.23257D-09
+  2    0.13822D-09    0.13822D-09    0.13127D-16
+  3    0.82516D-11    0.82516D-11    0.22289D-18
+  4    0.12997D-09    0.12997D-09    0.13349D-16
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        120
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        217
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.76100D+03
+    0.00000D+00
+    0.60000D+03
+    0.10000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =       2396 f-s =       3820 J-s =         83
+ Computed and reference solutions and absolute errors follow:
+  1    0.12111D+04    0.12111D+04    0.53990D-08
+  2    0.12711D-04    0.12711D-04    0.70187D-15
+  3    0.12086D+04    0.12086D+04    0.53597D-08
+  4    0.32420D-03    0.32420D-03    0.69969D-15
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        128
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        221
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        649 f-s =        812 J-s =         21
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.13130D-10
+  2    0.13300D-02    0.13300D-02    0.44599D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         62
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         99
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.40000D-05
+    0.10000D-05
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        197 f-s =        325 J-s =          8
+ Computed and reference solutions and absolute errors follow:
+  1    0.23780D-12    0.32359D-12    0.85794D-13
+  2    0.23607D-06    0.23607D-06    0.18460D-12
+  3    0.76373D-13    0.76393D-13    0.20189D-16
+  4    0.76393D-06    0.76393D-06    0.47308D-12
+  5    0.32361D-05    0.32361D-05    0.44082D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        170
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        303
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.40000D+01
+    0.11000D+01
+    0.40000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       7617 f-s =      11111 J-s =        242
+ Computed and reference solutions and absolute errors follow:
+  1    0.44183D+01    0.44183D+01    0.18689D-08
+  2    0.12902D+01    0.12902D+01    0.16076D-09
+  3    0.30193D+01    0.30193D+01    0.80423D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        153
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for sparse Jacobian option follow.
+  Results for sparse Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.33650D-06
+    0.82610D-02
+    0.16420D-02
+    0.93800D-05
+ Nonnegativity will be enforced for this problem.
+ Steps =        571 f-s =       1046 J-s =         28
+ Computed and reference solutions and absolute errors follow:
+  1    0.17136D-06    0.17136D-06    0.31132D-16
+  2    0.37136D-02    0.37136D-02    0.68679D-12
+  3    0.61893D-02    0.61893D-02    0.11446D-11
+  4    0.95451D-05    0.95451D-05    0.31132D-16
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        128
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =        221
+ ____________________________________________________________
+ Class/Problem = A1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   1
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1239 f-s =       1417 J-s =         28
+ Computed and reference solutions and absolute errors follow:
+  1    0.45400D-04    0.45400D-04    0.68578D-11
+  2    0.20612D-08    0.20612D-08    0.22718D-13
+  3    0.46255D-83    0.28230D-55    0.28230D-55
+  4   -0.54052D-81    0.52358D-51    0.52358D-51
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = A2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   2
+ Initial time     =     0.00000D+00
+ Final time       =     0.12000D+03
+ Initial stepsize =     0.50000D-03
+ Maximum stepsize =     0.12000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   9
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =       1410 f-s =       1771 J-s =         31
+ Computed and reference solutions and absolute errors follow:
+  1    0.99999D-01    0.99999D-01    0.15778D-11
+  2    0.20000D+00    0.20000D+00    0.31554D-11
+  3    0.30000D+00    0.30000D+00    0.44129D-11
+  4    0.40000D+00    0.40000D+00    0.52221D-11
+  5    0.50000D+00    0.50000D+00    0.55014D-11
+  6    0.60000D+00    0.60000D+00    0.52222D-11
+  7    0.70000D+00    0.70000D+00    0.44128D-11
+  8    0.80000D+00    0.80000D+00    0.31556D-11
+  9    0.90000D+00    0.90000D+00    0.15780D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        506
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         39
+ ____________________________________________________________
+ Class/Problem = A3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   3
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1659 f-s =       1884 J-s =         34
+ Computed and reference solutions and absolute errors follow:
+  1   -0.13534D-02   -0.13534D-02    0.43045D-13
+  2    0.13685D-01    0.13685D-01    0.43450D-12
+  3    0.15037D+01    0.15037D+01    0.47828D-10
+  4    0.13534D+00    0.13534D+00    0.43825D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = A4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =   4
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =  10
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       2088 f-s =       2581 J-s =         42
+ Computed and reference solutions and absolute errors follow:
+  1    0.36788D+00    0.36788D+00    0.20549D-10
+  2    0.17334D-13    0.12659D-13    0.46754D-14
+  3    0.13241D-46    0.19115D-41    0.19115D-41
+  4   -0.20177D-75    0.22774D-54    0.22774D-54
+  5    0.88157-109    0.00000D+00    0.88157-109
+  6   -0.91772-148    0.00000D+00    0.91772-148
+  7   -0.28131-190    0.00000D+00    0.28131-190
+  8    0.74089-237    0.00000D+00    0.74089-237
+  9   -0.38758-283    0.00000D+00    0.38758-283
+ 10    0.00000D+00    0.00000D+00    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        610
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         40
+ ____________________________________________________________
+ Class/Problem = B1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  11
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.70000D-02
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.10000D+01
+    0.00000D+00
+ Steps =       6934 f-s =       7861 J-s =        124
+ Computed and reference solutions and absolute errors follow:
+  1    0.10008D-08    0.10042D-08    0.33650D-11
+  2    0.17942D-07    0.18000D-07    0.58109D-10
+  3    0.00000D+00    0.00000D+00    0.00000D+00
+  4   -0.68963-306   -0.60430D-78    0.60430D-78
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = B2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  12
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1126 f-s =       1328 J-s =         24
+ Computed and reference solutions and absolute errors follow:
+  1   -0.32339D-55    0.61813D-30    0.61813D-30
+  2    0.69701D-56    0.89637D-30    0.89637D-30
+  3    0.19970D-34    0.27384D-26    0.27384D-26
+  4    0.20612D-08    0.20612D-08    0.27424D-13
+  5    0.45400D-04    0.45400D-04    0.82189D-11
+  6    0.13534D+00    0.13534D+00    0.15064D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        254
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  13
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1254 f-s =       1463 J-s =         27
+ Computed and reference solutions and absolute errors follow:
+  1   -0.10535D-48   -0.10768D-27    0.10768D-27
+  2    0.73959D-50    0.54550D-27    0.54550D-27
+  3    0.21256D-34    0.27385D-26    0.27385D-26
+  4    0.20612D-08    0.20612D-08    0.26897D-13
+  5    0.45400D-04    0.45400D-04    0.80714D-11
+  6    0.13534D+00    0.13534D+00    0.14458D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        254
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  14
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       2020 f-s =       2315 J-s =         40
+ Computed and reference solutions and absolute errors follow:
+  1    0.23656D-21    0.13312D-21    0.10344D-21
+  2    0.42183D-20   -0.23259D-21    0.44509D-20
+  3    0.19920D-34    0.15179D-34    0.47419D-35
+  4    0.20612D-08    0.20612D-08    0.18479D-13
+  5    0.45400D-04    0.45400D-04    0.54995D-11
+  6    0.13534D+00    0.13534D+00    0.12144D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        254
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = B5
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  15
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   6
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       7702 f-s =       8751 J-s =        136
+ Computed and reference solutions and absolute errors follow:
+  1   -0.39985D-11   -0.31006D-13    0.39675D-11
+  2    0.66998D-11    0.38628D-13    0.66611D-11
+  3    0.18048D-34    0.18049D-34    0.38599D-39
+  4    0.20612D-08    0.20612D-08    0.41328D-16
+  5    0.45400D-04    0.45400D-04    0.28238D-13
+  6    0.13534D+00    0.13534D+00    0.21844D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        254
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = C1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  21
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1548 f-s =       1749 J-s =         34
+ Computed and reference solutions and absolute errors follow:
+  1    0.40032D-03    0.40032D-03    0.95569D-12
+  2    0.40016D-03    0.40016D-03    0.00000D+00
+  3    0.40000D-03    0.40000D-03    0.54210D-19
+  4    0.20000D-01    0.20000D-01    0.00000D+00
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  22
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1399 f-s =       1592 J-s =         31
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.43643D-11
+  2    0.40000D-01    0.40000D-01    0.19399D-12
+  3    0.40016D-01    0.40016D-01    0.17924D-12
+  4    0.40032D-01    0.40032D-01    0.17666D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  23
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1385 f-s =       1573 J-s =         30
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.22922D-11
+  2    0.40000D+00    0.40000D+00    0.10189D-11
+  3    0.41600D+00    0.41600D+00    0.10240D-11
+  4    0.43331D+00    0.43331D+00    0.10948D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  24
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1438 f-s =       1626 J-s =         31
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.24492D-12
+  2    0.40000D+01    0.40000D+01    0.10902D-11
+  3    0.20000D+02    0.20000D+02    0.99512D-11
+  4    0.42000D+03    0.42000D+03    0.41189D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = C5
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  25
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+    0.10000D+01
+ Steps =       1472 f-s =       1669 J-s =         32
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+01    0.20000D+01    0.38991D-12
+  2    0.80000D+01    0.80000D+01    0.34701D-11
+  3    0.13600D+03    0.13600D+03    0.11713D-09
+  4    0.37128D+05    0.37128D+05    0.64443D-07
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = D1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  31
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+03
+ Initial stepsize =     0.17000D-01
+ Maximum stepsize =     0.40000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =       1129 f-s =       1372 J-s =         24
+ Computed and reference solutions and absolute errors follow:
+  1    0.22242D+02    0.22242D+02    0.21392D-08
+  2    0.27111D+02    0.27111D+02    0.21066D-08
+  3    0.40000D+03    0.40000D+03    0.11369D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  32
+ Initial time     =     0.00000D+00
+ Final time       =     0.40000D+02
+ Initial stepsize =     0.10000D-04
+ Maximum stepsize =     0.40000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =       1137 f-s =       1382 J-s =         22
+ Computed and reference solutions and absolute errors follow:
+  1    0.71583D+00    0.71583D+00    0.58165D-12
+  2    0.91855D-01    0.91855D-01    0.36550D-12
+  3    0.28416D+02    0.28416D+02    0.58204D-10
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  33
+ Initial time     =     0.00000D+00
+ Final time       =     0.20000D+02
+ Initial stepsize =     0.25000D-04
+ Maximum stepsize =     0.20000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =       1657 f-s =       1900 J-s =         36
+ Computed and reference solutions and absolute errors follow:
+  1    0.63976D+00    0.63976D+00    0.13811D-12
+  2    0.56309D-02    0.56309D-02    0.26194D-15
+  3    0.36024D+00    0.36024D+00    0.13961D-12
+  4    0.31706D+00    0.31706D+00    0.71276D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = D4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  34
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+02
+ Initial stepsize =     0.29000D-03
+ Maximum stepsize =     0.50000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =        259 f-s =        434 J-s =          9
+ Computed and reference solutions and absolute errors follow:
+  1    0.59765D+00    0.59765D+00    0.26102D-10
+  2    0.14023D+01    0.14023D+01    0.26099D-10
+  3   -0.18934D-05   -0.18934D-05    0.10627D-15
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = D5
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  35
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+ Steps =       1045 f-s =       1500 J-s =         24
+ Computed and reference solutions and absolute errors follow:
+  1   -0.99164D+00   -0.99164D+00    0.99028D-10
+  2    0.98334D+00    0.98334D+00    0.11166D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         58
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         32
+ ____________________________________________________________
+ Class/Problem = D6
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  36
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.33000D-07
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+    0.00000D+00
+ Steps =        451 f-s =        628 J-s =         12
+ Computed and reference solutions and absolute errors follow:
+  1    0.85240D+00    0.85240D+00    0.43796D-11
+  2    0.14760D+00    0.14760D+00    0.43804D-11
+  3    0.57731D-07    0.57731D-07    0.53875D-18
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = E1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  41
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+01
+ Initial stepsize =     0.68000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        418 f-s =        559 J-s =         14
+ Computed and reference solutions and absolute errors follow:
+  1    0.10000D-07    0.10000D-07    0.29205D-16
+  2   -0.39393D-15   -0.16253D-18    0.39376D-15
+  3   -0.52729D-14    0.20260D-16    0.52931D-14
+  4    0.50848D-13   -0.18531D-14    0.52701D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = E2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  42
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+02
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+02
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.20000D+01
+    0.00000D+00
+ Steps =       2195 f-s =       2491 J-s =         41
+ Computed and reference solutions and absolute errors follow:
+  1   -0.11587D+01   -0.11587D+01    0.78175D-09
+  2    0.43047D+00    0.43047D+00    0.83014D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         58
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         32
+ ____________________________________________________________
+ Class/Problem = E3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  43
+ Initial time     =     0.00000D+00
+ Final time       =     0.50000D+03
+ Initial stepsize =     0.20000D-01
+ Maximum stepsize =     0.50000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.10000D+01
+    0.00000D+00
+ Steps =       1134 f-s =       1314 J-s =         26
+ Computed and reference solutions and absolute errors follow:
+  1    0.42531D-02    0.42531D-02    0.88912D-11
+  2    0.53170D-02    0.53170D-02    0.11095D-10
+  3    0.26276D+02    0.26276D+02    0.30349D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         92
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         33
+ ____________________________________________________________
+ Class/Problem = E4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  44
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.00000D+00
+   -0.20000D+01
+   -0.10000D+01
+   -0.10000D+01
+ Steps =       3190 f-s =       3644 J-s =         61
+ Computed and reference solutions and absolute errors follow:
+  1    0.20000D+02    0.20000D+02    0.55245D-11
+  2   -0.20000D+02   -0.20000D+02    0.55103D-11
+  3   -0.22476D-06   -0.22476D-06    0.55176D-11
+  4    0.22476D-06    0.22476D-06    0.55211D-11
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = E5
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  45
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.50000D-04
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.17600D-02
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Steps =        105 f-s =        151 J-s =          2
+ Computed and reference solutions and absolute errors follow:
+  1    0.16181D-02    0.16181D-02    0.25207D-09
+  2    0.13822D-09    0.13822D-09    0.33118D-16
+  3    0.82516D-11    0.82516D-11    0.97533D-18
+  4    0.12997D-09    0.12997D-09    0.32142D-16
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        136
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = F1
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  51
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+04
+ Initial stepsize =     0.10000D-03
+ Maximum stepsize =     0.10000D+04
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.76100D+03
+    0.00000D+00
+    0.60000D+03
+    0.10000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =       2298 f-s =       3270 J-s =         47
+ Computed and reference solutions and absolute errors follow:
+  1    0.12111D+04    0.12111D+04    0.42260D-08
+  2    0.12711D-04    0.12711D-04    0.54923D-15
+  3    0.12086D+04    0.12086D+04    0.41946D-08
+  4    0.32420D-03    0.32420D-03    0.54758D-15
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        144
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         38
+ ____________________________________________________________
+ Class/Problem = F2
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  52
+ Initial time     =     0.00000D+00
+ Final time       =     0.24000D+03
+ Initial stepsize =     0.10000D-01
+ Maximum stepsize =     0.24000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   2
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.10000D+01
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        656 f-s =        775 J-s =         17
+ Computed and reference solutions and absolute errors follow:
+  1    0.39127D+00    0.39127D+00    0.23898D-10
+  2    0.13300D-02    0.13300D-02    0.81175D-13
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         62
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         34
+ ____________________________________________________________
+ Class/Problem = F3
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  53
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-09
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   5
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.40000D-05
+    0.10000D-05
+    0.00000D+00
+    0.00000D+00
+    0.00000D+00
+ Nonnegativity will be enforced for this problem.
+ Steps =        212 f-s =        298 J-s =          5
+ Computed and reference solutions and absolute errors follow:
+  1    0.32362D-12    0.32359D-12    0.24242D-16
+  2    0.23607D-06    0.23607D-06    0.27954D-13
+  3    0.76393D-13    0.76393D-13    0.48488D-19
+  4    0.76393D-06    0.76393D-06    0.41758D-13
+  5    0.32361D-05    0.32361D-05    0.20679D-12
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        200
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         40
+ ____________________________________________________________
+ Class/Problem = F4
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  54
+ Initial time     =     0.00000D+00
+ Final time       =     0.30000D+03
+ Initial stepsize =     0.10000D-02
+ Maximum stepsize =     0.10000D+01
+ IWT flag         =  -1
+ Number of ODEs   =   3
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.40000D+01
+    0.11000D+01
+    0.40000D+01
+ Nonnegativity will be enforced for this problem.
+ Steps =       7815 f-s =      10298 J-s =        141
+ Computed and reference solutions and absolute errors follow:
+  1    0.44183D+01    0.44183D+01    0.21857D-08
+  2    0.12902D+01    0.12902D+01    0.18836D-09
+  3    0.30193D+01    0.30193D+01    0.91865D-09
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =         98
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         36
+ ____________________________________________________________
+ Class/Problem = F5
+  Results for ITOL =            12  follow.
+  Results for ITOL =            12  follow.
+  Results for VODE Jacobian follow.
+  Results for VODE Jacobian follow.
+  The ODEs will not be scaled.
+  The ODEs will not be scaled.
+  Results for user supplied sparse pointers follow.
+  Results for user supplied sparse pointers follow.
+  Results for banded Jacobian option follow.
+  Results for banded Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for non-constant Jacobian option follow.
+  Results for numerical Jacobian option follow.
+  Results for numerical Jacobian option follow.
+ Problem ID       =  55
+ Initial time     =     0.00000D+00
+ Final time       =     0.10000D+03
+ Initial stepsize =     0.10000D-06
+ Maximum stepsize =     0.10000D+03
+ IWT flag         =  -1
+ Number of ODEs   =   4
+ Error tolerance  =     0.10000D-11
+ Initial solution = 
+    0.33650D-06
+    0.82610D-02
+    0.16420D-02
+    0.93800D-05
+ Nonnegativity will be enforced for this problem.
+ Steps =        544 f-s =        859 J-s =         17
+ Computed and reference solutions and absolute errors follow:
+  1    0.17136D-06    0.17136D-06    0.31128D-19
+  2    0.37136D-02    0.37136D-02    0.68782D-15
+  3    0.61893D-02    0.61893D-02    0.11449D-14
+  4    0.95451D-05    0.95451D-05    0.35575D-19
+ I1 = Total length of REAL arrays used.                                          
+In the above message, I1 =        144
+ I1 = Total length of INTEGER arrays used.                                       
+In the above message, I1 =         38
+
+
+                     Results for ITOL =   5
+
+ Maximum Errors for All Problems Follow:
+ The original VODE Jacobian was used.
+ The ODEs were not scaled.
+
+           Maximum Errors for Individual Problems Follow:
+
+Tolerance   Problem    Dense          Sparse         Banded
+    5          1    0.32471D-05    0.32471D-05    0.32471D-05
+    5          2    0.45109D-05    0.44918D-05    0.45109D-05
+    5          3    0.35956D-06    0.43204D-06    0.35956D-06
+    5          4    0.35755D-04    0.35755D-04    0.35755D-04
+    5         11    0.82054D-04    0.20514D-04    0.82054D-04
+    5         12    0.25783D-05    0.25783D-05    0.25783D-05
+    5         13    0.36548D-06    0.36548D-06    0.36548D-06
+    5         14    0.13286D-04    0.13286D-04    0.13286D-04
+    5         15    0.22722D-03    0.22722D-03    0.22722D-03
+    5         21    0.21724D-06    0.15394D-05    0.21724D-06
+    5         22    0.26613D-06    0.44573D-05    0.26613D-06
+    5         23    0.58233D-05    0.13384D-05    0.58233D-05
+    5         24    0.12272D-03    0.15540D-02    0.12272D-03
+    5         25    0.26298D-01    0.11753D-01    0.26298D-01
+    5         31    0.15815D-02    0.14478D-02    0.15815D-02
+    5         32    0.41606D-03    0.93199D-03    0.41606D-03
+    5         33    0.77384D-06    0.20905D-05    0.77384D-06
+    5         34    0.22714D-04    0.42351D-04    0.22714D-04
+    5         35    0.45754D-02    0.45821D-02    0.45754D-02
+    5         36    0.11467D-04    0.26993D-05    0.11467D-04
+    5         41    0.66679D-11    0.48520D-11    0.66679D-11
+    5         42    0.78507D-04    0.69927D-04    0.78507D-04
+    5         43    0.42188D-04    0.17876D-03    0.42188D-04
+    5         44    0.38158D-04    0.13429D-04    0.38158D-04
+    5         45    0.54075D-03    0.75382D-05    0.54075D-03
+    5         51    0.66681D-02    0.86694D-02    0.66681D-02
+    5         52    0.42227D-04    0.44278D-04    0.42227D-04
+    5         53    0.68255D-05    0.52782D-05    0.68255D-05
+    5         54    0.54195D-03    0.16665D-02    0.54195D-03
+    5         55    0.10316D-07    0.16224D-11    0.10316D-07
+
+
+                     Results for ITOL =   6
+
+ Maximum Errors for All Problems Follow:
+ The original VODE Jacobian was used.
+ The ODEs were not scaled.
+
+           Maximum Errors for Individual Problems Follow:
+
+Tolerance   Problem    Dense          Sparse         Banded
+    6          1    0.30490D-06    0.30487D-06    0.30490D-06
+    6          2    0.20269D-06    0.20302D-06    0.20269D-06
+    6          3    0.15528D-04    0.15518D-04    0.15528D-04
+    6          4    0.76940D-06    0.76940D-06    0.76940D-06
+    6         11    0.68271D-05    0.67914D-05    0.68271D-05
+    6         12    0.21619D-05    0.21619D-05    0.21619D-05
+    6         13    0.20675D-05    0.20675D-05    0.20675D-05
+    6         14    0.17836D-05    0.17836D-05    0.17836D-05
+    6         15    0.61741D-05    0.57991D-05    0.61741D-05
+    6         21    0.33301D-07    0.90318D-06    0.33301D-07
+    6         22    0.21868D-07    0.21958D-06    0.21868D-07
+    6         23    0.23894D-07    0.13264D-05    0.23894D-07
+    6         24    0.59616D-04    0.96016D-04    0.59616D-04
+    6         25    0.35452D-02    0.13236D-01    0.35452D-02
+    6         31    0.13043D-03    0.46695D-04    0.13043D-03
+    6         32    0.60136D-04    0.85801D-04    0.60136D-04
+    6         33    0.21535D-06    0.56131D-07    0.21535D-06
+    6         34    0.50323D-05    0.50882D-05    0.50323D-05
+    6         35    0.13792D-04    0.17234D-04    0.13792D-04
+    6         36    0.89511D-06    0.12935D-05    0.89511D-06
+    6         41    0.47668D-07    0.20076D-08    0.47668D-07
+    6         42    0.42191D-04    0.48535D-04    0.42191D-04
+    6         43    0.48515D-04    0.12792D-04    0.48515D-04
+    6         44    0.85324D-07    0.12525D-06    0.85324D-07
+    6         45    0.18339D-05    0.12577D-04    0.18339D-05
+    6         51    0.82423D-03    0.15384D-02    0.82423D-03
+    6         52    0.78947D-05    0.83441D-05    0.78947D-05
+    6         53    0.67732D-06    0.67472D-06    0.67732D-06
+    6         54    0.86593D-04    0.27303D-04    0.86593D-04
+    6         55    0.63884D-08    0.38018D-11    0.63884D-08
+
+
+                     Results for ITOL =   7
+
+ Maximum Errors for All Problems Follow:
+ The original VODE Jacobian was used.
+ The ODEs were not scaled.
+
+           Maximum Errors for Individual Problems Follow:
+
+Tolerance   Problem    Dense          Sparse         Banded
+    7          1    0.17939D-06    0.17939D-06    0.17939D-06
+    7          2    0.93205D-07    0.74497D-07    0.93205D-07
+    7          3    0.25626D-06    0.21908D-06    0.25626D-06
+    7          4    0.13268D-06    0.13268D-06    0.13268D-06
+    7         11    0.41361D-06    0.41319D-06    0.41361D-06
+    7         12    0.12318D-06    0.12318D-06    0.12318D-06
+    7         13    0.11735D-06    0.11735D-06    0.11735D-06
+    7         14    0.12901D-06    0.12901D-06    0.12901D-06
+    7         15    0.24117D-05    0.24117D-05    0.24117D-05
+    7         21    0.57592D-08    0.85755D-08    0.57592D-08
+    7         22    0.19503D-07    0.41483D-06    0.19503D-07
+    7         23    0.71641D-07    0.85808D-07    0.71641D-07
+    7         24    0.64786D-04    0.21542D-04    0.64786D-04
+    7         25    0.61838D-02    0.82625D-03    0.61838D-02
+    7         31    0.11522D-04    0.11153D-04    0.11522D-04
+    7         32    0.25653D-04    0.46953D-05    0.25653D-04
+    7         33    0.18859D-07    0.13443D-06    0.18859D-07
+    7         34    0.22800D-07    0.22800D-07    0.22800D-07
+    7         35    0.12894D-05    0.91511D-06    0.12894D-05
+    7         36    0.12860D-05    0.24077D-06    0.12860D-05
+    7         41    0.10966D-07    0.32407D-08    0.10966D-07
+    7         42    0.13584D-04    0.70261D-05    0.13584D-04
+    7         43    0.13106D-04    0.19326D-04    0.13106D-04
+    7         44    0.10582D-06    0.13323D-06    0.10582D-06
+    7         45    0.11756D-05    0.10684D-06    0.11756D-05
+    7         51    0.31004D-04    0.41469D-04    0.31004D-04
+    7         52    0.80369D-06    0.69569D-06    0.80369D-06
+    7         53    0.42297D-07    0.40358D-07    0.42297D-07
+    7         54    0.30100D-04    0.31403D-04    0.30100D-04
+    7         55    0.11096D-11    0.59936D-12    0.11096D-11
+
+
+                     Results for ITOL =   8
+
+ Maximum Errors for All Problems Follow:
+ The original VODE Jacobian was used.
+ The ODEs were not scaled.
+
+           Maximum Errors for Individual Problems Follow:
+
+Tolerance   Problem    Dense          Sparse         Banded
+    8          1    0.10373D-07    0.10373D-07    0.10373D-07
+    8          2    0.17883D-07    0.16440D-07    0.17883D-07
+    8          3    0.11996D-06    0.11996D-06    0.11996D-06
+    8          4    0.81042D-08    0.81042D-08    0.81042D-08
+    8         11    0.91067D-07    0.11911D-06    0.91067D-07
+    8         12    0.20557D-07    0.20557D-07    0.20557D-07
+    8         13    0.16174D-07    0.16174D-07    0.16174D-07
+    8         14    0.37012D-07    0.37012D-07    0.37012D-07
+    8         15    0.87363D-07    0.87362D-07    0.87363D-07
+    8         21    0.34941D-08    0.35009D-08    0.34941D-08
+    8         22    0.56117D-07    0.64005D-07    0.56117D-07
+    8         23    0.30035D-09    0.13570D-08    0.30035D-09
+    8         24    0.17307D-05    0.20710D-05    0.17307D-05
+    8         25    0.10670D-02    0.35850D-03    0.10670D-02
+    8         31    0.16896D-05    0.19005D-05    0.16896D-05
+    8         32    0.19803D-05    0.27718D-05    0.19803D-05
+    8         33    0.87250D-08    0.30057D-08    0.87250D-08
+    8         34    0.27090D-06    0.20551D-06    0.27090D-06
+    8         35    0.83890D-06    0.59310D-06    0.83890D-06
+    8         36    0.29125D-07    0.19944D-07    0.29125D-07
+    8         41    0.14738D-09    0.62885D-10    0.14738D-09
+    8         42    0.14176D-05    0.14825D-05    0.14176D-05
+    8         43    0.25055D-06    0.45533D-06    0.25055D-06
+    8         44    0.25960D-09    0.67201D-08    0.25960D-09
+    8         45    0.29771D-06    0.99142D-07    0.29771D-06
+    8         51    0.98613D-05    0.21342D-04    0.98613D-05
+    8         52    0.21761D-07    0.82571D-08    0.21761D-07
+    8         53    0.35852D-07    0.44211D-07    0.35852D-07
+    8         54    0.68297D-05    0.99637D-06    0.68297D-05
+    8         55    0.32921D-11    0.59299D-12    0.32921D-11
+
+
+                     Results for ITOL =   9
+
+ Maximum Errors for All Problems Follow:
+ The original VODE Jacobian was used.
+ The ODEs were not scaled.
+
+           Maximum Errors for Individual Problems Follow:
+
+Tolerance   Problem    Dense          Sparse         Banded
+    9          1    0.20958D-08    0.20958D-08    0.20958D-08
+    9          2    0.17887D-08    0.17876D-08    0.17887D-08
+    9          3    0.61165D-07    0.61173D-07    0.61165D-07
+    9          4    0.36942D-09    0.36942D-09    0.36942D-09
+    9         11    0.81817D-08    0.81818D-08    0.81817D-08
+    9         12    0.22293D-08    0.22293D-08    0.22293D-08
+    9         13    0.16949D-08    0.16949D-08    0.16949D-08
+    9         14    0.84210D-09    0.84210D-09    0.84210D-09
+    9         15    0.10516D-07    0.10516D-07    0.10516D-07
+    9         21    0.32933D-08    0.33742D-08    0.32933D-08
+    9         22    0.31903D-09    0.32843D-09    0.31903D-09
+    9         23    0.94382D-09    0.31507D-08    0.94382D-09
+    9         24    0.49301D-06    0.41093D-06    0.49301D-06
+    9         25    0.16794D-04    0.24272D-04    0.16794D-04
+    9         31    0.33049D-06    0.15611D-06    0.33049D-06
+    9         32    0.32206D-06    0.57894D-06    0.32206D-06
+    9         33    0.11107D-09    0.38292D-08    0.11107D-09
+    9         34    0.38196D-07    0.60451D-08    0.38196D-07
+    9         35    0.11193D-06    0.11257D-06    0.11193D-06
+    9         36    0.57991D-08    0.12713D-08    0.57991D-08
+    9         41    0.24736D-10    0.91256D-11    0.24736D-10
+    9         42    0.18211D-06    0.18838D-06    0.18211D-06
+    9         43    0.63616D-07    0.11097D-06    0.63616D-07
+    9         44    0.12428D-08    0.69177D-09    0.12428D-08
+    9         45    0.13511D-08    0.79010D-08    0.13511D-08
+    9         51    0.21504D-05    0.12477D-05    0.21504D-05
+    9         52    0.28025D-08    0.74528D-08    0.28025D-08
+    9         53    0.95041D-08    0.63143D-08    0.95041D-08
+    9         54    0.15477D-05    0.76446D-06    0.15477D-05
+    9         55    0.15121D-11    0.99489D-12    0.15121D-11
+
+
+                     Results for ITOL =  10
+
+ Maximum Errors for All Problems Follow:
+ The original VODE Jacobian was used.
+ The ODEs were not scaled.
+
+           Maximum Errors for Individual Problems Follow:
+
+Tolerance   Problem    Dense          Sparse         Banded
+   10          1    0.33624D-09    0.33624D-09    0.33624D-09
+   10          2    0.12436D-09    0.12435D-09    0.12436D-09
+   10          3    0.26790D-08    0.26784D-08    0.26790D-08
+   10          4    0.54749D-09    0.54749D-09    0.54749D-09
+   10         11    0.24371D-08    0.24674D-08    0.24371D-08
+   10         12    0.36754D-09    0.36754D-09    0.36754D-09
+   10         13    0.32141D-09    0.32141D-09    0.32141D-09
+   10         14    0.19133D-09    0.19133D-09    0.19133D-09
+   10         15    0.51657D-08    0.51657D-08    0.51657D-08
+   10         21    0.25390D-09    0.24187D-09    0.25390D-09
+   10         22    0.79983D-09    0.80675D-09    0.79983D-09
+   10         23    0.34159D-09    0.11570D-09    0.34159D-09
+   10         24    0.38450D-07    0.37837D-07    0.38450D-07
+   10         25    0.18191D-05    0.30656D-05    0.18191D-05
+   10         31    0.45975D-07    0.36615D-07    0.45975D-07
+   10         32    0.31962D-07    0.67000D-08    0.31962D-07
+   10         33    0.48135D-10    0.47667D-10    0.48135D-10
+   10         34    0.12091D-08    0.34335D-09    0.12091D-08
+   10         35    0.12008D-07    0.80470D-08    0.12008D-07
+   10         36    0.17600D-09    0.30078D-09    0.17600D-09
+   10         41    0.13091D-10    0.68879D-11    0.13091D-10
+   10         42    0.36829D-07    0.30748D-07    0.36829D-07
+   10         43    0.48339D-07    0.31999D-07    0.48339D-07
+   10         44    0.12562D-08    0.90016D-10    0.12562D-08
+   10         45    0.46690D-08    0.32760D-08    0.46690D-08
+   10         51    0.24935D-06    0.28625D-06    0.24935D-06
+   10         52    0.14619D-08    0.28179D-09    0.14619D-08
+   10         53    0.22604D-10    0.37499D-09    0.22604D-10
+   10         54    0.26443D-06    0.13681D-06    0.26443D-06
+   10         55    0.62047D-11    0.40902D-12    0.62047D-11
+
+
+                     Results for ITOL =  11
+
+ Maximum Errors for All Problems Follow:
+ The original VODE Jacobian was used.
+ The ODEs were not scaled.
+
+           Maximum Errors for Individual Problems Follow:
+
+Tolerance   Problem    Dense          Sparse         Banded
+   11          1    0.33879D-10    0.33879D-10    0.33879D-10
+   11          2    0.33194D-10    0.32460D-10    0.33194D-10
+   11          3    0.94239D-09    0.94365D-09    0.94239D-09
+   11          4    0.27668D-09    0.27666D-09    0.27668D-09
+   11         11    0.38074D-09    0.38080D-09    0.38074D-09
+   11         12    0.52756D-10    0.52756D-10    0.52756D-10
+   11         13    0.50269D-10    0.50269D-10    0.50269D-10
+   11         14    0.52820D-10    0.52821D-10    0.52820D-10
+   11         15    0.25336D-10    0.34461D-10    0.25336D-10
+   11         21    0.61056D-11    0.61009D-11    0.61056D-11
+   11         22    0.18911D-10    0.18915D-10    0.18911D-10
+   11         23    0.69813D-11    0.69285D-11    0.69813D-11
+   11         24    0.30688D-08    0.28331D-08    0.30688D-08
+   11         25    0.45457D-06    0.45246D-06    0.45457D-06
+   11         31    0.85188D-08    0.11165D-07    0.85188D-08
+   11         32    0.49510D-08    0.39867D-08    0.49510D-08
+   11         33    0.18862D-10    0.19432D-10    0.18862D-10
+   11         34    0.10899D-09    0.18284D-09    0.10899D-09
+   11         35    0.16604D-08    0.15352D-08    0.16604D-08
+   11         36    0.27952D-10    0.41518D-10    0.27952D-10
+   11         41    0.22913D-10    0.27174D-12    0.22913D-10
+   11         42    0.56664D-08    0.55395D-08    0.56664D-08
+   11         43    0.44747D-08    0.43679D-08    0.44747D-08
+   11         44    0.94680D-11    0.76380D-10    0.94680D-11
+   11         45    0.82755D-09    0.91000D-09    0.82755D-09
+   11         51    0.41034D-07    0.34577D-07    0.41034D-07
+   11         52    0.16732D-09    0.20958D-09    0.16732D-09
+   11         53    0.17536D-10    0.62854D-11    0.17536D-10
+   11         54    0.28879D-07    0.76714D-08    0.28879D-07
+   11         55    0.24626D-11    0.17387D-11    0.24626D-11
+
+
+                     Results for ITOL =  12
+
+ Maximum Errors for All Problems Follow:
+ The original VODE Jacobian was used.
+ The ODEs were not scaled.
+
+           Maximum Errors for Individual Problems Follow:
+
+Tolerance   Problem    Dense          Sparse         Banded
+   12          1    0.68578D-11    0.68578D-11    0.68578D-11
+   12          2    0.55014D-11    0.65446D-11    0.55014D-11
+   12          3    0.47828D-10    0.53681D-10    0.47828D-10
+   12          4    0.20549D-10    0.20558D-10    0.20549D-10
+   12         11    0.58109D-10    0.58109D-10    0.58109D-10
+   12         12    0.82189D-11    0.82192D-11    0.82189D-11
+   12         13    0.80714D-11    0.80714D-11    0.80714D-11
+   12         14    0.54995D-11    0.54995D-11    0.54995D-11
+   12         15    0.66611D-11    0.26811D-11    0.66611D-11
+   12         21    0.95569D-12    0.95546D-12    0.95569D-12
+   12         22    0.43643D-11    0.43787D-11    0.43643D-11
+   12         23    0.22922D-11    0.22640D-11    0.22922D-11
+   12         24    0.41189D-09    0.43229D-09    0.41189D-09
+   12         25    0.64443D-07    0.67274D-07    0.64443D-07
+   12         31    0.21392D-08    0.18082D-08    0.21392D-08
+   12         32    0.58204D-10    0.24372D-11    0.58204D-10
+   12         33    0.13961D-12    0.13697D-11    0.13961D-12
+   12         34    0.26102D-10    0.52328D-10    0.26102D-10
+   12         35    0.11166D-09    0.18949D-09    0.11166D-09
+   12         36    0.43804D-11    0.63392D-11    0.43804D-11
+   12         41    0.52701D-13    0.56831D-11    0.52701D-13
+   12         42    0.83014D-09    0.73155D-09    0.83014D-09
+   12         43    0.30349D-09    0.27266D-09    0.30349D-09
+   12         44    0.55245D-11    0.10748D-11    0.55245D-11
+   12         45    0.25207D-09    0.23257D-09    0.25207D-09
+   12         51    0.42260D-08    0.53990D-08    0.42260D-08
+   12         52    0.23898D-10    0.13130D-10    0.23898D-10
+   12         53    0.20679D-12    0.47308D-12    0.20679D-12
+   12         54    0.21857D-08    0.18689D-08    0.21857D-08
+   12         55    0.11449D-14    0.11446D-11    0.11449D-14
+
+
+                     Results for ITOL =   5
+
+ Integration Statistics Follow:
+ The original VODE Jacobian was used.
+ The ODEs were not scaled.
+
+ Problem            Dense    Sparse    Banded
+    1   Steps:        127       127       127
+        Jacs:           6         5         6
+        Ders:         192       208       192
+  
+    2   Steps:        153       153       153
+        Jacs:           5         6         5
+        Ders:         249       312       249
+  
+    3   Steps:        157       157       157
+        Jacs:           5         6         5
+        Ders:         226       254       226
+  
+    4   Steps:        189       189       189
+        Jacs:           6         8         6
+        Ders:         291       391       291
+  
+   11   Steps:        570       566       570
+        Jacs:          14        19        14
+        Ders:         713       811       713
+  
+   12   Steps:        107       107       107
+        Jacs:           4         5         4
+        Ders:         154       190       154
+  
+   13   Steps:        115       115       115
+        Jacs:           5         5         5
+        Ders:         166       196       166
+  
+   14   Steps:        169       169       169
+        Jacs:           5         8         5
+        Ders:         223       289       223
+  
+   15   Steps:       2552      2552      2552
+        Jacs:          46        70        46
+        Ders:        3023      3587      3023
+  
+   21   Steps:        141       138       141
+        Jacs:           6         5         6
+        Ders:         199       214       199
+  
+   22   Steps:        137       136       137
+        Jacs:           6         5         6
+        Ders:         196       211       196
+  
+   23   Steps:        127       128       127
+        Jacs:           5         5         5
+        Ders:         182       199       182
+  
+   24   Steps:        155       149       155
+        Jacs:           6         5         6
+        Ders:         224       237       224
+  
+   25   Steps:        150       151       150
+        Jacs:           5         6         5
+        Ders:         207       236       207
+  
+   31   Steps:        154       152       154
+        Jacs:           3         6         3
+        Ders:         265       281       265
+  
+   32   Steps:        139       161       139
+        Jacs:           3         8         3
+        Ders:         183       266       183
+  
+   33   Steps:        179       206       179
+        Jacs:           7         8         7
+        Ders:         276       340       276
+  
+   34   Steps:         21        21        21
+        Jacs:           1         4         1
+        Ders:          32        53        32
+  
+   35   Steps:         70        71        70
+        Jacs:           3         3         3
+        Ders:         117       121       117
+  
+   36   Steps:         51        46        51
+        Jacs:           2         5         2
+        Ders:          84        93        84
+  
+   41   Steps:         42        42        42
+        Jacs:           3         2         3
+        Ders:          72        76        72
+  
+   42   Steps:        215       205       215
+        Jacs:           5         8         5
+        Ders:         318       328       318
+  
+   43   Steps:        189       138       189
+        Jacs:           6         5         6
+        Ders:         316       223       316
+  
+   44   Steps:        288       294       288
+        Jacs:           8        12         8
+        Ders:         423       464       423
+  
+   45   Steps:         10        10        10
+        Jacs:           2         6         2
+        Ders:          29        65        29
+  
+   51   Steps:        295       301       295
+        Jacs:          17        22        17
+        Ders:         514       647       514
+  
+   52   Steps:         81        81        81
+        Jacs:           3         5         3
+        Ders:         116       130       116
+  
+   53   Steps:         19        17        19
+        Jacs:           2         4         2
+        Ders:          32        61        32
+  
+   54   Steps:       1158      1073      1158
+        Jacs:          29        48        29
+        Ders:        1963      1958      1963
+  
+   55   Steps:         45        88        45
+        Jacs:           2         5         2
+        Ders:          71       152        71
+  
+
+
+                     Results for ITOL =   6
+
+ Integration Statistics Follow:
+ The original VODE Jacobian was used.
+ The ODEs were not scaled.
+
+ Problem            Dense    Sparse    Banded
+    1   Steps:        168       168       168
+        Jacs:           7         8         7
+        Ders:         242       278       242
+  
+    2   Steps:        195       195       195
+        Jacs:           7         8         7
+        Ders:         309       391       309
+  
+    3   Steps:        210       210       210
+        Jacs:           6         8         6
+        Ders:         294       334       294
+  
+    4   Steps:        254       254       254
+        Jacs:           8        11         8
+        Ders:         390       530       390
+  
+   11   Steps:        763       763       763
+        Jacs:          19        27        19
+        Ders:         960      1099       960
+  
+   12   Steps:        137       137       137
+        Jacs:           5         5         5
+        Ders:         201       231       201
+  
+   13   Steps:        148       148       148
+        Jacs:           5         6         5
+        Ders:         207       249       207
+  
+   14   Steps:        303       303       303
+        Jacs:           9        11         9
+        Ders:         386       464       386
+  
+   15   Steps:       2684      2684      2684
+        Jacs:          49        72        49
+        Ders:        3153      3723      3153
+  
+   21   Steps:        186       183       186
+        Jacs:           7         8         7
+        Ders:         255       301       255
+  
+   22   Steps:        178       177       178
+        Jacs:           8         8         8
+        Ders:         253       287       253
+  
+   23   Steps:        174       173       174
+        Jacs:           7         8         7
+        Ders:         249       290       249
+  
+   24   Steps:        202       194       202
+        Jacs:           8         8         8
+        Ders:         315       319       315
+  
+   25   Steps:        199       192       199
+        Jacs:           7         8         7
+        Ders:         299       322       299
+  
+   31   Steps:        205       196       205
+        Jacs:           5         8         5
+        Ders:         348       360       348
+  
+   32   Steps:        253       233       253
+        Jacs:           5        11         5
+        Ders:         392       412       392
+  
+   33   Steps:        248       249       248
+        Jacs:           8        11         8
+        Ders:         358       406       358
+  
+   34   Steps:         30        30        30
+        Jacs:           1         2         1
+        Ders:          45        54        45
+  
+   35   Steps:         88        88        88
+        Jacs:           5         6         5
+        Ders:         146       159       146
+  
+   36   Steps:         74        59        74
+        Jacs:           2         5         2
+        Ders:         136       131       136
+  
+   41   Steps:         83        87        83
+        Jacs:           4         5         4
+        Ders:         137       163       137
+  
+   42   Steps:        266       253       266
+        Jacs:           6        11         6
+        Ders:         382       406       382
+  
+   43   Steps:        210       222       210
+        Jacs:           7         9         7
+        Ders:         298       387       298
+  
+   44   Steps:        380       396       380
+        Jacs:          11        16        11
+        Ders:         525       620       525
+  
+   45   Steps:         15        14        15
+        Jacs:           2         7         2
+        Ders:          34        84        34
+  
+   51   Steps:        385       334       385
+        Jacs:          19        23        19
+        Ders:         649       726       649
+  
+   52   Steps:        102       102       102
+        Jacs:           3         5         3
+        Ders:         141       155       141
+  
+   53   Steps:         27        27        27
+        Jacs:           2         3         2
+        Ders:          45        66        45
+  
+   54   Steps:       1308      1144      1308
+        Jacs:          34        50        34
+        Ders:        2206      2115      2206
+  
+   55   Steps:         70       134        70
+        Jacs:           2         5         2
+        Ders:         103       247       103
+  
+
+
+                     Results for ITOL =   7
+
+ Integration Statistics Follow:
+ The original VODE Jacobian was used.
+ The ODEs were not scaled.
+
+ Problem            Dense    Sparse    Banded
+    1   Steps:        229       229       229
+        Jacs:           8         8         8
+        Ders:         308       340       308
+  
+    2   Steps:        258       256       258
+        Jacs:           9        11         9
+        Ders:         409       532       409
+  
+    3   Steps:        289       289       289
+        Jacs:           8        11         8
+        Ders:         398       454       398
+  
+    4   Steps:        358       358       358
+        Jacs:          11        14        11
+        Ders:         535       705       535
+  
+   11   Steps:       1095      1094      1095
+        Jacs:          25        36        25
+        Ders:        1360      1545      1360
+  
+   12   Steps:        201       201       201
+        Jacs:           7         7         7
+        Ders:         282       324       282
+  
+   13   Steps:        219       219       219
+        Jacs:           7         7         7
+        Ders:         301       343       301
+  
+   14   Steps:        364       364       364
+        Jacs:          10        13        10
+        Ders:         453       549       453
+  
+   15   Steps:       2961      2961      2961
+        Jacs:          55        84        55
+        Ders:        3451      4129      3451
+  
+   21   Steps:        267       266       267
+        Jacs:           9        11         9
+        Ders:         354       409       354
+  
+   22   Steps:        242       241       242
+        Jacs:           9        10         9
+        Ders:         334       379       334
+  
+   23   Steps:        241       240       241
+        Jacs:           9         9         9
+        Ders:         334       369       334
+  
+   24   Steps:        254       254       254
+        Jacs:           9        11         9
+        Ders:         374       412       374
+  
+   25   Steps:        256       258       256
+        Jacs:           9        11         9
+        Ders:         342       413       342
+  
+   31   Steps:        298       326       298
+        Jacs:           7        14         7
+        Ders:         480       593       480
+  
+   32   Steps:        299       268       299
+        Jacs:           7        11         7
+        Ders:         418       418       418
+  
+   33   Steps:        317       309       317
+        Jacs:          10        14        10
+        Ders:         444       519       444
+  
+   34   Steps:         55        55        55
+        Jacs:           3         3         3
+        Ders:          81        90        81
+  
+   35   Steps:        186       154       186
+        Jacs:           7        10         7
+        Ders:         295       318       295
+  
+   36   Steps:        109        84       109
+        Jacs:           3         5         3
+        Ders:         216       163       216
+  
+   41   Steps:        105       106       105
+        Jacs:           5         5         5
+        Ders:         170       192       170
+  
+   42   Steps:        377       366       377
+        Jacs:           9        14         9
+        Ders:         519       530       519
+  
+   43   Steps:        345       295       345
+        Jacs:          11        11        11
+        Ders:         524       494       524
+  
+   44   Steps:        549       532       549
+        Jacs:          14        19        14
+        Ders:         711       813       711
+  
+   45   Steps:         22        20        22
+        Jacs:           2         5         2
+        Ders:          42        72        42
+  
+   51   Steps:        579       452       579
+        Jacs:          22        27        22
+        Ders:        1014       912      1014
+  
+   52   Steps:        123       121       123
+        Jacs:           5         5         5
+        Ders:         192       195       192
+  
+   53   Steps:         35        35        35
+        Jacs:           2         3         2
+        Ders:          55        75        55
+  
+   54   Steps:       1811      1563      1811
+        Jacs:          41        65        41
+        Ders:        2965      2714      2965
+  
+   55   Steps:        117       109       117
+        Jacs:           4         6         4
+        Ders:         197       219       197
+  
+
+
+                     Results for ITOL =   8
+
+ Integration Statistics Follow:
+ The original VODE Jacobian was used.
+ The ODEs were not scaled.
+
+ Problem            Dense    Sparse    Banded
+    1   Steps:        302       302       302
+        Jacs:          11        11        11
+        Ders:         408       452       408
+  
+    2   Steps:        357       354       357
+        Jacs:          11        14        11
+        Ders:         520       675       520
+  
+    3   Steps:        400       400       400
+        Jacs:          11        14        11
+        Ders:         514       582       514
+  
+    4   Steps:        495       495       495
+        Jacs:          13        16        13
+        Ders:         685       875       685
+  
+   11   Steps:       1507      1544      1507
+        Jacs:          32        48        32
+        Ders:        1811      2106      1811
+  
+   12   Steps:        281       281       281
+        Jacs:           9        11         9
+        Ders:         371       449       371
+  
+   13   Steps:        305       305       305
+        Jacs:          10        11        10
+        Ders:         402       474       402
+  
+   14   Steps:        592       592       592
+        Jacs:          15        18        15
+        Ders:         737       863       737
+  
+   15   Steps:       3304      3304      3304
+        Jacs:          60        89        60
+        Ders:        3852      4560      3852
+  
+   21   Steps:        368       368       368
+        Jacs:          12        13        12
+        Ders:         463       519       463
+  
+   22   Steps:        340       339       340
+        Jacs:          11        13        11
+        Ders:         444       502       444
+  
+   23   Steps:        327       325       327
+        Jacs:          10        11        10
+        Ders:         415       462       415
+  
+   24   Steps:        341       336       341
+        Jacs:          11        14        11
+        Ders:         445       509       445
+  
+   25   Steps:        351       346       351
+        Jacs:          12        13        12
+        Ders:         460       510       460
+  
+   31   Steps:        419       414       419
+        Jacs:          10        16        10
+        Ders:         612       696       612
+  
+   32   Steps:        418       387       418
+        Jacs:           9        16         9
+        Ders:         583       622       583
+  
+   33   Steps:        434       413       434
+        Jacs:          13        18        13
+        Ders:         578       653       578
+  
+   34   Steps:         65        66        65
+        Jacs:           4         3         4
+        Ders:         100       109       100
+  
+   35   Steps:        231       210       231
+        Jacs:           8        12         8
+        Ders:         363       373       363
+  
+   36   Steps:        145       151       145
+        Jacs:           3         7         3
+        Ders:         236       282       236
+  
+   41   Steps:        132       135       132
+        Jacs:           7         5         7
+        Ders:         215       221       215
+  
+   42   Steps:        531       508       531
+        Jacs:          12        18        12
+        Ders:         666       704       666
+  
+   43   Steps:        397       410       397
+        Jacs:          12        16        12
+        Ders:         584       647       584
+  
+   44   Steps:        748       739       748
+        Jacs:          18        25        18
+        Ders:         916      1057       916
+  
+   45   Steps:         29        30        29
+        Jacs:           2         5         2
+        Ders:          56        93        56
+  
+   51   Steps:        816       735       816
+        Jacs:          25        36        25
+        Ders:        1339      1410      1339
+  
+   52   Steps:        166       164       166
+        Jacs:           5         5         5
+        Ders:         219       224       219
+  
+   53   Steps:         56        50        56
+        Jacs:           2         3         2
+        Ders:          83        96        83
+  
+   54   Steps:       2320      2237      2320
+        Jacs:          49        82        49
+        Ders:        3652      3832      3652
+  
+   55   Steps:        161       156       161
+        Jacs:           5         6         5
+        Ders:         296       290       296
+  
+
+
+                     Results for ITOL =   9
+
+ Integration Statistics Follow:
+ The original VODE Jacobian was used.
+ The ODEs were not scaled.
+
+ Problem            Dense    Sparse    Banded
+    1   Steps:        428       428       428
+        Jacs:          13        16        13
+        Ders:         542       618       542
+  
+    2   Steps:        486       486       486
+        Jacs:          14        16        14
+        Ders:         673       835       673
+  
+    3   Steps:        554       554       554
+        Jacs:          14        18        14
+        Ders:         674       762       674
+  
+    4   Steps:        703       703       703
+        Jacs:          18        26        18
+        Ders:         953      1293       953
+  
+   11   Steps:       2270      2244      2270
+        Jacs:          45        66        45
+        Ders:        2668      3002      2668
+  
+   12   Steps:        390       390       390
+        Jacs:          11        15        11
+        Ders:         495       609       495
+  
+   13   Steps:        426       426       426
+        Jacs:          11        13        11
+        Ders:         529       619       529
+  
+   14   Steps:        844       844       844
+        Jacs:          19        27        19
+        Ders:        1015      1225      1015
+  
+   15   Steps:       3856      3856      3856
+        Jacs:          70       105        70
+        Ders:        4464      5304      4464
+  
+   21   Steps:        525       525       525
+        Jacs:          16        18        16
+        Ders:         643       724       643
+  
+   22   Steps:        465       465       465
+        Jacs:          14        15        14
+        Ders:         579       643       579
+  
+   23   Steps:        469       469       469
+        Jacs:          13        15        13
+        Ders:         571       643       571
+  
+   24   Steps:        483       480       483
+        Jacs:          14        15        14
+        Ders:         605       653       605
+  
+   25   Steps:        478       492       478
+        Jacs:          14        16        14
+        Ders:         608       682       608
+  
+   31   Steps:        591       592       591
+        Jacs:          14        23        14
+        Ders:         851       958       851
+  
+   32   Steps:        539       544       539
+        Jacs:          11        21        11
+        Ders:         797       879       797
+  
+   33   Steps:        580       582       580
+        Jacs:          16        20        16
+        Ders:         725       823       725
+  
+   34   Steps:         93        87        93
+        Jacs:           4         5         4
+        Ders:         163       147       163
+  
+   35   Steps:        359       328       359
+        Jacs:          10        15        10
+        Ders:         548       513       548
+  
+   36   Steps:        218       226       218
+        Jacs:           5        10         5
+        Ders:         354       426       354
+  
+   41   Steps:        182       182       182
+        Jacs:           7         8         7
+        Ders:         281       305       281
+  
+   42   Steps:        726       725       726
+        Jacs:          16        23        16
+        Ders:         889       949       889
+  
+   43   Steps:        535       495       535
+        Jacs:          15        18        15
+        Ders:         773       742       773
+  
+   44   Steps:       1048      1047      1048
+        Jacs:          23        31        23
+        Ders:        1267      1411      1267
+  
+   45   Steps:         41        43        41
+        Jacs:           2         5         2
+        Ders:          77       107        77
+  
+   51   Steps:        960      1104       960
+        Jacs:          29        46        29
+        Ders:        1545      2015      1545
+  
+   52   Steps:        238       242       238
+        Jacs:           8         9         8
+        Ders:         314       346       314
+  
+   53   Steps:         76        77        76
+        Jacs:           2         5         2
+        Ders:         109       146       109
+  
+   54   Steps:       3208      3105      3208
+        Jacs:          62       112        62
+        Ders:        4842      5145      4842
+  
+   55   Steps:        218       209       218
+        Jacs:           7         8         7
+        Ders:         391       402       391
+  
+
+
+                     Results for ITOL =  10
+
+ Integration Statistics Follow:
+ The original VODE Jacobian was used.
+ The ODEs were not scaled.
+
+ Problem            Dense    Sparse    Banded
+    1   Steps:        591       591       591
+        Jacs:          17        18        17
+        Ders:         712       788       712
+  
+    2   Steps:        699       699       699
+        Jacs:          18        24        18
+        Ders:         919      1189       919
+  
+    3   Steps:        787       787       787
+        Jacs:          18        25        18
+        Ders:         928      1056       928
+  
+    4   Steps:        999       999       999
+        Jacs:          22        31        22
+        Ders:        1284      1684      1284
+  
+   11   Steps:       3303      3260      3303
+        Jacs:          63        93        63
+        Ders:        3833      4267      3833
+  
+   12   Steps:        558       558       558
+        Jacs:          15        18        15
+        Ders:         697       823       697
+  
+   13   Steps:        598       598       598
+        Jacs:          16        19        16
+        Ders:         735       867       735
+  
+   14   Steps:       1129      1129      1129
+        Jacs:          24        32        24
+        Ders:        1324      1564      1324
+  
+   15   Steps:       4689      4689      4689
+        Jacs:          86       128        86
+        Ders:        5406      6426      5406
+  
+   21   Steps:        736       736       736
+        Jacs:          19        24        19
+        Ders:         886      1006       886
+  
+   22   Steps:        669       669       669
+        Jacs:          18        22        18
+        Ders:         804       908       804
+  
+   23   Steps:        659       654       659
+        Jacs:          18        20        18
+        Ders:         791       883       791
+  
+   24   Steps:        694       683       694
+        Jacs:          18        25        18
+        Ders:         826       944       826
+  
+   25   Steps:        703       709       703
+        Jacs:          18        22        18
+        Ders:         839       950       839
+  
+   31   Steps:        747       741       747
+        Jacs:          17        29        17
+        Ders:        1062      1197      1062
+  
+   32   Steps:        726       661       726
+        Jacs:          15        26        15
+        Ders:        1019      1049      1019
+  
+   33   Steps:        836       832       836
+        Jacs:          21        28        21
+        Ders:         997      1146       997
+  
+   34   Steps:        123       124       123
+        Jacs:           6         5         6
+        Ders:         189       218       189
+  
+   35   Steps:        511       519       511
+        Jacs:          15        20        15
+        Ders:         782       876       782
+  
+   36   Steps:        291       254       291
+        Jacs:           8        10         8
+        Ders:         471       443       471
+  
+   41   Steps:        234       221       234
+        Jacs:          10         9        10
+        Ders:         342       359       342
+  
+   42   Steps:       1041      1042      1041
+        Jacs:          21        34        21
+        Ders:        1214      1313      1214
+  
+   43   Steps:        671       615       671
+        Jacs:          17        21        17
+        Ders:         918       877       918
+  
+   44   Steps:       1525      1508      1525
+        Jacs:          32        48        32
+        Ders:        1801      2015      1801
+  
+   45   Steps:         61        66        61
+        Jacs:           2         5         2
+        Ders:          93       136        93
+  
+   51   Steps:       1299      1290      1299
+        Jacs:          32        50        32
+        Ders:        2016      2270      2016
+  
+   52   Steps:        318       323       318
+        Jacs:          10        11        10
+        Ders:         385       419       385
+  
+   53   Steps:        131       135       131
+        Jacs:           3         6         3
+        Ders:         182       228       182
+  
+   54   Steps:       3984      4194      3984
+        Jacs:          78       147        78
+        Ders:        5659      6749      5659
+  
+   55   Steps:        374       336       374
+        Jacs:          10        14        10
+        Ders:         631       651       631
+  
+
+
+                     Results for ITOL =  11
+
+ Integration Statistics Follow:
+ The original VODE Jacobian was used.
+ The ODEs were not scaled.
+
+ Problem            Dense    Sparse    Banded
+    1   Steps:        868       868       868
+        Jacs:          21        25        21
+        Ders:        1012      1128      1012
+  
+    2   Steps:        965       987       965
+        Jacs:          23        31        23
+        Ders:        1270      1640      1270
+  
+    3   Steps:       1112      1112      1112
+        Jacs:          23        34        23
+        Ders:        1271      1451      1271
+  
+    4   Steps:       1447      1447      1447
+        Jacs:          31        44        31
+        Ders:        1825      2395      1825
+  
+   11   Steps:       4822      4792      4822
+        Jacs:          88       130        88
+        Ders:        5515      6182      5515
+  
+   12   Steps:        789       789       789
+        Jacs:          19        25        19
+        Ders:         950      1136       950
+  
+   13   Steps:        846       846       846
+        Jacs:          19        26        19
+        Ders:        1005      1203      1005
+  
+   14   Steps:       1404      1404      1404
+        Jacs:          29        41        29
+        Ders:        1635      1953      1635
+  
+   15   Steps:       6016      6014      6016
+        Jacs:         107       157       107
+        Ders:        6869      8107      6869
+  
+   21   Steps:       1072      1072      1072
+        Jacs:          25        32        25
+        Ders:        1231      1388      1231
+  
+   22   Steps:        947       947       947
+        Jacs:          23        29        23
+        Ders:        1104      1245      1104
+  
+   23   Steps:        931       931       931
+        Jacs:          22        28        22
+        Ders:        1077      1214      1077
+  
+   24   Steps:        993       993       993
+        Jacs:          23        31        23
+        Ders:        1144      1301      1144
+  
+   25   Steps:       1023      1024      1023
+        Jacs:          25        28        25
+        Ders:        1189      1315      1189
+  
+   31   Steps:        903       887       903
+        Jacs:          21        30        21
+        Ders:        1203      1253      1203
+  
+   32   Steps:        930       947       930
+        Jacs:          19        34        19
+        Ders:        1234      1419      1234
+  
+   33   Steps:       1163      1147      1163
+        Jacs:          27        37        27
+        Ders:        1370      1544      1370
+  
+   34   Steps:        182       176       182
+        Jacs:           8         8         8
+        Ders:         337       310       337
+  
+   35   Steps:        653       643       653
+        Jacs:          16        23        16
+        Ders:         944       983       944
+  
+   36   Steps:        334       355       334
+        Jacs:           9        14         9
+        Ders:         484       602       484
+  
+   41   Steps:        390       363       390
+        Jacs:          12        15        12
+        Ders:         527       597       527
+  
+   42   Steps:       1504      1525      1504
+        Jacs:          30        48        30
+        Ders:        1727      1881      1727
+  
+   43   Steps:        841       800       841
+        Jacs:          21        25        21
+        Ders:        1080      1059      1080
+  
+   44   Steps:       2182      2179      2182
+        Jacs:          43        62        43
+        Ders:        2483      2813      2483
+  
+   45   Steps:         85        86        85
+        Jacs:           2         6         2
+        Ders:         127       172       127
+  
+   51   Steps:       1881      1673      1881
+        Jacs:          39        56        39
+        Ders:        2767      2706      2767
+  
+   52   Steps:        445       442       445
+        Jacs:          12        15        12
+        Ders:         533       569       533
+  
+   53   Steps:        144       155       144
+        Jacs:           3         6         3
+        Ders:         201       259       201
+  
+   54   Steps:       5666      5627      5666
+        Jacs:         104       193       104
+        Ders:        7821      8589      7821
+  
+   55   Steps:        429       457       429
+        Jacs:          12        18        12
+        Ders:         678       876       678
+  
+
+
+                     Results for ITOL =  12
+
+ Integration Statistics Follow:
+ The original VODE Jacobian was used.
+ The ODEs were not scaled.
+
+ Problem            Dense    Sparse    Banded
+    1   Steps:       1239      1239      1239
+        Jacs:          28        36        28
+        Ders:        1417      1593      1417
+  
+    2   Steps:       1410      1405      1410
+        Jacs:          31        42        31
+        Ders:        1771      2247      1771
+  
+    3   Steps:       1659      1660      1659
+        Jacs:          34        48        34
+        Ders:        1884      2148      1884
+  
+    4   Steps:       2088      2088      2088
+        Jacs:          42        58        42
+        Ders:        2581      3321      2581
+  
+   11   Steps:       6934      6804      6934
+        Jacs:         124       180       124
+        Ders:        7861      8688      7861
+  
+   12   Steps:       1126      1126      1126
+        Jacs:          24        31        24
+        Ders:        1328      1556      1328
+  
+   13   Steps:       1254      1254      1254
+        Jacs:          27        36        27
+        Ders:        1463      1733      1463
+  
+   14   Steps:       2020      2020      2020
+        Jacs:          40        56        40
+        Ders:        2315      2747      2315
+  
+   15   Steps:       7702      7706      7702
+        Jacs:         136       205       136
+        Ders:        8751     10399      8751
+  
+   21   Steps:       1548      1548      1548
+        Jacs:          34        47        34
+        Ders:        1749      1990      1749
+  
+   22   Steps:       1399      1399      1399
+        Jacs:          31        39        31
+        Ders:        1592      1782      1592
+  
+   23   Steps:       1385      1385      1385
+        Jacs:          30        39        30
+        Ders:        1573      1766      1573
+  
+   24   Steps:       1438      1438      1438
+        Jacs:          31        43        31
+        Ders:        1626      1849      1626
+  
+   25   Steps:       1472      1475      1472
+        Jacs:          32        44        32
+        Ders:        1669      1898      1669
+  
+   31   Steps:       1129      1119      1129
+        Jacs:          24        35        24
+        Ders:        1372      1485      1372
+  
+   32   Steps:       1137      1160      1137
+        Jacs:          22        39        22
+        Ders:        1382      1558      1382
+  
+   33   Steps:       1657      1652      1657
+        Jacs:          36        52        36
+        Ders:        1900      2167      1900
+  
+   34   Steps:        259       247       259
+        Jacs:           9        11         9
+        Ders:         434       455       434
+  
+   35   Steps:       1045       937      1045
+        Jacs:          24        34        24
+        Ders:        1500      1445      1500
+  
+   36   Steps:        451       445       451
+        Jacs:          12        16        12
+        Ders:         628       686       628
+  
+   41   Steps:        418       447       418
+        Jacs:          14        16        14
+        Ders:         559       674       559
+  
+   42   Steps:       2195      2175      2195
+        Jacs:          41        62        41
+        Ders:        2491      2628      2491
+  
+   43   Steps:       1134      1090      1134
+        Jacs:          26        35        26
+        Ders:        1314      1402      1314
+  
+   44   Steps:       3190      3130      3190
+        Jacs:          61        89        61
+        Ders:        3644      4013      3644
+  
+   45   Steps:        105       103       105
+        Jacs:           2         7         2
+        Ders:         151       191       151
+  
+   51   Steps:       2298      2396      2298
+        Jacs:          47        83        47
+        Ders:        3270      3820      3270
+  
+   52   Steps:        656       649       656
+        Jacs:          17        21        17
+        Ders:         775       812       775
+  
+   53   Steps:        212       197       212
+        Jacs:           5         8         5
+        Ders:         298       325       298
+  
+   54   Steps:       7815      7617      7815
+        Jacs:         141       242       141
+        Ders:       10298     11111     10298
+  
+   55   Steps:        544       571       544
+        Jacs:          17        28        17
+        Ders:         859      1046       859
+  
+
+
+
+                    Summary Statistics Follow
+ ____________________________________________________________
+ Class/Problem = A1
+
+ Problem No. =   1
+ ITOL =   5
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.32471D-05    0.32471D-05
+ Sparse: JACSP - VODE:     0.32471D-05    0.32471D-05
+ Banded: JACSP - VODE:     0.32471D-05    0.32471D-05
+                   J      V      J      V      J      V
+ Dense  SDJ:     127    127    192    192      6      6
+ Sparse SDJ:     127    127    208    208      5      5
+ Banded SDJ:     127    127    192    192      6      6
+ ____________________________________________________________
+ Problem No. =   1
+ ITOL =   5
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.32471D-05    0.32471D-05
+ Sparse: JACSP - VODE:     0.32471D-05    0.32471D-05
+ Banded: JACSP - VODE:     0.32471D-05    0.32471D-05
+                   J      V      J      V      J      V
+ Dense  SDJ:     127    127    192    192      6      6
+ Sparse SDJ:     127    127    208    208      5      5
+ Banded SDJ:     127    127    192    192      6      6
+ ____________________________________________________________
+
+ Problem No. =   1
+ ITOL =   6
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.30489D-06    0.30490D-06
+ Sparse: JACSP - VODE:     0.30488D-06    0.30487D-06
+ Banded: JACSP - VODE:     0.30489D-06    0.30490D-06
+                   J      V      J      V      J      V
+ Dense  SDJ:     168    168    242    242      7      7
+ Sparse SDJ:     168    168    278    278      8      8
+ Banded SDJ:     168    168    242    242      7      7
+ ____________________________________________________________
+ Problem No. =   1
+ ITOL =   6
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.30489D-06    0.30490D-06
+ Sparse: JACSP - VODE:     0.30488D-06    0.30487D-06
+ Banded: JACSP - VODE:     0.30489D-06    0.30490D-06
+                   J      V      J      V      J      V
+ Dense  SDJ:     168    168    242    242      7      7
+ Sparse SDJ:     168    168    278    278      8      8
+ Banded SDJ:     168    168    242    242      7      7
+ ____________________________________________________________
+
+ Problem No. =   1
+ ITOL =   7
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.17939D-06    0.17939D-06
+ Sparse: JACSP - VODE:     0.17939D-06    0.17939D-06
+ Banded: JACSP - VODE:     0.17939D-06    0.17939D-06
+                   J      V      J      V      J      V
+ Dense  SDJ:     229    229    308    308      8      8
+ Sparse SDJ:     229    229    340    340      8      8
+ Banded SDJ:     229    229    308    308      8      8
+ ____________________________________________________________
+ Problem No. =   1
+ ITOL =   7
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.17939D-06    0.17939D-06
+ Sparse: JACSP - VODE:     0.17939D-06    0.17939D-06
+ Banded: JACSP - VODE:     0.17939D-06    0.17939D-06
+                   J      V      J      V      J      V
+ Dense  SDJ:     229    229    308    308      8      8
+ Sparse SDJ:     229    229    340    340      8      8
+ Banded SDJ:     229    229    308    308      8      8
+ ____________________________________________________________
+
+ Problem No. =   1
+ ITOL =   8
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.10373D-07    0.10373D-07
+ Sparse: JACSP - VODE:     0.10373D-07    0.10373D-07
+ Banded: JACSP - VODE:     0.10373D-07    0.10373D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:     302    302    408    408     11     11
+ Sparse SDJ:     302    302    452    452     11     11
+ Banded SDJ:     302    302    408    408     11     11
+ ____________________________________________________________
+ Problem No. =   1
+ ITOL =   8
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.10373D-07    0.10373D-07
+ Sparse: JACSP - VODE:     0.10373D-07    0.10373D-07
+ Banded: JACSP - VODE:     0.10373D-07    0.10373D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:     302    302    408    408     11     11
+ Sparse SDJ:     302    302    452    452     11     11
+ Banded SDJ:     302    302    408    408     11     11
+ ____________________________________________________________
+
+ Problem No. =   1
+ ITOL =   9
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.20958D-08    0.20958D-08
+ Sparse: JACSP - VODE:     0.20958D-08    0.20958D-08
+ Banded: JACSP - VODE:     0.20958D-08    0.20958D-08
+                   J      V      J      V      J      V
+ Dense  SDJ:     428    428    542    542     13     13
+ Sparse SDJ:     428    428    618    618     16     16
+ Banded SDJ:     428    428    542    542     13     13
+ ____________________________________________________________
+ Problem No. =   1
+ ITOL =   9
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.20958D-08    0.20958D-08
+ Sparse: JACSP - VODE:     0.20958D-08    0.20958D-08
+ Banded: JACSP - VODE:     0.20958D-08    0.20958D-08
+                   J      V      J      V      J      V
+ Dense  SDJ:     428    428    542    542     13     13
+ Sparse SDJ:     428    428    618    618     16     16
+ Banded SDJ:     428    428    542    542     13     13
+ ____________________________________________________________
+
+ Problem No. =   1
+ ITOL =  10
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.33624D-09    0.33624D-09
+ Sparse: JACSP - VODE:     0.33624D-09    0.33624D-09
+ Banded: JACSP - VODE:     0.33624D-09    0.33624D-09
+                   J      V      J      V      J      V
+ Dense  SDJ:     591    591    713    712     17     17
+ Sparse SDJ:     591    591    789    788     18     18
+ Banded SDJ:     591    591    713    712     17     17
+ ____________________________________________________________
+ Problem No. =   1
+ ITOL =  10
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.33624D-09    0.33624D-09
+ Sparse: JACSP - VODE:     0.33624D-09    0.33624D-09
+ Banded: JACSP - VODE:     0.33624D-09    0.33624D-09
+                   J      V      J      V      J      V
+ Dense  SDJ:     591    591    713    712     17     17
+ Sparse SDJ:     591    591    789    788     18     18
+ Banded SDJ:     591    591    713    712     17     17
+ ____________________________________________________________
+
+ Problem No. =   1
+ ITOL =  11
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.33886D-10    0.33879D-10
+ Sparse: JACSP - VODE:     0.33883D-10    0.33879D-10
+ Banded: JACSP - VODE:     0.33886D-10    0.33879D-10
+                   J      V      J      V      J      V
+ Dense  SDJ:     868    868   1013   1012     21     21
+ Sparse SDJ:     868    868   1129   1128     25     25
+ Banded SDJ:     868    868   1013   1012     21     21
+ ____________________________________________________________
+ Problem No. =   1
+ ITOL =  11
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.33886D-10    0.33879D-10
+ Sparse: JACSP - VODE:     0.33883D-10    0.33879D-10
+ Banded: JACSP - VODE:     0.33886D-10    0.33879D-10
+                   J      V      J      V      J      V
+ Dense  SDJ:     868    868   1013   1012     21     21
+ Sparse SDJ:     868    868   1129   1128     25     25
+ Banded SDJ:     868    868   1013   1012     21     21
+ ____________________________________________________________
+
+ Problem No. =   1
+ ITOL =  12
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.68578D-11    0.68578D-11
+ Sparse: JACSP - VODE:     0.68577D-11    0.68578D-11
+ Banded: JACSP - VODE:     0.68578D-11    0.68578D-11
+                   J      V      J      V      J      V
+ Dense  SDJ:    1239   1239   1417   1417     28     28
+ Sparse SDJ:    1239   1239   1593   1593     36     36
+ Banded SDJ:    1239   1239   1417   1417     28     28
+ ____________________________________________________________
+ Problem No. =   1
+ ITOL =  12
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.68578D-11    0.68578D-11
+ Sparse: JACSP - VODE:     0.68577D-11    0.68578D-11
+ Banded: JACSP - VODE:     0.68578D-11    0.68578D-11
+                   J      V      J      V      J      V
+ Dense  SDJ:    1239   1239   1417   1417     28     28
+ Sparse SDJ:    1239   1239   1593   1593     36     36
+ Banded SDJ:    1239   1239   1417   1417     28     28
+ ____________________________________________________________
+ ____________________________________________________________
+ Class/Problem = A2
+
+ Problem No. =   2
+ ITOL =   5
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.57532D-06    0.56583D-06
+ Sparse: JACSP - VODE:     0.57503D-06    0.57517D-06
+ Banded: JACSP - VODE:     0.57532D-06    0.56583D-06
+                   J      V      J      V      J      V
+ Dense  SDJ:     141    141    224    224      5      5
+ Sparse SDJ:     141    141    287    287      6      6
+ Banded SDJ:     141    141    224    224      5      5
+ ____________________________________________________________
+ Problem No. =   2
+ ITOL =   5
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.45095D-05    0.45109D-05
+ Sparse: JACSP - VODE:     0.45063D-05    0.44918D-05
+ Banded: JACSP - VODE:     0.45095D-05    0.45109D-05
+                   J      V      J      V      J      V
+ Dense  SDJ:     153    153    249    249      5      5
+ Sparse SDJ:     153    153    312    312      6      6
+ Banded SDJ:     153    153    249    249      5      5
+ ____________________________________________________________
+
+ Problem No. =   2
+ ITOL =   6
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.38582D-05    0.23459D-05
+ Sparse: JACSP - VODE:     0.42534D-05    0.42008D-05
+ Banded: JACSP - VODE:     0.38582D-05    0.23459D-05
+                   J      V      J      V      J      V
+ Dense  SDJ:     206    208    330    321      7      7
+ Sparse SDJ:     207    207    410    410      8      8
+ Banded SDJ:     206    208    330    321      7      7
+ ____________________________________________________________
+ Problem No. =   2
+ ITOL =   6
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.20318D-06    0.20269D-06
+ Sparse: JACSP - VODE:     0.20257D-06    0.20302D-06
+ Banded: JACSP - VODE:     0.20318D-06    0.20269D-06
+                   J      V      J      V      J      V
+ Dense  SDJ:     195    195    311    309      7      7
+ Sparse SDJ:     195    195    391    391      8      8
+ Banded SDJ:     195    195    311    309      7      7
+ ____________________________________________________________
+
+ Problem No. =   2
+ ITOL =   7
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.12239D-06    0.91142D-07
+ Sparse: JACSP - VODE:     0.13796D-06    0.95234D-07
+ Banded: JACSP - VODE:     0.12239D-06    0.91142D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:     268    263    421    418      9      9
+ Sparse SDJ:     264    268    528    544     11     11
+ Banded SDJ:     268    263    421    418      9      9
+ ____________________________________________________________
+ Problem No. =   2
+ ITOL =   7
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.90068D-07    0.93205D-07
+ Sparse: JACSP - VODE:     0.19394D-06    0.74497D-07
+ Banded: JACSP - VODE:     0.90068D-07    0.93205D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:     251    258    399    409      9      9
+ Sparse SDJ:     256    256    525    532     11     11
+ Banded SDJ:     251    258    399    409      9      9
+ ____________________________________________________________
+
+ Problem No. =   2
+ ITOL =   8
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.11411D-07    0.24812D-07
+ Sparse: JACSP - VODE:     0.15639D-07    0.11087D-07
+ Banded: JACSP - VODE:     0.11411D-07    0.24812D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:     374    375    536    530     11     11
+ Sparse SDJ:     376    376    684    700     14     15
+ Banded SDJ:     374    375    536    530     11     11
+ ____________________________________________________________
+ Problem No. =   2
+ ITOL =   8
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.94242D-08    0.17883D-07
+ Sparse: JACSP - VODE:     0.17578D-07    0.16440D-07
+ Banded: JACSP - VODE:     0.94242D-08    0.17883D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:     354    357    526    520     11     11
+ Sparse SDJ:     358    354    679    675     14     14
+ Banded SDJ:     354    357    526    520     11     11
+ ____________________________________________________________
+
+ Problem No. =   2
+ ITOL =   9
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.24991D-08    0.14111D-08
+ Sparse: JACSP - VODE:     0.26028D-08    0.22225D-08
+ Banded: JACSP - VODE:     0.24991D-08    0.14111D-08
+                   J      V      J      V      J      V
+ Dense  SDJ:     522    522    718    731     14     15
+ Sparse SDJ:     522    521    880    895     16     17
+ Banded SDJ:     522    522    718    731     14     15
+ ____________________________________________________________
+ Problem No. =   2
+ ITOL =   9
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.17847D-08    0.17887D-08
+ Sparse: JACSP - VODE:     0.17876D-08    0.17876D-08
+ Banded: JACSP - VODE:     0.17847D-08    0.17887D-08
+                   J      V      J      V      J      V
+ Dense  SDJ:     486    486    674    673     14     14
+ Sparse SDJ:     486    486    836    835     16     16
+ Banded SDJ:     486    486    674    673     14     14
+ ____________________________________________________________
+
+ Problem No. =   2
+ ITOL =  10
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.32399D-09    0.33713D-09
+ Sparse: JACSP - VODE:     0.34220D-09    0.33385D-09
+ Banded: JACSP - VODE:     0.32399D-09    0.33713D-09
+                   J      V      J      V      J      V
+ Dense  SDJ:     735    736    996    990     19     19
+ Sparse SDJ:     736    735   1252   1268     24     25
+ Banded SDJ:     735    736    996    990     19     19
+ ____________________________________________________________
+ Problem No. =   2
+ ITOL =  10
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.20452D-09    0.12436D-09
+ Sparse: JACSP - VODE:     0.22710D-09    0.12435D-09
+ Banded: JACSP - VODE:     0.20452D-09    0.12436D-09
+                   J      V      J      V      J      V
+ Dense  SDJ:     700    699    945    919     19     18
+ Sparse SDJ:     700    699   1186   1189     23     24
+ Banded SDJ:     700    699    945    919     19     18
+ ____________________________________________________________
+
+ Problem No. =   2
+ ITOL =  11
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.50967D-10    0.37573D-10
+ Sparse: JACSP - VODE:     0.54345D-10    0.52035D-10
+ Banded: JACSP - VODE:     0.50967D-10    0.37573D-10
+                   J      V      J      V      J      V
+ Dense  SDJ:    1026   1039   1326   1337     25     24
+ Sparse SDJ:    1031   1027   1651   1655     30     31
+ Banded SDJ:    1026   1039   1326   1337     25     24
+ ____________________________________________________________
+ Problem No. =   2
+ ITOL =  11
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.33458D-10    0.33194D-10
+ Sparse: JACSP - VODE:     0.31825D-10    0.32460D-10
+ Banded: JACSP - VODE:     0.33458D-10    0.33194D-10
+                   J      V      J      V      J      V
+ Dense  SDJ:     987    965   1318   1270     24     23
+ Sparse SDJ:     986    987   1661   1640     32     31
+ Banded SDJ:     987    965   1318   1270     24     23
+ ____________________________________________________________
+
+ Problem No. =   2
+ ITOL =  12
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.13180D-10    0.13130D-10
+ Sparse: JACSP - VODE:     0.13297D-10    0.13253D-10
+ Banded: JACSP - VODE:     0.13180D-10    0.13130D-10
+                   J      V      J      V      J      V
+ Dense  SDJ:    1518   1522   1898   1906     33     33
+ Sparse SDJ:    1523   1522   2404   2383     44     43
+ Banded SDJ:    1518   1522   1898   1906     33     33
+ ____________________________________________________________
+ Problem No. =   2
+ ITOL =  12
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.51101D-11    0.55014D-11
+ Sparse: JACSP - VODE:     0.66901D-11    0.65446D-11
+ Banded: JACSP - VODE:     0.51101D-11    0.55014D-11
+                   J      V      J      V      J      V
+ Dense  SDJ:    1389   1410   1746   1771     30     31
+ Sparse SDJ:    1400   1405   2299   2247     45     42
+ Banded SDJ:    1389   1410   1746   1771     30     31
+ ____________________________________________________________
+ ____________________________________________________________
+ Class/Problem = A3
+
+ Problem No. =   3
+ ITOL =   5
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.21302D-05    0.20977D-05
+ Sparse: JACSP - VODE:     0.21522D-05    0.20731D-05
+ Banded: JACSP - VODE:     0.21302D-05    0.20977D-05
+                   J      V      J      V      J      V
+ Dense  SDJ:     152    152    221    221      5      5
+ Sparse SDJ:     152    152    249    249      6      6
+ Banded SDJ:     152    152    221    221      5      5
+ ____________________________________________________________
+ Problem No. =   3
+ ITOL =   5
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.40943D-06    0.35956D-06
+ Sparse: JACSP - VODE:     0.38662D-06    0.43204D-06
+ Banded: JACSP - VODE:     0.40943D-06    0.35956D-06
+                   J      V      J      V      J      V
+ Dense  SDJ:     157    157    226    226      5      5
+ Sparse SDJ:     157    157    254    254      6      6
+ Banded SDJ:     157    157    226    226      5      5
+ ____________________________________________________________
+
+ Problem No. =   3
+ ITOL =   6
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.18930D-06    0.99705D-06
+ Sparse: JACSP - VODE:     0.37164D-05    0.12082D-05
+ Banded: JACSP - VODE:     0.18930D-06    0.99705D-06
+                   J      V      J      V      J      V
+ Dense  SDJ:     206    207    299    301      6      6
+ Sparse SDJ:     206    207    337    342      8      8
+ Banded SDJ:     206    207    299    301      6      6
+ ____________________________________________________________
+ Problem No. =   3
+ ITOL =   6
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.15468D-04    0.15528D-04
+ Sparse: JACSP - VODE:     0.15480D-04    0.15518D-04
+ Banded: JACSP - VODE:     0.15468D-04    0.15528D-04
+                   J      V      J      V      J      V
+ Dense  SDJ:     210    210    294    294      6      6
+ Sparse SDJ:     210    210    334    334      8      8
+ Banded SDJ:     210    210    294    294      6      6
+ ____________________________________________________________
+
+ Problem No. =   3
+ ITOL =   7
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.51466D-07    0.51101D-07
+ Sparse: JACSP - VODE:     0.47194D-07    0.49417D-07
+ Banded: JACSP - VODE:     0.51466D-07    0.51101D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:     276    276    385    385      8      8
+ Sparse SDJ:     276    276    441    441     11     11
+ Banded SDJ:     276    276    385    385      8      8
+ ____________________________________________________________
+ Problem No. =   3
+ ITOL =   7
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.41427D-06    0.25626D-06
+ Sparse: JACSP - VODE:     0.24850D-06    0.21908D-06
+ Banded: JACSP - VODE:     0.41427D-06    0.25626D-06
+                   J      V      J      V      J      V
+ Dense  SDJ:     290    289    401    398      8      8
+ Sparse SDJ:     289    289    454    454     11     11
+ Banded SDJ:     290    289    401    398      8      8
+ ____________________________________________________________
+
+ Problem No. =   3
+ ITOL =   8
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.63728D-07    0.63728D-07
+ Sparse: JACSP - VODE:     0.63730D-07    0.63731D-07
+ Banded: JACSP - VODE:     0.63728D-07    0.63728D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:     385    385    494    494     11     11
+ Sparse SDJ:     385    385    570    570     15     15
+ Banded SDJ:     385    385    494    494     11     11
+ ____________________________________________________________
+ Problem No. =   3
+ ITOL =   8
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.11996D-06    0.11996D-06
+ Sparse: JACSP - VODE:     0.11996D-06    0.11996D-06
+ Banded: JACSP - VODE:     0.11996D-06    0.11996D-06
+                   J      V      J      V      J      V
+ Dense  SDJ:     400    400    514    514     11     11
+ Sparse SDJ:     400    400    582    582     14     14
+ Banded SDJ:     400    400    514    514     11     11
+ ____________________________________________________________
+
+ Problem No. =   3
+ ITOL =   9
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.87621D-08    0.87620D-08
+ Sparse: JACSP - VODE:     0.87620D-08    0.87621D-08
+ Banded: JACSP - VODE:     0.87621D-08    0.87620D-08
+                   J      V      J      V      J      V
+ Dense  SDJ:     537    537    657    657     14     14
+ Sparse SDJ:     537    537    753    753     19     19
+ Banded SDJ:     537    537    657    657     14     14
+ ____________________________________________________________
+ Problem No. =   3
+ ITOL =   9
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.61145D-07    0.61165D-07
+ Sparse: JACSP - VODE:     0.61163D-07    0.61173D-07
+ Banded: JACSP - VODE:     0.61145D-07    0.61165D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:     554    554    674    674     14     14
+ Sparse SDJ:     554    554    762    762     18     18
+ Banded SDJ:     554    554    674    674     14     14
+ ____________________________________________________________
+
+ Problem No. =   3
+ ITOL =  10
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.21191D-09    0.21171D-09
+ Sparse: JACSP - VODE:     0.21146D-09    0.21173D-09
+ Banded: JACSP - VODE:     0.21191D-09    0.21171D-09
+                   J      V      J      V      J      V
+ Dense  SDJ:     760    760    908    908     19     19
+ Sparse SDJ:     760    760   1024   1024     24     24
+ Banded SDJ:     760    760    908    908     19     19
+ ____________________________________________________________
+ Problem No. =   3
+ ITOL =  10
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.26783D-08    0.26790D-08
+ Sparse: JACSP - VODE:     0.26778D-08    0.26784D-08
+ Banded: JACSP - VODE:     0.26783D-08    0.26790D-08
+                   J      V      J      V      J      V
+ Dense  SDJ:     787    787    928    928     18     18
+ Sparse SDJ:     787    787   1056   1056     25     25
+ Banded SDJ:     787    787    928    928     18     18
+ ____________________________________________________________
+
+ Problem No. =   3
+ ITOL =  11
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.14940D-09    0.15178D-09
+ Sparse: JACSP - VODE:     0.15153D-09    0.15016D-09
+ Banded: JACSP - VODE:     0.14940D-09    0.15178D-09
+                   J      V      J      V      J      V
+ Dense  SDJ:    1065   1065   1228   1228     23     23
+ Sparse SDJ:    1065   1065   1400   1400     33     33
+ Banded SDJ:    1065   1065   1228   1228     23     23
+ ____________________________________________________________
+ Problem No. =   3
+ ITOL =  11
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.94230D-09    0.94239D-09
+ Sparse: JACSP - VODE:     0.94206D-09    0.94365D-09
+ Banded: JACSP - VODE:     0.94230D-09    0.94239D-09
+                   J      V      J      V      J      V
+ Dense  SDJ:    1112   1112   1271   1271     23     23
+ Sparse SDJ:    1112   1112   1451   1451     34     34
+ Banded SDJ:    1112   1112   1271   1271     23     23
+ ____________________________________________________________
+
+ Problem No. =   3
+ ITOL =  12
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.96231D-11    0.10612D-10
+ Sparse: JACSP - VODE:     0.87089D-11    0.10959D-10
+ Banded: JACSP - VODE:     0.96231D-11    0.10612D-10
+                   J      V      J      V      J      V
+ Dense  SDJ:    1595   1599   1812   1817     33     33
+ Sparse SDJ:    1603   1594   2050   2049     45     46
+ Banded SDJ:    1595   1599   1812   1817     33     33
+ ____________________________________________________________
+ Problem No. =   3
+ ITOL =  12
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.97478D-10    0.47828D-10
+ Sparse: JACSP - VODE:     0.70922D-10    0.53681D-10
+ Banded: JACSP - VODE:     0.97478D-10    0.47828D-10
+                   J      V      J      V      J      V
+ Dense  SDJ:    1661   1659   1890   1884     34     34
+ Sparse SDJ:    1654   1660   2113   2148     45     48
+ Banded SDJ:    1661   1659   1890   1884     34     34
+ ____________________________________________________________
+ ____________________________________________________________
+ Class/Problem = A4
+
+ Problem No. =   4
+ ITOL =   5
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.35755D-04    0.35755D-04
+ Sparse: JACSP - VODE:     0.35755D-04    0.35755D-04
+ Banded: JACSP - VODE:     0.35755D-04    0.35755D-04
+                   J      V      J      V      J      V
+ Dense  SDJ:     189    189    291    291      6      6
+ Sparse SDJ:     189    189    391    391      8      8
+ Banded SDJ:     189    189    291    291      6      6
+ ____________________________________________________________
+ Problem No. =   4
+ ITOL =   5
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.35755D-04    0.35755D-04
+ Sparse: JACSP - VODE:     0.35755D-04    0.35755D-04
+ Banded: JACSP - VODE:     0.35755D-04    0.35755D-04
+                   J      V      J      V      J      V
+ Dense  SDJ:     189    189    291    291      6      6
+ Sparse SDJ:     189    189    391    391      8      8
+ Banded SDJ:     189    189    291    291      6      6
+ ____________________________________________________________
+
+ Problem No. =   4
+ ITOL =   6
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.76940D-06    0.76940D-06
+ Sparse: JACSP - VODE:     0.76940D-06    0.76940D-06
+ Banded: JACSP - VODE:     0.76940D-06    0.76940D-06
+                   J      V      J      V      J      V
+ Dense  SDJ:     254    254    390    390      8      8
+ Sparse SDJ:     254    254    530    530     11     11
+ Banded SDJ:     254    254    390    390      8      8
+ ____________________________________________________________
+ Problem No. =   4
+ ITOL =   6
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.76940D-06    0.76940D-06
+ Sparse: JACSP - VODE:     0.76940D-06    0.76940D-06
+ Banded: JACSP - VODE:     0.76940D-06    0.76940D-06
+                   J      V      J      V      J      V
+ Dense  SDJ:     254    254    390    390      8      8
+ Sparse SDJ:     254    254    530    530     11     11
+ Banded SDJ:     254    254    390    390      8      8
+ ____________________________________________________________
+
+ Problem No. =   4
+ ITOL =   7
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.13268D-06    0.13268D-06
+ Sparse: JACSP - VODE:     0.13268D-06    0.13268D-06
+ Banded: JACSP - VODE:     0.13268D-06    0.13268D-06
+                   J      V      J      V      J      V
+ Dense  SDJ:     358    358    535    535     11     11
+ Sparse SDJ:     358    358    705    705     14     14
+ Banded SDJ:     358    358    535    535     11     11
+ ____________________________________________________________
+ Problem No. =   4
+ ITOL =   7
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.13268D-06    0.13268D-06
+ Sparse: JACSP - VODE:     0.13268D-06    0.13268D-06
+ Banded: JACSP - VODE:     0.13268D-06    0.13268D-06
+                   J      V      J      V      J      V
+ Dense  SDJ:     358    358    535    535     11     11
+ Sparse SDJ:     358    358    705    705     14     14
+ Banded SDJ:     358    358    535    535     11     11
+ ____________________________________________________________
+
+ Problem No. =   4
+ ITOL =   8
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.81042D-08    0.81042D-08
+ Sparse: JACSP - VODE:     0.81042D-08    0.81042D-08
+ Banded: JACSP - VODE:     0.81042D-08    0.81042D-08
+                   J      V      J      V      J      V
+ Dense  SDJ:     495    495    685    685     13     13
+ Sparse SDJ:     495    495    875    875     16     16
+ Banded SDJ:     495    495    685    685     13     13
+ ____________________________________________________________
+ Problem No. =   4
+ ITOL =   8
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.81042D-08    0.81042D-08
+ Sparse: JACSP - VODE:     0.81042D-08    0.81042D-08
+ Banded: JACSP - VODE:     0.81042D-08    0.81042D-08
+                   J      V      J      V      J      V
+ Dense  SDJ:     495    495    685    685     13     13
+ Sparse SDJ:     495    495    875    875     16     16
+ Banded SDJ:     495    495    685    685     13     13
+ ____________________________________________________________
+
+ Problem No. =   4
+ ITOL =   9
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.36942D-09    0.36942D-09
+ Sparse: JACSP - VODE:     0.36942D-09    0.36942D-09
+ Banded: JACSP - VODE:     0.36942D-09    0.36942D-09
+                   J      V      J      V      J      V
+ Dense  SDJ:     703    703    953    953     18     18
+ Sparse SDJ:     703    703   1293   1293     26     26
+ Banded SDJ:     703    703    953    953     18     18
+ ____________________________________________________________
+ Problem No. =   4
+ ITOL =   9
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.36942D-09    0.36942D-09
+ Sparse: JACSP - VODE:     0.36942D-09    0.36942D-09
+ Banded: JACSP - VODE:     0.36942D-09    0.36942D-09
+                   J      V      J      V      J      V
+ Dense  SDJ:     703    703    953    953     18     18
+ Sparse SDJ:     703    703   1293   1293     26     26
+ Banded SDJ:     703    703    953    953     18     18
+ ____________________________________________________________
+
+ Problem No. =   4
+ ITOL =  10
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.54749D-09    0.54749D-09
+ Sparse: JACSP - VODE:     0.54749D-09    0.54749D-09
+ Banded: JACSP - VODE:     0.54749D-09    0.54749D-09
+                   J      V      J      V      J      V
+ Dense  SDJ:     999    999   1284   1284     22     22
+ Sparse SDJ:     999    999   1684   1684     31     31
+ Banded SDJ:     999    999   1284   1284     22     22
+ ____________________________________________________________
+ Problem No. =   4
+ ITOL =  10
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.54749D-09    0.54749D-09
+ Sparse: JACSP - VODE:     0.54749D-09    0.54749D-09
+ Banded: JACSP - VODE:     0.54749D-09    0.54749D-09
+                   J      V      J      V      J      V
+ Dense  SDJ:     999    999   1284   1284     22     22
+ Sparse SDJ:     999    999   1684   1684     31     31
+ Banded SDJ:     999    999   1284   1284     22     22
+ ____________________________________________________________
+
+ Problem No. =   4
+ ITOL =  11
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.27668D-09    0.27668D-09
+ Sparse: JACSP - VODE:     0.27667D-09    0.27666D-09
+ Banded: JACSP - VODE:     0.27668D-09    0.27668D-09
+                   J      V      J      V      J      V
+ Dense  SDJ:    1447   1447   1825   1825     31     31
+ Sparse SDJ:    1447   1447   2395   2395     44     44
+ Banded SDJ:    1447   1447   1825   1825     31     31
+ ____________________________________________________________
+ Problem No. =   4
+ ITOL =  11
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.27668D-09    0.27668D-09
+ Sparse: JACSP - VODE:     0.27667D-09    0.27666D-09
+ Banded: JACSP - VODE:     0.27668D-09    0.27668D-09
+                   J      V      J      V      J      V
+ Dense  SDJ:    1447   1447   1825   1825     31     31
+ Sparse SDJ:    1447   1447   2395   2395     44     44
+ Banded SDJ:    1447   1447   1825   1825     31     31
+ ____________________________________________________________
+
+ Problem No. =   4
+ ITOL =  12
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.20548D-10    0.20549D-10
+ Sparse: JACSP - VODE:     0.20544D-10    0.20558D-10
+ Banded: JACSP - VODE:     0.20548D-10    0.20549D-10
+                   J      V      J      V      J      V
+ Dense  SDJ:    2088   2088   2581   2581     42     42
+ Sparse SDJ:    2088   2088   3321   3321     58     58
+ Banded SDJ:    2088   2088   2581   2581     42     42
+ ____________________________________________________________
+ Problem No. =   4
+ ITOL =  12
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.20548D-10    0.20549D-10
+ Sparse: JACSP - VODE:     0.20544D-10    0.20558D-10
+ Banded: JACSP - VODE:     0.20548D-10    0.20549D-10
+                   J      V      J      V      J      V
+ Dense  SDJ:    2088   2088   2581   2581     42     42
+ Sparse SDJ:    2088   2088   3321   3321     58     58
+ Banded SDJ:    2088   2088   2581   2581     42     42
+ ____________________________________________________________
+ ____________________________________________________________
+ Class/Problem = B1
+
+ Problem No. =  11
+ ITOL =   5
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.58717D-04    0.58719D-04
+ Sparse: JACSP - VODE:     0.58718D-04    0.58718D-04
+ Banded: JACSP - VODE:     0.58717D-04    0.58719D-04
+                   J      V      J      V      J      V
+ Dense  SDJ:     520    520    604    604     12     12
+ Sparse SDJ:     520    520    684    684     16     16
+ Banded SDJ:     520    520    604    604     12     12
+ ____________________________________________________________
+ Problem No. =  11
+ ITOL =   5
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.82059D-04    0.82054D-04
+ Sparse: JACSP - VODE:     0.20429D-04    0.20514D-04
+ Banded: JACSP - VODE:     0.82059D-04    0.82054D-04
+                   J      V      J      V      J      V
+ Dense  SDJ:     570    570    713    713     14     14
+ Sparse SDJ:     566    566    811    811     19     19
+ Banded SDJ:     570    570    713    713     14     14
+ ____________________________________________________________
+
+ Problem No. =  11
+ ITOL =   6
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.19333D-04    0.19333D-04
+ Sparse: JACSP - VODE:     0.19333D-04    0.19333D-04
+ Banded: JACSP - VODE:     0.19333D-04    0.19333D-04
+                   J      V      J      V      J      V
+ Dense  SDJ:     686    686    795    795     16     16
+ Sparse SDJ:     686    686    899    899     21     21
+ Banded SDJ:     686    686    795    795     16     16
+ ____________________________________________________________
+ Problem No. =  11
+ ITOL =   6
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.67955D-05    0.68271D-05
+ Sparse: JACSP - VODE:     0.67919D-05    0.67914D-05
+ Banded: JACSP - VODE:     0.67955D-05    0.68271D-05
+                   J      V      J      V      J      V
+ Dense  SDJ:     763    763    959    960     19     19
+ Sparse SDJ:     763    763   1099   1099     27     27
+ Banded SDJ:     763    763    959    960     19     19
+ ____________________________________________________________
+
+ Problem No. =  11
+ ITOL =   7
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.58269D-06    0.58269D-06
+ Sparse: JACSP - VODE:     0.58274D-06    0.58274D-06
+ Banded: JACSP - VODE:     0.58269D-06    0.58269D-06
+                   J      V      J      V      J      V
+ Dense  SDJ:     975    975   1107   1107     21     21
+ Sparse SDJ:     975    975   1263   1263     30     30
+ Banded SDJ:     975    975   1107   1107     21     21
+ ____________________________________________________________
+ Problem No. =  11
+ ITOL =   7
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.41319D-06    0.41361D-06
+ Sparse: JACSP - VODE:     0.41319D-06    0.41319D-06
+ Banded: JACSP - VODE:     0.41319D-06    0.41361D-06
+                   J      V      J      V      J      V
+ Dense  SDJ:    1094   1095   1357   1360     25     25
+ Sparse SDJ:    1094   1094   1545   1545     36     36
+ Banded SDJ:    1094   1095   1357   1360     25     25
+ ____________________________________________________________
+
+ Problem No. =  11
+ ITOL =   8
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.16039D-06    0.16172D-06
+ Sparse: JACSP - VODE:     0.16040D-06    0.16040D-06
+ Banded: JACSP - VODE:     0.16039D-06    0.16172D-06
+                   J      V      J      V      J      V
+ Dense  SDJ:    1361   1361   1529   1529     28     28
+ Sparse SDJ:    1361   1361   1729   1729     39     39
+ Banded SDJ:    1361   1361   1529   1529     28     28
+ ____________________________________________________________
+ Problem No. =  11
+ ITOL =   8
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.63111D-07    0.91067D-07
+ Sparse: JACSP - VODE:     0.11909D-06    0.11911D-06
+ Banded: JACSP - VODE:     0.63111D-07    0.91067D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:    1510   1507   1803   1811     32     32
+ Sparse SDJ:    1544   1544   2107   2106     48     48
+ Banded SDJ:    1510   1507   1803   1811     32     32
+ ____________________________________________________________
+
+ Problem No. =  11
+ ITOL =   9
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.35943D-08    0.33785D-08
+ Sparse: JACSP - VODE:     0.35970D-08    0.35969D-08
+ Banded: JACSP - VODE:     0.35943D-08    0.33785D-08
+                   J      V      J      V      J      V
+ Dense  SDJ:    2034   2035   2248   2249     39     39
+ Sparse SDJ:    2034   2034   2532   2532     55     55
+ Banded SDJ:    2034   2035   2248   2249     39     39
+ ____________________________________________________________
+ Problem No. =  11
+ ITOL =   9
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.17538D-07    0.81817D-08
+ Sparse: JACSP - VODE:     0.17538D-07    0.81818D-08
+ Banded: JACSP - VODE:     0.17538D-07    0.81817D-08
+                   J      V      J      V      J      V
+ Dense  SDJ:    2234   2270   2646   2668     44     45
+ Sparse SDJ:    2234   2244   2990   3002     65     66
+ Banded SDJ:    2234   2270   2646   2668     44     45
+ ____________________________________________________________
+
+ Problem No. =  11
+ ITOL =  10
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.40318D-09    0.42778D-09
+ Sparse: JACSP - VODE:     0.40311D-09    0.40296D-09
+ Banded: JACSP - VODE:     0.40318D-09    0.42778D-09
+                   J      V      J      V      J      V
+ Dense  SDJ:    2913   2933   3206   3230     55     56
+ Sparse SDJ:    2913   2913   3602   3602     77     77
+ Banded SDJ:    2913   2933   3206   3230     55     56
+ ____________________________________________________________
+ Problem No. =  11
+ ITOL =  10
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.24371D-08    0.24371D-08
+ Sparse: JACSP - VODE:     0.24371D-08    0.24674D-08
+ Banded: JACSP - VODE:     0.24371D-08    0.24371D-08
+                   J      V      J      V      J      V
+ Dense  SDJ:    3262   3303   3798   3833     62     63
+ Sparse SDJ:    3264   3260   4290   4267     94     93
+ Banded SDJ:    3262   3303   3798   3833     62     63
+ ____________________________________________________________
+
+ Problem No. =  11
+ ITOL =  11
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.75409D-10    0.75796D-10
+ Sparse: JACSP - VODE:     0.77730D-10    0.77682D-10
+ Banded: JACSP - VODE:     0.75409D-10    0.75796D-10
+                   J      V      J      V      J      V
+ Dense  SDJ:    4319   4306   4722   4710     78     78
+ Sparse SDJ:    4319   4319   5322   5322    114    114
+ Banded SDJ:    4319   4306   4722   4710     78     78
+ ____________________________________________________________
+ Problem No. =  11
+ ITOL =  11
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.32522D-09    0.38074D-09
+ Sparse: JACSP - VODE:     0.32522D-09    0.38080D-09
+ Banded: JACSP - VODE:     0.32522D-09    0.38074D-09
+                   J      V      J      V      J      V
+ Dense  SDJ:    4785   4822   5478   5515     88     88
+ Sparse SDJ:    4784   4792   6163   6182    130    130
+ Banded SDJ:    4785   4822   5478   5515     88     88
+ ____________________________________________________________
+
+ Problem No. =  11
+ ITOL =  12
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.86494D-11    0.86181D-11
+ Sparse: JACSP - VODE:     0.86476D-11    0.87121D-11
+ Banded: JACSP - VODE:     0.86494D-11    0.86181D-11
+                   J      V      J      V      J      V
+ Dense  SDJ:    6206   6205   6769   6767    111    111
+ Sparse SDJ:    6206   6206   7597   7597    159    159
+ Banded SDJ:    6206   6205   6769   6767    111    111
+ ____________________________________________________________
+ Problem No. =  11
+ ITOL =  12
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.49520D-10    0.58109D-10
+ Sparse: JACSP - VODE:     0.58109D-10    0.58109D-10
+ Banded: JACSP - VODE:     0.49520D-10    0.58109D-10
+                   J      V      J      V      J      V
+ Dense  SDJ:    6745   6934   7690   7861    122    124
+ Sparse SDJ:    6814   6804   8700   8688    180    180
+ Banded SDJ:    6745   6934   7690   7861    122    124
+ ____________________________________________________________
+ ____________________________________________________________
+ Class/Problem = B2
+
+ Problem No. =  12
+ ITOL =   5
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.25783D-05    0.25783D-05
+ Sparse: JACSP - VODE:     0.25783D-05    0.25783D-05
+ Banded: JACSP - VODE:     0.25783D-05    0.25783D-05
+                   J      V      J      V      J      V
+ Dense  SDJ:     107    107    154    154      4      4
+ Sparse SDJ:     107    107    190    190      5      5
+ Banded SDJ:     107    107    154    154      4      4
+ ____________________________________________________________
+ Problem No. =  12
+ ITOL =   5
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.25783D-05    0.25783D-05
+ Sparse: JACSP - VODE:     0.25783D-05    0.25783D-05
+ Banded: JACSP - VODE:     0.25783D-05    0.25783D-05
+                   J      V      J      V      J      V
+ Dense  SDJ:     107    107    154    154      4      4
+ Sparse SDJ:     107    107    190    190      5      5
+ Banded SDJ:     107    107    154    154      4      4
+ ____________________________________________________________
+
+ Problem No. =  12
+ ITOL =   6
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.21619D-05    0.21619D-05
+ Sparse: JACSP - VODE:     0.21619D-05    0.21619D-05
+ Banded: JACSP - VODE:     0.21619D-05    0.21619D-05
+                   J      V      J      V      J      V
+ Dense  SDJ:     137    137    201    201      5      5
+ Sparse SDJ:     137    137    231    231      5      5
+ Banded SDJ:     137    137    201    201      5      5
+ ____________________________________________________________
+ Problem No. =  12
+ ITOL =   6
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.21619D-05    0.21619D-05
+ Sparse: JACSP - VODE:     0.21619D-05    0.21619D-05
+ Banded: JACSP - VODE:     0.21619D-05    0.21619D-05
+                   J      V      J      V      J      V
+ Dense  SDJ:     137    137    201    201      5      5
+ Sparse SDJ:     137    137    231    231      5      5
+ Banded SDJ:     137    137    201    201      5      5
+ ____________________________________________________________
+
+ Problem No. =  12
+ ITOL =   7
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.12318D-06    0.12318D-06
+ Sparse: JACSP - VODE:     0.12318D-06    0.12318D-06
+ Banded: JACSP - VODE:     0.12318D-06    0.12318D-06
+                   J      V      J      V      J      V
+ Dense  SDJ:     201    201    282    282      7      7
+ Sparse SDJ:     201    201    324    324      7      7
+ Banded SDJ:     201    201    282    282      7      7
+ ____________________________________________________________
+ Problem No. =  12
+ ITOL =   7
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.12318D-06    0.12318D-06
+ Sparse: JACSP - VODE:     0.12318D-06    0.12318D-06
+ Banded: JACSP - VODE:     0.12318D-06    0.12318D-06
+                   J      V      J      V      J      V
+ Dense  SDJ:     201    201    282    282      7      7
+ Sparse SDJ:     201    201    324    324      7      7
+ Banded SDJ:     201    201    282    282      7      7
+ ____________________________________________________________
+
+ Problem No. =  12
+ ITOL =   8
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.20557D-07    0.20557D-07
+ Sparse: JACSP - VODE:     0.20557D-07    0.20557D-07
+ Banded: JACSP - VODE:     0.20557D-07    0.20557D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:     281    281    371    371      9      9
+ Sparse SDJ:     281    281    449    449     11     11
+ Banded SDJ:     281    281    371    371      9      9
+ ____________________________________________________________
+ Problem No. =  12
+ ITOL =   8
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.20557D-07    0.20557D-07
+ Sparse: JACSP - VODE:     0.20557D-07    0.20557D-07
+ Banded: JACSP - VODE:     0.20557D-07    0.20557D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:     281    281    371    371      9      9
+ Sparse SDJ:     281    281    449    449     11     11
+ Banded SDJ:     281    281    371    371      9      9
+ ____________________________________________________________
+
+ Problem No. =  12
+ ITOL =   9
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.22293D-08    0.22293D-08
+ Sparse: JACSP - VODE:     0.22293D-08    0.22293D-08
+ Banded: JACSP - VODE:     0.22293D-08    0.22293D-08
+                   J      V      J      V      J      V
+ Dense  SDJ:     390    390    495    495     11     11
+ Sparse SDJ:     390    390    609    609     15     15
+ Banded SDJ:     390    390    495    495     11     11
+ ____________________________________________________________
+ Problem No. =  12
+ ITOL =   9
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.22293D-08    0.22293D-08
+ Sparse: JACSP - VODE:     0.22293D-08    0.22293D-08
+ Banded: JACSP - VODE:     0.22293D-08    0.22293D-08
+                   J      V      J      V      J      V
+ Dense  SDJ:     390    390    495    495     11     11
+ Sparse SDJ:     390    390    609    609     15     15
+ Banded SDJ:     390    390    495    495     11     11
+ ____________________________________________________________
+
+ Problem No. =  12
+ ITOL =  10
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.36754D-09    0.36754D-09
+ Sparse: JACSP - VODE:     0.36754D-09    0.36754D-09
+ Banded: JACSP - VODE:     0.36754D-09    0.36754D-09
+                   J      V      J      V      J      V
+ Dense  SDJ:     558    558    697    697     15     15
+ Sparse SDJ:     558    558    823    823     18     18
+ Banded SDJ:     558    558    697    697     15     15
+ ____________________________________________________________
+ Problem No. =  12
+ ITOL =  10
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.36754D-09    0.36754D-09
+ Sparse: JACSP - VODE:     0.36754D-09    0.36754D-09
+ Banded: JACSP - VODE:     0.36754D-09    0.36754D-09
+                   J      V      J      V      J      V
+ Dense  SDJ:     558    558    697    697     15     15
+ Sparse SDJ:     558    558    823    823     18     18
+ Banded SDJ:     558    558    697    697     15     15
+ ____________________________________________________________
+
+ Problem No. =  12
+ ITOL =  11
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.52756D-10    0.52756D-10
+ Sparse: JACSP - VODE:     0.52756D-10    0.52756D-10
+ Banded: JACSP - VODE:     0.52756D-10    0.52756D-10
+                   J      V      J      V      J      V
+ Dense  SDJ:     789    789    950    950     19     19
+ Sparse SDJ:     789    789   1136   1136     25     25
+ Banded SDJ:     789    789    950    950     19     19
+ ____________________________________________________________
+ Problem No. =  12
+ ITOL =  11
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.52756D-10    0.52756D-10
+ Sparse: JACSP - VODE:     0.52756D-10    0.52756D-10
+ Banded: JACSP - VODE:     0.52756D-10    0.52756D-10
+                   J      V      J      V      J      V
+ Dense  SDJ:     789    789    950    950     19     19
+ Sparse SDJ:     789    789   1136   1136     25     25
+ Banded SDJ:     789    789    950    950     19     19
+ ____________________________________________________________
+
+ Problem No. =  12
+ ITOL =  12
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.82190D-11    0.82189D-11
+ Sparse: JACSP - VODE:     0.82192D-11    0.82192D-11
+ Banded: JACSP - VODE:     0.82190D-11    0.82189D-11
+                   J      V      J      V      J      V
+ Dense  SDJ:    1126   1126   1328   1328     24     24
+ Sparse SDJ:    1126   1126   1556   1556     31     31
+ Banded SDJ:    1126   1126   1328   1328     24     24
+ ____________________________________________________________
+ Problem No. =  12
+ ITOL =  12
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.82190D-11    0.82189D-11
+ Sparse: JACSP - VODE:     0.82192D-11    0.82192D-11
+ Banded: JACSP - VODE:     0.82190D-11    0.82189D-11
+                   J      V      J      V      J      V
+ Dense  SDJ:    1126   1126   1328   1328     24     24
+ Sparse SDJ:    1126   1126   1556   1556     31     31
+ Banded SDJ:    1126   1126   1328   1328     24     24
+ ____________________________________________________________
+ ____________________________________________________________
+ Class/Problem = B3
+
+ Problem No. =  13
+ ITOL =   5
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.36548D-06    0.36548D-06
+ Sparse: JACSP - VODE:     0.36548D-06    0.36548D-06
+ Banded: JACSP - VODE:     0.36548D-06    0.36548D-06
+                   J      V      J      V      J      V
+ Dense  SDJ:     115    115    166    166      5      5
+ Sparse SDJ:     115    115    196    196      5      5
+ Banded SDJ:     115    115    166    166      5      5
+ ____________________________________________________________
+ Problem No. =  13
+ ITOL =   5
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.36548D-06    0.36548D-06
+ Sparse: JACSP - VODE:     0.36548D-06    0.36548D-06
+ Banded: JACSP - VODE:     0.36548D-06    0.36548D-06
+                   J      V      J      V      J      V
+ Dense  SDJ:     115    115    166    166      5      5
+ Sparse SDJ:     115    115    196    196      5      5
+ Banded SDJ:     115    115    166    166      5      5
+ ____________________________________________________________
+
+ Problem No. =  13
+ ITOL =   6
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.20675D-05    0.20675D-05
+ Sparse: JACSP - VODE:     0.20675D-05    0.20675D-05
+ Banded: JACSP - VODE:     0.20675D-05    0.20675D-05
+                   J      V      J      V      J      V
+ Dense  SDJ:     148    148    207    207      5      5
+ Sparse SDJ:     148    148    249    249      6      6
+ Banded SDJ:     148    148    207    207      5      5
+ ____________________________________________________________
+ Problem No. =  13
+ ITOL =   6
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.20675D-05    0.20675D-05
+ Sparse: JACSP - VODE:     0.20675D-05    0.20675D-05
+ Banded: JACSP - VODE:     0.20675D-05    0.20675D-05
+                   J      V      J      V      J      V
+ Dense  SDJ:     148    148    207    207      5      5
+ Sparse SDJ:     148    148    249    249      6      6
+ Banded SDJ:     148    148    207    207      5      5
+ ____________________________________________________________
+
+ Problem No. =  13
+ ITOL =   7
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.11735D-06    0.11735D-06
+ Sparse: JACSP - VODE:     0.11735D-06    0.11735D-06
+ Banded: JACSP - VODE:     0.11735D-06    0.11735D-06
+                   J      V      J      V      J      V
+ Dense  SDJ:     219    219    301    301      7      7
+ Sparse SDJ:     219    219    343    343      7      7
+ Banded SDJ:     219    219    301    301      7      7
+ ____________________________________________________________
+ Problem No. =  13
+ ITOL =   7
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.11735D-06    0.11735D-06
+ Sparse: JACSP - VODE:     0.11735D-06    0.11735D-06
+ Banded: JACSP - VODE:     0.11735D-06    0.11735D-06
+                   J      V      J      V      J      V
+ Dense  SDJ:     219    219    301    301      7      7
+ Sparse SDJ:     219    219    343    343      7      7
+ Banded SDJ:     219    219    301    301      7      7
+ ____________________________________________________________
+
+ Problem No. =  13
+ ITOL =   8
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.16174D-07    0.16174D-07
+ Sparse: JACSP - VODE:     0.16174D-07    0.16174D-07
+ Banded: JACSP - VODE:     0.16174D-07    0.16174D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:     305    305    402    402     10     10
+ Sparse SDJ:     305    305    474    474     11     11
+ Banded SDJ:     305    305    402    402     10     10
+ ____________________________________________________________
+ Problem No. =  13
+ ITOL =   8
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.16174D-07    0.16174D-07
+ Sparse: JACSP - VODE:     0.16174D-07    0.16174D-07
+ Banded: JACSP - VODE:     0.16174D-07    0.16174D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:     305    305    402    402     10     10
+ Sparse SDJ:     305    305    474    474     11     11
+ Banded SDJ:     305    305    402    402     10     10
+ ____________________________________________________________
+
+ Problem No. =  13
+ ITOL =   9
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.16949D-08    0.16949D-08
+ Sparse: JACSP - VODE:     0.16949D-08    0.16949D-08
+ Banded: JACSP - VODE:     0.16949D-08    0.16949D-08
+                   J      V      J      V      J      V
+ Dense  SDJ:     426    426    529    529     11     11
+ Sparse SDJ:     426    426    619    619     13     13
+ Banded SDJ:     426    426    529    529     11     11
+ ____________________________________________________________
+ Problem No. =  13
+ ITOL =   9
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.16949D-08    0.16949D-08
+ Sparse: JACSP - VODE:     0.16949D-08    0.16949D-08
+ Banded: JACSP - VODE:     0.16949D-08    0.16949D-08
+                   J      V      J      V      J      V
+ Dense  SDJ:     426    426    529    529     11     11
+ Sparse SDJ:     426    426    619    619     13     13
+ Banded SDJ:     426    426    529    529     11     11
+ ____________________________________________________________
+
+ Problem No. =  13
+ ITOL =  10
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.32141D-09    0.32141D-09
+ Sparse: JACSP - VODE:     0.32141D-09    0.32141D-09
+ Banded: JACSP - VODE:     0.32141D-09    0.32141D-09
+                   J      V      J      V      J      V
+ Dense  SDJ:     598    598    735    735     16     16
+ Sparse SDJ:     598    598    867    867     19     19
+ Banded SDJ:     598    598    735    735     16     16
+ ____________________________________________________________
+ Problem No. =  13
+ ITOL =  10
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.32141D-09    0.32141D-09
+ Sparse: JACSP - VODE:     0.32141D-09    0.32141D-09
+ Banded: JACSP - VODE:     0.32141D-09    0.32141D-09
+                   J      V      J      V      J      V
+ Dense  SDJ:     598    598    735    735     16     16
+ Sparse SDJ:     598    598    867    867     19     19
+ Banded SDJ:     598    598    735    735     16     16
+ ____________________________________________________________
+
+ Problem No. =  13
+ ITOL =  11
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.50269D-10    0.50269D-10
+ Sparse: JACSP - VODE:     0.50269D-10    0.50269D-10
+ Banded: JACSP - VODE:     0.50269D-10    0.50269D-10
+                   J      V      J      V      J      V
+ Dense  SDJ:     846    846   1006   1005     19     19
+ Sparse SDJ:     846    846   1204   1203     26     26
+ Banded SDJ:     846    846   1006   1005     19     19
+ ____________________________________________________________
+ Problem No. =  13
+ ITOL =  11
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.50269D-10    0.50269D-10
+ Sparse: JACSP - VODE:     0.50269D-10    0.50269D-10
+ Banded: JACSP - VODE:     0.50269D-10    0.50269D-10
+                   J      V      J      V      J      V
+ Dense  SDJ:     846    846   1006   1005     19     19
+ Sparse SDJ:     846    846   1204   1203     26     26
+ Banded SDJ:     846    846   1006   1005     19     19
+ ____________________________________________________________
+
+ Problem No. =  13
+ ITOL =  12
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.80713D-11    0.80714D-11
+ Sparse: JACSP - VODE:     0.80714D-11    0.80714D-11
+ Banded: JACSP - VODE:     0.80713D-11    0.80714D-11
+                   J      V      J      V      J      V
+ Dense  SDJ:    1254   1254   1463   1463     27     27
+ Sparse SDJ:    1254   1254   1733   1733     36     36
+ Banded SDJ:    1254   1254   1463   1463     27     27
+ ____________________________________________________________
+ Problem No. =  13
+ ITOL =  12
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.80713D-11    0.80714D-11
+ Sparse: JACSP - VODE:     0.80714D-11    0.80714D-11
+ Banded: JACSP - VODE:     0.80713D-11    0.80714D-11
+                   J      V      J      V      J      V
+ Dense  SDJ:    1254   1254   1463   1463     27     27
+ Sparse SDJ:    1254   1254   1733   1733     36     36
+ Banded SDJ:    1254   1254   1463   1463     27     27
+ ____________________________________________________________
+ ____________________________________________________________
+ Class/Problem = B4
+
+ Problem No. =  14
+ ITOL =   5
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.24517D-04    0.24517D-04
+ Sparse: JACSP - VODE:     0.24517D-04    0.24517D-04
+ Banded: JACSP - VODE:     0.24517D-04    0.24517D-04
+                   J      V      J      V      J      V
+ Dense  SDJ:     182    182    236    236      5      5
+ Sparse SDJ:     182    182    302    302      8      8
+ Banded SDJ:     182    182    236    236      5      5
+ ____________________________________________________________
+ Problem No. =  14
+ ITOL =   5
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.13286D-04    0.13286D-04
+ Sparse: JACSP - VODE:     0.13286D-04    0.13286D-04
+ Banded: JACSP - VODE:     0.13286D-04    0.13286D-04
+                   J      V      J      V      J      V
+ Dense  SDJ:     169    169    223    223      5      5
+ Sparse SDJ:     169    169    289    289      8      8
+ Banded SDJ:     169    169    223    223      5      5
+ ____________________________________________________________
+
+ Problem No. =  14
+ ITOL =   6
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.12312D-05    0.12312D-05
+ Sparse: JACSP - VODE:     0.12312D-05    0.12312D-05
+ Banded: JACSP - VODE:     0.12312D-05    0.12312D-05
+                   J      V      J      V      J      V
+ Dense  SDJ:     276    276    343    343      7      7
+ Sparse SDJ:     276    276    433    433     11     11
+ Banded SDJ:     276    276    343    343      7      7
+ ____________________________________________________________
+ Problem No. =  14
+ ITOL =   6
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.17836D-05    0.17836D-05
+ Sparse: JACSP - VODE:     0.17836D-05    0.17836D-05
+ Banded: JACSP - VODE:     0.17836D-05    0.17836D-05
+                   J      V      J      V      J      V
+ Dense  SDJ:     303    303    386    386      9      9
+ Sparse SDJ:     303    303    464    464     11     11
+ Banded SDJ:     303    303    386    386      9      9
+ ____________________________________________________________
+
+ Problem No. =  14
+ ITOL =   7
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.88396D-07    0.88396D-07
+ Sparse: JACSP - VODE:     0.88396D-07    0.88396D-07
+ Banded: JACSP - VODE:     0.88396D-07    0.88396D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:     373    373    461    461     10     10
+ Sparse SDJ:     373    373    557    557     13     13
+ Banded SDJ:     373    373    461    461     10     10
+ ____________________________________________________________
+ Problem No. =  14
+ ITOL =   7
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.12901D-06    0.12901D-06
+ Sparse: JACSP - VODE:     0.12901D-06    0.12901D-06
+ Banded: JACSP - VODE:     0.12901D-06    0.12901D-06
+                   J      V      J      V      J      V
+ Dense  SDJ:     364    364    453    453     10     10
+ Sparse SDJ:     364    364    549    549     13     13
+ Banded SDJ:     364    364    453    453     10     10
+ ____________________________________________________________
+
+ Problem No. =  14
+ ITOL =   8
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.10211D-07    0.10211D-07
+ Sparse: JACSP - VODE:     0.10211D-07    0.10211D-07
+ Banded: JACSP - VODE:     0.10211D-07    0.10211D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:     585    585    725    725     15     15
+ Sparse SDJ:     585    585    851    851     18     18
+ Banded SDJ:     585    585    725    725     15     15
+ ____________________________________________________________
+ Problem No. =  14
+ ITOL =   8
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.37012D-07    0.37012D-07
+ Sparse: JACSP - VODE:     0.37012D-07    0.37012D-07
+ Banded: JACSP - VODE:     0.37012D-07    0.37012D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:     592    592    737    737     15     15
+ Sparse SDJ:     592    592    863    863     18     18
+ Banded SDJ:     592    592    737    737     15     15
+ ____________________________________________________________
+
+ Problem No. =  14
+ ITOL =   9
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.42677D-08    0.42677D-08
+ Sparse: JACSP - VODE:     0.42677D-08    0.42677D-08
+ Banded: JACSP - VODE:     0.42677D-08    0.42677D-08
+                   J      V      J      V      J      V
+ Dense  SDJ:     798    798    960    960     18     18
+ Sparse SDJ:     798    798   1140   1140     24     24
+ Banded SDJ:     798    798    960    960     18     18
+ ____________________________________________________________
+ Problem No. =  14
+ ITOL =   9
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.84210D-09    0.84210D-09
+ Sparse: JACSP - VODE:     0.84210D-09    0.84210D-09
+ Banded: JACSP - VODE:     0.84210D-09    0.84210D-09
+                   J      V      J      V      J      V
+ Dense  SDJ:     844    844   1015   1015     19     19
+ Sparse SDJ:     844    844   1225   1225     27     27
+ Banded SDJ:     844    844   1015   1015     19     19
+ ____________________________________________________________
+
+ Problem No. =  14
+ ITOL =  10
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.33828D-09    0.33829D-09
+ Sparse: JACSP - VODE:     0.33829D-09    0.33829D-09
+ Banded: JACSP - VODE:     0.33828D-09    0.33829D-09
+                   J      V      J      V      J      V
+ Dense  SDJ:    1106   1106   1299   1300     24     24
+ Sparse SDJ:    1106   1106   1527   1528     31     31
+ Banded SDJ:    1106   1106   1299   1300     24     24
+ ____________________________________________________________
+ Problem No. =  14
+ ITOL =  10
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.19133D-09    0.19133D-09
+ Sparse: JACSP - VODE:     0.19134D-09    0.19133D-09
+ Banded: JACSP - VODE:     0.19133D-09    0.19133D-09
+                   J      V      J      V      J      V
+ Dense  SDJ:    1129   1129   1323   1324     24     24
+ Sparse SDJ:    1129   1129   1563   1564     32     32
+ Banded SDJ:    1129   1129   1323   1324     24     24
+ ____________________________________________________________
+
+ Problem No. =  14
+ ITOL =  11
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.24207D-10    0.24207D-10
+ Sparse: JACSP - VODE:     0.24207D-10    0.24207D-10
+ Banded: JACSP - VODE:     0.24207D-10    0.24207D-10
+                   J      V      J      V      J      V
+ Dense  SDJ:    1319   1319   1544   1544     28     28
+ Sparse SDJ:    1319   1319   1832   1832     38     38
+ Banded SDJ:    1319   1319   1544   1544     28     28
+ ____________________________________________________________
+ Problem No. =  14
+ ITOL =  11
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.52820D-10    0.52820D-10
+ Sparse: JACSP - VODE:     0.53140D-10    0.52821D-10
+ Banded: JACSP - VODE:     0.52820D-10    0.52820D-10
+                   J      V      J      V      J      V
+ Dense  SDJ:    1404   1404   1635   1635     29     29
+ Sparse SDJ:    1404   1404   1953   1953     41     41
+ Banded SDJ:    1404   1404   1635   1635     29     29
+ ____________________________________________________________
+
+ Problem No. =  14
+ ITOL =  12
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.66490D-11    0.66488D-11
+ Sparse: JACSP - VODE:     0.66484D-11    0.66484D-11
+ Banded: JACSP - VODE:     0.66490D-11    0.66488D-11
+                   J      V      J      V      J      V
+ Dense  SDJ:    2001   2001   2293   2293     39     39
+ Sparse SDJ:    2001   2001   2707   2707     54     54
+ Banded SDJ:    2001   2001   2293   2293     39     39
+ ____________________________________________________________
+ Problem No. =  14
+ ITOL =  12
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.55017D-11    0.54995D-11
+ Sparse: JACSP - VODE:     0.54998D-11    0.54995D-11
+ Banded: JACSP - VODE:     0.55017D-11    0.54995D-11
+                   J      V      J      V      J      V
+ Dense  SDJ:    2020   2020   2315   2315     40     40
+ Sparse SDJ:    2020   2020   2747   2747     56     56
+ Banded SDJ:    2020   2020   2315   2315     40     40
+ ____________________________________________________________
+ ____________________________________________________________
+ Class/Problem = B5
+
+ Problem No. =  15
+ ITOL =   5
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.16202D-04    0.16206D-04
+ Sparse: JACSP - VODE:     0.16197D-04    0.16213D-04
+ Banded: JACSP - VODE:     0.16202D-04    0.16206D-04
+                   J      V      J      V      J      V
+ Dense  SDJ:    2551   2551   2963   2963     46     46
+ Sparse SDJ:    2551   2551   3551   3551     72     72
+ Banded SDJ:    2551   2551   2963   2963     46     46
+ ____________________________________________________________
+ Problem No. =  15
+ ITOL =   5
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.22721D-03    0.22722D-03
+ Sparse: JACSP - VODE:     0.22721D-03    0.22722D-03
+ Banded: JACSP - VODE:     0.22721D-03    0.22722D-03
+                   J      V      J      V      J      V
+ Dense  SDJ:    2552   2552   3023   3023     46     46
+ Sparse SDJ:    2552   2552   3587   3587     70     70
+ Banded SDJ:    2552   2552   3023   3023     46     46
+ ____________________________________________________________
+
+ Problem No. =  15
+ ITOL =   6
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.22347D-04    0.22340D-04
+ Sparse: JACSP - VODE:     0.22488D-04    0.22377D-04
+ Banded: JACSP - VODE:     0.22347D-04    0.22340D-04
+                   J      V      J      V      J      V
+ Dense  SDJ:    2619   2619   3088   3088     49     49
+ Sparse SDJ:    2619   2620   3658   3659     72     72
+ Banded SDJ:    2619   2619   3088   3088     49     49
+ ____________________________________________________________
+ Problem No. =  15
+ ITOL =   6
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.61734D-05    0.61741D-05
+ Sparse: JACSP - VODE:     0.61736D-05    0.57991D-05
+ Banded: JACSP - VODE:     0.61734D-05    0.61741D-05
+                   J      V      J      V      J      V
+ Dense  SDJ:    2684   2684   3153   3153     49     49
+ Sparse SDJ:    2684   2684   3723   3723     72     72
+ Banded SDJ:    2684   2684   3153   3153     49     49
+ ____________________________________________________________
+
+ Problem No. =  15
+ ITOL =   7
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.20089D-05    0.20088D-05
+ Sparse: JACSP - VODE:     0.20088D-05    0.20087D-05
+ Banded: JACSP - VODE:     0.20089D-05    0.20088D-05
+                   J      V      J      V      J      V
+ Dense  SDJ:    2868   2868   3382   3382     53     53
+ Sparse SDJ:    2868   2868   3976   3976     76     76
+ Banded SDJ:    2868   2868   3382   3382     53     53
+ ____________________________________________________________
+ Problem No. =  15
+ ITOL =   7
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.24118D-05    0.24117D-05
+ Sparse: JACSP - VODE:     0.24119D-05    0.24117D-05
+ Banded: JACSP - VODE:     0.24118D-05    0.24117D-05
+                   J      V      J      V      J      V
+ Dense  SDJ:    2961   2961   3451   3451     55     55
+ Sparse SDJ:    2961   2961   4129   4129     84     84
+ Banded SDJ:    2961   2961   3451   3451     55     55
+ ____________________________________________________________
+
+ Problem No. =  15
+ ITOL =   8
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.39550D-06    0.42399D-06
+ Sparse: JACSP - VODE:     0.40233D-06    0.40166D-06
+ Banded: JACSP - VODE:     0.39550D-06    0.42399D-06
+                   J      V      J      V      J      V
+ Dense  SDJ:    3239   3238   3774   3773     59     59
+ Sparse SDJ:    3239   3239   4488   4488     89     89
+ Banded SDJ:    3239   3238   3774   3773     59     59
+ ____________________________________________________________
+ Problem No. =  15
+ ITOL =   8
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.87365D-07    0.87363D-07
+ Sparse: JACSP - VODE:     0.87365D-07    0.87362D-07
+ Banded: JACSP - VODE:     0.87365D-07    0.87363D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:    3304   3304   3852   3852     60     60
+ Sparse SDJ:    3304   3304   4560   4560     89     89
+ Banded SDJ:    3304   3304   3852   3852     60     60
+ ____________________________________________________________
+
+ Problem No. =  15
+ ITOL =   9
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.28880D-07    0.28967D-07
+ Sparse: JACSP - VODE:     0.28889D-07    0.28919D-07
+ Banded: JACSP - VODE:     0.28880D-07    0.28967D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:    3790   3790   4373   4374     69     69
+ Sparse SDJ:    3790   3790   5183   5184    102    102
+ Banded SDJ:    3790   3790   4373   4374     69     69
+ ____________________________________________________________
+ Problem No. =  15
+ ITOL =   9
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.10516D-07    0.10516D-07
+ Sparse: JACSP - VODE:     0.10516D-07    0.10516D-07
+ Banded: JACSP - VODE:     0.10516D-07    0.10516D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:    3856   3856   4465   4464     70     70
+ Sparse SDJ:    3856   3856   5305   5304    105    105
+ Banded SDJ:    3856   3856   4465   4464     70     70
+ ____________________________________________________________
+
+ Problem No. =  15
+ ITOL =  10
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.31884D-08    0.29670D-08
+ Sparse: JACSP - VODE:     0.23023D-09    0.41516D-09
+ Banded: JACSP - VODE:     0.31884D-08    0.29670D-08
+                   J      V      J      V      J      V
+ Dense  SDJ:    4571   4572   5275   5276     83     83
+ Sparse SDJ:    4587   4584   6251   6258    123    123
+ Banded SDJ:    4571   4572   5275   5276     83     83
+ ____________________________________________________________
+ Problem No. =  15
+ ITOL =  10
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.51657D-08    0.51657D-08
+ Sparse: JACSP - VODE:     0.51657D-08    0.51657D-08
+ Banded: JACSP - VODE:     0.51657D-08    0.51657D-08
+                   J      V      J      V      J      V
+ Dense  SDJ:    4689   4689   5407   5406     86     86
+ Sparse SDJ:    4689   4689   6427   6426    128    128
+ Banded SDJ:    4689   4689   5407   5406     86     86
+ ____________________________________________________________
+
+ Problem No. =  15
+ ITOL =  11
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.60011D-10    0.61168D-10
+ Sparse: JACSP - VODE:     0.55650D-10    0.42571D-10
+ Banded: JACSP - VODE:     0.60011D-10    0.61168D-10
+                   J      V      J      V      J      V
+ Dense  SDJ:    5843   5843   6685   6685    104    104
+ Sparse SDJ:    5843   5858   7937   7996    156    160
+ Banded SDJ:    5843   5843   6685   6685    104    104
+ ____________________________________________________________
+ Problem No. =  15
+ ITOL =  11
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.25756D-10    0.25336D-10
+ Sparse: JACSP - VODE:     0.24896D-10    0.34461D-10
+ Banded: JACSP - VODE:     0.25756D-10    0.25336D-10
+                   J      V      J      V      J      V
+ Dense  SDJ:    6016   6016   6870   6869    107    107
+ Sparse SDJ:    6016   6014   8122   8107    158    157
+ Banded SDJ:    6016   6016   6870   6869    107    107
+ ____________________________________________________________
+
+ Problem No. =  15
+ ITOL =  12
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.37228D-11    0.90034D-11
+ Sparse: JACSP - VODE:     0.20030D-10    0.29004D-11
+ Banded: JACSP - VODE:     0.37228D-11    0.90034D-11
+                   J      V      J      V      J      V
+ Dense  SDJ:    7522   7516   8540   8566    133    132
+ Sparse SDJ:    7506   7542  10173  10206    197    199
+ Banded SDJ:    7522   7516   8540   8566    133    132
+ ____________________________________________________________
+ Problem No. =  15
+ ITOL =  12
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.15909D-10    0.66611D-11
+ Sparse: JACSP - VODE:     0.77797D-11    0.26811D-11
+ Banded: JACSP - VODE:     0.15909D-10    0.66611D-11
+                   J      V      J      V      J      V
+ Dense  SDJ:    7698   7702   8751   8751    136    136
+ Sparse SDJ:    7701   7706  10385  10399    204    205
+ Banded SDJ:    7698   7702   8751   8751    136    136
+ ____________________________________________________________
+ ____________________________________________________________
+ Class/Problem = C1
+
+ Problem No. =  21
+ ITOL =   5
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.20168D-04    0.20165D-04
+ Sparse: JACSP - VODE:     0.20211D-05    0.20198D-05
+ Banded: JACSP - VODE:     0.20168D-04    0.20165D-04
+                   J      V      J      V      J      V
+ Dense  SDJ:     135    135    196    196      6      6
+ Sparse SDJ:     144    144    237    237      6      6
+ Banded SDJ:     135    135    196    196      6      6
+ ____________________________________________________________
+ Problem No. =  21
+ ITOL =   5
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.21725D-06    0.21724D-06
+ Sparse: JACSP - VODE:     0.15396D-05    0.15394D-05
+ Banded: JACSP - VODE:     0.21725D-06    0.21724D-06
+                   J      V      J      V      J      V
+ Dense  SDJ:     141    141    199    199      6      6
+ Sparse SDJ:     138    138    214    214      5      5
+ Banded SDJ:     141    141    199    199      6      6
+ ____________________________________________________________
+
+ Problem No. =  21
+ ITOL =   6
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.20968D-06    0.20967D-06
+ Sparse: JACSP - VODE:     0.53723D-06    0.53735D-06
+ Banded: JACSP - VODE:     0.20968D-06    0.20967D-06
+                   J      V      J      V      J      V
+ Dense  SDJ:     182    182    254    254      7      7
+ Sparse SDJ:     184    184    298    298      8      8
+ Banded SDJ:     182    182    254    254      7      7
+ ____________________________________________________________
+ Problem No. =  21
+ ITOL =   6
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.33301D-07    0.33301D-07
+ Sparse: JACSP - VODE:     0.90321D-06    0.90318D-06
+ Banded: JACSP - VODE:     0.33301D-07    0.33301D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:     186    186    255    255      7      7
+ Sparse SDJ:     183    183    301    301      8      8
+ Banded SDJ:     186    186    255    255      7      7
+ ____________________________________________________________
+
+ Problem No. =  21
+ ITOL =   7
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.26281D-07    0.26281D-07
+ Sparse: JACSP - VODE:     0.49626D-08    0.49625D-08
+ Banded: JACSP - VODE:     0.26281D-07    0.26281D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:     269    269    352    352      9      9
+ Sparse SDJ:     265    265    405    405     11     11
+ Banded SDJ:     269    269    352    352      9      9
+ ____________________________________________________________
+ Problem No. =  21
+ ITOL =   7
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.57591D-08    0.57592D-08
+ Sparse: JACSP - VODE:     0.85781D-08    0.85755D-08
+ Banded: JACSP - VODE:     0.57591D-08    0.57592D-08
+                   J      V      J      V      J      V
+ Dense  SDJ:     267    267    354    354      9      9
+ Sparse SDJ:     266    266    409    409     11     11
+ Banded SDJ:     267    267    354    354      9      9
+ ____________________________________________________________
+
+ Problem No. =  21
+ ITOL =   8
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.18517D-08    0.18517D-08
+ Sparse: JACSP - VODE:     0.18530D-08    0.18530D-08
+ Banded: JACSP - VODE:     0.18517D-08    0.18517D-08
+                   J      V      J      V      J      V
+ Dense  SDJ:     367    367    464    464     12     12
+ Sparse SDJ:     367    367    520    520     13     13
+ Banded SDJ:     367    367    464    464     12     12
+ ____________________________________________________________
+ Problem No. =  21
+ ITOL =   8
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.34941D-08    0.34941D-08
+ Sparse: JACSP - VODE:     0.35009D-08    0.35009D-08
+ Banded: JACSP - VODE:     0.34941D-08    0.34941D-08
+                   J      V      J      V      J      V
+ Dense  SDJ:     368    368    463    463     12     12
+ Sparse SDJ:     368    368    519    519     13     13
+ Banded SDJ:     368    368    463    463     12     12
+ ____________________________________________________________
+
+ Problem No. =  21
+ ITOL =   9
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.21201D-08    0.21201D-08
+ Sparse: JACSP - VODE:     0.21699D-08    0.21699D-08
+ Banded: JACSP - VODE:     0.21201D-08    0.21201D-08
+                   J      V      J      V      J      V
+ Dense  SDJ:     525    525    643    643     16     16
+ Sparse SDJ:     525    525    724    724     18     18
+ Banded SDJ:     525    525    643    643     16     16
+ ____________________________________________________________
+ Problem No. =  21
+ ITOL =   9
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.32933D-08    0.32933D-08
+ Sparse: JACSP - VODE:     0.33742D-08    0.33742D-08
+ Banded: JACSP - VODE:     0.32933D-08    0.32933D-08
+                   J      V      J      V      J      V
+ Dense  SDJ:     525    525    643    643     16     16
+ Sparse SDJ:     525    525    724    724     18     18
+ Banded SDJ:     525    525    643    643     16     16
+ ____________________________________________________________
+
+ Problem No. =  21
+ ITOL =  10
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.25669D-09    0.25669D-09
+ Sparse: JACSP - VODE:     0.10058D-09    0.10058D-09
+ Banded: JACSP - VODE:     0.25669D-09    0.25669D-09
+                   J      V      J      V      J      V
+ Dense  SDJ:     735    735    888    888     19     19
+ Sparse SDJ:     734    734   1001   1001     24     24
+ Banded SDJ:     735    735    888    888     19     19
+ ____________________________________________________________
+ Problem No. =  21
+ ITOL =  10
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.25390D-09    0.25390D-09
+ Sparse: JACSP - VODE:     0.24187D-09    0.24187D-09
+ Banded: JACSP - VODE:     0.25390D-09    0.25390D-09
+                   J      V      J      V      J      V
+ Dense  SDJ:     736    736    886    886     19     19
+ Sparse SDJ:     736    736   1006   1006     24     24
+ Banded SDJ:     736    736    886    886     19     19
+ ____________________________________________________________
+
+ Problem No. =  21
+ ITOL =  11
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.61172D-11    0.61175D-11
+ Sparse: JACSP - VODE:     0.61120D-11    0.61119D-11
+ Banded: JACSP - VODE:     0.61172D-11    0.61175D-11
+                   J      V      J      V      J      V
+ Dense  SDJ:    1070   1070   1229   1229     25     25
+ Sparse SDJ:    1070   1070   1386   1386     32     32
+ Banded SDJ:    1070   1070   1229   1229     25     25
+ ____________________________________________________________
+ Problem No. =  21
+ ITOL =  11
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.61056D-11    0.61056D-11
+ Sparse: JACSP - VODE:     0.61009D-11    0.61009D-11
+ Banded: JACSP - VODE:     0.61056D-11    0.61056D-11
+                   J      V      J      V      J      V
+ Dense  SDJ:    1072   1072   1231   1231     25     25
+ Sparse SDJ:    1072   1072   1388   1388     32     32
+ Banded SDJ:    1072   1072   1231   1231     25     25
+ ____________________________________________________________
+
+ Problem No. =  21
+ ITOL =  12
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.93097D-12    0.93085D-12
+ Sparse: JACSP - VODE:     0.99165D-12    0.99169D-12
+ Banded: JACSP - VODE:     0.93097D-12    0.93085D-12
+                   J      V      J      V      J      V
+ Dense  SDJ:    1545   1545   1746   1746     34     34
+ Sparse SDJ:    1545   1545   1987   1987     47     47
+ Banded SDJ:    1545   1545   1746   1746     34     34
+ ____________________________________________________________
+ Problem No. =  21
+ ITOL =  12
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.95595D-12    0.95569D-12
+ Sparse: JACSP - VODE:     0.95538D-12    0.95546D-12
+ Banded: JACSP - VODE:     0.95595D-12    0.95569D-12
+                   J      V      J      V      J      V
+ Dense  SDJ:    1548   1548   1749   1749     34     34
+ Sparse SDJ:    1548   1548   1990   1990     47     47
+ Banded SDJ:    1548   1548   1749   1749     34     34
+ ____________________________________________________________
+ ____________________________________________________________
+ Class/Problem = C2
+
+ Problem No. =  22
+ ITOL =   5
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.28851D-06    0.28851D-06
+ Sparse: JACSP - VODE:     0.38024D-05    0.38024D-05
+ Banded: JACSP - VODE:     0.28851D-06    0.28851D-06
+                   J      V      J      V      J      V
+ Dense  SDJ:     135    135    191    191      6      6
+ Sparse SDJ:     134    134    210    210      5      5
+ Banded SDJ:     135    135    191    191      6      6
+ ____________________________________________________________
+ Problem No. =  22
+ ITOL =   5
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.26613D-06    0.26613D-06
+ Sparse: JACSP - VODE:     0.44573D-05    0.44573D-05
+ Banded: JACSP - VODE:     0.26613D-06    0.26613D-06
+                   J      V      J      V      J      V
+ Dense  SDJ:     137    137    196    196      6      6
+ Sparse SDJ:     136    136    211    211      5      5
+ Banded SDJ:     137    137    196    196      6      6
+ ____________________________________________________________
+
+ Problem No. =  22
+ ITOL =   6
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.55706D-07    0.55706D-07
+ Sparse: JACSP - VODE:     0.19179D-05    0.19179D-05
+ Banded: JACSP - VODE:     0.55706D-07    0.55706D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:     177    177    252    252      8      8
+ Sparse SDJ:     175    175    286    286      8      8
+ Banded SDJ:     177    177    252    252      8      8
+ ____________________________________________________________
+ Problem No. =  22
+ ITOL =   6
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.21868D-07    0.21868D-07
+ Sparse: JACSP - VODE:     0.21958D-06    0.21958D-06
+ Banded: JACSP - VODE:     0.21868D-07    0.21868D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:     178    178    253    253      8      8
+ Sparse SDJ:     177    177    287    287      8      8
+ Banded SDJ:     178    178    253    253      8      8
+ ____________________________________________________________
+
+ Problem No. =  22
+ ITOL =   7
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.42538D-07    0.42538D-07
+ Sparse: JACSP - VODE:     0.49231D-07    0.49236D-07
+ Banded: JACSP - VODE:     0.42538D-07    0.42538D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:     239    239    330    330      9      9
+ Sparse SDJ:     240    240    367    367      9      9
+ Banded SDJ:     239    239    330    330      9      9
+ ____________________________________________________________
+ Problem No. =  22
+ ITOL =   7
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.19503D-07    0.19503D-07
+ Sparse: JACSP - VODE:     0.41482D-06    0.41483D-06
+ Banded: JACSP - VODE:     0.19503D-07    0.19503D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:     242    242    334    334      9      9
+ Sparse SDJ:     241    241    379    379     10     10
+ Banded SDJ:     242    242    334    334      9      9
+ ____________________________________________________________
+
+ Problem No. =  22
+ ITOL =   8
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.58869D-08    0.58869D-08
+ Sparse: JACSP - VODE:     0.60414D-08    0.60484D-08
+ Banded: JACSP - VODE:     0.58869D-08    0.58869D-08
+                   J      V      J      V      J      V
+ Dense  SDJ:     336    336    435    435     11     11
+ Sparse SDJ:     336    336    495    495     13     13
+ Banded SDJ:     336    336    435    435     11     11
+ ____________________________________________________________
+ Problem No. =  22
+ ITOL =   8
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.56117D-07    0.56117D-07
+ Sparse: JACSP - VODE:     0.65117D-07    0.64005D-07
+ Banded: JACSP - VODE:     0.56117D-07    0.56117D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:     340    340    444    444     11     11
+ Sparse SDJ:     339    339    502    502     13     13
+ Banded SDJ:     340    340    444    444     11     11
+ ____________________________________________________________
+
+ Problem No. =  22
+ ITOL =   9
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.63349D-09    0.63349D-09
+ Sparse: JACSP - VODE:     0.63784D-09    0.63783D-09
+ Banded: JACSP - VODE:     0.63349D-09    0.63349D-09
+                   J      V      J      V      J      V
+ Dense  SDJ:     460    460    573    573     14     14
+ Sparse SDJ:     460    460    637    637     15     15
+ Banded SDJ:     460    460    573    573     14     14
+ ____________________________________________________________
+ Problem No. =  22
+ ITOL =   9
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.31902D-09    0.31903D-09
+ Sparse: JACSP - VODE:     0.32844D-09    0.32843D-09
+ Banded: JACSP - VODE:     0.31902D-09    0.31903D-09
+                   J      V      J      V      J      V
+ Dense  SDJ:     465    465    579    579     14     14
+ Sparse SDJ:     465    465    643    643     15     15
+ Banded SDJ:     465    465    579    579     14     14
+ ____________________________________________________________
+
+ Problem No. =  22
+ ITOL =  10
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.46526D-09    0.46526D-09
+ Sparse: JACSP - VODE:     0.46606D-09    0.46582D-09
+ Banded: JACSP - VODE:     0.46526D-09    0.46526D-09
+                   J      V      J      V      J      V
+ Dense  SDJ:     661    661    796    796     18     18
+ Sparse SDJ:     661    661    900    900     22     22
+ Banded SDJ:     661    661    796    796     18     18
+ ____________________________________________________________
+ Problem No. =  22
+ ITOL =  10
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.79985D-09    0.79983D-09
+ Sparse: JACSP - VODE:     0.80670D-09    0.80675D-09
+ Banded: JACSP - VODE:     0.79985D-09    0.79983D-09
+                   J      V      J      V      J      V
+ Dense  SDJ:     669    669    804    804     18     18
+ Sparse SDJ:     669    669    908    908     22     22
+ Banded SDJ:     669    669    804    804     18     18
+ ____________________________________________________________
+
+ Problem No. =  22
+ ITOL =  11
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.17746D-10    0.17755D-10
+ Sparse: JACSP - VODE:     0.17742D-10    0.17735D-10
+ Banded: JACSP - VODE:     0.17746D-10    0.17755D-10
+                   J      V      J      V      J      V
+ Dense  SDJ:     936    936   1090   1090     22     22
+ Sparse SDJ:     936    936   1235   1235     29     29
+ Banded SDJ:     936    936   1090   1090     22     22
+ ____________________________________________________________
+ Problem No. =  22
+ ITOL =  11
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.18913D-10    0.18911D-10
+ Sparse: JACSP - VODE:     0.18912D-10    0.18915D-10
+ Banded: JACSP - VODE:     0.18913D-10    0.18911D-10
+                   J      V      J      V      J      V
+ Dense  SDJ:     947    947   1104   1104     23     23
+ Sparse SDJ:     947    947   1245   1245     29     29
+ Banded SDJ:     947    947   1104   1104     23     23
+ ____________________________________________________________
+
+ Problem No. =  22
+ ITOL =  12
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.35293D-11    0.35285D-11
+ Sparse: JACSP - VODE:     0.35295D-11    0.35303D-11
+ Banded: JACSP - VODE:     0.35293D-11    0.35285D-11
+                   J      V      J      V      J      V
+ Dense  SDJ:    1384   1384   1577   1577     31     31
+ Sparse SDJ:    1384   1384   1759   1759     38     38
+ Banded SDJ:    1384   1384   1577   1577     31     31
+ ____________________________________________________________
+ Problem No. =  22
+ ITOL =  12
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.43547D-11    0.43643D-11
+ Sparse: JACSP - VODE:     0.43714D-11    0.43787D-11
+ Banded: JACSP - VODE:     0.43547D-11    0.43643D-11
+                   J      V      J      V      J      V
+ Dense  SDJ:    1399   1399   1592   1592     31     31
+ Sparse SDJ:    1399   1399   1782   1782     39     39
+ Banded SDJ:    1399   1399   1592   1592     31     31
+ ____________________________________________________________
+ ____________________________________________________________
+ Class/Problem = C3
+
+ Problem No. =  23
+ ITOL =   5
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.30005D-05    0.30005D-05
+ Sparse: JACSP - VODE:     0.74788D-06    0.74788D-06
+ Banded: JACSP - VODE:     0.30005D-05    0.30005D-05
+                   J      V      J      V      J      V
+ Dense  SDJ:     127    127    180    180      5      5
+ Sparse SDJ:     127    127    198    198      5      5
+ Banded SDJ:     127    127    180    180      5      5
+ ____________________________________________________________
+ Problem No. =  23
+ ITOL =   5
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.58233D-05    0.58233D-05
+ Sparse: JACSP - VODE:     0.13384D-05    0.13384D-05
+ Banded: JACSP - VODE:     0.58233D-05    0.58233D-05
+                   J      V      J      V      J      V
+ Dense  SDJ:     127    127    182    182      5      5
+ Sparse SDJ:     128    128    199    199      5      5
+ Banded SDJ:     127    127    182    182      5      5
+ ____________________________________________________________
+
+ Problem No. =  23
+ ITOL =   6
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.37237D-07    0.37237D-07
+ Sparse: JACSP - VODE:     0.36349D-06    0.36350D-06
+ Banded: JACSP - VODE:     0.37237D-07    0.37237D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:     174    174    249    249      7      7
+ Sparse SDJ:     173    173    289    289      8      8
+ Banded SDJ:     174    174    249    249      7      7
+ ____________________________________________________________
+ Problem No. =  23
+ ITOL =   6
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.23894D-07    0.23894D-07
+ Sparse: JACSP - VODE:     0.13264D-05    0.13264D-05
+ Banded: JACSP - VODE:     0.23894D-07    0.23894D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:     174    174    249    249      7      7
+ Sparse SDJ:     173    173    290    290      8      8
+ Banded SDJ:     174    174    249    249      7      7
+ ____________________________________________________________
+
+ Problem No. =  23
+ ITOL =   7
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.75664D-07    0.75664D-07
+ Sparse: JACSP - VODE:     0.91194D-07    0.91194D-07
+ Banded: JACSP - VODE:     0.75664D-07    0.75664D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:     239    239    332    332      9      9
+ Sparse SDJ:     238    238    367    367      9      9
+ Banded SDJ:     239    239    332    332      9      9
+ ____________________________________________________________
+ Problem No. =  23
+ ITOL =   7
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.71641D-07    0.71641D-07
+ Sparse: JACSP - VODE:     0.85808D-07    0.85808D-07
+ Banded: JACSP - VODE:     0.71641D-07    0.71641D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:     241    241    334    334      9      9
+ Sparse SDJ:     240    240    369    369      9      9
+ Banded SDJ:     241    241    334    334      9      9
+ ____________________________________________________________
+
+ Problem No. =  23
+ ITOL =   8
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.47449D-08    0.47449D-08
+ Sparse: JACSP - VODE:     0.32007D-08    0.32007D-08
+ Banded: JACSP - VODE:     0.47449D-08    0.47449D-08
+                   J      V      J      V      J      V
+ Dense  SDJ:     324    324    413    413     10     10
+ Sparse SDJ:     324    324    461    461     11     11
+ Banded SDJ:     324    324    413    413     10     10
+ ____________________________________________________________
+ Problem No. =  23
+ ITOL =   8
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.30034D-09    0.30035D-09
+ Sparse: JACSP - VODE:     0.13574D-08    0.13570D-08
+ Banded: JACSP - VODE:     0.30034D-09    0.30035D-09
+                   J      V      J      V      J      V
+ Dense  SDJ:     327    327    415    415     10     10
+ Sparse SDJ:     325    325    462    462     11     11
+ Banded SDJ:     327    327    415    415     10     10
+ ____________________________________________________________
+
+ Problem No. =  23
+ ITOL =   9
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.48844D-09    0.48844D-09
+ Sparse: JACSP - VODE:     0.47464D-09    0.47465D-09
+ Banded: JACSP - VODE:     0.48844D-09    0.48844D-09
+                   J      V      J      V      J      V
+ Dense  SDJ:     468    468    570    570     13     13
+ Sparse SDJ:     468    468    639    639     15     15
+ Banded SDJ:     468    468    570    570     13     13
+ ____________________________________________________________
+ Problem No. =  23
+ ITOL =   9
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.94382D-09    0.94382D-09
+ Sparse: JACSP - VODE:     0.31511D-08    0.31507D-08
+ Banded: JACSP - VODE:     0.94382D-09    0.94382D-09
+                   J      V      J      V      J      V
+ Dense  SDJ:     469    469    571    571     13     13
+ Sparse SDJ:     469    469    643    643     15     15
+ Banded SDJ:     469    469    571    571     13     13
+ ____________________________________________________________
+
+ Problem No. =  23
+ ITOL =  10
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.17845D-09    0.17842D-09
+ Sparse: JACSP - VODE:     0.32244D-10    0.33598D-10
+ Banded: JACSP - VODE:     0.17845D-09    0.17842D-09
+                   J      V      J      V      J      V
+ Dense  SDJ:     656    656    783    783     17     17
+ Sparse SDJ:     652    652    881    881     20     20
+ Banded SDJ:     656    656    783    783     17     17
+ ____________________________________________________________
+ Problem No. =  23
+ ITOL =  10
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.34163D-09    0.34159D-09
+ Sparse: JACSP - VODE:     0.11422D-09    0.11570D-09
+ Banded: JACSP - VODE:     0.34163D-09    0.34159D-09
+                   J      V      J      V      J      V
+ Dense  SDJ:     659    659    791    791     18     18
+ Sparse SDJ:     654    654    883    883     20     20
+ Banded SDJ:     659    659    791    791     18     18
+ ____________________________________________________________
+
+ Problem No. =  23
+ ITOL =  11
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.13408D-10    0.13406D-10
+ Sparse: JACSP - VODE:     0.13238D-10    0.13312D-10
+ Banded: JACSP - VODE:     0.13408D-10    0.13406D-10
+                   J      V      J      V      J      V
+ Dense  SDJ:     923    923   1070   1070     22     22
+ Sparse SDJ:     923    923   1208   1208     28     28
+ Banded SDJ:     923    923   1070   1070     22     22
+ ____________________________________________________________
+ Problem No. =  23
+ ITOL =  11
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.69820D-11    0.69813D-11
+ Sparse: JACSP - VODE:     0.69267D-11    0.69285D-11
+ Banded: JACSP - VODE:     0.69820D-11    0.69813D-11
+                   J      V      J      V      J      V
+ Dense  SDJ:     931    931   1077   1077     22     22
+ Sparse SDJ:     931    931   1214   1214     28     28
+ Banded SDJ:     931    931   1077   1077     22     22
+ ____________________________________________________________
+
+ Problem No. =  23
+ ITOL =  12
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.11434D-11    0.11453D-11
+ Sparse: JACSP - VODE:     0.11307D-11    0.11335D-11
+ Banded: JACSP - VODE:     0.11434D-11    0.11453D-11
+                   J      V      J      V      J      V
+ Dense  SDJ:    1380   1380   1568   1568     30     30
+ Sparse SDJ:    1380   1380   1761   1761     39     39
+ Banded SDJ:    1380   1380   1568   1568     30     30
+ ____________________________________________________________
+ Problem No. =  23
+ ITOL =  12
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.22844D-11    0.22922D-11
+ Sparse: JACSP - VODE:     0.22662D-11    0.22640D-11
+ Banded: JACSP - VODE:     0.22844D-11    0.22922D-11
+                   J      V      J      V      J      V
+ Dense  SDJ:    1385   1385   1573   1573     30     30
+ Sparse SDJ:    1385   1385   1766   1766     39     39
+ Banded SDJ:    1385   1385   1573   1573     30     30
+ ____________________________________________________________
+ ____________________________________________________________
+ Class/Problem = C4
+
+ Problem No. =  24
+ ITOL =   5
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.23601D-05    0.23606D-05
+ Sparse: JACSP - VODE:     0.21357D-05    0.21360D-05
+ Banded: JACSP - VODE:     0.23601D-05    0.23606D-05
+                   J      V      J      V      J      V
+ Dense  SDJ:     114    114    162    162      4      4
+ Sparse SDJ:     107    107    175    175      5      5
+ Banded SDJ:     114    114    162    162      4      4
+ ____________________________________________________________
+ Problem No. =  24
+ ITOL =   5
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.12272D-03    0.12272D-03
+ Sparse: JACSP - VODE:     0.15539D-02    0.15540D-02
+ Banded: JACSP - VODE:     0.12272D-03    0.12272D-03
+                   J      V      J      V      J      V
+ Dense  SDJ:     155    155    224    224      6      6
+ Sparse SDJ:     149    149    237    237      5      5
+ Banded SDJ:     155    155    224    224      6      6
+ ____________________________________________________________
+
+ Problem No. =  24
+ ITOL =   6
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.24962D-06    0.24967D-06
+ Sparse: JACSP - VODE:     0.62207D-06    0.62205D-06
+ Banded: JACSP - VODE:     0.24962D-06    0.24967D-06
+                   J      V      J      V      J      V
+ Dense  SDJ:     153    153    216    216      5      5
+ Sparse SDJ:     145    145    244    244      6      6
+ Banded SDJ:     153    153    216    216      5      5
+ ____________________________________________________________
+ Problem No. =  24
+ ITOL =   6
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.59623D-04    0.59616D-04
+ Sparse: JACSP - VODE:     0.96022D-04    0.96016D-04
+ Banded: JACSP - VODE:     0.59623D-04    0.59616D-04
+                   J      V      J      V      J      V
+ Dense  SDJ:     202    202    315    315      8      8
+ Sparse SDJ:     194    194    319    319      8      8
+ Banded SDJ:     202    202    315    315      8      8
+ ____________________________________________________________
+
+ Problem No. =  24
+ ITOL =   7
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.66996D-07    0.66996D-07
+ Sparse: JACSP - VODE:     0.35465D-06    0.35457D-06
+ Banded: JACSP - VODE:     0.66996D-07    0.66996D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:     207    207    277    277      7      7
+ Sparse SDJ:     195    195    301    301      8      8
+ Banded SDJ:     207    207    277    277      7      7
+ ____________________________________________________________
+ Problem No. =  24
+ ITOL =   7
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.64642D-04    0.64786D-04
+ Sparse: JACSP - VODE:     0.21539D-04    0.21542D-04
+ Banded: JACSP - VODE:     0.64642D-04    0.64786D-04
+                   J      V      J      V      J      V
+ Dense  SDJ:     254    254    374    374      9      9
+ Sparse SDJ:     254    254    412    412     11     11
+ Banded SDJ:     254    254    374    374      9      9
+ ____________________________________________________________
+
+ Problem No. =  24
+ ITOL =   8
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.34294D-07    0.34084D-07
+ Sparse: JACSP - VODE:     0.11560D-07    0.11561D-07
+ Banded: JACSP - VODE:     0.34294D-07    0.34084D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:     260    260    356    356      9      9
+ Sparse SDJ:     259    259    392    392     11     11
+ Banded SDJ:     260    260    356    356      9      9
+ ____________________________________________________________
+ Problem No. =  24
+ ITOL =   8
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.17307D-05    0.17307D-05
+ Sparse: JACSP - VODE:     0.20719D-05    0.20710D-05
+ Banded: JACSP - VODE:     0.17307D-05    0.17307D-05
+                   J      V      J      V      J      V
+ Dense  SDJ:     341    341    445    445     11     11
+ Sparse SDJ:     336    336    509    509     14     14
+ Banded SDJ:     341    341    445    445     11     11
+ ____________________________________________________________
+
+ Problem No. =  24
+ ITOL =   9
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.12527D-08    0.12549D-08
+ Sparse: JACSP - VODE:     0.58505D-08    0.58490D-08
+ Banded: JACSP - VODE:     0.12527D-08    0.12549D-08
+                   J      V      J      V      J      V
+ Dense  SDJ:     363    363    461    461     11     11
+ Sparse SDJ:     363    363    527    527     14     14
+ Banded SDJ:     363    363    461    461     11     11
+ ____________________________________________________________
+ Problem No. =  24
+ ITOL =   9
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.49305D-06    0.49301D-06
+ Sparse: JACSP - VODE:     0.41085D-06    0.41093D-06
+ Banded: JACSP - VODE:     0.49305D-06    0.49301D-06
+                   J      V      J      V      J      V
+ Dense  SDJ:     483    483    605    605     14     14
+ Sparse SDJ:     480    480    653    653     15     15
+ Banded SDJ:     483    483    605    605     14     14
+ ____________________________________________________________
+
+ Problem No. =  24
+ ITOL =  10
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.14706D-09    0.14704D-09
+ Sparse: JACSP - VODE:     0.19437D-09    0.19439D-09
+ Banded: JACSP - VODE:     0.14706D-09    0.14704D-09
+                   J      V      J      V      J      V
+ Dense  SDJ:     517    517    628    628     15     15
+ Sparse SDJ:     517    517    704    704     17     17
+ Banded SDJ:     517    517    628    628     15     15
+ ____________________________________________________________
+ Problem No. =  24
+ ITOL =  10
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.38432D-07    0.38450D-07
+ Sparse: JACSP - VODE:     0.37833D-07    0.37837D-07
+ Banded: JACSP - VODE:     0.38432D-07    0.38450D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:     694    694    826    826     18     18
+ Sparse SDJ:     683    683    944    944     25     25
+ Banded SDJ:     694    694    826    826     18     18
+ ____________________________________________________________
+
+ Problem No. =  24
+ ITOL =  11
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.11799D-10    0.11793D-10
+ Sparse: JACSP - VODE:     0.11648D-10    0.11647D-10
+ Banded: JACSP - VODE:     0.11799D-10    0.11793D-10
+                   J      V      J      V      J      V
+ Dense  SDJ:     736    736    872    872     19     19
+ Sparse SDJ:     737    737    989    989     24     24
+ Banded SDJ:     736    736    872    872     19     19
+ ____________________________________________________________
+ Problem No. =  24
+ ITOL =  11
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.30669D-08    0.30688D-08
+ Sparse: JACSP - VODE:     0.28321D-08    0.28331D-08
+ Banded: JACSP - VODE:     0.30669D-08    0.30688D-08
+                   J      V      J      V      J      V
+ Dense  SDJ:     993    993   1144   1144     23     23
+ Sparse SDJ:     993    993   1301   1301     31     31
+ Banded SDJ:     993    993   1144   1144     23     23
+ ____________________________________________________________
+
+ Problem No. =  24
+ ITOL =  12
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.16558D-11    0.17458D-11
+ Sparse: JACSP - VODE:     0.16690D-11    0.16659D-11
+ Banded: JACSP - VODE:     0.16558D-11    0.17458D-11
+                   J      V      J      V      J      V
+ Dense  SDJ:    1077   1077   1225   1229     24     25
+ Sparse SDJ:    1077   1077   1386   1386     32     32
+ Banded SDJ:    1077   1077   1225   1229     24     25
+ ____________________________________________________________
+ Problem No. =  24
+ ITOL =  12
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.40643D-09    0.41189D-09
+ Sparse: JACSP - VODE:     0.43048D-09    0.43229D-09
+ Banded: JACSP - VODE:     0.40643D-09    0.41189D-09
+                   J      V      J      V      J      V
+ Dense  SDJ:    1442   1438   1634   1626     32     31
+ Sparse SDJ:    1438   1438   1849   1849     43     43
+ Banded SDJ:    1442   1438   1634   1626     32     31
+ ____________________________________________________________
+ ____________________________________________________________
+ Class/Problem = C5
+
+ Problem No. =  25
+ ITOL =   5
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.67400D-06    0.67400D-06
+ Sparse: JACSP - VODE:     0.11030D-04    0.11033D-04
+ Banded: JACSP - VODE:     0.67400D-06    0.67400D-06
+                   J      V      J      V      J      V
+ Dense  SDJ:     103    103    135    135      3      3
+ Sparse SDJ:      97     97    158    158      5      5
+ Banded SDJ:     103    103    135    135      3      3
+ ____________________________________________________________
+ Problem No. =  25
+ ITOL =   5
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.26298D-01    0.26298D-01
+ Sparse: JACSP - VODE:     0.11753D-01    0.11753D-01
+ Banded: JACSP - VODE:     0.26298D-01    0.26298D-01
+                   J      V      J      V      J      V
+ Dense  SDJ:     150    150    207    207      5      5
+ Sparse SDJ:     151    151    236    236      6      6
+ Banded SDJ:     150    150    207    207      5      5
+ ____________________________________________________________
+
+ Problem No. =  25
+ ITOL =   6
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.83501D-06    0.83501D-06
+ Sparse: JACSP - VODE:     0.29749D-07    0.29749D-07
+ Banded: JACSP - VODE:     0.83501D-06    0.83501D-06
+                   J      V      J      V      J      V
+ Dense  SDJ:     147    147    208    208      5      5
+ Sparse SDJ:     145    145    222    222      6      6
+ Banded SDJ:     147    147    208    208      5      5
+ ____________________________________________________________
+ Problem No. =  25
+ ITOL =   6
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.35452D-02    0.35452D-02
+ Sparse: JACSP - VODE:     0.13233D-01    0.13236D-01
+ Banded: JACSP - VODE:     0.35452D-02    0.35452D-02
+                   J      V      J      V      J      V
+ Dense  SDJ:     199    199    299    299      7      7
+ Sparse SDJ:     192    192    322    322      8      8
+ Banded SDJ:     199    199    299    299      7      7
+ ____________________________________________________________
+
+ Problem No. =  25
+ ITOL =   7
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.17272D-07    0.18149D-07
+ Sparse: JACSP - VODE:     0.44946D-06    0.46698D-06
+ Banded: JACSP - VODE:     0.17272D-07    0.18149D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:     196    196    291    291      6      6
+ Sparse SDJ:     193    193    323    323      8      8
+ Banded SDJ:     196    196    291    291      6      6
+ ____________________________________________________________
+ Problem No. =  25
+ ITOL =   7
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.61838D-02    0.61838D-02
+ Sparse: JACSP - VODE:     0.82646D-03    0.82625D-03
+ Banded: JACSP - VODE:     0.61838D-02    0.61838D-02
+                   J      V      J      V      J      V
+ Dense  SDJ:     256    256    342    342      9      9
+ Sparse SDJ:     258    258    413    413     11     11
+ Banded SDJ:     256    256    342    342      9      9
+ ____________________________________________________________
+
+ Problem No. =  25
+ ITOL =   8
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.80857D-08    0.80857D-08
+ Sparse: JACSP - VODE:     0.58998D-07    0.59000D-07
+ Banded: JACSP - VODE:     0.80857D-08    0.80857D-08
+                   J      V      J      V      J      V
+ Dense  SDJ:     252    252    337    337      8      8
+ Sparse SDJ:     245    245    370    370     10     10
+ Banded SDJ:     252    252    337    337      8      8
+ ____________________________________________________________
+ Problem No. =  25
+ ITOL =   8
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.10668D-02    0.10670D-02
+ Sparse: JACSP - VODE:     0.35578D-03    0.35850D-03
+ Banded: JACSP - VODE:     0.10668D-02    0.10670D-02
+                   J      V      J      V      J      V
+ Dense  SDJ:     351    351    460    460     12     12
+ Sparse SDJ:     346    346    510    510     13     13
+ Banded SDJ:     351    351    460    460     12     12
+ ____________________________________________________________
+
+ Problem No. =  25
+ ITOL =   9
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.48572D-08    0.48575D-08
+ Sparse: JACSP - VODE:     0.47832D-08    0.47376D-08
+ Banded: JACSP - VODE:     0.48572D-08    0.48575D-08
+                   J      V      J      V      J      V
+ Dense  SDJ:     345    345    443    443     11     11
+ Sparse SDJ:     347    347    491    491     12     12
+ Banded SDJ:     345    345    443    443     11     11
+ ____________________________________________________________
+ Problem No. =  25
+ ITOL =   9
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.16797D-04    0.16794D-04
+ Sparse: JACSP - VODE:     0.24274D-04    0.24272D-04
+ Banded: JACSP - VODE:     0.16797D-04    0.16794D-04
+                   J      V      J      V      J      V
+ Dense  SDJ:     478    478    608    608     14     14
+ Sparse SDJ:     492    492    682    682     16     16
+ Banded SDJ:     478    478    608    608     14     14
+ ____________________________________________________________
+
+ Problem No. =  25
+ ITOL =  10
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.98321D-10    0.98313D-10
+ Sparse: JACSP - VODE:     0.10977D-09    0.10980D-09
+ Banded: JACSP - VODE:     0.98321D-10    0.98313D-10
+                   J      V      J      V      J      V
+ Dense  SDJ:     502    502    602    602     13     13
+ Sparse SDJ:     502    502    678    678     16     16
+ Banded SDJ:     502    502    602    602     13     13
+ ____________________________________________________________
+ Problem No. =  25
+ ITOL =  10
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.16340D-05    0.18191D-05
+ Sparse: JACSP - VODE:     0.30670D-05    0.30656D-05
+ Banded: JACSP - VODE:     0.16340D-05    0.18191D-05
+                   J      V      J      V      J      V
+ Dense  SDJ:     703    703    839    839     18     18
+ Sparse SDJ:     709    709    950    950     22     22
+ Banded SDJ:     703    703    839    839     18     18
+ ____________________________________________________________
+
+ Problem No. =  25
+ ITOL =  11
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.20969D-10    0.20983D-10
+ Sparse: JACSP - VODE:     0.20998D-10    0.21008D-10
+ Banded: JACSP - VODE:     0.20969D-10    0.20983D-10
+                   J      V      J      V      J      V
+ Dense  SDJ:     717    717    831    831     17     17
+ Sparse SDJ:     717    717    948    948     23     23
+ Banded SDJ:     717    717    831    831     17     17
+ ____________________________________________________________
+ Problem No. =  25
+ ITOL =  11
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.45450D-06    0.45457D-06
+ Sparse: JACSP - VODE:     0.45160D-06    0.45246D-06
+ Banded: JACSP - VODE:     0.45450D-06    0.45457D-06
+                   J      V      J      V      J      V
+ Dense  SDJ:    1023   1023   1189   1189     25     25
+ Sparse SDJ:    1023   1024   1314   1315     28     28
+ Banded SDJ:    1023   1023   1189   1189     25     25
+ ____________________________________________________________
+
+ Problem No. =  25
+ ITOL =  12
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.31619D-11    0.34199D-11
+ Sparse: JACSP - VODE:     0.34486D-11    0.34526D-11
+ Banded: JACSP - VODE:     0.31619D-11    0.34199D-11
+                   J      V      J      V      J      V
+ Dense  SDJ:    1016   1016   1165   1165     24     24
+ Sparse SDJ:    1016   1016   1310   1310     30     30
+ Banded SDJ:    1016   1016   1165   1165     24     24
+ ____________________________________________________________
+ Problem No. =  25
+ ITOL =  12
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.66611D-07    0.64443D-07
+ Sparse: JACSP - VODE:     0.66982D-07    0.67274D-07
+ Banded: JACSP - VODE:     0.66611D-07    0.64443D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:    1471   1472   1668   1669     32     32
+ Sparse SDJ:    1475   1475   1898   1898     44     44
+ Banded SDJ:    1471   1472   1668   1669     32     32
+ ____________________________________________________________
+ ____________________________________________________________
+ Class/Problem = D1
+
+ Problem No. =  31
+ ITOL =   5
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.84203D-04    0.84092D-04
+ Sparse: JACSP - VODE:     0.83964D-04    0.83931D-04
+ Banded: JACSP - VODE:     0.84203D-04    0.84092D-04
+                   J      V      J      V      J      V
+ Dense  SDJ:      72     72    136    136      3      3
+ Sparse SDJ:      72     72    151    151      4      4
+ Banded SDJ:      72     72    136    136      3      3
+ ____________________________________________________________
+ Problem No. =  31
+ ITOL =   5
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.10988D-02    0.15815D-02
+ Sparse: JACSP - VODE:     0.84515D-03    0.14478D-02
+ Banded: JACSP - VODE:     0.10988D-02    0.15815D-02
+                   J      V      J      V      J      V
+ Dense  SDJ:     153    154    265    265      4      3
+ Sparse SDJ:     146    152    294    281      7      6
+ Banded SDJ:     153    154    265    265      4      3
+ ____________________________________________________________
+
+ Problem No. =  31
+ ITOL =   6
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.11006D-04    0.11011D-04
+ Sparse: JACSP - VODE:     0.28008D-04    0.28008D-04
+ Banded: JACSP - VODE:     0.11006D-04    0.11011D-04
+                   J      V      J      V      J      V
+ Dense  SDJ:     142    142    237    237      3      3
+ Sparse SDJ:     140    140    232    232      5      5
+ Banded SDJ:     142    142    237    237      3      3
+ ____________________________________________________________
+ Problem No. =  31
+ ITOL =   6
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.23503D-03    0.13043D-03
+ Sparse: JACSP - VODE:     0.20596D-03    0.46695D-04
+ Banded: JACSP - VODE:     0.23503D-03    0.13043D-03
+                   J      V      J      V      J      V
+ Dense  SDJ:     208    205    366    348      5      5
+ Sparse SDJ:     177    196    325    360      8      8
+ Banded SDJ:     208    205    366    348      5      5
+ ____________________________________________________________
+
+ Problem No. =  31
+ ITOL =   7
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.81574D-06    0.19719D-05
+ Sparse: JACSP - VODE:     0.26073D-05    0.18508D-05
+ Banded: JACSP - VODE:     0.81574D-06    0.19719D-05
+                   J      V      J      V      J      V
+ Dense  SDJ:     193    216    298    330      5      5
+ Sparse SDJ:     190    206    337    360      8      8
+ Banded SDJ:     193    216    298    330      5      5
+ ____________________________________________________________
+ Problem No. =  31
+ ITOL =   7
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.23586D-04    0.11522D-04
+ Sparse: JACSP - VODE:     0.16189D-04    0.11153D-04
+ Banded: JACSP - VODE:     0.23586D-04    0.11522D-04
+                   J      V      J      V      J      V
+ Dense  SDJ:     274    298    420    480      6      7
+ Sparse SDJ:     323    326    547    593     12     14
+ Banded SDJ:     274    298    420    480      6      7
+ ____________________________________________________________
+
+ Problem No. =  31
+ ITOL =   8
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.16855D-06    0.24683D-06
+ Sparse: JACSP - VODE:     0.39249D-06    0.87601D-07
+ Banded: JACSP - VODE:     0.16855D-06    0.24683D-06
+                   J      V      J      V      J      V
+ Dense  SDJ:     301    375    467    555      7      8
+ Sparse SDJ:     397    390    665    663     15     16
+ Banded SDJ:     301    375    467    555      7      8
+ ____________________________________________________________
+ Problem No. =  31
+ ITOL =   8
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.17604D-05    0.16896D-05
+ Sparse: JACSP - VODE:     0.17090D-05    0.19005D-05
+ Banded: JACSP - VODE:     0.17604D-05    0.16896D-05
+                   J      V      J      V      J      V
+ Dense  SDJ:     418    419    611    612     10     10
+ Sparse SDJ:     380    414    623    696     13     16
+ Banded SDJ:     418    419    611    612     10     10
+ ____________________________________________________________
+
+ Problem No. =  31
+ ITOL =   9
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.44446D-08    0.55273D-08
+ Sparse: JACSP - VODE:     0.18151D-07    0.23834D-07
+ Banded: JACSP - VODE:     0.44446D-08    0.55273D-08
+                   J      V      J      V      J      V
+ Dense  SDJ:     489    493    733    738     11     12
+ Sparse SDJ:     510    513    858    883     19     20
+ Banded SDJ:     489    493    733    738     11     12
+ ____________________________________________________________
+ Problem No. =  31
+ ITOL =   9
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.18208D-06    0.33049D-06
+ Sparse: JACSP - VODE:     0.15953D-06    0.15611D-06
+ Banded: JACSP - VODE:     0.18208D-06    0.33049D-06
+                   J      V      J      V      J      V
+ Dense  SDJ:     574    591    823    851     14     14
+ Sparse SDJ:     627    592   1032    958     24     23
+ Banded SDJ:     574    591    823    851     14     14
+ ____________________________________________________________
+
+ Problem No. =  31
+ ITOL =  10
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.36247D-08    0.49973D-08
+ Sparse: JACSP - VODE:     0.28838D-08    0.64512D-08
+ Banded: JACSP - VODE:     0.36247D-08    0.49973D-08
+                   J      V      J      V      J      V
+ Dense  SDJ:     573    609    815    884     13     13
+ Sparse SDJ:     578    531    926    856     22     20
+ Banded SDJ:     573    609    815    884     13     13
+ ____________________________________________________________
+ Problem No. =  31
+ ITOL =  10
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.54675D-07    0.45975D-07
+ Sparse: JACSP - VODE:     0.50422D-07    0.36615D-07
+ Banded: JACSP - VODE:     0.54675D-07    0.45975D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:     728    747    998   1062     17     17
+ Sparse SDJ:     723    741   1169   1197     28     29
+ Banded SDJ:     728    747    998   1062     17     17
+ ____________________________________________________________
+
+ Problem No. =  31
+ ITOL =  11
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.55292D-09    0.87426D-09
+ Sparse: JACSP - VODE:     0.60922D-09    0.70994D-09
+ Banded: JACSP - VODE:     0.55292D-09    0.87426D-09
+                   J      V      J      V      J      V
+ Dense  SDJ:     769    732   1067   1029     17     16
+ Sparse SDJ:     712    659   1117    997     26     24
+ Banded SDJ:     769    732   1067   1029     17     16
+ ____________________________________________________________
+ Problem No. =  31
+ ITOL =  11
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.91100D-08    0.85188D-08
+ Sparse: JACSP - VODE:     0.93494D-08    0.11165D-07
+ Banded: JACSP - VODE:     0.91100D-08    0.85188D-08
+                   J      V      J      V      J      V
+ Dense  SDJ:     898    903   1212   1203     20     21
+ Sparse SDJ:     886    887   1327   1253     34     30
+ Banded SDJ:     898    903   1212   1203     20     21
+ ____________________________________________________________
+
+ Problem No. =  31
+ ITOL =  12
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.14691D-09    0.16629D-09
+ Sparse: JACSP - VODE:     0.18243D-09    0.17895D-09
+ Banded: JACSP - VODE:     0.14691D-09    0.16629D-09
+                   J      V      J      V      J      V
+ Dense  SDJ:     896    899   1167   1201     20     21
+ Sparse SDJ:     872    840   1274   1197     31     29
+ Banded SDJ:     896    899   1167   1201     20     21
+ ____________________________________________________________
+ Problem No. =  31
+ ITOL =  12
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.16952D-08    0.21392D-08
+ Sparse: JACSP - VODE:     0.22937D-08    0.18082D-08
+ Banded: JACSP - VODE:     0.16952D-08    0.21392D-08
+                   J      V      J      V      J      V
+ Dense  SDJ:    1131   1129   1382   1372     25     24
+ Sparse SDJ:    1147   1119   1584   1485     41     35
+ Banded SDJ:    1131   1129   1382   1372     25     24
+ ____________________________________________________________
+ ____________________________________________________________
+ Class/Problem = D2
+
+ Problem No. =  32
+ ITOL =   5
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.18943D-04    0.97897D-05
+ Sparse: JACSP - VODE:     0.14727D-05    0.50011D-04
+ Banded: JACSP - VODE:     0.18943D-04    0.97897D-05
+                   J      V      J      V      J      V
+ Dense  SDJ:     155    173    226    266      3      4
+ Sparse SDJ:     248    155    436    267     11      7
+ Banded SDJ:     155    173    226    266      3      4
+ ____________________________________________________________
+ Problem No. =  32
+ ITOL =   5
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.41585D-03    0.41606D-03
+ Sparse: JACSP - VODE:     0.93984D-03    0.93199D-03
+ Banded: JACSP - VODE:     0.41585D-03    0.41606D-03
+                   J      V      J      V      J      V
+ Dense  SDJ:     139    139    184    183      3      3
+ Sparse SDJ:     160    161    266    266      8      8
+ Banded SDJ:     139    139    184    183      3      3
+ ____________________________________________________________
+
+ Problem No. =  32
+ ITOL =   6
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.51810D-05    0.15280D-05
+ Sparse: JACSP - VODE:     0.66534D-05    0.16040D-05
+ Banded: JACSP - VODE:     0.51810D-05    0.15280D-05
+                   J      V      J      V      J      V
+ Dense  SDJ:     204    185    321    274      4      4
+ Sparse SDJ:     243    241    413    407     11     11
+ Banded SDJ:     204    185    321    274      4      4
+ ____________________________________________________________
+ Problem No. =  32
+ ITOL =   6
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.92473D-04    0.60136D-04
+ Sparse: JACSP - VODE:     0.11874D-03    0.85801D-04
+ Banded: JACSP - VODE:     0.92473D-04    0.60136D-04
+                   J      V      J      V      J      V
+ Dense  SDJ:     263    253    404    392      5      5
+ Sparse SDJ:     223    233    384    412      9     11
+ Banded SDJ:     263    253    404    392      5      5
+ ____________________________________________________________
+
+ Problem No. =  32
+ ITOL =   7
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.13393D-05    0.48861D-06
+ Sparse: JACSP - VODE:     0.57601D-07    0.18750D-05
+ Banded: JACSP - VODE:     0.13393D-05    0.48861D-06
+                   J      V      J      V      J      V
+ Dense  SDJ:     334    353    458    508      7      8
+ Sparse SDJ:     322    338    527    570     13     14
+ Banded SDJ:     334    353    458    508      7      8
+ ____________________________________________________________
+ Problem No. =  32
+ ITOL =   7
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.25632D-04    0.25653D-04
+ Sparse: JACSP - VODE:     0.47030D-05    0.46953D-05
+ Banded: JACSP - VODE:     0.25632D-04    0.25653D-04
+                   J      V      J      V      J      V
+ Dense  SDJ:     299    299    420    418      7      7
+ Sparse SDJ:     268    268    420    418     11     11
+ Banded SDJ:     299    299    420    418      7      7
+ ____________________________________________________________
+
+ Problem No. =  32
+ ITOL =   8
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.43735D-07    0.31120D-06
+ Sparse: JACSP - VODE:     0.18642D-07    0.13234D-06
+ Banded: JACSP - VODE:     0.43735D-07    0.31120D-06
+                   J      V      J      V      J      V
+ Dense  SDJ:     416    454    593    639      9      9
+ Sparse SDJ:     421    387    679    597     17     16
+ Banded SDJ:     416    454    593    639      9      9
+ ____________________________________________________________
+ Problem No. =  32
+ ITOL =   8
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.57625D-06    0.19803D-05
+ Sparse: JACSP - VODE:     0.51769D-06    0.27718D-05
+ Banded: JACSP - VODE:     0.57625D-06    0.19803D-05
+                   J      V      J      V      J      V
+ Dense  SDJ:     419    418    596    583      9      9
+ Sparse SDJ:     389    387    627    622     16     16
+ Banded SDJ:     419    418    596    583      9      9
+ ____________________________________________________________
+
+ Problem No. =  32
+ ITOL =   9
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.18080D-07    0.11917D-07
+ Sparse: JACSP - VODE:     0.78188D-08    0.76346D-08
+ Banded: JACSP - VODE:     0.18080D-07    0.11917D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:     525    534    721    726     11     11
+ Sparse SDJ:     513    569    764    898     19     22
+ Banded SDJ:     525    534    721    726     11     11
+ ____________________________________________________________
+ Problem No. =  32
+ ITOL =   9
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.26902D-06    0.32206D-06
+ Sparse: JACSP - VODE:     0.27541D-06    0.57894D-06
+ Banded: JACSP - VODE:     0.26902D-06    0.32206D-06
+                   J      V      J      V      J      V
+ Dense  SDJ:     527    539    755    797     11     11
+ Sparse SDJ:     496    544    772    879     19     21
+ Banded SDJ:     527    539    755    797     11     11
+ ____________________________________________________________
+
+ Problem No. =  32
+ ITOL =  10
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.28674D-08    0.27697D-08
+ Sparse: JACSP - VODE:     0.35710D-08    0.71006D-09
+ Banded: JACSP - VODE:     0.28674D-08    0.27697D-08
+                   J      V      J      V      J      V
+ Dense  SDJ:     770    723   1094   1013     17     16
+ Sparse SDJ:     751    798   1168   1301     29     32
+ Banded SDJ:     770    723   1094   1013     17     16
+ ____________________________________________________________
+ Problem No. =  32
+ ITOL =  10
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.47145D-07    0.31962D-07
+ Sparse: JACSP - VODE:     0.34173D-07    0.67000D-08
+ Banded: JACSP - VODE:     0.47145D-07    0.31962D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:     717    726   1026   1019     15     15
+ Sparse SDJ:     661    661   1029   1049     26     26
+ Banded SDJ:     717    726   1026   1019     15     15
+ ____________________________________________________________
+
+ Problem No. =  32
+ ITOL =  11
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.33849D-09    0.38472D-09
+ Sparse: JACSP - VODE:     0.14127D-09    0.90075D-11
+ Banded: JACSP - VODE:     0.33849D-09    0.38472D-09
+                   J      V      J      V      J      V
+ Dense  SDJ:     984    955   1326   1286     20     20
+ Sparse SDJ:     910    938   1332   1408     31     32
+ Banded SDJ:     984    955   1326   1286     20     20
+ ____________________________________________________________
+ Problem No. =  32
+ ITOL =  11
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.17097D-07    0.49510D-08
+ Sparse: JACSP - VODE:     0.75887D-09    0.39867D-08
+ Banded: JACSP - VODE:     0.17097D-07    0.49510D-08
+                   J      V      J      V      J      V
+ Dense  SDJ:     931    930   1231   1234     19     19
+ Sparse SDJ:    1003    947   1526   1419     37     34
+ Banded SDJ:     931    930   1231   1234     19     19
+ ____________________________________________________________
+
+ Problem No. =  32
+ ITOL =  12
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.61038D-11    0.50374D-10
+ Sparse: JACSP - VODE:     0.29291D-11    0.14628D-10
+ Banded: JACSP - VODE:     0.61038D-11    0.50374D-10
+                   J      V      J      V      J      V
+ Dense  SDJ:    1204   1263   1491   1607     24     25
+ Sparse SDJ:    1208   1220   1701   1737     43     42
+ Banded SDJ:    1204   1263   1491   1607     24     25
+ ____________________________________________________________
+ Problem No. =  32
+ ITOL =  12
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.36537D-09    0.58204D-10
+ Sparse: JACSP - VODE:     0.42574D-09    0.24372D-11
+ Banded: JACSP - VODE:     0.36537D-09    0.58204D-10
+                   J      V      J      V      J      V
+ Dense  SDJ:    1196   1137   1482   1382     23     22
+ Sparse SDJ:    1149   1160   1534   1558     39     39
+ Banded SDJ:    1196   1137   1482   1382     23     22
+ ____________________________________________________________
+ ____________________________________________________________
+ Class/Problem = D3
+
+ Problem No. =  33
+ ITOL =   5
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.40200D-05    0.76936D-06
+ Sparse: JACSP - VODE:     0.98823D-06    0.45641D-06
+ Banded: JACSP - VODE:     0.40200D-05    0.76936D-06
+                   J      V      J      V      J      V
+ Dense  SDJ:     199    200    307    307      7      7
+ Sparse SDJ:     209    209    346    346      8      8
+ Banded SDJ:     199    200    307    307      7      7
+ ____________________________________________________________
+ Problem No. =  33
+ ITOL =   5
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.30056D-05    0.77384D-06
+ Sparse: JACSP - VODE:     0.12985D-06    0.20905D-05
+ Banded: JACSP - VODE:     0.30056D-05    0.77384D-06
+                   J      V      J      V      J      V
+ Dense  SDJ:     201    179    313    276      7      7
+ Sparse SDJ:     197    206    320    340      8      8
+ Banded SDJ:     201    179    313    276      7      7
+ ____________________________________________________________
+
+ Problem No. =  33
+ ITOL =   6
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.66024D-06    0.41396D-06
+ Sparse: JACSP - VODE:     0.34641D-06    0.46576D-05
+ Banded: JACSP - VODE:     0.66024D-06    0.41396D-06
+                   J      V      J      V      J      V
+ Dense  SDJ:     254    234    365    337      8      8
+ Sparse SDJ:     231    235    381    393      9      9
+ Banded SDJ:     254    234    365    337      8      8
+ ____________________________________________________________
+ Problem No. =  33
+ ITOL =   6
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.27665D-06    0.21535D-06
+ Sparse: JACSP - VODE:     0.56288D-07    0.56131D-07
+ Banded: JACSP - VODE:     0.27665D-06    0.21535D-06
+                   J      V      J      V      J      V
+ Dense  SDJ:     265    248    382    358      8      8
+ Sparse SDJ:     249    249    407    406     11     11
+ Banded SDJ:     265    248    382    358      8      8
+ ____________________________________________________________
+
+ Problem No. =  33
+ ITOL =   7
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.16859D-06    0.31548D-11
+ Sparse: JACSP - VODE:     0.88421D-08    0.10500D-07
+ Banded: JACSP - VODE:     0.16859D-06    0.31548D-11
+                   J      V      J      V      J      V
+ Dense  SDJ:     314    327    440    454     10     10
+ Sparse SDJ:     344    344    532    532     14     14
+ Banded SDJ:     314    327    440    454     10     10
+ ____________________________________________________________
+ Problem No. =  33
+ ITOL =   7
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.65874D-09    0.18859D-07
+ Sparse: JACSP - VODE:     0.12084D-06    0.13443D-06
+ Banded: JACSP - VODE:     0.65874D-09    0.18859D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:     326    317    476    444     11     10
+ Sparse SDJ:     310    309    515    519     13     14
+ Banded SDJ:     326    317    476    444     11     10
+ ____________________________________________________________
+
+ Problem No. =  33
+ ITOL =   8
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.39755D-08    0.39360D-08
+ Sparse: JACSP - VODE:     0.61198D-09    0.83857D-09
+ Banded: JACSP - VODE:     0.39755D-08    0.39360D-08
+                   J      V      J      V      J      V
+ Dense  SDJ:     444    444    577    577     13     13
+ Sparse SDJ:     419    419    657    657     18     18
+ Banded SDJ:     444    444    577    577     13     13
+ ____________________________________________________________
+ Problem No. =  33
+ ITOL =   8
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.87616D-08    0.87250D-08
+ Sparse: JACSP - VODE:     0.30134D-08    0.30057D-08
+ Banded: JACSP - VODE:     0.87616D-08    0.87250D-08
+                   J      V      J      V      J      V
+ Dense  SDJ:     434    434    580    578     13     13
+ Sparse SDJ:     413    413    654    653     18     18
+ Banded SDJ:     434    434    580    578     13     13
+ ____________________________________________________________
+
+ Problem No. =  33
+ ITOL =   9
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.97984D-09    0.97980D-09
+ Sparse: JACSP - VODE:     0.33671D-09    0.33663D-09
+ Banded: JACSP - VODE:     0.97984D-09    0.97980D-09
+                   J      V      J      V      J      V
+ Dense  SDJ:     593    593    740    740     17     17
+ Sparse SDJ:     610    610    864    864     21     21
+ Banded SDJ:     593    593    740    740     17     17
+ ____________________________________________________________
+ Problem No. =  33
+ ITOL =   9
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.11006D-09    0.11107D-09
+ Sparse: JACSP - VODE:     0.37633D-08    0.38292D-08
+ Banded: JACSP - VODE:     0.11006D-09    0.11107D-09
+                   J      V      J      V      J      V
+ Dense  SDJ:     580    580    727    725     16     16
+ Sparse SDJ:     582    582    824    823     20     20
+ Banded SDJ:     580    580    727    725     16     16
+ ____________________________________________________________
+
+ Problem No. =  33
+ ITOL =  10
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.17064D-10    0.12460D-10
+ Sparse: JACSP - VODE:     0.42556D-10    0.42447D-10
+ Banded: JACSP - VODE:     0.17064D-10    0.12460D-10
+                   J      V      J      V      J      V
+ Dense  SDJ:     871    860   1044   1031     21     21
+ Sparse SDJ:     868    868   1206   1206     30     30
+ Banded SDJ:     871    860   1044   1031     21     21
+ ____________________________________________________________
+ Problem No. =  33
+ ITOL =  10
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.48293D-10    0.48135D-10
+ Sparse: JACSP - VODE:     0.10476D-10    0.47667D-10
+ Banded: JACSP - VODE:     0.48293D-10    0.48135D-10
+                   J      V      J      V      J      V
+ Dense  SDJ:     836    836    999    997     21     21
+ Sparse SDJ:     833    832   1156   1146     29     28
+ Banded SDJ:     836    836    999    997     21     21
+ ____________________________________________________________
+
+ Problem No. =  33
+ ITOL =  11
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.60840D-12    0.31697D-11
+ Sparse: JACSP - VODE:     0.15277D-12    0.17435D-11
+ Banded: JACSP - VODE:     0.60840D-12    0.31697D-11
+                   J      V      J      V      J      V
+ Dense  SDJ:    1189   1186   1394   1393     28     28
+ Sparse SDJ:    1213   1205   1622   1620     38     39
+ Banded SDJ:    1189   1186   1394   1393     28     28
+ ____________________________________________________________
+ Problem No. =  33
+ ITOL =  11
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.54354D-11    0.18862D-10
+ Sparse: JACSP - VODE:     0.18704D-10    0.19432D-10
+ Banded: JACSP - VODE:     0.54354D-11    0.18862D-10
+                   J      V      J      V      J      V
+ Dense  SDJ:    1167   1163   1375   1370     27     27
+ Sparse SDJ:    1147   1147   1545   1544     37     37
+ Banded SDJ:    1167   1163   1375   1370     27     27
+ ____________________________________________________________
+
+ Problem No. =  33
+ ITOL =  12
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.16391D-11    0.16707D-11
+ Sparse: JACSP - VODE:     0.46696D-12    0.46252D-12
+ Banded: JACSP - VODE:     0.16391D-11    0.16707D-11
+                   J      V      J      V      J      V
+ Dense  SDJ:    1730   1730   1984   1984     38     38
+ Sparse SDJ:    1733   1733   2263   2263     54     54
+ Banded SDJ:    1730   1730   1984   1984     38     38
+ ____________________________________________________________
+ Problem No. =  33
+ ITOL =  12
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.18641D-12    0.13961D-12
+ Sparse: JACSP - VODE:     0.13612D-11    0.13697D-11
+ Banded: JACSP - VODE:     0.18641D-12    0.13961D-12
+                   J      V      J      V      J      V
+ Dense  SDJ:    1657   1657   1905   1900     36     36
+ Sparse SDJ:    1652   1652   2169   2167     52     52
+ Banded SDJ:    1657   1657   1905   1900     36     36
+ ____________________________________________________________
+ ____________________________________________________________
+ Class/Problem = D4
+
+ Problem No. =  34
+ ITOL =   5
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.20796D-04    0.15211D-04
+ Sparse: JACSP - VODE:     0.23083D-04    0.23338D-04
+ Banded: JACSP - VODE:     0.20796D-04    0.15211D-04
+                   J      V      J      V      J      V
+ Dense  SDJ:      99     99    156    159      5      5
+ Sparse SDJ:      97     97    170    170      5      5
+ Banded SDJ:      99     99    156    159      5      5
+ ____________________________________________________________
+ Problem No. =  34
+ ITOL =   5
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.22714D-04    0.22714D-04
+ Sparse: JACSP - VODE:     0.42351D-04    0.42351D-04
+ Banded: JACSP - VODE:     0.22714D-04    0.22714D-04
+                   J      V      J      V      J      V
+ Dense  SDJ:      21     21     32     32      1      1
+ Sparse SDJ:      21     21     53     53      4      4
+ Banded SDJ:      21     21     32     32      1      1
+ ____________________________________________________________
+
+ Problem No. =  34
+ ITOL =   6
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.79363D-06    0.79359D-06
+ Sparse: JACSP - VODE:     0.40388D-05    0.41703D-05
+ Banded: JACSP - VODE:     0.79363D-06    0.79359D-06
+                   J      V      J      V      J      V
+ Dense  SDJ:     110    110    177    177      7      7
+ Sparse SDJ:     114    114    194    194      5      5
+ Banded SDJ:     110    110    177    177      7      7
+ ____________________________________________________________
+ Problem No. =  34
+ ITOL =   6
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.50323D-05    0.50323D-05
+ Sparse: JACSP - VODE:     0.50882D-05    0.50882D-05
+ Banded: JACSP - VODE:     0.50323D-05    0.50323D-05
+                   J      V      J      V      J      V
+ Dense  SDJ:      30     30     45     45      1      1
+ Sparse SDJ:      30     30     54     54      2      2
+ Banded SDJ:      30     30     45     45      1      1
+ ____________________________________________________________
+
+ Problem No. =  34
+ ITOL =   7
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.10017D-05    0.10017D-05
+ Sparse: JACSP - VODE:     0.94864D-06    0.94863D-06
+ Banded: JACSP - VODE:     0.10017D-05    0.10017D-05
+                   J      V      J      V      J      V
+ Dense  SDJ:     161    161    242    242      7      7
+ Sparse SDJ:     161    161    257    257      6      6
+ Banded SDJ:     161    161    242    242      7      7
+ ____________________________________________________________
+ Problem No. =  34
+ ITOL =   7
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.22809D-07    0.22800D-07
+ Sparse: JACSP - VODE:     0.22809D-07    0.22800D-07
+ Banded: JACSP - VODE:     0.22809D-07    0.22800D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:      55     55     81     81      3      3
+ Sparse SDJ:      55     55     90     90      3      3
+ Banded SDJ:      55     55     81     81      3      3
+ ____________________________________________________________
+
+ Problem No. =  34
+ ITOL =   8
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.15173D-06    0.81210D-07
+ Sparse: JACSP - VODE:     0.13883D-06    0.13884D-06
+ Banded: JACSP - VODE:     0.15173D-06    0.81210D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:     245    246    358    355     10     10
+ Sparse SDJ:     244    244    383    383     10     10
+ Banded SDJ:     245    246    358    355     10     10
+ ____________________________________________________________
+ Problem No. =  34
+ ITOL =   8
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.27091D-06    0.27090D-06
+ Sparse: JACSP - VODE:     0.20540D-06    0.20551D-06
+ Banded: JACSP - VODE:     0.27091D-06    0.27090D-06
+                   J      V      J      V      J      V
+ Dense  SDJ:      65     65    100    100      4      4
+ Sparse SDJ:      66     66    109    109      3      3
+ Banded SDJ:      65     65    100    100      4      4
+ ____________________________________________________________
+
+ Problem No. =  34
+ ITOL =   9
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.10166D-07    0.11512D-07
+ Sparse: JACSP - VODE:     0.73218D-08    0.12067D-07
+ Banded: JACSP - VODE:     0.10166D-07    0.11512D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:     323    321    438    449     11     11
+ Sparse SDJ:     329    334    521    491     12     11
+ Banded SDJ:     323    321    438    449     11     11
+ ____________________________________________________________
+ Problem No. =  34
+ ITOL =   9
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.38196D-07    0.38196D-07
+ Sparse: JACSP - VODE:     0.60457D-08    0.60451D-08
+ Banded: JACSP - VODE:     0.38196D-07    0.38196D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:      93     93    163    163      4      4
+ Sparse SDJ:      87     87    147    147      5      5
+ Banded SDJ:      93     93    163    163      4      4
+ ____________________________________________________________
+
+ Problem No. =  34
+ ITOL =  10
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.43798D-10    0.21946D-09
+ Sparse: JACSP - VODE:     0.18415D-08    0.15828D-08
+ Banded: JACSP - VODE:     0.43798D-10    0.21946D-09
+                   J      V      J      V      J      V
+ Dense  SDJ:     439    427    602    608     14     14
+ Sparse SDJ:     424    425    641    642     15     15
+ Banded SDJ:     439    427    602    608     14     14
+ ____________________________________________________________
+ Problem No. =  34
+ ITOL =  10
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.12068D-08    0.12091D-08
+ Sparse: JACSP - VODE:     0.34321D-09    0.34335D-09
+ Banded: JACSP - VODE:     0.12068D-08    0.12091D-08
+                   J      V      J      V      J      V
+ Dense  SDJ:     123    123    189    189      6      6
+ Sparse SDJ:     124    124    218    218      5      5
+ Banded SDJ:     123    123    189    189      6      6
+ ____________________________________________________________
+
+ Problem No. =  34
+ ITOL =  11
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.17109D-10    0.45865D-09
+ Sparse: JACSP - VODE:     0.56216D-10    0.26183D-09
+ Banded: JACSP - VODE:     0.17109D-10    0.45865D-09
+                   J      V      J      V      J      V
+ Dense  SDJ:     597    590    778    772     17     17
+ Sparse SDJ:     590    582    851    836     20     20
+ Banded SDJ:     597    590    778    772     17     17
+ ____________________________________________________________
+ Problem No. =  34
+ ITOL =  11
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.97267D-10    0.10899D-09
+ Sparse: JACSP - VODE:     0.45919D-10    0.18284D-09
+ Banded: JACSP - VODE:     0.97267D-10    0.10899D-09
+                   J      V      J      V      J      V
+ Dense  SDJ:     180    182    309    337      8      8
+ Sparse SDJ:     162    176    296    310      7      8
+ Banded SDJ:     180    182    309    337      8      8
+ ____________________________________________________________
+
+ Problem No. =  34
+ ITOL =  12
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.34421D-10    0.62474D-10
+ Sparse: JACSP - VODE:     0.85114D-11    0.14220D-10
+ Banded: JACSP - VODE:     0.34421D-10    0.62474D-10
+                   J      V      J      V      J      V
+ Dense  SDJ:     788    804    999   1022     21     21
+ Sparse SDJ:     764    765   1054   1056     24     24
+ Banded SDJ:     788    804    999   1022     21     21
+ ____________________________________________________________
+ Problem No. =  34
+ ITOL =  12
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.84600D-11    0.26102D-10
+ Sparse: JACSP - VODE:     0.31759D-10    0.52328D-10
+ Banded: JACSP - VODE:     0.84600D-11    0.26102D-10
+                   J      V      J      V      J      V
+ Dense  SDJ:     209    259    327    434      8      9
+ Sparse SDJ:     234    247    417    455      9     11
+ Banded SDJ:     209    259    327    434      8      9
+ ____________________________________________________________
+ ____________________________________________________________
+ Class/Problem = D5
+
+ Problem No. =  35
+ ITOL =   5
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.51238D-04    0.55601D-04
+ Sparse: JACSP - VODE:     0.51238D-04    0.25685D-03
+ Banded: JACSP - VODE:     0.51238D-04    0.55601D-04
+                   J      V      J      V      J      V
+ Dense  SDJ:      76     70    126    130      4      5
+ Sparse SDJ:      76     75    134    142      4      5
+ Banded SDJ:      76     70    126    130      4      5
+ ____________________________________________________________
+ Problem No. =  35
+ ITOL =   5
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.45755D-02    0.45754D-02
+ Sparse: JACSP - VODE:     0.45789D-02    0.45821D-02
+ Banded: JACSP - VODE:     0.45755D-02    0.45754D-02
+                   J      V      J      V      J      V
+ Dense  SDJ:      70     70    117    117      3      3
+ Sparse SDJ:      71     71    121    121      3      3
+ Banded SDJ:      70     70    117    117      3      3
+ ____________________________________________________________
+
+ Problem No. =  35
+ ITOL =   6
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.95448D-05    0.47709D-04
+ Sparse: JACSP - VODE:     0.17110D-04    0.91243D-05
+ Banded: JACSP - VODE:     0.95448D-05    0.47709D-04
+                   J      V      J      V      J      V
+ Dense  SDJ:     107    129    179    205      5      4
+ Sparse SDJ:     117    133    202    221      6      6
+ Banded SDJ:     107    129    179    205      5      4
+ ____________________________________________________________
+ Problem No. =  35
+ ITOL =   6
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.13796D-04    0.13792D-04
+ Sparse: JACSP - VODE:     0.17239D-04    0.17234D-04
+ Banded: JACSP - VODE:     0.13796D-04    0.13792D-04
+                   J      V      J      V      J      V
+ Dense  SDJ:      88     88    146    146      5      5
+ Sparse SDJ:      88     88    159    159      6      6
+ Banded SDJ:      88     88    146    146      5      5
+ ____________________________________________________________
+
+ Problem No. =  35
+ ITOL =   7
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.57779D-05    0.40834D-05
+ Sparse: JACSP - VODE:     0.17124D-05    0.92703D-06
+ Banded: JACSP - VODE:     0.57779D-05    0.40834D-05
+                   J      V      J      V      J      V
+ Dense  SDJ:     160    168    254    273      7      8
+ Sparse SDJ:     178    156    313    289      9      8
+ Banded SDJ:     160    168    254    273      7      8
+ ____________________________________________________________
+ Problem No. =  35
+ ITOL =   7
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.13145D-05    0.12894D-05
+ Sparse: JACSP - VODE:     0.56839D-05    0.91511D-06
+ Banded: JACSP - VODE:     0.13145D-05    0.12894D-05
+                   J      V      J      V      J      V
+ Dense  SDJ:     153    186    263    295      7      7
+ Sparse SDJ:     150    154    261    318      7     10
+ Banded SDJ:     153    186    263    295      7      7
+ ____________________________________________________________
+
+ Problem No. =  35
+ ITOL =   8
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.25334D-06    0.70299D-06
+ Sparse: JACSP - VODE:     0.76780D-06    0.82563D-06
+ Banded: JACSP - VODE:     0.25334D-06    0.70299D-06
+                   J      V      J      V      J      V
+ Dense  SDJ:     274    215    474    345      9     10
+ Sparse SDJ:     237    264    449    499     12     11
+ Banded SDJ:     274    215    474    345      9     10
+ ____________________________________________________________
+ Problem No. =  35
+ ITOL =   8
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.68338D-06    0.83890D-06
+ Sparse: JACSP - VODE:     0.33514D-06    0.59310D-06
+ Banded: JACSP - VODE:     0.68338D-06    0.83890D-06
+                   J      V      J      V      J      V
+ Dense  SDJ:     217    231    335    363      9      8
+ Sparse SDJ:     229    210    415    373     10     12
+ Banded SDJ:     217    231    335    363      9      8
+ ____________________________________________________________
+
+ Problem No. =  35
+ ITOL =   9
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.81592D-07    0.42170D-07
+ Sparse: JACSP - VODE:     0.58559D-07    0.71500D-07
+ Banded: JACSP - VODE:     0.81592D-07    0.42170D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:     365    425    570    703     11     12
+ Sparse SDJ:     353    366    600    616     15     14
+ Banded SDJ:     365    425    570    703     11     12
+ ____________________________________________________________
+ Problem No. =  35
+ ITOL =   9
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.57433D-07    0.11193D-06
+ Sparse: JACSP - VODE:     0.10623D-06    0.11257D-06
+ Banded: JACSP - VODE:     0.57433D-07    0.11193D-06
+                   J      V      J      V      J      V
+ Dense  SDJ:     424    359    637    548     12     10
+ Sparse SDJ:     338    328    540    513     14     15
+ Banded SDJ:     424    359    637    548     12     10
+ ____________________________________________________________
+
+ Problem No. =  35
+ ITOL =  10
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.87922D-08    0.96201D-08
+ Sparse: JACSP - VODE:     0.67064D-08    0.87193D-08
+ Banded: JACSP - VODE:     0.87922D-08    0.96201D-08
+                   J      V      J      V      J      V
+ Dense  SDJ:     533    584    832    931     14     15
+ Sparse SDJ:     509    488    834    815     19     18
+ Banded SDJ:     533    584    832    931     14     15
+ ____________________________________________________________
+ Problem No. =  35
+ ITOL =  10
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.11142D-07    0.12008D-07
+ Sparse: JACSP - VODE:     0.11106D-07    0.80470D-08
+ Banded: JACSP - VODE:     0.11142D-07    0.12008D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:     561    511    925    782     14     15
+ Sparse SDJ:     447    519    754    876     17     20
+ Banded SDJ:     561    511    925    782     14     15
+ ____________________________________________________________
+
+ Problem No. =  35
+ ITOL =  11
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.10661D-08    0.12675D-08
+ Sparse: JACSP - VODE:     0.12698D-08    0.15231D-08
+ Banded: JACSP - VODE:     0.10661D-08    0.12675D-08
+                   J      V      J      V      J      V
+ Dense  SDJ:     721    734   1116   1088     18     18
+ Sparse SDJ:     705    678   1136   1053     26     24
+ Banded SDJ:     721    734   1116   1088     18     18
+ ____________________________________________________________
+ Problem No. =  35
+ ITOL =  11
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.11972D-08    0.16604D-08
+ Sparse: JACSP - VODE:     0.14287D-08    0.15352D-08
+ Banded: JACSP - VODE:     0.11972D-08    0.16604D-08
+                   J      V      J      V      J      V
+ Dense  SDJ:     669    653   1022    944     16     16
+ Sparse SDJ:     640    643   1011    983     23     23
+ Banded SDJ:     669    653   1022    944     16     16
+ ____________________________________________________________
+
+ Problem No. =  35
+ ITOL =  12
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.12896D-09    0.12467D-09
+ Sparse: JACSP - VODE:     0.13513D-09    0.11902D-09
+ Banded: JACSP - VODE:     0.12896D-09    0.12467D-09
+                   J      V      J      V      J      V
+ Dense  SDJ:     939    982   1355   1415     22     23
+ Sparse SDJ:    1009    962   1556   1424     36     32
+ Banded SDJ:     939    982   1355   1415     22     23
+ ____________________________________________________________
+ Problem No. =  35
+ ITOL =  12
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.16464D-09    0.11166D-09
+ Sparse: JACSP - VODE:     0.18684D-09    0.18949D-09
+ Banded: JACSP - VODE:     0.16464D-09    0.11166D-09
+                   J      V      J      V      J      V
+ Dense  SDJ:     982   1045   1392   1500     22     24
+ Sparse SDJ:     921    937   1380   1445     32     34
+ Banded SDJ:     982   1045   1392   1500     22     24
+ ____________________________________________________________
+ ____________________________________________________________
+ Class/Problem = D6
+
+ Problem No. =  36
+ ITOL =   5
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.26429D-05    0.52139D-05
+ Sparse: JACSP - VODE:     0.79526D-05    0.82648D-05
+ Banded: JACSP - VODE:     0.26429D-05    0.52139D-05
+                   J      V      J      V      J      V
+ Dense  SDJ:     127    126    195    198      6      6
+ Sparse SDJ:     129    129    207    208      5      5
+ Banded SDJ:     127    126    195    198      6      6
+ ____________________________________________________________
+ Problem No. =  36
+ ITOL =   5
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.74222D-05    0.11467D-04
+ Sparse: JACSP - VODE:     0.26880D-05    0.26993D-05
+ Banded: JACSP - VODE:     0.74222D-05    0.11467D-04
+                   J      V      J      V      J      V
+ Dense  SDJ:      52     51     83     84      2      2
+ Sparse SDJ:      46     46     93     93      5      5
+ Banded SDJ:      52     51     83     84      2      2
+ ____________________________________________________________
+
+ Problem No. =  36
+ ITOL =   6
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.67543D-05    0.14298D-05
+ Sparse: JACSP - VODE:     0.17781D-06    0.35034D-05
+ Banded: JACSP - VODE:     0.67543D-05    0.14298D-05
+                   J      V      J      V      J      V
+ Dense  SDJ:     201    208    299    309      8      8
+ Sparse SDJ:     205    240    311    415      8      9
+ Banded SDJ:     201    208    299    309      8      8
+ ____________________________________________________________
+ Problem No. =  36
+ ITOL =   6
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.44471D-05    0.89511D-06
+ Sparse: JACSP - VODE:     0.12928D-05    0.12935D-05
+ Banded: JACSP - VODE:     0.44471D-05    0.89511D-06
+                   J      V      J      V      J      V
+ Dense  SDJ:      61     74     97    136      2      2
+ Sparse SDJ:      59     59    131    131      5      5
+ Banded SDJ:      61     74     97    136      2      2
+ ____________________________________________________________
+
+ Problem No. =  36
+ ITOL =   7
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.28200D-07    0.35102D-06
+ Sparse: JACSP - VODE:     0.57380D-07    0.16951D-06
+ Banded: JACSP - VODE:     0.28200D-07    0.35102D-06
+                   J      V      J      V      J      V
+ Dense  SDJ:     296    274    402    380      9      9
+ Sparse SDJ:     276    280    463    465     11     11
+ Banded SDJ:     296    274    402    380      9      9
+ ____________________________________________________________
+ Problem No. =  36
+ ITOL =   7
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.19589D-07    0.12860D-05
+ Sparse: JACSP - VODE:     0.23374D-06    0.24077D-06
+ Banded: JACSP - VODE:     0.19589D-07    0.12860D-05
+                   J      V      J      V      J      V
+ Dense  SDJ:     147    109    245    216      3      3
+ Sparse SDJ:      84     84    163    163      5      5
+ Banded SDJ:     147    109    245    216      3      3
+ ____________________________________________________________
+
+ Problem No. =  36
+ ITOL =   8
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.88004D-07    0.28867D-07
+ Sparse: JACSP - VODE:     0.66762D-07    0.11512D-06
+ Banded: JACSP - VODE:     0.88004D-07    0.28867D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:     375    375    539    542     12     12
+ Sparse SDJ:     356    354    583    568     14     14
+ Banded SDJ:     375    375    539    542     12     12
+ ____________________________________________________________
+ Problem No. =  36
+ ITOL =   8
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.34370D-07    0.29125D-07
+ Sparse: JACSP - VODE:     0.12788D-07    0.19944D-07
+ Banded: JACSP - VODE:     0.34370D-07    0.29125D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:     147    145    230    236      3      3
+ Sparse SDJ:     151    151    280    282      7      7
+ Banded SDJ:     147    145    230    236      3      3
+ ____________________________________________________________
+
+ Problem No. =  36
+ ITOL =   9
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.25741D-08    0.25184D-08
+ Sparse: JACSP - VODE:     0.23229D-08    0.25749D-08
+ Banded: JACSP - VODE:     0.25741D-08    0.25184D-08
+                   J      V      J      V      J      V
+ Dense  SDJ:     469    497    645    717     14     14
+ Sparse SDJ:     469    447    718    665     18     17
+ Banded SDJ:     469    497    645    717     14     14
+ ____________________________________________________________
+ Problem No. =  36
+ ITOL =   9
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.18414D-08    0.57991D-08
+ Sparse: JACSP - VODE:     0.44054D-08    0.12713D-08
+ Banded: JACSP - VODE:     0.18414D-08    0.57991D-08
+                   J      V      J      V      J      V
+ Dense  SDJ:     231    218    366    354      5      5
+ Sparse SDJ:     173    226    311    426      7     10
+ Banded SDJ:     231    218    366    354      5      5
+ ____________________________________________________________
+
+ Problem No. =  36
+ ITOL =  10
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.55119D-09    0.64428D-09
+ Sparse: JACSP - VODE:     0.64653D-09    0.69450D-09
+ Banded: JACSP - VODE:     0.55119D-09    0.64428D-09
+                   J      V      J      V      J      V
+ Dense  SDJ:     652    624    934    885     18     18
+ Sparse SDJ:     626    600    935    902     22     22
+ Banded SDJ:     652    624    934    885     18     18
+ ____________________________________________________________
+ Problem No. =  36
+ ITOL =  10
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.24453D-09    0.17600D-09
+ Sparse: JACSP - VODE:     0.41084D-09    0.30078D-09
+ Banded: JACSP - VODE:     0.24453D-09    0.17600D-09
+                   J      V      J      V      J      V
+ Dense  SDJ:     278    291    462    471      7      8
+ Sparse SDJ:     228    254    409    443     10     10
+ Banded SDJ:     278    291    462    471      7      8
+ ____________________________________________________________
+
+ Problem No. =  36
+ ITOL =  11
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.91399D-10    0.90006D-10
+ Sparse: JACSP - VODE:     0.91202D-10    0.86557D-10
+ Banded: JACSP - VODE:     0.91399D-10    0.90006D-10
+                   J      V      J      V      J      V
+ Dense  SDJ:     874    888   1177   1201     22     22
+ Sparse SDJ:     839    828   1244   1210     28     29
+ Banded SDJ:     874    888   1177   1201     22     22
+ ____________________________________________________________
+ Problem No. =  36
+ ITOL =  11
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.23630D-10    0.27952D-10
+ Sparse: JACSP - VODE:     0.39189D-10    0.41518D-10
+ Banded: JACSP - VODE:     0.23630D-10    0.27952D-10
+                   J      V      J      V      J      V
+ Dense  SDJ:     331    334    473    484      8      9
+ Sparse SDJ:     352    355    569    602     14     14
+ Banded SDJ:     331    334    473    484      8      9
+ ____________________________________________________________
+
+ Problem No. =  36
+ ITOL =  12
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.12703D-10    0.10510D-10
+ Sparse: JACSP - VODE:     0.13117D-10    0.82102D-11
+ Banded: JACSP - VODE:     0.12703D-10    0.10510D-10
+                   J      V      J      V      J      V
+ Dense  SDJ:    1145   1142   1449   1445     28     28
+ Sparse SDJ:    1157   1130   1600   1584     38     39
+ Banded SDJ:    1145   1142   1449   1445     28     28
+ ____________________________________________________________
+ Problem No. =  36
+ ITOL =  12
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.62345D-11    0.43804D-11
+ Sparse: JACSP - VODE:     0.55376D-11    0.63392D-11
+ Banded: JACSP - VODE:     0.62345D-11    0.43804D-11
+                   J      V      J      V      J      V
+ Dense  SDJ:     470    451    685    628     11     12
+ Sparse SDJ:     467    445    709    686     16     16
+ Banded SDJ:     470    451    685    628     11     12
+ ____________________________________________________________
+ ____________________________________________________________
+ Class/Problem = E1
+
+ Problem No. =  41
+ ITOL =   5
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.37272D-08    0.12415D-05
+ Sparse: JACSP - VODE:     0.39261D-08    0.40731D-08
+ Banded: JACSP - VODE:     0.37272D-08    0.12415D-05
+                   J      V      J      V      J      V
+ Dense  SDJ:     124    129    188    192      7      7
+ Sparse SDJ:     124    124    200    199      5      5
+ Banded SDJ:     124    129    188    192      7      7
+ ____________________________________________________________
+ Problem No. =  41
+ ITOL =   5
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.50696D-11    0.66679D-11
+ Sparse: JACSP - VODE:     0.50787D-11    0.48520D-11
+ Banded: JACSP - VODE:     0.50696D-11    0.66679D-11
+                   J      V      J      V      J      V
+ Dense  SDJ:      42     42     72     72      3      3
+ Sparse SDJ:      42     42     76     76      2      2
+ Banded SDJ:      42     42     72     72      3      3
+ ____________________________________________________________
+
+ Problem No. =  41
+ ITOL =   6
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.35910D-09    0.72615D-07
+ Sparse: JACSP - VODE:     0.13920D-08    0.93984D-08
+ Banded: JACSP - VODE:     0.35910D-09    0.72615D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:     171    180    245    258      8      8
+ Sparse SDJ:     171    170    269    264      7      7
+ Banded SDJ:     171    180    245    258      8      8
+ ____________________________________________________________
+ Problem No. =  41
+ ITOL =   6
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.10704D-08    0.47668D-07
+ Sparse: JACSP - VODE:     0.13112D-08    0.20076D-08
+ Banded: JACSP - VODE:     0.10704D-08    0.47668D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:      86     83    138    137      4      4
+ Sparse SDJ:      87     87    163    163      5      5
+ Banded SDJ:      86     83    138    137      4      4
+ ____________________________________________________________
+
+ Problem No. =  41
+ ITOL =   7
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.83381D-09    0.11289D-08
+ Sparse: JACSP - VODE:     0.14846D-06    0.16620D-08
+ Banded: JACSP - VODE:     0.83381D-09    0.11289D-08
+                   J      V      J      V      J      V
+ Dense  SDJ:     236    242    342    325     10     10
+ Sparse SDJ:     255    239    400    356     11     10
+ Banded SDJ:     236    242    342    325     10     10
+ ____________________________________________________________
+ Problem No. =  41
+ ITOL =   7
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.19435D-08    0.10966D-07
+ Sparse: JACSP - VODE:     0.22232D-08    0.32407D-08
+ Banded: JACSP - VODE:     0.19435D-08    0.10966D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:     108    105    172    170      5      5
+ Sparse SDJ:     106    106    190    192      5      5
+ Banded SDJ:     108    105    172    170      5      5
+ ____________________________________________________________
+
+ Problem No. =  41
+ ITOL =   8
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.25592D-08    0.42974D-09
+ Sparse: JACSP - VODE:     0.16715D-07    0.76380D-08
+ Banded: JACSP - VODE:     0.25592D-08    0.42974D-09
+                   J      V      J      V      J      V
+ Dense  SDJ:     317    331    421    422     12     11
+ Sparse SDJ:     348    324    526    477     14     11
+ Banded SDJ:     317    331    421    422     12     11
+ ____________________________________________________________
+ Problem No. =  41
+ ITOL =   8
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.94766D-10    0.14738D-09
+ Sparse: JACSP - VODE:     0.13014D-08    0.62885D-10
+ Banded: JACSP - VODE:     0.94766D-10    0.14738D-09
+                   J      V      J      V      J      V
+ Dense  SDJ:     135    132    208    215      7      7
+ Sparse SDJ:     141    135    228    221      5      5
+ Banded SDJ:     135    132    208    215      7      7
+ ____________________________________________________________
+
+ Problem No. =  41
+ ITOL =   9
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.24902D-11    0.44010D-12
+ Sparse: JACSP - VODE:     0.25173D-11    0.22286D-11
+ Banded: JACSP - VODE:     0.24902D-11    0.44010D-12
+                   J      V      J      V      J      V
+ Dense  SDJ:     451    452    572    563     15     14
+ Sparse SDJ:     451    457    640    642     16     16
+ Banded SDJ:     451    452    572    563     15     14
+ ____________________________________________________________
+ Problem No. =  41
+ ITOL =   9
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.40563D-10    0.24736D-10
+ Sparse: JACSP - VODE:     0.11164D-08    0.91256D-11
+ Banded: JACSP - VODE:     0.40563D-10    0.24736D-10
+                   J      V      J      V      J      V
+ Dense  SDJ:     182    182    269    281      7      7
+ Sparse SDJ:     181    182    305    305      8      8
+ Banded SDJ:     182    182    269    281      7      7
+ ____________________________________________________________
+
+ Problem No. =  41
+ ITOL =  10
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.10779D-10    0.15161D-11
+ Sparse: JACSP - VODE:     0.75643D-09    0.47164D-08
+ Banded: JACSP - VODE:     0.10779D-10    0.15161D-11
+                   J      V      J      V      J      V
+ Dense  SDJ:     737    635    917    762     21     17
+ Sparse SDJ:     896    738   2210   1217    122     39
+ Banded SDJ:     737    635    917    762     21     17
+ ____________________________________________________________
+ Problem No. =  41
+ ITOL =  10
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.18998D-11    0.13091D-10
+ Sparse: JACSP - VODE:     0.14058D-09    0.68879D-11
+ Banded: JACSP - VODE:     0.18998D-11    0.13091D-10
+                   J      V      J      V      J      V
+ Dense  SDJ:     227    234    342    342     10     10
+ Sparse SDJ:     237    221    382    359     10      9
+ Banded SDJ:     227    234    342    342     10     10
+ ____________________________________________________________
+
+ Problem No. =  41
+ ITOL =  11
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.18208D-10    0.11303D-11
+ Sparse: JACSP - VODE:     0.10646D-11    0.20190D-11
+ Banded: JACSP - VODE:     0.18208D-10    0.11303D-11
+                   J      V      J      V      J      V
+ Dense  SDJ:    1142   1152   1485   2166     35    159
+ Sparse SDJ:    1273   1282   3339   4261    188    291
+ Banded SDJ:    1142   1152   1485   2166     35    159
+ ____________________________________________________________
+ Problem No. =  41
+ ITOL =  11
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.18003D-12    0.22913D-10
+ Sparse: JACSP - VODE:     0.32429D-12    0.27174D-12
+ Banded: JACSP - VODE:     0.18003D-12    0.22913D-10
+                   J      V      J      V      J      V
+ Dense  SDJ:     316    390    447    527     12     12
+ Sparse SDJ:     338    363    547    597     15     15
+ Banded SDJ:     316    390    447    527     12     12
+ ____________________________________________________________
+
+ Problem No. =  41
+ ITOL =  12
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.15884D-11    0.15479D-11
+ Sparse: JACSP - VODE:     0.15470D-11    0.15684D-11
+ Banded: JACSP - VODE:     0.15884D-11    0.15479D-11
+                   J      V      J      V      J      V
+ Dense  SDJ:    1690   1571   2674   2955    142    224
+ Sparse SDJ:    1731   1464   3293   2848    143    137
+ Banded SDJ:    1690   1571   2674   2955    142    224
+ ____________________________________________________________
+ Problem No. =  41
+ ITOL =  12
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.92314D-13    0.52701D-13
+ Sparse: JACSP - VODE:     0.33121D-13    0.56831D-11
+ Banded: JACSP - VODE:     0.92314D-13    0.52701D-13
+                   J      V      J      V      J      V
+ Dense  SDJ:     429    418    586    559     15     14
+ Sparse SDJ:     607    447   1016    674     29     16
+ Banded SDJ:     429    418    586    559     15     14
+ ____________________________________________________________
+ ____________________________________________________________
+ Class/Problem = E2
+
+ Problem No. =  42
+ ITOL =   5
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.60070D-03    0.59786D-03
+ Sparse: JACSP - VODE:     0.68612D-03    0.68611D-03
+ Banded: JACSP - VODE:     0.60070D-03    0.59786D-03
+                   J      V      J      V      J      V
+ Dense  SDJ:     178    178    245    245      4      4
+ Sparse SDJ:     166    166    286    286      8      8
+ Banded SDJ:     178    178    245    245      4      4
+ ____________________________________________________________
+ Problem No. =  42
+ ITOL =   5
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.78411D-04    0.78507D-04
+ Sparse: JACSP - VODE:     0.70042D-04    0.69927D-04
+ Banded: JACSP - VODE:     0.78411D-04    0.78507D-04
+                   J      V      J      V      J      V
+ Dense  SDJ:     215    215    318    318      5      5
+ Sparse SDJ:     205    205    328    328      8      8
+ Banded SDJ:     215    215    318    318      5      5
+ ____________________________________________________________
+
+ Problem No. =  42
+ ITOL =   6
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.37357D-04    0.37357D-04
+ Sparse: JACSP - VODE:     0.11643D-03    0.11643D-03
+ Banded: JACSP - VODE:     0.37357D-04    0.37357D-04
+                   J      V      J      V      J      V
+ Dense  SDJ:     228    228    313    313      5      5
+ Sparse SDJ:     232    232    363    363      9      9
+ Banded SDJ:     228    228    313    313      5      5
+ ____________________________________________________________
+ Problem No. =  42
+ ITOL =   6
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.77411D-04    0.42191D-04
+ Sparse: JACSP - VODE:     0.43792D-04    0.48535D-04
+ Banded: JACSP - VODE:     0.77411D-04    0.42191D-04
+                   J      V      J      V      J      V
+ Dense  SDJ:     269    266    402    382      6      6
+ Sparse SDJ:     248    253    387    406     10     11
+ Banded SDJ:     269    266    402    382      6      6
+ ____________________________________________________________
+
+ Problem No. =  42
+ ITOL =   7
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.88978D-05    0.89271D-05
+ Sparse: JACSP - VODE:     0.11627D-04    0.11627D-04
+ Banded: JACSP - VODE:     0.88978D-05    0.89271D-05
+                   J      V      J      V      J      V
+ Dense  SDJ:     289    289    401    401      7      7
+ Sparse SDJ:     286    286    420    420     10     10
+ Banded SDJ:     289    289    401    401      7      7
+ ____________________________________________________________
+ Problem No. =  42
+ ITOL =   7
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.11205D-04    0.13584D-04
+ Sparse: JACSP - VODE:     0.70297D-05    0.70261D-05
+ Banded: JACSP - VODE:     0.11205D-04    0.13584D-04
+                   J      V      J      V      J      V
+ Dense  SDJ:     364    377    501    519      9      9
+ Sparse SDJ:     366    366    530    530     14     14
+ Banded SDJ:     364    377    501    519      9      9
+ ____________________________________________________________
+
+ Problem No. =  42
+ ITOL =   8
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.14853D-05    0.93642D-06
+ Sparse: JACSP - VODE:     0.13671D-05    0.13736D-05
+ Banded: JACSP - VODE:     0.14853D-05    0.93642D-06
+                   J      V      J      V      J      V
+ Dense  SDJ:     398    401    515    518     10      9
+ Sparse SDJ:     402    402    560    560     15     15
+ Banded SDJ:     398    401    515    518     10      9
+ ____________________________________________________________
+ Problem No. =  42
+ ITOL =   8
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.14174D-05    0.14176D-05
+ Sparse: JACSP - VODE:     0.14068D-05    0.14825D-05
+ Banded: JACSP - VODE:     0.14174D-05    0.14176D-05
+                   J      V      J      V      J      V
+ Dense  SDJ:     531    531    666    666     12     12
+ Sparse SDJ:     503    508    699    704     18     18
+ Banded SDJ:     531    531    666    666     12     12
+ ____________________________________________________________
+
+ Problem No. =  42
+ ITOL =   9
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.40208D-06    0.40208D-06
+ Sparse: JACSP - VODE:     0.24234D-06    0.24234D-06
+ Banded: JACSP - VODE:     0.40208D-06    0.40208D-06
+                   J      V      J      V      J      V
+ Dense  SDJ:     587    587    714    714     12     12
+ Sparse SDJ:     578    578    759    759     21     21
+ Banded SDJ:     587    587    714    714     12     12
+ ____________________________________________________________
+ Problem No. =  42
+ ITOL =   9
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.18211D-06    0.18211D-06
+ Sparse: JACSP - VODE:     0.17731D-06    0.18838D-06
+ Banded: JACSP - VODE:     0.18211D-06    0.18211D-06
+                   J      V      J      V      J      V
+ Dense  SDJ:     726    726    889    889     16     16
+ Sparse SDJ:     727    725    948    949     23     23
+ Banded SDJ:     726    726    889    889     16     16
+ ____________________________________________________________
+
+ Problem No. =  42
+ ITOL =  10
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.38996D-07    0.38996D-07
+ Sparse: JACSP - VODE:     0.42937D-07    0.42937D-07
+ Banded: JACSP - VODE:     0.38996D-07    0.38996D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:     835    835    997    997     18     18
+ Sparse SDJ:     833    833   1059   1059     27     27
+ Banded SDJ:     835    835    997    997     18     18
+ ____________________________________________________________
+ Problem No. =  42
+ ITOL =  10
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.36829D-07    0.36829D-07
+ Sparse: JACSP - VODE:     0.30750D-07    0.30748D-07
+ Banded: JACSP - VODE:     0.36829D-07    0.36829D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:    1041   1041   1214   1214     21     21
+ Sparse SDJ:    1042   1042   1313   1313     34     34
+ Banded SDJ:    1041   1041   1214   1214     21     21
+ ____________________________________________________________
+
+ Problem No. =  42
+ ITOL =  11
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.75668D-08    0.74475D-08
+ Sparse: JACSP - VODE:     0.77815D-08    0.77815D-08
+ Banded: JACSP - VODE:     0.75668D-08    0.74475D-08
+                   J      V      J      V      J      V
+ Dense  SDJ:    1197   1196   1399   1396     25     25
+ Sparse SDJ:    1182   1182   1479   1479     36     36
+ Banded SDJ:    1197   1196   1399   1396     25     25
+ ____________________________________________________________
+ Problem No. =  42
+ ITOL =  11
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.44212D-08    0.56664D-08
+ Sparse: JACSP - VODE:     0.55394D-08    0.55395D-08
+ Banded: JACSP - VODE:     0.44212D-08    0.56664D-08
+                   J      V      J      V      J      V
+ Dense  SDJ:    1510   1504   1728   1727     30     30
+ Sparse SDJ:    1525   1525   1881   1881     48     48
+ Banded SDJ:    1510   1504   1728   1727     30     30
+ ____________________________________________________________
+
+ Problem No. =  42
+ ITOL =  12
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.11729D-08    0.11759D-08
+ Sparse: JACSP - VODE:     0.12932D-08    0.12933D-08
+ Banded: JACSP - VODE:     0.11729D-08    0.11759D-08
+                   J      V      J      V      J      V
+ Dense  SDJ:    1749   1748   1981   1980     33     33
+ Sparse SDJ:    1758   1758   2138   2138     53     53
+ Banded SDJ:    1749   1748   1981   1980     33     33
+ ____________________________________________________________
+ Problem No. =  42
+ ITOL =  12
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.77042D-09    0.83014D-09
+ Sparse: JACSP - VODE:     0.73122D-09    0.73155D-09
+ Banded: JACSP - VODE:     0.77042D-09    0.83014D-09
+                   J      V      J      V      J      V
+ Dense  SDJ:    2143   2195   2444   2491     40     41
+ Sparse SDJ:    2175   2175   2628   2628     62     62
+ Banded SDJ:    2143   2195   2444   2491     40     41
+ ____________________________________________________________
+ ____________________________________________________________
+ Class/Problem = E3
+
+ Problem No. =  43
+ ITOL =   5
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.35616D-04    0.35648D-04
+ Sparse: JACSP - VODE:     0.18211D-04    0.18213D-04
+ Banded: JACSP - VODE:     0.35616D-04    0.35648D-04
+                   J      V      J      V      J      V
+ Dense  SDJ:     150    150    273    273      5      5
+ Sparse SDJ:     134    134    206    206      5      5
+ Banded SDJ:     150    150    273    273      5      5
+ ____________________________________________________________
+ Problem No. =  43
+ ITOL =   5
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.42416D-04    0.42188D-04
+ Sparse: JACSP - VODE:     0.17876D-03    0.17876D-03
+ Banded: JACSP - VODE:     0.42416D-04    0.42188D-04
+                   J      V      J      V      J      V
+ Dense  SDJ:     189    189    316    316      6      6
+ Sparse SDJ:     138    138    223    223      5      5
+ Banded SDJ:     189    189    316    316      6      6
+ ____________________________________________________________
+
+ Problem No. =  43
+ ITOL =   6
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.10851D-04    0.10902D-04
+ Sparse: JACSP - VODE:     0.10473D-04    0.10473D-04
+ Banded: JACSP - VODE:     0.10851D-04    0.10902D-04
+                   J      V      J      V      J      V
+ Dense  SDJ:     195    195    299    299      7      7
+ Sparse SDJ:     245    245    416    416     11     11
+ Banded SDJ:     195    195    299    299      7      7
+ ____________________________________________________________
+ Problem No. =  43
+ ITOL =   6
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.48663D-04    0.48515D-04
+ Sparse: JACSP - VODE:     0.12284D-04    0.12792D-04
+ Banded: JACSP - VODE:     0.48663D-04    0.48515D-04
+                   J      V      J      V      J      V
+ Dense  SDJ:     210    210    298    298      7      7
+ Sparse SDJ:     222    222    387    387      9      9
+ Banded SDJ:     210    210    298    298      7      7
+ ____________________________________________________________
+
+ Problem No. =  43
+ ITOL =   7
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.99478D-06    0.46789D-06
+ Sparse: JACSP - VODE:     0.20239D-05    0.41417D-06
+ Banded: JACSP - VODE:     0.99478D-06    0.46789D-06
+                   J      V      J      V      J      V
+ Dense  SDJ:     314    289    463    423     10      9
+ Sparse SDJ:     276    268    467    436     11     11
+ Banded SDJ:     314    289    463    423     10      9
+ ____________________________________________________________
+ Problem No. =  43
+ ITOL =   7
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.23507D-05    0.13106D-04
+ Sparse: JACSP - VODE:     0.56879D-05    0.19326D-04
+ Banded: JACSP - VODE:     0.23507D-05    0.13106D-04
+                   J      V      J      V      J      V
+ Dense  SDJ:     327    345    514    524     10     11
+ Sparse SDJ:     327    295    546    494     13     11
+ Banded SDJ:     327    345    514    524     10     11
+ ____________________________________________________________
+
+ Problem No. =  43
+ ITOL =   8
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.50468D-07    0.18497D-07
+ Sparse: JACSP - VODE:     0.39561D-07    0.45459D-07
+ Banded: JACSP - VODE:     0.50468D-07    0.18497D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:     385    418    531    595     11     12
+ Sparse SDJ:     362    352    573    526     14     13
+ Banded SDJ:     385    418    531    595     11     12
+ ____________________________________________________________
+ Problem No. =  43
+ ITOL =   8
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.65369D-06    0.25055D-06
+ Sparse: JACSP - VODE:     0.45508D-06    0.45533D-06
+ Banded: JACSP - VODE:     0.65369D-06    0.25055D-06
+                   J      V      J      V      J      V
+ Dense  SDJ:     384    397    578    584     11     12
+ Sparse SDJ:     410    410    647    647     16     16
+ Banded SDJ:     384    397    578    584     11     12
+ ____________________________________________________________
+
+ Problem No. =  43
+ ITOL =   9
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.21622D-07    0.25372D-07
+ Sparse: JACSP - VODE:     0.12044D-07    0.87503D-08
+ Banded: JACSP - VODE:     0.21622D-07    0.25372D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:     522    510    777    730     15     14
+ Sparse SDJ:     508    476    818    747     20     19
+ Banded SDJ:     522    510    777    730     15     14
+ ____________________________________________________________
+ Problem No. =  43
+ ITOL =   9
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.20068D-06    0.63616D-07
+ Sparse: JACSP - VODE:     0.10500D-06    0.11097D-06
+ Banded: JACSP - VODE:     0.20068D-06    0.63616D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:     529    535    771    773     15     15
+ Sparse SDJ:     495    495    718    742     17     18
+ Banded SDJ:     529    535    771    773     15     15
+ ____________________________________________________________
+
+ Problem No. =  43
+ ITOL =  10
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.66566D-09    0.23672D-08
+ Sparse: JACSP - VODE:     0.88365D-09    0.95209D-09
+ Banded: JACSP - VODE:     0.66566D-09    0.23672D-08
+                   J      V      J      V      J      V
+ Dense  SDJ:     642    638    858    861     17     17
+ Sparse SDJ:     616    622    912    892     22     21
+ Banded SDJ:     642    638    858    861     17     17
+ ____________________________________________________________
+ Problem No. =  43
+ ITOL =  10
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.10193D-06    0.48339D-07
+ Sparse: JACSP - VODE:     0.37776D-07    0.31999D-07
+ Banded: JACSP - VODE:     0.10193D-06    0.48339D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:     660    671    869    918     17     17
+ Sparse SDJ:     609    615    857    877     20     21
+ Banded SDJ:     660    671    869    918     17     17
+ ____________________________________________________________
+
+ Problem No. =  43
+ ITOL =  11
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.22316D-09    0.19905D-09
+ Sparse: JACSP - VODE:     0.72006D-10    0.57774D-10
+ Banded: JACSP - VODE:     0.22316D-09    0.19905D-09
+                   J      V      J      V      J      V
+ Dense  SDJ:     823    821   1051   1072     21     21
+ Sparse SDJ:     788    763   1083   1045     25     26
+ Banded SDJ:     823    821   1051   1072     21     21
+ ____________________________________________________________
+ Problem No. =  43
+ ITOL =  11
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.23873D-08    0.44747D-08
+ Sparse: JACSP - VODE:     0.23293D-08    0.43679D-08
+ Banded: JACSP - VODE:     0.23873D-08    0.44747D-08
+                   J      V      J      V      J      V
+ Dense  SDJ:     870    841   1101   1080     21     21
+ Sparse SDJ:     825    800   1099   1059     27     25
+ Banded SDJ:     870    841   1101   1080     21     21
+ ____________________________________________________________
+
+ Problem No. =  43
+ ITOL =  12
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.20814D-10    0.18109D-10
+ Sparse: JACSP - VODE:     0.32006D-10    0.72027D-11
+ Banded: JACSP - VODE:     0.20814D-10    0.18109D-10
+                   J      V      J      V      J      V
+ Dense  SDJ:    1086   1064   1299   1241     25     24
+ Sparse SDJ:    1079   1071   1379   1371     32     32
+ Banded SDJ:    1086   1064   1299   1241     25     24
+ ____________________________________________________________
+ Problem No. =  43
+ ITOL =  12
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.20265D-09    0.30349D-09
+ Sparse: JACSP - VODE:     0.30732D-09    0.27266D-09
+ Banded: JACSP - VODE:     0.20265D-09    0.30349D-09
+                   J      V      J      V      J      V
+ Dense  SDJ:    1123   1134   1294   1314     26     26
+ Sparse SDJ:    1140   1090   1456   1402     37     35
+ Banded SDJ:    1123   1134   1294   1314     26     26
+ ____________________________________________________________
+ ____________________________________________________________
+ Class/Problem = E4
+
+ Problem No. =  44
+ ITOL =   5
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.21049D-04    0.11306D-04
+ Sparse: JACSP - VODE:     0.19018D-04    0.18660D-06
+ Banded: JACSP - VODE:     0.21049D-04    0.11306D-04
+                   J      V      J      V      J      V
+ Dense  SDJ:     253    241    378    341      8      7
+ Sparse SDJ:     316    258    521    414     13     11
+ Banded SDJ:     253    241    378    341      8      7
+ ____________________________________________________________
+ Problem No. =  44
+ ITOL =   5
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.52554D-04    0.38158D-04
+ Sparse: JACSP - VODE:     0.10074D-05    0.13429D-04
+ Banded: JACSP - VODE:     0.52554D-04    0.38158D-04
+                   J      V      J      V      J      V
+ Dense  SDJ:     292    288    424    423      8      8
+ Sparse SDJ:     287    294    444    464     11     12
+ Banded SDJ:     292    288    424    423      8      8
+ ____________________________________________________________
+
+ Problem No. =  44
+ ITOL =   6
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.82676D-06    0.82709D-06
+ Sparse: JACSP - VODE:     0.38316D-06    0.17780D-06
+ Banded: JACSP - VODE:     0.82676D-06    0.82709D-06
+                   J      V      J      V      J      V
+ Dense  SDJ:     282    282    411    411      9      9
+ Sparse SDJ:     275    276    449    449     12     12
+ Banded SDJ:     282    282    411    411      9      9
+ ____________________________________________________________
+ Problem No. =  44
+ ITOL =   6
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.96150D-06    0.85324D-07
+ Sparse: JACSP - VODE:     0.38816D-04    0.12525D-06
+ Banded: JACSP - VODE:     0.96150D-06    0.85324D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:     377    380    527    525     11     11
+ Sparse SDJ:     562    396   1511    620     80     16
+ Banded SDJ:     377    380    527    525     11     11
+ ____________________________________________________________
+
+ Problem No. =  44
+ ITOL =   7
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.28235D-07    0.18802D-07
+ Sparse: JACSP - VODE:     0.14027D-07    0.22905D-07
+ Banded: JACSP - VODE:     0.28235D-07    0.18802D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:     409    416    556    565     12     12
+ Sparse SDJ:     384    408    613    658     15     17
+ Banded SDJ:     409    416    556    565     12     12
+ ____________________________________________________________
+ Problem No. =  44
+ ITOL =   7
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.82990D-08    0.10582D-06
+ Sparse: JACSP - VODE:     0.12100D-05    0.13323D-06
+ Banded: JACSP - VODE:     0.82990D-08    0.10582D-06
+                   J      V      J      V      J      V
+ Dense  SDJ:     552    549    725    711     14     14
+ Sparse SDJ:     811    532   2010    813     95     19
+ Banded SDJ:     552    549    725    711     14     14
+ ____________________________________________________________
+
+ Problem No. =  44
+ ITOL =   8
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.39659D-08    0.24400D-08
+ Sparse: JACSP - VODE:     0.61869D-08    0.76607D-08
+ Banded: JACSP - VODE:     0.39659D-08    0.24400D-08
+                   J      V      J      V      J      V
+ Dense  SDJ:     558    564    727    737     14     14
+ Sparse SDJ:     540    539    803    790     18     18
+ Banded SDJ:     558    564    727    737     14     14
+ ____________________________________________________________
+ Problem No. =  44
+ ITOL =   8
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.59783D-08    0.25960D-09
+ Sparse: JACSP - VODE:     0.59677D-08    0.67201D-08
+ Banded: JACSP - VODE:     0.59783D-08    0.25960D-09
+                   J      V      J      V      J      V
+ Dense  SDJ:     728    748    914    916     18     18
+ Sparse SDJ:     870    739   1539   1057     50     25
+ Banded SDJ:     728    748    914    916     18     18
+ ____________________________________________________________
+
+ Problem No. =  44
+ ITOL =   9
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.48625D-10    0.17375D-08
+ Sparse: JACSP - VODE:     0.68585D-06    0.91936D-10
+ Banded: JACSP - VODE:     0.48625D-10    0.17375D-08
+                   J      V      J      V      J      V
+ Dense  SDJ:     766    769    950    956     19     19
+ Sparse SDJ:    1244    771   3392   1087    198     27
+ Banded SDJ:     766    769    950    956     19     19
+ ____________________________________________________________
+ Problem No. =  44
+ ITOL =   9
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.24609D-09    0.12428D-08
+ Sparse: JACSP - VODE:     0.48970D-08    0.69177D-09
+ Banded: JACSP - VODE:     0.24609D-09    0.12428D-08
+                   J      V      J      V      J      V
+ Dense  SDJ:    1062   1048   1274   1267     24     23
+ Sparse SDJ:    1655   1047   4104   1411    223     31
+ Banded SDJ:    1062   1048   1274   1267     24     23
+ ____________________________________________________________
+
+ Problem No. =  44
+ ITOL =  10
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.10133D-07    0.73500D-10
+ Sparse: JACSP - VODE:     0.16934D-09    0.47575D-10
+ Banded: JACSP - VODE:     0.10133D-07    0.73500D-10
+                   J      V      J      V      J      V
+ Dense  SDJ:    1208   1122   1736   1337     73     24
+ Sparse SDJ:    1405   1125   2101   1528     58     36
+ Banded SDJ:    1208   1122   1736   1337     73     24
+ ____________________________________________________________
+ Problem No. =  44
+ ITOL =  10
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.10843D-08    0.12562D-08
+ Sparse: JACSP - VODE:     0.18693D-07    0.90016D-10
+ Banded: JACSP - VODE:     0.10843D-08    0.12562D-08
+                   J      V      J      V      J      V
+ Dense  SDJ:    2969   1525   9199   1801    931     32
+ Sparse SDJ:    3728   1508  16705   2015   1213     48
+ Banded SDJ:    2969   1525   9199   1801    931     32
+ ____________________________________________________________
+
+ Problem No. =  44
+ ITOL =  11
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.37456D-09    0.76892D-11
+ Sparse: JACSP - VODE:     0.91198D-10    0.63126D-11
+ Banded: JACSP - VODE:     0.37456D-09    0.76892D-11
+                   J      V      J      V      J      V
+ Dense  SDJ:    3377   1586  10342   1836   1029     33
+ Sparse SDJ:    2844   1585  10037   2087    678     48
+ Banded SDJ:    3377   1586  10342   1836   1029     33
+ ____________________________________________________________
+ Problem No. =  44
+ ITOL =  11
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.15374D-08    0.94680D-11
+ Sparse: JACSP - VODE:     0.46963D-09    0.76380D-10
+ Banded: JACSP - VODE:     0.15374D-08    0.94680D-11
+                   J      V      J      V      J      V
+ Dense  SDJ:    5489   2182  17557   2483   1754     43
+ Sparse SDJ:    5923   2179  25091   2813   1748     62
+ Banded SDJ:    5489   2182  17557   2483   1754     43
+ ____________________________________________________________
+
+ Problem No. =  44
+ ITOL =  12
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.29906D-09    0.87967D-12
+ Sparse: JACSP - VODE:     0.70771D-09    0.76457D-12
+ Banded: JACSP - VODE:     0.29906D-09    0.87967D-12
+                   J      V      J      V      J      V
+ Dense  SDJ:    4956   2282  14098   2599   1323     44
+ Sparse SDJ:    5150   2282  21439   2960   1518     67
+ Banded SDJ:    4956   2282  14098   2599   1323     44
+ ____________________________________________________________
+ Problem No. =  44
+ ITOL =  12
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.73937D-10    0.55245D-11
+ Sparse: JACSP - VODE:     0.30552D-10    0.10748D-11
+ Banded: JACSP - VODE:     0.73937D-10    0.55245D-11
+                   J      V      J      V      J      V
+ Dense  SDJ:    6988   3190  18983   3644   1610     61
+ Sparse SDJ:    7437   3130  26031   4013   1620     89
+ Banded SDJ:    6988   3190  18983   3644   1610     61
+ ____________________________________________________________
+ ____________________________________________________________
+ Class/Problem = E5
+
+ Problem No. =  45
+ ITOL =   5
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.56626D-05    0.18855D-04
+ Sparse: JACSP - VODE:     0.54941D-05    0.54950D-05
+ Banded: JACSP - VODE:     0.56626D-05    0.18855D-04
+                   J      V      J      V      J      V
+ Dense  SDJ:      74     73    100    104      2      3
+ Sparse SDJ:      80     80    140    139      5      5
+ Banded SDJ:      74     73    100    104      2      3
+ ____________________________________________________________
+ Problem No. =  45
+ ITOL =   5
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.53967D-03    0.54075D-03
+ Sparse: JACSP - VODE:     0.75382D-05    0.75382D-05
+ Banded: JACSP - VODE:     0.53967D-03    0.54075D-03
+                   J      V      J      V      J      V
+ Dense  SDJ:      10     10     29     29      2      2
+ Sparse SDJ:      10     10     65     65      6      6
+ Banded SDJ:      10     10     29     29      2      2
+ ____________________________________________________________
+
+ Problem No. =  45
+ ITOL =   6
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.13718D-05    0.19244D-05
+ Sparse: JACSP - VODE:     0.13700D-05    0.15627D-05
+ Banded: JACSP - VODE:     0.13718D-05    0.19244D-05
+                   J      V      J      V      J      V
+ Dense  SDJ:      88    106    133    151      3      4
+ Sparse SDJ:      88     98    153    169      4      5
+ Banded SDJ:      88    106    133    151      3      4
+ ____________________________________________________________
+ Problem No. =  45
+ ITOL =   6
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.18276D-05    0.18339D-05
+ Sparse: JACSP - VODE:     0.12578D-04    0.12577D-04
+ Banded: JACSP - VODE:     0.18276D-05    0.18339D-05
+                   J      V      J      V      J      V
+ Dense  SDJ:      15     15     34     34      2      2
+ Sparse SDJ:      14     14     84     84      7      7
+ Banded SDJ:      15     15     34     34      2      2
+ ____________________________________________________________
+
+ Problem No. =  45
+ ITOL =   7
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.17151D-06    0.43258D-06
+ Sparse: JACSP - VODE:     0.18863D-06    0.41049D-06
+ Banded: JACSP - VODE:     0.17151D-06    0.43258D-06
+                   J      V      J      V      J      V
+ Dense  SDJ:     119    136    169    184      4      4
+ Sparse SDJ:     121    132    196    204      5      5
+ Banded SDJ:     119    136    169    184      4      4
+ ____________________________________________________________
+ Problem No. =  45
+ ITOL =   7
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.11765D-05    0.11756D-05
+ Sparse: JACSP - VODE:     0.10684D-06    0.10684D-06
+ Banded: JACSP - VODE:     0.11765D-05    0.11756D-05
+                   J      V      J      V      J      V
+ Dense  SDJ:      22     22     42     42      2      2
+ Sparse SDJ:      20     20     72     72      5      5
+ Banded SDJ:      22     22     42     42      2      2
+ ____________________________________________________________
+
+ Problem No. =  45
+ ITOL =   8
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.10221D-07    0.18415D-07
+ Sparse: JACSP - VODE:     0.95418D-08    0.42365D-07
+ Banded: JACSP - VODE:     0.10221D-07    0.18415D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:     179    182    254    250      6      6
+ Sparse SDJ:     190    193    296    295      8      8
+ Banded SDJ:     179    182    254    250      6      6
+ ____________________________________________________________
+ Problem No. =  45
+ ITOL =   8
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.16166D-06    0.29771D-06
+ Sparse: JACSP - VODE:     0.99133D-07    0.99142D-07
+ Banded: JACSP - VODE:     0.16166D-06    0.29771D-06
+                   J      V      J      V      J      V
+ Dense  SDJ:      26     29     53     56      2      2
+ Sparse SDJ:      30     30     93     93      5      5
+ Banded SDJ:      26     29     53     56      2      2
+ ____________________________________________________________
+
+ Problem No. =  45
+ ITOL =   9
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.51652D-07    0.50265D-07
+ Sparse: JACSP - VODE:     0.49339D-07    0.51484D-07
+ Banded: JACSP - VODE:     0.51652D-07    0.50265D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:     262    263    345    350      7      7
+ Sparse SDJ:     239    276    356    421      8     11
+ Banded SDJ:     262    263    345    350      7      7
+ ____________________________________________________________
+ Problem No. =  45
+ ITOL =   9
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.51084D-08    0.13511D-08
+ Sparse: JACSP - VODE:     0.78998D-08    0.79010D-08
+ Banded: JACSP - VODE:     0.51084D-08    0.13511D-08
+                   J      V      J      V      J      V
+ Dense  SDJ:      42     41     75     77      2      2
+ Sparse SDJ:      43     43    107    107      5      5
+ Banded SDJ:      42     41     75     77      2      2
+ ____________________________________________________________
+
+ Problem No. =  45
+ ITOL =  10
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.53601D-07    0.53885D-07
+ Sparse: JACSP - VODE:     0.53517D-07    0.53505D-07
+ Banded: JACSP - VODE:     0.53601D-07    0.53885D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:     369    344    500    449     10     10
+ Sparse SDJ:     362    361    560    556     14     14
+ Banded SDJ:     369    344    500    449     10     10
+ ____________________________________________________________
+ Problem No. =  45
+ ITOL =  10
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.33732D-08    0.46690D-08
+ Sparse: JACSP - VODE:     0.32759D-08    0.32760D-08
+ Banded: JACSP - VODE:     0.33732D-08    0.46690D-08
+                   J      V      J      V      J      V
+ Dense  SDJ:      66     61    100     93      1      2
+ Sparse SDJ:      66     66    136    136      5      5
+ Banded SDJ:      66     61    100     93      1      2
+ ____________________________________________________________
+
+ Problem No. =  45
+ ITOL =  11
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.53915D-07    0.53922D-07
+ Sparse: JACSP - VODE:     0.53927D-07    0.53933D-07
+ Banded: JACSP - VODE:     0.53915D-07    0.53922D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:     467    475    592    603     12     13
+ Sparse SDJ:     480    495    714    737     17     19
+ Banded SDJ:     467    475    592    603     12     13
+ ____________________________________________________________
+ Problem No. =  45
+ ITOL =  11
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.67854D-09    0.82755D-09
+ Sparse: JACSP - VODE:     0.91000D-09    0.91000D-09
+ Banded: JACSP - VODE:     0.67854D-09    0.82755D-09
+                   J      V      J      V      J      V
+ Dense  SDJ:      84     85    130    127      2      2
+ Sparse SDJ:      86     86    172    172      6      6
+ Banded SDJ:      84     85    130    127      2      2
+ ____________________________________________________________
+
+ Problem No. =  45
+ ITOL =  12
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.53936D-07    0.53935D-07
+ Sparse: JACSP - VODE:     0.53936D-07    0.53936D-07
+ Banded: JACSP - VODE:     0.53936D-07    0.53935D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:     669    684    834    834     16     16
+ Sparse SDJ:     664    675    923    940     20     21
+ Banded SDJ:     669    684    834    834     16     16
+ ____________________________________________________________
+ Problem No. =  45
+ ITOL =  12
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.22400D-09    0.25207D-09
+ Sparse: JACSP - VODE:     0.23251D-09    0.23257D-09
+ Banded: JACSP - VODE:     0.22400D-09    0.25207D-09
+                   J      V      J      V      J      V
+ Dense  SDJ:     103    105    143    151      2      2
+ Sparse SDJ:     103    103    191    191      7      7
+ Banded SDJ:     103    105    143    151      2      2
+ ____________________________________________________________
+ ____________________________________________________________
+ Class/Problem = F1
+
+ Problem No. =  51
+ ITOL =   5
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.42450D-05    0.83831D-05
+ Sparse: JACSP - VODE:     0.64518D-05    0.75494D-05
+ Banded: JACSP - VODE:     0.42450D-05    0.83831D-05
+                   J      V      J      V      J      V
+ Dense  SDJ:     384    349    745    664     22     19
+ Sparse SDJ:     260    252    555    599     20     21
+ Banded SDJ:     384    349    745    664     22     19
+ ____________________________________________________________
+ Problem No. =  51
+ ITOL =   5
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.98034D-02    0.66681D-02
+ Sparse: JACSP - VODE:     0.90740D-02    0.86694D-02
+ Banded: JACSP - VODE:     0.98034D-02    0.66681D-02
+                   J      V      J      V      J      V
+ Dense  SDJ:     273    295    474    514     16     17
+ Sparse SDJ:     348    301    724    647     24     22
+ Banded SDJ:     273    295    474    514     16     17
+ ____________________________________________________________
+
+ Problem No. =  51
+ ITOL =   6
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.40150D-06    0.34351D-05
+ Sparse: JACSP - VODE:     0.24899D-05    0.85278D-06
+ Banded: JACSP - VODE:     0.40150D-06    0.34351D-05
+                   J      V      J      V      J      V
+ Dense  SDJ:     405    406    728    747     23     22
+ Sparse SDJ:     373    340    816    713     25     24
+ Banded SDJ:     405    406    728    747     23     22
+ ____________________________________________________________
+ Problem No. =  51
+ ITOL =   6
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.14824D-02    0.82423D-03
+ Sparse: JACSP - VODE:     0.33431D-03    0.15384D-02
+ Banded: JACSP - VODE:     0.14824D-02    0.82423D-03
+                   J      V      J      V      J      V
+ Dense  SDJ:     432    385    764    649     21     19
+ Sparse SDJ:     406    334    801    726     24     23
+ Banded SDJ:     432    385    764    649     21     19
+ ____________________________________________________________
+
+ Problem No. =  51
+ ITOL =   7
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.89191D-07    0.24681D-06
+ Sparse: JACSP - VODE:     0.27678D-06    0.11446D-06
+ Banded: JACSP - VODE:     0.89191D-07    0.24681D-06
+                   J      V      J      V      J      V
+ Dense  SDJ:     538    607    977   1024     25     23
+ Sparse SDJ:     568    491   1229   1019     30     30
+ Banded SDJ:     538    607    977   1024     25     23
+ ____________________________________________________________
+ Problem No. =  51
+ ITOL =   7
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.32637D-04    0.31004D-04
+ Sparse: JACSP - VODE:     0.24654D-04    0.41469D-04
+ Banded: JACSP - VODE:     0.32637D-04    0.31004D-04
+                   J      V      J      V      J      V
+ Dense  SDJ:     610    579   1079   1014     22     22
+ Sparse SDJ:     529    452   1058    912     31     27
+ Banded SDJ:     610    579   1079   1014     22     22
+ ____________________________________________________________
+
+ Problem No. =  51
+ ITOL =   8
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.98051D-08    0.35524D-07
+ Sparse: JACSP - VODE:     0.38840D-07    0.50334D-07
+ Banded: JACSP - VODE:     0.98051D-08    0.35524D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:     720    725   1174   1191     26     26
+ Sparse SDJ:     686    780   1220   1456     30     34
+ Banded SDJ:     720    725   1174   1191     26     26
+ ____________________________________________________________
+ Problem No. =  51
+ ITOL =   8
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.55294D-05    0.98613D-05
+ Sparse: JACSP - VODE:     0.41407D-04    0.21342D-04
+ Banded: JACSP - VODE:     0.55294D-05    0.98613D-05
+                   J      V      J      V      J      V
+ Dense  SDJ:     753    816   1289   1339     25     25
+ Sparse SDJ:     684    735   1247   1410     32     36
+ Banded SDJ:     753    816   1289   1339     25     25
+ ____________________________________________________________
+
+ Problem No. =  51
+ ITOL =   9
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.35698D-09    0.33201D-08
+ Sparse: JACSP - VODE:     0.30183D-08    0.47336D-08
+ Banded: JACSP - VODE:     0.35698D-09    0.33201D-08
+                   J      V      J      V      J      V
+ Dense  SDJ:    1010   1013   1644   1603     31     31
+ Sparse SDJ:     960    980   1748   1858     41     42
+ Banded SDJ:    1010   1013   1644   1603     31     31
+ ____________________________________________________________
+ Problem No. =  51
+ ITOL =   9
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.48443D-06    0.21504D-05
+ Sparse: JACSP - VODE:     0.23201D-06    0.12477D-05
+ Banded: JACSP - VODE:     0.48443D-06    0.21504D-05
+                   J      V      J      V      J      V
+ Dense  SDJ:    1025    960   1620   1545     28     29
+ Sparse SDJ:    1039   1104   1839   2015     42     46
+ Banded SDJ:    1025    960   1620   1545     28     29
+ ____________________________________________________________
+
+ Problem No. =  51
+ ITOL =  10
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.34065D-09    0.44423D-09
+ Sparse: JACSP - VODE:     0.14275D-11    0.78980D-09
+ Banded: JACSP - VODE:     0.34065D-09    0.44423D-09
+                   J      V      J      V      J      V
+ Dense  SDJ:    1530   1496   2359   2279     35     36
+ Sparse SDJ:    1523   1520   2603   2561     54     55
+ Banded SDJ:    1530   1496   2359   2279     35     36
+ ____________________________________________________________
+ Problem No. =  51
+ ITOL =  10
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.28004D-06    0.24935D-06
+ Sparse: JACSP - VODE:     0.36814D-06    0.28625D-06
+ Banded: JACSP - VODE:     0.28004D-06    0.24935D-06
+                   J      V      J      V      J      V
+ Dense  SDJ:    1299   1299   1994   2016     33     32
+ Sparse SDJ:    1156   1290   2091   2270     48     50
+ Banded SDJ:    1299   1299   1994   2016     33     32
+ ____________________________________________________________
+
+ Problem No. =  51
+ ITOL =  11
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.50261D-10    0.55779D-10
+ Sparse: JACSP - VODE:     0.58758D-10    0.50330D-10
+ Banded: JACSP - VODE:     0.50261D-10    0.55779D-10
+                   J      V      J      V      J      V
+ Dense  SDJ:    2132   2097   3065   3024     45     43
+ Sparse SDJ:    2033   2076   3441   3525     75     74
+ Banded SDJ:    2132   2097   3065   3024     45     43
+ ____________________________________________________________
+ Problem No. =  51
+ ITOL =  11
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.40679D-07    0.41034D-07
+ Sparse: JACSP - VODE:     0.26661D-07    0.34577D-07
+ Banded: JACSP - VODE:     0.40679D-07    0.41034D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:    1742   1881   2681   2767     38     39
+ Sparse SDJ:    1812   1673   3086   2706     64     56
+ Banded SDJ:    1742   1881   2681   2767     38     39
+ ____________________________________________________________
+
+ Problem No. =  51
+ ITOL =  12
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.91980D-11    0.69398D-11
+ Sparse: JACSP - VODE:     0.55835D-11    0.83380D-11
+ Banded: JACSP - VODE:     0.91980D-11    0.69398D-11
+                   J      V      J      V      J      V
+ Dense  SDJ:    2895   2913   4062   4059     55     56
+ Sparse SDJ:    2646   2719   4201   4306     84     89
+ Banded SDJ:    2895   2913   4062   4059     55     56
+ ____________________________________________________________
+ Problem No. =  51
+ ITOL =  12
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.56027D-08    0.42260D-08
+ Sparse: JACSP - VODE:     0.47503D-08    0.53990D-08
+ Banded: JACSP - VODE:     0.56027D-08    0.42260D-08
+                   J      V      J      V      J      V
+ Dense  SDJ:    2478   2298   3507   3270     49     47
+ Sparse SDJ:    2401   2396   3904   3820     81     83
+ Banded SDJ:    2478   2298   3507   3270     49     47
+ ____________________________________________________________
+ ____________________________________________________________
+ Class/Problem = F2
+
+ Problem No. =  52
+ ITOL =   5
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.12491D-04    0.12492D-04
+ Sparse: JACSP - VODE:     0.12435D-04    0.12438D-04
+ Banded: JACSP - VODE:     0.12491D-04    0.12492D-04
+                   J      V      J      V      J      V
+ Dense  SDJ:      95     95    137    137      3      3
+ Sparse SDJ:      95     95    152    152      5      5
+ Banded SDJ:      95     95    137    137      3      3
+ ____________________________________________________________
+ Problem No. =  52
+ ITOL =   5
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.30169D-04    0.42227D-04
+ Sparse: JACSP - VODE:     0.44281D-04    0.44278D-04
+ Banded: JACSP - VODE:     0.30169D-04    0.42227D-04
+                   J      V      J      V      J      V
+ Dense  SDJ:      81     81    113    116      3      3
+ Sparse SDJ:      81     81    130    130      5      5
+ Banded SDJ:      81     81    113    116      3      3
+ ____________________________________________________________
+
+ Problem No. =  52
+ ITOL =   6
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.68819D-05    0.68569D-05
+ Sparse: JACSP - VODE:     0.69564D-05    0.69553D-05
+ Banded: JACSP - VODE:     0.68819D-05    0.68569D-05
+                   J      V      J      V      J      V
+ Dense  SDJ:     108    108    170    170      5      5
+ Sparse SDJ:     108    108    175    175      5      5
+ Banded SDJ:     108    108    170    170      5      5
+ ____________________________________________________________
+ Problem No. =  52
+ ITOL =   6
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.78947D-05    0.78947D-05
+ Sparse: JACSP - VODE:     0.83441D-05    0.83441D-05
+ Banded: JACSP - VODE:     0.78947D-05    0.78947D-05
+                   J      V      J      V      J      V
+ Dense  SDJ:     102    102    141    141      3      3
+ Sparse SDJ:     102    102    155    155      5      5
+ Banded SDJ:     102    102    141    141      3      3
+ ____________________________________________________________
+
+ Problem No. =  52
+ ITOL =   7
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.71041D-06    0.71038D-06
+ Sparse: JACSP - VODE:     0.84577D-07    0.84761D-07
+ Banded: JACSP - VODE:     0.71041D-06    0.71038D-06
+                   J      V      J      V      J      V
+ Dense  SDJ:     142    142    207    207      5      5
+ Sparse SDJ:     145    145    234    234      6      6
+ Banded SDJ:     142    142    207    207      5      5
+ ____________________________________________________________
+ Problem No. =  52
+ ITOL =   7
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.80363D-06    0.80369D-06
+ Sparse: JACSP - VODE:     0.69584D-06    0.69569D-06
+ Banded: JACSP - VODE:     0.80363D-06    0.80369D-06
+                   J      V      J      V      J      V
+ Dense  SDJ:     123    123    192    192      5      5
+ Sparse SDJ:     121    121    195    195      5      5
+ Banded SDJ:     123    123    192    192      5      5
+ ____________________________________________________________
+
+ Problem No. =  52
+ ITOL =   8
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.72658D-07    0.72659D-07
+ Sparse: JACSP - VODE:     0.14767D-07    0.14764D-07
+ Banded: JACSP - VODE:     0.72658D-07    0.72659D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:     204    204    277    277      7      7
+ Sparse SDJ:     209    209    304    304      8      8
+ Banded SDJ:     204    204    277    277      7      7
+ ____________________________________________________________
+ Problem No. =  52
+ ITOL =   8
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.21761D-07    0.21761D-07
+ Sparse: JACSP - VODE:     0.82699D-08    0.82571D-08
+ Banded: JACSP - VODE:     0.21761D-07    0.21761D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:     166    166    219    219      5      5
+ Sparse SDJ:     164    164    224    224      5      5
+ Banded SDJ:     166    166    219    219      5      5
+ ____________________________________________________________
+
+ Problem No. =  52
+ ITOL =   9
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.28195D-08    0.94341D-08
+ Sparse: JACSP - VODE:     0.41146D-08    0.61490D-08
+ Banded: JACSP - VODE:     0.28195D-08    0.94341D-08
+                   J      V      J      V      J      V
+ Dense  SDJ:     284    285    368    359     10      9
+ Sparse SDJ:     288    285    408    402     12     12
+ Banded SDJ:     284    285    368    359     10      9
+ ____________________________________________________________
+ Problem No. =  52
+ ITOL =   9
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.28042D-08    0.28025D-08
+ Sparse: JACSP - VODE:     0.74534D-08    0.74528D-08
+ Banded: JACSP - VODE:     0.28042D-08    0.28025D-08
+                   J      V      J      V      J      V
+ Dense  SDJ:     238    238    314    314      8      8
+ Sparse SDJ:     242    242    346    346      9      9
+ Banded SDJ:     238    238    314    314      8      8
+ ____________________________________________________________
+
+ Problem No. =  52
+ ITOL =  10
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.57701D-09    0.21244D-08
+ Sparse: JACSP - VODE:     0.58912D-09    0.58908D-09
+ Banded: JACSP - VODE:     0.57701D-09    0.21244D-08
+                   J      V      J      V      J      V
+ Dense  SDJ:     398    388    474    470     12     11
+ Sparse SDJ:     397    397    505    505     14     14
+ Banded SDJ:     398    388    474    470     12     11
+ ____________________________________________________________
+ Problem No. =  52
+ ITOL =  10
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.27797D-09    0.14619D-08
+ Sparse: JACSP - VODE:     0.28170D-09    0.28179D-09
+ Banded: JACSP - VODE:     0.27797D-09    0.14619D-08
+                   J      V      J      V      J      V
+ Dense  SDJ:     323    318    395    385     10     10
+ Sparse SDJ:     323    323    419    419     11     11
+ Banded SDJ:     323    318    395    385     10     10
+ ____________________________________________________________
+
+ Problem No. =  52
+ ITOL =  11
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.14003D-09    0.97876D-10
+ Sparse: JACSP - VODE:     0.13270D-09    0.16649D-09
+ Banded: JACSP - VODE:     0.14003D-09    0.97876D-10
+                   J      V      J      V      J      V
+ Dense  SDJ:     563    560    654    670     15     15
+ Sparse SDJ:     548    537    695    683     18     18
+ Banded SDJ:     563    560    654    670     15     15
+ ____________________________________________________________
+ Problem No. =  52
+ ITOL =  11
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.19253D-09    0.16732D-09
+ Sparse: JACSP - VODE:     0.19460D-09    0.20958D-09
+ Banded: JACSP - VODE:     0.19253D-09    0.16732D-09
+                   J      V      J      V      J      V
+ Dense  SDJ:     443    445    534    533     12     12
+ Sparse SDJ:     443    442    570    569     15     15
+ Banded SDJ:     443    445    534    533     12     12
+ ____________________________________________________________
+
+ Problem No. =  52
+ ITOL =  12
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.27760D-10    0.15065D-10
+ Sparse: JACSP - VODE:     0.22209D-10    0.20416D-10
+ Banded: JACSP - VODE:     0.27760D-10    0.15065D-10
+                   J      V      J      V      J      V
+ Dense  SDJ:     778    790    894    905     19     19
+ Sparse SDJ:     779    780    968    961     26     25
+ Banded SDJ:     778    790    894    905     19     19
+ ____________________________________________________________
+ Problem No. =  52
+ ITOL =  12
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.32807D-10    0.23898D-10
+ Sparse: JACSP - VODE:     0.18717D-11    0.13130D-10
+ Banded: JACSP - VODE:     0.32807D-10    0.23898D-10
+                   J      V      J      V      J      V
+ Dense  SDJ:     638    656    741    775     16     17
+ Sparse SDJ:     657    649    817    812     21     21
+ Banded SDJ:     638    656    741    775     16     17
+ ____________________________________________________________
+ ____________________________________________________________
+ Class/Problem = F3
+
+ Problem No. =  53
+ ITOL =   5
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.44042D-06    0.92601D-05
+ Sparse: JACSP - VODE:     0.27632D-04    0.36554D-04
+ Banded: JACSP - VODE:     0.44042D-06    0.92601D-05
+                   J      V      J      V      J      V
+ Dense  SDJ:     195    191    274    270      4      4
+ Sparse SDJ:     184    521    334    909      8     21
+ Banded SDJ:     195    191    274    270      4      4
+ ____________________________________________________________
+ Problem No. =  53
+ ITOL =   5
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.62767D-05    0.68255D-05
+ Sparse: JACSP - VODE:     0.62766D-05    0.52782D-05
+ Banded: JACSP - VODE:     0.62767D-05    0.68255D-05
+                   J      V      J      V      J      V
+ Dense  SDJ:      20     19     34     32      2      2
+ Sparse SDJ:      20     17     54     61      3      4
+ Banded SDJ:      20     19     34     32      2      2
+ ____________________________________________________________
+
+ Problem No. =  53
+ ITOL =   6
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.40834D-06    0.17257D-05
+ Sparse: JACSP - VODE:     0.38004D-06    0.55420D-06
+ Banded: JACSP - VODE:     0.40834D-06    0.17257D-05
+                   J      V      J      V      J      V
+ Dense  SDJ:     225    225    303    302      5      5
+ Sparse SDJ:     219    220    354    354      9      9
+ Banded SDJ:     225    225    303    302      5      5
+ ____________________________________________________________
+ Problem No. =  53
+ ITOL =   6
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.30404D-06    0.67732D-06
+ Sparse: JACSP - VODE:     0.30228D-06    0.67472D-06
+ Banded: JACSP - VODE:     0.30404D-06    0.67732D-06
+                   J      V      J      V      J      V
+ Dense  SDJ:      27     27     45     45      2      2
+ Sparse SDJ:      27     27     65     66      3      3
+ Banded SDJ:      27     27     45     45      2      2
+ ____________________________________________________________
+
+ Problem No. =  53
+ ITOL =   7
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.14488D-06    0.19027D-06
+ Sparse: JACSP - VODE:     0.29711D-09    0.59935D-09
+ Banded: JACSP - VODE:     0.14488D-06    0.19027D-06
+                   J      V      J      V      J      V
+ Dense  SDJ:     346    351    491    471      7      7
+ Sparse SDJ:     292    289    469    463     11     11
+ Banded SDJ:     346    351    491    471      7      7
+ ____________________________________________________________
+ Problem No. =  53
+ ITOL =   7
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.10621D-06    0.42297D-07
+ Sparse: JACSP - VODE:     0.63975D-07    0.40358D-07
+ Banded: JACSP - VODE:     0.10621D-06    0.42297D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:      46     35     64     55      2      2
+ Sparse SDJ:      46     35     85     75      3      3
+ Banded SDJ:      46     35     64     55      2      2
+ ____________________________________________________________
+
+ Problem No. =  53
+ ITOL =   8
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.56650D-08    0.60485D-07
+ Sparse: JACSP - VODE:     0.24491D-07    0.24813D-07
+ Banded: JACSP - VODE:     0.56650D-08    0.60485D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:     414    422    507    515      8      8
+ Sparse SDJ:     401    401    615    612     15     15
+ Banded SDJ:     414    422    507    515      8      8
+ ____________________________________________________________
+ Problem No. =  53
+ ITOL =   8
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.63324D-10    0.35852D-07
+ Sparse: JACSP - VODE:     0.62981D-10    0.44211D-07
+ Banded: JACSP - VODE:     0.63324D-10    0.35852D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:      63     56     87     83      2      2
+ Sparse SDJ:      63     50    107     96      3      3
+ Banded SDJ:      63     56     87     83      2      2
+ ____________________________________________________________
+
+ Problem No. =  53
+ ITOL =   9
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.28828D-07    0.28972D-07
+ Sparse: JACSP - VODE:     0.99486D-09    0.25205D-08
+ Banded: JACSP - VODE:     0.28828D-07    0.28972D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:     598    598    723    721     11     11
+ Sparse SDJ:     589    589    882    873     22     22
+ Banded SDJ:     598    598    723    721     11     11
+ ____________________________________________________________
+ Problem No. =  53
+ ITOL =   9
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.13075D-10    0.95041D-08
+ Sparse: JACSP - VODE:     0.13375D-10    0.63143D-08
+ Banded: JACSP - VODE:     0.13075D-10    0.95041D-08
+                   J      V      J      V      J      V
+ Dense  SDJ:      69     76     95    109      2      2
+ Sparse SDJ:      69     77    115    146      3      5
+ Banded SDJ:      69     76     95    109      2      2
+ ____________________________________________________________
+
+ Problem No. =  53
+ ITOL =  10
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.39988D-10    0.98668D-10
+ Sparse: JACSP - VODE:     0.44213D-09    0.11303D-09
+ Banded: JACSP - VODE:     0.39988D-10    0.98668D-10
+                   J      V      J      V      J      V
+ Dense  SDJ:     827    822    967    960     15     15
+ Sparse SDJ:     817    811   1151   1145     27     27
+ Banded SDJ:     827    822    967    960     15     15
+ ____________________________________________________________
+ Problem No. =  53
+ ITOL =  10
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.14171D-09    0.22604D-10
+ Sparse: JACSP - VODE:     0.28536D-09    0.37499D-09
+ Banded: JACSP - VODE:     0.14171D-09    0.22604D-10
+                   J      V      J      V      J      V
+ Dense  SDJ:     137    131    182    182      3      3
+ Sparse SDJ:     131    135    217    228      6      6
+ Banded SDJ:     137    131    182    182      3      3
+ ____________________________________________________________
+
+ Problem No. =  53
+ ITOL =  11
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.23326D-10    0.13018D-10
+ Sparse: JACSP - VODE:     0.31057D-09    0.20022D-10
+ Banded: JACSP - VODE:     0.23326D-10    0.13018D-10
+                   J      V      J      V      J      V
+ Dense  SDJ:    1169   1184   1343   1373     21     21
+ Sparse SDJ:    1173   1171   1618   1614     35     36
+ Banded SDJ:    1169   1184   1343   1373     21     21
+ ____________________________________________________________
+ Problem No. =  53
+ ITOL =  11
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.24920D-11    0.17536D-10
+ Sparse: JACSP - VODE:     0.65464D-10    0.62854D-11
+ Banded: JACSP - VODE:     0.24920D-11    0.17536D-10
+                   J      V      J      V      J      V
+ Dense  SDJ:     135    144    198    201      3      3
+ Sparse SDJ:     157    155    286    259      8      6
+ Banded SDJ:     135    144    198    201      3      3
+ ____________________________________________________________
+
+ Problem No. =  53
+ ITOL =  12
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.48531D-11    0.52112D-11
+ Sparse: JACSP - VODE:     0.53804D-10    0.48481D-11
+ Banded: JACSP - VODE:     0.48531D-11    0.52112D-11
+                   J      V      J      V      J      V
+ Dense  SDJ:    1680   1676   1900   1900     29     29
+ Sparse SDJ:    1674   1661   2232   2216     49     49
+ Banded SDJ:    1680   1676   1900   1900     29     29
+ ____________________________________________________________
+ Problem No. =  53
+ ITOL =  12
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.40680D-11    0.20679D-12
+ Sparse: JACSP - VODE:     0.78850D-13    0.47308D-12
+ Banded: JACSP - VODE:     0.40680D-11    0.20679D-12
+                   J      V      J      V      J      V
+ Dense  SDJ:     215    212    290    298      4      5
+ Sparse SDJ:     219    197    362    325      8      8
+ Banded SDJ:     215    212    290    298      4      5
+ ____________________________________________________________
+ ____________________________________________________________
+ Class/Problem = F4
+
+ Problem No. =  54
+ ITOL =   5
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.10047D-04    0.96101D-05
+ Sparse: JACSP - VODE:     0.62567D-05    0.65989D-05
+ Banded: JACSP - VODE:     0.10047D-04    0.96101D-05
+                   J      V      J      V      J      V
+ Dense  SDJ:     674    685   1045   1058     21     21
+ Sparse SDJ:     658    654   1139   1147     34     35
+ Banded SDJ:     674    685   1045   1058     21     21
+ ____________________________________________________________
+ Problem No. =  54
+ ITOL =   5
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.17101D-02    0.54195D-03
+ Sparse: JACSP - VODE:     0.12704D-02    0.16665D-02
+ Banded: JACSP - VODE:     0.17101D-02    0.54195D-03
+                   J      V      J      V      J      V
+ Dense  SDJ:    1180   1158   1914   1963     29     29
+ Sparse SDJ:    1004   1073   1864   1958     45     48
+ Banded SDJ:    1180   1158   1914   1963     29     29
+ ____________________________________________________________
+
+ Problem No. =  54
+ ITOL =   6
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.15766D-05    0.15970D-05
+ Sparse: JACSP - VODE:     0.24933D-06    0.30389D-05
+ Banded: JACSP - VODE:     0.15766D-05    0.15970D-05
+                   J      V      J      V      J      V
+ Dense  SDJ:     845    805   1297   1216     23     24
+ Sparse SDJ:     754    834   1272   1415     35     37
+ Banded SDJ:     845    805   1297   1216     23     24
+ ____________________________________________________________
+ Problem No. =  54
+ ITOL =   6
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.20587D-03    0.86593D-04
+ Sparse: JACSP - VODE:     0.64346D-05    0.27303D-04
+ Banded: JACSP - VODE:     0.20587D-03    0.86593D-04
+                   J      V      J      V      J      V
+ Dense  SDJ:    1348   1308   2337   2206     35     34
+ Sparse SDJ:    1224   1144   2386   2115     54     50
+ Banded SDJ:    1348   1308   2337   2206     35     34
+ ____________________________________________________________
+
+ Problem No. =  54
+ ITOL =   7
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.16906D-06    0.26064D-06
+ Sparse: JACSP - VODE:     0.40697D-07    0.36883D-06
+ Banded: JACSP - VODE:     0.16906D-06    0.26064D-06
+                   J      V      J      V      J      V
+ Dense  SDJ:     937   1018   1556   1726     27     28
+ Sparse SDJ:     973    833   1726   1482     43     38
+ Banded SDJ:     937   1018   1556   1726     27     28
+ ____________________________________________________________
+ Problem No. =  54
+ ITOL =   7
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.32802D-04    0.30100D-04
+ Sparse: JACSP - VODE:     0.14950D-04    0.31403D-04
+ Banded: JACSP - VODE:     0.32802D-04    0.30100D-04
+                   J      V      J      V      J      V
+ Dense  SDJ:    1637   1811   2695   2965     39     41
+ Sparse SDJ:    1569   1563   2747   2714     64     65
+ Banded SDJ:    1637   1811   2695   2965     39     41
+ ____________________________________________________________
+
+ Problem No. =  54
+ ITOL =   8
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.10143D-06    0.80383D-07
+ Sparse: JACSP - VODE:     0.29301D-07    0.10454D-06
+ Banded: JACSP - VODE:     0.10143D-06    0.80383D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:    1438   1237   2398   2084     34     31
+ Sparse SDJ:    1171   1294   2120   2356     51     53
+ Banded SDJ:    1438   1237   2398   2084     34     31
+ ____________________________________________________________
+ Problem No. =  54
+ ITOL =   8
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.71240D-05    0.68297D-05
+ Sparse: JACSP - VODE:     0.62731D-05    0.99637D-06
+ Banded: JACSP - VODE:     0.71240D-05    0.68297D-05
+                   J      V      J      V      J      V
+ Dense  SDJ:    2262   2320   3535   3652     47     49
+ Sparse SDJ:    2276   2237   3876   3832     83     82
+ Banded SDJ:    2262   2320   3535   3652     47     49
+ ____________________________________________________________
+
+ Problem No. =  54
+ ITOL =   9
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.12654D-08    0.15844D-08
+ Sparse: JACSP - VODE:     0.48541D-08    0.59517D-08
+ Banded: JACSP - VODE:     0.12654D-08    0.15844D-08
+                   J      V      J      V      J      V
+ Dense  SDJ:    1685   1679   2766   2745     38     40
+ Sparse SDJ:    1609   1750   2925   3002     68     70
+ Banded SDJ:    1685   1679   2766   2745     38     40
+ ____________________________________________________________
+ Problem No. =  54
+ ITOL =   9
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.15118D-05    0.15477D-05
+ Sparse: JACSP - VODE:     0.28223D-06    0.76446D-06
+ Banded: JACSP - VODE:     0.15118D-05    0.15477D-05
+                   J      V      J      V      J      V
+ Dense  SDJ:    3019   3208   4554   4842     60     62
+ Sparse SDJ:    2960   3105   4976   5145    109    112
+ Banded SDJ:    3019   3208   4554   4842     60     62
+ ____________________________________________________________
+
+ Problem No. =  54
+ ITOL =  10
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.47860D-09    0.10080D-08
+ Sparse: JACSP - VODE:     0.68655D-09    0.64865D-09
+ Banded: JACSP - VODE:     0.47860D-09    0.10080D-08
+                   J      V      J      V      J      V
+ Dense  SDJ:    2127   2337   3285   3662     46     50
+ Sparse SDJ:    2055   2249   3498   3975     79     88
+ Banded SDJ:    2127   2337   3285   3662     46     50
+ ____________________________________________________________
+ Problem No. =  54
+ ITOL =  10
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.12712D-06    0.26443D-06
+ Sparse: JACSP - VODE:     0.15492D-06    0.13681D-06
+ Banded: JACSP - VODE:     0.12712D-06    0.26443D-06
+                   J      V      J      V      J      V
+ Dense  SDJ:    4324   3984   6276   5659     81     78
+ Sparse SDJ:    4080   4194   6552   6749    146    147
+ Banded SDJ:    4324   3984   6276   5659     81     78
+ ____________________________________________________________
+
+ Problem No. =  54
+ ITOL =  11
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.74371D-10    0.74297D-10
+ Sparse: JACSP - VODE:     0.74189D-10    0.10936D-09
+ Banded: JACSP - VODE:     0.74371D-10    0.74297D-10
+                   J      V      J      V      J      V
+ Dense  SDJ:    2792   2972   4086   4407     57     58
+ Sparse SDJ:    2718   2723   4357   4382     98    101
+ Banded SDJ:    2792   2972   4086   4407     57     58
+ ____________________________________________________________
+ Problem No. =  54
+ ITOL =  11
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.31099D-07    0.28879D-07
+ Sparse: JACSP - VODE:     0.68204D-08    0.76714D-08
+ Banded: JACSP - VODE:     0.31099D-07    0.28879D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:    5707   5666   7825   7821    104    104
+ Sparse SDJ:    5440   5627   8178   8589    182    193
+ Banded SDJ:    5707   5666   7825   7821    104    104
+ ____________________________________________________________
+
+ Problem No. =  54
+ ITOL =  12
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.21217D-10    0.18871D-10
+ Sparse: JACSP - VODE:     0.16975D-10    0.15722D-10
+ Banded: JACSP - VODE:     0.21217D-10    0.18871D-10
+                   J      V      J      V      J      V
+ Dense  SDJ:    3881   3815   5628   5518     72     74
+ Sparse SDJ:    3815   3656   6013   5767    137    125
+ Banded SDJ:    3881   3815   5628   5518     72     74
+ ____________________________________________________________
+ Problem No. =  54
+ ITOL =  12
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.35412D-08    0.21857D-08
+ Sparse: JACSP - VODE:     0.16820D-08    0.18689D-08
+ Banded: JACSP - VODE:     0.35412D-08    0.21857D-08
+                   J      V      J      V      J      V
+ Dense  SDJ:    7855   7815  10179  10298    141    141
+ Sparse SDJ:    7412   7617  10737  11111    235    242
+ Banded SDJ:    7855   7815  10179  10298    141    141
+ ____________________________________________________________
+ ____________________________________________________________
+ Class/Problem = F5
+
+ Problem No. =  55
+ ITOL =   5
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.69479D-09    0.11483D-08
+ Sparse: JACSP - VODE:     0.47789D-07    0.10778D-08
+ Banded: JACSP - VODE:     0.69479D-09    0.11483D-08
+                   J      V      J      V      J      V
+ Dense  SDJ:     183    183    284    284      7      7
+ Sparse SDJ:     193    193    341    341      8      8
+ Banded SDJ:     183    183    284    284      7      7
+ ____________________________________________________________
+ Problem No. =  55
+ ITOL =   5
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.84776D-08    0.10316D-07
+ Sparse: JACSP - VODE:     0.69075D-11    0.16224D-11
+ Banded: JACSP - VODE:     0.84776D-08    0.10316D-07
+                   J      V      J      V      J      V
+ Dense  SDJ:      45     45     71     71      2      2
+ Sparse SDJ:      88     88    152    152      5      5
+ Banded SDJ:      45     45     71     71      2      2
+ ____________________________________________________________
+
+ Problem No. =  55
+ ITOL =   6
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.28990D-08    0.11877D-10
+ Sparse: JACSP - VODE:     0.18920D-08    0.15185D-09
+ Banded: JACSP - VODE:     0.28990D-08    0.11877D-10
+                   J      V      J      V      J      V
+ Dense  SDJ:     276    278    416    419      9      9
+ Sparse SDJ:     257    258    431    432     11     11
+ Banded SDJ:     276    278    416    419      9      9
+ ____________________________________________________________
+ Problem No. =  55
+ ITOL =   6
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.70973D-08    0.63884D-08
+ Sparse: JACSP - VODE:     0.53584D-12    0.38018D-11
+ Banded: JACSP - VODE:     0.70973D-08    0.63884D-08
+                   J      V      J      V      J      V
+ Dense  SDJ:      70     70    103    103      2      2
+ Sparse SDJ:     134    134    248    247      5      5
+ Banded SDJ:      70     70    103    103      2      2
+ ____________________________________________________________
+
+ Problem No. =  55
+ ITOL =   7
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.30004D-08    0.33382D-09
+ Sparse: JACSP - VODE:     0.73318D-07    0.11474D-09
+ Banded: JACSP - VODE:     0.30004D-08    0.33382D-09
+                   J      V      J      V      J      V
+ Dense  SDJ:     372    343    544    511     11     11
+ Sparse SDJ:     340    364    550    588     14     14
+ Banded SDJ:     372    343    544    511     11     11
+ ____________________________________________________________
+ Problem No. =  55
+ ITOL =   7
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.26523D-12    0.11096D-11
+ Sparse: JACSP - VODE:     0.94684D-11    0.59936D-12
+ Banded: JACSP - VODE:     0.26523D-12    0.11096D-11
+                   J      V      J      V      J      V
+ Dense  SDJ:     117    117    197    197      4      4
+ Sparse SDJ:     109    109    235    219      8      6
+ Banded SDJ:     117    117    197    197      4      4
+ ____________________________________________________________
+
+ Problem No. =  55
+ ITOL =   8
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.50719D-08    0.16738D-09
+ Sparse: JACSP - VODE:     0.50640D-09    0.57834D-09
+ Banded: JACSP - VODE:     0.50719D-08    0.16738D-09
+                   J      V      J      V      J      V
+ Dense  SDJ:     500    501    732    733     14     14
+ Sparse SDJ:     409    437    639    674     16     16
+ Banded SDJ:     500    501    732    733     14     14
+ ____________________________________________________________
+ Problem No. =  55
+ ITOL =   8
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.92598D-12    0.32921D-11
+ Sparse: JACSP - VODE:     0.13918D-07    0.59299D-12
+ Banded: JACSP - VODE:     0.92598D-12    0.32921D-11
+                   J      V      J      V      J      V
+ Dense  SDJ:     161    161    296    296      5      5
+ Sparse SDJ:     170    156    326    290      8      6
+ Banded SDJ:     161    161    296    296      5      5
+ ____________________________________________________________
+
+ Problem No. =  55
+ ITOL =   9
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.54653D-08    0.51192D-09
+ Sparse: JACSP - VODE:     0.20164D-08    0.98173D-09
+ Banded: JACSP - VODE:     0.54653D-08    0.51192D-09
+                   J      V      J      V      J      V
+ Dense  SDJ:     666    639    993    948     18     17
+ Sparse SDJ:     714    613   1254    989     29     22
+ Banded SDJ:     666    639    993    948     18     17
+ ____________________________________________________________
+ Problem No. =  55
+ ITOL =   9
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.70164D-11    0.15121D-11
+ Sparse: JACSP - VODE:     0.17527D-11    0.99489D-12
+ Banded: JACSP - VODE:     0.70164D-11    0.15121D-11
+                   J      V      J      V      J      V
+ Dense  SDJ:     235    218    416    391      7      7
+ Sparse SDJ:     207    209    398    402      8      8
+ Banded SDJ:     235    218    416    391      7      7
+ ____________________________________________________________
+
+ Problem No. =  55
+ ITOL =  10
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.12202D-07    0.38982D-10
+ Sparse: JACSP - VODE:     0.13581D-08    0.19868D-09
+ Banded: JACSP - VODE:     0.12202D-07    0.38982D-10
+                   J      V      J      V      J      V
+ Dense  SDJ:     828    838   1178   1214     21     23
+ Sparse SDJ:     815    785   1342   1263     31     28
+ Banded SDJ:     828    838   1178   1214     21     23
+ ____________________________________________________________
+ Problem No. =  55
+ ITOL =  10
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.55915D-11    0.62047D-11
+ Sparse: JACSP - VODE:     0.52863D-11    0.40902D-12
+ Banded: JACSP - VODE:     0.55915D-11    0.62047D-11
+                   J      V      J      V      J      V
+ Dense  SDJ:     355    374    603    631      9     10
+ Sparse SDJ:     333    336    665    651     16     14
+ Banded SDJ:     355    374    603    631      9     10
+ ____________________________________________________________
+
+ Problem No. =  55
+ ITOL =  11
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.86760D-09    0.12232D-09
+ Sparse: JACSP - VODE:     0.57853D-09    0.19853D-10
+ Banded: JACSP - VODE:     0.86760D-09    0.12232D-09
+                   J      V      J      V      J      V
+ Dense  SDJ:    1137   1122   1581   1731     29     52
+ Sparse SDJ:    1049   1128   1685   2140     39     71
+ Banded SDJ:    1137   1122   1581   1731     29     52
+ ____________________________________________________________
+ Problem No. =  55
+ ITOL =  11
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.16240D-11    0.24626D-11
+ Sparse: JACSP - VODE:     0.49212D-12    0.17387D-11
+ Banded: JACSP - VODE:     0.16240D-11    0.24626D-11
+                   J      V      J      V      J      V
+ Dense  SDJ:     427    429    694    678     11     12
+ Sparse SDJ:     454    457    818    876     17     18
+ Banded SDJ:     427    429    694    678     11     12
+ ____________________________________________________________
+
+ Problem No. =  55
+ ITOL =  12
+ Scaled ODEs             Absolute Errors
+ Dense : JACSP - VODE:     0.58973D-09    0.30504D-11
+ Sparse: JACSP - VODE:     0.35250D-09    0.55322D-10
+ Banded: JACSP - VODE:     0.58973D-09    0.30504D-11
+                   J      V      J      V      J      V
+ Dense  SDJ:    1458   1527   1999   2230     48     66
+ Sparse SDJ:    1420   1558   2240   3010     58    114
+ Banded SDJ:    1458   1527   1999   2230     48     66
+ ____________________________________________________________
+ Problem No. =  55
+ ITOL =  12
+ Unscaled ODEs                  Absolute Errors
+ Dense : JACSP - VODE:     0.44166D-10    0.11449D-14
+ Sparse: JACSP - VODE:     0.92535D-12    0.11446D-11
+ Banded: JACSP - VODE:     0.44166D-10    0.11449D-14
+                   J      V      J      V      J      V
+ Dense  SDJ:     553    544    870    859     15     17
+ Sparse SDJ:     523    571    944   1046     22     28
+ Banded SDJ:     553    544    870    859     15     17
+ ____________________________________________________________
+
+ Total number of solutions performed =  2880
+ ____________________________________________________________
+
+ Tolerance          Total Execution Time
+        5                   0
+        6                   0
+        7                   0
+        8                   0
+        9                   0
+       10                   0
+       11                   0
+       12                   1
+ ____________________________________________________________
+
+
+ To locate the summary results, search on the phrase
+ Summary Statistics Follow in the output file (stiffoptions.dat).
+
+
+
+ No errors occurred.
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/DVODE/stiffoptions.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/DVODE/stiffoptions.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/DVODE/stiffoptions.f90	(revision 2696)
@@ -0,0 +1,2217 @@
+! DVODE_F90 demonstration program
+! Enforces nonnegativity on the Class F problems
+
+! Toronto Stiff Test Set
+
+! This program solves each of the thirty problems for several error
+! tolerances using each of the dense, banded, and sparse solution
+! options and with the numerical Jacobians formed using each of the
+! original VODE algorithm and Doug Salane's JACSP. The ODEs are
+! solved both in scaled and unscaled form. Scalar error tolerances
+! are used for all problems even though this is not appropriate in
+! some cases. The program takes 10-15 minutes to run because several
+! thousand integrations are performed in all. Details of each
+! integration are written to the output file 'stiffoptions.dat'.
+! Summaries of the integration statistics may be found by searching
+! on the string 'Individual'. There are several blocks of such summaries.
+! When you run the program, the last line in the output file should
+! read: 'No errors occurred.' Please contact one of the authors if
+! any errors do occur.
+
+! Reference:
+! ALGORITHM 648, COLLECTED ALGORITHMS FROM ACM.
+! TRANSACTIONS ON MATHEMATICAL SOFTWARE,
+! VOL. 13, NO. 1, P. 28
+
+! Caution:
+! The original test routines are altered in this version.
+! Some subroutine arguments, COMMON variables, and local
+! variables have been moved to the following global header.
+! You should obtain the original test suite from netlib
+! if you plan to use the routines for other purposes.
+
+    MODULE STIFFSET
+
+! Note:
+! In this version ID and IID are defined in the main
+! program demostiff (not in the Toronto routines).
+! The other parameters are obtained by calling IVALU
+! with a modified argument list.
+
+      IMPLICIT NONE
+      INTEGER IWT, N, ID, IID, NFCN, NJAC, NLUD
+      DOUBLE PRECISION W, DY
+      DIMENSION W(20), DY(400)
+
+    CONTAINS
+
+      SUBROUTINE DERIVS(NEQ,T,Y,YDOT)
+!       Define the system derivatives.
+        IMPLICIT NONE
+        INTEGER NEQ
+        DOUBLE PRECISION T, Y, YDOT
+        DIMENSION Y(NEQ), YDOT(NEQ)
+        CALL FCN(T,Y,YDOT)
+        RETURN
+      END SUBROUTINE DERIVS
+
+      SUBROUTINE JACD(NEQ,T,Y,ML,MU,PD,NROWPD)
+!       Load the Jacobian as a dense matrix.
+        IMPLICIT NONE
+        INTEGER NEQ, ML, MU, NROWPD, I, J
+        DOUBLE PRECISION T, Y, PD
+        DIMENSION Y(NEQ), PD(NROWPD,NEQ)
+        CALL PDERV(T,Y)
+        DO J = 1, NEQ
+          DO I = 1, NEQ
+            PD(I,J) = DY(I+(J-1)*NROWPD)
+          END DO
+        END DO
+        RETURN
+      END SUBROUTINE JACD
+
+      SUBROUTINE JACB(NEQ,T,Y,ML,MU,PD,NROWPD)
+!       Load the Jacobian as a banded matrix.
+        IMPLICIT NONE
+        INTEGER NEQ, ML, MU, NROWPD, I, J, K
+        DOUBLE PRECISION T, Y, PD
+        DIMENSION Y(NEQ), PD(NROWPD,NEQ)
+        CALL PDERV(T,Y)
+        DO J = 1, NEQ
+           DO I = 1, NEQ
+              K = I - J + MU + 1
+              PD(K,J) = DY(I+(J-1)*NEQ)
+           END DO
+        END DO
+      END SUBROUTINE JACB
+
+      SUBROUTINE JACS(NEQ,T,Y,IA,JA,NZ,P)
+!       Load the Jacobian as a sparse matrix.
+        IMPLICIT NONE
+        INTEGER NEQ, IA, JA, NZ, ML, MU, COL, ROW, I, NROWPD
+!       INTEGER NZSAVE
+        DOUBLE PRECISION T, Y, P
+        DIMENSION Y(*), IA(*), JA(*), P(*)
+        IF (NZ<=0) THEN
+          NZ = NEQ*NEQ
+          RETURN
+        END IF
+        ML = NEQ - 1
+        MU = NEQ - 1
+        NROWPD = NEQ
+        CALL JACD(NEQ,T,Y,ML,MU,P,NROWPD)
+        IA(1) = 1
+        DO I = 1, NEQ
+          IA(I+1) = IA(I) + NEQ
+        END DO
+        I = 0
+        DO COL = 1, NEQ
+          I = NEQ*(COL-1)
+          DO ROW = 1, NEQ
+            I = I + 1
+            JA(I) = ROW
+          END DO
+        END DO
+        RETURN
+      END SUBROUTINE JACS
+
+      SUBROUTINE IVALU(XSTART,XEND,HBEGIN,HMAX,Y)
+
+!      ROUTINE TO PROVIDE THE INITIAL VALUES REQUIRED TO SPECIFY
+!      THE MATHEMATICAL PROBLEM AS WELL AS VARIOUS PROBLEM
+!      PARAMETERS REQUIRED BY THE TESTING PACKAGE. THE APPROPRIATE
+!      SCALING VECTOR IS ALSO INITIALISED IN CASE THIS OPTION IS
+!      SELECTED.
+
+!      PARAMETERS (OUTPUT)
+!         N      - DIMENSION OF THE PROBLEM
+!         XSTART - INITIAL VALUE OF THE INDEPENDENT VARIABLE
+!         XEND   - FINAL VALUE OF THE INDEPENDENT VARIABLE
+!         HBEGIN - APPROPRIATE STARTING STEPSIZE
+!         Y      - VECTOR OF INITIAL CONDITIONS FOR THE DEPENDENT
+!                  VARIABLES
+!         W      - VECTOR OF WEIGHTS USED TO SCALE THE PROBLEM IF
+!                  THIS OPTION IS SELECTED.
+
+!      PARAMETER  (INPUT)
+!         IWT    - FLAG TO INDICATE IF SCALED OPTION IS SELECTED
+!         ID     - FLAG IDENTIFYING WHICH EQUATION IS BEING SOLVED
+
+        IMPLICIT NONE
+
+!     .. Scalar Arguments ..
+        DOUBLE PRECISION HBEGIN, HMAX, XEND, XSTART
+!     .. Array Arguments ..
+        DOUBLE PRECISION Y(20)
+!     .. Local Scalars ..
+        DOUBLE PRECISION XS
+        INTEGER I, IOUT, ITMP
+!     .. Data statements ..
+        DATA XS/0.D0/
+
+!     .. Executable Statements ..
+
+        XSTART = XS
+!     GOTO (40, 80, 120, 160, 20, 20, 20, 20, 20, 20, 200, 220, 220,    &
+!     220, 220, 20, 20, 20, 20, 20, 360, 400, 400, 400, 400, 20, 20, 20,&
+!     20, 20, 540, 580, 600, 640, 660, 680, 20, 20, 20, 20, 700, 740,   &
+!     760, 780, 800, 20, 20, 20, 20, 20, 840, 860, 880, 900, 920) ID
+        GOTO (20,30,40,50,10,10,10,10,10,10,60,70,70,70,70,10,10,10,10,10, &
+          130,140,140,140,140,10,10,10,10,10,200,210,220,230,240,250,10,10,10, &
+          10,260,270,280,290,300,10,10,10,10,10,310,320,330,340,350) ID
+10      IOUT = 6
+        WRITE (IOUT,FMT=90000) ID
+        STOP
+
+!     PROBLEM CLASS A - LINEAR WITH REAL EIGENVALUES
+
+20      CONTINUE
+!     PROBLEM A1
+        N = 4
+        W(1) = 0.100D+01
+        W(2) = 0.100D+01
+        W(3) = 0.100D+01
+        W(4) = 0.100D+01
+        XEND = 20.D0
+        HBEGIN = 1.0D-2
+        HMAX = 20.D0
+        DO I = 1, N
+          Y(I) = 1.0D0
+        END DO
+        GOTO 360
+
+30      CONTINUE
+!     PROBLEM A2
+        N = 9
+        W(1) = 0.100D+00
+        W(2) = 0.200D+00
+        W(3) = 0.300D+00
+        W(4) = 0.400D+00
+        W(5) = 0.500D+00
+        W(6) = 0.600D+00
+        W(7) = 0.700D+00
+        W(8) = 0.800D+00
+        W(9) = 0.900D+00
+        XEND = 120.D0
+        HBEGIN = 5.D-4
+        HMAX = 120.D0
+        DO I = 1, N
+          Y(I) = 0.D0
+        END DO
+        GOTO 360
+
+40      CONTINUE
+!     PROBLEM A3
+        N = 4
+        W(1) = 0.100D+01
+        W(2) = 0.100D+01
+        W(3) = 0.782D+01
+        W(4) = 0.100D+01
+        HBEGIN = 1.D-5
+        XEND = 20.D0
+        HMAX = 20.D0
+        DO I = 1, N
+          Y(I) = 1.D0
+        END DO
+        GOTO 360
+
+50      CONTINUE
+!     PROBLEM A4
+        N = 10
+        W(1) = 0.100D+01
+        W(2) = 0.100D+01
+        W(3) = 0.100D+01
+        W(4) = 0.100D+01
+        W(5) = 0.100D+01
+        W(6) = 0.100D+01
+        W(7) = 0.100D+01
+        W(8) = 0.100D+01
+        W(9) = 0.100D+01
+        W(10) = 0.100D+01
+        XEND = 1.D0
+        HBEGIN = 1.D-5
+        HMAX = 1.D0
+        DO I = 1, N
+          Y(I) = 1.D0
+        END DO
+        GOTO 360
+
+!     PROBLEM CLASS B - LINEAR WITH NON-REAL EIGENVALUES
+
+60      CONTINUE
+!     PROBLEM B1
+        N = 4
+        W(1) = 0.100D+01
+        W(2) = 0.859D+01
+        W(3) = 0.100D+01
+        W(4) = 0.322D+02
+        XEND = 20.D0
+        HBEGIN = 7.D-3
+        HMAX = 20.D0
+        Y(1) = 1.D0
+        Y(2) = 0.D0
+        Y(3) = 1.D0
+        Y(4) = 0.D0
+        GOTO 360
+
+70      CONTINUE
+!     PROBLEM B2, B3, B4, B5
+        N = 6
+        ITMP = IID - 1
+        GOTO (80,90,100,110) ITMP
+80      CONTINUE
+        W(1) = 0.100D+01
+        W(2) = 0.100D+01
+        W(3) = 0.100D+01
+        W(4) = 0.100D+01
+        W(5) = 0.100D+01
+        W(6) = 0.100D+01
+        GOTO 120
+90      CONTINUE
+        W(1) = 0.100D+01
+        W(2) = 0.100D+01
+        W(3) = 0.100D+01
+        W(4) = 0.100D+01
+        W(5) = 0.100D+01
+        W(6) = 0.100D+01
+        GOTO 120
+100     CONTINUE
+        W(1) = 0.112D+01
+        W(2) = 0.100D+01
+        W(3) = 0.100D+01
+        W(4) = 0.100D+01
+        W(5) = 0.100D+01
+        W(6) = 0.100D+01
+        GOTO 120
+110     CONTINUE
+        W(1) = 0.131D+01
+        W(2) = 0.112D+01
+        W(3) = 0.100D+01
+        W(4) = 0.100D+01
+        W(5) = 0.100D+01
+        W(6) = 0.100D+01
+120     CONTINUE
+        XEND = 20.D0
+        HBEGIN = 1.D-2
+        HMAX = 20.D0
+        DO I = 1, N
+          Y(I) = 1.D0
+        END DO
+        GOTO 360
+
+!     PROBLEM CLASS C - NON-LINEAR COUPLING FROM
+!                       STEADY STATE TO TRANSIENT
+
+130     CONTINUE
+!     PROBLEM C1
+        N = 4
+        W(1) = 0.102D+01
+        W(2) = 0.103D+01
+        W(3) = 0.100D+01
+        W(4) = 0.100D+01
+        XEND = 20.D0
+        HBEGIN = 1.D-2
+        HMAX = 20.D0
+        DO I = 1, N
+          Y(I) = 1.D0
+        END DO
+        GOTO 360
+
+140     CONTINUE
+!     PROBLEM C2, C3, C4, C5
+        N = 4
+        ITMP = IID - 1
+        GOTO (150,160,170,180) ITMP
+150     CONTINUE
+        W(1) = 0.200D+01
+        W(2) = 0.100D+01
+        W(3) = 0.100D+01
+        W(4) = 0.100D+01
+        GOTO 190
+160     CONTINUE
+        W(1) = 0.200D+01
+        W(2) = 0.100D+01
+        W(3) = 0.100D+01
+        W(4) = 0.100D+01
+        GOTO 190
+170     CONTINUE
+        W(1) = 0.200D+01
+        W(2) = 0.400D+01
+        W(3) = 0.200D+02
+        W(4) = 0.420D+03
+        GOTO 190
+180     CONTINUE
+        W(1) = 0.200D+01
+        W(2) = 0.800D+01
+        W(3) = 0.136D+03
+        W(4) = 0.371D+05
+190     CONTINUE
+        XEND = 20.D0
+        HBEGIN = 1.D-2
+        HMAX = 20.D0
+        DO I = 1, N
+          Y(I) = 1.D0
+        END DO
+        GOTO 360
+
+!     PROBLEM CLASS D - NON-LINEAR WITH REAL EIGENVALUES
+
+200     CONTINUE
+!     PROBLEM D1
+        N = 3
+        W(1) = 0.223D+02
+        W(2) = 0.271D+02
+        W(3) = 0.400D+03
+        XEND = 400.D0
+        HBEGIN = 1.7D-2
+        HMAX = 400.D0
+        DO I = 1, N
+          Y(I) = 0.D0
+        END DO
+        GOTO 360
+
+210     CONTINUE
+!     PROBLEM D2
+        N = 3
+        W(1) = 0.100D+01
+        W(2) = 0.365D+00
+        W(3) = 0.285D+02
+        XEND = 40.D0
+        HBEGIN = 1.D-5
+        HMAX = 40.D0
+        Y(1) = 1.D0
+        Y(2) = 0.D0
+        Y(3) = 0.D0
+        GOTO 360
+
+220     CONTINUE
+!     PROBLEM D3
+        N = 4
+        W(1) = 0.100D+01
+        W(2) = 0.100D+01
+        W(3) = 0.360D+00
+        W(4) = 0.485D+00
+        XEND = 20.D0
+        HBEGIN = 2.5D-5
+        HMAX = 20.D0
+        DO I = 1, 2
+          Y(I) = 1.D0
+          Y(I+2) = 0.D0
+        END DO
+        GOTO 360
+
+230     CONTINUE
+!     PROBLEM D4
+        N = 3
+        W(1) = 0.100D+01
+        W(2) = 0.142D+01
+        W(3) = 0.371D-05
+        XEND = 50.D0
+        HBEGIN = 2.9D-4
+        HMAX = 50.D0
+        Y(1) = 1.D0
+        Y(2) = 1.D0
+        Y(3) = 0.D0
+        GOTO 360
+
+240     CONTINUE
+!     PROBLEM D5
+        N = 2
+        W(1) = 0.992D+00
+        W(2) = 0.984D+00
+        XEND = 1.D2
+        HBEGIN = 1.D-4
+        HMAX = 1.D2
+        Y(1) = 0.D0
+        Y(2) = 0.D0
+        GOTO 360
+
+250     CONTINUE
+!     PROBLEM D6
+        N = 3
+        W(1) = 0.100D+01
+        W(2) = 0.148D+00
+        W(3) = 0.577D-07
+        XEND = 1.D0
+        HBEGIN = 3.3D-8
+        HMAX = 1.D0
+        Y(1) = 1.D0
+        Y(2) = 0.D0
+        Y(3) = 0.D0
+        GOTO 360
+
+!     PROBLEM CLASS E - NON-LINEAR WITH NON-REAL EIGENVALUES
+
+260     CONTINUE
+!     PROBLEM E1
+        N = 4
+        W(1) = 0.100D-07
+        W(2) = 0.223D-06
+        W(3) = 0.132D-04
+        W(4) = 0.171D-02
+        XEND = 1.D0
+        HBEGIN = 6.8D-3
+        HMAX = 1.D0
+        DO I = 1, N
+          Y(I) = 0.D0
+        END DO
+        GOTO 360
+
+270     CONTINUE
+!     PROBLEM E2
+        N = 2
+        W(1) = 0.202D+01
+        W(2) = 0.764D+01
+        XEND = 1.D1
+        HBEGIN = 1.D-3
+        HMAX = 1.D1
+        Y(1) = 2.D0
+        Y(2) = 0.D0
+        GOTO 360
+
+280     CONTINUE
+!     PROBLEM E3
+        N = 3
+        W(1) = 0.163D+01
+        W(2) = 0.160D+01
+        W(3) = 0.263D+02
+        XEND = 5.D2
+        HBEGIN = .2D-1
+        HMAX = 5.D2
+        Y(1) = 1.D0
+        Y(2) = 1.D0
+        Y(3) = 0.D0
+        GOTO 360
+
+290     CONTINUE
+!     PROBLEM E4
+        N = 4
+        W(1) = 0.288D+02
+        W(2) = 0.295D+02
+        W(3) = 0.155D+02
+        W(4) = 0.163D+02
+        XEND = 1.D3
+        HBEGIN = 1.D-3
+        HMAX = 1.D3
+        Y(1) = 0.D0
+        Y(2) = -2.D0
+        Y(3) = -1.D0
+        Y(4) = -1.D0
+        GOTO 360
+
+300     CONTINUE
+!     PROBLEM E5
+        N = 4
+        W(1) = 0.176D-02
+        W(2) = 0.146D-09
+        W(3) = 0.827D-11
+        W(4) = 0.138D-09
+        XEND = 1.D3
+        HBEGIN = 5.D-5
+        HMAX = 1.D3
+        Y(1) = 1.76D-3
+        DO I = 2, N
+          Y(I) = 0.D0
+        END DO
+        GOTO 360
+
+!     PROBLEM CLASS F - CHEMICAL KINETICS EQUATIONS
+
+310     CONTINUE
+!     PROBLEM F1
+        N = 4
+        W(1) = 0.121D+04
+        W(2) = 0.835D-01
+        W(3) = 0.121D+04
+        W(4) = 0.100D+00
+        HMAX = 1.D3
+        HBEGIN = 1.D-4
+        XEND = 1.D3
+        Y(1) = 761.D0
+        Y(2) = 0.D0
+        Y(3) = 600.D0
+        Y(4) = .1D0
+        GOTO 360
+
+320     CONTINUE
+!     PROBLEM F2
+        N = 2
+        W(1) = 0.100D+01
+        W(2) = 0.253D-02
+        HMAX = 240.D0
+        HBEGIN = 1.D-2
+        XEND = 240.D0
+        Y(1) = 1.0D0
+        Y(2) = 0.D0
+        GOTO 360
+
+330     CONTINUE
+!     PROBLEM F3
+        N = 5
+        W(1) = 0.400D-05
+        W(2) = 0.100D-05
+        W(3) = 0.374D-08
+        W(4) = 0.765D-06
+        W(5) = 0.324D-05
+        HBEGIN = 1.D-6
+        HBEGIN = 1.D-10
+        HMAX = 100.D0
+        XEND = 100.D0
+        Y(1) = 4.D-6
+        Y(2) = 1.D-6
+        Y(3) = 0.0D0
+        Y(4) = 0.0D0
+        Y(5) = 0.0D0
+        GOTO 360
+
+340     CONTINUE
+!     PROBLEM F4
+        N = 3
+        W(1) = 0.118D+06
+        W(2) = 0.177D+04
+        W(3) = 0.313D+05
+        HBEGIN = 1.D-3
+!       HMAX = 50.D0
+        HMAX = 1.D0
+        XEND = 300.D0
+        Y(1) = 4.D0
+        Y(2) = 1.1D0
+        Y(3) = 4.D0
+        GOTO 360
+
+350     CONTINUE
+!     PROBLEM F5
+        N = 4
+        W(1) = 0.336D-06
+        W(2) = 0.826D-02
+        W(3) = 0.619D-02
+        W(4) = 0.955D-05
+        HBEGIN = 1.D-7
+        HMAX = 100.D0
+        XEND = 100.D0
+        Y(1) = 3.365D-7
+        Y(2) = 8.261D-3
+        Y(3) = 1.642D-3
+        Y(4) = 9.380D-6
+360     CONTINUE
+        IF (IWT<0) GOTO 370
+        DO I = 1, N
+          Y(I) = Y(I)/W(I)
+        END DO
+370     CONTINUE
+        RETURN
+
+90000   FORMAT (' AN INVALID INTERNAL PROBLEM ID OF ',I4, &
+          ' WAS FOUND BY THE IVALU ROUTINE',' RUN TERMINATED. CHECK THE DATA.' &
+          )
+      END SUBROUTINE IVALU
+
+      SUBROUTINE EVALU(Y)
+
+!     ROUTINE TO PROVIDE THE 'TRUE' SOLUTION OF THE DIFFERENTIAL
+!     EQUATION EVALUATED AT THE ENDPOINT OF THE INTEGRATION.
+
+!     1986 REVISION:  SOME VERY SMALL CONSTANTS HAVE BEEN RECAST IN THE
+!     (NOT SO SMALL CONST)/(1.E38) TO AVOID COMPILE-TIME UNDERFLOW ERROR
+!     IT IS ASSUMED 1E+38 WON'T OVERFLOW.
+!     PARAMETER  (OUTPUT)
+!        Y      - THE TRUE SOLUTION VECTOR EVALUATED AT THE ENDPOINT
+
+!     PARAMETERS (INPUT)
+!        N      - DIMENSION OF THE PROBLEM
+!        W      - VECTOR OF WEIGHTS USED TO SCALE THE PROBLEM
+!                 IF THIS OPTION IS SELECTED
+!        IWT    - FLAG USED TO SIGNAL WHEN THE SCALED PROBLEM IS
+!                 BEING SOLVED
+!        ID     - FLAG USED TO INDICATE WHICH EQUATION IS BEING
+!                 SOLVED
+
+        IMPLICIT NONE
+
+!     .. Parameters ..
+        DOUBLE PRECISION TENE38
+        PARAMETER (TENE38=1.D38)
+!     .. Array Arguments ..
+        DOUBLE PRECISION Y(20)
+!     .. Local Scalars ..
+        INTEGER I
+
+!     .. Executable Statements ..
+
+!     GOTO (20, 40, 60, 80, 620, 620, 620, 620, 620, 620, 100, 120, 140,&
+!     160, 180, 620, 620, 620, 620, 620, 200, 220, 240, 260, 280, 620,  &
+!     620, 620, 620, 620, 300, 320, 340, 360, 380, 400, 620, 620, 620,  &
+!     620, 420, 440, 460, 480, 500, 620, 620, 620, 620, 620, 520, 540,  &
+!     560, 580, 600, 620, 620, 620, 620, 620) ID
+        GOTO (10,20,30,40,310,310,310,310,310,310,50,60,70,80,90,310,310,310, &
+          310,310,100,110,120,130,140,310,310,310,310,310,150,160,170,180,190, &
+          200,310,310,310,310,210,220,230,240,250,310,310,310,310,310,260,270, &
+          280,290,300,310,310,310,310,310) ID
+        GOTO 310
+
+!     PROBLEM CLASS A
+
+!     PROBLEM A1
+10      Y(1) = 4.539992969929191D-05
+        Y(2) = 2.061153036149920D-09
+        Y(3) = 2.823006338263857D-18/TENE38
+        Y(4) = 5.235792540515384D-14/TENE38
+        GOTO 310
+
+!     PROBLEM A2
+20      Y(1) = 9.999912552999704D-02
+        Y(2) = 1.999982511586291D-01
+        Y(3) = 2.999975543202422D-01
+        Y(4) = 3.999971057541257D-01
+        Y(5) = 4.999969509963023D-01
+        Y(6) = 5.999971057569546D-01
+        Y(7) = 6.999975543256127D-01
+        Y(8) = 7.999982511659962D-01
+        Y(9) = 8.999991255386128D-01
+        GOTO 310
+
+!     PROBLEM A3
+30      Y(1) = -1.353352661867235D-03
+        Y(2) = 1.368526917891521D-02
+        Y(3) = 1.503725348455117D+00
+        Y(4) = 1.353352832366099D-01
+        GOTO 310
+
+!     PROBLEM A4
+40      Y(1) = 3.678794411714325D-01
+        Y(2) = 1.265870722340194D-14
+        Y(3) = 1.911533219339204D-04/TENE38
+        Y(4) = 2.277441666729596D-17/TENE38
+        Y(5) = 0.0D0
+        Y(6) = 0.0D0
+        Y(7) = 0.0D0
+        Y(8) = 0.0D0
+        Y(9) = 0.0D0
+        Y(10) = 0.0D0
+        GOTO 310
+
+!     PROBLEM CLASS B
+
+!     PROBLEM B1
+50      Y(1) = 1.004166730990124D-09
+        Y(2) = 1.800023280346500D-08
+        Y(3) = 0.0D0
+        Y(4) = -6.042962877027475D-03/TENE38/TENE38
+        GOTO 310
+
+!     PROBLEM B2
+60      Y(1) = 6.181330838820067D-31
+        Y(2) = 8.963657877626303D-31
+        Y(3) = 2.738406773453261D-27
+        Y(4) = 2.061153063164016D-09
+        Y(5) = 4.539992973654118D-05
+        Y(6) = 1.353352832365270D-01
+        GOTO 310
+
+!     PROBLEM B3
+70      Y(1) = -1.076790816984970D-28
+        Y(2) = 5.455007683862160D-28
+        Y(3) = 2.738539964946867D-27
+        Y(4) = 2.061153071123456D-09
+        Y(5) = 4.539992974611305D-05
+        Y(6) = 1.353352832365675D-01
+        GOTO 310
+
+!     PROBLEM B4
+80      Y(1) = 1.331242472678293D-22
+        Y(2) = -2.325916064237926D-22
+        Y(3) = 1.517853928534857D-35
+        Y(4) = 2.061152428936651D-09
+        Y(5) = 4.539992963392291D-05
+        Y(6) = 1.353352832363442D-01
+        GOTO 310
+
+!     PROBLEM B5
+90      Y(1) = -3.100634584292190D-14
+        Y(2) = 3.862788998076547D-14
+        Y(3) = 1.804851385304217D-35
+        Y(4) = 2.061153622425655D-09
+        Y(5) = 4.539992976246673D-05
+        Y(6) = 1.353352832366126D-01
+        GOTO 310
+
+!     PROBLEM CLASS C
+
+!     PROBLEM C1
+100     Y(1) = 4.003223925456179D-04
+        Y(2) = 4.001600000000000D-04
+        Y(3) = 4.000000000000000D-04
+        Y(4) = 2.000000000000000D-02
+        GOTO 310
+
+!     PROBLEM C2
+110     Y(1) = 1.999999997938994D+00
+        Y(2) = 3.999999990839974D-02
+        Y(3) = 4.001599991537078D-02
+        Y(4) = 4.003201271914461D-02
+        GOTO 310
+
+!     PROBLEM C3
+120     Y(1) = 1.999999997939167D+00
+        Y(2) = 3.999999990840744D-01
+        Y(3) = 4.159999990793773D-01
+        Y(4) = 4.333055990159567D-01
+        GOTO 310
+
+!     PROBLEM C4
+130     Y(1) = 1.999999997938846D+00
+        Y(2) = 3.999999990839318D+00
+        Y(3) = 1.999999991637941D+01
+        Y(4) = 4.199999965390368D+02
+        GOTO 310
+
+!     PROBLEM C5
+140     Y(1) = 1.999999997938846D+00
+        Y(2) = 7.999999981678634D+00
+        Y(3) = 1.359999993817714D+02
+        Y(4) = 3.712799965967762D+04
+        GOTO 310
+
+!     PROBLEM CLASS D
+
+!     PROBLEM D1
+150     Y(1) = 2.224222010616901D+01
+        Y(2) = 2.711071334484136D+01
+        Y(3) = 3.999999999999999D+02
+        GOTO 310
+
+!     PROBLEM D2
+160     Y(1) = 7.158270687193941D-01
+        Y(2) = 9.185534764557338D-02
+        Y(3) = 2.841637457458413D+01
+        GOTO 310
+
+!     PROBLEM D3
+170     Y(1) = 6.397604446889910D-01
+        Y(2) = 5.630850708287990D-03
+        Y(3) = 3.602395553110090D-01
+        Y(4) = 3.170647969903515D-01
+        GOTO 310
+
+!     PROBLEM D4
+180     Y(1) = 5.976546980673215D-01
+        Y(2) = 1.402343408546138D+00
+        Y(3) = -1.893386540441913D-06
+        GOTO 310
+
+!     PROBLEM D5
+190     Y(1) = -9.916420698713913D-01
+        Y(2) = 9.833363588544478D-01
+        GOTO 310
+
+!     PROBLEM D6
+200     Y(1) = 8.523995440749948D-01
+        Y(2) = 1.476003981941319D-01
+        Y(3) = 5.773087333950041D-08
+        GOTO 310
+
+!     PROBLEM CLASS E
+
+!     PROBLEM E1
+210     Y(1) = 1.000000000000012D-08
+        Y(2) = -1.625323873316817D-19
+        Y(3) = 2.025953375595861D-17
+        Y(4) = -1.853149807630002D-15
+        GOTO 310
+
+!     PROBLEM E2
+220     Y(1) = -1.158701266031984D+00
+        Y(2) = 4.304698089780476D-01
+        GOTO 310
+
+!     PROBLEM E3
+230     Y(1) = 4.253052197643089D-03
+        Y(2) = 5.317019548450387D-03
+        Y(3) = 2.627647748753926D+01
+        GOTO 310
+
+!     PROBLEM E4
+240     Y(1) = 1.999999977523654D+01
+        Y(2) = -2.000000022476345D+01
+        Y(3) = -2.247634567084293D-07
+        Y(4) = 2.247634567084293D-07
+        GOTO 310
+
+!     PROBLEM E5
+250     Y(1) = 1.618076919919600D-03
+        Y(2) = 1.382236955418478D-10
+        Y(3) = 8.251573436034144D-12
+        Y(4) = 1.299721221058136D-10
+        GOTO 310
+
+!     PROBLEM CLASS F
+
+!     PROBLEM F1
+260     Y(1) = 1.211129474696585D+03
+        Y(2) = 1.271123619113051D-05
+        Y(3) = 1.208637804660361D+03
+        Y(4) = 3.241981171933418D-04
+        GOTO 310
+
+!     PROBLEM F2
+270     Y(1) = 3.912699122292088D-01
+        Y(2) = 1.329964166084866D-03
+        GOTO 310
+
+!     PROBLEM F3
+280     Y(1) = 3.235910070806680D-13
+        Y(2) = 2.360679774997897D-07
+        Y(3) = 7.639319089351045D-14
+        Y(4) = 7.639319461070194D-07
+        Y(5) = 3.236067653908783D-06
+        GOTO 310
+
+!     PROBLEM F4
+290     Y(1) = 4.418303324022590D+00
+        Y(2) = 1.290244712916425D+00
+        Y(3) = 3.019282584050490D+00
+        GOTO 310
+
+!     PROBLEM F5
+300     Y(1) = 1.713564284690712D-07
+        Y(2) = 3.713563071160676D-03
+        Y(3) = 6.189271785267793D-03
+        Y(4) = 9.545143571530929D-06
+310     CONTINUE
+        IF (IWT<0) GOTO 320
+        DO I = 1, N
+          Y(I) = Y(I)/W(I)
+        END DO
+320     CONTINUE
+        RETURN
+      END SUBROUTINE EVALU
+
+      SUBROUTINE FCN(X,Y,YP)
+
+!     ROUTINE TO EVALUATE THE DERIVATIVE F(X,Y) CORRESPONDING TO
+!     THE DIFFERENTIAL EQUATION:
+!                    DY/DX = F(X,Y) .
+!     THE ROUTINE STORES THE VECTOR OF DERIVATIVES IN YP(*). THE
+!     PARTICULAR EQUATION BEING INTEGRATED IS INDICATED BY THE
+!     VALUE OF THE FLAG ID WHICH IS PASSED THROUGH COMMON. THE
+!     DIFFERENTIAL EQUATION IS SCALED BY THE WEIGHT VECTOR W(*)
+!     IF THIS OPTION HAS BEEN SELECTED (IF SO IT IS SIGNALLED
+!     BY THE FLAG IWT).
+
+        IMPLICIT NONE
+
+!     .. Scalar Arguments ..
+        DOUBLE PRECISION X
+!     .. Array Arguments ..
+        DOUBLE PRECISION Y(20), YP(20)
+!     .. Local Scalars ..
+        DOUBLE PRECISION F, Q, S, SUM, T, TEMP, XTEMP
+        INTEGER I
+!     .. Local Arrays ..
+        DOUBLE PRECISION BPARM(4), CPARM(4), VECT1(4), VECT2(4), YTEMP(20)
+!     .. Data statements ..
+        DATA BPARM/3.D0, 8.D0, 25.D0, 1.D2/
+        DATA CPARM/1.D-1, 1.D0, 1.D1, 2.D1/
+
+!     .. Executable Statements ..
+
+        NFCN = NFCN + 1
+        IF (IWT<0) GOTO 10
+        DO I = 1, N
+          YTEMP(I) = Y(I)
+          Y(I) = Y(I)*W(I)
+        END DO
+10      CONTINUE
+        GOTO (20,30,40,50,260,260,260,260,260,260,60,70,70,70,70,260,260,260, &
+          260,260,80,90,90,90,90,260,260,260,260,260,100,110,120,130,140,150, &
+          260,260,260,260,160,170,180,190,200,260,260,260,260,260,210,220,230, &
+          240,250) ID
+        GOTO 260
+
+!     PROBLEM CLASS A - LINEAR WITH REAL EIGENVALUES
+
+!     PROBLEM A1
+20      YP(1) = -.5D0*Y(1)
+        YP(2) = -1.D0*Y(2)
+        YP(3) = -1.D2*Y(3)
+        YP(4) = -9.D1*Y(4)
+        GOTO 260
+
+!     PROBLEM A2
+30      YP(1) = -1.8D3*Y(1) + 9.D2*Y(2)
+        DO I = 2, 8
+          YP(I) = Y(I-1) - 2.D0*Y(I) + Y(I+1)
+        END DO
+        YP(9) = 1.D3*Y(8) - 2.D3*Y(9) + 1.D3
+        GOTO 260
+
+!     PROBLEM A3
+40      YP(1) = -1.D4*Y(1) + 1.D2*Y(2) - 1.D1*Y(3) + 1.D0*Y(4)
+        YP(2) = -1.D3*Y(2) + 1.D1*Y(3) - 1.D1*Y(4)
+        YP(3) = -1.D0*Y(3) + 1.D1*Y(4)
+        YP(4) = -1.D-1*Y(4)
+        GOTO 260
+
+!     PROBLEM A4
+50      DO I = 1, 10
+          YP(I) = -REAL(I)**5*Y(I)
+        END DO
+        GOTO 260
+
+!     PROBLEM CLASS B - LINEAR WITH NON-REAL EIGENVALUES
+
+!     PROBLEM B1
+60      YP(1) = -Y(1) + Y(2)
+        YP(2) = -1.D2*Y(1) - Y(2)
+        YP(3) = -1.D2*Y(3) + Y(4)
+        YP(4) = -1.D4*Y(3) - 1.D2*Y(4)
+        GOTO 260
+
+!     PROBLEMS B2, B3, B4, B5
+70      YP(1) = -1.D1*Y(1) + BPARM(IID-1)*Y(2)
+        YP(2) = -BPARM(IID-1)*Y(1) - 1.D1*Y(2)
+        YP(3) = -4.D0*Y(3)
+        YP(4) = -1.D0*Y(4)
+        YP(5) = -.5D0*Y(5)
+        YP(6) = -.1D0*Y(6)
+        GOTO 260
+
+!     PROBLEM CLASS C - NON-LINEAR COUPLING FROM
+!                       STEADY STATE TO TRANSIENT
+
+!     PROBLEM C1
+80      YP(1) = -Y(1) + (Y(2)*Y(2)+Y(3)*Y(3)+Y(4)*Y(4))
+        YP(2) = -1.D1*Y(2) + 1.D1*(Y(3)*Y(3)+Y(4)*Y(4))
+        YP(3) = -4.D1*Y(3) + 4.D1*Y(4)*Y(4)
+        YP(4) = -1.D2*Y(4) + 2.D0
+        GOTO 260
+
+!     PROBLEMS C2, C3, C4, C5
+90      YP(1) = -Y(1) + 2.D0
+        YP(2) = -1.D1*Y(2) + CPARM(IID-1)*Y(1)*Y(1)
+        YP(3) = -4.D1*Y(3) + (Y(1)*Y(1)+Y(2)*Y(2))*CPARM(IID-1)*4.D0
+        YP(4) = (Y(1)*Y(1)+Y(2)*Y(2)+Y(3)*Y(3))*CPARM(IID-1)*1.D1 - 1.D2*Y(4)
+        GOTO 260
+
+!     PROBLEM CLASS D - NON-LINEAR WITH REAL EIGENVALUES
+
+!     PROBLEM D1
+100     YP(1) = .2D0*Y(2) - .2D0*Y(1)
+        YP(2) = 1.D1*Y(1) - (6.D1-.125D0*Y(3))*Y(2) + .125D0*Y(3)
+        YP(3) = 1.D0
+        GOTO 260
+
+!     PROBLEM D2
+110     YP(1) = -.04D0*Y(1) + .01D0*Y(2)*Y(3)
+        YP(2) = 4.D2*Y(1) - 1.D2*Y(2)*Y(3) - 3.D3*Y(2)**2
+        YP(3) = 3.D1*Y(2)**2
+        GOTO 260
+
+!     PROBLEM D3
+120     YP(1) = Y(3) - 1.D2*Y(1)*Y(2)
+        YP(3) = -YP(1)
+        YP(4) = -Y(4) + 1.D4*Y(2)**2
+        YP(2) = YP(1) - YP(4) + Y(4) - 1.D4*Y(2)**2
+        GOTO 260
+
+!     PROBLEM D4
+130     YP(1) = -.013D0*Y(1) - 1.D3*Y(1)*Y(3)
+        YP(2) = -2.5D3*Y(2)*Y(3)
+        YP(3) = YP(1) + YP(2)
+        GOTO 260
+
+!     PROBLEM D5
+140     XTEMP = .01D0 + Y(1) + Y(2)
+        YP(1) = .01D0 - XTEMP*(1.D0+(Y(1)+1.D3)*(Y(1)+1.D0))
+        YP(2) = .01D0 - XTEMP*(1.D0+Y(2)**2)
+        GOTO 260
+
+!     PROBLEM D6
+150     YP(1) = -Y(1) + 1.D8*Y(3)*(1.D0-Y(1))
+        YP(2) = -1.D1*Y(2) + 3.D7*Y(3)*(1.D0-Y(2))
+        YP(3) = -YP(1) - YP(2)
+        GOTO 260
+
+!     PROBLEM CLASS E - NON-LINEAR WITH NON-REAL EIGENVALUES
+
+!     PROBLEM E1
+160     YP(1) = Y(2)
+        YP(2) = Y(3)
+        YP(3) = Y(4)
+        YP(4) = (Y(1)**2-SIN(Y(1))-1.D8)*Y(1) + (Y(2)*Y(3)/(Y(1)**2+1.D0)-4.D6 &
+          )*Y(2) + (1.D0-6.D4)*Y(3) + (1.D1*EXP(-Y(4)**2)-4.D2)*Y(4) + 1.D0
+        GOTO 260
+
+!     PROBLEM E2
+170     YP(1) = Y(2)
+        YP(2) = 5.D0*Y(2) - 5.D0*Y(1)*Y(1)*Y(2) - Y(1)
+        GOTO 260
+
+!     PROBLEM E3
+180     YP(1) = -55.D0*Y(1) - Y(3)*Y(1) + 65.D0*Y(2)
+        YP(2) = .785D-1*Y(1) - .785D-1*Y(2)
+        YP(3) = .1D0*Y(1)
+        GOTO 260
+
+!     PROBLEM E4
+190     SUM = Y(1) + Y(2) + Y(3) + Y(4)
+        DO I = 1, 4
+          VECT2(I) = -Y(I) + .5D0*SUM
+        END DO
+        VECT1(1) = .5D0*(VECT2(1)**2-VECT2(2)**2)
+        VECT1(2) = VECT2(1)*VECT2(2)
+        VECT1(3) = VECT2(3)**2
+        VECT1(4) = VECT2(4)**2
+        TEMP = -1.D1*VECT2(1) - 1.D1*VECT2(2)
+        VECT2(2) = 1.D1*VECT2(1) - 1.D1*VECT2(2)
+        VECT2(1) = TEMP
+        VECT2(3) = 1.D3*VECT2(3)
+        VECT2(4) = 1.D-2*VECT2(4)
+        SUM = 0.D0
+        DO I = 1, 4
+          SUM = SUM + VECT1(I) - VECT2(I)
+        END DO
+        DO I = 1, 4
+          YP(I) = VECT2(I) - VECT1(I) + .5D0*SUM
+        END DO
+        GOTO 260
+
+!     PROBLEM E5
+200     XTEMP = -7.89D-10*Y(1)
+        YP(1) = XTEMP - 1.1D7*Y(1)*Y(3)
+        YP(2) = -XTEMP - 1.13D9*Y(2)*Y(3)
+        YP(4) = 1.1D7*Y(1)*Y(3) - 1.13D3*Y(4)
+        YP(3) = YP(2) - YP(4)
+        GOTO 260
+
+!     PROBLEM CLASS F - CHEMICAL KINETICS EQUATIONS
+
+!     PROBLEM F1
+210     TEMP = 6.D-3*EXP(20.7D0-1.5D4/Y(1))
+        YP(1) = 1.3D0*(Y(3)-Y(1)) + 1.04D4*TEMP*Y(2)
+        YP(2) = 1.88D3*(Y(4)-Y(2)*(1.D0+TEMP))
+        YP(3) = 1752.D0 - 269.D0*Y(3) + 267.D0*Y(1)
+        YP(4) = .1D0 + 320.D0*Y(2) - 321.D0*Y(4)
+        GOTO 260
+
+!     PROBLEM F2
+220     YP(1) = -Y(1) - Y(1)*Y(2) + 294.D0*Y(2)
+        YP(2) = Y(1)*(1.D0-Y(2))/98.D0 - 3.D0*Y(2)
+        GOTO 260
+
+!     PROBLEM F3
+230     YP(1) = -1.0D7*Y(2)*Y(1) + 1.D1*Y(3)
+        YP(2) = -1.0D7*Y(2)*Y(1) - 1.D7*Y(2)*Y(5) + 1.D1*Y(3) + 1.D1*Y(4)
+        YP(3) = 1.0D7*Y(2)*Y(1) - 1.001D4*Y(3) + 1.D-3*Y(4)
+        YP(4) = 1.D4*Y(3) - 1.0001D1*Y(4) + 1.D7*Y(2)*Y(5)
+        YP(5) = 1.D1*Y(4) - 1.D7*Y(2)*Y(5)
+        GOTO 260
+
+!     PROBLEM F4
+240     S = 77.27D0
+        T = 0.161D0
+        Q = 8.375D-6
+        F = 1.D0
+        YP(1) = S*(Y(2)-Y(1)*Y(2)+Y(1)-Q*Y(1)*Y(1))
+        YP(2) = (-Y(2)-Y(1)*Y(2)+F*Y(3))/S
+        YP(3) = T*(Y(1)-Y(3))
+        GOTO 260
+
+!     PROBLEM F5
+250     YP(1) = -3.D11*Y(1)*Y(2) + 1.2D8*Y(4) - 9.D11*Y(1)*Y(3)
+        YP(2) = -3.D11*Y(1)*Y(2) + 2.D7*Y(4)
+        YP(3) = -9.D11*Y(1)*Y(3) + 1.D8*Y(4)
+        YP(4) = 3.D11*Y(1)*Y(2) - 1.2D8*Y(4) + 9.D11*Y(1)*Y(3)
+260     CONTINUE
+        IF (IWT<0) GOTO 270
+        DO I = 1, N
+          YP(I) = YP(I)/W(I)
+          Y(I) = YTEMP(I)
+        END DO
+270     CONTINUE
+        RETURN
+      END SUBROUTINE FCN
+
+      SUBROUTINE PDERV(X,Y)
+
+!     ROUTINE TO EVALUATE THE JACOBIAN MATRIX OF PARTIAL DERIVATIVES
+!     CORRESPONDING TO THE DIFFERENTIAL EQUATION:
+!                   DY/DX = F(X,Y).
+!     THE N**2 ELEMENTS OF THE ARRAY DY(*) ARE ASSIGNED THE VALUE OF
+!     THE JACOBIAN MATRIX WITH ELEMENT I+(J-1)*N BEING ASSIGNED THE
+!     VALUE OF DF(I)/DY(J). THE PARTICULAR EQUATION BEING INTEGRATED
+!     IS INDICATED BY THE VALUE OF THE FLAG ID WHICH IS PASSED THROUGH
+!     COMMON. IF A SCALED DIFFERENTIAL EQUATION IS BEING SOLVED (AS
+!     SIGNALLED IWT) THE ELEMENTS OF THE JACOBIAN ARE SCALED ACCORDING-
+!     LY BY THE WEIGHT VECTOR W(*).
+
+        IMPLICIT NONE
+
+!     .. Scalar Arguments ..
+        DOUBLE PRECISION X
+!     .. Array Arguments ..
+        DOUBLE PRECISION Y(20)
+!     .. Local Scalars ..
+        DOUBLE PRECISION F, Q, S, SUM, T, TEMP, XTEMP1, XTEMP2, XTEMP3
+        INTEGER I, ITMP, J, L
+!     .. Local Arrays ..
+        DOUBLE PRECISION BPARM(4), CPARM(4), VECT2(4), YTEMP(20)
+!     .. Data statements ..
+        DATA BPARM/3.D0, 8.D0, 25.D0, 1.D2/
+        DATA CPARM/1.D-1, 1.D0, 1.D1, 2.D1/
+
+!     .. Executable Statements ..
+
+        NJAC = NJAC + 1
+        IF (IWT<0) GOTO 10
+        DO I = 1, N
+          YTEMP(I) = Y(I)
+          Y(I) = Y(I)*W(I)
+        END DO
+10      CONTINUE
+        GOTO (20,30,40,50,260,260,260,260,260,260,60,70,70,70,70,260,260,260, &
+          260,260,80,90,90,90,90,260,260,260,260,260,100,110,120,130,140,150, &
+          260,260,260,260,160,170,180,190,200,260,260,260,260,260,210,220,230, &
+          240,250) ID
+        GOTO 260
+
+!     PROBLEM CLASS A - LINEAR WITH REAL EIGENVALUES
+
+!     PROBLEM A1
+20      DO I = 1, 16
+          DY(I) = 0.D0
+        END DO
+        DY(1) = -.5D0
+        DY(6) = -1.D0
+        DY(11) = -1.D2
+        DY(16) = -9.D1
+        GOTO 260
+
+!     PROBLEM A2
+30      DO I = 1, 81
+          DY(I) = 0.D0
+        END DO
+        DO I = 2, 62, 10
+          DY(I) = 1.D0
+          DY(I+9) = -2.D0
+          DY(I+18) = 1.D0
+        END DO
+        DY(1) = -1.8D3
+        DY(10) = 9.D2
+        DY(72) = 1.D3
+        DY(81) = -2.D3
+        GOTO 260
+
+!     PROBLEM A3
+40      DO I = 1, 16
+          DY(I) = 0.D0
+        END DO
+        DY(1) = -1.D4
+        DY(5) = 1.D2
+        DY(6) = -1.D3
+        DY(9) = -1.D1
+        DY(10) = 1.D1
+        DY(11) = -1.D0
+        DY(13) = 1.D0
+        DY(14) = -1.D1
+        DY(15) = 1.D1
+        DY(16) = -1.D-1
+        GOTO 260
+
+!     PROBLEM A4
+50      DO I = 1, 100
+          DY(I) = 0.D0
+        END DO
+        DO I = 1, 10
+          DY((I-1)*10+I) = -REAL(I)**5
+        END DO
+        GOTO 260
+
+!     PROBLEM CLASS B - LINEAR WITH NON-REAL EIGENVALUES
+
+!     PROBLEM B1
+60      DO I = 1, 16
+          DY(I) = 0.D0
+        END DO
+        DY(1) = -1.D0
+        DY(2) = -1.D2
+        DY(5) = 1.D0
+        DY(6) = -1.D0
+        DY(11) = -1.D2
+        DY(12) = -1.D4
+        DY(15) = 1.D0
+        DY(16) = -1.D2
+        GOTO 260
+
+!     PROBLEMS B2, B3, B4, B5
+70      DO I = 1, 36
+          DY(I) = 0.D0
+        END DO
+        DY(1) = -1.D1
+        DY(2) = -BPARM(IID-1)
+        DY(7) = BPARM(IID-1)
+        DY(8) = -1.D1
+        DY(15) = -4.D0
+        DY(22) = -1.D0
+        DY(29) = -.5D0
+        DY(36) = -.1D0
+        GOTO 260
+
+!     PROBLEM CLASS C - NON-LINEAR COUPLING FROM
+!                       STEADY STATE TO TRANSIENT
+
+!     PROBLEM C1
+80      DO I = 1, 16
+          DY(I) = 0.D0
+        END DO
+        DY(1) = -1.D0
+        DY(5) = 2.D0*Y(2)
+        DY(6) = -1.D1
+        DY(9) = 2.D0*Y(3)
+        DY(10) = 2.D1*Y(3)
+        DY(11) = -4.D1
+        DY(13) = 2.D0*Y(4)
+        DY(14) = 2.D1*Y(4)
+        DY(15) = 8.D1*Y(4)
+        DY(16) = -1.D2
+        GOTO 260
+
+!     PROBLEMS C2, C3, C4, C5
+90      DO I = 1, 16
+          DY(I) = 0.D0
+        END DO
+        DY(1) = -1.D0
+        DY(2) = 2.D0*Y(1)*CPARM(IID-1)
+        DY(3) = 8.D0*Y(1)*CPARM(IID-1)
+        DY(4) = 2.D1*Y(1)*CPARM(IID-1)
+        DY(6) = -1.D1
+        DY(7) = 8.D0*Y(2)*CPARM(IID-1)
+        DY(8) = 2.D1*Y(2)*CPARM(IID-1)
+        DY(11) = -4.D1
+        DY(12) = 2.D1*Y(3)*CPARM(IID-1)
+        DY(16) = -1.D2
+        GOTO 260
+
+!     PROBLEM CLASS D - NON-LINEAR WITH REAL EIGENVALUES
+
+!     PROBLEM D1
+100     DY(1) = -.2D0
+        DY(2) = 1.D1
+        DY(3) = 0.D0
+        DY(4) = .2D0
+        DY(5) = -6.D1 + .125D0*Y(3)
+        DY(6) = 0.D0
+        DY(7) = 0.D0
+        DY(8) = .125D0*Y(2) + .125D0
+        DY(9) = 0.D0
+        GOTO 260
+
+!     PROBLEM D2
+110     DY(1) = -4.D-2
+        DY(2) = 4.D2
+        DY(3) = 0.D0
+        DY(4) = 1.D-2*Y(3)
+        DY(5) = -1.D2*Y(3) - 6.D3*Y(2)
+        DY(6) = 6.D1*Y(2)
+        DY(7) = .1D-1*Y(2)
+        DY(8) = -1.D2*Y(2)
+        DY(9) = 0.D0
+        GOTO 260
+
+!     PROBLEM D3
+120     DY(1) = -1.D2*Y(2)
+        DY(2) = DY(1)
+        DY(3) = -DY(1)
+        DY(4) = 0.D0
+        DY(5) = -1.D2*Y(1)
+        DY(7) = -DY(5)
+        DY(8) = 2.D4*Y(2)
+        DY(6) = DY(5) - DY(8)
+        DY(6) = DY(6) - 2.D4*Y(2)
+        DY(9) = 1.D0
+        DY(10) = 1.D0
+        DY(11) = -1.D0
+        DY(12) = 0.D0
+        DY(13) = 0.D0
+        DY(14) = 2.D0
+        DY(15) = 0.D0
+        DY(16) = -1.D0
+        GOTO 260
+
+!     PROBLEM D4
+130     DY(1) = -.013D0 - 1.D3*Y(3)
+        DY(2) = 0.D0
+        DY(4) = 0.D0
+        DY(5) = -2.5D3*Y(3)
+        DY(7) = -1.D3*Y(1)
+        DY(8) = -2.5D3*Y(2)
+        DO I = 3, 9, 3
+          DY(I) = DY(I-1) + DY(I-2)
+        END DO
+        GOTO 260
+
+!     PROBLEM D5
+140     XTEMP1 = Y(1) + 1.D3
+        XTEMP2 = Y(1) + 1.D0
+        XTEMP3 = .01D0 + Y(1) + Y(2)
+        DY(2) = -(1.D0+Y(2)**2)
+        DY(3) = -(1.D0+XTEMP1*XTEMP2)
+        DY(1) = -(-DY(3)+XTEMP3*(XTEMP1+XTEMP2))
+        DY(4) = -(2.D0*XTEMP3*Y(2)-DY(2))
+        GOTO 260
+
+!     PROBLEM D6
+150     DY(1) = -1.D0 - 1.D8*Y(3)
+        DY(2) = 0.D0
+        DY(4) = 0.D0
+        DY(5) = -1.D1 - 3.D7*Y(3)
+        DY(7) = 1.D8*(1.D0-Y(1))
+        DY(8) = 3.D7*(1.D0-Y(2))
+        DO I = 3, 9, 3
+          DY(I) = -DY(I-2) - DY(I-1)
+        END DO
+        GOTO 260
+
+!     PROBLEM CLASS E - NON-LINEAR WITH NON-REAL EIGENVALUES
+
+!     PROBLEM E1
+160     DO I = 1, 16
+          DY(I) = 0.D0
+        END DO
+        DY(5) = 1.D0
+        DY(10) = 1.D0
+        DY(15) = 1.D0
+        XTEMP1 = Y(1)
+        XTEMP2 = Y(2)/(XTEMP1**2+1.D0)**2
+        DY(4) = 3.D0*XTEMP1**2 - XTEMP1*COS(XTEMP1) - SIN(XTEMP1) - 1.D8 - &
+          2.D0*XTEMP1*Y(2)*Y(3)*XTEMP2
+        DY(8) = 2.D0*Y(3)*Y(2)/(1.D0+Y(1)**2) - 4.D6
+        DY(12) = Y(2)*Y(2)/(1.D0+Y(1)**2) + 1.D0 - 6.D4
+        DY(16) = 1.D1*EXP(-Y(4)**2)*(1.D0-2.D0*Y(4)**2) - 4.D2
+        GOTO 260
+
+!     PROBLEM E2
+170     DY(1) = 0.D0
+        DY(2) = -1.D1*Y(1)*Y(2) - 1.D0
+        DY(3) = 1.D0
+        DY(4) = 5.D0 - 5.D0*Y(1)*Y(1)
+        GOTO 260
+
+!     PROBLEM E3
+180     DY(1) = -55.D0 - Y(3)
+        DY(2) = .785D-1
+        DY(3) = 0.1D0
+        DY(4) = 65.D0
+        DY(5) = -.785D-1
+        DY(6) = 0.D0
+        DY(7) = -Y(1)
+        DY(8) = 0.D0
+        DY(9) = 0.D0
+        GOTO 260
+
+!     PROBLEM E4
+190     SUM = Y(1) + Y(2) + Y(3) + Y(4)
+        DO I = 1, 4
+          VECT2(I) = -Y(I) + .5D0*SUM
+        END DO
+        DO I = 1, 16
+          DY(I) = 0.D0
+        END DO
+        DY(1) = VECT2(1) + 1.D1
+        DY(2) = VECT2(2) - 1.D1
+        DY(5) = -DY(2)
+        DY(6) = DY(1)
+        DY(11) = 2.D0*VECT2(3) - 1.D3
+        DY(16) = 2.D0*VECT2(4) - 1.D-2
+        DO I = 1, 4
+          SUM = 0.D0
+          DO J = 1, 4
+            L = I + (J-1)*4
+            SUM = SUM + DY(L)
+          END DO
+          DO J = 1, 4
+            L = I + (J-1)*4
+            DY(L) = -DY(L) + .5D0*SUM
+          END DO
+        END DO
+        DO J = 1, 4
+          SUM = 0.D0
+          DO I = 1, 4
+            L = I + (J-1)*4
+            SUM = SUM + DY(L)
+          END DO
+          DO I = 1, 4
+            L = I + (J-1)*4
+            DY(L) = -DY(L) + .5D0*SUM
+          END DO
+        END DO
+        GOTO 260
+
+!     PROBLEM E5
+200     DY(1) = -7.89D-10 - 1.1D7*Y(3)
+        DY(2) = 7.89D-10
+        DY(4) = 1.1D7*Y(3)
+        DY(5) = 0.D0
+        DY(6) = -1.13D9*Y(3)
+        DY(8) = 0.D0
+        DY(9) = -1.1D7*Y(1)
+        DY(10) = -1.13D9*Y(2)
+        DY(12) = -DY(9)
+        DY(13) = 0.D0
+        DY(14) = 0.D0
+        DY(16) = -1.13D3
+        DO I = 3, 15, 4
+          DY(I) = DY(I-1) - DY(I+1)
+        END DO
+        GOTO 260
+
+!     PROBLEM CLASS F - CHEMICAL KINETICS EQUATIONS
+
+!     PROBLEM F1
+210     TEMP = 90.D0*EXP(20.7D0-1.5D4/Y(1))/Y(1)**2
+        DY(1) = -1.3D0 + 1.04D4*TEMP*Y(2)
+        DY(2) = -1.88D3*Y(2)*TEMP
+        DY(3) = 267.D0
+        DY(4) = 0.D0
+        TEMP = 6.D-3*EXP(20.7D0-1.5D4/Y(1))
+        DY(5) = 1.04D4*TEMP
+        DY(6) = -1.88D3*(1.D0+TEMP)
+        DY(7) = 0.D0
+        DY(8) = 320.D0
+        DY(9) = 1.3D0
+        DY(10) = 0.D0
+        DY(11) = -269.D0
+        DY(12) = 0.0D0
+        DY(13) = 0.0D0
+        DY(14) = 1.88D3
+        DY(15) = 0.0D0
+        DY(16) = -321.0D0
+        GOTO 260
+
+!     PROBLEM F2
+220     DY(1) = -1.D0 - Y(2)
+        DY(2) = (1.D0-Y(2))/98.D0
+        DY(3) = -Y(1) + 294.D0
+        DY(4) = -Y(1)/98.D0 - 3.D0
+        GOTO 260
+
+!     PROBLEM F3
+230     DY(1) = -1.D7*Y(2)
+        DY(2) = -1.D7*Y(2)
+        DY(3) = 1.D7*Y(2)
+        DY(4) = 0.0D0
+        DY(5) = 0.0D0
+        DY(6) = -1.D7*Y(1)
+        DY(7) = -1.D7*Y(1) - 1.D7*Y(5)
+        DY(8) = 1.D7*Y(1)
+        DY(9) = 1.D7*Y(5)
+        DY(10) = -1.D7*Y(5)
+        DY(11) = 1.D1
+        DY(12) = 1.D1
+        DY(13) = -1.001D4
+        DY(14) = 1.D4
+        DY(15) = 0.0D0
+        DY(16) = 0.0D0
+        DY(17) = 1.D1
+        DY(18) = 1.D-3
+        DY(19) = -1.0001D1
+        DY(20) = 1.D1
+        DY(21) = 0.0D0
+        DY(22) = -1.D7*Y(2)
+        DY(23) = 0.0D0
+        DY(24) = 1.D7*Y(2)
+        DY(25) = -1.0D7*Y(2)
+        GOTO 260
+
+!     PROBLEM F4
+240     S = 77.27D0
+        T = 0.161D0
+        Q = 8.375D-6
+        F = 1.D0
+        DY(1) = S*(-Y(2)+1.D0-2.D0*Q*Y(1))
+        DY(2) = -Y(2)/S
+        DY(3) = T
+        DY(4) = S*(1.D0-Y(1))
+        DY(5) = (-1.D0-Y(1))/S
+        DY(6) = 0.D0
+        DY(7) = 0.D0
+        DY(8) = F/S
+        DY(9) = -T
+        GOTO 260
+
+!     PROBLEM F5
+250     DY(1) = -3.D11*Y(2) - 9.D11*Y(3)
+        DY(2) = -3.D11*Y(2)
+        DY(3) = -9.D11*Y(3)
+        DY(4) = 3.D11*Y(2) + 9.D11*Y(3)
+        DY(5) = -3.D11*Y(1)
+        DY(6) = -3.D11*Y(1)
+        DY(7) = 0.0D0
+        DY(8) = 3.D11*Y(1)
+        DY(9) = -9.D11*Y(1)
+        DY(10) = 0.0D0
+        DY(11) = -9.D11*Y(1)
+        DY(12) = 9.D11*Y(1)
+        DY(13) = 1.2D8
+        DY(14) = 2.D7
+        DY(15) = 1.D8
+        DY(16) = -1.2D8
+260     CONTINUE
+        IF (IWT<0) GOTO 270
+        DO I = 1, N
+          Y(I) = YTEMP(I)
+          DO J = 1, N
+            ITMP = I + (J-1)*N
+            DY(ITMP) = DY(ITMP)*W(J)/W(I)
+          END DO
+        END DO
+270     CONTINUE
+        RETURN
+      END SUBROUTINE PDERV
+
+    END MODULE STIFFSET
+
+!******************************************************************
+
+    PROGRAM DEMOSTIFF
+
+      USE STIFFSET
+      USE DVODE_F90_M
+
+      IMPLICIT NONE
+      INTEGER ITASK, ISTATE, ISTATS, NEQ, I, CLASS, PROBLEM, MYID, ITEST, ISTR, &
+        IJAC, JTYPE, CONSTANTJ, ITOL, IADIM, IA, JADIM, JA, ROW, COL, ML, MU,   &
+        IJACSP , NUM_S, NUM_J, NUM_D, Total_Solutions, ISCALE, ITIME, COMPS,    &
+        METHOD, WHICH_PROBS, WHICH_TOLS, COUNTS
+      DOUBLE PRECISION RSTATS, T, TOUT, HBEGIN, HBOUND, TBEGIN, TEND, Y, EPS,   &
+        YINIT, YFINAL, RELERR_TOLERANCES, ABSERR_TOLERANCES, AERROR, ERRMAX,    &
+        ERSTATS, LBOUNDS, UBOUNDS, ERSTATS2
+      REAL DVTIME, DVTIME1, DVTIME2, EXECUTION_TIMES 
+      DIMENSION Y(20), RSTATS(22), ISTATS(31), YINIT(20), YFINAL(20), MYID(55)
+      DIMENSION RELERR_TOLERANCES(20), ABSERR_TOLERANCES(20), AERROR(20),       &
+        IA(21), JA(400), ERSTATS(12,55,3), NUM_S(12,55,3), NUM_J(12,55,3),      &
+        NUM_D(12,55,3), EXECUTION_TIMES(12), COMPS(20), LBOUNDS(20),            &
+        UBOUNDS(20), ERSTATS2(2,12,55,6), WHICH_PROBS(55), WHICH_TOLS(12),      &
+        COUNTS(2,12,55,6,3)
+      LOGICAL J_IS_CONSTANT, ANALYTIC_JACOBIAN, ERRORS, SUPPLY_STRUCTURE,       &
+        TOLVEC, USE_JACSP, BOUNDS, USEW, USEHBEGIN
+      INTRINSIC ABS, MAX, MAXVAL, EPSILON
+      TYPE (VODE_OPTS) :: OPTIONS
+      DATA MYID/1, 2, 3, 4, 0, 0, 0, 0, 0, 0, 11, 12, 13, 14, 15,  0, 0, 0, 0,  &
+        0, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 31, 32, 33, 34, 35, 36, 0, 0, 0,  &
+        0, 41, 42, 43, 44, 45, 0, 0, 0, 0, 0, 51, 52, 53, 54, 55/
+
+      OPEN (UNIT=6,FILE='stiffoptions.dat')
+
+!     Initialize the cumulative solutions total.
+      Total_Solutions = 0
+
+!     Use vector tolerances (same solution in either case)?
+      TOLVEC = .FALSE.
+      
+!     Initialize the flag to indicate whether any errors occurred.
+      ERRORS = .FALSE.
+
+!     Execution times per tolerance.
+      EXECUTION_TIMES(1:12) = 0.0E0
+      ERSTATS2(1:2,1:12,1:55,1:6) = 0.0D0
+      WHICH_PROBS(1:55) = 0
+      WHICH_TOLS(1:12) = 0
+      COUNTS(1:2,1:12,1:55,1:6,1:3) = 0
+
+      WRITE(6,90032)
+
+!     Enter the scale equations loop.
+!        1 = the ODEs will be scaled
+!        2 = the ODEs will not be scaled
+      DO ISCALE = 1 , 2
+      USEW = .TRUE.
+      IF (ISCALE == 2) USEW = .FALSE.
+
+!     Enter the numerical Jacobian formation loop.
+!        1 = use Doug's JACSP for Jacobian
+!        2 = use original VODE Jacobian algorithm
+      DO IJACSP = 1, 2
+      USE_JACSP = .TRUE.
+      IF (IJACSP == 2) USE_JACSP = .FALSE. 
+
+!     Initialize the max error array for this value of IJACSP.
+      ERSTATS(1:12,1:15,1:3) = 0.0D0
+
+!     Initialize the stats arrays.
+      NUM_S(1:12,1:15,1:3) = 0
+      NUM_J(1:12,1:15,1:3) = 0
+      NUM_D(1:12,1:15,1:3) = 0
+
+!     Enter the sparsity structure loop.
+!        1 = numerically determined sparse pointer arrays
+!        2 = supplied pointer arrays
+!     Make this a one-trip loop (1 to 1 or 2 to 2) for stats to be meaningful:
+      DO ISTR = 2, 2
+      SUPPLY_STRUCTURE = .FALSE.
+      IF (ISTR == 2) SUPPLY_STRUCTURE = .TRUE.
+
+!     Enter the error tolerance loop.
+!        Error tolerance = 10^(-ITOL)
+      DO ITOL = 5, 12, 1
+
+      WHICH_TOLS(ITOL) = 1
+
+!     Enter the linear algebra type loop.
+!        1 = dense Jacobian
+!        2 = sparse Jacobian
+!        3 = banded Jacobian
+      DO JTYPE = 1, 3
+
+!     Enter the constant Jacobian loop.
+!        1 = Jacobian is not constant
+!        2 = Jacobian is constant for classes 0 and 1
+!     Make this a one-trip loop (1 to 1 or 2 to 2) for stats to be meaningful:
+      DO CONSTANTJ = 1, 1
+
+!     Enter the numerical or analytical Jacobian loop.
+!        1 = numerical Jacobian
+!        2 = analytical Jacobian
+!     Make this a one-trip loop (1 to 1 or 2 to 2) for stats to be meaningful:
+      DO IJAC = 1, 1
+      ANALYTIC_JACOBIAN = .TRUE.
+      IF (IJAC == 1) ANALYTIC_JACOBIAN = .FALSE.
+
+      IF (JTYPE==1 .AND. IJACSP==1) METHOD = 1
+      IF (JTYPE==2 .AND. IJACSP==1) METHOD = 2
+      IF (JTYPE==3 .AND. IJACSP==1) METHOD = 3
+      IF (JTYPE==1 .AND. IJACSP==2) METHOD = 4
+      IF (JTYPE==2 .AND. IJACSP==2) METHOD = 5
+      IF (JTYPE==3 .AND. IJACSP==2) METHOD = 6
+
+!     Enter the problem test loop.
+      DO ITEST = 1, 55
+
+!       JACS supplies the full matrix in the analytic Jacobian case.
+        IF (IJAC == 2 .AND. ISTR == 1) GOTO 20
+        ID = MYID(ITEST)
+        IF (ID == 0) GOTO 20
+        WHICH_PROBS(ITEST) = 1
+        IID = MOD(ID,10)
+        WRITE (6,90010)
+        CLASS = ID/10
+        PROBLEM = ID - 10*CLASS
+        J_IS_CONSTANT = .FALSE.
+        IF ((CLASS==0 .OR. CLASS==1) .AND. CONSTANTJ==2) J_IS_CONSTANT = .TRUE.
+
+!       Output header.
+        IF (CLASS == 0) THEN
+          WRITE (6,90000) PROBLEM
+        ELSE IF (CLASS == 1) THEN
+          WRITE (6,90001) PROBLEM
+        ELSE IF (CLASS == 2) THEN
+          WRITE (6,90002) PROBLEM
+        ELSE IF (CLASS == 3) THEN
+          WRITE (6,90003) PROBLEM
+        ELSE IF (CLASS == 4) THEN
+          WRITE (6,90004) PROBLEM
+        ELSE IF (CLASS == 5) THEN
+          WRITE (6,90005) PROBLEM
+        END IF
+        WRITE(6,*)    ' Results for ITOL = ', ITOL, ' follow.'
+        PRINT *,      ' Results for ITOL = ', ITOL, ' follow.'
+        IF (IJACSP == 1) THEN
+           WRITE(6,*) ' Results for JACSP Jacobian follow.'
+           PRINT *,   ' Results for JACSP Jacobian follow.'
+        ELSE
+           WRITE(6,*) ' Results for VODE Jacobian follow.'
+           PRINT *,   ' Results for VODE Jacobian follow.'
+        END IF
+        IF (ISCALE == 1) THEN
+           WRITE(6,*) ' The ODEs will be scaled.'
+           PRINT *,   ' The ODEs will be scaled.'
+        ELSE
+           WRITE(6,*) ' The ODEs will not be scaled.'
+           PRINT *,   ' The ODEs will not be scaled.'
+        END IF
+        IF (ISTR == 1) THEN
+           WRITE(6,*) ' Results for numerically determined sparse pointers follow.'
+           PRINT *,   ' Results for numerically determined sparse pointers follow.'
+        ELSE
+           WRITE(6,*) ' Results for user supplied sparse pointers follow.'
+           PRINT *,   ' Results for user supplied sparse pointers follow.'
+        END IF
+        IF (JTYPE == 1) THEN
+           WRITE(6,*) ' Results for dense Jacobian option follow.'
+           PRINT *,   ' Results for dense Jacobian option follow.'
+        END IF
+        IF (JTYPE == 2) THEN
+           WRITE(6,*) ' Results for sparse Jacobian option follow.'
+           PRINT *,   ' Results for sparse Jacobian option follow.'
+        END IF
+        IF (JTYPE == 3) THEN
+           WRITE(6,*) ' Results for banded Jacobian option follow.'
+           PRINT *,   ' Results for banded Jacobian option follow.'
+        END IF
+        IF (CONSTANTJ == 1) THEN
+           WRITE(6,*) ' Results for non-constant Jacobian option follow.'
+           PRINT *,   ' Results for non-constant Jacobian option follow.'
+        ELSE
+           WRITE(6,*) ' Results for constant Jacobian option follow.'
+           PRINT *,   ' Results for constant Jacobian option follow.'
+        END IF
+        IF (IJAC == 1) THEN
+           WRITE(6,*) ' Results for numerical Jacobian option follow.'
+           PRINT *,   ' Results for numerical Jacobian option follow.'
+        ELSE
+           WRITE(6,*) ' Results for analytical Jacobian option follow.'
+           PRINT *,   ' Results for analytical Jacobian option follow.'
+        END IF
+
+!       Initialize the problem.
+!       Scale the ODEs?
+!         USEW = .TRUE.
+          IWT = -1
+          IF (USEW) IWT = 1
+!       Get the problem information.
+          CALL IVALU(TBEGIN,TEND,HBEGIN,HBOUND,YINIT)
+!       Use the IVALU starting step size?
+          USEHBEGIN = .TRUE.
+          IF (.NOT. USEHBEGIN) HBEGIN = 0.0D0
+!       Define the number of ODEs.
+          NEQ = N
+!       Use the full matrix for the banded solution.
+          ML = NEQ - 1
+          MU = NEQ - 1
+!       Initial and final integration times.
+          T = TBEGIN
+          TOUT = TEND
+!       Initial solution.
+          Y(1:NEQ) = YINIT(1:NEQ)
+!       Error tolerances.
+          EPS = 1.0D0 / 10.0D0**ITOL
+          RELERR_TOLERANCES(1:NEQ) = EPS
+          ABSERR_TOLERANCES(1:NEQ) = EPS
+          WRITE (6,90007) ID,TBEGIN,TEND,HBEGIN,HBOUND,IWT,N,EPS,Y(1:NEQ)
+          BOUNDS = .FALSE.
+!         Force nonnegativity for the chemical kinetics problems in Class F.
+          IF (ITEST >= 51) THEN
+             BOUNDS = .TRUE.
+             COMPS(1) = 1
+             COMPS(2) = 2
+             COMPS(3) = 3
+             DO I = 1, NEQ
+                COMPS(I) = I
+             END DO
+             LBOUNDS(1:NEQ) = 0.0D0
+             UBOUNDS(1:NEQ) = 1.0D50
+          END IF
+        IF (BOUNDS) WRITE(6,90040)
+!       Initialize the integration flags.
+          ITASK = 1
+          ISTATE = 1
+
+!       Use the full matrix for sparsity structure.
+        IF (JTYPE == 2 .AND. SUPPLY_STRUCTURE) THEN
+           IADIM = NEQ + 1
+           JADIM = NEQ * NEQ
+           IA(1) = 1
+           DO I = 1, NEQ
+             IA(I+1) = IA(I) + NEQ
+           END DO
+           I = 0
+           DO COL = 1, NEQ
+             I = NEQ*(COL-1)
+             DO ROW = 1, NEQ
+               I = I + 1
+               JA(I) = ROW
+             END DO
+           END DO
+        END IF
+
+        CALL CPU_TIME(DVTIME1)
+
+!       Set the integration options.
+        IF (JTYPE == 1) THEN
+!          Dense solution ...
+           IF (TOLVEC) THEN
+!             Supply vectors of tolerances.
+              IF (BOUNDS) THEN
+                 OPTIONS = SET_OPTS(DENSE_J=.TRUE.,                          &
+                                 USER_SUPPLIED_JACOBIAN=ANALYTIC_JACOBIAN,   &
+                                 RELERR_VECTOR=RELERR_TOLERANCES(1:NEQ),     &
+                                 ABSERR_VECTOR=ABSERR_TOLERANCES(1:NEQ),     &
+                                 MXSTEP=100000,H0=HBEGIN,HMAX=HBOUND,        &
+                                 CONSTANT_JACOBIAN=J_IS_CONSTANT,            &
+                                 JACOBIAN_BY_JACSP=USE_JACSP,                &
+                                 CONSTRAINED=COMPS(1:NEQ),                   &
+                                 CLOWER=LBOUNDS(1:NEQ),CUPPER=UBOUNDS(1:NEQ))
+              ELSE
+                 OPTIONS = SET_OPTS(DENSE_J=.TRUE.,                          &
+                                 USER_SUPPLIED_JACOBIAN=ANALYTIC_JACOBIAN,   &
+                                 RELERR_VECTOR=RELERR_TOLERANCES(1:NEQ),     &
+                                 ABSERR_VECTOR=ABSERR_TOLERANCES(1:NEQ),     &
+                                 MXSTEP=100000,H0=HBEGIN,HMAX=HBOUND,        &
+                                 CONSTANT_JACOBIAN=J_IS_CONSTANT,            &
+                                 JACOBIAN_BY_JACSP=USE_JACSP)
+              END IF
+           ELSE
+!             Supply scalar tolerances.
+              IF (BOUNDS) THEN
+                 OPTIONS = SET_OPTS(DENSE_J=.TRUE.,                          &
+                                 USER_SUPPLIED_JACOBIAN=ANALYTIC_JACOBIAN,   &
+                                 RELERR=EPS,ABSERR=EPS,                      &
+                                 MXSTEP=100000,H0=HBEGIN,HMAX=HBOUND,        &
+                                 CONSTANT_JACOBIAN=J_IS_CONSTANT,            &
+                                 JACOBIAN_BY_JACSP=USE_JACSP,                &
+                                 CONSTRAINED=COMPS(1:NEQ),                   &
+                                 CLOWER=LBOUNDS(1:NEQ),CUPPER=UBOUNDS(1:NEQ))
+              ELSE
+                 OPTIONS = SET_OPTS(DENSE_J=.TRUE.,                          &
+                                 USER_SUPPLIED_JACOBIAN=ANALYTIC_JACOBIAN,   &
+                                 RELERR=EPS,ABSERR=EPS,                      &
+                                 MXSTEP=100000,H0=HBEGIN,HMAX=HBOUND,        &
+                                 CONSTANT_JACOBIAN=J_IS_CONSTANT,            &
+                                 JACOBIAN_BY_JACSP=USE_JACSP)
+              END IF
+           END IF
+        END IF
+
+        IF (JTYPE == 2) THEN
+!          Sparse solution ...
+           IF (TOLVEC) THEN
+!             Supply vectors of tolerances.
+              IF (BOUNDS) THEN
+                 OPTIONS = SET_OPTS(SPARSE_J=.TRUE.,                         &
+                                 USER_SUPPLIED_JACOBIAN=ANALYTIC_JACOBIAN,   &
+                                 RELERR_VECTOR=RELERR_TOLERANCES(1:NEQ),     &
+                                 ABSERR_VECTOR=ABSERR_TOLERANCES(1:NEQ),     &
+                                 MXSTEP=100000,H0=HBEGIN,HMAX=HBOUND,        &
+                                 CONSTANT_JACOBIAN=J_IS_CONSTANT,            &
+                                 USER_SUPPLIED_SPARSITY=SUPPLY_STRUCTURE,    &
+                                 JACOBIAN_BY_JACSP=USE_JACSP,                &
+                                 MA28_RPS=.TRUE.,CONSTRAINED=COMPS(1:NEQ),   &
+                                 CLOWER=LBOUNDS(1:NEQ),CUPPER=UBOUNDS(1:NEQ))
+              ELSE
+                 OPTIONS = SET_OPTS(SPARSE_J=.TRUE.,                         &
+                                 USER_SUPPLIED_JACOBIAN=ANALYTIC_JACOBIAN,   &
+                                 RELERR_VECTOR=RELERR_TOLERANCES(1:NEQ),     &
+                                 ABSERR_VECTOR=ABSERR_TOLERANCES(1:NEQ),     &
+                                 MXSTEP=100000,H0=HBEGIN,HMAX=HBOUND,        &
+                                 CONSTANT_JACOBIAN=J_IS_CONSTANT,            &
+                                 USER_SUPPLIED_SPARSITY=SUPPLY_STRUCTURE,    &
+                                 JACOBIAN_BY_JACSP=USE_JACSP,                &
+                                 MA28_RPS=.TRUE.)
+              END IF
+           ELSE
+!             Supply scalar tolerances.
+              IF (BOUNDS) THEN
+                 OPTIONS = SET_OPTS(SPARSE_J=.TRUE.,                         &
+                                 USER_SUPPLIED_JACOBIAN=ANALYTIC_JACOBIAN,   &
+                                 RELERR=EPS,ABSERR=EPS,                      &
+                                 MXSTEP=100000,H0=HBEGIN,HMAX=HBOUND,        &
+                                 CONSTANT_JACOBIAN=J_IS_CONSTANT,            &
+                                 USER_SUPPLIED_SPARSITY=SUPPLY_STRUCTURE,    &
+                                 JACOBIAN_BY_JACSP=USE_JACSP,                &
+                                 MA28_RPS=.TRUE.,CONSTRAINED=COMPS(1:NEQ),   &
+                                 CLOWER=LBOUNDS(1:NEQ),CUPPER=UBOUNDS(1:NEQ))
+              ELSE
+                 OPTIONS = SET_OPTS(SPARSE_J=.TRUE.,                         &
+                                 USER_SUPPLIED_JACOBIAN=ANALYTIC_JACOBIAN,   &
+                                 RELERR=EPS,ABSERR=EPS,                      &
+                                 MXSTEP=100000,H0=HBEGIN,HMAX=HBOUND,        &
+                                 CONSTANT_JACOBIAN=J_IS_CONSTANT,            &
+                                 USER_SUPPLIED_SPARSITY=SUPPLY_STRUCTURE,    &
+                                 JACOBIAN_BY_JACSP=USE_JACSP,                &
+                                 MA28_RPS=.TRUE.)
+              END IF
+           END IF
+        END IF
+
+        IF (JTYPE == 3) THEN
+!          Banded solution ...
+           IF (TOLVEC) THEN
+!             Supply vectors of tolerances.
+              IF (BOUNDS) THEN
+                 OPTIONS = SET_OPTS(BANDED_J=.TRUE.,                         &
+                                 LOWER_BANDWIDTH=ML,UPPER_BANDWIDTH=MU,      &
+                                 USER_SUPPLIED_JACOBIAN=ANALYTIC_JACOBIAN,   &
+                                 RELERR_VECTOR=RELERR_TOLERANCES(1:NEQ),     &
+                                 ABSERR_VECTOR=ABSERR_TOLERANCES(1:NEQ),     &
+                                 MXSTEP=100000,H0=HBEGIN,HMAX=HBOUND,        &
+                                 CONSTANT_JACOBIAN=J_IS_CONSTANT,            &
+                                 JACOBIAN_BY_JACSP=USE_JACSP,                &
+                                 CONSTRAINED=COMPS(1:NEQ),                   &
+                                 CLOWER=LBOUNDS(1:NEQ),CUPPER=UBOUNDS(1:NEQ))
+              ELSE
+                 OPTIONS = SET_OPTS(BANDED_J=.TRUE.,                         &
+                                 LOWER_BANDWIDTH=ML,UPPER_BANDWIDTH=MU,      &
+                                 USER_SUPPLIED_JACOBIAN=ANALYTIC_JACOBIAN,   &
+                                 RELERR_VECTOR=RELERR_TOLERANCES(1:NEQ),     &
+                                 ABSERR_VECTOR=ABSERR_TOLERANCES(1:NEQ),     &
+                                 MXSTEP=100000,H0=HBEGIN,HMAX=HBOUND,        &
+                                 CONSTANT_JACOBIAN=J_IS_CONSTANT,            &
+                                 JACOBIAN_BY_JACSP=USE_JACSP)
+              END IF
+           ELSE
+!             Supply scalar tolerances.
+              IF (BOUNDS) THEN
+                 OPTIONS = SET_OPTS(BANDED_J=.TRUE.,                         &
+                                 LOWER_BANDWIDTH=ML,UPPER_BANDWIDTH=MU,      &
+                                 USER_SUPPLIED_JACOBIAN=ANALYTIC_JACOBIAN,   &
+                                 RELERR=EPS,ABSERR=EPS,                      &
+                                 MXSTEP=100000,H0=HBEGIN,HMAX=HBOUND,        &
+                                 CONSTANT_JACOBIAN=J_IS_CONSTANT,            &
+                                 JACOBIAN_BY_JACSP=USE_JACSP,                &
+                                 CONSTRAINED=COMPS(1:NEQ),                   &
+                                 CLOWER=LBOUNDS(1:NEQ),CUPPER=UBOUNDS(1:NEQ))
+              ELSE
+                 OPTIONS = SET_OPTS(BANDED_J=.TRUE.,                         &
+                                 LOWER_BANDWIDTH=ML,UPPER_BANDWIDTH=MU,      &
+                                 USER_SUPPLIED_JACOBIAN=ANALYTIC_JACOBIAN,   &
+                                 RELERR=EPS,ABSERR=EPS,                      &
+                                 MXSTEP=100000,H0=HBEGIN,HMAX=HBOUND,        &
+                                 CONSTANT_JACOBIAN=J_IS_CONSTANT,            &
+                                 JACOBIAN_BY_JACSP=USE_JACSP)
+              END IF
+           END IF
+        END IF
+
+!       Supply the sparse structure arrays directly.
+        IF (JTYPE==2 .AND. SUPPLY_STRUCTURE) THEN
+           CALL USERSETS_IAJA(IA(1:IADIM),IADIM,JA(1:JADIM),JADIM)
+        END IF
+
+!       Perform the integration.
+        IF (JTYPE == 1) THEN
+           CALL DVODE_F90(DERIVS,NEQ,Y,T,TOUT,ITASK,ISTATE,OPTIONS,J_FCN=JACD)
+        END IF
+        IF (JTYPE == 2) THEN
+           CALL DVODE_F90(DERIVS,NEQ,Y,T,TOUT,ITASK,ISTATE,OPTIONS,J_FCN=JACS)
+        END IF
+        IF (JTYPE == 3) THEN
+           CALL DVODE_F90(DERIVS,NEQ,Y,T,TOUT,ITASK,ISTATE,OPTIONS,J_FCN=JACB)
+        END IF
+
+        CALL CPU_TIME(DVTIME2)
+        DVTIME = DVTIME2 - DVTIME1
+        EXECUTION_TIMES(ITOL) = EXECUTION_TIMES(ITOL) + DVTIME
+
+        Total_Solutions = Total_Solutions + 1
+
+!       Check if an error occurred.
+        IF (ISTATE < 0) THEN
+          WRITE (6,90006) ISTATE
+          ERRORS = .TRUE.
+        END IF
+
+!       Gather the integration statistics.
+        CALL GET_STATS(RSTATS,ISTATS)
+        WRITE (6,90009) ISTATS(11), ISTATS(12), ISTATS(13)
+        NUM_S(ITOL,ITEST,JTYPE) = ISTATS(11)
+        NUM_D(ITOL,ITEST,JTYPE) = ISTATS(12)
+        NUM_J(ITOL,ITEST,JTYPE) = ISTATS(13)
+
+!       Calculate the error in the final solution.
+        CALL EVALU(YFINAL)
+        DO I = 1, NEQ
+          AERROR(I) = ABS(Y(I)-YFINAL(I))
+        END DO
+        ERRMAX = MAXVAL(AERROR(1:NEQ))
+        ERSTATS(ITOL,ITEST,JTYPE) = ERRMAX
+        ERSTATS2(ISCALE,ITOL,ITEST,METHOD) = ERRMAX
+        COUNTS(ISCALE,ITOL,ITEST,METHOD,1) = ISTATS(11)
+        COUNTS(ISCALE,ITOL,ITEST,METHOD,2) = ISTATS(12)
+        COUNTS(ISCALE,ITOL,ITEST,METHOD,3) = ISTATS(13)
+        WRITE (6,90008) (I,Y(I),YFINAL(I),AERROR(I),I=1,NEQ)
+
+!       Release the work arrays and determine how much storage was required.
+        CALL RELEASE_ARRAYS
+
+20    CONTINUE
+      END DO ! End of ITEST Loop
+      END DO ! End of IJAC Loop
+      END DO ! End of JTYPE Loop
+      END DO ! End of CONSTANTJ Loop
+      END DO ! End of ITOL Loop
+      END DO ! End of ISTR Loop
+
+!     Print the maximum errors for this value of IJACSP.
+      DO ITOL = 5, 12, 1
+         WRITE(6,90016) ITOL
+         WRITE(6,90020)
+         IF (IJACSP == 1) WRITE(6,90023)
+         IF (IJACSP == 2) WRITE(6,90022)
+         IF (ISCALE == 1) WRITE(6,90030)
+         IF (ISCALE == 2) WRITE(6,90031)
+         WRITE(6,90021)
+         WRITE(6,90015)
+         DO ITEST = 1, 55
+            IF (WHICH_PROBS(ITEST) == 1) THEN
+               ID = MYID(ITEST)
+               IF (ID /= 0) WRITE(6,90014) ITOL, ITEST,         &
+                            (ERSTATS(ITOL,ITEST,JTYPE),JTYPE=1,3)
+            END IF
+         END DO
+      END DO 
+
+!     Print the integration stats for this value of IJACSP.
+      DO ITOL = 5, 12, 1
+         WRITE(6,90016) ITOL
+         WRITE(6,90024)
+         IF (IJACSP == 1) WRITE(6,90023)
+         IF (IJACSP == 2) WRITE(6,90022)
+         IF (ISCALE == 1) WRITE(6,90030)
+         IF (ISCALE == 2) WRITE(6,90031)
+         WRITE(6,90029)
+         DO ITEST = 1, 55
+            IF (WHICH_PROBS(ITEST) == 1) THEN
+               ID = MYID(ITEST)
+               IF (ID /= 0) THEN
+                  WRITE(6,90026) ITEST, (NUM_S(ITOL,ITEST,JTYPE),JTYPE=1,3)
+                  WRITE(6,90027)        (NUM_J(ITOL,ITEST,JTYPE),JTYPE=1,3)
+                  WRITE(6,90028)        (NUM_D(ITOL,ITEST,JTYPE),JTYPE=1,3)
+                  WRITE(6,*) ' '
+               END IF
+            END IF
+         END DO
+      END DO 
+
+      END DO ! End of IJACSP Loop
+      END DO ! End of ISCALE Loop
+
+      WRITE(6,90045)
+
+      DO ITEST = 1, 55
+         IF (WHICH_PROBS(ITEST) == 1) THEN
+            ID = MYID(ITEST)
+            IID = MOD(ID,10)
+            WRITE (6,90010)
+            CLASS = ID/10
+            PROBLEM = ID - 10*CLASS
+            IF (CLASS == 0) THEN
+              WRITE (6,90000) PROBLEM
+            ELSE IF (CLASS == 1) THEN
+              WRITE (6,90001) PROBLEM
+            ELSE IF (CLASS == 2) THEN
+              WRITE (6,90002) PROBLEM
+            ELSE IF (CLASS == 3) THEN
+              WRITE (6,90003) PROBLEM
+            ELSE IF (CLASS == 4) THEN
+              WRITE (6,90004) PROBLEM
+            ELSE IF (CLASS == 5) THEN
+              WRITE (6,90005) PROBLEM
+            END IF
+            DO ITOL = 5, 12, 1
+               IF (WHICH_TOLS(ITOL) == 1) THEN
+                  DO ISCALE = 1,  2
+                     IF (ISCALE == 1) WRITE(6,90035) ITEST, ITOL
+                     IF (ISCALE == 2) WRITE(6,90036) ITEST, ITOL
+                     WRITE(6,90037) ERSTATS2(ISCALE,ITOL,ITEST,1), &
+                                    ERSTATS2(ISCALE,ITOL,ITEST,4)
+                     WRITE(6,90038) ERSTATS2(ISCALE,ITOL,ITEST,2), &
+                                    ERSTATS2(ISCALE,ITOL,ITEST,5)
+                     WRITE(6,90039) ERSTATS2(ISCALE,ITOL,ITEST,3), &
+                                    ERSTATS2(ISCALE,ITOL,ITEST,6)
+                     WRITE(6,90044)
+                     WRITE(6,90041) COUNTS(ISCALE,ITOL,ITEST,1,1), &
+                                    COUNTS(ISCALE,ITOL,ITEST,4,1), &
+                                    COUNTS(ISCALE,ITOL,ITEST,1,2), &
+                                    COUNTS(ISCALE,ITOL,ITEST,4,2), &
+                                    COUNTS(ISCALE,ITOL,ITEST,1,3), &
+                                    COUNTS(ISCALE,ITOL,ITEST,4,3)
+                     WRITE(6,90042) COUNTS(ISCALE,ITOL,ITEST,2,1), &
+                                    COUNTS(ISCALE,ITOL,ITEST,5,1), &
+                                    COUNTS(ISCALE,ITOL,ITEST,2,2), &
+                                    COUNTS(ISCALE,ITOL,ITEST,5,2), &
+                                    COUNTS(ISCALE,ITOL,ITEST,2,3), &
+                                    COUNTS(ISCALE,ITOL,ITEST,5,3)
+                     WRITE(6,90043) COUNTS(ISCALE,ITOL,ITEST,3,1), &
+                                    COUNTS(ISCALE,ITOL,ITEST,6,1), &
+                                    COUNTS(ISCALE,ITOL,ITEST,3,2), &
+                                    COUNTS(ISCALE,ITOL,ITEST,6,2), &
+                                    COUNTS(ISCALE,ITOL,ITEST,3,3), &
+                                    COUNTS(ISCALE,ITOL,ITEST,6,3)
+                     WRITE (6,90010)
+                  END DO
+               END IF
+            END DO
+         END IF
+      END DO
+
+!     Total number of solutions performed.
+      WRITE(6,90025) Total_Solutions
+      WRITE (6,90010)
+
+!     Execution Times.
+      WRITE(6,90033)
+      DO ITOL = 5, 12, 1
+         ITIME = INT(EXECUTION_TIMES(ITOL))
+         WRITE(6,90034) ITOL, ITIME
+      END DO
+      WRITE (6,90010)
+
+!     Where to search in output file.
+      WRITE(6,90032)
+
+!     Indicate whether any DVODE_F90 made any error returns.
+      IF (ERRORS) THEN
+         WRITE(6,90011)
+      ELSE
+         WRITE(6,90012)
+      END IF
+
+!     Format statements follow.
+90000 FORMAT (' Class/Problem = A',I1)
+90001 FORMAT (' Class/Problem = B',I1)
+90002 FORMAT (' Class/Problem = C',I1)
+90003 FORMAT (' Class/Problem = D',I1)
+90004 FORMAT (' Class/Problem = E',I1)
+90005 FORMAT (' Class/Problem = F',I1)
+90006 FORMAT (' An error occurred in VODE_F90. ISTATE = ',I3)
+90007 FORMAT (' Problem ID       = ',I3,/,   ' Initial time     = ',D15.5,/, &
+              ' Final time       = ',D15.5,/,' Initial stepsize = ',D15.5,/, &
+              ' Maximum stepsize = ',D15.5,/,' IWT flag         = ',I3,/,    &
+              ' Number of ODEs   = ',I3,/,   ' Error tolerance  = ',D15.5,/, &
+              ' Initial solution = ',/,(D15.5))
+90008 FORMAT (' Computed and reference solutions and absolute' &
+              ' errors follow:',/,(I3,3D15.5))
+90009 FORMAT (' Steps = ',I10,' f-s = ',I10,' J-s = ',I10)
+90010 FORMAT (' ____________________________________________________________')
+90011 FORMAT (/,' Errors occurred. (Search on ISTATE.)')
+90012 FORMAT (/,' No errors occurred.')
+90013 FORMAT (' For ITOL = ', I3,' Dense  max. observed error = ',D15.5)
+90014 FORMAT (I5,6X,I5,3D15.5)
+90015 FORMAT (/,'Tolerance',3X,'Problem',4X,'Dense',10X,'Sparse',9X,'Banded')
+90016 FORMAT (//,20X,' Results for ITOL = ',I3)
+90017 FORMAT (' For ITOL = ', I3,' Sparse max. observed error = ',D15.5)
+90018 FORMAT (' For ITOL = ', I3,' Banded max. observed error = ',D15.5)
+90019 FORMAT (' The dense and banded results are not identical.')
+90020 FORMAT (/,' Maximum Errors for All Problems Follow:')
+90021 FORMAT (/,10X,' Maximum Errors for Individual Problems Follow:')
+90022 FORMAT (' The original VODE Jacobian was used.')
+90023 FORMAT (' The JACSP Jacobian was used.')
+90024 FORMAT (/,' Integration Statistics Follow:')
+90025 FORMAT (/,' Total number of solutions performed = ',I5)
+90026 FORMAT (I5,'   Steps: ',3I10)
+90027 FORMAT (5X,'   Jacs:  ',3I10)
+90028 FORMAT (5X,'   Ders:  ',3I10)
+90029 FORMAT (/,' Problem',12X,'Dense',4X,'Sparse',4X,'Banded')
+90030 FORMAT (' The ODEs were scaled.')
+90031 FORMAT (' The ODEs were not scaled.')
+90032 FORMAT (//,' To locate the summary results, search on the phrase',/ &
+                 ' Summary Statistics Follow in the output file',         &
+                 ' (stiffoptions.dat).',//)
+90033 FORMAT (/,' Tolerance', 10X, 'Total Execution Time')
+90034 FORMAT ((4X,I5,10X,I10))
+90035 FORMAT (/,' Problem No. = ',I3,/,' ITOL = ',I3,/,' Scaled ODEs', &
+              13X,'Absolute Errors')
+90036 FORMAT (' Problem No. = ',I3,/,' ITOL = ',I3,/,' Unscaled ODEs', &
+              18X,'Absolute Errors')
+90037 FORMAT (' Dense : JACSP - VODE: ',2D15.5)
+90038 FORMAT (' Sparse: JACSP - VODE: ',2D15.5)
+90039 FORMAT (' Banded: JACSP - VODE: ',2D15.5)
+90040 FORMAT (' Nonnegativity will be enforced for this problem.')
+90041 FORMAT (' Dense  SDJ: ',6I7)
+90042 FORMAT (' Sparse SDJ: ',6I7)
+90043 FORMAT (' Banded SDJ: ',6I7)
+90044 FORMAT (19X,'J',6X,'V',6X,'J',6X,'V',6X,'J',6X,'V')
+90045 FORMAT (///,20X,'Summary Statistics Follow')
+
+      STOP
+    END PROGRAM DEMOSTIFF
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/DVODE/stiffset.mod
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/DVODE/stiffset.mod	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/DVODE/stiffset.mod	(revision 2696)
@@ -0,0 +1,149 @@
+V24 stiffset
+16 stiffoptions.f90 S582 0
+05/10/2011  17:18:32
+enduse
+D 33 21 9 1 3 12 0 0 0 0 0
+ 0 12 3 3 12 12
+D 36 21 9 1 3 13 0 0 0 0 0
+ 0 13 3 3 13 13
+D 39 21 9 1 3 15 0 0 1 0 0
+ 0 14 3 3 15 15
+D 42 21 9 1 3 15 0 0 1 0 0
+ 0 14 3 3 15 15
+D 45 21 9 1 3 17 0 0 1 0 0
+ 0 16 3 3 17 17
+D 48 21 9 2 18 21 0 0 1 0 0
+ 0 19 3 3 20 20
+ 0 16 20 3 17 17
+D 51 21 9 1 3 23 0 0 1 0 0
+ 0 22 3 3 23 23
+D 54 21 9 2 24 27 0 0 1 0 0
+ 0 25 3 3 26 26
+ 0 22 26 3 23 23
+D 57 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 28
+D 60 21 6 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 29
+D 63 21 6 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 30
+D 66 21 9 1 3 0 0 0 0 1 0
+ 0 0 3 3 0 31
+D 69 21 9 1 3 12 0 0 0 0 0
+ 0 12 3 3 12 12
+D 72 21 9 1 3 12 0 0 0 0 0
+ 0 12 3 3 12 12
+D 75 21 9 1 3 12 0 0 0 0 0
+ 0 12 3 3 12 12
+D 78 21 9 1 3 12 0 0 0 0 0
+ 0 12 3 3 12 12
+D 81 21 9 1 3 12 0 0 0 0 0
+ 0 12 3 3 12 12
+S 582 24 0 0 0 8 1 0 4668 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 33 0 0 0 0 0 0 stiffset
+S 583 6 4 0 0 6 584 582 4677 4 0 0 0 0 0 0 0 0 0 594 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 iwt
+S 584 6 4 0 0 6 585 582 4681 4 0 0 4 0 0 0 0 0 0 594 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 n
+S 585 6 4 0 0 6 586 582 4683 4 0 0 8 0 0 0 0 0 0 594 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 id
+S 586 6 4 0 0 6 587 582 4686 4 0 0 12 0 0 0 0 0 0 594 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 iid
+S 587 6 4 0 0 6 588 582 4690 4 0 0 16 0 0 0 0 0 0 594 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 nfcn
+S 588 6 4 0 0 6 589 582 4695 4 0 0 20 0 0 0 0 0 0 594 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 njac
+S 589 6 4 0 0 6 1 582 4700 4 0 0 24 0 0 0 0 0 0 594 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 nlud
+S 590 7 4 0 4 33 591 582 4705 800004 100 0 0 0 0 0 0 0 0 595 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 w
+S 591 7 4 0 4 36 1 582 4707 800004 100 0 160 0 0 0 0 0 0 595 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 dy
+S 592 3 0 0 0 6 1 1 0 0 0 0 0 0 0 0 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6
+S 593 3 0 0 0 6 0 1 0 0 0 0 0 0 0 0 400 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6
+S 594 11 0 0 0 8 1 582 4710 40800000 801000 0 28 0 0 583 589 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 stiffset$0
+S 595 11 0 0 1 8 594 582 4721 40800000 801000 0 3360 0 0 590 591 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 stiffset$2
+S 596 23 5 0 0 0 601 582 4732 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 derivs
+S 597 6 3 0 0 6 1 596 4739 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 neq
+S 598 1 3 0 0 9 1 596 4743 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 t
+S 599 7 3 0 0 39 1 596 4745 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 y
+S 600 7 3 0 0 42 1 596 4747 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ydot
+S 601 14 5 0 0 0 1 596 4732 200 400000 0 0 0 2 4 0 0 0 0 0 0 0 0 0 0 0 0 48 0 582 0 0 0 0 derivs
+F 601 4 597 598 599 600
+S 602 6 1 0 0 6 1 596 4752 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_14
+S 603 23 5 0 0 0 611 582 4759 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 jacd
+S 604 6 3 0 0 6 1 603 4739 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 neq
+S 605 1 3 0 0 9 1 603 4743 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 t
+S 606 7 3 0 0 45 1 603 4745 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 y
+S 607 1 3 0 0 6 1 603 4764 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ml
+S 608 1 3 0 0 6 1 603 4767 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 mu
+S 609 7 3 0 0 48 1 603 4770 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 pd
+S 610 6 3 0 0 6 1 603 4773 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 nrowpd
+S 611 14 5 0 0 0 1 603 4759 200 400000 0 0 0 7 7 0 0 0 0 0 0 0 0 0 0 0 0 58 0 582 0 0 0 0 jacd
+F 611 7 604 605 606 607 608 609 610
+S 612 6 1 0 0 6 1 603 4780 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_16
+S 613 6 1 0 0 6 1 603 4787 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_18
+S 614 6 1 0 0 6 1 603 4794 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_20
+S 615 6 1 0 0 6 1 603 4801 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_22
+S 616 23 5 0 0 0 624 582 4808 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 jacb
+S 617 6 3 0 0 6 1 616 4739 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 neq
+S 618 1 3 0 0 9 1 616 4743 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 t
+S 619 7 3 0 0 51 1 616 4745 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 y
+S 620 1 3 0 0 6 1 616 4764 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ml
+S 621 1 3 0 0 6 1 616 4767 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 mu
+S 622 7 3 0 0 54 1 616 4770 800204 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 pd
+S 623 6 3 0 0 6 1 616 4773 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 nrowpd
+S 624 14 5 0 0 0 1 616 4808 200 400000 0 0 0 15 7 0 0 0 0 0 0 0 0 0 0 0 0 73 0 582 0 0 0 0 jacb
+F 624 7 617 618 619 620 621 622 623
+S 625 6 1 0 0 6 1 616 4801 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_22
+S 626 6 1 0 0 6 1 616 4813 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_24
+S 627 6 1 0 0 6 1 616 4820 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_26
+S 628 6 1 0 0 6 1 616 4827 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_e_28
+S 629 23 5 0 0 0 637 582 4834 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 jacs
+S 630 1 3 0 0 6 1 629 4739 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 neq
+S 631 1 3 0 0 9 1 629 4743 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 t
+S 632 7 3 0 0 57 1 629 4745 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 y
+S 633 7 3 0 0 60 1 629 4839 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ia
+S 634 7 3 0 0 63 1 629 4842 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ja
+S 635 1 3 0 0 6 1 629 4845 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 nz
+S 636 7 3 0 0 66 1 629 4848 800104 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 p
+S 637 14 5 0 0 0 1 629 4834 100 400000 0 0 0 23 7 0 0 0 0 0 0 0 0 0 0 0 0 88 0 582 0 0 0 0 jacs
+F 637 7 630 631 632 633 634 635 636
+S 638 6 1 0 0 6 1 629 4850 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_0
+S 639 6 1 0 0 6 1 629 4856 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_1
+S 640 6 1 0 0 6 1 629 4862 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_2
+S 641 6 1 0 0 6 1 629 4868 40800006 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z_b_3
+S 642 23 5 0 0 0 648 582 4874 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ivalu
+S 643 1 3 0 0 9 1 642 4880 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xstart
+S 644 1 3 0 0 9 1 642 4887 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xend
+S 645 1 3 0 0 9 1 642 4892 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 hbegin
+S 646 1 3 0 0 9 1 642 4899 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 hmax
+S 647 7 3 0 0 69 1 642 4745 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 y
+S 648 14 5 0 0 0 1 642 4874 0 400000 0 0 0 31 5 0 0 0 0 0 0 0 0 0 0 0 0 118 0 582 0 0 0 0 ivalu
+F 648 5 643 644 645 646 647
+S 649 23 5 0 0 0 651 582 4904 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 evalu
+S 650 7 3 0 0 72 1 649 4745 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 y
+S 651 14 5 0 0 0 1 649 4904 0 400000 0 0 0 37 1 0 0 0 0 0 0 0 0 0 0 0 0 609 0 582 0 0 0 0 evalu
+F 651 1 650
+S 652 23 5 0 0 0 656 582 4910 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 fcn
+S 653 1 3 0 0 9 1 652 4914 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 x
+S 654 7 3 0 0 75 1 652 4745 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 y
+S 655 7 3 0 0 78 1 652 4916 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 yp
+S 656 14 5 0 0 0 1 652 4910 0 400000 0 0 0 39 3 0 0 0 0 0 0 0 0 0 0 0 0 889 0 582 0 0 0 0 fcn
+F 656 3 653 654 655
+S 657 23 5 0 0 0 660 582 4919 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 pderv
+S 658 1 3 0 0 9 1 657 4914 4 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 x
+S 659 7 3 0 0 81 1 657 4745 800004 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 y
+S 660 14 5 0 0 0 1 657 4919 0 400000 0 0 0 43 2 0 0 0 0 0 0 0 0 0 0 0 0 1135 0 582 0 0 0 0 pderv
+F 660 2 658 659
+A 12 2 0 0 0 6 592 0 0 0 12 0 0 0 0 0 0 0 0 0
+A 13 2 0 0 0 6 593 0 0 0 13 0 0 0 0 0 0 0 0 0
+A 14 1 0 0 0 6 597 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 15 1 0 0 0 6 602 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 16 1 0 0 0 6 604 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 17 1 0 0 0 6 612 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 18 1 0 0 0 6 615 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 19 1 0 0 0 6 610 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 20 1 0 0 0 6 613 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 21 1 0 0 0 6 614 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 22 1 0 0 0 6 617 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 23 1 0 0 0 6 625 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 24 1 0 0 0 6 628 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 25 1 0 0 0 6 623 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 26 1 0 0 0 6 626 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 27 1 0 0 0 6 627 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 28 1 0 0 0 6 638 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 29 1 0 0 0 6 639 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 30 1 0 0 0 6 640 0 0 0 0 0 0 0 0 0 0 0 0 0
+A 31 1 0 0 0 6 641 0 0 0 0 0 0 0 0 0 0 0 0 0
+Z
+Z
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/DVODE/test.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/DVODE/test.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/DVODE/test.f90	(revision 2696)
@@ -0,0 +1,3 @@
+program vig
+print*,'cici'
+end
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/atm_lsodes.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/atm_lsodes.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/atm_lsodes.def	(revision 2696)
@@ -0,0 +1,19 @@
+ 
+#FUNCTION AGGREGATE
+#JACOBIAN FULL
+#DOUBLE ON 
+#INTFILE atm_lsodes
+
+#INLINE F77_GLOBAL
+      REAL*8 STEPSTART
+      COMMON /GDATA/ STEPSTART
+#ENDINLINE
+
+#INLINE F77_INIT
+        STEPMIN=1.D-12
+        STEPMAX=3600.
+        STEPSTART=STEPMIN
+#ENDINLINE
+
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/atm_lsodes.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/atm_lsodes.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/atm_lsodes.f	(revision 2696)
@@ -0,0 +1,5474 @@
+      SUBROUTINE INTEGRATE( TIN, TOUT )
+
+      IMPLICIT KPP_REAL (A-H,O-Z)
+      INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Global.h'
+
+C TIN - Start Time
+      KPP_REAL TIN
+C TOUT - End Time
+      KPP_REAL TOUT
+
+      PARAMETER ( LRW=20+3*1500+16*NVAR )
+      PARAMETER ( LIW=60 )
+      EXTERNAL FUNC_CHEM, JAC_CHEM
+
+      KPP_REAL RWORK(LRW)
+      INTEGER IWORK(LIW)
+
+      STEPCUT = 0.
+      MAXORD = 5
+      IBEGIN = 1
+      ITOL=4
+
+C ---- NORMAL COMPUTATION ---
+      ITASK=1
+      ISTATE=1
+C ---- USE OPTIONAL INPUT ---
+      IOPT=1
+
+      IWORK(5) = MAXORD    ! MAX ORD
+      IWORK(6) = 20000
+      IWORK(7) = 0
+      RWORK(6) = STEPMAX   ! STEP MAX
+      RWORK(7) = STEPMIN   ! STEP MIN
+      RWORK(5) = STEPMIN   ! INITIAL STEP
+
+C ----- SIGNAL FOR STIFF CASE, FULL JACOBIAN, INTERN (22) or SUPPLIED (21)
+      MF = 121
+
+      CALL atmlsodes (FUNC_CHEM, NVAR, VAR, TIN, TOUT, ITOL, RTOL, ATOL,
+     !            ITASK, ISTATE, IOPT, RWORK, LRW, IWORK, LIW,
+     !            JAC_CHEM, MF)
+
+      IF (ISTATE.LT.0) THEN
+        print *,'LSODES: Unsucessfull exit at T=',
+     &          TIN,' (ISTATE=',ISTATE,')'
+      ENDIF
+
+      RETURN
+      END
+
+      subroutine atmlsodes (f, neq, y, t, tout, itol, RelTol, AbsTol,
+     1       itask, istate, iopt, rwork, lrw, iwork, liw, jac, mf)
+      external f, jac
+      integer neq, itol, itask, istate, iopt, lrw, iwork, liw, mf
+      KPP_REAL y, t, tout, RelTol, AbsTol, rwork
+      dimension neq(1), y(1), RelTol(1), AbsTol(1),
+     1          rwork(lrw), iwork(liw)
+c-----------------------------------------------------------------------
+c this is the march 30, 1987 version of
+c lsodes.. livermore solver for ordinary differential equations
+c          with general sparse jacobian matrices.
+c this version is in KPP_REAL.
+c
+c lsodes solves the initial value problem for stiff or nonstiff
+c systems of first order ode-s,
+c     dy/dt = f(t,y) ,  or, in component form,
+c     dy(i)/dt = f(i) = f(i,t,y(1),y(2),...,y(neq)) (i = 1,...,neq).
+c lsodes is a variant of the lsode package, and is intended for
+c problems in which the jacobian matrix df/dy has an arbitrary
+c sparse structure (when the problem is stiff).
+c
+c authors..      alan c. hindmarsh,
+c                computing and mathematics research division, l-316
+c                lawrence livermore national laboratory
+c                livermore, ca 94550.
+c
+c and            andrew h. sherman
+c                j. s. nolen and associates
+c                houston, tx 77084
+c-----------------------------------------------------------------------
+c references..
+c 1.  alan c. hindmarsh,  odepack, a systematized collection of ode
+c     solvers, in scientific computing, r. s. stepleman et al. (eds.),
+c     north-holland, amsterdam, 1983, pp. 55-64.
+c
+c 2.  s. c. eisenstat, m. c. gursky, m. h. schultz, and a. h. sherman,
+c     yale sparse matrix package.. i. the symmetric codes,
+c     int. j. num. meth. eng., 18 (1982), pp. 1145-1151.
+c
+c 3.  s. c. eisenstat, m. c. gursky, m. h. schultz, and a. h. sherman,
+c     yale sparse matrix package.. ii. the nonsymmetric codes,
+c     research report no. 114, dept. of computer sciences, yale
+c     university, 1977.
+c-----------------------------------------------------------------------
+c summary of usage.
+c
+c communication between the user and the lsodes package, for normal
+c situations, is summarized here.  this summary describes only a subset
+c of the full set of options available.  see the full description for
+c details, including optional communication, nonstandard options,
+c and instructions for special situations.  see also the example
+c problem (with program and output) following this summary.
+c
+c a. first provide a subroutine of the form..
+c               subroutine f (neq, t, y, ydot)
+c               dimension y(neq), ydot(neq)
+c which supplies the vector function f by loading ydot(i) with f(i).
+c
+c b. next determine (or guess) whether or not the problem is stiff.
+c stiffness occurs when the jacobian matrix df/dy has an eigenvalue
+c whose real part is negative and large in magnitude, compared to the
+c reciprocal of the t span of interest.  if the problem is nonstiff,
+c use a method flag mf = 10.  if it is stiff, there are two standard
+c for the method flag, mf = 121 and mf = 222.  in both cases, lsodes
+c requires the jacobian matrix in some form, and it treats this matrix
+c in general sparse form, with sparsity structure determined internally.
+c (for options where the user supplies the sparsity structure, see
+c the full description of mf below.)
+c
+c c. if the problem is stiff, you are encouraged to supply the jacobian
+c directly (mf = 121), but if this is not feasible, lsodes will
+c compute it internally by difference quotients (mf = 222).
+c if you are supplying the jacobian, provide a subroutine of the form..
+c               subroutine jac (neq, t, y, j, ian, jan, pdj)
+c               dimension y(1), ian(1), jan(1), pdj(1)
+c here neq, t, y, and j are input arguments, and the jac routine is to
+c load the array pdj (of length neq) with the j-th column of df/dy.
+c i.e., load pdj(i) with df(i)/dy(j) for all relevant values of i.
+c the arguments ian and jan should be ignored for normal situations.
+c lsodes will CALL the jac routine with j = 1,2,...,neq.
+c only nonzero elements need be loaded.  usually, a crude approximation
+c to df/dy, possibly with fewer nonzero elements, will suffice.
+c
+c d. write a main program which calls subroutine lsodes once for
+c each point at which answers are desired.  this should also provide
+c for possible use of logical unit 6 for output of error messages
+c by lsodes.  on the first CALL to lsodes, supply arguments as follows..
+c f      = name of subroutine for right-hand side vector f.
+c          this name must be declared external in calling program.
+c neq    = number of first order ode-s.
+c y      = array of initial values, of length neq.
+c t      = the initial value of the independent variable.
+c tout   = first point where output is desired (.ne. t).
+c itol   = 1 or 2 according as AbsTol (below) is a scalar or array.
+c RelTol   = relative tolerance parameter (scalar).
+c AbsTol   = absolute tolerance parameter (scalar or array).
+c          the estimated local error in y(i) will be controlled so as
+c          to be roughly less (in magnitude) than
+c             ewt(i) = RelTol*abs(y(i)) + AbsTol     if itol = 1, or
+c             ewt(i) = RelTol*abs(y(i)) + AbsTol(i)  if itol = 2.
+c          thus the local error test passes if, in each component,
+c          either the absolute error is less than AbsTol (or AbsTol(i)),
+c          or the relative error is less than RelTol.
+c          use RelTol = 0.0 for pure absolute error control, and
+c          use AbsTol = 0.0 (or AbsTol(i) = 0.0) for pure relative error
+c          control.  caution.. actual (global) errors may exceed these
+c          local tolerances, so choose them conservatively.
+c itask  = 1 for normal computation of output values of y at t = tout.
+c istate = integer flag (input and output).  set istate = 1.
+c iopt   = 0 to indicate no optional inputs used.
+c rwork  = real work array of length at least..
+c             20 + 16*neq            for mf = 10,
+c             20 + (2 + 1./lenrat)*nnz + (11 + 9./lenrat)*neq
+c                                    for mf = 121 or 222,
+c          where..
+c          nnz    = the number of nonzero elements in the sparse
+c                   jacobian (if this is unknown, use an estimate), and
+c          lenrat = the real to integer wordlength ratio (usually 1 in
+c                   single precision and 2 in KPP_REAL).
+c          in any case, the required size of rwork cannot generally
+c          be predicted in advance if mf = 121 or 222, and the value
+c          above is a rough estimate of a crude lower bound.  some
+c          experimentation with this size may be necessary.
+c          (when known, the correct required length is an optional
+c          output, available in iwork(17).)
+c lrw    = declared length of rwork (in user-s dimension).
+c iwork  = integer work array of length at least 30.
+c liw    = declared length of iwork (in user-s dimension).
+c jac    = name of subroutine for jacobian matrix (mf = 121).
+c          if used, this name must be declared external in calling
+c          program.  if not used, pass a dummy name.
+c mf     = method flag.  standard values are..
+c          10  for nonstiff (adams) method, no jacobian used.
+c          121 for stiff (bdf) method, user-supplied sparse jacobian.
+c          222 for stiff method, internally generated sparse jacobian.
+c note that the main program must declare arrays y, rwork, iwork,
+c and possibly AbsTol.
+c
+c e. the output from the first CALL (or any call) is..
+c      y = array of computed values of y(t) vector.
+c      t = corresponding value of independent variable (normally tout).
+c istate = 2  if lsodes was successful, negative otherwise.
+c          -1 means excess work done on this CALL (perhaps wrong mf).
+c          -2 means excess accuracy requested (tolerances too small).
+c          -3 means illegal input detected (see printed message).
+c          -4 means repeated error test failures (check all inputs).
+c          -5 means repeated convergence failures (perhaps bad jacobian
+c             supplied or wrong choice of mf or tolerances).
+c          -6 means error weight became zero during problem. (solution
+c             component i vanished, and AbsTol or AbsTol(i) = 0.)
+c          -7 means a fatal error return flag came from the sparse
+c             solver cdrv by way of prjs or slss.  should never happen.
+c          a return with istate = -1, -4, or -5 may result from using
+c          an inappropriate sparsity structure, one that is quite
+c          different from the initial structure.  consider calling
+c          lsodes again with istate = 3 to force the structure to be
+c          reevaluated.  see the full description of istate below.
+c
+c f. to continue the integration after a successful return, simply
+c reset tout and CALL lsodes again.  no other parameters need be reset.
+c
+c-----------------------------------------------------------------------
+c example problem.
+c
+c the following is a simple example problem, with the coding
+c needed for its solution by lsodes.  the problem is from chemical
+c kinetics, and consists of the following 12 rate equations..
+c    dy1/dt  = -rk1*y1
+c    dy2/dt  = rk1*y1 + rk11*rk14*y4 + rk19*rk14*y5
+c                - rk3*y2*y3 - rk15*y2*y12 - rk2*y2
+c    dy3/dt  = rk2*y2 - rk5*y3 - rk3*y2*y3 - rk7*y10*y3
+c                + rk11*rk14*y4 + rk12*rk14*y6
+c    dy4/dt  = rk3*y2*y3 - rk11*rk14*y4 - rk4*y4
+c    dy5/dt  = rk15*y2*y12 - rk19*rk14*y5 - rk16*y5
+c    dy6/dt  = rk7*y10*y3 - rk12*rk14*y6 - rk8*y6
+c    dy7/dt  = rk17*y10*y12 - rk20*rk14*y7 - rk18*y7
+c    dy8/dt  = rk9*y10 - rk13*rk14*y8 - rk10*y8
+c    dy9/dt  = rk4*y4 + rk16*y5 + rk8*y6 + rk18*y7
+c    dy10/dt = rk5*y3 + rk12*rk14*y6 + rk20*rk14*y7
+c                + rk13*rk14*y8 - rk7*y10*y3 - rk17*y10*y12
+c                - rk6*y10 - rk9*y10
+c    dy11/dt = rk10*y8
+c    dy12/dt = rk6*y10 + rk19*rk14*y5 + rk20*rk14*y7
+c                - rk15*y2*y12 - rk17*y10*y12
+c
+c with rk1 = rk5 = 0.1,  rk4 = rk8 = rk16 = rk18 = 2.5,
+c      rk10 = 5.0,  rk2 = rk6 = 10.0,  rk14 = 30.0,
+c      rk3 = rk7 = rk9 = rk11 = rk12 = rk13 = rk19 = rk20 = 50.0,
+c      rk15 = rk17 = 100.0.
+c
+c the t interval is from 0 to 1000, and the initial conditions
+c are y1 = 1, y2 = y3 = ... = y12 = 0.  the problem is stiff.
+c
+c the following coding solves this problem with lsodes, using mf = 121
+c and printing results at t = .1, 1., 10., 100., 1000.  it uses
+c itol = 1 and mixed relative/absolute tolerance controls.
+c during the run and at the end, statistical quantities of interest
+c are printed (see optional outputs in the full description below).
+c
+c     external fex, jex
+c     KPP_REAL AbsTol, RelTol, rwork, t, tout, y
+c     dimension y(12), rwork(500), iwork(30)
+c     data lrw/500/, liw/30/
+c     neq = 12
+c     do 10 i = 1,neq
+c 10    y(i) = 0.0d0
+c     y(1) = 1.0d0
+c     t = 0.0d0
+c     tout = 0.1d0
+c     itol = 1
+c     RelTol = 1.0d-4
+c     AbsTol = 1.0d-6
+c     itask = 1
+c     istate = 1
+c     iopt = 0
+c     mf = 121
+c     do 40 iout = 1,5
+c       CALL lsodes (fex, neq, y, t, tout, itol, RelTol, AbsTol,
+c    1     itask, istate, iopt, rwork, lrw, iwork, liw, jex, mf)
+c       write(6,30)t,iwork(11),rwork(11),(y(i),i=1,neq)
+c 30    format(//7h at t =,e11.3,4x,
+c    1    12h no. steps =,i5,4x,12h last step =,e11.3/
+c    2    13h  y array =  ,4e14.5/13x,4e14.5/13x,4e14.5)
+c       if (istate .lt. 0) go to 80
+c       tout = tout*10.0d0
+c 40    continue
+c     lenrw = iwork(17)
+c     leniw = iwork(18)
+c     nst = iwork(11)
+c     nfe = iwork(12)
+c     nje = iwork(13)
+c     nlu = iwork(21)
+c     nnz = iwork(19)
+c     nnzlu = iwork(25) + iwork(26) + neq
+c     write (6,70) lenrw,leniw,nst,nfe,nje,nlu,nnz,nnzlu
+c 70  format(//22h required rwork size =,i4,15h   iwork size =,i4/
+c    1   12h no. steps =,i4,12h   no. f-s =,i4,12h   no. j-s =,i4,
+c    2   13h   no. lu-s =,i4/23h no. of nonzeros in j =,i5,
+c    3   26h   no. of nonzeros in lu =,i5)
+c     stop
+c 80  write(6,90)istate
+c 90  format(///22h error halt.. istate =,i3)
+c     stop
+c     end
+c
+c     subroutine fex (neq, t, y, ydot)
+c     KPP_REAL t, y, ydot
+c     KPP_REAL rk1, rk2, rk3, rk4, rk5, rk6, rk7, rk8, rk9,
+c    1   rk10, rk11, rk12, rk13, rk14, rk15, rk16, rk17
+c     dimension y(12), ydot(12)
+c     data rk1/0.1d0/, rk2/10.0d0/, rk3/50.0d0/, rk4/2.5d0/, rk5/0.1d0/,
+c    1   rk6/10.0d0/, rk7/50.0d0/, rk8/2.5d0/, rk9/50.0d0/, rk10/5.0d0/,
+c    2   rk11/50.0d0/, rk12/50.0d0/, rk13/50.0d0/, rk14/30.0d0/,
+c    3   rk15/100.0d0/, rk16/2.5d0/, rk17/100.0d0/, rk18/2.5d0/,
+c    4   rk19/50.0d0/, rk20/50.0d0/
+c     ydot(1)  = -rk1*y(1)
+c     ydot(2)  = rk1*y(1) + rk11*rk14*y(4) + rk19*rk14*y(5)
+c    1           - rk3*y(2)*y(3) - rk15*y(2)*y(12) - rk2*y(2)
+c     ydot(3)  = rk2*y(2) - rk5*y(3) - rk3*y(2)*y(3) - rk7*y(10)*y(3)
+c    1           + rk11*rk14*y(4) + rk12*rk14*y(6)
+c     ydot(4)  = rk3*y(2)*y(3) - rk11*rk14*y(4) - rk4*y(4)
+c     ydot(5)  = rk15*y(2)*y(12) - rk19*rk14*y(5) - rk16*y(5)
+c     ydot(6)  = rk7*y(10)*y(3) - rk12*rk14*y(6) - rk8*y(6)
+c     ydot(7)  = rk17*y(10)*y(12) - rk20*rk14*y(7) - rk18*y(7)
+c     ydot(8)  = rk9*y(10) - rk13*rk14*y(8) - rk10*y(8)
+c     ydot(9)  = rk4*y(4) + rk16*y(5) + rk8*y(6) + rk18*y(7)
+c     ydot(10) = rk5*y(3) + rk12*rk14*y(6) + rk20*rk14*y(7)
+c    1           + rk13*rk14*y(8) - rk7*y(10)*y(3) - rk17*y(10)*y(12)
+c    2           - rk6*y(10) - rk9*y(10)
+c     ydot(11) = rk10*y(8)
+c     ydot(12) = rk6*y(10) + rk19*rk14*y(5) + rk20*rk14*y(7)
+c    1           - rk15*y(2)*y(12) - rk17*y(10)*y(12)
+c     return
+c     end
+c
+c     subroutine jex (neq, t, y, j, ia, ja, pdj)
+c     KPP_REAL t, y, pdj
+c     KPP_REAL rk1, rk2, rk3, rk4, rk5, rk6, rk7, rk8, rk9,
+c    1   rk10, rk11, rk12, rk13, rk14, rk15, rk16, rk17
+c     dimension y(1), ia(1), ja(1), pdj(1)
+c     data rk1/0.1d0/, rk2/10.0d0/, rk3/50.0d0/, rk4/2.5d0/, rk5/0.1d0/,
+c    1   rk6/10.0d0/, rk7/50.0d0/, rk8/2.5d0/, rk9/50.0d0/, rk10/5.0d0/,
+c    2   rk11/50.0d0/, rk12/50.0d0/, rk13/50.0d0/, rk14/30.0d0/,
+c    3   rk15/100.0d0/, rk16/2.5d0/, rk17/100.0d0/, rk18/2.5d0/,
+c    4   rk19/50.0d0/, rk20/50.0d0/
+c     go to (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12), j
+c 1   pdj(1) = -rk1
+c     pdj(2) = rk1
+c     return
+c 2   pdj(2) = -rk3*y(3) - rk15*y(12) - rk2
+c     pdj(3) = rk2 - rk3*y(3)
+c     pdj(4) = rk3*y(3)
+c     pdj(5) = rk15*y(12)
+c     pdj(12) = -rk15*y(12)
+c     return
+c 3   pdj(2) = -rk3*y(2)
+c     pdj(3) = -rk5 - rk3*y(2) - rk7*y(10)
+c     pdj(4) = rk3*y(2)
+c     pdj(6) = rk7*y(10)
+c     pdj(10) = rk5 - rk7*y(10)
+c     return
+c 4   pdj(2) = rk11*rk14
+c     pdj(3) = rk11*rk14
+c     pdj(4) = -rk11*rk14 - rk4
+c     pdj(9) = rk4
+c     return
+c 5   pdj(2) = rk19*rk14
+c     pdj(5) = -rk19*rk14 - rk16
+c     pdj(9) = rk16
+c     pdj(12) = rk19*rk14
+c     return
+c 6   pdj(3) = rk12*rk14
+c     pdj(6) = -rk12*rk14 - rk8
+c     pdj(9) = rk8
+c     pdj(10) = rk12*rk14
+c     return
+c 7   pdj(7) = -rk20*rk14 - rk18
+c     pdj(9) = rk18
+c     pdj(10) = rk20*rk14
+c     pdj(12) = rk20*rk14
+c     return
+c 8   pdj(8) = -rk13*rk14 - rk10
+c     pdj(10) = rk13*rk14
+c     pdj(11) = rk10
+c 9   return
+c 10  pdj(3) = -rk7*y(3)
+c     pdj(6) = rk7*y(3)
+c     pdj(7) = rk17*y(12)
+c     pdj(8) = rk9
+c     pdj(10) = -rk7*y(3) - rk17*y(12) - rk6 - rk9
+c     pdj(12) = rk6 - rk17*y(12)
+c 11  return
+c 12  pdj(2) = -rk15*y(2)
+c     pdj(5) = rk15*y(2)
+c     pdj(7) = rk17*y(10)
+c     pdj(10) = -rk17*y(10)
+c     pdj(12) = -rk15*y(2) - rk17*y(10)
+c     return
+c     end
+c
+c the output of this program (on a cray-1 in single precision)
+c is as follows..
+c
+c
+c at t =  1.000e-01     no. steps =   12     last step =  1.515e-02
+c  y array =     9.90050e-01   6.28228e-03   3.65313e-03   7.51934e-07
+c                1.12167e-09   1.18458e-09   1.77291e-12   3.26476e-07
+c                5.46720e-08   9.99500e-06   4.48483e-08   2.76398e-06
+c
+c
+c at t =  1.000e+00     no. steps =   33     last step =  7.880e-02
+c  y array =     9.04837e-01   9.13105e-03   8.20622e-02   2.49177e-05
+c                1.85055e-06   1.96797e-06   1.46157e-07   2.39557e-05
+c                3.26306e-05   7.21621e-04   5.06433e-05   3.05010e-03
+c
+c
+c at t =  1.000e+01     no. steps =   48     last step =  1.239e+00
+c  y array =     3.67876e-01   3.68958e-03   3.65133e-01   4.48325e-05
+c                6.10798e-05   4.33148e-05   5.90211e-05   1.18449e-04
+c                3.15235e-03   3.56531e-03   4.15520e-03   2.48741e-01
+c
+c
+c at t =  1.000e+02     no. steps =   91     last step =  3.764e+00
+c  y array =     4.44981e-05   4.42666e-07   4.47273e-04  -3.53257e-11
+c                2.81577e-08  -9.67741e-11   2.77615e-07   1.45322e-07
+c                1.56230e-02   4.37394e-06   1.60104e-02   9.52246e-01
+c
+c
+c at t =  1.000e+03     no. steps =  111     last step =  4.156e+02
+c  y array =    -2.65492e-13   2.60539e-14  -8.59563e-12   6.29355e-14
+c               -1.78066e-13   5.71471e-13  -1.47561e-12   4.58078e-15
+c                1.56314e-02   1.37878e-13   1.60184e-02   9.52719e-01
+c
+c
+c required rwork size = 442   iwork size =  30
+c no. steps = 111   no. f-s = 142   no. j-s =   2   no. lu-s =  20
+c no. of nonzeros in j =   44   no. of nonzeros in lu =   50
+c-----------------------------------------------------------------------
+c full description of user interface to lsodes.
+c
+c the user interface to lsodes consists of the following parts.
+c
+c i.   the CALL sequence to subroutine lsodes, which is a driver
+c      routine for the solver.  this includes descriptions of both
+c      the CALL sequence arguments and of user-supplied routines.
+c      following these descriptions is a description of
+c      optional inputs available through the CALL sequence, and then
+c      a description of optional outputs (in the work arrays).
+c
+c ii.  descriptions of other routines in the lsodes package that may be
+c      (optionally) called by the user.  these provide the ability to
+c      alter error message handling, save and restore the internal
+c      common, and obtain specified derivatives of the solution y(t).
+c
+c iii. descriptions of common blocks to be declared in overlay
+c      or similar environments, or to be saved when doing an interrupt
+c      of the problem and continued solution later.
+c
+c iv.  description of two routines in the lsodes package, either of
+c      which the user may replace with his own version, if desired.
+c      these relate to the measurement of errors.
+c
+c-----------------------------------------------------------------------
+c part i.  CALL sequence.
+c
+c the CALL sequence parameters used for input only are
+c     f, neq, tout, itol, RelTol, AbsTol, itask, iopt, lrw, liw, jac, mf,
+c and those used for both input and output are
+c     y, t, istate.
+c the work arrays rwork and iwork are also used for conditional and
+c optional inputs and optional outputs.  (the term output here refers
+c to the return from subroutine lsodes to the user-s calling program.)
+c
+c the legality of input parameters will be thoroughly checked on the
+c initial CALL for the problem, but not checked thereafter unless a
+c change in input parameters is flagged by istate = 3 on input.
+c
+c the descriptions of the CALL arguments are as follows.
+c
+c f      = the name of the user-supplied subroutine defining the
+c          ode system.  the system must be put in the first-order
+c          form dy/dt = f(t,y), where f is a vector-valued function
+c          of the scalar t and the vector y.  subroutine f is to
+c          compute the function f.  it is to have the form
+c               subroutine f (neq, t, y, ydot)
+c               dimension y(1), ydot(1)
+c          where neq, t, and y are input, and the array ydot = f(t,y)
+c          is output.  y and ydot are arrays of length neq.
+c          (in the dimension statement above, 1 is a dummy
+c          dimension.. it can be replaced by any value.)
+c          subroutine f should not alter y(1),...,y(neq).
+c          f must be declared external in the calling program.
+c
+c          subroutine f may access user-defined quantities in
+c          neq(2),... and/or in y(neq(1)+1),... if neq is an array
+c          (dimensioned in f) and/or y has length exceeding neq(1).
+c          see the descriptions of neq and y below.
+c
+c          if quantities computed in the f routine are needed
+c          externally to lsodes, an extra CALL to f should be made
+c          for this purpose, for consistent and accurate results.
+c          if only the derivative dy/dt is needed, use intdy instead.
+c
+c neq    = the size of the ode system (number of first order
+c          ordinary differential equations).  used only for input.
+c          neq may be decreased, but not increased, during the problem.
+c          if neq is decreased (with istate = 3 on input), the
+c          remaining components of y should be left undisturbed, if
+c          these are to be accessed in f and/or jac.
+c
+c          normally, neq is a scalar, and it is generally referred to
+c          as a scalar in this user interface description.  however,
+c          neq may be an array, with neq(1) set to the system size.
+c          (the lsodes package accesses only neq(1).)  in either case,
+c          this parameter is passed as the neq argument in all calls
+c          to f and jac.  hence, if it is an array, locations
+c          neq(2),... may be used to store other integer data and pass
+c          it to f and/or jac.  subroutines f and/or jac must include
+c          neq in a dimension statement in that case.
+c
+c y      = a real array for the vector of dependent variables, of
+c          length neq or more.  used for both input and output on the
+c          first CALL (istate = 1), and only for output on other calls.
+c          on the first call, y must contain the vector of initial
+c          values.  on output, y contains the computed solution vector,
+c          evaluated at t.  if desired, the y array may be used
+c          for other purposes between calls to the solver.
+c
+c          this array is passed as the y argument in all calls to
+c          f and jac.  hence its length may exceed neq, and locations
+c          y(neq+1),... may be used to store other real data and
+c          pass it to f and/or jac.  (the lsodes package accesses only
+c          y(1),...,y(neq).)
+c
+c t      = the independent variable.  on input, t is used only on the
+c          first call, as the initial point of the integration.
+c          on output, after each call, t is the value at which a
+c          computed solution y is evaluated (usually the same as tout).
+c          on an error return, t is the farthest point reached.
+c
+c tout   = the next value of t at which a computed solution is desired.
+c          used only for input.
+c
+c          when starting the problem (istate = 1), tout may be equal
+c          to t for one call, then should .ne. t for the next call.
+c          for the initial t, an input value of tout .ne. t is used
+c          in order to determine the direction of the integration
+c          (i.e. the algebraic sign of the step sizes) and the rough
+c          scale of the problem.  integration in either direction
+c          (forward or backward in t) is permitted.
+c
+c          if itask = 2 or 5 (one-step modes), tout is ignored after
+c          the first CALL (i.e. the first CALL with tout .ne. t).
+c          otherwise, tout is required on every call.
+c
+c          if itask = 1, 3, or 4, the values of tout need not be
+c          monotone, but a value of tout which backs up is limited
+c          to the current internal t interval, whose endpoints are
+c          tcur - hu and tcur (see optional outputs, below, for
+c          tcur and hu).
+c
+c itol   = an indicator for the type of error control.  see
+c          description below under AbsTol.  used only for input.
+c
+c RelTol   = a relative error tolerance parameter, either a scalar or
+c          an array of length neq.  see description below under AbsTol.
+c          input only.
+c
+c AbsTol   = an absolute error tolerance parameter, either a scalar or
+c          an array of length neq.  input only.
+c
+c             the input parameters itol, RelTol, and AbsTol determine
+c          the error control performed by the solver.  the solver will
+c          control the vector e = (e(i)) of estimated local errors
+c          in y, according to an inequality of the form
+c                      rms-norm of ( e(i)/ewt(i) )   .le.   1,
+c          where       ewt(i) = RelTol(i)*abs(y(i)) + AbsTol(i),
+c          and the rms-norm (root-mean-square norm) here is
+c          rms-norm(v) = sqrt(sum v(i)**2 / neq).  here ewt = (ewt(i))
+c          is a vector of weights which must always be positive, and
+c          the values of RelTol and AbsTol should all be non-negative.
+c          the following table gives the types (scalar/array) of
+c          RelTol and AbsTol, and the corresponding form of ewt(i).
+c
+c             itol    RelTol       AbsTol          ewt(i)
+c              1     scalar     scalar     RelTol*abs(y(i)) + AbsTol
+c              2     scalar     array      RelTol*abs(y(i)) + AbsTol(i)
+c              3     array      scalar     RelTol(i)*abs(y(i)) + AbsTol
+c              4     array      array      RelTol(i)*abs(y(i)) + AbsTol(i)
+c
+c          when either of these parameters is a scalar, it need not
+c          be dimensioned in the user-s calling program.
+c
+c          if none of the above choices (with itol, RelTol, and AbsTol
+c          fixed throughout the problem) is suitable, more general
+c          error controls can be obtained by substituting
+c          user-supplied routines for the setting of ewt and/or for
+c          the norm calculation.  see part iv below.
+c
+c          if global errors are to be estimated by making a repeated
+c          run on the same problem with smaller tolerances, then all
+c          components of RelTol and AbsTol (i.e. of ewt) should be scaled
+c          down uniformly.
+c
+c itask  = an index specifying the task to be performed.
+c          input only.  itask has the following values and meanings.
+c          1  means normal computation of output values of y(t) at
+c             t = tout (by overshooting and interpolating).
+c          2  means take one step only and return.
+c          3  means stop at the first internal mesh point at or
+c             beyond t = tout and return.
+c          4  means normal computation of output values of y(t) at
+c             t = tout but without overshooting t = tcrit.
+c             tcrit must be input as rwork(1).  tcrit may be equal to
+c             or beyond tout, but not behind it in the direction of
+c             integration.  this option is useful if the problem
+c             has a singularity at or beyond t = tcrit.
+c          5  means take one step, without passing tcrit, and return.
+c             tcrit must be input as rwork(1).
+c
+c          note..  if itask = 4 or 5 and the solver reaches tcrit
+c          (within roundoff), it will return t = tcrit (exactly) to
+c          indicate this (unless itask = 4 and tout comes before tcrit,
+c          in which case answers at t = tout are returned first).
+c
+c istate = an index used for input and output to specify the
+c          the state of the calculation.
+c
+c          on input, the values of istate are as follows.
+c          1  means this is the first CALL for the problem
+c             (initializations will be done).  see note below.
+c          2  means this is not the first call, and the calculation
+c             is to continue normally, with no change in any input
+c             parameters except possibly tout and itask.
+c             (if itol, RelTol, and/or AbsTol are changed between calls
+c             with istate = 2, the new values will be used but not
+c             tested for legality.)
+c          3  means this is not the first call, and the
+c             calculation is to continue normally, but with
+c             a change in input parameters other than
+c             tout and itask.  changes are allowed in
+c             neq, itol, RelTol, AbsTol, iopt, lrw, liw, mf,
+c             the conditional inputs ia and ja,
+c             and any of the optional inputs except h0.
+c             in particular, if miter = 1 or 2, a CALL with istate = 3
+c             will cause the sparsity structure of the problem to be
+c             recomputed (or reread from ia and ja if moss = 0).
+c          note..  a preliminary CALL with tout = t is not counted
+c          as a first CALL here, as no initialization or checking of
+c          input is done.  (such a CALL is sometimes useful for the
+c          purpose of outputting the initial conditions.)
+c          thus the first CALL for which tout .ne. t requires
+c          istate = 1 on input.
+c
+c          on output, istate has the following values and meanings.
+c           1  means nothing was done, as tout was equal to t with
+c              istate = 1 on input.  (however, an internal counter was
+c              set to detect and prevent repeated calls of this type.)
+c           2  means the integration was performed successfully.
+c          -1  means an excessive amount of work (more than mxstep
+c              steps) was done on this call, before completing the
+c              requested task, but the integration was otherwise
+c              successful as far as t.  (mxstep is an optional input
+c              and is normally 500.)  to continue, the user may
+c              simply reset istate to a value .gt. 1 and CALL again
+c              (the excess work step counter will be reset to 0).
+c              in addition, the user may increase mxstep to avoid
+c              this error return (see below on optional inputs).
+c          -2  means too much accuracy was requested for the precision
+c              of the machine being used.  this was detected before
+c              completing the requested task, but the integration
+c              was successful as far as t.  to continue, the tolerance
+c              parameters must be reset, and istate must be set
+c              to 3.  the optional output tolsf may be used for this
+c              purpose.  (note.. if this condition is detected before
+c              taking any steps, then an illegal input return
+c              (istate = -3) occurs instead.)
+c          -3  means illegal input was detected, before taking any
+c              integration steps.  see written message for details.
+c              note..  if the solver detects an infinite loop of calls
+c              to the solver with illegal input, it will cause
+c              the run to stop.
+c          -4  means there were repeated error test failures on
+c              one attempted step, before completing the requested
+c              task, but the integration was successful as far as t.
+c              the problem may have a singularity, or the input
+c              may be inappropriate.
+c          -5  means there were repeated convergence test failures on
+c              one attempted step, before completing the requested
+c              task, but the integration was successful as far as t.
+c              this may be caused by an inaccurate jacobian matrix,
+c              if one is being used.
+c          -6  means ewt(i) became zero for some i during the
+c              integration.  pure relative error control (AbsTol(i)=0.0)
+c              was requested on a variable which has now vanished.
+c              the integration was successful as far as t.
+c          -7  means a fatal error return flag came from the sparse
+c              solver cdrv by way of prjs or slss (numerical
+c              factorization or backsolve).  this should never happen.
+c              the integration was successful as far as t.
+c
+c          note.. an error return with istate = -1, -4, or -5 and with
+c          miter = 1 or 2 may mean that the sparsity structure of the
+c          problem has changed significantly since it was last
+c          determined (or input).  in that case, one can attempt to
+c          complete the integration by setting istate = 3 on the next
+c          call, so that a new structure determination is done.
+c
+c          note..  since the normal output value of istate is 2,
+c          it does not need to be reset for normal continuation.
+c          also, since a negative input value of istate will be
+c          regarded as illegal, a negative output value requires the
+c          user to change it, and possibly other inputs, before
+c          calling the solver again.
+c
+c iopt   = an integer flag to specify whether or not any optional
+c          inputs are being used on this call.  input only.
+c          the optional inputs are listed separately below.
+c          iopt = 0 means no optional inputs are being used.
+c                   default values will be used in all cases.
+c          iopt = 1 means one or more optional inputs are being used.
+c
+c rwork  = a work array used for a mixture of real (KPP_REAL)
+c          and integer work space.
+c          the length of rwork (in real words) must be at least
+c             20 + nyh*(maxord + 1) + 3*neq + lwm    where
+c          nyh    = the initial value of neq,
+c          maxord = 12 (if meth = 1) or 5 (if meth = 2) (unless a
+c                   smaller value is given as an optional input),
+c          lwm = 0                                    if miter = 0,
+c          lwm = 2*nnz + 2*neq + (nnz+9*neq)/lenrat   if miter = 1,
+c          lwm = 2*nnz + 2*neq + (nnz+10*neq)/lenrat  if miter = 2,
+c          lwm = neq + 2                              if miter = 3.
+c          in the above formulas,
+c          nnz    = number of nonzero elements in the jacobian matrix.
+c          lenrat = the real to integer wordlength ratio (usually 1 in
+c                   single precision and 2 in KPP_REAL).
+c          (see the mf description for meth and miter.)
+c          thus if maxord has its default value and neq is constant,
+c          the minimum length of rwork is..
+c             20 + 16*neq        for mf = 10,
+c             20 + 16*neq + lwm  for mf = 11, 111, 211, 12, 112, 212,
+c             22 + 17*neq        for mf = 13,
+c             20 +  9*neq        for mf = 20,
+c             20 +  9*neq + lwm  for mf = 21, 121, 221, 22, 122, 222,
+c             22 + 10*neq        for mf = 23.
+c          if miter = 1 or 2, the above formula for lwm is only a
+c          crude lower bound.  the required length of rwork cannot
+c          be readily predicted in general, as it depends on the
+c          sparsity structure of the problem.  some experimentation
+c          may be necessary.
+c
+c          the first 20 words of rwork are reserved for conditional
+c          and optional inputs and optional outputs.
+c
+c          the following word in rwork is a conditional input..
+c            rwork(1) = tcrit = critical value of t which the solver
+c                       is not to overshoot.  required if itask is
+c                       4 or 5, and ignored otherwise.  (see itask.)
+c
+c lrw    = the length of the array rwork, as declared by the user.
+c          (this will be checked by the solver.)
+c
+c iwork  = an integer work array.  the length of iwork must be at least
+c             31 + neq + nnz   if moss = 0 and miter = 1 or 2, or
+c             30               otherwise.
+c          (nnz is the number of nonzero elements in df/dy.)
+c
+c          in lsodes, iwork is used only for conditional and
+c          optional inputs and optional outputs.
+c
+c          the following two blocks of words in iwork are conditional
+c          inputs, required if moss = 0 and miter = 1 or 2, but not
+c          otherwise (see the description of mf for moss).
+c            iwork(30+j) = ia(j)     (j=1,...,neq+1)
+c            iwork(31+neq+k) = ja(k) (k=1,...,nnz)
+c          the two arrays ia and ja describe the sparsity structure
+c          to be assumed for the jacobian matrix.  ja contains the row
+c          indices where nonzero elements occur, reading in columnwise
+c          order, and ia contains the starting locations in ja of the
+c          descriptions of columns 1,...,neq, in that order, with
+c          ia(1) = 1.  thus, for each column index j = 1,...,neq, the
+c          values of the row index i in column j where a nonzero
+c          element may occur are given by
+c            i = ja(k),  where   ia(j) .le. k .lt. ia(j+1).
+c          if nnz is the total number of nonzero locations assumed,
+c          then the length of the ja array is nnz, and ia(neq+1) must
+c          be nnz + 1.  duplicate entries are not allowed.
+c
+c liw    = the length of the array iwork, as declared by the user.
+c          (this will be checked by the solver.)
+c
+c note..  the work arrays must not be altered between calls to lsodes
+c for the same problem, except possibly for the conditional and
+c optional inputs, and except for the last 3*neq words of rwork.
+c the latter space is used for internal scratch space, and so is
+c available for use by the user outside lsodes between calls, if
+c desired (but not for use by f or jac).
+c
+c jac    = name of user-supplied routine (miter = 1 or moss = 1) to
+c          compute the jacobian matrix, df/dy, as a function of
+c          the scalar t and the vector y.  it is to have the form
+c               subroutine jac (neq, t, y, j, ian, jan, pdj)
+c               dimension y(1), ian(1), jan(1), pdj(1)
+c          where neq, t, y, j, ian, and jan are input, and the array
+c          pdj, of length neq, is to be loaded with column j
+c          of the jacobian on output.  thus df(i)/dy(j) is to be
+c          loaded into pdj(i) for all relevant values of i.
+c          here t and y have the same meaning as in subroutine f,
+c          and j is a column index (1 to neq).  ian and jan are
+c          undefined in calls to jac for structure determination
+c          (moss = 1).  otherwise, ian and jan are structure
+c          descriptors, as defined under optional outputs below, and
+c          so can be used to determine the relevant row indices i, if
+c          desired.  (in the dimension statement above, 1 is a
+c          dummy dimension.. it can be replaced by any value.)
+c               jac need not provide df/dy exactly.  a crude
+c          approximation (possibly with greater sparsity) will do.
+c               in any case, pdj is preset to zero by the solver,
+c          so that only the nonzero elements need be loaded by jac.
+c          calls to jac are made with j = 1,...,neq, in that order, and
+c          each such set of calls is preceded by a CALL to f with the
+c          same arguments neq, t, and y.  thus to gain some efficiency,
+c          intermediate quantities shared by both calculations may be
+c          saved in a user common block by f and not recomputed by jac,
+c          if desired.  jac must not alter its input arguments.
+c          jac must be declared external in the calling program.
+c               subroutine jac may access user-defined quantities in
+c          neq(2),... and y(neq(1)+1),... if neq is an array
+c          (dimensioned in jac) and y has length exceeding neq(1).
+c          see the descriptions of neq and y above.
+c
+c mf     = the method flag.  used only for input.
+c          mf has three decimal digits-- moss, meth, miter--
+c             mf = 100*moss + 10*meth + miter.
+c          moss indicates the method to be used to obtain the sparsity
+c          structure of the jacobian matrix if miter = 1 or 2..
+c            moss = 0 means the user has supplied ia and ja
+c                     (see descriptions under iwork above).
+c            moss = 1 means the user has supplied jac (see below)
+c                     and the structure will be obtained from neq
+c                     initial calls to jac.
+c            moss = 2 means the structure will be obtained from neq+1
+c                     initial calls to f.
+c          meth indicates the basic linear multistep method..
+c            meth = 1 means the implicit adams method.
+c            meth = 2 means the method based on backward
+c                     differentiation formulas (bdf-s).
+c          miter indicates the corrector iteration method..
+c            miter = 0 means functional iteration (no jacobian matrix
+c                      is involved).
+c            miter = 1 means chord iteration with a user-supplied
+c                      sparse jacobian, given by subroutine jac.
+c            miter = 2 means chord iteration with an internally
+c                      generated (difference quotient) sparse jacobian
+c                      (using ngp extra calls to f per df/dy value,
+c                      where ngp is an optional output described below.)
+c            miter = 3 means chord iteration with an internally
+c                      generated diagonal jacobian approximation.
+c                      (using 1 extra CALL to f per df/dy evaluation).
+c          if miter = 1 or moss = 1, the user must supply a subroutine
+c          jac (the name is arbitrary) as described above under jac.
+c          otherwise, a dummy argument can be used.
+c
+c          the standard choices for mf are..
+c            mf = 10  for a nonstiff problem,
+c            mf = 21 or 22 for a stiff problem with ia/ja supplied
+c                     (21 if jac is supplied, 22 if not),
+c            mf = 121 for a stiff problem with jac supplied,
+c                     but not ia/ja,
+c            mf = 222 for a stiff problem with neither ia/ja nor
+c                     jac supplied.
+c          the sparseness structure can be changed during the
+c          problem by making a CALL to lsodes with istate = 3.
+c-----------------------------------------------------------------------
+c optional inputs.
+c
+c the following is a list of the optional inputs provided for in the
+c CALL sequence.  (see also part ii.)  for each such input variable,
+c this table lists its name as used in this documentation, its
+c location in the CALL sequence, its meaning, and the default value.
+c the use of any of these inputs requires iopt = 1, and in that
+c case all of these inputs are examined.  a value of zero for any
+c of these optional inputs will cause the default value to be used.
+c thus to use a subset of the optional inputs, simply preload
+c locations 5 to 10 in rwork and iwork to 0.0 and 0 respectively, and
+c then set those of interest to nonzero values.
+c
+c name    location      meaning and default value
+c
+c h0      rwork(5)  the step size to be attempted on the first step.
+c                   the default value is determined by the solver.
+c
+c hmax    rwork(6)  the maximum absolute step size allowed.
+c                   the default value is infinite.
+c
+c hmin    rwork(7)  the minimum absolute step size allowed.
+c                   the default value is 0.  (this lower bound is not
+c                   enforced on the final step before reaching tcrit
+c                   when itask = 4 or 5.)
+c
+c seth    rwork(8)  the element threshhold for sparsity determination
+c                   when moss = 1 or 2.  if the absolute value of
+c                   an estimated jacobian element is .le. seth, it
+c                   will be assumed to be absent in the structure.
+c                   the default value of seth is 0.
+c
+c maxord  iwork(5)  the maximum order to be allowed.  the default
+c                   value is 12 if meth = 1, and 5 if meth = 2.
+c                   if maxord exceeds the default value, it will
+c                   be reduced to the default value.
+c                   if maxord is changed during the problem, it may
+c                   cause the current order to be reduced.
+c
+c mxstep  iwork(6)  maximum number of (internally defined) steps
+c                   allowed during one CALL to the solver.
+c                   the default value is 500.
+c
+c mxhnil  iwork(7)  maximum number of messages printed (per problem)
+c                   warning that t + h = t on a step (h = step size).
+c                   this must be positive to result in a non-default
+c                   value.  the default value is 10.
+c-----------------------------------------------------------------------
+c optional outputs.
+c
+c as optional additional output from lsodes, the variables listed
+c below are quantities related to the performance of lsodes
+c which are available to the user.  these are communicated by way of
+c the work arrays, but also have internal mnemonic names as shown.
+c except where stated otherwise, all of these outputs are defined
+c on any successful return from lsodes, and on any return with
+c istate = -1, -2, -4, -5, or -6.  on an illegal input return
+c (istate = -3), they will be unchanged from their existing values
+c (if any), except possibly for tolsf, lenrw, and leniw.
+c on any error return, outputs relevant to the error will be defined,
+c as noted below.
+c
+c name    location      meaning
+c
+c hu      rwork(11) the step size in t last used (successfully).
+c
+c hcur    rwork(12) the step size to be attempted on the next step.
+c
+c tcur    rwork(13) the current value of the independent variable
+c                   which the solver has actually reached, i.e. the
+c                   current internal mesh point in t.  on output, tcur
+c                   will always be at least as far as the argument
+c                   t, but may be farther (if interpolation was done).
+c
+c tolsf   rwork(14) a tolerance scale factor, greater than 1.0,
+c                   computed when a request for too much accuracy was
+c                   detected (istate = -3 if detected at the start of
+c                   the problem, istate = -2 otherwise).  if itol is
+c                   left unaltered but RelTol and AbsTol are uniformly
+c                   scaled up by a factor of tolsf for the next call,
+c                   then the solver is deemed likely to succeed.
+c                   (the user may also ignore tolsf and alter the
+c                   tolerance parameters in any other way appropriate.)
+c
+c nst     iwork(11) the number of steps taken for the problem so far.
+c
+c nfe     iwork(12) the number of f evaluations for the problem so far,
+c                   excluding those for structure determination
+c                   (moss = 2).
+c
+c nje     iwork(13) the number of jacobian evaluations for the problem
+c                   so far, excluding those for structure determination
+c                   (moss = 1).
+c
+c nqu     iwork(14) the method order last used (successfully).
+c
+c nqcur   iwork(15) the order to be attempted on the next step.
+c
+c imxer   iwork(16) the index of the component of largest magnitude in
+c                   the weighted local error vector ( e(i)/ewt(i) ),
+c                   on an error return with istate = -4 or -5.
+c
+c lenrw   iwork(17) the length of rwork actually required.
+c                   this is defined on normal returns and on an illegal
+c                   input return for insufficient storage.
+c
+c leniw   iwork(18) the length of iwork actually required.
+c                   this is defined on normal returns and on an illegal
+c                   input return for insufficient storage.
+c
+c nnz     iwork(19) the number of nonzero elements in the jacobian
+c                   matrix, including the diagonal (miter = 1 or 2).
+c                   (this may differ from that given by ia(neq+1)-1
+c                   if moss = 0, because of added diagonal entries.)
+c
+c ngp     iwork(20) the number of groups of column indices, used in
+c                   difference quotient jacobian aproximations if
+c                   miter = 2.  this is also the number of extra f
+c                   evaluations needed for each jacobian evaluation.
+c
+c nlu     iwork(21) the number of sparse lu decompositions for the
+c                   problem so far.
+c
+c lyh     iwork(22) the base address in rwork of the history array yh,
+c                   described below in this list.
+c
+c ipian   iwork(23) the base address of the structure descriptor array
+c                   ian, described below in this list.
+c
+c ipjan   iwork(24) the base address of the structure descriptor array
+c                   jan, described below in this list.
+c
+c nzl     iwork(25) the number of nonzero elements in the strict lower
+c                   triangle of the lu factorization used in the chord
+c                   iteration (miter = 1 or 2).
+c
+c nzu     iwork(26) the number of nonzero elements in the strict upper
+c                   triangle of the lu factorization used in the chord
+c                   iteration (miter = 1 or 2).
+c                   the total number of nonzeros in the factorization
+c                   is therefore nzl + nzu + neq.
+c
+c the following four arrays are segments of the rwork array which
+c may also be of interest to the user as optional outputs.
+c for each array, the table below gives its internal name,
+c its base address, and its description.
+c for yh and acor, the base addresses are in rwork (a real array).
+c the integer arrays ian and jan are to be obtained by declaring an
+c integer array iwk and identifying iwk(1) with rwork(21), using either
+c an equivalence statement or a subroutine call.  then the base
+c addresses ipian (of ian) and ipjan (of jan) in iwk are to be obtained
+c as optional outputs iwork(23) and iwork(24), respectively.
+c thus ian(1) is iwk(ipian), etc.
+c
+c name    base address      description
+c
+c ian    ipian (in iwk)  structure descriptor array of size neq + 1.
+c jan    ipjan (in iwk)  structure descriptor array of size nnz.
+c         (see above)    ian and jan together describe the sparsity
+c                        structure of the jacobian matrix, as used by
+c                        lsodes when miter = 1 or 2.
+c                        jan contains the row indices of the nonzero
+c                        locations, reading in columnwise order, and
+c                        ian contains the starting locations in jan of
+c                        the descriptions of columns 1,...,neq, in
+c                        that order, with ian(1) = 1.  thus for each
+c                        j = 1,...,neq, the row indices i of the
+c                        nonzero locations in column j are
+c                        i = jan(k),  ian(j) .le. k .lt. ian(j+1).
+c                        note that ian(neq+1) = nnz + 1.
+c                        (if moss = 0, ian/jan may differ from the
+c                        input ia/ja because of a different ordering
+c                        in each column, and added diagonal entries.)
+c
+c yh      lyh            the nordsieck history array, of size nyh by
+c          (optional     (nqcur + 1), where nyh is the initial value
+c          output)       of neq.  for j = 0,1,...,nqcur, column j+1
+c                        of yh contains hcur**j/factorial(j) times
+c                        the j-th derivative of the interpolating
+c                        polynomial currently representing the solution,
+c                        evaluated at t = tcur.  the base address lyh
+c                        is another optional output, listed above.
+c
+c acor     lenrw-neq+1   array of size neq used for the accumulated
+c                        corrections on each step, scaled on output
+c                        to represent the estimated local error in y
+c                        on the last step.  this is the vector e in
+c                        the description of the error control.  it is
+c                        defined only on a successful return from
+c                        lsodes.
+c
+c-----------------------------------------------------------------------
+c part ii.  other routines callable.
+c
+c the following are optional calls which the user may make to
+c gain additional capabilities in conjunction with lsodes.
+c (the routines xsetun and xsetf are designed to conform to the
+c slatec error handling package.)
+c
+c     form of CALL                  function
+c   CALL xsetun(lun)          set the logical unit number, lun, for
+c                             output of messages from lsodes, if
+c                             the default is not desired.
+c                             the default value of lun is 6.
+c
+c   CALL xsetf(mflag)         set a flag to control the printing of
+c                             messages by lsodes.
+c                             mflag = 0 means do not print. (danger..
+c                             this risks losing valuable information.)
+c                             mflag = 1 means print (the default).
+c
+c                             either of the above calls may be made at
+c                             any time and will take effect immediately.
+c
+c   CALL srcms(rsav,isav,job) saves and restores the contents of
+c                             the internal common blocks used by
+c                             lsodes (see part iii below).
+c                             rsav must be a real array of length 224
+c                             or more, and isav must be an integer
+c                             array of length 75 or more.
+c                             job=1 means save common into rsav/isav.
+c                             job=2 means restore common from rsav/isav.
+c                                srcms is useful if one is
+c                             interrupting a run and restarting
+c                             later, or alternating between two or
+c                             more problems solved with lsodes.
+c
+c   CALL intdy(,,,,,)         provide derivatives of y, of various
+c        (see below)          orders, at a specified point t, if
+c                             desired.  it may be called only after
+c                             a successful return from lsodes.
+c
+c the detailed instructions for using intdy are as follows.
+c the form of the CALL is..
+c
+c   lyh = iwork(22)
+c   CALL intdy (t, k, rwork(lyh), nyh, dky, iflag)
+c
+c the input parameters are..
+c
+c t         = value of independent variable where answers are desired
+c             (normally the same as the t last returned by lsodes).
+c             for valid results, t must lie between tcur - hu and tcur.
+c             (see optional outputs for tcur and hu.)
+c k         = integer order of the derivative desired.  k must satisfy
+c             0 .le. k .le. nqcur, where nqcur is the current order
+c             (see optional outputs).  the capability corresponding
+c             to k = 0, i.e. computing y(t), is already provided
+c             by lsodes directly.  since nqcur .ge. 1, the first
+c             derivative dy/dt is always available with intdy.
+c lyh       = the base address of the history array yh, obtained
+c             as an optional output as shown above.
+c nyh       = column length of yh, equal to the initial value of neq.
+c
+c the output parameters are..
+c
+c dky       = a real array of length neq containing the computed value
+c             of the k-th derivative of y(t).
+c iflag     = integer flag, returned as 0 if k and t were legal,
+c             -1 if k was illegal, and -2 if t was illegal.
+c             on an error return, a message is also written.
+c-----------------------------------------------------------------------
+c part iii.  common blocks.
+c
+c if lsodes is to be used in an overlay situation, the user
+c must declare, in the primary overlay, the variables in..
+c   (1) the CALL sequence to lsodes,
+c   (2) the three internal common blocks
+c         /ls0001/  of length  257  (218 KPP_REAL words
+c                         followed by 39 integer words),
+c         /lss001/  of length  40    ( 6 KPP_REAL words
+c                         followed by 34 integer words),
+c         /eh0001/  of length  2 (integer words).
+c
+c if lsodes is used on a system in which the contents of internal
+c common blocks are not preserved between calls, the user should
+c declare the above three common blocks in his main program to insure
+c that their contents are preserved.
+c
+c if the solution of a given problem by lsodes is to be interrupted
+c and then later continued, such as when restarting an interrupted run
+c or alternating between two or more problems, the user should save,
+c following the return from the last lsodes CALL prior to the
+c interruption, the contents of the CALL sequence variables and the
+c internal common blocks, and later restore these values before the
+c next lsodes CALL for that problem.  to save and restore the common
+c blocks, use subroutine srcms (see part ii above).
+c
+c-----------------------------------------------------------------------
+c part iv.  optionally replaceable solver routines.
+c
+c below are descriptions of two routines in the lsodes package which
+c relate to the measurement of errors.  either routine can be
+c replaced by a user-supplied version, if desired.  however, since such
+c a replacement may have a major impact on performance, it should be
+c done only when absolutely necessary, and only with great caution.
+c (note.. the means by which the package version of a routine is
+c superseded by the user-s version may be system-dependent.)
+c
+c (a) ewset.
+c the following subroutine is called just before each internal
+c integration step, and sets the array of error weights, ewt, as
+c described under itol/RelTol/AbsTol above..
+c     subroutine ewset (neq, itol, RelTol, AbsTol, ycur, ewt)
+c where neq, itol, RelTol, and AbsTol are as in the lsodes CALL sequence,
+c ycur contains the current dependent variable vector, and
+c ewt is the array of weights set by ewset.
+c
+c if the user supplies this subroutine, it must return in ewt(i)
+c (i = 1,...,neq) a positive quantity suitable for comparing errors
+c in y(i) to.  the ewt array returned by ewset is passed to the
+c vnorm routine (see below), and also used by lsodes in the computation
+c of the optional output imxer, the diagonal jacobian approximation,
+c and the increments for difference quotient jacobians.
+c
+c in the user-supplied version of ewset, it may be desirable to use
+c the current values of derivatives of y.  derivatives up to order nq
+c are available from the history array yh, described above under
+c optional outputs.  in ewset, yh is identical to the ycur array,
+c extended to nq + 1 columns with a column length of nyh and scale
+c factors of h**j/factorial(j).  on the first CALL for the problem,
+c given by nst = 0, nq is 1 and h is temporarily set to 1.0.
+c the quantities nq, nyh, h, and nst can be obtained by including
+c in ewset the statements..
+c     KPP_REAL h, rls
+c     common /ls0001/ rls(218),ils(39)
+c     nq = ils(35)
+c     nyh = ils(14)
+c     nst = ils(36)
+c     h = rls(212)
+c thus, for example, the current value of dy/dt can be obtained as
+c ycur(nyh+i)/h  (i=1,...,neq)  (and the division by h is
+c unnecessary when nst = 0).
+c
+c (b) vnorm.
+c the following is a real function routine which computes the weighted
+c root-mean-square norm of a vector v..
+c     d = vnorm (n, v, w)
+c where..
+c   n = the length of the vector,
+c   v = real array of length n containing the vector,
+c   w = real array of length n containing weights,
+c   d = sqrt( (1/n) * sum(v(i)*w(i))**2 ).
+c vnorm is called with n = neq and with w(i) = 1.0/ewt(i), where
+c ewt is as set by subroutine ewset.
+c
+c if the user supplies this function, it should return a non-negative
+c value of vnorm suitable for use in the error control in lsodes.
+c none of the arguments should be altered by vnorm.
+c for example, a user-supplied vnorm routine might..
+c   -substitute a max-norm of (v(i)*w(i)) for the rms-norm, or
+c   -ignore some components of v in the norm, with the effect of
+c    suppressing the error control on those components of y.
+c-----------------------------------------------------------------------
+c-----------------------------------------------------------------------
+c other routines in the lsodes package.
+c
+c in addition to subroutine lsodes, the lsodes package includes the
+c following subroutines and function routines..
+c  iprep    acts as an iterface between lsodes and prep, and also does
+c           adjusting of work space pointers and work arrays.
+c  prep     is called by iprep to compute sparsity and do sparse matrix
+c           preprocessing if miter = 1 or 2.
+c  jgroup   is called by prep to compute groups of jacobian column
+c           indices for use when miter = 2.
+c  adjlr    adjusts the length of required sparse matrix work space.
+c           it is called by prep.
+c  cntnzu   is called by prep and counts the nonzero elements in the
+c           strict upper triangle of j + j-transpose, where j = df/dy.
+c  intdy    computes an interpolated value of the y vector at t = tout.
+c  stode    is the core integrator, which does one step of the
+c           integration and the associated error control.
+c  cfode    sets all method coefficients and test constants.
+c  prjs     computes and preprocesses the jacobian matrix j = df/dy
+c           and the newton iteration matrix p = i - h*l0*j.
+c  slss     manages solution of linear system in chord iteration.
+c  ewset    sets the error weight vector ewt before each step.
+c  vnorm    computes the weighted r.m.s. norm of a vector.
+c  srcms    is a user-callable routine to save and restore
+c           the contents of the internal common blocks.
+c  odrv     constructs a reordering of the rows and columns of
+c           a matrix by the minimum degree algorithm.  odrv is a
+c           driver routine which calls subroutines md, mdi, mdm,
+c           mdp, mdu, and sro.  see ref. 2 for details.  (the odrv
+c           module has been modified since ref. 2, however.)
+c  cdrv     performs reordering, symbolic factorization, numerical
+c           factorization, or linear system solution operations,
+c           depending on a path argument ipath.  cdrv is a
+c           driver routine which calls subroutines nroc, nsfc,
+c           nnfc, nnsc, and nntc.  see ref. 3 for details.
+c           lsodes uses cdrv to solve linear systems in which the
+c           coefficient matrix is  p = i - con*j, where i is the
+c           identity, con is a scalar, and j is an approximation to
+c           the jacobian df/dy.  because cdrv deals with rowwise
+c           sparsity descriptions, cdrv works with p-transpose, not p.
+c  d1mach   computes the unit roundoff in a machine-independent manner.
+c  xerrwv, xsetun, and xsetf   handle the printing of all error
+c           messages and warnings.  xerrwv is machine-dependent.
+c note..  vnorm and d1mach are function routines.
+c all the others are subroutines.
+c
+c the intrinsic and external routines used by lsodes are..
+c dabs, DMAX1, dmin1, dfloat, max0, min0, mod, DSIGN, DSQRT, and write.
+c
+c a block data subprogram is also included with the package,
+c for loading some of the variables in internal common.
+c
+c-----------------------------------------------------------------------
+c the following card is for optimized compilation on lll compilers.
+clll. optimize
+c-----------------------------------------------------------------------
+      external prjs, slss
+      integer illin, init, lyh, lewt, lacor, lsavf, lwm, liwm,
+     1   mxstep, mxhnil, nhnil, ntrep, nslast, nyh, iowns
+      integer icf, ierpj, iersl, jcur, jstart, kflag, l, meth, miter,
+     1   maxord, maxcor, msbp, mxncf, n, nq, nst, nfe, nje, nqu
+      integer iplost, iesp, istatc, iys, iba, ibian, ibjan, ibjgp,
+     1   ipian, ipjan, ipjgp, ipigp, ipr, ipc, ipic, ipisp, iprsp, ipa,
+     2   lenyh, lenyhm, lenwk, lreq, lrat, lrest, lwmin, moss, msbj,
+     3   nslj, ngp, nlu, nnz, nsp, nzl, nzu
+      integer i, i1, i2, iflag, imax, imul, imxer, ipflag, ipgo, irem,
+     1   j, kgo, lenrat, lenyht, leniw, lenrw, lf0, lia, lja,
+     2   lrtem, lwtem, lyhd, lyhn, mf1, mord, mxhnl0, mxstp0, ncolm
+      KPP_REAL rowns,
+     1   ccmax, el0, h, hmin, hmxi, hu, rc, tn, uround
+      KPP_REAL con0, conmin, ccmxj, psmall, rbig, seth
+      KPP_REAL AbsToli, ayi, big, ewti, h0, hmax, hmx, rh, RelToli,
+     1   tcrit, tdist, tnext, tol, tolsf, tp, size, sum, w0,
+     2   d1mach, vnorm
+      dimension mord(2)
+      logical ihit
+c-----------------------------------------------------------------------
+c the following two internal common blocks contain
+c (a) variables which are local to any subroutine but whose values must
+c     be preserved between calls to the routine (own variables), and
+c (b) variables which are communicated between subroutines.
+c the structure of each block is as follows..  all real variables are
+c listed first, followed by all integers.  within each type, the
+c variables are grouped with those local to subroutine lsodes first,
+c then those local to subroutine stode or subroutine prjs
+c (no other routines have own variables), and finally those used
+c for communication.  the block ls0001 is declared in subroutines
+c lsodes, iprep, prep, intdy, stode, prjs, and slss.  the block lss001
+c is declared in subroutines lsodes, iprep, prep, prjs, and slss.
+c groups of variables are replaced by dummy arrays in the common
+c declarations in routines where those variables are not used.
+c-----------------------------------------------------------------------
+      common /ls0001/ rowns(209),
+     1   ccmax, el0, h, hmin, hmxi, hu, rc, tn, uround,
+     2   illin, init, lyh, lewt, lacor, lsavf, lwm, liwm,
+     3   mxstep, mxhnil, nhnil, ntrep, nslast, nyh, iowns(6),
+     4   icf, ierpj, iersl, jcur, jstart, kflag, l, meth, miter,
+     5   maxord, maxcor, msbp, mxncf, n, nq, nst, nfe, nje, nqu
+c
+      common /lss001/ con0, conmin, ccmxj, psmall, rbig, seth,
+     1   iplost, iesp, istatc, iys, iba, ibian, ibjan, ibjgp,
+     2   ipian, ipjan, ipjgp, ipigp, ipr, ipc, ipic, ipisp, iprsp, ipa,
+     3   lenyh, lenyhm, lenwk, lreq, lrat, lrest, lwmin, moss, msbj,
+     4   nslj, ngp, nlu, nnz, nsp, nzl, nzu
+c
+      data mord(1),mord(2)/12,5/, mxstp0/500/, mxhnl0/10/
+c-----------------------------------------------------------------------
+c in the data statement below, set lenrat equal to the ratio of
+c the wordlength for a real number to that for an integer.  usually,
+c lenrat = 1 for single precision and 2 for KPP_REAL.  if the
+c true ratio is not an integer, use the next smaller integer (.ge. 1).
+c-----------------------------------------------------------------------
+      data lenrat/2/
+c-----------------------------------------------------------------------
+c block a.
+c this code block is executed on every call.
+c it tests istate and itask for legality and branches appropriately.
+c if istate .gt. 1 but the flag init shows that initialization has
+c not yet been done, an error return occurs.
+c if istate = 1 and tout = t, jump to block g and return immediately.
+c-----------------------------------------------------------------------
+      if (istate .lt. 1 .or. istate .gt. 3) go to 601
+      if (itask .lt. 1 .or. itask .gt. 5) go to 602
+      if (istate .eq. 1) go to 10
+      if (init .eq. 0) go to 603
+      if (istate .eq. 2) go to 200
+      go to 20
+ 10   init = 0
+      if (tout .eq. t) go to 430
+ 20   ntrep = 0
+c-----------------------------------------------------------------------
+c block b.
+c the next code block is executed for the initial CALL (istate = 1),
+c or for a continuation CALL with parameter changes (istate = 3).
+c it contains checking of all inputs and various initializations.
+c if istate = 1, the final setting of work space pointers, the matrix
+c preprocessing, and other initializations are done in block c.
+c
+c first check legality of the non-optional inputs neq, itol, iopt,
+c mf, ml, and mu.
+c-----------------------------------------------------------------------
+      if (neq(1) .le. 0) go to 604
+      if (istate .eq. 1) go to 25
+      if (neq(1) .gt. n) go to 605
+ 25   n = neq(1)
+      if (itol .lt. 1 .or. itol .gt. 4) go to 606
+      if (iopt .lt. 0 .or. iopt .gt. 1) go to 607
+      moss = mf/100
+      mf1 = mf - 100*moss
+      meth = mf1/10
+      miter = mf1 - 10*meth
+      if (moss .lt. 0 .or. moss .gt. 2) go to 608
+      if (meth .lt. 1 .or. meth .gt. 2) go to 608
+      if (miter .lt. 0 .or. miter .gt. 3) go to 608
+      if (miter .eq. 0 .or. miter .eq. 3) moss = 0
+c next process and check the optional inputs. --------------------------
+      if (iopt .eq. 1) go to 40
+      maxord = mord(meth)
+      mxstep = mxstp0
+      mxhnil = mxhnl0
+      if (istate .eq. 1) h0 = 0.0d0
+      hmxi = 0.0d0
+      hmin = 0.0d0
+      seth = 0.0d0
+      go to 60
+ 40   maxord = iwork(5)
+      if (maxord .lt. 0) go to 611
+      if (maxord .eq. 0) maxord = 100
+      maxord = min0(maxord,mord(meth))
+      mxstep = iwork(6)
+      if (mxstep .lt. 0) go to 612
+      if (mxstep .eq. 0) mxstep = mxstp0
+      mxhnil = iwork(7)
+      if (mxhnil .lt. 0) go to 613
+      if (mxhnil .eq. 0) mxhnil = mxhnl0
+      if (istate .ne. 1) go to 50
+      h0 = rwork(5)
+      if ((tout - t)*h0 .lt. 0.0d0) go to 614
+ 50   hmax = rwork(6)
+      if (hmax .lt. 0.0d0) go to 615
+      hmxi = 0.0d0
+      if (hmax .gt. 0.0d0) hmxi = 1.0d0/hmax
+      hmin = rwork(7)
+      if (hmin .lt. 0.0d0) go to 616
+      seth = rwork(8)
+      if (seth .lt. 0.0d0) go to 609
+c check RelTol and AbsTol for legality. ------------------------------------
+ 60   RelToli = RelTol(1)
+      AbsToli = AbsTol(1)
+      do 65 i = 1,n
+        if (itol .ge. 3) RelToli = RelTol(i)
+        if (itol .eq. 2 .or. itol .eq. 4) AbsToli = AbsTol(i)
+        if (RelToli .lt. 0.0d0) go to 619
+        if (AbsToli .lt. 0.0d0) go to 620
+ 65     continue
+c-----------------------------------------------------------------------
+c compute required work array lengths, as far as possible, and test
+c these against lrw and liw.  then set tentative pointers for work
+c arrays.  pointers to rwork/iwork segments are named by prefixing l to
+c the name of the segment.  e.g., the segment yh starts at rwork(lyh).
+c segments of rwork (in order) are denoted  wm, yh, savf, ewt, acor.
+c if miter = 1 or 2, the required length of the matrix work space wm
+c is not yet known, and so a crude minimum value is used for the
+c initial tests of lrw and liw, and yh is temporarily stored as far
+c to the right in rwork as possible, to leave the maximum amount
+c of space for wm for matrix preprocessing.  thus if miter = 1 or 2
+c and moss .ne. 2, some of the segments of rwork are temporarily
+c omitted, as they are not needed in the preprocessing.  these
+c omitted segments are.. acor if istate = 1, ewt and acor if istate = 3
+c and moss = 1, and savf, ewt, and acor if istate = 3 and moss = 0.
+c-----------------------------------------------------------------------
+      lrat = lenrat
+      if (istate .eq. 1) nyh = n
+      lwmin = 0
+      if (miter .eq. 1) lwmin = 4*n + 10*n/lrat
+      if (miter .eq. 2) lwmin = 4*n + 11*n/lrat
+      if (miter .eq. 3) lwmin = n + 2
+      lenyh = (maxord+1)*nyh
+      lrest = lenyh + 3*n
+      lenrw = 20 + lwmin + lrest
+      iwork(17) = lenrw
+      leniw = 30
+      if (moss .eq. 0 .and. miter .ne. 0 .and. miter .ne. 3)
+     1   leniw = leniw + n + 1
+      iwork(18) = leniw
+      if (lenrw .gt. lrw) go to 617
+      if (leniw .gt. liw) go to 618
+      lia = 31
+      if (moss .eq. 0 .and. miter .ne. 0 .and. miter .ne. 3)
+     1   leniw = leniw + iwork(lia+n) - 1
+      iwork(18) = leniw
+      if (leniw .gt. liw) go to 618
+      lja = lia + n + 1
+      lia = min0(lia,liw)
+      lja = min0(lja,liw)
+      lwm = 21
+      if (istate .eq. 1) nq = 1
+      ncolm = min0(nq+1,maxord+2)
+      lenyhm = ncolm*nyh
+      lenyht = lenyh
+      if (miter .eq. 1 .or. miter .eq. 2) lenyht = lenyhm
+      imul = 2
+      if (istate .eq. 3) imul = moss
+      if (moss .eq. 2) imul = 3
+      lrtem = lenyht + imul*n
+      lwtem = lwmin
+      if (miter .eq. 1 .or. miter .eq. 2) lwtem = lrw - 20 - lrtem
+      lenwk = lwtem
+      lyhn = lwm + lwtem
+      lsavf = lyhn + lenyht
+      lewt = lsavf + n
+      lacor = lewt + n
+      istatc = istate
+      if (istate .eq. 1) go to 100
+c-----------------------------------------------------------------------
+c istate = 3.  move yh to its new location.
+c note that only the part of yh needed for the next step, namely
+c min(nq+1,maxord+2) columns, is actually moved.
+c a temporary error weight array ewt is loaded if moss = 2.
+c sparse matrix processing is done in iprep/prep if miter = 1 or 2.
+c if maxord was reduced below nq, then the pointers are finally set
+c so that savf is identical to yh(*,maxord+2).
+c-----------------------------------------------------------------------
+      lyhd = lyh - lyhn
+      imax = lyhn - 1 + lenyhm
+c move yh.  branch for move right, no move, or move left. --------------
+      if (lyhd) 70,80,74
+ 70   do 72 i = lyhn,imax
+        j = imax + lyhn - i
+ 72     rwork(j) = rwork(j+lyhd)
+      go to 80
+ 74   do 76 i = lyhn,imax
+ 76     rwork(i) = rwork(i+lyhd)
+ 80   lyh = lyhn
+      iwork(22) = lyh
+      if (miter .eq. 0 .or. miter .eq. 3) go to 92
+      if (moss .ne. 2) go to 85
+c temporarily load ewt if miter = 1 or 2 and moss = 2. -----------------
+      CALL ewset (n, itol, RelTol, AbsTol, rwork(lyh), rwork(lewt))
+      do 82 i = 1,n
+        if (rwork(i+lewt-1) .le. 0.0d0) go to 621
+ 82     rwork(i+lewt-1) = 1.0d0/rwork(i+lewt-1)
+ 85   continue
+c iprep and prep do sparse matrix preprocessing if miter = 1 or 2. -----
+      lsavf = min0(lsavf,lrw)
+      lewt = min0(lewt,lrw)
+      lacor = min0(lacor,lrw)
+      CALL iprep (neq, y, rwork, iwork(lia), iwork(lja), ipflag, f, jac)
+      lenrw = lwm - 1 + lenwk + lrest
+      iwork(17) = lenrw
+      if (ipflag .ne. -1) iwork(23) = ipian
+      if (ipflag .ne. -1) iwork(24) = ipjan
+      ipgo = -ipflag + 1
+      go to (90, 628, 629, 630, 631, 632, 633), ipgo
+ 90   iwork(22) = lyh
+      if (lenrw .gt. lrw) go to 617
+c set flag to signal parameter changes to stode. -----------------------
+ 92   jstart = -1
+      if (n .eq. nyh) go to 200
+c neq was reduced.  zero part of yh to avoid undefined references. -----
+      i1 = lyh + l*nyh
+      i2 = lyh + (maxord + 1)*nyh - 1
+      if (i1 .gt. i2) go to 200
+      do 95 i = i1,i2
+ 95     rwork(i) = 0.0d0
+      go to 200
+c-----------------------------------------------------------------------
+c block c.
+c the next block is for the initial CALL only (istate = 1).
+c it contains all remaining initializations, the initial CALL to f,
+c the sparse matrix preprocessing (miter = 1 or 2), and the
+c calculation of the initial step size.
+c the error weights in ewt are inverted after being loaded.
+c-----------------------------------------------------------------------
+ 100  continue
+      lyh = lyhn
+      iwork(22) = lyh
+      tn = t
+      nst = 0
+      h = 1.0d0
+      nnz = 0
+      ngp = 0
+      nzl = 0
+      nzu = 0
+c load the initial value vector in yh. ---------------------------------
+      do 105 i = 1,n
+ 105    rwork(i+lyh-1) = y(i)
+c initial CALL to f.  (lf0 points to yh(*,2).) -------------------------
+      lf0 = lyh + nyh
+      CALL f (neq, t, y, rwork(lf0))
+      nfe = 1
+c load and invert the ewt array.  (h is temporarily set to 1.0.) -------
+      CALL ewset (n, itol, RelTol, AbsTol, rwork(lyh), rwork(lewt))
+      do 110 i = 1,n
+        if (rwork(i+lewt-1) .le. 0.0d0) go to 621
+ 110    rwork(i+lewt-1) = 1.0d0/rwork(i+lewt-1)
+      if (miter .eq. 0 .or. miter .eq. 3) go to 120
+c iprep and prep do sparse matrix preprocessing if miter = 1 or 2. -----
+      lacor = min0(lacor,lrw)
+      CALL iprep (neq, y, rwork, iwork(lia), iwork(lja), ipflag, f, jac)
+      lenrw = lwm - 1 + lenwk + lrest
+      iwork(17) = lenrw
+      if (ipflag .ne. -1) iwork(23) = ipian
+      if (ipflag .ne. -1) iwork(24) = ipjan
+      ipgo = -ipflag + 1
+      go to (115, 628, 629, 630, 631, 632, 633), ipgo
+ 115  iwork(22) = lyh
+      if (lenrw .gt. lrw) go to 617
+c check tcrit for legality (itask = 4 or 5). ---------------------------
+ 120  continue
+      if (itask .ne. 4 .and. itask .ne. 5) go to 125
+      tcrit = rwork(1)
+      if ((tcrit - tout)*(tout - t) .lt. 0.0d0) go to 625
+      if (h0 .ne. 0.0d0 .and. (t + h0 - tcrit)*h0 .gt. 0.0d0)
+     1   h0 = tcrit - t
+c initialize all remaining parameters. ---------------------------------
+ 125  uround = d1mach(4)
+      jstart = 0
+      if (miter .ne. 0) rwork(lwm) = DSQRT(uround)
+      msbj = 50
+      nslj = 0
+      ccmxj = 0.2d0
+      psmall = 1000.0d0*uround
+      rbig = 0.01d0/psmall
+      nhnil = 0
+      nje = 0
+      nlu = 0
+      nslast = 0
+      hu = 0.0d0
+      nqu = 0
+      ccmax = 0.3d0
+      maxcor = 3
+      msbp = 20
+      mxncf = 10
+c-----------------------------------------------------------------------
+c the coding below computes the step size, h0, to be attempted on the
+c first step, unless the user has supplied a value for this.
+c first check that tout - t differs significantly from zero.
+c a scalar tolerance quantity tol is computed, as max(RelTol(i))
+c if this is positive, or max(AbsTol(i)/abs(y(i))) otherwise, adjusted
+c so as to be between 100*uround and 1.0e-3.
+c then the computed value h0 is given by..
+c                                      neq
+c   h0**2 = tol / ( w0**-2 + (1/neq) * sum ( f(i)/ywt(i) )**2  )
+c                                       1
+c where   w0     = max ( abs(t), abs(tout) ),
+c         f(i)   = i-th component of initial value of f,
+c         ywt(i) = ewt(i)/tol  (a weight for y(i)).
+c the sign of h0 is inferred from the initial values of tout and t.
+c-----------------------------------------------------------------------
+      lf0 = lyh + nyh
+      if (h0 .ne. 0.0d0) go to 180
+      tdist = dabs(tout - t)
+      w0 = DMAX1(dabs(t),dabs(tout))
+      if (tdist .lt. 2.0d0*uround*w0) go to 622
+      tol = RelTol(1)
+      if (itol .le. 2) go to 140
+      do 130 i = 1,n
+ 130    tol = DMAX1(tol,RelTol(i))
+ 140  if (tol .gt. 0.0d0) go to 160
+      AbsToli = AbsTol(1)
+      do 150 i = 1,n
+        if (itol .eq. 2 .or. itol .eq. 4) AbsToli = AbsTol(i)
+        ayi = dabs(y(i))
+        if (ayi .ne. 0.0d0) tol = DMAX1(tol,AbsToli/ayi)
+ 150    continue
+ 160  tol = DMAX1(tol,100.0d0*uround)
+      tol = dmin1(tol,0.001d0)
+      sum = vnorm (n, rwork(lf0), rwork(lewt))
+      sum = 1.0d0/(tol*w0*w0) + tol*sum**2
+      h0 = 1.0d0/DSQRT(sum)
+      h0 = dmin1(h0,tdist)
+      h0 = DSIGN(h0,tout-t)
+c adjust h0 if necessary to meet hmax bound. ---------------------------
+ 180  rh = dabs(h0)*hmxi
+      if (rh .gt. 1.0d0) h0 = h0/rh
+c load h with h0 and scale yh(*,2) by h0. ------------------------------
+      h = h0
+      do 190 i = 1,n
+ 190    rwork(i+lf0-1) = h0*rwork(i+lf0-1)
+      go to 270
+c-----------------------------------------------------------------------
+c block d.
+c the next code block is for continuation calls only (istate = 2 or 3)
+c and is to check stop conditions before taking a step.
+c-----------------------------------------------------------------------
+ 200  nslast = nst
+      go to (210, 250, 220, 230, 240), itask
+ 210  if ((tn - tout)*h .lt. 0.0d0) go to 250
+      CALL intdy (tout, 0, rwork(lyh), nyh, y, iflag)
+      if (iflag .ne. 0) go to 627
+      t = tout
+      go to 420
+ 220  tp = tn - hu*(1.0d0 + 100.0d0*uround)
+      if ((tp - tout)*h .gt. 0.0d0) go to 623
+      if ((tn - tout)*h .lt. 0.0d0) go to 250
+      go to 400
+ 230  tcrit = rwork(1)
+      if ((tn - tcrit)*h .gt. 0.0d0) go to 624
+      if ((tcrit - tout)*h .lt. 0.0d0) go to 625
+      if ((tn - tout)*h .lt. 0.0d0) go to 245
+      CALL intdy (tout, 0, rwork(lyh), nyh, y, iflag)
+      if (iflag .ne. 0) go to 627
+      t = tout
+      go to 420
+ 240  tcrit = rwork(1)
+      if ((tn - tcrit)*h .gt. 0.0d0) go to 624
+ 245  hmx = dabs(tn) + dabs(h)
+      ihit = dabs(tn - tcrit) .le. 100.0d0*uround*hmx
+      if (ihit) go to 400
+      tnext = tn + h*(1.0d0 + 4.0d0*uround)
+      if ((tnext - tcrit)*h .le. 0.0d0) go to 250
+      h = (tcrit - tn)*(1.0d0 - 4.0d0*uround)
+      if (istate .eq. 2) jstart = -2
+c-----------------------------------------------------------------------
+c block e.
+c the next block is normally executed for all calls and contains
+c the CALL to the one-step core integrator stode.
+c
+c this is a looping point for the integration steps.
+c
+c first check for too many steps being taken, update ewt (if not at
+c start of problem), check for too much accuracy being requested, and
+c check for h below the roundoff level in t.
+c-----------------------------------------------------------------------
+ 250  continue
+      if ((nst-nslast) .ge. mxstep) go to 500
+      CALL ewset (n, itol, RelTol, AbsTol, rwork(lyh), rwork(lewt))
+      do 260 i = 1,n
+        if (rwork(i+lewt-1) .le. 0.0d0) go to 510
+ 260    rwork(i+lewt-1) = 1.0d0/rwork(i+lewt-1)
+ 270  tolsf = uround*vnorm (n, rwork(lyh), rwork(lewt))
+      if (tolsf .le. 1.0d0) go to 280
+      tolsf = tolsf*2.0d0
+      if (nst .eq. 0) go to 626
+      go to 520
+ 280  if ((tn + h) .ne. tn) go to 290
+      nhnil = nhnil + 1
+      if (nhnil .gt. mxhnil) go to 290
+      CALL xerrwv(50hlsodes-- warning..internal t (=r1) and h (=r2) are,
+     1   50, 101, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
+      CALL xerrwv(
+     1  60h      such that in the machine, t + h = t on the next step  ,
+     1   60, 101, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
+      CALL xerrwv(50h      (h = step size). solver will continue anyway,
+     1   50, 101, 0, 0, 0, 0, 2, tn, h)
+      if (nhnil .lt. mxhnil) go to 290
+      CALL xerrwv(50hlsodes-- above warning has been issued i1 times.  ,
+     1   50, 102, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
+      CALL xerrwv(50h      it will not be issued again for this problem,
+     1   50, 102, 0, 1, mxhnil, 0, 0, 0.0d0, 0.0d0)
+ 290  continue
+c-----------------------------------------------------------------------
+c    CALL stode(neq,y,yh,nyh,yh,ewt,savf,acor,wm,wm,f,jac,prjs,slss)
+c-----------------------------------------------------------------------
+      CALL stode (neq, y, rwork(lyh), nyh, rwork(lyh), rwork(lewt),
+     1   rwork(lsavf), rwork(lacor), rwork(lwm), rwork(lwm),
+     2   f, jac, prjs, slss)
+      kgo = 1 - kflag
+      go to (300, 530, 540, 550), kgo
+c-----------------------------------------------------------------------
+c block f.
+c the following block handles the case of a successful return from the
+c core integrator (kflag = 0).  test for stop conditions.
+c-----------------------------------------------------------------------
+ 300  init = 1
+      go to (310, 400, 330, 340, 350), itask
+c itask = 1.  if tout has been reached, interpolate. -------------------
+ 310  if ((tn - tout)*h .lt. 0.0d0) go to 250
+      CALL intdy (tout, 0, rwork(lyh), nyh, y, iflag)
+      t = tout
+      go to 420
+c itask = 3.  jump to exit if tout was reached. ------------------------
+ 330  if ((tn - tout)*h .ge. 0.0d0) go to 400
+      go to 250
+c itask = 4.  see if tout or tcrit was reached.  adjust h if necessary.
+ 340  if ((tn - tout)*h .lt. 0.0d0) go to 345
+      CALL intdy (tout, 0, rwork(lyh), nyh, y, iflag)
+      t = tout
+      go to 420
+ 345  hmx = dabs(tn) + dabs(h)
+      ihit = dabs(tn - tcrit) .le. 100.0d0*uround*hmx
+      if (ihit) go to 400
+      tnext = tn + h*(1.0d0 + 4.0d0*uround)
+      if ((tnext - tcrit)*h .le. 0.0d0) go to 250
+      h = (tcrit - tn)*(1.0d0 - 4.0d0*uround)
+      jstart = -2
+      go to 250
+c itask = 5.  see if tcrit was reached and jump to exit. ---------------
+ 350  hmx = dabs(tn) + dabs(h)
+      ihit = dabs(tn - tcrit) .le. 100.0d0*uround*hmx
+c-----------------------------------------------------------------------
+c block g.
+c the following block handles all successful returns from lsodes.
+c if itask .ne. 1, y is loaded from yh and t is set accordingly.
+c istate is set to 2, the illegal input counter is zeroed, and the
+c optional outputs are loaded into the work arrays before returning.
+c if istate = 1 and tout = t, there is a return with no action taken,
+c except that if this has happened repeatedly, the run is terminated.
+c-----------------------------------------------------------------------
+ 400  do 410 i = 1,n
+ 410    y(i) = rwork(i+lyh-1)
+      t = tn
+      if (itask .ne. 4 .and. itask .ne. 5) go to 420
+      if (ihit) t = tcrit
+ 420  istate = 2
+      illin = 0
+      rwork(11) = hu
+      rwork(12) = h
+      rwork(13) = tn
+      iwork(11) = nst
+      iwork(12) = nfe
+      iwork(13) = nje
+      iwork(14) = nqu
+      iwork(15) = nq
+      iwork(19) = nnz
+      iwork(20) = ngp
+      iwork(21) = nlu
+      iwork(25) = nzl
+      iwork(26) = nzu
+      return
+c
+ 430  ntrep = ntrep + 1
+      if (ntrep .lt. 5) return
+      CALL xerrwv(
+     1  60hlsodes-- repeated calls with istate = 1 and tout = t (=r1)  ,
+     1   60, 301, 0, 0, 0, 0, 1, t, 0.0d0)
+      go to 800
+c-----------------------------------------------------------------------
+c block h.
+c the following block handles all unsuccessful returns other than
+c those for illegal input.  first the error message routine is called.
+c if there was an error test or convergence test failure, imxer is set.
+c then y is loaded from yh, t is set to tn, and the illegal input
+c counter illin is set to 0.  the optional outputs are loaded into
+c the work arrays before returning.
+c-----------------------------------------------------------------------
+c the maximum number of steps was taken before reaching tout. ----------
+ 500  CALL xerrwv(50hlsodes-- at current t (=r1), mxstep (=i1) steps   ,
+     1   50, 201, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
+      CALL xerrwv(50h      taken on this CALL before reaching tout     ,
+     1   50, 201, 0, 1, mxstep, 0, 1, tn, 0.0d0)
+      istate = -1
+      go to 580
+c ewt(i) .le. 0.0 for some i (not at start of problem). ----------------
+ 510  ewti = rwork(lewt+i-1)
+      CALL xerrwv(50hlsodes-- at t (=r1), ewt(i1) has become r2 .le. 0.,
+     1   50, 202, 0, 1, i, 0, 2, tn, ewti)
+      istate = -6
+      go to 580
+c too much accuracy requested for machine precision. -------------------
+ 520  CALL xerrwv(50hlsodes-- at t (=r1), too much accuracy requested  ,
+     1   50, 203, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
+      CALL xerrwv(50h      for precision of machine..  see tolsf (=r2) ,
+     1   50, 203, 0, 0, 0, 0, 2, tn, tolsf)
+      rwork(14) = tolsf
+      istate = -2
+      go to 580
+c kflag = -1.  error test failed repeatedly or with abs(h) = hmin. -----
+ 530  CALL xerrwv(50hlsodes-- at t(=r1) and step size h(=r2), the error,
+     1   50, 204, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
+      CALL xerrwv(50h      test failed repeatedly or with abs(h) = hmin,
+     1   50, 204, 0, 0, 0, 0, 2, tn, h)
+      istate = -4
+      go to 560
+c kflag = -2.  convergence failed repeatedly or with abs(h) = hmin. ----
+ 540  CALL xerrwv(50hlsodes-- at t (=r1) and step size h (=r2), the    ,
+     1   50, 205, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
+      CALL xerrwv(50h      corrector convergence failed repeatedly     ,
+     1   50, 205, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
+      CALL xerrwv(30h      or with abs(h) = hmin   ,
+     1   30, 205, 0, 0, 0, 0, 2, tn, h)
+      istate = -5
+      go to 560
+c kflag = -3.  fatal error flag returned by prjs or slss (cdrv). -------
+ 550  CALL xerrwv(50hlsodes-- at t (=r1) and step size h (=r2), a fatal,
+     1   50, 207, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
+      CALL xerrwv(50h      error flag was returned by cdrv (by way of  ,
+     1   50, 207, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
+      CALL xerrwv(30h      subroutine prjs or slss),
+     1   30, 207, 0, 0, 0, 0, 2, tn, h)
+      istate = -7
+      go to 580
+c compute imxer if relevant. -------------------------------------------
+ 560  big = 0.0d0
+      imxer = 1
+      do 570 i = 1,n
+        size = dabs(rwork(i+lacor-1)*rwork(i+lewt-1))
+        if (big .ge. size) go to 570
+        big = size
+        imxer = i
+ 570    continue
+      iwork(16) = imxer
+c set y vector, t, illin, and optional outputs. ------------------------
+ 580  do 590 i = 1,n
+ 590    y(i) = rwork(i+lyh-1)
+      t = tn
+      illin = 0
+      rwork(11) = hu
+      rwork(12) = h
+      rwork(13) = tn
+      iwork(11) = nst
+      iwork(12) = nfe
+      iwork(13) = nje
+      iwork(14) = nqu
+      iwork(15) = nq
+      iwork(19) = nnz
+      iwork(20) = ngp
+      iwork(21) = nlu
+      iwork(25) = nzl
+      iwork(26) = nzu
+      return
+c-----------------------------------------------------------------------
+c block i.
+c the following block handles all error returns due to illegal input
+c (istate = -3), as detected before calling the core integrator.
+c first the error message routine is called.  then if there have been
+c 5 consecutive such returns just before this CALL to the solver,
+c the run is halted.
+c-----------------------------------------------------------------------
+ 601  CALL xerrwv(30hlsodes-- istate (=i1) illegal ,
+     1   30, 1, 0, 1, istate, 0, 0, 0.0d0, 0.0d0)
+      go to 700
+ 602  CALL xerrwv(30hlsodes-- itask (=i1) illegal  ,
+     1   30, 2, 0, 1, itask, 0, 0, 0.0d0, 0.0d0)
+      go to 700
+ 603  CALL xerrwv(50hlsodes-- istate .gt. 1 but lsodes not initialized ,
+     1   50, 3, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
+      go to 700
+ 604  CALL xerrwv(30hlsodes-- neq (=i1) .lt. 1     ,
+     1   30, 4, 0, 1, neq(1), 0, 0, 0.0d0, 0.0d0)
+      go to 700
+ 605  CALL xerrwv(50hlsodes-- istate = 3 and neq increased (i1 to i2)  ,
+     1   50, 5, 0, 2, n, neq(1), 0, 0.0d0, 0.0d0)
+      go to 700
+ 606  CALL xerrwv(30hlsodes-- itol (=i1) illegal   ,
+     1   30, 6, 0, 1, itol, 0, 0, 0.0d0, 0.0d0)
+      go to 700
+ 607  CALL xerrwv(30hlsodes-- iopt (=i1) illegal   ,
+     1   30, 7, 0, 1, iopt, 0, 0, 0.0d0, 0.0d0)
+      go to 700
+ 608  CALL xerrwv(30hlsodes-- mf (=i1) illegal     ,
+     1   30, 8, 0, 1, mf, 0, 0, 0.0d0, 0.0d0)
+      go to 700
+ 609  CALL xerrwv(30hlsodes-- seth (=r1) .lt. 0.0  ,
+     1   30, 9, 0, 0, 0, 0, 1, seth, 0.0d0)
+      go to 700
+ 611  CALL xerrwv(30hlsodes-- maxord (=i1) .lt. 0  ,
+     1   30, 11, 0, 1, maxord, 0, 0, 0.0d0, 0.0d0)
+      go to 700
+ 612  CALL xerrwv(30hlsodes-- mxstep (=i1) .lt. 0  ,
+     1   30, 12, 0, 1, mxstep, 0, 0, 0.0d0, 0.0d0)
+      go to 700
+ 613  CALL xerrwv(30hlsodes-- mxhnil (=i1) .lt. 0  ,
+     1   30, 13, 0, 1, mxhnil, 0, 0, 0.0d0, 0.0d0)
+      go to 700
+ 614  CALL xerrwv(40hlsodes-- tout (=r1) behind t (=r2)      ,
+     1   40, 14, 0, 0, 0, 0, 2, tout, t)
+      CALL xerrwv(50h      integration direction is given by h0 (=r1)  ,
+     1   50, 14, 0, 0, 0, 0, 1, h0, 0.0d0)
+      go to 700
+ 615  CALL xerrwv(30hlsodes-- hmax (=r1) .lt. 0.0  ,
+     1   30, 15, 0, 0, 0, 0, 1, hmax, 0.0d0)
+      go to 700
+ 616  CALL xerrwv(30hlsodes-- hmin (=r1) .lt. 0.0  ,
+     1   30, 16, 0, 0, 0, 0, 1, hmin, 0.0d0)
+      go to 700
+ 617  CALL xerrwv(50hlsodes-- rwork length is insufficient to proceed. ,
+     1   50, 17, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
+      CALL xerrwv(
+     1  60h        length needed is .ge. lenrw (=i1), exceeds lrw (=i2),
+     1   60, 17, 0, 2, lenrw, lrw, 0, 0.0d0, 0.0d0)
+      go to 700
+ 618  CALL xerrwv(50hlsodes-- iwork length is insufficient to proceed. ,
+     1   50, 18, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
+      CALL xerrwv(
+     1  60h        length needed is .ge. leniw (=i1), exceeds liw (=i2),
+     1   60, 18, 0, 2, leniw, liw, 0, 0.0d0, 0.0d0)
+      go to 700
+ 619  CALL xerrwv(40hlsodes-- RelTol(i1) is r1 .lt. 0.0        ,
+     1   40, 19, 0, 1, i, 0, 1, RelToli, 0.0d0)
+      go to 700
+ 620  CALL xerrwv(40hlsodes-- AbsTol(i1) is r1 .lt. 0.0        ,
+     1   40, 20, 0, 1, i, 0, 1, AbsToli, 0.0d0)
+      go to 700
+ 621  ewti = rwork(lewt+i-1)
+      CALL xerrwv(40hlsodes-- ewt(i1) is r1 .le. 0.0         ,
+     1   40, 21, 0, 1, i, 0, 1, ewti, 0.0d0)
+      go to 700
+ 622  CALL xerrwv(
+     1  60hlsodes-- tout (=r1) too close to t(=r2) to start integration,
+     1   60, 22, 0, 0, 0, 0, 2, tout, t)
+      go to 700
+ 623  CALL xerrwv(
+     1  60hlsodes-- itask = i1 and tout (=r1) behind tcur - hu (= r2)  ,
+     1   60, 23, 0, 1, itask, 0, 2, tout, tp)
+      go to 700
+ 624  CALL xerrwv(
+     1  60hlsodes-- itask = 4 or 5 and tcrit (=r1) behind tcur (=r2)   ,
+     1   60, 24, 0, 0, 0, 0, 2, tcrit, tn)
+      go to 700
+ 625  CALL xerrwv(
+     1  60hlsodes-- itask = 4 or 5 and tcrit (=r1) behind tout (=r2)   ,
+     1   60, 25, 0, 0, 0, 0, 2, tcrit, tout)
+      go to 700
+ 626  CALL xerrwv(50hlsodes-- at start of problem, too much accuracy   ,
+     1   50, 26, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
+      CALL xerrwv(
+     1  60h      requested for precision of machine..  see tolsf (=r1) ,
+     1   60, 26, 0, 0, 0, 0, 1, tolsf, 0.0d0)
+      rwork(14) = tolsf
+      go to 700
+ 627  CALL xerrwv(50hlsodes-- trouble from intdy. itask = i1, tout = r1,
+     1   50, 27, 0, 1, itask, 0, 1, tout, 0.0d0)
+      go to 700
+ 628  CALL xerrwv(
+     1  60hlsodes-- rwork length insufficient (for subroutine prep).   ,
+     1   60, 28, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
+      CALL xerrwv(
+     1  60h        length needed is .ge. lenrw (=i1), exceeds lrw (=i2),
+     1   60, 28, 0, 2, lenrw, lrw, 0, 0.0d0, 0.0d0)
+      go to 700
+ 629  CALL xerrwv(
+     1  60hlsodes-- rwork length insufficient (for subroutine jgroup). ,
+     1   60, 29, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
+      CALL xerrwv(
+     1  60h        length needed is .ge. lenrw (=i1), exceeds lrw (=i2),
+     1   60, 29, 0, 2, lenrw, lrw, 0, 0.0d0, 0.0d0)
+      go to 700
+ 630  CALL xerrwv(
+     1  60hlsodes-- rwork length insufficient (for subroutine odrv).   ,
+     1   60, 30, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
+      CALL xerrwv(
+     1  60h        length needed is .ge. lenrw (=i1), exceeds lrw (=i2),
+     1   60, 30, 0, 2, lenrw, lrw, 0, 0.0d0, 0.0d0)
+      go to 700
+ 631  CALL xerrwv(
+     1  60hlsodes-- error from odrv in yale sparse matrix package      ,
+     1   60, 31, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
+      imul = (iys - 1)/n
+      irem = iys - imul*n
+      CALL xerrwv(
+     1  60h      at t (=r1), odrv returned error flag = i1*neq + i2.   ,
+     1   60, 31, 0, 2, imul, irem, 1, tn, 0.0d0)
+      go to 700
+ 632  CALL xerrwv(
+     1  60hlsodes-- rwork length insufficient (for subroutine cdrv).   ,
+     1   60, 32, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
+      CALL xerrwv(
+     1  60h        length needed is .ge. lenrw (=i1), exceeds lrw (=i2),
+     1   60, 32, 0, 2, lenrw, lrw, 0, 0.0d0, 0.0d0)
+      go to 700
+ 633  CALL xerrwv(
+     1  60hlsodes-- error from cdrv in yale sparse matrix package      ,
+     1   60, 33, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
+      imul = (iys - 1)/n
+      irem = iys - imul*n
+      CALL xerrwv(
+     1  60h      at t (=r1), cdrv returned error flag = i1*neq + i2.   ,
+     1   60, 33, 0, 2, imul, irem, 1, tn, 0.0d0)
+      if (imul .eq. 2) CALL xerrwv(
+     1  60h        duplicate entry in sparsity structure descriptors   ,
+     1   60, 33, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
+      if (imul .eq. 3 .or. imul .eq. 6) CALL xerrwv(
+     1  60h        insufficient storage for nsfc (called by cdrv)      ,
+     1   60, 33, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
+c
+ 700  if (illin .eq. 5) go to 710
+      illin = illin + 1
+      istate = -3
+      return
+ 710  CALL xerrwv(50hlsodes-- repeated occurrences of illegal input    ,
+     1   50, 302, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
+c
+ 800  CALL xerrwv(50hlsodes-- run aborted.. apparent infinite loop     ,
+     1   50, 303, 2, 0, 0, 0, 0, 0.0d0, 0.0d0)
+      return
+c----------------------- end of subroutine lsodes ----------------------
+      end
+      subroutine iprep (neq, y, rwork, ia, ja, ipflag, f, jac)
+clll. optimize
+      external f, jac
+      integer neq, ia, ja, ipflag
+      integer illin, init, lyh, lewt, lacor, lsavf, lwm, liwm,
+     1   mxstep, mxhnil, nhnil, ntrep, nslast, nyh, iowns
+      integer icf, ierpj, iersl, jcur, jstart, kflag, l, meth, miter,
+     1   maxord, maxcor, msbp, mxncf, n, nq, nst, nfe, nje, nqu
+      integer iplost, iesp, istatc, iys, iba, ibian, ibjan, ibjgp,
+     1   ipian, ipjan, ipjgp, ipigp, ipr, ipc, ipic, ipisp, iprsp, ipa,
+     2   lenyh, lenyhm, lenwk, lreq, lrat, lrest, lwmin, moss, msbj,
+     3   nslj, ngp, nlu, nnz, nsp, nzl, nzu
+      integer i, imax, lewtn, lyhd, lyhn
+      KPP_REAL y, rwork
+      KPP_REAL rowns,
+     1   ccmax, el0, h, hmin, hmxi, hu, rc, tn, uround
+      KPP_REAL rlss
+      dimension neq(1), y(1), rwork(1), ia(1), ja(1)
+      common /ls0001/ rowns(209),
+     1   ccmax, el0, h, hmin, hmxi, hu, rc, tn, uround,
+     2   illin, init, lyh, lewt, lacor, lsavf, lwm, liwm,
+     3   mxstep, mxhnil, nhnil, ntrep, nslast, nyh, iowns(6),
+     4   icf, ierpj, iersl, jcur, jstart, kflag, l, meth, miter,
+     5   maxord, maxcor, msbp, mxncf, n, nq, nst, nfe, nje, nqu
+      common /lss001/ rlss(6),
+     1   iplost, iesp, istatc, iys, iba, ibian, ibjan, ibjgp,
+     2   ipian, ipjan, ipjgp, ipigp, ipr, ipc, ipic, ipisp, iprsp, ipa,
+     3   lenyh, lenyhm, lenwk, lreq, lrat, lrest, lwmin, moss, msbj,
+     4   nslj, ngp, nlu, nnz, nsp, nzl, nzu
+c-----------------------------------------------------------------------
+c this routine serves as an interface between the driver and
+c subroutine prep.  it is called only if miter is 1 or 2.
+c tasks performed here are..
+c  * CALL prep,
+c  * reset the required wm segment length lenwk,
+c  * move yh back to its final location (following wm in rwork),
+c  * reset pointers for yh, savf, ewt, and acor, and
+c  * move ewt to its new position if istate = 1.
+c ipflag is an output error indication flag.  ipflag = 0 if there was
+c no trouble, and ipflag is the value of the prep error flag ipper
+c if there was trouble in subroutine prep.
+c-----------------------------------------------------------------------
+      ipflag = 0
+c CALL prep to do matrix preprocessing operations. ---------------------
+c      CALL prep (neq, y, rwork(lyh), rwork(lsavf), rwork(lewt),
+c     1   rwork(lacor), ia, ja, rwork(lwm), rwork(lwm), ipflag, f, jac)
+      CALL prep (neq, y, rwork(lyh), rwork(lsavf), rwork(lewt),
+     1   rwork(lacor), ia, ja, rwork(lwm), rwork(lwm), ipflag, f, jac)
+      lenwk = max0(lreq,lwmin)
+      if (ipflag .lt. 0) return
+c if prep was successful, move yh to end of required space for wm. -----
+      lyhn = lwm + lenwk
+      if (lyhn .gt. lyh) return
+      lyhd = lyh - lyhn
+      if (lyhd .eq. 0) go to 20
+      imax = lyhn - 1 + lenyhm
+      do 10 i = lyhn,imax
+ 10     rwork(i) = rwork(i+lyhd)
+      lyh = lyhn
+c reset pointers for savf, ewt, and acor. ------------------------------
+ 20   lsavf = lyh + lenyh
+      lewtn = lsavf + n
+      lacor = lewtn + n
+      if (istatc .eq. 3) go to 40
+c if istate = 1, move ewt (left) to its new position. ------------------
+      if (lewtn .gt. lewt) return
+      do 30 i = 1,n
+ 30     rwork(i+lewtn-1) = rwork(i+lewt-1)
+ 40   lewt = lewtn
+      return
+c----------------------- end of subroutine iprep -----------------------
+      end
+      subroutine slss (wk, iwk, x, tem)
+clll. optimize
+      integer iwk
+      integer iownd, iowns,
+     1   icf, ierpj, iersl, jcur, jstart, kflag, l, meth, miter,
+     2   maxord, maxcor, msbp, mxncf, n, nq, nst, nfe, nje, nqu
+      integer iplost, iesp, istatc, iys, iba, ibian, ibjan, ibjgp,
+     1   ipian, ipjan, ipjgp, ipigp, ipr, ipc, ipic, ipisp, iprsp, ipa,
+     2   lenyh, lenyhm, lenwk, lreq, lrat, lrest, lwmin, moss, msbj,
+     3   nslj, ngp, nlu, nnz, nsp, nzl, nzu
+      integer i
+      KPP_REAL wk, x, tem
+      KPP_REAL rowns,
+     1   ccmax, el0, h, hmin, hmxi, hu, rc, tn, uround
+      KPP_REAL rlss
+      KPP_REAL di, hl0, phl0, r
+      dimension wk(*), iwk(*), x(*), tem(*)
+      common /ls0001/ rowns(209),
+     2   ccmax, el0, h, hmin, hmxi, hu, rc, tn, uround,
+     3   iownd(14), iowns(6),
+     4   icf, ierpj, iersl, jcur, jstart, kflag, l, meth, miter,
+     5   maxord, maxcor, msbp, mxncf, n, nq, nst, nfe, nje, nqu
+      common /lss001/ rlss(6),
+     1   iplost, iesp, istatc, iys, iba, ibian, ibjan, ibjgp,
+     2   ipian, ipjan, ipjgp, ipigp, ipr, ipc, ipic, ipisp, iprsp, ipa,
+     3   lenyh, lenyhm, lenwk, lreq, lrat, lrest, lwmin, moss, msbj,
+     4   nslj, ngp, nlu, nnz, nsp, nzl, nzu
+c-----------------------------------------------------------------------
+c this routine manages the solution of the linear system arising from
+c a chord iteration.  it is called if miter .ne. 0.
+c if miter is 1 or 2, it calls cdrv to accomplish this.
+c if miter = 3 it updates the coefficient h*el0 in the diagonal
+c matrix, and then computes the solution.
+c communication with slss uses the following variables..
+c wk    = real work space containing the inverse diagonal matrix if
+c         miter = 3 and the lu decomposition of the matrix otherwise.
+c         storage of matrix elements starts at wk(3).
+c         wk also contains the following matrix-related data..
+c         wk(1) = sqrt(uround) (not used here),
+c         wk(2) = hl0, the previous value of h*el0, used if miter = 3.
+c iwk   = integer work space for matrix-related data, assumed to
+c         be equivalenced to wk.  in addition, wk(iprsp) and iwk(ipisp)
+c         are assumed to have identical locations.
+c x     = the right-hand side vector on input, and the solution vector
+c         on output, of length n.
+c tem   = vector of work space of length n, not used in this version.
+c iersl = output flag (in common).
+c         iersl = 0  if no trouble occurred.
+c         iersl = -1 if cdrv returned an error flag (miter = 1 or 2).
+c                    this should never occur and is considered fatal.
+c         iersl = 1  if a singular matrix arose with miter = 3.
+c this routine also uses other variables in common.
+c-----------------------------------------------------------------------
+      iersl = 0
+      go to (100, 100, 300), miter
+ 100  CALL cdrv (n,iwk(ipr),iwk(ipc),iwk(ipic),iwk(ipian),iwk(ipjan),
+     1   wk(ipa),x,x,nsp,iwk(ipisp),wk(iprsp),iesp,4,iersl)
+      if (iersl .ne. 0) iersl = -1
+      return
+c
+ 300  phl0 = wk(2)
+      hl0 = h*el0
+      wk(2) = hl0
+      if (hl0 .eq. phl0) go to 330
+      r = hl0/phl0
+      do 320 i = 1,n
+        di = 1.0d0 - r*(1.0d0 - 1.0d0/wk(i+2))
+        if (dabs(di) .eq. 0.0d0) go to 390
+ 320    wk(i+2) = 1.0d0/di
+ 330  do 340 i = 1,n
+ 340    x(i) = wk(i+2)*x(i)
+      return
+ 390  iersl = 1
+      return
+c
+c----------------------- end of subroutine slss ------------------------
+      end
+      subroutine intdy (t, k, yh, nyh, dky, iflag)
+clll. optimize
+      integer k, nyh, iflag
+      integer iownd, iowns,
+     1   icf, ierpj, iersl, jcur, jstart, kflag, l, meth, miter,
+     2   maxord, maxcor, msbp, mxncf, n, nq, nst, nfe, nje, nqu
+      integer i, ic, j, jb, jb2, jj, jj1, jp1
+      KPP_REAL t, yh, dky
+      KPP_REAL rowns,
+     1   ccmax, el0, h, hmin, hmxi, hu, rc, tn, uround
+      KPP_REAL c, r, s, tp
+      dimension yh(nyh,1), dky(1)
+      common /ls0001/ rowns(209),
+     2   ccmax, el0, h, hmin, hmxi, hu, rc, tn, uround,
+     3   iownd(14), iowns(6),
+     4   icf, ierpj, iersl, jcur, jstart, kflag, l, meth, miter,
+     5   maxord, maxcor, msbp, mxncf, n, nq, nst, nfe, nje, nqu
+c-----------------------------------------------------------------------
+c intdy computes interpolated values of the k-th derivative of the
+c dependent variable vector y, and stores it in dky.  this routine
+c is called within the package with k = 0 and t = tout, but may
+c also be called by the user for any k up to the current order.
+c (see detailed instructions in the usage documentation.)
+c-----------------------------------------------------------------------
+c the computed values in dky are gotten by interpolation using the
+c nordsieck history array yh.  this array corresponds uniquely to a
+c vector-valued polynomial of degree nqcur or less, and dky is set
+c to the k-th derivative of this polynomial at t.
+c the formula for dky is..
+c              q
+c  dky(i)  =  sum  c(j,k) * (t - tn)**(j-k) * h**(-j) * yh(i,j+1)
+c             j=k
+c where  c(j,k) = j*(j-1)*...*(j-k+1), q = nqcur, tn = tcur, h = hcur.
+c the quantities  nq = nqcur, l = nq+1, n = neq, tn, and h are
+c communicated by common.  the above sum is done in reverse order.
+c iflag is returned negative if either k or t is out of bounds.
+c-----------------------------------------------------------------------
+      iflag = 0
+      if (k .lt. 0 .or. k .gt. nq) go to 80
+      tp = tn - hu -  100.0d0*uround*(tn + hu)
+      if ((t-tp)*(t-tn) .gt. 0.0d0) go to 90
+c
+      s = (t - tn)/h
+      ic = 1
+      if (k .eq. 0) go to 15
+      jj1 = l - k
+      do 10 jj = jj1,nq
+ 10     ic = ic*jj
+ 15   c = dfloat(ic)
+      do 20 i = 1,n
+ 20     dky(i) = c*yh(i,l)
+      if (k .eq. nq) go to 55
+      jb2 = nq - k
+      do 50 jb = 1,jb2
+        j = nq - jb
+        jp1 = j + 1
+        ic = 1
+        if (k .eq. 0) go to 35
+        jj1 = jp1 - k
+        do 30 jj = jj1,j
+ 30       ic = ic*jj
+ 35     c = dfloat(ic)
+        do 40 i = 1,n
+ 40       dky(i) = c*yh(i,jp1) + s*dky(i)
+ 50     continue
+      if (k .eq. 0) return
+ 55   r = h**(-k)
+      do 60 i = 1,n
+ 60     dky(i) = r*dky(i)
+      return
+c
+ 80   CALL xerrwv(30hintdy--  k (=i1) illegal      ,
+     1   30, 51, 0, 1, k, 0, 0, 0.0d0, 0.0d0)
+      iflag = -1
+      return
+ 90   CALL xerrwv(30hintdy--  t (=r1) illegal      ,
+     1   30, 52, 0, 0, 0, 0, 1, t, 0.0d0)
+      CALL xerrwv(
+     1  60h      t not in interval tcur - hu (= r1) to tcur (=r2)      ,
+     1   60, 52, 0, 0, 0, 0, 2, tp, tn)
+      iflag = -2
+      return
+c----------------------- end of subroutine intdy -----------------------
+      end
+      subroutine prjs (neq,y,yh,nyh,ewt,ftem,savf,wk,iwk,f,jac)
+clll. optimize
+      external f,jac
+      integer neq, nyh, iwk
+      integer iownd, iowns,
+     1   icf, ierpj, iersl, jcur, jstart, kflag, l, meth, miter,
+     2   maxord, maxcor, msbp, mxncf, n, nq, nst, nfe, nje, nqu
+      integer iplost, iesp, istatc, iys, iba, ibian, ibjan, ibjgp,
+     1   ipian, ipjan, ipjgp, ipigp, ipr, ipc, ipic, ipisp, iprsp, ipa,
+     2   lenyh, lenyhm, lenwk, lreq, lrat, lrest, lwmin, moss, msbj,
+     3   nslj, ngp, nlu, nnz, nsp, nzl, nzu
+      integer i, imul, j, jj, jok, jmax, jmin, k, kmax, kmin, ng
+      KPP_REAL JJJ(n,n)
+      KPP_REAL rowns,
+     1   ccmax, el0, h, hmin, hmxi, hu, rc, tn, uround
+      KPP_REAL con0, conmin, ccmxj, psmall, rbig, seth
+      KPP_REAL con, di, fac, hl0, pij, r, r0, rcon, rcont,
+     1   srur, vnorm
+      dimension neq(*), iwk(*)
+      KPP_REAL y(*), yh(nyh,*), ewt(*), ftem(*), savf(*), wk(*)
+      common /ls0001/ rowns(209),
+     2   ccmax, el0, h, hmin, hmxi, hu, rc, tn, uround,
+     3   iownd(14), iowns(6),
+     4   icf, ierpj, iersl, jcur, jstart, kflag, l, meth, miter,
+     5   maxord, maxcor, msbp, mxncf, n, nq, nst, nfe, nje, nqu
+      common /lss001/ con0, conmin, ccmxj, psmall, rbig, seth,
+     1   iplost, iesp, istatc, iys, iba, ibian, ibjan, ibjgp,
+     2   ipian, ipjan, ipjgp, ipigp, ipr, ipc, ipic, ipisp, iprsp, ipa,
+     3   lenyh, lenyhm, lenwk, lreq, lrat, lrest, lwmin, moss, msbj,
+     4   nslj, ngp, nlu, nnz, nsp, nzl, nzu
+c-----------------------------------------------------------------------
+c prjs is called to compute and process the matrix
+c p = i - h*el(1)*j , where j is an approximation to the jacobian.
+c j is computed by columns, either by the user-supplied routine jac
+c if miter = 1, or by finite differencing if miter = 2.
+c if miter = 3, a diagonal approximation to j is used.
+c if miter = 1 or 2, and if the existing value of the jacobian
+c (as contained in p) is considered acceptable, then a new value of
+c p is reconstructed from the old value.  in any case, when miter
+c is 1 or 2, the p matrix is subjected to lu decomposition in cdrv.
+c p and its lu decomposition are stored (separately) in wk.
+c
+c in addition to variables described previously, communication
+c with prjs uses the following..
+c y     = array containing predicted values on entry.
+c ftem  = work array of length n (acor in stode).
+c savf  = array containing f evaluated at predicted y.
+c wk    = real work space for matrices.  on output it contains the
+c         inverse diagonal matrix if miter = 3, and p and its sparse
+c         lu decomposition if miter is 1 or 2.
+c         storage of matrix elements starts at wk(3).
+c         wk also contains the following matrix-related data..
+c         wk(1) = sqrt(uround), used in numerical jacobian increments.
+c         wk(2) = h*el0, saved for later use if miter = 3.
+c iwk   = integer work space for matrix-related data, assumed to
+c         be equivalenced to wk.  in addition, wk(iprsp) and iwk(ipisp)
+c         are assumed to have identical locations.
+c el0   = el(1) (input).
+c ierpj = output error flag (in common).
+c       = 0 if no error.
+c       = 1  if zero pivot found in cdrv.
+c       = 2  if a singular matrix arose with miter = 3.
+c       = -1 if insufficient storage for cdrv (should not occur here).
+c       = -2 if other error found in cdrv (should not occur here).
+c jcur  = output flag = 1 to indicate that the jacobian matrix
+c         (or approximation) is now current.
+c this routine also uses other variables in common.
+c-----------------------------------------------------------------------
+      hl0 = h*el0
+      con = -hl0
+      if (miter .eq. 3) go to 300
+c see whether j should be reevaluated (jok = 0) or not (jok = 1). ------
+      jok = 1
+      if (nst .eq. 0 .or. nst .ge. nslj+msbj) jok = 0
+      if (icf .eq. 1 .and. dabs(rc - 1.0d0) .lt. ccmxj) jok = 0
+      if (icf .eq. 2) jok = 0
+      if (jok .eq. 1) go to 250
+c
+c miter = 1 or 2, and the jacobian is to be reevaluated. ---------------
+ 20   jcur = 1
+      nje = nje + 1
+      nslj = nst
+      iplost = 0
+      conmin = dabs(con)
+      go to (100, 200), miter
+c
+c if miter = 1, call jac_chem, multiply by scalar, and add identity. --------
+ 100  continue
+      kmin = iwk(ipian)
+      call jac_chem (neq, tn, y, JJJ, j, iwk(ipian), iwk(ipjan))
+      do 130 j = 1, n
+        kmax = iwk(ipian+j) - 1
+        do 110 i = 1,n
+ 110      ftem(i) = 0.0d0
+C        call jac_chem (neq, tn, y, ftem, j, iwk(ipian), iwk(ipjan))
+        do k=1,n
+          ftem(k) = JJJ(k,j)
+        end do
+        do 120 k = kmin, kmax
+          i = iwk(ibjan+k)
+          wk(iba+k) = ftem(i)*con
+          if (i .eq. j) wk(iba+k) = wk(iba+k) + 1.0d0
+ 120      continue
+        kmin = kmax + 1
+ 130    continue
+      go to 290
+c
+c if miter = 2, make ngp calls to f to approximate j and p. ------------
+ 200  continue
+      fac = vnorm(n, savf, ewt)
+      r0 = 1000.0d0 * dabs(h) * uround * dfloat(n) * fac
+      if (r0 .eq. 0.0d0) r0 = 1.0d0
+      srur = wk(1)
+      jmin = iwk(ipigp)
+      do 240 ng = 1,ngp
+        jmax = iwk(ipigp+ng) - 1
+        do 210 j = jmin,jmax
+          jj = iwk(ibjgp+j)
+          r = DMAX1(srur*dabs(y(jj)),r0/ewt(jj))
+ 210      y(jj) = y(jj) + r
+        CALL f (neq, tn, y, ftem)
+        do 230 j = jmin,jmax
+          jj = iwk(ibjgp+j)
+          y(jj) = yh(jj,1)
+          r = DMAX1(srur*dabs(y(jj)),r0/ewt(jj))
+          fac = -hl0/r
+          kmin =iwk(ibian+jj)
+          kmax =iwk(ibian+jj+1) - 1
+          do 220 k = kmin,kmax
+            i = iwk(ibjan+k)
+            wk(iba+k) = (ftem(i) - savf(i))*fac
+            if (i .eq. jj) wk(iba+k) = wk(iba+k) + 1.0d0
+ 220        continue
+ 230      continue
+        jmin = jmax + 1
+ 240    continue
+      nfe = nfe + ngp
+      go to 290
+c
+c if jok = 1, reconstruct new p from old p. ----------------------------
+ 250  jcur = 0
+      rcon = con/con0
+      rcont = dabs(con)/conmin
+      if (rcont .gt. rbig .and. iplost .eq. 1) go to 20
+      kmin = iwk(ipian)
+      do 275 j = 1,n
+        kmax = iwk(ipian+j) - 1
+        do 270 k = kmin,kmax
+          i = iwk(ibjan+k)
+          pij = wk(iba+k)
+          if (i .ne. j) go to 260
+          pij = pij - 1.0d0
+          if (dabs(pij) .ge. psmall) go to 260
+            iplost = 1
+            conmin = dmin1(dabs(con0),conmin)
+ 260      pij = pij*rcon
+          if (i .eq. j) pij = pij + 1.0d0
+          wk(iba+k) = pij
+ 270      continue
+        kmin = kmax + 1
+ 275    continue
+c
+c do numerical factorization of p matrix. ------------------------------
+ 290  nlu = nlu + 1
+      con0 = con
+      ierpj = 0
+      do 295 i = 1,n
+ 295    ftem(i) = 0.0d0
+      CALL cdrv (n,iwk(ipr),iwk(ipc),iwk(ipic),iwk(ipian),iwk(ipjan),
+     1   wk(ipa),ftem,ftem,nsp,iwk(ipisp),wk(iprsp),iesp,2,iys)
+      if (iys .eq. 0) return
+      imul = (iys - 1)/n
+      ierpj = -2
+      if (imul .eq. 8) ierpj = 1
+      if (imul .eq. 10) ierpj = -1
+      return
+c
+c if miter = 3, construct a diagonal approximation to j and p. ---------
+ 300  continue
+      jcur = 1
+      nje = nje + 1
+      wk(2) = hl0
+      ierpj = 0
+      r = el0*0.1d0
+      do 310 i = 1,n
+ 310    y(i) = y(i) + r*(h*savf(i) - yh(i,2))
+      CALL f (neq, tn, y, wk(3))
+      nfe = nfe + 1
+      do 320 i = 1,n
+        r0 = h*savf(i) - yh(i,2)
+        di = 0.1d0*r0 - h*(wk(i+2) - savf(i))
+        wk(i+2) = 1.0d0
+        if (dabs(r0) .lt. uround/ewt(i)) go to 320
+        if (dabs(di) .eq. 0.0d0) go to 330
+        wk(i+2) = 0.1d0*r0/di
+ 320    continue
+      return
+ 330  ierpj = 2
+      return
+c----------------------- end of subroutine prjs ------------------------
+      end
+      subroutine stode (neq, y, yh, nyh, yh1, ewt, savf, acor,
+     1   wm, iwm, f, jac, pjac, slvs)
+clll. optimize
+      external f, jac, pjac, slvs
+      integer neq, nyh, iwm
+      integer iownd, ialth, ipup, lmax, meo, nqnyh, nslp,
+     1   icf, ierpj, iersl, jcur, jstart, kflag, l, meth, miter,
+     2   maxord, maxcor, msbp, mxncf, n, nq, nst, nfe, nje, nqu
+      integer i, i1, iredo, iret, j, jb, m, ncf, newq
+      KPP_REAL y, yh, yh1, ewt, savf, acor, wm
+      KPP_REAL conit, crate, el, elco, hold, rmax, tesco,
+     2   ccmax, el0, h, hmin, hmxi, hu, rc, tn, uround
+      KPP_REAL dcon, ddn, del, delp, dsm, dup, exdn, exsm, exup,
+     1   r, rh, rhdn, rhsm, rhup, told, vnorm
+      dimension neq(*), y(*), yh(nyh,*), yh1(*), ewt(*), savf(*),
+     1   acor(*), wm(*), iwm(*)
+      common /ls0001/ conit, crate, el(13), elco(13,12),
+     1   hold, rmax, tesco(3,12),
+     2   ccmax, el0, h, hmin, hmxi, hu, rc, tn, uround, iownd(14),
+     3   ialth, ipup, lmax, meo, nqnyh, nslp,
+     4   icf, ierpj, iersl, jcur, jstart, kflag, l, meth, miter,
+     5   maxord, maxcor, msbp, mxncf, n, nq, nst, nfe, nje, nqu
+c-----------------------------------------------------------------------
+c stode performs one step of the integration of an initial value
+c problem for a system of ordinary differential equations.
+c note.. stode is independent of the value of the iteration method
+c indicator miter, when this is .ne. 0, and hence is independent
+c of the type of chord method used, or the jacobian structure.
+c communication with stode is done with the following variables..
+c
+c neq    = integer array containing problem size in neq(1), and
+c          passed as the neq argument in all calls to f and jac.
+c y      = an array of length .ge. n used as the y argument in
+c          all calls to f and jac.
+c yh     = an nyh by lmax array containing the dependent variables
+c          and their approximate scaled derivatives, where
+c          lmax = maxord + 1.  yh(i,j+1) contains the approximate
+c          j-th derivative of y(i), scaled by h**j/factorial(j)
+c          (j = 0,1,...,nq).  on entry for the first step, the first
+c          two columns of yh must be set from the initial values.
+c nyh    = a constant integer .ge. n, the first dimension of yh.
+c yh1    = a one-dimensional array occupying the same space as yh.
+c ewt    = an array of length n containing multiplicative weights
+c          for local error measurements.  local errors in y(i) are
+c          compared to 1.0/ewt(i) in various error tests.
+c savf   = an array of working storage, of length n.
+c          also used for input of yh(*,maxord+2) when jstart = -1
+c          and maxord .lt. the current order nq.
+c acor   = a work array of length n, used for the accumulated
+c          corrections.  on a successful return, acor(i) contains
+c          the estimated one-step local error in y(i).
+c wm,iwm = real and integer work arrays associated with matrix
+c          operations in chord iteration (miter .ne. 0).
+c pjac   = name of routine to evaluate and preprocess jacobian matrix
+c          and p = i - h*el0*jac, if a chord method is being used.
+c slvs   = name of routine to solve linear system in chord iteration.
+c ccmax  = maximum relative change in h*el0 before pjac is called.
+c h      = the step size to be attempted on the next step.
+c          h is altered by the error control algorithm during the
+c          problem.  h can be either positive or negative, but its
+c          sign must remain constant throughout the problem.
+c hmin   = the minimum absolute value of the step size h to be used.
+c hmxi   = inverse of the maximum absolute value of h to be used.
+c          hmxi = 0.0 is allowed and corresponds to an infinite hmax.
+c          hmin and hmxi may be changed at any time, but will not
+c          take effect until the next change of h is considered.
+c tn     = the independent variable. tn is updated on each step taken.
+c jstart = an integer used for input only, with the following
+c          values and meanings..
+c               0  perform the first step.
+c           .gt.0  take a new step continuing from the last.
+c              -1  take the next step with a new value of h, maxord,
+c                    n, meth, miter, and/or matrix parameters.
+c              -2  take the next step with a new value of h,
+c                    but with other inputs unchanged.
+c          on return, jstart is set to 1 to facilitate continuation.
+c kflag  = a completion code with the following meanings..
+c               0  the step was succesful.
+c              -1  the requested error could not be achieved.
+c              -2  corrector convergence could not be achieved.
+c              -3  fatal error in pjac or slvs.
+c          a return with kflag = -1 or -2 means either
+c          abs(h) = hmin or 10 consecutive failures occurred.
+c          on a return with kflag negative, the values of tn and
+c          the yh array are as of the beginning of the last
+c          step, and h is the last step size attempted.
+c maxord = the maximum order of integration method to be allowed.
+c maxcor = the maximum number of corrector iterations allowed.
+c msbp   = maximum number of steps between pjac calls (miter .gt. 0).
+c mxncf  = maximum number of convergence failures allowed.
+c meth/miter = the method flags.  see description in driver.
+c n      = the number of first-order differential equations.
+c-----------------------------------------------------------------------
+      kflag = 0
+      told = tn
+      ncf = 0
+      ierpj = 0
+      iersl = 0
+      jcur = 0
+      icf = 0
+      delp = 0.0d0
+      if (jstart .gt. 0) go to 200
+      if (jstart .eq. -1) go to 100
+      if (jstart .eq. -2) go to 160
+c-----------------------------------------------------------------------
+c on the first call, the order is set to 1, and other variables are
+c initialized.  rmax is the maximum ratio by which h can be increased
+c in a single step.  it is initially 1.e4 to compensate for the small
+c initial h, but then is normally equal to 10.  if a failure
+c occurs (in corrector convergence or error test), rmax is set at 2
+c for the next increase.
+c-----------------------------------------------------------------------
+      lmax = maxord + 1
+      nq = 1
+      l = 2
+      ialth = 2
+      rmax = 10000.0d0
+      rc = 0.0d0
+      el0 = 1.0d0
+      crate = 0.7d0
+      hold = h
+      meo = meth
+      nslp = 0
+      ipup = miter
+      iret = 3
+      go to 140
+c-----------------------------------------------------------------------
+c the following block handles preliminaries needed when jstart = -1.
+c ipup is set to miter to force a matrix update.
+c if an order increase is about to be considered (ialth = 1),
+c ialth is reset to 2 to postpone consideration one more step.
+c if the caller has changed meth, cfode is called to reset
+c the coefficients of the method.
+c if the caller has changed maxord to a value less than the current
+c order nq, nq is reduced to maxord, and a new h chosen accordingly.
+c if h is to be changed, yh must be rescaled.
+c if h or meth is being changed, ialth is reset to l = nq + 1
+c to prevent further changes in h for that many steps.
+c-----------------------------------------------------------------------
+ 100  ipup = miter
+      lmax = maxord + 1
+      if (ialth .eq. 1) ialth = 2
+      if (meth .eq. meo) go to 110
+      CALL cfode (meth, elco, tesco)
+      meo = meth
+      if (nq .gt. maxord) go to 120
+      ialth = l
+      iret = 1
+      go to 150
+ 110  if (nq .le. maxord) go to 160
+ 120  nq = maxord
+      l = lmax
+      do 125 i = 1,l
+ 125    el(i) = elco(i,nq)
+      nqnyh = nq*nyh
+      rc = rc*el(1)/el0
+      el0 = el(1)
+      conit = 0.5d0/dfloat(nq+2)
+      ddn = vnorm (n, savf, ewt)/tesco(1,l)
+      exdn = 1.0d0/dfloat(l)
+      rhdn = 1.0d0/(1.3d0*ddn**exdn + 0.0000013d0)
+      rh = dmin1(rhdn,1.0d0)
+      iredo = 3
+      if (h .eq. hold) go to 170
+      rh = dmin1(rh,dabs(h/hold))
+      h = hold
+      go to 175
+c-----------------------------------------------------------------------
+c cfode is called to get all the integration coefficients for the
+c current meth.  then the el vector and related constants are reset
+c whenever the order nq is changed, or at the start of the problem.
+c-----------------------------------------------------------------------
+ 140  CALL cfode (meth, elco, tesco)
+ 150  do 155 i = 1,l
+ 155    el(i) = elco(i,nq)
+      nqnyh = nq*nyh
+      rc = rc*el(1)/el0
+      el0 = el(1)
+      conit = 0.5d0/dfloat(nq+2)
+      go to (160, 170, 200), iret
+c-----------------------------------------------------------------------
+c if h is being changed, the h ratio rh is checked against
+c rmax, hmin, and hmxi, and the yh array rescaled.  ialth is set to
+c l = nq + 1 to prevent a change of h for that many steps, unless
+c forced by a convergence or error test failure.
+c-----------------------------------------------------------------------
+ 160  if (h .eq. hold) go to 200
+      rh = h/hold
+      h = hold
+      iredo = 3
+      go to 175
+ 170  rh = DMAX1(rh,hmin/dabs(h))
+ 175  rh = dmin1(rh,rmax)
+      rh = rh/DMAX1(1.0d0,dabs(h)*hmxi*rh)
+      r = 1.0d0
+      do 180 j = 2,l
+        r = r*rh
+        do 180 i = 1,n
+ 180      yh(i,j) = yh(i,j)*r
+      h = h*rh
+      rc = rc*rh
+      ialth = l
+      if (iredo .eq. 0) go to 690
+c-----------------------------------------------------------------------
+c this section computes the predicted values by effectively
+c multiplying the yh array by the pascal triangle matrix.
+c rc is the ratio of new to old values of the coefficient  h*el(1).
+c when rc differs from 1 by more than ccmax, ipup is set to miter
+c to force pjac to be called, if a jacobian is involved.
+c in any case, pjac is called at least every msbp steps.
+c-----------------------------------------------------------------------
+ 200  if (dabs(rc-1.0d0) .gt. ccmax) ipup = miter
+      if (nst .ge. nslp+msbp) ipup = miter
+      tn = tn + h
+      i1 = nqnyh + 1
+      do 215 jb = 1,nq
+        i1 = i1 - nyh
+cdir$ ivdep
+        do 210 i = i1,nqnyh
+ 210      yh1(i) = yh1(i) + yh1(i+nyh)
+ 215    continue
+c-----------------------------------------------------------------------
+c up to maxcor corrector iterations are taken.  a convergence test is
+c made on the r.m.s. norm of each correction, weighted by the error
+c weight vector ewt.  the sum of the corrections is accumulated in the
+c vector acor(i).  the yh array is not altered in the corrector loop.
+c-----------------------------------------------------------------------
+ 220  m = 0
+      do 230 i = 1,n
+ 230    y(i) = yh(i,1)
+      CALL f (neq, tn, y, savf)
+      nfe = nfe + 1
+      if (ipup .le. 0) go to 250
+c-----------------------------------------------------------------------
+c if indicated, the matrix p = i - h*el(1)*j is reevaluated and
+c preprocessed before starting the corrector iteration.  ipup is set
+c to 0 as an indicator that this has been done.
+c-----------------------------------------------------------------------
+      CALL pjac (neq, y, yh, nyh, ewt, acor, savf, wm, iwm, f, jac)
+      ipup = 0
+      rc = 1.0d0
+      nslp = nst
+      crate = 0.7d0
+      if (ierpj .ne. 0) go to 430
+ 250  do 260 i = 1,n
+ 260    acor(i) = 0.0d0
+ 270  if (miter .ne. 0) go to 350
+c-----------------------------------------------------------------------
+c in the case of functional iteration, update y directly from
+c the result of the last function evaluation.
+c-----------------------------------------------------------------------
+      do 290 i = 1,n
+        savf(i) = h*savf(i) - yh(i,2)
+ 290    y(i) = savf(i) - acor(i)
+      del = vnorm (n, y, ewt)
+      do 300 i = 1,n
+        y(i) = yh(i,1) + el(1)*savf(i)
+ 300    acor(i) = savf(i)
+      go to 400
+c-----------------------------------------------------------------------
+c in the case of the chord method, compute the corrector error,
+c and solve the linear system with that as right-hand side and
+c p as coefficient matrix.
+c-----------------------------------------------------------------------
+ 350  do 360 i = 1,n
+ 360    y(i) = h*savf(i) - (yh(i,2) + acor(i))
+      CALL slvs (wm, iwm, y, savf)
+      if (iersl .lt. 0) go to 430
+      if (iersl .gt. 0) go to 410
+      del = vnorm (n, y, ewt)
+      do 380 i = 1,n
+        acor(i) = acor(i) + y(i)
+ 380    y(i) = yh(i,1) + el(1)*acor(i)
+c-----------------------------------------------------------------------
+c test for convergence.  if m.gt.0, an estimate of the convergence
+c rate constant is stored in crate, and this is used in the test.
+c-----------------------------------------------------------------------
+ 400  if (m .ne. 0) crate = DMAX1(0.2d0*crate,del/delp)
+      dcon = del*dmin1(1.0d0,1.5d0*crate)/(tesco(2,nq)*conit)
+      if (dcon .le. 1.0d0) go to 450
+      m = m + 1
+      if (m .eq. maxcor) go to 410
+      if (m .ge. 2 .and. del .gt. 2.0d0*delp) go to 410
+      delp = del
+      CALL f (neq, tn, y, savf)
+      nfe = nfe + 1
+      go to 270
+c-----------------------------------------------------------------------
+c the corrector iteration failed to converge.
+c if miter .ne. 0 and the jacobian is out of date, pjac is called for
+c the next try.  otherwise the yh array is retracted to its values
+c before prediction, and h is reduced, if possible.  if h cannot be
+c reduced or mxncf failures have occurred, exit with kflag = -2.
+c-----------------------------------------------------------------------
+ 410  if (miter .eq. 0 .or. jcur .eq. 1) go to 430
+      icf = 1
+      ipup = miter
+      go to 220
+ 430  icf = 2
+      ncf = ncf + 1
+      rmax = 2.0d0
+      tn = told
+      i1 = nqnyh + 1
+      do 445 jb = 1,nq
+        i1 = i1 - nyh
+cdir$ ivdep
+        do 440 i = i1,nqnyh
+ 440      yh1(i) = yh1(i) - yh1(i+nyh)
+ 445    continue
+      if (ierpj .lt. 0 .or. iersl .lt. 0) go to 680
+      if (dabs(h) .le. hmin*1.00001d0) go to 670
+      if (ncf .eq. mxncf) go to 670
+      rh = 0.25d0
+      ipup = miter
+      iredo = 1
+      go to 170
+c-----------------------------------------------------------------------
+c the corrector has converged.  jcur is set to 0
+c to signal that the jacobian involved may need updating later.
+c the local error test is made and control passes to statement 500
+c if it fails.
+c-----------------------------------------------------------------------
+ 450  jcur = 0
+      if (m .eq. 0) dsm = del/tesco(2,nq)
+      if (m .gt. 0) dsm = vnorm (n, acor, ewt)/tesco(2,nq)
+      if (dsm .gt. 1.0d0) go to 500
+c-----------------------------------------------------------------------
+c after a successful step, update the yh array.
+c consider changing h if ialth = 1.  otherwise decrease ialth by 1.
+c if ialth is then 1 and nq .lt. maxord, then acor is saved for
+c use in a possible order increase on the next step.
+c if a change in h is considered, an increase or decrease in order
+c by one is considered also.  a change in h is made only if it is by a
+c factor of at least 1.1.  if not, ialth is set to 3 to prevent
+c testing for that many steps.
+c-----------------------------------------------------------------------
+      kflag = 0
+      iredo = 0
+      nst = nst + 1
+      hu = h
+      nqu = nq
+      do 470 j = 1,l
+        do 470 i = 1,n
+ 470      yh(i,j) = yh(i,j) + el(j)*acor(i)
+      ialth = ialth - 1
+      if (ialth .eq. 0) go to 520
+      if (ialth .gt. 1) go to 700
+      if (l .eq. lmax) go to 700
+      do 490 i = 1,n
+ 490    yh(i,lmax) = acor(i)
+      go to 700
+c-----------------------------------------------------------------------
+c the error test failed.  kflag keeps track of multiple failures.
+c restore tn and the yh array to their previous values, and prepare
+c to try the step again.  compute the optimum step size for this or
+c one lower order.  after 2 or more failures, h is forced to decrease
+c by a factor of 0.2 or less.
+c-----------------------------------------------------------------------
+ 500  kflag = kflag - 1
+      tn = told
+      i1 = nqnyh + 1
+      do 515 jb = 1,nq
+        i1 = i1 - nyh
+cdir$ ivdep
+        do 510 i = i1,nqnyh
+ 510      yh1(i) = yh1(i) - yh1(i+nyh)
+ 515    continue
+      rmax = 2.0d0
+      if (dabs(h) .le. hmin*1.00001d0) go to 660
+      if (kflag .le. -3) go to 640
+      iredo = 2
+      rhup = 0.0d0
+      go to 540
+c-----------------------------------------------------------------------
+c regardless of the success or failure of the step, factors
+c rhdn, rhsm, and rhup are computed, by which h could be multiplied
+c at order nq - 1, order nq, or order nq + 1, respectively.
+c in the case of failure, rhup = 0.0 to avoid an order increase.
+c the largest of these is determined and the new order chosen
+c accordingly.  if the order is to be increased, we compute one
+c additional scaled derivative.
+c-----------------------------------------------------------------------
+ 520  rhup = 0.0d0
+      if (l .eq. lmax) go to 540
+      do 530 i = 1,n
+ 530    savf(i) = acor(i) - yh(i,lmax)
+      dup = vnorm (n, savf, ewt)/tesco(3,nq)
+      exup = 1.0d0/dfloat(l+1)
+      rhup = 1.0d0/(1.4d0*dup**exup + 0.0000014d0)
+ 540  exsm = 1.0d0/dfloat(l)
+      rhsm = 1.0d0/(1.2d0*dsm**exsm + 0.0000012d0)
+      rhdn = 0.0d0
+      if (nq .eq. 1) go to 560
+      ddn = vnorm (n, yh(1,l), ewt)/tesco(1,nq)
+      exdn = 1.0d0/dfloat(nq)
+      rhdn = 1.0d0/(1.3d0*ddn**exdn + 0.0000013d0)
+ 560  if (rhsm .ge. rhup) go to 570
+      if (rhup .gt. rhdn) go to 590
+      go to 580
+ 570  if (rhsm .lt. rhdn) go to 580
+      newq = nq
+      rh = rhsm
+      go to 620
+ 580  newq = nq - 1
+      rh = rhdn
+      if (kflag .lt. 0 .and. rh .gt. 1.0d0) rh = 1.0d0
+      go to 620
+ 590  newq = l
+      rh = rhup
+      if (rh .lt. 1.1d0) go to 610
+      r = el(l)/dfloat(l)
+      do 600 i = 1,n
+ 600    yh(i,newq+1) = acor(i)*r
+      go to 630
+ 610  ialth = 3
+      go to 700
+ 620  if ((kflag .eq. 0) .and. (rh .lt. 1.1d0)) go to 610
+      if (kflag .le. -2) rh = dmin1(rh,0.2d0)
+c-----------------------------------------------------------------------
+c if there is a change of order, reset nq, l, and the coefficients.
+c in any case h is reset according to rh and the yh array is rescaled.
+c then exit from 690 if the step was ok, or redo the step otherwise.
+c-----------------------------------------------------------------------
+      if (newq .eq. nq) go to 170
+ 630  nq = newq
+      l = nq + 1
+      iret = 2
+      go to 150
+c-----------------------------------------------------------------------
+c control reaches this section if 3 or more failures have occured.
+c if 10 failures have occurred, exit with kflag = -1.
+c it is assumed that the derivatives that have accumulated in the
+c yh array have errors of the wrong order.  hence the first
+c derivative is recomputed, and the order is set to 1.  then
+c h is reduced by a factor of 10, and the step is retried,
+c until it succeeds or h reaches hmin.
+c-----------------------------------------------------------------------
+ 640  if (kflag .eq. -10) go to 660
+      rh = 0.1d0
+      rh = DMAX1(hmin/dabs(h),rh)
+      h = h*rh
+      do 645 i = 1,n
+ 645    y(i) = yh(i,1)
+      CALL f (neq, tn, y, savf)
+      nfe = nfe + 1
+      do 650 i = 1,n
+ 650    yh(i,2) = h*savf(i)
+      ipup = miter
+      ialth = 5
+      if (nq .eq. 1) go to 200
+      nq = 1
+      l = 2
+      iret = 3
+      go to 150
+c-----------------------------------------------------------------------
+c all returns are made through this section.  h is saved in hold
+c to allow the caller to change h on the next step.
+c-----------------------------------------------------------------------
+ 660  kflag = -1
+      go to 720
+ 670  kflag = -2
+      go to 720
+ 680  kflag = -3
+      go to 720
+ 690  rmax = 10.0d0
+ 700  r = 1.0d0/tesco(2,nqu)
+      do 710 i = 1,n
+ 710    acor(i) = acor(i)*r
+ 720  hold = h
+      jstart = 1
+      return
+c----------------------- end of subroutine stode -----------------------
+      end
+      subroutine xerrwv (msg, nmes, nerr, level, ni, i1, i2, nr, r1, r2)
+      integer msg, nmes, nerr, level, ni, i1, i2, nr,
+     1   i, lun, lunit, mesflg, ncpw, nch, nwds
+      KPP_REAL r1, r2
+      dimension msg(nmes)
+c-----------------------------------------------------------------------
+c subroutines xerrwv, xsetf, and xsetun, as given here, constitute
+c a simplified version of the slatec error handling package.
+c written by a. c. hindmarsh at llnl.  version of march 30, 1987.
+c this version is in KPP_REAL.
+c
+c all arguments are input arguments.
+c
+c msg    = the message (hollerith literal or integer array).
+c nmes   = the length of msg (number of characters).
+c nerr   = the error number (not used).
+c level  = the error level..
+c          0 or 1 means recoverable (control returns to caller).
+c          2 means fatal (run is aborted--see note below).
+c ni     = number of integers (0, 1, or 2) to be printed with message.
+c i1,i2  = integers to be printed, depending on ni.
+c nr     = number of reals (0, 1, or 2) to be printed with message.
+c r1,r2  = reals to be printed, depending on nr.
+c
+c note..  this routine is machine-dependent and specialized for use
+c in limited context, in the following ways..
+c 1. the number of hollerith characters stored per word, denoted
+c    by ncpw below, is a data-loaded constant.
+c 2. the value of nmes is assumed to be at most 60.
+c    (multi-line messages are generated by repeated calls.)
+c 3. if level = 2, control passes to the statement   stop
+c    to abort the run.  this statement may be machine-dependent.
+c 4. r1 and r2 are assumed to be in KPP_REAL and are printed
+c    in d21.13 format.
+c 5. the common block /eh0001/ below is data-loaded (a machine-
+c    dependent feature) with default values.
+c    this block is needed for proper retention of parameters used by
+c    this routine which the user can reset by calling xsetf or xsetun.
+c    the variables in this block are as follows..
+c       mesflg = print control flag..
+c                1 means print all messages (the default).
+c                0 means no printing.
+c       lunit  = logical unit number for messages.
+c                the default is 6 (machine-dependent).
+c-----------------------------------------------------------------------
+c the following are instructions for installing this routine
+c in different machine environments.
+c
+c to change the default output unit, change the data statement
+c in the block data subprogram below.
+c
+c for a different number of characters per word, change the
+c data statement setting ncpw below, and format 10.  alternatives for
+c various computers are shown in comment cards.
+c
+c for a different run-abort command, change the statement following
+c statement 100 at the end.
+c-----------------------------------------------------------------------
+      common /eh0001/ mesflg, lunit
+c-----------------------------------------------------------------------
+c the following data-loaded value of ncpw is valid for the cdc-6600
+c and cdc-7600 computers.
+c     data ncpw/10/
+c the following is valid for the cray-1 computer.
+c     data ncpw/8/
+c the following is valid for the burroughs 6700 and 7800 computers.
+c     data ncpw/6/
+c the following is valid for the pdp-10 computer.
+c     data ncpw/5/
+c the following is valid for the vax computer with 4 bytes per integer,
+c and for the ibm-360, ibm-370, ibm-303x, and ibm-43xx computers.
+      data ncpw/4/
+c the following is valid for the pdp-11, or vax with 2-byte integers.
+c     data ncpw/2/
+c-----------------------------------------------------------------------
+      if (mesflg .eq. 0) go to 100
+c get logical unit number. ---------------------------------------------
+      lun = lunit
+c get number of words in message. --------------------------------------
+      nch = min0(nmes,60)
+      nwds = nch/ncpw
+      if (nch .ne. nwds*ncpw) nwds = nwds + 1
+c write the message. ---------------------------------------------------
+      write (lun, 10) (msg(i),i=1,nwds)
+c-----------------------------------------------------------------------
+c the following format statement is to have the form
+c 10  format(1x,mmann)
+c where nn = ncpw and mm is the smallest integer .ge. 60/ncpw.
+c the following is valid for ncpw = 10.
+c 10  format(1x,6a10)
+c the following is valid for ncpw = 8.
+c 10  format(1x,8a8)
+c the following is valid for ncpw = 6.
+c 10  format(1x,10a6)
+c the following is valid for ncpw = 5.
+c 10  format(1x,12a5)
+c the following is valid for ncpw = 4.
+  10  format(1x,15a4)
+c the following is valid for ncpw = 2.
+c 10  format(1x,30a2)
+c-----------------------------------------------------------------------
+      if (ni .eq. 1) write (lun, 20) i1
+ 20   format(6x,23hin above message,  i1 =,i10)
+      if (ni .eq. 2) write (lun, 30) i1,i2
+ 30   format(6x,23hin above message,  i1 =,i10,3x,4hi2 =,i10)
+      if (nr .eq. 1) write (lun, 40) r1
+ 40   format(6x,23hin above message,  r1 =,d21.13)
+      if (nr .eq. 2) write (lun, 50) r1,r2
+ 50   format(6x,15hin above,  r1 =,d21.13,3x,4hr2 =,d21.13)
+c abort the run if level = 2. ------------------------------------------
+ 100  if (level .ne. 2) return
+      stop
+c----------------------- end of subroutine xerrwv ----------------------
+      end
+      KPP_REAL function vnorm (n, v, w)
+clll. optimize
+c-----------------------------------------------------------------------
+c this function routine computes the weighted root-mean-square norm
+c of the vector of length n contained in the array v, with weights
+c contained in the array w of length n..
+c   vnorm = sqrt( (1/n) * sum( v(i)*w(i) )**2 )
+c-----------------------------------------------------------------------
+      integer n,   i
+      KPP_REAL v, w,   sum
+      dimension v(n), w(n)
+      sum = 0.0d0
+      do 10 i = 1,n
+ 10     sum = sum + (v(i)*w(i))**2
+      vnorm = DSQRT(sum/dfloat(n))
+      return
+c----------------------- end of function vnorm -------------------------
+      end
+      subroutine ewset (n, itol, RelTol, AbsTol, ycur, ewt)
+clll. optimize
+c-----------------------------------------------------------------------
+c this subroutine sets the error weight vector ewt according to
+c     ewt(i) = RelTol(i)*abs(ycur(i)) + AbsTol(i),  i = 1,...,n,
+c with the subscript on RelTol and/or AbsTol possibly replaced by 1 above,
+c depending on the value of itol.
+c-----------------------------------------------------------------------
+      integer n, itol
+      integer i
+      KPP_REAL RelTol, AbsTol, ycur, ewt
+      dimension RelTol(1), AbsTol(1), ycur(n), ewt(n)
+c
+      go to (10, 20, 30, 40), itol
+ 10   continue
+      do 15 i = 1,n
+ 15     ewt(i) = RelTol(1)*dabs(ycur(i)) + AbsTol(1)
+      return
+ 20   continue
+      do 25 i = 1,n
+ 25     ewt(i) = RelTol(1)*dabs(ycur(i)) + AbsTol(i)
+      return
+ 30   continue
+      do 35 i = 1,n
+ 35     ewt(i) = RelTol(i)*dabs(ycur(i)) + AbsTol(1)
+      return
+ 40   continue
+      do 45 i = 1,n
+ 45     ewt(i) = RelTol(i)*dabs(ycur(i)) + AbsTol(i)
+      return
+c----------------------- end of subroutine ewset -----------------------
+      end
+      subroutine cfode (meth, elco, tesco)
+clll. optimize
+      integer meth
+      integer i, ib, nq, nqm1, nqp1
+      KPP_REAL elco, tesco
+      KPP_REAL agamq, fnq, fnqm1, pc, pint, ragq,
+     1   rqfac, rq1fac, tsign, xpin
+      dimension elco(13,12), tesco(3,12)
+c-----------------------------------------------------------------------
+c cfode is called by the integrator routine to set coefficients
+c needed there.  the coefficients for the current method, as
+c given by the value of meth, are set for all orders and saved.
+c the maximum order assumed here is 12 if meth = 1 and 5 if meth = 2.
+c (a smaller value of the maximum order is also allowed.)
+c cfode is called once at the beginning of the problem,
+c and is not called again unless and until meth is changed.
+c
+c the elco array contains the basic method coefficients.
+c the coefficients el(i), 1 .le. i .le. nq+1, for the method of
+c order nq are stored in elco(i,nq).  they are given by a genetrating
+c polynomial, i.e.,
+c     l(x) = el(1) + el(2)*x + ... + el(nq+1)*x**nq.
+c for the implicit adams methods, l(x) is given by
+c     dl/dx = (x+1)*(x+2)*...*(x+nq-1)/factorial(nq-1),    l(-1) = 0.
+c for the bdf methods, l(x) is given by
+c     l(x) = (x+1)*(x+2)* ... *(x+nq)/k,
+c where         k = factorial(nq)*(1 + 1/2 + ... + 1/nq).
+c
+c the tesco array contains test constants used for the
+c local error test and the selection of step size and/or order.
+c at order nq, tesco(k,nq) is used for the selection of step
+c size at order nq - 1 if k = 1, at order nq if k = 2, and at order
+c nq + 1 if k = 3.
+c-----------------------------------------------------------------------
+      dimension pc(12)
+c
+      go to (100, 200), meth
+c
+ 100  elco(1,1) = 1.0d0
+      elco(2,1) = 1.0d0
+      tesco(1,1) = 0.0d0
+      tesco(2,1) = 2.0d0
+      tesco(1,2) = 1.0d0
+      tesco(3,12) = 0.0d0
+      pc(1) = 1.0d0
+      rqfac = 1.0d0
+      do 140 nq = 2,12
+c-----------------------------------------------------------------------
+c the pc array will contain the coefficients of the polynomial
+c     p(x) = (x+1)*(x+2)*...*(x+nq-1).
+c initially, p(x) = 1.
+c-----------------------------------------------------------------------
+        rq1fac = rqfac
+        rqfac = rqfac/dfloat(nq)
+        nqm1 = nq - 1
+        fnqm1 = dfloat(nqm1)
+        nqp1 = nq + 1
+c form coefficients of p(x)*(x+nq-1). ----------------------------------
+        pc(nq) = 0.0d0
+        do 110 ib = 1,nqm1
+          i = nqp1 - ib
+ 110      pc(i) = pc(i-1) + fnqm1*pc(i)
+        pc(1) = fnqm1*pc(1)
+c compute integral, -1 to 0, of p(x) and x*p(x). -----------------------
+        pint = pc(1)
+        xpin = pc(1)/2.0d0
+        tsign = 1.0d0
+        do 120 i = 2,nq
+          tsign = -tsign
+          pint = pint + tsign*pc(i)/dfloat(i)
+ 120      xpin = xpin + tsign*pc(i)/dfloat(i+1)
+c store coefficients in elco and tesco. --------------------------------
+        elco(1,nq) = pint*rq1fac
+        elco(2,nq) = 1.0d0
+        do 130 i = 2,nq
+ 130      elco(i+1,nq) = rq1fac*pc(i)/dfloat(i)
+        agamq = rqfac*xpin
+        ragq = 1.0d0/agamq
+        tesco(2,nq) = ragq
+        if (nq .lt. 12) tesco(1,nqp1) = ragq*rqfac/dfloat(nqp1)
+        tesco(3,nqm1) = ragq
+ 140    continue
+      return
+c
+ 200  pc(1) = 1.0d0
+      rq1fac = 1.0d0
+      do 230 nq = 1,5
+c-----------------------------------------------------------------------
+c the pc array will contain the coefficients of the polynomial
+c     p(x) = (x+1)*(x+2)*...*(x+nq).
+c initially, p(x) = 1.
+c-----------------------------------------------------------------------
+        fnq = dfloat(nq)
+        nqp1 = nq + 1
+c form coefficients of p(x)*(x+nq). ------------------------------------
+        pc(nqp1) = 0.0d0
+        do 210 ib = 1,nq
+          i = nq + 2 - ib
+ 210      pc(i) = pc(i-1) + fnq*pc(i)
+        pc(1) = fnq*pc(1)
+c store coefficients in elco and tesco. --------------------------------
+        do 220 i = 1,nqp1
+ 220      elco(i,nq) = pc(i)/pc(2)
+        elco(2,nq) = 1.0d0
+        tesco(1,nq) = rq1fac
+        tesco(2,nq) = dfloat(nqp1)/elco(1,nq)
+        tesco(3,nq) = dfloat(nq+2)/elco(1,nq)
+        rq1fac = rq1fac/fnq
+ 230    continue
+      return
+c----------------------- end of subroutine cfode -----------------------
+      end
+      subroutine cdrv
+     *     (n, r,c,ic, ia,ja,a, b, z, nsp,isp,rsp,esp, path, flag)
+clll. optimize
+c*** subroutine cdrv
+c*** driver for subroutines for solving sparse nonsymmetric systems of
+c       linear equations (compressed pointer storage)
+c
+c
+c    parameters
+c    class abbreviations are--
+c       n - integer variable
+c       f - real variable
+c       v - supplies a value to the driver
+c       r - returns a result from the driver
+c       i - used internally by the driver
+c       a - array
+c
+c class - parameter
+c ------+----------
+c       -
+c         the nonzero entries of the coefficient matrix m are stored
+c    row-by-row in the array a.  to identify the individual nonzero
+c    entries in each row, we need to know in which column each entry
+c    lies.  the column indices which correspond to the nonzero entries
+c    of m are stored in the array ja.  i.e., if  a(k) = m(i,j),  then
+c    ja(k) = j.  in addition, we need to know where each row starts and
+c    how long it is.  the index positions in ja and a where the rows of
+c    m begin are stored in the array ia.  i.e., if m(i,j) is the first
+c    nonzero entry (stored) in the i-th row and a(k) = m(i,j),  then
+c    ia(i) = k.  moreover, the index in ja and a of the first location
+c    following the last element in the last row is stored in ia(n+1).
+c    thus, the number of entries in the i-th row is given by
+c    ia(i+1) - ia(i),  the nonzero entries of the i-th row are stored
+c    consecutively in
+c            a(ia(i)),  a(ia(i)+1),  ..., a(ia(i+1)-1),
+c    and the corresponding column indices are stored consecutively in
+c            ja(ia(i)), ja(ia(i)+1), ..., ja(ia(i+1)-1).
+c    for example, the 5 by 5 matrix
+c                ( 1. 0. 2. 0. 0.)
+c                ( 0. 3. 0. 0. 0.)
+c            m = ( 0. 4. 5. 6. 0.)
+c                ( 0. 0. 0. 7. 0.)
+c                ( 0. 0. 0. 8. 9.)
+c    would be stored as
+c               - 1  2  3  4  5  6  7  8  9
+c            ---+--------------------------
+c            ia - 1  3  4  7  8 10
+c            ja - 1  3  2  2  3  4  4  4  5
+c             a - 1. 2. 3. 4. 5. 6. 7. 8. 9.         .
+c
+c nv    - n     - number of variables/equations.
+c fva   - a     - nonzero entries of the coefficient matrix m, stored
+c       -           by rows.
+c       -           size = number of nonzero entries in m.
+c nva   - ia    - pointers to delimit the rows in a.
+c       -           size = n+1.
+c nva   - ja    - column numbers corresponding to the elements of a.
+c       -           size = size of a.
+c fva   - b     - right-hand side b.  b and z can the same array.
+c       -           size = n.
+c fra   - z     - solution x.  b and z can be the same array.
+c       -           size = n.
+c
+c         the rows and columns of the original matrix m can be
+c    reordered (e.g., to reduce fillin or ensure numerical stability)
+c    before calling the driver.  if no reordering is done, then set
+c    r(i) = c(i) = ic(i) = i  for i=1,...,n.  the solution z is returned
+c    in the original order.
+c         if the columns have been reordered (i.e.,  c(i).ne.i  for some
+c    i), then the driver will CALL a subroutine (nroc) which rearranges
+c    each row of ja and a, leaving the rows in the original order, but
+c    placing the elements of each row in increasing order with respect
+c    to the new ordering.  if  path.ne.1,  then nroc is assumed to have
+c    been called already.
+c
+c nva   - r     - ordering of the rows of m.
+c       -           size = n.
+c nva   - c     - ordering of the columns of m.
+c       -           size = n.
+c nva   - ic    - inverse of the ordering of the columns of m.  i.e.,
+c       -           ic(c(i)) = i  for i=1,...,n.
+c       -           size = n.
+c
+c         the solution of the system of linear equations is divided into
+c    three stages --
+c      nsfc -- the matrix m is processed symbolically to determine where
+c               fillin will occur during the numeric factorization.
+c      nnfc -- the matrix m is factored numerically into the product ldu
+c               of a unit lower triangular matrix l, a diagonal matrix
+c               d, and a unit upper triangular matrix u, and the system
+c               mx = b  is solved.
+c      nnsc -- the linear system  mx = b  is solved using the ldu
+c  or           factorization from nnfc.
+c      nntc -- the transposed linear system  mt x = b  is solved using
+c               the ldu factorization from nnf.
+c    for several systems whose coefficient matrices have the same
+c    nonzero structure, nsfc need be done only once (for the first
+c    system).  then nnfc is done once for each additional system.  for
+c    several systems with the same coefficient matrix, nsfc and nnfc
+c    need be done only once (for the first system).  then nnsc or nntc
+c    is done once for each additional right-hand side.
+c
+c nv    - path  - path specification.  values and their meanings are --
+c       -           1  perform nroc, nsfc, and nnfc.
+c       -           2  perform nnfc only  (nsfc is assumed to have been
+c       -               done in a manner compatible with the storage
+c       -               allocation used in the driver).
+c       -           3  perform nnsc only  (nsfc and nnfc are assumed to
+c       -               have been done in a manner compatible with the
+c       -               storage allocation used in the driver).
+c       -           4  perform nntc only  (nsfc and nnfc are assumed to
+c       -               have been done in a manner compatible with the
+c       -               storage allocation used in the driver).
+c       -           5  perform nroc and nsfc.
+c
+c         various errors are detected by the driver and the individual
+c    subroutines.
+c
+c nr    - flag  - error flag.  values and their meanings are --
+c       -             0     no errors detected
+c       -             n+k   null row in a  --  row = k
+c       -            2n+k   duplicate entry in a  --  row = k
+c       -            3n+k   insufficient storage in nsfc  --  row = k
+c       -            4n+1   insufficient storage in nnfc
+c       -            5n+k   null pivot  --  row = k
+c       -            6n+k   insufficient storage in nsfc  --  row = k
+c       -            7n+1   insufficient storage in nnfc
+c       -            8n+k   zero pivot  --  row = k
+c       -           10n+1   insufficient storage in cdrv
+c       -           11n+1   illegal path specification
+c
+c         working storage is needed for the factored form of the matrix
+c    m plus various temporary vectors.  the arrays isp and rsp should be
+c    equivalenced.  integer storage is allocated from the beginning of
+c    isp and real storage from the end of rsp.
+c
+c nv    - nsp   - declared dimension of rsp.  nsp generally must
+c       -           be larger than  8n+2 + 2k  (where  k = (number of
+c       -           nonzero entries in m)).
+c nvira - isp   - integer working storage divided up into various arrays
+c       -           needed by the subroutines.  isp and rsp should be
+c       -           equivalenced.
+c       -           size = lratio*nsp.
+c fvira - rsp   - real working storage divided up into various arrays
+c       -           needed by the subroutines.  isp and rsp should be
+c       -           equivalenced.
+c       -           size = nsp.
+c nr    - esp   - if sufficient storage was available to perform the
+c       -           symbolic factorization (nsfc), then esp is set to
+c       -           the amount of excess storage provided (negative if
+c       -           insufficient storage was available to perform the
+c       -           numeric factorization (nnfc)).
+c
+c
+c  conversion to KPP_REAL
+c
+c    to convert these routines for KPP_REAL arrays..
+c    (1) use the KPP_REAL declarations in place of the real
+c    declarations in each subprogram, as given in comment cards.
+c    (2) change the data-loaded value of the integer  lratio
+c    in subroutine cdrv, as indicated below.
+c    (3) change e0 to d0 in the constants in statement number 10
+c    in subroutine nnfc and the line following that.
+c
+      integer  r(1), c(1), ic(1),  ia(1), ja(1),  isp(1), esp,  path,
+     *   flag,  d, u, q, row, tmp, ar,  umax
+      KPP_REAL  a(1), b(1), z(1), rsp(1)
+c
+c  set lratio equal to the ratio between the length of floating point
+c  and integer array data.  e. g., lratio = 1 for (real, integer),
+c  lratio = 2 for (KPP_REAL, integer)
+c
+      data lratio/2/
+c
+      if (path.lt.1 .or. 5.lt.path)  go to 111
+c******initialize and divide up temporary storage  *******************
+      il   = 1
+      ijl  = il  + (n+1)
+      iu   = ijl +   n
+      iju  = iu  + (n+1)
+      irl  = iju +   n
+      jrl  = irl +   n
+      jl   = jrl +   n
+c
+c  ******  reorder a if necessary, CALL nsfc if flag is set  ***********
+      if ((path-1) * (path-5) .ne. 0)  go to 5
+        max = (lratio*nsp + 1 - jl) - (n+1) - 5*n
+        jlmax = max/2
+        q     = jl   + jlmax
+        ira   = q    + (n+1)
+        jra   = ira  +   n
+        irac  = jra  +   n
+        iru   = irac +   n
+        jru   = iru  +   n
+        jutmp = jru  +   n
+        jumax = lratio*nsp  + 1 - jutmp
+        esp = max/lratio
+        if (jlmax.le.0 .or. jumax.le.0)  go to 110
+c
+        do 1 i=1,n
+          if (c(i).ne.i)  go to 2
+   1      continue
+        go to 3
+   2    ar = nsp + 1 - n
+        CALL  nroc
+     *     (n, ic, ia,ja,a, isp(il), rsp(ar), isp(iu), flag)
+        if (flag.ne.0)  go to 100
+c
+   3    CALL  nsfc
+     *     (n, r, ic, ia,ja,
+     *      jlmax, isp(il), isp(jl), isp(ijl),
+     *      jumax, isp(iu), isp(jutmp), isp(iju),
+     *      isp(q), isp(ira), isp(jra), isp(irac),
+     *      isp(irl), isp(jrl), isp(iru), isp(jru),  flag)
+        if(flag .ne. 0)  go to 100
+c  ******  move ju next to jl  *****************************************
+        jlmax = isp(ijl+n-1)
+        ju    = jl + jlmax
+        jumax = isp(iju+n-1)
+        if (jumax.le.0)  go to 5
+        do 4 j=1,jumax
+   4      isp(ju+j-1) = isp(jutmp+j-1)
+c
+c  ******  CALL remaining subroutines  *********************************
+   5  jlmax = isp(ijl+n-1)
+      ju    = jl  + jlmax
+      jumax = isp(iju+n-1)
+      l     = (ju + jumax - 2 + lratio)  /  lratio    +    1
+      lmax  = isp(il+n) - 1
+      d     = l   + lmax
+      u     = d   + n
+      row   = nsp + 1 - n
+      tmp   = row - n
+      umax  = tmp - u
+      esp   = umax - (isp(iu+n) - 1)
+c
+      if ((path-1) * (path-2) .ne. 0)  go to 6
+        if (umax.lt.0)  go to 110
+        CALL nnfc
+     *     (n,  r, c, ic,  ia, ja, a, z, b,
+     *      lmax, isp(il), isp(jl), isp(ijl), rsp(l),  rsp(d),
+     *      umax, isp(iu), isp(ju), isp(iju), rsp(u),
+     *      rsp(row), rsp(tmp),  isp(irl), isp(jrl),  flag)
+        if(flag .ne. 0)  go to 100
+c
+   6  if ((path-3) .ne. 0)  go to 7
+        CALL nnsc
+     *     (n,  r, c,  isp(il), isp(jl), isp(ijl), rsp(l),
+     *      rsp(d),    isp(iu), isp(ju), isp(iju), rsp(u),
+     *      z, b,  rsp(tmp))
+c
+   7  if ((path-4) .ne. 0)  go to 8
+        CALL nntc
+     *     (n,  r, c,  isp(il), isp(jl), isp(ijl), rsp(l),
+     *      rsp(d),    isp(iu), isp(ju), isp(iju), rsp(u),
+     *      z, b,  rsp(tmp))
+   8  return
+c
+c ** error.. error detected in nroc, nsfc, nnfc, or nnsc
+ 100  return
+c ** error.. insufficient storage
+ 110  flag = 10*n + 1
+      return
+c ** error.. illegal path specification
+ 111  flag = 11*n + 1
+      return
+      end
+      subroutine prep (neq, y, yh, savf, ewt, ftem, ia, ja,
+     1                     wk, iwk, ipper, f, jac)
+clll. optimize
+      external f,jac
+      integer neq(*), ia(*), ja(*), iwk(*), ipper
+      integer iownd, iowns,
+     1   icf, ierpj, iersl, jcur, jstart, kflag, l, meth, miter,
+     2   maxord, maxcor, msbp, mxncf, n, nq, nst, nfe, nje, nqu
+      integer iplost, iesp, istatc, iys, iba, ibian, ibjan, ibjgp,
+     1   ipian, ipjan, ipjgp, ipigp, ipr, ipc, ipic, ipisp, iprsp, ipa,
+     2   lenyh, lenyhm, lenwk, lreq, lrat, lrest, lwmin, moss, msbj,
+     3   nslj, ngp, nlu, nnz, nsp, nzl, nzu
+      integer i, ibr, ier, ipil, ipiu, iptt1, iptt2, j, jfound, k,
+     1   knew, kmax, kmin, ldif, lenigp, liwk, maxg, np1, nzsut
+      KPP_REAL y(*), yh(*), savf(*), ewt(*), ftem(*), wk(*)
+      KPP_REAL rowns,
+     1   ccmax, el0, h, hmin, hmxi, hu, rc, tn, uround
+      KPP_REAL con0, conmin, ccmxj, psmall, rbig, seth
+      KPP_REAL dq, dyj, erwt, fac, yj, JJJ(n,n)
+      common /ls0001/ rowns(209),
+     2   ccmax, el0, h, hmin, hmxi, hu, rc, tn, uround,
+     3   iownd(14), iowns(6),
+     4   icf, ierpj, iersl, jcur, jstart, kflag, l, meth, miter,
+     5   maxord, maxcor, msbp, mxncf, n, nq, nst, nfe, nje, nqu
+      common /lss001/ con0, conmin, ccmxj, psmall, rbig, seth,
+     1   iplost, iesp, istatc, iys, iba, ibian, ibjan, ibjgp,
+     2   ipian, ipjan, ipjgp, ipigp, ipr, ipc, ipic, ipisp, iprsp, ipa,
+     3   lenyh, lenyhm, lenwk, lreq, lrat, lrest, lwmin, moss, msbj,
+     4   nslj, ngp, nlu, nnz, nsp, nzl, nzu
+c-----------------------------------------------------------------------
+c this routine performs preprocessing related to the sparse linear
+c systems that must be solved if miter = 1 or 2.
+c the operations that are performed here are..
+c  * compute sparseness structure of jacobian according to moss,
+c  * compute grouping of column indices (miter = 2),
+c  * compute a new ordering of rows and columns of the matrix,
+c  * reorder ja corresponding to the new ordering,
+c  * perform a symbolic lu factorization of the matrix, and
+c  * set pointers for segments of the iwk/wk array.
+c in addition to variables described previously, prep uses the
+c following for communication..
+c yh     = the history array.  only the first column, containing the
+c          current y vector, is used.  used only if moss .ne. 0.
+c savf   = a work array of length neq, used only if moss .ne. 0.
+c ewt    = array of length neq containing (inverted) error weights.
+c          used only if moss = 2 or if istate = moss = 1.
+c ftem   = a work array of length neq, identical to acor in the driver,
+c          used only if moss = 2.
+c wk     = a real work array of length lenwk, identical to wm in
+c          the driver.
+c iwk    = integer work array, assumed to occupy the same space as wk.
+c lenwk  = the length of the work arrays wk and iwk.
+c istatc = a copy of the driver input argument istate (= 1 on the
+c          first call, = 3 on a continuation call).
+c iys    = flag value from odrv or cdrv.
+c ipper  = output error flag with the following values and meanings..
+c          0  no error.
+c         -1  insufficient storage for internal structure pointers.
+c         -2  insufficient storage for jgroup.
+c         -3  insufficient storage for odrv.
+c         -4  other error flag from odrv (should never occur).
+c         -5  insufficient storage for cdrv.
+c         -6  other error flag from cdrv.
+c-----------------------------------------------------------------------
+      ibian = lrat*2
+      ipian = ibian + 1
+      np1 = n + 1
+      ipjan = ipian + np1
+      ibjan = ipjan - 1
+      liwk = lenwk*lrat
+      if (ipjan+n-1 .gt. liwk) go to 210
+      if (moss .eq. 0) go to 30
+c
+      if (istatc .eq. 3) go to 20
+c istate = 1 and moss .ne. 0.  perturb y for structure determination. --
+      do 10 i = 1,n
+        erwt = 1.0d0/ewt(i)
+        fac = 1.0d0 + 1.0d0/(dfloat(i)+1.0d0)
+        y(i) = y(i) + fac*DSIGN(erwt,y(i))
+ 10     continue
+      go to (70, 100), moss
+c
+ 20   continue
+c istate = 3 and moss .ne. 0.  load y from yh(*,1). --------------------
+      do 25 i = 1,n
+ 25     y(i) = yh(i)
+      go to (70, 100), moss
+c
+c moss = 0.  process user-s ia,ja.  add diagonal entries if necessary. -
+ 30   knew = ipjan
+      kmin = ia(1)
+      iwk(ipian) = 1
+      do 60 j = 1,n
+        jfound = 0
+        kmax = ia(j+1) - 1
+        if (kmin .gt. kmax) go to 45
+        do 40 k = kmin,kmax
+          i = ja(k)
+          if (i .eq. j) jfound = 1
+          if (knew .gt. liwk) go to 210
+          iwk(knew) = i
+          knew = knew + 1
+ 40       continue
+        if (jfound .eq. 1) go to 50
+ 45     if (knew .gt. liwk) go to 210
+        iwk(knew) = j
+        knew = knew + 1
+ 50     iwk(ipian+j) = knew + 1 - ipjan
+        kmin = kmax + 1
+ 60     continue
+      go to 140
+c
+c moss = 1.  compute structure from user-supplied jacobian routine jac.
+ 70   continue
+c a dummy CALL to f allows user to create temporaries for use in jac. --
+      CALL f (neq, tn, y, savf)
+      k = ipjan
+      iwk(ipian) = 1
+      call jac_chem (neq, tn, y, JJJ, j, iwk(ipian), iwk(ipjan))
+      do 90 j = 1,n
+        if (k .gt. liwk) go to 210
+        iwk(k) = j
+        k = k + 1
+        do 75 i = 1,n
+ 75       savf(i) = 0.0d0
+C        call jac_chem (neq, tn, y, j, iwk(ipian), iwk(ipjan), savf)
+        do i=1,n
+           savf(i) = JJJ(i,j)
+        end do
+        do 80 i = 1,n
+          if (dabs(savf(i)) .le. seth) go to 80
+          if (i .eq. j) go to 80
+          if (k .gt. liwk) go to 210
+          iwk(k) = i
+          k = k + 1
+ 80       continue
+        iwk(ipian+j) = k + 1 - ipjan
+ 90     continue
+      go to 140
+c
+c moss = 2.  compute structure from results of n + 1 calls to f. -------
+ 100  k = ipjan
+      iwk(ipian) = 1
+      CALL f (neq, tn, y, savf)
+      do 120 j = 1,n
+        if (k .gt. liwk) go to 210
+        iwk(k) = j
+        k = k + 1
+        yj = y(j)
+        erwt = 1.0d0/ewt(j)
+        dyj = DSIGN(erwt,yj)
+        y(j) = yj + dyj
+        CALL f (neq, tn, y, ftem)
+        y(j) = yj
+        do 110 i = 1,n
+          dq = (ftem(i) - savf(i))/dyj
+          if (dabs(dq) .le. seth) go to 110
+          if (i .eq. j) go to 110
+          if (k .gt. liwk) go to 210
+          iwk(k) = i
+          k = k + 1
+ 110      continue
+        iwk(ipian+j) = k + 1 - ipjan
+ 120    continue
+c
+ 140  continue
+      if (moss .eq. 0 .or. istatc .ne. 1) go to 150
+c if istate = 1 and moss .ne. 0, restore y from yh. --------------------
+      do 145 i = 1,n
+ 145    y(i) = yh(i)
+ 150  nnz = iwk(ipian+n) - 1
+      lenigp = 0
+      ipigp = ipjan + nnz
+      if (miter .ne. 2) go to 160
+c
+c compute grouping of column indices (miter = 2). ----------------------
+      maxg = np1
+      ipjgp = ipjan + nnz
+      ibjgp = ipjgp - 1
+      ipigp = ipjgp + n
+      iptt1 = ipigp + np1
+      iptt2 = iptt1 + n
+      lreq = iptt2 + n - 1
+      if (lreq .gt. liwk) go to 220
+      CALL jgroup (n, iwk(ipian), iwk(ipjan), maxg, ngp, iwk(ipigp),
+     1   iwk(ipjgp), iwk(iptt1), iwk(iptt2), ier)
+      if (ier .ne. 0) go to 220
+      lenigp = ngp + 1
+c
+c compute new ordering of rows/columns of jacobian. --------------------
+ 160  ipr = ipigp + lenigp
+      ipc = ipr
+      ipic = ipc + n
+      ipisp = ipic + n
+      iprsp = (ipisp - 2)/lrat + 2
+      iesp = lenwk + 1 - iprsp
+      if (iesp .lt. 0) go to 230
+      ibr = ipr - 1
+      do 170 i = 1,n
+ 170    iwk(ibr+i) = i
+      nsp = liwk + 1 - ipisp
+      CALL odrv (n, iwk(ipian), iwk(ipjan), wk, iwk(ipr), iwk(ipic),
+     1   nsp, iwk(ipisp), 1, iys)
+      if (iys .eq. 11*n+1) go to 240
+      if (iys .ne. 0) go to 230
+c
+c reorder jan and do symbolic lu factorization of matrix. --------------
+      ipa = lenwk + 1 - nnz
+      nsp = ipa - iprsp
+      lreq = max0(12*n/lrat, 6*n/lrat+2*n+nnz) + 3
+      lreq = lreq + iprsp - 1 + nnz
+      if (lreq .gt. lenwk) go to 250
+      iba = ipa - 1
+      do 180 i = 1,nnz
+ 180    wk(iba+i) = 0.0d0
+      ipisp = lrat*(iprsp - 1) + 1
+      CALL cdrv (n,iwk(ipr),iwk(ipc),iwk(ipic),iwk(ipian),iwk(ipjan),
+     1   wk(ipa),wk(ipa),wk(ipa),nsp,iwk(ipisp),wk(iprsp),iesp,5,iys)
+      lreq = lenwk - iesp
+      if (iys .eq. 10*n+1) go to 250
+      if (iys .ne. 0) go to 260
+      ipil = ipisp
+      ipiu = ipil + 2*n + 1
+      nzu = iwk(ipil+n) - iwk(ipil)
+      nzl = iwk(ipiu+n) - iwk(ipiu)
+      if (lrat .gt. 1) go to 190
+      CALL adjlr (n, iwk(ipisp), ldif)
+      lreq = lreq + ldif
+ 190  continue
+      if (lrat .eq. 2 .and. nnz .eq. n) lreq = lreq + 1
+      nsp = nsp + lreq - lenwk
+      ipa = lreq + 1 - nnz
+      iba = ipa - 1
+      ipper = 0
+      return
+c
+ 210  ipper = -1
+      lreq = 2 + (2*n + 1)/lrat
+      lreq = max0(lenwk+1,lreq)
+      return
+c
+ 220  ipper = -2
+      lreq = (lreq - 1)/lrat + 1
+      return
+c
+ 230  ipper = -3
+      CALL cntnzu (n, iwk(ipian), iwk(ipjan), nzsut)
+      lreq = lenwk - iesp + (3*n + 4*nzsut - 1)/lrat + 1
+      return
+c
+ 240  ipper = -4
+      return
+c
+ 250  ipper = -5
+      return
+c
+ 260  ipper = -6
+      lreq = lenwk
+      return
+c----------------------- end of subroutine prep ------------------------
+      end
+      subroutine cntnzu (n, ia, ja, nzsut)
+      integer n, ia, ja, nzsut
+      dimension ia(1), ja(1)
+c-----------------------------------------------------------------------
+c this routine counts the number of nonzero elements in the strict
+c upper triangle of the matrix m + m(transpose), where the sparsity
+c structure of m is given by pointer arrays ia and ja.
+c this is needed to compute the storage requirements for the
+c sparse matrix reordering operation in odrv.
+c-----------------------------------------------------------------------
+      integer ii, jj, j, jmin, jmax, k, kmin, kmax, num
+c
+      num = 0
+      do 50 ii = 1,n
+        jmin = ia(ii)
+        jmax = ia(ii+1) - 1
+        if (jmin .gt. jmax) go to 50
+        do 40 j = jmin,jmax
+          if (ja(j) - ii) 10, 40, 30
+ 10       jj =ja(j)
+          kmin = ia(jj)
+          kmax = ia(jj+1) - 1
+          if (kmin .gt. kmax) go to 30
+          do 20 k = kmin,kmax
+            if (ja(k) .eq. ii) go to 40
+ 20         continue
+ 30       num = num + 1
+ 40       continue
+ 50     continue
+      nzsut = num
+      return
+c----------------------- end of subroutine cntnzu ----------------------
+      end
+      subroutine nntc
+     *     (n, r, c, il, jl, ijl, l, d, iu, ju, iju, u, z, b, tmp)
+clll. optimize
+c*** subroutine nntc
+c*** numeric solution of the transpose of a sparse nonsymmetric system
+c      of linear equations given lu-factorization (compressed pointer
+c      storage)
+c
+c
+c       input variables..  n, r, c, il, jl, ijl, l, d, iu, ju, iju, u, b
+c       output variables.. z
+c
+c       parameters used internally..
+c fia   - tmp   - temporary vector which gets result of solving ut y = b
+c       -           size = n.
+c
+c  internal variables..
+c    jmin, jmax - indices of the first and last positions in a row of
+c      u or l  to be used.
+c
+      integer r(1), c(1), il(1), jl(1), ijl(1), iu(1), ju(1), iju(1)
+      KPP_REAL l(1), d(1), u(1), b(1), z(1), tmp(1), tmpk,sum
+c
+c  ******  set tmp to reordered b  *************************************
+      do 1 k=1,n
+   1    tmp(k) = b(c(k))
+c  ******  solve  ut y = b  by forward substitution  *******************
+      do 3 k=1,n
+        jmin = iu(k)
+        jmax = iu(k+1) - 1
+        tmpk = -tmp(k)
+        if (jmin .gt. jmax) go to 3
+        mu = iju(k) - jmin
+        do 2 j=jmin,jmax
+   2      tmp(ju(mu+j)) = tmp(ju(mu+j)) + tmpk * u(j)
+   3    continue
+c  ******  solve  lt x = y  by back substitution  **********************
+      k = n
+      do 6 i=1,n
+        sum = -tmp(k)
+        jmin = il(k)
+        jmax = il(k+1) - 1
+        if (jmin .gt. jmax) go to 5
+        ml = ijl(k) - jmin
+        do 4 j=jmin,jmax
+   4      sum = sum + l(j) * tmp(jl(ml+j))
+   5    tmp(k) = -sum * d(k)
+        z(r(k)) = tmp(k)
+        k = k - 1
+   6    continue
+      return
+      end
+      subroutine nnsc
+     *     (n, r, c, il, jl, ijl, l, d, iu, ju, iju, u, z, b, tmp)
+clll. optimize
+c*** subroutine nnsc
+c*** numerical solution of sparse nonsymmetric system of linear
+c      equations given ldu-factorization (compressed pointer storage)
+c
+c
+c       input variables..  n, r, c, il, jl, ijl, l, d, iu, ju, iju, u, b
+c       output variables.. z
+c
+c       parameters used internally..
+c fia   - tmp   - temporary vector which gets result of solving  ly = b.
+c       -           size = n.
+c
+c  internal variables..
+c    jmin, jmax - indices of the first and last positions in a row of
+c      u or l  to be used.
+c
+      integer r(1), c(1), il(1), jl(1), ijl(1), iu(1), ju(1), iju(1)
+      KPP_REAL  l(1), d(1), u(1), b(1), z(1), tmp(1), tmpk,sum
+c
+c  ******  set tmp to reordered b  *************************************
+      do 1 k=1,n
+   1    tmp(k) = b(r(k))
+c  ******  solve  ly = b  by forward substitution  *********************
+      do 3 k=1,n
+        jmin = il(k)
+        jmax = il(k+1) - 1
+        tmpk = -d(k) * tmp(k)
+        tmp(k) = -tmpk
+        if (jmin .gt. jmax) go to 3
+        ml = ijl(k) - jmin
+        do 2 j=jmin,jmax
+   2      tmp(jl(ml+j)) = tmp(jl(ml+j)) + tmpk * l(j)
+   3    continue
+c  ******  solve  ux = y  by back substitution  ************************
+      k = n
+      do 6 i=1,n
+        sum = -tmp(k)
+        jmin = iu(k)
+        jmax = iu(k+1) - 1
+        if (jmin .gt. jmax) go to 5
+        mu = iju(k) - jmin
+        do 4 j=jmin,jmax
+   4      sum = sum + u(j) * tmp(ju(mu+j))
+   5    tmp(k) = -sum
+        z(c(k)) = -sum
+        k = k - 1
+   6    continue
+      return
+      end
+      subroutine nroc (n, ic, ia, ja, a, jar, ar, p, flag)
+clll. optimize
+c
+c       ----------------------------------------------------------------
+c
+c               yale sparse matrix package - nonsymmetric codes
+c                    solving the system of equations mx = b
+c
+c    i.   calling sequences
+c         the coefficient matrix can be processed by an ordering routine
+c    (e.g., to reduce fillin or ensure numerical stability) before using
+c    the remaining subroutines.  if no reordering is done, then set
+c    r(i) = c(i) = ic(i) = i  for i=1,...,n.  if an ordering subroutine
+c    is used, then nroc should be used to reorder the coefficient matrix
+c    the calling sequence is --
+c        (       (matrix ordering))
+c        (nroc   (matrix reordering))
+c         nsfc   (symbolic factorization to determine where fillin will
+c                  occur during numeric factorization)
+c         nnfc   (numeric factorization into product ldu of unit lower
+c                  triangular matrix l, diagonal matrix d, and unit
+c                  upper triangular matrix u, and solution of linear
+c                  system)
+c         nnsc   (solution of linear system for additional right-hand
+c                  side using ldu factorization from nnfc)
+c    (if only one system of equations is to be solved, then the
+c    subroutine trk should be used.)
+c
+c    ii.  storage of sparse matrices
+c         the nonzero entries of the coefficient matrix m are stored
+c    row-by-row in the array a.  to identify the individual nonzero
+c    entries in each row, we need to know in which column each entry
+c    lies.  the column indices which correspond to the nonzero entries
+c    of m are stored in the array ja.  i.e., if  a(k) = m(i,j),  then
+c    ja(k) = j.  in addition, we need to know where each row starts and
+c    how long it is.  the index positions in ja and a where the rows of
+c    m begin are stored in the array ia.  i.e., if m(i,j) is the first
+c    (leftmost) entry in the i-th row and  a(k) = m(i,j),  then
+c    ia(i) = k.  moreover, the index in ja and a of the first location
+c    following the last element in the last row is stored in ia(n+1).
+c    thus, the number of entries in the i-th row is given by
+c    ia(i+1) - ia(i),  the nonzero entries of the i-th row are stored
+c    consecutively in
+c            a(ia(i)),  a(ia(i)+1),  ..., a(ia(i+1)-1),
+c    and the corresponding column indices are stored consecutively in
+c            ja(ia(i)), ja(ia(i)+1), ..., ja(ia(i+1)-1).
+c    for example, the 5 by 5 matrix
+c                ( 1. 0. 2. 0. 0.)
+c                ( 0. 3. 0. 0. 0.)
+c            m = ( 0. 4. 5. 6. 0.)
+c                ( 0. 0. 0. 7. 0.)
+c                ( 0. 0. 0. 8. 9.)
+c    would be stored as
+c               - 1  2  3  4  5  6  7  8  9
+c            ---+--------------------------
+c            ia - 1  3  4  7  8 10
+c            ja - 1  3  2  2  3  4  4  4  5
+c             a - 1. 2. 3. 4. 5. 6. 7. 8. 9.         .
+c
+c         the strict upper (lower) triangular portion of the matrix
+c    u (l) is stored in a similar fashion using the arrays  iu, ju, u
+c    (il, jl, l)  except that an additional array iju (ijl) is used to
+c    compress storage of ju (jl) by allowing some sequences of column
+c    (row) indices to used for more than one row (column)  (n.b., l is
+c    stored by columns).  iju(k) (ijl(k)) points to the starting
+c    location in ju (jl) of entries for the kth row (column).
+c    compression in ju (jl) occurs in two ways.  first, if a row
+c    (column) i was merged into the current row (column) k, and the
+c    number of elements merged in from (the tail portion of) row
+c    (column) i is the same as the final length of row (column) k, then
+c    the kth row (column) and the tail of row (column) i are identical
+c    and iju(k) (ijl(k)) points to the start of the tail.  second, if
+c    some tail portion of the (k-1)st row (column) is identical to the
+c    head of the kth row (column), then iju(k) (ijl(k)) points to the
+c    start of that tail portion.  for example, the nonzero structure of
+c    the strict upper triangular part of the matrix
+c            d 0 x x x
+c            0 d 0 x x
+c            0 0 d x 0
+c            0 0 0 d x
+c            0 0 0 0 d
+c    would be represented as
+c                - 1 2 3 4 5 6
+c            ----+------------
+c             iu - 1 4 6 7 8 8
+c             ju - 3 4 5 4
+c            iju - 1 2 4 3           .
+c    the diagonal entries of l and u are assumed to be equal to one and
+c    are not stored.  the array d contains the reciprocals of the
+c    diagonal entries of the matrix d.
+c
+c    iii. additional storage savings
+c         in nsfc, r and ic can be the same array in the calling
+c    sequence if no reordering of the coefficient matrix has been done.
+c         in nnfc, r, c, and ic can all be the same array if no
+c    reordering has been done.  if only the rows have been reordered,
+c    then c and ic can be the same array.  if the row and column
+c    orderings are the same, then r and c can be the same array.  z and
+c    row can be the same array.
+c         in nnsc or nntc, r and c can be the same array if no
+c    reordering has been done or if the row and column orderings are the
+c    same.  z and b can be the same array.  however, then b will be
+c    destroyed.
+c
+c    iv.  parameters
+c         following is a list of parameters to the programs.  names are
+c    uniform among the various subroutines.  class abbreviations are --
+c       n - integer variable
+c       f - real variable
+c       v - supplies a value to a subroutine
+c       r - returns a result from a subroutine
+c       i - used internally by a subroutine
+c       a - array
+c
+c class - parameter
+c ------+----------
+c fva   - a     - nonzero entries of the coefficient matrix m, stored
+c       -           by rows.
+c       -           size = number of nonzero entries in m.
+c fva   - b     - right-hand side b.
+c       -           size = n.
+c nva   - c     - ordering of the columns of m.
+c       -           size = n.
+c fvra  - d     - reciprocals of the diagonal entries of the matrix d.
+c       -           size = n.
+c nr    - flag  - error flag.  values and their meanings are --
+c       -            0     no errors detected
+c       -            n+k   null row in a  --  row = k
+c       -           2n+k   duplicate entry in a  --  row = k
+c       -           3n+k   insufficient storage for jl  --  row = k
+c       -           4n+1   insufficient storage for l
+c       -           5n+k   null pivot  --  row = k
+c       -           6n+k   insufficient storage for ju  --  row = k
+c       -           7n+1   insufficient storage for u
+c       -           8n+k   zero pivot  --  row = k
+c nva   - ia    - pointers to delimit the rows of a.
+c       -           size = n+1.
+c nvra  - ijl   - pointers to the first element in each column in jl,
+c       -           used to compress storage in jl.
+c       -           size = n.
+c nvra  - iju   - pointers to the first element in each row in ju, used
+c       -           to compress storage in ju.
+c       -           size = n.
+c nvra  - il    - pointers to delimit the columns of l.
+c       -           size = n+1.
+c nvra  - iu    - pointers to delimit the rows of u.
+c       -           size = n+1.
+c nva   - ja    - column numbers corresponding to the elements of a.
+c       -           size = size of a.
+c nvra  - jl    - row numbers corresponding to the elements of l.
+c       -           size = jlmax.
+c nv    - jlmax - declared dimension of jl.  jlmax must be larger than
+c       -           the number of nonzeros in the strict lower triangle
+c       -           of m plus fillin minus compression.
+c nvra  - ju    - column numbers corresponding to the elements of u.
+c       -           size = jumax.
+c nv    - jumax - declared dimension of ju.  jumax must be larger than
+c       -           the number of nonzeros in the strict upper triangle
+c       -           of m plus fillin minus compression.
+c fvra  - l     - nonzero entries in the strict lower triangular portion
+c       -           of the matrix l, stored by columns.
+c       -           size = lmax.
+c nv    - lmax  - declared dimension of l.  lmax must be larger than
+c       -           the number of nonzeros in the strict lower triangle
+c       -           of m plus fillin  (il(n+1)-1 after nsfc).
+c nv    - n     - number of variables/equations.
+c nva   - r     - ordering of the rows of m.
+c       -           size = n.
+c fvra  - u     - nonzero entries in the strict upper triangular portion
+c       -           of the matrix u, stored by rows.
+c       -           size = umax.
+c nv    - umax  - declared dimension of u.  umax must be larger than
+c       -           the number of nonzeros in the strict upper triangle
+c       -           of m plus fillin  (iu(n+1)-1 after nsfc).
+c fra   - z     - solution x.
+c       -           size = n.
+c
+c       ----------------------------------------------------------------
+c
+c*** subroutine nroc
+c*** reorders rows of a, leaving row order unchanged
+c
+c
+c       input parameters.. n, ic, ia, ja, a
+c       output parameters.. ja, a, flag
+c
+c       parameters used internally..
+c nia   - p     - at the kth step, p is a linked list of the reordered
+c       -           column indices of the kth row of a.  p(n+1) points
+c       -           to the first entry in the list.
+c       -           size = n+1.
+c nia   - jar   - at the kth step,jar contains the elements of the
+c       -           reordered column indices of a.
+c       -           size = n.
+c fia   - ar    - at the kth step, ar contains the elements of the
+c       -           reordered row of a.
+c       -           size = n.
+c
+      integer  ic(1), ia(1), ja(1), jar(1), p(1), flag
+      KPP_REAL  a(1), ar(1)
+c
+c  ******  for each nonempty row  *******************************
+      do 5 k=1,n
+        jmin = ia(k)
+        jmax = ia(k+1) - 1
+        if(jmin .gt. jmax) go to 5
+        p(n+1) = n + 1
+c  ******  insert each element in the list  *********************
+        do 3 j=jmin,jmax
+          newj = ic(ja(j))
+          i = n + 1
+   1      if(p(i) .ge. newj) go to 2
+            i = p(i)
+            go to 1
+   2      if(p(i) .eq. newj) go to 102
+          p(newj) = p(i)
+          p(i) = newj
+          jar(newj) = ja(j)
+          ar(newj) = a(j)
+   3      continue
+c  ******  replace old row in ja and a  *************************
+        i = n + 1
+        do 4 j=jmin,jmax
+          i = p(i)
+          ja(j) = jar(i)
+   4      a(j) = ar(i)
+   5    continue
+      flag = 0
+      return
+c
+c ** error.. duplicate entry in a
+ 102  flag = n + k
+      return
+      end
+      subroutine adjlr (n, isp, ldif)
+      integer n, isp, ldif
+      dimension isp(1)
+c-----------------------------------------------------------------------
+c this routine computes an adjustment, ldif, to the required
+c integer storage space in iwk (sparse matrix work space).
+c it is called only if the word length ratio is lrat = 1.
+c this is to account for the possibility that the symbolic lu phase
+c may require more storage than the numerical lu and solution phases.
+c-----------------------------------------------------------------------
+      integer ip, jlmax, jumax, lnfc, lsfc, nzlu
+c
+      ip = 2*n + 1
+c get jlmax = ijl(n) and jumax = iju(n) (sizes of jl and ju). ----------
+      jlmax = isp(ip)
+      jumax = isp(ip+ip)
+c nzlu = (size of l) + (size of u) = (il(n+1)-il(1)) + (iu(n+1)-iu(1)).
+      nzlu = isp(n+1) - isp(1) + isp(ip+n+1) - isp(ip+1)
+      lsfc = 12*n + 3 + 2*max0(jlmax,jumax)
+      lnfc = 9*n + 2 + jlmax + jumax + nzlu
+      ldif = max0(0, lsfc - lnfc)
+      return
+c----------------------- end of subroutine adjlr -----------------------
+      end
+      subroutine odrv
+     *     (n, ia,ja,a, p,ip, nsp,isp, path, flag)
+clll. optimize
+c                                                                 5/2/83
+c***********************************************************************
+c  odrv -- driver for sparse matrix reordering routines
+c***********************************************************************
+c
+c  description
+c
+c    odrv finds a minimum degree ordering of the rows and columns
+c    of a matrix m stored in (ia,ja,a) format (see below).  for the
+c    reordered matrix, the work and storage required to perform
+c    gaussian elimination is (usually) significantly less.
+c
+c    note.. odrv and its subordinate routines have been modified to
+c    compute orderings for general matrices, not necessarily having any
+c    symmetry.  the miminum degree ordering is computed for the
+c    structure of the symmetric matrix  m + m-transpose.
+c    modifications to the original odrv module have been made in
+c    the coding in subroutine mdi, and in the initial comments in
+c    subroutines odrv and md.
+c
+c    if only the nonzero entries in the upper triangle of m are being
+c    stored, then odrv symmetrically reorders (ia,ja,a), (optionally)
+c    with the diagonal entries placed first in each row.  this is to
+c    ensure that if m(i,j) will be in the upper triangle of m with
+c    respect to the new ordering, then m(i,j) is stored in row i (and
+c    thus m(j,i) is not stored),  whereas if m(i,j) will be in the
+c    strict lower triangle of m, then m(j,i) is stored in row j (and
+c    thus m(i,j) is not stored).
+c
+c
+c  storage of sparse matrices
+c
+c    the nonzero entries of the matrix m are stored row-by-row in the
+c    array a.  to identify the individual nonzero entries in each row,
+c    we need to know in which column each entry lies.  these column
+c    indices are stored in the array ja.  i.e., if  a(k) = m(i,j),  then
+c    ja(k) = j.  to identify the individual rows, we need to know where
+c    each row starts.  these row pointers are stored in the array ia.
+c    i.e., if m(i,j) is the first nonzero entry (stored) in the i-th row
+c    and  a(k) = m(i,j),  then  ia(i) = k.  moreover, ia(n+1) points to
+c    the first location following the last element in the last row.
+c    thus, the number of entries in the i-th row is  ia(i+1) - ia(i),
+c    the nonzero entries in the i-th row are stored consecutively in
+c
+c            a(ia(i)),  a(ia(i)+1),  ..., a(ia(i+1)-1),
+c
+c    and the corresponding column indices are stored consecutively in
+c
+c            ja(ia(i)), ja(ia(i)+1), ..., ja(ia(i+1)-1).
+c
+c    since the coefficient matrix is symmetric, only the nonzero entries
+c    in the upper triangle need be stored.  for example, the matrix
+c
+c             ( 1  0  2  3  0 )
+c             ( 0  4  0  0  0 )
+c         m = ( 2  0  5  6  0 )
+c             ( 3  0  6  7  8 )
+c             ( 0  0  0  8  9 )
+c
+c    could be stored as
+c
+c            - 1  2  3  4  5  6  7  8  9 10 11 12 13
+c         ---+--------------------------------------
+c         ia - 1  4  5  8 12 14
+c         ja - 1  3  4  2  1  3  4  1  3  4  5  4  5
+c          a - 1  2  3  4  2  5  6  3  6  7  8  8  9
+c
+c    or (symmetrically) as
+c
+c            - 1  2  3  4  5  6  7  8  9
+c         ---+--------------------------
+c         ia - 1  4  5  7  9 10
+c         ja - 1  3  4  2  3  4  4  5  5
+c          a - 1  2  3  4  5  6  7  8  9          .
+c
+c
+c  parameters
+c
+c    n    - order of the matrix
+c
+c    ia   - integer one-dimensional array containing pointers to delimit
+c           rows in ja and a.  dimension = n+1
+c
+c    ja   - integer one-dimensional array containing the column indices
+c           corresponding to the elements of a.  dimension = number of
+c           nonzero entries in (the upper triangle of) m
+c
+c    a    - real one-dimensional array containing the nonzero entries in
+c           (the upper triangle of) m, stored by rows.  dimension =
+c           number of nonzero entries in (the upper triangle of) m
+c
+c    p    - integer one-dimensional array used to return the permutation
+c           of the rows and columns of m corresponding to the minimum
+c           degree ordering.  dimension = n
+c
+c    ip   - integer one-dimensional array used to return the inverse of
+c           the permutation returned in p.  dimension = n
+c
+c    nsp  - declared dimension of the one-dimensional array isp.  nsp
+c           must be at least  3n+4k,  where k is the number of nonzeroes
+c           in the strict upper triangle of m
+c
+c    isp  - integer one-dimensional array used for working storage.
+c           dimension = nsp
+c
+c    path - integer path specification.  values and their meanings are -
+c             1  find minimum degree ordering only
+c             2  find minimum degree ordering and reorder symmetrically
+c                  stored matrix (used when only the nonzero entries in
+c                  the upper triangle of m are being stored)
+c             3  reorder symmetrically stored matrix as specified by
+c                  input permutation (used when an ordering has already
+c                  been determined and only the nonzero entries in the
+c                  upper triangle of m are being stored)
+c             4  same as 2 but put diagonal entries at start of each row
+c             5  same as 3 but put diagonal entries at start of each row
+c
+c    flag - integer error flag.  values and their meanings are -
+c               0    no errors detected
+c              9n+k  insufficient storage in md
+c             10n+1  insufficient storage in odrv
+c             11n+1  illegal path specification
+c
+c
+c  conversion from real to KPP_REAL
+c
+c    change the real declarations in odrv and sro to KPP_REAL
+c    declarations.
+c
+c-----------------------------------------------------------------------
+c
+      integer  ia(1), ja(1),  p(1), ip(1),  isp(1),  path,  flag,
+     *   v, l, head,  tmp, q
+      KPP_REAL  a(1)
+      logical  dflag
+c
+c----initialize error flag and validate path specification
+      flag = 0
+      if (path.lt.1 .or. 5.lt.path)  go to 111
+c
+c----allocate storage and find minimum degree ordering
+      if ((path-1) * (path-2) * (path-4) .ne. 0)  go to 1
+        max = (nsp-n)/2
+        v    = 1
+        l    = v     +  max
+        head = l     +  max
+        next = head  +  n
+        if (max.lt.n)  go to 110
+c
+        CALL  md
+     *     (n, ia,ja, max,isp(v),isp(l), isp(head),p,ip, isp(v), flag)
+        if (flag.ne.0)  go to 100
+c
+c----allocate storage and symmetrically reorder matrix
+   1  if ((path-2) * (path-3) * (path-4) * (path-5) .ne. 0)  go to 2
+        tmp = (nsp+1) -      n
+        q   = tmp     - (ia(n+1)-1)
+        if (q.lt.1)  go to 110
+c
+        dflag = path.eq.4 .or. path.eq.5
+        CALL sro
+     *     (n,  ip,  ia, ja, a,  isp(tmp),  isp(q),  dflag)
+c
+   2  return
+c
+c ** error -- error detected in md
+ 100  return
+c ** error -- insufficient storage
+ 110  flag = 10*n + 1
+      return
+c ** error -- illegal path specified
+ 111  flag = 11*n + 1
+      return
+      end
+      subroutine nnfc
+     *     (n, r,c,ic, ia,ja,a, z, b,
+     *      lmax,il,jl,ijl,l, d, umax,iu,ju,iju,u,
+     *      row, tmp, irl,jrl, flag)
+clll. optimize
+c*** subroutine nnfc
+c*** numerical ldu-factorization of sparse nonsymmetric matrix and
+c      solution of system of linear equations (compressed pointer
+c      storage)
+c
+c
+c       input variables..  n, r, c, ic, ia, ja, a, b,
+c                          il, jl, ijl, lmax, iu, ju, iju, umax
+c       output variables.. z, l, d, u, flag
+c
+c       parameters used internally..
+c nia   - irl,  - vectors used to find the rows of  l.  at the kth step
+c nia   - jrl       of the factorization,  jrl(k)  points to the head
+c       -           of a linked list in  jrl  of column indices j
+c       -           such j .lt. k and  l(k,j)  is nonzero.  zero
+c       -           indicates the end of the list.  irl(j)  (j.lt.k)
+c       -           points to the smallest i such that i .ge. k and
+c       -           l(i,j)  is nonzero.
+c       -           size of each = n.
+c fia   - row   - holds intermediate values in calculation of  u and l.
+c       -           size = n.
+c fia   - tmp   - holds new right-hand side  b*  for solution of the
+c       -           equation ux = b*.
+c       -           size = n.
+c
+c  internal variables..
+c    jmin, jmax - indices of the first and last positions in a row to
+c      be examined.
+c    sum - used in calculating  tmp.
+c
+      integer rk,umax
+      integer  r(1), c(1), ic(1), ia(1), ja(1), il(1), jl(1), ijl(1)
+      integer  iu(1), ju(1), iju(1), irl(1), jrl(1), flag
+      KPP_REAL  a(1), l(1), d(1), u(1), z(1), b(1), row(1)
+      KPP_REAL  tmp(1), lki, sum, dk
+c
+c  ******  initialize pointers and test storage  ***********************
+      if(il(n+1)-1 .gt. lmax) go to 104
+      if(iu(n+1)-1 .gt. umax) go to 107
+      do 1 k=1,n
+        irl(k) = il(k)
+        jrl(k) = 0
+   1    continue
+c
+c  ******  for each row  ***********************************************
+      do 19 k=1,n
+c  ******  reverse jrl and zero row where kth row of l will fill in  ***
+        row(k) = 0
+        i1 = 0
+        if (jrl(k) .eq. 0) go to 3
+        i = jrl(k)
+   2    i2 = jrl(i)
+        jrl(i) = i1
+        i1 = i
+        row(i) = 0
+        i = i2
+        if (i .ne. 0) go to 2
+c  ******  set row to zero where u will fill in  ***********************
+   3    jmin = iju(k)
+        jmax = jmin + iu(k+1) - iu(k) - 1
+        if (jmin .gt. jmax) go to 5
+        do 4 j=jmin,jmax
+   4      row(ju(j)) = 0
+c  ******  place kth row of a in row  **********************************
+   5    rk = r(k)
+        jmin = ia(rk)
+        jmax = ia(rk+1) - 1
+        do 6 j=jmin,jmax
+          row(ic(ja(j))) = a(j)
+   6      continue
+c  ******  initialize sum, and link through jrl  ***********************
+        sum = b(rk)
+        i = i1
+        if (i .eq. 0) go to 10
+c  ******  assign the kth row of l and adjust row, sum  ****************
+   7      lki = -row(i)
+c  ******  if l is not required, then comment out the following line  **
+          l(irl(i)) = -lki
+          sum = sum + lki * tmp(i)
+          jmin = iu(i)
+          jmax = iu(i+1) - 1
+          if (jmin .gt. jmax) go to 9
+          mu = iju(i) - jmin
+          do 8 j=jmin,jmax
+   8        row(ju(mu+j)) = row(ju(mu+j)) + lki * u(j)
+   9      i = jrl(i)
+          if (i .ne. 0) go to 7
+c
+c  ******  assign kth row of u and diagonal d, set tmp(k)  *************
+  10    if (row(k) .eq. 0.0d0) go to 108
+        dk = 1.0d0 / row(k)
+        d(k) = dk
+        tmp(k) = sum * dk
+        if (k .eq. n) go to 19
+        jmin = iu(k)
+        jmax = iu(k+1) - 1
+        if (jmin .gt. jmax)  go to 12
+        mu = iju(k) - jmin
+        do 11 j=jmin,jmax
+  11      u(j) = row(ju(mu+j)) * dk
+  12    continue
+c
+c  ******  update irl and jrl, keeping jrl in decreasing order  ********
+        i = i1
+        if (i .eq. 0) go to 18
+  14    irl(i) = irl(i) + 1
+        i1 = jrl(i)
+        if (irl(i) .ge. il(i+1)) go to 17
+        ijlb = irl(i) - il(i) + ijl(i)
+        j = jl(ijlb)
+  15    if (i .gt. jrl(j)) go to 16
+          j = jrl(j)
+          go to 15
+  16    jrl(i) = jrl(j)
+        jrl(j) = i
+  17    i = i1
+        if (i .ne. 0) go to 14
+  18    if (irl(k) .ge. il(k+1)) go to 19
+        j = jl(ijl(k))
+        jrl(k) = jrl(j)
+        jrl(j) = k
+  19    continue
+c
+c  ******  solve  ux = tmp  by back substitution  **********************
+      k = n
+      do 22 i=1,n
+        sum =  tmp(k)
+        jmin = iu(k)
+        jmax = iu(k+1) - 1
+        if (jmin .gt. jmax)  go to 21
+        mu = iju(k) - jmin
+        do 20 j=jmin,jmax
+  20      sum = sum - u(j) * tmp(ju(mu+j))
+  21    tmp(k) =  sum
+        z(c(k)) =  sum
+  22    k = k-1
+      flag = 0
+      return
+c
+c ** error.. insufficient storage for l
+ 104  flag = 4*n + 1
+      return
+c ** error.. insufficient storage for u
+ 107  flag = 7*n + 1
+      return
+c ** error.. zero pivot
+ 108  flag = 8*n + k
+      return
+      end
+      subroutine jgroup (n,ia,ja,maxg,ngrp,igp,jgp,incl,jdone,ier)
+clll. optimize
+      integer n, ia, ja, maxg, ngrp, igp, jgp, incl, jdone, ier
+      dimension ia(1), ja(1), igp(1), jgp(n), incl(n), jdone(n)
+c-----------------------------------------------------------------------
+c this subroutine constructs groupings of the column indices of
+c the jacobian matrix, used in the numerical evaluation of the
+c jacobian by finite differences.
+c
+c input..
+c n      = the order of the matrix.
+c ia,ja  = sparse structure descriptors of the matrix by rows.
+c maxg   = length of available storate in the igp array.
+c
+c output..
+c ngrp   = number of groups.
+c jgp    = array of length n containing the column indices by groups.
+c igp    = pointer array of length ngrp + 1 to the locations in jgp
+c          of the beginning of each group.
+c ier    = error indicator.  ier = 0 if no error occurred, or 1 if
+c          maxg was insufficient.
+c
+c incl and jdone are working arrays of length n.
+c-----------------------------------------------------------------------
+      integer i, j, k, kmin, kmax, ncol, ng
+c
+      ier = 0
+      do 10 j = 1,n
+ 10     jdone(j) = 0
+      ncol = 1
+      do 60 ng = 1,maxg
+        igp(ng) = ncol
+        do 20 i = 1,n
+ 20       incl(i) = 0
+        do 50 j = 1,n
+c reject column j if it is already in a group.--------------------------
+          if (jdone(j) .eq. 1) go to 50
+          kmin = ia(j)
+          kmax = ia(j+1) - 1
+          do 30 k = kmin,kmax
+c reject column j if it overlaps any column already in this group.------
+            i = ja(k)
+            if (incl(i) .eq. 1) go to 50
+ 30         continue
+c accept column j into group ng.----------------------------------------
+          jgp(ncol) = j
+          ncol = ncol + 1
+          jdone(j) = 1
+          do 40 k = kmin,kmax
+            i = ja(k)
+ 40         incl(i) = 1
+ 50       continue
+c stop if this group is empty (grouping is complete).-------------------
+        if (ncol .eq. igp(ng)) go to 70
+ 60     continue
+c error return if not all columns were chosen (maxg too small).---------
+      if (ncol .le. n) go to 80
+      ng = maxg
+ 70   ngrp = ng - 1
+      return
+ 80   ier = 1
+      return
+c----------------------- end of subroutine jgroup ----------------------
+      end
+      subroutine nsfc
+     *      (n, r, ic, ia,ja, jlmax,il,jl,ijl, jumax,iu,ju,iju,
+     *       q, ira,jra, irac, irl,jrl, iru,jru, flag)
+clll. optimize
+c*** subroutine nsfc
+c*** symbolic ldu-factorization of nonsymmetric sparse matrix
+c      (compressed pointer storage)
+c
+c
+c       input variables.. n, r, ic, ia, ja, jlmax, jumax.
+c       output variables.. il, jl, ijl, iu, ju, iju, flag.
+c
+c       parameters used internally..
+c nia   - q     - suppose  m*  is the result of reordering  m.  if
+c       -           processing of the ith row of  m*  (hence the ith
+c       -           row of  u) is being done,  q(j)  is initially
+c       -           nonzero if  m*(i,j) is nonzero (j.ge.i).  since
+c       -           values need not be stored, each entry points to the
+c       -           next nonzero and  q(n+1)  points to the first.  n+1
+c       -           indicates the end of the list.  for example, if n=9
+c       -           and the 5th row of  m*  is
+c       -              0 x x 0 x 0 0 x 0
+c       -           then  q  will initially be
+c       -              a a a a 8 a a 10 5           (a - arbitrary).
+c       -           as the algorithm proceeds, other elements of  q
+c       -           are inserted in the list because of fillin.
+c       -           q  is used in an analogous manner to compute the
+c       -           ith column of  l.
+c       -           size = n+1.
+c nia   - ira,  - vectors used to find the columns of  m.  at the kth
+c nia   - jra,      step of the factorization,  irac(k)  points to the
+c nia   - irac      head of a linked list in  jra  of row indices i
+c       -           such that i .ge. k and  m(i,k)  is nonzero.  zero
+c       -           indicates the end of the list.  ira(i)  (i.ge.k)
+c       -           points to the smallest j such that j .ge. k and
+c       -           m(i,j)  is nonzero.
+c       -           size of each = n.
+c nia   - irl,  - vectors used to find the rows of  l.  at the kth step
+c nia   - jrl       of the factorization,  jrl(k)  points to the head
+c       -           of a linked list in  jrl  of column indices j
+c       -           such j .lt. k and  l(k,j)  is nonzero.  zero
+c       -           indicates the end of the list.  irl(j)  (j.lt.k)
+c       -           points to the smallest i such that i .ge. k and
+c       -           l(i,j)  is nonzero.
+c       -           size of each = n.
+c nia   - iru,  - vectors used in a manner analogous to  irl and jrl
+c nia   - jru       to find the columns of  u.
+c       -           size of each = n.
+c
+c  internal variables..
+c    jlptr - points to the last position used in  jl.
+c    juptr - points to the last position used in  ju.
+c    jmin,jmax - are the indices in  a or u  of the first and last
+c                elements to be examined in a given row.
+c                for example,  jmin=ia(k), jmax=ia(k+1)-1.
+c
+      integer cend, qm, rend, rk, vj
+      integer ia(1), ja(1), ira(1), jra(1), il(1), jl(1), ijl(1)
+      integer iu(1), ju(1), iju(1), irl(1), jrl(1), iru(1), jru(1)
+      integer r(1), ic(1), q(1), irac(1), flag
+c
+c  ******  initialize pointers  ****************************************
+      np1 = n + 1
+      jlmin = 1
+      jlptr = 0
+      il(1) = 1
+      jumin = 1
+      juptr = 0
+      iu(1) = 1
+      do 1 k=1,n
+        irac(k) = 0
+        jra(k) = 0
+        jrl(k) = 0
+   1    jru(k) = 0
+c  ******  initialize column pointers for a  ***************************
+      do 2 k=1,n
+        rk = r(k)
+        iak = ia(rk)
+        if (iak .ge. ia(rk+1))  go to 101
+        jaiak = ic(ja(iak))
+        if (jaiak .gt. k)  go to 105
+        jra(k) = irac(jaiak)
+        irac(jaiak) = k
+   2    ira(k) = iak
+c
+c  ******  for each column of l and row of u  **************************
+      do 41 k=1,n
+c
+c  ******  initialize q for computing kth column of l  *****************
+        q(np1) = np1
+        luk = -1
+c  ******  by filling in kth column of a  ******************************
+        vj = irac(k)
+        if (vj .eq. 0)  go to 5
+   3      qm = np1
+   4      m = qm
+          qm =  q(m)
+          if (qm .lt. vj)  go to 4
+          if (qm .eq. vj)  go to 102
+            luk = luk + 1
+            q(m) = vj
+            q(vj) = qm
+            vj = jra(vj)
+            if (vj .ne. 0)  go to 3
+c  ******  link through jru  *******************************************
+   5    lastid = 0
+        lasti = 0
+        ijl(k) = jlptr
+        i = k
+   6      i = jru(i)
+          if (i .eq. 0)  go to 10
+          qm = np1
+          jmin = irl(i)
+          jmax = ijl(i) + il(i+1) - il(i) - 1
+          long = jmax - jmin
+          if (long .lt. 0)  go to 6
+          jtmp = jl(jmin)
+          if (jtmp .ne. k)  long = long + 1
+          if (jtmp .eq. k)  r(i) = -r(i)
+          if (lastid .ge. long)  go to 7
+            lasti = i
+            lastid = long
+c  ******  and merge the corresponding columns into the kth column  ****
+   7      do 9 j=jmin,jmax
+            vj = jl(j)
+   8        m = qm
+            qm = q(m)
+            if (qm .lt. vj)  go to 8
+            if (qm .eq. vj)  go to 9
+              luk = luk + 1
+              q(m) = vj
+              q(vj) = qm
+              qm = vj
+   9        continue
+            go to 6
+c  ******  lasti is the longest column merged into the kth  ************
+c  ******  see if it equals the entire kth column  *********************
+  10    qm = q(np1)
+        if (qm .ne. k)  go to 105
+        if (luk .eq. 0)  go to 17
+        if (lastid .ne. luk)  go to 11
+c  ******  if so, jl can be compressed  ********************************
+        irll = irl(lasti)
+        ijl(k) = irll + 1
+        if (jl(irll) .ne. k)  ijl(k) = ijl(k) - 1
+        go to 17
+c  ******  if not, see if kth column can overlap the previous one  *****
+  11    if (jlmin .gt. jlptr)  go to 15
+        qm = q(qm)
+        do 12 j=jlmin,jlptr
+          if (jl(j) - qm)  12, 13, 15
+  12      continue
+        go to 15
+  13    ijl(k) = j
+        do 14 i=j,jlptr
+          if (jl(i) .ne. qm)  go to 15
+          qm = q(qm)
+          if (qm .gt. n)  go to 17
+  14      continue
+        jlptr = j - 1
+c  ******  move column indices from q to jl, update vectors  ***********
+  15    jlmin = jlptr + 1
+        ijl(k) = jlmin
+        if (luk .eq. 0)  go to 17
+        jlptr = jlptr + luk
+        if (jlptr .gt. jlmax)  go to 103
+          qm = q(np1)
+          do 16 j=jlmin,jlptr
+            qm = q(qm)
+  16        jl(j) = qm
+  17    irl(k) = ijl(k)
+        il(k+1) = il(k) + luk
+c
+c  ******  initialize q for computing kth row of u  ********************
+        q(np1) = np1
+        luk = -1
+c  ******  by filling in kth row of reordered a  ***********************
+        rk = r(k)
+        jmin = ira(k)
+        jmax = ia(rk+1) - 1
+        if (jmin .gt. jmax)  go to 20
+        do 19 j=jmin,jmax
+          vj = ic(ja(j))
+          qm = np1
+  18      m = qm
+          qm = q(m)
+          if (qm .lt. vj)  go to 18
+          if (qm .eq. vj)  go to 102
+            luk = luk + 1
+            q(m) = vj
+            q(vj) = qm
+  19      continue
+c  ******  link through jrl,  ******************************************
+  20    lastid = 0
+        lasti = 0
+        iju(k) = juptr
+        i = k
+        i1 = jrl(k)
+  21      i = i1
+          if (i .eq. 0)  go to 26
+          i1 = jrl(i)
+          qm = np1
+          jmin = iru(i)
+          jmax = iju(i) + iu(i+1) - iu(i) - 1
+          long = jmax - jmin
+          if (long .lt. 0)  go to 21
+          jtmp = ju(jmin)
+          if (jtmp .eq. k)  go to 22
+c  ******  update irl and jrl, *****************************************
+            long = long + 1
+            cend = ijl(i) + il(i+1) - il(i)
+            irl(i) = irl(i) + 1
+            if (irl(i) .ge. cend)  go to 22
+              j = jl(irl(i))
+              jrl(i) = jrl(j)
+              jrl(j) = i
+  22      if (lastid .ge. long)  go to 23
+            lasti = i
+            lastid = long
+c  ******  and merge the corresponding rows into the kth row  **********
+  23      do 25 j=jmin,jmax
+            vj = ju(j)
+  24        m = qm
+            qm = q(m)
+            if (qm .lt. vj)  go to 24
+            if (qm .eq. vj)  go to 25
+              luk = luk + 1
+              q(m) = vj
+              q(vj) = qm
+              qm = vj
+  25        continue
+          go to 21
+c  ******  update jrl(k) and irl(k)  ***********************************
+  26    if (il(k+1) .le. il(k))  go to 27
+          j = jl(irl(k))
+          jrl(k) = jrl(j)
+          jrl(j) = k
+c  ******  lasti is the longest row merged into the kth  ***************
+c  ******  see if it equals the entire kth row  ************************
+  27    qm = q(np1)
+        if (qm .ne. k)  go to 105
+        if (luk .eq. 0)  go to 34
+        if (lastid .ne. luk)  go to 28
+c  ******  if so, ju can be compressed  ********************************
+        irul = iru(lasti)
+        iju(k) = irul + 1
+        if (ju(irul) .ne. k)  iju(k) = iju(k) - 1
+        go to 34
+c  ******  if not, see if kth row can overlap the previous one  ********
+  28    if (jumin .gt. juptr)  go to 32
+        qm = q(qm)
+        do 29 j=jumin,juptr
+          if (ju(j) - qm)  29, 30, 32
+  29      continue
+        go to 32
+  30    iju(k) = j
+        do 31 i=j,juptr
+          if (ju(i) .ne. qm)  go to 32
+          qm = q(qm)
+          if (qm .gt. n)  go to 34
+  31      continue
+        juptr = j - 1
+c  ******  move row indices from q to ju, update vectors  **************
+  32    jumin = juptr + 1
+        iju(k) = jumin
+        if (luk .eq. 0)  go to 34
+        juptr = juptr + luk
+        if (juptr .gt. jumax)  go to 106
+          qm = q(np1)
+          do 33 j=jumin,juptr
+            qm = q(qm)
+  33        ju(j) = qm
+  34    iru(k) = iju(k)
+        iu(k+1) = iu(k) + luk
+c
+c  ******  update iru, jru  ********************************************
+        i = k
+  35      i1 = jru(i)
+          if (r(i) .lt. 0)  go to 36
+          rend = iju(i) + iu(i+1) - iu(i)
+          if (iru(i) .ge. rend)  go to 37
+            j = ju(iru(i))
+            jru(i) = jru(j)
+            jru(j) = i
+            go to 37
+  36      r(i) = -r(i)
+  37      i = i1
+          if (i .eq. 0)  go to 38
+          iru(i) = iru(i) + 1
+          go to 35
+c
+c  ******  update ira, jra, irac  **************************************
+  38    i = irac(k)
+        if (i .eq. 0)  go to 41
+  39      i1 = jra(i)
+          ira(i) = ira(i) + 1
+          if (ira(i) .ge. ia(r(i)+1))  go to 40
+          irai = ira(i)
+          jairai = ic(ja(irai))
+          if (jairai .gt. i)  go to 40
+          jra(i) = irac(jairai)
+          irac(jairai) = i
+  40      i = i1
+          if (i .ne. 0)  go to 39
+  41    continue
+c
+      ijl(n) = jlptr
+      iju(n) = juptr
+      flag = 0
+      return
+c
+c ** error.. null row in a
+ 101  flag = n + rk
+      return
+c ** error.. duplicate entry in a
+ 102  flag = 2*n + rk
+      return
+c ** error.. insufficient storage for jl
+ 103  flag = 3*n + k
+      return
+c ** error.. null pivot
+ 105  flag = 5*n + k
+      return
+c ** error.. insufficient storage for ju
+ 106  flag = 6*n + k
+      return
+      end
+      subroutine sro
+     *     (n, ip, ia,ja,a, q, r, dflag)
+clll. optimize
+c***********************************************************************
+c  sro -- symmetric reordering of sparse symmetric matrix
+c***********************************************************************
+c
+c  description
+c
+c    the nonzero entries of the matrix m are assumed to be stored
+c    symmetrically in (ia,ja,a) format (i.e., not both m(i,j) and m(j,i)
+c    are stored if i ne j).
+c
+c    sro does not rearrange the order of the rows, but does move
+c    nonzeroes from one row to another to ensure that if m(i,j) will be
+c    in the upper triangle of m with respect to the new ordering, then
+c    m(i,j) is stored in row i (and thus m(j,i) is not stored),  whereas
+c    if m(i,j) will be in the strict lower triangle of m, then m(j,i) is
+c    stored in row j (and thus m(i,j) is not stored).
+c
+c
+c  additional parameters
+c
+c    q     - integer one-dimensional work array.  dimension = n
+c
+c    r     - integer one-dimensional work array.  dimension = number of
+c            nonzero entries in the upper triangle of m
+c
+c    dflag - logical variable.  if dflag = .true., then store nonzero
+c            diagonal elements at the beginning of the row
+c
+c-----------------------------------------------------------------------
+c
+      integer  ip(1),  ia(1), ja(1),  q(1), r(1)
+      KPP_REAL  a(1),  ak
+      logical  dflag
+c
+c
+c--phase 1 -- find row in which to store each nonzero
+c----initialize count of nonzeroes to be stored in each row
+      do 1 i=1,n
+  1     q(i) = 0
+c
+c----for each nonzero element a(j)
+      do 3 i=1,n
+        jmin = ia(i)
+        jmax = ia(i+1) - 1
+        if (jmin.gt.jmax)  go to 3
+        do 2 j=jmin,jmax
+c
+c--------find row (=r(j)) and column (=ja(j)) in which to store a(j) ...
+          k = ja(j)
+          if (ip(k).lt.ip(i))  ja(j) = i
+          if (ip(k).ge.ip(i))  k = i
+          r(j) = k
+c
+c--------... and increment count of nonzeroes (=q(r(j)) in that row
+  2       q(k) = q(k) + 1
+  3     continue
+c
+c
+c--phase 2 -- find new ia and permutation to apply to (ja,a)
+c----determine pointers to delimit rows in permuted (ja,a)
+      do 4 i=1,n
+        ia(i+1) = ia(i) + q(i)
+  4     q(i) = ia(i+1)
+c
+c----determine where each (ja(j),a(j)) is stored in permuted (ja,a)
+c----for each nonzero element (in reverse order)
+      ilast = 0
+      jmin = ia(1)
+      jmax = ia(n+1) - 1
+      j = jmax
+      do 6 jdummy=jmin,jmax
+        i = r(j)
+        if (.not.dflag .or. ja(j).ne.i .or. i.eq.ilast)  go to 5
+c
+c------if dflag, then put diagonal nonzero at beginning of row
+          r(j) = ia(i)
+          ilast = i
+          go to 6
+c
+c------put (off-diagonal) nonzero in last unused location in row
+  5       q(i) = q(i) - 1
+          r(j) = q(i)
+c
+  6     j = j-1
+c
+c
+c--phase 3 -- permute (ja,a) to upper triangular form (wrt new ordering)
+      do 8 j=jmin,jmax
+  7     if (r(j).eq.j)  go to 8
+          k = r(j)
+          r(j) = r(k)
+          r(k) = k
+          jak = ja(k)
+          ja(k) = ja(j)
+          ja(j) = jak
+          ak = a(k)
+          a(k) = a(j)
+          a(j) = ak
+          go to 7
+  8     continue
+c
+      return
+      end
+      subroutine md
+     *     (n, ia,ja, max, v,l, head,last,next, mark, flag)
+clll. optimize
+c***********************************************************************
+c  md -- minimum degree algorithm (based on element model)
+c***********************************************************************
+c
+c  description
+c
+c    md finds a minimum degree ordering of the rows and columns of a
+c    general sparse matrix m stored in (ia,ja,a) format.
+c    when the structure of m is nonsymmetric, the ordering is that
+c    obtained for the symmetric matrix  m + m-transpose.
+c
+c
+c  additional parameters
+c
+c    max  - declared dimension of the one-dimensional arrays v and l.
+c           max must be at least  n+2k,  where k is the number of
+c           nonzeroes in the strict upper triangle of m + m-transpose
+c
+c    v    - integer one-dimensional work array.  dimension = max
+c
+c    l    - integer one-dimensional work array.  dimension = max
+c
+c    head - integer one-dimensional work array.  dimension = n
+c
+c    last - integer one-dimensional array used to return the permutation
+c           of the rows and columns of m corresponding to the minimum
+c           degree ordering.  dimension = n
+c
+c    next - integer one-dimensional array used to return the inverse of
+c           the permutation returned in last.  dimension = n
+c
+c    mark - integer one-dimensional work array (may be the same as v).
+c           dimension = n
+c
+c    flag - integer error flag.  values and their meanings are -
+c             0     no errors detected
+c             9n+k  insufficient storage in md
+c
+c
+c  definitions of internal parameters
+c
+c    ---------+---------------------------------------------------------
+c    v(s)     - value field of list entry
+c    ---------+---------------------------------------------------------
+c    l(s)     - link field of list entry  (0 =) end of list)
+c    ---------+---------------------------------------------------------
+c    l(vi)    - pointer to element list of uneliminated vertex vi
+c    ---------+---------------------------------------------------------
+c    l(ej)    - pointer to boundary list of active element ej
+c    ---------+---------------------------------------------------------
+c    head(d)  - vj =) vj head of d-list d
+c             -  0 =) no vertex in d-list d
+c
+c
+c             -                  vi uneliminated vertex
+c             -          vi in ek           -       vi not in ek
+c    ---------+-----------------------------+---------------------------
+c    next(vi) - undefined but nonnegative   - vj =) vj next in d-list
+c             -                             -  0 =) vi tail of d-list
+c    ---------+-----------------------------+---------------------------
+c    last(vi) - (not set until mdp)         - -d =) vi head of d-list d
+c             --vk =) compute degree        - vj =) vj last in d-list
+c             - ej =) vi prototype of ej    -  0 =) vi not in any d-list
+c             -  0 =) do not compute degree -
+c    ---------+-----------------------------+---------------------------
+c    mark(vi) - mark(vk)                    - nonneg. tag .lt. mark(vk)
+c
+c
+c             -                   vi eliminated vertex
+c             -      ei active element      -           otherwise
+c    ---------+-----------------------------+---------------------------
+c    next(vi) - -j =) vi was j-th vertex    - -j =) vi was j-th vertex
+c             -       to be eliminated      -       to be eliminated
+c    ---------+-----------------------------+---------------------------
+c    last(vi) -  m =) size of ei = m        - undefined
+c    ---------+-----------------------------+---------------------------
+c    mark(vi) - -m =) overlap count of ei   - undefined
+c             -       with ek = m           -
+c             - otherwise nonnegative tag   -
+c             -       .lt. mark(vk)         -
+c
+c-----------------------------------------------------------------------
+c
+      integer  ia(1), ja(1),  v(1), l(1),  head(1), last(1), next(1),
+     *   mark(1),  flag,  tag, dmin, vk,ek, tail
+      equivalence  (vk,ek)
+c
+c----initialization
+      tag = 0
+      CALL  mdi
+     *   (n, ia,ja, max,v,l, head,last,next, mark,tag, flag)
+      if (flag.ne.0)  return
+c
+      k = 0
+      dmin = 1
+c
+c----while  k .lt. n  do
+   1  if (k.ge.n)  go to 4
+c
+c------search for vertex of minimum degree
+   2    if (head(dmin).gt.0)  go to 3
+          dmin = dmin + 1
+          go to 2
+c
+c------remove vertex vk of minimum degree from degree list
+   3    vk = head(dmin)
+        head(dmin) = next(vk)
+        if (head(dmin).gt.0)  last(head(dmin)) = -dmin
+c
+c------number vertex vk, adjust tag, and tag vk
+        k = k+1
+        next(vk) = -k
+        last(ek) = dmin - 1
+        tag = tag + last(ek)
+        mark(vk) = tag
+c
+c------form element ek from uneliminated neighbors of vk
+        CALL  mdm
+     *     (vk,tail, v,l, last,next, mark)
+c
+c------purge inactive elements and do mass elimination
+        CALL  mdp
+     *     (k,ek,tail, v,l, head,last,next, mark)
+c
+c------update degrees of uneliminated vertices in ek
+        CALL  mdu
+     *     (ek,dmin, v,l, head,last,next, mark)
+c
+        go to 1
+c
+c----generate inverse permutation from permutation
+   4  do 5 k=1,n
+        next(k) = -next(k)
+   5    last(next(k)) = k
+c
+      return
+      end
+      subroutine mdi
+     *     (n, ia,ja, max,v,l, head,last,next, mark,tag, flag)
+clll. optimize
+c***********************************************************************
+c  mdi -- initialization
+c***********************************************************************
+      integer  ia(1), ja(1),  v(1), l(1),  head(1), last(1), next(1),
+     *   mark(1), tag,  flag,  sfs, vi,dvi, vj
+c
+c----initialize degrees, element lists, and degree lists
+      do 1 vi=1,n
+        mark(vi) = 1
+        l(vi) = 0
+   1    head(vi) = 0
+      sfs = n+1
+c
+c----create nonzero structure
+c----for each nonzero entry a(vi,vj)
+      do 6 vi=1,n
+        jmin = ia(vi)
+        jmax = ia(vi+1) - 1
+        if (jmin.gt.jmax)  go to 6
+        do 5 j=jmin,jmax
+          vj = ja(j)
+          if (vj-vi) 2, 5, 4
+c
+c------if a(vi,vj) is in strict lower triangle
+c------check for previous occurrence of a(vj,vi)
+   2      lvk = vi
+          kmax = mark(vi) - 1
+          if (kmax .eq. 0) go to 4
+          do 3 k=1,kmax
+            lvk = l(lvk)
+            if (v(lvk).eq.vj) go to 5
+   3        continue
+c----for unentered entries a(vi,vj)
+   4        if (sfs.ge.max)  go to 101
+c
+c------enter vj in element list for vi
+            mark(vi) = mark(vi) + 1
+            v(sfs) = vj
+            l(sfs) = l(vi)
+            l(vi) = sfs
+            sfs = sfs+1
+c
+c------enter vi in element list for vj
+            mark(vj) = mark(vj) + 1
+            v(sfs) = vi
+            l(sfs) = l(vj)
+            l(vj) = sfs
+            sfs = sfs+1
+   5      continue
+   6    continue
+c
+c----create degree lists and initialize mark vector
+      do 7 vi=1,n
+        dvi = mark(vi)
+        next(vi) = head(dvi)
+        head(dvi) = vi
+        last(vi) = -dvi
+        nextvi = next(vi)
+        if (nextvi.gt.0)  last(nextvi) = vi
+   7    mark(vi) = tag
+c
+      return
+c
+c ** error-  insufficient storage
+ 101  flag = 9*n + vi
+      return
+      end
+      subroutine mdm
+     *     (vk,tail, v,l, last,next, mark)
+clll. optimize
+c***********************************************************************
+c  mdm -- form element from uneliminated neighbors of vk
+c***********************************************************************
+      integer  vk, tail,  v(1), l(1),   last(1), next(1),   mark(1),
+     *   tag, s,ls,vs,es, b,lb,vb, blp,blpmax
+      equivalence  (vs, es)
+c
+c----initialize tag and list of uneliminated neighbors
+      tag = mark(vk)
+      tail = vk
+c
+c----for each vertex/element vs/es in element list of vk
+      ls = l(vk)
+   1  s = ls
+      if (s.eq.0)  go to 5
+        ls = l(s)
+        vs = v(s)
+        if (next(vs).lt.0)  go to 2
+c
+c------if vs is uneliminated vertex, then tag and append to list of
+c------uneliminated neighbors
+          mark(vs) = tag
+          l(tail) = s
+          tail = s
+          go to 4
+c
+c------if es is active element, then ...
+c--------for each vertex vb in boundary list of element es
+   2      lb = l(es)
+          blpmax = last(es)
+          do 3 blp=1,blpmax
+            b = lb
+            lb = l(b)
+            vb = v(b)
+c
+c----------if vb is untagged vertex, then tag and append to list of
+c----------uneliminated neighbors
+            if (mark(vb).ge.tag)  go to 3
+              mark(vb) = tag
+              l(tail) = b
+              tail = b
+   3        continue
+c
+c--------mark es inactive
+          mark(es) = tag
+c
+   4    go to 1
+c
+c----terminate list of uneliminated neighbors
+   5  l(tail) = 0
+c
+      return
+      end
+      subroutine mdp
+     *     (k,ek,tail, v,l, head,last,next, mark)
+clll. optimize
+c***********************************************************************
+c  mdp -- purge inactive elements and do mass elimination
+c***********************************************************************
+      integer  ek, tail,  v(1), l(1),  head(1), last(1), next(1),
+     *   mark(1),  tag, free, li,vi,lvi,evi, s,ls,es, ilp,ilpmax
+c
+c----initialize tag
+      tag = mark(ek)
+c
+c----for each vertex vi in ek
+      li = ek
+      ilpmax = last(ek)
+      if (ilpmax.le.0)  go to 12
+      do 11 ilp=1,ilpmax
+        i = li
+        li = l(i)
+        vi = v(li)
+c
+c------remove vi from degree list
+        if (last(vi).eq.0)  go to 3
+          if (last(vi).gt.0)  go to 1
+            head(-last(vi)) = next(vi)
+            go to 2
+   1        next(last(vi)) = next(vi)
+   2      if (next(vi).gt.0)  last(next(vi)) = last(vi)
+c
+c------remove inactive items from element list of vi
+   3    ls = vi
+   4    s = ls
+        ls = l(s)
+        if (ls.eq.0)  go to 6
+          es = v(ls)
+          if (mark(es).lt.tag)  go to 5
+            free = ls
+            l(s) = l(ls)
+            ls = s
+   5      go to 4
+c
+c------if vi is interior vertex, then remove from list and eliminate
+   6    lvi = l(vi)
+        if (lvi.ne.0)  go to 7
+          l(i) = l(li)
+          li = i
+c
+          k = k+1
+          next(vi) = -k
+          last(ek) = last(ek) - 1
+          go to 11
+c
+c------else ...
+c--------classify vertex vi
+   7      if (l(lvi).ne.0)  go to 9
+            evi = v(lvi)
+            if (next(evi).ge.0)  go to 9
+              if (mark(evi).lt.0)  go to 8
+c
+c----------if vi is prototype vertex, then mark as such, initialize
+c----------overlap count for corresponding element, and move vi to end
+c----------of boundary list
+                last(vi) = evi
+                mark(evi) = -1
+                l(tail) = li
+                tail = li
+                l(i) = l(li)
+                li = i
+                go to 10
+c
+c----------else if vi is duplicate vertex, then mark as such and adjust
+c----------overlap count for corresponding element
+   8            last(vi) = 0
+                mark(evi) = mark(evi) - 1
+                go to 10
+c
+c----------else mark vi to compute degree
+   9            last(vi) = -ek
+c
+c--------insert ek in element list of vi
+  10      v(free) = ek
+          l(free) = l(vi)
+          l(vi) = free
+  11    continue
+c
+c----terminate boundary list
+  12  l(tail) = 0
+c
+      return
+      end
+      subroutine mdu
+     *     (ek,dmin, v,l, head,last,next, mark)
+clll. optimize
+c***********************************************************************
+c  mdu -- update degrees of uneliminated vertices in ek
+c***********************************************************************
+      integer  ek, dmin,  v(1), l(1),  head(1), last(1), next(1),
+     *   mark(1),  tag, vi,evi,dvi, s,vs,es, b,vb, ilp,ilpmax,
+     *   blp,blpmax
+      equivalence  (vs, es)
+c
+c----initialize tag
+      tag = mark(ek) - last(ek)
+c
+c----for each vertex vi in ek
+      i = ek
+      ilpmax = last(ek)
+      if (ilpmax.le.0)  go to 11
+      do 10 ilp=1,ilpmax
+        i = l(i)
+        vi = v(i)
+        if (last(vi))  1, 10, 8
+c
+c------if vi neither prototype nor duplicate vertex, then merge elements
+c------to compute degree
+   1      tag = tag + 1
+          dvi = last(ek)
+c
+c--------for each vertex/element vs/es in element list of vi
+          s = l(vi)
+   2      s = l(s)
+          if (s.eq.0)  go to 9
+            vs = v(s)
+            if (next(vs).lt.0)  go to 3
+c
+c----------if vs is uneliminated vertex, then tag and adjust degree
+              mark(vs) = tag
+              dvi = dvi + 1
+              go to 5
+c
+c----------if es is active element, then expand
+c------------check for outmatched vertex
+   3          if (mark(es).lt.0)  go to 6
+c
+c------------for each vertex vb in es
+              b = es
+              blpmax = last(es)
+              do 4 blp=1,blpmax
+                b = l(b)
+                vb = v(b)
+c
+c--------------if vb is untagged, then tag and adjust degree
+                if (mark(vb).ge.tag)  go to 4
+                  mark(vb) = tag
+                  dvi = dvi + 1
+   4            continue
+c
+   5        go to 2
+c
+c------else if vi is outmatched vertex, then adjust overlaps but do not
+c------compute degree
+   6      last(vi) = 0
+          mark(es) = mark(es) - 1
+   7      s = l(s)
+          if (s.eq.0)  go to 10
+            es = v(s)
+            if (mark(es).lt.0)  mark(es) = mark(es) - 1
+            go to 7
+c
+c------else if vi is prototype vertex, then calculate degree by
+c------inclusion/exclusion and reset overlap count
+   8      evi = last(vi)
+          dvi = last(ek) + last(evi) + mark(evi)
+          mark(evi) = 0
+c
+c------insert vi in appropriate degree list
+   9    next(vi) = head(dvi)
+        head(dvi) = vi
+        last(vi) = -dvi
+        if (next(vi).gt.0)  last(next(vi)) = vi
+        if (dvi.lt.dmin)  dmin = dvi
+c
+  10    continue
+c
+  11  return
+      end
+      KPP_REAL FUNCTION D1MACH (IDUM)
+      INTEGER IDUM
+C-----------------------------------------------------------------------
+C This routine computes the unit roundoff of the machine.
+C This is defined as the smallest positive machine number
+C u such that  1.0 + u .ne. 1.0
+C
+C Subroutines/functions called by D1MACH.. None
+C-----------------------------------------------------------------------
+      KPP_REAL U, COMP
+      U = 1.0D0
+ 10   U = U*0.5D0
+      COMP = 1.0D0 + U
+      IF (COMP .NE. 1.0D0) GO TO 10
+      D1MACH = U*2.0D0
+      RETURN
+C----------------------- End of Function D1MACH ------------------------
+      END
+
+        SUBROUTINE FUNC_CHEM (N, T, V, FCT)
+	IMPLICIT NONE
+        INCLUDE 'KPP_ROOT_Parameters.h'
+        INCLUDE 'KPP_ROOT_Global.h'
+        KPP_REAL V(NVAR), FCT(NVAR)
+	KPP_REAL T,TOLD
+	INTEGER N
+        TOLD = TIME
+        TIME = T
+        CALL Update_SUN()
+        CALL Update_RCONST()
+        TIME = TOLD
+        CALL Fun(V, FIX, RCONST, FCT)
+        RETURN
+        END
+
+        SUBROUTINE JAC_CHEM (N, T, V, JV, j, ian, jan)
+	IMPLICIT NONE
+        INCLUDE 'KPP_ROOT_Parameters.h'
+        INCLUDE 'KPP_ROOT_Global.h'
+        KPP_REAL V(NVAR), JV(NVAR,NVAR)
+	KPP_REAL T,TOLD
+        INTEGER N, j, ian(1), jan(1), ii, jj
+        TOLD = TIME
+        TIME = T
+        CALL Update_SUN()
+        CALL Update_RCONST()
+        TIME = TOLD
+
+        DO ii=1,NVAR
+          DO jj=1,NVAR
+              JV(ii,jj) = 0.D0
+          END DO
+        END DO
+        call Jac(V, FIX, RCONST, JV)
+
+        RETURN
+        END
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/atm_odessa_ddm.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/atm_odessa_ddm.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/atm_odessa_ddm.def	(revision 2696)
@@ -0,0 +1,42 @@
+ 
+#FUNCTION AGGREGATE
+#JACOBIAN FULL
+#DOUBLE ON 
+#INTFILE atm_odessa_ddm
+
+#INLINE F77_GLOBAL
+      INTEGER Autonomous
+      COMMON /INTGDATA/ Autonomous
+      REAL*8 STEPSTART
+      COMMON /GDATA/ STEPSTART
+#ENDINLINE
+
+#INLINE F77_INIT
+        STEPMIN=0.0001
+        STEPMAX=3600.
+        Autonomous = 0
+        STEPSTART=STEPMIN
+#ENDINLINE
+
+
+
+#INLINE C_GLOBAL
+extern int Autonomous;
+extern double STEPSTART;
+#ENDINLINE
+
+#INLINE C_DATA_INT
+int Autonomous;
+double STEPSTART;
+#ENDINLINE
+
+
+
+#INLINE C_INIT
+        STEPMIN=0.0001;
+        STEPMAX=3600.0;
+        Autonomous = 0;
+        STEPSTART=STEPMIN;
+#ENDINLINE
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/atm_odessa_ddm.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/atm_odessa_ddm.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/atm_odessa_ddm.f	(revision 2696)
@@ -0,0 +1,4398 @@
+      SUBROUTINE INTEGRATE( NSENSIT, Y, TIN, TOUT )
+
+      INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Global.h'
+
+C TIN - Start Time
+      REAL*8 TIN
+C TOUT - End Time
+      REAL*8 TOUT
+C Concentrations and Sensitivities
+      REAL*8 Y(NVAR,NSENSIT+1), PARAMS(NSENSIT)
+C ---  Note: Y contains: (1:NVAR) concentrations, followed by
+C ---                   (1:NVAR) sensitivities w.r.t. first parameter, followed by
+C ---                   etc.,  followed by
+C ---                   (1:NVAR) sensitivities w.r.t. NSENSIT's parameter
+      INTEGER i
+
+      INTEGER LIW, LRW
+C      PARAMETER (LRW = 22 + 8*(NSENSIT+1)*NVAR + NVAR**2 + NVAR)
+C      PARAMETER (LIW = 21 + NVAR + NSENSIT)
+C      REAL*8 RWORK(LRW)
+C      INTEGER IWORK(LIW)
+C Note: the following dynamic allocation is not standard F77 and may not work on
+C       some systems. Declare LRW, LIW parameters as above with some upper bound
+C       used for NSENSIT
+      REAL*8 RWORK(22 + 8*(NSENSIT+1)*NVAR + NVAR**2 + NVAR)
+      INTEGER IWORK(21 + NVAR + NSENSIT)
+
+      INTEGER IOPT(3), NEQ(2)
+
+      EXTERNAL FUNC_CHEM,JAC,DFUNC_CHEMDPAR
+
+      MF = 21    ! --- BDF plus user-supplied Jacobian
+
+      LRW = 22 + 8*(NSENSIT+1)*NVAR + NVAR**2 + NVAR
+      LIW = 21 + NVAR + NSENSIT
+
+      NEQ(1) = NVAR ! --- No. of Variables
+      NEQ(2) = NSENSIT ! --- No of parameters
+
+      ITOL=1     ! --- 1=Scalar Tolerances; 4 = VECTOR TOLERANCES
+      ITASK=1    ! --- Normal Output
+      ISTATE=1
+      IOPT(1)=1  ! --- 0= No optional parameters, 1=Optional parameters
+      IOPT(2)=1  ! --- 1=Perform sensitivity analysis; 0 if not
+      IOPT(3)=0  ! --- DFUNC_CHEMDPAR supplied by the user;
+                 ! --- 0 if finite differences are to be used
+C --- Set optional parameters
+      DO 10 i=1,LRW
+        RWORK(i) = 0.0D0
+ 10   CONTINUE
+      DO 20 i=1,LIW
+        IWORK(i) = 0
+ 20   CONTINUE
+
+      RWORK(5) = STEPMIN   ! 	THE STEP SIZE TO BE ATTEMPTED ON THE FIRST STEP.
+      RWORK(6) = STEPMAX     ! THE MAXIMUM ABSOLUTE STEP SIZE ALLOWED.
+      RWORK(7) = 0.0D0       ! THE MINIMUM ABSOLUTE STEP SIZE ALLOWED.
+      IWORK(6) = 5000        !  MAXIMUM NUMBER OF (INTERNALLY DEFINED) STEPS
+
+      CALL ODESSA( FUNC_CHEM,DFUNC_CHEMDPAR,NEQ,Y,PARAMS,TIN,TOUT,
+     &              ITOL,RTOL,ATOL,
+     1              ITASK,ISTATE,IOPT,RWORK,LRW,IWORK,LIW,
+     &              JAC,MF)
+
+      IF (ISTATE.LT.0) THEN
+        print *,'ODESSA: Unsucessfull exit at T=',
+     &          TIN,' (ISTATE=',ISTATE,')'
+      ENDIF
+
+      RETURN
+      END
+
+
+
+        SUBROUTINE FUNC_CHEM (N, T, V, PARAMS, FCT)
+        INCLUDE 'KPP_ROOT_Parameters.h'
+        INCLUDE 'KPP_ROOT_Global.h'
+
+        DIMENSION V(NVAR), PARAMS(*), FCT(NVAR)
+        TOLD = TIME
+        TIME = T
+        CALL Update_SUN()
+        CALL Update_RCONST()
+        TIME = TOLD
+        CALL Fun(V,  FIX, RCONST, FCT)
+        RETURN
+        END
+
+        SUBROUTINE DFUNC_CHEMDPAR (N, T, V, PARAMS, DFCT, JPAR)
+        INCLUDE 'KPP_ROOT_Parameters.h'
+        INCLUDE 'KPP_ROOT_Global.h'
+
+        DIMENSION V(NVAR), PARAMS(*), DFCT(NVAR)
+	INTEGER JPAR, i
+C This setting is required for sensitivities w.r.t. initial conditions
+        DO i=1,NVAR
+	  DFCT(i) = 0.d0
+	END DO
+        RETURN
+        END
+
+        SUBROUTINE JAC (N, T, V, PARAMS, ML, MU, JV, NROWPD)
+        INCLUDE 'KPP_ROOT_Parameters.h'
+        INCLUDE 'KPP_ROOT_Global.h'
+
+        REAL*8 V(NVAR), PARAMS(*), JV(NVAR,NVAR)
+	INTEGER ML, MU, NROWPD
+        TOLD = TIME
+        TIME = T
+        CALL Update_SUN()
+        CALL Update_RCONST()
+        TIME = TOLD
+        DO i=1,NVAR
+           DO j=1,NVAR
+              JV(i,j) = 0.D0
+           END DO
+        END DO
+        CALL Jac(V,  FIX, RCONST, JV)
+        RETURN
+        END
+!
+
+C      ALGORITHM 658, COLLECTED ALGORITHMS FROM ACM.
+C      THIS WORK PUBLISHED IN TRANSACTIONS ON MATHEMATICAL SOFTWARE,
+C      VOL. 14, NO. 1, P.61.
+C-----------------------------------------------------------------------
+C THIS IS THE SEPTEMBER 1, 1986 VERSION OF ODESSA..
+C AN ORDINARY DIFFERENTIAL EQUATION KppSolveR WITH EXPLICIT SIMULTANEOUS
+C SENSITIVITY ANALYSIS.
+C
+C THIS PACKAGE IS A MODIFICATION OF THE AUGUST 13, 1981 VERSION OF
+C LSODE..  LIVERMORE KppSolveR FOR ORDINARY DIFFERENTIAL EQUATIONS.
+C THIS VERSION IS IN DOUBLE PRECISION.
+C
+C ODESSA KppSolveS FOR THE FIRST-ORDER SENSITIVITY COEFFICIENTS..
+C    DY(I)/DP, FOR A SINGLE PARAMETER, OR,
+C    DY(I)/DP(J), FOR MULTIPLE PARAMETERS,
+C ASSOCIATED WITH A SYSTEM OF ORDINARY DIFFERENTIAL EQUATIONS..
+C    DY/DT = F(Y,T;P).
+C-----------------------------------------------------------------------
+C REFERENCES...
+C
+C  1. JORGE R. LEIS AND MARK A. KRAMER, THE SIMULTANEOUS SOLUTION AND
+C     EXPLICIT SENSITIVITY ANALYSIS OF SYSTEMS DESCRIBED BY ORDINARY
+C     DIFFERENTIAL EQUATIONS.  SUBMITTED TO ACM TRANS. MATH. SOFTWARE,
+C     (1985).
+C
+C  2. JORGE R. LEIS AND MARK A. KRAMER, ODESSA - AN ORDINARY DIFFERENTIA
+C     EQUATION KppSolveR WITH EXPLICIT SIMULTANEOUS SENSITIVITY ANALYSIS.
+C     SUBMITTED TO ACM TRANS. MATH. SOFTWARE, (1985).
+C
+C  3. ALAN C. HINDMARSH,  LSODE AND LSODI,  TWO NEW INITIAL VALUE
+C     ORDINARY DIFFERENTIAL EQUATION KppSolveRS, ACM-SIGNUM NEWSLETTER,
+C     VOL. 15, NO. 4 (1980), PP. 10-11.
+C-----------------------------------------------------------------------
+C PROBLEM STATEMENT..
+C
+C THE ODESSA MODIFICATION OF THE LSODE PACKAGE PROVIDES THE OPTION TO
+C CALCULATE FIRST-ORDER SENSITIVITY COEFFICIENTS FOR A SYSTEM OF STIFF
+C OR NON-STIFF EXPLICIT ORDINARY DIFFERENTIAL EQUATIONS OF THE GENERAL
+C FORM :
+C
+C                  DY/DT = F(Y,T;P)     (1)
+C
+C WHERE Y IS AN N-DIMENSIONAL DEPENDENT VARIABLE VECTOR, T IS THE
+C INDEPENDENT INTEGRATION VARIABLE, AND P IS AN NPAR-DIMENSIONAL
+C CONSTANT VECTOR. THE GOVERNING EQUATIONS FOR THE FIRST-ORDER
+C SENSITIVITY COEFFICIENTS ARE GIVEN BY :
+C
+C                  S'(T) = J(T)*S(T) + DF/DP     (2)
+C
+C WHERE
+C
+C                  S(T)  = DY(T)/DP (= SENSITIVITY FUNCTIONS)
+C                  S'(T) = D(DY(T)/DP)/DT
+C                  J(T)  = DF(Y,T;P)/DY(T) (= JACOBIAN MATRIX)
+C AND              DF/DP = DF(Y,T;P)/DP (= INHOMOGENEITY MATRIX)
+C
+C SOLUTION OF EQUATIONS (1) AND (2) PROCEEDS SIMULTANEOUSLY VIA AN
+C EXTENSION OF THE LSODE PACKAGE AS DESCRIBED IN [1].
+C----------------------------------------------------------------------
+C ACKNOWLEDGEMENT : THE FOLLOWING ODESSA PACKAGE DOCUMENTATION IS A
+C                   MODIFICATION OF THE LSODE DOCUMENTATION WHICH
+C                   ACCOMPANIES THE LSODE PACKAGE CODE.
+C----------------------------------------------------------------------
+C SUMMARY OF USAGE.
+C
+C COMMUNICATION BETWEEN THE USER AND THE ODESSA PACKAGE, FOR NORMAL
+C SITUATIONS, IS SUMMARIZED HERE. THIS SUMMARY DESCRIBES ONLY A SUBSET
+C OF THE FULL SET OF OPTIONS AVAILABLE.  SEE THE FULL DESCRIPTION FOR
+C DETAILS, INCLUDING OPTIONAL COMMUNICATION, NONSTANDARD OPTIONS,
+C AND INSTRUCTIONS FOR SPECIAL SITUATIONS.  SEE ALSO THE EXAMPLE
+C PROBLEM (WITH PROGRAM AND OUTPUT) FOLLOWING THIS SUMMARY.
+C
+C A. FIRST PROVIDE A SUBROUTINE OF THE FORM..
+C              SUBROUTINE F (N, T, Y, PAR, YDOT)
+C              DOUBLE PRECISION T, Y, PAR, YDOT
+C              DIMENSION Y(N), YDOT(N), PAR(NPAR)
+C WHICH SUPPLIES THE VECTOR FUNCTION F BY LOADING YDOT(I) WITH F(I).
+C N IS THE NUMBER OF FIRST-ORDER DIFFERENTIAL EQUATIONS IN THE
+C ABOVE MODEL. NPAR IS THE NUMBER OF MODEL PARAMETERS FOR WHICH
+C VECTOR SENSITIVITY FUNCTIONS ARE DESIRED. YOU ARE ALSO ENCOURAGED
+C TO PROVIDE A SUBROUTINE OF THE FORM..
+C              SUBROUTINE DF (N, T, Y, PAR, DFDP, JPAR)
+C              DOUBLE PRECISION T, Y, PAR, DFDP
+C              DIMENSION Y(N), PAR(NPAR), DFDP(N)
+C              GO TO (1,...,NPAR) JPAR
+C         1    DFDP(1) = DF(1)/DP(1)
+C              .
+C              DFDP(I) = DF(I)/DP(1)
+C              .
+C              DFDP(N) = DF(N)/DP(1)
+C              RETURN
+C         2    DFDP(1) = DF(1)/DP(2)
+C              .
+C              DFDP(I) = DF(I)/DP(2)
+C              .
+C              DFDP(N) = DF(N)/DP(2)
+C              RETURN
+C         .    .
+C         .    .
+C              RETURN
+C       NPAR   DFDP(1) = DF(1)/DP(NPAR)
+C              .
+C              DFDP(I) = DF(I)/DP(NPAR)
+C              .
+C              DFDP(N) = DF(N)/DP(NPAR)
+C              RETURN
+C              END
+C ONLY NONZERO ELEMENTS NEED BE LOADED. IF THIS IS NOT FEASIBLE,
+C ODESSA WILL GENERATE THIS MATRIX INTERNALLY BY DIFFERENCE QUOTIENTS.
+C
+C B. NEXT DETERMINE (OR GUESS) WHETHER OR NOT THE PROBLEM IS STIFF.
+C STIFFNESS OCCURS WHEN THE JACOBIAN MATRIX DF/DY HAS AN EIGENVALUE
+C WHOSE REAL PART IS NEGATIVE AND LARGE IN MAGNITUDE, COMPARED TO THE
+C RECIPROCAL OF THE T SPAN OF INTEREST.  IF THE PROBLEM IS NONSTIFF,
+C USE METH = 10.  IF IT IS STIFF, USE METH = 20. THE USER IS REQUIRED
+C TO INPUT THE METHOD FLAG MF = 10*METH + MITER. THERE ARE FOUR
+C STANDARD CHOICES FOR MITER WHEN A SENSITIVITY ANALYSIS IS DESIRED,
+C AND ODESSA REQUIRES THE JACOBIAN MATRIX IN SOME FORM.
+C THIS MATRIX IS REGARDED EITHER AS FULL (MITER = 1 OR 2),
+C OR BANDED (MITER = 4 OR 5). IN THE BANDED CASE, ODESSA REQUIRES TWO
+C HALF-BANDWIDTH PARAMETERS ML AND MU.  THESE ARE, RESPECTIVELY, THE
+C WIDTHS OF THE LOWER AND UPPER PARTS OF THE BAND, EXCLUDING THE MAIN
+C DIAGONAL.  THUS THE BAND CONSISTS OF THE LOCATIONS (I,J) WITH
+C I-ML .LE. J .LE. I+MU, AND THE FULL BANDWIDTH IS ML+MU+1.
+C
+C C. YOU ARE ENCOURAGED TO SUPPLY THE JACOBIAN DIRECTLY (MF = 11, 14,
+C 21, OR 24), BUT IF THIS IS NOT FEASIBLE, ODESSA WILL COMPUTE IT
+C INTERNALLY BY DIFFERENCE QUOTIENTS (MF = 12, 15, 22, OR 25). IF YOU
+C ARE SUPPLYING THE JACOBIAN, PROVIDE A SUBROUTINE OF THE FORM..
+C         SUBROUTINE JAC (NEQ, T, Y, PAR, ML, MU, PD, NROWPD)
+C         DOUBLE PRECISION T, Y, PAR, PD
+C         DIMENSION Y(N), PD(NROWPD,N), PAR(NPAR)
+C WHICH SUPPLIES DF/DY BY LOADING PD AS FOLLOWS..
+C  FOR A FULL JACOBIAN (MF = 11, OR 21), LOAD PD(I,J) WITH DF(I)/DY(J),
+C  THE PARTIAL DERIVATIVE OF F(I) WITH RESPECT TO Y(J).  (IGNORE THE
+C  ML AND MU ARGUMENTS IN THIS CASE.)
+C  FOR A BANDED JACOBIAN (MF = 14, OR 24), LOAD PD(I-J+MU+1,J) WITH
+C  DF(I)/DY(J), I.E. LOAD THE DIAGONAL LINES OF DF/DY INTO THE ROWS OF
+C  PD FROM THE TOP DOWN.
+C IN EITHER CASE, ONLY NONZERO ELEMENTS NEED BE LOADED.
+C
+C D. WRITE A MAIN PROGRAM WHICH CALLS SUBROUTINE ODESSA ONCE FOR
+C EACH POINT AT WHICH ANSWERS ARE DESIRED.  THIS SHOULD ALSO PROVIDE
+C FOR POSSIBLE USE OF LOGICAL UNIT 6 FOR OUTPUT OF ERROR MESSAGES BY
+C ODESSA.  ON THE FIRST CALL TO ODESSA, SUPPLY ARGUMENTS AS FOLLOWS..
+C F     = NAME OF SUBROUTINE FOR RIGHT-HAND SIDE VECTOR F (MODEL).
+C         THIS NAME MUST BE DECLARED EXTERNAL IN CALLING PROGRAM.
+C DF    = NAME OF SUBROUTINE FOR INHOMOGENEITY MATRIX DF/DP.
+C         IF USED (IDF = 1), THIS NAME MUST BE DECLARED EXTERNAL IN
+C         CALLING PROGRAM. IF NOT USED (IDF = 0), PASS A DUMMY NAME.
+C N     = NUMBER OF FIRST ORDER ODE-S IN MODEL; LOAD INTO NEQ(1).
+C NPAR  = NUMBER OF MODEL PARAMETERS OF INTEREST; LOAD INTO NEQ(2).
+C Y     = AN (N) BY (NPAR+1) REAL ARRAY OF INITIAL VALUES..
+C         Y(I,1) , I = 1,N , CONTAIN THE STATE, OR MODEL, DEPENDENT
+C                            VARIABLES,
+C         Y(I,J) , J = 2,NPAR , CONTAIN THE DEPENDENT SENSITIVITY
+C                               COEFFICIENTS.
+C PAR   = A REAL ARRAY OF LENGTH NPAR CONTAINING MODEL PARAMETERS
+C         OF INTEREST.
+C T     = THE INITIAL VALUE OF THE INDEPENDENT VARIABLE.
+C TOUT  = FIRST POINT WHERE OUTPUT IS DESIRED (.NE. T).
+C ITOL  = 1, 2, 3, OR 4 ACCORDING AS RTOL, ATOL (BELOW) ARE  SCALARS
+C         OR ARRAYS.
+C RTOL  = RELATIVE TOLERANCE PARAMETER (SCALAR OR (N) BY (NPAR+1)
+C         ARRAY).
+C ATOL  = ABSOLUTE TOLERANCE PARAMETER (SCALAR OR (N) BY (NPAR+1)
+C         ARRAY).
+C         THE ESTIMATED LOCAL ERROR IN Y(I,J) WILL BE CONTROLLED SO AS
+C         TO BE ROUGHLY LESS (IN MAGNITUDE) THAN
+C          EWT(I,J) = RTOL*ABS(Y(I,J)) + ATOL          IF ITOL = 1,
+C          EWT(I,J) = RTOL*ABS(Y(I,J)) + ATOL(I,J)     IF ITOL = 2,
+C          EWT(I,J) = RTOL(I,J)*ABS(Y(I,J) + ATOL      IF ITOL = 3, OR
+C          EWT(I,J) = RTOL(I,J)*ABS(Y(I,J) + ATOL(I,J) IF ITOL = 4.
+C         THUS THE LOCAL ERROR TEST PASSES IF, IN EACH COMPONENT,
+C         EITHER THE ABSOLUTE ERROR IS LESS THAN ATOL (OR ATOL(I,J)),
+C         OR THE RELATIVE ERROR IS LESS THAN RTOL (OR RTOL(I,J)).
+C         USE RTOL = 0.0 FOR PURE ABSOLUTE ERROR CONTROL, AND
+C         USE ATOL = 0.0 FOR PURE RELATIVE ERROR CONTROL.
+C         CAUTION.. ACTUAL (GLOBAL) ERRORS MAY EXCEED THESE LOCAL
+C         TOLERANCES, SO CHOOSE THEM CONSERVATIVELY.
+C ITASK = 1 FOR NORMAL COMPUTATION OF OUTPUT VALUES OF Y AT T = TOUT.
+C ISTATE = INTEGER FLAG (INPUT AND OUTPUT).  SET ISTATE = 1.
+C IOPT  = 0, TO INDICATE NO OPTIONAL INPUTS FOR INTEGRATION;
+C          LOAD INTO IOPT(1).
+C ISOPT = 1, TO INDICATE SENSITIVITY ANALYSIS, = 0, TO INDICATE
+C          NO SENSITIVITY ANALYSIS; LOAD INTO IOPT(2).
+C IDF   = 1, IF SUBROUTINE DF (ABOVE) IS SUPPLIED BY THE USER,
+C          = 0, OTHERWISE; LOAD INTO IOPT(3).
+C RWORK = REAL WORK ARRAY OF LENGTH AT LEAST..
+C           22 + 16*N + N**2           FOR MF = 11 OR 12,
+C           22 + 17*N + (2*ML + MU)*N  FOR MF = 14 OR 15,
+C           22 +  9*N + N**2           FOR MF = 21 OR 22,
+C           22 + 10*N + (2*ML + MU)*N  FOR MF = 24 OR 25,
+C         IF ISOPT = 0, OR..
+C           22 + 15*(NPAR+1)*N + N**2 + N           FOR MF = 11 OR 12,
+C           24 + 15*(NPAR+1)*N + (2*ML+MU+2)*N + N  FOR MF = 14 OR 15,
+C           22 + 8*(NPAR+1)*N + N**2 + N            FOR MF = 21 OR 22,
+C           24 + 8*(NPAR+1)*N + (2*ML+MU+2)*N + N   FOR MF = 24 OR 25,
+C         IF ISOPT = 1.
+C LRW   = DECLARED LENGTH OF RWORK (IN USER-S DIMENSION STATEMENT).
+C IWORK = INTEGER WORK ARRAY OF LENGTH AT LEAST..
+C          20 + N         IF ISOPT = 0,
+C          21 + N + NPAR  IF ISOPT = 1.
+C        IF MITER = 4 OR 5, INPUT IN IWORK(1),IWORK(2) THE LOWER
+C        AND UPPER HALF-BANDWIDTHS ML,MU (EXCLUDING MAIN DIAGONAL).
+C LIW  = DECLARED LENGTH OF IWORK (IN USER-S DIMENSION STATEMENT).
+C JAC  = NAME OF SUBROUTINE FOR JACOBIAN MATRIX.
+C        IF USED, THIS NAME MUST BE DECLARED EXTERNAL IN CALLING
+C        PROGRAM.  IF NOT USED, PASS A DUMMY NAME.
+C MF   = METHOD FLAG.  STANDARD VALUES FOR ISOPT = 0 ARE..
+C         10 FOR NONSTIFF (ADAMS) METHOD, NO JACOBIAN USED.
+C         21 FOR STIFF (BDF) METHOD, USER-SUPPLIED FULL JACOBIAN.
+C         22 FOR STIFF METHOD, INTERNALLY GENERATED FULL JACOBIAN.
+C         24 FOR STIFF METHOD, USER-SUPPLIED BANDED JACOBIAN.
+C         25 FOR STIFF METHOD, INTERNALLY GENERATED BANDED JACOBIAN.
+C        IF ISOPT = 1, MF = 10 IS ILLEGAL AND CAN BE REPLACED BY..
+C         11 FOR NONSTIFF METHOD, USER-SUPPLIED FULL JACOBIAN.
+C         12 FOR NONSTIFF METHOD, INTERNALLY GENERATED FULL JACOBIAN.
+C         14 FOR NONSTIFF METHOD, USER-SUPPLIED BANDED JACOBIAN.
+C         15 FOR NONSTIFF METHOD, INTERNALLY GENERATED BANDED JACOBIAN.
+C NOTE THAT THE MAIN PROGRAM MUST DECLARE ARRAYS Y, RWORK, IWORK, AND
+C POSSIBLY ATOL AND RTOL, AS WELL AS NEQ, IOPT, AND PAR IF ISOPT = 1.
+C
+C E. THE OUTPUT FROM THE FIRST CALL (OR ANY CALL) IS..
+C     Y = ARRAY OF COMPUTED VALUES OF Y(T) VECTOR.
+C     T = CORRESPONDING VALUE OF INDEPENDENT VARIABLE (NORMALLY TOUT).
+C ISTATE = 2  IF ODESSA WAS SUCCESSFUL, NEGATIVE OTHERWISE.
+C         -1 MEANS EXCESS WORK DONE ON THIS CALL (PERHAPS WRONG MF).
+C         -2 MEANS EXCESS ACCURACY REQUESTED (TOLERANCES TOO SMALL).
+C         -3 MEANS ILLEGAL INPUT DETECTED (SEE PRINTED MESSAGE).
+C         -4 MEANS REPEATED ERROR TEST FAILURES (CHECK ALL INPUTS).
+C         -5 MEANS REPEATED CONVERGENCE FAILURES (PERHAPS BAD JACOBIAN
+C            SUPPLIED OR WRONG CHOICE OF MF OR TOLERANCES).
+C         -6 MEANS ERROR WEIGHT BECAME ZERO DURING PROBLEM. (SOLUTION
+C            COMPONENT I,J VANISHED, AND ATOL OR ATOL(I,J) = 0.0)
+C
+C F. TO CONTINUE THE INTEGRATION AFTER A SUCCESSFUL RETURN, SIMPLY
+C RESET TOUT AND CALL ODESSA AGAIN. NO OTHER PARAMETERS NEED BE RESET.
+C----------------------------------------------------------------------
+C EXAMPLE PROBLEM.
+C
+C THE FOLLOWING IS A SIMPLE EXAMPLE PROBLEM, WITH THE CODING
+C NEEDED FOR ITS SOLUTION BY ODESSA.  THE PROBLEM IS FROM CHEMICAL
+C KINETICS, AND CONSISTS OF THE FOLLOWING THREE RATE EQUATIONS..
+C    DY1/DT = -PAR(1)*Y1 + PAR(2)*Y2*Y3 ; PAR(1) = .04, PAR(2) = 1.E4
+C    DY2/DT = PAR(1)*Y1 - PAR(2)*Y2*Y3 - PAR(3)*Y2**2 ; PAR(3) = 3.E7
+C    DY3/DT = PAR(3)*Y2**2
+C ON THE INTERVAL FROM T = 0.0 TO T = 4.E10, WITH INITIAL CONDITIONS
+C Y1 = 1.0, Y2 = Y3 = 0, AND S(I,J) = 0, I = 1,3, J = 1,3.
+C THE PROBLEM IS STIFF.
+C
+C THE FOLLOWING CODING KppSolveS THIS PROBLEM WITH ODESSA, USING
+C MF = 21 AND PRINTING RESULTS AT T = .4, 4., ..., 4.E10.
+C IT USES ITOL = 4 AND ATOL MUCH SMALLER FOR Y2 THAN Y1 OR Y3,
+C BECAUSE Y2 HAS MUCH SMALLER VALUES. LESS STRINGENT TOLERANCES
+C ARE ASSIGNED FOR THE SENSITIVITIES TO ACHIEVE GREATER EFFICIENCY.
+C AT THE END OF THE RUN, STATISTICAL QUANTITIES OF INTEREST ARE
+C PRINTED (SEE OPTIONAL OUTPUTS IN THE FULL DESCRIPTION BELOW).
+C
+C      DOUBLE PRECISION ATOL, RWORK, RTOL, T, TOUT, Y, PAR
+C      EXTERNAL FEX, JEX, DFEX
+C      DIMENSION Y(3,4), PAR(3), ATOL(3,4), RTOL(3,4), RWORK(130),
+C     1  IWORK(27), NEQ(2), IOPT(3)
+C      N = 3
+C      NPAR = 3
+C      NEQ(1) = N
+C      NEQ(2) = NPAR
+C      NSV = NPAR+1
+C      DO 10 I = 1,N
+C      DO 10 J = 1,NSV
+C 10     Y(I,J) = 0.0D0
+C      Y(1,1) = 1.0D0
+C      PAR(1) = 0.04D0
+C      PAR(2) = 1.0D4
+C      PAR(3) = 3.0D7
+C      T = 0.D0
+C      TOUT = .4D0
+C      ITOL = 4
+C      ATOL(1,1) = 1.D-6
+C      ATOL(2,1) = 1.D-10
+C      ATOL(3,1) = 1.D-6
+C      DO 20 I = 1,N
+C        RTOL(I,1) = 1.D-4
+C        DO 15 J = 2,NSV
+C          RTOL(I,J) = 1.D-3
+C 15       ATOL(I,J) = 1.D2 * ATOL(I,1)
+C 20   CONTINUE
+C      ITASK = 1
+C      ISTATE = 1
+C      IOPT(1) = 0
+C      IOPT(2) = 1
+C      IOPT(3) = 1
+C      LRW = 130
+C      LIW = 27
+C      MF = 21
+C      DO 60 IOUT = 1,12
+C        CALL ODESSA(FEX,DFEX,NEQ,Y,PAR,T,TOUT,ITOL,RTOL,ATOL,
+C     1    ITASK,ISTATE, IOPT,RWORK,LRW,IWORK,LIW,JEX,MF)
+C        WRITE(6,30)T,Y(1,1),Y(2,1),Y(3,1)
+C 30     FORMAT(1X,7H AT T =,E12.4,6H   Y =,3E14.6)
+C        DO 50 J = 2,NSV
+C          JPAR = J-1
+C          WRITE(6,40)JPAR,Y(1,J),Y(2,J),Y(3,J)
+C 40       FORMAT(20X,2HS(,I1,3H) =,3E14.6)
+C 50     CONTINUE
+C        IF (ISTATE .LT. 0) GO TO 80
+C 60     TOUT = TOUT*10.D0
+C      WRITE(6,70)IWORK(11),IWORK(12),IWORK(13),IWORK(19)
+C 70   FORMAT(1X,/,12H NO. STEPS =,I4,11H  NO. F-S =,I4,11H  NO. J-S =,
+C     1  I4,12H  NO. DF-S =,I4)
+C      STOP
+C 80   WRITE(6,90)ISTATE
+C 90   FORMAT(///22H ERROR HALT.. ISTATE =,I3)
+C      STOP
+C      END
+C
+C      SUBROUTINE FEX (NEQ, T, Y, PAR, YDOT)
+C      DOUBLE PRECISION T, Y, YDOT, PAR
+C      DIMENSION Y(3), YDOT(3), PAR(3)
+C      YDOT(1) = -PAR(1)*Y(1) + PAR(2)*Y(2)*Y(3)
+C      YDOT(3) = PAR(3)*Y(2)*Y(2)
+C      YDOT(2) = -YDOT(1) - YDOT(3)
+C      RETURN
+C      END
+C
+C      SUBROUTINE JEX (NEQ, T, Y, PAR, ML, MU, PD, NRPD)
+C      DOUBLE PRECISION PD, T, Y, PAR
+C      DIMENSION Y(3), PD(NRPD,3), PAR(3)
+C      PD(1,1) = -PAR(1)
+C      PD(1,2) = PAR(2)*Y(3)
+C      PD(1,3) = PAR(2)*Y(2)
+C      PD(2,1) = PAR(1)
+C      PD(2,3) = -PD(1,3)
+C      PD(3,2) = 2.D0*PAR(3)*Y(2)
+C      PD(2,2) = -PD(1,2) - PD(3,2)
+C      RETURN
+C      END
+C
+C      SUBROUTINE DFEX (NEQ, T, Y, PAR, DFDP, JPAR)
+C      DOUBLE PRECISION T, Y, PAR, DFDP
+C      DIMENSION Y(3), PAR(3), DFDP(3)
+C      GO TO (1,2,3), JPAR
+C  1   DFDP(1) = -Y(1)
+C      DFDP(2) = Y(1)
+C      RETURN
+C  2   DFDP(1) = Y(2)*Y(3)
+C      DFDP(2) = -Y(2)*Y(3)
+C      RETURN
+C  3   DFDP(2) = -Y(2)*Y(2)
+C      DFDP(3) = Y(2)*Y(2)
+C      RETURN
+C      END
+C
+C  THE OUTPUT OF THIS PROGRAM (ON A DATA GENERAL MV-8000 IN
+C  DOUBLE PRECISION IS AS FOLLOWS:
+C
+C AT T =   .4000E+00   Y =   .985173E+00   .338641E-04   .147930E-01
+C                   S(1) =  -.355914E+00   .390261E-03   .355524E+00
+C                   S(2) =   .955150E-07  -.213065E-09  -.953019E-07
+C                   S(3) =  -.158466E-10  -.529012E-12   .163756E-10
+C AT T =   .4000E+01   Y =   .905516E+00   .224044E-04   .944615E-01
+C                   S(1) =  -.187621E+01   .179197E-03   .187603E+01
+C                   S(2) =   .296093E-05  -.583104E-09  -.296034E-05
+C                   S(3) =  -.493267E-09  -.276246E-12   .493544E-09
+C AT T =   .4000E+02   Y =   .715848E+00   .918628E-05   .284143E+00
+C                   S(1) =  -.424730E+01   .459360E-04   .424726E+01
+C                   S(2) =   .137294E-04  -.235815E-09  -.137291E-04
+C                   S(3) =  -.228818E-08  -.113803E-12   .228829E-08
+C AT T =   .4000E+03   Y =   .450526E+00   .322299E-05   .549471E+00
+C                   S(1) =  -.595837E+01   .354310E-05   .595836E+01
+C                   S(2) =   .227380E-04  -.226041E-10  -.227380E-04
+C                   S(3) =  -.378971E-08  -.499501E-13   .378976E-08
+C AT T =   .4000E+04   Y =   .183185E+00   .894131E-06   .816814E+00
+C                   S(1) =  -.475006E+01  -.599504E-05   .475007E+01
+C                   S(2) =   .188089E-04   .231330E-10  -.188089E-04
+C                   S(3) =  -.313478E-08  -.187575E-13   .313480E-08
+C AT T =   .4000E+05   Y =   .389733E-01   .162133E-06   .961027E+00
+C                   S(1) =  -.157477E+01  -.276199E-05   .157477E+01
+C                   S(2) =   .628668E-05   .110026E-10  -.628670E-05
+C                   S(3) =  -.104776E-08  -.453588E-14   .104776E-08
+C AT T =   .4000E+06   Y =   .493609E-02   .198411E-07   .995064E+00
+C                   S(1) =  -.236244E+00  -.458262E-06   .236244E+00
+C                   S(2) =   .944669E-06   .183193E-11  -.944671E-06
+C                   S(3) =  -.157441E-09  -.635990E-15   .157442E-09
+C AT T =   .4000E+07   Y =   .516087E-03   .206540E-08   .999484E+00
+C                   S(1) =  -.256277E-01  -.509808E-07   .256278E-01
+C                   S(2) =   .102506E-06   .203905E-12  -.102506E-06
+C                   S(3) =  -.170825E-10  -.684002E-16   .170826E-10
+C AT T =   .4000E+08   Y =   .519314E-04   .207736E-09   .999948E+00
+C                   S(1) =  -.259316E-02  -.518029E-08   .259316E-02
+C                   S(2) =   .103726E-07   .207209E-13  -.103726E-07
+C                   S(3) =  -.172845E-11  -.691450E-17   .172845E-11
+C AT T =   .4000E+09   Y =   .544710E-05   .217885E-10   .999995E+00
+C                   S(1) =  -.271637E-03  -.541849E-09   .271638E-03
+C                   S(2) =   .108655E-08   .216739E-14  -.108655E-08
+C                   S(3) =  -.180902E-12  -.723615E-18   .180902E-12
+C AT T =   .4000E+10   Y =   .446748E-06   .178699E-11   .100000E+01
+C                   S(1) =  -.322322E-04  -.842541E-10   .322323E-04
+C                   S(2) =   .128929E-09   .337016E-15  -.128929E-09
+C                   S(3) =  -.209715E-13  -.838859E-19   .209715E-13
+C AT T =   .4000E+11   Y =  -.363960E-07  -.145584E-12   .100000E+01
+C                   S(1) =  -.164109E-06  -.429604E-11   .164113E-06
+C                   S(2) =   .656436E-12   .171842E-16  -.656451E-12
+C                   S(3) =  -.689361E-15  -.275745E-20   .689363E-15
+C
+C NO. STEPS = 340  NO. F-S = 412  NO. J-S = 343  NO. DF-S =1023
+C----------------------------------------------------------------------
+C FULL DESCRIPTION OF USER INTERFACE TO ODESSA.
+C
+C THE USER INTERFACE TO ODESSA CONSISTS OF THE FOLLOWING PARTS.
+C
+C I.  THE CALL SEQUENCE TO SUBROUTINE ODESSA, WHICH IS A DRIVER
+C     ROUTINE FOR THE KppSolveR.  THIS INCLUDES DESCRIPTIONS OF BOTH
+C     THE CALL SEQUENCE ARGUMENTS AND OF USER-SUPPLIED ROUTINES.
+C     FOLLOWING THESE DESCRIPTIONS IS A DESCRIPTION OF
+C     OPTIONAL INPUTS AVAILABLE THROUGH THE CALL SEQUENCE, AND THEN
+C     A DESCRIPTION OF OPTIONAL OUTPUTS (IN THE WORK ARRAYS).
+C
+C II.  DESCRIPTIONS OF OTHER ROUTINES IN THE ODESSA PACKAGE THAT MAY
+C     BE (OPTIONALLY) CALLED BY THE USER.  THESE PROVIDE THE ABILITY
+C     TO ALTER ERROR MESSAGE HANDLING, SAVE AND RESTORE THE INTERNAL
+C     COMMON, AND OBTAIN SPECIFIED DERIVATIVES OF THE SOLUTION Y(T).
+C
+C III. DESCRIPTIONS OF COMMON BLOCKS TO BE DECLARED IN OVERLAY
+C     OR SIMILAR ENVIRONMENTS, OR TO BE SAVED WHEN DOING AN INTERRUPT
+C     OF THE PROBLEM AND CONTINUED SOLUTION LATER.
+C
+C IV.  DESCRIPTION OF TWO SUBROUTINES IN THE ODESSA PACKAGE, EITHER OF
+C     WHICH THE USER MAY REPLACE WITH HIS OWN VERSION, IF DESIRED.
+C     THESE RELATE TO THE MEASUREMENT OF ERRORS.
+C
+C V.   GENERAL REMARKS WHICH HIGHLIGHT DIFFERENCES BETWEEN THE LSODE
+C     PACKAGE AND THE ODESSA PACKAGE.
+C----------------------------------------------------------------------
+C PART I.  CALL SEQUENCE.
+C
+C THE CALL SEQUENCE PARAMETERS USED FOR INPUT ONLY ARE..
+C    F, DF, NEQ, PAR, TOUT, ITOL, RTOL, ATOL, ITASK, IOPT, LRW, LIW,
+C    JAC, MF,
+C AND THOSE USED FOR BOTH INPUT AND OUTPUT ARE
+C    Y, T, ISTATE.
+C THE WORK ARRAYS RWORK AND IWORK ARE ALSO USED FOR CONDITIONAL AND
+C OPTIONAL INPUTS AND OPTIONAL OUTPUTS.  (THE TERM OUTPUT HERE REFERS
+C TO THE RETURN FROM SUBROUTINE ODESSA TO THE USER-S CALLING PROGRAM.)
+C
+C THE LEGALITY OF INPUT PARAMETERS WILL BE THOROUGHLY CHECKED ON THE
+C INITIAL CALL FOR THE PROBLEM, BUT NOT CHECKED THEREAFTER UNLESS A
+C CHANGE IN INPUT PARAMETERS IS FLAGGED BY ISTATE = 3 ON INPUT.
+C
+C THE DESCRIPTIONS OF THE CALL ARGUMENTS ARE AS FOLLOWS.
+C
+C F     = THE NAME OF THE USER-SUPPLIED SUBROUTINE DEFINING THE
+C         ODE MODEL. THIS SYSTEM MUST BE PUT IN THE FIRST-ORDER
+C         FORM DY/DT = F(Y,T;P), WHERE F IS A VECTOR-VALUED FUNCTION
+C         OF THE SCALAR T AND VECTORS Y, AND PAR.  SUBROUTINE F IS TO
+C         COMPUTE THE FUNCTION F.  IT IS TO HAVE THE FORM..
+C              SUBROUTINE F (NEQ, T, Y, PAR, YDOT)
+C              DOUBLE PRECISION T, Y, PAR, YDOT
+C              DIMENSION Y(1), PAR(1), YDOT(1)
+C         WHERE NEQ, T, Y, AND PAR ARE INPUT, AND YDOT = F(Y,T;P)
+C         IS OUTPUT.  Y AND YDOT ARE ARRAYS OF LENGTH N (= NEQ(1)).
+C         (IN THE DIMENSION STATEMENT ABOVE, 1 IS A DUMMY
+C         DIMENSION.. IT CAN BE REPLACED BY ANY VALUE.)
+C         F SHOULD NOT ALTER ARRAY Y, OR PAR(1),...,PAR(NPAR).
+C         F MUST BE DECLARED EXTERNAL IN THE CALLING PROGRAM.
+C
+C         SUBROUTINE F MAY ACCESS USER-DEFINED QUANTITIES IN
+C         NEQ(2),... AND PAR(NPAR+1),... IF NEQ IS AN ARRAY
+C         (DIMENSIONED IN F) AND PAR HAS LENGTH EXCEEDING NPAR.
+C         SEE THE DESCRIPTIONS OF NEQ AND PAR BELOW.
+C
+C DF    = THE NAME OF THE USER-SUPPLIED ROUTINE (IDF = 1) TO COMPUTE
+C         THE INHOMOGENEITY MATRIX, DF/DP, AS A FUNCTION OF THE SCALAR
+C         T, AND THE VECTORS Y, AND PAR. IT IS TO HAVE THE FORM
+C                SUBROUTINE DF (NEQ, T, Y, PAR, DFDP, JPAR)
+C                DOUBLE PRECISION T, Y, PAR, DFDP
+C                DIMENSION Y(1), PAR(1), DFDP(1)
+C                GO TO (1,2,...,NPAR) JPAR
+C            1   DFDP(1) = DF(1)/DP(1)
+C                .
+C                DFDP(I) = DF(I)/DP(1)
+C                .
+C                DFDP(N) = DF(N)/DP(1)
+C                RETURN
+C            2   DFDP(1) = DF(1)/DP(2)
+C                .
+C                DFDP(I) = DF(I)/DP(2)
+C                .
+C                DFDP(N) = DF(N)/DP(2)
+C                .
+C                RETURN
+C            .   .
+C            .   .
+C          NPAR  DFDP(1) = DF(1)/DP(NPAR)
+C                .
+C                DFDP(I) = DF(I)/DP(NPAR)
+C                .
+C                DFDP(N) = DF(N)/DP(NPAR)
+C                RETURN
+C                END
+C         WHERE NEQ, T, Y, PAR, AND JPAR ARE INPUT AND THE VECTOR
+C         DFDP(*,JPAR) IS TO BE LOADED WITH THE PARTIAL DERIVATIVES
+C         DF(Y,T;PAR)/DP(JPAR) ON OUTPUT. ONLY NONZERO ELEMENTS NEED
+C         BE LOADED.  T, Y, AND PAR HAVE THE SAME MEANING AS IN
+C         SUBROUTINE F. (IN THE DIMENSION STATEMENT ABOVE, 1 IS A DUMMY
+C         DIMENSION.. IT CAN BE REPLACED BY ANY VALUE).
+C
+C         DFDP(*,JPAR) IS PRESET TO ZERO BY THE KppSolveR, SO THAT ONLY
+C         THE NONZERO ELEMENTS NEED BE LOADED BY DF. SUBROUTINE DF
+C         MUST BE DECLARED EXTERNAL IN THE CALLING PROGRAM IF USED.
+C         IF IDF = 0 (OR ISOPT = 0), A DUMMY ARGUMENT CAN BE USED.
+C
+C         SUBROUTINE DF MAY ACCESS USER-DEFINED QUANTITIES IN
+C         NEQ(2),... AND PAR(NPAR+1),... IF NEQ IS AN ARRAY
+C         (DIMENSIONED IN DF) AND PAR HAS A LENGTH EXCEEDING NPAR.
+C         SEE THE DESCRIPTIONS OF NEQ AND PAR (BELOW).
+C
+C NEQ   = THE SIZE OF THE ODE SYSTEM (NUMBER OF FIRST ORDER ORDINARY
+C         DIFFERENTIAL EQUATIONS (N) IN THE MODEL).  USED ONLY FOR
+C         INPUT.  NEQ MAY NOT BE CHANGED DURING THE PROBLEM.
+C
+C         FOR ISOPT = 0, NEQ IS NORMALLY A SCALAR.  HOWEVER, NEQ MAY
+C         BE AN ARRAY, WITH NEQ(1) SET TO THE SYSTEM SIZE (N), IN WHICH
+C         CASE THE ODESSA PACKAGE ACCESSES ONLY NEQ(1). HOWEVER,
+C         THIS PARAMETER IS PASSED AS THE NEQ ARGUMENT IN ALL CALLS
+C         TO F, DF, AND JAC.  HENCE, IF IT IS AN ARRAY, LOCATIONS
+C         NEQ(2),... MAY BE USED TO STORE OTHER INTEGER DATA AND PASS
+C         IT TO F, DF, AND/OR JAC.  FOR ISOPT = 1, NPAR MUST BE LOADED
+C         INTO NEQ(2), AND IS NOT ALLOWED TO CHANGE DURING THE PROBLEM.
+C         IN THESE CASES, SUBROUTINES F, DF, AND/OR JAC MUST INCLUDE
+C         NEQ IN A DIMENSION STATEMENT.
+C
+C Y     = A REAL ARRAY FOR THE VECTOR OF DEPENDENT VARIABLES, OF
+C         DIMENSION (N) BY (NPAR+1).  USED FOR BOTH INPUT AND
+C         OUTPUT ON THE FIRST CALL (ISTATE = 1), AND ONLY FOR
+C         OUTPUT ON OTHER CALLS. ON THE FIRST CALL, Y MUST CONTAIN
+C         THE VECTORS OF INITIAL VALUES.  ON OUTPUT, Y CONTAINS THE
+C         COMPUTED SOLUTION VECTORS, EVALUATED AT T.
+C
+C PAR   = A REAL ARRAY FOR THE VECTOR OF CONSTANT MODEL PARAMETERS
+C         OF INTEREST IN THE SENSITIVITY ANALYSIS, OF LENGTH NPAR
+C         OR MORE. PAR IS PASSED AS AN ARGUMENT IN ALL CALLS TO F,
+C         DF, AND JAC. HENCE LOCATIONS PAR(NPAR+1),... MAY BE USED
+C         TO STORE OTHER REAL DATA AND PASS IT TO F, DF, AND/OR JAC.
+C         LOCATIONS PAR(1),...,PAR(NPAR) ARE USED AS INPUT ONLY,
+C         AND MUST NOT BE CHANGED DURING THE PROBLEM.
+C
+C T     = THE INDEPENDENT VARIABLE.  ON INPUT, T IS USED ONLY ON THE
+C         FIRST CALL, AS THE INITIAL POINT OF THE INTEGRATION.
+C         ON OUTPUT, AFTER EACH CALL, T IS THE VALUE AT WHICH A
+C         COMPUTED SOLUTION Y IS EVALUATED (USUALLY THE SAME AS TOUT).
+C         ON AN ERROR RETURN, T IS THE FARTHEST POINT REACHED.
+C
+C TOUT  = THE NEXT VALUE OF T AT WHICH A COMPUTED SOLUTION IS DESIRED.
+C         USED ONLY FOR INPUT.
+C
+C         WHEN STARTING THE PROBLEM (ISTATE = 1), TOUT MAY BE EQUAL
+C         TO T FOR ONE CALL, THEN SHOULD .NE. T FOR THE NEXT CALL.
+C         FOR THE INITIAL T, AN INPUT VALUE OF TOUT .NE. T IS USED
+C         IN ORDER TO DETERMINE THE DIRECTION OF THE INTEGRATION
+C         (I.E. THE ALGEBRAIC SIGN OF THE STEP SIZES) AND THE ROUGH
+C         SCALE OF THE PROBLEM.  INTEGRATION IN EITHER DIRECTION
+C         (FORWARD OR BACKWARD IN T) IS PERMITTED.
+C
+C         IF ITASK = 2 OR 5 (ONE-STEP MODES), TOUT IS IGNORED AFTER
+C         THE FIRST CALL (I.E. THE FIRST CALL WITH TOUT .NE. T).
+C         OTHERWISE, TOUT IS REQUIRED ON EVERY CALL.
+C
+C         IF ITASK = 1, 3, OR 4, THE VALUES OF TOUT NEED NOT BE
+C         MONOTONE, BUT A VALUE OF TOUT WHICH BACKS UP IS LIMITED
+C         TO THE CURRENT INTERNAL T INTERVAL, WHOSE ENDPOINTS ARE
+C         TCUR - HU AND TCUR (SEE OPTIONAL OUTPUTS, BELOW, FOR
+C         TCUR AND HU).
+C
+C ITOL  = AN INDICATOR FOR THE TYPE OF ERROR CONTROL.  SEE
+C         DESCRIPTION BELOW UNDER ATOL.  USED ONLY FOR INPUT.
+C
+C RTOL  = A RELATIVE ERROR TOLERANCE PARAMETER, EITHER A SCALAR OR
+C         AN ARRAY OF SPACE (N) BY (NPAR+1).  SEE DESCRIPTION BELOW
+C         UNDER ATOL. INPUT ONLY.
+C
+C ATOL  = AN ABSOLUTE ERROR TOLERANCE PARAMETER, EITHER A SCALAR OR
+C         AN ARRAY OF SPACE (N) BY (NPAR+1).  INPUT ONLY.
+C
+C            THE INPUT PARAMETERS ITOL, RTOL, AND ATOL DETERMINE
+C         THE ERROR CONTROL PERFORMED BY THE KppSolveR.  THE KppSolveR WILL
+C         CONTROL THE VECTOR E = (E(I,J)) OF ESTIMATED LOCAL ERRORS
+C         IN Y, ACCORDING TO AN INEQUALITY OF THE FORM
+C                   RMS-NORM OF ( E(I,J)/EWT(I,J) )   .LE.   1,
+C         WHERE     EWT(I,J) = RTOL(I,J)*ABS(Y(I,J)) + ATOL(I,J),
+C         AND THE RMS-NORM (ROOT-MEAN-SQUARE NORM) HERE IS
+C         RMS-NORM(V) = SQRT ( (1/N) * SUM (V(I,J)**2) ); I =1,...,N.
+C         HERE EWT = (EWT(I,J)) IS A VECTOR OF WEIGHTS WHICH MUST
+C         ALWAYS BE POSITIVE, AND THE VALUES OF RTOL AND ATOL SHOULD
+C         ALL BE NON-NEGATIVE.  THE FOLLOWING TABLE GIVES THE TYPES
+C         (SCALAR/ARRAY) OF RTOL AND ATOL, AND THE CORRESPONDING FORM
+C         OF EWT(I,J).
+C
+C          ITOL   RTOL      ATOL           EWT(I,J)
+C           1    SCALAR    SCALAR   RTOL*ABS(Y(I,J)) + ATOL
+C           2    SCALAR    ARRAY    RTOL*ABS(Y(I,J)) + ATOL(I,J)
+C           3    ARRAY     SCALAR   RTOL(I,J)*ABS(Y(I,J)) + ATOL
+C           4    ARRAY     ARRAY    RTOL(I,J)*ABS(Y(I,J)) + ATOL(I,J)
+C
+C         WHEN EITHER OF THESE PARAMETERS IS A SCALAR, IT NEED NOT
+C         BE DIMENSIONED IN THE USER-S CALLING PROGRAM.
+C
+C         THE TOTAL NUMBER OF ERROR TEST FAILURES DUE TO THE SENSITIVITY
+C         ANALYSIS, AND WHICH REQUIRE AN INTEGRATION STEP TO BE
+C         REPEATED, ARE ACCUMULATED IN THE LAST NPAR+1 LOCATIONS OF THE
+C         INTEGER WORK ARRAY IWORK (SEE OPTIONAL OUTPUTS BELOW).
+C         THIS INFORMATION MAY BE OF VALUE IN DETERMINING APPROPRIATE
+C         ERROR TOLERANCES TO BE APPLIED TO THE SENSITIVITY FUNCTIONS.
+C
+C         IF NONE OF THE ABOVE CHOICES (WITH ITOL, RTOL, AND ATOL
+C         FIXED THROUGHOUT THE PROBLEM) IS SUITABLE, MORE GENERAL
+C         ERROR CONTROLS CAN BE OBTAINED BY SUBSTITUTING
+C         USER-SUPPLIED ROUTINES FOR THE SETTING OF EWT AND/OR FOR
+C         THE NORM CALCULATION.  SEE PART IV BELOW.
+C
+C         IF GLOBAL ERRORS ARE TO BE ESTIMATED BY MAKING A REPEATED
+C         RUN ON THE SAME PROBLEM WITH SMALLER TOLERANCES, THEN ALL
+C         COMPONENTS OF RTOL AND ATOL (I.E. OF EWT) SHOULD BE SCALED
+C         DOWN UNIFORMLY.
+C
+C ITASK  = AN INDEX SPECIFYING THE TASK TO BE PERFORMED.
+C         INPUT ONLY.  ITASK HAS THE FOLLOWING VALUES AND MEANINGS.
+C         1  MEANS NORMAL COMPUTATION OF OUTPUT VALUES OF Y(T) AT
+C            T = TOUT (BY OVERSHOOTING AND INTERPOLATING).
+C         2  MEANS TAKE ONE STEP ONLY AND RETURN.
+C         3  MEANS STOP AT THE FIRST INTERNAL MESH POINT AT OR
+C            BEYOND T = TOUT AND RETURN.
+C         4  MEANS NORMAL COMPUTATION OF OUTPUT VALUES OF Y(T) AT
+C            T = TOUT BUT WITHOUT OVERSHOOTING T = TCRIT.
+C            TCRIT MUST BE INPUT AS RWORK(1).  TCRIT MAY BE EQUAL TO
+C            OR BEYOND TOUT, BUT NOT BEHIND IT IN THE DIRECTION OF
+C            INTEGRATION.  THIS OPTION IS USEFUL IF THE PROBLEM
+C            HAS A SINGULARITY AT OR BEYOND T = TCRIT.
+C         5  MEANS TAKE ONE STEP, WITHOUT PASSING TCRIT, AND RETURN.
+C            TCRIT MUST BE INPUT AS RWORK(1).
+C
+C         NOTE..  IF ITASK = 4 OR 5 AND THE KppSolveR REACHES TCRIT
+C         (WITHIN ROUNDOFF), IT WILL RETURN T = TCRIT (EXACTLY) TO
+C         INDICATE THIS (UNLESS ITASK = 4 AND TOUT COMES BEFORE TCRIT,
+C         IN WHICH CASE ANSWERS AT T = TOUT ARE RETURNED FIRST).
+C
+C ISTATE = AN INDEX USED FOR INPUT AND OUTPUT TO SPECIFY THE
+C         THE STATE OF THE CALCULATION.
+C
+C         ON INPUT, THE VALUES OF ISTATE ARE AS FOLLOWS.
+C         1  MEANS THIS IS THE FIRST CALL FOR THE PROBLEM
+C            (INITIALIZATIONS WILL BE DONE).  SEE NOTE BELOW.
+C         2  MEANS THIS IS NOT THE FIRST CALL, AND THE CALCULATION
+C            IS TO CONTINUE NORMALLY, WITH NO CHANGE IN ANY INPUT
+C            PARAMETERS EXCEPT POSSIBLY TOUT AND ITASK.
+C            (IF ITOL, RTOL, AND/OR ATOL ARE CHANGED BETWEEN CALLS
+C            WITH ISTATE = 2, THE NEW VALUES WILL BE USED BUT NOT
+C            TESTED FOR LEGALITY.)
+C         3  MEANS THIS IS NOT THE FIRST CALL, AND THE
+C            CALCULATION IS TO CONTINUE NORMALLY, BUT WITH
+C            A CHANGE IN INPUT PARAMETERS OTHER THAN
+C            TOUT AND ITASK.  CHANGES ARE ALLOWED IN
+C            ITOL, RTOL, ATOL, IOPT, LRW, LIW, MF, ML, MU,
+C            AND ANY OF THE OPTIONAL INPUTS EXCEPT H0.
+C            (SEE IWORK DESCRIPTION FOR ML AND MU.)
+C         NOTE..  A PRELIMINARY CALL WITH TOUT = T IS NOT COUNTED
+C         AS A FIRST CALL HERE, AS NO INITIALIZATION OR CHECKING OF
+C         INPUT IS DONE.  (SUCH A CALL IS SOMETIMES USEFUL FOR THE
+C         PURPOSE OF OUTPUTTING THE INITIAL CONDITIONS.)
+C         THUS THE FIRST CALL FOR WHICH TOUT .NE. T REQUIRES
+C         ISTATE = 1 ON INPUT.
+C
+C         ON OUTPUT, ISTATE HAS THE FOLLOWING VALUES AND MEANINGS.
+C          1  MEANS NOTHING WAS DONE, AS TOUT WAS EQUAL TO T WITH
+C             ISTATE = 1 ON INPUT.  (HOWEVER, AN INTERNAL COUNTER WAS
+C             SET TO DETECT AND PREVENT REPEATED CALLS OF THIS TYPE.)
+C          2  MEANS THE INTEGRATION WAS PERFORMED SUCCESSFULLY.
+C         -1  MEANS AN EXCESSIVE AMOUNT OF WORK (MORE THAN MXSTEP
+C             STEPS) WAS DONE ON THIS CALL, BEFORE COMPLETING THE
+C             REQUESTED TASK, BUT THE INTEGRATION WAS OTHERWISE
+C             SUCCESSFUL AS FAR AS T.  (MXSTEP IS AN OPTIONAL INPUT
+C             AND IS NORMALLY 500.)  TO CONTINUE, THE USER MAY
+C             SIMPLY RESET ISTATE TO A VALUE .GT. 1 AND CALL AGAIN
+C             (THE EXCESS WORK STEP COUNTER WILL BE RESET TO 0).
+C             IN ADDITION, THE USER MAY INCREASE MXSTEP TO AVOID
+C             THIS ERROR RETURN (SEE BELOW ON OPTIONAL INPUTS).
+C         -2  MEANS TOO MUCH ACCURACY WAS REQUESTED FOR THE PRECISION
+C             OF THE MACHINE BEING USED.  THIS WAS DETECTED BEFORE
+C             COMPLETING THE REQUESTED TASK, BUT THE INTEGRATION
+C             WAS SUCCESSFUL AS FAR AS T.  TO CONTINUE, THE TOLERANCE
+C             PARAMETERS MUST BE RESET, AND ISTATE MUST BE SET
+C             TO 3.  THE OPTIONAL OUTPUT TOLSF MAY BE USED FOR THIS
+C             PURPOSE.  (NOTE.. IF THIS CONDITION IS DETECTED BEFORE
+C             TAKING ANY STEPS, THEN AN ILLEGAL INPUT RETURN
+C             (ISTATE = -3) OCCURS INSTEAD.)
+C         -3  MEANS ILLEGAL INPUT WAS DETECTED, BEFORE TAKING ANY
+C             INTEGRATION STEPS.  SEE WRITTEN MESSAGE FOR DETAILS.
+C             NOTE..  IF THE KppSolveR DETECTS AN INFINITE LOOP OF CALLS
+C             TO THE KppSolveR WITH ILLEGAL INPUT, IT WILL CAUSE
+C             THE RUN TO STOP.
+C         -4  MEANS THERE WERE REPEATED ERROR TEST FAILURES ON
+C             ONE ATTEMPTED STEP, BEFORE COMPLETING THE REQUESTED
+C             TASK, BUT THE INTEGRATION WAS SUCCESSFUL AS FAR AS T.
+C             THE PROBLEM MAY HAVE A SINGULARITY, OR THE INPUT
+C             MAY BE INAPPROPRIATE.
+C         -5  MEANS THERE WERE REPEATED CONVERGENCE TEST FAILURES ON
+C             ONE ATTEMPTED STEP, BEFORE COMPLETING THE REQUESTED
+C             TASK, BUT THE INTEGRATION WAS SUCCESSFUL AS FAR AS T.
+C             THIS MAY BE CAUSED BY AN INACCURATE JACOBIAN MATRIX,
+C             IF ONE IS BEING USED.
+C         -6  MEANS EWT(I,J) BECAME ZERO FOR SOME I,J DURING THE
+C             INTEGRATION.  PURE RELATIVE ERROR CONTROL (ATOL(I,J)=0.0)
+C             WAS REQUESTED ON A VARIABLE WHICH HAS NOW VANISHED.
+C             THE INTEGRATION WAS SUCCESSFUL AS FAR AS T.
+C
+C         NOTE..  SINCE THE NORMAL OUTPUT VALUE OF ISTATE IS 2,
+C         IT DOES NOT NEED TO BE RESET FOR NORMAL CONTINUATION.
+C         ALSO, SINCE A NEGATIVE INPUT VALUE OF ISTATE WILL BE
+C         REGARDED AS ILLEGAL, A NEGATIVE OUTPUT VALUE REQUIRES THE
+C         USER TO CHANGE IT, AND POSSIBLY OTHER INPUTS, BEFORE
+C         CALLING THE KppSolveR AGAIN.
+C
+C IOPT  = AN INTEGER ARRAY FLAG TO SPECIFY WHETHER OR NOT ANY OPTIONAL
+C         INPUTS ARE BEING USED ON THIS CALL.  INPUT ONLY.
+C         THE OPTIONAL INPUTS ARE LISTED SEPARATELY BELOW.
+C         IOPT(1) = 0 MEANS NO OPTIONAL INPUTS FOR THE KppSolveR WILL BE
+C                   USED. DEFAULT VALUES WILL BE USED IN ALL CASES.
+C                 = 1 MEANS ONE OR MORE OPTIONAL INPUTS FOR THE
+C                   KppSolveR ARE BEING USED.
+C                   NOTE : IOPT(1) IS INDEPENDENT OF ISOPT AND IDF.
+C         IOPT(2) = 0 MEANS NO SENSITIVITY ANALYSIS WILL BE PERFORMED.
+C                 = 1 MEANS A SENSITIVITY ANALYSIS WILL BE PERFORMED.
+C                   NOTE : IOPT(2) IS RENAMED TO ISOPT IN ODESSA.
+C                 = 0 MEANS DF/DP WILL BE CALCULATED BY FINITE
+C                   DIFFERENCE WITHIN ODESSA.
+C         IOPT(3) = 1 MEANS DF/DP WILL BE CALCULATED BY A USER-SUPPLIED
+C                   ROUTINE.
+C                   NOTE : IOPT(3) IS RENAMED TO IDF IN ODESSA.
+C                          IF IDF = 1, THE USER MUST SUPPLY A
+C                          SUBROUTINE DF (THE NAME IS ARBITRARY) AS
+C                          DESCRIBED BELOW UNDER DF. FOR IDF = 0,
+C                          A DUMMY ARGUMENT CAN BE USED.
+C
+C RWORK  = A REAL WORKING ARRAY (DOUBLE PRECISION).
+C         FOR ISOPT = 0, THE LENGTH OF RWORK MUST BE AT LEAST..
+C            20 + NYH*(MAXORD + 1) + 3*NEQ + LWM
+C         FOR ISOPT = 1, THE LENGTH OF RWORK MUST BE AT LEAST..
+C            20 + NYH*(MAXORD + 1) + 2*NYH + LWM + N
+C         WHERE..
+C         NYH    = THE TOTAL NUMBER OF DEPENDENT VARIABLES;
+C                  (= N IF ISOPT = 0, AND N*(NPAR+1) IF ISOPT = 1).
+C         MAXORD = 12 (IF METH = 1) OR 5 (IF METH = 2) (UNLESS A
+C                  SMALLER VALUE IS GIVEN AS AN OPTIONAL INPUT),
+C         LWM    = 0                  IF MITER = 0,
+C         LWM    = N**2 + 2           IF MITER IS 1 OR 2,
+C         LWM    = N + 2              IF MITER = 3, AND
+C         LWM    = (2*ML+MU+1)*N + 2  IF MITER IS 4 OR 5.
+C         (SEE THE MF DESCRIPTION FOR METH AND MITER.)
+C
+C         THE FIRST 20 WORDS OF RWORK ARE RESERVED FOR CONDITIONAL
+C         AND OPTIONAL INPUTS AND OPTIONAL OUTPUTS.
+C
+C         THE FOLLOWING WORD IN RWORK IS A CONDITIONAL INPUT..
+C           RWORK(1) = TCRIT = CRITICAL VALUE OF T WHICH THE KppSolveR
+C                      IS NOT TO OVERSHOOT.  REQUIRED IF ITASK IS
+C                      4 OR 5, AND IGNORED OTHERWISE.  (SEE ITASK.)
+C
+C LRW   = THE LENGTH OF THE ARRAY RWORK, AS DECLARED BY THE USER.
+C         (THIS WILL BE CHECKED BY THE KppSolveR.)
+C
+C IWORK  = AN INTEGER WORK ARRAY. THE LENGTH MUST BE AT LEAST..
+C            20      IF MITER = 0 OR 3 (MF = 10, 13, 20, 23), OR
+C            20 + N  OTHERWISE (MF = 11, 12, 14, 15, 21, 22, 24, 25).
+C          FOR ISOPT = 0, OR..
+C            21 + N + NPAR
+C          FOR ISOPT = 1.
+C         THE FIRST FEW WORDS OF IWORK ARE USED FOR CONDITIONAL AND
+C         OPTIONAL INPUTS AND OPTIONAL OUTPUTS.
+C
+C         THE FOLLOWING 2 WORDS IN IWORK ARE CONDITIONAL INPUTS..
+C           IWORK(1) = ML     THESE ARE THE LOWER AND UPPER
+C           IWORK(2) = MU     HALF-BANDWIDTHS, RESPECTIVELY, OF THE
+C                      BANDED JACOBIAN, EXCLUDING THE MAIN DIAGONAL.
+C                      THE BAND IS DEFINED BY THE MATRIX LOCATIONS
+C                      (I,J) WITH I-ML .LE. J .LE. I+MU.  ML AND MU
+C                      MUST SATISFY  0 .LE.  ML,MU  .LE. NEQ-1.
+C                      THESE ARE REQUIRED IF MITER IS 4 OR 5, AND
+C                      IGNORED OTHERWISE.  ML AND MU MAY IN FACT BE
+C                      THE BAND PARAMETERS FOR A MATRIX TO WHICH
+C                      DF/DY IS ONLY APPROXIMATELY EQUAL.
+*
+C
+C LIW   = THE LENGTH OF THE ARRAY IWORK, AS DECLARED BY THE USER.
+C         (THIS WILL BE CHECKED BY THE KppSolveR.)
+C
+C NOTE..  THE WORK ARRAYS MUST NOT BE ALTERED BETWEEN CALLS TO ODESSA
+C FOR THE SAME PROBLEM, EXCEPT POSSIBLY FOR THE CONDITIONAL AND
+C OPTIONAL INPUTS, AND EXCEPT FOR THE LAST 2*NYH + N WORDS OF RWORK.
+C THE LATTER SPACE IS USED FOR INTERNAL SCRATCH SPACE, AND SO IS
+C AVAILABLE FOR USE BY THE USER OUTSIDE ODESSA BETWEEN CALLS, IF
+C DESIRED (BUT NOT FOR USE BY F, DF, OR JAC).
+C
+C JAC   = THE NAME OF THE USER-SUPPLIED ROUTINE (MITER = 1 OR 4) TO
+C         COMPUTE THE JACOBIAN MATRIX, DF/DY, AS A FUNCTION OF THE
+C         SCALAR T AND THE VECTORS Y, AND PAR.  IT IS TO HAVE THE FORM
+C              SUBROUTINE JAC (NEQ, T, Y, PAR, ML, MU, PD, NROWPD)
+C              DOUBLE PRECISION T, Y, PAR, PD
+C              DIMENSION Y(1), PAR(1), PD(NROWPD,1)
+C         WHERE NEQ, T, Y, PAR, ML, MU, AND NROWPD ARE INPUT AND THE
+C         ARRAY PD IS TO BE LOADED WITH PARTIAL DERIVATIVES (ELEMENTS
+C         OF THE JACOBIAN MATRIX) ON OUTPUT.  PD MUST BE GIVEN A FIRST
+C         DIMENSION OF NROWPD.  T, Y, AND PAR HAVE THE SAME MEANING AS
+C         IN SUBROUTINE F.  (IN THE DIMENSION STATEMENT ABOVE, 1 IS A
+C         DUMMY DIMENSION.. IT CAN BE REPLACED BY ANY VALUE.)
+C              IN THE FULL MATRIX CASE (MITER = 1), ML AND MU ARE
+C         IGNORED, AND THE JACOBIAN IS TO BE LOADED INTO PD IN
+C         COLUMNWISE MANNER, WITH DF(I)/DY(J) LOADED INTO PD(I,J).
+C              IN THE BAND MATRIX CASE (MITER = 4), THE ELEMENTS
+C         WITHIN THE BAND ARE TO BE LOADED INTO PD IN COLUMNWISE
+C         MANNER, WITH DIAGONAL LINES OF DF/DY LOADED INTO THE ROWS
+C         OF PD.  THUS DF(I)/DY(J) IS TO BE LOADED INTO PD(I-J+MU+1,J).
+C         ML AND MU ARE THE HALF-BANDWIDTH PARAMETERS (SEE IWORK).
+C         THE LOCATIONS IN PD IN THE TWO TRIANGULAR AREAS WHICH
+C         CORRESPOND TO NONEXISTENT MATRIX ELEMENTS CAN BE IGNORED
+C         OR LOADED ARBITRARILY, AS THEY ARE OVERWRITTEN BY ODESSA.
+C              PD IS PRESET TO ZERO BY THE KppSolveR, SO THAT ONLY THE
+C         NONZERO ELEMENTS NEED BE LOADED BY JAC. EACH CALL TO JAC IS
+C         PRECEDED BY A CALL TO F WITH THE SAME ARGUMENTS NEQ, T, Y,
+C         AND PAR. THUS TO GAIN SOME EFFICIENCY, INTERMEDIATE
+C         QUANTITIES SHARED BY BOTH CALCULATIONS MAY BE SAVED IN A
+C         USER COMMON BLOCK BY F AND NOT RECOMPUTED BY JAC, IF
+C         DESIRED.  ALSO, JAC MAY ALTER THE Y ARRAY, IF DESIRED.
+C         JAC MUST BE DECLARED EXTERNAL IN THE CALLING PROGRAM.
+C              SUBROUTINE JAC MAY ACCESS USER-DEFINED QUANTITIES IN
+C         NEQ(2),... AND PAR(NPAR+1),.... SEE THE DESCRIPTIONS OF
+C         NEQ (ABOVE) AND PAR (BELOW).
+C
+C MF    = THE METHOD FLAG.  USED ONLY FOR INPUT.  THE LEGAL VALUES OF
+C         MF ARE 10, 11, 12, 13, 14, 15, 20, 21, 22, 23, 24, AND 25.
+C         MF HAS DECIMAL DIGITS METH AND MITER.. MF = 10*METH + MITER.
+C         METH INDICATES THE BASIC LINEAR MULTISTEP METHOD..
+C           METH = 1 MEANS THE IMPLICIT ADAMS METHOD.
+*
+C           METH = 2 MEANS THE METHOD BASED ON BACKWARD
+C                    DIFFERENTIATION FORMULAS (BDF-S).
+C         MITER INDICATES THE CORRECTOR ITERATION METHOD..
+C           MITER = 0 MEANS FUNCTIONAL ITERATION (NO JACOBIAN MATRIX
+C                     IS INVOLVED).
+C           MITER = 1 MEANS CHORD ITERATION WITH A USER-SUPPLIED
+C                     FULL (NEQ BY NEQ) JACOBIAN.
+C           MITER = 2 MEANS CHORD ITERATION WITH AN INTERNALLY
+C                     GENERATED (DIFFERENCE QUOTIENT) FULL JACOBIAN
+C                     (USING NEQ EXTRA CALLS TO F PER DF/DY VALUE).
+C           MITER = 3 MEANS CHORD ITERATION WITH AN INTERNALLY
+C                     GENERATED DIAGONAL JACOBIAN APPROXIMATION.
+C                     (USING 1 EXTRA CALL TO F PER DF/DY EVALUATION).
+C           MITER = 4 MEANS CHORD ITERATION WITH A USER-SUPPLIED
+C                     BANDED JACOBIAN.
+C           MITER = 5 MEANS CHORD ITERATION WITH AN INTERNALLY
+C                     GENERATED BANDED JACOBIAN (USING ML+MU+1 EXTRA
+C                     CALLS TO F PER DF/DY EVALUATION).
+C         IF MITER = 1 OR 4, THE USER MUST SUPPLY A SUBROUTINE JAC
+C         (THE NAME IS ARBITRARY) AS DESCRIBED ABOVE UNDER JAC.
+C         FOR OTHER VALUES OF MITER, A DUMMY ARGUMENT CAN BE USED.
+C
+C         IF A SENSITIVITY ANLYSIS IS DESIRED (ISOPT = 1), MITER = 0
+C         AND 3 ARE DISALLOWED. IN THESE CASES, THE USER IS RECOMMENDED
+C         TO SUPPLY AN ANALYTICAL JACOBIAN (MITER = 1 OR 4) AND AN
+C         ANALYTICAL INHOMOGENEITY MATRIX (IDF = 1).
+C----------------------------------------------------------------------
+C OPTIONAL INPUTS.
+C
+C THE FOLLOWING IS A LIST OF THE OPTIONAL INPUTS PROVIDED FOR IN THE
+C CALL SEQUENCE.  (SEE ALSO PART II.)  FOR EACH SUCH INPUT VARIABLE,
+C THIS TABLE LISTS ITS NAME AS USED IN THIS DOCUMENTATION, ITS
+C LOCATION IN THE CALL SEQUENCE, ITS MEANING, AND THE DEFAULT VALUE.
+C THE USE OF ANY OF THESE INPUTS REQUIRES IOPT(1) = 1, AND IN THAT
+C CASE ALL OF THESE INPUTS ARE EXAMINED.  A VALUE OF ZERO FOR ANY
+C OF THESE OPTIONAL INPUTS WILL CAUSE THE DEFAULT VALUE TO BE USED.
+C THUS TO USE A SUBSET OF THE OPTIONAL INPUTS, SIMPLY PRELOAD
+C LOCATIONS 5 TO 10 IN RWORK AND IWORK TO 0.0 AND 0 RESPECTIVELY, AND
+C THEN SET THOSE OF INTEREST TO NONZERO VALUES.
+C
+C NAME   LOCATION      MEANING AND DEFAULT VALUE
+C
+C H0     RWORK(5)  THE STEP SIZE TO BE ATTEMPTED ON THE FIRST STEP.
+C                  THE DEFAULT VALUE IS DETERMINED BY THE KppSolveR.
+C
+C HMAX   RWORK(6)  THE MAXIMUM ABSOLUTE STEP SIZE ALLOWED.
+C                  THE DEFAULT VALUE IS INFINITE.
+C
+C HMIN   RWORK(7)  THE MINIMUM ABSOLUTE STEP SIZE ALLOWED.
+C                  THE DEFAULT VALUE IS 0.  (THIS LOWER BOUND IS NOT
+C                  ENFORCED ON THE FINAL STEP BEFORE REACHING TCRIT
+C                  WHEN ITASK = 4 OR 5.)
+C
+C MAXORD  IWORK(5)  THE MAXIMUM ORDER TO BE ALLOWED.  THE DEFAULT
+C                  VALUE IS 12 IF METH = 1, AND 5 IF METH = 2.
+C                  IF MAXORD EXCEEDS THE DEFAULT VALUE, IT WILL
+C                  BE REDUCED TO THE DEFAULT VALUE.
+C                  IF MAXORD IS CHANGED DURING THE PROBLEM, IT MAY
+C                  CAUSE THE CURRENT ORDER TO BE REDUCED.
+C
+C MXSTEP  IWORK(6)  MAXIMUM NUMBER OF (INTERNALLY DEFINED) STEPS
+C                  ALLOWED DURING ONE CALL TO THE KppSolveR.
+C                  THE DEFAULT VALUE IS 500.
+C
+C MXHNIL  IWORK(7)  MAXIMUM NUMBER OF MESSAGES PRINTED (PER PROBLEM)
+C                  WARNING THAT T + H = T ON A STEP (H = STEP SIZE).
+C                  THIS MUST BE POSITIVE TO RESULT IN A NON-DEFAULT
+C                  VALUE.  THE DEFAULT VALUE IS 10.
+C----------------------------------------------------------------------
+C OPTIONAL OUTPUTS.
+C
+C AS OPTIONAL ADDITIONAL OUTPUT FROM ODESSA, THE VARIABLES LISTED
+C BELOW ARE QUANTITIES RELATED TO THE PERFORMANCE OF ODESSA
+C WHICH ARE AVAILABLE TO THE USER.  THESE ARE COMMUNICATED BY WAY OF
+C THE WORK ARRAYS, BUT ALSO HAVE INTERNAL MNEMONIC NAMES AS SHOWN.
+C EXCEPT WHERE STATED OTHERWISE, ALL OF THESE OUTPUTS ARE DEFINED
+C ON ANY SUCCESSFUL RETURN FROM ODESSA, AND ON ANY RETURN WITH
+C ISTATE = -1, -2, -4, -5, OR -6.  ON AN ILLEGAL INPUT RETURN
+C (ISTATE = -3), THEY WILL BE UNCHANGED FROM THEIR EXISTING VALUES
+C (IF ANY), EXCEPT POSSIBLY FOR TOLSF, LENRW, AND LENIW.
+C ON ANY ERROR RETURN, OUTPUTS RELEVANT TO THE ERROR WILL BE DEFINED,
+C AS NOTED BELOW.
+C
+C NAME   LOCATION      MEANING
+C
+C HU     RWORK(11) THE STEP SIZE IN T LAST USED (SUCCESSFULLY).
+C
+C HCUR   RWORK(12) THE STEP SIZE TO BE ATTEMPTED ON THE NEXT STEP.
+C
+C TCUR   RWORK(13) THE CURRENT VALUE OF THE INDEPENDENT VARIABLE
+C                  WHICH THE KppSolveR HAS ACTUALLY REACHED, I.E. THE
+C                  CURRENT INTERNAL MESH POINT IN T.  ON OUTPUT, TCUR
+C                  WILL ALWAYS BE AT LEAST AS FAR AS THE ARGUMENT
+C                  T, BUT MAY BE FARTHER (IF INTERPOLATION WAS DONE).
+C
+C TOLSF  RWORK(14) A TOLERANCE SCALE FACTOR, GREATER THAN 1.0,
+C                  COMPUTED WHEN A REQUEST FOR TOO MUCH ACCURACY WAS
+C                  DETECTED (ISTATE = -3 IF DETECTED AT THE START OF
+C                  THE PROBLEM, ISTATE = -2 OTHERWISE).  IF ITOL IS
+C                  LEFT UNALTERED BUT RTOL AND ATOL ARE UNIFORMLY
+C                  SCALED UP BY A FACTOR OF TOLSF FOR THE NEXT CALL,
+C                  THEN THE KppSolveR IS DEEMED LIKELY TO SUCCEED.
+C                  (THE USER MAY ALSO IGNORE TOLSF AND ALTER THE
+C                  TOLERANCE PARAMETERS IN ANY OTHER WAY APPROPRIATE.)
+C
+C NST    IWORK(11) THE NUMBER OF STEPS TAKEN FOR THE PROBLEM SO FAR.
+C
+C NFE    IWORK(12) THE NUMBER OF F EVALUATIONS FOR THE PROBLEM SO FAR.
+C
+C NJE    IWORK(13) THE NUMBER OF JACOBIAN EVALUATIONS (AND OF MATRIX
+C                  LU DECOMPOSITIONS IF ISOPT = 0) FOR THE PROBLEM SO
+C                  FAR. IF ISOPT = 1, THE NUMBER OF LU DECOMPOSITIONS
+C                  IS EQUAL TO NJE - NSPE (SEE BELOW).
+C
+C NQU    IWORK(14) THE METHOD ORDER LAST USED (SUCCESSFULLY).
+C
+C NQCUR  IWORK(15) THE ORDER TO BE ATTEMPTED ON THE NEXT STEP.
+C
+C IMXER  IWORK(16) THE INDEX OF THE COMPONENT OF LARGEST MAGNITUDE IN
+C                  THE WEIGHTED LOCAL ERROR VECTOR (E(I,J)/EWT(I,J)),
+C                  ON AN ERROR RETURN WITH ISTATE = -4 OR -5.
+C
+C LENRW  IWORK(17) THE LENGTH OF RWORK ACTUALLY REQUIRED.
+C                  THIS IS DEFINED ON NORMAL RETURNS AND ON AN ILLEGAL
+C                  INPUT RETURN FOR INSUFFICIENT STORAGE.
+C
+C LENIW  IWORK(18) THE LENGTH OF IWORK ACTUALLY REQUIRED.
+C                  THIS IS DEFINED ON NORMAL RETURNS AND ON AN ILLEGAL
+C                  INPUT RETURN FOR INSUFFICIENT STORAGE.
+C
+C NDFE   IWORK(19) THE NUMBER OF DF/DP (VECTOR) EVALUATIONS.
+C
+C NSPE   IWORK(20) THE NUMBER OF CALLS TO SUBROUTINE SPRIME. EACH CALL
+C                  TO SPRIME REQUIRES A JACOBIAN EVALUATION, BUT NOT
+C                  AN LU DECOMPOSITION.
+C
+C THE FOLLOWING ARRAYS ARE SEGMENTS OF THE RWORK AND IWORK ARRAYS
+C WHICH MAY ALSO BE OF INTEREST TO THE USER AS OPTIONAL OUTPUTS.
+C FOR EACH ARRAY, THE TABLE BELOW GIVES ITS INTERNAL NAME, ITS BASE
+C ADDRESS IN RWORK OR IWORK, AND ITS DESCRIPTION.
+C
+C NAME   BASE ADDRESS      DESCRIPTION
+C
+C YH     21 IN RWORK    THE NORDSIECK HISTORY ARRAY, OF SIZE NYH BY
+C                       (NQCUR + 1). FOR J = 0,1,...,NQCUR, COLUMN J+1
+C                       OF YH CONTAINS HCUR**J/FACTORIAL(J) TIMES
+C                       THE J-TH DERIVATIVE OF THE INTERPOLATING
+C                       POLYNOMIAL CURRENTLY REPRESENTING THE SOLUTION,
+C                       EVALUATED AT T = TCUR.
+C
+C ACOR    LENRW-NYH+1   ARRAY OF SIZE NYH USED FOR THE ACCUMULATED
+C         IN RWORK      CORRECTIONS ON EACH STEP, SCALED ON OUTPUT
+C                       TO REPRESENT THE ESTIMATED LOCAL ERROR IN Y
+C                       ON THE LAST STEP.  THIS IS THE VECTOR E IN
+C                       THE DESCRIPTION OF THE ERROR CONTROL.
+C                       IT IS DEFINED ONLY ON A SUCCESSFUL RETURN
+C                       FROM ODESSA.
+C NRS     LENIW-NPAR    ARRAY OF SIZE NPAR+1, USED TO STORE THE
+C         IN IWORK      ACCUMULATED NUMBER OF REPEATED STEPS DUE TO
+C                       THE SENSITIVITY ANALYSIS..
+C                         NRS(1) = TOTAL NUMBER OF REPEATED STEPS,
+C                         NRS(2),... = NUMBER OF REPEATED STEPS DUE TO
+C                                      MODEL PARAMETER 1,...
+C
+C----------------------------------------------------------------------
+C PART II.  OTHER ROUTINES CALLABLE.
+C
+C THE FOLLOWING ARE OPTIONAL CALLS WHICH THE USER MAY MAKE TO
+C GAIN ADDITIONAL CAPABILITIES IN CONJUNCTION WITH ODESSA.
+C (THE ROUTINES XSETUN AND XSETF ARE DESIGNED TO CONFORM TO THE
+C SLATEC ERROR HANDLING PACKAGE.)
+C
+C    FORM OF CALL                  FUNCTION
+C  CALL XSETUN(LUN)          SET THE LOGICAL UNIT NUMBER, LUN, FOR
+C                            OUTPUT OF MESSAGES FROM ODESSA, IF
+C                            THE DEFAULT IS NOT DESIRED.
+C                            THE DEFAULT VALUE OF LUN IS 6.
+C
+C  CALL XSETF(MFLAG)         SET A FLAG TO CONTROL THE PRINTING OF
+C                            MESSAGES BY ODESSA..
+C                            MFLAG = 0 MEANS DO NOT PRINT. (DANGER..
+C                            THIS RISKS LOSING VALUABLE INFORMATION.)
+C                            MFLAG = 1 MEANS PRINT (THE DEFAULT).
+C
+C                            EITHER OF THE ABOVE CALLS MAY BE MADE AT
+C                            ANY TIME AND WILL TAKE EFFECT IMMEDIATELY.
+C
+C  CALL SVCOM (RSAV, ISAV)   STORE IN RSAV AND ISAV THE CONTENTS
+C                            OF THE INTERNAL COMMON BLOCKS USED BY
+C                            ODESSA (SEE PART III BELOW).
+C                            RSAV MUST BE A REAL ARRAY OF LENGTH 222
+C                            OR MORE, AND ISAV MUST BE AN INTEGER
+C                            ARRAY OF LENGTH 54 OR MORE.
+C
+C  CALL RSCOM (RSAV, ISAV)   RESTORE, FROM RSAV AND ISAV, THE CONTENTS
+C                            OF THE INTERNAL COMMON BLOCKS USED BY
+C                            ODESSA.  PRESUMES A PRIOR CALL TO SVCOM
+C                            WITH THE SAME ARGUMENTS.
+C
+C                            SVCOM AND RSCOM ARE USEFUL IF
+C                            INTERRUPTING A RUN AND RESTARTING
+C                            LATER, OR ALTERNATING BETWEEN TWO OR
+C                            MORE PROBLEMS KppSolveD WITH ODESSA.
+C
+C  CALL INTDY(,,,,,)         PROVIDE DERIVATIVES OF Y, OF VARIOUS
+C       (SEE BELOW)          ORDERS, AT A SPECIFIED POINT T, IF
+C                            DESIRED.  IT MAY BE CALLED ONLY AFTER
+C                            A SUCCESSFUL RETURN FROM ODESSA.
+C
+C THE DETAILED INSTRUCTIONS FOR USING INTDY ARE AS FOLLOWS.
+C THE FORM OF THE CALL IS..
+C
+C  CALL INTDY (T, K, RWORK(21), NYH, DKY, IFLAG)
+C
+C THE INPUT PARAMETERS ARE..
+C
+C T        = VALUE OF INDEPENDENT VARIABLE WHERE ANSWERS ARE DESIRED
+C            (NORMALLY THE SAME AS THE T LAST RETURNED BY ODESSA).
+C            FOR VALID RESULTS, T MUST LIE BETWEEN TCUR - HU AND TCUR.
+C            (SEE OPTIONAL OUTPUTS FOR TCUR AND HU.)
+C K        = INTEGER ORDER OF THE DERIVATIVE DESIRED.  K MUST SATISFY
+C            0 .LE. K .LE. NQCUR, WHERE NQCUR IS THE CURRENT ORDER
+C            (SEE OPTIONAL OUTPUTS).  THE CAPABILITY CORRESPONDING
+C            TO K = 0, I.E. COMPUTING Y(T), IS ALREADY PROVIDED
+C            BY ODESSA DIRECTLY.  SINCE NQCUR .GE. 1, THE FIRST
+C            DERIVATIVE DY/DT IS ALWAYS AVAILABLE WITH INTDY.
+C RWORK(21) = THE BASE ADDRESS OF THE HISTORY ARRAY YH.
+C NYH      = COLUMN LENGTH OF YH, EQUAL TO THE TOTAL NUMBER OF
+C            DEPENDENT VARIABLES. IF ISOPT = 0, NYH = N. IF ISOPT = 1,
+C            NYH = N * (NPAR + 1).
+C
+C THE OUTPUT PARAMETERS ARE..
+C
+C DKY      = A REAL ARRAY OF LENGTH NYH CONTAINING THE COMPUTED VALUE
+C            OF THE K-TH DERIVATIVE OF Y(T).
+C IFLAG    = INTEGER FLAG, RETURNED AS 0 IF K AND T WERE LEGAL,
+C            -1 IF K WAS ILLEGAL, AND -2 IF T WAS ILLEGAL.
+C            ON AN ERROR RETURN, A MESSAGE IS ALSO WRITTEN.
+C----------------------------------------------------------------------
+C PART III.  COMMON BLOCKS.
+C
+C IF ODESSA IS TO BE USED IN AN OVERLAY SITUATION, THE USER
+C MUST DECLARE, IN THE PRIMARY OVERLAY, THE VARIABLES IN..
+C  (1) THE CALL SEQUENCE TO ODESSA,
+C  (2) THE THREE INTERNAL COMMON BLOCKS
+C        /ODE001/  OF LENGTH  258  (219 DOUBLE PRECISION WORDS
+C                        FOLLOWED BY 39 INTEGER WORDS),
+C        /ODE002/  OF LENGTH 14 (3 DOUBLE PRECISION WORDS FOLLOWED
+C                        BY 11 INTEGER WORDS),
+C        /EH0001/  OF LENGTH  2 (INTEGER WORDS).
+C
+C IF ODESSA IS USED ON A SYSTEM IN WHICH THE CONTENTS OF INTERNAL
+C COMMON BLOCKS ARE NOT PRESERVED BETWEEN CALLS, THE USER SHOULD
+C DECLARE THE ABOVE THREE COMMON BLOCKS IN HIS MAIN PROGRAM TO INSURE
+C THAT THEIR CONTENTS ARE PRESERVED.
+C
+C IF THE SOLUTION OF A GIVEN PROBLEM BY ODESSA IS TO BE INTERRUPTED
+C AND THEN LATER CONTINUED, SUCH AS WHEN RESTARTING AN INTERRUPTED RUN
+C OR ALTERNATING BETWEEN TWO OR MORE PROBLEMS, THE USER SHOULD SAVE,
+C FOLLOWING THE RETURN FROM THE LAST ODESSA CALL PRIOR TO THE
+C INTERRUPTION, THE CONTENTS OF THE CALL SEQUENCE VARIABLES AND THE
+C INTERNAL COMMON BLOCKS, AND LATER RESTORE THESE VALUES BEFORE THE
+C NEXT ODESSA CALL FOR THAT PROBLEM.  TO SAVE AND RESTORE THE COMMON
+C BLOCKS, USE SUBROUTINES SVCOM AND RSCOM (SEE PART II ABOVE).
+C
+C----------------------------------------------------------------------
+C PART IV.  OPTIONALLY REPLACEABLE KppSolveR ROUTINES.
+C
+C BELOW ARE DESCRIPTIONS OF TWO ROUTINES IN THE ODESSA PACKAGE WHICH
+C RELATE TO THE MEASUREMENT OF ERRORS.  EITHER ROUTINE CAN BE
+C REPLACED BY A USER-SUPPLIED VERSION, IF DESIRED. HOWEVER, SINCE SUCH
+C A REPLACEMENT MAY HAVE A MAJOR IMPACT ON PERFORMANCE, IT SHOULD BE
+C DONE ONLY WHEN ABSOLUTELY NECESSARY, AND ONLY WITH GREAT CAUTION.
+C (NOTE.. THE MEANS BY WHICH THE PACKAGE VERSION OF A ROUTINE IS
+C SUPERSEDED BY THE USER-S VERSION MAY BE SYSTEM-DEPENDENT.)
+C
+C (A) EWSET.
+C THE FOLLOWING SUBROUTINE IS CALLED JUST BEFORE EACH INTERNAL
+C INTEGRATION STEP, AND SETS THE ARRAY OF ERROR WEIGHTS, EWT, AS
+C DESCRIBED UNDER ITOL/RTOL/ATOL ABOVE..
+C    SUBROUTINE EWSET (NYH, ITOL, RTOL, ATOL, YCUR, EWT)
+C WHERE NEQ, ITOL, RTOL, AND ATOL ARE AS IN THE ODESSA CALL SEQUENCE,
+C YCUR CONTAINS THE CURRENT DEPENDENT VARIABLE VECTOR, AND
+C EWT IS THE ARRAY OF WEIGHTS SET BY EWSET.
+C
+C IF THE USER SUPPLIES THIS SUBROUTINE, IT MUST RETURN IN EWT(I)
+C (I = 1,...,NYH) A POSITIVE QUANTITY SUITABLE FOR COMPARING ERRORS
+C IN Y(I) TO.  THE EWT ARRAY RETURNED BY EWSET IS PASSED TO THE
+C VNORM ROUTINE (SEE BELOW), AND ALSO USED BY ODESSA IN THE COMPUTATION
+C OF THE OPTIONAL OUTPUT IMXER, THE DIAGONAL JACOBIAN APPROXIMATION,
+C AND THE INCREMENTS FOR DIFFERENCE QUOTIENT JACOBIANS.
+C
+C IN THE USER-SUPPLIED VERSION OF EWSET, IT MAY BE DESIRABLE TO USE
+C THE CURRENT VALUES OF DERIVATIVES OF Y.  DERIVATIVES UP TO ORDER NQ
+C ARE AVAILABLE FROM THE HISTORY ARRAY YH, DESCRIBED ABOVE UNDER
+C OPTIONAL OUTPUTS.  IN EWSET, YH IS IDENTICAL TO THE YCUR ARRAY,
+C EXTENDED TO NQ + 1 COLUMNS WITH A COLUMN LENGTH OF NYH AND SCALE
+C FACTORS OF H**J/FACTORIAL(J).  ON THE FIRST CALL FOR THE PROBLEM,
+C GIVEN BY NST = 0, NQ IS 1 AND H IS TEMPORARILY SET TO 1.0.
+C THE QUANTITIES NQ, NYH, H, AND NST CAN BE OBTAINED BY INCLUDING
+C IN EWSET THE STATEMENTS..
+C    DOUBLE PRECISION H, RLS
+C    COMMON /ODE001/ RLS(219),ILS(39)
+C    NQ = ILS(35)
+C    NYH = ILS(14)
+C    NST = ILS(36)
+C    H = RLS(213)
+C THUS, FOR EXAMPLE, THE CURRENT VALUE OF DY/DT CAN BE OBTAINED AS
+C YCUR(NYH+I)/H  (I=1,...,N)  (AND THE DIVISION BY H IS
+C UNNECESSARY WHEN NST = 0).
+C
+C (B) VNORM.
+C THE FOLLOWING IS A REAL FUNCTION ROUTINE WHICH COMPUTES THE WEIGHTED
+C ROOT-MEAN-SQUARE NORM OF A VECTOR V..
+C    D = VNORM (LV, V, W)
+C WHERE..
+C  LV = THE LENGTH OF THE VECTOR,
+C  V = REAL ARRAY OF LENGTH N CONTAINING THE VECTOR,
+C  W = REAL ARRAY OF LENGTH N CONTAINING WEIGHTS,
+C  D = SQRT( (1/N) * SUM(V(I)*W(I))**2 ).
+C VNORM IS CALLED WITH LV = N AND WITH W(I) = 1.0/EWT(I), WHERE
+C EWT IS AS SET BY SUBROUTINE EWSET.
+C
+C IF THE USER SUPPLIES THIS FUNCTION, IT SHOULD RETURN A NON-NEGATIVE
+C VALUE OF VNORM SUITABLE FOR USE IN THE ERROR CONTROL IN ODESSA.
+C NONE OF THE ARGUMENTS SHOULD BE ALTERED BY VNORM.
+C FOR EXAMPLE, A USER-SUPPLIED VNORM ROUTINE MIGHT..
+C  -SUBSTITUTE A MAX-NORM OF (V(I)*W(I)) FOR THE RMS-NORM, OR
+C  -IGNORE SOME COMPONENTS OF V IN THE NORM, WITH THE EFFECT OF
+C   SUPPRESSING THE ERROR CONTROL ON THOSE COMPONENTS OF Y.
+C----------------------------------------------------------------------
+C OTHER ROUTINES IN THE ODESSA PACKAGE.
+C
+C IN ADDITION TO SUBROUTINE ODESSA, THE ODESSA PACKAGE INCLUDES THE
+C FOLLOWING SUBROUTINES AND FUNCTION ROUTINES..
+C  INTDY   COMPUTES AN INTERPOLATED VALUE OF THE Y VECTOR AT T = TOUT.
+C  STODE   IS THE CORE INTEGRATOR, WHICH DOES ONE STEP OF THE
+C          INTEGRATION AND THE ASSOCIATED ERROR CONTROL.
+C  STESA   MANAGES THE SOLUTION OF THE SENSITIVITY FUNCTIONS.
+C  CFODE   SETS ALL METHOD COEFFICIENTS AND TEST CONSTANTS.
+C  PREPJ   COMPUTES AND PREPROCESSES THE JACOBIAN MATRIX J = DF/DY
+C          AND THE NEWTON ITERATION MATRIX P = I - H*L0*J.
+C          IT IS ALSO CALLED BY SPRIME (WITH JOPT = 1) TO JUST
+C          COMPUTE THE JACOBIAN MATRIX.
+C  PREPDF  COMPUTES THE INHOMOGENEITY MATRIX DF/DP.
+C  SPRIME  DEFINES THE SYSTEM OF SENSITIVITY EQUATIONS.
+C  SOLSY   MANAGES SOLUTION OF LINEAR SYSTEM IN CHORD ITERATION.
+C  EWSET   SETS THE ERROR WEIGHT VECTOR EWT BEFORE EACH STEP.
+C  VNORM   COMPUTES THE WEIGHTED R.M.S. NORM OF A VECTOR.
+C  SVCOM AND RSCOM  ARE USER-CALLABLE ROUTINES TO SAVE AND RESTORE,
+C          RESPECTIVELY, THE CONTENTS OF THE INTERNAL COMMON BLOCKS.
+C  DGEFA AND DGESL  ARE ROUTINES FROM LINPACK FOR SOLVING FULL
+C          SYSTEMS OF LINEAR ALGEBRAIC EQUATIONS.
+C  DGBFA AND DGBSL  ARE ROUTINES FROM LINPACK FOR SOLVING BANDED
+C          LINEAR SYSTEMS.
+C  DAXPY, DSCAL, IDAMAX, AND DDOT  ARE BASIC LINEAR ALGEBRA MODULES
+C          (BLAS) USED BY THE ABOVE LINPACK ROUTINES.
+C  D1MACH  COMPUTES THE UNIT ROUNDOFF IN A MACHINE-INDEPENDENT MANNER.
+C  XERR, XSETUN, AND XSETF  HANDLE THE PRINTING OF ALL ERROR
+C          MESSAGES AND WARNINGS.
+C NOTE..  VNORM, IDAMAX, DDOT, AND D1MACH ARE FUNCTION ROUTINES.
+C ALL THE OTHERS ARE SUBROUTINES.
+C
+C THE FORTRAN GENERIC INTRINSIC FUNCTIONS USED BY ODESSA ARE..
+C ABS, MAX, MIN, REAL, MOD, SIGN, SQRT, AND WRITE
+C
+C A BLOCK DATA SUBPROGRAM IS ALSO INCLUDED WITH THE PACKAGE,
+C FOR LOADING SOME OF THE VARIABLES IN INTERNAL COMMON.
+C
+C----------------------------------------------------------------------
+C PART V.  GENERAL REMARKS
+C
+C THIS SECTION HIGHLIGHTS THE BASIC DIFFERENCES BETWEEN THE ORIGINAL
+C LSODE PACKAGE AND THE ODESSA MODIFICATION. THIS IS PROVIDED AS A
+C SERVICE TO EXPERIENCED LSODE USERS TO EXPEDITE FAMILIARIZATION WITH
+C ODESSA.
+C
+C (A). ORIGINAL SUBROUTINES AND FUNCTIONS.
+C
+C      OF THE ORIGINAL 22 SUBROUTINES AND FUNCTIONS USED IN THE LSODE
+C      PACKAGE, ALL ARE USED BY ODESSA, WITH THE FOLLOWING HAVING BEEN
+C      MODIFIED..
+C
+C      LSODE  THE ORIGINAL DRIVER SUBROUTINE FOR THE LSODE PACKAGE IS
+C             EXTENSIVELY MODIFIED AND RENAMED ODESSA, WHICH NOW
+C             CONTAINS A CALL TO SPRIME TO ESTABLISH INITIAL CONDITIONS
+C             FOR THE SENSITIVITY CALCULATIONS.
+C
+C      STODE  THE ONE STEP INTEGRATOR IS SLIGHTLY MODIFIED AND RETAINS
+C             ITS ORIGINAL NAME. IT NOW CONTAINS THE CALL TO STESA,
+C             AND ALSO CALLS SPRIME IF KFLAG .LE. -3.
+C
+C      PREPJ  ALSO NAMED PREPJ IN ODESSA IS SLIGHTLY MODIFIED TO ALLOW
+C             FOR THE CALCULATION OF JACOBIAN WITH NO PREPROCESSING
+C             (JOPT = 1).
+C
+C (B). NEW SUBROUTINES.
+C
+C      IN ADDITION TO THE CHANGES NOTED ABOVE, THREE NEW SUBROUTINES
+C      HAVE BEEN INTRODUCED (SEE STESA, SPRIME, AND PREPDF AS DESCRIBED
+C      IN PART IV. ABOVE).
+C
+C (C). COMMON BLOCKS.
+C
+C      /LS0001/  RETAINS THE SAME LENGTH AND IS RENAMED /ODE001/;
+C                HOWEVER THE REAL ARRAY ROWNS(209) IS SHORTENED TO A
+C                LENGTH OF (173) REAL WORDS, ALLOWING THE REMOVAL OF
+C                TESCO(3,12) WHICH IS NOW PASSED FROM STODE TO STESA.
+C                IN ADDITION, THE INTEGER ARRAY IOWNS(6) IS SHORTENED
+C                TO A LENGTH OF (4) INTEGER WORDS, ALLOWING THE REMOVAL
+C                OF IALTH AND LMAX WHICH ARE NOW PASSED FROM STODE TO
+C                STESA.
+C
+C      /ODE002/  ADDED COMMON BLOCK FOR VARIABLES IMPORTANT TO
+C                SENSITIVITY ANALYSIS (SEE PART III. ABOVE). A BLOCK
+C                DATA PROGRAM IS NOT REQUIRED FOR THIS COMMON BLOCK.
+C
+C      SVCOM,RSCOM  THESE TWO SUBROUTINES ARE MODIFIED TO HANDLE
+C                   COMMON BLOCK /ODE002/ AS WELL.
+C
+C (D). OPTIONAL INPUTS.
+C
+C      THE FULL SET OF OPTIONAL INPUTS AVAILABLE IN LSODE IS ALSO
+C      AVAILABLE IN ODESSA, WITH THE EXCEPTION THAT THE NUMBER OF ODE'S
+C      IN THE MODEL (NEQ(1)), MAY NOT BE CHANGED DURING THE PROBLEM.
+C      IN ODESSA, NYH NOW REFERS TO THE TOTAL NUMBER OF FIRST-ORDER
+C      ODE'S (MODEL AND SENSITIVITY EQUATIONS) WHICH IS EQUAL TO
+C      NEQ(1) IF ISOPT = 0, OR NEQ(1)*(NEQ(2)+1) IF ISOPT = 1.
+C      NEQ(1), NEQ(2), AND NYH ARE NOT ALLOWED TO CHANGE DURING
+C      THE COURSE OF AN INTEGRATION.
+C
+C (E). OPTIONAL OUTPUTS.
+C
+C      THE FULL SET OF OPTIONAL OUTPUTS AVAILABLE IN LSODE IS ALSO
+C      AVAILABLE IN ODESSA. IN ADDITION, IWORK(19) AND IWORK(20) ARE
+C      LOADED WITH NDFE AND NSPE, RESPECTIVELY, UPON OUTPUT. THE TOTAL
+C      NUMBER OF LU DECOMPOSITIONS OF THE PROCESSED JACOBIAN IS EQUAL
+C      TO NJE - NSPE.
+C-----------------------------------------------------------------------
+      SUBROUTINE ODESSA (F, DF, NEQ, Y, PAR, T, TOUT, ITOL, RTOL, ATOL,
+     1   ITASK, ISTATE, IOPT, RWORK, LRW, IWORK, LIW, JAC, MF)
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+      LOGICAL IHIT
+      EXTERNAL F, DF, JAC, PREPJ, SOLSY, PREPDF
+      DIMENSION NEQ(*), Y(*), PAR(*), RTOL(*), ATOL(*), IOPT(*),
+     1   RWORK(LRW), IWORK(LIW), MORD(2)
+C-----------------------------------------------------------------------
+C THIS IS THE SEPTEMBER 1, 1986 VERSION OF ODESSA..
+C AN ORDINARY DIFFERENTIAL EQUATION KppSolveR WITH EXPLICIT SIMULTANEOUS
+C SENSITIVITY ANALYSIS.
+C
+C THIS PACKAGE IS A MODIFICATION OF THE AUGUST 13, 1981 VERSION OF
+C LSODE.. LIVERMORE KppSolveR FOR ORDINARY DIFFERENTIAL EQUATIONS.
+C THIS VERSION IS IN DOUBLE PRECISION.
+C
+C ODESSA KppSolveS FOR THE FIRST-ORDER SENSITIVITY COEFFICIENTS..
+C    DY(I)/DP, FOR A SINGLE PARAMETER, OR,
+C    DY(I)/DP(J), FOR MULTIPLE PARAMETERS,
+C ASSOCIATED WITH A SYSTEM OF ORDINARY DIFFERENTIAL EQUATIONS..
+C    DY(T)/DT = F(Y,T;P).
+C-----------------------------------------------------------------------
+C REFERENCES...
+C
+C  1. JORGE R. LEIS AND MARK A. KRAMER, THE SIMULTANEOUS SOLUTION AND
+C     EXPLICIT SENSITIVITY ANALYSIS OF SYSTEMS DESCRIBED BY ORDINARY
+C     DIFFERENTIAL EQUATIONS, SUBMITTED TO ACM TRANS. MATH. SOFTWARE,
+C     (1985).
+C
+C  2. JORGE R. LEIS AND MARK A. KRAMER, ODESSA - AN ORDINARY
+C     DIFFERENTIAL EQUATION KppSolveR WITH EXPLICIT SIMULTANEOUS
+C     SENSITIVITY ANALYSIS, SUBMITTED TO ACM TRANS. MATH. SOFTWARE.
+C     (1985).
+C
+C  3. ALAN C. HINDMARSH,  LSODE AND LSODI,  TWO NEW INITIAL VALUE
+C     ORDINARY DIFFERENTIAL EQUATION KppSolveRS, ACM-SIGNUM NEWSLETTER,
+C     VOL. 15, NO. 4 (1980), PP. 10-11.
+C-----------------------------------------------------------------------
+C THE FOLLOWING INTERNAL COMMON BLOCKS CONTAIN
+C (A) VARIABLES WHICH ARE LOCAL TO ANY SUBROUTINE BUT WHOSE VALUES MUST
+C    BE PRESERVED BETWEEN CALLS TO THE ROUTINE (OWN VARIABLES), AND
+C (B) VARIABLES WHICH ARE COMMUNICATED BETWEEN SUBROUTINES.
+C THE STRUCTURE OF THE BLOCKS ARE AS FOLLOWS..  ALL REAL VARIABLES ARE
+C LISTED FIRST, FOLLOWED BY ALL INTEGERS.  WITHIN EACH TYPE, THE
+C VARIABLES ARE GROUPED WITH THOSE LOCAL TO SUBROUTINE ODESSA FIRST,
+C THEN THOSE LOCAL TO SUBROUTINE STODE, AND FINALLY THOSE USED
+C FOR COMMUNICATION.  THE BLOCKS ARE DECLARED IN SUBROUTINES ODESSA
+C INTDY, STODE, STESA, PREPJ, PREPDF, AND SOLSY.  GROUPS OF VARIABLES
+C ARE REPLACED BY DUMMY ARRAYS IN THE COMMON DECLARATIONS IN ROUTINES
+C WHERE THOSE VARIABLES ARE NOT USED.
+C-----------------------------------------------------------------------
+      COMMON /ODE001/ TRET, ROWNS(173),
+     1   TESCO(3,12), CCMAX, EL0, H, HMIN, HMXI, HU, RC, TN, UROUND,
+     2   ILLIN, INIT, LYH, LEWT, LACOR, LSAVF, LWM, LIWM,
+     3   MXSTEP, MXHNIL, NHNIL, NTREP, NSLAST, NYH, IOWNS(4),
+     4   IALTH, LMAX, ICF, IERPJ, IERSL, JCUR, JSTART, KFLAG, L, METH,
+     5   MITER, MAXORD, MAXCOR, MSBP, MXNCF, N, NQ, NST, NFE, NJE, NQU
+      COMMON /ODE002/ DUPS, DSMS, DDNS,
+     1   NPAR, LDFDP, LNRS,
+     2   ISOPT, NSV, NDFE, NSPE, IDF, IERSP, JOPT, KFLAGS
+      PARAMETER (ZERO=0.0D0,ONE=1.0D0,TWO=2.0D0,FOUR=4.0D0)
+      DATA  MORD(1),MORD(2)/12,5/, MXSTP0/500/, MXHNL0/10/
+C-----------------------------------------------------------------------
+C BLOCK A.
+C THIS CODE BLOCK IS EXECUTED ON EVERY CALL.
+C IT TESTS ISTATE AND ITASK FOR LEGALITY AND BRANCHES APPROPIATELY.
+C IF ISTATE .GT. 1 BUT THE FLAG INIT SHOWS THAT INITIALIZATION HAS
+C NOT YET BEEN DONE, AN ERROR RETURN OCCURS.
+C IF ISTATE = 1 AND TOUT = T, JUMP TO BLOCK G AND RETURN IMMEDIATELY.
+C-----------------------------------------------------------------------
+      IF (ISTATE .LT. 1 .OR. ISTATE .GT. 3) GO TO 601
+      IF (ITASK .LT. 1 .OR. ITASK .GT. 5) GO TO 602
+      IF (ISTATE .EQ. 1) GO TO 10
+      IF (INIT .EQ. 0) GO TO 603
+      IF (ISTATE .EQ. 2) GO TO 200
+      GO TO 20
+ 10   INIT = 0
+      IF (TOUT .EQ. T) GO TO 430
+ 20   NTREP = 0
+C-----------------------------------------------------------------------
+C BLOCK B.
+C THE NEXT CODE BLOCK IS EXECUTED FOR THE INITIAL CALL (ISTATE = 1),
+C OR FOR A CONTINUATION CALL WITH PARAMETER CHANGES (ISTATE = 3).
+C IT CONTAINS CHECKING OF ALL INPUTS AND VARIOUS INITIALIZATIONS.
+C
+C FIRST CHECK LEGALITY OF THE NON-OPTIONAL INPUTS NEQ, ITOL, IOPT,
+C MF, ML, AND MU.
+C-----------------------------------------------------------------------
+      IF (NEQ(1) .LE. 0) GO TO 604
+      IF (ISTATE .EQ. 1) GO TO 25
+      IF (NEQ(1) .NE. N) GO TO 605
+ 25   N = NEQ(1)
+      IF (ITOL .LT. 1 .OR. ITOL .GT. 4) GO TO 606
+      DO 26 I = 1,3
+ 26     IF (IOPT(I) .LT. 0 .OR. IOPT(I) .GT. 1) GO TO 607
+      ISOPT = IOPT(2)
+      IDF = IOPT(3)
+      NYH = N
+      NSV = 1
+      METH = MF/10
+      MITER = MF - 10*METH
+      IF (METH .LT. 1 .OR. METH .GT. 2) GO TO 608
+      IF (MITER .LT. 0 .OR. MITER .GT. 5) GO TO 608
+      IF (MITER .LE. 3) GO TO 30
+      ML = IWORK(1)
+      MU = IWORK(2)
+      IF (ML .LT. 0 .OR. ML .GE. N) GO TO 609
+      IF (MU .LT. 0 .OR. MU .GE. N) GO TO 610
+ 30   IF (ISOPT .EQ. 0) GO TO 32
+C CHECK LEGALITY OF THE NON-OPTIONAL INPUTS ISOPT, NPAR.
+C COMPUTE NUMBER OF SOLUTION VECTORS AND TOTAL NUMBER OF EQUATIONS.
+      IF (NEQ(2) .LE. 0) GO TO 628
+      IF (ISTATE .EQ. 1) GO TO 31
+      IF (NEQ(2) .NE. NPAR) GO TO 629
+ 31   NPAR = NEQ(2)
+      NSV = NPAR + 1
+      NYH = NSV * N
+      IF (MITER .EQ. 0 .OR. MITER .EQ. 3) GO TO 630
+C NEXT PROCESS AND CHECK THE OPTIONAL INPUTS. --------------------------
+ 32   IF (IOPT(1) .EQ. 1) GO TO 40
+      MAXORD = MORD(METH)
+      MXSTEP = MXSTP0
+      MXHNIL = MXHNL0
+      IF (ISTATE .EQ. 1) H0 = ZERO
+      HMXI = ZERO
+      HMIN = ZERO
+      GO TO 60
+ 40   MAXORD = IWORK(5)
+      IF (MAXORD .LT. 0) GO TO 611
+      IF (MAXORD .EQ. 0) MAXORD = 100
+      MAXORD = MIN(MAXORD,MORD(METH))
+      MXSTEP = IWORK(6)
+      IF (MXSTEP .LT. 0) GO TO 612
+      IF (MXSTEP .EQ. 0) MXSTEP = MXSTP0
+      MXHNIL = IWORK(7)
+      IF (MXHNIL .LT. 0) GO TO 613
+      IF (MXHNIL .EQ. 0) MXHNIL = MXHNL0
+      IF (ISTATE .NE. 1) GO TO 50
+      H0 = RWORK(5)
+      IF ((TOUT - T)*H0 .LT. ZERO) GO TO 614
+ 50   HMAX = RWORK(6)
+      IF (HMAX .LT. ZERO) GO TO 615
+      HMXI = ZERO
+      IF (HMAX .GT. ZERO) HMXI = ONE/HMAX
+      HMIN = RWORK(7)
+      IF (HMIN .LT. ZERO) GO TO 616
+C-----------------------------------------------------------------------
+C SET WORK ARRAY POINTERS AND CHECK LENGTHS LRW AND LIW.
+C POINTERS TO SEGMENTS OF RWORK AND IWORK ARE NAMED BY PREFIXING L TO
+C THE NAME OF THE SEGMENT.  E.G., THE SEGMENT YH STARTS AT RWORK(LYH).
+C SEGMENTS OF RWORK (IN ORDER) ARE DENOTED  YH, WM, EWT, SAVF, ACOR.
+C WORK SPACE FOR DFDP IS CONTAINED IN ACOR.
+C-----------------------------------------------------------------------
+ 60   LYH = 21
+      LWM = LYH + (MAXORD + 1)*NYH
+      IF (MITER .EQ. 0) LENWM = 0
+      IF (MITER .EQ. 1 .OR. MITER .EQ. 2) LENWM = N*N + 2
+      IF (MITER .EQ. 3) LENWM = N + 2
+      IF (MITER .GE. 4) LENWM = (2*ML + MU + 1)*N + 2
+      LEWT = LWM + LENWM
+      LSAVF = LEWT + NYH
+      LACOR = LSAVF + N
+      LDFDP = LACOR + N
+      LENRW = LACOR + NYH - 1
+      IWORK(17) = LENRW
+      LIWM = 1
+      LENIW = 20 + N
+      IF (MITER .EQ. 0 .OR. MITER .EQ. 3) LENIW = 20
+      LNRS = LENIW + LIWM
+      IF (ISOPT .EQ. 1) LENIW = LNRS + NPAR
+      IWORK(18) = LENIW
+      IF (LENRW .GT. LRW) GO TO 617
+      IF (LENIW .GT. LIW) GO TO 618
+C CHECK RTOL AND ATOL FOR LEGALITY. ------------------------------------
+      RTOLI = RTOL(1)
+      ATOLI = ATOL(1)
+      DO 70 I = 1,NYH
+        IF (ITOL .GE. 3) RTOLI = RTOL(I)
+        IF (ITOL .EQ. 2 .OR. ITOL .EQ. 4) ATOLI = ATOL(I)
+        IF (RTOLI .LT. ZERO) GO TO 619
+        IF (ATOLI .LT. ZERO) GO TO 620
+ 70     CONTINUE
+      IF (ISTATE .EQ. 1) GO TO 100
+C IF ISTATE = 3, SET FLAG TO SIGNAL PARAMETER CHANGES TO STODE. --------
+      JSTART = -1
+      IF (NQ .LE. MAXORD) GO TO 90
+C MAXORD WAS REDUCED BELOW NQ.  COPY YH(*,MAXORD+2) INTO SAVF. ---------
+      DO 80 I = 1,N
+ 80     RWORK(I+LSAVF-1) = RWORK(I+LWM-1)
+C RELOAD WM(1) = RWORK(LWM), SINCE LWM MAY HAVE CHANGED. ---------------
+ 90   IF (MITER .GT. 0) RWORK(LWM) = SQRT(UROUND)
+      GO TO 200
+C-----------------------------------------------------------------------
+C BLOCK C.
+C THE NEXT BLOCK IS FOR THE INITIAL CALL ONLY (ISTATE = 1).
+C IT CONTAINS ALL REMAINING INITIALIZATIONS, THE INITIAL CALL TO F,
+C THE INITIAL CALL TO SPRIME IF ISOPT = 1,
+C AND THE CALCULATION OF THE INITIAL STEP SIZE.
+C THE ERROR WEIGHTS IN EWT ARE INVERTED AFTER BEING LOADED.
+C-----------------------------------------------------------------------
+ 100  UROUND = D1MACH(4)
+      TN = T
+      IF (ITASK .NE. 4 .AND. ITASK .NE. 5) GO TO 105
+      TCRIT = RWORK(1)
+      IF ((TCRIT - TOUT)*(TOUT - T) .LT. ZERO) GO TO 625
+      IF (H0 .NE. ZERO .AND. (T + H0 - TCRIT)*H0 .GT. ZERO)
+     1   H0 = TCRIT - T
+ 105  JSTART = 0
+      IF (MITER .GT. 0) RWORK(LWM) = SQRT(UROUND)
+      NHNIL = 0
+      NST = 0
+      NJE = 0
+      NSLAST = 0
+      HU = ZERO
+      NQU = 0
+      CCMAX = 0.3D0
+      MAXCOR = 3
+      IF (ISOPT .EQ. 1) MAXCOR = 4
+      MSBP = 20
+      MXNCF = 10
+C INITIAL CALL TO F.  (LF0 POINTS TO YH(1,2) AND LOADS IN VALUES).
+      LF0 = LYH + NYH
+      CALL F (NEQ, T, Y, PAR, RWORK(LF0))
+      NFE = 1
+      DUPS = ZERO
+      DSMS = ZERO
+      DDNS = ZERO
+      NDFE = 0
+      NSPE = 0
+      IF (ISOPT .EQ. 0) GO TO 114
+C INITIALIZE COUNTS FOR REPEATED STEPS DUE TO SENSITIVITY ANALYSIS.
+      DO 110 J = 1,NSV
+ 110    IWORK(J + LNRS - 1) = 0
+C LOAD THE INITIAL VALUE VECTOR IN YH. ---------------------------------
+ 114  DO 115 I = 1,NYH
+ 115    RWORK(I+LYH-1) = Y(I)
+C LOAD AND INVERT THE EWT ARRAY.  (H IS TEMPORARILY SET TO ONE.) -------
+      NQ = 1
+      H = ONE
+      CALL EWSET (NYH, ITOL, RTOL, ATOL, RWORK(LYH), RWORK(LEWT))
+      DO 120 I = 1,NYH
+        IF (RWORK(I+LEWT-1) .LE. ZERO) GO TO 621
+ 120    RWORK(I+LEWT-1) = ONE/RWORK(I+LEWT-1)
+      IF (ISOPT .EQ. 0) GO TO 125
+C CALL SPRIME TO LOAD FIRST-ORDER SENSITIVITY DERIVATIVES INTO
+C REMAINING YH(*,2) POSITIONS.
+      CALL SPRIME (NEQ, Y, RWORK(LYH), NYH, N, NSV, RWORK(LWM),
+     1   IWORK(LIWM), RWORK(LEWT), RWORK(LF0), RWORK(LACOR),
+     2   RWORK(LDFDP), PAR, F, JAC, DF, PREPJ, PREPDF)
+      IF (IERSP .EQ. -1) GO TO 631
+      IF (IERSP .EQ. -2) GO TO 632
+C-----------------------------------------------------------------------
+C THE CODING BELOW COMPUTES THE STEP SIZE, H0, TO BE ATTEMPTED ON THE
+C FIRST STEP, UNLESS THE USER HAS SUPPLIED A VALUE FOR THIS.
+C FIRST CHECK THAT TOUT - T DIFFERS SIGNIFICANTLY FROM ZERO.
+C A SCALAR TOLERANCE QUANTITY TOL IS COMPUTED, AS MAX(RTOL(I))
+C IF THIS IS POSITIVE, OR MAX(ATOL(I)/ABS(Y(I))) OTHERWISE, ADJUSTED
+C SO AS TO BE BETWEEN 100*UROUND AND 1.0E-3. ONLY THE ORIGINAL
+C SOLUTION VECTOR IS CONSIDERED IN THIS CALCULATION (ISOPT = 0 OR 1).
+C THEN THE COMPUTED VALUE H0 IS GIVEN BY..
+C                                     NEQ
+C  H0**2 = TOL / ( W0**-2 + (1/NEQ) * SUM ( F(I)/YWT(I) )**2  )
+C                                      1
+C WHERE  W0     = MAX ( ABS(T), ABS(TOUT) ),
+C        F(I)   = I-TH COMPONENT OF INITIAL VALUE OF F,
+C        YWT(I) = EWT(I)/TOL  (A WEIGHT FOR Y(I)).
+C THE SIGN OF H0 IS INFERRED FROM THE INITIAL VALUES OF TOUT AND T.
+C-----------------------------------------------------------------------
+ 125  IF (H0 .NE. ZERO) GO TO 180
+      TDIST = ABS(TOUT - T)
+      W0 = MAX(ABS(T),ABS(TOUT))
+      IF (TDIST .LT. TWO*UROUND*W0) GO TO 622
+      TOL = RTOL(1)
+      IF (ITOL .LE. 2) GO TO 140
+      DO 130 I = 1,N
+ 130    TOL = MAX(TOL,RTOL(I))
+ 140   IF (TOL .GT. ZERO) GO TO 160
+      ATOLI = ATOL(1)
+      DO 150 I = 1,N
+        IF (ITOL .EQ. 2 .OR. ITOL .EQ. 4) ATOLI = ATOL(I)
+        AYI = ABS(Y(I))
+        IF (AYI .NE. ZERO) TOL = MAX(TOL,ATOLI/AYI)
+ 150    CONTINUE
+ 160   TOL = MAX(TOL,100.0D0*UROUND)
+      TOL = MIN(TOL,0.001D0)
+      SUM = VNORM (N, RWORK(LF0), RWORK(LEWT))
+      SUM = ONE/(TOL*W0*W0) + TOL*SUM**2
+      H0 = ONE/SQRT(SUM)
+      H0 = MIN(H0,TDIST)
+      H0 = SIGN(H0,TOUT-T)
+C ADJUST H0 IF NECESSARY TO MEET HMAX BOUND. ---------------------------
+ 180   RH = ABS(H0)*HMXI
+      IF (RH .GT. ONE) H0 = H0/RH
+C LOAD H WITH H0 AND SCALE YH(*,2) BY H0. ------------------------------
+      H = H0
+      DO 190 I = 1,NYH
+ 190    RWORK(I+LF0-1) = H0*RWORK(I+LF0-1)
+      GO TO 270
+C-----------------------------------------------------------------------
+C BLOCK D.
+C THE NEXT CODE BLOCK IS FOR CONTINUATION CALLS ONLY (ISTATE = 2 OR 3)
+C AND IS TO CHECK STOP CONDITIONS BEFORE TAKING A STEP.
+C-----------------------------------------------------------------------
+ 200   NSLAST = NST
+      GO TO (210, 250, 220, 230, 240), ITASK
+ 210   IF ((TN - TOUT)*H .LT. ZERO) GO TO 250
+      CALL INTDY (TOUT, 0, RWORK(LYH), NYH, Y, IFLAG)
+      IF (IFLAG .NE. 0) GO TO 627
+      T = TOUT
+      GO TO 420
+ 220   TP = TN - HU*(ONE + 100.0D0*UROUND)
+      IF ((TP - TOUT)*H .GT. ZERO) GO TO 623
+      IF ((TN - TOUT)*H .LT. ZERO) GO TO 250
+      GO TO 400
+ 230   TCRIT = RWORK(1)
+      IF ((TN - TCRIT)*H .GT. ZERO) GO TO 624
+      IF ((TCRIT - TOUT)*H .LT. ZERO) GO TO 625
+      IF ((TN - TOUT)*H .LT. ZERO) GO TO 245
+      CALL INTDY (TOUT, 0, RWORK(LYH), NYH, Y, IFLAG)
+      IF (IFLAG .NE. 0) GO TO 627
+      T = TOUT
+      GO TO 420
+ 240   TCRIT = RWORK(1)
+      IF ((TN - TCRIT)*H .GT. ZERO) GO TO 624
+ 245   HMX = ABS(TN) + ABS(H)
+      IHIT = ABS(TN - TCRIT) .LE. 100.0D0*UROUND*HMX
+      IF (IHIT) GO TO 400
+      TNEXT = TN + H*(ONE + FOUR*UROUND)
+      IF ((TNEXT - TCRIT)*H .LE. ZERO) GO TO 250
+      H = (TCRIT - TN)*(ONE - FOUR*UROUND)
+      IF (ISTATE .EQ. 2) JSTART = -2
+C-----------------------------------------------------------------------
+C BLOCK E.
+C THE NEXT BLOCK IS NORMALLY EXECUTED FOR ALL CALLS AND CONTAINS
+C THE CALL TO THE ONE-STEP CORE INTEGRATOR STODE.
+C
+C THIS IS A LOOPING POINT FOR THE INTEGRATION STEPS.
+C
+C FIRST CHECK FOR TOO MANY STEPS BEING TAKEN, UPDATE EWT (IF NOT AT
+C START OF PROBLEM), CHECK FOR TOO MUCH ACCURACY BEING REQUESTED, AND
+C CHECK FOR H BELOW THE ROUNDOFF LEVEL IN T.
+C TOLSF IS CALCULATED CONSIDERING ALL SOLUTION VECTORS.
+C-----------------------------------------------------------------------
+ 250   CONTINUE
+      IF ((NST-NSLAST) .GE. MXSTEP) GO TO 500
+      CALL EWSET (NYH, ITOL, RTOL, ATOL, RWORK(LYH), RWORK(LEWT))
+      DO 260 I = 1,NYH
+        IF (RWORK(I+LEWT-1) .LE. ZERO) GO TO 510
+ 260    RWORK(I+LEWT-1) = ONE/RWORK(I+LEWT-1)
+ 270   TOLSF = UROUND*VNORM (NYH, RWORK(LYH), RWORK(LEWT))
+      IF (TOLSF .LE. ONE) GO TO 280
+      TOLSF = TOLSF*2.0D0
+      IF (NST .EQ. 0) GO TO 626
+      GO TO 520
+ 280   IF (ADDX(TN,H) .NE. TN) GO TO 290
+      NHNIL = NHNIL + 1
+      IF (NHNIL .GT. MXHNIL) GO TO 290
+      CALL XERR ('ODESSA - WARNING..INTERNAL T (=R1) AND H (=R2) ARE',
+     1   101, 1, 0, 0, 0, 0, ZERO, ZERO)
+      CALL XERR ('SUCH THAT IN THE MACHINE, T + H = T ON THE NEXT STEP',
+     1   101, 1, 0, 0, 0, 0, ZERO, ZERO)
+      CALL XERR ('(H = STEP SIZE). KppSolveR WILL CONTINUE ANYWAY',
+     1   101, 1, 0, 0, 0, 2, TN, H)
+      IF (NHNIL .LT. MXHNIL) GO TO 290
+      CALL XERR ('ODESSA - ABOVE WARNING HAS BEEN ISSUED I1 TIMES.',
+     1   102, 1, 0, 0, 0, 0, ZERO, ZERO)
+      CALL XERR ('IT WILL NOT BE ISSUED AGAIN FOR THIS PROBLEM',
+     1   102, 1, 1, MXHNIL, 0, 0, ZERO,ZERO)
+ 290   CONTINUE
+C-----------------------------------------------------------------------
+C     CALL STODE(NEQ,Y,YH,NYH,YH,WM,IWM,EWT,SAVF,ACOR,PAR,NRS,
+C    1   F,JAC,DF,PREPJ,PREPDF,SOLSY)
+C-----------------------------------------------------------------------
+      CALL STODE (NEQ, Y, RWORK(LYH), NYH, RWORK(LYH), RWORK(LWM),
+     1   IWORK(LIWM), RWORK(LEWT), RWORK(LSAVF), RWORK(LACOR),
+     2   PAR, IWORK(LNRS), F, JAC, DF, PREPJ, PREPDF, SOLSY)
+      KGO = 1 - KFLAG
+      GO TO (300, 530, 540, 633), KGO
+C-----------------------------------------------------------------------
+C BLOCK F.
+C THE FOLLOWING BLOCK HANDLES THE CASE OF A SUCCESSFUL RETURN FROM THE
+C CORE INTEGRATOR (KFLAG = 0).  TEST FOR STOP CONDITIONS.
+C-----------------------------------------------------------------------
+ 300   INIT = 1
+      GO TO (310, 400, 330, 340, 350), ITASK
+C ITASK = 1.  IF TOUT HAS BEEN REACHED, INTERPOLATE. -------------------
+ 310   IF ((TN - TOUT)*H .LT. ZERO) GO TO 250
+      CALL INTDY (TOUT, 0, RWORK(LYH), NYH, Y, IFLAG)
+      T = TOUT
+      GO TO 420
+C ITASK = 3.  JUMP TO EXIT IF TOUT WAS REACHED. ------------------------
+ 330   IF ((TN - TOUT)*H .GE. ZERO) GO TO 400
+      GO TO 250
+C ITASK = 4.  SEE IF TOUT OR TCRIT WAS REACHED.  ADJUST H IF NECESSARY.
+ 340   IF ((TN - TOUT)*H .LT. ZERO) GO TO 345
+      CALL INTDY (TOUT, 0, RWORK(LYH), NYH, Y, IFLAG)
+      T = TOUT
+      GO TO 420
+ 345   HMX = ABS(TN) + ABS(H)
+      IHIT = ABS(TN - TCRIT) .LE. 100.0D0*UROUND*HMX
+      IF (IHIT) GO TO 400
+      TNEXT = TN + H*(ONE + FOUR*UROUND)
+      IF ((TNEXT - TCRIT)*H .LE. ZERO) GO TO 250
+      H = (TCRIT - TN)*(ONE - FOUR*UROUND)
+      JSTART = -2
+      GO TO 250
+C ITASK = 5.  SEE IF TCRIT WAS REACHED AND JUMP TO EXIT. ---------------
+ 350   HMX = ABS(TN) + ABS(H)
+      IHIT = ABS(TN - TCRIT) .LE. 100.0D0*UROUND*HMX
+C-----------------------------------------------------------------------
+C BLOCK G.
+C THE FOLLOWING BLOCK HANDLES ALL SUCCESSFUL RETURNS FROM ODESSA.
+C IF ITASK .NE. 1, Y IS LOADED FROM YH AND T IS SET ACCORDINGLY.
+C ISTATE IS SET TO 2, THE ILLEGAL INPUT COUNTER IS ZEROED, AND THE
+C OPTIONAL OUTPUTS ARE LOADED INTO THE WORK ARRAYS BEFORE RETURNING.
+C IF ISTATE = 1 AND TOUT = T, THERE IS A RETURN WITH NO ACTION TAKEN,
+C EXCEPT THAT IF THIS HAS HAPPENED REPEATEDLY, THE RUN IS TERMINATED.
+C-----------------------------------------------------------------------
+ 400  DO 410 I = 1,NYH
+ 410    Y(I) = RWORK(I+LYH-1)
+      T = TN
+      IF (ITASK .NE. 4 .AND. ITASK .NE. 5) GO TO 420
+      IF (IHIT) T = TCRIT
+ 420   ISTATE = 2
+      ILLIN = 0
+      RWORK(11) = HU
+      RWORK(12) = H
+      RWORK(13) = TN
+      IWORK(11) = NST
+      IWORK(12) = NFE
+      IWORK(13) = NJE
+      IWORK(14) = NQU
+      IWORK(15) = NQ
+      IF (ISOPT .EQ. 0) RETURN
+      IWORK(19) = NDFE
+      IWORK(20) = NSPE
+      RETURN
+ 430   NTREP = NTREP + 1
+      IF (NTREP .LT. 5) RETURN
+      CALL XERR ('ODESSA -- REPEATED CALLS WITH ISTATE = 1 AND
+     1TOUT = T (=R1)', 301, 1, 0, 0, 0, 1, T, ZERO)
+      GO TO 800
+C-----------------------------------------------------------------------
+C BLOCK H.
+C THE FOLLOWING BLOCK HANDLES ALL UNSUCCESSFUL RETURNS OTHER THAN
+C THOSE FOR ILLEGAL INPUT.  FIRST THE ERROR MESSAGE ROUTINE IS CALLED.
+C IF THERE WAS AN ERROR TEST OR CONVERGENCE TEST FAILURE, IMXER IS SET.
+C THEN Y IS LOADED FROM YH, T IS SET TO TN, AND THE ILLEGAL INPUT
+C COUNTER ILLIN IS SET TO 0.  THE OPTIONAL OUTPUTS ARE LOADED INTO
+C THE WORK ARRAYS BEFORE RETURNING.
+C-----------------------------------------------------------------------
+C THE MAXIMUM NUMBER OF STEPS WAS TAKEN BEFORE REACHING TOUT. ----------
+ 500  CALL XERR ('ODESSA - AT CURRENT T (=R1), MXSTEP (=I1) STEPS',
+     1   201, 1, 0, 0, 0, 0, ZERO,ZERO)
+      CALL XERR ('TAKEN ON THIS CALL BEFORE REACHING TOUT',
+     1   201, 1, 1, MXSTEP, 0, 1, TN, ZERO)
+      ISTATE = -1
+      GO TO 580
+C EWT(I) .LE. 0.0 FOR SOME I (NOT AT START OF PROBLEM). ----------------
+ 510   EWTI = RWORK(LEWT+I-1)
+      CALL XERR ('ODESSA - AT T (=R1), EWT(I1) HAS BECOME R2 .LE. 0.',
+     1   202, 1, 1, I, 0, 2, TN, EWTI)
+      ISTATE = -6
+      GO TO 580
+C TOO MUCH ACCURACY REQUESTED FOR MACHINE PRECISION. -------------------
+ 520  CALL XERR ('ODESSA - AT T (=R1), TOO MUCH ACCURACY REQUESTED',
+     1  203, 1, 0, 0, 0, 0, ZERO,ZERO)
+      CALL XERR ('FOR PRECISION OF MACHINE..  SEE TOLSF (=R2)',
+     1  203, 1, 0, 0, 0, 2, TN, TOLSF)
+      RWORK(14) = TOLSF
+      ISTATE = -2
+      GO TO 580
+C KFLAG = -1.  ERROR TEST FAILED REPEATEDLY OR WITH ABS(H) = HMIN. -----
+ 530  CALL XERR ('ODESSA - AT T(=R1) AND STEP SIZE H(=R2), THE ERROR',
+     1  204, 1, 0, 0, 0, 0, ZERO, ZERO)
+      CALL XERR ('TEST FAILED REPEATEDLY OR WITH ABS(H) = HMIN',
+     1  204, 1, 0, 0, 0, 2, TN, H)
+      ISTATE = -4
+      GO TO 560
+C KFLAG = -2.  CONVERGENCE FAILED REPEATEDLY OR WITH ABS(H) = HMIN. ----
+ 540  CALL XERR ('ODESSA - AT T (=R1) AND STEP SIZE H (=R2), THE',
+     1  205, 1, 0, 0, 0, 0, ZERO,ZERO)
+      CALL XERR ('CORRECTOR CONVERGENCE FAILED REPEATEDLY',
+     1   205, 1, 0, 0, 0, 0, ZERO,ZERO)
+      CALL XERR ('OR WITH ABS(H) = HMIN',
+     1   205, 1, 0, 0, 0, 2, TN, H)
+      ISTATE = -5
+C COMPUTE IMXER IF RELEVANT. -------------------------------------------
+ 560   BIG = ZERO
+      IMXER = 1
+      DO 570 I = 1,NYH
+        SIZE = ABS(RWORK(I+LACOR-1)*RWORK(I+LEWT-1))
+        IF (BIG .GE. SIZE) GO TO 570
+        BIG = SIZE
+        IMXER = I
+ 570    CONTINUE
+      IWORK(16) = IMXER
+C SET Y VECTOR, T, ILLIN, AND OPTIONAL OUTPUTS. ------------------------
+ 580   DO 590 I = 1,NYH
+ 590    Y(I) = RWORK(I+LYH-1)
+      T = TN
+      ILLIN = 0
+      RWORK(11) = HU
+      RWORK(12) = H
+      RWORK(13) = TN
+      IWORK(11) = NST
+      IWORK(12) = NFE
+      IWORK(13) = NJE
+      IWORK(14) = NQU
+      IWORK(15) = NQ
+      IF (ISOPT .EQ. 0) RETURN
+      IWORK(19) = NDFE
+      IWORK(20) = NSPE
+      RETURN
+C-----------------------------------------------------------------------
+C BLOCK I.
+C THE FOLLOWING BLOCK HANDLES ALL ERROR RETURNS DUE TO ILLEGAL INPUT
+C (ISTATE = -3), AS DETECTED BEFORE CALLING THE CORE INTEGRATOR.
+C FIRST THE ERROR MESSAGE ROUTINE IS CALLED.  THEN IF THERE HAVE BEEN
+C 5 CONSECUTIVE SUCH RETURNS JUST BEFORE THIS CALL TO THE KppSolveR,
+C THE RUN IS HALTED.
+C-----------------------------------------------------------------------
+ 601   CALL XERR ('ODESSA - ISTATE (=I1) ILLEGAL',
+     1  1, 1, 1, ISTATE, 0, 0, ZERO,ZERO)
+      GO TO 700
+ 602   CALL XERR ('ODESSA - ITASK (=I1) ILLEGAL',
+     1  2, 1, 1, ITASK, 0, 0, ZERO,ZERO)
+      GO TO 700
+ 603  CALL XERR ('ODESSA - ISTATE .GT. 1 BUT ODESSA NOT INITIALIZED',
+     1  3, 1, 0, 0, 0, 0, ZERO,ZERO)
+      GO TO 700
+ 604   CALL XERR ('ODESSA - NEQ (=I1) .LT. 1',
+     1  4, 1, 1, NEQ(1), 0, 0, ZERO,ZERO)
+      GO TO 700
+ 605  CALL XERR ('ODESSA - ISTATE = 3 AND NEQ CHANGED.  (I1 TO I2)',
+     1  5, 1, 2, N, NEQ(1), 0, ZERO,ZERO)
+      GO TO 700
+ 606   CALL XERR ('ODESSA - ITOL (=I1) ILLEGAL',
+     1  6, 1, 1, ITOL, 0, 0, ZERO,ZERO)
+      GO TO 700
+ 607   CALL XERR ('ODESSA - IOPT (=I1) ILLEGAL',
+     1   7, 1, 1, IOPT, 0, 0, ZERO,ZERO)
+      GO TO 700
+ 608   CALL XERR('ODESSA - MF (=I1) ILLEGAL',
+     1   8, 1, 1, MF, 0, 0, ZERO,ZERO)
+      GO TO 700
+ 609  CALL XERR('ODESSA - ML (=I1) ILLEGAL.. .LT.0 OR .GE.NEQ (=I2)',
+     1   9, 1, 2, ML, NEQ(1), 0, ZERO,ZERO)
+      GO TO 700
+ 610  CALL XERR('ODESSA - MU (=I1) ILLEGAL.. .LT.0 OR .GE.NEQ (=I2)',
+     1   10, 1, 2, MU, NEQ(1), 0, ZERO,ZERO)
+      GO TO 700
+ 611   CALL XERR('ODESSA - MAXORD (=I1) .LT. 0',
+     1   11, 1, 1, MAXORD, 0, 0, ZERO,ZERO)
+      GO TO 700
+ 612   CALL XERR('ODESSA - MXSTEP (=I1) .LT. 0',
+     1   12, 1, 1, MXSTEP, 0, 0, ZERO,ZERO)
+      GO TO 700
+ 613   CALL XERR('ODESSA - MXHNIL (=I1) .LT. 0',
+     1   13, 1, 1, MXHNIL, 0, 0, ZERO,ZERO)
+      GO TO 700
+ 614   CALL XERR('ODESSA - TOUT (=R1) BEHIND T (=R2)',
+     1   14, 1, 0, 0, 0, 2, TOUT, T)
+      CALL XERR('INTEGRATION DIRECTION IS GIVEN BY H0 (=R1)',
+     1   14, 1, 0, 0, 0, 1, H0, ZERO)
+      GO TO 700
+ 615   CALL XERR('ODESSA - HMAX (=R1) .LT. 0.0',
+     1   15, 1, 0, 0, 0, 1, HMAX, ZERO)
+      GO TO 700
+ 616   CALL XERR('ODESSA - HMIN (=R1) .LT. 0.0',
+     1   16, 1, 0, 0, 0, 1, HMIN, ZERO)
+      GO TO 700
+ 617  CALL XERR('ODESSA - RWORK LENGTH NEEDED, LENRW (=I1), EXCEEDS
+     1 LRW (=I2)', 17, 1, 2, LENRW, LRW, 0, ZERO,ZERO)
+      GO TO 700
+ 618  CALL XERR('ODESSA - IWORK LENGTH NEEDED, LENIW (=I1), EXCEEDS
+     1 LIW (=I2)', 18, 1, 2, LENIW, LIW, 0, ZERO,ZERO)
+      GO TO 700
+ 619   CALL XERR('ODESSA - RTOL(I1) IS R1 .LT. 0.0',
+     1   19, 1, 1, I, 0, 1, RTOLI, ZREO)
+      GO TO 700
+ 620   CALL XERR('ODESSA - ATOL(I1) IS R1 .LT. 0.0',
+     1   20, 1, 1, I, 0, 1, ATOLI, ZERO)
+      GO TO 700
+*
+ 621   EWTI = RWORK(LEWT+I-1)
+      CALL XERR('ODESSA - EWT(I1) IS R1 .LE. 0.0',
+     1   21, 1, 1, I, 0, 1, EWTI, ZERO)
+      GO TO 700
+ 622  CALL XERR('ODESSA - TOUT (=R1) TOO CLOSE TO T(=R2) TO START
+     1 INTEGRATION', 22, 1, 0, 0, 0, 2, TOUT, T)
+      GO TO 700
+ 623  CALL XERR('ODESSA - ITASK = I1 AND TOUT (=R1) BEHIND TCUR - HU
+     1 (= R2)', 23, 1, 1, ITASK, 0, 2, TOUT, TP)
+      GO TO 700
+ 624  CALL XERR('ODESSA - ITASK = 4 OR 5 AND TCRIT (=R1) BEHIND TCUR
+     1 (=R2)', 24, 1, 0, 0, 0, 2, TCRIT, TN)
+      GO TO 700
+ 625   CALL XERR('ODESSA - ITASK = 4 OR 5 AND TCRIT (=R1) BEHIND TOUT
+     1 (=R2)', 25, 1, 0, 0, 0, 2, TCRIT, TOUT)
+      GO TO 700
+ 626  CALL XERR('ODESSA - AT START OF PROBLEM, TOO MUCH ACCURACY',
+     1   26, 1, 0, 0, 0, 0, ZERO,ZERO)
+      CALL XERR('REQUESTED FOR PRECISION OF MACHINE. SEE TOLSF (=R1)',
+     1   26, 1, 0, 0, 0, 1, TOLSF, ZERO)
+      RWORK(14) = TOLSF
+      GO TO 700
+ 627  CALL XERR('ODESSA - TROUBLE FROM INTDY. ITASK = I1, TOUT = R1',
+     1   27, 1, 1, ITASK, 0, 1, TOUT, ZERO)
+      GO TO 700
+C ERROR STATEMENTS ASSOCIATED WITH SENSITIVITY ANALYSIS.
+ 628  CALL XERR('ODESSA - NPAR (=I1) .LT. 1',
+     1   28, 1, 1, NPAR, 0, 0, ZERO,ZERO)
+      GO TO 700
+ 629  CALL XERR('ODESSA - ISTATE = 3 AND NPAR CHANGED (I1 TO I2)',
+     1   29, 1, 2, NP, NPAR, 0, ZERO,ZERO)
+      GO TO 700
+ 630  CALL XERR('ODESSA - MITER (=I1) ILLEGAL',
+     1   30, 1, 1, MITER, 0, 0, ZERO,ZERO)
+      GO TO 700
+ 631  CALL XERR('ODESSA - TROUBLE IN SPRIME (IERPJ)',
+     1   31, 1, 0, 0, 0, 0, ZERO,ZERO)
+      GO TO 700
+ 632  CALL XERR('ODESSA - TROUBLE IN SPRIME (MITER)',
+     1   32, 1, 0, 0, 0, 0, ZERO,ZERO)
+      GO TO 700
+ 633  CALL XERR('ODESSA - FATAL ERROR IN STODE (KFLAG = -3)',
+     1   33, 2, 0, 0, 0, 0, ZERO,ZERO)
+      GO TO 801
+C
+ 700   IF (ILLIN .EQ. 5) GO TO 710
+      ILLIN = ILLIN + 1
+      ISTATE = -3
+      RETURN
+ 710  CALL XERR('ODESSA - REPEATED OCCURRENCES OF ILLEGAL INPUT',
+     1   302, 1, 0, 0, 0, 0, ZERO,ZERO)
+C
+ 800  CALL XERR('ODESSA - RUN ABORTED.. APPARENT INFINITE LOOP',
+     1   303, 2, 0, 0, 0, 0, ZERO,ZERO)
+      RETURN
+ 801  CALL XERR('ODESSA - RUN ABORTED',
+     1   304, 2, 0, 0, 0, 0, ZERO,ZERO)
+      RETURN
+C-------------------- END OF SUBROUTINE ODESSA -------------------------
+      END
+      DOUBLE PRECISION FUNCTION ADDX(A,B)
+      DOUBLE PRECISION A,B
+C
+C  THIS FUNCTION IS NECESSARY TO FORCE OPTIMIZING COMPILERS TO
+C  EXECUTE AND STORE A SUM, FOR SUCCESSFUL EXECUTION OF THE
+C  TEST A + B = B.
+C
+      ADDX = A + B
+      RETURN
+C-------------------- END OF FUNCTION SUM ------------------------------
+      END
+      SUBROUTINE SPRIME (NEQ, Y, YH, NYH, NROW, NCOL, WM, IWM,
+     1  EWT, SAVF, FTEM, DFDP, PAR, F, JAC, DF, PJAC, PDF)
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+      DIMENSION NEQ(*), Y(*), YH(NROW,NCOL,*), WM(*), IWM(*),
+     1  EWT(*), SAVF(*), FTEM(*), DFDP(NROW,*), PAR(*)
+      EXTERNAL F, JAC, DF, PJAC, PDF
+      PARAMETER (ONE=1.0D0,ZERO=0.0D0)
+      COMMON /ODE001/ ROWND, ROWNS(173),
+     1  RDUM1(37),EL0, H, RDUM2(6),
+     2  IOWND1(14), IOWNS(4),
+     3  IDUM1(3), IERPJ, IDUM2(6),
+     4  MITER, IDUM3(4), N, IDUM4(5)
+      COMMON /ODE002/ RDUM3(3),
+     1  IOWND2(3), IDUM5, NSV, IDUM6, NSPE, IDUM7, IERSP, JOPT, IDUM8
+C-----------------------------------------------------------------------
+C SPRIME IS CALLED BY ODESSA TO INITIALIZE THE YH ARRAY. IT IS ALSO
+C CALLED BY STODE TO REEVALUATE FIRST ORDER DERIVATIVES WHEN KFLAG
+C .LE. -3. SPRIME COMPUTES THE FIRST DERIVATIVES OF THE SENSITIVITY
+C COEFFICIENTS WITH RESPECT TO THE INDEPENDENT VARIABLE T...
+C
+C        SPRIME = D(DY/DP)/DT = JAC*DY/DP + DF/DP
+C                   WHERE JAC = JACOBIAN MATRIX
+C                       DY/DP = SENSITIVITY MATRIX
+C                       DF/DP = INHOMOGENEITY MATRIX
+C THIS ROUTINE USES THE COMMON VARIABLES EL0, H, IERPJ, MITER, N,
+C NSV, NSPE, IERSP, JOPT
+C-----------------------------------------------------------------------
+C CALL PREPJ WITH JOPT = 1.
+C IF MITER = 2 OR 5, EL0 IS TEMPORARILY SET TO -1.0 AND H IS
+C TEMPORARILY SET TO 1.0D0.
+C-----------------------------------------------------------------------
+      NSPE = NSPE + 1
+      JOPT = 1
+      IF (MITER .EQ. 1 .OR. MITER .EQ. 4) GO TO 10
+      HTEMP = H
+      ETEMP = EL0
+      H = ONE
+      EL0 = -ONE
+ 10   CALL PJAC (NEQ, Y, YH, NYH, WM, IWM, EWT, SAVF, FTEM,
+     1   PAR, F, JAC, JOPT)
+      IF (IERPJ .NE. 0) GO TO 300
+      JOPT = 0
+      IF (MITER .EQ. 1 .OR. MITER .EQ. 4) GO TO 20
+      H = HTEMP
+      EL0 = ETEMP
+C-----------------------------------------------------------------------
+C CALL PREPDF AND LOAD DFDP(*,JPAR).
+C-----------------------------------------------------------------------
+ 20   DO 30 J = 2,NSV
+        JPAR = J - 1
+        CALL PDF (NEQ, Y, WM, SAVF, FTEM, DFDP(1,JPAR), PAR,
+     1     F, DF, JPAR)
+ 30   CONTINUE
+C-----------------------------------------------------------------------
+C COMPUTE JAC*DY/DP AND STORE RESULTS IN YH(*,*,2).
+C-----------------------------------------------------------------------
+      GO TO (40,40,310,100,100) MITER
+C THE JACOBIAN IS FULL.------------------------------------------------
+C FOR EACH ROW OF THE JACOBIAN..
+ 40   DO 70 IROW = 1,N
+C AND EACH COLUMN OF THE SENSITIVITY MATRIX..
+        DO 60 J = 2,NSV
+          SUM = ZERO
+C TAKE THE VECTOR DOT PRODUCT..
+          DO 50 I = 1,N
+            IPD = IROW + N*(I-1) + 2
+            SUM = SUM + WM(IPD)*YH(I,J,1)
+ 50       CONTINUE
+          YH(IROW,J,2) = SUM
+ 60     CONTINUE
+ 70   CONTINUE
+      GO TO 200
+C THE JACOBIAN IS BANDED.-----------------------------------------------
+ 100  ML = IWM(1)
+      MU = IWM(2)
+      ICOUNT = 1
+      MBAND = ML + MU + 1
+      MEBAND = MBAND + ML
+      NMU = N - MU
+      ML1 = ML + 1
+C FOR EACH ROW OF THE JACOBIAN..
+      DO 160 IROW = 1,N
+        IF (IROW .GT. ML1) GO TO 110
+        IPD = MBAND + IROW + 1
+        IYH = 1
+        LBAND = MU + IROW
+        GO TO 120
+ 110    ICOUNT = ICOUNT + 1
+        IPD = ICOUNT*MEBAND + 2
+        IYH = IYH + 1
+        LBAND = LBAND - 1
+        IF (IROW .LE. NMU) LBAND = MBAND
+C AND EACH COLUMN OF THE SENSITIVITY MATRIX..
+ 120    DO 150 J = 2,NSV
+          SUM = ZERO
+          I1 = IPD
+          I2 = IYH
+C TAKE THE VECTOR DOT PRODUCT.
+          DO 140 I = 1,LBAND
+            SUM = SUM + WM(I1)*YH(I2,J,1)
+            I1 = I1 + MEBAND - 1
+            I2 = I2 + 1
+ 140      CONTINUE
+          YH(IROW,J,2) = SUM
+ 150    CONTINUE
+ 160  CONTINUE
+C-----------------------------------------------------------------------
+C ADD THE INHOMOGENEITY TERM, I.E., ADD DFDP(*,JPAR) TO YH(*,JPAR+1,2).
+C-----------------------------------------------------------------------
+ 200  DO 220 J = 2,NSV
+        JPAR = J - 1
+        DO 210 I = 1,N
+          YH(I,J,2) = YH(I,J,2) + DFDP(I,JPAR)
+ 210    CONTINUE
+ 220  CONTINUE
+      RETURN
+C-----------------------------------------------------------------------
+C ERROR RETURNS.
+C-----------------------------------------------------------------------
+ 300  IERSP = -1
+      RETURN
+ 310  IERSP = -2
+      RETURN
+C------------------------END OF SUBROUTINE SPRIME-----------------------
+      END
+      SUBROUTINE PREPJ (NEQ, Y, YH, NYH, WM, IWM, EWT, SAVF, FTEM,
+     1   PAR, F, JAC, JOPT)
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+      DIMENSION NEQ(*), Y(*), YH(NYH,*), WM(*), IWM(*), EWT(*),
+     1   SAVF(*), FTEM(*), PAR(*)
+      EXTERNAL F, JAC
+      PARAMETER (ZERO=0.0D0,ONE=1.0D0)
+      COMMON /ODE001/ ROWND, ROWNS(173),
+     2   RDUM1(37), EL0, H, RDUM2(4), TN, UROUND,
+     3   IOWND(14), IOWNS(4),
+     4   IDUM1(3), IERPJ, IDUM2, JCUR, IDUM3(4),
+     5   MITER, IDUM4(4), N, IDUM5(2), NFE, NJE, IDUM6
+C-----------------------------------------------------------------------
+C PREPJ IS CALLED BY STODE TO COMPUTE AND PROCESS THE MATRIX
+C P = I - H*EL(1)*J , WHERE J IS AN APPROXIMATION TO THE JACOBIAN.
+C IF ISOPT = 1, PREPJ IS ALSO CALLED BY SPRIME WITH JOPT = 1.
+C HERE J IS COMPUTED BY THE USER-SUPPLIED ROUTINE JAC IF
+C MITER = 1 OR 4, OR BY FINITE DIFFERENCING IF MITER = 2, 3, OR 5.
+C IF MITER = 3, A DIAGONAL APPROXIMATION TO J IS USED.
+C J IS STORED IN WM AND REPLACED BY P.  IF MITER .NE. 3, P IS THEN
+C SUBJECTED TO LU DECOMPOSITION (JOPT = 0) IN PREPARATION FOR LATER
+C SOLUTION OF LINEAR SYSTEMS WITH P AS COEFFICIENT MATRIX. THIS IS
+C DONE BY DGEFA IF MITER = 1 OR 2, AND BY DGBFA IF MITER = 4 OR 5.
+C
+C IN ADDITION TO VARIABLES DESCRIBED PREVIOUSLY, COMMUNICATION
+C WITH PREPJ USES THE FOLLOWING..
+C Y     = ARRAY CONTAINING PREDICTED VALUES ON ENTRY.
+C FTEM  = WORK ARRAY OF LENGTH N (ACOR IN STODE).
+C SAVF  = ARRAY CONTAINING F EVALUATED AT PREDICTED Y.
+C WM    = REAL WORK SPACE FOR MATRICES.  ON OUTPUT IT CONTAINS THE
+C         INVERSE DIAGONAL MATRIX IF MITER = 3 AND THE LU DECOMPOSITION
+C         OF P IF MITER IS 1, 2 , 4, OR 5.
+C         STORAGE OF MATRIX ELEMENTS STARTS AT WM(3).
+C         WM ALSO CONTAINS THE FOLLOWING MATRIX-RELATED DATA..
+C         WM(1) = SQRT(UROUND), USED IN NUMERICAL JACOBIAN INCREMENTS.
+C         WM(2) = H*EL0, SAVED FOR LATER USE IF MITER = 3.
+C IWM   = INTEGER WORK SPACE CONTAINING PIVOT INFORMATION, STARTING AT
+C         IWM(21), IF MITER IS 1, 2, 4, OR 5.  IWM ALSO CONTAINS BAND
+C         PARAMETERS ML = IWM(1) AND MU = IWM(2) IF MITER IS 4 OR 5.
+C EL0   = EL(1) (INPUT).
+C IERPJ = OUTPUT ERROR FLAG,  = 0 IF NO TROUBLE, .GT. 0 IF
+C         P MATRIX FOUND TO BE SINGULAR.
+C JCUR  = OUTPUT FLAG = 1 TO INDICATE THAT THE JACOBIAN MATRIX
+C         (OR APPROXIMATION) IS NOW CURRENT.
+C JOPT  = INPUT JACOBIAN OPTION, = 1 IF JAC IS DESIRED ONLY.
+C THIS ROUTINE ALSO USES THE COMMON VARIABLES EL0, H, TN, UROUND,
+C IERPJ, JCUR, MITER, N, NFE, AND NJE.
+C-----------------------------------------------------------------------
+      NJE = NJE + 1
+      IERPJ = 0
+      JCUR = 1
+      HL0 = H*EL0
+      GO TO (100, 200, 300, 400, 500), MITER
+C IF MITER = 1, CALL JAC AND MULTIPLY BY SCALAR. -----------------------
+ 100   LENP = N*N
+      DO 110 I = 1,LENP
+ 110    WM(I+2) = ZERO
+      CALL JAC (NEQ, TN, Y, PAR, 0, 0, WM(3), N)
+      IF (JOPT .EQ. 1) RETURN
+      CON = -HL0
+      DO 120 I = 1,LENP
+ 120    WM(I+2) = WM(I+2)*CON
+      GO TO 240
+C IF MITER = 2, MAKE N CALLS TO F TO APPROXIMATE J. --------------------
+ 200   FAC = VNORM (N, SAVF, EWT)
+      R0 = 1000.0D0*ABS(H)*UROUND*REAL(N)*FAC
+      IF (R0 .EQ. ZERO) R0 = ONE
+      SRUR = WM(1)
+      J1 = 2
+      DO 230 J = 1,N
+        YJ = Y(J)
+        R = MAX(SRUR*ABS(YJ),R0/EWT(J))
+        Y(J) = Y(J) + R
+        FAC = -HL0/R
+        CALL F (NEQ, TN, Y, PAR, FTEM)
+        DO 220 I = 1,N
+ 220      WM(I+J1) = (FTEM(I) - SAVF(I))*FAC
+        Y(J) = YJ
+        J1 = J1 + N
+ 230    CONTINUE
+      NFE = NFE + N
+      IF (JOPT .EQ. 1) RETURN
+C ADD IDENTITY MATRIX. -------------------------------------------------
+ 240   J = 3
+      DO 250 I = 1,N
+        WM(J) = WM(J) + ONE
+ 250    J = J + (N + 1)
+C DO LU DECOMPOSITION ON P. --------------------------------------------
+      CALL DGEFA (WM(3), N, N, IWM(21), IER)
+      IF (IER .NE. 0) IERPJ = 1
+      RETURN
+C IF MITER = 3, CONSTRUCT A DIAGONAL APPROXIMATION TO J AND P. ---------
+ 300   WM(2) = HL0
+      R = EL0*0.1D0
+      DO 310 I = 1,N
+ 310    Y(I) = Y(I) + R*(H*SAVF(I) - YH(I,2))
+      CALL F (NEQ, TN, Y, PAR, WM(3))
+      NFE = NFE + 1
+      DO 320 I = 1,N
+        R0 = H*SAVF(I) - YH(I,2)
+        DI = 0.1D0*R0 - H*(WM(I+2) - SAVF(I))
+        WM(I+2) = 1.0D0
+        IF (ABS(R0) .LT. UROUND/EWT(I)) GO TO 320
+        IF (ABS(DI) .EQ. ZERO) GO TO 330
+        WM(I+2) = 0.1D0*R0/DI
+ 320    CONTINUE
+      RETURN
+ 330   IERPJ = 1
+      RETURN
+C IF MITER = 4, CALL JAC AND MULTIPLY BY SCALAR. -----------------------
+ 400   ML = IWM(1)
+      MU = IWM(2)
+      ML3 = ML + 3
+      MBAND = ML + MU + 1
+      MEBAND = MBAND + ML
+      LENP = MEBAND*N
+      DO 410 I = 1,LENP
+ 410    WM(I+2) = ZERO
+      CALL JAC (NEQ, TN, Y, PAR, ML, MU, WM(ML3), MEBAND)
+      IF (JOPT .EQ. 1) RETURN
+      CON = -HL0
+      DO 420 I = 1,LENP
+ 420    WM(I+2) = WM(I+2)*CON
+      GO TO 570
+C IF MITER = 5, MAKE MBAND CALLS TO F TO APPROXIMATE J. ----------------
+ 500   ML = IWM(1)
+      MU = IWM(2)
+      MBAND = ML + MU + 1
+      MBA = MIN(MBAND,N)
+      MEBAND = MBAND + ML
+      MEB1 = MEBAND - 1
+      SRUR = WM(1)
+      FAC = VNORM (N, SAVF, EWT)
+      R0 = 1000.0D0*ABS(H)*UROUND*REAL(N)*FAC
+      IF (R0 .EQ. ZERO) R0 = ONE
+      DO 560 J = 1,MBA
+        DO 530 I = J,N,MBAND
+          YI = Y(I)
+          R = MAX(SRUR*ABS(YI),R0/EWT(I))
+ 530      Y(I) = Y(I) + R
+        CALL F (NEQ, TN, Y, PAR, FTEM)
+        DO 550 JJ = J,N,MBAND
+          Y(JJ) = YH(JJ,1)
+          YJJ = Y(JJ)
+          R = MAX(SRUR*ABS(YJJ),R0/EWT(JJ))
+          FAC = -HL0/R
+          I1 = MAX(JJ-MU,1)
+          I2 = MIN(JJ+ML,N)
+          II = JJ*MEB1 - ML + 2
+          DO 540 I = I1,I2
+ 540        WM(II+I) = (FTEM(I) - SAVF(I))*FAC
+ 550      CONTINUE
+ 560    CONTINUE
+      NFE = NFE + MBA
+      IF (JOPT .EQ. 1) RETURN
+C ADD IDENTITY MATRIX. -------------------------------------------------
+ 570   II = MBAND + 2
+      DO 580 I = 1,N
+        WM(II) = WM(II) + ONE
+ 580    II = II + MEBAND
+C DO LU DECOMPOSITION OF P. --------------------------------------------
+      CALL DGBFA (WM(3), MEBAND, N, ML, MU, IWM(21), IER)
+      IF (IER .NE. 0) IERPJ = 1
+      RETURN
+C----------------------- END OF SUBROUTINE PREPJ -----------------------
+      END
+      SUBROUTINE PREPDF (NEQ, Y, SRUR, SAVF, FTEM, DFDP, PAR,
+     1   F, DF, JPAR)
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+      EXTERNAL F, DF
+      DIMENSION NEQ(*), Y(*), SAVF(*), FTEM(*), DFDP(*), PAR(*)
+      COMMON /ODE001/ ROWND, ROWNS(173),
+     1   RDUM1(43), TN, RDUM2,
+     2   IOWND1(14), IOWNS(4),
+     3   IDUM1(10), MITER, IDUM2(4), N, IDUM3(2), NFE, IDUM4(2)
+      COMMON /ODE002/ RDUM3(3),
+     1   IOWND2(3), IDUM5(2), NDFE, IDUM6, IDF, IDUM7(3)
+C-----------------------------------------------------------------------
+C PREPDF IS CALLED BY SPRIME AND STESA TO COMPUTE THE INHOMOGENEITY
+C VECTORS DF(I)/DP(JPAR). HERE DF/DP IS COMPUTED BY THE USER-SUPPLIED
+C ROUTINE DF IF IDF = 1, OR BY FINITE DIFFERENCING IF IDF = 0.
+C
+C IN ADDITION TO VARIABLES DESCRIBED PREVIOUSLY, COMMUNICATION WITH
+C PREPDF USES THE FOLLOWING..
+C Y     = REAL ARRAY OF LENGTH NYH CONTAINING DEPENDENT VARIABLES.
+C         PREPDF USES ONLY THE FIRST N ENTRIES OF Y(*).
+C SRUR  = SQRT(UROUND) (= WM(1)).
+C SAVF  = REAL ARRAY OF LENGTH N CONTAINING DERIVATIVES DY/DT.
+C FTEM  = REAL ARRAY OF LENGTH N USED TO TEMPORARILY STORE DY/DT FOR
+C         NUMERICAL DIFFERENTIATION.
+C DFDP  = REAL ARRAY OF LENGTH N USED TO STORE DF(I)/DP(JPAR), I = 1,N.
+C PAR   = REAL ARRAY OF LENGTH NPAR CONTAINING EQUATION PARAMETERS
+C         OF INTEREST.
+C JPAR  = INPUT PARAMETER, 2 .LE. JPAR .LE. NSV, DESIGNATING THE
+C         APPROPRIATE SOLUTION VECTOR CORRESPONDING TO PAR(JPAR).
+C THIS ROUTINE ALSO USES THE COMMON VARIABLES TN, MITER, N, NFE, NDFE,
+C AND IDF.
+C-----------------------------------------------------------------------
+      NDFE = NDFE + 1
+      IDF1 = IDF + 1
+      GO TO (100, 200), IDF1
+C IDF = 0, CALL F TO APPROXIMATE DFDP. ---------------------------------
+ 100  RPAR = PAR(JPAR)
+      R = MAX(SRUR*ABS(RPAR),SRUR)
+      PAR(JPAR) = RPAR + R
+      FAC = 1.0D0/R
+      CALL F (NEQ, TN, Y, PAR, FTEM)
+      DO 110 I = 1,N
+ 110    DFDP(I) = (FTEM(I) - SAVF(I))*FAC
+      PAR(JPAR) = RPAR
+      NFE = NFE + 1
+      RETURN
+C IDF = 1, CALL USER SUPPLIED DF. --------------------------------------
+ 200  DO 210 I = 1,N
+ 210    DFDP(I) = 0.0D0
+      CALL DF (NEQ, TN, Y, PAR, DFDP, JPAR)
+      RETURN
+C -------------------- END OF SUBROUTINE PREPDF ------------------------
+      END
+      SUBROUTINE INTDY (T, K, YH, NYH, DKY, IFLAG)
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+      DIMENSION YH(NYH,1), DKY(1)
+      COMMON /ODE001/ ROWND, ROWNS(173),
+     2   RDUM1(38),H, RDUM2(2), HU, RDUM3, TN, UROUND,
+     3   IOWND(14), IOWNS(4),
+     4   IDUM1(8), L, IDUM2,
+     5   IDUM3(5), N, NQ, IDUM4(4)
+C-----------------------------------------------------------------------
+C INTDY COMPUTES INTERPOLATED VALUES OF THE K-TH DERIVATIVE OF THE
+C DEPENDENT VARIABLE VECTOR Y, AND STORES IT IN DKY.  THIS ROUTINE
+C IS CALLED WITHIN THE PACKAGE WITH K = 0 AND T = TOUT, BUT MAY
+C ALSO BE CALLED BY THE USER FOR ANY K UP TO THE CURRENT ORDER.
+C (SEE DETAILED INSTRUCTIONS IN THE USAGE DOCUMENTATION.)
+C-----------------------------------------------------------------------
+C THE COMPUTED VALUES IN DKY ARE GOTTEN BY INTERPOLATION USING THE
+C NORDSIECK HISTORY ARRAY YH.  THIS ARRAY CORRESPONDS UNIQUELY TO A
+C VECTOR-VALUED POLYNOMIAL OF DEGREE NQCUR OR LESS, AND DKY IS SET
+C TO THE K-TH DERIVATIVE OF THIS POLYNOMIAL AT T.
+C THE FORMULA FOR DKY IS..
+C             Q
+C  DKY(I)  =  SUM  C(J,K) * (T - TN)**(J-K) * H**(-J) * YH(I,J+1)
+C            J=K
+C WHERE  C(J,K) = J*(J-1)*...*(J-K+1), Q = NQCUR, TN = TCUR, H = HCUR.
+C THE QUANTITIES  NQ = NQCUR, L = NQ+1, N = NEQ, TN, AND H ARE
+C COMMUNICATED BY COMMON.  THE ABOVE SUM IS DONE IN REVERSE ORDER.
+C IFLAG IS RETURNED NEGATIVE IF EITHER K OR T IS OUT OF BOUNDS.
+C-----------------------------------------------------------------------
+      IFLAG = 0
+      IF (K .LT. 0 .OR. K .GT. NQ) GO TO 80
+      TP = TN - HU*(1.0D0 + 100.0D0*UROUND)
+      IF ((T-TP)*(T-TN) .GT. 0.0D0) GO TO 90
+C
+      S = (T - TN)/H
+      IC = 1
+      IF (K .EQ. 0) GO TO 15
+      JJ1 = L - K
+      DO 10 JJ = JJ1,NQ
+ 10     IC = IC*JJ
+ 15   C = REAL(IC)
+      DO 20 I = 1,NYH
+ 20     DKY(I) = C*YH(I,L)
+      IF (K .EQ. NQ) GO TO 55
+      JB2 = NQ - K
+      DO 50 JB = 1,JB2
+        J = NQ - JB
+        JP1 = J + 1
+        IC = 1
+        IF (K .EQ. 0) GO TO 35
+        JJ1 = JP1 - K
+        DO 30 JJ = JJ1,J
+ 30       IC = IC*JJ
+ 35     C = REAL(IC)
+        DO 40 I = 1,NYH
+ 40       DKY(I) = C*YH(I,JP1) + S*DKY(I)
+ 50     CONTINUE
+      IF (K .EQ. 0) RETURN
+ 55   R = H**(-K)
+      DO 60 I = 1,NYH
+ 60     DKY(I) = R*DKY(I)
+      RETURN
+C
+ 80   CALL XERR('INTDY--  K (=I1) ILLEGAL',
+     1  51, 1, 1, K, 0, 0, ZERO,ZERO)
+      IFLAG = -1
+      RETURN
+ 90   CALL XERR ('INTDY--  T (=R1) ILLEGAL',
+     1   52, 1, 0, 0, 0, 1, T, ZERO)
+      CALL XERR('T NOT IN INTERVAL TCUR - HU (= R1) TO TCUR (=R2)',
+     1   52, 1, 0, 0, 0, 2, TP, TN)
+      IFLAG = -2
+      RETURN
+C----------------------- END OF SUBROUTINE INTDY -----------------------
+      END
+      SUBROUTINE STESA (NEQ, Y, NROW, NCOL, YH, WM, IWM, EWT, SAVF,
+     1   ACOR, PAR, NRS, F, JAC, DF, PJAC, PDF, KppSolve)
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+      EXTERNAL F, JAC, DF, PJAC, PDF, KppSolve
+      DIMENSION NEQ(*), Y(NROW,*), YH(NROW,NCOL,*), WM(*), IWM(*),
+     1   EWT(NROW,*), SAVF(*), ACOR(NROW,*), PAR(*), NRS(*)
+      PARAMETER (ONE=1.0D0,ZERO=0.0D0)
+      COMMON /ODE001/ ROWND, ROWNS(173),
+     1   TESCO(3,12), RDUM1, EL0, H, RDUM2(4), TN, RDUM3,
+     2   IOWND1(14), IOWNS(4),
+     3   IALTH, LMAX, IDUM1, IERPJ, IERSL, JCUR, IDUM2, KFLAG, L, IDUM3,
+     4   MITER, IDUM4(4), N, NQ, IDUM5, NFE, IDUM6(2)
+      COMMON /ODE002/ DUPS, DSMS, DDNS,
+     1   IOWND2(3), IDUM7, NSV, IDUM8(2), IDF, IDUM9, JOPT, KFLAGS
+C-----------------------------------------------------------------------
+C STESA IS CALLED BY STODE TO PERFORM AN EXPLICIT CALCULATION FOR THE
+C FIRST-ORDER SENSITIVITY COEFFICIENTS DY(I)/DP(J), I = 1,N; J = 1,NPAR.
+C
+C IN ADDITION TO THE VARIABLES DESCRIBED PREVIOUSLY, COMMUNICATION
+C WITH STESA USES THE FOLLOWING..
+C Y      = AN NROW (=N) BY NCOL (=NSV) REAL ARRAY CONTAINING THE
+C          CORRECTED DEPENDENT VARIABLES ON OUTPUT..
+C                  Y(I,1) , I = 1,N = STATE VARIABLES (INPUT);
+C                  Y(I,J) , I = 1,N , J = 2,NSV ,
+C                           = SENSITIVITY COEFFICIENTS, DY(I)/DP(J).
+C YH     = AN N BY NSV BY LMAX REAL ARRAY CONTAINING THE PREDICTED
+C          DEPENDENT VARIABLES AND THEIR APPROXIMATE SCALED DERIVATIVES.
+C SAVF   = A REAL ARRAY OF LENGTH N USED TO STORE FIRST DERIVATIVES
+C          OF DEPENDENT VARIABLES IF MITER = 2 OR 5.
+C PAR    = A REAL ARRAY OF LENGTH NPAR CONTAINING THE EQUATION
+C          PARAMETERS OF INTEREST.
+C NRS    = AN INTEGER ARRAY OF LENGTH NPAR + 1 CONTAINING THE NUMBER
+C          OF REPEATED STEPS (KFLAGS .LT. 0) DUE TO THE SENSITIVITY
+C          CALCULATIONS..
+C                  NRS(1) = TOTAL NUMBER OF REPEATED STEPS
+C                  NRS(I) , I = 2,NPAR = NUMBER OF REPEATED STEPS DUE
+C                                        TO PARAMETER I.
+C NSV    = NUMBER OF SOLUTION VECTORS = NPAR + 1.
+C KFLAGS = LOCAL ERROR TEST FLAG, = 0 IF TEST PASSES, .LT. 0 IF TEST
+C          FAILS, AND STEP NEEDS TO BE REPEATED. ERROR TEST IS APPLIED
+C          TO EACH SOLUTION VECTOR INDEPENDENTLY.
+C DUPS, DSMS, DDNS = REAL SCALARS USED FOR COMPUTING RHUP, RHSM, RHDN,
+C                    ON RETURN TO STODE (IALTH .EQ. 1).
+C THIS ROUTINE ALSO USES THE COMMON VARIABLES EL0, H, TN, IALTH, LMAX,
+C IERPJ, IERSL, JCUR, KFLAG, L, MITER, N, NQ, NFE, AND JOPT.
+C-----------------------------------------------------------------------
+      DUPS = ZERO
+      DSMS = ZERO
+      DDNS = ZERO
+      HL0 = H*EL0
+      EL0I = ONE/EL0
+      TI2 = ONE/TESCO(2,NQ)
+      TI3 = ONE/TESCO(3,NQ)
+C IF MITER = 2 OR 5 (OR IDF = 0), SUPPLY DERIVATIVES AT CORRECTED
+C Y(*,1) VALUES FOR NUMERICAL DIFFERENTIATION IN PJAC AND/OR PDF.
+      IF (MITER .EQ. 2  .OR.  MITER .EQ. 5  .OR.  IDF .EQ. 0)  GO TO 10
+      GO TO 15
+ 10   CALL F (NEQ, TN, Y, PAR, SAVF)
+      NFE = NFE + 1
+C IF JCUR = 0, UPDATE THE JACOBIAN MATRIX.
+C IF MITER = 5, LOAD CORRECTED Y(*,1) VALUES INTO Y(*,2).
+ 15   IF (JCUR .EQ. 1) GO TO 30
+      IF (MITER .NE. 5) GO TO 25
+      DO 20 I = 1,N
+ 20     Y(I,2) = Y(I,1)
+ 25   CALL PJAC (NEQ, Y, Y(1,2), N, WM, IWM, EWT, SAVF, ACOR(1,2),
+     1   PAR, F, JAC, JOPT)
+      IF (IERPJ .NE. 0) RETURN
+C-----------------------------------------------------------------------
+C THIS IS A LOOPING POINT FOR THE SENSITIVITY CALCULATIONS.
+C-----------------------------------------------------------------------
+C FOR EACH PARAMETER PAR(*), A SENSITIVITY SOLUTION VECTOR IS COMPUTED
+C USING THE SAME STEP SIZE (H) AND ORDER (NQ) AS IN STODE.
+C A LOCAL ERROR TEST IS APPLIED INDEPENDENTLY TO EACH SOLUTION VECTOR.
+C-----------------------------------------------------------------------
+ 30   DO 100 J = 2,NSV
+        JPAR = J - 1
+C EVALUATE INHOMOGENEITY TERM, TEMPORARILY LOAD INTO Y(*,JPAR+1). ------
+        CALL PDF(NEQ, Y, WM, SAVF, ACOR(1,J), Y(1,J), PAR,
+     1     F, DF, JPAR)
+C-----------------------------------------------------------------------
+C LOAD RHS OF SENSITIVITY SOLUTION (CORRECTOR) EQUATION..
+C
+C       RHS = DY/DP - EL(1)*H*D(DY/DP)/DT + EL(1)*H*DF/DP
+C
+C-----------------------------------------------------------------------
+        DO 40 I = 1,N
+ 40       Y(I,J) = YH(I,J,1) - EL0*YH(I,J,2) + HL0*Y(I,J)
+C-----------------------------------------------------------------------
+C KppSolve CORRECTOR EQUATION: THE SOLUTIONS ARE LOCATED IN Y(*,JPAR+1).
+C THE EXPLICIT FORMULA IS..
+C
+C       (I - EL(1)*H*JAC) * DY/DP(CORRECTED) = RHS
+C
+C-----------------------------------------------------------------------
+        CALL KppSolve (WM, IWM, Y(1,J), DUM)
+        IF (IERSL .NE. 0) RETURN
+C ESTIMATE LOCAL TRUNCATION ERROR. -------------------------------------
+        DO 50 I = 1,N
+ 50       ACOR(I,J) = (Y(I,J) - YH(I,J,1))*EL0I
+        ERR = VNORM(N, ACOR(1,J), EWT(1,J))*TI2
+        IF (ERR .GT. ONE) GO TO 200
+C-----------------------------------------------------------------------
+C LOCAL ERROR TEST PASSED. SET KFLAGS TO 0 TO INDICATE THIS.
+C IF IALTH = 1, COMPUTE DSMS, DDNS, AND DUPS (IF L .LT. LMAX).
+C-----------------------------------------------------------------------
+        KFLAGS = 0
+        IF (IALTH .GT. 1) GO TO 100
+        IF (L .EQ. LMAX) GO TO 70
+        DO 60 I= 1,N
+ 60       Y(I,J) = ACOR(I,J) - YH(I,J,LMAX)
+        DUPS = MAX(DUPS,VNORM(N,Y(1,J),EWT(1,J))*TI3)
+ 70     DSMS = MAX(DSMS,ERR)
+ 100  CONTINUE
+      RETURN
+C-----------------------------------------------------------------------
+C THIS SECTION IS REACHED IF THE ERROR TOLERANCE FOR SENSITIVITY
+C SOLUTION VECTOR JPAR HAS BEEN VIOLATED. KFLAGS IS MADE NEGATIVE TO
+C INDICATE THIS. IF KFLAGS = -1, SET KFLAG EQUAL TO ZERO SO THAT KFLAG
+C IS SET TO -1 ON RETURN TO STODE BEFORE REPEATING THE STEP.
+C INCREMENT NRS(1) (= TOTAL NUMBER OF REPEATED STEPS DUE TO ALL
+C SENSITIVITY SOLUTION VECTORS) BY ONE.
+C INCREMENT NRS(JPAR+1) (= TOTAL NUMBER OF REPEATED STEPS DUE TO
+C SOLUTION VECTOR JPAR+1) BY ONE.
+C LOAD DSMS FOR RH CALCULATION IN STODE.
+C-----------------------------------------------------------------------
+ 200  KFLAGS = KFLAGS - 1
+      IF (KFLAGS .EQ. -1) KFLAG = 0
+      NRS(1) = NRS(1) + 1
+      NRS(J) = NRS(J) + 1
+      DSMS = ERR
+      RETURN
+C------------------------ END OF SUBROUTINE STESA ----------------------
+      END
+      SUBROUTINE STODE (NEQ, Y, YH, NYH, YH1, WM, IWM, EWT, SAVF, ACOR,
+     1   PAR, NRS, F, JAC, DF, PJAC, PDF, SLVS)
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+      EXTERNAL F, JAC, DF, PJAC, PDF, SLVS
+      DIMENSION NEQ(*), Y(*), YH(NYH,*), YH1(*), WM(*), IWM(*), EWT(*),
+     1   SAVF(*), ACOR(*), PAR(*), NRS(*)
+      PARAMETER (ONE=1.0D0,ZERO=0.0D0)
+      COMMON /ODE001/ ROWND,
+     1   CONIT, CRATE, EL(13), ELCO(13,12), HOLD, RMAX,
+     2   TESCO(3,12), CCMAX, EL0, H, HMIN, HMXI, HU, RC, TN, UROUND,
+     3   IOWND1(14), IPUP, MEO, NQNYH, NSLP,
+     4   IALTH, LMAX, ICF, IERPJ, IERSL, JCUR, JSTART, KFLAG, L, METH,
+     5   MITER, MAXORD, MAXCOR, MSBP, MXNCF, N, NQ, NST, NFE, NJE, NQU
+      COMMON /ODE002/ DUPS, DSMS, DDNS,
+     1   IOWND2(3), ISOPT, NSV, NDFE, NSPE, IDF, IERSP, JOPT, KFLAGS
+C-----------------------------------------------------------------------
+C STODE PERFORMS ONE STEP OF THE INTEGRATION OF AN INITIAL VALUE
+C PROBLEM FOR A SYSTEM OF ORDINARY DIFFERENTIAL EQUATIONS.
+C NOTE.. STODE IS INDEPENDENT OF THE VALUE OF THE ITERATION METHOD
+C INDICATOR MITER, WHEN THIS IS .NE. 0, AND HENCE IS INDEPENDENT
+C OF THE TYPE OF CHORD METHOD USED, OR THE JACOBIAN STRUCTURE.
+C FOR ISOPT = 1, STODE CALLS STESA FOR SENSITIVITY CALCULATIONS.
+C VARIABLES USED FOR COMMUNICATION WITH STESA ARE DESCRIBED IN STESA.
+C COMMUNICATION WITH STODE IS DONE WITH THE FOLLOWING VARIABLES..
+C
+C NEQ   = INTEGER ARRAY CONTAINING PROBLEM SIZE IN NEQ(1), AND
+C         NUMBER OF PARAMETERS TO BE CONSIDERED IN THE SENSITIVITY
+C         ANALYSIS NEQ(2) (FOR ISOPT = 1), AND PASSED AS THE
+C         NEQ ARGUMENT IN ALL CALLS TO F,  JAC, AND DF.
+C Y     = AN ARRAY OF LENGTH .GE. N USED AS THE Y ARGUMENT IN
+C         ALL CALLS TO F, JAC, AND DF.
+C YH    = AN NYH BY LMAX ARRAY CONTAINING THE DEPENDENT VARIABLES
+C         AND THEIR APPROXIMATE SCALED DERIVATIVES, WHERE
+C         LMAX = MAXORD + 1.  YH(I,J+1) CONTAINS THE APPROXIMATE
+C         J-TH DERIVATIVE OF Y(I), SCALED BY H**J/FACTORIAL(J)
+C         (J = 0,1,...,NQ).  ON ENTRY FOR THE FIRST STEP, THE FIRST
+C         TWO COLUMNS OF YH MUST BE SET FROM THE INITIAL VALUES.
+C NYH   = A CONSTANT INTEGER .GE. N, THE FIRST DIMENSION OF YH.
+C         THE TOTAL NUMBER OF FIRST-ORDER DIFFERENTIAL EQUATIONS..
+C         NYH = N, ISOPT = 0,
+C         NYH = N * (NPAR + 1), ISOPT = 1
+C YH1   = A ONE-DIMENSIONAL ARRAY OCCUPYING THE SAME SPACE AS YH.
+C EWT   = AN ARRAY OF LENGTH NYH CONTAINING MULTIPLICATIVE WEIGHTS
+C         FOR LOCAL ERROR MEASUREMENTS.  LOCAL ERRORS IN Y(I) ARE
+C         COMPARED TO 1.0/EWT(I) IN VARIOUS ERROR TESTS.
+C SAVF  = AN ARRAY OF WORKING STORAGE, OF LENGTH N.
+C         ALSO USED FOR INPUT OF YH(*,MAXORD+2) WHEN JSTART = -1
+C         AND MAXORD .LT. THE CURRENT ORDER NQ.
+C ACOR  = A WORK ARRAY OF LENGTH NYH, USED FOR THE ACCUMULATED
+C         CORRECTIONS.  ON A SUCCESSFUL RETURN, ACOR(I) CONTAINS
+C         THE ESTIMATED ONE-STEP LOCAL ERROR IN Y(I).
+C WM,IWM = REAL AND INTEGER WORK ARRAYS ASSOCIATED WITH MATRIX
+C         OPERATIONS IN CHORD ITERATION (MITER .NE. 0).
+C PJAC  = NAME OF ROUTINE TO EVALUATE AND PREPROCESS JACOBIAN MATRIX
+C         AND P = I - H*EL0*JAC, IF A CHORD METHOD IS BEING USED.
+C         IF ISOPT = 1, PJAC CAN BE CALLED TO CALCULATE JAC BY
+C         SETTING JOPT = 1.
+C SLVS  = NAME OF ROUTINE TO KppSolve LINEAR SYSTEM IN CHORD ITERATION.
+C CCMAX  = MAXIMUM RELATIVE CHANGE IN H*EL0 BEFORE PJAC IS CALLED.
+C H     = THE STEP SIZE TO BE ATTEMPTED ON THE NEXT STEP.
+C         H IS ALTERED BY THE ERROR CONTROL ALGORITHM DURING THE
+C         PROBLEM.  H CAN BE EITHER POSITIVE OR NEGATIVE, BUT ITS
+C         SIGN MUST REMAIN CONSTANT THROUGHOUT THE PROBLEM.
+C HMIN  = THE MINIMUM ABSOLUTE VALUE OF THE STEP SIZE H TO BE USED.
+C HMXI  = INVERSE OF THE MAXIMUM ABSOLUTE VALUE OF H TO BE USED.
+C         HMXI = 0.0 IS ALLOWED AND CORRESPONDS TO AN INFINITE HMAX.
+C         HMIN AND HMXI MAY BE CHANGED AT ANY TIME, BUT WILL NOT
+C         TAKE EFFECT UNTIL THE NEXT CHANGE OF H IS CONSIDERED.
+C TN    = THE INDEPENDENT VARIABLE. TN IS UPDATED ON EACH STEP TAKEN.
+C JSTART = AN INTEGER USED FOR INPUT ONLY, WITH THE FOLLOWING
+C         VALUES AND MEANINGS..
+C              0  PERFORM THE FIRST STEP.
+C          .GT.0  TAKE A NEW STEP CONTINUING FROM THE LAST.
+C             -1  TAKE THE NEXT STEP WITH A NEW VALUE OF H, MAXORD,
+C                   N, METH, OR MITER.
+C             -2  TAKE THE NEXT STEP WITH A NEW VALUE OF H,
+C                   BUT WITH OTHER INPUTS UNCHANGED.
+C         ON RETURN, JSTART IS SET TO 1 TO FACILITATE CONTINUATION.
+C KFLAG  = A COMPLETION CODE WITH THE FOLLOWING MEANINGS..
+C              0  THE STEP WAS SUCCESFUL.
+C             -1  THE REQUESTED ERROR COULD NOT BE ACHIEVED.
+C             -2  CORRECTOR CONVERGENCE COULD NOT BE ACHIEVED.
+C             -3  FATAL ERROR IN PJAC, OR SLVS, (OR STESA).
+C         A RETURN WITH KFLAG = -1 OR -2 MEANS EITHER
+C         ABS(H) = HMIN OR 10 CONSECUTIVE FAILURES OCCURRED.
+C         ON A RETURN WITH KFLAG NEGATIVE, THE VALUES OF TN AND
+C         THE YH ARRAY ARE AS OF THE BEGINNING OF THE LAST
+C         STEP, AND H IS THE LAST STEP SIZE ATTEMPTED.
+C MAXORD = THE MAXIMUM ORDER OF INTEGRATION METHOD TO BE ALLOWED.
+C MAXCOR = THE MAXIMUM NUMBER OF CORRECTOR ITERATIONS ALLOWED.
+C          (= 3, IF ISOPT = 0)
+C          (= 4, IF ISOPT = 1)
+C MSBP  = MAXIMUM NUMBER OF STEPS BETWEEN PJAC CALLS (MITER .GT. 0).
+C         IF ISOPT = 1, PJAC IS CALLED AT LEAST ONCE EVERY STEP.
+C MXNCF  = MAXIMUM NUMBER OF CONVERGENCE FAILURES ALLOWED.
+C METH/MITER = THE METHOD FLAGS.  SEE DESCRIPTION IN DRIVER.
+C N     = THE NUMBER OF FIRST-ORDER MODEL DIFFERENTIAL EQUATIONS.
+C-----------------------------------------------------------------------
+      KFLAG = 0
+      KFLAGS = 0
+      TOLD = TN
+      NCF = 0
+      IERPJ = 0
+      IERSL = 0
+      JCUR = 0
+      ICF = 0
+      IF (JSTART .GT. 0) GO TO 200
+      IF (JSTART .EQ. -1) GO TO 100
+      IF (JSTART .EQ. -2) GO TO 160
+C-----------------------------------------------------------------------
+C ON THE FIRST CALL, THE ORDER IS SET TO 1, AND OTHER VARIABLES ARE
+C INITIALIZED.  RMAX IS THE MAXIMUM RATIO BY WHICH H CAN BE INCREASED
+C IN A SINGLE STEP.  IT IS INITIALLY 1.E4 TO COMPENSATE FOR THE SMALL
+C INITIAL H, BUT THEN IS NORMALLY EQUAL TO 10.  IF A FAILURE
+C OCCURS (IN CORRECTOR CONVERGENCE OR ERROR TEST), RMAX IS SET AT 2
+C FOR THE NEXT INCREASE.
+C THESE COMPUTATIONS CONSIDER ONLY THE ORIGINAL SOLUTION VECTOR.
+C THE SENSITIVITY SOLUTION VECTORS ARE CONSIDERED IN STESA (ISOPT = 1).
+C-----------------------------------------------------------------------
+      LMAX = MAXORD + 1
+      NQ = 1
+      L = 2
+      IALTH = 2
+      RMAX = 10000.0D0
+      RC = ZERO
+      EL0 = ONE
+      CRATE = 0.7D0
+      DELP = ZERO
+      HOLD = H
+      MEO = METH
+      NSLP = 0
+      IPUP = MITER
+      IRET = 3
+      GO TO 140
+C-----------------------------------------------------------------------
+C THE FOLLOWING BLOCK HANDLES PRELIMINARIES NEEDED WHEN JSTART = -1.
+C IPUP IS SET TO MITER TO FORCE A MATRIX UPDATE.
+C IF AN ORDER INCREASE IS ABOUT TO BE CONSIDERED (IALTH = 1),
+C IALTH IS RESET TO 2 TO POSTPONE CONSIDERATION ONE MORE STEP.
+C IF THE CALLER HAS CHANGED METH, CFODE IS CALLED TO RESET
+C THE COEFFICIENTS OF THE METHOD.
+C IF THE CALLER HAS CHANGED MAXORD TO A VALUE LESS THAN THE CURRENT
+C ORDER NQ, NQ IS REDUCED TO MAXORD, AND A NEW H CHOSEN ACCORDINGLY.
+C IF H IS TO BE CHANGED, YH MUST BE RESCALED.
+C IF H OR METH IS BEING CHANGED, IALTH IS RESET TO L = NQ + 1
+C TO PREVENT FURTHER CHANGES IN H FOR THAT MANY STEPS.
+C-----------------------------------------------------------------------
+ 100   IPUP = MITER
+      LMAX = MAXORD + 1
+      IF (IALTH .EQ. 1) IALTH = 2
+      IF (METH .EQ. MEO) GO TO 110
+      CALL CFODE (METH, ELCO, TESCO)
+      MEO = METH
+      IF (NQ .GT. MAXORD) GO TO 120
+      IALTH = L
+      IRET = 1
+      GO TO 150
+ 110   IF (NQ .LE. MAXORD) GO TO 160
+ 120   NQ = MAXORD
+      L = LMAX
+      DO 125 I = 1,L
+ 125    EL(I) = ELCO(I,NQ)
+      NQNYH = NQ*NYH
+      RC = RC*EL(1)/EL0
+      EL0 = EL(1)
+      CONIT = 0.5D0/REAL(NQ+2)
+      DDN = VNORM (N, SAVF, EWT)/TESCO(1,L)
+      EXDN = ONE/REAL(L)
+      RHDN = ONE/(1.3D0*DDN**EXDN + 0.0000013D0)
+      RH = MIN(RHDN,ONE)
+      IREDO = 3
+      IF (H .EQ. HOLD) GO TO 170
+      RH = MIN(RH,ABS(H/HOLD))
+      H = HOLD
+      GO TO 175
+C-----------------------------------------------------------------------
+C CFODE IS CALLED TO GET ALL THE INTEGRATION COEFFICIENTS FOR THE
+C CURRENT METH.  THEN THE EL VECTOR AND RELATED CONSTANTS ARE RESET
+C WHENEVER THE ORDER NQ IS CHANGED, OR AT THE START OF THE PROBLEM.
+C-----------------------------------------------------------------------
+ 140   CALL CFODE (METH, ELCO, TESCO)
+ 150   DO 155 I = 1,L
+ 155    EL(I) = ELCO(I,NQ)
+      NQNYH = NQ*NYH
+      RC = RC*EL(1)/EL0
+      EL0 = EL(1)
+      CONIT = 0.5D0/REAL(NQ+2)
+      GO TO (160, 170, 200), IRET
+C-----------------------------------------------------------------------
+C IF H IS BEING CHANGED, THE H RATIO RH IS CHECKED AGAINST
+C RMAX, HMIN, AND HMXI, AND THE YH ARRAY RESCALED.  IALTH IS SET TO
+C L = NQ + 1 TO PREVENT A CHANGE OF H FOR THAT MANY STEPS, UNLESS
+C FORCED BY A CONVERGENCE OR ERROR TEST FAILURE.
+C-----------------------------------------------------------------------
+ 160  IF (H .EQ. HOLD) GO TO 200
+      RH = H/HOLD
+      H = HOLD
+      IREDO = 3
+      GO TO 175
+ 170   RH = MAX(RH,HMIN/ABS(H))
+ 175   RH = MIN(RH,RMAX)
+      RH = RH/MAX(ONE,ABS(H)*HMXI*RH)
+      R = ONE
+      DO 180 J = 2,L
+        R = R*RH
+        DO 180 I = 1,NYH
+ 180      YH(I,J) = YH(I,J)*R
+      H = H*RH
+      RC = RC*RH
+      IALTH = L
+      IF (IREDO .EQ. 0) GO TO 690
+C-----------------------------------------------------------------------
+C THIS SECTION COMPUTES THE PREDICTED VALUES BY EFFECTIVELY
+C MULTIPLYING THE YH ARRAY BY THE PASCAL TRIANGLE MATRIX.
+C RC IS THE RATIO OF NEW TO OLD VALUES OF THE COEFFICIENT  H*EL(1).
+C WHEN RC DIFFERS FROM 1 BY MORE THAN CCMAX, IPUP IS SET TO MITER
+C TO FORCE PJAC TO BE CALLED, IF A JACOBIAN IS INVOLVED.
+C IN ANY CASE, PJAC IS CALLED AT LEAST EVERY MSBP STEPS FOR ISOPT = 0,
+C AND AT LEAST ONCE EVERY STEP FOR ISOPT = 1.
+C-----------------------------------------------------------------------
+ 200  IF (ABS(RC-ONE) .GT. CCMAX) IPUP = MITER
+      IF (NST .GE. NSLP+MSBP) IPUP = MITER
+      TN = TN + H
+      I1 = NQNYH + 1
+      DO 215 JB = 1,NQ
+        I1 = I1 - NYH
+        DO 210 I = I1,NQNYH
+ 210      YH1(I) = YH1(I) + YH1(I+NYH)
+ 215    CONTINUE
+C-----------------------------------------------------------------------
+C UP TO MAXCOR CORRECTOR ITERATIONS ARE TAKEN.  (= 3, FOR ISOPT = 0;
+C = 4, FOR ISOPT = 1).  A CONVERGENCE TEST IS MADE ON THE R.M.S. NORM
+C OF EACH CORRECTION, WEIGHTED BY THE ERROR WEIGHT VECTOR EWT.  THE SUM
+C OF THE CORRECTIONS IS ACCUMULATED IN THE VECTOR ACOR(I), I = 1,N.
+C (ACOR(I), I = N+1,NYH IS LOADED IN SUBROUTINE STESA (ISOPT = 1).)
+C THE YH ARRAY IS NOT ALTERED IN THE CORRECTOR LOOP.
+C-----------------------------------------------------------------------
+ 220  M = 0
+      DO 230 I = 1,N
+ 230    Y(I) = YH(I,1)
+      CALL F (NEQ, TN, Y, PAR, SAVF)
+      NFE = NFE + 1
+      IF (IPUP .LE. 0) GO TO 250
+C-----------------------------------------------------------------------
+C IF INDICATED, THE MATRIX P = I - H*EL(1)*J IS REEVALUATED AND
+C PREPROCESSED BEFORE STARTING THE CORRECTOR ITERATION.  IPUP IS SET
+C TO 0 AS AN INDICATOR THAT THIS HAS BEEN DONE.
+C-----------------------------------------------------------------------
+      IPUP = 0
+      RC = ONE
+      NSLP = NST
+      CRATE = 0.7D0
+      CALL PJAC (NEQ, Y, YH, NYH, WM, IWM, EWT, SAVF, ACOR, PAR,
+     1   F, JAC, JOPT)
+      IF (IERPJ .NE. 0) GO TO 430
+ 250   DO 260 I = 1,N
+ 260    ACOR(I) = ZERO
+ 270   IF (MITER .NE. 0) GO TO 350
+C-----------------------------------------------------------------------
+C IN THE CASE OF FUNCTIONAL ITERATION, UPDATE Y DIRECTLY FROM
+C THE RESULT OF THE LAST FUNCTION EVALUATION.
+C (IF ISOPT = 1, FUNCTIONAL ITERATION IS NOT ALLOWED.)
+C-----------------------------------------------------------------------
+      DO 290 I = 1,N
+        SAVF(I) = H*SAVF(I) - YH(I,2)
+ 290    Y(I) = SAVF(I) - ACOR(I)
+      DEL = VNORM (N, Y, EWT)
+      DO 300 I = 1,N
+        Y(I) = YH(I,1) + EL(1)*SAVF(I)
+ 300    ACOR(I) = SAVF(I)
+      GO TO 400
+C-----------------------------------------------------------------------
+C IN THE CASE OF THE CHORD METHOD, COMPUTE THE CORRECTOR ERROR,
+C AND KppSolve THE LINEAR SYSTEM WITH THAT AS RIGHT-HAND SIDE AND
+C P AS COEFFICIENT MATRIX.
+C-----------------------------------------------------------------------
+ 350   DO 360 I = 1,N
+ 360    Y(I) = H*SAVF(I) - (YH(I,2) + ACOR(I))
+      CALL SLVS (WM, IWM, Y, SAVF)
+      IF (IERSL .LT. 0) GO TO 430
+      IF (IERSL .GT. 0) GO TO 410
+      DEL = VNORM (N, Y, EWT)
+      DO 380 I = 1,N
+        ACOR(I) = ACOR(I) + Y(I)
+ 380    Y(I) = YH(I,1) + EL(1)*ACOR(I)
+C-----------------------------------------------------------------------
+C TEST FOR CONVERGENCE.  IF M.GT.0, AN ESTIMATE OF THE CONVERGENCE
+C RATE CONSTANT IS STORED IN CRATE, AND THIS IS USED IN THE TEST.
+C-----------------------------------------------------------------------
+ 400   IF (M .NE. 0) CRATE = MAX(0.2D0*CRATE,DEL/DELP)
+      DCON = DEL*MIN(ONE,1.5D0*CRATE)/(TESCO(2,NQ)*CONIT)
+      IF (DCON .LE. ONE) GO TO 450
+      M = M + 1
+      IF (M .EQ. MAXCOR) GO TO 410
+      IF (M .GE. 2 .AND. DEL .GT. 2.0D0*DELP) GO TO 410
+      DELP = DEL
+      CALL F (NEQ, TN, Y, PAR, SAVF)
+      NFE = NFE + 1
+      GO TO 270
+C-----------------------------------------------------------------------
+C THE CORRECTOR ITERATION FAILED TO CONVERGE IN MAXCOR TRIES.
+C IF MITER .NE. 0 AND THE JACOBIAN IS OUT OF DATE, PJAC IS CALLED FOR
+C THE NEXT TRY.  OTHERWISE THE YH ARRAY IS RETRACTED TO ITS VALUES
+C BEFORE PREDICTION, AND H IS REDUCED, IF POSSIBLE.  IF H CANNOT BE
+C REDUCED OR MXNCF FAILURES HAVE OCCURRED, EXIT WITH KFLAG = -2.
+C-----------------------------------------------------------------------
+ 410   IF (MITER .EQ. 0 .OR. JCUR .EQ. 1) GO TO 430
+      ICF = 1
+      IPUP = MITER
+      GO TO 220
+ 430   ICF = 2
+      NCF = NCF + 1
+      RMAX = 2.0D0
+      TN = TOLD
+      I1 = NQNYH + 1
+      DO 445 JB = 1,NQ
+        I1 = I1 - NYH
+        DO 440 I = I1,NQNYH
+ 440      YH1(I) = YH1(I) - YH1(I+NYH)
+ 445    CONTINUE
+      IF (IERPJ .LT. 0 .OR. IERSL .LT. 0) GO TO 680
+      IF (ABS(H) .LE. HMIN*1.00001D0) GO TO 670
+      IF (NCF .EQ. MXNCF) GO TO 670
+      RH = 0.25D0
+      IPUP = MITER
+      IREDO = 1
+      GO TO 170
+C-----------------------------------------------------------------------
+C THE CORRECTOR HAS CONVERGED.
+C THE LOCAL ERROR TEST IS MADE AND CONTROL PASSES TO STATEMENT 500
+C IF IT FAILS. OTHERWISE, STESA IS CALLED (ISOPT = 1) TO PERFORM
+C SENSITIVITY CALCULATIONS AT CURRENT STEP SIZE AND ORDER.
+C-----------------------------------------------------------------------
+ 450   CONTINUE
+      IF (M .EQ. 0) DSM = DEL/TESCO(2,NQ)
+      IF (M .GT. 0) DSM = VNORM (N, ACOR, EWT)/TESCO(2,NQ)
+      IF (DSM .GT. ONE) GO TO 500
+C
+      IF (ISOPT .EQ. 0) GO TO 460
+C-----------------------------------------------------------------------
+C CALL STESA TO PERFORM EXPLICIT SENSITIVITY ANALYSIS.
+C IF THE LOCAL ERROR TEST FAILS (WITHIN STESA) FOR ANY SOLUTION VECTOR,
+C KFLAGS IS SET .LT. 0 AND CONTROL PASSES TO STATEMENT 500 UPON RETURN.
+C IN EITHER CASE, JCUR IS SET TO ZERO TO SIGNAL THAT THE JACOBIAN MAY
+C NEED UPDATING LATER.
+C-----------------------------------------------------------------------
+      CALL STESA (NEQ, Y, N, NSV, YH, WM, IWM, EWT, SAVF, ACOR,
+     1   PAR, NRS, F, JAC, DF, PJAC, PDF, SLVS)
+      IF (IERPJ .NE. 0 .OR. IERSL .NE. 0) GO TO 680
+      IF (KFLAGS .LT. 0) GO TO 500
+C-----------------------------------------------------------------------
+C AFTER A SUCCESSFUL STEP, UPDATE THE YH ARRAY.
+C CONSIDER CHANGING H IF IALTH = 1.  OTHERWISE DECREASE IALTH BY 1.
+C IF IALTH IS THEN 1 AND NQ .LT. MAXORD, THEN ACOR IS SAVED FOR
+C USE IN A POSSIBLE ORDER INCREASE ON THE NEXT STEP.
+C IF A CHANGE IN H IS CONSIDERED, AN INCREASE OR DECREASE IN ORDER
+C BY ONE IS CONSIDERED ALSO.  A CHANGE IN H IS MADE ONLY IF IT IS BY A
+C FACTOR OF AT LEAST 1.1.  IF NOT, IALTH IS SET TO 3 TO PREVENT
+C TESTING FOR THAT MANY STEPS.
+C-----------------------------------------------------------------------
+ 460   JCUR = 0
+      KFLAG = 0
+      IREDO = 0
+      NST = NST + 1
+      HU = H
+      NQU = NQ
+      DO 470 J = 1,L
+        DO 470 I = 1,NYH
+ 470      YH(I,J) = YH(I,J) + EL(J)*ACOR(I)
+      IALTH = IALTH - 1
+      IF (IALTH .EQ. 0) GO TO 520
+      IF (IALTH .GT. 1) GO TO 700
+      IF (L .EQ. LMAX) GO TO 700
+      DO 490 I = 1,NYH
+ 490    YH(I,LMAX) = ACOR(I)
+      GO TO 700
+C-----------------------------------------------------------------------
+C THE ERROR TEST FAILED IN EITHER STODE OR STESA.
+C KFLAG KEEPS TRACK OF MULTIPLE FAILURES.
+C RESTORE TN AND THE YH ARRAY TO THEIR PREVIOUS VALUES, AND PREPARE
+C TO TRY THE STEP AGAIN.  COMPUTE THE OPTIMUM STEP SIZE FOR THIS OR
+C ONE LOWER ORDER.  AFTER 2 OR MORE FAILURES, H IS FORCED TO DECREASE
+C BY A FACTOR OF 0.2 OR LESS.
+C-----------------------------------------------------------------------
+ 500  KFLAG = KFLAG - 1
+      JCUR = 0
+      TN = TOLD
+      I1 = NQNYH + 1
+      DO 515 JB = 1,NQ
+        I1 = I1 - NYH
+        DO 510 I = I1,NQNYH
+ 510      YH1(I) = YH1(I) - YH1(I+NYH)
+ 515    CONTINUE
+      RMAX = 2.0D0
+      IF (ABS(H) .LE. HMIN*1.00001D0) GO TO 660
+      IF (KFLAG .LE. -3) GO TO 640
+      IREDO = 2
+      RHUP = ZERO
+      GO TO 540
+C-----------------------------------------------------------------------
+*
+C REGARDLESS OF THE SUCCESS OR FAILURE OF THE STEP, FACTORS
+C RHDN, RHSM, AND RHUP ARE COMPUTED, BY WHICH H COULD BE MULTIPLIED
+C AT ORDER NQ - 1, ORDER NQ, OR ORDER NQ + 1, RESPECTIVELY.
+C IN THE CASE OF FAILURE, RHUP = 0.0 TO AVOID AN ORDER INCREASE.
+C THE LARGEST OF THESE IS DETERMINED AND THE NEW ORDER CHOSEN
+C ACCORDINGLY.  IF THE ORDER IS TO BE INCREASED, WE COMPUTE ONE
+C ADDITIONAL SCALED DERIVATIVE.
+C FOR ISOPT = 1, DUPS AND DSMS ARE LOADED WITH THE LARGEST RMS-NORMS
+C OBTAINED BY CONSIDERING SEPARATELY THE SENSITIVITY SOLUTION VECTORS.
+C-----------------------------------------------------------------------
+ 520   RHUP = ZERO
+      IF (L .EQ. LMAX) GO TO 540
+      DO 530 I = 1,N
+ 530    SAVF(I) = ACOR(I) - YH(I,LMAX)
+      DUP = VNORM (N, SAVF, EWT)/TESCO(3,NQ)
+      DUP = MAX(DUP,DUPS)
+      EXUP = ONE/REAL(L+1)
+      RHUP = ONE/(1.4D0*DUP**EXUP + 0.0000014D0)
+ 540   EXSM = ONE/REAL(L)
+      DSM = MAX(DSM,DSMS)
+      RHSM = ONE/(1.2D0*DSM**EXSM + 0.0000012D0)
+      RHDN = ZERO
+      IF (NQ .EQ. 1) GO TO 560
+      JPOINT = 1
+      DO 550 J = 1,NSV
+        DDN = VNORM (N, YH(JPOINT,L), EWT(JPOINT))/TESCO(1,NQ)
+        DDNS = MAX(DDNS,DDN)
+        JPOINT = JPOINT + N
+ 550  CONTINUE
+      DDN = DDNS
+      DDNS = ZERO
+      EXDN = ONE/REAL(NQ)
+      RHDN = ONE/(1.3D0*DDN**EXDN + 0.0000013D0)
+ 560   IF (RHSM .GE. RHUP) GO TO 570
+      IF (RHUP .GT. RHDN) GO TO 590
+      GO TO 580
+ 570   IF (RHSM .LT. RHDN) GO TO 580
+      NEWQ = NQ
+      RH = RHSM
+      GO TO 620
+ 580   NEWQ = NQ - 1
+      RH = RHDN
+      IF (KFLAG .LT. 0 .AND. RH .GT. ONE) RH = ONE
+      GO TO 620
+ 590   NEWQ = L
+      RH = RHUP
+      IF (RH .LT. 1.1D0) GO TO 610
+      R = EL(L)/REAL(L)
+      DO 600 I = 1,NYH
+ 600    YH(I,NEWQ+1) = ACOR(I)*R
+      GO TO 630
+ 610   IALTH = 3
+      GO TO 700
+ 620   IF ((KFLAG .EQ. 0) .AND. (RH .LT. 1.1D0)) GO TO 610
+      IF (KFLAG .LE. -2) RH = MIN(RH,0.2D0)
+C-----------------------------------------------------------------------
+C IF THERE IS A CHANGE OF ORDER, RESET NQ, L, AND THE COEFFICIENTS.
+C IN ANY CASE H IS RESET ACCORDING TO RH AND THE YH ARRAY IS RESCALED.
+C THEN EXIT FROM 690 IF THE STEP WAS OK, OR REDO THE STEP OTHERWISE.
+C-----------------------------------------------------------------------
+      IF (NEWQ .EQ. NQ) GO TO 170
+ 630   NQ = NEWQ
+      L = NQ + 1
+      IRET = 2
+      GO TO 150
+C-----------------------------------------------------------------------
+C CONTROL REACHES THIS SECTION IF 3 OR MORE FAILURES HAVE OCCURED.
+C IF 10 FAILURES HAVE OCCURRED, EXIT WITH KFLAG = -1.
+C IT IS ASSUMED THAT THE DERIVATIVES THAT HAVE ACCUMULATED IN THE
+C YH ARRAY HAVE ERRORS OF THE WRONG ORDER.  HENCE THE FIRST
+C DERIVATIVE IS RECOMPUTED, AND THE ORDER IS SET TO 1.  THEN
+C H IS REDUCED BY A FACTOR OF 10, AND THE STEP IS RETRIED,
+C UNTIL IT SUCCEEDS OR H REACHES HMIN.
+C-----------------------------------------------------------------------
+ 640   IF (KFLAG .EQ. -10) GO TO 660
+      RH = 0.1D0
+      RH = MAX(HMIN/ABS(H),RH)
+      H = H*RH
+      DO 645 I = 1,NYH
+ 645    Y(I) = YH(I,1)
+      CALL F (NEQ, TN, Y, PAR, SAVF)
+      NFE = NFE + 1
+      IF (ISOPT .EQ. 0) GO TO 649
+      CALL SPRIME (NEQ, Y, YH, NYH, N, NSV, WM, IWM, EWT, SAVF, ACOR,
+     1   ACOR(N+1), PAR, F, JAC, DF, PJAC, PDF)
+      IF (IERSP .LT. 0) GO TO 680
+      DO 646 I = N+1,NYH
+ 646    YH(I,2) = H*YH(I,2)
+ 649  DO 650 I = 1,N
+ 650    YH(I,2) = H*SAVF(I)
+      IPUP = MITER
+      IALTH = 5
+      IF (NQ .EQ. 1) GO TO 200
+      NQ = 1
+      L = 2
+      IRET = 3
+      GO TO 150
+C-----------------------------------------------------------------------
+C ALL RETURNS ARE MADE THROUGH THIS SECTION.  H IS SAVED IN HOLD
+C TO ALLOW THE CALLER TO CHANGE H ON THE NEXT STEP.
+C-----------------------------------------------------------------------
+ 660   KFLAG = -1
+      GO TO 720
+ 670   KFLAG = -2
+      GO TO 720
+ 680   KFLAG = -3
+      GO TO 720
+ 690   RMAX = 10.0D0
+ 700   R = ONE/TESCO(2,NQU)
+      DO 710 I = 1,NYH
+ 710    ACOR(I) = ACOR(I)*R
+ 720   HOLD = H
+      JSTART = 1
+      RETURN
+C----------------------- END OF SUBROUTINE STODE -----------------------
+      END
+      SUBROUTINE CFODE (METH, ELCO, TESCO)
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+      DIMENSION ELCO(13,12), TESCO(3,12)
+C-----------------------------------------------------------------------
+C CFODE IS CALLED BY THE INTEGRATOR ROUTINE TO SET COEFFICIENTS
+C NEEDED THERE.  THE COEFFICIENTS FOR THE CURRENT METHOD, AS
+C GIVEN BY THE VALUE OF METH, ARE SET FOR ALL ORDERS AND SAVED.
+C THE MAXIMUM ORDER ASSUMED HERE IS 12 IF METH = 1 AND 5 IF METH = 2.
+C (A SMALLER VALUE OF THE MAXIMUM ORDER IS ALSO ALLOWED.)
+C CFODE IS CALLED ONCE AT THE BEGINNING OF THE PROBLEM,
+C AND IS NOT CALLED AGAIN UNLESS AND UNTIL METH IS CHANGED.
+C
+C THE ELCO ARRAY CONTAINS THE BASIC METHOD COEFFICIENTS.
+C THE COEFFICIENTS EL(I), 1 .LE. I .LE. NQ+1, FOR THE METHOD OF
+C ORDER NQ ARE STORED IN ELCO(I,NQ).  THEY ARE GIVEN BY A GENETRATING
+C POLYNOMIAL, I.E.,
+C    L(X) = EL(1) + EL(2)*X + ... + EL(NQ+1)*X**NQ.
+C FOR THE IMPLICIT ADAMS METHODS, L(X) IS GIVEN BY
+C    DL/DX = (X+1)*(X+2)*...*(X+NQ-1)/FACTORIAL(NQ-1),    L(-1) = 0.
+C FOR THE BDF METHODS, L(X) IS GIVEN BY
+C    L(X) = (X+1)*(X+2)* ... *(X+NQ)/K,
+C WHERE        K = FACTORIAL(NQ)*(1 + 1/2 + ... + 1/NQ).
+C
+C THE TESCO ARRAY CONTAINS TEST CONSTANTS USED FOR THE
+C LOCAL ERROR TEST AND THE SELECTION OF STEP SIZE AND/OR ORDER.
+C AT ORDER NQ, TESCO(K,NQ) IS USED FOR THE SELECTION OF STEP
+C SIZE AT ORDER NQ - 1 IF K = 1, AT ORDER NQ IF K = 2, AND AT ORDER
+C NQ + 1 IF K = 3.
+C-----------------------------------------------------------------------
+      DIMENSION PC(12)
+      PARAMETER (ONE=1.0D0,ZERO=0.0D0)
+C
+      GO TO (100, 200), METH
+C
+ 100   ELCO(1,1) = ONE
+      ELCO(2,1) = ONE
+      TESCO(1,1) = ZERO
+      TESCO(2,1) = 2.0D0
+      TESCO(1,2) = ONE
+      TESCO(3,12) = ZERO
+      PC(1) = ONE
+      RQFAC = ONE
+      DO 140 NQ = 2,12
+C-----------------------------------------------------------------------
+C THE PC ARRAY WILL CONTAIN THE COEFFICIENTS OF THE POLYNOMIAL
+C    P(X) = (X+1)*(X+2)*...*(X+NQ-1).
+C INITIALLY, P(X) = 1.
+C-----------------------------------------------------------------------
+        RQ1FAC = RQFAC
+        RQFAC = RQFAC/REAL(NQ)
+        NQM1 = NQ - 1
+        FNQM1 = REAL(NQM1)
+        NQP1 = NQ + 1
+C FORM COEFFICIENTS OF P(X)*(X+NQ-1). ----------------------------------
+        PC(NQ) = ZERO
+        DO 110 IB = 1,NQM1
+          I = NQP1 - IB
+ 110      PC(I) = PC(I-1) + FNQM1*PC(I)
+        PC(1) = FNQM1*PC(1)
+C COMPUTE INTEGRAL, -1 TO 0, OF P(X) AND X*P(X). -----------------------
+        PINT = PC(1)
+        XPIN = PC(1)/2.0D0
+        TSIGN = ONE
+        DO 120 I = 2,NQ
+          TSIGN = -TSIGN
+          PINT = PINT + TSIGN*PC(I)/REAL(I)
+ 120      XPIN = XPIN + TSIGN*PC(I)/REAL(I+1)
+C STORE COEFFICIENTS IN ELCO AND TESCO. --------------------------------
+        ELCO(1,NQ) = PINT*RQ1FAC
+        ELCO(2,NQ) = ONE
+        DO 130 I = 2,NQ
+ 130      ELCO(I+1,NQ) = RQ1FAC*PC(I)/REAL(I)
+        AGAMQ = RQFAC*XPIN
+        RAGQ = ONE/AGAMQ
+        TESCO(2,NQ) = RAGQ
+        IF (NQ .LT. 12) TESCO(1,NQP1) = RAGQ*RQFAC/REAL(NQP1)
+        TESCO(3,NQM1) = RAGQ
+ 140    CONTINUE
+      RETURN
+C
+ 200   PC(1) = ONE
+      RQ1FAC = ONE
+      DO 230 NQ = 1,5
+C-----------------------------------------------------------------------
+C THE PC ARRAY WILL CONTAIN THE COEFFICIENTS OF THE POLYNOMIAL
+C    P(X) = (X+1)*(X+2)*...*(X+NQ).
+C INITIALLY, P(X) = 1.
+C-----------------------------------------------------------------------
+        FNQ = REAL(NQ)
+        NQP1 = NQ + 1
+C FORM COEFFICIENTS OF P(X)*(X+NQ). ------------------------------------
+        PC(NQP1) = ZERO
+        DO 210 IB = 1,NQ
+          I = NQ + 2 - IB
+ 210      PC(I) = PC(I-1) + FNQ*PC(I)
+        PC(1) = FNQ*PC(1)
+C STORE COEFFICIENTS IN ELCO AND TESCO. --------------------------------
+        DO 220 I = 1,NQP1
+ 220      ELCO(I,NQ) = PC(I)/PC(2)
+        ELCO(2,NQ) = ONE
+        TESCO(1,NQ) = RQ1FAC
+        TESCO(2,NQ) = REAL(NQP1)/ELCO(1,NQ)
+        TESCO(3,NQ) = REAL(NQ+2)/ELCO(1,NQ)
+        RQ1FAC = RQ1FAC/FNQ
+ 230    CONTINUE
+      RETURN
+C----------------------- END OF SUBROUTINE CFODE -----------------------
+      END
+      SUBROUTINE SOLSY (WM, IWM, X, TEM)
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+      DIMENSION WM(*), IWM(*), X(*), TEM(*)
+      PARAMETER (ZERO=0.0D0,ONE=1.0D0)
+      COMMON /ODE001/ ROWND, ROWNS(173),
+     2   RDUM1(37), EL0, H, RDUM2(6),
+     3   IOWND(14), IOWNS(4),
+     4   IDUM1(4), IERSL, IDUM2(5),
+     5   MITER, IDUM3(4), N, IDUM4(5)
+C-----------------------------------------------------------------------
+C THIS ROUTINE MANAGES THE SOLUTION OF THE LINEAR SYSTEM ARISING FROM
+C A CHORD ITERATION.  IT IS CALLED IF MITER .NE. 0.
+C IF MITER IS 1 OR 2, IT CALLS DGESL TO ACCOMPLISH THIS.
+C IF MITER = 3 IT UPDATES THE COEFFICIENT H*EL0 IN THE DIAGONAL
+C MATRIX, AND THEN COMPUTES THE SOLUTION.
+C IF MITER IS 4 OR 5, IT CALLS DGBSL.
+C COMMUNICATION WITH SOLSY USES THE FOLLOWING VARIABLES..
+C WM   = REAL WORK SPACE CONTAINING THE INVERSE DIAGONAL MATRIX IF
+C        MITER = 3 AND THE LU DECOMPOSITION OF THE MATRIX OTHERWISE.
+C        STORAGE OF MATRIX ELEMENTS STARTS AT WM(3).
+C        WM ALSO CONTAINS THE FOLLOWING MATRIX-RELATED DATA..
+C        WM(1) = SQRT(UROUND) (NOT USED HERE),
+C        WM(2) = HL0, THE PREVIOUS VALUE OF H*EL0, USED IF MITER = 3.
+C IWM  = INTEGER WORK SPACE CONTAINING PIVOT INFORMATION, STARTING AT
+C        IWM(21), IF MITER IS 1, 2, 4, OR 5.  IWM ALSO CONTAINS BAND
+C        PARAMETERS ML = IWM(1) AND MU = IWM(2) IF MITER IS 4 OR 5.
+C X    = THE RIGHT-HAND SIDE VECTOR ON INPUT, AND THE SOLUTION VECTOR
+C        ON OUTPUT, OF LENGTH N.
+C TEM  = VECTOR OF WORK SPACE OF LENGTH N, NOT USED IN THIS VERSION.
+C IERSL = OUTPUT FLAG (IN COMMON).  IERSL = 0 IF NO TROUBLE OCCURRED.
+C        IERSL = 1 IF A SINGULAR MATRIX AROSE WITH MITER = 3.
+C THIS ROUTINE ALSO USES THE COMMON VARIABLES EL0, H, MITER, AND N.
+C-----------------------------------------------------------------------
+      IERSL = 0
+      GO TO (100, 100, 300, 400, 400), MITER
+ 100   CALL DGESL (WM(3), N, N, IWM(21), X, 0)
+      RETURN
+C
+ 300   PHL0 = WM(2)
+      HL0 = H*EL0
+      WM(2) = HL0
+      IF (HL0 .EQ. PHL0) GO TO 330
+      R = HL0/PHL0
+      DO 320 I = 1,N
+        DI = ONE - R*(ONE - ONE/WM(I+2))
+        IF (ABS(DI) .EQ. ZERO) GO TO 390
+ 320    WM(I+2) = ONE/DI
+ 330   DO 340 I = 1,N
+ 340    X(I) = WM(I+2)*X(I)
+      RETURN
+ 390   IERSL = 1
+      RETURN
+C
+ 400   ML = IWM(1)
+      MU = IWM(2)
+      MEBAND = 2*ML + MU + 1
+      CALL DGBSL (WM(3), MEBAND, N, ML, MU, IWM(21), X, 0)
+      RETURN
+C----------------------- END OF SUBROUTINE SOLSY -----------------------
+      END
+      SUBROUTINE EWSET (N, ITOL, RTOL, ATOL, YCUR, EWT)
+C-----------------------------------------------------------------------
+C THIS SUBROUTINE SETS THE ERROR WEIGHT VECTOR EWT ACCORDING TO
+C    EWT(I) = RTOL(I)*ABS(YCUR(I)) + ATOL(I),  I = 1,...,N,
+C WITH THE SUBSCRIPT ON RTOL AND/OR ATOL POSSIBLY REPLACED BY 1 ABOVE,
+C DEPENDING ON THE VALUE OF ITOL.
+C-----------------------------------------------------------------------
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+      DIMENSION RTOL(*), ATOL(*), YCUR(N), EWT(N)
+      RTOLI = RTOL(1)
+      ATOLI = ATOL(1)
+      DO 10 I = 1,N
+        IF (ITOL .GE. 3) RTOLI = RTOL(I)
+        IF (ITOL .EQ. 2 .OR. ITOL .EQ. 4) ATOLI = ATOL(I)
+        EWT(I) = RTOLI*ABS(YCUR(I)) + ATOLI
+ 10     CONTINUE
+      RETURN
+C----------------------- END OF SUBROUTINE EWSET -----------------------
+      END
+      DOUBLE PRECISION FUNCTION VNORM (N, V, W)
+C-----------------------------------------------------------------------
+C THIS FUNCTION ROUTINE COMPUTES THE WEIGHTED ROOT-MEAN-SQUARE NORM
+C OF THE VECTOR OF LENGTH N CONTAINED IN THE ARRAY V, WITH WEIGHTS
+C CONTAINED IN THE ARRAY W OF LENGTH N..
+C  VNORM = SQRT( (1/N) * SUM( V(I)*W(I) )**2 )
+C PROTECTION FOR UNDERFLOW/OVERFLOW IS ACCOMPLISHED USING TWO
+C CONSTANTS WHICH ARE HOPEFULLY APPLICABLE FOR ALL MACHINES.
+C THESE ARE:
+C     CUTLO = maximum of SQRT(U/EPS)  over all known machines
+C     CUTHI = minimum of SQRT(Z)      over all known machines
+C WHERE
+C     EPS = smallest number s.t. EPS + 1 .GT. 1
+C     U   = smallest positive number (underflow limit)
+C     Z   = largest number (overflow limit)
+C
+C DETAILS OF THE ALGORITHM AND OF VALUES OF CUTLO AND CUTHI ARE
+C FOUND IN THE BLAS ROUTINE SNRM2 (SEE ALSO ALGORITHM 539, TRANS.
+C MATH. SOFTWARE, VOL. 5 NO. 3, 1979, 308-323.
+C FOR SINGLE PRECISION, THE FOLLOWING VALUES SHOULD BE UNIVERSAL:
+C     DATA CUTLO,CUTHI /4.441E-16,1.304E19/
+C FOR DOUBLE PRECISION, USE
+C     DATA CUTLO,CUTHI /8.232D-11,1.304D19/
+C
+C-----------------------------------------------------------------------
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+      INTEGER NEXT,I,J,N
+      DIMENSION V(N),W(N)
+      DATA CUTLO,CUTHI /8.232D-11,1.304D19/
+      DATA ZERO,ONE/0.0D0,1.0D0/
+C  BLAS ALGORITHM
+      NEXT = 1
+      SUM = ZERO
+      I = 1
+20    SX = V(I)*W(I)
+      GO TO (30,40,70,80),NEXT
+30    IF (ABS(SX).GT.CUTLO) GO TO 110
+      NEXT = 2
+      XMAX = ZERO
+40    IF (SX.EQ.ZERO) GO TO 130
+      IF (ABS(SX).GT.CUTLO) GO TO 110
+      NEXT = 3
+      GO TO 60
+50    I=J
+      NEXT = 4
+      SUM = (SUM/SX)/SX
+60    XMAX = ABS(SX)
+      GO TO 90
+70    IF(ABS(SX).GT.CUTLO) GO TO 100
+80    IF(ABS(SX).LE.XMAX) GO TO 90
+      SUM = ONE + SUM * (XMAX/SX)**2
+      XMAX = ABS(SX)
+      GO TO 130
+90    SUM = SUM + (SX/XMAX)**2
+      GO TO 130
+100   SUM = (SUM*XMAX)*XMAX
+110   HITEST = CUTHI/REAL(N)
+      DO 120 J = I,N
+         SX = V(J)*W(J)
+         IF(ABS(SX).GE.HITEST) GO TO 50
+         SUM = SUM + SX**2
+120   CONTINUE
+      VNORM = SQRT(SUM)
+      GO TO 140
+130   CONTINUE
+      I = I + 1
+      IF (I.LE.N) GO TO 20
+      VNORM = XMAX * SQRT(SUM)
+140   CONTINUE
+      RETURN
+C----------------------- END OF FUNCTION VNORM -------------------------
+      END
+      SUBROUTINE SVCOM (RSAV, ISAV)
+C-----------------------------------------------------------------------
+C THIS ROUTINE STORES IN RSAV AND ISAV THE CONTENTS OF COMMON BLOCKS
+C ODE001, ODE002 AND EH0001, WHICH ARE USED INTERNALLY IN THE ODESSA
+C PACKAGE.
+C RSAV = REAL ARRAY OF LENGTH 222 OR MORE.
+C ISAV = INTEGER ARRAY OF LENGTH 52 OR MORE.
+C-----------------------------------------------------------------------
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+      DIMENSION RSAV(*), ISAV(*)
+      COMMON /ODE001/ RODE1(219), IODE1(39)
+      COMMON /ODE002/ RODE2(3), IODE2(11)
+      COMMON /EH0001/ IEH(2)
+      DATA LRODE1/219/, LIODE1/39/, LRODE2/3/, LIODE2/11/
+C
+      DO 10 I = 1,LRODE1
+ 10     RSAV(I) = RODE1(I)
+      DO 20 I = 1,LRODE2
+        J = LRODE1 + I
+ 20     RSAV(J) = RODE2(I)
+      DO 30 I = 1,LIODE1
+ 30     ISAV(I) = IODE1(I)
+      DO 40 I = 1,LIODE2
+        J = LIODE1 + I
+ 40     ISAV(J) = IODE2(I)
+      ISAV(LIODE1+LIODE2+1) = IEH(1)
+      ISAV(LIODE1+LIODE2+2) = IEH(2)
+      RETURN
+C----------------------- END OF SUBROUTINE SVCOM -----------------------
+      END
+      SUBROUTINE RSCOM (RSAV, ISAV)
+C-----------------------------------------------------------------------
+C THIS ROUTINE RESTORES FROM RSAV AND ISAV THE CONTENTS OF COMMON BLOCKS
+C ODE001, ODE002 AND EH0001, WHICH ARE USED INTERNALLY IN THE ODESSSA
+C PACKAGE.  THIS PRESUMES THAT RSAV AND ISAV WERE LOADED BY MEANS
+C OF SUBROUTINE SVCOM OR THE EQUIVALENT.
+C-----------------------------------------------------------------------
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+      DIMENSION RSAV(*), ISAV(*)
+      COMMON /ODE001/ RODE1(219), IODE1(39)
+      COMMON /ODE002/ RODE2(3), IODE2(11)
+      COMMON /EH0001/ IEH(2)
+      DATA LRODE1/219/, LIODE1/39/, LRODE2/3/, LIODE2/11/
+C
+      DO 10 I = 1,LRODE1
+ 10     RODE1(I) = RSAV(I)
+      DO 20 I = 1,LRODE2
+        J = LRODE1 + I
+ 20     RODE2(I) = RSAV(J)
+      DO 30 I = 1,LIODE1
+ 30     IODE1(I) = ISAV(I)
+      DO 40 I = 1,LODE2
+        J = LIODE1 + I
+ 40     IODE2(I) = ISAV(J)
+      IEH(1) = ISAV(LIODE1+LIODE2+1)
+      IEH(2) = ISAV(LIODE1+LIODE2+2)
+      RETURN
+C----------------------- END OF SUBROUTINE RSCOM -----------------------
+      END
+      SUBROUTINE DGEFA(A,LDA,N,IPVT,INFO)
+      INTEGER LDA,N,IPVT(*),INFO
+      DOUBLE PRECISION A(LDA,*)
+C
+C    DGEFA FACTORS A DOUBLE PRECISION MATRIX BY GAUSSIAN ELIMINATION.
+C
+C    DGEFA IS USUALLY CALLED BY DGECO, BUT IT CAN BE CALLED
+C    DIRECTLY WITH A SAVING IN TIME IF  RCOND  IS NOT NEEDED.
+C    (TIME FOR DGECO) = (1 + 9/N)*(TIME FOR DGEFA) .
+C
+C    ON ENTRY
+C
+C       A       DOUBLE PRECISION(LDA, N)
+C               THE MATRIX TO BE FACTORED.
+C
+C       LDA     INTEGER
+C               THE LEADING DIMENSION OF THE ARRAY  A .
+C
+C       N       INTEGER
+C               THE ORDER OF THE MATRIX  A .
+C
+C    ON RETURN
+C
+C       A       AN UPPER TRIANGULAR MATRIX AND THE MULTIPLIERS
+C               WHICH WERE USED TO OBTAIN IT.
+C               THE FACTORIZATION CAN BE WRITTEN  A = L*U  WHERE
+C               L  IS A PRODUCT OF PERMUTATION AND UNIT LOWER
+C               TRIANGULAR MATRICES AND  U  IS UPPER TRIANGULAR.
+C
+C       IPVT    INTEGER(N)
+C               AN INTEGER VECTOR OF PIVOT INDICES.
+C
+C       INFO    INTEGER
+C               = 0  NORMAL VALUE.
+C               = K  IF  U(K,K) .EQ. 0.0 .  THIS IS NOT AN ERROR
+C                    CONDITION FOR THIS SUBROUTINE, BUT IT DOES
+C                    INDICATE THAT DGESL OR DGEDI WILL DIVIDE BY ZERO
+C                    IF CALLED.  USE  RCOND  IN DGECO FOR A RELIABLE
+C                    INDICATION OF SINGULARITY.
+C
+C    LINPACK. THIS VERSION DATED 08/14/78 .
+C    CLEVE MOLER, UNIVERSITY OF NEW MEXICO, ARGONNE NATIONAL LAB.
+C
+C    SUBROUTINES AND FUNCTIONS
+C
+C    BLAS DAXPY,DSCAL,IDAMAX
+C
+C    INTERNAL VARIABLES
+C
+      DOUBLE PRECISION T
+      INTEGER IDAMAX,J,K,KP1,L,NM1
+C
+C
+C     GAUSSIAN ELIMINATION WITH PARTIAL PIVOTING
+C
+      INFO = 0
+      NM1 = N - 1
+      IF (NM1 .LT. 1) GO TO 70
+      DO 60 K = 1, NM1
+         KP1 = K + 1
+C
+C        FIND L = PIVOT INDEX
+C
+         L = IDAMAX(N-K+1,A(K,K),1) + K - 1
+         IPVT(K) = L
+C
+C        ZERO PIVOT IMPLIES THIS COLUMN ALREADY TRIANGULARIZED
+C
+         IF (A(L,K) .EQ. 0.0D0) GO TO 40
+C
+C           INTERCHANGE IF NECESSARY
+C
+            IF (L .EQ. K) GO TO 10
+               T = A(L,K)
+               A(L,K) = A(K,K)
+               A(K,K) = T
+  10        CONTINUE
+C
+C           COMPUTE MULTIPLIERS
+C
+            T  = -1.0D0/A(K,K)
+            CALL DSCAL(N-K,T,A(K+1,K),1)
+C
+C           ROW ELIMINATION WITH COLUMN INDEXING
+C
+            DO 30 J = KP1, N
+               T = A(L,J)
+               IF (L .EQ. K) GO TO 20
+                  A(L,J) = A(K,J)
+                  A(K,J) = T
+  20           CONTINUE
+               CALL DAXPY(N-K,T,A(K+1,K),1,A(K+1,J),1)
+  30        CONTINUE
+         GO TO 50
+  40     CONTINUE
+            INFO = K
+  50     CONTINUE
+  60  CONTINUE
+  70  CONTINUE
+      IPVT(N) = N
+      IF (A(N,N) .EQ. 0.0D0) INFO = N
+      RETURN
+      END
+      SUBROUTINE DGESL(A,LDA,N,IPVT,B,JOB)
+      INTEGER LDA,N,IPVT(*),JOB
+      DOUBLE PRECISION A(LDA,*),B(*)
+C
+C     DGESL KppSolveS THE DOUBLE PRECISION SYSTEM
+C     A * X = B  OR  TRANS(A) * X = B
+C    USING THE FACTORS COMPUTED BY DGECO OR DGEFA.
+C
+C    ON ENTRY
+C
+C       A       DOUBLE PRECISION(LDA, N)
+C               THE OUTPUT FROM DGECO OR DGEFA.
+C
+C       LDA     INTEGER
+C               THE LEADING DIMENSION OF THE ARRAY  A .
+C
+C       N       INTEGER
+C               THE ORDER OF THE MATRIX  A .
+C
+C       IPVT    INTEGER(N)
+C               THE PIVOT VECTOR FROM DGECO OR DGEFA.
+C
+C       B       DOUBLE PRECISION(N)
+C               THE RIGHT HAND SIDE VECTOR.
+C
+C       JOB     INTEGER
+C               = 0         TO KppSolve  A*X = B ,
+C               = NONZERO   TO KppSolve  TRANS(A)*X = B  WHERE
+C                           TRANS(A)  IS THE TRANSPOSE.
+C
+C    ON RETURN
+C
+C       B       THE SOLUTION VECTOR  X .
+C
+C    ERROR CONDITION
+C
+C       A DIVISION BY ZERO WILL OCCUR IF THE INPUT FACTOR CONTAINS A
+C       ZERO ON THE DIAGONAL.  TECHNICALLY THIS INDICATES SINGULARITY
+C       BUT IT IS OFTEN CAUSED BY IMPROPER ARGUMENTS OR IMPROPER
+C       SETTING OF LDA .  IT WILL NOT OCCUR IF THE SUBROUTINES ARE
+C       CALLED CORRECTLY AND IF DGECO HAS SET RCOND .GT. 0.0
+C       OR DGEFA HAS SET INFO .EQ. 0 .
+C
+C    TO COMPUTE  INVERSE(A) * C  WHERE  C  IS A MATRIX
+C    WITH  P  COLUMNS
+C          CALL DGECO(A,LDA,N,IPVT,RCOND,Z)
+C          IF (RCOND IS TOO SMALL) GO TO ...
+C          DO 10 J = 1, P
+C             CALL DGESL(A,LDA,N,IPVT,C(1,J),0)
+C       10 CONTINUE
+C
+C    LINPACK. THIS VERSION DATED 08/14/78 .
+C    CLEVE MOLER, UNIVERSITY OF NEW MEXICO, ARGONNE NATIONAL LAB.
+C
+C    SUBROUTINES AND FUNCTIONS
+C
+C    BLAS DAXPY,DDOT
+C
+C    INTERNAL VARIABLES
+C
+      DOUBLE PRECISION DDOT,T
+      INTEGER K,KB,L,NM1
+C
+      NM1 = N - 1
+      IF (JOB .NE. 0) GO TO 50
+C
+C        JOB = 0 , KppSolve  A * X = B
+C        FIRST KppSolve  L*Y = B
+C
+         IF (NM1 .LT. 1) GO TO 30
+         DO 20 K = 1, NM1
+            L = IPVT(K)
+            T = B(L)
+            IF (L .EQ. K) GO TO 10
+               B(L) = B(K)
+               B(K) = T
+  10        CONTINUE
+            CALL DAXPY(N-K,T,A(K+1,K),1,B(K+1),1)
+  20     CONTINUE
+  30     CONTINUE
+C
+C        NOW KppSolve  U*X = Y
+C
+         DO 40 KB = 1, N
+            K = N + 1 - KB
+            B(K) = B(K)/A(K,K)
+            T = -B(K)
+            CALL DAXPY(K-1,T,A(1,K),1,B(1),1)
+  40     CONTINUE
+      GO TO 100
+  50  CONTINUE
+C
+C        JOB = NONZERO, KppSolve  TRANS(A) * X = B
+C        FIRST KppSolve  TRANS(U)*Y = B
+C
+         DO 60 K = 1, N
+            T = DDOT(K-1,A(1,K),1,B(1),1)
+            B(K) = (B(K) - T)/A(K,K)
+  60     CONTINUE
+C
+C        NOW KppSolve TRANS(L)*X = Y
+C
+         IF (NM1 .LT. 1) GO TO 90
+         DO 80 KB = 1, NM1
+            K = N - KB
+            B(K) = B(K) + DDOT(N-K,A(K+1,K),1,B(K+1),1)
+            L = IPVT(K)
+            IF (L .EQ. K) GO TO 70
+               T = B(L)
+               B(L) = B(K)
+               B(K) = T
+  70        CONTINUE
+  80     CONTINUE
+  90     CONTINUE
+  100  CONTINUE
+      RETURN
+      END
+      SUBROUTINE DGBFA(ABD,LDA,N,ML,MU,IPVT,INFO)
+      INTEGER LDA,N,ML,MU,IPVT(*),INFO
+      DOUBLE PRECISION ABD(LDA,*)
+C
+C    DGBFA FACTORS A DOUBLE PRECISION BAND MATRIX BY ELIMINATION.
+C
+C    DGBFA IS USUALLY CALLED BY DGBCO, BUT IT CAN BE CALLED
+C    DIRECTLY WITH A SAVING IN TIME IF  RCOND  IS NOT NEEDED.
+C
+C    ON ENTRY
+C
+C       ABD     DOUBLE PRECISION(LDA, N)
+C               CONTAINS THE MATRIX IN BAND STORAGE.  THE COLUMNS
+C               OF THE MATRIX ARE STORED IN THE COLUMNS OF  ABD  AND
+C               THE DIAGONALS OF THE MATRIX ARE STORED IN ROWS
+C               ML+1 THROUGH 2*ML+MU+1 OF  ABD .
+C               SEE THE COMMENTS BELOW FOR DETAILS.
+C
+C       LDA     INTEGER
+C               THE LEADING DIMENSION OF THE ARRAY  ABD .
+C               LDA MUST BE .GE. 2*ML + MU + 1 .
+C
+C       N       INTEGER
+C               THE ORDER OF THE ORIGINAL MATRIX.
+C
+C       ML      INTEGER
+C               NUMBER OF DIAGONALS BELOW THE MAIN DIAGONAL.
+C               0 .LE. ML .LT. N .
+C
+C       MU      INTEGER
+C               NUMBER OF DIAGONALS ABOVE THE MAIN DIAGONAL.
+C               0 .LE. MU .LT. N .
+C               MORE EFFICIENT IF  ML .LE. MU .
+C    ON RETURN
+C
+C       ABD     AN UPPER TRIANGULAR MATRIX IN BAND STORAGE AND
+C               THE MULTIPLIERS WHICH WERE USED TO OBTAIN IT.
+C               THE FACTORIZATION CAN BE WRITTEN  A = L*U  WHERE
+C               L  IS A PRODUCT OF PERMUTATION AND UNIT LOWER
+C               TRIANGULAR MATRICES AND  U  IS UPPER TRIANGULAR.
+C
+C       IPVT    INTEGER(N)
+C               AN INTEGER VECTOR OF PIVOT INDICES.
+C
+C       INFO    INTEGER
+C               = 0  NORMAL VALUE.
+C               = K  IF  U(K,K) .EQ. 0.0 .  THIS IS NOT AN ERROR
+C                    CONDITION FOR THIS SUBROUTINE, BUT IT DOES
+C                    INDICATE THAT DGBSL WILL DIVIDE BY ZERO IF
+C                    CALLED.  USE  RCOND  IN DGBCO FOR A RELIABLE
+C                    INDICATION OF SINGULARITY.
+C
+C    BAND STORAGE
+C
+C          IF  A  IS A BAND MATRIX, THE FOLLOWING PROGRAM SEGMENT
+C          WILL SET UP THE INPUT.
+C
+C                  ML = (BAND WIDTH BELOW THE DIAGONAL)
+C                  MU = (BAND WIDTH ABOVE THE DIAGONAL)
+C                  M = ML + MU + 1
+C                  DO 20 J = 1, N
+C                     I1 = MAX0(1, J-MU)
+C                     I2 = MIN0(N, J+ML)
+C                     DO 10 I = I1, I2
+C                        K = I - J + M
+C                        ABD(K,J) = A(I,J)
+C               10    CONTINUE
+C               20 CONTINUE
+C
+C          THIS USES ROWS  ML+1  THROUGH  2*ML+MU+1  OF  ABD .
+C          IN ADDITION, THE FIRST  ML  ROWS IN  ABD  ARE USED FOR
+C          ELEMENTS GENERATED DURING THE TRIANGULARIZATION.
+C          THE TOTAL NUMBER OF ROWS NEEDED IN  ABD  IS  2*ML+MU+1 .
+C          THE  ML+MU BY ML+MU  UPPER LEFT TRIANGLE AND THE
+C          ML BY ML  LOWER RIGHT TRIANGLE ARE NOT REFERENCED.
+C
+C    LINPACK. THIS VERSION DATED 08/14/78 .
+C    CLEVE MOLER, UNIVERSITY OF NEW MEXICO, ARGONNE NATIONAL LAB.
+C
+C    SUBROUTINES AND FUNCTIONS
+C
+C    BLAS DAXPY,DSCAL,IDAMAX
+C    FORTRAN MAX0,MIN0
+C
+C    INTERNAL VARIABLES
+C
+      DOUBLE PRECISION T
+      INTEGER I,IDAMAX,I0,J,JU,JZ,J0,J1,K,KP1,L,LM,M,MM,NM1
+C
+C
+      M = ML + MU + 1
+      INFO = 0
+C
+C     ZERO INITIAL FILL-IN COLUMNS
+C
+      J0 = MU + 2
+      J1 = MIN0(N,M) - 1
+      IF (J1 .LT. J0) GO TO 30
+      DO 20 JZ = J0, J1
+         I0 = M + 1 - JZ
+         DO 10 I = I0, ML
+            ABD(I,JZ) = 0.0D0
+  10     CONTINUE
+  20  CONTINUE
+  30  CONTINUE
+      JZ = J1
+      JU = 0
+C
+C     GAUSSIAN ELIMINATION WITH PARTIAL PIVOTING
+C
+      NM1 = N - 1
+      IF (NM1 .LT. 1) GO TO 130
+      DO 120 K = 1, NM1
+         KP1 = K + 1
+C
+C        ZERO NEXT FILL-IN COLUMN
+C
+         JZ = JZ + 1
+         IF (JZ .GT. N) GO TO 50
+         IF (ML .LT. 1) GO TO 50
+            DO 40 I = 1, ML
+               ABD(I,JZ) = 0.0D0
+  40        CONTINUE
+  50     CONTINUE
+C
+C        FIND L = PIVOT INDEX
+C
+         LM = MIN0(ML,N-K)
+         L = IDAMAX(LM+1,ABD(M,K),1) + M - 1
+         IPVT(K) = L + K - M
+C
+C        ZERO PIVOT IMPLIES THIS COLUMN ALREADY TRIANGULARIZED
+C
+         IF (ABD(L,K) .EQ. 0.0D0) GO TO 100
+C
+C           INTERCHANGE IF NECESSARY
+C
+            IF (L .EQ. M) GO TO 60
+               T = ABD(L,K)
+               ABD(L,K) = ABD(M,K)
+               ABD(M,K) = T
+  60        CONTINUE
+C
+C           COMPUTE MULTIPLIERS
+C
+            T = -1.0D0/ABD(M,K)
+            CALL DSCAL(LM,T,ABD(M+1,K),1)
+C
+C           ROW ELIMINATION WITH COLUMN INDEXING
+C
+            JU = MIN0(MAX0(JU,MU+IPVT(K)),N)
+            MM = M
+            IF (JU .LT. KP1) GO TO 90
+            DO 80 J = KP1, JU
+               L = L - 1
+               MM = MM - 1
+               T = ABD(L,J)
+               IF (L .EQ. MM) GO TO 70
+                  ABD(L,J) = ABD(MM,J)
+                  ABD(MM,J) = T
+  70           CONTINUE
+               CALL DAXPY(LM,T,ABD(M+1,K),1,ABD(MM+1,J),1)
+  80        CONTINUE
+  90        CONTINUE
+         GO TO 110
+  100    CONTINUE
+            INFO = K
+  110    CONTINUE
+  120  CONTINUE
+  130  CONTINUE
+      IPVT(N) = N
+      IF (ABD(M,N) .EQ. 0.0D0) INFO = N
+      RETURN
+      END
+      SUBROUTINE DGBSL(ABD,LDA,N,ML,MU,IPVT,B,JOB)
+      INTEGER LDA,N,ML,MU,IPVT(*),JOB
+      DOUBLE PRECISION ABD(LDA,*),B(*)
+C
+C    DGBSL KppSolveS THE DOUBLE PRECISION BAND SYSTEM
+C    A * X = B  OR  TRANS(A) * X = B
+C    USING THE FACTORS COMPUTED BY DGBCO OR DGBFA.
+C
+C    ON ENTRY
+C
+C       ABD     DOUBLE PRECISION(LDA, N)
+C               THE OUTPUT FROM DGBCO OR DGBFA.
+C
+C       LDA     INTEGER
+C               THE LEADING DIMENSION OF THE ARRAY  ABD .
+C
+C       N       INTEGER
+C               THE ORDER OF THE ORIGINAL MATRIX.
+C
+C       ML      INTEGER
+C               NUMBER OF DIAGONALS BELOW THE MAIN DIAGONAL.
+C
+C       MU      INTEGER
+C               NUMBER OF DIAGONALS ABOVE THE MAIN DIAGONAL.
+C
+C       IPVT    INTEGER(N)
+C               THE PIVOT VECTOR FROM DGBCO OR DGBFA.
+C
+C       B       DOUBLE PRECISION(N)
+C               THE RIGHT HAND SIDE VECTOR.
+C
+C       JOB     INTEGER
+C               = 0         TO KppSolve  A*X = B ,
+C               = NONZERO   TO KppSolve  TRANS(A)*X = B , WHERE
+C                           TRANS(A)  IS THE TRANSPOSE.
+C
+C    ON RETURN
+C
+C       B       THE SOLUTION VECTOR  X .
+C
+C    ERROR CONDITION
+C
+C       A DIVISION BY ZERO WILL OCCUR IF THE INPUT FACTOR CONTAINS A
+C       ZERO ON THE DIAGONAL.  TECHNICALLY THIS INDICATES SINGULARITY
+C       BUT IT IS OFTEN CAUSED BY IMPROPER ARGUMENTS OR IMPROPER
+C       SETTING OF LDA .  IT WILL NOT OCCUR IF THE SUBROUTINES ARE
+C       CALLED CORRECTLY AND IF DGBCO HAS SET RCOND .GT. 0.0
+C       OR DGBFA HAS SET INFO .EQ. 0 .
+C
+C    TO COMPUTE  INVERSE(A) * C  WHERE  C  IS A MATRIX
+C    WITH  P  COLUMNS
+C          CALL DGBCO(ABD,LDA,N,ML,MU,IPVT,RCOND,Z)
+C          IF (RCOND IS TOO SMALL) GO TO ...
+C          DO 10 J = 1, P
+C             CALL DGBSL(ABD,LDA,N,ML,MU,IPVT,C(1,J),0)
+C       10 CONTINUE
+C
+C    LINPACK. THIS VERSION DATED 08/14/78 .
+C    CLEVE MOLER, UNIVERSITY OF NEW MEXICO, ARGONNE NATIONAL LAB.
+C
+C    SUBROUTINES AND FUNCTIONS
+C
+C    BLAS DAXPY,DDOT
+C    FORTRAN MIN0
+C
+C    INTERNAL VARIABLES
+C
+      DOUBLE PRECISION DDOT,T
+      INTEGER K,KB,L,LA,LB,LM,M,NM1
+C
+      M = MU + ML + 1
+      NM1 = N - 1
+      IF (JOB .NE. 0) GO TO 50
+C
+C        JOB = 0 , KppSolve  A * X = B
+C        FIRST KppSolve L*Y = B
+C
+         IF (ML .EQ. 0) GO TO 30
+         IF (NM1 .LT. 1) GO TO 30
+            DO 20 K = 1, NM1
+               LM = MIN0(ML,N-K)
+               L = IPVT(K)
+               T = B(L)
+               IF (L .EQ. K) GO TO 10
+                  B(L) = B(K)
+                  B(K) = T
+  10           CONTINUE
+               CALL DAXPY(LM,T,ABD(M+1,K),1,B(K+1),1)
+  20        CONTINUE
+  30     CONTINUE
+C
+C        NOW KppSolve  U*X = Y
+C
+         DO 40 KB = 1, N
+            K = N + 1 - KB
+            B(K) = B(K)/ABD(M,K)
+            LM = MIN0(K,M) - 1
+            LA = M - LM
+            LB = K - LM
+            T = -B(K)
+            CALL DAXPY(LM,T,ABD(LA,K),1,B(LB),1)
+  40     CONTINUE
+      GO TO 100
+  50  CONTINUE
+C
+C        JOB = NONZERO, KppSolve  TRANS(A) * X = B
+C        FIRST KppSolve  TRANS(U)*Y = B
+C
+         DO 60 K = 1, N
+            LM = MIN0(K,M) - 1
+            LA = M - LM
+            LB = K - LM
+            T = DDOT(LM,ABD(LA,K),1,B(LB),1)
+            B(K) = (B(K) - T)/ABD(M,K)
+  60     CONTINUE
+C
+C        NOW KppSolve TRANS(L)*X = Y
+C
+         IF (ML .EQ. 0) GO TO 90
+         IF (NM1 .LT. 1) GO TO 90
+            DO 80 KB = 1, NM1
+               K = N - KB
+               LM = MIN0(ML,N-K)
+               B(K) = B(K) + DDOT(LM,ABD(M+1,K),1,B(K+1),1)
+               L = IPVT(K)
+               IF (L .EQ. K) GO TO 70
+                  T = B(L)
+                  B(L) = B(K)
+                  B(K) = T
+  70           CONTINUE
+  80        CONTINUE
+  90     CONTINUE
+  100  CONTINUE
+      RETURN
+      END
+      SUBROUTINE DAXPY(N,DA,DX,INCX,DY,INCY)
+C
+C     CONSTANT TIMES A VECTOR PLUS A VECTOR.
+C     USES UNROLLED LOOPS FOR INCREMENTS EQUAL TO ONE.
+C     JACK DONGARRA, LINPACK, 3/11/78.
+C
+      DOUBLE PRECISION DX(*),DY(*),DA
+      INTEGER I,INCX,INCY,IX,IY,M,MP1,N
+C
+      IF(N.LE.0)RETURN
+      IF (DA .EQ. 0.0D0) RETURN
+      IF(INCX.EQ.1.AND.INCY.EQ.1)GO TO 20
+C
+C        CODE FOR UNEQUAL INCREMENTS OR EQUAL INCREMENTS
+C          NOT EQUAL TO 1
+C
+      IX = 1
+      IY = 1
+      IF(INCX.LT.0)IX = (-N+1)*INCX + 1
+      IF(INCY.LT.0)IY = (-N+1)*INCY + 1
+      DO 10 I = 1,N
+        DY(IY) = DY(IY) + DA*DX(IX)
+        IX = IX + INCX
+        IY = IY + INCY
+  10  CONTINUE
+      RETURN
+C
+C        CODE FOR BOTH INCREMENTS EQUAL TO 1
+C
+C
+C        CLEAN-UP LOOP
+C
+  20  M = MOD(N,4)
+      IF( M .EQ. 0 ) GO TO 40
+      DO 30 I = 1,M
+        DY(I) = DY(I) + DA*DX(I)
+  30  CONTINUE
+      IF( N .LT. 4 ) RETURN
+  40  MP1 = M + 1
+      DO 50 I = MP1,N,4
+        DY(I) = DY(I) + DA*DX(I)
+        DY(I + 1) = DY(I + 1) + DA*DX(I + 1)
+        DY(I + 2) = DY(I + 2) + DA*DX(I + 2)
+        DY(I + 3) = DY(I + 3) + DA*DX(I + 3)
+  50  CONTINUE
+      RETURN
+      END
+      SUBROUTINE DSCAL(N,DA,DX,INCX)
+C
+C     SCALES A VECTOR BY A CONSTANT.
+C     USES UNROLLED LOOPS FOR INCREMENT EQUAL TO ONE.
+C     JACK DONGARRA, LINPACK, 3/11/78.
+C
+      DOUBLE PRECISION DA,DX(*)
+      INTEGER I,INCX,M,MP1,N,NINCX
+C
+      IF(N.LE.0)RETURN
+      IF(INCX.EQ.1)GO TO 20
+C
+C        CODE FOR INCREMENT NOT EQUAL TO 1
+*
+C
+      NINCX = N*INCX
+      DO 10 I = 1,NINCX,INCX
+        DX(I) = DA*DX(I)
+  10  CONTINUE
+      RETURN
+C
+C        CODE FOR INCREMENT EQUAL TO 1
+C
+C
+C        CLEAN-UP LOOP
+C
+  20  M = MOD(N,5)
+      IF( M .EQ. 0 ) GO TO 40
+      DO 30 I = 1,M
+        DX(I) = DA*DX(I)
+  30  CONTINUE
+      IF( N .LT. 5 ) RETURN
+  40  MP1 = M + 1
+      DO 50 I = MP1,N,5
+        DX(I) = DA*DX(I)
+        DX(I + 1) = DA*DX(I + 1)
+        DX(I + 2) = DA*DX(I + 2)
+        DX(I + 3) = DA*DX(I + 3)
+        DX(I + 4) = DA*DX(I + 4)
+  50  CONTINUE
+      RETURN
+      END
+      DOUBLE PRECISION FUNCTION DDOT(N,DX,INCX,DY,INCY)
+C
+C     FORMS THE DOT PRODUCT OF TWO VECTORS.
+C     USES UNROLLED LOOPS FOR INCREMENTS EQUAL TO ONE.
+C     JACK DONGARRA, LINPACK, 3/11/78.
+C
+      DOUBLE PRECISION DX(*),DY(*),DTEMP
+      INTEGER I,INCX,INCY,IX,IY,M,MP1,N
+C
+      DDOT = 0.0D0
+      DTEMP = 0.0D0
+      IF(N.LE.0)RETURN
+      IF(INCX.EQ.1.AND.INCY.EQ.1)GO TO 20
+C
+C        CODE FOR UNEQUAL INCREMENTS OR EQUAL INCREMENTS
+C          NOT EQUAL TO 1
+C
+      IX = 1
+      IY = 1
+      IF(INCX.LT.0)IX = (-N+1)*INCX + 1
+      IF(INCY.LT.0)IY = (-N+1)*INCY + 1
+      DO 10 I = 1,N
+        DTEMP = DTEMP + DX(IX)*DY(IY)
+        IX = IX + INCX
+        IY = IY + INCY
+  10  CONTINUE
+      DDOT = DTEMP
+      RETURN
+C
+C        CODE FOR BOTH INCREMENTS EQUAL TO 1
+C
+C
+C        CLEAN-UP LOOP
+C
+  20  M = MOD(N,5)
+      IF( M .EQ. 0 ) GO TO 40
+      DO 30 I = 1,M
+        DTEMP = DTEMP + DX(I)*DY(I)
+  30  CONTINUE
+      IF( N .LT. 5 ) GO TO 60
+  40  MP1 = M + 1
+      DO 50 I = MP1,N,5
+        DTEMP = DTEMP + DX(I)*DY(I) + DX(I + 1)*DY(I + 1) +
+     *   DX(I + 2)*DY(I + 2) + DX(I + 3)*DY(I + 3) + DX(I + 4)*DY(I + 4)
+  50  CONTINUE
+  60  DDOT = DTEMP
+      RETURN
+      END
+      INTEGER FUNCTION IDAMAX(N,DX,INCX)
+C
+C     FINDS THE INDEX OF ELEMENT HAVING MAX. ABSOLUTE VALUE.
+C     JACK DONGARRA, LINPACK, 3/11/78.
+C
+      DOUBLE PRECISION DX(*),DMAX
+      INTEGER I,INCX,IX,N
+C
+      IDAMAX = 0
+      IF( N .LT. 1 ) RETURN
+      IDAMAX = 1
+      IF(N.EQ.1)RETURN
+      IF(INCX.EQ.1)GO TO 20
+C
+C        CODE FOR INCREMENT NOT EQUAL TO 1
+C
+      IX = 1
+      DMAX = DABS(DX(1))
+      IX = IX + INCX
+      DO 10 I = 2,N
+         IF(DABS(DX(IX)).LE.DMAX) GO TO 5
+         IDAMAX = I
+         DMAX = DABS(DX(IX))
+   5     IX = IX + INCX
+  10  CONTINUE
+      RETURN
+C
+C        CODE FOR INCREMENT EQUAL TO 1
+C
+  20  DMAX = DABS(DX(1))
+      DO 30 I = 2,N
+         IF(DABS(DX(I)).LE.DMAX) GO TO 30
+         IDAMAX = I
+         DMAX = DABS(DX(I))
+  30  CONTINUE
+      RETURN
+      END
+      DOUBLE PRECISION FUNCTION D1MACH (IDUM)
+      INTEGER IDUM
+C-----------------------------------------------------------------------
+C THIS ROUTINE COMPUTES THE UNIT ROUNDOFF OF THE MACHINE IN DOUBLE
+C PRECISION.  THIS IS DEFINED AS THE SMALLEST POSITIVE MACHINE NUMBER
+C U SUCH THAT  1.0D0 + U .NE. 1.0D0 (IN DOUBLE PRECISION).
+C-----------------------------------------------------------------------
+      DOUBLE PRECISION U, COMP
+      U = 1.0D0
+ 10   U = U*0.5D0
+      COMP = 1.0D0 + U
+      IF (COMP .NE. 1.0D0) GO TO 10
+      D1MACH = U*2.0D0
+      RETURN
+C----------------------- END OF FUNCTION D1MACH ------------------------
+      END
+      SUBROUTINE XERR (MSG, NERR, IERT, NI, I1, I2, NR, R1, R2)
+      INTEGER NERR, IERT, NI, I1, I2, NR,
+     1   LUN, LUNIT, MESFLG
+      DOUBLE PRECISION R1, R2
+      CHARACTER*(*) MSG
+C-------------------------------------------------------------------
+C
+C ALL ARGUMENTS ARE INPUT ARGUMENTS.
+C
+C MSG   = THE MESSAGE (CHARACTER VARIABLE)
+C NERR  = THE ERROR NUMBER (NOT USED).
+C IERT  = THE ERROR TYPE..
+C         1 MEANS RECOVERABLE (CONTROL RETURNS TO CALLER).
+C         2 MEANS FATAL (RUN IS ABORTED--SEE NOTE BELOW).
+C NI    = NUMBER OF INTEGERS (0, 1, OR 2) TO BE PRINTED WITH MESSAGE.
+C I1,I2  = INTEGERS TO BE PRINTED, DEPENDING ON NI.
+C NR    = NUMBER OF REALS (0, 1, OR 2) TO BE PRINTED WITH MESSAGE.
+C R1,R2  = REALS TO BE PRINTED, DEPENDING ON NR.
+C
+C  NOTES:
+C 1. THE DIMENSION OF MSG IS ASSUMED TO BE AT MOST 60.
+C   (MULTI-LINE MESSAGES ARE GENERATED BY REPEATED CALLS.)
+C 2. IF IERT = 2, CONTROL PASSES TO THE STATEMENT  STOP
+C   TO ABORT THE RUN.  THIS STATEMENT MAY BE MACHINE-DEPENDENT.
+C 3. R1 AND R2 ARE ASSUMED TO BE IN DOUBLE PRECISION AND ARE PRINTED
+C   IN D21.13 FORMAT.
+C 4. THE COMMON BLOCK /EH0001/ BELOW IS DATA-LOADED (A MACHINE-
+C   DEPENDENT FEATURE) WITH DEFAULT VALUES.
+C   THIS BLOCK IS NEEDED FOR PROPER RETENTION OF PARAMETERS USED BY
+C   THIS ROUTINE WHICH THE USER CAN RESET BY CALLING XSETF OR XSETUN.
+C   THE VARIABLES IN THIS BLOCK ARE AS FOLLOWS..
+C      MESFLG = PRINT CONTROL FLAG..
+C               1 MEANS PRINT ALL MESSAGES (THE DEFAULT).
+C               0 MEANS NO PRINTING.
+C      LUNIT  = LOGICAL UNIT NUMBER FOR MESSAGES.
+C               THE DEFAULT IS 6 (MACHINE-DEPENDENT).
+C 5. TO CHANGE THE DEFAULT OUTPUT UNIT, CHANGE THE DATA STATEMENT
+C  IN THE BLOCK DATA SUBPROGRAM BELOW.
+C
+C FOR A DIFFERENT RUN-ABORT COMMAND, CHANGE THE STATEMENT FOLLOWING
+C STATEMENT 100 AT THE END.
+C-----------------------------------------------------------------------
+      COMMON /EH0001/ MESFLG, LUNIT
+      IF (MESFLG .EQ. 0) GO TO 100
+C GET LOGICAL UNIT NUMBER. ---------------------------------------------
+      LUN = LUNIT
+C WRITE THE MESSAGE. ---------------------------------------------------
+      WRITE (LUN, 10) MSG
+ 10   FORMAT(1X,A)
+C-----------------------------------------------------------------------
+      IF (NI .EQ. 1) WRITE (LUN, 20) I1
+ 20   FORMAT(6X,'IN ABOVE MESSAGE,  I1 = ',I10)
+      IF (NI .EQ. 2) WRITE (LUN, 30) I1,I2
+ 30   FORMAT(6X,'IN ABOVE MESSAGE,  I1 = ',I10,3X,'I2 = ',I10)
+      IF (NR .EQ. 1) WRITE (LUN, 40) R1
+ 40   FORMAT(6X,'IN ABOVE MESSAGE,  R1 = ',D21.13)
+      IF (NR .EQ. 2) WRITE (LUN, 50) R1,R2
+ 50   FORMAT(6X,'IN ABOVE,  R1 = ',D21.13,3X,'R2 = ',D21.13)
+C ABORT THE RUN IF IERT = 2. -------------------------------------------
+ 100   IF (IERT .NE. 2) RETURN
+      STOP
+C----------------------- END OF SUBROUTINE XERR ----------------------
+      END
+      SUBROUTINE XSETF (MFLAG)
+C
+C THIS ROUTINE RESETS THE PRINT CONTROL FLAG MFLAG.
+C
+      INTEGER MFLAG, MESFLG, LUNIT
+      COMMON /EH0001/ MESFLG, LUNIT
+C
+      IF (MFLAG .EQ. 0 .OR. MFLAG .EQ. 1) MESFLG = MFLAG
+      RETURN
+C----------------------- END OF SUBROUTINE XSETF -----------------------
+      END
+      SUBROUTINE XSETUN (LUN)
+C
+C THIS ROUTINE RESETS THE LOGICAL UNIT NUMBER FOR MESSAGES.
+C
+      INTEGER LUN, MESFLG, LUNIT
+      COMMON /EH0001/ MESFLG, LUNIT
+C
+      IF (LUN .GT. 0) LUNIT = LUN
+      RETURN
+C----------------------- END OF SUBROUTINE XSETUN ----------------------
+      END
+      BLOCK DATA
+C-----------------------------------------------------------------------
+C THIS DATA SUBPROGRAM LOADS VARIABLES INTO THE INTERNAL COMMON
+C BLOCKS USED BY ODESSA AND ITS VARIANTS.  THE VARIABLES ARE
+C DEFINED AS FOLLOWS..
+C  ILLIN  = COUNTER FOR THE NUMBER OF CONSECUTIVE TIMES THE PACKAGE
+C           WAS CALLED WITH ILLEGAL INPUT.  THE RUN IS STOPPED WHEN
+C           ILLIN REACHES 5.
+C  NTREP  = COUNTER FOR THE NUMBER OF CONSECUTIVE TIMES THE PACKAGE
+C           WAS CALLED WITH ISTATE = 1 AND TOUT = T.  THE RUN IS
+C           STOPPED WHEN NTREP REACHES 5.
+C  MESFLG = FLAG TO CONTROL PRINTING OF ERROR MESSAGES.  1 MEANS PRINT,
+C           0 MEANS NO PRINTING.
+C  LUNIT  = DEFAULT VALUE OF LOGICAL UNIT NUMBER FOR PRINTING OF ERROR
+C           MESSAGES.
+C-----------------------------------------------------------------------
+      INTEGER ILLIN, IDUMA, NTREP, IDUMB, IOWNS, ICOMM, MESFLG, LUNIT
+      DOUBLE PRECISION ROWND, ROWNS, RCOMM
+      COMMON /ODE001/ ROWND, ROWNS(173), RCOMM(45),
+     1   ILLIN, IDUMA(10), NTREP, IDUMB(2), IOWNS(4), ICOMM(21)
+      COMMON /EH0001/ MESFLG, LUNIT
+      DATA ILLIN/0/, NTREP/0/
+      DATA MESFLG/1/, LUNIT/6/
+C
+C------------------------ END OF BLOCK DATA ----------------------------
+      END
+C-----------------------------------------------------------------------
+C INSTRUCTIONS FOR INSTALLING THE ODESSA PACKAGE. (see @ below.)
+C
+C ODESSA is an enhanced version of the widely disseminated ODE solver
+C LSODE, and as such retains the same properties regarding portability.
+C The notes below, adapted from the installation instructions for LSODE,
+C are intended to facilitate the installation of the ODESSA package in
+C the user's software library.
+C
+C 1. Both a single and a double precision version of ODESSA are
+C provided in this release.  It is expected that most users will
+C utilize the double precision version, except in the case of
+C extended word-length computers. Most routines used by ODESSA
+C are named the same regardless of whether they are single or
+C double precision.  The exceptions are the LINPAK and BLAS
+C routines that follow the LINPAK/BLAS naming conventions, i.e.
+C D--- for a double precision routine, and S--- for a single
+C precision routine.  Thus, care should be taken if both single
+C and double precision versions are stored in the same library.
+C
+C 2. Several routines in ODESSA have the same names as the LSODE
+C routines from which they were derived, although they contain
+C different code.  These are: INTDY, STODE, PREPJ, SVCOM, and
+C RSCOM.  If ODESSA is added to a subroutine library of which
+C LSODE is already a member, these routine names must be changed
+C in one of the two programs.  Also see the note regarding BLOCK
+C DATA subroutines below.
+C
+C 3.  In many cases, ODESSA uses unaltered LSODE routines and
+C common library routines that may already reside on your system.
+C The installation of ODESSA should be done so that identical routines
+C are shared rather than kept as duplicate copies.
+C a.  Normally, the user calls only subroutine ODESSA, but for optional
+C     capabilities the user may also CALL XSETUN, XSETF, SVCOM, RSCOM,
+C     or INTDY, as described in Part II of the Full Description in the
+C     User Documentation (ODESSA.DOC, see below).  Except for INTDY,
+C     none of these are called from within the package.
+C b.  Two routines, EWSET and VNORM, are optionally replaceable by the
+C     user if the package version is unsuitable.  Hence, the install-
+C     ation of the package should be done so that the user's version
+C     for either routine overrides the package version.
+C c.  The function routine D1MACH is provided to compute the unit
+C     roundoff of the machine and precision in use, in a manner com-
+C     patible with machine parameter routines developed at Bell Lab-
+C     oratories.  If such a routine has already been installed on
+C     your system, the version supplied here may be discarded.
+C d.  Linear algebraic systems are solved with routines from the
+C     LINPACK collection, in conjunction with routines from the Basic
+C     Linear Algebra module collection (BLAS).  In double precision,
+C     the names are DGEFA, DGESL, DGBFA, and DGBSL (from LINPACK), and
+C     DAXPY, DSCAL, IDAMAX, and DDOT (from BLAS). If these routines
+C     have already been installed on your system, copies supplied with
+C     ODESSA may be discarded.  The single precision versions of these
+C     routines are used in the single precision version.
+C
+C 4. There are four integer variables, in the two labeled COMMON
+C blocks /ODE001/ and /EH0001/, which need to be loaded with DATA
+C statements.  They can vary during execution, and are in common to
+C assure their retention between calls.  This is legal in ANSI Fortran
+C only if done in a BLOCK DATA subprogram, and this package has a
+C BLOCK DATA for this purpose.  However, BLOCK DATA subprograms can be
+C difficult to install in libraries, and many compilers allow such DATA
+C statements in subroutines.  If your system allows this, the location
+C of the DATA statements are just after the initial type and common
+C declarations in subroutines ODESSA and XERR.  In ODESSA, ILLIN and
+C NTREP are DATA-loaded as 0.  In XERR, MESFLG is loaded as 1 and
+C LUNIT is loaded as the appropriate default logical unit number.
+C
+C 5. The ODESSA package contains subscript expressions which may not
+C be accepted by some compilers.  Subscripts of the form I + J, I - J,
+C etc., occur in various routines.  If any of these forms are
+C unacceptable to your compiler, an extra line of code setting the
+C subscript to a dummy integer value should be added for each subscipt.
+C
+C 6. User documentation is provided in a two-level structure
+C to accommmodate both the casual and serious user.  The novice or
+C casual user should need to read only the Summary of Usage and the
+C Example Problem located at the beginning of the documentation.  More
+C experienced users, requiring the full set of available options,
+C should read the Full Description which follows the Example Problem.
+C
+C 7. The user documentation may need corrections in the following ways:
+C a.  If subroutine names have been changed to avoid conflicts between
+C     the LSODE and ODESSA packages, the corresponding name changes
+C     should be made in the documentation.
+C b.  In the Summary of Usage, and in the description of XSETUN under
+C     Part II of the Full Description, the default logical unit number
+C     should be corrected if it is not 6.
+C c.  In the Summary of Usage, users should be instructed to execute
+C     CALL XSETF(1) before the first CALL to ODESSA, if this is neces-
+C     sary for proper error message handling.  (see note 2(e) above.)
+C d.  In the description of the subroutines DF and JAC in the Summary
+C     of Usage and in Part I of the Full Description, it is stated
+C     that dummy names may be passed if these two routines are not user
+C     supplied.  Your system may require the user to supply a dummy
+C     subroutine instead.
+C e.  The ODESSA package treats the arguments NEQ, RTOL, and ATOL as
+C     arrays (possibly of length 1), while the usage documentation
+C     states that these arguments may be either arrays or scalars.
+C     If your system does not allow such a mismatch, then the
+C     documentation should be changed to reflect this.
+C 8.  A demonstration program is provided with the package for
+C     verification.
+C
+C
+C     Jorge R. Leis and Mark A. Kramer
+C     Department of Chemical Engineering
+C     Massachusetts Institute of Technology
+C     Cambridge, Massachusetts  02139
+C     U.S.A.
+C
+C     Current address of J.R. Leis (Jan. 1988):
+C
+C     Shell Development Company
+C     Westhollow Research Center
+C     Houston, TX
+C
+C  @ Adapted from 'Instructions for Installing LSODE', written by
+C    Alan C. Hindmarsh, Mathematics & Statistics Division, L-316,
+C    Lawrence Livermore National Laboratory, Livermore, CA. 94550
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/atm_radau5.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/atm_radau5.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/atm_radau5.def	(revision 2696)
@@ -0,0 +1,19 @@
+ 
+#FUNCTION AGGREGATE
+#JACOBIAN FULL
+#DOUBLE ON 
+#INTFILE atm_radau5
+
+#INLINE F77_GLOBAL
+      REAL*8 STEPSTART
+      COMMON /GDATA/ STEPSTART
+#ENDINLINE
+
+#INLINE F77_INIT
+        STEPMIN=0.0001
+        STEPMAX=3600.
+        STEPSTART=STEPMIN
+#ENDINLINE
+
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/atm_radau5.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/atm_radau5.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/atm_radau5.f	(revision 2696)
@@ -0,0 +1,4572 @@
+      SUBROUTINE INTEGRATE( TIN, TOUT )
+
+      IMPLICIT KPP_REAL (A-H,O-Z)
+      INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Global.h'
+
+C TIN - Start Time
+      KPP_REAL TIN
+C TOUT - End Time
+      KPP_REAL TOUT, H
+      SAVE H
+      DATA H /0.0d0/
+      INTEGER Nfun, Njac, Nstp, Nacc, Nrej, Ndec, Nsol
+      SAVE Nstp, Nacc, Nrej
+      DATA Nstp /0/
+      DATA Nacc /0/
+      DATA Nrej /0/
+      INTEGER i
+
+      PARAMETER (LWORK=5*NVAR*NVAR+12*NVAR+20,LIWORK=3*NVAR+20)
+      PARAMETER (LRCONT=4*NVAR+4)
+
+      KPP_REAL WORK(LWORK), RPAR(1)
+      INTEGER IWORK(LIWORK), IPAR(1)
+      COMMON /CONT/ ICONT(4),RCONT(LRCONT)
+      EXTERNAL FUNC_CHEM,JAC_CHEM,SOLOUT
+
+
+      ITOL=1     ! --- VECTOR TOLERANCES
+      IJAC=1     ! --- COMPUTE THE JACOBIAN ANALYTICALLY
+      IMAS=0     ! --- DIFFERENTIAL EQUATION IS IN EXPLICIT FORM
+      IOUT=0     ! --- OUTPUT ROUTINE IS NOT USED DURING INTEGRATION
+      MLJAC=NVAR ! --- JACOBIAN IS A FULL MATRIX
+      MUJAC=NVAR ! --- JACOBIAN IS A FULL MATRIX
+      MLMAS=NVAR ! --- JACOBIAN IS A FULL MATRIX
+      MUMAS=NVAR ! --- JACOBIAN IS A FULL MATRIX
+
+      DO i=1,20
+        IWORK(i) = 0
+        WORK(i) = 0.D0
+      ENDDO
+
+      IWORK(3) = 8    !  Max no. of Newton iterations
+      IWORK(4) = 0    !  Starting values for Newton are interpolated (0) or zero (1)
+      IWORK(8) = 2    ! Gustaffson (1) or classic(2) controller
+      WORK(2)  = 0.9  ! Safety factor
+
+      CALL RADAU5(NVAR,FUNC_CHEM,TIN,VAR,TOUT,H,
+     &                  RTOL,ATOL,ITOL,
+     &                  JAC_CHEM ,IJAC,MLJAC,MUJAC,
+     &                  FUNC_CHEM ,IMAS,MLMAS,MUMAS,
+     &                  SOLOUT,IOUT,
+     &                  WORK,LWORK,IWORK,LIWORK,RPAR,IPAR,IDID)
+
+
+       Nfun = Nfun + IWORK(14)
+       Njac = Njac + IWORK(15)
+       Nstp = Nstp + IWORK(16)
+       Nacc = Nacc + IWORK(17)
+       Nrej = Nrej + IWORK(18)
+       Ndec = Ndec + IWORK(19)
+       Nsol = Nsol + IWORK(20)
+
+       print("('Nstep=',I5,' Nacc=',I6,' Nrej=',I6)"),Nstp, Nacc, Nrej
+
+      IF (IDID.LT.0) THEN
+        print *,'RADAU: Unsucessfull exit at T=',
+     &          TIN,' (IDID=',IDID,')'
+      ENDIF
+
+      RETURN
+      END
+
+
+      SUBROUTINE RADAU5(N,FCN,X,Y,XEND,H,
+     &                  RelTol,AbsTol,ITOL,
+     &                  JAC ,IJAC,MLJAC,MUJAC,
+     &                  MAS ,IMAS,MLMAS,MUMAS,
+     &                  SOLOUT,IOUT,
+     &                  WORK,LWORK,IWORK,LIWORK,RPAR,IPAR,IDID)
+C ----------------------------------------------------------
+C     NUMERICAL SOLUTION OF A STIFF (OR DIFFERENTIAL ALGEBRAIC)
+C     SYSTEM OF FIRST 0RDER ORDINARY DIFFERENTIAL EQUATIONS
+C                     M*Y'=F(X,Y).
+C     THE SYSTEM CAN BE (LINEARLY) IMPLICIT (MASS-MATRIX M .NE. I)
+C     OR EXPLICIT (M=I).
+C     THE METHOD USED IS AN IMPLICIT RUNGE-KUTTA METHOD (RADAU IIA)
+C     OF ORDER 5 WITH STEP SIZE CONTROL AND CONTINUOUS OUTPUT.
+C     C.F. SECTION IV.8
+C
+C     AUTHORS: E. HAIRER AND G. WANNER
+C              UNIVERSITE DE GENEVE, DEPT. DE MATHEMATIQUES
+C              CH-1211 GENEVE 24, SWITZERLAND
+C              E-MAIL:  HAIRER@DIVSUN.UNIGE.CH,  WANNER@DIVSUN.UNIGE.CH
+C
+C     THIS CODE IS PART OF THE BOOK:
+C         E. HAIRER AND G. WANNER, SOLVING ORDINARY DIFFERENTIAL
+C         EQUATIONS II. STIFF AND DIFFERENTIAL-ALGEBRAIC PROBLEMS.
+C         SPRINGER SERIES IN COMPUTATIONAL MATHEMATICS 14,
+C         SPRINGER-VERLAG (1991)
+C
+C     VERSION OF SEPTEMBER 30, 1995
+C
+C     INPUT PARAMETERS
+C     ----------------
+C     N           DIMENSION OF THE SYSTEM
+C
+C     FCN         NAME (EXTERNAL) OF SUBROUTINE COMPUTING THE
+C                 VALUE OF F(X,Y):
+C                    SUBROUTINE FCN(N,X,Y,F,RPAR,IPAR)
+C                    KPP_REAL X,Y(N),F(N)
+C                    F(1)=...   ETC.
+C                 RPAR, IPAR (SEE BELOW)
+C
+C     X           INITIAL X-VALUE
+C
+C     Y(N)        INITIAL VALUES FOR Y
+C
+C     XEND        FINAL X-VALUE (XEND-X MAY BE POSITIVE OR NEGATIVE)
+C
+C     H           INITIAL STEP SIZE GUESS;
+C                 FOR STIFF EQUATIONS WITH INITIAL TRANSIENT,
+C                 H=1.D0/(NORM OF F'), USUALLY 1.D-3 OR 1.D-5, IS GOOD.
+C                 THIS CHOICE IS NOT VERY IMPORTANT, THE STEP SIZE IS
+C                 QUICKLY ADAPTED. (IF H=0.D0, THE CODE PUTS H=1.D-6).
+C
+C     RelTol,AbsTol   RELATIVE AND ABSOLUTE ERROR TOLERANCES. THEY
+C                 CAN BE BOTH SCALARS OR ELSE BOTH VECTORS OF LENGTH N.
+C
+C     ITOL        SWITCH FOR RelTol AND AbsTol:
+C                   ITOL=0: BOTH RelTol AND AbsTol ARE SCALARS.
+C                     THE CODE KEEPS, ROUGHLY, THE LOCAL ERROR OF
+C                     Y(I) BELOW RelTol*ABS(Y(I))+AbsTol
+C                   ITOL=1: BOTH RelTol AND AbsTol ARE VECTORS.
+C                     THE CODE KEEPS THE LOCAL ERROR OF Y(I) BELOW
+C                     RelTol(I)*ABS(Y(I))+AbsTol(I).
+C
+C     JAC         NAME (EXTERNAL) OF THE SUBROUTINE WHICH COMPUTES
+C                 THE PARTIAL DERIVATIVES OF F(X,Y) WITH RESPECT TO Y
+C                 (THIS ROUTINE IS ONLY CALLED IF IJAC=1; SUPPLY
+C                 A DUMMY SUBROUTINE IN THE CASE IJAC=0).
+C                 FOR IJAC=1, THIS SUBROUTINE MUST HAVE THE FORM
+C                    SUBROUTINE JAC(N,X,Y,DFY,LDFY,RPAR,IPAR)
+C                    KPP_REAL X,Y(N),DFY(LDFY,N)
+C                    DFY(1,1)= ...
+C                 LDFY, THE COLUMN-LENGTH OF THE ARRAY, IS
+C                 FURNISHED BY THE CALLING PROGRAM.
+C                 IF (MLJAC.EQ.N) THE JACOBIAN IS SUPPOSED TO
+C                    BE FULL AND THE PARTIAL DERIVATIVES ARE
+C                    STORED IN DFY AS
+C                       DFY(I,J) = PARTIAL F(I) / PARTIAL Y(J)
+C                 ELSE, THE JACOBIAN IS TAKEN AS BANDED AND
+C                    THE PARTIAL DERIVATIVES ARE STORED
+C                    DIAGONAL-WISE AS
+C                       DFY(I-J+MUJAC+1,J) = PARTIAL F(I) / PARTIAL Y(J).
+C
+C     IJAC        SWITCH FOR THE COMPUTATION OF THE JACOBIAN:
+C                    IJAC=0: JACOBIAN IS COMPUTED INTERNALLY BY FINITE
+C                       DIFFERENCES, SUBROUTINE "JAC" IS NEVER CALLED.
+C                    IJAC=1: JACOBIAN IS SUPPLIED BY SUBROUTINE JAC.
+C
+C     MLJAC       SWITCH FOR THE BANDED STRUCTURE OF THE JACOBIAN:
+C                    MLJAC=N: JACOBIAN IS A FULL MATRIX. THE LINEAR
+C                       ALGEBRA IS DONE BY FULL-MATRIX GAUSS-ELIMINATION.
+C                    0<=MLJAC<N: MLJAC IS THE LOWER BANDWITH OF JACOBIAN
+C                       MATRIX (>= NUMBER OF NON-ZERO DIAGONALS BELOW
+C                       THE MAIN DIAGONAL).
+C
+C     MUJAC       UPPER BANDWITH OF JACOBIAN  MATRIX (>= NUMBER OF NON-
+C                 ZERO DIAGONALS ABOVE THE MAIN DIAGONAL).
+C                 NEED NOT BE DEFINED IF MLJAC=N.
+C
+C     ----   MAS,IMAS,MLMAS, AND MUMAS HAVE ANALOG MEANINGS      -----
+C     ----   FOR THE "MASS MATRIX" (THE MATRIX "M" OF SECTION IV.8): -
+C
+C     MAS         NAME (EXTERNAL) OF SUBROUTINE COMPUTING THE MASS-
+C                 MATRIX M.
+C                 IF IMAS=0, THIS MATRIX IS ASSUMED TO BE THE IDENTITY
+C                 MATRIX AND NEEDS NOT TO BE DEFINED;
+C                 SUPPLY A DUMMY SUBROUTINE IN THIS CASE.
+C                 IF IMAS=1, THE SUBROUTINE MAS IS OF THE FORM
+C                    SUBROUTINE MAS(N,AM,LMAS,RPAR,IPAR)
+C                    KPP_REAL AM(LMAS,N)
+C                    AM(1,1)= ....
+C                    IF (MLMAS.EQ.N) THE MASS-MATRIX IS STORED
+C                    AS FULL MATRIX LIKE
+C                         AM(I,J) = M(I,J)
+C                    ELSE, THE MATRIX IS TAKEN AS BANDED AND STORED
+C                    DIAGONAL-WISE AS
+C                         AM(I-J+MUMAS+1,J) = M(I,J).
+C
+C     IMAS       GIVES INFORMATION ON THE MASS-MATRIX:
+C                    IMAS=0: M IS SUPPOSED TO BE THE IDENTITY
+C                       MATRIX, MAS IS NEVER CALLED.
+C                    IMAS=1: MASS-MATRIX  IS SUPPLIED.
+C
+C     MLMAS       SWITCH FOR THE BANDED STRUCTURE OF THE MASS-MATRIX:
+C                    MLMAS=N: THE FULL MATRIX CASE. THE LINEAR
+C                       ALGEBRA IS DONE BY FULL-MATRIX GAUSS-ELIMINATION.
+C                    0<=MLMAS<N: MLMAS IS THE LOWER BANDWITH OF THE
+C                       MATRIX (>= NUMBER OF NON-ZERO DIAGONALS BELOW
+C                       THE MAIN DIAGONAL).
+C                 MLMAS IS SUPPOSED TO BE .LE. MLJAC.
+C
+C     MUMAS       UPPER BANDWITH OF MASS-MATRIX (>= NUMBER OF NON-
+C                 ZERO DIAGONALS ABOVE THE MAIN DIAGONAL).
+C                 NEED NOT BE DEFINED IF MLMAS=N.
+C                 MUMAS IS SUPPOSED TO BE .LE. MUJAC.
+C
+C     SOLOUT      NAME (EXTERNAL) OF SUBROUTINE PROVIDING THE
+C                 NUMERICAL SOLUTION DURING INTEGRATION.
+C                 IF IOUT=1, IT IS CALLED AFTER EVERY SUCCESSFUL STEP.
+C                 SUPPLY A DUMMY SUBROUTINE IF IOUT=0.
+C                 IT MUST HAVE THE FORM
+C                    SUBROUTINE SOLOUT (NR,XOLD,X,Y,CONT,LRC,N,
+C                                       RPAR,IPAR,IRTRN)
+C                    KPP_REAL X,Y(N),CONT(LRC)
+C                    ....
+C                 SOLOUT FURNISHES THE SOLUTION "Y" AT THE NR-TH
+C                    GRID-POINT "X" (THEREBY THE INITIAL VALUE IS
+C                    THE FIRST GRID-POINT).
+C                 "XOLD" IS THE PRECEEDING GRID-POINT.
+C                 "IRTRN" SERVES TO INTERRUPT THE INTEGRATION. IF IRTRN
+C                    IS SET <0, RADAU5 RETURNS TO THE CALLING PROGRAM.
+C
+C          -----  CONTINUOUS OUTPUT: -----
+C                 DURING CALLS TO "SOLOUT", A CONTINUOUS SOLUTION
+C                 FOR THE INTERVAL [XOLD,X] IS AVAILABLE THROUGH
+C                 THE FUNCTION
+C                        >>>   CONTR5(I,S,CONT,LRC)   <<<
+C                 WHICH PROVIDES AN APPROXIMATION TO THE I-TH
+C                 COMPONENT OF THE SOLUTION AT THE POINT S. THE VALUE
+C                 S SHOULD LIE IN THE INTERVAL [XOLD,X].
+C                 DO NOT CHANGE THE ENTRIES OF CONT(LRC), IF THE
+C                 DENSE OUTPUT FUNCTION IS USED.
+C
+C     IOUT        SWITCH FOR CALLING THE SUBROUTINE SOLOUT:
+C                    IOUT=0: SUBROUTINE IS NEVER CALLED
+C                    IOUT=1: SUBROUTINE IS AVAILABLE FOR OUTPUT.
+C
+C     WORK        ARRAY OF WORKING SPACE OF LENGTH "LWORK".
+C                 WORK(1), WORK(2),.., WORK(20) SERVE AS PARAMETERS
+C                 FOR THE CODE. FOR STANDARD USE OF THE CODE
+C                 WORK(1),..,WORK(20) MUST BE SET TO ZERO BEFORE
+C                 CALLING. SEE BELOW FOR A MORE SOPHISTICATED USE.
+C                 WORK(21),..,WORK(LWORK) SERVE AS WORKING SPACE
+C                 FOR ALL VECTORS AND MATRICES.
+C                 "LWORK" MUST BE AT LEAST
+C                             N*(LJAC+LMAS+3*LE+12)+20
+C                 WHERE
+C                    LJAC=N              IF MLJAC=N (FULL JACOBIAN)
+C                    LJAC=MLJAC+MUJAC+1  IF MLJAC<N (BANDED JAC.)
+C                 AND
+C                    LMAS=0              IF IMAS=0
+C                    LMAS=N              IF IMAS=1 AND MLMAS=N (FULL)
+C                    LMAS=MLMAS+MUMAS+1  IF MLMAS<N (BANDED MASS-M.)
+C                 AND
+C                    LE=N               IF MLJAC=N (FULL JACOBIAN)
+C                    LE=2*MLJAC+MUJAC+1 IF MLJAC<N (BANDED JAC.)
+C
+C                 IN THE USUAL CASE WHERE THE JACOBIAN IS FULL AND THE
+C                 MASS-MATRIX IS THE INDENTITY (IMAS=0), THE MINIMUM
+C                 STORAGE REQUIREMENT IS
+C                             LWORK = 4*N*N+12*N+20.
+C                 IF IWORK(9)=M1>0 THEN "LWORK" MUST BE AT LEAST
+C                          N*(LJAC+12)+(N-M1)*(LMAS+3*LE)+20
+C                 WHERE IN THE DEFINITIONS OF LJAC, LMAS AND LE THE
+C                 NUMBER N CAN BE REPLACED BY N-M1.
+C
+C     LWORK       DECLARED LENGTH OF ARRAY "WORK".
+C
+C     IWORK       INTEGER WORKING SPACE OF LENGTH "LIWORK".
+C                 IWORK(1),IWORK(2),...,IWORK(20) SERVE AS PARAMETERS
+C                 FOR THE CODE. FOR STANDARD USE, SET IWORK(1),..,
+C                 IWORK(20) TO ZERO BEFORE CALLING.
+C                 IWORK(21),...,IWORK(LIWORK) SERVE AS WORKING AREA.
+C                 "LIWORK" MUST BE AT LEAST 3*N+20.
+C
+C     LIWORK      DECLARED LENGTH OF ARRAY "IWORK".
+C
+C     RPAR, IPAR  REAL AND INTEGER PARAMETERS (OR PARAMETER ARRAYS) WHICH
+C                 CAN BE USED FOR COMMUNICATION BETWEEN YOUR CALLING
+C                 PROGRAM AND THE FCN, JAC, MAS, SOLOUT SUBROUTINES.
+C
+C ----------------------------------------------------------------------
+C
+C     SOPHISTICATED SETTING OF PARAMETERS
+C     -----------------------------------
+C              SEVERAL PARAMETERS OF THE CODE ARE TUNED TO MAKE IT WORK
+C              WELL. THEY MAY BE DEFINED BY SETTING WORK(1),...
+C              AS WELL AS IWORK(1),... DIFFERENT FROM ZERO.
+C              FOR ZERO INPUT, THE CODE CHOOSES DEFAULT VALUES:
+C
+C    IWORK(1)  IF IWORK(1).NE.0, THE CODE TRANSFORMS THE JACOBIAN
+C              MATRIX TO HESSENBERG FORM. THIS IS PARTICULARLY
+C              ADVANTAGEOUS FOR LARGE SYSTEMS WITH FULL JACOBIAN.
+C              IT DOES NOT WORK FOR BANDED JACOBIAN (MLJAC<N)
+C              AND NOT FOR IMPLICIT SYSTEMS (IMAS=1).
+C
+C    IWORK(2)  THIS IS THE MAXIMAL NUMBER OF ALLOWED STEPS.
+C              THE DEFAULT VALUE (FOR IWORK(2)=0) IS 100000.
+C
+C    IWORK(3)  THE MAXIMUM NUMBER OF NEWTON ITERATIONS FOR THE
+C              SOLUTION OF THE IMPLICIT SYSTEM IN EACH STEP.
+C              THE DEFAULT VALUE (FOR IWORK(3)=0) IS 7.
+C
+C    IWORK(4)  IF IWORK(4).EQ.0 THE EXTRAPOLATED COLLOCATION SOLUTION
+C              IS TAKEN AS STARTING VALUE FOR NEWTON'S METHOD.
+C              IF IWORK(4).NE.0 ZERO STARTING VALUES ARE USED.
+C              THE LATTER IS RECOMMENDED IF NEWTON'S METHOD HAS
+C              DIFFICULTIES WITH CONVERGENCE (THIS IS THE CASE WHEN
+C              NSTEP IS LARGER THAN NACCPT + NREJCT; SEE OUTPUT PARAM.).
+C              DEFAULT IS IWORK(4)=0.
+C
+C       THE FOLLOWING 3 PARAMETERS ARE IMPORTANT FOR
+C       DIFFERENTIAL-ALGEBRAIC SYSTEMS OF INDEX > 1.
+C       THE FUNCTION-SUBROUTINE SHOULD BE WRITTEN SUCH THAT
+C       THE INDEX 1,2,3 VARIABLES APPEAR IN THIS ORDER.
+C       IN ESTIMATING THE ERROR THE INDEX 2 VARIABLES ARE
+C       MULTIPLIED BY H, THE INDEX 3 VARIABLES BY H**2.
+C
+C    IWORK(5)  DIMENSION OF THE INDEX 1 VARIABLES (MUST BE > 0). FOR
+C              ODE'S THIS EQUALS THE DIMENSION OF THE SYSTEM.
+C              DEFAULT IWORK(5)=N.
+C
+C    IWORK(6)  DIMENSION OF THE INDEX 2 VARIABLES. DEFAULT IWORK(6)=0.
+C
+C    IWORK(7)  DIMENSION OF THE INDEX 3 VARIABLES. DEFAULT IWORK(7)=0.
+C
+C    IWORK(8)  SWITCH FOR STEP SIZE STRATEGY
+C              IF IWORK(8).EQ.1  MOD. PREDICTIVE CONTROLLER (GUSTAFSSON)
+C              IF IWORK(8).EQ.2  CLASSICAL STEP SIZE CONTROL
+C              THE DEFAULT VALUE (FOR IWORK(8)=0) IS IWORK(8)=1.
+C              THE CHOICE IWORK(8).EQ.1 SEEMS TO PRODUCE SAFER RESULTS;
+C              FOR SIMPLE PROBLEMS, THE CHOICE IWORK(8).EQ.2 PRODUCES
+C              OFTEN SLIGHTLY FASTER RUNS
+C
+C       IF THE DIFFERENTIAL SYSTEM HAS THE SPECIAL STRUCTURE THAT
+C            Y(I)' = Y(I+M2)   FOR  I=1,...,M1,
+C       WITH M1 A MULTIPLE OF M2, A SUBSTANTIAL GAIN IN COMPUTERTIME
+C       CAN BE ACHIEVED BY SETTING THE FOLLOWING TWO PARAMETERS. E.G.,
+C       FOR SECOND ORDER SYSTEMS P'=V, V'=G(P,V), WHERE P AND V ARE
+C       VECTORS OF DIMENSION N/2, ONE HAS TO PUT M1=M2=N/2.
+C       FOR M1>0 SOME OF THE INPUT PARAMETERS HAVE DIFFERENT MEANINGS:
+C       - JAC: ONLY THE ELEMENTS OF THE NON-TRIVIAL PART OF THE
+C              JACOBIAN HAVE TO BE STORED
+C              IF (MLJAC.EQ.N-M1) THE JACOBIAN IS SUPPOSED TO BE FULL
+C                 DFY(I,J) = PARTIAL F(I+M1) / PARTIAL Y(J)
+C                FOR I=1,N-M1 AND J=1,N.
+C              ELSE, THE JACOBIAN IS BANDED ( M1 = M2 * MM )
+C                 DFY(I-J+MUJAC+1,J+K*M2) = PARTIAL F(I+M1) / PARTIAL Y(J+K*M2)
+C                FOR I=1,MLJAC+MUJAC+1 AND J=1,M2 AND K=0,MM.
+C       - MLJAC: MLJAC=N-M1: IF THE NON-TRIVIAL PART OF THE JACOBIAN IS FULL
+C                0<=MLJAC<N-M1: IF THE (MM+1) SUBMATRICES (FOR K=0,MM)
+C                     PARTIAL F(I+M1) / PARTIAL Y(J+K*M2),  I,J=1,M2
+C                    ARE BANDED, MLJAC IS THE MAXIMAL LOWER BANDWIDTH
+C                    OF THESE MM+1 SUBMATRICES
+C       - MUJAC: MAXIMAL UPPER BANDWIDTH OF THESE MM+1 SUBMATRICES
+C                NEED NOT BE DEFINED IF MLJAC=N-M1
+C       - MAS: IF IMAS=0 THIS MATRIX IS ASSUMED TO BE THE IDENTITY AND
+C              NEED NOT BE DEFINED. SUPPLY A DUMMY SUBROUTINE IN THIS CASE.
+C              IT IS ASSUMED THAT ONLY THE ELEMENTS OF RIGHT LOWER BLOCK OF
+C              DIMENSION N-M1 DIFFER FROM THAT OF THE IDENTITY MATRIX.
+C              IF (MLMAS.EQ.N-M1) THIS SUBMATRIX IS SUPPOSED TO BE FULL
+C                 AM(I,J) = M(I+M1,J+M1)     FOR I=1,N-M1 AND J=1,N-M1.
+C              ELSE, THE MASS MATRIX IS BANDED
+C                 AM(I-J+MUMAS+1,J) = M(I+M1,J+M1)
+C       - MLMAS: MLMAS=N-M1: IF THE NON-TRIVIAL PART OF M IS FULL
+C                0<=MLMAS<N-M1: LOWER BANDWIDTH OF THE MASS MATRIX
+C       - MUMAS: UPPER BANDWIDTH OF THE MASS MATRIX
+C                NEED NOT BE DEFINED IF MLMAS=N-M1
+C
+C    IWORK(9)  THE VALUE OF M1.  DEFAULT M1=0.
+C
+C    IWORK(10) THE VALUE OF M2.  DEFAULT M2=M1.
+C
+C ----------
+C
+C    WORK(1)   UROUND, THE ROUNDING UNIT, DEFAULT 1.D-16.
+C
+C    WORK(2)   THE SAFETY FACTOR IN STEP SIZE PREDICTION,
+C              DEFAULT 0.9D0.
+C
+C    WORK(3)   DECIDES WHETHER THE JACOBIAN SHOULD BE RECOMPUTED;
+C              INCREASE WORK(3), TO 0.1 SAY, WHEN JACOBIAN EVALUATIONS
+C              ARE COSTLY. FOR SMALL SYSTEMS WORK(3) SHOULD BE SMALLER
+C              (0.001D0, SAY). NEGATIV WORK(3) FORCES THE CODE TO
+C              COMPUTE THE JACOBIAN AFTER EVERY ACCEPTED STEP.
+C              DEFAULT 0.001D0.
+C
+C    WORK(4)   STOPPING CRITERION FOR NEWTON'S METHOD, USUALLY CHOSEN <1.
+C              SMALLER VALUES OF WORK(4) MAKE THE CODE SLOWER, BUT SAFER.
+C              DEFAULT 0.03D0.
+C
+C    WORK(5) AND WORK(6) : IF WORK(5) < HNEW/HOLD < WORK(6), THEN THE
+C              STEP SIZE IS NOT CHANGED. THIS SAVES, TOGETHER WITH A
+C              LARGE WORK(3), LU-DECOMPOSITIONS AND COMPUTING TIME FOR
+C              LARGE SYSTEMS. FOR SMALL SYSTEMS ONE MAY HAVE
+C              WORK(5)=1.D0, WORK(6)=1.2D0, FOR LARGE FULL SYSTEMS
+C              WORK(5)=0.99D0, WORK(6)=2.D0 MIGHT BE GOOD.
+C              DEFAULTS WORK(5)=1.D0, WORK(6)=1.2D0 .
+C
+C    WORK(7)   MAXIMAL STEP SIZE, DEFAULT XEND-X.
+C
+C    WORK(8), WORK(9)   PARAMETERS FOR STEP SIZE SELECTION
+C              THE NEW STEP SIZE IS CHOSEN SUBJECT TO THE RESTRICTION
+C                 WORK(8) <= HNEW/HOLD <= WORK(9)
+C              DEFAULT VALUES: WORK(8)=0.2D0, WORK(9)=8.D0
+C
+C-----------------------------------------------------------------------
+C
+C     OUTPUT PARAMETERS
+C     -----------------
+C     X           X-VALUE FOR WHICH THE SOLUTION HAS BEEN COMPUTED
+C                 (AFTER SUCCESSFUL RETURN X=XEND).
+C
+C     Y(N)        NUMERICAL SOLUTION AT X
+C
+C     H           PREDICTED STEP SIZE OF THE LAST ACCEPTED STEP
+C
+C     IDID        REPORTS ON SUCCESSFULNESS UPON RETURN:
+C                   IDID= 1  COMPUTATION SUCCESSFUL,
+C                   IDID= 2  COMPUT. SUCCESSFUL (INTERRUPTED BY SOLOUT)
+C                   IDID=-1  INPUT IS NOT CONSISTENT,
+C                   IDID=-2  LARGER NMAX IS NEEDED,
+C                   IDID=-3  STEP SIZE BECOMES TOO SMALL,
+C                   IDID=-4  MATRIX IS REPEATEDLY SINGULAR.
+C
+C   IWORK(14)  NFCN    NUMBER OF FUNCTION EVALUATIONS (THOSE FOR NUMERICAL
+C                      EVALUATION OF THE JACOBIAN ARE NOT COUNTED)
+C   IWORK(15)  NJAC    NUMBER OF JACOBIAN EVALUATIONS (EITHER ANALYTICALLY
+C                      OR NUMERICALLY)
+C   IWORK(16)  NSTEP   NUMBER OF COMPUTED STEPS
+C   IWORK(17)  NACCPT  NUMBER OF ACCEPTED STEPS
+C   IWORK(18)  NREJCT  NUMBER OF REJECTED STEPS (DUE TO ERROR TEST),
+C                      (STEP REJECTIONS IN THE FIRST STEP ARE NOT COUNTED)
+C   IWORK(19)  NDEC    NUMBER OF LU-DECOMPOSITIONS OF BOTH MATRICES
+C   IWORK(20)  NSOL    NUMBER OF FORWARD-BACKWARD SUBSTITUTIONS, OF BOTH
+C                      SYSTEMS; THE NSTEP FORWARD-BACKWARD SUBSTITUTIONS,
+C                      NEEDED FOR STEP SIZE SELECTION, ARE NOT COUNTED
+C-----------------------------------------------------------------------
+C *** *** *** *** *** *** *** *** *** *** *** *** ***
+C          DECLARATIONS
+C *** *** *** *** *** *** *** *** *** *** *** *** ***
+      IMPLICIT KPP_REAL (A-H,O-Z)
+      DIMENSION Y(N),AbsTol(*),RelTol(*),WORK(LWORK),IWORK(LIWORK)
+      DIMENSION RPAR(*),IPAR(*)
+      LOGICAL IMPLCT,JBAND,ARRET,STARTN,PRED
+      EXTERNAL FCN,JAC,MAS,SOLOUT
+C *** *** *** *** *** *** ***
+C        SETTING THE PARAMETERS
+C *** *** *** *** *** *** ***
+       NFCN=0
+       NJAC=0
+       NSTEP=0
+       NACCPT=0
+       NREJCT=0
+       NDEC=0
+       NSOL=0
+       ARRET=.FALSE.
+C -------- NMAX , THE MAXIMAL NUMBER OF STEPS -----
+      IF (IWORK(2).EQ.0) THEN
+         NMAX=100000
+      ELSE
+         NMAX=IWORK(2)
+         IF (NMAX.LE.0) THEN
+            WRITE(6,*)' WRONG INPUT IWORK(2)=',IWORK(2)
+            ARRET=.TRUE.
+         END IF
+      END IF
+C -------- NIT    MAXIMAL NUMBER OF NEWTON ITERATIONS
+      IF (IWORK(3).EQ.0) THEN
+         NIT=7
+      ELSE
+         NIT=IWORK(3)
+         IF (NIT.LE.0) THEN
+            WRITE(6,*)' CURIOUS INPUT IWORK(3)=',IWORK(3)
+            ARRET=.TRUE.
+         END IF
+      END IF
+C -------- STARTN  SWITCH FOR STARTING VALUES OF NEWTON ITERATIONS
+      IF(IWORK(4).EQ.0)THEN
+         STARTN=.FALSE.
+      ELSE
+         STARTN=.TRUE.
+      END IF
+C -------- PARAMETER FOR DIFFERENTIAL-ALGEBRAIC COMPONENTS
+      NIND1=IWORK(5)
+      NIND2=IWORK(6)
+      NIND3=IWORK(7)
+      IF (NIND1.EQ.0) NIND1=N
+      IF (NIND1+NIND2+NIND3.NE.N) THEN
+       WRITE(6,*)' CURIOUS INPUT FOR IWORK(5,6,7)=',NIND1,NIND2,NIND3
+       ARRET=.TRUE.
+      END IF
+C -------- PRED   STEP SIZE CONTROL
+      IF(IWORK(8).LE.1)THEN
+         PRED=.TRUE.
+      ELSE
+         PRED=.FALSE.
+      END IF
+C -------- PARAMETER FOR SECOND ORDER EQUATIONS
+      M1=IWORK(9)
+      M2=IWORK(10)
+      NM1=N-M1
+      IF (M1.EQ.0) M2=N
+      IF (M2.EQ.0) M2=M1
+      IF (M1.LT.0.OR.M2.LT.0.OR.M1+M2.GT.N) THEN
+       WRITE(6,*)' CURIOUS INPUT FOR IWORK(9,10)=',M1,M2
+       ARRET=.TRUE.
+      END IF
+C -------- UROUND   SMALLEST NUMBER SATISFYING 1.0D0+UROUND>1.0D0
+      IF (WORK(1).EQ.0.0D0) THEN
+         UROUND=1.0D-16
+      ELSE
+         UROUND=WORK(1)
+         IF (UROUND.LE.1.0D-19.OR.UROUND.GE.1.0D0) THEN
+            WRITE(6,*)' COEFFICIENTS HAVE 20 DIGITS, UROUND=',WORK(1)
+            ARRET=.TRUE.
+         END IF
+      END IF
+C --------- SAFE     SAFETY FACTOR IN STEP SIZE PREDICTION
+      IF (WORK(2).EQ.0.0D0) THEN
+         SAFE=0.9D0
+      ELSE
+         SAFE=WORK(2)
+         IF (SAFE.LE.0.001D0.OR.SAFE.GE.1.0D0) THEN
+            WRITE(6,*)' CURIOUS INPUT FOR WORK(2)=',WORK(2)
+            ARRET=.TRUE.
+         END IF
+      END IF
+C ------ THET     DECIDES WHETHER THE JACOBIAN SHOULD BE RECOMPUTED;
+      IF (WORK(3).EQ.0.D0) THEN
+         THET=0.001D0
+      ELSE
+         THET=WORK(3)
+         IF (THET.LE.0.0D0.OR.THET.GE.1.0D0) THEN
+            WRITE(6,*)' CURIOUS INPUT FOR WORK(3)=',WORK(3)
+            ARRET=.TRUE.
+         END IF
+      END IF
+C --- FNEWT   STOPPING CRIERION FOR NEWTON'S METHOD, USUALLY CHOSEN <1.
+      IF (WORK(4).EQ.0.D0) THEN
+         FNEWT=0.03D0
+      ELSE
+         FNEWT=WORK(4)
+         IF (FNEWT.LE.UROUND) THEN
+            WRITE(6,*)' CURIOUS INPUT FOR WORK(4)=',WORK(4)
+            ARRET=.TRUE.
+         END IF
+      END IF
+C --- QUOT1 AND QUOT2: IF QUOT1 < HNEW/HOLD < QUOT2, STEP SIZE = CONST.
+      IF (WORK(5).EQ.0.D0) THEN
+         QUOT1=1.D0
+      ELSE
+         QUOT1=WORK(5)
+      END IF
+      IF (WORK(6).EQ.0.D0) THEN
+         QUOT2=1.2D0
+      ELSE
+         QUOT2=WORK(6)
+      END IF
+      IF (QUOT1.GT.1.0D0.OR.QUOT2.LT.1.0D0) THEN
+         WRITE(6,*)' CURIOUS INPUT FOR WORK(5,6)=',QUOT1,QUOT2
+         ARRET=.TRUE.
+      END IF
+C -------- MAXIMAL STEP SIZE
+      IF (WORK(7).EQ.0.D0) THEN
+         HMAX=XEND-X
+      ELSE
+         HMAX=WORK(7)
+      END IF
+C -------  FACL,FACR     PARAMETERS FOR STEP SIZE SELECTION
+      IF(WORK(8).EQ.0.D0)THEN
+         FACL=5.D0
+      ELSE
+         FACL=1.D0/WORK(8)
+      END IF
+      IF(WORK(9).EQ.0.D0)THEN
+         FACR=1.D0/8.0D0
+      ELSE
+         FACR=1.D0/WORK(9)
+      END IF
+      IF (FACL.LT.1.0D0.OR.FACR.GT.1.0D0) THEN
+            WRITE(6,*)' CURIOUS INPUT WORK(8,9)=',WORK(8),WORK(9)
+            ARRET=.TRUE.
+         END IF
+C --------- CHECK IF TOLERANCES ARE O.K.
+      IF (ITOL.EQ.0) THEN
+          IF (AbsTol(1).LE.0.D0.OR.RelTol(1).LE.10.D0*UROUND) THEN
+              WRITE (6,*) ' TOLERANCES ARE TOO SMALL'
+              ARRET=.TRUE.
+          END IF
+      ELSE
+          DO I=1,N
+          IF (AbsTol(I).LE.0.D0.OR.RelTol(I).LE.10.D0*UROUND) THEN
+              WRITE (6,*) ' TOLERANCES(',I,') ARE TOO SMALL'
+              ARRET=.TRUE.
+          END IF
+          END DO
+      END IF
+C *** *** *** *** *** *** *** *** *** *** *** *** ***
+C         COMPUTATION OF ARRAY ENTRIES
+C *** *** *** *** *** *** *** *** *** *** *** *** ***
+C ---- IMPLICIT, BANDED OR NOT ?
+      IMPLCT=IMAS.NE.0
+      JBAND=MLJAC.LT.NM1
+C -------- COMPUTATION OF THE ROW-DIMENSIONS OF THE 2-ARRAYS ---
+C -- JACOBIAN  AND  MATRICES E1, E2
+      IF (JBAND) THEN
+         LDJAC=MLJAC+MUJAC+1
+         LDE1=MLJAC+LDJAC
+      ELSE
+         MLJAC=NM1
+         MUJAC=NM1
+         LDJAC=NM1
+         LDE1=NM1
+      END IF
+C -- MASS MATRIX
+      IF (IMPLCT) THEN
+          IF (MLMAS.NE.NM1) THEN
+              LDMAS=MLMAS+MUMAS+1
+              IF (JBAND) THEN
+                 IJOB=4
+              ELSE
+                 IJOB=3
+              END IF
+          ELSE
+              LDMAS=NM1
+              IJOB=5
+          END IF
+C ------ BANDWITH OF "MAS" NOT SMALLER THAN BANDWITH OF "JAC"
+          IF (MLMAS.GT.MLJAC.OR.MUMAS.GT.MUJAC) THEN
+             WRITE (6,*) 'BANDWITH OF "MAS" NOT SMALLER THAN BANDWITH OF
+     & "JAC"'
+            ARRET=.TRUE.
+          END IF
+      ELSE
+          LDMAS=0
+          IF (JBAND) THEN
+             IJOB=2
+          ELSE
+             IJOB=1
+             IF (N.GT.2.AND.IWORK(1).NE.0) IJOB=7
+          END IF
+      END IF
+      LDMAS2=MAX(1,LDMAS)
+C ------ HESSENBERG OPTION ONLY FOR EXPLICIT EQU. WITH FULL JACOBIAN
+      IF ((IMPLCT.OR.JBAND).AND.IJOB.EQ.7) THEN
+         WRITE(6,*)' HESSENBERG OPTION ONLY FOR EXPLICIT EQUATIONS WITH
+     &FULL JACOBIAN'
+         ARRET=.TRUE.
+      END IF
+C ------- PREPARE THE ENTRY-POINTS FOR THE ARRAYS IN WORK -----
+      IEZ1=21
+      IEZ2=IEZ1+N
+      IEZ3=IEZ2+N
+      IEY0=IEZ3+N
+      IESCAL=IEY0+N
+      IEF1=IESCAL+N
+      IEF2=IEF1+N
+      IEF3=IEF2+N
+      IECON=IEF3+N
+      IEJAC=IECON+4*N
+      IEMAS=IEJAC+N*LDJAC
+      IEE1=IEMAS+NM1*LDMAS
+      IEE2R=IEE1+NM1*LDE1
+      IEE2I=IEE2R+NM1*LDE1
+C ------ TOTAL STORAGE REQUIREMENT -----------
+      ISTORE=IEE2I+NM1*LDE1-1
+      IF(ISTORE.GT.LWORK)THEN
+         WRITE(6,*)' INSUFFICIENT STORAGE FOR WORK, MIN. LWORK=',ISTORE
+         ARRET=.TRUE.
+      END IF
+C ------- ENTRY POINTS FOR INTEGER WORKSPACE -----
+      IEIP1=21
+      IEIP2=IEIP1+NM1
+      IEIPH=IEIP2+NM1
+C --------- TOTAL REQUIREMENT ---------------
+      ISTORE=IEIPH+NM1-1
+      IF (ISTORE.GT.LIWORK) THEN
+         WRITE(6,*)' INSUFF. STORAGE FOR IWORK, MIN. LIWORK=',ISTORE
+         ARRET=.TRUE.
+      END IF
+C ------ WHEN A FAIL HAS OCCURED, WE RETURN WITH IDID=-1
+      IF (ARRET) THEN
+         IDID=-1
+         RETURN
+      END IF
+C -------- CALL TO CORE INTEGRATOR ------------
+      CALL RADCOR(N,FCN,X,Y,XEND,HMAX,H,RelTol,AbsTol,ITOL,
+     &   JAC,IJAC,MLJAC,MUJAC,MAS,MLMAS,MUMAS,SOLOUT,IOUT,IDID,
+     &   NMAX,UROUND,SAFE,THET,FNEWT,QUOT1,QUOT2,NIT,IJOB,STARTN,
+     &   NIND1,NIND2,NIND3,PRED,FACL,FACR,M1,M2,NM1,
+     &   IMPLCT,JBAND,LDJAC,LDE1,LDMAS2,WORK(IEZ1),WORK(IEZ2),
+     &   WORK(IEZ3),WORK(IEY0),WORK(IESCAL),WORK(IEF1),WORK(IEF2),
+     &   WORK(IEF3),WORK(IEJAC),WORK(IEE1),WORK(IEE2R),WORK(IEE2I),
+     &   WORK(IEMAS),IWORK(IEIP1),IWORK(IEIP2),IWORK(IEIPH),
+     &   WORK(IECON),NFCN,NJAC,NSTEP,NACCPT,NREJCT,NDEC,NSOL,RPAR,IPAR)
+      IWORK(14)=NFCN
+      IWORK(15)=NJAC
+      IWORK(16)=NSTEP
+      IWORK(17)=NACCPT
+      IWORK(18)=NREJCT
+      IWORK(19)=NDEC
+      IWORK(20)=NSOL
+C ----------- RETURN -----------
+      RETURN
+      END
+C
+C     END OF SUBROUTINE RADAU5
+C
+C ***********************************************************
+C
+      SUBROUTINE RADCOR(N,FCN,X,Y,XEND,HMAX,H,RelTol,AbsTol,ITOL,
+     &   JAC,IJAC,MLJAC,MUJAC,MAS,MLMAS,MUMAS,SOLOUT,IOUT,IDID,
+     &   NMAX,UROUND,SAFE,THET,FNEWT,QUOT1,QUOT2,NIT,IJOB,STARTN,
+     &   NIND1,NIND2,NIND3,PRED,FACL,FACR,M1,M2,NM1,
+     &   IMPLCT,BANDED,LDJAC,LDE1,LDMAS,Z1,Z2,Z3,
+     &   Y0,SCAL,F1,F2,F3,FJAC,E1,E2R,E2I,FMAS,IP1,IP2,IPHES,
+     &   CONT,NFCN,NJAC,NSTEP,NACCPT,NREJCT,NDEC,NSOL,RPAR,IPAR)
+C ----------------------------------------------------------
+C     CORE INTEGRATOR FOR RADAU5
+C     PARAMETERS SAME AS IN RADAU5 WITH WORKSPACE ADDED
+C ----------------------------------------------------------
+C         DECLARATIONS
+C ----------------------------------------------------------
+      IMPLICIT KPP_REAL (A-H,O-Z)
+      DIMENSION Y(N),Z1(N),Z2(N),Z3(N),Y0(N),SCAL(N),F1(N),F2(N),F3(N)
+      DIMENSION FJAC(LDJAC,N),FMAS(LDMAS,NM1),CONT(4*N)
+      DIMENSION E1(LDE1,NM1),E2R(LDE1,NM1),E2I(LDE1,NM1)
+      DIMENSION AbsTol(*),RelTol(*),RPAR(*),IPAR(*)
+      INTEGER IP1(NM1),IP2(NM1),IPHES(NM1)
+      COMMON /CONRA5/NN,NN2,NN3,NN4,XSOL,HSOL,C2M1,C1M1
+      COMMON/LINAL/MLE,MUE,MBJAC,MBB,MDIAG,MDIFF,MBDIAG
+      LOGICAL REJECT,FIRST,IMPLCT,BANDED,CALJAC,STARTN,CALHES
+      LOGICAL INDEX1,INDEX2,INDEX3,LAST,PRED
+      EXTERNAL FCN, JAC, MAS, SOLOUT
+C *** *** *** *** *** *** ***
+C  INITIALISATIONS
+C *** *** *** *** *** *** ***
+C --------- DUPLIFY N FOR COMMON BLOCK CONT -----
+      NN=N
+      NN2=2*N
+      NN3=3*N
+      LRC=4*N
+C -------- CHECK THE INDEX OF THE PROBLEM -----
+      INDEX1=NIND1.NE.0
+      INDEX2=NIND2.NE.0
+      INDEX3=NIND3.NE.0
+C ------- COMPUTE MASS MATRIX FOR IMPLICIT CASE ----------
+      IF (IMPLCT) CALL MAS(NM1,FMAS,LDMAS,RPAR,IPAR)
+C ---------- CONSTANTS ---------
+      SQ6=DSQRT(6.D0)
+      C1=(4.D0-SQ6)/10.D0
+      C2=(4.D0+SQ6)/10.D0
+      C1M1=C1-1.D0
+      C2M1=C2-1.D0
+      C1MC2=C1-C2
+      DD1=-(13.D0+7.D0*SQ6)/3.D0
+      DD2=(-13.D0+7.D0*SQ6)/3.D0
+      DD3=-1.D0/3.D0
+      U1=(6.D0+81.D0**(1.D0/3.D0)-9.D0**(1.D0/3.D0))/30.D0
+      ALPH=(12.D0-81.D0**(1.D0/3.D0)+9.D0**(1.D0/3.D0))/60.D0
+      BETA=(81.D0**(1.D0/3.D0)+9.D0**(1.D0/3.D0))*DSQRT(3.D0)/60.D0
+      CNO=ALPH**2+BETA**2
+      U1=1.0D0/U1
+      ALPH=ALPH/CNO
+      BETA=BETA/CNO
+      T11=9.1232394870892942792D-02
+      T12=-0.14125529502095420843D0
+      T13=-3.0029194105147424492D-02
+      T21=0.24171793270710701896D0
+      T22=0.20412935229379993199D0
+      T23=0.38294211275726193779D0
+      T31=0.96604818261509293619D0
+      TI11=4.3255798900631553510D0
+      TI12=0.33919925181580986954D0
+      TI13=0.54177053993587487119D0
+      TI21=-4.1787185915519047273D0
+      TI22=-0.32768282076106238708D0
+      TI23=0.47662355450055045196D0
+      TI31=-0.50287263494578687595D0
+      TI32=2.5719269498556054292D0
+      TI33=-0.59603920482822492497D0
+      IF (M1.GT.0) IJOB=IJOB+10
+      POSNEG=SIGN(1.D0,XEND-X)
+      HMAXN=MIN(ABS(HMAX),ABS(XEND-X))
+      IF (ABS(H).LE.10.D0*UROUND) H=1.0D-6
+      H=MIN(ABS(H),HMAXN)
+      H=SIGN(H,POSNEG)
+      HOLD=H
+      REJECT=.FALSE.
+      FIRST=.TRUE.
+      LAST=.FALSE.
+      IF ((X+H*1.0001D0-XEND)*POSNEG.GE.0.D0) THEN
+         H=XEND-X
+         LAST=.TRUE.
+      END IF
+      FACCON=1.D0
+      CFAC=SAFE*(1+2*NIT)
+      NSING=0
+      XOLD=X
+      IF (IOUT.NE.0) THEN
+          IRTRN=1
+          NRSOL=1
+          XOSOL=XOLD
+          XSOL=X
+          DO I=1,N
+             CONT(I)=Y(I)
+          END DO
+          NSOLU=N
+          HSOL=HOLD
+          CALL SOLOUT(NRSOL,XOSOL,XSOL,Y,CONT,LRC,NSOLU,
+     &                RPAR,IPAR,IRTRN)
+          IF (IRTRN.LT.0) GOTO 179
+      END IF
+      MLE=MLJAC
+      MUE=MUJAC
+      MBJAC=MLJAC+MUJAC+1
+      MBB=MLMAS+MUMAS+1
+      MDIAG=MLE+MUE+1
+      MDIFF=MLE+MUE-MUMAS
+      MBDIAG=MUMAS+1
+      N2=2*N
+      N3=3*N
+      IF (ITOL.EQ.0) THEN
+          DO I=1,N
+             SCAL(I)=AbsTol(1)+RelTol(1)*ABS(Y(I))
+          END DO
+      ELSE
+          DO I=1,N
+             SCAL(I)=AbsTol(I)+RelTol(I)*ABS(Y(I))
+          END DO
+      END IF
+      HHFAC=H
+      CALL FCN(N,X,Y,Y0,RPAR,IPAR)
+      NFCN=NFCN+1
+C --- BASIC INTEGRATION STEP
+  10  CONTINUE
+C *** *** *** *** *** *** ***
+C  COMPUTATION OF THE JACOBIAN
+C *** *** *** *** *** *** ***
+      NJAC=NJAC+1
+      IF (IJAC.EQ.0) THEN
+C --- COMPUTE JACOBIAN MATRIX NUMERICALLY
+         IF (BANDED) THEN
+C --- JACOBIAN IS BANDED
+            MUJACP=MUJAC+1
+            MD=MIN(MBJAC,M2)
+            DO MM=1,M1/M2+1
+               DO K=1,MD
+                  J=K+(MM-1)*M2
+ 12               F1(J)=Y(J)
+                  F2(J)=DSQRT(UROUND*MAX(1.D-5,ABS(Y(J))))
+                  Y(J)=Y(J)+F2(J)
+                  J=J+MD
+                  IF (J.LE.MM*M2) GOTO 12
+                  CALL FCN(N,X,Y,CONT,RPAR,IPAR)
+                  J=K+(MM-1)*M2
+                  J1=K
+                  LBEG=MAX(1,J1-MUJAC)+M1
+ 14               LEND=MIN(M2,J1+MLJAC)+M1
+                  Y(J)=F1(J)
+                  MUJACJ=MUJACP-J1-M1
+                  DO L=LBEG,LEND
+                     FJAC(L+MUJACJ,J)=(CONT(L)-Y0(L))/F2(J)
+                  END DO
+                  J=J+MD
+                  J1=J1+MD
+                  LBEG=LEND+1
+                  IF (J.LE.MM*M2) GOTO 14
+               END DO
+            END DO
+         ELSE
+C --- JACOBIAN IS FULL
+            DO I=1,N
+               YSAFE=Y(I)
+               DELT=DSQRT(UROUND*MAX(1.D-5,ABS(YSAFE)))
+               Y(I)=YSAFE+DELT
+               CALL FCN(N,X,Y,CONT,RPAR,IPAR)
+               DO J=M1+1,N
+                 FJAC(J-M1,I)=(CONT(J)-Y0(J))/DELT
+               END DO
+               Y(I)=YSAFE
+            END DO
+         END IF
+      ELSE
+C --- COMPUTE JACOBIAN MATRIX ANALYTICALLY
+      CALL JAC_CHEM(N,X,Y,FJAC,LDJAC,RPAR,IPAR)
+      END IF
+      CALJAC=.TRUE.
+      CALHES=.TRUE.
+  20  CONTINUE
+C --- COMPUTE THE MATRICES E1 AND E2 AND THEIR DECOMPOSITIONS
+      FAC1=U1/H
+      ALPHN=ALPH/H
+      BETAN=BETA/H
+      CALL DECOMR(N,FJAC,LDJAC,FMAS,LDMAS,MLMAS,MUMAS,
+     &            M1,M2,NM1,FAC1,E1,LDE1,IP1,IER,IJOB,CALHES,IPHES)
+      IF (IER.NE.0) GOTO 78
+      CALL DECOMC(N,FJAC,LDJAC,FMAS,LDMAS,MLMAS,MUMAS,
+     &            M1,M2,NM1,ALPHN,BETAN,E2R,E2I,LDE1,IP2,IER,IJOB)
+      IF (IER.NE.0) GOTO 78
+      NDEC=NDEC+1
+  30  CONTINUE
+      NSTEP=NSTEP+1
+      IF (NSTEP.GT.NMAX) GOTO 178
+      IF (0.1D0*ABS(H).LE.ABS(X)*UROUND) GOTO 177
+          IF (INDEX2) THEN
+             DO I=NIND1+1,NIND1+NIND2
+                SCAL(I)=SCAL(I)/HHFAC
+             END DO
+          END IF
+          IF (INDEX3) THEN
+             DO I=NIND1+NIND2+1,NIND1+NIND2+NIND3
+                SCAL(I)=SCAL(I)/(HHFAC*HHFAC)
+             END DO
+          END IF
+      XPH=X+H
+C *** *** *** *** *** *** ***
+C  STARTING VALUES FOR NEWTON ITERATION
+C *** *** *** *** *** *** ***
+      IF (FIRST.OR.STARTN) THEN
+         DO I=1,N
+            Z1(I)=0.D0
+            Z2(I)=0.D0
+            Z3(I)=0.D0
+            F1(I)=0.D0
+            F2(I)=0.D0
+            F3(I)=0.D0
+         END DO
+      ELSE
+         C3Q=H/HOLD
+         C1Q=C1*C3Q
+         C2Q=C2*C3Q
+         DO I=1,N
+            AK1=CONT(I+N)
+            AK2=CONT(I+N2)
+            AK3=CONT(I+N3)
+            Z1I=C1Q*(AK1+(C1Q-C2M1)*(AK2+(C1Q-C1M1)*AK3))
+            Z2I=C2Q*(AK1+(C2Q-C2M1)*(AK2+(C2Q-C1M1)*AK3))
+            Z3I=C3Q*(AK1+(C3Q-C2M1)*(AK2+(C3Q-C1M1)*AK3))
+            Z1(I)=Z1I
+            Z2(I)=Z2I
+            Z3(I)=Z3I
+            F1(I)=TI11*Z1I+TI12*Z2I+TI13*Z3I
+            F2(I)=TI21*Z1I+TI22*Z2I+TI23*Z3I
+            F3(I)=TI31*Z1I+TI32*Z2I+TI33*Z3I
+         END DO
+      END IF
+C *** *** *** *** *** *** ***
+C  LOOP FOR THE SIMPLIFIED NEWTON ITERATION
+C *** *** *** *** *** *** ***
+            NEWT=0
+            FACCON=MAX(FACCON,UROUND)**0.8D0
+            THETA=ABS(THET)
+  40        CONTINUE
+            IF (NEWT.GE.NIT) GOTO 78
+C ---     COMPUTE THE RIGHT-HAND SIDE
+            DO I=1,N
+               CONT(I)=Y(I)+Z1(I)
+            END DO
+            CALL FCN(N,X+C1*H,CONT,Z1,RPAR,IPAR)
+            DO I=1,N
+               CONT(I)=Y(I)+Z2(I)
+            END DO
+            CALL FCN(N,X+C2*H,CONT,Z2,RPAR,IPAR)
+            DO I=1,N
+               CONT(I)=Y(I)+Z3(I)
+            END DO
+            CALL FCN(N,XPH,CONT,Z3,RPAR,IPAR)
+            NFCN=NFCN+3
+C ---     KppSolve THE LINEAR SYSTEMS
+           DO I=1,N
+              A1=Z1(I)
+              A2=Z2(I)
+              A3=Z3(I)
+              Z1(I)=TI11*A1+TI12*A2+TI13*A3
+              Z2(I)=TI21*A1+TI22*A2+TI23*A3
+              Z3(I)=TI31*A1+TI32*A2+TI33*A3
+           END DO
+        CALL SLVRAD(N,FJAC,LDJAC,MLJAC,MUJAC,FMAS,LDMAS,MLMAS,MUMAS,
+     &          M1,M2,NM1,FAC1,ALPHN,BETAN,E1,E2R,E2I,LDE1,Z1,Z2,Z3,
+     &          F1,F2,F3,CONT,IP1,IP2,IPHES,IER,IJOB)
+            NSOL=NSOL+1
+            NEWT=NEWT+1
+            DYNO=0.D0
+            DO I=1,N
+               DENOM=SCAL(I)
+               DYNO=DYNO+(Z1(I)/DENOM)**2+(Z2(I)/DENOM)**2
+     &          +(Z3(I)/DENOM)**2
+            END DO
+            DYNO=DSQRT(DYNO/N3)
+C ---     BAD CONVERGENCE OR NUMBER OF ITERATIONS TO LARGE
+            IF (NEWT.GT.1.AND.NEWT.LT.NIT) THEN
+                THQ=DYNO/DYNOLD
+                IF (NEWT.EQ.2) THEN
+                   THETA=THQ
+                ELSE
+                   THETA=SQRT(THQ*THQOLD)
+                END IF
+                THQOLD=THQ
+                IF (THETA.LT.0.99D0) THEN
+                    FACCON=THETA/(1.0D0-THETA)
+                    DYTH=FACCON*DYNO*THETA**(NIT-1-NEWT)/FNEWT
+                    IF (DYTH.GE.1.0D0) THEN
+                         QNEWT=DMAX1(1.0D-4,DMIN1(20.0D0,DYTH))
+                         HHFAC=.8D0*QNEWT**(-1.0D0/(4.0D0+NIT-1-NEWT))
+                         H=HHFAC*H
+                         REJECT=.TRUE.
+                         LAST=.FALSE.
+                         IF (CALJAC) GOTO 20
+                         GOTO 10
+                    END IF
+                ELSE
+                    GOTO 78
+                END IF
+            END IF
+            DYNOLD=MAX(DYNO,UROUND)
+            DO I=1,N
+               F1I=F1(I)+Z1(I)
+               F2I=F2(I)+Z2(I)
+               F3I=F3(I)+Z3(I)
+               F1(I)=F1I
+               F2(I)=F2I
+               F3(I)=F3I
+               Z1(I)=T11*F1I+T12*F2I+T13*F3I
+               Z2(I)=T21*F1I+T22*F2I+T23*F3I
+               Z3(I)=T31*F1I+    F2I
+            END DO
+            IF (FACCON*DYNO.GT.FNEWT) GOTO 40
+C --- ERROR ESTIMATION
+      CALL ESTRAD (N,FJAC,LDJAC,MLJAC,MUJAC,FMAS,LDMAS,MLMAS,MUMAS,
+     &          H,DD1,DD2,DD3,FCN,NFCN,Y0,Y,IJOB,X,M1,M2,NM1,
+     &          E1,LDE1,Z1,Z2,Z3,CONT,F1,F2,IP1,IPHES,SCAL,ERR,
+     &          FIRST,REJECT,FAC1,RPAR,IPAR)
+C --- COMPUTATION OF HNEW
+C --- WE REQUIRE .2<=HNEW/H<=8.
+      FAC=MIN(SAFE,CFAC/(NEWT+2*NIT))
+      QUOT=MAX(FACR,MIN(FACL,ERR**.25D0/FAC))
+      HNEW=H/QUOT
+C *** *** *** *** *** *** ***
+C  IS THE ERROR SMALL ENOUGH ?
+C *** *** *** *** *** *** ***
+      IF (ERR.LT.1.D0) THEN
+C --- STEP IS ACCEPTED
+         FIRST=.FALSE.
+         NACCPT=NACCPT+1
+         IF (PRED) THEN
+C       --- PREDICTIVE CONTROLLER OF GUSTAFSSON
+            IF (NACCPT.GT.1) THEN
+               FACGUS=(HACC/H)*(ERR**2/ERRACC)**0.25D0/SAFE
+               FACGUS=MAX(FACR,MIN(FACL,FACGUS))
+               QUOT=MAX(QUOT,FACGUS)
+               HNEW=H/QUOT
+            END IF
+            HACC=H
+            ERRACC=MAX(1.0D-2,ERR)
+         END IF
+         XOLD=X
+         HOLD=H
+         X=XPH
+         DO I=1,N
+            Y(I)=Y(I)+Z3(I)
+            Z2I=Z2(I)
+            Z1I=Z1(I)
+            CONT(I+N)=(Z2I-Z3(I))/C2M1
+            AK=(Z1I-Z2I)/C1MC2
+            ACONT3=Z1I/C1
+            ACONT3=(AK-ACONT3)/C2
+            CONT(I+N2)=(AK-CONT(I+N))/C1M1
+            CONT(I+N3)=CONT(I+N2)-ACONT3
+         END DO
+         IF (ITOL.EQ.0) THEN
+             DO I=1,N
+                SCAL(I)=AbsTol(1)+RelTol(1)*ABS(Y(I))
+             END DO
+         ELSE
+             DO I=1,N
+                SCAL(I)=AbsTol(I)+RelTol(I)*ABS(Y(I))
+             END DO
+         END IF
+         IF (IOUT.NE.0) THEN
+             NRSOL=NACCPT+1
+             XSOL=X
+             XOSOL=XOLD
+             DO I=1,N
+                CONT(I)=Y(I)
+             END DO
+             NSOLU=N
+             HSOL=HOLD
+             CALL SOLOUT(NRSOL,XOSOL,XSOL,Y,CONT,LRC,NSOLU,
+     &                   RPAR,IPAR,IRTRN)
+             IF (IRTRN.LT.0) GOTO 179
+         END IF
+         CALJAC=.FALSE.
+         IF (LAST) THEN
+            H=HOPT
+            IDID=1
+            RETURN
+         END IF
+         CALL FCN(N,X,Y,Y0,RPAR,IPAR)
+         NFCN=NFCN+1
+         HNEW=POSNEG*MIN(ABS(HNEW),HMAXN)
+         HOPT=HNEW
+         HOPT=MIN(H,HNEW)
+         IF (REJECT) HNEW=POSNEG*MIN(ABS(HNEW),ABS(H))
+         REJECT=.FALSE.
+         IF ((X+HNEW/QUOT1-XEND)*POSNEG.GE.0.D0) THEN
+            H=XEND-X
+            LAST=.TRUE.
+         ELSE
+            QT=HNEW/H
+            HHFAC=H
+            IF (THETA.LE.THET.AND.QT.GE.QUOT1.AND.QT.LE.QUOT2) GOTO 30
+            H=HNEW
+         END IF
+         HHFAC=H
+         IF (THETA.LE.THET) GOTO 20
+         GOTO 10
+      ELSE
+C --- STEP IS REJECTED
+         REJECT=.TRUE.
+         LAST=.FALSE.
+         IF (FIRST) THEN
+             H=H*0.1D0
+             HHFAC=0.1D0
+         ELSE
+             HHFAC=HNEW/H
+             H=HNEW
+         END IF
+         IF (NACCPT.GE.1) NREJCT=NREJCT+1
+         IF (CALJAC) GOTO 20
+         GOTO 10
+      END IF
+C --- UNEXPECTED STEP-REJECTION
+  78  CONTINUE
+      IF (IER.NE.0) THEN
+          NSING=NSING+1
+          IF (NSING.GE.5) GOTO 176
+      END IF
+      H=H*0.5D0
+      HHFAC=0.5D0
+      REJECT=.TRUE.
+      LAST=.FALSE.
+      IF (CALJAC) GOTO 20
+      GOTO 10
+C --- FAIL EXIT
+ 176  CONTINUE
+      WRITE(6,979)X
+      WRITE(6,*) ' MATRIX IS REPEATEDLY SINGULAR, IER=',IER
+      IDID=-4
+      RETURN
+ 177  CONTINUE
+      WRITE(6,979)X
+      WRITE(6,*) ' STEP SIZE T0O SMALL, H=',H
+      IDID=-3
+      RETURN
+ 178  CONTINUE
+      WRITE(6,979)X
+      WRITE(6,*) ' MORE THAN NMAX =',NMAX,'STEPS ARE NEEDED'
+      IDID=-2
+      RETURN
+C --- EXIT CAUSED BY SOLOUT
+ 179  CONTINUE
+      WRITE(6,979)X
+ 979  FORMAT(' EXIT OF RADAU5 AT X=',E18.4)
+      IDID=2
+      RETURN
+      END
+C
+C     END OF SUBROUTINE RADCOR
+C
+C ***********************************************************
+C
+      KPP_REAL FUNCTION CONTR5(I,X,CONT,LRC)
+C ----------------------------------------------------------
+C     THIS FUNCTION CAN BE USED FOR CONINUOUS OUTPUT. IT PROVIDES AN
+C     APPROXIMATION TO THE I-TH COMPONENT OF THE SOLUTION AT X.
+C     IT GIVES THE VALUE OF THE COLLOCATION POLYNOMIAL, DEFINED FOR
+C     THE LAST SUCCESSFULLY COMPUTED STEP (BY RADAU5).
+C ----------------------------------------------------------
+      IMPLICIT KPP_REAL (A-H,O-Z)
+      DIMENSION CONT(LRC)
+      COMMON /CONRA5/NN,NN2,NN3,NN4,XSOL,HSOL,C2M1,C1M1
+      S=(X-XSOL)/HSOL
+      CONTR5=CONT(I)+S*(CONT(I+NN)+(S-C2M1)*(CONT(I+NN2)
+     &     +(S-C1M1)*CONT(I+NN3)))
+      RETURN
+      END
+C
+C     END OF FUNCTION CONTR5
+C
+C ***********************************************************
+C ******************************************
+C     VERSION OF SEPTEMBER 18, 1995
+C ******************************************
+C
+      SUBROUTINE DECOMR(N,FJAC,LDJAC,FMAS,LDMAS,MLMAS,MUMAS,
+     &            M1,M2,NM1,FAC1,E1,LDE1,IP1,IER,IJOB,CALHES,IPHES)
+      IMPLICIT KPP_REAL (A-H,O-Z)
+      DIMENSION FJAC(LDJAC,N),FMAS(LDMAS,NM1),E1(LDE1,NM1),
+     &          IP1(NM1),IPHES(N)
+      LOGICAL CALHES
+      COMMON/LINAL/MLE,MUE,MBJAC,MBB,MDIAG,MDIFF,MBDIAG
+C
+      GOTO (1,2,3,4,5,6,7,55,55,55,11,12,13,14,15), IJOB
+C
+C -----------------------------------------------------------
+C
+   1  CONTINUE
+C ---  B=IDENTITY, JACOBIAN A FULL MATRIX
+      DO J=1,N
+         DO  I=1,N
+            E1(I,J)=-FJAC(I,J)
+         END DO
+         E1(J,J)=E1(J,J)+FAC1
+      END DO
+      CALL DEC (N,LDE1,E1,IP1,IER)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  11  CONTINUE
+C ---  B=IDENTITY, JACOBIAN A FULL MATRIX, SECOND ORDER
+      DO J=1,NM1
+         JM1=J+M1
+         DO I=1,NM1
+            E1(I,J)=-FJAC(I,JM1)
+         END DO
+         E1(J,J)=E1(J,J)+FAC1
+      END DO
+ 45   MM=M1/M2
+      DO J=1,M2
+         DO I=1,NM1
+            SUM=0.D0
+            DO K=0,MM-1
+               SUM=(SUM+FJAC(I,J+K*M2))/FAC1
+            END DO
+            E1(I,J)=E1(I,J)-SUM
+         END DO
+      END DO
+      CALL DEC (NM1,LDE1,E1,IP1,IER)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+   2  CONTINUE
+C ---  B=IDENTITY, JACOBIAN A BANDED MATRIX
+      DO J=1,N
+         DO I=1,MBJAC
+            E1(I+MLE,J)=-FJAC(I,J)
+         END DO
+         E1(MDIAG,J)=E1(MDIAG,J)+FAC1
+      END DO
+      CALL DECB (N,LDE1,E1,MLE,MUE,IP1,IER)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  12  CONTINUE
+C ---  B=IDENTITY, JACOBIAN A BANDED MATRIX, SECOND ORDER
+      DO J=1,NM1
+         JM1=J+M1
+         DO I=1,MBJAC
+            E1(I+MLE,J)=-FJAC(I,JM1)
+         END DO
+         E1(MDIAG,J)=E1(MDIAG,J)+FAC1
+      END DO
+  46  MM=M1/M2
+      DO J=1,M2
+         DO I=1,MBJAC
+            SUM=0.D0
+            DO K=0,MM-1
+               SUM=(SUM+FJAC(I,J+K*M2))/FAC1
+            END DO
+            E1(I+MLE,J)=E1(I+MLE,J)-SUM
+         END DO
+      END DO
+      CALL DECB (NM1,LDE1,E1,MLE,MUE,IP1,IER)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+   3  CONTINUE
+C ---  B IS A BANDED MATRIX, JACOBIAN A FULL MATRIX
+      DO J=1,N
+         DO I=1,N
+            E1(I,J)=-FJAC(I,J)
+         END DO
+         DO I=MAX(1,J-MUMAS),MIN(N,J+MLMAS)
+            E1(I,J)=E1(I,J)+FAC1*FMAS(I-J+MBDIAG,J)
+         END DO
+      END DO
+      CALL DEC (N,LDE1,E1,IP1,IER)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  13  CONTINUE
+C ---  B IS A BANDED MATRIX, JACOBIAN A FULL MATRIX, SECOND ORDER
+      DO J=1,NM1
+         JM1=J+M1
+         DO I=1,NM1
+            E1(I,J)=-FJAC(I,JM1)
+         END DO
+         DO I=MAX(1,J-MUMAS),MIN(NM1,J+MLMAS)
+            E1(I,J)=E1(I,J)+FAC1*FMAS(I-J+MBDIAG,J)
+         END DO
+      END DO
+      GOTO 45
+C
+C -----------------------------------------------------------
+C
+   4  CONTINUE
+C ---  B IS A BANDED MATRIX, JACOBIAN A BANDED MATRIX
+      DO J=1,N
+         DO I=1,MBJAC
+            E1(I+MLE,J)=-FJAC(I,J)
+         END DO
+         DO I=1,MBB
+            IB=I+MDIFF
+            E1(IB,J)=E1(IB,J)+FAC1*FMAS(I,J)
+         END DO
+      END DO
+      CALL DECB (N,LDE1,E1,MLE,MUE,IP1,IER)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  14  CONTINUE
+C ---  B IS A BANDED MATRIX, JACOBIAN A BANDED MATRIX, SECOND ORDER
+      DO J=1,NM1
+         JM1=J+M1
+         DO I=1,MBJAC
+            E1(I+MLE,J)=-FJAC(I,JM1)
+         END DO
+         DO I=1,MBB
+            IB=I+MDIFF
+            E1(IB,J)=E1(IB,J)+FAC1*FMAS(I,J)
+         END DO
+      END DO
+      GOTO 46
+C
+C -----------------------------------------------------------
+C
+   5  CONTINUE
+C ---  B IS A FULL MATRIX, JACOBIAN A FULL MATRIX
+      DO J=1,N
+         DO I=1,N
+            E1(I,J)=FMAS(I,J)*FAC1-FJAC(I,J)
+         END DO
+      END DO
+      CALL DEC (N,LDE1,E1,IP1,IER)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  15  CONTINUE
+C ---  B IS A FULL MATRIX, JACOBIAN A FULL MATRIX, SECOND ORDER
+      DO J=1,NM1
+         JM1=J+M1
+         DO I=1,NM1
+            E1(I,J)=FMAS(I,J)*FAC1-FJAC(I,JM1)
+         END DO
+      END DO
+      GOTO 45
+C
+C -----------------------------------------------------------
+C
+   6  CONTINUE
+C ---  B IS A FULL MATRIX, JACOBIAN A BANDED MATRIX
+C ---  THIS OPTION IS NOT PROVIDED
+      RETURN
+C
+C -----------------------------------------------------------
+C
+   7  CONTINUE
+C ---  B=IDENTITY, JACOBIAN A FULL MATRIX, HESSENBERG-OPTION
+      IF (CALHES) CALL Elmhes (LDJAC,N,1,N,FJAC,IPHES)
+      CALHES=.FALSE.
+      DO J=1,N-1
+         J1=J+1
+         E1(J1,J)=-FJAC(J1,J)
+      END DO
+      DO J=1,N
+         DO I=1,J
+            E1(I,J)=-FJAC(I,J)
+         END DO
+         E1(J,J)=E1(J,J)+FAC1
+      END DO
+      CALL DECH(N,LDE1,E1,1,IP1,IER)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  55  CONTINUE
+      RETURN
+      END
+C
+C     END OF SUBROUTINE DECOMR
+C
+C ***********************************************************
+C
+      SUBROUTINE DECOMC(N,FJAC,LDJAC,FMAS,LDMAS,MLMAS,MUMAS,
+     &            M1,M2,NM1,ALPHN,BETAN,E2R,E2I,LDE1,IP2,IER,IJOB)
+      IMPLICIT KPP_REAL (A-H,O-Z)
+      DIMENSION FJAC(LDJAC,N),FMAS(LDMAS,NM1),
+     &          E2R(LDE1,NM1),E2I(LDE1,NM1),IP2(NM1)
+      COMMON/LINAL/MLE,MUE,MBJAC,MBB,MDIAG,MDIFF,MBDIAG
+C
+      GOTO (1,2,3,4,5,6,7,55,55,55,11,12,13,14,15), IJOB
+C
+C -----------------------------------------------------------
+C
+   1  CONTINUE
+C ---  B=IDENTITY, JACOBIAN A FULL MATRIX
+      DO J=1,N
+         DO I=1,N
+            E2R(I,J)=-FJAC(I,J)
+            E2I(I,J)=0.D0
+         END DO
+         E2R(J,J)=E2R(J,J)+ALPHN
+         E2I(J,J)=BETAN
+      END DO
+      CALL DECC (N,LDE1,E2R,E2I,IP2,IER)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  11  CONTINUE
+C ---  B=IDENTITY, JACOBIAN A FULL MATRIX, SECOND ORDER
+      DO J=1,NM1
+         JM1=J+M1
+         DO I=1,NM1
+            E2R(I,J)=-FJAC(I,JM1)
+            E2I(I,J)=0.D0
+         END DO
+         E2R(J,J)=E2R(J,J)+ALPHN
+         E2I(J,J)=BETAN
+      END DO
+  45  MM=M1/M2
+      ABNO=ALPHN**2+BETAN**2
+      ALP=ALPHN/ABNO
+      BET=BETAN/ABNO
+      DO J=1,M2
+         DO I=1,NM1
+            SUMR=0.D0
+            SUMI=0.D0
+            DO K=0,MM-1
+               SUMS=SUMR+FJAC(I,J+K*M2)
+               SUMR=SUMS*ALP+SUMI*BET
+               SUMI=SUMI*ALP-SUMS*BET
+            END DO
+            E2R(I,J)=E2R(I,J)-SUMR
+            E2I(I,J)=E2I(I,J)-SUMI
+         END DO
+      END DO
+      CALL DECC (NM1,LDE1,E2R,E2I,IP2,IER)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+   2  CONTINUE
+C ---  B=IDENTITY, JACOBIAN A BANDED MATRIX
+      DO J=1,N
+         DO I=1,MBJAC
+            IMLE=I+MLE
+            E2R(IMLE,J)=-FJAC(I,J)
+            E2I(IMLE,J)=0.D0
+         END DO
+         E2R(MDIAG,J)=E2R(MDIAG,J)+ALPHN
+         E2I(MDIAG,J)=BETAN
+      END DO
+      CALL DECBC (N,LDE1,E2R,E2I,MLE,MUE,IP2,IER)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  12  CONTINUE
+C ---  B=IDENTITY, JACOBIAN A BANDED MATRIX, SECOND ORDER
+      DO J=1,NM1
+         JM1=J+M1
+         DO I=1,MBJAC
+            E2R(I+MLE,J)=-FJAC(I,JM1)
+            E2I(I+MLE,J)=0.D0
+         END DO
+         E2R(MDIAG,J)=E2R(MDIAG,J)+ALPHN
+         E2I(MDIAG,J)=E2I(MDIAG,J)+BETAN
+      END DO
+  46  MM=M1/M2
+      ABNO=ALPHN**2+BETAN**2
+      ALP=ALPHN/ABNO
+      BET=BETAN/ABNO
+      DO J=1,M2
+         DO I=1,MBJAC
+            SUMR=0.D0
+            SUMI=0.D0
+            DO K=0,MM-1
+               SUMS=SUMR+FJAC(I,J+K*M2)
+               SUMR=SUMS*ALP+SUMI*BET
+               SUMI=SUMI*ALP-SUMS*BET
+            END DO
+            IMLE=I+MLE
+            E2R(IMLE,J)=E2R(IMLE,J)-SUMR
+            E2I(IMLE,J)=E2I(IMLE,J)-SUMI
+         END DO
+      END DO
+      CALL DECBC (NM1,LDE1,E2R,E2I,MLE,MUE,IP2,IER)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+   3  CONTINUE
+C ---  B IS A BANDED MATRIX, JACOBIAN A FULL MATRIX
+      DO  J=1,N
+         DO  I=1,N
+            E2R(I,J)=-FJAC(I,J)
+            E2I(I,J)=0.D0
+         END DO
+      END DO
+      DO J=1,N
+         DO I=MAX(1,J-MUMAS),MIN(N,J+MLMAS)
+            BB=FMAS(I-J+MBDIAG,J)
+            E2R(I,J)=E2R(I,J)+ALPHN*BB
+            E2I(I,J)=BETAN*BB
+         END DO
+      END DO
+      CALL DECC(N,LDE1,E2R,E2I,IP2,IER)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  13  CONTINUE
+C ---  B IS A BANDED MATRIX, JACOBIAN A FULL MATRIX, SECOND ORDER
+      DO J=1,NM1
+         JM1=J+M1
+         DO I=1,NM1
+            E2R(I,J)=-FJAC(I,JM1)
+            E2I(I,J)=0.D0
+         END DO
+         DO I=MAX(1,J-MUMAS),MIN(NM1,J+MLMAS)
+            FFMA=FMAS(I-J+MBDIAG,J)
+            E2R(I,J)=E2R(I,J)+ALPHN*FFMA
+            E2I(I,J)=E2I(I,J)+BETAN*FFMA
+         END DO
+      END DO
+      GOTO 45
+C
+C -----------------------------------------------------------
+C
+   4  CONTINUE
+C ---  B IS A BANDED MATRIX, JACOBIAN A BANDED MATRIX
+      DO J=1,N
+         DO I=1,MBJAC
+            IMLE=I+MLE
+            E2R(IMLE,J)=-FJAC(I,J)
+            E2I(IMLE,J)=0.D0
+         END DO
+         DO I=MAX(1,MUMAS+2-J),MIN(MBB,MUMAS+1-J+N)
+            IB=I+MDIFF
+            BB=FMAS(I,J)
+            E2R(IB,J)=E2R(IB,J)+ALPHN*BB
+            E2I(IB,J)=BETAN*BB
+         END DO
+      END DO
+      CALL DECBC (N,LDE1,E2R,E2I,MLE,MUE,IP2,IER)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  14  CONTINUE
+C ---  B IS A BANDED MATRIX, JACOBIAN A BANDED MATRIX, SECOND ORDER
+      DO J=1,NM1
+         JM1=J+M1
+         DO I=1,MBJAC
+            E2R(I+MLE,J)=-FJAC(I,JM1)
+            E2I(I+MLE,J)=0.D0
+         END DO
+         DO I=1,MBB
+            IB=I+MDIFF
+            FFMA=FMAS(I,J)
+            E2R(IB,J)=E2R(IB,J)+ALPHN*FFMA
+            E2I(IB,J)=E2I(IB,J)+BETAN*FFMA
+         END DO
+      END DO
+      GOTO 46
+C
+C -----------------------------------------------------------
+C
+   5  CONTINUE
+C ---  B IS A FULL MATRIX, JACOBIAN A FULL MATRIX
+      DO J=1,N
+         DO I=1,N
+            BB=FMAS(I,J)
+            E2R(I,J)=BB*ALPHN-FJAC(I,J)
+            E2I(I,J)=BB*BETAN
+         END DO
+      END DO
+      CALL DECC(N,LDE1,E2R,E2I,IP2,IER)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  15  CONTINUE
+C ---  B IS A FULL MATRIX, JACOBIAN A FULL MATRIX, SECOND ORDER
+      DO J=1,NM1
+         JM1=J+M1
+         DO I=1,NM1
+            E2R(I,J)=ALPHN*FMAS(I,J)-FJAC(I,JM1)
+            E2I(I,J)=BETAN*FMAS(I,J)
+         END DO
+      END DO
+      GOTO 45
+C
+C -----------------------------------------------------------
+C
+   6  CONTINUE
+C ---  B IS A FULL MATRIX, JACOBIAN A BANDED MATRIX
+C ---  THIS OPTION IS NOT PROVIDED
+      RETURN
+C
+C -----------------------------------------------------------
+C
+   7  CONTINUE
+C ---  B=IDENTITY, JACOBIAN A FULL MATRIX, HESSENBERG-OPTION
+      DO J=1,N-1
+         J1=J+1
+         E2R(J1,J)=-FJAC(J1,J)
+         E2I(J1,J)=0.D0
+      END DO
+      DO J=1,N
+         DO I=1,J
+            E2I(I,J)=0.D0
+            E2R(I,J)=-FJAC(I,J)
+         END DO
+         E2R(J,J)=E2R(J,J)+ALPHN
+         E2I(J,J)=BETAN
+      END DO
+      CALL DECHC(N,LDE1,E2R,E2I,1,IP2,IER)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  55  CONTINUE
+      RETURN
+      END
+C
+C     END OF SUBROUTINE DECOMC
+C
+C ***********************************************************
+C
+      SUBROUTINE SLVRAR(N,FJAC,LDJAC,MLJAC,MUJAC,FMAS,LDMAS,MLMAS,MUMAS,
+     &          M1,M2,NM1,FAC1,E1,LDE1,Z1,F1,IP1,IPHES,IER,IJOB)
+      IMPLICIT KPP_REAL (A-H,O-Z)
+      DIMENSION FJAC(LDJAC,N),FMAS(LDMAS,NM1),E1(LDE1,NM1),
+     &          IP1(NM1),IPHES(N),Z1(N),F1(N)
+      COMMON/LINAL/MLE,MUE,MBJAC,MBB,MDIAG,MDIFF,MBDIAG
+C
+      GOTO (1,2,3,4,5,6,7,55,55,55,11,12,13,13,15), IJOB
+C
+C -----------------------------------------------------------
+C
+   1  CONTINUE
+C ---  B=IDENTITY, JACOBIAN A FULL MATRIX
+      DO I=1,N
+         Z1(I)=Z1(I)-F1(I)*FAC1
+      END DO
+      CALL SOL (N,LDE1,E1,Z1,IP1)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  11  CONTINUE
+C ---  B=IDENTITY, JACOBIAN A FULL MATRIX, SECOND ORDER
+      DO I=1,N
+         Z1(I)=Z1(I)-F1(I)*FAC1
+      END DO
+ 48   CONTINUE
+      MM=M1/M2
+      DO J=1,M2
+         SUM1=0.D0
+         DO K=MM-1,0,-1
+            JKM=J+K*M2
+            SUM1=(Z1(JKM)+SUM1)/FAC1
+            DO I=1,NM1
+               IM1=I+M1
+               Z1(IM1)=Z1(IM1)+FJAC(I,JKM)*SUM1
+            END DO
+         END DO
+      END DO
+      CALL SOL (NM1,LDE1,E1,Z1(M1+1),IP1)
+ 49   CONTINUE
+      DO I=M1,1,-1
+         Z1(I)=(Z1(I)+Z1(M2+I))/FAC1
+      END DO
+      RETURN
+C
+C -----------------------------------------------------------
+C
+   2  CONTINUE
+C ---  B=IDENTITY, JACOBIAN A BANDED MATRIX
+      DO I=1,N
+         Z1(I)=Z1(I)-F1(I)*FAC1
+      END DO
+      CALL SOLB (N,LDE1,E1,MLE,MUE,Z1,IP1)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  12  CONTINUE
+C ---  B=IDENTITY, JACOBIAN A BANDED MATRIX, SECOND ORDER
+      DO I=1,N
+         Z1(I)=Z1(I)-F1(I)*FAC1
+      END DO
+  45  CONTINUE
+      MM=M1/M2
+      DO J=1,M2
+         SUM1=0.D0
+         DO K=MM-1,0,-1
+            JKM=J+K*M2
+            SUM1=(Z1(JKM)+SUM1)/FAC1
+            DO I=MAX(1,J-MUJAC),MIN(NM1,J+MLJAC)
+               IM1=I+M1
+               Z1(IM1)=Z1(IM1)+FJAC(I+MUJAC+1-J,JKM)*SUM1
+            END DO
+         END DO
+      END DO
+      CALL SOLB (NM1,LDE1,E1,MLE,MUE,Z1(M1+1),IP1)
+      GOTO 49
+C
+C -----------------------------------------------------------
+C
+   3  CONTINUE
+C ---  B IS A BANDED MATRIX, JACOBIAN A FULL MATRIX
+      DO I=1,N
+         S1=0.0D0
+         DO J=MAX(1,I-MLMAS),MIN(N,I+MUMAS)
+            S1=S1-FMAS(I-J+MBDIAG,J)*F1(J)
+         END DO
+         Z1(I)=Z1(I)+S1*FAC1
+      END DO
+      CALL SOL (N,LDE1,E1,Z1,IP1)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  13  CONTINUE
+C ---  B IS A BANDED MATRIX, JACOBIAN A FULL MATRIX, SECOND ORDER
+      DO I=1,M1
+         Z1(I)=Z1(I)-F1(I)*FAC1
+      END DO
+      DO I=1,NM1
+         IM1=I+M1
+         S1=0.0D0
+         DO J=MAX(1,I-MLMAS),MIN(NM1,I+MUMAS)
+            S1=S1-FMAS(I-J+MBDIAG,J)*F1(J+M1)
+         END DO
+         Z1(IM1)=Z1(IM1)+S1*FAC1
+      END DO
+      IF (IJOB.EQ.14) GOTO 45
+      GOTO 48
+C
+C -----------------------------------------------------------
+C
+   4  CONTINUE
+C ---  B IS A BANDED MATRIX, JACOBIAN A BANDED MATRIX
+      DO I=1,N
+         S1=0.0D0
+         DO J=MAX(1,I-MLMAS),MIN(N,I+MUMAS)
+            S1=S1-FMAS(I-J+MBDIAG,J)*F1(J)
+         END DO
+         Z1(I)=Z1(I)+S1*FAC1
+      END DO
+      CALL SOLB (N,LDE1,E1,MLE,MUE,Z1,IP1)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+   5  CONTINUE
+C ---  B IS A FULL MATRIX, JACOBIAN A FULL MATRIX
+      DO I=1,N
+         S1=0.0D0
+         DO J=1,N
+            S1=S1-FMAS(I,J)*F1(J)
+         END DO
+         Z1(I)=Z1(I)+S1*FAC1
+      END DO
+      CALL SOL (N,LDE1,E1,Z1,IP1)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  15  CONTINUE
+C ---  B IS A FULL MATRIX, JACOBIAN A FULL MATRIX, SECOND ORDER
+      DO I=1,M1
+         Z1(I)=Z1(I)-F1(I)*FAC1
+      END DO
+      DO I=1,NM1
+         IM1=I+M1
+         S1=0.0D0
+         DO J=1,NM1
+            S1=S1-FMAS(I,J)*F1(J+M1)
+         END DO
+         Z1(IM1)=Z1(IM1)+S1*FAC1
+      END DO
+      GOTO 48
+C
+C -----------------------------------------------------------
+C
+   6  CONTINUE
+C ---  B IS A FULL MATRIX, JACOBIAN A BANDED MATRIX
+C ---  THIS OPTION IS NOT PROVIDED
+      RETURN
+C
+C -----------------------------------------------------------
+C
+   7  CONTINUE
+C ---  B=IDENTITY, JACOBIAN A FULL MATRIX, HESSENBERG-OPTION
+      DO I=1,N
+         Z1(I)=Z1(I)-F1(I)*FAC1
+      END DO
+      DO MM=N-2,1,-1
+          MP=N-MM
+          MP1=MP-1
+          I=IPHES(MP)
+          IF (I.EQ.MP) GOTO 746
+          ZSAFE=Z1(MP)
+          Z1(MP)=Z1(I)
+          Z1(I)=ZSAFE
+ 746      CONTINUE
+          DO I=MP+1,N
+             Z1(I)=Z1(I)-FJAC(I,MP1)*Z1(MP)
+          END DO
+       END DO
+       CALL SOLH(N,LDE1,E1,1,Z1,IP1)
+       DO MM=1,N-2
+          MP=N-MM
+          MP1=MP-1
+          DO I=MP+1,N
+             Z1(I)=Z1(I)+FJAC(I,MP1)*Z1(MP)
+          END DO
+          I=IPHES(MP)
+          IF (I.EQ.MP) GOTO 750
+          ZSAFE=Z1(MP)
+          Z1(MP)=Z1(I)
+          Z1(I)=ZSAFE
+ 750      CONTINUE
+      END DO
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  55  CONTINUE
+      RETURN
+      END
+C
+C     END OF SUBROUTINE SLVRAR
+C
+C ***********************************************************
+C
+      SUBROUTINE SLVRAI(N,FJAC,LDJAC,MLJAC,MUJAC,FMAS,LDMAS,MLMAS,MUMAS,
+     &          M1,M2,NM1,ALPHN,BETAN,E2R,E2I,LDE1,Z2,Z3,
+     &          F2,F3,CONT,IP2,IPHES,IER,IJOB)
+      IMPLICIT KPP_REAL (A-H,O-Z)
+      DIMENSION FJAC(LDJAC,N),FMAS(LDMAS,NM1),
+     &          IP2(NM1),IPHES(N),Z2(N),Z3(N),F2(N),F3(N)
+      DIMENSION E2R(LDE1,NM1),E2I(LDE1,NM1)
+      COMMON/LINAL/MLE,MUE,MBJAC,MBB,MDIAG,MDIFF,MBDIAG
+C
+      GOTO (1,2,3,4,5,6,7,55,55,55,11,12,13,13,15), IJOB
+C
+C -----------------------------------------------------------
+C
+   1  CONTINUE
+C ---  B=IDENTITY, JACOBIAN A FULL MATRIX
+      DO I=1,N
+         S2=-F2(I)
+         S3=-F3(I)
+         Z2(I)=Z2(I)+S2*ALPHN-S3*BETAN
+         Z3(I)=Z3(I)+S3*ALPHN+S2*BETAN
+      END DO
+      CALL SOLC (N,LDE1,E2R,E2I,Z2,Z3,IP2)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  11  CONTINUE
+C ---  B=IDENTITY, JACOBIAN A FULL MATRIX, SECOND ORDER
+      DO I=1,N
+         S2=-F2(I)
+         S3=-F3(I)
+         Z2(I)=Z2(I)+S2*ALPHN-S3*BETAN
+         Z3(I)=Z3(I)+S3*ALPHN+S2*BETAN
+      END DO
+ 48   ABNO=ALPHN**2+BETAN**2
+      MM=M1/M2
+      DO J=1,M2
+         SUM2=0.D0
+         SUM3=0.D0
+         DO K=MM-1,0,-1
+            JKM=J+K*M2
+            SUMH=(Z2(JKM)+SUM2)/ABNO
+            SUM3=(Z3(JKM)+SUM3)/ABNO
+            SUM2=SUMH*ALPHN+SUM3*BETAN
+            SUM3=SUM3*ALPHN-SUMH*BETAN
+            DO I=1,NM1
+               IM1=I+M1
+               Z2(IM1)=Z2(IM1)+FJAC(I,JKM)*SUM2
+               Z3(IM1)=Z3(IM1)+FJAC(I,JKM)*SUM3
+            END DO
+         END DO
+      END DO
+      CALL SOLC (NM1,LDE1,E2R,E2I,Z2(M1+1),Z3(M1+1),IP2)
+ 49   CONTINUE
+      DO I=M1,1,-1
+         MPI=M2+I
+         Z2I=Z2(I)+Z2(MPI)
+         Z3I=Z3(I)+Z3(MPI)
+         Z3(I)=(Z3I*ALPHN-Z2I*BETAN)/ABNO
+         Z2(I)=(Z2I*ALPHN+Z3I*BETAN)/ABNO
+      END DO
+      RETURN
+C
+C -----------------------------------------------------------
+C
+   2  CONTINUE
+C ---  B=IDENTITY, JACOBIAN A BANDED MATRIX
+      DO I=1,N
+         S2=-F2(I)
+         S3=-F3(I)
+         Z2(I)=Z2(I)+S2*ALPHN-S3*BETAN
+         Z3(I)=Z3(I)+S3*ALPHN+S2*BETAN
+      END DO
+      CALL SOLBC (N,LDE1,E2R,E2I,MLE,MUE,Z2,Z3,IP2)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  12  CONTINUE
+C ---  B=IDENTITY, JACOBIAN A BANDED MATRIX, SECOND ORDER
+      DO I=1,N
+         S2=-F2(I)
+         S3=-F3(I)
+         Z2(I)=Z2(I)+S2*ALPHN-S3*BETAN
+         Z3(I)=Z3(I)+S3*ALPHN+S2*BETAN
+      END DO
+  45  ABNO=ALPHN**2+BETAN**2
+      MM=M1/M2
+      DO J=1,M2
+         SUM2=0.D0
+         SUM3=0.D0
+         DO K=MM-1,0,-1
+            JKM=J+K*M2
+            SUMH=(Z2(JKM)+SUM2)/ABNO
+            SUM3=(Z3(JKM)+SUM3)/ABNO
+            SUM2=SUMH*ALPHN+SUM3*BETAN
+            SUM3=SUM3*ALPHN-SUMH*BETAN
+            DO I=MAX(1,J-MUJAC),MIN(NM1,J+MLJAC)
+               IM1=I+M1
+               IIMU=I+MUJAC+1-J
+               Z2(IM1)=Z2(IM1)+FJAC(IIMU,JKM)*SUM2
+               Z3(IM1)=Z3(IM1)+FJAC(IIMU,JKM)*SUM3
+            END DO
+         END DO
+      END DO
+      CALL SOLBC (NM1,LDE1,E2R,E2I,MLE,MUE,Z2(M1+1),Z3(M1+1),IP2)
+      GOTO 49
+C
+C -----------------------------------------------------------
+C
+   3  CONTINUE
+C ---  B IS A BANDED MATRIX, JACOBIAN A FULL MATRIX
+      DO I=1,N
+         S2=0.0D0
+         S3=0.0D0
+         DO J=MAX(1,I-MLMAS),MIN(N,I+MUMAS)
+            BB=FMAS(I-J+MBDIAG,J)
+            S2=S2-BB*F2(J)
+            S3=S3-BB*F3(J)
+         END DO
+         Z2(I)=Z2(I)+S2*ALPHN-S3*BETAN
+         Z3(I)=Z3(I)+S3*ALPHN+S2*BETAN
+      END DO
+      CALL SOLC(N,LDE1,E2R,E2I,Z2,Z3,IP2)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  13  CONTINUE
+C ---  B IS A BANDED MATRIX, JACOBIAN A FULL MATRIX, SECOND ORDER
+      DO I=1,M1
+         S2=-F2(I)
+         S3=-F3(I)
+         Z2(I)=Z2(I)+S2*ALPHN-S3*BETAN
+         Z3(I)=Z3(I)+S3*ALPHN+S2*BETAN
+      END DO
+      DO I=1,NM1
+         IM1=I+M1
+         S2=0.0D0
+         S3=0.0D0
+         DO J=MAX(1,I-MLMAS),MIN(NM1,I+MUMAS)
+            JM1=J+M1
+            BB=FMAS(I-J+MBDIAG,J)
+            S2=S2-BB*F2(JM1)
+            S3=S3-BB*F3(JM1)
+         END DO
+         Z2(IM1)=Z2(IM1)+S2*ALPHN-S3*BETAN
+         Z3(IM1)=Z3(IM1)+S3*ALPHN+S2*BETAN
+      END DO
+      IF (IJOB.EQ.14) GOTO 45
+      GOTO 48
+C
+C -----------------------------------------------------------
+C
+   4  CONTINUE
+C ---  B IS A BANDED MATRIX, JACOBIAN A BANDED MATRIX
+      DO I=1,N
+         S2=0.0D0
+         S3=0.0D0
+         DO J=MAX(1,I-MLMAS),MIN(N,I+MUMAS)
+            BB=FMAS(I-J+MBDIAG,J)
+            S2=S2-BB*F2(J)
+            S3=S3-BB*F3(J)
+         END DO
+         Z2(I)=Z2(I)+S2*ALPHN-S3*BETAN
+         Z3(I)=Z3(I)+S3*ALPHN+S2*BETAN
+      END DO
+      CALL SOLBC(N,LDE1,E2R,E2I,MLE,MUE,Z2,Z3,IP2)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+   5  CONTINUE
+C ---  B IS A FULL MATRIX, JACOBIAN A FULL MATRIX
+      DO I=1,N
+         S2=0.0D0
+         S3=0.0D0
+         DO J=1,N
+            BB=FMAS(I,J)
+            S2=S2-BB*F2(J)
+            S3=S3-BB*F3(J)
+         END DO
+         Z2(I)=Z2(I)+S2*ALPHN-S3*BETAN
+         Z3(I)=Z3(I)+S3*ALPHN+S2*BETAN
+      END DO
+      CALL SOLC(N,LDE1,E2R,E2I,Z2,Z3,IP2)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  15  CONTINUE
+C ---  B IS A FULL MATRIX, JACOBIAN A FULL MATRIX, SECOND ORDER
+      DO I=1,M1
+         S2=-F2(I)
+         S3=-F3(I)
+         Z2(I)=Z2(I)+S2*ALPHN-S3*BETAN
+         Z3(I)=Z3(I)+S3*ALPHN+S2*BETAN
+      END DO
+      DO I=1,NM1
+         IM1=I+M1
+         S2=0.0D0
+         S3=0.0D0
+         DO J=1,NM1
+            JM1=J+M1
+            BB=FMAS(I,J)
+            S2=S2-BB*F2(JM1)
+            S3=S3-BB*F3(JM1)
+         END DO
+         Z2(IM1)=Z2(IM1)+S2*ALPHN-S3*BETAN
+         Z3(IM1)=Z3(IM1)+S3*ALPHN+S2*BETAN
+      END DO
+      GOTO 48
+C
+C -----------------------------------------------------------
+C
+   6  CONTINUE
+C ---  B IS A FULL MATRIX, JACOBIAN A BANDED MATRIX
+C ---  THIS OPTION IS NOT PROVIDED
+      RETURN
+C
+C -----------------------------------------------------------
+C
+   7  CONTINUE
+C ---  B=IDENTITY, JACOBIAN A FULL MATRIX, HESSENBERG-OPTION
+      DO I=1,N
+         S2=-F2(I)
+         S3=-F3(I)
+         Z2(I)=Z2(I)+S2*ALPHN-S3*BETAN
+         Z3(I)=Z3(I)+S3*ALPHN+S2*BETAN
+      END DO
+      DO MM=N-2,1,-1
+          MP=N-MM
+          MP1=MP-1
+          I=IPHES(MP)
+          IF (I.EQ.MP) GOTO 746
+          ZSAFE=Z2(MP)
+          Z2(MP)=Z2(I)
+          Z2(I)=ZSAFE
+          ZSAFE=Z3(MP)
+          Z3(MP)=Z3(I)
+          Z3(I)=ZSAFE
+ 746      CONTINUE
+          DO I=MP+1,N
+             E1IMP=FJAC(I,MP1)
+             Z2(I)=Z2(I)-E1IMP*Z2(MP)
+             Z3(I)=Z3(I)-E1IMP*Z3(MP)
+          END DO
+       END DO
+       CALL SOLHC(N,LDE1,E2R,E2I,1,Z2,Z3,IP2)
+       DO MM=1,N-2
+          MP=N-MM
+          MP1=MP-1
+          DO I=MP+1,N
+             E1IMP=FJAC(I,MP1)
+             Z2(I)=Z2(I)+E1IMP*Z2(MP)
+             Z3(I)=Z3(I)+E1IMP*Z3(MP)
+          END DO
+          I=IPHES(MP)
+          IF (I.EQ.MP) GOTO 750
+          ZSAFE=Z2(MP)
+          Z2(MP)=Z2(I)
+          Z2(I)=ZSAFE
+          ZSAFE=Z3(MP)
+          Z3(MP)=Z3(I)
+          Z3(I)=ZSAFE
+ 750      CONTINUE
+      END DO
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  55  CONTINUE
+      RETURN
+      END
+C
+C     END OF SUBROUTINE SLVRAI
+C
+C ***********************************************************
+C
+      SUBROUTINE SLVRAD(N,FJAC,LDJAC,MLJAC,MUJAC,FMAS,LDMAS,MLMAS,MUMAS,
+     &          M1,M2,NM1,FAC1,ALPHN,BETAN,E1,E2R,E2I,LDE1,Z1,Z2,Z3,
+     &          F1,F2,F3,CONT,IP1,IP2,IPHES,IER,IJOB)
+      IMPLICIT KPP_REAL (A-H,O-Z)
+      DIMENSION FJAC(LDJAC,N),FMAS(LDMAS,NM1),E1(LDE1,NM1),
+     &          E2R(LDE1,NM1),E2I(LDE1,NM1),IP1(NM1),IP2(NM1),
+     &          IPHES(N),Z1(N),Z2(N),Z3(N),F1(N),F2(N),F3(N)
+      COMMON/LINAL/MLE,MUE,MBJAC,MBB,MDIAG,MDIFF,MBDIAG
+C
+      GOTO (1,2,3,4,5,6,7,55,55,55,11,12,13,13,15), IJOB
+C
+C -----------------------------------------------------------
+C
+   1  CONTINUE
+C ---  B=IDENTITY, JACOBIAN A FULL MATRIX
+      DO I=1,N
+         S2=-F2(I)
+         S3=-F3(I)
+         Z1(I)=Z1(I)-F1(I)*FAC1
+         Z2(I)=Z2(I)+S2*ALPHN-S3*BETAN
+         Z3(I)=Z3(I)+S3*ALPHN+S2*BETAN
+      END DO
+      CALL SOL (N,LDE1,E1,Z1,IP1)
+      CALL SOLC (N,LDE1,E2R,E2I,Z2,Z3,IP2)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  11  CONTINUE
+C ---  B=IDENTITY, JACOBIAN A FULL MATRIX, SECOND ORDER
+      DO I=1,N
+         S2=-F2(I)
+         S3=-F3(I)
+         Z1(I)=Z1(I)-F1(I)*FAC1
+         Z2(I)=Z2(I)+S2*ALPHN-S3*BETAN
+         Z3(I)=Z3(I)+S3*ALPHN+S2*BETAN
+      END DO
+ 48   ABNO=ALPHN**2+BETAN**2
+      MM=M1/M2
+      DO J=1,M2
+         SUM1=0.D0
+         SUM2=0.D0
+         SUM3=0.D0
+         DO K=MM-1,0,-1
+            JKM=J+K*M2
+            SUM1=(Z1(JKM)+SUM1)/FAC1
+            SUMH=(Z2(JKM)+SUM2)/ABNO
+            SUM3=(Z3(JKM)+SUM3)/ABNO
+            SUM2=SUMH*ALPHN+SUM3*BETAN
+            SUM3=SUM3*ALPHN-SUMH*BETAN
+            DO I=1,NM1
+               IM1=I+M1
+               Z1(IM1)=Z1(IM1)+FJAC(I,JKM)*SUM1
+               Z2(IM1)=Z2(IM1)+FJAC(I,JKM)*SUM2
+               Z3(IM1)=Z3(IM1)+FJAC(I,JKM)*SUM3
+            END DO
+         END DO
+      END DO
+      CALL SOL (NM1,LDE1,E1,Z1(M1+1),IP1)
+      CALL SOLC (NM1,LDE1,E2R,E2I,Z2(M1+1),Z3(M1+1),IP2)
+ 49   CONTINUE
+      DO I=M1,1,-1
+         MPI=M2+I
+         Z1(I)=(Z1(I)+Z1(MPI))/FAC1
+         Z2I=Z2(I)+Z2(MPI)
+         Z3I=Z3(I)+Z3(MPI)
+         Z3(I)=(Z3I*ALPHN-Z2I*BETAN)/ABNO
+         Z2(I)=(Z2I*ALPHN+Z3I*BETAN)/ABNO
+      END DO
+      RETURN
+C
+C -----------------------------------------------------------
+C
+   2  CONTINUE
+C ---  B=IDENTITY, JACOBIAN A BANDED MATRIX
+      DO I=1,N
+         S2=-F2(I)
+         S3=-F3(I)
+         Z1(I)=Z1(I)-F1(I)*FAC1
+         Z2(I)=Z2(I)+S2*ALPHN-S3*BETAN
+         Z3(I)=Z3(I)+S3*ALPHN+S2*BETAN
+      END DO
+      CALL SOLB (N,LDE1,E1,MLE,MUE,Z1,IP1)
+      CALL SOLBC (N,LDE1,E2R,E2I,MLE,MUE,Z2,Z3,IP2)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  12  CONTINUE
+C ---  B=IDENTITY, JACOBIAN A BANDED MATRIX, SECOND ORDER
+      DO I=1,N
+         S2=-F2(I)
+         S3=-F3(I)
+         Z1(I)=Z1(I)-F1(I)*FAC1
+         Z2(I)=Z2(I)+S2*ALPHN-S3*BETAN
+         Z3(I)=Z3(I)+S3*ALPHN+S2*BETAN
+      END DO
+  45  ABNO=ALPHN**2+BETAN**2
+      MM=M1/M2
+      DO J=1,M2
+         SUM1=0.D0
+         SUM2=0.D0
+         SUM3=0.D0
+         DO K=MM-1,0,-1
+            JKM=J+K*M2
+            SUM1=(Z1(JKM)+SUM1)/FAC1
+            SUMH=(Z2(JKM)+SUM2)/ABNO
+            SUM3=(Z3(JKM)+SUM3)/ABNO
+            SUM2=SUMH*ALPHN+SUM3*BETAN
+            SUM3=SUM3*ALPHN-SUMH*BETAN
+            DO I=MAX(1,J-MUJAC),MIN(NM1,J+MLJAC)
+               IM1=I+M1
+               FFJA=FJAC(I+MUJAC+1-J,JKM)
+               Z1(IM1)=Z1(IM1)+FFJA*SUM1
+               Z2(IM1)=Z2(IM1)+FFJA*SUM2
+               Z3(IM1)=Z3(IM1)+FFJA*SUM3
+            END DO
+         END DO
+      END DO
+      CALL SOLB (NM1,LDE1,E1,MLE,MUE,Z1(M1+1),IP1)
+      CALL SOLBC (NM1,LDE1,E2R,E2I,MLE,MUE,Z2(M1+1),Z3(M1+1),IP2)
+      GOTO 49
+C
+C -----------------------------------------------------------
+C
+   3  CONTINUE
+C ---  B IS A BANDED MATRIX, JACOBIAN A FULL MATRIX
+      DO I=1,N
+         S1=0.0D0
+         S2=0.0D0
+         S3=0.0D0
+         DO J=MAX(1,I-MLMAS),MIN(N,I+MUMAS)
+            BB=FMAS(I-J+MBDIAG,J)
+            S1=S1-BB*F1(J)
+            S2=S2-BB*F2(J)
+            S3=S3-BB*F3(J)
+         END DO
+         Z1(I)=Z1(I)+S1*FAC1
+         Z2(I)=Z2(I)+S2*ALPHN-S3*BETAN
+         Z3(I)=Z3(I)+S3*ALPHN+S2*BETAN
+      END DO
+      CALL SOL (N,LDE1,E1,Z1,IP1)
+      CALL SOLC(N,LDE1,E2R,E2I,Z2,Z3,IP2)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  13  CONTINUE
+C ---  B IS A BANDED MATRIX, JACOBIAN A FULL MATRIX, SECOND ORDER
+      DO I=1,M1
+         S2=-F2(I)
+         S3=-F3(I)
+         Z1(I)=Z1(I)-F1(I)*FAC1
+         Z2(I)=Z2(I)+S2*ALPHN-S3*BETAN
+         Z3(I)=Z3(I)+S3*ALPHN+S2*BETAN
+      END DO
+      DO I=1,NM1
+         IM1=I+M1
+         S1=0.0D0
+         S2=0.0D0
+         S3=0.0D0
+         J1B=MAX(1,I-MLMAS)
+         J2B=MIN(NM1,I+MUMAS)
+         DO J=J1B,J2B
+            JM1=J+M1
+            BB=FMAS(I-J+MBDIAG,J)
+            S1=S1-BB*F1(JM1)
+            S2=S2-BB*F2(JM1)
+            S3=S3-BB*F3(JM1)
+         END DO
+         Z1(IM1)=Z1(IM1)+S1*FAC1
+         Z2(IM1)=Z2(IM1)+S2*ALPHN-S3*BETAN
+         Z3(IM1)=Z3(IM1)+S3*ALPHN+S2*BETAN
+      END DO
+      IF (IJOB.EQ.14) GOTO 45
+      GOTO 48
+C
+C -----------------------------------------------------------
+C
+   4  CONTINUE
+C ---  B IS A BANDED MATRIX, JACOBIAN A BANDED MATRIX
+      DO I=1,N
+         S1=0.0D0
+         S2=0.0D0
+         S3=0.0D0
+         DO J=MAX(1,I-MLMAS),MIN(N,I+MUMAS)
+            BB=FMAS(I-J+MBDIAG,J)
+            S1=S1-BB*F1(J)
+            S2=S2-BB*F2(J)
+            S3=S3-BB*F3(J)
+         END DO
+         Z1(I)=Z1(I)+S1*FAC1
+         Z2(I)=Z2(I)+S2*ALPHN-S3*BETAN
+         Z3(I)=Z3(I)+S3*ALPHN+S2*BETAN
+      END DO
+      CALL SOLB (N,LDE1,E1,MLE,MUE,Z1,IP1)
+      CALL SOLBC(N,LDE1,E2R,E2I,MLE,MUE,Z2,Z3,IP2)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+   5  CONTINUE
+C ---  B IS A FULL MATRIX, JACOBIAN A FULL MATRIX
+      DO I=1,N
+         S1=0.0D0
+         S2=0.0D0
+         S3=0.0D0
+         DO J=1,N
+            BB=FMAS(I,J)
+            S1=S1-BB*F1(J)
+            S2=S2-BB*F2(J)
+            S3=S3-BB*F3(J)
+         END DO
+         Z1(I)=Z1(I)+S1*FAC1
+         Z2(I)=Z2(I)+S2*ALPHN-S3*BETAN
+         Z3(I)=Z3(I)+S3*ALPHN+S2*BETAN
+      END DO
+      CALL SOL (N,LDE1,E1,Z1,IP1)
+      CALL SOLC(N,LDE1,E2R,E2I,Z2,Z3,IP2)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  15  CONTINUE
+C ---  B IS A FULL MATRIX, JACOBIAN A FULL MATRIX, SECOND ORDER
+      DO I=1,M1
+         S2=-F2(I)
+         S3=-F3(I)
+         Z1(I)=Z1(I)-F1(I)*FAC1
+         Z2(I)=Z2(I)+S2*ALPHN-S3*BETAN
+         Z3(I)=Z3(I)+S3*ALPHN+S2*BETAN
+      END DO
+      DO I=1,NM1
+         IM1=I+M1
+         S1=0.0D0
+         S2=0.0D0
+         S3=0.0D0
+         DO J=1,NM1
+            JM1=J+M1
+            BB=FMAS(I,J)
+            S1=S1-BB*F1(JM1)
+            S2=S2-BB*F2(JM1)
+            S3=S3-BB*F3(JM1)
+         END DO
+         Z1(IM1)=Z1(IM1)+S1*FAC1
+         Z2(IM1)=Z2(IM1)+S2*ALPHN-S3*BETAN
+         Z3(IM1)=Z3(IM1)+S3*ALPHN+S2*BETAN
+      END DO
+      GOTO 48
+C
+C -----------------------------------------------------------
+C
+   6  CONTINUE
+C ---  B IS A FULL MATRIX, JACOBIAN A BANDED MATRIX
+C ---  THIS OPTION IS NOT PROVIDED
+      RETURN
+C
+C -----------------------------------------------------------
+C
+   7  CONTINUE
+C ---  B=IDENTITY, JACOBIAN A FULL MATRIX, HESSENBERG-OPTION
+      DO I=1,N
+         S2=-F2(I)
+         S3=-F3(I)
+         Z1(I)=Z1(I)-F1(I)*FAC1
+         Z2(I)=Z2(I)+S2*ALPHN-S3*BETAN
+         Z3(I)=Z3(I)+S3*ALPHN+S2*BETAN
+      END DO
+      DO MM=N-2,1,-1
+          MP=N-MM
+          MP1=MP-1
+          I=IPHES(MP)
+          IF (I.EQ.MP) GOTO 746
+          ZSAFE=Z1(MP)
+          Z1(MP)=Z1(I)
+          Z1(I)=ZSAFE
+          ZSAFE=Z2(MP)
+          Z2(MP)=Z2(I)
+          Z2(I)=ZSAFE
+          ZSAFE=Z3(MP)
+          Z3(MP)=Z3(I)
+          Z3(I)=ZSAFE
+ 746      CONTINUE
+          DO I=MP+1,N
+             E1IMP=FJAC(I,MP1)
+             Z1(I)=Z1(I)-E1IMP*Z1(MP)
+             Z2(I)=Z2(I)-E1IMP*Z2(MP)
+             Z3(I)=Z3(I)-E1IMP*Z3(MP)
+          END DO
+       END DO
+       CALL SOLH(N,LDE1,E1,1,Z1,IP1)
+       CALL SOLHC(N,LDE1,E2R,E2I,1,Z2,Z3,IP2)
+       DO MM=1,N-2
+          MP=N-MM
+          MP1=MP-1
+          DO I=MP+1,N
+             E1IMP=FJAC(I,MP1)
+             Z1(I)=Z1(I)+E1IMP*Z1(MP)
+             Z2(I)=Z2(I)+E1IMP*Z2(MP)
+             Z3(I)=Z3(I)+E1IMP*Z3(MP)
+          END DO
+          I=IPHES(MP)
+          IF (I.EQ.MP) GOTO 750
+          ZSAFE=Z1(MP)
+          Z1(MP)=Z1(I)
+          Z1(I)=ZSAFE
+          ZSAFE=Z2(MP)
+          Z2(MP)=Z2(I)
+          Z2(I)=ZSAFE
+          ZSAFE=Z3(MP)
+          Z3(MP)=Z3(I)
+          Z3(I)=ZSAFE
+ 750      CONTINUE
+      END DO
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  55  CONTINUE
+      RETURN
+      END
+C
+C     END OF SUBROUTINE SLVRAD
+C
+C ***********************************************************
+C
+      SUBROUTINE ESTRAD(N,FJAC,LDJAC,MLJAC,MUJAC,FMAS,LDMAS,MLMAS,MUMAS,
+     &          H,DD1,DD2,DD3,FCN,NFCN,Y0,Y,IJOB,X,M1,M2,NM1,
+     &          E1,LDE1,Z1,Z2,Z3,CONT,F1,F2,IP1,IPHES,SCAL,ERR,
+     &          FIRST,REJECT,FAC1,RPAR,IPAR)
+      IMPLICIT KPP_REAL (A-H,O-Z)
+      DIMENSION FJAC(LDJAC,N),FMAS(LDMAS,NM1),E1(LDE1,NM1),IP1(NM1),
+     &     SCAL(N),IPHES(N),Z1(N),Z2(N),Z3(N),F1(N),F2(N),Y0(N),Y(N)
+      DIMENSION CONT(N),RPAR(1),IPAR(1)
+      LOGICAL FIRST,REJECT
+      COMMON/LINAL/MLE,MUE,MBJAC,MBB,MDIAG,MDIFF,MBDIAG
+      EXTERNAL FCN
+      HEE1=DD1/H
+      HEE2=DD2/H
+      HEE3=DD3/H
+      GOTO (1,2,3,4,5,6,7,55,55,55,11,12,13,14,15), IJOB
+C
+   1  CONTINUE
+C ------  B=IDENTITY, JACOBIAN A FULL MATRIX
+      DO  I=1,N
+         F2(I)=HEE1*Z1(I)+HEE2*Z2(I)+HEE3*Z3(I)
+         CONT(I)=F2(I)+Y0(I)
+      END DO
+      CALL SOL (N,LDE1,E1,CONT,IP1)
+      GOTO 77
+C
+  11  CONTINUE
+C ------  B=IDENTITY, JACOBIAN A FULL MATRIX, SECOND ORDER
+      DO I=1,N
+         F2(I)=HEE1*Z1(I)+HEE2*Z2(I)+HEE3*Z3(I)
+         CONT(I)=F2(I)+Y0(I)
+      END DO
+  48  MM=M1/M2
+      DO J=1,M2
+         SUM1=0.D0
+         DO K=MM-1,0,-1
+            SUM1=(CONT(J+K*M2)+SUM1)/FAC1
+            DO I=1,NM1
+               IM1=I+M1
+               CONT(IM1)=CONT(IM1)+FJAC(I,J+K*M2)*SUM1
+            END DO
+         END DO
+      END DO
+      CALL SOL (NM1,LDE1,E1,CONT(M1+1),IP1)
+      DO I=M1,1,-1
+         CONT(I)=(CONT(I)+CONT(M2+I))/FAC1
+      END DO
+      GOTO 77
+C
+   2  CONTINUE
+C ------  B=IDENTITY, JACOBIAN A BANDED MATRIX
+      DO I=1,N
+         F2(I)=HEE1*Z1(I)+HEE2*Z2(I)+HEE3*Z3(I)
+         CONT(I)=F2(I)+Y0(I)
+      END DO
+      CALL SOLB (N,LDE1,E1,MLE,MUE,CONT,IP1)
+      GOTO 77
+C
+  12  CONTINUE
+C ------  B=IDENTITY, JACOBIAN A BANDED MATRIX, SECOND ORDER
+      DO I=1,N
+         F2(I)=HEE1*Z1(I)+HEE2*Z2(I)+HEE3*Z3(I)
+         CONT(I)=F2(I)+Y0(I)
+      END DO
+  45  MM=M1/M2
+      DO J=1,M2
+         SUM1=0.D0
+         DO K=MM-1,0,-1
+            SUM1=(CONT(J+K*M2)+SUM1)/FAC1
+            DO I=MAX(1,J-MUJAC),MIN(NM1,J+MLJAC)
+               IM1=I+M1
+               CONT(IM1)=CONT(IM1)+FJAC(I+MUJAC+1-J,J+K*M2)*SUM1
+            END DO
+         END DO
+      END DO
+      CALL SOLB (NM1,LDE1,E1,MLE,MUE,CONT(M1+1),IP1)
+      DO I=M1,1,-1
+         CONT(I)=(CONT(I)+CONT(M2+I))/FAC1
+      END DO
+      GOTO 77
+C
+   3  CONTINUE
+C ------  B IS A BANDED MATRIX, JACOBIAN A FULL MATRIX
+      DO I=1,N
+         F1(I)=HEE1*Z1(I)+HEE2*Z2(I)+HEE3*Z3(I)
+      END DO
+      DO I=1,N
+         SUM=0.D0
+         DO J=MAX(1,I-MLMAS),MIN(N,I+MUMAS)
+            SUM=SUM+FMAS(I-J+MBDIAG,J)*F1(J)
+         END DO
+         F2(I)=SUM
+         CONT(I)=SUM+Y0(I)
+      END DO
+      CALL SOL (N,LDE1,E1,CONT,IP1)
+      GOTO 77
+C
+  13  CONTINUE
+C ------  B IS A BANDED MATRIX, JACOBIAN A FULL MATRIX, SECOND ORDER
+      DO I=1,M1
+         F2(I)=HEE1*Z1(I)+HEE2*Z2(I)+HEE3*Z3(I)
+         CONT(I)=F2(I)+Y0(I)
+      END DO
+      DO I=M1+1,N
+         F1(I)=HEE1*Z1(I)+HEE2*Z2(I)+HEE3*Z3(I)
+      END DO
+      DO I=1,NM1
+         SUM=0.D0
+         DO J=MAX(1,I-MLMAS),MIN(NM1,I+MUMAS)
+            SUM=SUM+FMAS(I-J+MBDIAG,J)*F1(J+M1)
+         END DO
+         IM1=I+M1
+         F2(IM1)=SUM
+         CONT(IM1)=SUM+Y0(IM1)
+      END DO
+      GOTO 48
+C
+   4  CONTINUE
+C ------  B IS A BANDED MATRIX, JACOBIAN A BANDED MATRIX
+      DO I=1,N
+         F1(I)=HEE1*Z1(I)+HEE2*Z2(I)+HEE3*Z3(I)
+      END DO
+      DO I=1,N
+         SUM=0.D0
+         DO J=MAX(1,I-MLMAS),MIN(N,I+MUMAS)
+            SUM=SUM+FMAS(I-J+MBDIAG,J)*F1(J)
+         END DO
+         F2(I)=SUM
+         CONT(I)=SUM+Y0(I)
+      END DO
+      CALL SOLB (N,LDE1,E1,MLE,MUE,CONT,IP1)
+      GOTO 77
+C
+  14  CONTINUE
+C ------  B IS A BANDED MATRIX, JACOBIAN A BANDED MATRIX, SECOND ORDER
+      DO I=1,M1
+         F2(I)=HEE1*Z1(I)+HEE2*Z2(I)+HEE3*Z3(I)
+         CONT(I)=F2(I)+Y0(I)
+      END DO
+      DO I=M1+1,N
+         F1(I)=HEE1*Z1(I)+HEE2*Z2(I)+HEE3*Z3(I)
+      END DO
+      DO I=1,NM1
+         SUM=0.D0
+         DO J=MAX(1,I-MLMAS),MIN(NM1,I+MUMAS)
+            SUM=SUM+FMAS(I-J+MBDIAG,J)*F1(J+M1)
+         END DO
+         IM1=I+M1
+         F2(IM1)=SUM
+         CONT(IM1)=SUM+Y0(IM1)
+      END DO
+      GOTO 45
+C
+   5  CONTINUE
+C ------  B IS A FULL MATRIX, JACOBIAN A FULL MATRIX
+      DO I=1,N
+         F1(I)=HEE1*Z1(I)+HEE2*Z2(I)+HEE3*Z3(I)
+      END DO
+      DO I=1,N
+         SUM=0.D0
+         DO J=1,N
+            SUM=SUM+FMAS(I,J)*F1(J)
+         END DO
+         F2(I)=SUM
+         CONT(I)=SUM+Y0(I)
+      END DO
+      CALL SOL (N,LDE1,E1,CONT,IP1)
+      GOTO 77
+C
+  15  CONTINUE
+C ------  B IS A BANDED MATRIX, JACOBIAN A FULL MATRIX, SECOND ORDER
+      DO I=1,M1
+         F2(I)=HEE1*Z1(I)+HEE2*Z2(I)+HEE3*Z3(I)
+         CONT(I)=F2(I)+Y0(I)
+      END DO
+      DO I=M1+1,N
+         F1(I)=HEE1*Z1(I)+HEE2*Z2(I)+HEE3*Z3(I)
+      END DO
+      DO I=1,NM1
+         SUM=0.D0
+         DO J=1,NM1
+            SUM=SUM+FMAS(I,J)*F1(J+M1)
+         END DO
+         IM1=I+M1
+         F2(IM1)=SUM
+         CONT(IM1)=SUM+Y0(IM1)
+      END DO
+      GOTO 48
+C
+   6  CONTINUE
+C ------  B IS A FULL MATRIX, JACOBIAN A BANDED MATRIX
+C ------  THIS OPTION IS NOT PROVIDED
+      RETURN
+C
+   7  CONTINUE
+C ------  B=IDENTITY, JACOBIAN A FULL MATRIX, HESSENBERG-OPTION
+      DO I=1,N
+         F2(I)=HEE1*Z1(I)+HEE2*Z2(I)+HEE3*Z3(I)
+         CONT(I)=F2(I)+Y0(I)
+      END DO
+      DO MM=N-2,1,-1
+         MP=N-MM
+         I=IPHES(MP)
+         IF (I.EQ.MP) GOTO 310
+         ZSAFE=CONT(MP)
+         CONT(MP)=CONT(I)
+         CONT(I)=ZSAFE
+ 310     CONTINUE
+         DO I=MP+1,N
+            CONT(I)=CONT(I)-FJAC(I,MP-1)*CONT(MP)
+         END DO
+      END DO
+      CALL SOLH(N,LDE1,E1,1,CONT,IP1)
+      DO MM=1,N-2
+         MP=N-MM
+         DO I=MP+1,N
+            CONT(I)=CONT(I)+FJAC(I,MP-1)*CONT(MP)
+         END DO
+         I=IPHES(MP)
+         IF (I.EQ.MP) GOTO 440
+         ZSAFE=CONT(MP)
+         CONT(MP)=CONT(I)
+         CONT(I)=ZSAFE
+ 440     CONTINUE
+      END DO
+C
+C --------------------------------------
+C
+  77  CONTINUE
+      ERR=0.D0
+      DO  I=1,N
+         ERR=ERR+(CONT(I)/SCAL(I))**2
+      END DO
+      ERR=MAX(SQRT(ERR/N),1.D-10)
+C
+      IF (ERR.LT.1.D0) RETURN
+      IF (FIRST.OR.REJECT) THEN
+          DO I=1,N
+             CONT(I)=Y(I)+CONT(I)
+          END DO
+          CALL FCN(N,X,CONT,F1,RPAR,IPAR)
+          NFCN=NFCN+1
+          DO I=1,N
+             CONT(I)=F1(I)+F2(I)
+          END DO
+          GOTO (31,32,31,32,31,32,33,55,55,55,41,42,41,42,41), IJOB
+C ------ FULL MATRIX OPTION
+  31      CONTINUE
+          CALL SOL(N,LDE1,E1,CONT,IP1)
+          GOTO 88
+C ------ FULL MATRIX OPTION, SECOND ORDER
+ 41      CONTINUE
+         DO J=1,M2
+            SUM1=0.D0
+            DO K=MM-1,0,-1
+               SUM1=(CONT(J+K*M2)+SUM1)/FAC1
+               DO I=1,NM1
+                  IM1=I+M1
+                  CONT(IM1)=CONT(IM1)+FJAC(I,J+K*M2)*SUM1
+               END DO
+            END DO
+         END DO
+         CALL SOL(NM1,LDE1,E1,CONT(M1+1),IP1)
+         DO I=M1,1,-1
+            CONT(I)=(CONT(I)+CONT(M2+I))/FAC1
+         END DO
+         GOTO 88
+C ------ BANDED MATRIX OPTION
+ 32      CONTINUE
+         CALL SOLB (N,LDE1,E1,MLE,MUE,CONT,IP1)
+         GOTO 88
+C ------ BANDED MATRIX OPTION, SECOND ORDER
+ 42      CONTINUE
+         DO J=1,M2
+            SUM1=0.D0
+            DO K=MM-1,0,-1
+               SUM1=(CONT(J+K*M2)+SUM1)/FAC1
+               DO I=MAX(1,J-MUJAC),MIN(NM1,J+MLJAC)
+                  IM1=I+M1
+                  CONT(IM1)=CONT(IM1)+FJAC(I+MUJAC+1-J,J+K*M2)*SUM1
+               END DO
+            END DO
+         END DO
+         CALL SOLB (NM1,LDE1,E1,MLE,MUE,CONT(M1+1),IP1)
+         DO I=M1,1,-1
+            CONT(I)=(CONT(I)+CONT(M2+I))/FAC1
+         END DO
+          GOTO 88
+C ------ HESSENBERG MATRIX OPTION
+  33      CONTINUE
+          DO MM=N-2,1,-1
+             MP=N-MM
+             I=IPHES(MP)
+             IF (I.EQ.MP) GOTO 510
+             ZSAFE=CONT(MP)
+             CONT(MP)=CONT(I)
+             CONT(I)=ZSAFE
+ 510         CONTINUE
+             DO I=MP+1,N
+                CONT(I)=CONT(I)-FJAC(I,MP-1)*CONT(MP)
+             END DO
+          END DO
+          CALL SOLH(N,LDE1,E1,1,CONT,IP1)
+          DO MM=1,N-2
+             MP=N-MM
+             DO I=MP+1,N
+                CONT(I)=CONT(I)+FJAC(I,MP-1)*CONT(MP)
+             END DO
+             I=IPHES(MP)
+             IF (I.EQ.MP) GOTO 640
+             ZSAFE=CONT(MP)
+             CONT(MP)=CONT(I)
+             CONT(I)=ZSAFE
+ 640         CONTINUE
+          END DO
+C -----------------------------------
+   88     CONTINUE
+          ERR=0.D0
+          DO I=1,N
+             ERR=ERR+(CONT(I)/SCAL(I))**2
+          END DO
+          ERR=MAX(SQRT(ERR/N),1.D-10)
+       END IF
+       RETURN
+C -----------------------------------------------------------
+  55   CONTINUE
+       RETURN
+       END
+C
+C     END OF SUBROUTINE ESTRAD
+C
+C ***********************************************************
+C
+      SUBROUTINE ESTRAV(N,FJAC,LDJAC,MLJAC,MUJAC,FMAS,LDMAS,MLMAS,MUMAS,
+     &          H,DD,FCN,NFCN,Y0,Y,IJOB,X,M1,M2,NM1,NS,NNS,
+     &          E1,LDE1,ZZ,CONT,FF,IP1,IPHES,SCAL,ERR,
+     &          FIRST,REJECT,FAC1,RPAR,IPAR)
+      IMPLICIT KPP_REAL (A-H,O-Z)
+      DIMENSION FJAC(LDJAC,N),FMAS(LDMAS,NM1),E1(LDE1,NM1),IP1(NM1),
+     &     SCAL(N),IPHES(N),ZZ(NNS),FF(NNS),Y0(N),Y(N)
+      DIMENSION DD(NS),CONT(N),RPAR(1),IPAR(1)
+      LOGICAL FIRST,REJECT
+      COMMON/LINAL/MLE,MUE,MBJAC,MBB,MDIAG,MDIFF,MBDIAG
+      EXTERNAL FCN
+
+      GOTO (1,2,3,4,5,6,7,55,55,55,11,12,13,14,15), IJOB
+C
+   1  CONTINUE
+C ------  B=IDENTITY, JACOBIAN A FULL MATRIX
+      DO  I=1,N
+         SUM=0.D0
+         DO K=1,NS
+            SUM=SUM+DD(K)*ZZ(I+(K-1)*N)
+         END DO
+         FF(I+N)=SUM/H
+         CONT(I)=FF(I+N)+Y0(I)
+      END DO
+      CALL SOL (N,LDE1,E1,CONT,IP1)
+      GOTO 77
+C
+  11  CONTINUE
+C ------  B=IDENTITY, JACOBIAN A FULL MATRIX, SECOND ORDER
+      DO  I=1,N
+         SUM=0.D0
+         DO K=1,NS
+            SUM=SUM+DD(K)*ZZ(I+(K-1)*N)
+         END DO
+         FF(I+N)=SUM/H
+         CONT(I)=FF(I+N)+Y0(I)
+      END DO
+  48  MM=M1/M2
+      DO J=1,M2
+         SUM1=0.D0
+         DO K=MM-1,0,-1
+            SUM1=(CONT(J+K*M2)+SUM1)/FAC1
+            DO I=1,NM1
+               IM1=I+M1
+               CONT(IM1)=CONT(IM1)+FJAC(I,J+K*M2)*SUM1
+            END DO
+         END DO
+      END DO
+      CALL SOL (NM1,LDE1,E1,CONT(M1+1),IP1)
+      DO I=M1,1,-1
+         CONT(I)=(CONT(I)+CONT(M2+I))/FAC1
+      END DO
+      GOTO 77
+C
+   2  CONTINUE
+C ------  B=IDENTITY, JACOBIAN A BANDED MATRIX
+      DO  I=1,N
+         SUM=0.D0
+         DO K=1,NS
+            SUM=SUM+DD(K)*ZZ(I+(K-1)*N)
+         END DO
+         FF(I+N)=SUM/H
+         CONT(I)=FF(I+N)+Y0(I)
+      END DO
+      CALL SOLB (N,LDE1,E1,MLE,MUE,CONT,IP1)
+      GOTO 77
+C
+  12  CONTINUE
+C ------  B=IDENTITY, JACOBIAN A BANDED MATRIX, SECOND ORDER
+      DO  I=1,N
+         SUM=0.D0
+         DO K=1,NS
+            SUM=SUM+DD(K)*ZZ(I+(K-1)*N)
+         END DO
+         FF(I+N)=SUM/H
+         CONT(I)=FF(I+N)+Y0(I)
+      END DO
+  45  MM=M1/M2
+      DO J=1,M2
+         SUM1=0.D0
+         DO K=MM-1,0,-1
+            SUM1=(CONT(J+K*M2)+SUM1)/FAC1
+            DO I=MAX(1,J-MUJAC),MIN(NM1,J+MLJAC)
+               IM1=I+M1
+               CONT(IM1)=CONT(IM1)+FJAC(I+MUJAC+1-J,J+K*M2)*SUM1
+            END DO
+         END DO
+      END DO
+      CALL SOLB (NM1,LDE1,E1,MLE,MUE,CONT(M1+1),IP1)
+      DO I=M1,1,-1
+         CONT(I)=(CONT(I)+CONT(M2+I))/FAC1
+      END DO
+      GOTO 77
+C
+   3  CONTINUE
+C ------  B IS A BANDED MATRIX, JACOBIAN A FULL MATRIX
+      DO  I=1,N
+         SUM=0.D0
+         DO K=1,NS
+            SUM=SUM+DD(K)*ZZ(I+(K-1)*N)
+         END DO
+         FF(I)=SUM/H
+      END DO
+      DO I=1,N
+         SUM=0.D0
+         DO J=MAX(1,I-MLMAS),MIN(N,I+MUMAS)
+            SUM=SUM+FMAS(I-J+MBDIAG,J)*FF(J)
+         END DO
+         FF(I+N)=SUM
+         CONT(I)=SUM+Y0(I)
+      END DO
+      CALL SOL (N,LDE1,E1,CONT,IP1)
+      GOTO 77
+C
+  13  CONTINUE
+C ------  B IS A BANDED MATRIX, JACOBIAN A FULL MATRIX, SECOND ORDER
+      DO  I=1,M1
+         SUM=0.D0
+         DO K=1,NS
+            SUM=SUM+DD(K)*ZZ(I+(K-1)*N)
+         END DO
+         FF(I+N)=SUM/H
+         CONT(I)=FF(I+N)+Y0(I)
+      END DO
+      DO I=M1+1,N
+         SUM=0.D0
+         DO K=1,NS
+            SUM=SUM+DD(K)*ZZ(I+(K-1)*N)
+         END DO
+         FF(I)=SUM/H
+      END DO
+      DO I=1,NM1
+         SUM=0.D0
+         DO J=MAX(1,I-MLMAS),MIN(NM1,I+MUMAS)
+            SUM=SUM+FMAS(I-J+MBDIAG,J)*FF(J+M1)
+         END DO
+         IM1=I+M1
+         FF(IM1+N)=SUM
+         CONT(IM1)=SUM+Y0(IM1)
+      END DO
+      GOTO 48
+C
+   4  CONTINUE
+C ------  B IS A BANDED MATRIX, JACOBIAN A BANDED MATRIX
+      DO  I=1,N
+         SUM=0.D0
+         DO K=1,NS
+            SUM=SUM+DD(K)*ZZ(I+(K-1)*N)
+         END DO
+         FF(I)=SUM/H
+      END DO
+      DO I=1,N
+         SUM=0.D0
+         DO J=MAX(1,I-MLMAS),MIN(N,I+MUMAS)
+            SUM=SUM+FMAS(I-J+MBDIAG,J)*FF(J)
+         END DO
+         FF(I+N)=SUM
+         CONT(I)=SUM+Y0(I)
+      END DO
+      CALL SOLB (N,LDE1,E1,MLE,MUE,CONT,IP1)
+      GOTO 77
+C
+  14  CONTINUE
+C ------  B IS A BANDED MATRIX, JACOBIAN A BANDED MATRIX, SECOND ORDER
+      DO  I=1,M1
+         SUM=0.D0
+         DO K=1,NS
+            SUM=SUM+DD(K)*ZZ(I+(K-1)*N)
+         END DO
+         FF(I+N)=SUM/H
+         CONT(I)=FF(I+N)+Y0(I)
+      END DO
+      DO I=M1+1,N
+         SUM=0.D0
+         DO K=1,NS
+            SUM=SUM+DD(K)*ZZ(I+(K-1)*N)
+         END DO
+         FF(I)=SUM/H
+      END DO
+      DO I=1,NM1
+         SUM=0.D0
+         DO J=MAX(1,I-MLMAS),MIN(NM1,I+MUMAS)
+            SUM=SUM+FMAS(I-J+MBDIAG,J)*FF(J+M1)
+         END DO
+         IM1=I+M1
+         FF(IM1+N)=SUM
+         CONT(IM1)=SUM+Y0(IM1)
+      END DO
+      GOTO 45
+C
+   5  CONTINUE
+C ------  B IS A FULL MATRIX, JACOBIAN A FULL MATRIX
+      DO I=1,N
+         SUM=0.D0
+         DO K=1,NS
+            SUM=SUM+DD(K)*ZZ(I+(K-1)*N)
+         END DO
+         FF(I)=SUM/H
+      END DO
+      DO I=1,N
+         SUM=0.D0
+         DO J=1,N
+            SUM=SUM+FMAS(I,J)*FF(J)
+         END DO
+         FF(I+N)=SUM
+         CONT(I)=SUM+Y0(I)
+      END DO
+      CALL SOL (N,LDE1,E1,CONT,IP1)
+      GOTO 77
+C
+  15  CONTINUE
+C ------  B IS A BANDED MATRIX, JACOBIAN A FULL MATRIX, SECOND ORDER
+      DO  I=1,M1
+         SUM=0.D0
+         DO K=1,NS
+            SUM=SUM+DD(K)*ZZ(I+(K-1)*N)
+         END DO
+         FF(I+N)=SUM/H
+         CONT(I)=FF(I+N)+Y0(I)
+      END DO
+      DO I=M1+1,N
+         SUM=0.D0
+         DO K=1,NS
+            SUM=SUM+DD(K)*ZZ(I+(K-1)*N)
+         END DO
+         FF(I)=SUM/H
+      END DO
+      DO I=1,NM1
+         SUM=0.D0
+         DO J=1,NM1
+            SUM=SUM+FMAS(I,J)*FF(J+M1)
+         END DO
+         IM1=I+M1
+         FF(IM1+N)=SUM
+         CONT(IM1)=SUM+Y0(IM1)
+      END DO
+      GOTO 48
+C
+   6  CONTINUE
+C ------  B IS A FULL MATRIX, JACOBIAN A BANDED MATRIX
+C ------  THIS OPTION IS NOT PROVIDED
+      RETURN
+C
+   7  CONTINUE
+C ------  B=IDENTITY, JACOBIAN A FULL MATRIX, HESSENBERG-OPTION
+      DO  I=1,N
+         SUM=0.D0
+         DO K=1,NS
+            SUM=SUM+DD(K)*ZZ(I+(K-1)*N)
+         END DO
+         FF(I+N)=SUM/H
+         CONT(I)=FF(I+N)+Y0(I)
+      END DO
+      DO MM=N-2,1,-1
+         MP=N-MM
+         I=IPHES(MP)
+         IF (I.EQ.MP) GOTO 310
+         ZSAFE=CONT(MP)
+         CONT(MP)=CONT(I)
+         CONT(I)=ZSAFE
+ 310     CONTINUE
+         DO I=MP+1,N
+            CONT(I)=CONT(I)-FJAC(I,MP-1)*CONT(MP)
+         END DO
+      END DO
+      CALL SOLH(N,LDE1,E1,1,CONT,IP1)
+      DO MM=1,N-2
+         MP=N-MM
+         DO I=MP+1,N
+            CONT(I)=CONT(I)+FJAC(I,MP-1)*CONT(MP)
+         END DO
+         I=IPHES(MP)
+         IF (I.EQ.MP) GOTO 440
+         ZSAFE=CONT(MP)
+         CONT(MP)=CONT(I)
+         CONT(I)=ZSAFE
+ 440     CONTINUE
+      END DO
+C
+C --------------------------------------
+C
+  77  CONTINUE
+      ERR=0.D0
+      DO  I=1,N
+         ERR=ERR+(CONT(I)/SCAL(I))**2
+      END DO
+      ERR=MAX(SQRT(ERR/N),1.D-10)
+C
+      IF (ERR.LT.1.D0) RETURN
+      IF (FIRST.OR.REJECT) THEN
+          DO I=1,N
+             CONT(I)=Y(I)+CONT(I)
+          END DO
+          CALL FCN(N,X,CONT,FF,RPAR,IPAR)
+          NFCN=NFCN+1
+          DO I=1,N
+             CONT(I)=FF(I)+FF(I+N)
+          END DO
+          GOTO (31,32,31,32,31,32,33,55,55,55,41,42,41,42,41), IJOB
+C ------ FULL MATRIX OPTION
+ 31      CONTINUE
+         CALL SOL (N,LDE1,E1,CONT,IP1)
+          GOTO 88
+C ------ FULL MATRIX OPTION, SECOND ORDER
+ 41      CONTINUE
+         DO J=1,M2
+            SUM1=0.D0
+            DO K=MM-1,0,-1
+               SUM1=(CONT(J+K*M2)+SUM1)/FAC1
+               DO I=1,NM1
+                  IM1=I+M1
+                  CONT(IM1)=CONT(IM1)+FJAC(I,J+K*M2)*SUM1
+               END DO
+            END DO
+         END DO
+         CALL SOL (NM1,LDE1,E1,CONT(M1+1),IP1)
+         DO I=M1,1,-1
+            CONT(I)=(CONT(I)+CONT(M2+I))/FAC1
+         END DO
+          GOTO 88
+C ------ BANDED MATRIX OPTION
+ 32      CONTINUE
+         CALL SOLB (N,LDE1,E1,MLE,MUE,CONT,IP1)
+          GOTO 88
+C ------ BANDED MATRIX OPTION, SECOND ORDER
+ 42      CONTINUE
+         DO J=1,M2
+            SUM1=0.D0
+            DO K=MM-1,0,-1
+               SUM1=(CONT(J+K*M2)+SUM1)/FAC1
+               DO I=MAX(1,J-MUJAC),MIN(NM1,J+MLJAC)
+                  IM1=I+M1
+                  CONT(IM1)=CONT(IM1)+FJAC(I+MUJAC+1-J,J+K*M2)*SUM1
+               END DO
+            END DO
+         END DO
+         CALL SOLB (NM1,LDE1,E1,MLE,MUE,CONT(M1+1),IP1)
+         DO I=M1,1,-1
+            CONT(I)=(CONT(I)+CONT(M2+I))/FAC1
+         END DO
+          GOTO 88
+C ------ HESSENBERG MATRIX OPTION
+  33      CONTINUE
+          DO MM=N-2,1,-1
+             MP=N-MM
+             I=IPHES(MP)
+             IF (I.EQ.MP) GOTO 510
+             ZSAFE=CONT(MP)
+             CONT(MP)=CONT(I)
+             CONT(I)=ZSAFE
+ 510         CONTINUE
+             DO I=MP+1,N
+                CONT(I)=CONT(I)-FJAC(I,MP-1)*CONT(MP)
+             END DO
+          END DO
+          CALL SOLH(N,LDE1,E1,1,CONT,IP1)
+          DO MM=1,N-2
+             MP=N-MM
+             DO I=MP+1,N
+                CONT(I)=CONT(I)+FJAC(I,MP-1)*CONT(MP)
+             END DO
+             I=IPHES(MP)
+             IF (I.EQ.MP) GOTO 640
+             ZSAFE=CONT(MP)
+             CONT(MP)=CONT(I)
+             CONT(I)=ZSAFE
+ 640         CONTINUE
+          END DO
+C -----------------------------------
+  88      CONTINUE
+          ERR=0.D0
+          DO I=1,N
+             ERR=ERR+(CONT(I)/SCAL(I))**2
+          END DO
+          ERR=MAX(SQRT(ERR/N),1.D-10)
+       END IF
+       RETURN
+C
+C -----------------------------------------------------------
+C
+  55  CONTINUE
+      RETURN
+       END
+C
+C     END OF SUBROUTINE ESTRAV
+C
+C ***********************************************************
+C
+      SUBROUTINE SLVROD(N,FJAC,LDJAC,MLJAC,MUJAC,FMAS,LDMAS,MLMAS,MUMAS,
+     &          M1,M2,NM1,FAC1,E,LDE,IP,DY,AK,FX,YNEW,HD,IJOB,STAGE1)
+      IMPLICIT KPP_REAL (A-H,O-Z)
+      DIMENSION FJAC(LDJAC,N),FMAS(LDMAS,NM1),E(LDE,NM1),
+     &          IP(NM1),DY(N),AK(N),FX(N),YNEW(N)
+      LOGICAL STAGE1
+      COMMON/LINAL/MLE,MUE,MBJAC,MBB,MDIAG,MDIFF,MBDIAG
+C
+      IF (HD.EQ.0.D0) THEN
+         DO  I=1,N
+           AK(I)=DY(I)
+         END DO
+      ELSE
+         DO I=1,N
+            AK(I)=DY(I)+HD*FX(I)
+         END DO
+      END IF
+C
+      GOTO (1,2,3,4,5,6,55,55,55,55,11,12,13,13,15), IJOB
+C
+C -----------------------------------------------------------
+C
+   1  CONTINUE
+C ---  B=IDENTITY, JACOBIAN A FULL MATRIX
+      IF (STAGE1) THEN
+         DO I=1,N
+            AK(I)=AK(I)+YNEW(I)
+         END DO
+      END IF
+      CALL SOL (N,LDE,E,AK,IP)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  11  CONTINUE
+C ---  B=IDENTITY, JACOBIAN A FULL MATRIX, SECOND ORDER
+      IF (STAGE1) THEN
+         DO I=1,N
+            AK(I)=AK(I)+YNEW(I)
+         END DO
+      END IF
+ 48   MM=M1/M2
+      DO J=1,M2
+         SUM=0.D0
+         DO K=MM-1,0,-1
+            JKM=J+K*M2
+            SUM=(AK(JKM)+SUM)/FAC1
+            DO I=1,NM1
+               IM1=I+M1
+               AK(IM1)=AK(IM1)+FJAC(I,JKM)*SUM
+            END DO
+         END DO
+      END DO
+      CALL SOL (NM1,LDE,E,AK(M1+1),IP)
+      DO I=M1,1,-1
+         AK(I)=(AK(I)+AK(M2+I))/FAC1
+      END DO
+      RETURN
+C
+C -----------------------------------------------------------
+C
+   2  CONTINUE
+C ---  B=IDENTITY, JACOBIAN A BANDED MATRIX
+      IF (STAGE1) THEN
+         DO I=1,N
+            AK(I)=AK(I)+YNEW(I)
+         END DO
+      END IF
+      CALL SOLB (N,LDE,E,MLE,MUE,AK,IP)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  12  CONTINUE
+C ---  B=IDENTITY, JACOBIAN A BANDED MATRIX, SECOND ORDER
+      IF (STAGE1) THEN
+         DO I=1,N
+            AK(I)=AK(I)+YNEW(I)
+         END DO
+      END IF
+  45  MM=M1/M2
+      DO J=1,M2
+         SUM=0.D0
+         DO K=MM-1,0,-1
+            JKM=J+K*M2
+            SUM=(AK(JKM)+SUM)/FAC1
+            DO I=MAX(1,J-MUJAC),MIN(NM1,J+MLJAC)
+               IM1=I+M1
+               AK(IM1)=AK(IM1)+FJAC(I+MUJAC+1-J,JKM)*SUM
+            END DO
+         END DO
+      END DO
+      CALL SOLB (NM1,LDE,E,MLE,MUE,AK(M1+1),IP)
+      DO I=M1,1,-1
+         AK(I)=(AK(I)+AK(M2+I))/FAC1
+      END DO
+      RETURN
+C
+C -----------------------------------------------------------
+C
+   3  CONTINUE
+C ---  B IS A BANDED MATRIX, JACOBIAN A FULL MATRIX
+      IF (STAGE1) THEN
+      DO  I=1,N
+         SUM=0.D0
+         DO  J=MAX(1,I-MLMAS),MIN(N,I+MUMAS)
+            SUM=SUM+FMAS(I-J+MBDIAG,J)*YNEW(J)
+         END DO
+         AK(I)=AK(I)+SUM
+      END DO
+      END IF
+      CALL SOL (N,LDE,E,AK,IP)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  13  CONTINUE
+C ---  B IS A BANDED MATRIX, JACOBIAN A FULL MATRIX, SECOND ORDER
+      IF (STAGE1) THEN
+         DO I=1,M1
+            AK(I)=AK(I)+YNEW(I)
+         END DO
+         DO I=1,NM1
+            SUM=0.D0
+            DO J=MAX(1,I-MLMAS),MIN(NM1,I+MUMAS)
+                SUM=SUM+FMAS(I-J+MBDIAG,J)*YNEW(J+M1)
+            END DO
+            IM1=I+M1
+            AK(IM1)=AK(IM1)+SUM
+         END DO
+      END IF
+      IF (IJOB.EQ.14) GOTO 45
+      GOTO 48
+C
+C -----------------------------------------------------------
+C
+   4  CONTINUE
+C ---  B IS A BANDED MATRIX, JACOBIAN A BANDED MATRIX
+      IF (STAGE1) THEN
+      DO I=1,N
+         SUM=0.D0
+         DO J=MAX(1,I-MLMAS),MIN(N,I+MUMAS)
+            SUM=SUM+FMAS(I-J+MBDIAG,J)*YNEW(J)
+         END DO
+         AK(I)=AK(I)+SUM
+      END DO
+      END IF
+      CALL SOLB (N,LDE,E,MLE,MUE,AK,IP)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+   5  CONTINUE
+C ---  B IS A FULL MATRIX, JACOBIAN A FULL MATRIX
+      IF (STAGE1) THEN
+      DO I=1,N
+         SUM=0.D0
+         DO J=1,N
+            SUM=SUM+FMAS(I,J)*YNEW(J)
+         END DO
+         AK(I)=AK(I)+SUM
+      END DO
+      END IF
+      CALL SOL (N,LDE,E,AK,IP)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  15  CONTINUE
+C ---  B IS A FULL MATRIX, JACOBIAN A FULL MATRIX, SECOND ORDER
+      IF (STAGE1) THEN
+         DO I=1,M1
+            AK(I)=AK(I)+YNEW(I)
+         END DO
+         DO I=1,NM1
+            SUM=0.D0
+            DO J=1,NM1
+               SUM=SUM+FMAS(I,J)*YNEW(J+M1)
+            END DO
+            IM1=I+M1
+            AK(IM1)=AK(IM1)+SUM
+         END DO
+      END IF
+      GOTO 48
+C
+C -----------------------------------------------------------
+C
+   6  CONTINUE
+C ---  B IS A FULL MATRIX, JACOBIAN A BANDED MATRIX
+C ---  THIS OPTION IS NOT PROVIDED
+      IF (STAGE1) THEN
+      DO 624 I=1,N
+         SUM=0.D0
+         DO 623 J=1,N
+  623       SUM=SUM+FMAS(I,J)*YNEW(J)
+  624    AK(I)=AK(I)+SUM
+      CALL SOLB (N,LDE,E,MLE,MUE,AK,IP)
+      END IF
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  55  CONTINUE
+      RETURN
+      END
+C
+C     END OF SUBROUTINE SLVROD
+C
+C
+C ***********************************************************
+C
+      SUBROUTINE SLVSEU(N,FJAC,LDJAC,MLJAC,MUJAC,FMAS,LDMAS,MLMAS,MUMAS,
+     &          M1,M2,NM1,FAC1,E,LDE,IP,IPHES,DEL,IJOB)
+      IMPLICIT KPP_REAL (A-H,O-Z)
+      DIMENSION FJAC(LDJAC,N),FMAS(LDMAS,NM1),E(LDE,NM1),DEL(N)
+      DIMENSION IP(NM1),IPHES(N)
+      COMMON/LINAL/MLE,MUE,MBJAC,MBB,MDIAG,MDIFF,MBDIAG
+C
+      GOTO (1,2,1,2,1,55,7,55,55,55,11,12,11,12,11), IJOB
+C
+C -----------------------------------------------------------
+C
+   1  CONTINUE
+C ---  B=IDENTITY, JACOBIAN A FULL MATRIX
+      CALL SOL (N,LDE,E,DEL,IP)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  11  CONTINUE
+C ---  B=IDENTITY, JACOBIAN A FULL MATRIX, SECOND ORDER
+      MM=M1/M2
+      DO J=1,M2
+         SUM=0.D0
+         DO K=MM-1,0,-1
+            JKM=J+K*M2
+            SUM=(DEL(JKM)+SUM)/FAC1
+            DO I=1,NM1
+               IM1=I+M1
+               DEL(IM1)=DEL(IM1)+FJAC(I,JKM)*SUM
+            END DO
+         END DO
+      END DO
+      CALL SOL (NM1,LDE,E,DEL(M1+1),IP)
+      DO I=M1,1,-1
+         DEL(I)=(DEL(I)+DEL(M2+I))/FAC1
+      END DO
+      RETURN
+C
+C -----------------------------------------------------------
+C
+   2  CONTINUE
+C ---  B=IDENTITY, JACOBIAN A BANDED MATRIX
+      CALL SOLB (N,LDE,E,MLE,MUE,DEL,IP)
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  12  CONTINUE
+C ---  B=IDENTITY, JACOBIAN A BANDED MATRIX, SECOND ORDER
+      MM=M1/M2
+      DO J=1,M2
+         SUM=0.D0
+         DO K=MM-1,0,-1
+            JKM=J+K*M2
+            SUM=(DEL(JKM)+SUM)/FAC1
+            DO I=MAX(1,J-MUJAC),MIN(NM1,J+MLJAC)
+               IM1=I+M1
+               DEL(IM1)=DEL(IM1)+FJAC(I+MUJAC+1-J,JKM)*SUM
+            END DO
+         END DO
+      END DO
+      CALL SOLB (NM1,LDE,E,MLE,MUE,DEL(M1+1),IP)
+      DO I=M1,1,-1
+         DEL(I)=(DEL(I)+DEL(M2+I))/FAC1
+      END DO
+      RETURN
+C
+C -----------------------------------------------------------
+C
+   7  CONTINUE
+C ---  HESSENBERG OPTION
+      DO MMM=N-2,1,-1
+         MP=N-MMM
+         MP1=MP-1
+         I=IPHES(MP)
+         IF (I.EQ.MP) GOTO 110
+         ZSAFE=DEL(MP)
+         DEL(MP)=DEL(I)
+         DEL(I)=ZSAFE
+ 110     CONTINUE
+         DO I=MP+1,N
+            DEL(I)=DEL(I)-FJAC(I,MP1)*DEL(MP)
+         END DO
+      END DO
+      CALL SOLH(N,LDE,E,1,DEL,IP)
+      DO MMM=1,N-2
+         MP=N-MMM
+         MP1=MP-1
+         DO I=MP+1,N
+            DEL(I)=DEL(I)+FJAC(I,MP1)*DEL(MP)
+         END DO
+         I=IPHES(MP)
+         IF (I.EQ.MP) GOTO 240
+         ZSAFE=DEL(MP)
+         DEL(MP)=DEL(I)
+         DEL(I)=ZSAFE
+ 240     CONTINUE
+      END DO
+      RETURN
+C
+C -----------------------------------------------------------
+C
+  55  CONTINUE
+      RETURN
+      END
+C
+C     END OF SUBROUTINE SLVSEU
+C
+      SUBROUTINE DEC (N, NDIM, A, IP, IER)
+C VERSION REAL KPP_REAL
+      INTEGER N,NDIM,IP,IER,NM1,K,KP1,M,I,J
+      KPP_REAL A,T
+      DIMENSION A(NDIM,N), IP(N)
+C-----------------------------------------------------------------------
+C  MATRIX TRIANGULARIZATION BY GAUSSIAN ELIMINATION.
+C  INPUT..
+C     N = ORDER OF MATRIX.
+C     NDIM = DECLARED DIMENSION OF ARRAY  A .
+C     A = MATRIX TO BE TRIANGULARIZED.
+C  OUTPUT..
+C     A(I,J), I.LE.J = UPPER TRIANGULAR FACTOR, U .
+C     A(I,J), I.GT.J = MULTIPLIERS = LOWER TRIANGULAR FACTOR, I - L.
+C     IP(K), K.LT.N = INDEX OF K-TH PIVOT ROW.
+C     IP(N) = (-1)**(NUMBER OF INTERCHANGES) OR O .
+C     IER = 0 IF MATRIX A IS NONSINGULAR, OR K IF FOUND TO BE
+C           SINGULAR AT STAGE K.
+C  USE  SOL  TO OBTAIN SOLUTION OF LINEAR SYSTEM.
+C  DETERM(A) = IP(N)*A(1,1)*A(2,2)*...*A(N,N).
+C  IF IP(N)=O, A IS SINGULAR, SOL WILL DIVIDE BY ZERO.
+C
+C  REFERENCE..
+C     C. B. MOLER, ALGORITHM 423, LINEAR EQUATION KppSolveR,
+C     C.A.C.M. 15 (1972), P. 274.
+C-----------------------------------------------------------------------
+      IER = 0
+      IP(N) = 1
+      IF (N .EQ. 1) GO TO 70
+      NM1 = N - 1
+      DO 60 K = 1,NM1
+        KP1 = K + 1
+        M = K
+        DO 10 I = KP1,N
+          IF (DABS(A(I,K)) .GT. DABS(A(M,K))) M = I
+ 10     CONTINUE
+        IP(K) = M
+        T = A(M,K)
+        IF (M .EQ. K) GO TO 20
+        IP(N) = -IP(N)
+        A(M,K) = A(K,K)
+        A(K,K) = T
+ 20     CONTINUE
+        IF (T .EQ. 0.D0) GO TO 80
+        T = 1.D0/T
+        DO 30 I = KP1,N
+ 30       A(I,K) = -A(I,K)*T
+        DO 50 J = KP1,N
+          T = A(M,J)
+          A(M,J) = A(K,J)
+          A(K,J) = T
+          IF (T .EQ. 0.D0) GO TO 45
+          DO 40 I = KP1,N
+ 40         A(I,J) = A(I,J) + A(I,K)*T
+ 45       CONTINUE
+ 50       CONTINUE
+ 60     CONTINUE
+ 70   K = N
+      IF (A(N,N) .EQ. 0.D0) GO TO 80
+      RETURN
+ 80   IER = K
+      IP(N) = 0
+      RETURN
+C----------------------- END OF SUBROUTINE DEC -------------------------
+      END
+C
+C
+      SUBROUTINE SOL (N, NDIM, A, B, IP)
+C VERSION REAL KPP_REAL
+      INTEGER N,NDIM,IP,NM1,K,KP1,M,I,KB,KM1
+      KPP_REAL A,B,T
+      DIMENSION A(NDIM,N), B(N), IP(N)
+C-----------------------------------------------------------------------
+C  SOLUTION OF LINEAR SYSTEM, A*X = B .
+C  INPUT..
+C    N = ORDER OF MATRIX.
+C    NDIM = DECLARED DIMENSION OF ARRAY  A .
+C    A = TRIANGULARIZED MATRIX OBTAINED FROM DEC.
+C    B = RIGHT HAND SIDE VECTOR.
+C    IP = PIVOT VECTOR OBTAINED FROM DEC.
+C  DO NOT USE IF DEC HAS SET IER .NE. 0.
+C  OUTPUT..
+C    B = SOLUTION VECTOR, X .
+C-----------------------------------------------------------------------
+      IF (N .EQ. 1) GO TO 50
+      NM1 = N - 1
+      DO 20 K = 1,NM1
+        KP1 = K + 1
+        M = IP(K)
+        T = B(M)
+        B(M) = B(K)
+        B(K) = T
+        DO 10 I = KP1,N
+ 10       B(I) = B(I) + A(I,K)*T
+ 20     CONTINUE
+      DO 40 KB = 1,NM1
+        KM1 = N - KB
+        K = KM1 + 1
+        B(K) = B(K)/A(K,K)
+        T = -B(K)
+        DO 30 I = 1,KM1
+ 30       B(I) = B(I) + A(I,K)*T
+ 40     CONTINUE
+ 50   B(1) = B(1)/A(1,1)
+      RETURN
+C----------------------- END OF SUBROUTINE SOL -------------------------
+      END
+c
+c
+      SUBROUTINE DECH (N, NDIM, A, LB, IP, IER)
+C VERSION REAL KPP_REAL
+      INTEGER N,NDIM,IP,IER,NM1,K,KP1,M,I,J,LB,NA
+      KPP_REAL A,T
+      DIMENSION A(NDIM,N), IP(N)
+C-----------------------------------------------------------------------
+C  MATRIX TRIANGULARIZATION BY GAUSSIAN ELIMINATION OF A HESSENBERG
+C  MATRIX WITH LOWER BANDWIDTH LB
+C  INPUT..
+C     N = ORDER OF MATRIX A.
+C     NDIM = DECLARED DIMENSION OF ARRAY  A .
+C     A = MATRIX TO BE TRIANGULARIZED.
+C     LB = LOWER BANDWIDTH OF A (DIAGONAL IS NOT COUNTED, LB.GE.1).
+C  OUTPUT..
+C     A(I,J), I.LE.J = UPPER TRIANGULAR FACTOR, U .
+C     A(I,J), I.GT.J = MULTIPLIERS = LOWER TRIANGULAR FACTOR, I - L.
+C     IP(K), K.LT.N = INDEX OF K-TH PIVOT ROW.
+C     IP(N) = (-1)**(NUMBER OF INTERCHANGES) OR O .
+C     IER = 0 IF MATRIX A IS NONSINGULAR, OR K IF FOUND TO BE
+C           SINGULAR AT STAGE K.
+C  USE  SOLH  TO OBTAIN SOLUTION OF LINEAR SYSTEM.
+C  DETERM(A) = IP(N)*A(1,1)*A(2,2)*...*A(N,N).
+C  IF IP(N)=O, A IS SINGULAR, SOL WILL DIVIDE BY ZERO.
+C
+C  REFERENCE..
+C     THIS IS A SLIGHT MODIFICATION OF
+C     C. B. MOLER, ALGORITHM 423, LINEAR EQUATION KppSolveR,
+C     C.A.C.M. 15 (1972), P. 274.
+C-----------------------------------------------------------------------
+      IER = 0
+      IP(N) = 1
+      IF (N .EQ. 1) GO TO 70
+      NM1 = N - 1
+      DO 60 K = 1,NM1
+        KP1 = K + 1
+        M = K
+        NA = MIN0(N,LB+K)
+        DO 10 I = KP1,NA
+          IF (DABS(A(I,K)) .GT. DABS(A(M,K))) M = I
+ 10     CONTINUE
+        IP(K) = M
+        T = A(M,K)
+        IF (M .EQ. K) GO TO 20
+        IP(N) = -IP(N)
+        A(M,K) = A(K,K)
+        A(K,K) = T
+ 20     CONTINUE
+        IF (T .EQ. 0.D0) GO TO 80
+        T = 1.D0/T
+        DO 30 I = KP1,NA
+ 30       A(I,K) = -A(I,K)*T
+        DO 50 J = KP1,N
+          T = A(M,J)
+          A(M,J) = A(K,J)
+          A(K,J) = T
+          IF (T .EQ. 0.D0) GO TO 45
+          DO 40 I = KP1,NA
+ 40         A(I,J) = A(I,J) + A(I,K)*T
+ 45       CONTINUE
+ 50       CONTINUE
+ 60     CONTINUE
+ 70   K = N
+      IF (A(N,N) .EQ. 0.D0) GO TO 80
+      RETURN
+ 80   IER = K
+      IP(N) = 0
+      RETURN
+C----------------------- END OF SUBROUTINE DECH ------------------------
+      END
+C
+C
+      SUBROUTINE SOLH (N, NDIM, A, LB, B, IP)
+C VERSION REAL KPP_REAL
+      INTEGER N,NDIM,IP,NM1,K,KP1,M,I,KB,KM1,LB,NA
+      KPP_REAL A,B,T
+      DIMENSION A(NDIM,N), B(N), IP(N)
+C-----------------------------------------------------------------------
+C  SOLUTION OF LINEAR SYSTEM, A*X = B .
+C  INPUT..
+C    N = ORDER OF MATRIX A.
+C    NDIM = DECLARED DIMENSION OF ARRAY  A .
+C    A = TRIANGULARIZED MATRIX OBTAINED FROM DECH.
+C    LB = LOWER BANDWIDTH OF A.
+C    B = RIGHT HAND SIDE VECTOR.
+C    IP = PIVOT VECTOR OBTAINED FROM DEC.
+C  DO NOT USE IF DECH HAS SET IER .NE. 0.
+C  OUTPUT..
+C    B = SOLUTION VECTOR, X .
+C-----------------------------------------------------------------------
+      IF (N .EQ. 1) GO TO 50
+      NM1 = N - 1
+      DO 20 K = 1,NM1
+        KP1 = K + 1
+        M = IP(K)
+        T = B(M)
+        B(M) = B(K)
+        B(K) = T
+        NA = MIN0(N,LB+K)
+        DO 10 I = KP1,NA
+ 10       B(I) = B(I) + A(I,K)*T
+ 20     CONTINUE
+      DO 40 KB = 1,NM1
+        KM1 = N - KB
+        K = KM1 + 1
+        B(K) = B(K)/A(K,K)
+        T = -B(K)
+        DO 30 I = 1,KM1
+ 30       B(I) = B(I) + A(I,K)*T
+ 40     CONTINUE
+ 50   B(1) = B(1)/A(1,1)
+      RETURN
+C----------------------- END OF SUBROUTINE SOLH ------------------------
+      END
+C
+      SUBROUTINE DECC (N, NDIM, AR, AI, IP, IER)
+C VERSION COMPLEX KPP_REAL
+      IMPLICIT KPP_REAL (A-H,O-Z)
+      INTEGER N,NDIM,IP,IER,NM1,K,KP1,M,I,J
+      DIMENSION AR(NDIM,N), AI(NDIM,N), IP(N)
+C-----------------------------------------------------------------------
+C  MATRIX TRIANGULARIZATION BY GAUSSIAN ELIMINATION
+C  ------ MODIFICATION FOR COMPLEX MATRICES --------
+C  INPUT..
+C     N = ORDER OF MATRIX.
+C     NDIM = DECLARED DIMENSION OF ARRAYS  AR AND AI .
+C     (AR, AI) = MATRIX TO BE TRIANGULARIZED.
+C  OUTPUT..
+C     AR(I,J), I.LE.J = UPPER TRIANGULAR FACTOR, U ; REAL PART.
+C     AI(I,J), I.LE.J = UPPER TRIANGULAR FACTOR, U ; IMAGINARY PART.
+C     AR(I,J), I.GT.J = MULTIPLIERS = LOWER TRIANGULAR FACTOR, I - L.
+C                                                    REAL PART.
+C     AI(I,J), I.GT.J = MULTIPLIERS = LOWER TRIANGULAR FACTOR, I - L.
+C                                                    IMAGINARY PART.
+C     IP(K), K.LT.N = INDEX OF K-TH PIVOT ROW.
+C     IP(N) = (-1)**(NUMBER OF INTERCHANGES) OR O .
+C     IER = 0 IF MATRIX A IS NONSINGULAR, OR K IF FOUND TO BE
+C           SINGULAR AT STAGE K.
+C  USE  SOL  TO OBTAIN SOLUTION OF LINEAR SYSTEM.
+C  IF IP(N)=O, A IS SINGULAR, SOL WILL DIVIDE BY ZERO.
+C
+C  REFERENCE..
+C     C. B. MOLER, ALGORITHM 423, LINEAR EQUATION KppSolveR,
+C     C.A.C.M. 15 (1972), P. 274.
+C-----------------------------------------------------------------------
+      IER = 0
+      IP(N) = 1
+      IF (N .EQ. 1) GO TO 70
+      NM1 = N - 1
+      DO 60 K = 1,NM1
+        KP1 = K + 1
+        M = K
+        DO 10 I = KP1,N
+          IF (DABS(AR(I,K))+DABS(AI(I,K)) .GT.
+     &          DABS(AR(M,K))+DABS(AI(M,K))) M = I
+ 10     CONTINUE
+        IP(K) = M
+        TR = AR(M,K)
+        TI = AI(M,K)
+        IF (M .EQ. K) GO TO 20
+        IP(N) = -IP(N)
+        AR(M,K) = AR(K,K)
+        AI(M,K) = AI(K,K)
+        AR(K,K) = TR
+        AI(K,K) = TI
+ 20     CONTINUE
+        IF (DABS(TR)+DABS(TI) .EQ. 0.D0) GO TO 80
+        DEN=TR*TR+TI*TI
+        TR=TR/DEN
+        TI=-TI/DEN
+        DO 30 I = KP1,N
+          PRODR=AR(I,K)*TR-AI(I,K)*TI
+          PRODI=AI(I,K)*TR+AR(I,K)*TI
+          AR(I,K)=-PRODR
+          AI(I,K)=-PRODI
+ 30       CONTINUE
+        DO 50 J = KP1,N
+          TR = AR(M,J)
+          TI = AI(M,J)
+          AR(M,J) = AR(K,J)
+          AI(M,J) = AI(K,J)
+          AR(K,J) = TR
+          AI(K,J) = TI
+          IF (DABS(TR)+DABS(TI) .EQ. 0.D0) GO TO 48
+          IF (TI .EQ. 0.D0) THEN
+            DO 40 I = KP1,N
+            PRODR=AR(I,K)*TR
+            PRODI=AI(I,K)*TR
+            AR(I,J) = AR(I,J) + PRODR
+            AI(I,J) = AI(I,J) + PRODI
+ 40         CONTINUE
+            GO TO 48
+          END IF
+          IF (TR .EQ. 0.D0) THEN
+            DO 45 I = KP1,N
+            PRODR=-AI(I,K)*TI
+            PRODI=AR(I,K)*TI
+            AR(I,J) = AR(I,J) + PRODR
+            AI(I,J) = AI(I,J) + PRODI
+ 45         CONTINUE
+            GO TO 48
+          END IF
+          DO 47 I = KP1,N
+            PRODR=AR(I,K)*TR-AI(I,K)*TI
+            PRODI=AI(I,K)*TR+AR(I,K)*TI
+            AR(I,J) = AR(I,J) + PRODR
+            AI(I,J) = AI(I,J) + PRODI
+ 47         CONTINUE
+ 48       CONTINUE
+ 50       CONTINUE
+ 60     CONTINUE
+ 70   K = N
+      IF (DABS(AR(N,N))+DABS(AI(N,N)) .EQ. 0.D0) GO TO 80
+      RETURN
+ 80   IER = K
+      IP(N) = 0
+      RETURN
+C----------------------- END OF SUBROUTINE DECC ------------------------
+      END
+C
+C
+      SUBROUTINE SOLC (N, NDIM, AR, AI, BR, BI, IP)
+C VERSION COMPLEX KPP_REAL
+      IMPLICIT KPP_REAL (A-H,O-Z)
+      INTEGER N,NDIM,IP,NM1,K,KP1,M,I,KB,KM1
+      DIMENSION AR(NDIM,N), AI(NDIM,N), BR(N), BI(N), IP(N)
+C-----------------------------------------------------------------------
+C  SOLUTION OF LINEAR SYSTEM, A*X = B .
+C  INPUT..
+C    N = ORDER OF MATRIX.
+C    NDIM = DECLARED DIMENSION OF ARRAYS  AR AND AI.
+C    (AR,AI) = TRIANGULARIZED MATRIX OBTAINED FROM DEC.
+C    (BR,BI) = RIGHT HAND SIDE VECTOR.
+C    IP = PIVOT VECTOR OBTAINED FROM DEC.
+C  DO NOT USE IF DEC HAS SET IER .NE. 0.
+C  OUTPUT..
+C    (BR,BI) = SOLUTION VECTOR, X .
+C-----------------------------------------------------------------------
+      IF (N .EQ. 1) GO TO 50
+      NM1 = N - 1
+      DO 20 K = 1,NM1
+        KP1 = K + 1
+        M = IP(K)
+        TR = BR(M)
+        TI = BI(M)
+        BR(M) = BR(K)
+        BI(M) = BI(K)
+        BR(K) = TR
+        BI(K) = TI
+        DO 10 I = KP1,N
+          PRODR=AR(I,K)*TR-AI(I,K)*TI
+          PRODI=AI(I,K)*TR+AR(I,K)*TI
+          BR(I) = BR(I) + PRODR
+          BI(I) = BI(I) + PRODI
+ 10       CONTINUE
+ 20     CONTINUE
+      DO 40 KB = 1,NM1
+        KM1 = N - KB
+        K = KM1 + 1
+        DEN=AR(K,K)*AR(K,K)+AI(K,K)*AI(K,K)
+        PRODR=BR(K)*AR(K,K)+BI(K)*AI(K,K)
+        PRODI=BI(K)*AR(K,K)-BR(K)*AI(K,K)
+        BR(K)=PRODR/DEN
+        BI(K)=PRODI/DEN
+        TR = -BR(K)
+        TI = -BI(K)
+        DO 30 I = 1,KM1
+          PRODR=AR(I,K)*TR-AI(I,K)*TI
+          PRODI=AI(I,K)*TR+AR(I,K)*TI
+          BR(I) = BR(I) + PRODR
+          BI(I) = BI(I) + PRODI
+ 30       CONTINUE
+ 40     CONTINUE
+ 50     CONTINUE
+        DEN=AR(1,1)*AR(1,1)+AI(1,1)*AI(1,1)
+        PRODR=BR(1)*AR(1,1)+BI(1)*AI(1,1)
+        PRODI=BI(1)*AR(1,1)-BR(1)*AI(1,1)
+        BR(1)=PRODR/DEN
+        BI(1)=PRODI/DEN
+      RETURN
+C----------------------- END OF SUBROUTINE SOLC ------------------------
+      END
+C
+C
+      SUBROUTINE DECHC (N, NDIM, AR, AI, LB, IP, IER)
+C VERSION COMPLEX KPP_REAL
+      IMPLICIT KPP_REAL (A-H,O-Z)
+      INTEGER N,NDIM,IP,IER,NM1,K,KP1,M,I,J
+      DIMENSION AR(NDIM,N), AI(NDIM,N), IP(N)
+C-----------------------------------------------------------------------
+C  MATRIX TRIANGULARIZATION BY GAUSSIAN ELIMINATION
+C  ------ MODIFICATION FOR COMPLEX MATRICES --------
+C  INPUT..
+C     N = ORDER OF MATRIX.
+C     NDIM = DECLARED DIMENSION OF ARRAYS  AR AND AI .
+C     (AR, AI) = MATRIX TO BE TRIANGULARIZED.
+C  OUTPUT..
+C     AR(I,J), I.LE.J = UPPER TRIANGULAR FACTOR, U ; REAL PART.
+C     AI(I,J), I.LE.J = UPPER TRIANGULAR FACTOR, U ; IMAGINARY PART.
+C     AR(I,J), I.GT.J = MULTIPLIERS = LOWER TRIANGULAR FACTOR, I - L.
+C                                                    REAL PART.
+C     AI(I,J), I.GT.J = MULTIPLIERS = LOWER TRIANGULAR FACTOR, I - L.
+C                                                    IMAGINARY PART.
+C     LB = LOWER BANDWIDTH OF A (DIAGONAL NOT COUNTED), LB.GE.1.
+C     IP(K), K.LT.N = INDEX OF K-TH PIVOT ROW.
+C     IP(N) = (-1)**(NUMBER OF INTERCHANGES) OR O .
+C     IER = 0 IF MATRIX A IS NONSINGULAR, OR K IF FOUND TO BE
+C           SINGULAR AT STAGE K.
+C  USE  SOL  TO OBTAIN SOLUTION OF LINEAR SYSTEM.
+C  IF IP(N)=O, A IS SINGULAR, SOL WILL DIVIDE BY ZERO.
+C
+C  REFERENCE..
+C     C. B. MOLER, ALGORITHM 423, LINEAR EQUATION KppSolveR,
+C     C.A.C.M. 15 (1972), P. 274.
+C-----------------------------------------------------------------------
+      IER = 0
+      IP(N) = 1
+      IF (LB .EQ. 0) GO TO 70
+      IF (N .EQ. 1) GO TO 70
+      NM1 = N - 1
+      DO 60 K = 1,NM1
+        KP1 = K + 1
+        M = K
+        NA = MIN0(N,LB+K)
+        DO 10 I = KP1,NA
+          IF (DABS(AR(I,K))+DABS(AI(I,K)) .GT.
+     &          DABS(AR(M,K))+DABS(AI(M,K))) M = I
+ 10     CONTINUE
+        IP(K) = M
+        TR = AR(M,K)
+        TI = AI(M,K)
+        IF (M .EQ. K) GO TO 20
+        IP(N) = -IP(N)
+        AR(M,K) = AR(K,K)
+        AI(M,K) = AI(K,K)
+        AR(K,K) = TR
+        AI(K,K) = TI
+ 20     CONTINUE
+        IF (DABS(TR)+DABS(TI) .EQ. 0.D0) GO TO 80
+        DEN=TR*TR+TI*TI
+        TR=TR/DEN
+        TI=-TI/DEN
+        DO 30 I = KP1,NA
+          PRODR=AR(I,K)*TR-AI(I,K)*TI
+          PRODI=AI(I,K)*TR+AR(I,K)*TI
+          AR(I,K)=-PRODR
+          AI(I,K)=-PRODI
+ 30       CONTINUE
+        DO 50 J = KP1,N
+          TR = AR(M,J)
+          TI = AI(M,J)
+          AR(M,J) = AR(K,J)
+          AI(M,J) = AI(K,J)
+          AR(K,J) = TR
+          AI(K,J) = TI
+          IF (DABS(TR)+DABS(TI) .EQ. 0.D0) GO TO 48
+          IF (TI .EQ. 0.D0) THEN
+            DO 40 I = KP1,NA
+            PRODR=AR(I,K)*TR
+            PRODI=AI(I,K)*TR
+            AR(I,J) = AR(I,J) + PRODR
+            AI(I,J) = AI(I,J) + PRODI
+ 40         CONTINUE
+            GO TO 48
+          END IF
+          IF (TR .EQ. 0.D0) THEN
+            DO 45 I = KP1,NA
+            PRODR=-AI(I,K)*TI
+            PRODI=AR(I,K)*TI
+            AR(I,J) = AR(I,J) + PRODR
+            AI(I,J) = AI(I,J) + PRODI
+ 45         CONTINUE
+            GO TO 48
+          END IF
+          DO 47 I = KP1,NA
+            PRODR=AR(I,K)*TR-AI(I,K)*TI
+            PRODI=AI(I,K)*TR+AR(I,K)*TI
+            AR(I,J) = AR(I,J) + PRODR
+            AI(I,J) = AI(I,J) + PRODI
+ 47         CONTINUE
+ 48       CONTINUE
+ 50       CONTINUE
+ 60     CONTINUE
+ 70   K = N
+      IF (DABS(AR(N,N))+DABS(AI(N,N)) .EQ. 0.D0) GO TO 80
+      RETURN
+ 80   IER = K
+      IP(N) = 0
+      RETURN
+C----------------------- END OF SUBROUTINE DECHC -----------------------
+      END
+C
+C
+      SUBROUTINE SOLHC (N, NDIM, AR, AI, LB, BR, BI, IP)
+C VERSION COMPLEX KPP_REAL
+      IMPLICIT KPP_REAL (A-H,O-Z)
+      INTEGER N,NDIM,IP,NM1,K,KP1,M,I,KB,KM1
+      DIMENSION AR(NDIM,N), AI(NDIM,N), BR(N), BI(N), IP(N)
+C-----------------------------------------------------------------------
+C  SOLUTION OF LINEAR SYSTEM, A*X = B .
+C  INPUT..
+C    N = ORDER OF MATRIX.
+C    NDIM = DECLARED DIMENSION OF ARRAYS  AR AND AI.
+C    (AR,AI) = TRIANGULARIZED MATRIX OBTAINED FROM DEC.
+C    (BR,BI) = RIGHT HAND SIDE VECTOR.
+C    LB = LOWER BANDWIDTH OF A.
+C    IP = PIVOT VECTOR OBTAINED FROM DEC.
+C  DO NOT USE IF DEC HAS SET IER .NE. 0.
+C  OUTPUT..
+C    (BR,BI) = SOLUTION VECTOR, X .
+C-----------------------------------------------------------------------
+      IF (N .EQ. 1) GO TO 50
+      NM1 = N - 1
+      IF (LB .EQ. 0) GO TO 25
+      DO 20 K = 1,NM1
+        KP1 = K + 1
+        M = IP(K)
+        TR = BR(M)
+        TI = BI(M)
+        BR(M) = BR(K)
+        BI(M) = BI(K)
+        BR(K) = TR
+        BI(K) = TI
+        DO 10 I = KP1,MIN0(N,LB+K)
+          PRODR=AR(I,K)*TR-AI(I,K)*TI
+          PRODI=AI(I,K)*TR+AR(I,K)*TI
+          BR(I) = BR(I) + PRODR
+          BI(I) = BI(I) + PRODI
+ 10       CONTINUE
+ 20     CONTINUE
+ 25     CONTINUE
+      DO 40 KB = 1,NM1
+        KM1 = N - KB
+        K = KM1 + 1
+        DEN=AR(K,K)*AR(K,K)+AI(K,K)*AI(K,K)
+        PRODR=BR(K)*AR(K,K)+BI(K)*AI(K,K)
+        PRODI=BI(K)*AR(K,K)-BR(K)*AI(K,K)
+        BR(K)=PRODR/DEN
+        BI(K)=PRODI/DEN
+        TR = -BR(K)
+        TI = -BI(K)
+        DO 30 I = 1,KM1
+          PRODR=AR(I,K)*TR-AI(I,K)*TI
+          PRODI=AI(I,K)*TR+AR(I,K)*TI
+          BR(I) = BR(I) + PRODR
+          BI(I) = BI(I) + PRODI
+ 30       CONTINUE
+ 40     CONTINUE
+ 50     CONTINUE
+        DEN=AR(1,1)*AR(1,1)+AI(1,1)*AI(1,1)
+        PRODR=BR(1)*AR(1,1)+BI(1)*AI(1,1)
+        PRODI=BI(1)*AR(1,1)-BR(1)*AI(1,1)
+        BR(1)=PRODR/DEN
+        BI(1)=PRODI/DEN
+      RETURN
+C----------------------- END OF SUBROUTINE SOLHC -----------------------
+      END
+C
+      SUBROUTINE DECB (N, NDIM, A, ML, MU, IP, IER)
+      KPP_REAL A,T
+      DIMENSION A(NDIM,N), IP(N)
+C-----------------------------------------------------------------------
+C  MATRIX TRIANGULARIZATION BY GAUSSIAN ELIMINATION OF A BANDED
+C  MATRIX WITH LOWER BANDWIDTH ML AND UPPER BANDWIDTH MU
+C  INPUT..
+C     N       ORDER OF THE ORIGINAL MATRIX A.
+C     NDIM    DECLARED DIMENSION OF ARRAY  A.
+C     A       CONTAINS THE MATRIX IN BAND STORAGE.   THE COLUMNS
+C                OF THE MATRIX ARE STORED IN THE COLUMNS OF  A  AND
+C                THE DIAGONALS OF THE MATRIX ARE STORED IN ROWS
+C                ML+1 THROUGH 2*ML+MU+1 OF  A.
+C     ML      LOWER BANDWIDTH OF A (DIAGONAL IS NOT COUNTED).
+C     MU      UPPER BANDWIDTH OF A (DIAGONAL IS NOT COUNTED).
+C  OUTPUT..
+C     A       AN UPPER TRIANGULAR MATRIX IN BAND STORAGE AND
+C                THE MULTIPLIERS WHICH WERE USED TO OBTAIN IT.
+C     IP      INDEX VECTOR OF PIVOT INDICES.
+C     IP(N)   (-1)**(NUMBER OF INTERCHANGES) OR O .
+C     IER     = 0 IF MATRIX A IS NONSINGULAR, OR  = K IF FOUND TO BE
+C                SINGULAR AT STAGE K.
+C  USE  SOLB  TO OBTAIN SOLUTION OF LINEAR SYSTEM.
+C  DETERM(A) = IP(N)*A(MD,1)*A(MD,2)*...*A(MD,N)  WITH MD=ML+MU+1.
+C  IF IP(N)=O, A IS SINGULAR, SOLB WILL DIVIDE BY ZERO.
+C
+C  REFERENCE..
+C     THIS IS A MODIFICATION OF
+C     C. B. MOLER, ALGORITHM 423, LINEAR EQUATION KppSolveR,
+C     C.A.C.M. 15 (1972), P. 274.
+C-----------------------------------------------------------------------
+      IER = 0
+      IP(N) = 1
+      MD = ML + MU + 1
+      MD1 = MD + 1
+      JU = 0
+      IF (ML .EQ. 0) GO TO 70
+      IF (N .EQ. 1) GO TO 70
+      IF (N .LT. MU+2) GO TO 7
+      DO 5 J = MU+2,N
+      DO 5 I = 1,ML
+  5   A(I,J) = 0.D0
+  7   NM1 = N - 1
+      DO 60 K = 1,NM1
+        KP1 = K + 1
+        M = MD
+        MDL = MIN(ML,N-K) + MD
+        DO 10 I = MD1,MDL
+          IF (DABS(A(I,K)) .GT. DABS(A(M,K))) M = I
+ 10     CONTINUE
+        IP(K) = M + K - MD
+        T = A(M,K)
+        IF (M .EQ. MD) GO TO 20
+        IP(N) = -IP(N)
+        A(M,K) = A(MD,K)
+        A(MD,K) = T
+ 20     CONTINUE
+        IF (T .EQ. 0.D0) GO TO 80
+        T = 1.D0/T
+        DO 30 I = MD1,MDL
+ 30       A(I,K) = -A(I,K)*T
+        JU = MIN0(MAX0(JU,MU+IP(K)),N)
+        MM = MD
+        IF (JU .LT. KP1) GO TO 55
+        DO 50 J = KP1,JU
+          M = M - 1
+          MM = MM - 1
+          T = A(M,J)
+          IF (M .EQ. MM) GO TO 35
+          A(M,J) = A(MM,J)
+          A(MM,J) = T
+ 35       CONTINUE
+          IF (T .EQ. 0.D0) GO TO 45
+          JK = J - K
+          DO 40 I = MD1,MDL
+            IJK = I - JK
+ 40         A(IJK,J) = A(IJK,J) + A(I,K)*T
+ 45       CONTINUE
+ 50       CONTINUE
+ 55     CONTINUE
+ 60     CONTINUE
+ 70   K = N
+      IF (A(MD,N) .EQ. 0.D0) GO TO 80
+      RETURN
+ 80   IER = K
+      IP(N) = 0
+      RETURN
+C----------------------- END OF SUBROUTINE DECB ------------------------
+      END
+C
+C
+      SUBROUTINE SOLB (N, NDIM, A, ML, MU, B, IP)
+      KPP_REAL A,B,T
+      DIMENSION A(NDIM,N), B(N), IP(N)
+C-----------------------------------------------------------------------
+C  SOLUTION OF LINEAR SYSTEM, A*X = B .
+C  INPUT..
+C    N      ORDER OF MATRIX A.
+C    NDIM   DECLARED DIMENSION OF ARRAY  A .
+C    A      TRIANGULARIZED MATRIX OBTAINED FROM DECB.
+C    ML     LOWER BANDWIDTH OF A (DIAGONAL IS NOT COUNTED).
+C    MU     UPPER BANDWIDTH OF A (DIAGONAL IS NOT COUNTED).
+C    B      RIGHT HAND SIDE VECTOR.
+C    IP     PIVOT VECTOR OBTAINED FROM DECB.
+C  DO NOT USE IF DECB HAS SET IER .NE. 0.
+C  OUTPUT..
+C    B      SOLUTION VECTOR, X .
+C-----------------------------------------------------------------------
+      MD = ML + MU + 1
+      MD1 = MD + 1
+      MDM = MD - 1
+      NM1 = N - 1
+      IF (ML .EQ. 0) GO TO 25
+      IF (N .EQ. 1) GO TO 50
+      DO 20 K = 1,NM1
+        M = IP(K)
+        T = B(M)
+        B(M) = B(K)
+        B(K) = T
+        MDL = MIN(ML,N-K) + MD
+        DO 10 I = MD1,MDL
+          IMD = I + K - MD
+ 10       B(IMD) = B(IMD) + A(I,K)*T
+ 20     CONTINUE
+ 25   CONTINUE
+      DO 40 KB = 1,NM1
+        K = N + 1 - KB
+        B(K) = B(K)/A(MD,K)
+        T = -B(K)
+        KMD = MD - K
+        LM = MAX0(1,KMD+1)
+        DO 30 I = LM,MDM
+          IMD = I - KMD
+ 30       B(IMD) = B(IMD) + A(I,K)*T
+ 40     CONTINUE
+ 50   B(1) = B(1)/A(MD,1)
+      RETURN
+C----------------------- END OF SUBROUTINE SOLB ------------------------
+      END
+C
+      SUBROUTINE DECBC (N, NDIM, AR, AI, ML, MU, IP, IER)
+      IMPLICIT KPP_REAL (A-H,O-Z)
+      DIMENSION AR(NDIM,N), AI(NDIM,N), IP(N)
+C-----------------------------------------------------------------------
+C  MATRIX TRIANGULARIZATION BY GAUSSIAN ELIMINATION OF A BANDED COMPLEX
+C  MATRIX WITH LOWER BANDWIDTH ML AND UPPER BANDWIDTH MU
+C  INPUT..
+C     N       ORDER OF THE ORIGINAL MATRIX A.
+C     NDIM    DECLARED DIMENSION OF ARRAY  A.
+C     AR, AI     CONTAINS THE MATRIX IN BAND STORAGE.   THE COLUMNS
+C                OF THE MATRIX ARE STORED IN THE COLUMNS OF  AR (REAL
+C                PART) AND AI (IMAGINARY PART)  AND
+C                THE DIAGONALS OF THE MATRIX ARE STORED IN ROWS
+C                ML+1 THROUGH 2*ML+MU+1 OF  AR AND AI.
+C     ML      LOWER BANDWIDTH OF A (DIAGONAL IS NOT COUNTED).
+C     MU      UPPER BANDWIDTH OF A (DIAGONAL IS NOT COUNTED).
+C  OUTPUT..
+C     AR, AI  AN UPPER TRIANGULAR MATRIX IN BAND STORAGE AND
+C                THE MULTIPLIERS WHICH WERE USED TO OBTAIN IT.
+C     IP      INDEX VECTOR OF PIVOT INDICES.
+C     IP(N)   (-1)**(NUMBER OF INTERCHANGES) OR O .
+C     IER     = 0 IF MATRIX A IS NONSINGULAR, OR  = K IF FOUND TO BE
+C                SINGULAR AT STAGE K.
+C  USE  SOLBC  TO OBTAIN SOLUTION OF LINEAR SYSTEM.
+C  DETERM(A) = IP(N)*A(MD,1)*A(MD,2)*...*A(MD,N)  WITH MD=ML+MU+1.
+C  IF IP(N)=O, A IS SINGULAR, SOLBC WILL DIVIDE BY ZERO.
+C
+C  REFERENCE..
+C     THIS IS A MODIFICATION OF
+C     C. B. MOLER, ALGORITHM 423, LINEAR EQUATION KppSolveR,
+C     C.A.C.M. 15 (1972), P. 274.
+C-----------------------------------------------------------------------
+      IER = 0
+      IP(N) = 1
+      MD = ML + MU + 1
+      MD1 = MD + 1
+      JU = 0
+      IF (ML .EQ. 0) GO TO 70
+      IF (N .EQ. 1) GO TO 70
+      IF (N .LT. MU+2) GO TO 7
+      DO 5 J = MU+2,N
+      DO 5 I = 1,ML
+      AR(I,J) = 0.D0
+      AI(I,J) = 0.D0
+  5   CONTINUE
+  7   NM1 = N - 1
+      DO 60 K = 1,NM1
+        KP1 = K + 1
+        M = MD
+        MDL = MIN(ML,N-K) + MD
+        DO 10 I = MD1,MDL
+          IF (DABS(AR(I,K))+DABS(AI(I,K)) .GT.
+     &          DABS(AR(M,K))+DABS(AI(M,K))) M = I
+ 10     CONTINUE
+        IP(K) = M + K - MD
+        TR = AR(M,K)
+        TI = AI(M,K)
+        IF (M .EQ. MD) GO TO 20
+        IP(N) = -IP(N)
+        AR(M,K) = AR(MD,K)
+        AI(M,K) = AI(MD,K)
+        AR(MD,K) = TR
+        AI(MD,K) = TI
+ 20     IF (DABS(TR)+DABS(TI) .EQ. 0.D0) GO TO 80
+        DEN=TR*TR+TI*TI
+        TR=TR/DEN
+        TI=-TI/DEN
+        DO 30 I = MD1,MDL
+          PRODR=AR(I,K)*TR-AI(I,K)*TI
+          PRODI=AI(I,K)*TR+AR(I,K)*TI
+          AR(I,K)=-PRODR
+          AI(I,K)=-PRODI
+ 30       CONTINUE
+        JU = MIN0(MAX0(JU,MU+IP(K)),N)
+        MM = MD
+        IF (JU .LT. KP1) GO TO 55
+        DO 50 J = KP1,JU
+          M = M - 1
+          MM = MM - 1
+          TR = AR(M,J)
+          TI = AI(M,J)
+          IF (M .EQ. MM) GO TO 35
+          AR(M,J) = AR(MM,J)
+          AI(M,J) = AI(MM,J)
+          AR(MM,J) = TR
+          AI(MM,J) = TI
+ 35       CONTINUE
+          IF (DABS(TR)+DABS(TI) .EQ. 0.D0) GO TO 48
+          JK = J - K
+          IF (TI .EQ. 0.D0) THEN
+            DO 40 I = MD1,MDL
+            IJK = I - JK
+            PRODR=AR(I,K)*TR
+            PRODI=AI(I,K)*TR
+            AR(IJK,J) = AR(IJK,J) + PRODR
+            AI(IJK,J) = AI(IJK,J) + PRODI
+ 40         CONTINUE
+            GO TO 48
+          END IF
+          IF (TR .EQ. 0.D0) THEN
+            DO 45 I = MD1,MDL
+            IJK = I - JK
+            PRODR=-AI(I,K)*TI
+            PRODI=AR(I,K)*TI
+            AR(IJK,J) = AR(IJK,J) + PRODR
+            AI(IJK,J) = AI(IJK,J) + PRODI
+ 45         CONTINUE
+            GO TO 48
+          END IF
+          DO 47 I = MD1,MDL
+            IJK = I - JK
+            PRODR=AR(I,K)*TR-AI(I,K)*TI
+            PRODI=AI(I,K)*TR+AR(I,K)*TI
+            AR(IJK,J) = AR(IJK,J) + PRODR
+            AI(IJK,J) = AI(IJK,J) + PRODI
+ 47         CONTINUE
+ 48       CONTINUE
+ 50       CONTINUE
+ 55     CONTINUE
+ 60     CONTINUE
+ 70   K = N
+      IF (DABS(AR(MD,N))+DABS(AI(MD,N)) .EQ. 0.D0) GO TO 80
+      RETURN
+ 80   IER = K
+      IP(N) = 0
+      RETURN
+C----------------------- END OF SUBROUTINE DECBC ------------------------
+      END
+C
+C
+      SUBROUTINE SOLBC (N, NDIM, AR, AI, ML, MU, BR, BI, IP)
+      IMPLICIT KPP_REAL (A-H,O-Z)
+      DIMENSION AR(NDIM,N), AI(NDIM,N), BR(N), BI(N), IP(N)
+C-----------------------------------------------------------------------
+C  SOLUTION OF LINEAR SYSTEM, A*X = B ,
+C                  VERSION BANDED AND COMPLEX-KPP_REAL.
+C  INPUT..
+C    N      ORDER OF MATRIX A.
+C    NDIM   DECLARED DIMENSION OF ARRAY  A .
+C    AR, AI TRIANGULARIZED MATRIX OBTAINED FROM DECB (REAL AND IMAG. PART).
+C    ML     LOWER BANDWIDTH OF A (DIAGONAL IS NOT COUNTED).
+C    MU     UPPER BANDWIDTH OF A (DIAGONAL IS NOT COUNTED).
+C    BR, BI RIGHT HAND SIDE VECTOR (REAL AND IMAG. PART).
+C    IP     PIVOT VECTOR OBTAINED FROM DECBC.
+C  DO NOT USE IF DECB HAS SET IER .NE. 0.
+C  OUTPUT..
+C    BR, BI SOLUTION VECTOR, X (REAL AND IMAG. PART).
+C-----------------------------------------------------------------------
+      MD = ML + MU + 1
+      MD1 = MD + 1
+      MDM = MD - 1
+      NM1 = N - 1
+      IF (ML .EQ. 0) GO TO 25
+      IF (N .EQ. 1) GO TO 50
+      DO 20 K = 1,NM1
+        M = IP(K)
+        TR = BR(M)
+        TI = BI(M)
+        BR(M) = BR(K)
+        BI(M) = BI(K)
+        BR(K) = TR
+        BI(K) = TI
+        MDL = MIN(ML,N-K) + MD
+        DO 10 I = MD1,MDL
+          IMD = I + K - MD
+          PRODR=AR(I,K)*TR-AI(I,K)*TI
+          PRODI=AI(I,K)*TR+AR(I,K)*TI
+          BR(IMD) = BR(IMD) + PRODR
+          BI(IMD) = BI(IMD) + PRODI
+ 10     CONTINUE
+ 20     CONTINUE
+ 25     CONTINUE
+      DO 40 KB = 1,NM1
+        K = N + 1 - KB
+        DEN=AR(MD,K)*AR(MD,K)+AI(MD,K)*AI(MD,K)
+        PRODR=BR(K)*AR(MD,K)+BI(K)*AI(MD,K)
+        PRODI=BI(K)*AR(MD,K)-BR(K)*AI(MD,K)
+        BR(K)=PRODR/DEN
+        BI(K)=PRODI/DEN
+        TR = -BR(K)
+        TI = -BI(K)
+        KMD = MD - K
+        LM = MAX0(1,KMD+1)
+        DO 30 I = LM,MDM
+          IMD = I - KMD
+          PRODR=AR(I,K)*TR-AI(I,K)*TI
+          PRODI=AI(I,K)*TR+AR(I,K)*TI
+          BR(IMD) = BR(IMD) + PRODR
+          BI(IMD) = BI(IMD) + PRODI
+ 30       CONTINUE
+ 40     CONTINUE
+        DEN=AR(MD,1)*AR(MD,1)+AI(MD,1)*AI(MD,1)
+        PRODR=BR(1)*AR(MD,1)+BI(1)*AI(MD,1)
+        PRODI=BI(1)*AR(MD,1)-BR(1)*AI(MD,1)
+        BR(1)=PRODR/DEN
+        BI(1)=PRODI/DEN
+ 50   CONTINUE
+      RETURN
+C----------------------- END OF SUBROUTINE SOLBC ------------------------
+      END
+c
+C
+      subroutine Elmhes(nm,n,low,igh,a,int)
+C
+      integer i,j,m,n,la,nm,igh,kp1,low,mm1,mp1
+      real*8 a(nm,n)
+      real*8 x,y
+      real*8 dabs
+      integer int(igh)
+C
+C     this subroutine is a translation of the algol procedure elmhes,
+C     num. math. 12, 349-368(1968) by martin and wilkinson.
+C     handbook for auto. comp., vol.ii-linear algebra, 339-358(1971).
+C
+C     given a real general matrix, this subroutine
+C     reduces a submatrix situated in rows and columns
+C     low through igh to upper hessenberg form by
+C     stabilized elementary similarity transformations.
+C
+C     on input:
+C
+C      nm must be set to the row dimension of two-dimensional
+C        array parameters as declared in the calling program
+C        dimension statement;
+C
+C      n is the order of the matrix;
+C
+C      low and igh are integers determined by the balancing
+C        subroutine  balanc.      if  balanc  has not been used,
+C        set low=1, igh=n;
+C
+C      a contains the input matrix.
+C
+C     on output:
+C
+C      a contains the hessenberg matrix.  the multipliers
+C        which were used in the reduction are stored in the
+C        remaining triangle under the hessenberg matrix;
+C
+C      int contains information on the rows and columns
+C        interchanged in the reduction.
+C        only elements low through igh are used.
+C
+C     questions and comments should be directed to b. s. garbow,
+C     applied mathematics division, argonne national laboratory
+C
+C     ------------------------------------------------------------------
+C
+      la = igh - 1
+      kp1 = low + 1
+      if (la .lt. kp1) go to 200
+C
+      do 180 m = kp1, la
+       mm1 = m - 1
+       x = 0.0d0
+       i = m
+C
+       do 100 j = m, igh
+          if (dabs(a(j,mm1)) .le. dabs(x)) go to 100
+          x = a(j,mm1)
+          i = j
+  100   continue
+C
+       int(m) = i
+       if (i .eq. m) go to 130
+C    :::::::::: interchange rows and columns of a ::::::::::
+       do 110 j = mm1, n
+          y = a(i,j)
+          a(i,j) = a(m,j)
+          a(m,j) = y
+  110   continue
+C
+       do 120 j = 1, igh
+          y = a(j,i)
+          a(j,i) = a(j,m)
+          a(j,m) = y
+  120   continue
+C    :::::::::: end interchange ::::::::::
+  130   if (x .eq. 0.0d0) go to 180
+       mp1 = m + 1
+C
+       do 160 i = mp1, igh
+          y = a(i,mm1)
+          if (y .eq. 0.0d0) go to 160
+          y = y / x
+          a(i,mm1) = y
+C
+          do 140 j = m, n
+  140      a(i,j) = a(i,j) - y * a(m,j)
+C
+          do 150 j = 1, igh
+  150      a(j,m) = a(j,m) + y * a(j,i)
+C
+  160   continue
+C
+  180 continue
+C
+  200 return
+C    :::::::::: last card of elmhes ::::::::::
+      end
+
+        SUBROUTINE SOLOUT (NR,XOLD,X,Y,CONT,LRC,N,RPAR,IPAR,IRTRN)
+C --- PRINTS SOLUTION AT EQUIDISTANT OUTPUT-POINTS BY USING "CONTR5"
+        IMPLICIT KPP_REAL (A-H,O-Z)
+        DIMENSION Y(N),CONT(LRC)
+        COMMON /INTERN/XOUT
+        IF (NR.EQ.1) THEN
+           WRITE (6,99) X,Y(1),Y(2),NR-1
+           XOUT=0.2D0
+        ELSE
+ 10        CONTINUE
+           IF (X.GE.XOUT) THEN
+C --- CONTINUOUS OUTPUT FOR RADAU5
+              WRITE (6,99) XOUT,CONTR5(1,XOUT,CONT,LRC),
+     &                     CONTR5(2,XOUT,CONT,LRC),NR-1
+              XOUT=XOUT+0.2D0
+              GOTO 10
+           END IF
+        END IF
+ 99     FORMAT(1X,'X =',F5.2,'    Y =',2E18.10,'    NSTEP =',I4)
+        RETURN
+        END
+
+        SUBROUTINE FUNC_CHEM (N, T, V, FCT, RPAR, IPAR)
+	IMPLICIT NONE
+        INCLUDE 'KPP_ROOT_Parameters.h'
+        INCLUDE 'KPP_ROOT_Global.h'
+        KPP_REAL V(NVAR), FCT(NVAR)
+	KPP_REAL T, TOLD, RPAR(1)
+	INTEGER N, IPAR(1)
+        TOLD = TIME
+        TIME = T
+        CALL Update_SUN()
+        CALL Update_RCONST()
+        TIME = TOLD
+        CALL Fun(V,  FIX, RCONST, FCT)
+        RETURN
+        END
+
+        SUBROUTINE JAC_CHEM (N, T, V, JV, NROWPD, RPAR, IPAR)
+	IMPLICIT NONE
+        INCLUDE 'KPP_ROOT_Parameters.h'
+        INCLUDE 'KPP_ROOT_Global.h'
+        KPP_REAL V(NVAR), JV(NVAR,NVAR)
+	KPP_REAL T, TOLD, RPAR(1)
+	INTEGER N, IPAR(1), NROWPD, i, j
+        TOLD = TIME
+        TIME = T
+        CALL Update_SUN()
+        CALL Update_RCONST()
+        TIME = TOLD
+        DO i=1,NVAR
+           DO j=1,NVAR
+              JV(i,j) = 0.D0
+           END DO
+        END DO
+        CALL Jac(V,  FIX, RCONST, JV)
+        RETURN
+        END
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/gillespie.c
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/gillespie.c	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/gillespie.c	(revision 2696)
@@ -0,0 +1,53 @@
+void StochasticRates( double RCT[], double Volume, double SCT[] );   
+void Propensity ( int V[], int F[], double SCT[], double A[] );
+void MoleculeChange ( int j, int NmlcV[] );
+double CellMass(double T); 
+void Update_RCONST();
+
+/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+void Gillespie(int Nevents, double Volume, double* T, int NmlcV[], int NmlcF[]) 
+/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+{
+    
+      int i, m=0, event;
+      double r1, r2;
+      double A[NREACT], SCT[NREACT], x;
+
+     /* Compute the stochastic reaction rates */
+      Update_RCONST();
+      StochasticRates( RCONST, Volume, SCT );   
+   
+      for (event = 1; event <= Nevents; event++) {
+
+          /* Uniformly distributed ranfor (m numbers */
+          r1 = (double)rand()/(double)RAND_MAX;
+          r2 = (double)rand()/(double)RAND_MAX;
+
+	  /* Avoid log of zero */
+	  r2 = (r2-1.0e-14) ? r2 : 1.0e-14;
+	  
+          /* Propensity vector */
+	  TIME = *T;
+	  Propensity ( NmlcV, NmlcF, SCT, A );
+	  
+          /* Cumulative sum of propensities */
+	  for (i=1; i<NREACT; i++)
+            A[i] = A[i-1]+A[i];
+          
+	  /* Index of next reaction */
+	  x = r1*A[NREACT-1];
+	  for ( i = 0; i<NREACT; i++)
+	    if (A[i] >= x) {
+              m = i+1;
+	      break;
+	    }
+	  
+          /* Update T with time to next reaction */
+          *T = *T - log(r2)/A[NREACT-1];
+
+          /* Update state vector after reaction m */
+	  MoleculeChange( m, NmlcV );
+	  
+     } /* for event */
+    
+} /* Gillespie */
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/gillespie.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/gillespie.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/gillespie.def	(revision 2696)
@@ -0,0 +1,10 @@
+ 
+#FUNCTION   aggregate
+#JACOBIAN   SPARSE_LU_ROW
+#DOUBLE     on 
+#STOCHASTIC on 
+#INTFILE    gillespie
+
+
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/gillespie.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/gillespie.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/gillespie.f90	(revision 2696)
@@ -0,0 +1,86 @@
+MODULE KPP_ROOT_Integrator
+
+  USE KPP_ROOT_Parameters, ONLY : NVAR, NFIX, NREACT 
+  USE KPP_ROOT_Global, ONLY : TIME, RCONST, Volume 
+  USE KPP_ROOT_Stoichiom  
+  USE KPP_ROOT_Stochastic
+  USE KPP_ROOT_Rates
+  IMPLICIT NONE
+
+CONTAINS
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE Gillespie(Nevents, T, SCT, NmlcV, NmlcF)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!   Gillespie stochastic integration
+!   INPUT:
+!       Nevents = no. of individual reaction events to be simulated
+!       SCT     = stochastic rate constants
+!       T       = time
+!       NmlcV, NmlcF = no. of molecules for variable and fixed species
+!   OUTPUT:
+!       T       = updated time (after Nevents reactions)
+!       NmlcV   = updated no. of molecules for variable species
+!      
+!
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      KPP_REAL:: T
+      INTEGER :: Nevents     
+      INTEGER :: NmlcV(NVAR), NmlcF(NFIX)
+      INTEGER :: i, m, issa
+      REAL   :: r1, r2
+      KPP_REAL :: A(NREACT), SCT(NREACT), x
+   
+      DO issa = 1, Nevents
+
+          ! Uniformly distributed random numbers
+          CALL RANDOM_NUMBER(r1)
+          CALL RANDOM_NUMBER(r2)
+          ! Avoid log of zero
+          r2 = MAX(r2,1.e-14)
+          
+          ! Propensity vector
+          CALL  Propensity ( NmlcV, NmlcF, SCT, A )
+          ! Cumulative sum of propensities
+          DO i = 2, NREACT
+            A(i) = A(i-1)+A(i);
+          END DO
+          
+          ! Index of next reaction
+          x = r1*A(NREACT)
+          DO i = 1, NREACT
+            IF (A(i)>=x) THEN
+              m = i;
+              EXIT
+            END IF
+          END DO
+          
+          ! Update time with time to next reaction
+          T = T - LOG(r2)/A(NREACT);
+
+          ! Update state vector
+          CALL MoleculeChange( m, NmlcV )
+        
+     END DO
+    
+  CONTAINS
+
+    SUBROUTINE PropensityTemplate( T, NmlcV, NmlcF, Prop )
+      KPP_REAL, INTENT(IN)  :: T
+      INTEGER, INTENT(IN)   :: NmlcV(NVAR), NmlcF(NFIX)
+      KPP_REAL, INTENT(OUT) :: Prop(NREACT)
+      KPP_REAL :: Tsave, SCT(NREACT)
+    ! Update the stochastic reaction rates, which may be time dependent 
+      Tsave = TIME
+      TIME = T
+      CALL Update_RCONST()
+      CALL StochasticRates( RCONST, Volume, SCT )   
+      CALL Propensity ( NmlcV, NmlcF, SCT, Prop )
+      TIME = Tsave
+    END SUBROUTINE PropensityTemplate    
+    
+  END SUBROUTINE Gillespie
+
+END MODULE KPP_ROOT_Integrator
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/kpp_dvode.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/kpp_dvode.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/kpp_dvode.def	(revision 2696)
@@ -0,0 +1,14 @@
+ 
+#FUNCTION AGGREGATE
+#JACOBIAN SPARSE_LU_ROW
+
+#DOUBLE ON 
+#INTFILE kpp_dvode
+
+#INLINE F77_INIT
+        STEPMIN=0.0001
+        STEPMAX=3600.
+#ENDINLINE
+
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/kpp_dvode.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/kpp_dvode.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/kpp_dvode.f	(revision 2696)
@@ -0,0 +1,3850 @@
+      SUBROUTINE INTEGRATE( TIN, TOUT )
+
+      IMPLICIT KPP_REAL (A-H,O-Z)
+      INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Global.h'
+
+C TIN - Start Time
+      KPP_REAL TIN
+C TOUT - End Time
+      KPP_REAL TOUT
+
+      PARAMETER (LRW=2*NVAR*NVAR+9*NVAR+25,LIW=NVAR+35)
+      PARAMETER (LRCONT=4*NVAR+4+10)
+      COMMON /CONT/ICONT(4),RCONT(LRCONT)
+      COMMON/STAT/NFCN,NJAC,NSTEP,NACCPT,NREJCT,NDEC,NSOL
+      COMMON /VERWER/ IVERWER, IBEGIN, STEPCUT
+      EXTERNAL VODE_FSPLIT_VAR, VODE_Jac_SP
+
+      KPP_REAL RWORK(LRW)
+      INTEGER IWORK(LIW)
+
+      STEPCUT = 0.
+      MAXORD = 5
+      IBEGIN = 1
+      ITOL=4
+
+C ---- NORMAL COMPUTATION ---
+      ITASK=1
+      ISTATE=1
+C ---- USE OPTIONAL INPUT ---
+      IOPT=1
+      IWORK(5) = MAXORD    ! MAX ORD
+      IWORK(6) = 20000
+      IWORK(7) = 0
+      RWORK(6) = STEPMAX   ! STEP MAX
+      RWORK(7) = STEPMIN   ! STEP MIN
+      RWORK(5) = STEPMIN   ! INITIAL STEP
+
+C ----- SIGNAL FOR STIFF CASE, FULL JACOBIAN, INTERN (22) or SUPPLIED (21)
+      MF = 21
+
+      CALL DVODE (VODE_FSPLIT_VAR, NVAR, VAR, TIN, TOUT, ITOL,
+     *            RTOL, ATOL, ITASK,
+     *            ISTATE, IOPT, RWORK, LRW, IWORK, LIW,
+     *            VODE_Jac_SP, MF, RPAR, IPAR)
+
+      IF (ISTATE.LT.0) THEN
+        print *,'ATMDVODE: Unsucessfull exit at T=',
+     &          TIN,' (ISTATE=',ISTATE,')'
+      ENDIF
+
+      RETURN
+      END
+
+
+C -- This version has JAC sparse, FCN aggregate --
+
+      SUBROUTINE DVODE (F, NEQ, Y, T, TOUT, ITOL, RelTol, AbsTol, ITASK,
+     1            ISTATE, IOPT, RWORK, LRW, IWORK, LIW, JAC, MF,
+     2            RPAR, IPAR)
+
+      KPP_REAL Y, T, TOUT, RelTol, AbsTol, RWORK, RPAR
+      INTEGER NEQ, ITOL, ITASK, ISTATE, IOPT, LRW, IWORK, LIW,
+     1        MF, IPAR
+      DIMENSION Y(*), RelTol(*), AbsTol(*), RWORK(LRW), IWORK(LIW),
+     1          RPAR(*), IPAR(*)
+C-----------------------------------------------------------------------
+C DVODE.. Variable-coefficient Ordinary Differential Equation solver,
+C with fixed-leading coefficient implementation.
+C This version is in KPP_REAL.
+C
+C DVODE solves the initial value problem for stiff or nonstiff
+C systems of first order ODEs,
+C     dy/dt = f(t,y) ,  or, in component form,
+C     dy(i)/dt = f(i) = f(i,t,y(1),y(2),...,y(NEQ)) (i = 1,...,NEQ).
+C DVODE is a package based on the EPISODE and EPISODEB packages, and
+C on the ODEPACK user interface standard, with minor modifications.
+C-----------------------------------------------------------------------
+C Revision History (YYMMDD)
+C   890615  Date Written
+C   890922  Added interrupt/restart ability, minor changes throughout.
+C   910228  Minor revisions in line format,  prologue, etc.
+C   920227  Modifications by D. Pang:
+C           (1) Applied subgennam to get generic intrinsic names.
+C           (2) Changed intrinsic names to generic in comments.
+C           (3) Added *DECK lines before each routine.
+C   920721  Names of routines and labeled Common blocks changed, so as
+C           to be unique in combined single/KPP_REAL code (ACH).
+C   920722  Minor revisions to prologue (ACH).
+C   920831  Conversion to KPP_REAL done (ACH).
+C-----------------------------------------------------------------------
+C References..
+C
+C 1. P. N. Brown, G. D. Byrne, and A. C. Hindmarsh, "VODE: A Variable
+C    Coefficient ODE Solver," SIAM J. Sci. Stat. Comput., 10 (1989),
+C    pp. 1038-1051.  Also, LLNL Report UCRL-98412, June 1988.
+C 2. G. D. Byrne and A. C. Hindmarsh, "A Polyalgorithm for the
+C    Numerical Solution of Ordinary Differential Equations,"
+C    ACM Trans. Math. Software, 1 (1975), pp. 71-96.
+C 3. A. C. Hindmarsh and G. D. Byrne, "EPISODE: An Effective Package
+C    for the Integration of Systems of Ordinary Differential
+C    Equations," LLNL Report UCID-30112, Rev. 1, April 1977.
+C 4. G. D. Byrne and A. C. Hindmarsh, "EPISODEB: An Experimental
+C    Package for the Integration of Systems of Ordinary Differential
+C    Equations with Banded Jacobians," LLNL Report UCID-30132, April
+C    1976.
+C 5. A. C. Hindmarsh, "ODEPACK, a Systematized Collection of ODE
+C    Solvers," in Scientific Computing, R. S. Stepleman et al., eds.,
+C    North-Holland, Amsterdam, 1983, pp. 55-64.
+C 6. K. R. Jackson and R. Sacks-Davis, "An Alternative Implementation
+C    of Variable Step-Size Multistep Formulas for Stiff ODEs," ACM
+C    Trans. Math. Software, 6 (1980), pp. 295-318.
+C-----------------------------------------------------------------------
+C Authors..
+C
+C               Peter N. Brown and Alan C. Hindmarsh
+C               Computing and Mathematics Research Division, L-316
+C               Lawrence Livermore National Laboratory
+C               Livermore, CA 94550
+C and
+C               George D. Byrne
+C               Exxon Research and Engineering Co.
+C               Clinton Township
+C               Route 22 East
+C               Annandale, NJ 08801
+C-----------------------------------------------------------------------
+C Summary of usage.
+C
+C Communication between the user and the DVODE package, for normal
+C situations, is summarized here.  This summary describes only a subset
+C of the full set of options available.  See the full description for
+C details, including optional communication, nonstandard options,
+C and instructions for special situations.  See also the example
+C problem (with program and output) following this summary.
+C
+C A. First provide a subroutine of the form..
+C
+C           SUBROUTINE F (NEQ, T, Y, YDOT, RPAR, IPAR)
+C           KPP_REAL T, Y, YDOT, RPAR
+C           DIMENSION Y(NEQ), YDOT(NEQ)
+C
+C which supplies the vector function f by loading YDOT(i) with f(i).
+C
+C B. Next determine (or guess) whether or not the problem is stiff.
+C Stiffness occurs when the Jacobian matrix df/dy has an eigenvalue
+C whose real part is negative and large in magnitude, compared to the
+C reciprocal of the t span of interest.  If the problem is nonstiff,
+C use a method flag MF = 10.  If it is stiff, there are four standard
+C choices for MF (21, 22, 24, 25), and DVODE requires the Jacobian
+C matrix in some form.  In these cases (MF .gt. 0), DVODE will use a
+C saved copy of the Jacobian matrix.  If this is undesirable because of
+C storage limitations, set MF to the corresponding negative value
+C (-21, -22, -24, -25).  (See full description of MF below.)
+C The Jacobian matrix is regarded either as full (MF = 21 or 22),
+C or banded (MF = 24 or 25).  In the banded case, DVODE requires two
+C half-bandwidth parameters ML and MU.  These are, respectively, the
+C widths of the lower and upper parts of the band, excluding the main
+C diagonal.  Thus the band consists of the locations (i,j) with
+C i-ML .le. j .le. i+MU, and the full bandwidth is ML+MU+1.
+C
+C C. If the problem is stiff, you are encouraged to supply the Jacobian
+C directly (MF = 21 or 24), but if this is not feasible, DVODE will
+C compute it internally by difference quotients (MF = 22 or 25).
+C If you are supplying the Jacobian, provide a subroutine of the form..
+C
+C           SUBROUTINE JAC (NEQ, T, Y, ML, MU, PD, NROWPD, RPAR, IPAR)
+C           KPP_REAL T, Y, PD, RPAR
+C           DIMENSION Y(NEQ), PD(NROWPD,NEQ)
+C
+C which supplies df/dy by loading PD as follows..
+C     For a full Jacobian (MF = 21), load PD(i,j) with df(i)/dy(j),
+C the partial derivative of f(i) with respect to y(j).  (Ignore the
+C ML and MU arguments in this case.)
+C     For a banded Jacobian (MF = 24), load PD(i-j+MU+1,j) with
+C df(i)/dy(j), i.e. load the diagonal lines of df/dy into the rows of
+C PD from the top down.
+C     In either case, only nonzero elements need be loaded.
+C
+C D. Write a main program which calls subroutine DVODE once for
+C each point at which answers are desired.  This should also provide
+C for possible use of logical unit 6 for output of error messages
+C by DVODE.  On the first CALL to DVODE, supply arguments as follows..
+C F    = Name of subroutine for right-hand side vector f.
+C          This name must be declared external in calling program.
+C NEQ    = Number of first order ODE-s.
+C Y      = Array of initial values, of length NEQ.
+C T      = The initial value of the independent variable.
+C TOUT   = First point where output is desired (.ne. T).
+C ITOL   = 1 or 2 according as AbsTol (below) is a scalar or array.
+C RelTol   = Relative tolerance parameter (scalar).
+C AbsTol   = Absolute tolerance parameter (scalar or array).
+C          The estimated local error in Y(i) will be controlled so as
+C          to be roughly less (in magnitude) than
+C             EWT(i) = RelTol*abs(Y(i)) + AbsTol     if ITOL = 1, or
+C             EWT(i) = RelTol*abs(Y(i)) + AbsTol(i)  if ITOL = 2.
+C          Thus the local error test passes if, in each component,
+C          either the absolute error is less than AbsTol (or AbsTol(i)),
+C          or the relative error is less than RelTol.
+C          Use RelTol = 0.0 for pure absolute error control, and
+C          use AbsTol = 0.0 (or AbsTol(i) = 0.0) for pure relative error
+C          control.  Caution.. Actual (global) errors may exceed these
+C          local tolerances, so choose them conservatively.
+C ITASK  = 1 for normal computation of output values of Y at t = TOUT.
+C ISTATE = Integer flag (input and output).  Set ISTATE = 1.
+C IOPT   = 0 to indicate no optional input used.
+C RWORK  = Real work array of length at least..
+C             20 + 16*NEQ                      for MF = 10,
+C             22 +  9*NEQ + 2*NEQ**2           for MF = 21 or 22,
+C             22 + 11*NEQ + (3*ML + 2*MU)*NEQ  for MF = 24 or 25.
+C LRW    = Declared length of RWORK (in user's DIMENSION statement).
+C IWORK  = Integer work array of length at least..
+C             30        for MF = 10,
+C             30 + NEQ  for MF = 21, 22, 24, or 25.
+C          If MF = 24 or 25, input in IWORK(1),IWORK(2) the lower
+C          and upper half-bandwidths ML,MU.
+C LIW    = Declared length of IWORK (in user's DIMENSION).
+C JAC    = Name of subroutine for Jacobian matrix (MF = 21 or 24).
+C          If used, this name must be declared external in calling
+C          program.  If not used, pass a dummy name.
+C MF     = Method flag.  Standard values are..
+C          10 for nonstiff (Adams) method, no Jacobian used.
+C          21 for stiff (BDF) method, user-supplied full Jacobian.
+C          22 for stiff method, internally generated full Jacobian.
+C          24 for stiff method, user-supplied banded Jacobian.
+C          25 for stiff method, internally generated banded Jacobian.
+C RPAR,IPAR = user-defined real and integer arrays passed to F and JAC.
+C Note that the main program must declare arrays Y, RWORK, IWORK,
+C and possibly AbsTol, RPAR, and IPAR.
+C
+C E. The output from the first CALL (or any call) is..
+C      Y = Array of computed values of y(t) vector.
+C      T = Corresponding value of independent variable (normally TOUT).
+C ISTATE = 2  if DVODE was successful, negative otherwise.
+C          -1 means excess work done on this call. (Perhaps wrong MF.)
+C          -2 means excess accuracy requested. (Tolerances too small.)
+C          -3 means illegal input detected. (See printed message.)
+C          -4 means repeated error test failures. (Check all input.)
+C          -5 means repeated convergence failures. (Perhaps bad
+C             Jacobian supplied or wrong choice of MF or tolerances.)
+C          -6 means error weight became zero during problem. (Solution
+C             component i vanished, and AbsTol or AbsTol(i) = 0.)
+C
+C F. To continue the integration after a successful return, simply
+C reset TOUT and CALL DVODE again.  No other parameters need be reset.
+C
+C-----------------------------------------------------------------------
+C EXAMPLE PROBLEM
+C
+C The following is a simple example problem, with the coding
+C needed for its solution by DVODE.  The problem is from chemical
+C kinetics, and consists of the following three rate equations..
+C     dy1/dt = -.04*y1 + 1.e4*y2*y3
+C     dy2/dt = .04*y1 - 1.e4*y2*y3 - 3.e7*y2**2
+C     dy3/dt = 3.e7*y2**2
+C on the interval from t = 0.0 to t = 4.e10, with initial conditions
+C y1 = 1.0, y2 = y3 = 0.  The problem is stiff.
+C
+C The following coding solves this problem with DVODE, using MF = 21
+C and printing results at t = .4, 4., ..., 4.e10.  It uses
+C ITOL = 2 and AbsTol much smaller for y2 than y1 or y3 because
+C y2 has much smaller values.
+C At the end of the run, statistical quantities of interest are
+C printed. (See optional output in the full description below.)
+C To generate Fortran source code, replace C in column 1 with a blank
+C in the coding below.
+C
+C     EXTERNAL FEX, JEX
+C     KPP_REAL AbsTol, RPAR, RelTol, RWORK, T, TOUT, Y
+C     DIMENSION Y(3), AbsTol(3), RWORK(67), IWORK(33)
+C     NEQ = 3
+C     Y(1) = 1.0D0
+C     Y(2) = 0.0D0
+C     Y(3) = 0.0D0
+C     T = 0.0D0
+C     TOUT = 0.4D0
+C     ITOL = 2
+C     RelTol = 1.D-4
+C     AbsTol(1) = 1.D-8
+C     AbsTol(2) = 1.D-14
+C     AbsTol(3) = 1.D-6
+C     ITASK = 1
+C     ISTATE = 1
+C     IOPT = 0
+C     LRW = 67
+C     LIW = 33
+C     MF = 21
+C     DO 40 IOUT = 1,12
+C       CALL DVODE(FEX,NEQ,Y,T,TOUT,ITOL,RelTol,AbsTol,ITASK,ISTATE,
+C    1            IOPT,RWORK,LRW,IWORK,LIW,JEX,MF,RPAR,IPAR)
+C       WRITE(6,20)T,Y(1),Y(2),Y(3)
+C 20    FORMAT(' At t =',D12.4,'   y =',3D14.6)
+C       IF (ISTATE .LT. 0) GO TO 80
+C 40    TOUT = TOUT*10.
+C     WRITE(6,60) IWORK(11),IWORK(12),IWORK(13),IWORK(19),
+C    1            IWORK(20),IWORK(21),IWORK(22)
+C 60  FORMAT(/' No. steps =',I4,'   No. f-s =',I4,
+C    1       '   No. J-s =',I4,'   No. LU-s =',I4/
+C    2       '  No. nonlinear iterations =',I4/
+C    3       '  No. nonlinear convergence failures =',I4/
+C    4       '  No. error test failures =',I4/)
+C     STOP
+C 80  WRITE(6,90)ISTATE
+C 90  FORMAT(///' Error halt.. ISTATE =',I3)
+C     STOP
+C     END
+C
+C     SUBROUTINE FEX (NEQ, T, Y, YDOT, RPAR, IPAR)
+C     KPP_REAL RPAR, T, Y, YDOT
+C     DIMENSION Y(NEQ), YDOT(NEQ)
+C     YDOT(1) = -.04D0*Y(1) + 1.D4*Y(2)*Y(3)
+C     YDOT(3) = 3.D7*Y(2)*Y(2)
+C     YDOT(2) = -YDOT(1) - YDOT(3)
+C     RETURN
+C     END
+C
+C     SUBROUTINE JEX (NEQ, T, Y, ML, MU, PD, NRPD, RPAR, IPAR)
+C     KPP_REAL PD, RPAR, T, Y
+C     DIMENSION Y(NEQ), PD(NRPD,NEQ)
+C     PD(1,1) = -.04D0
+C     PD(1,2) = 1.D4*Y(3)
+C     PD(1,3) = 1.D4*Y(2)
+C     PD(2,1) = .04D0
+C     PD(2,3) = -PD(1,3)
+C     PD(3,2) = 6.D7*Y(2)
+C     PD(2,2) = -PD(1,2) - PD(3,2)
+C     RETURN
+C     END
+C
+C The following output was obtained from the above program on a
+C Cray-1 computer with the CFT compiler.
+C
+C At t =  4.0000e-01   y =  9.851680e-01  3.386314e-05  1.479817e-02
+C At t =  4.0000e+00   y =  9.055255e-01  2.240539e-05  9.445214e-02
+C At t =  4.0000e+01   y =  7.158108e-01  9.184883e-06  2.841800e-01
+C At t =  4.0000e+02   y =  4.505032e-01  3.222940e-06  5.494936e-01
+C At t =  4.0000e+03   y =  1.832053e-01  8.942690e-07  8.167938e-01
+C At t =  4.0000e+04   y =  3.898560e-02  1.621875e-07  9.610142e-01
+C At t =  4.0000e+05   y =  4.935882e-03  1.984013e-08  9.950641e-01
+C At t =  4.0000e+06   y =  5.166183e-04  2.067528e-09  9.994834e-01
+C At t =  4.0000e+07   y =  5.201214e-05  2.080593e-10  9.999480e-01
+C At t =  4.0000e+08   y =  5.213149e-06  2.085271e-11  9.999948e-01
+C At t =  4.0000e+09   y =  5.183495e-07  2.073399e-12  9.999995e-01
+C At t =  4.0000e+10   y =  5.450996e-08  2.180399e-13  9.999999e-01
+C
+C No. steps = 595   No. f-s = 832   No. J-s =  13   No. LU-s = 112
+C  No. nonlinear iterations = 831
+C  No. nonlinear convergence failures =   0
+C  No. error test failures =  22
+C-----------------------------------------------------------------------
+C Full description of user interface to DVODE.
+C
+C The user interface to DVODE consists of the following parts.
+C
+C i.   The CALL sequence to subroutine DVODE, which is a driver
+C      routine for the solver.  This includes descriptions of both
+C      the CALL sequence arguments and of user-supplied routines.
+C      Following these descriptions is
+C        * a description of optional input available through the
+C          CALL sequence,
+C        * a description of optional output (in the work arrays), and
+C        * instructions for interrupting and restarting a solution.
+C
+C ii.  Descriptions of other routines in the DVODE package that may be
+C      (optionally) called by the user.  These provide the ability to
+C      alter error message handling, save and restore the internal
+C      COMMON, and obtain specified derivatives of the solution y(t).
+C
+C iii. Descriptions of COMMON blocks to be declared in overlay
+C      or similar environments.
+C
+C iv.  Description of two routines in the DVODE package, either of
+C      which the user may replace with his own version, if desired.
+C      these relate to the measurement of errors.
+C
+C-----------------------------------------------------------------------
+C Part i.  Call Sequence.
+C
+C The CALL sequence parameters used for input only are
+C     F, NEQ, TOUT, ITOL, RelTol, AbsTol, ITASK, IOPT, LRW, LIW, JAC, MF,
+C and those used for both input and output are
+C     Y, T, ISTATE.
+C The work arrays RWORK and IWORK are also used for conditional and
+C optional input and optional output.  (The term output here refers
+C to the return from subroutine DVODE to the user's calling program.)
+C
+C The legality of input parameters will be thoroughly checked on the
+C initial CALL for the problem, but not checked thereafter unless a
+C change in input parameters is flagged by ISTATE = 3 in the input.
+C
+C The descriptions of the CALL arguments are as follows.
+C
+C F    = The name of the user-supplied subroutine defining the
+C          ODE system.  The system must be put in the first-order
+C          form dy/dt = f(t,y), where f is a vector-valued function
+C          of the scalar t and the vector y.  Subroutine F is to
+C          compute the function f.  It is to have the form
+C               SUBROUTINE F (NEQ, T, Y, YDOT, RPAR, IPAR)
+C               KPP_REAL T, Y, YDOT, RPAR
+C               DIMENSION Y(NEQ), YDOT(NEQ)
+C          where NEQ, T, and Y are input, and the array YDOT = f(t,y)
+C          is output.  Y and YDOT are arrays of length NEQ.
+C          (In the DIMENSION statement above, NEQ  can be replaced by
+C          *  to make  Y  and  YDOT  assumed size arrays.)
+C          Subroutine F should not alter Y(1),...,Y(NEQ).
+C          F must be declared EXTERNAL in the calling program.
+C
+C          Subroutine F may access user-defined real and integer
+C          work arrays RPAR and IPAR, which are to be dimensioned
+C          in the main program.
+C
+C          If quantities computed in the F routine are needed
+C          externally to DVODE, an extra CALL to F should be made
+C          for this purpose, for consistent and accurate results.
+C          If only the derivative dy/dt is needed, use DVINDY instead.
+C
+C NEQ    = The size of the ODE system (number of first order
+C          ordinary differential equations).  Used only for input.
+C          NEQ may not be increased during the problem, but
+C          can be decreased (with ISTATE = 3 in the input).
+C
+C Y      = A real array for the vector of dependent variables, of
+C          length NEQ or more.  Used for both input and output on the
+C          first CALL (ISTATE = 1), and only for output on other calls.
+C          On the first call, Y must contain the vector of initial
+C          values.  In the output, Y contains the computed solution
+C          evaluated at T.  If desired, the Y array may be used
+C          for other purposes between calls to the solver.
+C
+C          This array is passed as the Y argument in all calls to
+C          F and JAC.
+C
+C T      = The independent variable.  In the input, T is used only on
+C          the first call, as the initial point of the integration.
+C          In the output, after each call, T is the value at which a
+C          computed solution Y is evaluated (usually the same as TOUT).
+C          On an error return, T is the farthest point reached.
+C
+C TOUT   = The next value of t at which a computed solution is desired.
+C          Used only for input.
+C
+C          When starting the problem (ISTATE = 1), TOUT may be equal
+C          to T for one call, then should .ne. T for the next call.
+C          For the initial T, an input value of TOUT .ne. T is used
+C          in order to determine the direction of the integration
+C          (i.e. the algebraic sign of the step sizes) and the rough
+C          scale of the problem.  Integration in either direction
+C          (forward or backward in t) is permitted.
+C
+C          If ITASK = 2 or 5 (one-step modes), TOUT is ignored after
+C          the first CALL (i.e. the first CALL with TOUT .ne. T).
+C          Otherwise, TOUT is required on every call.
+C
+C          If ITASK = 1, 3, or 4, the values of TOUT need not be
+C          monotone, but a value of TOUT which backs up is limited
+C          to the current internal t interval, whose endpoints are
+C          TCUR - HU and TCUR.  (See optional output, below, for
+C          TCUR and HU.)
+C
+C ITOL   = An indicator for the type of error control.  See
+C          description below under AbsTol.  Used only for input.
+C
+C RelTol   = A relative error tolerance parameter, either a scalar or
+C          an array of length NEQ.  See description below under AbsTol.
+C          Input only.
+C
+C AbsTol   = An absolute error tolerance parameter, either a scalar or
+C          an array of length NEQ.  Input only.
+C
+C          The input parameters ITOL, RelTol, and AbsTol determine
+C          the error control performed by the solver.  The solver will
+C          control the vector e = (e(i)) of estimated local errors
+C          in Y, according to an inequality of the form
+C                      rms-norm of ( e(i)/EWT(i) )   .le.   1,
+C          where       EWT(i) = RelTol(i)*abs(Y(i)) + AbsTol(i),
+C          and the rms-norm (root-mean-square norm) here is
+C          rms-norm(v) = sqrt(sum v(i)**2 / NEQ).  Here EWT = (EWT(i))
+C          is a vector of weights which must always be positive, and
+C          the values of RelTol and AbsTol should all be non-negative.
+C          The following table gives the types (scalar/array) of
+C          RelTol and AbsTol, and the corresponding form of EWT(i).
+C
+C             ITOL    RelTol       AbsTol          EWT(i)
+C              1     scalar     scalar     RelTol*ABS(Y(i)) + AbsTol
+C              2     scalar     array      RelTol*ABS(Y(i)) + AbsTol(i)
+C              3     array      scalar     RelTol(i)*ABS(Y(i)) + AbsTol
+C              4     array      array      RelTol(i)*ABS(Y(i)) + AbsTol(i)
+C
+C          When either of these parameters is a scalar, it need not
+C          be dimensioned in the user's calling program.
+C
+C          If none of the above choices (with ITOL, RelTol, and AbsTol
+C          fixed throughout the problem) is suitable, more general
+C          error controls can be obtained by substituting
+C          user-supplied routines for the setting of EWT and/or for
+C          the norm calculation.  See Part iv below.
+C
+C          If global errors are to be estimated by making a repeated
+C          run on the same problem with smaller tolerances, then all
+C          components of RelTol and AbsTol (i.e. of EWT) should be scaled
+C          down uniformly.
+C
+C ITASK  = An index specifying the task to be performed.
+C          Input only.  ITASK has the following values and meanings.
+C          1  means normal computation of output values of y(t) at
+C             t = TOUT (by overshooting and interpolating).
+C          2  means take one step only and return.
+C          3  means stop at the first internal mesh point at or
+C             beyond t = TOUT and return.
+C          4  means normal computation of output values of y(t) at
+C             t = TOUT but without overshooting t = TCRIT.
+C             TCRIT must be input as RWORK(1).  TCRIT may be equal to
+C             or beyond TOUT, but not behind it in the direction of
+C             integration.  This option is useful if the problem
+C             has a singularity at or beyond t = TCRIT.
+C          5  means take one step, without passing TCRIT, and return.
+C             TCRIT must be input as RWORK(1).
+C
+C          Note..  If ITASK = 4 or 5 and the solver reaches TCRIT
+C          (within roundoff), it will return T = TCRIT (exactly) to
+C          indicate this (unless ITASK = 4 and TOUT comes before TCRIT,
+C          in which case answers at T = TOUT are returned first).
+C
+C ISTATE = an index used for input and output to specify the
+C          the state of the calculation.
+C
+C          In the input, the values of ISTATE are as follows.
+C          1  means this is the first CALL for the problem
+C             (initializations will be done).  See note below.
+C          2  means this is not the first call, and the calculation
+C             is to continue normally, with no change in any input
+C             parameters except possibly TOUT and ITASK.
+C             (If ITOL, RelTol, and/or AbsTol are changed between calls
+C             with ISTATE = 2, the new values will be used but not
+C             tested for legality.)
+C          3  means this is not the first call, and the
+C             calculation is to continue normally, but with
+C             a change in input parameters other than
+C             TOUT and ITASK.  Changes are allowed in
+C             NEQ, ITOL, RelTol, AbsTol, IOPT, LRW, LIW, MF, ML, MU,
+C             and any of the optional input except H0.
+C             (See IWORK description for ML and MU.)
+C          Note..  A preliminary CALL with TOUT = T is not counted
+C          as a first CALL here, as no initialization or checking of
+C          input is done.  (Such a CALL is sometimes useful to include
+C          the initial conditions in the output.)
+C          Thus the first CALL for which TOUT .ne. T requires
+C          ISTATE = 1 in the input.
+C
+C          In the output, ISTATE has the following values and meanings.
+C           1  means nothing was done, as TOUT was equal to T with
+C              ISTATE = 1 in the input.
+C           2  means the integration was performed successfully.
+C          -1  means an excessive amount of work (more than MXSTEP
+C              steps) was done on this call, before completing the
+C              requested task, but the integration was otherwise
+C              successful as far as T.  (MXSTEP is an optional input
+C              and is normally 500.)  To continue, the user may
+C              simply reset ISTATE to a value .gt. 1 and CALL again.
+C              (The excess work step counter will be reset to 0.)
+C              In addition, the user may increase MXSTEP to avoid
+C              this error return.  (See optional input below.)
+C          -2  means too much accuracy was requested for the precision
+C              of the machine being used.  This was detected before
+C              completing the requested task, but the integration
+C              was successful as far as T.  To continue, the tolerance
+C              parameters must be reset, and ISTATE must be set
+C              to 3.  The optional output TOLSF may be used for this
+C              purpose.  (Note.. If this condition is detected before
+C              taking any steps, then an illegal input return
+C              (ISTATE = -3) occurs instead.)
+C          -3  means illegal input was detected, before taking any
+C              integration steps.  See written message for details.
+C              Note..  If the solver detects an infinite loop of calls
+C              to the solver with illegal input, it will cause
+C              the run to stop.
+C          -4  means there were repeated error test failures on
+C              one attempted step, before completing the requested
+C              task, but the integration was successful as far as T.
+C              The problem may have a singularity, or the input
+C              may be inappropriate.
+C          -5  means there were repeated convergence test failures on
+C              one attempted step, before completing the requested
+C              task, but the integration was successful as far as T.
+C              This may be caused by an inaccurate Jacobian matrix,
+C              if one is being used.
+C          -6  means EWT(i) became zero for some i during the
+C              integration.  Pure relative error control (AbsTol(i)=0.0)
+C              was requested on a variable which has now vanished.
+C              The integration was successful as far as T.
+C
+C          Note..  Since the normal output value of ISTATE is 2,
+C          it does not need to be reset for normal continuation.
+C          Also, since a negative input value of ISTATE will be
+C          regarded as illegal, a negative output value requires the
+C          user to change it, and possibly other input, before
+C          calling the solver again.
+C
+C IOPT   = An integer flag to specify whether or not any optional
+C          input is being used on this call.  Input only.
+C          The optional input is listed separately below.
+C          IOPT = 0 means no optional input is being used.
+C                   Default values will be used in all cases.
+C          IOPT = 1 means optional input is being used.
+C
+C RWORK  = A real working array (KPP_REAL).
+C          The length of RWORK must be at least
+C             20 + NYH*(MAXORD + 1) + 3*NEQ + LWM    where
+C          NYH    = the initial value of NEQ,
+C          MAXORD = 12 (if METH = 1) or 5 (if METH = 2) (unless a
+C                   smaller value is given as an optional input),
+C          LWM = length of work space for matrix-related data..
+C          LWM = 0             if MITER = 0,
+C          LWM = 2*NEQ**2 + 2  if MITER = 1 or 2, and MF.gt.0,
+C          LWM = NEQ**2 + 2    if MITER = 1 or 2, and MF.lt.0,
+C          LWM = NEQ + 2       if MITER = 3,
+C          LWM = (3*ML+2*MU+2)*NEQ + 2 if MITER = 4 or 5, and MF.gt.0,
+C          LWM = (2*ML+MU+1)*NEQ + 2   if MITER = 4 or 5, and MF.lt.0.
+C          (See the MF description for METH and MITER.)
+C          Thus if MAXORD has its default value and NEQ is constant,
+C          this length is..
+C             20 + 16*NEQ                    for MF = 10,
+C             22 + 16*NEQ + 2*NEQ**2         for MF = 11 or 12,
+C             22 + 16*NEQ + NEQ**2           for MF = -11 or -12,
+C             22 + 17*NEQ                    for MF = 13,
+C             22 + 18*NEQ + (3*ML+2*MU)*NEQ  for MF = 14 or 15,
+C             22 + 17*NEQ + (2*ML+MU)*NEQ    for MF = -14 or -15,
+C             20 +  9*NEQ                    for MF = 20,
+C             22 +  9*NEQ + 2*NEQ**2         for MF = 21 or 22,
+C             22 +  9*NEQ + NEQ**2           for MF = -21 or -22,
+C             22 + 10*NEQ                    for MF = 23,
+C             22 + 11*NEQ + (3*ML+2*MU)*NEQ  for MF = 24 or 25.
+C             22 + 10*NEQ + (2*ML+MU)*NEQ    for MF = -24 or -25.
+C          The first 20 words of RWORK are reserved for conditional
+C          and optional input and optional output.
+C
+C          The following word in RWORK is a conditional input..
+C            RWORK(1) = TCRIT = critical value of t which the solver
+C                       is not to overshoot.  Required if ITASK is
+C                       4 or 5, and ignored otherwise.  (See ITASK.)
+C
+C LRW    = The length of the array RWORK, as declared by the user.
+C          (This will be checked by the solver.)
+C
+C IWORK  = An integer work array.  The length of IWORK must be at least
+C             30        if MITER = 0 or 3 (MF = 10, 13, 20, 23), or
+C             30 + NEQ  otherwise (abs(MF) = 11,12,14,15,21,22,24,25).
+C          The first 30 words of IWORK are reserved for conditional and
+C          optional input and optional output.
+C
+C          The following 2 words in IWORK are conditional input..
+C            IWORK(1) = ML     These are the lower and upper
+C            IWORK(2) = MU     half-bandwidths, respectively, of the
+C                       banded Jacobian, excluding the main diagonal.
+C                       The band is defined by the matrix locations
+C                       (i,j) with i-ML .le. j .le. i+MU.  ML and MU
+C                       must satisfy  0 .le.  ML,MU  .le. NEQ-1.
+C                       These are required if MITER is 4 or 5, and
+C                       ignored otherwise.  ML and MU may in fact be
+C                       the band parameters for a matrix to which
+C                       df/dy is only approximately equal.
+C
+C LIW    = the length of the array IWORK, as declared by the user.
+C          (This will be checked by the solver.)
+C
+C Note..  The work arrays must not be altered between calls to DVODE
+C for the same problem, except possibly for the conditional and
+C optional input, and except for the last 3*NEQ words of RWORK.
+C The latter space is used for internal scratch space, and so is
+C available for use by the user outside DVODE between calls, if
+C desired (but not for use by F or JAC).
+C
+C JAC    = The name of the user-supplied routine (MITER = 1 or 4) to
+C          compute the Jacobian matrix, df/dy, as a function of
+C          the scalar t and the vector y.  It is to have the form
+C               SUBROUTINE JAC (NEQ, T, Y, ML, MU, PD, NROWPD,
+C                               RPAR, IPAR)
+C               KPP_REAL T, Y, PD, RPAR
+C               DIMENSION Y(NEQ), PD(NROWPD, NEQ)
+C          where NEQ, T, Y, ML, MU, and NROWPD are input and the array
+C          PD is to be loaded with partial derivatives (elements of the
+C          Jacobian matrix) in the output.  PD must be given a first
+C          dimension of NROWPD.  T and Y have the same meaning as in
+C          Subroutine F.  (In the DIMENSION statement above, NEQ can
+C          be replaced by  *  to make Y and PD assumed size arrays.)
+C               In the full matrix case (MITER = 1), ML and MU are
+C          ignored, and the Jacobian is to be loaded into PD in
+C          columnwise manner, with df(i)/dy(j) loaded into PD(i,j).
+C               In the band matrix case (MITER = 4), the elements
+C          within the band are to be loaded into PD in columnwise
+C          manner, with diagonal lines of df/dy loaded into the rows
+C          of PD. Thus df(i)/dy(j) is to be loaded into PD(i-j+MU+1,j).
+C          ML and MU are the half-bandwidth parameters. (See IWORK).
+C          The locations in PD in the two triangular areas which
+C          correspond to nonexistent matrix elements can be ignored
+C          or loaded arbitrarily, as they are overwritten by DVODE.
+C               JAC need not provide df/dy exactly.  A crude
+C          approximation (possibly with a smaller bandwidth) will do.
+C               In either case, PD is preset to zero by the solver,
+C          so that only the nonzero elements need be loaded by JAC.
+C          Each CALL to JAC is preceded by a CALL to F with the same
+C          arguments NEQ, T, and Y.  Thus to gain some efficiency,
+C          intermediate quantities shared by both calculations may be
+C          saved in a user COMMON block by F and not recomputed by JAC,
+C          if desired.  Also, JAC may alter the Y array, if desired.
+C          JAC must be declared external in the calling program.
+C               Subroutine JAC may access user-defined real and integer
+C          work arrays, RPAR and IPAR, whose dimensions are set by the
+C          user in the main program.
+C
+C MF     = The method flag.  Used only for input.  The legal values of
+C          MF are 10, 11, 12, 13, 14, 15, 20, 21, 22, 23, 24, 25,
+C          -11, -12, -14, -15, -21, -22, -24, -25.
+C          MF is a signed two-digit integer, MF = JSV*(10*METH + MITER).
+C          JSV = SIGN(MF) indicates the Jacobian-saving strategy..
+C            JSV =  1 means a copy of the Jacobian is saved for reuse
+C                     in the corrector iteration algorithm.
+C            JSV = -1 means a copy of the Jacobian is not saved
+C                     (valid only for MITER = 1, 2, 4, or 5).
+C          METH indicates the basic linear multistep method..
+C            METH = 1 means the implicit Adams method.
+C            METH = 2 means the method based on backward
+C                     differentiation formulas (BDF-s).
+C          MITER indicates the corrector iteration method..
+C            MITER = 0 means functional iteration (no Jacobian matrix
+C                      is involved).
+C            MITER = 1 means chord iteration with a user-supplied
+C                      full (NEQ by NEQ) Jacobian.
+C            MITER = 2 means chord iteration with an internally
+C                      generated (difference quotient) full Jacobian
+C                      (using NEQ extra calls to F per df/dy value).
+C            MITER = 3 means chord iteration with an internally
+C                      generated diagonal Jacobian approximation
+C                      (using 1 extra CALL to F per df/dy evaluation).
+C            MITER = 4 means chord iteration with a user-supplied
+C                      banded Jacobian.
+C            MITER = 5 means chord iteration with an internally
+C                      generated banded Jacobian (using ML+MU+1 extra
+C                      calls to F per df/dy evaluation).
+C          If MITER = 1 or 4, the user must supply a subroutine JAC
+C          (the name is arbitrary) as described above under JAC.
+C          For other values of MITER, a dummy argument can be used.
+C
+C RPAR     User-specified array used to communicate real parameters
+C          to user-supplied subroutines.  If RPAR is a vector, then
+C          it must be dimensioned in the user's main program.  If it
+C          is unused or it is a scalar, then it need not be
+C          dimensioned.
+C
+C IPAR     User-specified array used to communicate integer parameter
+C          to user-supplied subroutines.  The comments on dimensioning
+C          RPAR apply to IPAR.
+C-----------------------------------------------------------------------
+C Optional Input.
+C
+C The following is a list of the optional input provided for in the
+C CALL sequence.  (See also Part ii.)  For each such input variable,
+C this table lists its name as used in this documentation, its
+C location in the CALL sequence, its meaning, and the default value.
+C The use of any of this input requires IOPT = 1, and in that
+C case all of this input is examined.  A value of zero for any
+C of these optional input variables will cause the default value to be
+C used.  Thus to use a subset of the optional input, simply preload
+C locations 5 to 10 in RWORK and IWORK to 0.0 and 0 respectively, and
+C then set those of interest to nonzero values.
+C
+C NAME    LOCATION      MEANING AND DEFAULT VALUE
+C
+C H0      RWORK(5)  The step size to be attempted on the first step.
+C                   The default value is determined by the solver.
+C
+C HMAX    RWORK(6)  The maximum absolute step size allowed.
+C                   The default value is infinite.
+C
+C HMIN    RWORK(7)  The minimum absolute step size allowed.
+C                   The default value is 0.  (This lower bound is not
+C                   enforced on the final step before reaching TCRIT
+C                   when ITASK = 4 or 5.)
+C
+C MAXORD  IWORK(5)  The maximum order to be allowed.  The default
+C                   value is 12 if METH = 1, and 5 if METH = 2.
+C                   If MAXORD exceeds the default value, it will
+C                   be reduced to the default value.
+C                   If MAXORD is changed during the problem, it may
+C                   cause the current order to be reduced.
+C
+C MXSTEP  IWORK(6)  Maximum number of (internally defined) steps
+C                   allowed during one CALL to the solver.
+C                   The default value is 500.
+C
+C MXHNIL  IWORK(7)  Maximum number of messages printed (per problem)
+C                   warning that T + H = T on a step (H = step size).
+C                   This must be positive to result in a non-default
+C                   value.  The default value is 10.
+C
+C-----------------------------------------------------------------------
+C Optional Output.
+C
+C As optional additional output from DVODE, the variables listed
+C below are quantities related to the performance of DVODE
+C which are available to the user.  These are communicated by way of
+C the work arrays, but also have internal mnemonic names as shown.
+C Except where stated otherwise, all of this output is defined
+C on any successful return from DVODE, and on any return with
+C ISTATE = -1, -2, -4, -5, or -6.  On an illegal input return
+C (ISTATE = -3), they will be unchanged from their existing values
+C (if any), except possibly for TOLSF, LENRW, and LENIW.
+C On any error return, output relevant to the error will be defined,
+C as noted below.
+C
+C NAME    LOCATION      MEANING
+C
+C HU      RWORK(11) The step size in t last used (successfully).
+C
+C HCUR    RWORK(12) The step size to be attempted on the next step.
+C
+C TCUR    RWORK(13) The current value of the independent variable
+C                   which the solver has actually reached, i.e. the
+C                   current internal mesh point in t.  In the output,
+C                   TCUR will always be at least as far from the
+C                   initial value of t as the current argument T,
+C                   but may be farther (if interpolation was done).
+C
+C TOLSF   RWORK(14) A tolerance scale factor, greater than 1.0,
+C                   computed when a request for too much accuracy was
+C                   detected (ISTATE = -3 if detected at the start of
+C                   the problem, ISTATE = -2 otherwise).  If ITOL is
+C                   left unaltered but RelTol and AbsTol are uniformly
+C                   scaled up by a factor of TOLSF for the next call,
+C                   then the solver is deemed likely to succeed.
+C                   (The user may also ignore TOLSF and alter the
+C                   tolerance parameters in any other way appropriate.)
+C
+C NST     IWORK(11) The number of steps taken for the problem so far.
+C
+C NFE     IWORK(12) The number of f evaluations for the problem so far.
+C
+C NJE     IWORK(13) The number of Jacobian evaluations so far.
+C
+C NQU     IWORK(14) The method order last used (successfully).
+C
+C NQCUR   IWORK(15) The order to be attempted on the next step.
+C
+C IMXER   IWORK(16) The index of the component of largest magnitude in
+C                   the weighted local error vector ( e(i)/EWT(i) ),
+C                   on an error return with ISTATE = -4 or -5.
+C
+C LENRW   IWORK(17) The length of RWORK actually required.
+C                   This is defined on normal returns and on an illegal
+C                   input return for insufficient storage.
+C
+C LENIW   IWORK(18) The length of IWORK actually required.
+C                   This is defined on normal returns and on an illegal
+C                   input return for insufficient storage.
+C
+C NLU     IWORK(19) The number of matrix LU decompositions so far.
+C
+C NNI     IWORK(20) The number of nonlinear (Newton) iterations so far.
+C
+C NCFN    IWORK(21) The number of convergence failures of the nonlinear
+C                   solver so far.
+C
+C NETF    IWORK(22) The number of error test failures of the integrator
+C                   so far.
+C
+C The following two arrays are segments of the RWORK array which
+C may also be of interest to the user as optional output.
+C For each array, the table below gives its internal name,
+C its base address in RWORK, and its description.
+C
+C NAME    BASE ADDRESS      DESCRIPTION
+C
+C YH      21             The Nordsieck history array, of size NYH by
+C                        (NQCUR + 1), where NYH is the initial value
+C                        of NEQ.  For j = 0,1,...,NQCUR, column j+1
+C                        of YH contains HCUR**j/factorial(j) times
+C                        the j-th derivative of the interpolating
+C                        polynomial currently representing the
+C                        solution, evaluated at t = TCUR.
+C
+C ACOR     LENRW-NEQ+1   Array of size NEQ used for the accumulated
+C                        corrections on each step, scaled in the output
+C                        to represent the estimated local error in Y
+C                        on the last step.  This is the vector e in
+C                        the description of the error control.  It is
+C                        defined only on a successful return from DVODE.
+C
+C-----------------------------------------------------------------------
+C Interrupting and Restarting
+C
+C If the integration of a given problem by DVODE is to be
+C interrupted and then later continued, such as when restarting
+C an interrupted run or alternating between two or more ODE problems,
+C the user should save, following the return from the last DVODE call
+C prior to the interruption, the contents of the CALL sequence
+C variables and internal COMMON blocks, and later restore these
+C values before the next DVODE CALL for that problem.  To save
+C and restore the COMMON blocks, use subroutine DVSRCO, as
+C described below in part ii.
+C
+C In addition, if non-default values for either LUN or MFLAG are
+C desired, an extra CALL to XSETUN and/or XSETF should be made just
+C before continuing the integration.  See Part ii below for details.
+C
+C-----------------------------------------------------------------------
+C Part ii.  Other Routines Callable.
+C
+C The following are optional calls which the user may make to
+C gain additional capabilities in conjunction with DVODE.
+C (The routines XSETUN and XSETF are designed to conform to the
+C SLATEC error handling package.)
+C
+C     FORM OF CALL                  FUNCTION
+C  CALL XSETUN(LUN)           Set the logical unit number, LUN, for
+C                             output of messages from DVODE, if
+C                             the default is not desired.
+C                             The default value of LUN is 6.
+C
+C  CALL XSETF(MFLAG)          Set a flag to control the printing of
+C                             messages by DVODE.
+C                             MFLAG = 0 means do not print. (Danger..
+C                             This risks losing valuable information.)
+C                             MFLAG = 1 means print (the default).
+C
+C                             Either of the above calls may be made at
+C                             any time and will take effect immediately.
+C
+C  CALL DVSRCO(RSAV,ISAV,JOB) Saves and restores the contents of
+C                             the internal COMMON blocks used by
+C                             DVODE. (See Part iii below.)
+C                             RSAV must be a real array of length 49
+C                             or more, and ISAV must be an integer
+C                             array of length 40 or more.
+C                             JOB=1 means save COMMON into RSAV/ISAV.
+C                             JOB=2 means restore COMMON from RSAV/ISAV.
+C                                DVSRCO is useful if one is
+C                             interrupting a run and restarting
+C                             later, or alternating between two or
+C                             more problems solved with DVODE.
+C
+C  CALL DVINDY(,,,,,)         Provide derivatives of y, of various
+C        (See below.)         orders, at a specified point T, if
+C                             desired.  It may be called only after
+C                             a successful return from DVODE.
+C
+C The detailed instructions for using DVINDY are as follows.
+C The form of the CALL is..
+C
+C  CALL DVINDY (T, K, RWORK(21), NYH, DKY, IFLAG)
+C
+C The input parameters are..
+C
+C T         = Value of independent variable where answers are desired
+C             (normally the same as the T last returned by DVODE).
+C             For valid results, T must lie between TCUR - HU and TCUR.
+C             (See optional output for TCUR and HU.)
+C K         = Integer order of the derivative desired.  K must satisfy
+C             0 .le. K .le. NQCUR, where NQCUR is the current order
+C             (see optional output).  The capability corresponding
+C             to K = 0, i.e. computing y(T), is already provided
+C             by DVODE directly.  Since NQCUR .ge. 1, the first
+C             derivative dy/dt is always available with DVINDY.
+C RWORK(21) = The base address of the history array YH.
+C NYH       = Column length of YH, equal to the initial value of NEQ.
+C
+C The output parameters are..
+C
+C DKY       = A real array of length NEQ containing the computed value
+C             of the K-th derivative of y(t).
+C IFLAG     = Integer flag, returned as 0 if K and T were legal,
+C             -1 if K was illegal, and -2 if T was illegal.
+C             On an error return, a message is also written.
+C-----------------------------------------------------------------------
+C Part iii.  COMMON Blocks.
+C If DVODE is to be used in an overlay situation, the user
+C must declare, in the primary overlay, the variables in..
+C   (1) the CALL sequence to DVODE,
+C   (2) the two internal COMMON blocks
+C         /DVOD01/  of length  81  (48 KPP_REAL words
+C                         followed by 33 integer words),
+C         /DVOD02/  of length  9  (1 KPP_REAL word
+C                         followed by 8 integer words),
+C
+C If DVODE is used on a system in which the contents of internal
+C COMMON blocks are not preserved between calls, the user should
+C declare the above two COMMON blocks in his main program to insure
+C that their contents are preserved.
+C
+C-----------------------------------------------------------------------
+C Part iv.  Optionally Replaceable Solver Routines.
+C
+C Below are descriptions of two routines in the DVODE package which
+C relate to the measurement of errors.  Either routine can be
+C replaced by a user-supplied version, if desired.  However, since such
+C a replacement may have a major impact on performance, it should be
+C done only when absolutely necessary, and only with great caution.
+C (Note.. The means by which the package version of a routine is
+C superseded by the user's version may be system-dependent.)
+C
+C (a) DEWSET.
+C The following subroutine is called just before each internal
+C integration step, and sets the array of error weights, EWT, as
+C described under ITOL/RelTol/AbsTol above..
+C     SUBROUTINE DEWSET (NEQ, ITOL, RelTol, AbsTol, YCUR, EWT)
+C where NEQ, ITOL, RelTol, and AbsTol are as in the DVODE CALL sequence,
+C YCUR contains the current dependent variable vector, and
+C EWT is the array of weights set by DEWSET.
+C
+C If the user supplies this subroutine, it must return in EWT(i)
+C (i = 1,...,NEQ) a positive quantity suitable for comparison with
+C errors in Y(i).  The EWT array returned by DEWSET is passed to the
+C DVNORM routine (See below.), and also used by DVODE in the computation
+C of the optional output IMXER, the diagonal Jacobian approximation,
+C and the increments for difference quotient Jacobians.
+C
+C In the user-supplied version of DEWSET, it may be desirable to use
+C the current values of derivatives of y.  Derivatives up to order NQ
+C are available from the history array YH, described above under
+C Optional Output.  In DEWSET, YH is identical to the YCUR array,
+C extended to NQ + 1 columns with a column length of NYH and scale
+C factors of h**j/factorial(j).  On the first CALL for the problem,
+C given by NST = 0, NQ is 1 and H is temporarily set to 1.0.
+C NYH is the initial value of NEQ.  The quantities NQ, H, and NST
+C can be obtained by including in DEWSET the statements..
+C     KPP_REAL RVOD, H, HU
+C     COMMON /DVOD01/ RVOD(48), IVOD(33)
+C     COMMON /DVOD02/ HU, NCFN, NETF, NFE, NJE, NLU, NNI, NQU, NST
+C     NQ = IVOD(28)
+C     H = RVOD(21)
+C Thus, for example, the current value of dy/dt can be obtained as
+C YCUR(NYH+i)/H  (i=1,...,NEQ)  (and the division by H is
+C unnecessary when NST = 0).
+C
+C (b) DVNORM.
+C The following is a real function routine which computes the weighted
+C root-mean-square norm of a vector v..
+C     D = DVNORM (N, V, W)
+C where..
+C   N = the length of the vector,
+C   V = real array of length N containing the vector,
+C   W = real array of length N containing weights,
+C   D = sqrt( (1/N) * sum(V(i)*W(i))**2 ).
+C DVNORM is called with N = NEQ and with W(i) = 1.0/EWT(i), where
+C EWT is as set by subroutine DEWSET.
+C
+C If the user supplies this function, it should return a non-negative
+C value of DVNORM suitable for use in the error control in DVODE.
+C None of the arguments should be altered by DVNORM.
+C For example, a user-supplied DVNORM routine might..
+C   -substitute a max-norm of (V(i)*W(i)) for the rms-norm, or
+C   -ignore some components of V in the norm, with the effect of
+C    suppressing the error control on those components of Y.
+C-----------------------------------------------------------------------
+C Other Routines in the DVODE Package.
+C
+C In addition to subroutine DVODE, the DVODE package includes the
+C following subroutines and function routines..
+C  DVHIN     computes an approximate step size for the initial step.
+C  DVINDY    computes an interpolated value of the y vector at t = TOUT.
+C  DVSTEP    is the core integrator, which does one step of the
+C            integration and the associated error control.
+C  DVSET     sets all method coefficients and test constants.
+C  DVNLSD    solves the underlying nonlinear system -- the corrector.
+C  DVJAC     computes and preprocesses the Jacobian matrix J = df/dy
+C            and the Newton iteration matrix P = I - (h/l1)*J.
+C  DVSOL     manages solution of linear system in chord iteration.
+C  DVJUST    adjusts the history array on a change of order.
+C  DEWSET    sets the error weight vector EWT before each step.
+C  DVNORM    computes the weighted r.m.s. norm of a vector.
+C  DVSRCO    is a user-callable routines to save and restore
+C            the contents of the internal COMMON blocks.
+C  DACOPY    is a routine to copy one two-dimensional array to another.
+C  DGEFA and DGESL   are routines from LINPACK for solving full
+C            systems of linear algebraic equations.
+C  DGBFA and DGBSL   are routines from LINPACK for solving banded
+C            linear systems.
+C  DAXPY, DSCAL, and DCOPY are basic linear algebra modules (BLAS).
+C  D1MACH    sets the unit roundoff of the machine.
+C  XERRWD, XSETUN, XSETF, LUNSAV, and MFLGSV handle the printing of all
+C            error messages and warnings.  XERRWD is machine-dependent.
+C Note..  DVNORM, D1MACH, LUNSAV, and MFLGSV are function routines.
+C All the others are subroutines.
+C
+C The intrinsic and external routines used by the DVODE package are..
+C ABS, MAX, MIN, REAL, SIGN, SQRT, and WRITE.
+C
+C-----------------------------------------------------------------------
+C
+C Type declarations for labeled COMMON block DVOD01 --------------------
+C
+      KPP_REAL ACNRM, CCMXJ, CONP, CRATE, DRC, EL,
+     1     ETA, ETAMAX, H, HMIN, HMXI, HNEW, HSCAL, PRL1,
+     2     RC, RL1, TAU, TQ, TN, UROUND
+      INTEGER ICF, INIT, IPUP, JCUR, JSTART, JSV, KFLAG, KUTH,
+     1        L, LMAX, LYH, LEWT, LACOR, LSAVF, LWM, LIWM,
+     2        LOCJS, MAXORD, METH, MITER, MSBJ, MXHNIL, MXSTEP,
+     3        N, NEWH, NEWQ, NHNIL, NQ, NQNYH, NQWAIT, NSLJ,
+     4        NSLP, NYH
+C
+C Type declarations for labeled COMMON block DVOD02 --------------------
+C
+      KPP_REAL HU
+      INTEGER NCFN, NETF, NFE, NJE, NLU, NNI, NQU, NST
+C
+C Type declarations for local variables --------------------------------
+C
+      EXTERNAL DVNLSD, F, JAC
+      LOGICAL IHIT
+      KPP_REAL AbsTolI, BIG, EWTI, FOUR, H0, HMAX, HMX, HUN, ONE,
+     1   PT2, RH, RelTolI, SIZE, TCRIT, TNEXT, TOLSF, TP, TWO, ZERO
+      INTEGER I, IER, IFLAG, IMXER, JCO, KGO, LENIW, LENJ, LENP, LENRW,
+     1   LENWM, LF0, MBAND, ML, MORD, MU, MXHNL0, MXSTP0, NITER, NSLAST
+      CHARACTER*80 MSG
+C
+C Type declaration for function subroutines called ---------------------
+C
+      KPP_REAL D1MACH, DVNORM
+C
+      DIMENSION MORD(2)
+C-----------------------------------------------------------------------
+C The following Fortran-77 declaration is to cause the values of the
+C listed (local) variables to be saved between calls to DVODE.
+C-----------------------------------------------------------------------
+      SAVE MORD, MXHNL0, MXSTP0
+      SAVE ZERO, ONE, TWO, FOUR, PT2, HUN
+C-----------------------------------------------------------------------
+C The following internal COMMON blocks contain variables which are
+C communicated between subroutines in the DVODE package, or which are
+C to be saved between calls to DVODE.
+C In each block, real variables precede integers.
+C The block /DVOD01/ appears in subroutines DVODE, DVINDY, DVSTEP,
+C DVSET, DVNLSD, DVJAC, DVSOL, DVJUST and DVSRCO.
+C The block /DVOD02/ appears in subroutines DVODE, DVINDY, DVSTEP,
+C DVNLSD, DVJAC, and DVSRCO.
+C
+C The variables stored in the internal COMMON blocks are as follows..
+C
+C ACNRM  = Weighted r.m.s. norm of accumulated correction vectors.
+C CCMXJ  = Threshhold on DRC for updating the Jacobian. (See DRC.)
+C CONP   = The saved value of TQ(5).
+C CRATE  = Estimated corrector convergence rate constant.
+C DRC    = Relative change in H*RL1 since last DVJAC call.
+C EL     = Real array of integration coefficients.  See DVSET.
+C ETA    = Saved tentative ratio of new to old H.
+C ETAMAX = Saved maximum value of ETA to be allowed.
+C H      = The step size.
+C HMIN   = The minimum absolute value of the step size H to be used.
+C HMXI   = Inverse of the maximum absolute value of H to be used.
+C          HMXI = 0.0 is allowed and corresponds to an infinite HMAX.
+C HNEW   = The step size to be attempted on the next step.
+C HSCAL  = Stepsize in scaling of YH array.
+C PRL1   = The saved value of RL1.
+C RC     = Ratio of current H*RL1 to value on last DVJAC call.
+C RL1    = The reciprocal of the coefficient EL(1).
+C TAU    = Real vector of past NQ step sizes, length 13.
+C TQ     = A real vector of length 5 in which DVSET stores constants
+C          used for the convergence test, the error test, and the
+C          selection of H at a new order.
+C TN     = The independent variable, updated on each step taken.
+C UROUND = The machine unit roundoff.  The smallest positive real number
+C          such that  1.0 + UROUND .ne. 1.0
+C ICF    = Integer flag for convergence failure in DVNLSD..
+C            0 means no failures.
+C            1 means convergence failure with out of date Jacobian
+C                   (recoverable error).
+C            2 means convergence failure with current Jacobian or
+C                   singular matrix (unrecoverable error).
+C INIT   = Saved integer flag indicating whether initialization of the
+C          problem has been done (INIT = 1) or not.
+C IPUP   = Saved flag to signal updating of Newton matrix.
+C JCUR   = Output flag from DVJAC showing Jacobian status..
+C            JCUR = 0 means J is not current.
+C            JCUR = 1 means J is current.
+C JSTART = Integer flag used as input to DVSTEP..
+C            0  means perform the first step.
+C            1  means take a new step continuing from the last.
+C            -1 means take the next step with a new value of MAXORD,
+C                  HMIN, HMXI, N, METH, MITER, and/or matrix parameters.
+C          On return, DVSTEP sets JSTART = 1.
+C JSV    = Integer flag for Jacobian saving, = sign(MF).
+C KFLAG  = A completion code from DVSTEP with the following meanings..
+C               0      the step was succesful.
+C              -1      the requested error could not be achieved.
+C              -2      corrector convergence could not be achieved.
+C              -3, -4  fatal error in VNLS (can not occur here).
+C KUTH   = Input flag to DVSTEP showing whether H was reduced by the
+C          driver.  KUTH = 1 if H was reduced, = 0 otherwise.
+C L      = Integer variable, NQ + 1, current order plus one.
+C LMAX   = MAXORD + 1 (used for dimensioning).
+C LOCJS  = A pointer to the saved Jacobian, whose storage starts at
+C          WM(LOCJS), if JSV = 1.
+C LYH, LEWT, LACOR, LSAVF, LWM, LIWM = Saved integer pointers
+C          to segments of RWORK and IWORK.
+C MAXORD = The maximum order of integration method to be allowed.
+C METH/MITER = The method flags.  See MF.
+C MSBJ   = The maximum number of steps between J evaluations, = 50.
+C MXHNIL = Saved value of optional input MXHNIL.
+C MXSTEP = Saved value of optional input MXSTEP.
+C N      = The number of first-order ODEs, = NEQ.
+C NEWH   = Saved integer to flag change of H.
+C NEWQ   = The method order to be used on the next step.
+C NHNIL  = Saved counter for occurrences of T + H = T.
+C NQ     = Integer variable, the current integration method order.
+C NQNYH  = Saved value of NQ*NYH.
+C NQWAIT = A counter controlling the frequency of order changes.
+C          An order change is about to be considered if NQWAIT = 1.
+C NSLJ   = The number of steps taken as of the last Jacobian update.
+C NSLP   = Saved value of NST as of last Newton matrix update.
+C NYH    = Saved value of the initial value of NEQ.
+C HU     = The step size in t last used.
+C NCFN   = Number of nonlinear convergence failures so far.
+C NETF   = The number of error test failures of the integrator so far.
+C NFE    = The number of f evaluations for the problem so far.
+C NJE    = The number of Jacobian evaluations so far.
+C NLU    = The number of matrix LU decompositions so far.
+C NNI    = Number of nonlinear iterations so far.
+C NQU    = The method order last used.
+C NST    = The number of steps taken for the problem so far.
+C-----------------------------------------------------------------------
+      COMMON /DVOD01/ ACNRM, CCMXJ, CONP, CRATE, DRC, EL(13),
+     1                ETA, ETAMAX, H, HMIN, HMXI, HNEW, HSCAL, PRL1,
+     2                RC, RL1, TAU(13), TQ(5), TN, UROUND,
+     3                ICF, INIT, IPUP, JCUR, JSTART, JSV, KFLAG, KUTH,
+     4                L, LMAX, LYH, LEWT, LACOR, LSAVF, LWM, LIWM,
+     5                LOCJS, MAXORD, METH, MITER, MSBJ, MXHNIL, MXSTEP,
+     6                N, NEWH, NEWQ, NHNIL, NQ, NQNYH, NQWAIT, NSLJ,
+     7                NSLP, NYH
+      COMMON /DVOD02/ HU, NCFN, NETF, NFE, NJE, NLU, NNI, NQU, NST
+C
+
+      DATA  MORD(1) /12/, MORD(2) /5/, MXSTP0 /500/, MXHNL0 /10/
+      DATA ZERO /0.0D0/, ONE /1.0D0/, TWO /2.0D0/, FOUR /4.0D0/,
+     1     PT2 /0.2D0/, HUN /100.0D0/
+C-----------------------------------------------------------------------
+C Block A.
+C This code block is executed on every call.
+C It tests ISTATE and ITASK for legality and branches appropriately.
+C If ISTATE .gt. 1 but the flag INIT shows that initialization has
+C not yet been done, an error return occurs.
+C If ISTATE = 1 and TOUT = T, return immediately.
+C-----------------------------------------------------------------------
+      IF (ISTATE .LT. 1 .OR. ISTATE .GT. 3) GO TO 601
+      IF (ITASK .LT. 1 .OR. ITASK .GT. 5) GO TO 602
+      IF (ISTATE .EQ. 1) GO TO 10
+      IF (INIT .NE. 1) GO TO 603
+      IF (ISTATE .EQ. 2) GO TO 200
+      GO TO 20
+ 10   INIT = 0
+      IF (TOUT .EQ. T) RETURN
+C-----------------------------------------------------------------------
+C Block B.
+C The next code block is executed for the initial CALL (ISTATE = 1),
+C or for a continuation CALL with parameter changes (ISTATE = 3).
+C It contains checking of all input and various initializations.
+C
+C First check legality of the non-optional input NEQ, ITOL, IOPT,
+C MF, ML, and MU.
+C-----------------------------------------------------------------------
+ 20   IF (NEQ .LE. 0) GO TO 604
+      IF (ISTATE .EQ. 1) GO TO 25
+      IF (NEQ .GT. N) GO TO 605
+ 25   N = NEQ
+      IF (ITOL .LT. 1 .OR. ITOL .GT. 4) GO TO 606
+      IF (IOPT .LT. 0 .OR. IOPT .GT. 1) GO TO 607
+      JSV = SIGN(1,MF)
+      MF = ABS(MF)
+      METH = MF/10
+      MITER = MF - 10*METH
+      IF (METH .LT. 1 .OR. METH .GT. 2) GO TO 608
+      IF (MITER .LT. 0 .OR. MITER .GT. 5) GO TO 608
+      IF (MITER .LE. 3) GO TO 30
+      ML = IWORK(1)
+      MU = IWORK(2)
+      IF (ML .LT. 0 .OR. ML .GE. N) GO TO 609
+      IF (MU .LT. 0 .OR. MU .GE. N) GO TO 610
+ 30   CONTINUE
+C Next process and check the optional input. ---------------------------
+      IF (IOPT .EQ. 1) GO TO 40
+      MAXORD = MORD(METH)
+      MXSTEP = MXSTP0
+      MXHNIL = MXHNL0
+      IF (ISTATE .EQ. 1) H0 = ZERO
+      HMXI = ZERO
+      HMIN = ZERO
+      GO TO 60
+ 40   MAXORD = IWORK(5)
+      IF (MAXORD .LT. 0) GO TO 611
+      IF (MAXORD .EQ. 0) MAXORD = 100
+      MAXORD = MIN(MAXORD,MORD(METH))
+      MXSTEP = IWORK(6)
+      IF (MXSTEP .LT. 0) GO TO 612
+      IF (MXSTEP .EQ. 0) MXSTEP = MXSTP0
+      MXHNIL = IWORK(7)
+      IF (MXHNIL .LT. 0) GO TO 613
+      IF (MXHNIL .EQ. 0) MXHNIL = MXHNL0
+      IF (ISTATE .NE. 1) GO TO 50
+      H0 = RWORK(5)
+      IF ((TOUT - T)*H0 .LT. ZERO) GO TO 614
+ 50   HMAX = RWORK(6)
+      IF (HMAX .LT. ZERO) GO TO 615
+      HMXI = ZERO
+      IF (HMAX .GT. ZERO) HMXI = ONE/HMAX
+      HMIN = RWORK(7)
+      IF (HMIN .LT. ZERO) GO TO 616
+C-----------------------------------------------------------------------
+C Set work array pointers and check lengths LRW and LIW.
+C Pointers to segments of RWORK and IWORK are named by prefixing L to
+C the name of the segment.  E.g., the segment YH starts at RWORK(LYH).
+C Segments of RWORK (in order) are denoted  YH, WM, EWT, SAVF, ACOR.
+C Within WM, LOCJS is the location of the saved Jacobian (JSV .gt. 0).
+C-----------------------------------------------------------------------
+ 60   LYH = 21
+      IF (ISTATE .EQ. 1) NYH = N
+      LWM = LYH + (MAXORD + 1)*NYH
+      JCO = MAX(0,JSV)
+      IF (MITER .EQ. 0) LENWM = 0
+      IF (MITER .EQ. 1 .OR. MITER .EQ. 2) THEN
+        LENWM = 2 + (1 + JCO)*N*N
+        LOCJS = N*N + 3
+      ENDIF
+      IF (MITER .EQ. 3) LENWM = 2 + N
+      IF (MITER .EQ. 4 .OR. MITER .EQ. 5) THEN
+        MBAND = ML + MU + 1
+        LENP = (MBAND + ML)*N
+        LENJ = MBAND*N
+        LENWM = 2 + LENP + JCO*LENJ
+        LOCJS = LENP + 3
+        ENDIF
+      LEWT = LWM + LENWM
+      LSAVF = LEWT + N
+      LACOR = LSAVF + N
+      LENRW = LACOR + N - 1
+      IWORK(17) = LENRW
+      LIWM = 1
+      LENIW = 30 + N
+      IF (MITER .EQ. 0 .OR. MITER .EQ. 3) LENIW = 30
+      IWORK(18) = LENIW
+      IF (LENRW .GT. LRW) GO TO 617
+      IF (LENIW .GT. LIW) GO TO 618
+C Check RelTol and AbsTol for legality. ------------------------------------
+      RelTolI = RelTol(1)
+      AbsTolI = AbsTol(1)
+      DO 70 I = 1,N
+        IF (ITOL .GE. 3) RelTolI = RelTol(I)
+        IF (ITOL .EQ. 2 .OR. ITOL .EQ. 4) AbsTolI = AbsTol(I)
+        IF (RelTolI .LT. ZERO) GO TO 619
+        IF (AbsTolI .LT. ZERO) GO TO 620
+ 70     CONTINUE
+      IF (ISTATE .EQ. 1) GO TO 100
+C If ISTATE = 3, set flag to signal parameter changes to DVSTEP. -------
+      JSTART = -1
+      IF (NQ .LE. MAXORD) GO TO 90
+C MAXORD was reduced below NQ.  Copy YH(*,MAXORD+2) into SAVF. ---------
+      CALL DCOPY (N, RWORK(LWM), 1, RWORK(LSAVF), 1)
+C Reload WM(1) = RWORK(LWM), since LWM may have changed. ---------------
+ 90   IF (MITER .GT. 0) RWORK(LWM) = SQRT(UROUND)
+C-----------------------------------------------------------------------
+C Block C.
+C The next block is for the initial CALL only (ISTATE = 1).
+C It contains all remaining initializations, the initial CALL to F,
+C and the calculation of the initial step size.
+C The error weights in EWT are inverted after being loaded.
+C-----------------------------------------------------------------------
+ 100  UROUND = D1MACH(4)
+      TN = T
+      IF (ITASK .NE. 4 .AND. ITASK .NE. 5) GO TO 110
+      TCRIT = RWORK(1)
+      IF ((TCRIT - TOUT)*(TOUT - T) .LT. ZERO) GO TO 625
+      IF (H0 .NE. ZERO .AND. (T + H0 - TCRIT)*H0 .GT. ZERO)
+     1   H0 = TCRIT - T
+ 110  JSTART = 0
+      IF (MITER .GT. 0) RWORK(LWM) = SQRT(UROUND)
+      CCMXJ = PT2
+      MSBJ = 50
+      NHNIL = 0
+      NST = 0
+      NJE = 0
+      NNI = 0
+      NCFN = 0
+      NETF = 0
+      NLU = 0
+      NSLJ = 0
+      NSLAST = 0
+      HU = ZERO
+      NQU = 0
+C Initial CALL to F.  (LF0 points to YH(*,2).) -------------------------
+      LF0 = LYH + NYH
+      CALL F (N, T, Y, RWORK(LF0))
+      NFE = 1
+C Load the initial value vector in YH. ---------------------------------
+      CALL DCOPY (N, Y, 1, RWORK(LYH), 1)
+C Load and invert the EWT array.  (H is temporarily set to 1.0.) -------
+      NQ = 1
+      H = ONE
+      CALL DEWSET (N, ITOL, RelTol, AbsTol, RWORK(LYH), RWORK(LEWT))
+      DO 120 I = 1,N
+        IF (RWORK(I+LEWT-1) .LE. ZERO) GO TO 621
+ 120    RWORK(I+LEWT-1) = ONE/RWORK(I+LEWT-1)
+      IF (H0 .NE. ZERO) GO TO 180
+C Call DVHIN to set initial step size H0 to be attempted. --------------
+      CALL DVHIN (N, T, RWORK(LYH), RWORK(LF0), F, RPAR, IPAR, TOUT,
+     1   UROUND, RWORK(LEWT), ITOL, AbsTol, Y, RWORK(LACOR), H0,
+     2   NITER, IER)
+      NFE = NFE + NITER
+      IF (IER .NE. 0) GO TO 622
+C Adjust H0 if necessary to meet HMAX bound. ---------------------------
+ 180  RH = ABS(H0)*HMXI
+      IF (RH .GT. ONE) H0 = H0/RH
+C Load H with H0 and scale YH(*,2) by H0. ------------------------------
+      H = H0
+      CALL DSCAL (N, H0, RWORK(LF0), 1)
+      GO TO 270
+C-----------------------------------------------------------------------
+C Block D.
+C The next code block is for continuation calls only (ISTATE = 2 or 3)
+C and is to check stop conditions before taking a step.
+C-----------------------------------------------------------------------
+ 200  NSLAST = NST
+      KUTH = 0
+      GO TO (210, 250, 220, 230, 240), ITASK
+ 210  IF ((TN - TOUT)*H .LT. ZERO) GO TO 250
+      CALL DVINDY (TOUT, 0, RWORK(LYH), NYH, Y, IFLAG)
+      IF (IFLAG .NE. 0) GO TO 627
+      T = TOUT
+      GO TO 420
+ 220  TP = TN - HU*(ONE + HUN*UROUND)
+      IF ((TP - TOUT)*H .GT. ZERO) GO TO 623
+      IF ((TN - TOUT)*H .LT. ZERO) GO TO 250
+      GO TO 400
+ 230  TCRIT = RWORK(1)
+      IF ((TN - TCRIT)*H .GT. ZERO) GO TO 624
+      IF ((TCRIT - TOUT)*H .LT. ZERO) GO TO 625
+      IF ((TN - TOUT)*H .LT. ZERO) GO TO 245
+      CALL DVINDY (TOUT, 0, RWORK(LYH), NYH, Y, IFLAG)
+      IF (IFLAG .NE. 0) GO TO 627
+      T = TOUT
+      GO TO 420
+ 240  TCRIT = RWORK(1)
+      IF ((TN - TCRIT)*H .GT. ZERO) GO TO 624
+ 245  HMX = ABS(TN) + ABS(H)
+      IHIT = ABS(TN - TCRIT) .LE. HUN*UROUND*HMX
+      IF (IHIT) GO TO 400
+      TNEXT = TN + HNEW*(ONE + FOUR*UROUND)
+      IF ((TNEXT - TCRIT)*H .LE. ZERO) GO TO 250
+      H = (TCRIT - TN)*(ONE - FOUR*UROUND)
+      KUTH = 1
+C-----------------------------------------------------------------------
+C Block E.
+C The next block is normally executed for all calls and contains
+C the CALL to the one-step core integrator DVSTEP.
+C
+C This is a looping point for the integration steps.
+C
+C First check for too many steps being taken, update EWT (if not at
+C start of problem), check for too much accuracy being requested, and
+C check for H below the roundoff level in T.
+C-----------------------------------------------------------------------
+ 250  CONTINUE
+      IF ((NST-NSLAST) .GE. MXSTEP) GO TO 500
+      CALL DEWSET (N, ITOL, RelTol, AbsTol, RWORK(LYH), RWORK(LEWT))
+      DO 260 I = 1,N
+        IF (RWORK(I+LEWT-1) .LE. ZERO) GO TO 510
+ 260    RWORK(I+LEWT-1) = ONE/RWORK(I+LEWT-1)
+ 270  TOLSF = UROUND*DVNORM (N, RWORK(LYH), RWORK(LEWT))
+      IF (TOLSF .LE. ONE) GO TO 280
+      TOLSF = TOLSF*TWO
+      IF (NST .EQ. 0) GO TO 626
+      GO TO 520
+ 280  IF ((TN + H) .NE. TN) GO TO 290
+      NHNIL = NHNIL + 1
+      IF (NHNIL .GT. MXHNIL) GO TO 290
+      MSG = 'DVODE--  Warning..internal T (=R1) and H (=R2) are'
+      CALL XERRWD (MSG, 50, 101, 1, 0, 0, 0, 0, ZERO, ZERO)
+      MSG='      such that in the machine, T + H = T on the next step  '
+      CALL XERRWD (MSG, 60, 101, 1, 0, 0, 0, 0, ZERO, ZERO)
+      MSG = '      (H = step size). solver will continue anyway'
+      CALL XERRWD (MSG, 50, 101, 1, 0, 0, 0, 2, TN, H)
+      IF (NHNIL .LT. MXHNIL) GO TO 290
+      MSG = 'DVODE--  Above warning has been issued I1 times.  '
+      CALL XERRWD (MSG, 50, 102, 1, 0, 0, 0, 0, ZERO, ZERO)
+      MSG = '      it will not be issued again for this problem'
+      CALL XERRWD (MSG, 50, 102, 1, 1, MXHNIL, 0, 0, ZERO, ZERO)
+ 290  CONTINUE
+C-----------------------------------------------------------------------
+C CALL DVSTEP (Y, YH, NYH, YH, EWT, SAVF, VSAV, ACOR,
+C              WM, IWM, F, JAC, F, DVNLSD, RPAR, IPAR)
+C-----------------------------------------------------------------------
+      CALL DVSTEP (Y, RWORK(LYH), NYH, RWORK(LYH), RWORK(LEWT),
+     1   RWORK(LSAVF), Y, RWORK(LACOR), RWORK(LWM), IWORK(LIWM),
+     2   F, JAC, F, DVNLSD, RPAR, IPAR)
+      KGO = 1 - KFLAG
+C Branch on KFLAG.  Note..In this version, KFLAG can not be set to -3.
+C  KFLAG .eq. 0,   -1,  -2
+      GO TO (300, 530, 540), KGO
+C-----------------------------------------------------------------------
+C Block F.
+C The following block handles the case of a successful return from the
+C core integrator (KFLAG = 0).  Test for stop conditions.
+C-----------------------------------------------------------------------
+ 300  INIT = 1
+      KUTH = 0
+      GO TO (310, 400, 330, 340, 350), ITASK
+C ITASK = 1.  If TOUT has been reached, interpolate. -------------------
+ 310  IF ((TN - TOUT)*H .LT. ZERO) GO TO 250
+      CALL DVINDY (TOUT, 0, RWORK(LYH), NYH, Y, IFLAG)
+      T = TOUT
+      GO TO 420
+C ITASK = 3.  Jump to exit if TOUT was reached. ------------------------
+ 330  IF ((TN - TOUT)*H .GE. ZERO) GO TO 400
+      GO TO 250
+C ITASK = 4.  See if TOUT or TCRIT was reached.  Adjust H if necessary.
+ 340  IF ((TN - TOUT)*H .LT. ZERO) GO TO 345
+      CALL DVINDY (TOUT, 0, RWORK(LYH), NYH, Y, IFLAG)
+      T = TOUT
+      GO TO 420
+ 345  HMX = ABS(TN) + ABS(H)
+      IHIT = ABS(TN - TCRIT) .LE. HUN*UROUND*HMX
+      IF (IHIT) GO TO 400
+      TNEXT = TN + HNEW*(ONE + FOUR*UROUND)
+      IF ((TNEXT - TCRIT)*H .LE. ZERO) GO TO 250
+      H = (TCRIT - TN)*(ONE - FOUR*UROUND)
+      KUTH = 1
+      GO TO 250
+C ITASK = 5.  See if TCRIT was reached and jump to exit. ---------------
+ 350  HMX = ABS(TN) + ABS(H)
+      IHIT = ABS(TN - TCRIT) .LE. HUN*UROUND*HMX
+C-----------------------------------------------------------------------
+C Block G.
+C The following block handles all successful returns from DVODE.
+C If ITASK .ne. 1, Y is loaded from YH and T is set accordingly.
+C ISTATE is set to 2, and the optional output is loaded into the work
+C arrays before returning.
+C-----------------------------------------------------------------------
+ 400  CONTINUE
+      CALL DCOPY (N, RWORK(LYH), 1, Y, 1)
+      T = TN
+      IF (ITASK .NE. 4 .AND. ITASK .NE. 5) GO TO 420
+      IF (IHIT) T = TCRIT
+ 420  ISTATE = 2
+      RWORK(11) = HU
+      RWORK(12) = HNEW
+      RWORK(13) = TN
+      IWORK(11) = NST
+      IWORK(12) = NFE
+      IWORK(13) = NJE
+      IWORK(14) = NQU
+      IWORK(15) = NEWQ
+      IWORK(19) = NLU
+      IWORK(20) = NNI
+      IWORK(21) = NCFN
+      IWORK(22) = NETF
+      RETURN
+C-----------------------------------------------------------------------
+C Block H.
+C The following block handles all unsuccessful returns other than
+C those for illegal input.  First the error message routine is called.
+C if there was an error test or convergence test failure, IMXER is set.
+C Then Y is loaded from YH, T is set to TN, and the illegal input
+C The optional output is loaded into the work arrays before returning.
+C-----------------------------------------------------------------------
+C The maximum number of steps was taken before reaching TOUT. ----------
+ 500  MSG = 'DVODE--  At current T (=R1), MXSTEP (=I1) steps   '
+      CALL XERRWD (MSG, 50, 201, 1, 0, 0, 0, 0, ZERO, ZERO)
+      MSG = '      taken on this CALL before reaching TOUT     '
+      CALL XERRWD (MSG, 50, 201, 1, 1, MXSTEP, 0, 1, TN, ZERO)
+      ISTATE = -1
+      GO TO 580
+C EWT(i) .le. 0.0 for some i (not at start of problem). ----------------
+ 510  EWTI = RWORK(LEWT+I-1)
+      MSG = 'DVODE--  At T (=R1), EWT(I1) has become R2 .le. 0.'
+      CALL XERRWD (MSG, 50, 202, 1, 1, I, 0, 2, TN, EWTI)
+      ISTATE = -6
+      GO TO 580
+C Too much accuracy requested for machine precision. -------------------
+ 520  MSG = 'DVODE--  At T (=R1), too much accuracy requested  '
+      CALL XERRWD (MSG, 50, 203, 1, 0, 0, 0, 0, ZERO, ZERO)
+      MSG = '      for precision of machine..  see TOLSF (=R2) '
+      CALL XERRWD (MSG, 50, 203, 1, 0, 0, 0, 2, TN, TOLSF)
+      RWORK(14) = TOLSF
+      ISTATE = -2
+      GO TO 580
+C KFLAG = -1.  Error test failed repeatedly or with ABS(H) = HMIN. -----
+ 530  MSG = 'DVODE--  At T(=R1) and step size H(=R2), the error'
+      CALL XERRWD (MSG, 50, 204, 1, 0, 0, 0, 0, ZERO, ZERO)
+      MSG = '      test failed repeatedly or with abs(H) = HMIN'
+      CALL XERRWD (MSG, 50, 204, 1, 0, 0, 0, 2, TN, H)
+      ISTATE = -4
+      GO TO 560
+C KFLAG = -2.  Convergence failed repeatedly or with abs(H) = HMIN. ----
+ 540  MSG = 'DVODE--  At T (=R1) and step size H (=R2), the    '
+      CALL XERRWD (MSG, 50, 205, 1, 0, 0, 0, 0, ZERO, ZERO)
+      MSG = '      corrector convergence failed repeatedly     '
+      CALL XERRWD (MSG, 50, 205, 1, 0, 0, 0, 0, ZERO, ZERO)
+      MSG = '      or with abs(H) = HMIN   '
+      CALL XERRWD (MSG, 30, 205, 1, 0, 0, 0, 2, TN, H)
+      ISTATE = -5
+C Compute IMXER if relevant. -------------------------------------------
+ 560  BIG = ZERO
+      IMXER = 1
+      DO 570 I = 1,N
+        SIZE = ABS(RWORK(I+LACOR-1)*RWORK(I+LEWT-1))
+        IF (BIG .GE. SIZE) GO TO 570
+        BIG = SIZE
+        IMXER = I
+ 570    CONTINUE
+      IWORK(16) = IMXER
+C Set Y vector, T, and optional output. --------------------------------
+ 580  CONTINUE
+      CALL DCOPY (N, RWORK(LYH), 1, Y, 1)
+      T = TN
+      RWORK(11) = HU
+      RWORK(12) = H
+      RWORK(13) = TN
+      IWORK(11) = NST
+      IWORK(12) = NFE
+      IWORK(13) = NJE
+      IWORK(14) = NQU
+      IWORK(15) = NQ
+      IWORK(19) = NLU
+      IWORK(20) = NNI
+      IWORK(21) = NCFN
+      IWORK(22) = NETF
+      RETURN
+C-----------------------------------------------------------------------
+C Block I.
+C The following block handles all error returns due to illegal input
+C (ISTATE = -3), as detected before calling the core integrator.
+C First the error message routine is called.   If the illegal input
+C is a negative ISTATE, the run is aborted (apparent infinite loop).
+C-----------------------------------------------------------------------
+ 601  MSG = 'DVODE--  ISTATE (=I1) illegal '
+      CALL XERRWD (MSG, 30, 1, 1, 1, ISTATE, 0, 0, ZERO, ZERO)
+      IF (ISTATE .LT. 0) GO TO 800
+      GO TO 700
+ 602  MSG = 'DVODE--  ITASK (=I1) illegal  '
+      CALL XERRWD (MSG, 30, 2, 1, 1, ITASK, 0, 0, ZERO, ZERO)
+      GO TO 700
+ 603  MSG='DVODE--  ISTATE (=I1) .gt. 1 but DVODE not initialized      '
+      CALL XERRWD (MSG, 60, 3, 1, 1, ISTATE, 0, 0, ZERO, ZERO)
+      GO TO 700
+ 604  MSG = 'DVODE--  NEQ (=I1) .lt. 1     '
+      CALL XERRWD (MSG, 30, 4, 1, 1, NEQ, 0, 0, ZERO, ZERO)
+      GO TO 700
+ 605  MSG = 'DVODE--  ISTATE = 3 and NEQ increased (I1 to I2)  '
+      CALL XERRWD (MSG, 50, 5, 1, 2, N, NEQ, 0, ZERO, ZERO)
+      GO TO 700
+ 606  MSG = 'DVODE--  ITOL (=I1) illegal   '
+      CALL XERRWD (MSG, 30, 6, 1, 1, ITOL, 0, 0, ZERO, ZERO)
+      GO TO 700
+ 607  MSG = 'DVODE--  IOPT (=I1) illegal   '
+      CALL XERRWD (MSG, 30, 7, 1, 1, IOPT, 0, 0, ZERO, ZERO)
+      GO TO 700
+ 608  MSG = 'DVODE--  MF (=I1) illegal     '
+      CALL XERRWD (MSG, 30, 8, 1, 1, MF, 0, 0, ZERO, ZERO)
+      GO TO 700
+ 609  MSG = 'DVODE--  ML (=I1) illegal.. .lt.0 or .ge.NEQ (=I2)'
+      CALL XERRWD (MSG, 50, 9, 1, 2, ML, NEQ, 0, ZERO, ZERO)
+      GO TO 700
+ 610  MSG = 'DVODE--  MU (=I1) illegal.. .lt.0 or .ge.NEQ (=I2)'
+      CALL XERRWD (MSG, 50, 10, 1, 2, MU, NEQ, 0, ZERO, ZERO)
+      GO TO 700
+ 611  MSG = 'DVODE--  MAXORD (=I1) .lt. 0  '
+      CALL XERRWD (MSG, 30, 11, 1, 1, MAXORD, 0, 0, ZERO, ZERO)
+      GO TO 700
+ 612  MSG = 'DVODE--  MXSTEP (=I1) .lt. 0  '
+      CALL XERRWD (MSG, 30, 12, 1, 1, MXSTEP, 0, 0, ZERO, ZERO)
+      GO TO 700
+ 613  MSG = 'DVODE--  MXHNIL (=I1) .lt. 0  '
+      CALL XERRWD (MSG, 30, 13, 1, 1, MXHNIL, 0, 0, ZERO, ZERO)
+      GO TO 700
+ 614  MSG = 'DVODE--  TOUT (=R1) behind T (=R2)      '
+      CALL XERRWD (MSG, 40, 14, 1, 0, 0, 0, 2, TOUT, T)
+      MSG = '      integration direction is given by H0 (=R1)  '
+      CALL XERRWD (MSG, 50, 14, 1, 0, 0, 0, 1, H0, ZERO)
+      GO TO 700
+ 615  MSG = 'DVODE--  HMAX (=R1) .lt. 0.0  '
+      CALL XERRWD (MSG, 30, 15, 1, 0, 0, 0, 1, HMAX, ZERO)
+      GO TO 700
+ 616  MSG = 'DVODE--  HMIN (=R1) .lt. 0.0  '
+      CALL XERRWD (MSG, 30, 16, 1, 0, 0, 0, 1, HMIN, ZERO)
+      GO TO 700
+ 617  CONTINUE
+      MSG='DVODE--  RWORK length needed, LENRW (=I1), exceeds LRW (=I2)'
+      CALL XERRWD (MSG, 60, 17, 1, 2, LENRW, LRW, 0, ZERO, ZERO)
+      GO TO 700
+ 618  CONTINUE
+      MSG='DVODE--  IWORK length needed, LENIW (=I1), exceeds LIW (=I2)'
+      CALL XERRWD (MSG, 60, 18, 1, 2, LENIW, LIW, 0, ZERO, ZERO)
+      GO TO 700
+ 619  MSG = 'DVODE--  RelTol(I1) is R1 .lt. 0.0        '
+      CALL XERRWD (MSG, 40, 19, 1, 1, I, 0, 1, RelTolI, ZERO)
+      GO TO 700
+ 620  MSG = 'DVODE--  AbsTol(I1) is R1 .lt. 0.0        '
+      CALL XERRWD (MSG, 40, 20, 1, 1, I, 0, 1, AbsTolI, ZERO)
+      GO TO 700
+ 621  EWTI = RWORK(LEWT+I-1)
+      MSG = 'DVODE--  EWT(I1) is R1 .le. 0.0         '
+      CALL XERRWD (MSG, 40, 21, 1, 1, I, 0, 1, EWTI, ZERO)
+      GO TO 700
+ 622  CONTINUE
+      MSG='DVODE--  TOUT (=R1) too close to T(=R2) to start integration'
+      CALL XERRWD (MSG, 60, 22, 1, 0, 0, 0, 2, TOUT, T)
+      GO TO 700
+ 623  CONTINUE
+      MSG='DVODE--  ITASK = I1 and TOUT (=R1) behind TCUR - HU (= R2)  '
+      CALL XERRWD (MSG, 60, 23, 1, 1, ITASK, 0, 2, TOUT, TP)
+      GO TO 700
+ 624  CONTINUE
+      MSG='DVODE--  ITASK = 4 or 5 and TCRIT (=R1) behind TCUR (=R2)   '
+      CALL XERRWD (MSG, 60, 24, 1, 0, 0, 0, 2, TCRIT, TN)
+      GO TO 700
+ 625  CONTINUE
+      MSG='DVODE--  ITASK = 4 or 5 and TCRIT (=R1) behind TOUT (=R2)   '
+      CALL XERRWD (MSG, 60, 25, 1, 0, 0, 0, 2, TCRIT, TOUT)
+      GO TO 700
+ 626  MSG = 'DVODE--  At start of problem, too much accuracy   '
+      CALL XERRWD (MSG, 50, 26, 1, 0, 0, 0, 0, ZERO, ZERO)
+      MSG='      requested for precision of machine..  see TOLSF (=R1) '
+      CALL XERRWD (MSG, 60, 26, 1, 0, 0, 0, 1, TOLSF, ZERO)
+      RWORK(14) = TOLSF
+      GO TO 700
+ 627  MSG='DVODE--  Trouble from DVINDY.  ITASK = I1, TOUT = R1.       '
+      CALL XERRWD (MSG, 60, 27, 1, 1, ITASK, 0, 1, TOUT, ZERO)
+C
+ 700  CONTINUE
+      ISTATE = -3
+      RETURN
+C
+ 800  MSG = 'DVODE--  Run aborted.. apparent infinite loop     '
+      CALL XERRWD (MSG, 50, 303, 2, 0, 0, 0, 0, ZERO, ZERO)
+      RETURN
+C----------------------- End of Subroutine DVODE -----------------------
+      END
+*DECK DVHIN
+      SUBROUTINE DVHIN (N, T0, Y0, YDOT, F, RPAR, IPAR, TOUT, UROUND,
+     1   EWT, ITOL, AbsTol, Y, TEMP, H0, NITER, IER)
+      EXTERNAL F
+      KPP_REAL T0, Y0, YDOT, RPAR, TOUT, UROUND, EWT, AbsTol, Y,
+     1   TEMP, H0
+      INTEGER N, IPAR, ITOL, NITER, IER
+      DIMENSION Y0(*), YDOT(*), EWT(*), AbsTol(*), Y(*),
+     1   TEMP(*), RPAR(*), IPAR(*)
+C-----------------------------------------------------------------------
+C Call sequence input -- N, T0, Y0, YDOT, F, RPAR, IPAR, TOUT, UROUND,
+C                        EWT, ITOL, AbsTol, Y, TEMP
+C Call sequence output -- H0, NITER, IER
+C COMMON block variables accessed -- None
+C
+C Subroutines called by DVHIN.. F
+C Function routines called by DVHIN.. DVNORM
+C-----------------------------------------------------------------------
+C This routine computes the step size, H0, to be attempted on the
+C first step, when the user has not supplied a value for this.
+C
+C First we check that TOUT - T0 differs significantly from zero.  Then
+C an iteration is done to approximate the initial second derivative
+C and this is used to define h from w.r.m.s.norm(h**2 * yddot / 2) = 1.
+C A bias factor of 1/2 is applied to the resulting h.
+C The sign of H0 is inferred from the initial values of TOUT and T0.
+C
+C Communication with DVHIN is done with the following variables..
+C
+C N      = Size of ODE system, input.
+C T0     = Initial value of independent variable, input.
+C Y0     = Vector of initial conditions, input.
+C YDOT   = Vector of initial first derivatives, input.
+C F      = Name of subroutine for right-hand side f(t,y), input.
+C RPAR, IPAR = Dummy names for user's real and integer work arrays.
+C TOUT   = First output value of independent variable
+C UROUND = Machine unit roundoff
+C EWT, ITOL, AbsTol = Error weights and tolerance parameters
+C                   as described in the driver routine, input.
+C Y, TEMP = Work arrays of length N.
+C H0     = Step size to be attempted, output.
+C NITER  = Number of iterations (and of f evaluations) to compute H0,
+C          output.
+C IER    = The error flag, returned with the value
+C          IER = 0  if no trouble occurred, or
+C          IER = -1 if TOUT and T0 are considered too close to proceed.
+C-----------------------------------------------------------------------
+C
+C Type declarations for local variables --------------------------------
+C
+      KPP_REAL AFI, AbsTolI, DELYI, HALF, HG, HLB, HNEW, HRAT,
+     1     HUB, HUN, PT1, T1, TDIST, TROUND, TWO, YDDNRM
+      INTEGER I, ITER
+
+C
+C Type declaration for function subroutines called ---------------------
+C
+      KPP_REAL DVNORM
+C-----------------------------------------------------------------------
+C The following Fortran-77 declaration is to cause the values of the
+C listed (local) variables to be saved between calls to this integrator.
+C-----------------------------------------------------------------------
+      SAVE HALF, HUN, PT1, TWO
+      DATA HALF /0.5D0/, HUN /100.0D0/, PT1 /0.1D0/, TWO /2.0D0/
+C
+      NITER = 0
+      TDIST = ABS(TOUT - T0)
+      TROUND = UROUND*MAX(ABS(T0),ABS(TOUT))
+      IF (TDIST .LT. TWO*TROUND) GO TO 100
+C
+C Set a lower bound on h based on the roundoff level in T0 and TOUT. ---
+      HLB = HUN*TROUND
+C Set an upper bound on h based on TOUT-T0 and the initial Y and YDOT. -
+      HUB = PT1*TDIST
+      AbsTolI = AbsTol(1)
+      DO 10 I = 1, N
+        IF (ITOL .EQ. 2 .OR. ITOL .EQ. 4) AbsTolI = AbsTol(I)
+        DELYI = PT1*ABS(Y0(I)) + AbsTolI
+        AFI = ABS(YDOT(I))
+        IF (AFI*HUB .GT. DELYI) HUB = DELYI/AFI
+ 10     CONTINUE
+C
+C Set initial guess for h as geometric mean of upper and lower bounds. -
+      ITER = 0
+      HG = SQRT(HLB*HUB)
+C If the bounds have crossed, exit with the mean value. ----------------
+      IF (HUB .LT. HLB) THEN
+        H0 = HG
+        GO TO 90
+      ENDIF
+C
+C Looping point for iteration. -----------------------------------------
+ 50   CONTINUE
+C Estimate the second derivative as a difference quotient in f. --------
+      T1 = T0 + HG
+      DO 60 I = 1, N
+ 60     Y(I) = Y0(I) + HG*YDOT(I)
+      CALL F (N, T1, Y, TEMP)
+      DO 70 I = 1, N
+ 70     TEMP(I) = (TEMP(I) - YDOT(I))/HG
+      YDDNRM = DVNORM (N, TEMP, EWT)
+C Get the corresponding new value of h. --------------------------------
+      IF (YDDNRM*HUB*HUB .GT. TWO) THEN
+        HNEW = SQRT(TWO/YDDNRM)
+      ELSE
+        HNEW = SQRT(HG*HUB)
+      ENDIF
+      ITER = ITER + 1
+C-----------------------------------------------------------------------
+C Test the stopping conditions.
+C Stop if the new and previous h values differ by a factor of .lt. 2.
+C Stop if four iterations have been done.  Also, stop with previous h
+C if HNEW/HG .gt. 2 after first iteration, as this probably means that
+C the second derivative value is bad because of cancellation error.
+C-----------------------------------------------------------------------
+      IF (ITER .GE. 4) GO TO 80
+      HRAT = HNEW/HG
+C AICI
+      IF ( (HRAT .GT. HALF) .AND. (HRAT .LT. TWO) ) GO TO 80
+      IF ( (ITER .GE. 2) .AND. (HNEW .GT. TWO*HG) ) THEN
+        HNEW = HG
+        GO TO 80
+      ENDIF
+      HG = HNEW
+      GO TO 50
+C
+C Iteration done.  Apply bounds, bias factor, and sign.  Then exit. ----
+ 80   H0 = HNEW*HALF
+      IF (H0 .LT. HLB) H0 = HLB
+      IF (H0 .GT. HUB) H0 = HUB
+ 90   H0 = SIGN(H0, TOUT - T0)
+      NITER = ITER
+      IER = 0
+      RETURN
+C Error return for TOUT - T0 too small. --------------------------------
+ 100  IER = -1
+      RETURN
+C----------------------- End of Subroutine DVHIN -----------------------
+      END
+*DECK DVINDY
+      SUBROUTINE DVINDY (T, K, YH, LDYH, DKY, IFLAG)
+      KPP_REAL T, YH, DKY
+      INTEGER K, LDYH, IFLAG
+      DIMENSION YH(LDYH,*), DKY(*)
+C-----------------------------------------------------------------------
+C Call sequence input -- T, K, YH, LDYH
+C Call sequence output -- DKY, IFLAG
+C COMMON block variables accessed..
+C     /DVOD01/ --  H, TN, UROUND, L, N, NQ
+C     /DVOD02/ --  HU
+C
+C Subroutines called by DVINDY.. DSCAL, XERRWD
+C Function routines called by DVINDY.. None
+C-----------------------------------------------------------------------
+C DVINDY computes interpolated values of the K-th derivative of the
+C dependent variable vector y, and stores it in DKY.  This routine
+C is called within the package with K = 0 and T = TOUT, but may
+C also be called by the user for any K up to the current order.
+C (See detailed instructions in the usage documentation.)
+C-----------------------------------------------------------------------
+C The computed values in DKY are gotten by interpolation using the
+C Nordsieck history array YH.  This array corresponds uniquely to a
+C vector-valued polynomial of degree NQCUR or less, and DKY is set
+C to the K-th derivative of this polynomial at T.
+C The formula for DKY is..
+C              q
+C  DKY(i)  =  sum  c(j,K) * (T - TN)**(j-K) * H**(-j) * YH(i,j+1)
+C             j=K
+C where  c(j,K) = j*(j-1)*...*(j-K+1), q = NQCUR, TN = TCUR, H = HCUR.
+C The quantities  NQ = NQCUR, L = NQ+1, N, TN, and H are
+C communicated by COMMON.  The above sum is done in reverse order.
+C IFLAG is returned negative if either K or T is out of bounds.
+C
+C Discussion above and comments in driver explain all variables.
+C-----------------------------------------------------------------------
+C
+C Type declarations for labeled COMMON block DVOD01 --------------------
+C
+      KPP_REAL ACNRM, CCMXJ, CONP, CRATE, DRC, EL,
+     1     ETA, ETAMAX, H, HMIN, HMXI, HNEW, HSCAL, PRL1,
+     2     RC, RL1, TAU, TQ, TN, UROUND
+      INTEGER ICF, INIT, IPUP, JCUR, JSTART, JSV, KFLAG, KUTH,
+     1        L, LMAX, LYH, LEWT, LACOR, LSAVF, LWM, LIWM,
+     2        LOCJS, MAXORD, METH, MITER, MSBJ, MXHNIL, MXSTEP,
+     3        N, NEWH, NEWQ, NHNIL, NQ, NQNYH, NQWAIT, NSLJ,
+     4        NSLP, NYH
+C
+C Type declarations for labeled COMMON block DVOD02 --------------------
+C
+      KPP_REAL HU
+      INTEGER NCFN, NETF, NFE, NJE, NLU, NNI, NQU, NST
+C
+C Type declarations for local variables --------------------------------
+C
+      KPP_REAL C, HUN, R, S, TFUZZ, TN1, TP, ZERO
+      INTEGER I, IC, J, JB, JB2, JJ, JJ1, JP1
+      CHARACTER*80 MSG
+C-----------------------------------------------------------------------
+C The following Fortran-77 declaration is to cause the values of the
+C listed (local) variables to be saved between calls to this integrator.
+C-----------------------------------------------------------------------
+      SAVE HUN, ZERO
+C
+      COMMON /DVOD01/ ACNRM, CCMXJ, CONP, CRATE, DRC, EL(13),
+     1                ETA, ETAMAX, H, HMIN, HMXI, HNEW, HSCAL, PRL1,
+     2                RC, RL1, TAU(13), TQ(5), TN, UROUND,
+     3                ICF, INIT, IPUP, JCUR, JSTART, JSV, KFLAG, KUTH,
+     4                L, LMAX, LYH, LEWT, LACOR, LSAVF, LWM, LIWM,
+     5                LOCJS, MAXORD, METH, MITER, MSBJ, MXHNIL, MXSTEP,
+     6                N, NEWH, NEWQ, NHNIL, NQ, NQNYH, NQWAIT, NSLJ,
+     7                NSLP, NYH
+      COMMON /DVOD02/ HU, NCFN, NETF, NFE, NJE, NLU, NNI, NQU, NST
+C
+      DATA HUN /100.0D0/, ZERO /0.0D0/
+C
+      IFLAG = 0
+      IF (K .LT. 0 .OR. K .GT. NQ) GO TO 80
+      TFUZZ = HUN*UROUND*(TN + HU)
+      TP = TN - HU - TFUZZ
+      TN1 = TN + TFUZZ
+      IF ((T-TP)*(T-TN1) .GT. ZERO) GO TO 90
+C
+      S = (T - TN)/H
+      IC = 1
+      IF (K .EQ. 0) GO TO 15
+      JJ1 = L - K
+      DO 10 JJ = JJ1, NQ
+ 10     IC = IC*JJ
+ 15   C = REAL(IC)
+      DO 20 I = 1, N
+ 20     DKY(I) = C*YH(I,L)
+      IF (K .EQ. NQ) GO TO 55
+      JB2 = NQ - K
+      DO 50 JB = 1, JB2
+        J = NQ - JB
+        JP1 = J + 1
+        IC = 1
+        IF (K .EQ. 0) GO TO 35
+        JJ1 = JP1 - K
+        DO 30 JJ = JJ1, J
+ 30       IC = IC*JJ
+ 35     C = REAL(IC)
+        DO 40 I = 1, N
+ 40       DKY(I) = C*YH(I,JP1) + S*DKY(I)
+ 50     CONTINUE
+      IF (K .EQ. 0) RETURN
+ 55   R = H**(-K)
+      CALL DSCAL (N, R, DKY, 1)
+      RETURN
+C
+ 80   MSG = 'DVINDY-- K (=I1) illegal      '
+      CALL XERRWD (MSG, 30, 51, 1, 1, K, 0, 0, ZERO, ZERO)
+      IFLAG = -1
+      RETURN
+ 90   MSG = 'DVINDY-- T (=R1) illegal      '
+      CALL XERRWD (MSG, 30, 52, 1, 0, 0, 0, 1, T, ZERO)
+      MSG='      T not in interval TCUR - HU (= R1) to TCUR (=R2)      '
+      CALL XERRWD (MSG, 60, 52, 1, 0, 0, 0, 2, TP, TN)
+      IFLAG = -2
+      RETURN
+C----------------------- End of Subroutine DVINDY ----------------------
+      END
+*DECK DVSTEP
+      SUBROUTINE DVSTEP (Y, YH, LDYH, YH1, EWT, SAVF, VSAV, ACOR,
+     1                  WM, IWM, F, JAC, PSOL, VNLS, RPAR, IPAR)
+      EXTERNAL F, JAC, PSOL, VNLS
+      KPP_REAL Y, YH, YH1, EWT, SAVF, VSAV, ACOR, WM, RPAR
+      INTEGER LDYH, IWM, IPAR
+      DIMENSION Y(*), YH(LDYH,*), YH1(*), EWT(*), SAVF(*), VSAV(*),
+     1   ACOR(*), WM(*), IWM(*), RPAR(*), IPAR(*)
+
+C-----------------------------------------------------------------------
+C Call sequence input -- Y, YH, LDYH, YH1, EWT, SAVF, VSAV,
+C                        ACOR, WM, IWM, F, JAC, PSOL, VNLS, RPAR, IPAR
+C Call sequence output -- YH, ACOR, WM, IWM
+C COMMON block variables accessed..
+C     /DVOD01/  ACNRM, EL(13), H, HMIN, HMXI, HNEW, HSCAL, RC, TAU(13),
+C               TQ(5), TN, JCUR, JSTART, KFLAG, KUTH,
+C               L, LMAX, MAXORD, MITER, N, NEWQ, NQ, NQWAIT
+C     /DVOD02/  HU, NCFN, NETF, NFE, NQU, NST
+C
+C Subroutines called by DVSTEP.. F, DAXPY, DCOPY, DSCAL,
+C                               DVJUST, VNLS, DVSET
+C Function routines called by DVSTEP.. DVNORM
+C-----------------------------------------------------------------------
+C DVSTEP performs one step of the integration of an initial value
+C problem for a system of ordinary differential equations.
+C DVSTEP calls subroutine VNLS for the solution of the nonlinear system
+C arising in the time step.  Thus it is independent of the problem
+C Jacobian structure and the type of nonlinear system solution method.
+C DVSTEP returns a completion flag KFLAG (in COMMON).
+C A return with KFLAG = -1 or -2 means either ABS(H) = HMIN or 10
+C consecutive failures occurred.  On a return with KFLAG negative,
+C the values of TN and the YH array are as of the beginning of the last
+C step, and H is the last step size attempted.
+C
+C Communication with DVSTEP is done with the following variables..
+C
+C Y      = An array of length N used for the dependent variable vector.
+C YH     = An LDYH by LMAX array containing the dependent variables
+C          and their approximate scaled derivatives, where
+C          LMAX = MAXORD + 1.  YH(i,j+1) contains the approximate
+C          j-th derivative of y(i), scaled by H**j/factorial(j)
+C          (j = 0,1,...,NQ).  On entry for the first step, the first
+C          two columns of YH must be set from the initial values.
+C LDYH   = A constant integer .ge. N, the first dimension of YH.
+C          N is the number of ODEs in the system.
+C YH1    = A one-dimensional array occupying the same space as YH.
+C EWT    = An array of length N containing multiplicative weights
+C          for local error measurements.  Local errors in y(i) are
+C          compared to 1.0/EWT(i) in various error tests.
+C SAVF   = An array of working storage, of length N.
+C          also used for input of YH(*,MAXORD+2) when JSTART = -1
+C          and MAXORD .lt. the current order NQ.
+C VSAV   = A work array of length N passed to subroutine VNLS.
+C ACOR   = A work array of length N, used for the accumulated
+C          corrections.  On a successful return, ACOR(i) contains
+C          the estimated one-step local error in y(i).
+C WM,IWM = Real and integer work arrays associated with matrix
+C          operations in VNLS.
+C F      = Dummy name for the user supplied subroutine for f.
+C JAC    = Dummy name for the user supplied Jacobian subroutine.
+C PSOL   = Dummy name for the subroutine passed to VNLS, for
+C          possible use there.
+C VNLS   = Dummy name for the nonlinear system solving subroutine,
+C          whose real name is dependent on the method used.
+C RPAR, IPAR = Dummy names for user's real and integer work arrays.
+C-----------------------------------------------------------------------
+C
+C Type declarations for labeled COMMON block DVOD01 --------------------
+C
+      KPP_REAL ACNRM, CCMXJ, CONP, CRATE, DRC, EL,
+     1     ETA, ETAMAX, H, HMIN, HMXI, HNEW, HSCAL, PRL1,
+     2     RC, RL1, TAU, TQ, TN, UROUND
+      INTEGER ICF, INIT, IPUP, JCUR, JSTART, JSV, KFLAG, KUTH,
+     1        L, LMAX, LYH, LEWT, LACOR, LSAVF, LWM, LIWM,
+     2        LOCJS, MAXORD, METH, MITER, MSBJ, MXHNIL, MXSTEP,
+     3        N, NEWH, NEWQ, NHNIL, NQ, NQNYH, NQWAIT, NSLJ,
+     4        NSLP, NYH
+C
+C Type declarations for labeled COMMON block DVOD02 --------------------
+C
+      KPP_REAL HU
+      INTEGER NCFN, NETF, NFE, NJE, NLU, NNI, NQU, NST
+C
+C Type declarations for local variables --------------------------------
+C
+      KPP_REAL ADDON, BIAS1,BIAS2,BIAS3, CNQUOT, DDN, DSM, DUP,
+     1     ETACF, ETAMIN, ETAMX1, ETAMX2, ETAMX3, ETAMXF,
+     2     ETAQ, ETAQM1, ETAQP1, FLOTL, ONE, ONEPSM,
+     3     R, THRESH, TOLD, ZERO
+      INTEGER I, I1, I2, IBACK, J, JB, KFC, KFH, MXNCF, NCF, NFLAG
+C
+C Type declaration for function subroutines called ---------------------
+C
+      KPP_REAL DVNORM
+C-----------------------------------------------------------------------
+C The following Fortran-77 declaration is to cause the values of the
+C listed (local) variables to be saved between calls to this integrator.
+C-----------------------------------------------------------------------
+      SAVE ADDON, BIAS1, BIAS2, BIAS3,
+     1     ETACF, ETAMIN, ETAMX1, ETAMX2, ETAMX3, ETAMXF,
+     2     KFC, KFH, MXNCF, ONEPSM, THRESH, ONE, ZERO
+C-----------------------------------------------------------------------
+      COMMON /DVOD01/ ACNRM, CCMXJ, CONP, CRATE, DRC, EL(13),
+     1                ETA, ETAMAX, H, HMIN, HMXI, HNEW, HSCAL, PRL1,
+     2                RC, RL1, TAU(13), TQ(5), TN, UROUND,
+     3                ICF, INIT, IPUP, JCUR, JSTART, JSV, KFLAG, KUTH,
+     4                L, LMAX, LYH, LEWT, LACOR, LSAVF, LWM, LIWM,
+     5                LOCJS, MAXORD, METH, MITER, MSBJ, MXHNIL, MXSTEP,
+     6                N, NEWH, NEWQ, NHNIL, NQ, NQNYH, NQWAIT, NSLJ,
+     7                NSLP, NYH
+      COMMON /DVOD02/ HU, NCFN, NETF, NFE, NJE, NLU, NNI, NQU, NST
+C
+      DATA KFC/-3/, KFH/-7/, MXNCF/10/
+      DATA ADDON  /1.0D-6/,    BIAS1  /6.0D0/,     BIAS2  /6.0D0/,
+     1     BIAS3  /10.0D0/,    ETACF  /0.25D0/,    ETAMIN /0.1D0/,
+     2     ETAMXF /0.2D0/,     ETAMX1 /1.0D4/,     ETAMX2 /10.0D1/,
+     3     ETAMX3 /10.0D1/,    ONEPSM /1.00001D0/, THRESH /1.5D0/
+
+      DATA ONE/1.0D0/, ZERO/0.0D0/
+C
+      ETAQ   = ETAMX1
+      ETAQM1 = ETAMX1
+      ETAQP1 = ETAMX1
+      KFLAG = 0
+      TOLD = TN
+      NCF = 0
+      JCUR = 0
+      NFLAG = 0
+      IF (JSTART .GT. 0) GO TO 20
+      IF (JSTART .EQ. -1) GO TO 100
+C-----------------------------------------------------------------------
+C On the first call, the order is set to 1, and other variables are
+C initialized.  ETAMAX is the maximum ratio by which H can be increased
+C in a single step.  It is normally 1.5, but is larger during the
+C first 10 steps to compensate for the small initial H.  If a failure
+C occurs (in corrector convergence or error test), ETAMAX is set to 1
+C for the next increase.
+C-----------------------------------------------------------------------
+      LMAX = MAXORD + 1
+      NQ = 1
+      L = 2
+      NQNYH = NQ*LDYH
+      TAU(1) = H
+      PRL1 = ONE
+      RC = ZERO
+      ETAMAX = ETAMX1
+      NQWAIT = 2
+      HSCAL = H
+      GO TO 200
+C-----------------------------------------------------------------------
+C Take preliminary actions on a normal continuation step (JSTART.GT.0).
+C If the driver changed H, then ETA must be reset and NEWH set to 1.
+C If a change of order was dictated on the previous step, then
+C it is done here and appropriate adjustments in the history are made.
+C On an order decrease, the history array is adjusted by DVJUST.
+C On an order increase, the history array is augmented by a column.
+C On a change of step size H, the history array YH is rescaled.
+C-----------------------------------------------------------------------
+ 20   CONTINUE
+      IF (KUTH .EQ. 1) THEN
+        ETA = MIN(ETA,H/HSCAL)
+        NEWH = 1
+        ENDIF
+ 50   IF (NEWH .EQ. 0) GO TO 200
+      IF (NEWQ .EQ. NQ) GO TO 150
+      IF (NEWQ .LT. NQ) THEN
+        CALL DVJUST (YH, LDYH, -1)
+        NQ = NEWQ
+        L = NQ + 1
+        NQWAIT = L
+        GO TO 150
+        ENDIF
+      IF (NEWQ .GT. NQ) THEN
+        CALL DVJUST (YH, LDYH, 1)
+        NQ = NEWQ
+        L = NQ + 1
+        NQWAIT = L
+        GO TO 150
+      ENDIF
+C-----------------------------------------------------------------------
+C The following block handles preliminaries needed when JSTART = -1.
+C If N was reduced, zero out part of YH to avoid undefined references.
+C If MAXORD was reduced to a value less than the tentative order NEWQ,
+C then NQ is set to MAXORD, and a new H ratio ETA is chosen.
+C Otherwise, we take the same preliminary actions as for JSTART .gt. 0.
+C In any case, NQWAIT is reset to L = NQ + 1 to prevent further
+C changes in order for that many steps.
+C The new H ratio ETA is limited by the input H if KUTH = 1,
+C by HMIN if KUTH = 0, and by HMXI in any case.
+C Finally, the history array YH is rescaled.
+C-----------------------------------------------------------------------
+ 100  CONTINUE
+      LMAX = MAXORD + 1
+      IF (N .EQ. LDYH) GO TO 120
+      I1 = 1 + (NEWQ + 1)*LDYH
+      I2 = (MAXORD + 1)*LDYH
+      IF (I1 .GT. I2) GO TO 120
+      DO 110 I = I1, I2
+ 110    YH1(I) = ZERO
+ 120  IF (NEWQ .LE. MAXORD) GO TO 140
+      FLOTL = REAL(LMAX)
+      IF (MAXORD .LT. NQ-1) THEN
+        DDN = DVNORM (N, SAVF, EWT)/TQ(1)
+        ETA = ONE/((BIAS1*DDN)**(ONE/FLOTL) + ADDON)
+        ENDIF
+      IF (MAXORD .EQ. NQ .AND. NEWQ .EQ. NQ+1) ETA = ETAQ
+      IF (MAXORD .EQ. NQ-1 .AND. NEWQ .EQ. NQ+1) THEN
+        ETA = ETAQM1
+        CALL DVJUST (YH, LDYH, -1)
+        ENDIF
+      IF (MAXORD .EQ. NQ-1 .AND. NEWQ .EQ. NQ) THEN
+        DDN = DVNORM (N, SAVF, EWT)/TQ(1)
+        ETA = ONE/((BIAS1*DDN)**(ONE/FLOTL) + ADDON)
+        CALL DVJUST (YH, LDYH, -1)
+        ENDIF
+      ETA = MIN(ETA,ONE)
+      NQ = MAXORD
+      L = LMAX
+ 140  IF (KUTH .EQ. 1) ETA = MIN(ETA,ABS(H/HSCAL))
+      IF (KUTH .EQ. 0) ETA = MAX(ETA,HMIN/ABS(HSCAL))
+      ETA = ETA/MAX(ONE,ABS(HSCAL)*HMXI*ETA)
+      NEWH = 1
+      NQWAIT = L
+      IF (NEWQ .LE. MAXORD) GO TO 50
+C Rescale the history array for a change in H by a factor of ETA. ------
+ 150  R = ONE
+      DO 180 J = 2, L
+        R = R*ETA
+        CALL DSCAL (N, R, YH(1,J), 1 )
+ 180    CONTINUE
+      H = HSCAL*ETA
+      HSCAL = H
+      RC = RC*ETA
+      NQNYH = NQ*LDYH
+C-----------------------------------------------------------------------
+C This section computes the predicted values by effectively
+C multiplying the YH array by the Pascal triangle matrix.
+C DVSET is called to calculate all integration coefficients.
+C RC is the ratio of new to old values of the coefficient H/EL(2)=h/l1.
+C-----------------------------------------------------------------------
+ 200  TN = TN + H
+      I1 = NQNYH + 1
+      DO 220 JB = 1, NQ
+        I1 = I1 - LDYH
+        DO 210 I = I1, NQNYH
+ 210      YH1(I) = YH1(I) + YH1(I+LDYH)
+ 220  CONTINUE
+      CALL DVSET
+      RL1 = ONE/EL(2)
+      RC = RC*(RL1/PRL1)
+      PRL1 = RL1
+C
+C Call the nonlinear system solver. ------------------------------------
+C
+      CALL VNLS (Y, YH, LDYH, VSAV, SAVF, EWT, ACOR, IWM, WM,
+     1           F, JAC, PSOL, NFLAG, RPAR, IPAR)
+C
+      IF ((NFLAG .EQ. 0).OR.(H.LE.1.2*HMIN)) GO TO 450
+C-----------------------------------------------------------------------
+C The VNLS routine failed to achieve convergence (NFLAG .NE. 0).
+C The YH array is retracted to its values before prediction.
+C The step size H is reduced and the step is retried, if possible.
+C Otherwise, an error exit is taken.
+C-----------------------------------------------------------------------
+        NCF = NCF + 1
+        NCFN = NCFN + 1
+        ETAMAX = ONE
+        TN = TOLD
+        I1 = NQNYH + 1
+        DO 430 JB = 1, NQ
+          I1 = I1 - LDYH
+          DO 420 I = I1, NQNYH
+ 420        YH1(I) = YH1(I) - YH1(I+LDYH)
+ 430      CONTINUE
+        IF (NFLAG .LT. -1) GO TO 680
+        IF (ABS(H) .LE. HMIN*ONEPSM) GO TO 670
+        IF (NCF .EQ. MXNCF) GO TO 670
+        ETA = ETACF
+        ETA = MAX(ETA,HMIN/ABS(H))
+        NFLAG = -1
+        GO TO 150
+C-----------------------------------------------------------------------
+C The corrector has converged (NFLAG = 0).  The local error test is
+C made and control passes to statement 500 if it fails.
+C-----------------------------------------------------------------------
+ 450  CONTINUE
+      DSM = ACNRM/TQ(2)
+      IF ( (DSM .GT. ONE).and.(H.GT.HMIN) ) GO TO 500
+C-----------------------------------------------------------------------
+C After a successful step, update the YH and TAU arrays and decrement
+C NQWAIT.  If NQWAIT is then 1 and NQ .lt. MAXORD, then ACOR is saved
+C for use in a possible order increase on the next step.
+C If ETAMAX = 1 (a failure occurred this step), keep NQWAIT .ge. 2.
+C-----------------------------------------------------------------------
+      KFLAG = 0
+      NST = NST + 1
+      HU = H
+      NQU = NQ
+      DO 470 IBACK = 1, NQ
+        I = L - IBACK
+ 470    TAU(I+1) = TAU(I)
+      TAU(1) = H
+      DO 480 J = 1, L
+        CALL DAXPY (N, EL(J), ACOR, 1, YH(1,J), 1 )
+ 480    CONTINUE
+      NQWAIT = NQWAIT - 1
+      IF ((L .EQ. LMAX) .OR. (NQWAIT .NE. 1)) GO TO 490
+      CALL DCOPY (N, ACOR, 1, YH(1,LMAX), 1 )
+      CONP = TQ(5)
+ 490  IF (ETAMAX .NE. ONE) GO TO 560
+      IF (NQWAIT .LT. 2) NQWAIT = 2
+      NEWQ = NQ
+      NEWH = 0
+      ETA = ONE
+      HNEW = H
+      GO TO 690
+C-----------------------------------------------------------------------
+C The error test failed.  KFLAG keeps track of multiple failures.
+C Restore TN and the YH array to their previous values, and prepare
+C to try the step again.  Compute the optimum step size for the
+C same order.  After repeated failures, H is forced to decrease
+C more rapidly.
+C-----------------------------------------------------------------------
+ 500  KFLAG = KFLAG - 1
+      NETF = NETF + 1
+      NFLAG = -2
+      TN = TOLD
+      I1 = NQNYH + 1
+      DO 520 JB = 1, NQ
+        I1 = I1 - LDYH
+        DO 510 I = I1, NQNYH
+ 510      YH1(I) = YH1(I) - YH1(I+LDYH)
+ 520  CONTINUE
+      IF (ABS(H) .LE. HMIN*ONEPSM) GO TO 660
+      ETAMAX = ONE
+      IF (KFLAG .LE. KFC) GO TO 530
+C Compute ratio of new H to current H at the current order. ------------
+      FLOTL = REAL(L)
+      ETA = ONE/((BIAS2*DSM)**(ONE/FLOTL) + ADDON)
+      ETA = MAX(ETA,HMIN/ABS(H),ETAMIN)
+      IF ((KFLAG .LE. -2) .AND. (ETA .GT. ETAMXF)) ETA = ETAMXF
+      GO TO 150
+C-----------------------------------------------------------------------
+C Control reaches this section if 3 or more consecutive failures
+C have occurred.  It is assumed that the elements of the YH array
+C have accumulated errors of the wrong order.  The order is reduced
+C by one, if possible.  Then H is reduced by a factor of 0.1 and
+C the step is retried.  After a total of 7 consecutive failures,
+C an exit is taken with KFLAG = -1.
+C-----------------------------------------------------------------------
+ 530  IF (KFLAG .EQ. KFH) GO TO 660
+      IF (NQ .EQ. 1) GO TO 540
+      ETA = MAX(ETAMIN,HMIN/ABS(H))
+      CALL DVJUST (YH, LDYH, -1)
+      L = NQ
+      NQ = NQ - 1
+      NQWAIT = L
+      GO TO 150
+ 540  ETA = MAX(ETAMIN,HMIN/ABS(H))
+      H = H*ETA
+      HSCAL = H
+      TAU(1) = H
+      CALL F (N, TN, Y, SAVF)
+      NFE = NFE + 1
+      DO 550 I = 1, N
+ 550    YH(I,2) = H*SAVF(I)
+      NQWAIT = 10
+      GO TO 200
+C-----------------------------------------------------------------------
+C If NQWAIT = 0, an increase or decrease in order by one is considered.
+C Factors ETAQ, ETAQM1, ETAQP1 are computed by which H could
+C be multiplied at order q, q-1, or q+1, respectively.
+C The largest of these is determined, and the new order and
+C step size set accordingly.
+C A change of H or NQ is made only if H increases by at least a
+C factor of THRESH.  If an order change is considered and rejected,
+C then NQWAIT is set to 2 (reconsider it after 2 steps).
+C-----------------------------------------------------------------------
+C Compute ratio of new H to current H at the current order. ------------
+ 560  FLOTL = REAL(L)
+      ETAQ = ONE/((BIAS2*DSM)**(ONE/FLOTL) + ADDON)
+      IF (NQWAIT .NE. 0) GO TO 600
+      NQWAIT = 2
+      ETAQM1 = ZERO
+      IF (NQ .EQ. 1) GO TO 570
+C Compute ratio of new H to current H at the current order less one. ---
+      DDN = DVNORM (N, YH(1,L), EWT)/TQ(1)
+      ETAQM1 = ONE/((BIAS1*DDN)**(ONE/(FLOTL - ONE)) + ADDON)
+ 570  ETAQP1 = ZERO
+      IF (L .EQ. LMAX) GO TO 580
+C Compute ratio of new H to current H at current order plus one. -------
+      CNQUOT = (TQ(5)/CONP)*(H/TAU(2))**L
+      DO 575 I = 1, N
+ 575    SAVF(I) = ACOR(I) - CNQUOT*YH(I,LMAX)
+      DUP = DVNORM (N, SAVF, EWT)/TQ(3)
+      ETAQP1 = ONE/((BIAS3*DUP)**(ONE/(FLOTL + ONE)) + ADDON)
+ 580  IF (ETAQ .GE. ETAQP1) GO TO 590
+      IF (ETAQP1 .GT. ETAQM1) GO TO 620
+      GO TO 610
+ 590  IF (ETAQ .LT. ETAQM1) GO TO 610
+ 600  ETA = ETAQ
+      NEWQ = NQ
+      GO TO 630
+ 610  ETA = ETAQM1
+      NEWQ = NQ - 1
+      GO TO 630
+ 620  ETA = ETAQP1
+      NEWQ = NQ + 1
+      CALL DCOPY (N, ACOR, 1, YH(1,LMAX), 1)
+C Test tentative new H against THRESH, ETAMAX, and HMXI, then exit. ----
+ 630  IF (ETA .LT. THRESH .OR. ETAMAX .EQ. ONE) GO TO 640
+      ETA = MIN(ETA,ETAMAX)
+      ETA = ETA/MAX(ONE,ABS(H)*HMXI*ETA)
+      NEWH = 1
+      HNEW = H*ETA
+      GO TO 690
+ 640  NEWQ = NQ
+      NEWH = 0
+      ETA = ONE
+      HNEW = H
+      GO TO 690
+C-----------------------------------------------------------------------
+C All returns are made through this section.
+C On a successful return, ETAMAX is reset and ACOR is scaled.
+C-----------------------------------------------------------------------
+ 660  KFLAG = -1
+      GO TO 720
+ 670  KFLAG = -2
+      GO TO 720
+ 680  IF (NFLAG .EQ. -2) KFLAG = -3
+      IF (NFLAG .EQ. -3) KFLAG = -4
+      GO TO 720
+ 690  ETAMAX = ETAMX3
+      IF (NST .LE. 10) ETAMAX = ETAMX2
+ 700  R = ONE/TQ(2)
+      CALL DSCAL (N, R, ACOR, 1)
+ 720  JSTART = 1
+      RETURN
+C----------------------- End of Subroutine DVSTEP ----------------------
+      END
+*DECK DVSET
+      SUBROUTINE DVSET
+C-----------------------------------------------------------------------
+C Call sequence communication.. None
+C COMMON block variables accessed..
+C     /DVOD01/ -- EL(13), H, TAU(13), TQ(5), L(= NQ + 1),
+C                 METH, NQ, NQWAIT
+C
+C Subroutines called by DVSET.. None
+C Function routines called by DVSET.. None
+C-----------------------------------------------------------------------
+C DVSET is called by DVSTEP and sets coefficients for use there.
+C
+C For each order NQ, the coefficients in EL are calculated by use of
+C  the generating polynomial lambda(x), with coefficients EL(i).
+C      lambda(x) = EL(1) + EL(2)*x + ... + EL(NQ+1)*(x**NQ).
+C For the backward differentiation formulas,
+C                                     NQ-1
+C      lambda(x) = (1 + x/xi*(NQ)) * product (1 + x/xi(i) ) .
+C                                     i = 1
+C For the Adams formulas,
+C                              NQ-1
+C      (d/dx) lambda(x) = c * product (1 + x/xi(i) ) ,
+C                              i = 1
+C      lambda(-1) = 0,    lambda(0) = 1,
+C where c is a normalization constant.
+C In both cases, xi(i) is defined by
+C      H*xi(i) = t sub n  -  t sub (n-i)
+C              = H + TAU(1) + TAU(2) + ... TAU(i-1).
+C
+C
+C In addition to variables described previously, communication
+C with DVSET uses the following..
+C   TAU    = A vector of length 13 containing the past NQ values
+C            of H.
+C   EL     = A vector of length 13 in which vset stores the
+C            coefficients for the corrector formula.
+C   TQ     = A vector of length 5 in which vset stores constants
+C            used for the convergence test, the error test, and the
+C            selection of H at a new order.
+C   METH   = The basic method indicator.
+C   NQ     = The current order.
+C   L      = NQ + 1, the length of the vector stored in EL, and
+C            the number of columns of the YH array being used.
+C   NQWAIT = A counter controlling the frequency of order changes.
+C            An order change is about to be considered if NQWAIT = 1.
+C-----------------------------------------------------------------------
+C
+C Type declarations for labeled COMMON block DVOD01 --------------------
+C
+      KPP_REAL ACNRM, CCMXJ, CONP, CRATE, DRC, EL,
+     1     ETA, ETAMAX, H, HMIN, HMXI, HNEW, HSCAL, PRL1,
+     2     RC, RL1, TAU, TQ, TN, UROUND
+      INTEGER ICF, INIT, IPUP, JCUR, JSTART, JSV, KFLAG, KUTH,
+     1        L, LMAX, LYH, LEWT, LACOR, LSAVF, LWM, LIWM,
+     2        LOCJS, MAXORD, METH, MITER, MSBJ, MXHNIL, MXSTEP,
+     3        N, NEWH, NEWQ, NHNIL, NQ, NQNYH, NQWAIT, NSLJ,
+     4        NSLP, NYH
+C
+C Type declarations for local variables --------------------------------
+C
+      KPP_REAL AHATN0, ALPH0, CNQM1, CORTES, CSUM, ELP, EM,
+     1     EM0, FLOTI, FLOTL, FLOTNQ, HSUM, ONE, RXI, RXIS, S, SIX,
+     2     T1, T2, T3, T4, T5, T6, TWO, XI, ZERO
+      INTEGER I, IBACK, J, JP1, NQM1, NQM2
+C
+      DIMENSION EM(13)
+C-----------------------------------------------------------------------
+C The following Fortran-77 declaration is to cause the values of the
+C listed (local) variables to be saved between calls to this integrator.
+C-----------------------------------------------------------------------
+      SAVE CORTES, ONE, SIX, TWO, ZERO
+C
+      COMMON /DVOD01/ ACNRM, CCMXJ, CONP, CRATE, DRC, EL(13),
+     1                ETA, ETAMAX, H, HMIN, HMXI, HNEW, HSCAL, PRL1,
+     2                RC, RL1, TAU(13), TQ(5), TN, UROUND,
+     3                ICF, INIT, IPUP, JCUR, JSTART, JSV, KFLAG, KUTH,
+     4                L, LMAX, LYH, LEWT, LACOR, LSAVF, LWM, LIWM,
+     5                LOCJS, MAXORD, METH, MITER, MSBJ, MXHNIL, MXSTEP,
+     6                N, NEWH, NEWQ, NHNIL, NQ, NQNYH, NQWAIT, NSLJ,
+     7                NSLP, NYH
+C
+      DATA CORTES /0.1D0/
+      DATA ONE  /1.0D0/, SIX /6.0D0/, TWO /2.0D0/, ZERO /0.0D0/
+C
+      FLOTL = REAL(L)
+      NQM1 = NQ - 1
+      NQM2 = NQ - 2
+      GO TO (100, 200), METH
+C
+C Set coefficients for Adams methods. ----------------------------------
+ 100  IF (NQ .NE. 1) GO TO 110
+      EL(1) = ONE
+      EL(2) = ONE
+      TQ(1) = ONE
+      TQ(2) = TWO
+      TQ(3) = SIX*TQ(2)
+      TQ(5) = ONE
+      GO TO 300
+ 110  HSUM = H
+      EM(1) = ONE
+      FLOTNQ = FLOTL - ONE
+      DO 115 I = 2, L
+ 115    EM(I) = ZERO
+      DO 150 J = 1, NQM1
+        IF ((J .NE. NQM1) .OR. (NQWAIT .NE. 1)) GO TO 130
+        S = ONE
+        CSUM = ZERO
+        DO 120 I = 1, NQM1
+          CSUM = CSUM + S*EM(I)/REAL(I+1)
+ 120      S = -S
+        TQ(1) = EM(NQM1)/(FLOTNQ*CSUM)
+ 130    RXI = H/HSUM
+        DO 140 IBACK = 1, J
+          I = (J + 2) - IBACK
+ 140      EM(I) = EM(I) + EM(I-1)*RXI
+        HSUM = HSUM + TAU(J)
+ 150    CONTINUE
+C Compute integral from -1 to 0 of polynomial and of x times it. -------
+      S = ONE
+      EM0 = ZERO
+      CSUM = ZERO
+      DO 160 I = 1, NQ
+        FLOTI = REAL(I)
+        EM0 = EM0 + S*EM(I)/FLOTI
+        CSUM = CSUM + S*EM(I)/(FLOTI+ONE)
+ 160    S = -S
+C In EL, form coefficients of normalized integrated polynomial. --------
+      S = ONE/EM0
+      EL(1) = ONE
+      DO 170 I = 1, NQ
+ 170    EL(I+1) = S*EM(I)/REAL(I)
+      XI = HSUM/H
+      TQ(2) = XI*EM0/CSUM
+      TQ(5) = XI/EL(L)
+      IF (NQWAIT .NE. 1) GO TO 300
+C For higher order control constant, multiply polynomial by 1+x/xi(q). -
+      RXI = ONE/XI
+      DO 180 IBACK = 1, NQ
+        I = (L + 1) - IBACK
+ 180    EM(I) = EM(I) + EM(I-1)*RXI
+C Compute integral of polynomial. --------------------------------------
+      S = ONE
+      CSUM = ZERO
+      DO 190 I = 1, L
+        CSUM = CSUM + S*EM(I)/REAL(I+1)
+ 190    S = -S
+      TQ(3) = FLOTL*EM0/CSUM
+      GO TO 300
+C
+C Set coefficients for BDF methods. ------------------------------------
+ 200  DO 210 I = 3, L
+ 210    EL(I) = ZERO
+      EL(1) = ONE
+      EL(2) = ONE
+      ALPH0 = -ONE
+      AHATN0 = -ONE
+      HSUM = H
+      RXI = ONE
+      RXIS = ONE
+      IF (NQ .EQ. 1) GO TO 240
+      DO 230 J = 1, NQM2
+C In EL, construct coefficients of (1+x/xi(1))*...*(1+x/xi(j+1)). ------
+        HSUM = HSUM + TAU(J)
+        RXI = H/HSUM
+        JP1 = J + 1
+        ALPH0 = ALPH0 - ONE/REAL(JP1)
+        DO 220 IBACK = 1, JP1
+          I = (J + 3) - IBACK
+ 220      EL(I) = EL(I) + EL(I-1)*RXI
+ 230    CONTINUE
+      ALPH0 = ALPH0 - ONE/REAL(NQ)
+      RXIS = -EL(2) - ALPH0
+      HSUM = HSUM + TAU(NQM1)
+      RXI = H/HSUM
+      AHATN0 = -EL(2) - RXI
+      DO 235 IBACK = 1, NQ
+        I = (NQ + 2) - IBACK
+ 235    EL(I) = EL(I) + EL(I-1)*RXIS
+ 240  T1 = ONE - AHATN0 + ALPH0
+      T2 = ONE + REAL(NQ)*T1
+      TQ(2) = ABS(ALPH0*T2/T1)
+      TQ(5) = ABS(T2/(EL(L)*RXI/RXIS))
+      IF (NQWAIT .NE. 1) GO TO 300
+      CNQM1 = RXIS/EL(L)
+      T3 = ALPH0 + ONE/REAL(NQ)
+      T4 = AHATN0 + RXI
+      ELP = T3/(ONE - T4 + T3)
+      TQ(1) = ABS(ELP/CNQM1)
+      HSUM = HSUM + TAU(NQ)
+      RXI = H/HSUM
+      T5 = ALPH0 - ONE/REAL(NQ+1)
+      T6 = AHATN0 - RXI
+      ELP = T2/(ONE - T6 + T5)
+      TQ(3) = ABS(ELP*RXI*(FLOTL + ONE)*T5)
+ 300  TQ(4) = CORTES*TQ(2)
+      RETURN
+C----------------------- End of Subroutine DVSET -----------------------
+      END
+*DECK DVJUST
+      SUBROUTINE DVJUST (YH, LDYH, IORD)
+      KPP_REAL YH
+      INTEGER LDYH, IORD
+      DIMENSION YH(LDYH,*)
+C-----------------------------------------------------------------------
+C Call sequence input -- YH, LDYH, IORD
+C Call sequence output -- YH
+C COMMON block input -- NQ, METH, LMAX, HSCAL, TAU(13), N
+C COMMON block variables accessed..
+C     /DVOD01/ -- HSCAL, TAU(13), LMAX, METH, N, NQ,
+C
+C Subroutines called by DVJUST.. DAXPY
+C Function routines called by DVJUST.. None
+C-----------------------------------------------------------------------
+C This subroutine adjusts the YH array on reduction of order,
+C and also when the order is increased for the stiff option (METH = 2).
+C Communication with DVJUST uses the following..
+C IORD  = An integer flag used when METH = 2 to indicate an order
+C         increase (IORD = +1) or an order decrease (IORD = -1).
+C HSCAL = Step size H used in scaling of Nordsieck array YH.
+C         (If IORD = +1, DVJUST assumes that HSCAL = TAU(1).)
+C See References 1 and 2 for details.
+C-----------------------------------------------------------------------
+C
+C Type declarations for labeled COMMON block DVOD01 --------------------
+C
+      KPP_REAL ACNRM, CCMXJ, CONP, CRATE, DRC, EL,
+     1     ETA, ETAMAX, H, HMIN, HMXI, HNEW, HSCAL, PRL1,
+     2     RC, RL1, TAU, TQ, TN, UROUND
+      INTEGER ICF, INIT, IPUP, JCUR, JSTART, JSV, KFLAG, KUTH,
+     1        L, LMAX, LYH, LEWT, LACOR, LSAVF, LWM, LIWM,
+     2        LOCJS, MAXORD, METH, MITER, MSBJ, MXHNIL, MXSTEP,
+     3        N, NEWH, NEWQ, NHNIL, NQ, NQNYH, NQWAIT, NSLJ,
+     4        NSLP, NYH
+C
+C Type declarations for local variables --------------------------------
+C
+      KPP_REAL ALPH0, ALPH1, HSUM, ONE, PROD, T1, XI,XIOLD, ZERO
+      INTEGER I, IBACK, J, JP1, LP1, NQM1, NQM2, NQP1
+C-----------------------------------------------------------------------
+C The following Fortran-77 declaration is to cause the values of the
+C listed (local) variables to be saved between calls to this integrator.
+C-----------------------------------------------------------------------
+      SAVE ONE, ZERO
+C
+      COMMON /DVOD01/ ACNRM, CCMXJ, CONP, CRATE, DRC, EL(13),
+     1                ETA, ETAMAX, H, HMIN, HMXI, HNEW, HSCAL, PRL1,
+     2                RC, RL1, TAU(13), TQ(5), TN, UROUND,
+     3                ICF, INIT, IPUP, JCUR, JSTART, JSV, KFLAG, KUTH,
+     4                L, LMAX, LYH, LEWT, LACOR, LSAVF, LWM, LIWM,
+     5                LOCJS, MAXORD, METH, MITER, MSBJ, MXHNIL, MXSTEP,
+     6                N, NEWH, NEWQ, NHNIL, NQ, NQNYH, NQWAIT, NSLJ,
+     7                NSLP, NYH
+C
+      DATA ONE /1.0D0/, ZERO /0.0D0/
+C
+      IF ((NQ .EQ. 2) .AND. (IORD .NE. 1)) RETURN
+      NQM1 = NQ - 1
+      NQM2 = NQ - 2
+      GO TO (100, 200), METH
+C-----------------------------------------------------------------------
+C Nonstiff option...
+C Check to see if the order is being increased or decreased.
+C-----------------------------------------------------------------------
+ 100  CONTINUE
+      IF (IORD .EQ. 1) GO TO 180
+C Order decrease. ------------------------------------------------------
+      DO 110 J = 1, LMAX
+ 110    EL(J) = ZERO
+      EL(2) = ONE
+      HSUM = ZERO
+      DO 130 J = 1, NQM2
+C Construct coefficients of x*(x+xi(1))*...*(x+xi(j)). -----------------
+        HSUM = HSUM + TAU(J)
+        XI = HSUM/HSCAL
+        JP1 = J + 1
+        DO 120 IBACK = 1, JP1
+          I = (J + 3) - IBACK
+ 120      EL(I) = EL(I)*XI + EL(I-1)
+ 130    CONTINUE
+C Construct coefficients of integrated polynomial. ---------------------
+      DO 140 J = 2, NQM1
+ 140    EL(J+1) = REAL(NQ)*EL(J)/REAL(J)
+C Subtract correction terms from YH array. -----------------------------
+      DO 170 J = 3, NQ
+        DO 160 I = 1, N
+ 160      YH(I,J) = YH(I,J) - YH(I,L)*EL(J)
+ 170    CONTINUE
+      RETURN
+C Order increase. ------------------------------------------------------
+C Zero out next column in YH array. ------------------------------------
+ 180  CONTINUE
+      LP1 = L + 1
+      DO 190 I = 1, N
+ 190    YH(I,LP1) = ZERO
+      RETURN
+C-----------------------------------------------------------------------
+C Stiff option...
+C Check to see if the order is being increased or decreased.
+C-----------------------------------------------------------------------
+ 200  CONTINUE
+      IF (IORD .EQ. 1) GO TO 300
+C Order decrease. ------------------------------------------------------
+      DO 210 J = 1, LMAX
+ 210    EL(J) = ZERO
+      EL(3) = ONE
+      HSUM = ZERO
+      DO 230 J = 1,NQM2
+C Construct coefficients of x*x*(x+xi(1))*...*(x+xi(j)). ---------------
+        HSUM = HSUM + TAU(J)
+        XI = HSUM/HSCAL
+        JP1 = J + 1
+        DO 220 IBACK = 1, JP1
+          I = (J + 4) - IBACK
+ 220      EL(I) = EL(I)*XI + EL(I-1)
+ 230    CONTINUE
+C Subtract correction terms from YH array. -----------------------------
+      DO 250 J = 3,NQ
+        DO 240 I = 1, N
+ 240      YH(I,J) = YH(I,J) - YH(I,L)*EL(J)
+ 250    CONTINUE
+      RETURN
+C Order increase. ------------------------------------------------------
+ 300  DO 310 J = 1, LMAX
+ 310    EL(J) = ZERO
+      EL(3) = ONE
+      ALPH0 = -ONE
+      ALPH1 = ONE
+      PROD = ONE
+      XIOLD = ONE
+      HSUM = HSCAL
+      IF (NQ .EQ. 1) GO TO 340
+      DO 330 J = 1, NQM1
+C Construct coefficients of x*x*(x+xi(1))*...*(x+xi(j)). ---------------
+        JP1 = J + 1
+        HSUM = HSUM + TAU(JP1)
+        XI = HSUM/HSCAL
+        PROD = PROD*XI
+        ALPH0 = ALPH0 - ONE/REAL(JP1)
+        ALPH1 = ALPH1 + ONE/XI
+        DO 320 IBACK = 1, JP1
+          I = (J + 4) - IBACK
+ 320      EL(I) = EL(I)*XIOLD + EL(I-1)
+        XIOLD = XI
+ 330    CONTINUE
+ 340  CONTINUE
+      T1 = (-ALPH0 - ALPH1)/PROD
+C Load column L + 1 in YH array. ---------------------------------------
+      LP1 = L + 1
+      DO 350 I = 1, N
+ 350    YH(I,LP1) = T1*YH(I,LMAX)
+C Add correction terms to YH array. ------------------------------------
+      NQP1 = NQ + 1
+      DO 370 J = 3, NQP1
+        CALL DAXPY (N, EL(J), YH(1,LP1), 1, YH(1,J), 1 )
+ 370  CONTINUE
+      RETURN
+C----------------------- End of Subroutine DVJUST ----------------------
+      END
+*DECK DVNLSD
+      SUBROUTINE DVNLSD (Y, YH, LDYH, VSAV, SAVF, EWT, ACOR, IWM, WM,
+     1                 F, JAC, PDUM, NFLAG, RPAR, IPAR)
+      EXTERNAL F, JAC, PDUM
+      KPP_REAL Y, YH, VSAV, SAVF, EWT, ACOR, WM, RPAR
+      INTEGER LDYH, IWM, NFLAG, IPAR
+      DIMENSION Y(*), YH(LDYH,*), VSAV(*), SAVF(*), EWT(*), ACOR(*),
+     1          IWM(*), WM(*), RPAR(*), IPAR(*)
+
+C-----------------------------------------------------------------------
+C Call sequence input -- Y, YH, LDYH, SAVF, EWT, ACOR, IWM, WM,
+C                        F, JAC, NFLAG, RPAR, IPAR
+C Call sequence output -- YH, ACOR, WM, IWM, NFLAG
+C COMMON block variables accessed..
+C     /DVOD01/ ACNRM, CRATE, DRC, H, RC, RL1, TQ(5), TN, ICF,
+C                JCUR, METH, MITER, N, NSLP
+C     /DVOD02/ HU, NCFN, NETF, NFE, NJE, NLU, NNI, NQU, NST
+C
+C Subroutines called by DVNLSD.. F, DAXPY, DCOPY, DSCAL, DVJAC, DVSOL
+C Function routines called by DVNLSD.. DVNORM
+C-----------------------------------------------------------------------
+C Subroutine DVNLSD is a nonlinear system solver, which uses functional
+C iteration or a chord (modified Newton) method.  For the chord method
+C direct linear algebraic system solvers are used.  Subroutine DVNLSD
+C then handles the corrector phase of this integration package.
+C
+C Communication with DVNLSD is done with the following variables. (For
+C more details, please see the comments in the driver subroutine.)
+C
+C Y          = The dependent variable, a vector of length N, input.
+C YH         = The Nordsieck (Taylor) array, LDYH by LMAX, input
+C              and output.  On input, it contains predicted values.
+C LDYH       = A constant .ge. N, the first dimension of YH, input.
+C VSAV       = Unused work array.
+C SAVF       = A work array of length N.
+C EWT        = An error weight vector of length N, input.
+C ACOR       = A work array of length N, used for the accumulated
+C              corrections to the predicted y vector.
+C WM,IWM     = Real and integer work arrays associated with matrix
+C              operations in chord iteration (MITER .ne. 0).
+C F          = Dummy name for user supplied routine for f.
+C JAC        = Dummy name for user supplied Jacobian routine.
+C PDUM       = Unused dummy subroutine name.  Included for uniformity
+C              over collection of integrators.
+C NFLAG      = Input/output flag, with values and meanings as follows..
+C              INPUT
+C                  0 first CALL for this time step.
+C                 -1 convergence failure in previous CALL to DVNLSD.
+C                 -2 error test failure in DVSTEP.
+C              OUTPUT
+C                  0 successful completion of nonlinear solver.
+C                 -1 convergence failure or singular matrix.
+C                 -2 unrecoverable error in matrix preprocessing
+C                    (cannot occur here).
+C                 -3 unrecoverable error in solution (cannot occur
+C                    here).
+C RPAR, IPAR = Dummy names for user's real and integer work arrays.
+C
+C IPUP       = Own variable flag with values and meanings as follows..
+C              0,            do not update the Newton matrix.
+C              MITER .ne. 0, update Newton matrix, because it is the
+C                            initial step, order was changed, the error
+C                            test failed, or an update is indicated by
+C                            the scalar RC or step counter NST.
+C
+C For more details, see comments in driver subroutine.
+C-----------------------------------------------------------------------
+C Type declarations for labeled COMMON block DVOD01 --------------------
+C
+      KPP_REAL ACNRM, CCMXJ, CONP, CRATE, DRC, EL,
+     1     ETA, ETAMAX, H, HMIN, HMXI, HNEW, HSCAL, PRL1,
+     2     RC, RL1, TAU, TQ, TN, UROUND
+      INTEGER ICF, INIT, IPUP, JCUR, JSTART, JSV, KFLAG, KUTH,
+     1        L, LMAX, LYH, LEWT, LACOR, LSAVF, LWM, LIWM,
+     2        LOCJS, MAXORD, METH, MITER, MSBJ, MXHNIL, MXSTEP,
+     3        N, NEWH, NEWQ, NHNIL, NQ, NQNYH, NQWAIT, NSLJ,
+     4        NSLP, NYH
+C
+C Type declarations for labeled COMMON block DVOD02 --------------------
+C
+      KPP_REAL HU
+      INTEGER NCFN, NETF, NFE, NJE, NLU, NNI, NQU, NST
+C
+C Type declarations for local variables --------------------------------
+C
+      KPP_REAL CCMAX, CRDOWN, CSCALE, DCON, DEL, DELP, ONE,
+     1     RDIV, TWO, ZERO
+      INTEGER I, IERPJ, IERSL, M, MAXCOR, MSBP
+C
+C Type declaration for function subroutines called ---------------------
+C
+      KPP_REAL DVNORM, STEPCUT
+C-----------------------------------------------------------------------
+C The following Fortran-77 declaration is to cause the values of the
+C listed (local) variables to be saved between calls to this integrator.
+C-----------------------------------------------------------------------
+      SAVE CCMAX, CRDOWN, MAXCOR, MSBP, RDIV, ONE, TWO, ZERO
+C
+      COMMON /DVOD01/ ACNRM, CCMXJ, CONP, CRATE, DRC, EL(13),
+     1                ETA, ETAMAX, H, HMIN, HMXI, HNEW, HSCAL, PRL1,
+     2                RC, RL1, TAU(13), TQ(5), TN, UROUND,
+     3                ICF, INIT, IPUP, JCUR, JSTART, JSV, KFLAG, KUTH,
+     4                L, LMAX, LYH, LEWT, LACOR, LSAVF, LWM, LIWM,
+     5                LOCJS, MAXORD, METH, MITER, MSBJ, MXHNIL, MXSTEP,
+     6                N, NEWH, NEWQ, NHNIL, NQ, NQNYH, NQWAIT, NSLJ,
+     7                NSLP, NYH
+      COMMON /DVOD02/ HU, NCFN, NETF, NFE, NJE, NLU, NNI, NQU, NST
+C
+      COMMON /VERWER/ IVERWER, IBEGIN, STEPCUT
+      DATA CCMAX /0.3D0/, CRDOWN /0.3D0/, MAXCOR /3/, MSBP /20/,
+     1     RDIV  /2.0D0/
+      DATA ONE /1.0D0/, TWO /2.0D0/, ZERO /0.0D0/
+C-----------------------------------------------------------------------
+C On the first step, on a change of method order, or after a
+C nonlinear convergence failure with NFLAG = -2, set IPUP = MITER
+C to force a Jacobian update when MITER .ne. 0.
+C-----------------------------------------------------------------------
+      if ( (h.lt.stepcut).and.(IBEGIN.eq.1) ) then
+c      if (h.lt.stepcut) then
+         iverwer = 1
+      else
+         ibegin = 0
+         iverwer = 0
+      end if
+      IF (JSTART .EQ. 0) NSLP = 0
+      IF (NFLAG .EQ. 0) ICF = 0
+      IF (NFLAG .EQ. -2) IPUP = MITER
+      IF ( (JSTART .EQ. 0) .OR. (JSTART .EQ. -1) ) IPUP = MITER
+C If this is functional iteration, set CRATE .eq. 1 and drop to 220
+      IF (MITER .EQ. 0) THEN
+        CRATE = ONE
+        GO TO 220
+      ENDIF
+C-----------------------------------------------------------------------
+C RC is the ratio of new to old values of the coefficient H/EL(2)=h/l1.
+C When RC differs from 1 by more than CCMAX, IPUP is set to MITER
+C to force DVJAC to be called, if a Jacobian is involved.
+C In any case, DVJAC is called at least every MSBP steps.
+C-----------------------------------------------------------------------
+      DRC = ABS(RC-ONE)
+      IF (DRC .GT. CCMAX .OR. NST .GE. NSLP+MSBP) IPUP = MITER
+C-----------------------------------------------------------------------
+C Up to MAXCOR corrector iterations are taken.  A convergence test is
+C made on the r.m.s. norm of each correction, weighted by the error
+C weight vector EWT.  The sum of the corrections is accumulated in the
+C vector ACOR(i).  The YH array is not altered in the corrector loop.
+C-----------------------------------------------------------------------
+ 220  M = 0
+      DELP = ZERO
+      CALL DCOPY (N, YH(1,1), 1, Y, 1 )
+      CALL F (N, TN, Y, SAVF)
+      NFE = NFE + 1
+      IF (IPUP .LE. 0) GO TO 250
+C-----------------------------------------------------------------------
+C If indicated, the matrix P = I - h*rl1*J is reevaluated and
+C preprocessed before starting the corrector iteration.  IPUP is set
+C to 0 as an indicator that this has been done.
+C-----------------------------------------------------------------------
+      IF (IVERWER.EQ.0) THEN
+      CALL DVJAC (Y, YH, LDYH, EWT, ACOR, SAVF, WM, IWM, F, JAC, IERPJ,
+     1           RPAR, IPAR)
+      ELSE
+        IERPJ = 0
+      END IF
+      IPUP = 0
+      RC = ONE
+      DRC = ZERO
+      CRATE = ONE
+      NSLP = NST
+C If matrix is singular, take error return to force cut in step size. --
+      IF (IERPJ .NE. 0) GO TO 430
+ 250  DO 260 I = 1,N
+ 260    ACOR(I) = ZERO
+C This is a looping point for the corrector iteration. -----------------
+ 270  IF (MITER .NE. 0) GO TO 350
+C-----------------------------------------------------------------------
+C In the case of functional iteration, update Y directly from
+C the result of the last function evaluation.
+C-----------------------------------------------------------------------
+      DO 280 I = 1,N
+ 280    SAVF(I) = RL1*(H*SAVF(I) - YH(I,2))
+      DO 290 I = 1,N
+ 290    Y(I) = SAVF(I) - ACOR(I)
+      DEL = DVNORM (N, Y, EWT)
+      DO 300 I = 1,N
+ 300    Y(I) = YH(I,1) + SAVF(I)
+      CALL DCOPY (N, SAVF, 1, ACOR, 1)
+      GO TO 400
+C-----------------------------------------------------------------------
+C In the case of the chord method, compute the corrector error,
+C and solve the linear system with that as right-hand side and
+C P as coefficient matrix.  The correction is scaled by the factor
+C 2/(1+RC) to account for changes in h*rl1 since the last DVJAC call.
+C-----------------------------------------------------------------------
+ 350  continue
+      if (IVERWER.EQ.1) then
+      CRATE = 1
+      DO  I = 1,N
+        Y(I) = SAVF(I) - ACOR(I)
+      end do
+      DEL = DVNORM (N, Y, EWT)
+      DO  I = 1,N
+         Y(I) = YH(I,1) + SAVF(I)
+      end do
+      CALL DCOPY (N, SAVF, 1, ACOR, 1)
+      GO TO 400
+      end if
+      DO 360 I = 1,N
+ 360    Y(I) = (RL1*H)*SAVF(I) - (RL1*YH(I,2) + ACOR(I))
+        CALL DVSOL (WM, IWM, Y, IERSL)
+      NNI = NNI + 1
+      IF (IERSL .GT. 0) GO TO 410
+      IF (METH .EQ. 2 .AND. RC .NE. ONE) THEN
+        CSCALE = TWO/(ONE + RC)
+        CALL DSCAL (N, CSCALE, Y, 1)
+      ENDIF
+      DEL = DVNORM (N, Y, EWT)
+      CALL DAXPY (N, ONE, Y, 1, ACOR, 1)
+      DO 380 I = 1,N
+ 380    Y(I) = YH(I,1) + ACOR(I)
+C-----------------------------------------------------------------------
+C Test for convergence.  If M .gt. 0, an estimate of the convergence
+C rate constant is stored in CRATE, and this is used in the test.
+C-----------------------------------------------------------------------
+ 400  IF (M .NE. 0) CRATE = MAX(CRDOWN*CRATE,DEL/DELP)
+      DCON = DEL*MIN(ONE,CRATE)/TQ(4)
+      IF (DCON .LE. ONE) GO TO 450
+      M = M + 1
+      IF (M .EQ. MAXCOR) GO TO 410
+      IF (M .GE. 2 .AND. DEL .GT. RDIV*DELP) GO TO 410
+      DELP = DEL
+      CALL F (N, TN, Y, SAVF)
+      NFE = NFE + 1
+      GO TO 270
+C
+ 410  IF (MITER .EQ. 0 .OR. JCUR .EQ. 1) GO TO 430
+      ICF = 1
+      IPUP = MITER
+      GO TO 220
+C
+ 430  CONTINUE
+      NFLAG = -1
+      ICF = 2
+      IPUP = MITER
+      RETURN
+C
+C Return for successful step. ------------------------------------------
+ 450  NFLAG = 0
+      JCUR = 0
+      ICF = 0
+      IF (M .EQ. 0) ACNRM = DEL
+      IF (M .GT. 0) ACNRM = DVNORM (N, ACOR, EWT)
+      RETURN
+C----------------------- End of Subroutine DVNLSD ----------------------
+      END
+
+*DECK DVJAC
+      SUBROUTINE DVJAC (Y, YH, LDYH, EWT, FTEM, SAVF, WM, IWM, FUN, JAC,
+     1                 IERPJ, RPAR, IPAR)
+C       IMPLICIT KPP_REAL (A-H, O-Z)
+       INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Sparse.h'
+      EXTERNAL FUN, JAC
+      KPP_REAL Y, YH, EWT, FTEM, SAVF, WM, RPAR
+      INTEGER LDYH, IWM, IERPJ, IPAR
+      DIMENSION Y(*), YH(LDYH,*), EWT(*), FTEM(*), SAVF(*),
+     1   WM(*), IWM(*), RPAR(*), IPAR(*)
+
+C-----------------------------------------------------------------------
+C Call sequence input -- Y, YH, LDYH, EWT, FTEM, SAVF, WM, IWM,
+C                        FUN, JAC, RPAR, IPAR
+C Call sequence output -- WM, IWM, IERPJ
+C COMMON block variables accessed..
+C     /DVOD01/  CCMXJ, DRC, H, RL1, TN, UROUND, ICF, JCUR, LOCJS,
+C               MSBJ, NSLJ
+C     /DVOD02/  NFE, NST, NJE, NLU
+C
+C Subroutines called by DVJAC.. FUN, JAC, DACOPY, DCOPY, DGBFA, DGEFA,
+C                              DSCAL
+C Function routines called by DVJAC.. DVNORM
+C-----------------------------------------------------------------------
+C DVJAC is called by DVSTEP to compute and process the matrix
+C P = I - h*rl1*J , where J is an approximation to the Jacobian.
+C Here J is computed by the user-supplied routine JAC if
+C MITER = 1 or 4, or by finite differencing if MITER = 2, 3, or 5.
+C If MITER = 3, a diagonal approximation to J is used.
+C If JSV = -1, J is computed from scratch in all cases.
+C If JSV = 1 and MITER = 1, 2, 4, or 5, and if the saved value of J is
+C considered acceptable, then P is constructed from the saved J.
+C J is stored in wm and replaced by P.  If MITER .ne. 3, P is then
+C subjected to LU decomposition in preparation for later solution
+C of linear systems with P as coefficient matrix. This is done
+C by DGEFA if MITER = 1 or 2, and by DGBFA if MITER = 4 or 5.
+C
+C Communication with DVJAC is done with the following variables.  (For
+C more details, please see the comments in the driver subroutine.)
+C Y          = Vector containing predicted values on entry.
+C YH         = The Nordsieck array, an LDYH by LMAX array, input.
+C LDYH       = A constant .ge. N, the first dimension of YH, input.
+C EWT        = An error weight vector of length N.
+C SAVF       = Array containing f evaluated at predicted y, input.
+C WM         = Real work space for matrices.  In the output, it containS
+C              the inverse diagonal matrix if MITER = 3 and the LU
+C              decomposition of P if MITER is 1, 2 , 4, or 5.
+C              Storage of matrix elements starts at WM(3).
+C              Storage of the saved Jacobian starts at WM(LOCJS).
+C              WM also contains the following matrix-related data..
+C              WM(1) = SQRT(UROUND), used in numerical Jacobian step.
+C              WM(2) = H*RL1, saved for later use if MITER = 3.
+C IWM        = Integer work space containing pivot information,
+C              starting at IWM(31), if MITER is 1, 2, 4, or 5.
+C              IWM also contains band parameters ML = IWM(1) and
+C              MU = IWM(2) if MITER is 4 or 5.
+C FUN          = Dummy name for the user supplied subroutine for f.
+C JAC        = Dummy name for the user supplied Jacobian subroutine.
+C RPAR, IPAR = Dummy names for user's real and integer work arrays.
+C RL1        = 1/EL(2) (input).
+C IERPJ      = Output error flag,  = 0 if no trouble, 1 if the P
+C              matrix is found to be singular.
+C JCUR       = Output flag to indicate whether the Jacobian matrix
+C              (or approximation) is now current.
+C              JCUR = 0 means J is not current.
+C              JCUR = 1 means J is current.
+C-----------------------------------------------------------------------
+C
+C Type declarations for labeled COMMON block DVOD01 --------------------
+C
+      KPP_REAL ACNRM, CCMXJ, CONP, CRATE, DRC, EL,
+     1     ETA, ETAMAX, H, HMIN, HMXI, HNEW, HSCAL, PRL1,
+     2     RC, RL1, TAU, TQ, TN, UROUND
+      INTEGER ICF, INIT, IPUP, JCUR, JSTART, JSV, KFLAG, KUTH,
+     1        L, LMAX, LYH, LEWT, LACOR, LSAVF, LWM, LIWM,
+     2        LOCJS, MAXORD, METH, MITER, MSBJ, MXHNIL, MXSTEP,
+     3        N, NEWH, NEWQ, NHNIL, NQ, NQNYH, NQWAIT, NSLJ,
+     4        NSLP, NYH
+C
+C Type declarations for labeled COMMON block DVOD02 --------------------
+C
+      KPP_REAL HU
+      INTEGER NCFN, NETF, NFE, NJE, NLU, NNI, NQU, NST
+C
+C Type declarations for local variables --------------------------------
+C
+      KPP_REAL CON, DI, FAC, HRL1, ONE, PT1, R, R0, SRUR, THOU,
+     1     YI, YJ, YJJ, ZERO
+      INTEGER I, I1, I2, IER, II, J, J1, JJ, JOK, LENP, MBA, MBAND,
+     1        MEB1, MEBAND, ML, ML3, MU, NP1
+C
+C Type declaration for function subroutines called ---------------------
+C
+      KPP_REAL DVNORM
+C-----------------------------------------------------------------------
+C The following Fortran-77 declaration is to cause the values of the
+C listed (local) variables to be saved between calls to this subroutine.
+C-----------------------------------------------------------------------
+      SAVE ONE, PT1, THOU, ZERO
+C-----------------------------------------------------------------------
+      COMMON /DVOD01/ ACNRM, CCMXJ, CONP, CRATE, DRC, EL(13),
+     1                ETA, ETAMAX, H, HMIN, HMXI, HNEW, HSCAL, PRL1,
+     2                RC, RL1, TAU(13), TQ(5), TN, UROUND,
+     3                ICF, INIT, IPUP, JCUR, JSTART, JSV, KFLAG, KUTH,
+     4                L, LMAX, LYH, LEWT, LACOR, LSAVF, LWM, LIWM,
+     5                LOCJS, MAXORD, METH, MITER, MSBJ, MXHNIL, MXSTEP,
+     6                N, NEWH, NEWQ, NHNIL, NQ, NQNYH, NQWAIT, NSLJ,
+     7                NSLP, NYH
+      COMMON /DVOD02/ HU, NCFN, NETF, NFE, NJE, NLU, NNI, NQU, NST
+C
+      DATA ONE /1.0D0/, THOU /1000.0D0/, ZERO /0.0D0/, PT1 /0.1D0/
+C
+      IER = 0
+      IERPJ = 0
+      HRL1 = H*RL1
+C See whether J should be evaluated (JOK = -1) or not (JOK = 1). -------
+      JOK = JSV
+      IF (JSV .EQ. 1) THEN
+        IF (NST .EQ. 0 .OR. NST .GT. NSLJ+MSBJ) JOK = -1
+        IF (ICF .EQ. 1 .AND. DRC .LT. CCMXJ) JOK = -1
+        IF (ICF .EQ. 2) JOK = -1
+      ENDIF
+C End of setting JOK. --------------------------------------------------
+C
+      IF (JOK .EQ. -1 .AND. MITER .EQ. 1) THEN
+C If JOK = -1 and MITER = 1, CALL JAC to evaluate Jacobian. ------------
+      NJE = NJE + 1
+      NSLJ = NST
+      JCUR = 1
+      LENP = LU_NONZERO
+      DO 110 I = 1,LENP
+ 110    WM(I+2) = ZERO
+
+c      CALL Update_SUN(TN)
+c      CALL Update_RCONST()
+      CALL JAC (N, TN, Y, WM(3))
+      IF (JSV .EQ. 1) CALL DCOPY (LENP, WM(3), 1, WM(LOCJS), 1)
+      ENDIF
+C
+      IF (JOK .EQ. -1 .AND. MITER .EQ. 2) THEN
+C If MITER = 2, make N calls to FUN to approximate the Jacobian. ---------
+      NJE = NJE + 1
+      NSLJ = NST
+      JCUR = 1
+      FAC = DVNORM (N, SAVF, EWT)
+      R0 = THOU*ABS(H)*UROUND*REAL(N)*FAC
+      IF (R0 .EQ. ZERO) R0 = ONE
+      SRUR = WM(1)
+      J1 = 2
+      DO 230 J = 1,N
+        YJ = Y(J)
+        R = MAX(SRUR*ABS(YJ),R0/EWT(J))
+        Y(J) = Y(J) + R
+        FAC = ONE/R
+        CALL FUN (N, TN, Y, FTEM)
+        DO 220 I = 1,N
+ 220      WM(I+J1) = (FTEM(I) - SAVF(I))*FAC
+        Y(J) = YJ
+        J1 = J1 + N
+ 230    CONTINUE
+      NFE = NFE + N
+      LENP = LU_NONZERO
+      IF (JSV .EQ. 1) CALL DCOPY (LENP, WM(3), 1, WM(LOCJS), 1)
+      ENDIF
+C
+      IF (JOK .EQ. 1 .AND. (MITER .EQ. 1 .OR. MITER .EQ. 2)) THEN
+      JCUR = 0
+      LENP = LU_NONZERO
+      CALL DCOPY (LENP, WM(LOCJS), 1, WM(3), 1)
+      ENDIF
+C
+      IF (MITER .EQ. 1 .OR. MITER .EQ. 2) THEN
+C Multiply Jacobian by scalar, add identity, and do LU decomposition. --
+      CON = -HRL1
+      CALL DSCAL (LENP, CON, WM(3), 1)
+      J = 3
+      NP1 = N + 1
+      DO 250 I = 1,N
+        WM(2+LU_DIAG(i)) = WM(2+LU_DIAG(i)) + ONE
+ 250  CONTINUE
+      NLU = NLU + 1
+C      CALL DGEFA (WM(3), N, N, IWM(31), IER)
+      CALL KppDecomp ( WM(3), IER)
+      IF (IER .NE. 0) IERPJ = 1
+      RETURN
+      ENDIF
+C End of code block for MITER = 1 or 2. --------------------------------
+C
+      IF (MITER .EQ. 3) THEN
+C If MITER = 3, construct a diagonal approximation to J and P. ---------
+      NJE = NJE + 1
+      JCUR = 1
+      WM(2) = HRL1
+      R = RL1*PT1
+      DO 310 I = 1,N
+ 310    Y(I) = Y(I) + R*(H*SAVF(I) - YH(I,2))
+      CALL FUN (N, TN, Y, WM(3))
+      NFE = NFE + 1
+      DO 320 I = 1,N
+        R0 = H*SAVF(I) - YH(I,2)
+        DI = PT1*R0 - H*(WM(I+2) - SAVF(I))
+        WM(I+2) = ONE
+        IF (ABS(R0) .LT. UROUND/EWT(I)) GO TO 320
+        IF (ABS(DI) .EQ. ZERO) GO TO 330
+        WM(I+2) = PT1*R0/DI
+ 320    CONTINUE
+      RETURN
+ 330  IERPJ = 1
+      RETURN
+      ENDIF
+C End of code block for MITER = 3. -------------------------------------
+C
+C Set constants for MITER = 4 or 5. ------------------------------------
+      ML = IWM(1)
+      MU = IWM(2)
+      ML3 = ML + 3
+      MBAND = ML + MU + 1
+      MEBAND = MBAND + ML
+      LENP = MEBAND*N
+C
+      IF (JOK .EQ. -1 .AND. MITER .EQ. 4) THEN
+C If JOK = -1 and MITER = 4, CALL JAC to evaluate Jacobian. ------------
+      NJE = NJE + 1
+      NSLJ = NST
+      JCUR = 1
+      DO 410 I = 1,LENP
+ 410    WM(I+2) = ZERO
+
+c      CALL Update_SUN(TN)
+c      CALL Update_RCONST()
+      CALL JAC (N, TN, Y, WM(ML3))
+      IF (JSV .EQ. 1)
+     1   CALL DACOPY (MBAND, N, WM(ML3), MEBAND, WM(LOCJS), MBAND)
+      ENDIF
+C
+      IF (JOK .EQ. -1 .AND. MITER .EQ. 5) THEN
+C If MITER = 5, make N calls to FUN to approximate the Jacobian. ---------
+      NJE = NJE + 1
+      NSLJ = NST
+      JCUR = 1
+      MBA = MIN(MBAND,N)
+      MEB1 = MEBAND - 1
+      SRUR = WM(1)
+      FAC = DVNORM (N, SAVF, EWT)
+      R0 = THOU*ABS(H)*UROUND*REAL(N)*FAC
+      IF (R0 .EQ. ZERO) R0 = ONE
+      DO 560 J = 1,MBA
+        DO 530 I = J,N,MBAND
+          YI = Y(I)
+          R = MAX(SRUR*ABS(YI),R0/EWT(I))
+ 530      Y(I) = Y(I) + R
+        CALL FUN (N, TN, Y, FTEM)
+        DO 550 JJ = J,N,MBAND
+          Y(JJ) = YH(JJ,1)
+          YJJ = Y(JJ)
+          R = MAX(SRUR*ABS(YJJ),R0/EWT(JJ))
+          FAC = ONE/R
+          I1 = MAX(JJ-MU,1)
+          I2 = MIN(JJ+ML,N)
+          II = JJ*MEB1 - ML + 2
+          DO 540 I = I1,I2
+ 540        WM(II+I) = (FTEM(I) - SAVF(I))*FAC
+ 550      CONTINUE
+ 560    CONTINUE
+      NFE = NFE + MBA
+      IF (JSV .EQ. 1)
+     1   CALL DACOPY (MBAND, N, WM(ML3), MEBAND, WM(LOCJS), MBAND)
+      ENDIF
+C
+      IF (JOK .EQ. 1) THEN
+      JCUR = 0
+      CALL DACOPY (MBAND, N, WM(LOCJS), MBAND, WM(ML3), MEBAND)
+      ENDIF
+C
+C Multiply Jacobian by scalar, add identity, and do LU decomposition.
+      CON = -HRL1
+      CALL DSCAL (LENP, CON, WM(3), 1 )
+      II = MBAND + 2
+      DO 580 I = 1,N
+        WM(II) = WM(II) + ONE
+ 580    II = II + MEBAND
+      NLU = NLU + 1
+C      CALL DGBFA (WM(3), MEBAND, N, ML, MU, IWM(31), IER)
+      IF (IER .NE. 0) IERPJ = 1
+      RETURN
+C End of code block for MITER = 4 or 5. --------------------------------
+C
+C----------------------- End of Subroutine DVJAC -----------------------
+      END
+*DECK DACOPY
+      SUBROUTINE DACOPY (NROW, NCOL, A, NROWA, B, NROWB)
+      KPP_REAL A, B
+      INTEGER NROW, NCOL, NROWA, NROWB
+      DIMENSION A(NROWA,NCOL), B(NROWB,NCOL)
+C-----------------------------------------------------------------------
+C Call sequence input -- NROW, NCOL, A, NROWA, NROWB
+C Call sequence output -- B
+C COMMON block variables accessed -- None
+C
+C Subroutines called by DACOPY.. DCOPY
+C Function routines called by DACOPY.. None
+C-----------------------------------------------------------------------
+C This routine copies one rectangular array, A, to another, B,
+C where A and B may have different row dimensions, NROWA and NROWB.
+C The data copied consists of NROW rows and NCOL columns.
+C-----------------------------------------------------------------------
+      INTEGER IC
+C
+      DO 20 IC = 1,NCOL
+        CALL DCOPY (NROW, A(1,IC), 1, B(1,IC), 1)
+ 20     CONTINUE
+C
+      RETURN
+C----------------------- End of Subroutine DACOPY ----------------------
+      END
+*DECK DVSOL
+      SUBROUTINE DVSOL (WM, IWM, X, IERSL)
+      KPP_REAL WM, X
+      INTEGER IWM, IERSL
+      DIMENSION WM(*), IWM(*), X(*)
+C-----------------------------------------------------------------------
+C Call sequence input -- WM, IWM, X
+C Call sequence output -- X, IERSL
+C COMMON block variables accessed..
+C     /DVOD01/ -- H, RL1, MITER, N
+C
+C Subroutines called by DVSOL.. DGESL, DGBSL
+C Function routines called by DVSOL.. None
+C-----------------------------------------------------------------------
+C This routine manages the solution of the linear system arising from
+C a chord iteration.  It is called if MITER .ne. 0.
+C If MITER is 1 or 2, it calls DGESL to accomplish this.
+C If MITER = 3 it updates the coefficient H*RL1 in the diagonal
+C matrix, and then computes the solution.
+C If MITER is 4 or 5, it calls DGBSL.
+C Communication with DVSOL uses the following variables..
+C WM    = Real work space containing the inverse diagonal matrix if
+C         MITER = 3 and the LU decomposition of the matrix otherwise.
+C         Storage of matrix elements starts at WM(3).
+C         WM also contains the following matrix-related data..
+C         WM(1) = SQRT(UROUND) (not used here),
+C         WM(2) = HRL1, the previous value of H*RL1, used if MITER = 3.
+C IWM   = Integer work space containing pivot information, starting at
+C         IWM(31), if MITER is 1, 2, 4, or 5.  IWM also contains band
+C         parameters ML = IWM(1) and MU = IWM(2) if MITER is 4 or 5.
+C X     = The right-hand side vector on input, and the solution vector
+C         on output, of length N.
+C IERSL = Output flag.  IERSL = 0 if no trouble occurred.
+C         IERSL = 1 if a singular matrix arose with MITER = 3.
+C-----------------------------------------------------------------------
+C
+C Type declarations for labeled COMMON block DVOD01 --------------------
+C
+      KPP_REAL ACNRM, CCMXJ, CONP, CRATE, DRC, EL,
+     1     ETA, ETAMAX, H, HMIN, HMXI, HNEW, HSCAL, PRL1,
+     2     RC, RL1, TAU, TQ, TN, UROUND
+      INTEGER ICF, INIT, IPUP, JCUR, JSTART, JSV, KFLAG, KUTH,
+     1        L, LMAX, LYH, LEWT, LACOR, LSAVF, LWM, LIWM,
+     2        LOCJS, MAXORD, METH, MITER, MSBJ, MXHNIL, MXSTEP,
+     3        N, NEWH, NEWQ, NHNIL, NQ, NQNYH, NQWAIT, NSLJ,
+     4        NSLP, NYH
+C
+C Type declarations for local variables --------------------------------
+C
+      INTEGER I, MEBAND, ML, MU
+      KPP_REAL DI, HRL1, ONE, PHRL1, R, ZERO
+C-----------------------------------------------------------------------
+C The following Fortran-77 declaration is to cause the values of the
+C listed (local) variables to be saved between calls to this integrator.
+C-----------------------------------------------------------------------
+      SAVE ONE, ZERO
+C
+      COMMON /DVOD01/ ACNRM, CCMXJ, CONP, CRATE, DRC, EL(13),
+     1                ETA, ETAMAX, H, HMIN, HMXI, HNEW, HSCAL, PRL1,
+     2                RC, RL1, TAU(13), TQ(5), TN, UROUND,
+     3                ICF, INIT, IPUP, JCUR, JSTART, JSV, KFLAG, KUTH,
+     4                L, LMAX, LYH, LEWT, LACOR, LSAVF, LWM, LIWM,
+     5                LOCJS, MAXORD, METH, MITER, MSBJ, MXHNIL, MXSTEP,
+     6                N, NEWH, NEWQ, NHNIL, NQ, NQNYH, NQWAIT, NSLJ,
+     7                NSLP, NYH
+C
+      DATA ONE /1.0D0/, ZERO /0.0D0/
+C
+      IERSL = 0
+      GO TO (100, 100, 300, 400, 400), MITER
+C 100  CALL DGESL (WM(3), N, N, IWM(31), X, 0)
+ 100  CALL KppSolve (WM(3), X)
+      RETURN
+C
+ 300  PHRL1 = WM(2)
+      HRL1 = H*RL1
+      WM(2) = HRL1
+      IF (HRL1 .EQ. PHRL1) GO TO 330
+      R = HRL1/PHRL1
+      DO 320 I = 1,N
+        DI = ONE - R*(ONE - ONE/WM(I+2))
+        IF (ABS(DI) .EQ. ZERO) GO TO 390
+ 320    WM(I+2) = ONE/DI
+C
+ 330  DO 340 I = 1,N
+ 340    X(I) = WM(I+2)*X(I)
+      RETURN
+ 390  IERSL = 1
+      RETURN
+C
+ 400  ML = IWM(1)
+      MU = IWM(2)
+      MEBAND = 2*ML + MU + 1
+      CALL KppSolve (WM(3), X)
+      RETURN
+C----------------------- End of Subroutine DVSOL -----------------------
+      END
+*DECK DVSRCO
+      SUBROUTINE DVSRCO (RSAV, ISAV, JOB)
+      KPP_REAL RSAV
+      INTEGER ISAV, JOB
+      DIMENSION RSAV(*), ISAV(*)
+C-----------------------------------------------------------------------
+C Call sequence input -- RSAV, ISAV, JOB
+C Call sequence output -- RSAV, ISAV
+C COMMON block variables accessed -- All of /DVOD01/ and /DVOD02/
+C
+C Subroutines/functions called by DVSRCO.. None
+C-----------------------------------------------------------------------
+C This routine saves or restores (depending on JOB) the contents of the
+C COMMON blocks DVOD01 and DVOD02, which are used internally by DVODE.
+C
+C RSAV = real array of length 49 or more.
+C ISAV = integer array of length 41 or more.
+C JOB  = flag indicating to save or restore the COMMON blocks..
+C        JOB  = 1 if COMMON is to be saved (written to RSAV/ISAV).
+C        JOB  = 2 if COMMON is to be restored (read from RSAV/ISAV).
+C        A CALL with JOB = 2 presumes a prior CALL with JOB = 1.
+C-----------------------------------------------------------------------
+      KPP_REAL RVOD1, RVOD2
+      INTEGER IVOD1, IVOD2
+      INTEGER I, LENIV1, LENIV2, LENRV1, LENRV2
+C-----------------------------------------------------------------------
+C The following Fortran-77 declaration is to cause the values of the
+C listed (local) variables to be saved between calls to this integrator.
+C-----------------------------------------------------------------------
+      SAVE LENRV1, LENIV1, LENRV2, LENIV2
+C
+      COMMON /DVOD01/ RVOD1(48), IVOD1(33)
+      COMMON /DVOD02/ RVOD2(1), IVOD2(8)
+      DATA LENRV1/48/, LENIV1/33/, LENRV2/1/, LENIV2/8/
+C
+      IF (JOB .EQ. 2) GO TO 100
+      DO 10 I = 1,LENRV1
+ 10     RSAV(I) = RVOD1(I)
+      DO 15 I = 1,LENRV2
+ 15     RSAV(LENRV1+I) = RVOD2(I)
+C
+      DO 20 I = 1,LENIV1
+ 20     ISAV(I) = IVOD1(I)
+      DO 25 I = 1,LENIV2
+ 25     ISAV(LENIV1+I) = IVOD2(I)
+C
+      RETURN
+C
+ 100  CONTINUE
+      DO 110 I = 1,LENRV1
+ 110     RVOD1(I) = RSAV(I)
+      DO 115 I = 1,LENRV2
+ 115     RVOD2(I) = RSAV(LENRV1+I)
+C
+      DO 120 I = 1,LENIV1
+ 120     IVOD1(I) = ISAV(I)
+      DO 125 I = 1,LENIV2
+ 125     IVOD2(I) = ISAV(LENIV1+I)
+C
+      RETURN
+C----------------------- End of Subroutine DVSRCO ----------------------
+      END
+*DECK DEWSET
+      SUBROUTINE DEWSET (N, ITOL, RelTol, AbsTol, YCUR, EWT)
+      KPP_REAL RelTol, AbsTol, YCUR, EWT
+      INTEGER N, ITOL
+      DIMENSION RelTol(*), AbsTol(*), YCUR(N), EWT(N)
+C-----------------------------------------------------------------------
+C Call sequence input -- N, ITOL, RelTol, AbsTol, YCUR
+C Call sequence output -- EWT
+C COMMON block variables accessed -- None
+C
+C Subroutines/functions called by DEWSET.. None
+C-----------------------------------------------------------------------
+C This subroutine sets the error weight vector EWT according to
+C     EWT(i) = RelTol(i)*abs(YCUR(i)) + AbsTol(i),  i = 1,...,N,
+C with the subscript on RelTol and/or AbsTol possibly replaced by 1 above,
+C depending on the value of ITOL.
+C-----------------------------------------------------------------------
+      INTEGER I
+C
+      GO TO (10, 20, 30, 40), ITOL
+ 10   CONTINUE
+      DO 15 I = 1, N
+ 15     EWT(I) = RelTol(1)*ABS(YCUR(I)) + AbsTol(1)
+      RETURN
+ 20   CONTINUE
+      DO 25 I = 1, N
+ 25     EWT(I) = RelTol(1)*ABS(YCUR(I)) + AbsTol(I)
+      RETURN
+ 30   CONTINUE
+      DO 35 I = 1, N
+ 35     EWT(I) = RelTol(I)*ABS(YCUR(I)) + AbsTol(1)
+      RETURN
+ 40   CONTINUE
+      DO 45 I = 1, N
+ 45     EWT(I) = RelTol(I)*ABS(YCUR(I)) + AbsTol(I)
+      RETURN
+C----------------------- End of Subroutine DEWSET ----------------------
+      END
+*DECK DVNORM
+      KPP_REAL FUNCTION DVNORM (N, V, W)
+      KPP_REAL V, W
+      INTEGER N
+      DIMENSION V(N), W(N)
+C-----------------------------------------------------------------------
+C Call sequence input -- N, V, W
+C Call sequence output -- None
+C COMMON block variables accessed -- None
+C
+C Subroutines/functions called by DVNORM.. None
+C-----------------------------------------------------------------------
+C This function routine computes the weighted root-mean-square norm
+C of the vector of length N contained in the array V, with weights
+C contained in the array W of length N..
+C   DVNORM = sqrt( (1/N) * sum( V(i)*W(i) )**2 )
+C
+C  LOOP UNROLLING BY ADRIAN SANDU, AUG 2, 1995
+C
+C-----------------------------------------------------------------------
+      KPP_REAL SUM
+      INTEGER I
+C
+      SUM = 0.0D0
+
+   20 m = mod(n,7)
+      if( m .eq. 0 ) go to 40
+      do 30 i = 1,m
+        SUM =  SUM + (V(I)*W(I))**2
+   30 continue
+      if( n .lt. 7 ) return
+   40 mp1 = m + 1
+      do 50 i = mp1,n,7
+        SUM =  SUM + (V(I)*W(I))**2
+        SUM =  SUM + (V(I + 1)*W(I + 1))**2
+        SUM =  SUM + (V(I + 2)*W(I + 2))**2
+        SUM =  SUM + (V(I + 3)*W(I + 3))**2
+        SUM =  SUM + (V(I + 4)*W(I + 4))**2
+        SUM =  SUM + (V(I + 5)*W(I + 5))**2
+        SUM =  SUM + (V(I + 6)*W(I + 6))**2
+   50 continue
+
+      DVNORM = SQRT(SUM/REAL(N))
+      RETURN
+C----------------------- End of Function DVNORM ------------------------
+      END
+
+*DECK D1MACH
+      KPP_REAL FUNCTION D1MACH (IDUM)
+      INTEGER IDUM
+C-----------------------------------------------------------------------
+C This routine computes the unit roundoff of the machine.
+C This is defined as the smallest positive machine number
+C u such that  1.0 + u .ne. 1.0
+C
+C Subroutines/functions called by D1MACH.. None
+C-----------------------------------------------------------------------
+      KPP_REAL U, COMP
+      U = 1.0D0
+ 10   U = U*0.5D0
+      COMP = 1.0D0 + U
+      IF (COMP .NE. 1.0D0) GO TO 10
+      D1MACH = U*2.0D0
+      RETURN
+C----------------------- End of Function D1MACH ------------------------
+      END
+*DECK XERRWD
+      SUBROUTINE XERRWD (MSG, NMES, NERR, LEVEL, NI, I1, I2, NR, R1, R2)
+      KPP_REAL R1, R2
+      INTEGER NMES, NERR, LEVEL, NI, I1, I2, NR
+      CHARACTER*1 MSG(NMES)
+C-----------------------------------------------------------------------
+C Subroutines XERRWD, XSETF, XSETUN, and the two function routines
+C MFLGSV and LUNSAV, as given here, constitute a simplified version of
+C the SLATEC error handling package.
+C Written by A. C. Hindmarsh and P. N. Brown at LLNL.
+C Version of 13 April, 1989.
+C This version is in KPP_REAL.
+C
+C All arguments are input arguments.
+C
+C MSG    = The message (character array).
+C NMES   = The length of MSG (number of characters).
+C NERR   = The error number (not used).
+C LEVEL  = The error level..
+C          0 or 1 means recoverable (control returns to caller).
+C          2 means fatal (run is aborted--see note below).
+C NI     = Number of integers (0, 1, or 2) to be printed with message.
+C I1,I2  = Integers to be printed, depending on NI.
+C NR     = Number of reals (0, 1, or 2) to be printed with message.
+C R1,R2  = Reals to be printed, depending on NR.
+C
+C Note..  this routine is machine-dependent and specialized for use
+C in limited context, in the following ways..
+C 1. The argument MSG is assumed to be of type CHARACTER, and
+C    the message is printed with a format of (1X,80A1).
+C 2. The message is assumed to take only one line.
+C    Multi-line messages are generated by repeated calls.
+C 3. If LEVEL = 2, control passes to the statement   STOP
+C    to abort the run.  This statement may be machine-dependent.
+C 4. R1 and R2 are assumed to be in KPP_REAL and are printed
+C    in D21.13 format.
+C
+C For a different default logical unit number, change the data
+C statement in function routine LUNSAV.
+C For a different run-abort command, change the statement following
+C statement 100 at the end.
+C-----------------------------------------------------------------------
+C Subroutines called by XERRWD.. None
+C Function routines called by XERRWD.. MFLGSV, LUNSAV
+C-----------------------------------------------------------------------
+C
+      INTEGER I, LUNIT, LUNSAV, MESFLG, MFLGSV
+C
+C Get message print flag and logical unit number. ----------------------
+      MESFLG = MFLGSV (0,.FALSE.)
+      LUNIT = LUNSAV (0,.FALSE.)
+      IF (MESFLG .EQ. 0) GO TO 100
+C Write the message. ---------------------------------------------------
+      WRITE (LUNIT,10) (MSG(I),I=1,NMES)
+ 10   FORMAT(1X,80A1)
+      IF (NI .EQ. 1) WRITE (LUNIT, 20) I1
+ 20   FORMAT(6X,'In above message,  I1 =',I10)
+      IF (NI .EQ. 2) WRITE (LUNIT, 30) I1,I2
+ 30   FORMAT(6X,'In above message,  I1 =',I10,3X,'I2 =',I10)
+      IF (NR .EQ. 1) WRITE (LUNIT, 40) R1
+ 40   FORMAT(6X,'In above message,  R1 =',D21.13)
+      IF (NR .EQ. 2) WRITE (LUNIT, 50) R1,R2
+ 50   FORMAT(6X,'In above,  R1 =',D21.13,3X,'R2 =',D21.13)
+C Abort the run if LEVEL = 2. ------------------------------------------
+ 100  IF (LEVEL .NE. 2) RETURN
+      STOP
+C----------------------- End of Subroutine XERRWD ----------------------
+      END
+*DECK XSETF
+      SUBROUTINE XSETF (MFLAG)
+C-----------------------------------------------------------------------
+C This routine resets the print control flag MFLAG.
+C
+C Subroutines called by XSETF.. None
+C Function routines called by XSETF.. MFLGSV
+C-----------------------------------------------------------------------
+      INTEGER MFLAG, JUNK, MFLGSV
+C
+      IF (MFLAG .EQ. 0 .OR. MFLAG .EQ. 1) JUNK = MFLGSV (MFLAG,.TRUE.)
+      RETURN
+C----------------------- End of Subroutine XSETF -----------------------
+      END
+*DECK XSETUN
+      SUBROUTINE XSETUN (LUN)
+C-----------------------------------------------------------------------
+C This routine resets the logical unit number for messages.
+C
+C Subroutines called by XSETUN.. None
+C Function routines called by XSETUN.. LUNSAV
+C-----------------------------------------------------------------------
+      INTEGER LUN, JUNK, LUNSAV
+C
+      IF (LUN .GT. 0) JUNK = LUNSAV (LUN,.TRUE.)
+      RETURN
+C----------------------- End of Subroutine XSETUN ----------------------
+      END
+*DECK MFLGSV
+      INTEGER FUNCTION MFLGSV (IVALUE, ISET)
+      LOGICAL ISET
+      INTEGER IVALUE
+C-----------------------------------------------------------------------
+C MFLGSV saves and recalls the parameter MESFLG which controls the
+C printing of the error messages.
+C
+C Saved local variable..
+C
+C   MESFLG = Print control flag..
+C            1 means print all messages (the default).
+C            0 means no printing.
+C
+C On input..
+C
+C   IVALUE = The value to be set for the MESFLG parameter,
+C            if ISET is .TRUE. .
+C
+C   ISET   = Logical flag to indicate whether to read or write.
+C            If ISET=.TRUE., the MESFLG parameter will be given
+C            the value IVALUE.  If ISET=.FALSE., the MESFLG
+C            parameter will be unchanged, and IVALUE is a dummy
+C            parameter.
+C
+C On return..
+C
+C   The (old) value of the MESFLG parameter will be returned
+C   in the function value, MFLGSV.
+C
+C This is a modification of the SLATEC library routine J4SAVE.
+C
+C Subroutines/functions called by MFLGSV.. None
+C-----------------------------------------------------------------------
+      INTEGER MESFLG
+C-----------------------------------------------------------------------
+C The following Fortran-77 declaration is to cause the values of the
+C listed (local) variables to be saved between calls to this integrator.
+C-----------------------------------------------------------------------
+      SAVE MESFLG
+      DATA MESFLG/1/
+C
+      MFLGSV = MESFLG
+      IF (ISET) MESFLG = IVALUE
+      RETURN
+C----------------------- End of Function MFLGSV ------------------------
+      END
+*DECK LUNSAV
+      INTEGER FUNCTION LUNSAV (IVALUE, ISET)
+      LOGICAL ISET
+      INTEGER IVALUE
+C-----------------------------------------------------------------------
+C LUNSAV saves and recalls the parameter LUNIT which is the logical
+C unit number to which error messages are printed.
+C
+C Saved local variable..
+C
+C  LUNIT   = Logical unit number for messages.
+C            The default is 6 (machine-dependent).
+C
+C On input..
+C
+C   IVALUE = The value to be set for the LUNIT parameter,
+C            if ISET is .TRUE. .
+C
+C   ISET   = Logical flag to indicate whether to read or write.
+C            If ISET=.TRUE., the LUNIT parameter will be given
+C            the value IVALUE.  If ISET=.FALSE., the LUNIT
+C            parameter will be unchanged, and IVALUE is a dummy
+C            parameter.
+C
+C On return..
+C
+C   The (old) value of the LUNIT parameter will be returned
+C   in the function value, LUNSAV.
+C
+C This is a modification of the SLATEC library routine J4SAVE.
+C
+C Subroutines/functions called by LUNSAV.. None
+C-----------------------------------------------------------------------
+      INTEGER LUNIT
+C-----------------------------------------------------------------------
+C The following Fortran-77 declaration is to cause the values of the
+C listed (local) variables to be saved between calls to this integrator.
+C-----------------------------------------------------------------------
+      SAVE LUNIT
+      DATA LUNIT/6/
+C
+      LUNSAV = LUNIT
+      IF (ISET) LUNIT = IVALUE
+      RETURN
+C----------------------- End of Function LUNSAV ------------------------
+      END
+
+        SUBROUTINE VODE_FSPLIT_VAR(N, T, Y, PR)
+        INCLUDE 'KPP_ROOT_Parameters.h'
+        INCLUDE 'KPP_ROOT_Global.h'
+        INTEGER N
+        REAL*8 Told, T
+        REAL*8 Y(NVAR), PR(NVAR)
+
+        Told = TIME
+        TIME = T
+        CALL Update_SUN()
+        CALL Update_RCONST()
+        CALL Fun( Y,  FIX, RCONST, PR )
+        TIME = Told
+        RETURN
+        END
+
+        SUBROUTINE VODE_Jac_SP(N, T, Y, J)
+        INCLUDE 'KPP_ROOT_Parameters.h'
+        INCLUDE 'KPP_ROOT_Global.h'
+        INTEGER N
+        REAL*8 Told, T
+        REAL*8 Y(NVAR), J(LU_NONZERO)
+
+        Told = TIME
+        TIME = T
+        CALL Update_SUN()
+        CALL Update_RCONST()
+        CALL Jac_SP( Y,  FIX, RCONST, J )
+        TIME = Told
+        RETURN
+        END
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/kpp_dvode.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/kpp_dvode.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/kpp_dvode.f90	(revision 2696)
@@ -0,0 +1,19107 @@
+MODULE KPP_ROOT_Integrator
+
+  USE KPP_ROOT_Precision
+  USE KPP_ROOT_Global, ONLY: FIX, RCONST, TIME, ATOL, RTOL
+  USE KPP_ROOT_Parameters, ONLY: NVAR, NSPEC, NFIX, LU_NONZERO
+  USE KPP_ROOT_JacobianSP
+  USE KPP_ROOT_LinearAlgebra, ONLY: KppDecomp, KppSolve, &
+               Set2zero, WLAMCH
+  
+  IMPLICIT NONE
+  PUBLIC
+  SAVE
+  
+  !~~~>  Statistics on the work performed by the VODE method
+  INTEGER :: Nfun,Njac,Nstp,Nacc,Nrej,Ndec,Nsol,Nsng
+  INTEGER, PARAMETER :: ifun=1, ijac=2, istp=3, iacc=4,  &
+    irej=5, idec=6, isol=7, isng=8, itexit=1, ihexit=2
+ 
+  CHARACTER(LEN=50), PARAMETER, DIMENSION(-8:1) :: IERR_NAMES = (/ &
+    'Matrix is repeatedly singular                     ', & ! -8
+    'Step size too small                               ', & ! -7
+    'No of steps exceeds maximum bound                 ', & ! -6
+    'Improper tolerance values                         ', & ! -5
+    'FacMin/FacMax/FacRej must be positive             ', & ! -4
+    'Hmin/Hmax/Hstart must be positive                 ', & ! -3
+    'Improper value for maximal no of Newton iterations', & ! -2
+    'Improper value for maximal no of steps            ', & ! -1
+    '                                                  ', & !  0 (not used)
+    'Success                                           ' /) !  1
+
+
+! BEGINNING OF DVODE_F90_M PRIVATE SECTION.
+! Note: This global information is used throughout DVODE_F90.
+!_______________________________________________________________________
+! JACSPDB arrays and parameters.
+  LOGICAL, PRIVATE :: USE_JACSP, LIKE_ORIGINAL_VODE
+  INTEGER, PRIVATE :: INFODS, LIWADS, MAXGRPDS, MINGRPDS, NRFJACDS,    &
+    NCFJACDS, LWKDS, LIWKDS
+  INTEGER, ALLOCATABLE, PRIVATE :: INDROWDS(:), INDCOLDS(:),           &
+    NGRPDS(:), IPNTRDS(:), JPNTRDS(:), IWADS(:), IWKDS(:), IOPTDS(:)
+  KPP_REAL, ALLOCATABLE, PRIVATE :: YSCALEDS(:), WKDS(:), FACDS(:)
+  KPP_REAL, PRIVATE :: U125, U325
+!_______________________________________________________________________
+  LOGICAL, PARAMETER, PRIVATE :: USE_MA48_FOR_SPARSE=.FALSE.
+!_______________________________________________________________________
+! *****MA48 build change point. Replace the above statement.
+  LOGICAL, PARAMETER, PRIVATE :: USE_MA48_FOR_SPARSE=.TRUE.
+!_______________________________________________________________________
+! *****MA48 build change point. Insert these statements.
+! MA48 type declarations:
+ TYPE(ZD01_TYPE) MATRIX
+ TYPE(MA48_CONTROL) CONTROL
+ TYPE(MA48_FACTORS) FACTORS
+ TYPE(MA48_AINFO) AINFO
+ TYPE(MA48_FINFO) FINFO
+ TYPE(MA48_SINFO) SINFO
+!_______________________________________________________________________
+! .. Parameters ..
+!     IPCUTH_MAX - maximum number of times the solver will halve the
+!                  stepsize to prevent an infeasible prediction if
+!                  solution bounds are used
+!     KFC        - maximum number of consecutive convergence failures
+!                  before crashing the order
+!     KFH        - maximum number of consecutive error test failures
+!                  before giving up (changed from 7 to 15)
+!     MAXCOR     - maximum number of corrections
+!     MSBP       - maximum number of steps before forming new P matrix
+!     MXNCF      - maximum number of consecutive convergence failures
+!                  before giving up
+!     MXHNLO     - maximum number of T+H=T messages
+!     MXSTP0     - maximum number of integration steps
+!     L*****     - lengths and pointers for some internal arrays
+!     INTEGER, PARAMETER, PRIVATE :: KFC = -3, KFH = -7, LENIV1 = 33,    &
+      INTEGER, PARAMETER, PRIVATE :: IPCUTH_MAX = 100, KFC = -3,         &
+        KFH = -15, LENIV1 = 33,                                          &
+        LENIV2 = 8, LENRV1 = 48, LENRV2 = 1, LIWUSER = 30, LRWUSER = 22, &
+        MAXCOR = 3, MAX_ARRAY_SIZE = 900000000, MSBP = 20, MXHNL0 = 10,  &
+        MXNCF = 10, MXSTP0 = 5000
+!_______________________________________________________________________
+! *****LAPACK build change point. Use .TRUE. for LAPACK.
+!     LOGICAL, PARAMETER, PRIVATE :: USE_LAPACK = .TRUE.
+!_______________________________________________________________________
+      KPP_REAL, PARAMETER, PRIVATE :: ADDON = 1.0E-6_dp
+      KPP_REAL, PARAMETER, PRIVATE :: BIAS1 = 6.0_dp
+      KPP_REAL, PARAMETER, PRIVATE :: BIAS2 = 6.0_dp
+      KPP_REAL, PARAMETER, PRIVATE :: BIAS3 = 10.0_dp
+      KPP_REAL, PARAMETER, PRIVATE :: CCMAX = 0.3_dp
+      KPP_REAL, PARAMETER, PRIVATE :: CORTES = 0.1_dp
+      KPP_REAL, PARAMETER, PRIVATE :: CRDOWN = 0.3_dp
+      KPP_REAL, PARAMETER, PRIVATE :: ETACF = 0.25_dp
+      KPP_REAL, PARAMETER, PRIVATE :: ETAMIN = 0.1_dp
+      KPP_REAL, PARAMETER, PRIVATE :: ETAMX1 = 1.0E4_dp
+      KPP_REAL, PARAMETER, PRIVATE :: ETAMX2 = 10.0_dp
+      KPP_REAL, PARAMETER, PRIVATE :: ETAMX3 = 10.0_dp
+      KPP_REAL, PARAMETER, PRIVATE :: ETAMXF = 0.2_dp
+      KPP_REAL, PARAMETER, PRIVATE :: FIVE = 5.0_dp
+      KPP_REAL, PARAMETER, PRIVATE :: FOUR = 4.0_dp
+      KPP_REAL, PARAMETER, PRIVATE :: HALF = 0.5_dp
+      KPP_REAL, PARAMETER, PRIVATE :: HUN = 100.0_dp
+      KPP_REAL, PARAMETER, PRIVATE :: HUNDRETH = 0.01_dp
+      KPP_REAL, PARAMETER, PRIVATE :: ONE = 1.0_dp
+      KPP_REAL, PARAMETER, PRIVATE :: ONEPSM = 1.00001_dp
+      KPP_REAL, PARAMETER, PRIVATE :: PT1 = 0.1_dp
+      KPP_REAL, PARAMETER, PRIVATE :: PT2 = 0.2_dp
+      KPP_REAL, PARAMETER, PRIVATE :: RDIV = 2.0_dp
+      KPP_REAL, PARAMETER, PRIVATE :: SIX = 6.0_dp
+      KPP_REAL, PARAMETER, PRIVATE :: TEN = 10.0_dp
+      KPP_REAL, PARAMETER, PRIVATE :: TENTH = 0.1_dp
+      KPP_REAL, PARAMETER, PRIVATE :: THOU = 1000.0_dp
+      KPP_REAL, PARAMETER, PRIVATE :: THRESH = 1.5_dp
+      KPP_REAL, PARAMETER, PRIVATE :: TWO = 2.0_dp
+      KPP_REAL, PARAMETER, PRIVATE :: ZERO = 0.0_dp
+
+! Beginning of DVODE_F90 interface.
+! ..
+! .. Generic Interface Blocks ..
+      INTERFACE DVODE_F90
+
+!         VODE_F90 is the interface subroutine that is actually invoked
+!         when the user calls DVODE_F90. It in turn calls subroutine
+!         DVODE which is the driver that directs all the work.
+          MODULE PROCEDURE VODE_F90
+!         GET_STATS can be called to gather integration statistics.
+          MODULE PROCEDURE GET_STATS
+!         DVINDY can be called to interpolate the solution and derivative.
+          MODULE PROCEDURE DVINDY
+!         RELEASE_ARRAYS can be called to release/deallocate the work arrays.
+          MODULE PROCEDURE RELEASE_ARRAYS
+!         SET_IAJA can be called to set sparse matrix descriptor arrays.
+          MODULE PROCEDURE SET_IAJA
+!         USERSETS_IAJA can be called to set sparse matrix descriptor arrays.
+          MODULE PROCEDURE USERSETS_IAJA
+!         CHECK_STAT can be called to stop if a storage allocation or
+!         deallocation error occurs.
+          MODULE PROCEDURE CHECK_STAT
+!         JACSP can be called to calculate a Jacobian using Doug Salane's
+!         algoritm 
+          MODULE PROCEDURE JACSP
+!         DVDSM can be called to calculate sparse pointer arrays needed
+!         by JACSP
+          MODULE PROCEDURE DVDSM
+
+      END INTERFACE
+! ..
+! .. Derived Type Declarations ..
+      TYPE, PUBLIC :: VODE_OPTS
+        KPP_REAL, DIMENSION (:), POINTER :: ATOL, RTOL
+        INTEGER :: MF, METH, MITER, MOSS, ITOL, IOPT, NG
+        LOGICAL :: DENSE, BANDED, SPARSE
+      END TYPE VODE_OPTS
+! ..
+! .. Local Scalars ..
+!_______________________________________________________________________
+! *****MA48 build change point. Insert these statements.
+!     For communication with subroutine ma48_control_array:
+      KPP_REAL, PUBLIC :: COPY_OF_U_PIVOT
+!_______________________________________________________________________
+      KPP_REAL, PRIVATE :: ACNRM, ALPHA, BIG, BIG1, CCMXJ, CGCE, CONP, CRATE,  &
+        DRC, DRES, DXMAX, EPS, ERRMAX, ETA, ETAMAX, FRACINT, FRACSUB, H, HMIN,  &
+        HMXI, HNEW, HSCAL, HU, MEPS, MRESID, MRMIN, PRL1, RC, RESID, RL1,       &
+        RMIN, SETH, T0ST, THEMAX, TLAST, TN, TOL, TOL1, TOUTC, UMAX, UROUND,    &
+        U_PIVOT, X2, WM1, WM2
+      INTEGER, PRIVATE :: ADDTOJA, ADDTONNZ, CONSECUTIVE_CFAILS,                &
+        CONSECUTIVE_EFAILS, ELBOW_ROOM, IADIM, IANPIV, IAVPIV,                  &
+        ICF, ICNCP, IFAIL, IMAX, IMIN, INEWJ, INIT, IPUP, IRANK, IRFND, IRNCP,  &
+        ISTART, ISTATC, ITASKC, JADIM, JCUR, JMIN, JSTART, JSV, KFLAG, KOUNTL,  &
+        KUTH, L, LARGE, LAST, LENIGP, LICN_ALL, LIRN_ALL, LIW, LIWM, LMAX,      &
+        LOCJS, LP, LRW, LWM, LWMDIM, LWMTEMP, LYH, LYHTEMP, MANPIV, MAPIV, MAXG,&
+        MAXIT, MAXORD, MB28, MB48, METH, MICN, MICNCP, MINICN, MINIRN, MIRANK,  &
+        MIRN, MIRNCP, MITER, MLP, MOSS, MP, MSBG, MSBJ, MXHNIL, MXSTEP, N, NZB, &
+        NCFN, NDROP, NDROP1, NDX, NETF, NEWH, NEWQ, NFE, NGC, NGE, NGP, NHNIL,  &
+        NJE, NLP, NLU, NNI, NNZ, NOITER, NQ, NQNYH, NQU, NQWAIT, NSLG, NSLJ,    &
+        NSLP, NSRCH, NSRCH1, NST, NSUBS, NSUPS, NUM, NUMNZ, NYH, NZ_ALL,        &
+        NZ_SWAG, PREVIOUS_MAXORD, WPD, WPS, MA28AD_CALLS, MA28BD_CALLS,         &
+        MA28CD_CALLS, MC19AD_CALLS, MAX_MINIRN, MAX_MINICN, MAX_NNZ, BNGRP
+        MA48AD_CALLS, MA48BD_CALLS, MA48CD_CALLS
+! *****MA48 build change point. Insert the above line.
+      LOGICAL, PRIVATE :: ABORT, ABORT1, ABORT2, ABORT3, ABORTA, ABORTB,        &
+        ALLOW_DEFAULT_TOLS, BUILD_IAJA, BOUNDS, CHANGED_ACOR, GROW, IAJA_CALLED,&
+        J_HAS_BEEN_COMPUTED, J_IS_CONSTANT, LBIG, LBIG1, LBLOCK, MA48_WAS_USED, &
+        OK_TO_CALL_MA28, SUBS, SUPS, OPTS_CALLED, REDO_PIVOT_SEQUENCE,          &
+        SCALE_MATRIX, SPARSE, USE_FAST_FACTOR, YMAXWARN  
+! ..
+! .. Local Arrays ..
+      KPP_REAL, ALLOCATABLE, PRIVATE :: ACOR(:), CSCALEX(:), EWT(:),           &
+        FPTEMP(:), FTEMP(:), FTEMP1(:), G0(:), G1(:), GX(:), JMAT(:),           &
+        LB(:), PMAT(:), RSCALEX(:), RWORK(:), SAVF(:), UB(:), WM(:),            &
+        WMTEMP(:), WSCALEX(:,:), YHNQP2(:), YHTEMP(:), YMAX(:), YNNEG(:),       &
+        YTEMP(:), DTEMP(:)
+      KPP_REAL, PRIVATE :: EL(13), RUSER(22), TAU(13), TQ(5)
+      INTEGER, ALLOCATABLE, PRIVATE :: BIGP(:), BJGP(:), IA(:), IAB(:), IAN(:), &
+        ICN(:), IDX(:), IGP(:), IKEEP28(:,:), IW28(:,:), IWORK(:), JA(:),       &
+        JAB(:), JAN(:), JATEMP(:), JGP(:), JROOT(:), JVECT(:), SUBDS(:), SUPDS(:)
+      INTEGER, PRIVATE :: IDISP(2), IUSER(30), LNPIV(10), LPIV(10)
+      INTEGER, PRIVATE :: MORD(2) = (/ 12, 5 /)
+! ..
+! .. Public Subroutines and Functions ..
+  PUBLIC ::                                                        &
+  DAXPY_F90, DCOPY_F90, DDOT_F90, DGBFA_F90, DGBSL_F90, DGEFA_F90, &
+  DGESL_F90, DSCAL_F90, IDAMAX_F90
+! ..
+! .. Private Subroutines and Functions ..
+  PRIVATE ::                                                       &
+  CHECK_DIAG    , DACOPY        , DEWSET        , DGROUP        ,  &
+  DGROUPDS      , DVCHECK       , DVHIN         , DVINDY_BNDS   ,  &
+  DVINDY_CORE   , DVJAC         , DVJACS28      , DVJUST        ,  &
+  DVNLSD        , DVNLSS28      , DVNORM        , DVNRDN        ,  &
+  DVNRDP        , DVNRDS        , DVODE         , DVPREPS       ,  &
+  DVROOTS       , DVSET         , DVSOL         , DVSOLS28      ,  &
+  DVSRCO        , DVSTEP        , GDUMMY        , IUMACH        ,  &
+  IXSAV         , JACSPDB       , JDUMMY        , MA28AD        ,  &
+  MA28BD        , MA28CD        , MA28DD        , MA28ID        ,  &
+  MA30AD        , MA30BD        , MA30CD        , MA30DD        ,  &
+  MC13E         , MC19AD        , MC20AD        , MC20BD        ,  &
+  MC21A         , MC21B         , MC22AD        , MC23AD        ,  &
+  MC24AD        , SET_ICN       , XERRDV        , XSETF         ,  &
+  XSETUN        , DEGR          , IDO           , NUMSRT        ,  &
+  SEQ           , SETR          , SLO           , SRTDAT        ,  &
+  FDJS
+  DVJACS48      , DVNLSS48      , DVPREPS48     , DVSOLS48
+!_______________________________________________________________________
+! *****MA48 build change point. Insert the above line.
+!_______________________________________________________________________
+! ..
+! .. Intrinsic Functions ..
+      INTRINSIC KIND
+! ..
+! .. Data Statements ..
+      DATA OPTS_CALLED/ .FALSE./
+      DATA MP/6/, NLP/6/, MLP/6/, NSRCH/32768/, ISTART/0/, MAXIT/16/, &
+        LBIG/ .FALSE./, LBLOCK/ .TRUE./, GROW/ .TRUE./,               &
+        TOL/0.0_dp/, CGCE/0.5_dp/, BIG/0.0_dp/, ABORT1/ .TRUE./,      &
+        ABORT2/ .TRUE./, ABORT3/ .FALSE./, ABORT/ .FALSE./, MIRN/0/,  &
+        MICN/0/, MIRNCP/0/, MICNCP/0/, MIRANK/0/, NDROP1/0/,          &
+        MRMIN/0.0D0/, MRESID/0/, OK_TO_CALL_MA28/.FALSE./
+! ..
+! END OF DVODE_F90 PRIVATE SECTION.
+!_______________________________________________________________________
+
+
+CONTAINS
+
+SUBROUTINE INTEGRATE( TIN, TOUT, &
+  ICNTRL_U, RCNTRL_U, ISTATUS_U, RSTATUS_U, IERR_U )
+
+   USE KPP_ROOT_Parameters
+   USE KPP_ROOT_Global
+   IMPLICIT NONE
+
+   KPP_REAL, INTENT(IN) :: TIN  ! Start Time
+   KPP_REAL, INTENT(IN) :: TOUT ! End Time
+   ! Optional input parameters and statistics
+   INTEGER,  INTENT(IN),  OPTIONAL :: ICNTRL_U(20)
+   KPP_REAL, INTENT(IN),  OPTIONAL :: RCNTRL_U(20)
+   INTEGER,  INTENT(OUT), OPTIONAL :: ISTATUS_U(20)
+   KPP_REAL, INTENT(OUT), OPTIONAL :: RSTATUS_U(20)
+   INTEGER,  INTENT(OUT), OPTIONAL :: IERR_U
+
+   KPP_REAL :: RCNTRL(20), RSTATUS(20)
+   INTEGER       :: ICNTRL(20), ISTATUS(20), IERR
+!!$   INTEGER, SAVE :: Ntotal = 0
+   TYPE(VODE_OPTS) :: OPTIONS
+   INTEGER :: ISTATE, ITASK
+   KPP_REAL :: MAXH, T1, T2
+
+   ICNTRL(:)  = 0
+   RCNTRL(:)  = 0.0_dp
+   ISTATUS(:) = 0
+   RSTATUS(:) = 0.0_dp
+
+
+   ! If optional parameters are given, and if they are >0, 
+   ! then they overwrite default settings. 
+   IF (PRESENT(ICNTRL_U)) THEN
+     WHERE(ICNTRL_U(:) > 0) ICNTRL(:) = ICNTRL_U(:)
+   END IF
+   IF (PRESENT(RCNTRL_U)) THEN
+     WHERE(RCNTRL_U(:) > 0) RCNTRL(:) = RCNTRL_U(:)
+   END IF
+
+
+    OPTIONS = SET_OPTS(USER_SUPPLIED_JACOBIAN=.TRUE., SPARSE_J=.TRUE.,             &
+              ABSERR_VECTOR=ATOL, RELERR_VECTOR=RTOL, MXSTEP=100000,               &
+              NZSWAG=LU_NONZERO,   METHOD_FLAG=26,                                 &
+              MA28_ELBOW_ROOM=10, MC19_SCALING=.TRUE., MA28_MESSAGES=.FALSE.,      &
+              MA28_EPS=1.0D-4, MA28_RPS=.TRUE.,                                    &
+              USER_SUPPLIED_SPARSITY=.TRUE.)
+
+   CALL USERSETS_IAJA(LU_IROW,LU_NONZERO,LU_ICOL,LU_NONZERO)
+   ISTATE = 1
+   ITASK  = 1
+   T1 = TIN
+   T2 = TOUT
+   CALL DVODE_F90(FUN_CHEM,NVAR,VAR,T1,T2,ITASK,ISTATE,OPTIONS,J_FCN=JAC_CHEM)
+
+   STEPMIN = RSTATUS(ihexit) ! Save last step
+   
+   ! if optional parameters are given for output they to return information
+   IF (PRESENT(ISTATUS_U)) ISTATUS_U(:) = ISTATUS(1:20)
+   IF (PRESENT(RSTATUS_U)) RSTATUS_U(:) = RSTATUS(1:20)
+   IF (PRESENT(IERR_U)) THEN
+     IF (IERR==2) THEN ! DLSODE returns "2" after successful completion
+       IERR_U = 1 ! IERR_U will return "1" for successful completion
+     ELSE
+       IERR_U = IERR
+     ENDIF
+   ENDIF
+
+   END SUBROUTINE INTEGRATE
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE FUN_CHEM(N, T, V, FCT)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      USE KPP_ROOT_Parameters
+      USE KPP_ROOT_Global
+      USE KPP_ROOT_Function, ONLY: Fun
+      USE KPP_ROOT_Rates
+
+      IMPLICIT NONE
+
+      INTEGER :: N
+      KPP_REAL :: V(NVAR), FCT(NVAR), T
+      
+!      TOLD = TIME
+!      TIME = T
+!      CALL Update_SUN()
+!      CALL Update_RCONST()
+!      CALL Update_PHOTO()
+!      TIME = TOLD
+
+      CALL Fun(V, FIX, RCONST, FCT)
+      
+      !Nfun=Nfun+1
+
+      END SUBROUTINE FUN_CHEM
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE JAC_CHEM (N,T,V,IA,JA,NNZ,JF)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      USE KPP_ROOT_Parameters
+      USE KPP_ROOT_Global
+      USE KPP_ROOT_JacobianSP
+      USE KPP_ROOT_Jacobian, ONLY: Jac_SP
+      USE KPP_ROOT_Rates
+
+      IMPLICIT NONE
+
+      KPP_REAL :: V(NVAR), T
+      INTEGER, INTENT(IN)  :: N
+      INTEGER, INTENT(OUT) :: NNZ
+#ifdef FULL_ALGEBRA    
+      INTEGER :: I, J
+      KPP_REAL :: JV(LU_NONZERO), JF(NVAR,NVAR)
+#else
+      KPP_REAL :: JF(LU_NONZERO)
+      INTEGER  :: IA(LU_NONZERO), JA(LU_NONZERO)
+#endif   
+  
+!      TOLD = TIME
+!      TIME = T
+!      CALL Update_SUN()
+!      CALL Update_RCONST()
+!      CALL Update_PHOTO()
+!      TIME = TOLD
+    
+#ifdef FULL_ALGEBRA    
+      CALL Jac_SP(V, FIX, RCONST, JV)
+      DO j=1,NVAR
+      DO i=1,NVAR
+         JF(i,j) = 0.0d0
+      END DO
+      END DO
+      DO i=1,LU_NONZERO
+         JF(LU_IROW(i),LU_ICOL(i)) = JV(i)
+      END DO
+#else
+      CALL Jac_SP(V, FIX, RCONST, JF) 
+      NNZ = LU_NONZERO
+      IA = LU_IROW
+      JA = LU_ICOL
+#endif   
+      !Njac=Njac+1
+   
+   END SUBROUTINE JAC_CHEM 
+
+!   MODULE DVODE
+
+! This version is the December 2005 release.
+! Last change: 01/01/08
+! _____________________________________________________________________
+! Working Precision
+!  IMPLICIT NONE
+! Define the working precision for DVODE_F90. Change D0 to E0 in the
+! next statement to convert to single precision.
+!  INTEGER, PARAMETER, PRIVATE :: WP = KIND(1.0D0)
+! ______________________________________________________________________
+! Overview
+
+! The f77 ordinary differential equation solver VODE.f is applicable to
+! nonstiff systems of odes and to stiff systems having dense or banded
+! Jacobians. DVODE_F90 is a Fortran 90 extension of VODE.f. While
+! retaining all of the features available in VODE.f, we have
+! incorporated several new options in DVODE_F90 including:
+!   1. the ability to solve stiff systems with sparse Jacobians
+!   2. internal management of storage and work arrays
+!   3. specification of options via optional keywords
+!   4. the ability to perform root finding or "event detection"
+!   5. various new diagnostic and warning messages
+!   6. the ability to impose solution bounds
+!   7. several specialized options for dealing with sparsity
+! ______________________________________________________________________
+! Version Information
+
+! This is DVODE_F90, the double precision FORTRAN 90 extension of the
+! f77 DVODE.f ordinary differential equation solver. This version uses
+! MA28 for sparse Jacobians. This file and related information can be
+! obtained at the following support page:
+!
+!     http://www.radford.edu/~thompson/vodef90web/
+!
+! We are indebted to Richard Cox (ORNL) for providing us with his
+! implementation of MA28 in LSOD28.f (a variant of Alan Hindmarsh's
+! lsodes.f). We are indebted to Alan Hindmarsh for numerous contributions.
+! In particular, we borrowed liberally from the f77 solvers VODE.f,
+! LSODAR.f, and LSODES.f while developing DVODE_F90. We are indebted
+! to Doug Salane for providing us with his JACSP Jacobian routines.
+!
+! If you find a bug or encounter a problem with DVODE_F90, please
+! contact one of us:
+!    G.D. Byrne (gbyrne@wi.rr.com)
+!    S. Thompson (thompson@radford.edu)
+! A set of quick start instructions is provided below.
+! ______________________________________________________________________
+! Note on F90/F95 Compilers
+
+! To date we have used DVODE_F90 successfully with all F90/F95 compilers
+! to which we have access. In particular, we have used it with the Lahey
+! F90 and Lahey-Fujitsu F95 compilers, the Compaq Visual F90 compiler,
+! the g90 compiler, and the INTEL, Portland, Salford, and SUN compilers.
+! It should be noted that compilers such as Salford's FTN95 complain
+! about uninitialized arrays passed as subroutine arguments and the use of
+! slices of two dimensional arrays as one dimensional vectors, and will
+! not run using the strictest compiler options. It is perfectly safe to
+! use the /-CHECK compiler option to avoid these FTN95 runtime checks.
+! DVODE_F90 does not use any variable for numerical purposes until it
+! has been assigned an appropriate value.
+! ______________________________________________________________________
+! Quick Start Instructions
+
+! (1) Compile this file. Then compile, link, and execute the program
+!     example1.f90. The output is written to the file example1.dat.
+!     Verify that the last line of the output is the string
+!     'No errors occurred.'
+! (2) Repeat this process for the program example2.f90.
+!
+! Other test programs you may wish to run to verify your installation
+! of DVODE_F90 are:
+!
+! (3) Run the test programs nonstiffoptions.f90 and stiffoptions.f90
+!     and verify that the last line in the output files produced is
+!     'No errors occurred.' They solve the problems in the Toronto
+!     test suites using several different error tolerances and various
+!     solution options. Note that stiffoptions.f90 takes several
+!     minutes to run because it performs several thousand separate
+!     integrations.
+! (4) Locate the file robertson.f90 in the demo programs and look at
+!     how options are set using SET_OPTS, how DVODE_F90 is called to
+!     obtain the solution at desired output times, and how the
+!     derivative and Jacobian routines are supplied. Note too the
+!     manner in which the solution is constrained to be nonnegative.
+! (5) Locate demoharmonic.f90 and look at how root finding options
+!     are set and how the event residual routine is supplied to
+!     DVODE_F90.
+! (6) The other demo programs available from the DVODE_F90 support
+!     page illustrate various other solution options available in
+!     DVODE_F90. The demo programs may be obtained from
+!
+!        http://www.radford.edu/~thompson/vodef90web/index.html
+! ______________________________________________________________________
+! DVODE_F90 Full Documentation Prologue
+
+! Section 1.  Setting Options in DVODE_F90
+! Section 2.  Calling DVODE_F90
+! Section 3.  Choosing Error Tolerances
+! Section 4.  Choosing the Method of Integration
+! Section 5.  Interpolation of the Solution and Derivatives
+! Section 6.  Handling Events (Root Finding)
+! Section 7.  Gathering Integration Statistics
+! Section 8.  Determining Jacobian Sparsity Structure Arrays
+! Section 9.  Original DVODE Documentation Prologue
+! Section 10. Example Usage
+
+! Note: Search on the string 'Section' to locate these sections. You
+! may wish to refer to the support page which has the sections broken
+! into smaller pieces.
+! ______________________________________________________________________
+! Section 1.  Setting Options in DVODE_F90
+!
+! You can use any of three options routines:
+!
+! SET_NORMAL_OPTS
+! SET_INTERMEDIATE_OPTS
+! SET_OPTS
+
+! OPTIONS = SET_NORMAL_OPTS(DENSE_J, BANDED_J, SPARSE_J,               &
+!   USER_SUPPLIED_JACOBIAN, LOWER_BANDWIDTH, UPPER_BANDWIDTH,          &
+!   RELERR, ABSERR, ABSERR_VECTOR, NEVENTS)
+
+! OPTIONS = SET_INTERMEDIATE_OPTS(DENSE_J, BANDED_J, SPARSE_J,         &
+!   USER_SUPPLIED_JACOBIAN,LOWER_BANDWIDTH, UPPER_BANDWIDTH,           &
+!   RELERR, ABSERR, ABSERR_VECTOR,TCRIT, H0, HMAX, HMIN, MAXORD,       &
+!   MXSTEP, MXHNIL, NZSWAG, USER_SUPPLIED_SPARSITY, MA28_RPS,          &
+!   NEVENTS, CONSTRAINED, CLOWER, CUPPER, CHANGE_ONLY_f77_OPTIONS)     &
+
+! OPTIONS = SET_OPTS(METHOD_FLAG, DENSE_J, BANDED_J, SPARSE_J,         &
+!   USER_SUPPLIED_JACOBIAN, SAVE_JACOBIAN, CONSTANT_JACOBIAN,          &
+!   LOWER_BANDWIDTH, UPPER_BANDWIDTH, SUB_DIAGONALS, SUP_DIAGONALS,    &
+!   RELERR, RELERR_VECTOR, ABSERR, ABSERR_VECTOR, TCRIT, H0, HMAX,     &
+!   HMIN, MAXORD, MXSTEP, MXHNIL, YMAGWARN, SETH, UPIVOT, NZSWAG,      &
+!   USER_SUPPLIED_SPARSITY, NEVENTS, CONSTRAINED, CLOWER, CUPPER,      &
+!   MA28_ELBOW_ROOM, MC19_SCALING, MA28_MESSAGES, MA28_EPS,            &
+!   MA28_RPS, CHANGE_ONLY_f77_OPTIONS, JACOBIAN_BY_JACSP)
+
+! Please refer to the documentation prologue for each of these functions
+! to see what options may be used with each. Note that input to each is
+! via keyword and all variables except error tolerances are optional.
+! Defaults are used for unspecified options. If an option is available
+! in SET_NORMAL OPTS, it is available and has the same meaning in
+! SET_INTERMEDIATE_OPTS and SET_OPTS. Similarly, if an option is available
+! in SET_INTERMEDIATE_OPTS, it is available and has the same meaning in
+! SET_OPTS.
+
+! The first two functions are provided merely for convenience.
+! SET_NORMAL_OPTS is available simply to relieve you of reading the
+! documentation for SET_OPTS and to use default values for all but
+! the most common options. SET_INTERMEDIATE_OPTS is available to allow
+! you more control of the integration while still using default values
+! for less commonly used options. SET_OPTS allows you to specify any
+! of the options available in DVODE_F90.
+
+! Roughly, SET_NORMAL_OPTS is intended to provide for dense, banded,
+! and numerical sparse Jacobians without the need to specify other
+! specialized options. SET_INTERMEDIATE_OPTIONS is intended to allow
+! more general sparse Jacobian options. SET_OPTS is intended to provide
+
+! access to all options in DVODE_F90.
+
+! Please note that SET_INTERMEDIATE_OPTS can be invoked using the same
+! arguments as SET_NORMAL_OPTS; and SET_OPTS can be invoked using the
+! same arguments as either SET_NORMAL_OPTS or SET_INTERMEDIATE_OPTS.
+! If you wish you can simply delete SET_NORMAL_OPTS as well as
+! SET_INTERMEDIATE_OPTS and use only SET_OPTS for all problems. If you
+! do so, you need only include the options that you wish to use when
+! you invoke SET_OPTIONS.
+
+! In the following description any reference to SET_OPTS applies equally
+! to SET_NORMAL_OPTS and SET_INTERMEDIATE OPTS.
+
+! Before calling DVODE_F90 for the first time, SET_OPTS must be invoked.
+! Typically, SET_OPTS is called once to set the desired integration
+! options and parameters. DVODE_F90 is then called in an output loop to
+! obtain the solution for the desired times. A detailed description of
+! the DVODE_F90 arguments is given in a section below. Detailed descriptions
+! of the options available via SET_OPTS are given in the documentation prologue.
+! Although each option available in the f77 version of DVODE as well as
+! several additional ones are available in DVODE_F90 via SET_OPTS,
+! several of the available options are not relevant for most problems
+! and need not be specified. Refer to the accompanying demonstration
+! programs for specific examples of each usage. Note that after any call
+! to DVODE_F90, you may call GET_STATS to gather relevant integration
+! statistics. After your problem has completed, you may call
+! RELEASE_ARRAYS to deallocate any internal arrays allocated by
+! DVODE_F90 and to determine how much storage was used by DVODE_F90.
+!
+! To communicate with DVODE_F90 you will need to include the following
+! statement in your calling program:
+!    USE DVODE_F90_M
+! and include the following statement in your type declarations section:
+!    TYPE(VODE_OPTS) :: OPTIONS
+! Below are brief summaries of typical uses of SET_OPTS.
+! Nonstiff Problems:
+! OPTIONS = SET_OPTS(RELERR=RTOL,ABSERR=ATOL)
+!    The above use of SET_OPTS will integrate your system of odes
+!    using the nonstiff Adams methods while using a relative error
+!    tolerance of RTOL and an absolute error tolerance of ATOL.
+!    Your subsequent call to DVODE_F90 might look like:
+!    CALL DVODE_F90(F,NEQ,Y,T,TOUT,ITASK,ISTATE,OPTIONS)
+! OPTIONS = SET_OPTS(RELERR=RTOL,ABSERR=ATOL,NEVENTS=NG)
+!    If you wish to do root finding, SET_OPTS can be used as above.
+!    Here, NEVENTS is the desired number of root finding functions.
+!    Your subsequent call to DVODE_F90 might look like:
+!    CALL DVODE_F90(F,NEQ,Y,T,TOUT,ITASK,ISTATE,OPTIONS,G_FCN=G)
+!    Here F is the name of your derivative subroutine and G is the
+!    name of your subroutine to evaluate residuals of the root
+!    finding functions.
+! OPTIONS = SET_OPTS(RELERR=RTOL,ABSERR_VECTOR=ATOL)
+!    This use of SET_OPTS indicates that a scalar relative error
+!    tolerance and a vector of absolute error tolerances will be
+!    used.
+! Stiff Problems, internally generated dense Jacobian:
+! OPTIONS = SET_OPTS(DENSE_J=.TRUE.,RELERR=RTOL,ABSERR=ATOL)
+!    This use of DENSE_J=.TRUE. indicates that DVODE_F90 will
+!    use the stiffly stable BDF methods and will approximate
+!    the Jacobian, considered to be a dense matrix, using
+!    finite differences. Your subsequent call to DVODE_F90
+!    might look like:
+!    CALL DVODE_F90(F,NEQ,Y,T,TOUT,ITASK,ISTATE,OPTIONS)
+! OPTIONS = SET_OPTS(DENSE_J=.TRUE.,ABSERR=ATOL,RELERR=RTOL, &
+!                    USER_SUPPLIED_JACOBIAN=.TRUE.)
+!    If you know the Jacobian and wish to supply subroutine JAC
+!    as described in the documentation for DVODE_F90, the options
+!    call could look like the above.
+!    Your subsequent call to DVODE_F90 might look like:
+!    CALL DVODE_F90(F1,NEQ,Y,T,TOUT,ITASK,ISTATE,OPTIONS,J_FCN=JAC)
+!    Here, JAC is the name of the subroutine that you provide to
+!    evaluate the known Jacobian.
+! Stiff Problems, internally generated banded Jacobian:
+! OPTIONS = SET_OPTS(BANDED_J=.TRUE.,RELERR=RTOL,ABSERR=ATOL, &
+!                       LOWER_BANDWIDTH=ML,UPPER_BANDWIDTH=MU)
+!    This use of BANDED_J=.TRUE. indicates that DVODE_F90 will
+!    use the stiffly stable BDF methods and will approximate the
+!    Jacobian, considered to be a banded matrix, using finite
+!    differences. Here ML is the lower bandwidth of the Jacobian
+!    and ML is the upper bandwidth of the Jacobian.
+! Stiff Problems, internally generated sparse Jacobian:
+! OPTIONS = SET_OPTS(SPARSE_J=.TRUE.,ABSERR=ATOL,RELERR=RTOL)
+!    This use of SET_OPTS indicates that the Jacobian is a sparse
+!    matrix. Its structure will be approximated internally by
+!    making calls to your derivative routine. If you know the
+!    structure before hand, you may provide it directly in a
+!    variety of ways as described in the documentation prologue
+!    for SET_OPTS. In addition, several other options related
+!    to sparsity are available.
+! More complicated common usage:
+!    Suppose you need to solve a stiff problem with a sparse Jacobian.
+!    After some time, the structure of the Jacobian changes and you
+!    wish to have DVODE_F90 recalculate the structure before continuing
+!    the integration. Suppose that initially you want to use an absolute
+!    error tolerance of 1.0D-5 and that when the Jacobian structure is
+!    changed you wish to reduce the error tolerance 1.0D-7. Your calls
+!    might look like this.
+!    RTOL = ...
+!    ATOL = 1.0D-5
+!    OPTIONS = SET_OPTS(SPARSE_J=.TRUE.,ABSERR=ATOL,RELERR=RTOL)
+!    Output loop:
+!       CALL DVODE_F90(FCN,NEQ,Y,T,TOUT,ITASK,ISTATE,OPTIONS)
+!       At desired time:
+!       ISTATE = 3
+!       ATOL = 1.0D-7
+!       OPTIONS = SET_OPTS(SPARSE_J=.TRUE.,ABSERR=ATOL,RELERR=RTOL)
+!    End of output loop
+
+! In the following we have summarized and described how some of the demonstration
+! programs set options and call DVODE_F90. In each case the necessary parameters
+! are defined before invoking SET_OPTS. The call to DVODE_F90 is in a loop in
+! which the output time is successively updated. The actual programs are available
+! from the web support page
+!
+!    http://www.radford. edu/~thompson/vodef90web/index.html/
+!
+!                              Problem Summary
+!
+! Problem                  NEQ      Jacobian            Features Illustrated
+!
+! Prologue Example 1        3        Dense               Basic
+!
+! Prologue Example 2        3        Dense               Root finding
+!
+! Robertson                 3        Dense               Solution bounds
+!
+! Harmonic Oscillator       4        Nonstiff            Root finding
+!
+! Flow Equations         5-1800      Sparse              Automatic determination
+!                                                        of sparsity arrays
+!
+! Diurnal Kinetics      50-5000      Sparse or banded    Sparsity options
+!
+!                       Options Used and DVODE_F90 Call
+!
+! Prologue Example 1
+!
+!    OPTIONS = SET_NORMAL_OPTS(DENSE_J=.TRUE., ABSERR_VECTOR=ATOL, RELERR=RTOL,     &
+!              USER_SUPPLIED_JACOBIAN=.TRUE.)
+!    CALL DVODE_F90(FEX,NEQ,Y,T,TOUT,ITASK,ISTATE,OPTIONS,J_FCN=JEX)
+!
+!    The problem consists of a stiff system of NEQ=3 equations. The dense
+!    Jacobian option (DENSE_J) is used. A vector ATOL(*) of error tolerances
+!    is used. A scalar relative error tolerance RTOL is used. Subroutine JEX
+!    is provided to evaluate the analytical Jacobian. If the last argument
+!    J_FCN=JEX is omitted (as in Example 2), a numerical Jacobian will
+!    be used.
+!
+! Prologue Example 2
+!
+!    OPTIONS = SET_NORMAL_OPTS(DENSE_J=.TRUE., RELERR=RTOL, ABSERR_VECTOR=ATOL,     &
+!              NEVENTS=NG)
+!    CALL DVODE_F90(FEX,NEQ,Y,T,TOUT,ITASK,ISTATE,OPTIONS,G_FCN=GEX)
+!
+!    The system in Example 1 is used to illustrate root finding. It is
+!    desired to locate the times at which two of the solution components
+!    attain prescribed values. NEVENTS=2 informs the solver that two such
+!    functions are used. Subroutine GEX is used to calculate the residuals
+!    for these two functions. A dense numerical Jacobian is used.
+!
+! Robertson Problem
+!
+!    OPTIONS = SET_INTERMEDIATE_OPTS(DENSE_J=.TRUE., RELERR_VECTOR=RTOL,            &
+!              ABSERR_VECTOR=ABSERR_TOLERANCES, CONSTRAINED=BOUNDED_COMPONENTS,     &
+!              CLOWER=LOWER_BOUNDS, CUPPER=UPPER_BOUNDS)
+!
+!    CALL DVODE_F90(DERIVS,NEQ,Y,T,TOUT,ITASK,ISTATE,OPTIONS,J_FCN=JACD)
+!    The system used in Examples 1 and 2 is solved over a much larger
+!    time interval. The solution is constrained to be nonegative. This
+!    is done by prescribing the components to be constrained (BOUNDED_COMPONENTS).
+!    Artificially large values are used to impose upper bounds (UPPER_BOUNDS)
+!    and lower bounds of zero are used to force a nonnegative solution.
+!
+! Harmonic Oscillator Problem
+!
+!    OPTIONS = SET_NORMAL_OPTS(RELERR=RTOL, ABSERR=ATOL, NEVENTS=NG)
+!    CALL DVODE_F90(DERIVS,NEQ,Y,T,TOUT,ITASK,ISTATE,OPTIONS,G_FCN=GEVENTS)
+!
+!    A nonstiff system of NEQ=4 equations is solved. The nonstiff option is
+!    used because neither DENSE_ nor BANDED_J nor SPARSE_J is present. It is
+!    desired to find the times at which Y(2) or Y(3) is equal to 0. Residuals
+!    for the two corresponding event functions are calculated in subroutine
+!    GEVENTS.
+!
+! Flow Equations Problem
+!
+!    OPTIONS = SET_OPTS(SPARSE_J=SPARSE, ABSERR=ATOL(1), RELERR=RTOL(1),            &
+!              MXSTEP=100000, NZSWAG=20000)
+!    CALL DVODE_F90(FCN,NEQ,Y,T,TOUT,ITASK,ISTATE,OPTIONS)
+!
+!    This is a stiff system of equations resulting a method of lines
+!    discretization. The Jacobian is sparse. Scalar absolute and relative
+!    error tolerances are used. The Jacobian structure and a numerical
+!    Jacobian are used. The solver is limited to a maximum of MXSTEP steps.
+!    NZSWAG is the amount by which allocated array sizes will be increased.
+!    The accompanying test program may be used to illutrate several other
+!    solution options.
+!
+! Diurnal Kinetics Problem
+!
+!    OPTIONS = SET_OPTS(SPARSE_J=SPARSE, BANDED_J=BANDED, DENSE_J=DENSE,            &
+!              ABSERR_VECTOR=ATOL(1:NEQ), RELERR=RTOL(1), MXSTEP=100000,            &
+!              NZSWAG=50000, HMAX=MAXH, LOWER_BANDWIDTH=ML, UPPER_BANDWIDTH=MU,     &
+!              MA28_ELBOW_ROOM=10, MC19_SCALING=.TRUE., MA28_MESSAGES=.FALSE.,      &
+!              MA28_EPS=1.0D-4, MA28_RPS=.TRUE.,                                    &
+!              USER_SUPPLIED_SPARSITY=SUPPLY_STRUCTURE)
+!   CALL USERSETS_IAJA(IA, IADIM, JA, JADIM)
+!   CALL DVODE_F90(FCN, NEQ, Y, T, TOUT, ITASK, ISTATE, OPTIONS)
+!
+!   This problem can be used to illustrate most solution options. Here, dense,
+!   banded, or sparse Jacobians are used depending on the values of the first
+!   three parameters. A vector error tolerance is used and a scalar relative
+!   error tolerance is used. If a banded solution is desired, it is necessary
+!   to supply the bandwidths ML and MU. If a sparse solution is desired,
+!   several special options are used. The most important one is MA28_RPS to
+!   force the solver to update the partial pivoting sequence when singular
+!   iteration matrices are encountered. The sparsity pattern is determined
+!   numerically if SUPPLY_STRUCTURE is FALSE. Otherwise the user will supply
+!   the pattern by calling subroutine USERSETS_IAJA.
+! ______________________________________________________________________
+! Section 2.  Calling DVODE_F90
+!
+! DVODE_F90 solves the initial value problem for stiff or nonstiff
+! systems of first order ODEs,
+!     dy/dt = f(t,y), or, in component form,
+!     dy(i)/dt = f(i) = f(i,t,y(1),y(2),...,y(NEQ)) (i = 1,...,NEQ).
+! DVODE_F90 is a package based on the EPISODE and EPISODEB packages,
+! and on the ODEPACK user interface standard. It was developed from
+! the f77 solver DVODE developed by Brown, Byrne, and Hindmarsh.
+! DVODE_F90 also provides for the solution of sparse systems in a
+! fashion similar to LSODES and LSOD28. Currently, MA28 is used
+! to perform the necessary sparse linear algebra. DVODE_F90 also
+! contains the provision to do root finding in a fashion similar
+! to the LSODAR solver from ODEPACK.
+
+! Communication between the user and the DVODE_F90 package, for normal
+! situations, is summarized here. This summary describes only a subset
+! of the full set of options available. See the full description for
+! details, including optional communication, nonstandard options, and
+! instructions for special situations.
+!    CALL DVODE_F90(F,NEQ,Y,T,TOUT,ITASK,ISTATE,OPTIONS,J_FCN=JAC,G_FCN=GEX)
+!    The arguments in the call list to DVODE_F90 have the following
+!    meanings.
+! F       = The name of the user-supplied subroutine defining the
+!           ODE system. The system must be put in the first-order
+!           form dy/dt = f(t,y), where f is a vector-valued function
+!           of the scalar t and the vector y. Subroutine F is to
+!           compute the function f. It is to have the form
+!                SUBROUTINE F(NEQ,T,Y,YDOT)
+!                DOUBLE PRECISION T,Y(NEQ),YDOT(NEQ)
+!           where NEQ, T, and Y are input, and the array YDOT = f(t,y)
+!           is output. Y and YDOT are arrays of length NEQ.
+!           Subroutine F should not alter Y(1),...,Y(NEQ).
+!           If F (and JAC) are not contained in a module available to
+!           your calling program, you must declare F to be EXTERNAL
+!           in the calling program.
+! NEQ     = The size of the ODE system (number of first order
+!           ordinary differential equations).
+! Y       = A double precision array for the vector of dependent variables,
+!           of length NEQ or more. Used for both input and output on the
+!           first call (ISTATE = 1), and only for output on other calls.
+!           On the first call, Y must contain the vector of initial
+!           values. In the output, Y contains the computed solution
+!           evaluated at T.
+! T       = The independent variable. In the input, T is used only on
+!           the first call, as the initial point of the integration.
+!           In the output, after each call, T is the value at which a
+!           computed solution Y is evaluated (usually the same as TOUT).
+!           On an error return, T is the farthest point reached.
+! TOUT    = The next value of t at which a computed solution is desired.
+!           TOUT is Used only for input. When starting the problem
+!           (ISTATE = 1), TOUT may be equal to T for one call, then
+!           should not equal T for the next call. For the initial T,
+!           an input value of TOUT unequal to T is used in order to
+!           determine the direction of the integration (i.e. the
+!           algebraic sign of the step sizes) and the rough scale
+!           of the problem. Integration in either direction (forward
+!           or backward in t) is permitted. If ITASK = 2 or 5 (one-step
+!           modes), TOUT is ignored after the first call (i.e. the
+!           first call with TOUT \= T). Otherwise, TOUT is required
+!           on every call. If ITASK = 1, 3, or 4, the values of TOUT
+!           need not be monotone, but a value of TOUT which backs up
+!           is limited to the current internal t interval, whose
+!           endpoints are TCUR - HU and TCUR. (Refer to the description
+!           of GET_STATS for a description of TCUR and HU.)
+! ITASK   = An index specifying the task to be performed.
+!           Input only. ITASK has the following values and meanings.
+!           1  means normal computation of output values of y(t) at
+!              t = TOUT (by overshooting and interpolating).
+!           2  means take one step only and return.
+!           3  means stop at the first internal mesh point at or
+!              beyond t = TOUT and return.
+!           4  means normal computation of output values of y(t) at
+!              t = TOUT but without overshooting t = TCRIT.
+!              TCRIT must be specified in your SET_OPTS call. TCRIT
+!              may be equal to or beyond TOUT, but not behind it in
+!              the direction of integration. This option is useful
+!              if the problem has a singularity at or beyond t = TCRIT.
+!           5  means take one step, without passing TCRIT, and return.
+!              TCRIT must be specified in your SET_OPTS call.
+!           If ITASK = 4 or 5 and the solver reaches TCRIT (within
+!           roundoff), it will return T = TCRIT(exactly) to indicate
+!           this (unless ITASK = 4 and TOUT comes before TCRIT, in
+!           which case answers at T = TOUT are returned first).
+! ISTATE  = an index used for input and output to specify the
+!           the state of the calculation.
+!           In the input, the values of ISTATE are as follows.
+!           1  means this is the first call for the problem
+!              (initializations will be done). See note below.
+!           2  means this is not the first call, and the calculation
+!              is to continue normally, with no change in any input
+!              parameters except possibly TOUT and ITASK.
+!           3  means this is not the first call, and the
+!              calculation is to continue normally, but with
+!              a change in input parameters other than
+!              TOUT and ITASK. Desired changes require SET_OPTS
+!              be called prior to calling DVODE_F90 again.
+!           A preliminary call with TOUT = T is not counted as a
+!           first call here, as no initialization or checking of
+!           input is done. (Such a call is sometimes useful to
+!           include the initial conditions in the output.)
+!           Thus the first call for which TOUT is unequal to T
+!           requires ISTATE = 1 in the input.
+!           In the output, ISTATE has the following values and meanings.
+!            1  means nothing was done, as TOUT was equal to T with
+!               ISTATE = 1 in the input.
+!            2  means the integration was performed successfully.
+!            3  means a root of one of your root finding functions
+!               has been located.
+!           A negative value of ISTATE indicates that DVODE_F90
+!           encountered an error as described in the printed error
+!           message. Since the normal output value of ISTATE is 2,
+!           it does not need to be reset for normal continuation.
+!           Also, since a negative input value of ISTATE will be
+!           regarded as illegal, a negative output value requires
+!           the user to change it, and possibly other input, before
+!           calling the solver again.
+! OPTIONS = The options structure produced by your call to SET_OPTS.
+! JAC     = The name of the user-supplied routine (MITER = 1 or 4 or 6)
+!           If you do not specify that a stiff method is to be used
+!           in your call to SET_OPTS, you need not include JAC in
+!           your call to DVODE_F90. If you specify a stiff method and
+!           that a user supplied Jacobian will be supplied, JAC must
+!           compute the Jacobian matrix, df/dy, as a function of the
+!           scalar t and the vector y. It is to have the form:
+!              SUBROUTINE JAC(NEQ, T, Y, ML, MU, PD, NROWPD)
+!              DOUBLE PRECISION T, Y(NEQ), PD(NROWPD,NEQ)
+!           where NEQ, T, Y, ML, MU, and NROWPD are input and the array
+!           PD is to be loaded with partial derivatives (elements of the
+!           Jacobian matrix) in the output. PD must be given a first
+!           dimension of NROWPD. T and Y have the same meaning as in
+!           Subroutine F.
+!           In the full matrix case (MITER = 1), ML and MU are
+!           ignored, and the Jacobian is to be loaded into PD in
+!           columnwise manner, with df(i)/dy(j) loaded into PD(i,j).
+!           In the band matrix case (MITER = 4), the elements
+!           within the band are to be loaded into PD in columnwise
+!           manner, with diagonal lines of df/dy loaded into the rows
+!           of PD. Thus df(i)/dy(j) is to be loaded into PD(i-j+MU+1,j).
+!           ML and MU are the half-bandwidth parameters. (See IUSER).
+!           The locations in PD in the two triangular areas which
+!           correspond to nonexistent matrix elements can be ignored
+!           or loaded arbitrarily, as they are overwritten by DVODE_F90.
+!           In the sparse matrix case the elements of the matrix
+!           are determined by the sparsity structure given by the
+!           IA and JA pointer arrays. Refer to the documentation
+!           prologue for SET_OPTS for a description of the arguments
+!           for JAC since they differ from the dense and banded cases.
+!           JAC need not provide df/dy exactly. A crude
+!           approximation (possibly with a smaller bandwidth) will do.
+!           In either case, PD is preset to zero by the solver,
+!           so that only the nonzero elements need be loaded by JAC.
+!           In the sparse matrix case, JAC has a different form:
+!                SUBROUTINE JAC (N, T, Y, IA, JA, NZ, PD)
+!           Given the number of odes N, the current time T, and the
+!           current solution vector Y, JAC must do the following:
+!              If NZ = 0 on input:
+!              Replace NZ by the number of nonzero elements in the
+!              Jacobian. The diagonal of the Jacobian must be included.
+!              Do NOT define the arrays IA, JA, PD at this time.
+!              Once JAC has been called with NZ = 0 and you have
+!              defined the value of NZ, future calls to JAC will use
+!              this value of NZ.
+!              When a call is made with NZ unequal to 0, you must
+!              define the sparsity structure arrays IA and JA, and
+!              the sparse Jacobian PD.
+!                 IA defines the number of nonzeros including the
+!                 diagonal in each column of the Jacobian. Define
+!                 IA(1) = 1 and for J = 1,..., N,
+!                 IA(J+1) = IA(J) + number of nonzeros in column J.
+!                 Diagonal elements must be included even if they are
+!                 zero. You should check to ensure that IA(N+1)-1 = NZ.
+!                 JA defines the rows in which the nonzeros occur.
+!                 For I = 1,...,NZ, JA(I) is the row in which the Ith
+!                 element of the Jacobian occurs. JA must also include
+!                 the diagonal elements of the Jacobian.
+!                 PD defines the numerical value of the Jacobian
+!                 elements. For I = 1,...,NZ, PD(I) is the numerical
+!                 value of the Ith element in the Jacobian. PD must
+!                 also include the diagonal elements of the Jacobian.
+! GFUN    = the name of the subroutine to evaluate the residuals for
+!           event functions. If you do not specify that events are
+!           present (by specifying NEVENTS > 0 in SET_OPTS), you
+!           need not include GFUN in your call list for DVODE_F90.
+!           If GFUN is not contained in a module available to your
+!           calling program, you must declare GFUN to be EXTERNAL
+!           in your calling program.
+! To continue the integration after a successful return, simply
+! reset TOUT and call DVODE_F90 again. No other parameters need
+! be reset unless ISTATE=3 in which case, reset it to 2 before
+! calling DVODE_F90 again.
+! ______________________________________________________________________
+! Section 3.  Choosing Error Tolerances
+!
+! This is the most important aspect of solving odes numerically.
+! You may supply any of four keywords and values. If you wish to
+! use scalar error tolerances, you should supply ABSERR and RELERR.
+! For a good many problems, it is advisable to supply a vector of
+! absolute error tolerances ABSERR_VECTOR = desired vector. This
+! allows you to use different tolerances for each component of
+! the solution. If ABSERR_VECTOR is supplied, it must be a vector
+! of length NEQ where NEQ is the number of odes in your system.
+! Similarly, you may supply a vector of relative error tolerances,
+! RELERR_VECTOR. If no tolerances are specified, DVODE_F90 will use
+! default error tolerances ABSERR=1D-6 and RELERR=1D-4; but it is
+! strongly recommended that you supply values that are appropriate
+! for your problem. In the event you do not supply error tolerances,
+! DVODE_F90 will print a reminder that the default error tolerances
+! are not appropriate for all problems.
+!
+! RELERR can be set to a scalar value as follows.
+! Determine the number of significant digits of accuracy desired, 
+! which will be a positive integer, say, N.
+! Then set RELERR = 10**-(N+1). 
+! The authors recommend that RELERR be no larger than 10**-4.
+! The authors recommend a vector valued absolute error tolerance,
+! which can be set as follows.
+! For the I-th component of the solution vector, Y(I), determine
+! the positive number FLOOR(I) at which ABS(Y(I)) becomes
+! negligible for the problem at hand. FLOOR(I) is sometimes called
+! the problem zero or the floor value for the I-th component and is
+! problem dependent. For a given problem that is not scaled, these
+! floor values may well vary by up to 9 orders of magnitude.
+! Set ABSERR(I) = FLOOR(I) or to be conservative
+! ABSERR_VECTOR(I) = 0.1*FLOOR(I). There is no variable FLOOR in
+! DVODE_F90. If it is difficult to divine the components of ABSERR,
+! (or FLOOR) make a reasonable guess, run the problem, then set that
+! ABSERR_VECTOR so for I = 1, 2,...NEQ,
+! ABSERR_VECTOR(I) = 1D-6*RELERR*MAX{ABS(Y(I,TOUT): for all TOUT}.
+! The correct choices for RELERR and ABSERR can and do have
+! significant impact on both the quality of the solution and run
+! time. Counter intuitively, error tolerances that are too loose
+! can and do increase run time significantly and the quality of
+! the solution may be seriously compromised.
+! Examples:
+! 1. OPTIONS = SET_OPTS(DENSE_J=.TRUE., ABSERR=1D-8,RELERR=1D-8)
+!    This will yield MF = 22. Both the relative error tolerance
+!    and the absolute error tolerance will equal 1D-8.
+! 2. OPTIONS = SET_OPTS(DENSE_J=.TRUE.,RELERR=1D-5, &
+!                       ABSERR_VECTOR=(/1D-6,1D-8/))
+!    For a system with NEQ=2 odes, this will yield MF = 22. A scalar
+!    relative error tolerance equal to 1D-5 will be used. Component 1
+!    of the solution will use an absolute error tolerance of 1D-6
+!    while component 2 will use an absolute error tolerance of 1D-8.
+! ______________________________________________________________________
+! Section 4.  Choosing the Method of Integration
+!
+! If you wish to specify a numerical value for METHOD_FLAG, it can equal
+! any of the legal values of MF for DVODE or LSODES. (See below.) If
+! you do not wish to specify a numerical value for METHOD_FLAG, you
+! may specify any combination of the five logical keywords DENSE_J,
+! BANDED_J, SPARSE_J, USER_SUPPLIED_JACOBIAN, SAVE_JACOBIAN that you
+! wish. Appropriate values will be used in DVODE_F90 for any variables
+! that are not present. The first three flags indicate the type of
+! Jacobian, dense, banded, or sparse. If USER_SUPPLIED_JACOBIAN=.TRUE.,
+! the Jacobian will be determined using the subroutine JAC you supply
+! in your call to DVODE_F90. Otherwise, an internal Jacobian will be
+! generated using finite differences.
+! Examples:
+! 1. OPTIONS = SET_OPTS(METHOD_FLAG=22,...)
+!    DVODE will use the value MF=22 as described in the documentation
+!    prologue. In this case, the stiff BDF methods will be used with
+!    a dense, internally generated Jacobian.
+! 2. OPTIONS = SET_OPTS(METHOD_FLAG=21,...)
+!    This is the same an Example 1 except that a user supplied dense
+!    Jacobian will be used and DVODE will use MF=21.
+! 3. OPTIONS = SET_OPTS(DENSE_J=.TRUE.,...)
+!    This will yield MF = 22 as in Example 1, provided
+!    USER_SUPPLIED_JACOBIAN and SAVE_JACOBIAN are not present, or if
+!    present are set to their default
+!     values of .FALSE. and .TRUE., respectively.
+! 4. OPTIONS = SET_OPTS(DENSE_J=.TRUE.,&
+!                       USER_SUPPLIED_JACOBIAN=.TRUE.,...)
+!    This will yield MF = 21 as in Example 2, provided SAVE_JACOBIAN
+!    is not present, or if present is set to its default value .FALSE.
+! Notes:
+! 1. If you specify more than one of DENSE_J, BANDED_J, and SPARSE_J,
+!    DENSE_J takes precedence over BANDED_J which in turn takes
+!    precedence over SPARSE_J.
+! 2. By default, DVODE_F90 saves a copy of the Jacobian and reuses the
+!    copy when necessary. For problems in which storage requirements
+!    are acute, you may wish to override this default and have
+!    DVODE_F90 recalculate the Jacobian rather than use a saved copy.
+!    You can do this by specifying SAVE_JACOBIAN=.FALSE. It is
+!    recommended that you not do this unless necessary since it can
+!    have a significant impact on the efficiency of DVODE_F90. (For
+!    example, when solving a linear problem only one evaluation of
+!    the Jacobian is required with the default option.)
+! 3. If you choose BANDED_J = .TRUE. or if you supply a value of MF
+!    that corresponds to a banded Jacobian, you must also supply the
+!    lower  bandwidth ML and the upper bandwidth of the Jacobian MU
+!    by including the keywords
+!    LOWER_BANDWIDTH = value of ML and UPPER_BANDWIDTH = value of M
+!                   More on Method Selection
+! The keyword options available in SET_OPTS are intended to replace
+! the original method indicator flag MF. However, if you wish to
+! retain the flexibility of the original solver, you may specify MF
+! directly in your call to SET_OPTS. This is done by using the
+! keyword METHOD_FLAG=MF in your SET_OPTS where MF has any of the
+! values in the following description. Refer to the demonstration
+! program demosp.f90 for an example in which this is done.
+! MF     = The method flag. Used only for input. The legal values of
+!          MF are:
+!          10, 11, 12, 13, 14, 15, 16, 17, 20, 21, 22, 23, 24, 25, 26,
+!          27, -11, -12, -14, -15, -21, -22, -24, -25, -26, -27.
+!          MF is a signed two-digit integer, MF = JSV*(10*METH+MITER).
+!          JSV = SIGN(MF) indicates the Jacobian-saving strategy:
+!            JSV =  1 means a copy of the Jacobian is saved for reuse
+!                     in the corrector iteration algorithm.
+!            JSV = -1 means a copy of the Jacobian is not saved
+!                     (valid only for MITER = 1, 2, 4, or 5).
+!          METH indicates the basic linear multistep method:
+!            METH = 1 means the implicit Adams method.
+!            METH = 2 means the method based on backward
+!                     differentiation formulas (BDF-s).
+!          MITER indicates the corrector iteration method:
+!            MITER = 0 means functional iteration (no Jacobian matrix
+!                      is involved).
+!            MITER = 1 means chord iteration with a user-supplied
+!                      full (NEQ by NEQ) Jacobian.
+!            MITER = 2 means chord iteration with an internally
+!                      generated (difference quotient) full Jacobian
+!                      (using NEQ extra calls to F per df/dy value).
+!            MITER = 4 means chord iteration with a user-supplied
+!                      banded Jacobian.
+!            MITER = 5 means chord iteration with an internally
+!                      generated banded Jacobian (using ML+MU+1 extra
+!                      calls to F per df/dy evaluation).
+!            MITER = 6 means chord iteration with a user-supplied
+!                      sparse Jacobian.
+!            MITER = 7 means chord iteration with an internally
+!                      generated sparse Jacobian
+!          If MITER = 1, 4, or 6 the user must supply a subroutine
+!          JAC(the name is arbitrary) as described above under JAC.
+!          For other values of MITER, JAC need not be provided.
+! ______________________________________________________________________
+! Section 5.  Interpolation of the Solution and Derivative
+!
+! Following a successful return from DVODE_F90, you may call
+! subroutine DVINDY to interpolate the solution or derivative.
+! SUBROUTINE DVINDY(T, K, DKY, IFLAG)
+! DVINDY computes interpolated values of the K-th derivative of the
+! dependent variable vector y, and stores it in DKY. This routine
+! is called with K = 0 or K = 1 and T = TOUT. In either case, the
+! results are returned in the array DKY of length at least NEQ which
+! must be declared and dimensioned in your calling program. The
+! computed values in DKY are obtained by interpolation using the
+! Nordsieck history array.
+! ______________________________________________________________________
+! Section 6.  Handling Events (Root Finding)
+!
+!    DVODE_F90 contains root finding provisions. It attempts to
+!    locates the roots of a set of functions
+!         g(i) = g(i,t,y(1),...,y(NEQ))  (i = 1,...,ng).
+!    To use root finding include NEVENTS=NG in your call to SET_OPTS
+!    where NG is the number of root finding functions. You must then
+!    supply subroutine GFUN in your call to DVODE_F90 using
+!    G_FCN=GFUN as the last argument. GFUN must has the form
+!               SUBROUTINE GFUN(NEQ, T, Y, NG, GOUT)
+!    where NEQ, T, Y, and NG are input, and the array GOUT is output.
+!    NEQ, T, and Y have the same meaning as in the F routine, and
+!    GOUT is an array of length NG. For i = 1,...,NG, this routine is
+!    to load into GOUT(i) the value at (T,Y) of the i-th constraint
+!    function g(i). DVODE_F90 will find roots of the g(i) of odd
+!    multiplicity (i.e. sign changes) as they occur during the
+!    integration. GFUN must be declared EXTERNAL in the calling
+!    program. Note that because of numerical errors in the functions
+!    g(i) due to roundoff and integration error, DVODE_F90 may return
+!    false roots, or return the same root at two or more nearly equal
+!    values of t. This is particularly true for problems in which the
+!    integration is restarted (ISTATE = 1) at a root. If such false
+!    roots are suspected, you should consider smaller error tolerances
+!    and/or higher precision in the evaluation of the g(i). Note
+!    further that if a root of some g(i) defines the end of the
+!    problem, the input to DVODE_F90 should nevertheless allow
+!    integration to a point slightly past that root, so that DVODE_F90
+!    can locate the root by interpolation. Each time DVODE_F90 locates
+!    a root of one of your event functions it makes a return to the
+!    calling program with ISTATE = 3. When such a return is made and
+!    you have processed the results, simply change ISTATE = 2 and call
+!    DVODE_F90 again without making other changes.
+! ______________________________________________________________________
+! Section 7.  Gathering Integration Statistics
+!
+! SUBROUTINE GET_STATS(RSTATS, ISTATS, NUMEVENTS, JROOTS)
+! Caution:
+! RSTATS and ISTATS must be declared and dimensioned in your
+! main program. The minimum dimensions are:
+! DIMENSION RSTATS(22), ISTATS(31)
+! This subroutine returns the user portions of the original DVODE
+! RUSER and IUSER arrays, and if root finding is being done, it
+! returns the original LSODAR JROOT vector. NUMEVENTS and JROOTS
+! are optional parameters. NUMEVENTS is the number of root functions
+! and JROOTS is an integer array of length NUMEVENTS.
+! Available Integration Statistics:
+! HU      RUSER(11) The step size in t last used (successfully).
+! HCUR    RUSER(12) The step size to be attempted on the next step.
+! TCUR    RUSER(13) The current value of the independent variable
+!                   which the solver has actually reached, i.e. the
+!                   current internal mesh point in t. In the output,
+!                   TCUR will always be at least as far from the
+!                   initial value of t as the current argument T,
+!                   but may be farther (if interpolation was done).
+! TOLSF   RUSER(14) A tolerance scale factor, greater than 1.0,
+!                   computed when a request for too much accuracy was
+!                   detected (ISTATE = -3 if detected at the start of
+!                   the problem, ISTATE = -2 otherwise). If ITOL is
+!                   left unaltered but RTOL and ATOL are uniformly
+!                   scaled up by a factor of TOLSF for the next call,
+!                   then the solver is deemed likely to succeed.
+!                   (The user may also ignore TOLSF and alter the
+!                   tolerance parameters in any other way appropriate.)
+! NST     IUSER(11) The number of steps taken for the problem so far.
+! NFE     IUSER(12) The number of f evaluations for the problem so far.
+! NJE     IUSER(13) The number of Jacobian evaluations so far.
+! NQU     IUSER(14) The method order last used (successfully).
+! NQCUR   IUSER(15) The order to be attempted on the next step.
+! IMXER   IUSER(16) The index of the component of largest magnitude in
+!                   the weighted local error vector (E(i)/EWT(i)),
+!                   on an error return with ISTATE = -4 or -5.
+! LENRW   IUSER(17) The length of RUSER actually required.
+!                   This is defined on normal returns and on an illegal
+!                   input return for insufficient storage.
+! LENIW   IUSER(18) The length of IUSER actually required.
+!                   This is defined on normal returns and on an illegal
+!                   input return for insufficient storage.
+! NLU     IUSER(19) The number of matrix LU decompositions so far.
+! NNI     IUSER(20) The number of nonlinear (Newton) iterations so far.
+! NCFN    IUSER(21) The number of convergence failures of the nonlinear
+!                   solver so far.
+! NETF    IUSER(22) The number of error test failures of the integrator
+!                   so far.
+! MA28AD_CALLS      IUSER(23) The number of calls made to MA28AD
+! MA28BD_CALLS      IUSER(24) The number of calls made to MA28BD
+! MA28CD_CALLS      IUSER(25) The number of calls made to MA28CD
+! MC19AD_CALLS      IUSER(26) The number of calls made to MC19AD
+! IRNCP             IUSER(27) The number of compressions done on array JAN
+! ICNCP             IUSER(28) The number of compressions done on array ICN
+! MINIRN            IUSER(29) Minimum size for JAN array
+! MINICN            IUSER(30) Minimum size for ICN array
+! MINNZ             IUSER(31) Number of nonzeros in sparse Jacobian
+! JROOTS  JROOTS    Optional array of component indices for components
+!                   having a zero at the current time
+! ______________________________________________________________________
+! Section 8.  Determining Jacobian Sparsity Structure Arrays
+!
+! If you are solving a problem with a sparse Jacobian, the arrays
+! that define the sparsity structure are needed. The arrays may
+! be determined in any of several ways.
+! 1. If you choose the default mode by indicating SPARSE=.TRUE.,
+!    the sparsity arrays will be determined internally by DVODE_F90
+!    by making calls to your derivative subroutine. This mode is
+!    equivalent to using the integration method flag MF = 227.
+! 2. The DVODE_F90 method flag MF is defined to be
+!    MF = 100*MOSS + 10*METH + MITER. If you supply MF = 227 (or 217),
+!    the sparse Jacobian will be determined using finite differences;
+!    and the sparsity arrays will be determined by calling your
+!    derivative subroutine.
+! 3. If you supply MF = 126 (or 116), you must supply the Jacobian
+!    subroutine JAC to define the exact Jacobian. JAC must have the
+!    following form:
+!           SUBROUTINE JAC (N, T, Y, IA, JA, NZ, PD)
+!    Given the number of odes N, the current time T, and the current
+!    solution vector Y, JAC must do the following:
+!    -  If NZ = 0 on input:
+!       Replace NZ by the number of nonzero elements in the Jacobian.
+!       The diagonal of the Jacobian must be included.
+!       Do NOT define the arrays IA, JA, PD at this time.
+!       Once JAC has been called with NZ = 0 and you have defined the
+!       value of NZ, future calls to JAC will use this value of NZ.
+!    -  When a call is made with NZ unequal to 0, you must define the
+!       sparsity structure arrays IA and JA, and the sparse Jacobian
+!       PD.
+!         - IA defines the number of nonzeros including the diagonal
+!           in each column of the Jacobian. Define IA(1) = 1 and for
+!           J = 1,..., N,
+!           IA(J+1) = IA(J) + number of nonzeros in column J.
+!           Diagonal elements must be include even if they are zero.
+!           You should check to ensure that IA(N+1)-1 = NZ.
+!         - JA defines the rows in which the nonzeros occur. For
+!           I = 1,...,NZ, JA(I) is the row in which the Ith element
+!           of the Jacobian occurs. JA must also include the diagonal
+!           elements of the Jacobian.
+!         - PD defines the numerical value of the Jacobian elements.
+!           For I = 1,...,NZ, PD(I) is the numerical value of the
+!           Ith element in the Jacobian. PD must also include the
+!           diagonal elements of the Jacobian.
+! 4. If you wish to supply the IA and JA arrays directly, use
+!    MF = 27. In this case, after calling SET_OPTS, you must call
+!    SET_IAJA supplying the arrays IAUSER and JAUSER described in
+!    the documentation prologue for SET_IAJA. These arrays will be
+!    used when approximate Jacobians are determined using finite
+!    differences.
+! There are two user callable sparsity structure subroutines:
+! USERSETS_IAJA may be used if you wish to supply the sparsity
+! structure directly.
+! SUBROUTINE USERSETS_IAJA(IAUSER,NIAUSER,JAUSER,NJAUSER)
+!     Caution:
+!     If it is called, USERSETS_IAJA must be called after the
+!     call to SET_OPTS.
+!     Usage:
+!     CALL SET_IAJA(IAUSER,NIAUSER,JAUSER,NJAUSER)
+!       In this case, IAUSER of length NIAUSER will be used for
+!       IA; and JAUSER of length NJAUSER will be used for JA.
+!     Arguments:
+!     IAUSER  = user supplied IA array
+!     NIAUSER = length of IAUSER array
+!     JAUSER  = user supplied JA vector
+!     NJAUSER = length of JAUSER array
+! The second subroutine allows you to approximate the sparsity
+! structure using derivative differences. It allows more flexibility
+! in the determination of perturbation increments used.
+! SUBROUTINE SET_IAJA(DFN,NEQ,T,Y,FMIN,NTURB,DTURB,IAUSER, &
+!   NIAUSER, JAUSER, NJAUSER)
+!     Caution:
+!     If it is called, SET_IAJA must be called after the call to
+!     SET_OPTS.
+!     Usage:
+!     SET_IAJA may be called in one of two ways:
+
+!     CALL SET_IAJA(DFN,NEQ,T,Y,FMIN,NTURB,DTURB)
+!       In this case IA and JA will be determined using calls
+!       to your derivative routine DFN.
+!     CALL SET_IAJA(DFN,NEQ,T,Y,FMIN,NTURB,DTURB,IAUSER,NIAUSER, &
+!       JAUSER, NJAUSER)
+!       In this case, IAUSER of length NIAUSER will be used for
+!       IA; and JAUSER of length NJAUSER will be used for JA.
+!       T, Y, FMIN, NTURB, and DTURB will be ignored (though
+!       they must be present in the argument list).
+!     Arguments:
+!     DFN     = DVODE derivative subroutine
+!     NEQ     = Number of odes
+!     T       = independent variable t
+!     Y       = solution y(t)
+!     FMIN    = Jacobian threshold value. Elements of the Jacobian
+!               with magnitude smaller than FMIN will be ignored.
+!               FMIN will be ignored if it is less than or equal
+!               to ZERO.
+!     NTURB   = Perturbation flag. If NTURB=1, component I of Y
+!               will be perturbed by 1.01D0.
+!               If NTURB=NEQ, component I of Y will be perturbed
+!               by ONE + DTURB(I).
+!     DTURB   = perturbation vector of length 1 or NEQ.
+!     If these four optional parameters are present, IAUSER and JAUSER
+!     will be copied to IA and JA rather than making derivative calls
+!     to approximate IA and JA:
+!        IAUSER  = user supplied IA array
+!        NIAUSER = length of IAUSER array
+!        JAUSER  = user supplied JA vector
+!        NJAUSER = length of JAUSER array
+! ______________________________________________________________________
+! Section 9.  Original DVODE.F Documentation Prologue
+!
+! SUBROUTINE DVODE(F, NEQ, Y, T, TOUT, ITASK, ISTATE, OPTS, JAC, GFUN)
+! DVODE: Variable-coefficient Ordinary Differential Equation solver,
+! with fixed-leading-coefficient implementation.
+! Note:
+! Numerous changes have been made in the documentation and the code
+! from the original Fortran 77 DVODE solver. With regard to the new
+! F90 version, if you choose options that correspond to options
+! available in the original f77 solver, you should obtain the same
+! results. In all testing, identical results have been obtained
+! between this version and a simple F90 translation of the original
+! solver.
+! DVODE solves the initial value problem for stiff or nonstiff
+! systems of first order ODEs,
+!     dy/dt = f(t,y), or, in component form,
+!     dy(i)/dt = f(i) = f(i,t,y(1),y(2),...,y(NEQ)) (i = 1,...,NEQ).
+! DVODE is a package based on the EPISODE and EPISODEB packages, and
+! on the ODEPACK user interface standard, with minor modifications.
+! This version is based also on elements of LSODES and LSODAR.
+! Authors:
+!               Peter N. Brown and Alan C. Hindmarsh
+!               Center for Applied Scientific Computing, L-561
+!               Lawrence Livermore National Laboratory
+!               Livermore, CA 94551
+!               George D. Byrne
+!               Illinois Institute of Technology
+!               Chicago, IL 60616
+! References:
+! 1. P. N. Brown, G. D. Byrne, and A. C. Hindmarsh, "VODE: A Variable
+!    Coefficient ODE Solver," SIAM J. Sci. Stat. Comput., 10 (1989),
+!    pp. 1038-1051. Also, LLNL Report UCRL-98412, June 1988.
+! 2. G. D. Byrne and A. C. Hindmarsh, "A Polyalgorithm for the
+!    Numerical Solution of Ordinary Differential Equations,"
+!    ACM Trans. Math. Software, 1 (1975), pp. 71-96.
+! 3. A. C. Hindmarsh and G. D. Byrne, "EPISODE: An Effective Package
+!    for the Integration of Systems of Ordinary Differential
+!    Equations," LLNL Report UCID/30112, Rev. 1, April 1977.
+! 4. G. D. Byrne and A. C. Hindmarsh, "EPISODEB: An Experimental
+!    Package for the Integration of Systems of Ordinary Differential
+!    Equations with Banded Jacobians," LLNL Report UCID/30132, April
+!    1976.
+! 5. A. C. Hindmarsh, "ODEPACK, a Systematized Collection of ODE
+!    Solvers," in Scientific Computing, R. S. Stepleman et al., eds.,
+!    North-Holland, Amsterdam, 1983, pp. 55-64.
+! 6. K. R. Jackson and R. Sacks-Davis, "An Alternative Implementation
+!    of Variable Step-Size Multistep Formulas for Stiff ODEs," ACM
+!    Trans. Math. Software, 6 (1980), pp. 295-318.
+!                     Summary of Usage
+! Communication between the user and the DVODE package, for normal
+! situations, is summarized here. This summary describes only a subset
+! of the full set of options available. See the full description for
+! details, including optional communication, nonstandard options,
+! and instructions for special situations. See also the example
+! problem (with program and output) following this summary.
+! A. First provide a subroutine of the form:
+!           SUBROUTINE F(NEQ, T, Y, YDOT)
+!           REAL(KIND=WP) T, Y(NEQ), YDOT(NEQ)
+! which supplies the vector function f by loading YDOT(i) with f(i).
+! B. Next determine (or guess) whether or not the problem is stiff.
+! Stiffness occurs when the Jacobian matrix df/dy has an eigenvalue
+! whose real part is negative and large in magnitude, compared to the
+! reciprocal of the t span of interest. If the problem is nonstiff,
+! use a method flag MF = 10. If it is stiff, there are four standard
+! choices for MF(21, 22, 24, 25), and DVODE requires the Jacobian
+! matrix in some form. In these cases (MF > 0), DVODE will use a
+! saved copy of the Jacobian matrix. If this is undesirable because of
+! storage limitations, set MF to the corresponding negative value
+! (-21, -22, -24, -25). (See full description of MF below.)
+! The Jacobian matrix is regarded either as full (MF = 21 or 22),
+! or banded (MF = 24 or 25). In the banded case, DVODE requires two
+! half-bandwidth parameters ML and MU. These are, respectively, the
+! widths of the lower and upper parts of the band, excluding the main
+! diagonal. Thus the band consists of the locations (i,j) with
+! i-ML <= j <= i+MU, and the full bandwidth is ML+MU+1.
+! C. If the problem is stiff, you are encouraged to supply the Jacobian
+! directly (MF = 21 or 24), but if this is not feasible, DVODE will
+! compute it internally by difference quotients (MF = 22 or 25).
+! If you are supplying the Jacobian, provide a subroutine of the form:
+!           SUBROUTINE JAC(NEQ, T, Y, ML, MU, PD, NROWPD)
+!           REAL(KIND=WP) T, Y(NEQ), PD(NROWPD,NEQ)
+! which supplies df/dy by loading PD as follows:
+!     For a full Jacobian (MF = 21), load PD(i,j) with df(i)/dy(j),
+! the partial derivative of f(i) with respect to y(j). (Ignore the
+! ML and MU arguments in this case.)
+!     For a banded Jacobian (MF = 24), load PD(i-j+MU+1,j) with
+! df(i)/dy(j), i.e. load the diagonal lines of df/dy into the rows of
+! PD from the top down.
+!     In either case, only nonzero elements need be loaded.
+! D. Write a main program which calls subroutine DVODE once for
+! each point at which answers are desired. This should also provide
+! for possible use of logical unit 6 for output of error messages
+! by DVODE. On the first call to DVODE, supply arguments as follows:
+! F      = Name of subroutine for right-hand side vector f.
+!          This name must be declared external in calling program.
+! NEQ    = Number of first order ODEs.
+! Y      = Array of initial values, of length NEQ.
+! T      = The initial value of the independent variable.
+! TOUT   = First point where output is desired (/= T).
+! ITOL   = 1 or 2 according as ATOL(below) is a scalar or array.
+! RTOL   = Relative tolerance parameter (scalar).
+! ATOL   = Absolute tolerance parameter (scalar or array).
+!          The estimated local error in Y(i) will be controlled so as
+!          to be roughly less (in magnitude) than
+!             EWT(i) = RTOL*ABS(Y(i)) + ATOL     if ITOL = 1, or
+!             EWT(i) = RTOL*ABS(Y(i)) + ATOL(i)  if ITOL = 2.
+!          Thus the local error test passes if, in each component,
+!          either the absolute error is less than ATOL(or ATOL(i)),
+!          or the relative error is less than RTOL.
+!          Use RTOL = 0.0 for pure absolute error control, and
+!          use ATOL = 0.0 (or ATOL(i) = 0.0) for pure relative error
+!          control. Caution: Actual (global) errors may exceed these
+!          local tolerances, so choose them conservatively.
+! ITASK  = 1 for normal computation of output values of Y at t = TOUT.
+! ISTATE = Integer flag (input and output). Set ISTATE = 1.
+! IOPT   = 0 to indicate no optional input used.
+! JAC    = Name of subroutine for Jacobian matrix (MF = 21 or 24).
+!          If used, this name must be declared external in calling
+!          program. If not used, pass a dummy name.
+! MF     = Method flag. Standard values are:
+!          10 for nonstiff (Adams) method, no Jacobian used.
+!          21 for stiff (BDF) method, user-supplied full Jacobian.
+!          22 for stiff method, internally generated full Jacobian.
+!          24 for stiff method, user-supplied banded Jacobian.
+!          25 for stiff method, internally generated banded Jacobian.
+! E. The output from the first call (or any call) is:
+!      Y = Array of computed values of y(t) vector.
+!      T = Corresponding value of independent variable (normally TOUT).
+! ISTATE = 2  if DVODE was successful, negative otherwise.
+!          -1 means excess work done on this call. (Perhaps wrong MF.)
+!          -2 means excess accuracy requested. (Tolerances too small.)
+!          -3 means illegal input detected. (See printed message.)
+!          -4 means repeated error test failures. (Check all input.)
+!          -5 means repeated convergence failures. (Perhaps bad
+!             Jacobian supplied or wrong choice of MF or tolerances.)
+!          -6 means error weight became zero during problem. (Solution
+!             component I vanished, and ATOL or ATOL(I) = 0.)
+! F. To continue the integration after a successful return, simply
+! reset TOUT and call DVODE again. No other parameters need be reset.
+!         Full Description of User Interface to DVODE
+! The user interface to DVODE consists of the following parts.
+! i.  The call sequence to subroutine DVODE, which is a driver
+!      routine for the solver. This includes descriptions of both
+!      the call sequence arguments and of user-supplied routines.
+!      Following these descriptions is
+!        * a description of optional input available through the
+!          call sequence,
+!        * a description of optional output (in the work arrays), and
+!        * instructions for interrupting and restarting a solution.
+! ii. Descriptions of other routines in the DVODE package that may be
+!      (optionally) called by the user. These provide the ability to
+!      alter error message handling, save and restore the internal
+!      PRIVATE variables, and obtain specified derivatives of the
+!      solution y(t).
+! iii. Descriptions of PRIVATE variables to be declared in overlay
+!      or similar environments.
+! iv. Description of two routines in the DVODE package, either of
+!      which the user may replace with his own version, if desired.
+!      these relate to the measurement of errors.
+! Part i. Call Sequence.
+! The call sequence parameters used for input only are
+!     F, NEQ, TOUT, ITOL, RTOL, ATOL, ITASK, IOPT, JAC, MF,
+! and those used for both input and output are
+!     Y, T, ISTATE.
+! The work arrays RUSER and IUSER are used for conditional and
+! optional input and optional output. (The term output here refers
+! to the return from subroutine DVODE to the user's calling program.)
+! The legality of input parameters will be thoroughly checked on the
+! initial call for the problem, but not checked thereafter unless a
+! change in input parameters is flagged by ISTATE = 3 in the input.
+! The descriptions of the call arguments are as follows.
+! F      = The name of the user-supplied subroutine defining the
+!          ODE system. The system must be put in the first-order
+!          form dy/dt = f(t,y), where f is a vector-valued function
+!          of the scalar t and the vector y. Subroutine F is to
+!          compute the function f. It is to have the form
+!               SUBROUTINE F(NEQ, T, Y, YDOT)
+!               REAL(KIND=WP) T, Y(NEQ), YDOT(NEQ)
+!          where NEQ, T, and Y are input, and the array YDOT = f(t,y)
+!          is output. Y and YDOT are arrays of length NEQ.
+!          Subroutine F should not alter Y(1),...,Y(NEQ).
+!          F must be declared EXTERNAL in the calling program.
+
+!          If quantities computed in the F routine are needed
+!          externally to DVODE, an extra call to F should be made
+!          for this purpose, for consistent and accurate results.
+!          If only the derivative dy/dt is needed, use DVINDY instead.
+! NEQ    = The size of the ODE system (number of first order
+!          ordinary differential equations). Used only for input.
+!          NEQ may not be increased during the problem, but
+!          can be decreased (with ISTATE = 3 in the input).
+! Y      = A real array for the vector of dependent variables, of
+!          length NEQ or more. Used for both input and output on the
+!          first call (ISTATE = 1), and only for output on other calls.
+!          On the first call, Y must contain the vector of initial
+!          values. In the output, Y contains the computed solution
+!          evaluated at T. If desired, the Y array may be used
+!          for other purposes between calls to the solver.
+!          This array is passed as the Y argument in all calls to
+!          F and JAC.
+! T      = The independent variable. In the input, T is used only on
+!          the first call, as the initial point of the integration.
+!          In the output, after each call, T is the value at which a
+!          computed solution Y is evaluated (usually the same as TOUT).
+!          On an error return, T is the farthest point reached.
+! TOUT   = The next value of t at which a computed solution is desired.
+!          Used only for input.
+!          When starting the problem (ISTATE = 1), TOUT may be equal
+!          to T for one call, then should /= T for the next call.
+!          For the initial T, an input value of TOUT /= T is used
+!          in order to determine the direction of the integration
+!          (i.e. the algebraic sign of the step sizes) and the rough
+!          scale of the problem. Integration in either direction
+!          (forward or backward in t) is permitted.
+!          If ITASK = 2 or 5 (one-step modes), TOUT is ignored after
+!          the first call (i.e. the first call with TOUT /= T).
+!          Otherwise, TOUT is required on every call.
+!          If ITASK = 1, 3, or 4, the values of TOUT need not be
+!          monotone, but a value of TOUT which backs up is limited
+!          to the current internal t interval, whose endpoints are
+!          TCUR - HU and TCUR. (See optional output, below, for
+!          TCUR and HU.)
+! ITOL   = An indicator for the type of error control. See
+!          description below under ATOL. Used only for input.
+! RTOL   = A relative error tolerance parameter, either a scalar or
+!          an array of length NEQ. See description below under ATOL.
+!          Input only.
+! ATOL   = An absolute error tolerance parameter, either a scalar or
+!          an array of length NEQ. Input only.
+!          The input parameters ITOL, RTOL, and ATOL determine
+!          the error control performed by the solver. The solver will
+!          control the vector e = (e(i)) of estimated local errors
+!          in Y, according to an inequality of the form
+!                      rms-norm of (E(i)/EWT(i)) <= 1,
+!          where       EWT(i) = RTOL(i)*ABS(Y(i)) + ATOL(i),
+!          and the rms-norm (root-mean-square norm) here is
+!          rms-norm(v) = sqrt(sum v(i)**2 / NEQ). Here EWT
+!          is a vector of weights which must always be positive, and
+!          the values of RTOL and ATOL should all be nonnegative.
+!          The following table gives the types (scalar/array) of
+!          RTOL and ATOL, and the corresponding form of EWT(i).
+!           ITOL    RTOL       ATOL          EWT(i)
+!            1     scalar     scalar     RTOL*ABS(Y(i)) + ATOL
+!            2     scalar     array      RTOL*ABS(Y(i)) + ATOL(i)
+!            3     array      scalar     RTOL(i)*ABS(Y(i)) + ATOL
+!            4     array      array      RTOL(i)*ABS(Y(i)) + ATOL(i)
+!          When either of these parameters is a scalar, it need not
+!          be dimensioned in the user's calling program.
+!          If none of the above choices (with ITOL, RTOL, and ATOL
+!          fixed throughout the problem) is suitable, more general
+!          error controls can be obtained by substituting
+!          user-supplied routines for the setting of EWT and/or for
+!          the norm calculation. See Part iv below.
+!          If global errors are to be estimated by making a repeated
+!          run on the same problem with smaller tolerances, then all
+!          components of RTOL and ATOL(i.e. of EWT) should be scaled
+!          down uniformly.
+! ITASK  = An index specifying the task to be performed.
+!          Input only. ITASK has the following values and meanings.
+!          1  means normal computation of output values of y(t) at
+!             t = TOUT(by overshooting and interpolating).
+!          2  means take one step only and return.
+!          3  means stop at the first internal mesh point at or
+!             beyond t = TOUT and return.
+!          4  means normal computation of output values of y(t) at
+!             t = TOUT but without overshooting t = TCRIT.
+!             TCRIT must be input as RUSER(1). TCRIT may be equal to
+!             or beyond TOUT, but not behind it in the direction of
+!             integration. This option is useful if the problem
+!             has a singularity at or beyond t = TCRIT.
+!          5  means take one step, without passing TCRIT, and return.
+!             TCRIT must be input as RUSER(1).
+!          Note:  If ITASK = 4 or 5 and the solver reaches TCRIT
+!          (within roundoff), it will return T = TCRIT(exactly) to
+!          indicate this (unless ITASK = 4 and TOUT comes before TCRIT,
+!          in which case answers at T = TOUT are returned first).
+! ISTATE = an index used for input and output to specify the
+!          the state of the calculation.
+!          In the input, the values of ISTATE are as follows.
+!          1  means this is the first call for the problem
+!             (initializations will be done). See note below.
+!          2  means this is not the first call, and the calculation
+!             is to continue normally, with no change in any input
+!             parameters except possibly TOUT and ITASK.
+!             (If ITOL, RTOL, and/or ATOL are changed between calls
+!             with ISTATE = 2, the new values will be used but not
+!             tested for legality.)
+!          3  means this is not the first call, and the
+
+!             calculation is to continue normally, but with
+!             a change in input parameters other than
+!             TOUT and ITASK. Changes are allowed in
+!             NEQ, ITOL, RTOL, ATOL, IOPT, MF, ML, MU,
+!             and any of the optional input except H0.
+!             (See IUSER description for ML and MU.)
+!          Caution:
+!          If you make a call to DVODE_F90 with ISTATE=3, you will
+!          first need to call SET_OPTS again, supplying the new
+!          necessary option values.
+!          Note:  A preliminary call with TOUT = T is not counted
+!          as a first call here, as no initialization or checking of
+!          input is done. (Such a call is sometimes useful to include
+!          the initial conditions in the output.)
+!          Thus the first call for which TOUT /= T requires
+!          ISTATE = 1 in the input.
+!          In the output, ISTATE has the following values and meanings.
+!           1  means nothing was done, as TOUT was equal to T with
+!              ISTATE = 1 in the input.
+!           2  means the integration was performed successfully.
+!          -1  means an excessive amount of work (more than MXSTEP
+!              steps) was done on this call, before completing the
+!              requested task, but the integration was otherwise
+!              successful as far as T. (MXSTEP is an optional input
+!              and is normally 5000.)  To continue, the user may
+!              simply reset ISTATE to a value > 1 and call again.
+!              (The excess work step counter will be reset to 0.)
+!              In addition, the user may increase MXSTEP to avoid
+!              this error return. (See optional input below.)
+!          -2  means too much accuracy was requested for the precision
+!              of the machine being used. This was detected before
+!              completing the requested task, but the integration
+!              was successful as far as T. To continue, the tolerance
+!              parameters must be reset, and ISTATE must be set
+!              to 3. The optional output TOLSF may be used for this
+!              purpose. (Note: If this condition is detected before
+!              taking any steps, then an illegal input return
+!              (ISTATE = -3) occurs instead.)
+!          -3  means illegal input was detected, before taking any
+!              integration steps. See written message for details.
+!              Note:  If the solver detects an infinite loop of calls
+!              to the solver with illegal input, it will cause
+!              the run to stop.
+!          -4  means there were repeated error test failures on
+!              one attempted step, before completing the requested
+!              task, but the integration was successful as far as T.
+!              The problem may have a singularity, or the input
+!              may be inappropriate.
+!          -5  means there were repeated convergence test failures on
+!              one attempted step, before completing the requested
+!              task, but the integration was successful as far as T.
+!              This may be caused by an inaccurate Jacobian matrix,
+!              if one is being used.
+!          -6  means EWT(i) became zero for some i during the
+!              integration. Pure relative error control (ATOL(i)=0.0)
+!              was requested on a variable which has now vanished.
+!              The integration was successful as far as T.
+!          Note:  Since the normal output value of ISTATE is 2,
+!          it does not need to be reset for normal continuation.
+!          Also, since a negative input value of ISTATE will be
+!          regarded as illegal, a negative output value requires the
+!          user to change it, and possibly other input, before
+!          calling the solver again.
+! IOPT   = An integer flag to specify whether or not any optional
+!          input is being used on this call. Input only.
+!          The optional input is listed separately below.
+!          IOPT = 0 means no optional input is being used.
+!                   Default values will be used in all cases.
+!          IOPT = 1 means optional input is being used.
+! RUSER  = A real working array (KPP_REAL).
+!          The length of RUSER must be at least 22
+!             20 + NYH * (MAXORD + 1) where
+!          NYH    = the initial value of NEQ,
+!          MAXORD = 12 (if METH = 1) or 5 (if METH = 2) (unless a
+!                   smaller value is given as an optional input),
+!          The first 22 words of RUSER are reserved for conditional
+!          and optional input and optional output.
+
+!          The following word in RUSER is a conditional input:
+!            RUSER(1) = TCRIT = critical value of t which the solver
+!                       is not to overshoot. Required if ITASK is
+!                       4 or 5, and ignored otherwise. (See ITASK.)
+! IUSER  = An integer work array. The length of IUSER must be at least 30.
+!             30        if MITER = 0 or 3 (MF = 10, 13, 20, 23), or
+!             30 + NEQ  otherwise (ABS(MF) = 11,12,14,15,16,17,21,22,
+!             24,25,26,27).
+!          The first 30 words of IUSER are reserved for conditional and
+!          optional input and optional output.
+
+!          The following 2 words in IUSER are conditional input:
+!            IUSER(1) = ML  These are the lower and upper
+!            IUSER(2) = MU  half-bandwidths, respectively, of the
+!                       banded Jacobian, excluding the main diagonal.
+!                       The band is defined by the matrix locations
+!                       (i,j) with i-ML <= j <= i+MU. ML and MU
+!                       must satisfy  0 <= ML,MU  <= NEQ-1.
+!                       These are required if MITER is 4 or 5, and
+!                       ignored otherwise. ML and MU may in fact be
+!                       the band parameters for a matrix to which
+!                       df/dy is only approximately equal.
+! Note:  The work arrays must not be altered between calls to DVODE
+! for the same problem, except possibly for the conditional and
+! optional input, and except for the last 3*NEQ words of RUSER.
+! The latter space is used for internal scratch space, and so is
+! available for use by the user outside DVODE between calls, if
+! desired (but not for use by F or JAC).
+! JAC    = The name of the user-supplied routine (MITER = 1 or 4 or 6)
+!          to compute the Jacobian matrix, df/dy, as a function of
+!          the scalar t and the vector y. It is to have the form
+!               SUBROUTINE JAC(NEQ, T, Y, ML, MU, PD, NROWPD)
+!               REAL(KIND=WP) T, Y(NEQ), PD(NROWPD,NEQ)
+!          where NEQ, T, Y, ML, MU, and NROWPD are input and the array
+!          PD is to be loaded with partial derivatives (elements of the
+!          Jacobian matrix) in the output. PD must be given a first
+!          dimension of NROWPD. T and Y have the same meaning as in
+!          Subroutine F.
+!               In the full matrix case (MITER = 1), ML and MU are
+!          ignored, and the Jacobian is to be loaded into PD in
+!          columnwise manner, with df(i)/dy(j) loaded into PD(i,j).
+!               In the band matrix case (MITER = 4), the elements
+!          within the band are to be loaded into PD in columnwise
+!          manner, with diagonal lines of df/dy loaded into the rows
+!          of PD. Thus df(i)/dy(j) is to be loaded into PD(i-j+MU+1,j).
+!          ML and MU are the half-bandwidth parameters. (See IUSER).
+!          The locations in PD in the two triangular areas which
+!          correspond to nonexistent matrix elements can be ignored
+!          or loaded arbitrarily, as they are overwritten by DVODE.
+!               In the sparse matrix case the elements of the matrix
+!          are determined by the sparsity structure given by the
+!          IA and JA pointer arrays. Refer to the documentation
+!          prologue for SET_OPTS for a description of the arguments
+!          for JAC since they differ from the dense and banded cases.
+!               JAC need not provide df/dy exactly. A crude
+!          approximation (possibly with a smaller bandwidth) will do.
+!               In either case, PD is preset to zero by the solver,
+!          so that only the nonzero elements need be loaded by JAC.
+!          Each call to JAC is preceded by a call to F with the same
+!          arguments NEQ, T, and Y. Thus to gain some efficiency,
+!          intermediate quantities shared by both calculations may be
+!          saved in a user common block by F and not recomputed by JAC,
+!          if desired. Also, JAC may alter the Y array, if desired.
+!          JAC must be declared external in the calling program.
+! MF     = The method flag. Used only for input. The legal values of
+!          MF are 10, 11, 12, 13, 14, 15, 16, 17, 20, 21, 22, 23, 24,
+!          25, 26, 27, -11, -12, -14, -15, -21, -22, -24, -25, -26,
+!          -27.
+!          MF is a signed two-digit integer, MF = JSV*(10*METH+MITER).
+!          JSV = SIGN(MF) indicates the Jacobian-saving strategy:
+!            JSV =  1 means a copy of the Jacobian is saved for reuse
+!                     in the corrector iteration algorithm.
+!            JSV = -1 means a copy of the Jacobian is not saved
+!                     (valid only for MITER = 1, 2, 4, or 5).
+!          METH indicates the basic linear multistep method:
+!            METH = 1 means the implicit Adams method.
+!            METH = 2 means the method based on backward
+!                     differentiation formulas (BDF-s).
+!          MITER indicates the corrector iteration method:
+!            MITER = 0 means functional iteration (no Jacobian matrix
+!                      is involved).
+!            MITER = 1 means chord iteration with a user-supplied
+!                      full (NEQ by NEQ) Jacobian.
+!            MITER = 2 means chord iteration with an internally
+!                      generated (difference quotient) full Jacobian
+!                      (using NEQ extra calls to F per df/dy value).
+!            MITER = 3 means chord iteration with an internally
+!                      generated diagonal Jacobian approximation
+!                      (using 1 extra call to F per df/dy evaluation).
+!            MITER = 4 means chord iteration with a user-supplied
+!                      banded Jacobian.
+!            MITER = 5 means chord iteration with an internally
+!                      generated banded Jacobian (using ML+MU+1 extra
+!                      calls to F per df/dy evaluation).
+!            MITER = 6 means chord iteration with a user-supplied
+!                      sparse Jacobian.
+!            MITER = 7 means chord iteration with an internally
+!                      generated sparse Jacobian
+!          If MITER = 1, 4, or 6 the user must supply a subroutine
+!          JAC(the name is arbitrary) as described above under JAC.
+!          For other values of MITER, a dummy argument can be used.
+!                         Optional Input
+! The following is a list of the optional input provided for in the
+! call sequence. (See also Part ii.)  For each such input variable,
+! this table lists its name as used in this documentation, its
+! location in the call sequence, its meaning, and the default value.
+! The use of any of this input requires IOPT = 1, and in that
+! case all of this input is examined. A value of zero for any of
+! these optional input variables will cause the default value to be
+! used. Thus to use a subset of the optional input, simply preload
+! locations 5 to 10 in RUSER and IUSER to 0.0 and 0, respectively,
+! and then set those of interest to nonzero values.
+! NAME    LOCATION      MEANING AND DEFAULT VALUE
+! H0      RUSER(5)  The step size to be attempted on the first step.
+!                   The default value is determined by the solver.
+! HMAX    RUSER(6)  The maximum absolute step size allowed.
+!                   The default value is infinite.
+! HMIN    RUSER(7)  The minimum absolute step size allowed.
+!                   The default value is 0. (This lower bound is not
+!                   enforced on the final step before reaching TCRIT
+!                   when ITASK = 4 or 5.)
+! MAXORD  IUSER(5)  The maximum order to be allowed. The default
+!                   value is 12 if METH = 1, and 5 if METH = 2.
+!                   If MAXORD exceeds the default value, it will
+!                   be reduced to the default value.
+!                   If MAXORD is changed during the problem, it may
+!                   cause the current order to be reduced.
+! MXSTEP  IUSER(6)  Maximum number of (internally defined) steps
+!                   allowed during one call to the solver.
+!                   The default value is 5000.
+! MXHNIL  IUSER(7)  Maximum number of messages printed (per problem)
+!                   warning that T + H = T on a step (H = step size).
+!                   This must be positive to result in a non-default
+!                   value. The default value is 10.
+!                          Optional Output
+! As optional additional output from DVODE, the variables listed
+! below are quantities related to the performance of DVODE
+! which are available to the user. These are communicated by way of
+! the work arrays, but also have internal mnemonic names as shown.
+! Except where stated otherwise, all of this output is defined
+! on any successful return from DVODE, and on any return with
+! ISTATE = -1, -2, -4, -5, or -6. On an illegal input return
+! (ISTATE = -3), they will be unchanged from their existing values
+! (if any), except possibly for TOLSF, LENRW, and LENIW.
+! On any error return, output relevant to the error will be defined,
+! as noted below.
+! NAME    LOCATION      MEANING
+! HU      RUSER(11) The step size in t last used (successfully).
+! HCUR    RUSER(12) The step size to be attempted on the next step.
+! TCUR    RUSER(13) The current value of the independent variable
+!                   which the solver has actually reached, i.e. the
+!                   current internal mesh point in t. In the output,
+!                   TCUR will always be at least as far from the
+!                   initial value of t as the current argument T,
+!                   but may be farther (if interpolation was done).
+! TOLSF   RUSER(14) A tolerance scale factor, greater than 1.0,
+!                   computed when a request for too much accuracy was
+!                   detected (ISTATE = -3 if detected at the start of
+!                   the problem, ISTATE = -2 otherwise). If ITOL is
+!                   left unaltered but RTOL and ATOL are uniformly
+!                   scaled up by a factor of TOLSF for the next call,
+!                   then the solver is deemed likely to succeed.
+!                   (The user may also ignore TOLSF and alter the
+!                   tolerance parameters in any other way appropriate.)
+! NST     IUSER(11) The number of steps taken for the problem so far.
+! NFE     IUSER(12) The number of f evaluations for the problem so far.
+! NJE     IUSER(13) The number of Jacobian evaluations so far.
+! NQU     IUSER(14) The method order last used (successfully).
+! NQCUR   IUSER(15) The order to be attempted on the next step.
+! IMXER   IUSER(16) The index of the component of largest magnitude in
+!                   the weighted local error vector (e(i)/EWT(i)),
+!                   on an error return with ISTATE = -4 or -5.
+! LENRW   IUSER(17) The length of RUSER actually required.
+!                   This is defined on normal returns and on an illegal
+!                   input return for insufficient storage.
+! LENIW   IUSER(18) The length of IUSER actually required.
+!                   This is defined on normal returns and on an illegal
+!                   input return for insufficient storage.
+! NLU     IUSER(19) The number of matrix LU decompositions so far.
+! NNI     IUSER(20) The number of nonlinear (Newton) iterations so far.
+! NCFN    IUSER(21) The number of convergence failures of the nonlinear
+!                   solver so far.
+! NETF    IUSER(22) The number of error test failures of the integrator
+!                   so far.
+! The following two arrays are segments of the RUSER array which
+! may also be of interest to the user as optional output.
+! For each array, the table below gives its internal name,
+! its base address in RUSER, and its description.
+!                  Interrupting and Restarting
+! If the integration of a given problem by DVODE is to be interrupted
+! and then later continued, such as when restarting an interrupted run
+! or alternating between two or more ODE problems, the user should save,
+! following the return from the last DVODE call prior to the
+! interruption, the contents of the call sequence variables and
+! internal PRIVATE variables, and later restore these values before the
+! next DVODE call for that problem. To save and restore the PRIVATE
+! variables, use subroutine DVSRCO, as described below in part ii.
+! In addition, if non-default values for either LUN or MFLAG are
+! desired, an extra call to XSETUN and/or XSETF should be made just
+! before continuing the integration. See Part ii below for details.
+! Part ii. Other Routines Callable.
+! The following are optional calls which the user may make to
+! gain additional capabilities in conjunction with DVODE.
+! (The routines XSETUN and XSETF are designed to conform to the
+! SLATEC error handling package.)
+!     FORM OF CALL                  FUNCTION
+!  CALL XSETUN(LUN)           Set the logical unit number, LUN, for
+!                             output of messages from DVODE, if
+!                             the default is not desired.
+!                             The default value of LUN is 6.
+!  CALL XSETF(MFLAG)          Set a flag to control the printing of
+!                             messages by DVODE.
+!                             MFLAG = 0 means do not print. (Danger:
+!                             This risks losing valuable information.)
+!                             Either of the above calls may be made at
+!                             any time and will take effect immediately.
+!  CALL DVINDY(...)           Provide derivatives of y, of various
+!                             orders, at a specified point T, if
+!                             desired. It may be called only after
+!                             a successful return from DVODE.
+! The detailed instructions for using DVINDY are as follows.
+! The form of the call is:
+!      CALL DVINDY(T,K,DKY,IFLAG)
+! The input parameters are:
+! T         = Value of independent variable where answers are desired
+!             (normally the same as the T last returned by DVODE).
+!             For valid results, T must lie between TCUR - HU and TCUR.
+!             (See optional output for TCUR and HU.)
+! K         = Integer order of the derivative desired. K must satisfy
+!             0 <= K <= NQCUR, where NQCUR is the current order
+!             (see optional output). The capability corresponding
+!             to K = 0, i.e. computing y(T), is already provided
+!             by DVODE directly. Since NQCUR >= 1, the first
+!             derivative dy/dt is always available with DVINDY.
+! The output parameters are:
+! DKY       = A real array of length NEQ containing the computed value
+!             of the K-th derivative of y(t).
+! IFLAG     = Integer flag, returned as 0 if K and T were legal,
+!             -1 if K was illegal, and -2 if T was illegal.
+!             On an error return, a message is also written.
+! Part iii. Optionally Replaceable Solver Routines.
+! Below are descriptions of two routines in the DVODE package which
+! relate to the measurement of errors. Either routine can be
+! replaced by a user-supplied version, if desired. However, since such
+! a replacement may have a major impact on performance, it should be
+! done only when absolutely necessary, and only with great caution.
+! (Note: The means by which the package version of a routine is
+! superseded by the user's version may be system-dependent.)
+! (a) DEWSET.
+! The following subroutine is called just before each internal
+! integration step, and sets the array of error weights, EWT, as
+! described under ITOL/RTOL/ATOL above:
+!     SUBROUTINE DEWSET(NEQ, ITOL, RTOL, ATOL, YCUR, EWT)
+! where NEQ, ITOL, RTOL, and ATOL are as in the DVODE call sequence,
+! YCUR contains the current dependent variable vector, and
+! EWT is the array of weights set by DEWSET.
+! If the user supplies this subroutine, it must return in EWT(i)
+! (i = 1,...,NEQ) a positive quantity suitable for comparison with
+! errors in Y(i). The EWT array returned by DEWSET is passed to the
+! DVNORM function (See below.), and also used by DVODE in the
+! computation of the optional output IMXER, the diagonal Jacobian
+! approximation, and the increments for difference quotient Jacobians.
+! In the user-supplied version of DEWSET, it may be desirable to use
+! the current values of derivatives of y. Derivatives up to order NQ
+! are available from the history array YH, described above under
+! Optional Output. In DEWSET, YH is identical to the YCUR array,
+! extended to NQ + 1 columns with a column length of NYH and scale
+! factors of h**j/factorial(j). On the first call for the problem,
+! given by NST = 0, NQ is 1 and H is temporarily set to 1.0.
+! NYH is the initial value of NEQ. Thus, for example, the current
+! value of dy/dt can be obtained as YCUR(NYH+i)/H  (i=1,...,NEQ)
+! (and the division by H is unnecessary when NST = 0).
+! (b) DVNORM.
+! The following is a function which computes the weighted
+! root-mean-square norm of a vector v:
+!     D = DVNORM(N, V, W)
+! where:
+!   N = the length of the vector,
+!   V = real array of length N containing the vector,
+!   W = real array of length N containing weights,
+!   D = sqrt((1/N) * sum(V(i)*W(i))**2).
+! DVNORM is called with N = NEQ and with W(i) = 1.0/EWT(i), where
+! EWT is as set by subroutine DEWSET.
+! If the user supplies this routine, it should return a nonnegative
+! value of DVNORM suitable for use in the error control in DVODE.
+! None of the arguments should be altered by DVNORM.
+! For example, a user-supplied DVNORM function might:
+!   -substitute a max-norm of (V(i)*W(i)) for the rms-norm, or
+!   -ignore some components of V in the norm, with the effect of
+!    suppressing the error control on those components of Y.
+!_______________________________________________________________________
+! Other Routines in the DVODE Package
+
+! In addition to subroutine DVODE, the DVODE package includes the
+! following subroutines and function routines (not user callable):
+!  DVHIN       computes an approximate step size for the initial step.
+!  DVINDY_CORE computes an interpolated value of the y vector at t=TOUT.
+!  DVINDY      computes an interpolated value of the y vector at t=TOUT.
+!              (user callable)
+!  DVSTEP      is the core integrator, which does one step of the
+!              integration and the associated error control.
+!  DVSET       sets all method coefficients and test constants.
+!  DVNLSD,     solves the underlying nonlinear system -- the corrector.
+!  DVNLSS28
+!  DVJAC,      computes and preprocesses the Jacobian matrix J = df/dy
+!  DVJACS28    and the Newton iteration matrix P = I - (h/l1)*J.
+!  DVSOL,      manages solution of linear system in chord iteration.
+!  DVSOLS28
+!  DVJUST      adjusts the history array on a change of order.
+!  DEWSET      sets the error weight vector EWT before each step.
+!  DVNORM      computes the weighted r.m.s. norm of a vector.
+!  DACOPY      is a routine to copy a two-dimensional array to another.
+!  DGEFA_F90 and DGESL_F90 are routines from LINPACK for solving full
+!              systems of linear algebraic equations.
+!  DGBFA_F90 and DGBSL_F90 are routines from LINPACK for solving banded
+!              linear systems.
+!  DAXPY_F90, DSCAL_F90, and DCOPY_F90 are basic linear algebra modules
+!              (BLAS).
+!  DVCHECK     does preliminary checking for roots, and serves as an
+!              interface between subroutine DVODE_F90 and subroutine
+!              DVROOTS.
+!  DVROOTS     finds the leftmost root of a set of functions.
+! ______________________________________________________________________
+! Section 10.  Example Usage
+!
+! MODULE example1
+! The following is a simple example problem, with the coding
+! needed for its solution by DVODE_F90. The problem is from
+! chemical kinetics, and consists of the following three rate
+! equations:
+!     dy1/dt = -.04d0*y1 + 1.d4*y2*y3
+!     dy2/dt = .04d0*y1 - 1.d4*y2*y3 - 3.d7*y2**2
+!     dy3/dt = 3.d7*y2**2
+! on the interval from t = 0.0d0 to t = 4.d10, with initial
+! conditions y1 = 1.0d0, y2 = y3 = 0.0d0. The problem is stiff.
+! The following coding solves this problem with DVODE_F90,
+! using a user supplied Jacobian and printing results at
+! t = .4, 4.,...,4.d10. It uses ITOL = 2 and ATOL much smaller
+! for y2 than y1 or y3 because y2 has much smaller values. At
+! the end of the run, statistical quantities of interest are
+! printed. (See optional output in the full DVODE description
+! below.) Output is written to the file example1.dat.
+! CONTAINS
+!     SUBROUTINE FEX(NEQ, T, Y, YDOT)
+!     IMPLICIT NONE
+!     INTEGER NEQ
+!     DOUBLE PRECISION T, Y, YDOT
+!     DIMENSION Y(NEQ), YDOT(NEQ)
+!     YDOT(1) = -.04D0*Y(1) + 1.D4*Y(2)*Y(3)
+!     YDOT(3) = 3.E7*Y(2)*Y(2)
+!     YDOT(2) = -YDOT(1) - YDOT(3)
+!     RETURN
+!     END SUBROUTINE FEX
+!     SUBROUTINE JEX(NEQ, T, Y, ML, MU, PD, NRPD)
+!     IMPLICIT NONE
+!     INTEGER NEQ,ML,MU,NRPD
+!     DOUBLE PRECISION PD, T, Y
+!     DIMENSION Y(NEQ), PD(NRPD,NEQ)
+!     PD(1,1) = -.04D0
+!     PD(1,2) = 1.D4*Y(3)
+!     PD(1,3) = 1.D4*Y(2)
+!     PD(2,1) = .04D0
+!     PD(2,3) = -PD(1,3)
+!     PD(3,2) = 6.E7*Y(2)
+!     PD(2,2) = -PD(1,2) - PD(3,2)
+!     RETURN
+!     END SUBROUTINE JEX
+! END MODULE example1
+!******************************************************************
+
+!     PROGRAM runexample1
+!     USE DVODE_F90_M
+!     USE example1
+!     IMPLICIT NONE
+!     DOUBLE PRECISION ATOL, RTOL, T, TOUT, Y, RSTATS
+!     INTEGER NEQ, ITASK, ISTATE, ISTATS, IOUT, IERROR, I
+!     DIMENSION Y(3), ATOL(3), RSTATS(22), ISTATS(31)
+!     TYPE(VODE_OPTS) :: OPTIONS
+!     OPEN(UNIT=6, FILE = 'example1.dat')
+!     IERROR = 0
+!     NEQ = 3
+!     Y(1) = 1.0D0
+!     Y(2) = 0.0D0
+!     Y(3) = 0.0D0
+!     T = 0.0D0
+!     TOUT = 0.4D0
+!     RTOL = 1.D-4
+!     ATOL(1) = 1.D-8
+!     ATOL(2) = 1.D-14
+!     ATOL(3) = 1.D-6
+!     ITASK = 1
+!     ISTATE = 1
+!     OPTIONS = SET_OPTS(DENSE_J=.TRUE.,ABSERR_VECTOR=ATOL, &
+!       RELERR=RTOL, USER_SUPPLIED_JACOBIAN=.TRUE.)
+!     DO IOUT = 1,12
+!       CALL DVODE_F90(FEX,NEQ,Y,T,TOUT,ITASK,ISTATE,OPTIONS,J_FCN=JEX)
+!       CALL GET_STATS(RSTATS,ISTATS)
+!       WRITE(6,63)T,Y(1),Y(2),Y(3)
+!       DO I = 1, NEQ
+!          IF (Y(I) < 0.0D0) IERROR = 1
+!       END DO
+!       IF (ISTATE < 0) THEN
+!          WRITE(6,64)ISTATE
+!          STOP
+!       END IF
+!       TOUT = TOUT*10.0D0
+!     END DO
+!     WRITE(6,60) ISTATS(11),ISTATS(12),ISTATS(13),ISTATS(19), &
+!                 ISTATS(20),ISTATS(21),ISTATS(22)
+!     IF (IERROR == 1) THEN
+!        WRITE(6,61)
+!     ELSE
+!        WRITE(6,62)
+!     END IF
+! 60  FORMAT(/'  No. steps =',I4,'   No. f-s =',I4,        &
+!             '  No. J-s =',I4,'   No. LU-s =',I4/         &
+!             '  No. nonlinear iterations =',I4/           &
+!             '  No. nonlinear convergence failures =',I4/ &
+!             '  No. error test failures =',I4/)
+! 61  FORMAT(/' An error occurred.')
+! 62  FORMAT(/' No errors occurred.')
+! 63  FORMAT(' At t =',D12.4,'   y =',3D14.6)
+! 64  FORMAT(///' Error halt: ISTATE =',I3)
+!     STOP
+!     END PROGRAM runexample1
+!
+! MODULE example2
+! The following is a modification of the previous example
+! program to illustrate root finding. The problem is from
+! chemical kinetics, and consists of the following three
+! rate equations:
+!     dy1/dt = -.04d0*y1 + 1.d4*y2*y3
+!     dy2/dt = .04d0*y1 - 1.d4*y2*y3 - 3.d7*y2**2
+!     dy3/dt = 3.d7*y2**2
+! on the interval from t = 0.0d0 to t = 4.d10, with initial
+! conditions y1 = 1.0d0, y2 = y3 = 0.0d0. The problem is stiff.
+! In addition, we want to find the values of t, y1, y2,
+! and y3 at which:
+!   (1) y1 reaches the value 1.d-4, and
+!   (2) y3 reaches the value 1.d-2.
+! The following coding solves this problem with DVODE_F90
+! using an internally generated dense Jacobian and
+! printing results at t = .4, 4., ..., 4.d10, and at the
+! computed roots. It uses ITOL = 2 and ATOL much smaller
+! for y2 than y1 or y3 because y2 has much smaller values.
+! At the end of the run, statistical quantities of interest
+! are printed (see optional outputs in the full description
+! below). Output is written to the file example2.dat.
+! CONTAINS
+!     SUBROUTINE FEX (NEQ, T, Y, YDOT)
+!     IMPLICIT NONE
+!     INTEGER NEQ
+!     DOUBLE PRECISION T, Y, YDOT
+!     DIMENSION Y(3), YDOT(3)
+!     YDOT(1) = -0.04D0*Y(1) + 1.0D4*Y(2)*Y(3)
+!     YDOT(3) = 3.0D7*Y(2)*Y(2)
+!     YDOT(2) = -YDOT(1) - YDOT(3)
+!     RETURN
+!     END SUBROUTINE FEX
+!     SUBROUTINE GEX (NEQ, T, Y, NG, GOUT)
+!     IMPLICIT NONE
+!     INTEGER NEQ, NG
+!     DOUBLE PRECISION T, Y, GOUT
+!     DIMENSION Y(3), GOUT(2)
+!     GOUT(1) = Y(1) - 1.0D-4
+!     GOUT(2) = Y(3) - 1.0D-2
+!     RETURN
+!     END SUBROUTINE GEX
+! END MODULE example2
+!******************************************************************
+!     PROGRAM runexample2
+!     USE DVODE_F90_M
+!     USE example2
+!     IMPLICIT NONE
+!     INTEGER ITASK, ISTATE, NG, NEQ, IOUT, JROOT, ISTATS, &
+!     IERROR, I
+!     DOUBLE PRECISION ATOL, RTOL, RSTATS, T, TOUT, Y
+!     DIMENSION Y(3), ATOL(3), RSTATS(22), ISTATS(31), JROOT(2)
+!     TYPE(VODE_OPTS) :: OPTIONS
+!     OPEN (UNIT=6, FILE='example2.dat')
+!     IERROR = 0
+!     NEQ = 3
+!     Y(1) = 1.0D0
+!     Y(2) = 0.0D0
+!     Y(3) = 0.0D0
+!     T = 0.0D0
+!     TOUT = 0.4D0
+!     RTOL = 1.0D-4
+!     ATOL(1) = 1.0D-8
+!     ATOL(2) = 1.0D-12
+!     ATOL(3) = 1.0D-8
+!     ITASK = 1
+!     ISTATE = 1
+!     NG = 2
+!     OPTIONS = SET_OPTS(DENSE_J=.TRUE.,RELERR=RTOL, &
+!       ABSERR_VECTOR=ATOL,NEVENTS=NG)
+!     DO 40 IOUT = 1,12
+! 10    CONTINUE
+!       CALL DVODE_F90(FEX,NEQ,Y,T,TOUT,ITASK,ISTATE,OPTIONS,G_FCN=GEX)
+!       CALL GET_STATS(RSTATS, ISTATS, NG, JROOT)
+!       WRITE(6,20) T, Y(1), Y(2), Y(3)
+!       DO I = 1, NEQ
+!          IF (Y(I) < 0.0D0) IERROR = 1
+!       END DO
+! 20    FORMAT(' At t =',D12.4,'   Y =',3D14.6)
+!       IF (ISTATE < 0) GOTO 60
+!       IF (ISTATE == 2) GOTO 40
+!       WRITE(6,30) JROOT(1),JROOT(2)
+! 30    FORMAT(5X,' The above line is a root, JROOT =',2I5)
+!       ISTATE = 2
+!       GOTO 10
+! 40  TOUT = TOUT*10.0D0
+!     WRITE(6,50) ISTATS(11), ISTATS(12), ISTATS(13), ISTATS(10)
+!     IF (IERROR == 1) THEN
+!        WRITE(6,61)
+!     ELSE
+!        WRITE(6,62)
+!     END IF
+! 50  FORMAT(/' No. steps =',I4,'  No. f-s =',I4,'  No. J-s =',I4, &
+!     '  No. g-s =',I4/)
+!     STOP
+! 60  WRITE(6,70) ISTATE
+! 61  FORMAT(/' An error occurred.')
+! 62  FORMAT(/' No errors occurred.')
+! 70  FORMAT(///' Error halt.. ISTATE =',I3)
+!     STOP
+!     END PROGRAM runexample2
+!_______________________________________________________________________
+
+
+      SUBROUTINE VODE_F90(F,NEQ,Y,T,TOUT,ITASK,ISTATE,OPTS,J_FCN,G_FCN)
+! ..
+! This is an interface for DVODE to allow JAC and GFUN to be
+! OPTIONAL arguments.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Structure Arguments ..
+        TYPE (VODE_OPTS) :: OPTS
+! ..
+! .. Scalar Arguments ..
+        KPP_REAL, INTENT (INOUT) :: T, TOUT
+        INTEGER, INTENT (INOUT) :: ISTATE
+        INTEGER, INTENT (IN) :: ITASK, NEQ
+! ..
+! .. Array Arguments ..
+        KPP_REAL, INTENT (INOUT) :: Y(*)
+! ..
+! .. Subroutine Arguments ..
+        OPTIONAL :: G_FCN, J_FCN
+!        EXTERNAL J_FCN
+! ..
+! .. Subroutine Interfaces ..
+     INTERFACE
+       SUBROUTINE F(NEQ,T,Y,YDOT)
+         USE KPP_ROOT_Precision
+         INTEGER, PARAMETER :: WP = KIND(1.0D0)
+         INTEGER NEQ
+         KPP_REAL T
+         KPP_REAL, DIMENSION(NEQ) :: Y, YDOT
+         INTENT(IN)  :: NEQ, T, Y
+         INTENT(OUT) :: YDOT
+       END SUBROUTINE F
+     END INTERFACE
+
+     INTERFACE
+       SUBROUTINE G_FCN(NEQ,T,Y,NG,GROOT)
+         USE KPP_ROOT_Precision
+         INTEGER, PARAMETER :: WP = KIND(1.0D0)
+         INTEGER NEQ, NG
+         KPP_REAL T
+         KPP_REAL, DIMENSION(NEQ) :: Y
+         KPP_REAL, DIMENSION(NG) :: GROOT(NG)
+         INTENT(IN)  :: NEQ, T, Y, NG
+         INTENT(OUT) :: GROOT
+       END SUBROUTINE G_FCN
+     END INTERFACE
+
+!    Note:
+!    The best we can do here is to declare J_FCN to be
+!    external. The interface for a sparse problem differs
+!    from that for a banded or dense problem. The following
+!    would suffuce for a banded or dense problem.
+!    INTERFACE
+!      SUBROUTINE J_FCN(NEQ,T,Y,ML,MU,PD,NROWPD)
+!        INTEGER, PARAMETER :: WP = KIND(1.0D0)
+!        INTEGER NEQ, ML, MU, NROWPD
+!        KPP_REAL T
+!        KPP_REAL, DIMENSION(NEQ) :: Y
+!        KPP_REAL, DIMENSION(NEQ) :: PD(NROWPD,NEQ)
+!        INTENT(IN)  :: NEQ, T, Y, ML, MU, NROWPD
+!        INTENT(INOUT) :: PD
+!      END SUBROUTINE J_FCN
+!    END INTERFACE
+!    The following would suffice for a sparse problem.
+    INTERFACE
+      SUBROUTINE J_FCN(NEQ,T,Y,IA,JA,NZ,P)
+        USE KPP_ROOT_Precision
+        INTEGER NEQ, NZ
+        KPP_REAL T
+        KPP_REAL Y(NEQ), P(NEQ)
+        INTEGER IA(*), JA(*)
+        INTENT(IN) :: NEQ, T, Y
+        INTENT(INOUT) IA, JA, NZ, P
+      END SUBROUTINE J_FCN
+    END INTERFACE
+! ..
+! .. Local Scalars ..
+        INTEGER :: HOWCALL, METH, MFA, MITER, MOSS, NG
+        CHARACTER (80) :: MSG
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, PRESENT
+! ..
+! .. FIRST EXECUTABLE STATEMENT VODE_F90
+! ..
+!       Check that SET_OPTS has been called.
+        IF (.NOT.OPTS_CALLED) THEN
+          MSG = 'You have not called SET_OPTS before'
+          CALL XERRDV(MSG,10,1,0,0,0,0,ZERO,ZERO)
+          MSG = 'calling DVODE_F90 the first time.'
+          CALL XERRDV(MSG,10,2,0,0,0,0,ZERO,ZERO)
+        END IF
+
+!       Check that JAC is present if it is needed.
+        IF (PRESENT(J_FCN)) THEN
+        ELSE
+!         Note:
+!         MOSS is irrelevant. OPTS%MF is two digits after the
+!         call to SET_OPTS.
+          MFA = ABS(OPTS%MF)
+          MOSS = MFA/100
+          METH = (MFA-100*MOSS)/10
+          MITER = MFA - 100*MOSS - 10*METH
+          IF (MITER==1 .OR. MITER==4 .OR. MITER==6) THEN
+            MSG = 'You have specified a value of the integration'
+            CALL XERRDV(MSG,20,1,0,0,0,0,ZERO,ZERO)
+            MSG = 'method flag MF which requires that you supply'
+            CALL XERRDV(MSG,20,1,0,0,0,0,ZERO,ZERO)
+            MSG = 'a Jacobian subroutine JAC; but FAC is not'
+            CALL XERRDV(MSG,20,1,0,0,0,0,ZERO,ZERO)
+            MSG = 'present in the argument list.'
+            CALL XERRDV(MSG,20,2,0,0,0,0,ZERO,ZERO)
+          END IF
+        END IF
+
+!       Check that GFUN is present if it is needed.
+
+        IF (PRESENT(G_FCN)) THEN
+        ELSE
+          NG = OPTS%NG
+          IF (NG>0) THEN
+            MSG = 'You have indicated that events are present but'
+            CALL XERRDV(MSG,30,1,0,0,0,0,ZERO,ZERO)
+            MSG = 'you have not supplied a GFUN subroutine.'
+            CALL XERRDV(MSG,30,2,0,0,0,0,ZERO,ZERO)
+          END IF
+        END IF
+
+!     Determine how DVODE will be called.
+
+!     HOWCALL = 1: JDUMMY, GDUMMY
+!               2: JAC, GFUN
+!               3: JAC, GDUMMY
+!               4: JDUMMY, GFUN
+        HOWCALL = 1
+        IF (PRESENT(J_FCN)) THEN
+          IF (PRESENT(G_FCN)) THEN
+            HOWCALL = 2
+          ELSE
+            HOWCALL = 3
+          END IF
+        ELSE
+          IF (PRESENT(G_FCN)) THEN
+            HOWCALL = 4
+          ELSE
+            HOWCALL = 1
+          END IF
+        END IF
+
+!       Call DVODE to do the integration.
+
+        IF (HOWCALL==1) THEN
+          CALL DVODE(F,NEQ,Y,T,TOUT,ITASK,ISTATE,OPTS,JDUMMY,GDUMMY)
+        ELSE IF (HOWCALL==2) THEN
+          CALL DVODE(F,NEQ,Y,T,TOUT,ITASK,ISTATE,OPTS,J_FCN,G_FCN)
+        ELSE IF (HOWCALL==3) THEN
+          CALL DVODE(F,NEQ,Y,T,TOUT,ITASK,ISTATE,OPTS,J_FCN,GDUMMY)
+        ELSE IF (HOWCALL==4) THEN
+          CALL DVODE(F,NEQ,Y,T,TOUT,ITASK,ISTATE,OPTS,JDUMMY,G_FCN)
+        END IF
+        RETURN
+
+      END SUBROUTINE VODE_F90
+!_______________________________________________________________________
+
+      SUBROUTINE JDUMMY(NEQ,T,Y,ML,MU,PD,NROWPD)
+! ..
+! This is a dummy Jacobian subroutine for VODE_F90 (never called).
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        KPP_REAL :: T
+        INTEGER :: ML, MU, NEQ, NROWPD, I
+        LOGICAL DUMMY
+! ..
+! .. Array Arguments ..
+        KPP_REAL :: PD(NROWPD,*), Y(*)
+! ..
+      INTENT(IN) T, Y, ML, MU, NROWPD
+      INTENT(INOUT) PD
+! ..
+! .. FIRST EXECUTABLE STATEMENT JDUMMY
+! ..
+!       Get rid of some needless compiler warning messages.
+        DUMMY = .FALSE.
+        IF (DUMMY) THEN
+          I = NEQ
+          I = ML
+          I = MU
+          I = NROWPD
+          PD(1,1) = T
+          PD(1,1) = Y(1)
+          PD(1,1) = DBLE(REAL(I))
+        END IF
+        RETURN
+
+      END SUBROUTINE JDUMMY
+!_______________________________________________________________________
+
+      SUBROUTINE GDUMMY(NEQ,T,Y,NG,GOUT)
+! ..
+! This is a dummy event subroutine for VODE_F90 (never called).
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        KPP_REAL :: T
+        INTEGER :: NEQ, NG, I
+        LOGICAL DUMMY
+! ..
+! .. Array Arguments ..
+        KPP_REAL :: GOUT(*), Y(*)
+! ..
+      INTENT(IN) NEQ, T, Y, NG
+      INTENT(OUT) GOUT
+! ..
+! .. FIRST EXECUTABLE STATEMENT JDUMMY
+! ..
+!       Get rid of some needless compiler warning messages.
+        DUMMY = .FALSE.
+        IF (DUMMY) THEN
+          I = NEQ
+          I = NG
+          GOUT(1) = T
+          GOUT(1) = Y(1)
+          GOUT(1) = DBLE(REAL(I))
+        END IF
+        RETURN
+
+      END SUBROUTINE GDUMMY
+!_______________________________________________________________________
+
+  SUBROUTINE SET_OPTS_2(HMAX,HMIN,MXSTEP)
+! ..
+! Allow the maximum step size, the minimum step size, and the maximum
+! number of steps to be changed without restarting the integration.
+! ..
+!                     Quick Summary of Options
+! HMAX                   - Maximum step size in DVODE 
+! HMIN                   - Minimum step size in DVODE 
+! MXSTEP                 - Maximum number of integration steps in DVODE
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        KPP_REAL, OPTIONAL, INTENT (IN) :: HMAX, HMIN
+        INTEGER, OPTIONAL, INTENT (IN) :: MXSTEP
+! ..
+! .. Local Scalars ..
+        CHARACTER (80) :: MSG
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ALLOCATED, PRESENT
+! ..
+! .. FIRST EXECUTABLE STATEMENT SET_OPTS_2
+! ..
+!       Check that SET_OPTS has been called:
+        IF (.NOT.OPTS_CALLED) THEN
+          MSG = 'You have not called SET_OPTS before'
+          CALL XERRDV(MSG,40,1,0,0,0,0,ZERO,ZERO)
+          MSG = 'calling subroutine SET_OPTS_2.'
+          CALL XERRDV(MSG,40,2,0,0,0,0,ZERO,ZERO)
+        END IF
+        IF (PRESENT(HMAX)) THEN
+          RUSER(6) = HMAX
+          MSG = 'HMAX changed in SET_OPTS_2.'
+          CALL XERRDV(MSG,50,1,0,0,0,1,HMAX,ZERO)
+        END IF
+        IF (PRESENT(HMIN)) THEN
+          RUSER(7) = HMIN
+          MSG = 'HMIN changed in SET_OPTS_2.'
+          CALL XERRDV(MSG,60,1,0,0,0,1,HMIN,ZERO)
+        END IF
+        IF (PRESENT(MXSTEP)) THEN
+          IUSER(6) = MXSTEP
+          MSG = 'MXSTEP changed in SET_OPTS_2.'
+          CALL XERRDV(MSG,70,1,1,MXSTEP,0,0,ZERO,ZERO)
+        END IF
+
+  END SUBROUTINE SET_OPTS_2
+!_______________________________________________________________________
+
+  FUNCTION SET_NORMAL_OPTS(DENSE_J, BANDED_J, SPARSE_J,                &
+    USER_SUPPLIED_JACOBIAN, LOWER_BANDWIDTH, UPPER_BANDWIDTH,          &
+    RELERR, ABSERR, ABSERR_VECTOR, NEVENTS) RESULT(OPTS)
+
+! FUNCTION SET_NORMAL_OPTS:
+!    Jacobian type:
+!       DENSE_J, BANDED_J, SPARSE_J
+!    Analytic Jacobian:
+!       USER_SUPPLIED_JACOBIAN
+!    If banded Jacobian:
+!       LOWER_BANDWIDTH,UPPER_BANDWIDTH
+!    Error tolerances:
+!       RELERR, ABSERR, ABSERR_VECTOR
+!    Rootfinding:
+!       NEVENTS
+! RESULT(OPTS)
+
+! Note:
+! Invoking SET_NORMAL_OPTS causes an integration restart. A common
+! situation is one in which all you wish to change is one of the
+! vode.f77 optional parameters HMAX, HMIN, or MXSTEP. Once the
+! integration is started and this is all you wish to do, you can
+! change any of these parameters without restarting the integration
+! simply by calling subroutine SET_OPTS_2:
+!      CALL SET_OPTS_2(HMAX,HMIN,MXSTEP)
+! Each of the three arguments is optional and only the ones actually
+! supplied will be used. Changes will take effect in the same manner
+! as in the VODE.f77 solver.
+!
+! NORMAL_OPTIONS sets user parameters for DVODE via keywords.
+! Values that are defined herein will be used internally by
+! DVODE. All option keywords are OPTIONAL and order is not
+! important. These options should be adequate for most problems.
+! If you wish to use more specialized options, you must use
+! SET_INTERMEDIATE_OPTS or SET_OPTS rather than NORMAL_OPTS.
+! If you wish to use SET_INTERMEDIATE_OPTS or SET_OPTS, you
+! may use any of the SET_NORMAL_OPTS keywords or any of the
+! keywords available for these two functions. Of course, you
+! may opt to simply use SET_OPTS for all problems.
+
+! Note that DVODE_F90 requires that one of SET_NORMAL_OPTS or
+! SET_INTERMEDIATE_OPTS or SET_OPTS is called before the first
+! time DVODE_F90 is called.
+!
+! Important Note:
+! If feasible, you should use the dense or banded option; but
+! SET_NORMAL_OPTS allows you to use a sparse internal Jacobian
+! (i.e., one that is determined using finite differences) and
+! structure pointere array that are determined internally
+! using finite differences. If any of the following are true
+!    (1) DVODE_F90 doesn't perform satisfactorily for
+!        your problem,
+!    (2) you are solving a very large problem,
+!    (3) you wish to supply the sparse pointer arrays
+!        directly,
+!    (4) you wish to supply an analytical sparse Jacobian,
+! or
+!    (5) you wish to use one of the specialized sparse
+!        Jacobian options,
+! you are encouraged to use SET_OPTS which contains several
+! provisions for solving sparse problems more efficiently.
+
+! Option Types:
+! DENSE_J                - logical
+! BANDED_J               - logical
+! SPARSE_J               - logical
+! USER_SUPPLIED_JACOBIAN - logical
+! LOWER_BANDWIDTH        - integer
+! UPPER_BANDWIDTH        - integer
+! RELERR                 - KPP_REAL scalar
+! ABSERR                 - KPP_REAL scalar
+! ABSERR_VECTOR          - KPP_REAL vector
+! NEVENTS                - integer
+! Options:
+! ABSERR                 = Absolute error tolerance
+! ABSERR_VECTOR          = Vector of absolute error tolerances
+! RELERR                 = Scalar relative error tolerance
+! NEVENTS                = Number of event functions (requires
+!                          user-supplied GFUN)
+! DENSE_J                = Use dense linear algebra if .TRUE.
+! BANDED_J               = Use banded linear algebra if .TRUE.
+!   LOWER_BANDWIDTH      = Lower bandwidth of the Jacobian
+!                          (required if BANDED_J = .TRUE.)
+!   UPPER_BANDWIDTH      = Upper bandwidth of the Jacobian
+!                          (required if BANDED_J = .TRUE.)
+! SPARSE_J               = Use sparse linear algebra if .TRUE.
+! USER_SUPPLIED_JACOBIAN = Exact Jacobian option
+!                          (requires user-supplied JAC;
+!                          ignored for SPARSE_J=.TRUE.)
+!
+! Note: DENSE_J takes precedence over BANDED_J which in turn
+! takes precedence over SPARSE_J if more than one is supplied.
+! If neither of the three flags is present, the nonstiff Adams
+! option will be used. Similiarly, ABSERR_VECTOR takes
+! precedence over ABSERR.
+!
+! Note on Jacobian Storage Formats:
+!
+! If you supply an analytic Jacobian PD, load the
+! Jacobian elements DF(I)/DY(J), the partial
+! derivative of F(I) with respect to Y(J), using
+! the following formats. Here, Y is the solution,
+! F is the derivative, and PD is the Jacobian.
+!
+! For a full Jacobian, load PD(I,J) with DF(I)/DY(J).
+! Your code might look like this:
+!    DO J = 1, NEQ
+!       DO I = 1, NEQ
+!          PD(I,J) = ... DF(I)/DY(J)
+!       END DO
+!    END DO       
+!
+! For a banded Jacobian, load PD(I-J+MU+1,J) with
+! DF(I)/DY(J) where ML is the lower bandwidth
+! and MU is the upper bandwidth of the Jacobian.
+! Your code might look like this:
+!    DO J = 1, NEQ
+!       I1 = MAX(1,J-ML)
+!       I2 = MIN(N,J+MU)
+!       DO I = I1, I2
+!          K = I-J+MU+1
+!          PD(K,J) = ... DF(I)/DY(J)
+!       END DO
+!    END DO
+! ..
+     IMPLICIT NONE
+! ..
+! .. Function Return Value ..
+        TYPE (VODE_OPTS) :: OPTS
+! ..
+! .. Scalar Arguments ..
+        KPP_REAL, OPTIONAL, INTENT (IN) :: ABSERR,RELERR
+        INTEGER, OPTIONAL, INTENT (IN) :: LOWER_BANDWIDTH,   &
+          NEVENTS,UPPER_BANDWIDTH
+        LOGICAL, OPTIONAL, INTENT (IN) :: BANDED_J, DENSE_J, &
+          SPARSE_J, USER_SUPPLIED_JACOBIAN
+! ..
+! .. Array Arguments ..
+        KPP_REAL, OPTIONAL, INTENT (IN) :: ABSERR_VECTOR(:)
+! ..
+! .. Local Scalars ..
+        INTEGER :: IER,IOPT,METH,MF,MFA,MFSIGN,MITER,ML,MOSS, &
+          MU,NAE,NG,NRE
+        LOGICAL :: BANDED,DENSE,SPARSE
+        CHARACTER (80) :: MSG
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ALLOCATED, IABS, MAX, MINVAL, PRESENT, SIGN, SIZE
+! ..
+! .. FIRST EXECUTABLE STATEMENT SET_NORMAL_OPTS
+! ..
+        RUSER(1:LRWUSER) = ZERO
+        IUSER(1:LIWUSER) = 0
+        
+!       Allow default error tolerances?
+        ALLOW_DEFAULT_TOLS = .FALSE.
+
+!       Maximum number of consecutive error test failures?
+        CONSECUTIVE_EFAILS = KFH
+
+!       Maximum number of consecutive corrector iteration failures?
+        CONSECUTIVE_CFAILS = MXNCF
+
+!       Use JACSP to approximate Jacobian?
+        USE_JACSP = .FALSE.
+
+!       Set the flag to indicate that SET_NORMAL_OPTS has been called.
+        OPTS_CALLED = .TRUE.
+
+!       Set the MA48 storage cleanup flag.
+        MA48_WAS_USED = .FALSE.
+
+!       Set the fast factor option for MA48,
+        USE_FAST_FACTOR = .TRUE.
+
+!       Set the constant Jacobian flags.
+        J_IS_CONSTANT = .FALSE.
+        J_HAS_BEEN_COMPUTED = .FALSE.
+
+!       Determine the working precision and define the value for UMAX
+!       expected by MA28. Note that it is different for single and
+!       double precision.
+        WPD = KIND(1.0D0)
+        WPS = KIND(1.0E0)
+        IF (WPD/=dp .AND. WPS/=dp) THEN
+          MSG = 'Illegal working precision in SET_NORMAL_OPTS.'
+          CALL XERRDV(MSG,80,2,0,0,0,0,ZERO,ZERO)
+        END IF
+        IF (WPD==dp) THEN
+!       Working precision is double.
+          UMAX = 0.999999999_dp
+        ELSE
+!       Working precision is single.
+          UMAX = 0.9999_dp
+        END IF
+
+        MA28AD_CALLS = 0
+        MA28BD_CALLS = 0
+        MA28CD_CALLS = 0
+        MC19AD_CALLS = 0
+!_______________________________________________________________________
+! *****MA48 build change point. Insert these statements.
+!       MA48AD_CALLS = 0
+!       MA48BD_CALLS = 0
+!       MA48CD_CALLS = 0
+!_______________________________________________________________________
+        IRNCP = 0
+        ICNCP = 0
+        MINIRN = 0
+        MINICN = 0
+        MAX_MINIRN = 0
+        MAX_MINICN = 0
+        MAX_NNZ = 0
+
+!       Set the flag to warn the user if |(y(t)| < abserr.
+        YMAXWARN = .FALSE.
+
+!       Load defaults for the optional input arrays for DVODE.
+        IUSER(1:8) = 0
+        RUSER(1:8) = ZERO
+
+!       Set the method flag.
+        MF = 10
+        IF (PRESENT(SPARSE_J)) THEN
+          IF (SPARSE_J) THEN
+             MF = 227
+             IF (PRESENT(USER_SUPPLIED_JACOBIAN)) THEN
+               MSG = 'You have indicated you wish to supply an'
+               CALL XERRDV(MSG,90,1,0,0,0,0,ZERO,ZERO)
+               MSG = 'exact sparse Jacobian in function'
+               CALL XERRDV(MSG,90,1,0,0,0,0,ZERO,ZERO)
+               MSG = 'SET_NORMAL_OPTS. In order to do this,'
+               CALL XERRDV(MSG,90,1,0,0,0,0,ZERO,ZERO)
+               MSG = 'you must use SET_OPTS. Execution will'
+               CALL XERRDV(MSG,90,1,0,0,0,0,ZERO,ZERO)
+               MSG = 'continue.'
+               CALL XERRDV(MSG,90,1,0,0,0,0,ZERO,ZERO)
+             END IF
+          END IF
+        END IF
+
+        IF (PRESENT(BANDED_J)) THEN
+          IF (BANDED_J) THEN
+            IF (PRESENT(USER_SUPPLIED_JACOBIAN)) THEN
+              IF (USER_SUPPLIED_JACOBIAN) THEN
+                MF = 24
+              ELSE
+                MF = 25
+              END IF
+            ELSE
+              MF = 25
+            END IF
+          END IF
+        END IF
+
+        IF (PRESENT(DENSE_J)) THEN
+          IF (DENSE_J) THEN
+            IF (PRESENT(USER_SUPPLIED_JACOBIAN)) THEN
+              IF (USER_SUPPLIED_JACOBIAN) THEN
+                MF = 21
+              ELSE
+                MF = 22
+              END IF
+            ELSE
+              MF = 22
+            END IF
+          END IF
+        END IF
+
+!       Check for errors in MF.
+        MFA = IABS(MF)
+        MOSS = MFA/100
+        METH = (MFA-100*MOSS)/10
+        MITER = MFA - 100*MOSS - 10*METH
+        IF (METH<1 .OR. METH>2) THEN
+          MSG = 'Illegal value of METH in SET_NORMAL_OPTS.'
+          CALL XERRDV(MSG,100,2,0,0,0,0,ZERO,ZERO)
+        END IF
+        IF (MITER<0 .OR. MITER>7) THEN
+          MSG = 'Illegal value of MITER in SET_NORMAL_OPTS.'
+          CALL XERRDV(MSG,110,2,0,0,0,0,ZERO,ZERO)
+        END IF
+        IF (MOSS<0 .OR. MOSS>2) THEN
+          MSG = 'Illegal value of MOSS in SET_NORMAL_OPTS.'
+          CALL XERRDV(MSG,120,2,0,0,0,0,ZERO,ZERO)
+        END IF
+
+!       Reset MF, now that MOSS is known.
+        MFSIGN = SIGN(1,MF)
+        MF = MF - 100*MOSS*MFSIGN
+
+        IF (MITER==0) THEN
+          DENSE = .FALSE.
+          BANDED = .FALSE.
+          SPARSE = .FALSE.
+        ELSE IF (MITER==1 .OR. MITER==2) THEN
+          DENSE = .TRUE.
+          BANDED = .FALSE.
+          SPARSE = .FALSE.
+        ELSE IF (MITER==3) THEN
+          DENSE = .FALSE.
+          BANDED = .FALSE.
+          SPARSE = .FALSE.
+        ELSE IF (MITER==4 .OR. MITER==5) THEN
+          DENSE = .FALSE.
+          BANDED = .TRUE.
+          SPARSE = .FALSE.
+        ELSE IF (MITER==6 .OR. MITER==7) THEN
+          DENSE  = .FALSE.
+          BANDED = .FALSE.
+          SPARSE = .TRUE.
+        END IF
+
+!       Define the banded Jacobian band widths.
+        IF (BANDED) THEN
+          IF (PRESENT(LOWER_BANDWIDTH)) THEN
+            ML = LOWER_BANDWIDTH
+            IUSER(1) = ML
+          ELSE
+            MSG = 'In SET_NORMAL_OPTS you have indicated a'
+            CALL XERRDV(MSG,130,1,0,0,0,0,ZERO,ZERO)
+            MSG = 'banded Jacobian but you have not supplied'
+            CALL XERRDV(MSG,130,1,0,0,0,0,ZERO,ZERO)
+            MSG = 'the lower bandwidth.'
+            CALL XERRDV(MSG,130,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          IF (PRESENT(UPPER_BANDWIDTH)) THEN
+            MU = UPPER_BANDWIDTH
+            IUSER(2) = MU
+          ELSE
+            MSG = 'In SET_NORMAL_OPTS you have indicated a'
+            CALL XERRDV(MSG,140,1,0,0,0,0,ZERO,ZERO)
+            MSG = 'banded Jacobian but you have not supplied'
+            CALL XERRDV(MSG,140,1,0,0,0,0,ZERO,ZERO)
+            MSG = 'the upper bandwidth.'
+            CALL XERRDV(MSG,140,2,0,0,0,0,ZERO,ZERO)
+          END IF
+        END IF
+
+!       Define the sparse Jacobian options.
+        IF (SPARSE) THEN
+!         Set the MA28 message flag.
+          LP = 0
+!         Set the MA28 pivot sequence frequency flag.
+          REDO_PIVOT_SEQUENCE = .FALSE.
+!         Set the MA28 singularity threshold.
+          EPS = 1.0E-4_dp
+!         Use scaling of the iteration matrix.
+          SCALE_MATRIX = .TRUE.
+!         Define the elbow room factor for the MA28 sparse work arrays.
+          ELBOW_ROOM = 2
+!         NZSWAG is a swag for the number of nonzeros in the Jacobian.
+          NZ_SWAG = 0
+!         Use partial pivoting.
+          U_PIVOT = ONE
+!         Indicate that SET_IAJA has not yet been called successfully.
+          IAJA_CALLED = .FALSE.
+!         Check for illegal method flags.
+          IF (MOSS==2 .AND. MITER/=7) THEN
+            MSG = 'In SET_NORMAL_OPTS MOSS=2 but MITER is not 7.'
+            CALL XERRDV(MSG,150,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          IF (MOSS==1 .AND. MITER/=6) THEN
+            MSG = 'In SET_NORMAL_OPTS MOSS=1 but MITER is not 6.'
+            CALL XERRDV(MSG,160,2,0,0,0,0,ZERO,ZERO)
+          END IF
+!         IF (MOSS==0 .AND. MITER/=7) THEN
+!           MSG = 'In SET_NORMAL_OPTS MOSS=0 but MITER is not 7.'
+!           CALL XERRDV(MSG,170,2,0,0,0,0,ZERO,ZERO)
+!         END IF
+        END IF
+
+!       Define the number of event functions.
+        IF (PRESENT(NEVENTS)) THEN
+          IF (NEVENTS>0) THEN
+            NG = NEVENTS
+          ELSE
+            NG = 0
+          END IF
+        ELSE
+          NG = 0
+        END IF
+
+!       No solution bounds will be imposed.
+        BOUNDS = .FALSE.
+
+!       Load the user options into the solution structure.
+        OPTS%MF = MF
+        OPTS%METH = METH
+        OPTS%MITER = MITER
+        OPTS%MOSS = MOSS
+        OPTS%DENSE = DENSE
+        OPTS%BANDED = BANDED
+        OPTS%SPARSE = SPARSE
+        OPTS%NG = NG
+
+        IOPT = 1
+        OPTS%IOPT = IOPT
+
+!       Process the error tolerances.
+
+!       Relative error tolerance.
+        NRE = 1
+        ALLOCATE (OPTS%RTOL(NRE),STAT=IER)
+        CALL CHECK_STAT(IER,10)
+        IF (PRESENT(RELERR)) THEN
+          IF (RELERR<ZERO) THEN
+            MSG = 'RELERR must be nonnegative.'
+            CALL XERRDV(MSG,180,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          OPTS%RTOL = RELERR
+        ELSE
+          IF (ALLOW_DEFAULT_TOLS) THEN
+             OPTS%RTOL = 1.0E-4_dp
+             MSG = 'By not specifying RELERR, you have elected to use a default'
+             CALL XERRDV(MSG,190,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'relative error tolerance equal to 1.0D-4. Please be aware a'
+             CALL XERRDV(MSG,190,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'tolerance this large is not appropriate for all problems.'
+             CALL XERRDV(MSG,190,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'Execution will continue'
+             CALL XERRDV(MSG,190,1,0,0,0,0,ZERO,ZERO)
+          ELSE
+             MSG = 'You must specify a nonzero relative error tolerance.'
+             CALL XERRDV(MSG,200,2,0,0,0,0,ZERO,ZERO)
+          END IF
+        END IF
+
+!       Absolute error tolerance(s).
+        IF (PRESENT(ABSERR_VECTOR)) THEN
+          IF (MINVAL(ABSERR_VECTOR)<ZERO) THEN
+            MSG = 'All components of ABSERR_VECTOR must'
+            CALL XERRDV(MSG,210,1,0,0,0,0,ZERO,ZERO)
+            MSG = 'be nonnegative.'
+            CALL XERRDV(MSG,210,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          NAE = SIZE(ABSERR_VECTOR)
+        ELSE
+          NAE = 1
+        END IF
+        ALLOCATE (OPTS%ATOL(NAE),STAT=IER)
+        CALL CHECK_STAT(IER,20)
+        IF (PRESENT(ABSERR_VECTOR)) THEN
+          OPTS%ATOL = ABSERR_VECTOR
+        ELSE IF (PRESENT(ABSERR)) THEN
+          IF (ABSERR<ZERO) THEN
+            MSG = 'ABSERR must be nonnegative.'
+            CALL XERRDV(MSG,220,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          OPTS%ATOL = ABSERR
+        ELSE
+          IF (ALLOW_DEFAULT_TOLS) THEN
+             OPTS%ATOL = 1D-6
+             MSG = 'By not specifying ABSERR, you have elected to use a default'
+             CALL XERRDV(MSG,230,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'absolute error tolerance equal to 1.0D-6. Please be aware a'
+             CALL XERRDV(MSG,230,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'tolerance this large is not appropriate for all problems.'
+             CALL XERRDV(MSG,230,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'Execution will continue'
+             CALL XERRDV(MSG,230,1,0,0,0,0,ZERO,ZERO)
+          ELSE
+             MSG = 'You must specify a vector of absolute error tolerances or'
+             CALL XERRDV(MSG,240,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'a scalar error tolerance. It is recommended that you use'
+             CALL XERRDV(MSG,240,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'a vector of absolute error tolerances.'
+             CALL XERRDV(MSG,240,2,0,0,0,0,ZERO,ZERO)
+          END IF
+        END IF
+
+!       ITOL error tolerance flag.
+!          ITOL   RTOL     ATOL            EWT(i)
+!            1   scalar   scalar  RTOL*ABS(Y(i)) + ATOL
+!            2   scalar   array   RTOL*ABS(Y(i)) + ATOL(i)
+        IF (PRESENT(ABSERR_VECTOR)) THEN
+           OPTS%ITOL = 2
+        ELSE
+           OPTS%ITOL = 1
+        END IF
+        RETURN
+
+  END FUNCTION SET_NORMAL_OPTS
+!_______________________________________________________________________
+
+  FUNCTION SET_INTERMEDIATE_OPTS(DENSE_J, BANDED_J, SPARSE_J,          &
+    USER_SUPPLIED_JACOBIAN,                                            &
+    LOWER_BANDWIDTH, UPPER_BANDWIDTH,                                  &
+    RELERR, ABSERR, ABSERR_VECTOR,                                     &
+    TCRIT, H0, HMAX, HMIN, MAXORD, MXSTEP, MXHNIL,                     &
+    NZSWAG, USER_SUPPLIED_SPARSITY, MA28_RPS,                          &
+    NEVENTS, CONSTRAINED, CLOWER, CUPPER, CHANGE_ONLY_f77_OPTIONS)     &
+  RESULT(OPTS)
+
+! FUNCTION SET_INTERMEDIATE_OPTS:
+!    Jacobian type:
+!       DENSE_J, BANDED_J, SPARSE_J
+!    Analytic Jacobian:
+!       USER_SUPPLIED_JACOBIAN
+!    If banded Jacobian:
+!       LOWER_BANDWIDTH, UPPER_BANDWIDTH
+!    Error tolerances:
+!       RELERR, ABSERR, ABSERR_VECTOR
+!    VODE.f77 optional parameters:
+!       TCRIT, H0, HMAX, HMIN, MAXORD, MXSTEP, MXHNIL
+!    Sparse flags:
+!       NZSWAG, USER_SUPPLIED_SPARSITY, MA28_RPS
+!    Rootfinding:
+!       NEVENTS
+!    Impose bounds on solution:
+!       CONSTRAINED, CLOWER, CUPPER
+!    Change one or more of HMAX, HMIN, TCRIT, MXSTEP, MXHNIL, MAXORD
+!       CHANGE_ONLY_f77_OPTIONS
+! RESULT(OPTS)
+
+! SET_OPTIONS sets user parameters for DVODE via keywords. Values
+! that are defined herein will be used internally by DVODE.
+! All option keywords are OPTIONAL and order is not important.
+
+! Note that DVODE_F90 requires that one of SET_NORMAL_OPTS or
+! SET_INTERMEDIATE_OPTS or SET_OPTS is called before the first
+! time DVODE_F90 is called.
+
+!                     Quick Summary of Options
+
+! DENSE_J                - Jacobian is sparse alternative to MF
+! BANDED_J               - Jacobian is banded alternative to MF 
+! SPARSE_J               - Jacobian is sparse alternative to MF   
+! USER_SUPPLIED_JACOBIAN - User will supply Jacobian subroutine
+!                          (user supplied subroutine JAC required)
+! LOWER_BANDWIDTH        - Lower bandwidth ML in DVODE
+! UPPER_BANDWIDTH        - Upper bandwidth MU in DVODE
+! RELERR                 - Scalar relative error tolerance in DVODE
+! ABSERR                 - Scalar absolute error tolerance in DVODE
+! ABSERR_VECTOR          - Vector absolute error tolerance in DVODE
+! TCRIT                  - Critical time TCRIT in DVODE
+! H0                     - Starting step size in DVODE
+! HMAX                   - Maximum step size in DVODE 
+! HMIN                   - Minimum step size in DVODE 
+! MAXORD                 - Maximum integration order in DVODE
+! MXSTEP                 - Maximum number of integration steps
+!                          in DVODE
+! MXHNIL                 - Maximum number of T+H=T messages in DVODE
+! NZSWAG                 - guess for the number of nonzeros in sparse
+!                          Jacobian
+! USER_SUPPLIED_SPARSITY - user will supply sparsity structure
+!                          arrays by calling USERSETS_IAJA 
+! MA28_RPS               - Redo MA28AD pivot sequence if a singularity
+!                          is encountered
+! NEVENTS                - number of user defined root finding functions
+!                          (user supplied subroutine G required)
+! CONSTRAINED,           - array of solution component indices that
+! CLOWER,                  are to be constrained by the lower and
+! CUPPER                   upper bound arrays CLOWER and CUPPER so that
+!                          CLOWER(I) <= Y(CONSTRAINED(I)) <= CUPPER(I)
+!                     Options Types
+! DENSE_J                - logical
+! BANDED_J               - logical
+! SPARSE_J               - logical
+! USER_SUPPLIED_JACOBIAN - logical
+! LOWER_BANDWIDTH        - integer
+! UPPER_BANDWIDTH        - integer
+! RELERR                 - KPP_REAL scalar
+! ABSERR                 - KPP_REAL scalar
+! ABSERR_VECTOR          - KPP_REAL vector
+! TCRIT                  - KPP_REAL scalar
+! H0                     - KPP_REAL scalar
+! HMAX                   - KPP_REAL scalar
+! HMIN                   - KPP_REAL scalar
+! MAXORD                 - integer
+! MXSTEP                 - integer
+! MXHNIL                 - integer
+! NZSWAG                 - integer
+! USER_SUPPLIED_SPARSITY - logical
+! MA28_RPS               - logical
+! NEVENTS                - integer
+! CONSTRAINED            - integer array
+! CLOWER                 - KPP_REAL array
+! CUPPER                 - KPP_REAL array
+! CHANGE_ONLY_f77_OPTIONS- logical
+! Argument list parameters:
+! ABSERR                   = scalar absolute error tolerance
+! ABSERR_VECTOR            = vector of absolute error tolerances
+! RELERR                   = scalar relative error tolerance
+! NEVENTS                  = Number of event functions (requires
+!                            user-supplied GFUN)
+! DENSE_J                  = use dense linear algebra if .TRUE.
+! BANDED_J                 = use banded linear algebra if .TRUE.
+!   LOWER_BANDWIDTH        = lower bandwidth of the Jacobian
+!                            (required if BANDED_J = .TRUE.)
+!   UPPER_BANDWIDTH        = upper bandwidth of the Jacobian
+!                            (required if BANDED_J = .TRUE.)
+! SPARSE_J                 = use sparse linear algebra if .TRUE.
+!
+!   NZSWAG                 = If you wish you may supply a guess,
+!                            NZSWAG, at the number of nonzeros
+!                            in the Jacobian matrix. In some cases
+!                            this will speed up the determination
+!                            of the necessary storage.
+!   USER_SUPPLIED_SPARSITY = .TRUE. if you wish to supply the sparsity
+!                            structure arrays directly by calling
+!   MA28_RPS               = .TRUE. to force MA28AD to calculate a new
+!                            pivot sequence for use in MA28BD if a
+!                            singular iteration matrix is encountered
+!                            is smaller than EPS, it will flag the
+!                            Jacobian as singular and force MA28AD
+!                            to calculate a new pivot sequence.
+! USER_SUPPLIED_JACOBIAN   = exact Jacobian option
+!                            (requires user-supplied JAC)
+! TCRIT                    = critical time
+! H0                       = initial step size to try
+! HMAX                     = maximum allowable step size
+! HMIN                     = minimum allowable step size
+! MAXORD                   = maximum allowable integration order
+! MXSTEP                   = maximum number of integration steps
+!                            between calls to DVODE
+! MXHNIL                   = maximum number of printed messages
+!                            if the T+H=T condition occurs
+! CONSTRAINED              = array containing the indices of
+!                            solution components which are to be
+!                            be constrained by CLOWER and CUPPER.
+!                            The size of CONSTRAINED must be
+!                            positive and not exceed NEQ, the
+!                            number of ODEs. Each component of
+!                            CONSTRAINED must be between 1 and NEQ.
+!   CLOWER, CUPPER         = lower and upper bound arrays for the.
+!                            solution. Each must be the same size
+!                            as the CONSTRAINED vector.
+!
+!   User-callable Routines:
+!   The following routines may be called by the user:
+!   SET_INTERMEDIATE_OPTS      : Used to set options for DVODE_F90
+!   GET_STATS     : Used to gather summary integration
+!                   statistics following a successful
+!                   return from DVODE_F90
+!   DVINDY        : Used if the user wishes to interpolate
+!                   solution or derivative following a
+!                   successful return from DVODE_F90
+!   USERSETS_IAJA : Used if the user wishes to supply the
+!                   sparsity structure directly
+!   Detailed Description of SET_INTERMEDIATE_OPTS
+!   The following are defined in SET_INTERMEDIATE_OPTS:
+!   OPTS%MF     = Integration method flag (MF)
+!   OPTS%METH   = Integration family flag (METH)
+!   OPTS%MITER  = Iteration type flag (MITER)
+!   OPTS%MOSS   = Sparsity array type flag (MOSS)
+!   OPTS%ITOL   = Error tolerance flag (ITOL) (ITOL)
+!   OPTS%ATOL   = Absolute error tolerance(s) (ATOL)
+!   OPTS%RTOL   = Relative error tolerance(s) (RTOL)
+!   OPTS%DENSE  = Use dense linear algebra
+!   OPTS%BANDED = Use banded linear algebra 
+!   OPTS%SPARSE = Use sparse linear algebra 
+!   OPTS%IOPT   = DVODE optional parameter input flag (IOPT)
+!   OPTS%NG     = Number of event functions
+!   RUSER(1)    = TCRIT (don't step past)
+!   IUSER(1)    = Jacobian lower bandwidth (ML)
+!   IUSER(2)    = Jacobian upper bandwidth (MU)
+!   RUSER(5)    = Initial step size to try (H0)
+!   RUSER(6)    = Maximum allowable step size (HMAX)
+!   RUSER(7)    = Minimum allowable step size (HMIN)
+!   IUSER(5)    = Maximum allowable integration order (MAXORD)
+!   IUSER(6)    = Maximum number of integration steps (MXSTEP)
+!   IUSER(7)    = Maximum number of T+H=T messages (MXHNIL)
+!   NZ_SWAG     = Guess for the number of nonzeros in the
+!                 sparse Jacobian
+!   NG          = Number of user event functions
+!   BOUNDS,     = Nonnegativity information
+!   NDX, IDX
+!   YMAXWARN    = Warning flag for |y(t)| < abserr
+!   MA28_ELBOW_ROOM = Integer multiple by which to increase
+!                     the elbow room in the MA28 sparse work
+!                     arrays
+!   MC19_SCALING    = logical flag to control MC19 sparse
+!                     scaling of the Jacobian
+!   MA28_MESSAGES   = logical flag to control printing of MA28
+!                     messages.
+!   MA28_EPS        = KPP_REAL MA28 singularity threshold
+!
+!                         All Options
+!
+! METHOD_FLAG
+!
+! Default:   Not used
+! Change to: No need to specify if use one of next three parameters
+!            but can be changed to any value of the MF method flag
+!            in dvode.f77
+!
+! DENSE_J
+!
+! Default:   .FALSE.
+! Change to: .TRUE. for dense linear algebra
+!
+! BANDED_J
+!
+! Default:   .FALSE.
+! Change to: .TRUE. for banded linear algebra
+!
+! SPARSE_J
+!
+! Default:   .FALSE.
+! Change to: .TRUE. for sparse linear algebra
+
+! USER_SUPPLIED_JACOBIAN
+!
+! Default:   .FALSE.
+! Change to: .TRUE. if want to supply subroutine JAC to DVODE_F90
+!
+! LOWER_BANDWIDTH
+!
+! Default:   Not used
+! Change to: Lower bandwidth if BANDED_J = .TRUE.
+!
+! UPPER_BANDWIDTH
+!
+! Default:   Not used
+! Change to: Upper bandwidth if BANDED_J = .TRUE.
+!
+! RELERR
+!
+! Default:   None
+! Change to: Specify a nonzero relative error tolerance
+!
+! ABSERR
+!
+! Default:   None
+! Change to: Specify a scalar absolute error tolerance or
+!            a vector of absolute error tolerances
+!
+! ABSERR_VECTOR
+!
+! Default:   Not used
+! Change to: Vector of absolute error tolerances
+!
+! TCRIT
+!
+! Default:   Not used
+! Change to: Value of T which DVODE_F90 is not to step past
+!
+!     H0
+!
+! Default:   Determined by DVODE_F90
+! Change to: Guess for initial step size
+!
+! HMAX
+!
+! Default:   Infinity
+! Change to: Maximum allowable step size
+!
+! HMIN
+!
+! Default:   0.0D0
+! Change to: Minimum allowable step size
+!
+! MAXORD
+!
+! Default:   Determined by DVODE_F90
+! Change to: Maximum integration order
+!
+! MXSTEP
+!
+! Default:   5000
+!     Change to: Maximum number of steps between output points
+!
+! MXHNIL
+!
+! Default:   10
+! Change to: Maximum number of times T+H=T message will be printed
+!
+! NZSWAG
+!
+! Default:   Determined by DVODE_F90
+! Change to: Amount by which to increment sizes of sparse arrays
+!
+! USER_SUPPLIED_SPARSITY
+!
+! Default:   .FALSE.
+! Change to: .TRUE. if wish to call subroutine USERSETS_IAJA to
+!            define the sparse structure array pointers directly
+!
+! NEVENTS
+!
+! Default:   0
+! Change to: Number of event functions if wish to supply subroutine
+!            GFUN to DVODE_F90
+!
+! CONSTRAINED
+!
+! Default:   Bounds not imposed on solution
+! Change to: Array of indices for components on which to impose
+!            solution bounds
+!
+! CLOWER
+!
+! Default:   Not used
+! Change to: Vector containing lower bounds corresponding to
+!            CONSTRAINED
+!
+! CUPPER
+!
+! Default:   Not used
+! Change to: Vector containing upper bounds corresponding to
+!            CONSTRAINED
+!
+! MA28_RPS
+!
+! Default:   .FALSE.
+! Change to: Redo the MA28AD sparse pivoting sequence any time
+!            MA28BD considers the iteration matrix to be
+!            numerically singularity
+!
+!
+! Note on Jacobian Storage Formats:
+!
+! If you supply an analytic Jacobian PD, load the
+! Jacobian elements DF(I)/DY(J), the partial
+! derivative of F(I) with respect to Y(J), using
+! the following formats. Here, Y is the solution,
+! F is the derivative, and PD is the Jacobian.
+!
+! For a full Jacobian, load PD(I,J) with DF(I)/DY(J).
+! Your code might look like this:
+!    DO J = 1, NEQ
+!       DO I = 1, NEQ
+!          PD(I,J) = ... DF(I)/DY(J)
+!       END DO
+!    END DO       
+!
+! For a banded Jacobian, load PD(I-J+MU+1,J) with
+! DF(I)/DY(J) where ML is the lower bandwidth
+! and MU is the upper bandwidth of the Jacobian.
+! Your code might look like this:
+!    DO J = 1, NEQ
+!       I1 = MAX(1,J-ML)
+!       I2 = MIN(N,J+MU)
+!       DO I = I1, I2
+!          K = I-J+MU+1
+!          PD(K,J) = ... DF(I)/DY(J)
+!       END DO
+!    END DO
+!
+! For a sparse Jacobian, IA(J+1)-IA(J) is the number
+! of nonzeros in column change. JA(I) indicates the
+! rows in which the nonzeros occur. For column J,
+! the nonzeros occurs in rows I=JA(K) for K=I1,...,I2
+! where I1=IA(J) and I2= IA(J+1)-1. Load DF(I)/DY(J)
+! in PD(I). Your code might look like this:
+!    DO J = 1, NEQ
+!       I1 = IA(J)
+!       I2 = IA(J+1) - 1
+!       DO K = I1, I2
+!          I = JA(K)
+!          PD(I) = ... DF(I)/DY(J)
+!       END DO
+!    END DO
+!
+!                    More on Sparsity Options
+!
+! Two facts of life regarding the use of direct sparse solvers are
+! (1) significant improvements are possible, and (2) the use of
+! direct sparse solvers often is more demanding of the user.
+! Although SET_NORMAL_OPTS provides modest provisions for solving
+! problems with sparse Jacobians, using SET_INTERMEDIATE_OPTS rather than
+! SET_NORMAL_OPTS provides several advanced options. These options
+! are described below. The recommended manner in which to use
+! these options is also provided. Note that each of these optional
+! parameters have default values and need not be specified in your
+! call to SET_INTERMEDIATE_OPTS if you wish to use the default values. Note
+! also that the order in which the options are specified in a call
+! to SET_INTERMEDIATE_OPTS is not important.
+!
+!  (1) First determine if it is feasible to use either the BANDED
+!      or DENSE Jacobian option.
+!         Recommendation:
+!         Use the DENSE or BANDED option if possible. They do
+!         not require use of most of the options described here.
+!    
+!  (2) The Jacobian is approximated internally using differences
+!      if you do not provide an analytic Jacobian. The option
+!      USER_SUPPLIED_JACOBIAN=.TRUE. may be used if you wish to
+!      provide an analytic Jacobian.
+!         Recommendation:
+!         Use an internally generated Jacobian for most problems
+!         but consider providing an analytic Jacobian if it not
+!         too much trouble.
+!
+!  (3) If you do not provide the sparse structure arrays, they
+!      are approximated internally by making NEQ calls to your
+!      derivative subroutine and using differences to approximate
+!      the structure of the Jacobian. The option
+!      USER_SUPPLIED_SPARSITY and a call to USERSETS_IAJA can
+!      be used to supply the arrays directly. You can also use
+!      subroutine SET_IAJA to approximate the structure using
+!      different perturbation factors than those used in DVODE_F90.
+!         Recommendations:
+!         Although allowing DVODE_F90 to approximate the Jacobian
+!         structure suffices for most problems, if you know the
+!         sparsity pattern provide it directly. This eliminates
+!         the possibility that an important element that happens
+!         to be 0 when the sparsity pattern is approximated is
+!         later nonzero; and it avoids the NEQ extra calls to
+!         your derivative subroutine to approximate the structure.
+!         Note that a nemesis for any sparse ode solver is a
+!         problem in which the sparsity pattern actually changes
+!         during the integration. An example of such a problem
+!         is provided in the demohum21.f90 demonstration program.
+!         If you know the sparsity pattern changes or if you
+!         suspect it does because DVODE_F90 is generating
+!         nonconvergence error messages, consider having DVODE_F90
+!         re-approximate the structure by calling SET_INTERMEDIATE_OPTS and
+!         forcing an integration restart when control is returned
+!         to your calling program. Please do not do this at every
+!         output point since it will be extremely time consuming
+!         and inefficient if it is not needed.
+!
+!  (4) The optional parameter NZSWAG may/should be used to speed
+!      up the determination of acceptable array sizes for the
+!      internal sparse working arrays and the sparse Jacobian.
+!      Initially, DVODE_F90 allocates arrays of length
+!      max(10*NEQ,NSZSWAG) and increases this amount by
+!      max(10*NEQ,ELBOW_ROOM*NSZSWAG) as necessary. NZSWAG
+!      has a default value of 1000 and ELBOW_ROOM has a default
+!      value of 2.
+!         Recommendation:
+!         Provide a larger value for NZSWAG particularly if NEQ
+!         is large and you suspect considerable fill-in due to
+!         partial pivoting.
+!
+!  (5) MA28BD uses the pivot sequence initially determined by
+!      MA28AD. When a singularity is diagnosed, the internal
+!      procedure used by the DENSE and BANDED options is used
+!      to reduce the step size and re-calulate the iteration
+!      matrix. This works fine for most problems; but particularly
+!      for badly scaled problems, the solution may be unsuccessful
+!      or it may drag along using small step sizes. This is due
+!      to the fact MA28BD will continue to use the out-of-date pivot
+!      sequence until singularity is again diagnosed. An option not
+!      available in previous sparse ode solvers may be used to
+!      instruct DVODE_F90 to force MA28AD to calculate a new pivot
+!      sequence when MA28BD encounters a singularity. Although
+!      MA28AD is considerably slower than MA28BD, the additional
+!      calls to MA28AD ensure that the pivot sequence is more
+!      up to date. This can increase both the accuracy and the
+!      efficiency very dramatically. The demodirn.f90 demonstration
+!      program provides an illustration of the dramatic improvement
+!      that is possible. The optional parameter MA28_RPS may be set
+!      .TRUE. to force these pivot sequence updates.
+!         Recommendation:
+!         Use the default value MA28_RPS=.FALSE; but if DVODE_F90
+!         encounters nonconvergence, use MA28_RPS=.TRUE. to force
+!         pivot sequence updates.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Function Return Value ..
+        TYPE (VODE_OPTS) :: OPTS
+! ..
+! .. Scalar Arguments ..
+        KPP_REAL, OPTIONAL, INTENT (IN) :: ABSERR, H0, HMAX, HMIN,         &
+        RELERR, TCRIT
+        INTEGER, OPTIONAL, INTENT (IN) :: LOWER_BANDWIDTH, MAXORD,          &
+          MXHNIL, MXSTEP, NEVENTS, NZSWAG, UPPER_BANDWIDTH
+        LOGICAL, OPTIONAL, INTENT (IN) :: BANDED_J, CHANGE_ONLY_f77_OPTIONS,&
+          DENSE_J, MA28_RPS, SPARSE_J, USER_SUPPLIED_JACOBIAN,              &
+          USER_SUPPLIED_SPARSITY
+! ..
+! .. Array Arguments ..
+        KPP_REAL, OPTIONAL, INTENT (IN) :: ABSERR_VECTOR(:)
+        KPP_REAL, OPTIONAL :: CLOWER(:), CUPPER(:)
+        INTEGER, OPTIONAL, INTENT (IN) :: CONSTRAINED(:)
+! ..
+! .. Local Scalars ..
+        INTEGER ::  IER, IOPT, METH, MF, MFA, MFSIGN, MITER, ML, MOSS, MU,  &
+          NAE, NG, NRE
+        LOGICAL :: BANDED, DENSE, SPARSE
+        CHARACTER (80) :: MSG
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ALLOCATED, IABS, MAX, MINVAL, PRESENT, SIGN, SIZE
+! ..
+! .. FIRST EXECUTABLE STATEMENT SET_INTERMEDIATE_OPTS
+! ..
+    RUSER(1:LRWUSER) = ZERO
+    IUSER(1:LIWUSER) = 0
+    
+!   Allow default error tolerances?
+    ALLOW_DEFAULT_TOLS = .FALSE.
+
+!   Maximum number of consecutive error test failures?
+    CONSECUTIVE_EFAILS = KFH
+
+!   Maximum number of consecutive corrector iteration failures?
+    CONSECUTIVE_CFAILS = MXNCF
+
+!   Use JACSP to approximate Jacobian?
+    USE_JACSP = .FALSE.
+
+!   If only f77 options are to be changed, do it and return.
+    IF (PRESENT(CHANGE_ONLY_f77_OPTIONS)) THEN
+       IF (CHANGE_ONLY_f77_OPTIONS) THEN
+          IF (.NOT.OPTS_CALLED) THEN
+             MSG = 'You have not previously called SET_OPTS before attempting'
+             CALL XERRDV(MSG,250,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'to change one or more of the vode.f77 optional parameters.'
+             CALL XERRDV(MSG,250,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          IF (PRESENT(HMAX)) THEN
+             IOPT = 1
+             RUSER(6) = HMAX
+             MSG = 'HMAX changed in SET_INTERMEDIATE_OPTS.'
+             CALL XERRDV(MSG,260,1,0,0,0,1,HMAX,ZERO)
+          END IF
+          IF (PRESENT(HMIN)) THEN
+             IOPT = 1
+             RUSER(7) = HMIN
+             MSG = 'HMIN changed in SET_INTERMEDIATE_OPTS.'
+             CALL XERRDV(MSG,270,1,0,0,0,1,HMIN,ZERO)
+          END IF
+          IF (PRESENT(TCRIT)) THEN
+             IOPT = 1
+             RUSER(1) = TCRIT
+             MSG = 'TCRIT changed in SET_INTERMEDIATE_OPTS.'
+             CALL XERRDV(MSG,280,1,0,0,0,1,TCRIT,ZERO)
+          END IF
+          IF (PRESENT(MXSTEP)) THEN
+             IOPT = 1
+             IUSER(6) = MXSTEP
+             MSG = 'MXSTEP changed in SET_INTERMEDIATE_OPTS.'
+             CALL XERRDV(MSG,290,1,1,MXSTEP,0,0,ZERO,ZERO)
+          END IF
+          IF (PRESENT(MAXORD)) THEN
+             IOPT = 1
+             IUSER(5) = MAXORD
+             MSG = 'MAXORD changed in SET_INTERMEDIATE_OPTS.'
+             CALL XERRDV(MSG,300,1,1,MAXORD,0,0,ZERO,ZERO)
+          END IF
+          IF (PRESENT(MXHNIL)) THEN
+             IOPT = 1
+             IUSER(7) = MXHNIL
+             MSG = 'MXHNIL changed in SET_INTERMEDIATE_OPTS.'
+             CALL XERRDV(MSG,310,1,1,MXHNIL,0,0,ZERO,ZERO)
+          END IF
+       END IF
+       RETURN
+    END IF
+
+!       Set the flag to indicate that SET_INTERMEDIATE_OPTS has been called.
+        OPTS_CALLED = .TRUE.
+
+!       Set the MA48 storage cleanup flag.
+        MA48_WAS_USED = .FALSE.
+
+!       Set the fast factor option for MA48,
+        USE_FAST_FACTOR = .TRUE.
+
+!       Determine the working precision and define the value for UMAX
+!       expected by MA28. Note that it is different for single and
+!       double precision.
+        WPD = KIND(1.0D0)
+        WPS = KIND(1.0E0)
+        IF (WPD/=dp .AND. WPS/=dp) THEN
+          MSG = 'Illegal working precision in SET_INTERMEDIATE_OPTS.'
+          CALL XERRDV(MSG,320,2,0,0,0,0,ZERO,ZERO)
+        END IF
+        IF (WPD==dp) THEN
+!       Working precision is double.
+          UMAX = 0.999999999_dp
+        ELSE
+!       Working precision is single.
+          UMAX = 0.9999_dp
+        END IF
+
+!       Set the MA28 message flag.
+        LP = 0
+
+!       Set the MA28 singularity threshold.
+        EPS = 1.0E-4_dp
+
+!       Set the MA28 pivot sequence frequency flag.
+        IF (PRESENT(MA28_RPS)) THEN
+           IF (MA28_RPS) THEN
+              REDO_PIVOT_SEQUENCE = MA28_RPS
+           ELSE
+              REDO_PIVOT_SEQUENCE = .FALSE.
+           END IF
+        ELSE
+           REDO_PIVOT_SEQUENCE = .FALSE.
+        END IF
+
+        MA28AD_CALLS = 0
+        MA28BD_CALLS = 0
+        MA28CD_CALLS = 0
+        MC19AD_CALLS = 0
+!_______________________________________________________________________
+! *****MA48 build change point. Insert these statements.
+!       MA48AD_CALLS = 0
+!       MA48BD_CALLS = 0
+!       MA48CD_CALLS = 0
+!_______________________________________________________________________
+        IRNCP = 0
+        ICNCP = 0
+        MINIRN = 0
+        MINICN = 0
+        MAX_MINIRN = 0
+        MAX_MINICN = 0
+        MAX_NNZ = 0
+
+!       Set the flag to warn the user if |(y(t)| < abserr.
+        YMAXWARN = .FALSE.
+
+!       Load defaults for the optional input arrays for DVODE.
+        IUSER(1:8) = 0
+        RUSER(1:8) = ZERO
+
+        IF (PRESENT(SPARSE_J)) THEN
+          IF (SPARSE_J) THEN
+            IF (PRESENT(USER_SUPPLIED_JACOBIAN)) THEN
+              IF (USER_SUPPLIED_JACOBIAN) THEN
+                MF = 126
+              ELSE
+                MF = 227
+              END IF
+            ELSE
+              MF = 227
+            END IF
+            IF (PRESENT(USER_SUPPLIED_SPARSITY)) THEN
+              IF (USER_SUPPLIED_SPARSITY) THEN
+                MF = MF - 100*(MF/100)
+              END IF
+            END IF
+          END IF
+        END IF
+
+        IF (PRESENT(BANDED_J)) THEN
+          IF (BANDED_J) THEN
+            IF (PRESENT(USER_SUPPLIED_JACOBIAN)) THEN
+              IF (USER_SUPPLIED_JACOBIAN) THEN
+                MF = 24
+              ELSE
+                MF = 25
+              END IF
+            ELSE
+              MF = 25
+            END IF
+          END IF
+        END IF
+
+        IF (PRESENT(DENSE_J)) THEN
+          IF (DENSE_J) THEN
+            IF (PRESENT(USER_SUPPLIED_JACOBIAN)) THEN
+              IF (USER_SUPPLIED_JACOBIAN) THEN
+                MF = 21
+              ELSE
+                MF = 22
+              END IF
+            ELSE
+              MF = 22
+            END IF
+          END IF
+        END IF
+
+!       Check for errors in MF.
+        MFA = IABS(MF)
+        MOSS = MFA/100
+        METH = (MFA-100*MOSS)/10
+        MITER = MFA - 100*MOSS - 10*METH
+        IF (METH<1 .OR. METH>2) THEN
+          MSG = 'Illegal value of METH in SET_INTERMEDIATE_OPTS.'
+          CALL XERRDV(MSG,330,2,0,0,0,0,ZERO,ZERO)
+        END IF
+        IF (MITER<0 .OR. MITER>7) THEN
+          MSG = 'Illegal value of MITER in SET_INTERMEDIATE_OPTS.'
+          CALL XERRDV(MSG,340,2,0,0,0,0,ZERO,ZERO)
+        END IF
+        IF (MOSS<0 .OR. MOSS>2) THEN
+          MSG = 'Illegal value of MOSS in SET_INTERMEDIATE_OPTS.'
+          CALL XERRDV(MSG,350,2,0,0,0,0,ZERO,ZERO)
+        END IF
+
+!       Reset MF, now that MOSS is known.
+        MFSIGN = SIGN(1,MF)
+        MF = MF - 100*MOSS*MFSIGN
+
+        IF (MITER==0) THEN
+          DENSE = .FALSE.
+          BANDED = .FALSE.
+          SPARSE = .FALSE.
+        ELSE IF (MITER==1 .OR. MITER==2) THEN
+          DENSE = .TRUE.
+          BANDED = .FALSE.
+          SPARSE = .FALSE.
+        ELSE IF (MITER==3) THEN
+          DENSE = .FALSE.
+          BANDED = .FALSE.
+          SPARSE = .FALSE.
+        ELSE IF (MITER==4 .OR. MITER==5) THEN
+          DENSE = .FALSE.
+          BANDED = .TRUE.
+          SPARSE = .FALSE.
+        ELSE IF (MITER==6 .OR. MITER==7) THEN
+          DENSE = .FALSE.
+          BANDED = .FALSE.
+          SPARSE = .TRUE.
+        END IF
+
+!       Define the banded Jacobian band widths.
+        IF (BANDED) THEN
+          IF (PRESENT(LOWER_BANDWIDTH)) THEN
+            ML = LOWER_BANDWIDTH
+            IUSER(1) = ML
+          ELSE
+            MSG = 'In SET_INTERMEDIATE_OPTS you have indicated a'
+            CALL XERRDV(MSG,360,1,0,0,0,0,ZERO,ZERO)
+            MSG = 'banded Jacobian but you have not'
+            CALL XERRDV(MSG,360,1,0,0,0,0,ZERO,ZERO)
+            MSG = 'supplied the lower bandwidth.'
+            CALL XERRDV(MSG,360,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          IF (PRESENT(UPPER_BANDWIDTH)) THEN
+            MU = UPPER_BANDWIDTH
+            IUSER(2) = MU
+          ELSE
+            MSG = 'In SET_INTERMEDIATE_OPTS you have indicated a'
+            CALL XERRDV(MSG,370,1,0,0,0,0,ZERO,ZERO)
+            MSG = 'banded Jacobian but you have not'
+            CALL XERRDV(MSG,370,1,0,0,0,0,ZERO,ZERO)
+            MSG = 'supplied the upper bandwidth.'
+            CALL XERRDV(MSG,370,2,0,0,0,0,ZERO,ZERO)
+          END IF
+!         Define the nonzero diagonals.
+          BNGRP = 0
+          SUBS = .FALSE.
+          SUPS = .FALSE.
+          NSUBS  = 0
+          NSUPS = 0
+        END IF
+
+!       Define the sparse Jacobian options.
+        SCALE_MATRIX = .FALSE.
+        ELBOW_ROOM = 2
+        IF (SPARSE) THEN
+!         NZSWAG for the number of nonzeros in the Jacobian.
+          IF (PRESENT(NZSWAG)) THEN
+            NZ_SWAG = MAX(NZSWAG,0)
+          ELSE
+            NZ_SWAG = 0
+          END IF
+!         Indicate that SET_IAJA has not yet been called successfully.
+          IAJA_CALLED = .FALSE.
+!         Check for illegal method flags.
+          IF (MOSS==2 .AND. MITER/=7) THEN
+            MSG = 'In SET_INTERMEDIATE_OPTS MOSS=2 but MITER is not 7.'
+            CALL XERRDV(MSG,380,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          IF (MOSS==1 .AND. MITER/=6) THEN
+            MSG = 'In SET_INTERMEDIATE_OPTS MOSS=1 but MITER is not 6.'
+            CALL XERRDV(MSG,390,2,0,0,0,0,ZERO,ZERO)
+          END IF
+!         IF (MOSS==0 .AND. MITER/=7) THEN
+!           MSG = 'In SET_INTERMEDIATE_OPTS MOSS=0 but MITER is not 7.'
+!           CALL XERRDV(MSG,400,2,0,0,0,0,ZERO,ZERO)
+!         END IF
+!         Allow MC19 scaling for the Jacobian.
+          SCALE_MATRIX = .FALSE.
+        END IF
+
+!       Define the number of event functions.
+        IF (PRESENT(NEVENTS)) THEN
+          IF (NEVENTS>0) THEN
+            NG = NEVENTS
+          ELSE
+            NG = 0
+          END IF
+        ELSE
+          NG = 0
+        END IF
+
+!       Process the constrained solution components.
+        IF (PRESENT(CONSTRAINED)) THEN
+          NDX = SIZE(CONSTRAINED)
+          IF (NDX<1) THEN
+            MSG = 'In SET_INTERMEDIATE_OPTS the size of CONSTRAINED < 1.'
+            CALL XERRDV(MSG,410,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          IF (.NOT.(PRESENT(CLOWER)) .OR. .NOT.(PRESENT(CUPPER))) THEN
+            MSG = 'In SET_INTERMEDIATE_OPTS the arrays CLOWER and CUPPER'
+            CALL XERRDV(MSG,420,1,0,0,0,0,ZERO,ZERO)
+            MSG = 'are not present.'
+            CALL XERRDV(MSG,420,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          IF (SIZE(CLOWER)/=NDX .OR. SIZE(CUPPER)/=NDX) THEN
+            MSG = 'In SET_INTERMEDIATE_OPTS the size of the solution bound'
+            CALL XERRDV(MSG,430,1,0,0,0,0,ZERO,ZERO)
+            MSG = 'arrays must be the same as the CONSTRAINED array.'
+            CALL XERRDV(MSG,430,2,0,0,0,0,ZERO,ZERO)
+          END IF
+!         Note: The contents of CONSTRAINED will be checked
+!         in subroutine DVODE after NEQ is known.
+          IF (ALLOCATED(IDX)) THEN
+            DEALLOCATE (IDX,LB,UB,STAT=IER)
+            CALL CHECK_STAT(IER,30)
+          END IF
+          ALLOCATE (IDX(NDX),LB(NDX),UB(NDX),STAT=IER)
+          CALL CHECK_STAT(IER,40)
+          IDX(1:NDX) = CONSTRAINED(1:NDX)
+          LB(1:NDX) = CLOWER(1:NDX)
+          UB(1:NDX) = CUPPER(1:NDX)
+          BOUNDS = .TRUE.
+        ELSE
+          IF (ALLOCATED(IDX)) THEN
+            DEALLOCATE (IDX,LB,UB,STAT=IER)
+            CALL CHECK_STAT(IER,50)
+          END IF
+          NDX = 0
+          BOUNDS = .FALSE.
+        END IF
+
+!       Is the Jacobian constant?
+        J_IS_CONSTANT = .FALSE.
+        J_HAS_BEEN_COMPUTED = .FALSE.
+
+!       Load the user options into the solution structure.
+        OPTS%MF = MF
+        OPTS%METH = METH
+        OPTS%MITER = MITER
+        OPTS%MOSS = MOSS
+        OPTS%DENSE = DENSE
+        OPTS%BANDED = BANDED
+        OPTS%SPARSE = SPARSE
+        OPTS%NG = NG
+
+!       Process the miscellaneous options.
+
+!       Don't step past TCRIT variable.
+        IF (PRESENT(TCRIT)) THEN
+          RUSER(1) = TCRIT
+        ELSE
+          RUSER(1) = ZERO
+        END IF
+
+!       DVODE optional parameters.
+        IOPT = 1
+        IF (PRESENT(MAXORD)) THEN
+          IUSER(5) = MAXORD
+          IOPT = 1
+        END IF
+        IF (PRESENT(MXSTEP)) THEN
+          IUSER(6) = MXSTEP
+          IOPT = 1
+        END IF
+        IF (PRESENT(MXHNIL)) THEN
+          IUSER(7) = MXHNIL
+          IOPT = 1
+        END IF
+        IF (PRESENT(H0)) THEN
+          RUSER(5) = H0
+          IOPT = 1
+        END IF
+        IF (PRESENT(HMAX)) THEN
+          RUSER(6) = HMAX
+          IOPT = 1
+        END IF
+        IF (PRESENT(HMIN)) THEN
+          RUSER(7) = HMIN
+          IOPT = 1
+        END IF
+        U_PIVOT = ONE
+        OPTS%IOPT = IOPT
+
+!       Define the error tolerances.
+
+!       Relative error tolerances.
+        NRE = 1
+        ALLOCATE (OPTS%RTOL(NRE),STAT=IER)
+        CALL CHECK_STAT(IER,60)
+        IF (PRESENT(RELERR)) THEN
+          IF (RELERR<ZERO) THEN
+            MSG = 'RELERR must be nonnegative.'
+            CALL XERRDV(MSG,440,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          OPTS%RTOL = RELERR
+        ELSE
+          IF (ALLOW_DEFAULT_TOLS) THEN
+             OPTS%RTOL = 1.0E-4_dp
+             MSG = 'By not specifying RELERR, you have elected to use a default'
+             CALL XERRDV(MSG,450,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'relative error tolerance equal to 1.0D-4. Please be aware a'
+             CALL XERRDV(MSG,450,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'tolerance this large is not appropriate for all problems.'
+             CALL XERRDV(MSG,450,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'Execution will continue'
+             CALL XERRDV(MSG,450,1,0,0,0,0,ZERO,ZERO)
+          ELSE
+             MSG = 'You must specify a nonzero relative error tolerance.'
+             CALL XERRDV(MSG,460,2,0,0,0,0,ZERO,ZERO)
+          END IF
+        END IF
+
+!       Absolute error tolerances.
+        IF (PRESENT(ABSERR_VECTOR)) THEN
+          IF (MINVAL(ABSERR_VECTOR)<ZERO) THEN
+            MSG = 'All components of ABSERR_VECTOR must'
+            CALL XERRDV(MSG,460,1,0,0,0,0,ZERO,ZERO)
+            MSG = 'be nonnegative.'
+            CALL XERRDV(MSG,460,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          NAE = SIZE(ABSERR_VECTOR)
+        ELSE
+          NAE = 1
+        END IF
+        ALLOCATE (OPTS%ATOL(NAE),STAT=IER)
+        CALL CHECK_STAT(IER,70)
+        IF (PRESENT(ABSERR_VECTOR)) THEN
+          OPTS%ATOL = ABSERR_VECTOR
+        ELSE IF (PRESENT(ABSERR)) THEN
+          IF (ABSERR<ZERO) THEN
+            MSG = 'ABSERR must be nonnegative.'
+            CALL XERRDV(MSG,470,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          OPTS%ATOL = ABSERR
+        ELSE
+          IF (ALLOW_DEFAULT_TOLS) THEN
+             OPTS%ATOL = 1D-6
+             MSG = 'By not specifying ABSERR, you have elected to use a default'
+             CALL XERRDV(MSG,480,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'absolute error tolerance equal to 1.0D-6. Please be aware a'
+             CALL XERRDV(MSG,480,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'tolerance this large is not appropriate for all problems.'
+             CALL XERRDV(MSG,480,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'Execution will continue'
+             CALL XERRDV(MSG,480,1,0,0,0,0,ZERO,ZERO)
+          ELSE
+             MSG = 'You must specify a vector of absolute error tolerances or'
+             CALL XERRDV(MSG,490,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'a scalar error tolerance. It is recommended that you use'
+             CALL XERRDV(MSG,490,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'a vector of absolute error tolerances.'
+             CALL XERRDV(MSG,490,2,0,0,0,0,ZERO,ZERO)
+          END IF
+        END IF
+
+!       ITOL error tolerance flag.
+!          ITOL   RTOL     ATOL            EWT(i)
+!            1   scalar   scalar  RTOL*ABS(Y(i)) + ATOL
+!            2   scalar   array   RTOL*ABS(Y(i)) + ATOL(i)
+!            3   array    scalar  RTOL(i)*ABS(Y(i)) + ATOL
+!            4   array    array   RTOL(i)*ABS(Y(i)) + ATOL(i)
+        IF (PRESENT(ABSERR_VECTOR)) THEN
+          OPTS%ITOL = 2
+        ELSE
+          OPTS%ITOL = 1
+        END IF
+        RETURN
+
+  END FUNCTION SET_INTERMEDIATE_OPTS
+!_______________________________________________________________________
+
+  FUNCTION SET_OPTS(METHOD_FLAG, DENSE_J, BANDED_J, SPARSE_J,          &
+    USER_SUPPLIED_JACOBIAN, SAVE_JACOBIAN, CONSTANT_JACOBIAN,          &
+    LOWER_BANDWIDTH, UPPER_BANDWIDTH, SUB_DIAGONALS, SUP_DIAGONALS,    &
+    RELERR, RELERR_VECTOR, ABSERR, ABSERR_VECTOR, TCRIT, H0, HMAX,     &
+    HMIN, MAXORD, MXSTEP, MXHNIL, YMAGWARN, SETH, UPIVOT, NZSWAG,      &
+    USER_SUPPLIED_SPARSITY, NEVENTS, CONSTRAINED, CLOWER, CUPPER,      &
+    MA28_ELBOW_ROOM, MC19_SCALING, MA28_MESSAGES, MA28_EPS,            &
+    MA28_RPS, CHANGE_ONLY_f77_OPTIONS,JACOBIAN_BY_JACSP)               &
+  RESULT(OPTS)
+
+! FUNCTION SET_OPTS:
+!    VODE.f77 method flag:
+!       METHOD_FLAG
+!    Jacobian type:
+!       DENSE_J, BANDED_J, SPARSE_J
+!    Analytic Jacobian:
+!       USER_SUPPLIED_JACOBIAN
+!    Jacobian options:
+!       SAVE_JACOBIAN, CONSTANT_JACOBIAN. JACOBIAN_BY_JACSP
+!    If banded Jacobian:
+!       LOWER_BANDWIDTH, UPPER_BANDWIDTH
+!    If specify the nonzero diagonals for banded Jacobian:
+!       SUB_DIAGONALS, SUP_DIAGONALS
+!    Error tolerances:
+!       RELERR, RELERR_VECTOR, ABSERR, ABSERR_VECTOR
+!    VODE.f77 optional parameters:
+!       TCRIT, H0, HMAX, HMIN, MAXORD, MXSTEP, MXHNIL
+!    Solution smaller than absolute error tolerance:
+!       YMAGWARN
+!    Sparse flags:
+!       SETH, UPIVOT, NZSWAG, USER_SUPPLIED_SPARSITY
+!       MA28_ELBOW_ROOM, MC19_SCALING, MA28_MESSAGES
+!       MA28_EPS, MA28_RPS
+!    Rootfinding:
+!       NEVENTS
+!    Impose bounds on solution:
+!       CONSTRAINED, CLOWER, CUPPER
+!    Change one or more of HMAX, HMIN, TCRIT, MXSTEP, MXHNIL, MAXORD
+!       CHANGE_ONLY_f77_OPTIONS
+! RESULT(OPTS)
+
+! SET_OPTIONS sets user parameters for DVODE via keywords. Values that
+! are defined herein will be used internally by DVODE. All option
+! keywords are OPTIONAL and order is not important.
+
+! Note that DVODE_F90 requires that one of SET_NORMAL_OPTS or
+! SET_INTERMEDIATE_OPTS or SET_OPTS is called before the first
+! time DVODE_F90 is called.
+
+!                     Quick Summary of Options
+
+! METHOD_FLAG            - any legal value of MF as in DVODE
+! DENSE_J                - Jacobian is sparse alternative to MF
+! BANDED_J               - Jacobian is banded alternative to MF 
+! SPARSE_J               - Jacobian is sparse alternative to MF   
+! USER_SUPPLIED_JACOBIAN - User will supply Jacobian subroutine
+!                          (user supplied subroutine JAC required)
+! SAVE_JACOBIAN          - Jacobian will be saved and reused
+! CONSTANT_JACOBIAN      - Jacobian is constant
+! JACOBIAN_BY_JACSP      - Use Doug Salane's approximate Jacobian
+!                          algorithm
+! LOWER_BANDWIDTH        - Lower bandwidth ML in DVODE
+! UPPER_BANDWIDTH        - Upper bandwidth MU in DVODE
+! SUB_DIAGONALS          - Nonzero sub diagonals in Jacobian
+! SUP_DIAGONALS          - Nonzero super diagonals in Jacobian
+! RELERR                 - Scalar relative error tolerance in DVODE
+! RELERR_VECTOR          - Vector relative error tolerance in DVODE
+! ABSERR                 - Scalar absolute error tolerance in DVODE
+! ABSERR_VECTOR          - Vector absolute error tolerance in DVODE
+! TCRIT                  - Critical time TCRIT in DVODE
+! H0                     - Starting step size in DVODE
+! HMAX                   - Maximum step size in DVODE 
+! HMIN                   - Minimum step size in DVODE 
+! MAXORD                 - Maximum integration order in DVODE
+! MXSTEP                 - Maximum number of integration steps
+!                          in DVODE
+! MXHNIL                 - Maximum number of T+H=T messages in DVODE
+! YMAGWARN               - Warn if magnitude of solution is smaller
+!                          than absolute error tolerance
+! SETH                   - Sparse Jacobian element threshold value
+! UPIVOT                 - MA28 partial pivoting parameter
+! NZSWAG                 - guess for the number of nonzeros in sparse
+!                          Jacobian
+! USER_SUPPLIED_SPARSITY - user will supply sparsity structure
+!                          arrays by calling USERSETS_IAJA 
+! MA28_ELBOW_ROOM        - Supply an integer greater than 2 if you
+!                          wish to increase the elbow room in the
+!                          MA28 work arrays (by MA28_ELBOW_ROOM * NZA).
+! MC19_SCALING           - .TRUE. if you wish to invoke sparse scaling
+!                           of the Jacobian.
+! MA28_MESSAGES          - Control printing of MA28 messages
+! MA28_RPS               - Redo MA28AD pivot sequence if a singularity
+!                          is encountered
+! NEVENTS                - number of user defined root finding functions
+!                          (user supplied subroutine G required)
+! CONSTRAINED,           - array of solution component indices that
+! CLOWER,                  are to be constrained by the lower and
+! CUPPER                   upper bound arrays CLOWER and CUPPER so that
+!                          CLOWER(I) <= Y(CONSTRAINED(I)) <= CUPPER(I)
+! CHANGE_ONLY_f77_OPTIONS- flag to indicate whether to only change any
+!                          of the parameters MXSTEP, MXHNIL, MAXORD,
+!                          HMAX, HMIN, TCRIT
+!                     Options Types
+! METHOD_FLAG            - integer
+! DENSE_J                - logical
+! BANDED_J               - logical
+! SPARSE_J               - logical
+! USER_SUPPLIED_JACOBIAN - logical
+! SAVE_JACOBIAN          - logical
+! CONSTANT_JACOBIAN      - logical
+! JACOBIAN_BY_JACSP      - logical
+! LOWER_BANDWIDTH        - integer
+! UPPER_BANDWIDTH        - integer
+! SUB_DIAGONALS          - integer array
+! SUP_DIAGONALS          - integer array
+! RELERR                 - KPP_REAL scalar
+! RELERR_VECTOR          - KPP_REAL vector
+! ABSERR                 - KPP_REAL scalar
+! ABSERR_VECTOR          - KPP_REAL vector
+! TCRIT                  - KPP_REAL scalar
+! H0                     - KPP_REAL scalar
+! HMAX                   - KPP_REAL scalar
+! HMIN                   - KPP_REAL scalar
+! MAXORD                 - integer
+! MXSTEP                 - integer
+! MXHNIL                 - integer
+! YMAGWARN               - logical
+! SETH                   - KPP_REAL scalar
+! UPIVOT                 - KPP_REAL scalar
+! NZSWAG                 - integer
+! USER_SUPPLIED_SPARSITY - logical
+! NEVENTS                - integer
+! CONSTRAINED            - integer array
+! CLOWER                 - KPP_REAL array
+! CUPPER                 - KPP_REAL array
+! CHANGE_ONLY_f77_OPTIONS- logical
+
+! Argument list parameters:
+! METHOD_FLAG              = integration method flag
+! ABSERR                   = scalar absolute error tolerance
+! ABSERR_VECTOR            = vector of absolute error tolerances
+! RELERR                   = scalar relative error tolerance
+! RELERR_VECTOR            = vector of relative error tolerances
+! NEVENTS                  = Number of event functions (requires
+!                            user-supplied GFUN)
+! DENSE_J                  = use dense linear algebra if .TRUE.
+! BANDED_J                 = use banded linear algebra if .TRUE.
+!   LOWER_BANDWIDTH        = lower bandwidth of the Jacobian
+!                            (required if BANDED_J = .TRUE.)
+!   UPPER_BANDWIDTH        = upper bandwidth of the Jacobian
+!                            (required if BANDED_J = .TRUE.)
+!   SUB_DIAGONALS          = starting row numbers of nonzero sub
+!                            diagonals counting up from the lowest
+!                            sub diagonal
+!   SUP_DIAGONALS          = starting column numbers of nonzero
+!                            super diagonals counting up from the
+!                            lowest super diagonal
+! SPARSE_J                 = use sparse linear algebra if .TRUE.
+!   UPIVOT                 = partial pivot control flag (default=ONE)
+!                          = 0.0D0 for no partial pivoting
+!                          = ONE for (full) partial pivoting
+!                            Values between 0.0D0 and ONE yield
+!                            MA28 (partial) partial pivoting.
+!   NZSWAG                 = If you wish you may supply a guess,
+!                            NZSWAG, at the number of nonzeros
+!                            in the Jacobian matrix. In some cases
+!                            this will speed up the determination
+!                            of the necessary storage.
+!   USER_SUPPLIED_SPARSITY = .TRUE. if you wish to supply the sparsity
+!                            structure arrays directly by calling
+!                            USERSETS_IAJA
+!   MA28_ELBOW_ROOM        = Supply an integer greater than 2 if you
+!                            wish to increase the elbow room in the
+!                            MA28 work arrays (by MA28_ELBOW_ROOM * NZA).
+!   MC19_SCALING           = .TRUE. if you wish to invoke sparse scaling
+!                            of the Jacobian.
+!   MA28_MESSAGES          = .TRUE. to print all MA28 messages.
+!   MA28_EPS               = MA28 singularity threshold. If MA28BD
+!                            determines that the ratio of the current
+!                            pivot to the largest element in the row
+!                            is smaller than EPS, it will flag the
+!                            Jacobian as singular and force MA28AD
+!                            to calculate a new pivot sequence.
+!   MA28_RPS               = .TRUE. to force MA28AD to calculate a new
+!                            pivot sequence for use in MA28BD if a
+!                            singular iteration matrix is encountered
+!                            is smaller than EPS, it will flag the
+!                            Jacobian as singular and force MA28AD
+!                            to calculate a new pivot sequence.
+! USER_SUPPLIED_JACOBIAN   = exact Jacobian option
+!                            (requires user-supplied JAC)
+! SAVE_JACOBIAN            = reuse saved Jacobians
+! JACOBIAN_BY_JACSP        = use Doug Salane's Jacobian algorithm
+! TCRIT                    = critical time
+! H0                       = initial step size to try
+! HMAX                     = maximum allowable step size
+! HMIN                     = minimum allowable step size
+! MAXORD                   = maximum allowable integration order
+! MXSTEP                   = maximum number of integration steps
+!                            between calls to DVODE
+! MXHNIL                   = maximum number of printed messages
+!                            if the T+H=T condition occurs
+! CONSTRAINED              = array containing the indices of
+!                            solution components which are to be
+!                            be constrained by CLOWER and CUPPER.
+!                            The size of CONSTRAINED must be
+!                            positive and not exceed NEQ, the
+!                            number of ODEs. Each component of
+!                            CONSTRAINED must be between 1 and NEQ.
+! CLOWER, CUPPER           = lower and upper bound arrays for the.
+!                            solution. Each must be the same size
+!                            as the CONSTRAINED vector.
+! YMAGWARN                 = If .TRUE., a warning will be issued
+!                            before any return from DVODE for any
+!                            solution component whose magnitude
+!                            is smaller than the absolute error
+!                            tolerance for that component.
+!   User-callable Routines:
+!   The following routines may be called by the user:
+!   SET_OPTS      : Used to set options for DVODE_F90
+!   GET_STATS     : Used to gather summary integration
+!                   statistics following a successful
+!                   return from DVODE_F90
+!   DVINDY        : Used if the user wishes to interpolate
+!                   solution or derivative following a
+!                   successful return from DVODE_F90
+!   USERSETS_IAJA : Used if the user wishes to supply the
+!                   sparsity structure directly
+!   Detailed Description of SET_OPTS
+!   The following are defined in SET_OPTS:
+!   OPTS%MF     = Integration method flag (MF)
+!   OPTS%METH   = Integration family flag (METH)
+!   OPTS%MITER  = Iteration type flag (MITER)
+!   OPTS%MOSS   = Sparsity array type flag (MOSS)
+!   OPTS%ITOL   = Error tolerance flag (ITOL) (ITOL)
+!   OPTS%ATOL   = Absolute error tolerance(s) (ATOL)
+!   OPTS%RTOL   = Relative error tolerance(s) (RTOL)
+!   OPTS%DENSE  = Use dense linear algebra
+!   OPTS%BANDED = Use banded linear algebra 
+!   OPTS%SPARSE = Use sparse linear algebra 
+!   OPTS%IOPT   = DVODE optional parameter input flag (IOPT)
+!   OPTS%NG     = Number of event functions
+!   RUSER(1)    = TCRIT (don't step past)
+!   IUSER(1)    = Jacobian lower bandwidth (ML)
+!   IUSER(2)    = Jacobian upper bandwidth (MU)
+!   RUSER(5)    = Initial step size to try (H0)
+!   RUSER(6)    = Maximum allowable step size (HMAX)
+!   RUSER(7)    = Minimum allowable step size (HMIN)
+!   IUSER(5)    = Maximum allowable integration order (MAXORD)
+!   IUSER(6)    = Maximum number of integration steps (MXSTEP)
+!   IUSER(7)    = Maximum number of T+H=T messages (MXHNIL)
+!   NZ_SWAG     = Guess for the number of nonzeros in the
+!                 sparse Jacobian
+!   NG          = Number of user event functions
+!   BOUNDS,     = Nonnegativity information
+!   NDX, IDX
+!   YMAXWARN    = Warning flag for |y(t)| < abserr
+!   MA28_ELBOW_ROOM = Integer multiple by which to increase
+!                     the elbow room in the MA28 sparse work
+!                     arrays
+!   MC19_SCALING    = logical flag to control MC19 sparse
+!                     scaling of the Jacobian
+!   MA28_MESSAGES   = logical flag to control printing of MA28
+!                     messages.
+!   MA28_EPS        = KPP_REAL MA28 singularity threshold
+!
+!                         All Options
+!
+! METHOD_FLAG
+!
+! Default:   Not used
+! Change to: No need to specify if use one of next three parameters
+!            but can be changed to any value of the MF method flag
+!            in dvode.f77
+!
+! DENSE_J
+!
+! Default:   .FALSE.
+! Change to: .TRUE. for dense linear algebra
+!
+! BANDED_J
+!
+! Default:   .FALSE.
+! Change to: .TRUE. for banded linear algebra
+!
+! SPARSE_J
+!
+! Default:   .FALSE.
+! Change to: .TRUE. for sparse linear algebra
+
+! USER_SUPPLIED_JACOBIAN
+!
+! Default:   .FALSE.
+! Change to: .TRUE. if want to supply subroutine JAC to DVODE_F90
+!
+! SAVE_JACOBIAN
+!
+! Default:   .TRUE.
+! Change to: .FALSE. if do not want DVODE_F90 to reuse saved
+!            Jacobians
+!
+! JACOBIAN_BY_JACSP
+!
+! Default:   .FALSE.
+! Change to: .TRUE. to approximate the Jacobian using Doug Salane's
+!            JACSP Jacobian subroutine
+!
+! CONSTANT_JACOBIAN
+!
+! Default:   .FALSE.
+! Change to: .TRUE. if Jacobian is constant
+!
+! LOWER_BANDWIDTH
+!
+! Default:   Not used
+! Change to: Lower bandwidth if BANDED_J = .TRUE.
+!
+! UPPER_BANDWIDTH
+!
+! Default:   Not used
+! Change to: Upper bandwidth if BANDED_J = .TRUE.
+!
+! SUB_DIAGONALS
+!
+! Default:   Not used
+! Change to: Starting row locations for sub diagonals in
+!            banded Jacobian
+!
+! SUP_DIAGONALS
+!
+! Default:   Not used
+! Change to: Starting columns locations for super diagonals
+!            in banded Jacobian
+!
+! RELERR
+!
+! Default:   None
+! Change to: Specify a nonzero relative error tolerance
+!
+! RELERR_VECTOR
+!
+! Default:   Not used
+! Change to: Vector of relative error tolerances
+!
+! ABSERR
+!
+! Default:   None
+! Change to: Specify a scalar absolute error tolerance or
+!            a vector of absolute error tolerances
+!
+! ABSERR_VECTOR
+!
+! Default:   Not used
+! Change to: Vector of absolute error tolerances
+!
+! TCRIT
+!
+! Default:   Not used
+! Change to: Value of T which DVODE_F90 is not to step past
+!
+!     H0
+!
+! Default:   Determined by DVODE_F90
+! Change to: Guess for initial step size
+!
+! HMAX
+!
+! Default:   Infinity
+! Change to: Maximum allowable step size
+!
+! HMIN
+!
+! Default:   0.0D0
+! Change to: Minimum allowable step size
+!
+! MAXORD
+!
+! Default:   Determined by DVODE_F90
+! Change to: Maximum integration order
+!
+! MXSTEP
+!
+! Default:   5000
+!     Change to: Maximum number of steps between output points
+!
+! MXHNIL
+!
+! Default:   10
+! Change to: Maximum number of times T+H=T message will be printed
+!
+! YMAGWARN
+!
+! Default:   .FALSE.
+! Change to: .TRUE. if wish to be warned when the magnitude of the
+!            solution is smaller than the absolute error tolerance
+!
+! SETH
+!
+! Default:   0.0D0
+! Change to: Threshold value below which Jacobian elements in the
+!            sparse Jacobian are considered to be zero
+!
+! UPIVOT
+!
+! Default:   1.0D0
+! Change to: partial pivoting factor between 0.0d0 and 1.0d0 to
+!            control the degree of partial pivoting used in sparse
+!            Gaussian Elimination
+!
+! NZSWAG
+!
+! Default:   Determined by DVODE_F90
+! Change to: Amount by which to increment sizes of sparse arrays
+!
+! USER_SUPPLIED_SPARSITY
+!
+! Default:   .FALSE.
+! Change to: .TRUE. if wish to call subroutine USERSETS_IAJA to
+!            define the sparse structure array pointers directly
+!
+! NEVENTS
+!
+! Default:   0
+! Change to: Number of event functions if wish to supply subroutine
+!            GFUN to DVODE_F90
+!
+! CONSTRAINED
+!
+! Default:   Bounds not imposed on solution
+! Change to: Array of indices for components on which to impose
+!            solution bounds
+!
+! CLOWER
+!
+! Default:   Not used
+! Change to: Vector containing lower bounds corresponding to
+!            CONSTRAINED
+!
+! CUPPER
+!
+! Default:   Not used
+! Change to: Vector containing upper bounds corresponding to
+!            CONSTRAINED
+!
+! MA28_ELBOW_ROOM
+!
+! Default:   2
+! Change to: Larger value to allow the sparse arrays more
+!            elbow room
+!
+! MC19_SCALING
+!
+! Default:   .FALSE.
+! Change to: .TRUE. to invoke scaling of the sparse solution
+!
+! MA28_MESSAGES
+!
+! Default:   .FALSE.
+! Change to: .TRUE. to have MA28 diagnostic messages written
+!            to unit 6
+!
+! MA28_EPS
+!
+! Default:   1.0D-4
+! Change to: Smaller positive value to allow the ratio of the
+!            magnitude of pivot elements and remaining row
+!            entries to be smaller before the iteration matrix
+!            is considered to be numerically singularity
+!
+! MA28_RPS
+!
+! Default:   .FALSE.
+! Change to: Redo the MA28AD sparse pivoting sequence any time
+!            MA28BD considers the iteration matrix to be
+!            numerically singularity
+!
+! Note on Jacobian Storage Formats:
+!
+! If you supply an analytic Jacobian PD, load the
+! Jacobian elements DF(I)/DY(J), the partial
+! derivative of F(I) with respect to Y(J), using
+! the following formats. Here, Y is the solution,
+! F is the derivative, and PD is the Jacobian.
+!
+! For a full Jacobian, load PD(I,J) with DF(I)/DY(J).
+! Your code might look like this:
+!    DO J = 1, NEQ
+!       DO I = 1, NEQ
+!          PD(I,J) = ... DF(I)/DY(J)
+!       END DO
+!    END DO       
+!
+! For a banded Jacobian, load PD(I-J+MU+1,J) with
+! DF(I)/DY(J) where ML is the lower bandwidth
+! and MU is the upper bandwidth of the Jacobian.
+! Your code might look like this:
+!    DO J = 1, NEQ
+!       I1 = MAX(1,J-ML)
+!       I2 = MIN(N,J+MU)
+!       DO I = I1, I2
+!          K = I-J+MU+1
+!          PD(K,J) = ... DF(I)/DY(J)
+!       END DO
+!    END DO
+!
+! For a sparse Jacobian, IA(J+1)-IA(J) is the number
+! of nonzeros in column change. JA(I) indicates the
+! rows in which the nonzeros occur. For column J,
+! the nonzeros occurs in rows I=JA(K) for K=I1,...,I2
+! where I1=IA(J) and I2= IA(J+1)-1. Load DF(I)/DY(J)
+! in PD(I). Your code might look like this:
+!    DO J = 1, NEQ
+!       I1 = IA(J)
+!       I2 = IA(J+1) - 1
+!       DO K = I1, I2
+!          I = JA(K)
+!          PD(I) = ... DF(I)/DY(J)
+!       END DO
+!    END DO
+!
+!                    More on Sparsity Options
+!
+! Two facts of life regarding the use of direct sparse solvers are
+! (1) significant improvements are possible, and (2) the use of
+! direct sparse solvers often is more demanding of the user.
+! Although SET_NORMAL_OPTS provides modest provisions for solving
+! problems with sparse Jacobians, using SET_OPTS rather than
+! SET_NORMAL_OPTS provides several advanced options. These options
+! are described below. The recommended manner in which to use
+! these options is also provided. Note that each of these optional
+! parameters have default values and need not be specified in your
+! call to SET_OPTS if you wish to use the default values. Note
+! also that the order in which the options are specified in a call
+! to SET_OPTS is not important.
+!
+!  (1) First determine if it is feasible to use either the BANDED
+!      or DENSE Jacobian option.
+!         Recommendation:
+!         Use the DENSE or BANDED option if possible. They do
+!         not require use of most of the options described here.
+!    
+!  (2) The Jacobian is approximated internally using differences
+!      if you do not provide an analytic Jacobian. The option
+!      USER_SUPPLIED_JACOBIAN=.TRUE. may be used if you wish to
+!      provide an analytic Jacobian.
+!         Recommendation:
+!         Use an internally generated Jacobian for most problems
+!         but consider providing an analytic Jacobian if it not
+!         too much trouble.
+!
+!  (3) If you do not provide the sparse structure arrays, they
+!      are approximated internally by making NEQ calls to your
+!      derivative subroutine and using differences to approximate
+!      the structure of the Jacobian. The option
+!      USER_SUPPLIED_SPARSITY and a call to USERSETS_IAJA can
+!      be used to supply the arrays directly. You can also use
+!      subroutine SET_IAJA to approximate the structure using
+!      different perturbation factors than those used in DVODE_F90.
+!         Recommendations:
+!         Although allowing DVODE_F90 to approximate the Jacobian
+!         structure suffices for most problems, if you know the
+!         sparsity pattern provide it directly. This eliminates
+!         the possibility that an important element that happens
+!         to be 0 when the sparsity pattern is approximated is
+!         later nonzero; and it avoids the NEQ extra calls to
+!         your derivative subroutine to approximate the structure.
+!         Note that a nemesis for any sparse ode solver is a
+!         problem in which the sparsity pattern actually changes
+!         during the integration. An example of such a problem
+!         is provided in the demohum21.f90 demonstration program.
+!         If you know the sparsity pattern changes or if you
+!         suspect it does because DVODE_F90 is generating
+!         nonconvergence error messages, consider having DVODE_F90
+!         re-approximate the structure by calling SET_OPTS and
+!         forcing an integration restart when control is returned
+!         to your calling program. Please do not do this at every
+!         output point since it will be extremely time consuming
+!         and inefficient if it is not needed.
+!
+!  (4) The optional parameter UPIVOT is used to control the type
+!      of partial pivoting pivoting in MA28AD. UPIVOT=0.0D0
+!      corresponds to no pivoting; and UPIVOT=1.0D0 corresponds
+!      to partial pivoting. UPIVOT may be assigned any value
+!      between 0 and 1. The pivoting strategy used in MA28AD is
+!      to accept a pivot for which the magnitude of the pivot
+!      element is greater than or equal to UPIVOT times the
+!      magnitude of the largest remaining element in the pivot
+!      row. The default value is UPIVOT=1.DO
+!         Recommendation:
+!         Use the default value UPIVOT=1.0D0.
+!
+!  (5) The optional parameter NZSWAG may/should be used to speed
+!      up the determination of acceptable array sizes for the
+!      internal sparse working arrays and the sparse Jacobian.
+!      Initially, DVODE_F90 allocates arrays of length
+!      max(10*NEQ,NSZSWAG) and increases this amount by
+!      max(10*NEQ,ELBOW_ROOM*NSZSWAG) as necessary. NZSWAG
+!      has a default value of 1000 and ELBOW_ROOM has a default
+!      value of 2.
+!         Recommendation:
+!         Provide a larger value for NZSWAG particularly if NEQ
+!         is large and you suspect considerable fill-in due to
+!         partial pivoting.
+!
+!  (6) The optional parameter ELBOW_ROOM may be used to control
+!      the amount of "elbow room" needed in the MA28 sparse arrays.
+!      The default value is 2 but a larger value can sometimes
+!      speed up the determination of sparse array sizes.
+!         Recommendation:
+!         MA28 error and diagnostic messages are turned off by
+!         default. The optional parameter MA28_MESSAGES may be
+!         used to turn them on if it is assigned a nonzero value.
+!         If you see several messages that state that LIRN_ALL
+!         or LICN_ALL is too small and that additional storage
+!         is being allocated for another try, and you have
+!         provided a large value for NZSWAG, increase the size
+!         of ELBOW_ROOM.
+!
+!  (7) The optional parameter SETH may be assigned a nonzero value
+!      that represents a threshhold value for the magitude of
+!      elements in the Jacobian below which the element will be
+!      treated as being zero. The default value is SETH=0.0D0.
+!         Recommendation:
+!         Use the default value SETH=0.0D0.
+!
+!  (8) MA28AD determines the pivot sequence to be used in subsequent
+!      calls to MA28BD. When MA28BD is called it considers the
+!      iteration matrix to be numerically singular if the magnitude
+!      of the ratio of the largest remaining element in the pivot
+!      row to the pivot element is less than EPS. This condition
+!      can arise since MA28BD is using an out-of-date pivot sequence.
+!      The default value used is EPS=1.0D-4. A smaller value
+!      of EPS may be appropriate for some problems. The optional
+!      parameter MA28_EPS may be used to change the default value.
+!         Recommendation:
+!         Use the default value EPS=1.0D-4.
+!
+!  (9) Badly scaled Jacobians can cause problems for sparse solvers.
+!      The parameter MA28_SCALING may be set .TRUE. to instruct
+!      DVODE_F90 to scale the iteration matrix using MC19AD. This
+!      can positively impact the performance of MA28AD. The default
+!      setting is MA28_SCALING=.FALSE.
+!         Recommendation:
+!         Unless the solution is not successful, use the default
+!         setting for MA29_SCALING; but consider using scaling
+!         if you know the problem is badly scaled (e.g., if the
+!         magnitudes of the components differ greatly).
+!
+! (10) As mentioned above, MA28BD uses the pivot sequence initially
+!      determined by MA28AD. When a singularity is diagnosed, the
+!      internal procedure used by the DENSE and BANDED options is
+!      used to reduce the step size and re-calulate the iteration
+!      matrix. This works fine for most problems; but particularly
+!      for badly scaled problems, the solution may be unsuccessful
+!      or it may drag along using small step sizes. This is due
+!      to the fact MA28BD will continue to use the out-of-date pivot
+!      sequence until singularity is again diagnosed. An option not
+!      available in previous sparse ode solvers may be used to
+!      instruct DVODE_F90 to force MA28AD to calculate a new pivot
+!      sequence when MA28BD encounters a singularity. Although
+!      MA28AD is considerably slower than MA28BD, the additional
+!      calls to MA28AD ensure that the pivot sequence is more
+!      up to date. This can increase both the accuracy and the
+!      efficiency very dramatically. The demodirn.f90 demonstration
+!      program provides an illustration of the dramatic improvement
+!      that is possible. The optional parameter MA28_RPS may be set
+!      .TRUE. to force these pivot sequence updates.
+!         Recommendation:
+!         Use the default value MA28_RPS=.FALSE; but if DVODE_F90
+!         encounters nonconvergence, use MA28_RPS=.TRUE. to force
+!         pivot sequence updates. Note that use of this option
+!         will usually obviate the necessity to use the other
+!         options described above. Note that we decided not to
+!         use MA28_RPS=.TRUE. as default simply because other
+!         sparse ode solvers are averse to calling MA28AD more
+!         than is absolutely necessary for a given problem.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Function Return Value ..
+        TYPE (VODE_OPTS) :: OPTS
+! ..
+! .. Scalar Arguments ..
+        KPP_REAL, OPTIONAL, INTENT (IN) :: ABSERR, H0, HMAX, HMIN,         &
+        MA28_EPS, RELERR, SETH, TCRIT, UPIVOT
+        INTEGER, OPTIONAL, INTENT (IN) :: LOWER_BANDWIDTH, MAXORD,          &
+          MA28_ELBOW_ROOM, METHOD_FLAG, MXHNIL, MXSTEP, NEVENTS, NZSWAG,    &
+          UPPER_BANDWIDTH
+        LOGICAL, OPTIONAL, INTENT (IN) :: BANDED_J, CHANGE_ONLY_f77_OPTIONS,&
+          CONSTANT_JACOBIAN, DENSE_J, JACOBIAN_BY_JACSP, MA28_MESSAGES,     &
+          MA28_RPS, MC19_SCALING, SAVE_JACOBIAN, SPARSE_J,                  &
+          USER_SUPPLIED_JACOBIAN, USER_SUPPLIED_SPARSITY, YMAGWARN
+! ..
+! .. Array Arguments ..
+        KPP_REAL, OPTIONAL, INTENT (IN) :: ABSERR_VECTOR(:), RELERR_VECTOR(:)
+        KPP_REAL, OPTIONAL :: CLOWER(:), CUPPER(:)
+        INTEGER, OPTIONAL, INTENT (IN) :: CONSTRAINED(:), SUB_DIAGONALS(:), &
+        SUP_DIAGONALS(:)
+! ..
+! .. Local Scalars ..
+        INTEGER ::  IER, IOPT, METH, MF, MFA, MFSIGN, MITER, ML, MOSS, MU,  &
+          NAE, NG, NRE
+        LOGICAL :: BANDED, DENSE, SPARSE
+        CHARACTER (80) :: MSG
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ALLOCATED, IABS, MAX, MINVAL, PRESENT, SIGN, SIZE
+! ..
+! .. FIRST EXECUTABLE STATEMENT SET_OPTS
+! ..
+    RUSER(1:LRWUSER) = ZERO
+    IUSER(1:LIWUSER) = 0
+    
+!   Allow default error tolerances?
+    ALLOW_DEFAULT_TOLS = .FALSE.
+
+!   Maximum number of consecutive error test failures?
+    CONSECUTIVE_EFAILS = KFH
+
+!   Maximum number of consecutive corrector iteration failures?
+    CONSECUTIVE_CFAILS = MXNCF
+
+!   Use JACSP to approximate Jacobian?
+    USE_JACSP = .FALSE.
+    IF (PRESENT(JACOBIAN_BY_JACSP)) THEN
+       IF (JACOBIAN_BY_JACSP) USE_JACSP = .TRUE.
+    END IF
+
+!   If only f77 options are to be changed, do it and return.
+    IF (PRESENT(CHANGE_ONLY_f77_OPTIONS)) THEN
+       IF (CHANGE_ONLY_f77_OPTIONS) THEN
+          IF (.NOT.OPTS_CALLED) THEN
+             MSG = 'You have not previously called SET_OPTS before attempting'
+             CALL XERRDV(MSG,500,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'to change one or more of the vode.f77 optional parameters.'
+             CALL XERRDV(MSG,500,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          IF (PRESENT(HMAX)) THEN
+             IOPT = 1
+             RUSER(6) = HMAX
+             MSG = 'HMAX changed in SET_OPTS.'
+             CALL XERRDV(MSG,510,1,0,0,0,1,HMAX,ZERO)
+          END IF
+          IF (PRESENT(HMIN)) THEN
+             IOPT = 1
+             RUSER(7) = HMIN
+             MSG = 'HMIN changed in SET_OPTS.'
+             CALL XERRDV(MSG,520,1,0,0,0,1,HMIN,ZERO)
+          END IF
+          IF (PRESENT(TCRIT)) THEN
+             IOPT = 1
+             RUSER(1) = TCRIT
+             MSG = 'TCRIT changed in SET_OPTS.'
+             CALL XERRDV(MSG,530,1,0,0,0,1,TCRIT,ZERO)
+          END IF
+          IF (PRESENT(MXSTEP)) THEN
+             IOPT = 1
+             IUSER(6) = MXSTEP
+             MSG = 'MXSTEP changed in SET_OPTS.'
+             CALL XERRDV(MSG,530,1,1,MXSTEP,0,0,ZERO,ZERO)
+          END IF
+          IF (PRESENT(MAXORD)) THEN
+             IOPT = 1
+             IUSER(5) = MAXORD
+             MSG = 'MAXORD changed in SET_OPTS.'
+             CALL XERRDV(MSG,540,1,1,MAXORD,0,0,ZERO,ZERO)
+          END IF
+          IF (PRESENT(MXHNIL)) THEN
+             IOPT = 1
+             IUSER(7) = MXHNIL
+             MSG = 'MXHNIL changed in SET_OPTS.'
+             CALL XERRDV(MSG,550,1,1,MXHNIL,0,0,ZERO,ZERO)
+          END IF
+       END IF
+       RETURN
+    END IF
+
+!   Set the flag to indicate that SET_OPTS has been called.
+    OPTS_CALLED = .TRUE.
+
+!   Set the MA48 storage cleanup flag.
+    MA48_WAS_USED = .FALSE.
+
+!   Set the fast factor option for MA48,
+    USE_FAST_FACTOR = .TRUE.
+
+!   Determine the working precision and define the value for UMAX
+!   expected by MA28. Note that it is different for single and
+!   double precision.
+    WPD = KIND(1.0D0)
+    WPS = KIND(1.0E0)
+    IF (WPD/=dp .AND. WPS/=dp) THEN
+      MSG = 'Illegal working precision in SET_OPTS.'
+      CALL XERRDV(MSG,560,2,0,0,0,0,ZERO,ZERO)
+    END IF
+    IF (WPD==dp) THEN
+!   Working precision is double.
+      UMAX = 0.999999999_dp
+    ELSE
+!     Working precision is single.
+      UMAX = 0.9999_dp
+    END IF
+
+!   Set the MA28 message flag.
+    IF (PRESENT(MA28_MESSAGES)) THEN
+       LP = 0
+       IF (MA28_MESSAGES) LP = 6
+    ELSE
+       LP = 0
+    END IF
+
+!   Set the MA28 singularity threshold.
+    IF (PRESENT(MA28_EPS)) THEN
+       IF (MA28_EPS > ZERO) THEN
+          EPS = MA28_EPS
+       ELSE
+          EPS = 1.0E-4_dp
+       END IF
+     ELSE
+       EPS = 1.0E-4_dp
+     END IF
+
+!   Set the MA28 pivot sequence frequency flag.
+    IF (PRESENT(MA28_RPS)) THEN
+       IF (MA28_RPS) THEN
+          REDO_PIVOT_SEQUENCE = MA28_RPS
+       ELSE
+          REDO_PIVOT_SEQUENCE = .FALSE.
+       END IF
+     ELSE
+       REDO_PIVOT_SEQUENCE = .FALSE.
+     END IF
+
+     MA28AD_CALLS = 0
+     MA28BD_CALLS = 0
+     MA28CD_CALLS = 0
+     MC19AD_CALLS = 0
+!_______________________________________________________________________
+! *****MA48 build change point. Insert these statements.
+!    MA48AD_CALLS = 0
+!    MA48BD_CALLS = 0
+!    MA48CD_CALLS = 0
+!_______________________________________________________________________
+     IRNCP = 0
+     ICNCP = 0
+     MINIRN = 0
+     MINICN = 0
+     MAX_MINIRN = 0
+     MAX_MINICN = 0
+     MAX_NNZ = 0
+
+!   Set the flag to warn the user if |(y(t)| < abserr.
+     IF (PRESENT(YMAGWARN)) THEN
+       IF (YMAGWARN) THEN
+         YMAXWARN = .TRUE.
+       ELSE
+         YMAXWARN = .FALSE.
+       END IF
+     ELSE
+       YMAXWARN = .FALSE.
+     END IF
+
+!    Load defaults for the optional input arrays for DVODE.
+     IUSER(1:8) = 0
+     RUSER(1:8) = ZERO
+
+!    Set the method flag.
+     IF (.NOT.(PRESENT(METHOD_FLAG))) THEN
+       MF = 10
+       IF (PRESENT(SPARSE_J)) THEN
+         IF (SPARSE_J) THEN
+           IF (PRESENT(USER_SUPPLIED_JACOBIAN)) THEN
+             IF (USER_SUPPLIED_JACOBIAN) THEN
+               MF = 126
+             ELSE
+               MF = 227
+             END IF
+           ELSE
+             MF = 227
+           END IF
+           IF (PRESENT(USER_SUPPLIED_SPARSITY)) THEN
+             IF (USER_SUPPLIED_SPARSITY) THEN
+               MF = MF - 100*(MF/100)
+             END IF
+           END IF
+           IF (PRESENT(SAVE_JACOBIAN)) THEN
+             IF (.NOT.SAVE_JACOBIAN) THEN
+               MF = -MF
+             END IF
+           END IF
+          END IF
+          END IF
+
+          IF (PRESENT(BANDED_J)) THEN
+            IF (BANDED_J) THEN
+              IF (PRESENT(USER_SUPPLIED_JACOBIAN)) THEN
+                IF (USER_SUPPLIED_JACOBIAN) THEN
+                  MF = 24
+                ELSE
+                  MF = 25
+                END IF
+              ELSE
+                MF = 25
+              END IF
+              IF (PRESENT(SAVE_JACOBIAN)) THEN
+                IF (.NOT.SAVE_JACOBIAN) THEN
+                  MF = -MF
+                END IF
+              END IF
+            END IF
+          END IF
+
+          IF (PRESENT(DENSE_J)) THEN
+            IF (DENSE_J) THEN
+              IF (PRESENT(USER_SUPPLIED_JACOBIAN)) THEN
+                IF (USER_SUPPLIED_JACOBIAN) THEN
+                  MF = 21
+                ELSE
+                  MF = 22
+                END IF
+              ELSE
+                MF = 22
+              END IF
+              IF (PRESENT(SAVE_JACOBIAN)) THEN
+                IF (.NOT.SAVE_JACOBIAN) THEN
+                  MF = -MF
+                END IF
+              END IF
+            END IF
+          END IF
+     ELSE
+       MF = METHOD_FLAG
+     END IF
+
+!    Check for errors in MF.
+     MFA = IABS(MF)
+     MOSS = MFA/100
+     METH = (MFA-100*MOSS)/10
+     MITER = MFA - 100*MOSS - 10*METH
+     IF (METH<1 .OR. METH>2) THEN
+       MSG = 'Illegal value of METH in SET_OPTS.'
+       CALL XERRDV(MSG,570,2,0,0,0,0,ZERO,ZERO)
+     END IF
+     IF (MITER<0 .OR. MITER>7) THEN
+       MSG = 'Illegal value of MITER in SET_OPTS.'
+       CALL XERRDV(MSG,580,2,0,0,0,0,ZERO,ZERO)
+     END IF
+     IF (MOSS<0 .OR. MOSS>2) THEN
+       MSG = 'Illegal value of MOSS in SET_OPTS.'
+       CALL XERRDV(MSG,580,2,0,0,0,0,ZERO,ZERO)
+     END IF
+
+!    Reset MF, now that MOSS is known.
+     MFSIGN = SIGN(1,MF)
+     MF = MF - 100*MOSS*MFSIGN
+
+     IF (MITER==0) THEN
+       DENSE = .FALSE.
+       BANDED = .FALSE.
+       SPARSE = .FALSE.
+     ELSE IF (MITER==1 .OR. MITER==2) THEN
+       DENSE = .TRUE.
+       BANDED = .FALSE.
+       SPARSE = .FALSE.
+     ELSE IF (MITER==3) THEN
+       DENSE = .FALSE.
+       BANDED = .FALSE.
+       SPARSE = .FALSE.
+     ELSE IF (MITER==4 .OR. MITER==5) THEN
+       DENSE = .FALSE.
+       BANDED = .TRUE.
+       SPARSE = .FALSE.
+     ELSE IF (MITER==6 .OR. MITER==7) THEN
+       DENSE = .FALSE.
+       BANDED = .FALSE.
+       SPARSE = .TRUE.
+     END IF
+
+!    Define the banded Jacobian band widths.
+     IF (BANDED) THEN
+       IF (PRESENT(LOWER_BANDWIDTH)) THEN
+         ML = LOWER_BANDWIDTH
+         IUSER(1) = ML
+       ELSE
+         MSG = 'In SET_OPTS you have indicated a'
+         CALL XERRDV(MSG,590,1,0,0,0,0,ZERO,ZERO)
+         MSG = 'banded Jacobian but you have not'
+         CALL XERRDV(MSG,590,1,0,0,0,0,ZERO,ZERO)
+         MSG = 'supplied the lower bandwidth.'
+         CALL XERRDV(MSG,590,2,0,0,0,0,ZERO,ZERO)
+       END IF
+       IF (PRESENT(UPPER_BANDWIDTH)) THEN
+         MU = UPPER_BANDWIDTH
+         IUSER(2) = MU
+       ELSE
+         MSG = 'In SET_OPTS you have indicated a'
+         CALL XERRDV(MSG,600,1,0,0,0,0,ZERO,ZERO)
+         MSG = 'banded Jacobian but you have not'
+         CALL XERRDV(MSG,600,1,0,0,0,0,ZERO,ZERO)
+         MSG = 'supplied the upper bandwidth.'
+         CALL XERRDV(MSG,600,2,0,0,0,0,ZERO,ZERO)
+       END IF
+!      Define the nonzero diagonals.
+       BNGRP = 0
+       SUBS = .FALSE.
+       SUPS = .FALSE.
+       NSUBS  = 0
+       NSUPS = 0
+       IF (PRESENT(SUB_DIAGONALS)) THEN
+         SUBS = .TRUE.
+         NSUBS = SIZE(SUB_DIAGONALS)
+         IF (NSUBS > 0) THEN
+            IF (ALLOCATED(SUBDS)) THEN
+               DEALLOCATE(SUBDS,STAT=IER)
+               CALL CHECK_STAT(IER,80)
+            END IF
+            ALLOCATE(SUBDS(NSUBS),STAT=IER)
+            CALL CHECK_STAT(IER,90)
+            SUBDS(1:NSUBS) = SUB_DIAGONALS(1:NSUBS)
+         ELSE
+            IF (ML > 0) THEN
+               MSG = 'You must indicated that the lower bandwidth'
+               CALL XERRDV(MSG,610,1,0,0,0,0,ZERO,ZERO)
+               MSG = 'is positive but you have not specified the'
+               CALL XERRDV(MSG,610,1,0,0,0,0,ZERO,ZERO)
+               MSG = 'indices for the lower sub diagonals.'
+               CALL XERRDV(MSG,610,2,0,0,0,0,ZERO,ZERO)
+            END IF
+         END IF
+       END IF
+       IF (PRESENT(SUP_DIAGONALS)) THEN
+         SUPS = .TRUE.
+         NSUPS = SIZE(SUP_DIAGONALS)
+         IF (NSUPS > 0) THEN
+            IF (ALLOCATED(SUPDS)) THEN
+               DEALLOCATE(SUPDS,STAT=IER)
+               CALL CHECK_STAT(IER,100)
+            END IF
+            ALLOCATE(SUPDS(NSUPS),STAT=IER)
+            CALL CHECK_STAT(IER,110)
+            SUPDS(1:NSUPS) = SUP_DIAGONALS(1:NSUPS)
+         ELSE
+            IF (ML > 0) THEN
+               MSG = 'You must indicated that the upper bandwidth'
+               CALL XERRDV(MSG,620,1,0,0,0,0,ZERO,ZERO)
+               MSG = 'is positive but you have not specified the'
+               CALL XERRDV(MSG,620,1,0,0,0,0,ZERO,ZERO)
+               MSG = 'indices for the upper sub diagonals.'
+               CALL XERRDV(MSG,620,2,0,0,0,0,ZERO,ZERO)
+            END IF
+         END IF
+       END IF
+     END IF
+
+!    Define the sparse Jacobian options.
+     SCALE_MATRIX = .FALSE.
+     ELBOW_ROOM = 2
+     IF (SPARSE) THEN
+!      NZSWAG for the number of nonzeros in the Jacobian.
+       IF (PRESENT(NZSWAG)) THEN
+         NZ_SWAG = MAX(NZSWAG,0)
+
+       ELSE
+         NZ_SWAG = 0
+       END IF
+!      Indicate that SET_IAJA has not yet been called successfully.
+       IAJA_CALLED = .FALSE.
+!      Check for illegal method flags.
+       IF (MOSS==2 .AND. MITER/=7) THEN
+         MSG = 'In SET_OPTS MOSS=2 but MITER is not 7.'
+            CALL XERRDV(MSG,630,2,0,0,0,0,ZERO,ZERO)
+         END IF
+         IF (MOSS==1 .AND. MITER/=6) THEN
+           MSG = 'In SET_OPTS MOSS=1 but MITER is not 6.'
+           CALL XERRDV(MSG,640,2,0,0,0,0,ZERO,ZERO)
+         END IF
+!        IF (MOSS==0 .AND. MITER/=7) THEN
+!          MSG = 'In SET_OPTS MOSS=0 but MITER is not 7.'
+!          CALL XERRDV(MSG,650,2,0,0,0,0,ZERO,ZERO)
+!        END IF
+!        Allow the work array elbow room to be increased.
+         IF (PRESENT(MA28_ELBOW_ROOM)) THEN
+            ELBOW_ROOM = MAX(MA28_ELBOW_ROOM, ELBOW_ROOM)
+         END IF
+!      Allow MC19 scaling for the Jacobian.
+       SCALE_MATRIX = .FALSE.
+       IF (PRESENT(MC19_SCALING)) THEN
+          IF (MC19_SCALING) THEN
+!_______________________________________________________________________
+! *****MA48 build change point. Insert these statements.
+!         IF (USE_MA48_FOR_SPARSE) THEN
+!            MSG = 'MC29AD scaling is not available at this time.'
+!            CALL XERRDV(MSG,660,1,0,0,0,0,ZERO,ZERO)
+!            MSG = 'Execution will continue.'
+!            CALL XERRDV(MSG,660,1,0,0,0,0,ZERO,ZERO)
+!         END IF
+!_______________________________________________________________________
+             SCALE_MATRIX = MC19_SCALING
+!            SCALE_MATRIX = .FALSE.
+          END IF
+       END IF
+
+!_______________________________________________________________________
+! *****MA48 build change point. Replace above with these statements.
+!      IF (PRESENT(MC19_SCALING)) THEN
+!         IF (MC19_SCALING) THEN
+!            IF (USE_MA48_FOR_SPARSE) THEN
+!               MSG = 'Please note that this version uses MC19AD rather'
+!               CALL XERRDV(MSG,670,1,0,0,0,0,ZERO,ZERO)
+!               MSG = 'than MC29AD to sacle the iteration matrix.'
+!               CALL XERRDV(MSG,670,1,0,0,0,0,ZERO,ZERO)
+!               MSG = 'Execution will continue.'
+!               CALL XERRDV(MSG,670,1,0,0,0,0,ZERO,ZERO)
+!            END IF
+!            SCALE_MATRIX = MC19_SCALING
+!         END IF
+!       END IF
+!_______________________________________________________________________
+
+       END IF
+
+!       Define the number of event functions.
+        IF (PRESENT(NEVENTS)) THEN
+          IF (NEVENTS>0) THEN
+            NG = NEVENTS
+          ELSE
+            NG = 0
+          END IF
+        ELSE
+          NG = 0
+        END IF
+
+!       Process the constrained solution components.
+        IF (PRESENT(CONSTRAINED)) THEN
+          NDX = SIZE(CONSTRAINED)
+          IF (NDX<1) THEN
+            MSG = 'In SET_OPTS the size of CONSTRAINED < 1.'
+            CALL XERRDV(MSG,680,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          IF (.NOT.(PRESENT(CLOWER)) .OR. .NOT.(PRESENT(CUPPER))) THEN
+            MSG = 'In SET_OPTS the arrays CLOWER and CUPPER are'
+            CALL XERRDV(MSG,690,1,0,0,0,0,ZERO,ZERO)
+            MSG = 'not present.'
+            CALL XERRDV(MSG,690,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          IF (SIZE(CLOWER)/=NDX .OR. SIZE(CUPPER)/=NDX) THEN
+            MSG = 'In SET_OPTS the size of the solution bound arrays'
+            CALL XERRDV(MSG,700,1,0,0,0,0,ZERO,ZERO)
+            MSG = 'must be the same as the CONSTRAINED array.'
+            CALL XERRDV(MSG,700,2,0,0,0,0,ZERO,ZERO)
+          END IF
+!         Note: The contents of CONSTRAINED will be checked
+!         in subroutine DVODE after NEQ is known.
+          IF (ALLOCATED(IDX)) THEN
+            DEALLOCATE (IDX,LB,UB,STAT=IER)
+            CALL CHECK_STAT(IER,120)
+          END IF
+          ALLOCATE (IDX(NDX),LB(NDX),UB(NDX),STAT=IER)
+          CALL CHECK_STAT(IER,130)
+          IDX(1:NDX) = CONSTRAINED(1:NDX)
+          LB(1:NDX) = CLOWER(1:NDX)
+          UB(1:NDX) = CUPPER(1:NDX)
+          BOUNDS = .TRUE.
+        ELSE
+          IF (ALLOCATED(IDX)) THEN
+            DEALLOCATE (IDX,LB,UB,STAT=IER)
+            CALL CHECK_STAT(IER,140)
+          END IF
+          NDX = 0
+          BOUNDS = .FALSE.
+        END IF
+
+!       Is the Jacobian constant?
+        J_IS_CONSTANT = .FALSE.
+        J_HAS_BEEN_COMPUTED = .FALSE.
+
+!_______________________________________________________________________
+        IF (PRESENT(CONSTANT_JACOBIAN)) THEN
+           IF (CONSTANT_JACOBIAN) THEN
+              J_IS_CONSTANT = .TRUE.
+!_______________________________________________________________________
+! *****MA48 build change point. Insert these statements.
+              IF (USE_MA48_FOR_SPARSE .AND. SPARSE) THEN
+                 MSG = 'The constant Jacobian option is not yet available'
+                 CALL XERRDV(MSG,710,1,0,0,0,0,ZERO,ZERO)
+                 MSG = 'with the sparse MA48 solution option. Execution'
+                 CALL XERRDV(MSG,710,1,0,0,0,0,ZERO,ZERO)
+                 MSG = 'will continue.'
+                 CALL XERRDV(MSG,710,1,0,0,0,0,ZERO,ZERO)
+                 J_IS_CONSTANT = .FALSE.
+              END IF
+!_______________________________________________________________________
+           END IF
+        END IF
+! *****MA48 build change point. Replace above with these statements.
+!       IF (PRESENT(CONSTANT_JACOBIAN)) THEN
+!          IF (CONSTANT_JACOBIAN) THEN
+!             IF (USE_MA48_FOR_SPARSE) THEN
+!                MSG = 'The constant Jacobian option is not yet available'
+!                CALL XERRDV(MSG,720,1,0,0,0,0,ZERO,ZERO)
+!                MSG = 'with the sparse MA48 solution option. Execution'
+!                CALL XERRDV(MSG,720,1,0,0,0,0,ZERO,ZERO)
+!                MSG = 'will continue.'
+!                CALL XERRDV(MSG,720,1,0,0,0,0,ZERO,ZERO)
+!             END IF
+!          ELSE
+!             J_IS_CONSTANT = .TRUE.
+!          END IF
+!       END IF
+!_______________________________________________________________________
+        IF (J_IS_CONSTANT) THEN
+           IF (PRESENT(SAVE_JACOBIAN)) THEN
+              IF (.NOT.SAVE_JACOBIAN) THEN
+                 MSG = 'You have specified that the Jacobian is constant.'
+                 CALL XERRDV(MSG,730,1,0,0,0,0,ZERO,ZERO)
+                 MSG = 'In this case you cannot also specify that'
+                 CALL XERRDV(MSG,730,1,0,0,0,0,ZERO,ZERO)
+                 MSG = 'SAVE_JACOBIAN=.FALSE.'
+                 CALL XERRDV(MSG,730,2,0,0,0,0,ZERO,ZERO)
+              END IF
+           END IF
+           IF (PRESENT(USER_SUPPLIED_JACOBIAN)) THEN
+              IF (USER_SUPPLIED_JACOBIAN .AND. SPARSE) THEN
+                 MSG = 'You have specified that the Jacobian is constant'
+                 CALL XERRDV(MSG,740,1,0,0,0,0,ZERO,ZERO)
+                 MSG = 'and that you wish to supply an analytic Jacobian'
+                 CALL XERRDV(MSG,740,1,0,0,0,0,ZERO,ZERO)
+                 MSG = 'for a sparse problem. In this case your request'
+                 CALL XERRDV(MSG,740,1,0,0,0,0,ZERO,ZERO)
+                 MSG = 'to use a constant Jacobian will be ignored.'
+                 CALL XERRDV(MSG,740,1,0,0,0,0,ZERO,ZERO)
+                 MSG = 'Execution will continue.'
+                 CALL XERRDV(MSG,740,1,0,0,0,0,ZERO,ZERO)
+              END IF
+           END IF
+        END IF
+
+!       Load the user options into the solution structure.
+        OPTS%MF = MF
+        OPTS%METH = METH
+        OPTS%MITER = MITER
+        OPTS%MOSS = MOSS
+        OPTS%DENSE = DENSE
+        OPTS%BANDED = BANDED
+        OPTS%SPARSE = SPARSE
+        OPTS%NG = NG
+
+!       Process the miscellaneous options.
+
+!       Don't step past TCRIT variable.
+        IF (PRESENT(TCRIT)) THEN
+          RUSER(1) = TCRIT
+        ELSE
+          RUSER(1) = ZERO
+        END IF
+
+!       DVODE optional parameters.
+        IOPT = 1
+        IF (PRESENT(MAXORD)) THEN
+          IUSER(5) = MAXORD
+          IOPT = 1
+        END IF
+        IF (PRESENT(MXSTEP)) THEN
+          IUSER(6) = MXSTEP
+          IOPT = 1
+        END IF
+        IF (PRESENT(MXHNIL)) THEN
+          IUSER(7) = MXHNIL
+          IOPT = 1
+        END IF
+        IF (PRESENT(H0)) THEN
+          RUSER(5) = H0
+          IOPT = 1
+        END IF
+        IF (PRESENT(HMAX)) THEN
+          RUSER(6) = HMAX
+          IOPT = 1
+        END IF
+        IF (PRESENT(HMIN)) THEN
+          RUSER(7) = HMIN
+          IOPT = 1
+        END IF
+        IF (PRESENT(SETH)) THEN
+          RUSER(8) = SETH
+          IOPT = 1
+        END IF
+        IF (PRESENT(UPIVOT)) THEN
+          U_PIVOT = UPIVOT
+          IF (U_PIVOT<ZERO) U_PIVOT = ZERO
+          IF (U_PIVOT>ONE) U_PIVOT = ONE
+        ELSE
+          U_PIVOT = ONE
+        END IF
+!_______________________________________________________________________
+! *****MA48 build change point. Insert this statement.
+!       COPY_OF_U_PIVOT = U_PIVOT
+!_______________________________________________________________________
+        OPTS%IOPT = IOPT
+
+!       Define the error tolerances.
+
+!       Relative error tolerances.
+        IF (PRESENT(RELERR_VECTOR)) THEN
+          IF (MINVAL(RELERR_VECTOR)<ZERO) THEN
+            MSG = 'All components of RELERR_VECTOR must'
+            CALL XERRDV(MSG,750,1,0,0,0,0,ZERO,ZERO)
+            MSG = 'be nonnegative.'
+            CALL XERRDV(MSG,750,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          NRE = SIZE(RELERR_VECTOR)
+        ELSE
+          NRE = 1
+        END IF
+        ALLOCATE (OPTS%RTOL(NRE),STAT=IER)
+        CALL CHECK_STAT(IER,150)
+        IF (PRESENT(RELERR_VECTOR)) THEN
+          OPTS%RTOL = RELERR_VECTOR
+        ELSE IF (PRESENT(RELERR)) THEN
+          IF (RELERR<ZERO) THEN
+            MSG = 'RELERR must be nonnegative.'
+            CALL XERRDV(MSG,760,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          OPTS%RTOL = RELERR
+        ELSE
+          IF (ALLOW_DEFAULT_TOLS) THEN
+             OPTS%RTOL = 1.0E-4_dp
+             MSG = 'By not specifying RELERR, you have elected to use a default'
+             CALL XERRDV(MSG,770,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'relative error tolerance equal to 1.0D-4. Please be aware a'
+             CALL XERRDV(MSG,770,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'tolerance this large is not appropriate for all problems.'
+             CALL XERRDV(MSG,770,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'Execution will continue'
+             CALL XERRDV(MSG,770,1,0,0,0,0,ZERO,ZERO)
+          ELSE
+             MSG = 'You must specify a nonzero relative error tolerance.'
+             CALL XERRDV(MSG,780,2,0,0,0,0,ZERO,ZERO)
+          END IF
+        END IF
+
+!       Absolute error tolerances.
+        IF (PRESENT(ABSERR_VECTOR)) THEN
+          IF (MINVAL(ABSERR_VECTOR)<ZERO) THEN
+            MSG = 'All components of ABSERR_VECTOR must'
+            CALL XERRDV(MSG,790,1,0,0,0,0,ZERO,ZERO)
+            MSG = 'be nonnegative.'
+            CALL XERRDV(MSG,790,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          NAE = SIZE(ABSERR_VECTOR)
+        ELSE
+          NAE = 1
+        END IF
+        ALLOCATE (OPTS%ATOL(NAE),STAT=IER)
+        CALL CHECK_STAT(IER,160)
+        IF (PRESENT(ABSERR_VECTOR)) THEN
+          OPTS%ATOL = ABSERR_VECTOR
+        ELSE IF (PRESENT(ABSERR)) THEN
+          IF (ABSERR<ZERO) THEN
+            MSG = 'ABSERR must be nonnegative.'
+            CALL XERRDV(MSG,800,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          OPTS%ATOL = ABSERR
+        ELSE
+          IF (ALLOW_DEFAULT_TOLS) THEN
+             OPTS%ATOL = 1D-6
+             MSG = 'By not specifying ABSERR, you have elected to use a default'
+             CALL XERRDV(MSG,810,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'absolute error tolerance equal to 1.0D-6. Please be aware a'
+             CALL XERRDV(MSG,810,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'tolerance this large is not appropriate for all problems.'
+             CALL XERRDV(MSG,810,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'Execution will continue'
+             CALL XERRDV(MSG,810,1,0,0,0,0,ZERO,ZERO)
+          ELSE
+             MSG = 'You must specify a vector of absolute error tolerances or'
+             CALL XERRDV(MSG,820,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'a scalar error tolerance. It is recommended that you use'
+             CALL XERRDV(MSG,820,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'a vector of absolute error tolerances.'
+             CALL XERRDV(MSG,820,2,0,0,0,0,ZERO,ZERO)
+          END IF
+        END IF
+
+!       ITOL error tolerance flag.
+!          ITOL   RTOL     ATOL            EWT(i)
+!            1   scalar   scalar  RTOL*ABS(Y(i)) + ATOL
+!            2   scalar   array   RTOL*ABS(Y(i)) + ATOL(i)
+!            3   array    scalar  RTOL(i)*ABS(Y(i)) + ATOL
+!            4   array    array   RTOL(i)*ABS(Y(i)) + ATOL(i)
+        IF (PRESENT(ABSERR_VECTOR)) THEN
+          IF (PRESENT(RELERR_VECTOR)) THEN
+            OPTS%ITOL = 4
+          ELSE
+            OPTS%ITOL = 2
+          END IF
+        ELSE
+          IF (PRESENT(RELERR_VECTOR)) THEN
+            OPTS%ITOL = 3
+          ELSE
+            OPTS%ITOL = 1
+          END IF
+        END IF
+        RETURN
+
+  END FUNCTION SET_OPTS
+!_______________________________________________________________________
+
+      SUBROUTINE GET_STATS(RSTATS,ISTATS,NUMEVENTS,JROOTS)
+! ..
+! Return the user portions of the DVODE RUSER and IUSER arrays;
+! and if root finding is being done, return the JROOT vector
+! (not called by DVODE_F90).
+! ..
+! Available Integration Statistics.
+! HU      RUSER(11) The step size in t last used (successfully).
+! HCUR    RUSER(12) The step size to be attempted on the next step.
+! TCUR    RUSER(13) The current value of the independent variable
+!                   which the solver has actually reached, i.e. the
+!                   current internal mesh point in t. In the output,
+!                   TCUR will always be at least as far from the
+!                   initial value of t as the current argument T,
+!                   but may be farther (if interpolation was done).
+! TOLSF   RUSER(14) A tolerance scale factor, greater than 1.0,
+!                   computed when a request for too much accuracy was
+!                   detected (ISTATE = -3 if detected at the start of
+!                   the problem, ISTATE = -2 otherwise). If ITOL is
+!                   left unaltered but RTOL and ATOL are uniformly
+!                   scaled up by a factor of TOLSF for the next call,
+!                   then the solver is deemed likely to succeed.
+!                   (The user may also ignore TOLSF and alter the
+!                   tolerance parameters in any other way appropriate.)
+! NST     IUSER(11) The number of steps taken for the problem so far.
+! NFE     IUSER(12) The number of f evaluations for the problem so far.
+! NJE     IUSER(13) The number of Jacobian evaluations so far.
+! NQU     IUSER(14) The method order last used (successfully).
+! NQCUR   IUSER(15) The order to be attempted on the next step.
+! IMXER   IUSER(16) The index of the component of largest magnitude in
+!                   the weighted local error vector (e(i)/EWT(i)),
+!                   on an error return with ISTATE = -4 or -5.
+! LENRW   IUSER(17) The length of RUSER actually required.
+!                   This is defined on normal returns and on an illegal
+!                   input return for insufficient storage.
+! LENIW   IUSER(18) The length of IUSER actually required.
+!                   This is defined on normal returns and on an illegal
+!                   input return for insufficient storage.
+! NLU     IUSER(19) The number of matrix LU decompositions so far.
+! NNI     IUSER(20) The number of nonlinear (Newton) iterations so far.
+! NCFN    IUSER(21) The number of convergence failures of the nonlinear
+!                   solver so far.
+! NETF    IUSER(22) The number of error test failures of the integrator
+!                   so far.
+! MA28AD_CALLS      IUSER(23) The number of calls made to MA28AD
+! MA28BD_CALLS      IUSER(24) The number of calls made to MA28BD
+! MA28CD_CALLS      IUSER(25) The number of calls made to MA28CD
+! MC19AD_CALLS      IUSER(26) The number of calls made to MC19AD
+! IRNCP             IUSER(27) The number of compressions done on array JAN
+! ICNCP             IUSER(28) The number of compressions done on array ICN
+! MINIRN            IUSER(29) Minimum size for JAN array
+! MINICN            IUSER(30) Minimum size for ICN array
+! JROOTS  JROOTS    Optional array of component indices for components
+!                   having a zero at the current time
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, OPTIONAL, INTENT (IN) :: NUMEVENTS
+! ..
+! .. Array Arguments ..
+        KPP_REAL, INTENT (INOUT) :: RSTATS(22)
+        INTEGER, INTENT (INOUT) :: ISTATS(31)
+        INTEGER, OPTIONAL, INTENT (INOUT) :: JROOTS(:)
+! ..
+! .. Local Scalars ..
+        CHARACTER (80) :: MSG
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ALLOCATED, PRESENT, SIZE
+! ..
+!   Caution:
+!   It is assumed that the size of RSTATS is 22.
+!   It is assumed that the size of ISTATS is 31.
+!   Refer to the documentation prologue for a description
+!   the optional output contained in RUSER and IUSER.
+! ..
+! .. FIRST EXECUTABLE STATEMENT GET_STATS
+! ..
+!       Check if DVODE_F90 has been called yet.
+        IF (.NOT.OPTS_CALLED) THEN
+          MSG = 'You have called GET_STATS before'
+          CALL XERRDV(MSG,830,1,0,0,0,0,ZERO,ZERO)
+          MSG = 'calling DVODE_F90 the first time.'
+          CALL XERRDV(MSG,830,1,0,0,0,0,ZERO,ZERO)
+          RETURN
+        END IF
+
+!       Check that the arrays are large enough to hold the statistics.
+!       Some compilers don't like this use of SIZE.
+!       IF (SIZE(RSTATS)<LRWUSER) THEN
+!       IF (SIZE(RSTATS)<31) THEN
+!         MSG = 'In GET_STATS, RSTATS array is too small.'
+!         CALL XERRDV(MSG,840,1,0,0,0,0,ZERO,ZERO)
+!         RETURN
+!       END IF
+!       IF (SIZE(ISTATS)<LIWUSER) THEN
+!       IF (SIZE(ISTATS)<31) THEN
+!         MSG = 'In GET_STATS, ISTATS array is too small.'
+!         CALL XERRDV(MSG,850,1,0,0,0,0,ZERO,ZERO)
+!         RETURN
+!       END IF
+
+!       Copy the statistics.
+        RSTATS(1:LRWUSER) = RUSER(1:LRWUSER)
+!       ISTATS(1:LIWUSER) = IUSER(1:LIWUSER)
+        ISTATS(1:22) = IUSER(1:22)
+        ISTATS(23) = MA28AD_CALLS
+        ISTATS(24) = MA28BD_CALLS
+        ISTATS(25) = MA28CD_CALLS
+!_______________________________________________________________________
+! *****MA48 build change point.Replace the three previous statements
+!      with these statements.
+!       IF (USE_MA48_FOR_SPARSE) THEN
+!          ISTATS(23) = MA48AD_CALLS
+!          ISTATS(24) = MA48BD_CALLS
+!          ISTATS(25) = MA48CD_CALLS
+!       ELSE
+!          ISTATS(23) = MA28AD_CALLS
+!          ISTATS(24) = MA28BD_CALLS
+!          ISTATS(25) = MA28CD_CALLS
+!       END IF
+!_______________________________________________________________________
+        ISTATS(26) = MC19AD_CALLS
+        ISTATS(27) = IRNCP
+        ISTATS(28) = ICNCP
+!       ISTATS(29) = MINIRN
+!       ISTATS(30) = MINICN
+!       ISTATS(31) = NZ_ALL
+        ISTATS(29) = MAX_MINIRN
+        ISTATS(30) = MAX_MINICN
+        ISTATS(31) = MAX_NNZ
+!       If root finding is being used return the JROOT vector.
+        IF (PRESENT(NUMEVENTS)) THEN
+          IF (PRESENT(JROOTS)) THEN
+            IF (ALLOCATED(JROOT)) THEN
+              JROOTS(1:NUMEVENTS) = JROOT(1:NUMEVENTS)
+            END IF
+          END IF
+        END IF
+        RETURN
+
+      END SUBROUTINE GET_STATS
+!_______________________________________________________________________
+
+      SUBROUTINE USERSETS_IAJA(IAUSER,NIAUSER,JAUSER,NJAUSER)
+! ..
+! Approximate or allow the user to supply the sparse Jacobian
+! structure pointer arrays IA and JA directly for DVODE_F90
+! (not called by DVODE_F90).
+! ..
+! Used if the user wishes to supply the sparsity structure
+! directly.
+!     Caution:
+!     If it is called, USERSETS_IAJA must be called after the
+!     call to SET_OPTS.
+!     Usage:
+!     CALL (IAUSER,NIAUSER,JAUSER,NJAUSER)
+!       In this case, IAUSER of length NIAUSER will be used for
+!       IA; and JAUSER of length NJAUSER will be used for JA.
+!     Arguments:
+!     IAUSER  = user supplied IA array
+!     NIAUSER = length of IAUSER array
+!     JAUSER  = user supplied JA vector
+!     NJAUSER = length of JAUSER array
+!     Results:
+!     IA(IADIM), IADIM, JA(JADIM), JAMIN, SPARSE
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: NIAUSER, NJAUSER
+! ..
+! .. Array Arguments ..
+        INTEGER, INTENT (IN) :: IAUSER(NIAUSER), JAUSER(NJAUSER)
+! ..
+! .. Local Scalars ..
+        INTEGER :: JER
+        CHARACTER (80) :: MSG
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ALLOCATED
+! ..
+! .. FIRST EXECUTABLE STATEMENT USERSETS_IAJA
+! ..
+!       Check that SET_OPTS has been called:
+        IF (.NOT.OPTS_CALLED) THEN
+          MSG = 'You have not called SET_OPTS before'
+          CALL XERRDV(MSG,860,1,0,0,0,0,ZERO,ZERO)
+          MSG = 'calling USERSETS_IAJA.'
+          CALL XERRDV(MSG,860,2,0,0,0,0,ZERO,ZERO)
+        END IF
+        SPARSE = .FALSE.
+        IAJA_CALLED = .FALSE.
+        IADIM = NIAUSER
+        JADIM = NJAUSER
+        IF (ALLOCATED(IA)) THEN
+          DEALLOCATE (IA,JA,STAT=JER)
+          CALL CHECK_STAT(JER,170)
+        END IF
+        ALLOCATE (IA(IADIM),JA(JADIM),STAT=JER)
+        IF (JER/=0) THEN
+          MSG = 'Check your values of NIAUSER and NJAUSER'
+          CALL XERRDV(MSG,870,1,0,0,0,0,ZERO,ZERO)
+          MSG = 'in your call to USERSETS_IAJA.'
+          CALL XERRDV(MSG,870,2,0,0,0,0,ZERO,ZERO)
+        END IF
+        CALL CHECK_STAT(JER,180)
+        IA(1:IADIM) = IAUSER(1:IADIM)
+        JA(1:JADIM) = JAUSER(1:JADIM)
+!       Set the flags to indicate to DVODE_F90 that IA and JA have
+!       been loaded successfully.
+        SPARSE = .TRUE.
+        IAJA_CALLED = .TRUE.
+        RETURN
+
+      END SUBROUTINE USERSETS_IAJA
+!_______________________________________________________________________
+
+      SUBROUTINE SET_IAJA(DFN,NEQ,T,Y,FMIN,NTURB,DTURB,IAUSER,NIAUSER, &
+        JAUSER,NJAUSER)
+! ..
+!     Approximate or allow the user to supply the sparse Jacobian
+!     structure pointer arrays IA and JA for DVODE_F90 (not called
+!     by DVODE_F90).
+! ..
+!     Caution:
+!     If it is called, SET_IAJA must be called after the call to
+!     SET_OPTS.
+!     Usage:
+!     SET_IAJA may be called in one of two ways:
+!     CALL SET_IAJA(DFN,NEQ,T,Y,FMIN,NTURB,DTURB)
+!       In this case IA and JA will be determined using calls
+!       to your derivative routine DFN.
+!     CALL SET_IAJA(DFN,NEQ,T,Y,FMIN,NTURB,DTURB,IAUSER,NIAUSER, &
+!       JAUSER,NJAUSER)
+!       In this case, IAUSER of length NIAUSER will be used for
+!       IA; and JAUSER of length NJAUSER will be used for JA.
+!       T, Y, FMIN, NTURB, and DTURB will be ignored (though
+!       they must be present in the argument list).
+!
+!     Arguments:
+!     DFN     = VODE derivative subroutine
+!     NEQ     = Number of odes
+!     T       = independent variable t
+!     Y       = solution y(t)
+!     FMIN    = Jacobian threshold value. Elements of the Jacobian
+!               with magnitude smaller than FMIN will be ignored.
+!               FMIN will be ignored if it is less than or equal
+!               to ZERO.
+!     NTURB   = Perturbation flag. If NTURB=1, component I of Y
+!               will be perturbed by by 1.01D0.
+!               If NTURB=NEQ, component I of Y will be perturbed
+!               by ONE + DTURB(I).
+!     DTURB   = perturbation vector of length 1 or NEQ.
+!     If these four optional parameters are present, IAUSER and JAUSER
+!     will be copied to IA and JA rather than making derivative calls
+!     to approximate IA and JA:
+!     IAUSER  = user supplied IA array
+!     NIAUSER = length of IAUSER array
+!     JAUSER  = user supplied JA vector
+!     NJAUSER = length of JAUSER array
+!     Results:
+!     IA(IADIM), IADIM, IMIN, JA(JADIM), JAMIN, JMIN, SPARSE
+!     Allocated but free for further use by DVODE_F90:
+!     FTEMP(NEQ), FPTEMP(NEQ)
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        KPP_REAL, INTENT (IN) :: FMIN, T
+        INTEGER, INTENT (IN) :: NEQ, NTURB
+        INTEGER, OPTIONAL, INTENT (IN) :: NIAUSER, NJAUSER
+! ..
+! .. Array Arguments ..
+        KPP_REAL, INTENT (INOUT) :: DTURB(*), Y(NEQ)
+        INTEGER, OPTIONAL, INTENT (IN) :: IAUSER(:), JAUSER(:)
+! ..
+! .. Subroutine Arguments ..
+        EXTERNAL DFN
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: AIJ, DTRB, EMIN, RJ, YJ, YJSAVE, YPJ
+        INTEGER :: I, J, JER, JP1, K, MTURB
+        CHARACTER (80) :: MSG
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, ALLOCATED, EPSILON, MAX, MIN, PRESENT
+! ..
+! .. FIRST EXECUTABLE STATEMENT SET_IAJA
+! ..
+        SPARSE = .FALSE.
+        IAJA_CALLED = .FALSE.
+        IF (NEQ<1) GOTO 30
+
+!       Check if the user is supplying the IA and JA arrays.
+        IF (PRESENT(IAUSER)) THEN
+!         If IAUSER is present, so must be NIAUSER, JAUSER,
+!         and NJAUSER.
+          IF (.NOT.(PRESENT(NIAUSER))) GOTO 30
+          IF (.NOT.(PRESENT(JAUSER))) GOTO 30
+          IF (.NOT.(PRESENT(NJAUSER))) GOTO 30
+          IF (NIAUSER<NEQ+1 .OR. NJAUSER<1) GOTO 30
+          IADIM = MIN(NIAUSER,NEQ+1)
+          IMIN = IADIM
+          JADIM = NJAUSER
+          JMIN = NJAUSER
+          IF (ALLOCATED(IA)) THEN
+            DEALLOCATE (IA,JA,FTEMP,FPTEMP,STAT=JER)
+            CALL CHECK_STAT(JER,190)
+          END IF
+          ALLOCATE (IA(IADIM),JA(JADIM),FTEMP(NEQ),FPTEMP(NEQ),STAT=JER)
+          CALL CHECK_STAT(JER,200)
+          IA(1:IADIM) = IAUSER(1:IADIM)
+          JA(1:JADIM) = JAUSER(1:JADIM)
+          GOTO 40
+        END IF
+
+!       Determine IA and JA using derivative calls.
+
+!       Jacobian element magnitude threshold value.
+        IF (FMIN>ZERO) THEN
+          EMIN = MAX(FMIN,ZERO)
+        ELSE
+          EMIN = ZERO
+        END IF
+
+!       Solution perturbation factors.
+        IF (NTURB>0) THEN
+          IF (NTURB<1 .OR. (NTURB>1 .AND. NTURB/=NEQ)) GOTO 30
+          IF (NTURB==NEQ) THEN
+            DO I = 1, NEQ
+              DTURB(I) = MAX(DTURB(I),HUNDRETH)
+            END DO
+          ELSE
+            MTURB = 1
+            DTRB = MAX(DTURB(1),HUNDRETH)
+          END IF
+        ELSE
+          MTURB = 1
+          DTRB = HUNDRETH
+        END IF
+
+        JADIM = MIN(NEQ*NEQ,MAX(1000,NZ_SWAG))
+        ADDTOJA = MAX(1000,NZ_SWAG)
+!       Loop point for array allocation.
+10      CONTINUE
+        IF (ALLOCATED(IA)) THEN
+          DEALLOCATE (IA,JA,FTEMP,FPTEMP,STAT=JER)
+          CALL CHECK_STAT(JER,210)
+        END IF
+        IMIN = NEQ + 1
+        IADIM = NEQ + 1
+        JMIN = 0
+        JADIM = JADIM + ADDTOJA
+        IF (JADIM>MAX_ARRAY_SIZE) THEN
+          MSG = 'Maximum array size exceeded. Stopping.'
+          CALL XERRDV(MSG,880,2,0,0,0,0,ZERO,ZERO)
+        END IF
+        ALLOCATE (IA(IADIM),JA(JADIM),FTEMP(NEQ),FPTEMP(NEQ),STAT=JER)
+        CALL CHECK_STAT(JER,220)
+
+!       f = y'(t,y).
+        CALL DFN(NEQ,T,Y,FTEMP)
+        IA(1) = 1
+        K = 1
+
+!       Calculate unit roundoff and powers of it used if JACSP
+!       is used.
+        UROUND = EPSILON(ONE)
+
+!       Successively perturb each of the solution components and
+!       calculate the corresponding derivatives.
+        DO J = 1, NEQ
+          IF (MTURB==NEQ) DTRB = DTURB(J)
+          YJ = Y(J)
+          YJSAVE = YJ
+          IF (ABS(YJ)<=ZERO) YJ = HUN*UROUND
+          YPJ = YJ*(ONE+DTRB)
+          RJ = ABS(YPJ-YJ)
+          IF (ABS(RJ)<=ZERO) RJ = HUN*UROUND
+          IF (ABS(RJ)<=ZERO) GOTO 30
+          Y(J) = YPJ
+          CALL DFN(NEQ,T,Y,FPTEMP)
+          DO 20 I = 1, NEQ
+!           Estimate the Jacobian element.
+            AIJ = ABS(FPTEMP(I)-FTEMP(I))/RJ
+            IF ((AIJ<=EMIN) .AND. (I/=J)) GOTO 20
+!           Need more storage for JA.
+            IF (K>JADIM) GOTO 10
+            JMIN = K
+            JA(K) = I
+            K = K + 1
+20        CONTINUE
+          JP1 = J + 1
+          IA(JP1) = K
+          Y(J) = YJSAVE
+        END DO
+        GOTO 40
+30      CONTINUE
+        MSG = 'An error occurred in subroutine SET_IAJA.'
+        CALL XERRDV(MSG,890,2,0,0,0,0,ZERO,ZERO)
+
+40      CONTINUE
+!       Set the flags to indicate to DVODE_F90 that IA and JA have
+!       been calculated successfully.
+        SPARSE = .TRUE.
+        IAJA_CALLED = .TRUE.
+
+!       Trim JA.
+        ALLOCATE (JATEMP(JMIN),STAT=JER)
+        CALL CHECK_STAT(JER,230)
+        JATEMP(1:JMIN) = JA(1:JMIN)
+        DEALLOCATE (JA,STAT=JER)
+        CALL CHECK_STAT(JER,240)
+        ALLOCATE (JA(JMIN),STAT=JER)
+        CALL CHECK_STAT(JER,250)
+        JA(1:JMIN) = JATEMP(1:JMIN)
+        DEALLOCATE (JATEMP,STAT=JER)
+        CALL CHECK_STAT(JER,260)
+        JADIM = JMIN
+        RETURN
+
+      END SUBROUTINE SET_IAJA
+!_______________________________________________________________________
+
+      SUBROUTINE DVODE(F,NEQ,Y,T,TOUT,ITASK,ISTATE,OPTS,JAC,GFUN)
+! ..
+! This is the core driver (modified original DVODE.F driver).
+! ..
+! The documentation prologue was moved nearer the top of the file.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Structure Arguments ..
+        TYPE (VODE_OPTS) :: OPTS
+! ..
+! .. Scalar Arguments ..
+        KPP_REAL, INTENT (INOUT) :: T, TOUT
+        INTEGER, INTENT (INOUT) :: ISTATE
+        INTEGER, INTENT (IN) :: ITASK, NEQ
+! ..
+! .. Array Arguments ..
+        KPP_REAL, INTENT (INOUT) :: Y(*)
+! ..
+! .. Subroutine Arguments ..
+        EXTERNAL F, GFUN, JAC
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: ATOLI, BIG, EWTI, H0, HMAX, HMX, RH, RTOLI, SIZEST, &
+          TCRIT, TNEXT, TOLSF, TP
+        INTEGER :: I, IER, IFLAG, IMXER, IOPT, IPCUTH, IRFP, IRT, ITOL, JCO, &
+          JER, KGO, LENIW, LENJ, LENP, LENRW, LENWM, LF0, MBAND, MF, MFA, ML, &
+          MU, NG, NITER, NSLAST
+        LOGICAL :: IHIT
+        CHARACTER (80) :: MSG
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, ALLOCATED, EPSILON, MAX, MIN, SIGN, SQRT
+! ..
+! The following internal PRIVATE variable blocks contain variables which
+! are communicated between subroutines in the DVODE package, or which
+! are to be saved between calls to DVODE.
+! In each block, real variables precede integers.
+! The variables stored in the internal PRIVATE variable blocks are as
+! follows:
+! ACNRM  = Weighted r.m.s. norm of accumulated correction vectors.
+! CCMXJ  = Threshhold on DRC for updating the Jacobian. (See DRC.)
+! CONP   = The saved value of TQ(5).
+! CRATE  = Estimated corrector convergence rate constant.
+! DRC    = Relative change in H*RL1 since last DVJAC call.
+! EL     = Real array of integration coefficients. See DVSET.
+! ETA    = Saved tentative ratio of new to old H.
+! ETAMAX = Saved maximum value of ETA to be allowed.
+! H      = The step size.
+! HMIN   = The minimum absolute value of the step size H to be used.
+! HMXI   = Inverse of the maximum absolute value of H to be used.
+!          HMXI = 0.0 is allowed and corresponds to an infinite HMAX.
+! HNEW   = The step size to be attempted on the next step.
+! HSCAL  = Stepsize in scaling of YH array.
+! PRL1   = The saved value of RL1.
+! RC     = Ratio of current H*RL1 to value on last DVJAC call.
+! RL1    = The reciprocal of the coefficient EL(2).
+! TAU    = Real vector of past NQ step sizes, length 13.
+! TQ     = A real vector of length 5 in which DVSET stores constants
+!          used for the convergence test, the error test, and the
+!          selection of H at a new order.
+! TN     = The independent variable, updated on each step taken.
+! UROUND = The machine unit roundoff. The smallest positive real number
+!          such that  1.0 + UROUND /= 1.0
+! ICF    = Integer flag for convergence failure in DVNLSD:
+!            0 means no failures.
+!            1 means convergence failure with out of date Jacobian
+!                   (recoverable error).
+!            2 means convergence failure with current Jacobian or
+!                   singular matrix (unrecoverable error).
+! INIT   = Saved integer flag indicating whether initialization of the
+!          problem has been done (INIT = 1) or not.
+! IPUP   = Saved flag to signal updating of Newton matrix.
+! JCUR   = Output flag from DVJAC showing Jacobian status:
+!            JCUR = 0 means J is not current.
+!            JCUR = 1 means J is current.
+! JSTART = Integer flag used as input to DVSTEP:
+!            0  means perform the first step.
+!            1  means take a new step continuing from the last.
+!           -1  means take the next step with a new value of MAXORD,
+!               HMIN, HMXI, N, METH, MITER, and/or matrix parameters.
+!          On return, DVSTEP sets JSTART = 1.
+! JSV    = Integer flag for Jacobian saving, = sign(MF).
+! KFLAG  = A completion code from DVSTEP with the following meanings:
+!               0      the step was successful.
+!              -1      the requested error could not be achieved.
+!              -2      corrector convergence could not be achieved.
+!              -3, -4  fatal error in DVNLSD(can not occur here).
+! KUTH   = Input flag to DVSTEP showing whether H was reduced by the
+!          driver. KUTH = 1 if H was reduced, = 0 otherwise.
+! L      = Integer variable, NQ + 1, current order plus one.
+! LMAX   = MAXORD + 1 (used for dimensioning).
+! LOCJS  = A pointer to the saved Jacobian, whose storage starts at
+!          WM(LOCJS), if JSV = 1.
+! LYH    = Saved integer pointer to segments of RWORK and IWORK.
+! MAXORD = The maximum order of integration method to be allowed.
+! METH/MITER = The method flags. See MF.
+! MSBJ   = The maximum number of steps between J evaluations, = 50.
+! MXHNIL = Saved value of optional input MXHNIL.
+! MXSTEP = Saved value of optional input MXSTEP.
+! N      = The number of first-order ODEs, = NEQ.
+! NEWH   = Saved integer to flag change of H.
+! NEWQ   = The method order to be used on the next step.
+! NHNIL  = Saved counter for occurrences of T + H = T.
+! NQ     = Integer variable, the current integration method order.
+! NQNYH  = Saved value of NQ*NYH.
+! NQWAIT = A counter controlling the frequency of order changes.
+!          An order change is about to be considered if NQWAIT = 1.
+! NSLJ   = The number of steps taken as of the last Jacobian update.
+! NSLP   = Saved value of NST as of last Newton matrix update.
+! NYH    = Saved value of the initial value of NEQ.
+! HU     = The step size in t last used.
+! NCFN   = Number of nonlinear convergence failures so far.
+! NETF   = The number of error test failures of the integrator so far.
+! NFE    = The number of f evaluations for the problem so far.
+! NJE    = The number of Jacobian evaluations so far.
+! NLU    = The number of matrix LU decompositions so far.
+! NNI    = Number of nonlinear iterations so far.
+! NQU    = The method order last used.
+! NST    = The number of steps taken for the problem so far.
+! Block 0.
+! Retrieve the necessary flags from the OPTIONS structure and manage
+! the storage allocation.
+! ..
+! .. FIRST EXECUTABLE STATEMENT DVODE
+! ..
+!       Retrieve the local flags from the options structure.
+        IOPT = OPTS%IOPT
+        ITOL = OPTS%ITOL
+        MF = OPTS%MF
+        METH = OPTS%METH
+        MITER = OPTS%MITER
+        MOSS = OPTS%MOSS
+        NG = OPTS%NG
+
+!       Allocate the necessary storage for RWORK and IWORK. (Assume that
+!       both or neither of the arrays are allocated.)
+
+!       If we are starting a new problem, deallocate the old RWORK and
+!       IWORK arrays if they were allocated in a previous call. Also
+!       manage the event residual arrays.
+
+        IF (ISTATE==1) THEN
+          IF (ALLOCATED(DTEMP)) THEN
+            DEALLOCATE (DTEMP,YTEMP,STAT=JER)
+            CALL CHECK_STAT(JER,270)
+          END IF
+          IF (ALLOCATED(RWORK)) THEN
+            DEALLOCATE (RWORK,IWORK,ACOR,SAVF,EWT,WM,STAT=JER)
+            CALL CHECK_STAT(JER,280)
+          END IF
+          IF (ALLOCATED(JROOT)) THEN
+            DEALLOCATE (JROOT,G0,G1,GX,STAT=JER)
+            CALL CHECK_STAT(JER,290)
+          END IF
+          IF (ALLOCATED(YMAX)) THEN
+            DEALLOCATE (YMAX,STAT=JER)
+            CALL CHECK_STAT(JER,300)
+          END IF
+        END IF
+
+!       If the user has made changes and called DVODE_F90 with ISTATE=3,
+!       temporarily save the necessary portion of the Nordsieck array
+!       and then release RWORK and IWORK. Also, save the contents of
+!       the WM array and release WM. Note: ACOR, SAVF, and EWT do not
+!       need to be saved.
+
+        IF (ISTATE==3) THEN
+          IF (IOPT/=1) THEN
+            MAXORD = MORD(METH)
+          ELSE
+            MAXORD = IUSER(5)
+            IF (MAXORD<0) GOTO 520
+            IF (MAXORD==0) MAXORD = 100
+            MAXORD = MIN(MAXORD,MORD(METH))
+          END IF
+          IF (MAXORD<NQ) THEN
+!           If MAXORD is less than NQ, save column NQ+2 of YH for
+!           later use.
+            IF (ALLOCATED(YHNQP2)) THEN
+              DEALLOCATE (YHNQP2,STAT=JER)
+              CALL CHECK_STAT(JER,310)
+            END IF
+            ALLOCATE (YHNQP2(NEQ),STAT=JER)
+            CALL CHECK_STAT(JER,320)
+            CALL DCOPY_F90(NEQ,RWORK(LYH+NYH*(MAXORD+1)),1,YHNQP2,1)
+          END IF
+          LYHTEMP = MIN((PREVIOUS_MAXORD+1)*NYH+LYH-1,(MAXORD+1)*NYH+LYH-1)
+          ALLOCATE (YHTEMP(LYHTEMP),STAT=JER)
+          CALL CHECK_STAT(JER,330)
+!         Save YH.
+          YHTEMP(1:LYHTEMP) = RWORK(1:LYHTEMP)
+!         Save WM.
+          LWMTEMP = LWMDIM
+          ALLOCATE (WMTEMP(LWMTEMP),STAT=JER)
+          CALL CHECK_STAT(JER,340)
+          WMTEMP(1:LWMTEMP) = WM(1:LWMTEMP)
+          IF (ALLOCATED(DTEMP)) THEN
+             DEALLOCATE (DTEMP,YTEMP,STAT=JER)
+             CALL CHECK_STAT(JER,350)
+          END IF
+          DEALLOCATE (RWORK,IWORK,YMAX,ACOR,SAVF,EWT,WM,STAT=JER)
+          CALL CHECK_STAT(JER,360)
+        END IF
+
+!     Allocate the RWORK and WM work arrays if they haven't already
+!     been allocated in a previous call.
+!     LRW = 20 + (MAXORD + 1) * NEQ
+!     LWMDIM =     
+!            0                        for MF = 10,
+!            2 * NEQ**2               for MF = 11 or 12,
+!            NEQ**2                   for MF = -11 or -12,
+!            NEQ                      for MF = 13,
+!            (3*ML + 2*MU + 2) * NEQ  for MF = 14 or 15,
+!            (2*ML + MU + 1) * NEQ    for MF = -14 or -15,
+!            0                        for MF = 16 or 17,
+!            0                        for MF = -16 or -17,
+!            0                        for MF = 20,
+!            2 * NEQ**2               for MF = 21 or 22,
+!            NEQ**2                   for MF = -21 or -22,
+!            NEQ                      for MF = 23,
+!            (3*ML + 2*MU + 2) * NEQ  for MF = 24 or 25,
+!            (2*ML + MU + 1) * NEQ    for MF = -24 or -25,
+!            0                        for MF = 26 or 27,
+!            0                        for MF = -26 or -27.
+        IF (ALLOCATED(RWORK)) THEN
+        ELSE
+          MFA = ABS(MF)
+          IF (IOPT/=1) THEN
+            MAXORD = MORD(METH)
+          ELSE
+            MAXORD = IUSER(5)
+            IF (MAXORD<0) GOTO 520
+            IF (MAXORD==0) MAXORD = 100
+            MAXORD = MIN(MAXORD,MORD(METH))
+          END IF
+          LRW = LRWUSER + (MAXORD+1)*NEQ
+!        IF (MITER == 0) LRW = LRW - 2
+          LRW = LRW - 2
+          IF (MF==10) THEN
+            LWMDIM = 0
+          ELSE IF (MF==11 .OR. MF==12) THEN
+            LWMDIM = 2*NEQ**2
+          ELSE IF (MF==-11 .OR. MF==-12) THEN
+            LWMDIM = NEQ**2
+          ELSE IF (MF==13) THEN
+            LWMDIM = NEQ
+          ELSE IF (MF==14 .OR. MF==15) THEN
+            ML = IUSER(1)
+            MU = IUSER(2)
+            IF (ML<0 .OR. ML>=NEQ) GOTO 500
+            IF (MU<0 .OR. MU>=NEQ) GOTO 510
+            LWMDIM = (3*ML+2*MU+2)*NEQ
+          ELSE IF (MF==-14 .OR. MF==-15) THEN
+            ML = IUSER(1)
+            MU = IUSER(2)
+            IF (ML<0 .OR. ML>=NEQ) GOTO 500
+            IF (MU<0 .OR. MU>=NEQ) GOTO 510
+            LWMDIM = (2*ML+MU+1)*NEQ
+          ELSE IF (MF==16 .OR. MF==17) THEN
+            LWMDIM = 0
+          ELSE IF (MF==-16 .OR. MF==-17) THEN
+            LWMDIM = 0
+          ELSE IF (MF==20) THEN
+            LWMDIM = 0
+          ELSE IF (MF==21 .OR. MF==22) THEN
+            LWMDIM = 2*NEQ**2
+          ELSE IF (MF==-21 .OR. MF==-22) THEN
+            LWMDIM = NEQ**2
+          ELSE IF (MF==23) THEN
+            LWMDIM = NEQ
+          ELSE IF (MF==24 .OR. MF==25) THEN
+            ML = IUSER(1)
+            MU = IUSER(2)
+            IF (ML<0 .OR. ML>=NEQ) GOTO 500
+            IF (MU<0 .OR. MU>=NEQ) GOTO 510
+            LWMDIM = (3*ML+2*MU+2)*NEQ
+          ELSE IF (MF==-24 .OR. MF==-25) THEN
+            ML = IUSER(1)
+            MU = IUSER(2)
+            IF (ML<0 .OR. ML>=NEQ) GOTO 500
+            IF (MU<0 .OR. MU>=NEQ) GOTO 510
+            LWMDIM = (2*ML+MU+1)*NEQ
+          ELSE IF (MF==26 .OR. MF==27) THEN
+            LWMDIM = 0
+          ELSE IF (MF==-26 .OR. MF==-27) THEN
+            LWMDIM = 0
+          END IF
+!         LWMDIM = LWMDIM + 2
+          ALLOCATE (RWORK(LRW),WM(LWMDIM),STAT=JER)
+          CALL CHECK_STAT(JER,370)
+          RWORK(1:LRW) = ZERO
+          WM(1:LWMDIM) = ZERO
+          IF (.NOT.ALLOCATED(DTEMP)) THEN
+             ALLOCATE (DTEMP(NEQ),YTEMP(NEQ),STAT=JER)
+             CALL CHECK_STAT(JER,380)
+          END IF
+          ALLOCATE (ACOR(NEQ),SAVF(NEQ),EWT(NEQ),STAT=JER)
+          CALL CHECK_STAT(JER,390)
+!         If necessary, reload the saved portion of the Nordsieck
+!         array and the WM array, saved above.
+          IF (ISTATE==3) THEN
+            RWORK(1:LYHTEMP) = YHTEMP(1:LYHTEMP)
+            I = MIN(LWMTEMP,LWMDIM)
+!           WM(1:LWMTEMP) = WMTEMP(1:LWMTEMP)
+            WM(1:I) = WMTEMP(1:I)
+            DEALLOCATE (YHTEMP,WMTEMP,STAT=JER)
+            CALL CHECK_STAT(JER,400)
+          END IF
+          RWORK(1:LRWUSER) = RUSER(1:LRWUSER)
+!         IUSER: = LIWUSER if MITER = 0 or 3 (MF = 10, 13, 20, 23)
+!                = LIWUSER + NEQ otherwise
+!                  (ABS(MF) = 11,12,14,15,16,17,21,22,24,25,26,27).
+          LIW = LIWUSER + NEQ
+          IF (MITER==0 .OR. MITER==3) LIW = LIWUSER
+          ALLOCATE (IWORK(LIW),STAT=JER)
+          CALL CHECK_STAT(JER,410)
+          IWORK(1:LIWUSER) = IUSER(1:LIWUSER)
+!         Allocate the YMAX vector.
+          ALLOCATE (YMAX(NEQ),STAT=JER)
+          CALL CHECK_STAT(JER,420)
+        END IF
+!       Allocate the event arrays if they haven't already been allocated
+!       in a previous call.
+        IF (ALLOCATED(JROOT)) THEN
+        ELSE
+          IF (NG>0) THEN
+            ALLOCATE (JROOT(NG),G0(NG),G1(NG),GX(NG),STAT=JER)
+            CALL CHECK_STAT(JER,430)
+          END IF
+        END IF
+
+! Block A.
+! This code block is executed on every call. It tests ISTATE and
+! ITASK for legality and branches appropriately.
+! If ISTATE > 1 but the flag INIT shows that initialization has
+! not yet been done, an error return occurs.
+! If ISTATE = 1 and TOUT = T, return immediately.
+! The user portion of RWORK and IWORK are reloaded since something
+! may have changed since the previous visit.
+
+        RWORK(1:LRWUSER) = RUSER(1:LRWUSER)
+        IWORK(1:LIWUSER) = IUSER(1:LIWUSER)
+        IF (ISTATE<1 .OR. ISTATE>3) GOTO 420
+        IF (ITASK<1 .OR. ITASK>5) GOTO 430
+        ITASKC = ITASK
+        IF (ISTATE==1) GOTO 10
+        IF (INIT/=1) GOTO 440
+        IF (ISTATE==2) GOTO 130
+        GOTO 20
+10      INIT = 0
+        IF (ABS(TOUT-T)<=ZERO) THEN
+          RUSER(1:LRWUSER) = RWORK(1:LRWUSER)
+          IUSER(1:LIWUSER) = IWORK(1:LIWUSER)
+          RETURN
+        END IF
+
+! Block B.
+! The next code block is executed for the initial call (ISTATE = 1),
+! or for a continuation call with parameter changes (ISTATE = 3).
+! It contains checking of all input and various initializations.
+
+!       First check legality of the non-optional input NEQ, ITOL, IOPT,
+!       MF, ML, and MU.
+
+20      IF (NEQ<=0) GOTO 450
+        IF (ISTATE==1) GOTO 30
+        IF (NEQ>N) GOTO 460
+        IF (NEQ/=N) GOTO 465
+30      N = NEQ
+        IF (ITOL<1 .OR. ITOL>4) GOTO 470
+        IF (IOPT<0 .OR. IOPT>1) GOTO 480
+        JSV = SIGN(1,MF)
+        INEWJ = (1-JSV)/2
+        MFA = ABS(MF)
+        METH = MFA/10
+        MITER = MFA - 10*METH
+        IF (METH<1 .OR. METH>2) GOTO 490
+        IF (MITER<0 .OR. MITER>7) GOTO 490
+        IF (MITER<=3) GOTO 40
+        IF (MITER<=5) THEN
+          ML = IWORK(1)
+          MU = IWORK(2)
+          IF (ML<0 .OR. ML>=N) GOTO 500
+          IF (MU<0 .OR. MU>=N) GOTO 510
+        END IF
+40      CONTINUE
+        IF (NG<0) GOTO 700
+        IF (ISTATE==1) GOTO 50
+        IF (IRFND==0 .AND. NG/=NGC) GOTO 710
+50      NGC = NG
+!       Next process and check the optional input.
+        IF (IOPT==1) GOTO 60
+        MAXORD = MORD(METH)
+        MXSTEP = MXSTP0
+        MXHNIL = MXHNL0
+        IF (ISTATE==1) H0 = ZERO
+        HMXI = ZERO
+        HMIN = ZERO
+        GOTO 80
+60      MAXORD = IWORK(5)
+        IF (MAXORD<0) GOTO 520
+        IF (MAXORD==0) MAXORD = 100
+        MAXORD = MIN(MAXORD,MORD(METH))
+        MXSTEP = IWORK(6)
+        IF (MXSTEP<0) GOTO 530
+        IF (MXSTEP==0) MXSTEP = MXSTP0
+        MXHNIL = IWORK(7)
+        IF (MXHNIL<0) GOTO 540
+        IF (MXHNIL==0) MXHNIL = MXHNL0
+        IF (ISTATE/=1) GOTO 70
+        H0 = RWORK(5)
+        IF ((TOUT-T)*H0<ZERO) GOTO 550
+70      HMAX = RWORK(6)
+        IF (HMAX<ZERO) GOTO 560
+        HMXI = ZERO
+        IF (HMAX>ZERO) HMXI = ONE/HMAX
+        HMIN = RWORK(7)
+        IF (HMIN<ZERO) GOTO 570
+        SETH = RWORK(8)
+        IF (SETH<ZERO) GOTO 690
+!       Check the nonnegativity information.
+        IF (BOUNDS) THEN
+          IF (NDX<1 .OR. NDX>NEQ) THEN
+            MSG = 'The size of the CONSTRAINED vector'
+            CALL XERRDV(MSG,900,1,0,0,0,0,ZERO,ZERO)
+            MSG = 'must be between 1 and NEQ.'
+            CALL XERRDV(MSG,900,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          DO I = 1, NDX
+            IF (IDX(I)<1 .OR. IDX(I)>N) THEN
+              MSG = 'Each component of THE CONSTRAINED'
+              CALL XERRDV(MSG,910,1,0,0,0,0,ZERO,ZERO)
+              MSG = 'vector must be between 1 and N.'
+              CALL XERRDV(MSG,910,2,0,0,0,0,ZERO,ZERO)
+            END IF
+          END DO
+        END IF
+!       Check the sub diagonal and super diagonal arrays.
+        IF (MITER==4 .OR. MITER==5) THEN
+           IF (SUBS) THEN
+              DO I = 1, NSUBS
+                 IF (SUBDS(I) < 2 .OR. SUBDS(I) > ML+1) THEN
+                    MSG = 'Each element of SUB_DIAGONALS'
+                    CALL XERRDV(MSG,920,1,0,0,0,0,ZERO,ZERO)
+                    MSG = 'must be between 2 and ML + 1.'
+                    CALL XERRDV(MSG,920,2,0,0,0,0,ZERO,ZERO)
+                 END IF
+              END DO
+           END IF
+           IF (SUPS) THEN
+              DO I = 1, NSUPS
+                 IF (SUPDS(I) < 2 .OR. SUPDS(I) > MU + 1) THEN
+                    MSG = 'Each element of SUP_DIAGONALS'
+                    CALL XERRDV(MSG,930,1,0,0,0,0,ZERO,ZERO)
+                    MSG = 'must be between 2 and MU + 1.'
+                    CALL XERRDV(MSG,930,2,0,0,0,0,ZERO,ZERO)
+                 END IF
+              END DO
+           END IF
+!          Compute the banded column grouping.
+           IF (SUBS .OR. SUPS) THEN
+             CALL BGROUP(N,EWT,ACOR,YMAX,ML,MU)
+             BUILD_IAJA = .FALSE.
+             BUILD_IAJA = .TRUE.
+             IF (BUILD_IAJA) THEN
+                CALL BANDED_IAJA(N,ML,MU)
+                NZB = IAB(N+1) - 1
+             END IF
+           END IF
+        END IF
+
+        IF ((MITER==2 .OR. MITER==5) .AND. USE_JACSP) THEN
+!         Allocate the arrays needed by DVJAC/JACSPD.
+          IF (ALLOCATED(INDROWDS)) THEN
+             DEALLOCATE (INDROWDS, INDCOLDS, NGRPDS, IPNTRDS, JPNTRDS, &
+               IWADS, IWKDS, IOPTDS, YSCALEDS, WKDS, FACDS)
+             CALL CHECK_STAT(IER,440)
+          END IF
+          ALLOCATE (INDROWDS(1), INDCOLDS(1), NGRPDS(1), IPNTRDS(1),   &
+            JPNTRDS(1), IWADS(1), IWKDS(50+N), IOPTDS(5), YSCALEDS(N), &
+            WKDS(3*N), FACDS(N), STAT=IER)
+          CALL CHECK_STAT(IER,450)
+!         For use in DVJAC:
+          IOPTDS(4) = 0
+        END IF
+
+! Set work array pointers and check lengths LRW and LIW. Pointers
+! to segments of RWORK and IWORK are named by prefixing L to the
+! name of the segment. e.g., the segment YH starts at RWORK(LYH).
+! Within WM, LOCJS is the location of the saved Jacobian (JSV > 0).
+
+80      LYH = 21
+        IF (ISTATE==1) NYH = N
+        LENRW = LYH + (MAXORD+1)*NYH - 1
+        IWORK(17) = LENRW
+        IF (LENRW>LRW) GOTO 580
+        IF (LENRW/=LRW) GOTO 580
+        LWM = 1
+!       Save MAXORD in case the calling program calls with ISTATE=3.
+        PREVIOUS_MAXORD = MAXORD
+        JCO = MAX(0,JSV)
+!       IF (MITER==0) LENWM = 2
+        IF (MITER==0) LENWM = 0
+        IF (MITER==1 .OR. MITER==2) THEN
+!         LENWM = 2 + (1+JCO)*N*N
+!         LOCJS = N*N + 3
+          LENWM = (1+JCO)*N*N
+          LOCJS = N*N + 1
+        END IF
+!       IF (MITER==3) LENWM = N + 2
+        IF (MITER==3) LENWM = N
+        IF (MITER==4 .OR. MITER==5) THEN
+          MBAND = ML + MU + 1
+          LENP = (MBAND+ML)*N
+          LENJ = MBAND*N
+!         LENWM = 2 + LENP + JCO*LENJ
+!         LOCJS = LENP + 3
+          LENWM = LENP + JCO*LENJ
+          LOCJS = LENP + 1
+        END IF
+        IF (MITER==6 .OR. MITER==7) THEN
+!         LENWM = 2
+          LENWM = 0
+        END IF
+        IF (LENWM>LWMDIM) GOTO 730
+        IF (LENWM/=LWMDIM) GOTO 730
+        LIWM = 1
+        LENIW = 30 + N
+        IF (MITER==0 .OR. MITER==3) LENIW = 30
+        IWORK(18) = LENIW
+        IF (LENIW>LIW) GOTO 590
+!       Check RTOL and ATOL for legality.
+        RTOLI = OPTS%RTOL(1)
+        ATOLI = OPTS%ATOL(1)
+        DO I = 1, N
+          IF (ITOL>=3) RTOLI = OPTS%RTOL(I)
+          IF (ITOL==2 .OR. ITOL==4) ATOLI = OPTS%ATOL(I)
+          IF (RTOLI<ZERO) GOTO 600
+          IF (ATOLI<ZERO) GOTO 610
+        END DO
+        IF (ISTATE==1) GOTO 100
+!       If ISTATE = 3, set flag to signal parameter changes to DVSTEP.
+        JSTART = -1
+        IF (NQ<=MAXORD) GOTO 90
+!       MAXORD was reduced below NQ. Copy YH(*,MAXORD+2) into SAVF.
+!       YH(*,MAXORD+2) was copied to the YHNQP2 array at the
+!       beginning of DVODE when the ISTATE=3 call was made.
+        CALL DCOPY_F90(N,YHNQP2,1,SAVF,1)
+!       Reload WM1 since LWM may have changed.
+90      IF (MITER>0) WM1 = SQRT(UROUND)
+!       ISTATC controls the determination of the sparsity arrays
+!       if the sparse solution option is used.
+        ISTATC = ISTATE
+        GOTO 130
+
+! Block C.
+! The next block is for the initial call only (ISTATE = 1).
+! It contains all remaining initializations, the initial call to F,
+! and the calculation of the initial step size.
+! The error weights in EWT are inverted after being loaded.
+
+100     UROUND = EPSILON(ONE)
+        U125 = UROUND ** 0.125_dp
+        U325 = UROUND ** 0.325_dp
+!       ISTATC controls the determination of the sparsity arrays if
+!       the sparse solution option is used.
+        ISTATC = ISTATE
+        TN = T
+        IF (ITASK/=4 .AND. ITASK/=5) GOTO 110
+        TCRIT = RWORK(1)
+        IF ((TCRIT-TOUT)*(TOUT-T)<ZERO) GOTO 660
+        IF (ABS(H0)>ZERO .AND. (T+H0-TCRIT)*H0>ZERO) H0 = TCRIT - T
+110     JSTART = 0
+        IF (MITER>0) WM1 = SQRT(UROUND)
+        CCMXJ = PT2
+        MSBJ = 50
+        MSBG = 75
+        NHNIL = 0
+        NST = 0
+        NJE = 0
+        NNI = 0
+        NCFN = 0
+        NETF = 0
+        NLU = 0
+        NSLJ = 0
+        NSLAST = 0
+        HU = ZERO
+        NQU = 0
+        MB28 = 0
+!_______________________________________________________________________
+! *****MA48 build change point. Insert this statement.
+!       MB48 = 0
+!_______________________________________________________________________
+        NSLG = 0
+        NGE = 0
+!       Initial call to F. (LF0 points to YH(*,2).)
+        LF0 = LYH + NYH
+        CALL F(N,T,Y,RWORK(LF0))
+        NFE = 1
+!       Load the initial value vector in YH.
+        CALL DCOPY_F90(N,Y,1,RWORK(LYH),1)
+!       Load and invert the EWT array. (H is temporarily set to 1.0.)
+        NQ = 1
+        H = ONE
+        CALL DEWSET(N,ITOL,OPTS%RTOL,OPTS%ATOL,RWORK(LYH),EWT)
+        DO I = 1, N
+          IF (EWT(I)<=ZERO) GOTO 620
+          EWT(I) = ONE/EWT(I)
+        END DO
+        NNZ = 0
+        NGP = 0
+        IF (OPTS%SPARSE) THEN
+          ISTATC = ISTATE
+        END IF
+        IF (ABS(H0)>ZERO) GOTO 120
+!       Call DVHIN to set initial step size H0 to be attempted.
+        CALL DVHIN(N,T,RWORK(LYH),RWORK(LF0),F,TOUT,EWT,ITOL,OPTS%ATOL,Y,ACOR, &
+          H0,NITER,IER)
+        NFE = NFE + NITER
+        IF (IER/=0) GOTO 630
+!       Adjust H0 if necessary to meet HMAX bound.
+120     RH = ABS(H0)*HMXI
+        IF (RH>ONE) H0 = H0/RH
+!       Load H with H0 and scale YH(*,2) by H0.
+        H = H0
+        CALL DSCAL_F90(N,H0,RWORK(LF0),1)
+!       GOTO 270
+!       Check for a zero of g at T.
+        IRFND = 0
+        TOUTC = TOUT
+        IF (NGC==0) GOTO 210
+        CALL DVCHECK(1,GFUN,NEQ,Y,RWORK(LYH),NYH,G0,G1,GX,IRT)
+        IF (IRT==0) GOTO 210
+        GOTO 720
+
+! Block D.
+! The next code block is for continuation calls only (ISTATE = 2 or 3)
+! and is to check stop conditions before taking a step.
+
+130     NSLAST = NST
+        IRFP = IRFND
+        IF (NGC==0) GOTO 140
+        IF (ITASK==1 .OR. ITASK==4) TOUTC = TOUT
+        CALL DVCHECK(2,GFUN,NEQ,Y,RWORK(LYH),NYH,G0,G1,GX,IRT)
+        IF (IRT/=1) GOTO 140
+        IRFND = 1
+        ISTATE = 3
+        T = T0ST
+        GOTO 330
+140     CONTINUE
+        IRFND = 0
+        IF (IRFP==1 .AND. (ABS(TLAST-TN)>ZERO) .AND. ITASK==2) GOTO 310
+        KUTH = 0
+        GOTO (150,200,160,170,180) ITASK
+150     IF ((TN-TOUT)*H<ZERO) GOTO 200
+        CALL DVINDY_CORE(TOUT,0,RWORK(LYH),NYH,Y,IFLAG)
+        IF (IFLAG/=0) GOTO 680
+        IF (BOUNDS) THEN
+          DO I = 1, NDX
+            Y(IDX(I)) = MAX(Y(IDX(I)),LB(I))
+            Y(IDX(I)) = MIN(Y(IDX(I)),UB(I))
+          END DO
+        END IF
+        T = TOUT
+        GOTO 320
+160     TP = TN - HU*(ONE+HUN*UROUND)
+        IF ((TP-TOUT)*H>ZERO) GOTO 640
+        IF ((TN-TOUT)*H<ZERO) GOTO 200
+        GOTO 310
+170     TCRIT = RWORK(1)
+        IF ((TN-TCRIT)*H>ZERO) GOTO 650
+        IF ((TCRIT-TOUT)*H<ZERO) GOTO 660
+        IF ((TN-TOUT)*H<ZERO) GOTO 190
+        CALL DVINDY_CORE(TOUT,0,RWORK(LYH),NYH,Y,IFLAG)
+        IF (IFLAG/=0) GOTO 680
+        IF (BOUNDS) THEN
+          DO I = 1, NDX
+            Y(IDX(I)) = MAX(Y(IDX(I)),LB(I))
+            Y(IDX(I)) = MIN(Y(IDX(I)),UB(I))
+          END DO
+        END IF
+        T = TOUT
+        GOTO 320
+180     TCRIT = RWORK(1)
+        IF ((TN-TCRIT)*H>ZERO) GOTO 650
+190     HMX = ABS(TN) + ABS(H)
+        IHIT = ABS(TN-TCRIT) <= HUN*UROUND*HMX
+        IF (IHIT) GOTO 310
+        TNEXT = TN + HNEW*(ONE+FOUR*UROUND)
+        IF ((TNEXT-TCRIT)*H<=ZERO) GOTO 200
+        H = (TCRIT-TN)*(ONE-FOUR*UROUND)
+        KUTH = 1
+
+! Block E.
+! The next block is normally executed for all calls and contains
+! the call to the one-step core integrator DVSTEP. This is a
+! looping point for the integration steps.
+! First check for too many steps being taken, update EWT(if not
+! at start of problem), check for too much accuracy being
+! requested, and check for H below the roundoff level in T.
+
+200     CONTINUE
+        IF ((NST-NSLAST)>=MXSTEP) GOTO 340
+        CALL DEWSET(N,ITOL,OPTS%RTOL,OPTS%ATOL,RWORK(LYH),EWT)
+        DO I = 1, N
+          IF (EWT(I)<=ZERO) GOTO 350
+          EWT(I) = ONE/EWT(I)
+        END DO
+210     TOLSF = UROUND*DVNORM(N,RWORK(LYH),EWT)
+        IPCUTH = -1
+        IF (TOLSF<=ONE) GOTO 220
+        TOLSF = TOLSF*TWO
+        IF (NST==0) GOTO 670
+        GOTO 360
+220     CONTINUE
+        IPCUTH = IPCUTH + 1
+        IF (IPCUTH>=IPCUTH_MAX) THEN
+          MSG = 'Too many step reductions to prevent'
+          CALL XERRDV(MSG,940,1,0,0,0,0,ZERO,ZERO)
+          MSG = 'an infeasible prediction.'
+          CALL XERRDV(MSG,940,1,0,0,0,0,ZERO,ZERO)
+!         Retract the solution to TN:
+          CALL DVNRDN(RWORK(LYH),NYH,N,NQ)
+          ACOR(1:N) = ZERO
+          ISTATE = -7
+          GOTO 410
+        END IF
+        IF (ABS((TN+H)-TN)>ZERO) GOTO 230
+        NHNIL = NHNIL + 1
+        IF (NHNIL>MXHNIL) GOTO 230
+        MSG = 'Warning: internal T(=R1) and H(=R2) are such that'
+        CALL XERRDV(MSG,950,1,0,0,0,0,ZERO,ZERO)
+        MSG = 'in the machine, T + H = T on the next step.'
+        CALL XERRDV(MSG,950,1,0,0,0,0,ZERO,ZERO)
+        MSG = '(H = step size). The solver will continue anyway.'
+        CALL XERRDV(MSG,950,1,0,0,0,2,TN,H)
+        IF (NHNIL<MXHNIL) GOTO 230
+        MSG = 'The above warning has been issued I1 times.'
+        CALL XERRDV(MSG,950,1,0,0,0,0,ZERO,ZERO)
+        MSG = 'It will not be issued again for this problem.'
+        CALL XERRDV(MSG,950,1,1,MXHNIL,0,0,ZERO,ZERO)
+230     CONTINUE
+        IF (BOUNDS) THEN
+!         Check positive components for infeasible prediction; reduce 
+!         step size if infeasible prediction will occur in DVNLSD.
+          ACOR(1:N) = RWORK(LYH:LYH+N-1)
+!         Predict:
+          CALL DVNRDP(RWORK(LYH:LRW),NYH,N,NQ)
+          DO I = 1, NDX
+            IF ((ACOR(IDX(I))>LB(I) .AND. RWORK(LYH+ &
+                IDX(I)-1)<LB(I)) .OR. (ACOR(IDX(I))<UB(I) .AND. RWORK(LYH+ &
+                IDX(I)-1)>UB(I))) THEN
+!              Retract:
+              CALL DVNRDN(RWORK(LYH),NYH,N,NQ)
+              H = HALF*H
+              ETA = HALF
+!              Rescale:
+              CALL DVNRDS(RWORK(LYH),NYH,N,L,ETA)
+              GOTO 220
+            END IF
+          END DO
+!         Retract:
+          CALL DVNRDN(RWORK(LYH),NYH,N,NQ)
+          ACOR(1:N) = ZERO
+        END IF
+
+!       CALL DVSTEP(Y,YH,LDYH,YH1,EWT,SAVF,ACOR,WM,IWM,F,JAC, &
+!         VNLS,OPTS%ATOL,ITOL)
+!_______________________________________________________________________
+
+        IF (MITER/=6 .AND. MITER/=7) THEN
+          CALL DVSTEP(Y,RWORK(LYH),NYH,RWORK(LYH),EWT,SAVF,ACOR,WM, &
+            IWORK(LIWM),F,JAC,DVNLSD,OPTS%ATOL,ITOL)
+        ELSE
+          CALL DVSTEP(Y,RWORK(LYH),NYH,RWORK(LYH),EWT,SAVF,ACOR,WM, &
+            IWORK(LIWM),F,JAC,DVNLSS28,OPTS%ATOL,ITOL)
+        END IF
+! *****MA48 build change point. Replace above with these statements.
+!     IF (MITER /= 6 .AND. MITER /= 7) THEN
+!        CALL DVSTEP(Y,RWORK(LYH),NYH,RWORK(LYH),EWT,SAVF,ACOR,WM, &
+!          IWORK(LIWM),F,JAC,DVNLSD,OPTS%ATOL,ITOL)
+!     ELSE
+!        IF (USE_MA48_FOR_SPARSE) THEN
+!           CALL DVSTEP(Y,RWORK(LYH),NYH,RWORK(LYH),EWT,SAVF,ACOR,WM, &
+!             IWORK(LIWM), F, JAC, DVNLSS48,OPTS%ATOL,ITOL)
+!        ELSE
+!           CALL DVSTEP(Y,RWORK(LYH),NYH,RWORK(LYH),EWT,SAVF,ACOR,WM, &
+!           IWORK(LIWM),F,JAC,DVNLSS28,OPTS%ATOL,ITOL)
+!        END IF
+!     END IF
+!_______________________________________________________________________
+
+        KGO = 1 - KFLAG
+!       Branch on KFLAG. Note: In this version, KFLAG can not be set to
+!                            -3; KFLAG = 0, -1, -2.
+        GOTO (240,370,380) KGO
+
+! Block F.
+! The following block handles the case of a successful return from the
+! core integrator (KFLAG = 0). Test for stop conditions.
+
+240     INIT = 1
+        KUTH = 0
+        GOTO (250,310,270,280,300) ITASK
+!       ITASK = 1. If TOUT has been reached, interpolate.
+250     CONTINUE
+        IF (NGC==0) GOTO 260
+        CALL DVCHECK(3,GFUN,NEQ,Y,RWORK(LYH),NYH,G0,G1,GX,IRT)
+        IF (IRT/=1) GOTO 260
+        IRFND = 1
+        ISTATE = 3
+        T = T0ST
+        GOTO 330
+260     CONTINUE
+        IF ((TN-TOUT)*H<ZERO) GOTO 200
+        CALL DVINDY_CORE(TOUT,0,RWORK(LYH),NYH,Y,IFLAG)
+        IF (BOUNDS) THEN
+          DO I = 1, NDX
+            Y(IDX(I)) = MAX(Y(IDX(I)),LB(I))
+            Y(IDX(I)) = MIN(Y(IDX(I)),UB(I))
+          END DO
+        END IF
+        T = TOUT
+        GOTO 320
+!       ITASK = 3. Jump to exit if TOUT was reached.
+270     IF ((TN-TOUT)*H>=ZERO) GOTO 310
+        GOTO 200
+!       ITASK = 4. See if TOUT or TCRIT was reached. Adjust H if necessary.
+280     IF ((TN-TOUT)*H<ZERO) GOTO 290
+        CALL DVINDY_CORE(TOUT,0,RWORK(LYH),NYH,Y,IFLAG)
+        IF (BOUNDS) THEN
+          DO I = 1, NDX
+            Y(IDX(I)) = MAX(Y(IDX(I)),LB(I))
+            Y(IDX(I)) = MIN(Y(IDX(I)),UB(I))
+          END DO
+        END IF
+        T = TOUT
+        GOTO 320
+290     HMX = ABS(TN) + ABS(H)
+        IHIT = ABS(TN-TCRIT) <= HUN*UROUND*HMX
+        IF (IHIT) GOTO 310
+        TNEXT = TN + HNEW*(ONE+FOUR*UROUND)
+        IF ((TNEXT-TCRIT)*H<=ZERO) GOTO 200
+        H = (TCRIT-TN)*(ONE-FOUR*UROUND)
+        KUTH = 1
+        GOTO 200
+!       ITASK = 5. See if TCRIT was reached and jump to exit.
+300     HMX = ABS(TN) + ABS(H)
+        IHIT = ABS(TN-TCRIT) <= HUN*UROUND*HMX
+
+! Block G.
+! The following block handles all successful returns from DVODE.
+! If ITASK /= 1, Y is loaded from YH and T is set accordingly.
+! ISTATE is set to 2, and the optional output is loaded into the
+! work arrays before returning.
+
+310     CONTINUE
+        CALL DCOPY_F90(N,RWORK(LYH),1,Y,1)
+        T = TN
+        IF (ITASK/=4 .AND. ITASK/=5) GOTO 320
+        IF (IHIT) T = TCRIT
+320     ISTATE = 2
+330     CONTINUE
+        RWORK(11) = HU
+        RWORK(12) = HNEW
+        RWORK(13) = TN
+        IWORK(10) = NGE
+        IWORK(11) = NST
+        IWORK(12) = NFE
+        IWORK(13) = NJE
+        IWORK(14) = NQU
+        IWORK(15) = NEWQ
+        IWORK(19) = NLU
+        IWORK(20) = NNI
+        IWORK(21) = NCFN
+        IWORK(22) = NETF
+        TLAST = T
+        RUSER(1:LRWUSER) = RWORK(1:LRWUSER)
+        IUSER(1:LIWUSER) = IWORK(1:LIWUSER)
+!       Warn the user if |y(t)| < ATOL:
+        IF (ISTATE==2 .OR. ISTATE==3) THEN
+          IF (YMAXWARN) THEN
+            ATOLI = OPTS%ATOL(1)
+            DO I = 1, N
+              IF (ITOL==2 .OR. ITOL==4) ATOLI = OPTS%ATOL(I)
+              IF (ABS(Y(I))<ATOLI) THEN
+                MSG = 'Warning: Component I1 of the solution is'
+                CALL XERRDV(MSG,960,1,0,0,0,0,ZERO,ZERO)
+                MSG = 'smaller in magnitude than component I1'
+                CALL XERRDV(MSG,960,1,0,0,0,0,ZERO,ZERO)
+                MSG = 'of the absolute error tolerance vector.'
+                CALL XERRDV(MSG,960,1,1,I,0,0,ZERO,ZERO)
+              END IF
+            END DO
+          END IF
+        END IF
+        RETURN
+
+! Block H.
+! The following block handles all unsuccessful returns other than
+! those for illegal input. First the error message routine is called.
+! if there was an error test or convergence test failure, IMXER is set.
+! Then Y is loaded from YH, and T is set to TN. The optional output
+! is loaded into the work arrays before returning.
+
+!       The maximum number of steps was taken before reaching TOUT.
+340     MSG = 'At current T(=R1), MXSTEP(=I1) steps'
+        CALL XERRDV(MSG,970,1,0,0,0,0,ZERO,ZERO)
+        MSG = 'taken on this call before reaching TOUT.'
+        CALL XERRDV(MSG,970,1,1,MXSTEP,0,1,TN,ZERO)
+        ISTATE = -1
+        GOTO 410
+!       EWT(i) <= 0.0 for some i (not at start of problem).
+350     EWTI = EWT(I)
+        MSG = 'At T(=R1), EWT(I1) has become R2 <= 0.'
+        CALL XERRDV(MSG,980,1,1,I,0,2,TN,EWTI)
+        ISTATE = -6
+        GOTO 410
+!       Too much accuracy requested for machine precision.
+360     MSG = 'At T(=R1), too much accuracy was requested'
+        CALL XERRDV(MSG,990,1,0,0,0,0,ZERO,ZERO)
+        MSG = 'for precision of machine:   see TOLSF(=R2).'
+        CALL XERRDV(MSG,990,1,0,0,0,2,TN,TOLSF)
+        RWORK(14) = TOLSF
+        ISTATE = -2
+        GOTO 410
+!       KFLAG = -1. Error test failed repeatedly or with ABS(H) = HMIN.
+370     MSG = 'At T(=R1) and step size H(=R2), the error'
+        CALL XERRDV(MSG,1000,1,0,0,0,0,ZERO,ZERO)
+        MSG = 'test failed repeatedly or with ABS(H) = HMIN.'
+        CALL XERRDV(MSG,1000,1,0,0,0,2,TN,H)
+        ISTATE = -4
+        GOTO 390
+!       KFLAG = -2. Convergence failed repeatedly or with ABS(H) = HMIN.
+380     MSG = 'At T(=R1) and step size H(=R2), the'
+        CALL XERRDV(MSG,1010,1,0,0,0,0,ZERO,ZERO)
+        MSG = 'corrector convergence failed repeatedly'
+        CALL XERRDV(MSG,1010,1,0,0,0,0,ZERO,ZERO)
+        MSG = 'or with ABS(H) = HMIN.'
+        CALL XERRDV(MSG,1010,1,0,0,0,2,TN,H)
+        ISTATE = -5
+!       Compute IMXER if relevant.
+390     BIG = ZERO
+        IMXER = 1
+        DO 400 I = 1, N
+          SIZEST = ABS(ACOR(I)*EWT(I))
+          IF (BIG>=SIZEST) GOTO 400
+          BIG = SIZEST
+          IMXER = I
+400     END DO
+        IWORK(16) = IMXER
+!       Set Y vector, T, and optional output.
+410     CONTINUE
+        CALL DCOPY_F90(N,RWORK(LYH),1,Y,1)
+        T = TN
+        RWORK(11) = HU
+        RWORK(12) = H
+        RWORK(13) = TN
+        IWORK(10) = NGE
+        IWORK(11) = NST
+        IWORK(12) = NFE
+        IWORK(13) = NJE
+        IWORK(14) = NQU
+        IWORK(15) = NQ
+        IWORK(19) = NLU
+        IWORK(20) = NNI
+        IWORK(21) = NCFN
+        IWORK(22) = NETF
+        TLAST = T
+        RUSER(1:LRWUSER) = RWORK(1:LRWUSER)
+        IUSER(1:LIWUSER) = IWORK(1:LIWUSER)
+        RETURN
+
+! Block I.
+! The following block handles all error returns due to illegal input
+! (ISTATE = -3), as detected before calling the core integrator.
+! First the error message routine is called. If the illegal input
+! is a negative ISTATE, the run is aborted (apparent infinite loop).
+
+420     MSG = 'ISTATE(=I1) is illegal.'
+        CALL XERRDV(MSG,1020,1,1,ISTATE,0,0,ZERO,ZERO)
+        IF (ISTATE<0) GOTO 750
+        GOTO 740
+430     MSG = 'ITASK(=I1) is illegal.'
+        CALL XERRDV(MSG,1030,1,1,ITASK,0,0,ZERO,ZERO)
+        GOTO 740
+440     MSG = 'ISTATE(=I1) > 1 but DVODE is not initialized.'
+        CALL XERRDV(MSG,1040,1,1,ISTATE,0,0,ZERO,ZERO)
+        GOTO 740
+450     MSG = 'NEQ (=I1) < 1.'
+        CALL XERRDV(MSG,1050,1,1,NEQ,0,0,ZERO,ZERO)
+        GOTO 740
+460     MSG = 'ISTATE = 3 and NEQ increased (I1 to I2).'
+        CALL XERRDV(MSG,1060,1,2,N,NEQ,0,ZERO,ZERO)
+        GOTO 740
+465     MSG = 'This version of DVODE requires does not allow NEQ to be reduced.'
+        CALL XERRDV(MSG,1070,2,0,0,0,0,ZERO,ZERO)
+        GOTO 740
+470     MSG = 'ITOL(=I1) is illegal.'
+        CALL XERRDV(MSG,1080,1,1,ITOL,0,0,ZERO,ZERO)
+        GOTO 740
+480     MSG = 'IOPT(=I1) is illegal.'
+        CALL XERRDV(MSG,1090,1,1,IOPT,0,0,ZERO,ZERO)
+        GOTO 740
+490     MSG = 'MF(=I1) is illegal.'
+        CALL XERRDV(MSG,1100,1,1,MF,0,0,ZERO,ZERO)
+        GOTO 740
+500     MSG = 'ML(=I1) illegal: < 0 or >= NEQ (=I2)'
+        CALL XERRDV(MSG,1110,1,2,ML,NEQ,0,ZERO,ZERO)
+        GOTO 740
+510     MSG = 'MU(=I1) illegal: < 0 or >= NEQ (=I2)'
+        CALL XERRDV(MSG,1120,1,2,MU,NEQ,0,ZERO,ZERO)
+        GOTO 740
+520     MSG = 'MAXORD(=I1) < 0.'
+        CALL XERRDV(MSG,1130,1,1,MAXORD,0,0,ZERO,ZERO)
+        GOTO 740
+530     MSG = 'MXSTEP(=I1) < 0.'
+        CALL XERRDV(MSG,1140,1,1,MXSTEP,0,0,ZERO,ZERO)
+        GOTO 740
+540     MSG = 'MXHNIL(=I1) < 0.'
+        CALL XERRDV(MSG,1150,1,1,MXHNIL,0,0,ZERO,ZERO)
+        GOTO 740
+550     MSG = 'TOUT(=R1) is behind T(=R2).'
+        CALL XERRDV(MSG,1160,1,0,0,0,2,TOUT,T)
+        MSG = 'The integration direction is given by H0 (=R1).'
+        CALL XERRDV(MSG,1160,1,0,0,0,1,H0,ZERO)
+        GOTO 740
+560     MSG = 'HMAX(=R1) < 0.'
+        CALL XERRDV(MSG,1170,1,0,0,0,1,HMAX,ZERO)
+        GOTO 740
+570     MSG = 'HMIN(=R1) < 0.'
+        CALL XERRDV(MSG,1180,1,0,0,0,1,HMIN,ZERO)
+        GOTO 740
+580     CONTINUE
+        MSG = 'RWORK length needed, LENRW(=I1) > LRW(=I2)'
+        CALL XERRDV(MSG,1190,1,2,LENRW,LRW,0,ZERO,ZERO)
+        GOTO 740
+590     CONTINUE
+        MSG = 'IWORK length needed, LENIW(=I1) > LIW(=I2)'
+        CALL XERRDV(MSG,1200,1,2,LENIW,LIW,0,ZERO,ZERO)
+        GOTO 740
+600     MSG = 'RTOL(I1) is R1 < 0.'
+        CALL XERRDV(MSG,1210,1,1,I,0,1,RTOLI,ZERO)
+        GOTO 740
+610     MSG = 'ATOL(I1) is R1 < 0.'
+        CALL XERRDV(MSG,1220,1,1,I,0,1,ATOLI,ZERO)
+        GOTO 740
+620     EWTI = EWT(I)
+        MSG = 'EWT(I1) is R1 <= 0.'
+        CALL XERRDV(MSG,1230,1,1,I,0,1,EWTI,ZERO)
+        GOTO 740
+630     CONTINUE
+        MSG = 'TOUT(=R1) too close to T(=R2) to start.'
+        CALL XERRDV(MSG,1240,1,0,0,0,2,TOUT,T)
+        GOTO 740
+640     CONTINUE
+        MSG = 'ITASK = I1 and TOUT(=R1) < TCUR - HU(=R2).'
+        CALL XERRDV(MSG,1250,1,1,ITASK,0,2,TOUT,TP)
+        GOTO 740
+650     CONTINUE
+        MSG = 'ITASK = 4 or 5 and TCRIT(=R1) < TCUR(=R2).'
+        CALL XERRDV(MSG,1260,1,0,0,0,2,TCRIT,TN)
+        GOTO 740
+660     CONTINUE
+        MSG = 'ITASK = 4 or 5 and TCRIT(=R1) < TOUT(=R2).'
+        CALL XERRDV(MSG,1270,1,0,0,0,2,TCRIT,TOUT)
+        GOTO 740
+670     MSG = 'At the start of the problem, too much'
+        CALL XERRDV(MSG,1280,1,0,0,0,0,ZERO,ZERO)
+        MSG = 'accuracy was requested for precision'
+        CALL XERRDV(MSG,1280,1,0,0,0,1,TOLSF,ZERO)
+        MSG = 'of machine: see TOLSF(=R1).'
+        CALL XERRDV(MSG,1280,1,0,0,0,1,TOLSF,ZERO)
+        RWORK(14) = TOLSF
+        GOTO 740
+680     MSG = 'Trouble from DVINDY. ITASK = I1, TOUT = R1.'
+        CALL XERRDV(MSG,1290,1,1,ITASK,0,1,TOUT,ZERO)
+        GOTO 740
+690     MSG = 'SETH must be nonnegative.'
+        CALL XERRDV(MSG,1300,1,0,0,0,0,ZERO,ZERO)
+        GOTO 740
+700     MSG = 'NG(=I1) < 0.'
+        CALL XERRDV(MSG,1310,0,1,NG,0,0,ZERO,ZERO)
+        GOTO 740
+710     MSG = 'NG changed (from I1 to I2) illegally, i.e.,'
+        CALL XERRDV(MSG,1320,1,0,0,0,0,ZERO,ZERO)
+        MSG = 'not immediately after a root was found.'
+        CALL XERRDV(MSG,1320,1,2,NGC,NG,0,ZERO,ZERO)
+        GOTO 740
+720     MSG = 'One or more components of g has a root'
+        CALL XERRDV(MSG,1330,1,0,0,0,0,ZERO,ZERO)
+        MSG = 'too near to the initial point.'
+        CALL XERRDV(MSG,1330,1,0,0,0,0,ZERO,ZERO)
+        GOTO 740
+730     CONTINUE
+        MSG = 'WM length needed, LENWM(=I1) > LWMDIM(=I2)'
+        CALL XERRDV(MSG,1340,1,2,LENWM,LWMDIM,0,ZERO,ZERO)
+
+740     CONTINUE
+        ISTATE = -3
+        RUSER(1:LRWUSER) = RWORK(1:LRWUSER)
+        IUSER(1:LIWUSER) = IWORK(1:LIWUSER)
+        RETURN
+
+750     MSG = 'Run aborted:  apparent infinite loop.'
+        CALL XERRDV(MSG,1350,2,0,0,0,0,ZERO,ZERO)
+        RUSER(1:LRWUSER) = RWORK(1:LRWUSER)
+        IUSER(1:LIWUSER) = IWORK(1:LIWUSER)
+        RETURN
+
+      END SUBROUTINE DVODE
+!_______________________________________________________________________
+
+      SUBROUTINE DVHIN(N,T0,Y0,YDOT,F,TOUT,EWT,ITOL,ATOL,Y,TEMP,H0, &
+        NITER,IER)
+! ..
+! Calculate the initial step size.
+! ..
+! This routine computes the step size, H0, to be attempted on the
+! first step, when the user has not supplied a value for this.
+! First we check that TOUT - T0 differs significantly from zero. Then
+! an iteration is done to approximate the initial second derivative
+! and this is used to define h from w.r.m.s.norm(h**2 * yddot / 2) = 1.
+! A bias factor of 1/2 is applied to the resulting h.
+! The sign of H0 is inferred from the initial values of TOUT and T0.
+! Communication with DVHIN is done with the following variables:
+! N      = Size of ODE system, input.
+! T0     = Initial value of independent variable, input.
+! Y0     = Vector of initial conditions, input.
+! YDOT   = Vector of initial first derivatives, input.
+! F      = Name of subroutine for right-hand side f(t,y), input.
+! TOUT   = First output value of independent variable
+! UROUND = Machine unit roundoff
+! EWT, ITOL, ATOL = Error weights and tolerance parameters
+!                   as described in the driver routine, input.
+! Y, TEMP = Work arrays of length N.
+! H0     = Step size to be attempted, output.
+! NITER  = Number of iterations (and of f evaluations) to compute H0,
+!          output.
+! IER    = The error flag, returned with the value
+!          IER = 0  if no trouble occurred, or
+!          IER = -1 if TOUT and T0 are considered too close to proceed.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        KPP_REAL, INTENT (INOUT) :: H0
+        KPP_REAL, INTENT (IN) :: T0, TOUT
+        INTEGER :: IER
+        INTEGER, INTENT (IN) :: ITOL, N
+        INTEGER, INTENT (INOUT) :: NITER
+! ..
+! .. Array Arguments ..
+        KPP_REAL, INTENT (IN) :: ATOL(*), EWT(*), Y0(*)
+        KPP_REAL, INTENT (INOUT) :: TEMP(*), Y(*), YDOT(*)
+! ..
+! .. Subroutine Arguments ..
+        EXTERNAL F
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: AFI, ATOLI, DELYI, H, HG, HLB, HNEW, HRAT, HUB, T1, &
+          TDIST, TROUND, YDDNRM
+        INTEGER :: I, ITER
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, MAX, SIGN, SQRT
+! ..
+! .. FIRST EXECUTABLE STATEMENT DVHIN
+! ..
+        NITER = 0
+        TDIST = ABS(TOUT-T0)
+        TROUND = UROUND*MAX(ABS(T0),ABS(TOUT))
+        IF (TDIST<TWO*TROUND) GOTO 40
+
+!       Set a lower bound on H based on the roundoff level in T0
+!       and TOUT.
+        HLB = HUN*TROUND
+!       Set an upper bound on H based on TOUT-T0 and the initial
+!       Y and YDOT.
+        HUB = PT1*TDIST
+        ATOLI = ATOL(1)
+        DO I = 1, N
+          IF (ITOL==2 .OR. ITOL==4) ATOLI = ATOL(I)
+          DELYI = PT1*ABS(Y0(I)) + ATOLI
+          AFI = ABS(YDOT(I))
+          IF (AFI*HUB>DELYI) HUB = DELYI/AFI
+        END DO
+!       Set initial guess for H as geometric mean of upper and
+!       lower bounds.
+        ITER = 0
+        HG = SQRT(HLB*HUB)
+!       If the bounds have crossed, exit with the mean value.
+        IF (HUB<HLB) THEN
+          H0 = HG
+          GOTO 30
+        END IF
+
+!       Looping point for iteration.
+10      CONTINUE
+!       Estimate the second derivative as a difference quotient in f.
+        H = SIGN(HG,TOUT-T0)
+        T1 = T0 + H
+        Y(1:N) = Y0(1:N) + H*YDOT(1:N)
+        CALL F(N,T1,Y,TEMP)
+        NFE = NFE + 1
+        TEMP(1:N) = (TEMP(1:N)-YDOT(1:N))/H
+        YDDNRM = DVNORM(N,TEMP,EWT)
+!       Get the corresponding new value of h.
+        IF (YDDNRM*HUB*HUB>TWO) THEN
+          HNEW = SQRT(TWO/YDDNRM)
+        ELSE
+          HNEW = SQRT(HG*HUB)
+        END IF
+        ITER = ITER + 1
+
+! Test the stopping conditions.
+! Stop if the new and previous h values differ by a factor of < 2.
+! Stop if four iterations have been done. Also, stop with previous h
+! if HNEW/HG > 2 after first iteration, as this probably means that
+! the second derivative value is bad because of cancellation error.
+
+        IF (ITER>=4) GOTO 20
+        HRAT = HNEW/HG
+        IF ((HRAT>HALF) .AND. (HRAT<TWO)) GOTO 20
+        IF ((ITER>=2) .AND. (HNEW>TWO*HG)) THEN
+          HNEW = HG
+          GOTO 20
+        END IF
+        HG = HNEW
+        GOTO 10
+
+!       Iteration done. Apply bounds, bias factor, and sign. Then exit.
+20      H0 = HNEW*HALF
+        IF (H0<HLB) H0 = HLB
+        IF (H0>HUB) H0 = HUB
+30      H0 = SIGN(H0,TOUT-T0)
+        NITER = ITER
+        IER = 0
+        RETURN
+!       Error return for TOUT - T0 too small.
+40      IER = -1
+        RETURN
+
+      END SUBROUTINE DVHIN
+!_______________________________________________________________________
+
+      SUBROUTINE DVINDY_CORE(T,K,YH,LDYH,DKY,IFLAG)
+! ..
+! Interpolate the solution and derivative.
+! ..
+! DVINDY_CORE computes interpolated values of the K-th derivative
+! of the dependent variable vector y, and stores it in DKY. This
+! routine is called within the package with K = 0 and T = TOUT,
+! but may also be called by the user for any K up to the current
+! order. (See detailed instructions in the usage documentation.)
+! The computed values in DKY are gotten by interpolation using the
+! Nordsieck history array YH. This array corresponds uniquely to a
+! vector-valued polynomial of degree NQCUR or less, and DKY is set
+! to the K-th derivative of this polynomial at T.
+! The formula for DKY is:
+!              q
+!  DKY(i)  =  sum  c(j,K) * (T - TN)**(j-K) * H**(-j) * YH(i,j+1)
+!             j=K
+! where  c(j,K) = j*(j-1)*...*(j-K+1), q = NQCUR, TN = TCUR, H = HCUR.
+! The quantities  NQ = NQCUR, L = NQ+1, N, TN, and H are
+! communicated by PRIVATE variables. The above sum is done in reverse
+! order.
+! IFLAG is returned negative if either K or T is out of bounds.
+! Discussion above and comments in driver explain all variables.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        KPP_REAL, INTENT (IN) :: T
+        INTEGER, INTENT (INOUT) :: IFLAG
+        INTEGER, INTENT (IN) :: K, LDYH
+! ..
+! .. Array Arguments ..
+        KPP_REAL, INTENT (INOUT) :: DKY(*), YH(LDYH,*)
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: C, R, S, TFUZZ, TN1, TP
+        INTEGER :: IC, J, JB, JB2, JJ, JJ1, JP1
+        CHARACTER (80) :: MSG
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, REAL, SIGN
+! ..
+! .. FIRST EXECUTABLE STATEMENT DVINDY_CORE
+! ..
+        IFLAG = 0
+        IF (K<0 .OR. K>NQ) GOTO 40
+!       TFUZZ = HUN * UROUND * (TN + HU)
+        TFUZZ = HUN*UROUND*SIGN(ABS(TN)+ABS(HU),HU)
+        TP = TN - HU - TFUZZ
+        TN1 = TN + TFUZZ
+        IF ((T-TP)*(T-TN1)>ZERO) GOTO 50
+        S = (T-TN)/H
+        IC = 1
+        IF (K==0) GOTO 10
+        JJ1 = L - K
+        DO JJ = JJ1, NQ
+          IC = IC*JJ
+        END DO
+10      C = REAL(IC)
+        DKY(1:N) = C*YH(1:N,L)
+        IF (K==NQ) GOTO 30
+        JB2 = NQ - K
+        DO JB = 1, JB2
+          J = NQ - JB
+          JP1 = J + 1
+          IC = 1
+          IF (K==0) GOTO 20
+          JJ1 = JP1 - K
+          DO JJ = JJ1, J
+            IC = IC*JJ
+          END DO
+20        C = REAL(IC)
+          DKY(1:N) = C*YH(1:N,JP1) + S*DKY(1:N)
+        END DO
+30      R = H**(-K)
+        CALL DSCAL_F90(N,R,DKY,1)
+        RETURN
+40      MSG = 'Error in DVINDY, K(=I1) is illegal.'
+        CALL XERRDV(MSG,1360,1,1,K,0,0,ZERO,ZERO)
+        IFLAG = -1
+        RETURN
+50      MSG = 'Error in DVINDY, T(=R1) is illegal. T is not'
+        CALL XERRDV(MSG,1370,1,0,0,0,1,T,ZERO)
+        MSG = 'in interval TCUR - HU(= R1) to TCUR(=R2)'
+        CALL XERRDV(MSG,1370,1,0,0,0,2,TP,TN)
+        IFLAG = -2
+        RETURN
+
+      END SUBROUTINE DVINDY_CORE
+!_______________________________________________________________________
+
+      SUBROUTINE DVINDY_BNDS(T,K,YH,LDYH,DKY,IFLAG)
+! ..
+! Interpolate the solution and derivative and enforce nonnegativity
+! (used only if user calls DVINDY and the BOUNDS option is in
+! use).
+! ..
+! This version of DVINDY_CORE enforces nonnegativity and is called
+! only by DVINDY (which is called only by the user). It uses the
+! private YNNEG array produced by a call to DVINDY_CORE from DVINDY
+! to enforce nonnegativity.
+! DVINDY_BNDS computes interpolated values of the K-th derivative
+! of the dependent variable vector y, and stores it in DKY. This
+! routine is called within the package with K = 0 and T = TOUT,
+! but may also be called by the user for any K up to the current
+! order. (See detailed instructions in the usage documentation.)
+! The computed values in DKY are gotten by interpolation using the
+! Nordsieck history array YH. This array corresponds uniquely to a
+! vector-valued polynomial of degree NQCUR or less, and DKY is set
+! to the K-th derivative of this polynomial at T.
+! The formula for DKY is:
+!              q
+!  DKY(i)  =  sum  c(j,K) * (T - TN)**(j-K) * H**(-j) * YH(i,j+1)
+!             j=K
+! where  c(j,K) = j*(j-1)*...*(j-K+1), q = NQCUR, TN = TCUR, H = HCUR.
+! The quantities  NQ = NQCUR, L = NQ+1, N, TN, and H are
+! communicated by PRIVATE variables. The above sum is done in reverse
+! order.
+! IFLAG is returned negative if either K or T is out of bounds.
+! Discussion above and comments in driver explain all variables.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        KPP_REAL, INTENT (IN) :: T
+        INTEGER, INTENT (INOUT) :: IFLAG
+        INTEGER, INTENT (IN) :: K, LDYH
+! ..
+! .. Array Arguments ..
+        KPP_REAL, INTENT (INOUT) :: DKY(*), YH(LDYH,*)
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: C, R, S, TFUZZ, TN1, TP
+        INTEGER :: I, IC, J, JB, JB2, JJ, JJ1, JP1
+        CHARACTER (80) :: MSG
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, REAL, SIGN
+! ..
+! .. FIRST EXECUTABLE STATEMENT DVINDY_BNDS
+! ..
+        IFLAG = 0
+        IF (K==0) GOTO 50
+        IF (K<0 .OR. K>NQ) GOTO 40
+!       TFUZZ = HUN * UROUND * (TN + HU)
+        TFUZZ = HUN*UROUND*SIGN(ABS(TN)+ABS(HU),HU)
+        TP = TN - HU - TFUZZ
+        TN1 = TN + TFUZZ
+        IF ((T-TP)*(T-TN1)>ZERO) GOTO 60
+        S = (T-TN)/H
+        IC = 1
+        IF (K==0) GOTO 10
+        JJ1 = L - K
+        DO JJ = JJ1, NQ
+          IC = IC*JJ
+        END DO
+10      C = REAL(IC)
+        DKY(1:N) = C*YH(1:N,L)
+        IF (BOUNDS) THEN
+          DO I = 1, NDX
+            IF (YNNEG(IDX(I))<LB(I) .OR. YNNEG(IDX(I))>UB(I)) DKY(IDX(I)) &
+              = ZERO
+          END DO
+        END IF
+        IF (K==NQ) GOTO 30
+        JB2 = NQ - K
+        DO JB = 1, JB2
+          J = NQ - JB
+          JP1 = J + 1
+          IC = 1
+          IF (K==0) GOTO 20
+          JJ1 = JP1 - K
+          DO JJ = JJ1, J
+            IC = IC*JJ
+          END DO
+20        C = REAL(IC)
+          DKY(1:N) = C*YH(1:N,JP1) + S*DKY(1:N)
+          IF (BOUNDS) THEN
+            DO I = 1, NDX
+              IF (YNNEG(IDX(I))<LB(I) .OR. YNNEG(IDX(I))>UB(I)) DKY(IDX(I)) &
+                = ZERO
+            END DO
+          END IF
+        END DO
+30      R = H**(-K)
+        CALL DSCAL_F90(N,R,DKY,1)
+        RETURN
+40      MSG = 'Error in DVINDY, K(=I1) is illegal.'
+        CALL XERRDV(MSG,1380,1,1,K,0,0,ZERO,ZERO)
+        IFLAG = -1
+        RETURN
+50      MSG = 'DVINDY_BNDS cannot be called with k = 0.'
+        CALL XERRDV(MSG,1390,1,0,0,0,0,ZERO,ZERO)
+        IFLAG = -1
+        RETURN
+60      MSG = 'Error in DVINDY, T(=R1) is illegal. T is not'
+        CALL XERRDV(MSG,1400,1,0,0,0,1,T,ZERO)
+        MSG = 'not in interval TCUR - HU(= R1) to TCUR(=R2)'
+        CALL XERRDV(MSG,1400,1,0,0,0,2,TP,TN)
+        IFLAG = -2
+        RETURN
+
+      END SUBROUTINE DVINDY_BNDS
+!_______________________________________________________________________
+
+      SUBROUTINE DVINDY(T,K,DKY,IFLAG)
+! ..
+! This is a dummy interface to allow the user to interpolate the
+! solution and the derivative (not called by DVODE_F90).
+! ..
+! May be used if the user wishes to interpolate solution or
+! derivative following a successful return from DVODE_F90
+! DVINDY computes interpolated values of the K-th derivative of
+! the dependent variable vector y, and stores it in DKY. This
+! routine is called within the package with K = 0 and T = TOUT,
+! but may also be called by the user for any K up to the current
+! order. (See detailed instructions in the usage documentation.)
+! The computed values in DKY are gotten by interpolation using the
+! Nordsieck history array YH. This array corresponds uniquely to a
+! vector-valued polynomial of degree NQCUR or less, and DKY is set
+! to the K-th derivative of this polynomial at T.
+! IFLAG is returned negative if either K or T is out of bounds.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        KPP_REAL, INTENT (IN) :: T
+        INTEGER, INTENT (INOUT) :: IFLAG
+        INTEGER, INTENT (IN) :: K
+! ..
+! .. Array Arguments ..
+        KPP_REAL, INTENT (INOUT) :: DKY(*)
+! ..
+! .. Local Scalars ..
+        INTEGER :: I, IER
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ALLOCATED, SIZE
+! ..
+! .. FIRST EXECUTABLE STATEMENT DVINDY
+! ..
+        CALL DVINDY_CORE(T,K,RWORK(LYH),N,DKY,IFLAG)
+        IF (.NOT.BOUNDS) RETURN
+
+        IF (K==0) THEN
+!         Interpolate only the solution.
+          CALL DVINDY_CORE(T,K,RWORK(LYH),N,DKY,IFLAG)
+!         Enforce bounds.
+          DO I = 1, NDX
+            IF (DKY(IDX(I))<LB(I)) DKY(IDX(I)) = LB(I)
+            IF (DKY(IDX(I))>UB(I)) DKY(IDX(I)) = UB(I)
+          END DO
+          RETURN
+        END IF
+
+!       k > 0 - derivatives requested.
+
+!       Make sure space is available for the interpolated solution.
+        IF (ALLOCATED(YNNEG)) THEN
+          IF (SIZE(YNNEG)<N) THEN
+            DEALLOCATE (YNNEG,STAT=IER)
+            CALL CHECK_STAT(IER,460)
+            ALLOCATE (YNNEG(N),STAT=IER)
+            CALL CHECK_STAT(IER,470)
+          END IF
+        ELSE
+          ALLOCATE (YNNEG(N),STAT=IER)
+          CALL CHECK_STAT(IER,480)
+        END IF
+!       Interpolate the solution; do not enforce bounds.
+        CALL DVINDY_CORE(T,0,RWORK(LYH),N,YNNEG,IFLAG)
+!       Now interpolate the derivative using YNNEG to enforce
+!       nonnegativity.
+        CALL DVINDY_BNDS(T,K,RWORK(LYH),N,DKY,IFLAG)
+        RETURN
+
+      END SUBROUTINE DVINDY
+!_______________________________________________________________________
+
+      SUBROUTINE DVSTEP(Y,YH,LDYH,YH1,EWT,SAVF,ACOR,WM,IWM,F,JAC, &
+        VNLS,ATOL,ITOL)
+! ..
+! This is the core step integrator for nonstiff and for dense, banded,
+! and sparse solutions.
+! ..
+! DVSTEP performs one step of the integration of an initial value
+! problem for a system of ordinary differential equations. It
+! calls subroutine DVNLSD for the solution of the nonlinear system
+! arising in the time step. Thus it is independent of the problem
+! Jacobian structure and the type of nonlinear system solution method.
+! DVSTEP returns a completion flag KFLAG (in PRIVATE variables block).
+! A return with KFLAG = -1 or -2 means either ABS(H) = HMIN or 10
+! consecutive failures occurred. On a return with KFLAG negative,
+! the values of TN and the YH array are as of the beginning of the last
+! step, and H is the last step size attempted.
+! Communication with DVSTEP is done with the following variables:
+! Y      = An array of length N used for the dependent variable vector.
+! YH     = An LDYH by LMAX array containing the dependent variables
+!          and their approximate scaled derivatives, where
+!          LMAX = MAXORD + 1. YH(i,j+1) contains the approximate
+!          j-th derivative of y(i), scaled by H**j/factorial(j)
+!          (j = 0,1,...,NQ). On entry for the first step, the first
+!          two columns of YH must be set from the initial values.
+! LDYH   = A constant integer >= N, the first dimension of YH.
+!          N is the number of ODEs in the system.
+! YH1    = A one-dimensional array occupying the same space as YH.
+! EWT    = An array of length N containing multiplicative weights
+!          for local error measurements. Local errors in y(i) are
+!          compared to 1.0/EWT(i) in various error tests.
+! SAVF   = An array of working storage, of length N.
+!          also used for input of YH(*,MAXORD+2) when JSTART = -1
+!          and MAXORD < the current order NQ.
+! ACOR   = A work array of length N, used for the accumulated
+!          corrections. On a successful return, ACOR(i) contains
+!          the estimated one-step local error in y(i).
+! WM,IWM = Real and integer work arrays associated with matrix
+!          operations in DVNLSD.
+! F      = Dummy name for the user supplied subroutine for f.
+! JAC    = Dummy name for the user supplied Jacobian subroutine.
+! DVNLSD = Dummy name for the nonlinear system solving subroutine,
+!          whose real name is dependent on the method used.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: LDYH, ITOL
+! ..
+! .. Array Arguments ..
+        KPP_REAL, INTENT (INOUT) :: ACOR(*), EWT(*), SAVF(*), &
+          WM(*), Y(*), YH(LDYH,*), YH1(*)
+        KPP_REAL, INTENT (IN) :: ATOL(*)
+        INTEGER, INTENT (INOUT) :: IWM(*)
+! ..
+! .. Subroutine Arguments ..
+        EXTERNAL F, JAC, VNLS
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: CNQUOT, DDN, DSM, DUP, ETAQ, ETAQM1, ETAQP1, FLOTL, R, &
+          TOLD
+        INTEGER :: I, I1, I2, IBACK, J, JB, NCF, NFLAG
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, MAX, MIN, REAL
+! ..
+! .. FIRST EXECUTABLE STATEMENT DVSTEP
+! ..
+        KFLAG = 0
+        TOLD = TN
+        NCF = 0
+        JCUR = 0
+        NFLAG = 0
+        IF (JSTART>0) GOTO 10
+        IF (JSTART==-1) GOTO 30
+
+! On the first call, the order is set to 1, and other variables are
+! initialized. ETAMAX is the maximum ratio by which H can be increased
+! in a single step. It is normally 10, but is larger during the first
+! step to compensate for the small initial H. If a failure occurs
+! (in corrector convergence or error test), ETAMAX is set to 1 for
+! the next increase.
+
+        LMAX = MAXORD + 1
+        NQ = 1
+        L = 2
+        NQNYH = NQ*LDYH
+        TAU(1) = H
+        PRL1 = ONE
+        RC = ZERO
+        ETAMAX = ETAMX1
+        NQWAIT = 2
+        HSCAL = H
+        GOTO 70
+
+! Take preliminary actions on a normal continuation step (JSTART > 0).
+! If the driver changed H, then ETA must be reset and NEWH set to 1.
+! If a change of order was dictated on the previous step, then it is
+! done here and appropriate adjustments in the history are made.
+! On an order decrease, the history array is adjusted by DVJUST.
+! On an order increase, the history array is augmented by a column.
+! On a change of step size H, the history array YH is rescaled.
+
+10      CONTINUE
+        IF (KUTH==1) THEN
+          ETA = MIN(ETA,H/HSCAL)
+          NEWH = 1
+        END IF
+20      IF (NEWH==0) GOTO 70
+        IF (NEWQ==NQ) GOTO 60
+        IF (NEWQ<NQ) THEN
+          CALL DVJUST(YH,LDYH,-1)
+          NQ = NEWQ
+          L = NQ + 1
+          NQWAIT = L
+          GOTO 60
+        END IF
+        IF (NEWQ>NQ) THEN
+          CALL DVJUST(YH,LDYH,1)
+          NQ = NEWQ
+          L = NQ + 1
+          NQWAIT = L
+          GOTO 60
+        END IF
+
+! The following block handles preliminaries needed when JSTART = -1.
+! If N was reduced, zero out part of YH to avoid undefined references.
+! If MAXORD was reduced to a value less than the tentative order NEWQ,
+! then NQ is set to MAXORD, and a new H ratio ETA is chosen.
+! Otherwise, we take the same preliminary actions as for JSTART > 0.
+! In any case, NQWAIT is reset to L = NQ + 1 to prevent further
+! changes in order for that many steps. The new H ratio ETA is
+! limited by the input H if KUTH = 1, by HMIN if KUTH = 0, and by
+! HMXI in any case. Finally, the history array YH is rescaled.
+
+30      CONTINUE
+        LMAX = MAXORD + 1
+        IF (N==LDYH) GOTO 40
+        I1 = 1 + (NEWQ+1)*LDYH
+        I2 = (MAXORD+1)*LDYH
+        IF (I1>I2) GOTO 40
+        YH1(I1:I2) = ZERO
+40      IF (NEWQ<=MAXORD) GOTO 50
+        FLOTL = REAL(LMAX)
+        IF (MAXORD<NQ-1) THEN
+          DDN = DVNORM(N,SAVF,EWT)/TQ(1)
+          ETA = ONE/((BIAS1*DDN)**(ONE/FLOTL)+ADDON)
+        END IF
+        IF (MAXORD==NQ .AND. NEWQ==NQ+1) ETA = ETAQ
+        IF (MAXORD==NQ-1 .AND. NEWQ==NQ+1) THEN
+          ETA = ETAQM1
+          CALL DVJUST(YH,LDYH,-1)
+        END IF
+        IF (MAXORD==NQ-1 .AND. NEWQ==NQ) THEN
+          DDN = DVNORM(N,SAVF,EWT)/TQ(1)
+          ETA = ONE/((BIAS1*DDN)**(ONE/FLOTL)+ADDON)
+          CALL DVJUST(YH,LDYH,-1)
+        END IF
+        ETA = MIN(ETA,ONE)
+        NQ = MAXORD
+        L = LMAX
+50      IF (KUTH==1) ETA = MIN(ETA,ABS(H/HSCAL))
+        IF (KUTH==0) ETA = MAX(ETA,HMIN/ABS(HSCAL))
+        ETA = ETA/MAX(ONE,ABS(HSCAL)*HMXI*ETA)
+        NEWH = 1
+        NQWAIT = L
+        IF (NEWQ<=MAXORD) GOTO 20
+!       Rescale the history array for a change in H by a factor of ETA.
+60      R = ONE
+        DO J = 2, L
+          R = R*ETA
+! Original:
+!         CALL DSCAL_F90(N,R,YH(1,J),1)
+          CALL DSCAL_F90(N,R,YH(1:N,J),1)
+        END DO
+        H = HSCAL*ETA
+        HSCAL = H
+        RC = RC*ETA
+        NQNYH = NQ*LDYH
+
+! This section computes the predicted values by effectively
+! multiplying the YH array by the Pascal triangle matrix.
+! DVSET is called to calculate all integration coefficients.
+! RC is the ratio of new to old values of the coefficient
+! H/EL(2)=h/l1.
+
+70      TN = TN + H
+        I1 = NQNYH + 1
+        DO JB = 1, NQ
+          I1 = I1 - LDYH
+          DO I = I1, NQNYH
+            YH1(I) = YH1(I) + YH1(I+LDYH)
+          END DO
+        END DO
+        CALL DVSET
+        RL1 = ONE/EL(2)
+        RC = RC*(RL1/PRL1)
+        PRL1 = RL1
+
+!       Call the nonlinear system solver.
+
+        CALL VNLS(Y,YH,LDYH,SAVF,EWT,ACOR,IWM,WM,F,JAC,NFLAG, &
+          ATOL,ITOL)
+
+        IF (NFLAG==0) GOTO 80
+
+! The DVNLSD routine failed to achieve convergence (NFLAG /= 0).
+! The YH array is retracted to its values before prediction.
+! The step size H is reduced and the step is retried, if possible.
+! Otherwise, an error exit is taken.
+
+        NCF = NCF + 1
+        NCFN = NCFN + 1
+        ETAMAX = ONE
+        TN = TOLD
+        I1 = NQNYH + 1
+        DO JB = 1, NQ
+          I1 = I1 - LDYH
+          DO I = I1, NQNYH
+            YH1(I) = YH1(I) - YH1(I+LDYH)
+          END DO
+        END DO
+        IF (NFLAG<-1) GOTO 240
+        IF (ABS(H)<=HMIN*ONEPSM) GOTO 230
+!       IF (NCF==MXNCF) GOTO 230
+        IF (NCF==CONSECUTIVE_CFAILS) GOTO 230
+        ETA = ETACF
+        ETA = MAX(ETA,HMIN/ABS(H))
+        NFLAG = -1
+        GOTO 60
+
+! The corrector has converged (NFLAG = 0). The local error test is
+! made and control passes to statement 500 if it fails.
+
+80      CONTINUE
+        DSM = ACNRM/TQ(2)
+        IF (DSM>ONE) GOTO 100
+
+! After a successful step, update the YH and TAU arrays and decrement
+! NQWAIT. If NQWAIT is then 1 and NQ < MAXORD, then ACOR is saved
+! for use in a possible order increase on the next step.
+! If ETAMAX = 1 (a failure occurred this step), keep NQWAIT >= 2.
+
+        KFLAG = 0
+        NST = NST + 1
+        HU = H
+        NQU = NQ
+        DO IBACK = 1, NQ
+          I = L - IBACK
+          TAU(I+1) = TAU(I)
+        END DO
+        TAU(1) = H
+
+        IF (BOUNDS) THEN
+! Original:
+!         CALL DAXPY_F90(N,EL(1),ACOR,1,YH(1,1),1)
+!         CALL DAXPY_F90(N,EL(2),ACOR,1,YH(1,2),1)
+          CALL DAXPY_F90(N,EL(1),ACOR,1,YH(1:N,1),1)
+          CALL DAXPY_F90(N,EL(2),ACOR,1,YH(1:N,2),1)
+!         Take care of roundoff causing y(t) to be slightly unequal
+!         to the constraint bound.
+          DO J = 1, NDX
+            YH(IDX(J),1) = MAX(YH(IDX(J),1),LB(J))
+            Y(IDX(J)) = MAX(Y(IDX(J)),LB(J))
+            YH(IDX(J),1) = MIN(YH(IDX(J),1),UB(J))
+            Y(IDX(J)) = MIN(Y(IDX(J)),UB(J))
+          END DO
+!         Update the higher derivatives and project to zero if necessary.
+          IF (L>2) THEN
+            DO J = 3, L
+! Original:
+!             CALL DAXPY_F90(N,EL(J),ACOR,1,YH(1,J),1)
+              CALL DAXPY_F90(N,EL(J),ACOR,1,YH(1:N,J),1)
+            END DO
+          END IF
+        ELSE
+!         Proceed as usual.
+          DO J = 1, L
+! Original:
+!           CALL DAXPY_F90(N,EL(J),ACOR,1,YH(1,J),1)
+            CALL DAXPY_F90(N,EL(J),ACOR,1,YH(1:N,J),1)
+          END DO
+        END IF
+
+        NQWAIT = NQWAIT - 1
+        IF ((L==LMAX) .OR. (NQWAIT/=1)) GOTO 90
+! Original:
+!       CALL DCOPY_F90(N,ACOR,1,YH(1,LMAX),1)
+        CALL DCOPY_F90(N,ACOR,1,YH(1:N,LMAX),1)
+        CONP = TQ(5)
+90      IF (ABS(ETAMAX-ONE)>0) GOTO 130
+        IF (NQWAIT<2) NQWAIT = 2
+        NEWQ = NQ
+        NEWH = 0
+        ETA = ONE
+        HNEW = H
+        GOTO 250
+
+! The error test failed. KFLAG keeps track of multiple failures.
+! Restore TN and the YH array to their previous values, and prepare
+! to try the step again. Compute the optimum step size for the
+! same order. After repeated failures, H is forced to decrease
+! more rapidly.
+
+100     KFLAG = KFLAG - 1
+        NETF = NETF + 1
+        NFLAG = -2
+        TN = TOLD
+        I1 = NQNYH + 1
+        DO JB = 1, NQ
+          I1 = I1 - LDYH
+          DO I = I1, NQNYH
+            YH1(I) = YH1(I) - YH1(I+LDYH)
+          END DO
+        END DO
+        IF (ABS(H)<=HMIN*ONEPSM) GOTO 220
+        ETAMAX = ONE
+        IF (KFLAG<=KFC) GOTO 110
+!       Compute ratio of new H to current H at the current order.
+        FLOTL = REAL(L)
+        ETA = ONE/((BIAS2*DSM)**(ONE/FLOTL)+ADDON)
+        ETA = MAX(ETA,HMIN/ABS(H),ETAMIN)
+        IF ((KFLAG<=-2) .AND. (ETA>ETAMXF)) ETA = ETAMXF
+        GOTO 60
+
+! Control reaches this section if 3 or more consecutive failures
+! have occurred. It is assumed that the elements of the YH array
+! have accumulated errors of the wrong order. The order is reduced
+! by one, if possible. Then H is reduced by a factor of 0.1 and
+! the step is retried. After a total of 7 consecutive failures,
+! an exit is taken with KFLAG = -1.
+
+!110     IF (KFLAG==KFH) GOTO 220
+110     IF (KFLAG==CONSECUTIVE_EFAILS) GOTO 220
+        IF (NQ==1) GOTO 120
+        ETA = MAX(ETAMIN,HMIN/ABS(H))
+        CALL DVJUST(YH,LDYH,-1)
+        L = NQ
+        NQ = NQ - 1
+        NQWAIT = L
+        GOTO 60
+120     ETA = MAX(ETAMIN,HMIN/ABS(H))
+        H = H*ETA
+        HSCAL = H
+        TAU(1) = H
+        CALL F(N,TN,Y,SAVF)
+        NFE = NFE + 1
+        IF (BOUNDS) THEN
+          DO I = 1, NDX
+            IF (ABS(YH(IDX(I),1)-LB(I))<=ZERO) SAVF(IDX(I)) = &
+              MAX(SAVF(IDX(I)),ZERO)
+            IF (ABS(YH(IDX(I),1)-UB(I))<=ZERO) SAVF(IDX(I)) = &
+              MIN(SAVF(IDX(I)),ZERO)
+          END DO
+        END IF
+        YH(1:N,2) = H*SAVF(1:N)
+        NQWAIT = 10
+        GOTO 70
+
+! If NQWAIT = 0, an increase or decrease in order by one is considered.
+! Factors ETAQ, ETAQM1, ETAQP1 are computed by which H could be
+! multiplied at order q, q-1, or q+1, respectively. The largest of
+! these is determined, and the new order and step size set accordingly.
+! A change of H or NQ is made only if H increases by at least a factor
+! of THRESH. If an order change is considered and rejected, then NQWAIT
+! is set to 2 (reconsider it after 2 steps).
+
+!       Compute ratio of new H to current H at the current order.
+130     FLOTL = REAL(L)
+        ETAQ = ONE/((BIAS2*DSM)**(ONE/FLOTL)+ADDON)
+        IF (NQWAIT/=0) GOTO 170
+        NQWAIT = 2
+        ETAQM1 = ZERO
+        IF (NQ==1) GOTO 140
+!       Compute ratio of new H to current H at the current order
+!       less one.
+! Original:
+!       DDN = DVNORM(N,YH(1,L),EWT)/TQ(1)
+        DDN = DVNORM(N,YH(1:N,L),EWT)/TQ(1)
+        ETAQM1 = ONE/((BIAS1*DDN)**(ONE/(FLOTL-ONE))+ADDON)
+140     ETAQP1 = ZERO
+        IF (L==LMAX) GOTO 150
+!       Compute ratio of new H to current H at current order plus one.
+        CNQUOT = (TQ(5)/CONP)*(H/TAU(2))**L
+        SAVF(1:N) = ACOR(1:N) - CNQUOT*YH(1:N,LMAX)
+        DUP = DVNORM(N,SAVF,EWT)/TQ(3)
+        ETAQP1 = ONE/((BIAS3*DUP)**(ONE/(FLOTL+ONE))+ADDON)
+150     IF (ETAQ>=ETAQP1) GOTO 160
+        IF (ETAQP1>ETAQM1) GOTO 190
+        GOTO 180
+160     IF (ETAQ<ETAQM1) GOTO 180
+170     ETA = ETAQ
+        NEWQ = NQ
+        GOTO 200
+180     ETA = ETAQM1
+        NEWQ = NQ - 1
+        GOTO 200
+190     ETA = ETAQP1
+        NEWQ = NQ + 1
+! Original:
+!       CALL DCOPY_F90(N,ACOR,1,YH(1,LMAX),1)
+        CALL DCOPY_F90(N,ACOR,1,YH(1:N,LMAX),1)
+!       Test tentative new H against THRESH, ETAMAX, and HMXI and
+!       then exit.
+200     IF (ETA<THRESH .OR. ABS(ETAMAX-ONE)<=ZERO) GOTO 210
+        ETA = MIN(ETA,ETAMAX)
+        ETA = ETA/MAX(ONE,ABS(H)*HMXI*ETA)
+        NEWH = 1
+        HNEW = H*ETA
+        GOTO 250
+210     NEWQ = NQ
+        NEWH = 0
+        ETA = ONE
+        HNEW = H
+        GOTO 250
+
+! All returns are made through this section.
+! On a successful return, ETAMAX is reset and ACOR is scaled.
+
+220     KFLAG = -1
+        GOTO 260
+230     KFLAG = -2
+        GOTO 260
+240     IF (NFLAG==-2) KFLAG = -3
+        IF (NFLAG==-3) KFLAG = -4
+        GOTO 260
+250     ETAMAX = ETAMX3
+        IF (NST<=10) ETAMAX = ETAMX2
+        R = ONE/TQ(2)
+
+        CALL DSCAL_F90(N,R,ACOR,1)
+260     JSTART = 1
+        RETURN
+
+      END SUBROUTINE DVSTEP
+!_______________________________________________________________________
+
+      SUBROUTINE DVSET
+! ..
+! Set the integration coefficients for DVSTEP.
+! ..
+! For each order NQ, the coefficients in EL are calculated by use
+! of the generating polynomial lambda(x), with coefficients EL(i).
+!      lambda(x) = EL(1) + EL(2)*x + ... + EL(NQ+1)*(x**NQ).
+! For the backward differentiation formulas,
+!                                     NQ-1
+!      lambda(x) = (1 + x/xi*(NQ)) * product (1 + x/xi(i)) .
+!                                     i = 1
+! For the Adams formulas,
+!                              NQ-1
+!      (d/dx) lambda(x) = c * product (1 + x/xi(i)),
+!                              i = 1
+!      lambda(-1) = 0,    lambda(0) = 1,
+! where c is a normalization constant.
+! In both cases, xi(i) is defined by
+!      H*xi(i) = t sub n - t sub (n-i)
+!              = H + TAU(1) + TAU(2) + ... TAU(i-1).
+! In addition to variables described previously, communication
+! with DVSET uses the following:
+!   TAU    = A vector of length 13 containing the past NQ values
+!            of H.
+!   EL     = A vector of length 13 in which vset stores the
+!            coefficients for the corrector formula.
+!   TQ     = A vector of length 5 in which vset stores constants
+!            used for the convergence test, the error test, and the
+!            selection of H at a new order.
+!   METH   = The basic method indicator.
+!   NQ     = The current order.
+!   L      = NQ + 1, the length of the vector stored in EL, and
+!            the number of columns of the YH array being used.
+!   NQWAIT = A counter controlling the frequency of order changes.
+!            An order change is about to be considered if NQWAIT = 1.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: AHATN0, ALPH0, CNQM1, CSUM, ELP, EM0, FLOTI, FLOTL, &
+          FLOTNQ, HSUM, RXI, RXIS, S, T1, T2, T3, T4, T5, T6, XI
+        INTEGER :: I, IBACK, J, JP1, NQM1, NQM2
+! ..
+! .. Local Arrays ..
+        KPP_REAL :: EM(13)
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, REAL
+! ..
+! .. FIRST EXECUTABLE STATEMENT DVSET
+! ..
+        FLOTL = REAL(L)
+        NQM1 = NQ - 1
+        NQM2 = NQ - 2
+        GOTO (10,40) METH
+
+!       Set coefficients for Adams methods.
+10      IF (NQ/=1) GOTO 20
+        EL(1) = ONE
+        EL(2) = ONE
+        TQ(1) = ONE
+        TQ(2) = TWO
+        TQ(3) = SIX*TQ(2)
+        TQ(5) = ONE
+        GOTO 60
+20      HSUM = H
+        EM(1) = ONE
+        FLOTNQ = FLOTL - ONE
+        EM(2:L) = ZERO
+        DO J = 1, NQM1
+          IF ((J/=NQM1) .OR. (NQWAIT/=1)) GOTO 30
+          S = ONE
+          CSUM = ZERO
+          DO I = 1, NQM1
+            CSUM = CSUM + S*EM(I)/REAL(I+1)
+            S = -S
+          END DO
+          TQ(1) = EM(NQM1)/(FLOTNQ*CSUM)
+30        RXI = H/HSUM
+          DO IBACK = 1, J
+            I = (J+2) - IBACK
+            EM(I) = EM(I) + EM(I-1)*RXI
+          END DO
+          HSUM = HSUM + TAU(J)
+        END DO
+!       Compute integral from -1 to 0 of polynomial and of x times it.
+        S = ONE
+        EM0 = ZERO
+        CSUM = ZERO
+        DO I = 1, NQ
+          FLOTI = REAL(I)
+          EM0 = EM0 + S*EM(I)/FLOTI
+          CSUM = CSUM + S*EM(I)/(FLOTI+ONE)
+          S = -S
+        END DO
+!       In EL, form coefficients of normalized integrated polynomial.
+        S = ONE/EM0
+        EL(1) = ONE
+        DO I = 1, NQ
+          EL(I+1) = S*EM(I)/REAL(I)
+        END DO
+        XI = HSUM/H
+        TQ(2) = XI*EM0/CSUM
+        TQ(5) = XI/EL(L)
+        IF (NQWAIT/=1) GOTO 60
+!       For higher order control constant, multiply polynomial by
+!       1+x/xi(q).
+        RXI = ONE/XI
+        DO IBACK = 1, NQ
+          I = (L+1) - IBACK
+          EM(I) = EM(I) + EM(I-1)*RXI
+        END DO
+!       Compute integral of polynomial.
+        S = ONE
+        CSUM = ZERO
+        DO I = 1, L
+          CSUM = CSUM + S*EM(I)/REAL(I+1)
+          S = -S
+        END DO
+        TQ(3) = FLOTL*EM0/CSUM
+        GOTO 60
+
+!       Set coefficients for BDF methods.
+40      EL(3:L) = ZERO
+        EL(1) = ONE
+        EL(2) = ONE
+        ALPH0 = -ONE
+        AHATN0 = -ONE
+        HSUM = H
+        RXI = ONE
+        RXIS = ONE
+        IF (NQ==1) GOTO 50
+        DO J = 1, NQM2
+!       In EL, construct coefficients of (1+x/xi(1))*...*(1+x/xi(j+1)).
+          HSUM = HSUM + TAU(J)
+          RXI = H/HSUM
+          JP1 = J + 1
+          ALPH0 = ALPH0 - ONE/REAL(JP1)
+          DO IBACK = 1, JP1
+            I = (J+3) - IBACK
+            EL(I) = EL(I) + EL(I-1)*RXI
+          END DO
+        END DO
+        ALPH0 = ALPH0 - ONE/REAL(NQ)
+        RXIS = -EL(2) - ALPH0
+        HSUM = HSUM + TAU(NQM1)
+        RXI = H/HSUM
+        AHATN0 = -EL(2) - RXI
+        DO IBACK = 1, NQ
+          I = (NQ+2) - IBACK
+          EL(I) = EL(I) + EL(I-1)*RXIS
+        END DO
+50      T1 = ONE - AHATN0 + ALPH0
+        T2 = ONE + REAL(NQ)*T1
+        TQ(2) = ABS(ALPH0*T2/T1)
+        TQ(5) = ABS(T2/(EL(L)*RXI/RXIS))
+        IF (NQWAIT/=1) GOTO 60
+        CNQM1 = RXIS/EL(L)
+        T3 = ALPH0 + ONE/REAL(NQ)
+        T4 = AHATN0 + RXI
+        ELP = T3/(ONE-T4+T3)
+        TQ(1) = ABS(ELP/CNQM1)
+        HSUM = HSUM + TAU(NQ)
+        RXI = H/HSUM
+        T5 = ALPH0 - ONE/REAL(NQ+1)
+        T6 = AHATN0 - RXI
+        ELP = T2/(ONE-T6+T5)
+        TQ(3) = ABS(ELP*RXI*(FLOTL+ONE)*T5)
+60      TQ(4) = CORTES*TQ(2)
+        RETURN
+
+      END SUBROUTINE DVSET
+!_______________________________________________________________________
+
+      SUBROUTINE DVJUST(YH,LDYH,IORD)
+! ..
+! Adjust the Nordsieck array.
+! ..
+! This subroutine adjusts the YH array on reduction of order, and
+! also when the order is increased for the stiff option (METH = 2).
+! Communication with DVJUST uses the following:
+! IORD  = An integer flag used when METH = 2 to indicate an order
+!         increase (IORD = +1) or an order decrease (IORD = -1).
+! HSCAL = Step size H used in scaling of Nordsieck array YH.
+!         (If IORD = +1, DVJUST assumes that HSCAL = TAU(1).)
+! See References 1 and 2 for details.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: IORD, LDYH
+! ..
+! .. Array Arguments ..
+        KPP_REAL, INTENT (INOUT) :: YH(LDYH,*)
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: ALPH0, ALPH1, HSUM, PROD, T1, XI, XIOLD
+        INTEGER :: I, IBACK, J, JP1, LP1, NQM1, NQM2, NQP1
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC REAL
+! ..
+! .. FIRST EXECUTABLE STATEMENT DVJUST
+! ..
+        IF ((NQ==2) .AND. (IORD/=1)) RETURN
+        NQM1 = NQ - 1
+        NQM2 = NQ - 2
+        GOTO (10,30) METH
+
+!       Nonstiff option.
+
+!       Check to see if the order is being increased or decreased.
+10      CONTINUE
+        IF (IORD==1) GOTO 20
+!       Order decrease.
+        EL(1:LMAX) = ZERO
+        EL(2) = ONE
+        HSUM = ZERO
+        DO J = 1, NQM2
+!         Construct coefficients of x*(x+xi(1))*...*(x+xi(j)).
+          HSUM = HSUM + TAU(J)
+          XI = HSUM/HSCAL
+          JP1 = J + 1
+          DO IBACK = 1, JP1
+            I = (J+3) - IBACK
+            EL(I) = EL(I)*XI + EL(I-1)
+          END DO
+        END DO
+!       Construct coefficients of integrated polynomial.
+        DO J = 2, NQM1
+          EL(J+1) = REAL(NQ)*EL(J)/REAL(J)
+        END DO
+!       Subtract correction terms from YH array.
+        DO J = 3, NQ
+          DO I = 1, N
+            YH(I,J) = YH(I,J) - YH(I,L)*EL(J)
+          END DO
+        END DO
+        RETURN
+!       Order increase.
+!       Zero out next column in YH array.
+20      CONTINUE
+        LP1 = L + 1
+        YH(1:N,LP1) = ZERO
+        RETURN
+
+!       Stiff option.
+
+!       Check to see if the order is being increased or decreased.
+30      CONTINUE
+        IF (IORD==1) GOTO 40
+!       Order decrease.
+        EL(1:LMAX) = ZERO
+        EL(3) = ONE
+        HSUM = ZERO
+        DO J = 1, NQM2
+!     Construct coefficients of x*x*(x+xi(1))*...*(x+xi(j)).
+          HSUM = HSUM + TAU(J)
+          XI = HSUM/HSCAL
+          JP1 = J + 1
+          DO IBACK = 1, JP1
+            I = (J+4) - IBACK
+            EL(I) = EL(I)*XI + EL(I-1)
+          END DO
+        END DO
+!       Subtract correction terms from YH array.
+        DO J = 3, NQ
+          YH(1:N,J) = YH(1:N,J) - YH(1:N,L)*EL(J)
+        END DO
+        RETURN
+!       Order increase.
+40      EL(1:LMAX) = ZERO
+        EL(3) = ONE
+        ALPH0 = -ONE
+        ALPH1 = ONE
+        PROD = ONE
+        XIOLD = ONE
+        HSUM = HSCAL
+        IF (NQ==1) GOTO 50
+        DO J = 1, NQM1
+!       Construct coefficients of x*x*(x+xi(1))*...*(x+xi(j)).
+          JP1 = J + 1
+          HSUM = HSUM + TAU(JP1)
+          XI = HSUM/HSCAL
+          PROD = PROD*XI
+          ALPH0 = ALPH0 - ONE/REAL(JP1)
+          ALPH1 = ALPH1 + ONE/XI
+          DO IBACK = 1, JP1
+            I = (J+4) - IBACK
+            EL(I) = EL(I)*XIOLD + EL(I-1)
+          END DO
+          XIOLD = XI
+        END DO
+50      CONTINUE
+        T1 = (-ALPH0-ALPH1)/PROD
+!       Load column L+1 in YH array.
+        LP1 = L + 1
+        YH(1:N,LP1) = T1*YH(1:N,LMAX)
+!       Add correction terms to YH array.
+        NQP1 = NQ + 1
+        DO J = 3, NQP1
+! Original:
+!         CALL DAXPY_F90(N,EL(J),YH(1,LP1),1,YH(1,J),1)
+          CALL DAXPY_F90(N,EL(J),YH(1:N,LP1),1,YH(1:N,J),1)
+        END DO
+        RETURN
+
+      END SUBROUTINE DVJUST
+!_______________________________________________________________________
+
+      SUBROUTINE DVNLSD(Y,YH,LDYH,SAVF,EWT,ACOR,IWM,WM,F,JAC,NFLAG,&
+        ATOL,ITOL)
+! ..
+! This is the nonlinear system solver for dense and banded solutions.
+! ..
+! Subroutine DVNLSD is a nonlinear system solver which uses functional
+! iteration or a chord (modified Newton) method. For the chord method
+! direct linear algebraic system solvers are used. Subroutine DVNLSD
+! then handles the corrector phase of this integration package.
+! Communication with DVNLSD is done with the following variables. (For
+! more details, please see the comments in the driver subroutine.)
+! Y          = The dependent variable, a vector of length N, input.
+! YH         = The Nordsieck (Taylor) array, LDYH by LMAX, input
+!              and output. On input, it contains predicted values.
+! LDYH       = A constant >= N, the first dimension of YH, input.
+! SAVF       = A work array of length N.
+! EWT        = An error weight vector of length N, input.
+! ACOR       = A work array of length N, used for the accumulated
+!              corrections to the predicted y vector.
+! WM,IWM     = Real and integer work arrays associated with matrix
+!              operations in chord iteration (MITER /= 0).
+! F          = Dummy name for user supplied routine for f.
+! JAC        = Dummy name for user supplied Jacobian routine.
+! NFLAG      = Input/output flag, with values and meanings as follows:
+!              INPUT
+!                  0 first call for this time step.
+!                 -1 convergence failure in previous call to DVNLSD.
+!                 -2 error test failure in DVSTEP.
+!              OUTPUT
+!                  0 successful completion of nonlinear solver.
+!                 -1 convergence failure or singular matrix.
+!                 -2 unrecoverable error in matrix preprocessing
+!                    (cannot occur here).
+!                 -3 unrecoverable error in solution (cannot occur
+!                    here).
+! IPUP       = Own variable flag with values and meanings as follows:
+!              0,          do not update the Newton matrix.
+!              MITER /= 0  update Newton matrix, because it is the
+!                          initial step, order was changed, the error
+!                          test failed, or an update is indicated by
+!                          the scalar RC or step counter NST.
+! For more details, see comments in driver subroutine.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: ITOL, LDYH
+        INTEGER, INTENT (INOUT) :: NFLAG
+! ..
+! .. Array Arguments ..
+        KPP_REAL, INTENT (INOUT) :: ACOR(*), EWT(*), SAVF(*), &
+          WM(*), Y(*), YH(LDYH,*)
+        KPP_REAL, INTENT (IN) :: ATOL(*)
+        INTEGER, INTENT (INOUT) :: IWM(*)
+! ..
+! .. Subroutine Arguments ..
+        EXTERNAL F, JAC
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: ACNRMNEW, CSCALE, DCON, DEL, DELP
+        INTEGER :: I, IERPJ, IERSL, M
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, MAX, MIN
+! ..
+! .. FIRST EXECUTABLE STATEMENT DVNLSD
+! ..
+! On the first step, on a change of method order, or after a
+! nonlinear convergence failure with NFLAG = -2, set IPUP = MITER
+! to force a Jacobian update when MITER /= 0.
+        IF (JSTART==0) NSLP = 0
+        IF (NFLAG==0) ICF = 0
+        IF (NFLAG==-2) IPUP = MITER
+        IF ((JSTART==0) .OR. (JSTART==-1)) IPUP = MITER
+!     If this is functional iteration, set CRATE = 1 and drop to 220
+        IF (MITER==0) THEN
+          CRATE = ONE
+          GOTO 10
+        END IF
+
+! RC is the ratio of new to old values of the coefficient H/EL(2)=h/l1.
+! When RC differs from 1 by more than CCMAX, IPUP is set to MITER to
+! force DVJAC to be called, if a Jacobian is involved. In any case,
+! DVJAC is called at least every MSBP steps.
+
+        DRC = ABS(RC-ONE)
+        IF (DRC>CCMAX .OR. NST>=NSLP+MSBP) IPUP = MITER
+
+! Up to MAXCOR corrector iterations are taken. A convergence test is
+! made on the r.m.s. norm of each correction, weighted by the error
+! weight vector EWT. The sum of the corrections is accumulated in the
+! vector ACOR(i). The YH array is not altered in the corrector loop.
+
+10      M = 0
+        DELP = ZERO
+! Original:
+!       CALL DCOPY_F90(N,YH(1,1),1,Y,1)
+        CALL DCOPY_F90(N,YH(1:N,1),1,Y(1:N),1)
+        CALL F(N,TN,Y,SAVF)
+        NFE = NFE + 1
+        IF (BOUNDS) THEN
+          DO I = 1, NDX
+            IF (ABS(YH(IDX(I),1)-LB(I))<=ZERO) SAVF(IDX(I)) = &
+               MAX(SAVF(IDX(I)),ZERO)
+            IF (ABS(YH(IDX(I),1)-UB(I))<=ZERO) SAVF(IDX(I)) = &
+               MIN(SAVF(IDX(I)),ZERO)
+          END DO
+        END IF
+        IF (IPUP<=0) GOTO 20
+
+! If indicated, the matrix P = I - h*rl1*J is reevaluated and
+! preprocessed before starting the corrector iteration. IPUP
+! is set to 0 as an indicator that this has been done.
+
+        CALL DVJAC(Y,YH,LDYH,EWT,ACOR,SAVF,WM,IWM,F,JAC,IERPJ, &
+          ATOL,ITOL)
+        IPUP = 0
+        RC = ONE
+        DRC = ZERO
+        CRATE = ONE
+        NSLP = NST
+!       If matrix is singular, take error return to force cut in
+!       step size.
+        IF (IERPJ/=0) GOTO 70
+20      ACOR(1:N) = ZERO
+!       This is a looping point for the corrector iteration.
+30      IF (MITER/=0) GOTO 40
+
+! In the case of functional iteration, update Y directly from
+! the result of the last function evaluation.
+
+        SAVF(1:N) = RL1*(H*SAVF(1:N)-YH(1:N,2))
+        Y(1:N) = SAVF(1:N) - ACOR(1:N)
+        DEL = DVNORM(N,Y,EWT)
+        Y(1:N) = YH(1:N,1) + SAVF(1:N)
+        CALL DCOPY_F90(N,SAVF,1,ACOR,1)
+        GOTO 50
+
+! In the case of the chord method, compute the corrector error, and
+! solve the linear system with that as right-hand side and P as
+! coefficient matrix. The correction is scaled by the factor
+! 2/(1+RC) to account for changes in h*rl1 since the last DVJAC call.
+
+40      Y(1:N) = (RL1*H)*SAVF(1:N) - (RL1*YH(1:N,2)+ACOR(1:N))
+        CALL DVSOL(WM,IWM,Y,IERSL)
+        NNI = NNI + 1
+        IF (IERSL>0) GOTO 60
+        IF (METH==2 .AND. ABS(RC-ONE)>ZERO) THEN
+          CSCALE = TWO/(ONE+RC)
+          CALL DSCAL_F90(N,CSCALE,Y,1)
+        END IF
+        DEL = DVNORM(N,Y,EWT)
+        CALL DAXPY_F90(N,ONE,Y,1,ACOR,1)
+        Y(1:N) = YH(1:N,1) + ACOR(1:N)
+
+! Test for convergence. If M > 0, an estimate of the convergence
+! rate constant is stored in CRATE, and this is used in the test.
+
+50      IF (M/=0) CRATE = MAX(CRDOWN*CRATE,DEL/DELP)
+        DCON = DEL*MIN(ONE,CRATE)/TQ(4)
+        IF (DCON<=ONE) GOTO 80
+        M = M + 1
+        IF (M==MAXCOR) GOTO 60
+        IF (M>=2 .AND. DEL>RDIV*DELP) GOTO 60
+        DELP = DEL
+        CALL F(N,TN,Y,SAVF)
+        NFE = NFE + 1
+        IF (BOUNDS) THEN
+          DO I = 1, NDX
+            IF (ABS(YH(IDX(I),1)-LB(I))<=ZERO) SAVF(IDX(I)) = &
+               MAX(SAVF(IDX(I)),ZERO)
+            IF (ABS(YH(IDX(I),1)-UB(I))<=ZERO) SAVF(IDX(I)) = &
+               MIN(SAVF(IDX(I)),ZERO)
+          END DO
+        END IF
+        GOTO 30
+
+60      IF (MITER==0 .OR. JCUR==1) GOTO 70
+        ICF = 1
+        IPUP = MITER
+        GOTO 10
+
+70      CONTINUE
+        NFLAG = -1
+        ICF = 2
+        IPUP = MITER
+        RETURN
+
+!       Return for successful step.
+80      CONTINUE
+
+!       Enforce bounds.
+        IF (BOUNDS) THEN
+          CHANGED_ACOR = .FALSE.
+          IF (M==0) THEN
+            ACNRM = DEL
+          ELSE
+            ACNRM = DVNORM(N,ACOR,EWT)
+          END IF
+          IF (MITER/=0) THEN
+!           Since Y(:) = YH(:,1) + ACOR(:) ...
+            DO I = 1, NDX
+              IF (Y(IDX(I))<LB(I)) THEN
+                CHANGED_ACOR = .TRUE.
+                ACOR(IDX(I)) = LB(I) - YH(IDX(I),1)
+                SAVF(IDX(I)) = ACOR(IDX(I))
+              END IF
+              IF (Y(IDX(I))>UB(I)) THEN
+                CHANGED_ACOR = .TRUE.
+                ACOR(IDX(I)) = UB(I) - YH(IDX(I),1)
+                SAVF(IDX(I)) = ACOR(IDX(I))
+              END IF
+            END DO
+          ELSE
+!           Since Y(:) = YH(:,1) + SAVF(:) and
+!           since CALL DCOPY_F90(N,SAVF,1,ACOR,1) ...
+            DO I = 1, NDX
+              IF (Y(IDX(I))<LB(IDX(I))) THEN
+                CHANGED_ACOR = .TRUE.
+                ACOR(IDX(I)) = LB(I) - YH(IDX(I),1)
+              END IF
+              IF (Y(IDX(I))>UB(IDX(I))) THEN
+                CHANGED_ACOR = .TRUE.
+                ACOR(IDX(I)) = UB(I) - YH(IDX(I),1)
+              END IF
+            END DO
+          END IF
+          IF (CHANGED_ACOR) THEN
+            IF (M==0) THEN
+              ACNRMNEW = DEL
+            ELSE
+              ACNRMNEW = DVNORM(N,ACOR,EWT)
+            END IF
+!           ACNRM = ACNRMNEW
+            ACNRM = MAX(ACNRM,ACNRMNEW)
+          ELSE
+          END IF
+          NFLAG = 0
+          JCUR = 0
+          ICF = 0
+        ELSE
+!         No projections are required.
+          NFLAG = 0
+          JCUR = 0
+          ICF = 0
+          IF (M==0) ACNRM = DEL
+          IF (M>0) ACNRM = DVNORM(N,ACOR,EWT)
+        END IF
+        RETURN
+
+      END SUBROUTINE DVNLSD
+!_______________________________________________________________________
+
+      SUBROUTINE DVJAC(Y,YH,LDYH,EWT,FTEM,SAVF,WM,IWM,F,JAC,IERPJ, &
+        ATOL,ITOL)
+! ..
+! Compute and process the matrix P = I - h*rl1*J, where J is an
+! approximation to the Jacobian for dense and banded solutions.
+! ..
+! This is a version of DVJAC that allows use of the known nonzero
+! diagonals if it is available.
+! DVJAC is called by DVNLSD to compute and process the matrix
+! P = I - h*rl1*J, where J is an approximation to the Jacobian.
+! Here J is computed by the user-supplied routine JAC if
+! MITER = 1 or 4, or by finite differencing if MITER = 2, 3, or 5.
+! If MITER = 3, a diagonal approximation to J is used.
+! If JSV = -1, J is computed from scratch in all cases.
+! If JSV = 1 and MITER = 1, 2, 4, or 5, and if the saved value of J is
+! considered acceptable, then P is constructed from the saved J.
+! J is stored in wm and replaced by P. If MITER /= 3, P is then
+! subjected to LU decomposition in preparation for later solution
+! of linear systems with P as coefficient matrix. This is done
+! by DGEFA_F90 if MITER = 1 or 2, and by DGBFA_F90 if MITER = 4 or 5.
+! Communication with DVJAC is done with the following variables.
+! (For more details, please see the comments in the driver subroutine.)
+! Y          = Vector containing predicted values on entry.
+! YH         = The Nordsieck array, an LDYH by LMAX array, input.
+! LDYH       = A constant >= N, the first dimension of YH, input.
+! EWT        = An error weight vector of length N.
+! SAVF       = Array containing f evaluated at predicted y, input.
+! WM         = Real work space for matrices. In the output, it contains
+!              the inverse diagonal matrix if MITER = 3 and the LU
+!              decomposition of P if MITER is 1, 2, 4, or 5.
+!              Storage of matrix elements starts at WM(1).
+!              Storage of the saved Jacobian starts at WM(LOCJS).
+! IWM        = Integer work space containing pivot information,
+!              starting at IWM(31), if MITER is 1, 2, 4, or 5.
+!              IWM also contains band parameters ML = IWM(1) and
+!              MU = IWM(2) if MITER is 4 or 5.
+! F          = Dummy name for the user supplied subroutine for f.
+! JAC        = Dummy name for the user supplied Jacobian subroutine.
+! RL1        = 1/EL(2) (input).
+! IERPJ      = Output error flag, = 0 if no trouble, 1 if the P
+!              matrix is found to be singular.
+! JCUR       = Output flag to indicate whether the Jacobian matrix
+!              (or approximation) is now current.
+!              JCUR = 0 means J is not current.
+!              JCUR = 1 means J is current.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (INOUT) :: IERPJ
+        INTEGER, INTENT (IN) :: LDYH, ITOL
+! ..
+! .. Array Arguments ..
+        KPP_REAL, INTENT (INOUT) :: EWT(*), FTEM(*), SAVF(*), WM(*), &
+          Y(*),YH(LDYH,*)
+        KPP_REAL, INTENT (IN) :: ATOL(*)
+        INTEGER, INTENT (INOUT) :: IWM(*)
+! ..
+! .. Subroutine Arguments ..
+        EXTERNAL F, JAC
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: CON, DI, FAC, HRL1, R, R0, SRUR, YI, YJ, YJJ
+        INTEGER :: I, I1, I2, IER, II, J, J1, JJ, JJ1, JJ2, JOK, K,   &
+          K1, K2, LENP, MBA, MBAND, MEB1, MEBAND, ML, ML1, MU, NG, NP1
+!         K1, K2, LENP, MBA, MBAND, MEB1, MEBAND, ML, ML3, MU, NG, NP1
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, MAX, MIN, REAL
+! ..
+! .. FIRST EXECUTABLE STATEMENT DVJAC
+! ..
+        IERPJ = 0
+        HRL1 = H*RL1
+!       See whether J should be evaluated (JOK = -1) or not (JOK = 1).
+        JOK = JSV
+        IF (JSV==1) THEN
+          IF (NST==0 .OR. NST>NSLJ+MSBJ) JOK = -1
+          IF (ICF==1 .AND. DRC<CCMXJ) JOK = -1
+          IF (ICF==2) JOK = -1
+        END IF
+        IF (J_IS_CONSTANT .AND. J_HAS_BEEN_COMPUTED) JOK = 1
+!       End of setting JOK.
+
+        IF (JOK==-1 .AND. MITER==1) THEN
+!         If JOK = -1 and MITER = 1, call JAC to evaluate Jacobian.
+          NJE = NJE + 1
+          NSLJ = NST
+          JCUR = 1
+          LENP = N*N
+!         WM(3:LENP+2) = ZERO
+          WM(1:LENP) = ZERO
+!         CALL JAC(N,TN,Y,0,0,WM(3),N)
+          CALL JAC(N,TN,Y,0,0,WM(1),N)
+          IF (J_IS_CONSTANT) J_HAS_BEEN_COMPUTED = .TRUE.
+!         IF (JSV==1) CALL DCOPY_F90(LENP,WM(3),1,WM(LOCJS),1)
+          IF (JSV==1) CALL DCOPY_F90(LENP,WM(1),1,WM(LOCJS),1)
+        END IF
+
+!       Set flag to indicate how the YSCALE vector will be set for
+!       JACSP.
+        LIKE_ORIGINAL_VODE = .FALSE.
+
+        IF (JOK==-1 .AND. MITER==2) THEN
+           IF (USE_JACSP) THEN
+!             Approximate the Jacobian using Doug Salane's JACSP.
+              NSLJ = NST
+              JCUR = 1
+              IOPTDS(1) = 0
+              IOPTDS(2) = 0
+              IOPTDS(3) = 1
+              IOPTDS(5) = 0
+!             INFORDS(4) was initialized in DVODE.
+              LWKDS  = 3 * N
+              LIWKDS = 50 + N
+              NRFJACDS = N
+              NCFJACDS = N
+              MAXGRPDS = N
+!             Calculate the YSCALEDS vector for JACSPDV.
+              IF (LIKE_ORIGINAL_VODE) THEN
+                 FAC = DVNORM(N,SAVF,EWT)
+!                JACSPDB multiplies YSCALEDS(*) BY UROUND**0.825:
+!                R0 = THOU*ABS(H)*UROUND*REAL(N)*FAC
+                 R0 = THOU*ABS(H)*REAL(N)*FAC
+                 IF (ABS(R0)<=ZERO) R0 = ONE
+                 SRUR = WM1
+                 DO J = 1, N
+!                   JACSPDB multiplies YSCALEDS(*) BY UROUND**0.825:
+!                   R = MAX(ABS(Y(J)),R0/EWT(J))
+                    R = MAX(ABS(Y(J))/U325,(R0/EWT(J))*U125)
+                    YSCALEDS(J) = R
+                 END DO
+              ELSE
+                 IF (ITOL == 1 .OR. ITOL == 3) THEN
+                    DO J = 1, N
+                       YSCALEDS(J) = MAX(ABS(Y(J)),ATOL(1),UROUND)
+                    END DO
+                 ELSE
+                    DO J = 1, N
+                       YSCALEDS(J) = MAX(ABS(Y(J)),ATOL(J),UROUND)
+                    END DO
+                 END IF
+              END IF
+
+              CALL JACSPDB(F,N,TN,Y,SAVF,WM(1),NRFJACDS, &
+                YSCALEDS,FACDS,IOPTDS,WKDS,LWKDS,IWKDS,LIWKDS, &
+                MAXGRPDS,NGRPDS,JPNTRDS,INDROWDS)
+              NFE = NFE + IWKDS(7)
+              NJE = NJE + 1
+           ELSE
+!             If MITER = 2, make N calls to F to approximate the Jacobian.
+              NSLJ = NST
+              JCUR = 1
+              FAC = DVNORM(N,SAVF,EWT)
+              R0 = THOU*ABS(H)*UROUND*REAL(N)*FAC
+              IF (ABS(R0)<=ZERO) R0 = ONE
+              SRUR = WM1
+!             J1 = 2
+              J1 = 0
+              DO J = 1, N
+                 YJ = Y(J)
+                 R = MAX(SRUR*ABS(YJ),R0/EWT(J))
+                 Y(J) = Y(J) + R
+                 FAC = ONE/R
+                 CALL F(N,TN,Y,FTEM)
+                 DO I = 1, N
+                   WM(I+J1) = (FTEM(I)-SAVF(I))*FAC
+                 END DO
+                 Y(J) = YJ
+                 J1 = J1 + N
+              END DO
+              NFE = NFE + N
+              NJE = NJE + 1
+           END IF
+           LENP = N*N
+!          IF (JSV==1) CALL DCOPY_F90(LENP,WM(3),1,WM(LOCJS),1)
+           IF (JSV==1) CALL DCOPY_F90(LENP,WM(1),1,WM(LOCJS),1)
+           IF (J_IS_CONSTANT) J_HAS_BEEN_COMPUTED = .TRUE.
+        END IF
+
+        IF (JOK==1 .AND. (MITER==1 .OR. MITER==2)) THEN
+          JCUR = 0
+          LENP = N*N
+!         CALL DCOPY_F90(LENP,WM(LOCJS),1,WM(3),1)
+          CALL DCOPY_F90(LENP,WM(LOCJS),1,WM(1),1)
+        END IF
+
+        IF (MITER==1 .OR. MITER==2) THEN
+!         Multiply Jacobian by scalar, add identity, and do LU
+!         decomposition.
+          CON = -HRL1
+!         CALL DSCAL_F90(LENP,CON,WM(3),1)
+          CALL DSCAL_F90(LENP,CON,WM(1),1)
+!         J = 3
+          J = 1
+          NP1 = N + 1
+          DO I = 1, N
+            WM(J) = WM(J) + ONE
+            J = J + NP1
+          END DO
+          NLU = NLU + 1
+! ______________________________________________________________________
+
+!         CALL DGEFA_F90(WM(3),N,N,IWM(31),IER)
+          CALL DGEFA_F90(WM(1),N,N,IWM(31),IER)
+          IF (IER/=0) IERPJ = 1
+! *****LAPACK build change point. Replace above with these statements.
+!        IF (.NOT.USE_LAPACK) THEN
+!!         CALL DGEFA_f90(WM(3),N,N,IWM(31),IER)
+!          CALL DGEFA_f90(WM(1),N,N,IWM(31),IER)
+!          IF (IER /= 0) IERPJ = 1
+!        ELSE
+!!         CALL DGETRF(N,N,WM(3),N,IWM(31),IER)
+!          CALL DGETRF(N,N,WM(1),N,IWM(31),IER)
+!          IF (IER /= 0) IERPJ = 1
+!        END IF
+! ______________________________________________________________________
+
+          RETURN
+        END IF
+!       End of code block for MITER = 1 or 2.
+
+        IF (MITER==3) THEN
+!         If MITER = 3, construct a diagonal approximation to
+!         J and P.
+          NJE = NJE + 1
+          JCUR = 1
+          WM2 = HRL1
+          R = RL1*PT1
+          Y(1:N) = Y(1:N) + R*(H*SAVF(1:N)-YH(1:N,2))
+!         CALL F(N,TN,Y,WM(3))
+          CALL F(N,TN,Y,WM(1))
+          NFE = NFE + 1
+          DO 10 I = 1, N
+            R0 = H*SAVF(I) - YH(I,2)
+!           DI = PT1*R0 - H*(WM(I+2)-SAVF(I))
+            DI = PT1*R0 - H*(WM(I)-SAVF(I))
+!           WM(I+2) = ONE
+            WM(I) = ONE
+            IF (ABS(R0)<UROUND/EWT(I)) GOTO 10
+            IF (ABS(DI)<=ZERO) GOTO 20
+!           WM(I+2) = PT1*R0/DI
+            WM(I) = PT1*R0/DI
+10        END DO
+          RETURN
+20        IERPJ = 1
+          RETURN
+        END IF
+!       End of code block for MITER = 3.
+
+!       Set constants for MITER = 4 or 5.
+        ML = IWM(1)
+        MU = IWM(2)
+!       ML3 = ML + 3
+        ML1 = ML + 1
+        MBAND = ML + MU + 1
+        MEBAND = MBAND + ML
+        LENP = MEBAND*N
+
+        IF (JOK==-1 .AND. MITER==4) THEN
+!       If JOK = -1 and MITER = 4, call JAC to evaluate Jacobian.
+          NJE = NJE + 1
+          NSLJ = NST
+          JCUR = 1
+!         WM(3:LENP+2) = ZERO
+          WM(1:LENP) = ZERO
+!         CALL JAC(N,TN,Y,ML,MU,WM(ML3),MEBAND)
+          CALL JAC(N,TN,Y,ML,MU,WM(ML1),MEBAND)
+          IF (J_IS_CONSTANT) J_HAS_BEEN_COMPUTED = .TRUE.
+!         IF (JSV==1) CALL DACOPY(MBAND,N,WM(ML3),MEBAND,WM(LOCJS),MBAND)
+          IF (JSV==1) CALL DACOPY(MBAND,N,WM(ML1),MEBAND,WM(LOCJS),MBAND)
+        END IF
+
+        IF (JOK==-1 .AND. MITER==5) THEN
+!       If MITER = 5, make ML+MU+1 calls to F to approximate the Jacobian
+!       unless the user has specified which sub and super diagonals are
+!       nonzero. In the latter case NSUBS+NSUPS+1 calls will be made.
+
+!         If the subdiagonals are known, use that information to build
+!         the Jacobian matrix.
+          IF ((SUBS .OR. SUPS) .OR. BNGRP >= MBAND) GOTO 60
+
+!         Otherwise, use the original algorithm.
+          IF (USE_JACSP) THEN
+!            Approximate the Jacobian using Doug Salane's JACSP.
+             NSLJ = NST
+             JCUR = 1
+             WM(1:LENP) = ZERO
+             IOPTDS(1) = 1
+             IOPTDS(2) = MBAND
+             IOPTDS(3) = 1
+             IOPTDS(5) = ML
+!            INFORDS(4) was initialized in DVODE.
+             LWKDS  = 3 * N
+             LIWKDS = 50 + N
+!            NRFJACDS = MEBAND*N
+!            NCFJACDS = 1
+             NRFJACDS = MEBAND
+             NCFJACDS = N
+             MBA = MIN(MBAND,N)
+             MAXGRPDS = MBA
+!            Calculate the YSCALEDS vector for JACSPDV.
+             IF (LIKE_ORIGINAL_VODE) THEN
+                FAC = DVNORM(N,SAVF,EWT)
+!               JACSPDB multiplies YSCALEDS(*) BY UROUND**0.825:
+!               R0 = THOU*ABS(H)*UROUND*REAL(N)*FAC
+                R0 = THOU*ABS(H)*REAL(N)*FAC
+                IF (ABS(R0)<=ZERO) R0 = ONE
+                SRUR = WM1
+                DO J = 1, N
+!                  JACSPDB multiplies YSCALEDS(*) BY UROUND**0.825:
+!                  R = MAX(ABS(Y(J)),R0/EWT(J))
+                   R = MAX(ABS(Y(J))/U325,(R0/EWT(J))*U125)
+                   YSCALEDS(J) = R
+                END DO
+             ELSE
+                IF (ITOL == 1 .OR. ITOL == 3) THEN
+                   DO J = 1, N
+                      YSCALEDS(J) = MAX(ABS(Y(J)),ATOL(1),UROUND)
+                   END DO
+                ELSE
+                   DO J = 1, N
+                      YSCALEDS(J) = MAX(ABS(Y(J)),ATOL(J),UROUND)
+                   END DO
+                END IF
+             END IF
+             CALL JACSPDB(F,N,TN,Y,SAVF,WM(1),NRFJACDS, &
+               YSCALEDS,FACDS,IOPTDS,WKDS,LWKDS,IWKDS,LIWKDS,  &
+               MAXGRPDS,NGRPDS,JPNTRDS,INDROWDS)
+             NFE = NFE + IWKDS(7)
+             NJE = NJE + 1
+          ELSE
+             NSLJ = NST
+             JCUR = 1
+             MBA = MIN(MBAND,N)
+             MEB1 = MEBAND - 1
+             SRUR = WM1
+             FAC = DVNORM(N,SAVF,EWT)
+             R0 = THOU*ABS(H)*UROUND*REAL(N)*FAC
+             IF (ABS(R0)<=ZERO) R0 = ONE
+             DO J = 1, MBA
+               DO I = J, N, MBAND
+                 YI = Y(I)
+                 R = MAX(SRUR*ABS(YI),R0/EWT(I))
+                 Y(I) = Y(I) + R
+               END DO
+               CALL F(N,TN,Y,FTEM)
+               DO JJ = J, N, MBAND
+                 Y(JJ) = YH(JJ,1)
+                 YJJ = Y(JJ)
+                 R = MAX(SRUR*ABS(YJJ),R0/EWT(JJ))
+                 FAC = ONE/R
+                 I1 = MAX(JJ-MU,1)
+                 I2 = MIN(JJ+ML,N)
+!                II = JJ*MEB1 - ML + 2
+                 II = JJ*MEB1 - ML
+                 DO I = I1, I2
+                   WM(II+I) = (FTEM(I)-SAVF(I))*FAC
+                 END DO
+               END DO
+             END DO
+             NFE = NFE + MBA
+             NJE = NJE + 1
+          END IF
+          IF (J_IS_CONSTANT) J_HAS_BEEN_COMPUTED = .TRUE.
+          GOTO 90
+   60     CONTINUE
+
+!         User supplied diagonals information is available.
+!         WM(3:LENP+2) = ZERO
+          WM(1:LENP) = ZERO
+          NJE = NJE + 1
+          NSLJ = NST
+          JCUR = 1
+          MBA = MIN(MBAND,N)
+          MEB1 = MEBAND - 1
+          SRUR = WM1
+          FAC = DVNORM(N,SAVF,EWT)
+          R0 = THOU*ABS(H)*UROUND*REAL(N)*FAC
+          IF (ABS(R0)<=ZERO) R0 = ONE
+!         For each group of columns...
+          DO NG = 1, BNGRP
+!            Find the first and last columns in the group.
+             JJ1 = BIGP(NG)
+             JJ2 = BIGP(NG+1) - 1
+!            For each column in this group...
+             DO JJ = JJ1, JJ2
+                J = BJGP(JJ)
+                R = MAX(SRUR*ABS(Y(J)),R0/EWT(J))
+                Y(J) = Y(J) + R
+             END DO
+             CALL F(N,TN,Y,FTEM)
+!            For each column in this group...
+             DO JJ = JJ1, JJ2
+                 J = BJGP(JJ)
+                 Y(J) = YH(J,1)
+                 R = MAX(SRUR*ABS(Y(J)),R0/EWT(J))
+                 FAC = ONE/R
+                 IF (BUILD_IAJA) THEN
+!                   Use the IAB, JAB sparse structure arrays to
+!                   determine the first and last nonzeros in
+!                   column J.
+                    K1 = IAB(J)
+                    K2 = IAB(J+1) - 1
+                 ELSE
+!                   Extract the positions of the first and
+!                   last nonzeros in this column directly.
+                    CALL BANDED_GET_BJNZ(N,ML,MU,J,IWM(31),I)
+                    DO K = 1, N
+                       IF (IWM(30+K) /= 0) THEN
+                          K1 = K
+                          GOTO 70
+                       END IF
+                    END DO
+   70               CONTINUE
+                    DO K = N, 1, -1
+                       IF (IWM(30+K) /= 0) THEN
+                          K2 = K
+                          GOTO 80
+                       END IF
+                    END DO
+   80               CONTINUE
+                 END IF
+!                Load the nonzeros for column J in the banded matrix.
+                 IF (BUILD_IAJA) THEN
+                    DO K = K1, K2
+                       I = JAB(K)
+!                      II = J * MEB1 - ML + 2
+                       II = J * MEB1 - ML
+                       WM(II+I) = (FTEM(I)-SAVF(I))*FAC
+                    END DO
+                 ELSE
+                    DO K = K1, K2
+                       I = IWM(30+K)
+                       IF (I /= 0) THEN
+!                         II = J * MEB1 - ML + 2
+                          II = J * MEB1 - ML
+                          WM(II+I) = (FTEM(I)-SAVF(I))*FAC
+                       END IF
+                    END DO
+                 END IF
+             END DO
+          END DO
+          NFE = NFE + BNGRP
+          IF (J_IS_CONSTANT) J_HAS_BEEN_COMPUTED = .TRUE.
+   90     CONTINUE
+!         IF (JSV==1) CALL DACOPY(MBAND,N,WM(ML3),MEBAND,WM(LOCJS),MBAND)
+          IF (JSV==1) CALL DACOPY(MBAND,N,WM(ML1),MEBAND,WM(LOCJS),MBAND)
+        END IF
+
+        IF (JOK==1) THEN
+          JCUR = 0
+!         CALL DACOPY(MBAND,N,WM(LOCJS),MBAND,WM(ML3),MEBAND)
+          CALL DACOPY(MBAND,N,WM(LOCJS),MBAND,WM(ML1),MEBAND)
+        END IF
+
+!       Multiply Jacobian by scalar, add identity, and do LU
+!       decomposition.
+        CON = -HRL1
+!       CALL DSCAL_F90(LENP,CON,WM(3),1)
+        CALL DSCAL_F90(LENP,CON,WM(1),1)
+!       II = MBAND + 2
+        II = MBAND
+        DO I = 1, N
+          WM(II) = WM(II) + ONE
+          II = II + MEBAND
+        END DO
+        NLU = NLU + 1
+! ______________________________________________________________________
+
+!       CALL DGBFA_F90(WM(3),MEBAND,N,ML,MU,IWM(31),IER)
+        CALL DGBFA_F90(WM(1),MEBAND,N,ML,MU,IWM(31),IER)
+        IF (IER/=0) IERPJ = 1
+! *****LAPACK build change point. Replace above with these statements.
+!       IF (.NOT.USE_LAPACK) THEN
+!!        CALL DGBFA_f90(WM(3),MEBAND,N,ML,MU,IWM(31),IER)
+!         CALL DGBFA_f90(WM(1),MEBAND,N,ML,MU,IWM(31),IER)
+!         IF (IER /= 0) IERPJ = 1
+!       ELSE
+!!        CALL DGBTRF(N,N,ML,MU,WM(3),MEBAND,IWM(31),IER)
+!         CALL DGBTRF(N,N,ML,MU,WM(1),MEBAND,IWM(31),IER)
+!         IF (IER /= 0) IERPJ = 1
+!       END IF
+! ______________________________________________________________________
+       RETURN
+!      End of code block for MITER = 4 or 5.
+
+      END SUBROUTINE DVJAC
+!_______________________________________________________________________
+
+      SUBROUTINE DACOPY(NROW,NCOL,A,NROWA,B,NROWB)
+! ..
+! Copy one array to another.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: NCOL, NROW, NROWA, NROWB
+! ..
+! .. Array Arguments ..
+        KPP_REAL, INTENT (IN) :: A(NROWA,NCOL)
+        KPP_REAL, INTENT (INOUT) :: B(NROWB,NCOL)
+! ..
+! .. Local Scalars ..
+        INTEGER :: IC
+! ..
+! .. FIRST EXECUTABLE STATEMENT DACOPY
+! ..
+        DO IC = 1, NCOL
+          CALL DCOPY_F90(NROW,A(1,IC),1,B(1,IC),1)
+        END DO
+        RETURN
+
+      END SUBROUTINE DACOPY
+!_______________________________________________________________________
+
+      SUBROUTINE DVSOL(WM,IWM,X,IERSL)
+! ..
+! Manage the solution of the linear system arising from a chord
+! iteration for dense and banded solutions.
+! ..
+! This routine manages the solution of the linear system arising from
+! a chord iteration. It is called if MITER /= 0.
+! If MITER is 1 or 2, it calls DGESL_F90 to accomplish this.
+! If MITER = 3 it updates the coefficient H*RL1 in the diagonal
+! matrix, and then computes the solution.
+! If MITER is 4 or 5, it calls DGBSL_F90.
+! Communication with DVSOL uses the following variables:
+! WM    = Real work space containing the inverse diagonal matrix if
+!         MITER = 3 and the LU decomposition of the matrix otherwise.
+!         Storage of matrix elements starts at WM(1).
+!         WM also contains the following matrix-related data:
+!         WM1 = SQRT(UROUND) (not used here),
+!         WM2 = HRL1, the previous value of H*RL1, used if MITER = 3.
+! IWM   = Integer work space containing pivot information, starting at
+!         IWM(31), if MITER is 1, 2, 4, or 5. IWM also contains band
+!         parameters ML = IWM(1) and MU = IWM(2) if MITER is 4 or 5.
+! X     = The right-hand side vector on input, and the solution vector
+!         on output, of length N.
+! IERSL = Output flag. IERSL = 0 if no trouble occurred.
+!         IERSL = 1 if a singular matrix arose with MITER = 3.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (INOUT) :: IERSL
+! ..
+! .. Array Arguments ..
+        KPP_REAL, INTENT (INOUT) :: WM(*), X(*)
+        INTEGER, INTENT (INOUT) :: IWM(*)
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: DI, HRL1, PHRL1, R
+        INTEGER :: I, MEBAND, ML, MU
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS
+! ..
+! ______________________________________________________________________
+
+! *****LAPACK build change point. Insert this statement.
+!       INTEGER INFO
+!       CHARACTER*1 TRANS
+! ______________________________________________________________________
+
+! .. FIRST EXECUTABLE STATEMENT DVSOL
+! ..
+        IERSL = 0
+        GOTO (10,10,20,50,50) MITER
+
+10      CONTINUE
+! ______________________________________________________________________
+
+!       CALL DGESL_F90(WM(3),N,N,IWM(31),X,0)
+        CALL DGESL_F90(WM(1),N,N,IWM(31),X,0)
+! *****LAPACK build change point. Replace above with these statements.
+!       IF (.NOT.USE_LAPACK) THEN
+!!         CALL DGESL_f90(WM(3),N,N,IWM(31),X,0)
+!          CALL DGESL_f90(WM(1),N,N,IWM(31),X,0)
+!       ELSE
+!          TRANS = 'N'
+!!         CALL DGETRS(TRANS,N,1,WM(3),N,IWM(31),X,N,INFO)
+!          CALL DGETRS(TRANS,N,1,WM(1),N,IWM(31),X,N,INFO)
+!          IF (INFO /= 0) THEN
+!             WRITE(6,*) 'Stopping in DVSOL with INFO = ', INFO
+!             STOP
+!          END IF
+!       END IF
+! ______________________________________________________________________
+
+        RETURN
+
+20      PHRL1 = WM2
+        HRL1 = H*RL1
+        WM2 = HRL1
+        IF (ABS(HRL1-PHRL1)<=ZERO) GOTO 30
+        R = HRL1/PHRL1
+        DO I = 1, N
+!         DI = ONE - R*(ONE-ONE/WM(I+2))
+          DI = ONE - R*(ONE-ONE/WM(I))
+          IF (ABS(DI)<=ZERO) GOTO 40
+!         WM(I+2) = ONE/DI
+          WM(I) = ONE/DI
+        END DO
+
+30      DO I = 1, N
+!         X(I) = WM(I+2)*X(I)
+          X(I) = WM(I)*X(I)
+        END DO
+        RETURN
+40      IERSL = 1
+        RETURN
+
+50      ML = IWM(1)
+        MU = IWM(2)
+        MEBAND = 2*ML + MU + 1
+! ______________________________________________________________________
+
+!       CALL DGBSL_F90(WM(3),MEBAND,N,ML,MU,IWM(31),X,0)
+        CALL DGBSL_F90(WM(1),MEBAND,N,ML,MU,IWM(31),X,0)
+! *****LAPACK build change point. Replace above with these statements.
+!       IF (.NOT.USE_LAPACK) THEN
+!!        CALL DGBSL_F90(WM(3),MEBAND,N,ML,MU,IWM(31),X,0)
+!         CALL DGBSL_F90(WM(1),MEBAND,N,ML,MU,IWM(31),X,0)
+!       ELSE
+!         TRANS = 'N'
+!!        CALL DGBTRS(TRANS,N,ML,MU,1,WM(3),MEBAND,IWM(31),X,N,INFO)
+!         CALL DGBTRS(TRANS,N,ML,MU,1,WM(1),MEBAND,IWM(31),X,N,INFO)
+!         IF (INFO /= 0) THEN
+!           WRITE(6,*) 'Stopping in DVSOL with INFO = ', INFO
+!           STOP
+!         END IF
+!       END IF
+! ______________________________________________________________________
+
+      RETURN
+
+      END SUBROUTINE DVSOL
+!_______________________________________________________________________
+
+      SUBROUTINE DVSRCO(RSAV,ISAV,JOB)
+! ..
+! Save or restore (depending on JOB) the contents of the PRIVATE
+! variable blocks, which are used internally by DVODE (not called
+! by DVODE_F90).
+! ..
+! RSAV = real array of length 49 or more.
+! ISAV = integer array of length 41 or more.
+! JOB  = flag indicating to save or restore the PRIVATE variable
+!        blocks:
+!        JOB  = 1 if PRIVATE variables is to be saved
+!                 (written to RSAV/ISAV).
+!        JOB  = 2 if PRIVATE variables is to be restored
+!                 (read from RSAV/ISAV).
+!        A call with JOB = 2 presumes a prior call with JOB = 1.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: JOB
+! ..
+! .. Array Arguments ..
+        KPP_REAL, INTENT (INOUT) :: RSAV(*)
+        INTEGER, INTENT (INOUT) :: ISAV(*)
+! ..
+! .. FIRST EXECUTABLE STATEMENT DVSRCO
+! ..
+        IF (JOB/=2) THEN
+!         Save the contents of the PRIVATE blocks.
+          RSAV(1) = ACNRM
+          RSAV(2) = CCMXJ
+          RSAV(3) = CONP
+          RSAV(4) = CRATE
+          RSAV(5) = DRC
+          RSAV(6:18) = EL(1:13)
+          RSAV(19) = ETA
+          RSAV(20) = ETAMAX
+          RSAV(21) = H
+          RSAV(22) = HMIN
+          RSAV(23) = HMXI
+          RSAV(24) = HNEW
+          RSAV(25) = HSCAL
+          RSAV(26) = PRL1
+          RSAV(27) = RC
+          RSAV(28) = RL1
+          RSAV(29:41) = TAU(1:13)
+          RSAV(42:46) = TQ(1:5)
+          RSAV(47) = TN
+          RSAV(48) = UROUND
+          RSAV(LENRV1+1) = HU
+          ISAV(1) = ICF
+          ISAV(2) = INIT
+          ISAV(3) = IPUP
+          ISAV(4) = JCUR
+          ISAV(5) = JSTART
+          ISAV(6) = JSV
+          ISAV(7) = KFLAG
+          ISAV(8) = KUTH
+          ISAV(9) = L
+          ISAV(10) = LMAX
+          ISAV(11) = LYH
+          ISAV(12) = 0
+          ISAV(13) = 0
+          ISAV(14) = 0
+          ISAV(15) = LWM
+          ISAV(16) = LIWM
+          ISAV(17) = LOCJS
+          ISAV(18) = MAXORD
+          ISAV(19) = METH
+          ISAV(20) = MITER
+          ISAV(21) = MSBJ
+          ISAV(22) = MXHNIL
+          ISAV(23) = MXSTEP
+          ISAV(24) = N
+          ISAV(25) = NEWH
+          ISAV(26) = NEWQ
+          ISAV(27) = NHNIL
+          ISAV(28) = NQ
+          ISAV(29) = NQNYH
+          ISAV(30) = NQWAIT
+          ISAV(31) = NSLJ
+          ISAV(32) = NSLP
+          ISAV(33) = NYH
+          ISAV(LENIV1+1) = NCFN
+          ISAV(LENIV1+2) = NETF
+          ISAV(LENIV1+3) = NFE
+          ISAV(LENIV1+4) = NJE
+          ISAV(LENIV1+5) = NLU
+          ISAV(LENIV1+6) = NNI
+          ISAV(LENIV1+7) = NQU
+          ISAV(LENIV1+8) = NST
+          RETURN
+        ELSE
+!         Replace the contents of the PRIVATE blocks.
+          ACNRM = RSAV(1)
+          CCMXJ = RSAV(2)
+          CONP = RSAV(3)
+          CRATE = RSAV(4)
+          DRC = RSAV(5)
+          EL(1:13) = RSAV(6:18)
+          ETA = RSAV(19)
+          ETAMAX = RSAV(20)
+          H = RSAV(21)
+          HMIN = RSAV(22)
+          HMXI = RSAV(23)
+          HNEW = RSAV(24)
+          HSCAL = RSAV(25)
+          PRL1 = RSAV(26)
+          RC = RSAV(27)
+          RL1 = RSAV(28)
+          TAU(1:13) = RSAV(29:41)
+          TQ(1:5) = RSAV(42:46)
+          TN = RSAV(47)
+          UROUND = RSAV(48)
+          HU = RSAV(LENRV1+1)
+          ICF = ISAV(1)
+          INIT = ISAV(2)
+          IPUP = ISAV(3)
+          JCUR = ISAV(4)
+          JSTART = ISAV(5)
+          JSV = ISAV(6)
+          KFLAG = ISAV(7)
+          KUTH = ISAV(8)
+          L = ISAV(9)
+          LMAX = ISAV(10)
+          LYH = ISAV(11)
+          LWM = ISAV(15)
+          LIWM = ISAV(16)
+          LOCJS = ISAV(17)
+          MAXORD = ISAV(18)
+          METH = ISAV(19)
+          MITER = ISAV(20)
+          MSBJ = ISAV(21)
+          MXHNIL = ISAV(22)
+          MXSTEP = ISAV(23)
+          N = ISAV(24)
+          NEWH = ISAV(25)
+          NEWQ = ISAV(26)
+          NHNIL = ISAV(27)
+          NQ = ISAV(28)
+          NQNYH = ISAV(29)
+          NQWAIT = ISAV(30)
+          NSLJ = ISAV(31)
+          NSLP = ISAV(32)
+          NYH = ISAV(33)
+          NCFN = ISAV(LENIV1+1)
+          NETF = ISAV(LENIV1+2)
+          NFE = ISAV(LENIV1+3)
+          NJE = ISAV(LENIV1+4)
+          NLU = ISAV(LENIV1+5)
+          NNI = ISAV(LENIV1+6)
+          NQU = ISAV(LENIV1+7)
+          NST = ISAV(LENIV1+8)
+          RETURN
+        END IF
+
+      END SUBROUTINE DVSRCO
+!_______________________________________________________________________
+
+      SUBROUTINE DEWSET(N,ITOL,RTOL,ATOL,YCUR,EWT)
+! ..
+! Set the error weight vector.
+! ..
+! This subroutine sets the error weight vector EWT according to
+! EWT(i) = RTOL(i)*ABS(YCUR(i)) + ATOL(i), i = 1,...,N,
+! with the subscript on RTOL and/or ATOL possibly replaced by 1
+! above, depending on the value of ITOL.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: ITOL, N
+! ..
+! .. Array Arguments ..
+        KPP_REAL, INTENT (IN) :: ATOL(*), RTOL(*), YCUR(N)
+        KPP_REAL, INTENT (OUT) :: EWT(N)
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS
+! ..
+! .. FIRST EXECUTABLE STATEMENT DEWSET
+! ..
+        GOTO (10,20,30,40) ITOL
+10      CONTINUE
+        EWT(1:N) = RTOL(1)*ABS(YCUR(1:N)) + ATOL(1)
+        RETURN
+20      CONTINUE
+        EWT(1:N) = RTOL(1)*ABS(YCUR(1:N)) + ATOL(1:N)
+        RETURN
+30      CONTINUE
+        EWT(1:N) = RTOL(1:N)*ABS(YCUR(1:N)) + ATOL(1)
+        RETURN
+40      CONTINUE
+        EWT(1:N) = RTOL(1:N)*ABS(YCUR(1:N)) + ATOL(1:N)
+        RETURN
+
+      END SUBROUTINE DEWSET
+!_______________________________________________________________________
+
+      FUNCTION DVNORM(N,V,W)
+! ..
+! Calculate weighted root-mean-square (rms) vector norm.
+! ..
+! This routine computes the weighted root-mean-square norm
+! of the vector of length N contained in the array V, with
+! weights contained in the array W of length N.
+! DVNORM = SQRT((1/N) * SUM(V(i)*W(i))**2)
+! ..
+     IMPLICIT NONE
+! ..
+! .. Function Return Value ..
+        KPP_REAL :: DVNORM
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: N
+! ..
+! .. Array Arguments ..
+        KPP_REAL, INTENT (IN) :: V(N), W(N)
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: SUM
+        INTEGER :: I
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC SQRT
+! ..
+! .. FIRST EXECUTABLE STATEMENT DVNORM
+! ..
+        SUM = ZERO
+        DO I = 1, N
+          SUM = SUM + (V(I)*W(I))**2
+        END DO
+        DVNORM = SQRT(SUM/N)
+        RETURN
+
+      END FUNCTION DVNORM
+!_______________________________________________________________________
+
+! The modified SLATEC error handling routines begin here.
+      SUBROUTINE XERRDV(MSG,NERR,LEVEL,NI,I1,I2,NR,R1,R2)
+! ..
+! Write error messages with values.
+! ..
+! This is an adaptation of subroutine XERRWD (NMES eliminated).
+! Subroutines XERRDV, XSETF, XSETUN, and Functions IXSAV
+! as given here, constitute a simplified version of the SLATEC
+! error handling package.
+!
+! All arguments are input arguments.
+! MSG    = The message (character array).
+! NERR   = The error number (not used).
+! LEVEL  = The error level
+!          0 or 1 means recoverable (control returns to caller).
+!          2 means fatal (run is aborted--see note below).
+! NI     = Number of integers (0, 1, or 2) to be printed with message.
+! I1,I2  = Integers to be printed, depending on NI.
+! NR     = Number of reals (0, 1, or 2) to be printed with message.
+! R1,R2  = Reals to be printed, depending on NR.
+! Note: This routine is machine-dependent and specialized for use
+! in limited context, in the following ways:
+!  1. The argument MSG is assumed to be of type CHARACTER, and
+!     the message is printed with a format of (1X,A).
+!  2. The message is assumed to take only one line.
+!     Multi-line messages are generated by repeated calls.
+!  3. If LEVEL = 2, control passes to the statement: STOP
+!     to abort the run. This statement may be machine-dependent.
+!  4. R1 and R2 are assumed to be in KPP_REAL and are printed
+!     in D21.13 format.
+! Internal Notes:
+! For a different default logical unit number, IXSAV(or a subsidiary
+! function that it calls) will need to be modified.
+! For a different run-abort command, change the statement following
+! statement 100 at the end.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        KPP_REAL :: R1, R2
+        INTEGER :: I1, I2, LEVEL, NERR, NI, NR
+        CHARACTER (*) :: MSG
+        LOGICAL PRINT_NERR
+! ..
+! .. Local Scalars ..
+        INTEGER :: LUNIT, MESFLG
+! ..
+! .. FIRST EXECUTABLE STATEMENT XERRDV
+! ..
+!       Get logical unit number and message print flag.
+        LUNIT = IXSAV(1,0,.FALSE.)
+        MESFLG = IXSAV(2,0,.FALSE.)
+        IF (MESFLG==0) GOTO 10
+
+        PRINT_NERR = .FALSE.
+        IF (PRINT_NERR) PRINT *, MSG, 'Message number = ', NERR
+
+!       Write the message.
+        WRITE (LUNIT,90000) MSG
+90000   FORMAT (1X,A)
+        IF (NI==1) WRITE (LUNIT,90001) I1
+90001   FORMAT ('In the above message, I1 = ',I10)
+        IF (NI==2) WRITE (LUNIT,90002) I1, I2
+90002   FORMAT ('In the above message, I1 = ',I10,3X,'I2 = ',I10)
+        IF (NR==1) WRITE (LUNIT,90003) R1
+90003   FORMAT ('In the above message, R1 = ',D21.13)
+        IF (NR==2) WRITE (LUNIT,90004) R1, R2
+90004   FORMAT ('In the above message, R1 = ',D21.13,3X,'R2 = ',D21.13)
+
+!       Abort the run if LEVEL = 2.
+10      IF (LEVEL/=2) RETURN
+        WRITE (LUNIT,90005)
+90005   FORMAT ('LEVEL = 2 in XERRDV. Stopping.')
+        STOP
+
+      END SUBROUTINE XERRDV
+!_______________________________________________________________________
+
+      SUBROUTINE XSETF(MFLAG)
+! ..
+!     Reset the error print control flag.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: MFLAG
+! ..
+! .. Local Scalars ..
+        INTEGER :: JUNK
+! ..
+! .. FIRST EXECUTABLE STATEMENT XSETF
+! ..
+        IF (MFLAG==0 .OR. MFLAG==1) JUNK = IXSAV(2,MFLAG,.TRUE.)
+!       Get rid of a compiler warning message:
+        IF (JUNK/=JUNK) STOP
+        RETURN
+
+      END SUBROUTINE XSETF
+!_______________________________________________________________________
+
+      SUBROUTINE XSETUN(LUN)
+! ..
+!     Reset the logical unit number for error messages.
+! ..
+!     XSETUN sets the logical unit number for error messages to LUN.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER :: LUN
+! ..
+! .. Local Scalars ..
+        INTEGER :: JUNK
+! ..
+! .. FIRST EXECUTABLE STATEMENT XSETUN
+! ..
+        IF (LUN>0) JUNK = IXSAV(1,LUN,.TRUE.)
+!       Get rid of a compiler warning message:
+        IF (JUNK/=JUNK) STOP
+        RETURN
+
+      END SUBROUTINE XSETUN
+!_______________________________________________________________________
+
+      FUNCTION IXSAV(IPAR,IVALUE,ISET)
+! ..
+! Save and recall error message control parameters.
+! ..
+! IXSAV saves and recalls one of two error message parameters:
+!  LUNIT, the logical unit number to which messages are printed,
+!  and MESFLG, the message print flag.
+! This is a modification of the SLATEC library routine J4SAVE.
+! Saved local variables:
+!  LUNIT  = Logical unit number for messages. The default is
+!           obtained by a call to IUMACH(may be machine-dependent).
+!  MESFLG = Print control flag:
+!           1 means print all messages (the default).
+!           0 means no printing.
+! On input:
+!  IPAR   = Parameter indicator (1 for LUNIT, 2 for MESFLG).
+!  IVALUE = The value to be set for the parameter, if ISET = .TRUE.
+!  ISET   = Logical flag to indicate whether to read or write.
+!           If ISET = .TRUE., the parameter will be given
+!           the value IVALUE. If ISET = .FALSE., the parameter
+!           will be unchanged, and IVALUE is a dummy argument.
+! On return:
+!   IXSAV = The (old) value of the parameter.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Function Return Value ..
+        INTEGER :: IXSAV
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: IPAR, IVALUE
+        LOGICAL, INTENT (IN) :: ISET
+! ..
+! .. Local Scalars ..
+        INTEGER, SAVE :: LUNIT, MESFLG
+! ..
+! .. Data Statements ..
+        DATA LUNIT/ -1/, MESFLG/1/
+! ..
+! .. FIRST EXECUTABLE STATEMENT IXSAV
+! ..
+        IF (IPAR==1) THEN
+          IF (LUNIT==-1) LUNIT = IUMACH()
+!  i       Get rid of a compiler warning message:
+          IF (LUNIT/=LUNIT) STOP
+          IXSAV = LUNIT
+          IF (ISET) LUNIT = IVALUE
+        END IF
+
+        IF (IPAR==2) THEN
+          IXSAV = MESFLG
+          IF (ISET) MESFLG = IVALUE
+        END IF
+        RETURN
+
+      END FUNCTION IXSAV
+!_______________________________________________________________________
+
+      FUNCTION IUMACH()
+! ..
+!     Provide the standard output unit number.
+! ..
+!     INTEGER LOUT, IUMACH
+!     LOUT = IUMACH()
+!     Function Return Values:
+!     LOUT: the standard logical unit for Fortran output.
+!     Internal Notes:
+!     The built-in value of 6 is standard on a wide range
+!     of Fortran systems. This may be machine-dependent.
+! ..
+! .. Function Return Value ..
+        INTEGER :: IUMACH
+! ..
+! .. FIRST EXECUTABLE STATEMENT IUMACH
+! ..
+        IUMACH = 6
+        RETURN
+
+      END FUNCTION IUMACH
+! The modified error handling routines end here.
+!_______________________________________________________________________
+
+      SUBROUTINE CHECK_STAT(IER,CALLED_FROM_WHERE)
+! ..
+! Print an error message if a storage allocation error
+! occurred.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: CALLED_FROM_WHERE, IER
+! ..
+! .. Local Scalars ..
+        INTEGER :: I1
+        CHARACTER (80) :: MSG
+! ..
+! .. FIRST EXECUTABLE STATEMENT CHECK_STAT
+! ..
+        IF (IER/=0) THEN
+          I1 = CALLED_FROM_WHERE
+          MSG = 'A storage allocation error occurred.'
+          CALL XERRDV(MSG,1410,1,0,0,0,0,ZERO,ZERO)
+          MSG = 'The error occurred at location I1.'
+          CALL XERRDV(MSG,1410,2,1,I1,0,0,ZERO,ZERO)
+        END IF
+        RETURN
+
+      END SUBROUTINE CHECK_STAT
+!_______________________________________________________________________
+
+      SUBROUTINE DVPREPS(NEQ,Y,YH,LDYH,SAVF,EWT,F,JAC)
+! ..
+! Determine the sparsity structure and allocate the necessary arrays
+! for MA28 based sparse solutions.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: LDYH, NEQ
+! ..
+! .. Array Arguments ..
+        KPP_REAL, INTENT (INOUT) :: EWT(*), Y(*)
+        KPP_REAL :: SAVF(*)
+        KPP_REAL, INTENT (IN) :: YH(LDYH,*)
+! ..
+! .. Subroutine Arguments ..
+        EXTERNAL F, JAC
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: DQ, DYJ, ERWT, FAC, YJ
+        INTEGER :: I, IER, J, JFOUND, K, KMAX, KMIN, KNEW, NP1, NZ
+        CHARACTER (80) :: MSG
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, ALLOCATED, MAX, SIGN
+! ..
+! .. FIRST EXECUTABLE STATEMENT DVPREPS
+! ..
+        NZ_SWAG = MAX(MAX(1000,NZ_SWAG),10*N)
+        NP1 = N + 1
+        NZ_ALL = NZ_SWAG
+!       ADDTONNZ = MAX(1000,NZ_SWAG)
+        ADDTONNZ = NZ_SWAG
+10      CONTINUE
+        IF (ALLOCATED(IAN)) THEN
+          DEALLOCATE (IAN,JAN,IGP,JGP,FTEMP1,IKEEP28,IW28,ICN,PMAT, &
+            JVECT,STAT=IER)
+          CALL CHECK_STAT(IER,490)
+          IF (ALLOCATED(JMAT)) THEN
+            DEALLOCATE (JMAT,STAT=IER)
+            CALL CHECK_STAT(IER,500)
+          END IF
+        END IF
+        NZ_ALL = NZ_ALL + ADDTONNZ
+        LICN_ALL = ELBOW_ROOM * NZ_ALL
+        LIRN_ALL = ELBOW_ROOM * NZ_ALL
+        IF (LICN_ALL>MAX_ARRAY_SIZE .OR. LIRN_ALL>MAX_ARRAY_SIZE) THEN
+          MSG = 'Maximum array size exceeded. Stopping.'
+          CALL XERRDV(MSG,1420,2,0,0,0,0,ZERO,ZERO)
+        END IF
+!       Note: ICN may need to be reallocated in DVJACS28.
+        ALLOCATE (IAN(NP1),JAN(LIRN_ALL),IGP(NP1),JGP(N),FTEMP1(N), &
+          IKEEP28(N,5),IW28(N,8),ICN(LICN_ALL),PMAT(LICN_ALL),      &
+          JVECT(LIRN_ALL),STAT=IER)
+        CALL CHECK_STAT(IER,510)
+        IF (JSV==1) THEN
+          ALLOCATE (JMAT(NZ_ALL),STAT=IER)
+          CALL CHECK_STAT(IER,520)
+          JMAT(1:NZ_ALL) = ZERO
+        END IF
+
+        IF (MOSS==0) GOTO 30
+        IF (ISTATC==3) GOTO 20
+
+!       ISTATE = 1 and MOSS /= 0.
+
+!       Perturb Y for structure determination:
+        DO I = 1, N
+          ERWT = ONE/EWT(I)
+          FAC = ONE + ONE/(I+ONE)
+          Y(I) = Y(I) + FAC*SIGN(ERWT,Y(I))
+        END DO
+        GOTO (60,70) MOSS
+
+20      CONTINUE
+!       ISTATE = 3 and MOSS /= 0.
+
+!       Load Y from YH(*,1):
+        Y(1:N) = YH(1:N,1)
+        GOTO (60,70) MOSS
+
+!       MOSS = 0
+
+!       Process user's IA,JA. Add diagonal entries if necessary:
+30      CONTINUE
+        IF (IAJA_CALLED) THEN
+        ELSE
+          MSG = 'You have indicated that you wish to supply the'
+          CALL XERRDV(MSG,1430,1,0,0,0,0,ZERO,ZERO)
+          MSG = 'sparsity arrays IA and JA directly but you did'
+          CALL XERRDV(MSG,1430,1,0,0,0,0,ZERO,ZERO)
+          MSG = 'not call SET_IAJA after calling SET_OPTS.'
+          CALL XERRDV(MSG,1430,2,0,0,0,0,ZERO,ZERO)
+        END IF
+        KNEW = 1
+        KMIN = IA(1)
+        IAN(1) = 1
+        DO J = 1, N
+          JFOUND = 0
+          KMAX = IA(J+1) - 1
+          IF (KMIN>KMAX) GOTO 40
+          DO K = KMIN, KMAX
+            I = JA(K)
+            IF (I==J) JFOUND = 1
+            IF (KNEW>NZ_ALL) THEN
+               IF (LP /= 0) THEN
+                  MSG = 'NZ_ALL (=I1) is not large enough.'
+                  CALL XERRDV(MSG,1440,1,0,0,0,0,ZERO,ZERO)
+                  MSG = 'Allocating more space for another try.'
+                  CALL XERRDV(MSG,1440,1,1,NZ_ALL,0,0,ZERO,ZERO)
+               END IF
+               GOTO 10
+            END IF
+            JAN(KNEW) = I
+            KNEW = KNEW + 1
+          END DO
+          IF (JFOUND==1) GOTO 50
+40        IF (KNEW>NZ_ALL) THEN
+             IF (LP /= 0) THEN
+                MSG = 'NZ_ALL (=I1) is not large enough.'
+                CALL XERRDV(MSG,1450,1,0,0,0,0,ZERO,ZERO)
+                MSG = 'Allocating more space for another try.'
+                CALL XERRDV(MSG,1450,1,1,NZ_ALL,0,0,ZERO,ZERO)
+             END IF
+             GOTO 10
+          END IF
+          JAN(KNEW) = J
+          KNEW = KNEW + 1
+50        IAN(J+1) = KNEW
+          KMIN = KMAX + 1
+        END DO
+        GOTO 90
+
+60      CONTINUE
+
+!       MOSS = 1.
+
+!       Compute structure from user-supplied Jacobian routine JAC.
+        NZ = 0
+        CALL JAC(NEQ,TN,Y,IAN,JAN,NZ,PMAT)
+        IF (NZ<=0) THEN
+          MSG = 'Illegal value of NZ from JAC in DVPREPS.'
+          CALL XERRDV(MSG,1460,2,0,0,0,0,ZERO,ZERO)
+        END IF
+        IF (NZ>NZ_ALL) THEN
+           IF (LP /= 0) THEN
+              MSG = 'NZ_ALL (=I1) is not large enough.'
+              CALL XERRDV(MSG,1470,1,0,0,0,0,ZERO,ZERO)
+              MSG = 'Allocating more space for another try.'
+              CALL XERRDV(MSG,1470,1,1,NZ_ALL,0,0,ZERO,ZERO)
+           END IF
+           GOTO 10
+        END IF
+        CALL JAC(NEQ,TN,Y,IAN,JAN,NZ,PMAT)
+        CALL SET_ICN(N,IAN,ICN)
+        CALL CHECK_DIAG(N,IAN,JAN,ICN)
+        GOTO 90
+
+!       MOSS = 2.
+
+!       Compute structure from results of N+1 calls to F.
+70      K = 1
+        IAN(1) = 1
+        DO I = 1, N
+          ERWT = ONE/EWT(I)
+          FAC = ONE + ONE/(I+ONE)
+          Y(I) = Y(I) + FAC*SIGN(ERWT,Y(I))
+        END DO
+        CALL F(NEQ,TN,Y,SAVF)
+        NFE = NFE + 1
+        DO J = 1, N
+          IF (K>NZ_ALL) THEN
+             IF (LP /= 0) THEN
+                MSG = 'NZ_ALL (=I1) is not large enough.'
+                CALL XERRDV(MSG,1480,1,0,0,0,0,ZERO,ZERO)
+                MSG = 'Allocating more space for another try.'
+                CALL XERRDV(MSG,1480,1,1,NZ_ALL,0,0,ZERO,ZERO)
+
+             END IF
+             GOTO 10
+          END IF
+          YJ = Y(J)
+          ERWT = ONE/EWT(J)
+          DYJ = SIGN(ERWT,YJ)
+          Y(J) = YJ + DYJ
+          CALL F(NEQ,TN,Y,FTEMP1)
+          NFE = NFE + 1
+          Y(J) = YJ
+          DO 80 I = 1, N
+            DQ = (FTEMP1(I)-SAVF(I))/DYJ
+            IF ((ABS(DQ)<=SETH) .AND. (I/=J)) GOTO 80
+            JAN(K) = I
+            K = K + 1
+80        END DO
+          IAN(J+1) = K
+        END DO
+90      CONTINUE
+        IF (MOSS==0 .OR. ISTATC/=1) GOTO 100
+!       If ISTATE = 1 and MOSS /= 0, restore Y from YH.
+        Y(1:N) = YH(1:N,1)
+100     NNZ = IAN(NP1) - 1
+        LENIGP = 0
+        MAXG = 0
+        IF (MITER==7) THEN
+!         Compute grouping of column indices.
+          MAXG = NP1
+          CALL DGROUP(N,IAN,JAN,MAXG,NGP,IGP,JGP,IKEEP28(1,1), &
+            IKEEP28(1,2),IER)
+          IF (IER/=0) THEN
+            MSG = 'An error occurred in DGROUP.'
+            CALL XERRDV(MSG,1490,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          LENIGP = NGP + 1
+        END IF
+
+        IF (USE_JACSP .AND. MITER==7) THEN
+!         Use Doug Salane's Jacobian routines to determine the column
+!         grouping; and allocate and initialize the necessary arrays
+!         for use in DVJACS48.
+          IF (ALLOCATED(INDROWDS)) THEN
+             DEALLOCATE (INDROWDS, INDCOLDS, NGRPDS, IPNTRDS, JPNTRDS, IWADS, &
+               IWKDS, IOPTDS, YSCALEDS, WKDS, FACDS)
+             CALL CHECK_STAT(IER,530)
+          END IF
+!         We could delete IWADS and use IW28 array.
+          ALLOCATE (INDROWDS(NNZ), INDCOLDS(NNZ), NGRPDS(N+1), IPNTRDS(N+1), &
+            JPNTRDS(N+1), IWADS(6*N), IWKDS(50+N), IOPTDS(5), YSCALEDS(N),  &
+            WKDS(3*N), FACDS(N) ,STAT=IER)
+          CALL CHECK_STAT(IER,540)
+          INDROWDS(1:NNZ) = JAN(1:NNZ)
+          CALL SET_ICN(N,IAN,INDCOLDS)
+          CALL CHECK_DIAG(N,IAN,INDROWDS,INDCOLDS)
+          LIWADS = 6 * N
+          CALL DVDSM(N,N,NNZ,INDROWDS,INDCOLDS,NGRPDS,MAXGRPDS,MINGRPDS,      &
+            INFODS,IPNTRDS,JPNTRDS,IWADS,LIWADS)
+          IF (INFODS /= 1) THEN
+             MSG = 'An error occurred in subroutine DSM. INFO = I1.'
+               CALL XERRDV(MSG,1500,2,1,INFODS,0,0,ZERO,ZERO)
+          END IF
+!         For use in DVJACS28:
+          IOPTDS(4) = 0
+!         Define the IGP and JGP arrays needed by DVJACS28.
+          CALL DGROUPDS(N,MAXGRPDS,NGRPDS,IGP,JGP)
+          NGP = MAXGRPDS
+          LENIGP = MAXGRPDS + 1
+        END IF
+
+!       Trim the arrays to the final sizes.
+
+        IF (NZ_ALL>NNZ) THEN
+          NZ_ALL = NNZ
+          MAX_NNZ = MAX(MAX_NNZ,NNZ)
+          LIRN_ALL = ELBOW_ROOM * NNZ
+          ICN(1:NNZ) = JAN(1:NNZ)
+          DEALLOCATE (JAN,STAT=IER)
+          CALL CHECK_STAT(IER,550)
+          ALLOCATE (JAN(LIRN_ALL),STAT=IER)
+          CALL CHECK_STAT(IER,560)
+          JAN(1:NNZ) = ICN(1:NNZ)
+          CALL CHECK_STAT(IER,570)
+          DEALLOCATE (ICN,PMAT,JVECT,STAT=IER)
+          CALL CHECK_STAT(IER,580)
+          IF (ALLOCATED(JMAT)) THEN
+            DEALLOCATE (JMAT,STAT=IER)
+            CALL CHECK_STAT(IER,590)
+          END IF
+          LICN_ALL = ELBOW_ROOM * NNZ
+          ALLOCATE (ICN(LICN_ALL),PMAT(LICN_ALL),JVECT(LIRN_ALL),STAT=IER)
+          CALL CHECK_STAT(IER,600)
+          IF (JSV==1) THEN
+            ALLOCATE (JMAT(NNZ),STAT=IER)
+            CALL CHECK_STAT(IER,610)
+            JMAT(1:NNZ) = ZERO
+          END IF
+          IF (MITER==7) THEN
+            JVECT(1:LENIGP) = IGP(1:LENIGP)
+            DEALLOCATE (IGP,STAT=IER)
+            CALL CHECK_STAT(IER,620)
+            ALLOCATE (IGP(LENIGP),STAT=IER)
+            CALL CHECK_STAT(IER,630)
+            IGP(1:LENIGP) = JVECT(1:LENIGP)
+          END IF
+        END IF
+        IF (SCALE_MATRIX) THEN
+           IF (ALLOCATED(CSCALEX)) THEN
+              DEALLOCATE (CSCALEX,RSCALEX,WSCALEX,STAT=IER)
+              CALL CHECK_STAT(IER,640)
+              ALLOCATE (CSCALEX(N),RSCALEX(N),WSCALEX(N,5),STAT=IER)
+              CALL CHECK_STAT(IER,650)
+           ELSE
+              ALLOCATE (CSCALEX(N),RSCALEX(N),WSCALEX(N,5),STAT=IER)
+              CALL CHECK_STAT(IER,660)
+           END IF
+        END IF
+        IF (LP /= 0) THEN
+           MSG = 'The final DVPRPEPS storage allocations are:'
+           CALL XERRDV(MSG,1510,1,0,0,0,0,ZERO,ZERO)
+           MSG = '   NZ_ALL (=I1):'
+           CALL XERRDV(MSG,1510,1,1,NZ_ALL,0,0,ZERO,ZERO)
+           MSG = '   LIRN_ALL (=I1) and LICN_ALL (=I2):'
+           CALL XERRDV(MSG,1510,1,2,LIRN_ALL,LICN_ALL,0,ZERO,ZERO)
+         END IF
+        RETURN
+
+      END SUBROUTINE DVPREPS
+!_______________________________________________________________________
+
+      SUBROUTINE DVRENEW(NEQ,Y,SAVF,EWT,F)
+! ..
+! In the event MA28BD encounters a zero pivot in the LU factorization
+! of the iteration matrix due to an out-of-date MA28AD pivot sequence,
+! re-calculate the sparsity structure using finite differences.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: NEQ
+! ..
+! .. Array Arguments ..
+        KPP_REAL, INTENT (INOUT) :: EWT(*), SAVF(*), Y(*)
+! ..
+! .. Subroutine Arguments ..
+        EXTERNAL F
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: DQ, DYJ, ERWT, FAC, YJ
+        INTEGER :: ADDTONZ, I, IER, J, K, KVAL, NP1
+        CHARACTER (80) :: MSG
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, ALLOCATED, MAX, SIGN
+! ..
+! .. FIRST EXECUTABLE STATEMENT DVRENEW
+! ..
+! .. Caution:
+!    This routine must not be called before DVPREPS has been called.
+!
+!    Note:
+!    On entry to DVRENEW, the allocated array sizes of arrays that
+!    may change size are:
+!      ICN, PMAT  = length LICN_ALL
+!      JAN, JVECT = length LIRN_ALL
+!      JMAT       = length NZ_ALL
+!      IGP        = length LENIGP on first entry; N+1 thereafter
+
+!       Check if a numerical Jacobian is being used and stop if
+!       it is not.
+        IF (MITER /= 7) THEN
+          MSG = 'DVRENEW can be used only if MITER = 7.'
+          CALL XERRDV(MSG,1520,2,0,0,0,0,ZERO,ZERO)
+        END IF
+
+!       Save Y and SAVF.
+        IF (.NOT.ALLOCATED(YTEMP)) THEN
+           ALLOCATE (YTEMP(N),DTEMP(N),STAT=IER)
+           CALL CHECK_STAT(IER,670)
+        END IF
+        YTEMP(1:N) = Y(1:N)
+        DTEMP(1:N) = SAVF(1:N)
+
+!       Define the amount to be added to the array lengths
+!       if necessary.
+        NP1 = N + 1
+        NNZ = IAN(NP1) - 1
+        ADDTONZ = ELBOW_ROOM * NNZ
+
+!       Just change the size of IGP to N+1 if have not already
+!       done so.
+        IF (SIZE(IGP) /= NP1) THEN
+           DEALLOCATE (IAN,STAT=IER)
+           CALL CHECK_STAT(IER,680)
+           ALLOCATE (IAN(NP1),STAT=IER)
+           CALL CHECK_STAT(IER,690)
+        END IF
+
+!       Go to the differencing section to determine the new
+!       sparsity structure.
+        GOTO 20
+
+10      CONTINUE
+
+!       Reallocate the arrays if necessary.
+        IF (KVAL > LIRN_ALL) THEN
+!          Note: JAN and JVECT may need to be reallocated in DVJACS28.
+           LIRN_ALL = LIRN_ALL + ADDTONZ
+           IF (LIRN_ALL>MAX_ARRAY_SIZE) THEN
+              MSG = 'Maximum array size exceeded. Stopping in DVRENEW.'
+             CALL XERRDV(MSG,1530,2,0,0,0,0,ZERO,ZERO)
+           END IF
+           DEALLOCATE (JAN,JVECT,STAT=IER)
+           CALL CHECK_STAT(IER,700)
+           ALLOCATE (JAN(LIRN_ALL),JVECT(LIRN_ALL),STAT=IER)
+           CALL CHECK_STAT(IER,710)
+        END IF
+        IF (KVAL > LICN_ALL) THEN
+!          Note: ICN and PMAT may need to be reallocated in DVJACS28.
+           LICN_ALL = LICN_ALL + ADDTONZ
+           IF (LICN_ALL>MAX_ARRAY_SIZE) THEN
+              MSG = 'Maximum array size exceeded. Stopping in DVRENEW.'
+             CALL XERRDV(MSG,1540,2,0,0,0,0,ZERO,ZERO)
+           END IF
+           DEALLOCATE (ICN,PMAT,STAT=IER)
+           CALL CHECK_STAT(IER,720)
+           ALLOCATE (ICN(LICN_ALL),PMAT(LICN_ALL),STAT=IER)
+           CALL CHECK_STAT(IER,730)
+        END IF
+
+   20   CONTINUE
+
+!       Perturb Y for structure determination:
+        DO I = 1, N
+          ERWT = ONE/EWT(I)
+          FAC = ONE + ONE/(I+ONE)
+          Y(I) = Y(I) + FAC*SIGN(ERWT,Y(I))
+        END DO
+
+!       Compute structure from results of N+1 calls to F.
+        K = 1
+        IAN(1) = 1
+        DO I = 1, N
+          ERWT = ONE/EWT(I)
+          FAC = ONE + ONE/(I+ONE)
+          Y(I) = Y(I) + FAC*SIGN(ERWT,Y(I))
+        END DO
+        CALL F(NEQ,TN,Y,SAVF)
+        NFE = NFE + 1
+        DO J = 1, N
+          KVAL = K
+          IF (KVAL > LIRN_ALL) THEN
+             IF (LP /= 0) THEN
+                MSG = 'LIRN_ALL (=I1) is not large enough.'
+                CALL XERRDV(MSG,1550,1,0,0,0,0,ZERO,ZERO)
+                MSG = 'Allocating more space for another try.'
+                CALL XERRDV(MSG,1550,1,1,LIRN_ALL,0,0,ZERO,ZERO)
+             END IF
+             GOTO 10
+          END IF
+          IF (KVAL > LICN_ALL) THEN
+             IF (LP /= 0) THEN
+                MSG = 'LICN_ALL (=I1) is not large enough.'
+                CALL XERRDV(MSG,1560,1,0,0,0,0,ZERO,ZERO)
+                MSG = 'Allocating more space for another try.'
+                CALL XERRDV(MSG,1560,1,1,LICN_ALL,0,0,ZERO,ZERO)
+             END IF
+             GOTO 10
+          END IF
+          YJ = Y(J)
+          ERWT = ONE/EWT(J)
+          DYJ = SIGN(ERWT,YJ)
+          Y(J) = YJ + DYJ
+          CALL F(NEQ,TN,Y,FTEMP1)
+          NFE = NFE + 1
+          Y(J) = YJ
+          DO 80 I = 1, N
+            DQ = (FTEMP1(I)-SAVF(I))/DYJ
+            IF ((ABS(DQ)<=SETH) .AND. (I/=J)) GOTO 80
+            JAN(K) = I
+            K = K + 1
+80        END DO
+          IAN(J+1) = K
+        END DO
+
+        NNZ = IAN(NP1) - 1
+        IF (NNZ > NZ_ALL .AND. JSV == 1) THEN
+!          Increase the size of JMAT if necessary.
+           NZ_ALL = NNZ
+           IF (LP /= 0) THEN
+              MSG = 'NZ_ALL (=I1) is not large enough.'
+              CALL XERRDV(MSG,1570,1,0,0,0,0,ZERO,ZERO)
+              MSG = 'Allocating more space for another try.'
+              CALL XERRDV(MSG,1570,1,1,NZ_ALL,0,0,ZERO,ZERO)
+           END IF
+           IF (NZ_ALL>MAX_ARRAY_SIZE) THEN
+              MSG = 'Maximum array size exceeded. Stopping in DVRENEW.'
+              CALL XERRDV(MSG,1580,2,0,0,0,0,ZERO,ZERO)
+           END IF
+           DEALLOCATE (JMAT,STAT=IER)
+           CALL CHECK_STAT(IER,740)
+           ALLOCATE (JMAT(NZ_ALL),STAT=IER)
+           CALL CHECK_STAT(IER,750)
+           JMAT(1:NZ_ALL) = ZERO
+        END IF
+
+!       Compute grouping of column indices.
+
+        LENIGP = 0
+        MAXG = 0
+        MAXG = NP1
+        CALL DGROUP(N,IAN,JAN,MAXG,NGP,IGP,JGP,IKEEP28(1,1), &
+          IKEEP28(1,2),IER)
+        IF (IER/=0) THEN
+          MSG = 'An error occurred in DGROUP.'
+          CALL XERRDV(MSG,1590,2,0,0,0,0,ZERO,ZERO)
+        END IF
+        LENIGP = NGP + 1
+
+!       Restore Y and SAVF.
+        Y(1:N) = YTEMP(1:N)
+        SAVF(1:N) = DTEMP(1:N)
+        RETURN
+
+      END SUBROUTINE DVRENEW
+!_______________________________________________________________________
+
+      SUBROUTINE DGROUP(N,IA,JA,MAXG,NGRP,IGP,JGP,INCL,JDONE,IER)
+! ..
+! Construct groupings of the column indices of the Jacobian matrix,
+! used in the numerical evaluation of the Jacobian by finite
+! differences for sparse solutions.
+! ..
+!     Input:
+!     N      = the order of the matrix
+!     IA,JA  = sparse structure descriptors of the matrix by rows
+!     MAXG   = length of available storage in the IGP array
+!     INCL and JDONE are working arrays of length N.
+!     Output:
+!     NGRP   = number of groups
+!     JGP    = array of length N containing the column indices by
+!              groups
+!     IGP    = pointer array of length NGRP + 1 to the locations
+!              in JGP of the beginning of each group
+!     IER    = error indicator. IER = 0 if no error occurred, or
+!              1 if MAXG was insufficient
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (INOUT) :: IER, NGRP
+        INTEGER, INTENT (IN) :: MAXG, N
+! ..
+! .. Array Arguments ..
+        INTEGER, INTENT (IN) :: IA(*), JA(*)
+        INTEGER, INTENT (INOUT) :: IGP(*), INCL(*), JDONE(*), JGP(*)
+! ..
+! .. Local Scalars ..
+        INTEGER :: I, J, K, KMAX, KMIN, NCOL, NG
+! ..
+! .. FIRST EXECUTABLE STATEMENT DGROUP
+! ..
+        IER = 0
+        JDONE(1:N) = 0
+        NCOL = 1
+        DO NG = 1, MAXG
+          IGP(NG) = NCOL
+          INCL(1:N) = 0
+          DO 20 J = 1, N
+!           Reject column J if it is already in a group.
+            IF (JDONE(J)==1) GOTO 20
+            KMIN = IA(J)
+            KMAX = IA(J+1) - 1
+            DO 10 K = KMIN, KMAX
+!           Reject column J if it overlaps any column already
+!           in this group.
+              I = JA(K)
+              IF (INCL(I)==1) GOTO 20
+10          END DO
+!           Accept column J into group NG.
+            JGP(NCOL) = J
+            NCOL = NCOL + 1
+            JDONE(J) = 1
+            DO K = KMIN, KMAX
+              I = JA(K)
+              INCL(I) = 1
+            END DO
+20        END DO
+!         Stop if this group is empty (grouping is complete).
+          IF (NCOL==IGP(NG)) GOTO 30
+        END DO
+!       Error return if not all columns were chosen (MAXG too small).
+        IF (NCOL<=N) GOTO 40
+        NG = MAXG
+30      NGRP = NG - 1
+        RETURN
+40      IER = 1
+        RETURN
+
+      END SUBROUTINE DGROUP
+!_______________________________________________________________________
+
+      SUBROUTINE BGROUP(N,BJA,BINCL,BDONE,ML,MU)
+! ..
+! Construct groupings of the column indices of the Jacobian
+! matrix, used in the numerical evaluation of the Jacobian
+! by finite differences for banded solutions when the nonzero
+! sub and super diagonals are known. BGROUP is similar to
+! DGROUP but it does not require the sparse structure arrays
+! and it uses real rather than integer work arrays.
+! ..
+!     Input:
+!
+!       N       = the order of the matrix (number of odes)
+!       BINCL   = real working array of length N
+!       BJA     = real working array of length N
+!       BDONE   = real working array of length N
+!       ML      = integer lower bandwidth
+!       MU      = integer upper bandwidth
+!
+!     Output: (PRIVATE information used in DVJAC)
+!
+!       BNGRP   = integer number of groups
+!       BJGP    = integer array of length N containing the
+!                 column indices by groups
+!       BIGP    = integer pointer array of length BNGRP + 1
+!                 to the locations in BJGP of the beginning
+!                 of each group
+!
+!       Note:
+!          On output:
+!             For I = 1, ..., BNGRP:
+!                Start of group I:
+!                  J = BIGP(I)
+!                Number of columns in group I:
+!                  K = BIGP(I+1) - BIGP(I)
+!                Columns in group I:
+!                  BJGP(J-1+L), L=1, ..., K
+!
+!    Note:
+!    The three arrays BJA, BINCL, and BDONE are REAL to avoid the
+!    necessity to allocate three new INTEGER arrays. BGROUP can
+!    be called only at an integration start or restart because
+!    DVODE_F90 work arrays are used for these arrays.
+!
+!    Note:
+!    The PRIVATE banded information SUBDS, NSUBDS, SUPDS, NSUPS,
+!    ML, and MU must be defined before calling BGROUP.
+!       ML        = lower bandwidth
+!       MU        = upper bandwidth
+!       NSUBS     = number of strict sub diagonals
+!       SUBDS(I)  = row in which the Ith sub diagonal
+!                   begins, I=1, ..., NSUBS
+!       NSUPS     = number of strict super diagonals
+!       SUPDS(I)  = column in which the Ith super diagonal
+!                   begins, I=1, ..., NSUPS
+! ..
+        IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: N, ML, MU
+! ..
+! .. Array Arguments ..
+        KPP_REAL, INTENT (INOUT) :: BINCL(*), BJA(*), BDONE(*)
+! ..
+! .. Local Scalars ..
+        INTEGER :: I, IBDONE, IBINCL, IER, J, K, KBEGIN, KFINI, &
+          KI, KJ, MAXG, NCOL, NG
+        KPP_REAL :: FUDGE, ONE_PLUS_FUDGE
+        CHARACTER (80) :: MSG
+! ..
+! .. Intrinsic Functions ..
+     INTRINSIC INT, MAX, MIN, REAL
+! ..
+! .. FIRST EXECUTABLE STATEMENT BGROUP
+! ..
+!       Storage for the column grouping information.
+        IF (ALLOCATED(BIGP)) THEN
+           DEALLOCATE (BIGP,BJGP,STAT=IER)
+           CALL CHECK_STAT(IER,760)
+        END IF
+        ALLOCATE (BIGP(N+1),BJGP(N),STAT=IER)
+        CALL CHECK_STAT(IER,770)
+
+        FUDGE = 0.4_dp
+        ONE_PLUS_FUDGE = 1.0_dp + FUDGE
+        MAXG = N + 1
+!       BDONE(1:N) = 0 ...
+        BDONE(1:N) = FUDGE
+        NCOL = 1
+        DO NG = 1, MAXG
+           BIGP(NG) = NCOL
+!          BINCL(1:N) = 0 ...
+           BINCL(1:N) = FUDGE
+           DO 30 J = 1, N
+!             Reject column J if it is already in a group.
+!             IF (BDONE(J) == 1) GOTO 30 ...
+              IBDONE = INT(BDONE(J))
+              IF (IBDONE == 1) GOTO 30
+!             Vertical extent of band = KBEGIN to KFINI.
+!             KJ = number of nonzeros in column J.
+!             BJA(K) = K implies nonzero at (k,j).
+              KBEGIN = MAX(J-MU,1)
+              KFINI = MIN(J+ML,N)
+              KJ = 0
+!             BJA(1:N) = 0 ...
+              BJA(1:N) = FUDGE
+!             Locate the row positions of the nonzeros in column J.
+!             Restrict attention to the band:
+              DO 10 K = KBEGIN, KFINI
+                 IF (K < J) THEN
+                    IF (NSUPS > 0) THEN
+                       DO I = NSUPS, 1, -1
+!                         KI = SUPDS(I) + J - 1
+                          KI = J + 1 - SUPDS(I)
+                          IF (K == KI) THEN
+                             KJ = KJ + 1
+!                            BJA(K) = K ...
+                             BJA(K) = REAL(K) + FUDGE
+                          END IF
+                       END DO
+                    END IF
+                 ELSEIF (K == J) THEN
+                    KJ = KJ + 1
+!                   BJA(K) = K ...
+                    BJA(K) = REAL(K) + FUDGE
+                 ELSE
+                    IF (NSUBS > 0) THEN
+                       DO I = NSUBS, 1, -1
+                          KI = SUBDS(I) + J -1
+                          IF (K == KI) THEN
+                             KJ = KJ + 1
+!                            BJA(K) = K ...
+                             BJA(K) = REAL(K) + FUDGE
+                          END IF
+                       END DO
+                    END IF
+              END IF
+ 10           CONTINUE
+!             At this point BJA contains the row numbers for
+!             the nonzeros in column J.
+              DO 20 K = KBEGIN, KFINI
+!                Reject column J if it overlaps any column
+!                already in this group.
+!                I = BJA(K)
+                 I = INT(BJA(K))
+                 IBINCL = INT(BINCL(I))
+!                IF (BINCL(I) == 1 .AND. I == K) GOTO 30
+                 IF (IBINCL == 1 .AND. I == K) GOTO 30
+ 20           END DO
+!             Accept column J into group NG.
+              BJGP(NCOL) = J
+              NCOL = NCOL + 1
+!             BDONE(J) = 1 ...
+              BDONE(J) = ONE_PLUS_FUDGE
+              DO K = 1, N
+!                IF (I == K) BINCL(I) = 1 ...
+                 I = INT(BJA(K))
+                 IF (I == K) BINCL(I) = ONE_PLUS_FUDGE
+              END DO
+ 30        END DO
+!          Done if this group is empty (grouping is complete).
+           IF (NCOL == BIGP(NG)) GOTO 40
+        END DO
+
+!       Should not get here since MAXG = N + 1.
+!       Terminal error if not all columns were chosen
+!       because MAXG too small.
+        IF (NCOL <= N) THEN
+           MSG = 'An impossible error occurred in subroutine BGROUP.'
+           CALL XERRDV(MSG,1600,2,0,0,0,0,ZERO,ZERO)
+        END IF
+
+        NG = MAXG
+ 40     BNGRP = NG - 1
+
+!       Trim BIGP to it's actual size if necessary.
+        IF (NG < MAXG) THEN
+!          BJA(1:NG) = BIGP(1:NG) ...
+           DO I = 1, NG
+              BJA(I) = REAL(BIGP(I)) + FUDGE
+           END DO
+           DEALLOCATE (BIGP,STAT=IER)
+           CALL CHECK_STAT(IER,780)
+           ALLOCATE (BIGP(NG),STAT=IER)
+           CALL CHECK_STAT(IER,790)
+!          BIGP(1:NG) = BJA(1:NG) ...
+           DO I = 1, NG
+              BIGP(I) = INT(BJA(I))
+           END DO
+        END IF
+        RETURN
+
+      END SUBROUTINE BGROUP
+!_______________________________________________________________________
+
+      SUBROUTINE BANDED_IAJA(N,ML,MU)
+! ..
+! Build the sparse structure descriptor arrays for a banded
+! matrix if the nonzero diagonals are known.
+! ..
+!     Input:
+!
+!       N       = the order of the matrix (number of odes)
+!       ML      = integer lower bandwidth
+!       MU      = integer upper bandwidth
+!
+!     Output: (PRIVATE information used in DVJAC)
+!
+!       IAB     = IA descriptor array
+!       JAB     = JA descriptor array
+!
+!    Note:
+!    The PRIVATE banded information SUBDS, NSUBS, SUPDS, NSUPS,
+!    ML, and MU must be defined before calling BANDED_IAJA.
+!       ML        = lower bandwidth
+!       MU        = upper bandwidth
+!       NSUBS     = number of strict sub diagonals
+!       SUBDS(I)  = row in which the Ith sub diagonal
+!                   begins, I=1, ..., NSUBS
+!       NSUPS     = number of strict super diagonals
+!       SUPDS(I)  = column in which the Ith super diagonal
+!                   begins, I=1, ..., NSUPS
+! ..
+        IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: N, ML, MU
+! ..
+! .. Local Scalars ..
+        INTEGER :: I, IER, J, K, KBEGIN, KFINI, KI, KJ, &
+          NP1, NZBB
+        CHARACTER (80) :: MSG
+! ..
+! .. Intrinsic Functions ..
+     INTRINSIC ALLOCATED, MAX, MIN
+! ..
+! .. FIRST EXECUTABLE STATEMENT BANDED_IAJA
+! ..
+!    Check for errors.
+
+     IF (.NOT.BUILD_IAJA) THEN
+        MSG = 'BANDED_IAJA cannot be called with BUILD_IAJA = .FALSE.'
+        CALL XERRDV(MSG,1610,2,0,0,0,0,ZERO,ZERO)
+     END IF
+
+     IF (NSUBS < 0) THEN
+        MSG = 'NSUBS < 0 in BANDED_IAJA.'
+        CALL XERRDV(MSG,1620,2,0,0,0,0,ZERO,ZERO)
+     ELSE
+        IF (NSUBS > 0) THEN
+           IF (NSUBS /= SIZE(SUBDS)) THEN
+              MSG = 'The size of the SUBDS array must'
+              CALL XERRDV(MSG,1630,1,0,0,0,0,ZERO,ZERO)
+              MSG = 'equal NSUBS in BANDED_IAJA.'
+              CALL XERRDV(MSG,1630,2,0,0,0,0,ZERO,ZERO)
+           END IF
+        END IF
+     END IF
+
+     IF (NSUPS < 0) THEN
+        MSG = 'NSUPS < 0 in BANDED_IAJA.'
+        CALL XERRDV(MSG,1640,2,0,0,0,0,ZERO,ZERO)
+     ELSE
+        IF (NSUPS > 0) THEN
+           IF (NSUPS /= SIZE(SUPDS)) THEN
+              MSG = 'The size of the SUPDS array must'
+              CALL XERRDV(MSG,1650,1,0,0,0,0,ZERO,ZERO)
+              MSG = 'equal NSUPS in BANDED_IAJA.'
+              CALL XERRDV(MSG,1650,2,0,0,0,0,ZERO,ZERO)
+           END IF
+        END IF
+     END IF
+
+!    Allocate the necessary storage for the descriptor arrays.
+
+!    Define the total number of elements in all diagonals.
+     NP1 = N + 1
+     NZB = (NSUBS + NSUPS + 1) * NP1 - 1
+     IF (NSUBS /= 0) THEN
+        DO I = 1, NSUBS
+           NZB = NZB - SUBDS(I)
+        END DO
+     END IF
+     IF (NSUPS /= 0) THEN
+        DO I = 1, NSUPS
+           NZB = NZB - SUPDS(I)
+        END DO
+     END IF
+     IF (ALLOCATED(IAB)) THEN
+        DEALLOCATE(IAB,JAB,STAT=IER)
+        CALL CHECK_STAT(IER,800)
+     END IF
+     ALLOCATE(IAB(NP1),JAB(NZB),STAT=IER)
+     CALL CHECK_STAT(IER,810)
+     IAB(1) = 1
+     NZBB = 0
+
+!    For each column in the matrix...
+     DO J = 1, N
+!       Vertical extent of band = KBEGIN to KFINI.
+!       KJ = number of nonzeros in column J.
+        KBEGIN = MAX(J-MU,1)
+        KFINI = MIN(J+ML,N)
+        KJ = 0
+!       Locate the row positions of the nonzeros in column J.
+!       (Restrict attention to the band.)
+        IAB(J+1) = IAB(J)
+!       For each row in the intersection of the band with
+!       this column ...
+        DO K = KBEGIN, KFINI
+!          Does column J intersect a super diagonal at (K,J)?
+           IF (K < J) THEN
+              DO I = NSUPS, 1, -1
+                 KI = J + 1 - SUPDS(I)
+                 IF (K == KI) THEN
+                    KJ = KJ + 1
+                    IAB(J+1) = IAB(J+1) + 1
+                    NZBB = NZBB + 1
+                    JAB(NZBB) = K
+                    GOTO 10
+                 END IF
+              END DO
+           ELSEIF (K == J) THEN
+!             We are on the main diagonal.
+              KJ = KJ + 1
+              IAB(J+1) = IAB(J+1) + 1
+              NZBB = NZBB + 1
+              JAB(NZBB) = K
+              GOTO 10
+           ELSE
+!             Does column J intersect a sub diagonal at (K,J)?
+              DO I = NSUBS, 1, -1
+                 KI = SUBDS(I) + J - 1
+                 IF (K == KI) THEN
+                    KJ = KJ + 1
+                    IAB(J+1) = IAB(J+1) + 1
+                    NZBB = NZBB + 1
+                    JAB(NZBB) = K
+                    GOTO 10
+                 END IF
+              END DO
+           END IF
+10         CONTINUE
+        END DO
+     END DO
+
+     IF (NZBB /= NZB) THEN
+        MSG = 'NZBB (I1) is not equal to NZB (I2)'
+        CALL XERRDV(MSG,1660,1,0,0,0,0,ZERO,ZERO)
+        MSG = 'in BANDED_IAJA.'
+        CALL XERRDV(MSG,1660,2,2,NZBB,NZB,0,ZERO,ZERO)
+     END IF
+     RETURN
+
+   END SUBROUTINE BANDED_IAJA
+!_______________________________________________________________________
+
+      SUBROUTINE BANDED_GET_BJNZ(N,ML,MU,JCOL,JNZ,NZJ)
+! ..
+! Locate the nonzeros in a given column of a sparse banded matrix
+! with known diagonals. This is a version of BANDED_IAJA modified
+! to do only one column.
+! ..
+!     Input:
+!
+!       N       = the order of the matrix (number of odes)
+!       ML      = integer lower bandwidth
+!       MU      = integer upper bandwidth
+!       JCOL    = column number between 1 and N
+!       JZ      = integer array of length N
+!
+!     Output:
+!
+!       JNZ    = integer array of length N. If
+!                 JNZ(K) is not 0, there is a
+!                 nonzero at position (K,JCOL)
+!       NZJ     = number of nozeros in column JCOL
+!
+!    Caution:
+!    No parameter checking is done since this subroutine
+!    will be called many times. Note that a number of
+!    PRIVATE parameters must be set before calling this
+!    subroutine.
+! ..
+        IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: N, ML, MU, JCOL
+        INTEGER, INTENT (OUT) :: NZJ
+! ..
+! .. Array Arguments ..
+        INTEGER, INTENT (OUT) :: JNZ(*)
+! ..
+! .. Local Scalars ..
+        INTEGER :: I, J, K, KBEGIN, KFINI, KI, KJ
+! ..
+! .. Intrinsic Functions ..
+     INTRINSIC MAX, MIN
+! ..
+! .. FIRST EXECUTABLE STATEMENT BANDED_GET_BJNZ
+! ..
+        JNZ(1:N) = 0
+        J = JCOL
+
+!       Locate the row positions of the nonzeros in column J.
+
+!       Vertical extent of band = KBEGIN to KFINI.
+        KBEGIN = MAX(J-MU,1)
+        KFINI = MIN(J+ML,N)
+!       KJ = number of nonzeros in column J.
+        KJ = 0
+!       For each row in the intersection of the band with
+!       this column ...
+        DO K = KBEGIN, KFINI
+!          Does column J intersect a super diagonal at (K,J)?
+           IF (K < J) THEN
+              DO I = NSUPS, 1, -1
+                 KI = J + 1 - SUPDS(I)
+                 IF (K == KI) THEN
+                    KJ = KJ + 1
+                    JNZ(KJ) = K
+                    GOTO 10
+                 END IF
+              END DO
+           ELSEIF (K == J) THEN
+!             We are on the main diagonal.
+              KJ = KJ + 1
+              JNZ(KJ) = K
+              GOTO 10
+           ELSE
+!             Does column J intersect a sub diagonal at (K,J)?
+              DO I = NSUBS, 1, -1
+                 KI = SUBDS(I) + J - 1
+                 IF (K == KI) THEN
+                    KJ = KJ + 1
+                    JNZ(KJ) = K
+                    GOTO 10
+                 END IF
+              END DO
+           END IF
+10         CONTINUE
+        END DO
+        NZJ = KJ
+     RETURN
+
+   END SUBROUTINE BANDED_GET_BJNZ
+!_______________________________________________________________________
+
+! Beginning of Jacobian related routines that use MA28
+
+      SUBROUTINE DVNLSS28(Y,YH,LDYH,SAVF,EWT,ACOR,IWM,WM,F,JAC, &
+        NFLAG,ATOL,ITOL)
+! ..
+! This is the nonlinear system solver for MA28 based sparse solutions.
+! ..
+! Subroutine DVNLSS28 is a nonlinear system solver, which uses functional
+! iteration or a chord (modified Newton) method. For the chord method
+! direct linear algebraic system solvers are used. Subroutine DVNLSS28
+! then handles the corrector phase of this integration package.
+! Communication with DVNLSS28 is done with the following variables. (For
+! more details, please see the comments in the driver subroutine.)
+! Y          = The dependent variable, a vector of length N, input.
+! YH         = The Nordsieck (Taylor) array, LDYH by LMAX, input
+!              and output. On input, it contains predicted values.
+! LDYH       = A constant >= N, the first dimension of YH, input.
+! SAVF       = A work array of length N.
+! EWT        = An error weight vector of length N, input.
+! ACOR       = A work array of length N, used for the accumulated
+!              corrections to the predicted y vector.
+! WM,IWM     = Real and integer work arrays associated with matrix
+!              operations in chord iteration (MITER /= 0).
+! F          = Dummy name for user supplied routine for f.
+! JAC        = Dummy name for user supplied Jacobian routine.
+! NFLAG      = Input/output flag, with values and meanings as follows:
+!              INPUT
+!                  0 first call for this time step.
+!                 -1 convergence failure in previous call to DVNLSS28.
+!                 -2 error test failure in DVSTEP.
+!              OUTPUT
+!                  0 successful completion of nonlinear solver.
+!                 -1 convergence failure or singular matrix.
+!                 -2 unrecoverable error in matrix preprocessing
+!                    (cannot occur here).
+!                 -3 unrecoverable error in solution (cannot occur
+!                    here).
+! IPUP       = Own variable flag with values and meanings as follows:
+!              0,          do not update the Newton matrix.
+!              MITER \= 0  update Newton matrix, because it is the
+!                          initial step, order was changed, the error
+!                          test failed, or an update is indicated by
+!                          the scalar RC or step counter NST.
+! For more details, see comments in driver subroutine.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: ITOL, LDYH
+        INTEGER, INTENT (INOUT) :: NFLAG
+! ..
+! .. Array Arguments ..
+        KPP_REAL, INTENT (INOUT) :: ACOR(*), EWT(*), SAVF(*), &
+          WM(*), Y(*), YH(LDYH,*)
+        KPP_REAL, INTENT (IN) :: ATOL(*)
+        INTEGER IWM(*)
+        LOGICAL DUMMY
+! ..
+! .. Subroutine Arguments ..
+        EXTERNAL F, JAC
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: ACNRMNEW, CSCALE, DCON, DEL, DELP
+        INTEGER :: I, IERPJ, IERSL, M
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, MAX, MIN
+! ..
+! .. FIRST EXECUTABLE STATEMENT DVNLSS28
+! ..
+! Get rid of a couple of needless compiler warning messages.
+        DUMMY = .FALSE.
+        IF (DUMMY) THEN
+          WM(1) = ZERO
+          IWM(1) = 0
+        END IF  
+! On the first step, on a change of method order, or after a
+! nonlinear convergence failure with NFLAG = -2, set IPUP = MITER
+! to force a Jacobian update when MITER /= 0.
+        IF (JSTART==0) NSLP = 0
+        IF (NFLAG==0) ICF = 0
+        IF (NFLAG==-2) IPUP = MITER
+        IF ((JSTART==0) .OR. (JSTART==-1)) IPUP = MITER
+!       If this is functional iteration, set CRATE = 1 and drop
+!       to 220.
+        IF (MITER==0) THEN
+          CRATE = ONE
+          GOTO 10
+        END IF
+
+! RC is the ratio of new to old values of the coefficient H/EL(2)=h/l1.
+! When RC differs from 1 by more than CCMAX, IPUP is set to MITER
+! to force DVJACS28 to be called, if a Jacobian is involved. In any
+! case, DVJACS28 is called at least every MSBP steps.
+
+        DRC = ABS(RC-ONE)
+        IF (DRC>CCMAX .OR. NST>=NSLP+MSBP) IPUP = MITER
+
+! Up to MAXCOR corrector iterations are taken. A convergence test is
+! made on the r.m.s. norm of each correction, weighted by the error
+! weight vector EWT. The sum of the corrections is accumulated in the
+! vector ACOR(i). The YH array is not altered in the corrector loop.
+
+10      M = 0
+        DELP = ZERO
+! Original:
+!       CALL DCOPY_F90(N,YH(1,1),1,Y,1)
+        CALL DCOPY_F90(N,YH(1:N,1),1,Y(1:N),1)
+        CALL F(N,TN,Y,SAVF)
+        NFE = NFE + 1
+        IF (BOUNDS) THEN
+          DO I = 1, NDX
+            IF (ABS(YH(IDX(I),1)-LB(I))<=ZERO) SAVF(IDX(I)) = &
+              MAX(SAVF(IDX(I)),ZERO)
+            IF (ABS(YH(IDX(I),1)-UB(I))<=ZERO) SAVF(IDX(I)) = &
+              MIN(SAVF(IDX(I)),ZERO)
+          END DO
+        END IF
+        IF (IPUP<=0) GOTO 20
+
+! If indicated, the matrix P = I - h*rl1*J is reevaluated and
+! preprocessed before starting the corrector iteration. IPUP
+! is set to 0 as an indicator that this has been done.
+
+        CALL DVJACS28(Y,YH,LDYH,EWT,ACOR,SAVF,F,JAC,IERPJ,N, &
+          ATOL,ITOL)
+        IPUP = 0
+        RC = ONE
+        DRC = ZERO
+        CRATE = ONE
+        NSLP = NST
+!     If matrix is singular, take error return to force cut in
+!     step size.
+        IF (IERPJ/=0) GOTO 70
+20      ACOR(1:N) = ZERO
+!       This is a looping point for the corrector iteration.
+30      IF (MITER/=0) GOTO 40
+
+! In the case of functional iteration, update Y directly from
+! the result of the last function evaluation.
+
+        SAVF(1:N) = RL1*(H*SAVF(1:N)-YH(1:N,2))
+        Y(1:N) = SAVF(1:N) - ACOR(1:N)
+        DEL = DVNORM(N,Y,EWT)
+        Y(1:N) = YH(1:N,1) + SAVF(1:N)
+        CALL DCOPY_F90(N,SAVF,1,ACOR,1)
+        GOTO 50
+
+! In the case of the chord method, compute the corrector error,
+! and solve the linear system with that as right-hand side and
+! P as coefficient matrix. The correction is scaled by the factor
+! 2/(1+RC) to account for changes in h*rl1 since the last
+! DVJACS28 call.
+
+40      Y(1:N) = (RL1*H)*SAVF(1:N) - (RL1*YH(1:N,2)+ACOR(1:N))
+        CALL DVSOLS28(Y,SAVF,IERSL)
+        NNI = NNI + 1
+        IF (IERSL>0) GOTO 60
+        IF (METH==2 .AND. ABS(RC-ONE)>ZERO) THEN
+          CSCALE = TWO/(ONE+RC)
+          CALL DSCAL_F90(N,CSCALE,Y,1)
+        END IF
+        DEL = DVNORM(N,Y,EWT)
+        CALL DAXPY_F90(N,ONE,Y,1,ACOR,1)
+        Y(1:N) = YH(1:N,1) + ACOR(1:N)
+
+! Test for convergence. If M > 0, an estimate of the convergence
+! rate constant is stored in CRATE, and this is used in the test.
+
+50      IF (M/=0) CRATE = MAX(CRDOWN*CRATE,DEL/DELP)
+        DCON = DEL*MIN(ONE,CRATE)/TQ(4)
+        IF (DCON<=ONE) GOTO 80
+        M = M + 1
+        IF (M==MAXCOR) GOTO 60
+        IF (M>=2 .AND. DEL>RDIV*DELP) GOTO 60
+        DELP = DEL
+        CALL F(N,TN,Y,SAVF)
+        NFE = NFE + 1
+        IF (BOUNDS) THEN
+          DO I = 1, NDX
+            IF (ABS(YH(IDX(I),1)-LB(I))<=ZERO) SAVF(IDX(I)) = &
+              MAX(SAVF(I),ZERO)
+            IF (ABS(YH(IDX(I),1)-UB(I))<=ZERO) SAVF(IDX(I)) = &
+              MIN(SAVF(I),ZERO)
+          END DO
+        END IF
+        GOTO 30
+
+60      IF (MITER==0 .OR. JCUR==1) GOTO 70
+        ICF = 1
+        IPUP = MITER
+        GOTO 10
+
+70      CONTINUE
+        NFLAG = -1
+        ICF = 2
+        IPUP = MITER
+        RETURN
+
+!       Return for successful step.
+80      NFLAG = 0
+
+!       Enforce bounds.
+        IF (BOUNDS) THEN
+          CHANGED_ACOR = .FALSE.
+          IF (M==0) THEN
+            ACNRM = DEL
+          ELSE
+            ACNRM = DVNORM(N,ACOR,EWT)
+          END IF
+          IF (MITER/=0) THEN
+!           Since Y(:) = YH(:,1) + ACOR(:):
+            DO I = 1, NDX
+              IF (Y(IDX(I))<LB(I)) THEN
+                CHANGED_ACOR = .TRUE.
+                ACOR(IDX(I)) = LB(I) - YH(IDX(I),1)
+                SAVF(IDX(I)) = ACOR(IDX(I))
+              END IF
+              IF (Y(IDX(I))>UB(I)) THEN
+                CHANGED_ACOR = .TRUE.
+                ACOR(IDX(I)) = UB(I) - YH(IDX(I),1)
+                SAVF(IDX(I)) = ACOR(IDX(I))
+              END IF
+            END DO
+          ELSE
+!           Since Y(:) = YH(:,1) + SAVF(:) and
+!           since CALL DCOPY_F90(N, SAVF, 1, ACOR, 1) ...
+            DO I = 1, NDX
+              IF (Y(IDX(I))<LB(IDX(I))) THEN
+                CHANGED_ACOR = .TRUE.
+                ACOR(IDX(I)) = LB(I) - YH(IDX(I),1)
+              END IF
+              IF (Y(IDX(I))>UB(IDX(I))) THEN
+                CHANGED_ACOR = .TRUE.
+                ACOR(IDX(I)) = UB(I) - YH(IDX(I),1)
+              END IF
+            END DO
+          END IF
+          IF (CHANGED_ACOR) THEN
+            IF (M==0) THEN
+              ACNRMNEW = DEL
+            ELSE
+              ACNRMNEW = DVNORM(N,ACOR,EWT)
+            END IF
+            ACNRM = MAX(ACNRM,ACNRMNEW)
+          ELSE
+          END IF
+          NFLAG = 0
+          JCUR = 0
+          ICF = 0
+        ELSE
+!         No projections are required.
+          NFLAG = 0
+          JCUR = 0
+          ICF = 0
+          IF (M==0) ACNRM = DEL
+          IF (M>0) ACNRM = DVNORM(N,ACOR,EWT)
+        END IF
+        RETURN
+
+      END SUBROUTINE DVNLSS28
+!_______________________________________________________________________
+
+      SUBROUTINE DVSOLS28(X,TEM,IERSL)
+! ..
+! Manage the solution of the MA28 based sparse linear system arising
+! from a chord iteration.
+! ..
+! This routine solves the sparse linear system arising from a chord
+! iteration. If MITER is 6 or 7, it calls MA28CD to accomplish this.
+! Communication with DVSOLS28 uses the following variables:
+! X = The right-hand side vector on input, and the solution vector
+!     on output, of length N.
+! TEM (=SAVF(*))
+! IERSL = Output flag. IERSL = 0 if no trouble occurred.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (INOUT) :: IERSL
+! ..
+! .. Array Arguments ..
+        KPP_REAL, INTENT (INOUT) :: TEM(*), X(*)
+! ..
+! .. Local Scalars ..
+        INTEGER :: I
+! ..
+! .. FIRST EXECUTABLE STATEMENT DVSOLS28
+! ..
+        IF (SCALE_MATRIX) THEN
+           DO I = 1, N
+              X(I) = X(I) * RSCALEX(I)
+           END DO
+        END IF
+        IERSL = 0
+        CALL MA28CD(N,PMAT,LICN_ALL,ICN,IKEEP28,X,TEM,1)
+        MA28CD_CALLS = MA28CD_CALLS + 1
+        IF (SCALE_MATRIX) THEN
+           DO I = 1, N
+              X(I) = X(I) * CSCALEX(I)
+           END DO
+        END IF
+        RETURN
+
+      END SUBROUTINE DVSOLS28
+!_______________________________________________________________________
+
+      SUBROUTINE DVJACS28(Y,YH,LDYH,EWT,FTEMP1,SAVF,F,JAC,IERPJ,N, &
+        ATOL,ITOL)
+! ..
+! Compute and process P = I - H*RL1*J, where J is an approximation to
+! the MA28 based sparse Jacobian.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (INOUT) :: IERPJ
+        INTEGER, INTENT (IN) :: LDYH, N, ITOL
+! ..
+! .. Array Arguments ..
+        KPP_REAL, INTENT (INOUT) :: EWT(*), FTEMP1(*), SAVF(*), Y(*), YH(LDYH,*)
+        KPP_REAL, INTENT (IN) :: ATOL(*)
+! ..
+! .. Subroutine Arguments ..
+        EXTERNAL F, JAC
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: CON, FAC, HRL1, R, R0, SRUR
+        INTEGER :: I, IER, J, JER, JJ, JJ1, JJ2, K, K1, K2, MA28,       &
+          MA28SAVE, MB28SAVE, NG, NZ
+        CHARACTER (80) :: MSG
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, EXP, MAX, REAL
+! ..
+! .. FIRST EXECUTABLE STATEMENT DVJACS28
+! ..
+        IERPJ = 0
+
+!       Structure determination
+
+!       Calculate the sparsity structure if this is the first call to
+!       DVJACS28 with ISTATE = 1 or if it is a continuation call with
+!       ISTATE = 3.
+        IF (ISTATC==1 .OR. ISTATC==3) THEN
+          CALL DVPREPS(N,Y,YH,LDYH,DTEMP,EWT,F,JAC)
+          ISTATC = 0
+        END IF
+        JCUR = 0
+        HRL1 = H*RL1
+        CON = -HRL1
+
+!       If MA28 = 4 the saved copy of the Jacobian will be used
+!       to restore PMAT. If MA28 = 1,2,3 the Jacobian will be
+!       recomputed. If MA28 = 1,2 the JVECT and ICN pointer arrays
+!       will be defined and MA28AD will be called to decompose
+!       PMAT. If MA28 = 3 the JVECT pointer array will be defined
+!       and MA28BD will be called to decompose PMAT using the ICN
+!       pointer array returned in the last call to MA28AD.
+
+        MA28 = 4
+        IF (INEWJ==1 .OR. MB28==0) MA28 = 3
+        IF (NST>=NSLJ+MSBJ) MA28 = 3
+!       IF (ICF==1 .OR. ICF==2) MA28 = 3
+        IF (ICF==1 .AND. DRC<CCMXJ) MA28 = 3
+        IF (ICF==2) MA28 = 3
+        IF (NST>=NSLG+MSBG) MA28 = 2
+        IF (JSTART==0 .OR. JSTART==-1) MA28 = 1
+        JSTART = 1
+10      IF (MA28<=2) NSLG = NST
+        IF (MA28<=3) NSLJ = NST
+
+!       Analytical Sparse Jacobian
+
+!       If MITER = 6, call JAC to evaluate J analytically, multiply
+!       J by CON = -H*EL(1), and add the identity matrix to form P.
+        IF (MITER==6) THEN
+          IF (MA28==4) THEN
+!           Reuse the saved Jacobian.
+            NZ = IAN(N+1) - 1
+            PMAT(1:NZ) = CON*JMAT(1:NZ)
+            DO K = 1, NZ
+              IF (JAN(K)==JVECT(K)) PMAT(K) = PMAT(K) + ONE
+            END DO
+            GOTO 90
+          END IF
+          JCUR = 1
+          NJE = NJE + 1
+          IF (MA28==1 .OR. MA28==2) THEN
+            NZ = IAN(N+1) - 1
+            CALL JAC(N,TN,Y,IAN,JAN,NZ,PMAT)
+            NZ = IAN(N+1) - 1
+            IF (NZ>NZ_ALL) THEN
+              MSG = 'DVODE_F90-- NZ > NZ_ALL in DVJACS28.'
+              CALL XERRDV(MSG,1670,2,0,0,0,0,ZERO,ZERO)
+            END IF
+!           Define column pointers for MA28AD.
+            CALL SET_ICN(N,IAN,ICN)
+            CALL CHECK_DIAG(N,IAN,JAN,ICN)
+            PMAT(1:NZ) = CON*PMAT(1:NZ)
+            DO K = 1, NZ
+              IF (JAN(K)==ICN(K)) PMAT(K) = PMAT(K) + ONE
+            END DO
+            GOTO 80
+          ELSE
+!           MA28 = 3...
+            NZ = IAN(N+1) - 1
+            CALL JAC(N,TN,Y,IAN,JAN,NZ,PMAT)
+            NZ = IAN(N+1) - 1
+            IF (NZ>NZ_ALL) THEN
+              MSG = 'DVODE_F90-- NZ > NZ_ALL in DVJACS28.'
+              CALL XERRDV(MSG,1680,2,0,0,0,0,ZERO,ZERO)
+            END IF
+!           Define column pointers for MA28AD.
+            CALL SET_ICN(N,IAN,JVECT)
+            CALL CHECK_DIAG(N,IAN,JAN,JVECT)
+            IF (INEWJ/=1) JMAT(1:NZ) = PMAT(1:NZ)
+            PMAT(1:NZ) = CON*PMAT(1:NZ)
+            DO K = 1, NZ
+              IF (JAN(K)==JVECT(K)) PMAT(K) = PMAT(K) + ONE
+            END DO
+            GOTO 90
+          END IF
+        END IF
+
+!       Finite Difference Sparse Jacobian
+
+!       If MITER = 7, evaluate J numerically, multiply J by
+!       CON, and add the identity matrix to form P.
+        IF (MITER==7) THEN
+          IF (MA28==4) THEN
+!           Reuse the saved constant Jacobian.
+            NZ = IAN(N+1) - 1
+            PMAT(1:NZ) = CON*JMAT(1:NZ)
+            DO J = 1, N
+              K1 = IAN(J)
+              K2 = IAN(J+1) - 1
+              DO K = K1, K2
+                I = JAN(K)
+                IF (I==J) PMAT(K) = PMAT(K) + ONE
+              END DO
+            END DO
+            GOTO 90
+          ELSE
+            NZ = IAN(N+1) - 1
+            JCUR = 1
+            IF (.NOT.(J_IS_CONSTANT.AND.J_HAS_BEEN_COMPUTED)) THEN
+               IF (USE_JACSP) THEN
+!                 Approximate the Jacobian using Doug Salane's JACSP.
+!                 The JPNTRDS and INDROWDS pointer arrays were defined
+!                 in DVPREPS (and altered in DSM).
+                  IOPTDS(1) = 2
+                  IOPTDS(2) = 0
+                  IOPTDS(3) = 1
+                  IOPTDS(5) = 0
+!                 INFORDS(4) was initialized in DVPREPS (and altered in
+!                 the first call to JACSP).
+                  LWKDS  = 3 * N
+                  LIWKDS = 50 + N
+                  NRFJACDS = NZ
+                  NCFJACDS = 1
+
+!                 Set flag to indicate how the YSCALE vector will be
+!                 set for JACSP.
+                  LIKE_ORIGINAL_VODE = .FALSE.
+!                 Calculate the YSCALEDS vector for JACSPDV.
+                  IF (LIKE_ORIGINAL_VODE) THEN
+                     FAC = DVNORM(N,SAVF,EWT)
+!                    JACSPDB multiplies YSCALEDS(*) BY UROUND**0.825:
+!                    R0 = THOU*ABS(H)*UROUND*REAL(N)*FAC
+                     R0 = THOU*ABS(H)*REAL(N)*FAC
+                     IF (ABS(R0)<=ZERO) R0 = ONE
+!                    SRUR = WM1
+                     DO J = 1, N
+!                       JACSPDB multiplies YSCALEDS(*) BY UROUND**0.825:
+!                       R = MAX(ABS(Y(J)),R0/EWT(J))
+                        R = MAX(ABS(Y(J))/U325,(R0/EWT(J))*U125)
+                        YSCALEDS(J) = R
+                     END DO
+                  ELSE
+                     IF (ITOL == 1 .OR. ITOL == 3) THEN
+                        DO J = 1, N
+                           YSCALEDS(J) = MAX(ABS(Y(J)),ATOL(1),UROUND)
+                        END DO
+                     ELSE
+                        DO J = 1, N
+                          YSCALEDS(J) = MAX(ABS(Y(J)),ATOL(J),UROUND)
+                        END DO
+                     END IF
+                  END IF
+
+                  CALL JACSPDB(F,N,TN,Y,SAVF,PMAT(1),NRFJACDS, &
+                    YSCALEDS,FACDS,IOPTDS,WKDS,LWKDS,IWKDS,LIWKDS, &
+                    MAXGRPDS,NGRPDS,JPNTRDS,INDROWDS)
+                  NFE = NFE + IWKDS(7)
+                  NJE = NJE + 1
+
+                  DO NG = 1, MAXGRPDS
+                    JJ1 = IGP(NG)
+                    JJ2 = IGP(NG+1) - 1
+                    DO JJ = JJ1, JJ2
+                      J = JGP(JJ)
+                      K1 = IAN(J)
+                      K2 = IAN(J+1) - 1
+                      DO K = K1, K2
+                        I = JAN(K)
+                        GOTO (17,17,18) MA28
+!                       Define the row pointers for MA28AD.
+17                      JVECT(K) = I
+!                       Define the column pointers for MA28AD.
+                        ICN(K) = J
+                        GOTO 19
+!                       Define the column pointers for MA28AD.
+18                      JVECT(K) = J
+19                      CONTINUE
+                        IF (INEWJ==0) JMAT(K) = PMAT(K)
+                        PMAT(K) = CON*PMAT(K)
+                        IF (I==J) PMAT(K) = PMAT(K) + ONE
+                      END DO
+                    END DO
+                  END DO
+                  NFE = NFE + MAXGRPDS
+               ELSE
+                  FAC = DVNORM(N,SAVF,EWT)
+                  R0 = THOU*ABS(H)*UROUND*REAL(N)*FAC
+                  IF (ABS(R0)<=ZERO) R0 = ONE
+                  SRUR = WM1
+                  DO NG = 1, NGP
+                    JJ1 = IGP(NG)
+                    JJ2 = IGP(NG+1) - 1
+                    DO JJ = JJ1, JJ2
+                      J = JGP(JJ)
+                      R = MAX(SRUR*ABS(Y(J)),R0/EWT(J))
+                      Y(J) = Y(J) + R
+                    END DO
+                    CALL F(N,TN,Y,FTEMP1)
+                    NFE = NFE + 1
+                    DO JJ = JJ1, JJ2
+                      J = JGP(JJ)
+                      Y(J) = YH(J,1)
+                      R = MAX(SRUR*ABS(Y(J)),R0/EWT(J))
+                      FAC = ONE / R
+                      K1 = IAN(J)
+                      K2 = IAN(J+1) - 1
+                      DO K = K1, K2
+                        I = JAN(K)
+                        GOTO (20,20,30) MA28
+!                       Define row pointers for MA28AD.
+20                      JVECT(K) = I
+!                       Define column pointers for MA28AD.
+                        ICN(K) = J
+                        GOTO 40
+!                       Define column pointers for MA28AD.
+30                      JVECT(K) = J
+40                      PMAT(K) = (FTEMP1(I)-SAVF(I)) * FAC
+                        IF (INEWJ==0) JMAT(K) = PMAT(K)
+                        PMAT(K) = CON*PMAT(K)
+                        IF (I==J) PMAT(K) = PMAT(K) + ONE
+                      END DO
+                    END DO
+                  END DO
+                  NFE = NFE + NGP
+                  NJE = NJE + 1
+               END IF
+               IF (J_IS_CONSTANT) J_HAS_BEEN_COMPUTED = .TRUE.
+            ELSE
+!              Do not recompute the constant Jacobian.
+!              Reuse the saved Jacobian.
+               NZ = IAN(N+1) - 1
+               PMAT(1:NZ) = CON*JMAT(1:NZ)
+               DO J = 1, N
+                 K1 = IAN(J)
+                 K2 = IAN(J+1) - 1
+                 DO K = K1, K2
+                   I = JAN(K)
+                   IF (I==J) PMAT(K) = PMAT(K) + ONE
+                   GOTO (50,50,60) MA28
+!                  Define row pointers for MA28AD.
+50                 JVECT(K) = I
+!                  Define column pointers for MA28AD.
+                   ICN(K) = J
+                   GOTO 70
+!                  Define column pointers for MA28AD.
+60                 JVECT(K) = J
+70                 CONTINUE
+                 END DO
+               END DO
+            END IF
+            GOTO (80,80,90) MA28
+          END IF
+        END IF
+
+!       MA28AD does an LU factorization based on a pivotal strategy
+!       designed to compromise between maintaining sparsity and
+!       controlling loss of accuracy due to roundoff error. Unless
+!       magnitudes of Jacobian elements change so as to invalidate
+!       choice of pivots, MA28AD need only be called at beginning
+!       of the integration.
+
+80      CONTINUE
+        IF (SCALE_MATRIX) THEN
+!          MA19AD computes scaling factors for the iteration matrix.
+           CALL MC19AD(N,NZ,PMAT,JAN,ICN,RSCALEX,CSCALEX,WSCALEX)
+           MC19AD_CALLS = MC19AD_CALLS + 1
+           DO I =1, N
+              RSCALEX(I) = EXP(RSCALEX(I))
+              CSCALEX(I) = EXP(CSCALEX(I))
+           END DO
+           DO K = 1, NZ
+              I = JAN(K)
+              J = ICN(K)
+              PMAT(K) = PMAT(K) * RSCALEX(I) * CSCALEX(J)
+           END DO
+        END IF
+        OK_TO_CALL_MA28 = .TRUE.
+        CALL MA28AD(N,NZ,PMAT,LICN_ALL,JAN,LIRN_ALL,ICN,U_PIVOT, &
+          IKEEP28,IW28,FTEMP1,IER)
+        OK_TO_CALL_MA28 = .FALSE.
+        MA28AD_CALLS = MA28AD_CALLS + 1
+        MA28SAVE = MA28
+        MB28SAVE = MB28
+        MB28 = 0
+        NLU = NLU + 1
+        MAX_MINIRN = MAX(MAX_MINIRN,MINIRN)
+        MAX_MINICN = MAX(MAX_MINICN,MINICN)
+!       IER = -1: Numerically singular Jacobian
+!       IER = -2: Structurally singular Jacobian
+        IF (IER==-1 .OR. IER==-2) IERPJ = 1
+        IF (IER==-3) THEN
+!         LIRN_ALL is not large enough.
+          IF (LP /= 0) THEN
+             MSG = 'LIRN_ALL (=I1) is not large enough.'
+             CALL XERRDV(MSG,1690,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'Allocating more space for another try.'
+             CALL XERRDV(MSG,1690,1,1,LIRN_ALL,0,0,ZERO,ZERO)
+          END IF
+!         Allocate more space for JAN and JVECT and try again.
+          LIRN_ALL = LIRN_ALL + MAX(MAX(1000,ELBOW_ROOM*NZ_SWAG),10*N)
+          LIRN_ALL = MAX(LIRN_ALL,(11*MINIRN)/10)
+          IF (LIRN_ALL>MAX_ARRAY_SIZE) THEN
+            MSG = 'Maximum array size exceeded. Stopping.'
+            CALL XERRDV(MSG,1700,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          DEALLOCATE (JAN,STAT=JER)
+          CALL CHECK_STAT(JER,820)
+          ALLOCATE (JAN(LIRN_ALL),STAT=JER)
+          CALL CHECK_STAT(JER,830)
+          IF (MITER==7) THEN
+            JAN(1:NZ) = JVECT(1:NZ)
+          END IF
+          DEALLOCATE (JVECT,STAT=JER)
+          CALL CHECK_STAT(JER,840)
+          ALLOCATE (JVECT(LIRN_ALL),STAT=JER)
+          CALL CHECK_STAT(JER,850)
+          IF (MITER==7) THEN
+            JVECT(1:NZ) = JAN(1:NZ)
+          END IF
+          MA28 = MA28SAVE
+          MB28 = MB28SAVE
+          NLU = NLU - 1
+!         Since PMAT has changed, it must be restored:
+          IF (J_IS_CONSTANT) J_HAS_BEEN_COMPUTED = .FALSE.
+          GOTO 10
+        END IF
+        IF (IER==-4 .OR. IER==-5 .OR. IER==-6) THEN
+!         LICN_ALL is not large enough.
+          IF (LP /= 0) THEN
+             MSG = 'LICN_ALL (=I1) is not large enough.'
+             CALL XERRDV(MSG,1710,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'Allocating more space for another try.'
+             CALL XERRDV(MSG,1710,1,1,LICN_ALL,0,0,ZERO,ZERO)
+          END IF
+!         Allocate more space for JAN and JVECT and try again.
+          LICN_ALL = LICN_ALL + MAX(MAX(1000,ELBOW_ROOM*NZ_SWAG),10*N)
+          LICN_ALL = MAX(LICN_ALL,(11*MINICN)/10)
+          IF (LICN_ALL>MAX_ARRAY_SIZE) THEN
+            MSG = 'Maximum array size exceeded. Stopping.'
+            CALL XERRDV(MSG,1720,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          DEALLOCATE (PMAT,ICN,STAT=JER)
+          CALL CHECK_STAT(JER,860)
+          ALLOCATE (PMAT(LICN_ALL),ICN(LICN_ALL),STAT=JER)
+          PMAT(1:LICN_ALL) = ZERO
+          CALL CHECK_STAT(JER,870)
+          IF (MITER==7) THEN
+            JAN(1:NZ) = JVECT(1:NZ)
+          END IF
+          MA28 = MA28SAVE
+          MB28 = MB28SAVE
+          NLU = NLU - 1
+          IF (J_IS_CONSTANT) J_HAS_BEEN_COMPUTED = .FALSE.
+          GOTO 10
+        END IF
+        IF (MITER/=7) RETURN
+        JAN(1:NZ) = JVECT(1:NZ)
+        RETURN
+
+!       MA28BD uses the pivot sequence generated by an earlier call
+!       to MA28AD to factor a new matrix of the same structure.
+
+90      CONTINUE
+
+        IF (SCALE_MATRIX) THEN
+           DO K =1, NZ
+              I = JAN(K)
+              J = JVECT(K)
+              PMAT(K) = PMAT(K) * RSCALEX(I) * CSCALEX(J)
+           END DO
+        END IF
+        CALL MA28BD(N,NZ,PMAT,LICN_ALL,JAN,JVECT,ICN,IKEEP28,IW28, &
+          FTEMP1,IER)
+        MA28BD_CALLS = MA28BD_CALLS + 1
+        MB28 = 1
+        NLU = NLU + 1
+!       IER = -2 : The matrix is numerically singular. The MA28AD
+!                  pivot sequence leads to a zero pivot, that is,
+!                  to one for which the ratio of it to the smallest
+!                  element in the row is less than EPS.
+!       IER = -13: The matrix is structurally singular.
+
+        IF (REDO_PIVOT_SEQUENCE) THEN
+!          Force MA28AD to calculate a new pivot sequence.
+           IF (IER/=-13 .AND. IER/=-2 .AND. IER<=0) RETURN
+           IF (IER==-2) MA28 = 1
+           IF (IER==-13) MA28 = 1
+           IF (J_IS_CONSTANT) J_HAS_BEEN_COMPUTED = .FALSE.
+        ELSE
+           IF (IER==-2) IERPJ = 1
+           IF (IER/=-13 .AND. IER<=0) RETURN
+           IF (IER==-13) MA28 = 1
+           IF (J_IS_CONSTANT) J_HAS_BEEN_COMPUTED = .FALSE.
+        END IF
+        IF (IER>0) MA28 = 2
+        IF (IER==-13 .AND. MITER==7 .AND. MOSS==2) THEN
+!          Recompute the sparsity structure.
+           CALL DVRENEW(N,Y,SAVF,EWT,F)
+           IF (J_IS_CONSTANT) J_HAS_BEEN_COMPUTED = .FALSE.
+        END IF
+        GOTO 10
+
+      END SUBROUTINE DVJACS28
+! End of Jacobian related routines that use MA28
+!_______________________________________________________________________
+
+      SUBROUTINE SET_ICN(N,IA,ICN)
+! ..
+! Define the column locations of nonzero elements for a sparse
+! matrix.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: N
+! ..
+! .. Array Arguments ..
+        INTEGER, INTENT (IN) :: IA(*)
+        INTEGER, INTENT (INOUT) :: ICN(*)
+! ..
+! .. Local Scalars ..
+        INTEGER :: J, KMAX, KMIN
+! ..
+! .. FIRST EXECUTABLE STATEMENT SET_ICN
+! ..
+        KMIN = 1
+        DO J = 1, N
+          KMAX = IA(J+1) - 1
+          ICN(KMIN:KMAX) = J
+          KMIN = KMAX + 1
+        END DO
+
+      END SUBROUTINE SET_ICN
+!_______________________________________________________________________
+
+      SUBROUTINE CHECK_DIAG(N,IA,JA,ICN)
+! ..
+! Check that the diagonal is included in the sparse matrix
+! description arrays.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: N
+! ..
+! .. Array Arguments ..
+        INTEGER, INTENT (IN) :: IA(*), ICN(*), JA(*)
+! ..
+! .. Local Scalars ..
+        INTEGER :: J, K, KMAX, KMIN
+        CHARACTER (80) :: MSG
+! ..
+! .. FIRST EXECUTABLE STATEMENT CHECK_DIAG
+! ..
+        KMIN = 1
+        DO J = 1, N
+          KMAX = IA(J+1) - 1
+          DO K = KMIN, KMAX
+            IF (JA(K)==ICN(K)) GOTO 10
+          END DO
+          MSG = 'In CHECK_DIAG, the diagonal is not present.'
+          CALL XERRDV(MSG,1730,2,0,0,0,0,ZERO,ZERO)
+10        CONTINUE
+          KMIN = KMAX + 1
+        END DO
+
+      END SUBROUTINE CHECK_DIAG
+!_______________________________________________________________________
+
+      SUBROUTINE DVCHECK(JOB,G,NEQ,Y,YH,NYH,G0,G1,GX,IRT)
+! ..
+! Check for the presence of a root in the vicinity of the current T,
+! in a manner depending on the input flag JOB, and call DVROOTS to
+! locate the root as precisely as possible.
+! ..
+! This subroutine is essentially DRCHEK from LSODAR.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (INOUT) :: IRT
+        INTEGER, INTENT (IN) :: JOB, NEQ, NYH
+! ..
+! .. Array Arguments ..
+        KPP_REAL, INTENT (INOUT) :: G0(*), G1(*), GX(*), Y(*), YH(NYH,*)
+! ..
+! .. Subroutine Arguments ..
+        EXTERNAL G
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: HMING, T1, TEMP1, TEMP2, X
+        INTEGER :: I, IFLAG, JFLAG
+        LOGICAL :: ZROOT
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, MAX, MIN, SIGN
+! ..
+! In addition to variables described previously, DVCHECK
+! uses the following for communication:
+! JOB    = integer flag indicating type of call:
+!          JOB = 1 means the problem is being initialized, and DVCHECK
+!                  is to look for a root at or very near the initial T.
+!          JOB = 2 means a continuation call to the solver was just
+!                  made, and DVCHECK is to check for a root in the
+!                  relevant part of the step last taken.
+!          JOB = 3 means a successful step was just taken, and DVCHECK
+!                  is to look for a root in the interval of the step.
+! G0     = array of length NG, containing the value of g at T = T0ST.
+!          G0 is input for JOB >= 2, and output in all cases.
+! G1,GX  = arrays of length NG for work space.
+! IRT    = completion flag:
+!          IRT = 0  means no root was found.
+!          IRT = -1 means JOB = 1 and a root was found too near to T.
+!          IRT = 1  means a legitimate root was found (JOB = 2 or 3).
+!                   On return, T0ST is the root location, and Y is the
+!                   corresponding solution vector.
+! T0ST   = value of T at one endpoint of interval of interest. Only
+!          roots beyond T0ST in the direction of integration are sought.
+!          T0ST is input if JOB >= 2, and output in all cases.
+!          T0ST is updated by DVCHECK, whether a root is found or not.
+! TLAST  = last value of T returned by the solver (input only).
+! TOUTC  = copy of TOUT(input only).
+! IRFND  = input flag showing whether the last step taken had a root.
+!          IRFND = 1 if it did, = 0 if not.
+! ITASKC = copy of ITASK (input only).
+! NGC    = copy of NG (input only).
+! ..
+! .. FIRST EXECUTABLE STATEMENT DVCHECK
+! ..
+        IRT = 0
+        JROOT(1:NGC) = 0
+        HMING = (ABS(TN)+ABS(H))*UROUND*HUN
+
+        GOTO (10,30,80) JOB
+
+!       Evaluate g at initial T, and check for zero values.
+10      CONTINUE
+        T0ST = TN
+        CALL G(NEQ,T0ST,Y,NGC,G0)
+        NGE = 1
+        ZROOT = .FALSE.
+        DO I = 1, NGC
+          IF (ABS(G0(I))<=ZERO) ZROOT = .TRUE.
+        END DO
+        IF (.NOT.ZROOT) GOTO 20
+!       g has a zero at T. Look at g at T + (small increment).
+!       TEMP1 = SIGN(HMING, H)
+!       T0ST = T0ST + TEMP1
+!       TEMP2 = TEMP1 / H
+        TEMP2 = MAX(HMING/ABS(H),TENTH)
+        TEMP1 = TEMP2*H
+        T0ST = T0ST + TEMP1
+        Y(1:N) = Y(1:N) + TEMP2*YH(1:N,2)
+        CALL G(NEQ,T0ST,Y,NGC,G0)
+        NGE = NGE + 1
+        ZROOT = .FALSE.
+        DO I = 1, NGC
+          IF (ABS(G0(I))<=ZERO) ZROOT = .TRUE.
+        END DO
+        IF (.NOT.ZROOT) GOTO 20
+!       g has a zero at T and also close to T. Take error return.
+        IRT = -1
+        RETURN
+
+20      CONTINUE
+        RETURN
+
+30      CONTINUE
+        IF (IRFND==0) GOTO 70
+!       If a root was found on the previous step, evaluate G0 = g(T0ST).
+        CALL DVINDY_CORE(T0ST,0,YH,NYH,Y,IFLAG)
+        IF (BOUNDS) THEN
+          DO I = 1, NDX
+            Y(IDX(I)) = MAX(Y(IDX(I)),LB(I))
+            Y(IDX(I)) = MIN(Y(IDX(I)),UB(I))
+          END DO
+        END IF
+        CALL G(NEQ,T0ST,Y,NGC,G0)
+        NGE = NGE + 1
+        ZROOT = .FALSE.
+        DO I = 1, NGC
+          IF (ABS(G0(I))<=ZERO) ZROOT = .TRUE.
+        END DO
+        IF (.NOT.ZROOT) GOTO 70
+!       g has a zero at T0ST. Look at g at T + (small increment).
+        TEMP1 = SIGN(HMING,H)
+        T0ST = T0ST + TEMP1
+        IF ((T0ST-TN)*H<ZERO) GOTO 40
+        TEMP2 = TEMP1/H
+        Y(1:N) = Y(1:N) + TEMP2*YH(1:N,2)
+        GOTO 50
+40      CALL DVINDY_CORE(T0ST,0,YH,NYH,Y,IFLAG)
+        IF (BOUNDS) THEN
+          DO I = 1, NDX
+            Y(IDX(I)) = MAX(Y(IDX(I)),LB(I))
+            Y(IDX(I)) = MIN(Y(IDX(I)),UB(I))
+          END DO
+        END IF
+50      CALL G(NEQ,T0ST,Y,NGC,G0)
+        NGE = NGE + 1
+        ZROOT = .FALSE.
+        DO 60 I = 1, NGC
+          IF (ABS(G0(I))>ZERO) GOTO 60
+          JROOT(I) = 1
+          ZROOT = .TRUE.
+60      END DO
+        IF (.NOT.ZROOT) GOTO 70
+!       g has a zero at T0ST and also close to T0ST. Return root.
+        IRT = 1
+        RETURN
+!       G0 has no zero components. Proceed to check relevant interval.
+70      IF (ABS(TN-TLAST)<=ZERO) GOTO 130
+
+80      CONTINUE
+!       Set T1 to TN or TOUTC, whichever comes first, and get g at T1.
+        IF (ITASKC==2 .OR. ITASKC==3 .OR. ITASKC==5) GOTO 90
+        IF ((TOUTC-TN)*H>=ZERO) GOTO 90
+        T1 = TOUTC
+        IF ((T1-T0ST)*H<=ZERO) GOTO 130
+        CALL DVINDY_CORE(T1,0,YH,NYH,Y,IFLAG)
+        IF (BOUNDS) THEN
+          DO I = 1, NDX
+            Y(IDX(I)) = MAX(Y(IDX(I)),LB(I))
+            Y(IDX(I)) = MIN(Y(IDX(I)),UB(I))
+          END DO
+        END IF
+        GOTO 100
+90      T1 = TN
+        DO I = 1, N
+          Y(I) = YH(I,1)
+        END DO
+100     CALL G(NEQ,T1,Y,NGC,G1)
+        NGE = NGE + 1
+!       Call DVROOTS to search for root in interval from T0ST to T1.
+        JFLAG = 0
+110     CONTINUE
+        CALL DVROOTS(NGC,HMING,JFLAG,T0ST,T1,G0,G1,GX,X)
+        IF (JFLAG>1) GOTO 120
+        CALL DVINDY_CORE(X,0,YH,NYH,Y,IFLAG)
+        IF (BOUNDS) THEN
+          DO I = 1, NDX
+            Y(IDX(I)) = MAX(Y(IDX(I)),LB(I))
+            Y(IDX(I)) = MIN(Y(IDX(I)),UB(I))
+          END DO
+        END IF
+        CALL G(NEQ,X,Y,NGC,GX)
+        NGE = NGE + 1
+        GOTO 110
+120     T0ST = X
+        CALL DCOPY_F90(NGC,GX,1,G0,1)
+        IF (JFLAG==4) GOTO 130
+!       Found a root. Interpolate to X and return.
+        CALL DVINDY_CORE(X,0,YH,NYH,Y,IFLAG)
+        IF (BOUNDS) THEN
+          DO I = 1, NDX
+            Y(IDX(I)) = MAX(Y(IDX(I)),LB(I))
+            Y(IDX(I)) = MIN(Y(IDX(I)),UB(I))
+          END DO
+        END IF
+        IRT = 1
+        RETURN
+130     CONTINUE
+        RETURN
+
+      END SUBROUTINE DVCHECK
+!_______________________________________________________________________
+
+      SUBROUTINE DVROOTS(NG,HMIN,JFLAG,X0,X1,G0,G1,GX,X)
+! ..
+! Perform root finding for DVODE_F90.
+! ..
+! This is essentially subroutine DROOTS from LSODAR.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        KPP_REAL, INTENT (IN) :: HMIN
+        KPP_REAL, INTENT (INOUT) :: X, X0, X1
+        INTEGER, INTENT (INOUT) :: JFLAG
+        INTEGER, INTENT (IN) :: NG
+! ..
+! .. Array Arguments ..
+        KPP_REAL, INTENT (INOUT) :: G0(NG), G1(NG), GX(NG)
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: T2, TMAX
+        INTEGER :: I, IMXOLD, NXLAST
+        LOGICAL :: SGNCHG, XROOT, ZROOT
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, SIGN
+! ..
+! This subroutine finds the leftmost root of a set of arbitrary
+! functions gi(x) (i = 1,...,NG) in an interval (X0,X1). Only roots
+! of odd multiplicity (i.e. changes of sign of the gi) are found.
+! Here the sign of X1 - X0 is arbitrary, but is constant for a given
+! problem, and 'leftmost' means nearest to X0.The values of the
+! vector-valued function g(x) = (gi, i=1...NG) are communicated
+! through the call sequence of DVROOTS. The method used is the
+! Illinois algorithm.
+
+! Reference:
+! Kathie L. Hiebert and Lawrence F. Shampine, Implicitly Defined
+! Output Points for Solutions of ODEs, Sandia Report SAND/80-0180,
+! February 1980.
+
+! Description of parameters.
+
+! NG     = number of functions gi, or the number of components of
+!          the vector valued function g(x). Input only.
+
+! HMIN   = resolution parameter in X. Input only. When a root is
+!          found, it is located only to within an error of HMIN in X.
+!          Typically, HMIN should be set to something on the order of
+!               100 * UROUND * MAX(ABS(X0),ABS(X1)),
+!          where UROUND is the unit roundoff of the machine.
+
+! JFLAG  = integer flag for input and output communication.
+
+!          On input, set JFLAG = 0 on the first call for the problem,
+!          and leave it unchanged until the problem is completed.
+!          (The problem is completed when JFLAG >= 2 on return.)
+
+!          On output, JFLAG has the following values and meanings:
+!          JFLAG = 1 means DVROOTS needs a value of g(x). Set GX = g(X)
+!                    and call DVROOTS again.
+!          JFLAG = 2 means a root has been found. The root is
+!                    at X, and GX contains g(X). (Actually, X is the
+!                    rightmost approximation to the root on an interval
+!                    (X0,X1) of size HMIN or less.)
+!          JFLAG = 3 means X = X1 is a root, with one or more of the gi
+!                    being zero at X1 and no sign changes in (X0,X1).
+!                    GX contains g(X) on output.
+!          JFLAG = 4 means no roots (of odd multiplicity) were
+!                    found in (X0,X1) (no sign changes).
+
+! X0,X1  = endpoints of the interval where roots are sought.
+!          X1 and X0 are input when JFLAG = 0 (first call), and
+!          must be left unchanged between calls until the problem is
+!          completed. X0 and X1 must be distinct, but X1 - X0 may be
+!          of either sign. However, the notion of 'left' and 'right'
+!          will be used to mean nearer to X0 or X1, respectively.
+!          When JFLAG >= 2 on return, X0 and X1 are output, and
+!          are the endpoints of the relevant interval.
+
+! G0,G1  = arrays of length NG containing the vectors g(X0) and g(X1),
+!          respectively. When JFLAG = 0, G0 and G1 are input and
+!          none of the G0(i) should be zero.
+!          When JFLAG >= 2 on return, G0 and G1 are output.
+
+! GX     = array of length NG containing g(X). GX is input
+!          when JFLAG = 1, and output when JFLAG >= 2.
+
+! X      = independent variable value. Output only.
+!          When JFLAG = 1 on output, X is the point at which g(x)
+!          is to be evaluated and loaded into GX.
+!          When JFLAG = 2 or 3, X is the root.
+!          When JFLAG = 4, X is the right endpoint of the interval, X1.
+
+! JROOT  = integer array of length NG. Output only.
+!          When JFLAG = 2 or 3, JROOT indicates which components
+!          of g(x) have a root at X. JROOT(i) is 1 if the i-th
+!          component has a root, and JROOT(i) = 0 otherwise.
+! ..
+! .. FIRST EXECUTABLE STATEMENT DVROOTS
+! ..
+        IF (JFLAG==1) GOTO 90
+!       JFLAG /= 1. Check for change in sign of g or zero at X1.
+        IMAX = 0
+        TMAX = ZERO
+        ZROOT = .FALSE.
+        DO 20 I = 1, NG
+          IF (ABS(G1(I))>ZERO) GOTO 10
+          ZROOT = .TRUE.
+          GOTO 20
+!         At this point, G0(i) has been checked and cannot be zero.
+10        IF (ABS(SIGN(ONE,G0(I))-SIGN(ONE,G1(I)))<=ZERO) GOTO 20
+          T2 = ABS(G1(I)/(G1(I)-G0(I)))
+          IF (T2<=TMAX) GOTO 20
+          TMAX = T2
+          IMAX = I
+20      END DO
+        IF (IMAX>0) GOTO 30
+        SGNCHG = .FALSE.
+        GOTO 40
+30      SGNCHG = .TRUE.
+40      IF (.NOT.SGNCHG) GOTO 200
+!       There is a sign change. Find the first root in the interval.
+        XROOT = .FALSE.
+        NXLAST = 0
+        LAST = 1
+
+!       Repeat until the first root in the interval is found. Loop point.
+50      CONTINUE
+        IF (XROOT) GOTO 170
+        IF (NXLAST==LAST) GOTO 60
+        ALPHA = ONE
+        GOTO 80
+60      IF (LAST==0) GOTO 70
+        ALPHA = HALF*ALPHA
+        GOTO 80
+70      ALPHA = TWO*ALPHA
+80      X2 = X1 - (X1-X0)*G1(IMAX)/(G1(IMAX)-ALPHA*G0(IMAX))
+!       IF ((ABS(X2 - X0) < HMIN) .AND. (ABS(X1 - X0) > TEN * &
+!       HMIN)) X2 = X0 + PT1 * (X1 - X0)
+
+!       If X2 is too close to X0 or X1, adjust it inward,
+!       by a fractional distance that is between 0.1 and 0.5.
+        IF (ABS(X2-X0)<HALF*HMIN) THEN
+          FRACINT = ABS(X1-X0)/HMIN
+          FRACSUB = TENTH
+          IF (FRACINT<=FIVE) FRACSUB = HALF/FRACINT
+          X2 = X0 + FRACSUB*(X1-X0)
+        END IF
+        IF (ABS(X1-X2)<HALF*HMIN) THEN
+          FRACINT = ABS(X1-X0)/HMIN
+          FRACSUB = TENTH
+          IF (FRACINT<=FIVE) FRACSUB = HALF/FRACINT
+          X2 = X1 - FRACSUB*(X1-X0)
+        END IF
+
+        JFLAG = 1
+        X = X2
+!       Return to the calling routine to get a value of GX = g(X).
+        RETURN
+!       Check to see in which interval g changes sign.
+90      IMXOLD = IMAX
+        IMAX = 0
+        TMAX = ZERO
+        ZROOT = .FALSE.
+        DO 110 I = 1, NG
+          IF (ABS(GX(I))>ZERO) GOTO 100
+          ZROOT = .TRUE.
+          GOTO 110
+!         Neither G0(i) nor GX(i) can be zero at this point.
+100       IF (ABS(SIGN(ONE,G0(I))-SIGN(ONE,GX(I)))<=ZERO) GOTO 110
+          T2 = ABS(GX(I)/(GX(I)-G0(I)))
+          IF (T2<=TMAX) GOTO 110
+          TMAX = T2
+          IMAX = I
+110     END DO
+        IF (IMAX>0) GOTO 120
+        SGNCHG = .FALSE.
+        IMAX = IMXOLD
+        GOTO 130
+120     SGNCHG = .TRUE.
+130     NXLAST = LAST
+        IF (.NOT.SGNCHG) GOTO 140
+!       Sign change between X0 and X2, so replace X1 with X2.
+        X1 = X2
+        CALL DCOPY_F90(NG,GX,1,G1,1)
+        LAST = 1
+        XROOT = .FALSE.
+        GOTO 160
+140     IF (.NOT.ZROOT) GOTO 150
+!       Zero value at X2 and no sign change in (X0,X2), so X2 is a root.
+        X1 = X2
+        CALL DCOPY_F90(NG,GX,1,G1,1)
+        XROOT = .TRUE.
+        GOTO 160
+!       No sign change between X0 and X2. Replace X0 with X2.
+150     CONTINUE
+        CALL DCOPY_F90(NG,GX,1,G0,1)
+        X0 = X2
+        LAST = 0
+        XROOT = .FALSE.
+160     IF (ABS(X1-X0)<=HMIN) XROOT = .TRUE.
+        GOTO 50
+
+!       Return with X1 as the root. Set JROOT. Set X = X1 and GX = G1.
+170     JFLAG = 2
+        X = X1
+        CALL DCOPY_F90(NG,G1,1,GX,1)
+        DO 190 I = 1, NG
+          JROOT(I) = 0
+          IF (ABS(G1(I))>ZERO) GOTO 180
+          JROOT(I) = 1
+          GOTO 190
+180       IF (ABS(SIGN(ONE,G0(I))-SIGN(ONE,G1(I)))>ZERO) JROOT(I) = 1
+190     END DO
+        RETURN
+
+!       No sign change in the interval. Check for zero at right endpoint.
+200     IF (.NOT.ZROOT) GOTO 210
+
+!       Zero value at X1 and no sign change in (X0,X1). Return JFLAG = 3.
+        X = X1
+        CALL DCOPY_F90(NG,G1,1,GX,1)
+        DO I = 1, NG
+          JROOT(I) = 0
+          IF (ABS(G1(I))<=ZERO) JROOT(I) = 1
+        END DO
+        JFLAG = 3
+        RETURN
+
+!       No sign changes in this interval. Set X = X1, return JFLAG = 4.
+210     CALL DCOPY_F90(NG,G1,1,GX,1)
+        X = X1
+        JFLAG = 4
+        RETURN
+
+      END SUBROUTINE DVROOTS
+!_______________________________________________________________________
+
+      SUBROUTINE DVNRDP(Y,IYDIM,NEQN,NQ)
+! ..
+! Retract the Nordsieck array (undo prediction).
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER :: IYDIM, NEQN, NQ
+! ..
+! .. Array Arguments ..
+        KPP_REAL :: Y(*)
+! ..
+! .. Local Scalars ..
+        INTEGER :: I, J, J1, J2
+! ..
+! .. FIRST EXECUTABLE STATEMENT DVNRDP
+! ..
+        DO J1 = 1, NQ
+          DO J2 = J1, NQ
+            J = (NQ+J1) - J2
+            DO I = 1, NEQN
+! Original:
+!             Y(I,J) = Y(I,J) + Y(I,J+1)
+              Y(I+(J-1)*IYDIM) = Y(I+(J-1)*IYDIM) + Y(I+J*IYDIM)
+            END DO
+          END DO
+        END DO
+        RETURN
+
+      END SUBROUTINE DVNRDP
+!_______________________________________________________________________
+
+      SUBROUTINE DVNRDN(Y,IYDIM,NEQN,NQ)
+! ..
+! Apply the Nordsieck array (predict).
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER :: IYDIM, NEQN, NQ
+! ..
+! .. Array Arguments ..
+        KPP_REAL :: Y(*)
+! ..
+! .. Local Scalars ..
+        INTEGER :: I, J, J1, J2
+! ..
+! .. FIRST EXECUTABLE STATEMENT DVNRDN
+! ..
+        DO J1 = 1, NQ
+          DO J2 = J1, NQ
+            J = (NQ+J1) - J2
+            DO I = 1, NEQN
+! Original:
+!             Y(I,J) = Y(I,J) - Y(I,J+1)
+              Y(I+(J-1)*IYDIM) = Y(I+(J-1)*IYDIM) - Y(I+J*IYDIM)
+            END DO
+          END DO
+        END DO
+        RETURN
+
+      END SUBROUTINE DVNRDN
+!_______________________________________________________________________
+
+      SUBROUTINE DVNRDS(Y,IYDIM,NEQN,L,RH)
+! ..
+! Scale the Nordsieck array.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        KPP_REAL :: RH
+        INTEGER :: IYDIM, L, NEQN
+! ..
+! .. Array Arguments ..
+        KPP_REAL :: Y(*)
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: R1
+        INTEGER :: I, J
+! ..
+! .. FIRST EXECUTABLE STATEMENT DVNRDS
+! ..
+        R1 = ONE
+        DO J = 2, L
+          R1 = R1*RH
+          DO I = 1, NEQN
+! Original:
+!           Y(I,J) = Y(I,J)*R1
+            Y(I+(J-1)*IYDIM) = Y(I+(J-1)*IYDIM)*R1
+          END DO
+        END DO
+        RETURN
+
+      END SUBROUTINE DVNRDS
+!_______________________________________________________________________
+
+      SUBROUTINE RELEASE_ARRAYS
+! ..
+! Deallocate any allocated arrays and determine how much storage was
+! used (not called by DVODE_F90).
+! ..
+     IMPLICIT NONE
+! ..
+! .. Local Scalars ..
+        INTEGER :: IER, II, IR
+        CHARACTER (80) :: MSG
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ALLOCATED, SIZE
+! ..
+!_______________________________________________________________________
+! *****MA48 build change point. Insert these statements.
+!     INTEGER INFO
+!     INTEGER ISIZE
+!     COMMON /MA48SIZE/ ISIZE
+!_______________________________________________________________________
+! ..
+! .. FIRST EXECUTABLE STATEMENT RELEASE_ARRAYS
+! ..
+        IR = 0
+        IF (ALLOCATED(ACOR)) THEN
+          IR = IR + SIZE(ACOR)
+          DEALLOCATE (ACOR,STAT=IER)
+          CALL CHECK_STAT(IER,880)
+        END IF
+        IF (ALLOCATED(CSCALEX)) THEN
+          IR = IR + SIZE(CSCALEX) + SIZE(RSCALEX) + SIZE(WSCALEX)
+          DEALLOCATE (CSCALEX,RSCALEX,WSCALEX,STAT=IER)
+          CALL CHECK_STAT(IER,890)
+        END IF
+        IF (ALLOCATED(DTEMP)) THEN
+          IR = IR + SIZE(DTEMP)
+          DEALLOCATE (DTEMP,STAT=IER)
+          CALL CHECK_STAT(IER,900)
+        END IF
+        IF (ALLOCATED(EWT)) THEN
+          IR = IR + SIZE(EWT)
+          DEALLOCATE (EWT,STAT=IER)
+          CALL CHECK_STAT(IER,910)
+        END IF
+        IF (ALLOCATED(FACDS)) THEN
+          IR = IR + SIZE(FACDS)
+          DEALLOCATE (FACDS,STAT=IER)
+          CALL CHECK_STAT(IER,920)
+        END IF
+        IF (ALLOCATED(FPTEMP)) THEN
+          IR = IR + SIZE(FPTEMP)
+          DEALLOCATE (FPTEMP,STAT=IER)
+          CALL CHECK_STAT(IER,930)
+        END IF
+        IF (ALLOCATED(FTEMP)) THEN
+          IR = IR + SIZE(FTEMP)
+          DEALLOCATE (FTEMP,STAT=IER)
+          CALL CHECK_STAT(IER,940)
+        END IF
+        IF (ALLOCATED(FTEMP1)) THEN
+          IR = IR + SIZE(FTEMP1)
+          DEALLOCATE (FTEMP1,STAT=IER)
+          CALL CHECK_STAT(IER,950)
+        END IF
+        IF (ALLOCATED(G0)) THEN
+          IR = IR + SIZE(G0)
+          DEALLOCATE (G0,STAT=IER)
+          CALL CHECK_STAT(IER,960)
+        END IF
+        IF (ALLOCATED(G1)) THEN
+          IR = IR + SIZE(G1)
+          DEALLOCATE (G1,STAT=IER)
+          CALL CHECK_STAT(IER,970)
+        END IF
+        IF (ALLOCATED(GX)) THEN
+          IR = IR + SIZE(GX)
+          DEALLOCATE (GX,STAT=IER)
+          CALL CHECK_STAT(IER,980)
+        END IF
+        IF (ALLOCATED(JMAT)) THEN
+          IR = IR + SIZE(JMAT)
+          DEALLOCATE (JMAT,STAT=IER)
+          CALL CHECK_STAT(IER,990)
+        END IF
+        IF (ALLOCATED(LB)) THEN
+          IR = IR + SIZE(LB)
+          DEALLOCATE (LB,STAT=IER)
+          CALL CHECK_STAT(IER,1000)
+        END IF
+        IF (ALLOCATED(UB)) THEN
+          IR = IR + SIZE(UB)
+          DEALLOCATE (UB,STAT=IER)
+          CALL CHECK_STAT(IER,1000)
+        END IF
+        IF (ALLOCATED(PMAT)) THEN
+          IR = IR + SIZE(PMAT)
+          DEALLOCATE (PMAT,STAT=IER)
+          CALL CHECK_STAT(IER,1010)
+        END IF
+        IF (ALLOCATED(RWORK)) THEN
+          IR = IR + SIZE(RWORK)
+          DEALLOCATE (RWORK,STAT=IER)
+          CALL CHECK_STAT(IER,1020)
+        END IF
+        IF (ALLOCATED(SAVF)) THEN
+          IR = IR + SIZE(SAVF)
+          DEALLOCATE (SAVF,STAT=IER)
+          CALL CHECK_STAT(IER,1030)
+        END IF
+        IF (ALLOCATED(YMAX)) THEN
+          IR = IR + SIZE(YMAX)
+          DEALLOCATE (YMAX,STAT=IER)
+          CALL CHECK_STAT(IER,1040)
+        END IF
+        IF (ALLOCATED(WM)) THEN
+          IR = IR + SIZE(WM)
+          DEALLOCATE (WM,STAT=IER)
+          CALL CHECK_STAT(IER,1050)
+        END IF
+        IF (ALLOCATED(YHNQP2)) THEN
+          IR = IR + SIZE(YHNQP2)
+          DEALLOCATE (YHNQP2,STAT=IER)
+          CALL CHECK_STAT(IER,1060)
+        END IF
+        IF (ALLOCATED(YHTEMP)) THEN
+          IR = IR + SIZE(YHTEMP)
+          DEALLOCATE (YHTEMP,STAT=IER)
+          CALL CHECK_STAT(IER,1070)
+        END IF
+        IF (ALLOCATED(YMAX)) THEN
+          IR = IR + SIZE(YMAX)
+          DEALLOCATE (YMAX,STAT=IER)
+          CALL CHECK_STAT(IER,1080)
+        END IF
+        IF (ALLOCATED(YNNEG)) THEN
+          IR = IR + SIZE(YNNEG)
+          DEALLOCATE (YNNEG,STAT=IER)
+          CALL CHECK_STAT(IER,1090)
+        END IF
+        IF (ALLOCATED(YSCALEDS)) THEN
+          IR = IR + SIZE(YSCALEDS)
+          DEALLOCATE (YSCALEDS,STAT=IER)
+          CALL CHECK_STAT(IER,1100)
+        END IF
+        IF (ALLOCATED(YTEMP)) THEN
+          IR = IR + SIZE(YTEMP)
+          DEALLOCATE (YTEMP,STAT=IER)
+          CALL CHECK_STAT(IER,1110)
+        END IF
+        IF (ALLOCATED(WKDS)) THEN
+          IR = IR + SIZE(WKDS)
+          DEALLOCATE (WKDS,STAT=IER)
+          CALL CHECK_STAT(IER,1120)
+        END IF
+        II = 0
+        IF (ALLOCATED(BIGP)) THEN
+          II = II + SIZE(BIGP)
+          DEALLOCATE (BIGP,STAT=IER)
+          CALL CHECK_STAT(IER,1130)
+        END IF
+        IF (ALLOCATED(BJGP)) THEN
+          II = II + SIZE(BJGP)
+          DEALLOCATE (BJGP,STAT=IER)
+          CALL CHECK_STAT(IER,1140)
+        END IF
+        IF (ALLOCATED(IA)) THEN
+          II = II + SIZE(IA)
+          DEALLOCATE (IA,STAT=IER)
+          CALL CHECK_STAT(IER,1150)
+        END IF
+        IF (ALLOCATED(IAB)) THEN
+          II = II + SIZE(IAB)
+          DEALLOCATE (IAB,STAT=IER)
+          CALL CHECK_STAT(IER,1160)
+        END IF
+        IF (ALLOCATED(IAN)) THEN
+          II = II + SIZE(IAN)
+          DEALLOCATE (IAN,STAT=IER)
+          CALL CHECK_STAT(IER,1170)
+        END IF
+        IF (ALLOCATED(ICN)) THEN
+          II = II + SIZE(ICN)
+          DEALLOCATE (ICN,STAT=IER)
+          CALL CHECK_STAT(IER,1180)
+        END IF
+        IF (ALLOCATED(IDX)) THEN
+          II = II + SIZE(IDX)
+          DEALLOCATE (IDX,STAT=IER)
+          CALL CHECK_STAT(IER,1190)
+        END IF
+        IF (ALLOCATED(IGP)) THEN
+          II = II + SIZE(IGP)
+          DEALLOCATE (IGP,STAT=IER)
+          CALL CHECK_STAT(IER,1200)
+        END IF
+        IF (ALLOCATED(IKEEP28)) THEN
+          II = II + SIZE(IKEEP28,1)*SIZE(IKEEP28,2)
+          DEALLOCATE (IKEEP28,STAT=IER)
+          CALL CHECK_STAT(IER,1210)
+        END IF
+        IF (ALLOCATED(INDCOLDS)) THEN
+          II = II + SIZE(INDCOLDS)
+          DEALLOCATE (INDCOLDS,STAT=IER)
+          CALL CHECK_STAT(IER,1220)
+        END IF
+        IF (ALLOCATED(INDROWDS)) THEN
+
+          II = II + SIZE(INDROWDS)
+          DEALLOCATE (INDROWDS,STAT=IER)
+          CALL CHECK_STAT(IER,1230)
+        END IF
+        IF (ALLOCATED(IOPTDS)) THEN
+          II = II + SIZE(IOPTDS)
+          DEALLOCATE (IOPTDS,STAT=IER)
+          CALL CHECK_STAT(IER,1240)
+        END IF
+        IF (ALLOCATED(IPNTRDS)) THEN
+          II = II + SIZE(IPNTRDS)
+          DEALLOCATE (IPNTRDS,STAT=IER)
+          CALL CHECK_STAT(IER,1250)
+        END IF
+        IF (ALLOCATED(IWADS)) THEN
+          II = II + SIZE(IWADS)
+          DEALLOCATE (IWADS,STAT=IER)
+          CALL CHECK_STAT(IER,1260)
+        END IF
+        IF (ALLOCATED(IWKDS)) THEN
+          II = II + SIZE(IWKDS)
+          DEALLOCATE (IWKDS,STAT=IER)
+          CALL CHECK_STAT(IER,1270)
+        END IF
+        IF (ALLOCATED(IWORK)) THEN
+          II = II + SIZE(IWORK)
+          DEALLOCATE (IWORK,STAT=IER)
+          CALL CHECK_STAT(IER,1280)
+        END IF
+        IF (ALLOCATED(IW28)) THEN
+          II = II + SIZE(IW28,1)*SIZE(IW28,2)
+          DEALLOCATE (IW28,STAT=IER)
+          CALL CHECK_STAT(IER,1290)
+        END IF
+        IF (ALLOCATED(JA)) THEN
+          II = II + SIZE(JA)
+          DEALLOCATE (JA,STAT=IER)
+          CALL CHECK_STAT(IER,1300)
+        END IF
+        IF (ALLOCATED(JAB)) THEN
+          II = II + SIZE(JAB)
+          DEALLOCATE (JAB,STAT=IER)
+          CALL CHECK_STAT(IER,1310)
+        END IF
+        IF (ALLOCATED(JAN)) THEN
+          II = II + SIZE(JAN)
+          DEALLOCATE (JAN,STAT=IER)
+          CALL CHECK_STAT(IER,1320)
+        END IF
+        IF (ALLOCATED(JATEMP)) THEN
+          II = II + SIZE(JATEMP)
+          DEALLOCATE (JATEMP,STAT=IER)
+          CALL CHECK_STAT(IER,1330)
+        END IF
+        IF (ALLOCATED(JGP)) THEN
+          II = II + SIZE(JGP)
+          DEALLOCATE (JGP,STAT=IER)
+          CALL CHECK_STAT(IER,1340)
+        END IF
+        IF (ALLOCATED(JPNTRDS)) THEN
+          II = II + SIZE(JPNTRDS)
+          DEALLOCATE (JPNTRDS,STAT=IER)
+          CALL CHECK_STAT(IER,1350)
+        END IF
+        IF (ALLOCATED(JROOT)) THEN
+          II = II + SIZE(JROOT)
+          DEALLOCATE (JROOT,STAT=IER)
+          CALL CHECK_STAT(IER,1360)
+        END IF
+        IF (ALLOCATED(JVECT)) THEN
+          II = II + SIZE(JVECT)
+          DEALLOCATE (JVECT,STAT=IER)
+          CALL CHECK_STAT(IER,1370)
+        END IF
+        IF (ALLOCATED(NGRPDS)) THEN
+          II = II + SIZE(NGRPDS)
+          DEALLOCATE (NGRPDS,STAT=IER)
+          CALL CHECK_STAT(IER,1380)
+        END IF
+        IF (ALLOCATED(SUBDS)) THEN
+          II = II + SIZE(SUBDS)
+          DEALLOCATE (SUBDS,STAT=IER)
+          CALL CHECK_STAT(IER,1390)
+        END IF
+        IF (ALLOCATED(SUPDS)) THEN
+          II = II + SIZE(SUPDS)
+          DEALLOCATE (SUPDS,STAT=IER)
+          CALL CHECK_STAT(IER,1400)
+        END IF
+!_______________________________________________________________________
+! *****MA48 build change point. Insert these statements.
+!       IF (MA48_WAS_USED) THEN
+!          CALL MA48_FINALIZE(FACTORS,CONTROL,INFO)
+!          IF (INFO /= 0) THEN
+!             MSG = 'The call to MA48_FINALIZE FAILED.'
+!             CALL XERRDV(MSG,1740,1,1,II,0,0,ZERO,ZERO)
+!          END IF
+!          MSG = 'Size of MA48 deallocated arrays (I1) = '
+!          CALL XERRDV(MSG,1750,1,1,ISIZE,0,0,ZERO,ZERO)
+!       END IF
+!_______________________________________________________________________
+
+!       Print the amount of storage used.
+        MSG = 'I1 = Total length of REAL arrays used.'
+        CALL XERRDV(MSG,1760,1,1,IR,0,0,ZERO,ZERO)
+        MSG = 'I1 = Total length of INTEGER arrays used.'
+        CALL XERRDV(MSG,1760,1,1,II,0,0,ZERO,ZERO)
+
+!       In case DVODE_F90 is subsequently called:
+        OPTS_CALLED = .FALSE.
+        RETURN
+
+      END SUBROUTINE RELEASE_ARRAYS
+! End of DVODE_F90 subroutines
+!_______________________________________________________________________
+
+! Beginning of LINPACK and BLAS subroutines
+      SUBROUTINE DGEFA_F90(A,LDA,N,IPVT,INFO)
+! ..
+! Factor a matrix using Gaussian elimination.
+! ..
+!     DGEFA_F90 factors a KPP_REAL matrix by Gaussian elimination.
+!     DGEFA_F90 is usually called by DGECO, but it can be called
+!     directly with a saving in time if RCOND is not needed.
+!     (Time for DGECO) = (1 + 9/N)*(Time for DGEFA_F90).
+!     On Entry
+!        A       REAL(KIND=WP)(LDA, N)
+!                the matrix to be factored.
+!        LDA     INTEGER
+!                the leading dimension of the array A.
+!        N       INTEGER
+!                the order of the matrix A.
+!     On Return
+!        A       an upper triangular matrix and the multipliers
+!                which were used to obtain it.
+!                The factorization can be written A = L*U where
+!                L is a product of permutation and unit lower
+!                triangular matrices and U is upper triangular.
+!        IPVT    INTEGER(N)
+!                an integer vector of pivot indices.
+!        INFO    INTEGER
+!                = 0  normal value.
+!                = K  if U(K,K) == 0.0. This is not an error
+!                     condition for this subroutine, but it does
+!                     indicate that DGESL_F90 or DGEDI will divide
+!                     by zero if called. Use RCOND in DGECO for a
+!                     reliable indication of singularity.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (INOUT) :: INFO
+        INTEGER, INTENT (IN) :: LDA, N
+! ..
+! .. Array Arguments ..
+        KPP_REAL, INTENT (INOUT) :: A(LDA,*)
+        INTEGER, INTENT (INOUT) :: IPVT(*)
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: T
+        INTEGER :: J, K, KP1, L, NM1
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS
+! ..
+! .. FIRST EXECUTABLE STATEMENT DGEFA_F90
+! ..
+        INFO = 0
+        NM1 = N - 1
+        IF (NM1<1) GOTO 50
+        DO K = 1, NM1
+          KP1 = K + 1
+
+!         Find L = pivot index.
+
+! Original:
+!         L = IDAMAX_F90(N-K+1,A(K,K),1) + K - 1
+          L = IDAMAX_F90(N-K+1,A(K:N,K),1) + K - 1
+          IPVT(K) = L
+
+!         Zero pivot implies this column already triangularized.
+
+!         IF (A(L, K) == ZERO) GOTO 40
+          IF (ABS(A(L,K))<=ZERO) GOTO 30
+
+!         Interchange if necessary.
+
+          IF (L==K) GOTO 10
+          T = A(L,K)
+          A(L,K) = A(K,K)
+          A(K,K) = T
+10        CONTINUE
+
+!         Compute multipliers.
+
+          T = -ONE/A(K,K)
+! Original:          
+!         CALL DSCAL_F90(N-K,T,A(K+1,K),1)         
+          CALL DSCAL_F90(N-K,T,A(K+1:N,K),1)
+
+!         Row elimination with column indexing.
+
+          DO J = KP1, N
+            T = A(L,J)
+            IF (L==K) GOTO 20
+            A(L,J) = A(K,J)
+            A(K,J) = T
+20          CONTINUE
+! Original:            
+!           CALL DAXPY_F90(N-K,T,A(K+1,K),1,A(K+1,J),1)
+            CALL DAXPY_F90(N-K,T,A(K+1:N,K),1,A(K+1:N,J),1)
+          END DO
+          GOTO 40
+30        CONTINUE
+          INFO = K
+40        CONTINUE
+        END DO
+50      CONTINUE
+        IPVT(N) = N
+!       IF (A(N, N) == ZERO) INFO = N
+        IF (ABS(A(N,N))<=ZERO) INFO = N
+        RETURN
+
+      END SUBROUTINE DGEFA_F90
+!_______________________________________________________________________
+
+      SUBROUTINE DGESL_F90(A,LDA,N,IPVT,B,JOB)
+! ..
+! Solve the real system A*X=B or TRANS(A)*X=B using the factors
+! computed by DGECO or DGEFA_F90.
+! ..
+!     DGESL_F90 solves the KPP_REAL system
+!     A * X = B or TRANS(A) * X = B
+!     using the factors computed by DGECO or DGEFA_F90.
+!     On Entry
+!        A       REAL(KIND=WP)(LDA, N)
+!                the output from DGECO or DGEFA_F90.
+!        LDA     INTEGER
+!                the leading dimension of the array A.
+!        N       INTEGER
+!                the order of the matrix A.
+!        IPVT    INTEGER(N)
+!                the pivot vector from DGECO or DGEFA_F90.
+!        B       REAL(KIND=WP)(N)
+!                the right hand side vector.
+!        JOB     INTEGER
+!                = 0         to solve A*X = B,
+
+!                = nonzero   to solve TRANS(A)*X = B where
+!                            TRANS(A)is the transpose.
+!     On Return
+!        B       the solution vector X.
+!     Error Condition
+!        A division by zero will occur if the input factor contains a
+!        zero on the diagonal. Technically this indicates singularity
+!        but it is often caused by improper arguments or improper
+!        setting of LDA. It will not occur if the subroutines are
+!        called correctly and if DGECO has set RCOND > 0.0 or
+!        DGEFA_F90 has set INFO == 0.
+!     To compute INVERSE(A) * C where C is a matrix
+!     with P columns
+!           CALL DGECO(A,LDA,N,IPVT,RCOND,Z)
+!           IF (RCOND is too small) GOTO
+!           DO J = 1, P
+!              CALL DGESL_F90(A,LDA,N,IPVT,C(1,J),0)
+!           END DO
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: JOB, LDA, N
+! ..
+! .. Array Arguments ..
+        KPP_REAL, INTENT (INOUT) :: A(LDA,*), B(*)
+        INTEGER, INTENT (INOUT) :: IPVT(*)
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: T
+        INTEGER :: K, KB, L, NM1
+! ..
+! .. FIRST EXECUTABLE STATEMENT DGESL_F90
+! ..
+        NM1 = N - 1
+        IF (JOB/=0) GOTO 30
+
+!       JOB = 0, solve A*X = B.
+!       First solve L*Y = B.
+
+        IF (NM1<1) GOTO 20
+        DO K = 1, NM1
+          L = IPVT(K)
+          T = B(L)
+          IF (L==K) GOTO 10
+          B(L) = B(K)
+          B(K) = T
+10        CONTINUE
+! Original:
+!         CALL DAXPY_F90(N-K,T,A(K+1,K),1,B(K+1),1)
+          CALL DAXPY_F90(N-K,T,A(K+1:N,K),1,B(K+1:N),1)
+        END DO
+20      CONTINUE
+
+!       Now solve U*X = Y.
+
+        DO KB = 1, N
+          K = N + 1 - KB
+          B(K) = B(K)/A(K,K)
+          T = -B(K)
+! Original:
+!         CALL DAXPY_F90(K-1,T,A(1,K),1,B(1),1)
+          CALL DAXPY_F90(K-1,T,A(1:K-1,K),1,B(1:K-1),1)
+        END DO
+        GOTO 60
+30      CONTINUE
+
+!       JOB /= 0, solve TRANS(A)*X = B.
+!       First solve TRANS(U)*Y = B.
+
+        DO K = 1, N
+          T = DDOT_F90(K-1,A(1,K),1,B(1),1)
+          B(K) = (B(K)-T)/A(K,K)
+        END DO
+
+!       Now solve TRANS(L)*X = Y.
+
+        IF (NM1<1) GOTO 50
+        DO KB = 1, NM1
+          K = N - KB
+          B(K) = B(K) + DDOT_F90(N-K,A(K+1,K),1,B(K+1),1)
+          L = IPVT(K)
+          IF (L==K) GOTO 40
+          T = B(L)
+          B(L) = B(K)
+          B(K) = T
+40        CONTINUE
+        END DO
+50      CONTINUE
+60      CONTINUE
+        RETURN
+
+      END SUBROUTINE DGESL_F90
+!_______________________________________________________________________
+
+      SUBROUTINE DGBFA_F90(ABD,LDA,N,ML,MU,IPVT,INFO)
+! ..
+! Factor a banded matrix using Gaussian elimination.
+! ..
+!     DGBFA_F90 factors a KPP_REAL band matrix by elimination.
+!     DGBFA_F90 is usually called by DGBCO, but it can be called
+!     directly with a saving in time if RCOND is not needed.
+!     On Entry
+!        ABD     REAL(KIND=WP)(LDA, N)
+!                contains the matrix in band storage. The columns
+!                of the matrix are stored in the columns of ABD and
+!                the diagonals of the matrix are stored in rows
+!                ML+1 through 2*ML+MU+1 of ABD.
+!                See the comments below for details.
+!        LDA     INTEGER
+!                the leading dimension of the array ABD.
+!                LDA must be >= 2*ML + MU + 1.
+!        N       INTEGER
+!                the order of the original matrix.
+!        ML      INTEGER
+!                number of diagonals below the main diagonal.
+!                0 <= ML < N.
+!        MU      INTEGER
+!                number of diagonals above the main diagonal.
+!                0 <= MU < N.
+!                More efficient if ML <= MU.
+!     On Return
+!        ABD     an upper triangular matrix in band storage and
+!                the multipliers which were used to obtain it.
+!                The factorization can be written A = L*U where
+!                L is a product of permutation and unit lower
+!                triangular matrices and U is upper triangular.
+!        IPVT    INTEGER(N)
+!                an integer vector of pivot indices.
+!        INFO    INTEGER
+!                = 0  normal value.
+!                = K  if U(K,K) == 0.0. This is not an error
+!                     condition for this subroutine, but it does
+!                     indicate that DGBSL_F90 will divide by zero
+!                     if called. Use RCOND in DGBCO for a reliable
+!                     indication of singularity.
+!     Band Storage
+!           If A is a band matrix, the following program segment
+!           will set up the input.
+!                   ML = (band width below the diagonal)
+!                   MU = (band width above the diagonal)
+!                   M = ML + MU + 1
+!                   DO J = 1, N
+!                      I1 = MAX(1, J-MU)
+!                      I2 = MIN(N, J+ML)
+!                      DO 10 I = I1, I2
+!                         K = I - J + M
+!                         ABD(K,J) = A(I,J)
+!                      END DO
+!                   END DO
+!           This uses rows ML+1 through 2*ML+MU+1 of ABD.
+!           In addition, the first ML rows in ABD are used for
+!           elements generated during the triangularization.
+!           The total number of rows needed in ABD is 2*ML+MU+1.
+!           The ML+MU by ML+MU upper left triangle and the
+!           ML by ML lower right triangle are not referenced.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (INOUT) :: INFO
+        INTEGER, INTENT (IN) :: LDA, ML, MU, N
+! ..
+! .. Array Arguments ..
+        KPP_REAL, INTENT (INOUT) :: ABD(LDA,*)
+        INTEGER, INTENT (INOUT) :: IPVT(*)
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: T
+        INTEGER :: I0, J, J0, J1, JU, JZ, K, KP1, L, LM, M, MM, NM1
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, MAX, MIN
+! ..
+! .. FIRST EXECUTABLE STATEMENT DGBFA_F90
+! ..
+        M = ML + MU + 1
+        INFO = 0
+
+!       Zero initial fill-in columns.
+
+        J0 = MU + 2
+        J1 = MIN(N,M) - 1
+        IF (J1<J0) GOTO 10
+        DO JZ = J0, J1
+          I0 = M + 1 - JZ
+          ABD(I0:ML,JZ) = ZERO
+        END DO
+10      CONTINUE
+        JZ = J1
+        JU = 0
+
+!       Gaussian elimination with partial pivoting.
+
+        NM1 = N - 1
+        IF (NM1<1) GOTO 80
+        DO K = 1, NM1
+          KP1 = K + 1
+
+!         Zero next fill-in column.
+
+          JZ = JZ + 1
+          IF (JZ>N) GOTO 20
+          IF (ML<1) GOTO 20
+          ABD(1:ML,JZ) = ZERO
+20        CONTINUE
+
+!         Find L = pivot index.
+
+          LM = MIN(ML,N-K)
+! Original:
+!         L = IDAMAX_F90(LM+1,ABD(M,K),1) + M - 1
+          L = IDAMAX_F90(LM+1,ABD(M:M+LM,K),1) + M - 1
+
+          IPVT(K) = L + K - M
+
+!         Zero pivot implies this column already triangularized.
+
+!         IF (ABD(L, K) == ZERO) GOTO 100
+          IF (ABS(ABD(L,K))<=ZERO) GOTO 60
+
+!         Interchange if necessary.
+
+          IF (L==M) GOTO 30
+          T = ABD(L,K)
+          ABD(L,K) = ABD(M,K)
+          ABD(M,K) = T
+30        CONTINUE
+
+!         Compute multipliers.
+
+          T = -ONE/ABD(M,K)
+! Original:
+!         CALL DSCAL_F90(LM,T,ABD(M+1,K),1)
+          CALL DSCAL_F90(LM,T,ABD(M+1:M+LM,K),1)
+
+!         Row elimination with column indexing.
+
+          JU = MIN(MAX(JU,MU+IPVT(K)),N)
+          MM = M
+          IF (JU<KP1) GOTO 50
+          DO J = KP1, JU
+            L = L - 1
+            MM = MM - 1
+            T = ABD(L,J)
+            IF (L==MM) GOTO 40
+            ABD(L,J) = ABD(MM,J)
+            ABD(MM,J) = T
+40          CONTINUE
+! Original:
+!           CALL DAXPY_F90(LM,T,ABD(M+1,K),1,ABD(MM+1,J),1)
+            CALL DAXPY_F90(LM,T,ABD(M+1:M+LM,K),1,ABD(MM+1:M+LM,J),1)
+          END DO
+50        CONTINUE
+          GOTO 70
+60        CONTINUE
+          INFO = K
+70        CONTINUE
+        END DO
+80      CONTINUE
+        IPVT(N) = N
+!       IF (ABD(M, N) == ZERO) INFO = N
+        IF (ABS(ABD(M,N))<=ZERO) INFO = N
+        RETURN
+
+      END SUBROUTINE DGBFA_F90
+!_______________________________________________________________________
+
+      SUBROUTINE DGBSL_F90(ABD,LDA,N,ML,MU,IPVT,B,JOB)
+! ..
+! Solve the real band system A*X=B or TRANS(A)*X=B using the factors
+! computed by DGBCO or DGBFA_F90.
+! ..
+!     DGBSL_F90 solves the KPP_REAL band system
+!     A * X = B or TRANS(A) * X = B
+!     using the factors computed by DGBCO or DGBFA_F90.
+!     On Entry
+!        ABD     REAL(KIND=WP)(LDA, N)
+!                the output from DGBCO or DGBFA_F90.
+!        LDA     INTEGER
+!                the leading dimension of the array ABD.
+!        N       INTEGER
+!                the order of the original matrix.
+!        ML      INTEGER
+!                number of diagonals below the main diagonal.
+!        MU      INTEGER
+!                number of diagonals above the main diagonal.
+!        IPVT    INTEGER(N)
+!                the pivot vector from DGBCO or DGBFA_F90.
+!        B       REAL(KIND=WP)(N)
+!                the right hand side vector.
+!        JOB     INTEGER
+!                = 0         to solve A*X = B,
+!                = nonzero   to solve TRANS(A)*X = B, where
+!                            TRANS(A) is the transpose.
+!     On Return
+!        B       the solution vector X.
+!     Error Condition
+!        A division by zero will occur if the input factor contains a
+!        zero on the diagonal. Technically this indicates singularity
+!        but it is often caused by improper arguments or improper
+!        setting of LDA. It will not occur if the subroutines are
+!        called correctly and if DGBCO has set RCOND > 0.0
+!        or DGBFA_F90 has set INFO == 0 .
+!     To compute INVERSE(A) * C where C is a matrix
+!     with P columns
+!           CALL DGBCO(ABD,LDA,N,ML,MU,IPVT,RCOND,Z)
+!           IF (RCOND is too small) GOTO ...
+!           DO J = 1, P
+!              CALL DGBSL_F90(ABD,LDA,N,ML,MU,IPVT,C(1,J),0)
+!           END DO
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: JOB, LDA, ML, MU, N
+! ..
+! .. Array Arguments ..
+        KPP_REAL, INTENT (INOUT) :: ABD(LDA,*), B(*)
+        INTEGER, INTENT (INOUT) :: IPVT(*)
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: T
+        INTEGER :: K, KB, L, LA, LB, LM, M, NM1
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC MIN
+! ..
+! .. FIRST EXECUTABLE STATEMENT DGBSL_F90
+! ..
+        M = MU + ML + 1
+        NM1 = N - 1
+        IF (JOB/=0) GOTO 30
+
+!       JOB = 0, solve A*X = B.
+!       First solve L*Y = B.
+
+        IF (ML==0) GOTO 20
+        IF (NM1<1) GOTO 20
+        DO K = 1, NM1
+          LM = MIN(ML,N-K)
+          L = IPVT(K)
+          T = B(L)
+          IF (L==K) GOTO 10
+          B(L) = B(K)
+          B(K) = T
+10        CONTINUE
+! Original:
+!         CALL DAXPY_F90(LM,T,ABD(M+1,K),1,B(K+1),1)
+          CALL DAXPY_F90(LM,T,ABD(M+1:M+LM,K),1,B(K+1:K+LM),1)
+        END DO
+20      CONTINUE
+
+!       Now solve U*X = Y.
+
+        DO KB = 1, N
+          K = N + 1 - KB
+          B(K) = B(K)/ABD(M,K)
+          LM = MIN(K,M) - 1
+          LA = M - LM
+          LB = K - LM
+          T = -B(K)
+! Original:
+!         CALL DAXPY_F90(LM,T,ABD(LA,K),1,B(LB),1)
+          CALL DAXPY_F90(LM,T,ABD(LA:LA+LM-1,K),1,B(LB:LB+LM-1),1)
+        END DO
+        GOTO 60
+30      CONTINUE
+
+!       JOB /= 0, solve TRANS(A)*X = B.
+
+!       First solve TRANS(U)*Y = B.
+
+        DO K = 1, N
+          LM = MIN(K,M) - 1
+          LA = M - LM
+          LB = K - LM
+! Original:
+!         T = DDOT_F90(LM,ABD(LA,K),1,B(LB),1)
+          T = DDOT_F90(LM,ABD(LA:LA+LM-1,K),1,B(LB:LB+LM-1),1)
+          B(K) = (B(K)-T)/ABD(M,K)
+        END DO
+
+!       Now solve TRANS(L)*X = Y.
+
+        IF (ML==0) GOTO 50
+        IF (NM1<1) GOTO 50
+        DO KB = 1, NM1
+          K = N - KB
+          LM = MIN(ML,N-K)
+! Original:
+!         B(K) = B(K) + DDOT_F90(LM,ABD(M+1,K),1,B(K+1),1)
+          B(K) = B(K) + DDOT_F90(LM,ABD(M+1:M+LM,K),1,B(K+1:K+LM),1)
+          L = IPVT(K)
+          IF (L==K) GOTO 40
+          T = B(L)
+          B(L) = B(K)
+          B(K) = T
+40        CONTINUE
+        END DO
+50      CONTINUE
+60      CONTINUE
+        RETURN
+
+      END SUBROUTINE DGBSL_F90
+!_______________________________________________________________________
+
+      SUBROUTINE DAXPY_F90(N,DA,DX,INCX,DY,INCY)
+! ..
+! Compute a constant times a vector plus a vector.
+! ..
+!     Description of Parameters
+!     Input:
+!     N    - number of elements in input vector(s)
+!     DA   - KPP_REAL scalar multiplier
+!     DX   - KPP_REAL vector with N elements
+!     INCX - storage spacing between elements of DX
+!     DY   - KPP_REAL vector with N elements
+!     INCY -  storage spacing between elements of DY
+!     Output:
+!     DY - KPP_REAL result (unchanged if N <= 0)
+!     Overwrite KPP_REAL DY with KPP_REAL DA*DX + DY.
+!     For I = 0 to N-1, replace  DY(LY+I*INCY) with
+!     DA*DX(LX+I*INCX) + DY(LY+I*INCY),
+!     where LX = 1 if INCX >= 0, else LX = 1+(1-N)*INCX,
+!     and LY is defined in a similar way using INCY.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        KPP_REAL, INTENT (IN) :: DA
+        INTEGER, INTENT (IN) :: INCX, INCY, N
+! ..
+! .. Array Arguments ..
+        KPP_REAL, INTENT (IN) :: DX(*)
+        KPP_REAL, INTENT (INOUT) :: DY(*)
+! ..
+! .. Local Scalars ..
+        INTEGER :: I, IX, IY, M, MP1, NS
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, MOD
+! ..
+! .. FIRST EXECUTABLE STATEMENT DAXPY_F90
+! ..
+!       IF (N <= 0 .OR. DA == ZERO) RETURN
+        IF (N<=0 .OR. ABS(DA)<=ZERO) RETURN
+!       IF (INCX==INCY) IF (INCX-1) 10, 20, 40
+        IF (INCX == INCY) THEN
+          IF (INCX < 1) THEN
+             GOTO 10
+          ELSEIF (INCX == 1) THEN
+             GOTO 20
+          ELSE
+             GOTO 40
+          END IF
+        END IF
+
+!       Code for unequal or nonpositive increments.
+
+10      IX = 1
+        IY = 1
+        IF (INCX<0) IX = (-N+1)*INCX + 1
+        IF (INCY<0) IY = (-N+1)*INCY + 1
+        DO I = 1, N
+          DY(IY) = DY(IY) + DA*DX(IX)
+          IX = IX + INCX
+          IY = IY + INCY
+        END DO
+        RETURN
+
+!       Code for both increments equal to 1.
+
+!       Clean-up loop so remaining vector length is a multiple of 4.
+
+20      M = MOD(N,4)
+        IF (M==0) GOTO 30
+        DY(1:M) = DY(1:M) + DA*DX(1:M)
+        IF (N<4) RETURN
+30      MP1 = M + 1
+        DO I = MP1, N, 4
+          DY(I) = DY(I) + DA*DX(I)
+          DY(I+1) = DY(I+1) + DA*DX(I+1)
+          DY(I+2) = DY(I+2) + DA*DX(I+2)
+          DY(I+3) = DY(I+3) + DA*DX(I+3)
+        END DO
+        RETURN
+
+!       Code for equal, positive, non-unit increments.
+
+40      NS = N*INCX
+        DO I = 1, NS, INCX
+          DY(I) = DA*DX(I) + DY(I)
+        END DO
+        RETURN
+
+      END SUBROUTINE DAXPY_F90
+!_______________________________________________________________________
+
+      SUBROUTINE DCOPY_F90(N,DX,INCX,DY,INCY)
+! ..
+! Copy a vector to another vector.
+! ..
+!     Description of Parameters
+!     Input:
+!     N    - number of elements in input vector(s)
+!     DX   - KPP_REAL vector with N elements
+!     INCX - storage spacing between elements of DX
+!     DY   - KPP_REAL vector with N elements
+!     INCY - storage spacing between elements of DY
+!     Output:
+!     DY - copy of vector DX(unchanged if N <= 0)
+!     Copy KPP_REAL DX to KPP_REAL DY.
+!     For I = 0 to N-1, copy DX(LX+I*INCX) to DY(LY+I*INCY),
+!     where LX = 1 if INCX >= 0, else LX = 1+(1-N)*INCX,
+!     and LY is defined in a similar way using INCY.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: INCX, INCY, N
+! ..
+! .. Array Arguments ..
+        KPP_REAL, INTENT (IN) :: DX(*)
+        KPP_REAL, INTENT (INOUT) :: DY(*)
+! ..
+! .. Local Scalars ..
+        INTEGER :: I, IX, IY, M, MP1, NS
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC MOD
+! ..
+! .. FIRST EXECUTABLE STATEMENT DCOPY_F90
+! ..
+        IF (N<=0) RETURN
+!       IF (INCX==INCY) IF (INCX-1) 10, 20, 40
+        IF (INCX == INCY) THEN
+          IF (INCX < 1) THEN
+             GOTO 10
+          ELSEIF (INCX == 1) THEN
+             GOTO 20
+          ELSE
+             GOTO 40
+          END IF
+        END IF
+
+!       Code for unequal or nonpositive increments.
+
+10      IX = 1
+        IY = 1
+        IF (INCX<0) IX = (-N+1)*INCX + 1
+        IF (INCY<0) IY = (-N+1)*INCY + 1
+        DO I = 1, N
+          DY(IY) = DX(IX)
+          IX = IX + INCX
+          IY = IY + INCY
+        END DO
+        RETURN
+
+!       Code for both increments equal to 1.
+
+!       Clean-up loop so remaining vector length is a multiple of 7.
+
+20      M = MOD(N,7)
+        IF (M==0) GOTO 30
+        DO I = 1, M
+          DY(I) = DX(I)
+        END DO
+        IF (N<7) RETURN
+30      MP1 = M + 1
+        DO I = MP1, N, 7
+          DY(I) = DX(I)
+          DY(I+1) = DX(I+1)
+          DY(I+2) = DX(I+2)
+          DY(I+3) = DX(I+3)
+          DY(I+4) = DX(I+4)
+          DY(I+5) = DX(I+5)
+          DY(I+6) = DX(I+6)
+        END DO
+        RETURN
+
+!       Code for equal, positive, non-unit increments.
+
+40      NS = N*INCX
+        DO I = 1, NS, INCX
+          DY(I) = DX(I)
+        END DO
+        RETURN
+
+      END SUBROUTINE DCOPY_F90
+!_______________________________________________________________________
+
+      FUNCTION DDOT_F90(N,DX,INCX,DY,INCY)
+! ..
+! Compute the inner product of two vectors.
+! ..
+!     Description of Parameters
+!     Input:
+!     N    - number of elements in input vector(s)
+!     DX   - KPP_REAL vector with N elements
+!     INCX - storage spacing between elements of DX
+!     DY   - KPP_REAL vector with N elements
+!     INCY - storage spacing between elements of DY
+!     Output:
+!     DDOT_F90 - KPP_REAL dot product (zero if N <= 0)
+!     Returns the dot product of KPP_REAL DX and DY.
+!     DDOT_F90 = sum for I = 0 to N-1 of  DX(LX+I*INCX) * DY(LY+I*INCY),
+!     where LX = 1 if INCX >= 0, else LX = 1+(1-N)*INCX, and LY is
+!     defined in a similar way using INCY.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Function Return Value ..
+        KPP_REAL :: DDOT_F90
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: INCX, INCY, N
+! ..
+! .. Array Arguments ..
+        KPP_REAL, INTENT (IN) :: DX(*), DY(*)
+! ..
+! .. Local Scalars ..
+        INTEGER :: I, IX, IY, M, MP1, NS
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC MOD
+! ..
+! .. FIRST EXECUTABLE STATEMENT DDOT_F90
+! ..
+        DDOT_F90 = ZERO
+        IF (N<=0) RETURN
+!       IF (INCX==INCY) IF (INCX-1) 10, 20, 40
+        IF (INCX == INCY) THEN
+          IF (INCX < 1) THEN
+             GOTO 10
+          ELSEIF (INCX == 1) THEN
+             GOTO 20
+          ELSE
+             GOTO 40
+          END IF
+        END IF
+
+!       Code for unequal or nonpositive increments.
+
+10      IX = 1
+        IY = 1
+        IF (INCX<0) IX = (-N+1)*INCX + 1
+        IF (INCY<0) IY = (-N+1)*INCY + 1
+        DO I = 1, N
+          DDOT_F90 = DDOT_F90 + DX(IX)*DY(IY)
+          IX = IX + INCX
+          IY = IY + INCY
+        END DO
+        RETURN
+
+!       Code for both increments equal to 1.
+
+!       Clean-up loop so remaining vector length is a multiple of 5.
+
+20      M = MOD(N,5)
+        IF (M==0) GOTO 30
+        DO I = 1, M
+          DDOT_F90 = DDOT_F90 + DX(I)*DY(I)
+        END DO
+        IF (N<5) RETURN
+30      MP1 = M + 1
+        DO I = MP1, N, 5
+          DDOT_F90 = DDOT_F90 + DX(I)*DY(I) + DX(I+1)*DY(I+1) + &
+            DX(I+2)*DY(I+2) + DX(I+3)*DY(I+3) + DX(I+4)*DY(I+4)
+        END DO
+        RETURN
+
+!       Code for equal, positive, non-unit increments.
+
+40      NS = N*INCX
+        DO I = 1, NS, INCX
+          DDOT_F90 = DDOT_F90 + DX(I)*DY(I)
+        END DO
+        RETURN
+
+      END FUNCTION DDOT_F90
+!_______________________________________________________________________
+
+      SUBROUTINE DSCAL_F90(N,DA,DX,INCX)
+! ..
+! Multiply a vector by a constant.
+! ..
+!     Description of Parameters
+!     Input:
+!     N    - number of elements in input vector(s)
+!     DA   - KPP_REAL scale factor
+!     DX   - KPP_REAL vector with N elements
+!     INCX - storage spacing between elements of DX
+!     Output:
+!     DX - KPP_REAL result (unchanged if N <= 0)
+!     Replace KPP_REAL DX by KPP_REAL DA*DX.
+!     For I = 0 to N-1, replace DX(IX+I*INCX) with DA * DX(IX+I*INCX),
+!     where IX = 1 if INCX >= 0, else IX = 1+(1-N)*INCX.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        KPP_REAL, INTENT (IN) :: DA
+        INTEGER, INTENT (IN) :: INCX, N
+! ..
+! .. Array Arguments ..
+        KPP_REAL, INTENT (INOUT) :: DX(*)
+! ..
+! .. Local Scalars ..
+        INTEGER :: I, IX, M, MP1
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC MOD
+! ..
+! .. FIRST EXECUTABLE STATEMENT DSCAL_F90
+! ..
+        IF (N<=0) RETURN
+        IF (INCX==1) GOTO 10
+
+!       Code for increment not equal to 1.
+
+        IX = 1
+        IF (INCX<0) IX = (-N+1)*INCX + 1
+        DO I = 1, N
+          DX(IX) = DA*DX(IX)
+          IX = IX + INCX
+        END DO
+        RETURN
+
+!       Code for increment equal to 1.
+
+!       Clean-up loop so remaining vector length is a multiple of 5.
+
+10      M = MOD(N,5)
+        IF (M==0) GOTO 20
+        DX(1:M) = DA*DX(1:M)
+        IF (N<5) RETURN
+20      MP1 = M + 1
+        DO I = MP1, N, 5
+          DX(I) = DA*DX(I)
+          DX(I+1) = DA*DX(I+1)
+          DX(I+2) = DA*DX(I+2)
+          DX(I+3) = DA*DX(I+3)
+          DX(I+4) = DA*DX(I+4)
+        END DO
+        RETURN
+
+      END SUBROUTINE DSCAL_F90
+!_______________________________________________________________________
+
+      FUNCTION IDAMAX_F90(N,DX,INCX)
+! ..
+! Find the smallest index of that component of a vector
+! having the maximum magnitude.
+! ..
+!     Description of Parameters
+!     Input:
+!     N    - number of elements in input vector(s)
+!     DX   - KPP_REAL vector with N elements
+!     INCX - storage spacing between elements of DX
+!     Output:
+!     IDAMAX_F90 - smallest index (zero if N <= 0)
+!     Find smallest index of maximum magnitude of KPP_REAL DX.
+!     IDAMAX_F90 = first I, I = 1 to N, to maximize
+!     ABS(DX(IX+(I-1)*INCX)), where IX = 1 if INCX >= 0,
+!     else IX = 1+(1-N)*INCX.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Function Return Value ..
+        INTEGER :: IDAMAX_F90
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: INCX, N
+! ..
+! .. Array Arguments ..
+        KPP_REAL, INTENT (IN) :: DX(*)
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: DMAX, XMAG
+        INTEGER :: I, IX
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS
+! ..
+! .. FIRST EXECUTABLE STATEMENT IDAMAX_F90
+! ..
+        IDAMAX_F90 = 0
+        IF (N<=0) RETURN
+        IDAMAX_F90 = 1
+        IF (N==1) RETURN
+
+        IF (INCX==1) GOTO 10
+
+!       Code for increments not equal to 1.
+
+        IX = 1
+        IF (INCX<0) IX = (-N+1)*INCX + 1
+        DMAX = ABS(DX(IX))
+        IX = IX + INCX
+        DO I = 2, N
+          XMAG = ABS(DX(IX))
+          IF (XMAG>DMAX) THEN
+            IDAMAX_F90 = I
+            DMAX = XMAG
+          END IF
+          IX = IX + INCX
+        END DO
+        RETURN
+
+!       Code for increments equal to 1.
+
+10      DMAX = ABS(DX(1))
+        DO I = 2, N
+          XMAG = ABS(DX(I))
+          IF (XMAG>DMAX) THEN
+            IDAMAX_F90 = I
+            DMAX = XMAG
+          END IF
+        END DO
+        RETURN
+
+      END FUNCTION IDAMAX_F90
+! End of LINPACK and BLAS subroutines
+!_______________________________________________________________________
+
+! Beginning of MA28 subroutines
+! THIS IS A FORTRAN 90 TRANSLATION OF HSL'S F77 MA28. IT IS INTENDED
+! ONLY FOR USE IN CONJUNCTION WITH THE ODE SOLVER DVODE_F90 AND IS
+! NOT FUNCTIONAL IN A STANDALONE MANNER. PLEASE NOTE THAT MA28 IS NOT
+! PUBLIC DOMAIN SOFTWARE BUT HAS BEEN MADE AVAILABLE TO THE NUMERICAL
+! ANALYSIS COMMUNITY BY HARWELL. FOR OTHER USE PLEASE CONTACT HARWELL
+! AT HTTP://WWW.HSL-LIBRARY.COM OR CONTACT HSL@HYPROTECH.COM IF YOU
+! WISH TO SOLVE GENERAL SPARSE LINEAR SYSTEMS. IF YOU FIND A BUG OR
+! ENCOUNTER A PROBLEM WITH THE USE OF MA28 WITH DVODE.F90, PLEASE
+! CONTACT ONE OF THE AUTHORS OF DVODE_F90:
+!           G.D. Byrne (gbyrne@wi.rr.com)
+!           S. Thompson, thompson@radford.edu
+! NUMEROUS CHANGES WERE MADE IN CONNECTION WITH DVODE_F90 USAGE. THESE
+! INCLUDE USING METCALF'S CONVERTER TO TRANSLATE THE ORIGINAL f77 CODE
+! TO F90, MOVING INITIALIZATIONS TO THE DVODE_F90 PRIVATE SECTION,
+! ELIMINATION OF HOLLERITHS IN FORMAT STATEMENTS, ELIMINATION OF
+! BLOCKDATA, CHANGES IN ARITHMETICAL OPERATOR SYNTAX, AND CONVERSION
+! TO UPPER CASE. THIS VERSION OF MA28 IS INTENDED ONLY FOR USE WITH
+! DVODE_F90. PLEASE DO NOT MODIFY IT FOR ANY OTHER PURPOSE. IF YOU
+! HAVE LICENSED ACCESS TO THE HSL LIBRARY, AN ALTERNATE VERSION OF
+! DVODE_F90 BASED ON THE SUCCESSOR TO MA28, MA48, IS AVAILABLE FROM
+! THE AUTHORS. PLEASE NOTE THAT THE ALTERNATE VERSION OF DVODE_F90
+! IS NOT SELF CONTAINED SINCE MA48 IS NOT DISTRIBUTED WITH DVODE_F90.
+!******************************************************************
+!             *****MA28 COPYRIGHT NOTICE*****
+! COPYRIGHT (C) 2001 COUNCIL FOR THE CENTRAL LABORATORY
+!               OF THE RESEARCH COUNCILS
+! ALL RIGHTS RESERVED.
+
+! NONE OF THE COMMENTS IN THIS COPYRIGHT NOTICE BETWEEN THE LINES
+! OF ASTERISKS SHALL BE REMOVED OR ALTERED IN ANY WAY.
+
+! THIS PACKAGE IS INTENDED FOR COMPILATION WITHOUT MODIFICATION,
+! SO MOST OF THE EMBEDDED COMMENTS HAVE BEEN REMOVED.
+
+! ALL USE IS SUBJECT TO LICENCE. IF YOU NEED FURTHER CLARIFICATION,
+! PLEASE SEE HTTP://WWW.HSL-LIBRARY.COM OR CONTACT HSL@HYPROTECH.COM
+
+! PLEASE NOTE THAT:
+
+! 1. THE PACKAGES MAY ONLY BE USED FOR THE PURPOSES SPECIFIED IN THE
+!    LICENCE AGREEMENT AND MUST NOT BE COPIED BY THE LICENSEE FOR
+!    USE BY ANY OTHER PERSONS. USE OF THE PACKAGES IN ANY COMMERCIAL
+!    APPLICATION SHALL BE SUBJECT TO PRIOR WRITTEN AGREEMENT BETWEEN
+!    HYPROTECH UK LIMITED AND THE LICENSEE ON SUITABLE TERMS AND
+!    CONDITIONS, WHICH WILL INCLUDE FINANCIAL CONDITIONS.
+! 2. ALL INFORMATION ON THE PACKAGE IS PROVIDED TO THE LICENSEE ON
+!    THE UNDERSTANDING THAT THE DETAILS THEREOF ARE CONFIDENTIAL.
+! 3. ALL PUBLICATIONS ISSUED BY THE LICENSEE THAT INCLUDE RESULTS
+!    OBTAINED WITH THE HELP OF ONE OR MORE OF THE PACKAGES SHALL
+!    ACKNOWLEDGE THE USE OF THE PACKAGES. THE LICENSEE WILL NOTIFY
+!    HSL@HYPROTECH.COM OR HYPROTECH UK LIMITED OF ANY SUCH PUBLICATION.
+! 4. THE PACKAGES MAY BE MODIFIED BY OR ON BEHALF OF THE LICENSEE
+!    FOR SUCH USE IN RESEARCH APPLICATIONS BUT AT NO TIME SHALL SUCH
+!    PACKAGES OR MODIFICATIONS THEREOF BECOME THE PROPERTY OF THE
+!    LICENSEE. THE LICENSEE SHALL MAKE AVAILABLE FREE OF CHARGE TO THE
+!    COPYRIGHT HOLDER FOR ANY PURPOSE ALL INFORMATION RELATING TO
+!    ANY MODIFICATION.
+! 5. NEITHER COUNCIL FOR THE CENTRAL LABORATORY OF THE RESEARCH
+!    COUNCILS NOR HYPROTECH UK LIMITED SHALL BE LIABLE FOR ANY
+!    DIRECT OR CONSEQUENTIAL LOSS OR DAMAGE WHATSOEVER ARISING OUT OF
+!    THE USE OF PACKAGES BY THE LICENSEE.
+!******************************************************************
+
+      SUBROUTINE MA28AD(N,NZ,A,LICN,IRN,LIRN,ICN,U,IKEEP,IW,W,IFLAG)
+! ..
+! This subroutine performs the LU factorization of A.
+! ..
+! The parameters are as follows:
+! N     Order of matrix. Not altered by subroutine.
+! NZ    Number of non-zeros in input matrix. Not altered by subroutine.
+! A     Array of length LICN. Holds non-zeros of matrix
+!       on entry and non-zeros of factors on exit. Reordered by
+!       MA20AD and MC23AD and altered by MA30AD.
+! LICN  Length of arrays A and ICN. Not altered by subroutine.
+! IRN   Array of length LIRN. Holds row indices on input.
+!       Used as workspace by MA30AD to hold column orientation of
+!       matrix.
+! LIRN  Length of array IRN. Not altered by the subroutine.
+! ICN   Array of length LICN. Holds column indices on entry
+!       and column indices of decomposed matrix on exit. Reordered
+!       by MA20AD and MC23AD and altered by MA30AD.
+! U     Variable set by user to control bias towards numeric or
+!       sparsity pivoting. U = 1.0 gives partial pivoting
+!       while U = 0. does not check multipliers at all. Values of U
+!       greater than one are treated as one while negative values
+!       are treated as zero. Not altered by subroutine.
+! IKEEP Array of length 5*N used as workspace by MA28AD.
+!       (See later comments.) It is not required to be set on entry
+!       and, on exit, it contains information about the decomposition.
+!       It should be preserved between this call and subsequent calls
+!       to MA28BD or MA30CD.
+!       IKEEP(I,1),I = 1,N holds the total length of the part of row
+!       I in the diagonal block.
+!       Row IKEEP(I,2),I = 1,N of the input matrix is the Ith row in
+!       pivot order.
+!       Column IKEEP(I,3),I = 1,N of the input matrix is the Ith
+!       Column in pivot order.
+!       IKEEP(I,4),I = 1,N holds the length of the part of row I in
+!       the L part of the LU decomposition.
+!       IKEEP(I,5),I = 1,N holds the length of the part of row I in
+!       the off-diagonal blocks. If there is only one diagonal block,
+!       IKEEP(1,5) will be set to -1.
+! IW    Array of length 8*N. If the option NSRCH <= N is used, then
+!       the length of array IW can be reduced to 7*N.
+! W     Array length N. Used by MC24AD both as workspace and to return
+!       growth estimate in W(1). The use of this array by MA28AD is
+!       thus optional depending on logical variable GROW.
+! IFLAG Variable used as error flag by subroutine. A positive or
+!       zero value on exit indicates success. Possible negative
+!       values are -1 through -14.
+
+! Private Variable Information.
+! LP, MP Default value 6 (line printer). Unit number for error
+!     messages and duplicate element warning, respectively.
+! NLP, MLP INTEGER. Unit number for messages from MA30AD and
+!     MC23AD. Set by MA28AD to the value of LP.
+! LBLOCK Logical variable with default value .TRUE. If .TRUE.,
+!     MC23AD is used to first permute the matrix to block lower
+!     triangular form.
+! GROW Logical variable with default value .TRUE. If .TRUE., then
+!     an estimate of the increase in size of matrix elements during
+!     LU decomposition is given by MC24AD.
+! EPS, RMIN, RESID. Variables not referenced by MA28AD.
+! IRNCP, ICNCP INTEGER. Set to number of compresses on arrays IRN
+!     and ICN/A, respectively.
+! MINIRN, MINICN INTEGER. Minimum length of arrays IRN and ICN/A,
+!     respectively, for success on future runs.
+! IRANK INTEGER. Estimated rank of matrix.
+! MIRNCP, MICNCP, MIRANK, MIRN, MICN INTEGER. Variables used to
+!     communicate between MA30FD and MA28FD values of
+!     abovenamed variables with somewhat similar names.
+! ABORT1, ABORT2 LOGICAL. Variables with default value .TRUE.
+!     If .FALSE., then decomposition will be performed even
+!     if the matrix is structurally or numerically singular,
+!     respectively.
+! ABORTA, ABORTB LOGICAL. Variables used to communicate values
+!     of ABORT1 and ABORT2 to MA30AD.
+! ABORT Logical variable used to communicate value of ABORT1
+!     to MC23AD.
+! ABORT3 Logical variable. Not referenced by MA28AD.
+! IDISP Array of length 2. Used to communicate information
+!     on decomposition between this call to MA28AD and subsequent
+!     calls to MA28BD and MA30CD. On exit, IDISP(1) and
+!     IDISP(2) indicate position in arrays A and ICN of the
+!     first and last elements in the LU decomposition of the
+!     diagonal blocks, respectively.
+! NUMNZ Structural rank of matrix.
+! NUM   Number of diagonal blocks.
+! LARGE Size of largest diagonal block.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        KPP_REAL :: U
+        INTEGER :: IFLAG, LICN, LIRN, N, NZ
+! ..
+! .. Array Arguments ..
+        KPP_REAL :: A(LICN), W(N)
+        INTEGER :: ICN(LICN), IKEEP(N,5), IRN(LIRN), IW(N,8)
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: UPRIV
+        INTEGER :: I, I1, IEND, II, J, J1, J2, JAY, JJ, KNUM, LENGTH, MOVE, &
+          NEWJ1, NEWPOS
+        CHARACTER (80) :: MSG
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, MAX
+! ..
+! .. FIRST EXECUTABLE STATEMENT MA28AD
+! ..
+!       Check that this call was made from DVODE_F90 and, if not, stop.
+        IF (.NOT.OK_TO_CALL_MA28) THEN
+          MSG = 'This version of MA28 may be used only in conjunction with DVODE_F90.'
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = 'Please refer to the following HSL copyright notice for MA28.'
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = '******************************************************************     '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = '             *****MA28 COPYRIGHT NOTICE*****                           '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = ' COPYRIGHT (C) 2001 COUNCIL FOR THE CENTRAL LABORATORY                 '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = '               OF THE RESEARCH COUNCILS                                '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = ' ALL RIGHTS RESERVED.                                                  '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = ' NONE OF THE COMMENTS IN THIS COPYRIGHT NOTICE BETWEEN THE LINES       '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = ' OF ASTERISKS SHALL BE REMOVED OR ALTERED IN ANY WAY.                  '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = ' THIS PACKAGE IS INTENDED FOR COMPILATION WITHOUT MODIFICATION,        '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = ' SO MOST OF THE EMBEDDED COMMENTS HAVE BEEN REMOVED.                   '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = ' ALL USE IS SUBJECT TO LICENCE. IF YOU NEED FURTHER CLARIFICATION,     '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = ' PLEASE SEE HTTP://WWW.HSL-LIBRARY.COM OR CONTACT HSL@HYPROTECH.COM    '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = ' PLEASE NOTE THAT:                                                     '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = ' 1. THE PACKAGES MAY ONLY BE USED FOR THE PURPOSES SPECIFIED IN THE    '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = '    LICENCE AGREEMENT AND MUST NOT BE COPIED BY THE LICENSEE FOR       '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = '    USE BY ANY OTHER PERSONS. USE OF THE PACKAGES IN ANY COMMERCIAL    '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = '    APPLICATION SHALL BE SUBJECT TO PRIOR WRITTEN AGREEMENT BETWEEN    '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = '    HYPROTECH UK LIMITED AND THE LICENSEE ON SUITABLE TERMS AND        '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = '    CONDITIONS, WHICH WILL INCLUDE FINANCIAL CONDITIONS.               '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = ' 2. ALL INFORMATION ON THE PACKAGE IS PROVIDED TO THE LICENSEE ON      '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = '    THE UNDERSTANDING THAT THE DETAILS THEREOF ARE CONFIDENTIAL.       '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = ' 3. ALL PUBLICATIONS ISSUED BY THE LICENSEE THAT INCLUDE RESULTS       '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = '    OBTAINED WITH THE HELP OF ONE OR MORE OF THE PACKAGES SHALL        '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = '    ACKNOWLEDGE THE USE OF THE PACKAGES. THE LICENSEE WILL NOTIFY      '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = '    HSL@HYPROTECH.COM OR HYPROTECH UK LIMITED OF ANY SUCH PUBLICATION. '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = ' 4. THE PACKAGES MAY BE MODIFIED BY OR ON BEHALF OF THE LICENSEE       '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = '    FOR SUCH USE IN RESEARCH APPLICATIONS BUT AT NO TIME SHALL SUCH    '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = '    PACKAGES OR MODIFICATIONS THEREOF BECOME THE PROPERTY OF THE       '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = '    LICENSEE. THE LICENSEE SHALL MAKE AVAILABLE FREE OF CHARGE TO THE  '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = '    COPYRIGHT HOLDER FOR ANY PURPOSE ALL INFORMATION RELATING TO       '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = '    ANY MODIFICATION.                                                  '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = ' 5. NEITHER COUNCIL FOR THE CENTRAL LABORATORY OF THE RESEARCH         '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = '    COUNCILS NOR HYPROTECH UK LIMITED SHALL BE LIABLE FOR ANY          '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = '    DIRECT OR CONSEQUENTIAL LOSS OR DAMAGE WHATSOEVER ARISING OUT OF   '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = '    THE USE OF PACKAGES BY THE LICENSEE.                               '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = '******************************************************************     '
+          CALL XERRDV(MSG,1770,2,0,0,0,0,ZERO,ZERO)
+        END IF
+
+!       Some initialization and transfer of information between
+!       common blocks (see earlier comments).
+        IFLAG = 0
+        ABORTA = ABORT1
+        ABORTB = ABORT2
+        ABORT = ABORT1
+        MLP = LP
+        NLP = LP
+        TOL1 = TOL
+        LBIG1 = LBIG
+        NSRCH1 = NSRCH
+!       UPRIV private copy of U is used in case it is outside
+!       range zero to one and is thus altered by MA30AD.
+        UPRIV = U
+!       Simple data check on input variables and array dimensions.
+        IF (N>0) GOTO 10
+        IFLAG = -8
+        IF (LP/=0) WRITE (LP,90000) N
+        GOTO 170
+10      IF (NZ>0) GOTO 20
+        IFLAG = -9
+        IF (LP/=0) WRITE (LP,90001) NZ
+        GOTO 170
+20      IF (LICN>=NZ) GOTO 30
+        IFLAG = -10
+        IF (LP/=0) WRITE (LP,90002) LICN
+        GOTO 170
+30      IF (LIRN>=NZ) GOTO 40
+        IFLAG = -11
+        IF (LP/=0) WRITE (LP,90003) LIRN
+        GOTO 170
+
+!       Data check to see if all indices lie between 1 and N.
+40      DO 50 I = 1, NZ
+          IF (IRN(I)>0 .AND. IRN(I)<=N .AND. ICN(I)>0 .AND. ICN(I)<=N) &
+            GOTO 50
+          IF (IFLAG==0 .AND. LP/=0) WRITE (LP,90004)
+          IFLAG = -12
+          IF (LP/=0) WRITE (LP,90005) I, A(I), IRN(I), ICN(I)
+50      END DO
+        IF (IFLAG<0) GOTO 180
+
+!       Sort matrix into row order.
+        CALL MC20AD(N,NZ,A,ICN,IW(1,1),IRN,0)
+!       Part of IKEEP is used here as a work-array. IKEEP(I,2) is
+!       the last row to have a non-zero in column I. IKEEP(I,3)
+!       is the off-set of column I from the start of the row.
+        IKEEP(1:N,2) = 0
+        IKEEP(1:N,1) = 0
+
+!       Check for duplicate elements summing any such entries
+!       and printing a warning message on unit MP.
+!       MOVE is equal to the number of duplicate elements found.
+        MOVE = 0
+!       The loop also calculates the largest element in the matrix,
+!       THEMAX.
+        THEMAX = ZERO
+!       J1 is position in arrays of first non-zero in row.
+        J1 = IW(1,1)
+        DO 90 I = 1, N
+          IEND = NZ + 1
+          IF (I/=N) IEND = IW(I+1,1)
+          LENGTH = IEND - J1
+          IF (LENGTH==0) GOTO 90
+          J2 = IEND - 1
+          NEWJ1 = J1 - MOVE
+          DO 80 JJ = J1, J2
+            J = ICN(JJ)
+            THEMAX = MAX(THEMAX,ABS(A(JJ)))
+            IF (IKEEP(J,2)==I) GOTO 70
+!           First time column has ocurred in current row.
+            IKEEP(J,2) = I
+            IKEEP(J,3) = JJ - MOVE - NEWJ1
+            IF (MOVE==0) GOTO 80
+!           Shift necessary because of previous duplicate element.
+            NEWPOS = JJ - MOVE
+            A(NEWPOS) = A(JJ)
+            ICN(NEWPOS) = ICN(JJ)
+            GOTO 80
+!           Duplicate element.
+70          MOVE = MOVE + 1
+            LENGTH = LENGTH - 1
+            JAY = IKEEP(J,3) + NEWJ1
+            IF (MP/=0) WRITE (MP,90006) I, J, A(JJ)
+            A(JAY) = A(JAY) + A(JJ)
+            THEMAX = MAX(THEMAX,ABS(A(JAY)))
+80        END DO
+          IKEEP(I,1) = LENGTH
+          J1 = IEND
+90      END DO
+
+!       KNUM is actual number of non-zeros in matrix with any multiple
+!       entries counted only once.
+        KNUM = NZ - MOVE
+        IF (.NOT.LBLOCK) GOTO 100
+
+!       Perform block triangularisation.
+        CALL MC23AD(N,ICN,A,LICN,IKEEP(1,1),IDISP,IKEEP(1,2),IKEEP(1,3), &
+          IKEEP(1,5),IW(1,3),IW)
+        IF (IDISP(1)>0) GOTO 130
+        IFLAG = -7
+        IF (IDISP(1)==-1) IFLAG = -1
+        IF (LP/=0) WRITE (LP,90007)
+        GOTO 170
+
+!       Block triangularization not requested.
+!       Move structure to end of data arrays in preparation for MA30AD.
+!       Also set LENOFF(1) to -1 and set permutation arrays.
+100     DO I = 1, KNUM
+          II = KNUM - I + 1
+          NEWPOS = LICN - I + 1
+          ICN(NEWPOS) = ICN(II)
+          A(NEWPOS) = A(II)
+        END DO
+        IDISP(1) = 1
+        IDISP(2) = LICN - KNUM + 1
+        DO I = 1, N
+          IKEEP(I,2) = I
+          IKEEP(I,3) = I
+        END DO
+        IKEEP(1,5) = -1
+130     IF (LBIG) BIG1 = THEMAX
+        IF (NSRCH<=N) GOTO 140
+
+!       Perform LU decomposition on diagonal blocks.
+        CALL MA30AD(N,ICN,A,LICN,IKEEP(1,1),IKEEP(1,4),IDISP,IKEEP(1,2),       &
+          IKEEP(1,3),IRN,LIRN,IW(1,2),IW(1,3),IW(1,4),IW(1,5),IW(1,6),IW(1,7), &
+          IW(1,8),IW,UPRIV,IFLAG)
+        GOTO 150
+!       This call if used if NSRCH has been set less than or equal to N.
+!       In this case, two integer work arrays of length can be saved.
+140     CALL MA30AD(N,ICN,A,LICN,IKEEP(1,1),IKEEP(1,4),IDISP,IKEEP(1,2),       &
+          IKEEP(1,3),IRN,LIRN,IW(1,2),IW(1,3),IW(1,4),IW(1,5),IW,IW,IW(1,6),IW,&
+          UPRIV,IFLAG)
+
+!       Transfer private variable information.
+!150    MINIRN = MAX(MIRN,NZ)
+!       MINICN = MAX(MICN,NZ)
+150     MINIRN = MAX(MINIRN,NZ)
+        MINICN = MAX(MINICN,NZ)
+!       IRNCP = MIRNCP
+!       ICNCP = MICNCP
+!       IRANK = MIRANK
+!       NDROP = NDROP1
+        IF (LBIG) BIG = BIG1
+        IF (IFLAG>=0) GOTO 160
+        IF (LP/=0) WRITE (LP,90008)
+        GOTO 170
+
+!       Reorder off-diagonal blocks according to pivot permutation.
+160     I1 = IDISP(1) - 1
+        IF (I1/=0) CALL MC22AD(N,ICN,A,I1,IKEEP(1,5),IKEEP(1,2), &
+          IKEEP(1,3),IW,IRN)
+        I1 = IDISP(1)
+        IEND = LICN - I1 + 1
+
+!       Optionally calculate element growth estimate.
+        IF (GROW) CALL MC24AD(N,ICN,A(I1),IEND,IKEEP,IKEEP(1,4),W)
+!       Increment growth estimate by original maximum element.
+        IF (GROW) W(1) = W(1) + THEMAX
+        IF (GROW .AND. N>1) W(2) = THEMAX
+!       Set flag if the only error is due to duplicate elements.
+        IF (IFLAG>=0 .AND. MOVE/=0) IFLAG = -14
+        GOTO 180
+170     IF (LP/=0) WRITE (LP,90009)
+180     RETURN
+90000   FORMAT (' N is out of range = ',I10)
+90001   FORMAT (' NZ is non positive = ',I10)
+90002   FORMAT (' LICN is too small = ',I10)
+90003   FORMAT (' LIRN is too small = ',I10)
+90004   FORMAT (' Error return from MA28AD because indices found out', &
+          ' of range')
+90005   FORMAT (1X,I6,'The element with value ',1P,D22.14, &
+          ' is out of range with indices ',I8,',',I8)
+90006   FORMAT (' Duplicate element in position ',I8,',',I8,' with value ',1P, &
+          D22.14)
+90007   FORMAT (' Error return from MC23AD')
+90008   FORMAT (' Error return from MA30AD')
+90009   FORMAT (' Error return from MA28AD')
+
+      END SUBROUTINE MA28AD
+!_______________________________________________________________________
+
+      SUBROUTINE MA28BD(N,NZ,A,LICN,IVECT,JVECT,ICN,IKEEP,IW,W,IFLAG)
+! ..
+! This subroutine factorizes a matrix of a similar sparsity
+! pattern to that previously factorized by MA28AD.
+! ..
+! The parameters are as follows:
+! N            Order of matrix. Not altered by subroutine.
+! NZ           Number of non-zeros in input matrix. Not
+!              altered by subroutine.
+! A            Array of length LICN. Holds non-zeros of
+!              matrix on entry and non-zeros of factors on exit.
+!              Reordered by MA28DD and altered by MA30BD.
+! LICN         Length of arrays A and ICN. Not altered by
+!              subroutine.
+! IVECT, JVECT Arrays of length NZ. Hold row and column
+!              indices of non-zeros, respectively. Not altered
+!              by subroutine.
+! ICN          Array of length LICN. Same array as output
+!              from MA28AD. Unchanged by MA28BD.
+! IKEEP        Array of length 5*N. Same array as output
+!              from MA28AD. Unchanged by MA28BD.
+! IW           Array length 5*N. Used as workspace by
+!              MA28DD and MA30BD.
+! W            Array of length N. Used as workspace by
+!              MA28DD, MA30BD and (optionally) MC24AD.
+! IFLAG        Integer used as error flag, with positive
+!              or zero value indicating success.
+
+! Private Variable Information.
+! Unless otherwise stated private variables are as in MA28AD.
+! Those variables referenced by MA28BD are mentioned below.
+! LP, MP     Integers used as in MA28AD as unit number for error
+!            and warning messages, respectively.
+! NLP        Integer variable used to give value of LP to MA30ED.
+! EPS        MA30BD will output a positive value
+!            for IFLAG if any modulus of the ratio of pivot element
+!            to the largest element in its row (U part only) is less
+!            than EPS (unless EPS is greater than 1.0 when no action
+!            takes place).
+! RMIN       Variable equal to the value of this minimum ratio in
+!            cases where EPS is less than or equal to 1.0.
+! MEPS,MRMIN Variables used by the subroutine to communicate between
+!            MA28FD and MA30GD.
+! IDISP      Integer array of length 2. The same as that used by
+!            MA28AD. Unchanged by MA28BD.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER :: IFLAG, LICN, N, NZ
+! ..
+! .. Array Arguments ..
+        KPP_REAL :: A(LICN), W(N)
+        INTEGER :: ICN(LICN), IKEEP(N,5), IVECT(NZ), IW(N,5), JVECT(NZ)
+! ..
+! .. Local Scalars ..
+        INTEGER :: I1, IDUP, IEND
+! ..
+! .. FIRST EXECUTABLE STATEMENT MA28BD
+! ..
+!       Check to see if elements were dropped in previous MA28AD call.
+        IF (NDROP==0) GOTO 10
+        IFLAG = -15
+        IF (LP/=0) WRITE (LP,90000) IFLAG, NDROP
+        GOTO 70
+10      IFLAG = 0
+        MEPS = EPS
+        NLP = LP
+!       Simple data check on variables.
+        IF (N>0) GOTO 20
+        IFLAG = -11
+        IF (LP/=0) WRITE (LP,90001) N
+        GOTO 60
+20      IF (NZ>0) GOTO 30
+        IFLAG = -10
+        IF (LP/=0) WRITE (LP,90002) NZ
+        GOTO 60
+30      IF (LICN>=NZ) GOTO 40
+        IFLAG = -9
+        IF (LP/=0) WRITE (LP,90003) LICN
+        GOTO 60
+
+40      CALL MA28DD(N,A,LICN,IVECT,JVECT,NZ,ICN,IKEEP(1,1),IKEEP(1,4), &
+          IKEEP(1,5),IKEEP(1,2),IKEEP(1,3),IW(1,3),IW,W(1),IFLAG)
+!       THEMAX is largest element in matrix.
+        THEMAX = W(1)
+        IF (LBIG) BIG1 = THEMAX
+!       IDUP equals one if there were duplicate elements, zero otherwise.
+        IDUP = 0
+        IF (IFLAG==(N+1)) IDUP = 1
+        IF (IFLAG<0) GOTO 60
+
+!       Perform row Gauss elimination on the structure received from MA28DD.
+        CALL MA30BD(N,ICN,A,LICN,IKEEP(1,1),IKEEP(1,4),IDISP,IKEEP(1,2), &
+          IKEEP(1,3),W,IW,IFLAG)
+
+!       Transfer private variable information.
+        IF (LBIG) BIG1 = BIG
+!       RMIN = MRMIN
+        IF (IFLAG>=0) GOTO 50
+        IFLAG = -2
+        IF (LP/=0) WRITE (LP,90004)
+        GOTO 60
+
+!       Optionally calculate the growth parameter.
+50      I1 = IDISP(1)
+        IEND = LICN - I1 + 1
+        IF (GROW) CALL MC24AD(N,ICN,A(I1),IEND,IKEEP,IKEEP(1,4),W)
+!       Increment estimate by largest element in input matrix.
+        IF (GROW) W(1) = W(1) + THEMAX
+        IF (GROW .AND. N>1) W(2) = THEMAX
+!       Set flag if the only error is due to duplicate elements.
+        IF (IDUP==1 .AND. IFLAG>=0) IFLAG = -14
+        GOTO 70
+60      IF (LP/=0) WRITE (LP,90005)
+70      RETURN
+90000   FORMAT (' Error return from MA28BD with IFLAG = ',I4/I7, &
+          ' Entries dropped from structure by MA28AD')
+90001   FORMAT (' N is out of range = ',I10)
+90002   FORMAT (' NZ is non positive = ',I10)
+90003   FORMAT (' LICN is too small = ',I10)
+90004   FORMAT (' Error return from MA30BD')
+90005   FORMAT (' + Error return from MA28BD')
+
+      END SUBROUTINE MA28BD
+!_______________________________________________________________________
+
+      SUBROUTINE MA28DD(N,A,LICN,IVECT,JVECT,NZ,ICN,LENR,LENRL,LENOFF, &
+        IP,IQ,IW1,IW,W1,IFLAG)
+! ..
+! This subroutine need never be called by the user directly. It sorts
+! the user's matrix into the structure of the decomposed form and checks
+! for the presence of duplicate entries or non-zeros lying outside the
+! sparsity pattern of the decomposition. It also calculates the largest
+! element in the input matrix.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        KPP_REAL :: W1
+        INTEGER :: IFLAG, LICN, N, NZ
+! ..
+! .. Array Arguments ..
+        KPP_REAL :: A(LICN)
+        INTEGER :: ICN(LICN), IP(N), IQ(N), IVECT(NZ), IW(N,2), IW1(N,3), &
+          JVECT(NZ), LENOFF(N), LENR(N), LENRL(N)
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: AA
+        INTEGER :: I, IBLOCK, IDISP2, IDUMMY, II, INEW, IOLD, J1, J2, JCOMP, &
+          JDUMMY, JJ, JNEW, JOLD, MIDPT
+        LOGICAL :: BLOCKL
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, IABS, MAX
+! ..
+! .. FIRST EXECUTABLE STATEMENT MA28DD
+! ..
+        BLOCKL = LENOFF(1) >= 0
+!       IW1(I,3) is set to the block in which row I lies and the
+!       inverse permutations to IP and IQ are set in IW1(:,1) and
+!       IW1(:,2), respectively.
+!       Pointers to beginning of the part of row I in diagonal and
+!       off-diagonal blocks are set in IW(I,2) and IW(I,1),
+!       respectively.
+        IBLOCK = 1
+        IW(1,1) = 1
+        IW(1,2) = IDISP(1)
+        DO 10 I = 1, N
+          IW1(I,3) = IBLOCK
+          IF (IP(I)<0) IBLOCK = IBLOCK + 1
+          II = IABS(IP(I)+0)
+!         II = IABS(IP(I))
+          IW1(II,1) = I
+          JJ = IQ(I)
+          JJ = IABS(JJ)
+          IW1(JJ,2) = I
+          IF (I==1) GOTO 10
+          IF (BLOCKL) IW(I,1) = IW(I-1,1) + LENOFF(I-1)
+          IW(I,2) = IW(I-1,2) + LENR(I-1)
+10      END DO
+!       Place each non-zero in turn into its correct location in
+!       the A/ICN array.
+        IDISP2 = IDISP(2)
+        DO 170 I = 1, NZ
+!         Necessary to avoid reference to unassigned element of ICN.
+          IF (I>IDISP2) GOTO 20
+          IF (ICN(I)<0) GOTO 170
+20        IOLD = IVECT(I)
+          JOLD = JVECT(I)
+          AA = A(I)
+!         This is a dummy loop for following a chain of interchanges.
+!         It will be executed NZ TIMES in total.
+          DO IDUMMY = 1, NZ
+!           Perform some validity checks on IOLD and JOLD.
+            IF (IOLD<=N .AND. IOLD>0 .AND. JOLD<=N .AND. JOLD>0) GOTO 30
+            IF (LP/=0) WRITE (LP,90000) I, A(I), IOLD, JOLD
+            IFLAG = -12
+            GOTO 180
+30          INEW = IW1(IOLD,1)
+            JNEW = IW1(JOLD,2)
+!           Are we in a valid block and is it diagonal or off-diagonal?
+!           IF (IW1(INEW,3)-IW1(JNEW,3)) 40, 60, 50
+!40         IFLAG = -13
+            IF (IW1(INEW,3)-IW1(JNEW,3) == 0) GOTO 60
+            IF (IW1(INEW,3)-IW1(JNEW,3) > 0) GOTO 50
+            IFLAG = -13
+            IF (LP/=0) WRITE (LP,90001) IOLD, JOLD
+            GOTO 180
+50          J1 = IW(INEW,1)
+            J2 = J1 + LENOFF(INEW) - 1
+            GOTO 110
+!           Element is in diagonal block.
+60          J1 = IW(INEW,2)
+            IF (INEW>JNEW) GOTO 70
+            J2 = J1 + LENR(INEW) - 1
+            J1 = J1 + LENRL(INEW)
+            GOTO 110
+70          J2 = J1 + LENRL(INEW)
+!           Binary search of ordered list. Element in L part of row.
+            DO 100 JDUMMY = 1, N
+              MIDPT = (J1+J2)/2
+              JCOMP = IABS(ICN(MIDPT)+0)
+!             JCOMP = IABS(ICN(MIDPT))
+!             IF (JNEW-JCOMP) 80, 130, 90
+!80           J2 = MIDPT
+              IF (JNEW-JCOMP == 0) GOTO 130
+              IF (JNEW-JCOMP > 0) GOTO 90
+              J2 = MIDPT
+              GOTO 100
+90            J1 = MIDPT
+100         END DO
+            IFLAG = -13
+            IF (LP/=0) WRITE (LP,90002) IOLD, JOLD
+            GOTO 180
+!           Linear search. Element in L part of row or off-diagonal blocks.
+110         DO MIDPT = J1, J2
+              IF (IABS(ICN(MIDPT)+0)==JNEW) GOTO 130
+!             IF (IABS(ICN(MIDPT))==JNEW) GOTO 130
+            END DO
+            IFLAG = -13
+            IF (LP/=0) WRITE (LP,90002) IOLD, JOLD
+            GOTO 180
+!           Equivalent element of ICN is in position MIDPT.
+130         IF (ICN(MIDPT)<0) GOTO 160
+            IF (MIDPT>NZ .OR. MIDPT<=I) GOTO 150
+            W1 = A(MIDPT)
+            A(MIDPT) = AA
+            AA = W1
+            IOLD = IVECT(MIDPT)
+            JOLD = JVECT(MIDPT)
+            ICN(MIDPT) = -ICN(MIDPT)
+          END DO
+150       A(MIDPT) = AA
+          ICN(MIDPT) = -ICN(MIDPT)
+          GOTO 170
+160       A(MIDPT) = A(MIDPT) + AA
+!        Set flag for duplicate elements.
+          iflag = n + 1
+170     END DO
+!       Reset ICN array and zero elements in LU but not in A.
+!       Also calculate the maximum element of A.
+180     W1 = ZERO
+        DO 200 I = 1, IDISP2
+          IF (ICN(I)<0) GOTO 190
+          A(I) = ZERO
+          GOTO 200
+190       ICN(I) = -ICN(I)
+          W1 = MAX(W1,ABS(A(I)))
+200     END DO
+        RETURN
+90000   FORMAT (' Element ',I6,' with value ',D22.14,' has indices ',I8, &
+          ','/I8,' indices out of range')
+90001   FORMAT (' Non-zero ',I7,',',I6,' in zero off-diagonal',' block')
+90002   FORMAT (' Element ',I6,',',I6,' was not in LU pattern')
+
+      END SUBROUTINE MA28DD
+!_______________________________________________________________________
+
+      SUBROUTINE MA28CD(N,A,LICN,ICN,IKEEP,RHS,W,MTYPE)
+! ..
+! This subroutine uses the factors from MA28AD or MA28BD to solve a
+! system of equations without iterative refinement.
+! ..
+! The parameters are:
+! N     Order of matrix. Not altered by subroutine.
+! A     array of length LICN. the same array as
+!       was used in the most recent call to MA28AD or MA28BD.
+! LICN  Length of arrays A and ICN. Not altered by subroutine.
+! ICN   Array of length LICN. Same array as output from
+!       MA28AD. Unchanged by MA30CD.
+! IKEEP Array of length 5*N. Same array as output from
+!       MA28AD. Unchanged by MA30CD.
+! RHS   Array of length N. On entry, it holds the
+!       right hand side, on exit, the solution vector.
+! W     Array of length N. Used as workspace by MA30CD.
+! MTYPE Integer used to tell MA30CD to solve the direct
+!       equation (MTYPE = 1) or its transpose (MTYPE /= 1).
+
+! Private Variable Information.
+! Unless otherwise stated private variables are as in MA28AD.
+! Those variables referenced by MA30CD are mentioned below.
+! RESID   Variable which returns maximum residual of
+!         equations where pivot was zero.
+! MRESID  Variable used by MA30CD to communicate between
+!         MA28FD and MA30HD.
+! IDISP   Integer array of length 2. The same as that used
+!         by MA28AD. Unchanged by MA28BD.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER :: LICN, MTYPE, N
+! ..
+! .. Array Arguments ..
+        KPP_REAL :: A(LICN), RHS(N), W(N)
+        INTEGER :: ICN(LICN), IKEEP(N,5)
+! ..
+! .. FIRST EXECUTABLE STATEMENT MA28CD
+! ..
+!       This call performs the solution of the set of equations.
+        CALL MA30CD(N,ICN,A,LICN,IKEEP(1,1),IKEEP(1,4),IKEEP(1,5),IDISP, &
+          IKEEP(1,2),IKEEP(1,3),RHS,W,MTYPE)
+!       Transfer private variable information.
+        RESID = MRESID
+        RETURN
+
+      END SUBROUTINE MA28CD
+!_______________________________________________________________________
+
+      SUBROUTINE MA28ID(N,NZ,AORG,IRNORG,ICNORG,LICN,A,ICN,IKEEP,RHS, &
+        X,R,W,MTYPE,PREC,IFLAG)
+! ..
+! This subroutine uses the factors from an earlier call to MA28AD or
+! MA28BD to solve the system of equations with iterative refinement.
+! ..
+! The parameters are:
+! N      Order of the matrix. Not altered by the subroutine.
+! NZ     Number of entries in the original matrix. Not altered by
+!        the subroutine.
+!        For this entry the original matrix must have been saved in
+!        AORG, IRNORG, ICNORG where entry AORG(K) is in row IRNORG(K)
+!        and column ICNORG(K),K = 1,...,NZ. Information about the
+!        factors of A is communicated to this subroutine via the
+!        parameters LICN, A, ICN and IKEEP where:
+! AORG   Array of length NZ. Not altered by MA28ID.
+! IRNORG Array of length NZ. Not altered by MA28ID.
+! ICNORG Array of length NZ. Not altered by MA28ID.
+! LICN   Length of arrays A and ICN. Not altered by the subroutine.
+! A      Array of length LICN. It must be unchanged since the
+!        last call to MA28AD or MA28BD. Not altered by the
+!        subroutine.
+! ICN, IKEEP are the arrays (of lengths LICN and 5*N, respectively)
+!        of the same names as in the previous all to MA28AD. They
+!        should be unchanged since this earlier call and they are
+!        not altered by MA28ID.
+! The other parameters are as follows:
+! RHS    Array of length N. The user must set RHS(I) to contain
+!        the value of the Ith component of the right hand side.
+!        Not altered by MA28ID.
+! X      Array of length N. If an initial guess of the solution
+!        is given (ISTART equal to 1), then the user must set X(I)
+!        to contain the value of the Ith component of the estimated
+!        solution. On exit, X(I) contains the Ith component of the
+!        solution vector.
+! R      Array of length N. It need not be set on entry. On exit,
+!        R(I) contains the Ith component of an estimate of the error
+!        if MAXIT is greater than 0.
+! W      Array of length N. Used as workspace by MA28ID.
+! MTYPE  Must be set to determine whether MA28ID will solve A*X = RHS
+!        (MTYPE = 1) or AT*X = RHS (MTYPE /= 1). Not altered by MA28ID.
+! PREC   Should be set by the user to the relative accuracy required.
+!        The iterative refinement will terminate if the magnitude of
+!        the largest component of the estimated error relative to the
+!        largest component in the solution is less than PREC.
+!        Not altered by MA28ID.
+! IFLAG  Diagnostic flag which will be set to zero on successful
+!        exit from MA28ID. Otherwise it will have a non-zero value.
+!        The non-zero value IFLAG can have on exit from MA28ID are
+!        -16 indicating that more than MAXIT iteartions are required.
+!        -17 indicating that more convergence was too slow.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        KPP_REAL :: PREC
+        INTEGER :: IFLAG, LICN, MTYPE, N, NZ
+! ..
+! .. Array Arguments ..
+        KPP_REAL :: A(LICN), AORG(NZ), R(N), RHS(N), W(N), X(N)
+        INTEGER :: ICN(LICN), ICNORG(NZ), IKEEP(N,5), IRNORG(NZ)
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: CONVER, D, DD
+        INTEGER :: I, ITERAT, NCOL, NROW
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, MAX
+! ..
+! .. FIRST EXECUTABLE STATEMENT MA28ID
+! ..
+!       Initialization of NOITER, ERRMAX, and IFLAG.
+        NOITER = 0
+        ERRMAX = ZERO
+        IFLAG = 0
+
+!       Jump if a starting vector has been supplied by the user.
+
+        IF (ISTART==1) GOTO 20
+
+!       Make a copy of the right-hand side vector.
+
+        X(1:N) = RHS(1:N)
+
+!       Find the first solution.
+
+        CALL MA28CD(N,A,LICN,ICN,IKEEP,X,W,MTYPE)
+
+!       Stop the computations if MAXIT = 0.
+
+20      IF (MAXIT==0) GOTO 160
+
+!       Calculate the max-norm of the first solution.
+
+        DD = 0.0
+        DO I = 1, N
+          DD = MAX(DD,ABS(X(I)))
+        END DO
+        DXMAX = DD
+
+!       Begin the iterative process.
+
+        DO 120 ITERAT = 1, MAXIT
+          D = DD
+
+!         Calculate the residual vector.
+
+          R(1:N) = RHS(1:N)
+          IF (MTYPE==1) GOTO 60
+          DO I = 1, NZ
+            NROW = IRNORG(I)
+            NCOL = ICNORG(I)
+            R(NCOL) = R(NCOL) - AORG(I)*X(NROW)
+          END DO
+          GOTO 80
+!         MTYPE = 1.
+60        DO I = 1, NZ
+            NROW = IRNORG(I)
+            NCOL = ICNORG(I)
+            R(NROW) = R(NROW) - AORG(I)*X(NCOL)
+          END DO
+80        DRES = 0.0
+
+!         Find the max-norm of the residual vector.
+
+          DO I = 1, N
+            DRES = MAX(DRES,ABS(R(I)))
+          END DO
+
+!         Stop the calculations if the max-norm of
+!         the residual vector is zero.
+
+!         IF (DRES == 0.0) GOTO 150
+          IF (ABS(DRES)<=ZERO) GOTO 150
+
+!         Calculate the correction vector.
+
+          NOITER = NOITER + 1
+          CALL MA28CD(N,A,LICN,ICN,IKEEP,R,W,MTYPE)
+
+!         Find the max-norm of the correction vector.
+
+          DD = 0.0
+          DO I = 1, N
+            DD = MAX(DD,ABS(R(I)))
+          END DO
+
+!         Check the convergence.
+
+          IF (DD>D*CGCE .AND. ITERAT>=2) GOTO 130
+          IF (ABS((DXMAX*TEN+DD)-(DXMAX*TEN))<=ZERO) GOTO 140
+
+!         Attempt to improve the solution.
+
+          DXMAX = 0.0
+          DO I = 1, N
+            X(I) = X(I) + R(I)
+            DXMAX = MAX(DXMAX,ABS(X(I)))
+          END DO
+
+!         Check the stopping criterion.
+ 
+          IF (DD<PREC*DXMAX) GOTO 140
+120     END DO
+!       More than MAXIT iterations required.
+        IFLAG = -16
+        WRITE (LP,90000) IFLAG, MAXIT
+        GOTO 140
+!       Convergence rate unacceptably slow.
+130     IFLAG = -17
+        CONVER = DD/D
+        WRITE (LP,90001) IFLAG, CONVER, CGCE
+
+!       The iterative process is terminated.
+
+140     ERRMAX = DD
+150     CONTINUE
+160     RETURN
+90000   FORMAT (' Error return from MA28ID with IFLAG = ',I3/' More than ', &
+          I5,' iterations required')
+90001   FORMAT (' Error return from MA28I with IFLAG = ', &
+          I3/' Convergence rate of ',1P,E9.2,' too slow'/ &
+          ' Maximum acceptable rate set to ',1P,E9.2)
+
+      END SUBROUTINE MA28ID
+!_______________________________________________________________________
+
+! Private Variable Information.
+! LP, MP are used by the subroutine as the unit numbers for its warning
+!     and diagnostic messages. Default value for both is 6 (for line
+!     printer output). The user can either reset them to a different
+!     stream number or suppress the output by setting them to zero.
+!     While LP directs the output of error diagnostics from the
+!     principal subroutines and internally called subroutines, MP
+!     controls only the output of a message which warns the user that
+!     he has input two or more non-zeros A(I),. .,A(K) with the same
+!     row and column indices. The action taken in this case is to
+!     proceed using a numerical value of A(I)+...+A(K). In the absence
+!     of other errors, IFLAG will equal -14 on exit.
+! LBLOCK Is a logical variable which controls an option of first
+!     preordering the matrix to block lower triangular form (using
+!     Harwell subroutine MC23A). The preordering is performed if LBLOCK
+!     is equal to its default value of .TRUE. If LBLOCK is set to
+!     .FALSE., the option is not invoked and the space allocated to
+!     IKEEP can be reduced to 4*N+1.
+! GROW is a logical variable. If it is left at its default value of
+!     .TRUE., then on return from MA28AD or MA28BD, W(1) will give
+!     an estimate (an upper bound) of the increase in size of elements
+!     encountered during the decomposition. If the matrix is well
+!     scaled, then a high value for W(1), relative to the largest entry
+!     in the input matrix, indicates that the LU decomposition may be
+!     inaccurate and the user should be wary of his results and perhaps
+!     increase U for subsequent runs. We would like to emphasise that
+!     this value only relates to the accuracy of our LU decomposition
+!     and gives no indication as to the singularity of the matrix or the
+!     accuracy of the solution. This upper bound can be a significant
+!     overestimate particularly if the matrix is badly scaled. If an
+!     accurate value for the growth is required, LBIG(Q.V.) should be
+!     set to .TRUE.
+! EPS, RMIN If, on entry to MA28BD, EPS is less than one, then RMIN
+!     will give the smallest ratio of the pivot to the largest element
+!     in the corresponding row of the upper triangular factor thus
+!     monitoring the stability of successive factorizations. If RMIN
+!     becomes very large and W(1) from MA28BD is also very large, it
+!     may be advisable to perform a new decomposition using MA28AD.
+! RESID Variable which on exit from MA30CD gives the value of the
+!     maximum residual over all the equations unsatisfied because
+!     of dependency (zero pivots).
+! IRNCP, ICNCP Variables which monitor the adequacy of "elbow room"
+!     in IRN and A/ICN, respectively. If either is quite large (say
+!     greater than N/10), it will probably pay to increase the size of
+!     the corresponding array for subsequent runs. If either is very low
+!     or zero, then one can perhaps save storage by reducing the size of
+!     the corresponding array.
+! MINIRN, MINICN Integer variables which, in the event of a successful
+!     return (IFLAG >= 0 or IFLAG = -14) give the minimum size of IRN
+!     and A/ICN, respectively which would enable a successful run on
+!     an identical matrix. On an exit with IFLAG equal to -5, MINICN
+!     gives the minimum value of ICN for success on subsequent runs on
+!     an identical matrix. In the event of failure with IFLAG = -6,-4,
+!     -3,-2, OR -1, then MINICN and MINIRN give the minimum value of
+!     LICN and LIRN, respectively which would be required for a
+!     successful decomposition up to the point at which the failure
+!     occurred.
+! IRANK Integer variable which gives an upper bound on the rank of
+!     the matrix.
+! ABORT1 is a logical variable with default value .TRUE. If ABORT1 is
+!     set to .FALSE., then MA28AD will decompose structurally singular
+!     matrices (including rectangular ones).
+! ABORT2 is a logical variable with default value .TRUE. If ABORT2 is
+!     set to .FALSE., then MA28AD will decompose numerically singular
+!     matrices.
+! IDISP is an integer array of length 2. On output from MA28AD, The
+!     indices of the diagonal blocks of the factors lie in positions
+!     IDISP(1) to IDISP(2) of A/ICN. This array must be preserved
+!     between a call to MA28AD and subsequent calls to MA28BD,
+!     MA30CD or MA28ID.
+! TOL If set to a positive value, then any non-zero whose modulus is
+!     less than TOL will be dropped from the factorization. The
+!     factorization will then require less storage but will be
+!     inaccurate. After a run of MA28AD with TOL positive it is not
+!     possible to use MA28BD and the user is recommended to use
+!     MA28ID to obtain the solution. The default value for TOL is 0.0.
+! THEMAX On exit from MA28AD, THEMAX will hold the largest entry of
+!     the original matrix.
+! BIG If LBIG has been set to .TRUE., BIG will hold the largest entry
+!     encountered during the factorization by MA28AD or MA28BD.
+! DXMAX On exit from MA28ID, DXMAX will be set to the largest component
+!     of the solution.
+! ERRMAX If MAXIT is positive, ERRMAX will be set to the largest
+!     component in the estimate of the error.
+! DRES On exit from MA28ID, if MAXIT is positive, DRES will be set to
+!     the largest component of the residual.
+! CGCE Used by MA28ID to check the convergence rate. If the ratio of
+!     successive corrections is not less than CGCE, then we terminate
+!     since the convergence rate is adjudged too slow.
+! NDROP If TOL has been set positive on exit from MA28AD, NDROP will
+!     hold the number of entries dropped from the data structure.
+! MAXIT Maximum number of iterations performed by MA28ID. Default = 16.
+! NOITER Set by MA28ID to the number of iterative refinement iterations
+!     actually used.
+! NSRCH If NSRCH is set to a value less than N, then a different pivot
+!     option will be employed by MA28AD. This may result in different
+!     fill-in and execution time for MA28AD. If NSRCH is less than or
+!     equal to N, the workspace array IW can be reduced in length. The
+!     default value for NSRCH is 32768.
+! ISTART If ISTART is set to a value other than zero, then the user
+!     must supply an estimate of the solution to MA28ID. The default
+!     value for istart is zero.
+! LBIG If LBIG is set to .TRUE., the value of the largest element
+!     encountered in the factorization by MA28AD or MA28BD is returned
+!     in BIG. Setting LBIG to .TRUE. will increase the time for MA28AD
+!     marginally and that for MA28BD by about 20%. The default value
+!     for LBIG is .FALSE.
+!_______________________________________________________________________
+
+      SUBROUTINE MA30AD(NN,ICN,A,LICN,LENR,LENRL,IDISP,IP,IQ,IRN,LIRN, &
+        LENC,IFIRST,LASTR,NEXTR,LASTC,NEXTC,IPTR,IPC,U,IFLAG)
+! ..
+!     If the user requires a more convenient data interface then the
+!     MA28 package should be used. The MA28 subroutines call the MA30
+!     subroutines after checking the user's input data and optionally
+!     using MC23AD to permute the matrix to block triangular form.
+!     This package of subroutines (MA30AD, MA30BD, MA30CD, and MA30DD)
+!     performs operations pertinent to the solution of a general
+!     sparse N by N system of linear equations (i.e., solve
+!     AX = B). Structually singular matrices are permitted including
+!     those with row or columns consisting entirely of zeros (i.e.,
+!     including rectangular matrices). It is assumed that the
+!     non-zeros of the matrix A do not differ widely in size. If
+!     necessary a prior call of the scaling subroutine MA19AD may be
+!     made.
+!     A discussion of the design of these subroutines is given by Duff
+!     and Reid (ACM TRANS MATH SOFTWARE 5 PP 18-35, 1979(CSS 48)) while
+!     fuller details of the implementation are given in duff (HARWELL
+!     REPORT AERE-R 8730, 1977). The additional pivoting option in
+!     ma30ad and the use of drop tolerances (see private variables for
+!     MA30ID) were added to the package after joint work with Reid,
+!     Schaumburg, Wasniewski and Zlatev (Duff, Reid, Schaumburg,
+!     Wasniewski and Zlatev, HARWELL REPORT CSS 135, 1983).
+
+!     MA30AD performs the LU decomposition of the diagonal blocks of
+!     the permutation PAQ of a sparse matrix A, where input permutations
+!     P1 and Q1 are used to define the diagonal blocks. There may be
+!     non-zeros in the off-diagonal blocks but they are unaffected by
+!     MA30AD. P and P1 differ only within blocks as do Q and Q1. The
+!     permutations P1 and Q1 may be found by calling MC23AD or the
+!     matrix may be treated as a single block by using P1 = Q1 = I. The
+!     matrix non-zeros should be held compactly by rows, although it
+!     should be noted that the user can supply the matrix by columns
+!     to get the LU decomposition of A transpose.
+
+!     This description should also be consulted for further information
+!     on most of the parameters of MA30BD and MA30CD.
+!     The parameters are:
+! N   is an integer variable which must be set by the user to the order
+!     of the matrix. It is not altered by MA30AD.
+! ICN is an integer array of length LICN. Positions IDISP(2) to
+!     LICN must be set by the user to contain the column indices of
+!     the non-zeros in the diagonal blocks of P1*A*Q1. Those belonging
+!     to a single row must be contiguous but the ordering of column
+!     indices with each row is unimportant. The non-zeros of row I
+!     precede those of row I+1,I = 1,...,N-1 and no wasted space is
+!     allowed between the rows. On output the column indices of the
+!     LU decomposition of PAQ are held in positions IDISP(1) to
+!     IDISP(2), the rows are in pivotal order, and the column indices
+!     of the L Part of each row are in pivotal order and precede those
+!     of U. Again there is no wasted space either within a row or
+!     between the rows. ICN(1) to ICN(IDISP(1)-1), are neither
+!     required nor altered. If MC23AD has been called, these will hold
+!     information about the off-diagonal blocks.
+! A   Array of length LICN whose entries IDISP(2) to LICN must be set
+!     by the user to the values of the non-zero entries of the matrix
+!     in the order indicated by ICN. On output A will hold the LU
+!     factors of the matrix where again the position in the matrix
+!     is determined by the corresponding values in ICN.
+!     A(1) to A(IDISP(1)-1) are neither required nor altered.
+! LICN is an integer variable which must be set by the user to the
+!     length of arrays ICN and A. It must be big enough for A and ICN
+!     to hold all the non-zeros of L and U and leave some "elbow
+!     room". It is possible to calculate a minimum value for LICN by
+!     a preliminary run of MA30AD. The adequacy of the elbow room
+!     can be judged by the size of the private variable ICNCP.
+!     It is not altered by MA30AD.
+! LENR is an integer array of length N. On input, LENR(I) should
+!     equal the number of non-zeros in row I,I = 1,...,N of the
+!     diagonal blocks of P1*A*Q1. On output, LENR(I) will equal the
+!     total number of non-zeros in row I of L and row I of U.
+! LENRL is an integer array of length N. On output from MA30AD,
+!     LENRL(I) will hold the number of non-zeros in row I of L.
+! IDISP is an integer array of length 2. The user should set IDISP(1)
+!     to be the first available position in A/ICN for the LU
+!     decomposition while IDISP(2) is set to the position in A/ICN of
+!     the first non-zero in the diagonal blocks of P1*A*Q1. On output,
+!     IDISP(1) will be unaltered while IDISP(2) will be set to the
+!     position in A/ICN of the last non-zero of the LU decomposition.
+! IP  is an integer array of length N which holds a permutation of
+!     the integers 1 to N. On input to MA30AD, the absolute value of
+!     IP(I) must be set to the row of A which is row I of P1*A*Q1. A
+!     negative value for IP(I) indicates that row I is at the end of a
+!     diagonal block. On output from MA30AD, IP(I) indicates the row
+!     of A which is the Ith row in PAQ. IP(I) will still be negative
+!     for the last row of each block (except the last).
+! IQ  is an integer array of length N which again holds a
+!     permutation of the integers 1 to N. On input to MA30AD, IQ(J)
+!     must be set to the column of A which is column J of P1*A*Q1. On
+!     output from MA30AD, the absolute value of IQ(J) indicates the
+!     column of A which is the Jth in PAQ. For rows, I say, in which
+!     structural or numerical singularity is detected IQ(I) is
+!     negated.
+! IRN is an integer array of length LIRN used as workspace by
+!     MA30AD.
+! LIRN is an integer variable. It should be greater than the
+!     largest number of non-zeros in a diagonal block of P1*A*Q1 but
+!     need not be as large as LICN. It is the length of array IRN and
+!     should be large enough to hold the active part of any block,
+!     plus some "elbow room", the a posteriori adequacy of which can
+!     be estimated by examining the size of private variable
+!     IRNCP.
+! LENC, FIRST, LASTR, NEXTR, LASTC, NEXTC are all integer arrays of
+!     length N which are used as workspace by MA30AD. If NSRCH is
+!     set to a value less than or equal to N, then arrays LASTC and
+!     NEXTC are not referenced by MA30AD and so can be dummied in
+!     the call to MA30AD.
+! IPTR, IPC are integer arrays of length N which are used as
+!     workspace by MA30AD.
+! U   is a real(kind=wp) variable which should be set by the user
+!     to a value between 0. and 1.0. If less than zero it is reset
+!     to zero and if its value is 1.0 or greater it is reset to
+!     0.9999 (0.999999999 in D version). It determines the balance
+!     between pivoting for sparsity and for stability, values near
+!     zero emphasizing sparsity and values near one emphasizing
+!     stability. We recommend U = 0.1 as a posible first trial value.
+!     The stability can be judged by a later call to MC24AD or by
+!     setting LBIG to .TRUE.
+! IFLAG is an integer variable. It will have a non-negative value
+!     if MA30AD is successful. Negative values indicate error
+!     conditions while positive values indicate that the matrix has
+!     been successfully decomposed but is singular. For each non-zero
+!     value, an appropriate message is output on unit LP. Possible
+!     non-zero values for IFLAG are
+! -1  THe matrix is structurally singular with rank given by IRANK
+!     in private variables for MA30FD.
+! +1  If, however, the user wants the LU decomposition of a
+!     structurally singular matrix and sets the private variable
+!     ABORT1 to .FALSE., then, in the event of singularity and a
+!     successful decomposition, Iflag is returned with the value +1
+!     and no message is output.
+! -2  The matrix is numerically singular (it may also be structurally
+!     singular) with estimated rank given by IRANK in private variables
+!     for MA30FD.
+! +2  THE user can choose to continue the decomposition even when a
+!     zero pivot is encountered by setting private variable
+!     ABORT2 TO .FALSE. If a singularity is encountered, IFLAG will
+!     then return with a value of +2, and no message is output if
+!     the decomposition has been completed successfully.
+! -3  LIRN has not been large enough to continue with the
+!     decomposition. If the stage was zero then private variable
+!     MINIRN gives the length sufficient to start the decomposition on
+!     this block. FOr a successful decomposition on this block the
+!     user should make LIRN slightly (say about N/2) greater than this
+!     value.
+! -4  LICN is not large enough to continue with the decomposition.
+! -5  The decomposition has been completed but some of the LU factors
+!     have been discarded to create enough room in A/ICN to continue
+!     the decomposition. The variable MINICN in private variables for
+!     MA30FD. Then gives the size that LICN should be to enable the
+!     factorization to be successful. If the user sets private
+!     variable ABORT3 to .TRUE., then the subroutine will exit
+!     immediately instead of destroying any factors and continuing.
+! -6  Both LICN and LIRN are too small. Termination has been caused
+!     by lack of space in IRN (see error IFLAG = -3), but already
+!     some of the LU factors in A/ICN have been lost (see error
+!     IFLAG = -5). MINICN gives the minimum amount of space
+!     required in A/ICN for decomposition up to this point.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        KPP_REAL :: U
+        INTEGER :: IFLAG, LICN, LIRN, NN
+! ..
+! .. Array Arguments ..
+        KPP_REAL :: A(LICN)
+        INTEGER :: ICN(LICN), IDISP(2), IFIRST(NN), IP(NN), IPC(NN), &
+          IPTR(NN), IQ(NN), IRN(LIRN), LASTC(NN), LASTR(NN),         &
+          LENC(NN), LENR(NN), LENRL(NN), NEXTC(NN), NEXTR(NN)
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: AANEW, AMAX, ANEW, AU, PIVR, PIVRAT, SCALE
+        INTEGER :: COLUPD, DISPC, I, I1, I2, IACTIV, IBEG, IDISPC,   &
+          IDROP, IDUMMY, IEND, IFILL, IFIR, II, III, IJFIR, IJP1,    &
+          IJPOS, ILAST, INDROW, IOP, IPIV, IPOS, IROWS, ISING, ISRCH,&
+          ISTART, ISW, ISW1, ITOP, J, J1, J2, JBEG, JCOST, JCOUNT,   &
+          JDIFF, JDUMMY, JEND, JJ, JMORE, JNEW, JNPOS, JOLD, JPIV,   &
+          JPOS, JROOM, JVAL, JZER, JZERO, K, KCOST, KDROP, L, LC,    &
+          LENPIV, LENPP, LL, LR, MOREI, MSRCH, N, NBLOCK, NC, NNM1,  &
+          NR, NUM, NZ, NZ2, NZCOL, NZMIN, NZPC, NZROW, OLDEND,       &
+          OLDPIV, PIVEND, PIVOT, PIVROW, ROWI
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, IABS, MAX, MIN
+! ..
+! .. FIRST EXECUTABLE STATEMENT MA30AD
+! ..
+        MSRCH = NSRCH
+        NDROP = 0
+        LNPIV(1:10) = 0
+        LPIV(1:10) = 0
+        MAPIV = 0
+        MANPIV = 0
+        IAVPIV = 0
+        IANPIV = 0
+        KOUNTL = 0
+        MINIRN = 0
+        MINICN = IDISP(1) - 1
+        MOREI = 0
+        IRANK = NN
+        IRNCP = 0
+        ICNCP = 0
+        IFLAG = 0
+!       Reset U if necessary.
+        U = MIN(U,UMAX)
+!       IBEG is the position of the next pivot row after elimination
+!       step using it.
+        U = MAX(U,ZERO)
+        IBEG = IDISP(1)
+!       IACTIV is the position of the first entry in the active part
+!       of A/ICN.
+        IACTIV = IDISP(2)
+!       NZROW is current number of non-zeros in active and unprocessed
+!       part of row file ICN.
+        NZROW = LICN - IACTIV + 1
+        MINICN = NZROW + MINICN
+
+!       Count the number of diagonal blocks and set up pointers to the
+!       beginnings of the rows. NUM is the number of diagonal blocks.
+        NUM = 1
+        IPTR(1) = IACTIV
+        IF (NN==1) GOTO 30
+        NNM1 = NN - 1
+        DO I = 1, NNM1
+          IF (IP(I)<0) NUM = NUM + 1
+          IPTR(I+1) = IPTR(I) + LENR(I)
+        END DO
+!       ILAST is the last row in the previous block.
+30      ILAST = 0
+
+! ***********************************************
+! ****    LU decomposition of block NBLOCK   ****
+! ***********************************************
+
+!       Each pass through this loop performs LU decomposition on one
+!       of the diagonal blocks.
+        DO 1070 NBLOCK = 1, NUM
+          ISTART = ILAST + 1
+          DO IROWS = ISTART, NN
+            IF (IP(IROWS)<0) GOTO 50
+          END DO
+          IROWS = NN
+50        ILAST = IROWS
+!         N is the number of rows in the current block.
+!         ISTART is the index of the first row in the current block.
+!         ILAST is the index of the last row in the current block.
+!         IACTIV is the position of the first entry in the block.
+!         ITOP is the position of the last entry in the block.
+          N = ILAST - ISTART + 1
+          IF (N/=1) GOTO 100
+
+!         Code for dealing WITH 1x1 block.
+          LENRL(ILAST) = 0
+          ISING = ISTART
+          IF (LENR(ILAST)/=0) GOTO 60
+!         Block is structurally singular.
+          IRANK = IRANK - 1
+          ISING = -ISING
+          IF (IFLAG/=2 .AND. IFLAG/=-5) IFLAG = 1
+          IF (.NOT.ABORT1) GOTO 90
+          IDISP(2) = IACTIV
+          IFLAG = -1
+          IF (LP/=0) WRITE (LP,90000)
+!         RETURN
+          GOTO 1190
+60        SCALE = ABS(A(IACTIV))
+          IF (ABS(SCALE)<=ZERO) GOTO 70
+          IF (LBIG) BIG = MAX(BIG,SCALE)
+          GOTO 80
+70        ISING = -ISING
+          IRANK = IRANK - 1
+          IPTR(ILAST) = 0
+          IF (IFLAG/=-5) IFLAG = 2
+          IF (.NOT.ABORT2) GOTO 80
+          IDISP(2) = IACTIV
+          IFLAG = -2
+          IF (LP/=0) WRITE (LP,90001)
+          GOTO 1190
+80        A(IBEG) = A(IACTIV)
+          ICN(IBEG) = ICN(IACTIV)
+          IACTIV = IACTIV + 1
+          IPTR(ISTART) = 0
+          IBEG = IBEG + 1
+          NZROW = NZROW - 1
+90        LASTR(ISTART) = ISTART
+          IPC(ISTART) = -ISING
+          GOTO 1070
+
+!         Non-trivial block.
+100       ITOP = LICN
+          IF (ILAST/=NN) ITOP = IPTR(ILAST+1) - 1
+
+!         Set up column oriented storage.
+          LENRL(ISTART:ILAST) = 0
+          LENC(ISTART:ILAST) = 0
+          IF (ITOP-IACTIV<LIRN) GOTO 120
+          MINIRN = ITOP - IACTIV + 1
+          PIVOT = ISTART - 1
+          GOTO 1170
+
+!         Calculate column counts.
+120       DO II = IACTIV, ITOP
+            I = ICN(II)
+            LENC(I) = LENC(I) + 1
+          END DO
+!         Set up column pointers so that IPC(J) points to position
+!         after end of column J in column file.
+          IPC(ILAST) = LIRN + 1
+          J1 = ISTART + 1
+          DO JJ = J1, ILAST
+            J = ILAST - JJ + J1 - 1
+            IPC(J) = IPC(J+1) - LENC(J+1)
+          END DO
+          DO 160 INDROW = ISTART, ILAST
+            J1 = IPTR(INDROW)
+            J2 = J1 + LENR(INDROW) - 1
+            IF (J1>J2) GOTO 160
+            DO JJ = J1, J2
+              J = ICN(JJ)
+              IPOS = IPC(J) - 1
+              IRN(IPOS) = INDROW
+              IPC(J) = IPOS
+            END DO
+160       END DO
+!         DISPC is the lowest indexed active location in the column file.
+          DISPC = IPC(ISTART)
+          NZCOL = LIRN - DISPC + 1
+          MINIRN = MAX(NZCOL,MINIRN)
+          NZMIN = 1
+
+!         Initialize array IFIRST. IFIRST(I) = +/- K indicates that
+!         row/col K has I non-zeros. If IFIRST(I) = 0, there is no
+!         row or column with I non-zeros.
+          IFIRST(1:N) = 0
+
+!         Compute ordering of row and column counts.
+!         First run through columns (from column N to column 1).
+          DO 190 JJ = ISTART, ILAST
+            J = ILAST - JJ + ISTART
+            NZ = LENC(J)
+            IF (NZ/=0) GOTO 180
+            IPC(J) = 0
+            GOTO 190
+180         IF (NSRCH<=NN) GOTO 190
+            ISW = IFIRST(NZ)
+            IFIRST(NZ) = -J
+            LASTC(J) = 0
+            NEXTC(J) = -ISW
+            ISW1 = IABS(ISW)
+            IF (ISW/=0) LASTC(ISW1) = J
+190       END DO
+!        Now run through rows (again from N to 1).
+          DO 220 II = ISTART, ILAST
+               I = ILAST - II + ISTART
+            NZ = LENR(I)
+            IF (NZ/=0) GOTO 200
+            IPTR(I) = 0
+            LASTR(I) = 0
+            GOTO 220
+200         ISW = IFIRST(NZ)
+            IFIRST(NZ) = I
+            IF (ISW>0) GOTO 210
+            NEXTR(I) = 0
+            LASTR(I) = ISW
+            GOTO 220
+210         NEXTR(I) = ISW
+            LASTR(I) = LASTR(ISW)
+            LASTR(ISW) = I
+220       END DO
+
+! **********************************************
+! ****    Start of main elimination loop    ****
+! **********************************************
+          DO 1050 PIVOT = ISTART, ILAST
+
+!           First find the pivot using MARKOWITZ criterion with
+!           stability control.
+!           JCOST is the Markowitz cost of the best pivot so far.
+!           This pivot is in row IPIV and column JPIV.
+            NZ2 = NZMIN
+            JCOST = N*N
+
+!           Examine rows/columns in order of ascending count.
+            DO L = 1, 2
+              PIVRAT = ZERO
+              ISRCH = 1
+              LL = L
+!             A pass with L equal to 2 is only performed in the
+!             case of singularity.
+              DO 340 NZ = NZ2, N
+                IF (JCOST<=(NZ-1)**2) GOTO 430
+                IJFIR = IFIRST(NZ)
+!               IF (IJFIR) 240, 230, 250
+!230            IF (LL==1) NZMIN = NZ + 1
+                IF (IJFIR < 0) GOTO 240
+                IF (IJFIR > 0) GOTO 250
+                IF (LL==1) NZMIN = NZ + 1
+                GOTO 340
+240             LL = 2
+                IJFIR = -IJFIR
+                GOTO 300
+250             LL = 2
+!               Scan rows with NZ non-zeros.
+                DO IDUMMY = 1, N
+                  IF (JCOST<=(NZ-1)**2) GOTO 430
+                  IF (ISRCH>MSRCH) GOTO 430
+                  IF (IJFIR==0) GOTO 290
+!                 Row IJFIR is now examined.
+                  I = IJFIR
+                  IJFIR = NEXTR(I)
+!                 First calculate multiplier threshold level.
+                  AMAX = ZERO
+                  J1 = IPTR(I) + LENRL(I)
+                  J2 = IPTR(I) + LENR(I) - 1
+                  DO JJ = J1, J2
+                    AMAX = MAX(AMAX,ABS(A(JJ)))
+                  END DO
+                  AU = AMAX*U
+                  ISRCH = ISRCH + 1
+!                 Scan row for possible pivots.
+                  DO 270 JJ = J1, J2
+                    IF (ABS(A(JJ))<=AU .AND. L==1) GOTO 270
+                    J = ICN(JJ)
+                    KCOST = (NZ-1)*(LENC(J)-1)
+                    IF (KCOST>JCOST) GOTO 270
+                    PIVR = ZERO
+                    IF (ABS(AMAX)>ZERO) PIVR = ABS(A(JJ))/AMAX
+                    IF (KCOST==JCOST .AND. (PIVR<=PIVRAT .OR. NSRCH>NN+1)) &
+                      GOTO 270
+!                   Best pivot so far is found.
+                    JCOST = KCOST
+                    IJPOS = JJ
+                    IPIV = I
+                    JPIV = J
+                    IF (MSRCH>NN+1 .AND. JCOST<=(NZ-1)**2) GOTO 430
+                    PIVRAT = PIVR
+270               END DO
+                END DO
+
+!               Columns with NZ non-zeros now examined.
+290             IJFIR = IFIRST(NZ)
+                IJFIR = -LASTR(IJFIR)
+300             IF (JCOST<=NZ*(NZ-1)) GOTO 430
+                IF (MSRCH<=NN) GOTO 340
+                DO 330 IDUMMY = 1, N
+                  IF (IJFIR==0) GOTO 340
+                  J = IJFIR
+                  IJFIR = NEXTC(IJFIR)
+                  I1 = IPC(J)
+                  I2 = I1 + NZ - 1
+!                 Scan column J.
+                  DO 320 II = I1, I2
+                    I = IRN(II)
+                    KCOST = (NZ-1)*(LENR(I)-LENRL(I)-1)
+                    IF (KCOST>=JCOST) GOTO 320
+!                   Pivot has best Markowitz count so far. Now
+!                   check its suitability on numeric grounds by
+!                   examining the other non-zeros in its row.
+                    J1 = IPTR(I) + LENRL(I)
+                    J2 = IPTR(I) + LENR(I) - 1
+!                   We need a stability check on singleton columns
+!                   because of possible problems with
+!                   underdetermined systems.
+                    AMAX = ZERO
+                    DO JJ = J1, J2
+                      AMAX = MAX(AMAX,ABS(A(JJ)))
+                      IF (ICN(JJ)==J) JPOS = JJ
+                    END DO
+                    IF (ABS(A(JPOS))<=AMAX*U .AND. L==1) GOTO 320
+                    JCOST = KCOST
+                    IPIV = I
+                    JPIV = J
+                    IJPOS = JPOS
+                    IF (ABS(AMAX)>ZERO) PIVRAT = ABS(A(JPOS))/AMAX
+                    IF (JCOST<=NZ*(NZ-1)) GOTO 430
+320               END DO
+330             END DO
+340           END DO
+!             In the event of singularity, we must make sure all
+!             rows and columns are tested.
+              MSRCH = N
+
+!             Matrix is numerically or structurally singular. Which
+!             it is will be diagnosed later.
+              IRANK = IRANK - 1
+            END DO
+!           Assign rest of rows and columns to ordering array.
+!           Matrix is structurally singular.
+            IF (IFLAG/=2 .AND. IFLAG/=-5) IFLAG = 1
+            IRANK = IRANK - ILAST + PIVOT + 1
+            IF (.NOT.ABORT1) GOTO 360
+            IDISP(2) = IACTIV
+            IFLAG = -1
+            IF (LP/=0) WRITE (LP,90000)
+            GOTO 1190
+360         K = PIVOT - 1
+            DO 400 I = ISTART, ILAST
+              IF (LASTR(I)/=0) GOTO 400
+              K = K + 1
+              LASTR(I) = K
+              IF (LENRL(I)==0) GOTO 390
+              MINICN = MAX(MINICN,NZROW+IBEG-1+MOREI+LENRL(I))
+              IF (IACTIV-IBEG>=LENRL(I)) GOTO 370
+              CALL MA30DD(A,ICN,IPTR(ISTART),N,IACTIV,ITOP,.TRUE.)
+!             Check now to see if MA30DD has created enough
+!             available space.
+              IF (IACTIV-IBEG>=LENRL(I)) GOTO 370
+!             Create more space by destroying previously created
+!             LU factors.
+              MOREI = MOREI + IBEG - IDISP(1)
+              IBEG = IDISP(1)
+              IF (LP/=0) WRITE (LP,90002)
+              IFLAG = -5
+              IF (ABORT3) GOTO 1160
+370           J1 = IPTR(I)
+              J2 = J1 + LENRL(I) - 1
+              IPTR(I) = 0
+              DO JJ = J1, J2
+                A(IBEG) = A(JJ)
+                ICN(IBEG) = ICN(JJ)
+                ICN(JJ) = 0
+                IBEG = IBEG + 1
+              END DO
+              NZROW = NZROW - LENRL(I)
+390           IF (K==ILAST) GOTO 410
+400         END DO
+410         K = PIVOT - 1
+            DO 420 I = ISTART, ILAST
+              IF (IPC(I)/=0) GOTO 420
+              K = K + 1
+              IPC(I) = K
+              IF (K==ILAST) GOTO 1060
+420         END DO
+
+!           The pivot has now been found in position (IPIV,JPIV)
+!           in location IJPOS in row file.
+!           Update column and row ordering arrays to correspond
+!           with removal of the active part of the matrix.
+430         ISING = PIVOT
+            IF (ABS(A(IJPOS))>ZERO) GOTO 440
+!           Numerical singularity is recorded here.
+            ISING = -ISING
+            IF (IFLAG/=-5) IFLAG = 2
+            IF (.NOT.ABORT2) GOTO 440
+            IDISP(2) = IACTIV
+            IFLAG = -2
+            IF (LP/=0) WRITE (LP,90001)
+            GOTO 1190
+440         OLDPIV = IPTR(IPIV) + LENRL(IPIV)
+            OLDEND = IPTR(IPIV) + LENR(IPIV) - 1
+!           Changes to column ordering.
+            IF (NSRCH<=NN) GOTO 470
+            COLUPD = NN + 1
+            LENPP = OLDEND - OLDPIV + 1
+            IF (LENPP<4) LPIV(1) = LPIV(1) + 1
+            IF (LENPP>=4 .AND. LENPP<=6) LPIV(2) = LPIV(2) + 1
+            IF (LENPP>=7 .AND. LENPP<=10) LPIV(3) = LPIV(3) + 1
+            IF (LENPP>=11 .AND. LENPP<=15) LPIV(4) = LPIV(4) + 1
+            IF (LENPP>=16 .AND. LENPP<=20) LPIV(5) = LPIV(5) + 1
+            IF (LENPP>=21 .AND. LENPP<=30) LPIV(6) = LPIV(6) + 1
+            IF (LENPP>=31 .AND. LENPP<=50) LPIV(7) = LPIV(7) + 1
+            IF (LENPP>=51 .AND. LENPP<=70) LPIV(8) = LPIV(8) + 1
+            IF (LENPP>=71 .AND. LENPP<=100) LPIV(9) = LPIV(9) + 1
+            IF (LENPP>=101) LPIV(10) = LPIV(10) + 1
+            MAPIV = MAX(MAPIV,LENPP)
+            IAVPIV = IAVPIV + LENPP
+            DO 460 JJ = OLDPIV, OLDEND
+              J = ICN(JJ)
+              LC = LASTC(J)
+              NC = NEXTC(J)
+              NEXTC(J) = -COLUPD
+              IF (JJ/=IJPOS) COLUPD = J
+              IF (NC/=0) LASTC(NC) = LC
+              IF (LC==0) GOTO 450
+              NEXTC(LC) = NC
+              GOTO 460
+450           NZ = LENC(J)
+              ISW = IFIRST(NZ)
+              IF (ISW>0) LASTR(ISW) = -NC
+              IF (ISW<0) IFIRST(NZ) = -NC
+460         END DO
+!           Changes to row ordering.
+470         I1 = IPC(JPIV)
+            I2 = I1 + LENC(JPIV) - 1
+            DO 490 II = I1, I2
+              I = IRN(II)
+              LR = LASTR(I)
+              NR = NEXTR(I)
+              IF (NR/=0) LASTR(NR) = LR
+              IF (LR<=0) GOTO 480
+              NEXTR(LR) = NR
+              GOTO 490
+480           NZ = LENR(I) - LENRL(I)
+              IF (NR/=0) IFIRST(NZ) = NR
+              IF (NR==0) IFIRST(NZ) = LR
+490         END DO
+
+!           Move pivot to position LENRL+1 in pivot row and move pivot
+!           row to the beginning of the available storage. The L part
+!           and the pivot in the old copy of the pivot row is nullified
+!           while, in the strictly upper triangular part, the column
+!           indices, J say, are overwritten by the corresponding entry
+!           of IQ (IQ(J)) and IQ(J) is set to the negative of the
+!           displacement of the column index from the pivot entry.
+            IF (OLDPIV==IJPOS) GOTO 500
+            AU = A(OLDPIV)
+            A(OLDPIV) = A(IJPOS)
+            A(IJPOS) = AU
+            ICN(IJPOS) = ICN(OLDPIV)
+            ICN(OLDPIV) = JPIV
+!           Check to see if there is space immediately available in
+!           A/ICN to hold new copy of pivot row.
+500         MINICN = MAX(MINICN,NZROW+IBEG-1+MOREI+LENR(IPIV))
+            IF (IACTIV-IBEG>=LENR(IPIV)) GOTO 510
+            CALL MA30DD(A,ICN,IPTR(ISTART),N,IACTIV,ITOP,.TRUE.)
+            OLDPIV = IPTR(IPIV) + LENRL(IPIV)
+            OLDEND = IPTR(IPIV) + LENR(IPIV) - 1
+!           Check now to see if MA30DD has created enough
+!           available space.
+            IF (IACTIV-IBEG>=LENR(IPIV)) GOTO 510
+!           Create more space by destroying previously created
+!           LU factors.
+            MOREI = MOREI + IBEG - IDISP(1)
+            IBEG = IDISP(1)
+            IF (LP/=0) WRITE (LP,90002)
+            IFLAG = -5
+            IF (ABORT3) GOTO 1160
+            IF (IACTIV-IBEG>=LENR(IPIV)) GOTO 510
+!           There is still not enough room in A/ICN.
+            IFLAG = -4
+            GOTO 1160
+!           Copy pivot row and set up IQ array.
+510         IJPOS = 0
+            J1 = IPTR(IPIV)
+
+            DO JJ = J1, OLDEND
+              A(IBEG) = A(JJ)
+              ICN(IBEG) = ICN(JJ)
+              IF (IJPOS/=0) GOTO 520
+              IF (ICN(JJ)==JPIV) IJPOS = IBEG
+              ICN(JJ) = 0
+              GOTO 530
+520           K = IBEG - IJPOS
+              J = ICN(JJ)
+              ICN(JJ) = IQ(J)
+              IQ(J) = -K
+530           IBEG = IBEG + 1
+            END DO
+
+            IJP1 = IJPOS + 1
+            PIVEND = IBEG - 1
+            LENPIV = PIVEND - IJPOS
+            NZROW = NZROW - LENRL(IPIV) - 1
+            IPTR(IPIV) = OLDPIV + 1
+            IF (LENPIV==0) IPTR(IPIV) = 0
+
+!           Remove pivot row (including pivot) from column
+!           oriented file.
+            DO JJ = IJPOS, PIVEND
+              J = ICN(JJ)
+              I1 = IPC(J)
+              LENC(J) = LENC(J) - 1
+!             I2 is last position in new column.
+              I2 = IPC(J) + LENC(J) - 1
+              IF (I2<I1) GOTO 560
+              DO 550 II = I1, I2
+                IF (IRN(II)/=IPIV) GOTO 550
+                IRN(II) = IRN(I2+1)
+                GOTO 560
+550           END DO
+560           IRN(I2+1) = 0
+            END DO
+            NZCOL = NZCOL - LENPIV - 1
+
+!           Go down the pivot column and for each row with a
+!           non-zero add the appropriate multiple of the pivot
+!           row to it. We loop on the number of non-zeros in
+!           the pivot column since MA30DD may change its
+!           actual position.
+
+            NZPC = LENC(JPIV)
+            IF (NZPC==0) GOTO 940
+            DO 880 III = 1, NZPC
+              II = IPC(JPIV) + III - 1
+              I = IRN(II)
+!             Search row I For non-zero to be eliminated,
+!             calculate multiplier, and place it in position
+!             LENRL+1 in its row. IDROP is the number of
+!             non-zero entries dropped from row I because
+!             these fall beneath tolerance level.
+              IDROP = 0
+              J1 = IPTR(I) + LENRL(I)
+              IEND = IPTR(I) + LENR(I) - 1
+              DO 580 JJ = J1, IEND
+                IF (ICN(JJ)/=JPIV) GOTO 580
+!               IF pivot is zero, rest of column is and so
+!               multiplier is zero.
+                AU = ZERO
+                IF (ABS(A(IJPOS))>ZERO) AU = -A(JJ)/A(IJPOS)
+                IF (LBIG) BIG = MAX(BIG,ABS(AU))
+                A(JJ) = A(J1)
+                A(J1) = AU
+                ICN(JJ) = ICN(J1)
+                ICN(J1) = JPIV
+                LENRL(I) = LENRL(I) + 1
+                GOTO 590
+580           END DO
+!             JUMP if pivot row is a singleton.
+590           IF (LENPIV==0) GOTO 880
+!             Now perform necessary operations on rest of non-pivot
+!             row I.
+              ROWI = J1 + 1
+              IOP = 0
+!             Jump if all the pivot row causes fill-in.
+              IF (ROWI>IEND) GOTO 670
+!             Perform operations on current non-zeros in row I.
+!             Innermost loop.
+              LENPP = IEND - ROWI + 1
+              IF (LENPP<4) LNPIV(1) = LNPIV(1) + 1
+              IF (LENPP>=4 .AND. LENPP<=6) LNPIV(2) = LNPIV(2) + 1
+              IF (LENPP>=7 .AND. LENPP<=10) LNPIV(3) = LNPIV(3) + 1
+              IF (LENPP>=11 .AND. LENPP<=15) LNPIV(4) = LNPIV(4) + 1
+              IF (LENPP>=16 .AND. LENPP<=20) LNPIV(5) = LNPIV(5) + 1
+              IF (LENPP>=21 .AND. LENPP<=30) LNPIV(6) = LNPIV(6) + 1
+              IF (LENPP>=31 .AND. LENPP<=50) LNPIV(7) = LNPIV(7) + 1
+              IF (LENPP>=51 .AND. LENPP<=70) LNPIV(8) = LNPIV(8) + 1
+              IF (LENPP>=71 .AND. LENPP<=100) LNPIV(9) = LNPIV(9) + 1
+              IF (LENPP>=101) LNPIV(10) = LNPIV(10) + 1
+              MANPIV = MAX(MANPIV,LENPP)
+              IANPIV = IANPIV + LENPP
+              KOUNTL = KOUNTL + 1
+              DO 600 JJ = ROWI, IEND
+                J = ICN(JJ)
+                IF (IQ(J)>0) GOTO 600
+                IOP = IOP + 1
+                PIVROW = IJPOS - IQ(J)
+                A(JJ) = A(JJ) + AU*A(PIVROW)
+                IF (LBIG) BIG = MAX(ABS(A(JJ)),BIG)
+                ICN(PIVROW) = -ICN(PIVROW)
+                IF (ABS(A(JJ))<TOL) IDROP = IDROP + 1
+600           END DO
+
+!             JUMP if no non-zeros in non-pivot row have been removed
+!             because these are beneath the drop-tolerance TOL.
+
+              IF (IDROP==0) GOTO 670
+
+!             Run through non-pivot row compressing row so that only
+!             non-zeros greater than TOL are stored. All non-zeros
+!             less than TOL are also removed from the column structure.
+
+              JNEW = ROWI
+              DO 650 JJ = ROWI, IEND
+                IF (ABS(A(JJ))<TOL) GOTO 610
+                A(JNEW) = A(JJ)
+                ICN(JNEW) = ICN(JJ)
+                JNEW = JNEW + 1
+                GOTO 650
+
+!               Remove non-zero entry from column structure.
+
+610             J = ICN(JJ)
+                I1 = IPC(J)
+                I2 = I1 + LENC(J) - 1
+                DO II = I1, I2
+                  IF (IRN(II)==I) GOTO 630
+                END DO
+630             IRN(II) = IRN(I2)
+                IRN(I2) = 0
+                LENC(J) = LENC(J) - 1
+                IF (NSRCH<=NN) GOTO 650
+!               Remove column from column chain and place in
+!               update chain.
+                IF (NEXTC(J)<0) GOTO 650
+!               JUMP if column already in update chain.
+                LC = LASTC(J)
+                NC = NEXTC(J)
+                NEXTC(J) = -COLUPD
+                COLUPD = J
+                IF (NC/=0) LASTC(NC) = LC
+                IF (LC==0) GOTO 640
+                NEXTC(LC) = NC
+                GOTO 650
+640             NZ = LENC(J) + 1
+                ISW = IFIRST(NZ)
+                IF (ISW>0) LASTR(ISW) = -NC
+                IF (ISW<0) IFIRST(NZ) = -NC
+650           END DO
+              ICN(JNEW:IEND) = 0
+!             The value of IDROP might be different from that
+!             calculated earlier because we may now have dropped
+!             some non-zeros which were not modified by the pivot
+!             row.
+              IDROP = IEND + 1 - JNEW
+              IEND = JNEW - 1
+              LENR(I) = LENR(I) - IDROP
+              NZROW = NZROW - IDROP
+              NZCOL = NZCOL - IDROP
+              NDROP = NDROP + IDROP
+670           IFILL = LENPIV - IOP
+!             Jump is if there is no fill-in.
+              IF (IFILL==0) GOTO 770
+!             Now for the fill-in.
+              MINICN = MAX(MINICN,MOREI+IBEG-1+NZROW+IFILL+LENR(I))
+!             See if there is room for fill-in.
+!             Get maximum space for row I in situ.
+              DO JDIFF = 1, IFILL
+                JNPOS = IEND + JDIFF
+                IF (JNPOS>LICN) GOTO 690
+                IF (ICN(JNPOS)/=0) GOTO 690
+              END DO
+!             There is room for all the fill-in after the end of the
+!             row so it can be left in situ.
+!             Next available space for fill-in.
+              IEND = IEND + 1
+              GOTO 770
+!             JMORE spaces for fill-in are required in front of row.
+690           JMORE = IFILL - JDIFF + 1
+              I1 = IPTR(I)
+!             We now look in front of the row to see if there is space
+!             for the rest of the fill-in.
+              DO JDIFF = 1, JMORE
+                JNPOS = I1 - JDIFF
+                IF (JNPOS<IACTIV) GOTO 710
+                IF (ICN(JNPOS)/=0) GOTO 720
+              END DO
+710           JNPOS = I1 - JMORE
+              GOTO 730
+!             Whole row must be moved to the beginning of available
+!             storage.
+720           JNPOS = IACTIV - LENR(I) - IFILL
+!             Jump if there is space immediately available for the
+!             shifted row.
+730           IF (JNPOS>=IBEG) GOTO 750
+              CALL MA30DD(A,ICN,IPTR(ISTART),N,IACTIV,ITOP,.TRUE.)
+              I1 = IPTR(I)
+              IEND = I1 + LENR(I) - 1
+              JNPOS = IACTIV - LENR(I) - IFILL
+              IF (JNPOS>=IBEG) GOTO 750
+!             No space available so try to create some by throwing
+!             away previous LU decomposition.
+              MOREI = MOREI + IBEG - IDISP(1) - LENPIV - 1
+              IF (LP/=0) WRITE (LP,90002)
+              IFLAG = -5
+              IF (ABORT3) GOTO 1160
+!             Keep record of current pivot row.
+              IBEG = IDISP(1)
+              ICN(IBEG) = JPIV
+              A(IBEG) = A(IJPOS)
+              IJPOS = IBEG
+              DO JJ = IJP1, PIVEND
+                IBEG = IBEG + 1
+                A(IBEG) = A(JJ)
+                ICN(IBEG) = ICN(JJ)
+              END DO
+              IJP1 = IJPOS + 1
+              PIVEND = IBEG
+              IBEG = IBEG + 1
+              IF (JNPOS>=IBEG) GOTO 750
+!             This still does not give enough room.
+              IFLAG = -4
+              GOTO 1160
+750           IACTIV = MIN(IACTIV,JNPOS)
+!             Move non-pivot row I.
+              IPTR(I) = JNPOS
+              DO JJ = I1, IEND
+                A(JNPOS) = A(JJ)
+                ICN(JNPOS) = ICN(JJ)
+                JNPOS = JNPOS + 1
+                ICN(JJ) = 0
+              END DO
+!             First new available space.
+              IEND = JNPOS
+770           NZROW = NZROW + IFILL
+!             Innermost fill-in loop which also resets ICN.
+              IDROP = 0
+              DO 850 JJ = IJP1, PIVEND
+                J = ICN(JJ)
+                IF (J<0) GOTO 840
+                ANEW = AU*A(JJ)
+                AANEW = ABS(ANEW)
+                IF (AANEW>=TOL) GOTO 780
+                IDROP = IDROP + 1
+                NDROP = NDROP + 1
+                NZROW = NZROW - 1
+                MINICN = MINICN - 1
+                IFILL = IFILL - 1
+                GOTO 850
+780             IF (LBIG) BIG = MAX(AANEW,BIG)
+                A(IEND) = ANEW
+                ICN(IEND) = J
+                IEND = IEND + 1
+
+!               Put new entry in column file.
+                MINIRN = MAX(MINIRN,NZCOL+LENC(J)+1)
+                JEND = IPC(J) + LENC(J)
+                JROOM = NZPC - III + 1 + LENC(J)
+                IF (JEND>LIRN) GOTO 790
+                IF (IRN(JEND)==0) GOTO 830
+790             IF (JROOM<DISPC) GOTO 800
+!               Compress column file to obtain space for new
+!               copy of column.
+                CALL MA30DD(A,IRN,IPC(ISTART),N,DISPC,LIRN,.FALSE.)
+                IF (JROOM<DISPC) GOTO 800
+                JROOM = DISPC - 1
+                IF (JROOM>=LENC(J)+1) GOTO 800
+!               Column file is not large enough.
+                GOTO 1170
+!               Copy column to beginning of file.
+800             JBEG = IPC(J)
+                JEND = IPC(J) + LENC(J) - 1
+                JZERO = DISPC - 1
+                DISPC = DISPC - JROOM
+                IDISPC = DISPC
+                DO II = JBEG, JEND
+                  IRN(IDISPC) = IRN(II)
+                  IRN(II) = 0
+                  IDISPC = IDISPC + 1
+                END DO
+                IPC(J) = DISPC
+                JEND = IDISPC
+                IRN(JEND:JZERO) = 0
+830             IRN(JEND) = I
+                NZCOL = NZCOL + 1
+                LENC(J) = LENC(J) + 1
+!               End of adjustment to column file.
+                GOTO 850
+840             ICN(JJ) = -J
+850           END DO
+              IF (IDROP==0) GOTO 870
+              DO KDROP = 1, IDROP
+                ICN(IEND) = 0
+                IEND = IEND + 1
+              END DO
+870           LENR(I) = LENR(I) + IFILL
+!             End of scan of pivot column.
+880         END DO
+
+!           Remove pivot column from column oriented storage
+!           and update row ordering arrays.
+            I1 = IPC(JPIV)
+            I2 = IPC(JPIV) + LENC(JPIV) - 1
+            NZCOL = NZCOL - LENC(JPIV)
+            DO 930 II = I1, I2
+              I = IRN(II)
+              IRN(II) = 0
+              NZ = LENR(I) - LENRL(I)
+              IF (NZ/=0) GOTO 890
+              LASTR(I) = 0
+              GOTO 930
+890           IFIR = IFIRST(NZ)
+              IFIRST(NZ) = I
+!             IF (IFIR) 900, 920, 910
+!900          LASTR(I) = IFIR
+              IF (IFIR == 0) GOTO 920
+              IF (IFIR > 0) GOTO 910
+              LASTR(I) = IFIR
+              NEXTR(I) = 0
+              GOTO 930
+910           LASTR(I) = LASTR(IFIR)
+              NEXTR(I) = IFIR
+              LASTR(IFIR) = I
+              GOTO 930
+920           LASTR(I) = 0
+              NEXTR(I) = 0
+              NZMIN = MIN(NZMIN,NZ)
+930         END DO
+!           Restore IQ and nullify U part of old pivot row.
+!           Record the column permutation in LASTC(JPIV) and
+!           the row permutation in LASTR(IPIV).
+940         IPC(JPIV) = -ISING
+            LASTR(IPIV) = PIVOT
+            IF (LENPIV==0) GOTO 1050
+            NZROW = NZROW - LENPIV
+            JVAL = IJP1
+            JZER = IPTR(IPIV)
+            IPTR(IPIV) = 0
+            DO JCOUNT = 1, LENPIV
+              J = ICN(JVAL)
+              IQ(J) = ICN(JZER)
+              ICN(JZER) = 0
+              JVAL = JVAL + 1
+              JZER = JZER + 1
+            END DO
+!           Adjust column ordering arrays.
+            IF (NSRCH>NN) GOTO 980
+            DO 970 JJ = IJP1, PIVEND
+              J = ICN(JJ)
+              NZ = LENC(J)
+              IF (NZ/=0) GOTO 960
+              IPC(J) = 0
+              GOTO 970
+960           NZMIN = MIN(NZMIN,NZ)
+970         END DO
+            GOTO 1050
+980         JJ = COLUPD
+            DO 1040 JDUMMY = 1, NN
+              J = JJ
+              IF (J==NN+1) GOTO 1050
+              JJ = -NEXTC(J)
+              NZ = LENC(J)
+              IF (NZ/=0) GOTO 990
+              IPC(J) = 0
+              GOTO 1040
+990           IFIR = IFIRST(NZ)
+              LASTC(J) = 0
+!             IF (IFIR) 1000, 1010, 1020
+!1000         IFIRST(NZ) = -J
+              IF (IFIR == 0) GOTO 1010
+              IF (IFIR > 0) GOTO 1020
+              IFIRST(NZ) = -J
+              IFIR = -IFIR
+              LASTC(IFIR) = J
+              NEXTC(J) = IFIR
+              GOTO 1040
+1010          IFIRST(NZ) = -J
+              NEXTC(J) = 0
+              GOTO 1030
+1020          LC = -LASTR(IFIR)
+              LASTR(IFIR) = -J
+              NEXTC(J) = LC
+              IF (LC/=0) LASTC(LC) = J
+1030          NZMIN = MIN(NZMIN,NZ)
+1040        END DO
+1050      END DO
+! ********************************************
+! ****    End of main elimination loop    ****
+! ********************************************
+
+!         Reset IACTIV to point to the beginning of the
+!         next block.
+1060      IF (ILAST/=NN) IACTIV = IPTR(ILAST+1)
+1070    END DO
+
+! ********************************************
+! ****    End of deomposition of block    ****
+! ********************************************
+
+!     Record singularity (if any) in IQ array.
+        IF (IRANK==NN) GOTO 1090
+        DO 1080 I = 1, NN
+          IF (IPC(I)<0) GOTO 1080
+          ISING = IPC(I)
+          IQ(ISING) = -IQ(ISING)
+          IPC(I) = -ISING
+1080    END DO
+
+!       Run through LU decomposition changing column indices
+!       to that of new order and permuting LENR and LENRL
+!       arrays according to pivot permutations.
+1090    ISTART = IDISP(1)
+        IEND = IBEG - 1
+        IF (IEND<ISTART) GOTO 1110
+        DO JJ = ISTART, IEND
+          JOLD = ICN(JJ)
+          ICN(JJ) = -IPC(JOLD)
+        END DO
+1110    DO II = 1, NN
+          I = LASTR(II)
+          NEXTR(I) = LENR(II)
+          IPTR(I) = LENRL(II)
+        END DO
+        LENRL(1:NN) = IPTR(1:NN)
+        LENR(1:NN) = NEXTR(1:NN)
+
+!       Update permutation arrays IP and IQ.
+        DO II = 1, NN
+          I = LASTR(II)
+          J = -IPC(II)
+          NEXTR(I) = IABS(IP(II)+0)
+          IPTR(J) = IABS(IQ(II)+0)
+!         NEXTR(I) = IABS(IP(II))
+!         IPTR(J) = IABS(IQ(II))
+        END DO
+        DO I = 1, NN
+          IF (IP(I)<0) NEXTR(I) = -NEXTR(I)
+          IP(I) = NEXTR(I)
+          IF (IQ(I)<0) IPTR(I) = -IPTR(I)
+          IQ(I) = IPTR(I)
+        END DO
+        IP(NN) = IABS(IP(NN)+0)
+!       IP(NN) = IABS(IP(NN))
+        IDISP(2) = IEND
+        GOTO 1190
+
+!       Error returns
+1160    IDISP(2) = IACTIV
+        IF (LP==0) GOTO 1190
+        WRITE (LP,90003)
+        GOTO 1180
+1170    IF (IFLAG==-5) IFLAG = -6
+        IF (IFLAG/=-6) IFLAG = -3
+        IDISP(2) = IACTIV
+        IF (LP==0) GOTO 1190
+        IF (IFLAG==-3) WRITE (LP,90004)
+        IF (IFLAG==-6) WRITE (LP,90005)
+1180    PIVOT = PIVOT - ISTART + 1
+        WRITE (LP,90006) PIVOT, NBLOCK, ISTART, ILAST
+        IF (PIVOT==0) WRITE (LP,90007) MINIRN
+
+1190    RETURN
+90000   FORMAT (' Error return from MA30AD because matrix is', &
+          ' structurally singular')
+90001   FORMAT (' Error return from MA30AD because matrix is', &
+          ' numerically singular')
+90002   FORMAT (' LU decomposition destroyed to create more space')
+90003   FORMAT (' Error return from MA30AD because LICN is not big enough')
+90004   FORMAT (' Error return from MA30AD because LIRN is not big enough')
+90005   FORMAT (' Error return from MA30AD LIRN and LICN are too small')
+90006   FORMAT (' At stage ',I5,' in block ',I5,' with first row ',I5, &
+          ' and last row ',I5)
+90007   FORMAT (' To continue set LIRN to at least ',I8)
+
+      END SUBROUTINE MA30AD
+!_______________________________________________________________________
+
+      SUBROUTINE MA30DD(A,ICN,IPTR,N,IACTIV,ITOP,REALS)
+! ..
+! This subroutine performs garbage collection operations on the arrays
+! A, ICN, and IRN.
+! ..
+! IACTIV is the first position in arrays A/ICN from which the compress
+! starts. On exit, IACTIV equals the position of the first entry.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER :: IACTIV, ITOP, N
+        LOGICAL :: REALS
+! ..
+! .. Array Arguments ..
+        KPP_REAL :: A(ITOP)
+        INTEGER :: ICN(ITOP), IPTR(N)
+! ..
+! .. Local Scalars ..
+        INTEGER :: J, JPOS, K, KL, KN
+! ..
+! .. FIRST EXECUTABLE STATEMENT MA30DD
+! ..
+        IF (REALS) ICNCP = ICNCP + 1
+        IF (.NOT.REALS) IRNCP = IRNCP + 1
+!       Set the first non-zero entry in each row to the negative of the
+!       row/col number and hold this row/col index in the row/col
+!       pointer. This is so that the beginning of each row/col can
+!       be recognized in the subsequent scan.
+        DO 10 J = 1, N
+          K = IPTR(J)
+          IF (K<IACTIV) GOTO 10
+          IPTR(J) = ICN(K)
+          ICN(K) = -J
+10      END DO
+        KN = ITOP + 1
+        KL = ITOP - IACTIV + 1
+!       Go through arrays in reverse order compressing to the back so
+!       that there are no zeros held in positions IACTIV to ITOP in ICN.
+!       Reset first entry of each row/col and pointer array IPTR.
+        DO 30 K = 1, KL
+          JPOS = ITOP - K + 1
+          IF (ICN(JPOS)==0) GOTO 30
+          KN = KN - 1
+          IF (REALS) A(KN) = A(JPOS)
+          IF (ICN(JPOS)>=0) GOTO 20
+!         First non-zero of row/col has been located.
+          J = -ICN(JPOS)
+          ICN(JPOS) = IPTR(J)
+          IPTR(J) = KN
+20        ICN(KN) = ICN(JPOS)
+30      END DO
+        IACTIV = KN
+        RETURN
+
+      END SUBROUTINE MA30DD
+!_______________________________________________________________________
+
+      SUBROUTINE MA30BD(N,ICN,A,LICN,LENR,LENRL,IDISP,IP,IQ,W,IW,IFLAG)
+! ..
+! MA30BD performs the LU decomposition of the diagonal blocks of
+! a new matrix PAQ of the same sparsity pattern, using information
+! from a previous call to MA30AD. THe entries of the input matrix
+! must already be in their final positions in the LU decomposition
+! structure. This routine executes about five times faster than
+! MA30AD.
+! ..
+! We now describe the argument list for MA30BD. Consult MA30AD for
+!     further information on these parameters.
+! N   is an integer variable set to the order of the matrix.
+! ICN is an integer array of length LICN. It should be unchanged
+!     since the last call to MA30AD. It is not altered by MA30BD.
+! A   is a real(kind=wp) array of length LICN. The user must set
+!     entries IDISP(1) to IDISP(2) to contain the entries in the
+!     diagonal blocks of the matrix PAQ whose column numbers are
+!     held in ICN, using corresponding positions. Note that some
+!     zeros may need to be held explicitly. On output entries
+!     IDISP(1) to IDISP(2) of array A contain the LU decomposition
+!     of the diagonal blocks of PAQ. Entries A(1) to A(IDISP(1)-1)
+!     are neither required nor altered by MA30BD.
+! LICN is an integer variable which must be set by the user to the
+!     length of arrays A and ICN. it is not altered by MA30BD.
+! LENR, LENRL are integer arrays of length N. They should be
+!     unchanged since the last call to MA30AD. They are not
+!     altered by MA30BD.
+! IDISP is an integer array of length 2. It should be unchanged
+!     since the last call to MA30AD. It is not altered by MA30BD.
+! IP, IQ are integer arrays of length N. They should be unchanged
+!     since the last call to MA30AD. They are not altered by
+!     MA30BD.
+! W   is a REAL(KIND=WP) array of length N which is used as
+!     workspace by MA30BD.
+! IW  is an integer array of length N which is used as workspace
+!     by MA30BD.
+! IFLAG is an integer variable. On output from MA30BD, IFLAG has
+!     the value zero if the factorization was successful, has the
+!     value I if pivot I was very small and has the value -I if
+!     an unexpected singularity was detected at stage I of the
+!     decomposition.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER :: IFLAG, LICN, N
+! ..
+! .. Array Arguments ..
+        KPP_REAL :: A(LICN), W(N)
+        INTEGER :: ICN(LICN), IDISP(2), IP(N), IQ(N), IW(N), LENR(N), LENRL(N)
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: AU, ROWMAX
+        INTEGER :: I, IFIN, ILEND, IPIVJ, ISING, ISTART, J, JAY, JAYJAY, JFIN, &
+          JJ, PIVPOS
+        LOGICAL :: STAB
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, MAX
+! ..
+! .. FIRST EXECUTABLE STATEMENT MA30BD
+! ..
+        STAB = EPS <= ONE
+        RMIN = EPS
+        ISING = 0
+        IFLAG = 0
+        W(1:N) = ZERO
+!       Set up pointers to the beginning of the rows.
+        IW(1) = IDISP(1)
+        IF (N==1) GOTO 30
+        DO I = 2, N
+          IW(I) = IW(I-1) + LENR(I-1)
+        END DO
+
+!       Start of main loop.
+!       At step I, row I of A is transformed to row I of LU by
+!       adding appropriate multiples of rows 1 TO I-1 using row
+!       Gauss elimination.
+30      DO 170 I = 1, N
+!         ISTART is beginning of row I of A and row I of L.
+          ISTART = IW(I)
+!         IFIN is end of row I of A and row I of U.
+          IFIN = ISTART + LENR(I) - 1
+!         ILEND is end of row I of L.
+          ILEND = ISTART + LENRL(I) - 1
+          IF (ISTART>ILEND) GOTO 100
+!         Load row I of A into vector W.
+          DO JJ = ISTART, IFIN
+            J = ICN(JJ)
+            W(J) = A(JJ)
+          END DO
+
+!         Add multiples of appropriate rows of I to I-1 to row I.
+          DO 80 JJ = ISTART, ILEND
+            J = ICN(JJ)
+!           IPIVJ is position of pivot in row J.
+            IPIVJ = IW(J) + LENRL(J)
+!           Form multiplier AU.
+            AU = -W(J)/A(IPIVJ)
+            IF (LBIG) BIG = MAX(ABS(AU),BIG)
+            W(J) = AU
+!           AU * ROW J (U part) is added to row I.
+            IPIVJ = IPIVJ + 1
+            JFIN = IW(J) + LENR(J) - 1
+            IF (IPIVJ>JFIN) GOTO 80
+!           Innermost loop.
+            IF (LBIG) GOTO 60
+            DO JAYJAY = IPIVJ, JFIN
+              JAY = ICN(JAYJAY)
+              W(JAY) = W(JAY) + AU*A(JAYJAY)
+            END DO
+            GOTO 80
+60          DO JAYJAY = IPIVJ, JFIN
+              JAY = ICN(JAYJAY)
+              W(JAY) = W(JAY) + AU*A(JAYJAY)
+              BIG = MAX(ABS(W(JAY)),BIG)
+            END DO
+80        END DO
+
+!         Reload W back into A (now LU).
+          DO JJ = ISTART, IFIN
+            J = ICN(JJ)
+            A(JJ) = W(J)
+            W(J) = ZERO
+          END DO
+!         We now perform the stability checks.
+100       PIVPOS = ILEND + 1
+          IF (IQ(I)>0) GOTO 150
+!         Matrix had singularity at this point in MA30AD.
+!         Is it the first such pivot in current block?
+          IF (ISING==0) ISING = I
+!         Does current matrix have a singularity in the same place?
+          IF (PIVPOS>IFIN) GOTO 110
+          IF (ABS(A(PIVPOS))>ZERO) GOTO 180
+!         It does, so set ising if it is not the end of the current
+!         block. Check to see that appropriate part of LU is zero
+!         or null.
+110       IF (ISTART>IFIN) GOTO 130
+          DO 120 JJ = ISTART, IFIN
+            IF (ICN(JJ)<ISING) GOTO 120
+            IF (ABS(A(JJ))>ZERO) GOTO 180
+120       END DO
+130       IF (PIVPOS<=IFIN) A(PIVPOS) = ONE
+          IF (IP(I)>0 .AND. I/=N) GOTO 170
+!         End of current block. Reset zero pivots and ISING.
+          DO 140 J = ISING, I
+            IF ((LENR(J)-LENRL(J))==0) GOTO 140
+            JJ = IW(J) + LENRL(J)
+            A(JJ) = ZERO
+140       END DO
+          ISING = 0
+          GOTO 170
+!         Matrix had non-zero pivot in MA30AD at this stage.
+150       IF (PIVPOS>IFIN) GOTO 180
+          IF (ABS(A(PIVPOS))<=ZERO) GOTO 180
+          IF (.NOT.STAB) GOTO 170
+          ROWMAX = ZERO
+          DO JJ = PIVPOS, IFIN
+            ROWMAX = MAX(ROWMAX,ABS(A(JJ)))
+          END DO
+          IF (ABS(A(PIVPOS))/ROWMAX>=RMIN) GOTO 170
+          IFLAG = I
+          RMIN = ABS(A(PIVPOS))/ROWMAX
+!         End of main loop.
+170     END DO
+
+        GOTO 190
+!       Error return
+180     IF (LP/=0) WRITE (LP,90000) I
+        IFLAG = -I
+
+190     RETURN
+90000   FORMAT (' Error return from MA30BD; Singularity detected in',' row', &
+          I8)
+
+      END SUBROUTINE MA30BD
+!_______________________________________________________________________
+
+      SUBROUTINE MA30CD(N,ICN,A,LICN,LENR,LENRL,LENOFF,IDISP,IP,IQ,X, &
+        W,MTYPE)
+! ..
+! MA30CD uses the factors produced by MA30AD or MA30BD to solve
+! AX = B or A TRANSPOSE X = B when the matrix P1*A*Q1(PAQ) is
+! block lower triangular (including the case of only one diagonal
+! block).
+! ..
+! We now describe the argument list for MA30CD.
+! N   is an integer variable set to the order of the matrix. It is
+!     not altered by the subroutine.
+! ICN is an integer array of length LICN. Entries IDISP(1) to
+!     IDISP(2) should be unchanged since the last call to MA30AD. If
+!     the matrix has more than one diagonal block, then column indices
+!     corresponding to non-zeros in sub-diagonal blocks of PAQ must
+!     appear in positions 1 to IDISP(1)-1. For the same row those
+!     entries must be contiguous, with those in row I preceding those
+!     in row I+1 (I=1,...,N-1) and no wasted space between rows.
+!     Entries may be in any order within each row. It is not altered
+!     by MA30CD.
+! A   is a REAL(KIND=WP) array of length LICN. Entries IDISP(1) to
+!     IDISP(2) should be unchanged since the last call to MA30AD or
+!     MA30BD. If the matrix has more than one diagonal block, then
+!     the values of the non-zeros in sub-diagonal blocks must be in
+!     positions 1 to IDISP(1)-1 in the order given by ICN. It is not
+!     altered by MA30CD.
+! LICN is an integer variable set to the size of arrays ICN and A.
+!     It is not altered by MA30CD.
+! LENR, LENRL are integer arrays of length N which should be
+!     unchanged since the last call to MA30AD. They are not
+!     altered by MA30CD.
+! LENOFF is an integer array of length N. If the matrix PAQ (or
+!     P1*A*Q1) has more than one diagonal block, then LENOFF(I),
+!     I=1,...,N should be set to the number of non-zeros in row I of
+!     the matrix PAQ which are in sub-diagonal blocks. If there is
+!     only one diagonal block then LENOFF(1) may be set TO -1, in
+!     which case the other entries of LENOFF are never accessed.
+!     It is not altered by ma30cd.
+! IDISP is an integer array of length 2 which should be unchanged
+!     since the last call to MA30AD. It is not altered by MA30CD.
+! IP, IQ are integer arrays of length N which should be unchanged
+!     since the last call to MA30AD. They are not altered by
+!     MA30CD.
+! X   is a REAL(KIND=WP) array of length N. It must be set by the
+!     user to the values of the right hand side vector B for the
+!     equations being solved. ON exit from MA30CD it will be equal
+!     to the solution X required.
+! W   is a REAL(KIND=WP) array of length N which is used as
+!     workspace by MA30CD.
+! MTYPE is an integer variable which must be set by the user. If
+!     MTYPE = 1, then the solution to the system AX = B is returned.
+!     Any other value for mtype will return the solution to the
+!     system A TRANSPOSE X = B. It is not altered by MA30CD.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER :: LICN, MTYPE, N
+! ..
+! .. Array Arguments ..
+        KPP_REAL :: A(LICN), W(N), X(N)
+        INTEGER :: ICN(LICN), IDISP(2), IP(N), IQ(N), LENOFF(N), LENR(N), &
+          LENRL(N)
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: WI, WII
+        INTEGER :: I, IB, IBACK, IBLEND, IBLOCK, IEND, IFIRST, II, III,   &
+          ILAST, J, J1, J2, J3, JJ, JPIV, JPIVP1, K, LJ1, LJ2, LT, LTEND, &
+          NUMBLK
+        LOGICAL :: NEG, NOBLOC
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, IABS, MAX
+! ..
+! .. FIRST EXECUTABLE STATEMENT MA30CD
+! ..
+!       The final value of RESID is the maximum residual for an
+!       inconsistent set of equations.
+        RESID = ZERO
+!       NOBLOC is .TRUE. if subroutine block has been used
+!       previously and is .FALSE. otherwise. The value .FALSE.
+!       means that LENOFF will not be subsequently accessed.
+        NOBLOC = LENOFF(1) < 0
+        IF (MTYPE/=1) GOTO 140
+
+!       We now solve  A * X = B.
+!       NEG is used to indicate when the last row in a block
+!       has been reached. It is then set to .TRUE. whereafter
+!       back substitution is performed on the block.
+        NEG = .FALSE.
+!       IP(N) is negated so that the last row of the last
+!       block can be recognised. It is reset to its positive
+!       value on exit.
+        IP(N) = -IP(N)
+!       Preorder VECTOR ... W(I) = X(IP(I))
+        DO II = 1, N
+          I = IP(II)
+          I = IABS(I)
+          W(II) = X(I)
+        END DO
+!       LT holds the position of the first non-zero in the current
+!       row of the off-diagonal blocks.
+        LT = 1
+!       IFIRST holds the index of the first row in the current block.
+        IFIRST = 1
+!       IBLOCK holds the position of the first non-zero in the current
+!       row of the LU decomposition of the diagonal blocks.
+        IBLOCK = IDISP(1)
+!       If I is not the last row of a block, then a pass through this
+!       loop adds the inner product of row I of the off-diagonal blocks
+!       and W to W and performs forward elimination using row I of the
+!       LU decomposition. If I is the last row of a block then, after
+!       performing these aforementioned operations, back substitution
+!       is performed using the rows of the block.
+        DO 120 I = 1, N
+          WI = W(I)
+          IF (NOBLOC) GOTO 30
+          IF (LENOFF(I)==0) GOTO 30
+!         Operations using lower triangular blocks.
+!         LTEND is the end of row I in the off-diagonal blocks.
+          LTEND = LT + LENOFF(I) - 1
+          DO JJ = LT, LTEND
+            J = ICN(JJ)
+            WI = WI - A(JJ)*W(J)
+          END DO
+!         LT is set the beginning of the next off-diagonal row.
+          LT = LTEND + 1
+!         Set NEG to .TRUE. if we are on the last row of the block.
+30        IF (IP(I)<0) NEG = .TRUE.
+          IF (LENRL(I)==0) GOTO 50
+!         Forward elimination phase.
+!         IEND is the end of the L part of row I in the LU decomposition.
+          IEND = IBLOCK + LENRL(I) - 1
+          DO JJ = IBLOCK, IEND
+            J = ICN(JJ)
+            WI = WI + A(JJ)*W(J)
+          END DO
+!         IBLOCK is adjusted to point to the start of the next row.
+50        IBLOCK = IBLOCK + LENR(I)
+          W(I) = WI
+          IF (.NOT.NEG) GOTO 120
+!         Back substitution phase.
+!         J1 is position in A/ICN after end of block beginning in
+!         row IFIRST and ending in row I.
+          J1 = IBLOCK
+!         Are there any singularities in this block? If not, continue
+!         with the back substitution.
+          IB = I
+          IF (IQ(I)>0) GOTO 70
+          DO III = IFIRST, I
+            IB = I - III + IFIRST
+            IF (IQ(IB)>0) GOTO 70
+            J1 = J1 - LENR(IB)
+            RESID = MAX(RESID,ABS(W(IB)))
+            W(IB) = ZERO
+          END DO
+!         Entire block is singular.
+          GOTO 110
+!         Each pass through this loop performs the back substitution
+!         operations for a single row, starting at the end of the
+!         block and working through it in reverse order.
+70        DO III = IFIRST, IB
+            II = IB - III + IFIRST
+!           J2 is end of row II.
+            J2 = J1 - 1
+!           J1 is beginning of row II.
+            J1 = J1 - LENR(II)
+!           JPIV is the position of the pivot in row II.
+            JPIV = J1 + LENRL(II)
+            JPIVP1 = JPIV + 1
+!           JUMP if row II of U has no non-zeros.
+            IF (J2<JPIVP1) GOTO 90
+            WII = W(II)
+            DO JJ = JPIVP1, J2
+              J = ICN(JJ)
+              WII = WII - A(JJ)*W(J)
+            END DO
+            W(II) = WII
+90          W(II) = W(II)/A(JPIV)
+          END DO
+110       IFIRST = I + 1
+          NEG = .FALSE.
+120     END DO
+
+!       Reorder solution vector, X(I) = W(IQINVERSE(I)).
+        DO II = 1, N
+          I = IQ(II)
+          I = IABS(I)
+          X(I) = W(II)
+        END DO
+        IP(N) = -IP(N)
+        GOTO 320
+
+!       WE now solve ATRANSPOSE * X = B.
+!       Preorder vector, W(I) = X(IQ(I)).
+140     DO II = 1, N
+          I = IQ(II)
+          I = IABS(I)
+          W(II) = X(I)
+        END DO
+!       LJ1 points to the beginning the current row in the off-diagonal
+!       blocks.
+        LJ1 = IDISP(1)
+!       IBLOCK is initialized to point to the beginning of the block
+!       after the last one.
+        IBLOCK = IDISP(2) + 1
+!       ILAST is the last row in the current block.
+        ILAST = N
+!       IBLEND points to the position after the last non-zero in the
+!       current block.
+        IBLEND = IBLOCK
+!       Each pass through this loop operates with one diagonal block and
+!       the off-diagonal part of the matrix corresponding to the rows
+!       of this block. The blocks are taken in reverse order and the
+!       number of times the loop is entered is MIN(N, NO. BLOCKS+1).
+        DO NUMBLK = 1, N
+          IF (ILAST==0) GOTO 300
+          IBLOCK = IBLOCK - LENR(ILAST)
+!         This loop finds the index of the first row in the current
+!         block. It is FIRST and IBLOCK is set to the position of
+!         the beginning of this first row.
+          DO K = 1, N
+            II = ILAST - K
+            IF (II==0) GOTO 170
+            IF (IP(II)<0) GOTO 170
+            IBLOCK = IBLOCK - LENR(II)
+          END DO
+170       IFIRST = II + 1
+!         J1 points to the position of the beginning of row I (LT part)
+!         or pivot.
+          J1 = IBLOCK
+!         Forward elimination.
+!         Each pass through this loop performs the operations for one row
+!         of the block. If the corresponding entry of W is zero then the
+!         operations can be avoided.
+          DO I = IFIRST, ILAST
+            IF (ABS(W(I))<=ZERO) GOTO 200
+!           JUMP IF ROW I SINGULAR.
+            IF (IQ(I)<0) GOTO 220
+!           J2 first points to the pivot in row I and then is made
+!           to point to the first non-zero in the U TRANSPOSE part
+!           of the row.
+            J2 = J1 + LENRL(I)
+            WI = W(I)/A(J2)
+            IF (LENR(I)-LENRL(I)==1) GOTO 190
+            J2 = J2 + 1
+!           J3 points to the end of row I.
+            J3 = J1 + LENR(I) - 1
+            DO JJ = J2, J3
+              J = ICN(JJ)
+              W(J) = W(J) - A(JJ)*WI
+            END DO
+190         W(I) = WI
+200         J1 = J1 + LENR(I)
+          END DO
+          GOTO 240
+!         Deal with rest of block which is singular.
+220       DO II = I, ILAST
+            RESID = MAX(RESID,ABS(W(II)))
+            W(II) = ZERO
+          END DO
+!         Back substitution.
+!         This loop does the back substitution on the rows of the
+!         block in the reverse order doing it simultaneously on
+!         the L TRANSPOSE part of the diagonal blocks and the
+!         off-diagonal blocks.
+240       J1 = IBLEND
+          DO 280 IBACK = IFIRST, ILAST
+            I = ILAST - IBACK + IFIRST
+!           J1 points to the beginning of row I.
+            J1 = J1 - LENR(I)
+            IF (LENRL(I)==0) GOTO 260
+!           J2 points to the end of the L TRANSPOSE part of row I.
+            J2 = J1 + LENRL(I) - 1
+            DO JJ = J1, J2
+              J = ICN(JJ)
+              W(J) = W(J) + A(JJ)*W(I)
+            END DO
+260         IF (NOBLOC) GOTO 280
+!           Operations using lower triangular blocks.
+            IF (LENOFF(I)==0) GOTO 280
+!           LJ2 points to the end of row I of the off-diagonal blocks.
+            LJ2 = LJ1 - 1
+!           LJ1 points to the beginning of row I of the off-diagonal
+!           blocks.
+            LJ1 = LJ1 - LENOFF(I)
+            DO JJ = LJ1, LJ2
+              J = ICN(JJ)
+              W(J) = W(J) - A(JJ)*W(I)
+            END DO
+280       END DO
+          IBLEND = J1
+          ILAST = IFIRST - 1
+        END DO
+!       Reorder solution vector, X(I) = W(IPINVERSE(I)).
+300     DO II = 1, N
+          I = IP(II)
+          I = IABS(I)
+          X(I) = W(II)
+        END DO
+
+320     RETURN
+
+      END SUBROUTINE MA30CD
+!_______________________________________________________________________
+
+! Private Variable Information.
+! Private variables for MA30ED hold control parameters.
+!     Original : COMMON /MA30ED/ LP,ABORT1,ABORT2,ABORT3
+! The integer LP is the unit number to which the error messages are
+!     sent. LP has a default value of 6. This default value can be
+!     reset by the user, if desired. A value of 0 suppresses all
+!     messages.
+! The logical variables ABORT1, ABORT2, ABORT3 are used to control
+!     the conditions under which the subroutine will terminate.
+! If ABORT1 iS .TRUE. then the subroutine will exit immediately on
+!     detecting structural singularity.
+! If ABORT2 iS .TRUE. then the subroutine will exit immediately on
+!     detecting numerical singularity.
+! If ABORT3 iS .TRUE. then the subroutine will exit immediately when
+!     the available space in A/ICN is filled up by the previously
+!     decomposed, active, and undecomposed parts of the matrix.
+! The default values for ABORT1, ABORT2, ABORT3 are set to .TRUE.,
+!     .TRUE., and .FALSE., respectively.
+
+! The private variables for MA30FD are used to provide the user with
+! information on the decomposition.
+!     Original : COMMON /MA30FD/ IRNCP,ICNCP,IRANK,MINIRN,MINICN
+! IRNCP AND ICNCP are integer variables used to monitor the adequacy
+!     of the allocated space in arrays IRN and A/ICN, respectively,
+!     by taking account of the number of data management compresses
+!     required on these arrays. If IRNCP or ICNCP is fairly large (say
+!     greater than N/10), It may be advantageous to increase the size
+!     of the corresponding array(s). IRNCP and ICNCP are initialized
+!     to zero on entry to MA30AD and are incremented each time the
+!     compressing routine MA30DD is entered.
+! ICNCP is the number of compresses on A/ICN.
+! IRNCP is the number of compresses on IRN.
+! IRANK is an integer variable which gives an estimate (actually an
+!     upper bound) of the rank of the matrix. On an exit with IFLAG
+!     equal to 0, this will be equal to N.
+! MINIRN is an integer variable which, after a successful call to
+!     MA30AD, indicates the minimum length to which IRN can be
+!     reduced while still permitting a successful decomposition
+!     of the same matrix. If, however, the user were to decrease the
+!     length of IRN to that size, the number of compresses (IRNCP)
+!     may be very high and quite costly. If LIRN is not large enough
+!     to begin the decomposition on a diagonal block, MINIRN will be
+!     equal to the value required to continue the decomposition and
+!     IFLAG will be set to -3 or -6. A value of LIRN slightly greater
+!     than this (say about N/2) will usually provide enough space to
+!     complete the decomposition on that block. In the event of any
+!     other failure minirn gives the minimum size of IRN required
+!     for a successful decomposition up to that point.
+! MINICN is an integer variable which after a successful call to
+!     MA30AD, indicates the minimum size of LICN required to enable
+!     a successful decomposition. In the event of failure with
+!     IFLAG = -5, MINICN will, if ABORT3 is left set to .FALSE.,
+!     indicate the minimum length that would be sufficient to
+!     prevent this error in a subsequent run on an identical matrix.
+!     Again the user may prefer to use a value of icn slightly
+!     greater than MINICN for subsequent runs to avoid too many
+!     conpresses (ICNCP). In the event of failure with IFLAG equal
+!     to any negative value except -4, minicn will give the minimum
+!     length to which licn could be reduced to enable a successful
+!     decomposition to the point at which failure occurred. Notice
+!     that, on a successful entry IDISP(2) gives the amount of space
+!     in A/ICN required for the decomposition while MINICN will
+!     usually be slightly greater because of the need for
+!     "elbow room". If the user is very unsure how large to make
+!     LICN, the variable MINICN can be used to provide that
+!     information. A preliminary run should be performed with ABORT3
+!     left set to .FALSE. and LICN about 3/2 times as big as the
+!     number of non-zeros in the original matrix. Unless the initial
+!     problem is very sparse (when the run will be successful) or
+!     fills in extremely badly (giving an error return with
+!     IFLAG = -4), an error return with IFLAG = -5 should result and
+!     MINICN will give the amount of space required for a successful
+!     decomposition.
+
+! The private variables for MA30GD are used by the MA30BD entry only.
+!     Original : COMMON /MA30GD/ EPS,RMIN
+! EPS is a REAL(KIND=WP) variable. It is used to test for small
+!     pivots. Its default value is 1.0D-4 (1.0E-4 in E version).
+!     If the user sets EPS to any value greater than 1.0, then no
+!     check is made on the size of the pivots. Although the absence
+!     of such a check would fail to warn the user of bad instability,
+!     its absence will enable MA30BD to run slightly faster. An a
+!     posteriori check on the stability of the factorization can
+!     be obtained from MC24AD.
+! RMIN is a REAL(KIND=WP) variable which gives the user some
+!     information about the stability of the decomposition. At each
+!     stage of the LU decomposition the magnitude of the pivot APIV
+!     is compared with the largest off-diagonal entry currently in
+!     its row (row of U), ROWMAX say. If the ratio
+!                       MIN(APIV/ROWMAX)
+!     where the minimum is taken over all the rows, is less than EPS
+!     then RMIN is set to this minimum value and IFLAG is returned
+!     with the value +I where I is the row in which this minimum
+!     occurs. If the user sets EPS greater than one, then this test
+!     is not performed. In this case, and when there are no small
+!     pivots rmin will be set equal to EPS.
+
+! The private variables for MA30HD are used by MA30CD only.
+!     Original : COMMON /MA30HD/ RESID
+! RESID is a REAL(KIND=WP) variable. In the case of singular or
+!     rectangular matrices its final value will be equal to the
+!     maximum residual for the unsatisfied equations; otherwise
+!     its value will be set to zero.
+
+!  MA30ID private variables control the use of drop tolerances,
+!     the modified pivot option and the calculation of the largest
+!     entry in the factorization process. These private variables
+!     were added to the MA30 package in February, 1983.
+!     Original : COMMON /MA30ID/ TOL,BIG,NDROP,NSRCH,LBIG
+! TOL is a REAL(KIND=WP) variable. If it is set to a positive
+!     value, then MA30AD will drop from the factors any non-zero
+!     whose modulus is less than TOL. The factorization will then
+!     require less storage but will be inaccurate. After a run of
+!     MA30AD where entries have been dropped, MA30BD should not
+!     be called. The default value for TOL is 0.0.
+! BIG is a REAL(KIND=WP) variable. If LBIG has been set to .TRUE.,
+!     BIG will be set to the largest entry encountered during the
+!     factorization.
+! NDROP is an integer variable. If TOL has been set positive, on
+!     exit from MA30AD, NDROP will hold the number of entries
+!     dropped from the data structure.
+! NSRCH is an integer variable. If NSRCH is set to a value less
+!     than or equal to N, then a different pivot option will be
+!     employed by MA30AD. This may result in different fill-in
+!     and execution time for MA30AD. If NSRCH is less than or
+!     equal to N, the workspace arrays LASTC and NEXTC are not
+!     referenced by MA30AD. The default value for NSRCH is 32768.
+! LBIG is a logical variable. If LBIG is set to .TRUE., the value
+!     of the largest entry encountered in the factorization by
+!     MA30AD is returned in BIG. Setting LBIG to .TRUE. will
+!     marginally increase the factorization time for MA30AD and
+!     will increase that for MA30BD by about 20%. The default
+!     value for LBIG is .FALSE.
+!_______________________________________________________________________
+
+      SUBROUTINE MC13D(N,ICN,LICN,IP,LENR,IOR,IB,NUM,IW)
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER :: LICN, N, NUM
+! ..
+! .. Array Arguments ..
+        INTEGER :: IB(N), ICN(LICN), IOR(N), IP(N), IW(N,3), LENR(N)
+! ..
+! .. FIRST EXECUTABLE STATEMENT MA13D
+! ..
+        CALL MC13E(N,ICN,LICN,IP,LENR,IOR,IB,NUM,IW(1,1),IW(1,2),IW(1,3))
+        RETURN
+
+      END SUBROUTINE MC13D
+!_______________________________________________________________________
+
+      SUBROUTINE MC13E(N,ICN,LICN,IP,LENR,ARP,IB,NUM,LOWL,NUMB,PREV)
+! ..
+! ARP(I) is one less than the number of unsearched edges leaving
+!     node I. At the end of the algorithm it is set to a
+!     permutation which puts the matrix in block lower
+!     triangular form.
+! IB(I) is the position in the ordering of the start of the Ith
+!     block. IB(N+1-I) holds the node number of the Ith node
+!     on the stack.
+! LOWL(I) is the smallest stack position of any node to which a
+!     path from node I has been found. It is set to N+1 when
+!     node I is removed from the stack.
+! NUMB(I) is the position of node I in the stack if it is on
+!     the stack. It is the permuted order of node I for those
+!     nodes whose final position has been found and is otherwise
+!     zero.
+! PREV(I) is the node at the end of the path when node I was
+!     placed on the stack.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER :: LICN, N, NUM
+! ..
+! .. Array Arguments ..
+        INTEGER :: ARP(N), IB(N), ICN(LICN), IP(N), LENR(N), LOWL(N),  &
+          NUMB(N), PREV(N)
+! ..
+! .. Local Scalars ..
+        INTEGER :: DUMMY, I, I1, I2, ICNT, II, ISN, IST, IST1, IV, IW, &
+          J, K, LCNT, NNM1, STP
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC MIN
+! ..
+! .. FIRST EXECUTABLE STATEMENT MA13E
+! ..
+!       ICNT is the number of nodes whose positions in final ordering
+!       have been found.
+        ICNT = 0
+!       NUM is the number of blocks that have been found.
+        NUM = 0
+        NNM1 = N + N - 1
+
+!       Initialization of arrays.
+        DO J = 1, N
+          NUMB(J) = 0
+          ARP(J) = LENR(J) - 1
+        END DO
+
+        DO 90 ISN = 1, N
+!         Look for a starting node.
+          IF (NUMB(ISN)/=0) GOTO 90
+          IV = ISN
+!         IST is the number of nodes on the stack. It is the
+!         stack pointer.
+          IST = 1
+!         Put node IV at beginning of stack.
+          LOWL(IV) = 1
+          NUMB(IV) = 1
+          IB(N) = IV
+
+!         The body of this loop puts a new node on the stack
+!         or backtracks.
+          DO 80 DUMMY = 1, NNM1
+            I1 = ARP(IV)
+!           Have all edges leaving node iv been searched?
+            IF (I1<0) GOTO 30
+            I2 = IP(IV) + LENR(IV) - 1
+            I1 = I2 - I1
+
+!           Look at edges leaving node iv until one enters a
+!           new node or all edges are exhausted.
+            DO 20 II = I1, I2
+              IW = ICN(II)
+!             Has node iw been on stack already?
+              IF (NUMB(IW)==0) GOTO 70
+!             Update value of LOWL(IV) if necessary.
+20          LOWL(IV) = MIN(LOWL(IV),LOWL(IW))
+
+!           There are no more edges leaving node IV.
+            ARP(IV) = -1
+!           Is node IV the root of a block.
+30          IF (LOWL(IV)<NUMB(IV)) GOTO 60
+
+!           Order nodes in a block.
+            NUM = NUM + 1
+            IST1 = N + 1 - IST
+            LCNT = ICNT + 1
+!           Peel block off the top of the stack starting at the
+!           top and working down to the root of the block.
+            DO STP = IST1, N
+              IW = IB(STP)
+              LOWL(IW) = N + 1
+              ICNT = ICNT + 1
+              NUMB(IW) = ICNT
+              IF (IW==IV) GOTO 50
+            END DO
+50          IST = N - STP
+            IB(NUM) = LCNT
+!           Are there any nodes left on the stack?
+            IF (IST/=0) GOTO 60
+!           Have all the nodes been ordered?
+            IF (ICNT<N) GOTO 90
+            GOTO 100
+
+!           Backtrack to previous node on path.
+60          IW = IV
+            IV = PREV(IV)
+!           Update value of LOWL(IV) if necessary.
+            LOWL(IV) = MIN(LOWL(IV),LOWL(IW))
+            GOTO 80
+
+!           Put new node on the stack.
+70          ARP(IV) = I2 - II - 1
+            PREV(IW) = IV
+            IV = IW
+            IST = IST + 1
+            LOWL(IV) = IST
+            NUMB(IV) = IST
+            K = N + 1 - IST
+            IB(K) = IV
+80        END DO
+
+90      END DO
+
+!       Put permutation in the required form.
+100     DO I = 1, N
+          II = NUMB(I)
+          ARP(II) = I
+        END DO
+        RETURN
+
+      END SUBROUTINE MC13E
+!_______________________________________________________________________
+
+      SUBROUTINE MC20AD(NC,MAXA,A,INUM,JPTR,JNUM,JDISP)
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+! ..
+        INTEGER :: JDISP, MAXA, NC
+! ..
+! .. Array Arguments ..
+        KPP_REAL :: A(MAXA)
+        INTEGER :: INUM(MAXA), JNUM(MAXA), JPTR(NC)
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: ACE, ACEP
+        INTEGER :: I, ICE, ICEP, J, JA, JB, JCE, JCEP, K, KR, LOC, MYNULL
+! ..
+! .. FIRST EXECUTABLE STATEMENT MA20AD
+! ..
+        MYNULL = -JDISP
+!       CLEAR JPTR
+        JPTR(1:NC) = 0
+!       Count the number of elements in each column.
+        DO K = 1, MAXA
+          J = JNUM(K) + JDISP
+          JPTR(J) = JPTR(J) + 1
+        END DO
+!       SET THE JPTR ARRAY.
+        K = 1
+        DO J = 1, NC
+          KR = K + JPTR(J)
+          JPTR(J) = K
+          K = KR
+        END DO
+
+!       Reorder the elements into column order. The algorithm is an
+!       in-place sort and is of order MAXA.
+        DO 50 I = 1, MAXA
+!         Establish the current entry.
+          JCE = JNUM(I) + JDISP
+          IF (JCE==0) GOTO 50
+          ACE = A(I)
+          ICE = INUM(I)
+!         Clear the location vacated.
+          JNUM(I) = MYNULL
+!         Chain from current entry to store items.
+          DO 40 J = 1, MAXA
+!           Current entry not in correct position. Determine the
+!           correct position to store entry.
+            LOC = JPTR(JCE)
+            JPTR(JCE) = JPTR(JCE) + 1
+!           Save contents of that location.
+            ACEP = A(LOC)
+            ICEP = INUM(LOC)
+            JCEP = JNUM(LOC)
+!           Store current entry.
+            A(LOC) = ACE
+            INUM(LOC) = ICE
+            JNUM(LOC) = MYNULL
+!           Check if next current entry needs to be processed.
+            IF (JCEP==MYNULL) GOTO 50
+!           It does. Copy into current entry.
+            ACE = ACEP
+            ICE = ICEP
+40        JCE = JCEP + JDISP
+
+50      END DO
+
+!       Reset JPTR vector.
+        JA = 1
+        DO J = 1, NC
+          JB = JPTR(J)
+          JPTR(J) = JA
+          JA = JB
+        END DO
+        RETURN
+
+      END SUBROUTINE MC20AD
+!_______________________________________________________________________
+
+      SUBROUTINE MC20BD(NC,MAXA,A,INUM,JPTR)
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER :: MAXA, NC
+! ..
+! .. Array Arguments ..
+        KPP_REAL :: A(MAXA)
+        INTEGER :: INUM(MAXA), JPTR(NC)
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: ACE
+        INTEGER :: ICE, IK, J, JJ, K, KDUMMY, KLO, KMAX, KOR
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC IABS
+! ..
+! .. FIRST EXECUTABLE STATEMENT MA20BD
+! ..
+        KMAX = MAXA
+        DO JJ = 1, NC
+          J = NC + 1 - JJ
+          KLO = JPTR(J) + 1
+          IF (KLO>KMAX) GOTO 40
+          KOR = KMAX
+          DO KDUMMY = KLO, KMAX
+!           Items KOR,KOR+1,...,KMAX are in order.
+            ACE = A(KOR-1)
+            ICE = INUM(KOR-1)
+            DO K = KOR, KMAX
+              IK = INUM(K)
+              IF (IABS(ICE)<=IABS(IK)) GOTO 20
+              INUM(K-1) = IK
+              A(K-1) = A(K)
+            END DO
+            K = KMAX + 1
+20          INUM(K-1) = ICE
+            A(K-1) = ACE
+            KOR = KOR - 1
+          END DO
+!         Next column.
+40        KMAX = KLO - 2
+        END DO
+        RETURN
+
+      END SUBROUTINE MC20BD
+!_______________________________________________________________________
+
+      SUBROUTINE MC21A(N,ICN,LICN,IP,LENR,IPERM,NUMNZ,IW)
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER :: LICN, N, NUMNZ
+! ..
+! .. Array Arguments ..
+        INTEGER :: ICN(LICN), IP(N), IPERM(N), IW(N,4), LENR(N)
+! ..
+! .. FIRST EXECUTABLE STATEMENT MA21A
+! ..
+        CALL MC21B(N,ICN,LICN,IP,LENR,IPERM,NUMNZ,IW(1,1),IW(1,2), &
+          IW(1,3),IW(1,4))
+        RETURN
+
+      END SUBROUTINE MC21A
+!_______________________________________________________________________
+
+      SUBROUTINE MC21B(N,ICN,LICN,IP,LENR,IPERM,NUMNZ,PR,ARP,CV,OUT)
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+! ..
+        INTEGER :: LICN, N, NUMNZ
+! ..
+! .. Array Arguments ..
+        INTEGER :: ARP(N), CV(N), ICN(LICN), IP(N), IPERM(N), LENR(N), &
+          OUT(N), PR(N)
+! ..
+! .. Local Scalars ..
+        INTEGER :: I, II, IN1, IN2, IOUTK, J, J1, JORD, K, KK
+! ..
+! .. FIRST EXECUTABLE STATEMENT MA21B
+! ..
+! PR(I) is the previous row to I in the depth first search.
+!    It is used as a work array in the sorting algorithm.
+!    Elements (IPERM(I),I) I=1,...,N are non-zero at the
+!    end of the algorithm unless N assignments have not
+!    been made, in which case (IPERM(I),I) will be zero
+!    for N-NUMNZ entries.
+! CV(I) is the most recent row extension at which column I
+!    was visited.
+! ARP(I) is one less than the number of non-zeros in row I
+!    which have not been scanned when looking for a cheap
+!    assignment.
+! OUT(I) is one less than the number of non-zeros in row I
+!    which have not been scanned during one pass through
+!    the main loop.
+
+!       Initialization of arrays.
+        DO I = 1, N
+          ARP(I) = LENR(I) - 1
+          CV(I) = 0
+          IPERM(I) = 0
+        END DO
+        NUMNZ = 0
+
+!       Main loop.
+!       Each pass round this loop either results in a new
+!       assignment or gives a row with no assignment.
+        DO 100 JORD = 1, N
+          J = JORD
+          PR(J) = -1
+          DO 70 K = 1, JORD
+!           Look for a cheap assignment.
+            IN1 = ARP(J)
+            IF (IN1<0) GOTO 30
+            IN2 = IP(J) + LENR(J) - 1
+            IN1 = IN2 - IN1
+            DO II = IN1, IN2
+              I = ICN(II)
+              IF (IPERM(I)==0) GOTO 80
+            END DO
+!           No cheap assignment in row.
+            ARP(J) = -1
+!           Begin looking for assignment chain starting with row J.
+30          OUT(J) = LENR(J) - 1
+!           Inner loop. Extends chain by one or backtracks.
+            DO KK = 1, JORD
+              IN1 = OUT(J)
+              IF (IN1<0) GOTO 50
+              IN2 = IP(J) + LENR(J) - 1
+              IN1 = IN2 - IN1
+!             Forward scan.
+              DO 40 II = IN1, IN2
+                I = ICN(II)
+                IF (CV(I)==JORD) GOTO 40
+!               Column I has not yet been accessed during this pass.
+                J1 = J
+                J = IPERM(I)
+                CV(I) = JORD
+                PR(J) = J1
+                OUT(J1) = IN2 - II - 1
+                GOTO 70
+40            END DO
+
+!             Backtracking step.
+50            J = PR(J)
+              IF (J==-1) GOTO 100
+            END DO
+
+70        END DO
+
+!         New assignment is made.
+80        IPERM(I) = J
+          ARP(J) = IN2 - II - 1
+          NUMNZ = NUMNZ + 1
+          DO K = 1, JORD
+            J = PR(J)
+            IF (J==-1) GOTO 100
+            II = IP(J) + LENR(J) - OUT(J) - 2
+            I = ICN(II)
+            IPERM(I) = J
+          END DO
+
+100     END DO
+
+!       If matrix is structurally singular, we now complete the
+!       permutation IPERM.
+        IF (NUMNZ==N) RETURN
+        ARP(1:N) = 0
+        K = 0
+        DO 130 I = 1, N
+          IF (IPERM(I)/=0) GOTO 120
+          K = K + 1
+          OUT(K) = I
+          GOTO 130
+120       J = IPERM(I)
+          ARP(J) = I
+130     END DO
+        K = 0
+        DO 140 I = 1, N
+          IF (ARP(I)/=0) GOTO 140
+          K = K + 1
+          IOUTK = OUT(K)
+          IPERM(IOUTK) = I
+140     END DO
+        RETURN
+
+      END SUBROUTINE MC21B
+!_______________________________________________________________________
+
+      SUBROUTINE MC22AD(N,ICN,A,NZ,LENROW,IP,IQ,IW,IW1)
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER :: N, NZ
+! ..
+! .. Array Arguments ..
+        KPP_REAL :: A(NZ)
+        INTEGER :: ICN(NZ), IP(N), IQ(N), IW(N,2), IW1(NZ), LENROW(N)
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: AVAL
+        INTEGER :: I, ICHAIN, IOLD, IPOS, J, J2, JJ, JNUM, JVAL, LENGTH, &
+          NEWPOS
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC IABS
+! ..
+! .. FIRST EXECUTABLE STATEMENT MA22AD
+! ..
+        IF (NZ<=0) GOTO 90
+        IF (N<=0) GOTO 90
+!       Set start of row I in IW(I,1) and LENROW(I) in IW(I,2)
+        IW(1,1) = 1
+        IW(1,2) = LENROW(1)
+        DO I = 2, N
+          IW(I,1) = IW(I-1,1) + LENROW(I-1)
+          IW(I,2) = LENROW(I)
+        END DO
+!       Permute LENROW according to IP. Set off-sets for new
+!       position of row IOLD in IW(IOLD,1) and put old row
+!       indices in IW1 in positions corresponding to the new
+!       position of this row in A/ICN.
+        JJ = 1
+        DO 30 I = 1, N
+          IOLD = IP(I)
+          IOLD = IABS(IOLD)
+          LENGTH = IW(IOLD,2)
+          LENROW(I) = LENGTH
+          IF (LENGTH==0) GOTO 30
+          IW(IOLD,1) = IW(IOLD,1) - JJ
+          J2 = JJ + LENGTH - 1
+          DO 20 J = JJ, J2
+20        IW1(J) = IOLD
+          JJ = J2 + 1
+30      END DO
+!       Set inverse permutation to IQ in IW(:,2).
+        DO I = 1, N
+          IOLD = IQ(I)
+          IOLD = IABS(IOLD)
+          IW(IOLD,2) = I
+        END DO
+!       Permute A and ICN in place, changing to new column numbers.
+!       Main loop.
+!       Each pass through this loop places a closed chain of
+!       column indices in their new (and final) positions.
+!       This is recorded by setting the iw1 entry to zero so
+!       that any which are subsequently encountered during
+!       this major scan can be bypassed.
+        DO 80 I = 1, NZ
+          IOLD = IW1(I)
+          IF (IOLD==0) GOTO 80
+          IPOS = I
+          JVAL = ICN(I)
+!         If row IOLD is in same positions after permutation,
+!         GOTO 150.
+          IF (IW(IOLD,1)==0) GOTO 70
+          AVAL = A(I)
+!         Chain loop.
+!         Each pass through this loop places one(permuted) column
+!         index in its final position, viz. IPOS.
+          DO ICHAIN = 1, NZ
+!           NEWPOS is the original position in A/ICN of the
+!           element to be placed in position IPOS. It is also
+!           the position of the next element in the chain.
+            NEWPOS = IPOS + IW(IOLD,1)
+!           Is chain complete?
+            IF (NEWPOS==I) GOTO 60
+            A(IPOS) = A(NEWPOS)
+            JNUM = ICN(NEWPOS)
+            ICN(IPOS) = IW(JNUM,2)
+            IPOS = NEWPOS
+            IOLD = IW1(IPOS)
+            IW1(IPOS) = 0
+!           End of chain loop.
+          END DO
+60        A(IPOS) = AVAL
+70        ICN(IPOS) = IW(JVAL,2)
+!         END OF MAIN LOOP
+80      END DO
+90      RETURN
+
+      END SUBROUTINE MC22AD
+!_______________________________________________________________________
+
+      SUBROUTINE MC23AD(N,ICN,A,LICN,LENR,IDISP,IP,IQ,LENOFF,IW,IW1)
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER :: LICN, N
+! ..
+! .. Array Arguments ..
+        KPP_REAL :: A(LICN)
+        INTEGER :: ICN(LICN), IDISP(2), IP(N), IQ(N), IW(N,5), IW1(N,2), &
+          LENOFF(N), LENR(N)
+! ..
+! .. Local Scalars ..
+        INTEGER :: I, I1, I2, IBEG, IBLOCK, IEND, II, ILEND, INEW, IOLD, &
+          IROWB, IROWE, J, JJ, JNEW, JNPOS, JOLD, K, LENI, NZ
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC MAX, MIN
+! ..
+! .. FIRST EXECUTABLE STATEMENT MA23AD
+! ..
+!     Input ... N,ICN ... A,ICN,LENR ...
+!     Set up pointers IW(:,1) to the beginning of the rows
+!     and set LENOFF equal to LENR.
+        IW1(1,1) = 1
+        LENOFF(1) = LENR(1)
+        IF (N==1) GOTO 20
+        DO I = 2, N
+          LENOFF(I) = LENR(I)
+          IW1(I,1) = IW1(I-1,1) + LENR(I-1)
+        END DO
+!       IDISP(1) points to the first position in A/ICN after
+!       the off-diagonal blocks and untreated rows.
+20      IDISP(1) = IW1(N,1) + LENR(N)
+
+!       Find row permutation ip to make diagonal zero-free.
+        CALL MC21A(N,ICN,LICN,IW1(1,1),LENR,IP,NUMNZ,IW(1,1))
+
+!       Possible error return for structurally singular matrices.
+        IF (NUMNZ/=N .AND. ABORT) GOTO 170
+
+!       IW1(:,2) and LENR are permutations of IW1(:,1) and
+!       LENR/LENOFF suitable for entry to MC13D since matrix
+!       with these row pointer and length arrays has maximum
+!       number of non-zeros on the diagonal.
+        DO II = 1, N
+          I = IP(II)
+          IW1(II,2) = IW1(I,1)
+          LENR(II) = LENOFF(I)
+        END DO
+
+!       Find symmetric permutation IQ to block lower triangular form.
+        CALL MC13D(N,ICN,LICN,IW1(1,2),LENR,IQ,IW(1,4),NUM,IW)
+
+        IF (NUM/=1) GOTO 60
+
+!       Action taken if matrix is irreducible: The
+!       whole matrix is just moved to the end of the storage.
+        DO I = 1, N
+          LENR(I) = LENOFF(I)
+          IP(I) = I
+          IQ(I) = I
+        END DO
+        LENOFF(1) = -1
+!       IDISP(1) is the first position after the last element in
+!       the off-diagonal blocks and untreated rows.
+        NZ = IDISP(1) - 1
+        IDISP(1) = 1
+!       IDISP(2) Is the position in A/ICN of the first element
+!       in the diagonal blocks.
+        IDISP(2) = LICN - NZ + 1
+        LARGE = N
+        IF (NZ==LICN) GOTO 200
+        DO K = 1, NZ
+          J = NZ - K + 1
+          JJ = LICN - K + 1
+          A(JJ) = A(J)
+          ICN(JJ) = ICN(J)
+        END DO
+        GOTO 200
+
+!       Data structure reordered.
+
+!       Form composite row permutation, IP(I) = IP(IQ(I)).
+60      DO II = 1, N
+          I = IQ(II)
+          IW(II,1) = IP(I)
+        END DO
+        DO I = 1, N
+          IP(I) = IW(I,1)
+        END DO
+
+!       Run through blocks in reverse order separating diagonal
+!       blocks which are moved to the end of the storage. Elements
+!       in off-diagonal blocks are left in place unless a compress
+!       is necessary.
+
+!       IBEG indicates the lowest value of J for which ICN(J) has
+!       been set to zero when element in position J was moved to
+!       the diagonal block part of storage.
+        IBEG = LICN + 1
+!       IEND is the position of the first element of those treated
+!       rows which are in diagonal blocks.
+        IEND = LICN + 1
+!       LARGE is the dimension of the largest block encountered
+!       so far.
+        LARGE = 0
+
+!       NUM is the number of diagonal blocks.
+        DO K = 1, NUM
+          IBLOCK = NUM - K + 1
+!         I1 is first row (in permuted form) of block IBLOCK.
+!         I2 is last row (in permuted form) of block IBLOCK.
+          I1 = IW(IBLOCK,4)
+          I2 = N
+          IF (K/=1) I2 = IW(IBLOCK+1,4) - 1
+          LARGE = MAX(LARGE,I2-I1+1)
+!         Go through the rows of block IBLOCK in the reverse order.
+          DO II = I1, I2
+            INEW = I2 - II + I1
+!           We now deal with row inew in permuted form (row IOLD
+!           in original matrix).
+            IOLD = IP(INEW)
+!           If there is space to move up diagonal block portion
+!           of row GOTO 110.
+            IF (IEND-IDISP(1)>=LENOFF(IOLD)) GOTO 110
+
+!           In-line compress.
+!           Moves separated off-diagonal elements and untreated
+!           rows to front of storage.
+            JNPOS = IBEG
+            ILEND = IDISP(1) - 1
+            IF (ILEND<IBEG) GOTO 180
+            DO 90 J = IBEG, ILEND
+              IF (ICN(J)==0) GOTO 90
+              ICN(JNPOS) = ICN(J)
+              A(JNPOS) = A(J)
+              JNPOS = JNPOS + 1
+90          END DO
+            IDISP(1) = JNPOS
+            IF (IEND-JNPOS<LENOFF(IOLD)) GOTO 180
+            IBEG = LICN + 1
+!           Reset pointers to the beginning of the rows.
+            DO 100 I = 2, N
+100         IW1(I,1) = IW1(I-1,1) + LENOFF(I-1)
+
+!           Row IOLD is now split into diagonal and off-diagonal parts.
+110         IROWB = IW1(IOLD,1)
+            LENI = 0
+            IROWE = IROWB + LENOFF(IOLD) - 1
+!           Backward scan of whole of row IOLD (in original matrix).
+            IF (IROWE<IROWB) GOTO 130
+            DO 120 JJ = IROWB, IROWE
+              J = IROWE - JJ + IROWB
+              JOLD = ICN(J)
+!             IW(:,2) holds the inverse permutation to IQ.
+!             It was set to this in MC13D.
+              JNEW = IW(JOLD,2)
+!             IF (JNEW < I1) THEN ...
+!             Element is in off-diagonal block and so is
+!             left in situ.
+              IF (JNEW<I1) GOTO 120
+!             Element is in diagonal block and is moved to
+!             the end of the storage.
+              IEND = IEND - 1
+              A(IEND) = A(J)
+              ICN(IEND) = JNEW
+              IBEG = MIN(IBEG,J)
+              ICN(J) = 0
+              LENI = LENI + 1
+120         END DO
+
+            LENOFF(IOLD) = LENOFF(IOLD) - LENI
+130         LENR(INEW) = LENI
+          END DO
+
+          IP(I2) = -IP(I2)
+        END DO
+!       Resets IP(N) to positive value.
+        IP(N) = -IP(N)
+!       IDISP(2) is position of first element in diagonal blocks.
+        IDISP(2) = IEND
+
+!       This compress is used to move all off-diagonal elements
+!       to the front of the storage.
+        IF (IBEG>LICN) GOTO 200
+        JNPOS = IBEG
+        ILEND = IDISP(1) - 1
+        DO 160 J = IBEG, ILEND
+          IF (ICN(J)==0) GOTO 160
+          ICN(JNPOS) = ICN(J)
+          A(JNPOS) = A(J)
+          JNPOS = JNPOS + 1
+160     END DO
+!       IDISP(1) is first position after last element of
+!       off-diagonal blocks.
+        IDISP(1) = JNPOS
+        GOTO 200
+
+!       Error return
+170     IF (LP/=0) WRITE (LP,90000) NUMNZ
+90000   FORMAT (' Matrix is structurally singular, rank = ',I6)
+        IDISP(1) = -1
+        GOTO 190
+180     IF (LP/=0) WRITE (LP,90001) N
+90001   FORMAT (' LICN is not big enough; increase by ',I6)
+        IDISP(1) = -2
+190     IF (LP/=0) WRITE (LP,90002)
+90002   FORMAT (' + Error return from MC23AD')
+200     RETURN
+
+      END SUBROUTINE MC23AD
+!_______________________________________________________________________
+
+      SUBROUTINE MC24AD(N,ICN,A,LICN,LENR,LENRL,W)
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER :: LICN, N
+! ..
+! .. Array Arguments ..
+        KPP_REAL :: A(LICN), W(N)
+        INTEGER :: ICN(LICN), LENR(N), LENRL(N)
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: AMAXL, AMAXU, WROWL
+        INTEGER :: I, J, J0, J1, J2, JJ
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, MAX
+! ..
+! .. FIRST EXECUTABLE STATEMENT MA24AD
+! ..
+        AMAXL = ZERO
+        W(1:N) = ZERO
+        J0 = 1
+        DO 60 I = 1, N
+          IF (LENR(I)==0) GOTO 60
+          J2 = J0 + LENR(I) - 1
+          IF (LENRL(I)==0) GOTO 30
+!         Calculation of 1-norm of L.
+          J1 = J0 + LENRL(I) - 1
+          WROWL = ZERO
+          DO 20 JJ = J0, J1
+20        WROWL = WROWL + ABS(A(JJ))
+!         AMAXL is the maximum norm of columns of L so far found.
+          AMAXL = MAX(AMAXL,WROWL)
+          J0 = J1 + 1
+!         Calculation of norms of columns of U(MAX-NORMS).
+30        J0 = J0 + 1
+          IF (J0>J2) GOTO 50
+          DO 40 JJ = J0, J2
+            J = ICN(JJ)
+40        W(J) = MAX(ABS(A(JJ)),W(J))
+50        J0 = J2 + 1
+60      END DO
+!       AMAXU is set to maximum max-norm of columns of U.
+        AMAXU = ZERO
+        DO I = 1, N
+          AMAXU = MAX(AMAXU,W(I))
+        END DO
+!       GROFAC is MAX U max-norm times MAX L 1-norm.
+        W(1) = AMAXL*AMAXU
+        RETURN
+
+      END SUBROUTINE MC24AD
+!_______________________________________________________________________
+
+      SUBROUTINE MC19AD(N,NA,A,IRN,ICN,R,C,W)
+! ..
+!     MC19A was altered to use same precision for R, C,
+!     and W as is used for other variables in program.
+! ..
+!     REAL A(NA),R(N),C(N),W(N,5)
+!     R(I) is used to return log(scaling factor for row I).
+!     C(J) is used to return log(scaling factor for col J).
+!     W(I,1), W(I,2) hold row,col non-zero counts.
+!     W(J,3) holds - COL J LOG during execution.
+!     W(J,4) holds 2-iteration change in W(J,3).
+!     W(I,5) is used to save average element log for row I.
+!     INTEGER*2 IRN(NA), ICN(NA)
+!     IRN(K) gives row number of element in A(K).
+!     ICN(K) gives col number of element in A(K).
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER :: N, NA
+! ..
+! .. Array Arguments ..
+        KPP_REAL :: A(NA), C(N), R(N), W(N,5)
+        INTEGER :: ICN(NA), IRN(NA)
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: E, E1, EM, Q, Q1, QM, S, S1, SM, SMIN, U, V
+        INTEGER :: I, I1, I2, ITER, J, K, MAXIT
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, LOG, REAL
+! ..
+! .. Data Statements ..
+!       MAXIT is the maximal permitted number of iterations.
+!       SMIN is used in a convergence test on (residual norm)**2.
+        DATA MAXIT/100/, SMIN/0.1/
+! ..
+! .. FIRST EXECUTABLE STATEMENT MA19AD
+! ..
+!       Check scalar data.
+        IFAIL = 1
+        IF (N<1) GOTO 210
+        IFAIL = 2
+!       IF (N > 32767)GOTO 230
+        IFAIL = 2
+        IFAIL = 0
+
+!       Initialise for accumulation of sums and products.
+        C(1:N) = ZERO
+        R(1:N) = ZERO
+        W(1:N,1:4) = ZERO
+        IF (NA<=0) GOTO 220
+        DO 40 K = 1, NA
+          U = ABS(A(K))
+!         IF (U == ZERO) GOTO 30
+          IF (ABS(U-ZERO)<=ZERO) GOTO 40
+          U = LOG(U)
+          I1 = IRN(K)
+          I2 = ICN(K)
+          IF (I1>=1 .AND. I1<=N .AND. I2>=1 .AND. I2<=N) GOTO 30
+          IF (LP>0) WRITE (LP,90000) K, I1, I2
+90000     FORMAT (' MC19 error. Element ',I5,' is in row ',I5,' and column ', &
+            I5)
+          IFAIL = 3
+          GOTO 40
+!         Count row/col non-zeros and compute rhs vectors.
+30        W(I1,1) = W(I1,1) + 1.
+          W(I2,2) = W(I2,2) + 1.
+          R(I1) = R(I1) + U
+          W(I2,3) = W(I2,3) + U
+40      END DO
+        IF (IFAIL==3) GOTO 210
+
+!       Divide rhs by diagonal matrices.
+        DO I = 1, N
+!        IF (W(I,1) == ZERO) W(I,1) = 1.
+          IF (ABS(W(I,1))<=ZERO) W(I,1) = ONE
+          R(I) = R(I)/W(I,1)
+!         SAVE R(I) FOR USE AT END.
+          W(I,5) = R(I)
+!         IF (W(I,2) == ZERO) W(I,2) = 1.
+          IF (ABS(W(I,2))<=ZERO) W(I,2) = ONE
+          W(I,3) = W(I,3)/W(I,2)
+        END DO
+!       SM = SMIN*FLOAT(NA)
+        SM = SMIN*REAL(NA)
+!       Sweep to compute initial residual vector.
+        DO 60 K = 1, NA
+!         IF (A(K) == ZERO) GOTO 80
+          IF (ABS(A(K))<=ZERO) GOTO 60
+          I = IRN(K)
+          J = ICN(K)
+          R(I) = R(I) - W(J,3)/W(I,1)
+60      END DO
+
+!       Initialise iteration.
+        E = ZERO
+        Q = 1.
+        S = ZERO
+        DO I = 1, N
+          S = S + W(I,1)*R(I)**2
+        END DO
+        IF (S<=SM) GOTO 160
+
+!       Iteration loop.
+        DO ITER = 1, MAXIT
+!         Sweep through matrix to update residual vector.
+          DO 80 K = 1, NA
+!           IF (A(K) == ZERO) GOTO 130
+            IF (ABS(A(K))<=ZERO) GOTO 80
+            I = ICN(K)
+            J = IRN(K)
+            C(I) = C(I) + R(J)
+80        END DO
+          S1 = S
+          S = ZERO
+          DO I = 1, N
+            V = -C(I)/Q
+            C(I) = V/W(I,2)
+            S = S + V*C(I)
+          END DO
+          E1 = E
+          E = Q*S/S1
+          Q = 1. - E
+          IF (S<=SM) E = ZERO
+!         Update residual.
+          DO I = 1, N
+            R(I) = R(I)*E*W(I,1)
+          END DO
+          IF (S<=SM) GOTO 180
+          EM = E*E1
+!         Sweep through matrix to update residual vector.
+          DO 110 K = 1, NA
+!           IF (A(K) == ZERO) GOTO 152
+            IF (ABS(A(K))<=ZERO) GOTO 110
+            I = IRN(K)
+            J = ICN(K)
+            R(I) = R(I) + C(J)
+110       END DO
+          S1 = S
+          S = ZERO
+          DO I = 1, N
+            V = -R(I)/Q
+            R(I) = V/W(I,1)
+            S = S + V*R(I)
+          END DO
+          E1 = E
+          E = Q*S/S1
+          Q1 = Q
+          Q = 1. - E
+!         Special fixup for last iteration.
+          IF (S<=SM) Q = 1.
+!         Update colulm scaling powers.
+          QM = Q*Q1
+          DO I = 1, N
+            W(I,4) = (EM*W(I,4)+C(I))/QM
+            W(I,3) = W(I,3) + W(I,4)
+          END DO
+          IF (S<=SM) GOTO 160
+!         Update residual.
+          DO I = 1, N
+            C(I) = C(I)*E*W(I,2)
+          END DO
+        END DO
+160     DO I = 1, N
+          R(I) = R(I)*W(I,1)
+        END DO
+
+!       Sweep through matrix to prepare to get row scaling powers.
+180     DO 190 K = 1, NA
+!         IF (A(K) == ZERO) GOTO 200
+          IF (ABS(A(K))<=ZERO) GOTO 190
+          I = IRN(K)
+          J = ICN(K)
+          R(I) = R(I) + W(J,3)
+190     END DO
+
+!       Final conversion to output values.
+        DO I = 1, N
+          R(I) = R(I)/W(I,1) - W(I,5)
+          C(I) = -W(I,3)
+        END DO
+        GOTO 220
+210     IF (LP>0) WRITE (LP,90001) IFAIL
+90001   FORMAT (' Error return ',I2,' from MC19')
+220     RETURN
+      END SUBROUTINE MC19AD
+! End of  MA28 subroutines.
+!_______________________________________________________________________
+! Beginning of JACSP routines.
+! Change Record:
+! ST 09-01-05
+!   Convert to F90 using Metcalf converter
+!   Trim trailing blanks using trimem.pl
+!   Convert arithmetic operators to F90
+!   Replace R1MACH by EPSILON
+!   Run through nag tools suite
+! ST 09-17-05
+!   Delete RDUM and IDUM
+!   Change FCN argument list
+! ST 09-18-05
+!   Add subroutine DGROUPDS to define the IGP and JGP arrays for JACSP
+! ST 09-20-05
+!   Modify JACSP to produce JACSPDB for sparse, dense, and
+!   banded Jacobians
+!_______________________________________________________________________
+
+    SUBROUTINE JACSP(FCN,N,T,Y,F,FJAC,NRFJAC,YSCALE,FAC,IOPT,WK, &
+      LWK,IWK,LIWK,MAXGRP,NGRP,JPNTR,INDROW)
+
+! BEGIN PROLOGUE JACSP
+! DATE WRITTEN 850415
+! CATEGORY NO. D4
+! KEYWORDS NUMERICAL DIFFERENCING, SPARSE JACOBIANS
+! AUTHOR SALANE, DOUGLAS E., SANDIA NATIONAL LABORATORIES
+!        NUMERICAL MATHEMATICS DIVISION,1642
+!        ALBUQUERQUE, NM 87185
+
+! SUBROUTINE JACSP USES FINITE DIFFERENCES TO COMPUTE THE JACOBIAN OF
+! A SPARSE SYSTEM OF N EQUATIONS AND N UNKNOWNS. JACSP IS DESIGNED FOR
+! USE IN NUMERICAL METHODS FOR SOLVING NONLINEAR PROBLEMS WHERE THE
+! JACOBIAN IS EVALUATED REPEATEDLY AND OFTEN AT NEIGHBORING ARGUMENTS
+! (E.G., NEWTON'S METHOD OR A BDF METHOD FOR SOVING STIFF ORDINARY
+! DIFFERENTIAL EQUATIONS). JACSP IS INTENDED FOR APPLICATIONS IN WHICH
+! THE REQUIRED JACOBIANS ARE LARGE AND SPARSE.
+
+! TAKING ADVANTAGE OF SPARSITY.
+
+! SUBROUTINE JACSP TAKES ADVANTAGE OF THE SPARSITY OF A MATRIX TO REDUCE
+! THE NUMBER OF FUNCTION EVALUATIONS REQUIRED TO COMPUTE THE JACOBIAN.
+! TO REALIZE THIS ADVANTAGE, THE USER MUST PROVIDE JACSP WITH A COLUMN
+! GROUPING. THIS MEANS THE USER MUST ASSIGN COLUMNS OF THE JACOBIAN TO
+! MUTUALLY EXCLUSIVE GROUPS BASED ON THE SPARSITY OF THE COLUMNS.THE
+! DIFFERENCES REQUIRED TO COMPUTE THE NONZERO ELEMENTS IN ALL COLUMNS IN
+! A GROUP ARE FORMED USING ONLY ONE ADDITIONAL FUNCTION EVALUATION. FOR
+! MORE DETAILS, THE USER IS REFERRED TO THE REPORT BY D.E. SALANE AND
+! L.F. SHAMPINE (REF. 1).
+
+! THE SUBROUTINE DVDSM (REF 2.) IS THE WAY MOST USERS WILL DETERMINE A
+! COLUMN GROUPING FOR JACSP. THE USE OF DSM AND JACSP IS DESCRIBED
+! LATER IN THE PROLOGUE.
+
+! STORAGE.
+
+! JACSP REQUIRES THE USER TO PROVIDE A SPARSE DATA STRUCTURE FOR THE
+! JACOBIAN TO BE COMPUTED. JACSP REQUIRES THE USER TO SPECIFY THE
+! INDICES OF THE NONZERO ELEMENTS IN A COLUMN PACKED SPARSE DATA
+! STRUCTURE (SEE REF.1). THE SUBROUTINE DVDSM( REF 2.) CAN BE USED TO
+! ESTABLISH THE SPARSE DATA STRUCTURE REQUIRED BY JACSP. THE USE OF
+! JACSP AND DSM IS DESCRIBED LATER IN THE PROLOGUE.
+
+! ON OUTPUT, SUBROUTINE JACSP WILL RETURN THE JACOBIAN IN ANY ONE OF
+! THE FOLLOWING THREE FORMATS SPECIFIED BY THE USER.
+
+! (1) FULL STORAGE FORMAT.......THE COMPUTED JACOBIAN IS STORED IN
+!      AN ARRAY WHOSE ROW AND COLUMN DIMENSIONS ARE THE NUMBER OF
+!      EQUATIONS.
+
+! (2) BANDED STORAGE FORMAT.....THE COMPUTED MATRIX IS STORED IN A TWO
+!      DIMENSIONAL ARRAY WHOSE ROW DIMENSION IS
+!      2*(NUMBER OF LOWER DIAGONALS) + (THE NUMBER OF UPPER DIAGONALS)
+!      + 1. THE COLUMN DIMENSION OF THIS ARRAY IS THE NUMBER OF
+!      EQUATIONS. THIS STORAGE FORMAT IS COMPATIBLE WITH THE LINPACK
+!      GENERAL BAND MATRIX EQUATION SOLVER.
+
+! (3) SPARSE STORAGE FORMAT.....THE COMPUTED JACOBIAN IS STORED IN A
+!      ONE DIMENSIONAL ARRAY WHOSE LENGTH IS THE NUMBER OF NONZERO
+!      ELEMENTS IN THE JACOBIAN.
+
+! DESCRIPTION
+
+!  SUBROUTINE PARAMETERS
+
+!  FCN()......A USER-PROVIDED FUNCTION (SEE SUBROUTINE DESCRIPTION).
+!  N..........THE NUMBER OF EQUATIONS.
+!  T..........A SCALAR VARIABLE. T IS PROVIDED SO USERS CAN PASS THE
+!             VALUE OF AN INDEPENDENT VARIALBE TO THE FUNCTION
+!             EVALUATION ROUTINE.
+!  Y(*).......AN ARRAY OF DIMENSION N. THE POINT AT WHICH THE
+!             JACOBIAN IS TO BE EVALUATED.
+!  F(*).......AN ARRAY OF DIMENSION N. THE EQUATIONS EVALUATED AT
+!             THE POINT Y.
+!  FJAC(*,*)..AN ARRAY OF WHOSE DIMENSIONS DEPEND ON THE STORAGE
+!      FORMAT SELECTED BY THE USER. THE ROW AND COLUMN DIMENSIONS ARE
+!      SET BY THE USER. IF THE SPARSE MATRIX FORMAT IS SELECTED, FJAC
+!      SHOULD BE TREATED AS A ONE DIMENSIONAL ARRAY BY THE CALLING
+!      PROGRAM. FOR FURTHER DETAILS, SEE THE DESCRIPTION OF THE
+!      PARAMETER IOPT(1) WHICH CONTROLS THE STORAGE FORMAT.
+
+!      NOTE THAT IF THE BANDED OR FULL OPTION IS USED,THE USER SHOULD
+!      ZERO OUT THOSE POSITIONS OF FJAC THAT WILL NOT BE ACCESSED BY
+!      JACSP. JACSP DOES NOT ZERO OUT THE MATRIX FJAC BEFORE
+!      COMPUTING THE JACOBIAN. POSITIONS OF FJAC THAT ARE NOT ASSIGNED
+!      VALUES BY JACSP WILL BE THE SAME ON EXIT AS ON ENTRY TO JACSP.
+
+!  NRFJAC.....THE NUMBER OF ROWS IN FJAC AND THE LEADING DIMENSION
+!             OF FJAC (SEE IOPT(1)).
+!  NCFJAC.....THE NUMBER OF COLUMNS IN FJAC AND THE COLUMN DIMENSION
+!             OF FJAC (SEE IOPT(1)).
+!  YSCALE(*)..AN ARRAY OF DIMENSION N. YSCALE(I) CONTAINS A
+!     REPRESENTATIVE MAGNITUDE FOR Y(I). YSCALE(I) MUST BE POSITIVE.
+!     YSCALE IS AN OPTIONAL FEATURE OF THE ROUTINE. IF THE USER DOES
+!     NOT WISH TO PROVIDE YSCALE, IT CAN BE TREATED AS A DUMMY SCALAR
+!     VARIABLE (SEE IOPT(3)).
+
+!  FAC(*).....AN ARRAY OF DIMENSION N. FAC CONTAINS A PERCENTAGE FOR
+!     USE IN COMPUTING THE INCREMENT.
+
+!     THE NORMAL WAY TO USE THE CODE IS TO LET JACSP ADJUST FAC VALUES.
+!     IN THIS CASE FAC IS INITIALIZED BY JACSP. ALSO, THE USER MUST
+!     NOT ALTER FAC VALUES BETWEEN CALLS TO JACSP.
+
+!     THE USER MAY PROVIDE FAC VALUES IF DESIRED (SEE IOPT(4) FOR
+!     DETAILS). IF THE USER PROVIDES FAC VALUES, FAC(I) SHOULD BE
+!     SHOULD BE SET TO A VALUE BETWEEN O AND 1. JACSP WILL NOT PERMIT
+!     FAC(I) TO BE SET TO A VALUE THAT RESULTS IN TOO SMALL AN
+!     INCREMENT. JACSP ENSURES THAT
+!                     FACMIN <= FAC(I) <= FACMAX.
+!     FOR FURTHER DETAILS ON FACMIN AND FACMAX SEE
+!     THE REPORT(REF.3).
+
+!  IOPT(*)....AN INTEGER ARRAY OF LENGTH 5 FOR USER SELECTED OPTIONS.
+
+!          IOPT(1) CONTROLS THE STORAGE FORMAT.
+
+!             IOPT(1) = 0 INDICATES FULL STORAGE FORMAT. SET BOTH
+!             NRFJAC = N AMD NCFJAC = N.
+
+!             IOPT(1) = 1 INDICATES BANDED STORAGE FORMAT. SET
+!             NRFJAC = 2 * ML + MU + 1 WHERE
+!             ML = NUMBER OF SUB-DIAGONALS BELOW THE MAIN DIAGONAL AND
+!             MU = NUMBER OF SUPER-DIAGONALS ABOVE THE MAIN DIAGONAL.
+!             SET NCFJAC = N.
+
+!             IOPT(1) = 2 INDICATES SPARSE STORAGE FORMAT. SET
+!             NRFJAC = TO THE NUMBER OF NONZEROS IN THE JACOBIAN AND
+!             SET NCFJAC = 1.
+
+!          IOPT(2) MUST BE SET TO THE BANDWIDTH OF THE MATRIX.
+!          IOPT(2) NEED ONLY BE PROVIDED IF BANDED STORAGE
+!          FORMAT IS REQUESTED(I.E., IOPT(1) = 1).
+
+!          IOPT(3) ALLOWS THE USER TO PROVIDE TYPICAL VALUES
+!          TO BE USED IN COMPUTING INCREMENTS FOR DIFFERENCING.
+
+!             IOPT(3) = 0 INDICATES Y VALUES ARE USED IN COMPUTING
+!             INCREMENTS. IF IOPT(3) = 0, NO STORAGE IS REQUIRED FOR
+!             YSCALE AND IT MAY BE TREATED AS A DUMMY VARIABLE.
+
+!             IOPT(3) = 1 INDICATES THAT YSCALE VALUES ARE TO BE USED.
+!             IF IOPT(3) = 1, THE USER MUST PROVIDE AN ARRAY OF NONZERO
+!             VALUES IN YSCALE.
+
+!          IOPT(4) ALLOWS THE USER TO PROVIDE THE VALUES USED
+!          IN THE FAC ARRAY TO COMPUTE INCREMENTS FOR DIFFERENCING.
+
+!             IF IOPT(4) = 0, EACH COMPONENT OF FAC IS
+!             SET TO THE SQUARE ROOT OF MACHINE UNIT ROUNDOFF ON THE
+!             FIRST CALL TO JACSP. IOPT(4) IS SET TO ONE ON RETURN.
+
+!             IF IOPT(4) = 1, EACH COMPONENT OF FAC MUST BE SET
+!             BY THE CALLING ROUTINE. UNLESS THE USER WISHES TO
+!             INITIALIZE FAC, THE FAC ARRAY SHOULD NOT BE ALTERED
+!             BETWEEN SUBSEQUENT CALLS TO JACSP. ALSO, THE USER
+!             SHOULD NOT CHANGE THE VALUE OF IOPT(4) RETURNED BY
+!             JACSP.
+
+!          IOPT(5) IS NOT USED IN JACSP.
+
+!  WK(*)......A WORK ARRAY OF DIMENSION AT LEAST 3*N
+!  LWK........THE LENGTH OF THE WORK ARRAY. LWK IS AT LEAST 3*N.
+!  IWK(*)...AN INTEGER ARRAY OF LENGTH LIWK = 50 + N WHICH GIVES
+!      DIAGNOSTIC INFORMATION IN POSITIONS 1 THROUGH 50. POSITIONS 51
+!      THROUGH 50 + N ARE USED AS INTEGER WORKSPACE.
+
+!      IWK(1) GIVES THE NUMBER OF TIMES THE INCREMENT FOR DIFFERENCING
+!      (DEL) WAS COMPUTED AND HAD TO BE INCREASED BECAUSE (Y(JCOL)+DEL)
+!      -Y(JCOL)) WAS TOO SMALL RELATIVE TO Y(JCOL) OR YSCALE(JCOL).
+
+!      IWK(2) GIVES THE NUMBER OF COLUMNS IN WHICH THREE ATTEMPTS WERE
+!      MADE TO INCREASE A PERCENTAGE FACTOR FOR DIFFERENCING (I.E., A
+!      COMPONENT IN THE FAC ARRAY) BUT THE COMPUTED DEL REMAINED
+!      UNACCEPTABLY SMALL RELATIVE TO Y(JCOL) OR YSCALE(JCOL). IN SUCH
+!      CASES THE PERCENTAGE FACTOR IS SET TO THE SQUARE ROOT OF THE UNIT
+!      ROUNDOFF OF THE MACHINE. THE FIRST 10 COLUMNS ARE GIVEN IN
+!      IWK(21),...,IWK(30).
+
+!      IWK(3) GIVES THE NUMBER OF COLUMNS IN WHICH THE COMPUTED DEL WAS
+!      ZERO TO MACHINE PRECISION BECAUSE Y(JCOL) OR YSCALE(JCOL) WAS
+!      ZERO. IN SUCH CASES DEL IS SET TO THE SQUARE ROOT OF THE UNIT
+!      ROUNDOFF.
+
+!      IWK(4) GIVES THE NUMBER OF COLUMNS WHICH HAD TO BE RECOMPUTED
+!      BECAUSE THE LARGEST DIFFERENCE FORMED IN THE COLUMN WAS VERY
+!      CLOSE TO ZERO RELATIVE TO SCALE WHERE
+
+!                    SCALE = MAX(F(Y),F(Y+DEL))
+!                                 I     I
+
+!      AND I DENOTES THE ROW INDEX OF THE LARGEST DIFFERENCE IN THE
+!      COLUMN CURRENTLY BEING PROCESSED. IWK(31),...,IWK(40) GIVES THE
+!      FIRST 10 OF THESE COLUMNS.
+
+!      IWK(5) GIVES THE NUMBER OF COLUMNS WHOSE LARGEST DIFFERENCE IS
+!      CLOSE TO ZERO RELATIVE TO SCALE AFTER THE COLUMN HAS BEEN
+!      RECOMPUTED. THE FIRST 10 OF THESE COLUMNS ARE GIVEN IN POSITIONS
+!      IWK(41)...IWK(50).
+!      IWK(6) GIVES THE NUMBER OF TIMES SCALE INFORMATION WAS NOT
+!      AVAILABLE FOR USE IN THE ROUNDOFF AND TRUNCATION ERROR TESTS.
+!      THIS OCCURS WHEN
+!                    MIN(F(Y),F(Y+DEL)) = 0.
+!                          I     I
+!      WHERE I IS THE INDEX OF THE LARGEST DIFFERENCE FOR THE COLUMN
+!      CURRENTLY BEING PROCESSED.
+!      IWK(7) GIVES THE NUMBER OF TIMES THE FUNCTION EVALUATION ROUTINE
+!      WAS CALLED.
+!      IWK(8) GIVES THE NUMBER OF TIMES A COMPONENT OF THE FAC ARRAY WAS
+!      REDUCED BECAUSE CHANGES IN FUNCTION VALUES WERE LARGE AND EXCESS
+!      TRUNCATION ERROR WAS SUSPECTED. IWK(11),...,IWK(20) GIVES THE FIRST
+!      10 OF THESE COLUMNS.
+!      IWK(9) AND IWK(10) ARE NOT USED IN JACSP.
+!  LIWK.....THE LENGTH OF THE ARRAY IWK. LIWK = 50 + N.
+!      THE FOLLOWING PARAMETERS MAY BE PROVIDED BY THE USER OR
+!      INITIALIZED BY THE SUBROUTINE DVDSM (SEE LONG DESCRIPTION
+!      SECTION OF THE PROLOGUE).
+!  PARAMETERS CONTAINING COLUMN GROUPING:
+!  MAXGRP.....THE NUMBER OF DIFFERENT GROUPS TO WHICH THE COLUMNS
+!             HAVE BEEN ASSIGNED.
+!  NGRP(*)....AN ARRAY OF LENGTH N THAT CONTAINS THE COLUMN GROUPING.
+!             NGRP(I) IS THE GROUP TO WHICH THE I-TH COLUMN HAS BEEN
+!             ASSIGNED.
+!             (SEE USE OF DSM AND JACSP FOR DETERMINING MAXGRP AND NGRP)
+!  PARAMETERS CONTAINING THE SPARSE DATA STRUCTURE:
+!  JPNTR(*)...AN ARRAY OF LENGTH N+1 THAT CONTAINS POINTERS TO
+!             THE ROW INDICES IN INDROW (SEE INDROW).
+!  INDROW(*)..AN ARRAY WHOSE LENGTH IS THE NUMBER OF NONZERO ELEMENTS
+!             IN THE JACOBIAN. INDROW CONTAINS THE ROW INDICES
+!             STORED IN COLUMN PACKED FORMAT. IN OTHER WORDS, THE
+!             ROW INDICES OF THE NONZERO ELEMENTS OF A GIVEN
+!             COLUMN OF THE JACOBIAN ARE STORED CONTIGUOUSLY IN
+!             INDROW. JPNTR(JCOL) POINTS TO THE ROW INDEX OF THE FIRST
+!             NONZERO ELEMENT IN THE COLUMN JCOL. JPNTR(JCOL+1) - 1
+!             POINTS TO THE ROW INDEX OF THE LAST NONZERO ELEMENT IN
+!             THE COLUMN JCOL.
+!             (SEE USE OF DSM AND JACSP FOR DETERMINING INDROW AND JPNTR)
+!  REQUIRED SUBROUTINES: SUBROUTINE FCN(N,T,Y,F)
+!     T......AN INDEPENDENT SCALAR VARIABLE WHICH MAY BE USED
+!           IN EVALUATING F(E.G., F(Y(T),T)).
+!     Y(*)...AN ARRAY OF DIMENSION N WHICH CONTAINS THE POINT AT
+!            WHICH THE EQUATIONS ARE TO BE EVALUATED.
+!     F(*)...AN ARRAY OF DIMENSION N WHICH ON RETURN FROM FCN
+!            CONTAINS THE EQUATIONS EVALUATED AT Y.
+
+! LONG DESCRIPTION
+
+! ROUNDOFF AND TRUNCATION ERRORS.
+! SUBROUTINE JACSP TAKES ADVANTAGE OF THE WAY IN WHICH THE JACOBIAN
+! IS EVALUATED TO ADJUST INCREMENTS FOR DIFFERENCING TO CONTROL
+! ROUNDOFF AND TRUNCATION ERRORS. THE ROUTINE SELDOM REQUIRES MORE
+! THAN ONE ADDITIONAL FUNCTION EVALUATION TO COMPUTE A COLUMN OF THE
+! JACOBIAN. ALSO, THE ROUTINE RETURNS A VARIETY OF ERROR DIAGNOSTICS
+! TO WARN USERS WHEN COMPUTED DERIVATIVES MAY NOT BE ACCURATE.
+! WARNING: JACSP CAN NOT GUARANTEE THE ACCURACY OF THE COMPUTED
+! DERIVATIVES. IN ORDER O SAVE ON FUNCTION EVALUATIONS, HEURISTIC
+! TECNIQUES FOR INCREMENT ADJUSTMENT AND SAFEGUARDING INCREMENTS ARE
+! USED. THESE USUALLY WORK WELL.
+
+! WARNING: SOME OF THE DIAGNOSTICS RETURNED CAN ONLY BE INTERPRETED
+! WITH A DETAILED KNOWLEDGE OF THE ROUTINE. NEVERTHELESS, THEY ARE
+! PROVIDED TO GIVE USERS FULL ACCESS TO THE INFORMATION PRODUCED BY
+! THE SUBROUTINE.
+! USE OF DSM AND JACSP.
+! SUBROUTINE DVDSM CAN BE USED TO DETERMINE THE COLUMN GROUPING (MAXGRP
+! AND NGRP(*)) AND THE SPARSE DATA STRUCTURE VARIABLES (JPNTR(*) AND
+! INDROW(*)). THE USER CAN CALL DVDSM ONCE TO INITIALIZE
+! MAXGRP,NGRP,JPNTR AND INDROW. JACSP MAY THEN BE CALLED REPEATEDLY TO
+! EVALUATE THE JACOBIAN. THE FOLLOWING ARE THE IMPORTANT VARIABLES IN
+! THE DSM CALLING SEQUENCE.
+! SUBROUTINE DVDSM(...,INDROW,INDCOL,NGRP,MAXGRP,..,JPNTR,...)
+! ON INPUT, THE USER MUST PROVIDE DSM WITH THE INTEGER ARRAYS INDROW AND
+! INDCOL. THE PAIR
+!                  (INDROW(I),INDCOL(I))
+! PROVIDES THE INDEX OF A NONZERO ELEMENT OF THE JACOBIAN. THE LENGTH OF
+! INDROW AND INDCOL IS THE NUMBER OF NONZERO ELEMENTS IN THE JACOBIAN.
+! NO ORDERING OF THE INDICES FOR NONZERO ELEMENTS IS REQUIRED IN THE
+! ARRAYS INDROW AND INDCOL.
+! ON RETURN FROM DSM, MAXGRP,NGRP,INDROW,JPNTR ARE INITIALIZED
+! FOR INPUT TO JACSP. THE USER MUST NOT CHANGE MAXGRP,NGRP,JPNTR OR
+! INDROW AFTER CALLING DSM.
+! WE REFER THE READER TO THE IN CODE DOCUMENTATION FOR DSM OR THE REPORT
+! BY MORE AND COLEMAN (REF 2.) FOR FURTHER DETAILS.
+! REFERENCES
+!  (1) D.E. SALANE AND L. F. SHAMPINE
+!      "AN ECONOMICAL AND EFFICIENT ROUTINE FOR COMPUTING
+!      SPARSE JACOBIANS", REPORT NO. SAND85-0977, SANDIA NATIONAL
+!      LABORATORIES, ALBUQUERQUE,NM,87185.
+!  (2) T.F. COLEMAN AND J.J. MORE
+!      "SOFTWARE FOR ESTIMATING SPARSE JACOBIAN MATRICES" ACM TOMS,
+!      V10.,N0.3,SEPT. 1984.
+!  (3) D.E. SALANE AND L. F. SHAMPINE
+!      "THREE ADAPTIVE ROUTINES FOR FORMING JACOBIANS NUMERICALLY,"
+!       REPORT NO. SAND86- ****, SANDIA NATIONAL LABORATORIES,
+!       ALBUQUERQUE, NM, 87185.
+!  REQUIRED FORTRAN INTRINSIC FUNCTIONS: MAX,MIN,ABS,SIGN
+!  MACHINE DEPENDENT CONSTANT: U (MACHINE UNIT ROUNDOFF)
+!  JACSP SETS THE REQUIRED MACHINE CONSTANT USING THE F90
+!  INTRINSIC EPSILON.
+!  END PROLOGUE JACSP
+
+     IMPLICIT NONE
+
+! .. Parameters ..
+      INTEGER, PARAMETER :: WP = KIND(0.0D0)
+! ..
+! .. Scalar Arguments ..
+      KPP_REAL :: T
+      INTEGER :: LIWK, LWK, MAXGRP, N, NRFJAC
+! ..
+! .. Array Arguments ..
+      KPP_REAL :: F(N), FAC(N), FJAC(NRFJAC,*), WK(LWK), Y(N), YSCALE(*)
+      INTEGER :: INDROW(*), IOPT(5), IWK(LIWK), JPNTR(*), NGRP(N)
+! ..
+! .. Subroutine Arguments ..
+      EXTERNAL FCN
+! ..
+! .. Local Scalars ..
+      KPP_REAL :: ADIFF, AY, DEL, DELM, DFMJ, DIFF, DMAX, EXPFMN, FACMAX, &
+        FACMIN, FJACL, FMJ, ONE, P125, P25, P75, P875, PERT, RDEL, RMNFDF, &
+        RMXFDF, SDF, SF, SGN, T1, T2, U, U3QRT, U7EGT, UEGT, UMEGT, UQRT, &
+        USQT, ZERO
+      INTEGER :: IDXL, IDXU, IFLAG1, IFLAG2, IRCMP, IRDEL, IROW, IROWB, &
+        IROWMX, ITRY, J, JCOL, KT1, KT2, KT3, KT4, KT5, L, NID1, NID2, NID3, &
+        NID4, NID5, NID6, NIFAC, NT2, NUMGRP
+! ..
+! .. Intrinsic Functions ..
+!     INTRINSIC ABS, EPSILON, KIND, MAX, MIN, SIGN, SQRT
+      INTRINSIC ABS, EPSILON, MAX, MIN, SIGN, SQRT
+! ..
+! .. Data Statements ..
+      DATA PERT/2.0E+0_dp/, FACMAX/1.E-1_dp/, EXPFMN/.75E+0_dp/
+      DATA ONE/1.0E0_dp/, ZERO/0.0E0_dp/
+      DATA P125/.125E+0_dp/, P25/.25E+0_dp/, P75/.75E+0_dp/, P875/.875E+0_dp/
+      DATA NIFAC/3/, NID1/10/, NID2/20/, NID3/30/, NID4/40/, NID5/50/
+! ..
+!     COMPUTE ALGORITHM AND MACHINE CONSTANTS.
+! ..
+! ..  FIRST EXECUTABLE STATEMENT JACSP
+! ..
+      U = EPSILON(ONE)
+      USQT = SQRT(U)
+      UEGT = U**P125
+      UMEGT = ONE/UEGT
+      UQRT = U**P25
+      U3QRT = U**P75
+      U7EGT = U**P875
+      FACMIN = U**EXPFMN
+
+      IF (IOPT(4) == 0) THEN
+        IOPT(4) = 1
+        DO 10 J = 1, N
+          FAC(J) = USQT
+10      CONTINUE
+      END IF
+      DO 20 J = 1, 50
+        IWK(J) = 0
+20    CONTINUE
+      KT1 = NID1
+      KT2 = NID2
+      KT3 = NID3
+      KT4 = NID4
+      KT5 = NID5
+      NID6 = LIWK
+      NT2 = 2*N
+      DO NUMGRP = 1, MAXGRP
+!       COMPUTE AND SAVE THE INCREMENTS FOR THE COLUMNS IN GROUP NUMGRP.
+        IRCMP = 0
+        ITRY = 0
+        DO 30 J = NID5 + 1, NID6
+          IWK(J) = 0
+30      CONTINUE
+40      CONTINUE
+        DO JCOL = 1, N
+          IF (NGRP(JCOL) == NUMGRP) THEN
+            WK(N+JCOL) = Y(JCOL)
+!           COMPUTE DEL. IF DEL IS TOO SMALL INCREASE FAC(JCOL) AND RECOMPUTE
+!           DEL. NIFAC ATTEMPTS ARE MADE TO INCREASE FAC(JCOL) AND FIND AN
+!           APPROPRIATE DEL. IF DEL CANT BE FOUND IN THIS MANNER, DEL IS COMPUTED
+!           WITH FAC(JCOL) SET TO THE SQUARE ROOT OF THE MACHINE PRECISION (USQT).
+!           IF DEL IS ZERO TO MACHINE PRECISION BECAUSE Y(JCOL) IS ZERO OR
+!           YSCALE(JCOL) IS ZERO, DEL IS SET TO USQT.
+            SGN = SIGN(ONE,F(JCOL))
+            IRDEL = 0
+            IF (IOPT(3) == 1) THEN
+              AY = ABS(YSCALE(JCOL))
+            ELSE
+              AY = ABS(Y(JCOL))
+            END IF
+            DELM = U7EGT*AY
+
+            DO 50 J = 1, NIFAC
+              DEL = FAC(JCOL)*AY*SGN
+!             IF (DEL == ZERO) THEN
+              IF (ABS(DEL) <= ZERO) THEN
+
+                DEL = USQT*SGN
+                IF (ITRY == 0) IWK(3) = IWK(3) + 1
+              END IF
+              T1 = Y(JCOL) + DEL
+              DEL = T1 - Y(JCOL)
+              IF (ABS(DEL) < DELM) THEN
+                IF (J >= NIFAC) GOTO 50
+                IF (IRDEL == 0) THEN
+                  IRDEL = 1
+                  IWK(1) = IWK(1) + 1
+                END IF
+                T1 = FAC(JCOL)*UMEGT
+                FAC(JCOL) = MIN(T1,FACMAX)
+              ELSE
+                GOTO 60
+              END IF
+50          END DO
+
+            FAC(JCOL) = USQT
+            DEL = USQT*AY*SGN
+            IWK(2) = IWK(2) + 1
+            IF (KT2 < NID3) THEN
+              KT2 = KT2 + 1
+              IWK(KT2) = JCOL
+            END IF
+
+60          CONTINUE
+            WK(NT2+JCOL) = DEL
+            Y(JCOL) = Y(JCOL) + DEL
+          END IF
+        END DO
+
+        IWK(7) = IWK(7) + 1
+        CALL FCN(N,T,Y,WK)
+        DO JCOL = 1, N
+          IF (NGRP(JCOL) == NUMGRP) Y(JCOL) = WK(N+JCOL)
+        END DO
+
+!       COMPUTE THE JACOBIAN ENTRIES FOR ALL COLUMNS IN NUMGRP.
+!       STORE ENTRIES ACCORDING TO SELECTED STORAGE FORMAT.
+!       USE LARGEST ELEMENTS IN A COLUMN TO DETERMINE SCALING
+!       INFORMATION FOR ROUNDOFF AND TRUNCATION ERROR TESTS.
+        DO JCOL = 1, N
+          IF (NGRP(JCOL) == NUMGRP) THEN
+            IDXL = JPNTR(JCOL)
+            IDXU = JPNTR(JCOL+1) - 1
+            DMAX = ZERO
+            RDEL = ONE/WK(NT2+JCOL)
+            IROWMX = 1
+            DO L = IDXL, IDXU
+              IROW = INDROW(L)
+              DIFF = WK(IROW) - F(IROW)
+              ADIFF = ABS(DIFF)
+              IF (ADIFF >= DMAX) THEN
+                IROWMX = IROW
+                DMAX = ADIFF
+                SF = F(IROW)
+                SDF = WK(IROW)
+              END IF
+              FJACL = DIFF*RDEL
+              IF (ITRY == 1) WK(IROW) = FJACL
+
+              IF (IOPT(1) == 0) THEN
+                IF (ITRY == 1) WK(IROW+N) = FJAC(IROW,JCOL)
+                FJAC(IROW,JCOL) = FJACL
+              END IF
+              IF (IOPT(1) == 1) THEN
+                IROWB = IROW - JCOL + IOPT(2)
+                IF (ITRY == 1) WK(IROW+N) = FJAC(IROWB,JCOL)
+                FJAC(IROWB,JCOL) = FJACL
+              END IF
+              IF (IOPT(1) == 2) THEN
+                IF (ITRY == 1) WK(IROW+N) = FJAC(L,1)
+                FJAC(L,1) = FJACL
+              END IF
+            END DO
+
+!           IF A COLUMN IS BEING RECOMPUTED (ITRY=1),THIS SECTION OF THE
+!           CODE PERFORMS AN EXTRAPOLATION TEST TO ENABLE THE CODE TO
+!           COMPUTE SMALL DERIVATIVES MORE ACCURATELY. THIS TEST IS ONLY
+!           PERFORMED ON THOSE COLUMNS WHOSE LARGEST DIFFERENCE IS CLOSE
+!           TO ZERO RELATIVE TO SCALE.
+            IF (ITRY == 1) THEN
+              IFLAG1 = 0
+              IFLAG2 = 0
+              DO 100 J = NID5 + 1, NID6
+                IF (IWK(J) == JCOL) IFLAG1 = 1
+100           CONTINUE
+              IF (IFLAG1 == 1) THEN
+                IFLAG1 = 0
+                T1 = WK(IROWMX+N)
+                T2 = WK(IROWMX)*FAC(JCOL)
+                IF (ABS(T2) < ABS(T1)*PERT) IFLAG2 = 1
+              END IF
+
+              IF (IFLAG2 == 1) THEN
+                IFLAG2 = 0
+                T1 = FAC(JCOL)*FAC(JCOL)
+                FAC(JCOL) = MAX(T1,FACMIN)
+                DO L = IDXL, IDXU
+                  IROW = INDROW(L)
+                  FJACL = WK(IROW+N)
+                  IF (IOPT(1) == 0) FJAC(IROW,JCOL) = FJACL
+                  IF (IOPT(1) == 1) THEN
+                    IROWB = IROW - JCOL + IOPT(2)
+                    FJAC(IROWB,JCOL) = FJACL
+                  END IF
+                  IF (IOPT(1) == 2) FJAC(L,1) = FJACL
+                END DO
+              END IF
+            END IF
+
+            FMJ = ABS(SF)
+            DFMJ = ABS(SDF)
+            RMXFDF = MAX(FMJ,DFMJ)
+            RMNFDF = MIN(FMJ,DFMJ)
+
+!           IF SCALE INFORMATION IS NOT AVAILABLE, PERFORM NO ROUNDOFF
+!           OR TRUNCATION ERROR TESTS. IF THE EXTRAPOLATION TEST HAS
+!           CAUSED FAC(JCOL) TO BE RESET TO ITS PREVIOUS VALUE (IAJAC=1)
+!           THEN NO FURTHER ROUNDOFF OR TRUNCATION ERROR TESTS ARE
+!           PERFORMED.
+!           IF (RMNFDF/=ZERO) THEN
+            IF (ABS(RMNFDF) > ZERO) THEN
+!             TEST FOR POSSIBLE ROUNDOFF ERROR (FIRST TEST)
+!             AND ALSO FOR POSSIBLE SERIOUS ROUNDOFF ERROR (SECOND TEST).
+              IF (DMAX <= (U3QRT*RMXFDF)) THEN
+                IF (DMAX <= (U7EGT*RMXFDF)) THEN
+                  IF (ITRY == 0) THEN
+                    T1 = SQRT(FAC(JCOL))
+                    FAC(JCOL) = MIN(T1,FACMAX)
+                    IRCMP = 1
+                    IF (KT5 < NID6) THEN
+                      KT5 = KT5 + 1
+                      IWK(KT5) = JCOL
+                    END IF
+                    IWK(4) = IWK(4) + 1
+                    IF (KT3 < NID4) THEN
+                      KT3 = KT3 + 1
+                      IWK(KT3) = JCOL
+                    END IF
+                  ELSE
+                    IWK(5) = IWK(5) + 1
+                    IF (KT4 < NID5) THEN
+                      KT4 = KT4 + 1
+                      IWK(KT4) = JCOL
+                    END IF
+                  END IF
+                ELSE
+                  T1 = UMEGT*FAC(JCOL)
+                  FAC(JCOL) = MIN(T1,FACMAX)
+                END IF
+              END IF
+!             TEST FOR POSSIBLE TRUNCATION ERROR.
+              IF (DMAX > UQRT*RMXFDF) THEN
+                T1 = FAC(JCOL)*UEGT
+                FAC(JCOL) = MAX(T1,FACMIN)
+                IWK(8) = IWK(8) + 1
+                IF (KT1 < NID2) THEN
+                  KT1 = KT1 + 1
+                  IWK(KT1) = JCOL
+                END IF
+              END IF
+            ELSE
+              IWK(6) = IWK(6) + 1
+            END IF
+          END IF
+        END DO
+
+!       IF SERIOUS ROUNDOFF ERROR IS SUSPECTED, RECOMPUTE ALL
+!       COLUMNS IN GROUP NUMGRP.
+        IF (IRCMP == 1) THEN
+          IRCMP = 0
+          ITRY = 1
+          GOTO 40
+        END IF
+        ITRY = 0
+      END DO
+      RETURN
+
+    END SUBROUTINE JACSP
+!_______________________________________________________________________
+
+    SUBROUTINE DEGR(N,INDROW,JPNTR,INDCOL,IPNTR,NDEG,IWA)
+
+!     GIVEN THE SPARSITY PATTERN OF AN M BY N MATRIX A,
+!     THIS SUBROUTINE DETERMINES THE DEGREE SEQUENCE FOR
+!     THE INTERSECTION GRAPH OF THE COLUMNS OF A.
+!     IN GRAPH-THEORY TERMINOLOGY, THE INTERSECTION GRAPH OF
+!     THE COLUMNS OF A IS THE LOOPLESS GRAPH G WITH VERTICES
+!     A(J), J = 1,2,...,N WHERE A(J) IS THE J-TH COLUMN OF A
+!     AND WITH EDGE (A(I),A(J)) IF AND ONLY IF COLUMNS I AND J
+!     HAVE A NON-ZERO IN THE SAME ROW POSITION.
+!     NOTE THAT THE VALUE OF M IS NOT NEEDED BY DEGR AND IS
+!     THEREFORE NOT PRESENT IN THE SUBROUTINE STATEMENT.
+!     THE SUBROUTINE STATEMENT IS
+!       SUBROUTINE DEGR(N,INDROW,JPNTR,INDCOL,IPNTR,NDEG,IWA)
+!     WHERE
+!       N IS A POSITIVE INTEGER INPUT VARIABLE SET TO THE NUMBER
+!         OF COLUMNS OF A.
+!       INDROW IS AN INTEGER INPUT ARRAY WHICH CONTAINS THE ROW
+!         INDICES FOR THE NON-ZEROES IN THE MATRIX A.
+!       JPNTR IS AN INTEGER INPUT ARRAY OF LENGTH N + 1 WHICH
+!         SPECIFIES THE LOCATIONS OF THE ROW INDICES IN INDROW.
+!         THE ROW INDICES FOR COLUMN J ARE
+!               INDROW(K), K = JPNTR(J),...,JPNTR(J+1)-1.
+!         NOTE THAT JPNTR(N+1)-1 IS THEN THE NUMBER OF NON-ZERO
+!         ELEMENTS OF THE MATRIX A.
+!       INDCOL IS AN INTEGER INPUT ARRAY WHICH CONTAINS THE
+!         COLUMN INDICES FOR THE NON-ZEROES IN THE MATRIX A.
+!       IPNTR IS AN INTEGER INPUT ARRAY OF LENGTH M + 1 WHICH
+!         SPECIFIES THE LOCATIONS OF THE COLUMN INDICES IN INDCOL.
+!         THE COLUMN INDICES FOR ROW I ARE
+!               INDCOL(K), K = IPNTR(I),...,IPNTR(I+1)-1.
+!         NOTE THAT IPNTR(M+1)-1 IS THEN THE NUMBER OF NON-ZERO
+!         ELEMENTS OF THE MATRIX A.
+!       NDEG IS AN INTEGER OUTPUT ARRAY OF LENGTH N WHICH
+!         SPECIFIES THE DEGREE SEQUENCE. THE DEGREE OF THE
+!         J-TH COLUMN OF A IS NDEG(J).
+!       IWA IS AN INTEGER WORK ARRAY OF LENGTH N.
+!     ARGONNE NATIONAL LABORATORY. MINPACK PROJECT. JULY 1983.
+!     THOMAS F. COLEMAN, BURTON S. GARBOW, JORGE J. MORE'
+
+     IMPLICIT NONE
+
+! .. Scalar Arguments ..
+      INTEGER :: N
+! ..
+! .. Array Arguments ..
+      INTEGER :: INDCOL(*), INDROW(*), IPNTR(*), IWA(N), JPNTR(N+1), NDEG(N)
+! ..
+! .. Local Scalars ..
+      INTEGER :: IC, IP, IR, JCOL, JP
+! ..
+! ..  FIRST EXECUTABLE STATEMENT DEGR
+! ..
+!     INITIALIZATION BLOCK.
+      NDEG(1:N) = 0
+      IWA(1:N) = 0
+
+!     COMPUTE THE DEGREE SEQUENCE BY DETERMINING THE CONTRIBUTIONS
+!     TO THE DEGREES FROM THE CURRENT (JCOL) COLUMN AND FURTHER
+!     COLUMNS WHICH HAVE NOT YET BEEN CONSIDERED.
+      DO JCOL = 2, N
+        IWA(JCOL) = N
+!       DETERMINE ALL POSITIONS (IR,JCOL) WHICH CORRESPOND
+!       TO NON-ZEROES IN THE MATRIX.
+        DO JP = JPNTR(JCOL), JPNTR(JCOL+1) - 1
+          IR = INDROW(JP)
+!         FOR EACH ROW IR, DETERMINE ALL POSITIONS (IR,IC)
+!         WHICH CORRESPOND TO NON-ZEROES IN THE MATRIX.
+          DO IP = IPNTR(IR), IPNTR(IR+1) - 1
+            IC = INDCOL(IP)
+!           ARRAY IWA MARKS COLUMNS WHICH HAVE CONTRIBUTED TO
+!           THE DEGREE COUNT OF COLUMN JCOL. UPDATE THE DEGREE
+!           COUNTS OF THESE COLUMNS AS WELL AS COLUMN JCOL.
+            IF (IWA(IC) < JCOL) THEN
+              IWA(IC) = JCOL
+              NDEG(IC) = NDEG(IC) + 1
+              NDEG(JCOL) = NDEG(JCOL) + 1
+            END IF
+          END DO
+        END DO
+      END DO
+      RETURN
+
+    END SUBROUTINE DEGR
+!_______________________________________________________________________
+
+    SUBROUTINE IDO(M,N,INDROW,JPNTR,INDCOL,IPNTR,NDEG,LIST,MAXCLQ, &
+      IWA1,IWA2,IWA3,IWA4)
+
+!     SUBROUTINE IDO
+!     GIVEN THE SPARSITY PATTERN OF AN M BY N MATRIX A, THIS
+!     SUBROUTINE DETERMINES AN INCIDENCE-DEGREE ORDERING OF THE
+!     COLUMNS OF A.
+!     THE INCIDENCE-DEGREE ORDERING IS DEFINED FOR THE LOOPLESS
+!     GRAPH G WITH VERTICES A(J), J = 1,2,...,N WHERE A(J) IS THE
+!     J-TH COLUMN OF A AND WITH EDGE (A(I),A(J)) IF AND ONLY IF
+!     COLUMNS I AND J HAVE A NON-ZERO IN THE SAME ROW POSITION.
+!     THE INCIDENCE-DEGREE ORDERING IS DETERMINED RECURSIVELY BY
+!     LETTING LIST(K), K = 1,...,N BE A COLUMN WITH MAXIMAL
+!     INCIDENCE TO THE SUBGRAPH SPANNED BY THE ORDERED COLUMNS.
+!     AMONG ALL THE COLUMNS OF MAXIMAL INCIDENCE, IDO CHOOSES A
+!     COLUMN OF MAXIMAL DEGREE.
+!     THE SUBROUTINE STATEMENT IS
+!       SUBROUTINE IDO(M,N,INDROW,JPNTR,INDCOL,IPNTR,NDEG,LIST,
+!                      MAXCLQ,IWA1,IWA2,IWA3,IWA4)
+!     WHERE
+!       M IS A POSITIVE INTEGER INPUT VARIABLE SET TO THE NUMBER
+!         OF ROWS OF A.
+!       N IS A POSITIVE INTEGER INPUT VARIABLE SET TO THE NUMBER
+!         OF COLUMNS OF A.
+!       INDROW IS AN INTEGER INPUT ARRAY WHICH CONTAINS THE ROW
+!         INDICES FOR THE NON-ZEROES IN THE MATRIX A.
+!       JPNTR IS AN INTEGER INPUT ARRAY OF LENGTH N + 1 WHICH
+!         SPECIFIES THE LOCATIONS OF THE ROW INDICES IN INDROW.
+!         THE ROW INDICES FOR COLUMN J ARE
+!               INDROW(K), K = JPNTR(J),...,JPNTR(J+1)-1.
+!         NOTE THAT JPNTR(N+1)-1 IS THEN THE NUMBER OF NON-ZERO
+!         ELEMENTS OF THE MATRIX A.
+!       INDCOL IS AN INTEGER INPUT ARRAY WHICH CONTAINS THE
+!         COLUMN INDICES FOR THE NON-ZEROES IN THE MATRIX A.
+!       IPNTR IS AN INTEGER INPUT ARRAY OF LENGTH M + 1 WHICH
+!         SPECIFIES THE LOCATIONS OF THE COLUMN INDICES IN INDCOL.
+!         THE COLUMN INDICES FOR ROW I ARE
+!               INDCOL(K), K = IPNTR(I),...,IPNTR(I+1)-1.
+!         NOTE THAT IPNTR(M+1)-1 IS THEN THE NUMBER OF NON-ZERO
+!         ELEMENTS OF THE MATRIX A.
+!       NDEG IS AN INTEGER INPUT ARRAY OF LENGTH N WHICH SPECIFIES
+!         THE DEGREE SEQUENCE. THE DEGREE OF THE J-TH COLUMN
+!         OF A IS NDEG(J).
+!       LIST IS AN INTEGER OUTPUT ARRAY OF LENGTH N WHICH SPECIFIES
+!         THE INCIDENCE-DEGREE ORDERING OF THE COLUMNS OF A. THE J-TH
+!         COLUMN IN THIS ORDER IS LIST(J).
+!       MAXCLQ IS AN INTEGER OUTPUT VARIABLE SET TO THE SIZE
+!         OF THE LARGEST CLIQUE FOUND DURING THE ORDERING.
+!       IWA1,IWA2,IWA3, AND IWA4 ARE INTEGER WORK ARRAYS OF LENGTH N.
+!     SUBPROGRAMS CALLED
+!       MINPACK-SUPPLIED ... NUMSRT
+!       INTRINSIC ... MAX
+!     ARGONNE NATIONAL LABORATORY. MINPACK PROJECT. JULY 1983.
+!     THOMAS F. COLEMAN, BURTON S. GARBOW, JORGE J. MORE'
+
+     IMPLICIT NONE
+
+! .. Scalar Arguments ..
+      INTEGER :: M, MAXCLQ, N
+! ..
+! .. Array Arguments ..
+      INTEGER :: INDCOL(*), INDROW(*), IPNTR(M+1), IWA1(0:N-1), IWA2(N), &
+        IWA3(N), IWA4(N), JPNTR(N+1), LIST(N), NDEG(N)
+! ..
+! .. Local Scalars ..
+      INTEGER :: IC, IP, IR, JCOL, JP, MAXINC, MAXLST, NCOMP, NUMINC, NUMLST, &
+        NUMORD, NUMWGT
+! ..
+! .. External Subroutines ..
+!     EXTERNAL NUMSRT
+! ..
+! .. Intrinsic Functions ..
+      INTRINSIC MAX
+! ..
+! ..  FIRST EXECUTABLE STATEMENT IDO
+! ..
+!     SORT THE DEGREE SEQUENCE.
+      CALL NUMSRT(N,N-1,NDEG,-1,IWA4,IWA2,IWA3)
+
+!     INITIALIZATION BLOCK.
+
+!     CREATE A DOUBLY-LINKED LIST TO ACCESS THE INCIDENCES OF THE
+!     COLUMNS. THE POINTERS FOR THE LINKED LIST ARE AS FOLLOWS.
+
+!     EACH UNORDERED COLUMN IC IS IN A LIST (THE INCIDENCE LIST)
+!     OF COLUMNS WITH THE SAME INCIDENCE.
+
+!     IWA1(NUMINC) IS THE FIRST COLUMN IN THE NUMINC LIST
+!     UNLESS IWA1(NUMINC) = 0. IN THIS CASE THERE ARE
+!     NO COLUMNS IN THE NUMINC LIST.
+
+!     IWA2(IC) IS THE COLUMN BEFORE IC IN THE INCIDENCE LIST
+!     UNLESS IWA2(IC) = 0. IN THIS CASE IC IS THE FIRST
+!     COLUMN IN THIS INCIDENCE LIST.
+
+!     IWA3(IC) IS THE COLUMN AFTER IC IN THE INCIDENCE LIST
+!     UNLESS IWA3(IC) = 0. IN THIS CASE IC IS THE LAST
+!     COLUMN IN THIS INCIDENCE LIST.
+
+!     IF IC IS AN UN-ORDERED COLUMN, THEN LIST(IC) IS THE
+!     INCIDENCE OF IC TO THE GRAPH INDUCED BY THE ORDERED
+!     COLUMNS. IF JCOL IS AN ORDERED COLUMN, THEN LIST(JCOL)
+!     IS THE INCIDENCE-DEGREE ORDER OF COLUMN JCOL.
+
+      MAXINC = 0
+      DO JP = N, 1, -1
+        IC = IWA4(JP)
+        IWA1(N-JP) = 0
+        IWA2(IC) = 0
+        IWA3(IC) = IWA1(0)
+        IF (IWA1(0) > 0) IWA2(IWA1(0)) = IC
+        IWA1(0) = IC
+        IWA4(JP) = 0
+        LIST(JP) = 0
+      END DO
+
+!     DETERMINE THE MAXIMAL SEARCH LENGTH FOR THE LIST
+!     OF COLUMNS OF MAXIMAL INCIDENCE.
+      MAXLST = 0
+      DO IR = 1, M
+        MAXLST = MAXLST + (IPNTR(IR+1)-IPNTR(IR))**2
+      END DO
+      MAXLST = MAXLST/N
+      MAXCLQ = 0
+      NUMORD = 1
+
+!     BEGINNING OF ITERATION LOOP.
+
+30    CONTINUE
+
+!     UPDATE THE SIZE OF THE LARGEST CLIQUE
+!     FOUND DURING THE ORDERING.
+      IF (MAXINC == 0) NCOMP = 0
+      NCOMP = NCOMP + 1
+      IF (MAXINC+1 == NCOMP) MAXCLQ = MAX(MAXCLQ,NCOMP)
+
+!     CHOOSE A COLUMN JCOL OF MAXIMAL DEGREE AMONG THE
+!     COLUMNS OF MAXIMAL INCIDENCE MAXINC.
+40    CONTINUE
+      JP = IWA1(MAXINC)
+      IF (JP > 0) GOTO 50
+      MAXINC = MAXINC - 1
+      GOTO 40
+50    CONTINUE
+      NUMWGT = -1
+      DO NUMLST = 1, MAXLST
+        IF (NDEG(JP) > NUMWGT) THEN
+          NUMWGT = NDEG(JP)
+          JCOL = JP
+        END IF
+        JP = IWA3(JP)
+        IF (JP <= 0) GOTO 70
+      END DO
+70    CONTINUE
+      LIST(JCOL) = NUMORD
+      NUMORD = NUMORD + 1
+
+!     TERMINATION TEST.
+      IF (NUMORD > N) GOTO 100
+
+!     DELETE COLUMN JCOL FROM THE MAXINC LIST.
+      IF (IWA2(JCOL) == 0) THEN
+        IWA1(MAXINC) = IWA3(JCOL)
+      ELSE
+        IWA3(IWA2(JCOL)) = IWA3(JCOL)
+      END IF
+      IF (IWA3(JCOL) > 0) IWA2(IWA3(JCOL)) = IWA2(JCOL)
+
+!     FIND ALL COLUMNS ADJACENT TO COLUMN JCOL.
+      IWA4(JCOL) = N
+
+!     DETERMINE ALL POSITIONS(IR,JCOL) WHICH CORRESPOND
+!     TO NON-ZEROES IN THE MATRIX.
+      DO JP = JPNTR(JCOL), JPNTR(JCOL+1) - 1
+        IR = INDROW(JP)
+!       FOR EACH ROW IR, DETERMINE ALL POSITIONS(IR,IC)
+!       WHICH CORRESPOND TO NON-ZEROES IN THE MATRIX.
+        DO IP = IPNTR(IR), IPNTR(IR+1) - 1
+          IC = INDCOL(IP)
+!         ARRAY IWA4 MARKS COLUMNS WHICH ARE ADJACENT TO
+!         COLUMN JCOL.
+          IF (IWA4(IC) < NUMORD) THEN
+            IWA4(IC) = NUMORD
+!           UPDATE THE POINTERS TO THE CURRENT INCIDENCE LISTS.
+            NUMINC = LIST(IC)
+            LIST(IC) = LIST(IC) + 1
+            MAXINC = MAX(MAXINC,LIST(IC))
+!           DELETE COLUMN IC FROM THE NUMINC LIST.
+            IF (IWA2(IC) == 0) THEN
+              IWA1(NUMINC) = IWA3(IC)
+            ELSE
+              IWA3(IWA2(IC)) = IWA3(IC)
+            END IF
+            IF (IWA3(IC) > 0) IWA2(IWA3(IC)) = IWA2(IC)
+!           ADD COLUMN IC TO THE NUMINC+1 LIST.
+            IWA2(IC) = 0
+            IWA3(IC) = IWA1(NUMINC+1)
+            IF (IWA1(NUMINC+1) > 0) IWA2(IWA1(NUMINC+1)) = IC
+            IWA1(NUMINC+1) = IC
+          END IF
+        END DO
+      END DO
+!     END OF ITERATION LOOP.
+      GOTO 30
+100   CONTINUE
+!     INVERT THE ARRAY LIST.
+      DO JCOL = 1, N
+        IWA2(LIST(JCOL)) = JCOL
+      END DO
+      LIST(1:N) = IWA2(1:N)
+      RETURN
+
+    END SUBROUTINE IDO
+!_______________________________________________________________________
+
+    SUBROUTINE NUMSRT(N,NMAX,NUM,MODE,INDEX,LAST,NEXT)
+
+!     GIVEN A SEQUENCE OF INTEGERS, THIS SUBROUTINE GROUPS TOGETHER THOSE
+!     INDICES WITH THE SAME SEQUENCE VALUE AND, OPTIONALLY, SORTS THE
+!     SEQUENCE INTO EITHER ASCENDING OR DESCENDING ORDER. THE SEQUENCE
+!     OF INTEGERS IS DEFINED BY THE ARRAY NUM, AND IT IS ASSUMED THAT THE
+!     INTEGERS ARE EACH FROM THE SET 0,1,...,NMAX. ON OUTPUT THE INDICES
+!     K SUCH THAT NUM(K) = L FOR ANY L = 0,1,...,NMAX CAN BE OBTAINED
+!     FROM THE ARRAYS LAST AND NEXT AS FOLLOWS.
+!           K = LAST(L)
+!           WHILE(K /= 0) K = NEXT(K)
+!     OPTIONALLY, THE SUBROUTINE PRODUCES AN ARRAY INDEX SO THAT
+!     THE SEQUENCE NUM(INDEX(I)), I = 1,2,...,N IS SORTED.
+!     THE SUBROUTINE STATEMENT IS
+!       SUBROUTINE NUMSRT(N,NMAX,NUM,MODE,INDEX,LAST,NEXT)
+!     WHERE
+!       N IS A POSITIVE INTEGER INPUT VARIABLE.
+!       NMAX IS A POSITIVE INTEGER INPUT VARIABLE.
+!       NUM IS AN INPUT ARRAY OF LENGTH N WHICH CONTAINS THE
+!         SEQUENCE OF INTEGERS TO BE GROUPED AND SORTED. IT
+!         IS ASSUMED THAT THE INTEGERS ARE EACH FROM THE SET
+!         0,1,...,NMAX.
+!       MODE IS AN INTEGER INPUT VARIABLE. THE SEQUENCE NUM IS
+!         SORTED IN ASCENDING ORDER IF MODE IS POSITIVE AND IN
+!         DESCENDING ORDER IF MODE IS NEGATIVE. IF MODE IS 0,
+!         NO SORTING IS DONE.
+!       INDEX IS AN INTEGER OUTPUT ARRAY OF LENGTH N SET SO
+!         THAT THE SEQUENCE
+!               NUM(INDEX(I)), I = 1,2,...,N
+!         IS SORTED ACCORDING TO THE SETTING OF MODE. IF MODE
+!         IS 0, INDEX IS NOT REFERENCED.
+!       LAST IS AN INTEGER OUTPUT ARRAY OF LENGTH NMAX + 1. THE
+!         INDEX OF NUM FOR THE LAST OCCURRENCE OF L IS LAST(L)
+!         FOR ANY L = 0,1,...,NMAX UNLESS LAST(L) = 0. IN
+!         THIS CASE L DOES NOT APPEAR IN NUM.
+!       NEXT IS AN INTEGER OUTPUT ARRAY OF LENGTH N. IF
+!         NUM(K) = L, THEN THE INDEX OF NUM FOR THE PREVIOUS
+!         OCCURRENCE OF L IS NEXT(K) FOR ANY L = 0,1,...,NMAX
+!         UNLESS NEXT(K) = 0. IN THIS CASE THERE IS NO PREVIOUS
+!         OCCURRENCE OF L IN NUM.
+!     ARGONNE NATIONAL LABORATORY. MINPACK PROJECT. JULY 1983.
+!     THOMAS F. COLEMAN, BURTON S. GARBOW, JORGE J. MORE'
+
+      IMPLICIT NONE
+
+! .. Scalar Arguments ..
+      INTEGER :: MODE, N, NMAX
+! ..
+! .. Array Arguments ..
+      INTEGER :: INDEX(N), LAST(0:NMAX), NEXT(N), NUM(N)
+! ..
+! .. Local Scalars ..
+      INTEGER :: I, J, JINC, JL, JU, K, L
+! ..
+! ..  FIRST EXECUTABLE STATEMENT NUMSRT
+! ..
+!     DETERMINE THE ARRAYS NEXT AND LAST.
+      LAST(0:NMAX) = 0
+      DO K = 1, N
+        L = NUM(K)
+        NEXT(K) = LAST(L)
+        LAST(L) = K
+      END DO
+      IF (MODE == 0) RETURN
+
+!     STORE THE POINTERS TO THE SORTED ARRAY IN INDEX.
+      I = 1
+      IF (MODE > 0) THEN
+        JL = 0
+        JU = NMAX
+        JINC = 1
+      ELSE
+        JL = NMAX
+        JU = 0
+        JINC = -1
+      END IF
+      DO J = JL, JU, JINC
+        K = LAST(J)
+30      CONTINUE
+        IF (K == 0) GOTO 40
+        INDEX(I) = K
+        I = I + 1
+        K = NEXT(K)
+        GOTO 30
+40      CONTINUE
+      END DO
+      RETURN
+
+    END SUBROUTINE NUMSRT
+!_______________________________________________________________________
+
+    SUBROUTINE SEQ(N,INDROW,JPNTR,INDCOL,IPNTR,LIST,NGRP,MAXGRP,IWA)
+
+!     GIVEN THE SPARSITY PATTERN OF AN M BY N MATRIX A, THIS
+!     SUBROUTINE DETERMINES A CONSISTENT PARTITION OF THE
+!     COLUMNS OF A BY A SEQUENTIAL ALGORITHM.
+!     A CONSISTENT PARTITION IS DEFINED IN TERMS OF THE LOOPLESS
+!     GRAPH G WITH VERTICES A(J), J = 1,2,...,N WHERE A(J) IS THE
+!     J-TH COLUMN OF A AND WITH EDGE(A(I),A(J)) IF AND ONLY IF
+!     COLUMNS I AND J HAVE A NON-ZERO IN THE SAME ROW POSITION.
+!     A PARTITION OF THE COLUMNS OF A INTO GROUPS IS CONSISTENT
+!     IF THE COLUMNS IN ANY GROUP ARE NOT ADJACENT IN THE GRAPH G.
+!     IN GRAPH-THEORY TERMINOLOGY, A CONSISTENT PARTITION OF THE
+!     COLUMNS OF A CORRESPONDS TO A COLORING OF THE GRAPH G.
+!     THE SUBROUTINE EXAMINES THE COLUMNS IN THE ORDER SPECIFIED
+!     BY THE ARRAY LIST, AND ASSIGNS THE CURRENT COLUMN TO THE
+!     GROUP WITH THE SMALLEST POSSIBLE NUMBER.
+!     NOTE THAT THE VALUE OF M IS NOT NEEDED BY SEQ AND IS
+!     THEREFORE NOT PRESENT IN THE SUBROUTINE STATEMENT.
+!     THE SUBROUTINE STATEMENT IS
+!     SUBROUTINE SEQ(N,INDROW,JPNTR,INDCOL,IPNTR,LIST,NGRP,MAXGRP,IWA)
+!     WHERE
+!       N IS A POSITIVE INTEGER INPUT VARIABLE SET TO THE NUMBER
+!         OF COLUMNS OF A.
+!       INDROW IS AN INTEGER INPUT ARRAY WHICH CONTAINS THE ROW
+!         INDICES FOR THE NON-ZEROES IN THE MATRIX A.
+!       JPNTR IS AN INTEGER INPUT ARRAY OF LENGTH N + 1 WHICH
+!         SPECIFIES THE LOCATIONS OF THE ROW INDICES IN INDROW.
+!         THE ROW INDICES FOR COLUMN J ARE
+!               INDROW(K), K = JPNTR(J),...,JPNTR(J+1)-1.
+!         NOTE THAT JPNTR(N+1)-1 IS THEN THE NUMBER OF NON-ZERO
+!         ELEMENTS OF THE MATRIX A.
+!       INDCOL IS AN INTEGER INPUT ARRAY WHICH CONTAINS THE
+!         COLUMN INDICES FOR THE NON-ZEROES IN THE MATRIX A.
+!       IPNTR IS AN INTEGER INPUT ARRAY OF LENGTH M + 1 WHICH
+!         SPECIFIES THE LOCATIONS OF THE COLUMN INDICES IN INDCOL.
+!         THE COLUMN INDICES FOR ROW I ARE
+!               INDCOL(K), K = IPNTR(I),...,IPNTR(I+1)-1.
+!         NOTE THAT IPNTR(M+1)-1 IS THEN THE NUMBER OF NON-ZERO
+!         ELEMENTS OF THE MATRIX A.
+!       LIST IS AN INTEGER INPUT ARRAY OF LENGTH N WHICH SPECIFIES
+!         THE ORDER TO BE USED BY THE SEQUENTIAL ALGORITHM.
+!         THE J-TH COLUMN IN THIS ORDER IS LIST(J).
+!       NGRP IS AN INTEGER OUTPUT ARRAY OF LENGTH N WHICH SPECIFIES
+!         THE PARTITION OF THE COLUMNS OF A. COLUMN JCOL BELONGS
+!         TO GROUP NGRP(JCOL).
+!       MAXGRP IS AN INTEGER OUTPUT VARIABLE WHICH SPECIFIES THE
+!         NUMBER OF GROUPS IN THE PARTITION OF THE COLUMNS OF A.
+!       IWA IS AN INTEGER WORK ARRAY OF LENGTH N.
+!     ARGONNE NATIONAL LABORATORY. MINPACK PROJECT. JULY 1983.
+!     THOMAS F. COLEMAN, BURTON S. GARBOW, JORGE J. MORE'
+
+     IMPLICIT NONE
+
+! .. Scalar Arguments ..
+      INTEGER :: MAXGRP, N
+! ..
+! .. Array Arguments ..
+      INTEGER :: INDCOL(*), INDROW(*), IPNTR(*), IWA(N), JPNTR(N+1), &
+        LIST(N), NGRP(N)
+! ..
+! .. Local Scalars ..
+      INTEGER :: IC, IP, IR, J, JCOL, JP
+! ..
+! ..  FIRST EXECUTABLE STATEMENT SEQ
+! ..
+!     INITIALIZATION BLOCK.
+      MAXGRP = 0
+      NGRP(1:N) = N
+      IWA(1:N) = 0
+
+!     BEGINNING OF ITERATION LOOP.
+
+      DO J = 1, N
+        JCOL = LIST(J)
+!       FIND ALL COLUMNS ADJACENT TO COLUMN JCOL.
+!       DETERMINE ALL POSITIONS (IR,JCOL) WHICH CORRESPOND
+!       TO NON-ZEROES IN THE MATRIX.
+        DO JP = JPNTR(JCOL), JPNTR(JCOL+1) - 1
+          IR = INDROW(JP)
+!         FOR EACH ROW IR, DETERMINE ALL POSITIONS (IR,IC)
+!         WHICH CORRESPOND TO NON-ZEROES IN THE MATRIX.
+          DO IP = IPNTR(IR), IPNTR(IR+1) - 1
+            IC = INDCOL(IP)
+!           ARRAY IWA MARKS THE GROUP NUMBERS OF THE
+!           COLUMNS WHICH ARE ADJACENT TO COLUMN JCOL.
+            IWA(NGRP(IC)) = J
+          END DO
+        END DO
+!       ASSIGN THE SMALLEST UN-MARKED GROUP NUMBER TO JCOL.
+        DO JP = 1, MAXGRP
+          IF (IWA(JP)/=J) GOTO 50
+        END DO
+        MAXGRP = MAXGRP + 1
+50      CONTINUE
+        NGRP(JCOL) = JP
+      END DO
+
+!     END OF ITERATION LOOP.
+
+      RETURN
+
+    END SUBROUTINE SEQ
+!_______________________________________________________________________
+
+    SUBROUTINE SETR(M,N,INDROW,JPNTR,INDCOL,IPNTR,IWA)
+
+!     GIVEN A COLUMN-ORIENTED DEFINITION OF THE SPARSITY PATTERN
+!     OF AN M BY N MATRIX A, THIS SUBROUTINE DETERMINES A
+!     ROW-ORIENTED DEFINITION OF THE SPARSITY PATTERN OF A.
+!     ON INPUT THE COLUMN-ORIENTED DEFINITION IS SPECIFIED BY
+!     THE ARRAYS INDROW AND JPNTR. ON OUTPUT THE ROW-ORIENTED
+!     DEFINITION IS SPECIFIED BY THE ARRAYS INDCOL AND IPNTR.
+!     THE SUBROUTINE STATEMENT IS
+!       SUBROUTINE SETR(M,N,INDROW,JPNTR,INDCOL,IPNTR,IWA)
+!     WHERE
+!       M IS A POSITIVE INTEGER INPUT VARIABLE SET TO THE NUMBER
+!         OF ROWS OF A.
+!       N IS A POSITIVE INTEGER INPUT VARIABLE SET TO THE NUMBER
+!         OF COLUMNS OF A.
+!       INDROW IS AN INTEGER INPUT ARRAY WHICH CONTAINS THE ROW
+!         INDICES FOR THE NON-ZEROES IN THE MATRIX A.
+!       JPNTR IS AN INTEGER INPUT ARRAY OF LENGTH N + 1 WHICH
+!         SPECIFIES THE LOCATIONS OF THE ROW INDICES IN INDROW.
+!         THE ROW INDICES FOR COLUMN J ARE
+!               INDROW(K), K = JPNTR(J),...,JPNTR(J+1)-1.
+!         NOTE THAT JPNTR(N+1)-1 IS THEN THE NUMBER OF NON-ZERO
+!         ELEMENTS OF THE MATRIX A.
+!       INDCOL IS AN INTEGER OUTPUT ARRAY WHICH CONTAINS THE
+!         COLUMN INDICES FOR THE NON-ZEROES IN THE MATRIX A.
+!       IPNTR IS AN INTEGER OUTPUT ARRAY OF LENGTH M + 1 WHICH
+!         SPECIFIES THE LOCATIONS OF THE COLUMN INDICES IN INDCOL.
+!         THE COLUMN INDICES FOR ROW I ARE
+!               INDCOL(K), K = IPNTR(I),...,IPNTR(I+1)-1.
+!         NOTE THAT IPNTR(1) IS SET TO 1 AND THAT IPNTR(M+1)-1 IS
+!         THEN THE NUMBER OF NON-ZERO ELEMENTS OF THE MATRIX A.
+!       IWA IS AN INTEGER WORK ARRAY OF LENGTH M.
+!     ARGONNE NATIONAL LABORATORY. MINPACK PROJECT. JULY 1983.
+!     THOMAS F. COLEMAN, BURTON S. GARBOW, JORGE J. MORE'
+
+     IMPLICIT NONE
+
+! .. Scalar Arguments ..
+      INTEGER :: M, N
+! ..
+! .. Array Arguments ..
+      INTEGER :: INDCOL(*), INDROW(*), IPNTR(M+1), IWA(M), JPNTR(N+1)
+! ..
+! .. Local Scalars ..
+      INTEGER :: IR, JCOL, JP
+! ..
+! ..  FIRST EXECUTABLE STATEMENT SETR
+! ..
+!     STORE IN ARRAY IWA THE COUNTS OF NON-ZEROES IN THE ROWS.
+      IWA(1:M) = 0
+      DO JP = 1, JPNTR(N+1) - 1
+        IWA(INDROW(JP)) = IWA(INDROW(JP)) + 1
+      END DO
+
+!     SET POINTERS TO THE START OF THE ROWS IN INDCOL.
+      IPNTR(1) = 1
+      DO IR = 1, M
+        IPNTR(IR+1) = IPNTR(IR) + IWA(IR)
+        IWA(IR) = IPNTR(IR)
+      END DO
+
+!     FILL INDCOL.
+      DO JCOL = 1, N
+        DO JP = JPNTR(JCOL), JPNTR(JCOL+1) - 1
+          IR = INDROW(JP)
+          INDCOL(IWA(IR)) = JCOL
+          IWA(IR) = IWA(IR) + 1
+        END DO
+      END DO
+      RETURN
+
+    END SUBROUTINE SETR
+!_______________________________________________________________________
+
+    SUBROUTINE SLO(N,INDROW,JPNTR,INDCOL,IPNTR,NDEG,LIST,MAXCLQ,IWA1,IWA2, &
+        IWA3,IWA4)
+
+!     GIVEN THE SPARSITY PATTERN OF AN M BY N MATRIX A, THIS
+!     SUBROUTINE DETERMINES THE SMALLEST-LAST ORDERING OF THE
+!     COLUMNS OF A.
+!     THE SMALLEST-LAST ORDERING IS DEFINED FOR THE LOOPLESS
+!     GRAPH G WITH VERTICES A(J), J = 1,2,...,N WHERE A(J) IS THE
+!     J-TH COLUMN OF A AND WITH EDGE(A(I),A(J)) IF AND ONLY IF
+!     COLUMNS I AND J HAVE A NON-ZERO IN THE SAME ROW POSITION.
+!     THE SMALLEST-LAST ORDERING IS DETERMINED RECURSIVELY BY
+!     LETTING LIST(K), K = N,...,1 BE A COLUMN WITH LEAST DEGREE
+!     IN THE SUBGRAPH SPANNED BY THE UN-ORDERED COLUMNS.
+!     NOTE THAT THE VALUE OF M IS NOT NEEDED BY SLO AND IS
+!     THEREFORE NOT PRESENT IN THE SUBROUTINE STATEMENT.
+!     THE SUBROUTINE STATEMENT IS
+!     SUBROUTINE SLO(N,INDROW,JPNTR,INDCOL,IPNTR,NDEG,LIST, &
+!                    MAXCLQ,IWA1,IWA2,IWA3,IWA4)
+!     WHERE
+!       N IS A POSITIVE INTEGER INPUT VARIABLE SET TO THE NUMBER
+!         OF COLUMNS OF A.
+!       INDROW IS AN INTEGER INPUT ARRAY WHICH CONTAINS THE ROW
+!         INDICES FOR THE NON-ZEROES IN THE MATRIX A.
+!       JPNTR IS AN INTEGER INPUT ARRAY OF LENGTH N + 1 WHICH
+!         SPECIFIES THE LOCATIONS OF THE ROW INDICES IN INDROW.
+!         THE ROW INDICES FOR COLUMN J ARE
+!               INDROW(K), K = JPNTR(J),...,JPNTR(J+1)-1.
+!         NOTE THAT JPNTR(N+1)-1 IS THEN THE NUMBER OF NON-ZERO
+!         ELEMENTS OF THE MATRIX A.
+!       INDCOL IS AN INTEGER INPUT ARRAY WHICH CONTAINS THE
+!         COLUMN INDICES FOR THE NON-ZEROES IN THE MATRIX A.
+!       IPNTR IS AN INTEGER INPUT ARRAY OF LENGTH M + 1 WHICH
+!         SPECIFIES THE LOCATIONS OF THE COLUMN INDICES IN INDCOL.
+!         THE COLUMN INDICES FOR ROW I ARE
+!               INDCOL(K), K = IPNTR(I),...,IPNTR(I+1)-1.
+!         NOTE THAT IPNTR(M+1)-1 IS THEN THE NUMBER OF NON-ZERO
+!         ELEMENTS OF THE MATRIX A.
+!       NDEG IS AN INTEGER INPUT ARRAY OF LENGTH N WHICH SPECIFIES
+!         THE DEGREE SEQUENCE. THE DEGREE OF THE J-TH COLUMN
+!         OF A IS NDEG(J).
+!       LIST IS AN INTEGER OUTPUT ARRAY OF LENGTH N WHICH SPECIFIES
+!         THE SMALLEST-LAST ORDERING OF THE COLUMNS OF A. THE J-TH
+!         COLUMN IN THIS ORDER IS LIST(J).
+!       MAXCLQ IS AN INTEGER OUTPUT VARIABLE SET TO THE SIZE
+!         OF THE LARGEST CLIQUE FOUND DURING THE ORDERING.
+!       IWA1,IWA2,IWA3, AND IWA4 ARE INTEGER WORK ARRAYS OF LENGTH N.
+!     SUBPROGRAMS CALLED
+!       INTRINSIC ... MIN
+!     ARGONNE NATIONAL LABORATORY. MINPACK PROJECT. JULY 1983.
+!     THOMAS F. COLEMAN, BURTON S. GARBOW, JORGE J. MORE'
+
+     IMPLICIT NONE
+
+! .. Scalar Arguments ..
+      INTEGER :: MAXCLQ, N
+! ..
+! .. Array Arguments ..
+      INTEGER :: INDCOL(*), INDROW(*), IPNTR(*), IWA1(0:N-1), IWA2(N), &
+        IWA3(N), IWA4(N), JPNTR(N+1), LIST(N), NDEG(N)
+! ..
+! .. Local Scalars ..
+      INTEGER :: IC, IP, IR, JCOL, JP, MINDEG, NUMDEG, NUMORD
+! ..
+! .. Intrinsic Functions ..
+      INTRINSIC MIN
+! ..
+! ..  FIRST EXECUTABLE STATEMENT SLO
+! ..
+!     INITIALIZATION BLOCK.
+      MINDEG = N
+      DO JP = 1, N
+        IWA1(JP-1) = 0
+        IWA4(JP) = N
+        LIST(JP) = NDEG(JP)
+        MINDEG = MIN(MINDEG,NDEG(JP))
+      END DO
+
+!     CREATE A DOUBLY-LINKED LIST TO ACCESS THE DEGREES OF THE
+!     COLUMNS. THE POINTERS FOR THE LINKED LIST ARE AS FOLLOWS.
+
+!     EACH UN-ORDERED COLUMN IC IS IN A LIST (THE DEGREE LIST)
+!     OF COLUMNS WITH THE SAME DEGREE.
+
+!     IWA1(NUMDEG) IS THE FIRST COLUMN IN THE NUMDEG LIST
+!     UNLESS IWA1(NUMDEG) = 0. IN THIS CASE THERE ARE
+!     NO COLUMNS IN THE NUMDEG LIST.
+
+!     IWA2(IC) IS THE COLUMN BEFORE IC IN THE DEGREE LIST
+!     UNLESS IWA2(IC) = 0. IN THIS CASE IC IS THE FIRST
+!     COLUMN IN THIS DEGREE LIST.
+
+!     IWA3(IC) IS THE COLUMN AFTER IC IN THE DEGREE LIST
+!     UNLESS IWA3(IC) = 0. IN THIS CASE IC IS THE LAST
+!     COLUMN IN THIS DEGREE LIST.
+
+!     IF IC IS AN UN-ORDERED COLUMN, THEN LIST(IC) IS THE
+!     DEGREE OF IC IN THE GRAPH INDUCED BY THE UN-ORDERED
+!     COLUMNS. IF JCOL IS AN ORDERED COLUMN, THEN LIST(JCOL)
+!     IS THE SMALLEST-LAST ORDER OF COLUMN JCOL.
+
+      DO JP = 1, N
+        NUMDEG = NDEG(JP)
+        IWA2(JP) = 0
+        IWA3(JP) = IWA1(NUMDEG)
+        IF (IWA1(NUMDEG) > 0) IWA2(IWA1(NUMDEG)) = JP
+        IWA1(NUMDEG) = JP
+      END DO
+      MAXCLQ = 0
+      NUMORD = N
+
+!     BEGINNING OF ITERATION LOOP.
+
+30    CONTINUE
+
+!     MARK THE SIZE OF THE LARGEST CLIQUE
+!     FOUND DURING THE ORDERING.
+      IF (MINDEG+1 == NUMORD .AND. MAXCLQ == 0) MAXCLQ = NUMORD
+
+!     CHOOSE A COLUMN JCOL OF MINIMAL DEGREE MINDEG.
+40    CONTINUE
+      JCOL = IWA1(MINDEG)
+      IF (JCOL > 0) GOTO 50
+      MINDEG = MINDEG + 1
+      GOTO 40
+50    CONTINUE
+      LIST(JCOL) = NUMORD
+      NUMORD = NUMORD - 1
+
+!     TERMINATION TEST.
+      IF (NUMORD == 0) GOTO 80
+
+!     DELETE COLUMN JCOL FROM THE MINDEG LIST.
+      IWA1(MINDEG) = IWA3(JCOL)
+      IF (IWA3(JCOL) > 0) IWA2(IWA3(JCOL)) = 0
+
+!     FIND ALL COLUMNS ADJACENT TO COLUMN JCOL.
+      IWA4(JCOL) = 0
+
+!     DETERMINE ALL POSITIONS (IR,JCOL) WHICH CORRESPOND
+!     TO NON-ZEROES IN THE MATRIX.
+      DO JP = JPNTR(JCOL), JPNTR(JCOL+1) - 1
+        IR = INDROW(JP)
+!       FOR EACH ROW IR, DETERMINE ALL POSITIONS (IR,IC)
+!       WHICH CORRESPOND TO NON-ZEROES IN THE MATRIX.
+        DO IP = IPNTR(IR), IPNTR(IR+1) - 1
+          IC = INDCOL(IP)
+!         ARRAY IWA4 MARKS COLUMNS WHICH ARE ADJACENT TO
+!         COLUMN JCOL.
+
+          IF (IWA4(IC) > NUMORD) THEN
+            IWA4(IC) = NUMORD
+!           UPDATE THE POINTERS TO THE CURRENT DEGREE LISTS.
+            NUMDEG = LIST(IC)
+            LIST(IC) = LIST(IC) - 1
+            MINDEG = MIN(MINDEG,LIST(IC))
+!           DELETE COLUMN IC FROM THE NUMDEG LIST.
+            IF (IWA2(IC) == 0) THEN
+              IWA1(NUMDEG) = IWA3(IC)
+            ELSE
+              IWA3(IWA2(IC)) = IWA3(IC)
+            END IF
+            IF (IWA3(IC) > 0) IWA2(IWA3(IC)) = IWA2(IC)
+!           ADD COLUMN IC TO THE NUMDEG-1 LIST.
+            IWA2(IC) = 0
+            IWA3(IC) = IWA1(NUMDEG-1)
+            IF (IWA1(NUMDEG-1) > 0) IWA2(IWA1(NUMDEG-1)) = IC
+            IWA1(NUMDEG-1) = IC
+          END IF
+        END DO
+      END DO
+!     END OF ITERATION LOOP.
+
+      GOTO 30
+80    CONTINUE
+
+!     INVERT THE ARRAY LIST.
+      DO JCOL = 1, N
+        IWA2(LIST(JCOL)) = JCOL
+      END DO
+      LIST(1:N) = IWA2(1:N)
+      RETURN
+
+    END SUBROUTINE SLO
+!_______________________________________________________________________
+
+    SUBROUTINE SRTDAT(N,NNZ,INDROW,INDCOL,JPNTR,IWA)
+
+!     GIVEN THE NON-ZERO ELEMENTS OF AN M BY N MATRIX A IN ARBITRARY
+!     ORDER AS SPECIFIED BY THEIR ROW AND COLUMN INDICES, THIS SUBROUTINE
+!     PERMUTES THESE ELEMENTS SO THAT THEIR COLUMN INDICES ARE IN
+!     NON-DECREASING ORDER. ON INPUT IT IS ASSUMED THAT THE ELEMENTS ARE
+!     SPECIFIED IN
+!           INDROW(K),INDCOL(K), K = 1,...,NNZ.
+!     ON OUTPUT THE ELEMENTS ARE PERMUTED SO THAT INDCOL IS IN
+!     NON-DECREASING ORDER. IN ADDITION, THE ARRAY JPNTR IS SET SO THAT
+!     THE ROW INDICES FOR COLUMN J ARE
+!           INDROW(K), K = JPNTR(J),...,JPNTR(J+1)-1.
+!     NOTE THAT THE VALUE OF M IS NOT NEEDED BY SRTDAT AND IS THEREFORE
+!     NOT PRESENT IN THE SUBROUTINE STATEMENT.
+!     THE SUBROUTINE STATEMENT IS
+!       SUBROUTINE SRTDAT(N,NNZ,INDROW,INDCOL,JPNTR,IWA)
+!     WHERE
+!       N IS A POSITIVE INTEGER INPUT VARIABLE SET TO THE NUMBER
+!         OF COLUMNS OF A.
+!       NNZ IS A POSITIVE INTEGER INPUT VARIABLE SET TO THE NUMBER
+!         OF NON-ZERO ELEMENTS OF A.
+!       INDROW IS AN INTEGER ARRAY OF LENGTH NNZ. ON INPUT INDROW
+!         MUST CONTAIN THE ROW INDICES OF THE NON-ZERO ELEMENTS OF A.
+!         ON OUTPUT INDROW IS PERMUTED SO THAT THE CORRESPONDING
+!         COLUMN INDICES OF INDCOL ARE IN NON-DECREASING ORDER.
+!       INDCOL IS AN INTEGER ARRAY OF LENGTH NNZ. ON INPUT INDCOL
+!         MUST CONTAIN THE COLUMN INDICES OF THE NON-ZERO ELEMENTS
+!         OF A. ON OUTPUT INDCOL IS PERMUTED SO THAT THESE INDICES
+!         ARE IN NON-DECREASING ORDER.
+!       JPNTR IS AN INTEGER OUTPUT ARRAY OF LENGTH N + 1 WHICH
+!         SPECIFIES THE LOCATIONS OF THE ROW INDICES IN THE OUTPUT
+!         INDROW. THE ROW INDICES FOR COLUMN J ARE
+!               INDROW(K), K = JPNTR(J),...,JPNTR(J+1)-1.
+!         NOTE THAT JPNTR(1) IS SET TO 1 AND THAT JPNTR(N+1)-1
+!         IS THEN NNZ.
+!       IWA IS AN INTEGER WORK ARRAY OF LENGTH N.
+!     SUBPROGRAMS CALLED - NONE
+!     INTRINSIC - MAX
+!     ARGONNE NATIONAL LABORATORY. MINPACK PROJECT. JULY 1983.
+!     THOMAS F. COLEMAN, BURTON S. GARBOW, JORGE J. MORE'
+
+     IMPLICIT NONE
+
+! .. Scalar Arguments ..
+      INTEGER :: N, NNZ
+! ..
+! .. Array Arguments ..
+      INTEGER :: INDCOL(NNZ), INDROW(NNZ), IWA(N), JPNTR(N+1)
+! ..
+! .. Local Scalars ..
+      INTEGER :: I, J, K, L
+! ..
+! .. Intrinsic Functions ..
+      INTRINSIC MAX
+! ..
+! ..  FIRST EXECUTABLE STATEMENT SRTDAT
+! ..
+!     STORE IN ARRAY IWA THE COUNTS OF NON-ZEROES IN THE COLUMNS.
+      IWA(1:N) = 0
+      DO K = 1, NNZ
+        IWA(INDCOL(K)) = IWA(INDCOL(K)) + 1
+      END DO
+
+!     SET POINTERS TO THE START OF THE COLUMNS IN INDROW.
+      JPNTR(1) = 1
+      DO J = 1, N
+        JPNTR(J+1) = JPNTR(J) + IWA(J)
+        IWA(J) = JPNTR(J)
+      END DO
+      K = 1
+
+!     BEGIN IN-PLACE SORT.
+40    CONTINUE
+      J = INDCOL(K)
+      IF (K >= JPNTR(J)) THEN
+!        CURRENT ELEMENT IS IN POSITION. NOW EXAMINE THE
+!        NEXT ELEMENT OR THE FIRST UN-SORTED ELEMENT IN
+!        THE J-TH GROUP.
+        K = MAX(K+1,IWA(J))
+      ELSE
+!       CURRENT ELEMENT IS NOT IN POSITION. PLACE ELEMENT
+!       IN POSITION AND MAKE THE DISPLACED ELEMENT THE
+!       CURRENT ELEMENT.
+        L = IWA(J)
+        IWA(J) = IWA(J) + 1
+        I = INDROW(K)
+        INDROW(K) = INDROW(L)
+        INDCOL(K) = INDCOL(L)
+        INDROW(L) = I
+        INDCOL(L) = J
+      END IF
+      IF (K <= NNZ) GOTO 40
+      RETURN
+
+    END SUBROUTINE SRTDAT
+!_______________________________________________________________________
+
+    SUBROUTINE FDJS(M,N,COL,IND,NPNTR,NGRP,NUMGRP,D,FJACD,FJAC)
+
+!     GIVEN A CONSISTENT PARTITION OF THE COLUMNS OF AN M BY N
+!     JACOBIAN MATRIX INTO GROUPS, THIS SUBROUTINE COMPUTES
+!     APPROXIMATIONS TO THOSE COLUMNS IN A GIVEN GROUP. THE
+!     APPROXIMATIONS ARE STORED INTO EITHER A COLUMN-ORIENTED
+!     OR A ROW-ORIENTED PATTERN.
+!     A PARTITION IS CONSISTENT IF THE COLUMNS IN ANY GROUP
+!     DO NOT HAVE A NON-ZERO IN THE SAME ROW POSITION.
+!     APPROXIMATIONS TO THE COLUMNS OF THE JACOBIAN MATRIX IN A
+!     GIVEN GROUP CAN BE OBTAINED BY SPECIFYING A DIFFERENCE
+!     PARAMETER ARRAY D WITH D(JCOL) NON-ZERO IF AND ONLY IF
+!     JCOL IS A COLUMN IN THE GROUP, AND AN APPROXIMATION TO
+!     JAC*D WHERE JAC DENOTES THE JACOBIAN MATRIX OF A MAPPING F.
+!     D CAN BE DEFINED WITH THE FOLLOWING SEGMENT OF CODE.
+!           DO 10 JCOL = 1, N
+!             D(JCOL) = 0.0
+!             IF (NGRP(JCOL) == NUMGRP) D(JCOL) = ETA(JCOL)
+!        10 CONTINUE
+!     IN THE ABOVE CODE NUMGRP IS THE GIVEN GROUP NUMBER,
+!     NGRP(JCOL) IS THE GROUP NUMBER OF COLUMN JCOL, AND
+!     ETA(JCOL) IS THE DIFFERENCE PARAMETER USED TO
+!     APPROXIMATE COLUMN JCOL OF THE JACOBIAN MATRIX.
+!     SUITABLE VALUES FOR THE ARRAY ETA MUST BE PROVIDED.
+!     AS MENTIONED ABOVE, AN APPROXIMATION TO JAC*D MUST
+!     ALSO BE PROVIDED. FOR EXAMPLE, THE APPROXIMATION
+!           F(X+D) - F(X)
+!     CORRESPONDS TO THE FORWARD DIFFERENCE FORMULA AT X.
+!     THE SUBROUTINE STATEMENT IS
+!       SUBROUTINE FDJS(M,N,COL,IND,NPNTR,NGRP,NUMGRP,D,FJACD,FJAC)
+!     WHERE
+!       M IS A POSITIVE INTEGER INPUT VARIABLE SET TO THE NUMBER
+!         OF ROWS OF THE JACOBIAN MATRIX.
+!       N IS A POSITIVE INTEGER INPUT VARIABLE SET TO THE NUMBER
+!         OF COLUMNS OF THE JACOBIAN MATRIX.
+!       COL IS A LOGICAL INPUT VARIABLE. IF COL IS SET TRUE, THEN THE
+!         JACOBIAN APPROXIMATIONS ARE STORED INTO A COLUMN-ORIENTED
+!         PATTERN. IF COL IS SET FALSE, THEN THE JACOBIAN
+!         APPROXIMATIONS ARE STORED INTO A ROW-ORIENTED PATTERN.
+!       IND IS AN INTEGER INPUT ARRAY WHICH CONTAINS THE ROW
+!         INDICES FOR THE NON-ZEROES IN THE JACOBIAN MATRIX
+!         IF COL IS TRUE, AND CONTAINS THE COLUMN INDICES FOR
+!         THE NON-ZEROES IN THE JACOBIAN MATRIX IF COL IS FALSE.
+!       NPNTR IS AN INTEGER INPUT ARRAY WHICH SPECIFIES THE
+!         LOCATIONS OF THE ROW INDICES IN IND IF COL IS TRUE, AND
+!         SPECIFIES THE LOCATIONS OF THE COLUMN INDICES IN IND IF
+!         COL IS FALSE. IF COL IS TRUE, THE INDICES FOR COLUMN J ARE
+!               IND(K), K = NPNTR(J),...,NPNTR(J+1)-1.
+!         IF COL IS FALSE, THE INDICES FOR ROW I ARE
+!               IND(K), K = NPNTR(I),...,NPNTR(I+1)-1.
+!         NOTE THAT NPNTR(N+1)-1 IF COL IS TRUE, OR NPNTR(M+1)-1
+!         IF COL IS FALSE, IS THEN THE NUMBER OF NON-ZERO ELEMENTS
+!         OF THE JACOBIAN MATRIX.
+!       NGRP IS AN INTEGER INPUT ARRAY OF LENGTH N WHICH SPECIFIES
+!         THE PARTITION OF THE COLUMNS OF THE JACOBIAN MATRIX.
+!         COLUMN JCOL BELONGS TO GROUP NGRP(JCOL).
+!       NUMGRP IS A POSITIVE INTEGER INPUT VARIABLE SET TO A GROUP
+!         NUMBER IN THE PARTITION. THE COLUMNS OF THE JACOBIAN
+!         MATRIX IN THIS GROUP ARE TO BE ESTIMATED ON THIS CALL.
+!       D IS AN INPUT ARRAY OF LENGTH N WHICH CONTAINS THE
+!         DIFFERENCE PARAMETER VECTOR FOR THE ESTIMATE OF
+!         THE JACOBIAN MATRIX COLUMNS IN GROUP NUMGRP.
+!       FJACD IS AN INPUT ARRAY OF LENGTH M WHICH CONTAINS
+!         AN APPROXIMATION TO THE DIFFERENCE VECTOR JAC*D,
+!         WHERE JAC DENOTES THE JACOBIAN MATRIX.
+!       FJAC IS AN OUTPUT ARRAY OF LENGTH NNZ, WHERE NNZ IS THE
+!         NUMBER OF ITS NON-ZERO ELEMENTS. AT EACH CALL OF FDJS,
+!         FJAC IS UPDATED TO INCLUDE THE NON-ZERO ELEMENTS OF THE
+!         JACOBIAN MATRIX FOR THOSE COLUMNS IN GROUP NUMGRP. FJAC
+!         SHOULD NOT BE ALTERED BETWEEN SUCCESSIVE CALLS TO FDJS.
+!     ARGONNE NATIONAL LABORATORY. MINPACK PROJECT. JULY 1983.
+!     THOMAS F. COLEMAN, BURTON S. GARBOW, JORGE J. MORE'
+
+     IMPLICIT NONE
+
+! .. Parameters ..
+      INTEGER, PARAMETER :: WP = KIND(0.0D0)
+! ..
+! .. Scalar Arguments ..
+      INTEGER :: M, N, NUMGRP
+      LOGICAL :: COL
+! ..
+! .. Array Arguments ..
+      KPP_REAL :: D(N), FJAC(*), FJACD(M)
+      INTEGER :: IND(*), NGRP(N), NPNTR(*)
+! ..
+! .. Local Scalars ..
+      INTEGER :: IP, IROW, JCOL, JP
+! ..
+! .. Intrinsic Functions ..
+!     INTRINSIC KIND
+! ..
+! ..  FIRST EXECUTABLE STATEMENT FDJS
+! ..
+!     COMPUTE ESTIMATES OF JACOBIAN MATRIX COLUMNS IN GROUP
+!     NUMGRP. THE ARRAY FJACD MUST CONTAIN AN APPROXIMATION
+!     TO JAC*D, WHERE JAC DENOTES THE JACOBIAN MATRIX AND D
+!     IS A DIFFERENCE PARAMETER VECTOR WITH D(JCOL) NON-ZERO
+!     IF AND ONLY IF JCOL IS A COLUMN IN GROUP NUMGRP.
+      IF (COL) THEN
+!       COLUMN ORIENTATION.
+        DO JCOL = 1, N
+          IF (NGRP(JCOL) == NUMGRP) THEN
+            DO JP = NPNTR(JCOL), NPNTR(JCOL+1) - 1
+              IROW = IND(JP)
+              FJAC(JP) = FJACD(IROW)/D(JCOL)
+            END DO
+          END IF
+        END DO
+      ELSE
+!       ROW ORIENTATION.
+        DO IROW = 1, M
+          DO IP = NPNTR(IROW), NPNTR(IROW+1) - 1
+            JCOL = IND(IP)
+            IF (NGRP(JCOL) == NUMGRP) THEN
+              FJAC(IP) = FJACD(IROW)/D(JCOL)
+              GOTO 40
+            END IF
+          END DO
+40        CONTINUE
+        END DO
+      END IF
+      RETURN
+
+    END SUBROUTINE FDJS
+!_______________________________________________________________________
+
+    SUBROUTINE DVDSM(M,N,NPAIRS,INDROW,INDCOL,NGRP,MAXGRP,MINGRP,INFO, &
+        IPNTR, JPNTR,IWA,LIWA)
+
+!     THE PURPOSE OF DSM IS TO DETERMINE AN OPTIMAL OR NEAR-
+!     OPTIMAL CONSISTENT PARTITION OF THE COLUMNS OF A SPARSE
+!     M BY N MATRIX A.
+!     THE SPARSITY PATTERN OF THE MATRIX A IS SPECIFIED BY
+!     THE ARRAYS INDROW AND INDCOL. ON INPUT THE INDICES
+!     FOR THE NON-ZERO ELEMENTS OF A ARE
+!           INDROW(K),INDCOL(K), K = 1,2,...,NPAIRS.
+!     THE(INDROW,INDCOL) PAIRS MAY BE SPECIFIED IN ANY ORDER.
+!     DUPLICATE INPUT PAIRS ARE PERMITTED, BUT THE SUBROUTINE
+!     ELIMINATES THEM.
+!     THE SUBROUTINE PARTITIONS THE COLUMNS OF A INTO GROUPS
+!     SUCH THAT COLUMNS IN THE SAME GROUP DO NOT HAVE A
+!     NON-ZERO IN THE SAME ROW POSITION. A PARTITION OF THE
+!     COLUMNS OF A WITH THIS PROPERTY IS CONSISTENT WITH THE
+!     DIRECT DETERMINATION OF A.
+!     THE SUBROUTINE STATEMENT IS
+!       SUBROUTINE DVDSM(M,N,NPAIRS,INDROW,INDCOL,NGRP,MAXGRP,MINGRP,
+!                      INFO,IPNTR,JPNTR,IWA,LIWA)
+!     WHERE
+!       M IS A POSITIVE INTEGER INPUT VARIABLE SET TO THE NUMBER
+!         OF ROWS OF A.
+!       N IS A POSITIVE INTEGER INPUT VARIABLE SET TO THE NUMBER
+!         OF COLUMNS OF A.
+!       NPAIRS IS A POSITIVE INTEGER INPUT VARIABLE SET TO THE
+!         NUMBER OF (INDROW,INDCOL) PAIRS USED TO DESCRIBE THE
+!         SPARSITY PATTERN OF A.
+!       INDROW IS AN INTEGER ARRAY OF LENGTH NPAIRS. ON INPUT INDROW
+!         MUST CONTAIN THE ROW INDICES OF THE NON-ZERO ELEMENTS OF A.
+!         ON OUTPUT INDROW IS PERMUTED SO THAT THE CORRESPONDING
+!         COLUMN INDICES ARE IN NON-DECREASING ORDER. THE COLUMN
+!         INDICES CAN BE RECOVERED FROM THE ARRAY JPNTR.
+!       INDCOL IS AN INTEGER ARRAY OF LENGTH NPAIRS. ON INPUT INDCOL
+!         MUST CONTAIN THE COLUMN INDICES OF THE NON-ZERO ELEMENTS OF
+!         A. ON OUTPUT INDCOL IS PERMUTED SO THAT THE CORRESPONDING
+!         ROW INDICES ARE IN NON-DECREASING ORDER. THE ROW INDICES
+!         CAN BE RECOVERED FROM THE ARRAY IPNTR.
+!       NGRP IS AN INTEGER OUTPUT ARRAY OF LENGTH N WHICH SPECIFIES
+!         THE PARTITION OF THE COLUMNS OF A. COLUMN JCOL BELONGS
+!         TO GROUP NGRP(JCOL).
+!       MAXGRP IS AN INTEGER OUTPUT VARIABLE WHICH SPECIFIES THE
+!         NUMBER OF GROUPS IN THE PARTITION OF THE COLUMNS OF A.
+!       MINGRP IS AN INTEGER OUTPUT VARIABLE WHICH SPECIFIES A LOWER
+!         BOUND FOR THE NUMBER OF GROUPS IN ANY CONSISTENT PARTITION
+!         OF THE COLUMNS OF A.
+!       INFO IS AN INTEGER OUTPUT VARIABLE SET AS FOLLOWS. FOR
+!         NORMAL TERMINATION INFO = 1. IF M, N, OR NPAIRS IS NOT
+!         POSITIVE OR LIWA IS LESS THAN MAX(M,6*N), THEN INFO = 0.
+!         IF THE K-TH ELEMENT OF INDROW IS NOT AN INTEGER BETWEEN
+!         1 AND M OR THE K-TH ELEMENT OF INDCOL IS NOT AN INTEGER
+!         BETWEEN 1 AND N, THEN INFO = -K.
+!       IPNTR IS AN INTEGER OUTPUT ARRAY OF LENGTH M + 1 WHICH
+!         SPECIFIES THE LOCATIONS OF THE COLUMN INDICES IN INDCOL.
+!         THE COLUMN INDICES FOR ROW I ARE
+!               INDCOL(K), K = IPNTR(I),...,IPNTR(I+1)-1.
+!         NOTE THAT IPNTR(M+1)-1 IS THEN THE NUMBER OF NON-ZERO
+!         ELEMENTS OF THE MATRIX A.
+!       JPNTR IS AN INTEGER OUTPUT ARRAY OF LENGTH N + 1 WHICH
+!         SPECIFIES THE LOCATIONS OF THE ROW INDICES IN INDROW.
+!         THE ROW INDICES FOR COLUMN J ARE
+!               INDROW(K), K = JPNTR(J),...,JPNTR(J+1)-1.
+!         NOTE THAT JPNTR(N+1)-1 IS THEN THE NUMBER OF NON-ZERO
+!         ELEMENTS OF THE MATRIX A.
+!       IWA IS AN INTEGER WORK ARRAY OF LENGTH LIWA.
+!       LIWA IS A POSITIVE INTEGER INPUT VARIABLE NOT LESS THAN
+!         MAX(M,6*N).
+!       MINPACK-SUPPLIED ... DEGR,IDO,NUMSRT,SEQ,SETR,SLO,SRTDAT
+!       INTRINSIC - MAX
+!     ARGONNE NATIONAL LABORATORY. MINPACK PROJECT. JULY 1983.
+!     THOMAS F. COLEMAN, BURTON S. GARBOW, JORGE J. MORE'
+
+     IMPLICIT NONE
+
+! .. Scalar Arguments ..
+      INTEGER :: INFO, LIWA, M, MAXGRP, MINGRP, N, NPAIRS
+! ..
+! .. Array Arguments ..
+      INTEGER :: INDCOL(NPAIRS), INDROW(NPAIRS), IPNTR(M+1), IWA(LIWA), &
+        JPNTR(N+1), NGRP(N)
+! ..
+! .. Local Scalars ..
+      INTEGER :: I, IR, J, JP, K, MAXCLQ, NNZ, NUMGRP
+! ..
+! .. External Subroutines ..
+!     EXTERNAL DEGR, IDO, NUMSRT, SEQ, SETR, SLO, SRTDAT
+! ..
+! .. Intrinsic Functions ..
+      INTRINSIC MAX
+! ..
+! ..  FIRST EXECUTABLE STATEMENT DSM
+! ..
+!     CHECK THE INPUT DATA.
+      INFO = 0
+      IF (M<1 .OR. N<1 .OR. NPAIRS<1 .OR. LIWA<MAX(M,6*N)) RETURN
+      DO K = 1, NPAIRS
+        INFO = -K
+        IF (INDROW(K)<1 .OR. INDROW(K)>M .OR. INDCOL(K)<1 .OR. INDCOL(K)>N) &
+          RETURN
+      END DO
+      INFO = 1
+
+!     SORT THE DATA STRUCTURE BY COLUMNS.
+      CALL SRTDAT(N,NPAIRS,INDROW,INDCOL,JPNTR,IWA)
+
+!     COMPRESS THE DATA AND DETERMINE THE NUMBER OF
+!     NON-ZERO ELEMENTS OF A.
+      IWA(1:M) =  0
+      NNZ = 1
+      DO J = 1, N
+        K = NNZ
+        DO JP = JPNTR(J), JPNTR(J+1) - 1
+          IR = INDROW(JP)
+          IF (IWA(IR)/=J) THEN
+            INDROW(NNZ) = IR
+            NNZ = NNZ + 1
+            IWA(IR) = J
+          END IF
+        END DO
+        JPNTR(J) = K
+      END DO
+      JPNTR(N+1) = NNZ
+
+!     EXTEND THE DATA STRUCTURE TO ROWS.
+      CALL SETR(M,N,INDROW,JPNTR,INDCOL,IPNTR,IWA)
+
+!     DETERMINE A LOWER BOUND FOR THE NUMBER OF GROUPS.
+      MINGRP = 0
+      DO I = 1, M
+        MINGRP = MAX(MINGRP,IPNTR(I+1)-IPNTR(I))
+      END DO
+
+!     DETERMINE THE DEGREE SEQUENCE FOR THE INTERSECTION
+!     GRAPH OF THE COLUMNS OF A.
+      CALL DEGR(N,INDROW,JPNTR,INDCOL,IPNTR,IWA(5*N+1),IWA(N+1))
+
+!     COLOR THE INTERSECTION GRAPH OF THE COLUMNS OF A
+!     WITH THE SMALLEST-LAST (SL) ORDERING.
+      CALL SLO(N,INDROW,JPNTR,INDCOL,IPNTR,IWA(5*N+1),IWA(4*N+1),MAXCLQ, &
+        IWA(1),IWA(N+1),IWA(2*N+1),IWA(3*N+1))
+      CALL SEQ(N,INDROW,JPNTR,INDCOL,IPNTR,IWA(4*N+1),NGRP,MAXGRP,IWA(N+1))
+      MINGRP = MAX(MINGRP,MAXCLQ)
+
+!     EXIT IF THE SMALLEST-LAST ORDERING IS OPTIMAL.
+
+      IF (MAXGRP == MINGRP) RETURN
+
+!     COLOR THE INTERSECTION GRAPH OF THE COLUMNS OF A
+!     WITH THE INCIDENCE-DEGREE(ID) ORDERING.
+      CALL IDO(M,N,INDROW,JPNTR,INDCOL,IPNTR,IWA(5*N+1),IWA(4*N+1),MAXCLQ, &
+        IWA(1),IWA(N+1),IWA(2*N+1),IWA(3*N+1))
+      CALL SEQ(N,INDROW,JPNTR,INDCOL,IPNTR,IWA(4*N+1),IWA(1),NUMGRP,IWA(N+1))
+      MINGRP = MAX(MINGRP,MAXCLQ)
+
+!     RETAIN THE BETTER OF THE TWO ORDERINGS SO FAR.
+      IF (NUMGRP < MAXGRP) THEN
+        MAXGRP = NUMGRP
+        NGRP(1:N) = IWA(1:N)
+
+!       EXIT IF THE INCIDENCE-DEGREE ORDERING IS OPTIMAL.
+        IF (MAXGRP == MINGRP) RETURN
+      END IF
+
+!     COLOR THE INTERSECTION GRAPH OF THE COLUMNS OF A
+!     WITH THE LARGEST-FIRST (LF) ORDERING.
+      CALL NUMSRT(N,N-1,IWA(5*N+1),-1,IWA(4*N+1),IWA(2*N+1),IWA(N+1))
+      CALL SEQ(N,INDROW,JPNTR,INDCOL,IPNTR,IWA(4*N+1),IWA(1),NUMGRP,IWA(N+1))
+
+!     RETAIN THE BEST OF THE THREE ORDERINGS AND EXIT.
+      IF (NUMGRP < MAXGRP) THEN
+        MAXGRP = NUMGRP
+        NGRP(1:N) = IWA(1:N)
+      END IF
+      RETURN
+
+    END SUBROUTINE DVDSM
+!_______________________________________________________________________
+
+      SUBROUTINE DGROUPDS(N,MAXGRPDS,NGRPDS,IGP,JGP)
+! ..
+! Construct the column grouping arrays IGP anf JGP needed by DVJACS28
+! from the DSM array NGRPDS.
+! ..
+!     Input:
+!
+!     N        = the order of the matrix
+!     MAXGRPDS = number of groups (from DSM)
+!     NGRPDS   = DSM output array
+!     Output:
+!     JGP      = array of length N containing the column
+!                indices by groups
+!     IGP      = pointer array of length NGRP + 1 to the
+!                locations in JGP of the beginning of
+!                each group
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: N, MAXGRPDS
+! ..
+! .. Array Arguments ..
+        INTEGER, INTENT (IN) :: NGRPDS(MAXGRPDS)
+        INTEGER, INTENT (OUT) :: IGP(MAXGRPDS+1), JGP(N)
+! ..
+! .. Local Scalars ..
+        INTEGER :: IGRP, INDEX, JCOL
+! ..
+! .. FIRST EXECUTABLE STATEMENT DGROUPDS
+! ..
+        IGP(1) = 1
+        INDEX =  0
+        DO IGRP = 1, MAXGRPDS
+           IGP(IGRP+1) = IGP(IGRP)
+           DO JCOL = 1, N
+              IF (NGRPDS(JCOL) == IGRP) THEN
+                 IGP(IGRP+1) = IGP(IGRP+1) + 1
+                 INDEX = INDEX + 1
+                 JGP(INDEX) = JCOL
+              END IF
+           END DO
+        END DO
+        RETURN
+
+      END SUBROUTINE DGROUPDS
+!_______________________________________________________________________
+
+    SUBROUTINE JACSPDB(FCN,N,T,Y,F,FJAC,NRFJAC,YSCALE,FAC,IOPT, &
+      WK,LWK,IWK,LIWK,MAXGRP,NGRP,JPNTR,INDROW)
+
+! This is a modified version of JACSP which does not require the NGRP,
+! JPNTR and INDROW sparse pointer arrays in the event a dense or a
+! banded matrix is being processed.
+
+! Refer to the documentation for JACSP for a description of the
+! parameters. If the banded option is used, IOPT(5) is used to
+! input the lower bandwidth ML in this version.
+
+     IMPLICIT NONE
+
+! .. Parameters ..
+      INTEGER, PARAMETER :: WP = KIND(0.0D0)
+! ..
+! .. Scalar Arguments ..
+      KPP_REAL :: T
+      INTEGER :: LIWK, LWK, MAXGRP, N, NRFJAC
+! ..
+! .. Array Arguments ..
+      KPP_REAL :: F(N), FAC(N), FJAC(NRFJAC,*), WK(LWK), Y(N), YSCALE(*)
+      INTEGER :: INDROW(*), IOPT(5), IWK(LIWK), JPNTR(*), NGRP(N)
+! ..
+! .. Subroutine Arguments ..
+      EXTERNAL FCN
+! ..
+! .. Local Scalars ..
+      KPP_REAL :: ADIFF, AY, DEL, DELM, DFMJ, DIFF, DMAX, EXPFMN, FACMAX, &
+        FACMIN, FJACL, FMJ, ONE, P125, P25, P75, P875, PERT, RDEL, RMNFDF, &
+        RMXFDF, SDF, SF, SGN, T1, T2, U, U3QRT, U7EGT, UEGT, UMEGT, UQRT,  &
+        USQT, ZERO
+      INTEGER :: IDXL, IDXU, IFLAG1, IFLAG2, IRCMP, IRDEL, IROW, IROWB,    &
+        IROWMX, ITRY, J, JCOL, JFIRST, JINC, JLAST, KT1, KT2, KT3, KT4,    &
+        KT5, L, MBAND, ML, MU, NID1, NID2, NID3, NID4, NID5, NID6,         &
+        NIFAC, NT2, NUMGRP
+!       KT5, L, MBAND, MEB1, ML, MU, NID1, NID2, NID3, NID4, NID5, NID6,   &
+      LOGICAL :: DOTHISBLOCK
+      CHARACTER (80) :: MSG
+! ..
+! .. Intrinsic Functions ..
+!     INTRINSIC ABS, EPSILON, KIND, MAX, MIN, SIGN, SQRT
+      INTRINSIC ABS, EPSILON, MAX, MIN, SIGN, SQRT
+! ..
+! .. Data Statements ..
+      DATA PERT/2.0E+0_dp/, FACMAX/1.E-1_dp/, EXPFMN/.75E+0_dp/
+      DATA ONE/1.0E0_dp/, ZERO/0.0E0_dp/
+      DATA P125/.125E+0_dp/, P25/.25E+0_dp/, P75/.75E+0_dp/, P875/.875E+0_dp/
+      DATA NIFAC/3/, NID1/10/, NID2/20/, NID3/30/, NID4/40/, NID5/50/
+! ..
+!     COMPUTE ALGORITHM AND MACHINE CONSTANTS.
+! ..
+! ..  FIRST EXECUTABLE STATEMENT JACSPDB
+! ..
+      IF (IOPT(1) == 0 .AND. MAXGRP /= N) THEN
+         MSG = 'JACSPDB requires that MAXGRP=N for a dense matrix.'
+         CALL XERRDV(MSG,1800,2,0,0,0,0,ZERO,ZERO)
+      END IF
+
+      IF (IOPT(1) == 1) THEN
+         MBAND = IOPT(2)
+         ML = IOPT(5)
+         MU = MBAND - ML - 1
+!        MEB1 = 2*ML + MU
+      END IF
+
+      U = EPSILON(ONE)
+      USQT = SQRT(U)
+      UEGT = U**P125
+      UMEGT = ONE/UEGT
+      UQRT = U**P25
+      U3QRT = U**P75
+      U7EGT = U**P875
+      FACMIN = U**EXPFMN
+
+      IF (IOPT(4) == 0) THEN
+        IOPT(4) = 1
+        DO 10 J = 1, N
+          FAC(J) = USQT
+10      CONTINUE
+      END IF
+      DO 20 J = 1, 50
+        IWK(J) = 0
+20    CONTINUE
+      KT1 = NID1
+      KT2 = NID2
+      KT3 = NID3
+      KT4 = NID4
+      KT5 = NID5
+      NID6 = LIWK
+      NT2 = 2*N
+
+      DO NUMGRP = 1, MAXGRP
+!       COMPUTE AND SAVE THE INCREMENTS FOR THE COLUMNS IN GROUP NUMGRP.
+        IRCMP = 0
+        ITRY = 0
+        DO 30 J = NID5 + 1, NID6
+          IWK(J) = 0
+30      CONTINUE
+40      CONTINUE
+
+!       Note: For banded in DVJAC:
+!       mba = min(mband,n)
+!          Groups: j=1,...,mba
+!             Columns in group j: jj=j,...,n by mband
+!                Rows in column jj: i1=max(jj-mu,1),...,i2=min(jj+ml,n)       
+
+        IF (IOPT(1) == 0 .OR. IOPT(1) == 2) THEN
+          JFIRST = 1
+          JLAST = N
+          JINC = 1
+        ELSE
+          JFIRST = NUMGRP
+          JLAST = N
+          JINC = MBAND
+        END IF
+        DO JCOL = JFIRST, JLAST, JINC
+          DOTHISBLOCK = .FALSE.
+          IF (IOPT(1) == 2) THEN
+            IF (NGRP(JCOL) == NUMGRP) DOTHISBLOCK = .TRUE.
+          ELSE
+            IF (IOPT(1) == 0) THEN
+              IF (JCOL == NUMGRP) DOTHISBLOCK = .TRUE.
+            ELSE
+              IF (IOPT(1) == 1) THEN
+                DOTHISBLOCK = .TRUE.
+              END IF
+            END IF
+          END IF
+
+          IF (DOTHISBLOCK) THEN
+            WK(N+JCOL) = Y(JCOL)
+!           COMPUTE DEL. IF DEL IS TOO SMALL INCREASE FAC(JCOL) AND RECOMPUTE
+!           DEL. NIFAC ATTEMPTS ARE MADE TO INCREASE FAC(JCOL) AND FIND AN
+!           APPROPRIATE DEL. IF DEL CANT BE FOUND IN THIS MANNER, DEL IS COMPUTED
+!           WITH FAC(JCOL) SET TO THE SQUARE ROOT OF THE MACHINE PRECISION (USQT).
+!           IF DEL IS ZERO TO MACHINE PRECISION BECAUSE Y(JCOL) IS ZERO OR
+!           YSCALE(JCOL) IS ZERO, DEL IS SET TO USQT.
+            SGN = SIGN(ONE,F(JCOL))
+            IRDEL = 0
+            IF (IOPT(3) == 1) THEN
+              AY = ABS(YSCALE(JCOL))
+            ELSE
+              AY = ABS(Y(JCOL))
+            END IF
+            DELM = U7EGT*AY
+
+            DO 50 J = 1, NIFAC
+              DEL = FAC(JCOL)*AY*SGN
+              IF (ABS(DEL) <= ZERO) THEN
+                DEL = USQT*SGN
+                IF (ITRY == 0) IWK(3) = IWK(3) + 1
+              END IF
+              T1 = Y(JCOL) + DEL
+              DEL = T1 - Y(JCOL)
+              IF (ABS(DEL) < DELM) THEN
+                IF (J >= NIFAC) GOTO 50
+                IF (IRDEL == 0) THEN
+                  IRDEL = 1
+                  IWK(1) = IWK(1) + 1
+                END IF
+                T1 = FAC(JCOL)*UMEGT
+                FAC(JCOL) = MIN(T1,FACMAX)
+              ELSE
+                GOTO 60
+              END IF
+50          END DO
+
+            FAC(JCOL) = USQT
+            DEL = USQT*AY*SGN
+            IWK(2) = IWK(2) + 1
+            IF (KT2 < NID3) THEN
+              KT2 = KT2 + 1
+              IWK(KT2) = JCOL
+            END IF
+
+60          CONTINUE
+            WK(NT2+JCOL) = DEL
+            Y(JCOL) = Y(JCOL) + DEL
+          END IF
+        END DO
+
+        IWK(7) = IWK(7) + 1
+        CALL FCN(N,T,Y,WK)
+
+        DO JCOL = JFIRST, JLAST, JINC
+          IF (IOPT(1) == 2) THEN
+             IF (NGRP(JCOL) == NUMGRP) Y(JCOL) = WK(N+JCOL)
+          ELSE
+             IF (IOPT(1) == 0) THEN
+                IF (JCOL == NUMGRP) Y(JCOL) = WK(N+JCOL)
+             ELSE
+                IF (IOPT(1) == 1) Y(JCOL) = WK(N+JCOL) 
+             END IF
+          END IF
+        END DO
+
+!       COMPUTE THE JACOBIAN ENTRIES FOR ALL COLUMNS IN NUMGRP.
+!       STORE ENTRIES ACCORDING TO SELECTED STORAGE FORMAT.
+!       USE LARGEST ELEMENTS IN A COLUMN TO DETERMINE SCALING
+!       INFORMATION FOR ROUNDOFF AND TRUNCATION ERROR TESTS.
+
+        DO JCOL = JFIRST, JLAST, JINC
+          DOTHISBLOCK = .FALSE.
+          IF (IOPT(1) == 2) THEN
+             IF (NGRP(JCOL) == NUMGRP) DOTHISBLOCK = .TRUE.
+          ELSE
+             IF (IOPT(1) == 0) THEN
+                IF (JCOL == NUMGRP) DOTHISBLOCK = .TRUE.
+             ELSE
+                IF(IOPT(1) == 1) DOTHISBLOCK = .TRUE. 
+             END IF
+          END IF
+          IF (DOTHISBLOCK) THEN
+            IF (IOPT(1) == 2) THEN
+              IDXL = JPNTR(JCOL)
+              IDXU = JPNTR(JCOL+1) - 1
+            ELSE
+              IF (IOPT(1) == 0) THEN
+                IDXL = 1
+                IDXU = N
+              ELSE
+                IF (IOPT(1) == 1) THEN
+                  IDXL = MAX(JCOL-MU,1)
+                  IDXU = MIN(JCOL+ML,N)
+                END IF
+              END IF
+            END IF
+            DMAX = ZERO
+            RDEL = ONE/WK(NT2+JCOL)
+            IROWMX = 1
+            DO L = IDXL, IDXU
+              IF (IOPT(1) == 2) THEN
+                 IROW = INDROW(L)
+              ELSE
+                 IF (IOPT(1)==0 .OR. IOPT(1)==1) IROW = L
+              END IF
+              DIFF = WK(IROW) - F(IROW)
+              ADIFF = ABS(DIFF)
+              IF (ADIFF >= DMAX) THEN
+                IROWMX = IROW
+                DMAX = ADIFF
+                SF = F(IROW)
+                SDF = WK(IROW)
+              END IF
+              FJACL = DIFF*RDEL
+              IF (ITRY == 1) WK(IROW) = FJACL
+
+              IF (IOPT(1) == 0) THEN
+                IF (ITRY == 1) WK(IROW+N) = FJAC(IROW,JCOL)
+                FJAC(IROW,JCOL) = FJACL
+              END IF
+              IF (IOPT(1) == 1) THEN
+                IROWB = IROW - JCOL + IOPT(2)
+                IF (ITRY == 1) WK(IROW+N) = FJAC(IROWB,JCOL)
+                FJAC(IROWB,JCOL) = FJACL
+!               IROWB = JCOL * MEB1 - ML + L
+!               IF (ITRY == 1) WK(IROW+N) = FJAC(IROWB,1)
+!               FJAC(IROWB,1) = FJACL
+              END IF
+              IF (IOPT(1) == 2) THEN
+                IF (ITRY == 1) WK(IROW+N) = FJAC(L,1)
+                FJAC(L,1) = FJACL
+              END IF
+            END DO
+
+!           IF A COLUMN IS BEING RECOMPUTED (ITRY=1),THIS SECTION OF THE
+!           CODE PERFORMS AN EXTRAPOLATION TEST TO ENABLE THE CODE TO
+!           COMPUTE SMALL DERIVATIVES MORE ACCURATELY. THIS TEST IS ONLY
+!           PERFORMED ON THOSE COLUMNS WHOSE LARGEST DIFFERENCE IS CLOSE
+!           TO ZERO RELATIVE TO SCALE.
+            IF (ITRY == 1) THEN
+              IFLAG1 = 0
+              IFLAG2 = 0
+              DO 100 J = NID5 + 1, NID6
+                IF (IWK(J) == JCOL) IFLAG1 = 1
+100           CONTINUE
+              IF (IFLAG1 == 1) THEN
+                IFLAG1 = 0
+                T1 = WK(IROWMX+N)
+                T2 = WK(IROWMX)*FAC(JCOL)
+                IF (ABS(T2) < ABS(T1)*PERT) IFLAG2 = 1
+              END IF
+
+              IF (IFLAG2 == 1) THEN
+                IFLAG2 = 0
+                T1 = FAC(JCOL)*FAC(JCOL)
+                FAC(JCOL) = MAX(T1,FACMIN)
+                DO L = IDXL, IDXU
+                  IF (IOPT(1) == 2) THEN
+                     IROW = INDROW(L)
+                  ELSE
+                     IF (IOPT(1)==0 .OR. IOPT(1)==1) IROW = L
+                  END IF
+                  FJACL = WK(IROW+N)
+                  IF (IOPT(1) == 0) FJAC(IROW,JCOL) = FJACL
+                  IF (IOPT(1) == 1) THEN
+                    IROWB = IROW - JCOL + IOPT(2)
+                    FJAC(IROWB,JCOL) = FJACL
+!                   IROWB = JCOL * MEB1 - ML + L
+!                   FJAC(IROWB,1) = FJACL
+                  END IF
+                  IF (IOPT(1) == 2) FJAC(L,1) = FJACL
+              END DO
+              END IF
+            END IF
+
+            FMJ = ABS(SF)
+            DFMJ = ABS(SDF)
+            RMXFDF = MAX(FMJ,DFMJ)
+            RMNFDF = MIN(FMJ,DFMJ)
+
+!           IF SCALE INFORMATION IS NOT AVAILABLE, PERFORM NO ROUNDOFF
+!           OR TRUNCATION ERROR TESTS. IF THE EXTRAPOLATION TEST HAS
+!           CAUSED FAC(JCOL) TO BE RESET TO ITS PREVIOUS VALUE (IAJAC=1)
+!           THEN NO FURTHER ROUNDOFF OR TRUNCATION ERROR TESTS ARE
+!           PERFORMED.
+!           IF (RMNFDF/=ZERO) THEN
+            IF (ABS(RMNFDF) > ZERO) THEN
+!             TEST FOR POSSIBLE ROUNDOFF ERROR (FIRST TEST)
+!             AND ALSO FOR POSSIBLE SERIOUS ROUNDOFF ERROR (SECOND TEST).
+              IF (DMAX <= (U3QRT*RMXFDF)) THEN
+                IF (DMAX <= (U7EGT*RMXFDF)) THEN
+                  IF (ITRY == 0) THEN
+                    T1 = SQRT(FAC(JCOL))
+                    FAC(JCOL) = MIN(T1,FACMAX)
+                    IRCMP = 1
+                    IF (KT5 < NID6) THEN
+                      KT5 = KT5 + 1
+                      IWK(KT5) = JCOL
+                    END IF
+                    IWK(4) = IWK(4) + 1
+                    IF (KT3 < NID4) THEN
+                      KT3 = KT3 + 1
+                      IWK(KT3) = JCOL
+                    END IF
+                  ELSE
+                    IWK(5) = IWK(5) + 1
+                    IF (KT4 < NID5) THEN
+                      KT4 = KT4 + 1
+                      IWK(KT4) = JCOL
+                    END IF
+                  END IF
+                ELSE
+                  T1 = UMEGT*FAC(JCOL)
+                  FAC(JCOL) = MIN(T1,FACMAX)
+                END IF
+              END IF
+!             TEST FOR POSSIBLE TRUNCATION ERROR.
+              IF (DMAX > UQRT*RMXFDF) THEN
+                T1 = FAC(JCOL)*UEGT
+                FAC(JCOL) = MAX(T1,FACMIN)
+                IWK(8) = IWK(8) + 1
+                IF (KT1 < NID2) THEN
+                  KT1 = KT1 + 1
+                  IWK(KT1) = JCOL
+                END IF
+              END IF
+            ELSE
+              IWK(6) = IWK(6) + 1
+            END IF
+          END IF
+        END DO
+
+!       IF SERIOUS ROUNDOFF ERROR IS SUSPECTED, RECOMPUTE ALL
+!       COLUMNS IN GROUP NUMGRP.
+        IF (IRCMP == 1) THEN
+          IRCMP = 0
+          ITRY = 1
+          GOTO 40
+        END IF
+        ITRY = 0
+      END DO
+      RETURN
+
+    END SUBROUTINE JACSPDB
+
+! End of JACSP routines.
+!_______________________________________________________________________
+! *****MA48 build change point. Insert the MA48 Jacobian related
+! routines DVNLSS48, DVSOLS48, DVPREPS48, and DVJACS48 here.
+! filename = jacobian_for_ma48.f90. Insert the following line
+! after the first line of this file:
+! USE hsl_ma48_double
+!_______________________________________________________________________
+
+! *****LAPACK build change point. Insert the following line after the
+! first line of this file:
+! USE lapackd_f90_m
+! Include the module lapackd_f90_m.f90 at the beginning of this file
+! or as an external module.
+!_______________________________________________________________________
+
+!    END MODULE DVODE
+
+
+    END MODULE KPP_ROOT_Integrator
+!_______________________________________________________________________
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/kpp_dvode.f90.save
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/kpp_dvode.f90.save	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/kpp_dvode.f90.save	(revision 2696)
@@ -0,0 +1,19107 @@
+MODULE KPP_ROOT_Integrator
+
+  USE KPP_ROOT_Precision
+  USE KPP_ROOT_Global, ONLY: FIX, RCONST, TIME, ATOL, RTOL
+  USE KPP_ROOT_Parameters, ONLY: NVAR, NSPEC, NFIX, LU_NONZERO
+  USE KPP_ROOT_JacobianSP, ONLY: LU_DIAG
+  USE KPP_ROOT_LinearAlgebra, ONLY: KppDecomp, KppSolve, &
+               Set2zero, WLAMCH
+  
+  IMPLICIT NONE
+  PUBLIC
+  SAVE
+  
+  !~~~>  Statistics on the work performed by the VODE method
+  INTEGER :: Nfun,Njac,Nstp,Nacc,Nrej,Ndec,Nsol,Nsng
+  INTEGER, PARAMETER :: ifun=1, ijac=2, istp=3, iacc=4,  &
+    irej=5, idec=6, isol=7, isng=8, itexit=1, ihexit=2
+ 
+  CHARACTER(LEN=50), PARAMETER, DIMENSION(-8:1) :: IERR_NAMES = (/ &
+    'Matrix is repeatedly singular                     ', & ! -8
+    'Step size too small                               ', & ! -7
+    'No of steps exceeds maximum bound                 ', & ! -6
+    'Improper tolerance values                         ', & ! -5
+    'FacMin/FacMax/FacRej must be positive             ', & ! -4
+    'Hmin/Hmax/Hstart must be positive                 ', & ! -3
+    'Improper value for maximal no of Newton iterations', & ! -2
+    'Improper value for maximal no of steps            ', & ! -1
+    '                                                  ', & !  0 (not used)
+    'Success                                           ' /) !  1
+
+CONTAINS
+
+SUBROUTINE INTEGRATE( TIN, TOUT, &
+  ICNTRL_U, RCNTRL_U, ISTATUS_U, RSTATUS_U, IERR_U )
+
+   USE KPP_ROOT_Parameters
+   USE KPP_ROOT_Global
+   IMPLICIT NONE
+
+   KPP_REAL, INTENT(IN) :: TIN  ! Start Time
+   KPP_REAL, INTENT(IN) :: TOUT ! End Time
+   ! Optional input parameters and statistics
+   INTEGER,  INTENT(IN),  OPTIONAL :: ICNTRL_U(20)
+   KPP_REAL, INTENT(IN),  OPTIONAL :: RCNTRL_U(20)
+   INTEGER,  INTENT(OUT), OPTIONAL :: ISTATUS_U(20)
+   KPP_REAL, INTENT(OUT), OPTIONAL :: RSTATUS_U(20)
+   INTEGER,  INTENT(OUT), OPTIONAL :: IERR_U
+
+   KPP_REAL :: RCNTRL(20), RSTATUS(20)
+   INTEGER       :: ICNTRL(20), ISTATUS(20), IERR
+!!$   INTEGER, SAVE :: Ntotal = 0
+   TYPE(VODE_OPTS) :: OPTIONS
+
+   ICNTRL(:)  = 0
+   RCNTRL(:)  = 0.0_dp
+   ISTATUS(:) = 0
+   RSTATUS(:) = 0.0_dp
+
+   ICNTRL(5) = 2 ! maximal order
+
+   ! If optional parameters are given, and if they are >0, 
+   ! then they overwrite default settings. 
+   IF (PRESENT(ICNTRL_U)) THEN
+     WHERE(ICNTRL_U(:) > 0) ICNTRL(:) = ICNTRL_U(:)
+   END IF
+   IF (PRESENT(RCNTRL_U)) THEN
+     WHERE(RCNTRL_U(:) > 0) RCNTRL(:) = RCNTRL_U(:)
+   END IF
+
+    OPTIONS = SET_OPTS(SPARSE_J=SPARSE,            &
+              ABSERR_VECTOR=ATOL, RELERR=RTOL, MXSTEP=100000,                      &
+              NZSWAG=LU_NONZERO, HMAX=MAXH, LOWER_BANDWIDTH=ML, UPPER_BANDWIDTH=MU,&
+              MA28_ELBOW_ROOM=10, MC19_SCALING=.TRUE., MA28_MESSAGES=.FALSE.,      &
+              MA28_EPS=1.0D-4, MA28_RPS=.TRUE.,                                    &
+              USER_SUPPLIED_SPARSITY=SUPPLY_STRUCTURE)
+
+   ISTATE = 1
+   NG = 0
+   ITASK = 1
+   CALL DVODE_F90(FUN_CHEM,NVAR,VAR,TIN,TOUT,ITASK,ISTATE,OPTIONS,J_FCN=JAC_CHEM)
+
+   STEPMIN = RSTATUS(ihexit) ! Save last step
+   
+   ! if optional parameters are given for output they to return information
+   IF (PRESENT(ISTATUS_U)) ISTATUS_U(:) = ISTATUS(1:20)
+   IF (PRESENT(RSTATUS_U)) RSTATUS_U(:) = RSTATUS(1:20)
+   IF (PRESENT(IERR_U)) THEN
+     IF (IERR==2) THEN ! DLSODE returns "2" after successful completion
+       IERR_U = 1 ! IERR_U will return "1" for successful completion
+     ELSE
+       IERR_U = IERR
+     ENDIF
+   ENDIF
+
+   END SUBROUTINE INTEGRATE
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE FUN_CHEM(N, T, V, FCT)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      USE KPP_ROOT_Parameters
+      USE KPP_ROOT_Global
+      USE KPP_ROOT_Function, ONLY: Fun
+      USE KPP_ROOT_Rates
+
+      IMPLICIT NONE
+
+      INTEGER :: N
+      KPP_REAL :: V(NVAR), FCT(NVAR), T
+      
+!      TOLD = TIME
+!      TIME = T
+!      CALL Update_SUN()
+!      CALL Update_RCONST()
+!      CALL Update_PHOTO()
+!      TIME = TOLD
+
+      CALL Fun(V, FIX, RCONST, FCT)
+      
+      !Nfun=Nfun+1
+
+      END SUBROUTINE FUN_CHEM
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE JAC_CHEM (N,T,V,IA,JA,NNZ,JF)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      USE KPP_ROOT_Parameters
+      USE KPP_ROOT_Global
+      USE KPP_ROOT_JacobianSP
+      USE KPP_ROOT_Jacobian, ONLY: Jac_SP
+      USE KPP_ROOT_Rates
+
+      IMPLICIT NONE
+
+      KPP_REAL :: V(NVAR), T
+      INTEGER, INTENT(IN)  :: N
+      INTEGER, INTENT(OUT) :: NNZ
+#ifdef FULL_ALGEBRA    
+      INTEGER :: I, J
+      KPP_REAL :: JV(LU_NONZERO), JF(NVAR,NVAR)
+#else
+      KPP_REAL :: JF(LU_NONZERO)
+      INTEGER  :: IA(LU_NONZERO), JA(LU_NONZERO)
+#endif   
+  
+!      TOLD = TIME
+!      TIME = T
+!      CALL Update_SUN()
+!      CALL Update_RCONST()
+!      CALL Update_PHOTO()
+!      TIME = TOLD
+    
+#ifdef FULL_ALGEBRA    
+      CALL Jac_SP(V, FIX, RCONST, JV)
+      DO j=1,NVAR
+      DO i=1,NVAR
+         JF(i,j) = 0.0d0
+      END DO
+      END DO
+      DO i=1,LU_NONZERO
+         JF(LU_IROW(i),LU_ICOL(i)) = JV(i)
+      END DO
+#else
+      CALL Jac_SP(V, FIX, RCONST, JF) 
+      NNZ = LU_NONZERO
+      IA = LU_IROW
+      JA = LU_ICOL
+#endif   
+      !Njac=Njac+1
+   
+   END SUBROUTINE JAC_CHEM (N,T,V,IA,JA,NNZ,JF)
+
+   MODULE DVODE
+
+! This version is the December 2005 release.
+! Last change: 01/01/08
+! _____________________________________________________________________
+! Working Precision
+!  IMPLICIT NONE
+! Define the working precision for DVODE_F90. Change D0 to E0 in the
+! next statement to convert to single precision.
+!  INTEGER, PARAMETER, PRIVATE :: WP = KIND(1.0D0)
+! ______________________________________________________________________
+! Overview
+
+! The f77 ordinary differential equation solver VODE.f is applicable to
+! nonstiff systems of odes and to stiff systems having dense or banded
+! Jacobians. DVODE_F90 is a Fortran 90 extension of VODE.f. While
+! retaining all of the features available in VODE.f, we have
+! incorporated several new options in DVODE_F90 including:
+!   1. the ability to solve stiff systems with sparse Jacobians
+!   2. internal management of storage and work arrays
+!   3. specification of options via optional keywords
+!   4. the ability to perform root finding or "event detection"
+!   5. various new diagnostic and warning messages
+!   6. the ability to impose solution bounds
+!   7. several specialized options for dealing with sparsity
+! ______________________________________________________________________
+! Version Information
+
+! This is DVODE_F90, the double precision FORTRAN 90 extension of the
+! f77 DVODE.f ordinary differential equation solver. This version uses
+! MA28 for sparse Jacobians. This file and related information can be
+! obtained at the following support page:
+!
+!     http://www.radford.edu/~thompson/vodef90web/
+!
+! We are indebted to Richard Cox (ORNL) for providing us with his
+! implementation of MA28 in LSOD28.f (a variant of Alan Hindmarsh's
+! lsodes.f). We are indebted to Alan Hindmarsh for numerous contributions.
+! In particular, we borrowed liberally from the f77 solvers VODE.f,
+! LSODAR.f, and LSODES.f while developing DVODE_F90. We are indebted
+! to Doug Salane for providing us with his JACSP Jacobian routines.
+!
+! If you find a bug or encounter a problem with DVODE_F90, please
+! contact one of us:
+!    G.D. Byrne (gbyrne@wi.rr.com)
+!    S. Thompson (thompson@radford.edu)
+! A set of quick start instructions is provided below.
+! ______________________________________________________________________
+! Note on F90/F95 Compilers
+
+! To date we have used DVODE_F90 successfully with all F90/F95 compilers
+! to which we have access. In particular, we have used it with the Lahey
+! F90 and Lahey-Fujitsu F95 compilers, the Compaq Visual F90 compiler,
+! the g90 compiler, and the INTEL, Portland, Salford, and SUN compilers.
+! It should be noted that compilers such as Salford's FTN95 complain
+! about uninitialized arrays passed as subroutine arguments and the use of
+! slices of two dimensional arrays as one dimensional vectors, and will
+! not run using the strictest compiler options. It is perfectly safe to
+! use the /-CHECK compiler option to avoid these FTN95 runtime checks.
+! DVODE_F90 does not use any variable for numerical purposes until it
+! has been assigned an appropriate value.
+! ______________________________________________________________________
+! Quick Start Instructions
+
+! (1) Compile this file. Then compile, link, and execute the program
+!     example1.f90. The output is written to the file example1.dat.
+!     Verify that the last line of the output is the string
+!     'No errors occurred.'
+! (2) Repeat this process for the program example2.f90.
+!
+! Other test programs you may wish to run to verify your installation
+! of DVODE_F90 are:
+!
+! (3) Run the test programs nonstiffoptions.f90 and stiffoptions.f90
+!     and verify that the last line in the output files produced is
+!     'No errors occurred.' They solve the problems in the Toronto
+!     test suites using several different error tolerances and various
+!     solution options. Note that stiffoptions.f90 takes several
+!     minutes to run because it performs several thousand separate
+!     integrations.
+! (4) Locate the file robertson.f90 in the demo programs and look at
+!     how options are set using SET_OPTS, how DVODE_F90 is called to
+!     obtain the solution at desired output times, and how the
+!     derivative and Jacobian routines are supplied. Note too the
+!     manner in which the solution is constrained to be nonnegative.
+! (5) Locate demoharmonic.f90 and look at how root finding options
+!     are set and how the event residual routine is supplied to
+!     DVODE_F90.
+! (6) The other demo programs available from the DVODE_F90 support
+!     page illustrate various other solution options available in
+!     DVODE_F90. The demo programs may be obtained from
+!
+!        http://www.radford.edu/~thompson/vodef90web/index.html
+! ______________________________________________________________________
+! DVODE_F90 Full Documentation Prologue
+
+! Section 1.  Setting Options in DVODE_F90
+! Section 2.  Calling DVODE_F90
+! Section 3.  Choosing Error Tolerances
+! Section 4.  Choosing the Method of Integration
+! Section 5.  Interpolation of the Solution and Derivatives
+! Section 6.  Handling Events (Root Finding)
+! Section 7.  Gathering Integration Statistics
+! Section 8.  Determining Jacobian Sparsity Structure Arrays
+! Section 9.  Original DVODE Documentation Prologue
+! Section 10. Example Usage
+
+! Note: Search on the string 'Section' to locate these sections. You
+! may wish to refer to the support page which has the sections broken
+! into smaller pieces.
+! ______________________________________________________________________
+! Section 1.  Setting Options in DVODE_F90
+!
+! You can use any of three options routines:
+!
+! SET_NORMAL_OPTS
+! SET_INTERMEDIATE_OPTS
+! SET_OPTS
+
+! OPTIONS = SET_NORMAL_OPTS(DENSE_J, BANDED_J, SPARSE_J,               &
+!   USER_SUPPLIED_JACOBIAN, LOWER_BANDWIDTH, UPPER_BANDWIDTH,          &
+!   RELERR, ABSERR, ABSERR_VECTOR, NEVENTS)
+
+! OPTIONS = SET_INTERMEDIATE_OPTS(DENSE_J, BANDED_J, SPARSE_J,         &
+!   USER_SUPPLIED_JACOBIAN,LOWER_BANDWIDTH, UPPER_BANDWIDTH,           &
+!   RELERR, ABSERR, ABSERR_VECTOR,TCRIT, H0, HMAX, HMIN, MAXORD,       &
+!   MXSTEP, MXHNIL, NZSWAG, USER_SUPPLIED_SPARSITY, MA28_RPS,          &
+!   NEVENTS, CONSTRAINED, CLOWER, CUPPER, CHANGE_ONLY_f77_OPTIONS)     &
+
+! OPTIONS = SET_OPTS(METHOD_FLAG, DENSE_J, BANDED_J, SPARSE_J,         &
+!   USER_SUPPLIED_JACOBIAN, SAVE_JACOBIAN, CONSTANT_JACOBIAN,          &
+!   LOWER_BANDWIDTH, UPPER_BANDWIDTH, SUB_DIAGONALS, SUP_DIAGONALS,    &
+!   RELERR, RELERR_VECTOR, ABSERR, ABSERR_VECTOR, TCRIT, H0, HMAX,     &
+!   HMIN, MAXORD, MXSTEP, MXHNIL, YMAGWARN, SETH, UPIVOT, NZSWAG,      &
+!   USER_SUPPLIED_SPARSITY, NEVENTS, CONSTRAINED, CLOWER, CUPPER,      &
+!   MA28_ELBOW_ROOM, MC19_SCALING, MA28_MESSAGES, MA28_EPS,            &
+!   MA28_RPS, CHANGE_ONLY_f77_OPTIONS, JACOBIAN_BY_JACSP)
+
+! Please refer to the documentation prologue for each of these functions
+! to see what options may be used with each. Note that input to each is
+! via keyword and all variables except error tolerances are optional.
+! Defaults are used for unspecified options. If an option is available
+! in SET_NORMAL OPTS, it is available and has the same meaning in
+! SET_INTERMEDIATE_OPTS and SET_OPTS. Similarly, if an option is available
+! in SET_INTERMEDIATE_OPTS, it is available and has the same meaning in
+! SET_OPTS.
+
+! The first two functions are provided merely for convenience.
+! SET_NORMAL_OPTS is available simply to relieve you of reading the
+! documentation for SET_OPTS and to use default values for all but
+! the most common options. SET_INTERMEDIATE_OPTS is available to allow
+! you more control of the integration while still using default values
+! for less commonly used options. SET_OPTS allows you to specify any
+! of the options available in DVODE_F90.
+
+! Roughly, SET_NORMAL_OPTS is intended to provide for dense, banded,
+! and numerical sparse Jacobians without the need to specify other
+! specialized options. SET_INTERMEDIATE_OPTIONS is intended to allow
+! more general sparse Jacobian options. SET_OPTS is intended to provide
+
+! access to all options in DVODE_F90.
+
+! Please note that SET_INTERMEDIATE_OPTS can be invoked using the same
+! arguments as SET_NORMAL_OPTS; and SET_OPTS can be invoked using the
+! same arguments as either SET_NORMAL_OPTS or SET_INTERMEDIATE_OPTS.
+! If you wish you can simply delete SET_NORMAL_OPTS as well as
+! SET_INTERMEDIATE_OPTS and use only SET_OPTS for all problems. If you
+! do so, you need only include the options that you wish to use when
+! you invoke SET_OPTIONS.
+
+! In the following description any reference to SET_OPTS applies equally
+! to SET_NORMAL_OPTS and SET_INTERMEDIATE OPTS.
+
+! Before calling DVODE_F90 for the first time, SET_OPTS must be invoked.
+! Typically, SET_OPTS is called once to set the desired integration
+! options and parameters. DVODE_F90 is then called in an output loop to
+! obtain the solution for the desired times. A detailed description of
+! the DVODE_F90 arguments is given in a section below. Detailed descriptions
+! of the options available via SET_OPTS are given in the documentation prologue.
+! Although each option available in the f77 version of DVODE as well as
+! several additional ones are available in DVODE_F90 via SET_OPTS,
+! several of the available options are not relevant for most problems
+! and need not be specified. Refer to the accompanying demonstration
+! programs for specific examples of each usage. Note that after any call
+! to DVODE_F90, you may call GET_STATS to gather relevant integration
+! statistics. After your problem has completed, you may call
+! RELEASE_ARRAYS to deallocate any internal arrays allocated by
+! DVODE_F90 and to determine how much storage was used by DVODE_F90.
+!
+! To communicate with DVODE_F90 you will need to include the following
+! statement in your calling program:
+!    USE DVODE_F90_M
+! and include the following statement in your type declarations section:
+!    TYPE(VODE_OPTS) :: OPTIONS
+! Below are brief summaries of typical uses of SET_OPTS.
+! Nonstiff Problems:
+! OPTIONS = SET_OPTS(RELERR=RTOL,ABSERR=ATOL)
+!    The above use of SET_OPTS will integrate your system of odes
+!    using the nonstiff Adams methods while using a relative error
+!    tolerance of RTOL and an absolute error tolerance of ATOL.
+!    Your subsequent call to DVODE_F90 might look like:
+!    CALL DVODE_F90(F,NEQ,Y,T,TOUT,ITASK,ISTATE,OPTIONS)
+! OPTIONS = SET_OPTS(RELERR=RTOL,ABSERR=ATOL,NEVENTS=NG)
+!    If you wish to do root finding, SET_OPTS can be used as above.
+!    Here, NEVENTS is the desired number of root finding functions.
+!    Your subsequent call to DVODE_F90 might look like:
+!    CALL DVODE_F90(F,NEQ,Y,T,TOUT,ITASK,ISTATE,OPTIONS,G_FCN=G)
+!    Here F is the name of your derivative subroutine and G is the
+!    name of your subroutine to evaluate residuals of the root
+!    finding functions.
+! OPTIONS = SET_OPTS(RELERR=RTOL,ABSERR_VECTOR=ATOL)
+!    This use of SET_OPTS indicates that a scalar relative error
+!    tolerance and a vector of absolute error tolerances will be
+!    used.
+! Stiff Problems, internally generated dense Jacobian:
+! OPTIONS = SET_OPTS(DENSE_J=.TRUE.,RELERR=RTOL,ABSERR=ATOL)
+!    This use of DENSE_J=.TRUE. indicates that DVODE_F90 will
+!    use the stiffly stable BDF methods and will approximate
+!    the Jacobian, considered to be a dense matrix, using
+!    finite differences. Your subsequent call to DVODE_F90
+!    might look like:
+!    CALL DVODE_F90(F,NEQ,Y,T,TOUT,ITASK,ISTATE,OPTIONS)
+! OPTIONS = SET_OPTS(DENSE_J=.TRUE.,ABSERR=ATOL,RELERR=RTOL, &
+!                    USER_SUPPLIED_JACOBIAN=.TRUE.)
+!    If you know the Jacobian and wish to supply subroutine JAC
+!    as described in the documentation for DVODE_F90, the options
+!    call could look like the above.
+!    Your subsequent call to DVODE_F90 might look like:
+!    CALL DVODE_F90(F1,NEQ,Y,T,TOUT,ITASK,ISTATE,OPTIONS,J_FCN=JAC)
+!    Here, JAC is the name of the subroutine that you provide to
+!    evaluate the known Jacobian.
+! Stiff Problems, internally generated banded Jacobian:
+! OPTIONS = SET_OPTS(BANDED_J=.TRUE.,RELERR=RTOL,ABSERR=ATOL, &
+!                       LOWER_BANDWIDTH=ML,UPPER_BANDWIDTH=MU)
+!    This use of BANDED_J=.TRUE. indicates that DVODE_F90 will
+!    use the stiffly stable BDF methods and will approximate the
+!    Jacobian, considered to be a banded matrix, using finite
+!    differences. Here ML is the lower bandwidth of the Jacobian
+!    and ML is the upper bandwidth of the Jacobian.
+! Stiff Problems, internally generated sparse Jacobian:
+! OPTIONS = SET_OPTS(SPARSE_J=.TRUE.,ABSERR=ATOL,RELERR=RTOL)
+!    This use of SET_OPTS indicates that the Jacobian is a sparse
+!    matrix. Its structure will be approximated internally by
+!    making calls to your derivative routine. If you know the
+!    structure before hand, you may provide it directly in a
+!    variety of ways as described in the documentation prologue
+!    for SET_OPTS. In addition, several other options related
+!    to sparsity are available.
+! More complicated common usage:
+!    Suppose you need to solve a stiff problem with a sparse Jacobian.
+!    After some time, the structure of the Jacobian changes and you
+!    wish to have DVODE_F90 recalculate the structure before continuing
+!    the integration. Suppose that initially you want to use an absolute
+!    error tolerance of 1.0D-5 and that when the Jacobian structure is
+!    changed you wish to reduce the error tolerance 1.0D-7. Your calls
+!    might look like this.
+!    RTOL = ...
+!    ATOL = 1.0D-5
+!    OPTIONS = SET_OPTS(SPARSE_J=.TRUE.,ABSERR=ATOL,RELERR=RTOL)
+!    Output loop:
+!       CALL DVODE_F90(FCN,NEQ,Y,T,TOUT,ITASK,ISTATE,OPTIONS)
+!       At desired time:
+!       ISTATE = 3
+!       ATOL = 1.0D-7
+!       OPTIONS = SET_OPTS(SPARSE_J=.TRUE.,ABSERR=ATOL,RELERR=RTOL)
+!    End of output loop
+
+! In the following we have summarized and described how some of the demonstration
+! programs set options and call DVODE_F90. In each case the necessary parameters
+! are defined before invoking SET_OPTS. The call to DVODE_F90 is in a loop in
+! which the output time is successively updated. The actual programs are available
+! from the web support page
+!
+!    http://www.radford. edu/~thompson/vodef90web/index.html/
+!
+!                              Problem Summary
+!
+! Problem                  NEQ      Jacobian            Features Illustrated
+!
+! Prologue Example 1        3        Dense               Basic
+!
+! Prologue Example 2        3        Dense               Root finding
+!
+! Robertson                 3        Dense               Solution bounds
+!
+! Harmonic Oscillator       4        Nonstiff            Root finding
+!
+! Flow Equations         5-1800      Sparse              Automatic determination
+!                                                        of sparsity arrays
+!
+! Diurnal Kinetics      50-5000      Sparse or banded    Sparsity options
+!
+!                       Options Used and DVODE_F90 Call
+!
+! Prologue Example 1
+!
+!    OPTIONS = SET_NORMAL_OPTS(DENSE_J=.TRUE., ABSERR_VECTOR=ATOL, RELERR=RTOL,     &
+!              USER_SUPPLIED_JACOBIAN=.TRUE.)
+!    CALL DVODE_F90(FEX,NEQ,Y,T,TOUT,ITASK,ISTATE,OPTIONS,J_FCN=JEX)
+!
+!    The problem consists of a stiff system of NEQ=3 equations. The dense
+!    Jacobian option (DENSE_J) is used. A vector ATOL(*) of error tolerances
+!    is used. A scalar relative error tolerance RTOL is used. Subroutine JEX
+!    is provided to evaluate the analytical Jacobian. If the last argument
+!    J_FCN=JEX is omitted (as in Example 2), a numerical Jacobian will
+!    be used.
+!
+! Prologue Example 2
+!
+!    OPTIONS = SET_NORMAL_OPTS(DENSE_J=.TRUE., RELERR=RTOL, ABSERR_VECTOR=ATOL,     &
+!              NEVENTS=NG)
+!    CALL DVODE_F90(FEX,NEQ,Y,T,TOUT,ITASK,ISTATE,OPTIONS,G_FCN=GEX)
+!
+!    The system in Example 1 is used to illustrate root finding. It is
+!    desired to locate the times at which two of the solution components
+!    attain prescribed values. NEVENTS=2 informs the solver that two such
+!    functions are used. Subroutine GEX is used to calculate the residuals
+!    for these two functions. A dense numerical Jacobian is used.
+!
+! Robertson Problem
+!
+!    OPTIONS = SET_INTERMEDIATE_OPTS(DENSE_J=.TRUE., RELERR_VECTOR=RTOL,            &
+!              ABSERR_VECTOR=ABSERR_TOLERANCES, CONSTRAINED=BOUNDED_COMPONENTS,     &
+!              CLOWER=LOWER_BOUNDS, CUPPER=UPPER_BOUNDS)
+!
+!    CALL DVODE_F90(DERIVS,NEQ,Y,T,TOUT,ITASK,ISTATE,OPTIONS,J_FCN=JACD)
+!    The system used in Examples 1 and 2 is solved over a much larger
+!    time interval. The solution is constrained to be nonegative. This
+!    is done by prescribing the components to be constrained (BOUNDED_COMPONENTS).
+!    Artificially large values are used to impose upper bounds (UPPER_BOUNDS)
+!    and lower bounds of zero are used to force a nonnegative solution.
+!
+! Harmonic Oscillator Problem
+!
+!    OPTIONS = SET_NORMAL_OPTS(RELERR=RTOL, ABSERR=ATOL, NEVENTS=NG)
+!    CALL DVODE_F90(DERIVS,NEQ,Y,T,TOUT,ITASK,ISTATE,OPTIONS,G_FCN=GEVENTS)
+!
+!    A nonstiff system of NEQ=4 equations is solved. The nonstiff option is
+!    used because neither DENSE_ nor BANDED_J nor SPARSE_J is present. It is
+!    desired to find the times at which Y(2) or Y(3) is equal to 0. Residuals
+!    for the two corresponding event functions are calculated in subroutine
+!    GEVENTS.
+!
+! Flow Equations Problem
+!
+!    OPTIONS = SET_OPTS(SPARSE_J=SPARSE, ABSERR=ATOL(1), RELERR=RTOL(1),            &
+!              MXSTEP=100000, NZSWAG=20000)
+!    CALL DVODE_F90(FCN,NEQ,Y,T,TOUT,ITASK,ISTATE,OPTIONS)
+!
+!    This is a stiff system of equations resulting a method of lines
+!    discretization. The Jacobian is sparse. Scalar absolute and relative
+!    error tolerances are used. The Jacobian structure and a numerical
+!    Jacobian are used. The solver is limited to a maximum of MXSTEP steps.
+!    NZSWAG is the amount by which allocated array sizes will be increased.
+!    The accompanying test program may be used to illutrate several other
+!    solution options.
+!
+! Diurnal Kinetics Problem
+!
+!    OPTIONS = SET_OPTS(SPARSE_J=SPARSE, BANDED_J=BANDED, DENSE_J=DENSE,            &
+!              ABSERR_VECTOR=ATOL(1:NEQ), RELERR=RTOL(1), MXSTEP=100000,            &
+!              NZSWAG=50000, HMAX=MAXH, LOWER_BANDWIDTH=ML, UPPER_BANDWIDTH=MU,     &
+!              MA28_ELBOW_ROOM=10, MC19_SCALING=.TRUE., MA28_MESSAGES=.FALSE.,      &
+!              MA28_EPS=1.0D-4, MA28_RPS=.TRUE.,                                    &
+!              USER_SUPPLIED_SPARSITY=SUPPLY_STRUCTURE)
+!   CALL USERSETS_IAJA(IA, IADIM, JA, JADIM)
+!   CALL DVODE_F90(FCN, NEQ, Y, T, TOUT, ITASK, ISTATE, OPTIONS)
+!
+!   This problem can be used to illustrate most solution options. Here, dense,
+!   banded, or sparse Jacobians are used depending on the values of the first
+!   three parameters. A vector error tolerance is used and a scalar relative
+!   error tolerance is used. If a banded solution is desired, it is necessary
+!   to supply the bandwidths ML and MU. If a sparse solution is desired,
+!   several special options are used. The most important one is MA28_RPS to
+!   force the solver to update the partial pivoting sequence when singular
+!   iteration matrices are encountered. The sparsity pattern is determined
+!   numerically if SUPPLY_STRUCTURE is FALSE. Otherwise the user will supply
+!   the pattern by calling subroutine USERSETS_IAJA.
+! ______________________________________________________________________
+! Section 2.  Calling DVODE_F90
+!
+! DVODE_F90 solves the initial value problem for stiff or nonstiff
+! systems of first order ODEs,
+!     dy/dt = f(t,y), or, in component form,
+!     dy(i)/dt = f(i) = f(i,t,y(1),y(2),...,y(NEQ)) (i = 1,...,NEQ).
+! DVODE_F90 is a package based on the EPISODE and EPISODEB packages,
+! and on the ODEPACK user interface standard. It was developed from
+! the f77 solver DVODE developed by Brown, Byrne, and Hindmarsh.
+! DVODE_F90 also provides for the solution of sparse systems in a
+! fashion similar to LSODES and LSOD28. Currently, MA28 is used
+! to perform the necessary sparse linear algebra. DVODE_F90 also
+! contains the provision to do root finding in a fashion similar
+! to the LSODAR solver from ODEPACK.
+
+! Communication between the user and the DVODE_F90 package, for normal
+! situations, is summarized here. This summary describes only a subset
+! of the full set of options available. See the full description for
+! details, including optional communication, nonstandard options, and
+! instructions for special situations.
+!    CALL DVODE_F90(F,NEQ,Y,T,TOUT,ITASK,ISTATE,OPTIONS,J_FCN=JAC,G_FCN=GEX)
+!    The arguments in the call list to DVODE_F90 have the following
+!    meanings.
+! F       = The name of the user-supplied subroutine defining the
+!           ODE system. The system must be put in the first-order
+!           form dy/dt = f(t,y), where f is a vector-valued function
+!           of the scalar t and the vector y. Subroutine F is to
+!           compute the function f. It is to have the form
+!                SUBROUTINE F(NEQ,T,Y,YDOT)
+!                DOUBLE PRECISION T,Y(NEQ),YDOT(NEQ)
+!           where NEQ, T, and Y are input, and the array YDOT = f(t,y)
+!           is output. Y and YDOT are arrays of length NEQ.
+!           Subroutine F should not alter Y(1),...,Y(NEQ).
+!           If F (and JAC) are not contained in a module available to
+!           your calling program, you must declare F to be EXTERNAL
+!           in the calling program.
+! NEQ     = The size of the ODE system (number of first order
+!           ordinary differential equations).
+! Y       = A double precision array for the vector of dependent variables,
+!           of length NEQ or more. Used for both input and output on the
+!           first call (ISTATE = 1), and only for output on other calls.
+!           On the first call, Y must contain the vector of initial
+!           values. In the output, Y contains the computed solution
+!           evaluated at T.
+! T       = The independent variable. In the input, T is used only on
+!           the first call, as the initial point of the integration.
+!           In the output, after each call, T is the value at which a
+!           computed solution Y is evaluated (usually the same as TOUT).
+!           On an error return, T is the farthest point reached.
+! TOUT    = The next value of t at which a computed solution is desired.
+!           TOUT is Used only for input. When starting the problem
+!           (ISTATE = 1), TOUT may be equal to T for one call, then
+!           should not equal T for the next call. For the initial T,
+!           an input value of TOUT unequal to T is used in order to
+!           determine the direction of the integration (i.e. the
+!           algebraic sign of the step sizes) and the rough scale
+!           of the problem. Integration in either direction (forward
+!           or backward in t) is permitted. If ITASK = 2 or 5 (one-step
+!           modes), TOUT is ignored after the first call (i.e. the
+!           first call with TOUT \= T). Otherwise, TOUT is required
+!           on every call. If ITASK = 1, 3, or 4, the values of TOUT
+!           need not be monotone, but a value of TOUT which backs up
+!           is limited to the current internal t interval, whose
+!           endpoints are TCUR - HU and TCUR. (Refer to the description
+!           of GET_STATS for a description of TCUR and HU.)
+! ITASK   = An index specifying the task to be performed.
+!           Input only. ITASK has the following values and meanings.
+!           1  means normal computation of output values of y(t) at
+!              t = TOUT (by overshooting and interpolating).
+!           2  means take one step only and return.
+!           3  means stop at the first internal mesh point at or
+!              beyond t = TOUT and return.
+!           4  means normal computation of output values of y(t) at
+!              t = TOUT but without overshooting t = TCRIT.
+!              TCRIT must be specified in your SET_OPTS call. TCRIT
+!              may be equal to or beyond TOUT, but not behind it in
+!              the direction of integration. This option is useful
+!              if the problem has a singularity at or beyond t = TCRIT.
+!           5  means take one step, without passing TCRIT, and return.
+!              TCRIT must be specified in your SET_OPTS call.
+!           If ITASK = 4 or 5 and the solver reaches TCRIT (within
+!           roundoff), it will return T = TCRIT(exactly) to indicate
+!           this (unless ITASK = 4 and TOUT comes before TCRIT, in
+!           which case answers at T = TOUT are returned first).
+! ISTATE  = an index used for input and output to specify the
+!           the state of the calculation.
+!           In the input, the values of ISTATE are as follows.
+!           1  means this is the first call for the problem
+!              (initializations will be done). See note below.
+!           2  means this is not the first call, and the calculation
+!              is to continue normally, with no change in any input
+!              parameters except possibly TOUT and ITASK.
+!           3  means this is not the first call, and the
+!              calculation is to continue normally, but with
+!              a change in input parameters other than
+!              TOUT and ITASK. Desired changes require SET_OPTS
+!              be called prior to calling DVODE_F90 again.
+!           A preliminary call with TOUT = T is not counted as a
+!           first call here, as no initialization or checking of
+!           input is done. (Such a call is sometimes useful to
+!           include the initial conditions in the output.)
+!           Thus the first call for which TOUT is unequal to T
+!           requires ISTATE = 1 in the input.
+!           In the output, ISTATE has the following values and meanings.
+!            1  means nothing was done, as TOUT was equal to T with
+!               ISTATE = 1 in the input.
+!            2  means the integration was performed successfully.
+!            3  means a root of one of your root finding functions
+!               has been located.
+!           A negative value of ISTATE indicates that DVODE_F90
+!           encountered an error as described in the printed error
+!           message. Since the normal output value of ISTATE is 2,
+!           it does not need to be reset for normal continuation.
+!           Also, since a negative input value of ISTATE will be
+!           regarded as illegal, a negative output value requires
+!           the user to change it, and possibly other input, before
+!           calling the solver again.
+! OPTIONS = The options structure produced by your call to SET_OPTS.
+! JAC     = The name of the user-supplied routine (MITER = 1 or 4 or 6)
+!           If you do not specify that a stiff method is to be used
+!           in your call to SET_OPTS, you need not include JAC in
+!           your call to DVODE_F90. If you specify a stiff method and
+!           that a user supplied Jacobian will be supplied, JAC must
+!           compute the Jacobian matrix, df/dy, as a function of the
+!           scalar t and the vector y. It is to have the form:
+!              SUBROUTINE JAC(NEQ, T, Y, ML, MU, PD, NROWPD)
+!              DOUBLE PRECISION T, Y(NEQ), PD(NROWPD,NEQ)
+!           where NEQ, T, Y, ML, MU, and NROWPD are input and the array
+!           PD is to be loaded with partial derivatives (elements of the
+!           Jacobian matrix) in the output. PD must be given a first
+!           dimension of NROWPD. T and Y have the same meaning as in
+!           Subroutine F.
+!           In the full matrix case (MITER = 1), ML and MU are
+!           ignored, and the Jacobian is to be loaded into PD in
+!           columnwise manner, with df(i)/dy(j) loaded into PD(i,j).
+!           In the band matrix case (MITER = 4), the elements
+!           within the band are to be loaded into PD in columnwise
+!           manner, with diagonal lines of df/dy loaded into the rows
+!           of PD. Thus df(i)/dy(j) is to be loaded into PD(i-j+MU+1,j).
+!           ML and MU are the half-bandwidth parameters. (See IUSER).
+!           The locations in PD in the two triangular areas which
+!           correspond to nonexistent matrix elements can be ignored
+!           or loaded arbitrarily, as they are overwritten by DVODE_F90.
+!           In the sparse matrix case the elements of the matrix
+!           are determined by the sparsity structure given by the
+!           IA and JA pointer arrays. Refer to the documentation
+!           prologue for SET_OPTS for a description of the arguments
+!           for JAC since they differ from the dense and banded cases.
+!           JAC need not provide df/dy exactly. A crude
+!           approximation (possibly with a smaller bandwidth) will do.
+!           In either case, PD is preset to zero by the solver,
+!           so that only the nonzero elements need be loaded by JAC.
+!           In the sparse matrix case, JAC has a different form:
+!                SUBROUTINE JAC (N, T, Y, IA, JA, NZ, PD)
+!           Given the number of odes N, the current time T, and the
+!           current solution vector Y, JAC must do the following:
+!              If NZ = 0 on input:
+!              Replace NZ by the number of nonzero elements in the
+!              Jacobian. The diagonal of the Jacobian must be included.
+!              Do NOT define the arrays IA, JA, PD at this time.
+!              Once JAC has been called with NZ = 0 and you have
+!              defined the value of NZ, future calls to JAC will use
+!              this value of NZ.
+!              When a call is made with NZ unequal to 0, you must
+!              define the sparsity structure arrays IA and JA, and
+!              the sparse Jacobian PD.
+!                 IA defines the number of nonzeros including the
+!                 diagonal in each column of the Jacobian. Define
+!                 IA(1) = 1 and for J = 1,..., N,
+!                 IA(J+1) = IA(J) + number of nonzeros in column J.
+!                 Diagonal elements must be included even if they are
+!                 zero. You should check to ensure that IA(N+1)-1 = NZ.
+!                 JA defines the rows in which the nonzeros occur.
+!                 For I = 1,...,NZ, JA(I) is the row in which the Ith
+!                 element of the Jacobian occurs. JA must also include
+!                 the diagonal elements of the Jacobian.
+!                 PD defines the numerical value of the Jacobian
+!                 elements. For I = 1,...,NZ, PD(I) is the numerical
+!                 value of the Ith element in the Jacobian. PD must
+!                 also include the diagonal elements of the Jacobian.
+! GFUN    = the name of the subroutine to evaluate the residuals for
+!           event functions. If you do not specify that events are
+!           present (by specifying NEVENTS > 0 in SET_OPTS), you
+!           need not include GFUN in your call list for DVODE_F90.
+!           If GFUN is not contained in a module available to your
+!           calling program, you must declare GFUN to be EXTERNAL
+!           in your calling program.
+! To continue the integration after a successful return, simply
+! reset TOUT and call DVODE_F90 again. No other parameters need
+! be reset unless ISTATE=3 in which case, reset it to 2 before
+! calling DVODE_F90 again.
+! ______________________________________________________________________
+! Section 3.  Choosing Error Tolerances
+!
+! This is the most important aspect of solving odes numerically.
+! You may supply any of four keywords and values. If you wish to
+! use scalar error tolerances, you should supply ABSERR and RELERR.
+! For a good many problems, it is advisable to supply a vector of
+! absolute error tolerances ABSERR_VECTOR = desired vector. This
+! allows you to use different tolerances for each component of
+! the solution. If ABSERR_VECTOR is supplied, it must be a vector
+! of length NEQ where NEQ is the number of odes in your system.
+! Similarly, you may supply a vector of relative error tolerances,
+! RELERR_VECTOR. If no tolerances are specified, DVODE_F90 will use
+! default error tolerances ABSERR=1D-6 and RELERR=1D-4; but it is
+! strongly recommended that you supply values that are appropriate
+! for your problem. In the event you do not supply error tolerances,
+! DVODE_F90 will print a reminder that the default error tolerances
+! are not appropriate for all problems.
+!
+! RELERR can be set to a scalar value as follows.
+! Determine the number of significant digits of accuracy desired, 
+! which will be a positive integer, say, N.
+! Then set RELERR = 10**-(N+1). 
+! The authors recommend that RELERR be no larger than 10**-4.
+! The authors recommend a vector valued absolute error tolerance,
+! which can be set as follows.
+! For the I-th component of the solution vector, Y(I), determine
+! the positive number FLOOR(I) at which ABS(Y(I)) becomes
+! negligible for the problem at hand. FLOOR(I) is sometimes called
+! the problem zero or the floor value for the I-th component and is
+! problem dependent. For a given problem that is not scaled, these
+! floor values may well vary by up to 9 orders of magnitude.
+! Set ABSERR(I) = FLOOR(I) or to be conservative
+! ABSERR_VECTOR(I) = 0.1*FLOOR(I). There is no variable FLOOR in
+! DVODE_F90. If it is difficult to divine the components of ABSERR,
+! (or FLOOR) make a reasonable guess, run the problem, then set that
+! ABSERR_VECTOR so for I = 1, 2,...NEQ,
+! ABSERR_VECTOR(I) = 1D-6*RELERR*MAX{ABS(Y(I,TOUT): for all TOUT}.
+! The correct choices for RELERR and ABSERR can and do have
+! significant impact on both the quality of the solution and run
+! time. Counter intuitively, error tolerances that are too loose
+! can and do increase run time significantly and the quality of
+! the solution may be seriously compromised.
+! Examples:
+! 1. OPTIONS = SET_OPTS(DENSE_J=.TRUE., ABSERR=1D-8,RELERR=1D-8)
+!    This will yield MF = 22. Both the relative error tolerance
+!    and the absolute error tolerance will equal 1D-8.
+! 2. OPTIONS = SET_OPTS(DENSE_J=.TRUE.,RELERR=1D-5, &
+!                       ABSERR_VECTOR=(/1D-6,1D-8/))
+!    For a system with NEQ=2 odes, this will yield MF = 22. A scalar
+!    relative error tolerance equal to 1D-5 will be used. Component 1
+!    of the solution will use an absolute error tolerance of 1D-6
+!    while component 2 will use an absolute error tolerance of 1D-8.
+! ______________________________________________________________________
+! Section 4.  Choosing the Method of Integration
+!
+! If you wish to specify a numerical value for METHOD_FLAG, it can equal
+! any of the legal values of MF for DVODE or LSODES. (See below.) If
+! you do not wish to specify a numerical value for METHOD_FLAG, you
+! may specify any combination of the five logical keywords DENSE_J,
+! BANDED_J, SPARSE_J, USER_SUPPLIED_JACOBIAN, SAVE_JACOBIAN that you
+! wish. Appropriate values will be used in DVODE_F90 for any variables
+! that are not present. The first three flags indicate the type of
+! Jacobian, dense, banded, or sparse. If USER_SUPPLIED_JACOBIAN=.TRUE.,
+! the Jacobian will be determined using the subroutine JAC you supply
+! in your call to DVODE_F90. Otherwise, an internal Jacobian will be
+! generated using finite differences.
+! Examples:
+! 1. OPTIONS = SET_OPTS(METHOD_FLAG=22,...)
+!    DVODE will use the value MF=22 as described in the documentation
+!    prologue. In this case, the stiff BDF methods will be used with
+!    a dense, internally generated Jacobian.
+! 2. OPTIONS = SET_OPTS(METHOD_FLAG=21,...)
+!    This is the same an Example 1 except that a user supplied dense
+!    Jacobian will be used and DVODE will use MF=21.
+! 3. OPTIONS = SET_OPTS(DENSE_J=.TRUE.,...)
+!    This will yield MF = 22 as in Example 1, provided
+!    USER_SUPPLIED_JACOBIAN and SAVE_JACOBIAN are not present, or if
+!    present are set to their default
+!     values of .FALSE. and .TRUE., respectively.
+! 4. OPTIONS = SET_OPTS(DENSE_J=.TRUE.,&
+!                       USER_SUPPLIED_JACOBIAN=.TRUE.,...)
+!    This will yield MF = 21 as in Example 2, provided SAVE_JACOBIAN
+!    is not present, or if present is set to its default value .FALSE.
+! Notes:
+! 1. If you specify more than one of DENSE_J, BANDED_J, and SPARSE_J,
+!    DENSE_J takes precedence over BANDED_J which in turn takes
+!    precedence over SPARSE_J.
+! 2. By default, DVODE_F90 saves a copy of the Jacobian and reuses the
+!    copy when necessary. For problems in which storage requirements
+!    are acute, you may wish to override this default and have
+!    DVODE_F90 recalculate the Jacobian rather than use a saved copy.
+!    You can do this by specifying SAVE_JACOBIAN=.FALSE. It is
+!    recommended that you not do this unless necessary since it can
+!    have a significant impact on the efficiency of DVODE_F90. (For
+!    example, when solving a linear problem only one evaluation of
+!    the Jacobian is required with the default option.)
+! 3. If you choose BANDED_J = .TRUE. or if you supply a value of MF
+!    that corresponds to a banded Jacobian, you must also supply the
+!    lower  bandwidth ML and the upper bandwidth of the Jacobian MU
+!    by including the keywords
+!    LOWER_BANDWIDTH = value of ML and UPPER_BANDWIDTH = value of M
+!                   More on Method Selection
+! The keyword options available in SET_OPTS are intended to replace
+! the original method indicator flag MF. However, if you wish to
+! retain the flexibility of the original solver, you may specify MF
+! directly in your call to SET_OPTS. This is done by using the
+! keyword METHOD_FLAG=MF in your SET_OPTS where MF has any of the
+! values in the following description. Refer to the demonstration
+! program demosp.f90 for an example in which this is done.
+! MF     = The method flag. Used only for input. The legal values of
+!          MF are:
+!          10, 11, 12, 13, 14, 15, 16, 17, 20, 21, 22, 23, 24, 25, 26,
+!          27, -11, -12, -14, -15, -21, -22, -24, -25, -26, -27.
+!          MF is a signed two-digit integer, MF = JSV*(10*METH+MITER).
+!          JSV = SIGN(MF) indicates the Jacobian-saving strategy:
+!            JSV =  1 means a copy of the Jacobian is saved for reuse
+!                     in the corrector iteration algorithm.
+!            JSV = -1 means a copy of the Jacobian is not saved
+!                     (valid only for MITER = 1, 2, 4, or 5).
+!          METH indicates the basic linear multistep method:
+!            METH = 1 means the implicit Adams method.
+!            METH = 2 means the method based on backward
+!                     differentiation formulas (BDF-s).
+!          MITER indicates the corrector iteration method:
+!            MITER = 0 means functional iteration (no Jacobian matrix
+!                      is involved).
+!            MITER = 1 means chord iteration with a user-supplied
+!                      full (NEQ by NEQ) Jacobian.
+!            MITER = 2 means chord iteration with an internally
+!                      generated (difference quotient) full Jacobian
+!                      (using NEQ extra calls to F per df/dy value).
+!            MITER = 4 means chord iteration with a user-supplied
+!                      banded Jacobian.
+!            MITER = 5 means chord iteration with an internally
+!                      generated banded Jacobian (using ML+MU+1 extra
+!                      calls to F per df/dy evaluation).
+!            MITER = 6 means chord iteration with a user-supplied
+!                      sparse Jacobian.
+!            MITER = 7 means chord iteration with an internally
+!                      generated sparse Jacobian
+!          If MITER = 1, 4, or 6 the user must supply a subroutine
+!          JAC(the name is arbitrary) as described above under JAC.
+!          For other values of MITER, JAC need not be provided.
+! ______________________________________________________________________
+! Section 5.  Interpolation of the Solution and Derivative
+!
+! Following a successful return from DVODE_F90, you may call
+! subroutine DVINDY to interpolate the solution or derivative.
+! SUBROUTINE DVINDY(T, K, DKY, IFLAG)
+! DVINDY computes interpolated values of the K-th derivative of the
+! dependent variable vector y, and stores it in DKY. This routine
+! is called with K = 0 or K = 1 and T = TOUT. In either case, the
+! results are returned in the array DKY of length at least NEQ which
+! must be declared and dimensioned in your calling program. The
+! computed values in DKY are obtained by interpolation using the
+! Nordsieck history array.
+! ______________________________________________________________________
+! Section 6.  Handling Events (Root Finding)
+!
+!    DVODE_F90 contains root finding provisions. It attempts to
+!    locates the roots of a set of functions
+!         g(i) = g(i,t,y(1),...,y(NEQ))  (i = 1,...,ng).
+!    To use root finding include NEVENTS=NG in your call to SET_OPTS
+!    where NG is the number of root finding functions. You must then
+!    supply subroutine GFUN in your call to DVODE_F90 using
+!    G_FCN=GFUN as the last argument. GFUN must has the form
+!               SUBROUTINE GFUN(NEQ, T, Y, NG, GOUT)
+!    where NEQ, T, Y, and NG are input, and the array GOUT is output.
+!    NEQ, T, and Y have the same meaning as in the F routine, and
+!    GOUT is an array of length NG. For i = 1,...,NG, this routine is
+!    to load into GOUT(i) the value at (T,Y) of the i-th constraint
+!    function g(i). DVODE_F90 will find roots of the g(i) of odd
+!    multiplicity (i.e. sign changes) as they occur during the
+!    integration. GFUN must be declared EXTERNAL in the calling
+!    program. Note that because of numerical errors in the functions
+!    g(i) due to roundoff and integration error, DVODE_F90 may return
+!    false roots, or return the same root at two or more nearly equal
+!    values of t. This is particularly true for problems in which the
+!    integration is restarted (ISTATE = 1) at a root. If such false
+!    roots are suspected, you should consider smaller error tolerances
+!    and/or higher precision in the evaluation of the g(i). Note
+!    further that if a root of some g(i) defines the end of the
+!    problem, the input to DVODE_F90 should nevertheless allow
+!    integration to a point slightly past that root, so that DVODE_F90
+!    can locate the root by interpolation. Each time DVODE_F90 locates
+!    a root of one of your event functions it makes a return to the
+!    calling program with ISTATE = 3. When such a return is made and
+!    you have processed the results, simply change ISTATE = 2 and call
+!    DVODE_F90 again without making other changes.
+! ______________________________________________________________________
+! Section 7.  Gathering Integration Statistics
+!
+! SUBROUTINE GET_STATS(RSTATS, ISTATS, NUMEVENTS, JROOTS)
+! Caution:
+! RSTATS and ISTATS must be declared and dimensioned in your
+! main program. The minimum dimensions are:
+! DIMENSION RSTATS(22), ISTATS(31)
+! This subroutine returns the user portions of the original DVODE
+! RUSER and IUSER arrays, and if root finding is being done, it
+! returns the original LSODAR JROOT vector. NUMEVENTS and JROOTS
+! are optional parameters. NUMEVENTS is the number of root functions
+! and JROOTS is an integer array of length NUMEVENTS.
+! Available Integration Statistics:
+! HU      RUSER(11) The step size in t last used (successfully).
+! HCUR    RUSER(12) The step size to be attempted on the next step.
+! TCUR    RUSER(13) The current value of the independent variable
+!                   which the solver has actually reached, i.e. the
+!                   current internal mesh point in t. In the output,
+!                   TCUR will always be at least as far from the
+!                   initial value of t as the current argument T,
+!                   but may be farther (if interpolation was done).
+! TOLSF   RUSER(14) A tolerance scale factor, greater than 1.0,
+!                   computed when a request for too much accuracy was
+!                   detected (ISTATE = -3 if detected at the start of
+!                   the problem, ISTATE = -2 otherwise). If ITOL is
+!                   left unaltered but RTOL and ATOL are uniformly
+!                   scaled up by a factor of TOLSF for the next call,
+!                   then the solver is deemed likely to succeed.
+!                   (The user may also ignore TOLSF and alter the
+!                   tolerance parameters in any other way appropriate.)
+! NST     IUSER(11) The number of steps taken for the problem so far.
+! NFE     IUSER(12) The number of f evaluations for the problem so far.
+! NJE     IUSER(13) The number of Jacobian evaluations so far.
+! NQU     IUSER(14) The method order last used (successfully).
+! NQCUR   IUSER(15) The order to be attempted on the next step.
+! IMXER   IUSER(16) The index of the component of largest magnitude in
+!                   the weighted local error vector (E(i)/EWT(i)),
+!                   on an error return with ISTATE = -4 or -5.
+! LENRW   IUSER(17) The length of RUSER actually required.
+!                   This is defined on normal returns and on an illegal
+!                   input return for insufficient storage.
+! LENIW   IUSER(18) The length of IUSER actually required.
+!                   This is defined on normal returns and on an illegal
+!                   input return for insufficient storage.
+! NLU     IUSER(19) The number of matrix LU decompositions so far.
+! NNI     IUSER(20) The number of nonlinear (Newton) iterations so far.
+! NCFN    IUSER(21) The number of convergence failures of the nonlinear
+!                   solver so far.
+! NETF    IUSER(22) The number of error test failures of the integrator
+!                   so far.
+! MA28AD_CALLS      IUSER(23) The number of calls made to MA28AD
+! MA28BD_CALLS      IUSER(24) The number of calls made to MA28BD
+! MA28CD_CALLS      IUSER(25) The number of calls made to MA28CD
+! MC19AD_CALLS      IUSER(26) The number of calls made to MC19AD
+! IRNCP             IUSER(27) The number of compressions done on array JAN
+! ICNCP             IUSER(28) The number of compressions done on array ICN
+! MINIRN            IUSER(29) Minimum size for JAN array
+! MINICN            IUSER(30) Minimum size for ICN array
+! MINNZ             IUSER(31) Number of nonzeros in sparse Jacobian
+! JROOTS  JROOTS    Optional array of component indices for components
+!                   having a zero at the current time
+! ______________________________________________________________________
+! Section 8.  Determining Jacobian Sparsity Structure Arrays
+!
+! If you are solving a problem with a sparse Jacobian, the arrays
+! that define the sparsity structure are needed. The arrays may
+! be determined in any of several ways.
+! 1. If you choose the default mode by indicating SPARSE=.TRUE.,
+!    the sparsity arrays will be determined internally by DVODE_F90
+!    by making calls to your derivative subroutine. This mode is
+!    equivalent to using the integration method flag MF = 227.
+! 2. The DVODE_F90 method flag MF is defined to be
+!    MF = 100*MOSS + 10*METH + MITER. If you supply MF = 227 (or 217),
+!    the sparse Jacobian will be determined using finite differences;
+!    and the sparsity arrays will be determined by calling your
+!    derivative subroutine.
+! 3. If you supply MF = 126 (or 116), you must supply the Jacobian
+!    subroutine JAC to define the exact Jacobian. JAC must have the
+!    following form:
+!           SUBROUTINE JAC (N, T, Y, IA, JA, NZ, PD)
+!    Given the number of odes N, the current time T, and the current
+!    solution vector Y, JAC must do the following:
+!    -  If NZ = 0 on input:
+!       Replace NZ by the number of nonzero elements in the Jacobian.
+!       The diagonal of the Jacobian must be included.
+!       Do NOT define the arrays IA, JA, PD at this time.
+!       Once JAC has been called with NZ = 0 and you have defined the
+!       value of NZ, future calls to JAC will use this value of NZ.
+!    -  When a call is made with NZ unequal to 0, you must define the
+!       sparsity structure arrays IA and JA, and the sparse Jacobian
+!       PD.
+!         - IA defines the number of nonzeros including the diagonal
+!           in each column of the Jacobian. Define IA(1) = 1 and for
+!           J = 1,..., N,
+!           IA(J+1) = IA(J) + number of nonzeros in column J.
+!           Diagonal elements must be include even if they are zero.
+!           You should check to ensure that IA(N+1)-1 = NZ.
+!         - JA defines the rows in which the nonzeros occur. For
+!           I = 1,...,NZ, JA(I) is the row in which the Ith element
+!           of the Jacobian occurs. JA must also include the diagonal
+!           elements of the Jacobian.
+!         - PD defines the numerical value of the Jacobian elements.
+!           For I = 1,...,NZ, PD(I) is the numerical value of the
+!           Ith element in the Jacobian. PD must also include the
+!           diagonal elements of the Jacobian.
+! 4. If you wish to supply the IA and JA arrays directly, use
+!    MF = 27. In this case, after calling SET_OPTS, you must call
+!    SET_IAJA supplying the arrays IAUSER and JAUSER described in
+!    the documentation prologue for SET_IAJA. These arrays will be
+!    used when approximate Jacobians are determined using finite
+!    differences.
+! There are two user callable sparsity structure subroutines:
+! USERSETS_IAJA may be used if you wish to supply the sparsity
+! structure directly.
+! SUBROUTINE USERSETS_IAJA(IAUSER,NIAUSER,JAUSER,NJAUSER)
+!     Caution:
+!     If it is called, USERSETS_IAJA must be called after the
+!     call to SET_OPTS.
+!     Usage:
+!     CALL SET_IAJA(IAUSER,NIAUSER,JAUSER,NJAUSER)
+!       In this case, IAUSER of length NIAUSER will be used for
+!       IA; and JAUSER of length NJAUSER will be used for JA.
+!     Arguments:
+!     IAUSER  = user supplied IA array
+!     NIAUSER = length of IAUSER array
+!     JAUSER  = user supplied JA vector
+!     NJAUSER = length of JAUSER array
+! The second subroutine allows you to approximate the sparsity
+! structure using derivative differences. It allows more flexibility
+! in the determination of perturbation increments used.
+! SUBROUTINE SET_IAJA(DFN,NEQ,T,Y,FMIN,NTURB,DTURB,IAUSER, &
+!   NIAUSER, JAUSER, NJAUSER)
+!     Caution:
+!     If it is called, SET_IAJA must be called after the call to
+!     SET_OPTS.
+!     Usage:
+!     SET_IAJA may be called in one of two ways:
+
+!     CALL SET_IAJA(DFN,NEQ,T,Y,FMIN,NTURB,DTURB)
+!       In this case IA and JA will be determined using calls
+!       to your derivative routine DFN.
+!     CALL SET_IAJA(DFN,NEQ,T,Y,FMIN,NTURB,DTURB,IAUSER,NIAUSER, &
+!       JAUSER, NJAUSER)
+!       In this case, IAUSER of length NIAUSER will be used for
+!       IA; and JAUSER of length NJAUSER will be used for JA.
+!       T, Y, FMIN, NTURB, and DTURB will be ignored (though
+!       they must be present in the argument list).
+!     Arguments:
+!     DFN     = DVODE derivative subroutine
+!     NEQ     = Number of odes
+!     T       = independent variable t
+!     Y       = solution y(t)
+!     FMIN    = Jacobian threshold value. Elements of the Jacobian
+!               with magnitude smaller than FMIN will be ignored.
+!               FMIN will be ignored if it is less than or equal
+!               to ZERO.
+!     NTURB   = Perturbation flag. If NTURB=1, component I of Y
+!               will be perturbed by 1.01D0.
+!               If NTURB=NEQ, component I of Y will be perturbed
+!               by ONE + DTURB(I).
+!     DTURB   = perturbation vector of length 1 or NEQ.
+!     If these four optional parameters are present, IAUSER and JAUSER
+!     will be copied to IA and JA rather than making derivative calls
+!     to approximate IA and JA:
+!        IAUSER  = user supplied IA array
+!        NIAUSER = length of IAUSER array
+!        JAUSER  = user supplied JA vector
+!        NJAUSER = length of JAUSER array
+! ______________________________________________________________________
+! Section 9.  Original DVODE.F Documentation Prologue
+!
+! SUBROUTINE DVODE(F, NEQ, Y, T, TOUT, ITASK, ISTATE, OPTS, JAC, GFUN)
+! DVODE: Variable-coefficient Ordinary Differential Equation solver,
+! with fixed-leading-coefficient implementation.
+! Note:
+! Numerous changes have been made in the documentation and the code
+! from the original Fortran 77 DVODE solver. With regard to the new
+! F90 version, if you choose options that correspond to options
+! available in the original f77 solver, you should obtain the same
+! results. In all testing, identical results have been obtained
+! between this version and a simple F90 translation of the original
+! solver.
+! DVODE solves the initial value problem for stiff or nonstiff
+! systems of first order ODEs,
+!     dy/dt = f(t,y), or, in component form,
+!     dy(i)/dt = f(i) = f(i,t,y(1),y(2),...,y(NEQ)) (i = 1,...,NEQ).
+! DVODE is a package based on the EPISODE and EPISODEB packages, and
+! on the ODEPACK user interface standard, with minor modifications.
+! This version is based also on elements of LSODES and LSODAR.
+! Authors:
+!               Peter N. Brown and Alan C. Hindmarsh
+!               Center for Applied Scientific Computing, L-561
+!               Lawrence Livermore National Laboratory
+!               Livermore, CA 94551
+!               George D. Byrne
+!               Illinois Institute of Technology
+!               Chicago, IL 60616
+! References:
+! 1. P. N. Brown, G. D. Byrne, and A. C. Hindmarsh, "VODE: A Variable
+!    Coefficient ODE Solver," SIAM J. Sci. Stat. Comput., 10 (1989),
+!    pp. 1038-1051. Also, LLNL Report UCRL-98412, June 1988.
+! 2. G. D. Byrne and A. C. Hindmarsh, "A Polyalgorithm for the
+!    Numerical Solution of Ordinary Differential Equations,"
+!    ACM Trans. Math. Software, 1 (1975), pp. 71-96.
+! 3. A. C. Hindmarsh and G. D. Byrne, "EPISODE: An Effective Package
+!    for the Integration of Systems of Ordinary Differential
+!    Equations," LLNL Report UCID/30112, Rev. 1, April 1977.
+! 4. G. D. Byrne and A. C. Hindmarsh, "EPISODEB: An Experimental
+!    Package for the Integration of Systems of Ordinary Differential
+!    Equations with Banded Jacobians," LLNL Report UCID/30132, April
+!    1976.
+! 5. A. C. Hindmarsh, "ODEPACK, a Systematized Collection of ODE
+!    Solvers," in Scientific Computing, R. S. Stepleman et al., eds.,
+!    North-Holland, Amsterdam, 1983, pp. 55-64.
+! 6. K. R. Jackson and R. Sacks-Davis, "An Alternative Implementation
+!    of Variable Step-Size Multistep Formulas for Stiff ODEs," ACM
+!    Trans. Math. Software, 6 (1980), pp. 295-318.
+!                     Summary of Usage
+! Communication between the user and the DVODE package, for normal
+! situations, is summarized here. This summary describes only a subset
+! of the full set of options available. See the full description for
+! details, including optional communication, nonstandard options,
+! and instructions for special situations. See also the example
+! problem (with program and output) following this summary.
+! A. First provide a subroutine of the form:
+!           SUBROUTINE F(NEQ, T, Y, YDOT)
+!           REAL(KIND=WP) T, Y(NEQ), YDOT(NEQ)
+! which supplies the vector function f by loading YDOT(i) with f(i).
+! B. Next determine (or guess) whether or not the problem is stiff.
+! Stiffness occurs when the Jacobian matrix df/dy has an eigenvalue
+! whose real part is negative and large in magnitude, compared to the
+! reciprocal of the t span of interest. If the problem is nonstiff,
+! use a method flag MF = 10. If it is stiff, there are four standard
+! choices for MF(21, 22, 24, 25), and DVODE requires the Jacobian
+! matrix in some form. In these cases (MF > 0), DVODE will use a
+! saved copy of the Jacobian matrix. If this is undesirable because of
+! storage limitations, set MF to the corresponding negative value
+! (-21, -22, -24, -25). (See full description of MF below.)
+! The Jacobian matrix is regarded either as full (MF = 21 or 22),
+! or banded (MF = 24 or 25). In the banded case, DVODE requires two
+! half-bandwidth parameters ML and MU. These are, respectively, the
+! widths of the lower and upper parts of the band, excluding the main
+! diagonal. Thus the band consists of the locations (i,j) with
+! i-ML <= j <= i+MU, and the full bandwidth is ML+MU+1.
+! C. If the problem is stiff, you are encouraged to supply the Jacobian
+! directly (MF = 21 or 24), but if this is not feasible, DVODE will
+! compute it internally by difference quotients (MF = 22 or 25).
+! If you are supplying the Jacobian, provide a subroutine of the form:
+!           SUBROUTINE JAC(NEQ, T, Y, ML, MU, PD, NROWPD)
+!           REAL(KIND=WP) T, Y(NEQ), PD(NROWPD,NEQ)
+! which supplies df/dy by loading PD as follows:
+!     For a full Jacobian (MF = 21), load PD(i,j) with df(i)/dy(j),
+! the partial derivative of f(i) with respect to y(j). (Ignore the
+! ML and MU arguments in this case.)
+!     For a banded Jacobian (MF = 24), load PD(i-j+MU+1,j) with
+! df(i)/dy(j), i.e. load the diagonal lines of df/dy into the rows of
+! PD from the top down.
+!     In either case, only nonzero elements need be loaded.
+! D. Write a main program which calls subroutine DVODE once for
+! each point at which answers are desired. This should also provide
+! for possible use of logical unit 6 for output of error messages
+! by DVODE. On the first call to DVODE, supply arguments as follows:
+! F      = Name of subroutine for right-hand side vector f.
+!          This name must be declared external in calling program.
+! NEQ    = Number of first order ODEs.
+! Y      = Array of initial values, of length NEQ.
+! T      = The initial value of the independent variable.
+! TOUT   = First point where output is desired (/= T).
+! ITOL   = 1 or 2 according as ATOL(below) is a scalar or array.
+! RTOL   = Relative tolerance parameter (scalar).
+! ATOL   = Absolute tolerance parameter (scalar or array).
+!          The estimated local error in Y(i) will be controlled so as
+!          to be roughly less (in magnitude) than
+!             EWT(i) = RTOL*ABS(Y(i)) + ATOL     if ITOL = 1, or
+!             EWT(i) = RTOL*ABS(Y(i)) + ATOL(i)  if ITOL = 2.
+!          Thus the local error test passes if, in each component,
+!          either the absolute error is less than ATOL(or ATOL(i)),
+!          or the relative error is less than RTOL.
+!          Use RTOL = 0.0 for pure absolute error control, and
+!          use ATOL = 0.0 (or ATOL(i) = 0.0) for pure relative error
+!          control. Caution: Actual (global) errors may exceed these
+!          local tolerances, so choose them conservatively.
+! ITASK  = 1 for normal computation of output values of Y at t = TOUT.
+! ISTATE = Integer flag (input and output). Set ISTATE = 1.
+! IOPT   = 0 to indicate no optional input used.
+! JAC    = Name of subroutine for Jacobian matrix (MF = 21 or 24).
+!          If used, this name must be declared external in calling
+!          program. If not used, pass a dummy name.
+! MF     = Method flag. Standard values are:
+!          10 for nonstiff (Adams) method, no Jacobian used.
+!          21 for stiff (BDF) method, user-supplied full Jacobian.
+!          22 for stiff method, internally generated full Jacobian.
+!          24 for stiff method, user-supplied banded Jacobian.
+!          25 for stiff method, internally generated banded Jacobian.
+! E. The output from the first call (or any call) is:
+!      Y = Array of computed values of y(t) vector.
+!      T = Corresponding value of independent variable (normally TOUT).
+! ISTATE = 2  if DVODE was successful, negative otherwise.
+!          -1 means excess work done on this call. (Perhaps wrong MF.)
+!          -2 means excess accuracy requested. (Tolerances too small.)
+!          -3 means illegal input detected. (See printed message.)
+!          -4 means repeated error test failures. (Check all input.)
+!          -5 means repeated convergence failures. (Perhaps bad
+!             Jacobian supplied or wrong choice of MF or tolerances.)
+!          -6 means error weight became zero during problem. (Solution
+!             component I vanished, and ATOL or ATOL(I) = 0.)
+! F. To continue the integration after a successful return, simply
+! reset TOUT and call DVODE again. No other parameters need be reset.
+!         Full Description of User Interface to DVODE
+! The user interface to DVODE consists of the following parts.
+! i.  The call sequence to subroutine DVODE, which is a driver
+!      routine for the solver. This includes descriptions of both
+!      the call sequence arguments and of user-supplied routines.
+!      Following these descriptions is
+!        * a description of optional input available through the
+!          call sequence,
+!        * a description of optional output (in the work arrays), and
+!        * instructions for interrupting and restarting a solution.
+! ii. Descriptions of other routines in the DVODE package that may be
+!      (optionally) called by the user. These provide the ability to
+!      alter error message handling, save and restore the internal
+!      PRIVATE variables, and obtain specified derivatives of the
+!      solution y(t).
+! iii. Descriptions of PRIVATE variables to be declared in overlay
+!      or similar environments.
+! iv. Description of two routines in the DVODE package, either of
+!      which the user may replace with his own version, if desired.
+!      these relate to the measurement of errors.
+! Part i. Call Sequence.
+! The call sequence parameters used for input only are
+!     F, NEQ, TOUT, ITOL, RTOL, ATOL, ITASK, IOPT, JAC, MF,
+! and those used for both input and output are
+!     Y, T, ISTATE.
+! The work arrays RUSER and IUSER are used for conditional and
+! optional input and optional output. (The term output here refers
+! to the return from subroutine DVODE to the user's calling program.)
+! The legality of input parameters will be thoroughly checked on the
+! initial call for the problem, but not checked thereafter unless a
+! change in input parameters is flagged by ISTATE = 3 in the input.
+! The descriptions of the call arguments are as follows.
+! F      = The name of the user-supplied subroutine defining the
+!          ODE system. The system must be put in the first-order
+!          form dy/dt = f(t,y), where f is a vector-valued function
+!          of the scalar t and the vector y. Subroutine F is to
+!          compute the function f. It is to have the form
+!               SUBROUTINE F(NEQ, T, Y, YDOT)
+!               REAL(KIND=WP) T, Y(NEQ), YDOT(NEQ)
+!          where NEQ, T, and Y are input, and the array YDOT = f(t,y)
+!          is output. Y and YDOT are arrays of length NEQ.
+!          Subroutine F should not alter Y(1),...,Y(NEQ).
+!          F must be declared EXTERNAL in the calling program.
+
+!          If quantities computed in the F routine are needed
+!          externally to DVODE, an extra call to F should be made
+!          for this purpose, for consistent and accurate results.
+!          If only the derivative dy/dt is needed, use DVINDY instead.
+! NEQ    = The size of the ODE system (number of first order
+!          ordinary differential equations). Used only for input.
+!          NEQ may not be increased during the problem, but
+!          can be decreased (with ISTATE = 3 in the input).
+! Y      = A real array for the vector of dependent variables, of
+!          length NEQ or more. Used for both input and output on the
+!          first call (ISTATE = 1), and only for output on other calls.
+!          On the first call, Y must contain the vector of initial
+!          values. In the output, Y contains the computed solution
+!          evaluated at T. If desired, the Y array may be used
+!          for other purposes between calls to the solver.
+!          This array is passed as the Y argument in all calls to
+!          F and JAC.
+! T      = The independent variable. In the input, T is used only on
+!          the first call, as the initial point of the integration.
+!          In the output, after each call, T is the value at which a
+!          computed solution Y is evaluated (usually the same as TOUT).
+!          On an error return, T is the farthest point reached.
+! TOUT   = The next value of t at which a computed solution is desired.
+!          Used only for input.
+!          When starting the problem (ISTATE = 1), TOUT may be equal
+!          to T for one call, then should /= T for the next call.
+!          For the initial T, an input value of TOUT /= T is used
+!          in order to determine the direction of the integration
+!          (i.e. the algebraic sign of the step sizes) and the rough
+!          scale of the problem. Integration in either direction
+!          (forward or backward in t) is permitted.
+!          If ITASK = 2 or 5 (one-step modes), TOUT is ignored after
+!          the first call (i.e. the first call with TOUT /= T).
+!          Otherwise, TOUT is required on every call.
+!          If ITASK = 1, 3, or 4, the values of TOUT need not be
+!          monotone, but a value of TOUT which backs up is limited
+!          to the current internal t interval, whose endpoints are
+!          TCUR - HU and TCUR. (See optional output, below, for
+!          TCUR and HU.)
+! ITOL   = An indicator for the type of error control. See
+!          description below under ATOL. Used only for input.
+! RTOL   = A relative error tolerance parameter, either a scalar or
+!          an array of length NEQ. See description below under ATOL.
+!          Input only.
+! ATOL   = An absolute error tolerance parameter, either a scalar or
+!          an array of length NEQ. Input only.
+!          The input parameters ITOL, RTOL, and ATOL determine
+!          the error control performed by the solver. The solver will
+!          control the vector e = (e(i)) of estimated local errors
+!          in Y, according to an inequality of the form
+!                      rms-norm of (E(i)/EWT(i)) <= 1,
+!          where       EWT(i) = RTOL(i)*ABS(Y(i)) + ATOL(i),
+!          and the rms-norm (root-mean-square norm) here is
+!          rms-norm(v) = sqrt(sum v(i)**2 / NEQ). Here EWT
+!          is a vector of weights which must always be positive, and
+!          the values of RTOL and ATOL should all be nonnegative.
+!          The following table gives the types (scalar/array) of
+!          RTOL and ATOL, and the corresponding form of EWT(i).
+!           ITOL    RTOL       ATOL          EWT(i)
+!            1     scalar     scalar     RTOL*ABS(Y(i)) + ATOL
+!            2     scalar     array      RTOL*ABS(Y(i)) + ATOL(i)
+!            3     array      scalar     RTOL(i)*ABS(Y(i)) + ATOL
+!            4     array      array      RTOL(i)*ABS(Y(i)) + ATOL(i)
+!          When either of these parameters is a scalar, it need not
+!          be dimensioned in the user's calling program.
+!          If none of the above choices (with ITOL, RTOL, and ATOL
+!          fixed throughout the problem) is suitable, more general
+!          error controls can be obtained by substituting
+!          user-supplied routines for the setting of EWT and/or for
+!          the norm calculation. See Part iv below.
+!          If global errors are to be estimated by making a repeated
+!          run on the same problem with smaller tolerances, then all
+!          components of RTOL and ATOL(i.e. of EWT) should be scaled
+!          down uniformly.
+! ITASK  = An index specifying the task to be performed.
+!          Input only. ITASK has the following values and meanings.
+!          1  means normal computation of output values of y(t) at
+!             t = TOUT(by overshooting and interpolating).
+!          2  means take one step only and return.
+!          3  means stop at the first internal mesh point at or
+!             beyond t = TOUT and return.
+!          4  means normal computation of output values of y(t) at
+!             t = TOUT but without overshooting t = TCRIT.
+!             TCRIT must be input as RUSER(1). TCRIT may be equal to
+!             or beyond TOUT, but not behind it in the direction of
+!             integration. This option is useful if the problem
+!             has a singularity at or beyond t = TCRIT.
+!          5  means take one step, without passing TCRIT, and return.
+!             TCRIT must be input as RUSER(1).
+!          Note:  If ITASK = 4 or 5 and the solver reaches TCRIT
+!          (within roundoff), it will return T = TCRIT(exactly) to
+!          indicate this (unless ITASK = 4 and TOUT comes before TCRIT,
+!          in which case answers at T = TOUT are returned first).
+! ISTATE = an index used for input and output to specify the
+!          the state of the calculation.
+!          In the input, the values of ISTATE are as follows.
+!          1  means this is the first call for the problem
+!             (initializations will be done). See note below.
+!          2  means this is not the first call, and the calculation
+!             is to continue normally, with no change in any input
+!             parameters except possibly TOUT and ITASK.
+!             (If ITOL, RTOL, and/or ATOL are changed between calls
+!             with ISTATE = 2, the new values will be used but not
+!             tested for legality.)
+!          3  means this is not the first call, and the
+
+!             calculation is to continue normally, but with
+!             a change in input parameters other than
+!             TOUT and ITASK. Changes are allowed in
+!             NEQ, ITOL, RTOL, ATOL, IOPT, MF, ML, MU,
+!             and any of the optional input except H0.
+!             (See IUSER description for ML and MU.)
+!          Caution:
+!          If you make a call to DVODE_F90 with ISTATE=3, you will
+!          first need to call SET_OPTS again, supplying the new
+!          necessary option values.
+!          Note:  A preliminary call with TOUT = T is not counted
+!          as a first call here, as no initialization or checking of
+!          input is done. (Such a call is sometimes useful to include
+!          the initial conditions in the output.)
+!          Thus the first call for which TOUT /= T requires
+!          ISTATE = 1 in the input.
+!          In the output, ISTATE has the following values and meanings.
+!           1  means nothing was done, as TOUT was equal to T with
+!              ISTATE = 1 in the input.
+!           2  means the integration was performed successfully.
+!          -1  means an excessive amount of work (more than MXSTEP
+!              steps) was done on this call, before completing the
+!              requested task, but the integration was otherwise
+!              successful as far as T. (MXSTEP is an optional input
+!              and is normally 5000.)  To continue, the user may
+!              simply reset ISTATE to a value > 1 and call again.
+!              (The excess work step counter will be reset to 0.)
+!              In addition, the user may increase MXSTEP to avoid
+!              this error return. (See optional input below.)
+!          -2  means too much accuracy was requested for the precision
+!              of the machine being used. This was detected before
+!              completing the requested task, but the integration
+!              was successful as far as T. To continue, the tolerance
+!              parameters must be reset, and ISTATE must be set
+!              to 3. The optional output TOLSF may be used for this
+!              purpose. (Note: If this condition is detected before
+!              taking any steps, then an illegal input return
+!              (ISTATE = -3) occurs instead.)
+!          -3  means illegal input was detected, before taking any
+!              integration steps. See written message for details.
+!              Note:  If the solver detects an infinite loop of calls
+!              to the solver with illegal input, it will cause
+!              the run to stop.
+!          -4  means there were repeated error test failures on
+!              one attempted step, before completing the requested
+!              task, but the integration was successful as far as T.
+!              The problem may have a singularity, or the input
+!              may be inappropriate.
+!          -5  means there were repeated convergence test failures on
+!              one attempted step, before completing the requested
+!              task, but the integration was successful as far as T.
+!              This may be caused by an inaccurate Jacobian matrix,
+!              if one is being used.
+!          -6  means EWT(i) became zero for some i during the
+!              integration. Pure relative error control (ATOL(i)=0.0)
+!              was requested on a variable which has now vanished.
+!              The integration was successful as far as T.
+!          Note:  Since the normal output value of ISTATE is 2,
+!          it does not need to be reset for normal continuation.
+!          Also, since a negative input value of ISTATE will be
+!          regarded as illegal, a negative output value requires the
+!          user to change it, and possibly other input, before
+!          calling the solver again.
+! IOPT   = An integer flag to specify whether or not any optional
+!          input is being used on this call. Input only.
+!          The optional input is listed separately below.
+!          IOPT = 0 means no optional input is being used.
+!                   Default values will be used in all cases.
+!          IOPT = 1 means optional input is being used.
+! RUSER  = A real working array (real(wp)).
+!          The length of RUSER must be at least 22
+!             20 + NYH * (MAXORD + 1) where
+!          NYH    = the initial value of NEQ,
+!          MAXORD = 12 (if METH = 1) or 5 (if METH = 2) (unless a
+!                   smaller value is given as an optional input),
+!          The first 22 words of RUSER are reserved for conditional
+!          and optional input and optional output.
+
+!          The following word in RUSER is a conditional input:
+!            RUSER(1) = TCRIT = critical value of t which the solver
+!                       is not to overshoot. Required if ITASK is
+!                       4 or 5, and ignored otherwise. (See ITASK.)
+! IUSER  = An integer work array. The length of IUSER must be at least 30.
+!             30        if MITER = 0 or 3 (MF = 10, 13, 20, 23), or
+!             30 + NEQ  otherwise (ABS(MF) = 11,12,14,15,16,17,21,22,
+!             24,25,26,27).
+!          The first 30 words of IUSER are reserved for conditional and
+!          optional input and optional output.
+
+!          The following 2 words in IUSER are conditional input:
+!            IUSER(1) = ML  These are the lower and upper
+!            IUSER(2) = MU  half-bandwidths, respectively, of the
+!                       banded Jacobian, excluding the main diagonal.
+!                       The band is defined by the matrix locations
+!                       (i,j) with i-ML <= j <= i+MU. ML and MU
+!                       must satisfy  0 <= ML,MU  <= NEQ-1.
+!                       These are required if MITER is 4 or 5, and
+!                       ignored otherwise. ML and MU may in fact be
+!                       the band parameters for a matrix to which
+!                       df/dy is only approximately equal.
+! Note:  The work arrays must not be altered between calls to DVODE
+! for the same problem, except possibly for the conditional and
+! optional input, and except for the last 3*NEQ words of RUSER.
+! The latter space is used for internal scratch space, and so is
+! available for use by the user outside DVODE between calls, if
+! desired (but not for use by F or JAC).
+! JAC    = The name of the user-supplied routine (MITER = 1 or 4 or 6)
+!          to compute the Jacobian matrix, df/dy, as a function of
+!          the scalar t and the vector y. It is to have the form
+!               SUBROUTINE JAC(NEQ, T, Y, ML, MU, PD, NROWPD)
+!               REAL(KIND=WP) T, Y(NEQ), PD(NROWPD,NEQ)
+!          where NEQ, T, Y, ML, MU, and NROWPD are input and the array
+!          PD is to be loaded with partial derivatives (elements of the
+!          Jacobian matrix) in the output. PD must be given a first
+!          dimension of NROWPD. T and Y have the same meaning as in
+!          Subroutine F.
+!               In the full matrix case (MITER = 1), ML and MU are
+!          ignored, and the Jacobian is to be loaded into PD in
+!          columnwise manner, with df(i)/dy(j) loaded into PD(i,j).
+!               In the band matrix case (MITER = 4), the elements
+!          within the band are to be loaded into PD in columnwise
+!          manner, with diagonal lines of df/dy loaded into the rows
+!          of PD. Thus df(i)/dy(j) is to be loaded into PD(i-j+MU+1,j).
+!          ML and MU are the half-bandwidth parameters. (See IUSER).
+!          The locations in PD in the two triangular areas which
+!          correspond to nonexistent matrix elements can be ignored
+!          or loaded arbitrarily, as they are overwritten by DVODE.
+!               In the sparse matrix case the elements of the matrix
+!          are determined by the sparsity structure given by the
+!          IA and JA pointer arrays. Refer to the documentation
+!          prologue for SET_OPTS for a description of the arguments
+!          for JAC since they differ from the dense and banded cases.
+!               JAC need not provide df/dy exactly. A crude
+!          approximation (possibly with a smaller bandwidth) will do.
+!               In either case, PD is preset to zero by the solver,
+!          so that only the nonzero elements need be loaded by JAC.
+!          Each call to JAC is preceded by a call to F with the same
+!          arguments NEQ, T, and Y. Thus to gain some efficiency,
+!          intermediate quantities shared by both calculations may be
+!          saved in a user common block by F and not recomputed by JAC,
+!          if desired. Also, JAC may alter the Y array, if desired.
+!          JAC must be declared external in the calling program.
+! MF     = The method flag. Used only for input. The legal values of
+!          MF are 10, 11, 12, 13, 14, 15, 16, 17, 20, 21, 22, 23, 24,
+!          25, 26, 27, -11, -12, -14, -15, -21, -22, -24, -25, -26,
+!          -27.
+!          MF is a signed two-digit integer, MF = JSV*(10*METH+MITER).
+!          JSV = SIGN(MF) indicates the Jacobian-saving strategy:
+!            JSV =  1 means a copy of the Jacobian is saved for reuse
+!                     in the corrector iteration algorithm.
+!            JSV = -1 means a copy of the Jacobian is not saved
+!                     (valid only for MITER = 1, 2, 4, or 5).
+!          METH indicates the basic linear multistep method:
+!            METH = 1 means the implicit Adams method.
+!            METH = 2 means the method based on backward
+!                     differentiation formulas (BDF-s).
+!          MITER indicates the corrector iteration method:
+!            MITER = 0 means functional iteration (no Jacobian matrix
+!                      is involved).
+!            MITER = 1 means chord iteration with a user-supplied
+!                      full (NEQ by NEQ) Jacobian.
+!            MITER = 2 means chord iteration with an internally
+!                      generated (difference quotient) full Jacobian
+!                      (using NEQ extra calls to F per df/dy value).
+!            MITER = 3 means chord iteration with an internally
+!                      generated diagonal Jacobian approximation
+!                      (using 1 extra call to F per df/dy evaluation).
+!            MITER = 4 means chord iteration with a user-supplied
+!                      banded Jacobian.
+!            MITER = 5 means chord iteration with an internally
+!                      generated banded Jacobian (using ML+MU+1 extra
+!                      calls to F per df/dy evaluation).
+!            MITER = 6 means chord iteration with a user-supplied
+!                      sparse Jacobian.
+!            MITER = 7 means chord iteration with an internally
+!                      generated sparse Jacobian
+!          If MITER = 1, 4, or 6 the user must supply a subroutine
+!          JAC(the name is arbitrary) as described above under JAC.
+!          For other values of MITER, a dummy argument can be used.
+!                         Optional Input
+! The following is a list of the optional input provided for in the
+! call sequence. (See also Part ii.)  For each such input variable,
+! this table lists its name as used in this documentation, its
+! location in the call sequence, its meaning, and the default value.
+! The use of any of this input requires IOPT = 1, and in that
+! case all of this input is examined. A value of zero for any of
+! these optional input variables will cause the default value to be
+! used. Thus to use a subset of the optional input, simply preload
+! locations 5 to 10 in RUSER and IUSER to 0.0 and 0, respectively,
+! and then set those of interest to nonzero values.
+! NAME    LOCATION      MEANING AND DEFAULT VALUE
+! H0      RUSER(5)  The step size to be attempted on the first step.
+!                   The default value is determined by the solver.
+! HMAX    RUSER(6)  The maximum absolute step size allowed.
+!                   The default value is infinite.
+! HMIN    RUSER(7)  The minimum absolute step size allowed.
+!                   The default value is 0. (This lower bound is not
+!                   enforced on the final step before reaching TCRIT
+!                   when ITASK = 4 or 5.)
+! MAXORD  IUSER(5)  The maximum order to be allowed. The default
+!                   value is 12 if METH = 1, and 5 if METH = 2.
+!                   If MAXORD exceeds the default value, it will
+!                   be reduced to the default value.
+!                   If MAXORD is changed during the problem, it may
+!                   cause the current order to be reduced.
+! MXSTEP  IUSER(6)  Maximum number of (internally defined) steps
+!                   allowed during one call to the solver.
+!                   The default value is 5000.
+! MXHNIL  IUSER(7)  Maximum number of messages printed (per problem)
+!                   warning that T + H = T on a step (H = step size).
+!                   This must be positive to result in a non-default
+!                   value. The default value is 10.
+!                          Optional Output
+! As optional additional output from DVODE, the variables listed
+! below are quantities related to the performance of DVODE
+! which are available to the user. These are communicated by way of
+! the work arrays, but also have internal mnemonic names as shown.
+! Except where stated otherwise, all of this output is defined
+! on any successful return from DVODE, and on any return with
+! ISTATE = -1, -2, -4, -5, or -6. On an illegal input return
+! (ISTATE = -3), they will be unchanged from their existing values
+! (if any), except possibly for TOLSF, LENRW, and LENIW.
+! On any error return, output relevant to the error will be defined,
+! as noted below.
+! NAME    LOCATION      MEANING
+! HU      RUSER(11) The step size in t last used (successfully).
+! HCUR    RUSER(12) The step size to be attempted on the next step.
+! TCUR    RUSER(13) The current value of the independent variable
+!                   which the solver has actually reached, i.e. the
+!                   current internal mesh point in t. In the output,
+!                   TCUR will always be at least as far from the
+!                   initial value of t as the current argument T,
+!                   but may be farther (if interpolation was done).
+! TOLSF   RUSER(14) A tolerance scale factor, greater than 1.0,
+!                   computed when a request for too much accuracy was
+!                   detected (ISTATE = -3 if detected at the start of
+!                   the problem, ISTATE = -2 otherwise). If ITOL is
+!                   left unaltered but RTOL and ATOL are uniformly
+!                   scaled up by a factor of TOLSF for the next call,
+!                   then the solver is deemed likely to succeed.
+!                   (The user may also ignore TOLSF and alter the
+!                   tolerance parameters in any other way appropriate.)
+! NST     IUSER(11) The number of steps taken for the problem so far.
+! NFE     IUSER(12) The number of f evaluations for the problem so far.
+! NJE     IUSER(13) The number of Jacobian evaluations so far.
+! NQU     IUSER(14) The method order last used (successfully).
+! NQCUR   IUSER(15) The order to be attempted on the next step.
+! IMXER   IUSER(16) The index of the component of largest magnitude in
+!                   the weighted local error vector (e(i)/EWT(i)),
+!                   on an error return with ISTATE = -4 or -5.
+! LENRW   IUSER(17) The length of RUSER actually required.
+!                   This is defined on normal returns and on an illegal
+!                   input return for insufficient storage.
+! LENIW   IUSER(18) The length of IUSER actually required.
+!                   This is defined on normal returns and on an illegal
+!                   input return for insufficient storage.
+! NLU     IUSER(19) The number of matrix LU decompositions so far.
+! NNI     IUSER(20) The number of nonlinear (Newton) iterations so far.
+! NCFN    IUSER(21) The number of convergence failures of the nonlinear
+!                   solver so far.
+! NETF    IUSER(22) The number of error test failures of the integrator
+!                   so far.
+! The following two arrays are segments of the RUSER array which
+! may also be of interest to the user as optional output.
+! For each array, the table below gives its internal name,
+! its base address in RUSER, and its description.
+!                  Interrupting and Restarting
+! If the integration of a given problem by DVODE is to be interrupted
+! and then later continued, such as when restarting an interrupted run
+! or alternating between two or more ODE problems, the user should save,
+! following the return from the last DVODE call prior to the
+! interruption, the contents of the call sequence variables and
+! internal PRIVATE variables, and later restore these values before the
+! next DVODE call for that problem. To save and restore the PRIVATE
+! variables, use subroutine DVSRCO, as described below in part ii.
+! In addition, if non-default values for either LUN or MFLAG are
+! desired, an extra call to XSETUN and/or XSETF should be made just
+! before continuing the integration. See Part ii below for details.
+! Part ii. Other Routines Callable.
+! The following are optional calls which the user may make to
+! gain additional capabilities in conjunction with DVODE.
+! (The routines XSETUN and XSETF are designed to conform to the
+! SLATEC error handling package.)
+!     FORM OF CALL                  FUNCTION
+!  CALL XSETUN(LUN)           Set the logical unit number, LUN, for
+!                             output of messages from DVODE, if
+!                             the default is not desired.
+!                             The default value of LUN is 6.
+!  CALL XSETF(MFLAG)          Set a flag to control the printing of
+!                             messages by DVODE.
+!                             MFLAG = 0 means do not print. (Danger:
+!                             This risks losing valuable information.)
+!                             Either of the above calls may be made at
+!                             any time and will take effect immediately.
+!  CALL DVINDY(...)           Provide derivatives of y, of various
+!                             orders, at a specified point T, if
+!                             desired. It may be called only after
+!                             a successful return from DVODE.
+! The detailed instructions for using DVINDY are as follows.
+! The form of the call is:
+!      CALL DVINDY(T,K,DKY,IFLAG)
+! The input parameters are:
+! T         = Value of independent variable where answers are desired
+!             (normally the same as the T last returned by DVODE).
+!             For valid results, T must lie between TCUR - HU and TCUR.
+!             (See optional output for TCUR and HU.)
+! K         = Integer order of the derivative desired. K must satisfy
+!             0 <= K <= NQCUR, where NQCUR is the current order
+!             (see optional output). The capability corresponding
+!             to K = 0, i.e. computing y(T), is already provided
+!             by DVODE directly. Since NQCUR >= 1, the first
+!             derivative dy/dt is always available with DVINDY.
+! The output parameters are:
+! DKY       = A real array of length NEQ containing the computed value
+!             of the K-th derivative of y(t).
+! IFLAG     = Integer flag, returned as 0 if K and T were legal,
+!             -1 if K was illegal, and -2 if T was illegal.
+!             On an error return, a message is also written.
+! Part iii. Optionally Replaceable Solver Routines.
+! Below are descriptions of two routines in the DVODE package which
+! relate to the measurement of errors. Either routine can be
+! replaced by a user-supplied version, if desired. However, since such
+! a replacement may have a major impact on performance, it should be
+! done only when absolutely necessary, and only with great caution.
+! (Note: The means by which the package version of a routine is
+! superseded by the user's version may be system-dependent.)
+! (a) DEWSET.
+! The following subroutine is called just before each internal
+! integration step, and sets the array of error weights, EWT, as
+! described under ITOL/RTOL/ATOL above:
+!     SUBROUTINE DEWSET(NEQ, ITOL, RTOL, ATOL, YCUR, EWT)
+! where NEQ, ITOL, RTOL, and ATOL are as in the DVODE call sequence,
+! YCUR contains the current dependent variable vector, and
+! EWT is the array of weights set by DEWSET.
+! If the user supplies this subroutine, it must return in EWT(i)
+! (i = 1,...,NEQ) a positive quantity suitable for comparison with
+! errors in Y(i). The EWT array returned by DEWSET is passed to the
+! DVNORM function (See below.), and also used by DVODE in the
+! computation of the optional output IMXER, the diagonal Jacobian
+! approximation, and the increments for difference quotient Jacobians.
+! In the user-supplied version of DEWSET, it may be desirable to use
+! the current values of derivatives of y. Derivatives up to order NQ
+! are available from the history array YH, described above under
+! Optional Output. In DEWSET, YH is identical to the YCUR array,
+! extended to NQ + 1 columns with a column length of NYH and scale
+! factors of h**j/factorial(j). On the first call for the problem,
+! given by NST = 0, NQ is 1 and H is temporarily set to 1.0.
+! NYH is the initial value of NEQ. Thus, for example, the current
+! value of dy/dt can be obtained as YCUR(NYH+i)/H  (i=1,...,NEQ)
+! (and the division by H is unnecessary when NST = 0).
+! (b) DVNORM.
+! The following is a function which computes the weighted
+! root-mean-square norm of a vector v:
+!     D = DVNORM(N, V, W)
+! where:
+!   N = the length of the vector,
+!   V = real array of length N containing the vector,
+!   W = real array of length N containing weights,
+!   D = sqrt((1/N) * sum(V(i)*W(i))**2).
+! DVNORM is called with N = NEQ and with W(i) = 1.0/EWT(i), where
+! EWT is as set by subroutine DEWSET.
+! If the user supplies this routine, it should return a nonnegative
+! value of DVNORM suitable for use in the error control in DVODE.
+! None of the arguments should be altered by DVNORM.
+! For example, a user-supplied DVNORM function might:
+!   -substitute a max-norm of (V(i)*W(i)) for the rms-norm, or
+!   -ignore some components of V in the norm, with the effect of
+!    suppressing the error control on those components of Y.
+!_______________________________________________________________________
+! Other Routines in the DVODE Package
+
+! In addition to subroutine DVODE, the DVODE package includes the
+! following subroutines and function routines (not user callable):
+!  DVHIN       computes an approximate step size for the initial step.
+!  DVINDY_CORE computes an interpolated value of the y vector at t=TOUT.
+!  DVINDY      computes an interpolated value of the y vector at t=TOUT.
+!              (user callable)
+!  DVSTEP      is the core integrator, which does one step of the
+!              integration and the associated error control.
+!  DVSET       sets all method coefficients and test constants.
+!  DVNLSD,     solves the underlying nonlinear system -- the corrector.
+!  DVNLSS28
+!  DVJAC,      computes and preprocesses the Jacobian matrix J = df/dy
+!  DVJACS28    and the Newton iteration matrix P = I - (h/l1)*J.
+!  DVSOL,      manages solution of linear system in chord iteration.
+!  DVSOLS28
+!  DVJUST      adjusts the history array on a change of order.
+!  DEWSET      sets the error weight vector EWT before each step.
+!  DVNORM      computes the weighted r.m.s. norm of a vector.
+!  DACOPY      is a routine to copy a two-dimensional array to another.
+!  DGEFA_F90 and DGESL_F90 are routines from LINPACK for solving full
+!              systems of linear algebraic equations.
+!  DGBFA_F90 and DGBSL_F90 are routines from LINPACK for solving banded
+!              linear systems.
+!  DAXPY_F90, DSCAL_F90, and DCOPY_F90 are basic linear algebra modules
+!              (BLAS).
+!  DVCHECK     does preliminary checking for roots, and serves as an
+!              interface between subroutine DVODE_F90 and subroutine
+!              DVROOTS.
+!  DVROOTS     finds the leftmost root of a set of functions.
+! ______________________________________________________________________
+! Section 10.  Example Usage
+!
+! MODULE example1
+! The following is a simple example problem, with the coding
+! needed for its solution by DVODE_F90. The problem is from
+! chemical kinetics, and consists of the following three rate
+! equations:
+!     dy1/dt = -.04d0*y1 + 1.d4*y2*y3
+!     dy2/dt = .04d0*y1 - 1.d4*y2*y3 - 3.d7*y2**2
+!     dy3/dt = 3.d7*y2**2
+! on the interval from t = 0.0d0 to t = 4.d10, with initial
+! conditions y1 = 1.0d0, y2 = y3 = 0.0d0. The problem is stiff.
+! The following coding solves this problem with DVODE_F90,
+! using a user supplied Jacobian and printing results at
+! t = .4, 4.,...,4.d10. It uses ITOL = 2 and ATOL much smaller
+! for y2 than y1 or y3 because y2 has much smaller values. At
+! the end of the run, statistical quantities of interest are
+! printed. (See optional output in the full DVODE description
+! below.) Output is written to the file example1.dat.
+! CONTAINS
+!     SUBROUTINE FEX(NEQ, T, Y, YDOT)
+!     IMPLICIT NONE
+!     INTEGER NEQ
+!     DOUBLE PRECISION T, Y, YDOT
+!     DIMENSION Y(NEQ), YDOT(NEQ)
+!     YDOT(1) = -.04D0*Y(1) + 1.D4*Y(2)*Y(3)
+!     YDOT(3) = 3.E7*Y(2)*Y(2)
+!     YDOT(2) = -YDOT(1) - YDOT(3)
+!     RETURN
+!     END SUBROUTINE FEX
+!     SUBROUTINE JEX(NEQ, T, Y, ML, MU, PD, NRPD)
+!     IMPLICIT NONE
+!     INTEGER NEQ,ML,MU,NRPD
+!     DOUBLE PRECISION PD, T, Y
+!     DIMENSION Y(NEQ), PD(NRPD,NEQ)
+!     PD(1,1) = -.04D0
+!     PD(1,2) = 1.D4*Y(3)
+!     PD(1,3) = 1.D4*Y(2)
+!     PD(2,1) = .04D0
+!     PD(2,3) = -PD(1,3)
+!     PD(3,2) = 6.E7*Y(2)
+!     PD(2,2) = -PD(1,2) - PD(3,2)
+!     RETURN
+!     END SUBROUTINE JEX
+! END MODULE example1
+!******************************************************************
+
+!     PROGRAM runexample1
+!     USE DVODE_F90_M
+!     USE example1
+!     IMPLICIT NONE
+!     DOUBLE PRECISION ATOL, RTOL, T, TOUT, Y, RSTATS
+!     INTEGER NEQ, ITASK, ISTATE, ISTATS, IOUT, IERROR, I
+!     DIMENSION Y(3), ATOL(3), RSTATS(22), ISTATS(31)
+!     TYPE(VODE_OPTS) :: OPTIONS
+!     OPEN(UNIT=6, FILE = 'example1.dat')
+!     IERROR = 0
+!     NEQ = 3
+!     Y(1) = 1.0D0
+!     Y(2) = 0.0D0
+!     Y(3) = 0.0D0
+!     T = 0.0D0
+!     TOUT = 0.4D0
+!     RTOL = 1.D-4
+!     ATOL(1) = 1.D-8
+!     ATOL(2) = 1.D-14
+!     ATOL(3) = 1.D-6
+!     ITASK = 1
+!     ISTATE = 1
+!     OPTIONS = SET_OPTS(DENSE_J=.TRUE.,ABSERR_VECTOR=ATOL, &
+!       RELERR=RTOL, USER_SUPPLIED_JACOBIAN=.TRUE.)
+!     DO IOUT = 1,12
+!       CALL DVODE_F90(FEX,NEQ,Y,T,TOUT,ITASK,ISTATE,OPTIONS,J_FCN=JEX)
+!       CALL GET_STATS(RSTATS,ISTATS)
+!       WRITE(6,63)T,Y(1),Y(2),Y(3)
+!       DO I = 1, NEQ
+!          IF (Y(I) < 0.0D0) IERROR = 1
+!       END DO
+!       IF (ISTATE < 0) THEN
+!          WRITE(6,64)ISTATE
+!          STOP
+!       END IF
+!       TOUT = TOUT*10.0D0
+!     END DO
+!     WRITE(6,60) ISTATS(11),ISTATS(12),ISTATS(13),ISTATS(19), &
+!                 ISTATS(20),ISTATS(21),ISTATS(22)
+!     IF (IERROR == 1) THEN
+!        WRITE(6,61)
+!     ELSE
+!        WRITE(6,62)
+!     END IF
+! 60  FORMAT(/'  No. steps =',I4,'   No. f-s =',I4,        &
+!             '  No. J-s =',I4,'   No. LU-s =',I4/         &
+!             '  No. nonlinear iterations =',I4/           &
+!             '  No. nonlinear convergence failures =',I4/ &
+!             '  No. error test failures =',I4/)
+! 61  FORMAT(/' An error occurred.')
+! 62  FORMAT(/' No errors occurred.')
+! 63  FORMAT(' At t =',D12.4,'   y =',3D14.6)
+! 64  FORMAT(///' Error halt: ISTATE =',I3)
+!     STOP
+!     END PROGRAM runexample1
+!
+! MODULE example2
+! The following is a modification of the previous example
+! program to illustrate root finding. The problem is from
+! chemical kinetics, and consists of the following three
+! rate equations:
+!     dy1/dt = -.04d0*y1 + 1.d4*y2*y3
+!     dy2/dt = .04d0*y1 - 1.d4*y2*y3 - 3.d7*y2**2
+!     dy3/dt = 3.d7*y2**2
+! on the interval from t = 0.0d0 to t = 4.d10, with initial
+! conditions y1 = 1.0d0, y2 = y3 = 0.0d0. The problem is stiff.
+! In addition, we want to find the values of t, y1, y2,
+! and y3 at which:
+!   (1) y1 reaches the value 1.d-4, and
+!   (2) y3 reaches the value 1.d-2.
+! The following coding solves this problem with DVODE_F90
+! using an internally generated dense Jacobian and
+! printing results at t = .4, 4., ..., 4.d10, and at the
+! computed roots. It uses ITOL = 2 and ATOL much smaller
+! for y2 than y1 or y3 because y2 has much smaller values.
+! At the end of the run, statistical quantities of interest
+! are printed (see optional outputs in the full description
+! below). Output is written to the file example2.dat.
+! CONTAINS
+!     SUBROUTINE FEX (NEQ, T, Y, YDOT)
+!     IMPLICIT NONE
+!     INTEGER NEQ
+!     DOUBLE PRECISION T, Y, YDOT
+!     DIMENSION Y(3), YDOT(3)
+!     YDOT(1) = -0.04D0*Y(1) + 1.0D4*Y(2)*Y(3)
+!     YDOT(3) = 3.0D7*Y(2)*Y(2)
+!     YDOT(2) = -YDOT(1) - YDOT(3)
+!     RETURN
+!     END SUBROUTINE FEX
+!     SUBROUTINE GEX (NEQ, T, Y, NG, GOUT)
+!     IMPLICIT NONE
+!     INTEGER NEQ, NG
+!     DOUBLE PRECISION T, Y, GOUT
+!     DIMENSION Y(3), GOUT(2)
+!     GOUT(1) = Y(1) - 1.0D-4
+!     GOUT(2) = Y(3) - 1.0D-2
+!     RETURN
+!     END SUBROUTINE GEX
+! END MODULE example2
+!******************************************************************
+!     PROGRAM runexample2
+!     USE DVODE_F90_M
+!     USE example2
+!     IMPLICIT NONE
+!     INTEGER ITASK, ISTATE, NG, NEQ, IOUT, JROOT, ISTATS, &
+!     IERROR, I
+!     DOUBLE PRECISION ATOL, RTOL, RSTATS, T, TOUT, Y
+!     DIMENSION Y(3), ATOL(3), RSTATS(22), ISTATS(31), JROOT(2)
+!     TYPE(VODE_OPTS) :: OPTIONS
+!     OPEN (UNIT=6, FILE='example2.dat')
+!     IERROR = 0
+!     NEQ = 3
+!     Y(1) = 1.0D0
+!     Y(2) = 0.0D0
+!     Y(3) = 0.0D0
+!     T = 0.0D0
+!     TOUT = 0.4D0
+!     RTOL = 1.0D-4
+!     ATOL(1) = 1.0D-8
+!     ATOL(2) = 1.0D-12
+!     ATOL(3) = 1.0D-8
+!     ITASK = 1
+!     ISTATE = 1
+!     NG = 2
+!     OPTIONS = SET_OPTS(DENSE_J=.TRUE.,RELERR=RTOL, &
+!       ABSERR_VECTOR=ATOL,NEVENTS=NG)
+!     DO 40 IOUT = 1,12
+! 10    CONTINUE
+!       CALL DVODE_F90(FEX,NEQ,Y,T,TOUT,ITASK,ISTATE,OPTIONS,G_FCN=GEX)
+!       CALL GET_STATS(RSTATS, ISTATS, NG, JROOT)
+!       WRITE(6,20) T, Y(1), Y(2), Y(3)
+!       DO I = 1, NEQ
+!          IF (Y(I) < 0.0D0) IERROR = 1
+!       END DO
+! 20    FORMAT(' At t =',D12.4,'   Y =',3D14.6)
+!       IF (ISTATE < 0) GOTO 60
+!       IF (ISTATE == 2) GOTO 40
+!       WRITE(6,30) JROOT(1),JROOT(2)
+! 30    FORMAT(5X,' The above line is a root, JROOT =',2I5)
+!       ISTATE = 2
+!       GOTO 10
+! 40  TOUT = TOUT*10.0D0
+!     WRITE(6,50) ISTATS(11), ISTATS(12), ISTATS(13), ISTATS(10)
+!     IF (IERROR == 1) THEN
+!        WRITE(6,61)
+!     ELSE
+!        WRITE(6,62)
+!     END IF
+! 50  FORMAT(/' No. steps =',I4,'  No. f-s =',I4,'  No. J-s =',I4, &
+!     '  No. g-s =',I4/)
+!     STOP
+! 60  WRITE(6,70) ISTATE
+! 61  FORMAT(/' An error occurred.')
+! 62  FORMAT(/' No errors occurred.')
+! 70  FORMAT(///' Error halt.. ISTATE =',I3)
+!     STOP
+!     END PROGRAM runexample2
+!_______________________________________________________________________
+! BEGINNING OF DVODE_F90_M PRIVATE SECTION.
+! Note: This global information is used throughout DVODE_F90.
+!_______________________________________________________________________
+! JACSPDB arrays and parameters.
+  LOGICAL, PRIVATE :: USE_JACSP, LIKE_ORIGINAL_VODE
+  INTEGER, PRIVATE :: INFODS, LIWADS, MAXGRPDS, MINGRPDS, NRFJACDS,    &
+    NCFJACDS, LWKDS, LIWKDS
+  INTEGER, ALLOCATABLE, PRIVATE :: INDROWDS(:), INDCOLDS(:),           &
+    NGRPDS(:), IPNTRDS(:), JPNTRDS(:), IWADS(:), IWKDS(:), IOPTDS(:)
+  KPP_REAL, ALLOCATABLE, PRIVATE :: YSCALEDS(:), WKDS(:), FACDS(:)
+  KPP_REAL, PRIVATE :: U125, U325
+!_______________________________________________________________________
+  LOGICAL, PARAMETER, PRIVATE :: USE_MA48_FOR_SPARSE=.FALSE.
+!_______________________________________________________________________
+! *****MA48 build change point. Replace the above statement.
+! LOGICAL, PARAMETER, PRIVATE :: USE_MA48_FOR_SPARSE=.TRUE.
+!_______________________________________________________________________
+! *****MA48 build change point. Insert these statements.
+! MA48 type declarations:
+! TYPE(ZD01_TYPE) MATRIX
+! TYPE(MA48_CONTROL) CONTROL
+! TYPE(MA48_FACTORS) FACTORS
+! TYPE(MA48_AINFO) AINFO
+! TYPE(MA48_FINFO) FINFO
+! TYPE(MA48_SINFO) SINFO
+!_______________________________________________________________________
+! .. Parameters ..
+!     IPCUTH_MAX - maximum number of times the solver will halve the
+!                  stepsize to prevent an infeasible prediction if
+!                  solution bounds are used
+!     KFC        - maximum number of consecutive convergence failures
+!                  before crashing the order
+!     KFH        - maximum number of consecutive error test failures
+!                  before giving up (changed from 7 to 15)
+!     MAXCOR     - maximum number of corrections
+!     MSBP       - maximum number of steps before forming new P matrix
+!     MXNCF      - maximum number of consecutive convergence failures
+!                  before giving up
+!     MXHNLO     - maximum number of T+H=T messages
+!     MXSTP0     - maximum number of integration steps
+!     L*****     - lengths and pointers for some internal arrays
+!     INTEGER, PARAMETER, PRIVATE :: KFC = -3, KFH = -7, LENIV1 = 33,    &
+      INTEGER, PARAMETER, PRIVATE :: IPCUTH_MAX = 100, KFC = -3,         &
+        KFH = -15, LENIV1 = 33,                                          &
+        LENIV2 = 8, LENRV1 = 48, LENRV2 = 1, LIWUSER = 30, LRWUSER = 22, &
+        MAXCOR = 3, MAX_ARRAY_SIZE = 900000000, MSBP = 20, MXHNL0 = 10,  &
+        MXNCF = 10, MXSTP0 = 5000
+!_______________________________________________________________________
+! *****LAPACK build change point. Use .TRUE. for LAPACK.
+!     LOGICAL, PARAMETER, PRIVATE :: USE_LAPACK = .TRUE.
+!_______________________________________________________________________
+      KPP_REAL, PARAMETER, PRIVATE :: ADDON = 1.0E-6_dp
+      KPP_REAL, PARAMETER, PRIVATE :: BIAS1 = 6.0_dp
+      KPP_REAL, PARAMETER, PRIVATE :: BIAS2 = 6.0_dp
+      KPP_REAL, PARAMETER, PRIVATE :: BIAS3 = 10.0_dp
+      KPP_REAL, PARAMETER, PRIVATE :: CCMAX = 0.3_dp
+      KPP_REAL, PARAMETER, PRIVATE :: CORTES = 0.1_dp
+      KPP_REAL, PARAMETER, PRIVATE :: CRDOWN = 0.3_dp
+      KPP_REAL, PARAMETER, PRIVATE :: ETACF = 0.25_dp
+      KPP_REAL, PARAMETER, PRIVATE :: ETAMIN = 0.1_dp
+      KPP_REAL, PARAMETER, PRIVATE :: ETAMX1 = 1.0E4_dp
+      KPP_REAL, PARAMETER, PRIVATE :: ETAMX2 = 10.0_dp
+      KPP_REAL, PARAMETER, PRIVATE :: ETAMX3 = 10.0_dp
+      KPP_REAL, PARAMETER, PRIVATE :: ETAMXF = 0.2_dp
+      KPP_REAL, PARAMETER, PRIVATE :: FIVE = 5.0_dp
+      KPP_REAL, PARAMETER, PRIVATE :: FOUR = 4.0_dp
+      KPP_REAL, PARAMETER, PRIVATE :: HALF = 0.5_dp
+      KPP_REAL, PARAMETER, PRIVATE :: HUN = 100.0_dp
+      KPP_REAL, PARAMETER, PRIVATE :: HUNDRETH = 0.01_dp
+      KPP_REAL, PARAMETER, PRIVATE :: ONE = 1.0_dp
+      KPP_REAL, PARAMETER, PRIVATE :: ONEPSM = 1.00001_dp
+      KPP_REAL, PARAMETER, PRIVATE :: PT1 = 0.1_dp
+      KPP_REAL, PARAMETER, PRIVATE :: PT2 = 0.2_dp
+      KPP_REAL, PARAMETER, PRIVATE :: RDIV = 2.0_dp
+      KPP_REAL, PARAMETER, PRIVATE :: SIX = 6.0_dp
+      KPP_REAL, PARAMETER, PRIVATE :: TEN = 10.0_dp
+      KPP_REAL, PARAMETER, PRIVATE :: TENTH = 0.1_dp
+      KPP_REAL, PARAMETER, PRIVATE :: THOU = 1000.0_dp
+      KPP_REAL, PARAMETER, PRIVATE :: THRESH = 1.5_dp
+      KPP_REAL, PARAMETER, PRIVATE :: TWO = 2.0_dp
+      KPP_REAL, PARAMETER, PRIVATE :: ZERO = 0.0_dp
+
+! Beginning of DVODE_F90 interface.
+! ..
+! .. Generic Interface Blocks ..
+      INTERFACE DVODE_F90
+
+!         VODE_F90 is the interface subroutine that is actually invoked
+!         when the user calls DVODE_F90. It in turn calls subroutine
+!         DVODE which is the driver that directs all the work.
+          MODULE PROCEDURE VODE_F90
+
+!         GET_STATS can be called to gather integration statistics.
+          MODULE PROCEDURE GET_STATS
+
+!         DVINDY can be called to interpolate the solution and derivative.
+          MODULE PROCEDURE DVINDY
+
+!         RELEASE_ARRAYS can be called to release/deallocate the work arrays.
+          MODULE PROCEDURE RELEASE_ARRAYS
+
+!         SET_IAJA can be called to set sparse matrix descriptor arrays.
+          MODULE PROCEDURE SET_IAJA
+
+!         USERSETS_IAJA can be called to set sparse matrix descriptor arrays.
+          MODULE PROCEDURE USERSETS_IAJA
+
+!         CHECK_STAT can be called to stop if a storage allocation or
+!         deallocation error occurs.
+          MODULE PROCEDURE CHECK_STAT
+
+!         JACSP can be called to calculate a Jacobian using Doug Salane's
+!         algoritm 
+          MODULE PROCEDURE JACSP
+
+!         DVDSM can be called to calculate sparse pointer arrays needed
+!         by JACSP
+          MODULE PROCEDURE DVDSM
+
+      END INTERFACE
+! ..
+! .. Derived Type Declarations ..
+      TYPE, PUBLIC :: VODE_OPTS
+        KPP_REAL, DIMENSION (:), POINTER :: ATOL, RTOL
+        INTEGER :: MF, METH, MITER, MOSS, ITOL, IOPT, NG
+        LOGICAL :: DENSE, BANDED, SPARSE
+      END TYPE VODE_OPTS
+! ..
+! .. Local Scalars ..
+!_______________________________________________________________________
+! *****MA48 build change point. Insert these statements.
+!     For communication with subroutine ma48_control_array:
+!     KPP_REAL, PUBLIC :: COPY_OF_U_PIVOT
+!_______________________________________________________________________
+      KPP_REAL, PRIVATE :: ACNRM, ALPHA, BIG, BIG1, CCMXJ, CGCE, CONP, CRATE,  &
+        DRC, DRES, DXMAX, EPS, ERRMAX, ETA, ETAMAX, FRACINT, FRACSUB, H, HMIN,  &
+        HMXI, HNEW, HSCAL, HU, MEPS, MRESID, MRMIN, PRL1, RC, RESID, RL1,       &
+        RMIN, SETH, T0ST, THEMAX, TLAST, TN, TOL, TOL1, TOUTC, UMAX, UROUND,    &
+        U_PIVOT, X2, WM1, WM2
+      INTEGER, PRIVATE :: ADDTOJA, ADDTONNZ, CONSECUTIVE_CFAILS,                &
+        CONSECUTIVE_EFAILS, ELBOW_ROOM, IADIM, IANPIV, IAVPIV,                  &
+        ICF, ICNCP, IFAIL, IMAX, IMIN, INEWJ, INIT, IPUP, IRANK, IRFND, IRNCP,  &
+        ISTART, ISTATC, ITASKC, JADIM, JCUR, JMIN, JSTART, JSV, KFLAG, KOUNTL,  &
+        KUTH, L, LARGE, LAST, LENIGP, LICN_ALL, LIRN_ALL, LIW, LIWM, LMAX,      &
+        LOCJS, LP, LRW, LWM, LWMDIM, LWMTEMP, LYH, LYHTEMP, MANPIV, MAPIV, MAXG,&
+        MAXIT, MAXORD, MB28, MB48, METH, MICN, MICNCP, MINICN, MINIRN, MIRANK,  &
+        MIRN, MIRNCP, MITER, MLP, MOSS, MP, MSBG, MSBJ, MXHNIL, MXSTEP, N, NZB, &
+        NCFN, NDROP, NDROP1, NDX, NETF, NEWH, NEWQ, NFE, NGC, NGE, NGP, NHNIL,  &
+        NJE, NLP, NLU, NNI, NNZ, NOITER, NQ, NQNYH, NQU, NQWAIT, NSLG, NSLJ,    &
+        NSLP, NSRCH, NSRCH1, NST, NSUBS, NSUPS, NUM, NUMNZ, NYH, NZ_ALL,        &
+        NZ_SWAG, PREVIOUS_MAXORD, WPD, WPS, MA28AD_CALLS, MA28BD_CALLS,         &
+        MA28CD_CALLS, MC19AD_CALLS, MAX_MINIRN, MAX_MINICN, MAX_NNZ, BNGRP
+!       MA48AD_CALLS, MA48BD_CALLS, MA48CD_CALLS
+! *****MA48 build change point. Insert the above line.
+      LOGICAL, PRIVATE :: ABORT, ABORT1, ABORT2, ABORT3, ABORTA, ABORTB,        &
+        ALLOW_DEFAULT_TOLS, BUILD_IAJA, BOUNDS, CHANGED_ACOR, GROW, IAJA_CALLED,&
+        J_HAS_BEEN_COMPUTED, J_IS_CONSTANT, LBIG, LBIG1, LBLOCK, MA48_WAS_USED, &
+        OK_TO_CALL_MA28, SUBS, SUPS, OPTS_CALLED, REDO_PIVOT_SEQUENCE,          &
+        SCALE_MATRIX, SPARSE, USE_FAST_FACTOR, YMAXWARN  
+! ..
+! .. Local Arrays ..
+      KPP_REAL, ALLOCATABLE, PRIVATE :: ACOR(:), CSCALEX(:), EWT(:),           &
+        FPTEMP(:), FTEMP(:), FTEMP1(:), G0(:), G1(:), GX(:), JMAT(:),           &
+        LB(:), PMAT(:), RSCALEX(:), RWORK(:), SAVF(:), UB(:), WM(:),            &
+        WMTEMP(:), WSCALEX(:,:), YHNQP2(:), YHTEMP(:), YMAX(:), YNNEG(:),       &
+        YTEMP(:), DTEMP(:)
+      KPP_REAL, PRIVATE :: EL(13), RUSER(22), TAU(13), TQ(5)
+      INTEGER, ALLOCATABLE, PRIVATE :: BIGP(:), BJGP(:), IA(:), IAB(:), IAN(:), &
+        ICN(:), IDX(:), IGP(:), IKEEP28(:,:), IW28(:,:), IWORK(:), JA(:),       &
+        JAB(:), JAN(:), JATEMP(:), JGP(:), JROOT(:), JVECT(:), SUBDS(:), SUPDS(:)
+      INTEGER, PRIVATE :: IDISP(2), IUSER(30), LNPIV(10), LPIV(10)
+      INTEGER, PRIVATE :: MORD(2) = (/ 12, 5 /)
+! ..
+! .. Public Subroutines and Functions ..
+  PUBLIC ::                                                        &
+  DAXPY_F90, DCOPY_F90, DDOT_F90, DGBFA_F90, DGBSL_F90, DGEFA_F90, &
+  DGESL_F90, DSCAL_F90, IDAMAX_F90
+! ..
+! .. Private Subroutines and Functions ..
+  PRIVATE ::                                                       &
+  CHECK_DIAG    , DACOPY        , DEWSET        , DGROUP        ,  &
+  DGROUPDS      , DVCHECK       , DVHIN         , DVINDY_BNDS   ,  &
+  DVINDY_CORE   , DVJAC         , DVJACS28      , DVJUST        ,  &
+  DVNLSD        , DVNLSS28      , DVNORM        , DVNRDN        ,  &
+  DVNRDP        , DVNRDS        , DVODE         , DVPREPS       ,  &
+  DVROOTS       , DVSET         , DVSOL         , DVSOLS28      ,  &
+  DVSRCO        , DVSTEP        , GDUMMY        , IUMACH        ,  &
+  IXSAV         , JACSPDB       , JDUMMY        , MA28AD        ,  &
+  MA28BD        , MA28CD        , MA28DD        , MA28ID        ,  &
+  MA30AD        , MA30BD        , MA30CD        , MA30DD        ,  &
+  MC13E         , MC19AD        , MC20AD        , MC20BD        ,  &
+  MC21A         , MC21B         , MC22AD        , MC23AD        ,  &
+  MC24AD        , SET_ICN       , XERRDV        , XSETF         ,  &
+  XSETUN        , DEGR          , IDO           , NUMSRT        ,  &
+  SEQ           , SETR          , SLO           , SRTDAT        ,  &
+  FDJS
+! DVJACS48      , DVNLSS48      , DVPREPS48     , DVSOLS48
+!_______________________________________________________________________
+! *****MA48 build change point. Insert the above line.
+!_______________________________________________________________________
+! ..
+! .. Intrinsic Functions ..
+      INTRINSIC KIND
+! ..
+! .. Data Statements ..
+      DATA OPTS_CALLED/ .FALSE./
+      DATA MP/6/, NLP/6/, MLP/6/, NSRCH/32768/, ISTART/0/, MAXIT/16/, &
+        LBIG/ .FALSE./, LBLOCK/ .TRUE./, GROW/ .TRUE./,               &
+        TOL/0.0_dp/, CGCE/0.5_dp/, BIG/0.0_dp/, ABORT1/ .TRUE./,      &
+        ABORT2/ .TRUE./, ABORT3/ .FALSE./, ABORT/ .FALSE./, MIRN/0/,  &
+        MICN/0/, MIRNCP/0/, MICNCP/0/, MIRANK/0/, NDROP1/0/,          &
+        MRMIN/0.0D0/, MRESID/0/, OK_TO_CALL_MA28/.FALSE./
+! ..
+! END OF DVODE_F90 PRIVATE SECTION.
+!_______________________________________________________________________
+
+    CONTAINS
+
+      SUBROUTINE VODE_F90(F,NEQ,Y,T,TOUT,ITASK,ISTATE,OPTS,J_FCN,G_FCN)
+! ..
+! This is an interface for DVODE to allow JAC and GFUN to be
+! OPTIONAL arguments.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Structure Arguments ..
+        TYPE (VODE_OPTS) :: OPTS
+! ..
+! .. Scalar Arguments ..
+        KPP_REAL, INTENT (INOUT) :: T, TOUT
+        INTEGER, INTENT (INOUT) :: ISTATE
+        INTEGER, INTENT (IN) :: ITASK, NEQ
+! ..
+! .. Array Arguments ..
+        KPP_REAL, INTENT (INOUT) :: Y(*)
+! ..
+! .. Subroutine Arguments ..
+        OPTIONAL :: G_FCN, J_FCN
+        EXTERNAL J_FCN
+! ..
+! .. Subroutine Interfaces ..
+     INTERFACE
+       SUBROUTINE F(NEQ,T,Y,YDOT)
+         INTEGER, PARAMETER :: WP = KIND(1.0D0)
+         INTEGER NEQ
+         REAL(WP) T
+         REAL(WP), DIMENSION(NEQ) :: Y, YDOT
+         INTENT(IN)  :: NEQ, T, Y
+         INTENT(OUT) :: YDOT
+       END SUBROUTINE F
+     END INTERFACE
+
+     INTERFACE
+       SUBROUTINE G_FCN(NEQ,T,Y,NG,GROOT)
+         INTEGER, PARAMETER :: WP = KIND(1.0D0)
+         INTEGER NEQ, NG
+         REAL(WP) T
+         REAL(WP), DIMENSION(NEQ) :: Y
+         REAL(WP), DIMENSION(NG) :: GROOT(NG)
+         INTENT(IN)  :: NEQ, T, Y, NG
+         INTENT(OUT) :: GROOT
+       END SUBROUTINE G_FCN
+     END INTERFACE
+
+!    Note:
+!    The best we can do here is to declare J_FCN to be
+!    external. The interface for a sparse problem differs
+!    from that for a banded or dense problem. The following
+!    would suffuce for a banded or dense problem.
+!    INTERFACE
+!      SUBROUTINE J_FCN(NEQ,T,Y,ML,MU,PD,NROWPD)
+!        INTEGER, PARAMETER :: WP = KIND(1.0D0)
+!        INTEGER NEQ, ML, MU, NROWPD
+!        REAL(WP) T
+!        REAL(WP), DIMENSION(NEQ) :: Y
+!        REAL(WP), DIMENSION(NEQ) :: PD(NROWPD,NEQ)
+!        INTENT(IN)  :: NEQ, T, Y, ML, MU, NROWPD
+!        INTENT(INOUT) :: PD
+!      END SUBROUTINE J_FCN
+!    END INTERFACE
+!    The following would suffice for a sparse problem.
+    INTERFACE
+      SUBROUTINE J_FCN(NEQ,T,Y,IA,JA,NZ,P)
+        INTEGER, PARAMETER :: WP = KIND(1.0D0)
+        INTEGER NEQ, NZ
+        REAL(WP) T
+        REAL(WP), DIMENSION Y(*), P(*)
+        INTEGER, DIMENSION IA(*), JA(*)
+        INTENT(IN) :: NEQ, T, Y
+        INTENT(INOUT) IA, JA, NZ, P
+      END SUBROUTINE J_FCN
+    END INTERFACE
+! ..
+! .. Local Scalars ..
+        INTEGER :: HOWCALL, METH, MFA, MITER, MOSS, NG
+        CHARACTER (80) :: MSG
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, PRESENT
+! ..
+! .. FIRST EXECUTABLE STATEMENT VODE_F90
+! ..
+!       Check that SET_OPTS has been called.
+        IF (.NOT.OPTS_CALLED) THEN
+          MSG = 'You have not called SET_OPTS before'
+          CALL XERRDV(MSG,10,1,0,0,0,0,ZERO,ZERO)
+          MSG = 'calling DVODE_F90 the first time.'
+          CALL XERRDV(MSG,10,2,0,0,0,0,ZERO,ZERO)
+        END IF
+
+!       Check that JAC is present if it is needed.
+        IF (PRESENT(J_FCN)) THEN
+        ELSE
+!         Note:
+!         MOSS is irrelevant. OPTS%MF is two digits after the
+!         call to SET_OPTS.
+          MFA = ABS(OPTS%MF)
+          MOSS = MFA/100
+          METH = (MFA-100*MOSS)/10
+          MITER = MFA - 100*MOSS - 10*METH
+          IF (MITER==1 .OR. MITER==4 .OR. MITER==6) THEN
+            MSG = 'You have specified a value of the integration'
+            CALL XERRDV(MSG,20,1,0,0,0,0,ZERO,ZERO)
+            MSG = 'method flag MF which requires that you supply'
+            CALL XERRDV(MSG,20,1,0,0,0,0,ZERO,ZERO)
+            MSG = 'a Jacobian subroutine JAC; but FAC is not'
+            CALL XERRDV(MSG,20,1,0,0,0,0,ZERO,ZERO)
+            MSG = 'present in the argument list.'
+            CALL XERRDV(MSG,20,2,0,0,0,0,ZERO,ZERO)
+          END IF
+        END IF
+
+!       Check that GFUN is present if it is needed.
+
+        IF (PRESENT(G_FCN)) THEN
+        ELSE
+          NG = OPTS%NG
+          IF (NG>0) THEN
+            MSG = 'You have indicated that events are present but'
+            CALL XERRDV(MSG,30,1,0,0,0,0,ZERO,ZERO)
+            MSG = 'you have not supplied a GFUN subroutine.'
+            CALL XERRDV(MSG,30,2,0,0,0,0,ZERO,ZERO)
+          END IF
+        END IF
+
+!     Determine how DVODE will be called.
+
+!     HOWCALL = 1: JDUMMY, GDUMMY
+!               2: JAC, GFUN
+!               3: JAC, GDUMMY
+!               4: JDUMMY, GFUN
+        HOWCALL = 1
+        IF (PRESENT(J_FCN)) THEN
+          IF (PRESENT(G_FCN)) THEN
+            HOWCALL = 2
+          ELSE
+            HOWCALL = 3
+          END IF
+        ELSE
+          IF (PRESENT(G_FCN)) THEN
+            HOWCALL = 4
+          ELSE
+            HOWCALL = 1
+          END IF
+        END IF
+
+!       Call DVODE to do the integration.
+
+        IF (HOWCALL==1) THEN
+          CALL DVODE(F,NEQ,Y,T,TOUT,ITASK,ISTATE,OPTS,JDUMMY,GDUMMY)
+        ELSE IF (HOWCALL==2) THEN
+          CALL DVODE(F,NEQ,Y,T,TOUT,ITASK,ISTATE,OPTS,J_FCN,G_FCN)
+        ELSE IF (HOWCALL==3) THEN
+          CALL DVODE(F,NEQ,Y,T,TOUT,ITASK,ISTATE,OPTS,J_FCN,GDUMMY)
+        ELSE IF (HOWCALL==4) THEN
+          CALL DVODE(F,NEQ,Y,T,TOUT,ITASK,ISTATE,OPTS,JDUMMY,G_FCN)
+        END IF
+        RETURN
+
+      END SUBROUTINE VODE_F90
+!_______________________________________________________________________
+
+      SUBROUTINE JDUMMY(NEQ,T,Y,ML,MU,PD,NROWPD)
+! ..
+! This is a dummy Jacobian subroutine for VODE_F90 (never called).
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        KPP_REAL :: T
+        INTEGER :: ML, MU, NEQ, NROWPD, I
+        LOGICAL DUMMY
+! ..
+! .. Array Arguments ..
+        KPP_REAL :: PD(NROWPD,*), Y(*)
+! ..
+      INTENT(IN) T, Y, ML, MU, NROWPD
+      INTENT(INOUT) PD
+! ..
+! .. FIRST EXECUTABLE STATEMENT JDUMMY
+! ..
+!       Get rid of some needless compiler warning messages.
+        DUMMY = .FALSE.
+        IF (DUMMY) THEN
+          I = NEQ
+          I = ML
+          I = MU
+          I = NROWPD
+          PD(1,1) = T
+          PD(1,1) = Y(1)
+          PD(1,1) = DBLE(REAL(I))
+        END IF
+        RETURN
+
+      END SUBROUTINE JDUMMY
+!_______________________________________________________________________
+
+      SUBROUTINE GDUMMY(NEQ,T,Y,NG,GOUT)
+! ..
+! This is a dummy event subroutine for VODE_F90 (never called).
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        KPP_REAL :: T
+        INTEGER :: NEQ, NG, I
+        LOGICAL DUMMY
+! ..
+! .. Array Arguments ..
+        KPP_REAL :: GOUT(*), Y(*)
+! ..
+      INTENT(IN) NEQ, T, Y, NG
+      INTENT(OUT) GOUT
+! ..
+! .. FIRST EXECUTABLE STATEMENT JDUMMY
+! ..
+!       Get rid of some needless compiler warning messages.
+        DUMMY = .FALSE.
+        IF (DUMMY) THEN
+          I = NEQ
+          I = NG
+          GOUT(1) = T
+          GOUT(1) = Y(1)
+          GOUT(1) = DBLE(REAL(I))
+        END IF
+        RETURN
+
+      END SUBROUTINE GDUMMY
+!_______________________________________________________________________
+
+  SUBROUTINE SET_OPTS_2(HMAX,HMIN,MXSTEP)
+! ..
+! Allow the maximum step size, the minimum step size, and the maximum
+! number of steps to be changed without restarting the integration.
+! ..
+!                     Quick Summary of Options
+! HMAX                   - Maximum step size in DVODE 
+! HMIN                   - Minimum step size in DVODE 
+! MXSTEP                 - Maximum number of integration steps in DVODE
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        KPP_REAL, OPTIONAL, INTENT (IN) :: HMAX, HMIN
+        INTEGER, OPTIONAL, INTENT (IN) :: MXSTEP
+! ..
+! .. Local Scalars ..
+        CHARACTER (80) :: MSG
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ALLOCATED, PRESENT
+! ..
+! .. FIRST EXECUTABLE STATEMENT SET_OPTS_2
+! ..
+!       Check that SET_OPTS has been called:
+        IF (.NOT.OPTS_CALLED) THEN
+          MSG = 'You have not called SET_OPTS before'
+          CALL XERRDV(MSG,40,1,0,0,0,0,ZERO,ZERO)
+          MSG = 'calling subroutine SET_OPTS_2.'
+          CALL XERRDV(MSG,40,2,0,0,0,0,ZERO,ZERO)
+        END IF
+        IF (PRESENT(HMAX)) THEN
+          RUSER(6) = HMAX
+          MSG = 'HMAX changed in SET_OPTS_2.'
+          CALL XERRDV(MSG,50,1,0,0,0,1,HMAX,ZERO)
+        END IF
+        IF (PRESENT(HMIN)) THEN
+          RUSER(7) = HMIN
+          MSG = 'HMIN changed in SET_OPTS_2.'
+          CALL XERRDV(MSG,60,1,0,0,0,1,HMIN,ZERO)
+        END IF
+        IF (PRESENT(MXSTEP)) THEN
+          IUSER(6) = MXSTEP
+          MSG = 'MXSTEP changed in SET_OPTS_2.'
+          CALL XERRDV(MSG,70,1,1,MXSTEP,0,0,ZERO,ZERO)
+        END IF
+
+  END SUBROUTINE SET_OPTS_2
+!_______________________________________________________________________
+
+  FUNCTION SET_NORMAL_OPTS(DENSE_J, BANDED_J, SPARSE_J,                &
+    USER_SUPPLIED_JACOBIAN, LOWER_BANDWIDTH, UPPER_BANDWIDTH,          &
+    RELERR, ABSERR, ABSERR_VECTOR, NEVENTS) RESULT(OPTS)
+
+! FUNCTION SET_NORMAL_OPTS:
+!    Jacobian type:
+!       DENSE_J, BANDED_J, SPARSE_J
+!    Analytic Jacobian:
+!       USER_SUPPLIED_JACOBIAN
+!    If banded Jacobian:
+!       LOWER_BANDWIDTH,UPPER_BANDWIDTH
+!    Error tolerances:
+!       RELERR, ABSERR, ABSERR_VECTOR
+!    Rootfinding:
+!       NEVENTS
+! RESULT(OPTS)
+
+! Note:
+! Invoking SET_NORMAL_OPTS causes an integration restart. A common
+! situation is one in which all you wish to change is one of the
+! vode.f77 optional parameters HMAX, HMIN, or MXSTEP. Once the
+! integration is started and this is all you wish to do, you can
+! change any of these parameters without restarting the integration
+! simply by calling subroutine SET_OPTS_2:
+!      CALL SET_OPTS_2(HMAX,HMIN,MXSTEP)
+! Each of the three arguments is optional and only the ones actually
+! supplied will be used. Changes will take effect in the same manner
+! as in the VODE.f77 solver.
+!
+! NORMAL_OPTIONS sets user parameters for DVODE via keywords.
+! Values that are defined herein will be used internally by
+! DVODE. All option keywords are OPTIONAL and order is not
+! important. These options should be adequate for most problems.
+! If you wish to use more specialized options, you must use
+! SET_INTERMEDIATE_OPTS or SET_OPTS rather than NORMAL_OPTS.
+! If you wish to use SET_INTERMEDIATE_OPTS or SET_OPTS, you
+! may use any of the SET_NORMAL_OPTS keywords or any of the
+! keywords available for these two functions. Of course, you
+! may opt to simply use SET_OPTS for all problems.
+
+! Note that DVODE_F90 requires that one of SET_NORMAL_OPTS or
+! SET_INTERMEDIATE_OPTS or SET_OPTS is called before the first
+! time DVODE_F90 is called.
+!
+! Important Note:
+! If feasible, you should use the dense or banded option; but
+! SET_NORMAL_OPTS allows you to use a sparse internal Jacobian
+! (i.e., one that is determined using finite differences) and
+! structure pointere array that are determined internally
+! using finite differences. If any of the following are true
+!    (1) DVODE_F90 doesn't perform satisfactorily for
+!        your problem,
+!    (2) you are solving a very large problem,
+!    (3) you wish to supply the sparse pointer arrays
+!        directly,
+!    (4) you wish to supply an analytical sparse Jacobian,
+! or
+!    (5) you wish to use one of the specialized sparse
+!        Jacobian options,
+! you are encouraged to use SET_OPTS which contains several
+! provisions for solving sparse problems more efficiently.
+
+! Option Types:
+! DENSE_J                - logical
+! BANDED_J               - logical
+! SPARSE_J               - logical
+! USER_SUPPLIED_JACOBIAN - logical
+! LOWER_BANDWIDTH        - integer
+! UPPER_BANDWIDTH        - integer
+! RELERR                 - real(wp) scalar
+! ABSERR                 - real(wp) scalar
+! ABSERR_VECTOR          - real(wp) vector
+! NEVENTS                - integer
+! Options:
+! ABSERR                 = Absolute error tolerance
+! ABSERR_VECTOR          = Vector of absolute error tolerances
+! RELERR                 = Scalar relative error tolerance
+! NEVENTS                = Number of event functions (requires
+!                          user-supplied GFUN)
+! DENSE_J                = Use dense linear algebra if .TRUE.
+! BANDED_J               = Use banded linear algebra if .TRUE.
+!   LOWER_BANDWIDTH      = Lower bandwidth of the Jacobian
+!                          (required if BANDED_J = .TRUE.)
+!   UPPER_BANDWIDTH      = Upper bandwidth of the Jacobian
+!                          (required if BANDED_J = .TRUE.)
+! SPARSE_J               = Use sparse linear algebra if .TRUE.
+! USER_SUPPLIED_JACOBIAN = Exact Jacobian option
+!                          (requires user-supplied JAC;
+!                          ignored for SPARSE_J=.TRUE.)
+!
+! Note: DENSE_J takes precedence over BANDED_J which in turn
+! takes precedence over SPARSE_J if more than one is supplied.
+! If neither of the three flags is present, the nonstiff Adams
+! option will be used. Similiarly, ABSERR_VECTOR takes
+! precedence over ABSERR.
+!
+! Note on Jacobian Storage Formats:
+!
+! If you supply an analytic Jacobian PD, load the
+! Jacobian elements DF(I)/DY(J), the partial
+! derivative of F(I) with respect to Y(J), using
+! the following formats. Here, Y is the solution,
+! F is the derivative, and PD is the Jacobian.
+!
+! For a full Jacobian, load PD(I,J) with DF(I)/DY(J).
+! Your code might look like this:
+!    DO J = 1, NEQ
+!       DO I = 1, NEQ
+!          PD(I,J) = ... DF(I)/DY(J)
+!       END DO
+!    END DO       
+!
+! For a banded Jacobian, load PD(I-J+MU+1,J) with
+! DF(I)/DY(J) where ML is the lower bandwidth
+! and MU is the upper bandwidth of the Jacobian.
+! Your code might look like this:
+!    DO J = 1, NEQ
+!       I1 = MAX(1,J-ML)
+!       I2 = MIN(N,J+MU)
+!       DO I = I1, I2
+!          K = I-J+MU+1
+!          PD(K,J) = ... DF(I)/DY(J)
+!       END DO
+!    END DO
+! ..
+     IMPLICIT NONE
+! ..
+! .. Function Return Value ..
+        TYPE (VODE_OPTS) :: OPTS
+! ..
+! .. Scalar Arguments ..
+        KPP_REAL, OPTIONAL, INTENT (IN) :: ABSERR,RELERR
+        INTEGER, OPTIONAL, INTENT (IN) :: LOWER_BANDWIDTH,   &
+          NEVENTS,UPPER_BANDWIDTH
+        LOGICAL, OPTIONAL, INTENT (IN) :: BANDED_J, DENSE_J, &
+          SPARSE_J, USER_SUPPLIED_JACOBIAN
+! ..
+! .. Array Arguments ..
+        KPP_REAL, OPTIONAL, INTENT (IN) :: ABSERR_VECTOR(:)
+! ..
+! .. Local Scalars ..
+        INTEGER :: IER,IOPT,METH,MF,MFA,MFSIGN,MITER,ML,MOSS, &
+          MU,NAE,NG,NRE
+        LOGICAL :: BANDED,DENSE,SPARSE
+        CHARACTER (80) :: MSG
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ALLOCATED, IABS, MAX, MINVAL, PRESENT, SIGN, SIZE
+! ..
+! .. FIRST EXECUTABLE STATEMENT SET_NORMAL_OPTS
+! ..
+        RUSER(1:LRWUSER) = ZERO
+        IUSER(1:LIWUSER) = 0
+        
+!       Allow default error tolerances?
+        ALLOW_DEFAULT_TOLS = .FALSE.
+
+!       Maximum number of consecutive error test failures?
+        CONSECUTIVE_EFAILS = KFH
+
+!       Maximum number of consecutive corrector iteration failures?
+        CONSECUTIVE_CFAILS = MXNCF
+
+!       Use JACSP to approximate Jacobian?
+        USE_JACSP = .FALSE.
+
+!       Set the flag to indicate that SET_NORMAL_OPTS has been called.
+        OPTS_CALLED = .TRUE.
+
+!       Set the MA48 storage cleanup flag.
+        MA48_WAS_USED = .FALSE.
+
+!       Set the fast factor option for MA48,
+        USE_FAST_FACTOR = .TRUE.
+
+!       Set the constant Jacobian flags.
+        J_IS_CONSTANT = .FALSE.
+        J_HAS_BEEN_COMPUTED = .FALSE.
+
+!       Determine the working precision and define the value for UMAX
+!       expected by MA28. Note that it is different for single and
+!       double precision.
+        WPD = KIND(1.0D0)
+        WPS = KIND(1.0E0)
+        IF (WPD/=WP .AND. WPS/=WP) THEN
+          MSG = 'Illegal working precision in SET_NORMAL_OPTS.'
+          CALL XERRDV(MSG,80,2,0,0,0,0,ZERO,ZERO)
+        END IF
+        IF (WPD==WP) THEN
+!       Working precision is double.
+          UMAX = 0.999999999_dp
+        ELSE
+!       Working precision is single.
+          UMAX = 0.9999_dp
+        END IF
+
+        MA28AD_CALLS = 0
+        MA28BD_CALLS = 0
+        MA28CD_CALLS = 0
+        MC19AD_CALLS = 0
+!_______________________________________________________________________
+! *****MA48 build change point. Insert these statements.
+!       MA48AD_CALLS = 0
+!       MA48BD_CALLS = 0
+!       MA48CD_CALLS = 0
+!_______________________________________________________________________
+        IRNCP = 0
+        ICNCP = 0
+        MINIRN = 0
+        MINICN = 0
+        MAX_MINIRN = 0
+        MAX_MINICN = 0
+        MAX_NNZ = 0
+
+!       Set the flag to warn the user if |(y(t)| < abserr.
+        YMAXWARN = .FALSE.
+
+!       Load defaults for the optional input arrays for DVODE.
+        IUSER(1:8) = 0
+        RUSER(1:8) = ZERO
+
+!       Set the method flag.
+        MF = 10
+        IF (PRESENT(SPARSE_J)) THEN
+          IF (SPARSE_J) THEN
+             MF = 227
+             IF (PRESENT(USER_SUPPLIED_JACOBIAN)) THEN
+               MSG = 'You have indicated you wish to supply an'
+               CALL XERRDV(MSG,90,1,0,0,0,0,ZERO,ZERO)
+               MSG = 'exact sparse Jacobian in function'
+               CALL XERRDV(MSG,90,1,0,0,0,0,ZERO,ZERO)
+               MSG = 'SET_NORMAL_OPTS. In order to do this,'
+               CALL XERRDV(MSG,90,1,0,0,0,0,ZERO,ZERO)
+               MSG = 'you must use SET_OPTS. Execution will'
+               CALL XERRDV(MSG,90,1,0,0,0,0,ZERO,ZERO)
+               MSG = 'continue.'
+               CALL XERRDV(MSG,90,1,0,0,0,0,ZERO,ZERO)
+             END IF
+          END IF
+        END IF
+
+        IF (PRESENT(BANDED_J)) THEN
+          IF (BANDED_J) THEN
+            IF (PRESENT(USER_SUPPLIED_JACOBIAN)) THEN
+              IF (USER_SUPPLIED_JACOBIAN) THEN
+                MF = 24
+              ELSE
+                MF = 25
+              END IF
+            ELSE
+              MF = 25
+            END IF
+          END IF
+        END IF
+
+        IF (PRESENT(DENSE_J)) THEN
+          IF (DENSE_J) THEN
+            IF (PRESENT(USER_SUPPLIED_JACOBIAN)) THEN
+              IF (USER_SUPPLIED_JACOBIAN) THEN
+                MF = 21
+              ELSE
+                MF = 22
+              END IF
+            ELSE
+              MF = 22
+            END IF
+          END IF
+        END IF
+
+!       Check for errors in MF.
+        MFA = IABS(MF)
+        MOSS = MFA/100
+        METH = (MFA-100*MOSS)/10
+        MITER = MFA - 100*MOSS - 10*METH
+        IF (METH<1 .OR. METH>2) THEN
+          MSG = 'Illegal value of METH in SET_NORMAL_OPTS.'
+          CALL XERRDV(MSG,100,2,0,0,0,0,ZERO,ZERO)
+        END IF
+        IF (MITER<0 .OR. MITER>7) THEN
+          MSG = 'Illegal value of MITER in SET_NORMAL_OPTS.'
+          CALL XERRDV(MSG,110,2,0,0,0,0,ZERO,ZERO)
+        END IF
+        IF (MOSS<0 .OR. MOSS>2) THEN
+          MSG = 'Illegal value of MOSS in SET_NORMAL_OPTS.'
+          CALL XERRDV(MSG,120,2,0,0,0,0,ZERO,ZERO)
+        END IF
+
+!       Reset MF, now that MOSS is known.
+        MFSIGN = SIGN(1,MF)
+        MF = MF - 100*MOSS*MFSIGN
+
+        IF (MITER==0) THEN
+          DENSE = .FALSE.
+          BANDED = .FALSE.
+          SPARSE = .FALSE.
+        ELSE IF (MITER==1 .OR. MITER==2) THEN
+          DENSE = .TRUE.
+          BANDED = .FALSE.
+          SPARSE = .FALSE.
+        ELSE IF (MITER==3) THEN
+          DENSE = .FALSE.
+          BANDED = .FALSE.
+          SPARSE = .FALSE.
+        ELSE IF (MITER==4 .OR. MITER==5) THEN
+          DENSE = .FALSE.
+          BANDED = .TRUE.
+          SPARSE = .FALSE.
+        ELSE IF (MITER==6 .OR. MITER==7) THEN
+          DENSE = .FALSE.
+          BANDED = .FALSE.
+          SPARSE = .TRUE.
+        END IF
+
+!       Define the banded Jacobian band widths.
+        IF (BANDED) THEN
+          IF (PRESENT(LOWER_BANDWIDTH)) THEN
+            ML = LOWER_BANDWIDTH
+            IUSER(1) = ML
+          ELSE
+            MSG = 'In SET_NORMAL_OPTS you have indicated a'
+            CALL XERRDV(MSG,130,1,0,0,0,0,ZERO,ZERO)
+            MSG = 'banded Jacobian but you have not supplied'
+            CALL XERRDV(MSG,130,1,0,0,0,0,ZERO,ZERO)
+            MSG = 'the lower bandwidth.'
+            CALL XERRDV(MSG,130,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          IF (PRESENT(UPPER_BANDWIDTH)) THEN
+            MU = UPPER_BANDWIDTH
+            IUSER(2) = MU
+          ELSE
+            MSG = 'In SET_NORMAL_OPTS you have indicated a'
+            CALL XERRDV(MSG,140,1,0,0,0,0,ZERO,ZERO)
+            MSG = 'banded Jacobian but you have not supplied'
+            CALL XERRDV(MSG,140,1,0,0,0,0,ZERO,ZERO)
+            MSG = 'the upper bandwidth.'
+            CALL XERRDV(MSG,140,2,0,0,0,0,ZERO,ZERO)
+          END IF
+        END IF
+
+!       Define the sparse Jacobian options.
+        IF (SPARSE) THEN
+!         Set the MA28 message flag.
+          LP = 0
+!         Set the MA28 pivot sequence frequency flag.
+          REDO_PIVOT_SEQUENCE = .FALSE.
+!         Set the MA28 singularity threshold.
+          EPS = 1.0E-4_dp
+!         Use scaling of the iteration matrix.
+          SCALE_MATRIX = .TRUE.
+!         Define the elbow room factor for the MA28 sparse work arrays.
+          ELBOW_ROOM = 2
+!         NZSWAG is a swag for the number of nonzeros in the Jacobian.
+          NZ_SWAG = 0
+!         Use partial pivoting.
+          U_PIVOT = ONE
+!         Indicate that SET_IAJA has not yet been called successfully.
+          IAJA_CALLED = .FALSE.
+!         Check for illegal method flags.
+          IF (MOSS==2 .AND. MITER/=7) THEN
+            MSG = 'In SET_NORMAL_OPTS MOSS=2 but MITER is not 7.'
+            CALL XERRDV(MSG,150,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          IF (MOSS==1 .AND. MITER/=6) THEN
+            MSG = 'In SET_NORMAL_OPTS MOSS=1 but MITER is not 6.'
+            CALL XERRDV(MSG,160,2,0,0,0,0,ZERO,ZERO)
+          END IF
+!         IF (MOSS==0 .AND. MITER/=7) THEN
+!           MSG = 'In SET_NORMAL_OPTS MOSS=0 but MITER is not 7.'
+!           CALL XERRDV(MSG,170,2,0,0,0,0,ZERO,ZERO)
+!         END IF
+        END IF
+
+!       Define the number of event functions.
+        IF (PRESENT(NEVENTS)) THEN
+          IF (NEVENTS>0) THEN
+            NG = NEVENTS
+          ELSE
+            NG = 0
+          END IF
+        ELSE
+          NG = 0
+        END IF
+
+!       No solution bounds will be imposed.
+        BOUNDS = .FALSE.
+
+!       Load the user options into the solution structure.
+        OPTS%MF = MF
+        OPTS%METH = METH
+        OPTS%MITER = MITER
+        OPTS%MOSS = MOSS
+        OPTS%DENSE = DENSE
+        OPTS%BANDED = BANDED
+        OPTS%SPARSE = SPARSE
+        OPTS%NG = NG
+
+        IOPT = 1
+        OPTS%IOPT = IOPT
+
+!       Process the error tolerances.
+
+!       Relative error tolerance.
+        NRE = 1
+        ALLOCATE (OPTS%RTOL(NRE),STAT=IER)
+        CALL CHECK_STAT(IER,10)
+        IF (PRESENT(RELERR)) THEN
+          IF (RELERR<ZERO) THEN
+            MSG = 'RELERR must be nonnegative.'
+            CALL XERRDV(MSG,180,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          OPTS%RTOL = RELERR
+        ELSE
+          IF (ALLOW_DEFAULT_TOLS) THEN
+             OPTS%RTOL = 1.0E-4_dp
+             MSG = 'By not specifying RELERR, you have elected to use a default'
+             CALL XERRDV(MSG,190,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'relative error tolerance equal to 1.0D-4. Please be aware a'
+             CALL XERRDV(MSG,190,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'tolerance this large is not appropriate for all problems.'
+             CALL XERRDV(MSG,190,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'Execution will continue'
+             CALL XERRDV(MSG,190,1,0,0,0,0,ZERO,ZERO)
+          ELSE
+             MSG = 'You must specify a nonzero relative error tolerance.'
+             CALL XERRDV(MSG,200,2,0,0,0,0,ZERO,ZERO)
+          END IF
+        END IF
+
+!       Absolute error tolerance(s).
+        IF (PRESENT(ABSERR_VECTOR)) THEN
+          IF (MINVAL(ABSERR_VECTOR)<ZERO) THEN
+            MSG = 'All components of ABSERR_VECTOR must'
+            CALL XERRDV(MSG,210,1,0,0,0,0,ZERO,ZERO)
+            MSG = 'be nonnegative.'
+            CALL XERRDV(MSG,210,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          NAE = SIZE(ABSERR_VECTOR)
+        ELSE
+          NAE = 1
+        END IF
+        ALLOCATE (OPTS%ATOL(NAE),STAT=IER)
+        CALL CHECK_STAT(IER,20)
+        IF (PRESENT(ABSERR_VECTOR)) THEN
+          OPTS%ATOL = ABSERR_VECTOR
+        ELSE IF (PRESENT(ABSERR)) THEN
+          IF (ABSERR<ZERO) THEN
+            MSG = 'ABSERR must be nonnegative.'
+            CALL XERRDV(MSG,220,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          OPTS%ATOL = ABSERR
+        ELSE
+          IF (ALLOW_DEFAULT_TOLS) THEN
+             OPTS%ATOL = 1D-6
+             MSG = 'By not specifying ABSERR, you have elected to use a default'
+             CALL XERRDV(MSG,230,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'absolute error tolerance equal to 1.0D-6. Please be aware a'
+             CALL XERRDV(MSG,230,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'tolerance this large is not appropriate for all problems.'
+             CALL XERRDV(MSG,230,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'Execution will continue'
+             CALL XERRDV(MSG,230,1,0,0,0,0,ZERO,ZERO)
+          ELSE
+             MSG = 'You must specify a vector of absolute error tolerances or'
+             CALL XERRDV(MSG,240,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'a scalar error tolerance. It is recommended that you use'
+             CALL XERRDV(MSG,240,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'a vector of absolute error tolerances.'
+             CALL XERRDV(MSG,240,2,0,0,0,0,ZERO,ZERO)
+          END IF
+        END IF
+
+!       ITOL error tolerance flag.
+!          ITOL   RTOL     ATOL            EWT(i)
+!            1   scalar   scalar  RTOL*ABS(Y(i)) + ATOL
+!            2   scalar   array   RTOL*ABS(Y(i)) + ATOL(i)
+        IF (PRESENT(ABSERR_VECTOR)) THEN
+           OPTS%ITOL = 2
+        ELSE
+           OPTS%ITOL = 1
+        END IF
+        RETURN
+
+  END FUNCTION SET_NORMAL_OPTS
+!_______________________________________________________________________
+
+  FUNCTION SET_INTERMEDIATE_OPTS(DENSE_J, BANDED_J, SPARSE_J,          &
+    USER_SUPPLIED_JACOBIAN,                                            &
+    LOWER_BANDWIDTH, UPPER_BANDWIDTH,                                  &
+    RELERR, ABSERR, ABSERR_VECTOR,                                     &
+    TCRIT, H0, HMAX, HMIN, MAXORD, MXSTEP, MXHNIL,                     &
+    NZSWAG, USER_SUPPLIED_SPARSITY, MA28_RPS,                          &
+    NEVENTS, CONSTRAINED, CLOWER, CUPPER, CHANGE_ONLY_f77_OPTIONS)     &
+  RESULT(OPTS)
+
+! FUNCTION SET_INTERMEDIATE_OPTS:
+!    Jacobian type:
+!       DENSE_J, BANDED_J, SPARSE_J
+!    Analytic Jacobian:
+!       USER_SUPPLIED_JACOBIAN
+!    If banded Jacobian:
+!       LOWER_BANDWIDTH, UPPER_BANDWIDTH
+!    Error tolerances:
+!       RELERR, ABSERR, ABSERR_VECTOR
+!    VODE.f77 optional parameters:
+!       TCRIT, H0, HMAX, HMIN, MAXORD, MXSTEP, MXHNIL
+!    Sparse flags:
+!       NZSWAG, USER_SUPPLIED_SPARSITY, MA28_RPS
+!    Rootfinding:
+!       NEVENTS
+!    Impose bounds on solution:
+!       CONSTRAINED, CLOWER, CUPPER
+!    Change one or more of HMAX, HMIN, TCRIT, MXSTEP, MXHNIL, MAXORD
+!       CHANGE_ONLY_f77_OPTIONS
+! RESULT(OPTS)
+
+! SET_OPTIONS sets user parameters for DVODE via keywords. Values
+! that are defined herein will be used internally by DVODE.
+! All option keywords are OPTIONAL and order is not important.
+
+! Note that DVODE_F90 requires that one of SET_NORMAL_OPTS or
+! SET_INTERMEDIATE_OPTS or SET_OPTS is called before the first
+! time DVODE_F90 is called.
+
+!                     Quick Summary of Options
+
+! DENSE_J                - Jacobian is sparse alternative to MF
+! BANDED_J               - Jacobian is banded alternative to MF 
+! SPARSE_J               - Jacobian is sparse alternative to MF   
+! USER_SUPPLIED_JACOBIAN - User will supply Jacobian subroutine
+!                          (user supplied subroutine JAC required)
+! LOWER_BANDWIDTH        - Lower bandwidth ML in DVODE
+! UPPER_BANDWIDTH        - Upper bandwidth MU in DVODE
+! RELERR                 - Scalar relative error tolerance in DVODE
+! ABSERR                 - Scalar absolute error tolerance in DVODE
+! ABSERR_VECTOR          - Vector absolute error tolerance in DVODE
+! TCRIT                  - Critical time TCRIT in DVODE
+! H0                     - Starting step size in DVODE
+! HMAX                   - Maximum step size in DVODE 
+! HMIN                   - Minimum step size in DVODE 
+! MAXORD                 - Maximum integration order in DVODE
+! MXSTEP                 - Maximum number of integration steps
+!                          in DVODE
+! MXHNIL                 - Maximum number of T+H=T messages in DVODE
+! NZSWAG                 - guess for the number of nonzeros in sparse
+!                          Jacobian
+! USER_SUPPLIED_SPARSITY - user will supply sparsity structure
+!                          arrays by calling USERSETS_IAJA 
+! MA28_RPS               - Redo MA28AD pivot sequence if a singularity
+!                          is encountered
+! NEVENTS                - number of user defined root finding functions
+!                          (user supplied subroutine G required)
+! CONSTRAINED,           - array of solution component indices that
+! CLOWER,                  are to be constrained by the lower and
+! CUPPER                   upper bound arrays CLOWER and CUPPER so that
+!                          CLOWER(I) <= Y(CONSTRAINED(I)) <= CUPPER(I)
+!                     Options Types
+! DENSE_J                - logical
+! BANDED_J               - logical
+! SPARSE_J               - logical
+! USER_SUPPLIED_JACOBIAN - logical
+! LOWER_BANDWIDTH        - integer
+! UPPER_BANDWIDTH        - integer
+! RELERR                 - real(wp) scalar
+! ABSERR                 - real(wp) scalar
+! ABSERR_VECTOR          - real(wp) vector
+! TCRIT                  - real(wp) scalar
+! H0                     - real(wp) scalar
+! HMAX                   - real(wp) scalar
+! HMIN                   - real(wp) scalar
+! MAXORD                 - integer
+! MXSTEP                 - integer
+! MXHNIL                 - integer
+! NZSWAG                 - integer
+! USER_SUPPLIED_SPARSITY - logical
+! MA28_RPS               - logical
+! NEVENTS                - integer
+! CONSTRAINED            - integer array
+! CLOWER                 - real(wp) array
+! CUPPER                 - real(wp) array
+! CHANGE_ONLY_f77_OPTIONS- logical
+! Argument list parameters:
+! ABSERR                   = scalar absolute error tolerance
+! ABSERR_VECTOR            = vector of absolute error tolerances
+! RELERR                   = scalar relative error tolerance
+! NEVENTS                  = Number of event functions (requires
+!                            user-supplied GFUN)
+! DENSE_J                  = use dense linear algebra if .TRUE.
+! BANDED_J                 = use banded linear algebra if .TRUE.
+!   LOWER_BANDWIDTH        = lower bandwidth of the Jacobian
+!                            (required if BANDED_J = .TRUE.)
+!   UPPER_BANDWIDTH        = upper bandwidth of the Jacobian
+!                            (required if BANDED_J = .TRUE.)
+! SPARSE_J                 = use sparse linear algebra if .TRUE.
+!
+!   NZSWAG                 = If you wish you may supply a guess,
+!                            NZSWAG, at the number of nonzeros
+!                            in the Jacobian matrix. In some cases
+!                            this will speed up the determination
+!                            of the necessary storage.
+!   USER_SUPPLIED_SPARSITY = .TRUE. if you wish to supply the sparsity
+!                            structure arrays directly by calling
+!   MA28_RPS               = .TRUE. to force MA28AD to calculate a new
+!                            pivot sequence for use in MA28BD if a
+!                            singular iteration matrix is encountered
+!                            is smaller than EPS, it will flag the
+!                            Jacobian as singular and force MA28AD
+!                            to calculate a new pivot sequence.
+! USER_SUPPLIED_JACOBIAN   = exact Jacobian option
+!                            (requires user-supplied JAC)
+! TCRIT                    = critical time
+! H0                       = initial step size to try
+! HMAX                     = maximum allowable step size
+! HMIN                     = minimum allowable step size
+! MAXORD                   = maximum allowable integration order
+! MXSTEP                   = maximum number of integration steps
+!                            between calls to DVODE
+! MXHNIL                   = maximum number of printed messages
+!                            if the T+H=T condition occurs
+! CONSTRAINED              = array containing the indices of
+!                            solution components which are to be
+!                            be constrained by CLOWER and CUPPER.
+!                            The size of CONSTRAINED must be
+!                            positive and not exceed NEQ, the
+!                            number of ODEs. Each component of
+!                            CONSTRAINED must be between 1 and NEQ.
+!   CLOWER, CUPPER         = lower and upper bound arrays for the.
+!                            solution. Each must be the same size
+!                            as the CONSTRAINED vector.
+!
+!   User-callable Routines:
+!   The following routines may be called by the user:
+!   SET_INTERMEDIATE_OPTS      : Used to set options for DVODE_F90
+!   GET_STATS     : Used to gather summary integration
+!                   statistics following a successful
+!                   return from DVODE_F90
+!   DVINDY        : Used if the user wishes to interpolate
+!                   solution or derivative following a
+!                   successful return from DVODE_F90
+!   USERSETS_IAJA : Used if the user wishes to supply the
+!                   sparsity structure directly
+!   Detailed Description of SET_INTERMEDIATE_OPTS
+!   The following are defined in SET_INTERMEDIATE_OPTS:
+!   OPTS%MF     = Integration method flag (MF)
+!   OPTS%METH   = Integration family flag (METH)
+!   OPTS%MITER  = Iteration type flag (MITER)
+!   OPTS%MOSS   = Sparsity array type flag (MOSS)
+!   OPTS%ITOL   = Error tolerance flag (ITOL) (ITOL)
+!   OPTS%ATOL   = Absolute error tolerance(s) (ATOL)
+!   OPTS%RTOL   = Relative error tolerance(s) (RTOL)
+!   OPTS%DENSE  = Use dense linear algebra
+!   OPTS%BANDED = Use banded linear algebra 
+!   OPTS%SPARSE = Use sparse linear algebra 
+!   OPTS%IOPT   = DVODE optional parameter input flag (IOPT)
+!   OPTS%NG     = Number of event functions
+!   RUSER(1)    = TCRIT (don't step past)
+!   IUSER(1)    = Jacobian lower bandwidth (ML)
+!   IUSER(2)    = Jacobian upper bandwidth (MU)
+!   RUSER(5)    = Initial step size to try (H0)
+!   RUSER(6)    = Maximum allowable step size (HMAX)
+!   RUSER(7)    = Minimum allowable step size (HMIN)
+!   IUSER(5)    = Maximum allowable integration order (MAXORD)
+!   IUSER(6)    = Maximum number of integration steps (MXSTEP)
+!   IUSER(7)    = Maximum number of T+H=T messages (MXHNIL)
+!   NZ_SWAG     = Guess for the number of nonzeros in the
+!                 sparse Jacobian
+!   NG          = Number of user event functions
+!   BOUNDS,     = Nonnegativity information
+!   NDX, IDX
+!   YMAXWARN    = Warning flag for |y(t)| < abserr
+!   MA28_ELBOW_ROOM = Integer multiple by which to increase
+!                     the elbow room in the MA28 sparse work
+!                     arrays
+!   MC19_SCALING    = logical flag to control MC19 sparse
+!                     scaling of the Jacobian
+!   MA28_MESSAGES   = logical flag to control printing of MA28
+!                     messages.
+!   MA28_EPS        = real(wp) MA28 singularity threshold
+!
+!                         All Options
+!
+! METHOD_FLAG
+!
+! Default:   Not used
+! Change to: No need to specify if use one of next three parameters
+!            but can be changed to any value of the MF method flag
+!            in dvode.f77
+!
+! DENSE_J
+!
+! Default:   .FALSE.
+! Change to: .TRUE. for dense linear algebra
+!
+! BANDED_J
+!
+! Default:   .FALSE.
+! Change to: .TRUE. for banded linear algebra
+!
+! SPARSE_J
+!
+! Default:   .FALSE.
+! Change to: .TRUE. for sparse linear algebra
+
+! USER_SUPPLIED_JACOBIAN
+!
+! Default:   .FALSE.
+! Change to: .TRUE. if want to supply subroutine JAC to DVODE_F90
+!
+! LOWER_BANDWIDTH
+!
+! Default:   Not used
+! Change to: Lower bandwidth if BANDED_J = .TRUE.
+!
+! UPPER_BANDWIDTH
+!
+! Default:   Not used
+! Change to: Upper bandwidth if BANDED_J = .TRUE.
+!
+! RELERR
+!
+! Default:   None
+! Change to: Specify a nonzero relative error tolerance
+!
+! ABSERR
+!
+! Default:   None
+! Change to: Specify a scalar absolute error tolerance or
+!            a vector of absolute error tolerances
+!
+! ABSERR_VECTOR
+!
+! Default:   Not used
+! Change to: Vector of absolute error tolerances
+!
+! TCRIT
+!
+! Default:   Not used
+! Change to: Value of T which DVODE_F90 is not to step past
+!
+!     H0
+!
+! Default:   Determined by DVODE_F90
+! Change to: Guess for initial step size
+!
+! HMAX
+!
+! Default:   Infinity
+! Change to: Maximum allowable step size
+!
+! HMIN
+!
+! Default:   0.0D0
+! Change to: Minimum allowable step size
+!
+! MAXORD
+!
+! Default:   Determined by DVODE_F90
+! Change to: Maximum integration order
+!
+! MXSTEP
+!
+! Default:   5000
+!     Change to: Maximum number of steps between output points
+!
+! MXHNIL
+!
+! Default:   10
+! Change to: Maximum number of times T+H=T message will be printed
+!
+! NZSWAG
+!
+! Default:   Determined by DVODE_F90
+! Change to: Amount by which to increment sizes of sparse arrays
+!
+! USER_SUPPLIED_SPARSITY
+!
+! Default:   .FALSE.
+! Change to: .TRUE. if wish to call subroutine USERSETS_IAJA to
+!            define the sparse structure array pointers directly
+!
+! NEVENTS
+!
+! Default:   0
+! Change to: Number of event functions if wish to supply subroutine
+!            GFUN to DVODE_F90
+!
+! CONSTRAINED
+!
+! Default:   Bounds not imposed on solution
+! Change to: Array of indices for components on which to impose
+!            solution bounds
+!
+! CLOWER
+!
+! Default:   Not used
+! Change to: Vector containing lower bounds corresponding to
+!            CONSTRAINED
+!
+! CUPPER
+!
+! Default:   Not used
+! Change to: Vector containing upper bounds corresponding to
+!            CONSTRAINED
+!
+! MA28_RPS
+!
+! Default:   .FALSE.
+! Change to: Redo the MA28AD sparse pivoting sequence any time
+!            MA28BD considers the iteration matrix to be
+!            numerically singularity
+!
+!
+! Note on Jacobian Storage Formats:
+!
+! If you supply an analytic Jacobian PD, load the
+! Jacobian elements DF(I)/DY(J), the partial
+! derivative of F(I) with respect to Y(J), using
+! the following formats. Here, Y is the solution,
+! F is the derivative, and PD is the Jacobian.
+!
+! For a full Jacobian, load PD(I,J) with DF(I)/DY(J).
+! Your code might look like this:
+!    DO J = 1, NEQ
+!       DO I = 1, NEQ
+!          PD(I,J) = ... DF(I)/DY(J)
+!       END DO
+!    END DO       
+!
+! For a banded Jacobian, load PD(I-J+MU+1,J) with
+! DF(I)/DY(J) where ML is the lower bandwidth
+! and MU is the upper bandwidth of the Jacobian.
+! Your code might look like this:
+!    DO J = 1, NEQ
+!       I1 = MAX(1,J-ML)
+!       I2 = MIN(N,J+MU)
+!       DO I = I1, I2
+!          K = I-J+MU+1
+!          PD(K,J) = ... DF(I)/DY(J)
+!       END DO
+!    END DO
+!
+! For a sparse Jacobian, IA(J+1)-IA(J) is the number
+! of nonzeros in column change. JA(I) indicates the
+! rows in which the nonzeros occur. For column J,
+! the nonzeros occurs in rows I=JA(K) for K=I1,...,I2
+! where I1=IA(J) and I2= IA(J+1)-1. Load DF(I)/DY(J)
+! in PD(I). Your code might look like this:
+!    DO J = 1, NEQ
+!       I1 = IA(J)
+!       I2 = IA(J+1) - 1
+!       DO K = I1, I2
+!          I = JA(K)
+!          PD(I) = ... DF(I)/DY(J)
+!       END DO
+!    END DO
+!
+!                    More on Sparsity Options
+!
+! Two facts of life regarding the use of direct sparse solvers are
+! (1) significant improvements are possible, and (2) the use of
+! direct sparse solvers often is more demanding of the user.
+! Although SET_NORMAL_OPTS provides modest provisions for solving
+! problems with sparse Jacobians, using SET_INTERMEDIATE_OPTS rather than
+! SET_NORMAL_OPTS provides several advanced options. These options
+! are described below. The recommended manner in which to use
+! these options is also provided. Note that each of these optional
+! parameters have default values and need not be specified in your
+! call to SET_INTERMEDIATE_OPTS if you wish to use the default values. Note
+! also that the order in which the options are specified in a call
+! to SET_INTERMEDIATE_OPTS is not important.
+!
+!  (1) First determine if it is feasible to use either the BANDED
+!      or DENSE Jacobian option.
+!         Recommendation:
+!         Use the DENSE or BANDED option if possible. They do
+!         not require use of most of the options described here.
+!    
+!  (2) The Jacobian is approximated internally using differences
+!      if you do not provide an analytic Jacobian. The option
+!      USER_SUPPLIED_JACOBIAN=.TRUE. may be used if you wish to
+!      provide an analytic Jacobian.
+!         Recommendation:
+!         Use an internally generated Jacobian for most problems
+!         but consider providing an analytic Jacobian if it not
+!         too much trouble.
+!
+!  (3) If you do not provide the sparse structure arrays, they
+!      are approximated internally by making NEQ calls to your
+!      derivative subroutine and using differences to approximate
+!      the structure of the Jacobian. The option
+!      USER_SUPPLIED_SPARSITY and a call to USERSETS_IAJA can
+!      be used to supply the arrays directly. You can also use
+!      subroutine SET_IAJA to approximate the structure using
+!      different perturbation factors than those used in DVODE_F90.
+!         Recommendations:
+!         Although allowing DVODE_F90 to approximate the Jacobian
+!         structure suffices for most problems, if you know the
+!         sparsity pattern provide it directly. This eliminates
+!         the possibility that an important element that happens
+!         to be 0 when the sparsity pattern is approximated is
+!         later nonzero; and it avoids the NEQ extra calls to
+!         your derivative subroutine to approximate the structure.
+!         Note that a nemesis for any sparse ode solver is a
+!         problem in which the sparsity pattern actually changes
+!         during the integration. An example of such a problem
+!         is provided in the demohum21.f90 demonstration program.
+!         If you know the sparsity pattern changes or if you
+!         suspect it does because DVODE_F90 is generating
+!         nonconvergence error messages, consider having DVODE_F90
+!         re-approximate the structure by calling SET_INTERMEDIATE_OPTS and
+!         forcing an integration restart when control is returned
+!         to your calling program. Please do not do this at every
+!         output point since it will be extremely time consuming
+!         and inefficient if it is not needed.
+!
+!  (4) The optional parameter NZSWAG may/should be used to speed
+!      up the determination of acceptable array sizes for the
+!      internal sparse working arrays and the sparse Jacobian.
+!      Initially, DVODE_F90 allocates arrays of length
+!      max(10*NEQ,NSZSWAG) and increases this amount by
+!      max(10*NEQ,ELBOW_ROOM*NSZSWAG) as necessary. NZSWAG
+!      has a default value of 1000 and ELBOW_ROOM has a default
+!      value of 2.
+!         Recommendation:
+!         Provide a larger value for NZSWAG particularly if NEQ
+!         is large and you suspect considerable fill-in due to
+!         partial pivoting.
+!
+!  (5) MA28BD uses the pivot sequence initially determined by
+!      MA28AD. When a singularity is diagnosed, the internal
+!      procedure used by the DENSE and BANDED options is used
+!      to reduce the step size and re-calulate the iteration
+!      matrix. This works fine for most problems; but particularly
+!      for badly scaled problems, the solution may be unsuccessful
+!      or it may drag along using small step sizes. This is due
+!      to the fact MA28BD will continue to use the out-of-date pivot
+!      sequence until singularity is again diagnosed. An option not
+!      available in previous sparse ode solvers may be used to
+!      instruct DVODE_F90 to force MA28AD to calculate a new pivot
+!      sequence when MA28BD encounters a singularity. Although
+!      MA28AD is considerably slower than MA28BD, the additional
+!      calls to MA28AD ensure that the pivot sequence is more
+!      up to date. This can increase both the accuracy and the
+!      efficiency very dramatically. The demodirn.f90 demonstration
+!      program provides an illustration of the dramatic improvement
+!      that is possible. The optional parameter MA28_RPS may be set
+!      .TRUE. to force these pivot sequence updates.
+!         Recommendation:
+!         Use the default value MA28_RPS=.FALSE; but if DVODE_F90
+!         encounters nonconvergence, use MA28_RPS=.TRUE. to force
+!         pivot sequence updates.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Function Return Value ..
+        TYPE (VODE_OPTS) :: OPTS
+! ..
+! .. Scalar Arguments ..
+        KPP_REAL, OPTIONAL, INTENT (IN) :: ABSERR, H0, HMAX, HMIN,         &
+        RELERR, TCRIT
+        INTEGER, OPTIONAL, INTENT (IN) :: LOWER_BANDWIDTH, MAXORD,          &
+          MXHNIL, MXSTEP, NEVENTS, NZSWAG, UPPER_BANDWIDTH
+        LOGICAL, OPTIONAL, INTENT (IN) :: BANDED_J, CHANGE_ONLY_f77_OPTIONS,&
+          DENSE_J, MA28_RPS, SPARSE_J, USER_SUPPLIED_JACOBIAN,              &
+          USER_SUPPLIED_SPARSITY
+! ..
+! .. Array Arguments ..
+        KPP_REAL, OPTIONAL, INTENT (IN) :: ABSERR_VECTOR(:)
+        KPP_REAL, OPTIONAL :: CLOWER(:), CUPPER(:)
+        INTEGER, OPTIONAL, INTENT (IN) :: CONSTRAINED(:)
+! ..
+! .. Local Scalars ..
+        INTEGER ::  IER, IOPT, METH, MF, MFA, MFSIGN, MITER, ML, MOSS, MU,  &
+          NAE, NG, NRE
+        LOGICAL :: BANDED, DENSE, SPARSE
+        CHARACTER (80) :: MSG
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ALLOCATED, IABS, MAX, MINVAL, PRESENT, SIGN, SIZE
+! ..
+! .. FIRST EXECUTABLE STATEMENT SET_INTERMEDIATE_OPTS
+! ..
+    RUSER(1:LRWUSER) = ZERO
+    IUSER(1:LIWUSER) = 0
+    
+!   Allow default error tolerances?
+    ALLOW_DEFAULT_TOLS = .FALSE.
+
+!   Maximum number of consecutive error test failures?
+    CONSECUTIVE_EFAILS = KFH
+
+!   Maximum number of consecutive corrector iteration failures?
+    CONSECUTIVE_CFAILS = MXNCF
+
+!   Use JACSP to approximate Jacobian?
+    USE_JACSP = .FALSE.
+
+!   If only f77 options are to be changed, do it and return.
+    IF (PRESENT(CHANGE_ONLY_f77_OPTIONS)) THEN
+       IF (CHANGE_ONLY_f77_OPTIONS) THEN
+          IF (.NOT.OPTS_CALLED) THEN
+             MSG = 'You have not previously called SET_OPTS before attempting'
+             CALL XERRDV(MSG,250,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'to change one or more of the vode.f77 optional parameters.'
+             CALL XERRDV(MSG,250,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          IF (PRESENT(HMAX)) THEN
+             IOPT = 1
+             RUSER(6) = HMAX
+             MSG = 'HMAX changed in SET_INTERMEDIATE_OPTS.'
+             CALL XERRDV(MSG,260,1,0,0,0,1,HMAX,ZERO)
+          END IF
+          IF (PRESENT(HMIN)) THEN
+             IOPT = 1
+             RUSER(7) = HMIN
+             MSG = 'HMIN changed in SET_INTERMEDIATE_OPTS.'
+             CALL XERRDV(MSG,270,1,0,0,0,1,HMIN,ZERO)
+          END IF
+          IF (PRESENT(TCRIT)) THEN
+             IOPT = 1
+             RUSER(1) = TCRIT
+             MSG = 'TCRIT changed in SET_INTERMEDIATE_OPTS.'
+             CALL XERRDV(MSG,280,1,0,0,0,1,TCRIT,ZERO)
+          END IF
+          IF (PRESENT(MXSTEP)) THEN
+             IOPT = 1
+             IUSER(6) = MXSTEP
+             MSG = 'MXSTEP changed in SET_INTERMEDIATE_OPTS.'
+             CALL XERRDV(MSG,290,1,1,MXSTEP,0,0,ZERO,ZERO)
+          END IF
+          IF (PRESENT(MAXORD)) THEN
+             IOPT = 1
+             IUSER(5) = MAXORD
+             MSG = 'MAXORD changed in SET_INTERMEDIATE_OPTS.'
+             CALL XERRDV(MSG,300,1,1,MAXORD,0,0,ZERO,ZERO)
+          END IF
+          IF (PRESENT(MXHNIL)) THEN
+             IOPT = 1
+             IUSER(7) = MXHNIL
+             MSG = 'MXHNIL changed in SET_INTERMEDIATE_OPTS.'
+             CALL XERRDV(MSG,310,1,1,MXHNIL,0,0,ZERO,ZERO)
+          END IF
+       END IF
+       RETURN
+    END IF
+
+!       Set the flag to indicate that SET_INTERMEDIATE_OPTS has been called.
+        OPTS_CALLED = .TRUE.
+
+!       Set the MA48 storage cleanup flag.
+        MA48_WAS_USED = .FALSE.
+
+!       Set the fast factor option for MA48,
+        USE_FAST_FACTOR = .TRUE.
+
+!       Determine the working precision and define the value for UMAX
+!       expected by MA28. Note that it is different for single and
+!       double precision.
+        WPD = KIND(1.0D0)
+        WPS = KIND(1.0E0)
+        IF (WPD/=WP .AND. WPS/=WP) THEN
+          MSG = 'Illegal working precision in SET_INTERMEDIATE_OPTS.'
+          CALL XERRDV(MSG,320,2,0,0,0,0,ZERO,ZERO)
+        END IF
+        IF (WPD==WP) THEN
+!       Working precision is double.
+          UMAX = 0.999999999_dp
+        ELSE
+!       Working precision is single.
+          UMAX = 0.9999_dp
+        END IF
+
+!       Set the MA28 message flag.
+        LP = 0
+
+!       Set the MA28 singularity threshold.
+        EPS = 1.0E-4_dp
+
+!       Set the MA28 pivot sequence frequency flag.
+        IF (PRESENT(MA28_RPS)) THEN
+           IF (MA28_RPS) THEN
+              REDO_PIVOT_SEQUENCE = MA28_RPS
+           ELSE
+              REDO_PIVOT_SEQUENCE = .FALSE.
+           END IF
+        ELSE
+           REDO_PIVOT_SEQUENCE = .FALSE.
+        END IF
+
+        MA28AD_CALLS = 0
+        MA28BD_CALLS = 0
+        MA28CD_CALLS = 0
+        MC19AD_CALLS = 0
+!_______________________________________________________________________
+! *****MA48 build change point. Insert these statements.
+!       MA48AD_CALLS = 0
+!       MA48BD_CALLS = 0
+!       MA48CD_CALLS = 0
+!_______________________________________________________________________
+        IRNCP = 0
+        ICNCP = 0
+        MINIRN = 0
+        MINICN = 0
+        MAX_MINIRN = 0
+        MAX_MINICN = 0
+        MAX_NNZ = 0
+
+!       Set the flag to warn the user if |(y(t)| < abserr.
+        YMAXWARN = .FALSE.
+
+!       Load defaults for the optional input arrays for DVODE.
+        IUSER(1:8) = 0
+        RUSER(1:8) = ZERO
+
+        IF (PRESENT(SPARSE_J)) THEN
+          IF (SPARSE_J) THEN
+            IF (PRESENT(USER_SUPPLIED_JACOBIAN)) THEN
+              IF (USER_SUPPLIED_JACOBIAN) THEN
+                MF = 126
+              ELSE
+                MF = 227
+              END IF
+            ELSE
+              MF = 227
+            END IF
+            IF (PRESENT(USER_SUPPLIED_SPARSITY)) THEN
+              IF (USER_SUPPLIED_SPARSITY) THEN
+                MF = MF - 100*(MF/100)
+              END IF
+            END IF
+          END IF
+        END IF
+
+        IF (PRESENT(BANDED_J)) THEN
+          IF (BANDED_J) THEN
+            IF (PRESENT(USER_SUPPLIED_JACOBIAN)) THEN
+              IF (USER_SUPPLIED_JACOBIAN) THEN
+                MF = 24
+              ELSE
+                MF = 25
+              END IF
+            ELSE
+              MF = 25
+            END IF
+          END IF
+        END IF
+
+        IF (PRESENT(DENSE_J)) THEN
+          IF (DENSE_J) THEN
+            IF (PRESENT(USER_SUPPLIED_JACOBIAN)) THEN
+              IF (USER_SUPPLIED_JACOBIAN) THEN
+                MF = 21
+              ELSE
+                MF = 22
+              END IF
+            ELSE
+              MF = 22
+            END IF
+          END IF
+        END IF
+
+!       Check for errors in MF.
+        MFA = IABS(MF)
+        MOSS = MFA/100
+        METH = (MFA-100*MOSS)/10
+        MITER = MFA - 100*MOSS - 10*METH
+        IF (METH<1 .OR. METH>2) THEN
+          MSG = 'Illegal value of METH in SET_INTERMEDIATE_OPTS.'
+          CALL XERRDV(MSG,330,2,0,0,0,0,ZERO,ZERO)
+        END IF
+        IF (MITER<0 .OR. MITER>7) THEN
+          MSG = 'Illegal value of MITER in SET_INTERMEDIATE_OPTS.'
+          CALL XERRDV(MSG,340,2,0,0,0,0,ZERO,ZERO)
+        END IF
+        IF (MOSS<0 .OR. MOSS>2) THEN
+          MSG = 'Illegal value of MOSS in SET_INTERMEDIATE_OPTS.'
+          CALL XERRDV(MSG,350,2,0,0,0,0,ZERO,ZERO)
+        END IF
+
+!       Reset MF, now that MOSS is known.
+        MFSIGN = SIGN(1,MF)
+        MF = MF - 100*MOSS*MFSIGN
+
+        IF (MITER==0) THEN
+          DENSE = .FALSE.
+          BANDED = .FALSE.
+          SPARSE = .FALSE.
+        ELSE IF (MITER==1 .OR. MITER==2) THEN
+          DENSE = .TRUE.
+          BANDED = .FALSE.
+          SPARSE = .FALSE.
+        ELSE IF (MITER==3) THEN
+          DENSE = .FALSE.
+          BANDED = .FALSE.
+          SPARSE = .FALSE.
+        ELSE IF (MITER==4 .OR. MITER==5) THEN
+          DENSE = .FALSE.
+          BANDED = .TRUE.
+          SPARSE = .FALSE.
+        ELSE IF (MITER==6 .OR. MITER==7) THEN
+          DENSE = .FALSE.
+          BANDED = .FALSE.
+          SPARSE = .TRUE.
+        END IF
+
+!       Define the banded Jacobian band widths.
+        IF (BANDED) THEN
+          IF (PRESENT(LOWER_BANDWIDTH)) THEN
+            ML = LOWER_BANDWIDTH
+            IUSER(1) = ML
+          ELSE
+            MSG = 'In SET_INTERMEDIATE_OPTS you have indicated a'
+            CALL XERRDV(MSG,360,1,0,0,0,0,ZERO,ZERO)
+            MSG = 'banded Jacobian but you have not'
+            CALL XERRDV(MSG,360,1,0,0,0,0,ZERO,ZERO)
+            MSG = 'supplied the lower bandwidth.'
+            CALL XERRDV(MSG,360,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          IF (PRESENT(UPPER_BANDWIDTH)) THEN
+            MU = UPPER_BANDWIDTH
+            IUSER(2) = MU
+          ELSE
+            MSG = 'In SET_INTERMEDIATE_OPTS you have indicated a'
+            CALL XERRDV(MSG,370,1,0,0,0,0,ZERO,ZERO)
+            MSG = 'banded Jacobian but you have not'
+            CALL XERRDV(MSG,370,1,0,0,0,0,ZERO,ZERO)
+            MSG = 'supplied the upper bandwidth.'
+            CALL XERRDV(MSG,370,2,0,0,0,0,ZERO,ZERO)
+          END IF
+!         Define the nonzero diagonals.
+          BNGRP = 0
+          SUBS = .FALSE.
+          SUPS = .FALSE.
+          NSUBS  = 0
+          NSUPS = 0
+        END IF
+
+!       Define the sparse Jacobian options.
+        SCALE_MATRIX = .FALSE.
+        ELBOW_ROOM = 2
+        IF (SPARSE) THEN
+!         NZSWAG for the number of nonzeros in the Jacobian.
+          IF (PRESENT(NZSWAG)) THEN
+            NZ_SWAG = MAX(NZSWAG,0)
+          ELSE
+            NZ_SWAG = 0
+          END IF
+!         Indicate that SET_IAJA has not yet been called successfully.
+          IAJA_CALLED = .FALSE.
+!         Check for illegal method flags.
+          IF (MOSS==2 .AND. MITER/=7) THEN
+            MSG = 'In SET_INTERMEDIATE_OPTS MOSS=2 but MITER is not 7.'
+            CALL XERRDV(MSG,380,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          IF (MOSS==1 .AND. MITER/=6) THEN
+            MSG = 'In SET_INTERMEDIATE_OPTS MOSS=1 but MITER is not 6.'
+            CALL XERRDV(MSG,390,2,0,0,0,0,ZERO,ZERO)
+          END IF
+!         IF (MOSS==0 .AND. MITER/=7) THEN
+!           MSG = 'In SET_INTERMEDIATE_OPTS MOSS=0 but MITER is not 7.'
+!           CALL XERRDV(MSG,400,2,0,0,0,0,ZERO,ZERO)
+!         END IF
+!         Allow MC19 scaling for the Jacobian.
+          SCALE_MATRIX = .FALSE.
+        END IF
+
+!       Define the number of event functions.
+        IF (PRESENT(NEVENTS)) THEN
+          IF (NEVENTS>0) THEN
+            NG = NEVENTS
+          ELSE
+            NG = 0
+          END IF
+        ELSE
+          NG = 0
+        END IF
+
+!       Process the constrained solution components.
+        IF (PRESENT(CONSTRAINED)) THEN
+          NDX = SIZE(CONSTRAINED)
+          IF (NDX<1) THEN
+            MSG = 'In SET_INTERMEDIATE_OPTS the size of CONSTRAINED < 1.'
+            CALL XERRDV(MSG,410,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          IF (.NOT.(PRESENT(CLOWER)) .OR. .NOT.(PRESENT(CUPPER))) THEN
+            MSG = 'In SET_INTERMEDIATE_OPTS the arrays CLOWER and CUPPER'
+            CALL XERRDV(MSG,420,1,0,0,0,0,ZERO,ZERO)
+            MSG = 'are not present.'
+            CALL XERRDV(MSG,420,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          IF (SIZE(CLOWER)/=NDX .OR. SIZE(CUPPER)/=NDX) THEN
+            MSG = 'In SET_INTERMEDIATE_OPTS the size of the solution bound'
+            CALL XERRDV(MSG,430,1,0,0,0,0,ZERO,ZERO)
+            MSG = 'arrays must be the same as the CONSTRAINED array.'
+            CALL XERRDV(MSG,430,2,0,0,0,0,ZERO,ZERO)
+          END IF
+!         Note: The contents of CONSTRAINED will be checked
+!         in subroutine DVODE after NEQ is known.
+          IF (ALLOCATED(IDX)) THEN
+            DEALLOCATE (IDX,LB,UB,STAT=IER)
+            CALL CHECK_STAT(IER,30)
+          END IF
+          ALLOCATE (IDX(NDX),LB(NDX),UB(NDX),STAT=IER)
+          CALL CHECK_STAT(IER,40)
+          IDX(1:NDX) = CONSTRAINED(1:NDX)
+          LB(1:NDX) = CLOWER(1:NDX)
+          UB(1:NDX) = CUPPER(1:NDX)
+          BOUNDS = .TRUE.
+        ELSE
+          IF (ALLOCATED(IDX)) THEN
+            DEALLOCATE (IDX,LB,UB,STAT=IER)
+            CALL CHECK_STAT(IER,50)
+          END IF
+          NDX = 0
+          BOUNDS = .FALSE.
+        END IF
+
+!       Is the Jacobian constant?
+        J_IS_CONSTANT = .FALSE.
+        J_HAS_BEEN_COMPUTED = .FALSE.
+
+!       Load the user options into the solution structure.
+        OPTS%MF = MF
+        OPTS%METH = METH
+        OPTS%MITER = MITER
+        OPTS%MOSS = MOSS
+        OPTS%DENSE = DENSE
+        OPTS%BANDED = BANDED
+        OPTS%SPARSE = SPARSE
+        OPTS%NG = NG
+
+!       Process the miscellaneous options.
+
+!       Don't step past TCRIT variable.
+        IF (PRESENT(TCRIT)) THEN
+          RUSER(1) = TCRIT
+        ELSE
+          RUSER(1) = ZERO
+        END IF
+
+!       DVODE optional parameters.
+        IOPT = 1
+        IF (PRESENT(MAXORD)) THEN
+          IUSER(5) = MAXORD
+          IOPT = 1
+        END IF
+        IF (PRESENT(MXSTEP)) THEN
+          IUSER(6) = MXSTEP
+          IOPT = 1
+        END IF
+        IF (PRESENT(MXHNIL)) THEN
+          IUSER(7) = MXHNIL
+          IOPT = 1
+        END IF
+        IF (PRESENT(H0)) THEN
+          RUSER(5) = H0
+          IOPT = 1
+        END IF
+        IF (PRESENT(HMAX)) THEN
+          RUSER(6) = HMAX
+          IOPT = 1
+        END IF
+        IF (PRESENT(HMIN)) THEN
+          RUSER(7) = HMIN
+          IOPT = 1
+        END IF
+        U_PIVOT = ONE
+        OPTS%IOPT = IOPT
+
+!       Define the error tolerances.
+
+!       Relative error tolerances.
+        NRE = 1
+        ALLOCATE (OPTS%RTOL(NRE),STAT=IER)
+        CALL CHECK_STAT(IER,60)
+        IF (PRESENT(RELERR)) THEN
+          IF (RELERR<ZERO) THEN
+            MSG = 'RELERR must be nonnegative.'
+            CALL XERRDV(MSG,440,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          OPTS%RTOL = RELERR
+        ELSE
+          IF (ALLOW_DEFAULT_TOLS) THEN
+             OPTS%RTOL = 1.0E-4_dp
+             MSG = 'By not specifying RELERR, you have elected to use a default'
+             CALL XERRDV(MSG,450,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'relative error tolerance equal to 1.0D-4. Please be aware a'
+             CALL XERRDV(MSG,450,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'tolerance this large is not appropriate for all problems.'
+             CALL XERRDV(MSG,450,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'Execution will continue'
+             CALL XERRDV(MSG,450,1,0,0,0,0,ZERO,ZERO)
+          ELSE
+             MSG = 'You must specify a nonzero relative error tolerance.'
+             CALL XERRDV(MSG,460,2,0,0,0,0,ZERO,ZERO)
+          END IF
+        END IF
+
+!       Absolute error tolerances.
+        IF (PRESENT(ABSERR_VECTOR)) THEN
+          IF (MINVAL(ABSERR_VECTOR)<ZERO) THEN
+            MSG = 'All components of ABSERR_VECTOR must'
+            CALL XERRDV(MSG,460,1,0,0,0,0,ZERO,ZERO)
+            MSG = 'be nonnegative.'
+            CALL XERRDV(MSG,460,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          NAE = SIZE(ABSERR_VECTOR)
+        ELSE
+          NAE = 1
+        END IF
+        ALLOCATE (OPTS%ATOL(NAE),STAT=IER)
+        CALL CHECK_STAT(IER,70)
+        IF (PRESENT(ABSERR_VECTOR)) THEN
+          OPTS%ATOL = ABSERR_VECTOR
+        ELSE IF (PRESENT(ABSERR)) THEN
+          IF (ABSERR<ZERO) THEN
+            MSG = 'ABSERR must be nonnegative.'
+            CALL XERRDV(MSG,470,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          OPTS%ATOL = ABSERR
+        ELSE
+          IF (ALLOW_DEFAULT_TOLS) THEN
+             OPTS%ATOL = 1D-6
+             MSG = 'By not specifying ABSERR, you have elected to use a default'
+             CALL XERRDV(MSG,480,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'absolute error tolerance equal to 1.0D-6. Please be aware a'
+             CALL XERRDV(MSG,480,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'tolerance this large is not appropriate for all problems.'
+             CALL XERRDV(MSG,480,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'Execution will continue'
+             CALL XERRDV(MSG,480,1,0,0,0,0,ZERO,ZERO)
+          ELSE
+             MSG = 'You must specify a vector of absolute error tolerances or'
+             CALL XERRDV(MSG,490,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'a scalar error tolerance. It is recommended that you use'
+             CALL XERRDV(MSG,490,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'a vector of absolute error tolerances.'
+             CALL XERRDV(MSG,490,2,0,0,0,0,ZERO,ZERO)
+          END IF
+        END IF
+
+!       ITOL error tolerance flag.
+!          ITOL   RTOL     ATOL            EWT(i)
+!            1   scalar   scalar  RTOL*ABS(Y(i)) + ATOL
+!            2   scalar   array   RTOL*ABS(Y(i)) + ATOL(i)
+!            3   array    scalar  RTOL(i)*ABS(Y(i)) + ATOL
+!            4   array    array   RTOL(i)*ABS(Y(i)) + ATOL(i)
+        IF (PRESENT(ABSERR_VECTOR)) THEN
+          OPTS%ITOL = 2
+        ELSE
+          OPTS%ITOL = 1
+        END IF
+        RETURN
+
+  END FUNCTION SET_INTERMEDIATE_OPTS
+!_______________________________________________________________________
+
+  FUNCTION SET_OPTS(METHOD_FLAG, DENSE_J, BANDED_J, SPARSE_J,          &
+    USER_SUPPLIED_JACOBIAN, SAVE_JACOBIAN, CONSTANT_JACOBIAN,          &
+    LOWER_BANDWIDTH, UPPER_BANDWIDTH, SUB_DIAGONALS, SUP_DIAGONALS,    &
+    RELERR, RELERR_VECTOR, ABSERR, ABSERR_VECTOR, TCRIT, H0, HMAX,     &
+    HMIN, MAXORD, MXSTEP, MXHNIL, YMAGWARN, SETH, UPIVOT, NZSWAG,      &
+    USER_SUPPLIED_SPARSITY, NEVENTS, CONSTRAINED, CLOWER, CUPPER,      &
+    MA28_ELBOW_ROOM, MC19_SCALING, MA28_MESSAGES, MA28_EPS,            &
+    MA28_RPS, CHANGE_ONLY_f77_OPTIONS,JACOBIAN_BY_JACSP)               &
+  RESULT(OPTS)
+
+! FUNCTION SET_OPTS:
+!    VODE.f77 method flag:
+!       METHOD_FLAG
+!    Jacobian type:
+!       DENSE_J, BANDED_J, SPARSE_J
+!    Analytic Jacobian:
+!       USER_SUPPLIED_JACOBIAN
+!    Jacobian options:
+!       SAVE_JACOBIAN, CONSTANT_JACOBIAN. JACOBIAN_BY_JACSP
+!    If banded Jacobian:
+!       LOWER_BANDWIDTH, UPPER_BANDWIDTH
+!    If specify the nonzero diagonals for banded Jacobian:
+!       SUB_DIAGONALS, SUP_DIAGONALS
+!    Error tolerances:
+!       RELERR, RELERR_VECTOR, ABSERR, ABSERR_VECTOR
+!    VODE.f77 optional parameters:
+!       TCRIT, H0, HMAX, HMIN, MAXORD, MXSTEP, MXHNIL
+!    Solution smaller than absolute error tolerance:
+!       YMAGWARN
+!    Sparse flags:
+!       SETH, UPIVOT, NZSWAG, USER_SUPPLIED_SPARSITY
+!       MA28_ELBOW_ROOM, MC19_SCALING, MA28_MESSAGES
+!       MA28_EPS, MA28_RPS
+!    Rootfinding:
+!       NEVENTS
+!    Impose bounds on solution:
+!       CONSTRAINED, CLOWER, CUPPER
+!    Change one or more of HMAX, HMIN, TCRIT, MXSTEP, MXHNIL, MAXORD
+!       CHANGE_ONLY_f77_OPTIONS
+! RESULT(OPTS)
+
+! SET_OPTIONS sets user parameters for DVODE via keywords. Values that
+! are defined herein will be used internally by DVODE. All option
+! keywords are OPTIONAL and order is not important.
+
+! Note that DVODE_F90 requires that one of SET_NORMAL_OPTS or
+! SET_INTERMEDIATE_OPTS or SET_OPTS is called before the first
+! time DVODE_F90 is called.
+
+!                     Quick Summary of Options
+
+! METHOD_FLAG            - any legal value of MF as in DVODE
+! DENSE_J                - Jacobian is sparse alternative to MF
+! BANDED_J               - Jacobian is banded alternative to MF 
+! SPARSE_J               - Jacobian is sparse alternative to MF   
+! USER_SUPPLIED_JACOBIAN - User will supply Jacobian subroutine
+!                          (user supplied subroutine JAC required)
+! SAVE_JACOBIAN          - Jacobian will be saved and reused
+! CONSTANT_JACOBIAN      - Jacobian is constant
+! JACOBIAN_BY_JACSP      - Use Doug Salane's approximate Jacobian
+!                          algorithm
+! LOWER_BANDWIDTH        - Lower bandwidth ML in DVODE
+! UPPER_BANDWIDTH        - Upper bandwidth MU in DVODE
+! SUB_DIAGONALS          - Nonzero sub diagonals in Jacobian
+! SUP_DIAGONALS          - Nonzero super diagonals in Jacobian
+! RELERR                 - Scalar relative error tolerance in DVODE
+! RELERR_VECTOR          - Vector relative error tolerance in DVODE
+! ABSERR                 - Scalar absolute error tolerance in DVODE
+! ABSERR_VECTOR          - Vector absolute error tolerance in DVODE
+! TCRIT                  - Critical time TCRIT in DVODE
+! H0                     - Starting step size in DVODE
+! HMAX                   - Maximum step size in DVODE 
+! HMIN                   - Minimum step size in DVODE 
+! MAXORD                 - Maximum integration order in DVODE
+! MXSTEP                 - Maximum number of integration steps
+!                          in DVODE
+! MXHNIL                 - Maximum number of T+H=T messages in DVODE
+! YMAGWARN               - Warn if magnitude of solution is smaller
+!                          than absolute error tolerance
+! SETH                   - Sparse Jacobian element threshold value
+! UPIVOT                 - MA28 partial pivoting parameter
+! NZSWAG                 - guess for the number of nonzeros in sparse
+!                          Jacobian
+! USER_SUPPLIED_SPARSITY - user will supply sparsity structure
+!                          arrays by calling USERSETS_IAJA 
+! MA28_ELBOW_ROOM        - Supply an integer greater than 2 if you
+!                          wish to increase the elbow room in the
+!                          MA28 work arrays (by MA28_ELBOW_ROOM * NZA).
+! MC19_SCALING           - .TRUE. if you wish to invoke sparse scaling
+!                           of the Jacobian.
+! MA28_MESSAGES          - Control printing of MA28 messages
+! MA28_RPS               - Redo MA28AD pivot sequence if a singularity
+!                          is encountered
+! NEVENTS                - number of user defined root finding functions
+!                          (user supplied subroutine G required)
+! CONSTRAINED,           - array of solution component indices that
+! CLOWER,                  are to be constrained by the lower and
+! CUPPER                   upper bound arrays CLOWER and CUPPER so that
+!                          CLOWER(I) <= Y(CONSTRAINED(I)) <= CUPPER(I)
+! CHANGE_ONLY_f77_OPTIONS- flag to indicate whether to only change any
+!                          of the parameters MXSTEP, MXHNIL, MAXORD,
+!                          HMAX, HMIN, TCRIT
+!                     Options Types
+! METHOD_FLAG            - integer
+! DENSE_J                - logical
+! BANDED_J               - logical
+! SPARSE_J               - logical
+! USER_SUPPLIED_JACOBIAN - logical
+! SAVE_JACOBIAN          - logical
+! CONSTANT_JACOBIAN      - logical
+! JACOBIAN_BY_JACSP      - logical
+! LOWER_BANDWIDTH        - integer
+! UPPER_BANDWIDTH        - integer
+! SUB_DIAGONALS          - integer array
+! SUP_DIAGONALS          - integer array
+! RELERR                 - real(wp) scalar
+! RELERR_VECTOR          - real(wp) vector
+! ABSERR                 - real(wp) scalar
+! ABSERR_VECTOR          - real(wp) vector
+! TCRIT                  - real(wp) scalar
+! H0                     - real(wp) scalar
+! HMAX                   - real(wp) scalar
+! HMIN                   - real(wp) scalar
+! MAXORD                 - integer
+! MXSTEP                 - integer
+! MXHNIL                 - integer
+! YMAGWARN               - logical
+! SETH                   - real(wp) scalar
+! UPIVOT                 - real(wp) scalar
+! NZSWAG                 - integer
+! USER_SUPPLIED_SPARSITY - logical
+! NEVENTS                - integer
+! CONSTRAINED            - integer array
+! CLOWER                 - real(wp) array
+! CUPPER                 - real(wp) array
+! CHANGE_ONLY_f77_OPTIONS- logical
+
+! Argument list parameters:
+! METHOD_FLAG              = integration method flag
+! ABSERR                   = scalar absolute error tolerance
+! ABSERR_VECTOR            = vector of absolute error tolerances
+! RELERR                   = scalar relative error tolerance
+! RELERR_VECTOR            = vector of relative error tolerances
+! NEVENTS                  = Number of event functions (requires
+!                            user-supplied GFUN)
+! DENSE_J                  = use dense linear algebra if .TRUE.
+! BANDED_J                 = use banded linear algebra if .TRUE.
+!   LOWER_BANDWIDTH        = lower bandwidth of the Jacobian
+!                            (required if BANDED_J = .TRUE.)
+!   UPPER_BANDWIDTH        = upper bandwidth of the Jacobian
+!                            (required if BANDED_J = .TRUE.)
+!   SUB_DIAGONALS          = starting row numbers of nonzero sub
+!                            diagonals counting up from the lowest
+!                            sub diagonal
+!   SUP_DIAGONALS          = starting column numbers of nonzero
+!                            super diagonals counting up from the
+!                            lowest super diagonal
+! SPARSE_J                 = use sparse linear algebra if .TRUE.
+!   UPIVOT                 = partial pivot control flag (default=ONE)
+!                          = 0.0D0 for no partial pivoting
+!                          = ONE for (full) partial pivoting
+!                            Values between 0.0D0 and ONE yield
+!                            MA28 (partial) partial pivoting.
+!   NZSWAG                 = If you wish you may supply a guess,
+!                            NZSWAG, at the number of nonzeros
+!                            in the Jacobian matrix. In some cases
+!                            this will speed up the determination
+!                            of the necessary storage.
+!   USER_SUPPLIED_SPARSITY = .TRUE. if you wish to supply the sparsity
+!                            structure arrays directly by calling
+!                            USERSETS_IAJA
+!   MA28_ELBOW_ROOM        = Supply an integer greater than 2 if you
+!                            wish to increase the elbow room in the
+!                            MA28 work arrays (by MA28_ELBOW_ROOM * NZA).
+!   MC19_SCALING           = .TRUE. if you wish to invoke sparse scaling
+!                            of the Jacobian.
+!   MA28_MESSAGES          = .TRUE. to print all MA28 messages.
+!   MA28_EPS               = MA28 singularity threshold. If MA28BD
+!                            determines that the ratio of the current
+!                            pivot to the largest element in the row
+!                            is smaller than EPS, it will flag the
+!                            Jacobian as singular and force MA28AD
+!                            to calculate a new pivot sequence.
+!   MA28_RPS               = .TRUE. to force MA28AD to calculate a new
+!                            pivot sequence for use in MA28BD if a
+!                            singular iteration matrix is encountered
+!                            is smaller than EPS, it will flag the
+!                            Jacobian as singular and force MA28AD
+!                            to calculate a new pivot sequence.
+! USER_SUPPLIED_JACOBIAN   = exact Jacobian option
+!                            (requires user-supplied JAC)
+! SAVE_JACOBIAN            = reuse saved Jacobians
+! JACOBIAN_BY_JACSP        = use Doug Salane's Jacobian algorithm
+! TCRIT                    = critical time
+! H0                       = initial step size to try
+! HMAX                     = maximum allowable step size
+! HMIN                     = minimum allowable step size
+! MAXORD                   = maximum allowable integration order
+! MXSTEP                   = maximum number of integration steps
+!                            between calls to DVODE
+! MXHNIL                   = maximum number of printed messages
+!                            if the T+H=T condition occurs
+! CONSTRAINED              = array containing the indices of
+!                            solution components which are to be
+!                            be constrained by CLOWER and CUPPER.
+!                            The size of CONSTRAINED must be
+!                            positive and not exceed NEQ, the
+!                            number of ODEs. Each component of
+!                            CONSTRAINED must be between 1 and NEQ.
+! CLOWER, CUPPER           = lower and upper bound arrays for the.
+!                            solution. Each must be the same size
+!                            as the CONSTRAINED vector.
+! YMAGWARN                 = If .TRUE., a warning will be issued
+!                            before any return from DVODE for any
+!                            solution component whose magnitude
+!                            is smaller than the absolute error
+!                            tolerance for that component.
+!   User-callable Routines:
+!   The following routines may be called by the user:
+!   SET_OPTS      : Used to set options for DVODE_F90
+!   GET_STATS     : Used to gather summary integration
+!                   statistics following a successful
+!                   return from DVODE_F90
+!   DVINDY        : Used if the user wishes to interpolate
+!                   solution or derivative following a
+!                   successful return from DVODE_F90
+!   USERSETS_IAJA : Used if the user wishes to supply the
+!                   sparsity structure directly
+!   Detailed Description of SET_OPTS
+!   The following are defined in SET_OPTS:
+!   OPTS%MF     = Integration method flag (MF)
+!   OPTS%METH   = Integration family flag (METH)
+!   OPTS%MITER  = Iteration type flag (MITER)
+!   OPTS%MOSS   = Sparsity array type flag (MOSS)
+!   OPTS%ITOL   = Error tolerance flag (ITOL) (ITOL)
+!   OPTS%ATOL   = Absolute error tolerance(s) (ATOL)
+!   OPTS%RTOL   = Relative error tolerance(s) (RTOL)
+!   OPTS%DENSE  = Use dense linear algebra
+!   OPTS%BANDED = Use banded linear algebra 
+!   OPTS%SPARSE = Use sparse linear algebra 
+!   OPTS%IOPT   = DVODE optional parameter input flag (IOPT)
+!   OPTS%NG     = Number of event functions
+!   RUSER(1)    = TCRIT (don't step past)
+!   IUSER(1)    = Jacobian lower bandwidth (ML)
+!   IUSER(2)    = Jacobian upper bandwidth (MU)
+!   RUSER(5)    = Initial step size to try (H0)
+!   RUSER(6)    = Maximum allowable step size (HMAX)
+!   RUSER(7)    = Minimum allowable step size (HMIN)
+!   IUSER(5)    = Maximum allowable integration order (MAXORD)
+!   IUSER(6)    = Maximum number of integration steps (MXSTEP)
+!   IUSER(7)    = Maximum number of T+H=T messages (MXHNIL)
+!   NZ_SWAG     = Guess for the number of nonzeros in the
+!                 sparse Jacobian
+!   NG          = Number of user event functions
+!   BOUNDS,     = Nonnegativity information
+!   NDX, IDX
+!   YMAXWARN    = Warning flag for |y(t)| < abserr
+!   MA28_ELBOW_ROOM = Integer multiple by which to increase
+!                     the elbow room in the MA28 sparse work
+!                     arrays
+!   MC19_SCALING    = logical flag to control MC19 sparse
+!                     scaling of the Jacobian
+!   MA28_MESSAGES   = logical flag to control printing of MA28
+!                     messages.
+!   MA28_EPS        = real(wp) MA28 singularity threshold
+!
+!                         All Options
+!
+! METHOD_FLAG
+!
+! Default:   Not used
+! Change to: No need to specify if use one of next three parameters
+!            but can be changed to any value of the MF method flag
+!            in dvode.f77
+!
+! DENSE_J
+!
+! Default:   .FALSE.
+! Change to: .TRUE. for dense linear algebra
+!
+! BANDED_J
+!
+! Default:   .FALSE.
+! Change to: .TRUE. for banded linear algebra
+!
+! SPARSE_J
+!
+! Default:   .FALSE.
+! Change to: .TRUE. for sparse linear algebra
+
+! USER_SUPPLIED_JACOBIAN
+!
+! Default:   .FALSE.
+! Change to: .TRUE. if want to supply subroutine JAC to DVODE_F90
+!
+! SAVE_JACOBIAN
+!
+! Default:   .TRUE.
+! Change to: .FALSE. if do not want DVODE_F90 to reuse saved
+!            Jacobians
+!
+! JACOBIAN_BY_JACSP
+!
+! Default:   .FALSE.
+! Change to: .TRUE. to approximate the Jacobian using Doug Salane's
+!            JACSP Jacobian subroutine
+!
+! CONSTANT_JACOBIAN
+!
+! Default:   .FALSE.
+! Change to: .TRUE. if Jacobian is constant
+!
+! LOWER_BANDWIDTH
+!
+! Default:   Not used
+! Change to: Lower bandwidth if BANDED_J = .TRUE.
+!
+! UPPER_BANDWIDTH
+!
+! Default:   Not used
+! Change to: Upper bandwidth if BANDED_J = .TRUE.
+!
+! SUB_DIAGONALS
+!
+! Default:   Not used
+! Change to: Starting row locations for sub diagonals in
+!            banded Jacobian
+!
+! SUP_DIAGONALS
+!
+! Default:   Not used
+! Change to: Starting columns locations for super diagonals
+!            in banded Jacobian
+!
+! RELERR
+!
+! Default:   None
+! Change to: Specify a nonzero relative error tolerance
+!
+! RELERR_VECTOR
+!
+! Default:   Not used
+! Change to: Vector of relative error tolerances
+!
+! ABSERR
+!
+! Default:   None
+! Change to: Specify a scalar absolute error tolerance or
+!            a vector of absolute error tolerances
+!
+! ABSERR_VECTOR
+!
+! Default:   Not used
+! Change to: Vector of absolute error tolerances
+!
+! TCRIT
+!
+! Default:   Not used
+! Change to: Value of T which DVODE_F90 is not to step past
+!
+!     H0
+!
+! Default:   Determined by DVODE_F90
+! Change to: Guess for initial step size
+!
+! HMAX
+!
+! Default:   Infinity
+! Change to: Maximum allowable step size
+!
+! HMIN
+!
+! Default:   0.0D0
+! Change to: Minimum allowable step size
+!
+! MAXORD
+!
+! Default:   Determined by DVODE_F90
+! Change to: Maximum integration order
+!
+! MXSTEP
+!
+! Default:   5000
+!     Change to: Maximum number of steps between output points
+!
+! MXHNIL
+!
+! Default:   10
+! Change to: Maximum number of times T+H=T message will be printed
+!
+! YMAGWARN
+!
+! Default:   .FALSE.
+! Change to: .TRUE. if wish to be warned when the magnitude of the
+!            solution is smaller than the absolute error tolerance
+!
+! SETH
+!
+! Default:   0.0D0
+! Change to: Threshold value below which Jacobian elements in the
+!            sparse Jacobian are considered to be zero
+!
+! UPIVOT
+!
+! Default:   1.0D0
+! Change to: partial pivoting factor between 0.0d0 and 1.0d0 to
+!            control the degree of partial pivoting used in sparse
+!            Gaussian Elimination
+!
+! NZSWAG
+!
+! Default:   Determined by DVODE_F90
+! Change to: Amount by which to increment sizes of sparse arrays
+!
+! USER_SUPPLIED_SPARSITY
+!
+! Default:   .FALSE.
+! Change to: .TRUE. if wish to call subroutine USERSETS_IAJA to
+!            define the sparse structure array pointers directly
+!
+! NEVENTS
+!
+! Default:   0
+! Change to: Number of event functions if wish to supply subroutine
+!            GFUN to DVODE_F90
+!
+! CONSTRAINED
+!
+! Default:   Bounds not imposed on solution
+! Change to: Array of indices for components on which to impose
+!            solution bounds
+!
+! CLOWER
+!
+! Default:   Not used
+! Change to: Vector containing lower bounds corresponding to
+!            CONSTRAINED
+!
+! CUPPER
+!
+! Default:   Not used
+! Change to: Vector containing upper bounds corresponding to
+!            CONSTRAINED
+!
+! MA28_ELBOW_ROOM
+!
+! Default:   2
+! Change to: Larger value to allow the sparse arrays more
+!            elbow room
+!
+! MC19_SCALING
+!
+! Default:   .FALSE.
+! Change to: .TRUE. to invoke scaling of the sparse solution
+!
+! MA28_MESSAGES
+!
+! Default:   .FALSE.
+! Change to: .TRUE. to have MA28 diagnostic messages written
+!            to unit 6
+!
+! MA28_EPS
+!
+! Default:   1.0D-4
+! Change to: Smaller positive value to allow the ratio of the
+!            magnitude of pivot elements and remaining row
+!            entries to be smaller before the iteration matrix
+!            is considered to be numerically singularity
+!
+! MA28_RPS
+!
+! Default:   .FALSE.
+! Change to: Redo the MA28AD sparse pivoting sequence any time
+!            MA28BD considers the iteration matrix to be
+!            numerically singularity
+!
+! Note on Jacobian Storage Formats:
+!
+! If you supply an analytic Jacobian PD, load the
+! Jacobian elements DF(I)/DY(J), the partial
+! derivative of F(I) with respect to Y(J), using
+! the following formats. Here, Y is the solution,
+! F is the derivative, and PD is the Jacobian.
+!
+! For a full Jacobian, load PD(I,J) with DF(I)/DY(J).
+! Your code might look like this:
+!    DO J = 1, NEQ
+!       DO I = 1, NEQ
+!          PD(I,J) = ... DF(I)/DY(J)
+!       END DO
+!    END DO       
+!
+! For a banded Jacobian, load PD(I-J+MU+1,J) with
+! DF(I)/DY(J) where ML is the lower bandwidth
+! and MU is the upper bandwidth of the Jacobian.
+! Your code might look like this:
+!    DO J = 1, NEQ
+!       I1 = MAX(1,J-ML)
+!       I2 = MIN(N,J+MU)
+!       DO I = I1, I2
+!          K = I-J+MU+1
+!          PD(K,J) = ... DF(I)/DY(J)
+!       END DO
+!    END DO
+!
+! For a sparse Jacobian, IA(J+1)-IA(J) is the number
+! of nonzeros in column change. JA(I) indicates the
+! rows in which the nonzeros occur. For column J,
+! the nonzeros occurs in rows I=JA(K) for K=I1,...,I2
+! where I1=IA(J) and I2= IA(J+1)-1. Load DF(I)/DY(J)
+! in PD(I). Your code might look like this:
+!    DO J = 1, NEQ
+!       I1 = IA(J)
+!       I2 = IA(J+1) - 1
+!       DO K = I1, I2
+!          I = JA(K)
+!          PD(I) = ... DF(I)/DY(J)
+!       END DO
+!    END DO
+!
+!                    More on Sparsity Options
+!
+! Two facts of life regarding the use of direct sparse solvers are
+! (1) significant improvements are possible, and (2) the use of
+! direct sparse solvers often is more demanding of the user.
+! Although SET_NORMAL_OPTS provides modest provisions for solving
+! problems with sparse Jacobians, using SET_OPTS rather than
+! SET_NORMAL_OPTS provides several advanced options. These options
+! are described below. The recommended manner in which to use
+! these options is also provided. Note that each of these optional
+! parameters have default values and need not be specified in your
+! call to SET_OPTS if you wish to use the default values. Note
+! also that the order in which the options are specified in a call
+! to SET_OPTS is not important.
+!
+!  (1) First determine if it is feasible to use either the BANDED
+!      or DENSE Jacobian option.
+!         Recommendation:
+!         Use the DENSE or BANDED option if possible. They do
+!         not require use of most of the options described here.
+!    
+!  (2) The Jacobian is approximated internally using differences
+!      if you do not provide an analytic Jacobian. The option
+!      USER_SUPPLIED_JACOBIAN=.TRUE. may be used if you wish to
+!      provide an analytic Jacobian.
+!         Recommendation:
+!         Use an internally generated Jacobian for most problems
+!         but consider providing an analytic Jacobian if it not
+!         too much trouble.
+!
+!  (3) If you do not provide the sparse structure arrays, they
+!      are approximated internally by making NEQ calls to your
+!      derivative subroutine and using differences to approximate
+!      the structure of the Jacobian. The option
+!      USER_SUPPLIED_SPARSITY and a call to USERSETS_IAJA can
+!      be used to supply the arrays directly. You can also use
+!      subroutine SET_IAJA to approximate the structure using
+!      different perturbation factors than those used in DVODE_F90.
+!         Recommendations:
+!         Although allowing DVODE_F90 to approximate the Jacobian
+!         structure suffices for most problems, if you know the
+!         sparsity pattern provide it directly. This eliminates
+!         the possibility that an important element that happens
+!         to be 0 when the sparsity pattern is approximated is
+!         later nonzero; and it avoids the NEQ extra calls to
+!         your derivative subroutine to approximate the structure.
+!         Note that a nemesis for any sparse ode solver is a
+!         problem in which the sparsity pattern actually changes
+!         during the integration. An example of such a problem
+!         is provided in the demohum21.f90 demonstration program.
+!         If you know the sparsity pattern changes or if you
+!         suspect it does because DVODE_F90 is generating
+!         nonconvergence error messages, consider having DVODE_F90
+!         re-approximate the structure by calling SET_OPTS and
+!         forcing an integration restart when control is returned
+!         to your calling program. Please do not do this at every
+!         output point since it will be extremely time consuming
+!         and inefficient if it is not needed.
+!
+!  (4) The optional parameter UPIVOT is used to control the type
+!      of partial pivoting pivoting in MA28AD. UPIVOT=0.0D0
+!      corresponds to no pivoting; and UPIVOT=1.0D0 corresponds
+!      to partial pivoting. UPIVOT may be assigned any value
+!      between 0 and 1. The pivoting strategy used in MA28AD is
+!      to accept a pivot for which the magnitude of the pivot
+!      element is greater than or equal to UPIVOT times the
+!      magnitude of the largest remaining element in the pivot
+!      row. The default value is UPIVOT=1.DO
+!         Recommendation:
+!         Use the default value UPIVOT=1.0D0.
+!
+!  (5) The optional parameter NZSWAG may/should be used to speed
+!      up the determination of acceptable array sizes for the
+!      internal sparse working arrays and the sparse Jacobian.
+!      Initially, DVODE_F90 allocates arrays of length
+!      max(10*NEQ,NSZSWAG) and increases this amount by
+!      max(10*NEQ,ELBOW_ROOM*NSZSWAG) as necessary. NZSWAG
+!      has a default value of 1000 and ELBOW_ROOM has a default
+!      value of 2.
+!         Recommendation:
+!         Provide a larger value for NZSWAG particularly if NEQ
+!         is large and you suspect considerable fill-in due to
+!         partial pivoting.
+!
+!  (6) The optional parameter ELBOW_ROOM may be used to control
+!      the amount of "elbow room" needed in the MA28 sparse arrays.
+!      The default value is 2 but a larger value can sometimes
+!      speed up the determination of sparse array sizes.
+!         Recommendation:
+!         MA28 error and diagnostic messages are turned off by
+!         default. The optional parameter MA28_MESSAGES may be
+!         used to turn them on if it is assigned a nonzero value.
+!         If you see several messages that state that LIRN_ALL
+!         or LICN_ALL is too small and that additional storage
+!         is being allocated for another try, and you have
+!         provided a large value for NZSWAG, increase the size
+!         of ELBOW_ROOM.
+!
+!  (7) The optional parameter SETH may be assigned a nonzero value
+!      that represents a threshhold value for the magitude of
+!      elements in the Jacobian below which the element will be
+!      treated as being zero. The default value is SETH=0.0D0.
+!         Recommendation:
+!         Use the default value SETH=0.0D0.
+!
+!  (8) MA28AD determines the pivot sequence to be used in subsequent
+!      calls to MA28BD. When MA28BD is called it considers the
+!      iteration matrix to be numerically singular if the magnitude
+!      of the ratio of the largest remaining element in the pivot
+!      row to the pivot element is less than EPS. This condition
+!      can arise since MA28BD is using an out-of-date pivot sequence.
+!      The default value used is EPS=1.0D-4. A smaller value
+!      of EPS may be appropriate for some problems. The optional
+!      parameter MA28_EPS may be used to change the default value.
+!         Recommendation:
+!         Use the default value EPS=1.0D-4.
+!
+!  (9) Badly scaled Jacobians can cause problems for sparse solvers.
+!      The parameter MA28_SCALING may be set .TRUE. to instruct
+!      DVODE_F90 to scale the iteration matrix using MC19AD. This
+!      can positively impact the performance of MA28AD. The default
+!      setting is MA28_SCALING=.FALSE.
+!         Recommendation:
+!         Unless the solution is not successful, use the default
+!         setting for MA29_SCALING; but consider using scaling
+!         if you know the problem is badly scaled (e.g., if the
+!         magnitudes of the components differ greatly).
+!
+! (10) As mentioned above, MA28BD uses the pivot sequence initially
+!      determined by MA28AD. When a singularity is diagnosed, the
+!      internal procedure used by the DENSE and BANDED options is
+!      used to reduce the step size and re-calulate the iteration
+!      matrix. This works fine for most problems; but particularly
+!      for badly scaled problems, the solution may be unsuccessful
+!      or it may drag along using small step sizes. This is due
+!      to the fact MA28BD will continue to use the out-of-date pivot
+!      sequence until singularity is again diagnosed. An option not
+!      available in previous sparse ode solvers may be used to
+!      instruct DVODE_F90 to force MA28AD to calculate a new pivot
+!      sequence when MA28BD encounters a singularity. Although
+!      MA28AD is considerably slower than MA28BD, the additional
+!      calls to MA28AD ensure that the pivot sequence is more
+!      up to date. This can increase both the accuracy and the
+!      efficiency very dramatically. The demodirn.f90 demonstration
+!      program provides an illustration of the dramatic improvement
+!      that is possible. The optional parameter MA28_RPS may be set
+!      .TRUE. to force these pivot sequence updates.
+!         Recommendation:
+!         Use the default value MA28_RPS=.FALSE; but if DVODE_F90
+!         encounters nonconvergence, use MA28_RPS=.TRUE. to force
+!         pivot sequence updates. Note that use of this option
+!         will usually obviate the necessity to use the other
+!         options described above. Note that we decided not to
+!         use MA28_RPS=.TRUE. as default simply because other
+!         sparse ode solvers are averse to calling MA28AD more
+!         than is absolutely necessary for a given problem.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Function Return Value ..
+        TYPE (VODE_OPTS) :: OPTS
+! ..
+! .. Scalar Arguments ..
+        KPP_REAL, OPTIONAL, INTENT (IN) :: ABSERR, H0, HMAX, HMIN,         &
+        MA28_EPS, RELERR, SETH, TCRIT, UPIVOT
+        INTEGER, OPTIONAL, INTENT (IN) :: LOWER_BANDWIDTH, MAXORD,          &
+          MA28_ELBOW_ROOM, METHOD_FLAG, MXHNIL, MXSTEP, NEVENTS, NZSWAG,    &
+          UPPER_BANDWIDTH
+        LOGICAL, OPTIONAL, INTENT (IN) :: BANDED_J, CHANGE_ONLY_f77_OPTIONS,&
+          CONSTANT_JACOBIAN, DENSE_J, JACOBIAN_BY_JACSP, MA28_MESSAGES,     &
+          MA28_RPS, MC19_SCALING, SAVE_JACOBIAN, SPARSE_J,                  &
+          USER_SUPPLIED_JACOBIAN, USER_SUPPLIED_SPARSITY, YMAGWARN
+! ..
+! .. Array Arguments ..
+        KPP_REAL, OPTIONAL, INTENT (IN) :: ABSERR_VECTOR(:), RELERR_VECTOR(:)
+        KPP_REAL, OPTIONAL :: CLOWER(:), CUPPER(:)
+        INTEGER, OPTIONAL, INTENT (IN) :: CONSTRAINED(:), SUB_DIAGONALS(:), &
+        SUP_DIAGONALS(:)
+! ..
+! .. Local Scalars ..
+        INTEGER ::  IER, IOPT, METH, MF, MFA, MFSIGN, MITER, ML, MOSS, MU,  &
+          NAE, NG, NRE
+        LOGICAL :: BANDED, DENSE, SPARSE
+        CHARACTER (80) :: MSG
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ALLOCATED, IABS, MAX, MINVAL, PRESENT, SIGN, SIZE
+! ..
+! .. FIRST EXECUTABLE STATEMENT SET_OPTS
+! ..
+    RUSER(1:LRWUSER) = ZERO
+    IUSER(1:LIWUSER) = 0
+    
+!   Allow default error tolerances?
+    ALLOW_DEFAULT_TOLS = .FALSE.
+
+!   Maximum number of consecutive error test failures?
+    CONSECUTIVE_EFAILS = KFH
+
+!   Maximum number of consecutive corrector iteration failures?
+    CONSECUTIVE_CFAILS = MXNCF
+
+!   Use JACSP to approximate Jacobian?
+    USE_JACSP = .FALSE.
+    IF (PRESENT(JACOBIAN_BY_JACSP)) THEN
+       IF (JACOBIAN_BY_JACSP) USE_JACSP = .TRUE.
+    END IF
+
+!   If only f77 options are to be changed, do it and return.
+    IF (PRESENT(CHANGE_ONLY_f77_OPTIONS)) THEN
+       IF (CHANGE_ONLY_f77_OPTIONS) THEN
+          IF (.NOT.OPTS_CALLED) THEN
+             MSG = 'You have not previously called SET_OPTS before attempting'
+             CALL XERRDV(MSG,500,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'to change one or more of the vode.f77 optional parameters.'
+             CALL XERRDV(MSG,500,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          IF (PRESENT(HMAX)) THEN
+             IOPT = 1
+             RUSER(6) = HMAX
+             MSG = 'HMAX changed in SET_OPTS.'
+             CALL XERRDV(MSG,510,1,0,0,0,1,HMAX,ZERO)
+          END IF
+          IF (PRESENT(HMIN)) THEN
+             IOPT = 1
+             RUSER(7) = HMIN
+             MSG = 'HMIN changed in SET_OPTS.'
+             CALL XERRDV(MSG,520,1,0,0,0,1,HMIN,ZERO)
+          END IF
+          IF (PRESENT(TCRIT)) THEN
+             IOPT = 1
+             RUSER(1) = TCRIT
+             MSG = 'TCRIT changed in SET_OPTS.'
+             CALL XERRDV(MSG,530,1,0,0,0,1,TCRIT,ZERO)
+          END IF
+          IF (PRESENT(MXSTEP)) THEN
+             IOPT = 1
+             IUSER(6) = MXSTEP
+             MSG = 'MXSTEP changed in SET_OPTS.'
+             CALL XERRDV(MSG,530,1,1,MXSTEP,0,0,ZERO,ZERO)
+          END IF
+          IF (PRESENT(MAXORD)) THEN
+             IOPT = 1
+             IUSER(5) = MAXORD
+             MSG = 'MAXORD changed in SET_OPTS.'
+             CALL XERRDV(MSG,540,1,1,MAXORD,0,0,ZERO,ZERO)
+          END IF
+          IF (PRESENT(MXHNIL)) THEN
+             IOPT = 1
+             IUSER(7) = MXHNIL
+             MSG = 'MXHNIL changed in SET_OPTS.'
+             CALL XERRDV(MSG,550,1,1,MXHNIL,0,0,ZERO,ZERO)
+          END IF
+       END IF
+       RETURN
+    END IF
+
+!   Set the flag to indicate that SET_OPTS has been called.
+    OPTS_CALLED = .TRUE.
+
+!   Set the MA48 storage cleanup flag.
+    MA48_WAS_USED = .FALSE.
+
+!   Set the fast factor option for MA48,
+    USE_FAST_FACTOR = .TRUE.
+
+!   Determine the working precision and define the value for UMAX
+!   expected by MA28. Note that it is different for single and
+!   double precision.
+    WPD = KIND(1.0D0)
+    WPS = KIND(1.0E0)
+    IF (WPD/=WP .AND. WPS/=WP) THEN
+      MSG = 'Illegal working precision in SET_OPTS.'
+      CALL XERRDV(MSG,560,2,0,0,0,0,ZERO,ZERO)
+    END IF
+    IF (WPD==WP) THEN
+!   Working precision is double.
+      UMAX = 0.999999999_dp
+    ELSE
+!     Working precision is single.
+      UMAX = 0.9999_dp
+    END IF
+
+!   Set the MA28 message flag.
+    IF (PRESENT(MA28_MESSAGES)) THEN
+       LP = 0
+       IF (MA28_MESSAGES) LP = 6
+    ELSE
+       LP = 0
+    END IF
+
+!   Set the MA28 singularity threshold.
+    IF (PRESENT(MA28_EPS)) THEN
+       IF (MA28_EPS > ZERO) THEN
+          EPS = MA28_EPS
+       ELSE
+          EPS = 1.0E-4_dp
+       END IF
+     ELSE
+       EPS = 1.0E-4_dp
+     END IF
+
+!   Set the MA28 pivot sequence frequency flag.
+    IF (PRESENT(MA28_RPS)) THEN
+       IF (MA28_RPS) THEN
+          REDO_PIVOT_SEQUENCE = MA28_RPS
+       ELSE
+          REDO_PIVOT_SEQUENCE = .FALSE.
+       END IF
+     ELSE
+       REDO_PIVOT_SEQUENCE = .FALSE.
+     END IF
+
+     MA28AD_CALLS = 0
+     MA28BD_CALLS = 0
+     MA28CD_CALLS = 0
+     MC19AD_CALLS = 0
+!_______________________________________________________________________
+! *****MA48 build change point. Insert these statements.
+!    MA48AD_CALLS = 0
+!    MA48BD_CALLS = 0
+!    MA48CD_CALLS = 0
+!_______________________________________________________________________
+     IRNCP = 0
+     ICNCP = 0
+     MINIRN = 0
+     MINICN = 0
+     MAX_MINIRN = 0
+     MAX_MINICN = 0
+     MAX_NNZ = 0
+
+!   Set the flag to warn the user if |(y(t)| < abserr.
+     IF (PRESENT(YMAGWARN)) THEN
+       IF (YMAGWARN) THEN
+         YMAXWARN = .TRUE.
+       ELSE
+         YMAXWARN = .FALSE.
+       END IF
+     ELSE
+       YMAXWARN = .FALSE.
+     END IF
+
+!    Load defaults for the optional input arrays for DVODE.
+     IUSER(1:8) = 0
+     RUSER(1:8) = ZERO
+
+!    Set the method flag.
+     IF (.NOT.(PRESENT(METHOD_FLAG))) THEN
+       MF = 10
+       IF (PRESENT(SPARSE_J)) THEN
+         IF (SPARSE_J) THEN
+           IF (PRESENT(USER_SUPPLIED_JACOBIAN)) THEN
+             IF (USER_SUPPLIED_JACOBIAN) THEN
+               MF = 126
+             ELSE
+               MF = 227
+             END IF
+           ELSE
+             MF = 227
+           END IF
+           IF (PRESENT(USER_SUPPLIED_SPARSITY)) THEN
+             IF (USER_SUPPLIED_SPARSITY) THEN
+               MF = MF - 100*(MF/100)
+             END IF
+           END IF
+           IF (PRESENT(SAVE_JACOBIAN)) THEN
+             IF (.NOT.SAVE_JACOBIAN) THEN
+               MF = -MF
+             END IF
+           END IF
+          END IF
+          END IF
+
+          IF (PRESENT(BANDED_J)) THEN
+            IF (BANDED_J) THEN
+              IF (PRESENT(USER_SUPPLIED_JACOBIAN)) THEN
+                IF (USER_SUPPLIED_JACOBIAN) THEN
+                  MF = 24
+                ELSE
+                  MF = 25
+                END IF
+              ELSE
+                MF = 25
+              END IF
+              IF (PRESENT(SAVE_JACOBIAN)) THEN
+                IF (.NOT.SAVE_JACOBIAN) THEN
+                  MF = -MF
+                END IF
+              END IF
+            END IF
+          END IF
+
+          IF (PRESENT(DENSE_J)) THEN
+            IF (DENSE_J) THEN
+              IF (PRESENT(USER_SUPPLIED_JACOBIAN)) THEN
+                IF (USER_SUPPLIED_JACOBIAN) THEN
+                  MF = 21
+                ELSE
+                  MF = 22
+                END IF
+              ELSE
+                MF = 22
+              END IF
+              IF (PRESENT(SAVE_JACOBIAN)) THEN
+                IF (.NOT.SAVE_JACOBIAN) THEN
+                  MF = -MF
+                END IF
+              END IF
+            END IF
+          END IF
+     ELSE
+       MF = METHOD_FLAG
+     END IF
+
+!    Check for errors in MF.
+     MFA = IABS(MF)
+     MOSS = MFA/100
+     METH = (MFA-100*MOSS)/10
+     MITER = MFA - 100*MOSS - 10*METH
+     IF (METH<1 .OR. METH>2) THEN
+       MSG = 'Illegal value of METH in SET_OPTS.'
+       CALL XERRDV(MSG,570,2,0,0,0,0,ZERO,ZERO)
+     END IF
+     IF (MITER<0 .OR. MITER>7) THEN
+       MSG = 'Illegal value of MITER in SET_OPTS.'
+       CALL XERRDV(MSG,580,2,0,0,0,0,ZERO,ZERO)
+     END IF
+     IF (MOSS<0 .OR. MOSS>2) THEN
+       MSG = 'Illegal value of MOSS in SET_OPTS.'
+       CALL XERRDV(MSG,580,2,0,0,0,0,ZERO,ZERO)
+     END IF
+
+!    Reset MF, now that MOSS is known.
+     MFSIGN = SIGN(1,MF)
+     MF = MF - 100*MOSS*MFSIGN
+
+     IF (MITER==0) THEN
+       DENSE = .FALSE.
+       BANDED = .FALSE.
+       SPARSE = .FALSE.
+     ELSE IF (MITER==1 .OR. MITER==2) THEN
+       DENSE = .TRUE.
+       BANDED = .FALSE.
+       SPARSE = .FALSE.
+     ELSE IF (MITER==3) THEN
+       DENSE = .FALSE.
+       BANDED = .FALSE.
+       SPARSE = .FALSE.
+     ELSE IF (MITER==4 .OR. MITER==5) THEN
+       DENSE = .FALSE.
+       BANDED = .TRUE.
+       SPARSE = .FALSE.
+     ELSE IF (MITER==6 .OR. MITER==7) THEN
+       DENSE = .FALSE.
+       BANDED = .FALSE.
+       SPARSE = .TRUE.
+     END IF
+
+!    Define the banded Jacobian band widths.
+     IF (BANDED) THEN
+       IF (PRESENT(LOWER_BANDWIDTH)) THEN
+         ML = LOWER_BANDWIDTH
+         IUSER(1) = ML
+       ELSE
+         MSG = 'In SET_OPTS you have indicated a'
+         CALL XERRDV(MSG,590,1,0,0,0,0,ZERO,ZERO)
+         MSG = 'banded Jacobian but you have not'
+         CALL XERRDV(MSG,590,1,0,0,0,0,ZERO,ZERO)
+         MSG = 'supplied the lower bandwidth.'
+         CALL XERRDV(MSG,590,2,0,0,0,0,ZERO,ZERO)
+       END IF
+       IF (PRESENT(UPPER_BANDWIDTH)) THEN
+         MU = UPPER_BANDWIDTH
+         IUSER(2) = MU
+       ELSE
+         MSG = 'In SET_OPTS you have indicated a'
+         CALL XERRDV(MSG,600,1,0,0,0,0,ZERO,ZERO)
+         MSG = 'banded Jacobian but you have not'
+         CALL XERRDV(MSG,600,1,0,0,0,0,ZERO,ZERO)
+         MSG = 'supplied the upper bandwidth.'
+         CALL XERRDV(MSG,600,2,0,0,0,0,ZERO,ZERO)
+       END IF
+!      Define the nonzero diagonals.
+       BNGRP = 0
+       SUBS = .FALSE.
+       SUPS = .FALSE.
+       NSUBS  = 0
+       NSUPS = 0
+       IF (PRESENT(SUB_DIAGONALS)) THEN
+         SUBS = .TRUE.
+         NSUBS = SIZE(SUB_DIAGONALS)
+         IF (NSUBS > 0) THEN
+            IF (ALLOCATED(SUBDS)) THEN
+               DEALLOCATE(SUBDS,STAT=IER)
+               CALL CHECK_STAT(IER,80)
+            END IF
+            ALLOCATE(SUBDS(NSUBS),STAT=IER)
+            CALL CHECK_STAT(IER,90)
+            SUBDS(1:NSUBS) = SUB_DIAGONALS(1:NSUBS)
+         ELSE
+            IF (ML > 0) THEN
+               MSG = 'You must indicated that the lower bandwidth'
+               CALL XERRDV(MSG,610,1,0,0,0,0,ZERO,ZERO)
+               MSG = 'is positive but you have not specified the'
+               CALL XERRDV(MSG,610,1,0,0,0,0,ZERO,ZERO)
+               MSG = 'indices for the lower sub diagonals.'
+               CALL XERRDV(MSG,610,2,0,0,0,0,ZERO,ZERO)
+            END IF
+         END IF
+       END IF
+       IF (PRESENT(SUP_DIAGONALS)) THEN
+         SUPS = .TRUE.
+         NSUPS = SIZE(SUP_DIAGONALS)
+         IF (NSUPS > 0) THEN
+            IF (ALLOCATED(SUPDS)) THEN
+               DEALLOCATE(SUPDS,STAT=IER)
+               CALL CHECK_STAT(IER,100)
+            END IF
+            ALLOCATE(SUPDS(NSUPS),STAT=IER)
+            CALL CHECK_STAT(IER,110)
+            SUPDS(1:NSUPS) = SUP_DIAGONALS(1:NSUPS)
+         ELSE
+            IF (ML > 0) THEN
+               MSG = 'You must indicated that the upper bandwidth'
+               CALL XERRDV(MSG,620,1,0,0,0,0,ZERO,ZERO)
+               MSG = 'is positive but you have not specified the'
+               CALL XERRDV(MSG,620,1,0,0,0,0,ZERO,ZERO)
+               MSG = 'indices for the upper sub diagonals.'
+               CALL XERRDV(MSG,620,2,0,0,0,0,ZERO,ZERO)
+            END IF
+         END IF
+       END IF
+     END IF
+
+!    Define the sparse Jacobian options.
+     SCALE_MATRIX = .FALSE.
+     ELBOW_ROOM = 2
+     IF (SPARSE) THEN
+!      NZSWAG for the number of nonzeros in the Jacobian.
+       IF (PRESENT(NZSWAG)) THEN
+         NZ_SWAG = MAX(NZSWAG,0)
+
+       ELSE
+         NZ_SWAG = 0
+       END IF
+!      Indicate that SET_IAJA has not yet been called successfully.
+       IAJA_CALLED = .FALSE.
+!      Check for illegal method flags.
+       IF (MOSS==2 .AND. MITER/=7) THEN
+         MSG = 'In SET_OPTS MOSS=2 but MITER is not 7.'
+            CALL XERRDV(MSG,630,2,0,0,0,0,ZERO,ZERO)
+         END IF
+         IF (MOSS==1 .AND. MITER/=6) THEN
+           MSG = 'In SET_OPTS MOSS=1 but MITER is not 6.'
+           CALL XERRDV(MSG,640,2,0,0,0,0,ZERO,ZERO)
+         END IF
+!        IF (MOSS==0 .AND. MITER/=7) THEN
+!          MSG = 'In SET_OPTS MOSS=0 but MITER is not 7.'
+!          CALL XERRDV(MSG,650,2,0,0,0,0,ZERO,ZERO)
+!        END IF
+!        Allow the work array elbow room to be increased.
+         IF (PRESENT(MA28_ELBOW_ROOM)) THEN
+            ELBOW_ROOM = MAX(MA28_ELBOW_ROOM, ELBOW_ROOM)
+         END IF
+!      Allow MC19 scaling for the Jacobian.
+       SCALE_MATRIX = .FALSE.
+       IF (PRESENT(MC19_SCALING)) THEN
+          IF (MC19_SCALING) THEN
+!_______________________________________________________________________
+! *****MA48 build change point. Insert these statements.
+!         IF (USE_MA48_FOR_SPARSE) THEN
+!            MSG = 'MC29AD scaling is not available at this time.'
+!            CALL XERRDV(MSG,660,1,0,0,0,0,ZERO,ZERO)
+!            MSG = 'Execution will continue.'
+!            CALL XERRDV(MSG,660,1,0,0,0,0,ZERO,ZERO)
+!         END IF
+!_______________________________________________________________________
+             SCALE_MATRIX = MC19_SCALING
+!            SCALE_MATRIX = .FALSE.
+          END IF
+       END IF
+
+!_______________________________________________________________________
+! *****MA48 build change point. Replace above with these statements.
+!      IF (PRESENT(MC19_SCALING)) THEN
+!         IF (MC19_SCALING) THEN
+!            IF (USE_MA48_FOR_SPARSE) THEN
+!               MSG = 'Please note that this version uses MC19AD rather'
+!               CALL XERRDV(MSG,670,1,0,0,0,0,ZERO,ZERO)
+!               MSG = 'than MC29AD to sacle the iteration matrix.'
+!               CALL XERRDV(MSG,670,1,0,0,0,0,ZERO,ZERO)
+!               MSG = 'Execution will continue.'
+!               CALL XERRDV(MSG,670,1,0,0,0,0,ZERO,ZERO)
+!            END IF
+!            SCALE_MATRIX = MC19_SCALING
+!         END IF
+!       END IF
+!_______________________________________________________________________
+
+       END IF
+
+!       Define the number of event functions.
+        IF (PRESENT(NEVENTS)) THEN
+          IF (NEVENTS>0) THEN
+            NG = NEVENTS
+          ELSE
+            NG = 0
+          END IF
+        ELSE
+          NG = 0
+        END IF
+
+!       Process the constrained solution components.
+        IF (PRESENT(CONSTRAINED)) THEN
+          NDX = SIZE(CONSTRAINED)
+          IF (NDX<1) THEN
+            MSG = 'In SET_OPTS the size of CONSTRAINED < 1.'
+            CALL XERRDV(MSG,680,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          IF (.NOT.(PRESENT(CLOWER)) .OR. .NOT.(PRESENT(CUPPER))) THEN
+            MSG = 'In SET_OPTS the arrays CLOWER and CUPPER are'
+            CALL XERRDV(MSG,690,1,0,0,0,0,ZERO,ZERO)
+            MSG = 'not present.'
+            CALL XERRDV(MSG,690,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          IF (SIZE(CLOWER)/=NDX .OR. SIZE(CUPPER)/=NDX) THEN
+            MSG = 'In SET_OPTS the size of the solution bound arrays'
+            CALL XERRDV(MSG,700,1,0,0,0,0,ZERO,ZERO)
+            MSG = 'must be the same as the CONSTRAINED array.'
+            CALL XERRDV(MSG,700,2,0,0,0,0,ZERO,ZERO)
+          END IF
+!         Note: The contents of CONSTRAINED will be checked
+!         in subroutine DVODE after NEQ is known.
+          IF (ALLOCATED(IDX)) THEN
+            DEALLOCATE (IDX,LB,UB,STAT=IER)
+            CALL CHECK_STAT(IER,120)
+          END IF
+          ALLOCATE (IDX(NDX),LB(NDX),UB(NDX),STAT=IER)
+          CALL CHECK_STAT(IER,130)
+          IDX(1:NDX) = CONSTRAINED(1:NDX)
+          LB(1:NDX) = CLOWER(1:NDX)
+          UB(1:NDX) = CUPPER(1:NDX)
+          BOUNDS = .TRUE.
+        ELSE
+          IF (ALLOCATED(IDX)) THEN
+            DEALLOCATE (IDX,LB,UB,STAT=IER)
+            CALL CHECK_STAT(IER,140)
+          END IF
+          NDX = 0
+          BOUNDS = .FALSE.
+        END IF
+
+!       Is the Jacobian constant?
+        J_IS_CONSTANT = .FALSE.
+        J_HAS_BEEN_COMPUTED = .FALSE.
+
+!_______________________________________________________________________
+        IF (PRESENT(CONSTANT_JACOBIAN)) THEN
+           IF (CONSTANT_JACOBIAN) THEN
+              J_IS_CONSTANT = .TRUE.
+!_______________________________________________________________________
+! *****MA48 build change point. Insert these statements.
+              IF (USE_MA48_FOR_SPARSE .AND. SPARSE) THEN
+                 MSG = 'The constant Jacobian option is not yet available'
+                 CALL XERRDV(MSG,710,1,0,0,0,0,ZERO,ZERO)
+                 MSG = 'with the sparse MA48 solution option. Execution'
+                 CALL XERRDV(MSG,710,1,0,0,0,0,ZERO,ZERO)
+                 MSG = 'will continue.'
+                 CALL XERRDV(MSG,710,1,0,0,0,0,ZERO,ZERO)
+                 J_IS_CONSTANT = .FALSE.
+              END IF
+!_______________________________________________________________________
+           END IF
+        END IF
+! *****MA48 build change point. Replace above with these statements.
+!       IF (PRESENT(CONSTANT_JACOBIAN)) THEN
+!          IF (CONSTANT_JACOBIAN) THEN
+!             IF (USE_MA48_FOR_SPARSE) THEN
+!                MSG = 'The constant Jacobian option is not yet available'
+!                CALL XERRDV(MSG,720,1,0,0,0,0,ZERO,ZERO)
+!                MSG = 'with the sparse MA48 solution option. Execution'
+!                CALL XERRDV(MSG,720,1,0,0,0,0,ZERO,ZERO)
+!                MSG = 'will continue.'
+!                CALL XERRDV(MSG,720,1,0,0,0,0,ZERO,ZERO)
+!             END IF
+!          ELSE
+!             J_IS_CONSTANT = .TRUE.
+!          END IF
+!       END IF
+!_______________________________________________________________________
+        IF (J_IS_CONSTANT) THEN
+           IF (PRESENT(SAVE_JACOBIAN)) THEN
+              IF (.NOT.SAVE_JACOBIAN) THEN
+                 MSG = 'You have specified that the Jacobian is constant.'
+                 CALL XERRDV(MSG,730,1,0,0,0,0,ZERO,ZERO)
+                 MSG = 'In this case you cannot also specify that'
+                 CALL XERRDV(MSG,730,1,0,0,0,0,ZERO,ZERO)
+                 MSG = 'SAVE_JACOBIAN=.FALSE.'
+                 CALL XERRDV(MSG,730,2,0,0,0,0,ZERO,ZERO)
+              END IF
+           END IF
+           IF (PRESENT(USER_SUPPLIED_JACOBIAN)) THEN
+              IF (USER_SUPPLIED_JACOBIAN .AND. SPARSE) THEN
+                 MSG = 'You have specified that the Jacobian is constant'
+                 CALL XERRDV(MSG,740,1,0,0,0,0,ZERO,ZERO)
+                 MSG = 'and that you wish to supply an analytic Jacobian'
+                 CALL XERRDV(MSG,740,1,0,0,0,0,ZERO,ZERO)
+                 MSG = 'for a sparse problem. In this case your request'
+                 CALL XERRDV(MSG,740,1,0,0,0,0,ZERO,ZERO)
+                 MSG = 'to use a constant Jacobian will be ignored.'
+                 CALL XERRDV(MSG,740,1,0,0,0,0,ZERO,ZERO)
+                 MSG = 'Execution will continue.'
+                 CALL XERRDV(MSG,740,1,0,0,0,0,ZERO,ZERO)
+              END IF
+           END IF
+        END IF
+
+!       Load the user options into the solution structure.
+        OPTS%MF = MF
+        OPTS%METH = METH
+        OPTS%MITER = MITER
+        OPTS%MOSS = MOSS
+        OPTS%DENSE = DENSE
+        OPTS%BANDED = BANDED
+        OPTS%SPARSE = SPARSE
+        OPTS%NG = NG
+
+!       Process the miscellaneous options.
+
+!       Don't step past TCRIT variable.
+        IF (PRESENT(TCRIT)) THEN
+          RUSER(1) = TCRIT
+        ELSE
+          RUSER(1) = ZERO
+        END IF
+
+!       DVODE optional parameters.
+        IOPT = 1
+        IF (PRESENT(MAXORD)) THEN
+          IUSER(5) = MAXORD
+          IOPT = 1
+        END IF
+        IF (PRESENT(MXSTEP)) THEN
+          IUSER(6) = MXSTEP
+          IOPT = 1
+        END IF
+        IF (PRESENT(MXHNIL)) THEN
+          IUSER(7) = MXHNIL
+          IOPT = 1
+        END IF
+        IF (PRESENT(H0)) THEN
+          RUSER(5) = H0
+          IOPT = 1
+        END IF
+        IF (PRESENT(HMAX)) THEN
+          RUSER(6) = HMAX
+          IOPT = 1
+        END IF
+        IF (PRESENT(HMIN)) THEN
+          RUSER(7) = HMIN
+          IOPT = 1
+        END IF
+        IF (PRESENT(SETH)) THEN
+          RUSER(8) = SETH
+          IOPT = 1
+        END IF
+        IF (PRESENT(UPIVOT)) THEN
+          U_PIVOT = UPIVOT
+          IF (U_PIVOT<ZERO) U_PIVOT = ZERO
+          IF (U_PIVOT>ONE) U_PIVOT = ONE
+        ELSE
+          U_PIVOT = ONE
+        END IF
+!_______________________________________________________________________
+! *****MA48 build change point. Insert this statement.
+!       COPY_OF_U_PIVOT = U_PIVOT
+!_______________________________________________________________________
+        OPTS%IOPT = IOPT
+
+!       Define the error tolerances.
+
+!       Relative error tolerances.
+        IF (PRESENT(RELERR_VECTOR)) THEN
+          IF (MINVAL(RELERR_VECTOR)<ZERO) THEN
+            MSG = 'All components of RELERR_VECTOR must'
+            CALL XERRDV(MSG,750,1,0,0,0,0,ZERO,ZERO)
+            MSG = 'be nonnegative.'
+            CALL XERRDV(MSG,750,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          NRE = SIZE(RELERR_VECTOR)
+        ELSE
+          NRE = 1
+        END IF
+        ALLOCATE (OPTS%RTOL(NRE),STAT=IER)
+        CALL CHECK_STAT(IER,150)
+        IF (PRESENT(RELERR_VECTOR)) THEN
+          OPTS%RTOL = RELERR_VECTOR
+        ELSE IF (PRESENT(RELERR)) THEN
+          IF (RELERR<ZERO) THEN
+            MSG = 'RELERR must be nonnegative.'
+            CALL XERRDV(MSG,760,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          OPTS%RTOL = RELERR
+        ELSE
+          IF (ALLOW_DEFAULT_TOLS) THEN
+             OPTS%RTOL = 1.0E-4_dp
+             MSG = 'By not specifying RELERR, you have elected to use a default'
+             CALL XERRDV(MSG,770,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'relative error tolerance equal to 1.0D-4. Please be aware a'
+             CALL XERRDV(MSG,770,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'tolerance this large is not appropriate for all problems.'
+             CALL XERRDV(MSG,770,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'Execution will continue'
+             CALL XERRDV(MSG,770,1,0,0,0,0,ZERO,ZERO)
+          ELSE
+             MSG = 'You must specify a nonzero relative error tolerance.'
+             CALL XERRDV(MSG,780,2,0,0,0,0,ZERO,ZERO)
+          END IF
+        END IF
+
+!       Absolute error tolerances.
+        IF (PRESENT(ABSERR_VECTOR)) THEN
+          IF (MINVAL(ABSERR_VECTOR)<ZERO) THEN
+            MSG = 'All components of ABSERR_VECTOR must'
+            CALL XERRDV(MSG,790,1,0,0,0,0,ZERO,ZERO)
+            MSG = 'be nonnegative.'
+            CALL XERRDV(MSG,790,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          NAE = SIZE(ABSERR_VECTOR)
+        ELSE
+          NAE = 1
+        END IF
+        ALLOCATE (OPTS%ATOL(NAE),STAT=IER)
+        CALL CHECK_STAT(IER,160)
+        IF (PRESENT(ABSERR_VECTOR)) THEN
+          OPTS%ATOL = ABSERR_VECTOR
+        ELSE IF (PRESENT(ABSERR)) THEN
+          IF (ABSERR<ZERO) THEN
+            MSG = 'ABSERR must be nonnegative.'
+            CALL XERRDV(MSG,800,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          OPTS%ATOL = ABSERR
+        ELSE
+          IF (ALLOW_DEFAULT_TOLS) THEN
+             OPTS%ATOL = 1D-6
+             MSG = 'By not specifying ABSERR, you have elected to use a default'
+             CALL XERRDV(MSG,810,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'absolute error tolerance equal to 1.0D-6. Please be aware a'
+             CALL XERRDV(MSG,810,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'tolerance this large is not appropriate for all problems.'
+             CALL XERRDV(MSG,810,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'Execution will continue'
+             CALL XERRDV(MSG,810,1,0,0,0,0,ZERO,ZERO)
+          ELSE
+             MSG = 'You must specify a vector of absolute error tolerances or'
+             CALL XERRDV(MSG,820,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'a scalar error tolerance. It is recommended that you use'
+             CALL XERRDV(MSG,820,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'a vector of absolute error tolerances.'
+             CALL XERRDV(MSG,820,2,0,0,0,0,ZERO,ZERO)
+          END IF
+        END IF
+
+!       ITOL error tolerance flag.
+!          ITOL   RTOL     ATOL            EWT(i)
+!            1   scalar   scalar  RTOL*ABS(Y(i)) + ATOL
+!            2   scalar   array   RTOL*ABS(Y(i)) + ATOL(i)
+!            3   array    scalar  RTOL(i)*ABS(Y(i)) + ATOL
+!            4   array    array   RTOL(i)*ABS(Y(i)) + ATOL(i)
+        IF (PRESENT(ABSERR_VECTOR)) THEN
+          IF (PRESENT(RELERR_VECTOR)) THEN
+            OPTS%ITOL = 4
+          ELSE
+            OPTS%ITOL = 2
+          END IF
+        ELSE
+          IF (PRESENT(RELERR_VECTOR)) THEN
+            OPTS%ITOL = 3
+          ELSE
+            OPTS%ITOL = 1
+          END IF
+        END IF
+        RETURN
+
+  END FUNCTION SET_OPTS
+!_______________________________________________________________________
+
+      SUBROUTINE GET_STATS(RSTATS,ISTATS,NUMEVENTS,JROOTS)
+! ..
+! Return the user portions of the DVODE RUSER and IUSER arrays;
+! and if root finding is being done, return the JROOT vector
+! (not called by DVODE_F90).
+! ..
+! Available Integration Statistics.
+! HU      RUSER(11) The step size in t last used (successfully).
+! HCUR    RUSER(12) The step size to be attempted on the next step.
+! TCUR    RUSER(13) The current value of the independent variable
+!                   which the solver has actually reached, i.e. the
+!                   current internal mesh point in t. In the output,
+!                   TCUR will always be at least as far from the
+!                   initial value of t as the current argument T,
+!                   but may be farther (if interpolation was done).
+! TOLSF   RUSER(14) A tolerance scale factor, greater than 1.0,
+!                   computed when a request for too much accuracy was
+!                   detected (ISTATE = -3 if detected at the start of
+!                   the problem, ISTATE = -2 otherwise). If ITOL is
+!                   left unaltered but RTOL and ATOL are uniformly
+!                   scaled up by a factor of TOLSF for the next call,
+!                   then the solver is deemed likely to succeed.
+!                   (The user may also ignore TOLSF and alter the
+!                   tolerance parameters in any other way appropriate.)
+! NST     IUSER(11) The number of steps taken for the problem so far.
+! NFE     IUSER(12) The number of f evaluations for the problem so far.
+! NJE     IUSER(13) The number of Jacobian evaluations so far.
+! NQU     IUSER(14) The method order last used (successfully).
+! NQCUR   IUSER(15) The order to be attempted on the next step.
+! IMXER   IUSER(16) The index of the component of largest magnitude in
+!                   the weighted local error vector (e(i)/EWT(i)),
+!                   on an error return with ISTATE = -4 or -5.
+! LENRW   IUSER(17) The length of RUSER actually required.
+!                   This is defined on normal returns and on an illegal
+!                   input return for insufficient storage.
+! LENIW   IUSER(18) The length of IUSER actually required.
+!                   This is defined on normal returns and on an illegal
+!                   input return for insufficient storage.
+! NLU     IUSER(19) The number of matrix LU decompositions so far.
+! NNI     IUSER(20) The number of nonlinear (Newton) iterations so far.
+! NCFN    IUSER(21) The number of convergence failures of the nonlinear
+!                   solver so far.
+! NETF    IUSER(22) The number of error test failures of the integrator
+!                   so far.
+! MA28AD_CALLS      IUSER(23) The number of calls made to MA28AD
+! MA28BD_CALLS      IUSER(24) The number of calls made to MA28BD
+! MA28CD_CALLS      IUSER(25) The number of calls made to MA28CD
+! MC19AD_CALLS      IUSER(26) The number of calls made to MC19AD
+! IRNCP             IUSER(27) The number of compressions done on array JAN
+! ICNCP             IUSER(28) The number of compressions done on array ICN
+! MINIRN            IUSER(29) Minimum size for JAN array
+! MINICN            IUSER(30) Minimum size for ICN array
+! JROOTS  JROOTS    Optional array of component indices for components
+!                   having a zero at the current time
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, OPTIONAL, INTENT (IN) :: NUMEVENTS
+! ..
+! .. Array Arguments ..
+        KPP_REAL, INTENT (INOUT) :: RSTATS(22)
+        INTEGER, INTENT (INOUT) :: ISTATS(31)
+        INTEGER, OPTIONAL, INTENT (INOUT) :: JROOTS(:)
+! ..
+! .. Local Scalars ..
+        CHARACTER (80) :: MSG
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ALLOCATED, PRESENT, SIZE
+! ..
+!   Caution:
+!   It is assumed that the size of RSTATS is 22.
+!   It is assumed that the size of ISTATS is 31.
+!   Refer to the documentation prologue for a description
+!   the optional output contained in RUSER and IUSER.
+! ..
+! .. FIRST EXECUTABLE STATEMENT GET_STATS
+! ..
+!       Check if DVODE_F90 has been called yet.
+        IF (.NOT.OPTS_CALLED) THEN
+          MSG = 'You have called GET_STATS before'
+          CALL XERRDV(MSG,830,1,0,0,0,0,ZERO,ZERO)
+          MSG = 'calling DVODE_F90 the first time.'
+          CALL XERRDV(MSG,830,1,0,0,0,0,ZERO,ZERO)
+          RETURN
+        END IF
+
+!       Check that the arrays are large enough to hold the statistics.
+!       Some compilers don't like this use of SIZE.
+!       IF (SIZE(RSTATS)<LRWUSER) THEN
+!       IF (SIZE(RSTATS)<31) THEN
+!         MSG = 'In GET_STATS, RSTATS array is too small.'
+!         CALL XERRDV(MSG,840,1,0,0,0,0,ZERO,ZERO)
+!         RETURN
+!       END IF
+!       IF (SIZE(ISTATS)<LIWUSER) THEN
+!       IF (SIZE(ISTATS)<31) THEN
+!         MSG = 'In GET_STATS, ISTATS array is too small.'
+!         CALL XERRDV(MSG,850,1,0,0,0,0,ZERO,ZERO)
+!         RETURN
+!       END IF
+
+!       Copy the statistics.
+        RSTATS(1:LRWUSER) = RUSER(1:LRWUSER)
+!       ISTATS(1:LIWUSER) = IUSER(1:LIWUSER)
+        ISTATS(1:22) = IUSER(1:22)
+        ISTATS(23) = MA28AD_CALLS
+        ISTATS(24) = MA28BD_CALLS
+        ISTATS(25) = MA28CD_CALLS
+!_______________________________________________________________________
+! *****MA48 build change point.Replace the three previous statements
+!      with these statements.
+!       IF (USE_MA48_FOR_SPARSE) THEN
+!          ISTATS(23) = MA48AD_CALLS
+!          ISTATS(24) = MA48BD_CALLS
+!          ISTATS(25) = MA48CD_CALLS
+!       ELSE
+!          ISTATS(23) = MA28AD_CALLS
+!          ISTATS(24) = MA28BD_CALLS
+!          ISTATS(25) = MA28CD_CALLS
+!       END IF
+!_______________________________________________________________________
+        ISTATS(26) = MC19AD_CALLS
+        ISTATS(27) = IRNCP
+        ISTATS(28) = ICNCP
+!       ISTATS(29) = MINIRN
+!       ISTATS(30) = MINICN
+!       ISTATS(31) = NZ_ALL
+        ISTATS(29) = MAX_MINIRN
+        ISTATS(30) = MAX_MINICN
+        ISTATS(31) = MAX_NNZ
+!       If root finding is being used return the JROOT vector.
+        IF (PRESENT(NUMEVENTS)) THEN
+          IF (PRESENT(JROOTS)) THEN
+            IF (ALLOCATED(JROOT)) THEN
+              JROOTS(1:NUMEVENTS) = JROOT(1:NUMEVENTS)
+            END IF
+          END IF
+        END IF
+        RETURN
+
+      END SUBROUTINE GET_STATS
+!_______________________________________________________________________
+
+      SUBROUTINE USERSETS_IAJA(IAUSER,NIAUSER,JAUSER,NJAUSER)
+! ..
+! Approximate or allow the user to supply the sparse Jacobian
+! structure pointer arrays IA and JA directly for DVODE_F90
+! (not called by DVODE_F90).
+! ..
+! Used if the user wishes to supply the sparsity structure
+! directly.
+!     Caution:
+!     If it is called, USERSETS_IAJA must be called after the
+!     call to SET_OPTS.
+!     Usage:
+!     CALL SET_IAJA(IAUSER,NIAUSER,JAUSER,NJAUSER)
+!       In this case, IAUSER of length NIAUSER will be used for
+!       IA; and JAUSER of length NJAUSER will be used for JA.
+!     Arguments:
+!     IAUSER  = user supplied IA array
+!     NIAUSER = length of IAUSER array
+!     JAUSER  = user supplied JA vector
+!     NJAUSER = length of JAUSER array
+!     Results:
+!     IA(IADIM), IADIM, JA(JADIM), JAMIN, SPARSE
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: NIAUSER, NJAUSER
+! ..
+! .. Array Arguments ..
+        INTEGER, INTENT (IN) :: IAUSER(NIAUSER), JAUSER(NJAUSER)
+! ..
+! .. Local Scalars ..
+        INTEGER :: JER
+        CHARACTER (80) :: MSG
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ALLOCATED
+! ..
+! .. FIRST EXECUTABLE STATEMENT USERSETS_IAJA
+! ..
+!       Check that SET_OPTS has been called:
+        IF (.NOT.OPTS_CALLED) THEN
+          MSG = 'You have not called SET_OPTS before'
+          CALL XERRDV(MSG,860,1,0,0,0,0,ZERO,ZERO)
+          MSG = 'calling USERSETS_IAJA.'
+          CALL XERRDV(MSG,860,2,0,0,0,0,ZERO,ZERO)
+        END IF
+        SPARSE = .FALSE.
+        IAJA_CALLED = .FALSE.
+        IADIM = NIAUSER
+        JADIM = NJAUSER
+        IF (ALLOCATED(IA)) THEN
+          DEALLOCATE (IA,JA,STAT=JER)
+          CALL CHECK_STAT(JER,170)
+        END IF
+        ALLOCATE (IA(IADIM),JA(JADIM),STAT=JER)
+        IF (JER/=0) THEN
+          MSG = 'Check your values of NIAUSER and NJAUSER'
+          CALL XERRDV(MSG,870,1,0,0,0,0,ZERO,ZERO)
+          MSG = 'in your call to USERSETS_IAJA.'
+          CALL XERRDV(MSG,870,2,0,0,0,0,ZERO,ZERO)
+        END IF
+        CALL CHECK_STAT(JER,180)
+        IA(1:IADIM) = IAUSER(1:IADIM)
+        JA(1:JADIM) = JAUSER(1:JADIM)
+!       Set the flags to indicate to DVODE_F90 that IA and JA have
+!       been loaded successfully.
+        SPARSE = .TRUE.
+        IAJA_CALLED = .TRUE.
+        RETURN
+
+      END SUBROUTINE USERSETS_IAJA
+!_______________________________________________________________________
+
+      SUBROUTINE SET_IAJA(DFN,NEQ,T,Y,FMIN,NTURB,DTURB,IAUSER,NIAUSER, &
+        JAUSER,NJAUSER)
+! ..
+!     Approximate or allow the user to supply the sparse Jacobian
+!     structure pointer arrays IA and JA for DVODE_F90 (not called
+!     by DVODE_F90).
+! ..
+!     Caution:
+!     If it is called, SET_IAJA must be called after the call to
+!     SET_OPTS.
+!     Usage:
+!     SET_IAJA may be called in one of two ways:
+!     CALL SET_IAJA(DFN,NEQ,T,Y,FMIN,NTURB,DTURB)
+!       In this case IA and JA will be determined using calls
+!       to your derivative routine DFN.
+!     CALL SET_IAJA(DFN,NEQ,T,Y,FMIN,NTURB,DTURB,IAUSER,NIAUSER, &
+!       JAUSER,NJAUSER)
+!       In this case, IAUSER of length NIAUSER will be used for
+!       IA; and JAUSER of length NJAUSER will be used for JA.
+!       T, Y, FMIN, NTURB, and DTURB will be ignored (though
+!       they must be present in the argument list).
+!
+!     Arguments:
+!     DFN     = VODE derivative subroutine
+!     NEQ     = Number of odes
+!     T       = independent variable t
+!     Y       = solution y(t)
+!     FMIN    = Jacobian threshold value. Elements of the Jacobian
+!               with magnitude smaller than FMIN will be ignored.
+!               FMIN will be ignored if it is less than or equal
+!               to ZERO.
+!     NTURB   = Perturbation flag. If NTURB=1, component I of Y
+!               will be perturbed by by 1.01D0.
+!               If NTURB=NEQ, component I of Y will be perturbed
+!               by ONE + DTURB(I).
+!     DTURB   = perturbation vector of length 1 or NEQ.
+!     If these four optional parameters are present, IAUSER and JAUSER
+!     will be copied to IA and JA rather than making derivative calls
+!     to approximate IA and JA:
+!     IAUSER  = user supplied IA array
+!     NIAUSER = length of IAUSER array
+!     JAUSER  = user supplied JA vector
+!     NJAUSER = length of JAUSER array
+!     Results:
+!     IA(IADIM), IADIM, IMIN, JA(JADIM), JAMIN, JMIN, SPARSE
+!     Allocated but free for further use by DVODE_F90:
+!     FTEMP(NEQ), FPTEMP(NEQ)
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        KPP_REAL, INTENT (IN) :: FMIN, T
+        INTEGER, INTENT (IN) :: NEQ, NTURB
+        INTEGER, OPTIONAL, INTENT (IN) :: NIAUSER, NJAUSER
+! ..
+! .. Array Arguments ..
+        KPP_REAL, INTENT (INOUT) :: DTURB(*), Y(NEQ)
+        INTEGER, OPTIONAL, INTENT (IN) :: IAUSER(:), JAUSER(:)
+! ..
+! .. Subroutine Arguments ..
+        EXTERNAL DFN
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: AIJ, DTRB, EMIN, RJ, YJ, YJSAVE, YPJ
+        INTEGER :: I, J, JER, JP1, K, MTURB
+        CHARACTER (80) :: MSG
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, ALLOCATED, EPSILON, MAX, MIN, PRESENT
+! ..
+! .. FIRST EXECUTABLE STATEMENT SET_IAJA
+! ..
+        SPARSE = .FALSE.
+        IAJA_CALLED = .FALSE.
+        IF (NEQ<1) GOTO 30
+
+!       Check if the user is supplying the IA and JA arrays.
+        IF (PRESENT(IAUSER)) THEN
+!         If IAUSER is present, so must be NIAUSER, JAUSER,
+!         and NJAUSER.
+          IF (.NOT.(PRESENT(NIAUSER))) GOTO 30
+          IF (.NOT.(PRESENT(JAUSER))) GOTO 30
+          IF (.NOT.(PRESENT(NJAUSER))) GOTO 30
+          IF (NIAUSER<NEQ+1 .OR. NJAUSER<1) GOTO 30
+          IADIM = MIN(NIAUSER,NEQ+1)
+          IMIN = IADIM
+          JADIM = NJAUSER
+          JMIN = NJAUSER
+          IF (ALLOCATED(IA)) THEN
+            DEALLOCATE (IA,JA,FTEMP,FPTEMP,STAT=JER)
+            CALL CHECK_STAT(JER,190)
+          END IF
+          ALLOCATE (IA(IADIM),JA(JADIM),FTEMP(NEQ),FPTEMP(NEQ),STAT=JER)
+          CALL CHECK_STAT(JER,200)
+          IA(1:IADIM) = IAUSER(1:IADIM)
+          JA(1:JADIM) = JAUSER(1:JADIM)
+          GOTO 40
+        END IF
+
+!       Determine IA and JA using derivative calls.
+
+!       Jacobian element magnitude threshold value.
+        IF (FMIN>ZERO) THEN
+          EMIN = MAX(FMIN,ZERO)
+        ELSE
+          EMIN = ZERO
+        END IF
+
+!       Solution perturbation factors.
+        IF (NTURB>0) THEN
+          IF (NTURB<1 .OR. (NTURB>1 .AND. NTURB/=NEQ)) GOTO 30
+          IF (NTURB==NEQ) THEN
+            DO I = 1, NEQ
+              DTURB(I) = MAX(DTURB(I),HUNDRETH)
+            END DO
+          ELSE
+            MTURB = 1
+            DTRB = MAX(DTURB(1),HUNDRETH)
+          END IF
+        ELSE
+          MTURB = 1
+          DTRB = HUNDRETH
+        END IF
+
+        JADIM = MIN(NEQ*NEQ,MAX(1000,NZ_SWAG))
+        ADDTOJA = MAX(1000,NZ_SWAG)
+!       Loop point for array allocation.
+10      CONTINUE
+        IF (ALLOCATED(IA)) THEN
+          DEALLOCATE (IA,JA,FTEMP,FPTEMP,STAT=JER)
+          CALL CHECK_STAT(JER,210)
+        END IF
+        IMIN = NEQ + 1
+        IADIM = NEQ + 1
+        JMIN = 0
+        JADIM = JADIM + ADDTOJA
+        IF (JADIM>MAX_ARRAY_SIZE) THEN
+          MSG = 'Maximum array size exceeded. Stopping.'
+          CALL XERRDV(MSG,880,2,0,0,0,0,ZERO,ZERO)
+        END IF
+        ALLOCATE (IA(IADIM),JA(JADIM),FTEMP(NEQ),FPTEMP(NEQ),STAT=JER)
+        CALL CHECK_STAT(JER,220)
+
+!       f = y'(t,y).
+        CALL DFN(NEQ,T,Y,FTEMP)
+        IA(1) = 1
+        K = 1
+
+!       Calculate unit roundoff and powers of it used if JACSP
+!       is used.
+        UROUND = EPSILON(ONE)
+
+!       Successively perturb each of the solution components and
+!       calculate the corresponding derivatives.
+        DO J = 1, NEQ
+          IF (MTURB==NEQ) DTRB = DTURB(J)
+          YJ = Y(J)
+          YJSAVE = YJ
+          IF (ABS(YJ)<=ZERO) YJ = HUN*UROUND
+          YPJ = YJ*(ONE+DTRB)
+          RJ = ABS(YPJ-YJ)
+          IF (ABS(RJ)<=ZERO) RJ = HUN*UROUND
+          IF (ABS(RJ)<=ZERO) GOTO 30
+          Y(J) = YPJ
+          CALL DFN(NEQ,T,Y,FPTEMP)
+          DO 20 I = 1, NEQ
+!           Estimate the Jacobian element.
+            AIJ = ABS(FPTEMP(I)-FTEMP(I))/RJ
+            IF ((AIJ<=EMIN) .AND. (I/=J)) GOTO 20
+!           Need more storage for JA.
+            IF (K>JADIM) GOTO 10
+            JMIN = K
+            JA(K) = I
+            K = K + 1
+20        CONTINUE
+          JP1 = J + 1
+          IA(JP1) = K
+          Y(J) = YJSAVE
+        END DO
+        GOTO 40
+30      CONTINUE
+        MSG = 'An error occurred in subroutine SET_IAJA.'
+        CALL XERRDV(MSG,890,2,0,0,0,0,ZERO,ZERO)
+
+40      CONTINUE
+!       Set the flags to indicate to DVODE_F90 that IA and JA have
+!       been calculated successfully.
+        SPARSE = .TRUE.
+        IAJA_CALLED = .TRUE.
+
+!       Trim JA.
+        ALLOCATE (JATEMP(JMIN),STAT=JER)
+        CALL CHECK_STAT(JER,230)
+        JATEMP(1:JMIN) = JA(1:JMIN)
+        DEALLOCATE (JA,STAT=JER)
+        CALL CHECK_STAT(JER,240)
+        ALLOCATE (JA(JMIN),STAT=JER)
+        CALL CHECK_STAT(JER,250)
+        JA(1:JMIN) = JATEMP(1:JMIN)
+        DEALLOCATE (JATEMP,STAT=JER)
+        CALL CHECK_STAT(JER,260)
+        JADIM = JMIN
+        RETURN
+
+      END SUBROUTINE SET_IAJA
+!_______________________________________________________________________
+
+      SUBROUTINE DVODE(F,NEQ,Y,T,TOUT,ITASK,ISTATE,OPTS,JAC,GFUN)
+! ..
+! This is the core driver (modified original DVODE.F driver).
+! ..
+! The documentation prologue was moved nearer the top of the file.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Structure Arguments ..
+        TYPE (VODE_OPTS) :: OPTS
+! ..
+! .. Scalar Arguments ..
+        KPP_REAL, INTENT (INOUT) :: T, TOUT
+        INTEGER, INTENT (INOUT) :: ISTATE
+        INTEGER, INTENT (IN) :: ITASK, NEQ
+! ..
+! .. Array Arguments ..
+        KPP_REAL, INTENT (INOUT) :: Y(*)
+! ..
+! .. Subroutine Arguments ..
+        EXTERNAL F, GFUN, JAC
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: ATOLI, BIG, EWTI, H0, HMAX, HMX, RH, RTOLI, SIZEST, &
+          TCRIT, TNEXT, TOLSF, TP
+        INTEGER :: I, IER, IFLAG, IMXER, IOPT, IPCUTH, IRFP, IRT, ITOL, JCO, &
+          JER, KGO, LENIW, LENJ, LENP, LENRW, LENWM, LF0, MBAND, MF, MFA, ML, &
+          MU, NG, NITER, NSLAST
+        LOGICAL :: IHIT
+        CHARACTER (80) :: MSG
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, ALLOCATED, EPSILON, MAX, MIN, SIGN, SQRT
+! ..
+! The following internal PRIVATE variable blocks contain variables which
+! are communicated between subroutines in the DVODE package, or which
+! are to be saved between calls to DVODE.
+! In each block, real variables precede integers.
+! The variables stored in the internal PRIVATE variable blocks are as
+! follows:
+! ACNRM  = Weighted r.m.s. norm of accumulated correction vectors.
+! CCMXJ  = Threshhold on DRC for updating the Jacobian. (See DRC.)
+! CONP   = The saved value of TQ(5).
+! CRATE  = Estimated corrector convergence rate constant.
+! DRC    = Relative change in H*RL1 since last DVJAC call.
+! EL     = Real array of integration coefficients. See DVSET.
+! ETA    = Saved tentative ratio of new to old H.
+! ETAMAX = Saved maximum value of ETA to be allowed.
+! H      = The step size.
+! HMIN   = The minimum absolute value of the step size H to be used.
+! HMXI   = Inverse of the maximum absolute value of H to be used.
+!          HMXI = 0.0 is allowed and corresponds to an infinite HMAX.
+! HNEW   = The step size to be attempted on the next step.
+! HSCAL  = Stepsize in scaling of YH array.
+! PRL1   = The saved value of RL1.
+! RC     = Ratio of current H*RL1 to value on last DVJAC call.
+! RL1    = The reciprocal of the coefficient EL(2).
+! TAU    = Real vector of past NQ step sizes, length 13.
+! TQ     = A real vector of length 5 in which DVSET stores constants
+!          used for the convergence test, the error test, and the
+!          selection of H at a new order.
+! TN     = The independent variable, updated on each step taken.
+! UROUND = The machine unit roundoff. The smallest positive real number
+!          such that  1.0 + UROUND /= 1.0
+! ICF    = Integer flag for convergence failure in DVNLSD:
+!            0 means no failures.
+!            1 means convergence failure with out of date Jacobian
+!                   (recoverable error).
+!            2 means convergence failure with current Jacobian or
+!                   singular matrix (unrecoverable error).
+! INIT   = Saved integer flag indicating whether initialization of the
+!          problem has been done (INIT = 1) or not.
+! IPUP   = Saved flag to signal updating of Newton matrix.
+! JCUR   = Output flag from DVJAC showing Jacobian status:
+!            JCUR = 0 means J is not current.
+!            JCUR = 1 means J is current.
+! JSTART = Integer flag used as input to DVSTEP:
+!            0  means perform the first step.
+!            1  means take a new step continuing from the last.
+!           -1  means take the next step with a new value of MAXORD,
+!               HMIN, HMXI, N, METH, MITER, and/or matrix parameters.
+!          On return, DVSTEP sets JSTART = 1.
+! JSV    = Integer flag for Jacobian saving, = sign(MF).
+! KFLAG  = A completion code from DVSTEP with the following meanings:
+!               0      the step was successful.
+!              -1      the requested error could not be achieved.
+!              -2      corrector convergence could not be achieved.
+!              -3, -4  fatal error in DVNLSD(can not occur here).
+! KUTH   = Input flag to DVSTEP showing whether H was reduced by the
+!          driver. KUTH = 1 if H was reduced, = 0 otherwise.
+! L      = Integer variable, NQ + 1, current order plus one.
+! LMAX   = MAXORD + 1 (used for dimensioning).
+! LOCJS  = A pointer to the saved Jacobian, whose storage starts at
+!          WM(LOCJS), if JSV = 1.
+! LYH    = Saved integer pointer to segments of RWORK and IWORK.
+! MAXORD = The maximum order of integration method to be allowed.
+! METH/MITER = The method flags. See MF.
+! MSBJ   = The maximum number of steps between J evaluations, = 50.
+! MXHNIL = Saved value of optional input MXHNIL.
+! MXSTEP = Saved value of optional input MXSTEP.
+! N      = The number of first-order ODEs, = NEQ.
+! NEWH   = Saved integer to flag change of H.
+! NEWQ   = The method order to be used on the next step.
+! NHNIL  = Saved counter for occurrences of T + H = T.
+! NQ     = Integer variable, the current integration method order.
+! NQNYH  = Saved value of NQ*NYH.
+! NQWAIT = A counter controlling the frequency of order changes.
+!          An order change is about to be considered if NQWAIT = 1.
+! NSLJ   = The number of steps taken as of the last Jacobian update.
+! NSLP   = Saved value of NST as of last Newton matrix update.
+! NYH    = Saved value of the initial value of NEQ.
+! HU     = The step size in t last used.
+! NCFN   = Number of nonlinear convergence failures so far.
+! NETF   = The number of error test failures of the integrator so far.
+! NFE    = The number of f evaluations for the problem so far.
+! NJE    = The number of Jacobian evaluations so far.
+! NLU    = The number of matrix LU decompositions so far.
+! NNI    = Number of nonlinear iterations so far.
+! NQU    = The method order last used.
+! NST    = The number of steps taken for the problem so far.
+! Block 0.
+! Retrieve the necessary flags from the OPTIONS structure and manage
+! the storage allocation.
+! ..
+! .. FIRST EXECUTABLE STATEMENT DVODE
+! ..
+!       Retrieve the local flags from the options structure.
+        IOPT = OPTS%IOPT
+        ITOL = OPTS%ITOL
+        MF = OPTS%MF
+        METH = OPTS%METH
+        MITER = OPTS%MITER
+        MOSS = OPTS%MOSS
+        NG = OPTS%NG
+
+!       Allocate the necessary storage for RWORK and IWORK. (Assume that
+!       both or neither of the arrays are allocated.)
+
+!       If we are starting a new problem, deallocate the old RWORK and
+!       IWORK arrays if they were allocated in a previous call. Also
+!       manage the event residual arrays.
+
+        IF (ISTATE==1) THEN
+          IF (ALLOCATED(DTEMP)) THEN
+            DEALLOCATE (DTEMP,YTEMP,STAT=JER)
+            CALL CHECK_STAT(JER,270)
+          END IF
+          IF (ALLOCATED(RWORK)) THEN
+            DEALLOCATE (RWORK,IWORK,ACOR,SAVF,EWT,WM,STAT=JER)
+            CALL CHECK_STAT(JER,280)
+          END IF
+          IF (ALLOCATED(JROOT)) THEN
+            DEALLOCATE (JROOT,G0,G1,GX,STAT=JER)
+            CALL CHECK_STAT(JER,290)
+          END IF
+          IF (ALLOCATED(YMAX)) THEN
+            DEALLOCATE (YMAX,STAT=JER)
+            CALL CHECK_STAT(JER,300)
+          END IF
+        END IF
+
+!       If the user has made changes and called DVODE_F90 with ISTATE=3,
+!       temporarily save the necessary portion of the Nordsieck array
+!       and then release RWORK and IWORK. Also, save the contents of
+!       the WM array and release WM. Note: ACOR, SAVF, and EWT do not
+!       need to be saved.
+
+        IF (ISTATE==3) THEN
+          IF (IOPT/=1) THEN
+            MAXORD = MORD(METH)
+          ELSE
+            MAXORD = IUSER(5)
+            IF (MAXORD<0) GOTO 520
+            IF (MAXORD==0) MAXORD = 100
+            MAXORD = MIN(MAXORD,MORD(METH))
+          END IF
+          IF (MAXORD<NQ) THEN
+!           If MAXORD is less than NQ, save column NQ+2 of YH for
+!           later use.
+            IF (ALLOCATED(YHNQP2)) THEN
+              DEALLOCATE (YHNQP2,STAT=JER)
+              CALL CHECK_STAT(JER,310)
+            END IF
+            ALLOCATE (YHNQP2(NEQ),STAT=JER)
+            CALL CHECK_STAT(JER,320)
+            CALL DCOPY_F90(NEQ,RWORK(LYH+NYH*(MAXORD+1)),1,YHNQP2,1)
+          END IF
+          LYHTEMP = MIN((PREVIOUS_MAXORD+1)*NYH+LYH-1,(MAXORD+1)*NYH+LYH-1)
+          ALLOCATE (YHTEMP(LYHTEMP),STAT=JER)
+          CALL CHECK_STAT(JER,330)
+!         Save YH.
+          YHTEMP(1:LYHTEMP) = RWORK(1:LYHTEMP)
+!         Save WM.
+          LWMTEMP = LWMDIM
+          ALLOCATE (WMTEMP(LWMTEMP),STAT=JER)
+          CALL CHECK_STAT(JER,340)
+          WMTEMP(1:LWMTEMP) = WM(1:LWMTEMP)
+          IF (ALLOCATED(DTEMP)) THEN
+             DEALLOCATE (DTEMP,YTEMP,STAT=JER)
+             CALL CHECK_STAT(JER,350)
+          END IF
+          DEALLOCATE (RWORK,IWORK,YMAX,ACOR,SAVF,EWT,WM,STAT=JER)
+          CALL CHECK_STAT(JER,360)
+        END IF
+
+!     Allocate the RWORK and WM work arrays if they haven't already
+!     been allocated in a previous call.
+!     LRW = 20 + (MAXORD + 1) * NEQ
+!     LWMDIM =     
+!            0                        for MF = 10,
+!            2 * NEQ**2               for MF = 11 or 12,
+!            NEQ**2                   for MF = -11 or -12,
+!            NEQ                      for MF = 13,
+!            (3*ML + 2*MU + 2) * NEQ  for MF = 14 or 15,
+!            (2*ML + MU + 1) * NEQ    for MF = -14 or -15,
+!            0                        for MF = 16 or 17,
+!            0                        for MF = -16 or -17,
+!            0                        for MF = 20,
+!            2 * NEQ**2               for MF = 21 or 22,
+!            NEQ**2                   for MF = -21 or -22,
+!            NEQ                      for MF = 23,
+!            (3*ML + 2*MU + 2) * NEQ  for MF = 24 or 25,
+!            (2*ML + MU + 1) * NEQ    for MF = -24 or -25,
+!            0                        for MF = 26 or 27,
+!            0                        for MF = -26 or -27.
+        IF (ALLOCATED(RWORK)) THEN
+        ELSE
+          MFA = ABS(MF)
+          IF (IOPT/=1) THEN
+            MAXORD = MORD(METH)
+          ELSE
+            MAXORD = IUSER(5)
+            IF (MAXORD<0) GOTO 520
+            IF (MAXORD==0) MAXORD = 100
+            MAXORD = MIN(MAXORD,MORD(METH))
+          END IF
+          LRW = LRWUSER + (MAXORD+1)*NEQ
+!        IF (MITER == 0) LRW = LRW - 2
+          LRW = LRW - 2
+          IF (MF==10) THEN
+            LWMDIM = 0
+          ELSE IF (MF==11 .OR. MF==12) THEN
+            LWMDIM = 2*NEQ**2
+          ELSE IF (MF==-11 .OR. MF==-12) THEN
+            LWMDIM = NEQ**2
+          ELSE IF (MF==13) THEN
+            LWMDIM = NEQ
+          ELSE IF (MF==14 .OR. MF==15) THEN
+            ML = IUSER(1)
+            MU = IUSER(2)
+            IF (ML<0 .OR. ML>=NEQ) GOTO 500
+            IF (MU<0 .OR. MU>=NEQ) GOTO 510
+            LWMDIM = (3*ML+2*MU+2)*NEQ
+          ELSE IF (MF==-14 .OR. MF==-15) THEN
+            ML = IUSER(1)
+            MU = IUSER(2)
+            IF (ML<0 .OR. ML>=NEQ) GOTO 500
+            IF (MU<0 .OR. MU>=NEQ) GOTO 510
+            LWMDIM = (2*ML+MU+1)*NEQ
+          ELSE IF (MF==16 .OR. MF==17) THEN
+            LWMDIM = 0
+          ELSE IF (MF==-16 .OR. MF==-17) THEN
+            LWMDIM = 0
+          ELSE IF (MF==20) THEN
+            LWMDIM = 0
+          ELSE IF (MF==21 .OR. MF==22) THEN
+            LWMDIM = 2*NEQ**2
+          ELSE IF (MF==-21 .OR. MF==-22) THEN
+            LWMDIM = NEQ**2
+          ELSE IF (MF==23) THEN
+            LWMDIM = NEQ
+          ELSE IF (MF==24 .OR. MF==25) THEN
+            ML = IUSER(1)
+            MU = IUSER(2)
+            IF (ML<0 .OR. ML>=NEQ) GOTO 500
+            IF (MU<0 .OR. MU>=NEQ) GOTO 510
+            LWMDIM = (3*ML+2*MU+2)*NEQ
+          ELSE IF (MF==-24 .OR. MF==-25) THEN
+            ML = IUSER(1)
+            MU = IUSER(2)
+            IF (ML<0 .OR. ML>=NEQ) GOTO 500
+            IF (MU<0 .OR. MU>=NEQ) GOTO 510
+            LWMDIM = (2*ML+MU+1)*NEQ
+          ELSE IF (MF==26 .OR. MF==27) THEN
+            LWMDIM = 0
+          ELSE IF (MF==-26 .OR. MF==-27) THEN
+            LWMDIM = 0
+          END IF
+!         LWMDIM = LWMDIM + 2
+          ALLOCATE (RWORK(LRW),WM(LWMDIM),STAT=JER)
+          CALL CHECK_STAT(JER,370)
+          RWORK(1:LRW) = ZERO
+          WM(1:LWMDIM) = ZERO
+          IF (.NOT.ALLOCATED(DTEMP)) THEN
+             ALLOCATE (DTEMP(NEQ),YTEMP(NEQ),STAT=JER)
+             CALL CHECK_STAT(JER,380)
+          END IF
+          ALLOCATE (ACOR(NEQ),SAVF(NEQ),EWT(NEQ),STAT=JER)
+          CALL CHECK_STAT(JER,390)
+!         If necessary, reload the saved portion of the Nordsieck
+!         array and the WM array, saved above.
+          IF (ISTATE==3) THEN
+            RWORK(1:LYHTEMP) = YHTEMP(1:LYHTEMP)
+            I = MIN(LWMTEMP,LWMDIM)
+!           WM(1:LWMTEMP) = WMTEMP(1:LWMTEMP)
+            WM(1:I) = WMTEMP(1:I)
+            DEALLOCATE (YHTEMP,WMTEMP,STAT=JER)
+            CALL CHECK_STAT(JER,400)
+          END IF
+          RWORK(1:LRWUSER) = RUSER(1:LRWUSER)
+!         IUSER: = LIWUSER if MITER = 0 or 3 (MF = 10, 13, 20, 23)
+!                = LIWUSER + NEQ otherwise
+!                  (ABS(MF) = 11,12,14,15,16,17,21,22,24,25,26,27).
+          LIW = LIWUSER + NEQ
+          IF (MITER==0 .OR. MITER==3) LIW = LIWUSER
+          ALLOCATE (IWORK(LIW),STAT=JER)
+          CALL CHECK_STAT(JER,410)
+          IWORK(1:LIWUSER) = IUSER(1:LIWUSER)
+!         Allocate the YMAX vector.
+          ALLOCATE (YMAX(NEQ),STAT=JER)
+          CALL CHECK_STAT(JER,420)
+        END IF
+!       Allocate the event arrays if they haven't already been allocated
+!       in a previous call.
+        IF (ALLOCATED(JROOT)) THEN
+        ELSE
+          IF (NG>0) THEN
+            ALLOCATE (JROOT(NG),G0(NG),G1(NG),GX(NG),STAT=JER)
+            CALL CHECK_STAT(JER,430)
+          END IF
+        END IF
+
+! Block A.
+! This code block is executed on every call. It tests ISTATE and
+! ITASK for legality and branches appropriately.
+! If ISTATE > 1 but the flag INIT shows that initialization has
+! not yet been done, an error return occurs.
+! If ISTATE = 1 and TOUT = T, return immediately.
+! The user portion of RWORK and IWORK are reloaded since something
+! may have changed since the previous visit.
+
+        RWORK(1:LRWUSER) = RUSER(1:LRWUSER)
+        IWORK(1:LIWUSER) = IUSER(1:LIWUSER)
+        IF (ISTATE<1 .OR. ISTATE>3) GOTO 420
+        IF (ITASK<1 .OR. ITASK>5) GOTO 430
+        ITASKC = ITASK
+        IF (ISTATE==1) GOTO 10
+        IF (INIT/=1) GOTO 440
+        IF (ISTATE==2) GOTO 130
+        GOTO 20
+10      INIT = 0
+        IF (ABS(TOUT-T)<=ZERO) THEN
+          RUSER(1:LRWUSER) = RWORK(1:LRWUSER)
+          IUSER(1:LIWUSER) = IWORK(1:LIWUSER)
+          RETURN
+        END IF
+
+! Block B.
+! The next code block is executed for the initial call (ISTATE = 1),
+! or for a continuation call with parameter changes (ISTATE = 3).
+! It contains checking of all input and various initializations.
+
+!       First check legality of the non-optional input NEQ, ITOL, IOPT,
+!       MF, ML, and MU.
+
+20      IF (NEQ<=0) GOTO 450
+        IF (ISTATE==1) GOTO 30
+        IF (NEQ>N) GOTO 460
+        IF (NEQ/=N) GOTO 465
+30      N = NEQ
+        IF (ITOL<1 .OR. ITOL>4) GOTO 470
+        IF (IOPT<0 .OR. IOPT>1) GOTO 480
+        JSV = SIGN(1,MF)
+        INEWJ = (1-JSV)/2
+        MFA = ABS(MF)
+        METH = MFA/10
+        MITER = MFA - 10*METH
+        IF (METH<1 .OR. METH>2) GOTO 490
+        IF (MITER<0 .OR. MITER>7) GOTO 490
+        IF (MITER<=3) GOTO 40
+        IF (MITER<=5) THEN
+          ML = IWORK(1)
+          MU = IWORK(2)
+          IF (ML<0 .OR. ML>=N) GOTO 500
+          IF (MU<0 .OR. MU>=N) GOTO 510
+        END IF
+40      CONTINUE
+        IF (NG<0) GOTO 700
+        IF (ISTATE==1) GOTO 50
+        IF (IRFND==0 .AND. NG/=NGC) GOTO 710
+50      NGC = NG
+!       Next process and check the optional input.
+        IF (IOPT==1) GOTO 60
+        MAXORD = MORD(METH)
+        MXSTEP = MXSTP0
+        MXHNIL = MXHNL0
+        IF (ISTATE==1) H0 = ZERO
+        HMXI = ZERO
+        HMIN = ZERO
+        GOTO 80
+60      MAXORD = IWORK(5)
+        IF (MAXORD<0) GOTO 520
+        IF (MAXORD==0) MAXORD = 100
+        MAXORD = MIN(MAXORD,MORD(METH))
+        MXSTEP = IWORK(6)
+        IF (MXSTEP<0) GOTO 530
+        IF (MXSTEP==0) MXSTEP = MXSTP0
+        MXHNIL = IWORK(7)
+        IF (MXHNIL<0) GOTO 540
+        IF (MXHNIL==0) MXHNIL = MXHNL0
+        IF (ISTATE/=1) GOTO 70
+        H0 = RWORK(5)
+        IF ((TOUT-T)*H0<ZERO) GOTO 550
+70      HMAX = RWORK(6)
+        IF (HMAX<ZERO) GOTO 560
+        HMXI = ZERO
+        IF (HMAX>ZERO) HMXI = ONE/HMAX
+        HMIN = RWORK(7)
+        IF (HMIN<ZERO) GOTO 570
+        SETH = RWORK(8)
+        IF (SETH<ZERO) GOTO 690
+!       Check the nonnegativity information.
+        IF (BOUNDS) THEN
+          IF (NDX<1 .OR. NDX>NEQ) THEN
+            MSG = 'The size of the CONSTRAINED vector'
+            CALL XERRDV(MSG,900,1,0,0,0,0,ZERO,ZERO)
+            MSG = 'must be between 1 and NEQ.'
+            CALL XERRDV(MSG,900,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          DO I = 1, NDX
+            IF (IDX(I)<1 .OR. IDX(I)>N) THEN
+              MSG = 'Each component of THE CONSTRAINED'
+              CALL XERRDV(MSG,910,1,0,0,0,0,ZERO,ZERO)
+              MSG = 'vector must be between 1 and N.'
+              CALL XERRDV(MSG,910,2,0,0,0,0,ZERO,ZERO)
+            END IF
+          END DO
+        END IF
+!       Check the sub diagonal and super diagonal arrays.
+        IF (MITER==4 .OR. MITER==5) THEN
+           IF (SUBS) THEN
+              DO I = 1, NSUBS
+                 IF (SUBDS(I) < 2 .OR. SUBDS(I) > ML+1) THEN
+                    MSG = 'Each element of SUB_DIAGONALS'
+                    CALL XERRDV(MSG,920,1,0,0,0,0,ZERO,ZERO)
+                    MSG = 'must be between 2 and ML + 1.'
+                    CALL XERRDV(MSG,920,2,0,0,0,0,ZERO,ZERO)
+                 END IF
+              END DO
+           END IF
+           IF (SUPS) THEN
+              DO I = 1, NSUPS
+                 IF (SUPDS(I) < 2 .OR. SUPDS(I) > MU + 1) THEN
+                    MSG = 'Each element of SUP_DIAGONALS'
+                    CALL XERRDV(MSG,930,1,0,0,0,0,ZERO,ZERO)
+                    MSG = 'must be between 2 and MU + 1.'
+                    CALL XERRDV(MSG,930,2,0,0,0,0,ZERO,ZERO)
+                 END IF
+              END DO
+           END IF
+!          Compute the banded column grouping.
+           IF (SUBS .OR. SUPS) THEN
+             CALL BGROUP(N,EWT,ACOR,YMAX,ML,MU)
+             BUILD_IAJA = .FALSE.
+             BUILD_IAJA = .TRUE.
+             IF (BUILD_IAJA) THEN
+                CALL BANDED_IAJA(N,ML,MU)
+                NZB = IAB(N+1) - 1
+             END IF
+           END IF
+        END IF
+
+        IF ((MITER==2 .OR. MITER==5) .AND. USE_JACSP) THEN
+!         Allocate the arrays needed by DVJAC/JACSPD.
+          IF (ALLOCATED(INDROWDS)) THEN
+             DEALLOCATE (INDROWDS, INDCOLDS, NGRPDS, IPNTRDS, JPNTRDS, &
+               IWADS, IWKDS, IOPTDS, YSCALEDS, WKDS, FACDS)
+             CALL CHECK_STAT(IER,440)
+          END IF
+          ALLOCATE (INDROWDS(1), INDCOLDS(1), NGRPDS(1), IPNTRDS(1),   &
+            JPNTRDS(1), IWADS(1), IWKDS(50+N), IOPTDS(5), YSCALEDS(N), &
+            WKDS(3*N), FACDS(N), STAT=IER)
+          CALL CHECK_STAT(IER,450)
+!         For use in DVJAC:
+          IOPTDS(4) = 0
+        END IF
+
+! Set work array pointers and check lengths LRW and LIW. Pointers
+! to segments of RWORK and IWORK are named by prefixing L to the
+! name of the segment. e.g., the segment YH starts at RWORK(LYH).
+! Within WM, LOCJS is the location of the saved Jacobian (JSV > 0).
+
+80      LYH = 21
+        IF (ISTATE==1) NYH = N
+        LENRW = LYH + (MAXORD+1)*NYH - 1
+        IWORK(17) = LENRW
+        IF (LENRW>LRW) GOTO 580
+        IF (LENRW/=LRW) GOTO 580
+        LWM = 1
+!       Save MAXORD in case the calling program calls with ISTATE=3.
+        PREVIOUS_MAXORD = MAXORD
+        JCO = MAX(0,JSV)
+!       IF (MITER==0) LENWM = 2
+        IF (MITER==0) LENWM = 0
+        IF (MITER==1 .OR. MITER==2) THEN
+!         LENWM = 2 + (1+JCO)*N*N
+!         LOCJS = N*N + 3
+          LENWM = (1+JCO)*N*N
+          LOCJS = N*N + 1
+        END IF
+!       IF (MITER==3) LENWM = N + 2
+        IF (MITER==3) LENWM = N
+        IF (MITER==4 .OR. MITER==5) THEN
+          MBAND = ML + MU + 1
+          LENP = (MBAND+ML)*N
+          LENJ = MBAND*N
+!         LENWM = 2 + LENP + JCO*LENJ
+!         LOCJS = LENP + 3
+          LENWM = LENP + JCO*LENJ
+          LOCJS = LENP + 1
+        END IF
+        IF (MITER==6 .OR. MITER==7) THEN
+!         LENWM = 2
+          LENWM = 0
+        END IF
+        IF (LENWM>LWMDIM) GOTO 730
+        IF (LENWM/=LWMDIM) GOTO 730
+        LIWM = 1
+        LENIW = 30 + N
+        IF (MITER==0 .OR. MITER==3) LENIW = 30
+        IWORK(18) = LENIW
+        IF (LENIW>LIW) GOTO 590
+!       Check RTOL and ATOL for legality.
+        RTOLI = OPTS%RTOL(1)
+        ATOLI = OPTS%ATOL(1)
+        DO I = 1, N
+          IF (ITOL>=3) RTOLI = OPTS%RTOL(I)
+          IF (ITOL==2 .OR. ITOL==4) ATOLI = OPTS%ATOL(I)
+          IF (RTOLI<ZERO) GOTO 600
+          IF (ATOLI<ZERO) GOTO 610
+        END DO
+        IF (ISTATE==1) GOTO 100
+!       If ISTATE = 3, set flag to signal parameter changes to DVSTEP.
+        JSTART = -1
+        IF (NQ<=MAXORD) GOTO 90
+!       MAXORD was reduced below NQ. Copy YH(*,MAXORD+2) into SAVF.
+!       YH(*,MAXORD+2) was copied to the YHNQP2 array at the
+!       beginning of DVODE when the ISTATE=3 call was made.
+        CALL DCOPY_F90(N,YHNQP2,1,SAVF,1)
+!       Reload WM1 since LWM may have changed.
+90      IF (MITER>0) WM1 = SQRT(UROUND)
+!       ISTATC controls the determination of the sparsity arrays
+!       if the sparse solution option is used.
+        ISTATC = ISTATE
+        GOTO 130
+
+! Block C.
+! The next block is for the initial call only (ISTATE = 1).
+! It contains all remaining initializations, the initial call to F,
+! and the calculation of the initial step size.
+! The error weights in EWT are inverted after being loaded.
+
+100     UROUND = EPSILON(ONE)
+        U125 = UROUND ** 0.125_dp
+        U325 = UROUND ** 0.325_dp
+!       ISTATC controls the determination of the sparsity arrays if
+!       the sparse solution option is used.
+        ISTATC = ISTATE
+        TN = T
+        IF (ITASK/=4 .AND. ITASK/=5) GOTO 110
+        TCRIT = RWORK(1)
+        IF ((TCRIT-TOUT)*(TOUT-T)<ZERO) GOTO 660
+        IF (ABS(H0)>ZERO .AND. (T+H0-TCRIT)*H0>ZERO) H0 = TCRIT - T
+110     JSTART = 0
+        IF (MITER>0) WM1 = SQRT(UROUND)
+        CCMXJ = PT2
+        MSBJ = 50
+        MSBG = 75
+        NHNIL = 0
+        NST = 0
+        NJE = 0
+        NNI = 0
+        NCFN = 0
+        NETF = 0
+        NLU = 0
+        NSLJ = 0
+        NSLAST = 0
+        HU = ZERO
+        NQU = 0
+        MB28 = 0
+!_______________________________________________________________________
+! *****MA48 build change point. Insert this statement.
+!       MB48 = 0
+!_______________________________________________________________________
+        NSLG = 0
+        NGE = 0
+!       Initial call to F. (LF0 points to YH(*,2).)
+        LF0 = LYH + NYH
+        CALL F(N,T,Y,RWORK(LF0))
+        NFE = 1
+!       Load the initial value vector in YH.
+        CALL DCOPY_F90(N,Y,1,RWORK(LYH),1)
+!       Load and invert the EWT array. (H is temporarily set to 1.0.)
+        NQ = 1
+        H = ONE
+        CALL DEWSET(N,ITOL,OPTS%RTOL,OPTS%ATOL,RWORK(LYH),EWT)
+        DO I = 1, N
+          IF (EWT(I)<=ZERO) GOTO 620
+          EWT(I) = ONE/EWT(I)
+        END DO
+        NNZ = 0
+        NGP = 0
+        IF (OPTS%SPARSE) THEN
+          ISTATC = ISTATE
+        END IF
+        IF (ABS(H0)>ZERO) GOTO 120
+!       Call DVHIN to set initial step size H0 to be attempted.
+        CALL DVHIN(N,T,RWORK(LYH),RWORK(LF0),F,TOUT,EWT,ITOL,OPTS%ATOL,Y,ACOR, &
+          H0,NITER,IER)
+        NFE = NFE + NITER
+        IF (IER/=0) GOTO 630
+!       Adjust H0 if necessary to meet HMAX bound.
+120     RH = ABS(H0)*HMXI
+        IF (RH>ONE) H0 = H0/RH
+!       Load H with H0 and scale YH(*,2) by H0.
+        H = H0
+        CALL DSCAL_F90(N,H0,RWORK(LF0),1)
+!       GOTO 270
+!       Check for a zero of g at T.
+        IRFND = 0
+        TOUTC = TOUT
+        IF (NGC==0) GOTO 210
+        CALL DVCHECK(1,GFUN,NEQ,Y,RWORK(LYH),NYH,G0,G1,GX,IRT)
+        IF (IRT==0) GOTO 210
+        GOTO 720
+
+! Block D.
+! The next code block is for continuation calls only (ISTATE = 2 or 3)
+! and is to check stop conditions before taking a step.
+
+130     NSLAST = NST
+        IRFP = IRFND
+        IF (NGC==0) GOTO 140
+        IF (ITASK==1 .OR. ITASK==4) TOUTC = TOUT
+        CALL DVCHECK(2,GFUN,NEQ,Y,RWORK(LYH),NYH,G0,G1,GX,IRT)
+        IF (IRT/=1) GOTO 140
+        IRFND = 1
+        ISTATE = 3
+        T = T0ST
+        GOTO 330
+140     CONTINUE
+        IRFND = 0
+        IF (IRFP==1 .AND. (ABS(TLAST-TN)>ZERO) .AND. ITASK==2) GOTO 310
+        KUTH = 0
+        GOTO (150,200,160,170,180) ITASK
+150     IF ((TN-TOUT)*H<ZERO) GOTO 200
+        CALL DVINDY_CORE(TOUT,0,RWORK(LYH),NYH,Y,IFLAG)
+        IF (IFLAG/=0) GOTO 680
+        IF (BOUNDS) THEN
+          DO I = 1, NDX
+            Y(IDX(I)) = MAX(Y(IDX(I)),LB(I))
+            Y(IDX(I)) = MIN(Y(IDX(I)),UB(I))
+          END DO
+        END IF
+        T = TOUT
+        GOTO 320
+160     TP = TN - HU*(ONE+HUN*UROUND)
+        IF ((TP-TOUT)*H>ZERO) GOTO 640
+        IF ((TN-TOUT)*H<ZERO) GOTO 200
+        GOTO 310
+170     TCRIT = RWORK(1)
+        IF ((TN-TCRIT)*H>ZERO) GOTO 650
+        IF ((TCRIT-TOUT)*H<ZERO) GOTO 660
+        IF ((TN-TOUT)*H<ZERO) GOTO 190
+        CALL DVINDY_CORE(TOUT,0,RWORK(LYH),NYH,Y,IFLAG)
+        IF (IFLAG/=0) GOTO 680
+        IF (BOUNDS) THEN
+          DO I = 1, NDX
+            Y(IDX(I)) = MAX(Y(IDX(I)),LB(I))
+            Y(IDX(I)) = MIN(Y(IDX(I)),UB(I))
+          END DO
+        END IF
+        T = TOUT
+        GOTO 320
+180     TCRIT = RWORK(1)
+        IF ((TN-TCRIT)*H>ZERO) GOTO 650
+190     HMX = ABS(TN) + ABS(H)
+        IHIT = ABS(TN-TCRIT) <= HUN*UROUND*HMX
+        IF (IHIT) GOTO 310
+        TNEXT = TN + HNEW*(ONE+FOUR*UROUND)
+        IF ((TNEXT-TCRIT)*H<=ZERO) GOTO 200
+        H = (TCRIT-TN)*(ONE-FOUR*UROUND)
+        KUTH = 1
+
+! Block E.
+! The next block is normally executed for all calls and contains
+! the call to the one-step core integrator DVSTEP. This is a
+! looping point for the integration steps.
+! First check for too many steps being taken, update EWT(if not
+! at start of problem), check for too much accuracy being
+! requested, and check for H below the roundoff level in T.
+
+200     CONTINUE
+        IF ((NST-NSLAST)>=MXSTEP) GOTO 340
+        CALL DEWSET(N,ITOL,OPTS%RTOL,OPTS%ATOL,RWORK(LYH),EWT)
+        DO I = 1, N
+          IF (EWT(I)<=ZERO) GOTO 350
+          EWT(I) = ONE/EWT(I)
+        END DO
+210     TOLSF = UROUND*DVNORM(N,RWORK(LYH),EWT)
+        IPCUTH = -1
+        IF (TOLSF<=ONE) GOTO 220
+        TOLSF = TOLSF*TWO
+        IF (NST==0) GOTO 670
+        GOTO 360
+220     CONTINUE
+        IPCUTH = IPCUTH + 1
+        IF (IPCUTH>=IPCUTH_MAX) THEN
+          MSG = 'Too many step reductions to prevent'
+          CALL XERRDV(MSG,940,1,0,0,0,0,ZERO,ZERO)
+          MSG = 'an infeasible prediction.'
+          CALL XERRDV(MSG,940,1,0,0,0,0,ZERO,ZERO)
+!         Retract the solution to TN:
+          CALL DVNRDN(RWORK(LYH),NYH,N,NQ)
+          ACOR(1:N) = ZERO
+          ISTATE = -7
+          GOTO 410
+        END IF
+        IF (ABS((TN+H)-TN)>ZERO) GOTO 230
+        NHNIL = NHNIL + 1
+        IF (NHNIL>MXHNIL) GOTO 230
+        MSG = 'Warning: internal T(=R1) and H(=R2) are such that'
+        CALL XERRDV(MSG,950,1,0,0,0,0,ZERO,ZERO)
+        MSG = 'in the machine, T + H = T on the next step.'
+        CALL XERRDV(MSG,950,1,0,0,0,0,ZERO,ZERO)
+        MSG = '(H = step size). The solver will continue anyway.'
+        CALL XERRDV(MSG,950,1,0,0,0,2,TN,H)
+        IF (NHNIL<MXHNIL) GOTO 230
+        MSG = 'The above warning has been issued I1 times.'
+        CALL XERRDV(MSG,950,1,0,0,0,0,ZERO,ZERO)
+        MSG = 'It will not be issued again for this problem.'
+        CALL XERRDV(MSG,950,1,1,MXHNIL,0,0,ZERO,ZERO)
+230     CONTINUE
+        IF (BOUNDS) THEN
+!         Check positive components for infeasible prediction; reduce 
+!         step size if infeasible prediction will occur in DVNLSD.
+          ACOR(1:N) = RWORK(LYH:LYH+N-1)
+!         Predict:
+          CALL DVNRDP(RWORK(LYH:LRW),NYH,N,NQ)
+          DO I = 1, NDX
+            IF ((ACOR(IDX(I))>LB(I) .AND. RWORK(LYH+ &
+                IDX(I)-1)<LB(I)) .OR. (ACOR(IDX(I))<UB(I) .AND. RWORK(LYH+ &
+                IDX(I)-1)>UB(I))) THEN
+!              Retract:
+              CALL DVNRDN(RWORK(LYH),NYH,N,NQ)
+              H = HALF*H
+              ETA = HALF
+!              Rescale:
+              CALL DVNRDS(RWORK(LYH),NYH,N,L,ETA)
+              GOTO 220
+            END IF
+          END DO
+!         Retract:
+          CALL DVNRDN(RWORK(LYH),NYH,N,NQ)
+          ACOR(1:N) = ZERO
+        END IF
+
+!       CALL DVSTEP(Y,YH,LDYH,YH1,EWT,SAVF,ACOR,WM,IWM,F,JAC, &
+!         VNLS,OPTS%ATOL,ITOL)
+!_______________________________________________________________________
+
+        IF (MITER/=6 .AND. MITER/=7) THEN
+          CALL DVSTEP(Y,RWORK(LYH),NYH,RWORK(LYH),EWT,SAVF,ACOR,WM, &
+            IWORK(LIWM),F,JAC,DVNLSD,OPTS%ATOL,ITOL)
+        ELSE
+          CALL DVSTEP(Y,RWORK(LYH),NYH,RWORK(LYH),EWT,SAVF,ACOR,WM, &
+            IWORK(LIWM),F,JAC,DVNLSS28,OPTS%ATOL,ITOL)
+        END IF
+! *****MA48 build change point. Replace above with these statements.
+!     IF (MITER /= 6 .AND. MITER /= 7) THEN
+!        CALL DVSTEP(Y,RWORK(LYH),NYH,RWORK(LYH),EWT,SAVF,ACOR,WM, &
+!          IWORK(LIWM),F,JAC,DVNLSD,OPTS%ATOL,ITOL)
+!     ELSE
+!        IF (USE_MA48_FOR_SPARSE) THEN
+!           CALL DVSTEP(Y,RWORK(LYH),NYH,RWORK(LYH),EWT,SAVF,ACOR,WM, &
+!             IWORK(LIWM), F, JAC, DVNLSS48,OPTS%ATOL,ITOL)
+!        ELSE
+!           CALL DVSTEP(Y,RWORK(LYH),NYH,RWORK(LYH),EWT,SAVF,ACOR,WM, &
+!           IWORK(LIWM),F,JAC,DVNLSS28,OPTS%ATOL,ITOL)
+!        END IF
+!     END IF
+!_______________________________________________________________________
+
+        KGO = 1 - KFLAG
+!       Branch on KFLAG. Note: In this version, KFLAG can not be set to
+!                            -3; KFLAG = 0, -1, -2.
+        GOTO (240,370,380) KGO
+
+! Block F.
+! The following block handles the case of a successful return from the
+! core integrator (KFLAG = 0). Test for stop conditions.
+
+240     INIT = 1
+        KUTH = 0
+        GOTO (250,310,270,280,300) ITASK
+!       ITASK = 1. If TOUT has been reached, interpolate.
+250     CONTINUE
+        IF (NGC==0) GOTO 260
+        CALL DVCHECK(3,GFUN,NEQ,Y,RWORK(LYH),NYH,G0,G1,GX,IRT)
+        IF (IRT/=1) GOTO 260
+        IRFND = 1
+        ISTATE = 3
+        T = T0ST
+        GOTO 330
+260     CONTINUE
+        IF ((TN-TOUT)*H<ZERO) GOTO 200
+        CALL DVINDY_CORE(TOUT,0,RWORK(LYH),NYH,Y,IFLAG)
+        IF (BOUNDS) THEN
+          DO I = 1, NDX
+            Y(IDX(I)) = MAX(Y(IDX(I)),LB(I))
+            Y(IDX(I)) = MIN(Y(IDX(I)),UB(I))
+          END DO
+        END IF
+        T = TOUT
+        GOTO 320
+!       ITASK = 3. Jump to exit if TOUT was reached.
+270     IF ((TN-TOUT)*H>=ZERO) GOTO 310
+        GOTO 200
+!       ITASK = 4. See if TOUT or TCRIT was reached. Adjust H if necessary.
+280     IF ((TN-TOUT)*H<ZERO) GOTO 290
+        CALL DVINDY_CORE(TOUT,0,RWORK(LYH),NYH,Y,IFLAG)
+        IF (BOUNDS) THEN
+          DO I = 1, NDX
+            Y(IDX(I)) = MAX(Y(IDX(I)),LB(I))
+            Y(IDX(I)) = MIN(Y(IDX(I)),UB(I))
+          END DO
+        END IF
+        T = TOUT
+        GOTO 320
+290     HMX = ABS(TN) + ABS(H)
+        IHIT = ABS(TN-TCRIT) <= HUN*UROUND*HMX
+        IF (IHIT) GOTO 310
+        TNEXT = TN + HNEW*(ONE+FOUR*UROUND)
+        IF ((TNEXT-TCRIT)*H<=ZERO) GOTO 200
+        H = (TCRIT-TN)*(ONE-FOUR*UROUND)
+        KUTH = 1
+        GOTO 200
+!       ITASK = 5. See if TCRIT was reached and jump to exit.
+300     HMX = ABS(TN) + ABS(H)
+        IHIT = ABS(TN-TCRIT) <= HUN*UROUND*HMX
+
+! Block G.
+! The following block handles all successful returns from DVODE.
+! If ITASK /= 1, Y is loaded from YH and T is set accordingly.
+! ISTATE is set to 2, and the optional output is loaded into the
+! work arrays before returning.
+
+310     CONTINUE
+        CALL DCOPY_F90(N,RWORK(LYH),1,Y,1)
+        T = TN
+        IF (ITASK/=4 .AND. ITASK/=5) GOTO 320
+        IF (IHIT) T = TCRIT
+320     ISTATE = 2
+330     CONTINUE
+        RWORK(11) = HU
+        RWORK(12) = HNEW
+        RWORK(13) = TN
+        IWORK(10) = NGE
+        IWORK(11) = NST
+        IWORK(12) = NFE
+        IWORK(13) = NJE
+        IWORK(14) = NQU
+        IWORK(15) = NEWQ
+        IWORK(19) = NLU
+        IWORK(20) = NNI
+        IWORK(21) = NCFN
+        IWORK(22) = NETF
+        TLAST = T
+        RUSER(1:LRWUSER) = RWORK(1:LRWUSER)
+        IUSER(1:LIWUSER) = IWORK(1:LIWUSER)
+!       Warn the user if |y(t)| < ATOL:
+        IF (ISTATE==2 .OR. ISTATE==3) THEN
+          IF (YMAXWARN) THEN
+            ATOLI = OPTS%ATOL(1)
+            DO I = 1, N
+              IF (ITOL==2 .OR. ITOL==4) ATOLI = OPTS%ATOL(I)
+              IF (ABS(Y(I))<ATOLI) THEN
+                MSG = 'Warning: Component I1 of the solution is'
+                CALL XERRDV(MSG,960,1,0,0,0,0,ZERO,ZERO)
+                MSG = 'smaller in magnitude than component I1'
+                CALL XERRDV(MSG,960,1,0,0,0,0,ZERO,ZERO)
+                MSG = 'of the absolute error tolerance vector.'
+                CALL XERRDV(MSG,960,1,1,I,0,0,ZERO,ZERO)
+              END IF
+            END DO
+          END IF
+        END IF
+        RETURN
+
+! Block H.
+! The following block handles all unsuccessful returns other than
+! those for illegal input. First the error message routine is called.
+! if there was an error test or convergence test failure, IMXER is set.
+! Then Y is loaded from YH, and T is set to TN. The optional output
+! is loaded into the work arrays before returning.
+
+!       The maximum number of steps was taken before reaching TOUT.
+340     MSG = 'At current T(=R1), MXSTEP(=I1) steps'
+        CALL XERRDV(MSG,970,1,0,0,0,0,ZERO,ZERO)
+        MSG = 'taken on this call before reaching TOUT.'
+        CALL XERRDV(MSG,970,1,1,MXSTEP,0,1,TN,ZERO)
+        ISTATE = -1
+        GOTO 410
+!       EWT(i) <= 0.0 for some i (not at start of problem).
+350     EWTI = EWT(I)
+        MSG = 'At T(=R1), EWT(I1) has become R2 <= 0.'
+        CALL XERRDV(MSG,980,1,1,I,0,2,TN,EWTI)
+        ISTATE = -6
+        GOTO 410
+!       Too much accuracy requested for machine precision.
+360     MSG = 'At T(=R1), too much accuracy was requested'
+        CALL XERRDV(MSG,990,1,0,0,0,0,ZERO,ZERO)
+        MSG = 'for precision of machine:   see TOLSF(=R2).'
+        CALL XERRDV(MSG,990,1,0,0,0,2,TN,TOLSF)
+        RWORK(14) = TOLSF
+        ISTATE = -2
+        GOTO 410
+!       KFLAG = -1. Error test failed repeatedly or with ABS(H) = HMIN.
+370     MSG = 'At T(=R1) and step size H(=R2), the error'
+        CALL XERRDV(MSG,1000,1,0,0,0,0,ZERO,ZERO)
+        MSG = 'test failed repeatedly or with ABS(H) = HMIN.'
+        CALL XERRDV(MSG,1000,1,0,0,0,2,TN,H)
+        ISTATE = -4
+        GOTO 390
+!       KFLAG = -2. Convergence failed repeatedly or with ABS(H) = HMIN.
+380     MSG = 'At T(=R1) and step size H(=R2), the'
+        CALL XERRDV(MSG,1010,1,0,0,0,0,ZERO,ZERO)
+        MSG = 'corrector convergence failed repeatedly'
+        CALL XERRDV(MSG,1010,1,0,0,0,0,ZERO,ZERO)
+        MSG = 'or with ABS(H) = HMIN.'
+        CALL XERRDV(MSG,1010,1,0,0,0,2,TN,H)
+        ISTATE = -5
+!       Compute IMXER if relevant.
+390     BIG = ZERO
+        IMXER = 1
+        DO 400 I = 1, N
+          SIZEST = ABS(ACOR(I)*EWT(I))
+          IF (BIG>=SIZEST) GOTO 400
+          BIG = SIZEST
+          IMXER = I
+400     END DO
+        IWORK(16) = IMXER
+!       Set Y vector, T, and optional output.
+410     CONTINUE
+        CALL DCOPY_F90(N,RWORK(LYH),1,Y,1)
+        T = TN
+        RWORK(11) = HU
+        RWORK(12) = H
+        RWORK(13) = TN
+        IWORK(10) = NGE
+        IWORK(11) = NST
+        IWORK(12) = NFE
+        IWORK(13) = NJE
+        IWORK(14) = NQU
+        IWORK(15) = NQ
+        IWORK(19) = NLU
+        IWORK(20) = NNI
+        IWORK(21) = NCFN
+        IWORK(22) = NETF
+        TLAST = T
+        RUSER(1:LRWUSER) = RWORK(1:LRWUSER)
+        IUSER(1:LIWUSER) = IWORK(1:LIWUSER)
+        RETURN
+
+! Block I.
+! The following block handles all error returns due to illegal input
+! (ISTATE = -3), as detected before calling the core integrator.
+! First the error message routine is called. If the illegal input
+! is a negative ISTATE, the run is aborted (apparent infinite loop).
+
+420     MSG = 'ISTATE(=I1) is illegal.'
+        CALL XERRDV(MSG,1020,1,1,ISTATE,0,0,ZERO,ZERO)
+        IF (ISTATE<0) GOTO 750
+        GOTO 740
+430     MSG = 'ITASK(=I1) is illegal.'
+        CALL XERRDV(MSG,1030,1,1,ITASK,0,0,ZERO,ZERO)
+        GOTO 740
+440     MSG = 'ISTATE(=I1) > 1 but DVODE is not initialized.'
+        CALL XERRDV(MSG,1040,1,1,ISTATE,0,0,ZERO,ZERO)
+        GOTO 740
+450     MSG = 'NEQ (=I1) < 1.'
+        CALL XERRDV(MSG,1050,1,1,NEQ,0,0,ZERO,ZERO)
+        GOTO 740
+460     MSG = 'ISTATE = 3 and NEQ increased (I1 to I2).'
+        CALL XERRDV(MSG,1060,1,2,N,NEQ,0,ZERO,ZERO)
+        GOTO 740
+465     MSG = 'This version of DVODE requires does not allow NEQ to be reduced.'
+        CALL XERRDV(MSG,1070,2,0,0,0,0,ZERO,ZERO)
+        GOTO 740
+470     MSG = 'ITOL(=I1) is illegal.'
+        CALL XERRDV(MSG,1080,1,1,ITOL,0,0,ZERO,ZERO)
+        GOTO 740
+480     MSG = 'IOPT(=I1) is illegal.'
+        CALL XERRDV(MSG,1090,1,1,IOPT,0,0,ZERO,ZERO)
+        GOTO 740
+490     MSG = 'MF(=I1) is illegal.'
+        CALL XERRDV(MSG,1100,1,1,MF,0,0,ZERO,ZERO)
+        GOTO 740
+500     MSG = 'ML(=I1) illegal: < 0 or >= NEQ (=I2)'
+        CALL XERRDV(MSG,1110,1,2,ML,NEQ,0,ZERO,ZERO)
+        GOTO 740
+510     MSG = 'MU(=I1) illegal: < 0 or >= NEQ (=I2)'
+        CALL XERRDV(MSG,1120,1,2,MU,NEQ,0,ZERO,ZERO)
+        GOTO 740
+520     MSG = 'MAXORD(=I1) < 0.'
+        CALL XERRDV(MSG,1130,1,1,MAXORD,0,0,ZERO,ZERO)
+        GOTO 740
+530     MSG = 'MXSTEP(=I1) < 0.'
+        CALL XERRDV(MSG,1140,1,1,MXSTEP,0,0,ZERO,ZERO)
+        GOTO 740
+540     MSG = 'MXHNIL(=I1) < 0.'
+        CALL XERRDV(MSG,1150,1,1,MXHNIL,0,0,ZERO,ZERO)
+        GOTO 740
+550     MSG = 'TOUT(=R1) is behind T(=R2).'
+        CALL XERRDV(MSG,1160,1,0,0,0,2,TOUT,T)
+        MSG = 'The integration direction is given by H0 (=R1).'
+        CALL XERRDV(MSG,1160,1,0,0,0,1,H0,ZERO)
+        GOTO 740
+560     MSG = 'HMAX(=R1) < 0.'
+        CALL XERRDV(MSG,1170,1,0,0,0,1,HMAX,ZERO)
+        GOTO 740
+570     MSG = 'HMIN(=R1) < 0.'
+        CALL XERRDV(MSG,1180,1,0,0,0,1,HMIN,ZERO)
+        GOTO 740
+580     CONTINUE
+        MSG = 'RWORK length needed, LENRW(=I1) > LRW(=I2)'
+        CALL XERRDV(MSG,1190,1,2,LENRW,LRW,0,ZERO,ZERO)
+        GOTO 740
+590     CONTINUE
+        MSG = 'IWORK length needed, LENIW(=I1) > LIW(=I2)'
+        CALL XERRDV(MSG,1200,1,2,LENIW,LIW,0,ZERO,ZERO)
+        GOTO 740
+600     MSG = 'RTOL(I1) is R1 < 0.'
+        CALL XERRDV(MSG,1210,1,1,I,0,1,RTOLI,ZERO)
+        GOTO 740
+610     MSG = 'ATOL(I1) is R1 < 0.'
+        CALL XERRDV(MSG,1220,1,1,I,0,1,ATOLI,ZERO)
+        GOTO 740
+620     EWTI = EWT(I)
+        MSG = 'EWT(I1) is R1 <= 0.'
+        CALL XERRDV(MSG,1230,1,1,I,0,1,EWTI,ZERO)
+        GOTO 740
+630     CONTINUE
+        MSG = 'TOUT(=R1) too close to T(=R2) to start.'
+        CALL XERRDV(MSG,1240,1,0,0,0,2,TOUT,T)
+        GOTO 740
+640     CONTINUE
+        MSG = 'ITASK = I1 and TOUT(=R1) < TCUR - HU(=R2).'
+        CALL XERRDV(MSG,1250,1,1,ITASK,0,2,TOUT,TP)
+        GOTO 740
+650     CONTINUE
+        MSG = 'ITASK = 4 or 5 and TCRIT(=R1) < TCUR(=R2).'
+        CALL XERRDV(MSG,1260,1,0,0,0,2,TCRIT,TN)
+        GOTO 740
+660     CONTINUE
+        MSG = 'ITASK = 4 or 5 and TCRIT(=R1) < TOUT(=R2).'
+        CALL XERRDV(MSG,1270,1,0,0,0,2,TCRIT,TOUT)
+        GOTO 740
+670     MSG = 'At the start of the problem, too much'
+        CALL XERRDV(MSG,1280,1,0,0,0,0,ZERO,ZERO)
+        MSG = 'accuracy was requested for precision'
+        CALL XERRDV(MSG,1280,1,0,0,0,1,TOLSF,ZERO)
+        MSG = 'of machine: see TOLSF(=R1).'
+        CALL XERRDV(MSG,1280,1,0,0,0,1,TOLSF,ZERO)
+        RWORK(14) = TOLSF
+        GOTO 740
+680     MSG = 'Trouble from DVINDY. ITASK = I1, TOUT = R1.'
+        CALL XERRDV(MSG,1290,1,1,ITASK,0,1,TOUT,ZERO)
+        GOTO 740
+690     MSG = 'SETH must be nonnegative.'
+        CALL XERRDV(MSG,1300,1,0,0,0,0,ZERO,ZERO)
+        GOTO 740
+700     MSG = 'NG(=I1) < 0.'
+        CALL XERRDV(MSG,1310,0,1,NG,0,0,ZERO,ZERO)
+        GOTO 740
+710     MSG = 'NG changed (from I1 to I2) illegally, i.e.,'
+        CALL XERRDV(MSG,1320,1,0,0,0,0,ZERO,ZERO)
+        MSG = 'not immediately after a root was found.'
+        CALL XERRDV(MSG,1320,1,2,NGC,NG,0,ZERO,ZERO)
+        GOTO 740
+720     MSG = 'One or more components of g has a root'
+        CALL XERRDV(MSG,1330,1,0,0,0,0,ZERO,ZERO)
+        MSG = 'too near to the initial point.'
+        CALL XERRDV(MSG,1330,1,0,0,0,0,ZERO,ZERO)
+        GOTO 740
+730     CONTINUE
+        MSG = 'WM length needed, LENWM(=I1) > LWMDIM(=I2)'
+        CALL XERRDV(MSG,1340,1,2,LENWM,LWMDIM,0,ZERO,ZERO)
+
+740     CONTINUE
+        ISTATE = -3
+        RUSER(1:LRWUSER) = RWORK(1:LRWUSER)
+        IUSER(1:LIWUSER) = IWORK(1:LIWUSER)
+        RETURN
+
+750     MSG = 'Run aborted:  apparent infinite loop.'
+        CALL XERRDV(MSG,1350,2,0,0,0,0,ZERO,ZERO)
+        RUSER(1:LRWUSER) = RWORK(1:LRWUSER)
+        IUSER(1:LIWUSER) = IWORK(1:LIWUSER)
+        RETURN
+
+      END SUBROUTINE DVODE
+!_______________________________________________________________________
+
+      SUBROUTINE DVHIN(N,T0,Y0,YDOT,F,TOUT,EWT,ITOL,ATOL,Y,TEMP,H0, &
+        NITER,IER)
+! ..
+! Calculate the initial step size.
+! ..
+! This routine computes the step size, H0, to be attempted on the
+! first step, when the user has not supplied a value for this.
+! First we check that TOUT - T0 differs significantly from zero. Then
+! an iteration is done to approximate the initial second derivative
+! and this is used to define h from w.r.m.s.norm(h**2 * yddot / 2) = 1.
+! A bias factor of 1/2 is applied to the resulting h.
+! The sign of H0 is inferred from the initial values of TOUT and T0.
+! Communication with DVHIN is done with the following variables:
+! N      = Size of ODE system, input.
+! T0     = Initial value of independent variable, input.
+! Y0     = Vector of initial conditions, input.
+! YDOT   = Vector of initial first derivatives, input.
+! F      = Name of subroutine for right-hand side f(t,y), input.
+! TOUT   = First output value of independent variable
+! UROUND = Machine unit roundoff
+! EWT, ITOL, ATOL = Error weights and tolerance parameters
+!                   as described in the driver routine, input.
+! Y, TEMP = Work arrays of length N.
+! H0     = Step size to be attempted, output.
+! NITER  = Number of iterations (and of f evaluations) to compute H0,
+!          output.
+! IER    = The error flag, returned with the value
+!          IER = 0  if no trouble occurred, or
+!          IER = -1 if TOUT and T0 are considered too close to proceed.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        KPP_REAL, INTENT (INOUT) :: H0
+        KPP_REAL, INTENT (IN) :: T0, TOUT
+        INTEGER :: IER
+        INTEGER, INTENT (IN) :: ITOL, N
+        INTEGER, INTENT (INOUT) :: NITER
+! ..
+! .. Array Arguments ..
+        KPP_REAL, INTENT (IN) :: ATOL(*), EWT(*), Y0(*)
+        KPP_REAL, INTENT (INOUT) :: TEMP(*), Y(*), YDOT(*)
+! ..
+! .. Subroutine Arguments ..
+        EXTERNAL F
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: AFI, ATOLI, DELYI, H, HG, HLB, HNEW, HRAT, HUB, T1, &
+          TDIST, TROUND, YDDNRM
+        INTEGER :: I, ITER
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, MAX, SIGN, SQRT
+! ..
+! .. FIRST EXECUTABLE STATEMENT DVHIN
+! ..
+        NITER = 0
+        TDIST = ABS(TOUT-T0)
+        TROUND = UROUND*MAX(ABS(T0),ABS(TOUT))
+        IF (TDIST<TWO*TROUND) GOTO 40
+
+!       Set a lower bound on H based on the roundoff level in T0
+!       and TOUT.
+        HLB = HUN*TROUND
+!       Set an upper bound on H based on TOUT-T0 and the initial
+!       Y and YDOT.
+        HUB = PT1*TDIST
+        ATOLI = ATOL(1)
+        DO I = 1, N
+          IF (ITOL==2 .OR. ITOL==4) ATOLI = ATOL(I)
+          DELYI = PT1*ABS(Y0(I)) + ATOLI
+          AFI = ABS(YDOT(I))
+          IF (AFI*HUB>DELYI) HUB = DELYI/AFI
+        END DO
+!       Set initial guess for H as geometric mean of upper and
+!       lower bounds.
+        ITER = 0
+        HG = SQRT(HLB*HUB)
+!       If the bounds have crossed, exit with the mean value.
+        IF (HUB<HLB) THEN
+          H0 = HG
+          GOTO 30
+        END IF
+
+!       Looping point for iteration.
+10      CONTINUE
+!       Estimate the second derivative as a difference quotient in f.
+        H = SIGN(HG,TOUT-T0)
+        T1 = T0 + H
+        Y(1:N) = Y0(1:N) + H*YDOT(1:N)
+        CALL F(N,T1,Y,TEMP)
+        NFE = NFE + 1
+        TEMP(1:N) = (TEMP(1:N)-YDOT(1:N))/H
+        YDDNRM = DVNORM(N,TEMP,EWT)
+!       Get the corresponding new value of h.
+        IF (YDDNRM*HUB*HUB>TWO) THEN
+          HNEW = SQRT(TWO/YDDNRM)
+        ELSE
+          HNEW = SQRT(HG*HUB)
+        END IF
+        ITER = ITER + 1
+
+! Test the stopping conditions.
+! Stop if the new and previous h values differ by a factor of < 2.
+! Stop if four iterations have been done. Also, stop with previous h
+! if HNEW/HG > 2 after first iteration, as this probably means that
+! the second derivative value is bad because of cancellation error.
+
+        IF (ITER>=4) GOTO 20
+        HRAT = HNEW/HG
+        IF ((HRAT>HALF) .AND. (HRAT<TWO)) GOTO 20
+        IF ((ITER>=2) .AND. (HNEW>TWO*HG)) THEN
+          HNEW = HG
+          GOTO 20
+        END IF
+        HG = HNEW
+        GOTO 10
+
+!       Iteration done. Apply bounds, bias factor, and sign. Then exit.
+20      H0 = HNEW*HALF
+        IF (H0<HLB) H0 = HLB
+        IF (H0>HUB) H0 = HUB
+30      H0 = SIGN(H0,TOUT-T0)
+        NITER = ITER
+        IER = 0
+        RETURN
+!       Error return for TOUT - T0 too small.
+40      IER = -1
+        RETURN
+
+      END SUBROUTINE DVHIN
+!_______________________________________________________________________
+
+      SUBROUTINE DVINDY_CORE(T,K,YH,LDYH,DKY,IFLAG)
+! ..
+! Interpolate the solution and derivative.
+! ..
+! DVINDY_CORE computes interpolated values of the K-th derivative
+! of the dependent variable vector y, and stores it in DKY. This
+! routine is called within the package with K = 0 and T = TOUT,
+! but may also be called by the user for any K up to the current
+! order. (See detailed instructions in the usage documentation.)
+! The computed values in DKY are gotten by interpolation using the
+! Nordsieck history array YH. This array corresponds uniquely to a
+! vector-valued polynomial of degree NQCUR or less, and DKY is set
+! to the K-th derivative of this polynomial at T.
+! The formula for DKY is:
+!              q
+!  DKY(i)  =  sum  c(j,K) * (T - TN)**(j-K) * H**(-j) * YH(i,j+1)
+!             j=K
+! where  c(j,K) = j*(j-1)*...*(j-K+1), q = NQCUR, TN = TCUR, H = HCUR.
+! The quantities  NQ = NQCUR, L = NQ+1, N, TN, and H are
+! communicated by PRIVATE variables. The above sum is done in reverse
+! order.
+! IFLAG is returned negative if either K or T is out of bounds.
+! Discussion above and comments in driver explain all variables.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        KPP_REAL, INTENT (IN) :: T
+        INTEGER, INTENT (INOUT) :: IFLAG
+        INTEGER, INTENT (IN) :: K, LDYH
+! ..
+! .. Array Arguments ..
+        KPP_REAL, INTENT (INOUT) :: DKY(*), YH(LDYH,*)
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: C, R, S, TFUZZ, TN1, TP
+        INTEGER :: IC, J, JB, JB2, JJ, JJ1, JP1
+        CHARACTER (80) :: MSG
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, REAL, SIGN
+! ..
+! .. FIRST EXECUTABLE STATEMENT DVINDY_CORE
+! ..
+        IFLAG = 0
+        IF (K<0 .OR. K>NQ) GOTO 40
+!       TFUZZ = HUN * UROUND * (TN + HU)
+        TFUZZ = HUN*UROUND*SIGN(ABS(TN)+ABS(HU),HU)
+        TP = TN - HU - TFUZZ
+        TN1 = TN + TFUZZ
+        IF ((T-TP)*(T-TN1)>ZERO) GOTO 50
+        S = (T-TN)/H
+        IC = 1
+        IF (K==0) GOTO 10
+        JJ1 = L - K
+        DO JJ = JJ1, NQ
+          IC = IC*JJ
+        END DO
+10      C = REAL(IC)
+        DKY(1:N) = C*YH(1:N,L)
+        IF (K==NQ) GOTO 30
+        JB2 = NQ - K
+        DO JB = 1, JB2
+          J = NQ - JB
+          JP1 = J + 1
+          IC = 1
+          IF (K==0) GOTO 20
+          JJ1 = JP1 - K
+          DO JJ = JJ1, J
+            IC = IC*JJ
+          END DO
+20        C = REAL(IC)
+          DKY(1:N) = C*YH(1:N,JP1) + S*DKY(1:N)
+        END DO
+30      R = H**(-K)
+        CALL DSCAL_F90(N,R,DKY,1)
+        RETURN
+40      MSG = 'Error in DVINDY, K(=I1) is illegal.'
+        CALL XERRDV(MSG,1360,1,1,K,0,0,ZERO,ZERO)
+        IFLAG = -1
+        RETURN
+50      MSG = 'Error in DVINDY, T(=R1) is illegal. T is not'
+        CALL XERRDV(MSG,1370,1,0,0,0,1,T,ZERO)
+        MSG = 'in interval TCUR - HU(= R1) to TCUR(=R2)'
+        CALL XERRDV(MSG,1370,1,0,0,0,2,TP,TN)
+        IFLAG = -2
+        RETURN
+
+      END SUBROUTINE DVINDY_CORE
+!_______________________________________________________________________
+
+      SUBROUTINE DVINDY_BNDS(T,K,YH,LDYH,DKY,IFLAG)
+! ..
+! Interpolate the solution and derivative and enforce nonnegativity
+! (used only if user calls DVINDY and the BOUNDS option is in
+! use).
+! ..
+! This version of DVINDY_CORE enforces nonnegativity and is called
+! only by DVINDY (which is called only by the user). It uses the
+! private YNNEG array produced by a call to DVINDY_CORE from DVINDY
+! to enforce nonnegativity.
+! DVINDY_BNDS computes interpolated values of the K-th derivative
+! of the dependent variable vector y, and stores it in DKY. This
+! routine is called within the package with K = 0 and T = TOUT,
+! but may also be called by the user for any K up to the current
+! order. (See detailed instructions in the usage documentation.)
+! The computed values in DKY are gotten by interpolation using the
+! Nordsieck history array YH. This array corresponds uniquely to a
+! vector-valued polynomial of degree NQCUR or less, and DKY is set
+! to the K-th derivative of this polynomial at T.
+! The formula for DKY is:
+!              q
+!  DKY(i)  =  sum  c(j,K) * (T - TN)**(j-K) * H**(-j) * YH(i,j+1)
+!             j=K
+! where  c(j,K) = j*(j-1)*...*(j-K+1), q = NQCUR, TN = TCUR, H = HCUR.
+! The quantities  NQ = NQCUR, L = NQ+1, N, TN, and H are
+! communicated by PRIVATE variables. The above sum is done in reverse
+! order.
+! IFLAG is returned negative if either K or T is out of bounds.
+! Discussion above and comments in driver explain all variables.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        KPP_REAL, INTENT (IN) :: T
+        INTEGER, INTENT (INOUT) :: IFLAG
+        INTEGER, INTENT (IN) :: K, LDYH
+! ..
+! .. Array Arguments ..
+        KPP_REAL, INTENT (INOUT) :: DKY(*), YH(LDYH,*)
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: C, R, S, TFUZZ, TN1, TP
+        INTEGER :: I, IC, J, JB, JB2, JJ, JJ1, JP1
+        CHARACTER (80) :: MSG
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, REAL, SIGN
+! ..
+! .. FIRST EXECUTABLE STATEMENT DVINDY_BNDS
+! ..
+        IFLAG = 0
+        IF (K==0) GOTO 50
+        IF (K<0 .OR. K>NQ) GOTO 40
+!       TFUZZ = HUN * UROUND * (TN + HU)
+        TFUZZ = HUN*UROUND*SIGN(ABS(TN)+ABS(HU),HU)
+        TP = TN - HU - TFUZZ
+        TN1 = TN + TFUZZ
+        IF ((T-TP)*(T-TN1)>ZERO) GOTO 60
+        S = (T-TN)/H
+        IC = 1
+        IF (K==0) GOTO 10
+        JJ1 = L - K
+        DO JJ = JJ1, NQ
+          IC = IC*JJ
+        END DO
+10      C = REAL(IC)
+        DKY(1:N) = C*YH(1:N,L)
+        IF (BOUNDS) THEN
+          DO I = 1, NDX
+            IF (YNNEG(IDX(I))<LB(I) .OR. YNNEG(IDX(I))>UB(I)) DKY(IDX(I)) &
+              = ZERO
+          END DO
+        END IF
+        IF (K==NQ) GOTO 30
+        JB2 = NQ - K
+        DO JB = 1, JB2
+          J = NQ - JB
+          JP1 = J + 1
+          IC = 1
+          IF (K==0) GOTO 20
+          JJ1 = JP1 - K
+          DO JJ = JJ1, J
+            IC = IC*JJ
+          END DO
+20        C = REAL(IC)
+          DKY(1:N) = C*YH(1:N,JP1) + S*DKY(1:N)
+          IF (BOUNDS) THEN
+            DO I = 1, NDX
+              IF (YNNEG(IDX(I))<LB(I) .OR. YNNEG(IDX(I))>UB(I)) DKY(IDX(I)) &
+                = ZERO
+            END DO
+          END IF
+        END DO
+30      R = H**(-K)
+        CALL DSCAL_F90(N,R,DKY,1)
+        RETURN
+40      MSG = 'Error in DVINDY, K(=I1) is illegal.'
+        CALL XERRDV(MSG,1380,1,1,K,0,0,ZERO,ZERO)
+        IFLAG = -1
+        RETURN
+50      MSG = 'DVINDY_BNDS cannot be called with k = 0.'
+        CALL XERRDV(MSG,1390,1,0,0,0,0,ZERO,ZERO)
+        IFLAG = -1
+        RETURN
+60      MSG = 'Error in DVINDY, T(=R1) is illegal. T is not'
+        CALL XERRDV(MSG,1400,1,0,0,0,1,T,ZERO)
+        MSG = 'not in interval TCUR - HU(= R1) to TCUR(=R2)'
+        CALL XERRDV(MSG,1400,1,0,0,0,2,TP,TN)
+        IFLAG = -2
+        RETURN
+
+      END SUBROUTINE DVINDY_BNDS
+!_______________________________________________________________________
+
+      SUBROUTINE DVINDY(T,K,DKY,IFLAG)
+! ..
+! This is a dummy interface to allow the user to interpolate the
+! solution and the derivative (not called by DVODE_F90).
+! ..
+! May be used if the user wishes to interpolate solution or
+! derivative following a successful return from DVODE_F90
+! DVINDY computes interpolated values of the K-th derivative of
+! the dependent variable vector y, and stores it in DKY. This
+! routine is called within the package with K = 0 and T = TOUT,
+! but may also be called by the user for any K up to the current
+! order. (See detailed instructions in the usage documentation.)
+! The computed values in DKY are gotten by interpolation using the
+! Nordsieck history array YH. This array corresponds uniquely to a
+! vector-valued polynomial of degree NQCUR or less, and DKY is set
+! to the K-th derivative of this polynomial at T.
+! IFLAG is returned negative if either K or T is out of bounds.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        KPP_REAL, INTENT (IN) :: T
+        INTEGER, INTENT (INOUT) :: IFLAG
+        INTEGER, INTENT (IN) :: K
+! ..
+! .. Array Arguments ..
+        KPP_REAL, INTENT (INOUT) :: DKY(*)
+! ..
+! .. Local Scalars ..
+        INTEGER :: I, IER
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ALLOCATED, SIZE
+! ..
+! .. FIRST EXECUTABLE STATEMENT DVINDY
+! ..
+        CALL DVINDY_CORE(T,K,RWORK(LYH),N,DKY,IFLAG)
+        IF (.NOT.BOUNDS) RETURN
+
+        IF (K==0) THEN
+!         Interpolate only the solution.
+          CALL DVINDY_CORE(T,K,RWORK(LYH),N,DKY,IFLAG)
+!         Enforce bounds.
+          DO I = 1, NDX
+            IF (DKY(IDX(I))<LB(I)) DKY(IDX(I)) = LB(I)
+            IF (DKY(IDX(I))>UB(I)) DKY(IDX(I)) = UB(I)
+          END DO
+          RETURN
+        END IF
+
+!       k > 0 - derivatives requested.
+
+!       Make sure space is available for the interpolated solution.
+        IF (ALLOCATED(YNNEG)) THEN
+          IF (SIZE(YNNEG)<N) THEN
+            DEALLOCATE (YNNEG,STAT=IER)
+            CALL CHECK_STAT(IER,460)
+            ALLOCATE (YNNEG(N),STAT=IER)
+            CALL CHECK_STAT(IER,470)
+          END IF
+        ELSE
+          ALLOCATE (YNNEG(N),STAT=IER)
+          CALL CHECK_STAT(IER,480)
+        END IF
+!       Interpolate the solution; do not enforce bounds.
+        CALL DVINDY_CORE(T,0,RWORK(LYH),N,YNNEG,IFLAG)
+!       Now interpolate the derivative using YNNEG to enforce
+!       nonnegativity.
+        CALL DVINDY_BNDS(T,K,RWORK(LYH),N,DKY,IFLAG)
+        RETURN
+
+      END SUBROUTINE DVINDY
+!_______________________________________________________________________
+
+      SUBROUTINE DVSTEP(Y,YH,LDYH,YH1,EWT,SAVF,ACOR,WM,IWM,F,JAC, &
+        VNLS,ATOL,ITOL)
+! ..
+! This is the core step integrator for nonstiff and for dense, banded,
+! and sparse solutions.
+! ..
+! DVSTEP performs one step of the integration of an initial value
+! problem for a system of ordinary differential equations. It
+! calls subroutine DVNLSD for the solution of the nonlinear system
+! arising in the time step. Thus it is independent of the problem
+! Jacobian structure and the type of nonlinear system solution method.
+! DVSTEP returns a completion flag KFLAG (in PRIVATE variables block).
+! A return with KFLAG = -1 or -2 means either ABS(H) = HMIN or 10
+! consecutive failures occurred. On a return with KFLAG negative,
+! the values of TN and the YH array are as of the beginning of the last
+! step, and H is the last step size attempted.
+! Communication with DVSTEP is done with the following variables:
+! Y      = An array of length N used for the dependent variable vector.
+! YH     = An LDYH by LMAX array containing the dependent variables
+!          and their approximate scaled derivatives, where
+!          LMAX = MAXORD + 1. YH(i,j+1) contains the approximate
+!          j-th derivative of y(i), scaled by H**j/factorial(j)
+!          (j = 0,1,...,NQ). On entry for the first step, the first
+!          two columns of YH must be set from the initial values.
+! LDYH   = A constant integer >= N, the first dimension of YH.
+!          N is the number of ODEs in the system.
+! YH1    = A one-dimensional array occupying the same space as YH.
+! EWT    = An array of length N containing multiplicative weights
+!          for local error measurements. Local errors in y(i) are
+!          compared to 1.0/EWT(i) in various error tests.
+! SAVF   = An array of working storage, of length N.
+!          also used for input of YH(*,MAXORD+2) when JSTART = -1
+!          and MAXORD < the current order NQ.
+! ACOR   = A work array of length N, used for the accumulated
+!          corrections. On a successful return, ACOR(i) contains
+!          the estimated one-step local error in y(i).
+! WM,IWM = Real and integer work arrays associated with matrix
+!          operations in DVNLSD.
+! F      = Dummy name for the user supplied subroutine for f.
+! JAC    = Dummy name for the user supplied Jacobian subroutine.
+! DVNLSD = Dummy name for the nonlinear system solving subroutine,
+!          whose real name is dependent on the method used.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: LDYH, ITOL
+! ..
+! .. Array Arguments ..
+        KPP_REAL, INTENT (INOUT) :: ACOR(*), EWT(*), SAVF(*), &
+          WM(*), Y(*), YH(LDYH,*), YH1(*)
+        KPP_REAL, INTENT (IN) :: ATOL(*)
+        INTEGER, INTENT (INOUT) :: IWM(*)
+! ..
+! .. Subroutine Arguments ..
+        EXTERNAL F, JAC, VNLS
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: CNQUOT, DDN, DSM, DUP, ETAQ, ETAQM1, ETAQP1, FLOTL, R, &
+          TOLD
+        INTEGER :: I, I1, I2, IBACK, J, JB, NCF, NFLAG
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, MAX, MIN, REAL
+! ..
+! .. FIRST EXECUTABLE STATEMENT DVSTEP
+! ..
+        KFLAG = 0
+        TOLD = TN
+        NCF = 0
+        JCUR = 0
+        NFLAG = 0
+        IF (JSTART>0) GOTO 10
+        IF (JSTART==-1) GOTO 30
+
+! On the first call, the order is set to 1, and other variables are
+! initialized. ETAMAX is the maximum ratio by which H can be increased
+! in a single step. It is normally 10, but is larger during the first
+! step to compensate for the small initial H. If a failure occurs
+! (in corrector convergence or error test), ETAMAX is set to 1 for
+! the next increase.
+
+        LMAX = MAXORD + 1
+        NQ = 1
+        L = 2
+        NQNYH = NQ*LDYH
+        TAU(1) = H
+        PRL1 = ONE
+        RC = ZERO
+        ETAMAX = ETAMX1
+        NQWAIT = 2
+        HSCAL = H
+        GOTO 70
+
+! Take preliminary actions on a normal continuation step (JSTART > 0).
+! If the driver changed H, then ETA must be reset and NEWH set to 1.
+! If a change of order was dictated on the previous step, then it is
+! done here and appropriate adjustments in the history are made.
+! On an order decrease, the history array is adjusted by DVJUST.
+! On an order increase, the history array is augmented by a column.
+! On a change of step size H, the history array YH is rescaled.
+
+10      CONTINUE
+        IF (KUTH==1) THEN
+          ETA = MIN(ETA,H/HSCAL)
+          NEWH = 1
+        END IF
+20      IF (NEWH==0) GOTO 70
+        IF (NEWQ==NQ) GOTO 60
+        IF (NEWQ<NQ) THEN
+          CALL DVJUST(YH,LDYH,-1)
+          NQ = NEWQ
+          L = NQ + 1
+          NQWAIT = L
+          GOTO 60
+        END IF
+        IF (NEWQ>NQ) THEN
+          CALL DVJUST(YH,LDYH,1)
+          NQ = NEWQ
+          L = NQ + 1
+          NQWAIT = L
+          GOTO 60
+        END IF
+
+! The following block handles preliminaries needed when JSTART = -1.
+! If N was reduced, zero out part of YH to avoid undefined references.
+! If MAXORD was reduced to a value less than the tentative order NEWQ,
+! then NQ is set to MAXORD, and a new H ratio ETA is chosen.
+! Otherwise, we take the same preliminary actions as for JSTART > 0.
+! In any case, NQWAIT is reset to L = NQ + 1 to prevent further
+! changes in order for that many steps. The new H ratio ETA is
+! limited by the input H if KUTH = 1, by HMIN if KUTH = 0, and by
+! HMXI in any case. Finally, the history array YH is rescaled.
+
+30      CONTINUE
+        LMAX = MAXORD + 1
+        IF (N==LDYH) GOTO 40
+        I1 = 1 + (NEWQ+1)*LDYH
+        I2 = (MAXORD+1)*LDYH
+        IF (I1>I2) GOTO 40
+        YH1(I1:I2) = ZERO
+40      IF (NEWQ<=MAXORD) GOTO 50
+        FLOTL = REAL(LMAX)
+        IF (MAXORD<NQ-1) THEN
+          DDN = DVNORM(N,SAVF,EWT)/TQ(1)
+          ETA = ONE/((BIAS1*DDN)**(ONE/FLOTL)+ADDON)
+        END IF
+        IF (MAXORD==NQ .AND. NEWQ==NQ+1) ETA = ETAQ
+        IF (MAXORD==NQ-1 .AND. NEWQ==NQ+1) THEN
+          ETA = ETAQM1
+          CALL DVJUST(YH,LDYH,-1)
+        END IF
+        IF (MAXORD==NQ-1 .AND. NEWQ==NQ) THEN
+          DDN = DVNORM(N,SAVF,EWT)/TQ(1)
+          ETA = ONE/((BIAS1*DDN)**(ONE/FLOTL)+ADDON)
+          CALL DVJUST(YH,LDYH,-1)
+        END IF
+        ETA = MIN(ETA,ONE)
+        NQ = MAXORD
+        L = LMAX
+50      IF (KUTH==1) ETA = MIN(ETA,ABS(H/HSCAL))
+        IF (KUTH==0) ETA = MAX(ETA,HMIN/ABS(HSCAL))
+        ETA = ETA/MAX(ONE,ABS(HSCAL)*HMXI*ETA)
+        NEWH = 1
+        NQWAIT = L
+        IF (NEWQ<=MAXORD) GOTO 20
+!       Rescale the history array for a change in H by a factor of ETA.
+60      R = ONE
+        DO J = 2, L
+          R = R*ETA
+! Original:
+!         CALL DSCAL_F90(N,R,YH(1,J),1)
+          CALL DSCAL_F90(N,R,YH(1:N,J),1)
+        END DO
+        H = HSCAL*ETA
+        HSCAL = H
+        RC = RC*ETA
+        NQNYH = NQ*LDYH
+
+! This section computes the predicted values by effectively
+! multiplying the YH array by the Pascal triangle matrix.
+! DVSET is called to calculate all integration coefficients.
+! RC is the ratio of new to old values of the coefficient
+! H/EL(2)=h/l1.
+
+70      TN = TN + H
+        I1 = NQNYH + 1
+        DO JB = 1, NQ
+          I1 = I1 - LDYH
+          DO I = I1, NQNYH
+            YH1(I) = YH1(I) + YH1(I+LDYH)
+          END DO
+        END DO
+        CALL DVSET
+        RL1 = ONE/EL(2)
+        RC = RC*(RL1/PRL1)
+        PRL1 = RL1
+
+!       Call the nonlinear system solver.
+
+        CALL VNLS(Y,YH,LDYH,SAVF,EWT,ACOR,IWM,WM,F,JAC,NFLAG, &
+          ATOL,ITOL)
+
+        IF (NFLAG==0) GOTO 80
+
+! The DVNLSD routine failed to achieve convergence (NFLAG /= 0).
+! The YH array is retracted to its values before prediction.
+! The step size H is reduced and the step is retried, if possible.
+! Otherwise, an error exit is taken.
+
+        NCF = NCF + 1
+        NCFN = NCFN + 1
+        ETAMAX = ONE
+        TN = TOLD
+        I1 = NQNYH + 1
+        DO JB = 1, NQ
+          I1 = I1 - LDYH
+          DO I = I1, NQNYH
+            YH1(I) = YH1(I) - YH1(I+LDYH)
+          END DO
+        END DO
+        IF (NFLAG<-1) GOTO 240
+        IF (ABS(H)<=HMIN*ONEPSM) GOTO 230
+!       IF (NCF==MXNCF) GOTO 230
+        IF (NCF==CONSECUTIVE_CFAILS) GOTO 230
+        ETA = ETACF
+        ETA = MAX(ETA,HMIN/ABS(H))
+        NFLAG = -1
+        GOTO 60
+
+! The corrector has converged (NFLAG = 0). The local error test is
+! made and control passes to statement 500 if it fails.
+
+80      CONTINUE
+        DSM = ACNRM/TQ(2)
+        IF (DSM>ONE) GOTO 100
+
+! After a successful step, update the YH and TAU arrays and decrement
+! NQWAIT. If NQWAIT is then 1 and NQ < MAXORD, then ACOR is saved
+! for use in a possible order increase on the next step.
+! If ETAMAX = 1 (a failure occurred this step), keep NQWAIT >= 2.
+
+        KFLAG = 0
+        NST = NST + 1
+        HU = H
+        NQU = NQ
+        DO IBACK = 1, NQ
+          I = L - IBACK
+          TAU(I+1) = TAU(I)
+        END DO
+        TAU(1) = H
+
+        IF (BOUNDS) THEN
+! Original:
+!         CALL DAXPY_F90(N,EL(1),ACOR,1,YH(1,1),1)
+!         CALL DAXPY_F90(N,EL(2),ACOR,1,YH(1,2),1)
+          CALL DAXPY_F90(N,EL(1),ACOR,1,YH(1:N,1),1)
+          CALL DAXPY_F90(N,EL(2),ACOR,1,YH(1:N,2),1)
+!         Take care of roundoff causing y(t) to be slightly unequal
+!         to the constraint bound.
+          DO J = 1, NDX
+            YH(IDX(J),1) = MAX(YH(IDX(J),1),LB(J))
+            Y(IDX(J)) = MAX(Y(IDX(J)),LB(J))
+            YH(IDX(J),1) = MIN(YH(IDX(J),1),UB(J))
+            Y(IDX(J)) = MIN(Y(IDX(J)),UB(J))
+          END DO
+!         Update the higher derivatives and project to zero if necessary.
+          IF (L>2) THEN
+            DO J = 3, L
+! Original:
+!             CALL DAXPY_F90(N,EL(J),ACOR,1,YH(1,J),1)
+              CALL DAXPY_F90(N,EL(J),ACOR,1,YH(1:N,J),1)
+            END DO
+          END IF
+        ELSE
+!         Proceed as usual.
+          DO J = 1, L
+! Original:
+!           CALL DAXPY_F90(N,EL(J),ACOR,1,YH(1,J),1)
+            CALL DAXPY_F90(N,EL(J),ACOR,1,YH(1:N,J),1)
+          END DO
+        END IF
+
+        NQWAIT = NQWAIT - 1
+        IF ((L==LMAX) .OR. (NQWAIT/=1)) GOTO 90
+! Original:
+!       CALL DCOPY_F90(N,ACOR,1,YH(1,LMAX),1)
+        CALL DCOPY_F90(N,ACOR,1,YH(1:N,LMAX),1)
+        CONP = TQ(5)
+90      IF (ABS(ETAMAX-ONE)>0) GOTO 130
+        IF (NQWAIT<2) NQWAIT = 2
+        NEWQ = NQ
+        NEWH = 0
+        ETA = ONE
+        HNEW = H
+        GOTO 250
+
+! The error test failed. KFLAG keeps track of multiple failures.
+! Restore TN and the YH array to their previous values, and prepare
+! to try the step again. Compute the optimum step size for the
+! same order. After repeated failures, H is forced to decrease
+! more rapidly.
+
+100     KFLAG = KFLAG - 1
+        NETF = NETF + 1
+        NFLAG = -2
+        TN = TOLD
+        I1 = NQNYH + 1
+        DO JB = 1, NQ
+          I1 = I1 - LDYH
+          DO I = I1, NQNYH
+            YH1(I) = YH1(I) - YH1(I+LDYH)
+          END DO
+        END DO
+        IF (ABS(H)<=HMIN*ONEPSM) GOTO 220
+        ETAMAX = ONE
+        IF (KFLAG<=KFC) GOTO 110
+!       Compute ratio of new H to current H at the current order.
+        FLOTL = REAL(L)
+        ETA = ONE/((BIAS2*DSM)**(ONE/FLOTL)+ADDON)
+        ETA = MAX(ETA,HMIN/ABS(H),ETAMIN)
+        IF ((KFLAG<=-2) .AND. (ETA>ETAMXF)) ETA = ETAMXF
+        GOTO 60
+
+! Control reaches this section if 3 or more consecutive failures
+! have occurred. It is assumed that the elements of the YH array
+! have accumulated errors of the wrong order. The order is reduced
+! by one, if possible. Then H is reduced by a factor of 0.1 and
+! the step is retried. After a total of 7 consecutive failures,
+! an exit is taken with KFLAG = -1.
+
+!110     IF (KFLAG==KFH) GOTO 220
+110     IF (KFLAG==CONSECUTIVE_EFAILS) GOTO 220
+        IF (NQ==1) GOTO 120
+        ETA = MAX(ETAMIN,HMIN/ABS(H))
+        CALL DVJUST(YH,LDYH,-1)
+        L = NQ
+        NQ = NQ - 1
+        NQWAIT = L
+        GOTO 60
+120     ETA = MAX(ETAMIN,HMIN/ABS(H))
+        H = H*ETA
+        HSCAL = H
+        TAU(1) = H
+        CALL F(N,TN,Y,SAVF)
+        NFE = NFE + 1
+        IF (BOUNDS) THEN
+          DO I = 1, NDX
+            IF (ABS(YH(IDX(I),1)-LB(I))<=ZERO) SAVF(IDX(I)) = &
+              MAX(SAVF(IDX(I)),ZERO)
+            IF (ABS(YH(IDX(I),1)-UB(I))<=ZERO) SAVF(IDX(I)) = &
+              MIN(SAVF(IDX(I)),ZERO)
+          END DO
+        END IF
+        YH(1:N,2) = H*SAVF(1:N)
+        NQWAIT = 10
+        GOTO 70
+
+! If NQWAIT = 0, an increase or decrease in order by one is considered.
+! Factors ETAQ, ETAQM1, ETAQP1 are computed by which H could be
+! multiplied at order q, q-1, or q+1, respectively. The largest of
+! these is determined, and the new order and step size set accordingly.
+! A change of H or NQ is made only if H increases by at least a factor
+! of THRESH. If an order change is considered and rejected, then NQWAIT
+! is set to 2 (reconsider it after 2 steps).
+
+!       Compute ratio of new H to current H at the current order.
+130     FLOTL = REAL(L)
+        ETAQ = ONE/((BIAS2*DSM)**(ONE/FLOTL)+ADDON)
+        IF (NQWAIT/=0) GOTO 170
+        NQWAIT = 2
+        ETAQM1 = ZERO
+        IF (NQ==1) GOTO 140
+!       Compute ratio of new H to current H at the current order
+!       less one.
+! Original:
+!       DDN = DVNORM(N,YH(1,L),EWT)/TQ(1)
+        DDN = DVNORM(N,YH(1:N,L),EWT)/TQ(1)
+        ETAQM1 = ONE/((BIAS1*DDN)**(ONE/(FLOTL-ONE))+ADDON)
+140     ETAQP1 = ZERO
+        IF (L==LMAX) GOTO 150
+!       Compute ratio of new H to current H at current order plus one.
+        CNQUOT = (TQ(5)/CONP)*(H/TAU(2))**L
+        SAVF(1:N) = ACOR(1:N) - CNQUOT*YH(1:N,LMAX)
+        DUP = DVNORM(N,SAVF,EWT)/TQ(3)
+        ETAQP1 = ONE/((BIAS3*DUP)**(ONE/(FLOTL+ONE))+ADDON)
+150     IF (ETAQ>=ETAQP1) GOTO 160
+        IF (ETAQP1>ETAQM1) GOTO 190
+        GOTO 180
+160     IF (ETAQ<ETAQM1) GOTO 180
+170     ETA = ETAQ
+        NEWQ = NQ
+        GOTO 200
+180     ETA = ETAQM1
+        NEWQ = NQ - 1
+        GOTO 200
+190     ETA = ETAQP1
+        NEWQ = NQ + 1
+! Original:
+!       CALL DCOPY_F90(N,ACOR,1,YH(1,LMAX),1)
+        CALL DCOPY_F90(N,ACOR,1,YH(1:N,LMAX),1)
+!       Test tentative new H against THRESH, ETAMAX, and HMXI and
+!       then exit.
+200     IF (ETA<THRESH .OR. ABS(ETAMAX-ONE)<=ZERO) GOTO 210
+        ETA = MIN(ETA,ETAMAX)
+        ETA = ETA/MAX(ONE,ABS(H)*HMXI*ETA)
+        NEWH = 1
+        HNEW = H*ETA
+        GOTO 250
+210     NEWQ = NQ
+        NEWH = 0
+        ETA = ONE
+        HNEW = H
+        GOTO 250
+
+! All returns are made through this section.
+! On a successful return, ETAMAX is reset and ACOR is scaled.
+
+220     KFLAG = -1
+        GOTO 260
+230     KFLAG = -2
+        GOTO 260
+240     IF (NFLAG==-2) KFLAG = -3
+        IF (NFLAG==-3) KFLAG = -4
+        GOTO 260
+250     ETAMAX = ETAMX3
+        IF (NST<=10) ETAMAX = ETAMX2
+        R = ONE/TQ(2)
+
+        CALL DSCAL_F90(N,R,ACOR,1)
+260     JSTART = 1
+        RETURN
+
+      END SUBROUTINE DVSTEP
+!_______________________________________________________________________
+
+      SUBROUTINE DVSET
+! ..
+! Set the integration coefficients for DVSTEP.
+! ..
+! For each order NQ, the coefficients in EL are calculated by use
+! of the generating polynomial lambda(x), with coefficients EL(i).
+!      lambda(x) = EL(1) + EL(2)*x + ... + EL(NQ+1)*(x**NQ).
+! For the backward differentiation formulas,
+!                                     NQ-1
+!      lambda(x) = (1 + x/xi*(NQ)) * product (1 + x/xi(i)) .
+!                                     i = 1
+! For the Adams formulas,
+!                              NQ-1
+!      (d/dx) lambda(x) = c * product (1 + x/xi(i)),
+!                              i = 1
+!      lambda(-1) = 0,    lambda(0) = 1,
+! where c is a normalization constant.
+! In both cases, xi(i) is defined by
+!      H*xi(i) = t sub n - t sub (n-i)
+!              = H + TAU(1) + TAU(2) + ... TAU(i-1).
+! In addition to variables described previously, communication
+! with DVSET uses the following:
+!   TAU    = A vector of length 13 containing the past NQ values
+!            of H.
+!   EL     = A vector of length 13 in which vset stores the
+!            coefficients for the corrector formula.
+!   TQ     = A vector of length 5 in which vset stores constants
+!            used for the convergence test, the error test, and the
+!            selection of H at a new order.
+!   METH   = The basic method indicator.
+!   NQ     = The current order.
+!   L      = NQ + 1, the length of the vector stored in EL, and
+!            the number of columns of the YH array being used.
+!   NQWAIT = A counter controlling the frequency of order changes.
+!            An order change is about to be considered if NQWAIT = 1.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: AHATN0, ALPH0, CNQM1, CSUM, ELP, EM0, FLOTI, FLOTL, &
+          FLOTNQ, HSUM, RXI, RXIS, S, T1, T2, T3, T4, T5, T6, XI
+        INTEGER :: I, IBACK, J, JP1, NQM1, NQM2
+! ..
+! .. Local Arrays ..
+        KPP_REAL :: EM(13)
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, REAL
+! ..
+! .. FIRST EXECUTABLE STATEMENT DVSET
+! ..
+        FLOTL = REAL(L)
+        NQM1 = NQ - 1
+        NQM2 = NQ - 2
+        GOTO (10,40) METH
+
+!       Set coefficients for Adams methods.
+10      IF (NQ/=1) GOTO 20
+        EL(1) = ONE
+        EL(2) = ONE
+        TQ(1) = ONE
+        TQ(2) = TWO
+        TQ(3) = SIX*TQ(2)
+        TQ(5) = ONE
+        GOTO 60
+20      HSUM = H
+        EM(1) = ONE
+        FLOTNQ = FLOTL - ONE
+        EM(2:L) = ZERO
+        DO J = 1, NQM1
+          IF ((J/=NQM1) .OR. (NQWAIT/=1)) GOTO 30
+          S = ONE
+          CSUM = ZERO
+          DO I = 1, NQM1
+            CSUM = CSUM + S*EM(I)/REAL(I+1)
+            S = -S
+          END DO
+          TQ(1) = EM(NQM1)/(FLOTNQ*CSUM)
+30        RXI = H/HSUM
+          DO IBACK = 1, J
+            I = (J+2) - IBACK
+            EM(I) = EM(I) + EM(I-1)*RXI
+          END DO
+          HSUM = HSUM + TAU(J)
+        END DO
+!       Compute integral from -1 to 0 of polynomial and of x times it.
+        S = ONE
+        EM0 = ZERO
+        CSUM = ZERO
+        DO I = 1, NQ
+          FLOTI = REAL(I)
+          EM0 = EM0 + S*EM(I)/FLOTI
+          CSUM = CSUM + S*EM(I)/(FLOTI+ONE)
+          S = -S
+        END DO
+!       In EL, form coefficients of normalized integrated polynomial.
+        S = ONE/EM0
+        EL(1) = ONE
+        DO I = 1, NQ
+          EL(I+1) = S*EM(I)/REAL(I)
+        END DO
+        XI = HSUM/H
+        TQ(2) = XI*EM0/CSUM
+        TQ(5) = XI/EL(L)
+        IF (NQWAIT/=1) GOTO 60
+!       For higher order control constant, multiply polynomial by
+!       1+x/xi(q).
+        RXI = ONE/XI
+        DO IBACK = 1, NQ
+          I = (L+1) - IBACK
+          EM(I) = EM(I) + EM(I-1)*RXI
+        END DO
+!       Compute integral of polynomial.
+        S = ONE
+        CSUM = ZERO
+        DO I = 1, L
+          CSUM = CSUM + S*EM(I)/REAL(I+1)
+          S = -S
+        END DO
+        TQ(3) = FLOTL*EM0/CSUM
+        GOTO 60
+
+!       Set coefficients for BDF methods.
+40      EL(3:L) = ZERO
+        EL(1) = ONE
+        EL(2) = ONE
+        ALPH0 = -ONE
+        AHATN0 = -ONE
+        HSUM = H
+        RXI = ONE
+        RXIS = ONE
+        IF (NQ==1) GOTO 50
+        DO J = 1, NQM2
+!       In EL, construct coefficients of (1+x/xi(1))*...*(1+x/xi(j+1)).
+          HSUM = HSUM + TAU(J)
+          RXI = H/HSUM
+          JP1 = J + 1
+          ALPH0 = ALPH0 - ONE/REAL(JP1)
+          DO IBACK = 1, JP1
+            I = (J+3) - IBACK
+            EL(I) = EL(I) + EL(I-1)*RXI
+          END DO
+        END DO
+        ALPH0 = ALPH0 - ONE/REAL(NQ)
+        RXIS = -EL(2) - ALPH0
+        HSUM = HSUM + TAU(NQM1)
+        RXI = H/HSUM
+        AHATN0 = -EL(2) - RXI
+        DO IBACK = 1, NQ
+          I = (NQ+2) - IBACK
+          EL(I) = EL(I) + EL(I-1)*RXIS
+        END DO
+50      T1 = ONE - AHATN0 + ALPH0
+        T2 = ONE + REAL(NQ)*T1
+        TQ(2) = ABS(ALPH0*T2/T1)
+        TQ(5) = ABS(T2/(EL(L)*RXI/RXIS))
+        IF (NQWAIT/=1) GOTO 60
+        CNQM1 = RXIS/EL(L)
+        T3 = ALPH0 + ONE/REAL(NQ)
+        T4 = AHATN0 + RXI
+        ELP = T3/(ONE-T4+T3)
+        TQ(1) = ABS(ELP/CNQM1)
+        HSUM = HSUM + TAU(NQ)
+        RXI = H/HSUM
+        T5 = ALPH0 - ONE/REAL(NQ+1)
+        T6 = AHATN0 - RXI
+        ELP = T2/(ONE-T6+T5)
+        TQ(3) = ABS(ELP*RXI*(FLOTL+ONE)*T5)
+60      TQ(4) = CORTES*TQ(2)
+        RETURN
+
+      END SUBROUTINE DVSET
+!_______________________________________________________________________
+
+      SUBROUTINE DVJUST(YH,LDYH,IORD)
+! ..
+! Adjust the Nordsieck array.
+! ..
+! This subroutine adjusts the YH array on reduction of order, and
+! also when the order is increased for the stiff option (METH = 2).
+! Communication with DVJUST uses the following:
+! IORD  = An integer flag used when METH = 2 to indicate an order
+!         increase (IORD = +1) or an order decrease (IORD = -1).
+! HSCAL = Step size H used in scaling of Nordsieck array YH.
+!         (If IORD = +1, DVJUST assumes that HSCAL = TAU(1).)
+! See References 1 and 2 for details.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: IORD, LDYH
+! ..
+! .. Array Arguments ..
+        KPP_REAL, INTENT (INOUT) :: YH(LDYH,*)
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: ALPH0, ALPH1, HSUM, PROD, T1, XI, XIOLD
+        INTEGER :: I, IBACK, J, JP1, LP1, NQM1, NQM2, NQP1
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC REAL
+! ..
+! .. FIRST EXECUTABLE STATEMENT DVJUST
+! ..
+        IF ((NQ==2) .AND. (IORD/=1)) RETURN
+        NQM1 = NQ - 1
+        NQM2 = NQ - 2
+        GOTO (10,30) METH
+
+!       Nonstiff option.
+
+!       Check to see if the order is being increased or decreased.
+10      CONTINUE
+        IF (IORD==1) GOTO 20
+!       Order decrease.
+        EL(1:LMAX) = ZERO
+        EL(2) = ONE
+        HSUM = ZERO
+        DO J = 1, NQM2
+!         Construct coefficients of x*(x+xi(1))*...*(x+xi(j)).
+          HSUM = HSUM + TAU(J)
+          XI = HSUM/HSCAL
+          JP1 = J + 1
+          DO IBACK = 1, JP1
+            I = (J+3) - IBACK
+            EL(I) = EL(I)*XI + EL(I-1)
+          END DO
+        END DO
+!       Construct coefficients of integrated polynomial.
+        DO J = 2, NQM1
+          EL(J+1) = REAL(NQ)*EL(J)/REAL(J)
+        END DO
+!       Subtract correction terms from YH array.
+        DO J = 3, NQ
+          DO I = 1, N
+            YH(I,J) = YH(I,J) - YH(I,L)*EL(J)
+          END DO
+        END DO
+        RETURN
+!       Order increase.
+!       Zero out next column in YH array.
+20      CONTINUE
+        LP1 = L + 1
+        YH(1:N,LP1) = ZERO
+        RETURN
+
+!       Stiff option.
+
+!       Check to see if the order is being increased or decreased.
+30      CONTINUE
+        IF (IORD==1) GOTO 40
+!       Order decrease.
+        EL(1:LMAX) = ZERO
+        EL(3) = ONE
+        HSUM = ZERO
+        DO J = 1, NQM2
+!     Construct coefficients of x*x*(x+xi(1))*...*(x+xi(j)).
+          HSUM = HSUM + TAU(J)
+          XI = HSUM/HSCAL
+          JP1 = J + 1
+          DO IBACK = 1, JP1
+            I = (J+4) - IBACK
+            EL(I) = EL(I)*XI + EL(I-1)
+          END DO
+        END DO
+!       Subtract correction terms from YH array.
+        DO J = 3, NQ
+          YH(1:N,J) = YH(1:N,J) - YH(1:N,L)*EL(J)
+        END DO
+        RETURN
+!       Order increase.
+40      EL(1:LMAX) = ZERO
+        EL(3) = ONE
+        ALPH0 = -ONE
+        ALPH1 = ONE
+        PROD = ONE
+        XIOLD = ONE
+        HSUM = HSCAL
+        IF (NQ==1) GOTO 50
+        DO J = 1, NQM1
+!       Construct coefficients of x*x*(x+xi(1))*...*(x+xi(j)).
+          JP1 = J + 1
+          HSUM = HSUM + TAU(JP1)
+          XI = HSUM/HSCAL
+          PROD = PROD*XI
+          ALPH0 = ALPH0 - ONE/REAL(JP1)
+          ALPH1 = ALPH1 + ONE/XI
+          DO IBACK = 1, JP1
+            I = (J+4) - IBACK
+            EL(I) = EL(I)*XIOLD + EL(I-1)
+          END DO
+          XIOLD = XI
+        END DO
+50      CONTINUE
+        T1 = (-ALPH0-ALPH1)/PROD
+!       Load column L+1 in YH array.
+        LP1 = L + 1
+        YH(1:N,LP1) = T1*YH(1:N,LMAX)
+!       Add correction terms to YH array.
+        NQP1 = NQ + 1
+        DO J = 3, NQP1
+! Original:
+!         CALL DAXPY_F90(N,EL(J),YH(1,LP1),1,YH(1,J),1)
+          CALL DAXPY_F90(N,EL(J),YH(1:N,LP1),1,YH(1:N,J),1)
+        END DO
+        RETURN
+
+      END SUBROUTINE DVJUST
+!_______________________________________________________________________
+
+      SUBROUTINE DVNLSD(Y,YH,LDYH,SAVF,EWT,ACOR,IWM,WM,F,JAC,NFLAG,&
+        ATOL,ITOL)
+! ..
+! This is the nonlinear system solver for dense and banded solutions.
+! ..
+! Subroutine DVNLSD is a nonlinear system solver which uses functional
+! iteration or a chord (modified Newton) method. For the chord method
+! direct linear algebraic system solvers are used. Subroutine DVNLSD
+! then handles the corrector phase of this integration package.
+! Communication with DVNLSD is done with the following variables. (For
+! more details, please see the comments in the driver subroutine.)
+! Y          = The dependent variable, a vector of length N, input.
+! YH         = The Nordsieck (Taylor) array, LDYH by LMAX, input
+!              and output. On input, it contains predicted values.
+! LDYH       = A constant >= N, the first dimension of YH, input.
+! SAVF       = A work array of length N.
+! EWT        = An error weight vector of length N, input.
+! ACOR       = A work array of length N, used for the accumulated
+!              corrections to the predicted y vector.
+! WM,IWM     = Real and integer work arrays associated with matrix
+!              operations in chord iteration (MITER /= 0).
+! F          = Dummy name for user supplied routine for f.
+! JAC        = Dummy name for user supplied Jacobian routine.
+! NFLAG      = Input/output flag, with values and meanings as follows:
+!              INPUT
+!                  0 first call for this time step.
+!                 -1 convergence failure in previous call to DVNLSD.
+!                 -2 error test failure in DVSTEP.
+!              OUTPUT
+!                  0 successful completion of nonlinear solver.
+!                 -1 convergence failure or singular matrix.
+!                 -2 unrecoverable error in matrix preprocessing
+!                    (cannot occur here).
+!                 -3 unrecoverable error in solution (cannot occur
+!                    here).
+! IPUP       = Own variable flag with values and meanings as follows:
+!              0,          do not update the Newton matrix.
+!              MITER /= 0  update Newton matrix, because it is the
+!                          initial step, order was changed, the error
+!                          test failed, or an update is indicated by
+!                          the scalar RC or step counter NST.
+! For more details, see comments in driver subroutine.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: ITOL, LDYH
+        INTEGER, INTENT (INOUT) :: NFLAG
+! ..
+! .. Array Arguments ..
+        KPP_REAL, INTENT (INOUT) :: ACOR(*), EWT(*), SAVF(*), &
+          WM(*), Y(*), YH(LDYH,*)
+        KPP_REAL, INTENT (IN) :: ATOL(*)
+        INTEGER, INTENT (INOUT) :: IWM(*)
+! ..
+! .. Subroutine Arguments ..
+        EXTERNAL F, JAC
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: ACNRMNEW, CSCALE, DCON, DEL, DELP
+        INTEGER :: I, IERPJ, IERSL, M
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, MAX, MIN
+! ..
+! .. FIRST EXECUTABLE STATEMENT DVNLSD
+! ..
+! On the first step, on a change of method order, or after a
+! nonlinear convergence failure with NFLAG = -2, set IPUP = MITER
+! to force a Jacobian update when MITER /= 0.
+        IF (JSTART==0) NSLP = 0
+        IF (NFLAG==0) ICF = 0
+        IF (NFLAG==-2) IPUP = MITER
+        IF ((JSTART==0) .OR. (JSTART==-1)) IPUP = MITER
+!     If this is functional iteration, set CRATE = 1 and drop to 220
+        IF (MITER==0) THEN
+          CRATE = ONE
+          GOTO 10
+        END IF
+
+! RC is the ratio of new to old values of the coefficient H/EL(2)=h/l1.
+! When RC differs from 1 by more than CCMAX, IPUP is set to MITER to
+! force DVJAC to be called, if a Jacobian is involved. In any case,
+! DVJAC is called at least every MSBP steps.
+
+        DRC = ABS(RC-ONE)
+        IF (DRC>CCMAX .OR. NST>=NSLP+MSBP) IPUP = MITER
+
+! Up to MAXCOR corrector iterations are taken. A convergence test is
+! made on the r.m.s. norm of each correction, weighted by the error
+! weight vector EWT. The sum of the corrections is accumulated in the
+! vector ACOR(i). The YH array is not altered in the corrector loop.
+
+10      M = 0
+        DELP = ZERO
+! Original:
+!       CALL DCOPY_F90(N,YH(1,1),1,Y,1)
+        CALL DCOPY_F90(N,YH(1:N,1),1,Y(1:N),1)
+        CALL F(N,TN,Y,SAVF)
+        NFE = NFE + 1
+        IF (BOUNDS) THEN
+          DO I = 1, NDX
+            IF (ABS(YH(IDX(I),1)-LB(I))<=ZERO) SAVF(IDX(I)) = &
+               MAX(SAVF(IDX(I)),ZERO)
+            IF (ABS(YH(IDX(I),1)-UB(I))<=ZERO) SAVF(IDX(I)) = &
+               MIN(SAVF(IDX(I)),ZERO)
+          END DO
+        END IF
+        IF (IPUP<=0) GOTO 20
+
+! If indicated, the matrix P = I - h*rl1*J is reevaluated and
+! preprocessed before starting the corrector iteration. IPUP
+! is set to 0 as an indicator that this has been done.
+
+        CALL DVJAC(Y,YH,LDYH,EWT,ACOR,SAVF,WM,IWM,F,JAC,IERPJ, &
+          ATOL,ITOL)
+        IPUP = 0
+        RC = ONE
+        DRC = ZERO
+        CRATE = ONE
+        NSLP = NST
+!       If matrix is singular, take error return to force cut in
+!       step size.
+        IF (IERPJ/=0) GOTO 70
+20      ACOR(1:N) = ZERO
+!       This is a looping point for the corrector iteration.
+30      IF (MITER/=0) GOTO 40
+
+! In the case of functional iteration, update Y directly from
+! the result of the last function evaluation.
+
+        SAVF(1:N) = RL1*(H*SAVF(1:N)-YH(1:N,2))
+        Y(1:N) = SAVF(1:N) - ACOR(1:N)
+        DEL = DVNORM(N,Y,EWT)
+        Y(1:N) = YH(1:N,1) + SAVF(1:N)
+        CALL DCOPY_F90(N,SAVF,1,ACOR,1)
+        GOTO 50
+
+! In the case of the chord method, compute the corrector error, and
+! solve the linear system with that as right-hand side and P as
+! coefficient matrix. The correction is scaled by the factor
+! 2/(1+RC) to account for changes in h*rl1 since the last DVJAC call.
+
+40      Y(1:N) = (RL1*H)*SAVF(1:N) - (RL1*YH(1:N,2)+ACOR(1:N))
+        CALL DVSOL(WM,IWM,Y,IERSL)
+        NNI = NNI + 1
+        IF (IERSL>0) GOTO 60
+        IF (METH==2 .AND. ABS(RC-ONE)>ZERO) THEN
+          CSCALE = TWO/(ONE+RC)
+          CALL DSCAL_F90(N,CSCALE,Y,1)
+        END IF
+        DEL = DVNORM(N,Y,EWT)
+        CALL DAXPY_F90(N,ONE,Y,1,ACOR,1)
+        Y(1:N) = YH(1:N,1) + ACOR(1:N)
+
+! Test for convergence. If M > 0, an estimate of the convergence
+! rate constant is stored in CRATE, and this is used in the test.
+
+50      IF (M/=0) CRATE = MAX(CRDOWN*CRATE,DEL/DELP)
+        DCON = DEL*MIN(ONE,CRATE)/TQ(4)
+        IF (DCON<=ONE) GOTO 80
+        M = M + 1
+        IF (M==MAXCOR) GOTO 60
+        IF (M>=2 .AND. DEL>RDIV*DELP) GOTO 60
+        DELP = DEL
+        CALL F(N,TN,Y,SAVF)
+        NFE = NFE + 1
+        IF (BOUNDS) THEN
+          DO I = 1, NDX
+            IF (ABS(YH(IDX(I),1)-LB(I))<=ZERO) SAVF(IDX(I)) = &
+               MAX(SAVF(IDX(I)),ZERO)
+            IF (ABS(YH(IDX(I),1)-UB(I))<=ZERO) SAVF(IDX(I)) = &
+               MIN(SAVF(IDX(I)),ZERO)
+          END DO
+        END IF
+        GOTO 30
+
+60      IF (MITER==0 .OR. JCUR==1) GOTO 70
+        ICF = 1
+        IPUP = MITER
+        GOTO 10
+
+70      CONTINUE
+        NFLAG = -1
+        ICF = 2
+        IPUP = MITER
+        RETURN
+
+!       Return for successful step.
+80      CONTINUE
+
+!       Enforce bounds.
+        IF (BOUNDS) THEN
+          CHANGED_ACOR = .FALSE.
+          IF (M==0) THEN
+            ACNRM = DEL
+          ELSE
+            ACNRM = DVNORM(N,ACOR,EWT)
+          END IF
+          IF (MITER/=0) THEN
+!           Since Y(:) = YH(:,1) + ACOR(:) ...
+            DO I = 1, NDX
+              IF (Y(IDX(I))<LB(I)) THEN
+                CHANGED_ACOR = .TRUE.
+                ACOR(IDX(I)) = LB(I) - YH(IDX(I),1)
+                SAVF(IDX(I)) = ACOR(IDX(I))
+              END IF
+              IF (Y(IDX(I))>UB(I)) THEN
+                CHANGED_ACOR = .TRUE.
+                ACOR(IDX(I)) = UB(I) - YH(IDX(I),1)
+                SAVF(IDX(I)) = ACOR(IDX(I))
+              END IF
+            END DO
+          ELSE
+!           Since Y(:) = YH(:,1) + SAVF(:) and
+!           since CALL DCOPY_F90(N,SAVF,1,ACOR,1) ...
+            DO I = 1, NDX
+              IF (Y(IDX(I))<LB(IDX(I))) THEN
+                CHANGED_ACOR = .TRUE.
+                ACOR(IDX(I)) = LB(I) - YH(IDX(I),1)
+              END IF
+              IF (Y(IDX(I))>UB(IDX(I))) THEN
+                CHANGED_ACOR = .TRUE.
+                ACOR(IDX(I)) = UB(I) - YH(IDX(I),1)
+              END IF
+            END DO
+          END IF
+          IF (CHANGED_ACOR) THEN
+            IF (M==0) THEN
+              ACNRMNEW = DEL
+            ELSE
+              ACNRMNEW = DVNORM(N,ACOR,EWT)
+            END IF
+!           ACNRM = ACNRMNEW
+            ACNRM = MAX(ACNRM,ACNRMNEW)
+          ELSE
+          END IF
+          NFLAG = 0
+          JCUR = 0
+          ICF = 0
+        ELSE
+!         No projections are required.
+          NFLAG = 0
+          JCUR = 0
+          ICF = 0
+          IF (M==0) ACNRM = DEL
+          IF (M>0) ACNRM = DVNORM(N,ACOR,EWT)
+        END IF
+        RETURN
+
+      END SUBROUTINE DVNLSD
+!_______________________________________________________________________
+
+      SUBROUTINE DVJAC(Y,YH,LDYH,EWT,FTEM,SAVF,WM,IWM,F,JAC,IERPJ, &
+        ATOL,ITOL)
+! ..
+! Compute and process the matrix P = I - h*rl1*J, where J is an
+! approximation to the Jacobian for dense and banded solutions.
+! ..
+! This is a version of DVJAC that allows use of the known nonzero
+! diagonals if it is available.
+! DVJAC is called by DVNLSD to compute and process the matrix
+! P = I - h*rl1*J, where J is an approximation to the Jacobian.
+! Here J is computed by the user-supplied routine JAC if
+! MITER = 1 or 4, or by finite differencing if MITER = 2, 3, or 5.
+! If MITER = 3, a diagonal approximation to J is used.
+! If JSV = -1, J is computed from scratch in all cases.
+! If JSV = 1 and MITER = 1, 2, 4, or 5, and if the saved value of J is
+! considered acceptable, then P is constructed from the saved J.
+! J is stored in wm and replaced by P. If MITER /= 3, P is then
+! subjected to LU decomposition in preparation for later solution
+! of linear systems with P as coefficient matrix. This is done
+! by DGEFA_F90 if MITER = 1 or 2, and by DGBFA_F90 if MITER = 4 or 5.
+! Communication with DVJAC is done with the following variables.
+! (For more details, please see the comments in the driver subroutine.)
+! Y          = Vector containing predicted values on entry.
+! YH         = The Nordsieck array, an LDYH by LMAX array, input.
+! LDYH       = A constant >= N, the first dimension of YH, input.
+! EWT        = An error weight vector of length N.
+! SAVF       = Array containing f evaluated at predicted y, input.
+! WM         = Real work space for matrices. In the output, it contains
+!              the inverse diagonal matrix if MITER = 3 and the LU
+!              decomposition of P if MITER is 1, 2, 4, or 5.
+!              Storage of matrix elements starts at WM(1).
+!              Storage of the saved Jacobian starts at WM(LOCJS).
+! IWM        = Integer work space containing pivot information,
+!              starting at IWM(31), if MITER is 1, 2, 4, or 5.
+!              IWM also contains band parameters ML = IWM(1) and
+!              MU = IWM(2) if MITER is 4 or 5.
+! F          = Dummy name for the user supplied subroutine for f.
+! JAC        = Dummy name for the user supplied Jacobian subroutine.
+! RL1        = 1/EL(2) (input).
+! IERPJ      = Output error flag, = 0 if no trouble, 1 if the P
+!              matrix is found to be singular.
+! JCUR       = Output flag to indicate whether the Jacobian matrix
+!              (or approximation) is now current.
+!              JCUR = 0 means J is not current.
+!              JCUR = 1 means J is current.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (INOUT) :: IERPJ
+        INTEGER, INTENT (IN) :: LDYH, ITOL
+! ..
+! .. Array Arguments ..
+        KPP_REAL, INTENT (INOUT) :: EWT(*), FTEM(*), SAVF(*), WM(*), &
+          Y(*),YH(LDYH,*)
+        KPP_REAL, INTENT (IN) :: ATOL(*)
+        INTEGER, INTENT (INOUT) :: IWM(*)
+! ..
+! .. Subroutine Arguments ..
+        EXTERNAL F, JAC
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: CON, DI, FAC, HRL1, R, R0, SRUR, YI, YJ, YJJ
+        INTEGER :: I, I1, I2, IER, II, J, J1, JJ, JJ1, JJ2, JOK, K,   &
+          K1, K2, LENP, MBA, MBAND, MEB1, MEBAND, ML, ML1, MU, NG, NP1
+!         K1, K2, LENP, MBA, MBAND, MEB1, MEBAND, ML, ML3, MU, NG, NP1
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, MAX, MIN, REAL
+! ..
+! .. FIRST EXECUTABLE STATEMENT DVJAC
+! ..
+        IERPJ = 0
+        HRL1 = H*RL1
+!       See whether J should be evaluated (JOK = -1) or not (JOK = 1).
+        JOK = JSV
+        IF (JSV==1) THEN
+          IF (NST==0 .OR. NST>NSLJ+MSBJ) JOK = -1
+          IF (ICF==1 .AND. DRC<CCMXJ) JOK = -1
+          IF (ICF==2) JOK = -1
+        END IF
+        IF (J_IS_CONSTANT .AND. J_HAS_BEEN_COMPUTED) JOK = 1
+!       End of setting JOK.
+
+        IF (JOK==-1 .AND. MITER==1) THEN
+!         If JOK = -1 and MITER = 1, call JAC to evaluate Jacobian.
+          NJE = NJE + 1
+          NSLJ = NST
+          JCUR = 1
+          LENP = N*N
+!         WM(3:LENP+2) = ZERO
+          WM(1:LENP) = ZERO
+!         CALL JAC(N,TN,Y,0,0,WM(3),N)
+          CALL JAC(N,TN,Y,0,0,WM(1),N)
+          IF (J_IS_CONSTANT) J_HAS_BEEN_COMPUTED = .TRUE.
+!         IF (JSV==1) CALL DCOPY_F90(LENP,WM(3),1,WM(LOCJS),1)
+          IF (JSV==1) CALL DCOPY_F90(LENP,WM(1),1,WM(LOCJS),1)
+        END IF
+
+!       Set flag to indicate how the YSCALE vector will be set for
+!       JACSP.
+        LIKE_ORIGINAL_VODE = .FALSE.
+
+        IF (JOK==-1 .AND. MITER==2) THEN
+           IF (USE_JACSP) THEN
+!             Approximate the Jacobian using Doug Salane's JACSP.
+              NSLJ = NST
+              JCUR = 1
+              IOPTDS(1) = 0
+              IOPTDS(2) = 0
+              IOPTDS(3) = 1
+              IOPTDS(5) = 0
+!             INFORDS(4) was initialized in DVODE.
+              LWKDS  = 3 * N
+              LIWKDS = 50 + N
+              NRFJACDS = N
+              NCFJACDS = N
+              MAXGRPDS = N
+!             Calculate the YSCALEDS vector for JACSPDV.
+              IF (LIKE_ORIGINAL_VODE) THEN
+                 FAC = DVNORM(N,SAVF,EWT)
+!                JACSPDB multiplies YSCALEDS(*) BY UROUND**0.825:
+!                R0 = THOU*ABS(H)*UROUND*REAL(N)*FAC
+                 R0 = THOU*ABS(H)*REAL(N)*FAC
+                 IF (ABS(R0)<=ZERO) R0 = ONE
+                 SRUR = WM1
+                 DO J = 1, N
+!                   JACSPDB multiplies YSCALEDS(*) BY UROUND**0.825:
+!                   R = MAX(ABS(Y(J)),R0/EWT(J))
+                    R = MAX(ABS(Y(J))/U325,(R0/EWT(J))*U125)
+                    YSCALEDS(J) = R
+                 END DO
+              ELSE
+                 IF (ITOL == 1 .OR. ITOL == 3) THEN
+                    DO J = 1, N
+                       YSCALEDS(J) = MAX(ABS(Y(J)),ATOL(1),UROUND)
+                    END DO
+                 ELSE
+                    DO J = 1, N
+                       YSCALEDS(J) = MAX(ABS(Y(J)),ATOL(J),UROUND)
+                    END DO
+                 END IF
+              END IF
+
+              CALL JACSPDB(F,N,TN,Y,SAVF,WM(1),NRFJACDS, &
+                YSCALEDS,FACDS,IOPTDS,WKDS,LWKDS,IWKDS,LIWKDS, &
+                MAXGRPDS,NGRPDS,JPNTRDS,INDROWDS)
+              NFE = NFE + IWKDS(7)
+              NJE = NJE + 1
+           ELSE
+!             If MITER = 2, make N calls to F to approximate the Jacobian.
+              NSLJ = NST
+              JCUR = 1
+              FAC = DVNORM(N,SAVF,EWT)
+              R0 = THOU*ABS(H)*UROUND*REAL(N)*FAC
+              IF (ABS(R0)<=ZERO) R0 = ONE
+              SRUR = WM1
+!             J1 = 2
+              J1 = 0
+              DO J = 1, N
+                 YJ = Y(J)
+                 R = MAX(SRUR*ABS(YJ),R0/EWT(J))
+                 Y(J) = Y(J) + R
+                 FAC = ONE/R
+                 CALL F(N,TN,Y,FTEM)
+                 DO I = 1, N
+                   WM(I+J1) = (FTEM(I)-SAVF(I))*FAC
+                 END DO
+                 Y(J) = YJ
+                 J1 = J1 + N
+              END DO
+              NFE = NFE + N
+              NJE = NJE + 1
+           END IF
+           LENP = N*N
+!          IF (JSV==1) CALL DCOPY_F90(LENP,WM(3),1,WM(LOCJS),1)
+           IF (JSV==1) CALL DCOPY_F90(LENP,WM(1),1,WM(LOCJS),1)
+           IF (J_IS_CONSTANT) J_HAS_BEEN_COMPUTED = .TRUE.
+        END IF
+
+        IF (JOK==1 .AND. (MITER==1 .OR. MITER==2)) THEN
+          JCUR = 0
+          LENP = N*N
+!         CALL DCOPY_F90(LENP,WM(LOCJS),1,WM(3),1)
+          CALL DCOPY_F90(LENP,WM(LOCJS),1,WM(1),1)
+        END IF
+
+        IF (MITER==1 .OR. MITER==2) THEN
+!         Multiply Jacobian by scalar, add identity, and do LU
+!         decomposition.
+          CON = -HRL1
+!         CALL DSCAL_F90(LENP,CON,WM(3),1)
+          CALL DSCAL_F90(LENP,CON,WM(1),1)
+!         J = 3
+          J = 1
+          NP1 = N + 1
+          DO I = 1, N
+            WM(J) = WM(J) + ONE
+            J = J + NP1
+          END DO
+          NLU = NLU + 1
+! ______________________________________________________________________
+
+!         CALL DGEFA_F90(WM(3),N,N,IWM(31),IER)
+          CALL DGEFA_F90(WM(1),N,N,IWM(31),IER)
+          IF (IER/=0) IERPJ = 1
+! *****LAPACK build change point. Replace above with these statements.
+!        IF (.NOT.USE_LAPACK) THEN
+!!         CALL DGEFA_f90(WM(3),N,N,IWM(31),IER)
+!          CALL DGEFA_f90(WM(1),N,N,IWM(31),IER)
+!          IF (IER /= 0) IERPJ = 1
+!        ELSE
+!!         CALL DGETRF(N,N,WM(3),N,IWM(31),IER)
+!          CALL DGETRF(N,N,WM(1),N,IWM(31),IER)
+!          IF (IER /= 0) IERPJ = 1
+!        END IF
+! ______________________________________________________________________
+
+          RETURN
+        END IF
+!       End of code block for MITER = 1 or 2.
+
+        IF (MITER==3) THEN
+!         If MITER = 3, construct a diagonal approximation to
+!         J and P.
+          NJE = NJE + 1
+          JCUR = 1
+          WM2 = HRL1
+          R = RL1*PT1
+          Y(1:N) = Y(1:N) + R*(H*SAVF(1:N)-YH(1:N,2))
+!         CALL F(N,TN,Y,WM(3))
+          CALL F(N,TN,Y,WM(1))
+          NFE = NFE + 1
+          DO 10 I = 1, N
+            R0 = H*SAVF(I) - YH(I,2)
+!           DI = PT1*R0 - H*(WM(I+2)-SAVF(I))
+            DI = PT1*R0 - H*(WM(I)-SAVF(I))
+!           WM(I+2) = ONE
+            WM(I) = ONE
+            IF (ABS(R0)<UROUND/EWT(I)) GOTO 10
+            IF (ABS(DI)<=ZERO) GOTO 20
+!           WM(I+2) = PT1*R0/DI
+            WM(I) = PT1*R0/DI
+10        END DO
+          RETURN
+20        IERPJ = 1
+          RETURN
+        END IF
+!       End of code block for MITER = 3.
+
+!       Set constants for MITER = 4 or 5.
+        ML = IWM(1)
+        MU = IWM(2)
+!       ML3 = ML + 3
+        ML1 = ML + 1
+        MBAND = ML + MU + 1
+        MEBAND = MBAND + ML
+        LENP = MEBAND*N
+
+        IF (JOK==-1 .AND. MITER==4) THEN
+!       If JOK = -1 and MITER = 4, call JAC to evaluate Jacobian.
+          NJE = NJE + 1
+          NSLJ = NST
+          JCUR = 1
+!         WM(3:LENP+2) = ZERO
+          WM(1:LENP) = ZERO
+!         CALL JAC(N,TN,Y,ML,MU,WM(ML3),MEBAND)
+          CALL JAC(N,TN,Y,ML,MU,WM(ML1),MEBAND)
+          IF (J_IS_CONSTANT) J_HAS_BEEN_COMPUTED = .TRUE.
+!         IF (JSV==1) CALL DACOPY(MBAND,N,WM(ML3),MEBAND,WM(LOCJS),MBAND)
+          IF (JSV==1) CALL DACOPY(MBAND,N,WM(ML1),MEBAND,WM(LOCJS),MBAND)
+        END IF
+
+        IF (JOK==-1 .AND. MITER==5) THEN
+!       If MITER = 5, make ML+MU+1 calls to F to approximate the Jacobian
+!       unless the user has specified which sub and super diagonals are
+!       nonzero. In the latter case NSUBS+NSUPS+1 calls will be made.
+
+!         If the subdiagonals are known, use that information to build
+!         the Jacobian matrix.
+          IF ((SUBS .OR. SUPS) .OR. BNGRP >= MBAND) GOTO 60
+
+!         Otherwise, use the original algorithm.
+          IF (USE_JACSP) THEN
+!            Approximate the Jacobian using Doug Salane's JACSP.
+             NSLJ = NST
+             JCUR = 1
+             WM(1:LENP) = ZERO
+             IOPTDS(1) = 1
+             IOPTDS(2) = MBAND
+             IOPTDS(3) = 1
+             IOPTDS(5) = ML
+!            INFORDS(4) was initialized in DVODE.
+             LWKDS  = 3 * N
+             LIWKDS = 50 + N
+!            NRFJACDS = MEBAND*N
+!            NCFJACDS = 1
+             NRFJACDS = MEBAND
+             NCFJACDS = N
+             MBA = MIN(MBAND,N)
+             MAXGRPDS = MBA
+!            Calculate the YSCALEDS vector for JACSPDV.
+             IF (LIKE_ORIGINAL_VODE) THEN
+                FAC = DVNORM(N,SAVF,EWT)
+!               JACSPDB multiplies YSCALEDS(*) BY UROUND**0.825:
+!               R0 = THOU*ABS(H)*UROUND*REAL(N)*FAC
+                R0 = THOU*ABS(H)*REAL(N)*FAC
+                IF (ABS(R0)<=ZERO) R0 = ONE
+                SRUR = WM1
+                DO J = 1, N
+!                  JACSPDB multiplies YSCALEDS(*) BY UROUND**0.825:
+!                  R = MAX(ABS(Y(J)),R0/EWT(J))
+                   R = MAX(ABS(Y(J))/U325,(R0/EWT(J))*U125)
+                   YSCALEDS(J) = R
+                END DO
+             ELSE
+                IF (ITOL == 1 .OR. ITOL == 3) THEN
+                   DO J = 1, N
+                      YSCALEDS(J) = MAX(ABS(Y(J)),ATOL(1),UROUND)
+                   END DO
+                ELSE
+                   DO J = 1, N
+                      YSCALEDS(J) = MAX(ABS(Y(J)),ATOL(J),UROUND)
+                   END DO
+                END IF
+             END IF
+             CALL JACSPDB(F,N,TN,Y,SAVF,WM(1),NRFJACDS, &
+               YSCALEDS,FACDS,IOPTDS,WKDS,LWKDS,IWKDS,LIWKDS,  &
+               MAXGRPDS,NGRPDS,JPNTRDS,INDROWDS)
+             NFE = NFE + IWKDS(7)
+             NJE = NJE + 1
+          ELSE
+             NSLJ = NST
+             JCUR = 1
+             MBA = MIN(MBAND,N)
+             MEB1 = MEBAND - 1
+             SRUR = WM1
+             FAC = DVNORM(N,SAVF,EWT)
+             R0 = THOU*ABS(H)*UROUND*REAL(N)*FAC
+             IF (ABS(R0)<=ZERO) R0 = ONE
+             DO J = 1, MBA
+               DO I = J, N, MBAND
+                 YI = Y(I)
+                 R = MAX(SRUR*ABS(YI),R0/EWT(I))
+                 Y(I) = Y(I) + R
+               END DO
+               CALL F(N,TN,Y,FTEM)
+               DO JJ = J, N, MBAND
+                 Y(JJ) = YH(JJ,1)
+                 YJJ = Y(JJ)
+                 R = MAX(SRUR*ABS(YJJ),R0/EWT(JJ))
+                 FAC = ONE/R
+                 I1 = MAX(JJ-MU,1)
+                 I2 = MIN(JJ+ML,N)
+!                II = JJ*MEB1 - ML + 2
+                 II = JJ*MEB1 - ML
+                 DO I = I1, I2
+                   WM(II+I) = (FTEM(I)-SAVF(I))*FAC
+                 END DO
+               END DO
+             END DO
+             NFE = NFE + MBA
+             NJE = NJE + 1
+          END IF
+          IF (J_IS_CONSTANT) J_HAS_BEEN_COMPUTED = .TRUE.
+          GOTO 90
+   60     CONTINUE
+
+!         User supplied diagonals information is available.
+!         WM(3:LENP+2) = ZERO
+          WM(1:LENP) = ZERO
+          NJE = NJE + 1
+          NSLJ = NST
+          JCUR = 1
+          MBA = MIN(MBAND,N)
+          MEB1 = MEBAND - 1
+          SRUR = WM1
+          FAC = DVNORM(N,SAVF,EWT)
+          R0 = THOU*ABS(H)*UROUND*REAL(N)*FAC
+          IF (ABS(R0)<=ZERO) R0 = ONE
+!         For each group of columns...
+          DO NG = 1, BNGRP
+!            Find the first and last columns in the group.
+             JJ1 = BIGP(NG)
+             JJ2 = BIGP(NG+1) - 1
+!            For each column in this group...
+             DO JJ = JJ1, JJ2
+                J = BJGP(JJ)
+                R = MAX(SRUR*ABS(Y(J)),R0/EWT(J))
+                Y(J) = Y(J) + R
+             END DO
+             CALL F(N,TN,Y,FTEM)
+!            For each column in this group...
+             DO JJ = JJ1, JJ2
+                 J = BJGP(JJ)
+                 Y(J) = YH(J,1)
+                 R = MAX(SRUR*ABS(Y(J)),R0/EWT(J))
+                 FAC = ONE/R
+                 IF (BUILD_IAJA) THEN
+!                   Use the IAB, JAB sparse structure arrays to
+!                   determine the first and last nonzeros in
+!                   column J.
+                    K1 = IAB(J)
+                    K2 = IAB(J+1) - 1
+                 ELSE
+!                   Extract the positions of the first and
+!                   last nonzeros in this column directly.
+                    CALL BANDED_GET_BJNZ(N,ML,MU,J,IWM(31),I)
+                    DO K = 1, N
+                       IF (IWM(30+K) /= 0) THEN
+                          K1 = K
+                          GOTO 70
+                       END IF
+                    END DO
+   70               CONTINUE
+                    DO K = N, 1, -1
+                       IF (IWM(30+K) /= 0) THEN
+                          K2 = K
+                          GOTO 80
+                       END IF
+                    END DO
+   80               CONTINUE
+                 END IF
+!                Load the nonzeros for column J in the banded matrix.
+                 IF (BUILD_IAJA) THEN
+                    DO K = K1, K2
+                       I = JAB(K)
+!                      II = J * MEB1 - ML + 2
+                       II = J * MEB1 - ML
+                       WM(II+I) = (FTEM(I)-SAVF(I))*FAC
+                    END DO
+                 ELSE
+                    DO K = K1, K2
+                       I = IWM(30+K)
+                       IF (I /= 0) THEN
+!                         II = J * MEB1 - ML + 2
+                          II = J * MEB1 - ML
+                          WM(II+I) = (FTEM(I)-SAVF(I))*FAC
+                       END IF
+                    END DO
+                 END IF
+             END DO
+          END DO
+          NFE = NFE + BNGRP
+          IF (J_IS_CONSTANT) J_HAS_BEEN_COMPUTED = .TRUE.
+   90     CONTINUE
+!         IF (JSV==1) CALL DACOPY(MBAND,N,WM(ML3),MEBAND,WM(LOCJS),MBAND)
+          IF (JSV==1) CALL DACOPY(MBAND,N,WM(ML1),MEBAND,WM(LOCJS),MBAND)
+        END IF
+
+        IF (JOK==1) THEN
+          JCUR = 0
+!         CALL DACOPY(MBAND,N,WM(LOCJS),MBAND,WM(ML3),MEBAND)
+          CALL DACOPY(MBAND,N,WM(LOCJS),MBAND,WM(ML1),MEBAND)
+        END IF
+
+!       Multiply Jacobian by scalar, add identity, and do LU
+!       decomposition.
+        CON = -HRL1
+!       CALL DSCAL_F90(LENP,CON,WM(3),1)
+        CALL DSCAL_F90(LENP,CON,WM(1),1)
+!       II = MBAND + 2
+        II = MBAND
+        DO I = 1, N
+          WM(II) = WM(II) + ONE
+          II = II + MEBAND
+        END DO
+        NLU = NLU + 1
+! ______________________________________________________________________
+
+!       CALL DGBFA_F90(WM(3),MEBAND,N,ML,MU,IWM(31),IER)
+        CALL DGBFA_F90(WM(1),MEBAND,N,ML,MU,IWM(31),IER)
+        IF (IER/=0) IERPJ = 1
+! *****LAPACK build change point. Replace above with these statements.
+!       IF (.NOT.USE_LAPACK) THEN
+!!        CALL DGBFA_f90(WM(3),MEBAND,N,ML,MU,IWM(31),IER)
+!         CALL DGBFA_f90(WM(1),MEBAND,N,ML,MU,IWM(31),IER)
+!         IF (IER /= 0) IERPJ = 1
+!       ELSE
+!!        CALL DGBTRF(N,N,ML,MU,WM(3),MEBAND,IWM(31),IER)
+!         CALL DGBTRF(N,N,ML,MU,WM(1),MEBAND,IWM(31),IER)
+!         IF (IER /= 0) IERPJ = 1
+!       END IF
+! ______________________________________________________________________
+       RETURN
+!      End of code block for MITER = 4 or 5.
+
+      END SUBROUTINE DVJAC
+!_______________________________________________________________________
+
+      SUBROUTINE DACOPY(NROW,NCOL,A,NROWA,B,NROWB)
+! ..
+! Copy one array to another.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: NCOL, NROW, NROWA, NROWB
+! ..
+! .. Array Arguments ..
+        KPP_REAL, INTENT (IN) :: A(NROWA,NCOL)
+        KPP_REAL, INTENT (INOUT) :: B(NROWB,NCOL)
+! ..
+! .. Local Scalars ..
+        INTEGER :: IC
+! ..
+! .. FIRST EXECUTABLE STATEMENT DACOPY
+! ..
+        DO IC = 1, NCOL
+          CALL DCOPY_F90(NROW,A(1,IC),1,B(1,IC),1)
+        END DO
+        RETURN
+
+      END SUBROUTINE DACOPY
+!_______________________________________________________________________
+
+      SUBROUTINE DVSOL(WM,IWM,X,IERSL)
+! ..
+! Manage the solution of the linear system arising from a chord
+! iteration for dense and banded solutions.
+! ..
+! This routine manages the solution of the linear system arising from
+! a chord iteration. It is called if MITER /= 0.
+! If MITER is 1 or 2, it calls DGESL_F90 to accomplish this.
+! If MITER = 3 it updates the coefficient H*RL1 in the diagonal
+! matrix, and then computes the solution.
+! If MITER is 4 or 5, it calls DGBSL_F90.
+! Communication with DVSOL uses the following variables:
+! WM    = Real work space containing the inverse diagonal matrix if
+!         MITER = 3 and the LU decomposition of the matrix otherwise.
+!         Storage of matrix elements starts at WM(1).
+!         WM also contains the following matrix-related data:
+!         WM1 = SQRT(UROUND) (not used here),
+!         WM2 = HRL1, the previous value of H*RL1, used if MITER = 3.
+! IWM   = Integer work space containing pivot information, starting at
+!         IWM(31), if MITER is 1, 2, 4, or 5. IWM also contains band
+!         parameters ML = IWM(1) and MU = IWM(2) if MITER is 4 or 5.
+! X     = The right-hand side vector on input, and the solution vector
+!         on output, of length N.
+! IERSL = Output flag. IERSL = 0 if no trouble occurred.
+!         IERSL = 1 if a singular matrix arose with MITER = 3.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (INOUT) :: IERSL
+! ..
+! .. Array Arguments ..
+        KPP_REAL, INTENT (INOUT) :: WM(*), X(*)
+        INTEGER, INTENT (INOUT) :: IWM(*)
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: DI, HRL1, PHRL1, R
+        INTEGER :: I, MEBAND, ML, MU
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS
+! ..
+! ______________________________________________________________________
+
+! *****LAPACK build change point. Insert this statement.
+!       INTEGER INFO
+!       CHARACTER*1 TRANS
+! ______________________________________________________________________
+
+! .. FIRST EXECUTABLE STATEMENT DVSOL
+! ..
+        IERSL = 0
+        GOTO (10,10,20,50,50) MITER
+
+10      CONTINUE
+! ______________________________________________________________________
+
+!       CALL DGESL_F90(WM(3),N,N,IWM(31),X,0)
+        CALL DGESL_F90(WM(1),N,N,IWM(31),X,0)
+! *****LAPACK build change point. Replace above with these statements.
+!       IF (.NOT.USE_LAPACK) THEN
+!!         CALL DGESL_f90(WM(3),N,N,IWM(31),X,0)
+!          CALL DGESL_f90(WM(1),N,N,IWM(31),X,0)
+!       ELSE
+!          TRANS = 'N'
+!!         CALL DGETRS(TRANS,N,1,WM(3),N,IWM(31),X,N,INFO)
+!          CALL DGETRS(TRANS,N,1,WM(1),N,IWM(31),X,N,INFO)
+!          IF (INFO /= 0) THEN
+!             WRITE(6,*) 'Stopping in DVSOL with INFO = ', INFO
+!             STOP
+!          END IF
+!       END IF
+! ______________________________________________________________________
+
+        RETURN
+
+20      PHRL1 = WM2
+        HRL1 = H*RL1
+        WM2 = HRL1
+        IF (ABS(HRL1-PHRL1)<=ZERO) GOTO 30
+        R = HRL1/PHRL1
+        DO I = 1, N
+!         DI = ONE - R*(ONE-ONE/WM(I+2))
+          DI = ONE - R*(ONE-ONE/WM(I))
+          IF (ABS(DI)<=ZERO) GOTO 40
+!         WM(I+2) = ONE/DI
+          WM(I) = ONE/DI
+        END DO
+
+30      DO I = 1, N
+!         X(I) = WM(I+2)*X(I)
+          X(I) = WM(I)*X(I)
+        END DO
+        RETURN
+40      IERSL = 1
+        RETURN
+
+50      ML = IWM(1)
+        MU = IWM(2)
+        MEBAND = 2*ML + MU + 1
+! ______________________________________________________________________
+
+!       CALL DGBSL_F90(WM(3),MEBAND,N,ML,MU,IWM(31),X,0)
+        CALL DGBSL_F90(WM(1),MEBAND,N,ML,MU,IWM(31),X,0)
+! *****LAPACK build change point. Replace above with these statements.
+!       IF (.NOT.USE_LAPACK) THEN
+!!        CALL DGBSL_F90(WM(3),MEBAND,N,ML,MU,IWM(31),X,0)
+!         CALL DGBSL_F90(WM(1),MEBAND,N,ML,MU,IWM(31),X,0)
+!       ELSE
+!         TRANS = 'N'
+!!        CALL DGBTRS(TRANS,N,ML,MU,1,WM(3),MEBAND,IWM(31),X,N,INFO)
+!         CALL DGBTRS(TRANS,N,ML,MU,1,WM(1),MEBAND,IWM(31),X,N,INFO)
+!         IF (INFO /= 0) THEN
+!           WRITE(6,*) 'Stopping in DVSOL with INFO = ', INFO
+!           STOP
+!         END IF
+!       END IF
+! ______________________________________________________________________
+
+      RETURN
+
+      END SUBROUTINE DVSOL
+!_______________________________________________________________________
+
+      SUBROUTINE DVSRCO(RSAV,ISAV,JOB)
+! ..
+! Save or restore (depending on JOB) the contents of the PRIVATE
+! variable blocks, which are used internally by DVODE (not called
+! by DVODE_F90).
+! ..
+! RSAV = real array of length 49 or more.
+! ISAV = integer array of length 41 or more.
+! JOB  = flag indicating to save or restore the PRIVATE variable
+!        blocks:
+!        JOB  = 1 if PRIVATE variables is to be saved
+!                 (written to RSAV/ISAV).
+!        JOB  = 2 if PRIVATE variables is to be restored
+!                 (read from RSAV/ISAV).
+!        A call with JOB = 2 presumes a prior call with JOB = 1.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: JOB
+! ..
+! .. Array Arguments ..
+        KPP_REAL, INTENT (INOUT) :: RSAV(*)
+        INTEGER, INTENT (INOUT) :: ISAV(*)
+! ..
+! .. FIRST EXECUTABLE STATEMENT DVSRCO
+! ..
+        IF (JOB/=2) THEN
+!         Save the contents of the PRIVATE blocks.
+          RSAV(1) = ACNRM
+          RSAV(2) = CCMXJ
+          RSAV(3) = CONP
+          RSAV(4) = CRATE
+          RSAV(5) = DRC
+          RSAV(6:18) = EL(1:13)
+          RSAV(19) = ETA
+          RSAV(20) = ETAMAX
+          RSAV(21) = H
+          RSAV(22) = HMIN
+          RSAV(23) = HMXI
+          RSAV(24) = HNEW
+          RSAV(25) = HSCAL
+          RSAV(26) = PRL1
+          RSAV(27) = RC
+          RSAV(28) = RL1
+          RSAV(29:41) = TAU(1:13)
+          RSAV(42:46) = TQ(1:5)
+          RSAV(47) = TN
+          RSAV(48) = UROUND
+          RSAV(LENRV1+1) = HU
+          ISAV(1) = ICF
+          ISAV(2) = INIT
+          ISAV(3) = IPUP
+          ISAV(4) = JCUR
+          ISAV(5) = JSTART
+          ISAV(6) = JSV
+          ISAV(7) = KFLAG
+          ISAV(8) = KUTH
+          ISAV(9) = L
+          ISAV(10) = LMAX
+          ISAV(11) = LYH
+          ISAV(12) = 0
+          ISAV(13) = 0
+          ISAV(14) = 0
+          ISAV(15) = LWM
+          ISAV(16) = LIWM
+          ISAV(17) = LOCJS
+          ISAV(18) = MAXORD
+          ISAV(19) = METH
+          ISAV(20) = MITER
+          ISAV(21) = MSBJ
+          ISAV(22) = MXHNIL
+          ISAV(23) = MXSTEP
+          ISAV(24) = N
+          ISAV(25) = NEWH
+          ISAV(26) = NEWQ
+          ISAV(27) = NHNIL
+          ISAV(28) = NQ
+          ISAV(29) = NQNYH
+          ISAV(30) = NQWAIT
+          ISAV(31) = NSLJ
+          ISAV(32) = NSLP
+          ISAV(33) = NYH
+          ISAV(LENIV1+1) = NCFN
+          ISAV(LENIV1+2) = NETF
+          ISAV(LENIV1+3) = NFE
+          ISAV(LENIV1+4) = NJE
+          ISAV(LENIV1+5) = NLU
+          ISAV(LENIV1+6) = NNI
+          ISAV(LENIV1+7) = NQU
+          ISAV(LENIV1+8) = NST
+          RETURN
+        ELSE
+!         Replace the contents of the PRIVATE blocks.
+          ACNRM = RSAV(1)
+          CCMXJ = RSAV(2)
+          CONP = RSAV(3)
+          CRATE = RSAV(4)
+          DRC = RSAV(5)
+          EL(1:13) = RSAV(6:18)
+          ETA = RSAV(19)
+          ETAMAX = RSAV(20)
+          H = RSAV(21)
+          HMIN = RSAV(22)
+          HMXI = RSAV(23)
+          HNEW = RSAV(24)
+          HSCAL = RSAV(25)
+          PRL1 = RSAV(26)
+          RC = RSAV(27)
+          RL1 = RSAV(28)
+          TAU(1:13) = RSAV(29:41)
+          TQ(1:5) = RSAV(42:46)
+          TN = RSAV(47)
+          UROUND = RSAV(48)
+          HU = RSAV(LENRV1+1)
+          ICF = ISAV(1)
+          INIT = ISAV(2)
+          IPUP = ISAV(3)
+          JCUR = ISAV(4)
+          JSTART = ISAV(5)
+          JSV = ISAV(6)
+          KFLAG = ISAV(7)
+          KUTH = ISAV(8)
+          L = ISAV(9)
+          LMAX = ISAV(10)
+          LYH = ISAV(11)
+          LWM = ISAV(15)
+          LIWM = ISAV(16)
+          LOCJS = ISAV(17)
+          MAXORD = ISAV(18)
+          METH = ISAV(19)
+          MITER = ISAV(20)
+          MSBJ = ISAV(21)
+          MXHNIL = ISAV(22)
+          MXSTEP = ISAV(23)
+          N = ISAV(24)
+          NEWH = ISAV(25)
+          NEWQ = ISAV(26)
+          NHNIL = ISAV(27)
+          NQ = ISAV(28)
+          NQNYH = ISAV(29)
+          NQWAIT = ISAV(30)
+          NSLJ = ISAV(31)
+          NSLP = ISAV(32)
+          NYH = ISAV(33)
+          NCFN = ISAV(LENIV1+1)
+          NETF = ISAV(LENIV1+2)
+          NFE = ISAV(LENIV1+3)
+          NJE = ISAV(LENIV1+4)
+          NLU = ISAV(LENIV1+5)
+          NNI = ISAV(LENIV1+6)
+          NQU = ISAV(LENIV1+7)
+          NST = ISAV(LENIV1+8)
+          RETURN
+        END IF
+
+      END SUBROUTINE DVSRCO
+!_______________________________________________________________________
+
+      SUBROUTINE DEWSET(N,ITOL,RTOL,ATOL,YCUR,EWT)
+! ..
+! Set the error weight vector.
+! ..
+! This subroutine sets the error weight vector EWT according to
+! EWT(i) = RTOL(i)*ABS(YCUR(i)) + ATOL(i), i = 1,...,N,
+! with the subscript on RTOL and/or ATOL possibly replaced by 1
+! above, depending on the value of ITOL.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: ITOL, N
+! ..
+! .. Array Arguments ..
+        KPP_REAL, INTENT (IN) :: ATOL(*), RTOL(*), YCUR(N)
+        KPP_REAL, INTENT (OUT) :: EWT(N)
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS
+! ..
+! .. FIRST EXECUTABLE STATEMENT DEWSET
+! ..
+        GOTO (10,20,30,40) ITOL
+10      CONTINUE
+        EWT(1:N) = RTOL(1)*ABS(YCUR(1:N)) + ATOL(1)
+        RETURN
+20      CONTINUE
+        EWT(1:N) = RTOL(1)*ABS(YCUR(1:N)) + ATOL(1:N)
+        RETURN
+30      CONTINUE
+        EWT(1:N) = RTOL(1:N)*ABS(YCUR(1:N)) + ATOL(1)
+        RETURN
+40      CONTINUE
+        EWT(1:N) = RTOL(1:N)*ABS(YCUR(1:N)) + ATOL(1:N)
+        RETURN
+
+      END SUBROUTINE DEWSET
+!_______________________________________________________________________
+
+      FUNCTION DVNORM(N,V,W)
+! ..
+! Calculate weighted root-mean-square (rms) vector norm.
+! ..
+! This routine computes the weighted root-mean-square norm
+! of the vector of length N contained in the array V, with
+! weights contained in the array W of length N.
+! DVNORM = SQRT((1/N) * SUM(V(i)*W(i))**2)
+! ..
+     IMPLICIT NONE
+! ..
+! .. Function Return Value ..
+        KPP_REAL :: DVNORM
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: N
+! ..
+! .. Array Arguments ..
+        KPP_REAL, INTENT (IN) :: V(N), W(N)
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: SUM
+        INTEGER :: I
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC SQRT
+! ..
+! .. FIRST EXECUTABLE STATEMENT DVNORM
+! ..
+        SUM = ZERO
+        DO I = 1, N
+          SUM = SUM + (V(I)*W(I))**2
+        END DO
+        DVNORM = SQRT(SUM/N)
+        RETURN
+
+      END FUNCTION DVNORM
+!_______________________________________________________________________
+
+! The modified SLATEC error handling routines begin here.
+      SUBROUTINE XERRDV(MSG,NERR,LEVEL,NI,I1,I2,NR,R1,R2)
+! ..
+! Write error messages with values.
+! ..
+! This is an adaptation of subroutine XERRWD (NMES eliminated).
+! Subroutines XERRDV, XSETF, XSETUN, and Functions IXSAV
+! as given here, constitute a simplified version of the SLATEC
+! error handling package.
+!
+! All arguments are input arguments.
+! MSG    = The message (character array).
+! NERR   = The error number (not used).
+! LEVEL  = The error level
+!          0 or 1 means recoverable (control returns to caller).
+!          2 means fatal (run is aborted--see note below).
+! NI     = Number of integers (0, 1, or 2) to be printed with message.
+! I1,I2  = Integers to be printed, depending on NI.
+! NR     = Number of reals (0, 1, or 2) to be printed with message.
+! R1,R2  = Reals to be printed, depending on NR.
+! Note: This routine is machine-dependent and specialized for use
+! in limited context, in the following ways:
+!  1. The argument MSG is assumed to be of type CHARACTER, and
+!     the message is printed with a format of (1X,A).
+!  2. The message is assumed to take only one line.
+!     Multi-line messages are generated by repeated calls.
+!  3. If LEVEL = 2, control passes to the statement: STOP
+!     to abort the run. This statement may be machine-dependent.
+!  4. R1 and R2 are assumed to be in real(wp) and are printed
+!     in D21.13 format.
+! Internal Notes:
+! For a different default logical unit number, IXSAV(or a subsidiary
+! function that it calls) will need to be modified.
+! For a different run-abort command, change the statement following
+! statement 100 at the end.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        KPP_REAL :: R1, R2
+        INTEGER :: I1, I2, LEVEL, NERR, NI, NR
+        CHARACTER (*) :: MSG
+        LOGICAL PRINT_NERR
+! ..
+! .. Local Scalars ..
+        INTEGER :: LUNIT, MESFLG
+! ..
+! .. FIRST EXECUTABLE STATEMENT XERRDV
+! ..
+!       Get logical unit number and message print flag.
+        LUNIT = IXSAV(1,0,.FALSE.)
+        MESFLG = IXSAV(2,0,.FALSE.)
+        IF (MESFLG==0) GOTO 10
+
+        PRINT_NERR = .FALSE.
+        IF (PRINT_NERR) PRINT *, MSG, 'Message number = ', NERR
+
+!       Write the message.
+        WRITE (LUNIT,90000) MSG
+90000   FORMAT (1X,A)
+        IF (NI==1) WRITE (LUNIT,90001) I1
+90001   FORMAT ('In the above message, I1 = ',I10)
+        IF (NI==2) WRITE (LUNIT,90002) I1, I2
+90002   FORMAT ('In the above message, I1 = ',I10,3X,'I2 = ',I10)
+        IF (NR==1) WRITE (LUNIT,90003) R1
+90003   FORMAT ('In the above message, R1 = ',D21.13)
+        IF (NR==2) WRITE (LUNIT,90004) R1, R2
+90004   FORMAT ('In the above message, R1 = ',D21.13,3X,'R2 = ',D21.13)
+
+!       Abort the run if LEVEL = 2.
+10      IF (LEVEL/=2) RETURN
+        WRITE (LUNIT,90005)
+90005   FORMAT ('LEVEL = 2 in XERRDV. Stopping.')
+        STOP
+
+      END SUBROUTINE XERRDV
+!_______________________________________________________________________
+
+      SUBROUTINE XSETF(MFLAG)
+! ..
+!     Reset the error print control flag.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: MFLAG
+! ..
+! .. Local Scalars ..
+        INTEGER :: JUNK
+! ..
+! .. FIRST EXECUTABLE STATEMENT XSETF
+! ..
+        IF (MFLAG==0 .OR. MFLAG==1) JUNK = IXSAV(2,MFLAG,.TRUE.)
+!       Get rid of a compiler warning message:
+        IF (JUNK/=JUNK) STOP
+        RETURN
+
+      END SUBROUTINE XSETF
+!_______________________________________________________________________
+
+      SUBROUTINE XSETUN(LUN)
+! ..
+!     Reset the logical unit number for error messages.
+! ..
+!     XSETUN sets the logical unit number for error messages to LUN.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER :: LUN
+! ..
+! .. Local Scalars ..
+        INTEGER :: JUNK
+! ..
+! .. FIRST EXECUTABLE STATEMENT XSETUN
+! ..
+        IF (LUN>0) JUNK = IXSAV(1,LUN,.TRUE.)
+!       Get rid of a compiler warning message:
+        IF (JUNK/=JUNK) STOP
+        RETURN
+
+      END SUBROUTINE XSETUN
+!_______________________________________________________________________
+
+      FUNCTION IXSAV(IPAR,IVALUE,ISET)
+! ..
+! Save and recall error message control parameters.
+! ..
+! IXSAV saves and recalls one of two error message parameters:
+!  LUNIT, the logical unit number to which messages are printed,
+!  and MESFLG, the message print flag.
+! This is a modification of the SLATEC library routine J4SAVE.
+! Saved local variables:
+!  LUNIT  = Logical unit number for messages. The default is
+!           obtained by a call to IUMACH(may be machine-dependent).
+!  MESFLG = Print control flag:
+!           1 means print all messages (the default).
+!           0 means no printing.
+! On input:
+!  IPAR   = Parameter indicator (1 for LUNIT, 2 for MESFLG).
+!  IVALUE = The value to be set for the parameter, if ISET = .TRUE.
+!  ISET   = Logical flag to indicate whether to read or write.
+!           If ISET = .TRUE., the parameter will be given
+!           the value IVALUE. If ISET = .FALSE., the parameter
+!           will be unchanged, and IVALUE is a dummy argument.
+! On return:
+!   IXSAV = The (old) value of the parameter.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Function Return Value ..
+        INTEGER :: IXSAV
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: IPAR, IVALUE
+        LOGICAL, INTENT (IN) :: ISET
+! ..
+! .. Local Scalars ..
+        INTEGER, SAVE :: LUNIT, MESFLG
+! ..
+! .. Data Statements ..
+        DATA LUNIT/ -1/, MESFLG/1/
+! ..
+! .. FIRST EXECUTABLE STATEMENT IXSAV
+! ..
+        IF (IPAR==1) THEN
+          IF (LUNIT==-1) LUNIT = IUMACH()
+!  i       Get rid of a compiler warning message:
+          IF (LUNIT/=LUNIT) STOP
+          IXSAV = LUNIT
+          IF (ISET) LUNIT = IVALUE
+        END IF
+
+        IF (IPAR==2) THEN
+          IXSAV = MESFLG
+          IF (ISET) MESFLG = IVALUE
+        END IF
+        RETURN
+
+      END FUNCTION IXSAV
+!_______________________________________________________________________
+
+      FUNCTION IUMACH()
+! ..
+!     Provide the standard output unit number.
+! ..
+!     INTEGER LOUT, IUMACH
+!     LOUT = IUMACH()
+!     Function Return Values:
+!     LOUT: the standard logical unit for Fortran output.
+!     Internal Notes:
+!     The built-in value of 6 is standard on a wide range
+!     of Fortran systems. This may be machine-dependent.
+! ..
+! .. Function Return Value ..
+        INTEGER :: IUMACH
+! ..
+! .. FIRST EXECUTABLE STATEMENT IUMACH
+! ..
+        IUMACH = 6
+        RETURN
+
+      END FUNCTION IUMACH
+! The modified error handling routines end here.
+!_______________________________________________________________________
+
+      SUBROUTINE CHECK_STAT(IER,CALLED_FROM_WHERE)
+! ..
+! Print an error message if a storage allocation error
+! occurred.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: CALLED_FROM_WHERE, IER
+! ..
+! .. Local Scalars ..
+        INTEGER :: I1
+        CHARACTER (80) :: MSG
+! ..
+! .. FIRST EXECUTABLE STATEMENT CHECK_STAT
+! ..
+        IF (IER/=0) THEN
+          I1 = CALLED_FROM_WHERE
+          MSG = 'A storage allocation error occurred.'
+          CALL XERRDV(MSG,1410,1,0,0,0,0,ZERO,ZERO)
+          MSG = 'The error occurred at location I1.'
+          CALL XERRDV(MSG,1410,2,1,I1,0,0,ZERO,ZERO)
+        END IF
+        RETURN
+
+      END SUBROUTINE CHECK_STAT
+!_______________________________________________________________________
+
+      SUBROUTINE DVPREPS(NEQ,Y,YH,LDYH,SAVF,EWT,F,JAC)
+! ..
+! Determine the sparsity structure and allocate the necessary arrays
+! for MA28 based sparse solutions.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: LDYH, NEQ
+! ..
+! .. Array Arguments ..
+        KPP_REAL, INTENT (INOUT) :: EWT(*), Y(*)
+        KPP_REAL :: SAVF(*)
+        KPP_REAL, INTENT (IN) :: YH(LDYH,*)
+! ..
+! .. Subroutine Arguments ..
+        EXTERNAL F, JAC
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: DQ, DYJ, ERWT, FAC, YJ
+        INTEGER :: I, IER, J, JFOUND, K, KMAX, KMIN, KNEW, NP1, NZ
+        CHARACTER (80) :: MSG
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, ALLOCATED, MAX, SIGN
+! ..
+! .. FIRST EXECUTABLE STATEMENT DVPREPS
+! ..
+        NZ_SWAG = MAX(MAX(1000,NZ_SWAG),10*N)
+        NP1 = N + 1
+        NZ_ALL = NZ_SWAG
+!       ADDTONNZ = MAX(1000,NZ_SWAG)
+        ADDTONNZ = NZ_SWAG
+10      CONTINUE
+        IF (ALLOCATED(IAN)) THEN
+          DEALLOCATE (IAN,JAN,IGP,JGP,FTEMP1,IKEEP28,IW28,ICN,PMAT, &
+            JVECT,STAT=IER)
+          CALL CHECK_STAT(IER,490)
+          IF (ALLOCATED(JMAT)) THEN
+            DEALLOCATE (JMAT,STAT=IER)
+            CALL CHECK_STAT(IER,500)
+          END IF
+        END IF
+        NZ_ALL = NZ_ALL + ADDTONNZ
+        LICN_ALL = ELBOW_ROOM * NZ_ALL
+        LIRN_ALL = ELBOW_ROOM * NZ_ALL
+        IF (LICN_ALL>MAX_ARRAY_SIZE .OR. LIRN_ALL>MAX_ARRAY_SIZE) THEN
+          MSG = 'Maximum array size exceeded. Stopping.'
+          CALL XERRDV(MSG,1420,2,0,0,0,0,ZERO,ZERO)
+        END IF
+!       Note: ICN may need to be reallocated in DVJACS28.
+        ALLOCATE (IAN(NP1),JAN(LIRN_ALL),IGP(NP1),JGP(N),FTEMP1(N), &
+          IKEEP28(N,5),IW28(N,8),ICN(LICN_ALL),PMAT(LICN_ALL),      &
+          JVECT(LIRN_ALL),STAT=IER)
+        CALL CHECK_STAT(IER,510)
+        IF (JSV==1) THEN
+          ALLOCATE (JMAT(NZ_ALL),STAT=IER)
+          CALL CHECK_STAT(IER,520)
+          JMAT(1:NZ_ALL) = ZERO
+        END IF
+
+        IF (MOSS==0) GOTO 30
+        IF (ISTATC==3) GOTO 20
+
+!       ISTATE = 1 and MOSS /= 0.
+
+!       Perturb Y for structure determination:
+        DO I = 1, N
+          ERWT = ONE/EWT(I)
+          FAC = ONE + ONE/(I+ONE)
+          Y(I) = Y(I) + FAC*SIGN(ERWT,Y(I))
+        END DO
+        GOTO (60,70) MOSS
+
+20      CONTINUE
+!       ISTATE = 3 and MOSS /= 0.
+
+!       Load Y from YH(*,1):
+        Y(1:N) = YH(1:N,1)
+        GOTO (60,70) MOSS
+
+!       MOSS = 0
+
+!       Process user's IA,JA. Add diagonal entries if necessary:
+30      CONTINUE
+        IF (IAJA_CALLED) THEN
+        ELSE
+          MSG = 'You have indicated that you wish to supply the'
+          CALL XERRDV(MSG,1430,1,0,0,0,0,ZERO,ZERO)
+          MSG = 'sparsity arrays IA and JA directly but you did'
+          CALL XERRDV(MSG,1430,1,0,0,0,0,ZERO,ZERO)
+          MSG = 'not call SET_IAJA after calling SET_OPTS.'
+          CALL XERRDV(MSG,1430,2,0,0,0,0,ZERO,ZERO)
+        END IF
+        KNEW = 1
+        KMIN = IA(1)
+        IAN(1) = 1
+        DO J = 1, N
+          JFOUND = 0
+          KMAX = IA(J+1) - 1
+          IF (KMIN>KMAX) GOTO 40
+          DO K = KMIN, KMAX
+            I = JA(K)
+            IF (I==J) JFOUND = 1
+            IF (KNEW>NZ_ALL) THEN
+               IF (LP /= 0) THEN
+                  MSG = 'NZ_ALL (=I1) is not large enough.'
+                  CALL XERRDV(MSG,1440,1,0,0,0,0,ZERO,ZERO)
+                  MSG = 'Allocating more space for another try.'
+                  CALL XERRDV(MSG,1440,1,1,NZ_ALL,0,0,ZERO,ZERO)
+               END IF
+               GOTO 10
+            END IF
+            JAN(KNEW) = I
+            KNEW = KNEW + 1
+          END DO
+          IF (JFOUND==1) GOTO 50
+40        IF (KNEW>NZ_ALL) THEN
+             IF (LP /= 0) THEN
+                MSG = 'NZ_ALL (=I1) is not large enough.'
+                CALL XERRDV(MSG,1450,1,0,0,0,0,ZERO,ZERO)
+                MSG = 'Allocating more space for another try.'
+                CALL XERRDV(MSG,1450,1,1,NZ_ALL,0,0,ZERO,ZERO)
+             END IF
+             GOTO 10
+          END IF
+          JAN(KNEW) = J
+          KNEW = KNEW + 1
+50        IAN(J+1) = KNEW
+          KMIN = KMAX + 1
+        END DO
+        GOTO 90
+
+60      CONTINUE
+
+!       MOSS = 1.
+
+!       Compute structure from user-supplied Jacobian routine JAC.
+        NZ = 0
+        CALL JAC(NEQ,TN,Y,IAN,JAN,NZ,PMAT)
+        IF (NZ<=0) THEN
+          MSG = 'Illegal value of NZ from JAC in DVPREPS.'
+          CALL XERRDV(MSG,1460,2,0,0,0,0,ZERO,ZERO)
+        END IF
+        IF (NZ>NZ_ALL) THEN
+           IF (LP /= 0) THEN
+              MSG = 'NZ_ALL (=I1) is not large enough.'
+              CALL XERRDV(MSG,1470,1,0,0,0,0,ZERO,ZERO)
+              MSG = 'Allocating more space for another try.'
+              CALL XERRDV(MSG,1470,1,1,NZ_ALL,0,0,ZERO,ZERO)
+           END IF
+           GOTO 10
+        END IF
+        CALL JAC(NEQ,TN,Y,IAN,JAN,NZ,PMAT)
+        CALL SET_ICN(N,IAN,ICN)
+        CALL CHECK_DIAG(N,IAN,JAN,ICN)
+        GOTO 90
+
+!       MOSS = 2.
+
+!       Compute structure from results of N+1 calls to F.
+70      K = 1
+        IAN(1) = 1
+        DO I = 1, N
+          ERWT = ONE/EWT(I)
+          FAC = ONE + ONE/(I+ONE)
+          Y(I) = Y(I) + FAC*SIGN(ERWT,Y(I))
+        END DO
+        CALL F(NEQ,TN,Y,SAVF)
+        NFE = NFE + 1
+        DO J = 1, N
+          IF (K>NZ_ALL) THEN
+             IF (LP /= 0) THEN
+                MSG = 'NZ_ALL (=I1) is not large enough.'
+                CALL XERRDV(MSG,1480,1,0,0,0,0,ZERO,ZERO)
+                MSG = 'Allocating more space for another try.'
+                CALL XERRDV(MSG,1480,1,1,NZ_ALL,0,0,ZERO,ZERO)
+
+             END IF
+             GOTO 10
+          END IF
+          YJ = Y(J)
+          ERWT = ONE/EWT(J)
+          DYJ = SIGN(ERWT,YJ)
+          Y(J) = YJ + DYJ
+          CALL F(NEQ,TN,Y,FTEMP1)
+          NFE = NFE + 1
+          Y(J) = YJ
+          DO 80 I = 1, N
+            DQ = (FTEMP1(I)-SAVF(I))/DYJ
+            IF ((ABS(DQ)<=SETH) .AND. (I/=J)) GOTO 80
+            JAN(K) = I
+            K = K + 1
+80        END DO
+          IAN(J+1) = K
+        END DO
+90      CONTINUE
+        IF (MOSS==0 .OR. ISTATC/=1) GOTO 100
+!       If ISTATE = 1 and MOSS /= 0, restore Y from YH.
+        Y(1:N) = YH(1:N,1)
+100     NNZ = IAN(NP1) - 1
+        LENIGP = 0
+        MAXG = 0
+        IF (MITER==7) THEN
+!         Compute grouping of column indices.
+          MAXG = NP1
+          CALL DGROUP(N,IAN,JAN,MAXG,NGP,IGP,JGP,IKEEP28(1,1), &
+            IKEEP28(1,2),IER)
+          IF (IER/=0) THEN
+            MSG = 'An error occurred in DGROUP.'
+            CALL XERRDV(MSG,1490,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          LENIGP = NGP + 1
+        END IF
+
+        IF (USE_JACSP .AND. MITER==7) THEN
+!         Use Doug Salane's Jacobian routines to determine the column
+!         grouping; and allocate and initialize the necessary arrays
+!         for use in DVJACS48.
+          IF (ALLOCATED(INDROWDS)) THEN
+             DEALLOCATE (INDROWDS, INDCOLDS, NGRPDS, IPNTRDS, JPNTRDS, IWADS, &
+               IWKDS, IOPTDS, YSCALEDS, WKDS, FACDS)
+             CALL CHECK_STAT(IER,530)
+          END IF
+!         We could delete IWADS and use IW28 array.
+          ALLOCATE (INDROWDS(NNZ), INDCOLDS(NNZ), NGRPDS(N+1), IPNTRDS(N+1), &
+            JPNTRDS(N+1), IWADS(6*N), IWKDS(50+N), IOPTDS(5), YSCALEDS(N),  &
+            WKDS(3*N), FACDS(N) ,STAT=IER)
+          CALL CHECK_STAT(IER,540)
+          INDROWDS(1:NNZ) = JAN(1:NNZ)
+          CALL SET_ICN(N,IAN,INDCOLDS)
+          CALL CHECK_DIAG(N,IAN,INDROWDS,INDCOLDS)
+          LIWADS = 6 * N
+          CALL DVDSM(N,N,NNZ,INDROWDS,INDCOLDS,NGRPDS,MAXGRPDS,MINGRPDS,      &
+            INFODS,IPNTRDS,JPNTRDS,IWADS,LIWADS)
+          IF (INFODS /= 1) THEN
+             MSG = 'An error occurred in subroutine DSM. INFO = I1.'
+               CALL XERRDV(MSG,1500,2,1,INFODS,0,0,ZERO,ZERO)
+          END IF
+!         For use in DVJACS28:
+          IOPTDS(4) = 0
+!         Define the IGP and JGP arrays needed by DVJACS28.
+          CALL DGROUPDS(N,MAXGRPDS,NGRPDS,IGP,JGP)
+          NGP = MAXGRPDS
+          LENIGP = MAXGRPDS + 1
+        END IF
+
+!       Trim the arrays to the final sizes.
+
+        IF (NZ_ALL>NNZ) THEN
+          NZ_ALL = NNZ
+          MAX_NNZ = MAX(MAX_NNZ,NNZ)
+          LIRN_ALL = ELBOW_ROOM * NNZ
+          ICN(1:NNZ) = JAN(1:NNZ)
+          DEALLOCATE (JAN,STAT=IER)
+          CALL CHECK_STAT(IER,550)
+          ALLOCATE (JAN(LIRN_ALL),STAT=IER)
+          CALL CHECK_STAT(IER,560)
+          JAN(1:NNZ) = ICN(1:NNZ)
+          CALL CHECK_STAT(IER,570)
+          DEALLOCATE (ICN,PMAT,JVECT,STAT=IER)
+          CALL CHECK_STAT(IER,580)
+          IF (ALLOCATED(JMAT)) THEN
+            DEALLOCATE (JMAT,STAT=IER)
+            CALL CHECK_STAT(IER,590)
+          END IF
+          LICN_ALL = ELBOW_ROOM * NNZ
+          ALLOCATE (ICN(LICN_ALL),PMAT(LICN_ALL),JVECT(LIRN_ALL),STAT=IER)
+          CALL CHECK_STAT(IER,600)
+          IF (JSV==1) THEN
+            ALLOCATE (JMAT(NNZ),STAT=IER)
+            CALL CHECK_STAT(IER,610)
+            JMAT(1:NNZ) = ZERO
+          END IF
+          IF (MITER==7) THEN
+            JVECT(1:LENIGP) = IGP(1:LENIGP)
+            DEALLOCATE (IGP,STAT=IER)
+            CALL CHECK_STAT(IER,620)
+            ALLOCATE (IGP(LENIGP),STAT=IER)
+            CALL CHECK_STAT(IER,630)
+            IGP(1:LENIGP) = JVECT(1:LENIGP)
+          END IF
+        END IF
+        IF (SCALE_MATRIX) THEN
+           IF (ALLOCATED(CSCALEX)) THEN
+              DEALLOCATE (CSCALEX,RSCALEX,WSCALEX,STAT=IER)
+              CALL CHECK_STAT(IER,640)
+              ALLOCATE (CSCALEX(N),RSCALEX(N),WSCALEX(N,5),STAT=IER)
+              CALL CHECK_STAT(IER,650)
+           ELSE
+              ALLOCATE (CSCALEX(N),RSCALEX(N),WSCALEX(N,5),STAT=IER)
+              CALL CHECK_STAT(IER,660)
+           END IF
+        END IF
+        IF (LP /= 0) THEN
+           MSG = 'The final DVPRPEPS storage allocations are:'
+           CALL XERRDV(MSG,1510,1,0,0,0,0,ZERO,ZERO)
+           MSG = '   NZ_ALL (=I1):'
+           CALL XERRDV(MSG,1510,1,1,NZ_ALL,0,0,ZERO,ZERO)
+           MSG = '   LIRN_ALL (=I1) and LICN_ALL (=I2):'
+           CALL XERRDV(MSG,1510,1,2,LIRN_ALL,LICN_ALL,0,ZERO,ZERO)
+         END IF
+        RETURN
+
+      END SUBROUTINE DVPREPS
+!_______________________________________________________________________
+
+      SUBROUTINE DVRENEW(NEQ,Y,SAVF,EWT,F)
+! ..
+! In the event MA28BD encounters a zero pivot in the LU factorization
+! of the iteration matrix due to an out-of-date MA28AD pivot sequence,
+! re-calculate the sparsity structure using finite differences.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: NEQ
+! ..
+! .. Array Arguments ..
+        KPP_REAL, INTENT (INOUT) :: EWT(*), SAVF(*), Y(*)
+! ..
+! .. Subroutine Arguments ..
+        EXTERNAL F
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: DQ, DYJ, ERWT, FAC, YJ
+        INTEGER :: ADDTONZ, I, IER, J, K, KVAL, NP1
+        CHARACTER (80) :: MSG
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, ALLOCATED, MAX, SIGN
+! ..
+! .. FIRST EXECUTABLE STATEMENT DVRENEW
+! ..
+! .. Caution:
+!    This routine must not be called before DVPREPS has been called.
+!
+!    Note:
+!    On entry to DVRENEW, the allocated array sizes of arrays that
+!    may change size are:
+!      ICN, PMAT  = length LICN_ALL
+!      JAN, JVECT = length LIRN_ALL
+!      JMAT       = length NZ_ALL
+!      IGP        = length LENIGP on first entry; N+1 thereafter
+
+!       Check if a numerical Jacobian is being used and stop if
+!       it is not.
+        IF (MITER /= 7) THEN
+          MSG = 'DVRENEW can be used only if MITER = 7.'
+          CALL XERRDV(MSG,1520,2,0,0,0,0,ZERO,ZERO)
+        END IF
+
+!       Save Y and SAVF.
+        IF (.NOT.ALLOCATED(YTEMP)) THEN
+           ALLOCATE (YTEMP(N),DTEMP(N),STAT=IER)
+           CALL CHECK_STAT(IER,670)
+        END IF
+        YTEMP(1:N) = Y(1:N)
+        DTEMP(1:N) = SAVF(1:N)
+
+!       Define the amount to be added to the array lengths
+!       if necessary.
+        NP1 = N + 1
+        NNZ = IAN(NP1) - 1
+        ADDTONZ = ELBOW_ROOM * NNZ
+
+!       Just change the size of IGP to N+1 if have not already
+!       done so.
+        IF (SIZE(IGP) /= NP1) THEN
+           DEALLOCATE (IAN,STAT=IER)
+           CALL CHECK_STAT(IER,680)
+           ALLOCATE (IAN(NP1),STAT=IER)
+           CALL CHECK_STAT(IER,690)
+        END IF
+
+!       Go to the differencing section to determine the new
+!       sparsity structure.
+        GOTO 20
+
+10      CONTINUE
+
+!       Reallocate the arrays if necessary.
+        IF (KVAL > LIRN_ALL) THEN
+!          Note: JAN and JVECT may need to be reallocated in DVJACS28.
+           LIRN_ALL = LIRN_ALL + ADDTONZ
+           IF (LIRN_ALL>MAX_ARRAY_SIZE) THEN
+              MSG = 'Maximum array size exceeded. Stopping in DVRENEW.'
+             CALL XERRDV(MSG,1530,2,0,0,0,0,ZERO,ZERO)
+           END IF
+           DEALLOCATE (JAN,JVECT,STAT=IER)
+           CALL CHECK_STAT(IER,700)
+           ALLOCATE (JAN(LIRN_ALL),JVECT(LIRN_ALL),STAT=IER)
+           CALL CHECK_STAT(IER,710)
+        END IF
+        IF (KVAL > LICN_ALL) THEN
+!          Note: ICN and PMAT may need to be reallocated in DVJACS28.
+           LICN_ALL = LICN_ALL + ADDTONZ
+           IF (LICN_ALL>MAX_ARRAY_SIZE) THEN
+              MSG = 'Maximum array size exceeded. Stopping in DVRENEW.'
+             CALL XERRDV(MSG,1540,2,0,0,0,0,ZERO,ZERO)
+           END IF
+           DEALLOCATE (ICN,PMAT,STAT=IER)
+           CALL CHECK_STAT(IER,720)
+           ALLOCATE (ICN(LICN_ALL),PMAT(LICN_ALL),STAT=IER)
+           CALL CHECK_STAT(IER,730)
+        END IF
+
+   20   CONTINUE
+
+!       Perturb Y for structure determination:
+        DO I = 1, N
+          ERWT = ONE/EWT(I)
+          FAC = ONE + ONE/(I+ONE)
+          Y(I) = Y(I) + FAC*SIGN(ERWT,Y(I))
+        END DO
+
+!       Compute structure from results of N+1 calls to F.
+        K = 1
+        IAN(1) = 1
+        DO I = 1, N
+          ERWT = ONE/EWT(I)
+          FAC = ONE + ONE/(I+ONE)
+          Y(I) = Y(I) + FAC*SIGN(ERWT,Y(I))
+        END DO
+        CALL F(NEQ,TN,Y,SAVF)
+        NFE = NFE + 1
+        DO J = 1, N
+          KVAL = K
+          IF (KVAL > LIRN_ALL) THEN
+             IF (LP /= 0) THEN
+                MSG = 'LIRN_ALL (=I1) is not large enough.'
+                CALL XERRDV(MSG,1550,1,0,0,0,0,ZERO,ZERO)
+                MSG = 'Allocating more space for another try.'
+                CALL XERRDV(MSG,1550,1,1,LIRN_ALL,0,0,ZERO,ZERO)
+             END IF
+             GOTO 10
+          END IF
+          IF (KVAL > LICN_ALL) THEN
+             IF (LP /= 0) THEN
+                MSG = 'LICN_ALL (=I1) is not large enough.'
+                CALL XERRDV(MSG,1560,1,0,0,0,0,ZERO,ZERO)
+                MSG = 'Allocating more space for another try.'
+                CALL XERRDV(MSG,1560,1,1,LICN_ALL,0,0,ZERO,ZERO)
+             END IF
+             GOTO 10
+          END IF
+          YJ = Y(J)
+          ERWT = ONE/EWT(J)
+          DYJ = SIGN(ERWT,YJ)
+          Y(J) = YJ + DYJ
+          CALL F(NEQ,TN,Y,FTEMP1)
+          NFE = NFE + 1
+          Y(J) = YJ
+          DO 80 I = 1, N
+            DQ = (FTEMP1(I)-SAVF(I))/DYJ
+            IF ((ABS(DQ)<=SETH) .AND. (I/=J)) GOTO 80
+            JAN(K) = I
+            K = K + 1
+80        END DO
+          IAN(J+1) = K
+        END DO
+
+        NNZ = IAN(NP1) - 1
+        IF (NNZ > NZ_ALL .AND. JSV == 1) THEN
+!          Increase the size of JMAT if necessary.
+           NZ_ALL = NNZ
+           IF (LP /= 0) THEN
+              MSG = 'NZ_ALL (=I1) is not large enough.'
+              CALL XERRDV(MSG,1570,1,0,0,0,0,ZERO,ZERO)
+              MSG = 'Allocating more space for another try.'
+              CALL XERRDV(MSG,1570,1,1,NZ_ALL,0,0,ZERO,ZERO)
+           END IF
+           IF (NZ_ALL>MAX_ARRAY_SIZE) THEN
+              MSG = 'Maximum array size exceeded. Stopping in DVRENEW.'
+              CALL XERRDV(MSG,1580,2,0,0,0,0,ZERO,ZERO)
+           END IF
+           DEALLOCATE (JMAT,STAT=IER)
+           CALL CHECK_STAT(IER,740)
+           ALLOCATE (JMAT(NZ_ALL),STAT=IER)
+           CALL CHECK_STAT(IER,750)
+           JMAT(1:NZ_ALL) = ZERO
+        END IF
+
+!       Compute grouping of column indices.
+
+        LENIGP = 0
+        MAXG = 0
+        MAXG = NP1
+        CALL DGROUP(N,IAN,JAN,MAXG,NGP,IGP,JGP,IKEEP28(1,1), &
+          IKEEP28(1,2),IER)
+        IF (IER/=0) THEN
+          MSG = 'An error occurred in DGROUP.'
+          CALL XERRDV(MSG,1590,2,0,0,0,0,ZERO,ZERO)
+        END IF
+        LENIGP = NGP + 1
+
+!       Restore Y and SAVF.
+        Y(1:N) = YTEMP(1:N)
+        SAVF(1:N) = DTEMP(1:N)
+        RETURN
+
+      END SUBROUTINE DVRENEW
+!_______________________________________________________________________
+
+      SUBROUTINE DGROUP(N,IA,JA,MAXG,NGRP,IGP,JGP,INCL,JDONE,IER)
+! ..
+! Construct groupings of the column indices of the Jacobian matrix,
+! used in the numerical evaluation of the Jacobian by finite
+! differences for sparse solutions.
+! ..
+!     Input:
+!     N      = the order of the matrix
+!     IA,JA  = sparse structure descriptors of the matrix by rows
+!     MAXG   = length of available storage in the IGP array
+!     INCL and JDONE are working arrays of length N.
+!     Output:
+!     NGRP   = number of groups
+!     JGP    = array of length N containing the column indices by
+!              groups
+!     IGP    = pointer array of length NGRP + 1 to the locations
+!              in JGP of the beginning of each group
+!     IER    = error indicator. IER = 0 if no error occurred, or
+!              1 if MAXG was insufficient
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (INOUT) :: IER, NGRP
+        INTEGER, INTENT (IN) :: MAXG, N
+! ..
+! .. Array Arguments ..
+        INTEGER, INTENT (IN) :: IA(*), JA(*)
+        INTEGER, INTENT (INOUT) :: IGP(*), INCL(*), JDONE(*), JGP(*)
+! ..
+! .. Local Scalars ..
+        INTEGER :: I, J, K, KMAX, KMIN, NCOL, NG
+! ..
+! .. FIRST EXECUTABLE STATEMENT DGROUP
+! ..
+        IER = 0
+        JDONE(1:N) = 0
+        NCOL = 1
+        DO NG = 1, MAXG
+          IGP(NG) = NCOL
+          INCL(1:N) = 0
+          DO 20 J = 1, N
+!           Reject column J if it is already in a group.
+            IF (JDONE(J)==1) GOTO 20
+            KMIN = IA(J)
+            KMAX = IA(J+1) - 1
+            DO 10 K = KMIN, KMAX
+!           Reject column J if it overlaps any column already
+!           in this group.
+              I = JA(K)
+              IF (INCL(I)==1) GOTO 20
+10          END DO
+!           Accept column J into group NG.
+            JGP(NCOL) = J
+            NCOL = NCOL + 1
+            JDONE(J) = 1
+            DO K = KMIN, KMAX
+              I = JA(K)
+              INCL(I) = 1
+            END DO
+20        END DO
+!         Stop if this group is empty (grouping is complete).
+          IF (NCOL==IGP(NG)) GOTO 30
+        END DO
+!       Error return if not all columns were chosen (MAXG too small).
+        IF (NCOL<=N) GOTO 40
+        NG = MAXG
+30      NGRP = NG - 1
+        RETURN
+40      IER = 1
+        RETURN
+
+      END SUBROUTINE DGROUP
+!_______________________________________________________________________
+
+      SUBROUTINE BGROUP(N,BJA,BINCL,BDONE,ML,MU)
+! ..
+! Construct groupings of the column indices of the Jacobian
+! matrix, used in the numerical evaluation of the Jacobian
+! by finite differences for banded solutions when the nonzero
+! sub and super diagonals are known. BGROUP is similar to
+! DGROUP but it does not require the sparse structure arrays
+! and it uses real rather than integer work arrays.
+! ..
+!     Input:
+!
+!       N       = the order of the matrix (number of odes)
+!       BINCL   = real working array of length N
+!       BJA     = real working array of length N
+!       BDONE   = real working array of length N
+!       ML      = integer lower bandwidth
+!       MU      = integer upper bandwidth
+!
+!     Output: (PRIVATE information used in DVJAC)
+!
+!       BNGRP   = integer number of groups
+!       BJGP    = integer array of length N containing the
+!                 column indices by groups
+!       BIGP    = integer pointer array of length BNGRP + 1
+!                 to the locations in BJGP of the beginning
+!                 of each group
+!
+!       Note:
+!          On output:
+!             For I = 1, ..., BNGRP:
+!                Start of group I:
+!                  J = BIGP(I)
+!                Number of columns in group I:
+!                  K = BIGP(I+1) - BIGP(I)
+!                Columns in group I:
+!                  BJGP(J-1+L), L=1, ..., K
+!
+!    Note:
+!    The three arrays BJA, BINCL, and BDONE are REAL to avoid the
+!    necessity to allocate three new INTEGER arrays. BGROUP can
+!    be called only at an integration start or restart because
+!    DVODE_F90 work arrays are used for these arrays.
+!
+!    Note:
+!    The PRIVATE banded information SUBDS, NSUBDS, SUPDS, NSUPS,
+!    ML, and MU must be defined before calling BGROUP.
+!       ML        = lower bandwidth
+!       MU        = upper bandwidth
+!       NSUBS     = number of strict sub diagonals
+!       SUBDS(I)  = row in which the Ith sub diagonal
+!                   begins, I=1, ..., NSUBS
+!       NSUPS     = number of strict super diagonals
+!       SUPDS(I)  = column in which the Ith super diagonal
+!                   begins, I=1, ..., NSUPS
+! ..
+        IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: N, ML, MU
+! ..
+! .. Array Arguments ..
+        KPP_REAL, INTENT (INOUT) :: BINCL(*), BJA(*), BDONE(*)
+! ..
+! .. Local Scalars ..
+        INTEGER :: I, IBDONE, IBINCL, IER, J, K, KBEGIN, KFINI, &
+          KI, KJ, MAXG, NCOL, NG
+        KPP_REAL :: FUDGE, ONE_PLUS_FUDGE
+        CHARACTER (80) :: MSG
+! ..
+! .. Intrinsic Functions ..
+     INTRINSIC INT, MAX, MIN, REAL
+! ..
+! .. FIRST EXECUTABLE STATEMENT BGROUP
+! ..
+!       Storage for the column grouping information.
+        IF (ALLOCATED(BIGP)) THEN
+           DEALLOCATE (BIGP,BJGP,STAT=IER)
+           CALL CHECK_STAT(IER,760)
+        END IF
+        ALLOCATE (BIGP(N+1),BJGP(N),STAT=IER)
+        CALL CHECK_STAT(IER,770)
+
+        FUDGE = 0.4_dp
+        ONE_PLUS_FUDGE = 1.0_dp + FUDGE
+        MAXG = N + 1
+!       BDONE(1:N) = 0 ...
+        BDONE(1:N) = FUDGE
+        NCOL = 1
+        DO NG = 1, MAXG
+           BIGP(NG) = NCOL
+!          BINCL(1:N) = 0 ...
+           BINCL(1:N) = FUDGE
+           DO 30 J = 1, N
+!             Reject column J if it is already in a group.
+!             IF (BDONE(J) == 1) GOTO 30 ...
+              IBDONE = INT(BDONE(J))
+              IF (IBDONE == 1) GOTO 30
+!             Vertical extent of band = KBEGIN to KFINI.
+!             KJ = number of nonzeros in column J.
+!             BJA(K) = K implies nonzero at (k,j).
+              KBEGIN = MAX(J-MU,1)
+              KFINI = MIN(J+ML,N)
+              KJ = 0
+!             BJA(1:N) = 0 ...
+              BJA(1:N) = FUDGE
+!             Locate the row positions of the nonzeros in column J.
+!             Restrict attention to the band:
+              DO 10 K = KBEGIN, KFINI
+                 IF (K < J) THEN
+                    IF (NSUPS > 0) THEN
+                       DO I = NSUPS, 1, -1
+!                         KI = SUPDS(I) + J - 1
+                          KI = J + 1 - SUPDS(I)
+                          IF (K == KI) THEN
+                             KJ = KJ + 1
+!                            BJA(K) = K ...
+                             BJA(K) = REAL(K) + FUDGE
+                          END IF
+                       END DO
+                    END IF
+                 ELSEIF (K == J) THEN
+                    KJ = KJ + 1
+!                   BJA(K) = K ...
+                    BJA(K) = REAL(K) + FUDGE
+                 ELSE
+                    IF (NSUBS > 0) THEN
+                       DO I = NSUBS, 1, -1
+                          KI = SUBDS(I) + J -1
+                          IF (K == KI) THEN
+                             KJ = KJ + 1
+!                            BJA(K) = K ...
+                             BJA(K) = REAL(K) + FUDGE
+                          END IF
+                       END DO
+                    END IF
+              END IF
+ 10           CONTINUE
+!             At this point BJA contains the row numbers for
+!             the nonzeros in column J.
+              DO 20 K = KBEGIN, KFINI
+!                Reject column J if it overlaps any column
+!                already in this group.
+!                I = BJA(K)
+                 I = INT(BJA(K))
+                 IBINCL = INT(BINCL(I))
+!                IF (BINCL(I) == 1 .AND. I == K) GOTO 30
+                 IF (IBINCL == 1 .AND. I == K) GOTO 30
+ 20           END DO
+!             Accept column J into group NG.
+              BJGP(NCOL) = J
+              NCOL = NCOL + 1
+!             BDONE(J) = 1 ...
+              BDONE(J) = ONE_PLUS_FUDGE
+              DO K = 1, N
+!                IF (I == K) BINCL(I) = 1 ...
+                 I = INT(BJA(K))
+                 IF (I == K) BINCL(I) = ONE_PLUS_FUDGE
+              END DO
+ 30        END DO
+!          Done if this group is empty (grouping is complete).
+           IF (NCOL == BIGP(NG)) GOTO 40
+        END DO
+
+!       Should not get here since MAXG = N + 1.
+!       Terminal error if not all columns were chosen
+!       because MAXG too small.
+        IF (NCOL <= N) THEN
+           MSG = 'An impossible error occurred in subroutine BGROUP.'
+           CALL XERRDV(MSG,1600,2,0,0,0,0,ZERO,ZERO)
+        END IF
+
+        NG = MAXG
+ 40     BNGRP = NG - 1
+
+!       Trim BIGP to it's actual size if necessary.
+        IF (NG < MAXG) THEN
+!          BJA(1:NG) = BIGP(1:NG) ...
+           DO I = 1, NG
+              BJA(I) = REAL(BIGP(I)) + FUDGE
+           END DO
+           DEALLOCATE (BIGP,STAT=IER)
+           CALL CHECK_STAT(IER,780)
+           ALLOCATE (BIGP(NG),STAT=IER)
+           CALL CHECK_STAT(IER,790)
+!          BIGP(1:NG) = BJA(1:NG) ...
+           DO I = 1, NG
+              BIGP(I) = INT(BJA(I))
+           END DO
+        END IF
+        RETURN
+
+      END SUBROUTINE BGROUP
+!_______________________________________________________________________
+
+      SUBROUTINE BANDED_IAJA(N,ML,MU)
+! ..
+! Build the sparse structure descriptor arrays for a banded
+! matrix if the nonzero diagonals are known.
+! ..
+!     Input:
+!
+!       N       = the order of the matrix (number of odes)
+!       ML      = integer lower bandwidth
+!       MU      = integer upper bandwidth
+!
+!     Output: (PRIVATE information used in DVJAC)
+!
+!       IAB     = IA descriptor array
+!       JAB     = JA descriptor array
+!
+!    Note:
+!    The PRIVATE banded information SUBDS, NSUBS, SUPDS, NSUPS,
+!    ML, and MU must be defined before calling BANDED_IAJA.
+!       ML        = lower bandwidth
+!       MU        = upper bandwidth
+!       NSUBS     = number of strict sub diagonals
+!       SUBDS(I)  = row in which the Ith sub diagonal
+!                   begins, I=1, ..., NSUBS
+!       NSUPS     = number of strict super diagonals
+!       SUPDS(I)  = column in which the Ith super diagonal
+!                   begins, I=1, ..., NSUPS
+! ..
+        IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: N, ML, MU
+! ..
+! .. Local Scalars ..
+        INTEGER :: I, IER, J, K, KBEGIN, KFINI, KI, KJ, &
+          NP1, NZBB
+        CHARACTER (80) :: MSG
+! ..
+! .. Intrinsic Functions ..
+     INTRINSIC ALLOCATED, MAX, MIN
+! ..
+! .. FIRST EXECUTABLE STATEMENT BANDED_IAJA
+! ..
+!    Check for errors.
+
+     IF (.NOT.BUILD_IAJA) THEN
+        MSG = 'BANDED_IAJA cannot be called with BUILD_IAJA = .FALSE.'
+        CALL XERRDV(MSG,1610,2,0,0,0,0,ZERO,ZERO)
+     END IF
+
+     IF (NSUBS < 0) THEN
+        MSG = 'NSUBS < 0 in BANDED_IAJA.'
+        CALL XERRDV(MSG,1620,2,0,0,0,0,ZERO,ZERO)
+     ELSE
+        IF (NSUBS > 0) THEN
+           IF (NSUBS /= SIZE(SUBDS)) THEN
+              MSG = 'The size of the SUBDS array must'
+              CALL XERRDV(MSG,1630,1,0,0,0,0,ZERO,ZERO)
+              MSG = 'equal NSUBS in BANDED_IAJA.'
+              CALL XERRDV(MSG,1630,2,0,0,0,0,ZERO,ZERO)
+           END IF
+        END IF
+     END IF
+
+     IF (NSUPS < 0) THEN
+        MSG = 'NSUPS < 0 in BANDED_IAJA.'
+        CALL XERRDV(MSG,1640,2,0,0,0,0,ZERO,ZERO)
+     ELSE
+        IF (NSUPS > 0) THEN
+           IF (NSUPS /= SIZE(SUPDS)) THEN
+              MSG = 'The size of the SUPDS array must'
+              CALL XERRDV(MSG,1650,1,0,0,0,0,ZERO,ZERO)
+              MSG = 'equal NSUPS in BANDED_IAJA.'
+              CALL XERRDV(MSG,1650,2,0,0,0,0,ZERO,ZERO)
+           END IF
+        END IF
+     END IF
+
+!    Allocate the necessary storage for the descriptor arrays.
+
+!    Define the total number of elements in all diagonals.
+     NP1 = N + 1
+     NZB = (NSUBS + NSUPS + 1) * NP1 - 1
+     IF (NSUBS /= 0) THEN
+        DO I = 1, NSUBS
+           NZB = NZB - SUBDS(I)
+        END DO
+     END IF
+     IF (NSUPS /= 0) THEN
+        DO I = 1, NSUPS
+           NZB = NZB - SUPDS(I)
+        END DO
+     END IF
+     IF (ALLOCATED(IAB)) THEN
+        DEALLOCATE(IAB,JAB,STAT=IER)
+        CALL CHECK_STAT(IER,800)
+     END IF
+     ALLOCATE(IAB(NP1),JAB(NZB),STAT=IER)
+     CALL CHECK_STAT(IER,810)
+     IAB(1) = 1
+     NZBB = 0
+
+!    For each column in the matrix...
+     DO J = 1, N
+!       Vertical extent of band = KBEGIN to KFINI.
+!       KJ = number of nonzeros in column J.
+        KBEGIN = MAX(J-MU,1)
+        KFINI = MIN(J+ML,N)
+        KJ = 0
+!       Locate the row positions of the nonzeros in column J.
+!       (Restrict attention to the band.)
+        IAB(J+1) = IAB(J)
+!       For each row in the intersection of the band with
+!       this column ...
+        DO K = KBEGIN, KFINI
+!          Does column J intersect a super diagonal at (K,J)?
+           IF (K < J) THEN
+              DO I = NSUPS, 1, -1
+                 KI = J + 1 - SUPDS(I)
+                 IF (K == KI) THEN
+                    KJ = KJ + 1
+                    IAB(J+1) = IAB(J+1) + 1
+                    NZBB = NZBB + 1
+                    JAB(NZBB) = K
+                    GOTO 10
+                 END IF
+              END DO
+           ELSEIF (K == J) THEN
+!             We are on the main diagonal.
+              KJ = KJ + 1
+              IAB(J+1) = IAB(J+1) + 1
+              NZBB = NZBB + 1
+              JAB(NZBB) = K
+              GOTO 10
+           ELSE
+!             Does column J intersect a sub diagonal at (K,J)?
+              DO I = NSUBS, 1, -1
+                 KI = SUBDS(I) + J - 1
+                 IF (K == KI) THEN
+                    KJ = KJ + 1
+                    IAB(J+1) = IAB(J+1) + 1
+                    NZBB = NZBB + 1
+                    JAB(NZBB) = K
+                    GOTO 10
+                 END IF
+              END DO
+           END IF
+10         CONTINUE
+        END DO
+     END DO
+
+     IF (NZBB /= NZB) THEN
+        MSG = 'NZBB (I1) is not equal to NZB (I2)'
+        CALL XERRDV(MSG,1660,1,0,0,0,0,ZERO,ZERO)
+        MSG = 'in BANDED_IAJA.'
+        CALL XERRDV(MSG,1660,2,2,NZBB,NZB,0,ZERO,ZERO)
+     END IF
+     RETURN
+
+   END SUBROUTINE BANDED_IAJA
+!_______________________________________________________________________
+
+      SUBROUTINE BANDED_GET_BJNZ(N,ML,MU,JCOL,JNZ,NZJ)
+! ..
+! Locate the nonzeros in a given column of a sparse banded matrix
+! with known diagonals. This is a version of BANDED_IAJA modified
+! to do only one column.
+! ..
+!     Input:
+!
+!       N       = the order of the matrix (number of odes)
+!       ML      = integer lower bandwidth
+!       MU      = integer upper bandwidth
+!       JCOL    = column number between 1 and N
+!       JZ      = integer array of length N
+!
+!     Output:
+!
+!       JNZ    = integer array of length N. If
+!                 JNZ(K) is not 0, there is a
+!                 nonzero at position (K,JCOL)
+!       NZJ     = number of nozeros in column JCOL
+!
+!    Caution:
+!    No parameter checking is done since this subroutine
+!    will be called many times. Note that a number of
+!    PRIVATE parameters must be set before calling this
+!    subroutine.
+! ..
+        IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: N, ML, MU, JCOL
+        INTEGER, INTENT (OUT) :: NZJ
+! ..
+! .. Array Arguments ..
+        INTEGER, INTENT (OUT) :: JNZ(*)
+! ..
+! .. Local Scalars ..
+        INTEGER :: I, J, K, KBEGIN, KFINI, KI, KJ
+! ..
+! .. Intrinsic Functions ..
+     INTRINSIC MAX, MIN
+! ..
+! .. FIRST EXECUTABLE STATEMENT BANDED_GET_BJNZ
+! ..
+        JNZ(1:N) = 0
+        J = JCOL
+
+!       Locate the row positions of the nonzeros in column J.
+
+!       Vertical extent of band = KBEGIN to KFINI.
+        KBEGIN = MAX(J-MU,1)
+        KFINI = MIN(J+ML,N)
+!       KJ = number of nonzeros in column J.
+        KJ = 0
+!       For each row in the intersection of the band with
+!       this column ...
+        DO K = KBEGIN, KFINI
+!          Does column J intersect a super diagonal at (K,J)?
+           IF (K < J) THEN
+              DO I = NSUPS, 1, -1
+                 KI = J + 1 - SUPDS(I)
+                 IF (K == KI) THEN
+                    KJ = KJ + 1
+                    JNZ(KJ) = K
+                    GOTO 10
+                 END IF
+              END DO
+           ELSEIF (K == J) THEN
+!             We are on the main diagonal.
+              KJ = KJ + 1
+              JNZ(KJ) = K
+              GOTO 10
+           ELSE
+!             Does column J intersect a sub diagonal at (K,J)?
+              DO I = NSUBS, 1, -1
+                 KI = SUBDS(I) + J - 1
+                 IF (K == KI) THEN
+                    KJ = KJ + 1
+                    JNZ(KJ) = K
+                    GOTO 10
+                 END IF
+              END DO
+           END IF
+10         CONTINUE
+        END DO
+        NZJ = KJ
+     RETURN
+
+   END SUBROUTINE BANDED_GET_BJNZ
+!_______________________________________________________________________
+
+! Beginning of Jacobian related routines that use MA28
+
+      SUBROUTINE DVNLSS28(Y,YH,LDYH,SAVF,EWT,ACOR,IWM,WM,F,JAC, &
+        NFLAG,ATOL,ITOL)
+! ..
+! This is the nonlinear system solver for MA28 based sparse solutions.
+! ..
+! Subroutine DVNLSS28 is a nonlinear system solver, which uses functional
+! iteration or a chord (modified Newton) method. For the chord method
+! direct linear algebraic system solvers are used. Subroutine DVNLSS28
+! then handles the corrector phase of this integration package.
+! Communication with DVNLSS28 is done with the following variables. (For
+! more details, please see the comments in the driver subroutine.)
+! Y          = The dependent variable, a vector of length N, input.
+! YH         = The Nordsieck (Taylor) array, LDYH by LMAX, input
+!              and output. On input, it contains predicted values.
+! LDYH       = A constant >= N, the first dimension of YH, input.
+! SAVF       = A work array of length N.
+! EWT        = An error weight vector of length N, input.
+! ACOR       = A work array of length N, used for the accumulated
+!              corrections to the predicted y vector.
+! WM,IWM     = Real and integer work arrays associated with matrix
+!              operations in chord iteration (MITER /= 0).
+! F          = Dummy name for user supplied routine for f.
+! JAC        = Dummy name for user supplied Jacobian routine.
+! NFLAG      = Input/output flag, with values and meanings as follows:
+!              INPUT
+!                  0 first call for this time step.
+!                 -1 convergence failure in previous call to DVNLSS28.
+!                 -2 error test failure in DVSTEP.
+!              OUTPUT
+!                  0 successful completion of nonlinear solver.
+!                 -1 convergence failure or singular matrix.
+!                 -2 unrecoverable error in matrix preprocessing
+!                    (cannot occur here).
+!                 -3 unrecoverable error in solution (cannot occur
+!                    here).
+! IPUP       = Own variable flag with values and meanings as follows:
+!              0,          do not update the Newton matrix.
+!              MITER \= 0  update Newton matrix, because it is the
+!                          initial step, order was changed, the error
+!                          test failed, or an update is indicated by
+!                          the scalar RC or step counter NST.
+! For more details, see comments in driver subroutine.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: ITOL, LDYH
+        INTEGER, INTENT (INOUT) :: NFLAG
+! ..
+! .. Array Arguments ..
+        KPP_REAL, INTENT (INOUT) :: ACOR(*), EWT(*), SAVF(*), &
+          WM(*), Y(*), YH(LDYH,*)
+        KPP_REAL, INTENT (IN) :: ATOL(*)
+        INTEGER IWM(*)
+        LOGICAL DUMMY
+! ..
+! .. Subroutine Arguments ..
+        EXTERNAL F, JAC
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: ACNRMNEW, CSCALE, DCON, DEL, DELP
+        INTEGER :: I, IERPJ, IERSL, M
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, MAX, MIN
+! ..
+! .. FIRST EXECUTABLE STATEMENT DVNLSS28
+! ..
+! Get rid of a couple of needless compiler warning messages.
+        DUMMY = .FALSE.
+        IF (DUMMY) THEN
+          WM(1) = ZERO
+          IWM(1) = 0
+        END IF  
+! On the first step, on a change of method order, or after a
+! nonlinear convergence failure with NFLAG = -2, set IPUP = MITER
+! to force a Jacobian update when MITER /= 0.
+        IF (JSTART==0) NSLP = 0
+        IF (NFLAG==0) ICF = 0
+        IF (NFLAG==-2) IPUP = MITER
+        IF ((JSTART==0) .OR. (JSTART==-1)) IPUP = MITER
+!       If this is functional iteration, set CRATE = 1 and drop
+!       to 220.
+        IF (MITER==0) THEN
+          CRATE = ONE
+          GOTO 10
+        END IF
+
+! RC is the ratio of new to old values of the coefficient H/EL(2)=h/l1.
+! When RC differs from 1 by more than CCMAX, IPUP is set to MITER
+! to force DVJACS28 to be called, if a Jacobian is involved. In any
+! case, DVJACS28 is called at least every MSBP steps.
+
+        DRC = ABS(RC-ONE)
+        IF (DRC>CCMAX .OR. NST>=NSLP+MSBP) IPUP = MITER
+
+! Up to MAXCOR corrector iterations are taken. A convergence test is
+! made on the r.m.s. norm of each correction, weighted by the error
+! weight vector EWT. The sum of the corrections is accumulated in the
+! vector ACOR(i). The YH array is not altered in the corrector loop.
+
+10      M = 0
+        DELP = ZERO
+! Original:
+!       CALL DCOPY_F90(N,YH(1,1),1,Y,1)
+        CALL DCOPY_F90(N,YH(1:N,1),1,Y(1:N),1)
+        CALL F(N,TN,Y,SAVF)
+        NFE = NFE + 1
+        IF (BOUNDS) THEN
+          DO I = 1, NDX
+            IF (ABS(YH(IDX(I),1)-LB(I))<=ZERO) SAVF(IDX(I)) = &
+              MAX(SAVF(IDX(I)),ZERO)
+            IF (ABS(YH(IDX(I),1)-UB(I))<=ZERO) SAVF(IDX(I)) = &
+              MIN(SAVF(IDX(I)),ZERO)
+          END DO
+        END IF
+        IF (IPUP<=0) GOTO 20
+
+! If indicated, the matrix P = I - h*rl1*J is reevaluated and
+! preprocessed before starting the corrector iteration. IPUP
+! is set to 0 as an indicator that this has been done.
+
+        CALL DVJACS28(Y,YH,LDYH,EWT,ACOR,SAVF,F,JAC,IERPJ,N, &
+          ATOL,ITOL)
+        IPUP = 0
+        RC = ONE
+        DRC = ZERO
+        CRATE = ONE
+        NSLP = NST
+!     If matrix is singular, take error return to force cut in
+!     step size.
+        IF (IERPJ/=0) GOTO 70
+20      ACOR(1:N) = ZERO
+!       This is a looping point for the corrector iteration.
+30      IF (MITER/=0) GOTO 40
+
+! In the case of functional iteration, update Y directly from
+! the result of the last function evaluation.
+
+        SAVF(1:N) = RL1*(H*SAVF(1:N)-YH(1:N,2))
+        Y(1:N) = SAVF(1:N) - ACOR(1:N)
+        DEL = DVNORM(N,Y,EWT)
+        Y(1:N) = YH(1:N,1) + SAVF(1:N)
+        CALL DCOPY_F90(N,SAVF,1,ACOR,1)
+        GOTO 50
+
+! In the case of the chord method, compute the corrector error,
+! and solve the linear system with that as right-hand side and
+! P as coefficient matrix. The correction is scaled by the factor
+! 2/(1+RC) to account for changes in h*rl1 since the last
+! DVJACS28 call.
+
+40      Y(1:N) = (RL1*H)*SAVF(1:N) - (RL1*YH(1:N,2)+ACOR(1:N))
+        CALL DVSOLS28(Y,SAVF,IERSL)
+        NNI = NNI + 1
+        IF (IERSL>0) GOTO 60
+        IF (METH==2 .AND. ABS(RC-ONE)>ZERO) THEN
+          CSCALE = TWO/(ONE+RC)
+          CALL DSCAL_F90(N,CSCALE,Y,1)
+        END IF
+        DEL = DVNORM(N,Y,EWT)
+        CALL DAXPY_F90(N,ONE,Y,1,ACOR,1)
+        Y(1:N) = YH(1:N,1) + ACOR(1:N)
+
+! Test for convergence. If M > 0, an estimate of the convergence
+! rate constant is stored in CRATE, and this is used in the test.
+
+50      IF (M/=0) CRATE = MAX(CRDOWN*CRATE,DEL/DELP)
+        DCON = DEL*MIN(ONE,CRATE)/TQ(4)
+        IF (DCON<=ONE) GOTO 80
+        M = M + 1
+        IF (M==MAXCOR) GOTO 60
+        IF (M>=2 .AND. DEL>RDIV*DELP) GOTO 60
+        DELP = DEL
+        CALL F(N,TN,Y,SAVF)
+        NFE = NFE + 1
+        IF (BOUNDS) THEN
+          DO I = 1, NDX
+            IF (ABS(YH(IDX(I),1)-LB(I))<=ZERO) SAVF(IDX(I)) = &
+              MAX(SAVF(I),ZERO)
+            IF (ABS(YH(IDX(I),1)-UB(I))<=ZERO) SAVF(IDX(I)) = &
+              MIN(SAVF(I),ZERO)
+          END DO
+        END IF
+        GOTO 30
+
+60      IF (MITER==0 .OR. JCUR==1) GOTO 70
+        ICF = 1
+        IPUP = MITER
+        GOTO 10
+
+70      CONTINUE
+        NFLAG = -1
+        ICF = 2
+        IPUP = MITER
+        RETURN
+
+!       Return for successful step.
+80      NFLAG = 0
+
+!       Enforce bounds.
+        IF (BOUNDS) THEN
+          CHANGED_ACOR = .FALSE.
+          IF (M==0) THEN
+            ACNRM = DEL
+          ELSE
+            ACNRM = DVNORM(N,ACOR,EWT)
+          END IF
+          IF (MITER/=0) THEN
+!           Since Y(:) = YH(:,1) + ACOR(:):
+            DO I = 1, NDX
+              IF (Y(IDX(I))<LB(I)) THEN
+                CHANGED_ACOR = .TRUE.
+                ACOR(IDX(I)) = LB(I) - YH(IDX(I),1)
+                SAVF(IDX(I)) = ACOR(IDX(I))
+              END IF
+              IF (Y(IDX(I))>UB(I)) THEN
+                CHANGED_ACOR = .TRUE.
+                ACOR(IDX(I)) = UB(I) - YH(IDX(I),1)
+                SAVF(IDX(I)) = ACOR(IDX(I))
+              END IF
+            END DO
+          ELSE
+!           Since Y(:) = YH(:,1) + SAVF(:) and
+!           since CALL DCOPY_F90(N, SAVF, 1, ACOR, 1) ...
+            DO I = 1, NDX
+              IF (Y(IDX(I))<LB(IDX(I))) THEN
+                CHANGED_ACOR = .TRUE.
+                ACOR(IDX(I)) = LB(I) - YH(IDX(I),1)
+              END IF
+              IF (Y(IDX(I))>UB(IDX(I))) THEN
+                CHANGED_ACOR = .TRUE.
+                ACOR(IDX(I)) = UB(I) - YH(IDX(I),1)
+              END IF
+            END DO
+          END IF
+          IF (CHANGED_ACOR) THEN
+            IF (M==0) THEN
+              ACNRMNEW = DEL
+            ELSE
+              ACNRMNEW = DVNORM(N,ACOR,EWT)
+            END IF
+            ACNRM = MAX(ACNRM,ACNRMNEW)
+          ELSE
+          END IF
+          NFLAG = 0
+          JCUR = 0
+          ICF = 0
+        ELSE
+!         No projections are required.
+          NFLAG = 0
+          JCUR = 0
+          ICF = 0
+          IF (M==0) ACNRM = DEL
+          IF (M>0) ACNRM = DVNORM(N,ACOR,EWT)
+        END IF
+        RETURN
+
+      END SUBROUTINE DVNLSS28
+!_______________________________________________________________________
+
+      SUBROUTINE DVSOLS28(X,TEM,IERSL)
+! ..
+! Manage the solution of the MA28 based sparse linear system arising
+! from a chord iteration.
+! ..
+! This routine solves the sparse linear system arising from a chord
+! iteration. If MITER is 6 or 7, it calls MA28CD to accomplish this.
+! Communication with DVSOLS28 uses the following variables:
+! X = The right-hand side vector on input, and the solution vector
+!     on output, of length N.
+! TEM (=SAVF(*))
+! IERSL = Output flag. IERSL = 0 if no trouble occurred.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (INOUT) :: IERSL
+! ..
+! .. Array Arguments ..
+        KPP_REAL, INTENT (INOUT) :: TEM(*), X(*)
+! ..
+! .. Local Scalars ..
+        INTEGER :: I
+! ..
+! .. FIRST EXECUTABLE STATEMENT DVSOLS28
+! ..
+        IF (SCALE_MATRIX) THEN
+           DO I = 1, N
+              X(I) = X(I) * RSCALEX(I)
+           END DO
+        END IF
+        IERSL = 0
+        CALL MA28CD(N,PMAT,LICN_ALL,ICN,IKEEP28,X,TEM,1)
+        MA28CD_CALLS = MA28CD_CALLS + 1
+        IF (SCALE_MATRIX) THEN
+           DO I = 1, N
+              X(I) = X(I) * CSCALEX(I)
+           END DO
+        END IF
+        RETURN
+
+      END SUBROUTINE DVSOLS28
+!_______________________________________________________________________
+
+      SUBROUTINE DVJACS28(Y,YH,LDYH,EWT,FTEMP1,SAVF,F,JAC,IERPJ,N, &
+        ATOL,ITOL)
+! ..
+! Compute and process P = I - H*RL1*J, where J is an approximation to
+! the MA28 based sparse Jacobian.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (INOUT) :: IERPJ
+        INTEGER, INTENT (IN) :: LDYH, N, ITOL
+! ..
+! .. Array Arguments ..
+        KPP_REAL, INTENT (INOUT) :: EWT(*), FTEMP1(*), SAVF(*), Y(*), YH(LDYH,*)
+        KPP_REAL, INTENT (IN) :: ATOL(*)
+! ..
+! .. Subroutine Arguments ..
+        EXTERNAL F, JAC
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: CON, FAC, HRL1, R, R0, SRUR
+        INTEGER :: I, IER, J, JER, JJ, JJ1, JJ2, K, K1, K2, MA28,       &
+          MA28SAVE, MB28SAVE, NG, NZ
+        CHARACTER (80) :: MSG
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, EXP, MAX, REAL
+! ..
+! .. FIRST EXECUTABLE STATEMENT DVJACS28
+! ..
+        IERPJ = 0
+
+!       Structure determination
+
+!       Calculate the sparsity structure if this is the first call to
+!       DVJACS28 with ISTATE = 1 or if it is a continuation call with
+!       ISTATE = 3.
+        IF (ISTATC==1 .OR. ISTATC==3) THEN
+          CALL DVPREPS(N,Y,YH,LDYH,DTEMP,EWT,F,JAC)
+          ISTATC = 0
+        END IF
+        JCUR = 0
+        HRL1 = H*RL1
+        CON = -HRL1
+
+!       If MA28 = 4 the saved copy of the Jacobian will be used
+!       to restore PMAT. If MA28 = 1,2,3 the Jacobian will be
+!       recomputed. If MA28 = 1,2 the JVECT and ICN pointer arrays
+!       will be defined and MA28AD will be called to decompose
+!       PMAT. If MA28 = 3 the JVECT pointer array will be defined
+!       and MA28BD will be called to decompose PMAT using the ICN
+!       pointer array returned in the last call to MA28AD.
+
+        MA28 = 4
+        IF (INEWJ==1 .OR. MB28==0) MA28 = 3
+        IF (NST>=NSLJ+MSBJ) MA28 = 3
+!       IF (ICF==1 .OR. ICF==2) MA28 = 3
+        IF (ICF==1 .AND. DRC<CCMXJ) MA28 = 3
+        IF (ICF==2) MA28 = 3
+        IF (NST>=NSLG+MSBG) MA28 = 2
+        IF (JSTART==0 .OR. JSTART==-1) MA28 = 1
+        JSTART = 1
+10      IF (MA28<=2) NSLG = NST
+        IF (MA28<=3) NSLJ = NST
+
+!       Analytical Sparse Jacobian
+
+!       If MITER = 6, call JAC to evaluate J analytically, multiply
+!       J by CON = -H*EL(1), and add the identity matrix to form P.
+        IF (MITER==6) THEN
+          IF (MA28==4) THEN
+!           Reuse the saved Jacobian.
+            NZ = IAN(N+1) - 1
+            PMAT(1:NZ) = CON*JMAT(1:NZ)
+            DO K = 1, NZ
+              IF (JAN(K)==JVECT(K)) PMAT(K) = PMAT(K) + ONE
+            END DO
+            GOTO 90
+          END IF
+          JCUR = 1
+          NJE = NJE + 1
+          IF (MA28==1 .OR. MA28==2) THEN
+            NZ = IAN(N+1) - 1
+            CALL JAC(N,TN,Y,IAN,JAN,NZ,PMAT)
+            NZ = IAN(N+1) - 1
+            IF (NZ>NZ_ALL) THEN
+              MSG = 'DVODE_F90-- NZ > NZ_ALL in DVJACS28.'
+              CALL XERRDV(MSG,1670,2,0,0,0,0,ZERO,ZERO)
+            END IF
+!           Define column pointers for MA28AD.
+            CALL SET_ICN(N,IAN,ICN)
+            CALL CHECK_DIAG(N,IAN,JAN,ICN)
+            PMAT(1:NZ) = CON*PMAT(1:NZ)
+            DO K = 1, NZ
+              IF (JAN(K)==ICN(K)) PMAT(K) = PMAT(K) + ONE
+            END DO
+            GOTO 80
+          ELSE
+!           MA28 = 3...
+            NZ = IAN(N+1) - 1
+            CALL JAC(N,TN,Y,IAN,JAN,NZ,PMAT)
+            NZ = IAN(N+1) - 1
+            IF (NZ>NZ_ALL) THEN
+              MSG = 'DVODE_F90-- NZ > NZ_ALL in DVJACS28.'
+              CALL XERRDV(MSG,1680,2,0,0,0,0,ZERO,ZERO)
+            END IF
+!           Define column pointers for MA28AD.
+            CALL SET_ICN(N,IAN,JVECT)
+            CALL CHECK_DIAG(N,IAN,JAN,JVECT)
+            IF (INEWJ/=1) JMAT(1:NZ) = PMAT(1:NZ)
+            PMAT(1:NZ) = CON*PMAT(1:NZ)
+            DO K = 1, NZ
+              IF (JAN(K)==JVECT(K)) PMAT(K) = PMAT(K) + ONE
+            END DO
+            GOTO 90
+          END IF
+        END IF
+
+!       Finite Difference Sparse Jacobian
+
+!       If MITER = 7, evaluate J numerically, multiply J by
+!       CON, and add the identity matrix to form P.
+        IF (MITER==7) THEN
+          IF (MA28==4) THEN
+!           Reuse the saved constant Jacobian.
+            NZ = IAN(N+1) - 1
+            PMAT(1:NZ) = CON*JMAT(1:NZ)
+            DO J = 1, N
+              K1 = IAN(J)
+              K2 = IAN(J+1) - 1
+              DO K = K1, K2
+                I = JAN(K)
+                IF (I==J) PMAT(K) = PMAT(K) + ONE
+              END DO
+            END DO
+            GOTO 90
+          ELSE
+            NZ = IAN(N+1) - 1
+            JCUR = 1
+            IF (.NOT.(J_IS_CONSTANT.AND.J_HAS_BEEN_COMPUTED)) THEN
+               IF (USE_JACSP) THEN
+!                 Approximate the Jacobian using Doug Salane's JACSP.
+!                 The JPNTRDS and INDROWDS pointer arrays were defined
+!                 in DVPREPS (and altered in DSM).
+                  IOPTDS(1) = 2
+                  IOPTDS(2) = 0
+                  IOPTDS(3) = 1
+                  IOPTDS(5) = 0
+!                 INFORDS(4) was initialized in DVPREPS (and altered in
+!                 the first call to JACSP).
+                  LWKDS  = 3 * N
+                  LIWKDS = 50 + N
+                  NRFJACDS = NZ
+                  NCFJACDS = 1
+
+!                 Set flag to indicate how the YSCALE vector will be
+!                 set for JACSP.
+                  LIKE_ORIGINAL_VODE = .FALSE.
+!                 Calculate the YSCALEDS vector for JACSPDV.
+                  IF (LIKE_ORIGINAL_VODE) THEN
+                     FAC = DVNORM(N,SAVF,EWT)
+!                    JACSPDB multiplies YSCALEDS(*) BY UROUND**0.825:
+!                    R0 = THOU*ABS(H)*UROUND*REAL(N)*FAC
+                     R0 = THOU*ABS(H)*REAL(N)*FAC
+                     IF (ABS(R0)<=ZERO) R0 = ONE
+!                    SRUR = WM1
+                     DO J = 1, N
+!                       JACSPDB multiplies YSCALEDS(*) BY UROUND**0.825:
+!                       R = MAX(ABS(Y(J)),R0/EWT(J))
+                        R = MAX(ABS(Y(J))/U325,(R0/EWT(J))*U125)
+                        YSCALEDS(J) = R
+                     END DO
+                  ELSE
+                     IF (ITOL == 1 .OR. ITOL == 3) THEN
+                        DO J = 1, N
+                           YSCALEDS(J) = MAX(ABS(Y(J)),ATOL(1),UROUND)
+                        END DO
+                     ELSE
+                        DO J = 1, N
+                          YSCALEDS(J) = MAX(ABS(Y(J)),ATOL(J),UROUND)
+                        END DO
+                     END IF
+                  END IF
+
+                  CALL JACSPDB(F,N,TN,Y,SAVF,PMAT(1),NRFJACDS, &
+                    YSCALEDS,FACDS,IOPTDS,WKDS,LWKDS,IWKDS,LIWKDS, &
+                    MAXGRPDS,NGRPDS,JPNTRDS,INDROWDS)
+                  NFE = NFE + IWKDS(7)
+                  NJE = NJE + 1
+
+                  DO NG = 1, MAXGRPDS
+                    JJ1 = IGP(NG)
+                    JJ2 = IGP(NG+1) - 1
+                    DO JJ = JJ1, JJ2
+                      J = JGP(JJ)
+                      K1 = IAN(J)
+                      K2 = IAN(J+1) - 1
+                      DO K = K1, K2
+                        I = JAN(K)
+                        GOTO (17,17,18) MA28
+!                       Define the row pointers for MA28AD.
+17                      JVECT(K) = I
+!                       Define the column pointers for MA28AD.
+                        ICN(K) = J
+                        GOTO 19
+!                       Define the column pointers for MA28AD.
+18                      JVECT(K) = J
+19                      CONTINUE
+                        IF (INEWJ==0) JMAT(K) = PMAT(K)
+                        PMAT(K) = CON*PMAT(K)
+                        IF (I==J) PMAT(K) = PMAT(K) + ONE
+                      END DO
+                    END DO
+                  END DO
+                  NFE = NFE + MAXGRPDS
+               ELSE
+                  FAC = DVNORM(N,SAVF,EWT)
+                  R0 = THOU*ABS(H)*UROUND*REAL(N)*FAC
+                  IF (ABS(R0)<=ZERO) R0 = ONE
+                  SRUR = WM1
+                  DO NG = 1, NGP
+                    JJ1 = IGP(NG)
+                    JJ2 = IGP(NG+1) - 1
+                    DO JJ = JJ1, JJ2
+                      J = JGP(JJ)
+                      R = MAX(SRUR*ABS(Y(J)),R0/EWT(J))
+                      Y(J) = Y(J) + R
+                    END DO
+                    CALL F(N,TN,Y,FTEMP1)
+                    NFE = NFE + 1
+                    DO JJ = JJ1, JJ2
+                      J = JGP(JJ)
+                      Y(J) = YH(J,1)
+                      R = MAX(SRUR*ABS(Y(J)),R0/EWT(J))
+                      FAC = ONE / R
+                      K1 = IAN(J)
+                      K2 = IAN(J+1) - 1
+                      DO K = K1, K2
+                        I = JAN(K)
+                        GOTO (20,20,30) MA28
+!                       Define row pointers for MA28AD.
+20                      JVECT(K) = I
+!                       Define column pointers for MA28AD.
+                        ICN(K) = J
+                        GOTO 40
+!                       Define column pointers for MA28AD.
+30                      JVECT(K) = J
+40                      PMAT(K) = (FTEMP1(I)-SAVF(I)) * FAC
+                        IF (INEWJ==0) JMAT(K) = PMAT(K)
+                        PMAT(K) = CON*PMAT(K)
+                        IF (I==J) PMAT(K) = PMAT(K) + ONE
+                      END DO
+                    END DO
+                  END DO
+                  NFE = NFE + NGP
+                  NJE = NJE + 1
+               END IF
+               IF (J_IS_CONSTANT) J_HAS_BEEN_COMPUTED = .TRUE.
+            ELSE
+!              Do not recompute the constant Jacobian.
+!              Reuse the saved Jacobian.
+               NZ = IAN(N+1) - 1
+               PMAT(1:NZ) = CON*JMAT(1:NZ)
+               DO J = 1, N
+                 K1 = IAN(J)
+                 K2 = IAN(J+1) - 1
+                 DO K = K1, K2
+                   I = JAN(K)
+                   IF (I==J) PMAT(K) = PMAT(K) + ONE
+                   GOTO (50,50,60) MA28
+!                  Define row pointers for MA28AD.
+50                 JVECT(K) = I
+!                  Define column pointers for MA28AD.
+                   ICN(K) = J
+                   GOTO 70
+!                  Define column pointers for MA28AD.
+60                 JVECT(K) = J
+70                 CONTINUE
+                 END DO
+               END DO
+            END IF
+            GOTO (80,80,90) MA28
+          END IF
+        END IF
+
+!       MA28AD does an LU factorization based on a pivotal strategy
+!       designed to compromise between maintaining sparsity and
+!       controlling loss of accuracy due to roundoff error. Unless
+!       magnitudes of Jacobian elements change so as to invalidate
+!       choice of pivots, MA28AD need only be called at beginning
+!       of the integration.
+
+80      CONTINUE
+        IF (SCALE_MATRIX) THEN
+!          MA19AD computes scaling factors for the iteration matrix.
+           CALL MC19AD(N,NZ,PMAT,JAN,ICN,RSCALEX,CSCALEX,WSCALEX)
+           MC19AD_CALLS = MC19AD_CALLS + 1
+           DO I =1, N
+              RSCALEX(I) = EXP(RSCALEX(I))
+              CSCALEX(I) = EXP(CSCALEX(I))
+           END DO
+           DO K = 1, NZ
+              I = JAN(K)
+              J = ICN(K)
+              PMAT(K) = PMAT(K) * RSCALEX(I) * CSCALEX(J)
+           END DO
+        END IF
+        OK_TO_CALL_MA28 = .TRUE.
+        CALL MA28AD(N,NZ,PMAT,LICN_ALL,JAN,LIRN_ALL,ICN,U_PIVOT, &
+          IKEEP28,IW28,FTEMP1,IER)
+        OK_TO_CALL_MA28 = .FALSE.
+        MA28AD_CALLS = MA28AD_CALLS + 1
+        MA28SAVE = MA28
+        MB28SAVE = MB28
+        MB28 = 0
+        NLU = NLU + 1
+        MAX_MINIRN = MAX(MAX_MINIRN,MINIRN)
+        MAX_MINICN = MAX(MAX_MINICN,MINICN)
+!       IER = -1: Numerically singular Jacobian
+!       IER = -2: Structurally singular Jacobian
+        IF (IER==-1 .OR. IER==-2) IERPJ = 1
+        IF (IER==-3) THEN
+!         LIRN_ALL is not large enough.
+          IF (LP /= 0) THEN
+             MSG = 'LIRN_ALL (=I1) is not large enough.'
+             CALL XERRDV(MSG,1690,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'Allocating more space for another try.'
+             CALL XERRDV(MSG,1690,1,1,LIRN_ALL,0,0,ZERO,ZERO)
+          END IF
+!         Allocate more space for JAN and JVECT and try again.
+          LIRN_ALL = LIRN_ALL + MAX(MAX(1000,ELBOW_ROOM*NZ_SWAG),10*N)
+          LIRN_ALL = MAX(LIRN_ALL,(11*MINIRN)/10)
+          IF (LIRN_ALL>MAX_ARRAY_SIZE) THEN
+            MSG = 'Maximum array size exceeded. Stopping.'
+            CALL XERRDV(MSG,1700,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          DEALLOCATE (JAN,STAT=JER)
+          CALL CHECK_STAT(JER,820)
+          ALLOCATE (JAN(LIRN_ALL),STAT=JER)
+          CALL CHECK_STAT(JER,830)
+          IF (MITER==7) THEN
+            JAN(1:NZ) = JVECT(1:NZ)
+          END IF
+          DEALLOCATE (JVECT,STAT=JER)
+          CALL CHECK_STAT(JER,840)
+          ALLOCATE (JVECT(LIRN_ALL),STAT=JER)
+          CALL CHECK_STAT(JER,850)
+          IF (MITER==7) THEN
+            JVECT(1:NZ) = JAN(1:NZ)
+          END IF
+          MA28 = MA28SAVE
+          MB28 = MB28SAVE
+          NLU = NLU - 1
+!         Since PMAT has changed, it must be restored:
+          IF (J_IS_CONSTANT) J_HAS_BEEN_COMPUTED = .FALSE.
+          GOTO 10
+        END IF
+        IF (IER==-4 .OR. IER==-5 .OR. IER==-6) THEN
+!         LICN_ALL is not large enough.
+          IF (LP /= 0) THEN
+             MSG = 'LICN_ALL (=I1) is not large enough.'
+             CALL XERRDV(MSG,1710,1,0,0,0,0,ZERO,ZERO)
+             MSG = 'Allocating more space for another try.'
+             CALL XERRDV(MSG,1710,1,1,LICN_ALL,0,0,ZERO,ZERO)
+          END IF
+!         Allocate more space for JAN and JVECT and try again.
+          LICN_ALL = LICN_ALL + MAX(MAX(1000,ELBOW_ROOM*NZ_SWAG),10*N)
+          LICN_ALL = MAX(LICN_ALL,(11*MINICN)/10)
+          IF (LICN_ALL>MAX_ARRAY_SIZE) THEN
+            MSG = 'Maximum array size exceeded. Stopping.'
+            CALL XERRDV(MSG,1720,2,0,0,0,0,ZERO,ZERO)
+          END IF
+          DEALLOCATE (PMAT,ICN,STAT=JER)
+          CALL CHECK_STAT(JER,860)
+          ALLOCATE (PMAT(LICN_ALL),ICN(LICN_ALL),STAT=JER)
+          PMAT(1:LICN_ALL) = ZERO
+          CALL CHECK_STAT(JER,870)
+          IF (MITER==7) THEN
+            JAN(1:NZ) = JVECT(1:NZ)
+          END IF
+          MA28 = MA28SAVE
+          MB28 = MB28SAVE
+          NLU = NLU - 1
+          IF (J_IS_CONSTANT) J_HAS_BEEN_COMPUTED = .FALSE.
+          GOTO 10
+        END IF
+        IF (MITER/=7) RETURN
+        JAN(1:NZ) = JVECT(1:NZ)
+        RETURN
+
+!       MA28BD uses the pivot sequence generated by an earlier call
+!       to MA28AD to factor a new matrix of the same structure.
+
+90      CONTINUE
+
+        IF (SCALE_MATRIX) THEN
+           DO K =1, NZ
+              I = JAN(K)
+              J = JVECT(K)
+              PMAT(K) = PMAT(K) * RSCALEX(I) * CSCALEX(J)
+           END DO
+        END IF
+        CALL MA28BD(N,NZ,PMAT,LICN_ALL,JAN,JVECT,ICN,IKEEP28,IW28, &
+          FTEMP1,IER)
+        MA28BD_CALLS = MA28BD_CALLS + 1
+        MB28 = 1
+        NLU = NLU + 1
+!       IER = -2 : The matrix is numerically singular. The MA28AD
+!                  pivot sequence leads to a zero pivot, that is,
+!                  to one for which the ratio of it to the smallest
+!                  element in the row is less than EPS.
+!       IER = -13: The matrix is structurally singular.
+
+        IF (REDO_PIVOT_SEQUENCE) THEN
+!          Force MA28AD to calculate a new pivot sequence.
+           IF (IER/=-13 .AND. IER/=-2 .AND. IER<=0) RETURN
+           IF (IER==-2) MA28 = 1
+           IF (IER==-13) MA28 = 1
+           IF (J_IS_CONSTANT) J_HAS_BEEN_COMPUTED = .FALSE.
+        ELSE
+           IF (IER==-2) IERPJ = 1
+           IF (IER/=-13 .AND. IER<=0) RETURN
+           IF (IER==-13) MA28 = 1
+           IF (J_IS_CONSTANT) J_HAS_BEEN_COMPUTED = .FALSE.
+        END IF
+        IF (IER>0) MA28 = 2
+        IF (IER==-13 .AND. MITER==7 .AND. MOSS==2) THEN
+!          Recompute the sparsity structure.
+           CALL DVRENEW(N,Y,SAVF,EWT,F)
+           IF (J_IS_CONSTANT) J_HAS_BEEN_COMPUTED = .FALSE.
+        END IF
+        GOTO 10
+
+      END SUBROUTINE DVJACS28
+! End of Jacobian related routines that use MA28
+!_______________________________________________________________________
+
+      SUBROUTINE SET_ICN(N,IA,ICN)
+! ..
+! Define the column locations of nonzero elements for a sparse
+! matrix.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: N
+! ..
+! .. Array Arguments ..
+        INTEGER, INTENT (IN) :: IA(*)
+        INTEGER, INTENT (INOUT) :: ICN(*)
+! ..
+! .. Local Scalars ..
+        INTEGER :: J, KMAX, KMIN
+! ..
+! .. FIRST EXECUTABLE STATEMENT SET_ICN
+! ..
+        KMIN = 1
+        DO J = 1, N
+          KMAX = IA(J+1) - 1
+          ICN(KMIN:KMAX) = J
+          KMIN = KMAX + 1
+        END DO
+
+      END SUBROUTINE SET_ICN
+!_______________________________________________________________________
+
+      SUBROUTINE CHECK_DIAG(N,IA,JA,ICN)
+! ..
+! Check that the diagonal is included in the sparse matrix
+! description arrays.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: N
+! ..
+! .. Array Arguments ..
+        INTEGER, INTENT (IN) :: IA(*), ICN(*), JA(*)
+! ..
+! .. Local Scalars ..
+        INTEGER :: J, K, KMAX, KMIN
+        CHARACTER (80) :: MSG
+! ..
+! .. FIRST EXECUTABLE STATEMENT CHECK_DIAG
+! ..
+        KMIN = 1
+        DO J = 1, N
+          KMAX = IA(J+1) - 1
+          DO K = KMIN, KMAX
+            IF (JA(K)==ICN(K)) GOTO 10
+          END DO
+          MSG = 'In CHECK_DIAG, the diagonal is not present.'
+          CALL XERRDV(MSG,1730,2,0,0,0,0,ZERO,ZERO)
+10        CONTINUE
+          KMIN = KMAX + 1
+        END DO
+
+      END SUBROUTINE CHECK_DIAG
+!_______________________________________________________________________
+
+      SUBROUTINE DVCHECK(JOB,G,NEQ,Y,YH,NYH,G0,G1,GX,IRT)
+! ..
+! Check for the presence of a root in the vicinity of the current T,
+! in a manner depending on the input flag JOB, and call DVROOTS to
+! locate the root as precisely as possible.
+! ..
+! This subroutine is essentially DRCHEK from LSODAR.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (INOUT) :: IRT
+        INTEGER, INTENT (IN) :: JOB, NEQ, NYH
+! ..
+! .. Array Arguments ..
+        KPP_REAL, INTENT (INOUT) :: G0(*), G1(*), GX(*), Y(*), YH(NYH,*)
+! ..
+! .. Subroutine Arguments ..
+        EXTERNAL G
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: HMING, T1, TEMP1, TEMP2, X
+        INTEGER :: I, IFLAG, JFLAG
+        LOGICAL :: ZROOT
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, MAX, MIN, SIGN
+! ..
+! In addition to variables described previously, DVCHECK
+! uses the following for communication:
+! JOB    = integer flag indicating type of call:
+!          JOB = 1 means the problem is being initialized, and DVCHECK
+!                  is to look for a root at or very near the initial T.
+!          JOB = 2 means a continuation call to the solver was just
+!                  made, and DVCHECK is to check for a root in the
+!                  relevant part of the step last taken.
+!          JOB = 3 means a successful step was just taken, and DVCHECK
+!                  is to look for a root in the interval of the step.
+! G0     = array of length NG, containing the value of g at T = T0ST.
+!          G0 is input for JOB >= 2, and output in all cases.
+! G1,GX  = arrays of length NG for work space.
+! IRT    = completion flag:
+!          IRT = 0  means no root was found.
+!          IRT = -1 means JOB = 1 and a root was found too near to T.
+!          IRT = 1  means a legitimate root was found (JOB = 2 or 3).
+!                   On return, T0ST is the root location, and Y is the
+!                   corresponding solution vector.
+! T0ST   = value of T at one endpoint of interval of interest. Only
+!          roots beyond T0ST in the direction of integration are sought.
+!          T0ST is input if JOB >= 2, and output in all cases.
+!          T0ST is updated by DVCHECK, whether a root is found or not.
+! TLAST  = last value of T returned by the solver (input only).
+! TOUTC  = copy of TOUT(input only).
+! IRFND  = input flag showing whether the last step taken had a root.
+!          IRFND = 1 if it did, = 0 if not.
+! ITASKC = copy of ITASK (input only).
+! NGC    = copy of NG (input only).
+! ..
+! .. FIRST EXECUTABLE STATEMENT DVCHECK
+! ..
+        IRT = 0
+        JROOT(1:NGC) = 0
+        HMING = (ABS(TN)+ABS(H))*UROUND*HUN
+
+        GOTO (10,30,80) JOB
+
+!       Evaluate g at initial T, and check for zero values.
+10      CONTINUE
+        T0ST = TN
+        CALL G(NEQ,T0ST,Y,NGC,G0)
+        NGE = 1
+        ZROOT = .FALSE.
+        DO I = 1, NGC
+          IF (ABS(G0(I))<=ZERO) ZROOT = .TRUE.
+        END DO
+        IF (.NOT.ZROOT) GOTO 20
+!       g has a zero at T. Look at g at T + (small increment).
+!       TEMP1 = SIGN(HMING, H)
+!       T0ST = T0ST + TEMP1
+!       TEMP2 = TEMP1 / H
+        TEMP2 = MAX(HMING/ABS(H),TENTH)
+        TEMP1 = TEMP2*H
+        T0ST = T0ST + TEMP1
+        Y(1:N) = Y(1:N) + TEMP2*YH(1:N,2)
+        CALL G(NEQ,T0ST,Y,NGC,G0)
+        NGE = NGE + 1
+        ZROOT = .FALSE.
+        DO I = 1, NGC
+          IF (ABS(G0(I))<=ZERO) ZROOT = .TRUE.
+        END DO
+        IF (.NOT.ZROOT) GOTO 20
+!       g has a zero at T and also close to T. Take error return.
+        IRT = -1
+        RETURN
+
+20      CONTINUE
+        RETURN
+
+30      CONTINUE
+        IF (IRFND==0) GOTO 70
+!       If a root was found on the previous step, evaluate G0 = g(T0ST).
+        CALL DVINDY_CORE(T0ST,0,YH,NYH,Y,IFLAG)
+        IF (BOUNDS) THEN
+          DO I = 1, NDX
+            Y(IDX(I)) = MAX(Y(IDX(I)),LB(I))
+            Y(IDX(I)) = MIN(Y(IDX(I)),UB(I))
+          END DO
+        END IF
+        CALL G(NEQ,T0ST,Y,NGC,G0)
+        NGE = NGE + 1
+        ZROOT = .FALSE.
+        DO I = 1, NGC
+          IF (ABS(G0(I))<=ZERO) ZROOT = .TRUE.
+        END DO
+        IF (.NOT.ZROOT) GOTO 70
+!       g has a zero at T0ST. Look at g at T + (small increment).
+        TEMP1 = SIGN(HMING,H)
+        T0ST = T0ST + TEMP1
+        IF ((T0ST-TN)*H<ZERO) GOTO 40
+        TEMP2 = TEMP1/H
+        Y(1:N) = Y(1:N) + TEMP2*YH(1:N,2)
+        GOTO 50
+40      CALL DVINDY_CORE(T0ST,0,YH,NYH,Y,IFLAG)
+        IF (BOUNDS) THEN
+          DO I = 1, NDX
+            Y(IDX(I)) = MAX(Y(IDX(I)),LB(I))
+            Y(IDX(I)) = MIN(Y(IDX(I)),UB(I))
+          END DO
+        END IF
+50      CALL G(NEQ,T0ST,Y,NGC,G0)
+        NGE = NGE + 1
+        ZROOT = .FALSE.
+        DO 60 I = 1, NGC
+          IF (ABS(G0(I))>ZERO) GOTO 60
+          JROOT(I) = 1
+          ZROOT = .TRUE.
+60      END DO
+        IF (.NOT.ZROOT) GOTO 70
+!       g has a zero at T0ST and also close to T0ST. Return root.
+        IRT = 1
+        RETURN
+!       G0 has no zero components. Proceed to check relevant interval.
+70      IF (ABS(TN-TLAST)<=ZERO) GOTO 130
+
+80      CONTINUE
+!       Set T1 to TN or TOUTC, whichever comes first, and get g at T1.
+        IF (ITASKC==2 .OR. ITASKC==3 .OR. ITASKC==5) GOTO 90
+        IF ((TOUTC-TN)*H>=ZERO) GOTO 90
+        T1 = TOUTC
+        IF ((T1-T0ST)*H<=ZERO) GOTO 130
+        CALL DVINDY_CORE(T1,0,YH,NYH,Y,IFLAG)
+        IF (BOUNDS) THEN
+          DO I = 1, NDX
+            Y(IDX(I)) = MAX(Y(IDX(I)),LB(I))
+            Y(IDX(I)) = MIN(Y(IDX(I)),UB(I))
+          END DO
+        END IF
+        GOTO 100
+90      T1 = TN
+        DO I = 1, N
+          Y(I) = YH(I,1)
+        END DO
+100     CALL G(NEQ,T1,Y,NGC,G1)
+        NGE = NGE + 1
+!       Call DVROOTS to search for root in interval from T0ST to T1.
+        JFLAG = 0
+110     CONTINUE
+        CALL DVROOTS(NGC,HMING,JFLAG,T0ST,T1,G0,G1,GX,X)
+        IF (JFLAG>1) GOTO 120
+        CALL DVINDY_CORE(X,0,YH,NYH,Y,IFLAG)
+        IF (BOUNDS) THEN
+          DO I = 1, NDX
+            Y(IDX(I)) = MAX(Y(IDX(I)),LB(I))
+            Y(IDX(I)) = MIN(Y(IDX(I)),UB(I))
+          END DO
+        END IF
+        CALL G(NEQ,X,Y,NGC,GX)
+        NGE = NGE + 1
+        GOTO 110
+120     T0ST = X
+        CALL DCOPY_F90(NGC,GX,1,G0,1)
+        IF (JFLAG==4) GOTO 130
+!       Found a root. Interpolate to X and return.
+        CALL DVINDY_CORE(X,0,YH,NYH,Y,IFLAG)
+        IF (BOUNDS) THEN
+          DO I = 1, NDX
+            Y(IDX(I)) = MAX(Y(IDX(I)),LB(I))
+            Y(IDX(I)) = MIN(Y(IDX(I)),UB(I))
+          END DO
+        END IF
+        IRT = 1
+        RETURN
+130     CONTINUE
+        RETURN
+
+      END SUBROUTINE DVCHECK
+!_______________________________________________________________________
+
+      SUBROUTINE DVROOTS(NG,HMIN,JFLAG,X0,X1,G0,G1,GX,X)
+! ..
+! Perform root finding for DVODE_F90.
+! ..
+! This is essentially subroutine DROOTS from LSODAR.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        KPP_REAL, INTENT (IN) :: HMIN
+        KPP_REAL, INTENT (INOUT) :: X, X0, X1
+        INTEGER, INTENT (INOUT) :: JFLAG
+        INTEGER, INTENT (IN) :: NG
+! ..
+! .. Array Arguments ..
+        KPP_REAL, INTENT (INOUT) :: G0(NG), G1(NG), GX(NG)
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: T2, TMAX
+        INTEGER :: I, IMXOLD, NXLAST
+        LOGICAL :: SGNCHG, XROOT, ZROOT
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, SIGN
+! ..
+! This subroutine finds the leftmost root of a set of arbitrary
+! functions gi(x) (i = 1,...,NG) in an interval (X0,X1). Only roots
+! of odd multiplicity (i.e. changes of sign of the gi) are found.
+! Here the sign of X1 - X0 is arbitrary, but is constant for a given
+! problem, and 'leftmost' means nearest to X0.The values of the
+! vector-valued function g(x) = (gi, i=1...NG) are communicated
+! through the call sequence of DVROOTS. The method used is the
+! Illinois algorithm.
+
+! Reference:
+! Kathie L. Hiebert and Lawrence F. Shampine, Implicitly Defined
+! Output Points for Solutions of ODEs, Sandia Report SAND/80-0180,
+! February 1980.
+
+! Description of parameters.
+
+! NG     = number of functions gi, or the number of components of
+!          the vector valued function g(x). Input only.
+
+! HMIN   = resolution parameter in X. Input only. When a root is
+!          found, it is located only to within an error of HMIN in X.
+!          Typically, HMIN should be set to something on the order of
+!               100 * UROUND * MAX(ABS(X0),ABS(X1)),
+!          where UROUND is the unit roundoff of the machine.
+
+! JFLAG  = integer flag for input and output communication.
+
+!          On input, set JFLAG = 0 on the first call for the problem,
+!          and leave it unchanged until the problem is completed.
+!          (The problem is completed when JFLAG >= 2 on return.)
+
+!          On output, JFLAG has the following values and meanings:
+!          JFLAG = 1 means DVROOTS needs a value of g(x). Set GX = g(X)
+!                    and call DVROOTS again.
+!          JFLAG = 2 means a root has been found. The root is
+!                    at X, and GX contains g(X). (Actually, X is the
+!                    rightmost approximation to the root on an interval
+!                    (X0,X1) of size HMIN or less.)
+!          JFLAG = 3 means X = X1 is a root, with one or more of the gi
+!                    being zero at X1 and no sign changes in (X0,X1).
+!                    GX contains g(X) on output.
+!          JFLAG = 4 means no roots (of odd multiplicity) were
+!                    found in (X0,X1) (no sign changes).
+
+! X0,X1  = endpoints of the interval where roots are sought.
+!          X1 and X0 are input when JFLAG = 0 (first call), and
+!          must be left unchanged between calls until the problem is
+!          completed. X0 and X1 must be distinct, but X1 - X0 may be
+!          of either sign. However, the notion of 'left' and 'right'
+!          will be used to mean nearer to X0 or X1, respectively.
+!          When JFLAG >= 2 on return, X0 and X1 are output, and
+!          are the endpoints of the relevant interval.
+
+! G0,G1  = arrays of length NG containing the vectors g(X0) and g(X1),
+!          respectively. When JFLAG = 0, G0 and G1 are input and
+!          none of the G0(i) should be zero.
+!          When JFLAG >= 2 on return, G0 and G1 are output.
+
+! GX     = array of length NG containing g(X). GX is input
+!          when JFLAG = 1, and output when JFLAG >= 2.
+
+! X      = independent variable value. Output only.
+!          When JFLAG = 1 on output, X is the point at which g(x)
+!          is to be evaluated and loaded into GX.
+!          When JFLAG = 2 or 3, X is the root.
+!          When JFLAG = 4, X is the right endpoint of the interval, X1.
+
+! JROOT  = integer array of length NG. Output only.
+!          When JFLAG = 2 or 3, JROOT indicates which components
+!          of g(x) have a root at X. JROOT(i) is 1 if the i-th
+!          component has a root, and JROOT(i) = 0 otherwise.
+! ..
+! .. FIRST EXECUTABLE STATEMENT DVROOTS
+! ..
+        IF (JFLAG==1) GOTO 90
+!       JFLAG /= 1. Check for change in sign of g or zero at X1.
+        IMAX = 0
+        TMAX = ZERO
+        ZROOT = .FALSE.
+        DO 20 I = 1, NG
+          IF (ABS(G1(I))>ZERO) GOTO 10
+          ZROOT = .TRUE.
+          GOTO 20
+!         At this point, G0(i) has been checked and cannot be zero.
+10        IF (ABS(SIGN(ONE,G0(I))-SIGN(ONE,G1(I)))<=ZERO) GOTO 20
+          T2 = ABS(G1(I)/(G1(I)-G0(I)))
+          IF (T2<=TMAX) GOTO 20
+          TMAX = T2
+          IMAX = I
+20      END DO
+        IF (IMAX>0) GOTO 30
+        SGNCHG = .FALSE.
+        GOTO 40
+30      SGNCHG = .TRUE.
+40      IF (.NOT.SGNCHG) GOTO 200
+!       There is a sign change. Find the first root in the interval.
+        XROOT = .FALSE.
+        NXLAST = 0
+        LAST = 1
+
+!       Repeat until the first root in the interval is found. Loop point.
+50      CONTINUE
+        IF (XROOT) GOTO 170
+        IF (NXLAST==LAST) GOTO 60
+        ALPHA = ONE
+        GOTO 80
+60      IF (LAST==0) GOTO 70
+        ALPHA = HALF*ALPHA
+        GOTO 80
+70      ALPHA = TWO*ALPHA
+80      X2 = X1 - (X1-X0)*G1(IMAX)/(G1(IMAX)-ALPHA*G0(IMAX))
+!       IF ((ABS(X2 - X0) < HMIN) .AND. (ABS(X1 - X0) > TEN * &
+!       HMIN)) X2 = X0 + PT1 * (X1 - X0)
+
+!       If X2 is too close to X0 or X1, adjust it inward,
+!       by a fractional distance that is between 0.1 and 0.5.
+        IF (ABS(X2-X0)<HALF*HMIN) THEN
+          FRACINT = ABS(X1-X0)/HMIN
+          FRACSUB = TENTH
+          IF (FRACINT<=FIVE) FRACSUB = HALF/FRACINT
+          X2 = X0 + FRACSUB*(X1-X0)
+        END IF
+        IF (ABS(X1-X2)<HALF*HMIN) THEN
+          FRACINT = ABS(X1-X0)/HMIN
+          FRACSUB = TENTH
+          IF (FRACINT<=FIVE) FRACSUB = HALF/FRACINT
+          X2 = X1 - FRACSUB*(X1-X0)
+        END IF
+
+        JFLAG = 1
+        X = X2
+!       Return to the calling routine to get a value of GX = g(X).
+        RETURN
+!       Check to see in which interval g changes sign.
+90      IMXOLD = IMAX
+        IMAX = 0
+        TMAX = ZERO
+        ZROOT = .FALSE.
+        DO 110 I = 1, NG
+          IF (ABS(GX(I))>ZERO) GOTO 100
+          ZROOT = .TRUE.
+          GOTO 110
+!         Neither G0(i) nor GX(i) can be zero at this point.
+100       IF (ABS(SIGN(ONE,G0(I))-SIGN(ONE,GX(I)))<=ZERO) GOTO 110
+          T2 = ABS(GX(I)/(GX(I)-G0(I)))
+          IF (T2<=TMAX) GOTO 110
+          TMAX = T2
+          IMAX = I
+110     END DO
+        IF (IMAX>0) GOTO 120
+        SGNCHG = .FALSE.
+        IMAX = IMXOLD
+        GOTO 130
+120     SGNCHG = .TRUE.
+130     NXLAST = LAST
+        IF (.NOT.SGNCHG) GOTO 140
+!       Sign change between X0 and X2, so replace X1 with X2.
+        X1 = X2
+        CALL DCOPY_F90(NG,GX,1,G1,1)
+        LAST = 1
+        XROOT = .FALSE.
+        GOTO 160
+140     IF (.NOT.ZROOT) GOTO 150
+!       Zero value at X2 and no sign change in (X0,X2), so X2 is a root.
+        X1 = X2
+        CALL DCOPY_F90(NG,GX,1,G1,1)
+        XROOT = .TRUE.
+        GOTO 160
+!       No sign change between X0 and X2. Replace X0 with X2.
+150     CONTINUE
+        CALL DCOPY_F90(NG,GX,1,G0,1)
+        X0 = X2
+        LAST = 0
+        XROOT = .FALSE.
+160     IF (ABS(X1-X0)<=HMIN) XROOT = .TRUE.
+        GOTO 50
+
+!       Return with X1 as the root. Set JROOT. Set X = X1 and GX = G1.
+170     JFLAG = 2
+        X = X1
+        CALL DCOPY_F90(NG,G1,1,GX,1)
+        DO 190 I = 1, NG
+          JROOT(I) = 0
+          IF (ABS(G1(I))>ZERO) GOTO 180
+          JROOT(I) = 1
+          GOTO 190
+180       IF (ABS(SIGN(ONE,G0(I))-SIGN(ONE,G1(I)))>ZERO) JROOT(I) = 1
+190     END DO
+        RETURN
+
+!       No sign change in the interval. Check for zero at right endpoint.
+200     IF (.NOT.ZROOT) GOTO 210
+
+!       Zero value at X1 and no sign change in (X0,X1). Return JFLAG = 3.
+        X = X1
+        CALL DCOPY_F90(NG,G1,1,GX,1)
+        DO I = 1, NG
+          JROOT(I) = 0
+          IF (ABS(G1(I))<=ZERO) JROOT(I) = 1
+        END DO
+        JFLAG = 3
+        RETURN
+
+!       No sign changes in this interval. Set X = X1, return JFLAG = 4.
+210     CALL DCOPY_F90(NG,G1,1,GX,1)
+        X = X1
+        JFLAG = 4
+        RETURN
+
+      END SUBROUTINE DVROOTS
+!_______________________________________________________________________
+
+      SUBROUTINE DVNRDP(Y,IYDIM,NEQN,NQ)
+! ..
+! Retract the Nordsieck array (undo prediction).
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER :: IYDIM, NEQN, NQ
+! ..
+! .. Array Arguments ..
+        KPP_REAL :: Y(*)
+! ..
+! .. Local Scalars ..
+        INTEGER :: I, J, J1, J2
+! ..
+! .. FIRST EXECUTABLE STATEMENT DVNRDP
+! ..
+        DO J1 = 1, NQ
+          DO J2 = J1, NQ
+            J = (NQ+J1) - J2
+            DO I = 1, NEQN
+! Original:
+!             Y(I,J) = Y(I,J) + Y(I,J+1)
+              Y(I+(J-1)*IYDIM) = Y(I+(J-1)*IYDIM) + Y(I+J*IYDIM)
+            END DO
+          END DO
+        END DO
+        RETURN
+
+      END SUBROUTINE DVNRDP
+!_______________________________________________________________________
+
+      SUBROUTINE DVNRDN(Y,IYDIM,NEQN,NQ)
+! ..
+! Apply the Nordsieck array (predict).
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER :: IYDIM, NEQN, NQ
+! ..
+! .. Array Arguments ..
+        KPP_REAL :: Y(*)
+! ..
+! .. Local Scalars ..
+        INTEGER :: I, J, J1, J2
+! ..
+! .. FIRST EXECUTABLE STATEMENT DVNRDN
+! ..
+        DO J1 = 1, NQ
+          DO J2 = J1, NQ
+            J = (NQ+J1) - J2
+            DO I = 1, NEQN
+! Original:
+!             Y(I,J) = Y(I,J) - Y(I,J+1)
+              Y(I+(J-1)*IYDIM) = Y(I+(J-1)*IYDIM) - Y(I+J*IYDIM)
+            END DO
+          END DO
+        END DO
+        RETURN
+
+      END SUBROUTINE DVNRDN
+!_______________________________________________________________________
+
+      SUBROUTINE DVNRDS(Y,IYDIM,NEQN,L,RH)
+! ..
+! Scale the Nordsieck array.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        KPP_REAL :: RH
+        INTEGER :: IYDIM, L, NEQN
+! ..
+! .. Array Arguments ..
+        KPP_REAL :: Y(*)
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: R1
+        INTEGER :: I, J
+! ..
+! .. FIRST EXECUTABLE STATEMENT DVNRDS
+! ..
+        R1 = ONE
+        DO J = 2, L
+          R1 = R1*RH
+          DO I = 1, NEQN
+! Original:
+!           Y(I,J) = Y(I,J)*R1
+            Y(I+(J-1)*IYDIM) = Y(I+(J-1)*IYDIM)*R1
+          END DO
+        END DO
+        RETURN
+
+      END SUBROUTINE DVNRDS
+!_______________________________________________________________________
+
+      SUBROUTINE RELEASE_ARRAYS
+! ..
+! Deallocate any allocated arrays and determine how much storage was
+! used (not called by DVODE_F90).
+! ..
+     IMPLICIT NONE
+! ..
+! .. Local Scalars ..
+        INTEGER :: IER, II, IR
+        CHARACTER (80) :: MSG
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ALLOCATED, SIZE
+! ..
+!_______________________________________________________________________
+! *****MA48 build change point. Insert these statements.
+!     INTEGER INFO
+!     INTEGER ISIZE
+!     COMMON /MA48SIZE/ ISIZE
+!_______________________________________________________________________
+! ..
+! .. FIRST EXECUTABLE STATEMENT RELEASE_ARRAYS
+! ..
+        IR = 0
+        IF (ALLOCATED(ACOR)) THEN
+          IR = IR + SIZE(ACOR)
+          DEALLOCATE (ACOR,STAT=IER)
+          CALL CHECK_STAT(IER,880)
+        END IF
+        IF (ALLOCATED(CSCALEX)) THEN
+          IR = IR + SIZE(CSCALEX) + SIZE(RSCALEX) + SIZE(WSCALEX)
+          DEALLOCATE (CSCALEX,RSCALEX,WSCALEX,STAT=IER)
+          CALL CHECK_STAT(IER,890)
+        END IF
+        IF (ALLOCATED(DTEMP)) THEN
+          IR = IR + SIZE(DTEMP)
+          DEALLOCATE (DTEMP,STAT=IER)
+          CALL CHECK_STAT(IER,900)
+        END IF
+        IF (ALLOCATED(EWT)) THEN
+          IR = IR + SIZE(EWT)
+          DEALLOCATE (EWT,STAT=IER)
+          CALL CHECK_STAT(IER,910)
+        END IF
+        IF (ALLOCATED(FACDS)) THEN
+          IR = IR + SIZE(FACDS)
+          DEALLOCATE (FACDS,STAT=IER)
+          CALL CHECK_STAT(IER,920)
+        END IF
+        IF (ALLOCATED(FPTEMP)) THEN
+          IR = IR + SIZE(FPTEMP)
+          DEALLOCATE (FPTEMP,STAT=IER)
+          CALL CHECK_STAT(IER,930)
+        END IF
+        IF (ALLOCATED(FTEMP)) THEN
+          IR = IR + SIZE(FTEMP)
+          DEALLOCATE (FTEMP,STAT=IER)
+          CALL CHECK_STAT(IER,940)
+        END IF
+        IF (ALLOCATED(FTEMP1)) THEN
+          IR = IR + SIZE(FTEMP1)
+          DEALLOCATE (FTEMP1,STAT=IER)
+          CALL CHECK_STAT(IER,950)
+        END IF
+        IF (ALLOCATED(G0)) THEN
+          IR = IR + SIZE(G0)
+          DEALLOCATE (G0,STAT=IER)
+          CALL CHECK_STAT(IER,960)
+        END IF
+        IF (ALLOCATED(G1)) THEN
+          IR = IR + SIZE(G1)
+          DEALLOCATE (G1,STAT=IER)
+          CALL CHECK_STAT(IER,970)
+        END IF
+        IF (ALLOCATED(GX)) THEN
+          IR = IR + SIZE(GX)
+          DEALLOCATE (GX,STAT=IER)
+          CALL CHECK_STAT(IER,980)
+        END IF
+        IF (ALLOCATED(JMAT)) THEN
+          IR = IR + SIZE(JMAT)
+          DEALLOCATE (JMAT,STAT=IER)
+          CALL CHECK_STAT(IER,990)
+        END IF
+        IF (ALLOCATED(LB)) THEN
+          IR = IR + SIZE(LB)
+          DEALLOCATE (LB,STAT=IER)
+          CALL CHECK_STAT(IER,1000)
+        END IF
+        IF (ALLOCATED(UB)) THEN
+          IR = IR + SIZE(UB)
+          DEALLOCATE (UB,STAT=IER)
+          CALL CHECK_STAT(IER,1000)
+        END IF
+        IF (ALLOCATED(PMAT)) THEN
+          IR = IR + SIZE(PMAT)
+          DEALLOCATE (PMAT,STAT=IER)
+          CALL CHECK_STAT(IER,1010)
+        END IF
+        IF (ALLOCATED(RWORK)) THEN
+          IR = IR + SIZE(RWORK)
+          DEALLOCATE (RWORK,STAT=IER)
+          CALL CHECK_STAT(IER,1020)
+        END IF
+        IF (ALLOCATED(SAVF)) THEN
+          IR = IR + SIZE(SAVF)
+          DEALLOCATE (SAVF,STAT=IER)
+          CALL CHECK_STAT(IER,1030)
+        END IF
+        IF (ALLOCATED(YMAX)) THEN
+          IR = IR + SIZE(YMAX)
+          DEALLOCATE (YMAX,STAT=IER)
+          CALL CHECK_STAT(IER,1040)
+        END IF
+        IF (ALLOCATED(WM)) THEN
+          IR = IR + SIZE(WM)
+          DEALLOCATE (WM,STAT=IER)
+          CALL CHECK_STAT(IER,1050)
+        END IF
+        IF (ALLOCATED(YHNQP2)) THEN
+          IR = IR + SIZE(YHNQP2)
+          DEALLOCATE (YHNQP2,STAT=IER)
+          CALL CHECK_STAT(IER,1060)
+        END IF
+        IF (ALLOCATED(YHTEMP)) THEN
+          IR = IR + SIZE(YHTEMP)
+          DEALLOCATE (YHTEMP,STAT=IER)
+          CALL CHECK_STAT(IER,1070)
+        END IF
+        IF (ALLOCATED(YMAX)) THEN
+          IR = IR + SIZE(YMAX)
+          DEALLOCATE (YMAX,STAT=IER)
+          CALL CHECK_STAT(IER,1080)
+        END IF
+        IF (ALLOCATED(YNNEG)) THEN
+          IR = IR + SIZE(YNNEG)
+          DEALLOCATE (YNNEG,STAT=IER)
+          CALL CHECK_STAT(IER,1090)
+        END IF
+        IF (ALLOCATED(YSCALEDS)) THEN
+          IR = IR + SIZE(YSCALEDS)
+          DEALLOCATE (YSCALEDS,STAT=IER)
+          CALL CHECK_STAT(IER,1100)
+        END IF
+        IF (ALLOCATED(YTEMP)) THEN
+          IR = IR + SIZE(YTEMP)
+          DEALLOCATE (YTEMP,STAT=IER)
+          CALL CHECK_STAT(IER,1110)
+        END IF
+        IF (ALLOCATED(WKDS)) THEN
+          IR = IR + SIZE(WKDS)
+          DEALLOCATE (WKDS,STAT=IER)
+          CALL CHECK_STAT(IER,1120)
+        END IF
+        II = 0
+        IF (ALLOCATED(BIGP)) THEN
+          II = II + SIZE(BIGP)
+          DEALLOCATE (BIGP,STAT=IER)
+          CALL CHECK_STAT(IER,1130)
+        END IF
+        IF (ALLOCATED(BJGP)) THEN
+          II = II + SIZE(BJGP)
+          DEALLOCATE (BJGP,STAT=IER)
+          CALL CHECK_STAT(IER,1140)
+        END IF
+        IF (ALLOCATED(IA)) THEN
+          II = II + SIZE(IA)
+          DEALLOCATE (IA,STAT=IER)
+          CALL CHECK_STAT(IER,1150)
+        END IF
+        IF (ALLOCATED(IAB)) THEN
+          II = II + SIZE(IAB)
+          DEALLOCATE (IAB,STAT=IER)
+          CALL CHECK_STAT(IER,1160)
+        END IF
+        IF (ALLOCATED(IAN)) THEN
+          II = II + SIZE(IAN)
+          DEALLOCATE (IAN,STAT=IER)
+          CALL CHECK_STAT(IER,1170)
+        END IF
+        IF (ALLOCATED(ICN)) THEN
+          II = II + SIZE(ICN)
+          DEALLOCATE (ICN,STAT=IER)
+          CALL CHECK_STAT(IER,1180)
+        END IF
+        IF (ALLOCATED(IDX)) THEN
+          II = II + SIZE(IDX)
+          DEALLOCATE (IDX,STAT=IER)
+          CALL CHECK_STAT(IER,1190)
+        END IF
+        IF (ALLOCATED(IGP)) THEN
+          II = II + SIZE(IGP)
+          DEALLOCATE (IGP,STAT=IER)
+          CALL CHECK_STAT(IER,1200)
+        END IF
+        IF (ALLOCATED(IKEEP28)) THEN
+          II = II + SIZE(IKEEP28,1)*SIZE(IKEEP28,2)
+          DEALLOCATE (IKEEP28,STAT=IER)
+          CALL CHECK_STAT(IER,1210)
+        END IF
+        IF (ALLOCATED(INDCOLDS)) THEN
+          II = II + SIZE(INDCOLDS)
+          DEALLOCATE (INDCOLDS,STAT=IER)
+          CALL CHECK_STAT(IER,1220)
+        END IF
+        IF (ALLOCATED(INDROWDS)) THEN
+
+          II = II + SIZE(INDROWDS)
+          DEALLOCATE (INDROWDS,STAT=IER)
+          CALL CHECK_STAT(IER,1230)
+        END IF
+        IF (ALLOCATED(IOPTDS)) THEN
+          II = II + SIZE(IOPTDS)
+          DEALLOCATE (IOPTDS,STAT=IER)
+          CALL CHECK_STAT(IER,1240)
+        END IF
+        IF (ALLOCATED(IPNTRDS)) THEN
+          II = II + SIZE(IPNTRDS)
+          DEALLOCATE (IPNTRDS,STAT=IER)
+          CALL CHECK_STAT(IER,1250)
+        END IF
+        IF (ALLOCATED(IWADS)) THEN
+          II = II + SIZE(IWADS)
+          DEALLOCATE (IWADS,STAT=IER)
+          CALL CHECK_STAT(IER,1260)
+        END IF
+        IF (ALLOCATED(IWKDS)) THEN
+          II = II + SIZE(IWKDS)
+          DEALLOCATE (IWKDS,STAT=IER)
+          CALL CHECK_STAT(IER,1270)
+        END IF
+        IF (ALLOCATED(IWORK)) THEN
+          II = II + SIZE(IWORK)
+          DEALLOCATE (IWORK,STAT=IER)
+          CALL CHECK_STAT(IER,1280)
+        END IF
+        IF (ALLOCATED(IW28)) THEN
+          II = II + SIZE(IW28,1)*SIZE(IW28,2)
+          DEALLOCATE (IW28,STAT=IER)
+          CALL CHECK_STAT(IER,1290)
+        END IF
+        IF (ALLOCATED(JA)) THEN
+          II = II + SIZE(JA)
+          DEALLOCATE (JA,STAT=IER)
+          CALL CHECK_STAT(IER,1300)
+        END IF
+        IF (ALLOCATED(JAB)) THEN
+          II = II + SIZE(JAB)
+          DEALLOCATE (JAB,STAT=IER)
+          CALL CHECK_STAT(IER,1310)
+        END IF
+        IF (ALLOCATED(JAN)) THEN
+          II = II + SIZE(JAN)
+          DEALLOCATE (JAN,STAT=IER)
+          CALL CHECK_STAT(IER,1320)
+        END IF
+        IF (ALLOCATED(JATEMP)) THEN
+          II = II + SIZE(JATEMP)
+          DEALLOCATE (JATEMP,STAT=IER)
+          CALL CHECK_STAT(IER,1330)
+        END IF
+        IF (ALLOCATED(JGP)) THEN
+          II = II + SIZE(JGP)
+          DEALLOCATE (JGP,STAT=IER)
+          CALL CHECK_STAT(IER,1340)
+        END IF
+        IF (ALLOCATED(JPNTRDS)) THEN
+          II = II + SIZE(JPNTRDS)
+          DEALLOCATE (JPNTRDS,STAT=IER)
+          CALL CHECK_STAT(IER,1350)
+        END IF
+        IF (ALLOCATED(JROOT)) THEN
+          II = II + SIZE(JROOT)
+          DEALLOCATE (JROOT,STAT=IER)
+          CALL CHECK_STAT(IER,1360)
+        END IF
+        IF (ALLOCATED(JVECT)) THEN
+          II = II + SIZE(JVECT)
+          DEALLOCATE (JVECT,STAT=IER)
+          CALL CHECK_STAT(IER,1370)
+        END IF
+        IF (ALLOCATED(NGRPDS)) THEN
+          II = II + SIZE(NGRPDS)
+          DEALLOCATE (NGRPDS,STAT=IER)
+          CALL CHECK_STAT(IER,1380)
+        END IF
+        IF (ALLOCATED(SUBDS)) THEN
+          II = II + SIZE(SUBDS)
+          DEALLOCATE (SUBDS,STAT=IER)
+          CALL CHECK_STAT(IER,1390)
+        END IF
+        IF (ALLOCATED(SUPDS)) THEN
+          II = II + SIZE(SUPDS)
+          DEALLOCATE (SUPDS,STAT=IER)
+          CALL CHECK_STAT(IER,1400)
+        END IF
+!_______________________________________________________________________
+! *****MA48 build change point. Insert these statements.
+!       IF (MA48_WAS_USED) THEN
+!          CALL MA48_FINALIZE(FACTORS,CONTROL,INFO)
+!          IF (INFO /= 0) THEN
+!             MSG = 'The call to MA48_FINALIZE FAILED.'
+!             CALL XERRDV(MSG,1740,1,1,II,0,0,ZERO,ZERO)
+!          END IF
+!          MSG = 'Size of MA48 deallocated arrays (I1) = '
+!          CALL XERRDV(MSG,1750,1,1,ISIZE,0,0,ZERO,ZERO)
+!       END IF
+!_______________________________________________________________________
+
+!       Print the amount of storage used.
+        MSG = 'I1 = Total length of REAL arrays used.'
+        CALL XERRDV(MSG,1760,1,1,IR,0,0,ZERO,ZERO)
+        MSG = 'I1 = Total length of INTEGER arrays used.'
+        CALL XERRDV(MSG,1760,1,1,II,0,0,ZERO,ZERO)
+
+!       In case DVODE_F90 is subsequently called:
+        OPTS_CALLED = .FALSE.
+        RETURN
+
+      END SUBROUTINE RELEASE_ARRAYS
+! End of DVODE_F90 subroutines
+!_______________________________________________________________________
+
+! Beginning of LINPACK and BLAS subroutines
+      SUBROUTINE DGEFA_F90(A,LDA,N,IPVT,INFO)
+! ..
+! Factor a matrix using Gaussian elimination.
+! ..
+!     DGEFA_F90 factors a real(wp) matrix by Gaussian elimination.
+!     DGEFA_F90 is usually called by DGECO, but it can be called
+!     directly with a saving in time if RCOND is not needed.
+!     (Time for DGECO) = (1 + 9/N)*(Time for DGEFA_F90).
+!     On Entry
+!        A       REAL(KIND=WP)(LDA, N)
+!                the matrix to be factored.
+!        LDA     INTEGER
+!                the leading dimension of the array A.
+!        N       INTEGER
+!                the order of the matrix A.
+!     On Return
+!        A       an upper triangular matrix and the multipliers
+!                which were used to obtain it.
+!                The factorization can be written A = L*U where
+!                L is a product of permutation and unit lower
+!                triangular matrices and U is upper triangular.
+!        IPVT    INTEGER(N)
+!                an integer vector of pivot indices.
+!        INFO    INTEGER
+!                = 0  normal value.
+!                = K  if U(K,K) == 0.0. This is not an error
+!                     condition for this subroutine, but it does
+!                     indicate that DGESL_F90 or DGEDI will divide
+!                     by zero if called. Use RCOND in DGECO for a
+!                     reliable indication of singularity.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (INOUT) :: INFO
+        INTEGER, INTENT (IN) :: LDA, N
+! ..
+! .. Array Arguments ..
+        KPP_REAL, INTENT (INOUT) :: A(LDA,*)
+        INTEGER, INTENT (INOUT) :: IPVT(*)
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: T
+        INTEGER :: J, K, KP1, L, NM1
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS
+! ..
+! .. FIRST EXECUTABLE STATEMENT DGEFA_F90
+! ..
+        INFO = 0
+        NM1 = N - 1
+        IF (NM1<1) GOTO 50
+        DO K = 1, NM1
+          KP1 = K + 1
+
+!         Find L = pivot index.
+
+! Original:
+!         L = IDAMAX_F90(N-K+1,A(K,K),1) + K - 1
+          L = IDAMAX_F90(N-K+1,A(K:N,K),1) + K - 1
+          IPVT(K) = L
+
+!         Zero pivot implies this column already triangularized.
+
+!         IF (A(L, K) == ZERO) GOTO 40
+          IF (ABS(A(L,K))<=ZERO) GOTO 30
+
+!         Interchange if necessary.
+
+          IF (L==K) GOTO 10
+          T = A(L,K)
+          A(L,K) = A(K,K)
+          A(K,K) = T
+10        CONTINUE
+
+!         Compute multipliers.
+
+          T = -ONE/A(K,K)
+! Original:          
+!         CALL DSCAL_F90(N-K,T,A(K+1,K),1)         
+          CALL DSCAL_F90(N-K,T,A(K+1:N,K),1)
+
+!         Row elimination with column indexing.
+
+          DO J = KP1, N
+            T = A(L,J)
+            IF (L==K) GOTO 20
+            A(L,J) = A(K,J)
+            A(K,J) = T
+20          CONTINUE
+! Original:            
+!           CALL DAXPY_F90(N-K,T,A(K+1,K),1,A(K+1,J),1)
+            CALL DAXPY_F90(N-K,T,A(K+1:N,K),1,A(K+1:N,J),1)
+          END DO
+          GOTO 40
+30        CONTINUE
+          INFO = K
+40        CONTINUE
+        END DO
+50      CONTINUE
+        IPVT(N) = N
+!       IF (A(N, N) == ZERO) INFO = N
+        IF (ABS(A(N,N))<=ZERO) INFO = N
+        RETURN
+
+      END SUBROUTINE DGEFA_F90
+!_______________________________________________________________________
+
+      SUBROUTINE DGESL_F90(A,LDA,N,IPVT,B,JOB)
+! ..
+! Solve the real system A*X=B or TRANS(A)*X=B using the factors
+! computed by DGECO or DGEFA_F90.
+! ..
+!     DGESL_F90 solves the real(wp) system
+!     A * X = B or TRANS(A) * X = B
+!     using the factors computed by DGECO or DGEFA_F90.
+!     On Entry
+!        A       REAL(KIND=WP)(LDA, N)
+!                the output from DGECO or DGEFA_F90.
+!        LDA     INTEGER
+!                the leading dimension of the array A.
+!        N       INTEGER
+!                the order of the matrix A.
+!        IPVT    INTEGER(N)
+!                the pivot vector from DGECO or DGEFA_F90.
+!        B       REAL(KIND=WP)(N)
+!                the right hand side vector.
+!        JOB     INTEGER
+!                = 0         to solve A*X = B,
+
+!                = nonzero   to solve TRANS(A)*X = B where
+!                            TRANS(A)is the transpose.
+!     On Return
+!        B       the solution vector X.
+!     Error Condition
+!        A division by zero will occur if the input factor contains a
+!        zero on the diagonal. Technically this indicates singularity
+!        but it is often caused by improper arguments or improper
+!        setting of LDA. It will not occur if the subroutines are
+!        called correctly and if DGECO has set RCOND > 0.0 or
+!        DGEFA_F90 has set INFO == 0.
+!     To compute INVERSE(A) * C where C is a matrix
+!     with P columns
+!           CALL DGECO(A,LDA,N,IPVT,RCOND,Z)
+!           IF (RCOND is too small) GOTO
+!           DO J = 1, P
+!              CALL DGESL_F90(A,LDA,N,IPVT,C(1,J),0)
+!           END DO
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: JOB, LDA, N
+! ..
+! .. Array Arguments ..
+        KPP_REAL, INTENT (INOUT) :: A(LDA,*), B(*)
+        INTEGER, INTENT (INOUT) :: IPVT(*)
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: T
+        INTEGER :: K, KB, L, NM1
+! ..
+! .. FIRST EXECUTABLE STATEMENT DGESL_F90
+! ..
+        NM1 = N - 1
+        IF (JOB/=0) GOTO 30
+
+!       JOB = 0, solve A*X = B.
+!       First solve L*Y = B.
+
+        IF (NM1<1) GOTO 20
+        DO K = 1, NM1
+          L = IPVT(K)
+          T = B(L)
+          IF (L==K) GOTO 10
+          B(L) = B(K)
+          B(K) = T
+10        CONTINUE
+! Original:
+!         CALL DAXPY_F90(N-K,T,A(K+1,K),1,B(K+1),1)
+          CALL DAXPY_F90(N-K,T,A(K+1:N,K),1,B(K+1:N),1)
+        END DO
+20      CONTINUE
+
+!       Now solve U*X = Y.
+
+        DO KB = 1, N
+          K = N + 1 - KB
+          B(K) = B(K)/A(K,K)
+          T = -B(K)
+! Original:
+!         CALL DAXPY_F90(K-1,T,A(1,K),1,B(1),1)
+          CALL DAXPY_F90(K-1,T,A(1:K-1,K),1,B(1:K-1),1)
+        END DO
+        GOTO 60
+30      CONTINUE
+
+!       JOB /= 0, solve TRANS(A)*X = B.
+!       First solve TRANS(U)*Y = B.
+
+        DO K = 1, N
+          T = DDOT_F90(K-1,A(1,K),1,B(1),1)
+          B(K) = (B(K)-T)/A(K,K)
+        END DO
+
+!       Now solve TRANS(L)*X = Y.
+
+        IF (NM1<1) GOTO 50
+        DO KB = 1, NM1
+          K = N - KB
+          B(K) = B(K) + DDOT_F90(N-K,A(K+1,K),1,B(K+1),1)
+          L = IPVT(K)
+          IF (L==K) GOTO 40
+          T = B(L)
+          B(L) = B(K)
+          B(K) = T
+40        CONTINUE
+        END DO
+50      CONTINUE
+60      CONTINUE
+        RETURN
+
+      END SUBROUTINE DGESL_F90
+!_______________________________________________________________________
+
+      SUBROUTINE DGBFA_F90(ABD,LDA,N,ML,MU,IPVT,INFO)
+! ..
+! Factor a banded matrix using Gaussian elimination.
+! ..
+!     DGBFA_F90 factors a real(wp) band matrix by elimination.
+!     DGBFA_F90 is usually called by DGBCO, but it can be called
+!     directly with a saving in time if RCOND is not needed.
+!     On Entry
+!        ABD     REAL(KIND=WP)(LDA, N)
+!                contains the matrix in band storage. The columns
+!                of the matrix are stored in the columns of ABD and
+!                the diagonals of the matrix are stored in rows
+!                ML+1 through 2*ML+MU+1 of ABD.
+!                See the comments below for details.
+!        LDA     INTEGER
+!                the leading dimension of the array ABD.
+!                LDA must be >= 2*ML + MU + 1.
+!        N       INTEGER
+!                the order of the original matrix.
+!        ML      INTEGER
+!                number of diagonals below the main diagonal.
+!                0 <= ML < N.
+!        MU      INTEGER
+!                number of diagonals above the main diagonal.
+!                0 <= MU < N.
+!                More efficient if ML <= MU.
+!     On Return
+!        ABD     an upper triangular matrix in band storage and
+!                the multipliers which were used to obtain it.
+!                The factorization can be written A = L*U where
+!                L is a product of permutation and unit lower
+!                triangular matrices and U is upper triangular.
+!        IPVT    INTEGER(N)
+!                an integer vector of pivot indices.
+!        INFO    INTEGER
+!                = 0  normal value.
+!                = K  if U(K,K) == 0.0. This is not an error
+!                     condition for this subroutine, but it does
+!                     indicate that DGBSL_F90 will divide by zero
+!                     if called. Use RCOND in DGBCO for a reliable
+!                     indication of singularity.
+!     Band Storage
+!           If A is a band matrix, the following program segment
+!           will set up the input.
+!                   ML = (band width below the diagonal)
+!                   MU = (band width above the diagonal)
+!                   M = ML + MU + 1
+!                   DO J = 1, N
+!                      I1 = MAX(1, J-MU)
+!                      I2 = MIN(N, J+ML)
+!                      DO 10 I = I1, I2
+!                         K = I - J + M
+!                         ABD(K,J) = A(I,J)
+!                      END DO
+!                   END DO
+!           This uses rows ML+1 through 2*ML+MU+1 of ABD.
+!           In addition, the first ML rows in ABD are used for
+!           elements generated during the triangularization.
+!           The total number of rows needed in ABD is 2*ML+MU+1.
+!           The ML+MU by ML+MU upper left triangle and the
+!           ML by ML lower right triangle are not referenced.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (INOUT) :: INFO
+        INTEGER, INTENT (IN) :: LDA, ML, MU, N
+! ..
+! .. Array Arguments ..
+        KPP_REAL, INTENT (INOUT) :: ABD(LDA,*)
+        INTEGER, INTENT (INOUT) :: IPVT(*)
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: T
+        INTEGER :: I0, J, J0, J1, JU, JZ, K, KP1, L, LM, M, MM, NM1
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, MAX, MIN
+! ..
+! .. FIRST EXECUTABLE STATEMENT DGBFA_F90
+! ..
+        M = ML + MU + 1
+        INFO = 0
+
+!       Zero initial fill-in columns.
+
+        J0 = MU + 2
+        J1 = MIN(N,M) - 1
+        IF (J1<J0) GOTO 10
+        DO JZ = J0, J1
+          I0 = M + 1 - JZ
+          ABD(I0:ML,JZ) = ZERO
+        END DO
+10      CONTINUE
+        JZ = J1
+        JU = 0
+
+!       Gaussian elimination with partial pivoting.
+
+        NM1 = N - 1
+        IF (NM1<1) GOTO 80
+        DO K = 1, NM1
+          KP1 = K + 1
+
+!         Zero next fill-in column.
+
+          JZ = JZ + 1
+          IF (JZ>N) GOTO 20
+          IF (ML<1) GOTO 20
+          ABD(1:ML,JZ) = ZERO
+20        CONTINUE
+
+!         Find L = pivot index.
+
+          LM = MIN(ML,N-K)
+! Original:
+!         L = IDAMAX_F90(LM+1,ABD(M,K),1) + M - 1
+          L = IDAMAX_F90(LM+1,ABD(M:M+LM,K),1) + M - 1
+
+          IPVT(K) = L + K - M
+
+!         Zero pivot implies this column already triangularized.
+
+!         IF (ABD(L, K) == ZERO) GOTO 100
+          IF (ABS(ABD(L,K))<=ZERO) GOTO 60
+
+!         Interchange if necessary.
+
+          IF (L==M) GOTO 30
+          T = ABD(L,K)
+          ABD(L,K) = ABD(M,K)
+          ABD(M,K) = T
+30        CONTINUE
+
+!         Compute multipliers.
+
+          T = -ONE/ABD(M,K)
+! Original:
+!         CALL DSCAL_F90(LM,T,ABD(M+1,K),1)
+          CALL DSCAL_F90(LM,T,ABD(M+1:M+LM,K),1)
+
+!         Row elimination with column indexing.
+
+          JU = MIN(MAX(JU,MU+IPVT(K)),N)
+          MM = M
+          IF (JU<KP1) GOTO 50
+          DO J = KP1, JU
+            L = L - 1
+            MM = MM - 1
+            T = ABD(L,J)
+            IF (L==MM) GOTO 40
+            ABD(L,J) = ABD(MM,J)
+            ABD(MM,J) = T
+40          CONTINUE
+! Original:
+!           CALL DAXPY_F90(LM,T,ABD(M+1,K),1,ABD(MM+1,J),1)
+            CALL DAXPY_F90(LM,T,ABD(M+1:M+LM,K),1,ABD(MM+1:M+LM,J),1)
+          END DO
+50        CONTINUE
+          GOTO 70
+60        CONTINUE
+          INFO = K
+70        CONTINUE
+        END DO
+80      CONTINUE
+        IPVT(N) = N
+!       IF (ABD(M, N) == ZERO) INFO = N
+        IF (ABS(ABD(M,N))<=ZERO) INFO = N
+        RETURN
+
+      END SUBROUTINE DGBFA_F90
+!_______________________________________________________________________
+
+      SUBROUTINE DGBSL_F90(ABD,LDA,N,ML,MU,IPVT,B,JOB)
+! ..
+! Solve the real band system A*X=B or TRANS(A)*X=B using the factors
+! computed by DGBCO or DGBFA_F90.
+! ..
+!     DGBSL_F90 solves the real(wp) band system
+!     A * X = B or TRANS(A) * X = B
+!     using the factors computed by DGBCO or DGBFA_F90.
+!     On Entry
+!        ABD     REAL(KIND=WP)(LDA, N)
+!                the output from DGBCO or DGBFA_F90.
+!        LDA     INTEGER
+!                the leading dimension of the array ABD.
+!        N       INTEGER
+!                the order of the original matrix.
+!        ML      INTEGER
+!                number of diagonals below the main diagonal.
+!        MU      INTEGER
+!                number of diagonals above the main diagonal.
+!        IPVT    INTEGER(N)
+!                the pivot vector from DGBCO or DGBFA_F90.
+!        B       REAL(KIND=WP)(N)
+!                the right hand side vector.
+!        JOB     INTEGER
+!                = 0         to solve A*X = B,
+!                = nonzero   to solve TRANS(A)*X = B, where
+!                            TRANS(A) is the transpose.
+!     On Return
+!        B       the solution vector X.
+!     Error Condition
+!        A division by zero will occur if the input factor contains a
+!        zero on the diagonal. Technically this indicates singularity
+!        but it is often caused by improper arguments or improper
+!        setting of LDA. It will not occur if the subroutines are
+!        called correctly and if DGBCO has set RCOND > 0.0
+!        or DGBFA_F90 has set INFO == 0 .
+!     To compute INVERSE(A) * C where C is a matrix
+!     with P columns
+!           CALL DGBCO(ABD,LDA,N,ML,MU,IPVT,RCOND,Z)
+!           IF (RCOND is too small) GOTO ...
+!           DO J = 1, P
+!              CALL DGBSL_F90(ABD,LDA,N,ML,MU,IPVT,C(1,J),0)
+!           END DO
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: JOB, LDA, ML, MU, N
+! ..
+! .. Array Arguments ..
+        KPP_REAL, INTENT (INOUT) :: ABD(LDA,*), B(*)
+        INTEGER, INTENT (INOUT) :: IPVT(*)
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: T
+        INTEGER :: K, KB, L, LA, LB, LM, M, NM1
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC MIN
+! ..
+! .. FIRST EXECUTABLE STATEMENT DGBSL_F90
+! ..
+        M = MU + ML + 1
+        NM1 = N - 1
+        IF (JOB/=0) GOTO 30
+
+!       JOB = 0, solve A*X = B.
+!       First solve L*Y = B.
+
+        IF (ML==0) GOTO 20
+        IF (NM1<1) GOTO 20
+        DO K = 1, NM1
+          LM = MIN(ML,N-K)
+          L = IPVT(K)
+          T = B(L)
+          IF (L==K) GOTO 10
+          B(L) = B(K)
+          B(K) = T
+10        CONTINUE
+! Original:
+!         CALL DAXPY_F90(LM,T,ABD(M+1,K),1,B(K+1),1)
+          CALL DAXPY_F90(LM,T,ABD(M+1:M+LM,K),1,B(K+1:K+LM),1)
+        END DO
+20      CONTINUE
+
+!       Now solve U*X = Y.
+
+        DO KB = 1, N
+          K = N + 1 - KB
+          B(K) = B(K)/ABD(M,K)
+          LM = MIN(K,M) - 1
+          LA = M - LM
+          LB = K - LM
+          T = -B(K)
+! Original:
+!         CALL DAXPY_F90(LM,T,ABD(LA,K),1,B(LB),1)
+          CALL DAXPY_F90(LM,T,ABD(LA:LA+LM-1,K),1,B(LB:LB+LM-1),1)
+        END DO
+        GOTO 60
+30      CONTINUE
+
+!       JOB /= 0, solve TRANS(A)*X = B.
+
+!       First solve TRANS(U)*Y = B.
+
+        DO K = 1, N
+          LM = MIN(K,M) - 1
+          LA = M - LM
+          LB = K - LM
+! Original:
+!         T = DDOT_F90(LM,ABD(LA,K),1,B(LB),1)
+          T = DDOT_F90(LM,ABD(LA:LA+LM-1,K),1,B(LB:LB+LM-1),1)
+          B(K) = (B(K)-T)/ABD(M,K)
+        END DO
+
+!       Now solve TRANS(L)*X = Y.
+
+        IF (ML==0) GOTO 50
+        IF (NM1<1) GOTO 50
+        DO KB = 1, NM1
+          K = N - KB
+          LM = MIN(ML,N-K)
+! Original:
+!         B(K) = B(K) + DDOT_F90(LM,ABD(M+1,K),1,B(K+1),1)
+          B(K) = B(K) + DDOT_F90(LM,ABD(M+1:M+LM,K),1,B(K+1:K+LM),1)
+          L = IPVT(K)
+          IF (L==K) GOTO 40
+          T = B(L)
+          B(L) = B(K)
+          B(K) = T
+40        CONTINUE
+        END DO
+50      CONTINUE
+60      CONTINUE
+        RETURN
+
+      END SUBROUTINE DGBSL_F90
+!_______________________________________________________________________
+
+      SUBROUTINE DAXPY_F90(N,DA,DX,INCX,DY,INCY)
+! ..
+! Compute a constant times a vector plus a vector.
+! ..
+!     Description of Parameters
+!     Input:
+!     N    - number of elements in input vector(s)
+!     DA   - real(wp) scalar multiplier
+!     DX   - real(wp) vector with N elements
+!     INCX - storage spacing between elements of DX
+!     DY   - real(wp) vector with N elements
+!     INCY -  storage spacing between elements of DY
+!     Output:
+!     DY - real(wp) result (unchanged if N <= 0)
+!     Overwrite real(wp) DY with real(wp) DA*DX + DY.
+!     For I = 0 to N-1, replace  DY(LY+I*INCY) with
+!     DA*DX(LX+I*INCX) + DY(LY+I*INCY),
+!     where LX = 1 if INCX >= 0, else LX = 1+(1-N)*INCX,
+!     and LY is defined in a similar way using INCY.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        KPP_REAL, INTENT (IN) :: DA
+        INTEGER, INTENT (IN) :: INCX, INCY, N
+! ..
+! .. Array Arguments ..
+        KPP_REAL, INTENT (IN) :: DX(*)
+        KPP_REAL, INTENT (INOUT) :: DY(*)
+! ..
+! .. Local Scalars ..
+        INTEGER :: I, IX, IY, M, MP1, NS
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, MOD
+! ..
+! .. FIRST EXECUTABLE STATEMENT DAXPY_F90
+! ..
+!       IF (N <= 0 .OR. DA == ZERO) RETURN
+        IF (N<=0 .OR. ABS(DA)<=ZERO) RETURN
+!       IF (INCX==INCY) IF (INCX-1) 10, 20, 40
+        IF (INCX == INCY) THEN
+          IF (INCX < 1) THEN
+             GOTO 10
+          ELSEIF (INCX == 1) THEN
+             GOTO 20
+          ELSE
+             GOTO 40
+          END IF
+        END IF
+
+!       Code for unequal or nonpositive increments.
+
+10      IX = 1
+        IY = 1
+        IF (INCX<0) IX = (-N+1)*INCX + 1
+        IF (INCY<0) IY = (-N+1)*INCY + 1
+        DO I = 1, N
+          DY(IY) = DY(IY) + DA*DX(IX)
+          IX = IX + INCX
+          IY = IY + INCY
+        END DO
+        RETURN
+
+!       Code for both increments equal to 1.
+
+!       Clean-up loop so remaining vector length is a multiple of 4.
+
+20      M = MOD(N,4)
+        IF (M==0) GOTO 30
+        DY(1:M) = DY(1:M) + DA*DX(1:M)
+        IF (N<4) RETURN
+30      MP1 = M + 1
+        DO I = MP1, N, 4
+          DY(I) = DY(I) + DA*DX(I)
+          DY(I+1) = DY(I+1) + DA*DX(I+1)
+          DY(I+2) = DY(I+2) + DA*DX(I+2)
+          DY(I+3) = DY(I+3) + DA*DX(I+3)
+        END DO
+        RETURN
+
+!       Code for equal, positive, non-unit increments.
+
+40      NS = N*INCX
+        DO I = 1, NS, INCX
+          DY(I) = DA*DX(I) + DY(I)
+        END DO
+        RETURN
+
+      END SUBROUTINE DAXPY_F90
+!_______________________________________________________________________
+
+      SUBROUTINE DCOPY_F90(N,DX,INCX,DY,INCY)
+! ..
+! Copy a vector to another vector.
+! ..
+!     Description of Parameters
+!     Input:
+!     N    - number of elements in input vector(s)
+!     DX   - real(wp) vector with N elements
+!     INCX - storage spacing between elements of DX
+!     DY   - real(wp) vector with N elements
+!     INCY - storage spacing between elements of DY
+!     Output:
+!     DY - copy of vector DX(unchanged if N <= 0)
+!     Copy real(wp) DX to real(wp) DY.
+!     For I = 0 to N-1, copy DX(LX+I*INCX) to DY(LY+I*INCY),
+!     where LX = 1 if INCX >= 0, else LX = 1+(1-N)*INCX,
+!     and LY is defined in a similar way using INCY.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: INCX, INCY, N
+! ..
+! .. Array Arguments ..
+        KPP_REAL, INTENT (IN) :: DX(*)
+        KPP_REAL, INTENT (INOUT) :: DY(*)
+! ..
+! .. Local Scalars ..
+        INTEGER :: I, IX, IY, M, MP1, NS
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC MOD
+! ..
+! .. FIRST EXECUTABLE STATEMENT DCOPY_F90
+! ..
+        IF (N<=0) RETURN
+!       IF (INCX==INCY) IF (INCX-1) 10, 20, 40
+        IF (INCX == INCY) THEN
+          IF (INCX < 1) THEN
+             GOTO 10
+          ELSEIF (INCX == 1) THEN
+             GOTO 20
+          ELSE
+             GOTO 40
+          END IF
+        END IF
+
+!       Code for unequal or nonpositive increments.
+
+10      IX = 1
+        IY = 1
+        IF (INCX<0) IX = (-N+1)*INCX + 1
+        IF (INCY<0) IY = (-N+1)*INCY + 1
+        DO I = 1, N
+          DY(IY) = DX(IX)
+          IX = IX + INCX
+          IY = IY + INCY
+        END DO
+        RETURN
+
+!       Code for both increments equal to 1.
+
+!       Clean-up loop so remaining vector length is a multiple of 7.
+
+20      M = MOD(N,7)
+        IF (M==0) GOTO 30
+        DO I = 1, M
+          DY(I) = DX(I)
+        END DO
+        IF (N<7) RETURN
+30      MP1 = M + 1
+        DO I = MP1, N, 7
+          DY(I) = DX(I)
+          DY(I+1) = DX(I+1)
+          DY(I+2) = DX(I+2)
+          DY(I+3) = DX(I+3)
+          DY(I+4) = DX(I+4)
+          DY(I+5) = DX(I+5)
+          DY(I+6) = DX(I+6)
+        END DO
+        RETURN
+
+!       Code for equal, positive, non-unit increments.
+
+40      NS = N*INCX
+        DO I = 1, NS, INCX
+          DY(I) = DX(I)
+        END DO
+        RETURN
+
+      END SUBROUTINE DCOPY_F90
+!_______________________________________________________________________
+
+      FUNCTION DDOT_F90(N,DX,INCX,DY,INCY)
+! ..
+! Compute the inner product of two vectors.
+! ..
+!     Description of Parameters
+!     Input:
+!     N    - number of elements in input vector(s)
+!     DX   - real(wp) vector with N elements
+!     INCX - storage spacing between elements of DX
+!     DY   - real(wp) vector with N elements
+!     INCY - storage spacing between elements of DY
+!     Output:
+!     DDOT_F90 - real(wp) dot product (zero if N <= 0)
+!     Returns the dot product of real(wp) DX and DY.
+!     DDOT_F90 = sum for I = 0 to N-1 of  DX(LX+I*INCX) * DY(LY+I*INCY),
+!     where LX = 1 if INCX >= 0, else LX = 1+(1-N)*INCX, and LY is
+!     defined in a similar way using INCY.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Function Return Value ..
+        KPP_REAL :: DDOT_F90
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: INCX, INCY, N
+! ..
+! .. Array Arguments ..
+        KPP_REAL, INTENT (IN) :: DX(*), DY(*)
+! ..
+! .. Local Scalars ..
+        INTEGER :: I, IX, IY, M, MP1, NS
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC MOD
+! ..
+! .. FIRST EXECUTABLE STATEMENT DDOT_F90
+! ..
+        DDOT_F90 = ZERO
+        IF (N<=0) RETURN
+!       IF (INCX==INCY) IF (INCX-1) 10, 20, 40
+        IF (INCX == INCY) THEN
+          IF (INCX < 1) THEN
+             GOTO 10
+          ELSEIF (INCX == 1) THEN
+             GOTO 20
+          ELSE
+             GOTO 40
+          END IF
+        END IF
+
+!       Code for unequal or nonpositive increments.
+
+10      IX = 1
+        IY = 1
+        IF (INCX<0) IX = (-N+1)*INCX + 1
+        IF (INCY<0) IY = (-N+1)*INCY + 1
+        DO I = 1, N
+          DDOT_F90 = DDOT_F90 + DX(IX)*DY(IY)
+          IX = IX + INCX
+          IY = IY + INCY
+        END DO
+        RETURN
+
+!       Code for both increments equal to 1.
+
+!       Clean-up loop so remaining vector length is a multiple of 5.
+
+20      M = MOD(N,5)
+        IF (M==0) GOTO 30
+        DO I = 1, M
+          DDOT_F90 = DDOT_F90 + DX(I)*DY(I)
+        END DO
+        IF (N<5) RETURN
+30      MP1 = M + 1
+        DO I = MP1, N, 5
+          DDOT_F90 = DDOT_F90 + DX(I)*DY(I) + DX(I+1)*DY(I+1) + &
+            DX(I+2)*DY(I+2) + DX(I+3)*DY(I+3) + DX(I+4)*DY(I+4)
+        END DO
+        RETURN
+
+!       Code for equal, positive, non-unit increments.
+
+40      NS = N*INCX
+        DO I = 1, NS, INCX
+          DDOT_F90 = DDOT_F90 + DX(I)*DY(I)
+        END DO
+        RETURN
+
+      END FUNCTION DDOT_F90
+!_______________________________________________________________________
+
+      SUBROUTINE DSCAL_F90(N,DA,DX,INCX)
+! ..
+! Multiply a vector by a constant.
+! ..
+!     Description of Parameters
+!     Input:
+!     N    - number of elements in input vector(s)
+!     DA   - real(wp) scale factor
+!     DX   - real(wp) vector with N elements
+!     INCX - storage spacing between elements of DX
+!     Output:
+!     DX - real(wp) result (unchanged if N <= 0)
+!     Replace real(wp) DX by real(wp) DA*DX.
+!     For I = 0 to N-1, replace DX(IX+I*INCX) with DA * DX(IX+I*INCX),
+!     where IX = 1 if INCX >= 0, else IX = 1+(1-N)*INCX.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        KPP_REAL, INTENT (IN) :: DA
+        INTEGER, INTENT (IN) :: INCX, N
+! ..
+! .. Array Arguments ..
+        KPP_REAL, INTENT (INOUT) :: DX(*)
+! ..
+! .. Local Scalars ..
+        INTEGER :: I, IX, M, MP1
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC MOD
+! ..
+! .. FIRST EXECUTABLE STATEMENT DSCAL_F90
+! ..
+        IF (N<=0) RETURN
+        IF (INCX==1) GOTO 10
+
+!       Code for increment not equal to 1.
+
+        IX = 1
+        IF (INCX<0) IX = (-N+1)*INCX + 1
+        DO I = 1, N
+          DX(IX) = DA*DX(IX)
+          IX = IX + INCX
+        END DO
+        RETURN
+
+!       Code for increment equal to 1.
+
+!       Clean-up loop so remaining vector length is a multiple of 5.
+
+10      M = MOD(N,5)
+        IF (M==0) GOTO 20
+        DX(1:M) = DA*DX(1:M)
+        IF (N<5) RETURN
+20      MP1 = M + 1
+        DO I = MP1, N, 5
+          DX(I) = DA*DX(I)
+          DX(I+1) = DA*DX(I+1)
+          DX(I+2) = DA*DX(I+2)
+          DX(I+3) = DA*DX(I+3)
+          DX(I+4) = DA*DX(I+4)
+        END DO
+        RETURN
+
+      END SUBROUTINE DSCAL_F90
+!_______________________________________________________________________
+
+      FUNCTION IDAMAX_F90(N,DX,INCX)
+! ..
+! Find the smallest index of that component of a vector
+! having the maximum magnitude.
+! ..
+!     Description of Parameters
+!     Input:
+!     N    - number of elements in input vector(s)
+!     DX   - real(wp) vector with N elements
+!     INCX - storage spacing between elements of DX
+!     Output:
+!     IDAMAX_F90 - smallest index (zero if N <= 0)
+!     Find smallest index of maximum magnitude of real(wp) DX.
+!     IDAMAX_F90 = first I, I = 1 to N, to maximize
+!     ABS(DX(IX+(I-1)*INCX)), where IX = 1 if INCX >= 0,
+!     else IX = 1+(1-N)*INCX.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Function Return Value ..
+        INTEGER :: IDAMAX_F90
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: INCX, N
+! ..
+! .. Array Arguments ..
+        KPP_REAL, INTENT (IN) :: DX(*)
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: DMAX, XMAG
+        INTEGER :: I, IX
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS
+! ..
+! .. FIRST EXECUTABLE STATEMENT IDAMAX_F90
+! ..
+        IDAMAX_F90 = 0
+        IF (N<=0) RETURN
+        IDAMAX_F90 = 1
+        IF (N==1) RETURN
+
+        IF (INCX==1) GOTO 10
+
+!       Code for increments not equal to 1.
+
+        IX = 1
+        IF (INCX<0) IX = (-N+1)*INCX + 1
+        DMAX = ABS(DX(IX))
+        IX = IX + INCX
+        DO I = 2, N
+          XMAG = ABS(DX(IX))
+          IF (XMAG>DMAX) THEN
+            IDAMAX_F90 = I
+            DMAX = XMAG
+          END IF
+          IX = IX + INCX
+        END DO
+        RETURN
+
+!       Code for increments equal to 1.
+
+10      DMAX = ABS(DX(1))
+        DO I = 2, N
+          XMAG = ABS(DX(I))
+          IF (XMAG>DMAX) THEN
+            IDAMAX_F90 = I
+            DMAX = XMAG
+          END IF
+        END DO
+        RETURN
+
+      END FUNCTION IDAMAX_F90
+! End of LINPACK and BLAS subroutines
+!_______________________________________________________________________
+
+! Beginning of MA28 subroutines
+! THIS IS A FORTRAN 90 TRANSLATION OF HSL'S F77 MA28. IT IS INTENDED
+! ONLY FOR USE IN CONJUNCTION WITH THE ODE SOLVER DVODE_F90 AND IS
+! NOT FUNCTIONAL IN A STANDALONE MANNER. PLEASE NOTE THAT MA28 IS NOT
+! PUBLIC DOMAIN SOFTWARE BUT HAS BEEN MADE AVAILABLE TO THE NUMERICAL
+! ANALYSIS COMMUNITY BY HARWELL. FOR OTHER USE PLEASE CONTACT HARWELL
+! AT HTTP://WWW.HSL-LIBRARY.COM OR CONTACT HSL@HYPROTECH.COM IF YOU
+! WISH TO SOLVE GENERAL SPARSE LINEAR SYSTEMS. IF YOU FIND A BUG OR
+! ENCOUNTER A PROBLEM WITH THE USE OF MA28 WITH DVODE.F90, PLEASE
+! CONTACT ONE OF THE AUTHORS OF DVODE_F90:
+!           G.D. Byrne (gbyrne@wi.rr.com)
+!           S. Thompson, thompson@radford.edu
+! NUMEROUS CHANGES WERE MADE IN CONNECTION WITH DVODE_F90 USAGE. THESE
+! INCLUDE USING METCALF'S CONVERTER TO TRANSLATE THE ORIGINAL f77 CODE
+! TO F90, MOVING INITIALIZATIONS TO THE DVODE_F90 PRIVATE SECTION,
+! ELIMINATION OF HOLLERITHS IN FORMAT STATEMENTS, ELIMINATION OF
+! BLOCKDATA, CHANGES IN ARITHMETICAL OPERATOR SYNTAX, AND CONVERSION
+! TO UPPER CASE. THIS VERSION OF MA28 IS INTENDED ONLY FOR USE WITH
+! DVODE_F90. PLEASE DO NOT MODIFY IT FOR ANY OTHER PURPOSE. IF YOU
+! HAVE LICENSED ACCESS TO THE HSL LIBRARY, AN ALTERNATE VERSION OF
+! DVODE_F90 BASED ON THE SUCCESSOR TO MA28, MA48, IS AVAILABLE FROM
+! THE AUTHORS. PLEASE NOTE THAT THE ALTERNATE VERSION OF DVODE_F90
+! IS NOT SELF CONTAINED SINCE MA48 IS NOT DISTRIBUTED WITH DVODE_F90.
+!******************************************************************
+!             *****MA28 COPYRIGHT NOTICE*****
+! COPYRIGHT (C) 2001 COUNCIL FOR THE CENTRAL LABORATORY
+!               OF THE RESEARCH COUNCILS
+! ALL RIGHTS RESERVED.
+
+! NONE OF THE COMMENTS IN THIS COPYRIGHT NOTICE BETWEEN THE LINES
+! OF ASTERISKS SHALL BE REMOVED OR ALTERED IN ANY WAY.
+
+! THIS PACKAGE IS INTENDED FOR COMPILATION WITHOUT MODIFICATION,
+! SO MOST OF THE EMBEDDED COMMENTS HAVE BEEN REMOVED.
+
+! ALL USE IS SUBJECT TO LICENCE. IF YOU NEED FURTHER CLARIFICATION,
+! PLEASE SEE HTTP://WWW.HSL-LIBRARY.COM OR CONTACT HSL@HYPROTECH.COM
+
+! PLEASE NOTE THAT:
+
+! 1. THE PACKAGES MAY ONLY BE USED FOR THE PURPOSES SPECIFIED IN THE
+!    LICENCE AGREEMENT AND MUST NOT BE COPIED BY THE LICENSEE FOR
+!    USE BY ANY OTHER PERSONS. USE OF THE PACKAGES IN ANY COMMERCIAL
+!    APPLICATION SHALL BE SUBJECT TO PRIOR WRITTEN AGREEMENT BETWEEN
+!    HYPROTECH UK LIMITED AND THE LICENSEE ON SUITABLE TERMS AND
+!    CONDITIONS, WHICH WILL INCLUDE FINANCIAL CONDITIONS.
+! 2. ALL INFORMATION ON THE PACKAGE IS PROVIDED TO THE LICENSEE ON
+!    THE UNDERSTANDING THAT THE DETAILS THEREOF ARE CONFIDENTIAL.
+! 3. ALL PUBLICATIONS ISSUED BY THE LICENSEE THAT INCLUDE RESULTS
+!    OBTAINED WITH THE HELP OF ONE OR MORE OF THE PACKAGES SHALL
+!    ACKNOWLEDGE THE USE OF THE PACKAGES. THE LICENSEE WILL NOTIFY
+!    HSL@HYPROTECH.COM OR HYPROTECH UK LIMITED OF ANY SUCH PUBLICATION.
+! 4. THE PACKAGES MAY BE MODIFIED BY OR ON BEHALF OF THE LICENSEE
+!    FOR SUCH USE IN RESEARCH APPLICATIONS BUT AT NO TIME SHALL SUCH
+!    PACKAGES OR MODIFICATIONS THEREOF BECOME THE PROPERTY OF THE
+!    LICENSEE. THE LICENSEE SHALL MAKE AVAILABLE FREE OF CHARGE TO THE
+!    COPYRIGHT HOLDER FOR ANY PURPOSE ALL INFORMATION RELATING TO
+!    ANY MODIFICATION.
+! 5. NEITHER COUNCIL FOR THE CENTRAL LABORATORY OF THE RESEARCH
+!    COUNCILS NOR HYPROTECH UK LIMITED SHALL BE LIABLE FOR ANY
+!    DIRECT OR CONSEQUENTIAL LOSS OR DAMAGE WHATSOEVER ARISING OUT OF
+!    THE USE OF PACKAGES BY THE LICENSEE.
+!******************************************************************
+
+      SUBROUTINE MA28AD(N,NZ,A,LICN,IRN,LIRN,ICN,U,IKEEP,IW,W,IFLAG)
+! ..
+! This subroutine performs the LU factorization of A.
+! ..
+! The parameters are as follows:
+! N     Order of matrix. Not altered by subroutine.
+! NZ    Number of non-zeros in input matrix. Not altered by subroutine.
+! A     Array of length LICN. Holds non-zeros of matrix
+!       on entry and non-zeros of factors on exit. Reordered by
+!       MA20AD and MC23AD and altered by MA30AD.
+! LICN  Length of arrays A and ICN. Not altered by subroutine.
+! IRN   Array of length LIRN. Holds row indices on input.
+!       Used as workspace by MA30AD to hold column orientation of
+!       matrix.
+! LIRN  Length of array IRN. Not altered by the subroutine.
+! ICN   Array of length LICN. Holds column indices on entry
+!       and column indices of decomposed matrix on exit. Reordered
+!       by MA20AD and MC23AD and altered by MA30AD.
+! U     Variable set by user to control bias towards numeric or
+!       sparsity pivoting. U = 1.0 gives partial pivoting
+!       while U = 0. does not check multipliers at all. Values of U
+!       greater than one are treated as one while negative values
+!       are treated as zero. Not altered by subroutine.
+! IKEEP Array of length 5*N used as workspace by MA28AD.
+!       (See later comments.) It is not required to be set on entry
+!       and, on exit, it contains information about the decomposition.
+!       It should be preserved between this call and subsequent calls
+!       to MA28BD or MA30CD.
+!       IKEEP(I,1),I = 1,N holds the total length of the part of row
+!       I in the diagonal block.
+!       Row IKEEP(I,2),I = 1,N of the input matrix is the Ith row in
+!       pivot order.
+!       Column IKEEP(I,3),I = 1,N of the input matrix is the Ith
+!       Column in pivot order.
+!       IKEEP(I,4),I = 1,N holds the length of the part of row I in
+!       the L part of the LU decomposition.
+!       IKEEP(I,5),I = 1,N holds the length of the part of row I in
+!       the off-diagonal blocks. If there is only one diagonal block,
+!       IKEEP(1,5) will be set to -1.
+! IW    Array of length 8*N. If the option NSRCH <= N is used, then
+!       the length of array IW can be reduced to 7*N.
+! W     Array length N. Used by MC24AD both as workspace and to return
+!       growth estimate in W(1). The use of this array by MA28AD is
+!       thus optional depending on logical variable GROW.
+! IFLAG Variable used as error flag by subroutine. A positive or
+!       zero value on exit indicates success. Possible negative
+!       values are -1 through -14.
+
+! Private Variable Information.
+! LP, MP Default value 6 (line printer). Unit number for error
+!     messages and duplicate element warning, respectively.
+! NLP, MLP INTEGER. Unit number for messages from MA30AD and
+!     MC23AD. Set by MA28AD to the value of LP.
+! LBLOCK Logical variable with default value .TRUE. If .TRUE.,
+!     MC23AD is used to first permute the matrix to block lower
+!     triangular form.
+! GROW Logical variable with default value .TRUE. If .TRUE., then
+!     an estimate of the increase in size of matrix elements during
+!     LU decomposition is given by MC24AD.
+! EPS, RMIN, RESID. Variables not referenced by MA28AD.
+! IRNCP, ICNCP INTEGER. Set to number of compresses on arrays IRN
+!     and ICN/A, respectively.
+! MINIRN, MINICN INTEGER. Minimum length of arrays IRN and ICN/A,
+!     respectively, for success on future runs.
+! IRANK INTEGER. Estimated rank of matrix.
+! MIRNCP, MICNCP, MIRANK, MIRN, MICN INTEGER. Variables used to
+!     communicate between MA30FD and MA28FD values of
+!     abovenamed variables with somewhat similar names.
+! ABORT1, ABORT2 LOGICAL. Variables with default value .TRUE.
+!     If .FALSE., then decomposition will be performed even
+!     if the matrix is structurally or numerically singular,
+!     respectively.
+! ABORTA, ABORTB LOGICAL. Variables used to communicate values
+!     of ABORT1 and ABORT2 to MA30AD.
+! ABORT Logical variable used to communicate value of ABORT1
+!     to MC23AD.
+! ABORT3 Logical variable. Not referenced by MA28AD.
+! IDISP Array of length 2. Used to communicate information
+!     on decomposition between this call to MA28AD and subsequent
+!     calls to MA28BD and MA30CD. On exit, IDISP(1) and
+!     IDISP(2) indicate position in arrays A and ICN of the
+!     first and last elements in the LU decomposition of the
+!     diagonal blocks, respectively.
+! NUMNZ Structural rank of matrix.
+! NUM   Number of diagonal blocks.
+! LARGE Size of largest diagonal block.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        KPP_REAL :: U
+        INTEGER :: IFLAG, LICN, LIRN, N, NZ
+! ..
+! .. Array Arguments ..
+        KPP_REAL :: A(LICN), W(N)
+        INTEGER :: ICN(LICN), IKEEP(N,5), IRN(LIRN), IW(N,8)
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: UPRIV
+        INTEGER :: I, I1, IEND, II, J, J1, J2, JAY, JJ, KNUM, LENGTH, MOVE, &
+          NEWJ1, NEWPOS
+        CHARACTER (80) :: MSG
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, MAX
+! ..
+! .. FIRST EXECUTABLE STATEMENT MA28AD
+! ..
+!       Check that this call was made from DVODE_F90 and, if not, stop.
+        IF (.NOT.OK_TO_CALL_MA28) THEN
+          MSG = 'This version of MA28 may be used only in conjunction with DVODE_F90.'
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = 'Please refer to the following HSL copyright notice for MA28.'
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = '******************************************************************     '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = '             *****MA28 COPYRIGHT NOTICE*****                           '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = ' COPYRIGHT (C) 2001 COUNCIL FOR THE CENTRAL LABORATORY                 '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = '               OF THE RESEARCH COUNCILS                                '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = ' ALL RIGHTS RESERVED.                                                  '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = ' NONE OF THE COMMENTS IN THIS COPYRIGHT NOTICE BETWEEN THE LINES       '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = ' OF ASTERISKS SHALL BE REMOVED OR ALTERED IN ANY WAY.                  '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = ' THIS PACKAGE IS INTENDED FOR COMPILATION WITHOUT MODIFICATION,        '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = ' SO MOST OF THE EMBEDDED COMMENTS HAVE BEEN REMOVED.                   '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = ' ALL USE IS SUBJECT TO LICENCE. IF YOU NEED FURTHER CLARIFICATION,     '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = ' PLEASE SEE HTTP://WWW.HSL-LIBRARY.COM OR CONTACT HSL@HYPROTECH.COM    '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = ' PLEASE NOTE THAT:                                                     '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = ' 1. THE PACKAGES MAY ONLY BE USED FOR THE PURPOSES SPECIFIED IN THE    '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = '    LICENCE AGREEMENT AND MUST NOT BE COPIED BY THE LICENSEE FOR       '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = '    USE BY ANY OTHER PERSONS. USE OF THE PACKAGES IN ANY COMMERCIAL    '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = '    APPLICATION SHALL BE SUBJECT TO PRIOR WRITTEN AGREEMENT BETWEEN    '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = '    HYPROTECH UK LIMITED AND THE LICENSEE ON SUITABLE TERMS AND        '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = '    CONDITIONS, WHICH WILL INCLUDE FINANCIAL CONDITIONS.               '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = ' 2. ALL INFORMATION ON THE PACKAGE IS PROVIDED TO THE LICENSEE ON      '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = '    THE UNDERSTANDING THAT THE DETAILS THEREOF ARE CONFIDENTIAL.       '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = ' 3. ALL PUBLICATIONS ISSUED BY THE LICENSEE THAT INCLUDE RESULTS       '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = '    OBTAINED WITH THE HELP OF ONE OR MORE OF THE PACKAGES SHALL        '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = '    ACKNOWLEDGE THE USE OF THE PACKAGES. THE LICENSEE WILL NOTIFY      '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = '    HSL@HYPROTECH.COM OR HYPROTECH UK LIMITED OF ANY SUCH PUBLICATION. '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = ' 4. THE PACKAGES MAY BE MODIFIED BY OR ON BEHALF OF THE LICENSEE       '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = '    FOR SUCH USE IN RESEARCH APPLICATIONS BUT AT NO TIME SHALL SUCH    '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = '    PACKAGES OR MODIFICATIONS THEREOF BECOME THE PROPERTY OF THE       '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = '    LICENSEE. THE LICENSEE SHALL MAKE AVAILABLE FREE OF CHARGE TO THE  '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = '    COPYRIGHT HOLDER FOR ANY PURPOSE ALL INFORMATION RELATING TO       '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = '    ANY MODIFICATION.                                                  '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = ' 5. NEITHER COUNCIL FOR THE CENTRAL LABORATORY OF THE RESEARCH         '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = '    COUNCILS NOR HYPROTECH UK LIMITED SHALL BE LIABLE FOR ANY          '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = '    DIRECT OR CONSEQUENTIAL LOSS OR DAMAGE WHATSOEVER ARISING OUT OF   '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = '    THE USE OF PACKAGES BY THE LICENSEE.                               '
+          CALL XERRDV(MSG,1770,1,0,0,0,0,ZERO,ZERO)
+          MSG = '******************************************************************     '
+          CALL XERRDV(MSG,1770,2,0,0,0,0,ZERO,ZERO)
+        END IF
+
+!       Some initialization and transfer of information between
+!       common blocks (see earlier comments).
+        IFLAG = 0
+        ABORTA = ABORT1
+        ABORTB = ABORT2
+        ABORT = ABORT1
+        MLP = LP
+        NLP = LP
+        TOL1 = TOL
+        LBIG1 = LBIG
+        NSRCH1 = NSRCH
+!       UPRIV private copy of U is used in case it is outside
+!       range zero to one and is thus altered by MA30AD.
+        UPRIV = U
+!       Simple data check on input variables and array dimensions.
+        IF (N>0) GOTO 10
+        IFLAG = -8
+        IF (LP/=0) WRITE (LP,90000) N
+        GOTO 170
+10      IF (NZ>0) GOTO 20
+        IFLAG = -9
+        IF (LP/=0) WRITE (LP,90001) NZ
+        GOTO 170
+20      IF (LICN>=NZ) GOTO 30
+        IFLAG = -10
+        IF (LP/=0) WRITE (LP,90002) LICN
+        GOTO 170
+30      IF (LIRN>=NZ) GOTO 40
+        IFLAG = -11
+        IF (LP/=0) WRITE (LP,90003) LIRN
+        GOTO 170
+
+!       Data check to see if all indices lie between 1 and N.
+40      DO 50 I = 1, NZ
+          IF (IRN(I)>0 .AND. IRN(I)<=N .AND. ICN(I)>0 .AND. ICN(I)<=N) &
+            GOTO 50
+          IF (IFLAG==0 .AND. LP/=0) WRITE (LP,90004)
+          IFLAG = -12
+          IF (LP/=0) WRITE (LP,90005) I, A(I), IRN(I), ICN(I)
+50      END DO
+        IF (IFLAG<0) GOTO 180
+
+!       Sort matrix into row order.
+        CALL MC20AD(N,NZ,A,ICN,IW(1,1),IRN,0)
+!       Part of IKEEP is used here as a work-array. IKEEP(I,2) is
+!       the last row to have a non-zero in column I. IKEEP(I,3)
+!       is the off-set of column I from the start of the row.
+        IKEEP(1:N,2) = 0
+        IKEEP(1:N,1) = 0
+
+!       Check for duplicate elements summing any such entries
+!       and printing a warning message on unit MP.
+!       MOVE is equal to the number of duplicate elements found.
+        MOVE = 0
+!       The loop also calculates the largest element in the matrix,
+!       THEMAX.
+        THEMAX = ZERO
+!       J1 is position in arrays of first non-zero in row.
+        J1 = IW(1,1)
+        DO 90 I = 1, N
+          IEND = NZ + 1
+          IF (I/=N) IEND = IW(I+1,1)
+          LENGTH = IEND - J1
+          IF (LENGTH==0) GOTO 90
+          J2 = IEND - 1
+          NEWJ1 = J1 - MOVE
+          DO 80 JJ = J1, J2
+            J = ICN(JJ)
+            THEMAX = MAX(THEMAX,ABS(A(JJ)))
+            IF (IKEEP(J,2)==I) GOTO 70
+!           First time column has ocurred in current row.
+            IKEEP(J,2) = I
+            IKEEP(J,3) = JJ - MOVE - NEWJ1
+            IF (MOVE==0) GOTO 80
+!           Shift necessary because of previous duplicate element.
+            NEWPOS = JJ - MOVE
+            A(NEWPOS) = A(JJ)
+            ICN(NEWPOS) = ICN(JJ)
+            GOTO 80
+!           Duplicate element.
+70          MOVE = MOVE + 1
+            LENGTH = LENGTH - 1
+            JAY = IKEEP(J,3) + NEWJ1
+            IF (MP/=0) WRITE (MP,90006) I, J, A(JJ)
+            A(JAY) = A(JAY) + A(JJ)
+            THEMAX = MAX(THEMAX,ABS(A(JAY)))
+80        END DO
+          IKEEP(I,1) = LENGTH
+          J1 = IEND
+90      END DO
+
+!       KNUM is actual number of non-zeros in matrix with any multiple
+!       entries counted only once.
+        KNUM = NZ - MOVE
+        IF (.NOT.LBLOCK) GOTO 100
+
+!       Perform block triangularisation.
+        CALL MC23AD(N,ICN,A,LICN,IKEEP(1,1),IDISP,IKEEP(1,2),IKEEP(1,3), &
+          IKEEP(1,5),IW(1,3),IW)
+        IF (IDISP(1)>0) GOTO 130
+        IFLAG = -7
+        IF (IDISP(1)==-1) IFLAG = -1
+        IF (LP/=0) WRITE (LP,90007)
+        GOTO 170
+
+!       Block triangularization not requested.
+!       Move structure to end of data arrays in preparation for MA30AD.
+!       Also set LENOFF(1) to -1 and set permutation arrays.
+100     DO I = 1, KNUM
+          II = KNUM - I + 1
+          NEWPOS = LICN - I + 1
+          ICN(NEWPOS) = ICN(II)
+          A(NEWPOS) = A(II)
+        END DO
+        IDISP(1) = 1
+        IDISP(2) = LICN - KNUM + 1
+        DO I = 1, N
+          IKEEP(I,2) = I
+          IKEEP(I,3) = I
+        END DO
+        IKEEP(1,5) = -1
+130     IF (LBIG) BIG1 = THEMAX
+        IF (NSRCH<=N) GOTO 140
+
+!       Perform LU decomposition on diagonal blocks.
+        CALL MA30AD(N,ICN,A,LICN,IKEEP(1,1),IKEEP(1,4),IDISP,IKEEP(1,2),       &
+          IKEEP(1,3),IRN,LIRN,IW(1,2),IW(1,3),IW(1,4),IW(1,5),IW(1,6),IW(1,7), &
+          IW(1,8),IW,UPRIV,IFLAG)
+        GOTO 150
+!       This call if used if NSRCH has been set less than or equal to N.
+!       In this case, two integer work arrays of length can be saved.
+140     CALL MA30AD(N,ICN,A,LICN,IKEEP(1,1),IKEEP(1,4),IDISP,IKEEP(1,2),       &
+          IKEEP(1,3),IRN,LIRN,IW(1,2),IW(1,3),IW(1,4),IW(1,5),IW,IW,IW(1,6),IW,&
+          UPRIV,IFLAG)
+
+!       Transfer private variable information.
+!150    MINIRN = MAX(MIRN,NZ)
+!       MINICN = MAX(MICN,NZ)
+150     MINIRN = MAX(MINIRN,NZ)
+        MINICN = MAX(MINICN,NZ)
+!       IRNCP = MIRNCP
+!       ICNCP = MICNCP
+!       IRANK = MIRANK
+!       NDROP = NDROP1
+        IF (LBIG) BIG = BIG1
+        IF (IFLAG>=0) GOTO 160
+        IF (LP/=0) WRITE (LP,90008)
+        GOTO 170
+
+!       Reorder off-diagonal blocks according to pivot permutation.
+160     I1 = IDISP(1) - 1
+        IF (I1/=0) CALL MC22AD(N,ICN,A,I1,IKEEP(1,5),IKEEP(1,2), &
+          IKEEP(1,3),IW,IRN)
+        I1 = IDISP(1)
+        IEND = LICN - I1 + 1
+
+!       Optionally calculate element growth estimate.
+        IF (GROW) CALL MC24AD(N,ICN,A(I1),IEND,IKEEP,IKEEP(1,4),W)
+!       Increment growth estimate by original maximum element.
+        IF (GROW) W(1) = W(1) + THEMAX
+        IF (GROW .AND. N>1) W(2) = THEMAX
+!       Set flag if the only error is due to duplicate elements.
+        IF (IFLAG>=0 .AND. MOVE/=0) IFLAG = -14
+        GOTO 180
+170     IF (LP/=0) WRITE (LP,90009)
+180     RETURN
+90000   FORMAT (' N is out of range = ',I10)
+90001   FORMAT (' NZ is non positive = ',I10)
+90002   FORMAT (' LICN is too small = ',I10)
+90003   FORMAT (' LIRN is too small = ',I10)
+90004   FORMAT (' Error return from MA28AD because indices found out', &
+          ' of range')
+90005   FORMAT (1X,I6,'The element with value ',1P,D22.14, &
+          ' is out of range with indices ',I8,',',I8)
+90006   FORMAT (' Duplicate element in position ',I8,',',I8,' with value ',1P, &
+          D22.14)
+90007   FORMAT (' Error return from MC23AD')
+90008   FORMAT (' Error return from MA30AD')
+90009   FORMAT (' Error return from MA28AD')
+
+      END SUBROUTINE MA28AD
+!_______________________________________________________________________
+
+      SUBROUTINE MA28BD(N,NZ,A,LICN,IVECT,JVECT,ICN,IKEEP,IW,W,IFLAG)
+! ..
+! This subroutine factorizes a matrix of a similar sparsity
+! pattern to that previously factorized by MA28AD.
+! ..
+! The parameters are as follows:
+! N            Order of matrix. Not altered by subroutine.
+! NZ           Number of non-zeros in input matrix. Not
+!              altered by subroutine.
+! A            Array of length LICN. Holds non-zeros of
+!              matrix on entry and non-zeros of factors on exit.
+!              Reordered by MA28DD and altered by MA30BD.
+! LICN         Length of arrays A and ICN. Not altered by
+!              subroutine.
+! IVECT, JVECT Arrays of length NZ. Hold row and column
+!              indices of non-zeros, respectively. Not altered
+!              by subroutine.
+! ICN          Array of length LICN. Same array as output
+!              from MA28AD. Unchanged by MA28BD.
+! IKEEP        Array of length 5*N. Same array as output
+!              from MA28AD. Unchanged by MA28BD.
+! IW           Array length 5*N. Used as workspace by
+!              MA28DD and MA30BD.
+! W            Array of length N. Used as workspace by
+!              MA28DD, MA30BD and (optionally) MC24AD.
+! IFLAG        Integer used as error flag, with positive
+!              or zero value indicating success.
+
+! Private Variable Information.
+! Unless otherwise stated private variables are as in MA28AD.
+! Those variables referenced by MA28BD are mentioned below.
+! LP, MP     Integers used as in MA28AD as unit number for error
+!            and warning messages, respectively.
+! NLP        Integer variable used to give value of LP to MA30ED.
+! EPS        MA30BD will output a positive value
+!            for IFLAG if any modulus of the ratio of pivot element
+!            to the largest element in its row (U part only) is less
+!            than EPS (unless EPS is greater than 1.0 when no action
+!            takes place).
+! RMIN       Variable equal to the value of this minimum ratio in
+!            cases where EPS is less than or equal to 1.0.
+! MEPS,MRMIN Variables used by the subroutine to communicate between
+!            MA28FD and MA30GD.
+! IDISP      Integer array of length 2. The same as that used by
+!            MA28AD. Unchanged by MA28BD.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER :: IFLAG, LICN, N, NZ
+! ..
+! .. Array Arguments ..
+        KPP_REAL :: A(LICN), W(N)
+        INTEGER :: ICN(LICN), IKEEP(N,5), IVECT(NZ), IW(N,5), JVECT(NZ)
+! ..
+! .. Local Scalars ..
+        INTEGER :: I1, IDUP, IEND
+! ..
+! .. FIRST EXECUTABLE STATEMENT MA28BD
+! ..
+!       Check to see if elements were dropped in previous MA28AD call.
+        IF (NDROP==0) GOTO 10
+        IFLAG = -15
+        IF (LP/=0) WRITE (LP,90000) IFLAG, NDROP
+        GOTO 70
+10      IFLAG = 0
+        MEPS = EPS
+        NLP = LP
+!       Simple data check on variables.
+        IF (N>0) GOTO 20
+        IFLAG = -11
+        IF (LP/=0) WRITE (LP,90001) N
+        GOTO 60
+20      IF (NZ>0) GOTO 30
+        IFLAG = -10
+        IF (LP/=0) WRITE (LP,90002) NZ
+        GOTO 60
+30      IF (LICN>=NZ) GOTO 40
+        IFLAG = -9
+        IF (LP/=0) WRITE (LP,90003) LICN
+        GOTO 60
+
+40      CALL MA28DD(N,A,LICN,IVECT,JVECT,NZ,ICN,IKEEP(1,1),IKEEP(1,4), &
+          IKEEP(1,5),IKEEP(1,2),IKEEP(1,3),IW(1,3),IW,W(1),IFLAG)
+!       THEMAX is largest element in matrix.
+        THEMAX = W(1)
+        IF (LBIG) BIG1 = THEMAX
+!       IDUP equals one if there were duplicate elements, zero otherwise.
+        IDUP = 0
+        IF (IFLAG==(N+1)) IDUP = 1
+        IF (IFLAG<0) GOTO 60
+
+!       Perform row Gauss elimination on the structure received from MA28DD.
+        CALL MA30BD(N,ICN,A,LICN,IKEEP(1,1),IKEEP(1,4),IDISP,IKEEP(1,2), &
+          IKEEP(1,3),W,IW,IFLAG)
+
+!       Transfer private variable information.
+        IF (LBIG) BIG1 = BIG
+!       RMIN = MRMIN
+        IF (IFLAG>=0) GOTO 50
+        IFLAG = -2
+        IF (LP/=0) WRITE (LP,90004)
+        GOTO 60
+
+!       Optionally calculate the growth parameter.
+50      I1 = IDISP(1)
+        IEND = LICN - I1 + 1
+        IF (GROW) CALL MC24AD(N,ICN,A(I1),IEND,IKEEP,IKEEP(1,4),W)
+!       Increment estimate by largest element in input matrix.
+        IF (GROW) W(1) = W(1) + THEMAX
+        IF (GROW .AND. N>1) W(2) = THEMAX
+!       Set flag if the only error is due to duplicate elements.
+        IF (IDUP==1 .AND. IFLAG>=0) IFLAG = -14
+        GOTO 70
+60      IF (LP/=0) WRITE (LP,90005)
+70      RETURN
+90000   FORMAT (' Error return from MA28BD with IFLAG = ',I4/I7, &
+          ' Entries dropped from structure by MA28AD')
+90001   FORMAT (' N is out of range = ',I10)
+90002   FORMAT (' NZ is non positive = ',I10)
+90003   FORMAT (' LICN is too small = ',I10)
+90004   FORMAT (' Error return from MA30BD')
+90005   FORMAT (' + Error return from MA28BD')
+
+      END SUBROUTINE MA28BD
+!_______________________________________________________________________
+
+      SUBROUTINE MA28DD(N,A,LICN,IVECT,JVECT,NZ,ICN,LENR,LENRL,LENOFF, &
+        IP,IQ,IW1,IW,W1,IFLAG)
+! ..
+! This subroutine need never be called by the user directly. It sorts
+! the user's matrix into the structure of the decomposed form and checks
+! for the presence of duplicate entries or non-zeros lying outside the
+! sparsity pattern of the decomposition. It also calculates the largest
+! element in the input matrix.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        KPP_REAL :: W1
+        INTEGER :: IFLAG, LICN, N, NZ
+! ..
+! .. Array Arguments ..
+        KPP_REAL :: A(LICN)
+        INTEGER :: ICN(LICN), IP(N), IQ(N), IVECT(NZ), IW(N,2), IW1(N,3), &
+          JVECT(NZ), LENOFF(N), LENR(N), LENRL(N)
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: AA
+        INTEGER :: I, IBLOCK, IDISP2, IDUMMY, II, INEW, IOLD, J1, J2, JCOMP, &
+          JDUMMY, JJ, JNEW, JOLD, MIDPT
+        LOGICAL :: BLOCKL
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, IABS, MAX
+! ..
+! .. FIRST EXECUTABLE STATEMENT MA28DD
+! ..
+        BLOCKL = LENOFF(1) >= 0
+!       IW1(I,3) is set to the block in which row I lies and the
+!       inverse permutations to IP and IQ are set in IW1(:,1) and
+!       IW1(:,2), respectively.
+!       Pointers to beginning of the part of row I in diagonal and
+!       off-diagonal blocks are set in IW(I,2) and IW(I,1),
+!       respectively.
+        IBLOCK = 1
+        IW(1,1) = 1
+        IW(1,2) = IDISP(1)
+        DO 10 I = 1, N
+          IW1(I,3) = IBLOCK
+          IF (IP(I)<0) IBLOCK = IBLOCK + 1
+          II = IABS(IP(I)+0)
+!         II = IABS(IP(I))
+          IW1(II,1) = I
+          JJ = IQ(I)
+          JJ = IABS(JJ)
+          IW1(JJ,2) = I
+          IF (I==1) GOTO 10
+          IF (BLOCKL) IW(I,1) = IW(I-1,1) + LENOFF(I-1)
+          IW(I,2) = IW(I-1,2) + LENR(I-1)
+10      END DO
+!       Place each non-zero in turn into its correct location in
+!       the A/ICN array.
+        IDISP2 = IDISP(2)
+        DO 170 I = 1, NZ
+!         Necessary to avoid reference to unassigned element of ICN.
+          IF (I>IDISP2) GOTO 20
+          IF (ICN(I)<0) GOTO 170
+20        IOLD = IVECT(I)
+          JOLD = JVECT(I)
+          AA = A(I)
+!         This is a dummy loop for following a chain of interchanges.
+!         It will be executed NZ TIMES in total.
+          DO IDUMMY = 1, NZ
+!           Perform some validity checks on IOLD and JOLD.
+            IF (IOLD<=N .AND. IOLD>0 .AND. JOLD<=N .AND. JOLD>0) GOTO 30
+            IF (LP/=0) WRITE (LP,90000) I, A(I), IOLD, JOLD
+            IFLAG = -12
+            GOTO 180
+30          INEW = IW1(IOLD,1)
+            JNEW = IW1(JOLD,2)
+!           Are we in a valid block and is it diagonal or off-diagonal?
+!           IF (IW1(INEW,3)-IW1(JNEW,3)) 40, 60, 50
+!40         IFLAG = -13
+            IF (IW1(INEW,3)-IW1(JNEW,3) == 0) GOTO 60
+            IF (IW1(INEW,3)-IW1(JNEW,3) > 0) GOTO 50
+            IFLAG = -13
+            IF (LP/=0) WRITE (LP,90001) IOLD, JOLD
+            GOTO 180
+50          J1 = IW(INEW,1)
+            J2 = J1 + LENOFF(INEW) - 1
+            GOTO 110
+!           Element is in diagonal block.
+60          J1 = IW(INEW,2)
+            IF (INEW>JNEW) GOTO 70
+            J2 = J1 + LENR(INEW) - 1
+            J1 = J1 + LENRL(INEW)
+            GOTO 110
+70          J2 = J1 + LENRL(INEW)
+!           Binary search of ordered list. Element in L part of row.
+            DO 100 JDUMMY = 1, N
+              MIDPT = (J1+J2)/2
+              JCOMP = IABS(ICN(MIDPT)+0)
+!             JCOMP = IABS(ICN(MIDPT))
+!             IF (JNEW-JCOMP) 80, 130, 90
+!80           J2 = MIDPT
+              IF (JNEW-JCOMP == 0) GOTO 130
+              IF (JNEW-JCOMP > 0) GOTO 90
+              J2 = MIDPT
+              GOTO 100
+90            J1 = MIDPT
+100         END DO
+            IFLAG = -13
+            IF (LP/=0) WRITE (LP,90002) IOLD, JOLD
+            GOTO 180
+!           Linear search. Element in L part of row or off-diagonal blocks.
+110         DO MIDPT = J1, J2
+              IF (IABS(ICN(MIDPT)+0)==JNEW) GOTO 130
+!             IF (IABS(ICN(MIDPT))==JNEW) GOTO 130
+            END DO
+            IFLAG = -13
+            IF (LP/=0) WRITE (LP,90002) IOLD, JOLD
+            GOTO 180
+!           Equivalent element of ICN is in position MIDPT.
+130         IF (ICN(MIDPT)<0) GOTO 160
+            IF (MIDPT>NZ .OR. MIDPT<=I) GOTO 150
+            W1 = A(MIDPT)
+            A(MIDPT) = AA
+            AA = W1
+            IOLD = IVECT(MIDPT)
+            JOLD = JVECT(MIDPT)
+            ICN(MIDPT) = -ICN(MIDPT)
+          END DO
+150       A(MIDPT) = AA
+          ICN(MIDPT) = -ICN(MIDPT)
+          GOTO 170
+160       A(MIDPT) = A(MIDPT) + AA
+!        Set flag for duplicate elements.
+          iflag = n + 1
+170     END DO
+!       Reset ICN array and zero elements in LU but not in A.
+!       Also calculate the maximum element of A.
+180     W1 = ZERO
+        DO 200 I = 1, IDISP2
+          IF (ICN(I)<0) GOTO 190
+          A(I) = ZERO
+          GOTO 200
+190       ICN(I) = -ICN(I)
+          W1 = MAX(W1,ABS(A(I)))
+200     END DO
+        RETURN
+90000   FORMAT (' Element ',I6,' with value ',D22.14,' has indices ',I8, &
+          ','/I8,' indices out of range')
+90001   FORMAT (' Non-zero ',I7,',',I6,' in zero off-diagonal',' block')
+90002   FORMAT (' Element ',I6,',',I6,' was not in LU pattern')
+
+      END SUBROUTINE MA28DD
+!_______________________________________________________________________
+
+      SUBROUTINE MA28CD(N,A,LICN,ICN,IKEEP,RHS,W,MTYPE)
+! ..
+! This subroutine uses the factors from MA28AD or MA28BD to solve a
+! system of equations without iterative refinement.
+! ..
+! The parameters are:
+! N     Order of matrix. Not altered by subroutine.
+! A     array of length LICN. the same array as
+!       was used in the most recent call to MA28AD or MA28BD.
+! LICN  Length of arrays A and ICN. Not altered by subroutine.
+! ICN   Array of length LICN. Same array as output from
+!       MA28AD. Unchanged by MA30CD.
+! IKEEP Array of length 5*N. Same array as output from
+!       MA28AD. Unchanged by MA30CD.
+! RHS   Array of length N. On entry, it holds the
+!       right hand side, on exit, the solution vector.
+! W     Array of length N. Used as workspace by MA30CD.
+! MTYPE Integer used to tell MA30CD to solve the direct
+!       equation (MTYPE = 1) or its transpose (MTYPE /= 1).
+
+! Private Variable Information.
+! Unless otherwise stated private variables are as in MA28AD.
+! Those variables referenced by MA30CD are mentioned below.
+! RESID   Variable which returns maximum residual of
+!         equations where pivot was zero.
+! MRESID  Variable used by MA30CD to communicate between
+!         MA28FD and MA30HD.
+! IDISP   Integer array of length 2. The same as that used
+!         by MA28AD. Unchanged by MA28BD.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER :: LICN, MTYPE, N
+! ..
+! .. Array Arguments ..
+        KPP_REAL :: A(LICN), RHS(N), W(N)
+        INTEGER :: ICN(LICN), IKEEP(N,5)
+! ..
+! .. FIRST EXECUTABLE STATEMENT MA28CD
+! ..
+!       This call performs the solution of the set of equations.
+        CALL MA30CD(N,ICN,A,LICN,IKEEP(1,1),IKEEP(1,4),IKEEP(1,5),IDISP, &
+          IKEEP(1,2),IKEEP(1,3),RHS,W,MTYPE)
+!       Transfer private variable information.
+        RESID = MRESID
+        RETURN
+
+      END SUBROUTINE MA28CD
+!_______________________________________________________________________
+
+      SUBROUTINE MA28ID(N,NZ,AORG,IRNORG,ICNORG,LICN,A,ICN,IKEEP,RHS, &
+        X,R,W,MTYPE,PREC,IFLAG)
+! ..
+! This subroutine uses the factors from an earlier call to MA28AD or
+! MA28BD to solve the system of equations with iterative refinement.
+! ..
+! The parameters are:
+! N      Order of the matrix. Not altered by the subroutine.
+! NZ     Number of entries in the original matrix. Not altered by
+!        the subroutine.
+!        For this entry the original matrix must have been saved in
+!        AORG, IRNORG, ICNORG where entry AORG(K) is in row IRNORG(K)
+!        and column ICNORG(K),K = 1,...,NZ. Information about the
+!        factors of A is communicated to this subroutine via the
+!        parameters LICN, A, ICN and IKEEP where:
+! AORG   Array of length NZ. Not altered by MA28ID.
+! IRNORG Array of length NZ. Not altered by MA28ID.
+! ICNORG Array of length NZ. Not altered by MA28ID.
+! LICN   Length of arrays A and ICN. Not altered by the subroutine.
+! A      Array of length LICN. It must be unchanged since the
+!        last call to MA28AD or MA28BD. Not altered by the
+!        subroutine.
+! ICN, IKEEP are the arrays (of lengths LICN and 5*N, respectively)
+!        of the same names as in the previous all to MA28AD. They
+!        should be unchanged since this earlier call and they are
+!        not altered by MA28ID.
+! The other parameters are as follows:
+! RHS    Array of length N. The user must set RHS(I) to contain
+!        the value of the Ith component of the right hand side.
+!        Not altered by MA28ID.
+! X      Array of length N. If an initial guess of the solution
+!        is given (ISTART equal to 1), then the user must set X(I)
+!        to contain the value of the Ith component of the estimated
+!        solution. On exit, X(I) contains the Ith component of the
+!        solution vector.
+! R      Array of length N. It need not be set on entry. On exit,
+!        R(I) contains the Ith component of an estimate of the error
+!        if MAXIT is greater than 0.
+! W      Array of length N. Used as workspace by MA28ID.
+! MTYPE  Must be set to determine whether MA28ID will solve A*X = RHS
+!        (MTYPE = 1) or AT*X = RHS (MTYPE /= 1). Not altered by MA28ID.
+! PREC   Should be set by the user to the relative accuracy required.
+!        The iterative refinement will terminate if the magnitude of
+!        the largest component of the estimated error relative to the
+!        largest component in the solution is less than PREC.
+!        Not altered by MA28ID.
+! IFLAG  Diagnostic flag which will be set to zero on successful
+!        exit from MA28ID. Otherwise it will have a non-zero value.
+!        The non-zero value IFLAG can have on exit from MA28ID are
+!        -16 indicating that more than MAXIT iteartions are required.
+!        -17 indicating that more convergence was too slow.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        KPP_REAL :: PREC
+        INTEGER :: IFLAG, LICN, MTYPE, N, NZ
+! ..
+! .. Array Arguments ..
+        KPP_REAL :: A(LICN), AORG(NZ), R(N), RHS(N), W(N), X(N)
+        INTEGER :: ICN(LICN), ICNORG(NZ), IKEEP(N,5), IRNORG(NZ)
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: CONVER, D, DD
+        INTEGER :: I, ITERAT, NCOL, NROW
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, MAX
+! ..
+! .. FIRST EXECUTABLE STATEMENT MA28ID
+! ..
+!       Initialization of NOITER, ERRMAX, and IFLAG.
+        NOITER = 0
+        ERRMAX = ZERO
+        IFLAG = 0
+
+!       Jump if a starting vector has been supplied by the user.
+
+        IF (ISTART==1) GOTO 20
+
+!       Make a copy of the right-hand side vector.
+
+        X(1:N) = RHS(1:N)
+
+!       Find the first solution.
+
+        CALL MA28CD(N,A,LICN,ICN,IKEEP,X,W,MTYPE)
+
+!       Stop the computations if MAXIT = 0.
+
+20      IF (MAXIT==0) GOTO 160
+
+!       Calculate the max-norm of the first solution.
+
+        DD = 0.0
+        DO I = 1, N
+          DD = MAX(DD,ABS(X(I)))
+        END DO
+        DXMAX = DD
+
+!       Begin the iterative process.
+
+        DO 120 ITERAT = 1, MAXIT
+          D = DD
+
+!         Calculate the residual vector.
+
+          R(1:N) = RHS(1:N)
+          IF (MTYPE==1) GOTO 60
+          DO I = 1, NZ
+            NROW = IRNORG(I)
+            NCOL = ICNORG(I)
+            R(NCOL) = R(NCOL) - AORG(I)*X(NROW)
+          END DO
+          GOTO 80
+!         MTYPE = 1.
+60        DO I = 1, NZ
+            NROW = IRNORG(I)
+            NCOL = ICNORG(I)
+            R(NROW) = R(NROW) - AORG(I)*X(NCOL)
+          END DO
+80        DRES = 0.0
+
+!         Find the max-norm of the residual vector.
+
+          DO I = 1, N
+            DRES = MAX(DRES,ABS(R(I)))
+          END DO
+
+!         Stop the calculations if the max-norm of
+!         the residual vector is zero.
+
+!         IF (DRES == 0.0) GOTO 150
+          IF (ABS(DRES)<=ZERO) GOTO 150
+
+!         Calculate the correction vector.
+
+          NOITER = NOITER + 1
+          CALL MA28CD(N,A,LICN,ICN,IKEEP,R,W,MTYPE)
+
+!         Find the max-norm of the correction vector.
+
+          DD = 0.0
+          DO I = 1, N
+            DD = MAX(DD,ABS(R(I)))
+          END DO
+
+!         Check the convergence.
+
+          IF (DD>D*CGCE .AND. ITERAT>=2) GOTO 130
+          IF (ABS((DXMAX*TEN+DD)-(DXMAX*TEN))<=ZERO) GOTO 140
+
+!         Attempt to improve the solution.
+
+          DXMAX = 0.0
+          DO I = 1, N
+            X(I) = X(I) + R(I)
+            DXMAX = MAX(DXMAX,ABS(X(I)))
+          END DO
+
+!         Check the stopping criterion.
+ 
+          IF (DD<PREC*DXMAX) GOTO 140
+120     END DO
+!       More than MAXIT iterations required.
+        IFLAG = -16
+        WRITE (LP,90000) IFLAG, MAXIT
+        GOTO 140
+!       Convergence rate unacceptably slow.
+130     IFLAG = -17
+        CONVER = DD/D
+        WRITE (LP,90001) IFLAG, CONVER, CGCE
+
+!       The iterative process is terminated.
+
+140     ERRMAX = DD
+150     CONTINUE
+160     RETURN
+90000   FORMAT (' Error return from MA28ID with IFLAG = ',I3/' More than ', &
+          I5,' iterations required')
+90001   FORMAT (' Error return from MA28I with IFLAG = ', &
+          I3/' Convergence rate of ',1P,E9.2,' too slow'/ &
+          ' Maximum acceptable rate set to ',1P,E9.2)
+
+      END SUBROUTINE MA28ID
+!_______________________________________________________________________
+
+! Private Variable Information.
+! LP, MP are used by the subroutine as the unit numbers for its warning
+!     and diagnostic messages. Default value for both is 6 (for line
+!     printer output). The user can either reset them to a different
+!     stream number or suppress the output by setting them to zero.
+!     While LP directs the output of error diagnostics from the
+!     principal subroutines and internally called subroutines, MP
+!     controls only the output of a message which warns the user that
+!     he has input two or more non-zeros A(I),. .,A(K) with the same
+!     row and column indices. The action taken in this case is to
+!     proceed using a numerical value of A(I)+...+A(K). In the absence
+!     of other errors, IFLAG will equal -14 on exit.
+! LBLOCK Is a logical variable which controls an option of first
+!     preordering the matrix to block lower triangular form (using
+!     Harwell subroutine MC23A). The preordering is performed if LBLOCK
+!     is equal to its default value of .TRUE. If LBLOCK is set to
+!     .FALSE., the option is not invoked and the space allocated to
+!     IKEEP can be reduced to 4*N+1.
+! GROW is a logical variable. If it is left at its default value of
+!     .TRUE., then on return from MA28AD or MA28BD, W(1) will give
+!     an estimate (an upper bound) of the increase in size of elements
+!     encountered during the decomposition. If the matrix is well
+!     scaled, then a high value for W(1), relative to the largest entry
+!     in the input matrix, indicates that the LU decomposition may be
+!     inaccurate and the user should be wary of his results and perhaps
+!     increase U for subsequent runs. We would like to emphasise that
+!     this value only relates to the accuracy of our LU decomposition
+!     and gives no indication as to the singularity of the matrix or the
+!     accuracy of the solution. This upper bound can be a significant
+!     overestimate particularly if the matrix is badly scaled. If an
+!     accurate value for the growth is required, LBIG(Q.V.) should be
+!     set to .TRUE.
+! EPS, RMIN If, on entry to MA28BD, EPS is less than one, then RMIN
+!     will give the smallest ratio of the pivot to the largest element
+!     in the corresponding row of the upper triangular factor thus
+!     monitoring the stability of successive factorizations. If RMIN
+!     becomes very large and W(1) from MA28BD is also very large, it
+!     may be advisable to perform a new decomposition using MA28AD.
+! RESID Variable which on exit from MA30CD gives the value of the
+!     maximum residual over all the equations unsatisfied because
+!     of dependency (zero pivots).
+! IRNCP, ICNCP Variables which monitor the adequacy of "elbow room"
+!     in IRN and A/ICN, respectively. If either is quite large (say
+!     greater than N/10), it will probably pay to increase the size of
+!     the corresponding array for subsequent runs. If either is very low
+!     or zero, then one can perhaps save storage by reducing the size of
+!     the corresponding array.
+! MINIRN, MINICN Integer variables which, in the event of a successful
+!     return (IFLAG >= 0 or IFLAG = -14) give the minimum size of IRN
+!     and A/ICN, respectively which would enable a successful run on
+!     an identical matrix. On an exit with IFLAG equal to -5, MINICN
+!     gives the minimum value of ICN for success on subsequent runs on
+!     an identical matrix. In the event of failure with IFLAG = -6,-4,
+!     -3,-2, OR -1, then MINICN and MINIRN give the minimum value of
+!     LICN and LIRN, respectively which would be required for a
+!     successful decomposition up to the point at which the failure
+!     occurred.
+! IRANK Integer variable which gives an upper bound on the rank of
+!     the matrix.
+! ABORT1 is a logical variable with default value .TRUE. If ABORT1 is
+!     set to .FALSE., then MA28AD will decompose structurally singular
+!     matrices (including rectangular ones).
+! ABORT2 is a logical variable with default value .TRUE. If ABORT2 is
+!     set to .FALSE., then MA28AD will decompose numerically singular
+!     matrices.
+! IDISP is an integer array of length 2. On output from MA28AD, The
+!     indices of the diagonal blocks of the factors lie in positions
+!     IDISP(1) to IDISP(2) of A/ICN. This array must be preserved
+!     between a call to MA28AD and subsequent calls to MA28BD,
+!     MA30CD or MA28ID.
+! TOL If set to a positive value, then any non-zero whose modulus is
+!     less than TOL will be dropped from the factorization. The
+!     factorization will then require less storage but will be
+!     inaccurate. After a run of MA28AD with TOL positive it is not
+!     possible to use MA28BD and the user is recommended to use
+!     MA28ID to obtain the solution. The default value for TOL is 0.0.
+! THEMAX On exit from MA28AD, THEMAX will hold the largest entry of
+!     the original matrix.
+! BIG If LBIG has been set to .TRUE., BIG will hold the largest entry
+!     encountered during the factorization by MA28AD or MA28BD.
+! DXMAX On exit from MA28ID, DXMAX will be set to the largest component
+!     of the solution.
+! ERRMAX If MAXIT is positive, ERRMAX will be set to the largest
+!     component in the estimate of the error.
+! DRES On exit from MA28ID, if MAXIT is positive, DRES will be set to
+!     the largest component of the residual.
+! CGCE Used by MA28ID to check the convergence rate. If the ratio of
+!     successive corrections is not less than CGCE, then we terminate
+!     since the convergence rate is adjudged too slow.
+! NDROP If TOL has been set positive on exit from MA28AD, NDROP will
+!     hold the number of entries dropped from the data structure.
+! MAXIT Maximum number of iterations performed by MA28ID. Default = 16.
+! NOITER Set by MA28ID to the number of iterative refinement iterations
+!     actually used.
+! NSRCH If NSRCH is set to a value less than N, then a different pivot
+!     option will be employed by MA28AD. This may result in different
+!     fill-in and execution time for MA28AD. If NSRCH is less than or
+!     equal to N, the workspace array IW can be reduced in length. The
+!     default value for NSRCH is 32768.
+! ISTART If ISTART is set to a value other than zero, then the user
+!     must supply an estimate of the solution to MA28ID. The default
+!     value for istart is zero.
+! LBIG If LBIG is set to .TRUE., the value of the largest element
+!     encountered in the factorization by MA28AD or MA28BD is returned
+!     in BIG. Setting LBIG to .TRUE. will increase the time for MA28AD
+!     marginally and that for MA28BD by about 20%. The default value
+!     for LBIG is .FALSE.
+!_______________________________________________________________________
+
+      SUBROUTINE MA30AD(NN,ICN,A,LICN,LENR,LENRL,IDISP,IP,IQ,IRN,LIRN, &
+        LENC,IFIRST,LASTR,NEXTR,LASTC,NEXTC,IPTR,IPC,U,IFLAG)
+! ..
+!     If the user requires a more convenient data interface then the
+!     MA28 package should be used. The MA28 subroutines call the MA30
+!     subroutines after checking the user's input data and optionally
+!     using MC23AD to permute the matrix to block triangular form.
+!     This package of subroutines (MA30AD, MA30BD, MA30CD, and MA30DD)
+!     performs operations pertinent to the solution of a general
+!     sparse N by N system of linear equations (i.e., solve
+!     AX = B). Structually singular matrices are permitted including
+!     those with row or columns consisting entirely of zeros (i.e.,
+!     including rectangular matrices). It is assumed that the
+!     non-zeros of the matrix A do not differ widely in size. If
+!     necessary a prior call of the scaling subroutine MA19AD may be
+!     made.
+!     A discussion of the design of these subroutines is given by Duff
+!     and Reid (ACM TRANS MATH SOFTWARE 5 PP 18-35, 1979(CSS 48)) while
+!     fuller details of the implementation are given in duff (HARWELL
+!     REPORT AERE-R 8730, 1977). The additional pivoting option in
+!     ma30ad and the use of drop tolerances (see private variables for
+!     MA30ID) were added to the package after joint work with Reid,
+!     Schaumburg, Wasniewski and Zlatev (Duff, Reid, Schaumburg,
+!     Wasniewski and Zlatev, HARWELL REPORT CSS 135, 1983).
+
+!     MA30AD performs the LU decomposition of the diagonal blocks of
+!     the permutation PAQ of a sparse matrix A, where input permutations
+!     P1 and Q1 are used to define the diagonal blocks. There may be
+!     non-zeros in the off-diagonal blocks but they are unaffected by
+!     MA30AD. P and P1 differ only within blocks as do Q and Q1. The
+!     permutations P1 and Q1 may be found by calling MC23AD or the
+!     matrix may be treated as a single block by using P1 = Q1 = I. The
+!     matrix non-zeros should be held compactly by rows, although it
+!     should be noted that the user can supply the matrix by columns
+!     to get the LU decomposition of A transpose.
+
+!     This description should also be consulted for further information
+!     on most of the parameters of MA30BD and MA30CD.
+!     The parameters are:
+! N   is an integer variable which must be set by the user to the order
+!     of the matrix. It is not altered by MA30AD.
+! ICN is an integer array of length LICN. Positions IDISP(2) to
+!     LICN must be set by the user to contain the column indices of
+!     the non-zeros in the diagonal blocks of P1*A*Q1. Those belonging
+!     to a single row must be contiguous but the ordering of column
+!     indices with each row is unimportant. The non-zeros of row I
+!     precede those of row I+1,I = 1,...,N-1 and no wasted space is
+!     allowed between the rows. On output the column indices of the
+!     LU decomposition of PAQ are held in positions IDISP(1) to
+!     IDISP(2), the rows are in pivotal order, and the column indices
+!     of the L Part of each row are in pivotal order and precede those
+!     of U. Again there is no wasted space either within a row or
+!     between the rows. ICN(1) to ICN(IDISP(1)-1), are neither
+!     required nor altered. If MC23AD has been called, these will hold
+!     information about the off-diagonal blocks.
+! A   Array of length LICN whose entries IDISP(2) to LICN must be set
+!     by the user to the values of the non-zero entries of the matrix
+!     in the order indicated by ICN. On output A will hold the LU
+!     factors of the matrix where again the position in the matrix
+!     is determined by the corresponding values in ICN.
+!     A(1) to A(IDISP(1)-1) are neither required nor altered.
+! LICN is an integer variable which must be set by the user to the
+!     length of arrays ICN and A. It must be big enough for A and ICN
+!     to hold all the non-zeros of L and U and leave some "elbow
+!     room". It is possible to calculate a minimum value for LICN by
+!     a preliminary run of MA30AD. The adequacy of the elbow room
+!     can be judged by the size of the private variable ICNCP.
+!     It is not altered by MA30AD.
+! LENR is an integer array of length N. On input, LENR(I) should
+!     equal the number of non-zeros in row I,I = 1,...,N of the
+!     diagonal blocks of P1*A*Q1. On output, LENR(I) will equal the
+!     total number of non-zeros in row I of L and row I of U.
+! LENRL is an integer array of length N. On output from MA30AD,
+!     LENRL(I) will hold the number of non-zeros in row I of L.
+! IDISP is an integer array of length 2. The user should set IDISP(1)
+!     to be the first available position in A/ICN for the LU
+!     decomposition while IDISP(2) is set to the position in A/ICN of
+!     the first non-zero in the diagonal blocks of P1*A*Q1. On output,
+!     IDISP(1) will be unaltered while IDISP(2) will be set to the
+!     position in A/ICN of the last non-zero of the LU decomposition.
+! IP  is an integer array of length N which holds a permutation of
+!     the integers 1 to N. On input to MA30AD, the absolute value of
+!     IP(I) must be set to the row of A which is row I of P1*A*Q1. A
+!     negative value for IP(I) indicates that row I is at the end of a
+!     diagonal block. On output from MA30AD, IP(I) indicates the row
+!     of A which is the Ith row in PAQ. IP(I) will still be negative
+!     for the last row of each block (except the last).
+! IQ  is an integer array of length N which again holds a
+!     permutation of the integers 1 to N. On input to MA30AD, IQ(J)
+!     must be set to the column of A which is column J of P1*A*Q1. On
+!     output from MA30AD, the absolute value of IQ(J) indicates the
+!     column of A which is the Jth in PAQ. For rows, I say, in which
+!     structural or numerical singularity is detected IQ(I) is
+!     negated.
+! IRN is an integer array of length LIRN used as workspace by
+!     MA30AD.
+! LIRN is an integer variable. It should be greater than the
+!     largest number of non-zeros in a diagonal block of P1*A*Q1 but
+!     need not be as large as LICN. It is the length of array IRN and
+!     should be large enough to hold the active part of any block,
+!     plus some "elbow room", the a posteriori adequacy of which can
+!     be estimated by examining the size of private variable
+!     IRNCP.
+! LENC, FIRST, LASTR, NEXTR, LASTC, NEXTC are all integer arrays of
+!     length N which are used as workspace by MA30AD. If NSRCH is
+!     set to a value less than or equal to N, then arrays LASTC and
+!     NEXTC are not referenced by MA30AD and so can be dummied in
+!     the call to MA30AD.
+! IPTR, IPC are integer arrays of length N which are used as
+!     workspace by MA30AD.
+! U   is a real(kind=wp) variable which should be set by the user
+!     to a value between 0. and 1.0. If less than zero it is reset
+!     to zero and if its value is 1.0 or greater it is reset to
+!     0.9999 (0.999999999 in D version). It determines the balance
+!     between pivoting for sparsity and for stability, values near
+!     zero emphasizing sparsity and values near one emphasizing
+!     stability. We recommend U = 0.1 as a posible first trial value.
+!     The stability can be judged by a later call to MC24AD or by
+!     setting LBIG to .TRUE.
+! IFLAG is an integer variable. It will have a non-negative value
+!     if MA30AD is successful. Negative values indicate error
+!     conditions while positive values indicate that the matrix has
+!     been successfully decomposed but is singular. For each non-zero
+!     value, an appropriate message is output on unit LP. Possible
+!     non-zero values for IFLAG are
+! -1  THe matrix is structurally singular with rank given by IRANK
+!     in private variables for MA30FD.
+! +1  If, however, the user wants the LU decomposition of a
+!     structurally singular matrix and sets the private variable
+!     ABORT1 to .FALSE., then, in the event of singularity and a
+!     successful decomposition, Iflag is returned with the value +1
+!     and no message is output.
+! -2  The matrix is numerically singular (it may also be structurally
+!     singular) with estimated rank given by IRANK in private variables
+!     for MA30FD.
+! +2  THE user can choose to continue the decomposition even when a
+!     zero pivot is encountered by setting private variable
+!     ABORT2 TO .FALSE. If a singularity is encountered, IFLAG will
+!     then return with a value of +2, and no message is output if
+!     the decomposition has been completed successfully.
+! -3  LIRN has not been large enough to continue with the
+!     decomposition. If the stage was zero then private variable
+!     MINIRN gives the length sufficient to start the decomposition on
+!     this block. FOr a successful decomposition on this block the
+!     user should make LIRN slightly (say about N/2) greater than this
+!     value.
+! -4  LICN is not large enough to continue with the decomposition.
+! -5  The decomposition has been completed but some of the LU factors
+!     have been discarded to create enough room in A/ICN to continue
+!     the decomposition. The variable MINICN in private variables for
+!     MA30FD. Then gives the size that LICN should be to enable the
+!     factorization to be successful. If the user sets private
+!     variable ABORT3 to .TRUE., then the subroutine will exit
+!     immediately instead of destroying any factors and continuing.
+! -6  Both LICN and LIRN are too small. Termination has been caused
+!     by lack of space in IRN (see error IFLAG = -3), but already
+!     some of the LU factors in A/ICN have been lost (see error
+!     IFLAG = -5). MINICN gives the minimum amount of space
+!     required in A/ICN for decomposition up to this point.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        KPP_REAL :: U
+        INTEGER :: IFLAG, LICN, LIRN, NN
+! ..
+! .. Array Arguments ..
+        KPP_REAL :: A(LICN)
+        INTEGER :: ICN(LICN), IDISP(2), IFIRST(NN), IP(NN), IPC(NN), &
+          IPTR(NN), IQ(NN), IRN(LIRN), LASTC(NN), LASTR(NN),         &
+          LENC(NN), LENR(NN), LENRL(NN), NEXTC(NN), NEXTR(NN)
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: AANEW, AMAX, ANEW, AU, PIVR, PIVRAT, SCALE
+        INTEGER :: COLUPD, DISPC, I, I1, I2, IACTIV, IBEG, IDISPC,   &
+          IDROP, IDUMMY, IEND, IFILL, IFIR, II, III, IJFIR, IJP1,    &
+          IJPOS, ILAST, INDROW, IOP, IPIV, IPOS, IROWS, ISING, ISRCH,&
+          ISTART, ISW, ISW1, ITOP, J, J1, J2, JBEG, JCOST, JCOUNT,   &
+          JDIFF, JDUMMY, JEND, JJ, JMORE, JNEW, JNPOS, JOLD, JPIV,   &
+          JPOS, JROOM, JVAL, JZER, JZERO, K, KCOST, KDROP, L, LC,    &
+          LENPIV, LENPP, LL, LR, MOREI, MSRCH, N, NBLOCK, NC, NNM1,  &
+          NR, NUM, NZ, NZ2, NZCOL, NZMIN, NZPC, NZROW, OLDEND,       &
+          OLDPIV, PIVEND, PIVOT, PIVROW, ROWI
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, IABS, MAX, MIN
+! ..
+! .. FIRST EXECUTABLE STATEMENT MA30AD
+! ..
+        MSRCH = NSRCH
+        NDROP = 0
+        LNPIV(1:10) = 0
+        LPIV(1:10) = 0
+        MAPIV = 0
+        MANPIV = 0
+        IAVPIV = 0
+        IANPIV = 0
+        KOUNTL = 0
+        MINIRN = 0
+        MINICN = IDISP(1) - 1
+        MOREI = 0
+        IRANK = NN
+        IRNCP = 0
+        ICNCP = 0
+        IFLAG = 0
+!       Reset U if necessary.
+        U = MIN(U,UMAX)
+!       IBEG is the position of the next pivot row after elimination
+!       step using it.
+        U = MAX(U,ZERO)
+        IBEG = IDISP(1)
+!       IACTIV is the position of the first entry in the active part
+!       of A/ICN.
+        IACTIV = IDISP(2)
+!       NZROW is current number of non-zeros in active and unprocessed
+!       part of row file ICN.
+        NZROW = LICN - IACTIV + 1
+        MINICN = NZROW + MINICN
+
+!       Count the number of diagonal blocks and set up pointers to the
+!       beginnings of the rows. NUM is the number of diagonal blocks.
+        NUM = 1
+        IPTR(1) = IACTIV
+        IF (NN==1) GOTO 30
+        NNM1 = NN - 1
+        DO I = 1, NNM1
+          IF (IP(I)<0) NUM = NUM + 1
+          IPTR(I+1) = IPTR(I) + LENR(I)
+        END DO
+!       ILAST is the last row in the previous block.
+30      ILAST = 0
+
+! ***********************************************
+! ****    LU decomposition of block NBLOCK   ****
+! ***********************************************
+
+!       Each pass through this loop performs LU decomposition on one
+!       of the diagonal blocks.
+        DO 1070 NBLOCK = 1, NUM
+          ISTART = ILAST + 1
+          DO IROWS = ISTART, NN
+            IF (IP(IROWS)<0) GOTO 50
+          END DO
+          IROWS = NN
+50        ILAST = IROWS
+!         N is the number of rows in the current block.
+!         ISTART is the index of the first row in the current block.
+!         ILAST is the index of the last row in the current block.
+!         IACTIV is the position of the first entry in the block.
+!         ITOP is the position of the last entry in the block.
+          N = ILAST - ISTART + 1
+          IF (N/=1) GOTO 100
+
+!         Code for dealing WITH 1x1 block.
+          LENRL(ILAST) = 0
+          ISING = ISTART
+          IF (LENR(ILAST)/=0) GOTO 60
+!         Block is structurally singular.
+          IRANK = IRANK - 1
+          ISING = -ISING
+          IF (IFLAG/=2 .AND. IFLAG/=-5) IFLAG = 1
+          IF (.NOT.ABORT1) GOTO 90
+          IDISP(2) = IACTIV
+          IFLAG = -1
+          IF (LP/=0) WRITE (LP,90000)
+!         RETURN
+          GOTO 1190
+60        SCALE = ABS(A(IACTIV))
+          IF (ABS(SCALE)<=ZERO) GOTO 70
+          IF (LBIG) BIG = MAX(BIG,SCALE)
+          GOTO 80
+70        ISING = -ISING
+          IRANK = IRANK - 1
+          IPTR(ILAST) = 0
+          IF (IFLAG/=-5) IFLAG = 2
+          IF (.NOT.ABORT2) GOTO 80
+          IDISP(2) = IACTIV
+          IFLAG = -2
+          IF (LP/=0) WRITE (LP,90001)
+          GOTO 1190
+80        A(IBEG) = A(IACTIV)
+          ICN(IBEG) = ICN(IACTIV)
+          IACTIV = IACTIV + 1
+          IPTR(ISTART) = 0
+          IBEG = IBEG + 1
+          NZROW = NZROW - 1
+90        LASTR(ISTART) = ISTART
+          IPC(ISTART) = -ISING
+          GOTO 1070
+
+!         Non-trivial block.
+100       ITOP = LICN
+          IF (ILAST/=NN) ITOP = IPTR(ILAST+1) - 1
+
+!         Set up column oriented storage.
+          LENRL(ISTART:ILAST) = 0
+          LENC(ISTART:ILAST) = 0
+          IF (ITOP-IACTIV<LIRN) GOTO 120
+          MINIRN = ITOP - IACTIV + 1
+          PIVOT = ISTART - 1
+          GOTO 1170
+
+!         Calculate column counts.
+120       DO II = IACTIV, ITOP
+            I = ICN(II)
+            LENC(I) = LENC(I) + 1
+          END DO
+!         Set up column pointers so that IPC(J) points to position
+!         after end of column J in column file.
+          IPC(ILAST) = LIRN + 1
+          J1 = ISTART + 1
+          DO JJ = J1, ILAST
+            J = ILAST - JJ + J1 - 1
+            IPC(J) = IPC(J+1) - LENC(J+1)
+          END DO
+          DO 160 INDROW = ISTART, ILAST
+            J1 = IPTR(INDROW)
+            J2 = J1 + LENR(INDROW) - 1
+            IF (J1>J2) GOTO 160
+            DO JJ = J1, J2
+              J = ICN(JJ)
+              IPOS = IPC(J) - 1
+              IRN(IPOS) = INDROW
+              IPC(J) = IPOS
+            END DO
+160       END DO
+!         DISPC is the lowest indexed active location in the column file.
+          DISPC = IPC(ISTART)
+          NZCOL = LIRN - DISPC + 1
+          MINIRN = MAX(NZCOL,MINIRN)
+          NZMIN = 1
+
+!         Initialize array IFIRST. IFIRST(I) = +/- K indicates that
+!         row/col K has I non-zeros. If IFIRST(I) = 0, there is no
+!         row or column with I non-zeros.
+          IFIRST(1:N) = 0
+
+!         Compute ordering of row and column counts.
+!         First run through columns (from column N to column 1).
+          DO 190 JJ = ISTART, ILAST
+            J = ILAST - JJ + ISTART
+            NZ = LENC(J)
+            IF (NZ/=0) GOTO 180
+            IPC(J) = 0
+            GOTO 190
+180         IF (NSRCH<=NN) GOTO 190
+            ISW = IFIRST(NZ)
+            IFIRST(NZ) = -J
+            LASTC(J) = 0
+            NEXTC(J) = -ISW
+            ISW1 = IABS(ISW)
+            IF (ISW/=0) LASTC(ISW1) = J
+190       END DO
+!        Now run through rows (again from N to 1).
+          DO 220 II = ISTART, ILAST
+               I = ILAST - II + ISTART
+            NZ = LENR(I)
+            IF (NZ/=0) GOTO 200
+            IPTR(I) = 0
+            LASTR(I) = 0
+            GOTO 220
+200         ISW = IFIRST(NZ)
+            IFIRST(NZ) = I
+            IF (ISW>0) GOTO 210
+            NEXTR(I) = 0
+            LASTR(I) = ISW
+            GOTO 220
+210         NEXTR(I) = ISW
+            LASTR(I) = LASTR(ISW)
+            LASTR(ISW) = I
+220       END DO
+
+! **********************************************
+! ****    Start of main elimination loop    ****
+! **********************************************
+          DO 1050 PIVOT = ISTART, ILAST
+
+!           First find the pivot using MARKOWITZ criterion with
+!           stability control.
+!           JCOST is the Markowitz cost of the best pivot so far.
+!           This pivot is in row IPIV and column JPIV.
+            NZ2 = NZMIN
+            JCOST = N*N
+
+!           Examine rows/columns in order of ascending count.
+            DO L = 1, 2
+              PIVRAT = ZERO
+              ISRCH = 1
+              LL = L
+!             A pass with L equal to 2 is only performed in the
+!             case of singularity.
+              DO 340 NZ = NZ2, N
+                IF (JCOST<=(NZ-1)**2) GOTO 430
+                IJFIR = IFIRST(NZ)
+!               IF (IJFIR) 240, 230, 250
+!230            IF (LL==1) NZMIN = NZ + 1
+                IF (IJFIR < 0) GOTO 240
+                IF (IJFIR > 0) GOTO 250
+                IF (LL==1) NZMIN = NZ + 1
+                GOTO 340
+240             LL = 2
+                IJFIR = -IJFIR
+                GOTO 300
+250             LL = 2
+!               Scan rows with NZ non-zeros.
+                DO IDUMMY = 1, N
+                  IF (JCOST<=(NZ-1)**2) GOTO 430
+                  IF (ISRCH>MSRCH) GOTO 430
+                  IF (IJFIR==0) GOTO 290
+!                 Row IJFIR is now examined.
+                  I = IJFIR
+                  IJFIR = NEXTR(I)
+!                 First calculate multiplier threshold level.
+                  AMAX = ZERO
+                  J1 = IPTR(I) + LENRL(I)
+                  J2 = IPTR(I) + LENR(I) - 1
+                  DO JJ = J1, J2
+                    AMAX = MAX(AMAX,ABS(A(JJ)))
+                  END DO
+                  AU = AMAX*U
+                  ISRCH = ISRCH + 1
+!                 Scan row for possible pivots.
+                  DO 270 JJ = J1, J2
+                    IF (ABS(A(JJ))<=AU .AND. L==1) GOTO 270
+                    J = ICN(JJ)
+                    KCOST = (NZ-1)*(LENC(J)-1)
+                    IF (KCOST>JCOST) GOTO 270
+                    PIVR = ZERO
+                    IF (ABS(AMAX)>ZERO) PIVR = ABS(A(JJ))/AMAX
+                    IF (KCOST==JCOST .AND. (PIVR<=PIVRAT .OR. NSRCH>NN+1)) &
+                      GOTO 270
+!                   Best pivot so far is found.
+                    JCOST = KCOST
+                    IJPOS = JJ
+                    IPIV = I
+                    JPIV = J
+                    IF (MSRCH>NN+1 .AND. JCOST<=(NZ-1)**2) GOTO 430
+                    PIVRAT = PIVR
+270               END DO
+                END DO
+
+!               Columns with NZ non-zeros now examined.
+290             IJFIR = IFIRST(NZ)
+                IJFIR = -LASTR(IJFIR)
+300             IF (JCOST<=NZ*(NZ-1)) GOTO 430
+                IF (MSRCH<=NN) GOTO 340
+                DO 330 IDUMMY = 1, N
+                  IF (IJFIR==0) GOTO 340
+                  J = IJFIR
+                  IJFIR = NEXTC(IJFIR)
+                  I1 = IPC(J)
+                  I2 = I1 + NZ - 1
+!                 Scan column J.
+                  DO 320 II = I1, I2
+                    I = IRN(II)
+                    KCOST = (NZ-1)*(LENR(I)-LENRL(I)-1)
+                    IF (KCOST>=JCOST) GOTO 320
+!                   Pivot has best Markowitz count so far. Now
+!                   check its suitability on numeric grounds by
+!                   examining the other non-zeros in its row.
+                    J1 = IPTR(I) + LENRL(I)
+                    J2 = IPTR(I) + LENR(I) - 1
+!                   We need a stability check on singleton columns
+!                   because of possible problems with
+!                   underdetermined systems.
+                    AMAX = ZERO
+                    DO JJ = J1, J2
+                      AMAX = MAX(AMAX,ABS(A(JJ)))
+                      IF (ICN(JJ)==J) JPOS = JJ
+                    END DO
+                    IF (ABS(A(JPOS))<=AMAX*U .AND. L==1) GOTO 320
+                    JCOST = KCOST
+                    IPIV = I
+                    JPIV = J
+                    IJPOS = JPOS
+                    IF (ABS(AMAX)>ZERO) PIVRAT = ABS(A(JPOS))/AMAX
+                    IF (JCOST<=NZ*(NZ-1)) GOTO 430
+320               END DO
+330             END DO
+340           END DO
+!             In the event of singularity, we must make sure all
+!             rows and columns are tested.
+              MSRCH = N
+
+!             Matrix is numerically or structurally singular. Which
+!             it is will be diagnosed later.
+              IRANK = IRANK - 1
+            END DO
+!           Assign rest of rows and columns to ordering array.
+!           Matrix is structurally singular.
+            IF (IFLAG/=2 .AND. IFLAG/=-5) IFLAG = 1
+            IRANK = IRANK - ILAST + PIVOT + 1
+            IF (.NOT.ABORT1) GOTO 360
+            IDISP(2) = IACTIV
+            IFLAG = -1
+            IF (LP/=0) WRITE (LP,90000)
+            GOTO 1190
+360         K = PIVOT - 1
+            DO 400 I = ISTART, ILAST
+              IF (LASTR(I)/=0) GOTO 400
+              K = K + 1
+              LASTR(I) = K
+              IF (LENRL(I)==0) GOTO 390
+              MINICN = MAX(MINICN,NZROW+IBEG-1+MOREI+LENRL(I))
+              IF (IACTIV-IBEG>=LENRL(I)) GOTO 370
+              CALL MA30DD(A,ICN,IPTR(ISTART),N,IACTIV,ITOP,.TRUE.)
+!             Check now to see if MA30DD has created enough
+!             available space.
+              IF (IACTIV-IBEG>=LENRL(I)) GOTO 370
+!             Create more space by destroying previously created
+!             LU factors.
+              MOREI = MOREI + IBEG - IDISP(1)
+              IBEG = IDISP(1)
+              IF (LP/=0) WRITE (LP,90002)
+              IFLAG = -5
+              IF (ABORT3) GOTO 1160
+370           J1 = IPTR(I)
+              J2 = J1 + LENRL(I) - 1
+              IPTR(I) = 0
+              DO JJ = J1, J2
+                A(IBEG) = A(JJ)
+                ICN(IBEG) = ICN(JJ)
+                ICN(JJ) = 0
+                IBEG = IBEG + 1
+              END DO
+              NZROW = NZROW - LENRL(I)
+390           IF (K==ILAST) GOTO 410
+400         END DO
+410         K = PIVOT - 1
+            DO 420 I = ISTART, ILAST
+              IF (IPC(I)/=0) GOTO 420
+              K = K + 1
+              IPC(I) = K
+              IF (K==ILAST) GOTO 1060
+420         END DO
+
+!           The pivot has now been found in position (IPIV,JPIV)
+!           in location IJPOS in row file.
+!           Update column and row ordering arrays to correspond
+!           with removal of the active part of the matrix.
+430         ISING = PIVOT
+            IF (ABS(A(IJPOS))>ZERO) GOTO 440
+!           Numerical singularity is recorded here.
+            ISING = -ISING
+            IF (IFLAG/=-5) IFLAG = 2
+            IF (.NOT.ABORT2) GOTO 440
+            IDISP(2) = IACTIV
+            IFLAG = -2
+            IF (LP/=0) WRITE (LP,90001)
+            GOTO 1190
+440         OLDPIV = IPTR(IPIV) + LENRL(IPIV)
+            OLDEND = IPTR(IPIV) + LENR(IPIV) - 1
+!           Changes to column ordering.
+            IF (NSRCH<=NN) GOTO 470
+            COLUPD = NN + 1
+            LENPP = OLDEND - OLDPIV + 1
+            IF (LENPP<4) LPIV(1) = LPIV(1) + 1
+            IF (LENPP>=4 .AND. LENPP<=6) LPIV(2) = LPIV(2) + 1
+            IF (LENPP>=7 .AND. LENPP<=10) LPIV(3) = LPIV(3) + 1
+            IF (LENPP>=11 .AND. LENPP<=15) LPIV(4) = LPIV(4) + 1
+            IF (LENPP>=16 .AND. LENPP<=20) LPIV(5) = LPIV(5) + 1
+            IF (LENPP>=21 .AND. LENPP<=30) LPIV(6) = LPIV(6) + 1
+            IF (LENPP>=31 .AND. LENPP<=50) LPIV(7) = LPIV(7) + 1
+            IF (LENPP>=51 .AND. LENPP<=70) LPIV(8) = LPIV(8) + 1
+            IF (LENPP>=71 .AND. LENPP<=100) LPIV(9) = LPIV(9) + 1
+            IF (LENPP>=101) LPIV(10) = LPIV(10) + 1
+            MAPIV = MAX(MAPIV,LENPP)
+            IAVPIV = IAVPIV + LENPP
+            DO 460 JJ = OLDPIV, OLDEND
+              J = ICN(JJ)
+              LC = LASTC(J)
+              NC = NEXTC(J)
+              NEXTC(J) = -COLUPD
+              IF (JJ/=IJPOS) COLUPD = J
+              IF (NC/=0) LASTC(NC) = LC
+              IF (LC==0) GOTO 450
+              NEXTC(LC) = NC
+              GOTO 460
+450           NZ = LENC(J)
+              ISW = IFIRST(NZ)
+              IF (ISW>0) LASTR(ISW) = -NC
+              IF (ISW<0) IFIRST(NZ) = -NC
+460         END DO
+!           Changes to row ordering.
+470         I1 = IPC(JPIV)
+            I2 = I1 + LENC(JPIV) - 1
+            DO 490 II = I1, I2
+              I = IRN(II)
+              LR = LASTR(I)
+              NR = NEXTR(I)
+              IF (NR/=0) LASTR(NR) = LR
+              IF (LR<=0) GOTO 480
+              NEXTR(LR) = NR
+              GOTO 490
+480           NZ = LENR(I) - LENRL(I)
+              IF (NR/=0) IFIRST(NZ) = NR
+              IF (NR==0) IFIRST(NZ) = LR
+490         END DO
+
+!           Move pivot to position LENRL+1 in pivot row and move pivot
+!           row to the beginning of the available storage. The L part
+!           and the pivot in the old copy of the pivot row is nullified
+!           while, in the strictly upper triangular part, the column
+!           indices, J say, are overwritten by the corresponding entry
+!           of IQ (IQ(J)) and IQ(J) is set to the negative of the
+!           displacement of the column index from the pivot entry.
+            IF (OLDPIV==IJPOS) GOTO 500
+            AU = A(OLDPIV)
+            A(OLDPIV) = A(IJPOS)
+            A(IJPOS) = AU
+            ICN(IJPOS) = ICN(OLDPIV)
+            ICN(OLDPIV) = JPIV
+!           Check to see if there is space immediately available in
+!           A/ICN to hold new copy of pivot row.
+500         MINICN = MAX(MINICN,NZROW+IBEG-1+MOREI+LENR(IPIV))
+            IF (IACTIV-IBEG>=LENR(IPIV)) GOTO 510
+            CALL MA30DD(A,ICN,IPTR(ISTART),N,IACTIV,ITOP,.TRUE.)
+            OLDPIV = IPTR(IPIV) + LENRL(IPIV)
+            OLDEND = IPTR(IPIV) + LENR(IPIV) - 1
+!           Check now to see if MA30DD has created enough
+!           available space.
+            IF (IACTIV-IBEG>=LENR(IPIV)) GOTO 510
+!           Create more space by destroying previously created
+!           LU factors.
+            MOREI = MOREI + IBEG - IDISP(1)
+            IBEG = IDISP(1)
+            IF (LP/=0) WRITE (LP,90002)
+            IFLAG = -5
+            IF (ABORT3) GOTO 1160
+            IF (IACTIV-IBEG>=LENR(IPIV)) GOTO 510
+!           There is still not enough room in A/ICN.
+            IFLAG = -4
+            GOTO 1160
+!           Copy pivot row and set up IQ array.
+510         IJPOS = 0
+            J1 = IPTR(IPIV)
+
+            DO JJ = J1, OLDEND
+              A(IBEG) = A(JJ)
+              ICN(IBEG) = ICN(JJ)
+              IF (IJPOS/=0) GOTO 520
+              IF (ICN(JJ)==JPIV) IJPOS = IBEG
+              ICN(JJ) = 0
+              GOTO 530
+520           K = IBEG - IJPOS
+              J = ICN(JJ)
+              ICN(JJ) = IQ(J)
+              IQ(J) = -K
+530           IBEG = IBEG + 1
+            END DO
+
+            IJP1 = IJPOS + 1
+            PIVEND = IBEG - 1
+            LENPIV = PIVEND - IJPOS
+            NZROW = NZROW - LENRL(IPIV) - 1
+            IPTR(IPIV) = OLDPIV + 1
+            IF (LENPIV==0) IPTR(IPIV) = 0
+
+!           Remove pivot row (including pivot) from column
+!           oriented file.
+            DO JJ = IJPOS, PIVEND
+              J = ICN(JJ)
+              I1 = IPC(J)
+              LENC(J) = LENC(J) - 1
+!             I2 is last position in new column.
+              I2 = IPC(J) + LENC(J) - 1
+              IF (I2<I1) GOTO 560
+              DO 550 II = I1, I2
+                IF (IRN(II)/=IPIV) GOTO 550
+                IRN(II) = IRN(I2+1)
+                GOTO 560
+550           END DO
+560           IRN(I2+1) = 0
+            END DO
+            NZCOL = NZCOL - LENPIV - 1
+
+!           Go down the pivot column and for each row with a
+!           non-zero add the appropriate multiple of the pivot
+!           row to it. We loop on the number of non-zeros in
+!           the pivot column since MA30DD may change its
+!           actual position.
+
+            NZPC = LENC(JPIV)
+            IF (NZPC==0) GOTO 940
+            DO 880 III = 1, NZPC
+              II = IPC(JPIV) + III - 1
+              I = IRN(II)
+!             Search row I For non-zero to be eliminated,
+!             calculate multiplier, and place it in position
+!             LENRL+1 in its row. IDROP is the number of
+!             non-zero entries dropped from row I because
+!             these fall beneath tolerance level.
+              IDROP = 0
+              J1 = IPTR(I) + LENRL(I)
+              IEND = IPTR(I) + LENR(I) - 1
+              DO 580 JJ = J1, IEND
+                IF (ICN(JJ)/=JPIV) GOTO 580
+!               IF pivot is zero, rest of column is and so
+!               multiplier is zero.
+                AU = ZERO
+                IF (ABS(A(IJPOS))>ZERO) AU = -A(JJ)/A(IJPOS)
+                IF (LBIG) BIG = MAX(BIG,ABS(AU))
+                A(JJ) = A(J1)
+                A(J1) = AU
+                ICN(JJ) = ICN(J1)
+                ICN(J1) = JPIV
+                LENRL(I) = LENRL(I) + 1
+                GOTO 590
+580           END DO
+!             JUMP if pivot row is a singleton.
+590           IF (LENPIV==0) GOTO 880
+!             Now perform necessary operations on rest of non-pivot
+!             row I.
+              ROWI = J1 + 1
+              IOP = 0
+!             Jump if all the pivot row causes fill-in.
+              IF (ROWI>IEND) GOTO 670
+!             Perform operations on current non-zeros in row I.
+!             Innermost loop.
+              LENPP = IEND - ROWI + 1
+              IF (LENPP<4) LNPIV(1) = LNPIV(1) + 1
+              IF (LENPP>=4 .AND. LENPP<=6) LNPIV(2) = LNPIV(2) + 1
+              IF (LENPP>=7 .AND. LENPP<=10) LNPIV(3) = LNPIV(3) + 1
+              IF (LENPP>=11 .AND. LENPP<=15) LNPIV(4) = LNPIV(4) + 1
+              IF (LENPP>=16 .AND. LENPP<=20) LNPIV(5) = LNPIV(5) + 1
+              IF (LENPP>=21 .AND. LENPP<=30) LNPIV(6) = LNPIV(6) + 1
+              IF (LENPP>=31 .AND. LENPP<=50) LNPIV(7) = LNPIV(7) + 1
+              IF (LENPP>=51 .AND. LENPP<=70) LNPIV(8) = LNPIV(8) + 1
+              IF (LENPP>=71 .AND. LENPP<=100) LNPIV(9) = LNPIV(9) + 1
+              IF (LENPP>=101) LNPIV(10) = LNPIV(10) + 1
+              MANPIV = MAX(MANPIV,LENPP)
+              IANPIV = IANPIV + LENPP
+              KOUNTL = KOUNTL + 1
+              DO 600 JJ = ROWI, IEND
+                J = ICN(JJ)
+                IF (IQ(J)>0) GOTO 600
+                IOP = IOP + 1
+                PIVROW = IJPOS - IQ(J)
+                A(JJ) = A(JJ) + AU*A(PIVROW)
+                IF (LBIG) BIG = MAX(ABS(A(JJ)),BIG)
+                ICN(PIVROW) = -ICN(PIVROW)
+                IF (ABS(A(JJ))<TOL) IDROP = IDROP + 1
+600           END DO
+
+!             JUMP if no non-zeros in non-pivot row have been removed
+!             because these are beneath the drop-tolerance TOL.
+
+              IF (IDROP==0) GOTO 670
+
+!             Run through non-pivot row compressing row so that only
+!             non-zeros greater than TOL are stored. All non-zeros
+!             less than TOL are also removed from the column structure.
+
+              JNEW = ROWI
+              DO 650 JJ = ROWI, IEND
+                IF (ABS(A(JJ))<TOL) GOTO 610
+                A(JNEW) = A(JJ)
+                ICN(JNEW) = ICN(JJ)
+                JNEW = JNEW + 1
+                GOTO 650
+
+!               Remove non-zero entry from column structure.
+
+610             J = ICN(JJ)
+                I1 = IPC(J)
+                I2 = I1 + LENC(J) - 1
+                DO II = I1, I2
+                  IF (IRN(II)==I) GOTO 630
+                END DO
+630             IRN(II) = IRN(I2)
+                IRN(I2) = 0
+                LENC(J) = LENC(J) - 1
+                IF (NSRCH<=NN) GOTO 650
+!               Remove column from column chain and place in
+!               update chain.
+                IF (NEXTC(J)<0) GOTO 650
+!               JUMP if column already in update chain.
+                LC = LASTC(J)
+                NC = NEXTC(J)
+                NEXTC(J) = -COLUPD
+                COLUPD = J
+                IF (NC/=0) LASTC(NC) = LC
+                IF (LC==0) GOTO 640
+                NEXTC(LC) = NC
+                GOTO 650
+640             NZ = LENC(J) + 1
+                ISW = IFIRST(NZ)
+                IF (ISW>0) LASTR(ISW) = -NC
+                IF (ISW<0) IFIRST(NZ) = -NC
+650           END DO
+              ICN(JNEW:IEND) = 0
+!             The value of IDROP might be different from that
+!             calculated earlier because we may now have dropped
+!             some non-zeros which were not modified by the pivot
+!             row.
+              IDROP = IEND + 1 - JNEW
+              IEND = JNEW - 1
+              LENR(I) = LENR(I) - IDROP
+              NZROW = NZROW - IDROP
+              NZCOL = NZCOL - IDROP
+              NDROP = NDROP + IDROP
+670           IFILL = LENPIV - IOP
+!             Jump is if there is no fill-in.
+              IF (IFILL==0) GOTO 770
+!             Now for the fill-in.
+              MINICN = MAX(MINICN,MOREI+IBEG-1+NZROW+IFILL+LENR(I))
+!             See if there is room for fill-in.
+!             Get maximum space for row I in situ.
+              DO JDIFF = 1, IFILL
+                JNPOS = IEND + JDIFF
+                IF (JNPOS>LICN) GOTO 690
+                IF (ICN(JNPOS)/=0) GOTO 690
+              END DO
+!             There is room for all the fill-in after the end of the
+!             row so it can be left in situ.
+!             Next available space for fill-in.
+              IEND = IEND + 1
+              GOTO 770
+!             JMORE spaces for fill-in are required in front of row.
+690           JMORE = IFILL - JDIFF + 1
+              I1 = IPTR(I)
+!             We now look in front of the row to see if there is space
+!             for the rest of the fill-in.
+              DO JDIFF = 1, JMORE
+                JNPOS = I1 - JDIFF
+                IF (JNPOS<IACTIV) GOTO 710
+                IF (ICN(JNPOS)/=0) GOTO 720
+              END DO
+710           JNPOS = I1 - JMORE
+              GOTO 730
+!             Whole row must be moved to the beginning of available
+!             storage.
+720           JNPOS = IACTIV - LENR(I) - IFILL
+!             Jump if there is space immediately available for the
+!             shifted row.
+730           IF (JNPOS>=IBEG) GOTO 750
+              CALL MA30DD(A,ICN,IPTR(ISTART),N,IACTIV,ITOP,.TRUE.)
+              I1 = IPTR(I)
+              IEND = I1 + LENR(I) - 1
+              JNPOS = IACTIV - LENR(I) - IFILL
+              IF (JNPOS>=IBEG) GOTO 750
+!             No space available so try to create some by throwing
+!             away previous LU decomposition.
+              MOREI = MOREI + IBEG - IDISP(1) - LENPIV - 1
+              IF (LP/=0) WRITE (LP,90002)
+              IFLAG = -5
+              IF (ABORT3) GOTO 1160
+!             Keep record of current pivot row.
+              IBEG = IDISP(1)
+              ICN(IBEG) = JPIV
+              A(IBEG) = A(IJPOS)
+              IJPOS = IBEG
+              DO JJ = IJP1, PIVEND
+                IBEG = IBEG + 1
+                A(IBEG) = A(JJ)
+                ICN(IBEG) = ICN(JJ)
+              END DO
+              IJP1 = IJPOS + 1
+              PIVEND = IBEG
+              IBEG = IBEG + 1
+              IF (JNPOS>=IBEG) GOTO 750
+!             This still does not give enough room.
+              IFLAG = -4
+              GOTO 1160
+750           IACTIV = MIN(IACTIV,JNPOS)
+!             Move non-pivot row I.
+              IPTR(I) = JNPOS
+              DO JJ = I1, IEND
+                A(JNPOS) = A(JJ)
+                ICN(JNPOS) = ICN(JJ)
+                JNPOS = JNPOS + 1
+                ICN(JJ) = 0
+              END DO
+!             First new available space.
+              IEND = JNPOS
+770           NZROW = NZROW + IFILL
+!             Innermost fill-in loop which also resets ICN.
+              IDROP = 0
+              DO 850 JJ = IJP1, PIVEND
+                J = ICN(JJ)
+                IF (J<0) GOTO 840
+                ANEW = AU*A(JJ)
+                AANEW = ABS(ANEW)
+                IF (AANEW>=TOL) GOTO 780
+                IDROP = IDROP + 1
+                NDROP = NDROP + 1
+                NZROW = NZROW - 1
+                MINICN = MINICN - 1
+                IFILL = IFILL - 1
+                GOTO 850
+780             IF (LBIG) BIG = MAX(AANEW,BIG)
+                A(IEND) = ANEW
+                ICN(IEND) = J
+                IEND = IEND + 1
+
+!               Put new entry in column file.
+                MINIRN = MAX(MINIRN,NZCOL+LENC(J)+1)
+                JEND = IPC(J) + LENC(J)
+                JROOM = NZPC - III + 1 + LENC(J)
+                IF (JEND>LIRN) GOTO 790
+                IF (IRN(JEND)==0) GOTO 830
+790             IF (JROOM<DISPC) GOTO 800
+!               Compress column file to obtain space for new
+!               copy of column.
+                CALL MA30DD(A,IRN,IPC(ISTART),N,DISPC,LIRN,.FALSE.)
+                IF (JROOM<DISPC) GOTO 800
+                JROOM = DISPC - 1
+                IF (JROOM>=LENC(J)+1) GOTO 800
+!               Column file is not large enough.
+                GOTO 1170
+!               Copy column to beginning of file.
+800             JBEG = IPC(J)
+                JEND = IPC(J) + LENC(J) - 1
+                JZERO = DISPC - 1
+                DISPC = DISPC - JROOM
+                IDISPC = DISPC
+                DO II = JBEG, JEND
+                  IRN(IDISPC) = IRN(II)
+                  IRN(II) = 0
+                  IDISPC = IDISPC + 1
+                END DO
+                IPC(J) = DISPC
+                JEND = IDISPC
+                IRN(JEND:JZERO) = 0
+830             IRN(JEND) = I
+                NZCOL = NZCOL + 1
+                LENC(J) = LENC(J) + 1
+!               End of adjustment to column file.
+                GOTO 850
+840             ICN(JJ) = -J
+850           END DO
+              IF (IDROP==0) GOTO 870
+              DO KDROP = 1, IDROP
+                ICN(IEND) = 0
+                IEND = IEND + 1
+              END DO
+870           LENR(I) = LENR(I) + IFILL
+!             End of scan of pivot column.
+880         END DO
+
+!           Remove pivot column from column oriented storage
+!           and update row ordering arrays.
+            I1 = IPC(JPIV)
+            I2 = IPC(JPIV) + LENC(JPIV) - 1
+            NZCOL = NZCOL - LENC(JPIV)
+            DO 930 II = I1, I2
+              I = IRN(II)
+              IRN(II) = 0
+              NZ = LENR(I) - LENRL(I)
+              IF (NZ/=0) GOTO 890
+              LASTR(I) = 0
+              GOTO 930
+890           IFIR = IFIRST(NZ)
+              IFIRST(NZ) = I
+!             IF (IFIR) 900, 920, 910
+!900          LASTR(I) = IFIR
+              IF (IFIR == 0) GOTO 920
+              IF (IFIR > 0) GOTO 910
+              LASTR(I) = IFIR
+              NEXTR(I) = 0
+              GOTO 930
+910           LASTR(I) = LASTR(IFIR)
+              NEXTR(I) = IFIR
+              LASTR(IFIR) = I
+              GOTO 930
+920           LASTR(I) = 0
+              NEXTR(I) = 0
+              NZMIN = MIN(NZMIN,NZ)
+930         END DO
+!           Restore IQ and nullify U part of old pivot row.
+!           Record the column permutation in LASTC(JPIV) and
+!           the row permutation in LASTR(IPIV).
+940         IPC(JPIV) = -ISING
+            LASTR(IPIV) = PIVOT
+            IF (LENPIV==0) GOTO 1050
+            NZROW = NZROW - LENPIV
+            JVAL = IJP1
+            JZER = IPTR(IPIV)
+            IPTR(IPIV) = 0
+            DO JCOUNT = 1, LENPIV
+              J = ICN(JVAL)
+              IQ(J) = ICN(JZER)
+              ICN(JZER) = 0
+              JVAL = JVAL + 1
+              JZER = JZER + 1
+            END DO
+!           Adjust column ordering arrays.
+            IF (NSRCH>NN) GOTO 980
+            DO 970 JJ = IJP1, PIVEND
+              J = ICN(JJ)
+              NZ = LENC(J)
+              IF (NZ/=0) GOTO 960
+              IPC(J) = 0
+              GOTO 970
+960           NZMIN = MIN(NZMIN,NZ)
+970         END DO
+            GOTO 1050
+980         JJ = COLUPD
+            DO 1040 JDUMMY = 1, NN
+              J = JJ
+              IF (J==NN+1) GOTO 1050
+              JJ = -NEXTC(J)
+              NZ = LENC(J)
+              IF (NZ/=0) GOTO 990
+              IPC(J) = 0
+              GOTO 1040
+990           IFIR = IFIRST(NZ)
+              LASTC(J) = 0
+!             IF (IFIR) 1000, 1010, 1020
+!1000         IFIRST(NZ) = -J
+              IF (IFIR == 0) GOTO 1010
+              IF (IFIR > 0) GOTO 1020
+              IFIRST(NZ) = -J
+              IFIR = -IFIR
+              LASTC(IFIR) = J
+              NEXTC(J) = IFIR
+              GOTO 1040
+1010          IFIRST(NZ) = -J
+              NEXTC(J) = 0
+              GOTO 1030
+1020          LC = -LASTR(IFIR)
+              LASTR(IFIR) = -J
+              NEXTC(J) = LC
+              IF (LC/=0) LASTC(LC) = J
+1030          NZMIN = MIN(NZMIN,NZ)
+1040        END DO
+1050      END DO
+! ********************************************
+! ****    End of main elimination loop    ****
+! ********************************************
+
+!         Reset IACTIV to point to the beginning of the
+!         next block.
+1060      IF (ILAST/=NN) IACTIV = IPTR(ILAST+1)
+1070    END DO
+
+! ********************************************
+! ****    End of deomposition of block    ****
+! ********************************************
+
+!     Record singularity (if any) in IQ array.
+        IF (IRANK==NN) GOTO 1090
+        DO 1080 I = 1, NN
+          IF (IPC(I)<0) GOTO 1080
+          ISING = IPC(I)
+          IQ(ISING) = -IQ(ISING)
+          IPC(I) = -ISING
+1080    END DO
+
+!       Run through LU decomposition changing column indices
+!       to that of new order and permuting LENR and LENRL
+!       arrays according to pivot permutations.
+1090    ISTART = IDISP(1)
+        IEND = IBEG - 1
+        IF (IEND<ISTART) GOTO 1110
+        DO JJ = ISTART, IEND
+          JOLD = ICN(JJ)
+          ICN(JJ) = -IPC(JOLD)
+        END DO
+1110    DO II = 1, NN
+          I = LASTR(II)
+          NEXTR(I) = LENR(II)
+          IPTR(I) = LENRL(II)
+        END DO
+        LENRL(1:NN) = IPTR(1:NN)
+        LENR(1:NN) = NEXTR(1:NN)
+
+!       Update permutation arrays IP and IQ.
+        DO II = 1, NN
+          I = LASTR(II)
+          J = -IPC(II)
+          NEXTR(I) = IABS(IP(II)+0)
+          IPTR(J) = IABS(IQ(II)+0)
+!         NEXTR(I) = IABS(IP(II))
+!         IPTR(J) = IABS(IQ(II))
+        END DO
+        DO I = 1, NN
+          IF (IP(I)<0) NEXTR(I) = -NEXTR(I)
+          IP(I) = NEXTR(I)
+          IF (IQ(I)<0) IPTR(I) = -IPTR(I)
+          IQ(I) = IPTR(I)
+        END DO
+        IP(NN) = IABS(IP(NN)+0)
+!       IP(NN) = IABS(IP(NN))
+        IDISP(2) = IEND
+        GOTO 1190
+
+!       Error returns
+1160    IDISP(2) = IACTIV
+        IF (LP==0) GOTO 1190
+        WRITE (LP,90003)
+        GOTO 1180
+1170    IF (IFLAG==-5) IFLAG = -6
+        IF (IFLAG/=-6) IFLAG = -3
+        IDISP(2) = IACTIV
+        IF (LP==0) GOTO 1190
+        IF (IFLAG==-3) WRITE (LP,90004)
+        IF (IFLAG==-6) WRITE (LP,90005)
+1180    PIVOT = PIVOT - ISTART + 1
+        WRITE (LP,90006) PIVOT, NBLOCK, ISTART, ILAST
+        IF (PIVOT==0) WRITE (LP,90007) MINIRN
+
+1190    RETURN
+90000   FORMAT (' Error return from MA30AD because matrix is', &
+          ' structurally singular')
+90001   FORMAT (' Error return from MA30AD because matrix is', &
+          ' numerically singular')
+90002   FORMAT (' LU decomposition destroyed to create more space')
+90003   FORMAT (' Error return from MA30AD because LICN is not big enough')
+90004   FORMAT (' Error return from MA30AD because LIRN is not big enough')
+90005   FORMAT (' Error return from MA30AD LIRN and LICN are too small')
+90006   FORMAT (' At stage ',I5,' in block ',I5,' with first row ',I5, &
+          ' and last row ',I5)
+90007   FORMAT (' To continue set LIRN to at least ',I8)
+
+      END SUBROUTINE MA30AD
+!_______________________________________________________________________
+
+      SUBROUTINE MA30DD(A,ICN,IPTR,N,IACTIV,ITOP,REALS)
+! ..
+! This subroutine performs garbage collection operations on the arrays
+! A, ICN, and IRN.
+! ..
+! IACTIV is the first position in arrays A/ICN from which the compress
+! starts. On exit, IACTIV equals the position of the first entry.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER :: IACTIV, ITOP, N
+        LOGICAL :: REALS
+! ..
+! .. Array Arguments ..
+        KPP_REAL :: A(ITOP)
+        INTEGER :: ICN(ITOP), IPTR(N)
+! ..
+! .. Local Scalars ..
+        INTEGER :: J, JPOS, K, KL, KN
+! ..
+! .. FIRST EXECUTABLE STATEMENT MA30DD
+! ..
+        IF (REALS) ICNCP = ICNCP + 1
+        IF (.NOT.REALS) IRNCP = IRNCP + 1
+!       Set the first non-zero entry in each row to the negative of the
+!       row/col number and hold this row/col index in the row/col
+!       pointer. This is so that the beginning of each row/col can
+!       be recognized in the subsequent scan.
+        DO 10 J = 1, N
+          K = IPTR(J)
+          IF (K<IACTIV) GOTO 10
+          IPTR(J) = ICN(K)
+          ICN(K) = -J
+10      END DO
+        KN = ITOP + 1
+        KL = ITOP - IACTIV + 1
+!       Go through arrays in reverse order compressing to the back so
+!       that there are no zeros held in positions IACTIV to ITOP in ICN.
+!       Reset first entry of each row/col and pointer array IPTR.
+        DO 30 K = 1, KL
+          JPOS = ITOP - K + 1
+          IF (ICN(JPOS)==0) GOTO 30
+          KN = KN - 1
+          IF (REALS) A(KN) = A(JPOS)
+          IF (ICN(JPOS)>=0) GOTO 20
+!         First non-zero of row/col has been located.
+          J = -ICN(JPOS)
+          ICN(JPOS) = IPTR(J)
+          IPTR(J) = KN
+20        ICN(KN) = ICN(JPOS)
+30      END DO
+        IACTIV = KN
+        RETURN
+
+      END SUBROUTINE MA30DD
+!_______________________________________________________________________
+
+      SUBROUTINE MA30BD(N,ICN,A,LICN,LENR,LENRL,IDISP,IP,IQ,W,IW,IFLAG)
+! ..
+! MA30BD performs the LU decomposition of the diagonal blocks of
+! a new matrix PAQ of the same sparsity pattern, using information
+! from a previous call to MA30AD. THe entries of the input matrix
+! must already be in their final positions in the LU decomposition
+! structure. This routine executes about five times faster than
+! MA30AD.
+! ..
+! We now describe the argument list for MA30BD. Consult MA30AD for
+!     further information on these parameters.
+! N   is an integer variable set to the order of the matrix.
+! ICN is an integer array of length LICN. It should be unchanged
+!     since the last call to MA30AD. It is not altered by MA30BD.
+! A   is a real(kind=wp) array of length LICN. The user must set
+!     entries IDISP(1) to IDISP(2) to contain the entries in the
+!     diagonal blocks of the matrix PAQ whose column numbers are
+!     held in ICN, using corresponding positions. Note that some
+!     zeros may need to be held explicitly. On output entries
+!     IDISP(1) to IDISP(2) of array A contain the LU decomposition
+!     of the diagonal blocks of PAQ. Entries A(1) to A(IDISP(1)-1)
+!     are neither required nor altered by MA30BD.
+! LICN is an integer variable which must be set by the user to the
+!     length of arrays A and ICN. it is not altered by MA30BD.
+! LENR, LENRL are integer arrays of length N. They should be
+!     unchanged since the last call to MA30AD. They are not
+!     altered by MA30BD.
+! IDISP is an integer array of length 2. It should be unchanged
+!     since the last call to MA30AD. It is not altered by MA30BD.
+! IP, IQ are integer arrays of length N. They should be unchanged
+!     since the last call to MA30AD. They are not altered by
+!     MA30BD.
+! W   is a REAL(KIND=WP) array of length N which is used as
+!     workspace by MA30BD.
+! IW  is an integer array of length N which is used as workspace
+!     by MA30BD.
+! IFLAG is an integer variable. On output from MA30BD, IFLAG has
+!     the value zero if the factorization was successful, has the
+!     value I if pivot I was very small and has the value -I if
+!     an unexpected singularity was detected at stage I of the
+!     decomposition.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER :: IFLAG, LICN, N
+! ..
+! .. Array Arguments ..
+        KPP_REAL :: A(LICN), W(N)
+        INTEGER :: ICN(LICN), IDISP(2), IP(N), IQ(N), IW(N), LENR(N), LENRL(N)
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: AU, ROWMAX
+        INTEGER :: I, IFIN, ILEND, IPIVJ, ISING, ISTART, J, JAY, JAYJAY, JFIN, &
+          JJ, PIVPOS
+        LOGICAL :: STAB
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, MAX
+! ..
+! .. FIRST EXECUTABLE STATEMENT MA30BD
+! ..
+        STAB = EPS <= ONE
+        RMIN = EPS
+        ISING = 0
+        IFLAG = 0
+        W(1:N) = ZERO
+!       Set up pointers to the beginning of the rows.
+        IW(1) = IDISP(1)
+        IF (N==1) GOTO 30
+        DO I = 2, N
+          IW(I) = IW(I-1) + LENR(I-1)
+        END DO
+
+!       Start of main loop.
+!       At step I, row I of A is transformed to row I of LU by
+!       adding appropriate multiples of rows 1 TO I-1 using row
+!       Gauss elimination.
+30      DO 170 I = 1, N
+!         ISTART is beginning of row I of A and row I of L.
+          ISTART = IW(I)
+!         IFIN is end of row I of A and row I of U.
+          IFIN = ISTART + LENR(I) - 1
+!         ILEND is end of row I of L.
+          ILEND = ISTART + LENRL(I) - 1
+          IF (ISTART>ILEND) GOTO 100
+!         Load row I of A into vector W.
+          DO JJ = ISTART, IFIN
+            J = ICN(JJ)
+            W(J) = A(JJ)
+          END DO
+
+!         Add multiples of appropriate rows of I to I-1 to row I.
+          DO 80 JJ = ISTART, ILEND
+            J = ICN(JJ)
+!           IPIVJ is position of pivot in row J.
+            IPIVJ = IW(J) + LENRL(J)
+!           Form multiplier AU.
+            AU = -W(J)/A(IPIVJ)
+            IF (LBIG) BIG = MAX(ABS(AU),BIG)
+            W(J) = AU
+!           AU * ROW J (U part) is added to row I.
+            IPIVJ = IPIVJ + 1
+            JFIN = IW(J) + LENR(J) - 1
+            IF (IPIVJ>JFIN) GOTO 80
+!           Innermost loop.
+            IF (LBIG) GOTO 60
+            DO JAYJAY = IPIVJ, JFIN
+              JAY = ICN(JAYJAY)
+              W(JAY) = W(JAY) + AU*A(JAYJAY)
+            END DO
+            GOTO 80
+60          DO JAYJAY = IPIVJ, JFIN
+              JAY = ICN(JAYJAY)
+              W(JAY) = W(JAY) + AU*A(JAYJAY)
+              BIG = MAX(ABS(W(JAY)),BIG)
+            END DO
+80        END DO
+
+!         Reload W back into A (now LU).
+          DO JJ = ISTART, IFIN
+            J = ICN(JJ)
+            A(JJ) = W(J)
+            W(J) = ZERO
+          END DO
+!         We now perform the stability checks.
+100       PIVPOS = ILEND + 1
+          IF (IQ(I)>0) GOTO 150
+!         Matrix had singularity at this point in MA30AD.
+!         Is it the first such pivot in current block?
+          IF (ISING==0) ISING = I
+!         Does current matrix have a singularity in the same place?
+          IF (PIVPOS>IFIN) GOTO 110
+          IF (ABS(A(PIVPOS))>ZERO) GOTO 180
+!         It does, so set ising if it is not the end of the current
+!         block. Check to see that appropriate part of LU is zero
+!         or null.
+110       IF (ISTART>IFIN) GOTO 130
+          DO 120 JJ = ISTART, IFIN
+            IF (ICN(JJ)<ISING) GOTO 120
+            IF (ABS(A(JJ))>ZERO) GOTO 180
+120       END DO
+130       IF (PIVPOS<=IFIN) A(PIVPOS) = ONE
+          IF (IP(I)>0 .AND. I/=N) GOTO 170
+!         End of current block. Reset zero pivots and ISING.
+          DO 140 J = ISING, I
+            IF ((LENR(J)-LENRL(J))==0) GOTO 140
+            JJ = IW(J) + LENRL(J)
+            A(JJ) = ZERO
+140       END DO
+          ISING = 0
+          GOTO 170
+!         Matrix had non-zero pivot in MA30AD at this stage.
+150       IF (PIVPOS>IFIN) GOTO 180
+          IF (ABS(A(PIVPOS))<=ZERO) GOTO 180
+          IF (.NOT.STAB) GOTO 170
+          ROWMAX = ZERO
+          DO JJ = PIVPOS, IFIN
+            ROWMAX = MAX(ROWMAX,ABS(A(JJ)))
+          END DO
+          IF (ABS(A(PIVPOS))/ROWMAX>=RMIN) GOTO 170
+          IFLAG = I
+          RMIN = ABS(A(PIVPOS))/ROWMAX
+!         End of main loop.
+170     END DO
+
+        GOTO 190
+!       Error return
+180     IF (LP/=0) WRITE (LP,90000) I
+        IFLAG = -I
+
+190     RETURN
+90000   FORMAT (' Error return from MA30BD; Singularity detected in',' row', &
+          I8)
+
+      END SUBROUTINE MA30BD
+!_______________________________________________________________________
+
+      SUBROUTINE MA30CD(N,ICN,A,LICN,LENR,LENRL,LENOFF,IDISP,IP,IQ,X, &
+        W,MTYPE)
+! ..
+! MA30CD uses the factors produced by MA30AD or MA30BD to solve
+! AX = B or A TRANSPOSE X = B when the matrix P1*A*Q1(PAQ) is
+! block lower triangular (including the case of only one diagonal
+! block).
+! ..
+! We now describe the argument list for MA30CD.
+! N   is an integer variable set to the order of the matrix. It is
+!     not altered by the subroutine.
+! ICN is an integer array of length LICN. Entries IDISP(1) to
+!     IDISP(2) should be unchanged since the last call to MA30AD. If
+!     the matrix has more than one diagonal block, then column indices
+!     corresponding to non-zeros in sub-diagonal blocks of PAQ must
+!     appear in positions 1 to IDISP(1)-1. For the same row those
+!     entries must be contiguous, with those in row I preceding those
+!     in row I+1 (I=1,...,N-1) and no wasted space between rows.
+!     Entries may be in any order within each row. It is not altered
+!     by MA30CD.
+! A   is a REAL(KIND=WP) array of length LICN. Entries IDISP(1) to
+!     IDISP(2) should be unchanged since the last call to MA30AD or
+!     MA30BD. If the matrix has more than one diagonal block, then
+!     the values of the non-zeros in sub-diagonal blocks must be in
+!     positions 1 to IDISP(1)-1 in the order given by ICN. It is not
+!     altered by MA30CD.
+! LICN is an integer variable set to the size of arrays ICN and A.
+!     It is not altered by MA30CD.
+! LENR, LENRL are integer arrays of length N which should be
+!     unchanged since the last call to MA30AD. They are not
+!     altered by MA30CD.
+! LENOFF is an integer array of length N. If the matrix PAQ (or
+!     P1*A*Q1) has more than one diagonal block, then LENOFF(I),
+!     I=1,...,N should be set to the number of non-zeros in row I of
+!     the matrix PAQ which are in sub-diagonal blocks. If there is
+!     only one diagonal block then LENOFF(1) may be set TO -1, in
+!     which case the other entries of LENOFF are never accessed.
+!     It is not altered by ma30cd.
+! IDISP is an integer array of length 2 which should be unchanged
+!     since the last call to MA30AD. It is not altered by MA30CD.
+! IP, IQ are integer arrays of length N which should be unchanged
+!     since the last call to MA30AD. They are not altered by
+!     MA30CD.
+! X   is a REAL(KIND=WP) array of length N. It must be set by the
+!     user to the values of the right hand side vector B for the
+!     equations being solved. ON exit from MA30CD it will be equal
+!     to the solution X required.
+! W   is a REAL(KIND=WP) array of length N which is used as
+!     workspace by MA30CD.
+! MTYPE is an integer variable which must be set by the user. If
+!     MTYPE = 1, then the solution to the system AX = B is returned.
+!     Any other value for mtype will return the solution to the
+!     system A TRANSPOSE X = B. It is not altered by MA30CD.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER :: LICN, MTYPE, N
+! ..
+! .. Array Arguments ..
+        KPP_REAL :: A(LICN), W(N), X(N)
+        INTEGER :: ICN(LICN), IDISP(2), IP(N), IQ(N), LENOFF(N), LENR(N), &
+          LENRL(N)
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: WI, WII
+        INTEGER :: I, IB, IBACK, IBLEND, IBLOCK, IEND, IFIRST, II, III,   &
+          ILAST, J, J1, J2, J3, JJ, JPIV, JPIVP1, K, LJ1, LJ2, LT, LTEND, &
+          NUMBLK
+        LOGICAL :: NEG, NOBLOC
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, IABS, MAX
+! ..
+! .. FIRST EXECUTABLE STATEMENT MA30CD
+! ..
+!       The final value of RESID is the maximum residual for an
+!       inconsistent set of equations.
+        RESID = ZERO
+!       NOBLOC is .TRUE. if subroutine block has been used
+!       previously and is .FALSE. otherwise. The value .FALSE.
+!       means that LENOFF will not be subsequently accessed.
+        NOBLOC = LENOFF(1) < 0
+        IF (MTYPE/=1) GOTO 140
+
+!       We now solve  A * X = B.
+!       NEG is used to indicate when the last row in a block
+!       has been reached. It is then set to .TRUE. whereafter
+!       back substitution is performed on the block.
+        NEG = .FALSE.
+!       IP(N) is negated so that the last row of the last
+!       block can be recognised. It is reset to its positive
+!       value on exit.
+        IP(N) = -IP(N)
+!       Preorder VECTOR ... W(I) = X(IP(I))
+        DO II = 1, N
+          I = IP(II)
+          I = IABS(I)
+          W(II) = X(I)
+        END DO
+!       LT holds the position of the first non-zero in the current
+!       row of the off-diagonal blocks.
+        LT = 1
+!       IFIRST holds the index of the first row in the current block.
+        IFIRST = 1
+!       IBLOCK holds the position of the first non-zero in the current
+!       row of the LU decomposition of the diagonal blocks.
+        IBLOCK = IDISP(1)
+!       If I is not the last row of a block, then a pass through this
+!       loop adds the inner product of row I of the off-diagonal blocks
+!       and W to W and performs forward elimination using row I of the
+!       LU decomposition. If I is the last row of a block then, after
+!       performing these aforementioned operations, back substitution
+!       is performed using the rows of the block.
+        DO 120 I = 1, N
+          WI = W(I)
+          IF (NOBLOC) GOTO 30
+          IF (LENOFF(I)==0) GOTO 30
+!         Operations using lower triangular blocks.
+!         LTEND is the end of row I in the off-diagonal blocks.
+          LTEND = LT + LENOFF(I) - 1
+          DO JJ = LT, LTEND
+            J = ICN(JJ)
+            WI = WI - A(JJ)*W(J)
+          END DO
+!         LT is set the beginning of the next off-diagonal row.
+          LT = LTEND + 1
+!         Set NEG to .TRUE. if we are on the last row of the block.
+30        IF (IP(I)<0) NEG = .TRUE.
+          IF (LENRL(I)==0) GOTO 50
+!         Forward elimination phase.
+!         IEND is the end of the L part of row I in the LU decomposition.
+          IEND = IBLOCK + LENRL(I) - 1
+          DO JJ = IBLOCK, IEND
+            J = ICN(JJ)
+            WI = WI + A(JJ)*W(J)
+          END DO
+!         IBLOCK is adjusted to point to the start of the next row.
+50        IBLOCK = IBLOCK + LENR(I)
+          W(I) = WI
+          IF (.NOT.NEG) GOTO 120
+!         Back substitution phase.
+!         J1 is position in A/ICN after end of block beginning in
+!         row IFIRST and ending in row I.
+          J1 = IBLOCK
+!         Are there any singularities in this block? If not, continue
+!         with the back substitution.
+          IB = I
+          IF (IQ(I)>0) GOTO 70
+          DO III = IFIRST, I
+            IB = I - III + IFIRST
+            IF (IQ(IB)>0) GOTO 70
+            J1 = J1 - LENR(IB)
+            RESID = MAX(RESID,ABS(W(IB)))
+            W(IB) = ZERO
+          END DO
+!         Entire block is singular.
+          GOTO 110
+!         Each pass through this loop performs the back substitution
+!         operations for a single row, starting at the end of the
+!         block and working through it in reverse order.
+70        DO III = IFIRST, IB
+            II = IB - III + IFIRST
+!           J2 is end of row II.
+            J2 = J1 - 1
+!           J1 is beginning of row II.
+            J1 = J1 - LENR(II)
+!           JPIV is the position of the pivot in row II.
+            JPIV = J1 + LENRL(II)
+            JPIVP1 = JPIV + 1
+!           JUMP if row II of U has no non-zeros.
+            IF (J2<JPIVP1) GOTO 90
+            WII = W(II)
+            DO JJ = JPIVP1, J2
+              J = ICN(JJ)
+              WII = WII - A(JJ)*W(J)
+            END DO
+            W(II) = WII
+90          W(II) = W(II)/A(JPIV)
+          END DO
+110       IFIRST = I + 1
+          NEG = .FALSE.
+120     END DO
+
+!       Reorder solution vector, X(I) = W(IQINVERSE(I)).
+        DO II = 1, N
+          I = IQ(II)
+          I = IABS(I)
+          X(I) = W(II)
+        END DO
+        IP(N) = -IP(N)
+        GOTO 320
+
+!       WE now solve ATRANSPOSE * X = B.
+!       Preorder vector, W(I) = X(IQ(I)).
+140     DO II = 1, N
+          I = IQ(II)
+          I = IABS(I)
+          W(II) = X(I)
+        END DO
+!       LJ1 points to the beginning the current row in the off-diagonal
+!       blocks.
+        LJ1 = IDISP(1)
+!       IBLOCK is initialized to point to the beginning of the block
+!       after the last one.
+        IBLOCK = IDISP(2) + 1
+!       ILAST is the last row in the current block.
+        ILAST = N
+!       IBLEND points to the position after the last non-zero in the
+!       current block.
+        IBLEND = IBLOCK
+!       Each pass through this loop operates with one diagonal block and
+!       the off-diagonal part of the matrix corresponding to the rows
+!       of this block. The blocks are taken in reverse order and the
+!       number of times the loop is entered is MIN(N, NO. BLOCKS+1).
+        DO NUMBLK = 1, N
+          IF (ILAST==0) GOTO 300
+          IBLOCK = IBLOCK - LENR(ILAST)
+!         This loop finds the index of the first row in the current
+!         block. It is FIRST and IBLOCK is set to the position of
+!         the beginning of this first row.
+          DO K = 1, N
+            II = ILAST - K
+            IF (II==0) GOTO 170
+            IF (IP(II)<0) GOTO 170
+            IBLOCK = IBLOCK - LENR(II)
+          END DO
+170       IFIRST = II + 1
+!         J1 points to the position of the beginning of row I (LT part)
+!         or pivot.
+          J1 = IBLOCK
+!         Forward elimination.
+!         Each pass through this loop performs the operations for one row
+!         of the block. If the corresponding entry of W is zero then the
+!         operations can be avoided.
+          DO I = IFIRST, ILAST
+            IF (ABS(W(I))<=ZERO) GOTO 200
+!           JUMP IF ROW I SINGULAR.
+            IF (IQ(I)<0) GOTO 220
+!           J2 first points to the pivot in row I and then is made
+!           to point to the first non-zero in the U TRANSPOSE part
+!           of the row.
+            J2 = J1 + LENRL(I)
+            WI = W(I)/A(J2)
+            IF (LENR(I)-LENRL(I)==1) GOTO 190
+            J2 = J2 + 1
+!           J3 points to the end of row I.
+            J3 = J1 + LENR(I) - 1
+            DO JJ = J2, J3
+              J = ICN(JJ)
+              W(J) = W(J) - A(JJ)*WI
+            END DO
+190         W(I) = WI
+200         J1 = J1 + LENR(I)
+          END DO
+          GOTO 240
+!         Deal with rest of block which is singular.
+220       DO II = I, ILAST
+            RESID = MAX(RESID,ABS(W(II)))
+            W(II) = ZERO
+          END DO
+!         Back substitution.
+!         This loop does the back substitution on the rows of the
+!         block in the reverse order doing it simultaneously on
+!         the L TRANSPOSE part of the diagonal blocks and the
+!         off-diagonal blocks.
+240       J1 = IBLEND
+          DO 280 IBACK = IFIRST, ILAST
+            I = ILAST - IBACK + IFIRST
+!           J1 points to the beginning of row I.
+            J1 = J1 - LENR(I)
+            IF (LENRL(I)==0) GOTO 260
+!           J2 points to the end of the L TRANSPOSE part of row I.
+            J2 = J1 + LENRL(I) - 1
+            DO JJ = J1, J2
+              J = ICN(JJ)
+              W(J) = W(J) + A(JJ)*W(I)
+            END DO
+260         IF (NOBLOC) GOTO 280
+!           Operations using lower triangular blocks.
+            IF (LENOFF(I)==0) GOTO 280
+!           LJ2 points to the end of row I of the off-diagonal blocks.
+            LJ2 = LJ1 - 1
+!           LJ1 points to the beginning of row I of the off-diagonal
+!           blocks.
+            LJ1 = LJ1 - LENOFF(I)
+            DO JJ = LJ1, LJ2
+              J = ICN(JJ)
+              W(J) = W(J) - A(JJ)*W(I)
+            END DO
+280       END DO
+          IBLEND = J1
+          ILAST = IFIRST - 1
+        END DO
+!       Reorder solution vector, X(I) = W(IPINVERSE(I)).
+300     DO II = 1, N
+          I = IP(II)
+          I = IABS(I)
+          X(I) = W(II)
+        END DO
+
+320     RETURN
+
+      END SUBROUTINE MA30CD
+!_______________________________________________________________________
+
+! Private Variable Information.
+! Private variables for MA30ED hold control parameters.
+!     Original : COMMON /MA30ED/ LP,ABORT1,ABORT2,ABORT3
+! The integer LP is the unit number to which the error messages are
+!     sent. LP has a default value of 6. This default value can be
+!     reset by the user, if desired. A value of 0 suppresses all
+!     messages.
+! The logical variables ABORT1, ABORT2, ABORT3 are used to control
+!     the conditions under which the subroutine will terminate.
+! If ABORT1 iS .TRUE. then the subroutine will exit immediately on
+!     detecting structural singularity.
+! If ABORT2 iS .TRUE. then the subroutine will exit immediately on
+!     detecting numerical singularity.
+! If ABORT3 iS .TRUE. then the subroutine will exit immediately when
+!     the available space in A/ICN is filled up by the previously
+!     decomposed, active, and undecomposed parts of the matrix.
+! The default values for ABORT1, ABORT2, ABORT3 are set to .TRUE.,
+!     .TRUE., and .FALSE., respectively.
+
+! The private variables for MA30FD are used to provide the user with
+! information on the decomposition.
+!     Original : COMMON /MA30FD/ IRNCP,ICNCP,IRANK,MINIRN,MINICN
+! IRNCP AND ICNCP are integer variables used to monitor the adequacy
+!     of the allocated space in arrays IRN and A/ICN, respectively,
+!     by taking account of the number of data management compresses
+!     required on these arrays. If IRNCP or ICNCP is fairly large (say
+!     greater than N/10), It may be advantageous to increase the size
+!     of the corresponding array(s). IRNCP and ICNCP are initialized
+!     to zero on entry to MA30AD and are incremented each time the
+!     compressing routine MA30DD is entered.
+! ICNCP is the number of compresses on A/ICN.
+! IRNCP is the number of compresses on IRN.
+! IRANK is an integer variable which gives an estimate (actually an
+!     upper bound) of the rank of the matrix. On an exit with IFLAG
+!     equal to 0, this will be equal to N.
+! MINIRN is an integer variable which, after a successful call to
+!     MA30AD, indicates the minimum length to which IRN can be
+!     reduced while still permitting a successful decomposition
+!     of the same matrix. If, however, the user were to decrease the
+!     length of IRN to that size, the number of compresses (IRNCP)
+!     may be very high and quite costly. If LIRN is not large enough
+!     to begin the decomposition on a diagonal block, MINIRN will be
+!     equal to the value required to continue the decomposition and
+!     IFLAG will be set to -3 or -6. A value of LIRN slightly greater
+!     than this (say about N/2) will usually provide enough space to
+!     complete the decomposition on that block. In the event of any
+!     other failure minirn gives the minimum size of IRN required
+!     for a successful decomposition up to that point.
+! MINICN is an integer variable which after a successful call to
+!     MA30AD, indicates the minimum size of LICN required to enable
+!     a successful decomposition. In the event of failure with
+!     IFLAG = -5, MINICN will, if ABORT3 is left set to .FALSE.,
+!     indicate the minimum length that would be sufficient to
+!     prevent this error in a subsequent run on an identical matrix.
+!     Again the user may prefer to use a value of icn slightly
+!     greater than MINICN for subsequent runs to avoid too many
+!     conpresses (ICNCP). In the event of failure with IFLAG equal
+!     to any negative value except -4, minicn will give the minimum
+!     length to which licn could be reduced to enable a successful
+!     decomposition to the point at which failure occurred. Notice
+!     that, on a successful entry IDISP(2) gives the amount of space
+!     in A/ICN required for the decomposition while MINICN will
+!     usually be slightly greater because of the need for
+!     "elbow room". If the user is very unsure how large to make
+!     LICN, the variable MINICN can be used to provide that
+!     information. A preliminary run should be performed with ABORT3
+!     left set to .FALSE. and LICN about 3/2 times as big as the
+!     number of non-zeros in the original matrix. Unless the initial
+!     problem is very sparse (when the run will be successful) or
+!     fills in extremely badly (giving an error return with
+!     IFLAG = -4), an error return with IFLAG = -5 should result and
+!     MINICN will give the amount of space required for a successful
+!     decomposition.
+
+! The private variables for MA30GD are used by the MA30BD entry only.
+!     Original : COMMON /MA30GD/ EPS,RMIN
+! EPS is a REAL(KIND=WP) variable. It is used to test for small
+!     pivots. Its default value is 1.0D-4 (1.0E-4 in E version).
+!     If the user sets EPS to any value greater than 1.0, then no
+!     check is made on the size of the pivots. Although the absence
+!     of such a check would fail to warn the user of bad instability,
+!     its absence will enable MA30BD to run slightly faster. An a
+!     posteriori check on the stability of the factorization can
+!     be obtained from MC24AD.
+! RMIN is a REAL(KIND=WP) variable which gives the user some
+!     information about the stability of the decomposition. At each
+!     stage of the LU decomposition the magnitude of the pivot APIV
+!     is compared with the largest off-diagonal entry currently in
+!     its row (row of U), ROWMAX say. If the ratio
+!                       MIN(APIV/ROWMAX)
+!     where the minimum is taken over all the rows, is less than EPS
+!     then RMIN is set to this minimum value and IFLAG is returned
+!     with the value +I where I is the row in which this minimum
+!     occurs. If the user sets EPS greater than one, then this test
+!     is not performed. In this case, and when there are no small
+!     pivots rmin will be set equal to EPS.
+
+! The private variables for MA30HD are used by MA30CD only.
+!     Original : COMMON /MA30HD/ RESID
+! RESID is a REAL(KIND=WP) variable. In the case of singular or
+!     rectangular matrices its final value will be equal to the
+!     maximum residual for the unsatisfied equations; otherwise
+!     its value will be set to zero.
+
+!  MA30ID private variables control the use of drop tolerances,
+!     the modified pivot option and the calculation of the largest
+!     entry in the factorization process. These private variables
+!     were added to the MA30 package in February, 1983.
+!     Original : COMMON /MA30ID/ TOL,BIG,NDROP,NSRCH,LBIG
+! TOL is a REAL(KIND=WP) variable. If it is set to a positive
+!     value, then MA30AD will drop from the factors any non-zero
+!     whose modulus is less than TOL. The factorization will then
+!     require less storage but will be inaccurate. After a run of
+!     MA30AD where entries have been dropped, MA30BD should not
+!     be called. The default value for TOL is 0.0.
+! BIG is a REAL(KIND=WP) variable. If LBIG has been set to .TRUE.,
+!     BIG will be set to the largest entry encountered during the
+!     factorization.
+! NDROP is an integer variable. If TOL has been set positive, on
+!     exit from MA30AD, NDROP will hold the number of entries
+!     dropped from the data structure.
+! NSRCH is an integer variable. If NSRCH is set to a value less
+!     than or equal to N, then a different pivot option will be
+!     employed by MA30AD. This may result in different fill-in
+!     and execution time for MA30AD. If NSRCH is less than or
+!     equal to N, the workspace arrays LASTC and NEXTC are not
+!     referenced by MA30AD. The default value for NSRCH is 32768.
+! LBIG is a logical variable. If LBIG is set to .TRUE., the value
+!     of the largest entry encountered in the factorization by
+!     MA30AD is returned in BIG. Setting LBIG to .TRUE. will
+!     marginally increase the factorization time for MA30AD and
+!     will increase that for MA30BD by about 20%. The default
+!     value for LBIG is .FALSE.
+!_______________________________________________________________________
+
+      SUBROUTINE MC13D(N,ICN,LICN,IP,LENR,IOR,IB,NUM,IW)
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER :: LICN, N, NUM
+! ..
+! .. Array Arguments ..
+        INTEGER :: IB(N), ICN(LICN), IOR(N), IP(N), IW(N,3), LENR(N)
+! ..
+! .. FIRST EXECUTABLE STATEMENT MA13D
+! ..
+        CALL MC13E(N,ICN,LICN,IP,LENR,IOR,IB,NUM,IW(1,1),IW(1,2),IW(1,3))
+        RETURN
+
+      END SUBROUTINE MC13D
+!_______________________________________________________________________
+
+      SUBROUTINE MC13E(N,ICN,LICN,IP,LENR,ARP,IB,NUM,LOWL,NUMB,PREV)
+! ..
+! ARP(I) is one less than the number of unsearched edges leaving
+!     node I. At the end of the algorithm it is set to a
+!     permutation which puts the matrix in block lower
+!     triangular form.
+! IB(I) is the position in the ordering of the start of the Ith
+!     block. IB(N+1-I) holds the node number of the Ith node
+!     on the stack.
+! LOWL(I) is the smallest stack position of any node to which a
+!     path from node I has been found. It is set to N+1 when
+!     node I is removed from the stack.
+! NUMB(I) is the position of node I in the stack if it is on
+!     the stack. It is the permuted order of node I for those
+!     nodes whose final position has been found and is otherwise
+!     zero.
+! PREV(I) is the node at the end of the path when node I was
+!     placed on the stack.
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER :: LICN, N, NUM
+! ..
+! .. Array Arguments ..
+        INTEGER :: ARP(N), IB(N), ICN(LICN), IP(N), LENR(N), LOWL(N),  &
+          NUMB(N), PREV(N)
+! ..
+! .. Local Scalars ..
+        INTEGER :: DUMMY, I, I1, I2, ICNT, II, ISN, IST, IST1, IV, IW, &
+          J, K, LCNT, NNM1, STP
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC MIN
+! ..
+! .. FIRST EXECUTABLE STATEMENT MA13E
+! ..
+!       ICNT is the number of nodes whose positions in final ordering
+!       have been found.
+        ICNT = 0
+!       NUM is the number of blocks that have been found.
+        NUM = 0
+        NNM1 = N + N - 1
+
+!       Initialization of arrays.
+        DO J = 1, N
+          NUMB(J) = 0
+          ARP(J) = LENR(J) - 1
+        END DO
+
+        DO 90 ISN = 1, N
+!         Look for a starting node.
+          IF (NUMB(ISN)/=0) GOTO 90
+          IV = ISN
+!         IST is the number of nodes on the stack. It is the
+!         stack pointer.
+          IST = 1
+!         Put node IV at beginning of stack.
+          LOWL(IV) = 1
+          NUMB(IV) = 1
+          IB(N) = IV
+
+!         The body of this loop puts a new node on the stack
+!         or backtracks.
+          DO 80 DUMMY = 1, NNM1
+            I1 = ARP(IV)
+!           Have all edges leaving node iv been searched?
+            IF (I1<0) GOTO 30
+            I2 = IP(IV) + LENR(IV) - 1
+            I1 = I2 - I1
+
+!           Look at edges leaving node iv until one enters a
+!           new node or all edges are exhausted.
+            DO 20 II = I1, I2
+              IW = ICN(II)
+!             Has node iw been on stack already?
+              IF (NUMB(IW)==0) GOTO 70
+!             Update value of LOWL(IV) if necessary.
+20          LOWL(IV) = MIN(LOWL(IV),LOWL(IW))
+
+!           There are no more edges leaving node IV.
+            ARP(IV) = -1
+!           Is node IV the root of a block.
+30          IF (LOWL(IV)<NUMB(IV)) GOTO 60
+
+!           Order nodes in a block.
+            NUM = NUM + 1
+            IST1 = N + 1 - IST
+            LCNT = ICNT + 1
+!           Peel block off the top of the stack starting at the
+!           top and working down to the root of the block.
+            DO STP = IST1, N
+              IW = IB(STP)
+              LOWL(IW) = N + 1
+              ICNT = ICNT + 1
+              NUMB(IW) = ICNT
+              IF (IW==IV) GOTO 50
+            END DO
+50          IST = N - STP
+            IB(NUM) = LCNT
+!           Are there any nodes left on the stack?
+            IF (IST/=0) GOTO 60
+!           Have all the nodes been ordered?
+            IF (ICNT<N) GOTO 90
+            GOTO 100
+
+!           Backtrack to previous node on path.
+60          IW = IV
+            IV = PREV(IV)
+!           Update value of LOWL(IV) if necessary.
+            LOWL(IV) = MIN(LOWL(IV),LOWL(IW))
+            GOTO 80
+
+!           Put new node on the stack.
+70          ARP(IV) = I2 - II - 1
+            PREV(IW) = IV
+            IV = IW
+            IST = IST + 1
+            LOWL(IV) = IST
+            NUMB(IV) = IST
+            K = N + 1 - IST
+            IB(K) = IV
+80        END DO
+
+90      END DO
+
+!       Put permutation in the required form.
+100     DO I = 1, N
+          II = NUMB(I)
+          ARP(II) = I
+        END DO
+        RETURN
+
+      END SUBROUTINE MC13E
+!_______________________________________________________________________
+
+      SUBROUTINE MC20AD(NC,MAXA,A,INUM,JPTR,JNUM,JDISP)
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+! ..
+        INTEGER :: JDISP, MAXA, NC
+! ..
+! .. Array Arguments ..
+        KPP_REAL :: A(MAXA)
+        INTEGER :: INUM(MAXA), JNUM(MAXA), JPTR(NC)
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: ACE, ACEP
+        INTEGER :: I, ICE, ICEP, J, JA, JB, JCE, JCEP, K, KR, LOC, MYNULL
+! ..
+! .. FIRST EXECUTABLE STATEMENT MA20AD
+! ..
+        MYNULL = -JDISP
+!       CLEAR JPTR
+        JPTR(1:NC) = 0
+!       Count the number of elements in each column.
+        DO K = 1, MAXA
+          J = JNUM(K) + JDISP
+          JPTR(J) = JPTR(J) + 1
+        END DO
+!       SET THE JPTR ARRAY.
+        K = 1
+        DO J = 1, NC
+          KR = K + JPTR(J)
+          JPTR(J) = K
+          K = KR
+        END DO
+
+!       Reorder the elements into column order. The algorithm is an
+!       in-place sort and is of order MAXA.
+        DO 50 I = 1, MAXA
+!         Establish the current entry.
+          JCE = JNUM(I) + JDISP
+          IF (JCE==0) GOTO 50
+          ACE = A(I)
+          ICE = INUM(I)
+!         Clear the location vacated.
+          JNUM(I) = MYNULL
+!         Chain from current entry to store items.
+          DO 40 J = 1, MAXA
+!           Current entry not in correct position. Determine the
+!           correct position to store entry.
+            LOC = JPTR(JCE)
+            JPTR(JCE) = JPTR(JCE) + 1
+!           Save contents of that location.
+            ACEP = A(LOC)
+            ICEP = INUM(LOC)
+            JCEP = JNUM(LOC)
+!           Store current entry.
+            A(LOC) = ACE
+            INUM(LOC) = ICE
+            JNUM(LOC) = MYNULL
+!           Check if next current entry needs to be processed.
+            IF (JCEP==MYNULL) GOTO 50
+!           It does. Copy into current entry.
+            ACE = ACEP
+            ICE = ICEP
+40        JCE = JCEP + JDISP
+
+50      END DO
+
+!       Reset JPTR vector.
+        JA = 1
+        DO J = 1, NC
+          JB = JPTR(J)
+          JPTR(J) = JA
+          JA = JB
+        END DO
+        RETURN
+
+      END SUBROUTINE MC20AD
+!_______________________________________________________________________
+
+      SUBROUTINE MC20BD(NC,MAXA,A,INUM,JPTR)
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER :: MAXA, NC
+! ..
+! .. Array Arguments ..
+        KPP_REAL :: A(MAXA)
+        INTEGER :: INUM(MAXA), JPTR(NC)
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: ACE
+        INTEGER :: ICE, IK, J, JJ, K, KDUMMY, KLO, KMAX, KOR
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC IABS
+! ..
+! .. FIRST EXECUTABLE STATEMENT MA20BD
+! ..
+        KMAX = MAXA
+        DO JJ = 1, NC
+          J = NC + 1 - JJ
+          KLO = JPTR(J) + 1
+          IF (KLO>KMAX) GOTO 40
+          KOR = KMAX
+          DO KDUMMY = KLO, KMAX
+!           Items KOR,KOR+1,...,KMAX are in order.
+            ACE = A(KOR-1)
+            ICE = INUM(KOR-1)
+            DO K = KOR, KMAX
+              IK = INUM(K)
+              IF (IABS(ICE)<=IABS(IK)) GOTO 20
+              INUM(K-1) = IK
+              A(K-1) = A(K)
+            END DO
+            K = KMAX + 1
+20          INUM(K-1) = ICE
+            A(K-1) = ACE
+            KOR = KOR - 1
+          END DO
+!         Next column.
+40        KMAX = KLO - 2
+        END DO
+        RETURN
+
+      END SUBROUTINE MC20BD
+!_______________________________________________________________________
+
+      SUBROUTINE MC21A(N,ICN,LICN,IP,LENR,IPERM,NUMNZ,IW)
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER :: LICN, N, NUMNZ
+! ..
+! .. Array Arguments ..
+        INTEGER :: ICN(LICN), IP(N), IPERM(N), IW(N,4), LENR(N)
+! ..
+! .. FIRST EXECUTABLE STATEMENT MA21A
+! ..
+        CALL MC21B(N,ICN,LICN,IP,LENR,IPERM,NUMNZ,IW(1,1),IW(1,2), &
+          IW(1,3),IW(1,4))
+        RETURN
+
+      END SUBROUTINE MC21A
+!_______________________________________________________________________
+
+      SUBROUTINE MC21B(N,ICN,LICN,IP,LENR,IPERM,NUMNZ,PR,ARP,CV,OUT)
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+! ..
+        INTEGER :: LICN, N, NUMNZ
+! ..
+! .. Array Arguments ..
+        INTEGER :: ARP(N), CV(N), ICN(LICN), IP(N), IPERM(N), LENR(N), &
+          OUT(N), PR(N)
+! ..
+! .. Local Scalars ..
+        INTEGER :: I, II, IN1, IN2, IOUTK, J, J1, JORD, K, KK
+! ..
+! .. FIRST EXECUTABLE STATEMENT MA21B
+! ..
+! PR(I) is the previous row to I in the depth first search.
+!    It is used as a work array in the sorting algorithm.
+!    Elements (IPERM(I),I) I=1,...,N are non-zero at the
+!    end of the algorithm unless N assignments have not
+!    been made, in which case (IPERM(I),I) will be zero
+!    for N-NUMNZ entries.
+! CV(I) is the most recent row extension at which column I
+!    was visited.
+! ARP(I) is one less than the number of non-zeros in row I
+!    which have not been scanned when looking for a cheap
+!    assignment.
+! OUT(I) is one less than the number of non-zeros in row I
+!    which have not been scanned during one pass through
+!    the main loop.
+
+!       Initialization of arrays.
+        DO I = 1, N
+          ARP(I) = LENR(I) - 1
+          CV(I) = 0
+          IPERM(I) = 0
+        END DO
+        NUMNZ = 0
+
+!       Main loop.
+!       Each pass round this loop either results in a new
+!       assignment or gives a row with no assignment.
+        DO 100 JORD = 1, N
+          J = JORD
+          PR(J) = -1
+          DO 70 K = 1, JORD
+!           Look for a cheap assignment.
+            IN1 = ARP(J)
+            IF (IN1<0) GOTO 30
+            IN2 = IP(J) + LENR(J) - 1
+            IN1 = IN2 - IN1
+            DO II = IN1, IN2
+              I = ICN(II)
+              IF (IPERM(I)==0) GOTO 80
+            END DO
+!           No cheap assignment in row.
+            ARP(J) = -1
+!           Begin looking for assignment chain starting with row J.
+30          OUT(J) = LENR(J) - 1
+!           Inner loop. Extends chain by one or backtracks.
+            DO KK = 1, JORD
+              IN1 = OUT(J)
+              IF (IN1<0) GOTO 50
+              IN2 = IP(J) + LENR(J) - 1
+              IN1 = IN2 - IN1
+!             Forward scan.
+              DO 40 II = IN1, IN2
+                I = ICN(II)
+                IF (CV(I)==JORD) GOTO 40
+!               Column I has not yet been accessed during this pass.
+                J1 = J
+                J = IPERM(I)
+                CV(I) = JORD
+                PR(J) = J1
+                OUT(J1) = IN2 - II - 1
+                GOTO 70
+40            END DO
+
+!             Backtracking step.
+50            J = PR(J)
+              IF (J==-1) GOTO 100
+            END DO
+
+70        END DO
+
+!         New assignment is made.
+80        IPERM(I) = J
+          ARP(J) = IN2 - II - 1
+          NUMNZ = NUMNZ + 1
+          DO K = 1, JORD
+            J = PR(J)
+            IF (J==-1) GOTO 100
+            II = IP(J) + LENR(J) - OUT(J) - 2
+            I = ICN(II)
+            IPERM(I) = J
+          END DO
+
+100     END DO
+
+!       If matrix is structurally singular, we now complete the
+!       permutation IPERM.
+        IF (NUMNZ==N) RETURN
+        ARP(1:N) = 0
+        K = 0
+        DO 130 I = 1, N
+          IF (IPERM(I)/=0) GOTO 120
+          K = K + 1
+          OUT(K) = I
+          GOTO 130
+120       J = IPERM(I)
+          ARP(J) = I
+130     END DO
+        K = 0
+        DO 140 I = 1, N
+          IF (ARP(I)/=0) GOTO 140
+          K = K + 1
+          IOUTK = OUT(K)
+          IPERM(IOUTK) = I
+140     END DO
+        RETURN
+
+      END SUBROUTINE MC21B
+!_______________________________________________________________________
+
+      SUBROUTINE MC22AD(N,ICN,A,NZ,LENROW,IP,IQ,IW,IW1)
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER :: N, NZ
+! ..
+! .. Array Arguments ..
+        KPP_REAL :: A(NZ)
+        INTEGER :: ICN(NZ), IP(N), IQ(N), IW(N,2), IW1(NZ), LENROW(N)
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: AVAL
+        INTEGER :: I, ICHAIN, IOLD, IPOS, J, J2, JJ, JNUM, JVAL, LENGTH, &
+          NEWPOS
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC IABS
+! ..
+! .. FIRST EXECUTABLE STATEMENT MA22AD
+! ..
+        IF (NZ<=0) GOTO 90
+        IF (N<=0) GOTO 90
+!       Set start of row I in IW(I,1) and LENROW(I) in IW(I,2)
+        IW(1,1) = 1
+        IW(1,2) = LENROW(1)
+        DO I = 2, N
+          IW(I,1) = IW(I-1,1) + LENROW(I-1)
+          IW(I,2) = LENROW(I)
+        END DO
+!       Permute LENROW according to IP. Set off-sets for new
+!       position of row IOLD in IW(IOLD,1) and put old row
+!       indices in IW1 in positions corresponding to the new
+!       position of this row in A/ICN.
+        JJ = 1
+        DO 30 I = 1, N
+          IOLD = IP(I)
+          IOLD = IABS(IOLD)
+          LENGTH = IW(IOLD,2)
+          LENROW(I) = LENGTH
+          IF (LENGTH==0) GOTO 30
+          IW(IOLD,1) = IW(IOLD,1) - JJ
+          J2 = JJ + LENGTH - 1
+          DO 20 J = JJ, J2
+20        IW1(J) = IOLD
+          JJ = J2 + 1
+30      END DO
+!       Set inverse permutation to IQ in IW(:,2).
+        DO I = 1, N
+          IOLD = IQ(I)
+          IOLD = IABS(IOLD)
+          IW(IOLD,2) = I
+        END DO
+!       Permute A and ICN in place, changing to new column numbers.
+!       Main loop.
+!       Each pass through this loop places a closed chain of
+!       column indices in their new (and final) positions.
+!       This is recorded by setting the iw1 entry to zero so
+!       that any which are subsequently encountered during
+!       this major scan can be bypassed.
+        DO 80 I = 1, NZ
+          IOLD = IW1(I)
+          IF (IOLD==0) GOTO 80
+          IPOS = I
+          JVAL = ICN(I)
+!         If row IOLD is in same positions after permutation,
+!         GOTO 150.
+          IF (IW(IOLD,1)==0) GOTO 70
+          AVAL = A(I)
+!         Chain loop.
+!         Each pass through this loop places one(permuted) column
+!         index in its final position, viz. IPOS.
+          DO ICHAIN = 1, NZ
+!           NEWPOS is the original position in A/ICN of the
+!           element to be placed in position IPOS. It is also
+!           the position of the next element in the chain.
+            NEWPOS = IPOS + IW(IOLD,1)
+!           Is chain complete?
+            IF (NEWPOS==I) GOTO 60
+            A(IPOS) = A(NEWPOS)
+            JNUM = ICN(NEWPOS)
+            ICN(IPOS) = IW(JNUM,2)
+            IPOS = NEWPOS
+            IOLD = IW1(IPOS)
+            IW1(IPOS) = 0
+!           End of chain loop.
+          END DO
+60        A(IPOS) = AVAL
+70        ICN(IPOS) = IW(JVAL,2)
+!         END OF MAIN LOOP
+80      END DO
+90      RETURN
+
+      END SUBROUTINE MC22AD
+!_______________________________________________________________________
+
+      SUBROUTINE MC23AD(N,ICN,A,LICN,LENR,IDISP,IP,IQ,LENOFF,IW,IW1)
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER :: LICN, N
+! ..
+! .. Array Arguments ..
+        KPP_REAL :: A(LICN)
+        INTEGER :: ICN(LICN), IDISP(2), IP(N), IQ(N), IW(N,5), IW1(N,2), &
+          LENOFF(N), LENR(N)
+! ..
+! .. Local Scalars ..
+        INTEGER :: I, I1, I2, IBEG, IBLOCK, IEND, II, ILEND, INEW, IOLD, &
+          IROWB, IROWE, J, JJ, JNEW, JNPOS, JOLD, K, LENI, NZ
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC MAX, MIN
+! ..
+! .. FIRST EXECUTABLE STATEMENT MA23AD
+! ..
+!     Input ... N,ICN ... A,ICN,LENR ...
+!     Set up pointers IW(:,1) to the beginning of the rows
+!     and set LENOFF equal to LENR.
+        IW1(1,1) = 1
+        LENOFF(1) = LENR(1)
+        IF (N==1) GOTO 20
+        DO I = 2, N
+          LENOFF(I) = LENR(I)
+          IW1(I,1) = IW1(I-1,1) + LENR(I-1)
+        END DO
+!       IDISP(1) points to the first position in A/ICN after
+!       the off-diagonal blocks and untreated rows.
+20      IDISP(1) = IW1(N,1) + LENR(N)
+
+!       Find row permutation ip to make diagonal zero-free.
+        CALL MC21A(N,ICN,LICN,IW1(1,1),LENR,IP,NUMNZ,IW(1,1))
+
+!       Possible error return for structurally singular matrices.
+        IF (NUMNZ/=N .AND. ABORT) GOTO 170
+
+!       IW1(:,2) and LENR are permutations of IW1(:,1) and
+!       LENR/LENOFF suitable for entry to MC13D since matrix
+!       with these row pointer and length arrays has maximum
+!       number of non-zeros on the diagonal.
+        DO II = 1, N
+          I = IP(II)
+          IW1(II,2) = IW1(I,1)
+          LENR(II) = LENOFF(I)
+        END DO
+
+!       Find symmetric permutation IQ to block lower triangular form.
+        CALL MC13D(N,ICN,LICN,IW1(1,2),LENR,IQ,IW(1,4),NUM,IW)
+
+        IF (NUM/=1) GOTO 60
+
+!       Action taken if matrix is irreducible: The
+!       whole matrix is just moved to the end of the storage.
+        DO I = 1, N
+          LENR(I) = LENOFF(I)
+          IP(I) = I
+          IQ(I) = I
+        END DO
+        LENOFF(1) = -1
+!       IDISP(1) is the first position after the last element in
+!       the off-diagonal blocks and untreated rows.
+        NZ = IDISP(1) - 1
+        IDISP(1) = 1
+!       IDISP(2) Is the position in A/ICN of the first element
+!       in the diagonal blocks.
+        IDISP(2) = LICN - NZ + 1
+        LARGE = N
+        IF (NZ==LICN) GOTO 200
+        DO K = 1, NZ
+          J = NZ - K + 1
+          JJ = LICN - K + 1
+          A(JJ) = A(J)
+          ICN(JJ) = ICN(J)
+        END DO
+        GOTO 200
+
+!       Data structure reordered.
+
+!       Form composite row permutation, IP(I) = IP(IQ(I)).
+60      DO II = 1, N
+          I = IQ(II)
+          IW(II,1) = IP(I)
+        END DO
+        DO I = 1, N
+          IP(I) = IW(I,1)
+        END DO
+
+!       Run through blocks in reverse order separating diagonal
+!       blocks which are moved to the end of the storage. Elements
+!       in off-diagonal blocks are left in place unless a compress
+!       is necessary.
+
+!       IBEG indicates the lowest value of J for which ICN(J) has
+!       been set to zero when element in position J was moved to
+!       the diagonal block part of storage.
+        IBEG = LICN + 1
+!       IEND is the position of the first element of those treated
+!       rows which are in diagonal blocks.
+        IEND = LICN + 1
+!       LARGE is the dimension of the largest block encountered
+!       so far.
+        LARGE = 0
+
+!       NUM is the number of diagonal blocks.
+        DO K = 1, NUM
+          IBLOCK = NUM - K + 1
+!         I1 is first row (in permuted form) of block IBLOCK.
+!         I2 is last row (in permuted form) of block IBLOCK.
+          I1 = IW(IBLOCK,4)
+          I2 = N
+          IF (K/=1) I2 = IW(IBLOCK+1,4) - 1
+          LARGE = MAX(LARGE,I2-I1+1)
+!         Go through the rows of block IBLOCK in the reverse order.
+          DO II = I1, I2
+            INEW = I2 - II + I1
+!           We now deal with row inew in permuted form (row IOLD
+!           in original matrix).
+            IOLD = IP(INEW)
+!           If there is space to move up diagonal block portion
+!           of row GOTO 110.
+            IF (IEND-IDISP(1)>=LENOFF(IOLD)) GOTO 110
+
+!           In-line compress.
+!           Moves separated off-diagonal elements and untreated
+!           rows to front of storage.
+            JNPOS = IBEG
+            ILEND = IDISP(1) - 1
+            IF (ILEND<IBEG) GOTO 180
+            DO 90 J = IBEG, ILEND
+              IF (ICN(J)==0) GOTO 90
+              ICN(JNPOS) = ICN(J)
+              A(JNPOS) = A(J)
+              JNPOS = JNPOS + 1
+90          END DO
+            IDISP(1) = JNPOS
+            IF (IEND-JNPOS<LENOFF(IOLD)) GOTO 180
+            IBEG = LICN + 1
+!           Reset pointers to the beginning of the rows.
+            DO 100 I = 2, N
+100         IW1(I,1) = IW1(I-1,1) + LENOFF(I-1)
+
+!           Row IOLD is now split into diagonal and off-diagonal parts.
+110         IROWB = IW1(IOLD,1)
+            LENI = 0
+            IROWE = IROWB + LENOFF(IOLD) - 1
+!           Backward scan of whole of row IOLD (in original matrix).
+            IF (IROWE<IROWB) GOTO 130
+            DO 120 JJ = IROWB, IROWE
+              J = IROWE - JJ + IROWB
+              JOLD = ICN(J)
+!             IW(:,2) holds the inverse permutation to IQ.
+!             It was set to this in MC13D.
+              JNEW = IW(JOLD,2)
+!             IF (JNEW < I1) THEN ...
+!             Element is in off-diagonal block and so is
+!             left in situ.
+              IF (JNEW<I1) GOTO 120
+!             Element is in diagonal block and is moved to
+!             the end of the storage.
+              IEND = IEND - 1
+              A(IEND) = A(J)
+              ICN(IEND) = JNEW
+              IBEG = MIN(IBEG,J)
+              ICN(J) = 0
+              LENI = LENI + 1
+120         END DO
+
+            LENOFF(IOLD) = LENOFF(IOLD) - LENI
+130         LENR(INEW) = LENI
+          END DO
+
+          IP(I2) = -IP(I2)
+        END DO
+!       Resets IP(N) to positive value.
+        IP(N) = -IP(N)
+!       IDISP(2) is position of first element in diagonal blocks.
+        IDISP(2) = IEND
+
+!       This compress is used to move all off-diagonal elements
+!       to the front of the storage.
+        IF (IBEG>LICN) GOTO 200
+        JNPOS = IBEG
+        ILEND = IDISP(1) - 1
+        DO 160 J = IBEG, ILEND
+          IF (ICN(J)==0) GOTO 160
+          ICN(JNPOS) = ICN(J)
+          A(JNPOS) = A(J)
+          JNPOS = JNPOS + 1
+160     END DO
+!       IDISP(1) is first position after last element of
+!       off-diagonal blocks.
+        IDISP(1) = JNPOS
+        GOTO 200
+
+!       Error return
+170     IF (LP/=0) WRITE (LP,90000) NUMNZ
+90000   FORMAT (' Matrix is structurally singular, rank = ',I6)
+        IDISP(1) = -1
+        GOTO 190
+180     IF (LP/=0) WRITE (LP,90001) N
+90001   FORMAT (' LICN is not big enough; increase by ',I6)
+        IDISP(1) = -2
+190     IF (LP/=0) WRITE (LP,90002)
+90002   FORMAT (' + Error return from MC23AD')
+200     RETURN
+
+      END SUBROUTINE MC23AD
+!_______________________________________________________________________
+
+      SUBROUTINE MC24AD(N,ICN,A,LICN,LENR,LENRL,W)
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER :: LICN, N
+! ..
+! .. Array Arguments ..
+        KPP_REAL :: A(LICN), W(N)
+        INTEGER :: ICN(LICN), LENR(N), LENRL(N)
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: AMAXL, AMAXU, WROWL
+        INTEGER :: I, J, J0, J1, J2, JJ
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, MAX
+! ..
+! .. FIRST EXECUTABLE STATEMENT MA24AD
+! ..
+        AMAXL = ZERO
+        W(1:N) = ZERO
+        J0 = 1
+        DO 60 I = 1, N
+          IF (LENR(I)==0) GOTO 60
+          J2 = J0 + LENR(I) - 1
+          IF (LENRL(I)==0) GOTO 30
+!         Calculation of 1-norm of L.
+          J1 = J0 + LENRL(I) - 1
+          WROWL = ZERO
+          DO 20 JJ = J0, J1
+20        WROWL = WROWL + ABS(A(JJ))
+!         AMAXL is the maximum norm of columns of L so far found.
+          AMAXL = MAX(AMAXL,WROWL)
+          J0 = J1 + 1
+!         Calculation of norms of columns of U(MAX-NORMS).
+30        J0 = J0 + 1
+          IF (J0>J2) GOTO 50
+          DO 40 JJ = J0, J2
+            J = ICN(JJ)
+40        W(J) = MAX(ABS(A(JJ)),W(J))
+50        J0 = J2 + 1
+60      END DO
+!       AMAXU is set to maximum max-norm of columns of U.
+        AMAXU = ZERO
+        DO I = 1, N
+          AMAXU = MAX(AMAXU,W(I))
+        END DO
+!       GROFAC is MAX U max-norm times MAX L 1-norm.
+        W(1) = AMAXL*AMAXU
+        RETURN
+
+      END SUBROUTINE MC24AD
+!_______________________________________________________________________
+
+      SUBROUTINE MC19AD(N,NA,A,IRN,ICN,R,C,W)
+! ..
+!     MC19A was altered to use same precision for R, C,
+!     and W as is used for other variables in program.
+! ..
+!     REAL A(NA),R(N),C(N),W(N,5)
+!     R(I) is used to return log(scaling factor for row I).
+!     C(J) is used to return log(scaling factor for col J).
+!     W(I,1), W(I,2) hold row,col non-zero counts.
+!     W(J,3) holds - COL J LOG during execution.
+!     W(J,4) holds 2-iteration change in W(J,3).
+!     W(I,5) is used to save average element log for row I.
+!     INTEGER*2 IRN(NA), ICN(NA)
+!     IRN(K) gives row number of element in A(K).
+!     ICN(K) gives col number of element in A(K).
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER :: N, NA
+! ..
+! .. Array Arguments ..
+        KPP_REAL :: A(NA), C(N), R(N), W(N,5)
+        INTEGER :: ICN(NA), IRN(NA)
+! ..
+! .. Local Scalars ..
+        KPP_REAL :: E, E1, EM, Q, Q1, QM, S, S1, SM, SMIN, U, V
+        INTEGER :: I, I1, I2, ITER, J, K, MAXIT
+! ..
+! .. Intrinsic Functions ..
+        INTRINSIC ABS, LOG, REAL
+! ..
+! .. Data Statements ..
+!       MAXIT is the maximal permitted number of iterations.
+!       SMIN is used in a convergence test on (residual norm)**2.
+        DATA MAXIT/100/, SMIN/0.1/
+! ..
+! .. FIRST EXECUTABLE STATEMENT MA19AD
+! ..
+!       Check scalar data.
+        IFAIL = 1
+        IF (N<1) GOTO 210
+        IFAIL = 2
+!       IF (N > 32767)GOTO 230
+        IFAIL = 2
+        IFAIL = 0
+
+!       Initialise for accumulation of sums and products.
+        C(1:N) = ZERO
+        R(1:N) = ZERO
+        W(1:N,1:4) = ZERO
+        IF (NA<=0) GOTO 220
+        DO 40 K = 1, NA
+          U = ABS(A(K))
+!         IF (U == ZERO) GOTO 30
+          IF (ABS(U-ZERO)<=ZERO) GOTO 40
+          U = LOG(U)
+          I1 = IRN(K)
+          I2 = ICN(K)
+          IF (I1>=1 .AND. I1<=N .AND. I2>=1 .AND. I2<=N) GOTO 30
+          IF (LP>0) WRITE (LP,90000) K, I1, I2
+90000     FORMAT (' MC19 error. Element ',I5,' is in row ',I5,' and column ', &
+            I5)
+          IFAIL = 3
+          GOTO 40
+!         Count row/col non-zeros and compute rhs vectors.
+30        W(I1,1) = W(I1,1) + 1.
+          W(I2,2) = W(I2,2) + 1.
+          R(I1) = R(I1) + U
+          W(I2,3) = W(I2,3) + U
+40      END DO
+        IF (IFAIL==3) GOTO 210
+
+!       Divide rhs by diagonal matrices.
+        DO I = 1, N
+!        IF (W(I,1) == ZERO) W(I,1) = 1.
+          IF (ABS(W(I,1))<=ZERO) W(I,1) = ONE
+          R(I) = R(I)/W(I,1)
+!         SAVE R(I) FOR USE AT END.
+          W(I,5) = R(I)
+!         IF (W(I,2) == ZERO) W(I,2) = 1.
+          IF (ABS(W(I,2))<=ZERO) W(I,2) = ONE
+          W(I,3) = W(I,3)/W(I,2)
+        END DO
+!       SM = SMIN*FLOAT(NA)
+        SM = SMIN*REAL(NA)
+!       Sweep to compute initial residual vector.
+        DO 60 K = 1, NA
+!         IF (A(K) == ZERO) GOTO 80
+          IF (ABS(A(K))<=ZERO) GOTO 60
+          I = IRN(K)
+          J = ICN(K)
+          R(I) = R(I) - W(J,3)/W(I,1)
+60      END DO
+
+!       Initialise iteration.
+        E = ZERO
+        Q = 1.
+        S = ZERO
+        DO I = 1, N
+          S = S + W(I,1)*R(I)**2
+        END DO
+        IF (S<=SM) GOTO 160
+
+!       Iteration loop.
+        DO ITER = 1, MAXIT
+!         Sweep through matrix to update residual vector.
+          DO 80 K = 1, NA
+!           IF (A(K) == ZERO) GOTO 130
+            IF (ABS(A(K))<=ZERO) GOTO 80
+            I = ICN(K)
+            J = IRN(K)
+            C(I) = C(I) + R(J)
+80        END DO
+          S1 = S
+          S = ZERO
+          DO I = 1, N
+            V = -C(I)/Q
+            C(I) = V/W(I,2)
+            S = S + V*C(I)
+          END DO
+          E1 = E
+          E = Q*S/S1
+          Q = 1. - E
+          IF (S<=SM) E = ZERO
+!         Update residual.
+          DO I = 1, N
+            R(I) = R(I)*E*W(I,1)
+          END DO
+          IF (S<=SM) GOTO 180
+          EM = E*E1
+!         Sweep through matrix to update residual vector.
+          DO 110 K = 1, NA
+!           IF (A(K) == ZERO) GOTO 152
+            IF (ABS(A(K))<=ZERO) GOTO 110
+            I = IRN(K)
+            J = ICN(K)
+            R(I) = R(I) + C(J)
+110       END DO
+          S1 = S
+          S = ZERO
+          DO I = 1, N
+            V = -R(I)/Q
+            R(I) = V/W(I,1)
+            S = S + V*R(I)
+          END DO
+          E1 = E
+          E = Q*S/S1
+          Q1 = Q
+          Q = 1. - E
+!         Special fixup for last iteration.
+          IF (S<=SM) Q = 1.
+!         Update colulm scaling powers.
+          QM = Q*Q1
+          DO I = 1, N
+            W(I,4) = (EM*W(I,4)+C(I))/QM
+            W(I,3) = W(I,3) + W(I,4)
+          END DO
+          IF (S<=SM) GOTO 160
+!         Update residual.
+          DO I = 1, N
+            C(I) = C(I)*E*W(I,2)
+          END DO
+        END DO
+160     DO I = 1, N
+          R(I) = R(I)*W(I,1)
+        END DO
+
+!       Sweep through matrix to prepare to get row scaling powers.
+180     DO 190 K = 1, NA
+!         IF (A(K) == ZERO) GOTO 200
+          IF (ABS(A(K))<=ZERO) GOTO 190
+          I = IRN(K)
+          J = ICN(K)
+          R(I) = R(I) + W(J,3)
+190     END DO
+
+!       Final conversion to output values.
+        DO I = 1, N
+          R(I) = R(I)/W(I,1) - W(I,5)
+          C(I) = -W(I,3)
+        END DO
+        GOTO 220
+210     IF (LP>0) WRITE (LP,90001) IFAIL
+90001   FORMAT (' Error return ',I2,' from MC19')
+220     RETURN
+      END SUBROUTINE MC19AD
+! End of  MA28 subroutines.
+!_______________________________________________________________________
+! Beginning of JACSP routines.
+! Change Record:
+! ST 09-01-05
+!   Convert to F90 using Metcalf converter
+!   Trim trailing blanks using trimem.pl
+!   Convert arithmetic operators to F90
+!   Replace R1MACH by EPSILON
+!   Run through nag tools suite
+! ST 09-17-05
+!   Delete RDUM and IDUM
+!   Change FCN argument list
+! ST 09-18-05
+!   Add subroutine DGROUPDS to define the IGP and JGP arrays for JACSP
+! ST 09-20-05
+!   Modify JACSP to produce JACSPDB for sparse, dense, and
+!   banded Jacobians
+!_______________________________________________________________________
+
+    SUBROUTINE JACSP(FCN,N,T,Y,F,FJAC,NRFJAC,YSCALE,FAC,IOPT,WK, &
+      LWK,IWK,LIWK,MAXGRP,NGRP,JPNTR,INDROW)
+
+! BEGIN PROLOGUE JACSP
+! DATE WRITTEN 850415
+! CATEGORY NO. D4
+! KEYWORDS NUMERICAL DIFFERENCING, SPARSE JACOBIANS
+! AUTHOR SALANE, DOUGLAS E., SANDIA NATIONAL LABORATORIES
+!        NUMERICAL MATHEMATICS DIVISION,1642
+!        ALBUQUERQUE, NM 87185
+
+! SUBROUTINE JACSP USES FINITE DIFFERENCES TO COMPUTE THE JACOBIAN OF
+! A SPARSE SYSTEM OF N EQUATIONS AND N UNKNOWNS. JACSP IS DESIGNED FOR
+! USE IN NUMERICAL METHODS FOR SOLVING NONLINEAR PROBLEMS WHERE THE
+! JACOBIAN IS EVALUATED REPEATEDLY AND OFTEN AT NEIGHBORING ARGUMENTS
+! (E.G., NEWTON'S METHOD OR A BDF METHOD FOR SOVING STIFF ORDINARY
+! DIFFERENTIAL EQUATIONS). JACSP IS INTENDED FOR APPLICATIONS IN WHICH
+! THE REQUIRED JACOBIANS ARE LARGE AND SPARSE.
+
+! TAKING ADVANTAGE OF SPARSITY.
+
+! SUBROUTINE JACSP TAKES ADVANTAGE OF THE SPARSITY OF A MATRIX TO REDUCE
+! THE NUMBER OF FUNCTION EVALUATIONS REQUIRED TO COMPUTE THE JACOBIAN.
+! TO REALIZE THIS ADVANTAGE, THE USER MUST PROVIDE JACSP WITH A COLUMN
+! GROUPING. THIS MEANS THE USER MUST ASSIGN COLUMNS OF THE JACOBIAN TO
+! MUTUALLY EXCLUSIVE GROUPS BASED ON THE SPARSITY OF THE COLUMNS.THE
+! DIFFERENCES REQUIRED TO COMPUTE THE NONZERO ELEMENTS IN ALL COLUMNS IN
+! A GROUP ARE FORMED USING ONLY ONE ADDITIONAL FUNCTION EVALUATION. FOR
+! MORE DETAILS, THE USER IS REFERRED TO THE REPORT BY D.E. SALANE AND
+! L.F. SHAMPINE (REF. 1).
+
+! THE SUBROUTINE DVDSM (REF 2.) IS THE WAY MOST USERS WILL DETERMINE A
+! COLUMN GROUPING FOR JACSP. THE USE OF DSM AND JACSP IS DESCRIBED
+! LATER IN THE PROLOGUE.
+
+! STORAGE.
+
+! JACSP REQUIRES THE USER TO PROVIDE A SPARSE DATA STRUCTURE FOR THE
+! JACOBIAN TO BE COMPUTED. JACSP REQUIRES THE USER TO SPECIFY THE
+! INDICES OF THE NONZERO ELEMENTS IN A COLUMN PACKED SPARSE DATA
+! STRUCTURE (SEE REF.1). THE SUBROUTINE DVDSM( REF 2.) CAN BE USED TO
+! ESTABLISH THE SPARSE DATA STRUCTURE REQUIRED BY JACSP. THE USE OF
+! JACSP AND DSM IS DESCRIBED LATER IN THE PROLOGUE.
+
+! ON OUTPUT, SUBROUTINE JACSP WILL RETURN THE JACOBIAN IN ANY ONE OF
+! THE FOLLOWING THREE FORMATS SPECIFIED BY THE USER.
+
+! (1) FULL STORAGE FORMAT.......THE COMPUTED JACOBIAN IS STORED IN
+!      AN ARRAY WHOSE ROW AND COLUMN DIMENSIONS ARE THE NUMBER OF
+!      EQUATIONS.
+
+! (2) BANDED STORAGE FORMAT.....THE COMPUTED MATRIX IS STORED IN A TWO
+!      DIMENSIONAL ARRAY WHOSE ROW DIMENSION IS
+!      2*(NUMBER OF LOWER DIAGONALS) + (THE NUMBER OF UPPER DIAGONALS)
+!      + 1. THE COLUMN DIMENSION OF THIS ARRAY IS THE NUMBER OF
+!      EQUATIONS. THIS STORAGE FORMAT IS COMPATIBLE WITH THE LINPACK
+!      GENERAL BAND MATRIX EQUATION SOLVER.
+
+! (3) SPARSE STORAGE FORMAT.....THE COMPUTED JACOBIAN IS STORED IN A
+!      ONE DIMENSIONAL ARRAY WHOSE LENGTH IS THE NUMBER OF NONZERO
+!      ELEMENTS IN THE JACOBIAN.
+
+! DESCRIPTION
+
+!  SUBROUTINE PARAMETERS
+
+!  FCN()......A USER-PROVIDED FUNCTION (SEE SUBROUTINE DESCRIPTION).
+!  N..........THE NUMBER OF EQUATIONS.
+!  T..........A SCALAR VARIABLE. T IS PROVIDED SO USERS CAN PASS THE
+!             VALUE OF AN INDEPENDENT VARIALBE TO THE FUNCTION
+!             EVALUATION ROUTINE.
+!  Y(*).......AN ARRAY OF DIMENSION N. THE POINT AT WHICH THE
+!             JACOBIAN IS TO BE EVALUATED.
+!  F(*).......AN ARRAY OF DIMENSION N. THE EQUATIONS EVALUATED AT
+!             THE POINT Y.
+!  FJAC(*,*)..AN ARRAY OF WHOSE DIMENSIONS DEPEND ON THE STORAGE
+!      FORMAT SELECTED BY THE USER. THE ROW AND COLUMN DIMENSIONS ARE
+!      SET BY THE USER. IF THE SPARSE MATRIX FORMAT IS SELECTED, FJAC
+!      SHOULD BE TREATED AS A ONE DIMENSIONAL ARRAY BY THE CALLING
+!      PROGRAM. FOR FURTHER DETAILS, SEE THE DESCRIPTION OF THE
+!      PARAMETER IOPT(1) WHICH CONTROLS THE STORAGE FORMAT.
+
+!      NOTE THAT IF THE BANDED OR FULL OPTION IS USED,THE USER SHOULD
+!      ZERO OUT THOSE POSITIONS OF FJAC THAT WILL NOT BE ACCESSED BY
+!      JACSP. JACSP DOES NOT ZERO OUT THE MATRIX FJAC BEFORE
+!      COMPUTING THE JACOBIAN. POSITIONS OF FJAC THAT ARE NOT ASSIGNED
+!      VALUES BY JACSP WILL BE THE SAME ON EXIT AS ON ENTRY TO JACSP.
+
+!  NRFJAC.....THE NUMBER OF ROWS IN FJAC AND THE LEADING DIMENSION
+!             OF FJAC (SEE IOPT(1)).
+!  NCFJAC.....THE NUMBER OF COLUMNS IN FJAC AND THE COLUMN DIMENSION
+!             OF FJAC (SEE IOPT(1)).
+!  YSCALE(*)..AN ARRAY OF DIMENSION N. YSCALE(I) CONTAINS A
+!     REPRESENTATIVE MAGNITUDE FOR Y(I). YSCALE(I) MUST BE POSITIVE.
+!     YSCALE IS AN OPTIONAL FEATURE OF THE ROUTINE. IF THE USER DOES
+!     NOT WISH TO PROVIDE YSCALE, IT CAN BE TREATED AS A DUMMY SCALAR
+!     VARIABLE (SEE IOPT(3)).
+
+!  FAC(*).....AN ARRAY OF DIMENSION N. FAC CONTAINS A PERCENTAGE FOR
+!     USE IN COMPUTING THE INCREMENT.
+
+!     THE NORMAL WAY TO USE THE CODE IS TO LET JACSP ADJUST FAC VALUES.
+!     IN THIS CASE FAC IS INITIALIZED BY JACSP. ALSO, THE USER MUST
+!     NOT ALTER FAC VALUES BETWEEN CALLS TO JACSP.
+
+!     THE USER MAY PROVIDE FAC VALUES IF DESIRED (SEE IOPT(4) FOR
+!     DETAILS). IF THE USER PROVIDES FAC VALUES, FAC(I) SHOULD BE
+!     SHOULD BE SET TO A VALUE BETWEEN O AND 1. JACSP WILL NOT PERMIT
+!     FAC(I) TO BE SET TO A VALUE THAT RESULTS IN TOO SMALL AN
+!     INCREMENT. JACSP ENSURES THAT
+!                     FACMIN <= FAC(I) <= FACMAX.
+!     FOR FURTHER DETAILS ON FACMIN AND FACMAX SEE
+!     THE REPORT(REF.3).
+
+!  IOPT(*)....AN INTEGER ARRAY OF LENGTH 5 FOR USER SELECTED OPTIONS.
+
+!          IOPT(1) CONTROLS THE STORAGE FORMAT.
+
+!             IOPT(1) = 0 INDICATES FULL STORAGE FORMAT. SET BOTH
+!             NRFJAC = N AMD NCFJAC = N.
+
+!             IOPT(1) = 1 INDICATES BANDED STORAGE FORMAT. SET
+!             NRFJAC = 2 * ML + MU + 1 WHERE
+!             ML = NUMBER OF SUB-DIAGONALS BELOW THE MAIN DIAGONAL AND
+!             MU = NUMBER OF SUPER-DIAGONALS ABOVE THE MAIN DIAGONAL.
+!             SET NCFJAC = N.
+
+!             IOPT(1) = 2 INDICATES SPARSE STORAGE FORMAT. SET
+!             NRFJAC = TO THE NUMBER OF NONZEROS IN THE JACOBIAN AND
+!             SET NCFJAC = 1.
+
+!          IOPT(2) MUST BE SET TO THE BANDWIDTH OF THE MATRIX.
+!          IOPT(2) NEED ONLY BE PROVIDED IF BANDED STORAGE
+!          FORMAT IS REQUESTED(I.E., IOPT(1) = 1).
+
+!          IOPT(3) ALLOWS THE USER TO PROVIDE TYPICAL VALUES
+!          TO BE USED IN COMPUTING INCREMENTS FOR DIFFERENCING.
+
+!             IOPT(3) = 0 INDICATES Y VALUES ARE USED IN COMPUTING
+!             INCREMENTS. IF IOPT(3) = 0, NO STORAGE IS REQUIRED FOR
+!             YSCALE AND IT MAY BE TREATED AS A DUMMY VARIABLE.
+
+!             IOPT(3) = 1 INDICATES THAT YSCALE VALUES ARE TO BE USED.
+!             IF IOPT(3) = 1, THE USER MUST PROVIDE AN ARRAY OF NONZERO
+!             VALUES IN YSCALE.
+
+!          IOPT(4) ALLOWS THE USER TO PROVIDE THE VALUES USED
+!          IN THE FAC ARRAY TO COMPUTE INCREMENTS FOR DIFFERENCING.
+
+!             IF IOPT(4) = 0, EACH COMPONENT OF FAC IS
+!             SET TO THE SQUARE ROOT OF MACHINE UNIT ROUNDOFF ON THE
+!             FIRST CALL TO JACSP. IOPT(4) IS SET TO ONE ON RETURN.
+
+!             IF IOPT(4) = 1, EACH COMPONENT OF FAC MUST BE SET
+!             BY THE CALLING ROUTINE. UNLESS THE USER WISHES TO
+!             INITIALIZE FAC, THE FAC ARRAY SHOULD NOT BE ALTERED
+!             BETWEEN SUBSEQUENT CALLS TO JACSP. ALSO, THE USER
+!             SHOULD NOT CHANGE THE VALUE OF IOPT(4) RETURNED BY
+!             JACSP.
+
+!          IOPT(5) IS NOT USED IN JACSP.
+
+!  WK(*)......A WORK ARRAY OF DIMENSION AT LEAST 3*N
+!  LWK........THE LENGTH OF THE WORK ARRAY. LWK IS AT LEAST 3*N.
+!  IWK(*)...AN INTEGER ARRAY OF LENGTH LIWK = 50 + N WHICH GIVES
+!      DIAGNOSTIC INFORMATION IN POSITIONS 1 THROUGH 50. POSITIONS 51
+!      THROUGH 50 + N ARE USED AS INTEGER WORKSPACE.
+
+!      IWK(1) GIVES THE NUMBER OF TIMES THE INCREMENT FOR DIFFERENCING
+!      (DEL) WAS COMPUTED AND HAD TO BE INCREASED BECAUSE (Y(JCOL)+DEL)
+!      -Y(JCOL)) WAS TOO SMALL RELATIVE TO Y(JCOL) OR YSCALE(JCOL).
+
+!      IWK(2) GIVES THE NUMBER OF COLUMNS IN WHICH THREE ATTEMPTS WERE
+!      MADE TO INCREASE A PERCENTAGE FACTOR FOR DIFFERENCING (I.E., A
+!      COMPONENT IN THE FAC ARRAY) BUT THE COMPUTED DEL REMAINED
+!      UNACCEPTABLY SMALL RELATIVE TO Y(JCOL) OR YSCALE(JCOL). IN SUCH
+!      CASES THE PERCENTAGE FACTOR IS SET TO THE SQUARE ROOT OF THE UNIT
+!      ROUNDOFF OF THE MACHINE. THE FIRST 10 COLUMNS ARE GIVEN IN
+!      IWK(21),...,IWK(30).
+
+!      IWK(3) GIVES THE NUMBER OF COLUMNS IN WHICH THE COMPUTED DEL WAS
+!      ZERO TO MACHINE PRECISION BECAUSE Y(JCOL) OR YSCALE(JCOL) WAS
+!      ZERO. IN SUCH CASES DEL IS SET TO THE SQUARE ROOT OF THE UNIT
+!      ROUNDOFF.
+
+!      IWK(4) GIVES THE NUMBER OF COLUMNS WHICH HAD TO BE RECOMPUTED
+!      BECAUSE THE LARGEST DIFFERENCE FORMED IN THE COLUMN WAS VERY
+!      CLOSE TO ZERO RELATIVE TO SCALE WHERE
+
+!                    SCALE = MAX(F(Y),F(Y+DEL))
+!                                 I     I
+
+!      AND I DENOTES THE ROW INDEX OF THE LARGEST DIFFERENCE IN THE
+!      COLUMN CURRENTLY BEING PROCESSED. IWK(31),...,IWK(40) GIVES THE
+!      FIRST 10 OF THESE COLUMNS.
+
+!      IWK(5) GIVES THE NUMBER OF COLUMNS WHOSE LARGEST DIFFERENCE IS
+!      CLOSE TO ZERO RELATIVE TO SCALE AFTER THE COLUMN HAS BEEN
+!      RECOMPUTED. THE FIRST 10 OF THESE COLUMNS ARE GIVEN IN POSITIONS
+!      IWK(41)...IWK(50).
+!      IWK(6) GIVES THE NUMBER OF TIMES SCALE INFORMATION WAS NOT
+!      AVAILABLE FOR USE IN THE ROUNDOFF AND TRUNCATION ERROR TESTS.
+!      THIS OCCURS WHEN
+!                    MIN(F(Y),F(Y+DEL)) = 0.
+!                          I     I
+!      WHERE I IS THE INDEX OF THE LARGEST DIFFERENCE FOR THE COLUMN
+!      CURRENTLY BEING PROCESSED.
+!      IWK(7) GIVES THE NUMBER OF TIMES THE FUNCTION EVALUATION ROUTINE
+!      WAS CALLED.
+!      IWK(8) GIVES THE NUMBER OF TIMES A COMPONENT OF THE FAC ARRAY WAS
+!      REDUCED BECAUSE CHANGES IN FUNCTION VALUES WERE LARGE AND EXCESS
+!      TRUNCATION ERROR WAS SUSPECTED. IWK(11),...,IWK(20) GIVES THE FIRST
+!      10 OF THESE COLUMNS.
+!      IWK(9) AND IWK(10) ARE NOT USED IN JACSP.
+!  LIWK.....THE LENGTH OF THE ARRAY IWK. LIWK = 50 + N.
+!      THE FOLLOWING PARAMETERS MAY BE PROVIDED BY THE USER OR
+!      INITIALIZED BY THE SUBROUTINE DVDSM (SEE LONG DESCRIPTION
+!      SECTION OF THE PROLOGUE).
+!  PARAMETERS CONTAINING COLUMN GROUPING:
+!  MAXGRP.....THE NUMBER OF DIFFERENT GROUPS TO WHICH THE COLUMNS
+!             HAVE BEEN ASSIGNED.
+!  NGRP(*)....AN ARRAY OF LENGTH N THAT CONTAINS THE COLUMN GROUPING.
+!             NGRP(I) IS THE GROUP TO WHICH THE I-TH COLUMN HAS BEEN
+!             ASSIGNED.
+!             (SEE USE OF DSM AND JACSP FOR DETERMINING MAXGRP AND NGRP)
+!  PARAMETERS CONTAINING THE SPARSE DATA STRUCTURE:
+!  JPNTR(*)...AN ARRAY OF LENGTH N+1 THAT CONTAINS POINTERS TO
+!             THE ROW INDICES IN INDROW (SEE INDROW).
+!  INDROW(*)..AN ARRAY WHOSE LENGTH IS THE NUMBER OF NONZERO ELEMENTS
+!             IN THE JACOBIAN. INDROW CONTAINS THE ROW INDICES
+!             STORED IN COLUMN PACKED FORMAT. IN OTHER WORDS, THE
+!             ROW INDICES OF THE NONZERO ELEMENTS OF A GIVEN
+!             COLUMN OF THE JACOBIAN ARE STORED CONTIGUOUSLY IN
+!             INDROW. JPNTR(JCOL) POINTS TO THE ROW INDEX OF THE FIRST
+!             NONZERO ELEMENT IN THE COLUMN JCOL. JPNTR(JCOL+1) - 1
+!             POINTS TO THE ROW INDEX OF THE LAST NONZERO ELEMENT IN
+!             THE COLUMN JCOL.
+!             (SEE USE OF DSM AND JACSP FOR DETERMINING INDROW AND JPNTR)
+!  REQUIRED SUBROUTINES: SUBROUTINE FCN(N,T,Y,F)
+!     T......AN INDEPENDENT SCALAR VARIABLE WHICH MAY BE USED
+!           IN EVALUATING F(E.G., F(Y(T),T)).
+!     Y(*)...AN ARRAY OF DIMENSION N WHICH CONTAINS THE POINT AT
+!            WHICH THE EQUATIONS ARE TO BE EVALUATED.
+!     F(*)...AN ARRAY OF DIMENSION N WHICH ON RETURN FROM FCN
+!            CONTAINS THE EQUATIONS EVALUATED AT Y.
+
+! LONG DESCRIPTION
+
+! ROUNDOFF AND TRUNCATION ERRORS.
+! SUBROUTINE JACSP TAKES ADVANTAGE OF THE WAY IN WHICH THE JACOBIAN
+! IS EVALUATED TO ADJUST INCREMENTS FOR DIFFERENCING TO CONTROL
+! ROUNDOFF AND TRUNCATION ERRORS. THE ROUTINE SELDOM REQUIRES MORE
+! THAN ONE ADDITIONAL FUNCTION EVALUATION TO COMPUTE A COLUMN OF THE
+! JACOBIAN. ALSO, THE ROUTINE RETURNS A VARIETY OF ERROR DIAGNOSTICS
+! TO WARN USERS WHEN COMPUTED DERIVATIVES MAY NOT BE ACCURATE.
+! WARNING: JACSP CAN NOT GUARANTEE THE ACCURACY OF THE COMPUTED
+! DERIVATIVES. IN ORDER O SAVE ON FUNCTION EVALUATIONS, HEURISTIC
+! TECNIQUES FOR INCREMENT ADJUSTMENT AND SAFEGUARDING INCREMENTS ARE
+! USED. THESE USUALLY WORK WELL.
+
+! WARNING: SOME OF THE DIAGNOSTICS RETURNED CAN ONLY BE INTERPRETED
+! WITH A DETAILED KNOWLEDGE OF THE ROUTINE. NEVERTHELESS, THEY ARE
+! PROVIDED TO GIVE USERS FULL ACCESS TO THE INFORMATION PRODUCED BY
+! THE SUBROUTINE.
+! USE OF DSM AND JACSP.
+! SUBROUTINE DVDSM CAN BE USED TO DETERMINE THE COLUMN GROUPING (MAXGRP
+! AND NGRP(*)) AND THE SPARSE DATA STRUCTURE VARIABLES (JPNTR(*) AND
+! INDROW(*)). THE USER CAN CALL DVDSM ONCE TO INITIALIZE
+! MAXGRP,NGRP,JPNTR AND INDROW. JACSP MAY THEN BE CALLED REPEATEDLY TO
+! EVALUATE THE JACOBIAN. THE FOLLOWING ARE THE IMPORTANT VARIABLES IN
+! THE DSM CALLING SEQUENCE.
+! SUBROUTINE DVDSM(...,INDROW,INDCOL,NGRP,MAXGRP,..,JPNTR,...)
+! ON INPUT, THE USER MUST PROVIDE DSM WITH THE INTEGER ARRAYS INDROW AND
+! INDCOL. THE PAIR
+!                  (INDROW(I),INDCOL(I))
+! PROVIDES THE INDEX OF A NONZERO ELEMENT OF THE JACOBIAN. THE LENGTH OF
+! INDROW AND INDCOL IS THE NUMBER OF NONZERO ELEMENTS IN THE JACOBIAN.
+! NO ORDERING OF THE INDICES FOR NONZERO ELEMENTS IS REQUIRED IN THE
+! ARRAYS INDROW AND INDCOL.
+! ON RETURN FROM DSM, MAXGRP,NGRP,INDROW,JPNTR ARE INITIALIZED
+! FOR INPUT TO JACSP. THE USER MUST NOT CHANGE MAXGRP,NGRP,JPNTR OR
+! INDROW AFTER CALLING DSM.
+! WE REFER THE READER TO THE IN CODE DOCUMENTATION FOR DSM OR THE REPORT
+! BY MORE AND COLEMAN (REF 2.) FOR FURTHER DETAILS.
+! REFERENCES
+!  (1) D.E. SALANE AND L. F. SHAMPINE
+!      "AN ECONOMICAL AND EFFICIENT ROUTINE FOR COMPUTING
+!      SPARSE JACOBIANS", REPORT NO. SAND85-0977, SANDIA NATIONAL
+!      LABORATORIES, ALBUQUERQUE,NM,87185.
+!  (2) T.F. COLEMAN AND J.J. MORE
+!      "SOFTWARE FOR ESTIMATING SPARSE JACOBIAN MATRICES" ACM TOMS,
+!      V10.,N0.3,SEPT. 1984.
+!  (3) D.E. SALANE AND L. F. SHAMPINE
+!      "THREE ADAPTIVE ROUTINES FOR FORMING JACOBIANS NUMERICALLY,"
+!       REPORT NO. SAND86- ****, SANDIA NATIONAL LABORATORIES,
+!       ALBUQUERQUE, NM, 87185.
+!  REQUIRED FORTRAN INTRINSIC FUNCTIONS: MAX,MIN,ABS,SIGN
+!  MACHINE DEPENDENT CONSTANT: U (MACHINE UNIT ROUNDOFF)
+!  JACSP SETS THE REQUIRED MACHINE CONSTANT USING THE F90
+!  INTRINSIC EPSILON.
+!  END PROLOGUE JACSP
+
+     IMPLICIT NONE
+
+! .. Parameters ..
+      INTEGER, PARAMETER :: WP = KIND(0.0D0)
+! ..
+! .. Scalar Arguments ..
+      KPP_REAL :: T
+      INTEGER :: LIWK, LWK, MAXGRP, N, NRFJAC
+! ..
+! .. Array Arguments ..
+      KPP_REAL :: F(N), FAC(N), FJAC(NRFJAC,*), WK(LWK), Y(N), YSCALE(*)
+      INTEGER :: INDROW(*), IOPT(5), IWK(LIWK), JPNTR(*), NGRP(N)
+! ..
+! .. Subroutine Arguments ..
+      EXTERNAL FCN
+! ..
+! .. Local Scalars ..
+      KPP_REAL :: ADIFF, AY, DEL, DELM, DFMJ, DIFF, DMAX, EXPFMN, FACMAX, &
+        FACMIN, FJACL, FMJ, ONE, P125, P25, P75, P875, PERT, RDEL, RMNFDF, &
+        RMXFDF, SDF, SF, SGN, T1, T2, U, U3QRT, U7EGT, UEGT, UMEGT, UQRT, &
+        USQT, ZERO
+      INTEGER :: IDXL, IDXU, IFLAG1, IFLAG2, IRCMP, IRDEL, IROW, IROWB, &
+        IROWMX, ITRY, J, JCOL, KT1, KT2, KT3, KT4, KT5, L, NID1, NID2, NID3, &
+        NID4, NID5, NID6, NIFAC, NT2, NUMGRP
+! ..
+! .. Intrinsic Functions ..
+!     INTRINSIC ABS, EPSILON, KIND, MAX, MIN, SIGN, SQRT
+      INTRINSIC ABS, EPSILON, MAX, MIN, SIGN, SQRT
+! ..
+! .. Data Statements ..
+      DATA PERT/2.0E+0_dp/, FACMAX/1.E-1_dp/, EXPFMN/.75E+0_dp/
+      DATA ONE/1.0E0_dp/, ZERO/0.0E0_dp/
+      DATA P125/.125E+0_dp/, P25/.25E+0_dp/, P75/.75E+0_dp/, P875/.875E+0_dp/
+      DATA NIFAC/3/, NID1/10/, NID2/20/, NID3/30/, NID4/40/, NID5/50/
+! ..
+!     COMPUTE ALGORITHM AND MACHINE CONSTANTS.
+! ..
+! ..  FIRST EXECUTABLE STATEMENT JACSP
+! ..
+      U = EPSILON(ONE)
+      USQT = SQRT(U)
+      UEGT = U**P125
+      UMEGT = ONE/UEGT
+      UQRT = U**P25
+      U3QRT = U**P75
+      U7EGT = U**P875
+      FACMIN = U**EXPFMN
+
+      IF (IOPT(4) == 0) THEN
+        IOPT(4) = 1
+        DO 10 J = 1, N
+          FAC(J) = USQT
+10      CONTINUE
+      END IF
+      DO 20 J = 1, 50
+        IWK(J) = 0
+20    CONTINUE
+      KT1 = NID1
+      KT2 = NID2
+      KT3 = NID3
+      KT4 = NID4
+      KT5 = NID5
+      NID6 = LIWK
+      NT2 = 2*N
+      DO NUMGRP = 1, MAXGRP
+!       COMPUTE AND SAVE THE INCREMENTS FOR THE COLUMNS IN GROUP NUMGRP.
+        IRCMP = 0
+        ITRY = 0
+        DO 30 J = NID5 + 1, NID6
+          IWK(J) = 0
+30      CONTINUE
+40      CONTINUE
+        DO JCOL = 1, N
+          IF (NGRP(JCOL) == NUMGRP) THEN
+            WK(N+JCOL) = Y(JCOL)
+!           COMPUTE DEL. IF DEL IS TOO SMALL INCREASE FAC(JCOL) AND RECOMPUTE
+!           DEL. NIFAC ATTEMPTS ARE MADE TO INCREASE FAC(JCOL) AND FIND AN
+!           APPROPRIATE DEL. IF DEL CANT BE FOUND IN THIS MANNER, DEL IS COMPUTED
+!           WITH FAC(JCOL) SET TO THE SQUARE ROOT OF THE MACHINE PRECISION (USQT).
+!           IF DEL IS ZERO TO MACHINE PRECISION BECAUSE Y(JCOL) IS ZERO OR
+!           YSCALE(JCOL) IS ZERO, DEL IS SET TO USQT.
+            SGN = SIGN(ONE,F(JCOL))
+            IRDEL = 0
+            IF (IOPT(3) == 1) THEN
+              AY = ABS(YSCALE(JCOL))
+            ELSE
+              AY = ABS(Y(JCOL))
+            END IF
+            DELM = U7EGT*AY
+
+            DO 50 J = 1, NIFAC
+              DEL = FAC(JCOL)*AY*SGN
+!             IF (DEL == ZERO) THEN
+              IF (ABS(DEL) <= ZERO) THEN
+
+                DEL = USQT*SGN
+                IF (ITRY == 0) IWK(3) = IWK(3) + 1
+              END IF
+              T1 = Y(JCOL) + DEL
+              DEL = T1 - Y(JCOL)
+              IF (ABS(DEL) < DELM) THEN
+                IF (J >= NIFAC) GOTO 50
+                IF (IRDEL == 0) THEN
+                  IRDEL = 1
+                  IWK(1) = IWK(1) + 1
+                END IF
+                T1 = FAC(JCOL)*UMEGT
+                FAC(JCOL) = MIN(T1,FACMAX)
+              ELSE
+                GOTO 60
+              END IF
+50          END DO
+
+            FAC(JCOL) = USQT
+            DEL = USQT*AY*SGN
+            IWK(2) = IWK(2) + 1
+            IF (KT2 < NID3) THEN
+              KT2 = KT2 + 1
+              IWK(KT2) = JCOL
+            END IF
+
+60          CONTINUE
+            WK(NT2+JCOL) = DEL
+            Y(JCOL) = Y(JCOL) + DEL
+          END IF
+        END DO
+
+        IWK(7) = IWK(7) + 1
+        CALL FCN(N,T,Y,WK)
+        DO JCOL = 1, N
+          IF (NGRP(JCOL) == NUMGRP) Y(JCOL) = WK(N+JCOL)
+        END DO
+
+!       COMPUTE THE JACOBIAN ENTRIES FOR ALL COLUMNS IN NUMGRP.
+!       STORE ENTRIES ACCORDING TO SELECTED STORAGE FORMAT.
+!       USE LARGEST ELEMENTS IN A COLUMN TO DETERMINE SCALING
+!       INFORMATION FOR ROUNDOFF AND TRUNCATION ERROR TESTS.
+        DO JCOL = 1, N
+          IF (NGRP(JCOL) == NUMGRP) THEN
+            IDXL = JPNTR(JCOL)
+            IDXU = JPNTR(JCOL+1) - 1
+            DMAX = ZERO
+            RDEL = ONE/WK(NT2+JCOL)
+            IROWMX = 1
+            DO L = IDXL, IDXU
+              IROW = INDROW(L)
+              DIFF = WK(IROW) - F(IROW)
+              ADIFF = ABS(DIFF)
+              IF (ADIFF >= DMAX) THEN
+                IROWMX = IROW
+                DMAX = ADIFF
+                SF = F(IROW)
+                SDF = WK(IROW)
+              END IF
+              FJACL = DIFF*RDEL
+              IF (ITRY == 1) WK(IROW) = FJACL
+
+              IF (IOPT(1) == 0) THEN
+                IF (ITRY == 1) WK(IROW+N) = FJAC(IROW,JCOL)
+                FJAC(IROW,JCOL) = FJACL
+              END IF
+              IF (IOPT(1) == 1) THEN
+                IROWB = IROW - JCOL + IOPT(2)
+                IF (ITRY == 1) WK(IROW+N) = FJAC(IROWB,JCOL)
+                FJAC(IROWB,JCOL) = FJACL
+              END IF
+              IF (IOPT(1) == 2) THEN
+                IF (ITRY == 1) WK(IROW+N) = FJAC(L,1)
+                FJAC(L,1) = FJACL
+              END IF
+            END DO
+
+!           IF A COLUMN IS BEING RECOMPUTED (ITRY=1),THIS SECTION OF THE
+!           CODE PERFORMS AN EXTRAPOLATION TEST TO ENABLE THE CODE TO
+!           COMPUTE SMALL DERIVATIVES MORE ACCURATELY. THIS TEST IS ONLY
+!           PERFORMED ON THOSE COLUMNS WHOSE LARGEST DIFFERENCE IS CLOSE
+!           TO ZERO RELATIVE TO SCALE.
+            IF (ITRY == 1) THEN
+              IFLAG1 = 0
+              IFLAG2 = 0
+              DO 100 J = NID5 + 1, NID6
+                IF (IWK(J) == JCOL) IFLAG1 = 1
+100           CONTINUE
+              IF (IFLAG1 == 1) THEN
+                IFLAG1 = 0
+                T1 = WK(IROWMX+N)
+                T2 = WK(IROWMX)*FAC(JCOL)
+                IF (ABS(T2) < ABS(T1)*PERT) IFLAG2 = 1
+              END IF
+
+              IF (IFLAG2 == 1) THEN
+                IFLAG2 = 0
+                T1 = FAC(JCOL)*FAC(JCOL)
+                FAC(JCOL) = MAX(T1,FACMIN)
+                DO L = IDXL, IDXU
+                  IROW = INDROW(L)
+                  FJACL = WK(IROW+N)
+                  IF (IOPT(1) == 0) FJAC(IROW,JCOL) = FJACL
+                  IF (IOPT(1) == 1) THEN
+                    IROWB = IROW - JCOL + IOPT(2)
+                    FJAC(IROWB,JCOL) = FJACL
+                  END IF
+                  IF (IOPT(1) == 2) FJAC(L,1) = FJACL
+                END DO
+              END IF
+            END IF
+
+            FMJ = ABS(SF)
+            DFMJ = ABS(SDF)
+            RMXFDF = MAX(FMJ,DFMJ)
+            RMNFDF = MIN(FMJ,DFMJ)
+
+!           IF SCALE INFORMATION IS NOT AVAILABLE, PERFORM NO ROUNDOFF
+!           OR TRUNCATION ERROR TESTS. IF THE EXTRAPOLATION TEST HAS
+!           CAUSED FAC(JCOL) TO BE RESET TO ITS PREVIOUS VALUE (IAJAC=1)
+!           THEN NO FURTHER ROUNDOFF OR TRUNCATION ERROR TESTS ARE
+!           PERFORMED.
+!           IF (RMNFDF/=ZERO) THEN
+            IF (ABS(RMNFDF) > ZERO) THEN
+!             TEST FOR POSSIBLE ROUNDOFF ERROR (FIRST TEST)
+!             AND ALSO FOR POSSIBLE SERIOUS ROUNDOFF ERROR (SECOND TEST).
+              IF (DMAX <= (U3QRT*RMXFDF)) THEN
+                IF (DMAX <= (U7EGT*RMXFDF)) THEN
+                  IF (ITRY == 0) THEN
+                    T1 = SQRT(FAC(JCOL))
+                    FAC(JCOL) = MIN(T1,FACMAX)
+                    IRCMP = 1
+                    IF (KT5 < NID6) THEN
+                      KT5 = KT5 + 1
+                      IWK(KT5) = JCOL
+                    END IF
+                    IWK(4) = IWK(4) + 1
+                    IF (KT3 < NID4) THEN
+                      KT3 = KT3 + 1
+                      IWK(KT3) = JCOL
+                    END IF
+                  ELSE
+                    IWK(5) = IWK(5) + 1
+                    IF (KT4 < NID5) THEN
+                      KT4 = KT4 + 1
+                      IWK(KT4) = JCOL
+                    END IF
+                  END IF
+                ELSE
+                  T1 = UMEGT*FAC(JCOL)
+                  FAC(JCOL) = MIN(T1,FACMAX)
+                END IF
+              END IF
+!             TEST FOR POSSIBLE TRUNCATION ERROR.
+              IF (DMAX > UQRT*RMXFDF) THEN
+                T1 = FAC(JCOL)*UEGT
+                FAC(JCOL) = MAX(T1,FACMIN)
+                IWK(8) = IWK(8) + 1
+                IF (KT1 < NID2) THEN
+                  KT1 = KT1 + 1
+                  IWK(KT1) = JCOL
+                END IF
+              END IF
+            ELSE
+              IWK(6) = IWK(6) + 1
+            END IF
+          END IF
+        END DO
+
+!       IF SERIOUS ROUNDOFF ERROR IS SUSPECTED, RECOMPUTE ALL
+!       COLUMNS IN GROUP NUMGRP.
+        IF (IRCMP == 1) THEN
+          IRCMP = 0
+          ITRY = 1
+          GOTO 40
+        END IF
+        ITRY = 0
+      END DO
+      RETURN
+
+    END SUBROUTINE JACSP
+!_______________________________________________________________________
+
+    SUBROUTINE DEGR(N,INDROW,JPNTR,INDCOL,IPNTR,NDEG,IWA)
+
+!     GIVEN THE SPARSITY PATTERN OF AN M BY N MATRIX A,
+!     THIS SUBROUTINE DETERMINES THE DEGREE SEQUENCE FOR
+!     THE INTERSECTION GRAPH OF THE COLUMNS OF A.
+!     IN GRAPH-THEORY TERMINOLOGY, THE INTERSECTION GRAPH OF
+!     THE COLUMNS OF A IS THE LOOPLESS GRAPH G WITH VERTICES
+!     A(J), J = 1,2,...,N WHERE A(J) IS THE J-TH COLUMN OF A
+!     AND WITH EDGE (A(I),A(J)) IF AND ONLY IF COLUMNS I AND J
+!     HAVE A NON-ZERO IN THE SAME ROW POSITION.
+!     NOTE THAT THE VALUE OF M IS NOT NEEDED BY DEGR AND IS
+!     THEREFORE NOT PRESENT IN THE SUBROUTINE STATEMENT.
+!     THE SUBROUTINE STATEMENT IS
+!       SUBROUTINE DEGR(N,INDROW,JPNTR,INDCOL,IPNTR,NDEG,IWA)
+!     WHERE
+!       N IS A POSITIVE INTEGER INPUT VARIABLE SET TO THE NUMBER
+!         OF COLUMNS OF A.
+!       INDROW IS AN INTEGER INPUT ARRAY WHICH CONTAINS THE ROW
+!         INDICES FOR THE NON-ZEROES IN THE MATRIX A.
+!       JPNTR IS AN INTEGER INPUT ARRAY OF LENGTH N + 1 WHICH
+!         SPECIFIES THE LOCATIONS OF THE ROW INDICES IN INDROW.
+!         THE ROW INDICES FOR COLUMN J ARE
+!               INDROW(K), K = JPNTR(J),...,JPNTR(J+1)-1.
+!         NOTE THAT JPNTR(N+1)-1 IS THEN THE NUMBER OF NON-ZERO
+!         ELEMENTS OF THE MATRIX A.
+!       INDCOL IS AN INTEGER INPUT ARRAY WHICH CONTAINS THE
+!         COLUMN INDICES FOR THE NON-ZEROES IN THE MATRIX A.
+!       IPNTR IS AN INTEGER INPUT ARRAY OF LENGTH M + 1 WHICH
+!         SPECIFIES THE LOCATIONS OF THE COLUMN INDICES IN INDCOL.
+!         THE COLUMN INDICES FOR ROW I ARE
+!               INDCOL(K), K = IPNTR(I),...,IPNTR(I+1)-1.
+!         NOTE THAT IPNTR(M+1)-1 IS THEN THE NUMBER OF NON-ZERO
+!         ELEMENTS OF THE MATRIX A.
+!       NDEG IS AN INTEGER OUTPUT ARRAY OF LENGTH N WHICH
+!         SPECIFIES THE DEGREE SEQUENCE. THE DEGREE OF THE
+!         J-TH COLUMN OF A IS NDEG(J).
+!       IWA IS AN INTEGER WORK ARRAY OF LENGTH N.
+!     ARGONNE NATIONAL LABORATORY. MINPACK PROJECT. JULY 1983.
+!     THOMAS F. COLEMAN, BURTON S. GARBOW, JORGE J. MORE'
+
+     IMPLICIT NONE
+
+! .. Scalar Arguments ..
+      INTEGER :: N
+! ..
+! .. Array Arguments ..
+      INTEGER :: INDCOL(*), INDROW(*), IPNTR(*), IWA(N), JPNTR(N+1), NDEG(N)
+! ..
+! .. Local Scalars ..
+      INTEGER :: IC, IP, IR, JCOL, JP
+! ..
+! ..  FIRST EXECUTABLE STATEMENT DEGR
+! ..
+!     INITIALIZATION BLOCK.
+      NDEG(1:N) = 0
+      IWA(1:N) = 0
+
+!     COMPUTE THE DEGREE SEQUENCE BY DETERMINING THE CONTRIBUTIONS
+!     TO THE DEGREES FROM THE CURRENT (JCOL) COLUMN AND FURTHER
+!     COLUMNS WHICH HAVE NOT YET BEEN CONSIDERED.
+      DO JCOL = 2, N
+        IWA(JCOL) = N
+!       DETERMINE ALL POSITIONS (IR,JCOL) WHICH CORRESPOND
+!       TO NON-ZEROES IN THE MATRIX.
+        DO JP = JPNTR(JCOL), JPNTR(JCOL+1) - 1
+          IR = INDROW(JP)
+!         FOR EACH ROW IR, DETERMINE ALL POSITIONS (IR,IC)
+!         WHICH CORRESPOND TO NON-ZEROES IN THE MATRIX.
+          DO IP = IPNTR(IR), IPNTR(IR+1) - 1
+            IC = INDCOL(IP)
+!           ARRAY IWA MARKS COLUMNS WHICH HAVE CONTRIBUTED TO
+!           THE DEGREE COUNT OF COLUMN JCOL. UPDATE THE DEGREE
+!           COUNTS OF THESE COLUMNS AS WELL AS COLUMN JCOL.
+            IF (IWA(IC) < JCOL) THEN
+              IWA(IC) = JCOL
+              NDEG(IC) = NDEG(IC) + 1
+              NDEG(JCOL) = NDEG(JCOL) + 1
+            END IF
+          END DO
+        END DO
+      END DO
+      RETURN
+
+    END SUBROUTINE DEGR
+!_______________________________________________________________________
+
+    SUBROUTINE IDO(M,N,INDROW,JPNTR,INDCOL,IPNTR,NDEG,LIST,MAXCLQ, &
+      IWA1,IWA2,IWA3,IWA4)
+
+!     SUBROUTINE IDO
+!     GIVEN THE SPARSITY PATTERN OF AN M BY N MATRIX A, THIS
+!     SUBROUTINE DETERMINES AN INCIDENCE-DEGREE ORDERING OF THE
+!     COLUMNS OF A.
+!     THE INCIDENCE-DEGREE ORDERING IS DEFINED FOR THE LOOPLESS
+!     GRAPH G WITH VERTICES A(J), J = 1,2,...,N WHERE A(J) IS THE
+!     J-TH COLUMN OF A AND WITH EDGE (A(I),A(J)) IF AND ONLY IF
+!     COLUMNS I AND J HAVE A NON-ZERO IN THE SAME ROW POSITION.
+!     THE INCIDENCE-DEGREE ORDERING IS DETERMINED RECURSIVELY BY
+!     LETTING LIST(K), K = 1,...,N BE A COLUMN WITH MAXIMAL
+!     INCIDENCE TO THE SUBGRAPH SPANNED BY THE ORDERED COLUMNS.
+!     AMONG ALL THE COLUMNS OF MAXIMAL INCIDENCE, IDO CHOOSES A
+!     COLUMN OF MAXIMAL DEGREE.
+!     THE SUBROUTINE STATEMENT IS
+!       SUBROUTINE IDO(M,N,INDROW,JPNTR,INDCOL,IPNTR,NDEG,LIST,
+!                      MAXCLQ,IWA1,IWA2,IWA3,IWA4)
+!     WHERE
+!       M IS A POSITIVE INTEGER INPUT VARIABLE SET TO THE NUMBER
+!         OF ROWS OF A.
+!       N IS A POSITIVE INTEGER INPUT VARIABLE SET TO THE NUMBER
+!         OF COLUMNS OF A.
+!       INDROW IS AN INTEGER INPUT ARRAY WHICH CONTAINS THE ROW
+!         INDICES FOR THE NON-ZEROES IN THE MATRIX A.
+!       JPNTR IS AN INTEGER INPUT ARRAY OF LENGTH N + 1 WHICH
+!         SPECIFIES THE LOCATIONS OF THE ROW INDICES IN INDROW.
+!         THE ROW INDICES FOR COLUMN J ARE
+!               INDROW(K), K = JPNTR(J),...,JPNTR(J+1)-1.
+!         NOTE THAT JPNTR(N+1)-1 IS THEN THE NUMBER OF NON-ZERO
+!         ELEMENTS OF THE MATRIX A.
+!       INDCOL IS AN INTEGER INPUT ARRAY WHICH CONTAINS THE
+!         COLUMN INDICES FOR THE NON-ZEROES IN THE MATRIX A.
+!       IPNTR IS AN INTEGER INPUT ARRAY OF LENGTH M + 1 WHICH
+!         SPECIFIES THE LOCATIONS OF THE COLUMN INDICES IN INDCOL.
+!         THE COLUMN INDICES FOR ROW I ARE
+!               INDCOL(K), K = IPNTR(I),...,IPNTR(I+1)-1.
+!         NOTE THAT IPNTR(M+1)-1 IS THEN THE NUMBER OF NON-ZERO
+!         ELEMENTS OF THE MATRIX A.
+!       NDEG IS AN INTEGER INPUT ARRAY OF LENGTH N WHICH SPECIFIES
+!         THE DEGREE SEQUENCE. THE DEGREE OF THE J-TH COLUMN
+!         OF A IS NDEG(J).
+!       LIST IS AN INTEGER OUTPUT ARRAY OF LENGTH N WHICH SPECIFIES
+!         THE INCIDENCE-DEGREE ORDERING OF THE COLUMNS OF A. THE J-TH
+!         COLUMN IN THIS ORDER IS LIST(J).
+!       MAXCLQ IS AN INTEGER OUTPUT VARIABLE SET TO THE SIZE
+!         OF THE LARGEST CLIQUE FOUND DURING THE ORDERING.
+!       IWA1,IWA2,IWA3, AND IWA4 ARE INTEGER WORK ARRAYS OF LENGTH N.
+!     SUBPROGRAMS CALLED
+!       MINPACK-SUPPLIED ... NUMSRT
+!       INTRINSIC ... MAX
+!     ARGONNE NATIONAL LABORATORY. MINPACK PROJECT. JULY 1983.
+!     THOMAS F. COLEMAN, BURTON S. GARBOW, JORGE J. MORE'
+
+     IMPLICIT NONE
+
+! .. Scalar Arguments ..
+      INTEGER :: M, MAXCLQ, N
+! ..
+! .. Array Arguments ..
+      INTEGER :: INDCOL(*), INDROW(*), IPNTR(M+1), IWA1(0:N-1), IWA2(N), &
+        IWA3(N), IWA4(N), JPNTR(N+1), LIST(N), NDEG(N)
+! ..
+! .. Local Scalars ..
+      INTEGER :: IC, IP, IR, JCOL, JP, MAXINC, MAXLST, NCOMP, NUMINC, NUMLST, &
+        NUMORD, NUMWGT
+! ..
+! .. External Subroutines ..
+!     EXTERNAL NUMSRT
+! ..
+! .. Intrinsic Functions ..
+      INTRINSIC MAX
+! ..
+! ..  FIRST EXECUTABLE STATEMENT IDO
+! ..
+!     SORT THE DEGREE SEQUENCE.
+      CALL NUMSRT(N,N-1,NDEG,-1,IWA4,IWA2,IWA3)
+
+!     INITIALIZATION BLOCK.
+
+!     CREATE A DOUBLY-LINKED LIST TO ACCESS THE INCIDENCES OF THE
+!     COLUMNS. THE POINTERS FOR THE LINKED LIST ARE AS FOLLOWS.
+
+!     EACH UNORDERED COLUMN IC IS IN A LIST (THE INCIDENCE LIST)
+!     OF COLUMNS WITH THE SAME INCIDENCE.
+
+!     IWA1(NUMINC) IS THE FIRST COLUMN IN THE NUMINC LIST
+!     UNLESS IWA1(NUMINC) = 0. IN THIS CASE THERE ARE
+!     NO COLUMNS IN THE NUMINC LIST.
+
+!     IWA2(IC) IS THE COLUMN BEFORE IC IN THE INCIDENCE LIST
+!     UNLESS IWA2(IC) = 0. IN THIS CASE IC IS THE FIRST
+!     COLUMN IN THIS INCIDENCE LIST.
+
+!     IWA3(IC) IS THE COLUMN AFTER IC IN THE INCIDENCE LIST
+!     UNLESS IWA3(IC) = 0. IN THIS CASE IC IS THE LAST
+!     COLUMN IN THIS INCIDENCE LIST.
+
+!     IF IC IS AN UN-ORDERED COLUMN, THEN LIST(IC) IS THE
+!     INCIDENCE OF IC TO THE GRAPH INDUCED BY THE ORDERED
+!     COLUMNS. IF JCOL IS AN ORDERED COLUMN, THEN LIST(JCOL)
+!     IS THE INCIDENCE-DEGREE ORDER OF COLUMN JCOL.
+
+      MAXINC = 0
+      DO JP = N, 1, -1
+        IC = IWA4(JP)
+        IWA1(N-JP) = 0
+        IWA2(IC) = 0
+        IWA3(IC) = IWA1(0)
+        IF (IWA1(0) > 0) IWA2(IWA1(0)) = IC
+        IWA1(0) = IC
+        IWA4(JP) = 0
+        LIST(JP) = 0
+      END DO
+
+!     DETERMINE THE MAXIMAL SEARCH LENGTH FOR THE LIST
+!     OF COLUMNS OF MAXIMAL INCIDENCE.
+      MAXLST = 0
+      DO IR = 1, M
+        MAXLST = MAXLST + (IPNTR(IR+1)-IPNTR(IR))**2
+      END DO
+      MAXLST = MAXLST/N
+      MAXCLQ = 0
+      NUMORD = 1
+
+!     BEGINNING OF ITERATION LOOP.
+
+30    CONTINUE
+
+!     UPDATE THE SIZE OF THE LARGEST CLIQUE
+!     FOUND DURING THE ORDERING.
+      IF (MAXINC == 0) NCOMP = 0
+      NCOMP = NCOMP + 1
+      IF (MAXINC+1 == NCOMP) MAXCLQ = MAX(MAXCLQ,NCOMP)
+
+!     CHOOSE A COLUMN JCOL OF MAXIMAL DEGREE AMONG THE
+!     COLUMNS OF MAXIMAL INCIDENCE MAXINC.
+40    CONTINUE
+      JP = IWA1(MAXINC)
+      IF (JP > 0) GOTO 50
+      MAXINC = MAXINC - 1
+      GOTO 40
+50    CONTINUE
+      NUMWGT = -1
+      DO NUMLST = 1, MAXLST
+        IF (NDEG(JP) > NUMWGT) THEN
+          NUMWGT = NDEG(JP)
+          JCOL = JP
+        END IF
+        JP = IWA3(JP)
+        IF (JP <= 0) GOTO 70
+      END DO
+70    CONTINUE
+      LIST(JCOL) = NUMORD
+      NUMORD = NUMORD + 1
+
+!     TERMINATION TEST.
+      IF (NUMORD > N) GOTO 100
+
+!     DELETE COLUMN JCOL FROM THE MAXINC LIST.
+      IF (IWA2(JCOL) == 0) THEN
+        IWA1(MAXINC) = IWA3(JCOL)
+      ELSE
+        IWA3(IWA2(JCOL)) = IWA3(JCOL)
+      END IF
+      IF (IWA3(JCOL) > 0) IWA2(IWA3(JCOL)) = IWA2(JCOL)
+
+!     FIND ALL COLUMNS ADJACENT TO COLUMN JCOL.
+      IWA4(JCOL) = N
+
+!     DETERMINE ALL POSITIONS(IR,JCOL) WHICH CORRESPOND
+!     TO NON-ZEROES IN THE MATRIX.
+      DO JP = JPNTR(JCOL), JPNTR(JCOL+1) - 1
+        IR = INDROW(JP)
+!       FOR EACH ROW IR, DETERMINE ALL POSITIONS(IR,IC)
+!       WHICH CORRESPOND TO NON-ZEROES IN THE MATRIX.
+        DO IP = IPNTR(IR), IPNTR(IR+1) - 1
+          IC = INDCOL(IP)
+!         ARRAY IWA4 MARKS COLUMNS WHICH ARE ADJACENT TO
+!         COLUMN JCOL.
+          IF (IWA4(IC) < NUMORD) THEN
+            IWA4(IC) = NUMORD
+!           UPDATE THE POINTERS TO THE CURRENT INCIDENCE LISTS.
+            NUMINC = LIST(IC)
+            LIST(IC) = LIST(IC) + 1
+            MAXINC = MAX(MAXINC,LIST(IC))
+!           DELETE COLUMN IC FROM THE NUMINC LIST.
+            IF (IWA2(IC) == 0) THEN
+              IWA1(NUMINC) = IWA3(IC)
+            ELSE
+              IWA3(IWA2(IC)) = IWA3(IC)
+            END IF
+            IF (IWA3(IC) > 0) IWA2(IWA3(IC)) = IWA2(IC)
+!           ADD COLUMN IC TO THE NUMINC+1 LIST.
+            IWA2(IC) = 0
+            IWA3(IC) = IWA1(NUMINC+1)
+            IF (IWA1(NUMINC+1) > 0) IWA2(IWA1(NUMINC+1)) = IC
+            IWA1(NUMINC+1) = IC
+          END IF
+        END DO
+      END DO
+!     END OF ITERATION LOOP.
+      GOTO 30
+100   CONTINUE
+!     INVERT THE ARRAY LIST.
+      DO JCOL = 1, N
+        IWA2(LIST(JCOL)) = JCOL
+      END DO
+      LIST(1:N) = IWA2(1:N)
+      RETURN
+
+    END SUBROUTINE IDO
+!_______________________________________________________________________
+
+    SUBROUTINE NUMSRT(N,NMAX,NUM,MODE,INDEX,LAST,NEXT)
+
+!     GIVEN A SEQUENCE OF INTEGERS, THIS SUBROUTINE GROUPS TOGETHER THOSE
+!     INDICES WITH THE SAME SEQUENCE VALUE AND, OPTIONALLY, SORTS THE
+!     SEQUENCE INTO EITHER ASCENDING OR DESCENDING ORDER. THE SEQUENCE
+!     OF INTEGERS IS DEFINED BY THE ARRAY NUM, AND IT IS ASSUMED THAT THE
+!     INTEGERS ARE EACH FROM THE SET 0,1,...,NMAX. ON OUTPUT THE INDICES
+!     K SUCH THAT NUM(K) = L FOR ANY L = 0,1,...,NMAX CAN BE OBTAINED
+!     FROM THE ARRAYS LAST AND NEXT AS FOLLOWS.
+!           K = LAST(L)
+!           WHILE(K /= 0) K = NEXT(K)
+!     OPTIONALLY, THE SUBROUTINE PRODUCES AN ARRAY INDEX SO THAT
+!     THE SEQUENCE NUM(INDEX(I)), I = 1,2,...,N IS SORTED.
+!     THE SUBROUTINE STATEMENT IS
+!       SUBROUTINE NUMSRT(N,NMAX,NUM,MODE,INDEX,LAST,NEXT)
+!     WHERE
+!       N IS A POSITIVE INTEGER INPUT VARIABLE.
+!       NMAX IS A POSITIVE INTEGER INPUT VARIABLE.
+!       NUM IS AN INPUT ARRAY OF LENGTH N WHICH CONTAINS THE
+!         SEQUENCE OF INTEGERS TO BE GROUPED AND SORTED. IT
+!         IS ASSUMED THAT THE INTEGERS ARE EACH FROM THE SET
+!         0,1,...,NMAX.
+!       MODE IS AN INTEGER INPUT VARIABLE. THE SEQUENCE NUM IS
+!         SORTED IN ASCENDING ORDER IF MODE IS POSITIVE AND IN
+!         DESCENDING ORDER IF MODE IS NEGATIVE. IF MODE IS 0,
+!         NO SORTING IS DONE.
+!       INDEX IS AN INTEGER OUTPUT ARRAY OF LENGTH N SET SO
+!         THAT THE SEQUENCE
+!               NUM(INDEX(I)), I = 1,2,...,N
+!         IS SORTED ACCORDING TO THE SETTING OF MODE. IF MODE
+!         IS 0, INDEX IS NOT REFERENCED.
+!       LAST IS AN INTEGER OUTPUT ARRAY OF LENGTH NMAX + 1. THE
+!         INDEX OF NUM FOR THE LAST OCCURRENCE OF L IS LAST(L)
+!         FOR ANY L = 0,1,...,NMAX UNLESS LAST(L) = 0. IN
+!         THIS CASE L DOES NOT APPEAR IN NUM.
+!       NEXT IS AN INTEGER OUTPUT ARRAY OF LENGTH N. IF
+!         NUM(K) = L, THEN THE INDEX OF NUM FOR THE PREVIOUS
+!         OCCURRENCE OF L IS NEXT(K) FOR ANY L = 0,1,...,NMAX
+!         UNLESS NEXT(K) = 0. IN THIS CASE THERE IS NO PREVIOUS
+!         OCCURRENCE OF L IN NUM.
+!     ARGONNE NATIONAL LABORATORY. MINPACK PROJECT. JULY 1983.
+!     THOMAS F. COLEMAN, BURTON S. GARBOW, JORGE J. MORE'
+
+      IMPLICIT NONE
+
+! .. Scalar Arguments ..
+      INTEGER :: MODE, N, NMAX
+! ..
+! .. Array Arguments ..
+      INTEGER :: INDEX(N), LAST(0:NMAX), NEXT(N), NUM(N)
+! ..
+! .. Local Scalars ..
+      INTEGER :: I, J, JINC, JL, JU, K, L
+! ..
+! ..  FIRST EXECUTABLE STATEMENT NUMSRT
+! ..
+!     DETERMINE THE ARRAYS NEXT AND LAST.
+      LAST(0:NMAX) = 0
+      DO K = 1, N
+        L = NUM(K)
+        NEXT(K) = LAST(L)
+        LAST(L) = K
+      END DO
+      IF (MODE == 0) RETURN
+
+!     STORE THE POINTERS TO THE SORTED ARRAY IN INDEX.
+      I = 1
+      IF (MODE > 0) THEN
+        JL = 0
+        JU = NMAX
+        JINC = 1
+      ELSE
+        JL = NMAX
+        JU = 0
+        JINC = -1
+      END IF
+      DO J = JL, JU, JINC
+        K = LAST(J)
+30      CONTINUE
+        IF (K == 0) GOTO 40
+        INDEX(I) = K
+        I = I + 1
+        K = NEXT(K)
+        GOTO 30
+40      CONTINUE
+      END DO
+      RETURN
+
+    END SUBROUTINE NUMSRT
+!_______________________________________________________________________
+
+    SUBROUTINE SEQ(N,INDROW,JPNTR,INDCOL,IPNTR,LIST,NGRP,MAXGRP,IWA)
+
+!     GIVEN THE SPARSITY PATTERN OF AN M BY N MATRIX A, THIS
+!     SUBROUTINE DETERMINES A CONSISTENT PARTITION OF THE
+!     COLUMNS OF A BY A SEQUENTIAL ALGORITHM.
+!     A CONSISTENT PARTITION IS DEFINED IN TERMS OF THE LOOPLESS
+!     GRAPH G WITH VERTICES A(J), J = 1,2,...,N WHERE A(J) IS THE
+!     J-TH COLUMN OF A AND WITH EDGE(A(I),A(J)) IF AND ONLY IF
+!     COLUMNS I AND J HAVE A NON-ZERO IN THE SAME ROW POSITION.
+!     A PARTITION OF THE COLUMNS OF A INTO GROUPS IS CONSISTENT
+!     IF THE COLUMNS IN ANY GROUP ARE NOT ADJACENT IN THE GRAPH G.
+!     IN GRAPH-THEORY TERMINOLOGY, A CONSISTENT PARTITION OF THE
+!     COLUMNS OF A CORRESPONDS TO A COLORING OF THE GRAPH G.
+!     THE SUBROUTINE EXAMINES THE COLUMNS IN THE ORDER SPECIFIED
+!     BY THE ARRAY LIST, AND ASSIGNS THE CURRENT COLUMN TO THE
+!     GROUP WITH THE SMALLEST POSSIBLE NUMBER.
+!     NOTE THAT THE VALUE OF M IS NOT NEEDED BY SEQ AND IS
+!     THEREFORE NOT PRESENT IN THE SUBROUTINE STATEMENT.
+!     THE SUBROUTINE STATEMENT IS
+!     SUBROUTINE SEQ(N,INDROW,JPNTR,INDCOL,IPNTR,LIST,NGRP,MAXGRP,IWA)
+!     WHERE
+!       N IS A POSITIVE INTEGER INPUT VARIABLE SET TO THE NUMBER
+!         OF COLUMNS OF A.
+!       INDROW IS AN INTEGER INPUT ARRAY WHICH CONTAINS THE ROW
+!         INDICES FOR THE NON-ZEROES IN THE MATRIX A.
+!       JPNTR IS AN INTEGER INPUT ARRAY OF LENGTH N + 1 WHICH
+!         SPECIFIES THE LOCATIONS OF THE ROW INDICES IN INDROW.
+!         THE ROW INDICES FOR COLUMN J ARE
+!               INDROW(K), K = JPNTR(J),...,JPNTR(J+1)-1.
+!         NOTE THAT JPNTR(N+1)-1 IS THEN THE NUMBER OF NON-ZERO
+!         ELEMENTS OF THE MATRIX A.
+!       INDCOL IS AN INTEGER INPUT ARRAY WHICH CONTAINS THE
+!         COLUMN INDICES FOR THE NON-ZEROES IN THE MATRIX A.
+!       IPNTR IS AN INTEGER INPUT ARRAY OF LENGTH M + 1 WHICH
+!         SPECIFIES THE LOCATIONS OF THE COLUMN INDICES IN INDCOL.
+!         THE COLUMN INDICES FOR ROW I ARE
+!               INDCOL(K), K = IPNTR(I),...,IPNTR(I+1)-1.
+!         NOTE THAT IPNTR(M+1)-1 IS THEN THE NUMBER OF NON-ZERO
+!         ELEMENTS OF THE MATRIX A.
+!       LIST IS AN INTEGER INPUT ARRAY OF LENGTH N WHICH SPECIFIES
+!         THE ORDER TO BE USED BY THE SEQUENTIAL ALGORITHM.
+!         THE J-TH COLUMN IN THIS ORDER IS LIST(J).
+!       NGRP IS AN INTEGER OUTPUT ARRAY OF LENGTH N WHICH SPECIFIES
+!         THE PARTITION OF THE COLUMNS OF A. COLUMN JCOL BELONGS
+!         TO GROUP NGRP(JCOL).
+!       MAXGRP IS AN INTEGER OUTPUT VARIABLE WHICH SPECIFIES THE
+!         NUMBER OF GROUPS IN THE PARTITION OF THE COLUMNS OF A.
+!       IWA IS AN INTEGER WORK ARRAY OF LENGTH N.
+!     ARGONNE NATIONAL LABORATORY. MINPACK PROJECT. JULY 1983.
+!     THOMAS F. COLEMAN, BURTON S. GARBOW, JORGE J. MORE'
+
+     IMPLICIT NONE
+
+! .. Scalar Arguments ..
+      INTEGER :: MAXGRP, N
+! ..
+! .. Array Arguments ..
+      INTEGER :: INDCOL(*), INDROW(*), IPNTR(*), IWA(N), JPNTR(N+1), &
+        LIST(N), NGRP(N)
+! ..
+! .. Local Scalars ..
+      INTEGER :: IC, IP, IR, J, JCOL, JP
+! ..
+! ..  FIRST EXECUTABLE STATEMENT SEQ
+! ..
+!     INITIALIZATION BLOCK.
+      MAXGRP = 0
+      NGRP(1:N) = N
+      IWA(1:N) = 0
+
+!     BEGINNING OF ITERATION LOOP.
+
+      DO J = 1, N
+        JCOL = LIST(J)
+!       FIND ALL COLUMNS ADJACENT TO COLUMN JCOL.
+!       DETERMINE ALL POSITIONS (IR,JCOL) WHICH CORRESPOND
+!       TO NON-ZEROES IN THE MATRIX.
+        DO JP = JPNTR(JCOL), JPNTR(JCOL+1) - 1
+          IR = INDROW(JP)
+!         FOR EACH ROW IR, DETERMINE ALL POSITIONS (IR,IC)
+!         WHICH CORRESPOND TO NON-ZEROES IN THE MATRIX.
+          DO IP = IPNTR(IR), IPNTR(IR+1) - 1
+            IC = INDCOL(IP)
+!           ARRAY IWA MARKS THE GROUP NUMBERS OF THE
+!           COLUMNS WHICH ARE ADJACENT TO COLUMN JCOL.
+            IWA(NGRP(IC)) = J
+          END DO
+        END DO
+!       ASSIGN THE SMALLEST UN-MARKED GROUP NUMBER TO JCOL.
+        DO JP = 1, MAXGRP
+          IF (IWA(JP)/=J) GOTO 50
+        END DO
+        MAXGRP = MAXGRP + 1
+50      CONTINUE
+        NGRP(JCOL) = JP
+      END DO
+
+!     END OF ITERATION LOOP.
+
+      RETURN
+
+    END SUBROUTINE SEQ
+!_______________________________________________________________________
+
+    SUBROUTINE SETR(M,N,INDROW,JPNTR,INDCOL,IPNTR,IWA)
+
+!     GIVEN A COLUMN-ORIENTED DEFINITION OF THE SPARSITY PATTERN
+!     OF AN M BY N MATRIX A, THIS SUBROUTINE DETERMINES A
+!     ROW-ORIENTED DEFINITION OF THE SPARSITY PATTERN OF A.
+!     ON INPUT THE COLUMN-ORIENTED DEFINITION IS SPECIFIED BY
+!     THE ARRAYS INDROW AND JPNTR. ON OUTPUT THE ROW-ORIENTED
+!     DEFINITION IS SPECIFIED BY THE ARRAYS INDCOL AND IPNTR.
+!     THE SUBROUTINE STATEMENT IS
+!       SUBROUTINE SETR(M,N,INDROW,JPNTR,INDCOL,IPNTR,IWA)
+!     WHERE
+!       M IS A POSITIVE INTEGER INPUT VARIABLE SET TO THE NUMBER
+!         OF ROWS OF A.
+!       N IS A POSITIVE INTEGER INPUT VARIABLE SET TO THE NUMBER
+!         OF COLUMNS OF A.
+!       INDROW IS AN INTEGER INPUT ARRAY WHICH CONTAINS THE ROW
+!         INDICES FOR THE NON-ZEROES IN THE MATRIX A.
+!       JPNTR IS AN INTEGER INPUT ARRAY OF LENGTH N + 1 WHICH
+!         SPECIFIES THE LOCATIONS OF THE ROW INDICES IN INDROW.
+!         THE ROW INDICES FOR COLUMN J ARE
+!               INDROW(K), K = JPNTR(J),...,JPNTR(J+1)-1.
+!         NOTE THAT JPNTR(N+1)-1 IS THEN THE NUMBER OF NON-ZERO
+!         ELEMENTS OF THE MATRIX A.
+!       INDCOL IS AN INTEGER OUTPUT ARRAY WHICH CONTAINS THE
+!         COLUMN INDICES FOR THE NON-ZEROES IN THE MATRIX A.
+!       IPNTR IS AN INTEGER OUTPUT ARRAY OF LENGTH M + 1 WHICH
+!         SPECIFIES THE LOCATIONS OF THE COLUMN INDICES IN INDCOL.
+!         THE COLUMN INDICES FOR ROW I ARE
+!               INDCOL(K), K = IPNTR(I),...,IPNTR(I+1)-1.
+!         NOTE THAT IPNTR(1) IS SET TO 1 AND THAT IPNTR(M+1)-1 IS
+!         THEN THE NUMBER OF NON-ZERO ELEMENTS OF THE MATRIX A.
+!       IWA IS AN INTEGER WORK ARRAY OF LENGTH M.
+!     ARGONNE NATIONAL LABORATORY. MINPACK PROJECT. JULY 1983.
+!     THOMAS F. COLEMAN, BURTON S. GARBOW, JORGE J. MORE'
+
+     IMPLICIT NONE
+
+! .. Scalar Arguments ..
+      INTEGER :: M, N
+! ..
+! .. Array Arguments ..
+      INTEGER :: INDCOL(*), INDROW(*), IPNTR(M+1), IWA(M), JPNTR(N+1)
+! ..
+! .. Local Scalars ..
+      INTEGER :: IR, JCOL, JP
+! ..
+! ..  FIRST EXECUTABLE STATEMENT SETR
+! ..
+!     STORE IN ARRAY IWA THE COUNTS OF NON-ZEROES IN THE ROWS.
+      IWA(1:M) = 0
+      DO JP = 1, JPNTR(N+1) - 1
+        IWA(INDROW(JP)) = IWA(INDROW(JP)) + 1
+      END DO
+
+!     SET POINTERS TO THE START OF THE ROWS IN INDCOL.
+      IPNTR(1) = 1
+      DO IR = 1, M
+        IPNTR(IR+1) = IPNTR(IR) + IWA(IR)
+        IWA(IR) = IPNTR(IR)
+      END DO
+
+!     FILL INDCOL.
+      DO JCOL = 1, N
+        DO JP = JPNTR(JCOL), JPNTR(JCOL+1) - 1
+          IR = INDROW(JP)
+          INDCOL(IWA(IR)) = JCOL
+          IWA(IR) = IWA(IR) + 1
+        END DO
+      END DO
+      RETURN
+
+    END SUBROUTINE SETR
+!_______________________________________________________________________
+
+    SUBROUTINE SLO(N,INDROW,JPNTR,INDCOL,IPNTR,NDEG,LIST,MAXCLQ,IWA1,IWA2, &
+        IWA3,IWA4)
+
+!     GIVEN THE SPARSITY PATTERN OF AN M BY N MATRIX A, THIS
+!     SUBROUTINE DETERMINES THE SMALLEST-LAST ORDERING OF THE
+!     COLUMNS OF A.
+!     THE SMALLEST-LAST ORDERING IS DEFINED FOR THE LOOPLESS
+!     GRAPH G WITH VERTICES A(J), J = 1,2,...,N WHERE A(J) IS THE
+!     J-TH COLUMN OF A AND WITH EDGE(A(I),A(J)) IF AND ONLY IF
+!     COLUMNS I AND J HAVE A NON-ZERO IN THE SAME ROW POSITION.
+!     THE SMALLEST-LAST ORDERING IS DETERMINED RECURSIVELY BY
+!     LETTING LIST(K), K = N,...,1 BE A COLUMN WITH LEAST DEGREE
+!     IN THE SUBGRAPH SPANNED BY THE UN-ORDERED COLUMNS.
+!     NOTE THAT THE VALUE OF M IS NOT NEEDED BY SLO AND IS
+!     THEREFORE NOT PRESENT IN THE SUBROUTINE STATEMENT.
+!     THE SUBROUTINE STATEMENT IS
+!     SUBROUTINE SLO(N,INDROW,JPNTR,INDCOL,IPNTR,NDEG,LIST, &
+!                    MAXCLQ,IWA1,IWA2,IWA3,IWA4)
+!     WHERE
+!       N IS A POSITIVE INTEGER INPUT VARIABLE SET TO THE NUMBER
+!         OF COLUMNS OF A.
+!       INDROW IS AN INTEGER INPUT ARRAY WHICH CONTAINS THE ROW
+!         INDICES FOR THE NON-ZEROES IN THE MATRIX A.
+!       JPNTR IS AN INTEGER INPUT ARRAY OF LENGTH N + 1 WHICH
+!         SPECIFIES THE LOCATIONS OF THE ROW INDICES IN INDROW.
+!         THE ROW INDICES FOR COLUMN J ARE
+!               INDROW(K), K = JPNTR(J),...,JPNTR(J+1)-1.
+!         NOTE THAT JPNTR(N+1)-1 IS THEN THE NUMBER OF NON-ZERO
+!         ELEMENTS OF THE MATRIX A.
+!       INDCOL IS AN INTEGER INPUT ARRAY WHICH CONTAINS THE
+!         COLUMN INDICES FOR THE NON-ZEROES IN THE MATRIX A.
+!       IPNTR IS AN INTEGER INPUT ARRAY OF LENGTH M + 1 WHICH
+!         SPECIFIES THE LOCATIONS OF THE COLUMN INDICES IN INDCOL.
+!         THE COLUMN INDICES FOR ROW I ARE
+!               INDCOL(K), K = IPNTR(I),...,IPNTR(I+1)-1.
+!         NOTE THAT IPNTR(M+1)-1 IS THEN THE NUMBER OF NON-ZERO
+!         ELEMENTS OF THE MATRIX A.
+!       NDEG IS AN INTEGER INPUT ARRAY OF LENGTH N WHICH SPECIFIES
+!         THE DEGREE SEQUENCE. THE DEGREE OF THE J-TH COLUMN
+!         OF A IS NDEG(J).
+!       LIST IS AN INTEGER OUTPUT ARRAY OF LENGTH N WHICH SPECIFIES
+!         THE SMALLEST-LAST ORDERING OF THE COLUMNS OF A. THE J-TH
+!         COLUMN IN THIS ORDER IS LIST(J).
+!       MAXCLQ IS AN INTEGER OUTPUT VARIABLE SET TO THE SIZE
+!         OF THE LARGEST CLIQUE FOUND DURING THE ORDERING.
+!       IWA1,IWA2,IWA3, AND IWA4 ARE INTEGER WORK ARRAYS OF LENGTH N.
+!     SUBPROGRAMS CALLED
+!       INTRINSIC ... MIN
+!     ARGONNE NATIONAL LABORATORY. MINPACK PROJECT. JULY 1983.
+!     THOMAS F. COLEMAN, BURTON S. GARBOW, JORGE J. MORE'
+
+     IMPLICIT NONE
+
+! .. Scalar Arguments ..
+      INTEGER :: MAXCLQ, N
+! ..
+! .. Array Arguments ..
+      INTEGER :: INDCOL(*), INDROW(*), IPNTR(*), IWA1(0:N-1), IWA2(N), &
+        IWA3(N), IWA4(N), JPNTR(N+1), LIST(N), NDEG(N)
+! ..
+! .. Local Scalars ..
+      INTEGER :: IC, IP, IR, JCOL, JP, MINDEG, NUMDEG, NUMORD
+! ..
+! .. Intrinsic Functions ..
+      INTRINSIC MIN
+! ..
+! ..  FIRST EXECUTABLE STATEMENT SLO
+! ..
+!     INITIALIZATION BLOCK.
+      MINDEG = N
+      DO JP = 1, N
+        IWA1(JP-1) = 0
+        IWA4(JP) = N
+        LIST(JP) = NDEG(JP)
+        MINDEG = MIN(MINDEG,NDEG(JP))
+      END DO
+
+!     CREATE A DOUBLY-LINKED LIST TO ACCESS THE DEGREES OF THE
+!     COLUMNS. THE POINTERS FOR THE LINKED LIST ARE AS FOLLOWS.
+
+!     EACH UN-ORDERED COLUMN IC IS IN A LIST (THE DEGREE LIST)
+!     OF COLUMNS WITH THE SAME DEGREE.
+
+!     IWA1(NUMDEG) IS THE FIRST COLUMN IN THE NUMDEG LIST
+!     UNLESS IWA1(NUMDEG) = 0. IN THIS CASE THERE ARE
+!     NO COLUMNS IN THE NUMDEG LIST.
+
+!     IWA2(IC) IS THE COLUMN BEFORE IC IN THE DEGREE LIST
+!     UNLESS IWA2(IC) = 0. IN THIS CASE IC IS THE FIRST
+!     COLUMN IN THIS DEGREE LIST.
+
+!     IWA3(IC) IS THE COLUMN AFTER IC IN THE DEGREE LIST
+!     UNLESS IWA3(IC) = 0. IN THIS CASE IC IS THE LAST
+!     COLUMN IN THIS DEGREE LIST.
+
+!     IF IC IS AN UN-ORDERED COLUMN, THEN LIST(IC) IS THE
+!     DEGREE OF IC IN THE GRAPH INDUCED BY THE UN-ORDERED
+!     COLUMNS. IF JCOL IS AN ORDERED COLUMN, THEN LIST(JCOL)
+!     IS THE SMALLEST-LAST ORDER OF COLUMN JCOL.
+
+      DO JP = 1, N
+        NUMDEG = NDEG(JP)
+        IWA2(JP) = 0
+        IWA3(JP) = IWA1(NUMDEG)
+        IF (IWA1(NUMDEG) > 0) IWA2(IWA1(NUMDEG)) = JP
+        IWA1(NUMDEG) = JP
+      END DO
+      MAXCLQ = 0
+      NUMORD = N
+
+!     BEGINNING OF ITERATION LOOP.
+
+30    CONTINUE
+
+!     MARK THE SIZE OF THE LARGEST CLIQUE
+!     FOUND DURING THE ORDERING.
+      IF (MINDEG+1 == NUMORD .AND. MAXCLQ == 0) MAXCLQ = NUMORD
+
+!     CHOOSE A COLUMN JCOL OF MINIMAL DEGREE MINDEG.
+40    CONTINUE
+      JCOL = IWA1(MINDEG)
+      IF (JCOL > 0) GOTO 50
+      MINDEG = MINDEG + 1
+      GOTO 40
+50    CONTINUE
+      LIST(JCOL) = NUMORD
+      NUMORD = NUMORD - 1
+
+!     TERMINATION TEST.
+      IF (NUMORD == 0) GOTO 80
+
+!     DELETE COLUMN JCOL FROM THE MINDEG LIST.
+      IWA1(MINDEG) = IWA3(JCOL)
+      IF (IWA3(JCOL) > 0) IWA2(IWA3(JCOL)) = 0
+
+!     FIND ALL COLUMNS ADJACENT TO COLUMN JCOL.
+      IWA4(JCOL) = 0
+
+!     DETERMINE ALL POSITIONS (IR,JCOL) WHICH CORRESPOND
+!     TO NON-ZEROES IN THE MATRIX.
+      DO JP = JPNTR(JCOL), JPNTR(JCOL+1) - 1
+        IR = INDROW(JP)
+!       FOR EACH ROW IR, DETERMINE ALL POSITIONS (IR,IC)
+!       WHICH CORRESPOND TO NON-ZEROES IN THE MATRIX.
+        DO IP = IPNTR(IR), IPNTR(IR+1) - 1
+          IC = INDCOL(IP)
+!         ARRAY IWA4 MARKS COLUMNS WHICH ARE ADJACENT TO
+!         COLUMN JCOL.
+
+          IF (IWA4(IC) > NUMORD) THEN
+            IWA4(IC) = NUMORD
+!           UPDATE THE POINTERS TO THE CURRENT DEGREE LISTS.
+            NUMDEG = LIST(IC)
+            LIST(IC) = LIST(IC) - 1
+            MINDEG = MIN(MINDEG,LIST(IC))
+!           DELETE COLUMN IC FROM THE NUMDEG LIST.
+            IF (IWA2(IC) == 0) THEN
+              IWA1(NUMDEG) = IWA3(IC)
+            ELSE
+              IWA3(IWA2(IC)) = IWA3(IC)
+            END IF
+            IF (IWA3(IC) > 0) IWA2(IWA3(IC)) = IWA2(IC)
+!           ADD COLUMN IC TO THE NUMDEG-1 LIST.
+            IWA2(IC) = 0
+            IWA3(IC) = IWA1(NUMDEG-1)
+            IF (IWA1(NUMDEG-1) > 0) IWA2(IWA1(NUMDEG-1)) = IC
+            IWA1(NUMDEG-1) = IC
+          END IF
+        END DO
+      END DO
+!     END OF ITERATION LOOP.
+
+      GOTO 30
+80    CONTINUE
+
+!     INVERT THE ARRAY LIST.
+      DO JCOL = 1, N
+        IWA2(LIST(JCOL)) = JCOL
+      END DO
+      LIST(1:N) = IWA2(1:N)
+      RETURN
+
+    END SUBROUTINE SLO
+!_______________________________________________________________________
+
+    SUBROUTINE SRTDAT(N,NNZ,INDROW,INDCOL,JPNTR,IWA)
+
+!     GIVEN THE NON-ZERO ELEMENTS OF AN M BY N MATRIX A IN ARBITRARY
+!     ORDER AS SPECIFIED BY THEIR ROW AND COLUMN INDICES, THIS SUBROUTINE
+!     PERMUTES THESE ELEMENTS SO THAT THEIR COLUMN INDICES ARE IN
+!     NON-DECREASING ORDER. ON INPUT IT IS ASSUMED THAT THE ELEMENTS ARE
+!     SPECIFIED IN
+!           INDROW(K),INDCOL(K), K = 1,...,NNZ.
+!     ON OUTPUT THE ELEMENTS ARE PERMUTED SO THAT INDCOL IS IN
+!     NON-DECREASING ORDER. IN ADDITION, THE ARRAY JPNTR IS SET SO THAT
+!     THE ROW INDICES FOR COLUMN J ARE
+!           INDROW(K), K = JPNTR(J),...,JPNTR(J+1)-1.
+!     NOTE THAT THE VALUE OF M IS NOT NEEDED BY SRTDAT AND IS THEREFORE
+!     NOT PRESENT IN THE SUBROUTINE STATEMENT.
+!     THE SUBROUTINE STATEMENT IS
+!       SUBROUTINE SRTDAT(N,NNZ,INDROW,INDCOL,JPNTR,IWA)
+!     WHERE
+!       N IS A POSITIVE INTEGER INPUT VARIABLE SET TO THE NUMBER
+!         OF COLUMNS OF A.
+!       NNZ IS A POSITIVE INTEGER INPUT VARIABLE SET TO THE NUMBER
+!         OF NON-ZERO ELEMENTS OF A.
+!       INDROW IS AN INTEGER ARRAY OF LENGTH NNZ. ON INPUT INDROW
+!         MUST CONTAIN THE ROW INDICES OF THE NON-ZERO ELEMENTS OF A.
+!         ON OUTPUT INDROW IS PERMUTED SO THAT THE CORRESPONDING
+!         COLUMN INDICES OF INDCOL ARE IN NON-DECREASING ORDER.
+!       INDCOL IS AN INTEGER ARRAY OF LENGTH NNZ. ON INPUT INDCOL
+!         MUST CONTAIN THE COLUMN INDICES OF THE NON-ZERO ELEMENTS
+!         OF A. ON OUTPUT INDCOL IS PERMUTED SO THAT THESE INDICES
+!         ARE IN NON-DECREASING ORDER.
+!       JPNTR IS AN INTEGER OUTPUT ARRAY OF LENGTH N + 1 WHICH
+!         SPECIFIES THE LOCATIONS OF THE ROW INDICES IN THE OUTPUT
+!         INDROW. THE ROW INDICES FOR COLUMN J ARE
+!               INDROW(K), K = JPNTR(J),...,JPNTR(J+1)-1.
+!         NOTE THAT JPNTR(1) IS SET TO 1 AND THAT JPNTR(N+1)-1
+!         IS THEN NNZ.
+!       IWA IS AN INTEGER WORK ARRAY OF LENGTH N.
+!     SUBPROGRAMS CALLED - NONE
+!     INTRINSIC - MAX
+!     ARGONNE NATIONAL LABORATORY. MINPACK PROJECT. JULY 1983.
+!     THOMAS F. COLEMAN, BURTON S. GARBOW, JORGE J. MORE'
+
+     IMPLICIT NONE
+
+! .. Scalar Arguments ..
+      INTEGER :: N, NNZ
+! ..
+! .. Array Arguments ..
+      INTEGER :: INDCOL(NNZ), INDROW(NNZ), IWA(N), JPNTR(N+1)
+! ..
+! .. Local Scalars ..
+      INTEGER :: I, J, K, L
+! ..
+! .. Intrinsic Functions ..
+      INTRINSIC MAX
+! ..
+! ..  FIRST EXECUTABLE STATEMENT SRTDAT
+! ..
+!     STORE IN ARRAY IWA THE COUNTS OF NON-ZEROES IN THE COLUMNS.
+      IWA(1:N) = 0
+      DO K = 1, NNZ
+        IWA(INDCOL(K)) = IWA(INDCOL(K)) + 1
+      END DO
+
+!     SET POINTERS TO THE START OF THE COLUMNS IN INDROW.
+      JPNTR(1) = 1
+      DO J = 1, N
+        JPNTR(J+1) = JPNTR(J) + IWA(J)
+        IWA(J) = JPNTR(J)
+      END DO
+      K = 1
+
+!     BEGIN IN-PLACE SORT.
+40    CONTINUE
+      J = INDCOL(K)
+      IF (K >= JPNTR(J)) THEN
+!        CURRENT ELEMENT IS IN POSITION. NOW EXAMINE THE
+!        NEXT ELEMENT OR THE FIRST UN-SORTED ELEMENT IN
+!        THE J-TH GROUP.
+        K = MAX(K+1,IWA(J))
+      ELSE
+!       CURRENT ELEMENT IS NOT IN POSITION. PLACE ELEMENT
+!       IN POSITION AND MAKE THE DISPLACED ELEMENT THE
+!       CURRENT ELEMENT.
+        L = IWA(J)
+        IWA(J) = IWA(J) + 1
+        I = INDROW(K)
+        INDROW(K) = INDROW(L)
+        INDCOL(K) = INDCOL(L)
+        INDROW(L) = I
+        INDCOL(L) = J
+      END IF
+      IF (K <= NNZ) GOTO 40
+      RETURN
+
+    END SUBROUTINE SRTDAT
+!_______________________________________________________________________
+
+    SUBROUTINE FDJS(M,N,COL,IND,NPNTR,NGRP,NUMGRP,D,FJACD,FJAC)
+
+!     GIVEN A CONSISTENT PARTITION OF THE COLUMNS OF AN M BY N
+!     JACOBIAN MATRIX INTO GROUPS, THIS SUBROUTINE COMPUTES
+!     APPROXIMATIONS TO THOSE COLUMNS IN A GIVEN GROUP. THE
+!     APPROXIMATIONS ARE STORED INTO EITHER A COLUMN-ORIENTED
+!     OR A ROW-ORIENTED PATTERN.
+!     A PARTITION IS CONSISTENT IF THE COLUMNS IN ANY GROUP
+!     DO NOT HAVE A NON-ZERO IN THE SAME ROW POSITION.
+!     APPROXIMATIONS TO THE COLUMNS OF THE JACOBIAN MATRIX IN A
+!     GIVEN GROUP CAN BE OBTAINED BY SPECIFYING A DIFFERENCE
+!     PARAMETER ARRAY D WITH D(JCOL) NON-ZERO IF AND ONLY IF
+!     JCOL IS A COLUMN IN THE GROUP, AND AN APPROXIMATION TO
+!     JAC*D WHERE JAC DENOTES THE JACOBIAN MATRIX OF A MAPPING F.
+!     D CAN BE DEFINED WITH THE FOLLOWING SEGMENT OF CODE.
+!           DO 10 JCOL = 1, N
+!             D(JCOL) = 0.0
+!             IF (NGRP(JCOL) == NUMGRP) D(JCOL) = ETA(JCOL)
+!        10 CONTINUE
+!     IN THE ABOVE CODE NUMGRP IS THE GIVEN GROUP NUMBER,
+!     NGRP(JCOL) IS THE GROUP NUMBER OF COLUMN JCOL, AND
+!     ETA(JCOL) IS THE DIFFERENCE PARAMETER USED TO
+!     APPROXIMATE COLUMN JCOL OF THE JACOBIAN MATRIX.
+!     SUITABLE VALUES FOR THE ARRAY ETA MUST BE PROVIDED.
+!     AS MENTIONED ABOVE, AN APPROXIMATION TO JAC*D MUST
+!     ALSO BE PROVIDED. FOR EXAMPLE, THE APPROXIMATION
+!           F(X+D) - F(X)
+!     CORRESPONDS TO THE FORWARD DIFFERENCE FORMULA AT X.
+!     THE SUBROUTINE STATEMENT IS
+!       SUBROUTINE FDJS(M,N,COL,IND,NPNTR,NGRP,NUMGRP,D,FJACD,FJAC)
+!     WHERE
+!       M IS A POSITIVE INTEGER INPUT VARIABLE SET TO THE NUMBER
+!         OF ROWS OF THE JACOBIAN MATRIX.
+!       N IS A POSITIVE INTEGER INPUT VARIABLE SET TO THE NUMBER
+!         OF COLUMNS OF THE JACOBIAN MATRIX.
+!       COL IS A LOGICAL INPUT VARIABLE. IF COL IS SET TRUE, THEN THE
+!         JACOBIAN APPROXIMATIONS ARE STORED INTO A COLUMN-ORIENTED
+!         PATTERN. IF COL IS SET FALSE, THEN THE JACOBIAN
+!         APPROXIMATIONS ARE STORED INTO A ROW-ORIENTED PATTERN.
+!       IND IS AN INTEGER INPUT ARRAY WHICH CONTAINS THE ROW
+!         INDICES FOR THE NON-ZEROES IN THE JACOBIAN MATRIX
+!         IF COL IS TRUE, AND CONTAINS THE COLUMN INDICES FOR
+!         THE NON-ZEROES IN THE JACOBIAN MATRIX IF COL IS FALSE.
+!       NPNTR IS AN INTEGER INPUT ARRAY WHICH SPECIFIES THE
+!         LOCATIONS OF THE ROW INDICES IN IND IF COL IS TRUE, AND
+!         SPECIFIES THE LOCATIONS OF THE COLUMN INDICES IN IND IF
+!         COL IS FALSE. IF COL IS TRUE, THE INDICES FOR COLUMN J ARE
+!               IND(K), K = NPNTR(J),...,NPNTR(J+1)-1.
+!         IF COL IS FALSE, THE INDICES FOR ROW I ARE
+!               IND(K), K = NPNTR(I),...,NPNTR(I+1)-1.
+!         NOTE THAT NPNTR(N+1)-1 IF COL IS TRUE, OR NPNTR(M+1)-1
+!         IF COL IS FALSE, IS THEN THE NUMBER OF NON-ZERO ELEMENTS
+!         OF THE JACOBIAN MATRIX.
+!       NGRP IS AN INTEGER INPUT ARRAY OF LENGTH N WHICH SPECIFIES
+!         THE PARTITION OF THE COLUMNS OF THE JACOBIAN MATRIX.
+!         COLUMN JCOL BELONGS TO GROUP NGRP(JCOL).
+!       NUMGRP IS A POSITIVE INTEGER INPUT VARIABLE SET TO A GROUP
+!         NUMBER IN THE PARTITION. THE COLUMNS OF THE JACOBIAN
+!         MATRIX IN THIS GROUP ARE TO BE ESTIMATED ON THIS CALL.
+!       D IS AN INPUT ARRAY OF LENGTH N WHICH CONTAINS THE
+!         DIFFERENCE PARAMETER VECTOR FOR THE ESTIMATE OF
+!         THE JACOBIAN MATRIX COLUMNS IN GROUP NUMGRP.
+!       FJACD IS AN INPUT ARRAY OF LENGTH M WHICH CONTAINS
+!         AN APPROXIMATION TO THE DIFFERENCE VECTOR JAC*D,
+!         WHERE JAC DENOTES THE JACOBIAN MATRIX.
+!       FJAC IS AN OUTPUT ARRAY OF LENGTH NNZ, WHERE NNZ IS THE
+!         NUMBER OF ITS NON-ZERO ELEMENTS. AT EACH CALL OF FDJS,
+!         FJAC IS UPDATED TO INCLUDE THE NON-ZERO ELEMENTS OF THE
+!         JACOBIAN MATRIX FOR THOSE COLUMNS IN GROUP NUMGRP. FJAC
+!         SHOULD NOT BE ALTERED BETWEEN SUCCESSIVE CALLS TO FDJS.
+!     ARGONNE NATIONAL LABORATORY. MINPACK PROJECT. JULY 1983.
+!     THOMAS F. COLEMAN, BURTON S. GARBOW, JORGE J. MORE'
+
+     IMPLICIT NONE
+
+! .. Parameters ..
+      INTEGER, PARAMETER :: WP = KIND(0.0D0)
+! ..
+! .. Scalar Arguments ..
+      INTEGER :: M, N, NUMGRP
+      LOGICAL :: COL
+! ..
+! .. Array Arguments ..
+      KPP_REAL :: D(N), FJAC(*), FJACD(M)
+      INTEGER :: IND(*), NGRP(N), NPNTR(*)
+! ..
+! .. Local Scalars ..
+      INTEGER :: IP, IROW, JCOL, JP
+! ..
+! .. Intrinsic Functions ..
+!     INTRINSIC KIND
+! ..
+! ..  FIRST EXECUTABLE STATEMENT FDJS
+! ..
+!     COMPUTE ESTIMATES OF JACOBIAN MATRIX COLUMNS IN GROUP
+!     NUMGRP. THE ARRAY FJACD MUST CONTAIN AN APPROXIMATION
+!     TO JAC*D, WHERE JAC DENOTES THE JACOBIAN MATRIX AND D
+!     IS A DIFFERENCE PARAMETER VECTOR WITH D(JCOL) NON-ZERO
+!     IF AND ONLY IF JCOL IS A COLUMN IN GROUP NUMGRP.
+      IF (COL) THEN
+!       COLUMN ORIENTATION.
+        DO JCOL = 1, N
+          IF (NGRP(JCOL) == NUMGRP) THEN
+            DO JP = NPNTR(JCOL), NPNTR(JCOL+1) - 1
+              IROW = IND(JP)
+              FJAC(JP) = FJACD(IROW)/D(JCOL)
+            END DO
+          END IF
+        END DO
+      ELSE
+!       ROW ORIENTATION.
+        DO IROW = 1, M
+          DO IP = NPNTR(IROW), NPNTR(IROW+1) - 1
+            JCOL = IND(IP)
+            IF (NGRP(JCOL) == NUMGRP) THEN
+              FJAC(IP) = FJACD(IROW)/D(JCOL)
+              GOTO 40
+            END IF
+          END DO
+40        CONTINUE
+        END DO
+      END IF
+      RETURN
+
+    END SUBROUTINE FDJS
+!_______________________________________________________________________
+
+    SUBROUTINE DVDSM(M,N,NPAIRS,INDROW,INDCOL,NGRP,MAXGRP,MINGRP,INFO, &
+        IPNTR, JPNTR,IWA,LIWA)
+
+!     THE PURPOSE OF DSM IS TO DETERMINE AN OPTIMAL OR NEAR-
+!     OPTIMAL CONSISTENT PARTITION OF THE COLUMNS OF A SPARSE
+!     M BY N MATRIX A.
+!     THE SPARSITY PATTERN OF THE MATRIX A IS SPECIFIED BY
+!     THE ARRAYS INDROW AND INDCOL. ON INPUT THE INDICES
+!     FOR THE NON-ZERO ELEMENTS OF A ARE
+!           INDROW(K),INDCOL(K), K = 1,2,...,NPAIRS.
+!     THE(INDROW,INDCOL) PAIRS MAY BE SPECIFIED IN ANY ORDER.
+!     DUPLICATE INPUT PAIRS ARE PERMITTED, BUT THE SUBROUTINE
+!     ELIMINATES THEM.
+!     THE SUBROUTINE PARTITIONS THE COLUMNS OF A INTO GROUPS
+!     SUCH THAT COLUMNS IN THE SAME GROUP DO NOT HAVE A
+!     NON-ZERO IN THE SAME ROW POSITION. A PARTITION OF THE
+!     COLUMNS OF A WITH THIS PROPERTY IS CONSISTENT WITH THE
+!     DIRECT DETERMINATION OF A.
+!     THE SUBROUTINE STATEMENT IS
+!       SUBROUTINE DVDSM(M,N,NPAIRS,INDROW,INDCOL,NGRP,MAXGRP,MINGRP,
+!                      INFO,IPNTR,JPNTR,IWA,LIWA)
+!     WHERE
+!       M IS A POSITIVE INTEGER INPUT VARIABLE SET TO THE NUMBER
+!         OF ROWS OF A.
+!       N IS A POSITIVE INTEGER INPUT VARIABLE SET TO THE NUMBER
+!         OF COLUMNS OF A.
+!       NPAIRS IS A POSITIVE INTEGER INPUT VARIABLE SET TO THE
+!         NUMBER OF (INDROW,INDCOL) PAIRS USED TO DESCRIBE THE
+!         SPARSITY PATTERN OF A.
+!       INDROW IS AN INTEGER ARRAY OF LENGTH NPAIRS. ON INPUT INDROW
+!         MUST CONTAIN THE ROW INDICES OF THE NON-ZERO ELEMENTS OF A.
+!         ON OUTPUT INDROW IS PERMUTED SO THAT THE CORRESPONDING
+!         COLUMN INDICES ARE IN NON-DECREASING ORDER. THE COLUMN
+!         INDICES CAN BE RECOVERED FROM THE ARRAY JPNTR.
+!       INDCOL IS AN INTEGER ARRAY OF LENGTH NPAIRS. ON INPUT INDCOL
+!         MUST CONTAIN THE COLUMN INDICES OF THE NON-ZERO ELEMENTS OF
+!         A. ON OUTPUT INDCOL IS PERMUTED SO THAT THE CORRESPONDING
+!         ROW INDICES ARE IN NON-DECREASING ORDER. THE ROW INDICES
+!         CAN BE RECOVERED FROM THE ARRAY IPNTR.
+!       NGRP IS AN INTEGER OUTPUT ARRAY OF LENGTH N WHICH SPECIFIES
+!         THE PARTITION OF THE COLUMNS OF A. COLUMN JCOL BELONGS
+!         TO GROUP NGRP(JCOL).
+!       MAXGRP IS AN INTEGER OUTPUT VARIABLE WHICH SPECIFIES THE
+!         NUMBER OF GROUPS IN THE PARTITION OF THE COLUMNS OF A.
+!       MINGRP IS AN INTEGER OUTPUT VARIABLE WHICH SPECIFIES A LOWER
+!         BOUND FOR THE NUMBER OF GROUPS IN ANY CONSISTENT PARTITION
+!         OF THE COLUMNS OF A.
+!       INFO IS AN INTEGER OUTPUT VARIABLE SET AS FOLLOWS. FOR
+!         NORMAL TERMINATION INFO = 1. IF M, N, OR NPAIRS IS NOT
+!         POSITIVE OR LIWA IS LESS THAN MAX(M,6*N), THEN INFO = 0.
+!         IF THE K-TH ELEMENT OF INDROW IS NOT AN INTEGER BETWEEN
+!         1 AND M OR THE K-TH ELEMENT OF INDCOL IS NOT AN INTEGER
+!         BETWEEN 1 AND N, THEN INFO = -K.
+!       IPNTR IS AN INTEGER OUTPUT ARRAY OF LENGTH M + 1 WHICH
+!         SPECIFIES THE LOCATIONS OF THE COLUMN INDICES IN INDCOL.
+!         THE COLUMN INDICES FOR ROW I ARE
+!               INDCOL(K), K = IPNTR(I),...,IPNTR(I+1)-1.
+!         NOTE THAT IPNTR(M+1)-1 IS THEN THE NUMBER OF NON-ZERO
+!         ELEMENTS OF THE MATRIX A.
+!       JPNTR IS AN INTEGER OUTPUT ARRAY OF LENGTH N + 1 WHICH
+!         SPECIFIES THE LOCATIONS OF THE ROW INDICES IN INDROW.
+!         THE ROW INDICES FOR COLUMN J ARE
+!               INDROW(K), K = JPNTR(J),...,JPNTR(J+1)-1.
+!         NOTE THAT JPNTR(N+1)-1 IS THEN THE NUMBER OF NON-ZERO
+!         ELEMENTS OF THE MATRIX A.
+!       IWA IS AN INTEGER WORK ARRAY OF LENGTH LIWA.
+!       LIWA IS A POSITIVE INTEGER INPUT VARIABLE NOT LESS THAN
+!         MAX(M,6*N).
+!       MINPACK-SUPPLIED ... DEGR,IDO,NUMSRT,SEQ,SETR,SLO,SRTDAT
+!       INTRINSIC - MAX
+!     ARGONNE NATIONAL LABORATORY. MINPACK PROJECT. JULY 1983.
+!     THOMAS F. COLEMAN, BURTON S. GARBOW, JORGE J. MORE'
+
+     IMPLICIT NONE
+
+! .. Scalar Arguments ..
+      INTEGER :: INFO, LIWA, M, MAXGRP, MINGRP, N, NPAIRS
+! ..
+! .. Array Arguments ..
+      INTEGER :: INDCOL(NPAIRS), INDROW(NPAIRS), IPNTR(M+1), IWA(LIWA), &
+        JPNTR(N+1), NGRP(N)
+! ..
+! .. Local Scalars ..
+      INTEGER :: I, IR, J, JP, K, MAXCLQ, NNZ, NUMGRP
+! ..
+! .. External Subroutines ..
+!     EXTERNAL DEGR, IDO, NUMSRT, SEQ, SETR, SLO, SRTDAT
+! ..
+! .. Intrinsic Functions ..
+      INTRINSIC MAX
+! ..
+! ..  FIRST EXECUTABLE STATEMENT DSM
+! ..
+!     CHECK THE INPUT DATA.
+      INFO = 0
+      IF (M<1 .OR. N<1 .OR. NPAIRS<1 .OR. LIWA<MAX(M,6*N)) RETURN
+      DO K = 1, NPAIRS
+        INFO = -K
+        IF (INDROW(K)<1 .OR. INDROW(K)>M .OR. INDCOL(K)<1 .OR. INDCOL(K)>N) &
+          RETURN
+      END DO
+      INFO = 1
+
+!     SORT THE DATA STRUCTURE BY COLUMNS.
+      CALL SRTDAT(N,NPAIRS,INDROW,INDCOL,JPNTR,IWA)
+
+!     COMPRESS THE DATA AND DETERMINE THE NUMBER OF
+!     NON-ZERO ELEMENTS OF A.
+      IWA(1:M) =  0
+      NNZ = 1
+      DO J = 1, N
+        K = NNZ
+        DO JP = JPNTR(J), JPNTR(J+1) - 1
+          IR = INDROW(JP)
+          IF (IWA(IR)/=J) THEN
+            INDROW(NNZ) = IR
+            NNZ = NNZ + 1
+            IWA(IR) = J
+          END IF
+        END DO
+        JPNTR(J) = K
+      END DO
+      JPNTR(N+1) = NNZ
+
+!     EXTEND THE DATA STRUCTURE TO ROWS.
+      CALL SETR(M,N,INDROW,JPNTR,INDCOL,IPNTR,IWA)
+
+!     DETERMINE A LOWER BOUND FOR THE NUMBER OF GROUPS.
+      MINGRP = 0
+      DO I = 1, M
+        MINGRP = MAX(MINGRP,IPNTR(I+1)-IPNTR(I))
+      END DO
+
+!     DETERMINE THE DEGREE SEQUENCE FOR THE INTERSECTION
+!     GRAPH OF THE COLUMNS OF A.
+      CALL DEGR(N,INDROW,JPNTR,INDCOL,IPNTR,IWA(5*N+1),IWA(N+1))
+
+!     COLOR THE INTERSECTION GRAPH OF THE COLUMNS OF A
+!     WITH THE SMALLEST-LAST (SL) ORDERING.
+      CALL SLO(N,INDROW,JPNTR,INDCOL,IPNTR,IWA(5*N+1),IWA(4*N+1),MAXCLQ, &
+        IWA(1),IWA(N+1),IWA(2*N+1),IWA(3*N+1))
+      CALL SEQ(N,INDROW,JPNTR,INDCOL,IPNTR,IWA(4*N+1),NGRP,MAXGRP,IWA(N+1))
+      MINGRP = MAX(MINGRP,MAXCLQ)
+
+!     EXIT IF THE SMALLEST-LAST ORDERING IS OPTIMAL.
+
+      IF (MAXGRP == MINGRP) RETURN
+
+!     COLOR THE INTERSECTION GRAPH OF THE COLUMNS OF A
+!     WITH THE INCIDENCE-DEGREE(ID) ORDERING.
+      CALL IDO(M,N,INDROW,JPNTR,INDCOL,IPNTR,IWA(5*N+1),IWA(4*N+1),MAXCLQ, &
+        IWA(1),IWA(N+1),IWA(2*N+1),IWA(3*N+1))
+      CALL SEQ(N,INDROW,JPNTR,INDCOL,IPNTR,IWA(4*N+1),IWA(1),NUMGRP,IWA(N+1))
+      MINGRP = MAX(MINGRP,MAXCLQ)
+
+!     RETAIN THE BETTER OF THE TWO ORDERINGS SO FAR.
+      IF (NUMGRP < MAXGRP) THEN
+        MAXGRP = NUMGRP
+        NGRP(1:N) = IWA(1:N)
+
+!       EXIT IF THE INCIDENCE-DEGREE ORDERING IS OPTIMAL.
+        IF (MAXGRP == MINGRP) RETURN
+      END IF
+
+!     COLOR THE INTERSECTION GRAPH OF THE COLUMNS OF A
+!     WITH THE LARGEST-FIRST (LF) ORDERING.
+      CALL NUMSRT(N,N-1,IWA(5*N+1),-1,IWA(4*N+1),IWA(2*N+1),IWA(N+1))
+      CALL SEQ(N,INDROW,JPNTR,INDCOL,IPNTR,IWA(4*N+1),IWA(1),NUMGRP,IWA(N+1))
+
+!     RETAIN THE BEST OF THE THREE ORDERINGS AND EXIT.
+      IF (NUMGRP < MAXGRP) THEN
+        MAXGRP = NUMGRP
+        NGRP(1:N) = IWA(1:N)
+      END IF
+      RETURN
+
+    END SUBROUTINE DVDSM
+!_______________________________________________________________________
+
+      SUBROUTINE DGROUPDS(N,MAXGRPDS,NGRPDS,IGP,JGP)
+! ..
+! Construct the column grouping arrays IGP anf JGP needed by DVJACS28
+! from the DSM array NGRPDS.
+! ..
+!     Input:
+!
+!     N        = the order of the matrix
+!     MAXGRPDS = number of groups (from DSM)
+!     NGRPDS   = DSM output array
+!     Output:
+!     JGP      = array of length N containing the column
+!                indices by groups
+!     IGP      = pointer array of length NGRP + 1 to the
+!                locations in JGP of the beginning of
+!                each group
+! ..
+     IMPLICIT NONE
+! ..
+! .. Scalar Arguments ..
+        INTEGER, INTENT (IN) :: N, MAXGRPDS
+! ..
+! .. Array Arguments ..
+        INTEGER, INTENT (IN) :: NGRPDS(MAXGRPDS)
+        INTEGER, INTENT (OUT) :: IGP(MAXGRPDS+1), JGP(N)
+! ..
+! .. Local Scalars ..
+        INTEGER :: IGRP, INDEX, JCOL
+! ..
+! .. FIRST EXECUTABLE STATEMENT DGROUPDS
+! ..
+        IGP(1) = 1
+        INDEX =  0
+        DO IGRP = 1, MAXGRPDS
+           IGP(IGRP+1) = IGP(IGRP)
+           DO JCOL = 1, N
+              IF (NGRPDS(JCOL) == IGRP) THEN
+                 IGP(IGRP+1) = IGP(IGRP+1) + 1
+                 INDEX = INDEX + 1
+                 JGP(INDEX) = JCOL
+              END IF
+           END DO
+        END DO
+        RETURN
+
+      END SUBROUTINE DGROUPDS
+!_______________________________________________________________________
+
+    SUBROUTINE JACSPDB(FCN,N,T,Y,F,FJAC,NRFJAC,YSCALE,FAC,IOPT, &
+      WK,LWK,IWK,LIWK,MAXGRP,NGRP,JPNTR,INDROW)
+
+! This is a modified version of JACSP which does not require the NGRP,
+! JPNTR and INDROW sparse pointer arrays in the event a dense or a
+! banded matrix is being processed.
+
+! Refer to the documentation for JACSP for a description of the
+! parameters. If the banded option is used, IOPT(5) is used to
+! input the lower bandwidth ML in this version.
+
+     IMPLICIT NONE
+
+! .. Parameters ..
+      INTEGER, PARAMETER :: WP = KIND(0.0D0)
+! ..
+! .. Scalar Arguments ..
+      KPP_REAL :: T
+      INTEGER :: LIWK, LWK, MAXGRP, N, NRFJAC
+! ..
+! .. Array Arguments ..
+      KPP_REAL :: F(N), FAC(N), FJAC(NRFJAC,*), WK(LWK), Y(N), YSCALE(*)
+      INTEGER :: INDROW(*), IOPT(5), IWK(LIWK), JPNTR(*), NGRP(N)
+! ..
+! .. Subroutine Arguments ..
+      EXTERNAL FCN
+! ..
+! .. Local Scalars ..
+      KPP_REAL :: ADIFF, AY, DEL, DELM, DFMJ, DIFF, DMAX, EXPFMN, FACMAX, &
+        FACMIN, FJACL, FMJ, ONE, P125, P25, P75, P875, PERT, RDEL, RMNFDF, &
+        RMXFDF, SDF, SF, SGN, T1, T2, U, U3QRT, U7EGT, UEGT, UMEGT, UQRT,  &
+        USQT, ZERO
+      INTEGER :: IDXL, IDXU, IFLAG1, IFLAG2, IRCMP, IRDEL, IROW, IROWB,    &
+        IROWMX, ITRY, J, JCOL, JFIRST, JINC, JLAST, KT1, KT2, KT3, KT4,    &
+        KT5, L, MBAND, ML, MU, NID1, NID2, NID3, NID4, NID5, NID6,         &
+        NIFAC, NT2, NUMGRP
+!       KT5, L, MBAND, MEB1, ML, MU, NID1, NID2, NID3, NID4, NID5, NID6,   &
+      LOGICAL :: DOTHISBLOCK
+      CHARACTER (80) :: MSG
+! ..
+! .. Intrinsic Functions ..
+!     INTRINSIC ABS, EPSILON, KIND, MAX, MIN, SIGN, SQRT
+      INTRINSIC ABS, EPSILON, MAX, MIN, SIGN, SQRT
+! ..
+! .. Data Statements ..
+      DATA PERT/2.0E+0_dp/, FACMAX/1.E-1_dp/, EXPFMN/.75E+0_dp/
+      DATA ONE/1.0E0_dp/, ZERO/0.0E0_dp/
+      DATA P125/.125E+0_dp/, P25/.25E+0_dp/, P75/.75E+0_dp/, P875/.875E+0_dp/
+      DATA NIFAC/3/, NID1/10/, NID2/20/, NID3/30/, NID4/40/, NID5/50/
+! ..
+!     COMPUTE ALGORITHM AND MACHINE CONSTANTS.
+! ..
+! ..  FIRST EXECUTABLE STATEMENT JACSPDB
+! ..
+      IF (IOPT(1) == 0 .AND. MAXGRP /= N) THEN
+         MSG = 'JACSPDB requires that MAXGRP=N for a dense matrix.'
+         CALL XERRDV(MSG,1800,2,0,0,0,0,ZERO,ZERO)
+      END IF
+
+      IF (IOPT(1) == 1) THEN
+         MBAND = IOPT(2)
+         ML = IOPT(5)
+         MU = MBAND - ML - 1
+!        MEB1 = 2*ML + MU
+      END IF
+
+      U = EPSILON(ONE)
+      USQT = SQRT(U)
+      UEGT = U**P125
+      UMEGT = ONE/UEGT
+      UQRT = U**P25
+      U3QRT = U**P75
+      U7EGT = U**P875
+      FACMIN = U**EXPFMN
+
+      IF (IOPT(4) == 0) THEN
+        IOPT(4) = 1
+        DO 10 J = 1, N
+          FAC(J) = USQT
+10      CONTINUE
+      END IF
+      DO 20 J = 1, 50
+        IWK(J) = 0
+20    CONTINUE
+      KT1 = NID1
+      KT2 = NID2
+      KT3 = NID3
+      KT4 = NID4
+      KT5 = NID5
+      NID6 = LIWK
+      NT2 = 2*N
+
+      DO NUMGRP = 1, MAXGRP
+!       COMPUTE AND SAVE THE INCREMENTS FOR THE COLUMNS IN GROUP NUMGRP.
+        IRCMP = 0
+        ITRY = 0
+        DO 30 J = NID5 + 1, NID6
+          IWK(J) = 0
+30      CONTINUE
+40      CONTINUE
+
+!       Note: For banded in DVJAC:
+!       mba = min(mband,n)
+!          Groups: j=1,...,mba
+!             Columns in group j: jj=j,...,n by mband
+!                Rows in column jj: i1=max(jj-mu,1),...,i2=min(jj+ml,n)       
+
+        IF (IOPT(1) == 0 .OR. IOPT(1) == 2) THEN
+          JFIRST = 1
+          JLAST = N
+          JINC = 1
+        ELSE
+          JFIRST = NUMGRP
+          JLAST = N
+          JINC = MBAND
+        END IF
+        DO JCOL = JFIRST, JLAST, JINC
+          DOTHISBLOCK = .FALSE.
+          IF (IOPT(1) == 2) THEN
+            IF (NGRP(JCOL) == NUMGRP) DOTHISBLOCK = .TRUE.
+          ELSE
+            IF (IOPT(1) == 0) THEN
+              IF (JCOL == NUMGRP) DOTHISBLOCK = .TRUE.
+            ELSE
+              IF (IOPT(1) == 1) THEN
+                DOTHISBLOCK = .TRUE.
+              END IF
+            END IF
+          END IF
+
+          IF (DOTHISBLOCK) THEN
+            WK(N+JCOL) = Y(JCOL)
+!           COMPUTE DEL. IF DEL IS TOO SMALL INCREASE FAC(JCOL) AND RECOMPUTE
+!           DEL. NIFAC ATTEMPTS ARE MADE TO INCREASE FAC(JCOL) AND FIND AN
+!           APPROPRIATE DEL. IF DEL CANT BE FOUND IN THIS MANNER, DEL IS COMPUTED
+!           WITH FAC(JCOL) SET TO THE SQUARE ROOT OF THE MACHINE PRECISION (USQT).
+!           IF DEL IS ZERO TO MACHINE PRECISION BECAUSE Y(JCOL) IS ZERO OR
+!           YSCALE(JCOL) IS ZERO, DEL IS SET TO USQT.
+            SGN = SIGN(ONE,F(JCOL))
+            IRDEL = 0
+            IF (IOPT(3) == 1) THEN
+              AY = ABS(YSCALE(JCOL))
+            ELSE
+              AY = ABS(Y(JCOL))
+            END IF
+            DELM = U7EGT*AY
+
+            DO 50 J = 1, NIFAC
+              DEL = FAC(JCOL)*AY*SGN
+              IF (ABS(DEL) <= ZERO) THEN
+                DEL = USQT*SGN
+                IF (ITRY == 0) IWK(3) = IWK(3) + 1
+              END IF
+              T1 = Y(JCOL) + DEL
+              DEL = T1 - Y(JCOL)
+              IF (ABS(DEL) < DELM) THEN
+                IF (J >= NIFAC) GOTO 50
+                IF (IRDEL == 0) THEN
+                  IRDEL = 1
+                  IWK(1) = IWK(1) + 1
+                END IF
+                T1 = FAC(JCOL)*UMEGT
+                FAC(JCOL) = MIN(T1,FACMAX)
+              ELSE
+                GOTO 60
+              END IF
+50          END DO
+
+            FAC(JCOL) = USQT
+            DEL = USQT*AY*SGN
+            IWK(2) = IWK(2) + 1
+            IF (KT2 < NID3) THEN
+              KT2 = KT2 + 1
+              IWK(KT2) = JCOL
+            END IF
+
+60          CONTINUE
+            WK(NT2+JCOL) = DEL
+            Y(JCOL) = Y(JCOL) + DEL
+          END IF
+        END DO
+
+        IWK(7) = IWK(7) + 1
+        CALL FCN(N,T,Y,WK)
+
+        DO JCOL = JFIRST, JLAST, JINC
+          IF (IOPT(1) == 2) THEN
+             IF (NGRP(JCOL) == NUMGRP) Y(JCOL) = WK(N+JCOL)
+          ELSE
+             IF (IOPT(1) == 0) THEN
+                IF (JCOL == NUMGRP) Y(JCOL) = WK(N+JCOL)
+             ELSE
+                IF (IOPT(1) == 1) Y(JCOL) = WK(N+JCOL) 
+             END IF
+          END IF
+        END DO
+
+!       COMPUTE THE JACOBIAN ENTRIES FOR ALL COLUMNS IN NUMGRP.
+!       STORE ENTRIES ACCORDING TO SELECTED STORAGE FORMAT.
+!       USE LARGEST ELEMENTS IN A COLUMN TO DETERMINE SCALING
+!       INFORMATION FOR ROUNDOFF AND TRUNCATION ERROR TESTS.
+
+        DO JCOL = JFIRST, JLAST, JINC
+          DOTHISBLOCK = .FALSE.
+          IF (IOPT(1) == 2) THEN
+             IF (NGRP(JCOL) == NUMGRP) DOTHISBLOCK = .TRUE.
+          ELSE
+             IF (IOPT(1) == 0) THEN
+                IF (JCOL == NUMGRP) DOTHISBLOCK = .TRUE.
+             ELSE
+                IF(IOPT(1) == 1) DOTHISBLOCK = .TRUE. 
+             END IF
+          END IF
+          IF (DOTHISBLOCK) THEN
+            IF (IOPT(1) == 2) THEN
+              IDXL = JPNTR(JCOL)
+              IDXU = JPNTR(JCOL+1) - 1
+            ELSE
+              IF (IOPT(1) == 0) THEN
+                IDXL = 1
+                IDXU = N
+              ELSE
+                IF (IOPT(1) == 1) THEN
+                  IDXL = MAX(JCOL-MU,1)
+                  IDXU = MIN(JCOL+ML,N)
+                END IF
+              END IF
+            END IF
+            DMAX = ZERO
+            RDEL = ONE/WK(NT2+JCOL)
+            IROWMX = 1
+            DO L = IDXL, IDXU
+              IF (IOPT(1) == 2) THEN
+                 IROW = INDROW(L)
+              ELSE
+                 IF (IOPT(1)==0 .OR. IOPT(1)==1) IROW = L
+              END IF
+              DIFF = WK(IROW) - F(IROW)
+              ADIFF = ABS(DIFF)
+              IF (ADIFF >= DMAX) THEN
+                IROWMX = IROW
+                DMAX = ADIFF
+                SF = F(IROW)
+                SDF = WK(IROW)
+              END IF
+              FJACL = DIFF*RDEL
+              IF (ITRY == 1) WK(IROW) = FJACL
+
+              IF (IOPT(1) == 0) THEN
+                IF (ITRY == 1) WK(IROW+N) = FJAC(IROW,JCOL)
+                FJAC(IROW,JCOL) = FJACL
+              END IF
+              IF (IOPT(1) == 1) THEN
+                IROWB = IROW - JCOL + IOPT(2)
+                IF (ITRY == 1) WK(IROW+N) = FJAC(IROWB,JCOL)
+                FJAC(IROWB,JCOL) = FJACL
+!               IROWB = JCOL * MEB1 - ML + L
+!               IF (ITRY == 1) WK(IROW+N) = FJAC(IROWB,1)
+!               FJAC(IROWB,1) = FJACL
+              END IF
+              IF (IOPT(1) == 2) THEN
+                IF (ITRY == 1) WK(IROW+N) = FJAC(L,1)
+                FJAC(L,1) = FJACL
+              END IF
+            END DO
+
+!           IF A COLUMN IS BEING RECOMPUTED (ITRY=1),THIS SECTION OF THE
+!           CODE PERFORMS AN EXTRAPOLATION TEST TO ENABLE THE CODE TO
+!           COMPUTE SMALL DERIVATIVES MORE ACCURATELY. THIS TEST IS ONLY
+!           PERFORMED ON THOSE COLUMNS WHOSE LARGEST DIFFERENCE IS CLOSE
+!           TO ZERO RELATIVE TO SCALE.
+            IF (ITRY == 1) THEN
+              IFLAG1 = 0
+              IFLAG2 = 0
+              DO 100 J = NID5 + 1, NID6
+                IF (IWK(J) == JCOL) IFLAG1 = 1
+100           CONTINUE
+              IF (IFLAG1 == 1) THEN
+                IFLAG1 = 0
+                T1 = WK(IROWMX+N)
+                T2 = WK(IROWMX)*FAC(JCOL)
+                IF (ABS(T2) < ABS(T1)*PERT) IFLAG2 = 1
+              END IF
+
+              IF (IFLAG2 == 1) THEN
+                IFLAG2 = 0
+                T1 = FAC(JCOL)*FAC(JCOL)
+                FAC(JCOL) = MAX(T1,FACMIN)
+                DO L = IDXL, IDXU
+                  IF (IOPT(1) == 2) THEN
+                     IROW = INDROW(L)
+                  ELSE
+                     IF (IOPT(1)==0 .OR. IOPT(1)==1) IROW = L
+                  END IF
+                  FJACL = WK(IROW+N)
+                  IF (IOPT(1) == 0) FJAC(IROW,JCOL) = FJACL
+                  IF (IOPT(1) == 1) THEN
+                    IROWB = IROW - JCOL + IOPT(2)
+                    FJAC(IROWB,JCOL) = FJACL
+!                   IROWB = JCOL * MEB1 - ML + L
+!                   FJAC(IROWB,1) = FJACL
+                  END IF
+                  IF (IOPT(1) == 2) FJAC(L,1) = FJACL
+              END DO
+              END IF
+            END IF
+
+            FMJ = ABS(SF)
+            DFMJ = ABS(SDF)
+            RMXFDF = MAX(FMJ,DFMJ)
+            RMNFDF = MIN(FMJ,DFMJ)
+
+!           IF SCALE INFORMATION IS NOT AVAILABLE, PERFORM NO ROUNDOFF
+!           OR TRUNCATION ERROR TESTS. IF THE EXTRAPOLATION TEST HAS
+!           CAUSED FAC(JCOL) TO BE RESET TO ITS PREVIOUS VALUE (IAJAC=1)
+!           THEN NO FURTHER ROUNDOFF OR TRUNCATION ERROR TESTS ARE
+!           PERFORMED.
+!           IF (RMNFDF/=ZERO) THEN
+            IF (ABS(RMNFDF) > ZERO) THEN
+!             TEST FOR POSSIBLE ROUNDOFF ERROR (FIRST TEST)
+!             AND ALSO FOR POSSIBLE SERIOUS ROUNDOFF ERROR (SECOND TEST).
+              IF (DMAX <= (U3QRT*RMXFDF)) THEN
+                IF (DMAX <= (U7EGT*RMXFDF)) THEN
+                  IF (ITRY == 0) THEN
+                    T1 = SQRT(FAC(JCOL))
+                    FAC(JCOL) = MIN(T1,FACMAX)
+                    IRCMP = 1
+                    IF (KT5 < NID6) THEN
+                      KT5 = KT5 + 1
+                      IWK(KT5) = JCOL
+                    END IF
+                    IWK(4) = IWK(4) + 1
+                    IF (KT3 < NID4) THEN
+                      KT3 = KT3 + 1
+                      IWK(KT3) = JCOL
+                    END IF
+                  ELSE
+                    IWK(5) = IWK(5) + 1
+                    IF (KT4 < NID5) THEN
+                      KT4 = KT4 + 1
+                      IWK(KT4) = JCOL
+                    END IF
+                  END IF
+                ELSE
+                  T1 = UMEGT*FAC(JCOL)
+                  FAC(JCOL) = MIN(T1,FACMAX)
+                END IF
+              END IF
+!             TEST FOR POSSIBLE TRUNCATION ERROR.
+              IF (DMAX > UQRT*RMXFDF) THEN
+                T1 = FAC(JCOL)*UEGT
+                FAC(JCOL) = MAX(T1,FACMIN)
+                IWK(8) = IWK(8) + 1
+                IF (KT1 < NID2) THEN
+                  KT1 = KT1 + 1
+                  IWK(KT1) = JCOL
+                END IF
+              END IF
+            ELSE
+              IWK(6) = IWK(6) + 1
+            END IF
+          END IF
+        END DO
+
+!       IF SERIOUS ROUNDOFF ERROR IS SUSPECTED, RECOMPUTE ALL
+!       COLUMNS IN GROUP NUMGRP.
+        IF (IRCMP == 1) THEN
+          IRCMP = 0
+          ITRY = 1
+          GOTO 40
+        END IF
+        ITRY = 0
+      END DO
+      RETURN
+
+    END SUBROUTINE JACSPDB
+
+! End of JACSP routines.
+!_______________________________________________________________________
+! *****MA48 build change point. Insert the MA48 Jacobian related
+! routines DVNLSS48, DVSOLS48, DVPREPS48, and DVJACS48 here.
+! filename = jacobian_for_ma48.f90. Insert the following line
+! after the first line of this file:
+! USE hsl_ma48_double
+!_______________________________________________________________________
+
+! *****LAPACK build change point. Insert the following line after the
+! first line of this file:
+! USE lapackd_f90_m
+! Include the module lapackd_f90_m.f90 at the beginning of this file
+! or as an external module.
+!_______________________________________________________________________
+
+    END MODULE DVODE
+
+
+    END MODULE KPP_ROOT_Integrator
+!_______________________________________________________________________
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/kpp_lsode.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/kpp_lsode.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/kpp_lsode.def	(revision 2696)
@@ -0,0 +1,7 @@
+#FUNCTION AGGREGATE
+#JACOBIAN SPARSE_LU_ROW
+#DOUBLE ON 
+#INTFILE kpp_lsode
+
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/kpp_lsode.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/kpp_lsode.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/kpp_lsode.f90	(revision 2696)
@@ -0,0 +1,3431 @@
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
+!  LSODE - Stiff method based on backward differentiation formulas (BDF)  !
+!  By default the code employs the KPP sparse linear algebra routines     !
+!  Compile with -DFULL_ALGEBRA to use full linear algebra (LAPACK)        !
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
+! A. Sandu - version of July 2005
+
+MODULE KPP_ROOT_Integrator
+
+  USE KPP_ROOT_Precision
+  USE KPP_ROOT_Global, ONLY: FIX, RCONST, TIME, ATOL, RTOL
+  USE KPP_ROOT_Parameters, ONLY: NVAR, NSPEC, NFIX, LU_NONZERO
+  USE KPP_ROOT_JacobianSP, ONLY: LU_DIAG
+  USE KPP_ROOT_LinearAlgebra, ONLY: KppDecomp, KppSolve, &
+               Set2zero, WLAMCH
+  
+  IMPLICIT NONE
+  PUBLIC
+  SAVE
+  
+  !~~~>  Statistics on the work performed by the LSODE method
+  INTEGER :: Nfun,Njac,Nstp,Nacc,Nrej,Ndec,Nsol,Nsng
+  INTEGER, PARAMETER :: ifun=1, ijac=2, istp=3, iacc=4,  &
+    irej=5, idec=6, isol=7, isng=8, itexit=1, ihexit=2
+  !  SDIRK method coefficients
+  KPP_REAL :: rkAlpha(5,4), rkBeta(5,4), rkD(4,5),  &
+                   rkGamma, rkA(5,5), rkB(5), rkC(5)
+
+  ! mz_rs_20050717: TODO: use strings of IERR_NAMES for error messages
+  ! description of the error numbers IERR
+  CHARACTER(LEN=50), PARAMETER, DIMENSION(-8:1) :: IERR_NAMES = (/ &
+    'Matrix is repeatedly singular                     ', & ! -8
+    'Step size too small                               ', & ! -7
+    'No of steps exceeds maximum bound                 ', & ! -6
+    'Improper tolerance values                         ', & ! -5
+    'FacMin/FacMax/FacRej must be positive             ', & ! -4
+    'Hmin/Hmax/Hstart must be positive                 ', & ! -3
+    'Improper value for maximal no of Newton iterations', & ! -2
+    'Improper value for maximal no of steps            ', & ! -1
+    '                                                  ', & !  0 (not used)
+    'Success                                           ' /) !  1
+
+CONTAINS
+
+SUBROUTINE INTEGRATE( TIN, TOUT, &
+  ICNTRL_U, RCNTRL_U, ISTATUS_U, RSTATUS_U, IERR_U )
+
+   USE KPP_ROOT_Parameters
+   USE KPP_ROOT_Global
+   IMPLICIT NONE
+
+   KPP_REAL, INTENT(IN) :: TIN  ! Start Time
+   KPP_REAL, INTENT(IN) :: TOUT ! End Time
+   ! Optional input parameters and statistics
+   INTEGER,  INTENT(IN),  OPTIONAL :: ICNTRL_U(20)
+   KPP_REAL, INTENT(IN),  OPTIONAL :: RCNTRL_U(20)
+   INTEGER,  INTENT(OUT), OPTIONAL :: ISTATUS_U(20)
+   KPP_REAL, INTENT(OUT), OPTIONAL :: RSTATUS_U(20)
+   INTEGER,  INTENT(OUT), OPTIONAL :: IERR_U
+
+   KPP_REAL :: RCNTRL(20), RSTATUS(20)
+   INTEGER       :: ICNTRL(20), ISTATUS(20), IERR
+!!$   INTEGER, SAVE :: Ntotal = 0
+
+   ICNTRL(:)  = 0
+   RCNTRL(:)  = 0.0_dp
+   ISTATUS(:) = 0
+   RSTATUS(:) = 0.0_dp
+
+   ICNTRL(5) = 2 ! maximal order
+
+   ! If optional parameters are given, and if they are >0, 
+   ! then they overwrite default settings. 
+   IF (PRESENT(ICNTRL_U)) THEN
+     WHERE(ICNTRL_U(:) > 0) ICNTRL(:) = ICNTRL_U(:)
+   END IF
+   IF (PRESENT(RCNTRL_U)) THEN
+     WHERE(RCNTRL_U(:) > 0) RCNTRL(:) = RCNTRL_U(:)
+   END IF
+
+   CALL KppLsode( TIN,TOUT,VAR,RTOL,ATOL,                &
+                  RCNTRL,ICNTRL,RSTATUS,ISTATUS,IERR )
+
+!     INTEGER ITASK, ISTATE, NG, NEQ, IOUT, JROOT, ISTATS, &
+!     IERROR, I
+!     DOUBLE PRECISION ATOL, RTOL, RSTATS, T, TOUT, Y
+!     DIMENSION JROOT(2)
+!     TYPE(VODE_OPTS) :: OPTIONS
+!     IERROR = 0
+!     ITASK = 1
+!     ISTATE = 1
+!     NG = 2
+!     OPTIONS = SET_OPTS(DENSE_J=.TRUE.,RELERR=RTOL, &
+!       ABSERR_VECTOR=ATOL,NEVENTS=NG)
+!       CALL DVODE_F90(FEX,NEQ,Y,TIN,TOUT,ITASK,ISTATE,OPTIONS,G_FCN=GEX)
+!       CALL GET_STATS(RSTATS, ISTATS, NG, JROOT)
+
+
+   STEPMIN = RSTATUS(ihexit) ! Save last step
+   
+   ! if optional parameters are given for output they to return information
+   IF (PRESENT(ISTATUS_U)) ISTATUS_U(:) = ISTATUS(1:20)
+   IF (PRESENT(RSTATUS_U)) RSTATUS_U(:) = RSTATUS(1:20)
+   IF (PRESENT(IERR_U)) THEN
+     IF (IERR==2) THEN ! DLSODE returns "2" after successful completion
+       IERR_U = 1 ! IERR_U will return "1" for successful completion
+     ELSE
+       IERR_U = IERR
+     ENDIF
+   ENDIF
+
+   END SUBROUTINE INTEGRATE
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE KppLsode( TIN,TOUT,Y,RelTol,AbsTol,      &
+               RCNTRL,ICNTRL,RSTATUS,ISTATUS,IERR )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>     INPUT PARAMETERS:
+!
+!    Note: For input parameters equal to zero the default values of the
+!       corresponding variables are used.
+!
+!    Note: For input parameters equal to zero the default values of the
+!          corresponding variables are used.
+!~~~>  
+!    ICNTRL(1) = not used
+!
+!    ICNTRL(2) = 0: AbsTol, RelTol are NVAR-dimensional vectors
+!              = 1: AbsTol, RelTol are scalars
+!
+!    ICNTRL(3) = not used
+!
+!    ICNTRL(4)  -> maximum number of integration steps
+!        For ICNTRL(4)=0 the default value of 100000 is used
+!
+!    ICNTRL(5)  -> maximum order of the integration formula allowed
+!
+!~~~>  Real parameters
+!
+!    RCNTRL(1)  -> Hmin, lower bound for the integration step size
+!                  It is strongly recommended to keep Hmin = ZERO
+!    RCNTRL(2)  -> Hmax, upper bound for the integration step size
+!    RCNTRL(3)  -> Hstart, starting value for the integration step size
+!
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>     OUTPUT PARAMETERS:
+!
+!    Note: each call to Rosenbrock adds the current no. of fcn calls
+!      to previous value of ISTATUS(1), and similar for the other params.
+!      Set ISTATUS(1:10) = 0 before call to avoid this accumulation.
+!
+!    ISTATUS(1) = No. of function calls
+!    ISTATUS(2) = No. of jacobian calls
+!    ISTATUS(3) = No. of steps
+!
+!    RSTATUS(1)  -> Texit, the time corresponding to the
+!                   computed Y upon return
+!    RSTATUS(2)  -> Hexit, last predicted step before exit
+!    For multiple restarts, use Hexit as Hstart in the following run
+!
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      IMPLICIT NONE
+      KPP_REAL :: Y(NVAR), AbsTol(NVAR), RelTol(NVAR), TIN, TOUT
+      KPP_REAL :: RCNTRL(20), RSTATUS(20)
+      INTEGER       :: ICNTRL(20), ISTATUS(20)
+      INTEGER, PARAMETER :: LRW = 25 + 9*NVAR+2*NVAR*NVAR, &
+                            LIW = 32 + NVAR
+      KPP_REAL :: RWORK(LRW), RPAR(1)
+      INTEGER :: IWORK(LIW), IPAR(1), ITOL, ITASK,         &
+                 IERR, IOPT, MF
+
+      !~~~> NORMAL COMPUTATION
+      ITASK  = 1
+      IERR   = 1
+      IOPT   = 1     ! 0=no/1=use optional input
+      
+      RWORK(1:30) = 0.0d0
+      IWORK(1:30) = 0
+      
+      IF (ICNTRL(2)==0) THEN
+         ITOL = 4           ! Abs/RelTol are both vectors
+      ELSE              
+         ITOL = 1           ! Abs/RelTol are both scalars
+      END IF   
+      IWORK(6) = ICNTRL(4)  ! max number of internal steps 
+      IWORK(5) = ICNTRL(5)  ! maximal order
+
+      MF = 21  !~~~> stiff case, analytic full Jacobian
+
+      RWORK(5) = RCNTRL(3)  ! Hstart
+      RWORK(6) = RCNTRL(2)  ! Hmax                    
+      RWORK(7) = RCNTRL(1)  ! Hmin                    
+
+      CALL DLSODE ( FUN_CHEM, NVAR, Y, TIN, TOUT, ITOL, RelTol, AbsTol, ITASK,&
+                    IERR, IOPT, RWORK, LRW, IWORK, LIW, JAC_CHEM, MF)
+
+      ISTATUS(1) = IWORK(12) ! Number of function evaluations 
+      ISTATUS(2) = IWORK(13) ! Number of Jacobian evaluations   
+      ISTATUS(3) = IWORK(11) ! Number of steps
+
+      RSTATUS(1) = TOUT      ! mz_rs_20050717
+      RSTATUS(2) = RWORK(11) ! mz_rs_20050717
+
+      END SUBROUTINE KppLsode
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!DECK DLSODE                                                            
+      SUBROUTINE DLSODE (F, NEQ, Y, T, TOUT, ITOL, RelTol, AbsTol, ITASK,   &
+                       ISTATE, IOPT, RWORK, LRW, IWORK, LIW, JAC, MF)  
+      EXTERNAL F, JAC 
+      INTEGER NEQ, ITOL, ITASK, ISTATE, IOPT, LRW, LIW, IWORK(LIW), MF 
+      KPP_REAL Y(*), T, TOUT, RelTol(*), AbsTol(*), RWORK(LRW)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!***BEGIN PROLOGUE  DLSODE                                              
+!***PURPOSE  Livermore Solver for Ordinary Differential Equations.      
+!            DLSODE solves the initial-value problem for stiff or       
+!            nonstiff systems of first-order ODE's,                     
+!               dy/dt = f(t,y),   or, in component form,                
+!               dy(i)/dt = f(i) = f(i,t,y(1),y(2),...,y(N)),  i=1,...,N.
+!***CATEGORY  I1A                                                       
+!***TYPE      KPP_REAL (SLSODE-S, DLSODE-D)                     
+!***KEYWORDS  ORDINARY DIFFERENTIAL EQUATIONS, INITIAL VALUE PROBLEM,   
+!             STIFF, NONSTIFF                                           
+!***AUTHOR  Hindmarsh, Alan C., (LLNL)                                  
+!             Center for Applied Scientific Computing, L-561            
+!             Lawrence Livermore National Laboratory                    
+!             Livermore, CA 94551.                                      
+!***DESCRIPTION                                                         
+!                                                                       
+!     NOTE: The "Usage" and "Arguments" sections treat only a subset of 
+!           available options, in condensed fashion.  The options       
+!           covered and the information supplied will support most      
+!           standard uses of DLSODE.                                    
+!                                                                       
+!           For more sophisticated uses, full details on all options are
+!           given in the concluding section, headed "Long Description." 
+!           A synopsis of the DLSODE Long Description is provided at the
+!           beginning of that section; general topics covered are:      
+!           - Elements of the call sequence; optional input and output  
+!           - Optional supplemental routines in the DLSODE package      
+!           - internal COMMON block                                     
+!                                                                       
+! *Usage:                                                               
+!     Communication between the user and the DLSODE package, for normal 
+!     situations, is summarized here.  This summary describes a subset  
+!     of the available options.  See "Long Description" for complete    
+!     details, including optional communication, nonstandard options,   
+!     and instructions for special situations.                          
+!                                                                       
+!     A sample program is given in the "Examples" section.              
+!                                                                       
+!     Refer to the argument descriptions for the definitions of the     
+!     quantities that appear in the following sample declarations.      
+!                                                                       
+!     For MF = 10,                                                      
+!        PARAMETER  (LRW = 20 + 16*NEQ,           LIW = 20)             
+!     For MF = 21 or 22,                                                
+!        PARAMETER  (LRW = 22 +  9*NEQ + NEQ**2,  LIW = 20 + NEQ)       
+!     For MF = 24 or 25,                                                
+!        PARAMETER  (LRW = 22 + 10*NEQ + (2*ML+MU)*NEQ,                 
+!       *                                         LIW = 20 + NEQ)       
+!                                                                       
+!        EXTERNAL F, JAC                                                
+!        INTEGER  NEQ, ITOL, ITASK, ISTATE, IOPT, LRW, IWORK(LIW),      
+!       *         LIW, MF                                               
+!        KPP_REAL Y(NEQ), T, TOUT, RelTol, AbsTol(ntol), RWORK(LRW) 
+!                                                                       
+!        CALL DLSODE (F, NEQ, Y, T, TOUT, ITOL, RelTol, AbsTol, ITASK,      
+!       *            ISTATE, IOPT, RWORK, LRW, IWORK, LIW, JAC, MF)     
+!                                                                       
+! *Arguments:                                                           
+!     F     :EXT    Name of subroutine for right-hand-side vector f.    
+!                   This name must be declared EXTERNAL in calling      
+!                   program.  The form of F must be:                    
+!                                                                       
+!                   SUBROUTINE  F (NEQ, T, Y, YDOT)                     
+!                   INTEGER  NEQ                                        
+!                   KPP_REAL  T, Y(*), YDOT(*)                  
+!                                                                       
+!                   The inputs are NEQ, T, Y.  F is to set              
+!                                                                       
+!                   YDOT(i) = f(i,T,Y(1),Y(2),...,Y(NEQ)),              
+!                                                     i = 1, ..., NEQ . 
+!                                                                       
+!     NEQ   :IN     Number of first-order ODE's.                        
+!                                                                       
+!     Y     :INOUT  Array of values of the y(t) vector, of length NEQ.  
+!                   Input:  For the first call, Y should contain the    
+!                           values of y(t) at t = T. (Y is an input     
+!                           variable only if ISTATE = 1.)               
+!                   Output: On return, Y will contain the values at the 
+!                           new t-value.                                
+!                                                                       
+!     T     :INOUT  Value of the independent variable.  On return it    
+!                   will be the current value of t (normally TOUT).     
+!                                                                       
+!     TOUT  :IN     Next point where output is desired (.NE. T).        
+!                                                                       
+!     ITOL  :IN     1 or 2 according as AbsTol (below) is a scalar or     
+!                   an array.                                           
+!                                                                       
+!     RelTol  :IN     Relative tolerance parameter (scalar).              
+!                                                                       
+!     AbsTol  :IN     Absolute tolerance parameter (scalar or array).     
+!                   If ITOL = 1, AbsTol need not be dimensioned.          
+!                   If ITOL = 2, AbsTol must be dimensioned at least NEQ. 
+!                                                                       
+!                   The estimated local error in Y(i) will be controlled
+!                   so as to be roughly less (in magnitude) than        
+!                                                                       
+!                   EWT(i) = RelTol*ABS(Y(i)) + AbsTol     if ITOL = 1, or  
+!                   EWT(i) = RelTol*ABS(Y(i)) + AbsTol(i)  if ITOL = 2.     
+!                                                                       
+!                   Thus the local error test passes if, in each        
+!                   component, either the absolute error is less than   
+!                   AbsTol (or AbsTol(i)), or the relative error is less    
+!                   than RelTol.                                          
+!                                                                       
+!                   Use RelTol = 0.0 for pure absolute error control, and 
+!                   use AbsTol = 0.0 (or AbsTol(i) = 0.0) for pure relative 
+!                   error control.  Caution:  Actual (global) errors may
+!                   exceed these local tolerances, so choose them       
+!                   conservatively.                                     
+!                                                                       
+!     ITASK :IN     Flag indicating the task DLSODE is to perform.      
+!                   Use ITASK = 1 for normal computation of output      
+!                   values of y at t = TOUT.                            
+!                                                                       
+!     ISTATE:INOUT  Index used for input and output to specify the state
+!                   of the calculation.                                 
+!                   Input:                                              
+!                    1   This is the first call for a problem.          
+!                    2   This is a subsequent call.                     
+!                   Output:                                             
+!                    1   Nothing was done, because TOUT was equal to T. 
+!                    2   DLSODE was successful (otherwise, negative).   
+!                        Note that ISTATE need not be modified after a  
+!                        successful return.                             
+!                   -1   Excess work done on this call (perhaps wrong   
+!                        MF).                                           
+!                   -2   Excess accuracy requested (tolerances too      
+!                        small).                                        
+!                   -3   Illegal input detected (see printed message).  
+!                   -4   Repeated error test failures (check all        
+!                        inputs).                                       
+!                   -5   Repeated convergence failures (perhaps bad     
+!                        Jacobian supplied or wrong choice of MF or     
+!                        tolerances).                                   
+!                   -6   Error weight became zero during problem        
+!                        (solution component i vanished, and AbsTol or    
+!                        AbsTol(i) = 0.).                                 
+!                                                                       
+!     IOPT  :IN     Flag indicating whether optional inputs are used:   
+!                   0   No.                                             
+!                   1   Yes.  (See "Optional inputs" under "Long        
+!                       Description," Part 1.)                          
+!                                                                       
+!     RWORK :WORK   Real work array of length at least:                 
+!                   20 + 16*NEQ                    for MF = 10,         
+!                   22 +  9*NEQ + NEQ**2           for MF = 21 or 22,   
+!                   22 + 10*NEQ + (2*ML + MU)*NEQ  for MF = 24 or 25.   
+!                                                                       
+!     LRW   :IN     Declared length of RWORK (in user's DIMENSION       
+!                   statement).                                         
+!                                                                       
+!     IWORK :WORK   Integer work array of length at least:              
+!                   20        for MF = 10,                              
+!                   20 + NEQ  for MF = 21, 22, 24, or 25.               
+!                                                                       
+!                   If MF = 24 or 25, input in IWORK(1),IWORK(2) the    
+!                   lower and upper Jacobian half-bandwidths ML,MU.     
+!                                                                       
+!                   On return, IWORK contains information that may be   
+!                   of interest to the user:                            
+!                                                                       
+!            Name   Location   Meaning                                  
+!            -----  ---------  -----------------------------------------
+!            NST    IWORK(11)  Number of steps taken for the problem so 
+!                              far.                                     
+!            NFE    IWORK(12)  Number of f evaluations for the problem  
+!                              so far.                                  
+!            NJE    IWORK(13)  Number of Jacobian evaluations (and of   
+!                              matrix LU decompositions) for the problem
+!                              so far.                                  
+!            NQU    IWORK(14)  Method order last used (successfully).   
+!            LENRW  IWORK(17)  Length of RWORK actually required.  This 
+!                              is defined on normal returns and on an   
+!                              illegal input return for insufficient    
+!                              storage.                                 
+!            LENIW  IWORK(18)  Length of IWORK actually required.  This 
+!                              is defined on normal returns and on an   
+!                              illegal input return for insufficient    
+!                              storage.                                 
+!                                                                       
+!     LIW   :IN     Declared length of IWORK (in user's DIMENSION       
+!                   statement).                                         
+!                                                                       
+!     JAC   :EXT    Name of subroutine for Jacobian matrix (MF =        
+!                   21 or 24).  If used, this name must be declared     
+!                   EXTERNAL in calling program.  If not used, pass a   
+!                   dummy name.  The form of JAC must be:               
+!                                                                       
+!                   SUBROUTINE JAC (NEQ, T, Y, ML, MU, PD, NROWPD)      
+!                   INTEGER  NEQ, ML, MU, NROWPD                        
+!                   KPP_REAL  T, Y(*), PD(NROWPD,*)             
+!                                                                       
+!                   See item c, under "Description" below for more      
+!                   information about JAC.                              
+!                                                                       
+!     MF    :IN     Method flag.  Standard values are:                  
+!                   10  Nonstiff (Adams) method, no Jacobian used.      
+!                   21  Stiff (BDF) method, user-supplied full Jacobian.
+!                   22  Stiff method, internally generated full         
+!                       Jacobian.                                       
+!                   24  Stiff method, user-supplied banded Jacobian.    
+!                   25  Stiff method, internally generated banded       
+!                       Jacobian.                                       
+!                                                                       
+! *Description:                                                         
+!     DLSODE solves the initial value problem for stiff or nonstiff     
+!     systems of first-order ODE's,                                     
+!                                                                       
+!        dy/dt = f(t,y) ,                                               
+!                                                                       
+!     or, in component form,                                            
+!                                                                       
+!        dy(i)/dt = f(i) = f(i,t,y(1),y(2),...,y(NEQ))                  
+!                                                  (i = 1, ..., NEQ) .  
+!                                                                       
+!     DLSODE is a package based on the GEAR and GEARB packages, and on  
+!     the October 23, 1978, version of the tentative ODEPACK user       
+!     interface standard, with minor modifications.                     
+!                                                                       
+!     The steps in solving such a problem are as follows.               
+!                                                                       
+!     a. First write a subroutine of the form                           
+!                                                                       
+!           SUBROUTINE  F (NEQ, T, Y, YDOT)                             
+!           INTEGER  NEQ                                                
+!           KPP_REAL  T, Y(*), YDOT(*)                          
+!                                                                       
+!        which supplies the vector function f by loading YDOT(i) with   
+!        f(i).                                                          
+!                                                                       
+!     b. Next determine (or guess) whether or not the problem is stiff. 
+!        Stiffness occurs when the Jacobian matrix df/dy has an         
+!        eigenvalue whose real part is negative and large in magnitude  
+!        compared to the reciprocal of the t span of interest.  If the  
+!        problem is nonstiff, use method flag MF = 10.  If it is stiff, 
+!        there are four standard choices for MF, and DLSODE requires the
+!        Jacobian matrix in some form.  This matrix is regarded either  
+!        as full (MF = 21 or 22), or banded (MF = 24 or 25).  In the    
+!        banded case, DLSODE requires two half-bandwidth parameters ML  
+!        and MU. These are, respectively, the widths of the lower and   
+!        upper parts of the band, excluding the main diagonal.  Thus the
+!        band consists of the locations (i,j) with                      
+!                                                                       
+!           i - ML <= j <= i + MU ,                                     
+!                                                                       
+!        and the full bandwidth is ML + MU + 1 .                        
+!                                                                       
+!     c. If the problem is stiff, you are encouraged to supply the      
+!        Jacobian directly (MF = 21 or 24), but if this is not feasible,
+!        DLSODE will compute it internally by difference quotients (MF =
+!        22 or 25).  If you are supplying the Jacobian, write a         
+!        subroutine of the form                                         
+!                                                                       
+!           SUBROUTINE  JAC (NEQ, T, Y, ML, MU, PD, NROWPD)             
+!           INTEGER  NEQ, ML, MU, NRWOPD                                
+!           KPP_REAL  T, Y(*), PD(NROWPD,*)                     
+!                                                                       
+!        which provides df/dy by loading PD as follows:                 
+!        - For a full Jacobian (MF = 21), load PD(i,j) with df(i)/dy(j),
+!          the partial derivative of f(i) with respect to y(j).  (Ignore
+!          the ML and MU arguments in this case.)                       
+!        - For a banded Jacobian (MF = 24), load PD(i-j+MU+1,j) with    
+!          df(i)/dy(j); i.e., load the diagonal lines of df/dy into the 
+!          rows of PD from the top down.                                
+!        - In either case, only nonzero elements need be loaded.        
+!                                                                       
+!     d. Write a main program that calls subroutine DLSODE once for each
+!        point at which answers are desired.  This should also provide  
+!        for possible use of logical unit 6 for output of error messages
+!        by DLSODE.                                                     
+!                                                                       
+!        Before the first call to DLSODE, set ISTATE = 1, set Y and T to
+!        the initial values, and set TOUT to the first output point.  To
+!        continue the integration after a successful return, simply     
+!        reset TOUT and call DLSODE again.  No other parameters need be 
+!        reset.                                                         
+!                                                                       
+! *Examples:                                                            
+!     The following is a simple example problem, with the coding needed 
+!     for its solution by DLSODE. The problem is from chemical kinetics,
+!     and consists of the following three rate equations:               
+!                                                                       
+!        dy1/dt = -.04*y1 + 1.E4*y2*y3                                  
+!        dy2/dt = .04*y1 - 1.E4*y2*y3 - 3.E7*y2**2                      
+!        dy3/dt = 3.E7*y2**2                                            
+!                                                                       
+!     on the interval from t = 0.0 to t = 4.E10, with initial conditions
+!     y1 = 1.0, y2 = y3 = 0. The problem is stiff.                      
+!                                                                       
+!     The following coding solves this problem with DLSODE, using       
+!     MF = 21 and printing results at t = .4, 4., ..., 4.E10.  It uses  
+!     ITOL = 2 and AbsTol much smaller for y2 than for y1 or y3 because y2
+!     has much smaller values.  At the end of the run, statistical      
+!     quantities of interest are printed.                               
+!                                                                       
+!        EXTERNAL  FEX, JEX                                             
+!        INTEGER  IOPT, IOUT, ISTATE, ITASK, ITOL, IWORK(23), LIW, LRW, 
+!       *         MF, NEQ                                               
+!        KPP_REAL  AbsTol(3), RelTol, RWORK(58), T, TOUT, Y(3)      
+!        NEQ = 3                                                        
+!        Y(1) = 1.D0                                                    
+!        Y(2) = 0.D0                                                    
+!        Y(3) = 0.D0                                                    
+!        T = 0.D0                                                       
+!        TOUT = .4D0                                                    
+!        ITOL = 2                                                       
+!        RelTol = 1.D-4                                                   
+!        AbsTol(1) = 1.D-6                                                
+!        AbsTol(2) = 1.D-10                                               
+!        AbsTol(3) = 1.D-6                                                
+!        ITASK = 1                                                      
+!        ISTATE = 1                                                     
+!        IOPT = 0                                                       
+!        LRW = 58                                                       
+!        LIW = 23                                                       
+!        MF = 21                                                        
+!        DO 40 IOUT = 1,12                                              
+!          CALL DLSODE (FEX, NEQ, Y, T, TOUT, ITOL, RelTol, AbsTol, ITASK,  
+!       *               ISTATE, IOPT, RWORK, LRW, IWORK, LIW, JEX, MF)  
+!          WRITE(6,20)  T, Y(1), Y(2), Y(3)                             
+!    20    FORMAT(' At t =',D12.4,'   y =',3D14.6)                      
+!          IF (ISTATE .LT. 0)  GO TO 80                                 
+!    40    TOUT = TOUT*10.D0                                            
+!        WRITE(6,60)  IWORK(11), IWORK(12), IWORK(13)                   
+!    60  FORMAT(/' No. steps =',i4,',  No. f-s =',i4,',  No. J-s =',i4) 
+!        STOP                                                           
+!    80  WRITE(6,90)  ISTATE                                            
+!    90  FORMAT(///' Error halt.. ISTATE =',I3)                         
+!        STOP                                                           
+!        END                                                            
+!                                                                       
+!        SUBROUTINE  FEX (NEQ, T, Y, YDOT)                              
+!        INTEGER  NEQ                                                   
+!        KPP_REAL  T, Y(3), YDOT(3)                             
+!        YDOT(1) = -.04D0*Y(1) + 1.D4*Y(2)*Y(3)                         
+!        YDOT(3) = 3.D7*Y(2)*Y(2)                                       
+!        YDOT(2) = -YDOT(1) - YDOT(3)                                   
+!        RETURN                                                         
+!        END                                                            
+!                                                                       
+!        SUBROUTINE  JEX (NEQ, T, Y, ML, MU, PD, NRPD)                  
+!        INTEGER  NEQ, ML, MU, NRPD                                     
+!        KPP_REAL  T, Y(3), PD(NRPD,3)                          
+!        PD(1,1) = -.04D0                                               
+!        PD(1,2) = 1.D4*Y(3)                                            
+!        PD(1,3) = 1.D4*Y(2)                                            
+!        PD(2,1) = .04D0                                                
+!        PD(2,3) = -PD(1,3)                                             
+!        PD(3,2) = 6.D7*Y(2)                                            
+!        PD(2,2) = -PD(1,2) - PD(3,2)                                   
+!        RETURN                                                         
+!        END                                                            
+!                                                                       
+!     The output from this program (on a Cray-1 in single precision)    
+!     is as follows.                                                    
+!                                                                       
+!     At t =  4.0000e-01   y =  9.851726e-01  3.386406e-05  1.479357e-02
+!     At t =  4.0000e+00   y =  9.055142e-01  2.240418e-05  9.446344e-02
+!     At t =  4.0000e+01   y =  7.158050e-01  9.184616e-06  2.841858e-01
+!     At t =  4.0000e+02   y =  4.504846e-01  3.222434e-06  5.495122e-01
+!     At t =  4.0000e+03   y =  1.831701e-01  8.940379e-07  8.168290e-01
+!     At t =  4.0000e+04   y =  3.897016e-02  1.621193e-07  9.610297e-01
+!     At t =  4.0000e+05   y =  4.935213e-03  1.983756e-08  9.950648e-01
+!     At t =  4.0000e+06   y =  5.159269e-04  2.064759e-09  9.994841e-01
+!     At t =  4.0000e+07   y =  5.306413e-05  2.122677e-10  9.999469e-01
+!     At t =  4.0000e+08   y =  5.494530e-06  2.197825e-11  9.999945e-01
+!     At t =  4.0000e+09   y =  5.129458e-07  2.051784e-12  9.999995e-01
+!     At t =  4.0000e+10   y = -7.170603e-08 -2.868241e-13  1.000000e+00
+!                                                                       
+!     No. steps = 330,  No. f-s = 405,  No. J-s = 69                    
+!                                                                       
+! *Accuracy:                                                            
+!     The accuracy of the solution depends on the choice of tolerances  
+!     RelTol and AbsTol.  Actual (global) errors may exceed these local     
+!     tolerances, so choose them conservatively.                        
+!                                                                       
+! *Cautions:                                                            
+!     The work arrays should not be altered between calls to DLSODE for 
+!     the same problem, except possibly for the conditional and optional
+!     inputs.                                                           
+!                                                                       
+! *Portability:                                                         
+!     Since NEQ is dimensioned inside DLSODE, some compilers may object 
+!     to a call to DLSODE with NEQ a scalar variable.  In this event,   
+!     use DIMENSION NEQ.  Similar remarks apply to RelTol and AbsTol.    
+!                                                                       
+!     Note to Cray users:                                               
+!     For maximum efficiency, use the CFT77 compiler.  Appropriate      
+!     compiler optimization directives have been inserted for CFT77.    
+!                                                                       
+! *Reference:                                                           
+!     Alan C. Hindmarsh, "ODEPACK, A Systematized Collection of ODE     
+!     Solvers," in Scientific Computing, R. S. Stepleman, et al., Eds.  
+!     (North-Holland, Amsterdam, 1983), pp. 55-64.                      
+!                                                                       
+! *Long Description:                                                    
+!     The following complete description of the user interface to       
+!     DLSODE consists of four parts:                                    
+!                                                                       
+!     1.  The call sequence to subroutine DLSODE, which is a driver     
+!         routine for the solver.  This includes descriptions of both   
+!         the call sequence arguments and user-supplied routines.       
+!         Following these descriptions is a description of optional     
+!         inputs available through the call sequence, and then a        
+!         description of optional outputs in the work arrays.           
+!                                                                       
+!     2.  Descriptions of other routines in the DLSODE package that may 
+!         be (optionally) called by the user.  These provide the ability
+!         to alter error message handling, save and restore the internal
+!         COMMON, and obtain specified derivatives of the solution y(t).
+!                                                                       
+!     3.  Descriptions of COMMON block to be declared in overlay or     
+!         similar environments, or to be saved when doing an interrupt  
+!         of the problem and continued solution later.                  
+!                                                                       
+!     4.  Description of two routines in the DLSODE package, either of  
+!         which the user may replace with his own version, if desired.  
+!         These relate to the measurement of errors.                    
+!                                                                       
+!                                                                       
+!                         Part 1.  Call Sequence                        
+!                         ----------------------                        
+!                                                                       
+!     Arguments                                                         
+!     ---------                                                         
+!     The call sequence parameters used for input only are              
+!                                                                       
+!        F, NEQ, TOUT, ITOL, RelTol, AbsTol, ITASK, IOPT, LRW, LIW, JAC, MF,
+!                                                                       
+!     and those used for both input and output are                      
+!                                                                       
+!        Y, T, ISTATE.                                                  
+!                                                                       
+!     The work arrays RWORK and IWORK are also used for conditional and 
+!     optional inputs and optional outputs.  (The term output here      
+!     refers to the return from subroutine DLSODE to the user's calling 
+!     program.)                                                         
+!                                                                       
+!     The legality of input parameters will be thoroughly checked on the
+!     initial call for the problem, but not checked thereafter unless a 
+!     change in input parameters is flagged by ISTATE = 3 on input.     
+!                                                                       
+!     The descriptions of the call arguments are as follows.            
+!                                                                       
+!     F        The name of the user-supplied subroutine defining the ODE
+!              system.  The system must be put in the first-order form  
+!              dy/dt = f(t,y), where f is a vector-valued function of   
+!              the scalar t and the vector y. Subroutine F is to compute
+!              the function f. It is to have the form                   
+!                                                                       
+!                 SUBROUTINE F (NEQ, T, Y, YDOT)                        
+!                 KPP_REAL  T, Y(*), YDOT(*)                    
+!                                                                       
+!              where NEQ, T, and Y are input, and the array YDOT =      
+!              f(T,Y) is output.  Y and YDOT are arrays of length NEQ.  
+!              Subroutine F should not alter Y(1),...,Y(NEQ).  F must be
+!              declared EXTERNAL in the calling program.                
+!                                                                       
+!              Subroutine F may access user-defined quantities in       
+!              NEQ(2),... and/or in Y(NEQ+1),..., if NEQ is an array 
+!              (dimensioned in F) and/or Y has length exceeding NEQ. 
+!              See the descriptions of NEQ and Y below.                 
+!                                                                       
+!              If quantities computed in the F routine are needed       
+!              externally to DLSODE, an extra call to F should be made  
+!              for this purpose, for consistent and accurate results.   
+!              If only the derivative dy/dt is needed, use DINTDY       
+!              instead.                                                 
+!                                                                       
+!     NEQ      The size of the ODE system (number of first-order        
+!              ordinary differential equations).  Used only for input.  
+!              NEQ may be decreased, but not increased, during the      
+!              problem.  If NEQ is decreased (with ISTATE = 3 on input),
+!              the remaining components of Y should be left undisturbed,
+!              if these are to be accessed in F and/or JAC.             
+!                                                                       
+!              Normally, NEQ is a scalar, and it is generally referred  
+!              to as a scalar in this user interface description.       
+!              However, NEQ may be an array, with NEQ set to the     
+!              system size.  (The DLSODE package accesses only NEQ.) 
+!              In either case, this parameter is passed as the NEQ      
+!              argument in all calls to F and JAC.  Hence, if it is an  
+!              array, locations NEQ(2),... may be used to store other   
+!              integer data and pass it to F and/or JAC.  Subroutines   
+!              F and/or JAC must include NEQ in a DIMENSION statement   
+!              in that case.                                            
+!                                                                       
+!     Y        A real array for the vector of dependent variables, of   
+!              length NEQ or more.  Used for both input and output on   
+!              the first call (ISTATE = 1), and only for output on      
+!              other calls.  On the first call, Y must contain the      
+!              vector of initial values.  On output, Y contains the     
+!              computed solution vector, evaluated at T. If desired,    
+!              the Y array may be used for other purposes between       
+!              calls to the solver.                                     
+!                                                                       
+!              This array is passed as the Y argument in all calls to F 
+!              and JAC.  Hence its length may exceed NEQ, and locations 
+!              Y(NEQ+1),... may be used to store other real data and    
+!              pass it to F and/or JAC.  (The DLSODE package accesses   
+!              only Y(1),...,Y(NEQ).)                                   
+!                                                                       
+!     T        The independent variable.  On input, T is used only on   
+!              the first call, as the initial point of the integration. 
+!              On output, after each call, T is the value at which a    
+!              computed solution Y is evaluated (usually the same as    
+!              TOUT).  On an error return, T is the farthest point      
+!              reached.                                                 
+!                                                                       
+!     TOUT     The next value of T at which a computed solution is      
+!              desired.  Used only for input.                           
+!                                                                       
+!              When starting the problem (ISTATE = 1), TOUT may be equal
+!              to T for one call, then should not equal T for the next  
+!              call.  For the initial T, an input value of TOUT .NE. T  
+!              is used in order to determine the direction of the       
+!              integration (i.e., the algebraic sign of the step sizes) 
+!              and the rough scale of the problem.  Integration in      
+!              either direction (forward or backward in T) is permitted.
+!                                                                       
+!              If ITASK = 2 or 5 (one-step modes), TOUT is ignored      
+!              after the first call (i.e., the first call with          
+!              TOUT .NE. T).  Otherwise, TOUT is required on every call.
+!                                                                       
+!              If ITASK = 1, 3, or 4, the values of TOUT need not be    
+!              monotone, but a value of TOUT which backs up is limited  
+!              to the current internal T interval, whose endpoints are  
+!              TCUR - HU and TCUR.  (See "Optional Outputs" below for   
+!              TCUR and HU.)                                            
+!                                                                       
+!                                                                       
+!     ITOL     An indicator for the type of error control.  See         
+!              description below under AbsTol.  Used only for input.      
+!                                                                       
+!     RelTol     A relative error tolerance parameter, either a scalar or 
+!              an array of length NEQ.  See description below under     
+!              AbsTol.  Input only.                                       
+!                                                                       
+!     AbsTol     An absolute error tolerance parameter, either a scalar or
+!              an array of length NEQ.  Input only.                     
+!                                                                       
+!              The input parameters ITOL, RelTol, and AbsTol determine the  
+!              error control performed by the solver.  The solver will  
+!              control the vector e = (e(i)) of estimated local errors  
+!              in Y, according to an inequality of the form             
+!                                                                       
+!                 rms-norm of ( e(i)/EWT(i) ) <= 1,                     
+!                                                                       
+!              where                                                    
+!                                                                       
+!                 EWT(i) = RelTol(i)*ABS(Y(i)) + AbsTol(i),                 
+!                                                                       
+!              and the rms-norm (root-mean-square norm) here is         
+!                                                                       
+!                 rms-norm(v) = SQRT(sum v(i)**2 / NEQ).                
+!                                                                       
+!              Here EWT = (EWT(i)) is a vector of weights which must    
+!              always be positive, and the values of RelTol and AbsTol      
+!              should all be nonnegative.  The following table gives the
+!              types (scalar/array) of RelTol and AbsTol, and the           
+!              corresponding form of EWT(i).                            
+!                                                                       
+!              ITOL    RelTol      AbsTol      EWT(i)                       
+!              ----    ------    ------    -----------------------------
+!              1       scalar    scalar    RelTol*ABS(Y(i)) + AbsTol        
+!              2       scalar    array     RelTol*ABS(Y(i)) + AbsTol(i)     
+!              3       array     scalar    RelTol(i)*ABS(Y(i)) + AbsTol     
+!              4       array     array     RelTol(i)*ABS(Y(i)) + AbsTol(i)  
+!                                                                       
+!              When either of these parameters is a scalar, it need not 
+!              be dimensioned in the user's calling program.            
+!                                                                       
+!              If none of the above choices (with ITOL, RelTol, and AbsTol  
+!              fixed throughout the problem) is suitable, more general  
+!              error controls can be obtained by substituting           
+!              user-supplied routines for the setting of EWT and/or for 
+!              the norm calculation.  See Part 4 below.                 
+!                                                                       
+!              If global errors are to be estimated by making a repeated
+!              run on the same problem with smaller tolerances, then all
+!              components of RelTol and AbsTol (i.e., of EWT) should be     
+!              scaled down uniformly.                                   
+!                                                                       
+!     ITASK    An index specifying the task to be performed.  Input     
+!              only.  ITASK has the following values and meanings:      
+!              1   Normal computation of output values of y(t) at       
+!                  t = TOUT (by overshooting and interpolating).        
+!              2   Take one step only and return.                       
+!              3   Stop at the first internal mesh point at or beyond   
+!                  t = TOUT and return.                                 
+!              4   Normal computation of output values of y(t) at       
+!                  t = TOUT but without overshooting t = TCRIT.  TCRIT  
+!                  must be input as RWORK(1).  TCRIT may be equal to or 
+!                  beyond TOUT, but not behind it in the direction of   
+!                  integration.  This option is useful if the problem   
+!                  has a singularity at or beyond t = TCRIT.            
+!              5   Take one step, without passing TCRIT, and return.    
+!                  TCRIT must be input as RWORK(1).                     
+!                                                                       
+!              Note:  If ITASK = 4 or 5 and the solver reaches TCRIT    
+!              (within roundoff), it will return T = TCRIT (exactly) to 
+!              indicate this (unless ITASK = 4 and TOUT comes before    
+!              TCRIT, in which case answers at T = TOUT are returned    
+!              first).                                                  
+!                                                                       
+!     ISTATE   An index used for input and output to specify the state  
+!              of the calculation.                                      
+!                                                                       
+!              On input, the values of ISTATE are as follows:           
+!              1   This is the first call for the problem               
+!                  (initializations will be done).  See "Note" below.   
+!              2   This is not the first call, and the calculation is to
+!                  continue normally, with no change in any input       
+!                  parameters except possibly TOUT and ITASK.  (If ITOL,
+!                  RelTol, and/or AbsTol are changed between calls with     
+!                  ISTATE = 2, the new values will be used but not      
+!                  tested for legality.)                                
+!              3   This is not the first call, and the calculation is to
+!                  continue normally, but with a change in input        
+!                  parameters other than TOUT and ITASK.  Changes are   
+!                  allowed in NEQ, ITOL, RelTol, AbsTol, IOPT, LRW, LIW, MF,
+!                  ML, MU, and any of the optional inputs except H0.    
+!                  (See IWORK description for ML and MU.)               
+!                                                                       
+!              Note:  A preliminary call with TOUT = T is not counted as
+!              a first call here, as no initialization or checking of   
+!              input is done.  (Such a call is sometimes useful for the 
+!              purpose of outputting the initial conditions.)  Thus the 
+!              first call for which TOUT .NE. T requires ISTATE = 1 on  
+!              input.                                                   
+!                                                                       
+!              On output, ISTATE has the following values and meanings: 
+!               1  Nothing was done, as TOUT was equal to T with        
+!                  ISTATE = 1 on input.                                 
+!               2  The integration was performed successfully.          
+!              -1  An excessive amount of work (more than MXSTEP steps) 
+!                  was done on this call, before completing the         
+!                  requested task, but the integration was otherwise    
+!                  successful as far as T. (MXSTEP is an optional input 
+!                  and is normally 500.)  To continue, the user may     
+!                  simply reset ISTATE to a value >1 and call again (the
+!                  excess work step counter will be reset to 0).  In    
+!                  addition, the user may increase MXSTEP to avoid this 
+!                  error return; see "Optional Inputs" below.           
+!              -2  Too much accuracy was requested for the precision of 
+!                  the machine being used.  This was detected before    
+!                  completing the requested task, but the integration   
+!                  was successful as far as T. To continue, the         
+!                  tolerance parameters must be reset, and ISTATE must  
+!                  be set to 3. The optional output TOLSF may be used   
+!                  for this purpose.  (Note:  If this condition is      
+!                  detected before taking any steps, then an illegal    
+!                  input return (ISTATE = -3) occurs instead.)          
+!              -3  Illegal input was detected, before taking any        
+!                  integration steps.  See written message for details. 
+!                  (Note:  If the solver detects an infinite loop of    
+!                  calls to the solver with illegal input, it will cause
+!                  the run to stop.)                                    
+!              -4  There were repeated error-test failures on one       
+!                  attempted step, before completing the requested task,
+!                  but the integration was successful as far as T.  The 
+!                  problem may have a singularity, or the input may be  
+!                  inappropriate.                                       
+!              -5  There were repeated convergence-test failures on one 
+!                  attempted step, before completing the requested task,
+!                  but the integration was successful as far as T. This 
+!                  may be caused by an inaccurate Jacobian matrix, if   
+!                  one is being used.                                   
+!              -6  EWT(i) became zero for some i during the integration.
+!                  Pure relative error control (AbsTol(i)=0.0) was        
+!                  requested on a variable which has now vanished.  The 
+!                  integration was successful as far as T.              
+!                                                                       
+!              Note:  Since the normal output value of ISTATE is 2, it  
+!              does not need to be reset for normal continuation.  Also,
+!              since a negative input value of ISTATE will be regarded  
+!              as illegal, a negative output value requires the user to 
+!              change it, and possibly other inputs, before calling the 
+!              solver again.                                            
+!                                                                       
+!     IOPT     An integer flag to specify whether any optional inputs   
+!              are being used on this call.  Input only.  The optional  
+!              inputs are listed under a separate heading below.        
+!              0   No optional inputs are being used.  Default values   
+!                  will be used in all cases.                           
+!              1   One or more optional inputs are being used.          
+!                                                                       
+!     RWORK    A real working array (double precision).  The length of  
+!              RWORK must be at least                                   
+!                                                                       
+!                 20 + NYH*(MAXORD + 1) + 3*NEQ + LWM                   
+!                                                                       
+!              where                                                    
+!                 NYH = the initial value of NEQ,                       
+!              MAXORD = 12 (if METH = 1) or 5 (if METH = 2) (unless a   
+!                       smaller value is given as an optional input),   
+!                 LWM = 0           if MITER = 0,                       
+!                 LWM = NEQ**2 + 2  if MITER = 1 or 2,                  
+!                 LWM = NEQ + 2     if MITER = 3, and                   
+!                 LWM = (2*ML + MU + 1)*NEQ + 2                         
+!                                   if MITER = 4 or 5.                  
+!              (See the MF description below for METH and MITER.)       
+!                                                                       
+!              Thus if MAXORD has its default value and NEQ is constant,
+!              this length is:                                          
+!              20 + 16*NEQ                    for MF = 10,              
+!              22 + 16*NEQ + NEQ**2           for MF = 11 or 12,        
+!              22 + 17*NEQ                    for MF = 13,              
+!              22 + 17*NEQ + (2*ML + MU)*NEQ  for MF = 14 or 15,        
+!              20 +  9*NEQ                    for MF = 20,              
+!              22 +  9*NEQ + NEQ**2           for MF = 21 or 22,        
+!              22 + 10*NEQ                    for MF = 23,              
+!              22 + 10*NEQ + (2*ML + MU)*NEQ  for MF = 24 or 25.        
+!                                                                       
+!              The first 20 words of RWORK are reserved for conditional 
+!              and optional inputs and optional outputs.                
+!                                                                       
+!              The following word in RWORK is a conditional input:      
+!              RWORK(1) = TCRIT, the critical value of t which the      
+!                         solver is not to overshoot.  Required if ITASK
+!                         is 4 or 5, and ignored otherwise.  See ITASK. 
+!                                                                       
+!     LRW      The length of the array RWORK, as declared by the user.  
+!              (This will be checked by the solver.)                    
+!                                                                       
+!     IWORK    An integer work array.  Its length must be at least      
+!              20       if MITER = 0 or 3 (MF = 10, 13, 20, 23), or     
+!              20 + NEQ otherwise (MF = 11, 12, 14, 15, 21, 22, 24, 25).
+!              (See the MF description below for MITER.)  The first few 
+!              words of IWORK are used for conditional and optional     
+!              inputs and optional outputs.                             
+!                                                                       
+!              The following two words in IWORK are conditional inputs: 
+!              IWORK(1) = ML   These are the lower and upper half-      
+!              IWORK(2) = MU   bandwidths, respectively, of the banded  
+!                              Jacobian, excluding the main diagonal.   
+!                         The band is defined by the matrix locations   
+!                         (i,j) with i - ML <= j <= i + MU. ML and MU   
+!                         must satisfy 0 <= ML,MU <= NEQ - 1. These are 
+!                         required if MITER is 4 or 5, and ignored      
+!                         otherwise.  ML and MU may in fact be the band 
+!                         parameters for a matrix to which df/dy is only
+!                         approximately equal.                          
+!                                                                       
+!     LIW      The length of the array IWORK, as declared by the user.  
+!              (This will be checked by the solver.)                    
+!                                                                       
+!     Note:  The work arrays must not be altered between calls to DLSODE
+!     for the same problem, except possibly for the conditional and     
+!     optional inputs, and except for the last 3*NEQ words of RWORK.    
+!     The latter space is used for internal scratch space, and so is    
+!     available for use by the user outside DLSODE between calls, if    
+!     desired (but not for use by F or JAC).                            
+!                                                                       
+!     JAC      The name of the user-supplied routine (MITER = 1 or 4) to
+!              compute the Jacobian matrix, df/dy, as a function of the 
+!              scalar t and the vector y.  (See the MF description below
+!              for MITER.)  It is to have the form                      
+!                                                                       
+!                 SUBROUTINE JAC (NEQ, T, Y, ML, MU, PD, NROWPD)        
+!                 KPP_REAL T, Y(*), PD(NROWPD,*)                
+!                                                                       
+!              where NEQ, T, Y, ML, MU, and NROWPD are input and the    
+!              array PD is to be loaded with partial derivatives        
+!              (elements of the Jacobian matrix) on output.  PD must be 
+!              given a first dimension of NROWPD.  T and Y have the same
+!              meaning as in subroutine F.                              
+!                                                                       
+!              In the full matrix case (MITER = 1), ML and MU are       
+!              ignored, and the Jacobian is to be loaded into PD in     
+!              columnwise manner, with df(i)/dy(j) loaded into PD(i,j). 
+!                                                                       
+!              In the band matrix case (MITER = 4), the elements within 
+!              the band are to be loaded into PD in columnwise manner,  
+!              with diagonal lines of df/dy loaded into the rows of PD. 
+!              Thus df(i)/dy(j) is to be loaded into PD(i-j+MU+1,j).  ML
+!              and MU are the half-bandwidth parameters (see IWORK).    
+!              The locations in PD in the two triangular areas which    
+!              correspond to nonexistent matrix elements can be ignored 
+!              or loaded arbitrarily, as they are overwritten by DLSODE.
+!                                                                       
+!              JAC need not provide df/dy exactly. A crude approximation
+!              (possibly with a smaller bandwidth) will do.             
+!                                                                       
+!              In either case, PD is preset to zero by the solver, so   
+!              that only the nonzero elements need be loaded by JAC.    
+!              Each call to JAC is preceded by a call to F with the same
+!              arguments NEQ, T, and Y. Thus to gain some efficiency,   
+!              intermediate quantities shared by both calculations may  
+!              be saved in a user COMMON block by F and not recomputed  
+!              by JAC, if desired.  Also, JAC may alter the Y array, if 
+!              desired.  JAC must be declared EXTERNAL in the calling   
+!              program.                                                 
+!                                                                       
+!              Subroutine JAC may access user-defined quantities in     
+!              NEQ(2),... and/or in Y(NEQ+1),... if NEQ is an array  
+!              (dimensioned in JAC) and/or Y has length exceeding       
+!              NEQ.  See the descriptions of NEQ and Y above.        
+!                                                                       
+!     MF       The method flag.  Used only for input.  The legal values 
+!              of MF are 10, 11, 12, 13, 14, 15, 20, 21, 22, 23, 24,    
+!              and 25.  MF has decimal digits METH and MITER:           
+!                 MF = 10*METH + MITER .                                
+!                                                                       
+!              METH indicates the basic linear multistep method:        
+!              1   Implicit Adams method.                               
+!              2   Method based on backward differentiation formulas    
+!                  (BDF's).                                             
+!                                                                       
+!              MITER indicates the corrector iteration method:          
+!              0   Functional iteration (no Jacobian matrix is          
+!                  involved).                                           
+!              1   Chord iteration with a user-supplied full (NEQ by    
+!                  NEQ) Jacobian.                                       
+!              2   Chord iteration with an internally generated         
+!                  (difference quotient) full Jacobian (using NEQ       
+!                  extra calls to F per df/dy value).                   
+!              3   Chord iteration with an internally generated         
+!                  diagonal Jacobian approximation (using one extra call
+!                  to F per df/dy evaluation).                          
+!              4   Chord iteration with a user-supplied banded Jacobian.
+!              5   Chord iteration with an internally generated banded  
+!                  Jacobian (using ML + MU + 1 extra calls to F per     
+!                  df/dy evaluation).                                   
+!                                                                       
+!              If MITER = 1 or 4, the user must supply a subroutine JAC 
+!              (the name is arbitrary) as described above under JAC.    
+!              For other values of MITER, a dummy argument can be used. 
+!                                                                       
+!     Optional Inputs                                                   
+!     ---------------                                                   
+!     The following is a list of the optional inputs provided for in the
+!     call sequence.  (See also Part 2.)  For each such input variable, 
+!     this table lists its name as used in this documentation, its      
+!     location in the call sequence, its meaning, and the default value.
+!     The use of any of these inputs requires IOPT = 1, and in that case
+!     all of these inputs are examined.  A value of zero for any of     
+!     these optional inputs will cause the default value to be used.    
+!     Thus to use a subset of the optional inputs, simply preload       
+!     locations 5 to 10 in RWORK and IWORK to 0.0 and 0 respectively,   
+!     and then set those of interest to nonzero values.                 
+!                                                                       
+!     Name    Location   Meaning and default value                      
+!     ------  ---------  -----------------------------------------------
+!     H0      RWORK(5)   Step size to be attempted on the first step.   
+!                        The default value is determined by the solver. 
+!     HMAX    RWORK(6)   Maximum absolute step size allowed.  The       
+!                        default value is infinite.                     
+!     HMIN    RWORK(7)   Minimum absolute step size allowed.  The       
+!                        default value is 0.  (This lower bound is not  
+!                        enforced on the final step before reaching     
+!                        TCRIT when ITASK = 4 or 5.)                    
+!     MAXORD  IWORK(5)   Maximum order to be allowed.  The default value
+!                        is 12 if METH = 1, and 5 if METH = 2. (See the 
+!                        MF description above for METH.)  If MAXORD     
+!                        exceeds the default value, it will be reduced  
+!                        to the default value.  If MAXORD is changed    
+!                        during the problem, it may cause the current   
+!                        order to be reduced.                           
+!     MXSTEP  IWORK(6)   Maximum number of (internally defined) steps   
+!                        allowed during one call to the solver.  The    
+!                        default value is 500.                          
+!     MXHNIL  IWORK(7)   Maximum number of messages printed (per        
+!                        problem) warning that T + H = T on a step      
+!                        (H = step size).  This must be positive to     
+!                        result in a nondefault value.  The default     
+!                        value is 10.                                   
+!                                                                       
+!     Optional Outputs                                                  
+!     ----------------                                                  
+!     As optional additional output from DLSODE, the variables listed   
+!     below are quantities related to the performance of DLSODE which   
+!     are available to the user.  These are communicated by way of the  
+!     work arrays, but also have internal mnemonic names as shown.      
+!     Except where stated otherwise, all of these outputs are defined on
+!     any successful return from DLSODE, and on any return with ISTATE =
+!     -1, -2, -4, -5, or -6.  On an illegal input return (ISTATE = -3), 
+!     they will be unchanged from their existing values (if any), except
+!     possibly for TOLSF, LENRW, and LENIW.  On any error return,       
+!     outputs relevant to the error will be defined, as noted below.    
+!                                                                       
+!     Name   Location   Meaning                                         
+!     -----  ---------  ------------------------------------------------
+!     HU     RWORK(11)  Step size in t last used (successfully).        
+!     HCUR   RWORK(12)  Step size to be attempted on the next step.     
+!     TCUR   RWORK(13)  Current value of the independent variable which 
+!                       the solver has actually reached, i.e., the      
+!                       current internal mesh point in t. On output,    
+!                       TCUR will always be at least as far as the      
+!                       argument T, but may be farther (if interpolation
+!                       was done).                                      
+!     TOLSF  RWORK(14)  Tolerance scale factor, greater than 1.0,       
+!                       computed when a request for too much accuracy   
+!                       was detected (ISTATE = -3 if detected at the    
+!                       start of the problem, ISTATE = -2 otherwise).   
+!                       If ITOL is left unaltered but RelTol and AbsTol are 
+!                       uniformly scaled up by a factor of TOLSF for the
+!                       next call, then the solver is deemed likely to  
+!                       succeed.  (The user may also ignore TOLSF and   
+!                       alter the tolerance parameters in any other way 
+!                       appropriate.)                                   
+!     NST    IWORK(11)  Number of steps taken for the problem so far.   
+!     NFE    IWORK(12)  Number of F evaluations for the problem so far. 
+!     NJE    IWORK(13)  Number of Jacobian evaluations (and of matrix LU
+!                       decompositions) for the problem so far.         
+!     NQU    IWORK(14)  Method order last used (successfully).          
+!     NQCUR  IWORK(15)  Order to be attempted on the next step.         
+!     IMXER  IWORK(16)  Index of the component of largest magnitude in  
+!                       the weighted local error vector ( e(i)/EWT(i) ),
+!                       on an error return with ISTATE = -4 or -5.      
+!     LENRW  IWORK(17)  Length of RWORK actually required.  This is     
+!                       defined on normal returns and on an illegal     
+!                       input return for insufficient storage.          
+!     LENIW  IWORK(18)  Length of IWORK actually required.  This is     
+!                       defined on normal returns and on an illegal     
+!                       input return for insufficient storage.          
+!                                                                       
+!     The following two arrays are segments of the RWORK array which may
+!     also be of interest to the user as optional outputs.  For each    
+!     array, the table below gives its internal name, its base address  
+!     in RWORK, and its description.                                    
+!                                                                       
+!     Name  Base address  Description                                   
+!     ----  ------------  ----------------------------------------------
+!     YH    21            The Nordsieck history array, of size NYH by   
+!                         (NQCUR + 1), where NYH is the initial value of
+!                         NEQ.  For j = 0,1,...,NQCUR, column j + 1 of  
+!                         YH contains HCUR**j/factorial(j) times the jth
+!                         derivative of the interpolating polynomial    
+!                         currently representing the solution, evaluated
+!                         at t = TCUR.                                  
+!     ACOR  LENRW-NEQ+1   Array of size NEQ used for the accumulated    
+!                         corrections on each step, scaled on output to 
+!                         represent the estimated local error in Y on   
+!                         the last step.  This is the vector e in the   
+!                         description of the error control.  It is      
+!                         defined only on successful return from DLSODE.
+!                                                                       
+!                                                                       
+!                    Part 2.  Other Callable Routines                   
+!                    --------------------------------                   
+!                                                                       
+!     The following are optional calls which the user may make to gain  
+!     additional capabilities in conjunction with DLSODE.               
+!                                                                       
+!     Form of call              Function                                
+!     ------------------------  ----------------------------------------
+!     CALL XSETUN(LUN)          Set the logical unit number, LUN, for   
+!                               output of messages from DLSODE, if the  
+!                               default is not desired.  The default    
+!                               value of LUN is 6. This call may be made
+!                               at any time and will take effect        
+!                               immediately.                            
+!     CALL XSETF(MFLAG)         Set a flag to control the printing of   
+!                               messages by DLSODE.  MFLAG = 0 means do 
+!                               not print.  (Danger:  this risks losing 
+!                               valuable information.)  MFLAG = 1 means 
+!                               print (the default).  This call may be  
+!                               made at any time and will take effect   
+!                               immediately.                            
+!     CALL DSRCOM(RSAV,ISAV,JOB)  Saves and restores the contents of the
+!                               internal COMMON blocks used by DLSODE   
+!                               (see Part 3 below).  RSAV must be a     
+!                               real array of length 218 or more, and   
+!                               ISAV must be an integer array of length 
+!                               37 or more.  JOB = 1 means save COMMON  
+!                               into RSAV/ISAV.  JOB = 2 means restore  
+!                               COMMON from same.  DSRCOM is useful if  
+!                               one is interrupting a run and restarting
+!                               later, or alternating between two or    
+!                               more problems solved with DLSODE.       
+!     CALL DINTDY(,,,,,)        Provide derivatives of y, of various    
+!     (see below)               orders, at a specified point t, if      
+!                               desired.  It may be called only after a 
+!                               successful return from DLSODE.  Detailed
+!                               instructions follow.                    
+!                                                                       
+!     Detailed instructions for using DINTDY                            
+!     --------------------------------------                            
+!     The form of the CALL is:                                          
+!                                                                       
+!           CALL DINTDY (T, K, RWORK(21), NYH, DKY, IFLAG)              
+!                                                                       
+!     The input parameters are:                                         
+!                                                                       
+!     T          Value of independent variable where answers are        
+!                desired (normally the same as the T last returned by   
+!                DLSODE).  For valid results, T must lie between        
+!                TCUR - HU and TCUR.  (See "Optional Outputs" above     
+!                for TCUR and HU.)                                      
+!     K          Integer order of the derivative desired.  K must       
+!                satisfy 0 <= K <= NQCUR, where NQCUR is the current    
+!                order (see "Optional Outputs").  The capability        
+!                corresponding to K = 0, i.e., computing y(t), is       
+!                already provided by DLSODE directly.  Since            
+!                NQCUR >= 1, the first derivative dy/dt is always       
+!                available with DINTDY.                                 
+!     RWORK(21)  The base address of the history array YH.              
+!     NYH        Column length of YH, equal to the initial value of NEQ.
+!                                                                       
+!     The output parameters are:                                        
+!                                                                       
+!     DKY        Real array of length NEQ containing the computed value 
+!                of the Kth derivative of y(t).                         
+!     IFLAG      Integer flag, returned as 0 if K and T were legal,     
+!                -1 if K was illegal, and -2 if T was illegal.          
+!                On an error return, a message is also written.         
+!                                                                       
+!                                                                       
+!                          Part 3.  Common Blocks                       
+!                          ----------------------                       
+!                                                                       
+!     If DLSODE is to be used in an overlay situation, the user must    
+!     declare, in the primary overlay, the variables in:                
+!     (1) the call sequence to DLSODE,                                  
+!     (2) the internal COMMON block /DLS001/, of length 255             
+!         (218 double precision words followed by 37 integer words).    
+!                                                                       
+!     If DLSODE is used on a system in which the contents of internal   
+!     COMMON blocks are not preserved between calls, the user should    
+!     declare the above COMMON block in his main program to insure that 
+!     its contents are preserved.                                       
+!                                                                       
+!     If the solution of a given problem by DLSODE is to be interrupted 
+!     and then later continued, as when restarting an interrupted run or
+!     alternating between two or more problems, the user should save,   
+!     following the return from the last DLSODE call prior to the       
+!     interruption, the contents of the call sequence variables and the 
+!     internal COMMON block, and later restore these values before the  
+!     next DLSODE call for that problem.   In addition, if XSETUN and/or
+!     XSETF was called for non-default handling of error messages, then 
+!     these calls must be repeated.  To save and restore the COMMON     
+!     block, use subroutine DSRCOM (see Part 2 above).                  
+!                                                                       
+!                                                                       
+!              Part 4.  Optionally Replaceable Solver Routines          
+!              -----------------------------------------------          
+!                                                                       
+!     Below are descriptions of two routines in the DLSODE package which
+!     relate to the measurement of errors.  Either routine can be       
+!     replaced by a user-supplied version, if desired.  However, since  
+!     such a replacement may have a major impact on performance, it     
+!     should be done only when absolutely necessary, and only with great
+!     caution.  (Note:  The means by which the package version of a     
+!     routine is superseded by the user's version may be system-        
+!     dependent.)                                                       
+!                                                                       
+!     DEWSET                                                            
+!     ------                                                            
+!     The following subroutine is called just before each internal      
+!     integration step, and sets the array of error weights, EWT, as    
+!     described under ITOL/RelTol/AbsTol above:                             
+!                                                                       
+!           SUBROUTINE DEWSET (NEQ, ITOL, RelTol, AbsTol, YCUR, EWT)        
+!                                                                       
+!     where NEQ, ITOL, RelTol, and AbsTol are as in the DLSODE call         
+!     sequence, YCUR contains the current dependent variable vector,    
+!     and EWT is the array of weights set by DEWSET.                    
+!                                                                       
+!     If the user supplies this subroutine, it must return in EWT(i)    
+!     (i = 1,...,NEQ) a positive quantity suitable for comparing errors 
+!     in Y(i) to.  The EWT array returned by DEWSET is passed to the    
+!     DVNORM routine (see below), and also used by DLSODE in the        
+!     computation of the optional output IMXER, the diagonal Jacobian   
+!     approximation, and the increments for difference quotient         
+!     Jacobians.                                                        
+!                                                                       
+!     In the user-supplied version of DEWSET, it may be desirable to use
+!     the current values of derivatives of y. Derivatives up to order NQ
+!     are available from the history array YH, described above under    
+!     optional outputs.  In DEWSET, YH is identical to the YCUR array,  
+!     extended to NQ + 1 columns with a column length of NYH and scale  
+!     factors of H**j/factorial(j).  On the first call for the problem, 
+!     given by NST = 0, NQ is 1 and H is temporarily set to 1.0.        
+!     NYH is the initial value of NEQ.  The quantities NQ, H, and NST   
+!     can be obtained by including in SEWSET the statements:            
+!           KPP_REAL RLS                                        
+!           COMMON /DLS001/ RLS(218),ILS(37)                            
+!           NQ = ILS(33)                                                
+!           NST = ILS(34)                                               
+!           H = RLS(212)                                                
+!     Thus, for example, the current value of dy/dt can be obtained as  
+!     YCUR(NYH+i)/H (i=1,...,NEQ) (and the division by H is unnecessary 
+!     when NST = 0).                                                    
+!                                                                       
+!     DVNORM                                                            
+!     ------                                                            
+!     DVNORM is a real function routine which computes the weighted     
+!     root-mean-square norm of a vector v:                              
+!                                                                       
+!        d = DVNORM (n, v, w)                                           
+!                                                                       
+!     where:                                                            
+!     n = the length of the vector,                                     
+!     v = real array of length n containing the vector,                 
+!     w = real array of length n containing weights,                    
+!     d = SQRT( (1/n) * sum(v(i)*w(i))**2 ).                            
+!                                                                       
+!     DVNORM is called with n = NEQ and with w(i) = 1.0/EWT(i), where   
+!     EWT is as set by subroutine DEWSET.                               
+!                                                                       
+!     If the user supplies this function, it should return a nonnegative
+!     value of DVNORM suitable for use in the error control in DLSODE.  
+!     None of the arguments should be altered by DVNORM.  For example, a
+!     user-supplied DVNORM routine might:                               
+!     - Substitute a max-norm of (v(i)*w(i)) for the rms-norm, or       
+!     - Ignore some components of v in the norm, with the effect of     
+!       suppressing the error control on those components of Y.         
+!  ---------------------------------------------------------------------
+!***ROUTINES CALLED  DEWSET, DINTDY, DUMACH, DSTODE, DVNORM, XERRWD     
+!***COMMON BLOCKS    DLS001                                             
+!***REVISION HISTORY  (YYYYMMDD)                                        
+! 19791129  DATE WRITTEN                                                
+! 19791213  Minor changes to declarations; DELP init. in STODE.         
+! 19800118  Treat NEQ as array; integer declarations added throughout;  
+!           minor changes to prologue.                                  
+! 19800306  Corrected TESCO(1,NQP1) setting in CFODE.                   
+! 19800519  Corrected access of YH on forced order reduction;           
+!           numerous corrections to prologues and other comments.       
+! 19800617  In main driver, added loading of SQRT(UROUND) in RWORK;     
+!           minor corrections to main prologue.                         
+! 19800923  Added zero initialization of HU and NQU.                    
+! 19801218  Revised XERRWD routine; minor corrections to main prologue. 
+! 19810401  Minor changes to comments and an error message.             
+! 19810814  Numerous revisions: replaced EWT by 1/EWT; used flags       
+!           JCUR, ICF, IERPJ, IERSL between STODE and subordinates;     
+!           added tuning parameters CCMAX, MAXCOR, MSBP, MXNCF;         
+!           reorganized returns from STODE; reorganized type decls.;    
+!           fixed message length in XERRWD; changed default LUNIT to 6; 
+!           changed Common lengths; changed comments throughout.        
+! 19870330  Major update by ACH: corrected comments throughout;         
+!           removed TRET from Common; rewrote EWSET with 4 loops;       
+!           fixed t test in INTDY; added Cray directives in STODE;      
+!           in STODE, fixed DELP init. and logic around PJAC call;      
+!           combined routines to save/restore Common;                   
+!           passed LEVEL = 0 in error message calls (except run abort). 
+! 19890426  Modified prologue to SLATEC/LDOC format.  (FNF)             
+! 19890501  Many improvements to prologue.  (FNF)                       
+! 19890503  A few final corrections to prologue.  (FNF)                 
+! 19890504  Minor cosmetic changes.  (FNF)                              
+! 19890510  Corrected description of Y in Arguments section.  (FNF)     
+! 19890517  Minor corrections to prologue.  (FNF)                       
+! 19920514  Updated with prologue edited 891025 by G. Shaw for manual.  
+! 19920515  Converted source lines to upper case.  (FNF)                
+! 19920603  Revised XERRWD calls using mixed upper-lower case.  (ACH)   
+! 19920616  Revised prologue comment regarding CFT.  (ACH)              
+! 19921116  Revised prologue comments regarding Common.  (ACH).         
+! 19930326  Added comment about non-reentrancy.  (FNF)                  
+! 19930723  Changed D1MACH to DUMACH. (FNF)                             
+! 19930801  Removed ILLIN and NTREP from Common (affects driver logic); 
+!           minor changes to prologue and internal comments;            
+!           changed Hollerith strings to quoted strings;                
+!           changed internal comments to mixed case;                    
+!           replaced XERRWD with new version using character type;      
+!           changed dummy dimensions from 1 to *. (ACH)                 
+! 19930809  Changed to generic intrinsic names; changed names of        
+!           subprograms and Common blocks to DLSODE etc. (ACH)          
+! 19930929  Eliminated use of REAL intrinsic; other minor changes. (ACH)
+! 20010412  Removed all 'own' variables from Common block /DLS001/      
+!           (affects declarations in 6 routines). (ACH)                 
+! 20010509  Minor corrections to prologue. (ACH)                        
+! 20031105  Restored 'own' variables to Common block /DLS001/, to       
+!           enable interrupt/restart feature. (ACH)                     
+! 20031112  Added SAVE statements for data-loaded constants.            
+!                                                                       
+!***END PROLOGUE  DLSODE                                                
+!                                                                       
+!*Internal Notes:                                                       
+!                                                                       
+! Other Routines in the DLSODE Package.                                 
+!                                                                       
+! In addition to Subroutine DLSODE, the DLSODE package includes the     
+! following subroutines and function routines:                          
+!  DINTDY   computes an interpolated value of the y vector at t = TOUT. 
+!  DSTODE   is the core integrator, which does one step of the          
+!           integration and the associated error control.               
+!  DCFODE   sets all method coefficients and test constants.            
+!  DPREPJ   computes and preprocesses the Jacobian matrix J = df/dy     
+!           and the Newton iteration matrix P = I - h*l0*J.             
+!  DSOLSY   manages solution of linear system in chord iteration.       
+!  DEWSET   sets the error weight vector EWT before each step.          
+!  DVNORM   computes the weighted R.M.S. norm of a vector.              
+!  DSRCOM   is a user-callable routine to save and restore              
+!           the contents of the internal Common block.                  
+!  DGEFA and DGESL   are routines from LINPACK for solving full         
+!           systems of linear algebraic equations.                      
+!  DGBFA and DGBSL   are routines from LINPACK for solving banded       
+!           linear systems.                                             
+!  DUMACH   computes the unit roundoff in a machine-independent manner. 
+!  XERRWD, XSETUN, XSETF, IXSAV, IUMACH   handle the printing of all    
+!           error messages and warnings.  XERRWD is machine-dependent.  
+! Note: DVNORM, DUMACH, IXSAV, and IUMACH are function routines.        
+! All the others are subroutines.                                       
+!                                                                       
+!**End                                                                  
+!                                                                       
+!  Declare externals.
+!  Note: they are now internal                                                   
+      !EXTERNAL DPREPJ, DSOLSY 
+      !KPP_REAL DUMACH, DVNORM 
+!                                                                       
+!  Declare all other variables.                                         
+      INTEGER INIT, MXSTEP, MXHNIL, NHNIL, NSLAST, NYH, IOWNS,          &
+        ICF, IERPJ, IERSL, JCUR, JSTART, KFLAG, L,                      &
+        LYH, LEWT, LACOR, LSAVF, LWM, LIWM, METH, MITER,                &
+        MAXORD, MAXCOR, MSBP, MXNCF, N, NQ, NST, NFE, NJE, NQU         
+      INTEGER I, I1, I2, IFLAG, IMXER, KGO, LF0,                        &
+        LENIW, LENRW, LENWM, ML, MORD(2), MU, MXHNL0, MXSTP0              
+      KPP_REAL ROWNS,                                           &
+        CCMAX, EL0, H, HMIN, HMXI, HU, RC, TN, UROUND                  
+      KPP_REAL AbsTolI, AYI, BIG, EWTI, H0, HMAX, HMX, RH, RelTolI, &
+        TCRIT, TDIST, TNEXT, TOL, TOLSF, TP, SIZE, SUM, W0             
+
+      LOGICAL IHIT 
+      CHARACTER*80 MSG 
+      SAVE MORD, MXSTP0, MXHNL0 
+!-----------------------------------------------------------------------
+! The following internal Common block contains                          
+! (a) variables which are local to any subroutine but whose values must 
+!     be preserved between calls to the routine ("own" variables), and  
+! (b) variables which are communicated between subroutines.             
+! The block DLS001 is declared in subroutines DLSODE, DINTDY, DSTODE,   
+! DPREPJ, and DSOLSY.                                                   
+! Groups of variables are replaced by dummy arrays in the Common        
+! declarations in routines where those variables are not used.          
+!-----------------------------------------------------------------------
+      COMMON /DLS001/ ROWNS(209),                                      &
+        CCMAX, EL0, H, HMIN, HMXI, HU, RC, TN, UROUND,                 &
+        INIT, MXSTEP, MXHNIL, NHNIL, NSLAST, NYH, IOWNS(6),            &
+        ICF, IERPJ, IERSL, JCUR, JSTART, KFLAG, L,                     &
+        LYH, LEWT, LACOR, LSAVF, LWM, LIWM, METH, MITER,               &
+        MAXORD, MAXCOR, MSBP, MXNCF, N, NQ, NST, NFE, NJE, NQU         
+!                                                                       
+      DATA  MORD(1),MORD(2)/12,5/, MXSTP0/5000/, MXHNL0/10/ 
+!-----------------------------------------------------------------------
+! Block A.                                                              
+! This code block is executed on every call.                            
+! It tests ISTATE and ITASK for legality and branches appropriately.    
+! If ISTATE .GT. 1 but the flag INIT shows that initialization has      
+! not yet been done, an error return occurs.                            
+! If ISTATE = 1 and TOUT = T, return immediately.                       
+!-----------------------------------------------------------------------
+!                                                                       
+!***FIRST EXECUTABLE STATEMENT  DLSODE                                  
+      IF (ISTATE .LT. 1 .OR. ISTATE .GT. 3) GO TO 601 
+      IF (ITASK .LT. 1 .OR. ITASK .GT. 5) GO TO 602 
+      IF (ISTATE .EQ. 1) GO TO 10 
+      IF (INIT .EQ. 0) GO TO 603 
+      IF (ISTATE .EQ. 2) GO TO 200 
+      GO TO 20 
+   10 INIT = 0 
+      IF (TOUT .EQ. T) RETURN 
+!-----------------------------------------------------------------------
+! Block B.                                                              
+! The next code block is executed for the initial call (ISTATE = 1),    
+! or for a continuation call with parameter changes (ISTATE = 3).       
+! It contains checking of all inputs and various initializations.       
+!                                                                       
+! First check legality of the non-optional inputs NEQ, ITOL, IOPT,      
+! MF, ML, and MU.                                                       
+!-----------------------------------------------------------------------
+   20 IF (NEQ .LE. 0) GO TO 604 
+      IF (ISTATE .EQ. 1) GO TO 25 
+      IF (NEQ .GT. N) GO TO 605 
+   25 N = NEQ 
+      IF (ITOL .LT. 1 .OR. ITOL .GT. 4) GO TO 606 
+      IF (IOPT .LT. 0 .OR. IOPT .GT. 1) GO TO 607 
+      METH = MF/10 
+      MITER = MF - 10*METH 
+      IF (METH .LT. 1 .OR. METH .GT. 2) GO TO 608 
+      IF (MITER .LT. 0 .OR. MITER .GT. 5) GO TO 608 
+      IF (MITER .LE. 3) GO TO 30 
+      ML = IWORK(1) 
+      MU = IWORK(2) 
+      IF (ML .LT. 0 .OR. ML .GE. N) GO TO 609 
+      IF (MU .LT. 0 .OR. MU .GE. N) GO TO 610 
+   30 CONTINUE 
+! Next process and check the optional inputs. --------------------------
+      IF (IOPT .EQ. 1) GO TO 40 
+      MAXORD = MORD(METH) 
+      MXSTEP = MXSTP0 
+      MXHNIL = MXHNL0 
+      IF (ISTATE .EQ. 1) H0 = 0.0D0 
+      HMXI = 0.0D0 
+      HMIN = 0.0D0 
+      GO TO 60 
+   40 MAXORD = IWORK(5) 
+      IF (MAXORD .LT. 0) GO TO 611 
+      IF (MAXORD .EQ. 0) MAXORD = 100 
+      MAXORD = MIN(MAXORD,MORD(METH)) 
+      MXSTEP = IWORK(6) 
+      IF (MXSTEP .LT. 0) GO TO 612 
+      IF (MXSTEP .EQ. 0) MXSTEP = MXSTP0 
+      MXHNIL = IWORK(7) 
+      IF (MXHNIL .LT. 0) GO TO 613 
+      IF (MXHNIL .EQ. 0) MXHNIL = MXHNL0 
+      IF (ISTATE .NE. 1) GO TO 50 
+      H0 = RWORK(5) 
+      IF ((TOUT - T)*H0 .LT. 0.0D0) GO TO 614 
+   50 HMAX = RWORK(6) 
+      IF (HMAX .LT. 0.0D0) GO TO 615 
+      HMXI = 0.0D0 
+      IF (HMAX .GT. 0.0D0) HMXI = 1.0D0/HMAX 
+      HMIN = RWORK(7) 
+      IF (HMIN .LT. 0.0D0) GO TO 616 
+!-----------------------------------------------------------------------
+! Set work array pointers and check lengths LRW and LIW.                
+! Pointers to segments of RWORK and IWORK are named by prefixing L to   
+! the name of the segment.  E.g., the segment YH starts at RWORK(LYH).  
+! Segments of RWORK (in order) are denoted  YH, WM, EWT, SAVF, ACOR.    
+!-----------------------------------------------------------------------
+   60 LYH = 21 
+      IF (ISTATE .EQ. 1) NYH = N 
+      LWM = LYH + (MAXORD + 1)*NYH 
+      IF (MITER .EQ. 0) LENWM = 0 
+      IF (MITER .EQ. 1 .OR. MITER .EQ. 2) LENWM = N*N + 2 
+      IF (MITER .EQ. 3) LENWM = N + 2 
+      IF (MITER .GE. 4) LENWM = (2*ML + MU + 1)*N + 2 
+      LEWT = LWM + LENWM 
+      LSAVF = LEWT + N 
+      LACOR = LSAVF + N 
+      LENRW = LACOR + N - 1 
+      IWORK(17) = LENRW 
+      LIWM = 1 
+      LENIW = 20 + N 
+      IF (MITER .EQ. 0 .OR. MITER .EQ. 3) LENIW = 20 
+      IWORK(18) = LENIW 
+      IF (LENRW .GT. LRW) GO TO 617 
+      IF (LENIW .GT. LIW) GO TO 618 
+! Check RelTol and AbsTol for legality. ------------------------------------
+      RelTolI = RelTol(1) 
+      AbsTolI = AbsTol(1) 
+      DO 70 I = 1,N 
+        IF (ITOL .GE. 3) RelTolI = RelTol(I) 
+        IF (ITOL .EQ. 2 .OR. ITOL .EQ. 4) AbsTolI = AbsTol(I) 
+        IF (RelTolI .LT. 0.0D0) GO TO 619 
+        IF (AbsTolI .LT. 0.0D0) GO TO 620 
+   70   CONTINUE 
+      IF (ISTATE .EQ. 1) GO TO 100 
+! If ISTATE = 3, set flag to signal parameter changes to DSTODE. -------
+      JSTART = -1 
+      IF (NQ .LE. MAXORD) GO TO 90 
+! MAXORD was reduced below NQ.  Copy YH(*,MAXORD+2) into SAVF. ---------
+      DO 80 I = 1,N 
+   80   RWORK(I+LSAVF-1) = RWORK(I+LWM-1) 
+! Reload WM(1) = RWORK(LWM), since LWM may have changed. ---------------
+   90 IF (MITER .GT. 0) RWORK(LWM) = SQRT(UROUND) 
+      IF (N .EQ. NYH) GO TO 200 
+! NEQ was reduced.  Zero part of YH to avoid undefined references. -----
+      I1 = LYH + L*NYH 
+      I2 = LYH + (MAXORD + 1)*NYH - 1 
+      IF (I1 .GT. I2) GO TO 200 
+      DO 95 I = I1,I2 
+   95   RWORK(I) = 0.0D0 
+      GO TO 200 
+!-----------------------------------------------------------------------
+! Block C.                                                              
+! The next block is for the initial call only (ISTATE = 1).             
+! It contains all remaining initializations, the initial call to F,     
+! and the calculation of the initial step size.                         
+! The error weights in EWT are inverted after being loaded.             
+!-----------------------------------------------------------------------
+  100 UROUND = DUMACH() 
+      TN = T 
+      IF (ITASK .NE. 4 .AND. ITASK .NE. 5) GO TO 110 
+      TCRIT = RWORK(1) 
+      IF ((TCRIT - TOUT)*(TOUT - T) .LT. 0.0D0) GO TO 625 
+      IF (H0 .NE. 0.0D0 .AND. (T + H0 - TCRIT)*H0 .GT. 0.0D0)           &
+        H0 = TCRIT - T                                                 
+  110 JSTART = 0 
+      IF (MITER .GT. 0) RWORK(LWM) = SQRT(UROUND) 
+      NHNIL = 0 
+      NST = 0 
+      NJE = 0 
+      NSLAST = 0 
+      HU = 0.0D0 
+      NQU = 0 
+      CCMAX = 0.3D0 
+      MAXCOR = 3 
+      MSBP = 20 
+      MXNCF = 10 
+! Initial call to F.  (LF0 points to YH(*,2).) -------------------------
+      LF0 = LYH + NYH 
+      CALL F (NEQ, T, Y, RWORK(LF0)) 
+      NFE = 1 
+! Load the initial value vector in YH. ---------------------------------
+      DO 115 I = 1,N 
+  115   RWORK(I+LYH-1) = Y(I) 
+! Load and invert the EWT array.  (H is temporarily set to 1.0.) -------
+      NQ = 1 
+      H = 1.0D0 
+      CALL DEWSET (N, ITOL, RelTol, AbsTol, RWORK(LYH), RWORK(LEWT)) 
+      DO 120 I = 1,N 
+        IF (RWORK(I+LEWT-1) .LE. 0.0D0) GO TO 621 
+  120   RWORK(I+LEWT-1) = 1.0D0/RWORK(I+LEWT-1) 
+!-----------------------------------------------------------------------
+! The coding below computes the step size, H0, to be attempted on the   
+! first step, unless the user has supplied a value for this.            
+! First check that TOUT - T differs significantly from zero.            
+! A scalar tolerance quantity TOL is computed, as MAX(RelTol(I))          
+! if this is positive, or MAX(AbsTol(I)/ABS(Y(I))) otherwise, adjusted    
+! so as to be between 100*UROUND and 1.0E-3.                            
+! Then the computed value H0 is given by..                              
+!                                      NEQ                              
+!   H0**2 = TOL / ( w0**-2 + (1/NEQ) * SUM ( f(i)/ywt(i) )**2  )        
+!                                       1                               
+! where   w0     = MAX ( ABS(T), ABS(TOUT) ),                           
+!         f(i)   = i-th component of initial value of f,                
+!         ywt(i) = EWT(i)/TOL  (a weight for y(i)).                     
+! The sign of H0 is inferred from the initial values of TOUT and T.     
+!-----------------------------------------------------------------------
+      IF (H0 .NE. 0.0D0) GO TO 180 
+      TDIST = ABS(TOUT - T) 
+      W0 = MAX(ABS(T),ABS(TOUT)) 
+      IF (TDIST .LT. 2.0D0*UROUND*W0) GO TO 622 
+      TOL = RelTol(1) 
+      IF (ITOL .LE. 2) GO TO 140 
+      DO 130 I = 1,N 
+  130   TOL = MAX(TOL,RelTol(I)) 
+  140 IF (TOL .GT. 0.0D0) GO TO 160 
+      AbsTolI = AbsTol(1) 
+      DO 150 I = 1,N 
+        IF (ITOL .EQ. 2 .OR. ITOL .EQ. 4) AbsTolI = AbsTol(I) 
+        AYI = ABS(Y(I)) 
+        IF (AYI .NE. 0.0D0) TOL = MAX(TOL,AbsTolI/AYI) 
+  150   CONTINUE 
+  160 TOL = MAX(TOL,100.0D0*UROUND) 
+      TOL = MIN(TOL,0.001D0) 
+      SUM = DVNORM (N, RWORK(LF0), RWORK(LEWT)) 
+      SUM = 1.0D0/(TOL*W0*W0) + TOL*SUM**2 
+      H0 = 1.0D0/SQRT(SUM) 
+      H0 = MIN(H0,TDIST) 
+      H0 = SIGN(H0,TOUT-T) 
+! Adjust H0 if necessary to meet HMAX bound. ---------------------------
+  180 RH = ABS(H0)*HMXI 
+      IF (RH .GT. 1.0D0) H0 = H0/RH 
+! Load H with H0 and scale YH(*,2) by H0. ------------------------------
+      H = H0 
+      DO 190 I = 1,N 
+  190   RWORK(I+LF0-1) = H0*RWORK(I+LF0-1) 
+      GO TO 270 
+!-----------------------------------------------------------------------
+! Block D.                                                              
+! The next code block is for continuation calls only (ISTATE = 2 or 3)  
+! and is to check stop conditions before taking a step.                 
+!-----------------------------------------------------------------------
+  200 NSLAST = NST 
+      GO TO (210, 250, 220, 230, 240), ITASK 
+  210 IF ((TN - TOUT)*H .LT. 0.0D0) GO TO 250 
+      CALL DINTDY (TOUT, 0, RWORK(LYH), NYH, Y, IFLAG) 
+      IF (IFLAG .NE. 0) GO TO 627 
+      T = TOUT 
+      GO TO 420 
+  220 TP = TN - HU*(1.0D0 + 100.0D0*UROUND) 
+      IF ((TP - TOUT)*H .GT. 0.0D0) GO TO 623 
+      IF ((TN - TOUT)*H .LT. 0.0D0) GO TO 250 
+      GO TO 400 
+  230 TCRIT = RWORK(1) 
+      IF ((TN - TCRIT)*H .GT. 0.0D0) GO TO 624 
+      IF ((TCRIT - TOUT)*H .LT. 0.0D0) GO TO 625 
+      IF ((TN - TOUT)*H .LT. 0.0D0) GO TO 245 
+      CALL DINTDY (TOUT, 0, RWORK(LYH), NYH, Y, IFLAG) 
+      IF (IFLAG .NE. 0) GO TO 627 
+      T = TOUT 
+      GO TO 420 
+  240 TCRIT = RWORK(1) 
+      IF ((TN - TCRIT)*H .GT. 0.0D0) GO TO 624 
+  245 HMX = ABS(TN) + ABS(H) 
+      IHIT = ABS(TN - TCRIT) .LE. 100.0D0*UROUND*HMX 
+      IF (IHIT) GO TO 400 
+      TNEXT = TN + H*(1.0D0 + 4.0D0*UROUND) 
+      IF ((TNEXT - TCRIT)*H .LE. 0.0D0) GO TO 250 
+      H = (TCRIT - TN)*(1.0D0 - 4.0D0*UROUND) 
+      IF (ISTATE .EQ. 2) JSTART = -2 
+!-----------------------------------------------------------------------
+! Block E.                                                              
+! The next block is normally executed for all calls and contains        
+! the call to the one-step core integrator DSTODE.                      
+!                                                                       
+! This is a looping point for the integration steps.                    
+!                                                                       
+! First check for too many steps being taken, update EWT (if not at     
+! start of problem), check for too much accuracy being requested, and   
+! check for H below the roundoff level in T.                            
+!-----------------------------------------------------------------------
+  250 CONTINUE 
+      IF ((NST-NSLAST) .GE. MXSTEP) GO TO 500 
+      CALL DEWSET (N, ITOL, RelTol, AbsTol, RWORK(LYH), RWORK(LEWT)) 
+      DO 260 I = 1,N 
+        IF (RWORK(I+LEWT-1) .LE. 0.0D0) GO TO 510 
+  260   RWORK(I+LEWT-1) = 1.0D0/RWORK(I+LEWT-1) 
+  270 TOLSF = UROUND*DVNORM (N, RWORK(LYH), RWORK(LEWT)) 
+      IF (TOLSF .LE. 1.0D0) GO TO 280 
+      TOLSF = TOLSF*2.0D0 
+      IF (NST .EQ. 0) GO TO 626 
+      GO TO 520 
+  280 IF ((TN + H) .NE. TN) GO TO 290 
+      NHNIL = NHNIL + 1 
+      IF (NHNIL .GT. MXHNIL) GO TO 290 
+      MSG = 'DLSODE-  Warning..internal T (=R1) and H (=R2) are' 
+      CALL XERRWD (MSG, 50, 101, 0, 0, 0, 0, 0, 0.0D0, 0.0D0) 
+      MSG='      such that in the machine, T + H = T on the next step  ' 
+      CALL XERRWD (MSG, 60, 101, 0, 0, 0, 0, 0, 0.0D0, 0.0D0) 
+      MSG = '      (H = step size). Solver will continue anyway' 
+      CALL XERRWD (MSG, 50, 101, 0, 0, 0, 0, 2, TN, H) 
+      IF (NHNIL .LT. MXHNIL) GO TO 290 
+      MSG = 'DLSODE-  Above warning has been issued I1 times.  ' 
+      CALL XERRWD (MSG, 50, 102, 0, 0, 0, 0, 0, 0.0D0, 0.0D0) 
+      MSG = '      It will not be issued again for this problem' 
+      CALL XERRWD (MSG, 50, 102, 0, 1, MXHNIL, 0, 0, 0.0D0, 0.0D0) 
+  290 CONTINUE 
+!-----------------------------------------------------------------------
+!  CALL DSTODE(NEQ,Y,YH,NYH,YH,EWT,SAVF,ACOR,WM,IWM,F,JAC,DPREPJ,DSOLSY)
+!-----------------------------------------------------------------------
+      CALL DSTODE (NEQ, Y, RWORK(LYH), NYH, RWORK(LYH), RWORK(LEWT),   &
+        RWORK(LSAVF), RWORK(LACOR), RWORK(LWM), IWORK(LIWM),           &
+        F, JAC)                                        
+        !F, JAC, DPREPJ, DSOLSY)                                        
+      KGO = 1 - KFLAG 
+      GO TO (300, 530, 540), KGO 
+!-----------------------------------------------------------------------
+! Block F.                                                              
+! The following block handles the case of a successful return from the  
+! core integrator (KFLAG = 0).  Test for stop conditions.               
+!-----------------------------------------------------------------------
+  300 INIT = 1 
+      GO TO (310, 400, 330, 340, 350), ITASK 
+! ITASK = 1.  If TOUT has been reached, interpolate. -------------------
+  310 IF ((TN - TOUT)*H .LT. 0.0D0) GO TO 250 
+      CALL DINTDY (TOUT, 0, RWORK(LYH), NYH, Y, IFLAG) 
+      T = TOUT 
+      GO TO 420 
+! ITASK = 3.  Jump to exit if TOUT was reached. ------------------------
+  330 IF ((TN - TOUT)*H .GE. 0.0D0) GO TO 400 
+      GO TO 250 
+! ITASK = 4.  See if TOUT or TCRIT was reached.  Adjust H if necessary. 
+  340 IF ((TN - TOUT)*H .LT. 0.0D0) GO TO 345 
+      CALL DINTDY (TOUT, 0, RWORK(LYH), NYH, Y, IFLAG) 
+      T = TOUT 
+      GO TO 420 
+  345 HMX = ABS(TN) + ABS(H) 
+      IHIT = ABS(TN - TCRIT) .LE. 100.0D0*UROUND*HMX 
+      IF (IHIT) GO TO 400 
+      TNEXT = TN + H*(1.0D0 + 4.0D0*UROUND) 
+      IF ((TNEXT - TCRIT)*H .LE. 0.0D0) GO TO 250 
+      H = (TCRIT - TN)*(1.0D0 - 4.0D0*UROUND) 
+      JSTART = -2 
+      GO TO 250 
+! ITASK = 5.  See if TCRIT was reached and jump to exit. ---------------
+  350 HMX = ABS(TN) + ABS(H) 
+      IHIT = ABS(TN - TCRIT) .LE. 100.0D0*UROUND*HMX 
+!-----------------------------------------------------------------------
+! Block G.                                                              
+! The following block handles all successful returns from DLSODE.       
+! If ITASK .NE. 1, Y is loaded from YH and T is set accordingly.        
+! ISTATE is set to 2, and the optional outputs are loaded into the      
+! work arrays before returning.                                         
+!-----------------------------------------------------------------------
+  400 DO 410 I = 1,N 
+  410   Y(I) = RWORK(I+LYH-1) 
+      T = TN 
+      IF (ITASK .NE. 4 .AND. ITASK .NE. 5) GO TO 420 
+      IF (IHIT) T = TCRIT 
+  420 ISTATE = 2 
+      RWORK(11) = HU 
+      RWORK(12) = H 
+      RWORK(13) = TN 
+      IWORK(11) = NST 
+      IWORK(12) = NFE 
+      IWORK(13) = NJE 
+      IWORK(14) = NQU 
+      IWORK(15) = NQ 
+      RETURN 
+!-----------------------------------------------------------------------
+! Block H.                                                              
+! The following block handles all unsuccessful returns other than       
+! those for illegal input.  First the error message routine is called.  
+! If there was an error test or convergence test failure, IMXER is set. 
+! Then Y is loaded from YH and T is set to TN.  The optional outputs    
+! are loaded into the work arrays before returning.                     
+!-----------------------------------------------------------------------
+! The maximum number of steps was taken before reaching TOUT. ----------
+  500 MSG = 'DLSODE-  At current T (=R1), MXSTEP (=I1) steps   ' 
+      CALL XERRWD (MSG, 50, 201, 0, 0, 0, 0, 0, 0.0D0, 0.0D0) 
+      MSG = '      taken on this call before reaching TOUT     ' 
+      CALL XERRWD (MSG, 50, 201, 0, 1, MXSTEP, 0, 1, TN, 0.0D0) 
+      ISTATE = -1 
+      GO TO 580 
+! EWT(I) .LE. 0.0 for some I (not at start of problem). ----------------
+  510 EWTI = RWORK(LEWT+I-1) 
+      MSG = 'DLSODE-  At T (=R1), EWT(I1) has become R2 .LE. 0.' 
+      CALL XERRWD (MSG, 50, 202, 0, 1, I, 0, 2, TN, EWTI) 
+      ISTATE = -6 
+      GO TO 580 
+! Too much accuracy requested for machine precision. -------------------
+  520 MSG = 'DLSODE-  At T (=R1), too much accuracy requested  ' 
+      CALL XERRWD (MSG, 50, 203, 0, 0, 0, 0, 0, 0.0D0, 0.0D0) 
+      MSG = '      for precision of machine..  see TOLSF (=R2) ' 
+      CALL XERRWD (MSG, 50, 203, 0, 0, 0, 0, 2, TN, TOLSF) 
+      RWORK(14) = TOLSF 
+      ISTATE = -2 
+      GO TO 580 
+! KFLAG = -1.  Error test failed repeatedly or with ABS(H) = HMIN. -----
+  530 MSG = 'DLSODE-  At T(=R1) and step size H(=R2), the error' 
+      CALL XERRWD (MSG, 50, 204, 0, 0, 0, 0, 0, 0.0D0, 0.0D0) 
+      MSG = '      test failed repeatedly or with ABS(H) = HMIN' 
+      CALL XERRWD (MSG, 50, 204, 0, 0, 0, 0, 2, TN, H) 
+      ISTATE = -4 
+      GO TO 560 
+! KFLAG = -2.  Convergence failed repeatedly or with ABS(H) = HMIN. ----
+  540 MSG = 'DLSODE-  At T (=R1) and step size H (=R2), the    ' 
+      CALL XERRWD (MSG, 50, 205, 0, 0, 0, 0, 0, 0.0D0, 0.0D0) 
+      MSG = '      corrector convergence failed repeatedly     ' 
+      CALL XERRWD (MSG, 50, 205, 0, 0, 0, 0, 0, 0.0D0, 0.0D0) 
+      MSG = '      or with ABS(H) = HMIN   ' 
+      CALL XERRWD (MSG, 30, 205, 0, 0, 0, 0, 2, TN, H) 
+      ISTATE = -5 
+! Compute IMXER if relevant. -------------------------------------------
+  560 BIG = 0.0D0 
+      IMXER = 1 
+      DO 570 I = 1,N 
+        SIZE = ABS(RWORK(I+LACOR-1)*RWORK(I+LEWT-1)) 
+        IF (BIG .GE. SIZE) GO TO 570 
+        BIG = SIZE 
+        IMXER = I 
+  570   CONTINUE 
+      IWORK(16) = IMXER 
+! Set Y vector, T, and optional outputs. -------------------------------
+  580 DO 590 I = 1,N 
+  590   Y(I) = RWORK(I+LYH-1) 
+      T = TN 
+      RWORK(11) = HU 
+      RWORK(12) = H 
+      RWORK(13) = TN 
+      IWORK(11) = NST 
+      IWORK(12) = NFE 
+      IWORK(13) = NJE 
+      IWORK(14) = NQU 
+      IWORK(15) = NQ 
+      RETURN 
+!-----------------------------------------------------------------------
+! Block I.                                                              
+! The following block handles all error returns due to illegal input    
+! (ISTATE = -3), as detected before calling the core integrator.        
+! First the error message routine is called.  If the illegal input      
+! is a negative ISTATE, the run is aborted (apparent infinite loop).    
+!-----------------------------------------------------------------------
+  601 MSG = 'DLSODE-  ISTATE (=I1) illegal ' 
+      CALL XERRWD (MSG, 30, 1, 0, 1, ISTATE, 0, 0, 0.0D0, 0.0D0) 
+      IF (ISTATE .LT. 0) GO TO 800 
+      GO TO 700 
+  602 MSG = 'DLSODE-  ITASK (=I1) illegal  ' 
+      CALL XERRWD (MSG, 30, 2, 0, 1, ITASK, 0, 0, 0.0D0, 0.0D0) 
+      GO TO 700 
+  603 MSG = 'DLSODE-  ISTATE .GT. 1 but DLSODE not initialized ' 
+      CALL XERRWD (MSG, 50, 3, 0, 0, 0, 0, 0, 0.0D0, 0.0D0) 
+      GO TO 700 
+  604 MSG = 'DLSODE-  NEQ (=I1) .LT. 1     ' 
+      CALL XERRWD (MSG, 30, 4, 0, 1, NEQ, 0, 0, 0.0D0, 0.0D0) 
+      GO TO 700 
+  605 MSG = 'DLSODE-  ISTATE = 3 and NEQ increased (I1 to I2)  ' 
+      CALL XERRWD (MSG, 50, 5, 0, 2, N, NEQ, 0, 0.0D0, 0.0D0) 
+      GO TO 700 
+  606 MSG = 'DLSODE-  ITOL (=I1) illegal   ' 
+      CALL XERRWD (MSG, 30, 6, 0, 1, ITOL, 0, 0, 0.0D0, 0.0D0) 
+      GO TO 700 
+  607 MSG = 'DLSODE-  IOPT (=I1) illegal   ' 
+      CALL XERRWD (MSG, 30, 7, 0, 1, IOPT, 0, 0, 0.0D0, 0.0D0) 
+      GO TO 700 
+  608 MSG = 'DLSODE-  MF (=I1) illegal     ' 
+      CALL XERRWD (MSG, 30, 8, 0, 1, MF, 0, 0, 0.0D0, 0.0D0) 
+      GO TO 700 
+  609 MSG = 'DLSODE-  ML (=I1) illegal.. .LT.0 or .GE.NEQ (=I2)' 
+      CALL XERRWD (MSG, 50, 9, 0, 2, ML, NEQ, 0, 0.0D0, 0.0D0) 
+      GO TO 700 
+  610 MSG = 'DLSODE-  MU (=I1) illegal.. .LT.0 or .GE.NEQ (=I2)' 
+      CALL XERRWD (MSG, 50, 10, 0, 2, MU, NEQ, 0, 0.0D0, 0.0D0) 
+      GO TO 700 
+  611 MSG = 'DLSODE-  MAXORD (=I1) .LT. 0  ' 
+      CALL XERRWD (MSG, 30, 11, 0, 1, MAXORD, 0, 0, 0.0D0, 0.0D0) 
+      GO TO 700 
+  612 MSG = 'DLSODE-  MXSTEP (=I1) .LT. 0  ' 
+      CALL XERRWD (MSG, 30, 12, 0, 1, MXSTEP, 0, 0, 0.0D0, 0.0D0) 
+      GO TO 700 
+  613 MSG = 'DLSODE-  MXHNIL (=I1) .LT. 0  ' 
+      CALL XERRWD (MSG, 30, 13, 0, 1, MXHNIL, 0, 0, 0.0D0, 0.0D0) 
+      GO TO 700 
+  614 MSG = 'DLSODE-  TOUT (=R1) behind T (=R2)      ' 
+      CALL XERRWD (MSG, 40, 14, 0, 0, 0, 0, 2, TOUT, T) 
+      MSG = '      Integration direction is given by H0 (=R1)  ' 
+      CALL XERRWD (MSG, 50, 14, 0, 0, 0, 0, 1, H0, 0.0D0) 
+      GO TO 700 
+  615 MSG = 'DLSODE-  HMAX (=R1) .LT. 0.0  ' 
+      CALL XERRWD (MSG, 30, 15, 0, 0, 0, 0, 1, HMAX, 0.0D0) 
+      GO TO 700 
+  616 MSG = 'DLSODE-  HMIN (=R1) .LT. 0.0  ' 
+      CALL XERRWD (MSG, 30, 16, 0, 0, 0, 0, 1, HMIN, 0.0D0) 
+      GO TO 700 
+  617 CONTINUE 
+      MSG='DLSODE-  RWORK length needed, LENRW (=I1), exceeds LRW (=I2)' 
+      CALL XERRWD (MSG, 60, 17, 0, 2, LENRW, LRW, 0, 0.0D0, 0.0D0) 
+      GO TO 700 
+  618 CONTINUE 
+      MSG='DLSODE-  IWORK length needed, LENIW (=I1), exceeds LIW (=I2)' 
+      CALL XERRWD (MSG, 60, 18, 0, 2, LENIW, LIW, 0, 0.0D0, 0.0D0) 
+      GO TO 700 
+  619 MSG = 'DLSODE-  RelTol(I1) is R1 .LT. 0.0        ' 
+      CALL XERRWD (MSG, 40, 19, 0, 1, I, 0, 1, RelTolI, 0.0D0) 
+      GO TO 700 
+  620 MSG = 'DLSODE-  AbsTol(I1) is R1 .LT. 0.0        ' 
+      CALL XERRWD (MSG, 40, 20, 0, 1, I, 0, 1, AbsTolI, 0.0D0) 
+      GO TO 700 
+  621 EWTI = RWORK(LEWT+I-1) 
+      MSG = 'DLSODE-  EWT(I1) is R1 .LE. 0.0         ' 
+      CALL XERRWD (MSG, 40, 21, 0, 1, I, 0, 1, EWTI, 0.0D0) 
+      GO TO 700 
+  622 CONTINUE 
+      MSG='DLSODE-  TOUT (=R1) too close to T(=R2) to start integration' 
+      CALL XERRWD (MSG, 60, 22, 0, 0, 0, 0, 2, TOUT, T) 
+      GO TO 700 
+  623 CONTINUE 
+      MSG='DLSODE-  ITASK = I1 and TOUT (=R1) behind TCUR - HU (= R2)  ' 
+      CALL XERRWD (MSG, 60, 23, 0, 1, ITASK, 0, 2, TOUT, TP) 
+      GO TO 700 
+  624 CONTINUE 
+      MSG='DLSODE-  ITASK = 4 OR 5 and TCRIT (=R1) behind TCUR (=R2)   ' 
+      CALL XERRWD (MSG, 60, 24, 0, 0, 0, 0, 2, TCRIT, TN) 
+      GO TO 700 
+  625 CONTINUE 
+      MSG='DLSODE-  ITASK = 4 or 5 and TCRIT (=R1) behind TOUT (=R2)   ' 
+      CALL XERRWD (MSG, 60, 25, 0, 0, 0, 0, 2, TCRIT, TOUT) 
+      GO TO 700 
+  626 MSG = 'DLSODE-  At start of problem, too much accuracy   ' 
+      CALL XERRWD (MSG, 50, 26, 0, 0, 0, 0, 0, 0.0D0, 0.0D0) 
+      MSG='      requested for precision of machine..  See TOLSF (=R1) ' 
+      CALL XERRWD (MSG, 60, 26, 0, 0, 0, 0, 1, TOLSF, 0.0D0) 
+      RWORK(14) = TOLSF 
+      GO TO 700 
+  627 MSG = 'DLSODE-  Trouble in DINTDY.  ITASK = I1, TOUT = R1' 
+      CALL XERRWD (MSG, 50, 27, 0, 1, ITASK, 0, 1, TOUT, 0.0D0) 
+!                                                                       
+  700 ISTATE = -3 
+      RETURN 
+!                                                                       
+  800 MSG = 'DLSODE-  Run aborted.. apparent infinite loop     ' 
+      CALL XERRWD (MSG, 50, 303, 2, 0, 0, 0, 0, 0.0D0, 0.0D0) 
+      RETURN 
+!----------------------- END OF SUBROUTINE DLSODE ----------------------
+      !END SUBROUTINE DLSODE                                          
+      CONTAINS                                          
+
+
+!DECK DUMACH   
+      KPP_REAL FUNCTION DUMACH () 
+!***BEGIN PROLOGUE  DUMACH                                              
+!***PURPOSE  Compute the unit roundoff of the machine.                  
+!***CATEGORY  R1                                                        
+!***TYPE      KPP_REAL (RUMACH-S, DUMACH-D)                     
+!***KEYWORDS  MACHINE CONSTANTS                                         
+!***AUTHOR  Hindmarsh, Alan C., (LLNL)                                  
+!***DESCRIPTION                                                         
+! *Usage:                                                               
+!        KPP_REAL  A, DUMACH                                    
+!        A = DUMACH()                                                   
+!                                                                       
+! *Function Return Values:                                              
+!     A : the unit roundoff of the machine.                             
+!                                                                       
+! *Description:                                                         
+!     The unit roundoff is defined as the smallest positive machine     
+!     number u such that  1.0 + u .ne. 1.0.  This is computed by DUMACH 
+!     in a machine-independent manner.                                  
+!                                                                       
+!***REFERENCES  (NONE)                                                  
+!***ROUTINES CALLED  DUMSUM                                             
+!***REVISION HISTORY  (YYYYMMDD)                                        
+!   19930216  DATE WRITTEN                                              
+!   19930818  Added SLATEC-format prologue.  (FNF)                      
+!   20030707  Added DUMSUM to force normal storage of COMP.  (ACH)      
+!***END PROLOGUE  DUMACH                                                
+!                                                                       
+      KPP_REAL U, COMP 
+!***FIRST EXECUTABLE STATEMENT  DUMACH                                  
+      U = 1.0D0 
+   10 U = U*0.5D0 
+      CALL DUMSUM(1.0D0, U, COMP) 
+      IF (COMP .NE. 1.0D0) GO TO 10 
+      DUMACH = U*2.0D0 
+      RETURN 
+!----------------------- End of Function DUMACH ------------------------
+      END FUNCTION DUMACH  
+                                              
+      SUBROUTINE DUMSUM(A,B,C) 
+!     Routine to force normal storing of A + B, for DUMACH.             
+      KPP_REAL A, B, C 
+      C = A + B 
+      RETURN 
+      END SUBROUTINE DUMSUM                                        
+!DECK DCFODE                                                            
+      SUBROUTINE DCFODE (METH, ELCO, TESCO) 
+!***BEGIN PROLOGUE  DCFODE                                              
+!***SUBSIDIARY                                                          
+!***PURPOSE  Set ODE integrator coefficients.                           
+!***TYPE      KPP_REAL (SCFODE-S, DCFODE-D)                     
+!***AUTHOR  Hindmarsh, Alan C., (LLNL)                                  
+!***DESCRIPTION                                                         
+!                                                                       
+!  DCFODE is called by the integrator routine to set coefficients       
+!  needed there.  The coefficients for the current method, as           
+!  given by the value of METH, are set for all orders and saved.        
+!  The maximum order assumed here is 12 if METH = 1 and 5 if METH = 2.  
+!  (A smaller value of the maximum order is also allowed.)              
+!  DCFODE is called once at the beginning of the problem,               
+!  and is not called again unless and until METH is changed.            
+!                                                                       
+!  The ELCO array contains the basic method coefficients.               
+!  The coefficients el(i), 1 .le. i .le. nq+1, for the method of        
+!  order nq are stored in ELCO(i,nq).  They are given by a genetrating  
+!  polynomial, i.e.,                                                    
+!      l(x) = el(1) + el(2)*x + ... + el(nq+1)*x**nq.                   
+!  For the implicit Adams methods, l(x) is given by                     
+!      dl/dx = (x+1)*(x+2)*...*(x+nq-1)/factorial(nq-1),    l(-1) = 0.  
+!  For the BDF methods, l(x) is given by                                
+!      l(x) = (x+1)*(x+2)* ... *(x+nq)/K,                               
+!  where         K = factorial(nq)*(1 + 1/2 + ... + 1/nq).              
+!                                                                       
+!  The TESCO array contains test constants used for the                 
+!  local error test and the selection of step size and/or order.        
+!  At order nq, TESCO(k,nq) is used for the selection of step           
+!  size at order nq - 1 if k = 1, at order nq if k = 2, and at order    
+!  nq + 1 if k = 3.                                                     
+!                                                                       
+!***SEE ALSO  DLSODE                                                    
+!***ROUTINES CALLED  (NONE)                                             
+!***REVISION HISTORY  (YYMMDD)                                          
+!   791129  DATE WRITTEN                                                
+!   890501  Modified prologue to SLATEC/LDOC format.  (FNF)             
+!   890503  Minor cosmetic changes.  (FNF)                              
+!   930809  Renamed to allow single/double precision versions. (ACH)    
+!***END PROLOGUE  DCFODE                                                
+!**End                                                                  
+      INTEGER METH 
+      INTEGER I, IB, NQ, NQM1, NQP1 
+      KPP_REAL ELCO(13,12), TESCO(3,12), PC(12) 
+      KPP_REAL AGAMQ, FNQ, FNQM1, PINT, RAGQ, RQFAC, RQ1FAC, TSIGN, XPIN
+!                                                                       
+!***FIRST EXECUTABLE STATEMENT  DCFODE                                  
+      GO TO (100, 200), METH 
+!                                                                       
+  100 ELCO(1,1) = 1.0D0 
+      ELCO(2,1) = 1.0D0 
+      TESCO(1,1) = 0.0D0 
+      TESCO(2,1) = 2.0D0 
+      TESCO(1,2) = 1.0D0 
+      TESCO(3,12) = 0.0D0 
+      PC(1) = 1.0D0 
+      RQFAC = 1.0D0 
+      DO 140 NQ = 2,12 
+!-----------------------------------------------------------------------
+! The PC array will contain the coefficients of the polynomial          
+!     p(x) = (x+1)*(x+2)*...*(x+nq-1).                                  
+! Initially, p(x) = 1.                                                  
+!-----------------------------------------------------------------------
+        RQ1FAC = RQFAC 
+        RQFAC = RQFAC/NQ 
+        NQM1 = NQ - 1 
+        FNQM1 = NQM1 
+        NQP1 = NQ + 1 
+! Form coefficients of p(x)*(x+nq-1). ----------------------------------
+        PC(NQ) = 0.0D0 
+        DO 110 IB = 1,NQM1 
+          I = NQP1 - IB 
+  110     PC(I) = PC(I-1) + FNQM1*PC(I) 
+        PC(1) = FNQM1*PC(1) 
+! Compute integral, -1 to 0, of p(x) and x*p(x). -----------------------
+        PINT = PC(1) 
+        XPIN = PC(1)/2.0D0 
+        TSIGN = 1.0D0 
+        DO 120 I = 2,NQ 
+          TSIGN = -TSIGN 
+          PINT = PINT + TSIGN*PC(I)/I 
+  120     XPIN = XPIN + TSIGN*PC(I)/(I+1) 
+! Store coefficients in ELCO and TESCO. --------------------------------
+        ELCO(1,NQ) = PINT*RQ1FAC 
+        ELCO(2,NQ) = 1.0D0 
+        DO 130 I = 2,NQ 
+  130     ELCO(I+1,NQ) = RQ1FAC*PC(I)/I 
+        AGAMQ = RQFAC*XPIN 
+        RAGQ = 1.0D0/AGAMQ 
+        TESCO(2,NQ) = RAGQ 
+        IF (NQ .LT. 12) TESCO(1,NQP1) = RAGQ*RQFAC/NQP1 
+        TESCO(3,NQM1) = RAGQ 
+  140   CONTINUE 
+      RETURN 
+!                                                                       
+  200 PC(1) = 1.0D0 
+      RQ1FAC = 1.0D0 
+      DO 230 NQ = 1,5 
+!-----------------------------------------------------------------------
+! The PC array will contain the coefficients of the polynomial          
+!     p(x) = (x+1)*(x+2)*...*(x+nq).                                    
+! Initially, p(x) = 1.                                                  
+!-----------------------------------------------------------------------
+        FNQ = NQ 
+        NQP1 = NQ + 1 
+! Form coefficients of p(x)*(x+nq). ------------------------------------
+        PC(NQP1) = 0.0D0 
+        DO 210 IB = 1,NQ 
+          I = NQ + 2 - IB 
+  210     PC(I) = PC(I-1) + FNQ*PC(I) 
+        PC(1) = FNQ*PC(1) 
+! Store coefficients in ELCO and TESCO. --------------------------------
+        DO 220 I = 1,NQP1 
+  220     ELCO(I,NQ) = PC(I)/PC(2) 
+        ELCO(2,NQ) = 1.0D0 
+        TESCO(1,NQ) = RQ1FAC 
+        TESCO(2,NQ) = NQP1/ELCO(1,NQ) 
+        TESCO(3,NQ) = (NQ+2)/ELCO(1,NQ) 
+        RQ1FAC = RQ1FAC/FNQ 
+  230   CONTINUE 
+      RETURN 
+!----------------------- END OF SUBROUTINE DCFODE ----------------------
+      END SUBROUTINE DCFODE                                         
+!DECK DINTDY                                                            
+      SUBROUTINE DINTDY (T, K, YH, NYH, DKY, IFLAG) 
+!***BEGIN PROLOGUE  DINTDY                                              
+!***SUBSIDIARY                                                          
+!***PURPOSE  Interpolate solution derivatives.                          
+!***TYPE      KPP_REAL (SINTDY-S, DINTDY-D)                     
+!***AUTHOR  Hindmarsh, Alan C., (LLNL)                                  
+!***DESCRIPTION                                                         
+!                                                                       
+!  DINTDY computes interpolated values of the K-th derivative of the    
+!  dependent variable vector y, and stores it in DKY.  This routine     
+!  is called within the package with K = 0 and T = TOUT, but may        
+!  also be called by the user for any K up to the current order.        
+!  (See detailed instructions in the usage documentation.)              
+!                                                                       
+!  The computed values in DKY are gotten by interpolation using the     
+!  Nordsieck history array YH.  This array corresponds uniquely to a    
+!  vector-valued polynomial of degree NQCUR or less, and DKY is set     
+!  to the K-th derivative of this polynomial at T.                      
+!  The formula for DKY is:                                              
+!               q                                                       
+!   DKY(i)  =  sum  c(j,K) * (T - tn)**(j-K) * h**(-j) * YH(i,j+1)      
+!              j=K                                                      
+!  where  c(j,K) = j*(j-1)*...*(j-K+1), q = NQCUR, tn = TCUR, h = HCUR. 
+!  The quantities  nq = NQCUR, l = nq+1, N = NEQ, tn, and h are         
+!  communicated by COMMON.  The above sum is done in reverse order.     
+!  IFLAG is returned negative if either K or T is out of bounds.        
+!                                                                       
+!***SEE ALSO  DLSODE                                                    
+!***ROUTINES CALLED  XERRWD                                             
+!***COMMON BLOCKS    DLS001                                             
+!***REVISION HISTORY  (YYMMDD)                                          
+!   791129  DATE WRITTEN                                                
+!   890501  Modified prologue to SLATEC/LDOC format.  (FNF)             
+!   890503  Minor cosmetic changes.  (FNF)                              
+!   930809  Renamed to allow single/double precision versions. (ACH)    
+!   010418  Reduced size of Common block /DLS001/. (ACH)                
+!   031105  Restored 'own' variables to Common block /DLS001/, to       
+!           enable interrupt/restart feature. (ACH)                     
+!   050427  Corrected roundoff decrement in TP. (ACH)                   
+!***END PROLOGUE  DINTDY                                                
+!**End                                                                  
+      INTEGER K, NYH, IFLAG 
+      KPP_REAL T, YH(NYH,*), DKY(*) 
+      INTEGER IOWND, IOWNS,                                            &
+        ICF, IERPJ, IERSL, JCUR, JSTART, KFLAG, L,                     &
+        LYH, LEWT, LACOR, LSAVF, LWM, LIWM, METH, MITER,               &
+        MAXORD, MAXCOR, MSBP, MXNCF, N, NQ, NST, NFE, NJE, NQU         
+      KPP_REAL ROWNS,                                          &
+        CCMAX, EL0, H, HMIN, HMXI, HU, RC, TN, UROUND                  
+      COMMON /DLS001/ ROWNS(209),                                      &
+        CCMAX, EL0, H, HMIN, HMXI, HU, RC, TN, UROUND,                 &
+        IOWND(6), IOWNS(6),                                            &
+        ICF, IERPJ, IERSL, JCUR, JSTART, KFLAG, L,                     &
+        LYH, LEWT, LACOR, LSAVF, LWM, LIWM, METH, MITER,               &
+        MAXORD, MAXCOR, MSBP, MXNCF, N, NQ, NST, NFE, NJE, NQU         
+      INTEGER I, IC, J, JB, JB2, JJ, JJ1, JP1 
+      KPP_REAL C, R, S, TP 
+      CHARACTER*80 MSG 
+!                                                                       
+!***FIRST EXECUTABLE STATEMENT  DINTDY                                  
+      IFLAG = 0 
+      IF (K .LT. 0 .OR. K .GT. NQ) GO TO 80 
+      TP = TN - HU -  100.0D0*UROUND*SIGN(ABS(TN) + ABS(HU), HU) 
+      IF ((T-TP)*(T-TN) .GT. 0.0D0) GO TO 90 
+!                                                                       
+      S = (T - TN)/H 
+      IC = 1 
+      IF (K .EQ. 0) GO TO 15 
+      JJ1 = L - K 
+      DO 10 JJ = JJ1,NQ 
+   10   IC = IC*JJ 
+   15 C = IC 
+      DO 20 I = 1,N 
+   20   DKY(I) = C*YH(I,L) 
+      IF (K .EQ. NQ) GO TO 55 
+      JB2 = NQ - K 
+      DO 50 JB = 1,JB2 
+        J = NQ - JB 
+        JP1 = J + 1 
+        IC = 1 
+        IF (K .EQ. 0) GO TO 35 
+        JJ1 = JP1 - K 
+        DO 30 JJ = JJ1,J 
+   30     IC = IC*JJ 
+   35   C = IC 
+        DO 40 I = 1,N 
+   40     DKY(I) = C*YH(I,JP1) + S*DKY(I) 
+   50   CONTINUE 
+      IF (K .EQ. 0) RETURN 
+   55 R = H**(-K) 
+      DO 60 I = 1,N 
+   60   DKY(I) = R*DKY(I) 
+      RETURN 
+!                                                                       
+   80 MSG = 'DINTDY-  K (=I1) illegal      ' 
+      CALL XERRWD (MSG, 30, 51, 0, 1, K, 0, 0, 0.0D0, 0.0D0) 
+      IFLAG = -1 
+      RETURN 
+   90 MSG = 'DINTDY-  T (=R1) illegal      ' 
+      CALL XERRWD (MSG, 30, 52, 0, 0, 0, 0, 1, T, 0.0D0) 
+      MSG='      T not in interval TCUR - HU (= R1) to TCUR (=R2)      ' 
+      CALL XERRWD (MSG, 60, 52, 0, 0, 0, 0, 2, TP, TN) 
+      IFLAG = -2 
+      RETURN 
+!----------------------- END OF SUBROUTINE DINTDY ----------------------
+      END SUBROUTINE DINTDY                                          
+!DECK DPREPJ                                                            
+      SUBROUTINE DPREPJ (NEQ, Y, YH, NYH, EWT, FTEM, SAVF, WM, IWM, F, JAC)                                                        
+!***BEGIN PROLOGUE  DPREPJ                                              
+!***SUBSIDIARY                                                          
+!***PURPOSE  Compute and process Newton iteration matrix.               
+!***TYPE      KPP_REAL (SPREPJ-S, DPREPJ-D)                     
+!***AUTHOR  Hindmarsh, Alan C., (LLNL)                                  
+!***DESCRIPTION                                                         
+!                                                                       
+!  DPREPJ is called by DSTODE to compute and process the matrix         
+!  P = I - h*el(1)*J , where J is an approximation to the Jacobian.     
+!  Here J is computed by the user-supplied routine JAC if               
+!  MITER = 1 or 4, or by finite differencing if MITER = 2, 3, or 5.     
+!  If MITER = 3, a diagonal approximation to J is used.                 
+!  J is stored in WM and replaced by P.  If MITER .ne. 3, P is then     
+!  subjected to LU decomposition in preparation for later solution      
+!  of linear systems with P as coefficient matrix.  This is done        
+!  by DGEFA if MITER = 1 or 2, and by DGBFA if MITER = 4 or 5.          
+!                                                                       
+!  In addition to variables described in DSTODE and DLSODE prologues,   
+!  communication with DPREPJ uses the following:                        
+!  Y     = array containing predicted values on entry.                  
+!  FTEM  = work array of length N (ACOR in DSTODE).                     
+!  SAVF  = array containing f evaluated at predicted y.                 
+!  WM    = real work space for matrices.  On output it contains the     
+!          inverse diagonal matrix if MITER = 3 and the LU decomposition
+!          of P if MITER is 1, 2 , 4, or 5.                             
+!          Storage of matrix elements starts at WM(3).                  
+!          WM also contains the following matrix-related data:          
+!          WM(1) = SQRT(UROUND), used in numerical Jacobian increments. 
+!          WM(2) = H*EL0, saved for later use if MITER = 3.             
+!  IWM   = integer work space containing pivot information, starting at 
+!          IWM(21), if MITER is 1, 2, 4, or 5.  IWM also contains band  
+!          parameters ML = IWM(1) and MU = IWM(2) if MITER is 4 or 5.   
+!  EL0   = EL(1) (input).                                               
+!  IERPJ = output error flag,  = 0 if no trouble, .gt. 0 if             
+!          P matrix found to be singular.                               
+!  JCUR  = output flag = 1 to indicate that the Jacobian matrix         
+!          (or approximation) is now current.                           
+!  This routine also uses the COMMON variables EL0, H, TN, UROUND,      
+!  MITER, N, NFE, and NJE.                                              
+!                                                                       
+!***SEE ALSO  DLSODE                                                    
+!***ROUTINES CALLED  DGBFA, DGEFA, DVNORM                               
+!***COMMON BLOCKS    DLS001                                             
+!***REVISION HISTORY  (YYMMDD)                                          
+!   791129  DATE WRITTEN                                                
+!   890501  Modified prologue to SLATEC/LDOC format.  (FNF)             
+!   890504  Minor cosmetic changes.  (FNF)                              
+!   930809  Renamed to allow single/double precision versions. (ACH)    
+!   010418  Reduced size of Common block /DLS001/. (ACH)                
+!   031105  Restored 'own' variables to Common block /DLS001/, to       
+!           enable interrupt/restart feature. (ACH)                     
+!***END PROLOGUE  DPREPJ                                                
+!**End                                                                  
+      EXTERNAL F, JAC 
+      INTEGER NEQ, NYH, IWM(*)
+      KPP_REAL Y(*), YH(NYH,*), EWT(*), FTEM(*), SAVF(*), WM(*) 
+      INTEGER IOWND, IOWNS, IER,                                           &
+        ICF, IERPJ, IERSL, JCUR, JSTART, KFLAG, L,                     &
+        LYH, LEWT, LACOR, LSAVF, LWM, LIWM, METH, MITER,               &
+        MAXORD, MAXCOR, MSBP, MXNCF, N, NQ, NST, NFE, NJE, NQU         
+      KPP_REAL ROWNS,                                          &
+        CCMAX, EL0, H, HMIN, HMXI, HU, RC, TN, UROUND                  
+      COMMON /DLS001/ ROWNS(209),                                      &
+        CCMAX, EL0, H, HMIN, HMXI, HU, RC, TN, UROUND,                 &
+        IOWND(6), IOWNS(6),                                            &
+        ICF, IERPJ, IERSL, JCUR, JSTART, KFLAG, L,                     &
+        LYH, LEWT, LACOR, LSAVF, LWM, LIWM, METH, MITER,               &
+        MAXORD, MAXCOR, MSBP, MXNCF, N, NQ, NST, NFE, NJE, NQU         
+      INTEGER I, I1, I2, ISING, II, J, J1, JJ, LENP,                     &
+              MBA, MBAND, MEB1, MEBAND, ML, ML3, MU, NP1                     
+      KPP_REAL CON, DI, FAC, HL0, R, R0, SRUR, YI, YJ, YJJ
+      !KPP_REAL  DVNORM                                                         
+!                                                                       
+!***FIRST EXECUTABLE STATEMENT  DPREPJ                                  
+      NJE = NJE + 1 
+      IERPJ = 0 
+      JCUR = 1 
+      HL0 = H*EL0 
+      CON = -HL0 
+
+#ifdef FULL_ALGEBRA
+      LENP = N*N 
+      DO i = 1,LENP 
+         WM(i+2) = 0.0D0 
+      END DO
+      CALL JAC_CHEM (NEQ, TN, Y, WM(3)) 
+      DO I = 1,LENP 
+        WM(I+2) = WM(I+2)*CON
+      END DO 
+      ! Add identity matrix
+      J = 3 
+      NP1 = N + 1 
+      DO I = 1,N 
+        WM(J) = WM(J) + 1.0D0 
+        J = J + NP1 
+      END DO
+      ! Do LU decomposition on P
+      CALL DGETRF(N,N,WM(3),N,IWM(21),ISING)
+#else
+      CALL JAC_CHEM (NEQ, TN, Y, WM(3)) 
+      DO i = 1,LU_NONZERO 
+         WM(i+2) = WM(i+2)*CON 
+      END DO
+      ! Add identity matrix
+      DO i = 1,N 
+        j = 2+LU_DIAG(i)
+        WM(j) = WM(j) + 1.0D0 
+      END DO 
+      ! Do LU decomposition on P
+      CALL KppDecomp(WM(3),IER)
+#endif      
+      IF (IER .NE. 0) IERPJ = 1 
+      RETURN 
+ !----------------------- END OF SUBROUTINE DPREPJ ----------------------
+      END SUBROUTINE DPREPJ                                          
+!DECK DSOLSY                                                            
+      SUBROUTINE DSOLSY (WM, IWM, X, TEM) 
+!***BEGIN PROLOGUE  DSOLSY                                              
+!***SUBSIDIARY                                                          
+!***PURPOSE  ODEPACK linear system solver.                              
+!***TYPE      KPP_REAL (SSOLSY-S, DSOLSY-D)                     
+!***AUTHOR  Hindmarsh, Alan C., (LLNL)                                  
+!***DESCRIPTION                                                         
+!                                                                       
+!  This routine manages the solution of the linear system arising from  
+!  a chord iteration.  It is called if MITER .ne. 0.                    
+!  If MITER is 1 or 2, it calls DGESL to accomplish this.               
+!  If MITER = 3 it updates the coefficient h*EL0 in the diagonal        
+!  matrix, and then computes the solution.                              
+!  If MITER is 4 or 5, it calls DGBSL.                                  
+!  Communication with DSOLSY uses the following variables:              
+!  WM    = real work space containing the inverse diagonal matrix if    
+!          MITER = 3 and the LU decomposition of the matrix otherwise.  
+!          Storage of matrix elements starts at WM(3).                  
+!          WM also contains the following matrix-related data:          
+!          WM(1) = SQRT(UROUND) (not used here),                        
+!          WM(2) = HL0, the previous value of h*EL0, used if MITER = 3. 
+!  IWM   = integer work space containing pivot information, starting at 
+!          IWM(21), if MITER is 1, 2, 4, or 5.  IWM also contains band  
+!          parameters ML = IWM(1) and MU = IWM(2) if MITER is 4 or 5.   
+!  X     = the right-hand side vector on input, and the solution vector 
+!          on output, of length N.                                      
+!  TEM   = vector of work space of length N, not used in this version.  
+!  IERSL = output flag (in COMMON).  IERSL = 0 if no trouble occurred.  
+!          IERSL = 1 if a singular matrix arose with MITER = 3.         
+!  This routine also uses the COMMON variables EL0, H, MITER, and N.    
+!                                                                       
+!***SEE ALSO  DLSODE                                                    
+!***ROUTINES CALLED  DGBSL, DGESL                                       
+!***COMMON BLOCKS    DLS001                                             
+!***REVISION HISTORY  (YYMMDD)                                          
+!   791129  DATE WRITTEN                                                
+!   890501  Modified prologue to SLATEC/LDOC format.  (FNF)             
+!   890503  Minor cosmetic changes.  (FNF)                              
+!   930809  Renamed to allow single/double precision versions. (ACH)    
+!   010418  Reduced size of Common block /DLS001/. (ACH)                
+!   031105  Restored 'own' variables to Common block /DLS001/, to       
+!           enable interrupt/restart feature. (ACH)                     
+!***END PROLOGUE  DSOLSY                                                
+!**End                                                                  
+      INTEGER IWM(*) 
+      KPP_REAL WM(*), X(*), TEM(*) 
+      INTEGER IOWND, IOWNS,                                            &
+        ICF, IERPJ, IERSL, JCUR, JSTART, KFLAG, L,                     &
+        LYH, LEWT, LACOR, LSAVF, LWM, LIWM, METH, MITER,               &
+        MAXORD, MAXCOR, MSBP, MXNCF, N, NQ, NST, NFE, NJE, NQU         
+      KPP_REAL ROWNS,                                          &
+        CCMAX, EL0, H, HMIN, HMXI, HU, RC, TN, UROUND                  
+      COMMON /DLS001/ ROWNS(209),                                      &
+        CCMAX, EL0, H, HMIN, HMXI, HU, RC, TN, UROUND,                 &
+        IOWND(6), IOWNS(6),                                            &
+        ICF, IERPJ, IERSL, JCUR, JSTART, KFLAG, L,                     &
+        LYH, LEWT, LACOR, LSAVF, LWM, LIWM, METH, MITER,               &
+        MAXORD, MAXCOR, MSBP, MXNCF, N, NQ, NST, NFE, NJE, NQU         
+      INTEGER I, MEBAND, ML, MU 
+      KPP_REAL DI, HL0, PHL0, R 
+#ifdef FULL_ALGEBRA      
+      INTEGER ISING
+#endif      
+!                                                                       
+!***FIRST EXECUTABLE STATEMENT  DSOLSY                                  
+      IERSL = 0 
+#ifdef FULL_ALGEBRA      
+      CALL DGETRS ('N',N,1,WM(3),N,IWM(21),X,N,ISING)
+#else
+      CALL KppSolve(WM(3),X)
+#endif      
+      RETURN 
+!----------------------- END OF SUBROUTINE DSOLSY ----------------------
+      END SUBROUTINE DSOLSY                                          
+!DECK DSRCOM                                                            
+      SUBROUTINE DSRCOM (RSAV, ISAV, JOB) 
+!***BEGIN PROLOGUE  DSRCOM                                              
+!***SUBSIDIARY                                                          
+!***PURPOSE  Save/restore ODEPACK COMMON blocks.                        
+!***TYPE      KPP_REAL (SSRCOM-S, DSRCOM-D)                     
+!***AUTHOR  Hindmarsh, Alan C., (LLNL)                                  
+!***DESCRIPTION                                                         
+!                                                                       
+!  This routine saves or restores (depending on JOB) the contents of    
+!  the COMMON block DLS001, which is used internally                    
+!  by one or more ODEPACK solvers.                                      
+!                                                                       
+!  RSAV = real array of length 218 or more.                             
+!  ISAV = integer array of length 37 or more.                           
+!  JOB  = flag indicating to save or restore the COMMON blocks:         
+!         JOB  = 1 if COMMON is to be saved (written to RSAV/ISAV)      
+!         JOB  = 2 if COMMON is to be restored (read from RSAV/ISAV)    
+!         A call with JOB = 2 presumes a prior call with JOB = 1.       
+!                                                                       
+!***SEE ALSO  DLSODE                                                    
+!***ROUTINES CALLED  (NONE)                                             
+!***COMMON BLOCKS    DLS001                                             
+!***REVISION HISTORY  (YYMMDD)                                          
+!   791129  DATE WRITTEN                                                
+!   890501  Modified prologue to SLATEC/LDOC format.  (FNF)             
+!   890503  Minor cosmetic changes.  (FNF)                              
+!   921116  Deleted treatment of block /EH0001/.  (ACH)                 
+!   930801  Reduced Common block length by 2.  (ACH)                    
+!   930809  Renamed to allow single/double precision versions. (ACH)    
+!   010418  Reduced Common block length by 209+12. (ACH)                
+!   031105  Restored 'own' variables to Common block /DLS001/, to       
+!           enable interrupt/restart feature. (ACH)                     
+!   031112  Added SAVE statement for data-loaded constants.             
+!***END PROLOGUE  DSRCOM                                                
+!**End                                                                  
+      INTEGER ISAV(*), JOB 
+      INTEGER ILS 
+      INTEGER I, LENILS, LENRLS 
+      KPP_REAL RSAV(*),   RLS 
+      SAVE LENRLS, LENILS 
+      COMMON /DLS001/ RLS(218), ILS(37) 
+      DATA LENRLS/218/, LENILS/37/ 
+!                                                                       
+!***FIRST EXECUTABLE STATEMENT  DSRCOM                                  
+      IF (JOB .EQ. 2) GO TO 100 
+!                                                                       
+      DO 10 I = 1,LENRLS 
+   10   RSAV(I) = RLS(I) 
+      DO 20 I = 1,LENILS 
+   20   ISAV(I) = ILS(I) 
+      RETURN 
+!                                                                       
+  100 CONTINUE 
+      DO 110 I = 1,LENRLS 
+  110    RLS(I) = RSAV(I) 
+      DO 120 I = 1,LENILS 
+  120    ILS(I) = ISAV(I) 
+      RETURN 
+!----------------------- END OF SUBROUTINE DSRCOM ----------------------
+      END SUBROUTINE DSRCOM                                          
+!DECK DSTODE                                                            
+      SUBROUTINE DSTODE (NEQ, Y, YH, NYH, YH1, EWT, SAVF, ACOR, &
+                         WM, IWM, F, JAC)                                   
+                        !WM, IWM, F, JAC, PJAC, SLVS)                                   
+!***BEGIN PROLOGUE  DSTODE                                              
+!***SUBSIDIARY                                                          
+!***PURPOSE  Performs one step of an ODEPACK integration.               
+!***TYPE      KPP_REAL (SSTODE-S, DSTODE-D)                     
+!***AUTHOR  Hindmarsh, Alan C., (LLNL)                                  
+!***DESCRIPTION                                                         
+!                                                                       
+!  DSTODE performs one step of the integration of an initial value      
+!  problem for a system of ordinary differential equations.             
+!  Note:  DSTODE is independent of the value of the iteration method    
+!  indicator MITER, when this is .ne. 0, and hence is independent       
+!  of the type of chord method used, or the Jacobian structure.         
+!  Communication with DSTODE is done with the following variables:      
+!                                                                       
+!  NEQ    = integer array containing problem size in NEQ, and        
+!           passed as the NEQ argument in all calls to F and JAC.       
+!  Y      = an array of length .ge. N used as the Y argument in         
+!           all calls to F and JAC.                                     
+!  YH     = an NYH by LMAX array containing the dependent variables     
+!           and their approximate scaled derivatives, where             
+!           LMAX = MAXORD + 1.  YH(i,j+1) contains the approximate      
+!           j-th derivative of y(i), scaled by h**j/factorial(j)        
+!           (j = 0,1,...,NQ).  on entry for the first step, the first   
+!           two columns of YH must be set from the initial values.      
+!  NYH    = a constant integer .ge. N, the first dimension of YH.       
+!  YH1    = a one-dimensional array occupying the same space as YH.     
+!  EWT    = an array of length N containing multiplicative weights      
+!           for local error measurements.  Local errors in Y(i) are     
+!           compared to 1.0/EWT(i) in various error tests.              
+!  SAVF   = an array of working storage, of length N.                   
+!           Also used for input of YH(*,MAXORD+2) when JSTART = -1      
+!           and MAXORD .lt. the current order NQ.                       
+!  ACOR   = a work array of length N, used for the accumulated          
+!           corrections.  On a successful return, ACOR(i) contains      
+!           the estimated one-step local error in Y(i).                 
+!  WM,IWM = real and integer work arrays associated with matrix         
+!           operations in chord iteration (MITER .ne. 0).               
+!  PJAC   = name of routine to evaluate and preprocess Jacobian matrix  
+!           and P = I - h*el0*JAC, if a chord method is being used.     
+!  SLVS   = name of routine to solve linear system in chord iteration.  
+!  CCMAX  = maximum relative change in h*el0 before PJAC is called.     
+!  H      = the step size to be attempted on the next step.             
+!           H is altered by the error control algorithm during the      
+!           problem.  H can be either positive or negative, but its     
+!           sign must remain constant throughout the problem.           
+!  HMIN   = the minimum absolute value of the step size h to be used.   
+!  HMXI   = inverse of the maximum absolute value of h to be used.      
+!           HMXI = 0.0 is allowed and corresponds to an infinite hmax.  
+!           HMIN and HMXI may be changed at any time, but will not      
+!           take effect until the next change of h is considered.       
+!  TN     = the independent variable. TN is updated on each step taken. 
+!  JSTART = an integer used for input only, with the following          
+!           values and meanings:                                        
+!                0  perform the first step.                             
+!            .gt.0  take a new step continuing from the last.           
+!               -1  take the next step with a new value of H, MAXORD,   
+!                     N, METH, MITER, and/or matrix parameters.         
+!               -2  take the next step with a new value of H,           
+!                     but with other inputs unchanged.                  
+!           On return, JSTART is set to 1 to facilitate continuation.   
+!  KFLAG  = a completion code with the following meanings:              
+!                0  the step was succesful.                             
+!               -1  the requested error could not be achieved.          
+!               -2  corrector convergence could not be achieved.        
+!               -3  fatal error in PJAC or SLVS.                        
+!           A return with KFLAG = -1 or -2 means either                 
+!           abs(H) = HMIN or 10 consecutive failures occurred.          
+!           On a return with KFLAG negative, the values of TN and       
+!           the YH array are as of the beginning of the last            
+!           step, and H is the last step size attempted.                
+!  MAXORD = the maximum order of integration method to be allowed.      
+!  MAXCOR = the maximum number of corrector iterations allowed.         
+!  MSBP   = maximum number of steps between PJAC calls (MITER .gt. 0).  
+!  MXNCF  = maximum number of convergence failures allowed.             
+!  METH/MITER = the method flags.  See description in driver.           
+!  N      = the number of first-order differential equations.           
+!  The values of CCMAX, H, HMIN, HMXI, TN, JSTART, KFLAG, MAXORD,       
+!  MAXCOR, MSBP, MXNCF, METH, MITER, and N are communicated via COMMON. 
+!                                                                       
+!***SEE ALSO  DLSODE                                                    
+!***ROUTINES CALLED  DCFODE, DVNORM                                     
+!***COMMON BLOCKS    DLS001                                             
+!***REVISION HISTORY  (YYMMDD)                                          
+!   791129  DATE WRITTEN                                                
+!   890501  Modified prologue to SLATEC/LDOC format.  (FNF)             
+!   890503  Minor cosmetic changes.  (FNF)                              
+!   930809  Renamed to allow single/double precision versions. (ACH)    
+!   010418  Reduced size of Common block /DLS001/. (ACH)                
+!   031105  Restored 'own' variables to Common block /DLS001/, to       
+!           enable interrupt/restart feature. (ACH)                     
+!***END PROLOGUE  DSTODE                                                
+!**End                                                                  
+      EXTERNAL F, JAC !, PJAC, SLVS 
+      INTEGER NEQ, NYH, IWM(*) 
+      KPP_REAL Y(*), YH(NYH,*), YH1(*), EWT(*), SAVF(*),       &
+                       ACOR(*), WM(*) 
+      INTEGER IOWND, IALTH, IPUP, LMAX, MEO, NQNYH, NSLP,              &
+        ICF, IERPJ, IERSL, JCUR, JSTART, KFLAG, L,                     &
+        LYH, LEWT, LACOR, LSAVF, LWM, LIWM, METH, MITER,               &
+        MAXORD, MAXCOR, MSBP, MXNCF, N, NQ, NST, NFE, NJE, NQU         
+      INTEGER I, I1, IREDO, IRET, J, JB, M, NCF, NEWQ 
+      KPP_REAL CONIT, CRATE, EL, ELCO, HOLD, RMAX, TESCO,      &
+        CCMAX, EL0, H, HMIN, HMXI, HU, RC, TN, UROUND                  
+      KPP_REAL DCON, DDN, DEL, DELP, DSM, DUP, EXDN, EXSM,     &
+              EXUP,R, RH, RHDN, RHSM, RHUP, TOLD
+      !KPP_REAL DVNORM                          
+      COMMON /DLS001/ CONIT, CRATE, EL(13), ELCO(13,12),               &
+        HOLD, RMAX, TESCO(3,12),                                       &
+        CCMAX, EL0, H, HMIN, HMXI, HU, RC, TN, UROUND,                 &
+        IOWND(6), IALTH, IPUP, LMAX, MEO, NQNYH, NSLP,                 &
+        ICF, IERPJ, IERSL, JCUR, JSTART, KFLAG, L,                     &
+        LYH, LEWT, LACOR, LSAVF, LWM, LIWM, METH, MITER,               &
+        MAXORD, MAXCOR, MSBP, MXNCF, N, NQ, NST, NFE, NJE, NQU         
+!                                                                       
+!***FIRST EXECUTABLE STATEMENT  DSTODE                                  
+      KFLAG = 0 
+      TOLD = TN 
+      NCF = 0 
+      IERPJ = 0 
+      IERSL = 0 
+      JCUR = 0 
+      ICF = 0 
+      DELP = 0.0D0 
+      IF (JSTART .GT. 0) GO TO 200 
+      IF (JSTART .EQ. -1) GO TO 100 
+      IF (JSTART .EQ. -2) GO TO 160 
+!-----------------------------------------------------------------------
+! On the first call, the order is set to 1, and other variables are     
+! initialized.  RMAX is the maximum ratio by which H can be increased   
+! in a single step.  It is initially 1.E4 to compensate for the small   
+! initial H, but then is normally equal to 10.  If a failure            
+! occurs (in corrector convergence or error test), RMAX is set to 2     
+! for the next increase.                                                
+!-----------------------------------------------------------------------
+      LMAX = MAXORD + 1 
+      NQ = 1 
+      L = 2 
+      IALTH = 2 
+      RMAX = 10000.0D0 
+      RC = 0.0D0 
+      EL0 = 1.0D0 
+      CRATE = 0.7D0 
+      HOLD = H 
+      MEO = METH 
+      NSLP = 0 
+      IPUP = MITER 
+      IRET = 3 
+      GO TO 140 
+!-----------------------------------------------------------------------
+! The following block handles preliminaries needed when JSTART = -1.    
+! IPUP is set to MITER to force a matrix update.                        
+! If an order increase is about to be considered (IALTH = 1),           
+! IALTH is reset to 2 to postpone consideration one more step.          
+! If the caller has changed METH, DCFODE is called to reset             
+! the coefficients of the method.                                       
+! If the caller has changed MAXORD to a value less than the current     
+! order NQ, NQ is reduced to MAXORD, and a new H chosen accordingly.    
+! If H is to be changed, YH must be rescaled.                           
+! If H or METH is being changed, IALTH is reset to L = NQ + 1           
+! to prevent further changes in H for that many steps.                  
+!-----------------------------------------------------------------------
+  100 IPUP = MITER 
+      LMAX = MAXORD + 1 
+      IF (IALTH .EQ. 1) IALTH = 2 
+      IF (METH .EQ. MEO) GO TO 110 
+      CALL DCFODE (METH, ELCO, TESCO) 
+      MEO = METH 
+      IF (NQ .GT. MAXORD) GO TO 120 
+      IALTH = L 
+      IRET = 1 
+      GO TO 150 
+  110 IF (NQ .LE. MAXORD) GO TO 160 
+  120 NQ = MAXORD 
+      L = LMAX 
+      DO 125 I = 1,L 
+  125   EL(I) = ELCO(I,NQ) 
+      NQNYH = NQ*NYH 
+      RC = RC*EL(1)/EL0 
+      EL0 = EL(1) 
+      CONIT = 0.5D0/(NQ+2) 
+      DDN = DVNORM (N, SAVF, EWT)/TESCO(1,L) 
+      EXDN = 1.0D0/L 
+      RHDN = 1.0D0/(1.3D0*DDN**EXDN + 0.0000013D0) 
+      RH = MIN(RHDN,1.0D0) 
+      IREDO = 3 
+      IF (H .EQ. HOLD) GO TO 170 
+      RH = MIN(RH,ABS(H/HOLD)) 
+      H = HOLD 
+      GO TO 175 
+!-----------------------------------------------------------------------
+! DCFODE is called to get all the integration coefficients for the      
+! current METH.  Then the EL vector and related constants are reset     
+! whenever the order NQ is changed, or at the start of the problem.     
+!-----------------------------------------------------------------------
+  140 CALL DCFODE (METH, ELCO, TESCO) 
+  150 DO 155 I = 1,L 
+  155   EL(I) = ELCO(I,NQ) 
+      NQNYH = NQ*NYH 
+      RC = RC*EL(1)/EL0 
+      EL0 = EL(1) 
+      CONIT = 0.5D0/(NQ+2) 
+      GO TO (160, 170, 200), IRET 
+!-----------------------------------------------------------------------
+! If H is being changed, the H ratio RH is checked against              
+! RMAX, HMIN, and HMXI, and the YH array rescaled.  IALTH is set to     
+! L = NQ + 1 to prevent a change of H for that many steps, unless       
+! forced by a convergence or error test failure.                        
+!-----------------------------------------------------------------------
+  160 IF (H .EQ. HOLD) GO TO 200 
+      RH = H/HOLD 
+      H = HOLD 
+      IREDO = 3 
+      GO TO 175 
+  170 RH = MAX(RH,HMIN/ABS(H)) 
+  175 RH = MIN(RH,RMAX) 
+      RH = RH/MAX(1.0D0,ABS(H)*HMXI*RH) 
+      R = 1.0D0 
+      DO 180 J = 2,L 
+        R = R*RH 
+        DO 180 I = 1,N 
+  180     YH(I,J) = YH(I,J)*R 
+      H = H*RH 
+      RC = RC*RH 
+      IALTH = L 
+      IF (IREDO .EQ. 0) GO TO 690 
+!-----------------------------------------------------------------------
+! This section computes the predicted values by effectively             
+! multiplying the YH array by the Pascal Triangle matrix.               
+! RC is the ratio of new to old values of the coefficient  H*EL(1).     
+! When RC differs from 1 by more than CCMAX, IPUP is set to MITER       
+! to force PJAC to be called, if a Jacobian is involved.                
+! In any case, PJAC is called at least every MSBP steps.                
+!-----------------------------------------------------------------------
+  200 IF (ABS(RC-1.0D0) .GT. CCMAX) IPUP = MITER 
+      IF (NST .GE. NSLP+MSBP) IPUP = MITER 
+      TN = TN + H 
+      I1 = NQNYH + 1 
+      DO 215 JB = 1,NQ 
+        I1 = I1 - NYH 
+!dir$ ivdep                                                             
+        DO 210 I = I1,NQNYH 
+  210     YH1(I) = YH1(I) + YH1(I+NYH) 
+  215   CONTINUE 
+!-----------------------------------------------------------------------
+! Up to MAXCOR corrector iterations are taken.  A convergence test is   
+! made on the R.M.S. norm of each correction, weighted by the error     
+! weight vector EWT.  The sum of the corrections is accumulated in the  
+! vector ACOR(i).  The YH array is not altered in the corrector loop.   
+!-----------------------------------------------------------------------
+  220 M = 0 
+      DO 230 I = 1,N 
+  230   Y(I) = YH(I,1) 
+      CALL F (NEQ, TN, Y, SAVF) 
+      NFE = NFE + 1 
+      IF (IPUP .LE. 0) GO TO 250 
+!-----------------------------------------------------------------------
+! If indicated, the matrix P = I - h*el(1)*J is reevaluated and         
+! preprocessed before starting the corrector iteration.  IPUP is set    
+! to 0 as an indicator that this has been done.                         
+!-----------------------------------------------------------------------
+      !CALL PJAC (NEQ, Y, YH, NYH, EWT, ACOR, SAVF, WM, IWM, F, JAC) 
+      CALL DPREPJ(NEQ, Y, YH, NYH, EWT, ACOR, SAVF, WM, IWM, F, JAC)
+      IPUP = 0 
+      RC = 1.0D0 
+      NSLP = NST 
+      CRATE = 0.7D0 
+      IF (IERPJ .NE. 0) GO TO 430 
+  250 DO 260 I = 1,N 
+  260   ACOR(I) = 0.0D0 
+  270 IF (MITER .NE. 0) GO TO 350 
+!-----------------------------------------------------------------------
+! In the case of functional iteration, update Y directly from           
+! the result of the last function evaluation.                           
+!-----------------------------------------------------------------------
+      DO 290 I = 1,N 
+        SAVF(I) = H*SAVF(I) - YH(I,2) 
+  290   Y(I) = SAVF(I) - ACOR(I) 
+      DEL = DVNORM (N, Y, EWT) 
+      DO 300 I = 1,N 
+        Y(I) = YH(I,1) + EL(1)*SAVF(I) 
+  300   ACOR(I) = SAVF(I) 
+      GO TO 400 
+!-----------------------------------------------------------------------
+! In the case of the chord method, compute the corrector error,         
+! and solve the linear system with that as right-hand side and          
+! P as coefficient matrix.                                              
+!-----------------------------------------------------------------------
+  350 DO 360 I = 1,N 
+  360   Y(I) = H*SAVF(I) - (YH(I,2) + ACOR(I)) 
+      !CALL SLVS (WM, IWM, Y, SAVF) 
+      CALL DSOLSY(WM, IWM, Y, SAVF)
+      IF (IERSL .LT. 0) GO TO 430 
+      IF (IERSL .GT. 0) GO TO 410 
+      DEL = DVNORM (N, Y, EWT) 
+      DO 380 I = 1,N 
+        ACOR(I) = ACOR(I) + Y(I) 
+  380   Y(I) = YH(I,1) + EL(1)*ACOR(I) 
+!-----------------------------------------------------------------------
+! Test for convergence.  If M.gt.0, an estimate of the convergence      
+! rate constant is stored in CRATE, and this is used in the test.       
+!-----------------------------------------------------------------------
+  400 IF (M .NE. 0) CRATE = MAX(0.2D0*CRATE,DEL/DELP) 
+      DCON = DEL*MIN(1.0D0,1.5D0*CRATE)/(TESCO(2,NQ)*CONIT) 
+      IF (DCON .LE. 1.0D0) GO TO 450 
+      M = M + 1 
+      IF (M .EQ. MAXCOR) GO TO 410 
+      IF (M .GE. 2 .AND. DEL .GT. 2.0D0*DELP) GO TO 410 
+      DELP = DEL 
+      CALL F (NEQ, TN, Y, SAVF) 
+      NFE = NFE + 1 
+      GO TO 270 
+!-----------------------------------------------------------------------
+! The corrector iteration failed to converge.                           
+! If MITER .ne. 0 and the Jacobian is out of date, PJAC is called for   
+! the next try.  Otherwise the YH array is retracted to its values      
+! before prediction, and H is reduced, if possible.  If H cannot be     
+! reduced or MXNCF failures have occurred, exit with KFLAG = -2.        
+!-----------------------------------------------------------------------
+  410 IF (MITER .EQ. 0 .OR. JCUR .EQ. 1) GO TO 430 
+      ICF = 1 
+      IPUP = MITER 
+      GO TO 220 
+  430 ICF = 2 
+      NCF = NCF + 1 
+      RMAX = 2.0D0 
+      TN = TOLD 
+      I1 = NQNYH + 1 
+      DO 445 JB = 1,NQ 
+        I1 = I1 - NYH 
+!dir$ ivdep                                                             
+        DO 440 I = I1,NQNYH 
+  440     YH1(I) = YH1(I) - YH1(I+NYH) 
+  445   CONTINUE 
+      IF (IERPJ .LT. 0 .OR. IERSL .LT. 0) GO TO 680 
+      IF (ABS(H) .LE. HMIN*1.00001D0) GO TO 670 
+      IF (NCF .EQ. MXNCF) GO TO 670 
+      RH = 0.25D0 
+      IPUP = MITER 
+      IREDO = 1 
+      GO TO 170 
+!-----------------------------------------------------------------------
+! The corrector has converged.  JCUR is set to 0                        
+! to signal that the Jacobian involved may need updating later.         
+! The local error test is made and control passes to statement 500      
+! if it fails.                                                          
+!-----------------------------------------------------------------------
+  450 JCUR = 0 
+      IF (M .EQ. 0) DSM = DEL/TESCO(2,NQ) 
+      IF (M .GT. 0) DSM = DVNORM (N, ACOR, EWT)/TESCO(2,NQ) 
+      IF (DSM .GT. 1.0D0) GO TO 500 
+!-----------------------------------------------------------------------
+! After a successful step, update the YH array.                         
+! Consider changing H if IALTH = 1.  Otherwise decrease IALTH by 1.     
+! If IALTH is then 1 and NQ .lt. MAXORD, then ACOR is saved for         
+! use in a possible order increase on the next step.                    
+! If a change in H is considered, an increase or decrease in order      
+! by one is considered also.  A change in H is made only if it is by a  
+! factor of at least 1.1.  If not, IALTH is set to 3 to prevent         
+! testing for that many steps.                                          
+!-----------------------------------------------------------------------
+      KFLAG = 0 
+      IREDO = 0 
+      NST = NST + 1 
+      HU = H 
+      NQU = NQ 
+      DO 470 J = 1,L 
+        DO 470 I = 1,N 
+  470     YH(I,J) = YH(I,J) + EL(J)*ACOR(I) 
+      IALTH = IALTH - 1 
+      IF (IALTH .EQ. 0) GO TO 520 
+      IF (IALTH .GT. 1) GO TO 700 
+      IF (L .EQ. LMAX) GO TO 700 
+      DO 490 I = 1,N 
+  490   YH(I,LMAX) = ACOR(I) 
+      GO TO 700 
+!-----------------------------------------------------------------------
+! The error test failed.  KFLAG keeps track of multiple failures.       
+! Restore TN and the YH array to their previous values, and prepare     
+! to try the step again.  Compute the optimum step size for this or     
+! one lower order.  After 2 or more failures, H is forced to decrease   
+! by a factor of 0.2 or less.                                           
+!-----------------------------------------------------------------------
+  500 KFLAG = KFLAG - 1 
+      TN = TOLD 
+      I1 = NQNYH + 1 
+      DO 515 JB = 1,NQ 
+        I1 = I1 - NYH 
+!dir$ ivdep                                                             
+        DO 510 I = I1,NQNYH 
+  510     YH1(I) = YH1(I) - YH1(I+NYH) 
+  515   CONTINUE 
+      RMAX = 2.0D0 
+      IF (ABS(H) .LE. HMIN*1.00001D0) GO TO 660 
+      IF (KFLAG .LE. -3) GO TO 640 
+      IREDO = 2 
+      RHUP = 0.0D0 
+      GO TO 540 
+!-----------------------------------------------------------------------
+! Regardless of the success or failure of the step, factors             
+! RHDN, RHSM, and RHUP are computed, by which H could be multiplied     
+! at order NQ - 1, order NQ, or order NQ + 1, respectively.             
+! In the case of failure, RHUP = 0.0 to avoid an order increase.        
+! The largest of these is determined and the new order chosen           
+! accordingly.  If the order is to be increased, we compute one         
+! additional scaled derivative.                                         
+!-----------------------------------------------------------------------
+  520 RHUP = 0.0D0 
+      IF (L .EQ. LMAX) GO TO 540 
+      DO 530 I = 1,N 
+  530   SAVF(I) = ACOR(I) - YH(I,LMAX) 
+      DUP = DVNORM (N, SAVF, EWT)/TESCO(3,NQ) 
+      EXUP = 1.0D0/(L+1) 
+      RHUP = 1.0D0/(1.4D0*DUP**EXUP + 0.0000014D0) 
+  540 EXSM = 1.0D0/L 
+      RHSM = 1.0D0/(1.2D0*DSM**EXSM + 0.0000012D0) 
+      RHDN = 0.0D0 
+      IF (NQ .EQ. 1) GO TO 560 
+      DDN = DVNORM (N, YH(1,L), EWT)/TESCO(1,NQ) 
+      EXDN = 1.0D0/NQ 
+      RHDN = 1.0D0/(1.3D0*DDN**EXDN + 0.0000013D0) 
+  560 IF (RHSM .GE. RHUP) GO TO 570 
+      IF (RHUP .GT. RHDN) GO TO 590 
+      GO TO 580 
+  570 IF (RHSM .LT. RHDN) GO TO 580 
+      NEWQ = NQ 
+      RH = RHSM 
+      GO TO 620 
+  580 NEWQ = NQ - 1 
+      RH = RHDN 
+      IF (KFLAG .LT. 0 .AND. RH .GT. 1.0D0) RH = 1.0D0 
+      GO TO 620 
+  590 NEWQ = L 
+      RH = RHUP 
+      IF (RH .LT. 1.1D0) GO TO 610 
+      R = EL(L)/L 
+      DO 600 I = 1,N 
+  600   YH(I,NEWQ+1) = ACOR(I)*R 
+      GO TO 630 
+  610 IALTH = 3 
+      GO TO 700 
+  620 IF ((KFLAG .EQ. 0) .AND. (RH .LT. 1.1D0)) GO TO 610 
+      IF (KFLAG .LE. -2) RH = MIN(RH,0.2D0) 
+!-----------------------------------------------------------------------
+! If there is a change of order, reset NQ, l, and the coefficients.     
+! In any case H is reset according to RH and the YH array is rescaled.  
+! Then exit from 690 if the step was OK, or redo the step otherwise.    
+!-----------------------------------------------------------------------
+      IF (NEWQ .EQ. NQ) GO TO 170 
+  630 NQ = NEWQ 
+      L = NQ + 1 
+      IRET = 2 
+      GO TO 150 
+!-----------------------------------------------------------------------
+! Control reaches this section if 3 or more failures have occured.      
+! If 10 failures have occurred, exit with KFLAG = -1.                   
+! It is assumed that the derivatives that have accumulated in the       
+! YH array have errors of the wrong order.  Hence the first             
+! derivative is recomputed, and the order is set to 1.  Then            
+! H is reduced by a factor of 10, and the step is retried,              
+! until it succeeds or H reaches HMIN.                                  
+!-----------------------------------------------------------------------
+  640 IF (KFLAG .EQ. -10) GO TO 660 
+      RH = 0.1D0 
+      RH = MAX(HMIN/ABS(H),RH) 
+      H = H*RH 
+      DO 645 I = 1,N 
+  645   Y(I) = YH(I,1) 
+      CALL F (NEQ, TN, Y, SAVF) 
+      NFE = NFE + 1 
+      DO 650 I = 1,N 
+  650   YH(I,2) = H*SAVF(I) 
+      IPUP = MITER 
+      IALTH = 5 
+      IF (NQ .EQ. 1) GO TO 200 
+      NQ = 1 
+      L = 2 
+      IRET = 3 
+      GO TO 150 
+!-----------------------------------------------------------------------
+! All returns are made through this section.  H is saved in HOLD        
+! to allow the caller to change H on the next step.                     
+!-----------------------------------------------------------------------
+  660 KFLAG = -1 
+      GO TO 720 
+  670 KFLAG = -2 
+      GO TO 720 
+  680 KFLAG = -3 
+      GO TO 720 
+  690 RMAX = 10.0D0 
+  700 R = 1.0D0/TESCO(2,NQU) 
+      DO 710 I = 1,N 
+  710   ACOR(I) = ACOR(I)*R 
+  720 HOLD = H 
+      JSTART = 1 
+      RETURN 
+!----------------------- END OF SUBROUTINE DSTODE ----------------------
+      END SUBROUTINE DSTODE                                          
+!DECK DEWSET                                                            
+      SUBROUTINE DEWSET (N, ITOL, RelTol, AbsTol, YCUR, EWT) 
+!***BEGIN PROLOGUE  DEWSET                                              
+!***SUBSIDIARY                                                          
+!***PURPOSE  Set error weight vector.                                   
+!***TYPE      KPP_REAL (SEWSET-S, DEWSET-D)                     
+!***AUTHOR  Hindmarsh, Alan C., (LLNL)                                  
+!***DESCRIPTION                                                         
+!                                                                       
+!  This subroutine sets the error weight vector EWT according to        
+!      EWT(i) = RelTol(i)*ABS(YCUR(i)) + AbsTol(i),  i = 1,...,N,           
+!  with the subscript on RelTol and/or AbsTol possibly replaced by 1 above, 
+!  depending on the value of ITOL.                                      
+!                                                                       
+!***SEE ALSO  DLSODE                                                    
+!***ROUTINES CALLED  (NONE)                                             
+!***REVISION HISTORY  (YYMMDD)                                          
+!   791129  DATE WRITTEN                                                
+!   890501  Modified prologue to SLATEC/LDOC format.  (FNF)             
+!   890503  Minor cosmetic changes.  (FNF)                              
+!   930809  Renamed to allow single/double precision versions. (ACH)    
+!***END PROLOGUE  DEWSET                                                
+!**End                                                                  
+      INTEGER N, ITOL 
+      INTEGER I 
+      KPP_REAL RelTol(*), AbsTol(*), YCUR(N), EWT(N) 
+!                                                                       
+!***FIRST EXECUTABLE STATEMENT  DEWSET                                  
+      GO TO (10, 20, 30, 40), ITOL 
+   10 CONTINUE 
+      DO 15 I = 1,N 
+   15   EWT(I) = RelTol(1)*ABS(YCUR(I)) + AbsTol(1) 
+      RETURN 
+   20 CONTINUE 
+      DO 25 I = 1,N 
+   25   EWT(I) = RelTol(1)*ABS(YCUR(I)) + AbsTol(I) 
+      RETURN 
+   30 CONTINUE 
+      DO 35 I = 1,N 
+   35   EWT(I) = RelTol(I)*ABS(YCUR(I)) + AbsTol(1) 
+      RETURN 
+   40 CONTINUE 
+      DO 45 I = 1,N 
+   45   EWT(I) = RelTol(I)*ABS(YCUR(I)) + AbsTol(I) 
+      RETURN 
+!----------------------- END OF SUBROUTINE DEWSET ----------------------
+      END SUBROUTINE DEWSET                                          
+!DECK DVNORM                                                            
+      KPP_REAL FUNCTION DVNORM (N, V, W) 
+!***BEGIN PROLOGUE  DVNORM                                              
+!***SUBSIDIARY                                                          
+!***PURPOSE  Weighted root-mean-square vector norm.                     
+!***TYPE      KPP_REAL (SVNORM-S, DVNORM-D)                     
+!***AUTHOR  Hindmarsh, Alan C., (LLNL)                                  
+!***DESCRIPTION                                                         
+!                                                                       
+!  This function routine computes the weighted root-mean-square norm    
+!  of the vector of length N contained in the array V, with weights     
+!  contained in the array W of length N:                                
+!    DVNORM = SQRT( (1/N) * SUM( V(i)*W(i) )**2 )                       
+!                                                                       
+!***SEE ALSO  DLSODE                                                    
+!***ROUTINES CALLED  (NONE)                                             
+!***REVISION HISTORY  (YYMMDD)                                          
+!   791129  DATE WRITTEN                                                
+!   890501  Modified prologue to SLATEC/LDOC format.  (FNF)             
+!   890503  Minor cosmetic changes.  (FNF)                              
+!   930809  Renamed to allow single/double precision versions. (ACH)    
+!***END PROLOGUE  DVNORM                                                
+!**End                                                                  
+      INTEGER N,   I 
+      KPP_REAL V(N), W(N), SUM 
+!                                                                       
+!***FIRST EXECUTABLE STATEMENT  DVNORM                                  
+      SUM = 0.0D0 
+      DO 10 I = 1,N 
+   10   SUM = SUM + (V(I)*W(I))**2 
+      DVNORM = SQRT(SUM/N) 
+      RETURN 
+!----------------------- END OF FUNCTION DVNORM ------------------------
+      END FUNCTION DVNORM                                          
+!DECK XERRWD                                                            
+      SUBROUTINE XERRWD (MSG, NMES, NERR, LEVEL, NI, I1, I2, NR, R1, R2) 
+!***BEGIN PROLOGUE  XERRWD                                              
+!***SUBSIDIARY                                                          
+!***PURPOSE  Write error message with values.                           
+!***CATEGORY  R3C                                                       
+!***TYPE      KPP_REAL (XERRWV-S, XERRWD-D)                     
+!***AUTHOR  Hindmarsh, Alan C., (LLNL)                                  
+!***DESCRIPTION                                                         
+!                                                                       
+!  Subroutines XERRWD, XSETF, XSETUN, and the function routine IXSAV,   
+!  as given here, constitute a simplified version of the SLATEC error   
+!  handling package.                                                    
+!                                                                       
+!  All arguments are input arguments.                                   
+!                                                                       
+!  MSG    = The message (character array).                              
+!  NMES   = The length of MSG (number of characters).                   
+!  NERR   = The error number (not used).                                
+!  LEVEL  = The error level..                                           
+!           0 or 1 means recoverable (control returns to caller).       
+!           2 means fatal (run is aborted--see note below).             
+!  NI     = Number of integers (0, 1, or 2) to be printed with message. 
+!  I1,I2  = Integers to be printed, depending on NI.                    
+!  NR     = Number of reals (0, 1, or 2) to be printed with message.    
+!  R1,R2  = Reals to be printed, depending on NR.                       
+!                                                                       
+!  Note..  this routine is machine-dependent and specialized for use    
+!  in limited context, in the following ways..                          
+!  1. The argument MSG is assumed to be of type CHARACTER, and          
+!     the message is printed with a format of (1X,A).                   
+!  2. The message is assumed to take only one line.                     
+!     Multi-line messages are generated by repeated calls.              
+!  3. If LEVEL = 2, control passes to the statement   STOP              
+!     to abort the run.  This statement may be machine-dependent.       
+!  4. R1 and R2 are assumed to be in double precision and are printed   
+!     in D21.13 format.                                                 
+!                                                                       
+!***ROUTINES CALLED  IXSAV                                              
+!***REVISION HISTORY  (YYMMDD)                                          
+!   920831  DATE WRITTEN                                                
+!   921118  Replaced MFLGSV/LUNSAV by IXSAV. (ACH)                      
+!   930329  Modified prologue to SLATEC format. (FNF)                   
+!   930407  Changed MSG from CHARACTER*1 array to variable. (FNF)       
+!   930922  Minor cosmetic change. (FNF)                                
+!***END PROLOGUE  XERRWD                                                
+!                                                                       
+!*Internal Notes:                                                       
+!                                                                       
+! For a different default logical unit number, IXSAV (or a subsidiary   
+! routine that it calls) will need to be modified.                      
+! For a different run-abort command, change the statement following     
+! statement 100 at the end.                                             
+!-----------------------------------------------------------------------
+! Subroutines called by XERRWD.. None                                   
+! Function routine called by XERRWD.. IXSAV                             
+!-----------------------------------------------------------------------
+!**End                                                                  
+!                                                                       
+!  Declare arguments.                                                   
+!                                                                       
+      KPP_REAL R1, R2 
+      INTEGER NMES, NERR, LEVEL, NI, I1, I2, NR 
+      CHARACTER*(*) MSG 
+!                                                                       
+!  Declare local variables.                                             
+!                                                                       
+      INTEGER LUNIT, MESFLG !, IXSAV 
+!                                                                       
+!  Get logical unit number and message print flag.                      
+!                                                                       
+!***FIRST EXECUTABLE STATEMENT  XERRWD                                  
+      LUNIT = IXSAV (1, 0, .FALSE.) 
+      MESFLG = IXSAV (2, 0, .FALSE.) 
+      IF (MESFLG .EQ. 0) GO TO 100 
+!                                                                       
+!  Write the message.                                                   
+!                                                                       
+      WRITE (LUNIT,10)  MSG 
+   10 FORMAT(1X,A) 
+      IF (NI .EQ. 1) WRITE (LUNIT, 20) I1 
+   20 FORMAT(6X,'In above message,  I1 =',I10) 
+      IF (NI .EQ. 2) WRITE (LUNIT, 30) I1,I2 
+   30 FORMAT(6X,'In above message,  I1 =',I10,3X,'I2 =',I10) 
+      IF (NR .EQ. 1) WRITE (LUNIT, 40) R1 
+   40 FORMAT(6X,'In above message,  R1 =',D21.13) 
+      IF (NR .EQ. 2) WRITE (LUNIT, 50) R1,R2 
+   50 FORMAT(6X,'In above,  R1 =',D21.13,3X,'R2 =',D21.13) 
+!                                                                       
+!  Abort the run if LEVEL = 2.                                          
+!                                                                       
+  100 IF (LEVEL .NE. 2) RETURN 
+      STOP 
+!----------------------- End of Subroutine XERRWD ----------------------
+      END SUBROUTINE XERRWD                                          
+!DECK XSETF                                                             
+      SUBROUTINE XSETF (MFLAG) 
+!***BEGIN PROLOGUE  XSETF                                               
+!***PURPOSE  Reset the error print control flag.                        
+!***CATEGORY  R3A                                                       
+!***TYPE      ALL (XSETF-A)                                             
+!***KEYWORDS  ERROR CONTROL                                             
+!***AUTHOR  Hindmarsh, Alan C., (LLNL)                                  
+!***DESCRIPTION                                                         
+!                                                                       
+!   XSETF sets the error print control flag to MFLAG:                   
+!      MFLAG=1 means print all messages (the default).                  
+!      MFLAG=0 means no printing.                                       
+!                                                                       
+!***SEE ALSO  XERRWD, XERRWV                                            
+!***REFERENCES  (NONE)                                                  
+!***ROUTINES CALLED  IXSAV                                              
+!***REVISION HISTORY  (YYMMDD)                                          
+!   921118  DATE WRITTEN                                                
+!   930329  Added SLATEC format prologue. (FNF)                         
+!   930407  Corrected SEE ALSO section. (FNF)                           
+!   930922  Made user-callable, and other cosmetic changes. (FNF)       
+!***END PROLOGUE  XSETF                                                 
+!                                                                       
+! Subroutines called by XSETF.. None                                    
+! Function routine called by XSETF.. IXSAV                              
+!-----------------------------------------------------------------------
+!**End                                                                  
+      INTEGER MFLAG, JUNK !, IXSAV 
+!                                                                       
+!***FIRST EXECUTABLE STATEMENT  XSETF                                   
+      IF (MFLAG .EQ. 0 .OR. MFLAG .EQ. 1) JUNK = IXSAV (2,MFLAG,.TRUE.) 
+      RETURN 
+!----------------------- End of Subroutine XSETF -----------------------
+      END SUBROUTINE XSETF                                          
+!DECK XSETUN                                                            
+      SUBROUTINE XSETUN (LUN) 
+!***BEGIN PROLOGUE  XSETUN                                              
+!***PURPOSE  Reset the logical unit number for error messages.          
+!***CATEGORY  R3B                                                       
+!***TYPE      ALL (XSETUN-A)                                            
+!***KEYWORDS  ERROR CONTROL                                             
+!***DESCRIPTION                                                         
+!                                                                       
+!   XSETUN sets the logical unit number for error messages to LUN.      
+!                                                                       
+!***AUTHOR  Hindmarsh, Alan C., (LLNL)                                  
+!***SEE ALSO  XERRWD, XERRWV                                            
+!***REFERENCES  (NONE)                                                  
+!***ROUTINES CALLED  IXSAV                                              
+!***REVISION HISTORY  (YYMMDD)                                          
+!   921118  DATE WRITTEN                                                
+!   930329  Added SLATEC format prologue. (FNF)                         
+!   930407  Corrected SEE ALSO section. (FNF)                           
+!   930922  Made user-callable, and other cosmetic changes. (FNF)       
+!***END PROLOGUE  XSETUN                                                
+!                                                                       
+! Subroutines called by XSETUN.. None                                   
+! Function routine called by XSETUN.. IXSAV                             
+!-----------------------------------------------------------------------
+!**End                                                                  
+      INTEGER LUN, JUNK !, IXSAV 
+!                                                                       
+!***FIRST EXECUTABLE STATEMENT  XSETUN                                  
+      IF (LUN .GT. 0) JUNK = IXSAV (1,LUN,.TRUE.) 
+      RETURN 
+!----------------------- End of Subroutine XSETUN ----------------------
+      END SUBROUTINE XSETUN                                          
+!DECK IXSAV                                                             
+      INTEGER FUNCTION IXSAV (IPAR, IVALUE, ISET) 
+!***BEGIN PROLOGUE  IXSAV                                               
+!***SUBSIDIARY                                                          
+!***PURPOSE  Save and recall error message control parameters.          
+!***CATEGORY  R3C                                                       
+!***TYPE      ALL (IXSAV-A)                                             
+!***AUTHOR  Hindmarsh, Alan C., (LLNL)                                  
+!***DESCRIPTION                                                         
+!                                                                       
+!  IXSAV saves and recalls one of two error message parameters:         
+!    LUNIT, the logical unit number to which messages are printed, and  
+!    MESFLG, the message print flag.                                    
+!  This is a modification of the SLATEC library routine J4SAVE.         
+!                                                                       
+!  Saved local variables..                                              
+!   LUNIT  = Logical unit number for messages.  The default is obtained 
+!            by a call to IUMACH (may be machine-dependent).            
+!   MESFLG = Print control flag..                                       
+!            1 means print all messages (the default).                  
+!            0 means no printing.                                       
+!                                                                       
+!  On input..                                                           
+!    IPAR   = Parameter indicator (1 for LUNIT, 2 for MESFLG).          
+!    IVALUE = The value to be set for the parameter, if ISET = .TRUE.   
+!    ISET   = Logical flag to indicate whether to read or write.        
+!             If ISET = .TRUE., the parameter will be given             
+!             the value IVALUE.  If ISET = .FALSE., the parameter       
+!             will be unchanged, and IVALUE is a dummy argument.        
+!                                                                       
+!  On return..                                                          
+!    IXSAV = The (old) value of the parameter.                          
+!                                                                       
+!***SEE ALSO  XERRWD, XERRWV                                            
+!***ROUTINES CALLED  IUMACH                                             
+!***REVISION HISTORY  (YYMMDD)                                          
+!   921118  DATE WRITTEN                                                
+!   930329  Modified prologue to SLATEC format. (FNF)                   
+!   930915  Added IUMACH call to get default output unit.  (ACH)        
+!   930922  Minor cosmetic changes. (FNF)                               
+!   010425  Type declaration for IUMACH added. (ACH)                    
+!***END PROLOGUE  IXSAV                                                 
+!                                                                       
+! Subroutines called by IXSAV.. None                                    
+! Function routine called by IXSAV.. IUMACH                             
+!-----------------------------------------------------------------------
+!**End                                                                  
+      LOGICAL ISET 
+      INTEGER IPAR, IVALUE 
+!-----------------------------------------------------------------------
+      INTEGER LUNIT, MESFLG!, IUMACH
+!-----------------------------------------------------------------------
+! The following Fortran-77 declaration is to cause the values of the    
+! listed (local) variables to be saved between calls to this routine.   
+!-----------------------------------------------------------------------
+      SAVE LUNIT, MESFLG 
+      DATA LUNIT/-1/, MESFLG/1/ 
+!                                                                       
+!***FIRST EXECUTABLE STATEMENT  IXSAV                                   
+      IF (IPAR .EQ. 1) THEN 
+        IF (LUNIT .EQ. -1) LUNIT = IUMACH() 
+        IXSAV = LUNIT 
+        IF (ISET) LUNIT = IVALUE 
+        ENDIF 
+!                                                                       
+      IF (IPAR .EQ. 2) THEN                                             
+        IXSAV = MESFLG                                                  
+        IF (ISET) MESFLG = IVALUE                                       
+        ENDIF                                                           
+!                                                                       
+      RETURN                                                            
+!----------------------- End of Function IXSAV -------------------------
+      END FUNCTION IXSAV                                         
+!DECK IUMACH                                                            
+      INTEGER FUNCTION IUMACH() 
+!***BEGIN PROLOGUE  IUMACH                                              
+!***PURPOSE  Provide standard output unit number.                       
+!***CATEGORY  R1                                                        
+!***TYPE      INTEGER (IUMACH-I)                                        
+!***KEYWORDS  MACHINE CONSTANTS                                         
+!***AUTHOR  Hindmarsh, Alan C., (LLNL)                                  
+!***DESCRIPTION                                                         
+! *Usage:                                                               
+!        INTEGER  LOUT, IUMACH                                          
+!        LOUT = IUMACH()                                                
+!                                                                       
+! *Function Return Values:                                              
+!     LOUT : the standard logical unit for Fortran output.              
+!                                                                       
+!***REFERENCES  (NONE)                                                  
+!***ROUTINES CALLED  (NONE)                                             
+!***REVISION HISTORY  (YYMMDD)                                          
+!   930915  DATE WRITTEN                                                
+!   930922  Made user-callable, and other cosmetic changes. (FNF)       
+!***END PROLOGUE  IUMACH                                                
+!                                                                       
+!*Internal Notes:                                                       
+!  The built-in value of 6 is standard on a wide range of Fortran       
+!  systems.  This may be machine-dependent.                             
+!**End                                                                  
+!***FIRST EXECUTABLE STATEMENT  IUMACH                                  
+      IUMACH = 6 
+!                                                                       
+      RETURN 
+!----------------------- End of Function IUMACH ------------------------
+      END FUNCTION IUMACH                                         
+
+!---- END OF SUBROUTINE DLSODE AND ITS INTERNAL PROCEDURES
+      END SUBROUTINE DLSODE                                          
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE FUN_CHEM(N, T, V, FCT)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      USE KPP_ROOT_Parameters
+      USE KPP_ROOT_Global
+      USE KPP_ROOT_Function, ONLY: Fun
+      USE KPP_ROOT_Rates
+
+      IMPLICIT NONE
+
+      INTEGER :: N
+      KPP_REAL :: V(NVAR), FCT(NVAR), T
+      
+!      TOLD = TIME
+!      TIME = T
+!      CALL Update_SUN()
+!      CALL Update_RCONST()
+!      CALL Update_PHOTO()
+!      TIME = TOLD
+
+      CALL Fun(V, FIX, RCONST, FCT)
+      
+      !Nfun=Nfun+1
+
+      END SUBROUTINE FUN_CHEM
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE JAC_CHEM (N, T, V, JF)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      USE KPP_ROOT_Parameters
+      USE KPP_ROOT_Global
+      USE KPP_ROOT_JacobianSP
+      USE KPP_ROOT_Jacobian, ONLY: Jac_SP
+      USE KPP_ROOT_Rates
+
+      IMPLICIT NONE
+
+      KPP_REAL :: V(NVAR), T
+      INTEGER :: N
+#ifdef FULL_ALGEBRA    
+      INTEGER :: I, J
+      KPP_REAL :: JV(LU_NONZERO), JF(NVAR,NVAR)
+#else
+      KPP_REAL :: JF(LU_NONZERO)
+#endif   
+  
+!      TOLD = TIME
+!      TIME = T
+!      CALL Update_SUN()
+!      CALL Update_RCONST()
+!      CALL Update_PHOTO()
+!      TIME = TOLD
+    
+#ifdef FULL_ALGEBRA    
+      CALL Jac_SP(V, FIX, RCONST, JV)
+      DO j=1,NVAR
+      DO i=1,NVAR
+         JF(i,j) = 0.0d0
+      END DO
+      END DO
+      DO i=1,LU_NONZERO
+         JF(LU_IROW(i),LU_ICOL(i)) = JV(i)
+      END DO
+#else
+      CALL Jac_SP(V, FIX, RCONST, JF) 
+#endif   
+      !Njac=Njac+1
+    
+      END SUBROUTINE JAC_CHEM
+
+
+END MODULE KPP_ROOT_Integrator
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/kpp_odessa_ddm.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/kpp_odessa_ddm.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/kpp_odessa_ddm.def	(revision 2696)
@@ -0,0 +1,42 @@
+ 
+#FUNCTION AGGREGATE
+#JACOBIAN SPARSE_LU_ROW
+#DOUBLE ON 
+#INTFILE kpp_odessa_ddm
+
+#INLINE F77_GLOBAL
+      INTEGER Autonomous
+      COMMON /INTGDATA/ Autonomous
+      REAL*8 STEPSTART
+      COMMON /GDATA/ STEPSTART
+#ENDINLINE
+
+#INLINE F77_INIT
+        STEPMIN=0.0001
+        STEPMAX=3600.
+        Autonomous = 0
+        STEPSTART=STEPMIN
+#ENDINLINE
+
+
+
+#INLINE C_GLOBAL
+extern int Autonomous;
+extern double STEPSTART;
+#ENDINLINE
+
+#INLINE C_DATA_INT
+int Autonomous;
+double STEPSTART;
+#ENDINLINE
+
+
+
+#INLINE C_INIT
+        STEPMIN=0.0001;
+        STEPMAX=3600.0;
+        Autonomous = 0;
+        STEPSTART=STEPMIN;
+#ENDINLINE
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/kpp_odessa_ddm.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/kpp_odessa_ddm.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/kpp_odessa_ddm.f	(revision 2696)
@@ -0,0 +1,4427 @@
+      SUBROUTINE INTEGRATE( NSENSIT, Y, TIN, TOUT )
+
+      INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Global.h'
+
+C TIN - Start Time
+      REAL*8 TIN
+C TOUT - End Time
+      REAL*8 TOUT
+C Concentrations and Sensitivities
+      REAL*8 Y(NVAR,NSENSIT+1), PARAMS(NSENSIT)
+C ---  Note: Y contains: (1:NVAR) concentrations, followed by
+C ---                   (1:NVAR) sensitivities w.r.t. first parameter, followed by
+C ---                   etc.,  followed by
+C ---                   (1:NVAR) sensitivities w.r.t. NSENSIT's parameter
+      INTEGER i
+
+      INTEGER LIW, LRW
+C      PARAMETER (LRW = 22 + 8*(NSENSIT+1)*NVAR + NVAR**2 + NVAR)
+C      PARAMETER (LIW = 21 + NVAR + NSENSIT)
+C      REAL*8 RWORK(LRW)
+C      INTEGER IWORK(LIW)
+C Note: the following dynamic allocation is not standard F77 and may not work on
+C       some systems. Declare LRW, LIW parameters as above with some upper bound used for NSENSIT
+      REAL*8 RWORK(22 + 8*(NSENSIT+1)*NVAR + NVAR**2 + NVAR)
+      INTEGER IWORK(21 + NVAR + NSENSIT)
+
+      INTEGER IOPT(3), NEQ(2)
+
+      EXTERNAL FUNC_CHEM,JAC,DFUNC_CHEMDPAR
+
+      MF = 21    ! --- BDF plus user-supplied Jacobian
+
+      LRW = 22 + 8*(NSENSIT+1)*NVAR + NVAR**2 + NVAR
+      LIW = 21 + NVAR + NSENSIT
+
+      NEQ(1) = NVAR ! --- No. of Variables
+      NEQ(2) = NSENSIT ! --- No of parameters
+
+      ITOL=1     ! --- 1=Scalar Tolerances; 4 = VECTOR TOLERANCES
+      ITASK=1    ! --- Normal Output
+      ISTATE=1
+      IOPT(1)=1  ! --- 0= No optional parameters, 1=Optional parameters
+      IOPT(2)=1  ! --- 1=Perform sensitivity analysis; 0 if not
+      IOPT(3)=1  ! --- 1 if DFUNC_CHEMDPAR supplied by the user;
+                 ! --- 0 if finite differences are to be used
+C --- Set optional parameters
+      DO 10 i=1,LRW
+        RWORK(i) = 0.0D0
+ 10   CONTINUE
+      DO 20 i=1,LIW
+        IWORK(i) = 0
+ 20   CONTINUE
+
+      RWORK(5) = STEPMIN   ! 	THE STEP SIZE TO BE ATTEMPTED ON THE FIRST STEP.
+      RWORK(6) = STEPMAX     ! THE MAXIMUM ABSOLUTE STEP SIZE ALLOWED.
+      RWORK(7) = 0.0D0       ! THE MINIMUM ABSOLUTE STEP SIZE ALLOWED.
+      IWORK(6) = 5000        !  MAXIMUM NUMBER OF (INTERNALLY DEFINED) STEPS
+
+      CALL KPP_ODESSA( FUNC_CHEM,DFUNC_CHEMDPAR,NEQ,Y,PARAMS,TIN,TOUT,
+     &              ITOL,RTOL,ATOL,
+     1              ITASK,ISTATE,IOPT,RWORK,LRW,IWORK,LIW,
+     &              JAC,MF)
+
+      IF (ISTATE.LT.0) THEN
+        print *,'KPP_ODESSA: Unsucessfull exit at T=',
+     &          TIN,' (ISTATE=',ISTATE,')'
+      ENDIF
+
+      RETURN
+      END
+
+
+
+
+        SUBROUTINE FUNC_CHEM (N, T, V, PARAMS, FCT)
+        INCLUDE 'KPP_ROOT_Parameters.h'
+        INCLUDE 'KPP_ROOT_Global.h'
+
+        DIMENSION V(NVAR), PARAMS(*), FCT(NVAR)
+        TOLD = TIME
+        TIME = T
+        CALL Update_SUN()
+        CALL Update_RCONST()
+        TIME = TOLD
+        CALL Fun(V,  FIX, RCONST, FCT)
+        RETURN
+        END
+
+        SUBROUTINE DFUNC_CHEMDPAR (N, T, V, PARAMS, DFCT, JPAR)
+        INCLUDE 'KPP_ROOT_Parameters.h'
+        INCLUDE 'KPP_ROOT_Global.h'
+C --- NCOEFF = number of rate coefficients w.r.t. which we differentiate
+C    (note that in some applications NCOEFF may be different than NSENSIT)
+C    JCOEFF(1:NCOEFF) are the indices of rate coefficients   w.r.t. which we differentiate
+        INTEGER NCOEFF, JCOEFF(NREACT)
+        COMMON /DDMRCOEFF/ NCOEFF, JCOEFF
+
+        DIMENSION V(NVAR), PARAMS(*), DFCT(NVAR)
+	INTEGER JPAR, i, JC(1)
+	IF (DDMTYPE .EQ. 0) THEN
+C This setting is required for sensitivities w.r.t. initial conditions
+          DO i=1,NVAR
+	    DFCT(i) = 0.d0
+	  END DO
+	ELSE
+C This setting is required for sensitivities w.r.t. rate coefficients
+C   ... and should be changed by the user for other applications
+          JC(1) = JCOEFF(JPAR)
+	  CALL dFun_dRcoeff(V,  FIX, 1, JC, DFCT )
+	END IF
+        RETURN
+        END
+
+        SUBROUTINE JAC (N, T, V, PARAMS, ML, MU, JS, NROWPD)
+        INCLUDE 'KPP_ROOT_Parameters.h'
+        INCLUDE 'KPP_ROOT_Sparse.h'
+
+        REAL*8 V(NVAR), PARAMS(*), JS(LU_NONZERO)
+	INTEGER ML, MU, NROWPD
+        TOLD = TIME
+        TIME = T
+        CALL Update_SUN()
+        CALL Update_RCONST()
+        TIME = TOLD
+        DO i=1,LU_NONZERO
+            JS(i) = 0.0D0
+        END DO
+        CALL Jac_SP(V,  FIX, RCONST, JS)
+        RETURN
+        END
+
+
+C      ALGORITHM 658, COLLECTED ALGORITHMS FROM ACM.
+C      THIS WORK PUBLISHED IN TRANSACTIONS ON MATHEMATICAL SOFTWARE,
+C      VOL. 14, NO. 1, P.61.
+C-----------------------------------------------------------------------
+C THIS IS THE SEPTEMBER 1, 1986 VERSION OF ODESSA..
+C AN ORDINARY DIFFERENTIAL EQUATION KppSolveR WITH EXPLICIT SIMULTANEOUS
+C SENSITIVITY ANALYSIS.
+C
+C THIS PACKAGE IS A MODIFICATION OF THE AUGUST 13, 1981 VERSION OF
+C LSODE..  LIVERMORE KppSolveR FOR ORDINARY DIFFERENTIAL EQUATIONS.
+C THIS VERSION IS IN DOUBLE PRECISION.
+C
+C ODESSA KppSolveS FOR THE FIRST-ORDER SENSITIVITY COEFFICIENTS..
+C    DY(I)/DP, FOR A SINGLE PARAMETER, OR,
+C    DY(I)/DP(J), FOR MULTIPLE PARAMETERS,
+C ASSOCIATED WITH A SYSTEM OF ORDINARY DIFFERENTIAL EQUATIONS..
+C    DY/DT = F(Y,T;P).
+C-----------------------------------------------------------------------
+C REFERENCES...
+C
+C  1. JORGE R. LEIS AND MARK A. KRAMER, THE SIMULTANEOUS SOLUTION AND
+C     EXPLICIT SENSITIVITY ANALYSIS OF SYSTEMS DESCRIBED BY ORDINARY
+C     DIFFERENTIAL EQUATIONS.  SUBMITTED TO ACM TRANS. MATH. SOFTWARE,
+C     (1985).
+C
+C  2. JORGE R. LEIS AND MARK A. KRAMER, ODESSA - AN ORDINARY DIFFERENTIA
+C     EQUATION KppSolveR WITH EXPLICIT SIMULTANEOUS SENSITIVITY ANALYSIS.
+C     SUBMITTED TO ACM TRANS. MATH. SOFTWARE, (1985).
+C
+C  3. ALAN C. HINDMARSH,  LSODE AND LSODI,  TWO NEW INITIAL VALUE
+C     ORDINARY DIFFERENTIAL EQUATION KppSolveRS, ACM-SIGNUM NEWSLETTER,
+C     VOL. 15, NO. 4 (1980), PP. 10-11.
+C-----------------------------------------------------------------------
+C PROBLEM STATEMENT..
+C
+C THE ODESSA MODIFICATION OF THE LSODE PACKAGE PROVIDES THE OPTION TO
+C CALCULATE FIRST-ORDER SENSITIVITY COEFFICIENTS FOR A SYSTEM OF STIFF
+C OR NON-STIFF EXPLICIT ORDINARY DIFFERENTIAL EQUATIONS OF THE GENERAL
+C FORM :
+C
+C                  DY/DT = F(Y,T;P)     (1)
+C
+C WHERE Y IS AN N-DIMENSIONAL DEPENDENT VARIABLE VECTOR, T IS THE
+C INDEPENDENT INTEGRATION VARIABLE, AND P IS AN NPAR-DIMENSIONAL
+C CONSTANT VECTOR. THE GOVERNING EQUATIONS FOR THE FIRST-ORDER
+C SENSITIVITY COEFFICIENTS ARE GIVEN BY :
+C
+C                  S'(T) = J(T)*S(T) + DF/DP     (2)
+C
+C WHERE
+C
+C                  S(T)  = DY(T)/DP (= SENSITIVITY FUNCTIONS)
+C                  S'(T) = D(DY(T)/DP)/DT
+C                  J(T)  = DF(Y,T;P)/DY(T) (= JACOBIAN MATRIX)
+C AND              DF/DP = DF(Y,T;P)/DP (= INHOMOGENEITY MATRIX)
+C
+C SOLUTION OF EQUATIONS (1) AND (2) PROCEEDS SIMULTANEOUSLY VIA AN
+C EXTENSION OF THE LSODE PACKAGE AS DESCRIBED IN [1].
+C----------------------------------------------------------------------
+C ACKNOWLEDGEMENT : THE FOLLOWING ODESSA PACKAGE DOCUMENTATION IS A
+C                   MODIFICATION OF THE LSODE DOCUMENTATION WHICH
+C                   ACCOMPANIES THE LSODE PACKAGE CODE.
+C----------------------------------------------------------------------
+C SUMMARY OF USAGE.
+C
+C COMMUNICATION BETWEEN THE USER AND THE ODESSA PACKAGE, FOR NORMAL
+C SITUATIONS, IS SUMMARIZED HERE. THIS SUMMARY DESCRIBES ONLY A SUBSET
+C OF THE FULL SET OF OPTIONS AVAILABLE.  SEE THE FULL DESCRIPTION FOR
+C DETAILS, INCLUDING OPTIONAL COMMUNICATION, NONSTANDARD OPTIONS,
+C AND INSTRUCTIONS FOR SPECIAL SITUATIONS.  SEE ALSO THE EXAMPLE
+C PROBLEM (WITH PROGRAM AND OUTPUT) FOLLOWING THIS SUMMARY.
+C
+C A. FIRST PROVIDE A SUBROUTINE OF THE FORM..
+C              SUBROUTINE F (N, T, Y, PAR, YDOT)
+C              DOUBLE PRECISION T, Y, PAR, YDOT
+C              DIMENSION Y(N), YDOT(N), PAR(NPAR)
+C WHICH SUPPLIES THE VECTOR FUNCTION F BY LOADING YDOT(I) WITH F(I).
+C N IS THE NUMBER OF FIRST-ORDER DIFFERENTIAL EQUATIONS IN THE
+C ABOVE MODEL. NPAR IS THE NUMBER OF MODEL PARAMETERS FOR WHICH
+C VECTOR SENSITIVITY FUNCTIONS ARE DESIRED. YOU ARE ALSO ENCOURAGED
+C TO PROVIDE A SUBROUTINE OF THE FORM..
+C              SUBROUTINE DF (N, T, Y, PAR, DFDP, JPAR)
+C              DOUBLE PRECISION T, Y, PAR, DFDP
+C              DIMENSION Y(N), PAR(NPAR), DFDP(N)
+C              GO TO (1,...,NPAR) JPAR
+C         1    DFDP(1) = DF(1)/DP(1)
+C              .
+C              DFDP(I) = DF(I)/DP(1)
+C              .
+C              DFDP(N) = DF(N)/DP(1)
+C              RETURN
+C         2    DFDP(1) = DF(1)/DP(2)
+C              .
+C              DFDP(I) = DF(I)/DP(2)
+C              .
+C              DFDP(N) = DF(N)/DP(2)
+C              RETURN
+C         .    .
+C         .    .
+C              RETURN
+C       NPAR   DFDP(1) = DF(1)/DP(NPAR)
+C              .
+C              DFDP(I) = DF(I)/DP(NPAR)
+C              .
+C              DFDP(N) = DF(N)/DP(NPAR)
+C              RETURN
+C              END
+C ONLY NONZERO ELEMENTS NEED BE LOADED. IF THIS IS NOT FEASIBLE,
+C ODESSA WILL GENERATE THIS MATRIX INTERNALLY BY DIFFERENCE QUOTIENTS.
+C
+C B. NEXT DETERMINE (OR GUESS) WHETHER OR NOT THE PROBLEM IS STIFF.
+C STIFFNESS OCCURS WHEN THE JACOBIAN MATRIX DF/DY HAS AN EIGENVALUE
+C WHOSE REAL PART IS NEGATIVE AND LARGE IN MAGNITUDE, COMPARED TO THE
+C RECIPROCAL OF THE T SPAN OF INTEREST.  IF THE PROBLEM IS NONSTIFF,
+C USE METH = 10.  IF IT IS STIFF, USE METH = 20. THE USER IS REQUIRED
+C TO INPUT THE METHOD FLAG MF = 10*METH + MITER. THERE ARE FOUR
+C STANDARD CHOICES FOR MITER WHEN A SENSITIVITY ANALYSIS IS DESIRED,
+C AND ODESSA REQUIRES THE JACOBIAN MATRIX IN SOME FORM.
+C THIS MATRIX IS REGARDED EITHER AS FULL (MITER = 1 OR 2),
+C OR BANDED (MITER = 4 OR 5). IN THE BANDED CASE, ODESSA REQUIRES TWO
+C HALF-BANDWIDTH PARAMETERS ML AND MU.  THESE ARE, RESPECTIVELY, THE
+C WIDTHS OF THE LOWER AND UPPER PARTS OF THE BAND, EXCLUDING THE MAIN
+C DIAGONAL.  THUS THE BAND CONSISTS OF THE LOCATIONS (I,J) WITH
+C I-ML .LE. J .LE. I+MU, AND THE FULL BANDWIDTH IS ML+MU+1.
+C
+C C. YOU ARE ENCOURAGED TO SUPPLY THE JACOBIAN DIRECTLY (MF = 11, 14,
+C 21, OR 24), BUT IF THIS IS NOT FEASIBLE, ODESSA WILL COMPUTE IT
+C INTERNALLY BY DIFFERENCE QUOTIENTS (MF = 12, 15, 22, OR 25). IF YOU
+C ARE SUPPLYING THE JACOBIAN, PROVIDE A SUBROUTINE OF THE FORM..
+C         SUBROUTINE JAC (NEQ, T, Y, PAR, ML, MU, PD, NROWPD)
+C         DOUBLE PRECISION T, Y, PAR, PD
+C         DIMENSION Y(N), PD(NROWPD,N), PAR(NPAR)
+C WHICH SUPPLIES DF/DY BY LOADING PD AS FOLLOWS..
+C  FOR A FULL JACOBIAN (MF = 11, OR 21), LOAD PD(I,J) WITH DF(I)/DY(J),
+C  THE PARTIAL DERIVATIVE OF F(I) WITH RESPECT TO Y(J).  (IGNORE THE
+C  ML AND MU ARGUMENTS IN THIS CASE.)
+C  FOR A BANDED JACOBIAN (MF = 14, OR 24), LOAD PD(I-J+MU+1,J) WITH
+C  DF(I)/DY(J), I.E. LOAD THE DIAGONAL LINES OF DF/DY INTO THE ROWS OF
+C  PD FROM THE TOP DOWN.
+C IN EITHER CASE, ONLY NONZERO ELEMENTS NEED BE LOADED.
+C
+C D. WRITE A MAIN PROGRAM WHICH CALLS SUBROUTINE ODESSA ONCE FOR
+C EACH POINT AT WHICH ANSWERS ARE DESIRED.  THIS SHOULD ALSO PROVIDE
+C FOR POSSIBLE USE OF LOGICAL UNIT 6 FOR OUTPUT OF ERROR MESSAGES BY
+C ODESSA.  ON THE FIRST CALL TO ODESSA, SUPPLY ARGUMENTS AS FOLLOWS..
+C F     = NAME OF SUBROUTINE FOR RIGHT-HAND SIDE VECTOR F (MODEL).
+C         THIS NAME MUST BE DECLARED EXTERNAL IN CALLING PROGRAM.
+C DF    = NAME OF SUBROUTINE FOR INHOMOGENEITY MATRIX DF/DP.
+C         IF USED (IDF = 1), THIS NAME MUST BE DECLARED EXTERNAL IN
+C         CALLING PROGRAM. IF NOT USED (IDF = 0), PASS A DUMMY NAME.
+C N     = NUMBER OF FIRST ORDER ODE-S IN MODEL; LOAD INTO NEQ(1).
+C NPAR  = NUMBER OF MODEL PARAMETERS OF INTEREST; LOAD INTO NEQ(2).
+C Y     = AN (N) BY (NPAR+1) REAL ARRAY OF INITIAL VALUES..
+C         Y(I,1) , I = 1,N , CONTAIN THE STATE, OR MODEL, DEPENDENT
+C                            VARIABLES,
+C         Y(I,J) , J = 2,NPAR , CONTAIN THE DEPENDENT SENSITIVITY
+C                               COEFFICIENTS.
+C PAR   = A REAL ARRAY OF LENGTH NPAR CONTAINING MODEL PARAMETERS
+C         OF INTEREST.
+C T     = THE INITIAL VALUE OF THE INDEPENDENT VARIABLE.
+C TOUT  = FIRST POINT WHERE OUTPUT IS DESIRED (.NE. T).
+C ITOL  = 1, 2, 3, OR 4 ACCORDING AS RTOL, ATOL (BELOW) ARE  SCALARS
+C         OR ARRAYS.
+C RTOL  = RELATIVE TOLERANCE PARAMETER (SCALAR OR (N) BY (NPAR+1)
+C         ARRAY).
+C ATOL  = ABSOLUTE TOLERANCE PARAMETER (SCALAR OR (N) BY (NPAR+1)
+C         ARRAY).
+C         THE ESTIMATED LOCAL ERROR IN Y(I,J) WILL BE CONTROLLED SO AS
+C         TO BE ROUGHLY LESS (IN MAGNITUDE) THAN
+C          EWT(I,J) = RTOL*ABS(Y(I,J)) + ATOL          IF ITOL = 1,
+C          EWT(I,J) = RTOL*ABS(Y(I,J)) + ATOL(I,J)     IF ITOL = 2,
+C          EWT(I,J) = RTOL(I,J)*ABS(Y(I,J) + ATOL      IF ITOL = 3, OR
+C          EWT(I,J) = RTOL(I,J)*ABS(Y(I,J) + ATOL(I,J) IF ITOL = 4.
+C         THUS THE LOCAL ERROR TEST PASSES IF, IN EACH COMPONENT,
+C         EITHER THE ABSOLUTE ERROR IS LESS THAN ATOL (OR ATOL(I,J)),
+C         OR THE RELATIVE ERROR IS LESS THAN RTOL (OR RTOL(I,J)).
+C         USE RTOL = 0.0 FOR PURE ABSOLUTE ERROR CONTROL, AND
+C         USE ATOL = 0.0 FOR PURE RELATIVE ERROR CONTROL.
+C         CAUTION.. ACTUAL (GLOBAL) ERRORS MAY EXCEED THESE LOCAL
+C         TOLERANCES, SO CHOOSE THEM CONSERVATIVELY.
+C ITASK = 1 FOR NORMAL COMPUTATION OF OUTPUT VALUES OF Y AT T = TOUT.
+C ISTATE = INTEGER FLAG (INPUT AND OUTPUT).  SET ISTATE = 1.
+C IOPT  = 0, TO INDICATE NO OPTIONAL INPUTS FOR INTEGRATION;
+C          LOAD INTO IOPT(1).
+C ISOPT = 1, TO INDICATE SENSITIVITY ANALYSIS, = 0, TO INDICATE
+C          NO SENSITIVITY ANALYSIS; LOAD INTO IOPT(2).
+C IDF   = 1, IF SUBROUTINE DF (ABOVE) IS SUPPLIED BY THE USER,
+C          = 0, OTHERWISE; LOAD INTO IOPT(3).
+C RWORK = REAL WORK ARRAY OF LENGTH AT LEAST..
+C           22 + 16*N + N**2           FOR MF = 11 OR 12,
+C           22 + 17*N + (2*ML + MU)*N  FOR MF = 14 OR 15,
+C           22 +  9*N + N**2           FOR MF = 21 OR 22,
+C           22 + 10*N + (2*ML + MU)*N  FOR MF = 24 OR 25,
+C         IF ISOPT = 0, OR..
+C           22 + 15*(NPAR+1)*N + N**2 + N           FOR MF = 11 OR 12,
+C           24 + 15*(NPAR+1)*N + (2*ML+MU+2)*N + N  FOR MF = 14 OR 15,
+C           22 + 8*(NPAR+1)*N + N**2 + N            FOR MF = 21 OR 22,
+C           24 + 8*(NPAR+1)*N + (2*ML+MU+2)*N + N   FOR MF = 24 OR 25,
+C         IF ISOPT = 1.
+C LRW   = DECLARED LENGTH OF RWORK (IN USER-S DIMENSION STATEMENT).
+C IWORK = INTEGER WORK ARRAY OF LENGTH AT LEAST..
+C          20 + N         IF ISOPT = 0,
+C          21 + N + NPAR  IF ISOPT = 1.
+C        IF MITER = 4 OR 5, INPUT IN IWORK(1),IWORK(2) THE LOWER
+C        AND UPPER HALF-BANDWIDTHS ML,MU (EXCLUDING MAIN DIAGONAL).
+C LIW  = DECLARED LENGTH OF IWORK (IN USER-S DIMENSION STATEMENT).
+C JAC  = NAME OF SUBROUTINE FOR JACOBIAN MATRIX.
+C        IF USED, THIS NAME MUST BE DECLARED EXTERNAL IN CALLING
+C        PROGRAM.  IF NOT USED, PASS A DUMMY NAME.
+C MF   = METHOD FLAG.  STANDARD VALUES FOR ISOPT = 0 ARE..
+C         10 FOR NONSTIFF (ADAMS) METHOD, NO JACOBIAN USED.
+C         21 FOR STIFF (BDF) METHOD, USER-SUPPLIED FULL JACOBIAN.
+C         22 FOR STIFF METHOD, INTERNALLY GENERATED FULL JACOBIAN.
+C         24 FOR STIFF METHOD, USER-SUPPLIED BANDED JACOBIAN.
+C         25 FOR STIFF METHOD, INTERNALLY GENERATED BANDED JACOBIAN.
+C        IF ISOPT = 1, MF = 10 IS ILLEGAL AND CAN BE REPLACED BY..
+C         11 FOR NONSTIFF METHOD, USER-SUPPLIED FULL JACOBIAN.
+C         12 FOR NONSTIFF METHOD, INTERNALLY GENERATED FULL JACOBIAN.
+C         14 FOR NONSTIFF METHOD, USER-SUPPLIED BANDED JACOBIAN.
+C         15 FOR NONSTIFF METHOD, INTERNALLY GENERATED BANDED JACOBIAN.
+C NOTE THAT THE MAIN PROGRAM MUST DECLARE ARRAYS Y, RWORK, IWORK, AND
+C POSSIBLY ATOL AND RTOL, AS WELL AS NEQ, IOPT, AND PAR IF ISOPT = 1.
+C
+C E. THE OUTPUT FROM THE FIRST CALL (OR ANY CALL) IS..
+C     Y = ARRAY OF COMPUTED VALUES OF Y(T) VECTOR.
+C     T = CORRESPONDING VALUE OF INDEPENDENT VARIABLE (NORMALLY TOUT).
+C ISTATE = 2  IF ODESSA WAS SUCCESSFUL, NEGATIVE OTHERWISE.
+C         -1 MEANS EXCESS WORK DONE ON THIS CALL (PERHAPS WRONG MF).
+C         -2 MEANS EXCESS ACCURACY REQUESTED (TOLERANCES TOO SMALL).
+C         -3 MEANS ILLEGAL INPUT DETECTED (SEE PRINTED MESSAGE).
+C         -4 MEANS REPEATED ERROR TEST FAILURES (CHECK ALL INPUTS).
+C         -5 MEANS REPEATED CONVERGENCE FAILURES (PERHAPS BAD JACOBIAN
+C            SUPPLIED OR WRONG CHOICE OF MF OR TOLERANCES).
+C         -6 MEANS ERROR WEIGHT BECAME ZERO DURING PROBLEM. (SOLUTION
+C            COMPONENT I,J VANISHED, AND ATOL OR ATOL(I,J) = 0.0)
+C
+C F. TO CONTINUE THE INTEGRATION AFTER A SUCCESSFUL RETURN, SIMPLY
+C RESET TOUT AND CALL ODESSA AGAIN. NO OTHER PARAMETERS NEED BE RESET.
+C----------------------------------------------------------------------
+C EXAMPLE PROBLEM.
+C
+C THE FOLLOWING IS A SIMPLE EXAMPLE PROBLEM, WITH THE CODING
+C NEEDED FOR ITS SOLUTION BY ODESSA.  THE PROBLEM IS FROM CHEMICAL
+C KINETICS, AND CONSISTS OF THE FOLLOWING THREE RATE EQUATIONS..
+C    DY1/DT = -PAR(1)*Y1 + PAR(2)*Y2*Y3 ; PAR(1) = .04, PAR(2) = 1.E4
+C    DY2/DT = PAR(1)*Y1 - PAR(2)*Y2*Y3 - PAR(3)*Y2**2 ; PAR(3) = 3.E7
+C    DY3/DT = PAR(3)*Y2**2
+C ON THE INTERVAL FROM T = 0.0 TO T = 4.E10, WITH INITIAL CONDITIONS
+C Y1 = 1.0, Y2 = Y3 = 0, AND S(I,J) = 0, I = 1,3, J = 1,3.
+C THE PROBLEM IS STIFF.
+C
+C THE FOLLOWING CODING KppSolveS THIS PROBLEM WITH ODESSA, USING
+C MF = 21 AND PRINTING RESULTS AT T = .4, 4., ..., 4.E10.
+C IT USES ITOL = 4 AND ATOL MUCH SMALLER FOR Y2 THAN Y1 OR Y3,
+C BECAUSE Y2 HAS MUCH SMALLER VALUES. LESS STRINGENT TOLERANCES
+C ARE ASSIGNED FOR THE SENSITIVITIES TO ACHIEVE GREATER EFFICIENCY.
+C AT THE END OF THE RUN, STATISTICAL QUANTITIES OF INTEREST ARE
+C PRINTED (SEE OPTIONAL OUTPUTS IN THE FULL DESCRIPTION BELOW).
+C
+C      DOUBLE PRECISION ATOL, RWORK, RTOL, T, TOUT, Y, PAR
+C      EXTERNAL FEX, JEX, DFEX
+C      DIMENSION Y(3,4), PAR(3), ATOL(3,4), RTOL(3,4), RWORK(130),
+C     1  IWORK(27), NEQ(2), IOPT(3)
+C      N = 3
+C      NPAR = 3
+C      NEQ(1) = N
+C      NEQ(2) = NPAR
+C      NSV = NPAR+1
+C      DO 10 I = 1,N
+C      DO 10 J = 1,NSV
+C 10     Y(I,J) = 0.0D0
+C      Y(1,1) = 1.0D0
+C      PAR(1) = 0.04D0
+C      PAR(2) = 1.0D4
+C      PAR(3) = 3.0D7
+C      T = 0.D0
+C      TOUT = .4D0
+C      ITOL = 4
+C      ATOL(1,1) = 1.D-6
+C      ATOL(2,1) = 1.D-10
+C      ATOL(3,1) = 1.D-6
+C      DO 20 I = 1,N
+C        RTOL(I,1) = 1.D-4
+C        DO 15 J = 2,NSV
+C          RTOL(I,J) = 1.D-3
+C 15       ATOL(I,J) = 1.D2 * ATOL(I,1)
+C 20   CONTINUE
+C      ITASK = 1
+C      ISTATE = 1
+C      IOPT(1) = 0
+C      IOPT(2) = 1
+C      IOPT(3) = 1
+C      LRW = 130
+C      LIW = 27
+C      MF = 21
+C      DO 60 IOUT = 1,12
+C        CALL ODESSA(FEX,DFEX,NEQ,Y,PAR,T,TOUT,ITOL,RTOL,ATOL,
+C     1    ITASK,ISTATE, IOPT,RWORK,LRW,IWORK,LIW,JEX,MF)
+C        WRITE(6,30)T,Y(1,1),Y(2,1),Y(3,1)
+C 30     FORMAT(1X,7H AT T =,E12.4,6H   Y =,3E14.6)
+C        DO 50 J = 2,NSV
+C          JPAR = J-1
+C          WRITE(6,40)JPAR,Y(1,J),Y(2,J),Y(3,J)
+C 40       FORMAT(20X,2HS(,I1,3H) =,3E14.6)
+C 50     CONTINUE
+C        IF (ISTATE .LT. 0) GO TO 80
+C 60     TOUT = TOUT*10.D0
+C      WRITE(6,70)IWORK(11),IWORK(12),IWORK(13),IWORK(19)
+C 70   FORMAT(1X,/,12H NO. STEPS =,I4,11H  NO. F-S =,I4,11H  NO. J-S =,
+C     1  I4,12H  NO. DF-S =,I4)
+C      STOP
+C 80   WRITE(6,90)ISTATE
+C 90   FORMAT(///22H ERROR HALT.. ISTATE =,I3)
+C      STOP
+C      END
+C
+C      SUBROUTINE FEX (NEQ, T, Y, PAR, YDOT)
+C      DOUBLE PRECISION T, Y, YDOT, PAR
+C      DIMENSION Y(3), YDOT(3), PAR(3)
+C      YDOT(1) = -PAR(1)*Y(1) + PAR(2)*Y(2)*Y(3)
+C      YDOT(3) = PAR(3)*Y(2)*Y(2)
+C      YDOT(2) = -YDOT(1) - YDOT(3)
+C      RETURN
+C      END
+C
+C      SUBROUTINE JEX (NEQ, T, Y, PAR, ML, MU, PD, NRPD)
+C      DOUBLE PRECISION PD, T, Y, PAR
+C      DIMENSION Y(3), PD(NRPD,3), PAR(3)
+C      PD(1,1) = -PAR(1)
+C      PD(1,2) = PAR(2)*Y(3)
+C      PD(1,3) = PAR(2)*Y(2)
+C      PD(2,1) = PAR(1)
+C      PD(2,3) = -PD(1,3)
+C      PD(3,2) = 2.D0*PAR(3)*Y(2)
+C      PD(2,2) = -PD(1,2) - PD(3,2)
+C      RETURN
+C      END
+C
+C      SUBROUTINE DFEX (NEQ, T, Y, PAR, DFDP, JPAR)
+C      DOUBLE PRECISION T, Y, PAR, DFDP
+C      DIMENSION Y(3), PAR(3), DFDP(3)
+C      GO TO (1,2,3), JPAR
+C  1   DFDP(1) = -Y(1)
+C      DFDP(2) = Y(1)
+C      RETURN
+C  2   DFDP(1) = Y(2)*Y(3)
+C      DFDP(2) = -Y(2)*Y(3)
+C      RETURN
+C  3   DFDP(2) = -Y(2)*Y(2)
+C      DFDP(3) = Y(2)*Y(2)
+C      RETURN
+C      END
+C
+C  THE OUTPUT OF THIS PROGRAM (ON A DATA GENERAL MV-8000 IN
+C  DOUBLE PRECISION IS AS FOLLOWS:
+C
+C AT T =   .4000E+00   Y =   .985173E+00   .338641E-04   .147930E-01
+C                   S(1) =  -.355914E+00   .390261E-03   .355524E+00
+C                   S(2) =   .955150E-07  -.213065E-09  -.953019E-07
+C                   S(3) =  -.158466E-10  -.529012E-12   .163756E-10
+C AT T =   .4000E+01   Y =   .905516E+00   .224044E-04   .944615E-01
+C                   S(1) =  -.187621E+01   .179197E-03   .187603E+01
+C                   S(2) =   .296093E-05  -.583104E-09  -.296034E-05
+C                   S(3) =  -.493267E-09  -.276246E-12   .493544E-09
+C AT T =   .4000E+02   Y =   .715848E+00   .918628E-05   .284143E+00
+C                   S(1) =  -.424730E+01   .459360E-04   .424726E+01
+C                   S(2) =   .137294E-04  -.235815E-09  -.137291E-04
+C                   S(3) =  -.228818E-08  -.113803E-12   .228829E-08
+C AT T =   .4000E+03   Y =   .450526E+00   .322299E-05   .549471E+00
+C                   S(1) =  -.595837E+01   .354310E-05   .595836E+01
+C                   S(2) =   .227380E-04  -.226041E-10  -.227380E-04
+C                   S(3) =  -.378971E-08  -.499501E-13   .378976E-08
+C AT T =   .4000E+04   Y =   .183185E+00   .894131E-06   .816814E+00
+C                   S(1) =  -.475006E+01  -.599504E-05   .475007E+01
+C                   S(2) =   .188089E-04   .231330E-10  -.188089E-04
+C                   S(3) =  -.313478E-08  -.187575E-13   .313480E-08
+C AT T =   .4000E+05   Y =   .389733E-01   .162133E-06   .961027E+00
+C                   S(1) =  -.157477E+01  -.276199E-05   .157477E+01
+C                   S(2) =   .628668E-05   .110026E-10  -.628670E-05
+C                   S(3) =  -.104776E-08  -.453588E-14   .104776E-08
+C AT T =   .4000E+06   Y =   .493609E-02   .198411E-07   .995064E+00
+C                   S(1) =  -.236244E+00  -.458262E-06   .236244E+00
+C                   S(2) =   .944669E-06   .183193E-11  -.944671E-06
+C                   S(3) =  -.157441E-09  -.635990E-15   .157442E-09
+C AT T =   .4000E+07   Y =   .516087E-03   .206540E-08   .999484E+00
+C                   S(1) =  -.256277E-01  -.509808E-07   .256278E-01
+C                   S(2) =   .102506E-06   .203905E-12  -.102506E-06
+C                   S(3) =  -.170825E-10  -.684002E-16   .170826E-10
+C AT T =   .4000E+08   Y =   .519314E-04   .207736E-09   .999948E+00
+C                   S(1) =  -.259316E-02  -.518029E-08   .259316E-02
+C                   S(2) =   .103726E-07   .207209E-13  -.103726E-07
+C                   S(3) =  -.172845E-11  -.691450E-17   .172845E-11
+C AT T =   .4000E+09   Y =   .544710E-05   .217885E-10   .999995E+00
+C                   S(1) =  -.271637E-03  -.541849E-09   .271638E-03
+C                   S(2) =   .108655E-08   .216739E-14  -.108655E-08
+C                   S(3) =  -.180902E-12  -.723615E-18   .180902E-12
+C AT T =   .4000E+10   Y =   .446748E-06   .178699E-11   .100000E+01
+C                   S(1) =  -.322322E-04  -.842541E-10   .322323E-04
+C                   S(2) =   .128929E-09   .337016E-15  -.128929E-09
+C                   S(3) =  -.209715E-13  -.838859E-19   .209715E-13
+C AT T =   .4000E+11   Y =  -.363960E-07  -.145584E-12   .100000E+01
+C                   S(1) =  -.164109E-06  -.429604E-11   .164113E-06
+C                   S(2) =   .656436E-12   .171842E-16  -.656451E-12
+C                   S(3) =  -.689361E-15  -.275745E-20   .689363E-15
+C
+C NO. STEPS = 340  NO. F-S = 412  NO. J-S = 343  NO. DF-S =1023
+C----------------------------------------------------------------------
+C FULL DESCRIPTION OF USER INTERFACE TO ODESSA.
+C
+C THE USER INTERFACE TO ODESSA CONSISTS OF THE FOLLOWING PARTS.
+C
+C I.  THE CALL SEQUENCE TO SUBROUTINE ODESSA, WHICH IS A DRIVER
+C     ROUTINE FOR THE KppSolveR.  THIS INCLUDES DESCRIPTIONS OF BOTH
+C     THE CALL SEQUENCE ARGUMENTS AND OF USER-SUPPLIED ROUTINES.
+C     FOLLOWING THESE DESCRIPTIONS IS A DESCRIPTION OF
+C     OPTIONAL INPUTS AVAILABLE THROUGH THE CALL SEQUENCE, AND THEN
+C     A DESCRIPTION OF OPTIONAL OUTPUTS (IN THE WORK ARRAYS).
+C
+C II.  DESCRIPTIONS OF OTHER ROUTINES IN THE ODESSA PACKAGE THAT MAY
+C     BE (OPTIONALLY) CALLED BY THE USER.  THESE PROVIDE THE ABILITY
+C     TO ALTER ERROR MESSAGE HANDLING, SAVE AND RESTORE THE INTERNAL
+C     COMMON, AND OBTAIN SPECIFIED DERIVATIVES OF THE SOLUTION Y(T).
+C
+C III. DESCRIPTIONS OF COMMON BLOCKS TO BE DECLARED IN OVERLAY
+C     OR SIMILAR ENVIRONMENTS, OR TO BE SAVED WHEN DOING AN INTERRUPT
+C     OF THE PROBLEM AND CONTINUED SOLUTION LATER.
+C
+C IV.  DESCRIPTION OF TWO SUBROUTINES IN THE ODESSA PACKAGE, EITHER OF
+C     WHICH THE USER MAY REPLACE WITH HIS OWN VERSION, IF DESIRED.
+C     THESE RELATE TO THE MEASUREMENT OF ERRORS.
+C
+C V.   GENERAL REMARKS WHICH HIGHLIGHT DIFFERENCES BETWEEN THE LSODE
+C     PACKAGE AND THE ODESSA PACKAGE.
+C----------------------------------------------------------------------
+C PART I.  CALL SEQUENCE.
+C
+C THE CALL SEQUENCE PARAMETERS USED FOR INPUT ONLY ARE..
+C    F, DF, NEQ, PAR, TOUT, ITOL, RTOL, ATOL, ITASK, IOPT, LRW, LIW,
+C    JAC, MF,
+C AND THOSE USED FOR BOTH INPUT AND OUTPUT ARE
+C    Y, T, ISTATE.
+C THE WORK ARRAYS RWORK AND IWORK ARE ALSO USED FOR CONDITIONAL AND
+C OPTIONAL INPUTS AND OPTIONAL OUTPUTS.  (THE TERM OUTPUT HERE REFERS
+C TO THE RETURN FROM SUBROUTINE ODESSA TO THE USER-S CALLING PROGRAM.)
+C
+C THE LEGALITY OF INPUT PARAMETERS WILL BE THOROUGHLY CHECKED ON THE
+C INITIAL CALL FOR THE PROBLEM, BUT NOT CHECKED THEREAFTER UNLESS A
+C CHANGE IN INPUT PARAMETERS IS FLAGGED BY ISTATE = 3 ON INPUT.
+C
+C THE DESCRIPTIONS OF THE CALL ARGUMENTS ARE AS FOLLOWS.
+C
+C F     = THE NAME OF THE USER-SUPPLIED SUBROUTINE DEFINING THE
+C         ODE MODEL. THIS SYSTEM MUST BE PUT IN THE FIRST-ORDER
+C         FORM DY/DT = F(Y,T;P), WHERE F IS A VECTOR-VALUED FUNCTION
+C         OF THE SCALAR T AND VECTORS Y, AND PAR.  SUBROUTINE F IS TO
+C         COMPUTE THE FUNCTION F.  IT IS TO HAVE THE FORM..
+C              SUBROUTINE F (NEQ, T, Y, PAR, YDOT)
+C              DOUBLE PRECISION T, Y, PAR, YDOT
+C              DIMENSION Y(1), PAR(1), YDOT(1)
+C         WHERE NEQ, T, Y, AND PAR ARE INPUT, AND YDOT = F(Y,T;P)
+C         IS OUTPUT.  Y AND YDOT ARE ARRAYS OF LENGTH N (= NEQ(1)).
+C         (IN THE DIMENSION STATEMENT ABOVE, 1 IS A DUMMY
+C         DIMENSION.. IT CAN BE REPLACED BY ANY VALUE.)
+C         F SHOULD NOT ALTER ARRAY Y, OR PAR(1),...,PAR(NPAR).
+C         F MUST BE DECLARED EXTERNAL IN THE CALLING PROGRAM.
+C
+C         SUBROUTINE F MAY ACCESS USER-DEFINED QUANTITIES IN
+C         NEQ(2),... AND PAR(NPAR+1),... IF NEQ IS AN ARRAY
+C         (DIMENSIONED IN F) AND PAR HAS LENGTH EXCEEDING NPAR.
+C         SEE THE DESCRIPTIONS OF NEQ AND PAR BELOW.
+C
+C DF    = THE NAME OF THE USER-SUPPLIED ROUTINE (IDF = 1) TO COMPUTE
+C         THE INHOMOGENEITY MATRIX, DF/DP, AS A FUNCTION OF THE SCALAR
+C         T, AND THE VECTORS Y, AND PAR. IT IS TO HAVE THE FORM
+C                SUBROUTINE DF (NEQ, T, Y, PAR, DFDP, JPAR)
+C                DOUBLE PRECISION T, Y, PAR, DFDP
+C                DIMENSION Y(1), PAR(1), DFDP(1)
+C                GO TO (1,2,...,NPAR) JPAR
+C            1   DFDP(1) = DF(1)/DP(1)
+C                .
+C                DFDP(I) = DF(I)/DP(1)
+C                .
+C                DFDP(N) = DF(N)/DP(1)
+C                RETURN
+C            2   DFDP(1) = DF(1)/DP(2)
+C                .
+C                DFDP(I) = DF(I)/DP(2)
+C                .
+C                DFDP(N) = DF(N)/DP(2)
+C                .
+C                RETURN
+C            .   .
+C            .   .
+C          NPAR  DFDP(1) = DF(1)/DP(NPAR)
+C                .
+C                DFDP(I) = DF(I)/DP(NPAR)
+C                .
+C                DFDP(N) = DF(N)/DP(NPAR)
+C                RETURN
+C                END
+C         WHERE NEQ, T, Y, PAR, AND JPAR ARE INPUT AND THE VECTOR
+C         DFDP(*,JPAR) IS TO BE LOADED WITH THE PARTIAL DERIVATIVES
+C         DF(Y,T;PAR)/DP(JPAR) ON OUTPUT. ONLY NONZERO ELEMENTS NEED
+C         BE LOADED.  T, Y, AND PAR HAVE THE SAME MEANING AS IN
+C         SUBROUTINE F. (IN THE DIMENSION STATEMENT ABOVE, 1 IS A DUMMY
+C         DIMENSION.. IT CAN BE REPLACED BY ANY VALUE).
+C
+C         DFDP(*,JPAR) IS PRESET TO ZERO BY THE KppSolveR, SO THAT ONLY
+C         THE NONZERO ELEMENTS NEED BE LOADED BY DF. SUBROUTINE DF
+C         MUST BE DECLARED EXTERNAL IN THE CALLING PROGRAM IF USED.
+C         IF IDF = 0 (OR ISOPT = 0), A DUMMY ARGUMENT CAN BE USED.
+C
+C         SUBROUTINE DF MAY ACCESS USER-DEFINED QUANTITIES IN
+C         NEQ(2),... AND PAR(NPAR+1),... IF NEQ IS AN ARRAY
+C         (DIMENSIONED IN DF) AND PAR HAS A LENGTH EXCEEDING NPAR.
+C         SEE THE DESCRIPTIONS OF NEQ AND PAR (BELOW).
+C
+C NEQ   = THE SIZE OF THE ODE SYSTEM (NUMBER OF FIRST ORDER ORDINARY
+C         DIFFERENTIAL EQUATIONS (N) IN THE MODEL).  USED ONLY FOR
+C         INPUT.  NEQ MAY NOT BE CHANGED DURING THE PROBLEM.
+C
+C         FOR ISOPT = 0, NEQ IS NORMALLY A SCALAR.  HOWEVER, NEQ MAY
+C         BE AN ARRAY, WITH NEQ(1) SET TO THE SYSTEM SIZE (N), IN WHICH
+C         CASE THE ODESSA PACKAGE ACCESSES ONLY NEQ(1). HOWEVER,
+C         THIS PARAMETER IS PASSED AS THE NEQ ARGUMENT IN ALL CALLS
+C         TO F, DF, AND JAC.  HENCE, IF IT IS AN ARRAY, LOCATIONS
+C         NEQ(2),... MAY BE USED TO STORE OTHER INTEGER DATA AND PASS
+C         IT TO F, DF, AND/OR JAC.  FOR ISOPT = 1, NPAR MUST BE LOADED
+C         INTO NEQ(2), AND IS NOT ALLOWED TO CHANGE DURING THE PROBLEM.
+C         IN THESE CASES, SUBROUTINES F, DF, AND/OR JAC MUST INCLUDE
+C         NEQ IN A DIMENSION STATEMENT.
+C
+C Y     = A REAL ARRAY FOR THE VECTOR OF DEPENDENT VARIABLES, OF
+C         DIMENSION (N) BY (NPAR+1).  USED FOR BOTH INPUT AND
+C         OUTPUT ON THE FIRST CALL (ISTATE = 1), AND ONLY FOR
+C         OUTPUT ON OTHER CALLS. ON THE FIRST CALL, Y MUST CONTAIN
+C         THE VECTORS OF INITIAL VALUES.  ON OUTPUT, Y CONTAINS THE
+C         COMPUTED SOLUTION VECTORS, EVALUATED AT T.
+C
+C PAR   = A REAL ARRAY FOR THE VECTOR OF CONSTANT MODEL PARAMETERS
+C         OF INTEREST IN THE SENSITIVITY ANALYSIS, OF LENGTH NPAR
+C         OR MORE. PAR IS PASSED AS AN ARGUMENT IN ALL CALLS TO F,
+C         DF, AND JAC. HENCE LOCATIONS PAR(NPAR+1),... MAY BE USED
+C         TO STORE OTHER REAL DATA AND PASS IT TO F, DF, AND/OR JAC.
+C         LOCATIONS PAR(1),...,PAR(NPAR) ARE USED AS INPUT ONLY,
+C         AND MUST NOT BE CHANGED DURING THE PROBLEM.
+C
+C T     = THE INDEPENDENT VARIABLE.  ON INPUT, T IS USED ONLY ON THE
+C         FIRST CALL, AS THE INITIAL POINT OF THE INTEGRATION.
+C         ON OUTPUT, AFTER EACH CALL, T IS THE VALUE AT WHICH A
+C         COMPUTED SOLUTION Y IS EVALUATED (USUALLY THE SAME AS TOUT).
+C         ON AN ERROR RETURN, T IS THE FARTHEST POINT REACHED.
+C
+C TOUT  = THE NEXT VALUE OF T AT WHICH A COMPUTED SOLUTION IS DESIRED.
+C         USED ONLY FOR INPUT.
+C
+C         WHEN STARTING THE PROBLEM (ISTATE = 1), TOUT MAY BE EQUAL
+C         TO T FOR ONE CALL, THEN SHOULD .NE. T FOR THE NEXT CALL.
+C         FOR THE INITIAL T, AN INPUT VALUE OF TOUT .NE. T IS USED
+C         IN ORDER TO DETERMINE THE DIRECTION OF THE INTEGRATION
+C         (I.E. THE ALGEBRAIC SIGN OF THE STEP SIZES) AND THE ROUGH
+C         SCALE OF THE PROBLEM.  INTEGRATION IN EITHER DIRECTION
+C         (FORWARD OR BACKWARD IN T) IS PERMITTED.
+C
+C         IF ITASK = 2 OR 5 (ONE-STEP MODES), TOUT IS IGNORED AFTER
+C         THE FIRST CALL (I.E. THE FIRST CALL WITH TOUT .NE. T).
+C         OTHERWISE, TOUT IS REQUIRED ON EVERY CALL.
+C
+C         IF ITASK = 1, 3, OR 4, THE VALUES OF TOUT NEED NOT BE
+C         MONOTONE, BUT A VALUE OF TOUT WHICH BACKS UP IS LIMITED
+C         TO THE CURRENT INTERNAL T INTERVAL, WHOSE ENDPOINTS ARE
+C         TCUR - HU AND TCUR (SEE OPTIONAL OUTPUTS, BELOW, FOR
+C         TCUR AND HU).
+C
+C ITOL  = AN INDICATOR FOR THE TYPE OF ERROR CONTROL.  SEE
+C         DESCRIPTION BELOW UNDER ATOL.  USED ONLY FOR INPUT.
+C
+C RTOL  = A RELATIVE ERROR TOLERANCE PARAMETER, EITHER A SCALAR OR
+C         AN ARRAY OF SPACE (N) BY (NPAR+1).  SEE DESCRIPTION BELOW
+C         UNDER ATOL. INPUT ONLY.
+C
+C ATOL  = AN ABSOLUTE ERROR TOLERANCE PARAMETER, EITHER A SCALAR OR
+C         AN ARRAY OF SPACE (N) BY (NPAR+1).  INPUT ONLY.
+C
+C            THE INPUT PARAMETERS ITOL, RTOL, AND ATOL DETERMINE
+C         THE ERROR CONTROL PERFORMED BY THE KppSolveR.  THE KppSolveR WILL
+C         CONTROL THE VECTOR E = (E(I,J)) OF ESTIMATED LOCAL ERRORS
+C         IN Y, ACCORDING TO AN INEQUALITY OF THE FORM
+C                   RMS-NORM OF ( E(I,J)/EWT(I,J) )   .LE.   1,
+C         WHERE     EWT(I,J) = RTOL(I,J)*ABS(Y(I,J)) + ATOL(I,J),
+C         AND THE RMS-NORM (ROOT-MEAN-SQUARE NORM) HERE IS
+C         RMS-NORM(V) = SQRT ( (1/N) * SUM (V(I,J)**2) ); I =1,...,N.
+C         HERE EWT = (EWT(I,J)) IS A VECTOR OF WEIGHTS WHICH MUST
+C         ALWAYS BE POSITIVE, AND THE VALUES OF RTOL AND ATOL SHOULD
+C         ALL BE NON-NEGATIVE.  THE FOLLOWING TABLE GIVES THE TYPES
+C         (SCALAR/ARRAY) OF RTOL AND ATOL, AND THE CORRESPONDING FORM
+C         OF EWT(I,J).
+C
+C          ITOL   RTOL      ATOL           EWT(I,J)
+C           1    SCALAR    SCALAR   RTOL*ABS(Y(I,J)) + ATOL
+C           2    SCALAR    ARRAY    RTOL*ABS(Y(I,J)) + ATOL(I,J)
+C           3    ARRAY     SCALAR   RTOL(I,J)*ABS(Y(I,J)) + ATOL
+C           4    ARRAY     ARRAY    RTOL(I,J)*ABS(Y(I,J)) + ATOL(I,J)
+C
+C         WHEN EITHER OF THESE PARAMETERS IS A SCALAR, IT NEED NOT
+C         BE DIMENSIONED IN THE USER-S CALLING PROGRAM.
+C
+C         THE TOTAL NUMBER OF ERROR TEST FAILURES DUE TO THE SENSITIVITY
+C         ANALYSIS, AND WHICH REQUIRE AN INTEGRATION STEP TO BE
+C         REPEATED, ARE ACCUMULATED IN THE LAST NPAR+1 LOCATIONS OF THE
+C         INTEGER WORK ARRAY IWORK (SEE OPTIONAL OUTPUTS BELOW).
+C         THIS INFORMATION MAY BE OF VALUE IN DETERMINING APPROPRIATE
+C         ERROR TOLERANCES TO BE APPLIED TO THE SENSITIVITY FUNCTIONS.
+C
+C         IF NONE OF THE ABOVE CHOICES (WITH ITOL, RTOL, AND ATOL
+C         FIXED THROUGHOUT THE PROBLEM) IS SUITABLE, MORE GENERAL
+C         ERROR CONTROLS CAN BE OBTAINED BY SUBSTITUTING
+C         USER-SUPPLIED ROUTINES FOR THE SETTING OF EWT AND/OR FOR
+C         THE NORM CALCULATION.  SEE PART IV BELOW.
+C
+C         IF GLOBAL ERRORS ARE TO BE ESTIMATED BY MAKING A REPEATED
+C         RUN ON THE SAME PROBLEM WITH SMALLER TOLERANCES, THEN ALL
+C         COMPONENTS OF RTOL AND ATOL (I.E. OF EWT) SHOULD BE SCALED
+C         DOWN UNIFORMLY.
+C
+C ITASK  = AN INDEX SPECIFYING THE TASK TO BE PERFORMED.
+C         INPUT ONLY.  ITASK HAS THE FOLLOWING VALUES AND MEANINGS.
+C         1  MEANS NORMAL COMPUTATION OF OUTPUT VALUES OF Y(T) AT
+C            T = TOUT (BY OVERSHOOTING AND INTERPOLATING).
+C         2  MEANS TAKE ONE STEP ONLY AND RETURN.
+C         3  MEANS STOP AT THE FIRST INTERNAL MESH POINT AT OR
+C            BEYOND T = TOUT AND RETURN.
+C         4  MEANS NORMAL COMPUTATION OF OUTPUT VALUES OF Y(T) AT
+C            T = TOUT BUT WITHOUT OVERSHOOTING T = TCRIT.
+C            TCRIT MUST BE INPUT AS RWORK(1).  TCRIT MAY BE EQUAL TO
+C            OR BEYOND TOUT, BUT NOT BEHIND IT IN THE DIRECTION OF
+C            INTEGRATION.  THIS OPTION IS USEFUL IF THE PROBLEM
+C            HAS A SINGULARITY AT OR BEYOND T = TCRIT.
+C         5  MEANS TAKE ONE STEP, WITHOUT PASSING TCRIT, AND RETURN.
+C            TCRIT MUST BE INPUT AS RWORK(1).
+C
+C         NOTE..  IF ITASK = 4 OR 5 AND THE KppSolveR REACHES TCRIT
+C         (WITHIN ROUNDOFF), IT WILL RETURN T = TCRIT (EXACTLY) TO
+C         INDICATE THIS (UNLESS ITASK = 4 AND TOUT COMES BEFORE TCRIT,
+C         IN WHICH CASE ANSWERS AT T = TOUT ARE RETURNED FIRST).
+C
+C ISTATE = AN INDEX USED FOR INPUT AND OUTPUT TO SPECIFY THE
+C         THE STATE OF THE CALCULATION.
+C
+C         ON INPUT, THE VALUES OF ISTATE ARE AS FOLLOWS.
+C         1  MEANS THIS IS THE FIRST CALL FOR THE PROBLEM
+C            (INITIALIZATIONS WILL BE DONE).  SEE NOTE BELOW.
+C         2  MEANS THIS IS NOT THE FIRST CALL, AND THE CALCULATION
+C            IS TO CONTINUE NORMALLY, WITH NO CHANGE IN ANY INPUT
+C            PARAMETERS EXCEPT POSSIBLY TOUT AND ITASK.
+C            (IF ITOL, RTOL, AND/OR ATOL ARE CHANGED BETWEEN CALLS
+C            WITH ISTATE = 2, THE NEW VALUES WILL BE USED BUT NOT
+C            TESTED FOR LEGALITY.)
+C         3  MEANS THIS IS NOT THE FIRST CALL, AND THE
+C            CALCULATION IS TO CONTINUE NORMALLY, BUT WITH
+C            A CHANGE IN INPUT PARAMETERS OTHER THAN
+C            TOUT AND ITASK.  CHANGES ARE ALLOWED IN
+C            ITOL, RTOL, ATOL, IOPT, LRW, LIW, MF, ML, MU,
+C            AND ANY OF THE OPTIONAL INPUTS EXCEPT H0.
+C            (SEE IWORK DESCRIPTION FOR ML AND MU.)
+C         NOTE..  A PRELIMINARY CALL WITH TOUT = T IS NOT COUNTED
+C         AS A FIRST CALL HERE, AS NO INITIALIZATION OR CHECKING OF
+C         INPUT IS DONE.  (SUCH A CALL IS SOMETIMES USEFUL FOR THE
+C         PURPOSE OF OUTPUTTING THE INITIAL CONDITIONS.)
+C         THUS THE FIRST CALL FOR WHICH TOUT .NE. T REQUIRES
+C         ISTATE = 1 ON INPUT.
+C
+C         ON OUTPUT, ISTATE HAS THE FOLLOWING VALUES AND MEANINGS.
+C          1  MEANS NOTHING WAS DONE, AS TOUT WAS EQUAL TO T WITH
+C             ISTATE = 1 ON INPUT.  (HOWEVER, AN INTERNAL COUNTER WAS
+C             SET TO DETECT AND PREVENT REPEATED CALLS OF THIS TYPE.)
+C          2  MEANS THE INTEGRATION WAS PERFORMED SUCCESSFULLY.
+C         -1  MEANS AN EXCESSIVE AMOUNT OF WORK (MORE THAN MXSTEP
+C             STEPS) WAS DONE ON THIS CALL, BEFORE COMPLETING THE
+C             REQUESTED TASK, BUT THE INTEGRATION WAS OTHERWISE
+C             SUCCESSFUL AS FAR AS T.  (MXSTEP IS AN OPTIONAL INPUT
+C             AND IS NORMALLY 500.)  TO CONTINUE, THE USER MAY
+C             SIMPLY RESET ISTATE TO A VALUE .GT. 1 AND CALL AGAIN
+C             (THE EXCESS WORK STEP COUNTER WILL BE RESET TO 0).
+C             IN ADDITION, THE USER MAY INCREASE MXSTEP TO AVOID
+C             THIS ERROR RETURN (SEE BELOW ON OPTIONAL INPUTS).
+C         -2  MEANS TOO MUCH ACCURACY WAS REQUESTED FOR THE PRECISION
+C             OF THE MACHINE BEING USED.  THIS WAS DETECTED BEFORE
+C             COMPLETING THE REQUESTED TASK, BUT THE INTEGRATION
+C             WAS SUCCESSFUL AS FAR AS T.  TO CONTINUE, THE TOLERANCE
+C             PARAMETERS MUST BE RESET, AND ISTATE MUST BE SET
+C             TO 3.  THE OPTIONAL OUTPUT TOLSF MAY BE USED FOR THIS
+C             PURPOSE.  (NOTE.. IF THIS CONDITION IS DETECTED BEFORE
+C             TAKING ANY STEPS, THEN AN ILLEGAL INPUT RETURN
+C             (ISTATE = -3) OCCURS INSTEAD.)
+C         -3  MEANS ILLEGAL INPUT WAS DETECTED, BEFORE TAKING ANY
+C             INTEGRATION STEPS.  SEE WRITTEN MESSAGE FOR DETAILS.
+C             NOTE..  IF THE KppSolveR DETECTS AN INFINITE LOOP OF CALLS
+C             TO THE KppSolveR WITH ILLEGAL INPUT, IT WILL CAUSE
+C             THE RUN TO STOP.
+C         -4  MEANS THERE WERE REPEATED ERROR TEST FAILURES ON
+C             ONE ATTEMPTED STEP, BEFORE COMPLETING THE REQUESTED
+C             TASK, BUT THE INTEGRATION WAS SUCCESSFUL AS FAR AS T.
+C             THE PROBLEM MAY HAVE A SINGULARITY, OR THE INPUT
+C             MAY BE INAPPROPRIATE.
+C         -5  MEANS THERE WERE REPEATED CONVERGENCE TEST FAILURES ON
+C             ONE ATTEMPTED STEP, BEFORE COMPLETING THE REQUESTED
+C             TASK, BUT THE INTEGRATION WAS SUCCESSFUL AS FAR AS T.
+C             THIS MAY BE CAUSED BY AN INACCURATE JACOBIAN MATRIX,
+C             IF ONE IS BEING USED.
+C         -6  MEANS EWT(I,J) BECAME ZERO FOR SOME I,J DURING THE
+C             INTEGRATION.  PURE RELATIVE ERROR CONTROL (ATOL(I,J)=0.0)
+C             WAS REQUESTED ON A VARIABLE WHICH HAS NOW VANISHED.
+C             THE INTEGRATION WAS SUCCESSFUL AS FAR AS T.
+C
+C         NOTE..  SINCE THE NORMAL OUTPUT VALUE OF ISTATE IS 2,
+C         IT DOES NOT NEED TO BE RESET FOR NORMAL CONTINUATION.
+C         ALSO, SINCE A NEGATIVE INPUT VALUE OF ISTATE WILL BE
+C         REGARDED AS ILLEGAL, A NEGATIVE OUTPUT VALUE REQUIRES THE
+C         USER TO CHANGE IT, AND POSSIBLY OTHER INPUTS, BEFORE
+C         CALLING THE KppSolveR AGAIN.
+C
+C IOPT  = AN INTEGER ARRAY FLAG TO SPECIFY WHETHER OR NOT ANY OPTIONAL
+C         INPUTS ARE BEING USED ON THIS CALL.  INPUT ONLY.
+C         THE OPTIONAL INPUTS ARE LISTED SEPARATELY BELOW.
+C         IOPT(1) = 0 MEANS NO OPTIONAL INPUTS FOR THE KppSolveR WILL BE
+C                   USED. DEFAULT VALUES WILL BE USED IN ALL CASES.
+C                 = 1 MEANS ONE OR MORE OPTIONAL INPUTS FOR THE
+C                   KppSolveR ARE BEING USED.
+C                   NOTE : IOPT(1) IS INDEPENDENT OF ISOPT AND IDF.
+C         IOPT(2) = 0 MEANS NO SENSITIVITY ANALYSIS WILL BE PERFORMED.
+C                 = 1 MEANS A SENSITIVITY ANALYSIS WILL BE PERFORMED.
+C                   NOTE : IOPT(2) IS RENAMED TO ISOPT IN ODESSA.
+C                 = 0 MEANS DF/DP WILL BE CALCULATED BY FINITE
+C                   DIFFERENCE WITHIN ODESSA.
+C         IOPT(3) = 1 MEANS DF/DP WILL BE CALCULATED BY A USER-SUPPLIED
+C                   ROUTINE.
+C                   NOTE : IOPT(3) IS RENAMED TO IDF IN ODESSA.
+C                          IF IDF = 1, THE USER MUST SUPPLY A
+C                          SUBROUTINE DF (THE NAME IS ARBITRARY) AS
+C                          DESCRIBED BELOW UNDER DF. FOR IDF = 0,
+C                          A DUMMY ARGUMENT CAN BE USED.
+C
+C RWORK  = A REAL WORKING ARRAY (DOUBLE PRECISION).
+C         FOR ISOPT = 0, THE LENGTH OF RWORK MUST BE AT LEAST..
+C            20 + NYH*(MAXORD + 1) + 3*NEQ + LWM
+C         FOR ISOPT = 1, THE LENGTH OF RWORK MUST BE AT LEAST..
+C            20 + NYH*(MAXORD + 1) + 2*NYH + LWM + N
+C         WHERE..
+C         NYH    = THE TOTAL NUMBER OF DEPENDENT VARIABLES;
+C                  (= N IF ISOPT = 0, AND N*(NPAR+1) IF ISOPT = 1).
+C         MAXORD = 12 (IF METH = 1) OR 5 (IF METH = 2) (UNLESS A
+C                  SMALLER VALUE IS GIVEN AS AN OPTIONAL INPUT),
+C         LWM    = 0                  IF MITER = 0,
+C         LWM    = N**2 + 2           IF MITER IS 1 OR 2,
+C         LWM    = N + 2              IF MITER = 3, AND
+C         LWM    = (2*ML+MU+1)*N + 2  IF MITER IS 4 OR 5.
+C         (SEE THE MF DESCRIPTION FOR METH AND MITER.)
+C
+C         THE FIRST 20 WORDS OF RWORK ARE RESERVED FOR CONDITIONAL
+C         AND OPTIONAL INPUTS AND OPTIONAL OUTPUTS.
+C
+C         THE FOLLOWING WORD IN RWORK IS A CONDITIONAL INPUT..
+C           RWORK(1) = TCRIT = CRITICAL VALUE OF T WHICH THE KppSolveR
+C                      IS NOT TO OVERSHOOT.  REQUIRED IF ITASK IS
+C                      4 OR 5, AND IGNORED OTHERWISE.  (SEE ITASK.)
+C
+C LRW   = THE LENGTH OF THE ARRAY RWORK, AS DECLARED BY THE USER.
+C         (THIS WILL BE CHECKED BY THE KppSolveR.)
+C
+C IWORK  = AN INTEGER WORK ARRAY. THE LENGTH MUST BE AT LEAST..
+C            20      IF MITER = 0 OR 3 (MF = 10, 13, 20, 23), OR
+C            20 + N  OTHERWISE (MF = 11, 12, 14, 15, 21, 22, 24, 25).
+C          FOR ISOPT = 0, OR..
+C            21 + N + NPAR
+C          FOR ISOPT = 1.
+C         THE FIRST FEW WORDS OF IWORK ARE USED FOR CONDITIONAL AND
+C         OPTIONAL INPUTS AND OPTIONAL OUTPUTS.
+C
+C         THE FOLLOWING 2 WORDS IN IWORK ARE CONDITIONAL INPUTS..
+C           IWORK(1) = ML     THESE ARE THE LOWER AND UPPER
+C           IWORK(2) = MU     HALF-BANDWIDTHS, RESPECTIVELY, OF THE
+C                      BANDED JACOBIAN, EXCLUDING THE MAIN DIAGONAL.
+C                      THE BAND IS DEFINED BY THE MATRIX LOCATIONS
+C                      (I,J) WITH I-ML .LE. J .LE. I+MU.  ML AND MU
+C                      MUST SATISFY  0 .LE.  ML,MU  .LE. NEQ-1.
+C                      THESE ARE REQUIRED IF MITER IS 4 OR 5, AND
+C                      IGNORED OTHERWISE.  ML AND MU MAY IN FACT BE
+C                      THE BAND PARAMETERS FOR A MATRIX TO WHICH
+C                      DF/DY IS ONLY APPROXIMATELY EQUAL.
+*
+C
+C LIW   = THE LENGTH OF THE ARRAY IWORK, AS DECLARED BY THE USER.
+C         (THIS WILL BE CHECKED BY THE KppSolveR.)
+C
+C NOTE..  THE WORK ARRAYS MUST NOT BE ALTERED BETWEEN CALLS TO ODESSA
+C FOR THE SAME PROBLEM, EXCEPT POSSIBLY FOR THE CONDITIONAL AND
+C OPTIONAL INPUTS, AND EXCEPT FOR THE LAST 2*NYH + N WORDS OF RWORK.
+C THE LATTER SPACE IS USED FOR INTERNAL SCRATCH SPACE, AND SO IS
+C AVAILABLE FOR USE BY THE USER OUTSIDE ODESSA BETWEEN CALLS, IF
+C DESIRED (BUT NOT FOR USE BY F, DF, OR JAC).
+C
+C JAC   = THE NAME OF THE USER-SUPPLIED ROUTINE (MITER = 1 OR 4) TO
+C         COMPUTE THE JACOBIAN MATRIX, DF/DY, AS A FUNCTION OF THE
+C         SCALAR T AND THE VECTORS Y, AND PAR.  IT IS TO HAVE THE FORM
+C              SUBROUTINE JAC (NEQ, T, Y, PAR, ML, MU, PD, NROWPD)
+C              DOUBLE PRECISION T, Y, PAR, PD
+C              DIMENSION Y(1), PAR(1), PD(NROWPD,1)
+C         WHERE NEQ, T, Y, PAR, ML, MU, AND NROWPD ARE INPUT AND THE
+C         ARRAY PD IS TO BE LOADED WITH PARTIAL DERIVATIVES (ELEMENTS
+C         OF THE JACOBIAN MATRIX) ON OUTPUT.  PD MUST BE GIVEN A FIRST
+C         DIMENSION OF NROWPD.  T, Y, AND PAR HAVE THE SAME MEANING AS
+C         IN SUBROUTINE F.  (IN THE DIMENSION STATEMENT ABOVE, 1 IS A
+C         DUMMY DIMENSION.. IT CAN BE REPLACED BY ANY VALUE.)
+C              IN THE FULL MATRIX CASE (MITER = 1), ML AND MU ARE
+C         IGNORED, AND THE JACOBIAN IS TO BE LOADED INTO PD IN
+C         COLUMNWISE MANNER, WITH DF(I)/DY(J) LOADED INTO PD(I,J).
+C              IN THE BAND MATRIX CASE (MITER = 4), THE ELEMENTS
+C         WITHIN THE BAND ARE TO BE LOADED INTO PD IN COLUMNWISE
+C         MANNER, WITH DIAGONAL LINES OF DF/DY LOADED INTO THE ROWS
+C         OF PD.  THUS DF(I)/DY(J) IS TO BE LOADED INTO PD(I-J+MU+1,J).
+C         ML AND MU ARE THE HALF-BANDWIDTH PARAMETERS (SEE IWORK).
+C         THE LOCATIONS IN PD IN THE TWO TRIANGULAR AREAS WHICH
+C         CORRESPOND TO NONEXISTENT MATRIX ELEMENTS CAN BE IGNORED
+C         OR LOADED ARBITRARILY, AS THEY ARE OVERWRITTEN BY ODESSA.
+C              PD IS PRESET TO ZERO BY THE KppSolveR, SO THAT ONLY THE
+C         NONZERO ELEMENTS NEED BE LOADED BY JAC. EACH CALL TO JAC IS
+C         PRECEDED BY A CALL TO F WITH THE SAME ARGUMENTS NEQ, T, Y,
+C         AND PAR. THUS TO GAIN SOME EFFICIENCY, INTERMEDIATE
+C         QUANTITIES SHARED BY BOTH CALCULATIONS MAY BE SAVED IN A
+C         USER COMMON BLOCK BY F AND NOT RECOMPUTED BY JAC, IF
+C         DESIRED.  ALSO, JAC MAY ALTER THE Y ARRAY, IF DESIRED.
+C         JAC MUST BE DECLARED EXTERNAL IN THE CALLING PROGRAM.
+C              SUBROUTINE JAC MAY ACCESS USER-DEFINED QUANTITIES IN
+C         NEQ(2),... AND PAR(NPAR+1),.... SEE THE DESCRIPTIONS OF
+C         NEQ (ABOVE) AND PAR (BELOW).
+C
+C MF    = THE METHOD FLAG.  USED ONLY FOR INPUT.  THE LEGAL VALUES OF
+C         MF ARE 10, 11, 12, 13, 14, 15, 20, 21, 22, 23, 24, AND 25.
+C         MF HAS DECIMAL DIGITS METH AND MITER.. MF = 10*METH + MITER.
+C         METH INDICATES THE BASIC LINEAR MULTISTEP METHOD..
+C           METH = 1 MEANS THE IMPLICIT ADAMS METHOD.
+*
+C           METH = 2 MEANS THE METHOD BASED ON BACKWARD
+C                    DIFFERENTIATION FORMULAS (BDF-S).
+C         MITER INDICATES THE CORRECTOR ITERATION METHOD..
+C           MITER = 0 MEANS FUNCTIONAL ITERATION (NO JACOBIAN MATRIX
+C                     IS INVOLVED).
+C           MITER = 1 MEANS CHORD ITERATION WITH A USER-SUPPLIED
+C                     FULL (NEQ BY NEQ) JACOBIAN.
+C           MITER = 2 MEANS CHORD ITERATION WITH AN INTERNALLY
+C                     GENERATED (DIFFERENCE QUOTIENT) FULL JACOBIAN
+C                     (USING NEQ EXTRA CALLS TO F PER DF/DY VALUE).
+C           MITER = 3 MEANS CHORD ITERATION WITH AN INTERNALLY
+C                     GENERATED DIAGONAL JACOBIAN APPROXIMATION.
+C                     (USING 1 EXTRA CALL TO F PER DF/DY EVALUATION).
+C           MITER = 4 MEANS CHORD ITERATION WITH A USER-SUPPLIED
+C                     BANDED JACOBIAN.
+C           MITER = 5 MEANS CHORD ITERATION WITH AN INTERNALLY
+C                     GENERATED BANDED JACOBIAN (USING ML+MU+1 EXTRA
+C                     CALLS TO F PER DF/DY EVALUATION).
+C         IF MITER = 1 OR 4, THE USER MUST SUPPLY A SUBROUTINE JAC
+C         (THE NAME IS ARBITRARY) AS DESCRIBED ABOVE UNDER JAC.
+C         FOR OTHER VALUES OF MITER, A DUMMY ARGUMENT CAN BE USED.
+C
+C         IF A SENSITIVITY ANLYSIS IS DESIRED (ISOPT = 1), MITER = 0
+C         AND 3 ARE DISALLOWED. IN THESE CASES, THE USER IS RECOMMENDED
+C         TO SUPPLY AN ANALYTICAL JACOBIAN (MITER = 1 OR 4) AND AN
+C         ANALYTICAL INHOMOGENEITY MATRIX (IDF = 1).
+C----------------------------------------------------------------------
+C OPTIONAL INPUTS.
+C
+C THE FOLLOWING IS A LIST OF THE OPTIONAL INPUTS PROVIDED FOR IN THE
+C CALL SEQUENCE.  (SEE ALSO PART II.)  FOR EACH SUCH INPUT VARIABLE,
+C THIS TABLE LISTS ITS NAME AS USED IN THIS DOCUMENTATION, ITS
+C LOCATION IN THE CALL SEQUENCE, ITS MEANING, AND THE DEFAULT VALUE.
+C THE USE OF ANY OF THESE INPUTS REQUIRES IOPT(1) = 1, AND IN THAT
+C CASE ALL OF THESE INPUTS ARE EXAMINED.  A VALUE OF ZERO FOR ANY
+C OF THESE OPTIONAL INPUTS WILL CAUSE THE DEFAULT VALUE TO BE USED.
+C THUS TO USE A SUBSET OF THE OPTIONAL INPUTS, SIMPLY PRELOAD
+C LOCATIONS 5 TO 10 IN RWORK AND IWORK TO 0.0 AND 0 RESPECTIVELY, AND
+C THEN SET THOSE OF INTEREST TO NONZERO VALUES.
+C
+C NAME   LOCATION      MEANING AND DEFAULT VALUE
+C
+C H0     RWORK(5)  THE STEP SIZE TO BE ATTEMPTED ON THE FIRST STEP.
+C                  THE DEFAULT VALUE IS DETERMINED BY THE KppSolveR.
+C
+C HMAX   RWORK(6)  THE MAXIMUM ABSOLUTE STEP SIZE ALLOWED.
+C                  THE DEFAULT VALUE IS INFINITE.
+C
+C HMIN   RWORK(7)  THE MINIMUM ABSOLUTE STEP SIZE ALLOWED.
+C                  THE DEFAULT VALUE IS 0.  (THIS LOWER BOUND IS NOT
+C                  ENFORCED ON THE FINAL STEP BEFORE REACHING TCRIT
+C                  WHEN ITASK = 4 OR 5.)
+C
+C MAXORD  IWORK(5)  THE MAXIMUM ORDER TO BE ALLOWED.  THE DEFAULT
+C                  VALUE IS 12 IF METH = 1, AND 5 IF METH = 2.
+C                  IF MAXORD EXCEEDS THE DEFAULT VALUE, IT WILL
+C                  BE REDUCED TO THE DEFAULT VALUE.
+C                  IF MAXORD IS CHANGED DURING THE PROBLEM, IT MAY
+C                  CAUSE THE CURRENT ORDER TO BE REDUCED.
+C
+C MXSTEP  IWORK(6)  MAXIMUM NUMBER OF (INTERNALLY DEFINED) STEPS
+C                  ALLOWED DURING ONE CALL TO THE KppSolveR.
+C                  THE DEFAULT VALUE IS 500.
+C
+C MXHNIL  IWORK(7)  MAXIMUM NUMBER OF MESSAGES PRINTED (PER PROBLEM)
+C                  WARNING THAT T + H = T ON A STEP (H = STEP SIZE).
+C                  THIS MUST BE POSITIVE TO RESULT IN A NON-DEFAULT
+C                  VALUE.  THE DEFAULT VALUE IS 10.
+C----------------------------------------------------------------------
+C OPTIONAL OUTPUTS.
+C
+C AS OPTIONAL ADDITIONAL OUTPUT FROM ODESSA, THE VARIABLES LISTED
+C BELOW ARE QUANTITIES RELATED TO THE PERFORMANCE OF ODESSA
+C WHICH ARE AVAILABLE TO THE USER.  THESE ARE COMMUNICATED BY WAY OF
+C THE WORK ARRAYS, BUT ALSO HAVE INTERNAL MNEMONIC NAMES AS SHOWN.
+C EXCEPT WHERE STATED OTHERWISE, ALL OF THESE OUTPUTS ARE DEFINED
+C ON ANY SUCCESSFUL RETURN FROM ODESSA, AND ON ANY RETURN WITH
+C ISTATE = -1, -2, -4, -5, OR -6.  ON AN ILLEGAL INPUT RETURN
+C (ISTATE = -3), THEY WILL BE UNCHANGED FROM THEIR EXISTING VALUES
+C (IF ANY), EXCEPT POSSIBLY FOR TOLSF, LENRW, AND LENIW.
+C ON ANY ERROR RETURN, OUTPUTS RELEVANT TO THE ERROR WILL BE DEFINED,
+C AS NOTED BELOW.
+C
+C NAME   LOCATION      MEANING
+C
+C HU     RWORK(11) THE STEP SIZE IN T LAST USED (SUCCESSFULLY).
+C
+C HCUR   RWORK(12) THE STEP SIZE TO BE ATTEMPTED ON THE NEXT STEP.
+C
+C TCUR   RWORK(13) THE CURRENT VALUE OF THE INDEPENDENT VARIABLE
+C                  WHICH THE KppSolveR HAS ACTUALLY REACHED, I.E. THE
+C                  CURRENT INTERNAL MESH POINT IN T.  ON OUTPUT, TCUR
+C                  WILL ALWAYS BE AT LEAST AS FAR AS THE ARGUMENT
+C                  T, BUT MAY BE FARTHER (IF INTERPOLATION WAS DONE).
+C
+C TOLSF  RWORK(14) A TOLERANCE SCALE FACTOR, GREATER THAN 1.0,
+C                  COMPUTED WHEN A REQUEST FOR TOO MUCH ACCURACY WAS
+C                  DETECTED (ISTATE = -3 IF DETECTED AT THE START OF
+C                  THE PROBLEM, ISTATE = -2 OTHERWISE).  IF ITOL IS
+C                  LEFT UNALTERED BUT RTOL AND ATOL ARE UNIFORMLY
+C                  SCALED UP BY A FACTOR OF TOLSF FOR THE NEXT CALL,
+C                  THEN THE KppSolveR IS DEEMED LIKELY TO SUCCEED.
+C                  (THE USER MAY ALSO IGNORE TOLSF AND ALTER THE
+C                  TOLERANCE PARAMETERS IN ANY OTHER WAY APPROPRIATE.)
+C
+C NST    IWORK(11) THE NUMBER OF STEPS TAKEN FOR THE PROBLEM SO FAR.
+C
+C NFE    IWORK(12) THE NUMBER OF F EVALUATIONS FOR THE PROBLEM SO FAR.
+C
+C NJE    IWORK(13) THE NUMBER OF JACOBIAN EVALUATIONS (AND OF MATRIX
+C                  LU DECOMPOSITIONS IF ISOPT = 0) FOR THE PROBLEM SO
+C                  FAR. IF ISOPT = 1, THE NUMBER OF LU DECOMPOSITIONS
+C                  IS EQUAL TO NJE - NSPE (SEE BELOW).
+C
+C NQU    IWORK(14) THE METHOD ORDER LAST USED (SUCCESSFULLY).
+C
+C NQCUR  IWORK(15) THE ORDER TO BE ATTEMPTED ON THE NEXT STEP.
+C
+C IMXER  IWORK(16) THE INDEX OF THE COMPONENT OF LARGEST MAGNITUDE IN
+C                  THE WEIGHTED LOCAL ERROR VECTOR (E(I,J)/EWT(I,J)),
+C                  ON AN ERROR RETURN WITH ISTATE = -4 OR -5.
+C
+C LENRW  IWORK(17) THE LENGTH OF RWORK ACTUALLY REQUIRED.
+C                  THIS IS DEFINED ON NORMAL RETURNS AND ON AN ILLEGAL
+C                  INPUT RETURN FOR INSUFFICIENT STORAGE.
+C
+C LENIW  IWORK(18) THE LENGTH OF IWORK ACTUALLY REQUIRED.
+C                  THIS IS DEFINED ON NORMAL RETURNS AND ON AN ILLEGAL
+C                  INPUT RETURN FOR INSUFFICIENT STORAGE.
+C
+C NDFE   IWORK(19) THE NUMBER OF DF/DP (VECTOR) EVALUATIONS.
+C
+C NSPE   IWORK(20) THE NUMBER OF CALLS TO SUBROUTINE SPRIME. EACH CALL
+C                  TO SPRIME REQUIRES A JACOBIAN EVALUATION, BUT NOT
+C                  AN LU DECOMPOSITION.
+C
+C THE FOLLOWING ARRAYS ARE SEGMENTS OF THE RWORK AND IWORK ARRAYS
+C WHICH MAY ALSO BE OF INTEREST TO THE USER AS OPTIONAL OUTPUTS.
+C FOR EACH ARRAY, THE TABLE BELOW GIVES ITS INTERNAL NAME, ITS BASE
+C ADDRESS IN RWORK OR IWORK, AND ITS DESCRIPTION.
+C
+C NAME   BASE ADDRESS      DESCRIPTION
+C
+C YH     21 IN RWORK    THE NORDSIECK HISTORY ARRAY, OF SIZE NYH BY
+C                       (NQCUR + 1). FOR J = 0,1,...,NQCUR, COLUMN J+1
+C                       OF YH CONTAINS HCUR**J/FACTORIAL(J) TIMES
+C                       THE J-TH DERIVATIVE OF THE INTERPOLATING
+C                       POLYNOMIAL CURRENTLY REPRESENTING THE SOLUTION,
+C                       EVALUATED AT T = TCUR.
+C
+C ACOR    LENRW-NYH+1   ARRAY OF SIZE NYH USED FOR THE ACCUMULATED
+C         IN RWORK      CORRECTIONS ON EACH STEP, SCALED ON OUTPUT
+C                       TO REPRESENT THE ESTIMATED LOCAL ERROR IN Y
+C                       ON THE LAST STEP.  THIS IS THE VECTOR E IN
+C                       THE DESCRIPTION OF THE ERROR CONTROL.
+C                       IT IS DEFINED ONLY ON A SUCCESSFUL RETURN
+C                       FROM ODESSA.
+C NRS     LENIW-NPAR    ARRAY OF SIZE NPAR+1, USED TO STORE THE
+C         IN IWORK      ACCUMULATED NUMBER OF REPEATED STEPS DUE TO
+C                       THE SENSITIVITY ANALYSIS..
+C                         NRS(1) = TOTAL NUMBER OF REPEATED STEPS,
+C                         NRS(2),... = NUMBER OF REPEATED STEPS DUE TO
+C                                      MODEL PARAMETER 1,...
+C
+C----------------------------------------------------------------------
+C PART II.  OTHER ROUTINES CALLABLE.
+C
+C THE FOLLOWING ARE OPTIONAL CALLS WHICH THE USER MAY MAKE TO
+C GAIN ADDITIONAL CAPABILITIES IN CONJUNCTION WITH ODESSA.
+C (THE ROUTINES XSETUN AND XSETF ARE DESIGNED TO CONFORM TO THE
+C SLATEC ERROR HANDLING PACKAGE.)
+C
+C    FORM OF CALL                  FUNCTION
+C  CALL XSETUN(LUN)          SET THE LOGICAL UNIT NUMBER, LUN, FOR
+C                            OUTPUT OF MESSAGES FROM ODESSA, IF
+C                            THE DEFAULT IS NOT DESIRED.
+C                            THE DEFAULT VALUE OF LUN IS 6.
+C
+C  CALL XSETF(MFLAG)         SET A FLAG TO CONTROL THE PRINTING OF
+C                            MESSAGES BY ODESSA..
+C                            MFLAG = 0 MEANS DO NOT PRINT. (DANGER..
+C                            THIS RISKS LOSING VALUABLE INFORMATION.)
+C                            MFLAG = 1 MEANS PRINT (THE DEFAULT).
+C
+C                            EITHER OF THE ABOVE CALLS MAY BE MADE AT
+C                            ANY TIME AND WILL TAKE EFFECT IMMEDIATELY.
+C
+C  CALL SVCOM (RSAV, ISAV)   STORE IN RSAV AND ISAV THE CONTENTS
+C                            OF THE INTERNAL COMMON BLOCKS USED BY
+C                            ODESSA (SEE PART III BELOW).
+C                            RSAV MUST BE A REAL ARRAY OF LENGTH 222
+C                            OR MORE, AND ISAV MUST BE AN INTEGER
+C                            ARRAY OF LENGTH 54 OR MORE.
+C
+C  CALL RSCOM (RSAV, ISAV)   RESTORE, FROM RSAV AND ISAV, THE CONTENTS
+C                            OF THE INTERNAL COMMON BLOCKS USED BY
+C                            ODESSA.  PRESUMES A PRIOR CALL TO SVCOM
+C                            WITH THE SAME ARGUMENTS.
+C
+C                            SVCOM AND RSCOM ARE USEFUL IF
+C                            INTERRUPTING A RUN AND RESTARTING
+C                            LATER, OR ALTERNATING BETWEEN TWO OR
+C                            MORE PROBLEMS KppSolveD WITH ODESSA.
+C
+C  CALL INTDY(,,,,,)         PROVIDE DERIVATIVES OF Y, OF VARIOUS
+C       (SEE BELOW)          ORDERS, AT A SPECIFIED POINT T, IF
+C                            DESIRED.  IT MAY BE CALLED ONLY AFTER
+C                            A SUCCESSFUL RETURN FROM ODESSA.
+C
+C THE DETAILED INSTRUCTIONS FOR USING INTDY ARE AS FOLLOWS.
+C THE FORM OF THE CALL IS..
+C
+C  CALL INTDY (T, K, RWORK(21), NYH, DKY, IFLAG)
+C
+C THE INPUT PARAMETERS ARE..
+C
+C T        = VALUE OF INDEPENDENT VARIABLE WHERE ANSWERS ARE DESIRED
+C            (NORMALLY THE SAME AS THE T LAST RETURNED BY ODESSA).
+C            FOR VALID RESULTS, T MUST LIE BETWEEN TCUR - HU AND TCUR.
+C            (SEE OPTIONAL OUTPUTS FOR TCUR AND HU.)
+C K        = INTEGER ORDER OF THE DERIVATIVE DESIRED.  K MUST SATISFY
+C            0 .LE. K .LE. NQCUR, WHERE NQCUR IS THE CURRENT ORDER
+C            (SEE OPTIONAL OUTPUTS).  THE CAPABILITY CORRESPONDING
+C            TO K = 0, I.E. COMPUTING Y(T), IS ALREADY PROVIDED
+C            BY ODESSA DIRECTLY.  SINCE NQCUR .GE. 1, THE FIRST
+C            DERIVATIVE DY/DT IS ALWAYS AVAILABLE WITH INTDY.
+C RWORK(21) = THE BASE ADDRESS OF THE HISTORY ARRAY YH.
+C NYH      = COLUMN LENGTH OF YH, EQUAL TO THE TOTAL NUMBER OF
+C            DEPENDENT VARIABLES. IF ISOPT = 0, NYH = N. IF ISOPT = 1,
+C            NYH = N * (NPAR + 1).
+C
+C THE OUTPUT PARAMETERS ARE..
+C
+C DKY      = A REAL ARRAY OF LENGTH NYH CONTAINING THE COMPUTED VALUE
+C            OF THE K-TH DERIVATIVE OF Y(T).
+C IFLAG    = INTEGER FLAG, RETURNED AS 0 IF K AND T WERE LEGAL,
+C            -1 IF K WAS ILLEGAL, AND -2 IF T WAS ILLEGAL.
+C            ON AN ERROR RETURN, A MESSAGE IS ALSO WRITTEN.
+C----------------------------------------------------------------------
+C PART III.  COMMON BLOCKS.
+C
+C IF ODESSA IS TO BE USED IN AN OVERLAY SITUATION, THE USER
+C MUST DECLARE, IN THE PRIMARY OVERLAY, THE VARIABLES IN..
+C  (1) THE CALL SEQUENCE TO ODESSA,
+C  (2) THE THREE INTERNAL COMMON BLOCKS
+C        /ODE001/  OF LENGTH  258  (219 DOUBLE PRECISION WORDS
+C                        FOLLOWED BY 39 INTEGER WORDS),
+C        /ODE002/  OF LENGTH 14 (3 DOUBLE PRECISION WORDS FOLLOWED
+C                        BY 11 INTEGER WORDS),
+C        /EH0001/  OF LENGTH  2 (INTEGER WORDS).
+C
+C IF ODESSA IS USED ON A SYSTEM IN WHICH THE CONTENTS OF INTERNAL
+C COMMON BLOCKS ARE NOT PRESERVED BETWEEN CALLS, THE USER SHOULD
+C DECLARE THE ABOVE THREE COMMON BLOCKS IN HIS MAIN PROGRAM TO INSURE
+C THAT THEIR CONTENTS ARE PRESERVED.
+C
+C IF THE SOLUTION OF A GIVEN PROBLEM BY ODESSA IS TO BE INTERRUPTED
+C AND THEN LATER CONTINUED, SUCH AS WHEN RESTARTING AN INTERRUPTED RUN
+C OR ALTERNATING BETWEEN TWO OR MORE PROBLEMS, THE USER SHOULD SAVE,
+C FOLLOWING THE RETURN FROM THE LAST ODESSA CALL PRIOR TO THE
+C INTERRUPTION, THE CONTENTS OF THE CALL SEQUENCE VARIABLES AND THE
+C INTERNAL COMMON BLOCKS, AND LATER RESTORE THESE VALUES BEFORE THE
+C NEXT ODESSA CALL FOR THAT PROBLEM.  TO SAVE AND RESTORE THE COMMON
+C BLOCKS, USE SUBROUTINES SVCOM AND RSCOM (SEE PART II ABOVE).
+C
+C----------------------------------------------------------------------
+C PART IV.  OPTIONALLY REPLACEABLE KppSolveR ROUTINES.
+C
+C BELOW ARE DESCRIPTIONS OF TWO ROUTINES IN THE ODESSA PACKAGE WHICH
+C RELATE TO THE MEASUREMENT OF ERRORS.  EITHER ROUTINE CAN BE
+C REPLACED BY A USER-SUPPLIED VERSION, IF DESIRED. HOWEVER, SINCE SUCH
+C A REPLACEMENT MAY HAVE A MAJOR IMPACT ON PERFORMANCE, IT SHOULD BE
+C DONE ONLY WHEN ABSOLUTELY NECESSARY, AND ONLY WITH GREAT CAUTION.
+C (NOTE.. THE MEANS BY WHICH THE PACKAGE VERSION OF A ROUTINE IS
+C SUPERSEDED BY THE USER-S VERSION MAY BE SYSTEM-DEPENDENT.)
+C
+C (A) EWSET.
+C THE FOLLOWING SUBROUTINE IS CALLED JUST BEFORE EACH INTERNAL
+C INTEGRATION STEP, AND SETS THE ARRAY OF ERROR WEIGHTS, EWT, AS
+C DESCRIBED UNDER ITOL/RTOL/ATOL ABOVE..
+C    SUBROUTINE EWSET (NYH, ITOL, RTOL, ATOL, YCUR, EWT)
+C WHERE NEQ, ITOL, RTOL, AND ATOL ARE AS IN THE ODESSA CALL SEQUENCE,
+C YCUR CONTAINS THE CURRENT DEPENDENT VARIABLE VECTOR, AND
+C EWT IS THE ARRAY OF WEIGHTS SET BY EWSET.
+C
+C IF THE USER SUPPLIES THIS SUBROUTINE, IT MUST RETURN IN EWT(I)
+C (I = 1,...,NYH) A POSITIVE QUANTITY SUITABLE FOR COMPARING ERRORS
+C IN Y(I) TO.  THE EWT ARRAY RETURNED BY EWSET IS PASSED TO THE
+C VNORM ROUTINE (SEE BELOW), AND ALSO USED BY ODESSA IN THE COMPUTATION
+C OF THE OPTIONAL OUTPUT IMXER, THE DIAGONAL JACOBIAN APPROXIMATION,
+C AND THE INCREMENTS FOR DIFFERENCE QUOTIENT JACOBIANS.
+C
+C IN THE USER-SUPPLIED VERSION OF EWSET, IT MAY BE DESIRABLE TO USE
+C THE CURRENT VALUES OF DERIVATIVES OF Y.  DERIVATIVES UP TO ORDER NQ
+C ARE AVAILABLE FROM THE HISTORY ARRAY YH, DESCRIBED ABOVE UNDER
+C OPTIONAL OUTPUTS.  IN EWSET, YH IS IDENTICAL TO THE YCUR ARRAY,
+C EXTENDED TO NQ + 1 COLUMNS WITH A COLUMN LENGTH OF NYH AND SCALE
+C FACTORS OF H**J/FACTORIAL(J).  ON THE FIRST CALL FOR THE PROBLEM,
+C GIVEN BY NST = 0, NQ IS 1 AND H IS TEMPORARILY SET TO 1.0.
+C THE QUANTITIES NQ, NYH, H, AND NST CAN BE OBTAINED BY INCLUDING
+C IN EWSET THE STATEMENTS..
+C    DOUBLE PRECISION H, RLS
+C    COMMON /ODE001/ RLS(219),ILS(39)
+C    NQ = ILS(35)
+C    NYH = ILS(14)
+C    NST = ILS(36)
+C    H = RLS(213)
+C THUS, FOR EXAMPLE, THE CURRENT VALUE OF DY/DT CAN BE OBTAINED AS
+C YCUR(NYH+I)/H  (I=1,...,N)  (AND THE DIVISION BY H IS
+C UNNECESSARY WHEN NST = 0).
+C
+C (B) VNORM.
+C THE FOLLOWING IS A REAL FUNCTION ROUTINE WHICH COMPUTES THE WEIGHTED
+C ROOT-MEAN-SQUARE NORM OF A VECTOR V..
+C    D = VNORM (LV, V, W)
+C WHERE..
+C  LV = THE LENGTH OF THE VECTOR,
+C  V = REAL ARRAY OF LENGTH N CONTAINING THE VECTOR,
+C  W = REAL ARRAY OF LENGTH N CONTAINING WEIGHTS,
+C  D = SQRT( (1/N) * SUM(V(I)*W(I))**2 ).
+C VNORM IS CALLED WITH LV = N AND WITH W(I) = 1.0/EWT(I), WHERE
+C EWT IS AS SET BY SUBROUTINE EWSET.
+C
+C IF THE USER SUPPLIES THIS FUNCTION, IT SHOULD RETURN A NON-NEGATIVE
+C VALUE OF VNORM SUITABLE FOR USE IN THE ERROR CONTROL IN ODESSA.
+C NONE OF THE ARGUMENTS SHOULD BE ALTERED BY VNORM.
+C FOR EXAMPLE, A USER-SUPPLIED VNORM ROUTINE MIGHT..
+C  -SUBSTITUTE A MAX-NORM OF (V(I)*W(I)) FOR THE RMS-NORM, OR
+C  -IGNORE SOME COMPONENTS OF V IN THE NORM, WITH THE EFFECT OF
+C   SUPPRESSING THE ERROR CONTROL ON THOSE COMPONENTS OF Y.
+C----------------------------------------------------------------------
+C OTHER ROUTINES IN THE ODESSA PACKAGE.
+C
+C IN ADDITION TO SUBROUTINE ODESSA, THE ODESSA PACKAGE INCLUDES THE
+C FOLLOWING SUBROUTINES AND FUNCTION ROUTINES..
+C  INTDY   COMPUTES AN INTERPOLATED VALUE OF THE Y VECTOR AT T = TOUT.
+C  STODE   IS THE CORE INTEGRATOR, WHICH DOES ONE STEP OF THE
+C          INTEGRATION AND THE ASSOCIATED ERROR CONTROL.
+C  STESA   MANAGES THE SOLUTION OF THE SENSITIVITY FUNCTIONS.
+C  CFODE   SETS ALL METHOD COEFFICIENTS AND TEST CONSTANTS.
+C  PREPJ   COMPUTES AND PREPROCESSES THE JACOBIAN MATRIX J = DF/DY
+C          AND THE NEWTON ITERATION MATRIX P = I - H*L0*J.
+C          IT IS ALSO CALLED BY SPRIME (WITH JOPT = 1) TO JUST
+C          COMPUTE THE JACOBIAN MATRIX.
+C  PREPDF  COMPUTES THE INHOMOGENEITY MATRIX DF/DP.
+C  SPRIME  DEFINES THE SYSTEM OF SENSITIVITY EQUATIONS.
+C  SOLSY   MANAGES SOLUTION OF LINEAR SYSTEM IN CHORD ITERATION.
+C  EWSET   SETS THE ERROR WEIGHT VECTOR EWT BEFORE EACH STEP.
+C  VNORM   COMPUTES THE WEIGHTED R.M.S. NORM OF A VECTOR.
+C  SVCOM AND RSCOM  ARE USER-CALLABLE ROUTINES TO SAVE AND RESTORE,
+C          RESPECTIVELY, THE CONTENTS OF THE INTERNAL COMMON BLOCKS.
+C  DGEFA AND DGESL  ARE ROUTINES FROM LINPACK FOR SOLVING FULL
+C          SYSTEMS OF LINEAR ALGEBRAIC EQUATIONS.
+C  DGBFA AND DGBSL  ARE ROUTINES FROM LINPACK FOR SOLVING BANDED
+C          LINEAR SYSTEMS.
+C  DAXPY, DSCAL, IDAMAX, AND DDOT  ARE BASIC LINEAR ALGEBRA MODULES
+C          (BLAS) USED BY THE ABOVE LINPACK ROUTINES.
+C  D1MACH  COMPUTES THE UNIT ROUNDOFF IN A MACHINE-INDEPENDENT MANNER.
+C  XERR, XSETUN, AND XSETF  HANDLE THE PRINTING OF ALL ERROR
+C          MESSAGES AND WARNINGS.
+C NOTE..  VNORM, IDAMAX, DDOT, AND D1MACH ARE FUNCTION ROUTINES.
+C ALL THE OTHERS ARE SUBROUTINES.
+C
+C THE FORTRAN GENERIC INTRINSIC FUNCTIONS USED BY ODESSA ARE..
+C ABS, MAX, MIN, REAL, MOD, SIGN, SQRT, AND WRITE
+C
+C A BLOCK DATA SUBPROGRAM IS ALSO INCLUDED WITH THE PACKAGE,
+C FOR LOADING SOME OF THE VARIABLES IN INTERNAL COMMON.
+C
+C----------------------------------------------------------------------
+C PART V.  GENERAL REMARKS
+C
+C THIS SECTION HIGHLIGHTS THE BASIC DIFFERENCES BETWEEN THE ORIGINAL
+C LSODE PACKAGE AND THE ODESSA MODIFICATION. THIS IS PROVIDED AS A
+C SERVICE TO EXPERIENCED LSODE USERS TO EXPEDITE FAMILIARIZATION WITH
+C ODESSA.
+C
+C (A). ORIGINAL SUBROUTINES AND FUNCTIONS.
+C
+C      OF THE ORIGINAL 22 SUBROUTINES AND FUNCTIONS USED IN THE LSODE
+C      PACKAGE, ALL ARE USED BY ODESSA, WITH THE FOLLOWING HAVING BEEN
+C      MODIFIED..
+C
+C      LSODE  THE ORIGINAL DRIVER SUBROUTINE FOR THE LSODE PACKAGE IS
+C             EXTENSIVELY MODIFIED AND RENAMED ODESSA, WHICH NOW
+C             CONTAINS A CALL TO SPRIME TO ESTABLISH INITIAL CONDITIONS
+C             FOR THE SENSITIVITY CALCULATIONS.
+C
+C      STODE  THE ONE STEP INTEGRATOR IS SLIGHTLY MODIFIED AND RETAINS
+C             ITS ORIGINAL NAME. IT NOW CONTAINS THE CALL TO STESA,
+C             AND ALSO CALLS SPRIME IF KFLAG .LE. -3.
+C
+C      PREPJ  ALSO NAMED PREPJ IN ODESSA IS SLIGHTLY MODIFIED TO ALLOW
+C             FOR THE CALCULATION OF JACOBIAN WITH NO PREPROCESSING
+C             (JOPT = 1).
+C
+C (B). NEW SUBROUTINES.
+C
+C      IN ADDITION TO THE CHANGES NOTED ABOVE, THREE NEW SUBROUTINES
+C      HAVE BEEN INTRODUCED (SEE STESA, SPRIME, AND PREPDF AS DESCRIBED
+C      IN PART IV. ABOVE).
+C
+C (C). COMMON BLOCKS.
+C
+C      /LS0001/  RETAINS THE SAME LENGTH AND IS RENAMED /ODE001/;
+C                HOWEVER THE REAL ARRAY ROWNS(209) IS SHORTENED TO A
+C                LENGTH OF (173) REAL WORDS, ALLOWING THE REMOVAL OF
+C                TESCO(3,12) WHICH IS NOW PASSED FROM STODE TO STESA.
+C                IN ADDITION, THE INTEGER ARRAY IOWNS(6) IS SHORTENED
+C                TO A LENGTH OF (4) INTEGER WORDS, ALLOWING THE REMOVAL
+C                OF IALTH AND LMAX WHICH ARE NOW PASSED FROM STODE TO
+C                STESA.
+C
+C      /ODE002/  ADDED COMMON BLOCK FOR VARIABLES IMPORTANT TO
+C                SENSITIVITY ANALYSIS (SEE PART III. ABOVE). A BLOCK
+C                DATA PROGRAM IS NOT REQUIRED FOR THIS COMMON BLOCK.
+C
+C      SVCOM,RSCOM  THESE TWO SUBROUTINES ARE MODIFIED TO HANDLE
+C                   COMMON BLOCK /ODE002/ AS WELL.
+C
+C (D). OPTIONAL INPUTS.
+C
+C      THE FULL SET OF OPTIONAL INPUTS AVAILABLE IN LSODE IS ALSO
+C      AVAILABLE IN ODESSA, WITH THE EXCEPTION THAT THE NUMBER OF ODE'S
+C      IN THE MODEL (NEQ(1)), MAY NOT BE CHANGED DURING THE PROBLEM.
+C      IN ODESSA, NYH NOW REFERS TO THE TOTAL NUMBER OF FIRST-ORDER
+C      ODE'S (MODEL AND SENSITIVITY EQUATIONS) WHICH IS EQUAL TO
+C      NEQ(1) IF ISOPT = 0, OR NEQ(1)*(NEQ(2)+1) IF ISOPT = 1.
+C      NEQ(1), NEQ(2), AND NYH ARE NOT ALLOWED TO CHANGE DURING
+C      THE COURSE OF AN INTEGRATION.
+C
+C (E). OPTIONAL OUTPUTS.
+C
+C      THE FULL SET OF OPTIONAL OUTPUTS AVAILABLE IN LSODE IS ALSO
+C      AVAILABLE IN ODESSA. IN ADDITION, IWORK(19) AND IWORK(20) ARE
+C      LOADED WITH NDFE AND NSPE, RESPECTIVELY, UPON OUTPUT. THE TOTAL
+C      NUMBER OF LU DECOMPOSITIONS OF THE PROCESSED JACOBIAN IS EQUAL
+C      TO NJE - NSPE.
+C-----------------------------------------------------------------------
+      SUBROUTINE KPP_ODESSA (F, DF, NEQ, Y, PAR, T, TOUT,
+     1   ITOL, RTOL, ATOL,
+     1   ITASK, ISTATE, IOPT, RWORK, LRW, IWORK, LIW, JAC, MF)
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+      LOGICAL IHIT
+      EXTERNAL F, DF, JAC, PREPJ, SOLSY, PREPDF
+      DIMENSION NEQ(*), Y(*), PAR(*), RTOL(*), ATOL(*), IOPT(*),
+     1   RWORK(LRW), IWORK(LIW), MORD(2)
+C-----------------------------------------------------------------------
+C THIS IS THE SEPTEMBER 1, 1986 VERSION OF ODESSA..
+C AN ORDINARY DIFFERENTIAL EQUATION KppSolveR WITH EXPLICIT SIMULTANEOUS
+C SENSITIVITY ANALYSIS.
+C
+C THIS PACKAGE IS A MODIFICATION OF THE AUGUST 13, 1981 VERSION OF
+C LSODE.. LIVERMORE KppSolveR FOR ORDINARY DIFFERENTIAL EQUATIONS.
+C THIS VERSION IS IN DOUBLE PRECISION.
+C
+C ODESSA KppSolveS FOR THE FIRST-ORDER SENSITIVITY COEFFICIENTS..
+C    DY(I)/DP, FOR A SINGLE PARAMETER, OR,
+C    DY(I)/DP(J), FOR MULTIPLE PARAMETERS,
+C ASSOCIATED WITH A SYSTEM OF ORDINARY DIFFERENTIAL EQUATIONS..
+C    DY(T)/DT = F(Y,T;P).
+C-----------------------------------------------------------------------
+C REFERENCES...
+C
+C  1. JORGE R. LEIS AND MARK A. KRAMER, THE SIMULTANEOUS SOLUTION AND
+C     EXPLICIT SENSITIVITY ANALYSIS OF SYSTEMS DESCRIBED BY ORDINARY
+C     DIFFERENTIAL EQUATIONS, SUBMITTED TO ACM TRANS. MATH. SOFTWARE,
+C     (1985).
+C
+C  2. JORGE R. LEIS AND MARK A. KRAMER, ODESSA - AN ORDINARY
+C     DIFFERENTIAL EQUATION KppSolveR WITH EXPLICIT SIMULTANEOUS
+C     SENSITIVITY ANALYSIS, SUBMITTED TO ACM TRANS. MATH. SOFTWARE.
+C     (1985).
+C
+C  3. ALAN C. HINDMARSH,  LSODE AND LSODI,  TWO NEW INITIAL VALUE
+C     ORDINARY DIFFERENTIAL EQUATION KppSolveRS, ACM-SIGNUM NEWSLETTER,
+C     VOL. 15, NO. 4 (1980), PP. 10-11.
+C-----------------------------------------------------------------------
+C THE FOLLOWING INTERNAL COMMON BLOCKS CONTAIN
+C (A) VARIABLES WHICH ARE LOCAL TO ANY SUBROUTINE BUT WHOSE VALUES MUST
+C    BE PRESERVED BETWEEN CALLS TO THE ROUTINE (OWN VARIABLES), AND
+C (B) VARIABLES WHICH ARE COMMUNICATED BETWEEN SUBROUTINES.
+C THE STRUCTURE OF THE BLOCKS ARE AS FOLLOWS..  ALL REAL VARIABLES ARE
+C LISTED FIRST, FOLLOWED BY ALL INTEGERS.  WITHIN EACH TYPE, THE
+C VARIABLES ARE GROUPED WITH THOSE LOCAL TO SUBROUTINE ODESSA FIRST,
+C THEN THOSE LOCAL TO SUBROUTINE STODE, AND FINALLY THOSE USED
+C FOR COMMUNICATION.  THE BLOCKS ARE DECLARED IN SUBROUTINES ODESSA
+C INTDY, STODE, STESA, PREPJ, PREPDF, AND SOLSY.  GROUPS OF VARIABLES
+C ARE REPLACED BY DUMMY ARRAYS IN THE COMMON DECLARATIONS IN ROUTINES
+C WHERE THOSE VARIABLES ARE NOT USED.
+C-----------------------------------------------------------------------
+      COMMON /ODE001/ TRET, ROWNS(173),
+     1   TESCO(3,12), CCMAX, EL0, H, HMIN, HMXI, HU, RC, TN, UROUND,
+     2   ILLIN, INIT, LYH, LEWT, LACOR, LSAVF, LWM, LIWM,
+     3   MXSTEP, MXHNIL, NHNIL, NTREP, NSLAST, NYH, IOWNS(4),
+     4   IALTH, LMAX, ICF, IERPJ, IERSL, JCUR, JSTART, KFLAG, L, METH,
+     5   MITER, MAXORD, MAXCOR, MSBP, MXNCF, N, NQ, NST, NFE, NJE, NQU
+      COMMON /ODE002/ DUPS, DSMS, DDNS,
+     1   NPAR, LDFDP, LNRS,
+     2   ISOPT, NSV, NDFE, NSPE, IDF, IERSP, JOPT, KFLAGS
+      PARAMETER (ZERO=0.0D0,ONE=1.0D0,TWO=2.0D0,FOUR=4.0D0)
+      DATA  MORD(1),MORD(2)/12,5/, MXSTP0/500/, MXHNL0/10/
+C-----------------------------------------------------------------------
+C BLOCK A.
+C THIS CODE BLOCK IS EXECUTED ON EVERY CALL.
+C IT TESTS ISTATE AND ITASK FOR LEGALITY AND BRANCHES APPROPIATELY.
+C IF ISTATE .GT. 1 BUT THE FLAG INIT SHOWS THAT INITIALIZATION HAS
+C NOT YET BEEN DONE, AN ERROR RETURN OCCURS.
+C IF ISTATE = 1 AND TOUT = T, JUMP TO BLOCK G AND RETURN IMMEDIATELY.
+C-----------------------------------------------------------------------
+      IF (ISTATE .LT. 1 .OR. ISTATE .GT. 3) GO TO 601
+      IF (ITASK .LT. 1 .OR. ITASK .GT. 5) GO TO 602
+      IF (ISTATE .EQ. 1) GO TO 10
+      IF (INIT .EQ. 0) GO TO 603
+      IF (ISTATE .EQ. 2) GO TO 200
+      GO TO 20
+ 10   INIT = 0
+      IF (TOUT .EQ. T) GO TO 430
+ 20   NTREP = 0
+C-----------------------------------------------------------------------
+C BLOCK B.
+C THE NEXT CODE BLOCK IS EXECUTED FOR THE INITIAL CALL (ISTATE = 1),
+C OR FOR A CONTINUATION CALL WITH PARAMETER CHANGES (ISTATE = 3).
+C IT CONTAINS CHECKING OF ALL INPUTS AND VARIOUS INITIALIZATIONS.
+C
+C FIRST CHECK LEGALITY OF THE NON-OPTIONAL INPUTS NEQ, ITOL, IOPT,
+C MF, ML, AND MU.
+C-----------------------------------------------------------------------
+      IF (NEQ(1) .LE. 0) GO TO 604
+      IF (ISTATE .EQ. 1) GO TO 25
+      IF (NEQ(1) .NE. N) GO TO 605
+ 25   N = NEQ(1)
+      IF (ITOL .LT. 1 .OR. ITOL .GT. 4) GO TO 606
+      DO 26 I = 1,3
+ 26     IF (IOPT(I) .LT. 0 .OR. IOPT(I) .GT. 1) GO TO 607
+      ISOPT = IOPT(2)
+      IDF = IOPT(3)
+      NYH = N
+      NSV = 1
+      METH = MF/10
+      MITER = MF - 10*METH
+      IF (METH .LT. 1 .OR. METH .GT. 2) GO TO 608
+      IF (MITER .LT. 0 .OR. MITER .GT. 5) GO TO 608
+      IF (MITER .LE. 3) GO TO 30
+      ML = IWORK(1)
+      MU = IWORK(2)
+      IF (ML .LT. 0 .OR. ML .GE. N) GO TO 609
+      IF (MU .LT. 0 .OR. MU .GE. N) GO TO 610
+ 30   IF (ISOPT .EQ. 0) GO TO 32
+C CHECK LEGALITY OF THE NON-OPTIONAL INPUTS ISOPT, NPAR.
+C COMPUTE NUMBER OF SOLUTION VECTORS AND TOTAL NUMBER OF EQUATIONS.
+      IF (NEQ(2) .LE. 0) GO TO 628
+      IF (ISTATE .EQ. 1) GO TO 31
+      IF (NEQ(2) .NE. NPAR) GO TO 629
+ 31   NPAR = NEQ(2)
+      NSV = NPAR + 1
+      NYH = NSV * N
+      IF (MITER .EQ. 0 .OR. MITER .EQ. 3) GO TO 630
+C NEXT PROCESS AND CHECK THE OPTIONAL INPUTS. --------------------------
+ 32   IF (IOPT(1) .EQ. 1) GO TO 40
+      MAXORD = MORD(METH)
+      MXSTEP = MXSTP0
+      MXHNIL = MXHNL0
+      IF (ISTATE .EQ. 1) H0 = ZERO
+      HMXI = ZERO
+      HMIN = ZERO
+      GO TO 60
+ 40   MAXORD = IWORK(5)
+      IF (MAXORD .LT. 0) GO TO 611
+      IF (MAXORD .EQ. 0) MAXORD = 100
+      MAXORD = MIN(MAXORD,MORD(METH))
+      MXSTEP = IWORK(6)
+      IF (MXSTEP .LT. 0) GO TO 612
+      IF (MXSTEP .EQ. 0) MXSTEP = MXSTP0
+      MXHNIL = IWORK(7)
+      IF (MXHNIL .LT. 0) GO TO 613
+      IF (MXHNIL .EQ. 0) MXHNIL = MXHNL0
+      IF (ISTATE .NE. 1) GO TO 50
+      H0 = RWORK(5)
+      IF ((TOUT - T)*H0 .LT. ZERO) GO TO 614
+ 50   HMAX = RWORK(6)
+      IF (HMAX .LT. ZERO) GO TO 615
+      HMXI = ZERO
+      IF (HMAX .GT. ZERO) HMXI = ONE/HMAX
+      HMIN = RWORK(7)
+      IF (HMIN .LT. ZERO) GO TO 616
+C-----------------------------------------------------------------------
+C SET WORK ARRAY POINTERS AND CHECK LENGTHS LRW AND LIW.
+C POINTERS TO SEGMENTS OF RWORK AND IWORK ARE NAMED BY PREFIXING L TO
+C THE NAME OF THE SEGMENT.  E.G., THE SEGMENT YH STARTS AT RWORK(LYH).
+C SEGMENTS OF RWORK (IN ORDER) ARE DENOTED  YH, WM, EWT, SAVF, ACOR.
+C WORK SPACE FOR DFDP IS CONTAINED IN ACOR.
+C-----------------------------------------------------------------------
+ 60   LYH = 21
+      LWM = LYH + (MAXORD + 1)*NYH
+      IF (MITER .EQ. 0) LENWM = 0
+      IF (MITER .EQ. 1 .OR. MITER .EQ. 2) LENWM = N*N + 2
+      IF (MITER .EQ. 3) LENWM = N + 2
+      IF (MITER .GE. 4) LENWM = (2*ML + MU + 1)*N + 2
+      LEWT = LWM + LENWM
+      LSAVF = LEWT + NYH
+      LACOR = LSAVF + N
+      LDFDP = LACOR + N
+      LENRW = LACOR + NYH - 1
+      IWORK(17) = LENRW
+      LIWM = 1
+      LENIW = 20 + N
+      IF (MITER .EQ. 0 .OR. MITER .EQ. 3) LENIW = 20
+      LNRS = LENIW + LIWM
+      IF (ISOPT .EQ. 1) LENIW = LNRS + NPAR
+      IWORK(18) = LENIW
+      IF (LENRW .GT. LRW) GO TO 617
+      IF (LENIW .GT. LIW) GO TO 618
+C CHECK RTOL AND ATOL FOR LEGALITY. ------------------------------------
+      RTOLI = RTOL(1)
+      ATOLI = ATOL(1)
+      DO 70 I = 1,NYH
+        IF (ITOL .GE. 3) RTOLI = RTOL(I)
+        IF (ITOL .EQ. 2 .OR. ITOL .EQ. 4) ATOLI = ATOL(I)
+        IF (RTOLI .LT. ZERO) GO TO 619
+        IF (ATOLI .LT. ZERO) GO TO 620
+ 70     CONTINUE
+      IF (ISTATE .EQ. 1) GO TO 100
+C IF ISTATE = 3, SET FLAG TO SIGNAL PARAMETER CHANGES TO STODE. --------
+      JSTART = -1
+      IF (NQ .LE. MAXORD) GO TO 90
+C MAXORD WAS REDUCED BELOW NQ.  COPY YH(*,MAXORD+2) INTO SAVF. ---------
+      DO 80 I = 1,N
+ 80     RWORK(I+LSAVF-1) = RWORK(I+LWM-1)
+C RELOAD WM(1) = RWORK(LWM), SINCE LWM MAY HAVE CHANGED. ---------------
+ 90   IF (MITER .GT. 0) RWORK(LWM) = SQRT(UROUND)
+      GO TO 200
+C-----------------------------------------------------------------------
+C BLOCK C.
+C THE NEXT BLOCK IS FOR THE INITIAL CALL ONLY (ISTATE = 1).
+C IT CONTAINS ALL REMAINING INITIALIZATIONS, THE INITIAL CALL TO F,
+C THE INITIAL CALL TO SPRIME IF ISOPT = 1,
+C AND THE CALCULATION OF THE INITIAL STEP SIZE.
+C THE ERROR WEIGHTS IN EWT ARE INVERTED AFTER BEING LOADED.
+C-----------------------------------------------------------------------
+ 100  UROUND = D1MACH(4)
+      TN = T
+      IF (ITASK .NE. 4 .AND. ITASK .NE. 5) GO TO 105
+      TCRIT = RWORK(1)
+      IF ((TCRIT - TOUT)*(TOUT - T) .LT. ZERO) GO TO 625
+      IF (H0 .NE. ZERO .AND. (T + H0 - TCRIT)*H0 .GT. ZERO)
+     1   H0 = TCRIT - T
+ 105  JSTART = 0
+      IF (MITER .GT. 0) RWORK(LWM) = SQRT(UROUND)
+      NHNIL = 0
+      NST = 0
+      NJE = 0
+      NSLAST = 0
+      HU = ZERO
+      NQU = 0
+      CCMAX = 0.3D0
+      MAXCOR = 3
+      IF (ISOPT .EQ. 1) MAXCOR = 4
+      MSBP = 20
+      MXNCF = 10
+C INITIAL CALL TO F.  (LF0 POINTS TO YH(1,2) AND LOADS IN VALUES).
+      LF0 = LYH + NYH
+      CALL F (NEQ, T, Y, PAR, RWORK(LF0))
+      NFE = 1
+      DUPS = ZERO
+      DSMS = ZERO
+      DDNS = ZERO
+      NDFE = 0
+      NSPE = 0
+      IF (ISOPT .EQ. 0) GO TO 114
+C INITIALIZE COUNTS FOR REPEATED STEPS DUE TO SENSITIVITY ANALYSIS.
+      DO 110 J = 1,NSV
+ 110    IWORK(J + LNRS - 1) = 0
+C LOAD THE INITIAL VALUE VECTOR IN YH. ---------------------------------
+ 114  DO 115 I = 1,NYH
+ 115    RWORK(I+LYH-1) = Y(I)
+C LOAD AND INVERT THE EWT ARRAY.  (H IS TEMPORARILY SET TO ONE.) -------
+      NQ = 1
+      H = ONE
+      CALL EWSET (NYH, ITOL, RTOL, ATOL, RWORK(LYH), RWORK(LEWT))
+      DO 120 I = 1,NYH
+        IF (RWORK(I+LEWT-1) .LE. ZERO) GO TO 621
+ 120    RWORK(I+LEWT-1) = ONE/RWORK(I+LEWT-1)
+      IF (ISOPT .EQ. 0) GO TO 125
+C CALL SPRIME TO LOAD FIRST-ORDER SENSITIVITY DERIVATIVES INTO
+C REMAINING YH(*,2) POSITIONS.
+      CALL SPRIME (NEQ, Y, RWORK(LYH), NYH, N, NSV, RWORK(LWM),
+     1   IWORK(LIWM), RWORK(LEWT), RWORK(LF0), RWORK(LACOR),
+     2   RWORK(LDFDP), PAR, F, JAC, DF, PREPJ, PREPDF)
+      IF (IERSP .EQ. -1) GO TO 631
+      IF (IERSP .EQ. -2) GO TO 632
+C-----------------------------------------------------------------------
+C THE CODING BELOW COMPUTES THE STEP SIZE, H0, TO BE ATTEMPTED ON THE
+C FIRST STEP, UNLESS THE USER HAS SUPPLIED A VALUE FOR THIS.
+C FIRST CHECK THAT TOUT - T DIFFERS SIGNIFICANTLY FROM ZERO.
+C A SCALAR TOLERANCE QUANTITY TOL IS COMPUTED, AS MAX(RTOL(I))
+C IF THIS IS POSITIVE, OR MAX(ATOL(I)/ABS(Y(I))) OTHERWISE, ADJUSTED
+C SO AS TO BE BETWEEN 100*UROUND AND 1.0E-3. ONLY THE ORIGINAL
+C SOLUTION VECTOR IS CONSIDERED IN THIS CALCULATION (ISOPT = 0 OR 1).
+C THEN THE COMPUTED VALUE H0 IS GIVEN BY..
+C                                     NEQ
+C  H0**2 = TOL / ( W0**-2 + (1/NEQ) * SUM ( F(I)/YWT(I) )**2  )
+C                                      1
+C WHERE  W0     = MAX ( ABS(T), ABS(TOUT) ),
+C        F(I)   = I-TH COMPONENT OF INITIAL VALUE OF F,
+C        YWT(I) = EWT(I)/TOL  (A WEIGHT FOR Y(I)).
+C THE SIGN OF H0 IS INFERRED FROM THE INITIAL VALUES OF TOUT AND T.
+C-----------------------------------------------------------------------
+ 125  IF (H0 .NE. ZERO) GO TO 180
+      TDIST = ABS(TOUT - T)
+      W0 = MAX(ABS(T),ABS(TOUT))
+      IF (TDIST .LT. TWO*UROUND*W0) GO TO 622
+      TOL = RTOL(1)
+      IF (ITOL .LE. 2) GO TO 140
+      DO 130 I = 1,N
+ 130    TOL = MAX(TOL,RTOL(I))
+ 140   IF (TOL .GT. ZERO) GO TO 160
+      ATOLI = ATOL(1)
+      DO 150 I = 1,N
+        IF (ITOL .EQ. 2 .OR. ITOL .EQ. 4) ATOLI = ATOL(I)
+        AYI = ABS(Y(I))
+        IF (AYI .NE. ZERO) TOL = MAX(TOL,ATOLI/AYI)
+ 150    CONTINUE
+ 160   TOL = MAX(TOL,100.0D0*UROUND)
+      TOL = MIN(TOL,0.001D0)
+      SUM = VNORM (N, RWORK(LF0), RWORK(LEWT))
+      SUM = ONE/(TOL*W0*W0) + TOL*SUM**2
+      H0 = ONE/SQRT(SUM)
+      H0 = MIN(H0,TDIST)
+      H0 = SIGN(H0,TOUT-T)
+C ADJUST H0 IF NECESSARY TO MEET HMAX BOUND. ---------------------------
+ 180   RH = ABS(H0)*HMXI
+      IF (RH .GT. ONE) H0 = H0/RH
+C LOAD H WITH H0 AND SCALE YH(*,2) BY H0. ------------------------------
+      H = H0
+      DO 190 I = 1,NYH
+ 190    RWORK(I+LF0-1) = H0*RWORK(I+LF0-1)
+      GO TO 270
+C-----------------------------------------------------------------------
+C BLOCK D.
+C THE NEXT CODE BLOCK IS FOR CONTINUATION CALLS ONLY (ISTATE = 2 OR 3)
+C AND IS TO CHECK STOP CONDITIONS BEFORE TAKING A STEP.
+C-----------------------------------------------------------------------
+ 200   NSLAST = NST
+      GO TO (210, 250, 220, 230, 240), ITASK
+ 210   IF ((TN - TOUT)*H .LT. ZERO) GO TO 250
+      CALL INTDY (TOUT, 0, RWORK(LYH), NYH, Y, IFLAG)
+      IF (IFLAG .NE. 0) GO TO 627
+      T = TOUT
+      GO TO 420
+ 220   TP = TN - HU*(ONE + 100.0D0*UROUND)
+      IF ((TP - TOUT)*H .GT. ZERO) GO TO 623
+      IF ((TN - TOUT)*H .LT. ZERO) GO TO 250
+      GO TO 400
+ 230   TCRIT = RWORK(1)
+      IF ((TN - TCRIT)*H .GT. ZERO) GO TO 624
+      IF ((TCRIT - TOUT)*H .LT. ZERO) GO TO 625
+      IF ((TN - TOUT)*H .LT. ZERO) GO TO 245
+      CALL INTDY (TOUT, 0, RWORK(LYH), NYH, Y, IFLAG)
+      IF (IFLAG .NE. 0) GO TO 627
+      T = TOUT
+      GO TO 420
+ 240   TCRIT = RWORK(1)
+      IF ((TN - TCRIT)*H .GT. ZERO) GO TO 624
+ 245   HMX = ABS(TN) + ABS(H)
+      IHIT = ABS(TN - TCRIT) .LE. 100.0D0*UROUND*HMX
+      IF (IHIT) GO TO 400
+      TNEXT = TN + H*(ONE + FOUR*UROUND)
+      IF ((TNEXT - TCRIT)*H .LE. ZERO) GO TO 250
+      H = (TCRIT - TN)*(ONE - FOUR*UROUND)
+      IF (ISTATE .EQ. 2) JSTART = -2
+C-----------------------------------------------------------------------
+C BLOCK E.
+C THE NEXT BLOCK IS NORMALLY EXECUTED FOR ALL CALLS AND CONTAINS
+C THE CALL TO THE ONE-STEP CORE INTEGRATOR STODE.
+C
+C THIS IS A LOOPING POINT FOR THE INTEGRATION STEPS.
+C
+C FIRST CHECK FOR TOO MANY STEPS BEING TAKEN, UPDATE EWT (IF NOT AT
+C START OF PROBLEM), CHECK FOR TOO MUCH ACCURACY BEING REQUESTED, AND
+C CHECK FOR H BELOW THE ROUNDOFF LEVEL IN T.
+C TOLSF IS CALCULATED CONSIDERING ALL SOLUTION VECTORS.
+C-----------------------------------------------------------------------
+ 250   CONTINUE
+      IF ((NST-NSLAST) .GE. MXSTEP) GO TO 500
+      CALL EWSET (NYH, ITOL, RTOL, ATOL, RWORK(LYH), RWORK(LEWT))
+      DO 260 I = 1,NYH
+        IF (RWORK(I+LEWT-1) .LE. ZERO) GO TO 510
+ 260    RWORK(I+LEWT-1) = ONE/RWORK(I+LEWT-1)
+ 270   TOLSF = UROUND*VNORM (NYH, RWORK(LYH), RWORK(LEWT))
+      IF (TOLSF .LE. ONE) GO TO 280
+      TOLSF = TOLSF*2.0D0
+      IF (NST .EQ. 0) GO TO 626
+      GO TO 520
+ 280   IF (ADDX(TN,H) .NE. TN) GO TO 290
+      NHNIL = NHNIL + 1
+      IF (NHNIL .GT. MXHNIL) GO TO 290
+      CALL XERR ('ODESSA - WARNING..INTERNAL T (=R1) AND H (=R2) ARE',
+     1   101, 1, 0, 0, 0, 0, ZERO, ZERO)
+      CALL XERR ('SUCH THAT IN THE MACHINE, T + H = T ON THE NEXT STEP',
+     1   101, 1, 0, 0, 0, 0, ZERO, ZERO)
+      CALL XERR ('(H = STEP SIZE). KppSolveR WILL CONTINUE ANYWAY',
+     1   101, 1, 0, 0, 0, 2, TN, H)
+      IF (NHNIL .LT. MXHNIL) GO TO 290
+      CALL XERR ('ODESSA - ABOVE WARNING HAS BEEN ISSUED I1 TIMES.',
+     1   102, 1, 0, 0, 0, 0, ZERO, ZERO)
+      CALL XERR ('IT WILL NOT BE ISSUED AGAIN FOR THIS PROBLEM',
+     1   102, 1, 1, MXHNIL, 0, 0, ZERO,ZERO)
+ 290   CONTINUE
+C-----------------------------------------------------------------------
+C     CALL STODE(NEQ,Y,YH,NYH,YH,WM,IWM,EWT,SAVF,ACOR,PAR,NRS,
+C    1   F,JAC,DF,PREPJ,PREPDF,SOLSY)
+C-----------------------------------------------------------------------
+      CALL STODE (NEQ, Y, RWORK(LYH), NYH, RWORK(LYH), RWORK(LWM),
+     1   IWORK(LIWM), RWORK(LEWT), RWORK(LSAVF), RWORK(LACOR),
+     2   PAR, IWORK(LNRS), F, JAC, DF, PREPJ, PREPDF, SOLSY)
+      KGO = 1 - KFLAG
+      GO TO (300, 530, 540, 633), KGO
+C-----------------------------------------------------------------------
+C BLOCK F.
+C THE FOLLOWING BLOCK HANDLES THE CASE OF A SUCCESSFUL RETURN FROM THE
+C CORE INTEGRATOR (KFLAG = 0).  TEST FOR STOP CONDITIONS.
+C-----------------------------------------------------------------------
+ 300   INIT = 1
+      GO TO (310, 400, 330, 340, 350), ITASK
+C ITASK = 1.  IF TOUT HAS BEEN REACHED, INTERPOLATE. -------------------
+ 310   IF ((TN - TOUT)*H .LT. ZERO) GO TO 250
+      CALL INTDY (TOUT, 0, RWORK(LYH), NYH, Y, IFLAG)
+      T = TOUT
+      GO TO 420
+C ITASK = 3.  JUMP TO EXIT IF TOUT WAS REACHED. ------------------------
+ 330   IF ((TN - TOUT)*H .GE. ZERO) GO TO 400
+      GO TO 250
+C ITASK = 4.  SEE IF TOUT OR TCRIT WAS REACHED.  ADJUST H IF NECESSARY.
+ 340   IF ((TN - TOUT)*H .LT. ZERO) GO TO 345
+      CALL INTDY (TOUT, 0, RWORK(LYH), NYH, Y, IFLAG)
+      T = TOUT
+      GO TO 420
+ 345   HMX = ABS(TN) + ABS(H)
+      IHIT = ABS(TN - TCRIT) .LE. 100.0D0*UROUND*HMX
+      IF (IHIT) GO TO 400
+      TNEXT = TN + H*(ONE + FOUR*UROUND)
+      IF ((TNEXT - TCRIT)*H .LE. ZERO) GO TO 250
+      H = (TCRIT - TN)*(ONE - FOUR*UROUND)
+      JSTART = -2
+      GO TO 250
+C ITASK = 5.  SEE IF TCRIT WAS REACHED AND JUMP TO EXIT. ---------------
+ 350   HMX = ABS(TN) + ABS(H)
+      IHIT = ABS(TN - TCRIT) .LE. 100.0D0*UROUND*HMX
+C-----------------------------------------------------------------------
+C BLOCK G.
+C THE FOLLOWING BLOCK HANDLES ALL SUCCESSFUL RETURNS FROM ODESSA.
+C IF ITASK .NE. 1, Y IS LOADED FROM YH AND T IS SET ACCORDINGLY.
+C ISTATE IS SET TO 2, THE ILLEGAL INPUT COUNTER IS ZEROED, AND THE
+C OPTIONAL OUTPUTS ARE LOADED INTO THE WORK ARRAYS BEFORE RETURNING.
+C IF ISTATE = 1 AND TOUT = T, THERE IS A RETURN WITH NO ACTION TAKEN,
+C EXCEPT THAT IF THIS HAS HAPPENED REPEATEDLY, THE RUN IS TERMINATED.
+C-----------------------------------------------------------------------
+ 400  DO 410 I = 1,NYH
+ 410    Y(I) = RWORK(I+LYH-1)
+      T = TN
+      IF (ITASK .NE. 4 .AND. ITASK .NE. 5) GO TO 420
+      IF (IHIT) T = TCRIT
+ 420   ISTATE = 2
+      ILLIN = 0
+      RWORK(11) = HU
+      RWORK(12) = H
+      RWORK(13) = TN
+      IWORK(11) = NST
+      IWORK(12) = NFE
+      IWORK(13) = NJE
+      IWORK(14) = NQU
+      IWORK(15) = NQ
+      IF (ISOPT .EQ. 0) RETURN
+      IWORK(19) = NDFE
+      IWORK(20) = NSPE
+      RETURN
+ 430   NTREP = NTREP + 1
+      IF (NTREP .LT. 5) RETURN
+      CALL XERR ('ODESSA -- REPEATED CALLS WITH ISTATE = 1 AND
+     1TOUT = T (=R1)', 301, 1, 0, 0, 0, 1, T, ZERO)
+      GO TO 800
+C-----------------------------------------------------------------------
+C BLOCK H.
+C THE FOLLOWING BLOCK HANDLES ALL UNSUCCESSFUL RETURNS OTHER THAN
+C THOSE FOR ILLEGAL INPUT.  FIRST THE ERROR MESSAGE ROUTINE IS CALLED.
+C IF THERE WAS AN ERROR TEST OR CONVERGENCE TEST FAILURE, IMXER IS SET.
+C THEN Y IS LOADED FROM YH, T IS SET TO TN, AND THE ILLEGAL INPUT
+C COUNTER ILLIN IS SET TO 0.  THE OPTIONAL OUTPUTS ARE LOADED INTO
+C THE WORK ARRAYS BEFORE RETURNING.
+C-----------------------------------------------------------------------
+C THE MAXIMUM NUMBER OF STEPS WAS TAKEN BEFORE REACHING TOUT. ----------
+ 500  CALL XERR ('ODESSA - AT CURRENT T (=R1), MXSTEP (=I1) STEPS',
+     1   201, 1, 0, 0, 0, 0, ZERO,ZERO)
+      CALL XERR ('TAKEN ON THIS CALL BEFORE REACHING TOUT',
+     1   201, 1, 1, MXSTEP, 0, 1, TN, ZERO)
+      ISTATE = -1
+      GO TO 580
+C EWT(I) .LE. 0.0 FOR SOME I (NOT AT START OF PROBLEM). ----------------
+ 510   EWTI = RWORK(LEWT+I-1)
+      CALL XERR ('ODESSA - AT T (=R1), EWT(I1) HAS BECOME R2 .LE. 0.',
+     1   202, 1, 1, I, 0, 2, TN, EWTI)
+      ISTATE = -6
+      GO TO 580
+C TOO MUCH ACCURACY REQUESTED FOR MACHINE PRECISION. -------------------
+ 520  CALL XERR ('ODESSA - AT T (=R1), TOO MUCH ACCURACY REQUESTED',
+     1  203, 1, 0, 0, 0, 0, ZERO,ZERO)
+      CALL XERR ('FOR PRECISION OF MACHINE..  SEE TOLSF (=R2)',
+     1  203, 1, 0, 0, 0, 2, TN, TOLSF)
+      RWORK(14) = TOLSF
+      ISTATE = -2
+      GO TO 580
+C KFLAG = -1.  ERROR TEST FAILED REPEATEDLY OR WITH ABS(H) = HMIN. -----
+ 530  CALL XERR ('ODESSA - AT T(=R1) AND STEP SIZE H(=R2), THE ERROR',
+     1  204, 1, 0, 0, 0, 0, ZERO, ZERO)
+      CALL XERR ('TEST FAILED REPEATEDLY OR WITH ABS(H) = HMIN',
+     1  204, 1, 0, 0, 0, 2, TN, H)
+      ISTATE = -4
+      GO TO 560
+C KFLAG = -2.  CONVERGENCE FAILED REPEATEDLY OR WITH ABS(H) = HMIN. ----
+ 540  CALL XERR ('ODESSA - AT T (=R1) AND STEP SIZE H (=R2), THE',
+     1  205, 1, 0, 0, 0, 0, ZERO,ZERO)
+      CALL XERR ('CORRECTOR CONVERGENCE FAILED REPEATEDLY',
+     1   205, 1, 0, 0, 0, 0, ZERO,ZERO)
+      CALL XERR ('OR WITH ABS(H) = HMIN',
+     1   205, 1, 0, 0, 0, 2, TN, H)
+      ISTATE = -5
+C COMPUTE IMXER IF RELEVANT. -------------------------------------------
+ 560   BIG = ZERO
+      IMXER = 1
+      DO 570 I = 1,NYH
+        SIZE = ABS(RWORK(I+LACOR-1)*RWORK(I+LEWT-1))
+        IF (BIG .GE. SIZE) GO TO 570
+        BIG = SIZE
+        IMXER = I
+ 570    CONTINUE
+      IWORK(16) = IMXER
+C SET Y VECTOR, T, ILLIN, AND OPTIONAL OUTPUTS. ------------------------
+ 580   DO 590 I = 1,NYH
+ 590    Y(I) = RWORK(I+LYH-1)
+      T = TN
+      ILLIN = 0
+      RWORK(11) = HU
+      RWORK(12) = H
+      RWORK(13) = TN
+      IWORK(11) = NST
+      IWORK(12) = NFE
+      IWORK(13) = NJE
+      IWORK(14) = NQU
+      IWORK(15) = NQ
+      IF (ISOPT .EQ. 0) RETURN
+      IWORK(19) = NDFE
+      IWORK(20) = NSPE
+      RETURN
+C-----------------------------------------------------------------------
+C BLOCK I.
+C THE FOLLOWING BLOCK HANDLES ALL ERROR RETURNS DUE TO ILLEGAL INPUT
+C (ISTATE = -3), AS DETECTED BEFORE CALLING THE CORE INTEGRATOR.
+C FIRST THE ERROR MESSAGE ROUTINE IS CALLED.  THEN IF THERE HAVE BEEN
+C 5 CONSECUTIVE SUCH RETURNS JUST BEFORE THIS CALL TO THE KppSolveR,
+C THE RUN IS HALTED.
+C-----------------------------------------------------------------------
+ 601   CALL XERR ('ODESSA - ISTATE (=I1) ILLEGAL',
+     1  1, 1, 1, ISTATE, 0, 0, ZERO,ZERO)
+      GO TO 700
+ 602   CALL XERR ('ODESSA - ITASK (=I1) ILLEGAL',
+     1  2, 1, 1, ITASK, 0, 0, ZERO,ZERO)
+      GO TO 700
+ 603  CALL XERR ('ODESSA - ISTATE .GT. 1 BUT ODESSA NOT INITIALIZED',
+     1  3, 1, 0, 0, 0, 0, ZERO,ZERO)
+      GO TO 700
+ 604   CALL XERR ('ODESSA - NEQ (=I1) .LT. 1',
+     1  4, 1, 1, NEQ(1), 0, 0, ZERO,ZERO)
+      GO TO 700
+ 605  CALL XERR ('ODESSA - ISTATE = 3 AND NEQ CHANGED.  (I1 TO I2)',
+     1  5, 1, 2, N, NEQ(1), 0, ZERO,ZERO)
+      GO TO 700
+ 606   CALL XERR ('ODESSA - ITOL (=I1) ILLEGAL',
+     1  6, 1, 1, ITOL, 0, 0, ZERO,ZERO)
+      GO TO 700
+ 607   CALL XERR ('ODESSA - IOPT (=I1) ILLEGAL',
+     1   7, 1, 1, IOPT, 0, 0, ZERO,ZERO)
+      GO TO 700
+ 608   CALL XERR('ODESSA - MF (=I1) ILLEGAL',
+     1   8, 1, 1, MF, 0, 0, ZERO,ZERO)
+      GO TO 700
+ 609  CALL XERR('ODESSA - ML (=I1) ILLEGAL.. .LT.0 OR .GE.NEQ (=I2)',
+     1   9, 1, 2, ML, NEQ(1), 0, ZERO,ZERO)
+      GO TO 700
+ 610  CALL XERR('ODESSA - MU (=I1) ILLEGAL.. .LT.0 OR .GE.NEQ (=I2)',
+     1   10, 1, 2, MU, NEQ(1), 0, ZERO,ZERO)
+      GO TO 700
+ 611   CALL XERR('ODESSA - MAXORD (=I1) .LT. 0',
+     1   11, 1, 1, MAXORD, 0, 0, ZERO,ZERO)
+      GO TO 700
+ 612   CALL XERR('ODESSA - MXSTEP (=I1) .LT. 0',
+     1   12, 1, 1, MXSTEP, 0, 0, ZERO,ZERO)
+      GO TO 700
+ 613   CALL XERR('ODESSA - MXHNIL (=I1) .LT. 0',
+     1   13, 1, 1, MXHNIL, 0, 0, ZERO,ZERO)
+      GO TO 700
+ 614   CALL XERR('ODESSA - TOUT (=R1) BEHIND T (=R2)',
+     1   14, 1, 0, 0, 0, 2, TOUT, T)
+      CALL XERR('INTEGRATION DIRECTION IS GIVEN BY H0 (=R1)',
+     1   14, 1, 0, 0, 0, 1, H0, ZERO)
+      GO TO 700
+ 615   CALL XERR('ODESSA - HMAX (=R1) .LT. 0.0',
+     1   15, 1, 0, 0, 0, 1, HMAX, ZERO)
+      GO TO 700
+ 616   CALL XERR('ODESSA - HMIN (=R1) .LT. 0.0',
+     1   16, 1, 0, 0, 0, 1, HMIN, ZERO)
+      GO TO 700
+ 617  CALL XERR('ODESSA - RWORK LENGTH NEEDED, LENRW (=I1), EXCEEDS
+     1 LRW (=I2)', 17, 1, 2, LENRW, LRW, 0, ZERO,ZERO)
+      GO TO 700
+ 618  CALL XERR('ODESSA - IWORK LENGTH NEEDED, LENIW (=I1), EXCEEDS
+     1 LIW (=I2)', 18, 1, 2, LENIW, LIW, 0, ZERO,ZERO)
+      GO TO 700
+ 619   CALL XERR('ODESSA - RTOL(I1) IS R1 .LT. 0.0',
+     1   19, 1, 1, I, 0, 1, RTOLI, ZREO)
+      GO TO 700
+ 620   CALL XERR('ODESSA - ATOL(I1) IS R1 .LT. 0.0',
+     1   20, 1, 1, I, 0, 1, ATOLI, ZERO)
+      GO TO 700
+*
+ 621   EWTI = RWORK(LEWT+I-1)
+      CALL XERR('ODESSA - EWT(I1) IS R1 .LE. 0.0',
+     1   21, 1, 1, I, 0, 1, EWTI, ZERO)
+      GO TO 700
+ 622  CALL XERR('ODESSA - TOUT (=R1) TOO CLOSE TO T(=R2) TO START
+     1 INTEGRATION', 22, 1, 0, 0, 0, 2, TOUT, T)
+      GO TO 700
+ 623  CALL XERR('ODESSA - ITASK = I1 AND TOUT (=R1) BEHIND TCUR - HU
+     1 (= R2)', 23, 1, 1, ITASK, 0, 2, TOUT, TP)
+      GO TO 700
+ 624  CALL XERR('ODESSA - ITASK = 4 OR 5 AND TCRIT (=R1) BEHIND TCUR
+     1 (=R2)', 24, 1, 0, 0, 0, 2, TCRIT, TN)
+      GO TO 700
+ 625   CALL XERR('ODESSA - ITASK = 4 OR 5 AND TCRIT (=R1) BEHIND TOUT
+     1 (=R2)', 25, 1, 0, 0, 0, 2, TCRIT, TOUT)
+      GO TO 700
+ 626  CALL XERR('ODESSA - AT START OF PROBLEM, TOO MUCH ACCURACY',
+     1   26, 1, 0, 0, 0, 0, ZERO,ZERO)
+      CALL XERR('REQUESTED FOR PRECISION OF MACHINE. SEE TOLSF (=R1)',
+     1   26, 1, 0, 0, 0, 1, TOLSF, ZERO)
+      RWORK(14) = TOLSF
+      GO TO 700
+ 627  CALL XERR('ODESSA - TROUBLE FROM INTDY. ITASK = I1, TOUT = R1',
+     1   27, 1, 1, ITASK, 0, 1, TOUT, ZERO)
+      GO TO 700
+C ERROR STATEMENTS ASSOCIATED WITH SENSITIVITY ANALYSIS.
+ 628  CALL XERR('ODESSA - NPAR (=I1) .LT. 1',
+     1   28, 1, 1, NPAR, 0, 0, ZERO,ZERO)
+      GO TO 700
+ 629  CALL XERR('ODESSA - ISTATE = 3 AND NPAR CHANGED (I1 TO I2)',
+     1   29, 1, 2, NP, NPAR, 0, ZERO,ZERO)
+      GO TO 700
+ 630  CALL XERR('ODESSA - MITER (=I1) ILLEGAL',
+     1   30, 1, 1, MITER, 0, 0, ZERO,ZERO)
+      GO TO 700
+ 631  CALL XERR('ODESSA - TROUBLE IN SPRIME (IERPJ)',
+     1   31, 1, 0, 0, 0, 0, ZERO,ZERO)
+      GO TO 700
+ 632  CALL XERR('ODESSA - TROUBLE IN SPRIME (MITER)',
+     1   32, 1, 0, 0, 0, 0, ZERO,ZERO)
+      GO TO 700
+ 633  CALL XERR('ODESSA - FATAL ERROR IN STODE (KFLAG = -3)',
+     1   33, 2, 0, 0, 0, 0, ZERO,ZERO)
+      GO TO 801
+C
+ 700   IF (ILLIN .EQ. 5) GO TO 710
+      ILLIN = ILLIN + 1
+      ISTATE = -3
+      RETURN
+ 710  CALL XERR('ODESSA - REPEATED OCCURRENCES OF ILLEGAL INPUT',
+     1   302, 1, 0, 0, 0, 0, ZERO,ZERO)
+C
+ 800  CALL XERR('ODESSA - RUN ABORTED.. APPARENT INFINITE LOOP',
+     1   303, 2, 0, 0, 0, 0, ZERO,ZERO)
+      RETURN
+ 801  CALL XERR('ODESSA - RUN ABORTED',
+     1   304, 2, 0, 0, 0, 0, ZERO,ZERO)
+      RETURN
+C-------------------- END OF SUBROUTINE ODESSA -------------------------
+      END
+      DOUBLE PRECISION FUNCTION ADDX(A,B)
+      DOUBLE PRECISION A,B
+C
+C  THIS FUNCTION IS NECESSARY TO FORCE OPTIMIZING COMPILERS TO
+C  EXECUTE AND STORE A SUM, FOR SUCCESSFUL EXECUTION OF THE
+C  TEST A + B = B.
+C
+      ADDX = A + B
+      RETURN
+C-------------------- END OF FUNCTION SUM ------------------------------
+      END
+      SUBROUTINE SPRIME (NEQ, Y, YH, NYH, NROW, NCOL, WM, IWM,
+     1  EWT, SAVF, FTEM, DFDP, PAR, F, JAC, DF, PJAC, PDF)
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+      DIMENSION NEQ(*), Y(*), YH(NROW,NCOL,*), WM(*), IWM(*),
+     1  EWT(*), SAVF(*), FTEM(*), DFDP(NROW,*), PAR(*)
+      EXTERNAL F, JAC, DF, PJAC, PDF
+      PARAMETER (ONE=1.0D0,ZERO=0.0D0)
+      COMMON /ODE001/ ROWND, ROWNS(173),
+     1  RDUM1(37),EL0, H, RDUM2(6),
+     2  IOWND1(14), IOWNS(4),
+     3  IDUM1(3), IERPJ, IDUM2(6),
+     4  MITER, IDUM3(4), N, IDUM4(5)
+      COMMON /ODE002/ RDUM3(3),
+     1  IOWND2(3), IDUM5, NSV, IDUM6, NSPE, IDUM7, IERSP, JOPT, IDUM8
+C-----------------------------------------------------------------------
+C SPRIME IS CALLED BY ODESSA TO INITIALIZE THE YH ARRAY. IT IS ALSO
+C CALLED BY STODE TO REEVALUATE FIRST ORDER DERIVATIVES WHEN KFLAG
+C .LE. -3. SPRIME COMPUTES THE FIRST DERIVATIVES OF THE SENSITIVITY
+C COEFFICIENTS WITH RESPECT TO THE INDEPENDENT VARIABLE T...
+C
+C        SPRIME = D(DY/DP)/DT = JAC*DY/DP + DF/DP
+C                   WHERE JAC = JACOBIAN MATRIX
+C                       DY/DP = SENSITIVITY MATRIX
+C                       DF/DP = INHOMOGENEITY MATRIX
+C THIS ROUTINE USES THE COMMON VARIABLES EL0, H, IERPJ, MITER, N,
+C NSV, NSPE, IERSP, JOPT
+C-----------------------------------------------------------------------
+C CALL PREPJ WITH JOPT = 1.
+C IF MITER = 2 OR 5, EL0 IS TEMPORARILY SET TO -1.0 AND H IS
+C TEMPORARILY SET TO 1.0D0.
+C-----------------------------------------------------------------------
+      NSPE = NSPE + 1
+      JOPT = 1
+      IF (MITER .EQ. 1 .OR. MITER .EQ. 4) GO TO 10
+      HTEMP = H
+      ETEMP = EL0
+      H = ONE
+      EL0 = -ONE
+ 10   CALL PJAC (NEQ, Y, YH, NYH, WM, IWM, EWT, SAVF, FTEM,
+     1   PAR, F, JAC, JOPT)
+      IF (IERPJ .NE. 0) GO TO 300
+      JOPT = 0
+      IF (MITER .EQ. 1 .OR. MITER .EQ. 4) GO TO 20
+      H = HTEMP
+      EL0 = ETEMP
+C-----------------------------------------------------------------------
+C CALL PREPDF AND LOAD DFDP(*,JPAR).
+C-----------------------------------------------------------------------
+ 20   DO 30 J = 2,NSV
+        JPAR = J - 1
+        CALL PDF (NEQ, Y, WM, SAVF, FTEM, DFDP(1,JPAR), PAR,
+     1     F, DF, JPAR)
+ 30   CONTINUE
+C-----------------------------------------------------------------------
+C COMPUTE JAC*DY/DP AND STORE RESULTS IN YH(*,*,2).
+C-----------------------------------------------------------------------
+      GO TO (40,40,310,100,100) MITER
+C THE JACOBIAN IS FULL.------------------------------------------------
+C FOR EACH ROW OF THE JACOBIAN..
+C 40   DO 70 IROW = 1,N
+C AND EACH COLUMN OF THE SENSITIVITY MATRIX..
+C        DO 60 J = 2,NSV
+C          SUM = ZERO
+C TAKE THE VECTOR DOT PRODUCT..
+C          DO 50 I = 1,N
+C            IPD = IROW + N*(I-1) + 2
+C            SUM = SUM + WM(IPD)*YH(I,J,1)
+C 50       CONTINUE
+C          YH(IROW,J,2) = SUM
+C 60     CONTINUE
+C 70   CONTINUE
+  40  CONTINUE
+C FOR EACH COLUMN OF THE SENSITIVITY MATRIX..
+      DO 60 J = 2,NSV
+        CALL Jac_SP_Vec( WM(3), YH(1,J,1), YH(1,J,2) )
+ 60   CONTINUE
+      GO TO 200
+C THE JACOBIAN IS BANDED.-----------------------------------------------
+ 100  ML = IWM(1)
+      MU = IWM(2)
+      ICOUNT = 1
+      MBAND = ML + MU + 1
+      MEBAND = MBAND + ML
+      NMU = N - MU
+      ML1 = ML + 1
+C FOR EACH ROW OF THE JACOBIAN..
+      DO 160 IROW = 1,N
+        IF (IROW .GT. ML1) GO TO 110
+        IPD = MBAND + IROW + 1
+        IYH = 1
+        LBAND = MU + IROW
+        GO TO 120
+ 110    ICOUNT = ICOUNT + 1
+        IPD = ICOUNT*MEBAND + 2
+        IYH = IYH + 1
+        LBAND = LBAND - 1
+        IF (IROW .LE. NMU) LBAND = MBAND
+C AND EACH COLUMN OF THE SENSITIVITY MATRIX..
+ 120    DO 150 J = 2,NSV
+          SUM = ZERO
+          I1 = IPD
+          I2 = IYH
+C TAKE THE VECTOR DOT PRODUCT.
+          DO 140 I = 1,LBAND
+            SUM = SUM + WM(I1)*YH(I2,J,1)
+            I1 = I1 + MEBAND - 1
+            I2 = I2 + 1
+ 140      CONTINUE
+          YH(IROW,J,2) = SUM
+ 150    CONTINUE
+ 160  CONTINUE
+C-----------------------------------------------------------------------
+C ADD THE INHOMOGENEITY TERM, I.E., ADD DFDP(*,JPAR) TO YH(*,JPAR+1,2).
+C-----------------------------------------------------------------------
+ 200  DO 220 J = 2,NSV
+        JPAR = J - 1
+        DO 210 I = 1,N
+          YH(I,J,2) = YH(I,J,2) + DFDP(I,JPAR)
+ 210    CONTINUE
+ 220  CONTINUE
+      RETURN
+C-----------------------------------------------------------------------
+C ERROR RETURNS.
+C-----------------------------------------------------------------------
+ 300  IERSP = -1
+      RETURN
+ 310  IERSP = -2
+      RETURN
+C------------------------END OF SUBROUTINE SPRIME-----------------------
+      END
+      SUBROUTINE PREPJ (NEQ, Y, YH, NYH, WM, IWM, EWT, SAVF, FTEM,
+     1   PAR, FUNC_CHEM, JAC, JOPT)
+C      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+      INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Sparse.h'
+      DIMENSION NEQ(*), Y(*), YH(NYH,*), WM(*), IWM(*), EWT(*),
+     1   SAVF(*), FTEM(*), PAR(*)
+      EXTERNAL FUNC_CHEM, JAC
+      PARAMETER (ZERO=0.0D0,ONE=1.0D0)
+      COMMON /ODE001/ ROWND, ROWNS(173),
+     2   RDUM1(37), EL0, H, RDUM2(4), TN, UROUND,
+     3   IOWND(14), IOWNS(4),
+     4   IDUM1(3), IERPJ, IDUM2, JCUR, IDUM3(4),
+     5   MITER, IDUM4(4), N, IDUM5(2), NFE, NJE, IDUM6
+C-----------------------------------------------------------------------
+C PREPJ IS CALLED BY STODE TO COMPUTE AND PROCESS THE MATRIX
+C P = I - H*EL(1)*J , WHERE J IS AN APPROXIMATION TO THE JACOBIAN.
+C IF ISOPT = 1, PREPJ IS ALSO CALLED BY SPRIME WITH JOPT = 1.
+C HERE J IS COMPUTED BY THE USER-SUPPLIED ROUTINE JAC IF
+C MITER = 1 OR 4, OR BY FINITE DIFFERENCING IF MITER = 2, 3, OR 5.
+C IF MITER = 3, A DIAGONAL APPROXIMATION TO J IS USED.
+C J IS STORED IN WM AND REPLACED BY P.  IF MITER .NE. 3, P IS THEN
+C SUBJECTED TO LU DECOMPOSITION (JOPT = 0) IN PREPARATION FOR LATER
+C SOLUTION OF LINEAR SYSTEMS WITH P AS COEFFICIENT MATRIX. THIS IS
+C DONE BY DGEFA IF MITER = 1 OR 2, AND BY DGBFA IF MITER = 4 OR 5.
+C
+C IN ADDITION TO VARIABLES DESCRIBED PREVIOUSLY, COMMUNICATION
+C WITH PREPJ USES THE FOLLOWING..
+C Y     = ARRAY CONTAINING PREDICTED VALUES ON ENTRY.
+C FTEM  = WORK ARRAY OF LENGTH N (ACOR IN STODE).
+C SAVF  = ARRAY CONTAINING F EVALUATED AT PREDICTED Y.
+C WM    = REAL WORK SPACE FOR MATRICES.  ON OUTPUT IT CONTAINS THE
+C         INVERSE DIAGONAL MATRIX IF MITER = 3 AND THE LU DECOMPOSITION
+C         OF P IF MITER IS 1, 2 , 4, OR 5.
+C         STORAGE OF MATRIX ELEMENTS STARTS AT WM(3).
+C         WM ALSO CONTAINS THE FOLLOWING MATRIX-RELATED DATA..
+C         WM(1) = SQRT(UROUND), USED IN NUMERICAL JACOBIAN INCREMENTS.
+C         WM(2) = H*EL0, SAVED FOR LATER USE IF MITER = 3.
+C IWM   = INTEGER WORK SPACE CONTAINING PIVOT INFORMATION, STARTING AT
+C         IWM(21), IF MITER IS 1, 2, 4, OR 5.  IWM ALSO CONTAINS BAND
+C         PARAMETERS ML = IWM(1) AND MU = IWM(2) IF MITER IS 4 OR 5.
+C EL0   = EL(1) (INPUT).
+C IERPJ = OUTPUT ERROR FLAG,  = 0 IF NO TROUBLE, .GT. 0 IF
+C         P MATRIX FOUND TO BE SINGULAR.
+C JCUR  = OUTPUT FLAG = 1 TO INDICATE THAT THE JACOBIAN MATRIX
+C         (OR APPROXIMATION) IS NOW CURRENT.
+C JOPT  = INPUT JACOBIAN OPTION, = 1 IF JAC IS DESIRED ONLY.
+C THIS ROUTINE ALSO USES THE COMMON VARIABLES EL0, H, TN, UROUND,
+C IERPJ, JCUR, MITER, N, NFE, AND NJE.
+C-----------------------------------------------------------------------
+      NJE = NJE + 1
+      IERPJ = 0
+      JCUR = 1
+      HL0 = H*EL0
+      GO TO (100, 200, 300, 400, 500), MITER
+C IF MITER = 1, CALL JAC AND MULTIPLY BY SCALAR. -----------------------
+C 100   LENP = N*N
+ 100   LENP = LU_NONZERO
+      DO 110 I = 1,LU_NONZERO
+ 110    WM(I+2) = ZERO
+      CALL JAC (NEQ, TN, Y, PAR, 0, 0, WM(3), N)
+      IF (JOPT .EQ. 1) RETURN
+      CON = -HL0
+      DO 120 I = 1,LU_NONZERO
+ 120    WM(I+2) = WM(I+2)*CON
+      GO TO 240
+C IF MITER = 2, MAKE N CALLS TO F TO APPROXIMATE J. --------------------
+ 200   FAC = VNORM (N, SAVF, EWT)
+      R0 = 1000.0D0*ABS(H)*UROUND*REAL(N)*FAC
+      IF (R0 .EQ. ZERO) R0 = ONE
+      SRUR = WM(1)
+      J1 = 2
+      DO 230 J = 1,N
+        YJ = Y(J)
+        R = MAX(SRUR*ABS(YJ),R0/EWT(J))
+        Y(J) = Y(J) + R
+        FAC = -HL0/R
+        CALL FUNC_CHEM (NEQ, TN, Y, PAR, FTEM)
+        DO 220 I = 1,N
+ 220      WM(I+J1) = (FTEM(I) - SAVF(I))*FAC
+        Y(J) = YJ
+        J1 = J1 + N
+ 230    CONTINUE
+      NFE = NFE + N
+      IF (JOPT .EQ. 1) RETURN
+C ADD IDENTITY MATRIX. -------------------------------------------------
+ 240   J = 3
+C      DO 250 I = 1,N
+C        WM(J) = WM(J) + ONE
+C 250    J = J + (N + 1)
+      DO 250 I = 1,NVAR
+ 250       WM(2+LU_DIAG(I)) = WM(2+LU_DIAG(I)) + ONE
+C DO LU DECOMPOSITION ON P. --------------------------------------------
+C      CALL DGEFA (WM(3), N, N, IWM(21), IER)
+      CALL KppDecomp (WM(3), IER)
+      IF (IER .NE. 0) THEN
+           IERPJ = 1
+	   PRINT*,"Singular Matrix"
+	   STOP
+      END IF
+      RETURN
+C IF MITER = 3, CONSTRUCT A DIAGONAL APPROXIMATION TO J AND P. ---------
+ 300   WM(2) = HL0
+      R = EL0*0.1D0
+      DO 310 I = 1,N
+ 310    Y(I) = Y(I) + R*(H*SAVF(I) - YH(I,2))
+      CALL FUNC_CHEM (NEQ, TN, Y, PAR, WM(3))
+      NFE = NFE + 1
+      DO 320 I = 1,N
+        R0 = H*SAVF(I) - YH(I,2)
+        DI = 0.1D0*R0 - H*(WM(I+2) - SAVF(I))
+        WM(I+2) = 1.0D0
+        IF (ABS(R0) .LT. UROUND/EWT(I)) GO TO 320
+        IF (ABS(DI) .EQ. ZERO) GO TO 330
+        WM(I+2) = 0.1D0*R0/DI
+ 320    CONTINUE
+      RETURN
+ 330   IERPJ = 1
+      RETURN
+C IF MITER = 4, CALL JAC AND MULTIPLY BY SCALAR. -----------------------
+ 400   ML = IWM(1)
+      MU = IWM(2)
+      ML3 = ML + 3
+      MBAND = ML + MU + 1
+      MEBAND = MBAND + ML
+      LENP = MEBAND*N
+      DO 410 I = 1,LENP
+ 410    WM(I+2) = ZERO
+      CALL JAC (NEQ, TN, Y, PAR, ML, MU, WM(ML3), MEBAND)
+      IF (JOPT .EQ. 1) RETURN
+      CON = -HL0
+      DO 420 I = 1,LENP
+ 420    WM(I+2) = WM(I+2)*CON
+      GO TO 570
+C IF MITER = 5, MAKE MBAND CALLS TO F TO APPROXIMATE J. ----------------
+ 500   ML = IWM(1)
+      MU = IWM(2)
+      MBAND = ML + MU + 1
+      MBA = MIN(MBAND,N)
+      MEBAND = MBAND + ML
+      MEB1 = MEBAND - 1
+      SRUR = WM(1)
+      FAC = VNORM (N, SAVF, EWT)
+      R0 = 1000.0D0*ABS(H)*UROUND*REAL(N)*FAC
+      IF (R0 .EQ. ZERO) R0 = ONE
+      DO 560 J = 1,MBA
+        DO 530 I = J,N,MBAND
+          YI = Y(I)
+          R = MAX(SRUR*ABS(YI),R0/EWT(I))
+ 530      Y(I) = Y(I) + R
+        CALL FUNC_CHEM (NEQ, TN, Y, PAR, FTEM)
+        DO 550 JJ = J,N,MBAND
+          Y(JJ) = YH(JJ,1)
+          YJJ = Y(JJ)
+          R = MAX(SRUR*ABS(YJJ),R0/EWT(JJ))
+          FAC = -HL0/R
+          I1 = MAX(JJ-MU,1)
+          I2 = MIN(JJ+ML,N)
+          II = JJ*MEB1 - ML + 2
+          DO 540 I = I1,I2
+ 540        WM(II+I) = (FTEM(I) - SAVF(I))*FAC
+ 550      CONTINUE
+ 560    CONTINUE
+      NFE = NFE + MBA
+      IF (JOPT .EQ. 1) RETURN
+C ADD IDENTITY MATRIX. -------------------------------------------------
+ 570   II = MBAND + 2
+      DO 580 I = 1,N
+        WM(II) = WM(II) + ONE
+ 580    II = II + MEBAND
+C DO LU DECOMPOSITION OF P. --------------------------------------------
+      CALL DGBFA (WM(3), MEBAND, N, ML, MU, IWM(21), IER)
+      IF (IER .NE. 0) IERPJ = 1
+      RETURN
+C----------------------- END OF SUBROUTINE PREPJ -----------------------
+      END
+      SUBROUTINE PREPDF (NEQ, Y, SRUR, SAVF, FTEM, DFDP, PAR,
+     1   F, DF, JPAR)
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+      EXTERNAL F, DF
+      DIMENSION NEQ(*), Y(*), SAVF(*), FTEM(*), DFDP(*), PAR(*)
+      COMMON /ODE001/ ROWND, ROWNS(173),
+     1   RDUM1(43), TN, RDUM2,
+     2   IOWND1(14), IOWNS(4),
+     3   IDUM1(10), MITER, IDUM2(4), N, IDUM3(2), NFE, IDUM4(2)
+      COMMON /ODE002/ RDUM3(3),
+     1   IOWND2(3), IDUM5(2), NDFE, IDUM6, IDF, IDUM7(3)
+C-----------------------------------------------------------------------
+C PREPDF IS CALLED BY SPRIME AND STESA TO COMPUTE THE INHOMOGENEITY
+C VECTORS DF(I)/DP(JPAR). HERE DF/DP IS COMPUTED BY THE USER-SUPPLIED
+C ROUTINE DF IF IDF = 1, OR BY FINITE DIFFERENCING IF IDF = 0.
+C
+C IN ADDITION TO VARIABLES DESCRIBED PREVIOUSLY, COMMUNICATION WITH
+C PREPDF USES THE FOLLOWING..
+C Y     = REAL ARRAY OF LENGTH NYH CONTAINING DEPENDENT VARIABLES.
+C         PREPDF USES ONLY THE FIRST N ENTRIES OF Y(*).
+C SRUR  = SQRT(UROUND) (= WM(1)).
+C SAVF  = REAL ARRAY OF LENGTH N CONTAINING DERIVATIVES DY/DT.
+C FTEM  = REAL ARRAY OF LENGTH N USED TO TEMPORARILY STORE DY/DT FOR
+C         NUMERICAL DIFFERENTIATION.
+C DFDP  = REAL ARRAY OF LENGTH N USED TO STORE DF(I)/DP(JPAR), I = 1,N.
+C PAR   = REAL ARRAY OF LENGTH NPAR CONTAINING EQUATION PARAMETERS
+C         OF INTEREST.
+C JPAR  = INPUT PARAMETER, 2 .LE. JPAR .LE. NSV, DESIGNATING THE
+C         APPROPRIATE SOLUTION VECTOR CORRESPONDING TO PAR(JPAR).
+C THIS ROUTINE ALSO USES THE COMMON VARIABLES TN, MITER, N, NFE, NDFE,
+C AND IDF.
+C-----------------------------------------------------------------------
+      NDFE = NDFE + 1
+      IDF1 = IDF + 1
+      GO TO (100, 200), IDF1
+C IDF = 0, CALL F TO APPROXIMATE DFDP. ---------------------------------
+ 100  RPAR = PAR(JPAR)
+      R = MAX(SRUR*ABS(RPAR),SRUR)
+      PAR(JPAR) = RPAR + R
+      FAC = 1.0D0/R
+      CALL F (NEQ, TN, Y, PAR, FTEM)
+      DO 110 I = 1,N
+ 110    DFDP(I) = (FTEM(I) - SAVF(I))*FAC
+      PAR(JPAR) = RPAR
+      NFE = NFE + 1
+      RETURN
+C IDF = 1, CALL USER SUPPLIED DF. --------------------------------------
+ 200  DO 210 I = 1,N
+ 210    DFDP(I) = 0.0D0
+      CALL DF (NEQ, TN, Y, PAR, DFDP, JPAR)
+      RETURN
+C -------------------- END OF SUBROUTINE PREPDF ------------------------
+      END
+      SUBROUTINE INTDY (T, K, YH, NYH, DKY, IFLAG)
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+      DIMENSION YH(NYH,1), DKY(1)
+      COMMON /ODE001/ ROWND, ROWNS(173),
+     2   RDUM1(38),H, RDUM2(2), HU, RDUM3, TN, UROUND,
+     3   IOWND(14), IOWNS(4),
+     4   IDUM1(8), L, IDUM2,
+     5   IDUM3(5), N, NQ, IDUM4(4)
+C-----------------------------------------------------------------------
+C INTDY COMPUTES INTERPOLATED VALUES OF THE K-TH DERIVATIVE OF THE
+C DEPENDENT VARIABLE VECTOR Y, AND STORES IT IN DKY.  THIS ROUTINE
+C IS CALLED WITHIN THE PACKAGE WITH K = 0 AND T = TOUT, BUT MAY
+C ALSO BE CALLED BY THE USER FOR ANY K UP TO THE CURRENT ORDER.
+C (SEE DETAILED INSTRUCTIONS IN THE USAGE DOCUMENTATION.)
+C-----------------------------------------------------------------------
+C THE COMPUTED VALUES IN DKY ARE GOTTEN BY INTERPOLATION USING THE
+C NORDSIECK HISTORY ARRAY YH.  THIS ARRAY CORRESPONDS UNIQUELY TO A
+C VECTOR-VALUED POLYNOMIAL OF DEGREE NQCUR OR LESS, AND DKY IS SET
+C TO THE K-TH DERIVATIVE OF THIS POLYNOMIAL AT T.
+C THE FORMULA FOR DKY IS..
+C             Q
+C  DKY(I)  =  SUM  C(J,K) * (T - TN)**(J-K) * H**(-J) * YH(I,J+1)
+C            J=K
+C WHERE  C(J,K) = J*(J-1)*...*(J-K+1), Q = NQCUR, TN = TCUR, H = HCUR.
+C THE QUANTITIES  NQ = NQCUR, L = NQ+1, N = NEQ, TN, AND H ARE
+C COMMUNICATED BY COMMON.  THE ABOVE SUM IS DONE IN REVERSE ORDER.
+C IFLAG IS RETURNED NEGATIVE IF EITHER K OR T IS OUT OF BOUNDS.
+C-----------------------------------------------------------------------
+      IFLAG = 0
+      IF (K .LT. 0 .OR. K .GT. NQ) GO TO 80
+      TP = TN - HU*(1.0D0 + 100.0D0*UROUND)
+      IF ((T-TP)*(T-TN) .GT. 0.0D0) GO TO 90
+C
+      S = (T - TN)/H
+      IC = 1
+      IF (K .EQ. 0) GO TO 15
+      JJ1 = L - K
+      DO 10 JJ = JJ1,NQ
+ 10     IC = IC*JJ
+ 15   C = REAL(IC)
+      DO 20 I = 1,NYH
+ 20     DKY(I) = C*YH(I,L)
+      IF (K .EQ. NQ) GO TO 55
+      JB2 = NQ - K
+      DO 50 JB = 1,JB2
+        J = NQ - JB
+        JP1 = J + 1
+        IC = 1
+        IF (K .EQ. 0) GO TO 35
+        JJ1 = JP1 - K
+        DO 30 JJ = JJ1,J
+ 30       IC = IC*JJ
+ 35     C = REAL(IC)
+        DO 40 I = 1,NYH
+ 40       DKY(I) = C*YH(I,JP1) + S*DKY(I)
+ 50     CONTINUE
+      IF (K .EQ. 0) RETURN
+ 55   R = H**(-K)
+      DO 60 I = 1,NYH
+ 60     DKY(I) = R*DKY(I)
+      RETURN
+C
+ 80   CALL XERR('INTDY--  K (=I1) ILLEGAL',
+     1  51, 1, 1, K, 0, 0, ZERO,ZERO)
+      IFLAG = -1
+      RETURN
+ 90   CALL XERR ('INTDY--  T (=R1) ILLEGAL',
+     1   52, 1, 0, 0, 0, 1, T, ZERO)
+      CALL XERR('T NOT IN INTERVAL TCUR - HU (= R1) TO TCUR (=R2)',
+     1   52, 1, 0, 0, 0, 2, TP, TN)
+      IFLAG = -2
+      RETURN
+C----------------------- END OF SUBROUTINE INTDY -----------------------
+      END
+      SUBROUTINE STESA (NEQ, Y, NROW, NCOL, YH, WM, IWM, EWT, SAVF,
+     1   ACOR, PAR, NRS, F, JAC, DF, PJAC, PDF, KppSolve)
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+      EXTERNAL F, JAC, DF, PJAC, PDF, KppSolve
+      DIMENSION NEQ(*), Y(NROW,*), YH(NROW,NCOL,*), WM(*), IWM(*),
+     1   EWT(NROW,*), SAVF(*), ACOR(NROW,*), PAR(*), NRS(*)
+      PARAMETER (ONE=1.0D0,ZERO=0.0D0)
+      COMMON /ODE001/ ROWND, ROWNS(173),
+     1   TESCO(3,12), RDUM1, EL0, H, RDUM2(4), TN, RDUM3,
+     2   IOWND1(14), IOWNS(4),
+     3   IALTH, LMAX, IDUM1, IERPJ, IERSL, JCUR, IDUM2, KFLAG, L, IDUM3,
+     4   MITER, IDUM4(4), N, NQ, IDUM5, NFE, IDUM6(2)
+      COMMON /ODE002/ DUPS, DSMS, DDNS,
+     1   IOWND2(3), IDUM7, NSV, IDUM8(2), IDF, IDUM9, JOPT, KFLAGS
+C-----------------------------------------------------------------------
+C STESA IS CALLED BY STODE TO PERFORM AN EXPLICIT CALCULATION FOR THE
+C FIRST-ORDER SENSITIVITY COEFFICIENTS DY(I)/DP(J), I = 1,N; J = 1,NPAR.
+C
+C IN ADDITION TO THE VARIABLES DESCRIBED PREVIOUSLY, COMMUNICATION
+C WITH STESA USES THE FOLLOWING..
+C Y      = AN NROW (=N) BY NCOL (=NSV) REAL ARRAY CONTAINING THE
+C          CORRECTED DEPENDENT VARIABLES ON OUTPUT..
+C                  Y(I,1) , I = 1,N = STATE VARIABLES (INPUT);
+C                  Y(I,J) , I = 1,N , J = 2,NSV ,
+C                           = SENSITIVITY COEFFICIENTS, DY(I)/DP(J).
+C YH     = AN N BY NSV BY LMAX REAL ARRAY CONTAINING THE PREDICTED
+C          DEPENDENT VARIABLES AND THEIR APPROXIMATE SCALED DERIVATIVES.
+C SAVF   = A REAL ARRAY OF LENGTH N USED TO STORE FIRST DERIVATIVES
+C          OF DEPENDENT VARIABLES IF MITER = 2 OR 5.
+C PAR    = A REAL ARRAY OF LENGTH NPAR CONTAINING THE EQUATION
+C          PARAMETERS OF INTEREST.
+C NRS    = AN INTEGER ARRAY OF LENGTH NPAR + 1 CONTAINING THE NUMBER
+C          OF REPEATED STEPS (KFLAGS .LT. 0) DUE TO THE SENSITIVITY
+C          CALCULATIONS..
+C                  NRS(1) = TOTAL NUMBER OF REPEATED STEPS
+C                  NRS(I) , I = 2,NPAR = NUMBER OF REPEATED STEPS DUE
+C                                        TO PARAMETER I.
+C NSV    = NUMBER OF SOLUTION VECTORS = NPAR + 1.
+C KFLAGS = LOCAL ERROR TEST FLAG, = 0 IF TEST PASSES, .LT. 0 IF TEST
+C          FAILS, AND STEP NEEDS TO BE REPEATED. ERROR TEST IS APPLIED
+C          TO EACH SOLUTION VECTOR INDEPENDENTLY.
+C DUPS, DSMS, DDNS = REAL SCALARS USED FOR COMPUTING RHUP, RHSM, RHDN,
+C                    ON RETURN TO STODE (IALTH .EQ. 1).
+C THIS ROUTINE ALSO USES THE COMMON VARIABLES EL0, H, TN, IALTH, LMAX,
+C IERPJ, IERSL, JCUR, KFLAG, L, MITER, N, NQ, NFE, AND JOPT.
+C-----------------------------------------------------------------------
+      DUPS = ZERO
+      DSMS = ZERO
+      DDNS = ZERO
+      HL0 = H*EL0
+      EL0I = ONE/EL0
+      TI2 = ONE/TESCO(2,NQ)
+      TI3 = ONE/TESCO(3,NQ)
+C IF MITER = 2 OR 5 (OR IDF = 0), SUPPLY DERIVATIVES AT CORRECTED
+C Y(*,1) VALUES FOR NUMERICAL DIFFERENTIATION IN PJAC AND/OR PDF.
+      IF (MITER .EQ. 2  .OR.  MITER .EQ. 5  .OR.  IDF .EQ. 0)  GO TO 10
+      GO TO 15
+ 10   CALL F (NEQ, TN, Y, PAR, SAVF)
+      NFE = NFE + 1
+C IF JCUR = 0, UPDATE THE JACOBIAN MATRIX.
+C IF MITER = 5, LOAD CORRECTED Y(*,1) VALUES INTO Y(*,2).
+ 15   IF (JCUR .EQ. 1) GO TO 30
+      IF (MITER .NE. 5) GO TO 25
+      DO 20 I = 1,N
+ 20     Y(I,2) = Y(I,1)
+ 25   CALL PJAC (NEQ, Y, Y(1,2), N, WM, IWM, EWT, SAVF, ACOR(1,2),
+     1   PAR, F, JAC, JOPT)
+      IF (IERPJ .NE. 0) RETURN
+C-----------------------------------------------------------------------
+C THIS IS A LOOPING POINT FOR THE SENSITIVITY CALCULATIONS.
+C-----------------------------------------------------------------------
+C FOR EACH PARAMETER PAR(*), A SENSITIVITY SOLUTION VECTOR IS COMPUTED
+C USING THE SAME STEP SIZE (H) AND ORDER (NQ) AS IN STODE.
+C A LOCAL ERROR TEST IS APPLIED INDEPENDENTLY TO EACH SOLUTION VECTOR.
+C-----------------------------------------------------------------------
+ 30   DO 100 J = 2,NSV
+        JPAR = J - 1
+C EVALUATE INHOMOGENEITY TERM, TEMPORARILY LOAD INTO Y(*,JPAR+1). ------
+        CALL PDF(NEQ, Y, WM, SAVF, ACOR(1,J), Y(1,J), PAR,
+     1     F, DF, JPAR)
+C-----------------------------------------------------------------------
+C LOAD RHS OF SENSITIVITY SOLUTION (CORRECTOR) EQUATION..
+C
+C       RHS = DY/DP - EL(1)*H*D(DY/DP)/DT + EL(1)*H*DF/DP
+C
+C-----------------------------------------------------------------------
+        DO 40 I = 1,N
+ 40       Y(I,J) = YH(I,J,1) - EL0*YH(I,J,2) + HL0*Y(I,J)
+C-----------------------------------------------------------------------
+C KppSolve CORRECTOR EQUATION: THE SOLUTIONS ARE LOCATED IN Y(*,JPAR+1).
+C THE EXPLICIT FORMULA IS..
+C
+C       (I - EL(1)*H*JAC) * DY/DP(CORRECTED) = RHS
+C
+C-----------------------------------------------------------------------
+        CALL KppSolve (WM, IWM, Y(1,J), DUM)
+        IF (IERSL .NE. 0) RETURN
+C ESTIMATE LOCAL TRUNCATION ERROR. -------------------------------------
+        DO 50 I = 1,N
+ 50       ACOR(I,J) = (Y(I,J) - YH(I,J,1))*EL0I
+        ERR = VNORM(N, ACOR(1,J), EWT(1,J))*TI2
+        IF (ERR .GT. ONE) GO TO 200
+C-----------------------------------------------------------------------
+C LOCAL ERROR TEST PASSED. SET KFLAGS TO 0 TO INDICATE THIS.
+C IF IALTH = 1, COMPUTE DSMS, DDNS, AND DUPS (IF L .LT. LMAX).
+C-----------------------------------------------------------------------
+        KFLAGS = 0
+        IF (IALTH .GT. 1) GO TO 100
+        IF (L .EQ. LMAX) GO TO 70
+        DO 60 I= 1,N
+ 60       Y(I,J) = ACOR(I,J) - YH(I,J,LMAX)
+        DUPS = MAX(DUPS,VNORM(N,Y(1,J),EWT(1,J))*TI3)
+ 70     DSMS = MAX(DSMS,ERR)
+ 100  CONTINUE
+      RETURN
+C-----------------------------------------------------------------------
+C THIS SECTION IS REACHED IF THE ERROR TOLERANCE FOR SENSITIVITY
+C SOLUTION VECTOR JPAR HAS BEEN VIOLATED. KFLAGS IS MADE NEGATIVE TO
+C INDICATE THIS. IF KFLAGS = -1, SET KFLAG EQUAL TO ZERO SO THAT KFLAG
+C IS SET TO -1 ON RETURN TO STODE BEFORE REPEATING THE STEP.
+C INCREMENT NRS(1) (= TOTAL NUMBER OF REPEATED STEPS DUE TO ALL
+C SENSITIVITY SOLUTION VECTORS) BY ONE.
+C INCREMENT NRS(JPAR+1) (= TOTAL NUMBER OF REPEATED STEPS DUE TO
+C SOLUTION VECTOR JPAR+1) BY ONE.
+C LOAD DSMS FOR RH CALCULATION IN STODE.
+C-----------------------------------------------------------------------
+ 200  KFLAGS = KFLAGS - 1
+      IF (KFLAGS .EQ. -1) KFLAG = 0
+      NRS(1) = NRS(1) + 1
+      NRS(J) = NRS(J) + 1
+      DSMS = ERR
+      RETURN
+C------------------------ END OF SUBROUTINE STESA ----------------------
+      END
+      SUBROUTINE STODE (NEQ, Y, YH, NYH, YH1, WM, IWM, EWT, SAVF, ACOR,
+     1   PAR, NRS, F, JAC, DF, PJAC, PDF, SLVS)
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+      EXTERNAL F, JAC, DF, PJAC, PDF, SLVS
+      DIMENSION NEQ(*), Y(*), YH(NYH,*), YH1(*), WM(*), IWM(*), EWT(*),
+     1   SAVF(*), ACOR(*), PAR(*), NRS(*)
+      PARAMETER (ONE=1.0D0,ZERO=0.0D0)
+      COMMON /ODE001/ ROWND,
+     1   CONIT, CRATE, EL(13), ELCO(13,12), HOLD, RMAX,
+     2   TESCO(3,12), CCMAX, EL0, H, HMIN, HMXI, HU, RC, TN, UROUND,
+     3   IOWND1(14), IPUP, MEO, NQNYH, NSLP,
+     4   IALTH, LMAX, ICF, IERPJ, IERSL, JCUR, JSTART, KFLAG, L, METH,
+     5   MITER, MAXORD, MAXCOR, MSBP, MXNCF, N, NQ, NST, NFE, NJE, NQU
+      COMMON /ODE002/ DUPS, DSMS, DDNS,
+     1   IOWND2(3), ISOPT, NSV, NDFE, NSPE, IDF, IERSP, JOPT, KFLAGS
+C-----------------------------------------------------------------------
+C STODE PERFORMS ONE STEP OF THE INTEGRATION OF AN INITIAL VALUE
+C PROBLEM FOR A SYSTEM OF ORDINARY DIFFERENTIAL EQUATIONS.
+C NOTE.. STODE IS INDEPENDENT OF THE VALUE OF THE ITERATION METHOD
+C INDICATOR MITER, WHEN THIS IS .NE. 0, AND HENCE IS INDEPENDENT
+C OF THE TYPE OF CHORD METHOD USED, OR THE JACOBIAN STRUCTURE.
+C FOR ISOPT = 1, STODE CALLS STESA FOR SENSITIVITY CALCULATIONS.
+C VARIABLES USED FOR COMMUNICATION WITH STESA ARE DESCRIBED IN STESA.
+C COMMUNICATION WITH STODE IS DONE WITH THE FOLLOWING VARIABLES..
+C
+C NEQ   = INTEGER ARRAY CONTAINING PROBLEM SIZE IN NEQ(1), AND
+C         NUMBER OF PARAMETERS TO BE CONSIDERED IN THE SENSITIVITY
+C         ANALYSIS NEQ(2) (FOR ISOPT = 1), AND PASSED AS THE
+C         NEQ ARGUMENT IN ALL CALLS TO F,  JAC, AND DF.
+C Y     = AN ARRAY OF LENGTH .GE. N USED AS THE Y ARGUMENT IN
+C         ALL CALLS TO F, JAC, AND DF.
+C YH    = AN NYH BY LMAX ARRAY CONTAINING THE DEPENDENT VARIABLES
+C         AND THEIR APPROXIMATE SCALED DERIVATIVES, WHERE
+C         LMAX = MAXORD + 1.  YH(I,J+1) CONTAINS THE APPROXIMATE
+C         J-TH DERIVATIVE OF Y(I), SCALED BY H**J/FACTORIAL(J)
+C         (J = 0,1,...,NQ).  ON ENTRY FOR THE FIRST STEP, THE FIRST
+C         TWO COLUMNS OF YH MUST BE SET FROM THE INITIAL VALUES.
+C NYH   = A CONSTANT INTEGER .GE. N, THE FIRST DIMENSION OF YH.
+C         THE TOTAL NUMBER OF FIRST-ORDER DIFFERENTIAL EQUATIONS..
+C         NYH = N, ISOPT = 0,
+C         NYH = N * (NPAR + 1), ISOPT = 1
+C YH1   = A ONE-DIMENSIONAL ARRAY OCCUPYING THE SAME SPACE AS YH.
+C EWT   = AN ARRAY OF LENGTH NYH CONTAINING MULTIPLICATIVE WEIGHTS
+C         FOR LOCAL ERROR MEASUREMENTS.  LOCAL ERRORS IN Y(I) ARE
+C         COMPARED TO 1.0/EWT(I) IN VARIOUS ERROR TESTS.
+C SAVF  = AN ARRAY OF WORKING STORAGE, OF LENGTH N.
+C         ALSO USED FOR INPUT OF YH(*,MAXORD+2) WHEN JSTART = -1
+C         AND MAXORD .LT. THE CURRENT ORDER NQ.
+C ACOR  = A WORK ARRAY OF LENGTH NYH, USED FOR THE ACCUMULATED
+C         CORRECTIONS.  ON A SUCCESSFUL RETURN, ACOR(I) CONTAINS
+C         THE ESTIMATED ONE-STEP LOCAL ERROR IN Y(I).
+C WM,IWM = REAL AND INTEGER WORK ARRAYS ASSOCIATED WITH MATRIX
+C         OPERATIONS IN CHORD ITERATION (MITER .NE. 0).
+C PJAC  = NAME OF ROUTINE TO EVALUATE AND PREPROCESS JACOBIAN MATRIX
+C         AND P = I - H*EL0*JAC, IF A CHORD METHOD IS BEING USED.
+C         IF ISOPT = 1, PJAC CAN BE CALLED TO CALCULATE JAC BY
+C         SETTING JOPT = 1.
+C SLVS  = NAME OF ROUTINE TO KppSolve LINEAR SYSTEM IN CHORD ITERATION.
+C CCMAX  = MAXIMUM RELATIVE CHANGE IN H*EL0 BEFORE PJAC IS CALLED.
+C H     = THE STEP SIZE TO BE ATTEMPTED ON THE NEXT STEP.
+C         H IS ALTERED BY THE ERROR CONTROL ALGORITHM DURING THE
+C         PROBLEM.  H CAN BE EITHER POSITIVE OR NEGATIVE, BUT ITS
+C         SIGN MUST REMAIN CONSTANT THROUGHOUT THE PROBLEM.
+C HMIN  = THE MINIMUM ABSOLUTE VALUE OF THE STEP SIZE H TO BE USED.
+C HMXI  = INVERSE OF THE MAXIMUM ABSOLUTE VALUE OF H TO BE USED.
+C         HMXI = 0.0 IS ALLOWED AND CORRESPONDS TO AN INFINITE HMAX.
+C         HMIN AND HMXI MAY BE CHANGED AT ANY TIME, BUT WILL NOT
+C         TAKE EFFECT UNTIL THE NEXT CHANGE OF H IS CONSIDERED.
+C TN    = THE INDEPENDENT VARIABLE. TN IS UPDATED ON EACH STEP TAKEN.
+C JSTART = AN INTEGER USED FOR INPUT ONLY, WITH THE FOLLOWING
+C         VALUES AND MEANINGS..
+C              0  PERFORM THE FIRST STEP.
+C          .GT.0  TAKE A NEW STEP CONTINUING FROM THE LAST.
+C             -1  TAKE THE NEXT STEP WITH A NEW VALUE OF H, MAXORD,
+C                   N, METH, OR MITER.
+C             -2  TAKE THE NEXT STEP WITH A NEW VALUE OF H,
+C                   BUT WITH OTHER INPUTS UNCHANGED.
+C         ON RETURN, JSTART IS SET TO 1 TO FACILITATE CONTINUATION.
+C KFLAG  = A COMPLETION CODE WITH THE FOLLOWING MEANINGS..
+C              0  THE STEP WAS SUCCESFUL.
+C             -1  THE REQUESTED ERROR COULD NOT BE ACHIEVED.
+C             -2  CORRECTOR CONVERGENCE COULD NOT BE ACHIEVED.
+C             -3  FATAL ERROR IN PJAC, OR SLVS, (OR STESA).
+C         A RETURN WITH KFLAG = -1 OR -2 MEANS EITHER
+C         ABS(H) = HMIN OR 10 CONSECUTIVE FAILURES OCCURRED.
+C         ON A RETURN WITH KFLAG NEGATIVE, THE VALUES OF TN AND
+C         THE YH ARRAY ARE AS OF THE BEGINNING OF THE LAST
+C         STEP, AND H IS THE LAST STEP SIZE ATTEMPTED.
+C MAXORD = THE MAXIMUM ORDER OF INTEGRATION METHOD TO BE ALLOWED.
+C MAXCOR = THE MAXIMUM NUMBER OF CORRECTOR ITERATIONS ALLOWED.
+C          (= 3, IF ISOPT = 0)
+C          (= 4, IF ISOPT = 1)
+C MSBP  = MAXIMUM NUMBER OF STEPS BETWEEN PJAC CALLS (MITER .GT. 0).
+C         IF ISOPT = 1, PJAC IS CALLED AT LEAST ONCE EVERY STEP.
+C MXNCF  = MAXIMUM NUMBER OF CONVERGENCE FAILURES ALLOWED.
+C METH/MITER = THE METHOD FLAGS.  SEE DESCRIPTION IN DRIVER.
+C N     = THE NUMBER OF FIRST-ORDER MODEL DIFFERENTIAL EQUATIONS.
+C-----------------------------------------------------------------------
+      KFLAG = 0
+      KFLAGS = 0
+      TOLD = TN
+      NCF = 0
+      IERPJ = 0
+      IERSL = 0
+      JCUR = 0
+      ICF = 0
+      IF (JSTART .GT. 0) GO TO 200
+      IF (JSTART .EQ. -1) GO TO 100
+      IF (JSTART .EQ. -2) GO TO 160
+C-----------------------------------------------------------------------
+C ON THE FIRST CALL, THE ORDER IS SET TO 1, AND OTHER VARIABLES ARE
+C INITIALIZED.  RMAX IS THE MAXIMUM RATIO BY WHICH H CAN BE INCREASED
+C IN A SINGLE STEP.  IT IS INITIALLY 1.E4 TO COMPENSATE FOR THE SMALL
+C INITIAL H, BUT THEN IS NORMALLY EQUAL TO 10.  IF A FAILURE
+C OCCURS (IN CORRECTOR CONVERGENCE OR ERROR TEST), RMAX IS SET AT 2
+C FOR THE NEXT INCREASE.
+C THESE COMPUTATIONS CONSIDER ONLY THE ORIGINAL SOLUTION VECTOR.
+C THE SENSITIVITY SOLUTION VECTORS ARE CONSIDERED IN STESA (ISOPT = 1).
+C-----------------------------------------------------------------------
+      LMAX = MAXORD + 1
+      NQ = 1
+      L = 2
+      IALTH = 2
+      RMAX = 10000.0D0
+      RC = ZERO
+      EL0 = ONE
+      CRATE = 0.7D0
+      DELP = ZERO
+      HOLD = H
+      MEO = METH
+      NSLP = 0
+      IPUP = MITER
+      IRET = 3
+      GO TO 140
+C-----------------------------------------------------------------------
+C THE FOLLOWING BLOCK HANDLES PRELIMINARIES NEEDED WHEN JSTART = -1.
+C IPUP IS SET TO MITER TO FORCE A MATRIX UPDATE.
+C IF AN ORDER INCREASE IS ABOUT TO BE CONSIDERED (IALTH = 1),
+C IALTH IS RESET TO 2 TO POSTPONE CONSIDERATION ONE MORE STEP.
+C IF THE CALLER HAS CHANGED METH, CFODE IS CALLED TO RESET
+C THE COEFFICIENTS OF THE METHOD.
+C IF THE CALLER HAS CHANGED MAXORD TO A VALUE LESS THAN THE CURRENT
+C ORDER NQ, NQ IS REDUCED TO MAXORD, AND A NEW H CHOSEN ACCORDINGLY.
+C IF H IS TO BE CHANGED, YH MUST BE RESCALED.
+C IF H OR METH IS BEING CHANGED, IALTH IS RESET TO L = NQ + 1
+C TO PREVENT FURTHER CHANGES IN H FOR THAT MANY STEPS.
+C-----------------------------------------------------------------------
+ 100   IPUP = MITER
+      LMAX = MAXORD + 1
+      IF (IALTH .EQ. 1) IALTH = 2
+      IF (METH .EQ. MEO) GO TO 110
+      CALL CFODE (METH, ELCO, TESCO)
+      MEO = METH
+      IF (NQ .GT. MAXORD) GO TO 120
+      IALTH = L
+      IRET = 1
+      GO TO 150
+ 110   IF (NQ .LE. MAXORD) GO TO 160
+ 120   NQ = MAXORD
+      L = LMAX
+      DO 125 I = 1,L
+ 125    EL(I) = ELCO(I,NQ)
+      NQNYH = NQ*NYH
+      RC = RC*EL(1)/EL0
+      EL0 = EL(1)
+      CONIT = 0.5D0/REAL(NQ+2)
+      DDN = VNORM (N, SAVF, EWT)/TESCO(1,L)
+      EXDN = ONE/REAL(L)
+      RHDN = ONE/(1.3D0*DDN**EXDN + 0.0000013D0)
+      RH = MIN(RHDN,ONE)
+      IREDO = 3
+      IF (H .EQ. HOLD) GO TO 170
+      RH = MIN(RH,ABS(H/HOLD))
+      H = HOLD
+      GO TO 175
+C-----------------------------------------------------------------------
+C CFODE IS CALLED TO GET ALL THE INTEGRATION COEFFICIENTS FOR THE
+C CURRENT METH.  THEN THE EL VECTOR AND RELATED CONSTANTS ARE RESET
+C WHENEVER THE ORDER NQ IS CHANGED, OR AT THE START OF THE PROBLEM.
+C-----------------------------------------------------------------------
+ 140   CALL CFODE (METH, ELCO, TESCO)
+ 150   DO 155 I = 1,L
+ 155    EL(I) = ELCO(I,NQ)
+      NQNYH = NQ*NYH
+      RC = RC*EL(1)/EL0
+      EL0 = EL(1)
+      CONIT = 0.5D0/REAL(NQ+2)
+      GO TO (160, 170, 200), IRET
+C-----------------------------------------------------------------------
+C IF H IS BEING CHANGED, THE H RATIO RH IS CHECKED AGAINST
+C RMAX, HMIN, AND HMXI, AND THE YH ARRAY RESCALED.  IALTH IS SET TO
+C L = NQ + 1 TO PREVENT A CHANGE OF H FOR THAT MANY STEPS, UNLESS
+C FORCED BY A CONVERGENCE OR ERROR TEST FAILURE.
+C-----------------------------------------------------------------------
+ 160  IF (H .EQ. HOLD) GO TO 200
+      RH = H/HOLD
+      H = HOLD
+      IREDO = 3
+      GO TO 175
+ 170   RH = MAX(RH,HMIN/ABS(H))
+ 175   RH = MIN(RH,RMAX)
+      RH = RH/MAX(ONE,ABS(H)*HMXI*RH)
+      R = ONE
+      DO 180 J = 2,L
+        R = R*RH
+        DO 180 I = 1,NYH
+ 180      YH(I,J) = YH(I,J)*R
+      H = H*RH
+      RC = RC*RH
+      IALTH = L
+      IF (IREDO .EQ. 0) GO TO 690
+C-----------------------------------------------------------------------
+C THIS SECTION COMPUTES THE PREDICTED VALUES BY EFFECTIVELY
+C MULTIPLYING THE YH ARRAY BY THE PASCAL TRIANGLE MATRIX.
+C RC IS THE RATIO OF NEW TO OLD VALUES OF THE COEFFICIENT  H*EL(1).
+C WHEN RC DIFFERS FROM 1 BY MORE THAN CCMAX, IPUP IS SET TO MITER
+C TO FORCE PJAC TO BE CALLED, IF A JACOBIAN IS INVOLVED.
+C IN ANY CASE, PJAC IS CALLED AT LEAST EVERY MSBP STEPS FOR ISOPT = 0,
+C AND AT LEAST ONCE EVERY STEP FOR ISOPT = 1.
+C-----------------------------------------------------------------------
+ 200  IF (ABS(RC-ONE) .GT. CCMAX) IPUP = MITER
+      IF (NST .GE. NSLP+MSBP) IPUP = MITER
+      TN = TN + H
+      I1 = NQNYH + 1
+      DO 215 JB = 1,NQ
+        I1 = I1 - NYH
+        DO 210 I = I1,NQNYH
+ 210      YH1(I) = YH1(I) + YH1(I+NYH)
+ 215    CONTINUE
+C-----------------------------------------------------------------------
+C UP TO MAXCOR CORRECTOR ITERATIONS ARE TAKEN.  (= 3, FOR ISOPT = 0;
+C = 4, FOR ISOPT = 1).  A CONVERGENCE TEST IS MADE ON THE R.M.S. NORM
+C OF EACH CORRECTION, WEIGHTED BY THE ERROR WEIGHT VECTOR EWT.  THE SUM
+C OF THE CORRECTIONS IS ACCUMULATED IN THE VECTOR ACOR(I), I = 1,N.
+C (ACOR(I), I = N+1,NYH IS LOADED IN SUBROUTINE STESA (ISOPT = 1).)
+C THE YH ARRAY IS NOT ALTERED IN THE CORRECTOR LOOP.
+C-----------------------------------------------------------------------
+ 220  M = 0
+      DO 230 I = 1,N
+ 230    Y(I) = YH(I,1)
+      CALL F (NEQ, TN, Y, PAR, SAVF)
+      NFE = NFE + 1
+      IF (IPUP .LE. 0) GO TO 250
+C-----------------------------------------------------------------------
+C IF INDICATED, THE MATRIX P = I - H*EL(1)*J IS REEVALUATED AND
+C PREPROCESSED BEFORE STARTING THE CORRECTOR ITERATION.  IPUP IS SET
+C TO 0 AS AN INDICATOR THAT THIS HAS BEEN DONE.
+C-----------------------------------------------------------------------
+      IPUP = 0
+      RC = ONE
+      NSLP = NST
+      CRATE = 0.7D0
+      CALL PJAC (NEQ, Y, YH, NYH, WM, IWM, EWT, SAVF, ACOR, PAR,
+     1   F, JAC, JOPT)
+      IF (IERPJ .NE. 0) GO TO 430
+ 250   DO 260 I = 1,N
+ 260    ACOR(I) = ZERO
+ 270   IF (MITER .NE. 0) GO TO 350
+C-----------------------------------------------------------------------
+C IN THE CASE OF FUNCTIONAL ITERATION, UPDATE Y DIRECTLY FROM
+C THE RESULT OF THE LAST FUNCTION EVALUATION.
+C (IF ISOPT = 1, FUNCTIONAL ITERATION IS NOT ALLOWED.)
+C-----------------------------------------------------------------------
+      DO 290 I = 1,N
+        SAVF(I) = H*SAVF(I) - YH(I,2)
+ 290    Y(I) = SAVF(I) - ACOR(I)
+      DEL = VNORM (N, Y, EWT)
+      DO 300 I = 1,N
+        Y(I) = YH(I,1) + EL(1)*SAVF(I)
+ 300    ACOR(I) = SAVF(I)
+      GO TO 400
+C-----------------------------------------------------------------------
+C IN THE CASE OF THE CHORD METHOD, COMPUTE THE CORRECTOR ERROR,
+C AND KppSolve THE LINEAR SYSTEM WITH THAT AS RIGHT-HAND SIDE AND
+C P AS COEFFICIENT MATRIX.
+C-----------------------------------------------------------------------
+ 350   DO 360 I = 1,N
+ 360    Y(I) = H*SAVF(I) - (YH(I,2) + ACOR(I))
+      CALL SLVS (WM, IWM, Y, SAVF)
+      IF (IERSL .LT. 0) GO TO 430
+      IF (IERSL .GT. 0) GO TO 410
+      DEL = VNORM (N, Y, EWT)
+      DO 380 I = 1,N
+        ACOR(I) = ACOR(I) + Y(I)
+ 380    Y(I) = YH(I,1) + EL(1)*ACOR(I)
+C-----------------------------------------------------------------------
+C TEST FOR CONVERGENCE.  IF M.GT.0, AN ESTIMATE OF THE CONVERGENCE
+C RATE CONSTANT IS STORED IN CRATE, AND THIS IS USED IN THE TEST.
+C-----------------------------------------------------------------------
+ 400   IF (M .NE. 0) CRATE = MAX(0.2D0*CRATE,DEL/DELP)
+      DCON = DEL*MIN(ONE,1.5D0*CRATE)/(TESCO(2,NQ)*CONIT)
+      IF (DCON .LE. ONE) GO TO 450
+      M = M + 1
+      IF (M .EQ. MAXCOR) GO TO 410
+      IF (M .GE. 2 .AND. DEL .GT. 2.0D0*DELP) GO TO 410
+      DELP = DEL
+      CALL F (NEQ, TN, Y, PAR, SAVF)
+      NFE = NFE + 1
+      GO TO 270
+C-----------------------------------------------------------------------
+C THE CORRECTOR ITERATION FAILED TO CONVERGE IN MAXCOR TRIES.
+C IF MITER .NE. 0 AND THE JACOBIAN IS OUT OF DATE, PJAC IS CALLED FOR
+C THE NEXT TRY.  OTHERWISE THE YH ARRAY IS RETRACTED TO ITS VALUES
+C BEFORE PREDICTION, AND H IS REDUCED, IF POSSIBLE.  IF H CANNOT BE
+C REDUCED OR MXNCF FAILURES HAVE OCCURRED, EXIT WITH KFLAG = -2.
+C-----------------------------------------------------------------------
+ 410   IF (MITER .EQ. 0 .OR. JCUR .EQ. 1) GO TO 430
+      ICF = 1
+      IPUP = MITER
+      GO TO 220
+ 430   ICF = 2
+      NCF = NCF + 1
+      RMAX = 2.0D0
+      TN = TOLD
+      I1 = NQNYH + 1
+      DO 445 JB = 1,NQ
+        I1 = I1 - NYH
+        DO 440 I = I1,NQNYH
+ 440      YH1(I) = YH1(I) - YH1(I+NYH)
+ 445    CONTINUE
+      IF (IERPJ .LT. 0 .OR. IERSL .LT. 0) GO TO 680
+      IF (ABS(H) .LE. HMIN*1.00001D0) GO TO 670
+      IF (NCF .EQ. MXNCF) GO TO 670
+      RH = 0.25D0
+      IPUP = MITER
+      IREDO = 1
+      GO TO 170
+C-----------------------------------------------------------------------
+C THE CORRECTOR HAS CONVERGED.
+C THE LOCAL ERROR TEST IS MADE AND CONTROL PASSES TO STATEMENT 500
+C IF IT FAILS. OTHERWISE, STESA IS CALLED (ISOPT = 1) TO PERFORM
+C SENSITIVITY CALCULATIONS AT CURRENT STEP SIZE AND ORDER.
+C-----------------------------------------------------------------------
+ 450   CONTINUE
+      IF (M .EQ. 0) DSM = DEL/TESCO(2,NQ)
+      IF (M .GT. 0) DSM = VNORM (N, ACOR, EWT)/TESCO(2,NQ)
+      IF (DSM .GT. ONE) GO TO 500
+C
+      IF (ISOPT .EQ. 0) GO TO 460
+C-----------------------------------------------------------------------
+C CALL STESA TO PERFORM EXPLICIT SENSITIVITY ANALYSIS.
+C IF THE LOCAL ERROR TEST FAILS (WITHIN STESA) FOR ANY SOLUTION VECTOR,
+C KFLAGS IS SET .LT. 0 AND CONTROL PASSES TO STATEMENT 500 UPON RETURN.
+C IN EITHER CASE, JCUR IS SET TO ZERO TO SIGNAL THAT THE JACOBIAN MAY
+C NEED UPDATING LATER.
+C-----------------------------------------------------------------------
+      CALL STESA (NEQ, Y, N, NSV, YH, WM, IWM, EWT, SAVF, ACOR,
+     1   PAR, NRS, F, JAC, DF, PJAC, PDF, SLVS)
+      IF (IERPJ .NE. 0 .OR. IERSL .NE. 0) GO TO 680
+      IF (KFLAGS .LT. 0) GO TO 500
+C-----------------------------------------------------------------------
+C AFTER A SUCCESSFUL STEP, UPDATE THE YH ARRAY.
+C CONSIDER CHANGING H IF IALTH = 1.  OTHERWISE DECREASE IALTH BY 1.
+C IF IALTH IS THEN 1 AND NQ .LT. MAXORD, THEN ACOR IS SAVED FOR
+C USE IN A POSSIBLE ORDER INCREASE ON THE NEXT STEP.
+C IF A CHANGE IN H IS CONSIDERED, AN INCREASE OR DECREASE IN ORDER
+C BY ONE IS CONSIDERED ALSO.  A CHANGE IN H IS MADE ONLY IF IT IS BY A
+C FACTOR OF AT LEAST 1.1.  IF NOT, IALTH IS SET TO 3 TO PREVENT
+C TESTING FOR THAT MANY STEPS.
+C-----------------------------------------------------------------------
+ 460   JCUR = 0
+      KFLAG = 0
+      IREDO = 0
+      NST = NST + 1
+      HU = H
+      NQU = NQ
+      DO 470 J = 1,L
+        DO 470 I = 1,NYH
+ 470      YH(I,J) = YH(I,J) + EL(J)*ACOR(I)
+      IALTH = IALTH - 1
+      IF (IALTH .EQ. 0) GO TO 520
+      IF (IALTH .GT. 1) GO TO 700
+      IF (L .EQ. LMAX) GO TO 700
+      DO 490 I = 1,NYH
+ 490    YH(I,LMAX) = ACOR(I)
+      GO TO 700
+C-----------------------------------------------------------------------
+C THE ERROR TEST FAILED IN EITHER STODE OR STESA.
+C KFLAG KEEPS TRACK OF MULTIPLE FAILURES.
+C RESTORE TN AND THE YH ARRAY TO THEIR PREVIOUS VALUES, AND PREPARE
+C TO TRY THE STEP AGAIN.  COMPUTE THE OPTIMUM STEP SIZE FOR THIS OR
+C ONE LOWER ORDER.  AFTER 2 OR MORE FAILURES, H IS FORCED TO DECREASE
+C BY A FACTOR OF 0.2 OR LESS.
+C-----------------------------------------------------------------------
+ 500  KFLAG = KFLAG - 1
+      JCUR = 0
+      TN = TOLD
+      I1 = NQNYH + 1
+      DO 515 JB = 1,NQ
+        I1 = I1 - NYH
+        DO 510 I = I1,NQNYH
+ 510      YH1(I) = YH1(I) - YH1(I+NYH)
+ 515    CONTINUE
+      RMAX = 2.0D0
+      IF (ABS(H) .LE. HMIN*1.00001D0) GO TO 660
+      IF (KFLAG .LE. -3) GO TO 640
+      IREDO = 2
+      RHUP = ZERO
+      GO TO 540
+C-----------------------------------------------------------------------
+*
+C REGARDLESS OF THE SUCCESS OR FAILURE OF THE STEP, FACTORS
+C RHDN, RHSM, AND RHUP ARE COMPUTED, BY WHICH H COULD BE MULTIPLIED
+C AT ORDER NQ - 1, ORDER NQ, OR ORDER NQ + 1, RESPECTIVELY.
+C IN THE CASE OF FAILURE, RHUP = 0.0 TO AVOID AN ORDER INCREASE.
+C THE LARGEST OF THESE IS DETERMINED AND THE NEW ORDER CHOSEN
+C ACCORDINGLY.  IF THE ORDER IS TO BE INCREASED, WE COMPUTE ONE
+C ADDITIONAL SCALED DERIVATIVE.
+C FOR ISOPT = 1, DUPS AND DSMS ARE LOADED WITH THE LARGEST RMS-NORMS
+C OBTAINED BY CONSIDERING SEPARATELY THE SENSITIVITY SOLUTION VECTORS.
+C-----------------------------------------------------------------------
+ 520   RHUP = ZERO
+      IF (L .EQ. LMAX) GO TO 540
+      DO 530 I = 1,N
+ 530    SAVF(I) = ACOR(I) - YH(I,LMAX)
+      DUP = VNORM (N, SAVF, EWT)/TESCO(3,NQ)
+      DUP = MAX(DUP,DUPS)
+      EXUP = ONE/REAL(L+1)
+      RHUP = ONE/(1.4D0*DUP**EXUP + 0.0000014D0)
+ 540   EXSM = ONE/REAL(L)
+      DSM = MAX(DSM,DSMS)
+      RHSM = ONE/(1.2D0*DSM**EXSM + 0.0000012D0)
+      RHDN = ZERO
+      IF (NQ .EQ. 1) GO TO 560
+      JPOINT = 1
+      DO 550 J = 1,NSV
+        DDN = VNORM (N, YH(JPOINT,L), EWT(JPOINT))/TESCO(1,NQ)
+        DDNS = MAX(DDNS,DDN)
+        JPOINT = JPOINT + N
+ 550  CONTINUE
+      DDN = DDNS
+      DDNS = ZERO
+      EXDN = ONE/REAL(NQ)
+      RHDN = ONE/(1.3D0*DDN**EXDN + 0.0000013D0)
+ 560   IF (RHSM .GE. RHUP) GO TO 570
+      IF (RHUP .GT. RHDN) GO TO 590
+      GO TO 580
+ 570   IF (RHSM .LT. RHDN) GO TO 580
+      NEWQ = NQ
+      RH = RHSM
+      GO TO 620
+ 580   NEWQ = NQ - 1
+      RH = RHDN
+      IF (KFLAG .LT. 0 .AND. RH .GT. ONE) RH = ONE
+      GO TO 620
+ 590   NEWQ = L
+      RH = RHUP
+      IF (RH .LT. 1.1D0) GO TO 610
+      R = EL(L)/REAL(L)
+      DO 600 I = 1,NYH
+ 600    YH(I,NEWQ+1) = ACOR(I)*R
+      GO TO 630
+ 610   IALTH = 3
+      GO TO 700
+ 620   IF ((KFLAG .EQ. 0) .AND. (RH .LT. 1.1D0)) GO TO 610
+      IF (KFLAG .LE. -2) RH = MIN(RH,0.2D0)
+C-----------------------------------------------------------------------
+C IF THERE IS A CHANGE OF ORDER, RESET NQ, L, AND THE COEFFICIENTS.
+C IN ANY CASE H IS RESET ACCORDING TO RH AND THE YH ARRAY IS RESCALED.
+C THEN EXIT FROM 690 IF THE STEP WAS OK, OR REDO THE STEP OTHERWISE.
+C-----------------------------------------------------------------------
+      IF (NEWQ .EQ. NQ) GO TO 170
+ 630   NQ = NEWQ
+      L = NQ + 1
+      IRET = 2
+      GO TO 150
+C-----------------------------------------------------------------------
+C CONTROL REACHES THIS SECTION IF 3 OR MORE FAILURES HAVE OCCURED.
+C IF 10 FAILURES HAVE OCCURRED, EXIT WITH KFLAG = -1.
+C IT IS ASSUMED THAT THE DERIVATIVES THAT HAVE ACCUMULATED IN THE
+C YH ARRAY HAVE ERRORS OF THE WRONG ORDER.  HENCE THE FIRST
+C DERIVATIVE IS RECOMPUTED, AND THE ORDER IS SET TO 1.  THEN
+C H IS REDUCED BY A FACTOR OF 10, AND THE STEP IS RETRIED,
+C UNTIL IT SUCCEEDS OR H REACHES HMIN.
+C-----------------------------------------------------------------------
+ 640   IF (KFLAG .EQ. -10) GO TO 660
+      RH = 0.1D0
+      RH = MAX(HMIN/ABS(H),RH)
+      H = H*RH
+      DO 645 I = 1,NYH
+ 645    Y(I) = YH(I,1)
+      CALL F (NEQ, TN, Y, PAR, SAVF)
+      NFE = NFE + 1
+      IF (ISOPT .EQ. 0) GO TO 649
+      CALL SPRIME (NEQ, Y, YH, NYH, N, NSV, WM, IWM, EWT, SAVF, ACOR,
+     1   ACOR(N+1), PAR, F, JAC, DF, PJAC, PDF)
+      IF (IERSP .LT. 0) GO TO 680
+      DO 646 I = N+1,NYH
+ 646    YH(I,2) = H*YH(I,2)
+ 649  DO 650 I = 1,N
+ 650    YH(I,2) = H*SAVF(I)
+      IPUP = MITER
+      IALTH = 5
+      IF (NQ .EQ. 1) GO TO 200
+      NQ = 1
+      L = 2
+      IRET = 3
+      GO TO 150
+C-----------------------------------------------------------------------
+C ALL RETURNS ARE MADE THROUGH THIS SECTION.  H IS SAVED IN HOLD
+C TO ALLOW THE CALLER TO CHANGE H ON THE NEXT STEP.
+C-----------------------------------------------------------------------
+ 660   KFLAG = -1
+      GO TO 720
+ 670   KFLAG = -2
+      GO TO 720
+ 680   KFLAG = -3
+      GO TO 720
+ 690   RMAX = 10.0D0
+ 700   R = ONE/TESCO(2,NQU)
+      DO 710 I = 1,NYH
+ 710    ACOR(I) = ACOR(I)*R
+ 720   HOLD = H
+      JSTART = 1
+      RETURN
+C----------------------- END OF SUBROUTINE STODE -----------------------
+      END
+      SUBROUTINE CFODE (METH, ELCO, TESCO)
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+      DIMENSION ELCO(13,12), TESCO(3,12)
+C-----------------------------------------------------------------------
+C CFODE IS CALLED BY THE INTEGRATOR ROUTINE TO SET COEFFICIENTS
+C NEEDED THERE.  THE COEFFICIENTS FOR THE CURRENT METHOD, AS
+C GIVEN BY THE VALUE OF METH, ARE SET FOR ALL ORDERS AND SAVED.
+C THE MAXIMUM ORDER ASSUMED HERE IS 12 IF METH = 1 AND 5 IF METH = 2.
+C (A SMALLER VALUE OF THE MAXIMUM ORDER IS ALSO ALLOWED.)
+C CFODE IS CALLED ONCE AT THE BEGINNING OF THE PROBLEM,
+C AND IS NOT CALLED AGAIN UNLESS AND UNTIL METH IS CHANGED.
+C
+C THE ELCO ARRAY CONTAINS THE BASIC METHOD COEFFICIENTS.
+C THE COEFFICIENTS EL(I), 1 .LE. I .LE. NQ+1, FOR THE METHOD OF
+C ORDER NQ ARE STORED IN ELCO(I,NQ).  THEY ARE GIVEN BY A GENETRATING
+C POLYNOMIAL, I.E.,
+C    L(X) = EL(1) + EL(2)*X + ... + EL(NQ+1)*X**NQ.
+C FOR THE IMPLICIT ADAMS METHODS, L(X) IS GIVEN BY
+C    DL/DX = (X+1)*(X+2)*...*(X+NQ-1)/FACTORIAL(NQ-1),    L(-1) = 0.
+C FOR THE BDF METHODS, L(X) IS GIVEN BY
+C    L(X) = (X+1)*(X+2)* ... *(X+NQ)/K,
+C WHERE        K = FACTORIAL(NQ)*(1 + 1/2 + ... + 1/NQ).
+C
+C THE TESCO ARRAY CONTAINS TEST CONSTANTS USED FOR THE
+C LOCAL ERROR TEST AND THE SELECTION OF STEP SIZE AND/OR ORDER.
+C AT ORDER NQ, TESCO(K,NQ) IS USED FOR THE SELECTION OF STEP
+C SIZE AT ORDER NQ - 1 IF K = 1, AT ORDER NQ IF K = 2, AND AT ORDER
+C NQ + 1 IF K = 3.
+C-----------------------------------------------------------------------
+      DIMENSION PC(12)
+      PARAMETER (ONE=1.0D0,ZERO=0.0D0)
+C
+      GO TO (100, 200), METH
+C
+ 100   ELCO(1,1) = ONE
+      ELCO(2,1) = ONE
+      TESCO(1,1) = ZERO
+      TESCO(2,1) = 2.0D0
+      TESCO(1,2) = ONE
+      TESCO(3,12) = ZERO
+      PC(1) = ONE
+      RQFAC = ONE
+      DO 140 NQ = 2,12
+C-----------------------------------------------------------------------
+C THE PC ARRAY WILL CONTAIN THE COEFFICIENTS OF THE POLYNOMIAL
+C    P(X) = (X+1)*(X+2)*...*(X+NQ-1).
+C INITIALLY, P(X) = 1.
+C-----------------------------------------------------------------------
+        RQ1FAC = RQFAC
+        RQFAC = RQFAC/REAL(NQ)
+        NQM1 = NQ - 1
+        FNQM1 = REAL(NQM1)
+        NQP1 = NQ + 1
+C FORM COEFFICIENTS OF P(X)*(X+NQ-1). ----------------------------------
+        PC(NQ) = ZERO
+        DO 110 IB = 1,NQM1
+          I = NQP1 - IB
+ 110      PC(I) = PC(I-1) + FNQM1*PC(I)
+        PC(1) = FNQM1*PC(1)
+C COMPUTE INTEGRAL, -1 TO 0, OF P(X) AND X*P(X). -----------------------
+        PINT = PC(1)
+        XPIN = PC(1)/2.0D0
+        TSIGN = ONE
+        DO 120 I = 2,NQ
+          TSIGN = -TSIGN
+          PINT = PINT + TSIGN*PC(I)/REAL(I)
+ 120      XPIN = XPIN + TSIGN*PC(I)/REAL(I+1)
+C STORE COEFFICIENTS IN ELCO AND TESCO. --------------------------------
+        ELCO(1,NQ) = PINT*RQ1FAC
+        ELCO(2,NQ) = ONE
+        DO 130 I = 2,NQ
+ 130      ELCO(I+1,NQ) = RQ1FAC*PC(I)/REAL(I)
+        AGAMQ = RQFAC*XPIN
+        RAGQ = ONE/AGAMQ
+        TESCO(2,NQ) = RAGQ
+        IF (NQ .LT. 12) TESCO(1,NQP1) = RAGQ*RQFAC/REAL(NQP1)
+        TESCO(3,NQM1) = RAGQ
+ 140    CONTINUE
+      RETURN
+C
+ 200   PC(1) = ONE
+      RQ1FAC = ONE
+      DO 230 NQ = 1,5
+C-----------------------------------------------------------------------
+C THE PC ARRAY WILL CONTAIN THE COEFFICIENTS OF THE POLYNOMIAL
+C    P(X) = (X+1)*(X+2)*...*(X+NQ).
+C INITIALLY, P(X) = 1.
+C-----------------------------------------------------------------------
+        FNQ = REAL(NQ)
+        NQP1 = NQ + 1
+C FORM COEFFICIENTS OF P(X)*(X+NQ). ------------------------------------
+        PC(NQP1) = ZERO
+        DO 210 IB = 1,NQ
+          I = NQ + 2 - IB
+ 210      PC(I) = PC(I-1) + FNQ*PC(I)
+        PC(1) = FNQ*PC(1)
+C STORE COEFFICIENTS IN ELCO AND TESCO. --------------------------------
+        DO 220 I = 1,NQP1
+ 220      ELCO(I,NQ) = PC(I)/PC(2)
+        ELCO(2,NQ) = ONE
+        TESCO(1,NQ) = RQ1FAC
+        TESCO(2,NQ) = REAL(NQP1)/ELCO(1,NQ)
+        TESCO(3,NQ) = REAL(NQ+2)/ELCO(1,NQ)
+        RQ1FAC = RQ1FAC/FNQ
+ 230    CONTINUE
+      RETURN
+C----------------------- END OF SUBROUTINE CFODE -----------------------
+      END
+      SUBROUTINE SOLSY (WM, IWM, X, TEM)
+C      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+      INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Sparse.h'
+      DIMENSION WM(*), IWM(*), X(*), TEM(*)
+      PARAMETER (ZERO=0.0D0,ONE=1.0D0)
+      COMMON /ODE001/ ROWND, ROWNS(173),
+     2   RDUM1(37), EL0, H, RDUM2(6),
+     3   IOWND(14), IOWNS(4),
+     4   IDUM1(4), IERSL, IDUM2(5),
+     5   MITER, IDUM3(4), N, IDUM4(5)
+C-----------------------------------------------------------------------
+C THIS ROUTINE MANAGES THE SOLUTION OF THE LINEAR SYSTEM ARISING FROM
+C A CHORD ITERATION.  IT IS CALLED IF MITER .NE. 0.
+C IF MITER IS 1 OR 2, IT CALLS DGESL TO ACCOMPLISH THIS.
+C IF MITER = 3 IT UPDATES THE COEFFICIENT H*EL0 IN THE DIAGONAL
+C MATRIX, AND THEN COMPUTES THE SOLUTION.
+C IF MITER IS 4 OR 5, IT CALLS DGBSL.
+C COMMUNICATION WITH SOLSY USES THE FOLLOWING VARIABLES..
+C WM   = REAL WORK SPACE CONTAINING THE INVERSE DIAGONAL MATRIX IF
+C        MITER = 3 AND THE LU DECOMPOSITION OF THE MATRIX OTHERWISE.
+C        STORAGE OF MATRIX ELEMENTS STARTS AT WM(3).
+C        WM ALSO CONTAINS THE FOLLOWING MATRIX-RELATED DATA..
+C        WM(1) = SQRT(UROUND) (NOT USED HERE),
+C        WM(2) = HL0, THE PREVIOUS VALUE OF H*EL0, USED IF MITER = 3.
+C IWM  = INTEGER WORK SPACE CONTAINING PIVOT INFORMATION, STARTING AT
+C        IWM(21), IF MITER IS 1, 2, 4, OR 5.  IWM ALSO CONTAINS BAND
+C        PARAMETERS ML = IWM(1) AND MU = IWM(2) IF MITER IS 4 OR 5.
+C X    = THE RIGHT-HAND SIDE VECTOR ON INPUT, AND THE SOLUTION VECTOR
+C        ON OUTPUT, OF LENGTH N.
+C TEM  = VECTOR OF WORK SPACE OF LENGTH N, NOT USED IN THIS VERSION.
+C IERSL = OUTPUT FLAG (IN COMMON).  IERSL = 0 IF NO TROUBLE OCCURRED.
+C        IERSL = 1 IF A SINGULAR MATRIX AROSE WITH MITER = 3.
+C THIS ROUTINE ALSO USES THE COMMON VARIABLES EL0, H, MITER, AND N.
+C-----------------------------------------------------------------------
+      IERSL = 0
+      GO TO (100, 100, 300, 400, 400), MITER
+C 100   CALL DGESL (WM(3), N, N, IWM(21), X, 0)
+ 100   CALL KppSolve (WM(3), X)
+      RETURN
+C
+ 300   PHL0 = WM(2)
+      HL0 = H*EL0
+      WM(2) = HL0
+      IF (HL0 .EQ. PHL0) GO TO 330
+      R = HL0/PHL0
+      DO 320 I = 1,N
+        DI = ONE - R*(ONE - ONE/WM(I+2))
+        IF (ABS(DI) .EQ. ZERO) GO TO 390
+ 320    WM(I+2) = ONE/DI
+ 330   DO 340 I = 1,N
+ 340    X(I) = WM(I+2)*X(I)
+      RETURN
+ 390   IERSL = 1
+      RETURN
+C
+ 400   ML = IWM(1)
+      MU = IWM(2)
+      MEBAND = 2*ML + MU + 1
+      CALL DGBSL (WM(3), MEBAND, N, ML, MU, IWM(21), X, 0)
+      RETURN
+C----------------------- END OF SUBROUTINE SOLSY -----------------------
+      END
+      SUBROUTINE EWSET (N, ITOL, RTOL, ATOL, YCUR, EWT)
+C-----------------------------------------------------------------------
+C THIS SUBROUTINE SETS THE ERROR WEIGHT VECTOR EWT ACCORDING TO
+C    EWT(I) = RTOL(I)*ABS(YCUR(I)) + ATOL(I),  I = 1,...,N,
+C WITH THE SUBSCRIPT ON RTOL AND/OR ATOL POSSIBLY REPLACED BY 1 ABOVE,
+C DEPENDING ON THE VALUE OF ITOL.
+C-----------------------------------------------------------------------
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+      DIMENSION RTOL(*), ATOL(*), YCUR(N), EWT(N)
+      RTOLI = RTOL(1)
+      ATOLI = ATOL(1)
+      DO 10 I = 1,N
+        IF (ITOL .GE. 3) RTOLI = RTOL(I)
+        IF (ITOL .EQ. 2 .OR. ITOL .EQ. 4) ATOLI = ATOL(I)
+        EWT(I) = RTOLI*ABS(YCUR(I)) + ATOLI
+ 10     CONTINUE
+      RETURN
+C----------------------- END OF SUBROUTINE EWSET -----------------------
+      END
+      DOUBLE PRECISION FUNCTION VNORM (N, V, W)
+C-----------------------------------------------------------------------
+C THIS FUNCTION ROUTINE COMPUTES THE WEIGHTED ROOT-MEAN-SQUARE NORM
+C OF THE VECTOR OF LENGTH N CONTAINED IN THE ARRAY V, WITH WEIGHTS
+C CONTAINED IN THE ARRAY W OF LENGTH N..
+C  VNORM = SQRT( (1/N) * SUM( V(I)*W(I) )**2 )
+C PROTECTION FOR UNDERFLOW/OVERFLOW IS ACCOMPLISHED USING TWO
+C CONSTANTS WHICH ARE HOPEFULLY APPLICABLE FOR ALL MACHINES.
+C THESE ARE:
+C     CUTLO = maximum of SQRT(U/EPS)  over all known machines
+C     CUTHI = minimum of SQRT(Z)      over all known machines
+C WHERE
+C     EPS = smallest number s.t. EPS + 1 .GT. 1
+C     U   = smallest positive number (underflow limit)
+C     Z   = largest number (overflow limit)
+C
+C DETAILS OF THE ALGORITHM AND OF VALUES OF CUTLO AND CUTHI ARE
+C FOUND IN THE BLAS ROUTINE SNRM2 (SEE ALSO ALGORITHM 539, TRANS.
+C MATH. SOFTWARE, VOL. 5 NO. 3, 1979, 308-323.
+C FOR SINGLE PRECISION, THE FOLLOWING VALUES SHOULD BE UNIVERSAL:
+C     DATA CUTLO,CUTHI /4.441E-16,1.304E19/
+C FOR DOUBLE PRECISION, USE
+C     DATA CUTLO,CUTHI /8.232D-11,1.304D19/
+C
+C-----------------------------------------------------------------------
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+      INTEGER NEXT,I,J,N
+      DIMENSION V(N),W(N)
+      DATA CUTLO,CUTHI /8.232D-11,1.304D19/
+      DATA ZERO,ONE/0.0D0,1.0D0/
+C  BLAS ALGORITHM
+      NEXT = 1
+      SUM = ZERO
+      I = 1
+20    SX = V(I)*W(I)
+      GO TO (30,40,70,80),NEXT
+30    IF (ABS(SX).GT.CUTLO) GO TO 110
+      NEXT = 2
+      XMAX = ZERO
+40    IF (SX.EQ.ZERO) GO TO 130
+      IF (ABS(SX).GT.CUTLO) GO TO 110
+      NEXT = 3
+      GO TO 60
+50    I=J
+      NEXT = 4
+      SUM = (SUM/SX)/SX
+60    XMAX = ABS(SX)
+      GO TO 90
+70    IF(ABS(SX).GT.CUTLO) GO TO 100
+80    IF(ABS(SX).LE.XMAX) GO TO 90
+      SUM = ONE + SUM * (XMAX/SX)**2
+      XMAX = ABS(SX)
+      GO TO 130
+90    SUM = SUM + (SX/XMAX)**2
+      GO TO 130
+100   SUM = (SUM*XMAX)*XMAX
+110   HITEST = CUTHI/REAL(N)
+      DO 120 J = I,N
+         SX = V(J)*W(J)
+         IF(ABS(SX).GE.HITEST) GO TO 50
+         SUM = SUM + SX**2
+120   CONTINUE
+      VNORM = SQRT(SUM)
+      GO TO 140
+130   CONTINUE
+      I = I + 1
+      IF (I.LE.N) GO TO 20
+      VNORM = XMAX * SQRT(SUM)
+140   CONTINUE
+      RETURN
+C----------------------- END OF FUNCTION VNORM -------------------------
+      END
+      SUBROUTINE SVCOM (RSAV, ISAV)
+C-----------------------------------------------------------------------
+C THIS ROUTINE STORES IN RSAV AND ISAV THE CONTENTS OF COMMON BLOCKS
+C ODE001, ODE002 AND EH0001, WHICH ARE USED INTERNALLY IN THE ODESSA
+C PACKAGE.
+C RSAV = REAL ARRAY OF LENGTH 222 OR MORE.
+C ISAV = INTEGER ARRAY OF LENGTH 52 OR MORE.
+C-----------------------------------------------------------------------
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+      DIMENSION RSAV(*), ISAV(*)
+      COMMON /ODE001/ RODE1(219), IODE1(39)
+      COMMON /ODE002/ RODE2(3), IODE2(11)
+      COMMON /EH0001/ IEH(2)
+      DATA LRODE1/219/, LIODE1/39/, LRODE2/3/, LIODE2/11/
+C
+      DO 10 I = 1,LRODE1
+ 10     RSAV(I) = RODE1(I)
+      DO 20 I = 1,LRODE2
+        J = LRODE1 + I
+ 20     RSAV(J) = RODE2(I)
+      DO 30 I = 1,LIODE1
+ 30     ISAV(I) = IODE1(I)
+      DO 40 I = 1,LIODE2
+        J = LIODE1 + I
+ 40     ISAV(J) = IODE2(I)
+      ISAV(LIODE1+LIODE2+1) = IEH(1)
+      ISAV(LIODE1+LIODE2+2) = IEH(2)
+      RETURN
+C----------------------- END OF SUBROUTINE SVCOM -----------------------
+      END
+      SUBROUTINE RSCOM (RSAV, ISAV)
+C-----------------------------------------------------------------------
+C THIS ROUTINE RESTORES FROM RSAV AND ISAV THE CONTENTS OF COMMON BLOCKS
+C ODE001, ODE002 AND EH0001, WHICH ARE USED INTERNALLY IN THE ODESSSA
+C PACKAGE.  THIS PRESUMES THAT RSAV AND ISAV WERE LOADED BY MEANS
+C OF SUBROUTINE SVCOM OR THE EQUIVALENT.
+C-----------------------------------------------------------------------
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+      DIMENSION RSAV(*), ISAV(*)
+      COMMON /ODE001/ RODE1(219), IODE1(39)
+      COMMON /ODE002/ RODE2(3), IODE2(11)
+      COMMON /EH0001/ IEH(2)
+      DATA LRODE1/219/, LIODE1/39/, LRODE2/3/, LIODE2/11/
+C
+      DO 10 I = 1,LRODE1
+ 10     RODE1(I) = RSAV(I)
+      DO 20 I = 1,LRODE2
+        J = LRODE1 + I
+ 20     RODE2(I) = RSAV(J)
+      DO 30 I = 1,LIODE1
+ 30     IODE1(I) = ISAV(I)
+      DO 40 I = 1,LODE2
+        J = LIODE1 + I
+ 40     IODE2(I) = ISAV(J)
+      IEH(1) = ISAV(LIODE1+LIODE2+1)
+      IEH(2) = ISAV(LIODE1+LIODE2+2)
+      RETURN
+C----------------------- END OF SUBROUTINE RSCOM -----------------------
+      END
+      SUBROUTINE DGEFA(A,LDA,N,IPVT,INFO)
+      INTEGER LDA,N,IPVT(*),INFO
+      DOUBLE PRECISION A(LDA,*)
+C
+C    DGEFA FACTORS A DOUBLE PRECISION MATRIX BY GAUSSIAN ELIMINATION.
+C
+C    DGEFA IS USUALLY CALLED BY DGECO, BUT IT CAN BE CALLED
+C    DIRECTLY WITH A SAVING IN TIME IF  RCOND  IS NOT NEEDED.
+C    (TIME FOR DGECO) = (1 + 9/N)*(TIME FOR DGEFA) .
+C
+C    ON ENTRY
+C
+C       A       DOUBLE PRECISION(LDA, N)
+C               THE MATRIX TO BE FACTORED.
+C
+C       LDA     INTEGER
+C               THE LEADING DIMENSION OF THE ARRAY  A .
+C
+C       N       INTEGER
+C               THE ORDER OF THE MATRIX  A .
+C
+C    ON RETURN
+C
+C       A       AN UPPER TRIANGULAR MATRIX AND THE MULTIPLIERS
+C               WHICH WERE USED TO OBTAIN IT.
+C               THE FACTORIZATION CAN BE WRITTEN  A = L*U  WHERE
+C               L  IS A PRODUCT OF PERMUTATION AND UNIT LOWER
+C               TRIANGULAR MATRICES AND  U  IS UPPER TRIANGULAR.
+C
+C       IPVT    INTEGER(N)
+C               AN INTEGER VECTOR OF PIVOT INDICES.
+C
+C       INFO    INTEGER
+C               = 0  NORMAL VALUE.
+C               = K  IF  U(K,K) .EQ. 0.0 .  THIS IS NOT AN ERROR
+C                    CONDITION FOR THIS SUBROUTINE, BUT IT DOES
+C                    INDICATE THAT DGESL OR DGEDI WILL DIVIDE BY ZERO
+C                    IF CALLED.  USE  RCOND  IN DGECO FOR A RELIABLE
+C                    INDICATION OF SINGULARITY.
+C
+C    LINPACK. THIS VERSION DATED 08/14/78 .
+C    CLEVE MOLER, UNIVERSITY OF NEW MEXICO, ARGONNE NATIONAL LAB.
+C
+C    SUBROUTINES AND FUNCTIONS
+C
+C    BLAS DAXPY,DSCAL,IDAMAX
+C
+C    INTERNAL VARIABLES
+C
+      DOUBLE PRECISION T
+      INTEGER IDAMAX,J,K,KP1,L,NM1
+C
+C
+C     GAUSSIAN ELIMINATION WITH PARTIAL PIVOTING
+C
+      INFO = 0
+      NM1 = N - 1
+      IF (NM1 .LT. 1) GO TO 70
+      DO 60 K = 1, NM1
+         KP1 = K + 1
+C
+C        FIND L = PIVOT INDEX
+C
+         L = IDAMAX(N-K+1,A(K,K),1) + K - 1
+         IPVT(K) = L
+C
+C        ZERO PIVOT IMPLIES THIS COLUMN ALREADY TRIANGULARIZED
+C
+         IF (A(L,K) .EQ. 0.0D0) GO TO 40
+C
+C           INTERCHANGE IF NECESSARY
+C
+            IF (L .EQ. K) GO TO 10
+               T = A(L,K)
+               A(L,K) = A(K,K)
+               A(K,K) = T
+  10        CONTINUE
+C
+C           COMPUTE MULTIPLIERS
+C
+            T  = -1.0D0/A(K,K)
+            CALL DSCAL(N-K,T,A(K+1,K),1)
+C
+C           ROW ELIMINATION WITH COLUMN INDEXING
+C
+            DO 30 J = KP1, N
+               T = A(L,J)
+               IF (L .EQ. K) GO TO 20
+                  A(L,J) = A(K,J)
+                  A(K,J) = T
+  20           CONTINUE
+               CALL DAXPY(N-K,T,A(K+1,K),1,A(K+1,J),1)
+  30        CONTINUE
+         GO TO 50
+  40     CONTINUE
+            INFO = K
+  50     CONTINUE
+  60  CONTINUE
+  70  CONTINUE
+      IPVT(N) = N
+      IF (A(N,N) .EQ. 0.0D0) INFO = N
+      RETURN
+      END
+      SUBROUTINE DGESL(A,LDA,N,IPVT,B,JOB)
+      INTEGER LDA,N,IPVT(*),JOB
+      DOUBLE PRECISION A(LDA,*),B(*)
+C
+C     DGESL KppSolveS THE DOUBLE PRECISION SYSTEM
+C     A * X = B  OR  TRANS(A) * X = B
+C    USING THE FACTORS COMPUTED BY DGECO OR DGEFA.
+C
+C    ON ENTRY
+C
+C       A       DOUBLE PRECISION(LDA, N)
+C               THE OUTPUT FROM DGECO OR DGEFA.
+C
+C       LDA     INTEGER
+C               THE LEADING DIMENSION OF THE ARRAY  A .
+C
+C       N       INTEGER
+C               THE ORDER OF THE MATRIX  A .
+C
+C       IPVT    INTEGER(N)
+C               THE PIVOT VECTOR FROM DGECO OR DGEFA.
+C
+C       B       DOUBLE PRECISION(N)
+C               THE RIGHT HAND SIDE VECTOR.
+C
+C       JOB     INTEGER
+C               = 0         TO KppSolve  A*X = B ,
+C               = NONZERO   TO KppSolve  TRANS(A)*X = B  WHERE
+C                           TRANS(A)  IS THE TRANSPOSE.
+C
+C    ON RETURN
+C
+C       B       THE SOLUTION VECTOR  X .
+C
+C    ERROR CONDITION
+C
+C       A DIVISION BY ZERO WILL OCCUR IF THE INPUT FACTOR CONTAINS A
+C       ZERO ON THE DIAGONAL.  TECHNICALLY THIS INDICATES SINGULARITY
+C       BUT IT IS OFTEN CAUSED BY IMPROPER ARGUMENTS OR IMPROPER
+C       SETTING OF LDA .  IT WILL NOT OCCUR IF THE SUBROUTINES ARE
+C       CALLED CORRECTLY AND IF DGECO HAS SET RCOND .GT. 0.0
+C       OR DGEFA HAS SET INFO .EQ. 0 .
+C
+C    TO COMPUTE  INVERSE(A) * C  WHERE  C  IS A MATRIX
+C    WITH  P  COLUMNS
+C          CALL DGECO(A,LDA,N,IPVT,RCOND,Z)
+C          IF (RCOND IS TOO SMALL) GO TO ...
+C          DO 10 J = 1, P
+C             CALL DGESL(A,LDA,N,IPVT,C(1,J),0)
+C       10 CONTINUE
+C
+C    LINPACK. THIS VERSION DATED 08/14/78 .
+C    CLEVE MOLER, UNIVERSITY OF NEW MEXICO, ARGONNE NATIONAL LAB.
+C
+C    SUBROUTINES AND FUNCTIONS
+C
+C    BLAS DAXPY,DDOT
+C
+C    INTERNAL VARIABLES
+C
+      DOUBLE PRECISION DDOT,T
+      INTEGER K,KB,L,NM1
+C
+      NM1 = N - 1
+      IF (JOB .NE. 0) GO TO 50
+C
+C        JOB = 0 , KppSolve  A * X = B
+C        FIRST KppSolve  L*Y = B
+C
+         IF (NM1 .LT. 1) GO TO 30
+         DO 20 K = 1, NM1
+            L = IPVT(K)
+            T = B(L)
+            IF (L .EQ. K) GO TO 10
+               B(L) = B(K)
+               B(K) = T
+  10        CONTINUE
+            CALL DAXPY(N-K,T,A(K+1,K),1,B(K+1),1)
+  20     CONTINUE
+  30     CONTINUE
+C
+C        NOW KppSolve  U*X = Y
+C
+         DO 40 KB = 1, N
+            K = N + 1 - KB
+            B(K) = B(K)/A(K,K)
+            T = -B(K)
+            CALL DAXPY(K-1,T,A(1,K),1,B(1),1)
+  40     CONTINUE
+      GO TO 100
+  50  CONTINUE
+C
+C        JOB = NONZERO, KppSolve  TRANS(A) * X = B
+C        FIRST KppSolve  TRANS(U)*Y = B
+C
+         DO 60 K = 1, N
+            T = DDOT(K-1,A(1,K),1,B(1),1)
+            B(K) = (B(K) - T)/A(K,K)
+  60     CONTINUE
+C
+C        NOW KppSolve TRANS(L)*X = Y
+C
+         IF (NM1 .LT. 1) GO TO 90
+         DO 80 KB = 1, NM1
+            K = N - KB
+            B(K) = B(K) + DDOT(N-K,A(K+1,K),1,B(K+1),1)
+            L = IPVT(K)
+            IF (L .EQ. K) GO TO 70
+               T = B(L)
+               B(L) = B(K)
+               B(K) = T
+  70        CONTINUE
+  80     CONTINUE
+  90     CONTINUE
+  100  CONTINUE
+      RETURN
+      END
+      SUBROUTINE DGBFA(ABD,LDA,N,ML,MU,IPVT,INFO)
+      INTEGER LDA,N,ML,MU,IPVT(*),INFO
+      DOUBLE PRECISION ABD(LDA,*)
+C
+C    DGBFA FACTORS A DOUBLE PRECISION BAND MATRIX BY ELIMINATION.
+C
+C    DGBFA IS USUALLY CALLED BY DGBCO, BUT IT CAN BE CALLED
+C    DIRECTLY WITH A SAVING IN TIME IF  RCOND  IS NOT NEEDED.
+C
+C    ON ENTRY
+C
+C       ABD     DOUBLE PRECISION(LDA, N)
+C               CONTAINS THE MATRIX IN BAND STORAGE.  THE COLUMNS
+C               OF THE MATRIX ARE STORED IN THE COLUMNS OF  ABD  AND
+C               THE DIAGONALS OF THE MATRIX ARE STORED IN ROWS
+C               ML+1 THROUGH 2*ML+MU+1 OF  ABD .
+C               SEE THE COMMENTS BELOW FOR DETAILS.
+C
+C       LDA     INTEGER
+C               THE LEADING DIMENSION OF THE ARRAY  ABD .
+C               LDA MUST BE .GE. 2*ML + MU + 1 .
+C
+C       N       INTEGER
+C               THE ORDER OF THE ORIGINAL MATRIX.
+C
+C       ML      INTEGER
+C               NUMBER OF DIAGONALS BELOW THE MAIN DIAGONAL.
+C               0 .LE. ML .LT. N .
+C
+C       MU      INTEGER
+C               NUMBER OF DIAGONALS ABOVE THE MAIN DIAGONAL.
+C               0 .LE. MU .LT. N .
+C               MORE EFFICIENT IF  ML .LE. MU .
+C    ON RETURN
+C
+C       ABD     AN UPPER TRIANGULAR MATRIX IN BAND STORAGE AND
+C               THE MULTIPLIERS WHICH WERE USED TO OBTAIN IT.
+C               THE FACTORIZATION CAN BE WRITTEN  A = L*U  WHERE
+C               L  IS A PRODUCT OF PERMUTATION AND UNIT LOWER
+C               TRIANGULAR MATRICES AND  U  IS UPPER TRIANGULAR.
+C
+C       IPVT    INTEGER(N)
+C               AN INTEGER VECTOR OF PIVOT INDICES.
+C
+C       INFO    INTEGER
+C               = 0  NORMAL VALUE.
+C               = K  IF  U(K,K) .EQ. 0.0 .  THIS IS NOT AN ERROR
+C                    CONDITION FOR THIS SUBROUTINE, BUT IT DOES
+C                    INDICATE THAT DGBSL WILL DIVIDE BY ZERO IF
+C                    CALLED.  USE  RCOND  IN DGBCO FOR A RELIABLE
+C                    INDICATION OF SINGULARITY.
+C
+C    BAND STORAGE
+C
+C          IF  A  IS A BAND MATRIX, THE FOLLOWING PROGRAM SEGMENT
+C          WILL SET UP THE INPUT.
+C
+C                  ML = (BAND WIDTH BELOW THE DIAGONAL)
+C                  MU = (BAND WIDTH ABOVE THE DIAGONAL)
+C                  M = ML + MU + 1
+C                  DO 20 J = 1, N
+C                     I1 = MAX0(1, J-MU)
+C                     I2 = MIN0(N, J+ML)
+C                     DO 10 I = I1, I2
+C                        K = I - J + M
+C                        ABD(K,J) = A(I,J)
+C               10    CONTINUE
+C               20 CONTINUE
+C
+C          THIS USES ROWS  ML+1  THROUGH  2*ML+MU+1  OF  ABD .
+C          IN ADDITION, THE FIRST  ML  ROWS IN  ABD  ARE USED FOR
+C          ELEMENTS GENERATED DURING THE TRIANGULARIZATION.
+C          THE TOTAL NUMBER OF ROWS NEEDED IN  ABD  IS  2*ML+MU+1 .
+C          THE  ML+MU BY ML+MU  UPPER LEFT TRIANGLE AND THE
+C          ML BY ML  LOWER RIGHT TRIANGLE ARE NOT REFERENCED.
+C
+C    LINPACK. THIS VERSION DATED 08/14/78 .
+C    CLEVE MOLER, UNIVERSITY OF NEW MEXICO, ARGONNE NATIONAL LAB.
+C
+C    SUBROUTINES AND FUNCTIONS
+C
+C    BLAS DAXPY,DSCAL,IDAMAX
+C    FORTRAN MAX0,MIN0
+C
+C    INTERNAL VARIABLES
+C
+      DOUBLE PRECISION T
+      INTEGER I,IDAMAX,I0,J,JU,JZ,J0,J1,K,KP1,L,LM,M,MM,NM1
+C
+C
+      M = ML + MU + 1
+      INFO = 0
+C
+C     ZERO INITIAL FILL-IN COLUMNS
+C
+      J0 = MU + 2
+      J1 = MIN0(N,M) - 1
+      IF (J1 .LT. J0) GO TO 30
+      DO 20 JZ = J0, J1
+         I0 = M + 1 - JZ
+         DO 10 I = I0, ML
+            ABD(I,JZ) = 0.0D0
+  10     CONTINUE
+  20  CONTINUE
+  30  CONTINUE
+      JZ = J1
+      JU = 0
+C
+C     GAUSSIAN ELIMINATION WITH PARTIAL PIVOTING
+C
+      NM1 = N - 1
+      IF (NM1 .LT. 1) GO TO 130
+      DO 120 K = 1, NM1
+         KP1 = K + 1
+C
+C        ZERO NEXT FILL-IN COLUMN
+C
+         JZ = JZ + 1
+         IF (JZ .GT. N) GO TO 50
+         IF (ML .LT. 1) GO TO 50
+            DO 40 I = 1, ML
+               ABD(I,JZ) = 0.0D0
+  40        CONTINUE
+  50     CONTINUE
+C
+C        FIND L = PIVOT INDEX
+C
+         LM = MIN0(ML,N-K)
+         L = IDAMAX(LM+1,ABD(M,K),1) + M - 1
+         IPVT(K) = L + K - M
+C
+C        ZERO PIVOT IMPLIES THIS COLUMN ALREADY TRIANGULARIZED
+C
+         IF (ABD(L,K) .EQ. 0.0D0) GO TO 100
+C
+C           INTERCHANGE IF NECESSARY
+C
+            IF (L .EQ. M) GO TO 60
+               T = ABD(L,K)
+               ABD(L,K) = ABD(M,K)
+               ABD(M,K) = T
+  60        CONTINUE
+C
+C           COMPUTE MULTIPLIERS
+C
+            T = -1.0D0/ABD(M,K)
+            CALL DSCAL(LM,T,ABD(M+1,K),1)
+C
+C           ROW ELIMINATION WITH COLUMN INDEXING
+C
+            JU = MIN0(MAX0(JU,MU+IPVT(K)),N)
+            MM = M
+            IF (JU .LT. KP1) GO TO 90
+            DO 80 J = KP1, JU
+               L = L - 1
+               MM = MM - 1
+               T = ABD(L,J)
+               IF (L .EQ. MM) GO TO 70
+                  ABD(L,J) = ABD(MM,J)
+                  ABD(MM,J) = T
+  70           CONTINUE
+               CALL DAXPY(LM,T,ABD(M+1,K),1,ABD(MM+1,J),1)
+  80        CONTINUE
+  90        CONTINUE
+         GO TO 110
+  100    CONTINUE
+            INFO = K
+  110    CONTINUE
+  120  CONTINUE
+  130  CONTINUE
+      IPVT(N) = N
+      IF (ABD(M,N) .EQ. 0.0D0) INFO = N
+      RETURN
+      END
+      SUBROUTINE DGBSL(ABD,LDA,N,ML,MU,IPVT,B,JOB)
+      INTEGER LDA,N,ML,MU,IPVT(*),JOB
+      DOUBLE PRECISION ABD(LDA,*),B(*)
+C
+C    DGBSL KppSolveS THE DOUBLE PRECISION BAND SYSTEM
+C    A * X = B  OR  TRANS(A) * X = B
+C    USING THE FACTORS COMPUTED BY DGBCO OR DGBFA.
+C
+C    ON ENTRY
+C
+C       ABD     DOUBLE PRECISION(LDA, N)
+C               THE OUTPUT FROM DGBCO OR DGBFA.
+C
+C       LDA     INTEGER
+C               THE LEADING DIMENSION OF THE ARRAY  ABD .
+C
+C       N       INTEGER
+C               THE ORDER OF THE ORIGINAL MATRIX.
+C
+C       ML      INTEGER
+C               NUMBER OF DIAGONALS BELOW THE MAIN DIAGONAL.
+C
+C       MU      INTEGER
+C               NUMBER OF DIAGONALS ABOVE THE MAIN DIAGONAL.
+C
+C       IPVT    INTEGER(N)
+C               THE PIVOT VECTOR FROM DGBCO OR DGBFA.
+C
+C       B       DOUBLE PRECISION(N)
+C               THE RIGHT HAND SIDE VECTOR.
+C
+C       JOB     INTEGER
+C               = 0         TO KppSolve  A*X = B ,
+C               = NONZERO   TO KppSolve  TRANS(A)*X = B , WHERE
+C                           TRANS(A)  IS THE TRANSPOSE.
+C
+C    ON RETURN
+C
+C       B       THE SOLUTION VECTOR  X .
+C
+C    ERROR CONDITION
+C
+C       A DIVISION BY ZERO WILL OCCUR IF THE INPUT FACTOR CONTAINS A
+C       ZERO ON THE DIAGONAL.  TECHNICALLY THIS INDICATES SINGULARITY
+C       BUT IT IS OFTEN CAUSED BY IMPROPER ARGUMENTS OR IMPROPER
+C       SETTING OF LDA .  IT WILL NOT OCCUR IF THE SUBROUTINES ARE
+C       CALLED CORRECTLY AND IF DGBCO HAS SET RCOND .GT. 0.0
+C       OR DGBFA HAS SET INFO .EQ. 0 .
+C
+C    TO COMPUTE  INVERSE(A) * C  WHERE  C  IS A MATRIX
+C    WITH  P  COLUMNS
+C          CALL DGBCO(ABD,LDA,N,ML,MU,IPVT,RCOND,Z)
+C          IF (RCOND IS TOO SMALL) GO TO ...
+C          DO 10 J = 1, P
+C             CALL DGBSL(ABD,LDA,N,ML,MU,IPVT,C(1,J),0)
+C       10 CONTINUE
+C
+C    LINPACK. THIS VERSION DATED 08/14/78 .
+C    CLEVE MOLER, UNIVERSITY OF NEW MEXICO, ARGONNE NATIONAL LAB.
+C
+C    SUBROUTINES AND FUNCTIONS
+C
+C    BLAS DAXPY,DDOT
+C    FORTRAN MIN0
+C
+C    INTERNAL VARIABLES
+C
+      DOUBLE PRECISION DDOT,T
+      INTEGER K,KB,L,LA,LB,LM,M,NM1
+C
+      M = MU + ML + 1
+      NM1 = N - 1
+      IF (JOB .NE. 0) GO TO 50
+C
+C        JOB = 0 , KppSolve  A * X = B
+C        FIRST KppSolve L*Y = B
+C
+         IF (ML .EQ. 0) GO TO 30
+         IF (NM1 .LT. 1) GO TO 30
+            DO 20 K = 1, NM1
+               LM = MIN0(ML,N-K)
+               L = IPVT(K)
+               T = B(L)
+               IF (L .EQ. K) GO TO 10
+                  B(L) = B(K)
+                  B(K) = T
+  10           CONTINUE
+               CALL DAXPY(LM,T,ABD(M+1,K),1,B(K+1),1)
+  20        CONTINUE
+  30     CONTINUE
+C
+C        NOW KppSolve  U*X = Y
+C
+         DO 40 KB = 1, N
+            K = N + 1 - KB
+            B(K) = B(K)/ABD(M,K)
+            LM = MIN0(K,M) - 1
+            LA = M - LM
+            LB = K - LM
+            T = -B(K)
+            CALL DAXPY(LM,T,ABD(LA,K),1,B(LB),1)
+  40     CONTINUE
+      GO TO 100
+  50  CONTINUE
+C
+C        JOB = NONZERO, KppSolve  TRANS(A) * X = B
+C        FIRST KppSolve  TRANS(U)*Y = B
+C
+         DO 60 K = 1, N
+            LM = MIN0(K,M) - 1
+            LA = M - LM
+            LB = K - LM
+            T = DDOT(LM,ABD(LA,K),1,B(LB),1)
+            B(K) = (B(K) - T)/ABD(M,K)
+  60     CONTINUE
+C
+C        NOW KppSolve TRANS(L)*X = Y
+C
+         IF (ML .EQ. 0) GO TO 90
+         IF (NM1 .LT. 1) GO TO 90
+            DO 80 KB = 1, NM1
+               K = N - KB
+               LM = MIN0(ML,N-K)
+               B(K) = B(K) + DDOT(LM,ABD(M+1,K),1,B(K+1),1)
+               L = IPVT(K)
+               IF (L .EQ. K) GO TO 70
+                  T = B(L)
+                  B(L) = B(K)
+                  B(K) = T
+  70           CONTINUE
+  80        CONTINUE
+  90     CONTINUE
+  100  CONTINUE
+      RETURN
+      END
+      SUBROUTINE DAXPY(N,DA,DX,INCX,DY,INCY)
+C
+C     CONSTANT TIMES A VECTOR PLUS A VECTOR.
+C     USES UNROLLED LOOPS FOR INCREMENTS EQUAL TO ONE.
+C     JACK DONGARRA, LINPACK, 3/11/78.
+C
+      DOUBLE PRECISION DX(*),DY(*),DA
+      INTEGER I,INCX,INCY,IX,IY,M,MP1,N
+C
+      IF(N.LE.0)RETURN
+      IF (DA .EQ. 0.0D0) RETURN
+      IF(INCX.EQ.1.AND.INCY.EQ.1)GO TO 20
+C
+C        CODE FOR UNEQUAL INCREMENTS OR EQUAL INCREMENTS
+C          NOT EQUAL TO 1
+C
+      IX = 1
+      IY = 1
+      IF(INCX.LT.0)IX = (-N+1)*INCX + 1
+      IF(INCY.LT.0)IY = (-N+1)*INCY + 1
+      DO 10 I = 1,N
+        DY(IY) = DY(IY) + DA*DX(IX)
+        IX = IX + INCX
+        IY = IY + INCY
+  10  CONTINUE
+      RETURN
+C
+C        CODE FOR BOTH INCREMENTS EQUAL TO 1
+C
+C
+C        CLEAN-UP LOOP
+C
+  20  M = MOD(N,4)
+      IF( M .EQ. 0 ) GO TO 40
+      DO 30 I = 1,M
+        DY(I) = DY(I) + DA*DX(I)
+  30  CONTINUE
+      IF( N .LT. 4 ) RETURN
+  40  MP1 = M + 1
+      DO 50 I = MP1,N,4
+        DY(I) = DY(I) + DA*DX(I)
+        DY(I + 1) = DY(I + 1) + DA*DX(I + 1)
+        DY(I + 2) = DY(I + 2) + DA*DX(I + 2)
+        DY(I + 3) = DY(I + 3) + DA*DX(I + 3)
+  50  CONTINUE
+      RETURN
+      END
+      SUBROUTINE DSCAL(N,DA,DX,INCX)
+C
+C     SCALES A VECTOR BY A CONSTANT.
+C     USES UNROLLED LOOPS FOR INCREMENT EQUAL TO ONE.
+C     JACK DONGARRA, LINPACK, 3/11/78.
+C
+      DOUBLE PRECISION DA,DX(*)
+      INTEGER I,INCX,M,MP1,N,NINCX
+C
+      IF(N.LE.0)RETURN
+      IF(INCX.EQ.1)GO TO 20
+C
+C        CODE FOR INCREMENT NOT EQUAL TO 1
+*
+C
+      NINCX = N*INCX
+      DO 10 I = 1,NINCX,INCX
+        DX(I) = DA*DX(I)
+  10  CONTINUE
+      RETURN
+C
+C        CODE FOR INCREMENT EQUAL TO 1
+C
+C
+C        CLEAN-UP LOOP
+C
+  20  M = MOD(N,5)
+      IF( M .EQ. 0 ) GO TO 40
+      DO 30 I = 1,M
+        DX(I) = DA*DX(I)
+  30  CONTINUE
+      IF( N .LT. 5 ) RETURN
+  40  MP1 = M + 1
+      DO 50 I = MP1,N,5
+        DX(I) = DA*DX(I)
+        DX(I + 1) = DA*DX(I + 1)
+        DX(I + 2) = DA*DX(I + 2)
+        DX(I + 3) = DA*DX(I + 3)
+        DX(I + 4) = DA*DX(I + 4)
+  50  CONTINUE
+      RETURN
+      END
+      DOUBLE PRECISION FUNCTION DDOT(N,DX,INCX,DY,INCY)
+C
+C     FORMS THE DOT PRODUCT OF TWO VECTORS.
+C     USES UNROLLED LOOPS FOR INCREMENTS EQUAL TO ONE.
+C     JACK DONGARRA, LINPACK, 3/11/78.
+C
+      DOUBLE PRECISION DX(*),DY(*),DTEMP
+      INTEGER I,INCX,INCY,IX,IY,M,MP1,N
+C
+      DDOT = 0.0D0
+      DTEMP = 0.0D0
+      IF(N.LE.0)RETURN
+      IF(INCX.EQ.1.AND.INCY.EQ.1)GO TO 20
+C
+C        CODE FOR UNEQUAL INCREMENTS OR EQUAL INCREMENTS
+C          NOT EQUAL TO 1
+C
+      IX = 1
+      IY = 1
+      IF(INCX.LT.0)IX = (-N+1)*INCX + 1
+      IF(INCY.LT.0)IY = (-N+1)*INCY + 1
+      DO 10 I = 1,N
+        DTEMP = DTEMP + DX(IX)*DY(IY)
+        IX = IX + INCX
+        IY = IY + INCY
+  10  CONTINUE
+      DDOT = DTEMP
+      RETURN
+C
+C        CODE FOR BOTH INCREMENTS EQUAL TO 1
+C
+C
+C        CLEAN-UP LOOP
+C
+  20  M = MOD(N,5)
+      IF( M .EQ. 0 ) GO TO 40
+      DO 30 I = 1,M
+        DTEMP = DTEMP + DX(I)*DY(I)
+  30  CONTINUE
+      IF( N .LT. 5 ) GO TO 60
+  40  MP1 = M + 1
+      DO 50 I = MP1,N,5
+        DTEMP = DTEMP + DX(I)*DY(I) + DX(I + 1)*DY(I + 1) +
+     *   DX(I + 2)*DY(I + 2) + DX(I + 3)*DY(I + 3) + DX(I + 4)*DY(I + 4)
+  50  CONTINUE
+  60  DDOT = DTEMP
+      RETURN
+      END
+      INTEGER FUNCTION IDAMAX(N,DX,INCX)
+C
+C     FINDS THE INDEX OF ELEMENT HAVING MAX. ABSOLUTE VALUE.
+C     JACK DONGARRA, LINPACK, 3/11/78.
+C
+      DOUBLE PRECISION DX(*),DMAX
+      INTEGER I,INCX,IX,N
+C
+      IDAMAX = 0
+      IF( N .LT. 1 ) RETURN
+      IDAMAX = 1
+      IF(N.EQ.1)RETURN
+      IF(INCX.EQ.1)GO TO 20
+C
+C        CODE FOR INCREMENT NOT EQUAL TO 1
+C
+      IX = 1
+      DMAX = DABS(DX(1))
+      IX = IX + INCX
+      DO 10 I = 2,N
+         IF(DABS(DX(IX)).LE.DMAX) GO TO 5
+         IDAMAX = I
+         DMAX = DABS(DX(IX))
+   5     IX = IX + INCX
+  10  CONTINUE
+      RETURN
+C
+C        CODE FOR INCREMENT EQUAL TO 1
+C
+  20  DMAX = DABS(DX(1))
+      DO 30 I = 2,N
+         IF(DABS(DX(I)).LE.DMAX) GO TO 30
+         IDAMAX = I
+         DMAX = DABS(DX(I))
+  30  CONTINUE
+      RETURN
+      END
+      DOUBLE PRECISION FUNCTION D1MACH (IDUM)
+      INTEGER IDUM
+C-----------------------------------------------------------------------
+C THIS ROUTINE COMPUTES THE UNIT ROUNDOFF OF THE MACHINE IN DOUBLE
+C PRECISION.  THIS IS DEFINED AS THE SMALLEST POSITIVE MACHINE NUMBER
+C U SUCH THAT  1.0D0 + U .NE. 1.0D0 (IN DOUBLE PRECISION).
+C-----------------------------------------------------------------------
+      DOUBLE PRECISION U, COMP
+      U = 1.0D0
+ 10   U = U*0.5D0
+      COMP = 1.0D0 + U
+      IF (COMP .NE. 1.0D0) GO TO 10
+      D1MACH = U*2.0D0
+      RETURN
+C----------------------- END OF FUNCTION D1MACH ------------------------
+      END
+      SUBROUTINE XERR (MSG, NERR, IERT, NI, I1, I2, NR, R1, R2)
+      INTEGER NERR, IERT, NI, I1, I2, NR,
+     1   LUN, LUNIT, MESFLG
+      DOUBLE PRECISION R1, R2
+      CHARACTER*(*) MSG
+C-------------------------------------------------------------------
+C
+C ALL ARGUMENTS ARE INPUT ARGUMENTS.
+C
+C MSG   = THE MESSAGE (CHARACTER VARIABLE)
+C NERR  = THE ERROR NUMBER (NOT USED).
+C IERT  = THE ERROR TYPE..
+C         1 MEANS RECOVERABLE (CONTROL RETURNS TO CALLER).
+C         2 MEANS FATAL (RUN IS ABORTED--SEE NOTE BELOW).
+C NI    = NUMBER OF INTEGERS (0, 1, OR 2) TO BE PRINTED WITH MESSAGE.
+C I1,I2  = INTEGERS TO BE PRINTED, DEPENDING ON NI.
+C NR    = NUMBER OF REALS (0, 1, OR 2) TO BE PRINTED WITH MESSAGE.
+C R1,R2  = REALS TO BE PRINTED, DEPENDING ON NR.
+C
+C  NOTES:
+C 1. THE DIMENSION OF MSG IS ASSUMED TO BE AT MOST 60.
+C   (MULTI-LINE MESSAGES ARE GENERATED BY REPEATED CALLS.)
+C 2. IF IERT = 2, CONTROL PASSES TO THE STATEMENT  STOP
+C   TO ABORT THE RUN.  THIS STATEMENT MAY BE MACHINE-DEPENDENT.
+C 3. R1 AND R2 ARE ASSUMED TO BE IN DOUBLE PRECISION AND ARE PRINTED
+C   IN D21.13 FORMAT.
+C 4. THE COMMON BLOCK /EH0001/ BELOW IS DATA-LOADED (A MACHINE-
+C   DEPENDENT FEATURE) WITH DEFAULT VALUES.
+C   THIS BLOCK IS NEEDED FOR PROPER RETENTION OF PARAMETERS USED BY
+C   THIS ROUTINE WHICH THE USER CAN RESET BY CALLING XSETF OR XSETUN.
+C   THE VARIABLES IN THIS BLOCK ARE AS FOLLOWS..
+C      MESFLG = PRINT CONTROL FLAG..
+C               1 MEANS PRINT ALL MESSAGES (THE DEFAULT).
+C               0 MEANS NO PRINTING.
+C      LUNIT  = LOGICAL UNIT NUMBER FOR MESSAGES.
+C               THE DEFAULT IS 6 (MACHINE-DEPENDENT).
+C 5. TO CHANGE THE DEFAULT OUTPUT UNIT, CHANGE THE DATA STATEMENT
+C  IN THE BLOCK DATA SUBPROGRAM BELOW.
+C
+C FOR A DIFFERENT RUN-ABORT COMMAND, CHANGE THE STATEMENT FOLLOWING
+C STATEMENT 100 AT THE END.
+C-----------------------------------------------------------------------
+      COMMON /EH0001/ MESFLG, LUNIT
+      IF (MESFLG .EQ. 0) GO TO 100
+C GET LOGICAL UNIT NUMBER. ---------------------------------------------
+      LUN = LUNIT
+C WRITE THE MESSAGE. ---------------------------------------------------
+      WRITE (LUN, 10) MSG
+ 10   FORMAT(1X,A)
+C-----------------------------------------------------------------------
+      IF (NI .EQ. 1) WRITE (LUN, 20) I1
+ 20   FORMAT(6X,'IN ABOVE MESSAGE,  I1 = ',I10)
+      IF (NI .EQ. 2) WRITE (LUN, 30) I1,I2
+ 30   FORMAT(6X,'IN ABOVE MESSAGE,  I1 = ',I10,3X,'I2 = ',I10)
+      IF (NR .EQ. 1) WRITE (LUN, 40) R1
+ 40   FORMAT(6X,'IN ABOVE MESSAGE,  R1 = ',D21.13)
+      IF (NR .EQ. 2) WRITE (LUN, 50) R1,R2
+ 50   FORMAT(6X,'IN ABOVE,  R1 = ',D21.13,3X,'R2 = ',D21.13)
+C ABORT THE RUN IF IERT = 2. -------------------------------------------
+ 100   IF (IERT .NE. 2) RETURN
+      STOP
+C----------------------- END OF SUBROUTINE XERR ----------------------
+      END
+      SUBROUTINE XSETF (MFLAG)
+C
+C THIS ROUTINE RESETS THE PRINT CONTROL FLAG MFLAG.
+C
+      INTEGER MFLAG, MESFLG, LUNIT
+      COMMON /EH0001/ MESFLG, LUNIT
+C
+      IF (MFLAG .EQ. 0 .OR. MFLAG .EQ. 1) MESFLG = MFLAG
+      RETURN
+C----------------------- END OF SUBROUTINE XSETF -----------------------
+      END
+      SUBROUTINE XSETUN (LUN)
+C
+C THIS ROUTINE RESETS THE LOGICAL UNIT NUMBER FOR MESSAGES.
+C
+      INTEGER LUN, MESFLG, LUNIT
+      COMMON /EH0001/ MESFLG, LUNIT
+C
+      IF (LUN .GT. 0) LUNIT = LUN
+      RETURN
+C----------------------- END OF SUBROUTINE XSETUN ----------------------
+      END
+      BLOCK DATA
+C-----------------------------------------------------------------------
+C THIS DATA SUBPROGRAM LOADS VARIABLES INTO THE INTERNAL COMMON
+C BLOCKS USED BY ODESSA AND ITS VARIANTS.  THE VARIABLES ARE
+C DEFINED AS FOLLOWS..
+C  ILLIN  = COUNTER FOR THE NUMBER OF CONSECUTIVE TIMES THE PACKAGE
+C           WAS CALLED WITH ILLEGAL INPUT.  THE RUN IS STOPPED WHEN
+C           ILLIN REACHES 5.
+C  NTREP  = COUNTER FOR THE NUMBER OF CONSECUTIVE TIMES THE PACKAGE
+C           WAS CALLED WITH ISTATE = 1 AND TOUT = T.  THE RUN IS
+C           STOPPED WHEN NTREP REACHES 5.
+C  MESFLG = FLAG TO CONTROL PRINTING OF ERROR MESSAGES.  1 MEANS PRINT,
+C           0 MEANS NO PRINTING.
+C  LUNIT  = DEFAULT VALUE OF LOGICAL UNIT NUMBER FOR PRINTING OF ERROR
+C           MESSAGES.
+C-----------------------------------------------------------------------
+      INTEGER ILLIN, IDUMA, NTREP, IDUMB, IOWNS, ICOMM, MESFLG, LUNIT
+      DOUBLE PRECISION ROWND, ROWNS, RCOMM
+      COMMON /ODE001/ ROWND, ROWNS(173), RCOMM(45),
+     1   ILLIN, IDUMA(10), NTREP, IDUMB(2), IOWNS(4), ICOMM(21)
+      COMMON /EH0001/ MESFLG, LUNIT
+      DATA ILLIN/0/, NTREP/0/
+      DATA MESFLG/1/, LUNIT/6/
+C
+C------------------------ END OF BLOCK DATA ----------------------------
+      END
+C-----------------------------------------------------------------------
+C INSTRUCTIONS FOR INSTALLING THE ODESSA PACKAGE. (see @ below.)
+C
+C ODESSA is an enhanced version of the widely disseminated ODE solver
+C LSODE, and as such retains the same properties regarding portability.
+C The notes below, adapted from the installation instructions for LSODE,
+C are intended to facilitate the installation of the ODESSA package in
+C the user's software library.
+C
+C 1. Both a single and a double precision version of ODESSA are
+C provided in this release.  It is expected that most users will
+C utilize the double precision version, except in the case of
+C extended word-length computers. Most routines used by ODESSA
+C are named the same regardless of whether they are single or
+C double precision.  The exceptions are the LINPAK and BLAS
+C routines that follow the LINPAK/BLAS naming conventions, i.e.
+C D--- for a double precision routine, and S--- for a single
+C precision routine.  Thus, care should be taken if both single
+C and double precision versions are stored in the same library.
+C
+C 2. Several routines in ODESSA have the same names as the LSODE
+C routines from which they were derived, although they contain
+C different code.  These are: INTDY, STODE, PREPJ, SVCOM, and
+C RSCOM.  If ODESSA is added to a subroutine library of which
+C LSODE is already a member, these routine names must be changed
+C in one of the two programs.  Also see the note regarding BLOCK
+C DATA subroutines below.
+C
+C 3.  In many cases, ODESSA uses unaltered LSODE routines and
+C common library routines that may already reside on your system.
+C The installation of ODESSA should be done so that identical routines
+C are shared rather than kept as duplicate copies.
+C a.  Normally, the user calls only subroutine ODESSA, but for optional
+C     capabilities the user may also CALL XSETUN, XSETF, SVCOM, RSCOM,
+C     or INTDY, as described in Part II of the Full Description in the
+C     User Documentation (ODESSA.DOC, see below).  Except for INTDY,
+C     none of these are called from within the package.
+C b.  Two routines, EWSET and VNORM, are optionally replaceable by the
+C     user if the package version is unsuitable.  Hence, the install-
+C     ation of the package should be done so that the user's version
+C     for either routine overrides the package version.
+C c.  The function routine D1MACH is provided to compute the unit
+C     roundoff of the machine and precision in use, in a manner com-
+C     patible with machine parameter routines developed at Bell Lab-
+C     oratories.  If such a routine has already been installed on
+C     your system, the version supplied here may be discarded.
+C d.  Linear algebraic systems are solved with routines from the
+C     LINPACK collection, in conjunction with routines from the Basic
+C     Linear Algebra module collection (BLAS).  In double precision,
+C     the names are DGEFA, DGESL, DGBFA, and DGBSL (from LINPACK), and
+C     DAXPY, DSCAL, IDAMAX, and DDOT (from BLAS). If these routines
+C     have already been installed on your system, copies supplied with
+C     ODESSA may be discarded.  The single precision versions of these
+C     routines are used in the single precision version.
+C
+C 4. There are four integer variables, in the two labeled COMMON
+C blocks /ODE001/ and /EH0001/, which need to be loaded with DATA
+C statements.  They can vary during execution, and are in common to
+C assure their retention between calls.  This is legal in ANSI Fortran
+C only if done in a BLOCK DATA subprogram, and this package has a
+C BLOCK DATA for this purpose.  However, BLOCK DATA subprograms can be
+C difficult to install in libraries, and many compilers allow such DATA
+C statements in subroutines.  If your system allows this, the location
+C of the DATA statements are just after the initial type and common
+C declarations in subroutines ODESSA and XERR.  In ODESSA, ILLIN and
+C NTREP are DATA-loaded as 0.  In XERR, MESFLG is loaded as 1 and
+C LUNIT is loaded as the appropriate default logical unit number.
+C
+C 5. The ODESSA package contains subscript expressions which may not
+C be accepted by some compilers.  Subscripts of the form I + J, I - J,
+C etc., occur in various routines.  If any of these forms are
+C unacceptable to your compiler, an extra line of code setting the
+C subscript to a dummy integer value should be added for each subscipt.
+C
+C 6. User documentation is provided in a two-level structure
+C to accommmodate both the casual and serious user.  The novice or
+C casual user should need to read only the Summary of Usage and the
+C Example Problem located at the beginning of the documentation.  More
+C experienced users, requiring the full set of available options,
+C should read the Full Description which follows the Example Problem.
+C
+C 7. The user documentation may need corrections in the following ways:
+C a.  If subroutine names have been changed to avoid conflicts between
+C     the LSODE and ODESSA packages, the corresponding name changes
+C     should be made in the documentation.
+C b.  In the Summary of Usage, and in the description of XSETUN under
+C     Part II of the Full Description, the default logical unit number
+C     should be corrected if it is not 6.
+C c.  In the Summary of Usage, users should be instructed to execute
+C     CALL XSETF(1) before the first CALL to ODESSA, if this is neces-
+C     sary for proper error message handling.  (see note 2(e) above.)
+C d.  In the description of the subroutines DF and JAC in the Summary
+C     of Usage and in Part I of the Full Description, it is stated
+C     that dummy names may be passed if these two routines are not user
+C     supplied.  Your system may require the user to supply a dummy
+C     subroutine instead.
+C e.  The ODESSA package treats the arguments NEQ, RTOL, and ATOL as
+C     arrays (possibly of length 1), while the usage documentation
+C     states that these arguments may be either arrays or scalars.
+C     If your system does not allow such a mismatch, then the
+C     documentation should be changed to reflect this.
+C 8.  A demonstration program is provided with the package for
+C     verification.
+C
+C
+C     Jorge R. Leis and Mark A. Kramer
+C     Department of Chemical Engineering
+C     Massachusetts Institute of Technology
+C     Cambridge, Massachusetts  02139
+C     U.S.A.
+C
+C     Current address of J.R. Leis (Jan. 1988):
+C
+C     Shell Development Company
+C     Westhollow Research Center
+C     Houston, TX
+C
+C  @ Adapted from 'Instructions for Installing LSODE', written by
+C    Alan C. Hindmarsh, Mathematics & Statistics Division, L-316,
+C    Lawrence Livermore National Laboratory, Livermore, CA. 94550
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/kpp_radau5.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/kpp_radau5.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/kpp_radau5.def	(revision 2696)
@@ -0,0 +1,5 @@
+#FUNCTION AGGREGATE
+#JACOBIAN SPARSE_LU_ROW
+#DOUBLE ON 
+#INTFILE kpp_radau5
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/kpp_radau5.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/kpp_radau5.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/kpp_radau5.f90	(revision 2696)
@@ -0,0 +1,1202 @@
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
+!  RADAU5 - Runge-Kutta method based on Radau-2A quadrature               !
+!                       (2 stages, order 5)                               !
+!  By default the code employs the KPP sparse linear algebra routines     !
+!  Compile with -DFULL_ALGEBRA to use full linear algebra (LAPACK)        !
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
+
+MODULE KPP_ROOT_Integrator
+
+  USE KPP_ROOT_Precision, ONLY: dp
+  USE KPP_ROOT_Parameters, ONLY: NVAR, LU_NONZERO
+  USE KPP_ROOT_Jacobian, ONLY: LU_DIAG
+  USE KPP_ROOT_LinearAlgebra
+
+  IMPLICIT NONE
+  PUBLIC
+  SAVE
+  
+  ! Statistics
+  INTEGER :: Nfun, Njac, Nstp, Nacc, Nrej, Ndec, Nsol, Nsng
+  
+  ! Method parameters
+  KPP_REAL :: Transf(3,3), TransfInv(3,3),      &
+                   rkA(3,3), rkB(3), rkC(3), rkE(3), &
+                   rkGamma, rkAlpha, rkBeta
+  
+  ! description of the error numbers IERR
+  CHARACTER(LEN=50), PARAMETER, DIMENSION(-11:1) :: IERR_NAMES = (/ &
+    'Matrix is repeatedly singular                     ', & ! -11 
+    'Step size too small: T + 10*H = T or H < Roundoff ', & ! -10 
+    'No of steps exceeds maximum bound                 ', & ! -9  
+    'Tolerances are too small                          ', & ! -8  
+    'Improper values for Qmin, Qmax                    ', & ! -7  
+    'Newton stopping tolerance too small               ', & ! -6  
+    'Improper value for ThetaMin                       ', & ! -5  
+    'Improper values for FacMin/FacMax/FacSafe/FacRej  ', & ! -4  
+    'Hmin/Hmax/Hstart must be positive                 ', & ! -3  
+    'Improper value for maximal no of Newton iterations', & ! -2  
+    'Improper value for maximal no of steps            ', & ! -1  
+    '                                                  ', & !  0 (not used)
+    'Success                                           ' /) !  1
+
+CONTAINS
+
+  ! **************************************************************************
+
+  SUBROUTINE INTEGRATE( TIN, TOUT, &
+    ICNTRL_U, RCNTRL_U, ISTATUS_U, RSTATUS_U, IERR_U )
+
+    USE KPP_ROOT_Parameters, ONLY: NVAR
+    USE KPP_ROOT_Global,     ONLY: ATOL,RTOL,VAR
+
+    IMPLICIT NONE
+
+    KPP_REAL :: TIN  ! TIN - Start Time
+    KPP_REAL :: TOUT ! TOUT - End Time
+    INTEGER,  INTENT(IN),  OPTIONAL :: ICNTRL_U(20)
+    KPP_REAL, INTENT(IN),  OPTIONAL :: RCNTRL_U(20)
+    INTEGER,  INTENT(OUT), OPTIONAL :: ISTATUS_U(20)
+    KPP_REAL, INTENT(OUT), OPTIONAL :: RSTATUS_U(20)
+    INTEGER,  INTENT(OUT), OPTIONAL :: IERR_U
+
+    KPP_REAL, SAVE :: H
+    INTEGER :: IERR
+
+    KPP_REAL :: RCNTRL(20), RSTATUS(20)
+    INTEGER :: ICNTRL(20), ISTATUS(20)
+    INTEGER, SAVE :: Ntotal = 0
+
+    H =0.0_dp
+
+    !~~~> fine-tune the integrator:
+    ICNTRL(:)  = 0
+    ICNTRL(2)  = 0 ! 0=vector tolerances, 1=scalar tolerances
+    ICNTRL(5)  = 8 ! Max no. of Newton iterations
+    ICNTRL(6)  = 1 ! Starting values for Newton are interpolated (0) or zero (1)
+    ICNTRL(11) = 1 ! Gustaffson (1) or classic(2) controller
+    RCNTRL(1:20) = 0._dp
+
+    !~~~> if optional parameters are given, and if they are >0,
+    !     then use them to overwrite default settings
+    IF (PRESENT(ICNTRL_U)) ICNTRL(1:20) = ICNTRL_U(1:20)
+    IF (PRESENT(RCNTRL_U)) RCNTRL(1:20) = RCNTRL_U(1:20)
+   
+
+    CALL RADAU5(  NVAR,TIN,TOUT,VAR,H,                  &
+                  RTOL,ATOL,                            &
+                  RCNTRL,ICNTRL,RSTATUS,ISTATUS,IERR  )
+
+!!$    Ntotal = Ntotal + Nstp
+!!$    PRINT*,'NSTEPS=',Nstp,' (',Ntotal,')'
+
+    Nfun = Nfun + ISTATUS(1)
+    Njac = Njac + ISTATUS(2)
+    Nstp = Nstp + ISTATUS(3)
+    Nacc = Nacc + ISTATUS(4)
+    Nrej = Nrej + ISTATUS(5)
+    Ndec = Ndec + ISTATUS(6)
+    Nsol = Nsol + ISTATUS(7)
+    Nsng = Nsng + ISTATUS(8)
+
+    ! if optional parameters are given for output
+    ! use them to store information in them
+    IF (PRESENT(ISTATUS_U)) THEN
+      ISTATUS_U(:) = 0
+      ISTATUS_U(1) = Nfun ! function calls
+      ISTATUS_U(2) = Njac ! jacobian calls
+      ISTATUS_U(3) = Nstp ! steps
+      ISTATUS_U(4) = Nacc ! accepted steps
+      ISTATUS_U(5) = Nrej ! rejected steps (except at the beginning)
+      ISTATUS_U(6) = Ndec ! LU decompositions
+      ISTATUS_U(7) = Nsol ! forward/backward substitutions
+    ENDIF
+    IF (PRESENT(RSTATUS_U)) THEN
+      RSTATUS_U(:) = 0.
+      RSTATUS_U(1) = TOUT ! final time
+    ENDIF
+    IF (PRESENT(IERR_U)) IERR_U = IERR
+
+! mz_rs_20050716: IERR is returned to the user who then decides what to do
+! about it, i.e. either stop the run or ignore it.
+!!$    IF (IERR < 0) THEN
+!!$      PRINT *,'RADAU: Unsuccessful exit at T=', TIN,' (IERR=',IERR,')'
+!!$      STOP
+!!$    ENDIF
+
+  END SUBROUTINE INTEGRATE
+
+   SUBROUTINE RADAU5(N,T,Tend,Y,H,RelTol,AbsTol,    &
+                       RCNTRL,ICNTRL,RSTATUS,ISTATUS,IDID)
+
+!~~~>-----------------------------------------------
+!     NUMERICAL SOLUTION OF A STIFF (OR DIFFERENTIAL ALGEBRAIC)
+!     SYSTEM OF FirstStep 0RDER ORDINARY DIFFERENTIAL EQUATIONS
+!                     M*Y'=F(T,Y).
+!     THE SYSTEM CAN BE (LINEARLY) IMPLICIT (MASS-MATRIX M  /=  I)
+!     OR EXPLICIT (M=I).
+!     THE METHOD USED IS AN IMPLICIT RUNGE-KUTTA METHOD (RADAU IIA)
+!     OF ORDER 5 WITH STEP SIZE CONTROL AND CONTINUOUS OUTPUT.
+!     C.F. SECTION IV.8
+!
+!     AUTHORS: E. HAIRER AND G. WANNER
+!              UNIVERSITE DE GENEVE, DEPT. DE MATHEMATIQUES
+!              CH-1211 GENEVE 24, SWITZERLAND
+!              E-MAIL:  HAIRER@DIVSUN.UNIGE.CH,  WANNER@DIVSUN.UNIGE.CH
+!
+!     THIS CODE IS PART OF THE BOOK:
+!         E. HAIRER AND G. WANNER, SOLVING ORDINARY DIFFERENTIAL
+!         EQUATIONS II. STIFF AND DIFFERENTIAL-ALGEBRAIC PROBLEMS.
+!         SPRINGER SERIES IN COMPUTATIONAL MATHEMATICS 14,
+!         SPRINGER-VERLAG (1991)
+!
+!     VERSION OF SEPTEMBER 30, 1995
+!
+!     INPUT PARAMETERS
+!     ----------------
+!     N           DIMENSION OF THE SYSTEM
+!
+!     FCN         NAME (EXTERNAL) OF SUBROUTINE COMPUTING THE
+!                 VALUE OF F(T,Y):
+!                 SUBROUTINE FCN(N,T,Y,F)
+!                    KPP_REAL T,Y(N),F(N)
+!                    F(1)=...   ETC.
+!                 RPAR, IPAR (SEE BELOW)
+!
+!     T           INITIAL TIME VALUE
+!
+!     Tend        FINAL T-VALUE (Tend-T MAY BE POSITIVE OR NEGATIVE)
+!
+!     Y(N)        INITIAL VALUES FOR Y
+!
+!     H           INITIALL STEP SIZE GUESS;
+!                 FOR STIFF EQUATIONS WITH INITIALL TRANSIENT,
+!                 H=1.D0/(NORM OF F'), USUALLY 1.D-3 OR 1.D-5, IS GOOD.
+!                 THIS CHOICE IS NOT VERY IMPORTANT, THE STEP SIZE IS
+!                 QUICKLY ADAPTED. (IF H=0.D0, THE CODE PUTS H=1.D-6).
+!
+!     RelTol,AbsTol   RELATIVE AND ABSOLUTE ERROR TOLERANCES. 
+!          for ICNTRL(2) = 0: AbsTol, RelTol are N-dimensional vectors
+!                        = 1: AbsTol, RelTol are scalars
+!
+!          -----  CONTINUOUS OUTPUT: -----
+!                 DURING CALLS TO "SOLOUT", A CONTINUOUS SOLUTION
+!                 FOR THE INTERVAL [Told,T] IS AVAILABLE THROUGH
+!                 THE FUNCTION
+!                        >>>   CONTR5(I,S,CONT,LRC)   <<<
+!                 WHICH PROVIDES AN APPROXIMATION TO THE I-TH
+!                 COMPONENT OF THE SOLUTION AT THE POINT S. THE VALUE
+!                 S SHOULD LIE IN THE INTERVAL [Told,T].
+!                 DO NOT CHANGE THE ENTRIES OF CONT(LRC), IF THE
+!                 DENSE OUTPUT FUNCTION IS USED.
+!!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>     INPUT PARAMETERS:
+!
+!    Note: For input parameters equal to zero the default values of the
+!          corresponding variables are used.
+!
+!~~~>  Integer input parameters:
+!  
+!    ICNTRL(1) = not used
+!
+!    ICNTRL(2) = 0: AbsTol, RelTol are NVAR-dimensional vectors
+!              = 1: AbsTol, RelTol are scalars
+!
+!    ICNTRL(3) = not used
+!
+!    ICNTRL(4)  -> maximum number of integration steps
+!        For ICNTRL(4)=0 the default value of 10000 is used
+!
+!    ICNTRL(5)  -> maximum number of Newton iterations
+!        For ICNTRL(5)=0 the default value of 8 is used
+!
+!    ICNTRL(6)  -> starting values of Newton iterations:
+!        ICNTRL(6)=0 : starting values are obtained from 
+!                      the extrapolated collocation solution
+!                      (the default)
+!        ICNTRL(6)=1 : starting values are zero
+!
+!    ICNTRL(11) -> switch for step size strategy
+!              ICNTRL(8) == 1:  mod. predictive controller (Gustafsson)
+!              ICNTRL(8) == 2:  classical step size control
+!              the default value (for iwork(8)=0) is iwork(8)=1.
+!              the choice iwork(8) == 1 seems to produce safer results;
+!              for simple problems, the choice iwork(8) == 2 produces
+!              often slightly faster runs
+!              ( currently unused )
+!
+!~~~>  Real input parameters:
+!
+!    RCNTRL(1)  -> not used
+!
+!    RCNTRL(2)  -> Hmax, upper bound for the integration step size
+!
+!    RCNTRL(3)  -> not used
+!
+!    RCNTRL(4)  -> FacMin, lower bound on step decrease factor (default=0.2)
+!
+!    RCNTRL(5)  -> FacMax, upper bound on step increase factor (default=6)
+!
+!    RCNTRL(6)  -> FacRej, step decrease factor after multiple rejections
+!                 (default=0.1)
+!
+!    RCNTRL(7)  -> FacSafe, by which the new step is slightly smaller
+!                  than the predicted value  (default=0.9)
+!
+!    RCNTRL(8)  -> ThetaMin. If Newton convergence rate smaller
+!                  than ThetaMin the Jacobian is not recomputed;
+!                  (default=0.001)
+!
+!    RCNTRL(9)  -> NewtonTol, stopping criterion for Newton's method
+!                  (default=0.03)
+!
+!    RCNTRL(10) -> Qmin
+!
+!    RCNTRL(11) -> Qmax. If Qmin < Hnew/Hold < Qmax, then the
+!                  step size is kept constant and the LU factorization
+!                  reused (default Qmin=1, Qmax=1.2)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!
+!    OUTPUT PARAMETERS
+!    -----------------
+!    T           T-VALUE FOR WHICH THE SOLUTION HAS BEEN COMPUTED
+!                     (AFTER SUCCESSFUL RETURN T=Tend).
+!
+!    Y(N)        NUMERICAL SOLUTION AT T
+!
+!    H           PREDICTED STEP SIZE OF THE LastStep ACCEPTED STEP
+!
+!    IDID        REPORTS ON SUCCESSFULNESS UPON RETURN:
+!
+!    ISTATUS(1) = No. of function calls
+!    ISTATUS(2) = No. of jacobian calls
+!    ISTATUS(3) = No. of steps
+!    ISTATUS(4) = No. of accepted steps
+!    ISTATUS(5) = No. of rejected steps (except at the beginning)
+!    ISTATUS(6) = No. of LU decompositions
+!    ISTATUS(7) = No. of forward/backward substitutions
+!    ISTATUS(8) = No. of singular matrix decompositions
+!
+!    RSTATUS(1)  -> Texit, the time corresponding to the
+!                   computed Y upon return
+!    RSTATUS(2)  -> Hexit, last accepted step before exit
+!                   For multiple restarts, use Hexit as Hstart 
+!                   in the subsequent run
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      IMPLICIT NONE
+      
+      INTEGER :: N
+      KPP_REAL :: Y(N),AbsTol(N),RelTol(N),RCNTRL(20),RSTATUS(20)
+      INTEGER :: ICNTRL(20), ISTATUS(20)
+      LOGICAL :: StartNewton, Gustafsson
+      INTEGER :: IDID, ITOL
+      KPP_REAL :: H,Tend,T
+
+      !~~~> Control arguments
+      INTEGER :: Max_no_steps, NewtonMaxit
+      KPP_REAL :: Hstart,Hmin,Hmax,Qmin,Qmax
+      KPP_REAL :: Roundoff, ThetaMin,TolNewton
+      KPP_REAL :: FacSafe,FacMin,FacMax,FacRej
+      !~~~> Local variables
+      INTEGER :: i
+      KPP_REAL, PARAMETER :: ZERO = 0.0d0, ONE = 1.0d0
+ 
+      !~~~> variables from the former COMMON block /CONRA5/
+      ! KPP_REAL :: Tsol, Hsol
+    
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!        SETTING THE PARAMETERS
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+       Nfun=0
+       Njac=0
+       Nstp=0
+       Nacc=0
+       Nrej=0
+       Ndec=0
+       Nsol=0
+       IDID = 0
+       
+!~~~> ICNTRL(1) - autonomous system - not used       
+!~~~> ITOL: 1 for vector and 0 for scalar AbsTol/RelTol
+      IF (ICNTRL(2) == 0) THEN
+         ITOL = 1
+      ELSE
+         ITOL = 0
+      END IF
+!~~~> ICNTRL(3) - method selection - not used       
+!~~~> Max_no_steps: the maximal number of time steps
+      IF (ICNTRL(4) == 0) THEN
+         Max_no_steps = 10000
+      ELSE
+         Max_no_steps=ICNTRL(4)
+         IF (Max_no_steps <= 0) THEN
+            WRITE(6,*) 'ICNTRL(4)=',ICNTRL(4)
+            CALL RAD_ErrorMsg(-1,T,ZERO,IDID)
+         END IF
+      END IF
+!~~~> NewtonMaxit    MAXIMAL NUMBER OF NEWTON ITERATIONS
+      IF (ICNTRL(5) == 0) THEN
+         NewtonMaxit = 8
+      ELSE
+         NewtonMaxit=ICNTRL(5)
+         IF (NewtonMaxit <= 0) THEN
+            WRITE(6,*) 'ICNTRL(5)=',ICNTRL(5)
+            CALL RAD_ErrorMsg(-2,T,ZERO,IDID)
+          END IF
+      END IF
+!~~~> StartNewton:  Use extrapolation for starting values of Newton iterations
+      IF (ICNTRL(6) == 0) THEN
+         StartNewton = .TRUE.
+      ELSE
+         StartNewton = .FALSE.
+      END IF
+!~~~> Gustafsson: step size controller
+      IF(ICNTRL(11) == 0)THEN
+         Gustafsson=.TRUE.
+      ELSE
+         Gustafsson=.FALSE.
+      END IF
+
+
+!~~~> Roundoff   SMALLEST NUMBER SATISFYING 1.0d0+Roundoff>1.0d0
+      Roundoff=WLAMCH('E');
+
+!~~~> RCNTRL(1) = Hmin - not used
+      Hmin = ZERO
+!~~~> Hmax = maximal step size
+      IF (RCNTRL(2) == ZERO) THEN
+         Hmax=Tend-T
+      ELSE
+         Hmax=MAX(ABS(RCNTRL(7)),ABS(Tend-T))
+      END IF
+!~~~> RCNTRL(3) = Hstart - not used
+      Hstart = ZERO
+!~~~> FacMin: lower bound on step decrease factor
+      IF(RCNTRL(4) == ZERO)THEN
+         FacMin = 0.2d0
+      ELSE
+         FacMin = RCNTRL(4)
+      END IF
+!~~~> FacMax: upper bound on step increase factor
+      IF(RCNTRL(5) == ZERO)THEN
+         FacMax = 8.D0
+      ELSE
+         FacMax = RCNTRL(5)
+      END IF
+!~~~> FacRej: step decrease factor after 2 consecutive rejections
+      IF(RCNTRL(6) == ZERO)THEN
+         FacRej = 0.1d0
+      ELSE
+         FacRej = RCNTRL(6)
+      END IF
+!~~~> FacSafe:  by which the new step is slightly smaller
+!               than the predicted value
+      IF (RCNTRL(7) == ZERO) THEN
+         FacSafe=0.9d0
+      ELSE
+         FacSafe=RCNTRL(7)
+      END IF
+      IF ( (FacMax < ONE) .OR. (FacMin > ONE) .OR. &
+           (FacSafe <= 0.001D0) .OR. (FacSafe >= 1.0d0) ) THEN
+            WRITE(6,*)'RCNTRL(4:7)=',RCNTRL(4:7)
+            CALL RAD_ErrorMsg(-4,T,ZERO,IDID)
+      END IF
+
+!~~~> ThetaMin:  decides whether the Jacobian should be recomputed
+      IF (RCNTRL(8) == ZERO) THEN
+         ThetaMin = 1.0d-3
+      ELSE
+         ThetaMin=RCNTRL(8)
+         IF (ThetaMin <= 0.0d0 .OR. ThetaMin >= 1.0d0) THEN
+            WRITE(6,*) 'RCNTRL(8)=', RCNTRL(8)
+            CALL RAD_ErrorMsg(-5,T,ZERO,IDID)
+         END IF
+      END IF
+!~~~> TolNewton:  stopping crierion for Newton's method
+      IF (RCNTRL(9) == ZERO) THEN
+         TolNewton = 3.0d-2
+      ELSE
+         TolNewton = RCNTRL(9)
+         IF (TolNewton <= Roundoff) THEN
+            WRITE(6,*) 'RCNTRL(9)=',RCNTRL(9)
+            CALL RAD_ErrorMsg(-6,T,ZERO,IDID)
+         END IF
+      END IF
+!~~~> Qmin AND Qmax: IF Qmin < Hnew/Hold < Qmax, STEP SIZE = CONST.
+      IF (RCNTRL(10) == ZERO) THEN
+         Qmin=1.D0
+      ELSE
+         Qmin=RCNTRL(10)
+      END IF
+      IF (RCNTRL(11) == ZERO) THEN
+         Qmax=1.2D0
+      ELSE
+         Qmax=RCNTRL(11)
+      END IF
+      IF (Qmin > ONE .OR. Qmax < ONE) THEN
+         WRITE(6,*) 'RCNTRL(10:11)=',Qmin,Qmax
+         CALL RAD_ErrorMsg(-7,T,ZERO,IDID)
+      END IF
+!~~~> Check if tolerances are reasonable
+      IF (ITOL == 0) THEN
+          IF (AbsTol(1) <= ZERO.OR.RelTol(1) <= 10.d0*Roundoff) THEN
+              WRITE (6,*) 'AbsTol/RelTol=',AbsTol,RelTol 
+              CALL RAD_ErrorMsg(-8,T,ZERO,IDID)
+          END IF
+      ELSE
+          DO i=1,N
+          IF (AbsTol(i) <= ZERO.OR.RelTol(i) <= 10.d0*Roundoff) THEN
+              WRITE (6,*) 'AbsTol/RelTol(',i,')=',AbsTol(i),RelTol(i)
+              CALL RAD_ErrorMsg(-8,T,ZERO,IDID)
+          END IF
+          END DO
+      END IF
+
+!~~~> WHEN A FAIL HAS OCCURED, RETURN
+      IF (IDID < 0) RETURN
+
+      
+!~~~>  CALL TO CORE INTEGRATOR ------------
+      CALL RAD_Integrator( N,T,Y,Tend,Hmax,H,RelTol,AbsTol,ITOL,IDID, &
+        Max_no_steps,Roundoff,FacSafe,ThetaMin,TolNewton,Qmin,Qmax,   &
+        NewtonMaxit,StartNewton,Gustafsson,FacMin,FacMax,FacRej )
+        
+      ISTATUS(1)=Nfun
+      ISTATUS(2)=Njac
+      ISTATUS(3)=Nstp
+      ISTATUS(4)=Nacc
+      ISTATUS(5)=Nrej
+      ISTATUS(6)=Ndec
+      ISTATUS(7)=Nsol
+      ISTATUS(8)=Nsng
+
+   ! END SUBROUTINE RADAU5
+   CONTAINS ! INTERNAL PROCEDURES TO RADAU5
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE RAD_Integrator( N,T,Y,Tend,Hmax,H,RelTol,AbsTol,ITOL,IDID, &
+        Max_no_steps,Roundoff,FacSafe,ThetaMin,TolNewton,Qmin,Qmax,      &
+        NewtonMaxit,StartNewton,Gustafsson,FacMin,FacMax,FacRej )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!     CORE INTEGRATOR FOR RADAU5
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      IMPLICIT NONE
+      INTEGER :: N
+      KPP_REAL  Y(NVAR),Z1(NVAR),Z2(NVAR),Z3(NVAR),Y0(NVAR),&
+                     SCAL(NVAR),F1(NVAR),F2(NVAR),F3(NVAR),      &
+                     CONT(N,4),AbsTol(NVAR),RelTol(NVAR)
+
+#ifdef FULL_ALGEBRA
+      KPP_REAL  :: FJAC(NVAR,NVAR), E1(NVAR,NVAR)
+      DOUBLE COMPLEX :: E2(NVAR,NVAR)   
+#else
+      KPP_REAL  :: FJAC(LU_NONZERO), E1(LU_NONZERO)
+      DOUBLE COMPLEX :: E2(LU_NONZERO)   
+#endif
+                  
+      !~~~> Local variables
+      KPP_REAL  :: TMP(NVAR), T, Tend, Tdirection, &
+                 H, Hmax, HmaxN, Hacc, Hnew, Hopt, Hold, &
+                 Fac, FacMin, Facmax, FacSafe, FacRej, FacGus, FacConv, &
+                 Theta, ThetaMin, TolNewton, ERR, ERRACC,   &
+                 Qmin, Qmax, DYNO, Roundoff, &
+                 AK, AK1, AK2, AK3, C3Q, &
+                 Qnewton, DYTH, THQ, THQOLD, DYNOLD, &
+                 DENOM, C1Q, C2Q, ALPHA, BETA, GAMMA, CFAC, ACONT3, QT
+      INTEGER :: IP1(NVAR),IP2(NVAR), ITOL, IDID, Max_no_steps, &
+                 NewtonIter, NewtonMaxit, ISING
+      LOGICAL :: REJECT, FirstStep, FreshJac, LastStep, &
+                 Gustafsson, StartNewton, NewtonDone
+      ! KPP_REAL, PARAMETER  :: ONE = 1.0d0, ZERO = 0.0d0
+      
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!  INITIALISATIONS
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      CALL RAD_Coefficients
+            
+      Tdirection=SIGN(1.D0,Tend-T)
+      HmaxN=MIN(ABS(Hmax),ABS(Tend-T))
+      H=MIN(ABS(Hmin),ABS(Hstart))
+      H=MIN(ABS(H),HmaxN)
+      IF (ABS(H) <= 10.D0*Roundoff) H=1.0D-6
+      H=SIGN(H,Tdirection)
+      Hold=H
+      REJECT=.FALSE.
+      FirstStep=.TRUE.
+      LastStep=.FALSE.
+      FreshJac=.FALSE.; Theta=1.0d0
+      IF ((T+H*1.0001D0-Tend)*Tdirection >= 0.D0) THEN
+         H=Tend-T
+         LastStep=.TRUE.
+      END IF
+      FacConv=1.D0
+      CFAC=FacSafe*(1+2*NewtonMaxit)
+      Nsng=0
+!      Told=T
+      CALL RAD_ErrorScale(N,ITOL,AbsTol,RelTol,Y,SCAL)
+      CALL FUN_CHEM(T,Y,Y0)
+      
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Time loop begins
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Tloop: DO WHILE ( (Tend-T)*Tdirection - Roundoff > ZERO )
+
+      !~~~> COMPUTE JACOBIAN MATRIX ANALYTICALLY
+      IF ( (.NOT.FreshJac)  .AND. (Theta > ThetaMin) ) THEN
+        CALL JAC_CHEM(T,Y,FJAC)
+        FreshJac=.TRUE.
+      END IF
+      
+      !~~~> Compute the matrices E1 and E2 and their decompositions
+      GAMMA  = rkGamma/H
+      ALPHA = rkAlpha/H
+      BETA  = rkBeta/H
+      CALL RAD_DecompReal(N,FJAC,GAMMA,E1,IP1,ISING)
+      IF (ISING /= 0) THEN
+          Nsng=Nsng+1
+          IF (Nsng >= 5) THEN
+            CALL RAD_ErrorMsg(-12,T,H,IDID); RETURN
+          END IF
+          H=H*0.5D0; REJECT=.TRUE.; LastStep=.FALSE.
+          CYCLE Tloop
+      END IF   
+      CALL RAD_DecompCmplx(N,FJAC,ALPHA,BETA,E2,IP2,ISING)
+      IF (ISING /= 0) THEN
+          Nsng=Nsng+1
+          IF (Nsng >= 5) THEN
+            CALL RAD_ErrorMsg(-12,T,H,IDID); RETURN
+          END IF
+          H=H*0.5D0; REJECT=.TRUE.; LastStep=.FALSE.
+          CYCLE Tloop
+      END IF
+
+   30 CONTINUE
+      Nstp=Nstp+1
+      IF (Nstp > Max_no_steps) THEN
+        PRINT*,'Max number of time steps is ',Max_no_steps
+        CALL RAD_ErrorMsg(-9,T,H,IDID); RETURN
+      END IF
+      IF (0.1D0*ABS(H) <= ABS(T)*Roundoff)  THEN
+        CALL RAD_ErrorMsg(-10,T,H,IDID); RETURN
+      END IF
+ 
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!  STARTING VALUES FOR NEWTON ITERATION
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IF ( FirstStep .OR. (.NOT.StartNewton) ) THEN
+         CALL Set2zero(N,Z1)
+         CALL Set2zero(N,Z2)
+         CALL Set2zero(N,Z3)
+         CALL Set2zero(N,F1)
+         CALL Set2zero(N,F2)
+         CALL Set2zero(N,F3)
+      ELSE
+         C3Q=H/Hold
+         C1Q=rkC(1)*C3Q
+         C2Q=rkC(2)*C3Q
+         DO i=1,N
+            AK1=CONT(i,2)
+            AK2=CONT(i,3)
+            AK3=CONT(i,4)
+            Z1(i)=C1Q*(AK1+(C1Q-rkC(2)+ONE)*(AK2+(C1Q-rkC(1)+ONE)*AK3))
+            Z2(i)=C2Q*(AK1+(C2Q-rkC(2)+ONE)*(AK2+(C2Q-rkC(1)+ONE)*AK3))
+            Z3(i)=C3Q*(AK1+(C3Q-rkC(2)+ONE)*(AK2+(C3Q-rkC(1)+ONE)*AK3))
+         END DO
+         !  F(1,2,3) = TransfInv x Z(1,2,3)
+         CALL RAD_Transform(N,TransfInv,Z1,Z2,Z3,F1,F2,F3)
+      END IF
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!  LOOP FOR THE SIMPLIFIED NEWTON ITERATION
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+            
+            FacConv = MAX(FacConv,Roundoff)**0.8D0
+            Theta=ABS(ThetaMin)
+
+NewtonLoop:DO  NewtonIter = 1, NewtonMaxit  
+ 
+            !~~~>  The right-hand side
+            DO i=1,N
+               TMP(i)=Y(i)+Z1(i)
+            END DO
+            CALL FUN_CHEM(T+rkC(1)*H,TMP,Z1)
+            DO i=1,N
+               TMP(i)=Y(i)+Z2(i)
+            END DO
+            CALL FUN_CHEM(T+rkC(2)*H,TMP,Z2)
+            DO i=1,N
+               TMP(i)=Y(i)+Z3(i)
+            END DO
+            CALL FUN_CHEM(T+rkC(3)*H,TMP,Z3)
+
+            !~~~> Solve the linear systems
+            !  Z(1,2,3) = TransfInv x Z(1,2,3)
+            CALL RAD_Transform(N,TransfInv,Z1,Z2,Z3,Z1,Z2,Z3)
+            CALL RAD_Solve( N,FJAC,GAMMA,ALPHA,BETA,E1,E2, &
+                        Z1,Z2,Z3,F1,F2,F3,CONT,IP1,IP2,ISING )
+            Nsol=Nsol+1
+            
+            DYNO=0.0d0
+            DO i=1,N
+               DENOM=SCAL(i)
+               DYNO=DYNO+(Z1(i)/DENOM)**2+(Z2(i)/DENOM)**2+(Z3(i)/DENOM)**2
+            END DO
+            DYNO=SQRT(DYNO/(3*N))
+            
+            !~~~> Bad convergence or number of iterations too large
+            IF ( (NewtonIter > 1) .AND. (NewtonIter < NewtonMaxit) ) THEN
+                THQ=DYNO/DYNOLD
+                IF (NewtonIter == 2) THEN
+                   Theta=THQ
+                ELSE
+                   Theta=SQRT(THQ*THQOLD)
+                END IF
+                THQOLD=THQ
+                IF (Theta < 0.99d0) THEN
+                    FacConv=Theta/(1.0d0-Theta)
+                    DYTH=FacConv*DYNO*Theta**(NewtonMaxit-1-NewtonIter)/TolNewton
+                    IF (DYTH >= 1.0d0) THEN
+                         Qnewton=MAX(1.0D-4,MIN(20.0d0,DYTH))
+                         FAC=.8D0*Qnewton**(-1.0d0/(4.0d0+NewtonMaxit-1-NewtonIter))
+                         H=FAC*H
+                         REJECT=.TRUE.
+                         LastStep=.FALSE.
+                         CYCLE Tloop
+                    END IF
+                ELSE ! Non-convergence of Newton
+                   H=H*0.5D0; REJECT=.TRUE.; LastStep=.FALSE.
+                   CYCLE Tloop
+                END IF
+            END IF
+            DYNOLD=MAX(DYNO,Roundoff) 
+            CALL WAXPY(N,ONE,Z1,1,F1,1) ! F1 <- F1 + Z1
+            CALL WAXPY(N,ONE,Z2,1,F2,1) ! F2 <- F2 + Z2
+            CALL WAXPY(N,ONE,Z3,1,F3,1) ! F3 <- F3 + Z3
+            !  Z(1,2,3) = Transf x F(1,2,3)
+            CALL RAD_Transform(N,Transf,F1,F2,F3,Z1,Z2,Z3)
+            NewtonDone = (FacConv*DYNO <= TolNewton)
+            IF (NewtonDone) EXIT NewtonLoop
+            
+       END DO NewtonLoop
+            
+       IF (.NOT.NewtonDone) THEN
+           CALL RAD_ErrorMsg(-8,T,H,IDID);
+           H=H*0.5D0; REJECT=.TRUE.; LastStep=.FALSE.
+           CYCLE Tloop
+       END IF
+
+            
+!~~~> ERROR ESTIMATION
+      CALL  RAD_ErrorEstimate(N,FJAC,H,Y0,Y,T, &
+               E1,Z1,Z2,Z3,IP1,SCAL,ERR,       &
+               FirstStep,REJECT,GAMMA)
+!~~~> COMPUTATION OF Hnew
+      Fac  = ERR**(-0.25d0)*   &
+             MIN(FacSafe,(NewtonIter+2*NewtonMaxit)/CFAC)
+      Fac  = MIN(FacMax,MAX(FacMin,Fac))
+      Hnew = Fac*H
+
+!~~~> IS THE ERROR SMALL ENOUGH ?
+accept:IF (ERR < ONE) THEN !~~~> STEP IS ACCEPTED
+         FirstStep=.FALSE.
+         Nacc=Nacc+1
+         IF (Gustafsson) THEN
+            !~~~> Predictive controller of Gustafsson
+            !~~~> Currently not implemented
+            IF (Nacc > 1) THEN
+               FacGus=FacSafe*(H/Hacc)*(ERR**2/ERRACC)**(-0.25d0)
+               FacGus=MIN(FacMax,MAX(FacMin,FacGus))
+               Fac=MIN(Fac,FacGus)
+               Hnew=H*Fac
+            END IF
+            Hacc=H
+            ERRACC=MAX(1.0D-2,ERR)
+         END IF
+         ! Told = T
+         Hold = H
+         T=T+H
+         DO i=1,N
+            Y(i)=Y(i)+Z3(i)
+            CONT(i,2)=(Z2(i)-Z3(i))/(rkC(2)-ONE)
+            AK=(Z1(i)-Z2(i))/(rkC(1)-rkC(2))
+            ACONT3=Z1(i)/rkC(1)
+            ACONT3=(AK-ACONT3)/rkC(2)
+            CONT(i,3)=(AK-CONT(i,2))/(rkC(1)-ONE)
+            CONT(i,4)=CONT(i,3)-ACONT3
+         END DO
+         CALL RAD_ErrorScale(N,ITOL,AbsTol,RelTol,Y,SCAL)
+         FreshJac=.FALSE.
+         IF (LastStep) THEN
+            H=Hopt
+            IDID=1
+            RETURN
+         END IF
+         CALL FUN_CHEM(T,Y,Y0)
+         Hnew=Tdirection*MIN(ABS(Hnew),HmaxN)
+         Hopt=Hnew
+         Hopt=MIN(H,Hnew)
+         IF (REJECT) Hnew=Tdirection*MIN(ABS(Hnew),ABS(H))
+         REJECT=.FALSE.
+         IF ((T+Hnew/Qmin-Tend)*Tdirection >= 0.D0) THEN
+            H=Tend-T
+            LastStep=.TRUE.
+         ELSE
+            QT=Hnew/H
+            IF ( (Theta<=ThetaMin) .AND. (QT>=Qmin) &
+                            .AND. (QT<=Qmax) ) GOTO 30
+            H=Hnew
+         END IF
+         CYCLE Tloop
+      ELSE accept !~~~> STEP IS REJECTED
+         REJECT=.TRUE.
+         LastStep=.FALSE.
+         IF (FirstStep) THEN
+             H=H*FacRej
+         ELSE
+             H=Hnew
+         END IF
+         IF (Nacc >= 1) Nrej=Nrej+1
+         CYCLE Tloop
+      END IF accept
+      
+      
+      END DO Tloop
+      
+
+   END SUBROUTINE RAD_Integrator
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE RAD_ErrorMsg(Code,T,H,IERR)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!    Handles all error messages
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+   IMPLICIT NONE
+   KPP_REAL, INTENT(IN) :: T, H
+   INTEGER, INTENT(IN)  :: Code
+   INTEGER, INTENT(OUT) :: IERR
+
+   IERR = Code
+   PRINT * , &
+     'Forced exit from RADAU5 due to the following error:'
+   IF ((Code>=-11).AND.(Code<=-1)) THEN
+     PRINT *, IERR_NAMES(Code)
+   ELSE
+     PRINT *, 'Unknown Error code: ', Code
+   ENDIF
+
+   PRINT *, "T=", T, "and H=", H
+
+ END SUBROUTINE RAD_ErrorMsg
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE RAD_ErrorScale(N,ITOL,AbsTol,RelTol,Y,SCAL)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!    Handles all error messages
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   IMPLICIT NONE
+   INTEGER, INTENT(IN)  :: N, ITOL
+   KPP_REAL, INTENT(IN) :: AbsTol(*), RelTol(*), Y(N)
+   KPP_REAL, INTENT(OUT) :: SCAL(N)
+   INTEGER :: i
+   
+   IF (ITOL==0) THEN
+       DO i=1,N
+          SCAL(i)=AbsTol(1)+RelTol(1)*ABS(Y(i))
+       END DO
+   ELSE
+       DO i=1,N
+          SCAL(i)=AbsTol(i)+RelTol(i)*ABS(Y(i))
+       END DO
+   END IF
+      
+ END SUBROUTINE RAD_ErrorScale
+ 
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE RAD_Transform(N,Tr,Z1,Z2,Z3,F1,F2,F3)
+!~~~>                 F = Tr x Z
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      INTEGER :: N, i
+      KPP_REAL :: Tr(3,3),Z1(N),Z2(N),Z3(N),F1(N),F2(N),F3(N)
+      KPP_REAL :: x1, x2, x3
+      DO i=1,N
+          x1 = Z1(i); x2 = Z2(i); x3 = Z3(i)
+          F1(i) = Tr(1,1)*x1 + Tr(1,2)*x2 + Tr(1,3)*x3
+          F2(i) = Tr(2,1)*x1 + Tr(2,2)*x2 + Tr(2,3)*x3
+          F3(i) = Tr(3,1)*x1 + Tr(3,2)*x2 + Tr(3,3)*x3
+      END DO
+  END SUBROUTINE RAD_Transform
+  
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE RAD_Coefficients
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
+      IMPLICIT NONE
+      KPP_REAL :: s2,s3,s6,x1,x2,x3,x4,y1,y2,y3,y4,y5
+      
+      s2 = SQRT(2.0d0);
+      s3 = SQRT(3.0d0);
+      s6 = SQRT(6.0d0);
+      x1 = 3.d0**(1.d0/3.d0);
+      x2 = 3.d0**(2.d0/3.d0);
+      x3 = 3.d0**(1.d0/6.d0);
+      x4 = 3.d0**(5.d0/6.d0);
+      
+      rkA(1,1) =  11.d0/45.d0-7.d0/360.d0*s6
+      rkA(1,2) =  37.d0/225.d0-169.d0/1800.d0*s6
+      rkA(1,3) =  -2.d0/225.d0+s6/75
+      rkA(2,1) =  37.d0/225.d0+169.d0/1800.d0*s6
+      rkA(2,2) =  11.d0/45.d0+7.d0/360.d0*s6
+      rkA(2,3) =  -2.d0/225.d0-s6/75
+      rkA(3,1) =  4.d0/9.d0-s6/36
+      rkA(3,2) =  4.d0/9.d0+s6/36
+      rkA(3,3) =  1.d0/9.d0
+      
+      rkB(1)   =  4.d0/9.d0-s6/36
+      rkB(2)   =  4.d0/9.d0+s6/36
+      rkB(3)   =  1.d0/9.d0
+      
+      rkC(1)   =  2.d0/5.d0-s6/10
+      rkC(2)   =  2.d0/5.d0+s6/10
+      rkC(3)   =  1.d0
+
+      ! Error estimation
+      rkE(1) = -(13.d0+7.d0*s6)/3.d0
+      rkE(2) =  (-13.d0+7.d0*s6)/3.d0
+      rkE(3) = -1.d0/3.d0
+
+      !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      !~~~> Diagonalize the RK matrix:
+      ! TransfInv * inv(rkA) * Transf =
+      !       |  rkGamma      0           0       |
+      !       |      0      rkAlpha   -rkBeta   |
+      !       |      0      rkBeta     rkAlpha  |
+      !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      rkGamma =  3-x1+x2
+      rkAlpha =  x1/2-x2/2+3
+      rkBeta  =  -x4/2-3.d0/2.d0*x3
+
+      y1 = 36.d0/625.d0*s6
+      y2 = 129.d0/2500.d0*x1
+      y3 = 111.d0/2500.d0*x3*s2
+      Transf(1,1) = -31.d0/1250.d0*s6*x1+37.d0/1250.d0*s6*x2-y1 &
+                    +129.d0/1250.d0*x1-33.d0/1250.d0*x2+49.d0/625.d0
+      Transf(1,2) =  -y1-y2-y3 &
+                    +31.d0/2500.d0*x4*s2+33.d0/2500.d0*x2+49.d0/625.d0
+      Transf(1,3) =  3.d0/2500.d0*x3*(-33-43*x2+31*x3*s2+37*s3*s2)
+      Transf(2,1) =  31.d0/1250.d0*s6*x1-37.d0/1250.d0*s6*x2+y1 &
+                    +129.d0/1250.d0*x1-33.d0/1250.d0*x2+49.d0/625.d0
+      Transf(2,2) =  y1-y2+y3&
+                    -31.d0/2500.d0*x4*s2+33.d0/2500.d0*x2+49.d0/625.d0
+      Transf(2,3) =  -3.d0/2500.d0*x3*(33+43*x2+31*x3*s2+37*s3*s2)
+      Transf(3,1) =  1.d0
+      Transf(3,2) =  1.d0
+      Transf(3,3) =  0.d0
+      
+      y1 = 11.d0/36.d0*x3*s2 + 43.d0/108.d0*x4*s2
+      y2 = 11.d0/36.d0*s2*x2 - 43.d0/36.d0*s2*x1
+      y3 = 31.d0/54.d0*x1 + 37.d0/54.d0*x2
+      y4 = 31.d0/54.d0*x4-37.d0/18.d0*x3
+      y5 = -x2/27+5.d0/27.d0*x1
+      TransfInv(1,1) =  y1 + y3
+      TransfInv(1,2) = -y1 + y3
+      TransfInv(1,3) =  y5 + 1.d0/3.d0
+      TransfInv(2,1) = -y1 - y3
+      TransfInv(2,2) =  y1 - y3
+      TransfInv(2,3) = -y5 + 2.d0/3.d0
+      TransfInv(3,1) =  y4 - y2
+      TransfInv(3,2) =  y4 + y2
+      TransfInv(3,3) =  x3/9+5.d0/27.d0*x4
+      
+   END SUBROUTINE RAD_Coefficients
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE RAD_DecompReal(N,FJAC,GAMMA,E1,IP1,ISING)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      
+      INTEGER :: N, ISING
+      KPP_REAL :: GAMMA
+#ifdef FULL_ALGEBRA      
+      KPP_REAL :: FJAC(NVAR,NVAR),E1(NVAR,NVAR)
+#else      
+      KPP_REAL :: FJAC(LU_NONZERO),E1(LU_NONZERO)
+#endif      
+      INTEGER :: IP1(N), i, j
+
+#ifdef FULL_ALGEBRA      
+      DO j=1,N
+         DO  i=1,N
+            E1(i,j)=-FJAC(i,j)
+         END DO
+         E1(j,j)=E1(j,j)+GAMMA
+      END DO
+      CALL DGETRF(N,N,E1,N,IP1,ISING) 
+#else      
+      DO i=1,LU_NONZERO
+         E1(i)=-FJAC(i)
+      END DO
+      DO i=1,NVAR
+         j = LU_DIAG(i); E1(j)=E1(j)+GAMMA
+      END DO
+      CALL KppDecomp(E1,ISING)
+#endif      
+      
+   END SUBROUTINE RAD_DecompReal
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE RAD_DecompCmplx(N,FJAC,ALPHA,BETA,E2,IP2,ISING)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      INTEGER :: N, ISING
+#ifdef FULL_ALGEBRA      
+      KPP_REAL ::  FJAC(N,N)
+      DOUBLE COMPLEX :: E2(N,N)
+#else      
+      KPP_REAL ::  FJAC(LU_NONZERO)
+      DOUBLE COMPLEX :: E2(LU_NONZERO)
+#endif      
+      KPP_REAL :: ALPHA, BETA
+      INTEGER :: IP2(N), i, j
+     
+#ifdef FULL_ALGEBRA      
+      DO j=1,N
+        DO i=1,N
+          E2(i,j) = DCMPLX( -FJAC(i,j), 0.0d0 )
+        END DO
+        E2(j,j) = E2(j,j) + DCMPLX( ALPHA, BETA )
+      END DO
+      CALL ZGETRF(N,N,E2,N,IP2,ISING)     
+#else  
+      DO i=1,LU_NONZERO
+         E2(i) = DCMPLX( -FJAC(i), 0.0d0 )
+      END DO
+      DO i=1,NVAR
+         j = LU_DIAG(i); E2(j)=E2(j)+DCMPLX( ALPHA, BETA )
+      END DO
+      CALL KppDecompCmplx(E2,ISING)    
+#endif      
+      Ndec=Ndec+1
+      
+   END SUBROUTINE RAD_DecompCmplx
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE RAD_Solve(N,FJAC,GAMMA,ALPHA,BETA,E1,E2,&
+               Z1,Z2,Z3,F1,F2,F3,CONT,IP1,IP2,ISING)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      INTEGER :: N,IP1(NVAR),IP2(NVAR),ISING
+#ifdef FULL_ALGEBRA      
+      KPP_REAL  :: FJAC(NVAR,NVAR), E1(NVAR,NVAR)
+      DOUBLE COMPLEX :: E2(NVAR,NVAR)
+#else      
+      KPP_REAL  :: FJAC(LU_NONZERO), E1(LU_NONZERO)
+      DOUBLE COMPLEX :: E2(LU_NONZERO)
+#endif      
+      KPP_REAL :: Z1(N),Z2(N),Z3(N),   &
+               F1(N),F2(N),F3(N),CONT(N),   &
+               GAMMA,ALPHA,BETA
+      DOUBLE COMPLEX :: BC(N)
+      INTEGER :: i,j
+      KPP_REAL :: S2, S3
+!
+      DO i=1,N
+         S2=-F2(i)
+         S3=-F3(i)
+         Z1(i)=Z1(i)-F1(i)*GAMMA
+         Z2(i)=Z2(i)+S2*ALPHA-S3*BETA
+         Z3(i)=Z3(i)+S3*ALPHA+S2*BETA
+      END DO
+#ifdef FULL_ALGEBRA      
+      CALL DGETRS ('N',N,1,E1,N,IP1,Z1,N,ISING) 
+#else      
+      CALL KppSolve (E1,Z1)
+#endif      
+      
+      DO j=1,N
+        BC(j) = DCMPLX(Z2(j),Z3(j))
+      END DO
+#ifdef FULL_ALGEBRA      
+      CALL ZGETRS ('N',N,1,E2,N,IP2,BC,N,ISING) 
+#else      
+      CALL KppSolveCmplx (E2,BC)
+#endif      
+      DO j=1,N
+        Z2(j) = DBLE( BC(j) )
+        Z3(j) = AIMAG( BC(j) )
+      END DO
+
+   END SUBROUTINE RAD_Solve
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE RAD_ErrorEstimate(N,FJAC,H,Y0,Y,T,&
+               E1,Z1,Z2,Z3,IP1,SCAL,ERR,        &
+               FirstStep,REJECT,GAMMA)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      
+      INTEGER :: N
+#ifdef FULL_ALGEBRA      
+      KPP_REAL :: FJAC(NVAR,NVAR),  E1(NVAR,NVAR)
+      INTEGER :: ISING
+#else      
+      KPP_REAL :: FJAC(LU_NONZERO), E1(LU_NONZERO)
+#endif      
+      KPP_REAL :: SCAL(N),Z1(N),Z2(N),Z3(N),F1(N),F2(N), &
+               Y0(N),Y(N),TMP(N),T,H,GAMMA
+      INTEGER :: IP1(N), i
+      LOGICAL FirstStep,REJECT
+      KPP_REAL :: HEE1,HEE2,HEE3,ERR
+
+      HEE1 = rkE(1)/H
+      HEE2 = rkE(2)/H
+      HEE3 = rkE(3)/H
+
+      DO  i=1,N
+         F2(i)=HEE1*Z1(i)+HEE2*Z2(i)+HEE3*Z3(i)
+         TMP(i)=F2(i)+Y0(i)
+      END DO
+
+#ifdef FULL_ALGEBRA      
+      CALL DGETRS ('N',N,1,E1,N,IP1,TMP,N,ISING) 
+#else      
+      CALL KppSolve (E1, TMP)
+#endif      
+
+      ERR=0.D0
+      DO  i=1,N
+         ERR=ERR+(TMP(i)/SCAL(i))**2
+      END DO
+      ERR=MAX(SQRT(ERR/N),1.D-10)
+!
+      IF (ERR < 1.D0) RETURN
+firej:IF (FirstStep.OR.REJECT) THEN
+          DO i=1,N
+             TMP(i)=Y(i)+TMP(i)
+          END DO
+          CALL FUN_CHEM(T,TMP,F1)
+          DO i=1,N
+             TMP(i)=F1(i)+F2(i)
+          END DO
+
+#ifdef FULL_ALGEBRA      
+          CALL DGETRS ('N',N,1,E1,N,IP1,TMP,N,0) 
+#else      
+          CALL KppSolve (E1, TMP)
+#endif      
+          ERR=0.D0
+          DO i=1,N
+             ERR=ERR+(TMP(i)/SCAL(i))**2
+          END DO
+          ERR=MAX(SQRT(ERR/N),1.0d-10)
+       END IF firej
+ 
+   END SUBROUTINE RAD_ErrorEstimate
+
+!!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!   KPP_REAL FUNCTION CONTR5(I,N,T,CONT)
+!!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!!     THIS FUNCTION CAN BE USED FOR CONTINUOUS OUTPUT. IT PROVIDES AN
+!!     APPROXIMATION TO THE I-TH COMPONENT OF THE SOLUTION AT T.
+!!     IT GIVES THE VALUE OF THE COLLOCATION POLYNOMIAL, DEFINED FOR
+!!     THE STEP SUCCESSFULLY COMPUTED STEP (BY RADAU5).
+!!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!      IMPLICIT NONE
+!      INTEGER :: I, N
+!      KPP_REAL :: T, CONT(N,4)
+!      KPP_REAL :: S 
+!      KPP_REAL, PARAMETER :: ONE = 1.0d0 
+!      S=(T-Tsol)/Hsol
+!      CONTR5=CONT(i,1)+S* &
+!        (CONT(i,2)+(S-rkC(2)+ONE)*(CONT(i,3)+(S-rkC(1)+ONE)*CONT(i,4)))
+!   END FUNCTION CONTR5
+  
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  END SUBROUTINE RADAU5 ! AND ALL ITS INTERNAL PROCEDURES
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE FUN_CHEM(T, V, FCT)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+    USE KPP_ROOT_Parameters
+    USE KPP_ROOT_Global
+    USE KPP_ROOT_Function, ONLY: Fun
+    USE KPP_ROOT_Rates, ONLY: Update_SUN, Update_RCONST, Update_PHOTO
+
+    IMPLICIT NONE
+
+    KPP_REAL :: V(NVAR), FCT(NVAR)
+    KPP_REAL :: T, Told
+
+    !Told = TIME
+    !TIME = T
+    !CALL Update_SUN()
+    !CALL Update_RCONST()
+    !CALL Update_PHOTO()
+    !TIME = Told
+    
+    CALL Fun(V, FIX, RCONST, FCT)
+    
+    Nfun=Nfun+1
+
+  END SUBROUTINE FUN_CHEM
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE JAC_CHEM (T, V, JF)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+    USE KPP_ROOT_Parameters
+    USE KPP_ROOT_Global
+    USE KPP_ROOT_JacobianSP
+    USE KPP_ROOT_Jacobian, ONLY: Jac_SP
+    USE KPP_ROOT_Rates, ONLY: Update_SUN, Update_RCONST, Update_PHOTO
+
+    IMPLICIT NONE
+
+    KPP_REAL :: V(NVAR), T, Told
+#ifdef FULL_ALGEBRA    
+    KPP_REAL :: JV(LU_NONZERO), JF(NVAR,NVAR)
+    INTEGER :: i, j 
+#else
+    KPP_REAL :: JF(LU_NONZERO)
+#endif   
+
+    !Told = TIME
+    !TIME = T
+    !CALL Update_SUN()
+    !CALL Update_RCONST()
+    !CALL Update_PHOTO()
+    !TIME = Told
+    
+#ifdef FULL_ALGEBRA    
+    CALL Jac_SP(V, FIX, RCONST, JV)
+    DO j=1,NVAR
+      DO i=1,NVAR
+         JF(i,j) = 0.0d0
+      END DO
+    END DO
+    DO i=1,LU_NONZERO
+       JF(LU_IROW(i),LU_ICOL(i)) = JV(i)
+    END DO
+#else
+    CALL Jac_SP(V, FIX, RCONST, JF) 
+#endif   
+    
+    Njac=Njac+1
+
+  END SUBROUTINE JAC_CHEM
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+END MODULE KPP_ROOT_Integrator
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/kpp_sdirk4.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/kpp_sdirk4.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/kpp_sdirk4.def	(revision 2696)
@@ -0,0 +1,20 @@
+ 
+#FUNCTION AGGREGATE
+#JACOBIAN SPARSE_LU_ROW
+
+#DOUBLE ON 
+#INTFILE kpp_sdirk4
+
+#INLINE F77_GLOBAL
+      REAL*8 STEPSTART
+      COMMON /GDATA/ STEPSTART
+#ENDINLINE
+
+#INLINE F77_INIT
+        STEPMIN=0.0001
+        STEPMAX=3600.
+        STEPSTART=STEPMIN
+#ENDINLINE
+
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/kpp_sdirk4.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/kpp_sdirk4.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/kpp_sdirk4.f	(revision 2696)
@@ -0,0 +1,705 @@
+      SUBROUTINE INTEGRATE( TIN, TOUT )
+
+      IMPLICIT KPP_REAL (A-H,O-Z)
+      INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Global.h'
+
+C TIN - Start Time
+      KPP_REAL TIN
+C TOUT - End Time
+      KPP_REAL TOUT
+      INTEGER i
+
+      PARAMETER (LWORK=2*NVAR*NVAR+12*NVAR+7,LIWORK=2*NVAR+7)
+      PARAMETER (LRCONT=5*NVAR+2)
+
+      KPP_REAL WORK(LWORK)
+      INTEGER IWORK(LIWORK)
+      COMMON /CONT/ ICONT(4),RCONT(LRCONT)
+      EXTERNAL FUNC_CHEM,JAC_CHEM
+
+      ITOL=1     ! --- VECTOR TOLERANCES
+      IJAC=1     ! --- COMPUTE THE JACOBIAN ANALYTICALLY
+      IMAS=0     ! --- DIFFERENTIAL EQUATION IS IN EXPLICIT FORM
+
+      DO i=1,20
+        IWORK(i) = 0
+        WORK(i) = 0.D0
+      ENDDO
+
+      IWORK(3) = 8
+
+      CALL ATMSDIRK(NVAR,FUNC_CHEM,TIN,VAR,TOUT,STEPMIN,
+     &                  RTOL,ATOL,ITOL,
+     &                  JAC_CHEM ,IJAC, FUNC_CHEM ,IMAS,
+     &                  WORK,LWORK,IWORK,LIWORK,LRCONT,IDID)
+
+      IF (IDID.LT.0) THEN
+        print *,'ATMSDIRK: Unsucessfull exit at T=',
+     &          TIN,' (IDID=',IDID,')'
+      ENDIF
+
+      RETURN
+      END
+
+
+      SUBROUTINE ATMSDIRK(N,FCN,X,Y,XEND,H,
+     &                  RelTol,AbsTol,ITOL,
+     &                  JAC ,IJAC, MAS ,IMAS,
+     &                  WORK,LWORK,IWORK,LIWORK,LRCONT,IDID)
+C ----------------------------------------------------------
+C *** *** *** *** *** *** *** *** *** *** *** *** ***
+C          DECLARATIONS
+C *** *** *** *** *** *** *** *** *** *** *** *** ***
+      IMPLICIT KPP_REAL (A-H,O-Z)
+      DIMENSION Y(N),AbsTol(1),RelTol(1),WORK(LWORK),IWORK(LIWORK)
+      LOGICAL IMPLCT,JBAND,ARRET
+      EXTERNAL FCN,JAC,MAS
+      COMMON/STAT/NFCN,NJAC,NSTEP,NACCPT,NREJCT,NDEC,NSOL
+
+C *** *** *** *** *** *** ***
+C        SETTING THE PARAMETERS
+C *** *** *** *** *** *** ***
+       NFCN=0
+       NJAC=0
+       NSTEP=0
+       NACCPT=0
+       NREJCT=0
+       NDEC=0
+       NSOL=0
+       ARRET=.FALSE.
+C -------- SWITCH FOR TRANSFORMATION OF JACOBIAN TO HESS_CHEM FORM ---
+      NHESS1 = 0         ! ADRIAN
+C -------- NMAX , THE MAXIMAL NUMBER OF STEPS -----
+      IF(IWORK(2).EQ.0)THEN
+         NMAX=100000
+      ELSE
+         NMAX=IWORK(2)
+         IF(NMAX.LE.0)THEN
+            WRITE(6,*)' WRONG INPUT IWORK(2)=',IWORK(2)
+            ARRET=.TRUE.
+         END IF
+      END IF
+C -------- NIT    MAXIMAL NUMBER OF NEWTON ITERATIONS
+      IF(IWORK(3).EQ.0)THEN
+         NIT=8
+      ELSE
+         NIT=IWORK(3)
+         IF(NIT.LE.0)THEN
+            WRITE(6,*)' CURIOUS INPUT IWORK(3)=',IWORK(3)
+            ARRET=.TRUE.
+         END IF
+      END IF
+C -------- METH    SWITCH FOR THE COEFFICIENTS OF THE METHOD
+      METH = 2
+C -------- UROUND   SMALLEST NUMBER SATISFYING 1.D0+UROUND>1.D0
+      IF(WORK(1).EQ.0.D0)THEN
+         UROUND=1.D-16
+      ELSE
+         UROUND=WORK(1)
+         IF(UROUND.LE.1.D-19.OR.UROUND.GE.1.D0)THEN
+            WRITE(6,*)' COEFFICIENTS HAVE 20 DIGITS, UROUND=',WORK(1)
+            ARRET=.TRUE.
+         END IF
+      END IF
+C --------- SAFE     SAFETY FACTOR IN STEP SIZE PREDICTION
+      IF(WORK(2).EQ.0.D0)THEN
+         SAFE=0.9D0
+      ELSE
+         SAFE=WORK(2)
+         IF(SAFE.LE..001D0.OR.SAFE.GE.1.D0)THEN
+            WRITE(6,*)' CURIOUS INPUT FOR WORK(2)=',WORK(2)
+            ARRET=.TRUE.
+         END IF
+      END IF
+C ------ THET     DECIDES WHETHER THE JACOBIAN SHOULD BE RECOMPUTED;
+      IF(WORK(3).EQ.0.D0)THEN
+         THET=0.001D0
+      ELSE
+         THET=WORK(3)
+      END IF
+C --- FNEWT   STOPPING CRIERION FOR NEWTON'S METHOD, USUALLY CHOSEN <1.
+      IF(WORK(4).EQ.0.D0)THEN
+         FNEWT=0.03D0
+      ELSE
+         FNEWT=WORK(4)
+      END IF
+C --- QUOT1 AND QUOT2: IF QUOT1 < HNEW/HOLD < QUOT2, STEP SIZE = CONST.
+      IF(WORK(5).EQ.0.D0)THEN
+         QUOT1=1.D0
+      ELSE
+         QUOT1=WORK(5)
+      END IF
+      IF(WORK(6).EQ.0.D0)THEN
+         QUOT2=1.2D0
+      ELSE
+         QUOT2=WORK(6)
+      END IF
+C -------- MAXIMAL STEP SIZE
+      IF(WORK(7).EQ.0.D0)THEN
+         HMAX=XEND-X
+      ELSE
+         HMAX=WORK(7)
+      END IF
+C --------- CHECK IF TOLERANCES ARE O.K.
+      IF (ITOL.EQ.0) THEN
+          IF (AbsTol(1).LE.0.D0.OR.RelTol(1).LE.10.D0*UROUND) THEN
+              WRITE (6,*) ' TOLERANCES ARE TOO SMALL'
+              ARRET=.TRUE.
+          END IF
+      ELSE
+          DO 15 I=1,N
+          IF (AbsTol(I).LE.0.D0.OR.RelTol(I).LE.10.D0*UROUND) THEN
+              WRITE (6,*) ' TOLERANCES(',I,') ARE TOO SMALL'
+              ARRET=.TRUE.
+          END IF
+  15      CONTINUE
+      END IF
+
+C *** *** *** *** *** *** *** *** *** *** *** *** ***
+C         COMPUTATION OF ARRAY ENTRIES
+C *** *** *** *** *** *** *** *** *** *** *** *** ***
+C ---- IMPLICIT, BANDED OR NOT ?
+      IMPLCT=IMAS.NE.0
+      ARRET=.FALSE.
+C -------- COMPUTATION OF THE ROW-DIMENSIONS OF THE 2-ARRAYS ---
+C -- JACOBIAN
+         LDJAC=N
+C -- MATRIX E FOR LINEAR ALGEBRA
+         LDE=N
+C -- MASS MATRIX
+      IF (IMPLCT) THEN
+          print *,'IMPLCT 1'
+      ELSE
+          LDMAS=0
+      END IF
+      LDMAS2=MAX(1,LDMAS)
+
+C ------- PREPARE THE ENTRY-POINTS FOR THE ARRAYS IN WORK -----
+      IEYHAT=8
+      IEZ=IEYHAT+N
+      IEY0=IEZ+N
+      IEZ1=IEY0+N
+      IEZ2=IEZ1+N
+      IEZ3=IEZ2+N
+      IEZ4=IEZ3+N
+      IEZ5=IEZ4+N
+      IESCAL=IEZ5+N
+      IEF1=IESCAL+N
+      IEG1=IEF1+N
+      IEH1=IEG1+N
+      IEJAC=IEH1+N
+      IEMAS=IEJAC+N*LDJAC
+      IEE=IEMAS+N*LDMAS
+
+C ------ TOTAL STORAGE REQUIREMENT -----------
+      ISTORE=IEE+N*LDE-1
+      IF(ISTORE.GT.LWORK)THEN
+         WRITE(6,*)' INSUFFICIENT STORAGE FOR WORK, MIN. LWORK=',ISTORE
+         ARRET=.TRUE.
+      END IF
+C ------- ENTRY POINTS FOR INTEGER WORKSPACE -----
+      IEIP=5
+      IEHES=IEIP+N
+C --------- TOTAL REQUIREMENT ---------------
+      ISTORE=IEHES+N-1
+      IF(ISTORE.GT.LIWORK)THEN
+         WRITE(6,*)' INSUFF. STORAGE FOR IWORK, MIN. LIWORK=',ISTORE
+         ARRET=.TRUE.
+      END IF
+C --------- CONTROL OF LENGTH OF COMMON BLOCK "CONT" -------
+      IF(LRCONT.LT.(5*N+2))THEN
+         WRITE(6,*)' INSUFF. STORAGE FOR RCONT, MIN. LRCONT=',5*N+2
+         ARRET=.TRUE.
+      END IF
+C ------ WHEN A FAIL HAS OCCURED, WE RETURN WITH IDID=-1
+      IF (ARRET) THEN
+         IDID=-1
+         RETURN
+      END IF
+C -------- CALL TO CORE INTEGRATOR ------------
+      CALL SDICOR(N,FCN,X,Y,XEND,HMAX,H,RelTol,AbsTol,ITOL,
+     &   JAC,IJAC,MLJAC,MUJAC,MAS,MLMAS,MUMAS,IOUT,IDID,
+     &   NMAX,UROUND,SAFE,THET,FNEWT,QUOT1,QUOT2,NIT,METH,NHESS1,
+     &   IMPLCT,JBAND,LDJAC,LDE,LDMAS2,
+     &   WORK(IEYHAT),WORK(IEZ),WORK(IEY0),WORK(IEZ1),WORK(IEZ2),
+     &   WORK(IEZ3),WORK(IEZ4),WORK(IEZ5),WORK(IESCAL),WORK(IEF1),
+     &   WORK(IEG1),WORK(IEH1),WORK(IEJAC),WORK(IEE),
+     &   WORK(IEMAS),IWORK(IEIP),IWORK(IEHES))
+C ----------- RETURN -----------
+      RETURN
+      END
+C
+C
+C
+C  ----- ... AND HERE IS THE CORE INTEGRATOR  ----------
+C
+      SUBROUTINE SDICOR(N,FCN,X,Y,XEND,HMAX,H,RelTol,AbsTol,ITOL,
+     &   JAC,IJAC,MLJAC,MUJAC,MAS,MLMAS,MUMAS,IOUT,IDID,
+     &   NMAX,UROUND,SAFE,THET,FNEWT,QUOT1,QUOT2,NIT,METH,NHESS1,
+     &   IMPLCT,BANDED,LDJAC,LE,LDMAS,
+     &   YHAT,Z,Y0,Z1,Z2,Z3,Z4,Z5,SCAL,F1,G1,H1,FJAC,E,FMAS,IP,IPHES)
+C ----------------------------------------------------------
+C     CORE INTEGRATOR FOR SDIRK4
+C     PARAMETERS SAME AS IN SDIRK4 WITH WORKSPACE ADDED
+C ----------------------------------------------------------
+C         DECLARATIONS
+C ----------------------------------------------------------
+      IMPLICIT KPP_REAL (A-H,O-Z)
+      INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Sparse.h'
+      KPP_REAL Y(N),YHAT(N),Z(N),Y0(N),Z1(N),Z2(N),Z3(N),Z4(N),Z5(N)
+      KPP_REAL SCAL(N),F1(N),G1(N),H1(N)
+      KPP_REAL FJAC(LU_NONZERO),E(LU_NONZERO),FMAS(LDMAS,N)
+      KPP_REAL AbsTol(1),RelTol(1)
+      INTEGER IP(N),IPHES(N)
+      LOGICAL REJECT,FIRST,IMPLCT,BANDED,CALJAC,NEWTRE
+      COMMON /CONT/NN,NN2,NN3,NN4,XOLD,HSOL,CONT(5*NVAR)
+      COMMON/STAT/NFCN,NJAC,NSTEP,NACCPT,NREJCT,NDEC,NSOL
+      EXTERNAL MAS, FCN, JAC
+
+C *** *** *** *** *** *** ***
+C  INITIALISATIONS
+C *** *** *** *** *** *** ***
+
+C --------- DUPLIFY N FOR COMMON BLOCK CONT -----
+      NN=N
+      NN2=2*N
+      NN3=3*N
+      NN4=4*N
+
+C ------- COMPUTE MASS MATRIX FOR IMPLICIT CASE ----------
+      IF(IMPLCT) CALL MAS(N,FMAS,LDMAS)
+
+C ---------- CONSTANTS ---------
+      MBDIAG=MUMAS+1
+      IF (METH.EQ.2) THEN
+C ---------- METHOD WITH GAMMA = 4/15 ---------------
+          GAMMA=4.0D0/15.0D0
+          C2=23.0D0/30.0D0
+          C3=17.0D0/30.0D0
+          C4=2881.0D0/28965.0D0+GAMMA
+          ALPH21=15.0D0/8.0D0
+          ALPH31=1577061.0D0/922880.0D0
+          ALPH32=-23427.0D0/115360.0D0
+          ALPH41=647163682356923881.0D0/2414496535205978880.0D0
+          ALPH42=-593512117011179.0D0/3245291041943520.0D0
+          ALPH43=559907973726451.0D0/1886325418129671.0D0
+          ALPH51=724545451.0D0/796538880.0D0
+          ALPH52=-830832077.0D0/267298560.0D0
+          ALPH53=30957577.0D0/2509272.0D0
+          ALPH54=-69863904375173.0D0/6212571137048.0D0
+          E1=7752107607.0D0/11393456128.0D0
+          E2=-17881415427.0D0/11470078208.0D0
+          E3=2433277665.0D0/179459416.0D0
+          E4=-96203066666797.0D0/6212571137048.0D0
+          D11= 24.74416644927758D0
+          D12= -4.325375951824688D0
+          D13= 41.39683763286316D0
+          D14= -61.04144619901784D0
+          D15= -3.391332232917013D0
+          D21= -51.98245719616925D0
+          D22= 10.52501981094525D0
+          D23= -154.2067922191855D0
+          D24= 214.3082125319825D0
+          D25= 14.71166018088679D0
+          D31= 33.14347947522142D0
+          D32= -19.72986789558523D0
+          D33= 230.4878502285804D0
+          D34= -287.6629744338197D0
+          D35= -18.99932366302254D0
+          D41= -5.905188728329743D0
+          D42= 13.53022403646467D0
+          D43= -117.6778956422581D0
+          D44= 134.3962081008550D0
+          D45= 8.678995715052762D0
+         ETA1=23.D0/8.D0
+         ANU1= 0.9838473040915402D0
+         ANU2= 0.3969226768377252D0
+         AMU1= 0.6563374010466914D0
+         AMU3= 0.3372498196189311D0
+      ELSE
+         PRINT *, 'WRONG  CHOICE OF <METH>'
+      END IF
+      POSNEG=SIGN(1.D0,XEND-X)
+      HMAX1=MIN(ABS(HMAX),ABS(XEND-X))
+      IF (ABS(H).LE.10.D0*UROUND) H=1.0D-6
+      H=MIN(ABS(H),HMAX1)
+      H=SIGN(H,POSNEG)
+      HOLD=H
+      CFAC=SAFE*(1+2*NIT)
+      NEWTRE=.FALSE.
+      REJECT=.FALSE.
+      FIRST=.TRUE.
+      FACCO1=1.D0
+      FACCO2=1.D0
+      FACCO3=1.D0
+      FACCO4=1.D0
+      FACCO5=1.D0
+      NSING=0
+      XOLD=X
+      IF (ITOL.EQ.0) THEN
+          DO 8 I=1,N
+   8      SCAL(I)=1.D0 / ( AbsTol(1)+RelTol(1)*DABS(Y(I)) )
+      ELSE
+          DO 9 I=1,N
+   9      SCAL(I)=1.D0 / ( AbsTol(I)+RelTol(I)*DABS(Y(I)) )
+      END IF
+
+C --- BASIC INTEGRATION STEP
+  10  CONTINUE
+
+C *** *** *** *** *** *** ***
+C  COMPUTATION OF THE JACOBIAN
+C *** *** *** *** *** *** ***
+      NJAC=NJAC+1
+      CALL JAC(N,X,Y,FJAC)
+      CALJAC=.TRUE.
+  20  CONTINUE
+
+C *** *** *** *** *** *** ***
+C  COMPUTE THE MATRIX E AND ITS DECOMPOSITION
+C *** *** *** *** *** *** ***
+      FAC1=1.D0/(H*GAMMA)
+      IF (IMPLCT) THEN
+         print *, 'IMPLCT 4'
+      ELSE  ! EXPLICIT SYSTEM
+C --- THE MATRIX E (MAS=IDENTITY, JACOBIAN A FULL MATRIX)
+c         DO 526 J=1,N
+c           DO 525 I=1,N
+c 525         E(I,J)=-FJAC(I,J)
+c 526       E(J,J)=E(J,J)+FAC1
+c         CALL DEC(N,LE,E,IP,IER)
+          DO K=1,LU_NONZERO
+             E(K) = -FJAC(K)
+          END DO
+          DO I=1,N
+             IDG = LU_DIAG(I)
+             E(IDG) = E(IDG) + FAC1
+          END DO
+          CALL KppDecomp ( E, IER)
+
+         IF (IER.NE.0) GOTO 79
+      END IF
+      NDEC=NDEC+1
+  30  CONTINUE
+
+      IF (NSTEP.GT.NMAX.OR.X+.1D0*H.EQ.X.OR.ABS(H).LE.UROUND) GOTO 79
+      XPH=X+H
+C --- LOOP FOR THE 5 STAGES
+      FACCO1=DMAX1(FACCO1,UROUND)**0.8D0
+      FACCO2=DMAX1(FACCO2,UROUND)**0.8D0
+      FACCO3=DMAX1(FACCO3,UROUND)**0.8D0
+      FACCO4=DMAX1(FACCO4,UROUND)**0.8D0
+      FACCO5=DMAX1(FACCO5,UROUND)**0.8D0
+
+C *** *** *** *** *** *** ***
+C  STARTING VALUES FOR NEWTON ITERATION
+C *** *** *** *** *** *** ***
+      DO 59 ISTAGE=1,5
+      IF (ISTAGE.EQ.1) THEN
+          XCH=X+GAMMA*H
+          IF (FIRST.OR.NEWTRE) THEN
+              DO 132 I=1,N
+ 132          Z(I)=0.D0
+          ELSE
+              S=1.D0+GAMMA*H/HOLD
+              DO 232 I=1,N
+c  232          Z(I) = 0.D0
+ 232          Z(I)=S*(CONT(I+NN)+S*(CONT(I+NN2)+S*(CONT(I+NN3)
+     &             +S*CONT(I+NN4))))-YHAT(I)
+
+          END IF
+          DO 31 I=1,N
+  31      G1(I)=0.D0
+          FACCON=FACCO1
+      END IF
+      IF (ISTAGE.EQ.2) THEN
+          XCH=X+C2*H
+          DO 131 I=1,N
+          Z1I=Z1(I)
+          Z(I)=ETA1*Z1I
+ 131      G1(I)=ALPH21*Z1I
+          FACCON=FACCO2
+      END IF
+      IF (ISTAGE.EQ.3) THEN
+          XCH=X+C3*H
+          DO 231 I=1,N
+          Z1I=Z1(I)
+          Z2I=Z2(I)
+          Z(I)=ANU1*Z1I+ANU2*Z2I
+ 231      G1(I)=ALPH31*Z1I+ALPH32*Z2I
+          FACCON=FACCO3
+      END IF
+      IF (ISTAGE.EQ.4) THEN
+          XCH=X+C4*H
+          DO 331 I=1,N
+          Z1I=Z1(I)
+          Z3I=Z3(I)
+          Z(I)=AMU1*Z1I+AMU3*Z3I
+ 331      G1(I)=ALPH41*Z1I+ALPH42*Z2(I)+ALPH43*Z3I
+          FACCON=FACCO4
+      END IF
+      IF (ISTAGE.EQ.5) THEN
+          XCH=XPH
+          DO 431 I=1,N
+          Z1I=Z1(I)
+          Z2I=Z2(I)
+          Z3I=Z3(I)
+          Z4I=Z4(I)
+          Z(I)=E1*Z1I+E2*Z2I+E3*Z3I+E4*Z4I
+          YHAT(I)=Z(I)
+ 431      G1(I)=ALPH51*Z1I+ALPH52*Z2I+ALPH53*Z3I+ALPH54*Z4I
+          FACCON=FACCO5
+      END IF
+
+
+
+C *** *** *** *** *** *** *** *** *** *** ***
+C  LOOP FOR THE SIMPLIFIED NEWTON ITERATION
+C *** *** *** *** *** *** *** *** *** *** ***
+            NEWT=0
+            THETA=ABS(THET)
+            IF (REJECT) THETA=2*ABS(THET)
+  40        CONTINUE
+            IF (NEWT.GE.NIT) THEN
+                H=H/2.D0
+                REJECT=.TRUE.
+                NEWTRE=.TRUE.
+                IF (CALJAC) GOTO 20
+                GOTO 10
+            END IF
+
+C ---     COMPUTE THE RIGHT-HAND SIDE
+            DO 41 I=1,N
+            H1(I)=G1(I)-Z(I)
+  41        CONT(I)=Y(I)+Z(I)
+            CALL FCN(N,XCH,CONT,F1)
+            NFCN=NFCN+1
+
+C ---     KppSolve THE LINEAR SYSTEMS
+            IF (IMPLCT) THEN
+                print *, 'IMPLCT 2'
+            ELSE
+                DO 345 I=1,N
+ 345            F1(I)=H1(I)*FAC1+F1(I)
+C                CALL SOL(N,LE,E,F1,IP)
+                CALL KppSolve(E, F1)
+            END IF
+            NEWT=NEWT+1
+            DYNO=0.D0
+C --- NORM 2 ---
+            DO 57 I=1,N
+  57        DYNO=DYNO+(F1(I)*SCAL(I))**2
+            DYNO=DSQRT(DYNO/N)
+C --- NORM INF ---
+C            DO 57 I=1,N
+C  57        DYNO=DMAX1( DYNO, DABS(F1(I)*SCAL(I)) )
+
+
+C ---     BAD CONVERGENCE OR NUMBER OF ITERATIONS TO LARGE
+            IF (NEWT.GE.2.AND.NEWT.LT.NIT) THEN
+                THETA=DYNO/DYNOLD
+                IF (THETA.LT.0.99D0) THEN
+                    FACCON=THETA/(1.0D0-THETA)
+                    DYTH=FACCON*DYNO*THETA**(NIT-1-NEWT)
+                    QNEWT=DMAX1(1.0D-4,DMIN1(16.0D0,DYTH/FNEWT))
+                    IF (QNEWT.GE.1.0D0) THEN
+                         H=.8D0*H*QNEWT**(-1.0D0/(NIT-NEWT))
+                         REJECT=.TRUE.
+                         NEWTRE=.TRUE.
+                         IF (CALJAC) GOTO 20
+                         GOTO 10
+                    END IF
+                ELSE
+                    NEWTRE=.TRUE.
+                    GOTO 78
+                END IF
+            END IF
+            DYNOLD=DYNO
+            DO 58 I=1,N
+  58        Z(I)=Z(I)+F1(I)
+            NSOL=NSOL+1
+            IF (FACCON*DYNO.GT.FNEWT) GOTO 40
+
+C --- END OF SIMPILFIED NEWTON
+      IF (ISTAGE.EQ.1) THEN
+          DO I=1,N
+            Z1(I) = Z(I)
+          END DO
+          FACCO1=FACCON
+      END IF
+      IF (ISTAGE.EQ.2) THEN
+          DO I=1,N
+            Z2(I) = Z(I)
+          END DO
+          FACCO2=FACCON
+      END IF
+      IF (ISTAGE.EQ.3) THEN
+          DO I=1,N
+            Z3(I) = Z(I)
+          END DO
+          FACCO3=FACCON
+      END IF
+      IF (ISTAGE.EQ.4) THEN
+          DO I=1,N
+            Z4(I) = Z(I)
+          END DO
+          FACCO4=FACCON
+      END IF
+      IF (ISTAGE.EQ.5) THEN
+          DO I=1,N
+            Z5(I) = Z(I)
+          END DO
+          FACCO5=FACCON
+      END IF
+  59  CONTINUE
+
+
+C *** *** *** *** *** *** ***
+C  ERROR ESTIMATION
+C *** *** *** *** *** *** ***
+      NSTEP=NSTEP+1
+      IF (IMPLCT) THEN
+          print *,'IMPLCT 3'
+      ELSE
+          DO 461 I=1,N
+ 461      CONT(I)=FAC1*(Z5(I)-YHAT(I))
+      END IF
+
+      CALL KppSolve(E, CONT)
+
+      ERR=0.D0
+C ---- NORM 2 ---
+      DO 64 I=1,N
+  64  ERR=ERR+(CONT(I)*SCAL(I))**2
+      ERR=DMAX1(DSQRT(ERR/N),1.D-10)
+
+C ---- NORM INF ---
+C      DO 64 I=1,N
+c  64  ERR=DMAX1( ERR, DABS( CONT(I)*SCAL(I) ) )
+
+C --- COMPUTATION OF HNEW
+C --- WE REQUIRE .25<=HNEW/H<=10.
+      FAC=DMIN1(SAFE,CFAC/(NEWT+2*NIT))
+      QUOT=DMAX1(.25D0,DMIN1(10.D0,(ERR)**.25D0/FAC))
+      HNEW= H/QUOT
+
+C *** *** *** *** *** *** ***
+C  IS THE ERROR SMALL ENOUGH ?
+C *** *** *** *** *** *** ***
+      IF (ERR.LT.1.D0) THEN
+C --- STEP IS ACCEPTED
+         FIRST=.FALSE.
+         NACCPT=NACCPT+1
+         HOLD=H
+         XOLD=X
+C --- COEFFICIENTS FOR CONTINUOUS SOLUTION
+         DO 74 I=1,N
+          Z1I=Z1(I)
+          Z2I=Z2(I)
+          Z3I=Z3(I)
+          Z4I=Z4(I)
+          Z5I=Z5(I)
+         CONT(I)=Y(I)
+         Y(I)=Y(I)+Z5I
+         CONT(I+NN) =D11*Z1I+D12*Z2I+D13*Z3I+D14*Z4I+D15*Z5I
+         CONT(I+NN2)=D21*Z1I+D22*Z2I+D23*Z3I+D24*Z4I+D25*Z5I
+         CONT(I+NN3)=D31*Z1I+D32*Z2I+D33*Z3I+D34*Z4I+D35*Z5I
+         CONT(I+NN4)=D41*Z1I+D42*Z2I+D43*Z3I+D44*Z4I+D45*Z5I
+         YHAT(I)=Z5I
+         IF (ITOL.EQ.0) THEN
+           SCAL(I)=1.D0/( AbsTol(1)+RelTol(1)*DABS(Y(I)) )
+         ELSE
+           SCAL(I)=1.D0/( AbsTol(I)+RelTol(I)*DABS(Y(I)) )
+         END IF
+  74     CONTINUE
+         X=XPH
+         CALJAC=.FALSE.
+         IF ((X-XEND)*POSNEG+UROUND.GT.0.D0) THEN
+            H=HOPT
+            IDID=1
+            RETURN
+         END IF
+         IF (IJAC.EQ.0) CALL FCN(N,X,Y,Y0)
+         NFCN=NFCN+1
+         HNEW=POSNEG*DMIN1(DABS(HNEW),HMAX1)
+         HOPT=HNEW
+         IF (REJECT) HNEW=POSNEG*DMIN1(DABS(HNEW),DABS(H))
+         REJECT=.FALSE.
+         NEWTRE=.FALSE.
+         IF ((X+HNEW/QUOT1-XEND)*POSNEG.GT.0.D0) THEN
+            H=XEND-X
+         ELSE
+            QT=HNEW/H
+            IF (THETA.LE.THET.AND.QT.GE.QUOT1.AND.QT.LE.QUOT2) GOTO 30
+            H = HNEW
+         END IF
+         IF (THETA.LE.THET) GOTO 20
+         GOTO 10
+
+      ELSE
+C --- STEP IS REJECTED
+         REJECT=.TRUE.
+         IF (FIRST) THEN
+             H=H/10.D0
+         ELSE
+             H=HNEW
+         END IF
+         IF (NACCPT.GE.1) NREJCT=NREJCT+1
+         IF (CALJAC) GOTO 20
+         GOTO 10
+      END IF
+
+C --- UNEXPECTED STEP-REJECTION
+  78  CONTINUE
+      IF (IER.NE.0) THEN
+          WRITE (6,*) ' MATRIX IS SINGULAR, IER=',IER,' X=',X,' H=',H
+          NSING=NSING+1
+          IF (NSING.GE.6) GOTO 79
+      END IF
+      H=H*0.5D0
+      REJECT=.TRUE.
+      IF (CALJAC) GOTO 20
+      GOTO 10
+
+C --- FAIL EXIT
+  79  WRITE (6,979) X,H,IER
+ 979  FORMAT(' EXIT OF SDIRK4 AT X=',D14.7,'   H=',D14.7,'   IER=',I4)
+      IDID=-1
+      RETURN
+      END
+C
+
+
+      SUBROUTINE FUNC_CHEM(N, T, Y, P)
+      INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Global.h'
+      INTEGER N
+      KPP_REAL   T, Told
+      KPP_REAL   Y(NVAR), P(NVAR)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Fun( Y,  FIX, RCONST, P )
+      TIME = Told
+      RETURN
+      END
+
+
+      SUBROUTINE JAC_CHEM(N, T, Y, J)
+      INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Global.h'
+      INTEGER N
+      KPP_REAL   Told, T
+      KPP_REAL   Y(NVAR), J(LU_NONZERO)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Jac_SP( Y,  FIX, RCONST, J )
+      TIME = Told
+      RETURN
+      END
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/kpp_sdirk4.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/kpp_sdirk4.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/kpp_sdirk4.f90	(revision 2696)
@@ -0,0 +1,972 @@
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
+!  SDIRK - Singly-Diagonally-Implicit Runge-Kutta method                  !
+!                       (L-stable, 5 stages, order 4)                     !
+!  By default the code employs the KPP sparse linear algebra routines     !
+!  Compile with -DFULL_ALGEBRA to use full linear algebra (LAPACK)        !
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
+! A. Sandu - version of July 10, 2005
+
+MODULE KPP_ROOT_Integrator
+
+  USE KPP_ROOT_Precision
+  USE KPP_ROOT_Global, ONLY: FIX, RCONST, TIME
+  USE KPP_ROOT_Parameters, ONLY: NVAR, NSPEC, NFIX, LU_NONZERO
+  USE KPP_ROOT_JacobianSP, ONLY: LU_DIAG
+  USE KPP_ROOT_LinearAlgebra, ONLY: KppDecomp, KppSolve, &
+               Set2zero, WLAMCH, WAXPY, WCOPY
+  
+  IMPLICIT NONE
+  PUBLIC
+  SAVE
+  
+  !~~~>  Statistics on the work performed by the SDIRK method
+  INTEGER :: Nfun,Njac,Nstp,Nacc,Nrej,Ndec,Nsol,Nsng
+  INTEGER, PARAMETER :: ifun=1, ijac=2, istp=3, iacc=4,  &
+    irej=5, idec=6, isol=7, isng=8, itexit=1, ihexit=2
+  !  SDIRK method coefficients
+  KPP_REAL :: rkAlpha(5,4), rkBeta(5,4), rkD(4,5),  &
+                   rkGamma, rkA(5,5), rkB(5), rkC(5)
+                   
+  ! description of the error numbers IERR
+  CHARACTER(LEN=50), PARAMETER, DIMENSION(-8:1) :: IERR_NAMES = (/ &
+    'Matrix is repeatedly singular                     ', & ! -8
+    'Step size too small: T + 10*H = T or H < Roundoff ', & ! -7
+    'No of steps exceeds maximum bound                 ', & ! -6
+    'Improper tolerance values                         ', & ! -5
+    'FacMin/FacMax/FacRej must be positive             ', & ! -4
+    'Hmin/Hmax/Hstart must be positive                 ', & ! -3
+    'Improper value for maximal no of Newton iterations', & ! -2
+    'Improper value for maximal no of steps            ', & ! -1
+    '                                                  ', & !  0 (not used)
+    'Success                                           ' /) !  1
+
+CONTAINS
+
+SUBROUTINE INTEGRATE( TIN, TOUT, &
+  ICNTRL_U, RCNTRL_U, ISTATUS_U, RSTATUS_U, IERR_U )
+
+   USE KPP_ROOT_Parameters
+   USE KPP_ROOT_Global
+   IMPLICIT NONE
+
+   KPP_REAL, INTENT(IN) :: TIN  ! Start Time
+   KPP_REAL, INTENT(IN) :: TOUT ! End Time
+   ! Optional input parameters and statistics
+   INTEGER,  INTENT(IN),  OPTIONAL :: ICNTRL_U(20)
+   KPP_REAL, INTENT(IN),  OPTIONAL :: RCNTRL_U(20)
+   INTEGER,  INTENT(OUT), OPTIONAL :: ISTATUS_U(20)
+   KPP_REAL, INTENT(OUT), OPTIONAL :: RSTATUS_U(20)
+   INTEGER,  INTENT(OUT), OPTIONAL :: IERR_U
+
+   !INTEGER, SAVE :: Ntotal = 0
+   KPP_REAL :: RCNTRL(20), RSTATUS(20)
+   INTEGER  :: ICNTRL(20), ISTATUS(20), IERR
+
+   ICNTRL(:)  = 0
+   RCNTRL(:)  = 0.0_dp
+   ISTATUS(:) = 0
+
+   ! If optional parameters are given, and if they are >0, 
+   ! then they overwrite default settings. 
+   IF (PRESENT(ICNTRL_U)) THEN
+     WHERE(ICNTRL_U(:) > 0) ICNTRL(:) = ICNTRL_U(:)
+   END IF
+   IF (PRESENT(RCNTRL_U)) THEN
+     WHERE(RCNTRL_U(:) > 0) RCNTRL(:) = RCNTRL_U(:)
+   END IF
+
+   CALL SDIRK( NVAR,TIN,TOUT,VAR,RTOL,ATOL,          &
+               RCNTRL,ICNTRL,RSTATUS,ISTATUS,IERR )
+
+! mz_rs_20050716: IERR and ISTATUS(istp) are returned to the user who then
+! decides what to do about it, i.e. either stop the run or ignore it.
+!!$   IF (IERR < 0) THEN
+!!$        PRINT *,'SDIRK: Unsuccessful exit at T=',TIN,' (IERR=',IERR,')'
+!!$   ENDIF
+!!$   Ntotal = Ntotal + Nstp
+!!$   PRINT*,'NSTEPS=',Nstp, '(',Ntotal,')'
+
+    STEPMIN = RSTATUS(ihexit) ! Save last step
+   
+   ! if optional parameters are given for output they to return information
+   IF (PRESENT(ISTATUS_U)) ISTATUS_U(:) = ISTATUS(:)
+   IF (PRESENT(RSTATUS_U)) THEN
+     RSTATUS_U(:) = RSTATUS(:)
+     RSTATUS_U(1) = TOUT ! final time
+   END IF  
+   IF (PRESENT(IERR_U))    IERR_U       = IERR
+
+   END SUBROUTINE INTEGRATE
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE SDIRK(N, Tinitial, Tfinal, Y, RelTol, AbsTol,     &
+                       RCNTRL, ICNTRL, RSTATUS, ISTATUS, IDID)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!    Solves the system y'=F(t,y) using a Singly-Diagonally-Implicit
+!    Runge-Kutta (SDIRK) method.
+!
+!    For details on SDIRK methods and their implementation consult:
+!      E. Hairer and G. Wanner
+!      "Solving ODEs II. Stiff and differential-algebraic problems".
+!      Springer series in computational mathematics, Springer-Verlag, 1996.
+!    This code is based on the SDIRK4 routine in the above book.
+!
+!    (C)  Adrian Sandu, July 2005
+!    Virginia Polytechnic Institute and State University
+!    Contact: sandu@cs.vt.edu
+!    This implementation is part of KPP - the Kinetic PreProcessor
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>   INPUT ARGUMENTS:
+!
+!-     Y(NVAR)    = vector of initial conditions (at T=Tinitial)
+!-    [Tinitial,Tfinal]  = time range of integration
+!     (if Tinitial>Tfinal the integration is performed backwards in time)
+!-    RelTol, AbsTol = user precribed accuracy
+!- SUBROUTINE ode_Fun( T, Y, Ydot ) = ODE function,
+!                       returns Ydot = Y' = F(T,Y)
+!- SUBROUTINE ode_Fun( T, Y, Ydot ) = Jacobian of the ODE function,
+!                       returns Jcb = dF/dY
+!-    ICNTRL(1:20)    = integer inputs parameters
+!-    RCNTRL(1:20)    = real inputs parameters
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>     OUTPUT ARGUMENTS:
+!
+!-    Y(NVAR)         -> vector of final states (at T->Tfinal)
+!-    ISTATUS(1:20)   -> integer output parameters
+!-    RSTATUS(1:20)   -> real output parameters
+!-    IDID            -> job status upon return
+!                        success (positive value) or
+!                        failure (negative value)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>     INPUT PARAMETERS:
+!
+!    Note: For input parameters equal to zero the default values of the
+!       corresponding variables are used.
+!
+!    Note: For input parameters equal to zero the default values of the
+!          corresponding variables are used.
+!~~~>  
+!    ICNTRL(1) = not used
+!
+!    ICNTRL(2) = 0: AbsTol, RelTol are NVAR-dimensional vectors
+!              = 1: AbsTol, RelTol are scalars
+!
+!    ICNTRL(3) = not used
+!
+!    ICNTRL(4)  -> maximum number of integration steps
+!        For ICNTRL(4)=0 the default value of 100000 is used
+!
+!    ICNTRL(5)  -> maximum number of Newton iterations
+!        For ICNTRL(5)=0 the default value of 8 is used
+!
+!    ICNTRL(6)  -> starting values of Newton iterations:
+!        ICNTRL(6)=0 : starting values are interpolated (the default)
+!        ICNTRL(6)=1 : starting values are zero
+!
+!~~~>  Real parameters
+!
+!    RCNTRL(1)  -> Hmin, lower bound for the integration step size
+!                  It is strongly recommended to keep Hmin = ZERO
+!    RCNTRL(2)  -> Hmax, upper bound for the integration step size
+!    RCNTRL(3)  -> Hstart, starting value for the integration step size
+!
+!    RCNTRL(4)  -> FacMin, lower bound on step decrease factor (default=0.2)
+!    RCNTRL(5)  -> FacMax, upper bound on step increase factor (default=6)
+!    RCNTRL(6)  -> FacRej, step decrease factor after multiple rejections
+!                 (default=0.1)
+!    RCNTRL(7)  -> FacSafe, by which the new step is slightly smaller
+!                  than the predicted value  (default=0.9)
+!    RCNTRL(8)  -> ThetaMin. If Newton convergence rate smaller
+!                  than ThetaMin the Jacobian is not recomputed;
+!                  (default=0.001)
+!    RCNTRL(9)  -> NewtonTol, stopping criterion for Newton's method
+!                  (default=0.03)
+!    RCNTRL(10) -> Qmin
+!    RCNTRL(11) -> Qmax. If Qmin < Hnew/Hold < Qmax, then the
+!                  step size is kept constant and the LU factorization
+!                  reused (default Qmin=1, Qmax=1.2)
+!
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>     OUTPUT PARAMETERS:
+!
+!    Note: each call to Rosenbrock adds the current no. of fcn calls
+!      to previous value of ISTATUS(1), and similar for the other params.
+!      Set ISTATUS(1:10) = 0 before call to avoid this accumulation.
+!
+!    ISTATUS(1) = No. of function calls
+!    ISTATUS(2) = No. of jacobian calls
+!    ISTATUS(3) = No. of steps
+!    ISTATUS(4) = No. of accepted steps
+!    ISTATUS(5) = No. of rejected steps (except at the beginning)
+!    ISTATUS(6) = No. of LU decompositions
+!    ISTATUS(7) = No. of forward/backward substitutions
+!    ISTATUS(8) = No. of singular matrix decompositions
+!
+!    RSTATUS(1)  -> Texit, the time corresponding to the
+!                   computed Y upon return
+!    RSTATUS(2)  -> Hexit, last predicted step before exit
+!    For multiple restarts, use Hexit as Hstart in the following run
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+
+! Arguments      
+      INTEGER, INTENT(IN)          :: N, ICNTRL(20)
+      KPP_REAL, INTENT(IN)    :: Tinitial, Tfinal,    &
+                    RelTol(NVAR), AbsTol(NVAR), RCNTRL(20)
+      KPP_REAL, INTENT(INOUT) :: Y(NVAR)
+      INTEGER, INTENT(OUT)         :: IDID
+      INTEGER, INTENT(INOUT)       :: ISTATUS(20) 
+      KPP_REAL, INTENT(OUT)   :: RSTATUS(20)
+       
+! Local variables      
+      KPP_REAL :: Hmin, Hmax, Hstart, Roundoff,    &
+                       FacMin, Facmax, FacSafe, FacRej, &
+                       ThetaMin, NewtonTol, Qmin, Qmax, &
+                       Texit, Hexit
+      INTEGER :: ITOL, NewtonMaxit, Max_no_steps, i
+      KPP_REAL, PARAMETER :: ZERO = 0.0d0
+
+!~~~>  Initialize statistics
+   Nfun = ISTATUS(ifun)
+   Njac = ISTATUS(ijac)
+   Nstp = ISTATUS(istp)
+   Nacc = ISTATUS(iacc)
+   Nrej = ISTATUS(irej)
+   Ndec = ISTATUS(idec)
+   Nsol = ISTATUS(isol)
+   Nsng = ISTATUS(isng)
+!   Nfun=0; Njac=0; Nstp=0; Nacc=0
+!   Nrej=0; Ndec=0; Nsol=0; Nsng=0
+       
+   IDID = 0
+
+!~~~>  For Scalar tolerances (ICNTRL(2).NE.0)  the code uses AbsTol(1) and RelTol(1)
+!   For Vector tolerances (ICNTRL(2) == 0) the code uses AbsTol(1:NVAR) and RelTol(1:NVAR)
+   IF (ICNTRL(2) == 0) THEN
+      ITOL = 1
+   ELSE
+      ITOL = 0
+   END IF
+
+!~~~>   The maximum number of time steps admitted
+   IF (ICNTRL(3) == 0) THEN
+      Max_no_steps = 100000
+   ELSEIF (Max_no_steps > 0) THEN
+      Max_no_steps=ICNTRL(3)
+   ELSE
+      PRINT * ,'User-selected ICNTRL(3)=',ICNTRL(3)
+      CALL SDIRK_ErrorMsg(-1,Tinitial,ZERO,IDID)
+   END IF
+
+
+!~~~> The maximum number of Newton iterations admitted
+   IF(ICNTRL(4) == 0)THEN
+      NewtonMaxit=8
+   ELSE
+      NewtonMaxit=ICNTRL(4)
+      IF(NewtonMaxit <= 0)THEN
+          PRINT * ,'User-selected ICNTRL(4)=',ICNTRL(4)
+          CALL SDIRK_ErrorMsg(-2,Tinitial,ZERO,IDID)
+      END IF
+   END IF
+
+!~~~>  Unit roundoff (1+Roundoff>1)
+      Roundoff = WLAMCH('E')
+
+!~~~>  Lower bound on the step size: (positive value)
+   IF (RCNTRL(1) == ZERO) THEN
+      Hmin = ZERO
+   ELSEIF (RCNTRL(1) > ZERO) THEN
+      Hmin = RCNTRL(1)
+   ELSE
+      PRINT * , 'User-selected RCNTRL(1)=', RCNTRL(1)
+      CALL SDIRK_ErrorMsg(-3,Tinitial,ZERO,IDID)
+   END IF
+   
+!~~~>  Upper bound on the step size: (positive value)
+   IF (RCNTRL(2) == ZERO) THEN
+      Hmax = ABS(Tfinal-Tinitial)
+   ELSEIF (RCNTRL(2) > ZERO) THEN
+      Hmax = MIN(ABS(RCNTRL(2)),ABS(Tfinal-Tinitial))
+   ELSE
+      PRINT * , 'User-selected RCNTRL(2)=', RCNTRL(2)
+      CALL SDIRK_ErrorMsg(-3,Tinitial,ZERO,IDID)
+   END IF
+   
+!~~~>  Starting step size: (positive value)
+   IF (RCNTRL(3) == ZERO) THEN
+      Hstart = MAX(Hmin,Roundoff)
+   ELSEIF (RCNTRL(3) > ZERO) THEN
+      Hstart = MIN(ABS(RCNTRL(3)),ABS(Tfinal-Tinitial))
+   ELSE
+      PRINT * , 'User-selected Hstart: RCNTRL(3)=', RCNTRL(3)
+      CALL SDIRK_ErrorMsg(-3,Tinitial,ZERO,IDID)
+   END IF
+   
+!~~~>  Step size can be changed s.t.  FacMin < Hnew/Hexit < FacMax
+   IF (RCNTRL(4) == ZERO) THEN
+      FacMin = 0.2_dp
+   ELSEIF (RCNTRL(4) > ZERO) THEN
+      FacMin = RCNTRL(4)
+   ELSE
+      PRINT * , 'User-selected FacMin: RCNTRL(4)=', RCNTRL(4)
+      CALL SDIRK_ErrorMsg(-4,Tinitial,ZERO,IDID)
+   END IF
+   IF (RCNTRL(5) == ZERO) THEN
+      FacMax = 10.0_dp
+   ELSEIF (RCNTRL(5) > ZERO) THEN
+      FacMax = RCNTRL(5)
+   ELSE
+      PRINT * , 'User-selected FacMax: RCNTRL(5)=', RCNTRL(5)
+      CALL SDIRK_ErrorMsg(-4,Tinitial,ZERO,IDID)
+   END IF
+!~~~>   FacRej: Factor to decrease step after 2 succesive rejections
+   IF (RCNTRL(6) == ZERO) THEN
+      FacRej = 0.1_dp
+   ELSEIF (RCNTRL(6) > ZERO) THEN
+      FacRej = RCNTRL(6)
+   ELSE
+      PRINT * , 'User-selected FacRej: RCNTRL(6)=', RCNTRL(6)
+      CALL SDIRK_ErrorMsg(-4,Tinitial,ZERO,IDID)
+   END IF
+!~~~>   FacSafe: Safety Factor in the computation of new step size
+   IF (RCNTRL(7) == ZERO) THEN
+      FacSafe = 0.9_dp
+   ELSEIF (RCNTRL(7) > ZERO) THEN
+      FacSafe = RCNTRL(7)
+   ELSE
+      PRINT * , 'User-selected FacSafe: RCNTRL(7)=', RCNTRL(7)
+      CALL SDIRK_ErrorMsg(-4,Tinitial,ZERO,IDID)
+   END IF
+
+!~~~> DECIDES WHETHER THE JACOBIAN SHOULD BE RECOMPUTED;
+      IF(RCNTRL(8) == 0.D0)THEN
+         ThetaMin = 1.0d-3
+      ELSE
+         ThetaMin = RCNTRL(8)
+      END IF
+
+!~~~> STOPPING CRITERION FOR NEWTON'S METHOD
+      IF(RCNTRL(9) == 0.0d0)THEN
+         NewtonTol = 3.0d-2
+      ELSE
+         NewtonTol =RCNTRL(9)
+      END IF
+
+!~~~> Qmin AND Qmax: IF Qmin < Hnew/Hold < Qmax, STEP SIZE = CONST.
+      IF(RCNTRL(10) == 0.D0)THEN
+         Qmin=1.D0
+      ELSE
+         Qmin=RCNTRL(10)
+      END IF
+      IF(RCNTRL(11) == 0.D0)THEN
+         Qmax=1.2D0
+      ELSE
+         Qmax=RCNTRL(11)
+      END IF
+
+!~~~>  Check if tolerances are reasonable
+      IF (ITOL == 0) THEN
+         IF (AbsTol(1) <= 0.D0.OR.RelTol(1) <= 10.D0*Roundoff) THEN
+            PRINT * , ' Scalar AbsTol = ',AbsTol(1)
+            PRINT * , ' Scalar RelTol = ',RelTol(1)
+            CALL SDIRK_ErrorMsg(-5,Tinitial,ZERO,IDID)
+         END IF
+      ELSE
+         DO i=1,N
+            IF (AbsTol(i) <= 0.D0.OR.RelTol(i) <= 10.D0*Roundoff) THEN
+              PRINT * , ' AbsTol(',i,') = ',AbsTol(i)
+              PRINT * , ' RelTol(',i,') = ',RelTol(i)
+              CALL SDIRK_ErrorMsg(-5,Tinitial,ZERO,IDID)
+            END IF
+         END DO
+      END IF
+    
+    IF (IDID < 0) RETURN
+
+
+!~~~> CALL TO CORE INTEGRATOR 
+    CALL SDIRK_Integrator( N,Tinitial,Tfinal,Y,Hmin,Hmax,Hstart, &
+          RelTol,AbsTol,ITOL, Max_no_steps, NewtonMaxit,         &
+          Roundoff, FacMin, FacMax, FacRej, FacSafe, ThetaMin,   &
+          NewtonTol, Qmin, Qmax, Hexit, Texit, IDID )
+
+!~~~>  Collect run statistics
+   ISTATUS(ifun) = Nfun
+   ISTATUS(ijac) = Njac
+   ISTATUS(istp) = Nstp
+   ISTATUS(iacc) = Nacc
+   ISTATUS(irej) = Nrej
+   ISTATUS(idec) = Ndec
+   ISTATUS(isol) = Nsol
+   ISTATUS(isng) = Nsng
+!~~~> Last T and H
+   RSTATUS(:)      = 0.0_dp
+   RSTATUS(itexit) = Texit
+   RSTATUS(ihexit) = Hexit
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   CONTAINS  !  PROCEDURES INTERNAL TO SDIRK
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE SDIRK_Integrator( N,Tinitial,Tfinal,Y,Hmin,Hmax,Hstart, &
+                RelTol,AbsTol,ITOL, Max_no_steps, NewtonMaxit,        &
+                Roundoff, FacMin, FacMax, FacRej, FacSafe, ThetaMin,  &
+                NewtonTol, Qmin, Qmax, Hexit, Texit, IDID )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!     CORE INTEGRATOR FOR SDIRK4
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      USE KPP_ROOT_Parameters
+      IMPLICIT NONE
+
+!~~~> Arguments:      
+      INTEGER :: N
+      KPP_REAL, INTENT(INOUT) :: Y(NVAR)
+      KPP_REAL, INTENT(IN) :: Tinitial, Tfinal, Hmin, Hmax, Hstart, &
+                        RelTol(NVAR), AbsTol(NVAR), Roundoff,            &
+                        FacMin, FacMax, FacRej, FacSafe, ThetaMin,       &
+                        NewtonTol, Qmin, Qmax
+      KPP_REAL, INTENT(OUT) :: Hexit, Texit
+      INTEGER, INTENT(IN)  :: ITOL, Max_no_steps, NewtonMaxit
+      INTEGER, INTENT(OUT) :: IDID
+      
+!~~~> Local variables:      
+      KPP_REAL :: Z(NVAR,5), FV(NVAR,5), CONT(NVAR,4),      &
+                       NewtonFactor(5), SCAL(NVAR), RHS(NVAR),   &
+                       G(NVAR), Yhat(NVAR), TMP(NVAR),           &
+                       T, H, Hold, Theta, Hratio, Hmax1, W,      &
+                       HGammaInv, DYTH, QNEWT, ERR, Fac, Hnew,   &
+                       Tdirection, NewtonErr, NewtonErrOld
+      INTEGER :: i, j, ISING, istage, NewtonIter, IP(NVAR)
+      LOGICAL :: Reject, FIRST, NewtonReject, FreshJac, SkipJacUpdate, SkipLU
+      
+#ifdef FULL_ALGEBRA      
+      KPP_REAL FJAC(NVAR,NVAR),  E(NVAR,NVAR)
+#else      
+      KPP_REAL FJAC(LU_NONZERO), E(LU_NONZERO)
+#endif      
+      KPP_REAL, PARAMETER :: ZERO = 0.0d0, ONE = 1.0d0
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!  INITIALISATIONS
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      CALL SDIRK_Coefficients
+      T = Tinitial
+      Tdirection = SIGN(1.D0,Tfinal-Tinitial)
+      Hmax1=MIN(ABS(Hmax),ABS(Tfinal-Tinitial))
+      H = MAX(ABS(Hmin),ABS(Hstart))
+      IF (ABS(H) <= 10.D0*Roundoff) H=1.0D-6
+      H=MIN(ABS(H),Hmax1)
+      H=SIGN(H,Tdirection)
+      Hold=H
+      NewtonReject=.FALSE.
+      SkipLU =.FALSE.
+      FreshJac = .FALSE.
+      SkipJacUpdate = .FALSE.
+      Reject=.FALSE.
+      FIRST=.TRUE.
+      NewtonFactor(1:5)=ONE
+
+      CALL SDIRK_ErrorScale(ITOL, AbsTol, RelTol, Y, SCAL)
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Time loop begins
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Tloop: DO WHILE ( (Tfinal-T)*Tdirection - Roundoff > ZERO )
+
+
+!~~~>  Compute E = 1/(h*gamma)-Jac and its LU decomposition
+      IF ( SkipLU ) THEN ! This time around skip the Jac update and LU
+         SkipLU = .FALSE.; FreshJac = .FALSE.; SkipJacUpdate = .FALSE.
+      ELSE
+         CALL SDIRK_PrepareMatrix ( H, T, Y, FJAC, &
+                   FreshJac, SkipJacUpdate, E, IP, Reject, ISING )
+         IF (ISING /= 0) THEN
+             CALL SDIRK_ErrorMsg(-8,T,H,IDID); RETURN
+         END IF
+      END IF      
+
+      IF (Nstp>Max_no_steps) THEN
+             CALL SDIRK_ErrorMsg(-6,T,H,IDID); RETURN
+      END IF   
+      IF ( (T+0.1d0*H == T) .OR. (ABS(H) <= Roundoff) ) THEN
+             CALL SDIRK_ErrorMsg(-7,T,H,IDID); RETURN
+      END IF   
+
+      HGammaInv = ONE/(H*rkGamma)
+
+!~~~>    NEWTON ITERATION
+stages:DO istage=1,5
+
+      NewtonFactor(istage) = MAX(NewtonFactor(istage),Roundoff)**0.8d0
+
+!~~~>  STARTING VALUES FOR NEWTON ITERATION
+      CALL Set2zero(N,G)
+      CALL Set2zero(N,Z(1,istage))
+      IF (istage==1) THEN
+          IF (FIRST.OR.NewtonReject) THEN
+              CALL Set2zero(N,Z(1,istage))
+          ELSE
+              W=ONE+rkGamma*H/Hold
+              DO i=1,N
+                Z(i,istage)=W*(CONT(i,1)+W*(CONT(i,2)+W*(CONT(i,3)+W*CONT(i,4))))-Yhat(i)
+              END DO     
+          END IF
+      ELSE
+          DO j = 1, istage-1
+            ! Gj(:) = sum_j Beta(i,j)*Zj(:) = H * sum_j A(i,j)*Fun(Zj(:))
+            CALL WAXPY(N,rkBeta(istage,j),Z(1,j),1,G,1)
+            ! CALL WAXPY(N,H*rkA(istage,j),FV(1,j),1,G,1)
+            ! Zi(:) = sum_j Alpha(i,j)*Zj(:)
+            CALL WAXPY(N,rkAlpha(istage,j),Z(1,j),1,Z(1,istage),1)
+          END DO
+          IF (istage==5) CALL WCOPY(N,Z(1,istage),1,Yhat,1)  ! Yhat(:) <- Z5(:)
+      END IF
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!  LOOP FOR THE SIMPLIFIED NEWTON ITERATION
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+            NewtonIter=0
+            Theta=ABS(ThetaMin)
+            IF (Reject) Theta=2*ABS(ThetaMin)
+            NewtonErr = 1.0e+6 ! To force-enter Newton loop
+            
+  Newton:   DO WHILE (NewtonFactor(istage)*NewtonErr > NewtonTol)
+            
+            IF (NewtonIter >= NewtonMaxit) THEN
+                H=H*0.5d0
+                Reject=.TRUE.
+                NewtonReject=.TRUE.
+                CYCLE Tloop
+            END IF
+            NewtonIter=NewtonIter+1
+
+!~~~>     COMPUTE THE RIGHT-HAND SIDE
+            TMP(1:N) = Y(1:N) + Z(1:N,istage)
+            CALL FUN_CHEM(T+rkC(istage)*H,TMP,RHS)
+            TMP(1:N) = G(1:N) - Z(1:N,istage)
+            CALL WAXPY(N,HGammaInv,TMP,1,RHS,1) ! RHS(:) <- RHS(:) + HGammaInv*(G(:)-Z(:))
+
+!~~~>     SOLVE THE LINEAR SYSTEMS
+#ifdef FULL_ALGEBRA  
+            CALL DGETRS( 'N', N, 1, E, N, IP, RHS, N, ISING )
+#else
+            CALL KppSolve(E, RHS)
+#endif
+            Nsol=Nsol+1
+            
+!~~~>     CHECK CONVERGENCE OR IF NUMBER OF ITERATIONS TOO LARGE
+            CALL SDIRK_ErrorNorm(N, RHS, SCAL, NewtonErr)
+            IF ( (NewtonIter >= 2) .AND. (NewtonIter < NewtonMaxit) ) THEN
+                Theta = NewtonErr/NewtonErrOld
+                IF (Theta < 0.99d0) THEN
+                    NewtonFactor(istage)=Theta/(ONE-Theta)
+                    DYTH = NewtonFactor(istage)*NewtonErr* &
+                           Theta**(NewtonMaxit-1-NewtonIter)
+                    QNEWT = MAX(1.0d-4,MIN(16.0d0,DYTH/NewtonTol))
+                    IF (QNEWT >= ONE) THEN
+                         H=.8D0*H*QNEWT**(-ONE/(NewtonMaxit-NewtonIter))
+                         Reject=.TRUE.
+                         NewtonReject=.TRUE.
+                         CYCLE Tloop ! go back to the beginning of DO step
+                    END IF
+                ELSE
+                    NewtonReject=.TRUE.
+                    H=H*0.5d0
+                    Reject=.TRUE.
+                    CYCLE Tloop ! go back to the beginning of DO step
+                END IF
+            END IF
+            NewtonErrOld = NewtonErr
+            CALL WAXPY(N,ONE,RHS,1,Z(1,istage),1) ! Z(:) <-- Z(:)+RHS(:)
+            
+            END DO Newton
+
+!~~> END OF SIMPLIFIED NEWTON ITERATION
+            ! Save function values
+            TMP(1:N) = Y(1:N) + Z(1:N,istage)
+            CALL FUN_CHEM(T+rkC(istage)*H,TMP,FV(1,istage))
+
+   END DO stages
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!  ERROR ESTIMATION
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      Nstp=Nstp+1
+      TMP(1:N)=HGammaInv*(Z(1:N,5)-Yhat(1:N))
+
+#ifdef FULL_ALGEBRA  
+      CALL DGETRS( 'N', N, 1, E, N, IP, TMP, N, ISING )
+#else
+      CALL KppSolve(E, TMP)
+#endif
+
+      CALL SDIRK_ErrorNorm(N, TMP, SCAL, ERR)
+
+!~~~> COMPUTATION OF Hnew: WE REQUIRE FacMin <= Hnew/H <= FacMax
+      !Safe = FacSafe*DBLE(1+2*NewtonMaxit)/DBLE(NewtonIter+2*NewtonMaxit)
+      Fac  = MAX(FacMin,MIN(FacMax,(ERR)**(-0.25d0)*FacSafe))
+      Hnew = H*Fac
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!  ACCEPT/Reject STEP
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+accept:  IF ( ERR < ONE ) THEN !~~~> STEP IS ACCEPTED
+
+         FIRST=.FALSE.
+         Nacc=Nacc+1
+         Hold=H
+
+!~~~> COEFFICIENTS FOR CONTINUOUS SOLUTION
+         CALL WAXPY(N,ONE,Z(1,5),1,Y,1) ! Y(:) <-- Y(:)+Z5(:)
+         CALL WCOPY(N,Z(1,5),1,Yhat,1)  ! Yhat <-- Z5
+
+         DO i=1,4  ! CONTi <-- Sum_j rkD(i,j)*Zj
+           CALL Set2zero(N,CONT(1,i))
+           DO j = 1,5
+             CALL WAXPY(N,rkD(i,j),Z(1,j),1,CONT(1,i),1)
+           END DO
+         END DO
+         
+         CALL SDIRK_ErrorScale(ITOL, AbsTol, RelTol, Y, SCAL)
+
+         T=T+H
+         FreshJac=.FALSE.
+
+         Hnew = Tdirection*MIN(ABS(Hnew),Hmax1)
+         Hexit = Hnew
+         IF (Reject) Hnew=Tdirection*MIN(ABS(Hnew),ABS(H))
+         Reject = .FALSE.
+         NewtonReject = .FALSE.
+         IF ((T+Hnew/Qmin-Tfinal)*Tdirection > 0.D0) THEN
+            H = Tfinal-T
+         ELSE
+            Hratio=Hnew/H
+            ! If step not changed too much, keep it as is;
+            !    do not update Jacobian and reuse LU
+            IF ( (Theta <= ThetaMin) .AND. (Hratio >= Qmin) &
+                                     .AND. (Hratio <= Qmax) ) THEN
+               SkipJacUpdate = .TRUE. 
+               SkipLU        = .TRUE. 
+            ELSE   
+               H = Hnew
+            END IF   
+         END IF
+         ! If convergence is fast enough, do not update Jacobian
+         IF (Theta <= ThetaMin) SkipJacUpdate = .TRUE. 
+
+      ELSE accept !~~~> STEP IS REJECTED
+
+         Reject=.TRUE.
+         IF (FIRST) THEN
+             H=H*FacRej
+         ELSE
+             H=Hnew
+         END IF
+         IF (Nacc >= 1) Nrej=Nrej+1
+         
+      END IF accept
+      
+      END DO Tloop
+
+      ! Successful return
+      Texit = T
+      IDID  = 1
+  
+      END SUBROUTINE SDIRK_Integrator
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE SDIRK_ErrorScale(ITOL, AbsTol, RelTol, Y, SCAL)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      INTEGER :: i, ITOL
+      KPP_REAL :: AbsTol(NVAR), RelTol(NVAR), &
+                       Y(NVAR), SCAL(NVAR)
+      IF (ITOL == 0) THEN
+        DO i=1,NVAR
+          SCAL(i) = 1.0d0 / ( AbsTol(1)+RelTol(1)*ABS(Y(i)) )
+        END DO
+      ELSE
+        DO i=1,NVAR
+          SCAL(i) = 1.0d0 / ( AbsTol(i)+RelTol(i)*ABS(Y(i)) )
+        END DO
+      END IF
+      END SUBROUTINE SDIRK_ErrorScale
+      
+      
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE SDIRK_ErrorNorm(N, Y, SCAL, ERR)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!      
+      INTEGER :: i, N
+      KPP_REAL :: Y(N), SCAL(N), ERR      
+      ERR=0.0d0
+      DO i=1,N
+           ERR = ERR+(Y(i)*SCAL(i))**2
+      END DO
+      ERR = MAX( SQRT(ERR/DBLE(N)), 1.0d-10 )
+!
+      END SUBROUTINE SDIRK_ErrorNorm
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE SDIRK_ErrorMsg(Code,T,H,IERR)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!    Handles all error messages
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+   KPP_REAL, INTENT(IN) :: T, H
+   INTEGER, INTENT(IN)  :: Code
+   INTEGER, INTENT(OUT) :: IERR
+
+   IERR = Code
+   PRINT * , &
+     'Forced exit from SDIRK due to the following error:'
+   IF ((Code>=-8).AND.(Code<=-1)) THEN
+     PRINT *, IERR_NAMES(Code)
+   ELSE
+     PRINT *, 'Unknown Error code: ', Code
+   ENDIF
+
+   PRINT *, "T=", T, "and H=", H
+
+ END SUBROUTINE SDIRK_ErrorMsg
+      
+      
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE SDIRK_PrepareMatrix ( H, T, Y, FJAC, &
+                   FreshJac, SkipJacUpdate, E, IP, Reject, ISING )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!     
+      IMPLICIT NONE
+      
+      KPP_REAL, INTENT(INOUT) :: H
+      KPP_REAL, INTENT(IN)    :: T, Y(NVAR)
+      LOGICAL, INTENT(INOUT)  :: FreshJac, SkipJacUpdate
+      INTEGER, INTENT(OUT)    :: ISING, IP(NVAR)
+      LOGICAL, INTENT(INOUT)  :: Reject
+#ifdef FULL_ALGEBRA
+      KPP_REAL, INTENT(INOUT) :: FJAC(NVAR,NVAR)
+      KPP_REAL, INTENT(OUT)   :: E(NVAR,NVAR)
+#else
+      KPP_REAL, INTENT(INOUT) :: FJAC(LU_NONZERO)
+      KPP_REAL, INTENT(OUT)   :: E(LU_NONZERO)
+#endif
+      KPP_REAL                :: HGammaInv
+      INTEGER                 :: i, j, ConsecutiveSng
+      KPP_REAL, PARAMETER     :: ONE = 1.0d0
+
+ 20   CONTINUE
+
+!~~~>  COMPUTE THE JACOBIAN
+      IF (SkipJacUpdate) THEN
+          SkipJacUpdate = .FALSE.
+      ELSE IF ( .NOT.FreshJac  ) THEN
+          CALL JAC_CHEM( T, Y, FJAC )
+          FreshJac = .TRUE.
+      END IF  
+
+!~~~>  Compute the matrix E = 1/(H*GAMMA)*Jac, and its decomposition
+      ConsecutiveSng = 0
+      ISING = 1
+      
+Hloop: DO WHILE (ISING /= 0)
+      
+      HGammaInv = ONE/(H*rkGamma)
+      
+#ifdef FULL_ALGEBRA
+      DO j=1,NVAR
+         DO i=1,NVAR
+            E(i,j)=-FJAC(i,j)
+         END DO
+         E(j,j)=E(j,j)+HGammaInv
+      END DO
+      CALL DGETRF( NVAR, NVAR, E, NVAR, IP, ISING )
+#else
+      DO i = 1,LU_NONZERO
+            E(i) = -FJAC(i)
+      END DO
+      DO i = 1,NVAR
+          j = LU_DIAG(i); E(j) = E(j) + HGammaInv
+      END DO
+      CALL KppDecomp ( E, ISING)
+      IP(1) = 1
+#endif
+      Ndec=Ndec+1
+
+      IF (ISING /= 0) THEN
+          WRITE (6,*) ' MATRIX IS SINGULAR, ISING=',ISING,' T=',T,' H=',H
+          Nsng = Nsng+1; ConsecutiveSng = ConsecutiveSng + 1
+          IF (ConsecutiveSng >= 6) RETURN ! Failure
+          H=H*0.5d0
+          Reject=.TRUE.
+          !~~~> Update Jacobian if not fresh
+          IF ( .NOT.FreshJac ) GOTO 20
+      END IF
+      
+      END DO Hloop
+
+      END SUBROUTINE SDIRK_PrepareMatrix
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE SDIRK_Coefficients
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+          rkGamma=4.0d0/15.0d0
+          
+          rkA(1,1)= 4.d0/15.d0
+          rkA(2,1)= 1.d0/2.d0
+          rkA(2,2)= 4.d0/15.d0
+          rkA(3,1)= 51069.d0/144200.d0
+          rkA(3,2)=-7809.d0/144200.d0
+          rkA(3,3)= 4.d0/15.d0 
+          rkA(4,1)= 12047244770625658.d0/141474406359725325.d0
+          rkA(4,2)=-3057890203562191.d0/47158135453241775.d0
+          rkA(4,3)= 2239631894905804.d0/28294881271945065.d0
+          rkA(4,4)= 4.d0/15.d0
+          rkA(5,1)= 181513.d0/86430.d0
+          rkA(5,2)=-89074.d0/116015.d0
+          rkA(5,3)= 83636.d0/34851.d0
+          rkA(5,4)=-69863904375173.d0/23297141763930.d0
+          rkA(5,5)= 4.d0/15.d0
+     
+          rkB(1)= 181513.d0/86430.d0
+          rkB(2)=-89074.d0/116015.d0
+          rkB(3)= 83636.d0/34851.d0
+          rkB(4)=-69863904375173.d0/23297141763930.d0
+          rkB(5)= 4/15.d0
+     
+          rkC(1)=4.d0/15.d0
+          rkC(2)=23.d0/30.d0
+          rkC(3)=17.d0/30.d0
+          rkC(4)=707.d0/1931.d0
+          rkC(5)=1.d0
+          
+          rkBeta(2,1)=15.0d0/8.0d0
+          rkBeta(3,1)=1577061.0d0/922880.0d0
+          rkBeta(3,2)=-23427.0d0/115360.0d0
+          rkBeta(4,1)=647163682356923881.0d0/2414496535205978880.0d0
+          rkBeta(4,2)=-593512117011179.0d0/3245291041943520.0d0
+          rkBeta(4,3)=559907973726451.0d0/1886325418129671.0d0
+          rkBeta(5,1)=724545451.0d0/796538880.0d0
+          rkBeta(5,2)=-830832077.0d0/267298560.0d0
+          rkBeta(5,3)=30957577.0d0/2509272.0d0
+          rkBeta(5,4)=-69863904375173.0d0/6212571137048.0d0
+          
+          rkAlpha(2,1)= 23.d0/8.d0
+          rkAlpha(3,1)= 0.9838473040915402d0
+          rkAlpha(3,2)= 0.3969226768377252d0
+          rkAlpha(4,1)= 0.6563374010466914d0
+          rkAlpha(4,2)= 0.0d0
+          rkAlpha(4,3)= 0.3372498196189311d0
+          rkAlpha(5,1)=7752107607.0d0/11393456128.0d0
+          rkAlpha(5,2)=-17881415427.0d0/11470078208.0d0
+          rkAlpha(5,3)=2433277665.0d0/179459416.0d0
+          rkAlpha(5,4)=-96203066666797.0d0/6212571137048.0d0
+          
+          rkD(1,1)= 24.74416644927758d0
+          rkD(1,2)= -4.325375951824688d0
+          rkD(1,3)= 41.39683763286316d0
+          rkD(1,4)= -61.04144619901784d0
+          rkD(1,5)= -3.391332232917013d0
+          rkD(2,1)= -51.98245719616925d0
+          rkD(2,2)= 10.52501981094525d0
+          rkD(2,3)= -154.2067922191855d0
+          rkD(2,4)= 214.3082125319825d0
+          rkD(2,5)= 14.71166018088679d0
+          rkD(3,1)= 33.14347947522142d0
+          rkD(3,2)= -19.72986789558523d0
+          rkD(3,3)= 230.4878502285804d0
+          rkD(3,4)= -287.6629744338197d0
+          rkD(3,5)= -18.99932366302254d0
+          rkD(4,1)= -5.905188728329743d0
+          rkD(4,2)= 13.53022403646467d0
+          rkD(4,3)= -117.6778956422581d0
+          rkD(4,4)= 134.3962081008550d0
+          rkD(4,5)= 8.678995715052762d0
+          
+      END SUBROUTINE SDIRK_Coefficients
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   END SUBROUTINE SDIRK ! AND ALL ITS INTERNAL PROCEDURES
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE FUN_CHEM( T, Y, P )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      USE KPP_ROOT_Parameters, ONLY: NVAR, LU_NONZERO
+      USE KPP_ROOT_Global, ONLY: TIME, FIX, RCONST
+      USE KPP_ROOT_Function
+      USE KPP_ROOT_Rates, ONLY: Update_SUN, Update_RCONST
+
+      INTEGER N
+      KPP_REAL   T, Told
+      KPP_REAL   Y(NVAR), P(NVAR)
+      
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      
+      CALL Fun( Y,  FIX, RCONST, P )
+      
+      TIME = Told
+      Nfun=Nfun+1
+      
+      END SUBROUTINE FUN_CHEM
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE JAC_CHEM( T, Y, JV )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      USE KPP_ROOT_Parameters, ONLY: NVAR, LU_NONZERO
+      USE KPP_ROOT_Global, ONLY: TIME, FIX, RCONST
+      USE KPP_ROOT_Jacobian
+      USE KPP_ROOT_Rates, ONLY: Update_SUN, Update_RCONST
+  
+      INTEGER N
+      KPP_REAL   T, Told
+      KPP_REAL   Y(NVAR)
+#ifdef FULL_ALGEBRA
+      KPP_REAL :: JS(LU_NONZERO), JV(NVAR,NVAR)
+      INTEGER :: i, j
+#else
+      KPP_REAL :: JV(LU_NONZERO)
+#endif
+ 
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+
+#ifdef FULL_ALGEBRA
+      CALL Jac_SP(Y, FIX, RCONST, JS)
+      DO j=1,NVAR
+         DO j=1,NVAR
+          JV(i,j) = 0.0D0
+         END DO
+      END DO
+      DO i=1,LU_NONZERO
+         JV(LU_IROW(i),LU_ICOL(i)) = JS(i)
+      END DO
+#else
+      CALL Jac_SP(Y, FIX, RCONST, JV)
+#endif
+      TIME = Told
+      Njac = Njac+1
+
+      END SUBROUTINE JAC_CHEM
+
+END MODULE KPP_ROOT_Integrator
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/kpp_seulex.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/kpp_seulex.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/kpp_seulex.def	(revision 2696)
@@ -0,0 +1,23 @@
+ 
+#FUNCTION AGGREGATE
+#JACOBIAN SPARSE_LU_ROW
+
+#DOUBLE ON 
+#INTFILE kpp_seulex
+
+#INLINE F77_GLOBAL
+      INTEGER Autonomous
+      COMMON /INTGDATA/ Autonomous
+      REAL*8 STEPSTART
+      COMMON /GDATA/ STEPSTART
+#ENDINLINE
+
+#INLINE F77_INIT
+        STEPMIN=0.0001
+        STEPMAX=3600.
+        Autonomous = 0
+        STEPSTART=STEPMIN
+#ENDINLINE
+
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/kpp_seulex.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/kpp_seulex.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/kpp_seulex.f	(revision 2696)
@@ -0,0 +1,1174 @@
+      SUBROUTINE INTEGRATE( TIN, TOUT )
+
+      IMPLICIT KPP_REAL (A-H,O-Z)
+      INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Global.h'
+
+C TIN - Start Time
+      KPP_REAL TIN
+C TOUT - End Time
+      KPP_REAL TOUT
+      INTEGER i
+
+      PARAMETER (KM=12,KM2=2+KM*(KM+3)/2,NRDENS=NVAR)
+      PARAMETER (LWORK=2*NVAR*NVAR+(KM+8)*NVAR+4*KM+20+KM2*NRDENS)
+      PARAMETER (LIWORK=2*NVAR+KM+20+NRDENS)
+
+      KPP_REAL WORK(LWORK)
+      INTEGER IWORK(LIWORK)
+      EXTERNAL FUNC_CHEM,JAC_CHEM
+
+      ITOL=1     ! --- VECTOR TOLERANCES
+      IJAC=1     ! --- COMPUTE THE JACOBIAN ANALYTICALLY
+      MLJAC=NVAR ! --- JACOBIAN IS A FULL MATRIX
+      MUJAC=NVAR ! --- JACOBIAN IS A FULL MATRIX
+      IMAS=0     ! --- DIFFERENTIAL EQUATION IS IN EXPLICIT FORM
+      IOUT=0     ! --- OUTPUT ROUTINE IS NOT USED DURING INTEGRATION
+      IDFX=0     ! --- INTERNAL TIME DERIVATIVE
+
+      DO i=1,20
+        IWORK(i) = 0
+        WORK(i) = 0.D0
+      ENDDO
+
+      CALL ATMSEULEX(NVAR,FUNC_CHEM,Autonomous,TIN,VAR,TOUT,
+     &                  STEPMIN,RTOL,ATOL,ITOL,
+     &                  JAC_CHEM,IJAC,MLJAC,MUJAC,
+     &                  FUNC_CHEM,IMAS,MLJAC,MUJAC,
+     &                  WORK,LWORK,IWORK,LIWORK,IDID)
+
+      IF (IDID.LT.0) THEN
+        print *,'ATMSEULEX: Unsucessfull exit at T=',
+     &          TIN,' (IDID=',IDID,')'
+      ENDIF
+
+      RETURN
+      END
+
+
+      SUBROUTINE ATMSEULEX(N,FCN,IFCN,X,Y,XEND,H,
+     &                  RelTol,AbsTol,ITOL,
+     &                  JAC ,IJAC,MLJAC,MUJAC,
+     &                  MAS,IMAS,MLMAS,MUMAS,
+     &                  WORK,LWORK,IWORK,LIWORK,IDID)
+C ----------------------------------------------------------
+C     NUMERICAL SOLUTION OF A STIFF (OR DIFFERENTIAL ALGEBRAIC)
+C     SYSTEM OF FIRST 0RDER ORDINARY DIFFERENTIAL EQUATIONS  MY'=F(X,Y).
+C     THIS IS AN EXTRAPOLATION-ALGORITHM, BASED ON THE
+C     LINEARLY IMPLICIT EULER METHOD (WITH STEP SIZE CONTROL
+C     AND ORDER SELECTION).
+C
+C     AUTHORS: E. HAIRER AND G. WANNER
+C              UNIVERSITE DE GENEVE, DEPT. DE MATHEMATIQUES
+C              CH-1211 GENEVE 24, SWITZERLAND
+C              E-MAIL:  HAIRER@DIVSUN.UNIGE.CH,  WANNER@DIVSUN.UNIGE.CH
+C              INCLUSION OF DENSE OUTPUT BY E. HAIRER AND A. OSTERMANN
+C
+C     THIS CODE IS PART OF THE BOOK:
+C         E. HAIRER AND G. WANNER, SOLVING ORDINARY DIFFERENTIAL
+C         EQUATIONS II. STIFF AND DIFFERENTIAL-ALGEBRAIC PROBLEMS.
+C         SPRINGER SERIES IN COMPUTATIONAL MATHEMATICS 14,
+C         SPRINGER-VERLAG (1991)
+C
+C     VERSION OF SEPTEMBER 30, 1995
+C
+C     INPUT PARAMETERS
+C     ----------------
+C     N           DIMENSION OF THE SYSTEM
+C
+C     FCN         NAME (EXTERNAL) OF SUBROUTINE COMPUTING THE
+C                 VALUE OF F(X,Y):
+C                    SUBROUTINE FCN(N,X,Y,F)
+C                    KPP_REAL X,Y(N),F(N)
+C                    F(1)=...   ETC.
+C                 RPAR, IPAR (SEE BELOW)
+C
+C     IFCN        GIVES INFORMATION ON FCN:
+C                    IFCN=0: F(X,Y) INDEPENDENT OF X (AUTONOMOUS)
+C                    IFCN=1: F(X,Y) MAY DEPEND ON X (NON-AUTONOMOUS)
+C
+C     X           INITIAL X-VALUE
+C
+C     Y(N)        INITIAL VALUES FOR Y
+C
+C     XEND        FINAL X-VALUE (XEND-X MAY BE POSITIVE OR NEGATIVE)
+C
+C     H           INITIAL STEP SIZE GUESS;
+C                 FOR STIFF EQUATIONS WITH INITIAL TRANSIENT,
+C                 H=1.D0/(NORM OF F'), USUALLY 1.D-2 OR 1.D-3, IS GOOD.
+C                 THIS CHOICE IS NOT VERY IMPORTANT, THE CODE QUICKLY
+C                 ADAPTS ITS STEP SIZE (IF H=0.D0, THE CODE PUTS H=1.D-6).
+C
+C     RelTol,AbsTol   RELATIVE AND ABSOLUTE ERROR TOLERANCES. THEY
+C                 CAN BE BOTH SCALARS OR ELSE BOTH VECTORS OF LENGTH N.
+C
+C     ITOL        SWITCH FOR RelTol AND AbsTol:
+C                   ITOL=0: BOTH RelTol AND AbsTol ARE SCALARS.
+C                     THE CODE KEEPS, ROUGHLY, THE LOCAL ERROR OF
+C                     Y(I) BELOW RelTol*ABS(Y(I))+AbsTol
+C                   ITOL=1: BOTH RelTol AND AbsTol ARE VECTORS.
+C                     THE CODE KEEPS THE LOCAL ERROR OF Y(I) BELOW
+C                     RelTol(I)*ABS(Y(I))+AbsTol(I).
+C
+C     JAC         NAME (EXTERNAL) OF THE SUBROUTINE WHICH COMPUTES
+C                 THE PARTIAL DERIVATIVES OF F(X,Y) WITH RESPECT TO Y
+C                 (THIS ROUTINE IS ONLY CALLED IF IJAC=1; SUPPLY
+C                 A DUMMY SUBROUTINE IN THE CASE IJAC=0).
+C                 FOR IJAC=1, THIS SUBROUTINE MUST HAVE THE FORM
+C                    SUBROUTINE JAC(N,X,Y,DFY,LDFY)
+C                    KPP_REAL X,Y(N),DFY(LDFY,N)
+C                    DFY(1,1)= ...
+C                 LDFY, THE COLOMN-LENGTH OF THE ARRAY, IS
+C                 FURNISHED BY THE CALLING PROGRAM.
+C                 IF (MLJAC.EQ.N) THE JACOBIAN IS SUPPOSED TO
+C                    BE FULL AND THE PARTIAL DERIVATIVES ARE
+C                    STORED IN DFY AS
+C                       DFY(I,J) = PARTIAL F(I) / PARTIAL Y(J)
+C                 ELSE, THE JACOBIAN IS TAKEN AS BANDED AND
+C                    THE PARTIAL DERIVATIVES ARE STORED
+C                    DIAGONAL-WISE AS
+C                       DFY(I-J+MUJAC+1,J) = PARTIAL F(I) / PARTIAL Y(J).
+C
+C     IJAC        SWITCH FOR THE COMPUTATION OF THE JACOBIAN:
+C                    IJAC=0: JACOBIAN IS COMPUTED INTERNALLY BY FINITE
+C                       DIFFERENCES, SUBROUTINE "JAC" IS NEVER CALLED.
+C                    IJAC=1: JACOBIAN IS SUPPLIED BY SUBROUTINE JAC.
+C
+C     MLJAC       SWITCH FOR THE BANDED STRUCTURE OF THE JACOBIAN:
+C                    MLJAC=N: JACOBIAN IS A FULL MATRIX. THE LINEAR
+C                       ALGEBRA IS DONE BY FULL-MATRIX GAUSS-ELIMINATION.
+C                    0<=MLJAC<N: MLJAC IS THE LOWER BANDWITH OF JACOBIAN
+C                       MATRIX (>= NUMBER OF NON-ZERO DIAGONALS BELOW
+C                       THE MAIN DIAGONAL).
+C
+C     MUJAC       UPPER BANDWITH OF JACOBIAN  MATRIX (>= NUMBER OF NON-
+C                 ZERO DIAGONALS ABOVE THE MAIN DIAGONAL).
+C                 NEED NOT BE DEFINED IF MLJAC=N.
+C
+C     ----   MAS,IMAS,MLMAS, AND MUMAS HAVE ANALOG MEANINGS      -----
+C     ----   FOR THE "MASS MATRIX" (THE MATRIX "M" OF SECTION IV.8): -
+C
+C     MAS         NAME (EXTERNAL) OF SUBROUTINE COMPUTING THE MASS-
+C                 MATRIX M.
+C                 IF IMAS=0, THIS MATRIX IS ASSUMED TO BE THE IDENTITY
+C                 MATRIX AND NEEDS NOT TO BE DEFINED;
+C                 SUPPLY A DUMMY SUBROUTINE IN THIS CASE.
+C                 IF IMAS=1, THE SUBROUTINE MAS IS OF THE FORM
+C                    SUBROUTINE MAS(N,AM,LMAS)
+C                    KPP_REAL AM(LMAS,N)
+C                    AM(1,1)= ....
+C                    IF (MLMAS.EQ.N) THE MASS-MATRIX IS STORED
+C                    AS FULL MATRIX LIKE
+C                         AM(I,J) = M(I,J)
+C                    ELSE, THE MATRIX IS TAKEN AS BANDED AND STORED
+C                    DIAGONAL-WISE AS
+C                         AM(I-J+MUMAS+1,J) = M(I,J).
+C
+C     IMAS       GIVES INFORMATION ON THE MASS-MATRIX:
+C                    IMAS=0: M IS SUPPOSED TO BE THE IDENTITY
+C                       MATRIX, MAS IS NEVER CALLED.
+C                    IMAS=1: MASS-MATRIX  IS SUPPLIED.
+C
+C     MLMAS       SWITCH FOR THE BANDED STRUCTURE OF THE MASS-MATRIX:
+C                    MLMAS=N: THE FULL MATRIX CASE. THE LINEAR
+C                       ALGEBRA IS DONE BY FULL-MATRIX GAUSS-ELIMINATION.
+C                    0<=MLMAS<N: MLMAS IS THE LOWER BANDWITH OF THE
+C                       MATRIX (>= NUMBER OF NON-ZERO DIAGONALS BELOW
+C                       THE MAIN DIAGONAL).
+C                 MLMAS IS SUPPOSED TO BE .LE. MLJAC.
+C
+C     MUMAS       UPPER BANDWITH OF MASS-MATRIX (>= NUMBER OF NON-
+C                 ZERO DIAGONALS ABOVE THE MAIN DIAGONAL).
+C                 NEED NOT BE DEFINED IF MLMAS=N.
+C                 MUMAS IS SUPPOSED TO BE .LE. MUJAC.
+C
+C     SOLOUT      NAME (EXTERNAL) OF SUBROUTINE PROVIDING THE
+C                 NUMERICAL SOLUTION DURING INTEGRATION.
+C                 IF IOUT>=1, IT IS CALLED AFTER EVERY SUCCESSFUL STEP.
+C                 SUPPLY A DUMMY SUBROUTINE IF IOUT=0.
+C                 IT MUST HAVE THE FORM
+C                    SUBROUTINE SOLOUT (NR,XOLD,X,Y,RC,LRC,IC,LIC,N,
+C                                       RPAR,IPAR,IRTRN)
+C                    KPP_REAL X,Y(N),RC(LRC),IC(LIC)
+C                    ....
+C                 SOLOUT FURNISHES THE SOLUTION "Y" AT THE NR-TH
+C                    GRID-POINT "X" (THEREBY THE INITIAL VALUE IS
+C                    THE FIRST GRID-POINT).
+C                 "XOLD" IS THE PRECEEDING GRID-POINT.
+C                 "IRTRN" SERVES TO INTERRUPT THE INTEGRATION. IF IRTRN
+C                    IS SET <0, SEULEX RETURNS TO THE CALLING PROGRAM.
+C                 DO NOT CHANGE THE ENTRIES OF RC(LRC),IC(LIC)!
+C
+C          -----  CONTINUOUS OUTPUT (IF IOUT=2): -----
+C                 DURING CALLS TO "SOLOUT", A CONTINUOUS SOLUTION
+C                 FOR THE INTERVAL [XOLD,X] IS AVAILABLE THROUGH
+C                 THE KPP_REAL FUNCTION
+C                        >>>   CONTEX(I,S,RC,LRC,IC,LIC)   <<<
+C                 WHICH PROVIDES AN APPROXIMATION TO THE I-TH
+C                 COMPONENT OF THE SOLUTION AT THE POINT S. THE VALUE
+C                 S SHOULD LIE IN THE INTERVAL [XOLD,X].
+C
+C     IOUT        GIVES INFORMATION ON THE SUBROUTINE SOLOUT:
+C                    IOUT=0: SUBROUTINE IS NEVER CALLED
+C                    IOUT=1: SUBROUTINE IS USED FOR OUTPUT
+C                    IOUT=2: DENSE OUTPUT IS PERFORMED IN SOLOUT
+C
+C     WORK        ARRAY OF WORKING SPACE OF LENGTH "LWORK".
+C                 SERVES AS WORKING SPACE FOR ALL VECTORS AND MATRICES.
+C                 "LWORK" MUST BE AT LEAST
+C                        N*(LJAC+LMAS+LE1+KM+8)+4*KM+20+KM2*NRDENS
+C                 WHERE
+C                    KM2=2+KM*(KM+3)/2  AND  NRDENS=IWORK(6) (SEE BELOW)
+C                 AND
+C                    LJAC=N              IF MLJAC=N (FULL JACOBIAN)
+C                    LJAC=MLJAC+MUJAC+1  IF MLJAC<N (BANDED JAC.)
+C                 AND
+C                    LMAS=0              IF IMAS=0
+C                    LMAS=N              IF IMAS=1 AND MLMAS=N (FULL)
+C                    LMAS=MLMAS+MUMAS+1  IF MLMAS<N (BANDED MASS-M.)
+C                 AND
+C                    LE1=N               IF MLJAC=N (FULL JACOBIAN)
+C                    LE1=2*MLJAC+MUJAC+1 IF MLJAC<N (BANDED JAC.).
+C                 AND
+C                    KM=12               IF IWORK(3)=0
+C                    KM=IWORK(3)         IF IWORK(3).GT.0
+C
+C                 IN THE USUAL CASE WHERE THE JACOBIAN IS FULL AND THE
+C                 MASS-MATRIX IS THE INDENTITY (IMAS=0), THE MINIMUM
+C                 STORAGE REQUIREMENT IS
+C                         LWORK = 2*N*N+(KM+8)*N+4*KM+13+KM2*NRDENS.
+C                 IF IWORK(9)=M1>0 THEN "LWORK" MUST BE AT LEAST
+C                    N*(LJAC+KM+8)+(N-M1)*(LMAS+LE1)+4*KM+20+KM2*NRDENS
+C                 WHERE IN THE DEFINITIONS OF LJAC, LMAS AND LE1 THE
+C                 NUMBER N CAN BE REPLACED BY N-M1.
+C
+C     LWORK       DECLARED LENGTH OF ARRAY "WORK".
+C
+C     IWORK       INTEGER WORKING SPACE OF LENGTH "LIWORK".
+C                 "LIWORK" MUST BE AT LEAST  2*N+KM+20+NRDENS.
+C
+C     LIWORK      DECLARED LENGTH OF ARRAY "IWORK".
+C
+C     RPAR, IPAR  REAL AND INTEGER PARAMETERS (OR PARAMETER ARRAYS) WHICH
+C                 CAN BE USED FOR COMMUNICATION BETWEEN YOUR CALLING
+C                 PROGRAM AND THE FCN, JAC, MAS, SOLOUT SUBROUTINES.
+C
+C ----------------------------------------------------------------------
+C
+C     SOPHISTICATED SETTING OF PARAMETERS
+C     -----------------------------------
+C              SEVERAL PARAMETERS OF THE CODE ARE TUNED TO MAKE IT WORK
+C              WELL. THEY MAY BE DEFINED BY SETTING WORK(1),..,WORK(13)
+C              AS WELL AS IWORK(1),..,IWORK(4) DIFFERENT FROM ZERO.
+C              FOR ZERO INPUT, THE CODE CHOOSES DEFAULT VALUES:
+C
+C    IWORK(1)  IF IWORK(1).NE.0, THE CODE TRANSFORMS THE JACOBIAN
+C              MATRIX TO HESSENBERG FORM. THIS IS PARTICULARLY
+C              ADVANTAGEOUS FOR LARGE SYSTEMS WITH FULL JACOBIAN.
+C              IT DOES NOT WORK FOR BANDED JACOBIAN (MLJAC<N)
+C              AND NOT FOR IMPLICIT SYSTEMS (IMAS=1).
+C
+C    IWORK(2)  THIS IS THE MAXIMAL NUMBER OF ALLOWED STEPS.
+C              THE DEFAULT VALUE (FOR IWORK(2)=0) IS 100000.
+C
+C    IWORK(3)  THE MAXIMUM NUMBER OF COLUMNS IN THE EXTRAPOLATION
+C              TABLE. THE DEFAULT VALUE (FOR IWORK(3)=0) IS 12.
+C              IF IWORK(3).NE.0 THEN IWORK(3) SHOULD BE .GE.3.
+C
+C    IWORK(4)  SWITCH FOR THE STEP SIZE SEQUENCE
+C              IF IWORK(4).EQ.1 THEN 1,2,3,4,6,8,12,16,24,32,48,...
+C              IF IWORK(4).EQ.2 THEN 2,3,4,6,8,12,16,24,32,48,64,...
+C              IF IWORK(4).EQ.3 THEN 1,2,3,4,5,6,7,8,9,10,...
+C              IF IWORK(4).EQ.4 THEN 2,3,4,5,6,7,8,9,10,11,...
+C              THE DEFAULT VALUE (FOR IWORK(4)=0) IS IWORK(4)=2.
+C
+C    IWORK(5)  PARAMETER "LAMBDA" OF DENSE OUTPUT; POSSIBLE VALUES
+C              ARE 0 AND 1; DEFAULT IWORK(5)=0.
+C
+C    IWORK(6)  = NRDENS = NUMBER OF COMPONENTS, FOR WHICH DENSE OUTPUT
+C              IS REQUIRED
+C
+C    IWORK(21),...,IWORK(NRDENS+20) INDICATE THE COMPONENTS, FOR WHICH
+C              DENSE OUTPUT IS REQUIRED
+C
+C       IF THE DIFFERENTIAL SYSTEM HAS THE SPECIAL STRUCTURE THAT
+C            Y(I)' = Y(I+M2)   FOR  I=1,...,M1,
+C       WITH M1 A MULTIPLE OF M2, A SUBSTANTIAL GAIN IN COMPUTERTIME
+C       CAN BE ACHIEVED BY SETTING THE FOLLOWING TWO PARAMETERS. E.G.,
+C       FOR SECOND ORDER SYSTEMS P'=V, V'=G(P,V), WHERE P AND V ARE
+C       VECTORS OF DIMENSION N/2, ONE HAS TO PUT M1=M2=N/2.
+C       FOR M1>0 SOME OF THE INPUT PARAMETERS HAVE DIFFERENT MEANINGS:
+C       - JAC: ONLY THE ELEMENTS OF THE NON-TRIVIAL PART OF THE
+C              JACOBIAN HAVE TO BE STORED
+C              IF (MLJAC.EQ.N-M1) THE JACOBIAN IS SUPPOSED TO BE FULL
+C                 DFY(I,J) = PARTIAL F(I+M1) / PARTIAL Y(J)
+C                FOR I=1,N-M1 AND J=1,N.
+C              ELSE, THE JACOBIAN IS BANDED ( M1 = M2 * MM )
+C                 DFY(I-J+MUJAC+1,J+K*M2) = PARTIAL F(I+M1) / PARTIAL Y(J+K*M2)
+C                FOR I=1,MLJAC+MUJAC+1 AND J=1,M2 AND K=0,MM.
+C       - MLJAC: MLJAC=N-M1: IF THE NON-TRIVIAL PART OF THE JACOBIAN IS FULL
+C                0<=MLJAC<N-M1: IF THE (MM+1) SUBMATRICES (FOR K=0,MM)
+C                     PARTIAL F(I+M1) / PARTIAL Y(J+K*M2),  I,J=1,M2
+C                    ARE BANDED, MLJAC IS THE MAXIMAL LOWER BANDWIDTH
+C                    OF THESE MM+1 SUBMATRICES
+C       - MUJAC: MAXIMAL UPPER BANDWIDTH OF THESE MM+1 SUBMATRICES
+C                NEED NOT BE DEFINED IF MLJAC=N-M1
+C       - MAS: IF IMAS=0 THIS MATRIX IS ASSUMED TO BE THE IDENTITY AND
+C              NEED NOT BE DEFINED. SUPPLY A DUMMY SUBROUTINE IN THIS CASE.
+C              IT IS ASSUMED THAT ONLY THE ELEMENTS OF RIGHT LOWER BLOCK OF
+C              DIMENSION N-M1 DIFFER FROM THAT OF THE IDENTITY MATRIX.
+C              IF (MLMAS.EQ.N-M1) THIS SUBMATRIX IS SUPPOSED TO BE FULL
+C                 AM(I,J) = M(I+M1,J+M1)     FOR I=1,N-M1 AND J=1,N-M1.
+C              ELSE, THE MASS MATRIX IS BANDED
+C                 AM(I-J+MUMAS+1,J) = M(I+M1,J+M1)
+C       - MLMAS: MLMAS=N-M1: IF THE NON-TRIVIAL PART OF M IS FULL
+C                0<=MLMAS<N-M1: LOWER BANDWIDTH OF THE MASS MATRIX
+C       - MUMAS: UPPER BANDWIDTH OF THE MASS MATRIX
+C                NEED NOT BE DEFINED IF MLMAS=N-M1
+C
+C    IWORK(9)  THE VALUE OF M1.  DEFAULT M1=0.
+C
+C    IWORK(10) THE VALUE OF M2.  DEFAULT M2=M1.
+C
+C    WORK(1)   UROUND, THE ROUNDING UNIT, DEFAULT 1.D-16.
+C
+C    WORK(2)   MAXIMAL STEP SIZE, DEFAULT XEND-X.
+C
+C    WORK(3)   DECIDES WHETHER THE JACOBIAN SHOULD BE RECOMPUTED;
+C              INCREASE WORK(3), TO 0.01 SAY, WHEN JACOBIAN EVALUATIONS
+C              ARE COSTLY. FOR SMALL SYSTEMS WORK(3) SHOULD BE SMALLER.
+C              DEFAULT MIN(1.0D-4,RelTol(1))
+C
+C    WORK(4), WORK(5)   PARAMETERS FOR STEP SIZE SELECTION
+C              THE NEW STEP SIZE FOR THE J-TH DIAGONAL ENTRY IS
+C              CHOSEN SUBJECT TO THE RESTRICTION
+C                 FACMIN/WORK(5) <= HNEW(J)/HOLD <= 1/FACMIN
+C              WHERE FACMIN=WORK(4)**(1/(J-1))
+C              DEFAULT VALUES: WORK(4)=0.1D0, WORK(5)=4.D0
+C
+C    WORK(6), WORK(7)   PARAMETERS FOR THE ORDER SELECTION
+C              ORDER IS DECREASED IF    W(K-1) <= W(K)*WORK(6)
+C              ORDER IS INCREASED IF    W(K) <= W(K-1)*WORK(7)
+C              DEFAULT VALUES: WORK(6)=0.7D0, WORK(7)=0.9D0
+C
+C    WORK(8), WORK(9)   SAFETY FACTORS FOR STEP CONTROL ALGORITHM
+C             HNEW=H*WORK(9)*(WORK(8)*TOL/ERR)**(1/(J-1))
+C              DEFAULT VALUES: WORK(8)=0.8D0, WORK(9)=0.93D0
+C
+C    WORK(10), WORK(11), WORK(12), WORK(13)   ESTIMATED WORKS FOR
+C             A CALL TO  FCN, JAC, DEC, SOL, RESPECTIVELY.
+C             DEFAULT VALUES ARE: WORK(10)=1.D0, WORK(11)=5.D0,
+C             WORK(12)=1.D0, WORK(13)=1.D0.
+C
+C-----------------------------------------------------------------------
+C
+C     OUTPUT PARAMETERS
+C     -----------------
+C     X           X-VALUE WHERE THE SOLUTION IS COMPUTED
+C                 (AFTER SUCCESSFUL RETURN X=XEND)
+C
+C     Y(N)        SOLUTION AT X
+C
+C     H           PREDICTED STEP SIZE OF THE LAST ACCEPTED STEP
+C
+C     IDID        REPORTS ON SUCCESSFULNESS UPON RETURN:
+C                   IDID=1  COMPUTATION SUCCESSFUL,
+C                   IDID=-1 COMPUTATION UNSUCCESSFUL.
+C
+C   IWORK(14)  NFCN    NUMBER OF FUNCTION EVALUATIONS (THOSE FOR NUMERICAL
+C                      EVALUATION OF THE JACOBIAN ARE NOT COUNTED)
+C   IWORK(15)  NJAC    NUMBER OF JACOBIAN EVALUATIONS (EITHER ANALYTICALLY
+C                      OR NUMERICALLY)
+C   IWORK(16)  NSTEP   NUMBER OF COMPUTED STEPS
+C   IWORK(17)  NACCPT  NUMBER OF ACCEPTED STEPS
+C   IWORK(18)  NREJCT  NUMBER OF REJECTED STEPS (AFTER AT LEAST ONE STEP
+C                      HAS BEEN ACCEPTED)
+C   IWORK(19)  NDEC    NUMBER OF LU-DECOMPOSITIONS (N-DIMENSIONAL MATRIX)
+C   IWORK(20)  NSOL    NUMBER OF FORWARD-BACKWARD SUBSTITUTIONS
+C-----------------------------------------------------------------------
+C *** *** *** *** *** *** *** *** *** *** *** *** ***
+C          DECLARATIONS
+C *** *** *** *** *** *** *** *** *** *** *** *** ***
+      IMPLICIT KPP_REAL (A-H,O-Z)
+      DIMENSION Y(N),AbsTol(*),RelTol(*),WORK(LWORK),IWORK(LIWORK)
+      LOGICAL AUTNMS,IMPLCT,ARRET,JBAND
+      EXTERNAL FCN,JAC,MAS
+C *** *** *** *** *** *** ***
+C        SETTING THE PARAMETERS
+C *** *** *** *** *** *** ***
+      IOUT = 0
+      NFCN=0
+      NJAC=0
+      NSTEP=0
+      NACCPT=0
+      NREJCT=0
+      NDEC=0
+      NSOL=0
+      ARRET=.FALSE.
+C -------- NMAX , THE MAXIMAL NUMBER OF STEPS -----
+      IF(IWORK(2).EQ.0)THEN
+         NMAX=100000
+      ELSE
+         NMAX=IWORK(2)
+         IF(NMAX.LE.0)THEN
+            WRITE(6,*)' WRONG INPUT IWORK(2)=',IWORK(2)
+            ARRET=.TRUE.
+         END IF
+      END IF
+C -------- KM     MAXIMUM NUMBER OF COLUMNS IN THE EXTRAPOLATION
+      IF(IWORK(3).EQ.0)THEN
+         KM=12
+      ELSE
+         KM=IWORK(3)
+         IF(KM.LE.2)THEN
+            WRITE(6,*)' CURIOUS INPUT IWORK(3)=',IWORK(3)
+            ARRET=.TRUE.
+         END IF
+      END IF
+C -------- NSEQU     CHOICE OF STEP SIZE SEQUENCE
+      NSEQU=IWORK(4)
+      IF(IWORK(4).EQ.0) NSEQU=2
+      IF(NSEQU.LE.0.OR.NSEQU.GE.5)THEN
+         WRITE(6,*)' CURIOUS INPUT IWORK(4)=',IWORK(4)
+         ARRET=.TRUE.
+      END IF
+C -------- LAMBDA   PARAMETER FOR DENSE OUTPUT
+      LAMBDA=IWORK(5)
+      IF(LAMBDA.LT.0.OR.LAMBDA.GE.2)THEN
+         WRITE(6,*)' CURIOUS INPUT IWORK(5)=',IWORK(5)
+         ARRET=.TRUE.
+      END IF
+C -------- NRDENS   NUMBER OF DENSE OUTPUT COMPONENTS
+      NRDENS=IWORK(6)
+      IF(NRDENS.LT.0.OR.NRDENS.GT.N)THEN
+         WRITE(6,*)' CURIOUS INPUT IWORK(6)=',IWORK(6)
+         ARRET=.TRUE.
+      END IF
+C -------- PARAMETER FOR SECOND ORDER EQUATIONS
+      M1=IWORK(9)
+      M2=IWORK(10)
+      NM1=N-M1
+      IF (M1.EQ.0) M2=N
+      IF (M2.EQ.0) M2=M1
+      IF (M1.LT.0.OR.M2.LT.0.OR.M1+M2.GT.N) THEN
+       WRITE(6,*)' CURIOUS INPUT FOR IWORK(9,10)=',M1,M2
+       ARRET=.TRUE.
+      END IF
+C -------- UROUND   SMALLEST NUMBER SATISFYING 1.D0+UROUND>1.D0
+      IF(WORK(1).EQ.0.D0)THEN
+         UROUND=1.D-16
+      ELSE
+         UROUND=WORK(1)
+         IF(UROUND.LE.0.D0.OR.UROUND.GE.1.D0)THEN
+            WRITE(6,*)'  UROUND=',WORK(1)
+            ARRET=.TRUE.
+         END IF
+      END IF
+C -------- MAXIMAL STEP SIZE
+      IF(WORK(2).EQ.0.D0)THEN
+         HMAX=XEND-X
+      ELSE
+         HMAX=WORK(2)
+      END IF
+C ------ THET     DECIDES WHETHER THE JACOBIAN SHOULD BE RECOMPUTED;
+      IF(WORK(3).EQ.0.D0)THEN
+         THET=MIN(1.0D-4,RelTol(1))
+      ELSE
+         THET=WORK(3)
+      END IF
+C -------  FAC1,FAC2     PARAMETERS FOR STEP SIZE SELECTION
+      IF(WORK(4).EQ.0.D0)THEN
+         FAC1=0.1D0
+      ELSE
+         FAC1=WORK(4)
+      END IF
+      IF(WORK(5).EQ.0.D0)THEN
+         FAC2=4.0D0
+      ELSE
+         FAC2=WORK(5)
+      END IF
+C -------  FAC3, FAC4   PARAMETERS FOR THE ORDER SELECTION
+      IF(WORK(6).EQ.0.D0)THEN
+         FAC3=0.7D0
+      ELSE
+         FAC3=WORK(6)
+      END IF
+      IF(WORK(7).EQ.0.D0)THEN
+         FAC4=0.9D0
+      ELSE
+         FAC4=WORK(7)
+      END IF
+C ------- SAFE1, SAFE2 SAFETY FACTORS FOR STEP SIZE PREDICTION
+      IF(WORK(8).EQ.0.D0)THEN
+         SAFE1=0.6D0
+      ELSE
+         SAFE1=WORK(8)
+      END IF
+      IF(WORK(9).EQ.0.D0)THEN
+         SAFE2=0.93D0
+      ELSE
+         SAFE2=WORK(9)
+      END IF
+C ------- WKFCN,WKJAC,WKDEC,WKSOL  ESTIMATED WORK FOR  FCN,JAC,DEC,SOL
+      IF(WORK(10).EQ.0.D0)THEN
+         WKFCN=1.D0
+      ELSE
+         WKFCN=WORK(10)
+      END IF
+      IF(WORK(11).EQ.0.D0)THEN
+         WKJAC=5.D0
+      ELSE
+         WKJAC=WORK(11)
+      END IF
+      IF(WORK(12).EQ.0.D0)THEN
+         WKDEC=1.D0
+      ELSE
+         WKDEC=WORK(12)
+      END IF
+      IF(WORK(13).EQ.0.D0)THEN
+         WKSOL=1.D0
+      ELSE
+         WKSOL=WORK(13)
+      END IF
+      WKROW=WKFCN+WKSOL
+C --------- CHECK IF TOLERANCES ARE O.K.
+      IF (ITOL.EQ.0) THEN
+          IF (AbsTol(1).LE.0.D0.OR.RelTol(1).LE.10.D0*UROUND) THEN
+              WRITE (6,*) ' TOLERANCES ARE TOO SMALL'
+              ARRET=.TRUE.
+          END IF
+      ELSE
+        DO I=1,N
+          IF (AbsTol(I).LE.0.D0.OR.RelTol(I).LE.10.D0*UROUND) THEN
+              WRITE (6,*) ' TOLERANCES(',I,') ARE TOO SMALL'
+              ARRET=.TRUE.
+          END IF
+        END DO
+      END IF
+C *** *** *** *** *** *** *** *** *** *** *** *** ***
+C         COMPUTATION OF ARRAY ENTRIES
+C *** *** *** *** *** *** *** *** *** *** *** *** ***
+C ---- AUTONOMOUS, IMPLICIT, BANDED OR NOT ?
+      AUTNMS=IFCN.EQ.0
+      IMPLCT=IMAS.NE.0
+      JBAND=MLJAC.LT.NM1
+C -------- COMPUTATION OF THE ROW-DIMENSIONS OF THE 2-ARRAYS ---
+C -- JACOBIAN AND MATRIX E
+      IF(JBAND)THEN
+         LDJAC=MLJAC+MUJAC+1
+         LDE=MLJAC+LDJAC
+      ELSE
+         MLJAC=NM1
+         MUJAC=NM1
+         LDJAC=NM1
+         LDE=NM1
+      END IF
+C -- MASS MATRIX
+      IF (IMPLCT) THEN
+          IF (MLMAS.NE.NM1) THEN
+              LDMAS=MLMAS+MUMAS+1
+              IF (JBAND) THEN
+                 IJOB=4
+              ELSE
+                 IJOB=3
+              END IF
+          ELSE
+              LDMAS=NM1
+              IJOB=5
+          END IF
+C ------ BANDWITH OF "MAS" NOT LARGER THAN BANDWITH OF "JAC"
+          IF (MLMAS.GT.MLJAC.OR.MUMAS.GT.MUJAC) THEN
+              WRITE (6,*) 'BANDWITH OF "MAS" NOT LARGER THAN BANDWITH OF
+     & "JAC"'
+            ARRET=.TRUE.
+          END IF
+      ELSE
+          LDMAS=0
+          IF (JBAND) THEN
+             IJOB=2
+          ELSE
+             IJOB=1
+             IF (N.GT.2.AND.IWORK(1).NE.0) IJOB=7
+          END IF
+      END IF
+      LDMAS2=MAX(1,LDMAS)
+C ------ HESSENBERG OPTION ONLY FOR EXPLICIT EQU. WITH FULL JACOBIAN
+      IF ((IMPLCT.OR.JBAND).AND.IJOB.EQ.7) THEN
+         WRITE(6,*)' HESSENBERG OPTION ONLY FOR EXPLICIT EQUATIONS WITH
+     &FULL JACOBIAN'
+         ARRET=.TRUE.
+      END IF
+C ------- PREPARE THE ENTRY-POINTS FOR THE ARRAYS IN WORK -----
+      KM2=(KM*(KM+1))/2
+      IEYH=21
+      IEDY=IEYH+N
+      IEFX=IEDY+N
+      IEYHH=IEFX+N
+      IEDYH=IEYHH+N
+      IEDEL=IEDYH+N
+      IEWH =IEDEL+N
+      IESCAL=IEWH+N
+      IEHH =IESCAL+N
+      IEW  =IEHH+KM
+      IEA  =IEW+KM
+      IEJAC =IEA+KM
+      IEE  =IEJAC+N*LDJAC
+      IEMAS=IEE+NM1*LDE
+      IET=IEMAS+NM1*LDMAS
+      IFAC=IET+N*KM
+      IEDE=IFAC+KM
+      IFSAFE=IEDE+(KM+2)*NRDENS
+C ------ TOTAL STORAGE REQUIREMENT -----------
+      ISTORE=IFSAFE+KM2*NRDENS-1
+      IF(ISTORE.GT.LWORK)THEN
+         WRITE(6,*)' INSUFFICIENT STORAGE FOR WORK, MIN. LWORK=',ISTORE
+         ARRET=.TRUE.
+      END IF
+C ------- ENTRY POINTS FOR INTEGER WORKSPACE -----
+      IECO=21
+      IEIP=21+NRDENS
+      IENJ=IEIP+N
+      IEIPH=IENJ+KM
+C --------- TOTAL REQUIREMENT ---------------
+      ISTORE=IECO+KM-1
+      IF(ISTORE.GT.LIWORK)THEN
+         WRITE(6,*)' INSUFF. STORAGE FOR IWORK, MIN. LIWORK=',ISTORE
+         ARRET=.TRUE.
+      END IF
+C ------ WHEN A FAIL HAS OCCURED, WE RETURN WITH IDID=-1
+      IF (ARRET) THEN
+         IDID=-1
+         RETURN
+      END IF
+      NRD=MAX(1,NRDENS)
+C -------- CALL TO CORE INTEGRATOR ------------
+      CALL SEUCOR(N,FCN,X,Y,XEND,HMAX,H,KM,RelTol,AbsTol,ITOL,JAC,IJAC,
+     &   MLJAC,MUJAC,MLMAS,MUMAS,IOUT,IDID,IJOB,M1,M2,NM1,
+     &   NMAX,UROUND,NSEQU,AUTNMS,IMPLCT,JBAND,LDJAC,LDE,LDMAS2,
+     &   WORK(IEYH),WORK(IEDY),WORK(IEFX),WORK(IEYHH),WORK(IEDYH),
+     &   WORK(IEDEL),WORK(IEWH),WORK(IESCAL),WORK(IEHH),
+     &   WORK(IEW),WORK(IEA),WORK(IEJAC),WORK(IEE),WORK(IEMAS),
+     &   WORK(IET),IWORK(IEIP),IWORK(IENJ),IWORK(IEIPH),FAC1,FAC2,FAC3,
+     &   FAC4,THET,SAFE1,SAFE2,WKJAC,WKDEC,WKROW,KM2,NRD,WORK(IFAC),
+     &   WORK(IFSAFE),LAMBDA,NFCN,NJAC,NSTEP,NACCPT,NREJCT,NDEC,NSOL,
+     &   WORK(IEDE),IWORK(IECO))
+      IWORK(14)=NFCN
+      IWORK(15)=NJAC
+      IWORK(16)=NSTEP
+      IWORK(17)=NACCPT
+      IWORK(18)=NREJCT
+      IWORK(19)=NDEC
+      IWORK(20)=NSOL
+C ----------- RETURN -----------
+      RETURN
+      END
+C
+C
+C  ----- ... AND HERE IS THE CORE INTEGRATOR  ----------
+C
+      SUBROUTINE SEUCOR(N,FCN,X,Y,XEND,HMAX,H,KM,RelTol,AbsTol,ITOL,
+     &  JAC,IJAC,MLJAC,MUJAC,MLB,MUB,IOUT,IDID,IJOB,M1,M2,
+     &  NM1,NMAX,UROUND,NSEQU,AUTNMS,IMPLCT,BANDED,LFJAC,LE,
+     &  LDMAS,YH,DY,FX,YHH,DYH,DEL,WH,SCAL,HH,W,A,FJAC,E,FMAS,T,IP,
+     &  NJ,IPHES,FAC1,FAC2,FAC3,FAC4,THET,SAFE1,SAFE2,WKJAC,WKDEC,WKROW,
+     &  KM2,NRD,FACUL,FSAFE,LAMBDA,NFCN,NJAC,NSTEP,NACCPT,NREJCT,
+     &  NDEC,NSOL,DENS,ICOMP)
+C ----------------------------------------------------------
+C     CORE INTEGRATOR FOR SEULEX
+C     PARAMETERS SAME AS IN SEULEX WITH WORKSPACE ADDED
+C ----------------------------------------------------------
+C         DECLARATIONS
+C ----------------------------------------------------------
+       IMPLICIT KPP_REAL (A-H,O-Z)
+       INCLUDE 'KPP_ROOT_Parameters.h'
+       INCLUDE 'KPP_ROOT_Sparse.h'
+       INTEGER KM, KM2, K, KC, KRIGHT, KLR, KK, KRN, KOPT
+       DIMENSION Y(N),YH(N),DY(N),FX(N),YHH(N),DYH(N),DEL(N)
+       DIMENSION WH(N),SCAL(N),HH(KM),W(KM),A(KM),FJAC(LU_NONZERO)
+       DIMENSION FMAS(LDMAS,NM1),T(KM,N),IP(NM1),NJ(KM)
+       DIMENSION RelTol(*),AbsTol(*)
+       DIMENSION IPHES(N),FSAFE(KM2,NRD),FACUL(KM),E(LE,NM1)
+       DIMENSION DENS((KM+2)*NRD),ICOMP(NRD)
+       LOGICAL REJECT,LAST,ATOV,CALJAC,CALHES,AUTNMS,IMPLCT,BANDED
+       EXTERNAL FCN, JAC
+       COMMON /COSEU/XOLDD,HHH,NNRD,KRIGHT
+       COMMON/LINAL/MLE,MUE,MBJAC,MBB,MDIAG,MDIFF,MBDIAG
+C --- COMPUTE COEFFICIENTS FOR DENSE OUTPUT
+       IF (IOUT.EQ.2) THEN
+          NNRD=NRD
+C --- COMPUTE THE FACTORIALS --------
+          FACUL(1)=1.D0
+          DO I=1,KM-1
+             FACUL(I+1)=I*FACUL(I)
+          END DO
+       END IF
+
+C *** *** *** *** *** *** ***
+C  INITIALISATIONS
+C *** *** *** *** *** *** ***
+       LRDE=(KM+2)*NRD
+       MLE=MLJAC
+       MUE=MUJAC
+       MBJAC=MLJAC+MUJAC+1
+       MBB=MLB+MUB+1
+       MDIAG=MLE+MUE+1
+       MDIFF=MLE+MUE-MUB
+       MBDIAG=MUB+1
+       IF (M1.GT.0) IJOB=IJOB+10
+C --- DEFINE THE STEP SIZE SEQUENCE
+       IF (NSEQU.EQ.1) THEN
+           NJ(1)=1
+           NJ(2)=2
+           NJ(3)=3
+           DO I=4,KM
+              NJ(I)=2*NJ(I-2)
+           END DO
+       END IF
+       IF (NSEQU.EQ.2) THEN
+           NJ(1)=2
+           NJ(2)=3
+           DO I=3,KM
+              NJ(I)=2*NJ(I-2)
+           END DO
+       END IF
+       DO I=1,KM
+          IF (NSEQU.EQ.3) NJ(I)=I
+          IF (NSEQU.EQ.4) NJ(I)=I+1
+       END DO
+       A(1)=WKJAC+NJ(1)*WKROW+WKDEC
+       DO I=2,KM
+          A(I)=A(I-1)+(NJ(I)-1)*WKROW+WKDEC
+       END DO
+       K=MAX0(3,MIN0(KM-2,INT(-DLOG10(RelTol(1)+AbsTol(1))*.6D0+1.5D0)))
+       HMAXN=MIN(ABS(HMAX),ABS(XEND-X))
+       IF (ABS(H).LE.10.D0*UROUND) H=1.0D-6
+       H=MIN(ABS(H),HMAXN)
+       THETA=2*ABS(THET)
+       ERR=0.D0
+       W(1)=1.D30
+       DO I=1,N
+          IF (ITOL.EQ.0) THEN
+            SCAL(I)=AbsTol(1)+RelTol(1)*DABS(Y(I))
+          ELSE
+            SCAL(I)=AbsTol(I)+RelTol(I)*DABS(Y(I))
+          END IF
+       END DO
+       CALJAC=.FALSE.
+       REJECT=.FALSE.
+       LAST=.FALSE.
+  10   CONTINUE
+       IF (REJECT) THETA=2*ABS(THET)
+       ATOV=.FALSE.
+C *** *** *** *** *** *** ***
+C --- IS XEND REACHED IN THE NEXT STEP?
+C *** *** *** *** *** *** ***
+       H1=XEND-X
+       IF (H1.LE.UROUND) GO TO 110
+       HOPT=H
+       H=MIN(H,H1,HMAXN)
+       IF (H.GE.H1-UROUND) LAST=.TRUE.
+       IF (AUTNMS) THEN
+          CALL FCN(N,X,Y,DY)
+          NFCN=NFCN+1
+       END IF
+       IF (THETA.GT.THET.AND..NOT.CALJAC) THEN
+C *** *** *** *** *** *** ***
+C  COMPUTATION OF THE JACOBIAN
+C *** *** *** *** *** *** ***
+          NJAC=NJAC+1
+C --- COMPUTE JACOBIAN MATRIX ANALYTICALLY
+          CALL JAC(N,X,Y,FJAC)
+          CALJAC=.TRUE.
+          CALHES=.FALSE.
+       END IF
+C *** *** *** *** *** *** ***
+C --- THE FIRST AND LAST STEP
+C *** *** *** *** *** *** ***
+      IF (NSTEP.EQ.0.OR.LAST) THEN
+        IPT=0
+        NSTEP=NSTEP+1
+        DO J=1,K
+         KC=J
+         CALL SEUL(J,N,FCN,X,Y,DY,FX,FJAC,LFJAC,FMAS,LDMAS,E,LE,IP,H,KM,
+     &             HMAXN,T,SCAL,NJ,HH,W,A,YHH,DYH,DEL,WH,ERR,SAFE1,FAC,
+     &             FAC1,FAC2,SAFE2,THETA,MLJAC,MUJAC,NFCN,NDEC,NSOL,MLB,
+     &             MUB,ERROLD,IPHES,ICOMP,AUTNMS,IMPLCT,BANDED,REJECT,
+     &             ATOV,FSAFE,KM2,NRD,IOUT,IPT,M1,M2,NM1,IJOB,CALHES)
+         IF (ATOV) GOTO 10
+         IF (J.GT.1.AND.ERR.LE.1.D0) GO TO 60
+        END DO
+        GO TO 55
+      END IF
+C --- BASIC INTEGRATION STEP
+  30  CONTINUE
+      IPT=0
+      NSTEP=NSTEP+1
+      IF (NSTEP.GE.NMAX) GO TO 120
+      KC=K-1
+      DO J=1,KC
+       CALL SEUL(J,N,FCN,X,Y,DY,FX,FJAC,LFJAC,FMAS,LDMAS,E,LE,IP,H,KM,
+     &           HMAXN,T,SCAL,NJ,HH,W,A,YHH,DYH,DEL,WH,ERR,SAFE1,
+     &           FAC,FAC1,FAC2,SAFE2,THETA,MLJAC,MUJAC,NFCN,NDEC,NSOL,
+     &           MLB,MUB,ERROLD,IPHES,ICOMP,AUTNMS,IMPLCT,BANDED,REJECT,
+     &           ATOV,FSAFE,KM2,NRD,IOUT,IPT,M1,M2,NM1,IJOB,CALHES)
+       IF (ATOV) GOTO 10
+      END DO
+C *** *** *** *** *** *** ***
+C --- CONVERGENCE MONITOR
+C *** *** *** *** *** *** ***
+      IF (K.EQ.2.OR.REJECT) GO TO 50
+      IF (ERR.LE.1.D0) GO TO 60
+      IF (ERR.GT.DBLE(NJ(K+1)*NJ(K))*4.D0) GO TO 100
+  50  CALL SEUL(K,N,FCN,X,Y,DY,FX,FJAC,LFJAC,FMAS,LDMAS,E,LE,IP,H,KM,
+     &           HMAXN,T,SCAL,NJ,HH,W,A,YHH,DYH,DEL,WH,ERR,SAFE1,
+     &           FAC,FAC1,FAC2,SAFE2,THETA,MLJAC,MUJAC,NFCN,NDEC,NSOL,
+     &           MLB,MUB,ERROLD,IPHES,ICOMP,AUTNMS,IMPLCT,BANDED,REJECT,
+     &           ATOV,FSAFE,KM2,NRD,IOUT,IPT,M1,M2,NM1,IJOB,CALHES)
+      IF (ATOV) GOTO 10
+      KC=K
+      IF (ERR.LE.1.D0) GO TO 60
+C --- HOPE FOR CONVERGENCE IN LINE K+1
+  55  IF (ERR.GT.DBLE(NJ(K+1))*2.D0) GO TO 100
+      KC=K+1
+      CALL SEUL(KC,N,FCN,X,Y,DY,FX,FJAC,LFJAC,FMAS,LDMAS,E,LE,IP,H,KM,
+     &           HMAXN,T,SCAL,NJ,HH,W,A,YHH,DYH,DEL,WH,ERR,SAFE1,
+     &           FAC,FAC1,FAC2,SAFE2,THETA,MLJAC,MUJAC,NFCN,NDEC,NSOL,
+     &           MLB,MUB,ERROLD,IPHES,ICOMP,AUTNMS,IMPLCT,BANDED,REJECT,
+     &           ATOV,FSAFE,KM2,NRD,IOUT,IPT,M1,M2,NM1,IJOB,CALHES)
+      IF (ATOV) GOTO 10
+CAdi      IF (ERR.GT.1.D0) GO TO 100
+      IF ((ERR.GT.1.D0).and.(H.gt.STEPMIN)) GO TO 100 ! Adi
+C *** *** *** *** *** *** ***
+C --- STEP IS ACCEPTED
+C *** *** *** *** *** *** ***
+  60  XOLD=X
+      X=X+H
+      IF (IOUT.EQ.2) THEN
+         KRIGHT=KC
+         DO I=1,NRD
+            DENS(I)=Y(ICOMP(I))
+         END DO
+      END IF
+      DO I=1,N
+         T1I=T(1,I)
+         IF (ITOL.EQ.0) THEN
+            SCAL(I)=AbsTol(1)+RelTol(1)*DABS(T1I)
+         ELSE
+            SCAL(I)=AbsTol(I)+RelTol(I)*DABS(T1I)
+         END IF
+         Y(I)=T1I
+      END DO
+      NACCPT=NACCPT+1
+      CALJAC=.FALSE.
+      IF (IOUT.EQ.2) THEN
+         XOLDD=XOLD
+         HHH=H
+         DO I=1,NRD
+            DENS(NRD+I)=Y(ICOMP(I))
+         END DO
+         DO KLR=1,KRIGHT-1
+C --- COMPUTE DIFFERENCES
+            IF (KLR.GE.2) THEN
+               DO KK=KLR,KC
+                  LBEG=((KK+1)*KK)/2
+                  LEND=LBEG-KK+2
+                  DO L=LBEG,LEND,-1
+                     DO I=1,NRD
+                        FSAFE(L,I)=FSAFE(L,I)-FSAFE(L-1,I)
+                     END DO
+                  END DO
+               END DO
+             END IF
+C --- COMPUTE DERIVATIVES AT RIGHT END ----
+             DO KK=KLR+LAMBDA,KC
+                FACNJ=NJ(KK)
+                FACNJ=FACNJ**KLR/FACUL(KLR+1)
+                IPT=((KK+1)*KK)/2
+                DO  I=1,NRD
+                   KRN=(KK-LAMBDA+1)*NRD
+                   DENS(KRN+I)=FSAFE(IPT,I)*FACNJ
+                END DO
+             END DO
+             DO J=KLR+LAMBDA+1,KC
+               DBLENJ=NJ(J)
+               DO L=J,KLR+LAMBDA+1,-1
+                 FACTOR=DBLENJ/NJ(L-1)-1.D0
+                 DO I=1,NRD
+                   KRN=(L-LAMBDA+1)*NRD+I
+                   DENS(KRN-NRD)=DENS(KRN)
+     &                          +(DENS(KRN)-DENS(KRN-NRD))/FACTOR
+                 END DO
+               END DO
+             END DO
+         END DO
+C ---  COMPUTE THE COEFFICIENTS OF THE INTERPOLATION POLYNOMIAL
+         DO IN=1,NRD
+            DO J=1,KRIGHT
+               II=NRD*J+IN
+               DENS(II)=DENS(II)-DENS(II-NRD)
+            END DO
+         END DO
+      END IF
+C --- COMPUTE OPTIMAL ORDER
+      IF (KC.EQ.2) THEN
+         KOPT=3
+         IF (REJECT) KOPT=2
+         GO TO 80
+      END IF
+      IF (KC.LE.K) THEN
+         KOPT=KC
+         IF (W(KC-1).LT.W(KC)*FAC3) KOPT=KC-1
+         IF (W(KC).LT.W(KC-1)*FAC4) KOPT=MIN0(KC+1,KM-1)
+      ELSE
+         KOPT=KC-1
+         IF (KC.GT.3.AND.W(KC-2).LT.W(KC-1)*FAC3) KOPT=KC-2
+         IF (W(KC).LT.W(KOPT)*FAC4) KOPT=MIN0(KC,KM-1)
+      END IF
+C --- AFTER A REJECTED STEP
+  80  IF (REJECT) THEN
+         K=MIN0(KOPT,KC)
+         H=DMIN1(H,HH(K))
+         REJECT=.FALSE.
+         GO TO 10
+      END IF
+C --- COMPUTE STEP SIZE FOR NEXT STEP
+      IF (KOPT.LE.KC) THEN
+         H=HH(KOPT)
+      ELSE
+         IF (KC.LT.K.AND.W(KC).LT.W(KC-1)*FAC4) THEN
+            H=HH(KC)*A(KOPT+1)/A(KC)
+         ELSE
+            H=HH(KC)*A(KOPT)/A(KC)
+         END IF
+      END IF
+      K=KOPT
+      H = DMAX1(H, STEPMIN)  ! Adi
+      GO TO 10
+C *** *** *** *** *** *** ***
+C --- STEP IS REJECTED
+C *** *** *** *** *** *** ***
+ 100  K=MIN0(K,KC)
+      IF (K.GT.2.AND.W(K-1).LT.W(K)*FAC3) K=K-1
+      NREJCT=NREJCT+1
+      H=HH(K)
+      LAST=.FALSE.
+      REJECT=.TRUE.
+      IF (CALJAC) GOTO 30
+      GO TO 10
+C --- SOLUTION EXIT
+ 110  CONTINUE
+      H=HOPT
+      IDID=1
+      RETURN
+C --- FAIL EXIT
+ 120  WRITE (6,979) X,H
+ 979  FORMAT(' EXIT OF SEULEX AT X=',D14.7,'   H=',D14.7)
+      IDID=-1
+      RETURN
+      END
+C
+C
+C *** *** *** *** *** *** ***
+C     S U B R O U T I N E    S E U L
+C *** *** *** *** *** *** ***
+C
+      SUBROUTINE SEUL(JJ,N,FCN,X,Y,DY,FX,FJAC,LFJAC,FMAS,LDMAS,E,LE,IP,
+     &          H,KM,HMAXN,T,SCAL,NJ,HH,W,A,YH,DYH,DEL,WH,ERR,SAFE1,
+     &          FAC,FAC1,FAC2,SAFE2,THETA,MLJAC,MUJAC,NFCN,NDEC,NSOL,
+     &          MLB,MUB,ERROLD,IPHES,ICOMP,
+     &          AUTNMS,IMPLCT,BANDED,REJECT,ATOV,FSAFE,KM2,NRD,IOUT,
+     &          IPT,M1,M2,NM1,IJOB,CALHES)
+C --- THIS SUBROUTINE COMPUTES THE J-TH LINE OF THE
+C --- EXTRAPOLATION TABLE AND PROVIDES AN ESTIMATE
+C --- OF THE OPTIMAL STEP SIZE
+      IMPLICIT KPP_REAL (A-H,O-Z)
+      INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Sparse.h'
+      INTEGER KM, KM2
+      DIMENSION Y(N),YH(N),DY(N),FX(N),DYH(N),DEL(N)
+      DIMENSION WH(N),SCAL(N),HH(KM),W(KM),A(KM)
+      DIMENSION FJAC(LU_NONZERO),E(LU_NONZERO)
+      DIMENSION FMAS(LDMAS,N),T(KM,N),IP(N),NJ(KM),IPHES(N)
+      DIMENSION FSAFE(KM2,NRD),ICOMP(NRD)
+      LOGICAL ATOV,REJECT,AUTNMS,IMPLCT,BANDED,CALHES
+      COMMON/LINAL/MLE,MUE,MBJAC,MBB,MDIAG,MDIFF,MBDIAG
+      EXTERNAL FCN
+C *** *** *** *** *** *** ***
+C  COMPUTE THE MATRIX E AND ITS DECOMPOSITION
+C *** *** *** *** *** *** ***
+      HJ=H/NJ(JJ)
+      HJI=1.D0/HJ
+      DO  I=1,LU_NONZERO
+         E(I)=-FJAC(I)
+      END DO
+      DO J=1,N
+         E(LU_DIAG(J))=E(LU_DIAG(J))+HJI
+      END DO
+      CALL KppDecomp (E,IER)
+      IF (IER.NE.0) GOTO 79
+      NDEC=NDEC+1
+C *** *** *** *** *** *** ***
+C --- STARTING PROCEDURE
+C *** *** *** *** *** *** ***
+       IF (.NOT.AUTNMS) THEN
+          CALL FCN(N,X+HJ,Y,DY)
+          NFCN=NFCN+1
+       END IF
+       DO I=1,N
+          YH(I)=Y(I)
+          DEL(I)=DY(I)
+       END DO
+       CALL KppSolve (E,DEL)
+       NSOL=NSOL+1
+       M=NJ(JJ)
+       IF (IOUT.EQ.2.AND.M.EQ.JJ) THEN
+          IPT=IPT+1
+          DO I=1,NRD
+             FSAFE(IPT,I)=DEL(ICOMP(I))
+          END DO
+       END IF
+C *** *** *** *** *** *** ***
+C --- SEMI-IMPLICIT EULER METHOD
+C *** *** *** *** *** *** ***
+       IF (M.GT.1) THEN
+          DO MM=1,M-1
+             DO I=1,N
+                YH(I)=YH(I)+DEL(I)
+             END DO
+             IF (AUTNMS) THEN
+                CALL FCN(N,X+HJ*MM,YH,DYH)
+             ELSE
+                CALL FCN(N,X+HJ*(MM+1),YH,DYH)
+             END IF
+             NFCN=NFCN+1
+             IF (MM.EQ.1.AND.JJ.LE.2) THEN
+C --- STABILITY CHECK
+                DEL1=0.D0
+                DO I=1,N
+                   DEL1=DEL1+(DEL(I)/SCAL(I))**2
+                END DO
+                DEL1=DSQRT(DEL1)
+                IF (IMPLCT) THEN
+                   DO I=1,NM1
+                      WH(I)=DEL(I+M1)
+                   END DO
+                   IF (MLB.EQ.NM1) THEN
+                      DO I=1,NM1
+                         SUM=0.D0
+                         DO J=1,NM1
+                            SUM=SUM+FMAS(I,J)*WH(J)
+                         END DO
+                         DEL(I+M1)=SUM
+                      END DO
+                   ELSE
+                      DO I=1,NM1
+                         SUM=0.D0
+                         DO J=MAX(1,I-MLB),MIN(NM1,I+MUB)
+                            SUM=SUM+FMAS(I-J+MBDIAG,J)*WH(J)
+                         END DO
+                         DEL(I+M1)=SUM
+                      END DO
+                   END IF
+                END IF
+                IF (.NOT.AUTNMS) THEN
+                   CALL FCN(N,X+HJ,YH,WH)
+                   NFCN=NFCN+1
+                   DO I=1,N
+                      DEL(I)=WH(I)-DEL(I)*HJI
+                   END DO
+                ELSE
+                   DO I=1,N
+                      DEL(I)=DYH(I)-DEL(I)*HJI
+                   END DO
+                END IF
+                CALL KppSolve (E,DEL)
+                NSOL=NSOL+1
+                DEL2=0.D0
+                DO I=1,N
+                   DEL2=DEL2+(DEL(I)/SCAL(I))**2
+                END DO
+                DEL2=DSQRT(DEL2)
+                THETA=DEL2/MAX(1.D0,DEL1)
+                IF (THETA.GT.1.D0) GOTO 79
+             END IF
+             CALL KppSolve (E,DYH)
+             NSOL=NSOL+1
+             DO I=1,N
+                DEL(I)=DYH(I)
+             END DO
+             IF (IOUT.EQ.2.AND.MM.GE.M-JJ) THEN
+                IPT=IPT+1
+                DO I=1,NRD
+                   FSAFE(IPT,I)=DEL(ICOMP(I))
+                END DO
+             END IF
+          END DO
+       END IF
+       DO I=1,N
+          T(JJ,I)=YH(I)+DEL(I)
+       END DO
+C *** *** *** *** *** *** ***
+C --- POLYNOMIAL EXTRAPOLATION
+C *** *** *** *** *** *** ***
+       IF (JJ.EQ.1) RETURN
+       DO L=JJ,2,-1
+          FAC=(DBLE(NJ(JJ))/DBLE(NJ(L-1)))-1.D0
+          DO I=1,N
+             T(L-1,I)=T(L,I)+(T(L,I)-T(L-1,I))/FAC
+          END DO
+       END DO
+       ERR=0.D0
+       DO I=1,N
+          ERR=ERR+MIN(ABS((T(1,I)-T(2,I)))/SCAL(I),1.D15)**2
+       END DO
+       IF (ERR.GE.1.D30) GOTO 79
+       ERR=DSQRT(ERR/DBLE(N))
+       IF (JJ.GT.2.AND.ERR.GE.ERROLD) GOTO 79
+       ERROLD=DMAX1(4*ERR,1.D0)
+C --- COMPUTE OPTIMAL STEP SIZES
+       EXPO=1.D0/JJ
+       FACMIN=FAC1**EXPO
+       FAC=DMIN1(FAC2/FACMIN,DMAX1(FACMIN,(ERR/SAFE1)**EXPO/SAFE2))
+       FAC=1.D0/FAC
+       HH(JJ)=DMIN1(H*FAC,HMAXN)
+       W(JJ)=A(JJ)/HH(JJ)
+       RETURN
+  79   ATOV=.TRUE.
+       H=H*0.5D0
+       REJECT=.TRUE.
+       RETURN
+       END
+
+
+
+      SUBROUTINE FUNC_CHEM(N, T, Y, P)
+      INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Global.h'
+      INTEGER N
+      KPP_REAL   T, Told
+      KPP_REAL   Y(NVAR), P(NVAR)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Fun( Y,  FIX, RCONST, P )
+      TIME = Told
+      RETURN
+      END
+
+
+      SUBROUTINE JAC_CHEM(N, T, Y, J)
+      INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Global.h'
+      INTEGER N
+      KPP_REAL   Told, T
+      KPP_REAL   Y(NVAR), J(LU_NONZERO)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Jac_SP( Y,  FIX, RCONST, J )
+      TIME = Told
+      RETURN
+      END
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/kpp_seulex.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/kpp_seulex.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/kpp_seulex.f90	(revision 2696)
@@ -0,0 +1,1163 @@
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
+!  SEULEX - Stiff extrapolation method based on linearly implicit Euler   !
+!  By default the code employs the KPP sparse linear algebra routines     !
+!  Compile with -DFULL_ALGEBRA to use full linear algebra (LAPACK)        !
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
+
+MODULE KPP_ROOT_Integrator
+
+  USE KPP_ROOT_Precision, ONLY: dp
+  USE KPP_ROOT_Parameters, ONLY: NVAR, LU_NONZERO
+  USE KPP_ROOT_Jacobian, ONLY: LU_DIAG
+  USE KPP_ROOT_LinearAlgebra
+
+  IMPLICIT NONE
+  PUBLIC
+  SAVE
+
+  ! variables from the former COMMON block /CONRA5/ are now here:
+  INTEGER :: NN, NN2, NN3, NN4
+  KPP_REAL :: TSOL, HSOL
+  
+  ! Statistics
+  INTEGER :: Nfun,Njac,Nstp,Nacc,Nrej,Ndec,Nsol,Nsng
+  
+  ! Method parameters
+  
+  ! mz_rs_20050717: TODO: use strings of IERR_NAMES for error messages
+  ! description of the error numbers IERR
+  CHARACTER(LEN=50), PARAMETER, DIMENSION(-4:1) :: IERR_NAMES = (/ &
+    'Matrix is repeatedly singular                     ', & ! -4
+    'Step size too small                               ', & ! -3
+    'More than Max_no_steps steps are needed           ', & ! -2
+    'Insufficient storage for work or iwork            ', & ! -1
+    '                                                  ', & !  0 (not used)
+    'Success                                           ' /) !  1
+
+CONTAINS
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE INTEGRATE( TIN, TOUT, &
+    ICNTRL_U, RCNTRL_U, ISTATUS_U, RSTATUS_U, IERR_U )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+    USE KPP_ROOT_Parameters, ONLY: nvar
+    USE KPP_ROOT_Global,     ONLY: atol,rtol,var
+
+    IMPLICIT NONE
+
+    KPP_REAL :: TIN  ! TIN - Start Time
+    KPP_REAL :: TOUT ! TOUT - End Time
+    INTEGER,  INTENT(IN),  OPTIONAL :: ICNTRL_U(20)
+    KPP_REAL, INTENT(IN),  OPTIONAL :: RCNTRL_U(20)
+    INTEGER,  INTENT(OUT), OPTIONAL :: ISTATUS_U(20)
+    KPP_REAL, INTENT(OUT), OPTIONAL :: RSTATUS_U(20)
+    INTEGER,  INTENT(OUT), OPTIONAL :: IERR_U
+
+    INTEGER :: Ncolumns, Ncolumns2, NRDENS
+    PARAMETER (Ncolumns=12,Ncolumns2=2+Ncolumns*(Ncolumns+3)/2,NRDENS=NVAR)
+
+    KPP_REAL :: RCNTRL(20), RSTATUS(20)
+    INTEGER ::       ICNTRL(20), ISTATUS(20)
+    INTEGER :: IERR
+    INTEGER, SAVE :: Ntotal = 0
+    KPP_REAL, SAVE :: H
+
+    H = 0.0_dp
+
+    ICNTRL(1:20) = 0
+    RCNTRL(1:20)  = 0._dp
+    ICNTRL(10)=0    !~~~> OUTPUT ROUTINE IS NOT USED DURING INTEGRATION
+
+    ! if optional parameters are given, and if they are >0, 
+    ! they overwrite the default settings
+    IF (PRESENT(ICNTRL_U)) ICNTRL(:) = ICNTRL_U(:)
+    IF (PRESENT(RCNTRL_U)) RCNTRL(:) = RCNTRL_U(:)
+    !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----
+    
+
+    CALL ATMSEULEX(NVAR,TIN,TOUT,VAR,H,RTOL,ATOL,      &
+                    RCNTRL,ICNTRL,RSTATUS,ISTATUS,IERR )
+    Ntotal = Ntotal + Nstp
+!!$    PRINT*,'NSTEPS=',Nstp,' (',Ntotal,')  T=',TIN
+
+
+    Nfun = Nfun + ISTATUS(1)
+    Njac = Njac + ISTATUS(2)
+    Nstp = Nstp + ISTATUS(3)
+    Nacc = Nacc + ISTATUS(4)
+    Nrej = Nrej + ISTATUS(5)
+    Ndec = Ndec + ISTATUS(6)
+    Nsol = Nsol + ISTATUS(7)
+
+    ! if optional parameters are given for output
+    ! use them to store information in them
+    IF (PRESENT(ISTATUS_U)) THEN
+      ISTATUS_U(:) = 0
+      ISTATUS_U(1) = Nfun ! function calls
+      ISTATUS_U(2) = Njac ! jacobian calls
+      ISTATUS_U(3) = Nstp ! steps
+      ISTATUS_U(4) = Nacc ! accepted steps
+      ISTATUS_U(5) = Nrej ! rejected steps (except at the beginning)
+      ISTATUS_U(6) = Ndec ! LU decompositions
+      ISTATUS_U(7) = Nsol ! forward/backward substitutions
+    ENDIF
+    IF (PRESENT(RSTATUS_U)) THEN
+      RSTATUS_U(:) = 0.
+      RSTATUS_U(1) = TOUT ! final time
+    ENDIF
+    IF (PRESENT(IERR_U)) IERR_U = IERR
+
+! mz_rs_20050716: IERR is returned to the user who then decides what to do
+! about it, i.e. either stop the run or ignore it.
+!!$    IF (IERR < 0) THEN
+!!$      PRINT *,'SEULEX: Unsuccessful exit at T=', TIN,' (IERR=',IERR,')'
+!!$      STOP
+!!$    ENDIF
+
+  END SUBROUTINE INTEGRATE
+  
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE ATMSEULEX( N,Tinitial,Tfinal,Y,H,RelTol,AbsTol,     &
+                        RCNTRL,ICNTRL,RSTATUS,ISTATUS,IERR )
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!     NUMERICAL SOLUTION OF A STIFF (OR DIFFERENTIAL ALGEBRAIC)
+!     SYSTEM OF FIRST 0RDER ORDINARY DIFFERENTIAL EQUATIONS  MY'=F(T,Y).
+!     THIS IS AN EXTRAPOLATION-ALGORITHM, BASED ON THE
+!     LINEARLY IMPLICIT EULER METHOD (WITH STEP SIZE CONTROL
+!     AND ORDER SELECTION).
+!
+!     AUTHORS: E. HAIRER AND G. WANNER
+!              UNIVERSITE DE GENEVE, DEPT. DE MATHEMATIQUES
+!              CH-1211 GENEVE 24, SWITZERLAND
+!              E-MAIL:  HAIRER@DIVSUN.UNIGE.CH,  WANNER@DIVSUN.UNIGE.CH
+!              INCLUSION OF DENSE OUTPUT BY E. HAIRER AND A. OSTERMANN
+!
+!     THIS CODE IS PART OF THE BOOK:
+!         E. HAIRER AND G. WANNER, SOLVING ORDINARY DIFFERENTIAL
+!         EQUATIONS II. STIFF AND DIFFERENTIAL-ALGEBRAIC PROBLEMS.
+!         SPRINGER SERIES IN COMPUTATIONAL MATHEMATICS 14,
+!         SPRINGER-VERLAG (1991)
+!
+!     VERSION OF SEPTEMBER 30, 1995
+!
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!     INPUT PARAMETERS
+!     ----------------
+!     N           DIMENSION OF THE SYSTEM
+!
+!     T           INITIAL T-VALUE
+!
+!     Y(N)        INITIAL VALUES FOR Y
+!
+!     Tend        FINAL T-VALUE (Tend-T MAY BE POSITIVE OR NEGATIVE)
+!
+!     H           INITIAL STEP SIZE GUESS;
+!                 FOR STIFF EQUATIONS WITH INITIAL TRANSIENT,
+!                 H=1.D0/(NORM OF F'), USUALLY 1.D-2 OR 1.D-3, IS GOOD.
+!                 THIS CHOICE IS NOT VERY IMPORTANT, THE CODE QUICKLY
+!                 ADAPTS ITS STEP SIZE (IF H=0.D0, THE CODE PUTS H=1.D-6
+!
+!     RelTol,AbsTol   RELATIVE AND ABSOLUTE ERROR TOLERANCES. THEY
+!                 CAN BE BOTH SCALARS OR ELSE BOTH VECTORS OF LENGTH N.
+!
+!     JAC         NAME (EXTERNAL) OF THE SUBROUTINE WHICH COMPUTES
+!                 THE PARTIAL DERIVATIVES OF F(T,Y) WITH RESPECT TO Y
+!
+!     SOLOUT      NAME (EXTERNAL) OF SUBROUTINE PROVIDING THE
+!                 NUMERICAL SOLUTION DURING INTEGRATION.
+!                 IF IOUT>=1, IT IS CALLED AFTER EVERY SUCCESSFUL STEP.
+!                 SUPPLY A DUMMY SUBROUTINE IF IOUT=0.
+!                 IT MUST HAVE THE FORM
+!                    SUBROUTINE SOLOUT (NR,TOLD,T,Y,RC,LRC,IC,LIC,N,
+!                                       RPAR,IPAR,IRTRN)
+!                    KPP_REAL T,Y(N),RC(LRC),IC(LIC)
+!                    ....
+!                 SOLOUT FURNISHES THE SOLUTION "Y" AT THE NR-TH
+!                    GRID-POINT "T" (THEREBY THE INITIAL VALUE IS
+!                    THE FIRST GRID-POINT).
+!                 "TOLD" IS THE PRECEEDING GRID-POINT.
+!                 "IRTRN" SERVES TO INTERRUPT THE INTEGRATION. IF IRTRN
+!                    IS SET <0, SEULEX RETURNS TO THE CALLING PROGRAM.
+!                 DO NOT CHANGE THE ENTRIES OF RC(LRC),IC(LIC)!
+!
+!          -----  CONTINUOUS OUTPUT (IF IOUT=2): -----
+!                 DURING CALLS TO "SOLOUT", A CONTINUOUS SOLUTION
+!                 FOR THE INTERVAL [TOLD,T] IS AVAILABLE THROUGH
+!                 THE KPP_REAL FUNCTION
+!                        >>>   CONTEX(I,S,RC,LRC,IC,LIC)   <<<
+!                 WHICH PROVIDES AN APPROXIMATION TO THE I-TH
+!                 COMPONENT OF THE SOLUTION AT THE POINT S. THE VALUE
+!                 S SHOULD LIE IN THE INTERVAL [TOLD,T].
+!
+!     IOUT        GIVES INFORMATION ON THE SUBROUTINE SOLOUT:
+!                    IOUT=0: SUBROUTINE IS NEVER CALLED
+!                    IOUT=1: SUBROUTINE IS USED FOR OUTPUT
+!                    IOUT=2: DENSE OUTPUT IS PERFORMED IN SOLOUT
+!
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!     SOPHISTICATED SETTING OF PARAMETERS
+!     -----------------------------------
+!              SEVERAL PARAMETERS OF THE CODE ARE TUNED TO MAKE IT CNTRL
+!              WELL. THEY MAY BE DEFINED BY SETTING CNTRL(1),..,CNTRL(13)
+!              AS WELL AS ICNTRL(1),..,ICNTRL(4) DIFFERENT FROM ZERO.
+!              FOR ZERO INPUT, THE CODE CHOOSES DEFAULT VALUES:
+!
+!
+!~~~>     INPUT PARAMETERS:
+!
+!    Note: For input parameters equal to zero the default values of the
+!          corresponding variables are used.
+!~~~>  
+!    ICNTRL(1) = 1: F = F(y)   Independent of T (autonomous)
+!              = 0: F = F(t,y) Depends on T (non-autonomous)
+!
+!    ICNTRL(2) = 0: AbsTol, RelTol are NVAR-dimensional vectors
+!              = 1: AbsTol, RelTol are scalars
+!
+!    ICNTRL(3)  -> not used
+!
+!    ICNTRL(4)  -> maximum number of integration steps
+!        For ICNTRL(4)=0 the default value of 100000 is used
+!
+!    ICNTRL(11)  THE MAXIMUM NUMBER OF COLUMNS IN THE EXTRAPOLATION
+!              TABLE. THE DEFAULT VALUE (FOR ICNTRL(3)=0) IS 12.
+!              IF ICNTRL(3).NE.0 THEN ICNTRL(3) SHOULD BE  >= 3.
+!
+!    ICNTRL(12)  SWITCH FOR THE STEP SIZE SEQUENCE
+!              IF ICNTRL(4) == 1 THEN 1,2,3,4,6,8,12,16,24,32,48,...
+!              IF ICNTRL(4) == 2 THEN 2,3,4,6,8,12,16,24,32,48,64,...
+!              IF ICNTRL(4) == 3 THEN 1,2,3,4,5,6,7,8,9,10,...
+!              IF ICNTRL(4) == 4 THEN 2,3,4,5,6,7,8,9,10,11,...
+!              THE DEFAULT VALUE (FOR ICNTRL(4)=0) IS ICNTRL(4)=2.
+!
+!    ICNTRL(13)  PARAMETER "LAMBDA" OF DENSE OUTPUT; POSSIBLE VALUES
+!              ARE 0 AND 1; DEFAULT ICNTRL(5)=0.
+!
+!    ICNTRL(14)  = NRDENS = NUMBER OF COMPONENTS, FOR WHICH DENSE OUTPUT
+!              IS REQUIRED
+!
+!    ICNTRL(21),...,ICNTRL(NRDENS+20) INDICATE THE COMPONENTS, FOR WHICH
+!              DENSE OUTPUT IS REQUIRED
+!
+!~~~>  Real parameters
+!
+!    RCNTRL(1)  -> Hmin, lower bound for the integration step size
+!                  It is strongly recommended to keep Hmin = ZERO
+!    RCNTRL(2)  -> Hmax, upper bound for the integration step size
+!    RCNTRL(3)  -> Hstart, starting value for the integration step size
+!    RCNTRL(4)  -> FacMin, lower bound on step decrease factor (default=0.2)
+!    RCNTRL(5)  -> FacMax, upper bound on step increase factor (default=6)
+!    RCNTRL(6)  -> FacRej, step decrease factor after multiple rejections
+!                 (default=0.1)
+!    RCNTRL(7)  -> FacSafe, by which the new step is slightly smaller
+!                  than the predicted value  (default=0.9)
+!    RCNTRL(8)  -> ThetaMin. If Newton convergence rate smaller
+!                  than ThetaMin the Jacobian is not recomputed;
+!                  (default=0.001). Increase cntrl(3), to 0.01 say, when 
+!                   Jacobian evaluations are costly. for small systems it 
+!                   should be smaller.
+!    RCNTRL(9)  -> not used
+!    RCNTRL(10,11) -> FAC1,FAC2 (parameters for step size selection)
+!    RCNTRL(12,13) -> FAC3,FAC4 (parameters for order selection)
+!    RCNTRL(14,15) -> FacSafe1, FacSafe2
+!                     Safety factors for step size prediction
+!                     HNEW=H*FacSafe2*(FacSafe1*TOL/ERR)**(1/(J-1))
+!    RCNTRL(16:19) -> WorkFcn, WorkJac, WorkDec, WorkSol 
+!                     estimated computational work
+!
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!     OUTPUT PARAMETERS
+!     -----------------
+!     T           T-VALUE WHERE THE SOLUTION IS COMPUTED
+!                 (AFTER SUCCESSFUL RETURN T=Tend)
+!
+!     Y(N)        SOLUTION AT T
+!
+!     H           PREDICTED STEP SIZE OF THE LAST ACCEPTED STEP
+!
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!          DECLARATIONS
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      INTEGER :: N, IERR, ITOL, Max_no_steps, Ncolumns, Nsequence, Lambda, &
+                 NRDENS, i, Ncolumns2, NRD, IOUT
+      KPP_REAL :: Y(NVAR),AbsTol(*),RelTol(*)
+      KPP_REAL :: Tinitial, Tfinal, Roundoff, Hmin, Hmax,         &
+                 FacMin, FacMax, FAC1, FAC2, FAC3, FAC4, FacSafe1,     &
+                 FacSafe2, H, Hstart,WorkFcn,WorkJac, WorkDec, WorkSol,&
+                 WorkRow, FacRej, FacSafe, ThetaMin, T
+      LOGICAL :: AUTNMS
+      KPP_REAL :: RCNTRL(20), RSTATUS(20)
+      INTEGER ::       ICNTRL(20), ISTATUS(20)
+      KPP_REAL, PARAMETER :: ZERO = 0.0d0
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!        SETTING THE PARAMETERS
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   Nfun=0
+   Njac=0
+   Nstp=0
+   Nacc=0
+   Nrej=0
+   Ndec=0
+   Nsol=0
+       
+   IERR = 0
+
+   IF (ICNTRL(1) == 0) THEN
+      AUTNMS = .FALSE. 
+   ELSE
+      AUTNMS = .TRUE.
+   END IF
+
+!~~~>  For Scalar tolerances (ICNTRL(1)/=0) the code uses AbsTol(1) and RelTol(1)
+!~~~>  For Vector tolerances (ICNTRL(1)==0) the code uses AbsTol(1:NVAR) and RelTol(1:NVAR)
+   IF (ICNTRL(2) == 0) THEN
+      ITOL = 1
+   ELSE
+      ITOL = 0
+   END IF
+
+!~~~> Max_no_steps: the maximum number of time steps admitted
+   IF (ICNTRL(4) == 0) THEN
+      Max_no_steps = 100000
+   ELSEIF (ICNTRL(4) > 0) THEN
+      Max_no_steps=ICNTRL(4)
+   ELSE
+      PRINT * ,'User-selected ICNTRL(4)=',ICNTRL(4)
+      CALL SEULEX_ErrorMsg(-1,Tinitial,ZERO,IERR);
+   END IF
+
+!~~~> IOUT = use (or not) the output routine
+   IOUT = ICNTRL(10)
+   IF ( IOUT<0 .OR. IOUT>2 ) THEN
+       PRINT * ,'User-selected ICNTRL(10)=',ICNTRL(10)
+       IOUT = 0
+   END IF
+   
+!~~~> Ncolumns:  maximum number of columns in the extrapolation
+   IF (ICNTRL(11)==0) THEN
+       Ncolumns=12
+   ELSEIF (ICNTRL(11) > 2) THEN
+       Ncolumns=ICNTRL(11)
+   ELSE   
+       PRINT * ,'User-selected ICNTRL(11)=',ICNTRL(11)
+       CALL SEULEX_ErrorMsg(-2,Tinitial,ZERO,IERR);
+   END IF
+
+!~~~> Nsequence: choice of step size sequence
+   IF (ICNTRL(12)==0) THEN
+      Nsequence = 2
+   ELSEIF ( (ICNTRL(12)>0).AND.(ICNTRL(12)<5) ) THEN
+      Nsequence = ICNTRL(4)
+   ELSE
+      PRINT * ,'User-selected ICNTRL(12)=',ICNTRL(12)
+      CALL SEULEX_ErrorMsg(-3,Tinitial,ZERO,IERR)
+   END IF
+
+!~~~> LAMBDA: parameter for dense output
+   LAMBDA = ICNTRL(13)
+   IF ( LAMBDA < 0 .OR. LAMBDA >= 2 ) THEN
+       PRINT * ,'User-selected ICNTRL(13)=',ICNTRL(13)
+       CALL SEULEX_ErrorMsg(-4,Tinitial,ZERO,IERR)
+   END IF
+      
+!~~~>- NRDENS:  number of dense output components
+   NRDENS=ICNTRL(14)
+   IF ( (NRDENS < 0) .OR. (NRDENS > N)  ) THEN
+       PRINT * ,'User-selected ICNTRL(14)=',ICNTRL(14)
+       CALL SEULEX_ErrorMsg(-5,Tinitial,ZERO,IERR)
+   END IF
+
+
+!~~~>  Unit roundoff (1+Roundoff>1)
+      Roundoff = WLAMCH('E')
+
+!~~~>  Lower bound on the step size: (positive value)
+   IF (RCNTRL(1) == ZERO) THEN
+      Hmin = ZERO
+   ELSEIF (RCNTRL(1) > ZERO) THEN
+      Hmin = RCNTRL(1)
+   ELSE
+      PRINT * , 'User-selected RCNTRL(1)=', RCNTRL(1)
+      CALL SEULEX_ErrorMsg(-7,Tinitial,ZERO,IERR)
+      RETURN
+   END IF
+   
+!~~~>  Upper bound on the step size: (positive value)
+   IF (RCNTRL(2) == ZERO) THEN
+      Hmax = ABS(Tfinal-Tinitial)
+   ELSEIF (RCNTRL(2) > ZERO) THEN
+      Hmax = MIN(ABS(RCNTRL(2)),ABS(Tfinal-Tinitial))
+   ELSE
+      PRINT * , 'User-selected RCNTRL(2)=', RCNTRL(2)
+      CALL SEULEX_ErrorMsg(-7,Tinitial,ZERO,IERR)
+      RETURN
+   END IF
+   
+!~~~>  Starting step size: (positive value)
+   IF (RCNTRL(3) == ZERO) THEN
+      Hstart = MAX(Hmin,Roundoff)
+   ELSEIF (RCNTRL(3) > ZERO) THEN
+      Hstart = MIN(ABS(RCNTRL(3)),ABS(Tfinal-Tinitial))
+   ELSE
+      PRINT * , 'User-selected Hstart: RCNTRL(3)=', RCNTRL(3)
+      CALL SEULEX_ErrorMsg(-7,Tinitial,ZERO,IERR)
+      RETURN
+   END IF
+   
+   
+!~~~>  Step size can be changed s.t.  FacMin < Hnew/Hexit < FacMax
+   IF (RCNTRL(4) == ZERO) THEN
+      FacMin = 0.2_dp
+   ELSEIF (RCNTRL(4) > ZERO) THEN
+      FacMin = RCNTRL(4)
+   ELSE
+      PRINT * , 'User-selected FacMin: RCNTRL(4)=', RCNTRL(4)
+      CALL SEULEX_ErrorMsg(-8,Tinitial,ZERO,IERR)
+      RETURN
+   END IF
+   IF (RCNTRL(5) == ZERO) THEN
+      FacMax = 10.0_dp
+   ELSEIF (RCNTRL(5) > ZERO) THEN
+      FacMax = RCNTRL(5)
+   ELSE
+      PRINT * , 'User-selected FacMax: RCNTRL(5)=', RCNTRL(5)
+      CALL SEULEX_ErrorMsg(-8,Tinitial,ZERO,IERR)
+      RETURN
+   END IF
+!~~~>   FacRej: Factor to decrease step after 2 succesive rejections
+   IF (RCNTRL(6) == ZERO) THEN
+      FacRej = 0.1_dp
+   ELSEIF (RCNTRL(6) > ZERO) THEN
+      FacRej = RCNTRL(6)
+   ELSE
+      PRINT * , 'User-selected FacRej: RCNTRL(6)=', RCNTRL(6)
+      CALL SEULEX_ErrorMsg(-8,Tinitial,ZERO,IERR)
+      RETURN
+   END IF
+!~~~>   FacSafe: Safety Factor in the computation of new step size
+   IF (RCNTRL(7) == ZERO) THEN
+      FacSafe = 0.9_dp
+   ELSEIF (RCNTRL(7) > ZERO) THEN
+      FacSafe = RCNTRL(7)
+   ELSE
+      PRINT * , 'User-selected FacSafe: RCNTRL(7)=', RCNTRL(7)
+      CALL SEULEX_ErrorMsg(-8,Tinitial,ZERO,IERR)
+      RETURN
+   END IF
+
+!~~~> ThetaMin: DECIDES WHETHER THE JACOBIAN SHOULD BE RECOMPUTED;
+!              INCREASE WORK(3), TO 0.01 SAY, WHEN JACOBIAN EVALUATIONS
+!              ARE COSTLY. FOR SMALL SYSTEMS WORK(3) SHOULD BE SMALLER.
+   IF(RCNTRL(8) == 0.D0)THEN
+       ThetaMin = 1.0d-3
+   ELSE
+       ThetaMin = RCNTRL(8)
+   END IF
+
+!~~~>  FAC1,FAC2:     PARAMETERS FOR STEP SIZE SELECTION
+!              THE NEW STEP SIZE FOR THE J-TH DIAGONAL ENTRY IS
+!              CHOSEN SUBJECT TO THE RESTRICTION
+!                 FACMIN/WORK(5) <= HNEW(J)/HOLD <= 1/FACMIN
+!              WHERE FACMIN=WORK(4)**(1/(J-1))
+      IF(RCNTRL(10) == 0.D0)THEN
+         FAC1=0.1D0
+      ELSE
+         FAC1=RCNTRL(10)
+      END IF
+      IF(RCNTRL(11) == 0.D0)THEN
+         FAC2=4.0D0
+      ELSE
+         FAC2=RCNTRL(11)
+      END IF
+!~~~>  FAC3, FAC4:   PARAMETERS FOR THE ORDER SELECTION
+!              ORDER IS DECREASED IF    W(K-1) <= W(K)*WORK(6)
+!              ORDER IS INCREASED IF    W(K) <= W(K-1)*WORK(7)
+      IF(RCNTRL(12) == 0.D0)THEN
+         FAC3=0.7D0
+      ELSE
+         FAC3=RCNTRL(12)
+      END IF
+      IF(RCNTRL(13) == 0.D0)THEN
+         FAC4=0.9D0
+      ELSE
+         FAC4=RCNTRL(13)
+      END IF
+!~~~>- FacSafe1, FacSafe2: safety factors for step size prediction
+!             HNEW=H*WORK(9)*(WORK(8)*TOL/ERR)**(1/(J-1))
+      IF(RCNTRL(14) == 0.D0)THEN
+         FacSafe1=0.6D0
+      ELSE
+         FacSafe1=RCNTRL(14)
+      END IF
+      IF(RCNTRL(15) == 0.D0)THEN
+         FacSafe2=0.93D0
+      ELSE
+         FacSafe2=RCNTRL(15)
+      END IF
+      
+!~~~> WorkFcn: estimated computational work for a calls to FCN
+      IF(RCNTRL(16) == 0.D0)THEN
+         WorkFcn=1.D0
+      ELSE
+         WorkFcn=RCNTRL(16)
+      END IF
+!~~~> WorkJac: estimated computational work for calls to JAC
+      IF(RCNTRL(17) == 0.D0)THEN
+         WorkJac=5.D0
+      ELSE
+         WorkJac=RCNTRL(17)
+      END IF
+!~~~> WorkDec: estimated computational work for calls to DEC
+      IF(RCNTRL(18) == 0.D0)THEN
+         WorkDec=1.D0
+      ELSE
+         WorkDec=RCNTRL(18)
+      END IF
+!~~~> WorkSol: estimated computational work for calls to SOL
+      IF(RCNTRL(19) == 0.D0)THEN
+         WorkSol=1.D0
+      ELSE
+         WorkSol=RCNTRL(19)
+      END IF
+      WorkRow=WorkFcn+WorkSol
+
+!~~~>  Check if tolerances are reasonable
+      IF (ITOL == 0) THEN
+         IF (AbsTol(1) <= 0.D0.OR.RelTol(1) <= 10.D0*Roundoff) THEN
+            PRINT * , ' Scalar AbsTol = ',AbsTol(1)
+            PRINT * , ' Scalar RelTol = ',RelTol(1)
+            CALL SEULEX_ErrorMsg(-9,Tinitial,ZERO,IERR)
+         END IF
+      ELSE
+         DO i=1,N
+            IF (AbsTol(i) <= 0.D0.OR.RelTol(i) <= 10.D0*Roundoff) THEN
+              PRINT * , ' AbsTol(',i,') = ',AbsTol(i)
+              PRINT * , ' RelTol(',i,') = ',RelTol(i)
+              CALL SEULEX_ErrorMsg(-9,Tinitial,ZERO,IERR)
+            END IF
+         END DO
+      END IF
+    
+    IF (IERR < 0) RETURN
+       
+!~~~>---- PREPARE THE ENTRY-POINTS FOR THE ARRAYS IN WORK -----
+      Ncolumns2=(Ncolumns*(Ncolumns+1))/2
+      NRD=MAX(1,NRDENS)
+
+      T = Tinitial
+!~~~> CALL TO CORE INTEGRATOR 
+      CALL SEULEX_Integrator(N,T,Tfinal,Y,Hmax,H,Ncolumns,RelTol,AbsTol,ITOL,  &
+                IOUT,IERR,Max_no_steps,Roundoff,Nsequence,AUTNMS,  &
+                FAC1,FAC2,FAC3,FAC4,ThetaMin,FacSafe1,FacSafe2,WorkJac,  &
+                WorkDec,WorkRow,Ncolumns2,NRD,LAMBDA,Nstp)
+        
+      ISTATUS(1)=Nfun
+      ISTATUS(2)=Njac
+      ISTATUS(3)=Nstp
+      ISTATUS(4)=Nacc
+      ISTATUS(5)=Nrej
+      ISTATUS(6)=Ndec
+      ISTATUS(7)=Nsol
+
+      END SUBROUTINE ATMSEULEX
+      
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE SEULEX_ErrorMsg(Code,T,H,IERR)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!    Handles all error messages
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+   KPP_REAL, INTENT(IN) :: T, H
+   INTEGER, INTENT(IN)  :: Code
+   INTEGER, INTENT(OUT) :: IERR
+
+   IERR = Code
+   PRINT * , &
+     'Forced exit from SEULEX due to the following error:'
+
+   SELECT CASE (Code)
+    CASE (-1)
+      PRINT * , '--> Improper value for maximal no of steps'
+    CASE (-2)
+      PRINT * , '--> Improper value for maximum no of columns in extrapolation'
+    CASE (-3)
+      PRINT * , '--> Improper value for step size sequence'
+    CASE (-4)
+      PRINT * , '--> Improper value for Lambda (must be 0/1)'
+    CASE (-5)
+      PRINT * , '--> Improper number of dense output components'
+    CASE (-6)
+      PRINT * , '--> Improper parameters for second order equations'
+    CASE (-7)
+      PRINT * , '--> Hmin/Hmax/Hstart must be positive'
+    CASE (-8)
+      PRINT * , '--> FacMin/FacMax/FacRej must be positive'
+    CASE (-9)
+      PRINT * , '--> Improper tolerance values'
+    CASE (-10)
+      PRINT * , '--> No of steps exceeds maximum bound'
+    CASE (-11)
+      PRINT * , '--> Step size too small: T + 10*H = T', &
+            ' or H < Roundoff'
+    CASE (-12)
+      PRINT * , '--> Matrix is repeatedly singular'
+    CASE DEFAULT
+      PRINT *, 'Unknown Error code: ', Code
+   END SELECT
+
+   PRINT *, "T=", T, "and H=", H
+
+ END SUBROUTINE SEULEX_ErrorMsg
+      
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE SEULEX_Integrator(N,T,Tend,Y,Hmax,H,Ncolumns,RelTol,AbsTol,ITOL,&
+       IOUT,IERR,Max_no_steps,Roundoff,Nsequence,AUTNMS,             &
+       FAC1,FAC2,FAC3,FAC4,ThetaMin,FacSafe1,FacSafe2,WorkJac,       &
+       WorkDec,WorkRow,Ncolumns2,NRD,LAMBDA,Nstp)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!     CORE INTEGRATOR FOR SEULEX
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!         DECLARATIONS
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+       USE KPP_ROOT_Parameters
+       USE KPP_ROOT_Jacobian
+       IMPLICIT KPP_REAL (A-H,O-Z)
+       IMPLICIT INTEGER (I-N)
+
+       INTEGER ::  N, Ncolumns, Ncolumns2, K, KC, KRIGHT, KLR, KK, KRN,&
+       KOPT, NRD
+       KPP_REAL ::  Y(NVAR),DY(NVAR),FX(NVAR),YHH(NVAR)
+       KPP_REAL ::  DYH(NVAR), DEL(NVAR), WH(NVAR)
+       KPP_REAL ::  SCAL(NVAR), HH(Ncolumns), W(Ncolumns), A(Ncolumns)
+#ifdef FULL_ALGEBRA    
+       KPP_REAL :: FJAC(NVAR,NVAR)
+#else       
+       KPP_REAL :: FJAC(LU_NONZERO)
+#endif       
+       KPP_REAL Table(Ncolumns,N)
+       INTEGER IP(N),NJ(Ncolumns),IPHES(N),ICOMP(NRD)
+       KPP_REAL RelTol(*),AbsTol(*)
+       KPP_REAL FSAFE(Ncolumns2,NRD),FACUL(Ncolumns),E(N,N),DENS((Ncolumns+2)*NRD)
+       LOGICAL REJECT,LAST,ATOV,CALJAC,CALHES,AUTNMS
+
+       KPP_REAL TOLDD,HHH,NNRD
+       COMMON /COSEU/TOLDD,HHH,NNRD,KRIGHT
+
+!~~~> COMPUTE COEFFICIENTS FOR DENSE OUTPUT
+       IF (IOUT == 2) THEN
+          NNRD=NRD
+!~~~> COMPUTE THE FACTORIALS --------
+          FACUL(1)=1.D0
+          DO i=1,Ncolumns-1
+             FACUL(i+1)=i*FACUL(i)
+          END DO
+       END IF
+
+!~~~> DEFINE THE STEP SIZE SEQUENCE
+       IF (Nsequence == 1) THEN
+           NJ(1)=1
+           NJ(2)=2
+           NJ(3)=3
+           DO I=4,Ncolumns
+              NJ(i)=2*NJ(I-2)
+           END DO
+       END IF
+       IF (Nsequence == 2) THEN
+           NJ(1)=2
+           NJ(2)=3
+           DO I=3,Ncolumns
+              NJ(i)=2*NJ(I-2)
+           END DO
+       END IF
+       DO i=1,Ncolumns
+          IF (Nsequence == 3) NJ(i)=I
+          IF (Nsequence == 4) NJ(i)=I+1
+       END DO
+       A(1)=WorkJac+NJ(1)*WorkRow+WorkDec
+       DO I=2,Ncolumns
+          A(i)=A(i-1)+(NJ(i)-1)*WorkRow+WorkDec
+       END DO
+       K=MAX0(3,MIN0(Ncolumns-2,INT(-DLOG10(RelTol(1)+AbsTol(1))*.6D0+1.5D0)))
+       
+       ! T = Tinitial
+       HmaxN = MIN(ABS(Hmax),ABS(Tend-T))
+       IF (ABS(H) <= 10.D0*Roundoff) H=1.0D-6
+       H=MIN(ABS(H),HmaxN)
+       Theta=2*ABS(ThetaMin)
+       ERR=0.D0
+       W(1)=1.D30
+       DO i=1,N
+          IF (ITOL == 0) THEN
+            SCAL(i)=AbsTol(1)+RelTol(1)*DABS(Y(i))
+          ELSE
+            SCAL(i)=AbsTol(i)+RelTol(i)*DABS(Y(i))
+          END IF
+       END DO
+       CALJAC=.FALSE.
+       REJECT=.FALSE.
+       LAST=.FALSE.
+   10  CONTINUE
+       IF (REJECT) Theta=2*ABS(ThetaMin)
+       ATOV=.FALSE.
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> IS Tend REACHED IN THE NEXT STEP?
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+       H1=Tend-T
+       IF (H1 <= Roundoff) GO TO 110
+       HOPT=H
+       H=MIN(H,H1,HmaxN)
+       IF (H >= H1-Roundoff) LAST=.TRUE.
+       IF (AUTNMS) THEN
+          CALL FUN_CHEM(T,Y,DY)
+       END IF
+       IF (Theta > ThetaMin.AND..NOT.CALJAC) THEN
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!  COMPUTATION OF THE JACOBIAN
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+          CALL JAC_CHEM(T,Y,FJAC)
+          CALJAC=.TRUE.
+          CALHES=.FALSE.
+       END IF
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> THE FIRST AND LAST STEP
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IF (Nstp == 0.OR.LAST) THEN
+        IPT=0
+        Nstp=Nstp+1
+        DO J=1,K
+         KC=J
+         CALL SEUL(J,N,T,Y,DY,FX,FJAC,LFJAC,E,LE,IP,H,Ncolumns, &
+                  HmaxN,Table,SCAL,NJ,HH,W,A,YHH,DYH,DEL,WH,ERR,FacSafe1,FAC, &
+                  FAC1,FAC2,FacSafe2,Theta,Nfun,Ndec,Nsol, &
+                  ERROLD,IPHES,ICOMP,AUTNMS,REJECT, &
+                  ATOV,FSAFE,Ncolumns2,NRD,IOUT,IPT,CALHES)
+         IF (ATOV) GOTO 10
+         IF (J > 1 .AND. ERR <= 1.d0) GOTO 60
+        END DO
+        GO TO 55
+      END IF
+!~~~> BASIC INTEGRATION STEP
+   30 CONTINUE
+      IPT=0
+      Nstp=Nstp+1
+      IF (Nstp >= Max_no_steps) GOTO 120
+      KC=K-1
+      DO J=1,KC
+       CALL SEUL(J,N,T,Y,DY,FX,FJAC,LFJAC,E,LE,IP,H,Ncolumns,&
+                HmaxN,Table,SCAL,NJ,HH,W,A,YHH,DYH,DEL,WH,ERR,FacSafe1,&
+                FAC,FAC1,FAC2,FacSafe2,Theta,Nfun,Ndec,Nsol,&
+                ERROLD,IPHES,ICOMP,AUTNMS,REJECT,&
+                ATOV,FSAFE,Ncolumns2,NRD,IOUT,IPT,CALHES)
+       IF (ATOV) GOTO 10
+      END DO
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> CONVERGENCE MONITOR
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IF (K == 2.OR.REJECT) GO TO 50
+      IF (ERR <= 1.D0) GO TO 60
+      IF (ERR > DBLE(NJ(K+1)*NJ(K))*4.D0) GO TO 100
+   50 CALL SEUL(K,N,T,Y,DY,FX,FJAC,LFJAC,E,LE,IP,H,Ncolumns,&
+                HmaxN,Table,SCAL,NJ,HH,W,A,YHH,DYH,DEL,WH,ERR,FacSafe1,&
+                FAC,FAC1,FAC2,FacSafe2,Theta,Nfun,Ndec,Nsol,&
+                ERROLD,IPHES,ICOMP,AUTNMS,REJECT,&
+                ATOV,FSAFE,Ncolumns2,NRD,IOUT,IPT,CALHES)
+      IF (ATOV) GOTO 10
+      KC=K
+      IF (ERR <= 1.D0) GO TO 60
+!~~~> HOPE FOR CONVERGENCE IN LINE K+1
+   55 IF (ERR > DBLE(NJ(K+1))*2.D0) GO TO 100
+      KC=K+1
+      CALL SEUL(KC,N,T,Y,DY,FX,FJAC,LFJAC,E,LE,IP,H,Ncolumns,&
+                HmaxN,Table,SCAL,NJ,HH,W,A,YHH,DYH,DEL,WH,ERR,FacSafe1,&
+                FAC,FAC1,FAC2,FacSafe2,Theta,Nfun,Ndec,Nsol,&
+                ERROLD,IPHES,ICOMP,AUTNMS,REJECT,&
+                ATOV,FSAFE,Ncolumns2,NRD,IOUT,IPT,CALHES)
+      IF (ATOV) GOTO 10
+      IF (ERR > 1.D0) GO TO 100
+      !Adi IF ((ERR > 1.D0).and.(H.gt.Hmin)) GO TO 100
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> STEP IS ACCEPTED
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   60 TOLD=T
+      T=T+H
+      IF (IOUT == 2) THEN
+         KRIGHT=KC
+         DO i=1,NRD
+            DENS(i)=Y(ICOMP(i))
+         END DO
+      END IF
+      DO i=1,N
+         T1I=Table(1,I)
+         IF (ITOL == 0) THEN
+            SCAL(i)=AbsTol(1)+RelTol(1)*DABS(T1I)
+         ELSE
+            SCAL(i)=AbsTol(i)+RelTol(i)*DABS(T1I)
+         END IF
+         Y(i)=T1I
+      END DO
+      Nacc=Nacc+1
+      CALJAC=.FALSE.
+      IF (IOUT == 2) THEN
+         TOLDD=TOLD
+         HHH=H
+         DO i=1,NRD
+            DENS(NRD+I)=Y(ICOMP(i))
+         END DO
+         DO KLR=1,KRIGHT-1
+!~~~> COMPUTE DIFFERENCES
+            IF (KLR >= 2) THEN
+               DO KK=KLR,KC
+                  LBEG=((KK+1)*KK)/2
+                  LEND=LBEG-KK+2
+                  DO L=LBEG,LEND,-1
+                     DO i=1,NRD
+                        FSAFE(L,I)=FSAFE(L,I)-FSAFE(L-1,I)
+                     END DO
+                  END DO
+               END DO
+             END IF
+!~~~> COMPUTE DERIVATIVES AT RIGHT END ----
+             DO KK=KLR+LAMBDA,KC
+                FACNJ=NJ(KK)
+                FACNJ=FACNJ**KLR/FACUL(KLR+1)
+                IPT=((KK+1)*KK)/2
+                DO  I=1,NRD
+                   KRN=(KK-LAMBDA+1)*NRD
+                   DENS(KRN+I)=FSAFE(IPT,I)*FACNJ
+                END DO
+             END DO
+             DO J=KLR+LAMBDA+1,KC
+               DBLENJ=NJ(J)
+               DO L=J,KLR+LAMBDA+1,-1
+                 FACTOR=DBLENJ/NJ(L-1)-1.D0
+                 DO i=1,NRD
+                   KRN=(L-LAMBDA+1)*NRD+I
+                   DENS(KRN-NRD)=DENS(KRN)+(DENS(KRN)-DENS(KRN-NRD))/FACTOR
+                 END DO
+               END DO
+             END DO
+         END DO
+!~~~>  COMPUTE THE COEFFICIENTS OF THE INTERPOLATION POLYNOMIAL
+         DO IN=1,NRD
+            DO J=1,KRIGHT
+               II=NRD*J+IN
+               DENS(II)=DENS(II)-DENS(II-NRD)
+            END DO
+         END DO
+      END IF
+!~~~> COMPUTE OPTIMAL ORDER
+      IF (KC == 2) THEN
+         KOPT=3
+         IF (REJECT) KOPT=2
+         GO TO 80
+      END IF
+      IF (KC <= K) THEN
+         KOPT=KC
+         IF (W(KC-1) < W(KC)*FAC3) KOPT=KC-1
+         IF (W(KC) < W(KC-1)*FAC4) KOPT=MIN0(KC+1,Ncolumns-1)
+      ELSE
+         KOPT=KC-1
+         IF (KC > 3.AND.W(KC-2) < W(KC-1)*FAC3) KOPT=KC-2
+         IF (W(KC) < W(KOPT)*FAC4) KOPT=MIN0(KC,Ncolumns-1)
+      END IF
+!~~~> AFTER A REJECTED STEP
+   80 IF (REJECT) THEN
+         K=MIN0(KOPT,KC)
+         H=MIN(H,HH(K))
+         REJECT=.FALSE.
+         GO TO 10
+      END IF
+!~~~> COMPUTE STEP SIZE FOR NEXT STEP
+      IF (KOPT <= KC) THEN
+         H=HH(KOPT)
+      ELSE
+         IF (KC < K.AND.W(KC) < W(KC-1)*FAC4) THEN
+            H=HH(KC)*A(KOPT+1)/A(KC)
+         ELSE
+            H=HH(KC)*A(KOPT)/A(KC)
+         END IF
+      END IF
+      K=KOPT
+      !Adi H = MAX(H, Hmin)
+      GO TO 10
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> STEP IS REJECTED
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  100 K=MIN0(K,KC)
+      IF (K > 2.AND.W(K-1) < W(K)*FAC3) K=K-1
+      Nrej=Nrej+1
+      H=HH(K)
+      LAST=.FALSE.
+      REJECT=.TRUE.
+      IF (CALJAC) GOTO 30
+      GO TO 10
+!~~~> SOLUTION EXIT
+  110 CONTINUE
+      H=HOPT
+      IERR=1
+      RETURN
+!~~~> FAIL EXIT
+  120 WRITE (6,979) T,H
+  979 FORMAT(' EXIT OF SEULEX AT T=',D14.7,'   H=',D14.7)
+      IERR=-1
+      RETURN
+                                                      
+                             
+      END SUBROUTINE SEULEX_Integrator
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE SEUL(JJ,N,T,Y,DY,FX,FJAC,LFJAC,E,LE,IP,&
+               H,Ncolumns,HmaxN,Table,SCAL,NJ,HH,W,A,YH,DYH,DEL,WH,ERR,FacSafe1, &
+               FAC,FAC1,FAC2,FacSafe2,Theta,Nfun,Ndec,Nsol,&
+               ERROLD,IPHES,ICOMP,                             &
+               AUTNMS,REJECT,ATOV,FSAFE,Ncolumns2,NRD,IOUT,    &
+               IPT,CALHES)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> THIS SUBROUTINE COMPUTES THE J-TH LINE OF THE
+!~~~> EXTRAPOLATION TABLE AND PROVIDES AN ESTIMATE
+!~~~> OF THE OPTIMAL STEP SIZE
+      USE KPP_ROOT_Parameters
+      USE KPP_ROOT_Jacobian
+      IMPLICIT KPP_REAL (A-H,O-Z)
+      IMPLICIT INTEGER (I-N)
+      INTEGER :: Ncolumns, Ncolumns2, N, NRD
+      KPP_REAL :: Y(NVAR),YH(NVAR),DY(NVAR),FX(NVAR),DYH(NVAR)
+      KPP_REAL :: DEL(NVAR),WH(NVAR),SCAL(NVAR),HH(Ncolumns),W(Ncolumns),A(Ncolumns)
+#ifdef FULL_ALGEBRA    
+      KPP_REAL :: FJAC(NVAR,NVAR), E(NVAR,NVAR)
+#else
+      KPP_REAL :: FJAC(LU_NONZERO), E(LU_NONZERO)
+#endif      
+      KPP_REAL :: Table(Ncolumns,NVAR)
+      KPP_REAL :: FSAFE(Ncolumns2,NRD)
+      INTEGER :: IP(N),NJ(Ncolumns),IPHES(N),ICOMP(NRD)
+      LOGICAL ATOV,REJECT,AUTNMS,CALHES
+      
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!  COMPUTE THE MATRIX E AND ITS DECOMPOSITION
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      HJ=H/NJ(JJ)
+      HJI=1.D0/HJ
+#ifdef FULL_ALGEBRA    
+      DO j=1,N
+        DO  i=1,N
+           E(i,j)=-FJAC(i,j)
+        END DO
+        E(j,j)=E(j,j)+HJI
+      END DO
+      CALL DGETRF(N,N,E,N,IP,ISING)
+#else
+      DO  i=1,LU_NONZERO
+         E(i)=-FJAC(i)
+      END DO
+      DO j=1,N
+         E(LU_DIAG(j))=E(LU_DIAG(j))+HJI
+      END DO
+      CALL KppDecomp (E,ISING)
+#endif      
+      Ndec=Ndec+1
+      IF (ISING.NE.0) GOTO 79
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> STARTING PROCEDURE
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+       IF (.NOT.AUTNMS) THEN
+          CALL FUN_CHEM(T+HJ,Y,DY)
+       END IF
+       DO i=1,N
+          YH(i)=Y(i)
+          DEL(i)=DY(i)
+       END DO
+#ifdef FULL_ALGEBRA      
+       CALL DGETRS ('N',N,1,E,N,IP,DEL,N,ISING)
+#else
+       CALL KppSolve (E,DEL)
+#endif       
+       Nsol=Nsol+1
+       M=NJ(JJ)
+       IF (IOUT == 2.AND.M == JJ) THEN
+          IPT=IPT+1
+          DO i=1,NRD
+             FSAFE(IPT,I)=DEL(ICOMP(i))
+          END DO
+       END IF
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> SEMI-IMPLICIT EULER METHOD
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+       IF (M > 1) THEN
+          DO MM=1,M-1
+             DO i=1,N
+                YH(i)=YH(i)+DEL(i)
+             END DO
+             IF (AUTNMS) THEN
+                CALL FUN_CHEM(T+HJ*MM,YH,DYH)
+             ELSE
+                CALL FUN_CHEM(T+HJ*(MM+1),YH,DYH)
+             END IF
+             
+             IF (MM == 1.AND.JJ <= 2) THEN
+!~~~> STABILITY CHECK
+                DEL1=0.D0
+                DO i=1,N
+                   DEL1=DEL1+(DEL(i)/SCAL(i))**2
+                END DO
+                DEL1=SQRT(DEL1)
+                IF (.NOT.AUTNMS) THEN
+                   CALL FUN_CHEM(T+HJ,YH,WH)
+                   
+                   DO i=1,N
+                      DEL(i)=WH(i)-DEL(i)*HJI
+                   END DO
+                ELSE
+                   DO i=1,N
+                      DEL(i)=DYH(i)-DEL(i)*HJI
+                   END DO
+                END IF
+#ifdef FULL_ALGEBRA      
+                CALL DGETRS ('N',N,1,E,N,IP,DEL,N,ISING)
+#else
+                CALL KppSolve (E,DEL)
+#endif
+                Nsol=Nsol+1
+                DEL2=0.D0
+                DO i=1,N
+                   DEL2=DEL2+(DEL(i)/SCAL(i))**2
+                END DO
+                DEL2=SQRT(DEL2)
+                Theta=DEL2/MAX(1.D0,DEL1)
+                IF (Theta > 1.D0) GOTO 79
+             END IF
+#ifdef FULL_ALGEBRA      
+             CALL DGETRS ('N',N,1,E,N,IP,DYH,N,ISING)
+#else
+             CALL KppSolve (E,DYH)
+#endif             
+             Nsol=Nsol+1
+             DO i=1,N
+                DEL(i)=DYH(i)
+             END DO
+             IF (IOUT == 2.AND.MM >= M-JJ) THEN
+                IPT=IPT+1
+                DO i=1,NRD
+                   FSAFE(IPT,i)=DEL(ICOMP(i))
+                END DO
+             END IF
+          END DO
+       END IF
+       DO i=1,N
+          Table(JJ,I)=YH(i)+DEL(i)
+       END DO
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> POLYNOMIAL EXTRAPOLATION
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+       IF (JJ == 1) RETURN
+       DO L=JJ,2,-1
+          FAC=(DBLE(NJ(JJ))/DBLE(NJ(L-1)))-1.D0
+          DO i=1,N
+             Table(L-1,I)=Table(L,I)+(Table(L,I)-Table(L-1,I))/FAC
+          END DO
+       END DO
+       ERR=0.D0
+       DO i=1,N
+          ERR=ERR+MIN(ABS((Table(1,I)-Table(2,I)))/SCAL(i),1.D15)**2
+       END DO
+       IF (ERR >= 1.D30) GOTO 79
+       ERR=SQRT(ERR/DBLE(N))
+       IF (JJ > 2.AND.ERR >= ERROLD) GOTO 79
+       ERROLD=MAX(4*ERR,1.D0)
+!~~~> COMPUTE OPTIMAL STEP SIZES
+       EXPO=1.D0/JJ
+       FACMIN=FAC1**EXPO
+       FAC=MIN(FAC2/FACMIN,MAX(FACMIN,(ERR/FacSafe1)**EXPO/FacSafe2))
+       FAC=1.D0/FAC
+       HH(JJ)=MIN(H*FAC,HmaxN)
+       W(JJ)=A(JJ)/HH(JJ)
+       RETURN
+   79  ATOV=.TRUE.
+       H=H*0.5D0
+       REJECT=.TRUE.
+       RETURN
+      END SUBROUTINE SEUL
+
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE FUN_CHEM( T, V, FCT )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+    USE KPP_ROOT_Parameters
+    USE KPP_ROOT_Global
+    USE KPP_ROOT_Function, ONLY: Fun
+    USE KPP_ROOT_Rates, ONLY: Update_SUN, Update_RCONST, Update_PHOTO
+
+    IMPLICIT NONE
+
+    KPP_REAL :: V(NVAR), FCT(NVAR)
+    KPP_REAL :: T, TOLD
+
+    !TOLD = TIME
+    !TIME = T
+    !CALL Update_SUN()
+    !CALL Update_RCONST()
+    !CALL Update_PHOTO()
+    !TIME = TOLD
+    CALL Fun(V, FIX, RCONST, FCT)
+    Nfun=Nfun+1
+
+  END SUBROUTINE FUN_CHEM
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE JAC_CHEM ( T, V, Jcb )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+    USE KPP_ROOT_Parameters
+    USE KPP_ROOT_Global
+    USE KPP_ROOT_Jacobian, ONLY: Jac_SP
+    USE KPP_ROOT_Rates, ONLY: Update_SUN, Update_RCONST, Update_PHOTO
+
+    IMPLICIT NONE
+
+    KPP_REAL :: V(NVAR), T, TOLD
+#ifdef FULL_ALGEBRA    
+    KPP_REAL :: JV(LU_NONZERO), Jcb(NVAR,NVAR)
+    INTEGER :: i,j
+#else
+    KPP_REAL :: Jcb(LU_NONZERO)
+#endif   
+
+    !TOLD = TIME
+    !TIME = T
+    !CALL Update_SUN()
+    !CALL Update_RCONST()
+    !CALL Update_PHOTO()
+    !TIME = TOLD
+    
+#ifdef FULL_ALGEBRA    
+    CALL Jac_SP(V, FIX, RCONST, JV)
+    DO j=1,NVAR
+      DO i=1,NVAR
+         Jcb(i,j) = 0.0D0
+      END DO
+    END DO
+    DO i=1,LU_NONZERO
+       Jcb(LU_IROW(i),LU_ICOL(i)) = JV(i)
+    END DO
+#else
+    CALL Jac_SP(V, FIX, RCONST, Jcb) 
+#endif   
+    Njac=Njac+1
+    
+  END SUBROUTINE JAC_CHEM
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+END MODULE KPP_ROOT_Integrator
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/exqssa.c
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/exqssa.c	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/exqssa.c	(revision 2696)
@@ -0,0 +1,90 @@
+void INTEGRATE( double DT )
+{
+KPP_REAL P_VAR[NVAR], D_VAR[NVAR], V1[NVAR], V2[NVAR];
+int IsReject;
+KPP_REAL T, Tnext, STEP, STEPold, Told, SUP;
+KPP_REAL ERR, ERRold, ratio, factor, facmax, tmp;
+int i;
+
+  T = TIME;
+  Tnext = TIME + DT;
+  STEP = STEPMIN;
+  Told = T;
+  SUP  = 1e-14;
+  IsReject = 0;
+  ERR = .5;
+  
+/* -- BELOW THIS LIMIT USE TAYLOR INSTEAD OF EXP --- */
+
+  while ( T < Tnext ) {
+   
+    T = Told + STEP;
+    if ( T > Tnext ) {
+      STEP = Tnext - Told;
+      T = Tnext;
+    }
+
+    FSPLIT_VAR ( VAR,  P_VAR, D_VAR );
+
+    for( i = 0; i < NVAR; i++ ) {
+      if ( fabs(D_VAR[i]) > SUP ) {
+        ratio = P_VAR[i] / D_VAR[i];
+        tmp = (KPP_REAL)exp( (double)(-D_VAR[i] * STEP * 0.5) );
+        V1[i] = tmp * tmp * (VAR[i] - ratio) + ratio;
+        V2[i] = tmp * (VAR[i] - ratio) + ratio;
+      } else {
+        tmp = D_VAR[i] * STEP * 0.5;
+        V1[i] = VAR[i] + P_VAR[i] * STEP * ( 1 - tmp *
+               ( 1 - 2.0 / 3.0 * tmp ) );
+        V2[i] = VAR[i] + P_VAR[i] * 0.5 * STEP * ( 1 - 0.5 * tmp *
+               ( 1 - 1.0 / 3.0 * tmp ) );
+      }
+    }
+
+    FSPLIT_VAR( V2,  P_VAR, D_VAR );
+
+    for( i = 0; i < NVAR; i++ ) {
+      if ( fabs(D_VAR[i]) > SUP ) {
+        ratio = P_VAR[i] / D_VAR[i];
+        tmp = (KPP_REAL)exp( (double)(-D_VAR[i] * STEP * 0.5) );
+        V2[i] = tmp * (V2[i] - ratio) + ratio;
+      } else {
+        tmp = D_VAR[i] * STEP * 0.5;
+        V2[i] = V2[i] + P_VAR[i] * 0.5 * STEP * ( 1 - 0.5 * tmp *
+               ( 1 - 1.0 / 3.0 * tmp ) );
+      }
+    }
+/* ==== Extrapolation and error estimation ======== */
+
+    ERRold=ERR;
+    ERR=0.;
+    for( i = 0; i < NVAR; i++ ) {
+      V1[i] = 2.*V2[i] - V1[i];
+      tmp = (V2[i] - V1[i]) / (ATOL[i] + RTOL[i]*V2[i]); 
+      ERR = ERR + tmp*tmp;
+    }
+    ERR = sqrt(ERR/NVAR);
+    STEPold = STEP;
+
+/* ===== choosing the stepsize ==================== */
+
+    factor = 0.9 / pow(ERR,0.35) * pow(ERRold,0.2);
+    facmax = IsReject ? 1.0 : 5.0;
+
+    factor = max( 0.2, min(factor,facmax) );
+    STEP = min( STEPMAX, max(STEPMIN,factor*STEP) );
+
+/*================================================= */
+
+    if ( (ERR > 1) && (STEPold > STEPMIN) ) {
+      T = Told;
+      IsReject = 1;
+    } else {
+      IsReject = 0;
+      Told = T;
+      for( i = 0; i < NVAR; i++ ) 
+        VAR[i] = max( V1[i], 0.0 );
+      TIME = Tnext;
+    }
+  }
+}
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/exqssa.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/exqssa.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/exqssa.def	(revision 2696)
@@ -0,0 +1,16 @@
+ 
+#FUNCTION SPLIT
+#JACOBIAN OFF
+#SPARSEDATA OFF
+#DOUBLE ON
+#INTFILE exqssa
+
+#INLINE F_INIT_INT
+        STEPMIN=0.0001
+        STEPMAX=60.
+#ENDINLINE
+
+#INLINE C_INIT_INT
+  STEPMIN=0.0001;
+  STEPMAX=60.;
+#ENDINLINE
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/exqssa.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/exqssa.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/exqssa.f	(revision 2696)
@@ -0,0 +1,136 @@
+C -- EXTRAPOLATED QSSA WITH STEADY STATE APPROXIMATION --
+C    For extrapolated plain QSSA (to remove the steady state assumption)
+C    modify slow -> 0, fast -> 1e20
+C
+
+      SUBROUTINE INTEGRATE( TIN, TOUT  ) 
+
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+
+C TIN - Start Time
+      KPP_REAL TIN
+C TOUT - End Time
+      KPP_REAL TOUT
+
+C Local variables
+      KPP_REAL P_VAR(NVAR), D_VAR(NVAR), V1(NVAR), V2(NVAR)
+      LOGICAL IsReject
+      KPP_REAL T, Tnext, STEP, STEPold, Told, SUP
+      KPP_REAL ERR, ERRold, ratio, factor, facmax, tmp
+      INTEGER i
+      KPP_REAL slow, fast
+
+      T = TIN
+      Tnext = TOUT
+      STEP = DMAX1(STEPMIN,1.d-10)
+      Told = T
+      SUP  = 1e-14
+      IsReject = .false.
+      ERR = 1.d0
+      ERRold = 1.d0
+      slow = 0.01
+      fast = 10.  
+
+ 10    continue  
+       Tplus = T + STEP
+       if ( Tplus .gt. Tnext ) then
+          STEP = Tnext - T
+          Tplus = Tnext
+       end if
+
+
+        TITI = TIME
+        TIME = T
+        CALL Update_SUN() 
+        CALL Update_RCONST()
+        TIME = TITI
+        CALL FSPLIT_VAR ( VAR,  P_VAR, D_VAR )
+
+        do i=1,NVAR
+          IF ( D_VAR(i)*STEP .lt. slow) THEN       ! SLOW SPECIES
+             XXX = STEP * (P_VAR(i) - D_VAR(i)*VAR(i))
+             V1(i) = VAR(i) + XXX
+             V2(i) = VAR(i) + 0.5*XXX
+          ELSE IF ( D_VAR(i)*STEP .GT. fast) THEN  ! FAST SPECIES
+             V1(i) = P_VAR(i)/D_VAR(i)
+             V2(i) = V1(i)
+          ELSE                                    ! MEDIUM LIVED
+            if ( abs(D_VAR(i)).gt.SUP ) then
+              ratio = P_VAR(i)/D_VAR(i)
+              tmp = exp(-D_VAR(i)*STEP*0.5)
+              V1(i) = tmp * tmp * (VAR(i) - ratio) + ratio
+              V2(i) = tmp * (VAR(i) - ratio) + ratio
+            else
+              tmp = D_VAR(i) * STEP * 0.5
+              V1(i) = VAR(i) + P_VAR(i) * STEP * ( 1 - tmp *
+     *             ( 1 - 2.0 / 3.0 * tmp ) )
+              V2(i) = VAR(i) + P_VAR(i) * 0.5 * STEP*( 1-0.5*tmp*
+     *             ( 1 - 1.0 / 3.0 * tmp ) )
+              end if
+          END IF
+        end do
+
+        TITI = TIME
+        TIME = T + 0.5*STEP
+        CALL Update_SUN() 
+        CALL Update_RCONST()
+        TIME = TITI
+        CALL FSPLIT_VAR ( V2,  P_VAR, D_VAR )
+
+        do i=1,NVAR
+          IF ( D_VAR(i)*STEP .lt. slow) THEN       ! SLOW SPECIES
+             XXX = STEP * (P_VAR(i) - D_VAR(i)*VAR(i))
+             V2(i) = V2(i) + 0.5*XXX
+          ELSE IF ( D_VAR(i)*STEP .GT. fast) THEN  ! FAST SPECIES
+             V2(i) = P_VAR(i)/D_VAR(i)
+          ELSE                                    ! MEDIUM LIVED
+            if ( abs(D_VAR(i)).gt.SUP ) then
+              ratio = P_VAR(i)/D_VAR(i)
+              tmp = exp(-D_VAR(i)*STEP*0.5)
+              V2(i) = tmp * (V2(i) - ratio) + ratio
+            else
+              tmp = D_VAR(i) * STEP * 0.5
+              V2(i) = V2(i) + P_VAR(i) * 0.5 * STEP * ( 1 - 0.5 * tmp *
+     *             ( 1 - 1.0 / 3.0 * tmp ) )
+            end if
+          END IF
+        end do
+
+C ===== Extrapolation and error estimation ========
+
+        ERRold=ERR
+        ERR=0.0D0
+          do i=1,NVAR
+             ERR = ERR + ((V2(i)-V1(i))/(ATOL(i) + RTOL(i)*V2(i)))**2
+          end do       
+        ERR = DSQRT( ERR/NVAR )
+        STEPold=STEP
+
+C ===== choosing the stepsize =====================
+
+        factor = 0.9*ERR**(-0.35)*ERRold**0.2
+        if (IsReject) then
+            facmax=1.
+        else
+            facmax=8.
+        end if 
+        factor = DMAX1( 1.25D-1, DMIN1(factor,facmax) )
+        STEP = DMIN1( STEPMAX, DMAX1(STEPMIN,factor*STEP) )    
+
+C===================================================
+
+        if ( (ERR.gt.1).and.(STEPold.gt.STEPMIN) ) then
+          IsReject = .true.
+        else
+          IsReject = .false.
+          do 140 i=1,NVAR
+             VAR(i)  = DMAX1(2*V2(i)-V1(i), 0.d0)
+ 140      continue 
+          T = Tplus     
+        end if
+      if ( T .lt. Tnext ) go to 10
+
+      TIME = Tnext
+      RETURN 
+      END        
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/kpp_rodas.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/kpp_rodas.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/kpp_rodas.def	(revision 2696)
@@ -0,0 +1,23 @@
+ 
+#FUNCTION AGGREGATE
+#JACOBIAN SPARSE_LU_ROW
+
+#DOUBLE ON 
+#INTFILE kpp_rodas
+
+#INLINE F_DECL_INT
+      INTEGER Autonomous
+      COMMON /INTGDATA/ Autonomous
+      REAL*8 STEPSTART
+      COMMON /GDATA/ STEPSTART
+#ENDINLINE
+
+#INLINE F_INIT_INT
+        STEPMIN=0.0001
+        STEPMAX=3600.
+        Autonomous = 0
+        STEPSTART=STEPMIN
+#ENDINLINE
+
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/kpp_rodas.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/kpp_rodas.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/kpp_rodas.f	(revision 2696)
@@ -0,0 +1,647 @@
+      SUBROUTINE INTEGRATE( TIN, TOUT )
+         
+      IMPLICIT KPP_REAL (A-H,O-Z)	 
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+
+C TIN - Start Time
+      KPP_REAL TIN
+C TOUT - End Time
+      KPP_REAL TOUT
+      INTEGER i
+      
+      PARAMETER (LWORK=2*NVAR*NVAR+14*NVAR+20,LIWORK=NVAR+20)
+      KPP_REAL WORK(LWORK)
+      INTEGER IWORK(LIWORK)
+      EXTERNAL FUNC_CHEM,JAC_CHEM
+
+
+      ITOL=1     ! --- VECTOR TOLERANCES 
+      IJAC=1     ! --- COMPUTE THE JACOBIAN ANALYTICALLY
+      MLJAC=NVAR ! --- JACOBIAN IS A FULL MATRIX
+      MUJAC=NVAR ! --- JACOBIAN IS A FULL MATRIX
+      IMAS=0     ! --- DIFFERENTIAL EQUATION IS IN EXPLICIT FORM
+      IOUT=0     ! --- OUTPUT ROUTINE IS NOT USED DURING INTEGRATION
+      IDFX=0     ! --- INTERNAL TIME DERIVATIVE
+
+      DO i=1,20
+        IWORK(i) = 0
+        WORK(i) = 0.D0
+      ENDDO
+
+      IWORK(3) = 1
+
+      CALL ATMRODAS(NVAR,FUNC_CHEM,Autonomous,TIN,VAR,TOUT,
+     &                  STEPMIN,RTOL,ATOL,ITOL,
+     &                  JAC_CHEM,IJAC,MLJAC,MUJAC,FUNC_CHEM,IDFX,
+     &                  FUNC_CHEM,IMAS,
+     &                  WORK,LWORK,IWORK,LIWORK,IDID)
+
+      IF (IDID.LT.0) THEN
+        print *,'ATMRODAS: Unsucessfull exit at T=',
+     &          TIN,' (IDID=',IDID,')'
+      ENDIF
+
+
+      RETURN
+      END
+
+
+      SUBROUTINE ATMRODAS(N,FCN,IFCN,X,Y,XEND,H,
+     &                  RelTol,AbsTol,ITOL,
+     &                  JAC ,IJAC,MLJAC,MUJAC,DFX,IDFX,
+     &                  MAS ,IMAS,
+     &                  WORK,LWORK,IWORK,LIWORK,IDID)
+C ----------------------------------------------------------
+C     NUMERICAL SOLUTION OF A STIFF (OR DIFFERENTIAL ALGEBRAIC)
+C     SYSTEM OF FIRST 0RDER ORDINARY DIFFERENTIAL EQUATIONS  MY'=F(X,Y).
+C     THIS IS AN EMBEDDED ROSENBROCK METHOD OF ORDER (3)4  
+C     (WITH STEP SIZE CONTROL).
+C     C.F. SECTIONS IV.7  AND VI.3
+C
+C     AUTHORS: E. HAIRER AND G. WANNER
+C              UNIVERSITE DE GENEVE, DEPT. DE MATHEMATIQUES
+C              CH-1211 GENEVE 24, SWITZERLAND 
+C              E-MAIL:  HAIRER@DIVSUN.UNIGE.CH,  WANNER@DIVSUN.UNIGE.CH
+C --------------------------------------------------------- 
+C *** *** *** *** *** *** *** *** *** *** *** *** ***
+C          DECLARATIONS 
+C *** *** *** *** *** *** *** *** *** *** *** *** ***
+      IMPLICIT KPP_REAL (A-H,O-Z)
+      DIMENSION Y(N),AbsTol(*),RelTol(*),WORK(LWORK),IWORK(LIWORK)
+      LOGICAL AUTNMS,IMPLCT,JBAND,ARRET,PRED
+      EXTERNAL FCN,JAC,DFX,MAS
+      COMMON /STATISTICS/ NFCN,NACCPT,NREJCT,NSTEP,NJAC,NDEC,NSOL
+C *** *** *** *** *** *** ***
+C        SETTING THE PARAMETERS 
+C *** *** *** *** *** *** ***
+      ARRET=.FALSE.
+      METH = 1
+      NMAX=100000
+C -------- PRED   STEP SIZE CONTROL
+      IF(IWORK(3).LE.1)THEN
+         PRED=.TRUE.
+      ELSE
+         PRED=.FALSE.
+      END IF
+      UROUND=1.D-16
+      NM1 = N
+      M1  = N
+      M2  = N
+C -------- MAXIMAL STEP SIZE
+      IF(WORK(2).EQ.0.D0)THEN
+         HMAX=XEND-X
+      ELSE
+         HMAX=WORK(2)
+      END IF
+C -------  FAC1,FAC2     PARAMETERS FOR STEP SIZE SELECTION
+      IF(WORK(3).EQ.0.D0)THEN
+         FAC1=5.D0
+      ELSE
+         FAC1=1.D0/WORK(3)
+      END IF
+      IF(WORK(4).EQ.0.D0)THEN
+         FAC2=1.D0/6.0D0
+      ELSE
+         FAC2=1.D0/WORK(4)
+      END IF
+      IF (FAC1.LT.1.0D0.OR.FAC2.GT.1.0D0) THEN
+            WRITE(6,*)' CURIOUS INPUT WORK(3,4)=',WORK(3),WORK(4)
+            ARRET=.TRUE.
+         END IF
+C --------- SAFE     SAFETY FACTOR IN STEP SIZE PREDICTION
+      SAFE=0.9D0
+C --------- CHECK IF TOLERANCES ARE O.K.
+      IF (ITOL.EQ.0) THEN
+          IF (AbsTol(1).LE.0.D0.OR.RelTol(1).LE.10.D0*UROUND) THEN
+              WRITE (6,*) ' TOLERANCES ARE TOO SMALL'
+              ARRET=.TRUE.
+          END IF
+      ELSE
+          DO I=1,N
+             IF (AbsTol(I).LE.0.D0.OR.RelTol(I).LE.10.D0*UROUND) THEN
+                WRITE (6,*) ' TOLERANCES(',I,') ARE TOO SMALL'
+                ARRET=.TRUE.
+             END IF
+          END DO
+      END IF
+      
+      IF (ARRET) STOP
+      NM1 = N
+C *** *** *** *** *** *** *** *** *** *** *** *** ***
+C         COMPUTATION OF ARRAY ENTRIES
+C *** *** *** *** *** *** *** *** *** *** *** *** ***
+C ---- AUTONOMOUS, IMPLICIT, BANDED OR NOT ?
+      AUTNMS=IFCN.EQ.0
+      IMPLCT=IMAS.NE.0
+      JBAND=MLJAC.LT.NM1
+C -------- COMPUTATION OF THE ROW-DIMENSIONS OF THE 2-ARRAYS ---
+C -- JACOBIAN AND MATRIX E
+         MLJAC=NM1
+         MUJAC=NM1
+         LDJAC=NM1
+         LDE=NM1
+C -- MASS MATRIX
+      IF (IMPLCT) THEN
+         print *, 'Implicit 1'
+      ELSE
+         LDMAS=0
+         IJOB=1
+      END IF
+      LDMAS2=MAX(1,LDMAS)
+C ------- PREPARE THE ENTRY-POINTS FOR THE ARRAYS IN WORK -----
+      IEYNEW=21
+      IEDY1=IEYNEW+N
+      IEDY=IEDY1+N
+      IEAK1=IEDY+N
+      IEAK2=IEAK1+N
+      IEAK3=IEAK2+N
+      IEAK4=IEAK3+N
+      IEAK5=IEAK4+N
+      IEAK6=IEAK5+N
+      IEFX =IEAK6+N
+      IECON=IEFX+N
+      IEJAC=IECON+4*N
+      IEMAS=IEJAC+N*LDJAC
+      IEE  =IEMAS+NM1*LDMAS
+C ------ TOTAL STORAGE REQUIREMENT -----------
+      ISTORE=IEE+NM1*LDE-1
+      IF(ISTORE.GT.LWORK)THEN
+         WRITE(6,*)' INSUFFICIENT STORAGE FOR WORK, MIN. LWORK=',ISTORE
+         ARRET=.TRUE.
+      END IF
+C ------- ENTRY POINTS FOR INTEGER WORKSPACE -----
+      IEIP=21
+      ISTORE=IEIP+NM1-1
+      IF(ISTORE.GT.LIWORK)THEN
+         WRITE(6,*)' INSUFF. STORAGE FOR IWORK, MIN. LIWORK=',ISTORE
+         ARRET=.TRUE.
+      END IF
+C ------ WHEN A FAIL HAS OCCURED, WE RETURN WITH IDID=-1
+      IF (ARRET) THEN
+         IDID=-1
+         RETURN
+      END IF
+C -------- CALL TO CORE INTEGRATOR ------------
+      CALL ROSCOR(N,FCN,X,Y,XEND,HMAX,H,RelTol,AbsTol,ITOL,JAC,IJAC,
+     &   MLJAC,MUJAC,DFX,IDFX,MAS,MLMAS,MUMAS,IOUT,IDID,NMAX,
+     &   UROUND,METH,IJOB,FAC1,FAC2,SAFE,AUTNMS,IMPLCT,JBAND,PRED,LDJAC,
+     &   LDE,LDMAS2,WORK(IEYNEW),WORK(IEDY1),WORK(IEDY),WORK(IEAK1),
+     &   WORK(IEAK2),WORK(IEAK3),WORK(IEAK4),WORK(IEAK5),WORK(IEAK6),
+     &   WORK(IEFX),WORK(IEJAC),WORK(IEE),WORK(IEMAS),IWORK(IEIP),
+     &   WORK(IECON),
+     &   M1,M2,NM1,NFCN,NJAC,NSTEP,NACCPT,NREJCT,NDEC,NSOL)
+      IWORK(14)=NFCN
+      IWORK(15)=NJAC
+      IWORK(16)=NSTEP
+      IWORK(17)=NACCPT
+      IWORK(18)=NREJCT
+      IWORK(19)=NDEC
+      IWORK(20)=NSOL
+C ----------- RETURN -----------
+      RETURN
+      END
+C
+C
+C
+C  ----- ... AND HERE IS THE CORE INTEGRATOR  ----------
+C
+      SUBROUTINE ROSCOR(N,FCN,X,Y,XEND,HMAX,H,RelTol,AbsTol,
+     &  ITOL,JAC,IJAC,
+     &  MLJAC,MUJAC,DFX,IDFX,MAS,MLMAS,MUMAS,IOUT,IDID,NMAX,
+     &  UROUND,METH,IJOB,FAC1,FAC2,SAFE,AUTNMS,IMPLCT,BANDED,
+     &  PRED,LDJAC,
+     &  LDE,LDMAS,YNEW,DY1,DY,AK1,AK2,AK3,AK4,AK5,AK6,
+     &  FX,FJAC,E,FMAS,IP,CONT,
+     &  M1,M2,NM1,NFCN,NJAC,NSTEP,NACCPT,NREJCT,NDEC,NSOL)
+C ----------------------------------------------------------
+C     CORE INTEGRATOR FOR RODAS
+C     PARAMETERS SAME AS IN RODAS WITH WORKSPACE ADDED 
+C ---------------------------------------------------------- 
+C         DECLARATIONS 
+C ---------------------------------------------------------- 
+      IMPLICIT KPP_REAL (A-H,O-Z)	 
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_sparse.h'
+      DIMENSION Y(N),YNEW(N),DY1(N),DY(N),AK1(N),
+     *  AK2(N),AK3(N),AK4(N),AK5(N),AK6(N),FX(N),
+     *  FJAC(LU_NONZERO),E(LDE,NM1),FMAS(LDMAS,NM1),
+     *  AbsTol(*),RelTol(*)
+      DIMENSION CONT(4*N)
+      INTEGER IP(NM1)
+      LOGICAL REJECT,AUTNMS,IMPLCT,BANDED
+      LOGICAL ONE,LAST,PRED,SINGULAR
+      EXTERNAL FCN, MAS, JAC, DFX
+      COMMON/LINAL/MLE,MUE,MBJAC,MBB,MDIAG,MDIFF,MBDIAG
+      COMMON /CONROS/XOLD,HOUT,NN
+C *** *** *** *** *** *** ***
+C  INITIALISATIONS
+C *** *** *** *** *** *** *** 
+      NN=N 
+      NN2=2*N
+      NN3=3*N
+      LRC=4*N
+C ------- COMPUTE MASS MATRIX FOR IMPLICIT CASE ----------
+      IF (IMPLCT) CALL MAS (NM1,FMAS,LDMAS)
+C ------ SET THE PARAMETERS OF THE METHOD -----
+      CALL ROCOE(METH,A21,A31,A32,A41,A42,A43,A51,A52,A53,A54,
+     &    C21,C31,C32,C41,C42,C43,C51,C52,C53,C54,C61,
+     &    C62,C63,C64,C65,GAMMA,C2,C3,C4,D1,D2,D3,D4,
+     &    D21,D22,D23,D24,D25,D31,D32,D33,D34,D35)
+C --- INITIAL PREPARATIONS
+      IF (M1.GT.0) IJOB=IJOB+10
+      POSNEG=SIGN(1.D0,XEND-X)
+      HMAXN=DMIN1(DABS(HMAX),DABS(XEND-X))
+      IF (DABS(H).LE.10.D0*UROUND) H=1.0D-6
+      H=DMIN1(DABS(H),HMAXN) 
+      H=SIGN(H,POSNEG) 
+      HACC = H
+      ERRACC = 1.0d0
+      REJECT=.FALSE.
+      LAST=.FALSE.
+      NSING=0
+      IRTRN=1
+      IF (AUTNMS) THEN
+         HD1=0.0D0
+         HD2=0.0D0
+         HD3=0.0D0
+         HD4=0.0D0
+      END IF
+C -------- PREPARE BAND-WIDTHS --------
+      MBDIAG=MUMAS+1
+
+C --- BASIC INTEGRATION STEP 
+      LAST = .FALSE.
+      DO WHILE (.NOT.LAST) 
+      IF (.NOT. REJECT) THEN
+      IF (NSTEP.GT.NMAX) CALL FAIL_EXIT(3,X,IDID,H,NMAX) 
+      IF ( 0.1D0*DABS(H) .LE. DABS(X)*UROUND )
+     *       CALL FAIL_EXIT(2,X,IDID,H,NMAX)
+      HOPT=H
+      IF ((X+H*1.0001D0-XEND)*POSNEG.GE.0.D0) THEN
+         H=XEND-X
+         LAST=.TRUE.
+      END IF
+C *** *** *** *** *** *** ***
+C  COMPUTATION OF THE JACOBIAN
+C *** *** *** *** *** *** ***
+      CALL FCN(N,X,Y,DY1)
+      CALL JAC(N,X,Y,FJAC,LDJAC)
+      NFCN=NFCN+1
+      NJAC=NJAC+1
+
+      IF (.NOT.AUTNMS) THEN
+C --- COMPUTE NUMERICALLY THE DERIVATIVE WITH RESPECT TO X
+            DELT=DSQRT(UROUND*DMAX1(1.D-5,DABS(X)))
+            XDELT=X+DELT
+            CALL FCN(N,XDELT,Y,AK1)
+            DO J=1,N
+               FX(J)=(AK1(J)-DY1(J))/DELT
+            END DO
+      END IF
+      END IF
+
+C *** *** *** *** *** *** ***
+C  COMPUTE THE STAGES
+C *** *** *** *** *** *** ***
+      SINGULAR = .TRUE.
+      DO WHILE (SINGULAR)
+        FAC=1.D0/(H*GAMMA)
+        CALL DECOMR(N,FJAC,LDJAC,FMAS,LDMAS,MLMAS,MUMAS,
+     &            M1,M2,NM1,FAC,E,LDE,IP,IER,IJOB,IMPLCT,IP)
+        SINGULAR = IER.NE.0
+        IF (SINGULAR) THEN
+          NSING=NSING+1
+          IF (NSING.GE.5) CALL FAIL_EXIT(1,X,IDID,H,NMAX)
+          H=H*0.5D0
+          REJECT=.TRUE.
+          LAST=.FALSE.
+          ONE = .FALSE.
+        END IF 
+      END DO
+
+      NDEC=NDEC+1
+C --- PREPARE FOR THE COMPUTATION OF THE 6 STAGES
+      HC21=C21/H
+      HC31=C31/H
+      HC32=C32/H
+      HC41=C41/H
+      HC42=C42/H
+      HC43=C43/H
+      HC51=C51/H
+      HC52=C52/H
+      HC53=C53/H
+      HC54=C54/H
+      HC61=C61/H
+      HC62=C62/H
+      HC63=C63/H
+      HC64=C64/H
+      HC65=C65/H
+      IF (.NOT.AUTNMS) THEN
+         HD1=H*D1
+         HD2=H*D2
+         HD3=H*D3
+         HD4=H*D4
+      END IF
+C --- THE STAGES
+      CALL SLVROD(N,FJAC,LDJAC,MLJAC,MUJAC,FMAS,LDMAS,MLMAS,MUMAS,
+     &    M1,M2,NM1,FAC,E,LDE,IP,DY1,AK1,FX,YNEW,HD1,IJOB,.FALSE.)
+      DO  I=1,N
+         YNEW(I)=Y(I)+A21*AK1(I)
+      END DO
+      CALL FCN(N,X+C2*H,YNEW,DY)
+      DO I=1,N
+         YNEW(I)=HC21*AK1(I)
+      END DO
+      CALL SLVROD(N,FJAC,LDJAC,MLJAC,MUJAC,FMAS,LDMAS,MLMAS,MUMAS,
+     &    M1,M2,NM1,FAC,E,LDE,IP,DY,AK2,FX,YNEW,HD2,IJOB,.TRUE.)
+      DO I=1,N
+         YNEW(I)=Y(I)+A31*AK1(I)+A32*AK2(I) 
+      END DO
+      CALL FCN(N,X+C3*H,YNEW,DY)
+      DO I=1,N
+         YNEW(I)=HC31*AK1(I)+HC32*AK2(I)
+      END DO
+      CALL SLVROD(N,FJAC,LDJAC,MLJAC,MUJAC,FMAS,LDMAS,MLMAS,MUMAS,
+     &    M1,M2,NM1,FAC,E,LDE,IP,DY,AK3,FX,YNEW,HD3,IJOB,.TRUE.)
+      DO I=1,N
+         YNEW(I)=Y(I)+A41*AK1(I)+A42*AK2(I)+A43*AK3(I)
+      END DO
+      CALL FCN(N,X+C4*H,YNEW,DY)
+      DO I=1,N
+         YNEW(I)=HC41*AK1(I)+HC42*AK2(I)+HC43*AK3(I) 
+      END DO
+      CALL SLVROD(N,FJAC,LDJAC,MLJAC,MUJAC,FMAS,LDMAS,MLMAS,MUMAS,
+     &    M1,M2,NM1,FAC,E,LDE,IP,DY,AK4,FX,YNEW,HD4,IJOB,.TRUE.)
+      DO I=1,N
+         YNEW(I)=Y(I)+A51*AK1(I)+A52*AK2(I)+A53*AK3(I)+A54*AK4(I)
+      END DO
+      CALL FCN(N,X+H,YNEW,DY)
+      DO I=1,N
+         AK6(I)=HC52*AK2(I)+HC54*AK4(I)+HC51*AK1(I)+HC53*AK3(I) 
+      END DO
+      CALL SLVROD(N,FJAC,LDJAC,MLJAC,MUJAC,FMAS,LDMAS,MLMAS,MUMAS,
+     &    M1,M2,NM1,FAC,E,LDE,IP,DY,AK5,FX,AK6,0.D0,IJOB,.TRUE.)
+C ------------ EMBEDDED SOLUTION ---------------
+      DO I=1,N
+         YNEW(I)=YNEW(I)+AK5(I)  
+      END DO
+      CALL FCN(N,X+H,YNEW,DY)
+      DO I=1,N
+         AK5(I)=HC61*AK1(I)+HC62*AK2(I)+HC65*AK5(I)
+     &              +HC64*AK4(I)+HC63*AK3(I) 
+      END DO
+      CALL SLVROD(N,FJAC,LDJAC,MLJAC,MUJAC,FMAS,LDMAS,MLMAS,MUMAS,
+     &    M1,M2,NM1,FAC,E,LDE,IP,DY,AK6,FX,AK5,0.D0,IJOB,.TRUE.)
+C ------------ NEW SOLUTION ---------------
+      DO  I=1,N
+         YNEW(I)=YNEW(I)+AK6(I)  
+      END DO
+      NSOL=NSOL+6
+      NFCN=NFCN+5 
+
+C *** *** *** *** *** *** ***
+C  ERROR ESTIMATION  
+C *** *** *** *** *** *** ***
+      NSTEP=NSTEP+1
+C ------------ COMPUTE ERROR ESTIMATION ----------------
+      ERR=0.0D0
+      DO I=1,N
+         IF (ITOL.EQ.0) THEN
+            SK=AbsTol(1)+RelTol(1)*DMAX1(DABS(Y(I)),DABS(YNEW(I)))
+         ELSE
+            SK=AbsTol(I)+RelTol(I)*DMAX1(DABS(Y(I)),DABS(YNEW(I)))
+         END IF
+         ERR=ERR+(AK6(I)/SK)**2
+c2           ERR = DMAX1(ERR, AK6(I)/SK)
+      END DO
+      ERR=DSQRT(ERR/N)
+      
+C --- COMPUTATION OF HNEW
+C --- WE REQUIRE .2<=HNEW/H<=6.
+      FAC=DMAX1(FAC2,DMIN1(FAC1,(ERR)**0.25D0/SAFE))
+      HNEW=DMAX1(H/FAC, STEPMIN)  
+
+C *** *** *** *** *** *** ***
+C  IS THE ERROR SMALL ENOUGH ?
+C *** *** *** *** *** *** ***
+
+      IF ( (ERR.LE.1.D0).or.(H.LE.STEPMIN) ) THEN
+C --- STEP IS ACCEPTED  
+         NACCPT=NACCPT+1
+         IF (PRED) THEN
+C       --- PREDICTIVE CONTROLLER OF GUSTAFSSON
+            IF (NACCPT.GT.1) THEN
+               FACGUS=(HACC/H)*(ERR**2/ERRACC)**0.25D0/SAFE
+               FACGUS=DMAX1(FAC2,DMIN1(FAC1,FACGUS))
+               FAC=DMAX1(FAC,FACGUS)
+               HNEW=DMAX1(H/FAC, STEPMIN)
+            END IF
+            HACC=H
+            ERRACC=DMAX1(1.0D-2,ERR)
+         END IF
+         DO I=1,N 
+            Y(I)=YNEW(I)
+         END DO
+         XOLD=X 
+         X=X+H
+         IF (DABS(HNEW).GT.HMAXN) HNEW=POSNEG*HMAXN
+         IF (REJECT) HNEW=POSNEG*DMIN1(DABS(HNEW),DABS(H)) 
+         REJECT=.FALSE.
+         H=HNEW
+      ELSE
+C --- STEP IS REJECTED  
+         REJECT=.TRUE.
+         LAST=.FALSE.
+         H=HNEW
+         IF (NACCPT.GE.1) NREJCT=NREJCT+1
+      END IF
+      END DO
+      RETURN
+      END 
+C
+      SUBROUTINE FAIL_EXIT(NERR,X,IDID,H,NMAX)
+      INTEGER NERR, NMAX
+      KPP_REAL X, H
+      GO TO (1,2,3,4) NERR
+ 1    CONTINUE
+      WRITE(6,979)X   
+      WRITE(6,*) ' MATRIX IS REPEATEDLY SINGULAR, IER=',IER
+      IDID=-4
+      STOP
+ 2    CONTINUE
+      WRITE(6,979)X   
+      WRITE(6,*) ' STEP SIZE TOO SMALL, H=',H
+      IDID=-3
+      STOP
+ 3    CONTINUE
+      WRITE(6,979)X   
+      WRITE(6,*) ' MORE THAN NMAX =',NMAX,'STEPS ARE NEEDED' 
+      IDID=-2
+      STOP
+C --- EXIT CAUSED BY solout
+ 4    CONTINUE
+      WRITE(6,979)X
+ 979  FORMAT(' EXIT OF RODAS AT X=',E18.4) 
+      IDID=2
+      RETURN
+      END
+      
+      SUBROUTINE ROCOE(METH,A21,A31,A32,A41,A42,A43,A51,A52,A53,A54,
+     &  C21,C31,C32,C41,C42,C43,C51,C52,C53,C54,C61,
+     &  C62,C63,C64,C65,GAMMA,C2,C3,C4,D1,D2,D3,D4,
+     &  D21,D22,D23,D24,D25,D31,D32,D33,D34,D35)
+      IMPLICIT KPP_REAL (A-H,O-Z)
+
+      if (METH.ne.1) print *, 'WRONG CHOICE OF METHOD'
+        C2=0.386D0
+        C3=0.21D0 
+        C4=0.63D0
+        BET2P=0.0317D0
+        BET3P=0.0635D0
+        BET4P=0.3438D0 
+       D1= 0.2500000000000000D+00
+       D2=-0.1043000000000000D+00
+       D3= 0.1035000000000000D+00
+       D4=-0.3620000000000023D-01
+       A21= 0.1544000000000000D+01
+       A31= 0.9466785280815826D+00
+       A32= 0.2557011698983284D+00
+       A41= 0.3314825187068521D+01
+       A42= 0.2896124015972201D+01
+       A43= 0.9986419139977817D+00
+       A51= 0.1221224509226641D+01
+       A52= 0.6019134481288629D+01
+       A53= 0.1253708332932087D+02
+       A54=-0.6878860361058950D+00
+       C21=-0.5668800000000000D+01
+       C31=-0.2430093356833875D+01
+       C32=-0.2063599157091915D+00
+       C41=-0.1073529058151375D+00
+       C42=-0.9594562251023355D+01
+       C43=-0.2047028614809616D+02
+       C51= 0.7496443313967647D+01
+       C52=-0.1024680431464352D+02
+       C53=-0.3399990352819905D+02
+       C54= 0.1170890893206160D+02
+       C61= 0.8083246795921522D+01
+       C62=-0.7981132988064893D+01
+       C63=-0.3152159432874371D+02
+       C64= 0.1631930543123136D+02
+       C65=-0.6058818238834054D+01
+       GAMMA= 0.2500000000000000D+00  
+
+       D21= 0.1012623508344586D+02
+       D22=-0.7487995877610167D+01
+       D23=-0.3480091861555747D+02
+       D24=-0.7992771707568823D+01
+       D25= 0.1025137723295662D+01
+       D31=-0.6762803392801253D+00
+       D32= 0.6087714651680015D+01
+       D33= 0.1643084320892478D+02
+       D34= 0.2476722511418386D+02
+       D35=-0.6594389125716872D+01
+      RETURN
+      END
+C
+
+C ******************************************
+C     VERSION OF SEPTEMBER 18, 1995      
+C ******************************************
+C
+      SUBROUTINE DECOMR(N,FJAC,LDJAC,FMAS,LDMAS,MLMAS,MUMAS,
+     &            M1,M2,NM1,FAC1,E1,LDE1,IP1,IER,IJOB,CALHES,IPHES)
+      IMPLICIT KPP_REAL (A-H,O-Z)	 
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_sparse.h'
+      DIMENSION FJAC(LU_NONZERO),FMAS(LDMAS,NM1),E1(LU_NONZERO),
+     &          IP1(NM1),IPHES(N)
+      LOGICAL CALHES
+      COMMON/LINAL/MLE,MUE,MBJAC,MBB,MDIAG,MDIFF,MBDIAG
+C
+
+
+C ---  B=IDENTITY, JACOBIAN A FULL MATRIX
+      DO J=1,LU_NONZERO
+         E1(J) = -FJAC(J)
+      END DO
+      DO J=1,N
+         E1(LU_DIAG(J)) = E1(LU_DIAG(J)) + FAC1
+      END DO
+      CALL KppDecomp (E1,IER)
+      RETURN
+      END
+C
+C     END OF SUBROUTINE DECOMR
+C
+C ***********************************************************
+C
+C
+C
+C
+      SUBROUTINE SLVROD(N,FJAC,LDJAC,MLJAC,MUJAC,FMAS,LDMAS,MLMAS,MUMAS,
+     &          M1,M2,NM1,FAC1,E,LDE,IP,DY,AK,FX,YNEW,HD,IJOB,STAGE1)
+      IMPLICIT KPP_REAL (A-H,O-Z)	 
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_sparse.h'
+      DIMENSION FJAC(LU_NONZERO),FMAS(LDMAS,NM1),E(LU_NONZERO),
+     &          IP(NM1),DY(N),AK(N),FX(N),YNEW(N)
+      LOGICAL STAGE1
+      COMMON/LINAL/MLE,MUE,MBJAC,MBB,MDIAG,MDIFF,MBDIAG
+C
+      IF (HD.EQ.0.D0) THEN
+         DO  I=1,N
+           AK(I)=DY(I)
+         END DO
+      ELSE
+         DO I=1,N
+            AK(I)=DY(I)+HD*FX(I)
+         END DO
+      END IF
+
+C ---  B=IDENTITY, JACOBIAN A FULL MATRIX
+      IF (STAGE1) THEN
+         DO I=1,N
+            AK(I)=AK(I)+YNEW(I)
+         END DO
+      END IF
+      CALL KppSolve (E,AK)
+      RETURN
+      END
+C
+C     END OF SUBROUTINE SLVROD
+C
+C
+C ***********************************************************
+
+ 
+      SUBROUTINE FUNC_CHEM(N, T, Y, P)
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+      INTEGER N
+      KPP_REAL   T, Told
+      KPP_REAL   Y(NVAR), P(NVAR)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Fun( Y,  FIX, RCONST, P )
+      TIME = Told
+      RETURN
+      END
+
+ 
+      SUBROUTINE JAC_CHEM(N, T, Y, J)
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+      INTEGER N
+      KPP_REAL   Told, T
+      KPP_REAL   Y(NVAR), J(LU_NONZERO)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Jac_SP( Y,  FIX, RCONST, J )
+      TIME = Told
+      RETURN
+      END                                                                                                                 
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/kpp_ros4.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/kpp_ros4.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/kpp_ros4.def	(revision 2696)
@@ -0,0 +1,23 @@
+ 
+#FUNCTION AGGREGATE
+#JACOBIAN SPARSE_LU_ROW
+
+#DOUBLE ON 
+#INTFILE kpp_ros4
+
+#INLINE F77_DECL_INT
+      INTEGER Autonomous
+      COMMON /INTGDATA/ Autonomous
+      REAL*8 STEPSTART
+      COMMON /GDATA/ STEPSTART
+#ENDINLINE
+
+#INLINE F77_INIT_INT
+        STEPMIN=0.0001
+        STEPMAX=3600.
+        Autonomous = 1 
+        STEPSTART=STEPMIN
+#ENDINLINE
+
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/kpp_ros4.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/kpp_ros4.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/kpp_ros4.f	(revision 2696)
@@ -0,0 +1,1052 @@
+      SUBROUTINE INTEGRATE( TIN, TOUT )
+
+      IMPLICIT KPP_REAL (A-H,O-Z)	 
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+
+C TIN - Start Time
+      KPP_REAL TIN
+C TOUT - End Time
+      KPP_REAL TOUT
+      INTEGER i
+
+      PARAMETER (LWORK=2*NVAR*NVAR+14*NVAR+20,LIWORK=NVAR+20)
+      KPP_REAL WORK(LWORK)
+      INTEGER IWORK(LIWORK)
+      EXTERNAL FUNC_CHEM,JAC_CHEM,SOLOUT
+
+      ITOL=1     ! --- VECTOR TOLERANCES
+      IJAC=1     ! --- COMPUTE THE JACOBIAN ANALYTICALLY
+      MLJAC=NVAR ! --- JACOBIAN IS A FULL MATRIX
+      MUJAC=NVAR ! --- JACOBIAN IS A FULL MATRIX
+      IMAS=0     ! --- DIFFERENTIAL EQUATION IS IN EXPLICIT FORM
+      IOUT=0     ! --- OUTPUT ROUTINE IS NOT USED DURING INTEGRATION
+      IDFX=0     ! --- INTERNAL TIME DERIVATIVE
+
+      DO i=1,20
+        IWORK(i) = 0
+        WORK(i) = 0.D0
+      ENDDO
+      IWORK(2) = 6
+
+      CALL KPP_ROS4(NVAR,FUNC_CHEM,Autonomous,TIN,VAR,TOUT,
+     &                  STEPMIN,RTOL,ATOL,ITOL,
+     &                  JAC_CHEM,IJAC,MLJAC,MUJAC,FUNC_CHEM,IDFX,
+     &                  FUNC_CHEM,IMAS,MLJAC,MUJAC,
+     &                  SOLOUT,IOUT,
+     &                  WORK,LWORK,IWORK,LIWORK,IDID)
+
+      IF (IDID.LT.0) THEN
+        print *,'KPP_ROS4: Unsucessful step at T=',
+     &          TIN,' (IDID=',IDID,')'
+      ENDIF
+
+      RETURN
+      END
+
+
+      SUBROUTINE KPP_ROS4(N,FCN,IFCN,X,Y,XEND,H,
+     &                  RelTol,AbsTol,ITOL,
+     &                  JAC ,IJAC,MLJAC,MUJAC,DFX,IDFX,
+     &                  MAS ,IMAS,MLMAS,MUMAS,
+     &                  SOLOUT,IOUT,
+     &                  WORK,LWORK,IWORK,LIWORK,IDID)
+C ----------------------------------------------------------
+C     NUMERICAL SOLUTION OF A STIFF (OR DIFFERENTIAL ALGEBRAIC)
+C     SYSTEM OF FIRST 0RDER ORDINARY DIFFERENTIAL EQUATIONS  MY'=F(X,Y).
+C     THIS IS AN EMBEDDED ROSENBROCK METHOD OF ORDER (3)4  
+C     (WITH STEP SIZE CONTROL).
+C     C.F. SECTION IV.7
+C
+C     AUTHORS: E. HAIRER AND G. WANNER
+C              UNIVERSITE DE GENEVE, DEPT. DE MATHEMATIQUES
+C              CH-1211 GENEVE 24, SWITZERLAND 
+C              E-MAIL:  HAIRER@CGEUGE51.BITNET,  WANNER@CGEUGE51.BITNET
+C     
+C     THIS CODE IS PART OF THE BOOK:
+C         E. HAIRER AND G. WANNER, SOLVING ORDINARY DIFFERENTIAL
+C         EQUATIONS II. STIFF AND DIFFERENTIAL-ALGEBRAIC PROBLEMS.
+C         SPRINGER SERIES IN COMPUTATIONAL MATHEMATICS,
+C         SPRINGER-VERLAG (1990)               
+C      
+C     VERSION OF NOVEMBER 17, 1992
+C
+C     INPUT PARAMETERS  
+C     ----------------  
+C     N           DIMENSION OF THE SYSTEM 
+C
+C     FCN         NAME (EXTERNAL) OF SUBROUTINE COMPUTING THE
+C                 VALUE OF F(X,Y):
+C                    SUBROUTINE FCN(N,X,Y,F)
+C                    KPP_REAL X,Y(N),F(N)
+C                    F(1)=...   ETC.
+C
+C     IFCN        GIVES INFORMATION ON FCN:
+C                    IFCN=0: F(X,Y) INDEPENDENT OF X (AUTONOMOUS)
+C                    IFCN=1: F(X,Y) MAY DEPEND ON X (NON-AUTONOMOUS)
+C
+C     X           INITIAL X-VALUE
+C
+C     Y(N)        INITIAL VALUES FOR Y
+C
+C     XEND        FINAL X-VALUE (XEND-X MAY BE POSITIVE OR NEGATIVE)
+C
+C     H           INITIAL STEP SIZE GUESS;
+C                 FOR STIFF EQUATIONS WITH INITIAL TRANSIENT, 
+C                 H=1.D0/(NORM OF F'), USUALLY 1.D-2 OR 1.D-3, IS GOOD.
+C                 THIS CHOICE IS NOT VERY IMPORTANT, THE CODE QUICKLY
+C                 ADAPTS ITS STEP SIZE. STUDY THE CHOSEN VALUES FOR A FEW
+C                 STEPS IN SUBROUTINE "SOLOUT", WHEN YOU ARE NOT SURE.
+C                 (IF H=0.D0, THE CODE PUTS H=1.D-6).
+C
+C     RelTol,AbsTol   RELATIVE AND ABSOLUTE ERROR TOLERANCES. THEY
+C                 CAN BE BOTH SCALARS OR ELSE BOTH VECTORS OF LENGTH N.
+C
+C     ITOL        SWITCH FOR RelTol AND AbsTol:
+C                   ITOL=0: BOTH RelTol AND AbsTol ARE SCALARS.
+C                     THE CODE KEEPS, ROUGHLY, THE LOCAL ERROR OF
+C                     Y(I) BELOW RelTol*ABS(Y(I))+AbsTol
+C                   ITOL=1: BOTH RelTol AND AbsTol ARE VECTORS.
+C                     THE CODE KEEPS THE LOCAL ERROR OF Y(I) BELOW
+C                     RelTol(I)*ABS(Y(I))+AbsTol(I).
+C
+C     JAC         NAME (EXTERNAL) OF THE SUBROUTINE WHICH COMPUTES
+C                 THE PARTIAL DERIVATIVES OF F(X,Y) WITH RESPECT TO Y
+C                 (THIS ROUTINE IS ONLY CALLED IF IJAC=1; SUPPLY
+C                 A DUMMY SUBROUTINE IN THE CASE IJAC=0).
+C                 FOR IJAC=1, THIS SUBROUTINE MUST HAVE THE FORM
+C                    SUBROUTINE JAC(N,X,Y,DFY,LDFY)
+C                    KPP_REAL X,Y(N),DFY(LDFY,N)
+C                    DFY(1,1)= ...
+C                 LDFY, THE COLOMN-LENGTH OF THE ARRAY, IS
+C                 FURNISHED BY THE CALLING PROGRAM.
+C                 IF (MLJAC.EQ.N) THE JACOBIAN IS SUPPOSED TO
+C                    BE FULL AND THE PARTIAL DERIVATIVES ARE
+C                    STORED IN DFY AS
+C                       DFY(I,J) = PARTIAL F(I) / PARTIAL Y(J)
+C                 ELSE, THE JACOBIAN IS TAKEN AS BANDED AND
+C                    THE PARTIAL DERIVATIVES ARE STORED
+C                    DIAGONAL-WISE AS
+C                       DFY(I-J+MUJAC+1,J) = PARTIAL F(I) / PARTIAL Y(J).
+C
+C     IJAC        SWITCH FOR THE COMPUTATION OF THE JACOBIAN:
+C                    IJAC=0: JACOBIAN IS COMPUTED INTERNALLY BY FINITE
+C                       DIFFERENCES, SUBROUTINE "JAC" IS NEVER CALLED.
+C                    IJAC=1: JACOBIAN IS SUPPLIED BY SUBROUTINE JAC.
+C
+C     MLJAC       SWITCH FOR THE BANDED STRUCTURE OF THE JACOBIAN:
+C                    MLJAC=N: JACOBIAN IS A FULL MATRIX. THE LINEAR
+C                       ALGEBRA IS DONE BY FULL-MATRIX GAUSS-ELIMINATION.
+C                    0<=MLJAC<N: MLJAC IS THE LOWER BANDWITH OF JACOBIAN 
+C                       MATRIX (>= NUMBER OF NON-ZERO DIAGONALS BELOW
+C                       THE MAIN DIAGONAL).
+C
+C     MUJAC       UPPER BANDWITH OF JACOBIAN  MATRIX (>= NUMBER OF NON-
+C                 ZERO DIAGONALS ABOVE THE MAIN DIAGONAL).
+C                 NEED NOT BE DEFINED IF MLJAC=N.
+C
+C     DFX         NAME (EXTERNAL) OF THE SUBROUTINE WHICH COMPUTES
+C                 THE PARTIAL DERIVATIVES OF F(X,Y) WITH RESPECT TO X
+C                 (THIS ROUTINE IS ONLY CALLED IF IDFX=1 AND IFCN=1;
+C                 SUPPLY A DUMMY SUBROUTINE IN THE CASE IDFX=0 OR IFCN=0).
+C                 OTHERWISE, THIS SUBROUTINE MUST HAVE THE FORM
+C                    SUBROUTINE DFX(N,X,Y,FX)
+C                    KPP_REAL X,Y(N),FX(N)
+C                    FX(1)= ...
+C                
+C     IDFX        SWITCH FOR THE COMPUTATION OF THE DF/DX:
+C                    IDFX=0: DF/DX IS COMPUTED INTERNALLY BY FINITE
+C                       DIFFERENCES, SUBROUTINE "DFX" IS NEVER CALLED.
+C                    IDFX=1: DF/DX IS SUPPLIED BY SUBROUTINE DFX.
+C
+C     ----   MAS,IMAS,MLMAS, AND MUMAS HAVE ANALOG MEANINGS      -----
+C     ----   FOR THE "MASS MATRIX" (THE MATRIX "M" OF SECTION IV.8): -
+C
+C     MAS         NAME (EXTERNAL) OF SUBROUTINE COMPUTING THE MASS-
+C                 MATRIX M.
+C                 IF IMAS=0, THIS MATRIX IS ASSUMED TO BE THE IDENTITY
+C                 MATRIX AND NEEDS NOT TO BE DEFINED;
+C                 SUPPLY A DUMMY SUBROUTINE IN THIS CASE.
+C                 IF IMAS=1, THE SUBROUTINE MAS IS OF THE FORM
+C                    SUBROUTINE MAS(N,AM,LMAS)
+C                    KPP_REAL AM(LMAS,N)
+C                    AM(1,1)= ....
+C                    IF (MLMAS.EQ.N) THE MASS-MATRIX IS STORED
+C                    AS FULL MATRIX LIKE
+C                         AM(I,J) = M(I,J)
+C                    ELSE, THE MATRIX IS TAKEN AS BANDED AND STORED
+C                    DIAGONAL-WISE AS
+C                         AM(I-J+MUMAS+1,J) = M(I,J).
+C
+C     IMAS       GIVES INFORMATION ON THE MASS-MATRIX:
+C                    IMAS=0: M IS SUPPOSED TO BE THE IDENTITY
+C                       MATRIX, MAS IS NEVER CALLED.
+C                    IMAS=1: MASS-MATRIX  IS SUPPLIED.
+C
+C     MLMAS       SWITCH FOR THE BANDED STRUCTURE OF THE MASS-MATRIX:
+C                    MLMAS=N: THE FULL MATRIX CASE. THE LINEAR
+C                       ALGEBRA IS DONE BY FULL-MATRIX GAUSS-ELIMINATION.
+C                    0<=MLMAS<N: MLMAS IS THE LOWER BANDWITH OF THE
+C                       MATRIX (>= NUMBER OF NON-ZERO DIAGONALS BELOW
+C                       THE MAIN DIAGONAL).
+C                 MLMAS IS SUPPOSED TO BE .LE. MLJAC.
+C
+C     MUMAS       UPPER BANDWITH OF MASS-MATRIX (>= NUMBER OF NON-
+C                 ZERO DIAGONALS ABOVE THE MAIN DIAGONAL).
+C                 NEED NOT BE DEFINED IF MLMAS=N.
+C                 MUMAS IS SUPPOSED TO BE .LE. MUJAC.
+C
+C     SOLOUT      NAME (EXTERNAL) OF SUBROUTINE PROVIDING THE
+C                 NUMERICAL SOLUTION DURING INTEGRATION. 
+C                 IF IOUT=1, IT IS CALLED AFTER EVERY SUCCESSFUL STEP.
+C                 SUPPLY A DUMMY SUBROUTINE IF IOUT=0. 
+C                 IT MUST HAVE THE FORM
+C                    SUBROUTINE SOLOUT (NR,XOLD,X,Y,N,IRTRN)
+C                    KPP_REAL X,Y(N)
+C                    ....  
+C                 SOLOUT FURNISHES THE SOLUTION "Y" AT THE NR-TH
+C                    GRID-POINT "X" (THEREBY THE INITIAL VALUE IS
+C                    THE FIRST GRID-POINT).
+C                 "IRTRN" SERVES TO INTERRUPT THE INTEGRATION. IF IRTRN
+C                    IS SET <0, ROS4 RETURNS TO THE CALLING PROGRAM.
+C           
+C     IOUT        GIVES INFORMATION ON THE SUBROUTINE SOLOUT:
+C                    IOUT=0: SUBROUTINE IS NEVER CALLED
+C                    IOUT=1: SUBROUTINE IS USED FOR OUTPUT
+C
+C     WORK        ARRAY OF WORKING SPACE OF LENGTH "LWORK".
+C                 SERVES AS WORKING SPACE FOR ALL VECTORS AND MATRICES.
+C                 "LWORK" MUST BE AT LEAST
+C                             N*(LJAC+LMAS+LE1+8)+5
+C                 WHERE
+C                    LJAC=N              IF MLJAC=N (FULL JACOBIAN)
+C                    LJAC=MLJAC+MUJAC+1  IF MLJAC<N (BANDED JAC.)
+C                 AND                  
+C                    LMAS=0              IF IMAS=0
+C                    LMAS=N              IF IMAS=1 AND MLMAS=N (FULL)
+C                    LMAS=MLMAS+MUMAS+1  IF MLMAS<N (BANDED MASS-M.)
+C                 AND
+C                    LE1=N               IF MLJAC=N (FULL JACOBIAN)
+C                    LE1=2*MLJAC+MUJAC+1 IF MLJAC<N (BANDED JAC.). 
+c
+C                 IN THE USUAL CASE WHERE THE JACOBIAN IS FULL AND THE
+C                 MASS-MATRIX IS THE INDENTITY (IMAS=0), THE MINIMUM
+C                 STORAGE REQUIREMENT IS 
+C                             LWORK = 2*N*N+8*N+5.
+C
+C     LWORK       DECLARED LENGHT OF ARRAY "WORK".
+C
+C     IWORK       INTEGER WORKING SPACE OF LENGTH "LIWORK".
+C                 "LIWORK" MUST BE AT LEAST N+2.
+C
+C     LIWORK      DECLARED LENGHT OF ARRAY "IWORK".
+C
+C ----------------------------------------------------------------------
+C 
+C     SOPHISTICATED SETTING OF PARAMETERS
+C     -----------------------------------
+C              SEVERAL PARAMETERS OF THE CODE ARE TUNED TO MAKE IT WORK 
+C              WELL. THEY MAY BE DEFINED BY SETTING WORK(1),..,WORK(5)
+C              AS WELL AS IWORK(1),IWORK(2) DIFFERENT FROM ZERO.
+C              FOR ZERO INPUT, THE CODE CHOOSES DEFAULT VALUES:
+C
+C    IWORK(1)  THIS IS THE MAXIMAL NUMBER OF ALLOWED STEPS.
+C              THE DEFAULT VALUE (FOR IWORK(1)=0) IS 100000.
+C
+C    IWORK(2)  SWITCH FOR THE CHOICE OF THE COEFFICIENTS
+C              IF IWORK(2).EQ.1  METHOD OF SHAMPINE
+C              IF IWORK(2).EQ.2  METHOD GRK4T OF KAPS-RENTROP
+C              IF IWORK(2).EQ.3  METHOD GRK4A OF KAPS-RENTROP
+C              IF IWORK(2).EQ.4  METHOD OF VAN VELDHUIZEN (GAMMA=1/2)
+C              IF IWORK(2).EQ.5  METHOD OF VAN VELDHUIZEN ("D-STABLE")
+C              IF IWORK(2).EQ.6  AN L-STABLE METHOD
+C              THE DEFAULT VALUE (FOR IWORK(2)=0) IS IWORK(2)=2.
+C
+C    WORK(1)   UROUND, THE ROUNDING UNIT, DEFAULT 1.D-16.
+C
+C    WORK(2)   MAXIMAL STEP SIZE, DEFAULT XEND-X.
+C
+C    WORK(3), WORK(4)   PARAMETERS FOR STEP SIZE SELECTION
+C              THE NEW STEP SIZE IS CHOSEN SUBJECT TO THE RESTRICTION
+C                 WORK(3) <= HNEW/HOLD <= WORK(4)
+C              DEFAULT VALUES: WORK(3)=0.2D0, WORK(4)=6.D0
+C
+C    WORK(5)   AVOID THE HUMP: AFTER TWO CONSECUTIVE STEP REJECTIONS
+C              THE STEP SIZE IS MULTIPLIED BY WORK(5)
+C              DEFAULT VALUES: WORK(5)=0.1D0
+C
+C-----------------------------------------------------------------------
+C
+C     OUTPUT PARAMETERS 
+C     ----------------- 
+C     X           X-VALUE WHERE THE SOLUTION IS COMPUTED
+C                 (AFTER SUCCESSFUL RETURN X=XEND)
+C
+C     Y(N)        SOLUTION AT X
+C  
+C     H           PREDICTED STEP SIZE OF THE LAST ACCEPTED STEP
+C
+C     IDID        REPORTS ON SUCCESSFULNESS UPON RETURN:
+C                   IDID=1  COMPUTATION SUCCESSFUL,
+C                   IDID=-1 COMPUTATION UNSUCCESSFUL.
+C
+C --------------------------------------------------------- 
+C *** *** *** *** *** *** *** *** *** *** *** *** ***
+C          DECLARATIONS 
+C *** *** *** *** *** *** *** *** *** *** *** *** ***
+      IMPLICIT KPP_REAL (A-H,O-Z)
+      DIMENSION Y(N),AbsTol(1),RelTol(1),WORK(LWORK),IWORK(LIWORK)
+      LOGICAL AUTNMS,IMPLCT,JBAND,ARRET
+      EXTERNAL FCN,JAC,DFX,MAS,SOLOUT
+      COMMON/STAT/NFCN,NJAC,NSTEP,NACCPT,NREJCT,NDEC,NSOL
+C -----------------------------------------------------
+C --- COMMON STAT CAN BE USED FOR STATISTICS
+C ---    NFCN      NUMBER OF FUNC_CHEMCTION EVALUATIONS (THOSE FOR NUMERICAL
+C                  EVALUATION OF THE JACOBIAN ARE NOT COUNTED)  
+C ---    NJAC      NUMBER OF JACOBIAN EVALUATIONS (EITHER ANALYTICALLY
+C                  OR NUMERICALLY)
+C ---    NSTEP     NUMBER OF COMPUTED STEPS
+C ---    NACCPT    NUMBER OF ACCEPTED STEPS
+C ---    NREJCT    NUMBER OF REJECTED STEPS (AFTER AT LEAST ONE STEP
+C                  HAS BEEN ACCEPTED)
+C ---    NDEC      NUMBER OF LU-DECOMPOSITIONS (N-DIMENSIONAL MATRIX)
+C ---    NSOL      NUMBER OF FORWARD-BACKWARD SUBSTITUTIONS
+C -----------------------------------------------------
+C *** *** *** *** *** *** ***
+C        SETTING THE PARAMETERS 
+C *** *** *** *** *** *** ***
+      NFCN=0
+      NJAC=0
+      NSTEP=0
+      NACCPT=0
+      NREJCT=0
+      NDEC=0
+      NSOL=0
+      ARRET=.FALSE.
+C -------- NMAX , THE MAXIMAL NUMBER OF STEPS -----
+      IF(IWORK(1).EQ.0)THEN
+         NMAX=100000
+      ELSE
+         NMAX=IWORK(1)
+         IF(NMAX.LE.0)THEN
+            WRITE(6,*)' WRONG INPUT IWORK(1)=',IWORK(1)
+            ARRET=.TRUE.
+         END IF
+      END IF
+C -------- METH   COEFFICIENTS OF THE METHOD
+      IF(IWORK(2).EQ.0)THEN
+         METH=2
+      ELSE
+         METH=IWORK(2)
+         IF(METH.LE.0.OR.METH.GE.7)THEN
+            WRITE(6,*)' CURIOUS INPUT IWORK(2)=',IWORK(2)
+            ARRET=.TRUE.
+         END IF
+      END IF
+C -------- UROUND   SMALLEST NUMBER SATISFYING 1.D0+UROUND>1.D0  
+      IF(WORK(1).EQ.0.D0)THEN
+         UROUND=1.D-16
+      ELSE
+         UROUND=WORK(1)
+         IF(UROUND.LE.1.D-14.OR.UROUND.GE.1.D0)THEN
+            WRITE(6,*)' COEFFICIENTS HAVE 16 DIGITS, UROUND=',WORK(1)
+            ARRET=.TRUE.
+         END IF
+      END IF
+C -------- MAXIMAL STEP SIZE
+      IF(WORK(2).EQ.0.D0)THEN
+         HMAX=XEND-X
+      ELSE
+         HMAX=WORK(2)
+      END IF
+C -------  FAC1,FAC2     PARAMETERS FOR STEP SIZE SELECTION
+      IF(WORK(3).EQ.0.D0)THEN
+         FAC1=5.D0
+      ELSE
+         FAC1=1.D0/WORK(3)
+      END IF
+      IF(WORK(4).EQ.0.D0)THEN
+         FAC2=1.D0/6.0D0
+      ELSE
+         FAC2=1.D0/WORK(4)
+      END IF
+C -------  FACREJ    FOR THE HUMP
+      IF(WORK(5).EQ.0.D0)THEN
+         FACREJ=0.1D0
+      ELSE
+         FACREJ=WORK(5)
+      END IF
+C --------- CHECK IF TOLERANCES ARE O.K.
+      IF (ITOL.EQ.0) THEN
+          IF (AbsTol(1).LE.0.D0.OR.RelTol(1).LE.10.D0*UROUND) THEN
+              WRITE (6,*) ' TOLERANCES ARE TOO SMALL'
+              ARRET=.TRUE.
+          END IF
+      ELSE
+          DO 15 I=1,N
+          IF (AbsTol(I).LE.0.D0.OR.RelTol(I).LE.10.D0*UROUND) THEN
+              WRITE (6,*) ' TOLERANCES(',I,') ARE TOO SMALL'
+              ARRET=.TRUE.
+          END IF
+  15      CONTINUE
+      END IF
+C *** *** *** *** *** *** *** *** *** *** *** *** ***
+C         COMPUTATION OF ARRAY ENTRIES
+C *** *** *** *** *** *** *** *** *** *** *** *** ***
+C ---- AUTONOMOUS, IMPLICIT, BANDED OR NOT ?
+      AUTNMS=IFCN.EQ.0
+      IMPLCT=IMAS.NE.0
+      JBAND=MLJAC.NE.N
+      ARRET=.FALSE.
+C -------- COMPUTATION OF THE ROW-DIMENSIONS OF THE 2-ARRAYS ---
+C -- JACOBIAN 
+      IF(JBAND)THEN
+         LDJAC=MLJAC+MUJAC+1
+      ELSE
+         LDJAC=N
+      END IF
+C -- MATRIX E FOR LINEAR ALGEBRA
+      IF(JBAND)THEN
+         LDE=2*MLJAC+MUJAC+1
+      ELSE
+         LDE=N
+      END IF
+C -- MASS MATRIX
+      IF (IMPLCT) THEN
+          IF (MLMAS.NE.N) THEN
+              LDMAS=MLMAS+MUMAS+1
+          ELSE
+              LDMAS=N
+          END IF
+C ------ BANDWITH OF "MAS" NOT LARGER THAN BANDWITH OF "JAC"
+          IF (MLMAS.GT.MLJAC.OR.MUMAS.GT.MUJAC) THEN
+              WRITE (6,*) 'BANDWITH OF "MAS" NOT LARGER THAN BANDWITH OF
+     & "JAC"'
+            ARRET=.TRUE.
+          END IF
+      ELSE
+          LDMAS=0
+      END IF
+      LDMAS2=MAX(1,LDMAS)
+C ------- PREPARE THE ENTRY-POINTS FOR THE ARRAYS IN WORK -----
+      IEYNEW=6
+      IEDY1=IEYNEW+N
+      IEDY=IEDY1+N
+      IEAK1=IEDY+N
+      IEAK2=IEAK1+N
+      IEAK3=IEAK2+N
+      IEAK4=IEAK3+N
+      IEFX =IEAK4+N
+      IEJAC=IEFX +N
+      IEMAS=IEJAC+N*LDJAC
+      IEE  =IEMAS+N*LDMAS
+C ------ TOTAL STORAGE REQUIREMENT -----------
+      ISTORE=IEE+N*LDE-1
+      IF(ISTORE.GT.LWORK)THEN
+         WRITE(6,*)' INSUFFICIENT STORAGE FOR WORK, MIN. LWORK=',ISTORE
+         ARRET=.TRUE.
+      END IF
+C ------- ENTRY POINTS FOR INTEGER WORKSPACE -----
+      IEIP=3
+C --------- TOTAL REQUIREMENT ---------------
+      ISTORE=IEIP+N-1
+      IF(ISTORE.GT.LIWORK)THEN
+         WRITE(6,*)' INSUFF. STORAGE FOR IWORK, MIN. LIWORK=',ISTORE
+         ARRET=.TRUE.
+      END IF
+C ------ WHEN A FAIL HAS OCCURED, WE RETURN WITH IDID=-1
+      IF (ARRET) THEN
+         IDID=-1
+         RETURN
+      END IF
+C -------- CALL TO CORE INTEGRATOR ------------
+      CALL RO4COR(N,FCN,X,Y,XEND,HMAX,H,RelTol,AbsTol,ITOL,JAC,IJAC,
+     &   MLJAC,MUJAC,DFX,IDFX,MAS,MLMAS,MUMAS,SOLOUT,IOUT,IDID,
+     &   NMAX,UROUND,METH,FAC1,FAC2,FACREJ,AUTNMS,IMPLCT,JBAND,
+     &   LDJAC,LDE,LDMAS2,WORK(IEYNEW),WORK(IEDY1),WORK(IEDY),
+     &   WORK(IEAK1),WORK(IEAK2),WORK(IEAK3),WORK(IEAK4),
+     &   WORK(IEFX),WORK(IEJAC),WORK(IEE),WORK(IEMAS),IWORK(IEIP))
+C ----------- RETURN -----------
+      RETURN
+      END
+C
+C
+C
+C  ----- ... AND HERE IS THE CORE INTEGRATOR  ----------
+C
+      SUBROUTINE RO4COR(N,FCN,X,Y,XEND,HMAX,H,RelTol,AbsTol,ITOL,JAC,
+     &  IJAC,MLJAC,MUJAC,DFX,IDFX,MAS,MLMAS,MUMAS,SOLOUT,IOUT,IDID,
+     &  NMAX,UROUND,METH,FAC1,FAC2,FACREJ,AUTNMS,IMPLCT,BANDED,
+     &  LFJAC,LE,LDMAS,YNEW,DY1,DY,AK1,AK2,AK3,AK4,FX,FJAC,E,FMAS,IP)
+C ----------------------------------------------------------
+C     CORE INTEGRATOR FOR ROS4
+C     PARAMETERS SAME AS IN ROS4 WITH WORKSPACE ADDED 
+C ---------------------------------------------------------- 
+C         DECLARATIONS 
+C ---------------------------------------------------------- 
+      IMPLICIT KPP_REAL (A-H,O-Z)	 
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_sparse.h'
+      KPP_REAL Y(N),YNEW(N),DY1(N),DY(N),AK1(N),
+     *  AK2(N),AK3(N),AK4(N),FX(N),
+     *  FJAC(LU_NONZERO),E(LU_NONZERO),
+     *  FMAS(LDMAS,N),AbsTol(1),RelTol(1)
+      INTEGER IP(N)
+      LOGICAL REJECT,RJECT2,AUTNMS,IMPLCT,BANDED
+      COMMON/STAT/NFCN,NJAC,NSTEP,NACCPT,NREJCT,NDEC,NSOL
+      EXTERNAL FCN,JAC,MAS,SOLOUT,DFX
+
+
+C ------- COMPUTE MASS MATRIX FOR IMPLICIT CASE ----------
+      IF (IMPLCT) CALL MAS(N,FMAS,LDMAS)
+C ---- PREPARE BANDWIDTHS -----
+      IF (BANDED) THEN
+          MLE=MLJAC
+          MUE=MUJAC
+          MBJAC=MLJAC+MUJAC+1
+          MBB=MLMAS+MUMAS+1
+          MDIAG=MLE+MUE+1
+          MBDIAG=MUMAS+1
+          MDIFF=MLE+MUE-MUMAS
+      END IF
+C *** *** *** *** *** *** ***
+C  INITIALISATIONS
+C *** *** *** *** *** *** ***
+      IF (METH.EQ.1) CALL SHAMP (A21,A31,A32,C21,C31,C32,C41,C42,C43,
+     &          B1,B2,B3,B4,E1,E2,E3,E4,GAMMA,C2,C3,D1,D2,D3,D4)
+      IF (METH.EQ.2) CALL GRK4T (A21,A31,A32,C21,C31,C32,C41,C42,C43,
+     &          B1,B2,B3,B4,E1,E2,E3,E4,GAMMA,C2,C3,D1,D2,D3,D4)
+      IF (METH.EQ.3) CALL GRK4A (A21,A31,A32,C21,C31,C32,C41,C42,C43,
+     &          B1,B2,B3,B4,E1,E2,E3,E4,GAMMA,C2,C3,D1,D2,D3,D4)
+      IF (METH.EQ.4) CALL VELDS (A21,A31,A32,C21,C31,C32,C41,C42,C43,
+     &          B1,B2,B3,B4,E1,E2,E3,E4,GAMMA,C2,C3,D1,D2,D3,D4)
+      IF (METH.EQ.5) CALL VELDD (A21,A31,A32,C21,C31,C32,C41,C42,C43,
+     &          B1,B2,B3,B4,E1,E2,E3,E4,GAMMA,C2,C3,D1,D2,D3,D4)
+      IF (METH.EQ.6) CALL LSTAB (A21,A31,A32,C21,C31,C32,C41,C42,C43,
+     &          B1,B2,B3,B4,E1,E2,E3,E4,GAMMA,C2,C3,D1,D2,D3,D4)
+C --- INITIAL PREPARATIONS
+      POSNEG=SIGN(1.D0,XEND-X)
+      HMAXN=MIN(ABS(HMAX),ABS(XEND-X))
+      IF (ABS(H).LE.10.D0*UROUND) H=1.0D-6
+      H=MIN(ABS(H),HMAXN) 
+      H=SIGN(H,POSNEG) 
+      REJECT=.FALSE.
+      NSING=0
+      IRTRN=1 
+      XXOLD=X
+      IF (IRTRN.LT.0) GOTO 79
+C --- BASIC INTEGRATION STEP  
+   1  IF (NSTEP.GT.NMAX.OR.X+.1D0*H.EQ.X.OR.ABS(H).LE.UROUND) GOTO 79
+      IF ((X-XEND)*POSNEG+UROUND.GT.0.D0) THEN
+          H=HOPT
+          IDID=1
+          RETURN
+      END IF
+      HOPT=H
+      IF ((X+H-XEND)*POSNEG.GT.0.D0) H=XEND-X
+      CALL FCN(N,X,Y,DY1)
+      NFCN=NFCN+1
+
+C *** *** *** *** *** *** ***
+C  COMPUTATION OF THE JACOBIAN
+C *** *** *** *** *** *** ***
+      NJAC=NJAC+1
+      CALL JAC(N,X,Y,FJAC)
+
+      IF (.NOT.AUTNMS) THEN
+          IF (IDFX.EQ.0) THEN
+C --- COMPUTE NUMERICALLY THE DERIVATIVE WITH RESPECT TO X
+              DELT=DSQRT(UROUND*MAX(1.D-5,ABS(X)))
+              XDELT=X+DELT
+              CALL FCN(N,XDELT,Y,AK1)
+              DO 19 J=1,N
+  19          FX(J)=(AK1(J)-DY1(J))/DELT
+          ELSE
+C --- COMPUTE ANALYTICALLY THE DERIVATIVE WITH RESPECT TO X
+              CALL DFX(N,X,Y,FX)
+          END IF
+      END IF
+   2  CONTINUE
+
+C *** *** *** *** *** *** ***
+C  COMPUTE THE STAGES
+C *** *** *** *** *** *** ***
+      NDEC=NDEC+1
+      HC21=C21/H
+      HC31=C31/H
+      HC32=C32/H
+      HC41=C41/H
+      HC42=C42/H
+      HC43=C43/H
+      FAC=1.D0/(H*GAMMA)
+C --- THE MATRIX E (B=IDENTITY, JACOBIAN A FULL MATRIX)
+              DO 800 I=1,LU_NONZERO
+  800         E(I)=-FJAC(I)
+              DO 801 J=1,N
+  801         E(LU_DIAG(J))=E(LU_DIAG(J))+FAC
+              CALL KppDecomp (E,IER)
+              IF (IER.NE.0) GOTO 80
+              IF (AUTNMS) THEN
+C --- THIS PART COMPUTES THE STAGES IN THE CASE WHERE
+C ---   1) THE DIFFERENTIAL EQUATION IS IN EXPLICIT FORM
+C ---   2) THE JACOBIAN OF THE PROBLEM IS A FULL MATRIX
+C ---   3) THE DIFFERENTIAL EQUATION IS AUTONOMOUS
+                  DO 803 I=1,N
+  803             AK1(I)=DY1(I)
+                  CALL KppSolve(E,AK1)
+                  DO 810 I=1,N
+  810             YNEW(I)=Y(I)+A21*AK1(I) 
+                  CALL FCN(N,X,YNEW,DY)
+                  DO 811 I=1,N
+  811             AK2(I)=DY(I)+HC21*AK1(I)
+                  CALL KppSolve(E,AK2)
+                  DO 820 I=1,N
+  820             YNEW(I)=Y(I)+A31*AK1(I)+A32*AK2(I)  
+                  CALL FCN(N,X,YNEW,DY)
+                  DO 821 I=1,N
+  821             AK3(I)=DY(I)+HC31*AK1(I)+HC32*AK2(I)
+                  CALL KppSolve(E,AK3)
+                  DO 831 I=1,N
+  831             AK4(I)=DY(I)+HC41*AK1(I)+HC42*AK2(I)+HC43*AK3(I) 
+                  CALL KppSolve(E,AK4)
+              ELSE
+C --- THIS PART COMPUTES THE STAGES IN THE CASE WHERE
+C ---   1) THE DIFFERENTIAL EQUATION IS IN EXPLICIT FORM
+C ---   2) THE JACOBIAN OF THE PROBLEM IS A FULL MATRIX
+C ---   3) THE DIFFERENTIAL EQUATION IS NON-AUTONOMOUS
+                  HD1=H*D1
+                  HD2=H*D2
+                  HD3=H*D3
+                  HD4=H*D4
+                  DO 903 I=1,N
+  903             AK1(I)=DY1(I)+HD1*FX(I)
+                  CALL KppSolve(E,AK1)
+                  DO 910 I=1,N
+  910             YNEW(I)=Y(I)+A21*AK1(I) 
+                  CALL FCN(N,X+C2*H,YNEW,DY)
+                  DO 911 I=1,N
+  911             AK2(I)=DY(I)+HD2*FX(I)+HC21*AK1(I)
+                  CALL KppSolve(E,AK2)
+                  DO 920 I=1,N
+  920             YNEW(I)=Y(I)+A31*AK1(I)+A32*AK2(I)  
+                  CALL FCN(N,X+C3*H,YNEW,DY)
+                  DO 921 I=1,N
+  921             AK3(I)=DY(I)+HD3*FX(I)+HC31*AK1(I)+HC32*AK2(I)
+                  CALL KppSolve(E,AK3)
+                  DO 931 I=1,N
+  931             AK4(I)=DY(I)+HD4*FX(I)+HC41*AK1(I)+HC42*AK2(I)
+     &                  +HC43*AK3(I) 
+                  CALL KppSolve(E,AK4)
+              END IF
+      NSOL=NSOL+4
+      NFCN=NFCN+2
+C *** *** *** *** *** *** ***
+C  ERROR ESTIMATION  
+C *** *** *** *** *** *** ***
+      NSTEP=NSTEP+1
+C ------------ NEW SOLUTION ---------------
+      DO 240 I=1,N
+  240 YNEW(I)=Y(I)+B1*AK1(I)+B2*AK2(I)+B3*AK3(I)+B4*AK4(I)  
+C ------------ COMPUTE ERROR ESTIMATION ----------------
+      ERR=0.D0
+      DO 300 I=1,N
+      S=E1*AK1(I)+E2*AK2(I)+E3*AK3(I)+E4*AK4(I) 
+      IF (ITOL.EQ.0) THEN
+         SK=AbsTol(1)+RelTol(1)*DMAX1(DABS(Y(I)),DABS(YNEW(I)))
+      ELSE
+         SK=AbsTol(I)+RelTol(I)*DMAX1(DABS(Y(I)),DABS(YNEW(I)))
+      END IF
+  300 ERR=ERR+(S/SK)**2
+      ERR=DSQRT(ERR/N)
+C --- COMPUTATION OF HNEW
+C --- WE REQUIRE .2<=HNEW/H<=6.
+      FAC=DMAX1(FAC2,DMIN1(FAC1,(ERR)**.25D0/.9D0))
+      HNEW=H/FAC  
+C *** *** *** *** *** *** ***
+C  IS THE ERROR SMALL ENOUGH ?
+C *** *** *** *** *** *** ***
+      IF (ERR.LE.1.D0) THEN
+C --- STEP IS ACCEPTED  
+         NACCPT=NACCPT+1
+         DO 44 I=1,N 
+  44     Y(I)=YNEW(I) 
+         XXOLD=X 
+         X=X+H
+         IF (IRTRN.LT.0) GOTO 79
+         IF (DABS(HNEW).GT.HMAXN) HNEW=POSNEG*HMAXN
+         IF (REJECT) HNEW=POSNEG*DMIN1(DABS(HNEW),DABS(H)) 
+         REJECT=.FALSE.
+         RJECT2=.FALSE.
+         H=HNEW
+         GOTO 1
+      ELSE
+C --- STEP IS REJECTED  
+         IF (RJECT2) HNEW=H*FACREJ
+         IF (REJECT) RJECT2=.TRUE.
+         REJECT=.TRUE.
+         H=HNEW
+         IF (NACCPT.GE.1) NREJCT=NREJCT+1
+         GOTO 2
+      END IF
+C --- EXIT
+  80  WRITE (6,*) ' MATRIX E IS SINGULAR, INFO = ',INFO
+      NSING=NSING+1
+      IF (NSING.GE.5) GOTO 79
+      H=H*0.5D0
+      GOTO 2
+  79  WRITE(6,979)X,H
+ 979  FORMAT(' EXIT OF ROS4 AT X=',D16.7,'   H=',D16.7)
+      IDID=-1
+      RETURN
+      END
+C
+      SUBROUTINE SHAMP (A21,A31,A32,C21,C31,C32,C41,C42,C43,
+     &          B1,B2,B3,B4,E1,E2,E3,E4,GAMMA,C2,C3,D1,D2,D3,D4)
+      IMPLICIT KPP_REAL (A-H,O-Z)
+         A21=2.D0
+         A31=48.D0/25.D0
+         A32=6.D0/25.D0
+         C21=-8.D0
+         C31=372.D0/25.D0
+         C32=12.D0/5.D0
+         C41=-112.D0/125.D0
+         C42=-54.D0/125.D0
+         C43=-2.D0/5.D0
+         B1=19.D0/9.D0
+         B2=1.D0/2.D0
+         B3=25.D0/108.D0
+         B4=125.D0/108.D0
+         E1=17.D0/54.D0
+         E2=7.D0/36.D0
+         E3=0.D0
+         E4=125.D0/108.D0
+         GAMMA=.5D0
+         C2= 0.1000000000000000D+01
+         C3= 0.6000000000000000D+00
+         D1= 0.5000000000000000D+00
+         D2=-0.1500000000000000D+01
+         D3= 0.2420000000000000D+01
+         D4= 0.1160000000000000D+00
+      RETURN
+      END
+C
+      SUBROUTINE GRK4A (A21,A31,A32,C21,C31,C32,C41,C42,C43,
+     &          B1,B2,B3,B4,E1,E2,E3,E4,GAMMA,C2,C3,D1,D2,D3,D4)
+      IMPLICIT KPP_REAL (A-H,O-Z)
+       A21= 0.1108860759493671D+01
+       A31= 0.2377085261983360D+01
+       A32= 0.1850114988899692D+00
+       C21=-0.4920188402397641D+01
+       C31= 0.1055588686048583D+01
+       C32= 0.3351817267668938D+01
+       C41= 0.3846869007049313D+01
+       C42= 0.3427109241268180D+01
+       C43=-0.2162408848753263D+01
+       B1= 0.1845683240405840D+01
+       B2= 0.1369796894360503D+00
+       B3= 0.7129097783291559D+00
+       B4= 0.6329113924050632D+00
+       E1= 0.4831870177201765D-01
+       E2=-0.6471108651049505D+00
+       E3= 0.2186876660500240D+00
+       E4=-0.6329113924050632D+00
+       GAMMA= 0.3950000000000000D+00
+       C2= 0.4380000000000000D+00
+       C3= 0.8700000000000000D+00
+       D1= 0.3950000000000000D+00
+       D2=-0.3726723954840920D+00
+       D3= 0.6629196544571492D-01
+       D4= 0.4340946962568634D+00
+      RETURN
+      END
+C
+      SUBROUTINE GRK4T (A21,A31,A32,C21,C31,C32,C41,C42,C43,
+     &          B1,B2,B3,B4,E1,E2,E3,E4,GAMMA,C2,C3,D1,D2,D3,D4)
+      IMPLICIT KPP_REAL (A-H,O-Z)
+       A21= 0.2000000000000000D+01
+       A31= 0.4524708207373116D+01
+       A32= 0.4163528788597648D+01
+       C21=-0.5071675338776316D+01
+       C31= 0.6020152728650786D+01
+       C32= 0.1597506846727117D+00
+       C41=-0.1856343618686113D+01
+       C42=-0.8505380858179826D+01
+       C43=-0.2084075136023187D+01
+       B1= 0.3957503746640777D+01
+       B2= 0.4624892388363313D+01
+       B3= 0.6174772638750108D+00
+       B4= 0.1282612945269037D+01
+       E1= 0.2302155402932996D+01
+       E2= 0.3073634485392623D+01
+       E3=-0.8732808018045032D+00
+       E4=-0.1282612945269037D+01
+       GAMMA= 0.2310000000000000D+00
+       C2= 0.4620000000000000D+00
+       C3= 0.8802083333333334D+00
+       D1= 0.2310000000000000D+00
+       D2=-0.3962966775244303D-01
+       D3= 0.5507789395789127D+00
+       D4=-0.5535098457052764D-01
+      RETURN
+      END
+C
+      SUBROUTINE VELDS (A21,A31,A32,C21,C31,C32,C41,C42,C43,
+     &          B1,B2,B3,B4,E1,E2,E3,E4,GAMMA,C2,C3,D1,D2,D3,D4)
+C --- METHOD GIVEN BY VAN VELDHUIZEN
+      IMPLICIT KPP_REAL (A-H,O-Z)
+       A21= 0.2000000000000000D+01
+       A31= 0.1750000000000000D+01
+       A32= 0.2500000000000000D+00
+       C21=-0.8000000000000000D+01
+       C31=-0.8000000000000000D+01
+       C32=-0.1000000000000000D+01
+       C41= 0.5000000000000000D+00
+       C42=-0.5000000000000000D+00
+       C43= 0.2000000000000000D+01
+       B1= 0.1333333333333333D+01
+       B2= 0.6666666666666667D+00
+       B3=-0.1333333333333333D+01
+       B4= 0.1333333333333333D+01
+       E1=-0.3333333333333333D+00
+       E2=-0.3333333333333333D+00
+       E3=-0.0000000000000000D+00
+       E4=-0.1333333333333333D+01
+       GAMMA= 0.5000000000000000D+00
+       C2= 0.1000000000000000D+01
+       C3= 0.5000000000000000D+00
+       D1= 0.5000000000000000D+00
+       D2=-0.1500000000000000D+01
+       D3=-0.7500000000000000D+00
+       D4= 0.2500000000000000D+00
+      RETURN
+      END
+C
+      SUBROUTINE VELDD (A21,A31,A32,C21,C31,C32,C41,C42,C43,
+     &          B1,B2,B3,B4,E1,E2,E3,E4,GAMMA,C2,C3,D1,D2,D3,D4)
+C --- METHOD GIVEN BY VAN VELDHUIZEN
+      IMPLICIT KPP_REAL (A-H,O-Z)
+       A21= 0.2000000000000000D+01
+       A31= 0.4812234362695436D+01
+       A32= 0.4578146956747842D+01
+       C21=-0.5333333333333331D+01
+       C31= 0.6100529678848254D+01
+       C32= 0.1804736797378427D+01
+       C41=-0.2540515456634749D+01
+       C42=-0.9443746328915205D+01
+       C43=-0.1988471753215993D+01
+       B1= 0.4289339254654537D+01
+       B2= 0.5036098482851414D+01
+       B3= 0.6085736420673917D+00
+       B4= 0.1355958941201148D+01
+       E1= 0.2175672787531755D+01
+       E2= 0.2950911222575741D+01
+       E3=-0.7859744544887430D+00
+       E4=-0.1355958941201148D+01
+       GAMMA= 0.2257081148225682D+00
+       C2= 0.4514162296451364D+00
+       C3= 0.8755928946018455D+00
+       D1= 0.2257081148225682D+00
+       D2=-0.4599403502680582D-01
+       D3= 0.5177590504944076D+00
+       D4=-0.3805623938054428D-01
+      RETURN
+      END 
+C
+      SUBROUTINE LSTAB (A21,A31,A32,C21,C31,C32,C41,C42,C43,
+     &          B1,B2,B3,B4,E1,E2,E3,E4,GAMMA,C2,C3,D1,D2,D3,D4)
+C --- AN L-STABLE METHOD
+      IMPLICIT KPP_REAL (A-H,O-Z)
+       A21= 0.2000000000000000D+01
+       A31= 0.1867943637803922D+01
+       A32= 0.2344449711399156D+00
+       C21=-0.7137615036412310D+01
+       C31= 0.2580708087951457D+01
+       C32= 0.6515950076447975D+00
+       C41=-0.2137148994382534D+01
+       C42=-0.3214669691237626D+00
+       C43=-0.6949742501781779D+00
+C  B_i = M_i
+       B1= 0.2255570073418735D+01
+       B2= 0.2870493262186792D+00
+       B3= 0.4353179431840180D+00
+       B4= 0.1093502252409163D+01
+C E_i = error estimator       
+       E1=-0.2815431932141155D+00
+       E2=-0.7276199124938920D-01
+       E3=-0.1082196201495311D+00
+       E4=-0.1093502252409163D+01
+C gamma = gamma
+       GAMMA= 0.5728200000000000D+00
+C  C_i = alpha_i
+       C2= 0.1145640000000000D+01
+       C3= 0.6552168638155900D+00
+C D_i = gamma_i       
+       D1= 0.5728200000000000D+00
+       D2=-0.1769193891319233D+01
+       D3= 0.7592633437920482D+00
+       D4=-0.1049021087100450D+00
+      RETURN
+      END 
+
+        SUBROUTINE SOLOUT (NR,XOLD,X,Y,N,IRTRN)
+C --- PRINTS SOLUTION
+        IMPLICIT KPP_REAL (A-H,O-Z)
+        DIMENSION Y(N)
+        COMMON /INTERN/XOUT
+        IF (NR.EQ.1) THEN
+           WRITE (6,99) X,Y(1),Y(2),NR-1
+           XOUT=0.1D0
+        ELSE
+           IF (X.GE.XOUT) THEN
+              WRITE (6,99) X,Y(1),Y(2),NR-1
+              XOUT=DMAX1(XOUT+0.1D0,X)
+           END IF
+        END IF
+ 99     FORMAT(1X,'X =',F5.2,'    Y =',2E18.10,'    NSTEP =',I4)
+        RETURN
+        END
+
+      SUBROUTINE DEC (N, NDIM, A, IP, IER)
+C VERSION REAL KPP_REAL
+      INTEGER N,NDIM,IP,IER,NM1,K,KP1,M,I,J
+      KPP_REAL A,T
+      DIMENSION A(NDIM,N), IP(N)
+C-----------------------------------------------------------------------
+C  MATRIX TRIANGULARIZATION BY GAUSSIAN ELIMINATION.
+C  INPUT..
+C     N = ORDER OF MATRIX.
+C     NDIM = DECLARED DIMENSION OF ARRAY  A .
+C     A = MATRIX TO BE TRIANGULARIZED.
+C  OUTPUT..
+C     A(I,J), I.LE.J = UPPER TRIANGULAR FACTOR, U .
+C     A(I,J), I.GT.J = MULTIPLIERS = LOWER TRIANGULAR FACTOR, I - L.
+C     IP(K), K.LT.N = INDEX OF K-TH PIVOT ROW.
+C     IP(N) = (-1)**(NUMBER OF INTERCHANGES) OR O .
+C     IER = 0 IF MATRIX A IS NONSINGULAR, OR K IF FOUND TO BE
+C           SINGULAR AT STAGE K.
+C  USE  SOL  TO OBTAIN SOLUTION OF LINEAR SYSTEM.
+C  DETERM(A) = IP(N)*A(1,1)*A(2,2)*...*A(N,N).
+C  IF IP(N)=O, A IS SINGULAR, SOL WILL DIVIDE BY ZERO.
+C
+C  REFERENCE..
+C     C. B. MOLER, ALGORITHM 423, LINEAR EQUATION KppSolveR,
+C     C.A.C.M. 15 (1972), P. 274.
+C-----------------------------------------------------------------------
+      IER = 0
+      IP(N) = 1
+      IF (N .EQ. 1) GO TO 70
+      NM1 = N - 1
+      DO 60 K = 1,NM1
+        KP1 = K + 1
+        M = K
+        DO 10 I = KP1,N
+          IF (DABS(A(I,K)) .GT. DABS(A(M,K))) M = I  
+ 10     CONTINUE
+        IP(K) = M
+        T = A(M,K)
+        IF (M .EQ. K) GO TO 20
+        IP(N) = -IP(N)
+        A(M,K) = A(K,K)
+        A(K,K) = T
+ 20     CONTINUE
+        IF (T .EQ. 0.D0) GO TO 80
+        T = 1.D0/T
+        DO 30 I = KP1,N
+ 30       A(I,K) = -A(I,K)*T
+        DO 50 J = KP1,N
+          T = A(M,J)
+          A(M,J) = A(K,J)
+          A(K,J) = T
+          IF (T .EQ. 0.D0) GO TO 45
+          DO 40 I = KP1,N
+ 40         A(I,J) = A(I,J) + A(I,K)*T
+ 45       CONTINUE
+ 50       CONTINUE
+ 60     CONTINUE
+ 70   K = N
+      IF (A(N,N) .EQ. 0.D0) GO TO 80
+      RETURN
+ 80   IER = K
+      IP(N) = 0
+      RETURN
+C----------------------- END OF SUBROUTINE DEC -------------------------
+      END
+C
+C
+      SUBROUTINE SOL (N, NDIM, A, B, IP)
+C VERSION REAL KPP_REAL
+      INTEGER N,NDIM,IP,NM1,K,KP1,M,I,KB,KM1
+      KPP_REAL A,B,T
+      DIMENSION A(NDIM,N), B(N), IP(N)
+C-----------------------------------------------------------------------
+C  SOLUTION OF LINEAR SYSTEM, A*X = B .
+C  INPUT..
+C    N = ORDER OF MATRIX.
+C    NDIM = DECLARED DIMENSION OF ARRAY  A .
+C    A = TRIANGULARIZED MATRIX OBTAINED FROM DEC.
+C    B = RIGHT HAND SIDE VECTOR.
+C    IP = PIVOT VECTOR OBTAINED FROM DEC.
+C  DO NOT USE IF DEC HAS SET IER .NE. 0.
+C  OUTPUT..
+C    B = SOLUTION VECTOR, X .
+C-----------------------------------------------------------------------
+      IF (N .EQ. 1) GO TO 50
+      NM1 = N - 1
+      DO 20 K = 1,NM1
+        KP1 = K + 1
+        M = IP(K)
+        T = B(M)
+        B(M) = B(K)
+        B(K) = T
+        DO 10 I = KP1,N
+ 10       B(I) = B(I) + A(I,K)*T
+ 20     CONTINUE
+      DO 40 KB = 1,NM1
+        KM1 = N - KB
+        K = KM1 + 1
+        B(K) = B(K)/A(K,K)
+        T = -B(K)
+        DO 30 I = 1,KM1
+ 30       B(I) = B(I) + A(I,K)*T
+ 40     CONTINUE
+ 50   B(1) = B(1)/A(1,1)
+      RETURN
+C----------------------- END OF SUBROUTINE SOL -------------------------
+      END
+
+
+ 
+ 
+      SUBROUTINE FUNC_CHEM(N, T, Y, P)
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+      INTEGER N
+      KPP_REAL   T, Told
+      KPP_REAL   Y(NVAR), P(NVAR)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Fun( Y,  FIX, RCONST, P )
+      TIME = Told
+      RETURN
+      END
+
+ 
+      SUBROUTINE JAC_CHEM(N, T, Y, J)
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+      INTEGER N
+      KPP_REAL   Told, T
+      KPP_REAL   Y(NVAR), J(LU_NONZERO)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Jac_SP( Y,  FIX, RCONST, J )
+      TIME = Told
+      RETURN
+      END                                                                                                                 
+
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/qssa.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/qssa.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/qssa.def	(revision 2696)
@@ -0,0 +1,16 @@
+ 
+#FUNCTION SPLIT
+#JACOBIAN OFF
+#SPARSEDATA OFF
+#DOUBLE ON
+#INTFILE qssa
+
+#INLINE F_INIT_INT
+        STEPMIN=0.0001
+        STEPMAX=60.
+#ENDINLINE
+
+#INLINE C_INIT_INT
+  STEPMIN=0.0001;
+  STEPMAX=60.;
+#ENDINLINE
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/qssa.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/qssa.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/qssa.f	(revision 2696)
@@ -0,0 +1,136 @@
+C -- QSSA WITH STEADY STATE APPROXIMATION --
+C    For plain QSSA (to remove the steady state assumption)
+C    modify slow -> 0, fast -> 1e20
+C
+
+      SUBROUTINE INTEGRATE( TIN, TOUT  ) 
+
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+
+C TIN - Start Time
+      KPP_REAL TIN
+C TOUT - End Time
+      KPP_REAL TOUT
+
+C Local variables
+      KPP_REAL P_VAR(NVAR), D_VAR(NVAR), V1(NVAR), V2(NVAR)
+      LOGICAL IsReject
+      KPP_REAL T, Tnext, STEP, STEPold, Told, SUP
+      KPP_REAL ERR, ERRold, ratio, factor, facmax, tmp
+      INTEGER i 
+      KPP_REAL slow, fast
+
+      T = TIN
+      Tnext = TOUT
+      STEP = DMAX1(STEPMIN,1.d-10)
+      Told = T
+      SUP  = 1e-14
+      IsReject = .false.
+      ERR = 1.d0
+      ERRold = 1.d0
+      slow = 0.01
+      fast = 10.  
+
+ 10    continue  
+       Tplus = T + STEP
+       if ( Tplus .gt. Tnext ) then
+          STEP = Tnext - T
+          Tplus = Tnext
+       end if
+
+
+        TITI = TIME
+        TIME = T
+        CALL Update_SUN() 
+        CALL Update_RCONST()
+        TIME = TITI
+        CALL FSPLIT_VAR ( VAR,  P_VAR, D_VAR )
+
+        do i=1,NVAR
+          IF ( D_VAR(i)*STEP .lt. slow) THEN       ! SLOW SPECIES
+             XXX = STEP * (P_VAR(i) - D_VAR(i)*VAR(i))
+             V1(i) = VAR(i) + XXX
+             V2(i) = VAR(i) + 0.5*XXX
+          ELSE IF ( D_VAR(i)*STEP .GT. fast) THEN  ! FAST SPECIES
+             V1(i) = P_VAR(i)/D_VAR(i)
+             V2(i) = V1(i)
+          ELSE                                    ! MEDIUM LIVED
+            if ( abs(D_VAR(i)).gt.SUP ) then
+              ratio = P_VAR(i)/D_VAR(i)
+              tmp = exp(-D_VAR(i)*STEP*0.5)
+              V1(i) = tmp * tmp * (VAR(i) - ratio) + ratio
+              V2(i) = tmp * (VAR(i) - ratio) + ratio
+            else
+              tmp = D_VAR(i) * STEP * 0.5
+              V1(i) = VAR(i) + P_VAR(i) * STEP * ( 1 - tmp *
+     *             ( 1 - 2.0 / 3.0 * tmp ) )
+              V2(i) = VAR(i) + P_VAR(i) * 0.5 * STEP*( 1-0.5*tmp*
+     *             ( 1 - 1.0 / 3.0 * tmp ) )
+              end if
+          END IF
+        end do
+
+        TITI = TIME
+        TIME = T + 0.5*STEP
+        CALL Update_SUN() 
+        CALL Update_RCONST()
+        TIME = TITI
+        CALL FSPLIT_VAR ( V2,  P_VAR, D_VAR )
+
+        do i=1,NVAR
+          IF ( D_VAR(i)*STEP .lt. slow) THEN       ! SLOW SPECIES
+             XXX = STEP * (P_VAR(i) - D_VAR(i)*VAR(i))
+             V2(i) = V2(i) + 0.5*XXX
+          ELSE IF ( D_VAR(i)*STEP .GT. fast) THEN  ! FAST SPECIES
+             V2(i) = P_VAR(i)/D_VAR(i)
+          ELSE                                    ! MEDIUM LIVED
+            if ( abs(D_VAR(i)).gt.SUP ) then
+              ratio = P_VAR(i)/D_VAR(i)
+              tmp = exp(-D_VAR(i)*STEP*0.5)
+              V2(i) = tmp * (V2(i) - ratio) + ratio
+            else
+              tmp = D_VAR(i) * STEP * 0.5
+              V2(i) = V2(i) + P_VAR(i) * 0.5 * STEP * ( 1 - 0.5 * tmp *
+     *             ( 1 - 1.0 / 3.0 * tmp ) )
+            end if
+          END IF
+        end do
+
+C ===== Extrapolation and error estimation ========
+
+        ERRold=ERR
+        ERR=0.0D0
+          do i=1,NVAR
+             ERR = ERR + ((V2(i)-V1(i))/(ATOL(i) + RTOL(i)*V2(i)))**2
+          end do       
+        ERR = DSQRT( ERR/NVAR )
+        STEPold=STEP
+
+C ===== choosing the stepsize =====================
+
+        factor = 0.9*ERR**(-0.35)*ERRold**0.2
+        if (IsReject) then
+            facmax=1.
+        else
+            facmax=8.
+        end if 
+        factor = DMAX1( 1.25D-1, DMIN1(factor,facmax) )
+        STEP = DMIN1( STEPMAX, DMAX1(STEPMIN,factor*STEP) )    
+
+C===================================================
+
+        if ( (ERR.gt.1).and.(STEPold.gt.STEPMIN) ) then
+          IsReject = .true.
+        else
+          IsReject = .false.
+          do 140 i=1,NVAR
+             VAR(i)  = DMAX1(V2(i), 0.d0)
+ 140      continue 
+          T = Tplus     
+        end if
+      if ( T .lt. Tnext ) go to 10
+
+      TIME = Tnext
+      RETURN 
+      END        
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/qssa1.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/qssa1.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/qssa1.f	(revision 2696)
@@ -0,0 +1,136 @@
+C -- QSSA WITH STEADY STATE APPROXIMATION --
+C    For plain QSSA (to remove the steady state assumption)
+C    modify slow -> 0, fast -> 1e20
+C
+
+      SUBROUTINE INTEGRATE( TIN, TOUT  ) 
+
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+
+C TIN - Start Time
+      KPP_REAL TIN
+C TOUT - End Time
+      KPP_REAL TOUT
+
+C Local variables
+      KPP_REAL P_VAR(NVAR), D_VAR(NVAR), V1(NVAR), V2(NVAR)
+      LOGICAL IsReject
+      KPP_REAL T, Tnext, STEP, STEPold, Told, SUP
+      KPP_REAL ERR, ERRold, ratio, factor, facmax, tmp
+      INTEGER I
+      KPP_REAL slow, fast
+
+      T = TIN
+      Tnext = TOUT
+      STEP = DMAX1(STEPMIN,1.d-10)
+      Told = T
+      SUP  = 1e-14
+      IsReject = .false.
+      ERR = 1.d0
+      ERRold = 1.d0
+      slow = 0.01
+      fast = 10.  
+
+ 10    continue  
+       Tplus = T + STEP
+       if ( Tplus .gt. Tnext ) then
+          STEP = Tnext - T
+          Tplus = Tnext
+       end if
+
+
+        TITI = TIME
+        TIME = T
+        CALL Update_SUN() 
+        CALL Update_RCONST()
+        TIME = TITI
+        CALL FSPLIT_VAR ( VAR,  P_VAR, D_VAR )
+
+        do i=1,NVAR
+          IF ( D_VAR(i)*step .lt. slow) THEN       ! SLOW SPECIES
+             XXX = STEP * (P_VAR(I) - D_VAR(I)*VAR(I))
+             V1(I) = VAR(I) + XXX
+             V2(I) = VAR(I) + 0.5*XXX
+          ELSE IF ( D_VAR(i)*step .GT. fast) THEN  ! FAST SPECIES
+             V1(I) = P_VAR(I)/D_VAR(I)
+             V2(I) = V1(I)
+          ELSE                                    ! MEDIUM LIVED
+            if ( abs(D_VAR(i)).gt.SUP ) then
+              ratio = P_VAR(i)/D_VAR(i)
+              tmp = exp(-D_VAR(i)*STEP*0.5)
+              V1(i) = tmp * tmp * (VAR(i) - ratio) + ratio
+              V2(i) = tmp * (VAR(i) - ratio) + ratio
+            else
+              tmp = D_VAR(i) * STEP * 0.5
+              V1(i) = VAR(i) + P_VAR(i) * STEP * ( 1 - tmp *
+     *             ( 1 - 2.0 / 3.0 * tmp ) )
+              V2(i) = VAR(i) + P_VAR(i) * 0.5 * STEP*( 1-0.5*tmp*
+     *             ( 1 - 1.0 / 3.0 * tmp ) )
+              end if
+          END IF
+        end do
+
+        TITI = TIME
+        TIME = T + 0.5*STEP
+        CALL Update_SUN() 
+        CALL Update_RCONST()
+        TIME = TITI
+        CALL FSPLIT_VAR ( V2,  P_VAR, D_VAR )
+
+        do i=1,NVAR
+          IF ( D_VAR(i)*step .lt. slow) THEN       ! SLOW SPECIES
+             XXX = STEP * (P_VAR(I) - D_VAR(I)*VAR(I))
+             V2(I) = V2(I) + 0.5*XXX
+          ELSE IF ( D_VAR(i)*step .GT. fast) THEN  ! FAST SPECIES
+             V2(I) = P_VAR(I)/D_VAR(I)
+          ELSE                                    ! MEDIUM LIVED
+            if ( abs(D_VAR(i)).gt.SUP ) then
+              ratio = P_VAR(i)/D_VAR(i)
+              tmp = exp(-D_VAR(i)*STEP*0.5)
+              V2(i) = tmp * (V2(i) - ratio) + ratio
+            else
+              tmp = D_VAR(i) * STEP * 0.5
+              V2(i) = V2(i) + P_VAR(i) * 0.5 * STEP * ( 1 - 0.5 * tmp *
+     *             ( 1 - 1.0 / 3.0 * tmp ) )
+            end if
+          END IF
+        end do
+
+C ===== Extrapolation and error estimation ========
+
+        ERRold=ERR
+        ERR=0.0D0
+          do i=1,NVAR
+             ERR = ERR + ((V2(i)-V1(i))/(ATOL(i) + RTOL(i)*V2(i)))**2
+          end do       
+        ERR = DSQRT( ERR/NVAR )
+        STEPold=STEP
+
+C ===== choosing the stepsize =====================
+
+        factor = 0.9*ERR**(-0.35)*ERRold**0.2
+        if (IsReject) then
+            facmax=1.
+        else
+            facmax=8.
+        end if 
+        factor = DMAX1( 1.25D-1, DMIN1(factor,facmax) )
+        STEP = DMIN1( STEPMAX, DMAX1(STEPMIN,factor*STEP) )    
+
+C===================================================
+
+        if ( (ERR.gt.1).and.(STEPold.gt.STEPMIN) ) then
+          IsReject = .true.
+        else
+          IsReject = .false.
+          do 140 i=1,NVAR
+             VAR(i)  = DMAX1(V2(i), 0.d0)
+ 140      continue 
+          T = Tplus     
+        end if
+      if ( T .lt. Tnext ) go to 10
+
+      TIME = Tnext
+      RETURN 
+      END        
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/qssafix.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/qssafix.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/qssafix.def	(revision 2696)
@@ -0,0 +1,16 @@
+ 
+#FUNCTION SPLIT
+#JACOBIAN OFF
+#SPARSEDATA OFF
+#DOUBLE ON
+#INTFILE qssafix
+
+#INLINE F_INIT_INT
+        STEPMIN=0.0001
+        STEPMAX=60.
+#ENDINLINE
+
+#INLINE C_INIT_INT
+  STEPMIN=0.0001;
+  STEPMAX=60.;
+#ENDINLINE
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/qssafix.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/qssafix.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/qssafix.f	(revision 2696)
@@ -0,0 +1,56 @@
+C --- Plain QSSA with fixed step size
+C
+      SUBROUTINE INTEGRATE( TIN, TOUT  ) 
+
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+
+C TIN - Start Time
+      KPP_REAL TIN
+C TOUT - End Time
+      KPP_REAL TOUT
+
+C Local variables
+      KPP_REAL P_VAR(NVAR), D_VAR(NVAR)                    
+      LOGICAL IsReject
+      KPP_REAL T, Tnext, STEP, Told, SUP
+      KPP_REAL ratio, tmp
+      INTEGER i
+
+      T = TIN
+      Tnext = TOUT
+      STEP = 0.1
+      Told = T
+      SUP  = 1e-14
+      IsReject = .false.
+
+C -- BELOW THIS LIMIT USE TAYLOR INSTEAD OF EXP ---
+
+      do while ( T.lt.Tnext )   
+   
+        if ( T.gt.Tnext ) then
+          STEP = Tnext - Told
+          T = Tnext
+        end if
+
+        CALL FSPLIT_VAR ( VAR,  P_VAR, D_VAR )
+
+        do i=1,NVAR
+          if ( abs(D_VAR(i)).gt.SUP ) then
+            ratio = P_VAR(i)/D_VAR(i)
+            tmp = exp(-D_VAR(i)*STEP)
+            VAR(i) = tmp * (VAR(i) - ratio) + ratio
+          else
+            tmp = D_VAR(i) * STEP
+            VAR(i) = VAR(i) + P_VAR(i) * 0.5 * STEP * ( 1 - 0.5 * tmp *
+     *             ( 1 - 1.0 / 3.0 * tmp ) )
+          end if
+        end do
+
+        T = T + STEP
+        TIME = T
+
+      end do
+
+      RETURN 
+      END        
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/rodas3.c
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/rodas3.c	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/rodas3.c	(revision 2696)
@@ -0,0 +1,313 @@
+
+	#define MAX(a,b) ((a) >= (b) ) ?(a):(b)
+	#define MIN(b,c) ((b) <  (c) ) ?(b):(c)	
+	#define abs(x)   ((x) >=  0  ) ?(x):(-x) 
+	#define dabs(y)  (double)abs(y) 
+	#define DSQRT(d) (double)pow(d,0.5)
+
+	void (*forfun)(int,KPP_REAL,KPP_REAL [],KPP_REAL []);
+	void (*forjac)(int,KPP_REAL,KPP_REAL [],KPP_REAL []);
+	
+
+void FUNC_CHEM(int N,KPP_REAL T,KPP_REAL Y[NVAR],KPP_REAL P[NVAR])
+	{
+         KPP_REAL Told;
+         Told = TIME;
+         TIME = T;
+         Update_SUN();
+         Update_PHOTO();
+         Fun( Y, FIX, RCONST, P );
+         TIME = Told;
+        } /* function fun ends here */
+
+void JAC_CHEM(int N,KPP_REAL T,KPP_REAL Y[NVAR],KPP_REAL J[LU_NONZERO])
+	{
+         KPP_REAL Told;
+         Told = TIME;
+         TIME = T;
+         Update_SUN();
+         Update_PHOTO();
+         Jac_SP( Y, FIX, RCONST, J );
+         TIME = Told;
+        } /* function jac_sp ends here */
+
+
+     INTEGRATE( KPP_REAL TIN, KPP_REAL TOUT )
+      {
+	/*  TIN - Start Time       */   
+	/*  TOUT - End Time          */
+
+        int INFO[5];
+		
+	forfun = &FUNC_CHEM;
+	forjac = &JAC_CHEM;	
+        INFO[0] = Autonomous;
+
+ RODAS3( NVAR,TIN,TOUT,STEPMIN,STEPMAX,STEPMIN,VAR,ATOL,RTOL,INFO
+ ,forfun ,forjac );
+	
+}
+    
+
+
+int RODAS3(int N,KPP_REAL T, KPP_REAL Tnext,KPP_REAL Hmin,KPP_REAL Hmax,
+   KPP_REAL Hstart,KPP_REAL y[NVAR],KPP_REAL AbsTol[NVAR],KPP_REAL RelTol[NVAR],
+   int INFO[5],void (*forfun)(int,KPP_REAL,KPP_REAL [],KPP_REAL []),
+   void (*forjac)(int,KPP_REAL,KPP_REAL [],KPP_REAL []) )
+   {
+/*
+       Stiffly accurate Rosenbrock 3(2), with 
+     stiffly accurate embedded formula for error control.  
+
+     All the arguments aggree with the KPP syntax.
+
+  INPUT ARGUMENTS:
+    y = Vector of (NVAR) concentrations, contains the
+         initial values on input
+     [T, Tnext] = the integration interval
+     Hmin, Hmax = lower and upper bounds for the selected step-size.
+          Note that for Step = Hmin the current computed
+          solution is unconditionally accepted by the error
+          control mechanism.
+     AbsTol, RelTol = (NVAR) dimensional vectors of 
+          componentwise absolute and relative tolerances.
+     FUNC_CHEM = name of routine of derivatives. KPP syntax.
+          See the header below.
+     JAC_CHEM = name of routine that computes the Jacobian, in
+          sparse format. KPP syntax. See the header below.
+     Info(1) = 1  for  autonomous   system
+             = 0  for nonautonomous system 
+
+  OUTPUT ARGUMENTS:
+     y = the values of concentrations at Tend.
+     T = equals Tend on output.
+     Info(2) = # of FUNC_CHEM calls.
+     Info(3) = # of JAC_CHEM calls.
+     Info(4) = # of accepted steps.
+     Info(5) = # of rejected steps.
+    
+     Adrian Sandu, March 1996
+     The Center for Global and Regional Environmental Research
+*/
+      KPP_REAL   K1[NVAR], K2[NVAR], K3[NVAR], K4[NVAR];
+      KPP_REAL   F1[NVAR], JAC[LU_NONZERO];
+      KPP_REAL   ghinv,uround,c43,x1,x2,ytol;
+      KPP_REAL   ynew[NVAR];
+      KPP_REAL   H, Hold, Tplus,tau,tau1,tau2,tau3;
+      KPP_REAL   ERR, factor, facmax;
+      int n,nfcn,njac,Naccept,Nreject,i,j,ier;
+      char IsReject,Autonomous;	
+	
+
+
+/*      Initialization of counters, etc.	*/
+      Autonomous = (INFO[0] == 1);         
+      uround = (double)1e-15;               
+      c43 = (double)(-8.e0/3.e0);
+      H = MAX( (double)1e-8, Hstart );
+      Hmin = MAX(Hmin,uround*(Tnext-T));
+      Hmax = MIN(Hmax,Tnext-T);
+      Tplus = T;
+      IsReject = 0;
+      Naccept  = 0;
+      Nreject  = 0;
+      nfcn     = 0;
+      njac     = 0;
+
+
+/*  === Starting the time loop ===      */
+
+while(T<Tnext)
+{
+ ten :
+       Tplus = T + H;
+
+       if ( Tplus > Tnext )
+	{
+          H = Tnext - T;
+          Tplus = Tnext;
+        }
+
+       (*forjac)(NVAR, T, y,JAC );               
+
+       njac = njac+1;
+       ghinv = (double)-2.0e0/H;
+	for(j=0;j<NVAR;j++)
+	    JAC[LU_DIAG[j]] = JAC[LU_DIAG[j]] + ghinv;  
+	
+
+ ier = KppDecomp (JAC);
+
+ if ( ier != 0)
+ {
+  if( H > Hmin ) 
+  {
+   H = (double)5.0e-1*H; 
+   goto ten;	   
+  }
+  else
+   printf("IER <> 0 , H = %d", H);
+ }/* main ier if ends*/	
+		
+
+	(*forfun)(NVAR , T, y, F1 ) ;              
+
+
+/*  ====== NONAUTONOMOUS CASE ===============         */
+
+        if( Autonomous == 0)
+	{
+         tau = DSQRT( uround*MAX( (double)1.0e-5, dabs(T) ) );    
+  	 (*forfun)(NVAR , T+tau , y ,K2 ); 
+         nfcn=nfcn+1;
+	 for(j=0;j<NVAR;j++)
+	     K3[j] = ( K2[j]-F1[j] )/tau;          	  
+
+  
+/*  ----- STAGE 1 (NONAUTONOMOUS) -----	*/	
+         x1 = (double)0.5*H;
+
+	 for(j=0;j<NVAR;j++)
+	     K1[j] =  F1[j] + x1*K3[j]; 
+	 
+         KppSolve (JAC, K1);
+
+/*  ----- STAGE 2 (NONAUTONOMOUS) -----	*/
+
+	 x1 = (double)4.e0/H;
+
+	 x2 = (double)1.5e0*H;
+
+	 for(j=0;j<NVAR;j++)
+	     K2[j] = F1[j] - x1*K1[j] + x2*K3[j];     
+
+	 KppSolve (JAC, K2);
+	}/* if nonautonomous case ends here */
+
+
+/*  ====== AUTONOMOUS CASE ===============	*/
+       else
+       {
+/*  ----- STAGE 1 (AUTONOMOUS) ----- 		*/
+	 for(j=0;j<NVAR;j++)
+	     K1[j] =  F1[j];  
+	 
+         KppSolve (JAC, K1);
+      
+/*  ----- STAGE 2 (AUTONOMOUS) -----	*/
+
+	x1 = (double)4.e0/H;
+
+	for(j=0;j<NVAR;j++)
+	    K2[j] = F1[j] - x1*K1[j];  	 
+	
+	KppSolve(JAC,K2);
+	
+       }   /* else autonomous case ends here */
+
+       
+/*  ----- STAGE 3 -----	*/
+
+        for(j=0;j<NVAR;j++)
+            ynew[j] = y[j] - 2.0e0*K1[j];    
+       
+
+        (*forfun)(NVAR , T+H , ynew ,F1 ); 
+	 
+        nfcn=nfcn+1;       
+     
+        for(j=0;j<NVAR;j++)
+            K3[j] = F1[j] + ( -K1[j] + K2[j] )/H;	
+      	
+        KppSolve (JAC, K3);
+         
+
+
+/*  ----- STAGE 4 -----	*/
+
+	for(j=0;j<NVAR;j++)
+	    ynew[j] = y[j] - 2.0e0*K1[j] - K3[j];    
+	
+	(*forfun)(NVAR, T+H , ynew, F1 );	
+	 
+	nfcn=nfcn+1;
+	for(j=0;j<NVAR;j++)
+	    K4[j] = F1[j] + ( -K1[j] + K2[j] - c43*K3[j]  )/H;  
+	  
+	KppSolve (JAC, K4);
+
+
+/*  ---- The Solution ---	*/
+	for(j=0;j<NVAR;j++)
+	    ynew[j] = y[j] - (double)2.0e0*K1[j] - K3[j] - K4[j];  
+	
+
+
+/*  ====== Error estimation ========	*/
+
+	ERR=(double)0.e0; 
+
+	for(i=0;i<NVAR;i++)
+	{
+	 ytol = AbsTol[i] + RelTol[i]*dabs(ynew[i]);
+	 ERR = (double)(ERR + pow( K4[i]/ytol,2 ));     
+	}
+
+        ERR = MAX( uround, DSQRT( ERR/NVAR ) );
+	    
+/*  ======= Choose the stepsize ===============================	*/
+
+        factor = (double)0.9/pow(ERR,1.e0/3.e0);   
+
+	if(IsReject == 1)
+	   facmax = (double)1.0;
+	else
+	   facmax = (double)10.0;
+	
+        factor =(double) MAX( 1.0e-1, MIN(factor,facmax) );    
+
+        Hold = H;
+        H = (double)MIN( Hmax, MAX(Hmin,factor*H) );                 
+
+
+/*  ======= Rejected/Accepted Step ============================	*/
+
+	if( (ERR>1) && (Hold>Hmin) )
+	{
+	 IsReject = 1;
+	 Nreject = Nreject + 1;
+	}		
+	else
+	{
+	 IsReject = 0;
+	
+ 	 for(i=0;i<NVAR;i++)
+	 {
+	  y[i] = ynew[i];
+	 }
+	 T = Tplus;
+	 Naccept = Naccept+1;    
+	} /* 	  else should end here */
+
+
+/*  ======= End of the time loop ===============================	*/
+
+
+  }/*      while loop (T < Tnext) ends here    */
+
+    
+      
+/*  ======= Output Information =================================	*/
+
+      INFO[1] = nfcn;
+      INFO[2] = njac;
+      INFO[3] = Naccept;
+      INFO[4] = Nreject;                   
+  	
+      return 0; 	
+      
+ 
+} /* function rodas ends here */
+  
+
+ 
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/rodas3.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/rodas3.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/rodas3.def	(revision 2696)
@@ -0,0 +1,55 @@
+ 
+#FUNCTION AGGREGATE
+#JACOBIAN SPARSE_LU_ROW
+
+#DOUBLE ON 
+#INTFILE rodas3
+
+#INLINE F77_DECL_INT
+      INTEGER Autonomous
+      COMMON /INTGDATA/ Autonomous
+      REAL*8 STEPSTART
+      COMMON /GDATA/ STEPSTART
+#ENDINLINE
+
+#INLINE F77_INIT_INT
+        STEPMIN=0.0001
+        STEPMAX=3600.
+        Autonomous = 0
+        STEPSTART=STEPMIN
+#ENDINLINE
+
+
+#INLINE F90_DECL_INT
+      INTEGER :: Autonomous
+      DOUBLE PRECISION :: STEPSTART
+#ENDINLINE
+
+#INLINE F90_INIT_INT
+        STEPMIN=1.e-4
+        STEPMAX=3600.
+        Autonomous = 0
+        STEPSTART=STEPMIN
+#ENDINLINE
+
+
+#INLINE C_DECL_INT
+extern int Autonomous;
+extern double STEPSTART;
+#ENDINLINE
+
+#INLINE C_DATA_INT
+int Autonomous;
+double STEPSTART;
+#ENDINLINE
+
+
+
+#INLINE C_INIT_INT
+        STEPMIN=0.0001;
+        STEPMAX=3600.0;
+        Autonomous = 0;
+        STEPSTART=STEPMIN;
+#ENDINLINE
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/rodas3.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/rodas3.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/rodas3.f	(revision 2696)
@@ -0,0 +1,271 @@
+      SUBROUTINE INTEGRATE( TIN, TOUT )
+
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+
+C TIN - Start Time          
+      KPP_REAL TIN
+C TOUT - End Time
+      KPP_REAL TOUT
+
+      INTEGER    INFO(5)
+
+      EXTERNAL   FUNC_CHEM, JAC_CHEM
+
+      INFO(1) = Autonomous
+        CALL RODAS3(NVAR,TIN,TOUT,STEPMIN,STEPMAX,STEPMIN,
+     +                   VAR,ATOL,RTOL,
+     +                   Info,FUNC_CHEM,JAC_CHEM)
+
+      RETURN
+      END
+
+
+
+      SUBROUTINE RODAS3(N,T,Tnext,Hmin,Hmax,Hstart,
+     +                   y,AbsTol,RelTol,
+     +                   Info,FUNC_CHEM,JAC_CHEM)
+      IMPLICIT NONE
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_sparse.h'
+
+C     Stiffly accurate Rosenbrock 3(2), with 
+C     stiffly accurate embedded formula for error control.  
+C
+C     All the arguments aggree with the KPP syntax.
+C
+C  INPUT ARGUMENTS:
+C     y = Vector of (NVAR) concentrations, contains the
+C         initial values on input
+C     [T, Tnext] = the integration interval
+C     Hmin, Hmax = lower and upper bounds for the selected step-size.
+C          Note that for Step = Hmin the current computed
+C          solution is unconditionally accepted by the error
+C          control mechanism.
+C     AbsTol, RelTol = (NVAR) dimensional vectors of 
+C          componentwise absolute and relative tolerances.
+C     FUNC_CHEM = name of routine of derivatives. KPP syntax.
+C          See the header below.
+C     JAC_CHEM = name of routine that computes the Jacobian, in
+C          sparse format. KPP syntax. See the header below.
+C     Info(1) = 1  for  autonomous   system
+C             = 0  for nonautonomous system 
+C
+C  OUTPUT ARGUMENTS:
+C     y = the values of concentrations at Tend.
+C     T = equals Tend on output.
+C     Info(2) = # of FUNC_CHEM calls.
+C     Info(3) = # of JAC_CHEM calls.
+C     Info(4) = # of accepted steps.
+C     Info(5) = # of rejected steps.
+C    
+C     Adrian Sandu, March 1996
+C     The Center for Global and Regional Environmental Research
+
+      KPP_REAL   K1(NVAR), K2(NVAR), K3(NVAR), K4(NVAR)
+      KPP_REAL   F1(NVAR), JAC(LU_NONZERO)
+      KPP_REAL   Hmin,Hmax,Hnew,Hstart,ghinv,uround
+      KPP_REAL   y(NVAR), ynew(NVAR)
+      KPP_REAL   AbsTol(NVAR), RelTol(NVAR)
+      KPP_REAL   T, Tnext, H, Hold, Tplus
+      KPP_REAL   ERR, factor, facmax
+      KPP_REAL   c43, tau, x1, x2, ytol, elo
+      
+      INTEGER    n,nfcn,njac,Naccept,Nreject,i,j,ier
+      INTEGER    Info(5)
+      LOGICAL    IsReject,Autonomous
+      EXTERNAL   FUNC_CHEM, JAC_CHEM
+
+c     Initialization of counters, etc.
+      Autonomous = Info(1) .EQ. 1
+      uround = 1.d-15
+      c43 = - 8.d0/3.d0 
+      H = DMAX1(1.d-8, Hstart)
+      Hmin = DMAX1(Hmin,uround*(Tnext-T))
+      Hmax = DMIN1(Hmax,Tnext-T)
+      Tplus = T
+      IsReject = .false.
+      Naccept  = 0
+      Nreject  = 0
+      Nfcn     = 0
+      Njac     = 0
+
+
+C === Starting the time loop ===      
+ 10    continue  
+       Tplus = T + H
+       if ( Tplus .gt. Tnext ) then
+          H = Tnext - T
+          Tplus = Tnext
+       end if
+
+       CALL JAC_CHEM(NVAR, T, y, JAC)
+       Njac = Njac+1
+       gHinv = -2.0d0/H
+       do 20 j=1,NVAR
+         JAC(LU_DIAG(j)) = JAC(LU_DIAG(j)) + gHinv
+ 20    continue
+       CALL KppDecomp (JAC, ier)
+
+       if (ier.ne.0) then
+         if ( H.gt.Hmin) then
+            H = 5.0d-1*H
+            go to 10
+         else
+            print *,'IER <> 0, H=',H
+            stop
+         end if      
+       end if  
+       
+       CALL FUNC_CHEM(NVAR, T, y, F1)
+
+C ====== NONAUTONOMOUS CASE ===============
+       IF (.not. Autonomous) THEN
+         tau = DSQRT( uround*DMAX1( 1.0d-5, DABS(T) ) )
+         CALL FUNC_CHEM(NVAR, T+tau, y, K2)
+         nfcn=nfcn+1
+         do 30 j = 1,NVAR
+           K3(j) = ( K2(j)-F1(j) )/tau
+ 30      continue
+ 
+C ----- STAGE 1 (NONAUTONOMOUS) -----
+         x1 = 0.5*H
+         do 40 j = 1,NVAR
+           K1(j) =  F1(j) + x1*K3(j) 
+ 40      continue
+         CALL KppSolve (JAC, K1)
+
+C ----- STAGE 2 (NONAUTONOMOUS) -----
+         x1 = 4.d0/H
+         x2 = 1.5d0*H
+         do 50 j = 1,NVAR
+           K2(j) = F1(j) - x1*K1(j) + x2*K3(j)
+ 50      continue
+         CALL KppSolve (JAC, K2)
+
+C ====== AUTONOMOUS CASE ===============
+       ELSE
+C ----- STAGE 1 (AUTONOMOUS) -----
+         do 60 j = 1,NVAR
+           K1(j) =  F1(j) 
+ 60      continue
+         CALL KppSolve (JAC, K1)
+      
+C ----- STAGE 2 (AUTONOMOUS) -----
+         x1 = 4.d0/H
+         do 70 j = 1,NVAR
+           K2(j) = F1(j) - x1*K1(j) 
+ 70      continue
+         CALL KppSolve (JAC, K2)
+       END IF
+       
+C ----- STAGE 3 -----
+       do 80 j = 1,NVAR
+         ynew(j) = y(j) - 2.0d0*K1(j) 
+ 80    continue
+       CALL FUNC_CHEM(NVAR, T+H, ynew, F1)
+       nfcn=nfcn+1
+       do 90 j = 1,NVAR
+         K3(j) = F1(j) + ( -K1(j) + K2(j) )/H
+ 90    continue
+       CALL KppSolve (JAC, K3)
+
+C ----- STAGE 4 -----
+       do 100 j = 1,NVAR
+         ynew(j) = y(j) - 2.0d0*K1(j) - K3(j)
+ 100   continue
+       CALL FUNC_CHEM(NVAR, T+H, ynew, F1)
+       nfcn=nfcn+1
+       do 110 j = 1,NVAR
+         K4(j) = F1(j) + ( -K1(j) + K2(j) - C43*K3(j)  )/H
+ 110   continue
+       CALL KppSolve (JAC, K4)
+
+C ---- The Solution ---
+
+       do 120 j = 1,NVAR
+         ynew(j) = y(j) - 2.0d0*K1(j) - K3(j) - K4(j) 
+ 120   continue
+
+
+C ====== Error estimation ========
+
+        ERR=0.d0
+        do 130 i=1,NVAR
+           ytol = AbsTol(i) + RelTol(i)*DABS(ynew(i))
+           ERR = ERR + ( K4(i)/ytol )**2
+ 130    continue      
+        ERR = DMAX1( uround, DSQRT( ERR/NVAR ) )
+
+C ======= Choose the stepsize ===============================
+        elo    = 3.0D0 ! estimator local order
+        factor = DMAX1(2.0D-1,DMIN1(6.0D0,ERR**(1.0D0/elo)/.9D0))
+        Hnew   = DMIN1(Hmax,DMAX1(Hmin, H/factor))
+ 
+C ======= Rejected/Accepted Step ============================
+ 
+        IF ( (ERR.gt.1).and.(H.gt.Hmin) ) THEN
+          IsReject = .true.
+	  H = DMIN1(H/10,Hnew)
+          Nreject  = Nreject+1
+        ELSE
+          DO 140 i=1,NVAR
+             y(i)  = ynew(i)
+ 140      CONTINUE
+          T = Tplus
+	  IF (.NOT.IsReject) THEN
+	      H = Hnew   ! Do not increase stepsize if previos step was rejected
+	  END IF    
+          IsReject = .false.
+          Naccept = Naccept+1
+        END IF
+
+
+C ======= End of the time loop ===============================
+      if ( T .lt. Tnext ) go to 10
+ 
+     
+      
+C ======= Output Information =================================
+      Info(2) = Nfcn
+      Info(3) = Njac
+      Info(4) = Naccept
+      Info(5) = Nreject
+      Hstart  = H
+      
+      RETURN 
+      END        
+
+  
+ 
+      SUBROUTINE FUNC_CHEM(N, T, Y, P)
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+      INTEGER N
+      KPP_REAL   T, Told
+      KPP_REAL   Y(NVAR), P(NVAR)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Fun( Y, FIX, RCONST, P )
+      TIME = Told
+      RETURN
+      END
+
+ 
+      SUBROUTINE JAC_CHEM(N, T, Y, J)
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+      INTEGER N
+      KPP_REAL   Told, T
+      KPP_REAL   Y(NVAR), J(LU_NONZERO)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Jac_SP( Y, FIX, RCONST, J )
+      TIME = Told
+      RETURN
+      END                                                                                                                 
+  
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/rodas3_ddm.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/rodas3_ddm.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/rodas3_ddm.def	(revision 2696)
@@ -0,0 +1,52 @@
+ 
+#FUNCTION AGGREGATE
+#JACOBIAN SPARSE_LU_ROW
+
+#DOUBLE ON 
+#INTFILE rodas3_ddm
+#HESSIAN ON 
+
+#INLINE F77_DECL_INT
+      INTEGER Autonomous
+      COMMON /INTGDATA/ Autonomous
+      REAL*8 STEPSTART
+      COMMON /GDATA/ STEPSTART
+#ENDINLINE
+
+#INLINE F77_INIT_INT
+        STEPMIN=1.0E-4
+        STEPMAX=3600.
+        Autonomous = 0
+        STEPSTART=STEPMIN
+#ENDINLINE
+
+
+#INLINE F90_DECL_INT
+      INTEGER :: Autonomous
+      DOUBLE PRECISION :: STEPSTART
+#ENDINLINE
+
+#INLINE F90_INIT_INT
+        STEPMIN=1.e-4
+        STEPMAX=3600.
+        Autonomous = 0
+        STEPSTART=STEPMIN
+#ENDINLINE
+
+
+#INLINE C_DECL_INT
+    extern int Autonomous;
+    extern double STEPSTART;
+#ENDINLINE
+ 
+#INLINE C_DATA_INT
+    int Autonomous;
+    double STEPSTART;
+#ENDINLINE
+
+#INLINE C_INIT_INT
+        STEPMIN = 0.0001;
+        STEPMAX = 3600.0;
+        Autonomous = 0;
+        STEPSTART = STEPMIN;
+#ENDINLINE                                                                     
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/rodas3_ddm.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/rodas3_ddm.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/rodas3_ddm.f	(revision 2696)
@@ -0,0 +1,592 @@
+      SUBROUTINE INTEGRATE( NSENSIT, Y, TIN, TOUT )
+ 
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+
+C TIN - Start Time
+      KPP_REAL TIN
+C TOUT - End Time
+      KPP_REAL TOUT
+C Y - Concentrations and Sensitivities
+      KPP_REAL Y(NVAR*(NSENSIT+1))
+C ---  Note: Y contains: (1:NVAR) concentrations, followed by
+C ---                   (1:NVAR) sensitivities w.r.t. first parameter, followed by
+C ---                   etc.,  followed by          
+C ---                   (1:NVAR) sensitivities w.r.t. NSENSIT's parameter
+
+      INTEGER    INFO(5)
+
+      EXTERNAL FUNC_CHEM, JAC_CHEM
+
+      INFO(1) = Autonomous
+ 
+      CALL RODAS3_DDM(NVAR,NSENSIT,TIN,TOUT,STEPMIN,STEPMAX,
+     +                   STEPMIN,Y,ATOL,RTOL,
+     +                   Info,FUNC_CHEM,JAC_CHEM)
+ 
+
+      RETURN
+      END
+  
+
+ 
+ 
+      SUBROUTINE RODAS3_DDM(N,NSENSIT,T,Tnext,Hmin,Hmax,Hstart,
+     +                   y,AbsTol,RelTol,
+     +                   Info,FUNC_CHEM,JAC_CHEM)
+     
+      IMPLICIT NONE
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'                                                                                                  
+      INCLUDE 'KPP_ROOT_sparse.h'                                                                                                  
+C
+C       Stiffly accurate Rosenbrock 3(2), with 
+C       stiffly accurate embedded formula for error control.  
+C
+C Direct decoupled computation of sensitivities.
+C The global variable DDMTYPE distinguishes between:
+C      DDMTYPE = 0 : sensitivities w.r.t. initial values
+C      DDMTYPE = 1 : sensitivities w.r.t. parameters
+C
+C  INPUT ARGUMENTS:
+C     y = Vector of:   (1:NVAR) concentrations, followed by
+C                      (1:NVAR) sensitivities w.r.t. first parameter, followed by
+C                       etc.,  followed by          
+C                      (1:NVAR) sensitivities w.r.t. NSENSIT's parameter
+C         (y contains initial values at input, final values at output)
+C     [T, Tnext] = the integration interval
+C     Hmin, Hmax = lower and upper bounds for the selected step-size.
+C          Note that for Step = Hmin the current computed
+C          solution is unconditionally accepted by the error
+C          control mechanism.
+C     AbsTol, RelTol = (NVAR) dimensional vectors of
+C          componentwise absolute and relative tolerances.
+C     FUNC_CHEM = name of routine of derivatives. KPP syntax.
+C          See the header below.
+C     JAC_CHEM = name of routine that computes the Jacobian, in
+C          sparse format. KPP syntax. See the header below.
+C     Info(1) = 1  for  Autonomous   system
+C             = 0  for nonAutonomous system
+C
+C  OUTPUT ARGUMENTS:
+C     y = the values of concentrations and sensitivities at Tend.
+C     T = equals TENDon output.
+C     Info(2) = # of FUNC_CHEM CALLs.
+C     Info(3) = # of JAC_CHEM CALLs.
+C     Info(4) = # of accepted steps.
+C     Info(5) = # of rejected steps.
+C 
+C    Adrian Sandu, December 2001
+C 
+
+      INTEGER      NSENSIT
+      KPP_REAL y(NVAR*(NSENSIT+1)), ynew(NVAR*(NSENSIT+1))
+      KPP_REAL K1(NVAR*(NSENSIT+1))
+      KPP_REAL K2(NVAR*(NSENSIT+1))
+      KPP_REAL K3(NVAR*(NSENSIT+1))
+      KPP_REAL K4(NVAR*(NSENSIT+1))
+      KPP_REAL Fv(NVAR), Hv(NVAR)
+      KPP_REAL DFDT(NVAR*(NSENSIT+1))
+      KPP_REAL DJDP(NVAR*NSENSIT)
+      KPP_REAL DFDP(NVAR*NSENSIT), DFDPDT(NVAR*NSENSIT)
+      KPP_REAL JAC(LU_NONZERO), AJAC(LU_NONZERO)
+      KPP_REAL DJDT(LU_NONZERO)
+      KPP_REAL HESS(NHESS)
+      KPP_REAL Hmin,Hmax,Hstart,ghinv,uround
+      KPP_REAL AbsTol(NVAR), RelTol(NVAR)
+      KPP_REAL T, Tnext, Tplus, H, Hnew, elo
+      KPP_REAL ERR, factor, facmax
+      KPP_REAL w, e, beta1, beta2, beta3, beta4
+      KPP_REAL tau, x1, x2, ytol, dround
+      
+      INTEGER    n,nfcn,njac,Naccept,Nreject,i,j,ier
+      INTEGER    Info(5)
+      LOGICAL    IsReject, Autonomous
+      EXTERNAL    FUNC_CHEM, JAC_CHEM, HESS_CHEM                                                                                                
+
+C   The method coefficients
+      DOUBLE PRECISION gamma, gamma2, gamma3, gamma4
+      PARAMETER ( gamma  =  0.5D+00 )
+      PARAMETER ( gamma2 =  1.5D+00 ) 
+      PARAMETER ( gamma3 =  0.0D+00 ) 
+      PARAMETER ( gamma4 =  0.0D+00 ) 
+      DOUBLE PRECISION a21, a31, a32, a41, a42, a43
+      PARAMETER (  a21 = 0.0D+00  )   
+      PARAMETER (  a31 = 2.0D+00  )   
+      PARAMETER (  a32 = 0.0D+00  )   
+      PARAMETER (  a41 = 2.0D+00  )   
+      PARAMETER (  a42 = 0.0D+00  )   
+      PARAMETER (  a43 = 1.0D+00  )   
+      DOUBLE PRECISION alpha2, alpha3, alpha4
+      PARAMETER (  alpha2  = 0.0D0  )   
+      PARAMETER (  alpha3  = 1.0D0  )   
+      PARAMETER (  alpha4  = 1.0D0  )   
+      DOUBLE PRECISION c21, c31, c32, c41, c42, c43
+      PARAMETER (  c21  =  4.0D0  ) 
+      PARAMETER (  c31  =  1.0D0  ) 
+      PARAMETER (  c32  = -1.0D0  ) 
+      PARAMETER (  c41  =  1.0D0  ) 
+      PARAMETER (  c42  = -1.0D0  ) 
+      PARAMETER (  c43  = -2.666666666666667D0 ) 
+      DOUBLE PRECISION b1, b2, b3, b4
+      PARAMETER (  b1 = 2.0D+00  ) 
+      PARAMETER (  b2 = 0.0D0  ) 
+      PARAMETER (  b3 = 1.0D0  ) 
+      PARAMETER (  b4 = 1.0D0  )  
+      DOUBLE PRECISION d1, d2, d3, d4
+      PARAMETER (  d1 = 0.0D0  ) 
+      PARAMETER (  d2 = 0.0D0  ) 
+      PARAMETER (  d3 = 0.0D0  ) 
+      PARAMETER (  d4 = 1.0D0  )  
+
+
+c     Initialization of counters, etc.
+      Autonomous = Info(1) .EQ. 1
+      uround = 1.d-15
+      dround = DSQRT(uround)
+      IF (Hmax.le.0.D0) THEN
+          Hmax = DABS(Tnext-T)
+      END IF	  
+      H = DMAX1(1.d-8, Hstart)
+      Tplus = T
+      IsReject = .false.
+      Naccept  = 0
+      Nreject  = 0
+      Nfcn     = 0
+      Njac     = 0
+ 
+C === Starting the time loop ===
+ 10    CONTINUE
+  
+       Tplus = T + H
+       IF ( Tplus .gt. Tnext ) THEN
+          H = Tnext - T
+          Tplus = Tnext
+       END IF
+ 
+C              Initial Function, Jacobian, and Hessian Values
+       CALL FUNC_CHEM(NVAR, T, y, Fv)
+       CALL JAC_CHEM(NVAR, T, y, JAC)
+       CALL HESS_CHEM( NVAR, T, y, HESS )
+       IF (DDMTYPE .EQ. 1) THEN
+          CALL DFUNDPAR(NVAR, NSENSIT, T, y, DFDP)
+       END IF	  
+ 
+C              The time derivatives for non-Autonomous case                                                                                                                            
+       IF (.not. Autonomous) THEN
+         tau = DSIGN(dround*DMAX1( 1.0d0, DABS(T) ), T)
+         CALL FUNC_CHEM(NVAR, T+tau, y, K2)
+         CALL JAC_CHEM(NVAR, T+tau, y, AJAC)
+         nfcn=nfcn+1
+         DO 20 j = 1,NVAR
+           DFDT(j) = ( K2(j)-Fv(j) )/tau
+ 20      CONTINUE
+         DO 30 j = 1,LU_NONZERO
+           DJDT(j) = ( AJAC(j)-JAC(j) )/tau
+ 30      CONTINUE
+         DO 35 i=1,NSENSIT
+	    CALL Jac_SP_Vec (DJDT,y(i*NVAR+1),DFDT(i*NVAR+1))
+ 35      CONTINUE
+       END IF
+ 
+ 11    CONTINUE  ! From here we restart after a rejected step
+ 
+C              Form the Prediction matrix and compute its LU factorization                                                                                                                           
+       Njac = Njac+1
+       ghinv = 1.0d0/(gamma*H)
+       DO 40 j=1,LU_NONZERO
+         AJAC(j) = -JAC(j)
+ 40    CONTINUE
+       DO 50 j=1,NVAR
+         AJAC(LU_DIAG(j)) = AJAC(LU_DIAG(j)) + ghinv
+ 50    CONTINUE
+       CALL KppDecomp (AJAC, ier)
+C 
+       IF (ier.ne.0) THEN
+         IF ( H.gt.Hmin) THEN
+            H = 5.0d-1*H
+            GO TO 10
+         ELSE
+            PRINT *,'ROS4: Singular factorization at T=',T,'; H=',H
+            STOP
+         END IF
+       END IF
+                                                                                                                            
+C ------------ STAGE 1-------------------------
+       DO 60 j = 1,NVAR
+         K1(j) =  Fv(j)
+ 60    CONTINUE
+       IF (.NOT. Autonomous) THEN
+          beta1 = H*gamma
+	  DO 70 j=1,NVAR
+	    K1(j) = K1(j) + beta1*DFDT(j)	    
+ 70	  CONTINUE
+       END IF
+       CALL KppSolve (AJAC, K1)
+C               --- If  derivative w.r.t. parameters
+       IF (DDMTYPE .EQ. 1) THEN
+	  CALL DJACDPAR(NVAR, NSENSIT, T, y, K1(1), DJDP)
+       END IF
+C               --- End of derivative w.r.t. parameters	  	 
+
+       DO 100 i=1,NSENSIT
+	  CALL Jac_SP_Vec (JAC,y(i*NVAR+1),K1(i*NVAR+1))
+	  CALL Hess_Vec ( HESS, y(i*NVAR+1), K1(1), Hv )
+	  DO 80 j=1,NVAR
+	    K1(i*NVAR+j) = K1(i*NVAR+j) + Hv(j)
+ 80	  CONTINUE	
+          IF (.NOT. Autonomous) THEN
+	    DO 90 j=1,NVAR
+	      K1(i*NVAR+j) = K1(i*NVAR+j) + beta1*DFDT(i*NVAR+j)
+ 90         CONTINUE
+          END IF
+C               --- If  derivative w.r.t. parameters
+	  IF (DDMTYPE .EQ. 1) THEN
+            DO 95 j = 1,NVAR
+	       K1(i*NVAR+j) = K1(i*NVAR+j) + DFDP((i-1)*NVAR+j) 
+     &                           + DJDP((i-1)*NVAR+j)
+ 95        CONTINUE	  
+	  END IF
+C               --- End of derivative w.r.t. parameters	  	 
+          CALL KppSolve (AJAC, K1(i*NVAR+1))
+ 100   CONTINUE
+ 
+C ----------- STAGE 2 -------------------------
+C Note: uses the same function values as Stage 1
+C       DO 110 j = 1,NVAR*(NSENSIT+1)
+C         ynew(j) = y(j) + a21*K1(j)
+C 110   CONTINUE
+C       CALL FUNC_CHEM(NVAR, T+alpha2*H, ynew, Fv)
+C       IF (DDMTYPE .EQ. 1) THEN
+C         CALL DFUNDPAR(NVAR, NSENSIT, T+alpha2*H, ynew, DFDP)
+C       END IF	 
+C       nfcn=nfcn+1
+       beta1 = c21/H
+       DO 120 j = 1,NVAR
+         K2(j) = Fv(j) + beta1*K1(j)
+ 120   CONTINUE
+       IF (.NOT. Autonomous) THEN
+         beta2 = H*gamma2
+	 DO 130 j=1,NVAR
+	    K2(j) = K2(j) + beta2*DFDT(j)	    
+ 130     CONTINUE
+       END IF
+       CALL KppSolve (AJAC, K2)
+C               --- If  derivative w.r.t. parameters
+       IF (DDMTYPE .EQ. 1) THEN
+	  CALL DJACDPAR(NVAR, NSENSIT, T, y, K2(1), DJDP)
+       END IF
+C               --- End of derivative w.r.t. parameters	  	 
+       
+       CALL JAC_CHEM(NVAR, T+alpha2*H, ynew, JAC)
+       njac=njac+1
+       DO 160 i=1,NSENSIT
+	  CALL Jac_SP_Vec (JAC,ynew(i*NVAR+1),K2(i*NVAR+1))
+	  CALL Hess_Vec ( HESS, y(i*NVAR+1), K2(1), Hv )
+          DO 140 j = 1,NVAR
+	     K2(i*NVAR+j) = K2(i*NVAR+j) + beta1*K1(i*NVAR+j) 
+     &                          + Hv(j)
+ 140      CONTINUE	
+          IF (.NOT. Autonomous) THEN
+	     DO 150 j=1,NVAR
+	        K2(i*NVAR+j) = K2(i*NVAR+j) + beta2*DFDT(i*NVAR+j)
+ 150         CONTINUE
+          END IF
+C               --- If  derivative w.r.t. parameters
+	  IF (DDMTYPE .EQ. 1) THEN
+            DO 155 j = 1,NVAR
+	       K2(i*NVAR+j) = K2(i*NVAR+j) + DFDP((i-1)*NVAR+j) 
+     &                           + DJDP((i-1)*NVAR+j)
+ 155        CONTINUE	  
+	  END IF
+C               --- End of derivative w.r.t. parameters	  	 
+          CALL KppSolve (AJAC, K2(i*NVAR+1))
+ 160   CONTINUE
+ 
+ 
+C ------------ STAGE 3 -------------------------
+       DO 170 j = 1,NVAR*(NSENSIT+1)
+         ynew(j) = y(j) + a31*K1(j) + a32*K2(j)
+ 170   CONTINUE
+       CALL FUNC_CHEM(NVAR, T+alpha3*H, ynew, Fv)
+       IF (DDMTYPE .EQ. 1) THEN
+         CALL DFUNDPAR(NVAR, NSENSIT, T+alpha3*H, ynew, DFDP)
+       END IF	    
+       nfcn=nfcn+1
+       beta1 = c31/H
+       beta2 = c32/H
+       DO 180 j = 1,NVAR
+         K3(j) = Fv(j) + beta1*K1(j) + beta2*K2(j)
+ 180   CONTINUE
+       IF (.NOT. Autonomous) THEN
+         beta3 = H*gamma3
+	 DO 190 j=1,NVAR
+	    K3(j) = K3(j) + beta3*DFDT(j)	    
+ 190     CONTINUE
+       END IF
+       CALL KppSolve (AJAC, K3)
+C               --- If  derivative w.r.t. parameters
+       IF (DDMTYPE .EQ. 1) THEN
+	  CALL DJACDPAR(NVAR, NSENSIT, T, y, K3(1), DJDP)
+       END IF
+C               --- End of derivative w.r.t. parameters	  	 
+       
+       CALL JAC_CHEM(NVAR, T+alpha3*H, ynew, JAC)
+       njac=njac+1
+       DO 220 i=1,NSENSIT
+	  CALL Jac_SP_Vec (JAC,ynew(i*NVAR+1),K3(i*NVAR+1))
+	  CALL Hess_Vec ( HESS, y(i*NVAR+1), K3(1), Hv )
+          DO 200 j = 1,NVAR
+	       K3(i*NVAR+j) = K3(i*NVAR+j) + beta1*K1(i*NVAR+j) 
+     &                       + beta2*K2(i*NVAR+j) + Hv(j)
+ 200      CONTINUE	 
+          IF (.NOT. Autonomous) THEN
+	     DO 210 j=1,NVAR
+	        K3(i*NVAR+j) = K3(i*NVAR+j) + beta3*DFDT(i*NVAR+j)
+ 210         CONTINUE
+          END IF
+C               --- If  derivative w.r.t. parameters
+	  IF (DDMTYPE .EQ. 1) THEN
+            DO 215 j = 1,NVAR
+	       K3(i*NVAR+j) = K3(i*NVAR+j) + DFDP((i-1)*NVAR+j) 
+     &                           + DJDP((i-1)*NVAR+j)
+ 215        CONTINUE	  
+	  END IF	 
+C               --- End of derivative w.r.t. parameters
+          CALL KppSolve (AJAC, K3(i*NVAR+1))
+ 220   CONTINUE
+ 
+C ------------ STAGE 4 -------------------------
+       DO 225 j = 1,NVAR*(NSENSIT+1)
+         ynew(j) = y(j) + a41*K1(j) + a42*K2(j) + a43*K3(j)
+ 225   CONTINUE
+       CALL FUNC_CHEM(NVAR, T+alpha4*H, ynew, Fv)
+       IF (DDMTYPE .EQ. 1) THEN
+         CALL DFUNDPAR(NVAR, NSENSIT, T+alpha4*H, ynew, DFDP)
+       END IF	    
+       nfcn=nfcn+1
+       beta1 = c41/H
+       beta2 = c42/H
+       beta3 = c43/H
+       DO 230 j = 1,NVAR
+         K4(j) = Fv(j) + beta1*K1(j) + beta2*K2(j) + beta3*K3(j)
+ 230   CONTINUE
+       IF (.NOT. Autonomous) THEN
+          beta4 = H*gamma4
+	  DO 240 j=1,NVAR
+	    K4(j) = K4(j) + beta4*DFDT(j)
+ 240      CONTINUE
+       END IF
+       CALL KppSolve (AJAC, K4)
+C               --- If  derivative w.r.t. parameters
+       IF (DDMTYPE .EQ. 1) THEN
+	  CALL DJACDPAR(NVAR, NSENSIT, T, y, K4(1), DJDP)
+       END IF
+C               --- End of derivative w.r.t. parameters	  	 
+       
+       njac=njac+1
+       DO 270 i=1,NSENSIT
+	  CALL Jac_SP_Vec (JAC,ynew(i*NVAR+1),K4(i*NVAR+1))
+	  CALL Hess_Vec ( HESS, y(i*NVAR+1), K4(1), Hv )
+          DO 250 j = 1,NVAR
+	       K4(i*NVAR+j) = K4(i*NVAR+j) + beta1*K1(i*NVAR+j) 
+     &                       + beta2*K2(i*NVAR+j) + beta3*K3(i*NVAR+j)
+     &                       + Hv(j)
+ 250      CONTINUE
+          IF (.NOT. Autonomous) THEN
+	     DO 260 j=1,NVAR
+	        K4(i*NVAR+j) = K4(i*NVAR+j) + beta4*DFDT(i*NVAR+j)
+ 260         CONTINUE
+          END IF
+C --- If  derivative w.r.t. parameters
+	  IF (DDMTYPE .EQ. 1) THEN
+            DO 265 j = 1,NVAR
+	       K4(i*NVAR+j) = K4(i*NVAR+j) + DFDP((i-1)*NVAR+j) 
+     &                           + DJDP((i-1)*NVAR+j)
+ 265        CONTINUE	  
+	  END IF	 
+          CALL KppSolve (AJAC, K4(i*NVAR+1))
+ 270   CONTINUE
+
+
+C ---- The Solution ---
+       DO 280 j = 1,NVAR*(NSENSIT+1)
+C         ynew(j) = y(j) + b1*K1(j) + b2*K2(j) + b3*K3(j) + b4*K4(j)
+         ynew(j) = y(j) + 2*K1(j) + K3(j) + K4(j)
+ 280   CONTINUE
+ 
+ 
+C ====== Error estimation -- can be extended to control sensitivities too ========
+ 
+        ERR = 0.d0
+        DO 290 i=1,NVAR
+           w = AbsTol(i) + RelTol(i)*DMAX1(DABS(ynew(i)),DABS(y(i)))
+C	   e = d1*K1(i) + d2*K2(i) + d3*K3(i) + d4*K4(i)
+	   e = K4(i)
+           ERR = ERR + ( e/w )**2
+ 290    CONTINUE
+        ERR = DMAX1( uround, DSQRT( ERR/NVAR ) )
+ 
+C ======= Choose the stepsize ===============================
+ 
+        elo    = 3.0D0 ! estimator local order
+        factor = DMAX1(2.0D-1,DMIN1(6.0D0,ERR**(1.0D0/elo)/.9D0))
+        Hnew   = DMIN1(Hmax,DMAX1(Hmin, H/factor))
+ 
+C ======= Rejected/Accepted Step ============================
+ 
+        IF ( (ERR.gt.1).and.(H.gt.Hmin) ) THEN
+          IsReject = .true.
+	  H = DMIN1(H/10,Hnew)
+          Nreject  = Nreject+1
+        ELSE
+          DO 300 i=1,NVAR*(NSENSIT+1)
+             y(i)  = ynew(i)
+ 300      CONTINUE
+          T = Tplus
+	  IF (.NOT.IsReject) THEN
+	      H = Hnew   ! Do not increase stepsize if previos step was rejected
+	  END IF    
+          IsReject = .false.
+          Naccept = Naccept+1
+        END IF
+ 
+C ======= End of the time loop ===============================
+      IF ( T .lt. Tnext ) GO TO 10
+ 
+ 
+ 
+C ======= Output Information =================================
+      Info(2) = Nfcn
+      Info(3) = Njac
+      Info(4) = Naccept
+      Info(5) = Nreject
+      Hstart  = H
+ 
+      RETURN
+      END
+ 
+ 
+ 
+      SUBROUTINE FUNC_CHEM(N, T, Y, P)
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+      INTEGER N
+      KPP_REAL   T, Told
+      KPP_REAL   Y(NVAR), P(NVAR)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Fun( Y,  FIX, RCONST, P )
+      TIME = Told
+      RETURN
+      END
+
+ 
+      SUBROUTINE DFUNDPAR(N, NSENSIT, T, Y, P)
+C ---  Computes the partial derivatives of FUNC_CHEM w.r.t. parameters 
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+C ---  NCOEFF, JCOEFF useful for derivatives w.r.t. rate coefficients    
+      INTEGER N
+      INTEGER NCOEFF, JCOEFF(NREACT)
+      COMMON /DDMRCOEFF/ NCOEFF, JCOEFF
+      
+      KPP_REAL   T, Told
+      KPP_REAL   Y(NVAR), P(NVAR*NSENSIT)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+C
+      IF (DDMTYPE .EQ. 0) THEN
+C ---  Note: the values below are for sensitivities w.r.t. initial values;
+C ---       they may have to be changed for other applications
+        DO j=1,NSENSIT
+          DO i=1,NVAR
+	    P(i+NVAR*(j-1)) = 0.0D0
+	  END DO
+        END DO
+      ELSE	
+C ---  Example: the call below is for sensitivities w.r.t. rate coefficients;
+C ---       JCOEFF(1:NSENSIT) are the indices of the NSENSIT rate coefficients
+C ---       w.r.t. which one differentiates
+        CALL dFun_dRcoeff( Y,  FIX, NCOEFF, JCOEFF, P )
+      END IF
+      TIME = Told
+      RETURN
+      END
+ 
+      SUBROUTINE JAC_CHEM(N, T, Y, J)
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+      INTEGER N
+      KPP_REAL   Told, T
+      KPP_REAL   Y(NVAR), J(LU_NONZERO)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Jac_SP( Y,  FIX, RCONST, J )
+      TIME = Told
+      RETURN
+      END                                                                                                                 
+
+ 
+      SUBROUTINE DJACDPAR(N, NSENSIT, T, Y, U, P)
+C ---  Computes the partial derivatives of JAC w.r.t. parameters times user vector U
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+C ---  NCOEFF, JCOEFF useful for derivatives w.r.t. rate coefficients    
+      INTEGER NCOEFF, JCOEFF(NREACT)
+      COMMON /DDMRCOEFF/ NCOEFF, JCOEFF
+      
+      INTEGER N
+      KPP_REAL   T, Told
+      KPP_REAL   Y(NVAR), U(NVAR)
+      KPP_REAL   P(NVAR*NSENSIT)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+C
+      IF (DDMTYPE .EQ. 0) THEN
+C ---  Note: the values below are for sensitivities w.r.t. initial values;
+C ---       they may have to be changed for other applications
+        DO j=1,NSENSIT
+          DO i=1,NVAR
+	    P(i+NVAR*(j-1)) = 0.0D0
+	  END DO
+        END DO
+      ELSE	
+C ---  Example: the call below is for sensitivities w.r.t. rate coefficients;
+C ---       JCOEFF(1:NSENSIT) are the indices of the NSENSIT rate coefficients
+C ---       w.r.t. which one differentiates
+        CALL dJac_dRcoeff( Y,  FIX, U, NCOEFF, JCOEFF, P )
+      END IF
+      TIME = Told
+      RETURN
+      END
+
+ 
+      SUBROUTINE HESS_CHEM(N, T, Y, HESS)
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+      INTEGER N
+      KPP_REAL   Told, T
+      KPP_REAL   Y(NVAR), HESS(NHESS)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Hessian( Y,  FIX, RCONST, HESS )
+      TIME = Told
+      RETURN
+      END                                                                                                                 
+
+
+
+
+
+                                                                                                                            
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/ros1.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/ros1.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/ros1.def	(revision 2696)
@@ -0,0 +1,50 @@
+ 
+#FUNCTION AGGREGATE
+#JACOBIAN SPARSE_LU_ROW
+
+#DOUBLE ON 
+#INTFILE ros1
+
+#INLINE F77_DECL_INT
+      INTEGER Autonomous
+      COMMON /INTGDATA/ Autonomous
+      REAL*8 STEPSTART
+      COMMON /GDATA/ STEPSTART
+#ENDINLINE
+
+#INLINE F77_INIT_INT
+        STEPMIN=30.0
+        STEPMAX=30.0
+        Autonomous = 0
+        STEPSTART=STEPMIN
+#ENDINLINE
+
+
+#INLINE F90_DECL_INT
+      INTEGER :: Autonomous
+      DOUBLE PRECISION :: STEPSTART
+#ENDINLINE
+
+#INLINE F90_INIT_INT
+        STEPMIN=30.0
+        STEPMAX=30.0
+        Autonomous = 0
+        STEPSTART=STEPMIN
+#ENDINLINE
+
+#INLINE C_DECL_INT
+    extern int Autonomous;
+    extern double STEPSTART;
+#ENDINLINE
+ 
+#INLINE C_DATA_INT
+int Autonomous;
+double STEPSTART;
+#ENDINLINE
+
+#INLINE C_INIT_INT
+        STEPMIN = 30.0;
+        STEPMAX = 30.0;
+        Autonomous = 0;
+        STEPSTART = STEPMIN;
+#ENDINLINE                                                                     
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/ros1.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/ros1.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/ros1.f	(revision 2696)
@@ -0,0 +1,166 @@
+      SUBROUTINE INTEGRATE( TIN, TOUT )
+ 
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+
+C TIN - Start Time
+      KPP_REAL TIN
+C TOUT - End Time
+      KPP_REAL TOUT
+
+      INTEGER    INFO(5)
+
+      EXTERNAL FUNC_CHEM, JAC_CHEM
+
+      INFO(1) = Autonomous
+ 
+      CALL ROS1(NVAR,TIN,TOUT,STEPMIN,VAR,
+     +                   Info,FUNC_CHEM,JAC_CHEM)
+ 
+
+      RETURN
+      END
+  
+
+ 
+ 
+      SUBROUTINE ROS1(N,T,Tnext,Hstart,
+     +                   y,Info,FUNC_CHEM,JAC_CHEM)
+     
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_sparse.h'                                                                                                  
+C
+C  Linearly Implicit Euler
+C  A method of theoretical interest but of no practical value
+C
+C  INPUT ARGUMENTS:
+C     y = Vector of (NVAR) concentrations, contains the
+C         initial values on input
+C     [T, Tnext] = the integration interval
+C     Hmin, Hmax = lower and upper bounds for the selected step-size.
+C          Note that for Step = Hmin the current computed
+C          solution is unconditionally accepted by the error
+C          control mechanism.
+C     AbsTol, RelTol = (NVAR) dimensional vectors of
+C          componentwise absolute and relative tolerances.
+C     FUNC_CHEM = name of routine of derivatives. KPP syntax.
+C          See the header below.
+C     JAC_CHEM = name of routine that computes the Jacobian, in
+C          sparse format. KPP syntax. See the header below.
+C     Info(1) = 1  for  Autonomous   system
+C             = 0  for nonAutonomous system
+C
+C  OUTPUT ARGUMENTS:
+C     y = the values of concentrations at Tend.
+C     T = equals TENDon output.
+C     Info(2) = # of FUNC_CHEM CALLs.
+C     Info(3) = # of JAC_CHEM CALLs.
+C     Info(4) = # of accepted steps.
+C     Info(5) = # of rejected steps.
+C     Hstart = The last accepted stepsize
+C 
+C    Adrian Sandu, December 2001
+C 
+      KPP_REAL Fv(NVAR)
+      KPP_REAL JAC(LU_NONZERO)
+      KPP_REAL H, Hstart
+      KPP_REAL y(NVAR)
+      KPP_REAL T, Tnext, Tplus
+      KPP_REAL elo,ghinv,uround
+      
+      INTEGER    n,nfcn,njac,Naccept,Nreject,i,j
+      INTEGER    Info(5)
+      LOGICAL    IsReject, Autonomous
+      EXTERNAL    FUNC_CHEM, JAC_CHEM                                                                                                
+
+
+      H     = Hstart
+      Tplus = T
+      Nfcn  = 0
+      Njac  = 0
+  
+C === Starting the time loop ===
+ 10    CONTINUE
+  
+       Tplus = T + H
+       IF ( Tplus .gt. Tnext ) THEN
+          H = Tnext - T
+          Tplus = Tnext
+       END IF
+ 
+C              Initial Function and Jacobian values                                                                                                                            
+       CALL FUNC_CHEM(NVAR, T, y, Fv)
+       Nfcn = Nfcn+1
+       CALL JAC_CHEM(NVAR, T, y, JAC)
+       Njac = Njac+1
+ 
+C              Form the Prediction matrix and compute its LU factorization                                                                                                                           
+       DO 40 j=1,NVAR
+         JAC(LU_DIAG(j)) = JAC(LU_DIAG(j)) - 1.0d0/H
+ 40    CONTINUE
+       CALL KppDecomp (JAC, ier)
+C 
+       IF (ier.ne.0) THEN
+          PRINT *,'ROS1: Singular factorization at T=',T,'; H=',H
+          STOP
+       END IF
+ 
+C ------------ STAGE 1-------------------------
+       CALL KppSolve (JAC, Fv)
+ 
+C ---- The Solution ---
+       DO 160 j = 1,NVAR
+         y(j) = y(j) - Fv(j) 
+ 160   CONTINUE
+       T = T + H
+ 
+C ======= End of the time loop ===============================
+      IF ( T .lt. Tnext ) GO TO 10
+ 
+C ======= Output Information =================================
+      Info(2) = Nfcn
+      Info(3) = Njac
+      Info(4) = Njac
+      Info(5) = 0
+      Hstart  = H
+ 
+      RETURN
+      END
+ 
+ 
+      SUBROUTINE FUNC_CHEM(N, T, Y, P)
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+      INTEGER N
+      KPP_REAL   T, Told
+      KPP_REAL   Y(NVAR), P(NVAR)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Fun( Y,  FIX, RCONST, P )
+      TIME = Told
+      RETURN
+      END
+
+ 
+      SUBROUTINE JAC_CHEM(N, T, Y, J)
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+      INTEGER N
+      KPP_REAL   Told, T
+      KPP_REAL   Y(NVAR), J(LU_NONZERO)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Jac_SP( Y,  FIX, RCONST, J )
+      TIME = Told
+      RETURN
+      END                                                                                                                 
+
+
+
+
+
+                                                                                                                            
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/ros1_ddm.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/ros1_ddm.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/ros1_ddm.def	(revision 2696)
@@ -0,0 +1,50 @@
+ 
+#FUNCTION AGGREGATE
+#JACOBIAN SPARSE_LU_ROW
+
+#DOUBLE ON 
+#INTFILE ros1_ddm
+
+#INLINE F77_DECL_INT
+      INTEGER Autonomous
+      COMMON /INTGDATA/ Autonomous
+      REAL*8 STEPSTART
+      COMMON /GDATA/ STEPSTART
+#ENDINLINE
+
+#INLINE F77_INIT_INT
+        STEPMIN=30.0
+        STEPMAX=30.0
+        Autonomous = 0
+        STEPSTART=STEPMIN
+#ENDINLINE
+
+#INLINE F90_DECL_INT
+      INTEGER :: Autonomous
+      DOUBLE PRECISION :: STEPSTART
+#ENDINLINE
+
+#INLINE F90_INIT_INT
+        STEPMIN=30.0
+        STEPMAX=30.0
+        Autonomous = 0
+        STEPSTART=STEPMIN
+#ENDINLINE
+
+
+#INLINE C_DECL_INT
+    extern int Autonomous;
+    extern double STEPSTART;
+#ENDINLINE
+ 
+#INLINE C_DATA_INT
+int Autonomous;
+double STEPSTART;
+#ENDINLINE
+
+#INLINE C_INIT_INT
+        STEPMIN = 30.0;
+        STEPMAX = 30.0;
+        Autonomous = 0;
+        STEPSTART = STEPMIN;
+#ENDINLINE                                                                     
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/ros1_ddm.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/ros1_ddm.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/ros1_ddm.f	(revision 2696)
@@ -0,0 +1,300 @@
+      SUBROUTINE INTEGRATE( NSENSIT, Y, TIN, TOUT )
+ 
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+
+      INTEGER   NSENSIT
+C TIN - Start Time
+      KPP_REAL TIN
+C TOUT - End Time
+      KPP_REAL TOUT
+C TOUT - End Time
+      KPP_REAL Y( NVAR*(NSENSIT+1) )
+C ---  Note: Y contains: (1:NVAR) concentrations, followed by
+C ---                   (1:NVAR) sensitivities w.r.t. first parameter, followed by
+C ---                   etc.,  followed by          
+C ---                   (1:NVAR) sensitivities w.r.t. NSENSIT's parameter
+
+      INTEGER    INFO(5)
+
+      EXTERNAL FUNC_CHEM, JAC_CHEM,  HESS_CHEM
+
+      INFO(1) = Autonomous
+ 
+      CALL ROS1_DDM(NVAR,NSENSIT,TIN,TOUT,STEPMIN,Y,
+     +                   Info,FUNC_CHEM,JAC_CHEM,HESS_CHEM)
+ 
+
+      RETURN
+      END
+  
+
+ 
+ 
+      SUBROUTINE ROS1_DDM(N,NSENSIT,T,Tnext,Hstart,
+     +                   y,Info,FUNC_CHEM,JAC_CHEM,HESS_CHEM)
+      IMPLICIT NONE
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_sparse.h'                                                                                                  
+      INCLUDE 'KPP_ROOT_global.h'                                                                                                  
+C
+C  Linearly Implicit Euler with direct-decoupled calculation of sensitivities
+C  A method of theoretical interest but of no practical value
+C
+C The global variable DDMTYPE distinguishes between:
+C      DDMTYPE = 0 : sensitivities w.r.t. initial values
+C      DDMTYPE = 1 : sensitivities w.r.t. parameters
+C
+C  INPUT ARGUMENTS:
+C     y = Vector of:   (1:NVAR) concentrations, followed by
+C                      (1:NVAR) sensitivities w.r.t. first parameter, followed by
+C                       etc.,  followed by          
+C                      (1:NVAR) sensitivities w.r.t. NSENSIT's parameter
+C         (y contains initial values at input, final values at output)
+C     [T, Tnext] = the integration interval
+C     Hmin, Hmax = lower and upper bounds for the selected step-size.
+C          Note that for Step = Hmin the current computed
+C          solution is unconditionally accepted by the error
+C          control mechanism.
+C     AbsTol, RelTol = (NVAR) dimensional vectors of
+C          componentwise absolute and relative tolerances.
+C     FUNC_CHEM = name of routine of derivatives. KPP syntax.
+C          See the header below.
+C     JAC_CHEM = name of routine that computes the Jacobian, in
+C          sparse format. KPP syntax. See the header below.
+C     Info(1) = 1  for  Autonomous   system
+C             = 0  for nonAutonomous system
+C
+C  OUTPUT ARGUMENTS:
+C     y = the values of concentrations at Tend.
+C     T = equals TENDon output.
+C     Info(2) = # of FUNC_CHEM CALLs.
+C     Info(3) = # of JAC_CHEM CALLs.
+C     Info(4) = # of accepted steps.
+C     Info(5) = # of rejected steps.
+C     Hstart = The last accepted stepsize
+C 
+C    Adrian Sandu, December 2001
+C 
+      INTEGER   NSENSIT
+      KPP_REAL Fv(NVAR*(NSENSIT+1)), Hv(NVAR)
+      KPP_REAL DFDP(NVAR*NSENSIT)
+      KPP_REAL JAC(LU_NONZERO), AJAC(LU_NONZERO)
+      KPP_REAL HESS(NHESS)
+      KPP_REAL DJDP(NVAR*NSENSIT)
+      KPP_REAL H, Hstart
+      KPP_REAL y(NVAR*(NSENSIT+1))
+      KPP_REAL T, Tnext, Tplus
+      KPP_REAL elo,ghinv,uround
+      
+      INTEGER    n,nfcn,njac,Naccept,Nreject,i,j,ier
+      INTEGER    Info(5)
+      LOGICAL    IsReject, Autonomous
+      EXTERNAL   FUNC_CHEM, JAC_CHEM, HESS_CHEM                                                                                                
+
+
+      H     = Hstart
+      Tplus = T
+      Nfcn  = 0
+      Njac  = 0
+  
+C === Starting the time loop ===
+ 10    CONTINUE
+  
+       Tplus = T + H
+       IF ( Tplus .gt. Tnext ) THEN
+          H = Tnext - T
+          Tplus = Tnext
+       END IF
+ 
+C              Initial Function and Jacobian values                                                                                                                            
+       CALL FUNC_CHEM(NVAR, T, y, Fv)
+       Nfcn = Nfcn+1
+       CALL JAC_CHEM(NVAR, T, y, JAC)
+       Njac = Njac+1
+       CALL HESS_CHEM( NVAR, T, y, HESS )
+       IF (DDMTYPE .EQ. 1) THEN
+          CALL DFUNDPAR(NVAR, NSENSIT, T, y, DFDP)
+       END IF  
+ 
+C              Form the Prediction matrix and compute its LU factorization                                                                                                                           
+       DO 40 j=1,LU_NONZERO
+         AJAC(j) = -JAC(j)
+ 40    CONTINUE
+       DO 50 j=1,NVAR
+         AJAC(LU_DIAG(j)) = AJAC(LU_DIAG(j)) + 1.0d0/H
+ 50    CONTINUE
+       CALL KppDecomp (AJAC, ier)
+C 
+       IF (ier.ne.0) THEN
+          PRINT *,'ROS1: Singular factorization at T=',T,'; H=',H
+          STOP
+       END IF
+ 
+C ------------ STAGE 1-------------------------
+       CALL KppSolve (AJAC, Fv)
+C               --- If  derivative w.r.t. parameters
+	 IF (DDMTYPE .EQ. 1) THEN
+	    CALL DJACDPAR(NVAR, NSENSIT, T, y, Fv(1), DJDP)
+	 END IF
+C               --- End of derivative w.r.t. parameters	  	 
+
+       DO 100 i=1,NSENSIT
+	  CALL Jac_SP_Vec (JAC, y(i*NVAR+1), Fv(i*NVAR+1))
+	  CALL Hess_Vec ( HESS, y(i*NVAR+1), Fv(1), Hv )
+          IF (DDMTYPE .EQ. 0) THEN
+	    DO 80 j=1,NVAR
+	      Fv(i*NVAR+j) = Fv(i*NVAR+j) + Hv(j)
+ 80	    CONTINUE	    
+          ELSE
+	    DO 90 j=1,NVAR
+	      Fv(i*NVAR+j) = Fv(i*NVAR+j) + Hv(j) 
+     &      	      + DFDP(i*NVAR+j)+ DJDP((i-1)*NVAR+j)
+ 90	    CONTINUE	    
+          END IF  
+          CALL KppSolve (AJAC, Fv(i*NVAR+1))
+ 100   CONTINUE
+ 
+C ---- The Solution ---
+       DO 160 j = 1,NVAR*(NSENSIT+1)
+         y(j) = y(j) + Fv(j) 
+ 160   CONTINUE
+       T = T + H
+ 
+C ======= End of the time loop ===============================
+      IF ( T .lt. Tnext ) THEN
+          GO TO 10
+      END IF	  
+ 
+C ======= Output Information =================================
+      Info(2) = Nfcn
+      Info(3) = Njac
+      Info(4) = Naccept
+      Info(5) = Nreject
+      Hstart  = H
+ 
+      RETURN
+      END
+ 
+ 
+ 
+      SUBROUTINE FUNC_CHEM(N, T, Y, P)
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+      INTEGER N
+      KPP_REAL   T, Told
+      KPP_REAL   Y(NVAR), P(NVAR)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Fun( Y,  FIX, RCONST, P )
+      TIME = Told
+      RETURN
+      END
+
+ 
+      SUBROUTINE DFUNDPAR(N, NSENSIT, T, Y, P)
+C ---  Computes the partial derivatives of FUNC_CHEM w.r.t. parameters 
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+C ---  NCOEFF, JCOEFF useful for derivatives w.r.t. rate coefficients    
+      INTEGER NCOEFF, JCOEFF(NREACT)
+      COMMON /DDMRCOEFF/ NCOEFF, JCOEFF
+      
+      INTEGER N
+      KPP_REAL   T, Told
+      KPP_REAL   Y(NVAR), P(NVAR*NSENSIT)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+C
+      IF (DDMTYPE .EQ. 0) THEN
+C ---  Note: the values below are for sensitivities w.r.t. initial values;
+C ---       they may have to be changed for other applications
+        DO j=1,NSENSIT
+          DO i=1,NVAR
+	    P(i+NVAR*(j-1)) = 0.0D0
+	  END DO
+        END DO
+      ELSE	
+C ---  Example: the call below is for sensitivities w.r.t. rate coefficients;
+C ---       JCOEFF(1:NSENSIT) are the indices of the NSENSIT rate coefficients
+C ---       w.r.t. which one differentiates
+        CALL dFun_dRcoeff( Y,  FIX, NCOEFF, JCOEFF, P )
+      END IF
+      TIME = Told
+      RETURN
+      END
+ 
+      SUBROUTINE JAC_CHEM(N, T, Y, J)
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+      INTEGER N
+      KPP_REAL   Told, T
+      KPP_REAL   Y(NVAR), J(LU_NONZERO)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Jac_SP( Y,  FIX, RCONST, J )
+      TIME = Told
+      RETURN
+      END                                                                                                                 
+
+ 
+      SUBROUTINE DJACDPAR(N, NSENSIT, T, Y, U, P)
+C ---  Computes the partial derivatives of JAC w.r.t. parameters times user vector U
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+C ---  NCOEFF, JCOEFF useful for derivatives w.r.t. rate coefficients    
+      INTEGER NCOEFF, JCOEFF(NREACT)
+      COMMON /DDMRCOEFF/ NCOEFF, JCOEFF
+      
+      INTEGER N
+      KPP_REAL   T, Told
+      KPP_REAL   Y(NVAR), U(NVAR)
+      KPP_REAL   P(NVAR*NSENSIT)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+C
+      IF (DDMTYPE .EQ. 0) THEN
+C ---  Note: the values below are for sensitivities w.r.t. initial values;
+C ---       they may have to be changed for other applications
+        DO j=1,NSENSIT
+          DO i=1,NVAR
+	    P(i+NVAR*(j-1)) = 0.0D0
+	  END DO
+        END DO
+      ELSE	
+C ---  Example: the call below is for sensitivities w.r.t. rate coefficients;
+C ---       JCOEFF(1:NSENSIT) are the indices of the NSENSIT rate coefficients
+C ---       w.r.t. which one differentiates
+        CALL dJac_dRcoeff( Y,  FIX, U, NCOEFF, JCOEFF, P )
+      END IF
+      TIME = Told
+      RETURN
+      END
+
+ 
+      SUBROUTINE HESS_CHEM(N, T, Y, HESS)
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+      INTEGER N
+      KPP_REAL   Told, T
+      KPP_REAL   Y(NVAR), HESS(NHESS)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Hessian( Y, FIX, RCONST, HESS )
+      TIME = Told
+      RETURN
+      END                                                                                                                 
+
+
+
+                                                                                                                            
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/ros2.c
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/ros2.c	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/ros2.c	(revision 2696)
@@ -0,0 +1,311 @@
+
+	#define MAX(a,b) ((a) >= (b)) ?(a):(b)
+	#define MIN(b,c) ((b) <  (c)) ?(b):(c)	
+	#define abs(x)   ((x) >=  0 ) ?(x):(-x) 
+	#define dabs(y)  (double)abs(y) 
+	#define DSQRT(d) (double)pow(d,0.5)
+	#define signum(x)((x) >=  0 ) ?(1):(-1)
+
+
+
+	void (*forfun)(int,KPP_REAL,KPP_REAL [],KPP_REAL []);
+	void (*forjac)(int,KPP_REAL,KPP_REAL [],KPP_REAL []);
+
+
+
+ 
+void FUNC_CHEM(int N,KPP_REAL T,KPP_REAL Y[NVAR],KPP_REAL P[NVAR])
+	{
+         KPP_REAL Told;
+         Told = TIME;
+         TIME = T;
+         Update_SUN();
+         Update_RCONST();
+         Fun( Y, FIX, RCONST, P );
+         TIME = Told;
+        }
+ 
+void JAC_CHEM(int N,KPP_REAL T,KPP_REAL Y[NVAR],KPP_REAL J[LU_NONZERO])
+        {
+         KPP_REAL Told;
+         Told = TIME;
+         TIME = T;
+         Update_SUN();
+         Update_RCONST();
+         Jac_SP( Y, FIX, RCONST, J );
+         TIME = Told;
+        }  
+                                                                                                                         
+
+
+
+
+       INTEGRATE(KPP_REAL TIN,KPP_REAL TOUT )
+	{
+ 
+	 /*  TIN - Start Time   */
+	 /*  TOUT - End Time     */
+
+
+         int INFO[5];
+	 forfun = &FUNC_CHEM;
+	 forjac = &JAC_CHEM;	
+         INFO[0] = Autonomous;
+	 ROS2(NVAR,TIN,TOUT,STEPMIN,STEPMAX,STEPMIN,VAR,ATOL
+	 ,RTOL,INFO,forfun,forjac);
+ 
+	}
+ 
+ 
+int ROS2(int N,KPP_REAL T, KPP_REAL Tnext,KPP_REAL Hmin,KPP_REAL Hmax,
+   KPP_REAL Hstart,KPP_REAL y[NVAR],KPP_REAL AbsTol[NVAR],KPP_REAL RelTol[NVAR],
+   int INFO[5],void (*forfun)(int,KPP_REAL,KPP_REAL [],KPP_REAL []),
+   void (*forjac)(int,KPP_REAL,KPP_REAL [],KPP_REAL []) )
+   {
+     
+                                                                                
+/*
+     All the arguments aggree with the KPP syntax.
+
+  INPUT ARGUMENTS:
+     y = Vector of (NVAR) concentrations, contains the
+         initial values on input
+     [T, Tnext] = the integration interval
+     Hmin, Hmax = lower and upper bounds for the selected step-size.
+          Note that for Step = Hmin the current computed
+          solution is unconditionally accepted by the error
+          control mechanism.
+     AbsTol, RelTol = (NVAR) dimensional vectors of
+          componentwise absolute and relative tolerances.
+     FUNC_CHEM = name of routine of derivatives. KPP syntax.
+          See the header below.
+     JAC_CHEM = name of routine that computes the Jacobian, in
+          sparse format. KPP syntax. See the header below.
+     Info(1) = 1  for  autonomous   system
+             = 0  for nonautonomous system
+
+  OUTPUT ARGUMENTS:
+     y = the values of concentrations at Tend.
+     T = equals Tend on output.
+     Info(2) = # of FUNC_CHEM calls.
+     Info(3) = # of JAC_CHEM calls.
+     Info(4) = # of accepted steps.
+     Info(5) = # of rejected steps.
+*/
+ 
+      KPP_REAL K1[NVAR], K2[NVAR], K3[NVAR], K4[NVAR];
+      KPP_REAL F1[NVAR], JAC[LU_NONZERO];
+      KPP_REAL ghinv , uround , dround , c43 , tau;
+      KPP_REAL ynew[NVAR];
+      KPP_REAL H, Hold, Tplus;
+      KPP_REAL ERR, factor, facmax;
+      int n,nfcn,njac,Naccept,Nreject,i,j,ier;
+      char IsReject,Autonomous;
+                                                                            
+      KPP_REAL gamma, m1, m2, alpha, beta, delta, theta, g[NVAR], x[NVAR];
+ 
+/*     Initialization of counters, etc.       */
+      Autonomous = (INFO[0] == 1);         
+      uround = (double)(1e-15);               
+
+      dround = DSQRT(uround);
+      c43 = (double)(- 8.e0/3.e0);
+      H = MAX( (double)1.e-8, Hmin );
+      Tplus = T;
+      IsReject = 0;
+      Naccept  = 0;
+      Nreject  = 0;
+      nfcn     = 0;
+      njac     = 0;
+      gamma = (double)(1.e0 + 1.e0/DSQRT(2.e0));
+ 
+/* === Starting the time loop ===     */
+ while(T < Tnext)
+ {
+ ten :     
+     Tplus = T + H;
+
+     if ( Tplus > Tnext )
+      {
+        H = Tnext - T;
+        Tplus = Tnext;
+      }
+
+     (*forjac)(NVAR, T, y,JAC );               
+
+     njac = njac+1;
+     ghinv = (double)(-1.0e0/(gamma*H));
+     
+     
+     
+     for(j=0;j<NVAR;j++)
+        JAC[LU_DIAG[j]] = JAC[LU_DIAG[j]] + ghinv;
+      
+
+
+     ier = KppDecomp (JAC);
+
+     if ( ier != 0)
+     {
+      if( H > Hmin ) 
+      {
+       H = (double)(5.0e-1*H); 
+       goto ten;	   
+      }
+     else
+       printf("IER <> 0 , H = %d", H);
+       
+     }/* main ier if ends*/	
+		
+
+     (*forfun)(NVAR , T, y, F1 ) ;              
+
+
+
+                                                                                                                            
+
+ 
+/* ====== NONAUTONOMOUS CASE ===============   */
+       if(Autonomous == 0) 
+       {
+         tau =( dround*MAX ((double)1.0e-6, dabs(T)) *signum(T) );
+         (*forfun)(NVAR, T+tau, y, K2);
+         nfcn=nfcn+1;
+	 
+         for(j = 0;j<NVAR;j++)
+	     K3[j] = ( K2[j]-F1[j] )/tau;
+	  
+ 
+/* ----- STAGE 1 (NON-AUTONOMOUS) -----   */
+
+         delta = (double)(gamma*H);
+	 
+         for(j = 0;j<NVAR;j++)
+	     K1[j] =  F1[j] + delta*K3[j];
+	 
+         KppSolve (JAC, K1);
+ 
+
+/* ----- STAGE 2  (NON-AUTONOMOUS) -----   */
+         alpha = (double)(- 1.e0/gamma);
+         for(j = 0;j<NVAR;j++)
+             ynew[j] = y[j] + alpha*K1[j];
+	 
+ 
+         (*forfun)(NVAR, T+H, ynew, F1);
+         nfcn=nfcn+1;
+         beta = (double)(2.e0/(gamma*H));
+         delta = (double)(-gamma*H);
+         for(j = 0;j<NVAR;j++)
+             K2[j] = F1[j] + beta*K1[j] + delta*K3[j];
+	 
+         KppSolve (JAC, K2);
+    
+       }/* if for non - autonomous case ends here  */	
+ 
+/* ====== AUTONOMOUS CASE ===============    */
+       else
+       {
+ 
+/* ----- STAGE 1 (AUTONOMOUS) -----   */
+         for(j = 0;j<NVAR;j++)
+	     K1[j] =  F1[j];
+         
+         KppSolve (JAC, K1);
+ 
+/* ----- STAGE 2  (AUTONOMOUS) -----  */
+         alpha = (double)(- 1.e0/gamma);
+       
+         for(j = 0;j<NVAR;j++)
+             ynew[j] = y[j] + alpha*K1[j];
+       
+         (*forfun)(NVAR, T+H, ynew, F1);
+
+         nfcn=nfcn+1;
+         beta = (double)(2.e0/(gamma*H));
+         for(j = 0;j < NVAR;j++)
+             K2[j] = F1[j] + beta*K1[j];
+       
+         KppSolve (JAC, K2);
+       
+       }/* else autonomous case ends here */
+       
+ 
+                                                                                                            
+/* ---- The Solution ---  */
+       m1 = (double)(-3.e0/(2.e0*gamma));
+       m2 = (double)(-1.e0/(2.e0*gamma));
+       for(j = 0;j<NVAR;j++)
+          ynew[j] = y[j] + m1*K1[j] + m2*K2[j];
+       
+ 
+ 
+/* ====== Error estimation ========    */
+ 
+        ERR=(double)0.e0;
+        theta = (double)(1.e0/(2.e0*gamma));
+	
+        for(i=0;i<NVAR;i++)
+	{
+           g[i] = AbsTol[i] + RelTol[i]*dabs(ynew[i]);
+           ERR = (double)( ERR + pow( ( theta*(K1[i]+K2[i])/g[i] ) , 2.0 ) );
+        }
+         ERR = MAX( uround, DSQRT( ERR/NVAR ) );
+ 
+/* ======= Choose the stepsize ==================  */
+ 
+ 
+        factor = (double)(0.9/pow( ERR,(1.e0/2.e0) ));
+        if (IsReject == 1) 
+	    facmax=(double)1.0;
+        
+	else
+            facmax=(double)10.0;
+        
+	
+        factor =(double) MAX( 1.0e-1, MIN(factor,facmax) );
+        Hold = H;
+        H = (double)MIN( Hmax, MAX(Hmin,factor*H) );
+                                                                                                
+/* ======= Rejected/Accepted Step ==================  */
+ 
+ 
+	if( (ERR>1) && (Hold>Hmin) )
+	{
+	 IsReject = 1;
+	 Nreject = Nreject + 1;
+	}		
+	else
+	{
+	 IsReject = 0;
+ 	 for(i=0;i<NVAR;i++)
+	 {
+	  y[i] = ynew[i];
+	 }
+	T = Tplus;
+	Naccept = Naccept+1;    
+ 
+ 	}/*  else ends here */
+
+ 
+ 
+ 
+ 
+/* ======= End of the time loop =================    */
+  
+ }    /*      while loop (T < Tnext) ends here    */ 
+ 
+ 
+/* ======= Output Information ================      */
+      INFO[1] = nfcn;
+      INFO[2] = njac;
+      INFO[3] = Naccept;
+      INFO[4] = Nreject;
+
+      return 0;	
+	
+  } /* function ros2 ends here   */
+ 
+ 
+
+                                                                                                                            
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/ros2.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/ros2.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/ros2.def	(revision 2696)
@@ -0,0 +1,50 @@
+ 
+#FUNCTION AGGREGATE
+#JACOBIAN SPARSE_LU_ROW
+
+#DOUBLE ON 
+#INTFILE ros2
+
+#INLINE F77_DECL_INT
+      INTEGER Autonomous
+      COMMON /INTGDATA/ Autonomous
+      REAL*8 STEPSTART
+      COMMON /GDATA/ STEPSTART
+#ENDINLINE
+
+#INLINE F77_INIT_INT
+        STEPMIN=0.0001
+        STEPMAX=3600.
+        Autonomous = 0
+        STEPSTART=STEPMIN
+#ENDINLINE
+
+
+#INLINE F90_DECL_INT
+      INTEGER :: Autonomous
+      DOUBLE PRECISION :: STEPSTART
+#ENDINLINE
+
+#INLINE F90_INIT_INT
+        STEPMIN=0.0001
+        STEPMAX=3600.
+        Autonomous = 0
+        STEPSTART=STEPMIN
+#ENDINLINE
+
+#INLINE C_DECL_INT
+    extern int Autonomous;
+    extern double STEPSTART;
+#ENDINLINE
+ 
+#INLINE C_DATA_INT
+int Autonomous;
+double STEPSTART;
+#ENDINLINE
+
+#INLINE C_INIT_INT
+        STEPMIN = 0.0001;
+        STEPMAX = 3600.0;
+        Autonomous = 0;
+        STEPSTART = STEPMIN;
+#ENDINLINE                                                                     
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/ros2.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/ros2.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/ros2.f	(revision 2696)
@@ -0,0 +1,314 @@
+      SUBROUTINE INTEGRATE( TIN, TOUT )
+ 
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+
+C TIN - Start Time
+      KPP_REAL TIN
+C TOUT - END Time
+      KPP_REAL TOUT
+
+      INTEGER    INFO(5)
+
+      EXTERNAL FUNC_CHEM, JAC_CHEM
+      
+C--------------------------------
+      INTEGER N_stepss, N_accepteds, N_rejecteds, N_jacs, ITOL, IERR
+      SAVE N_stepss, N_accepteds, N_rejecteds, N_jacs
+C--------------------------------
+
+      INFO(1) = 1 ! Autonomous
+      INFO(2) = 0
+ 
+      CALL ROS2(NVAR,TIN,TOUT,STEPMIN,STEPMAX,
+     +                   STEPMIN,VAR,ATOL,RTOL,
+     +                   Info,FUNC_CHEM,JAC_CHEM)
+ 
+C--------------------------------
+      N_stepss=N_stepss+Info(4)+Info(5)
+      N_accepteds=N_accepteds+Info(4)
+      N_rejecteds=N_rejecteds+Info(5)
+      N_jacs=N_jacs+Info(3)
+      PRINT*,'Step=',N_stepss,' Acc=',N_accepteds,' Rej=',N_rejecteds,
+     &          ' Jac=',N_jacs
+C--------------------------------
+
+      RETURN
+      END
+  
+
+ 
+ 
+      SUBROUTINE ROS2(N,T,Tnext,Hmin,Hmax,Hstart,
+     +                   Y,AbsTol,RelTol,
+     +                   Info,FUNC_CHEM,JAC_CHEM)
+      IMPLICIT NONE
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_sparse.h'                                                                                                  
+
+C  INPUT ARGUMENTS:
+C     Y = Vector of (NVAR) concentrations, contains the
+C         initial values on input
+C     [T, Tnext] = the integration interval
+C     Hmin, Hmax = lower and upper bounds for the selected step-size.
+C          Note that for Step = Hmin the current computed
+C          solution is unconditionally accepted by the error
+C          control mechanism.
+C     AbsTol, RelTol = (NVAR) dimensional vectors of
+C          componentwise absolute and relative tolerances.
+C     FUNC_CHEM = name of routine of derivatives. KPP syntax.
+C          See the header below.
+C     JAC_CHEM = name of routine that computes the Jacobian, in
+C          sparse format. KPP syntax. See the header below.
+C     Info(1) = 1  for  autonomous   system
+C             = 0  for nonautonomous system
+C     Info(2) = 1  for third order embedded formula
+C             = 0  for first order embedded formula 
+C
+C   Note: Stage 3 used to build strongly A-stable order 3 formula for error control
+C            Embed3 = (Info(2).EQ.1)
+C         IF Embed3 = .true. THEN the third order embedded formula is used
+C                     .false. THEN a first order embedded  formula is used
+C
+C
+C  OUTPUT ARGUMENTS:
+C     Y = the values of concentrations at TEND.
+C     T = equals TEND on output.
+C     Info(2) = # of FUNC_CHEM CALLs.
+C     Info(3) = # of JAC_CHEM CALLs.
+C     Info(4) = # of accepted steps.
+C     Info(5) = # of rejected steps.
+ 
+      KPP_REAL  K1(NVAR), K2(NVAR), K3(NVAR)
+      KPP_REAL  F1(NVAR), JAC(LU_NONZERO)
+      KPP_REAL  DFDT(NVAR)
+      KPP_REAL  Hmin,Hmax,Hnew,Hstart,ghinv,uround
+      KPP_REAL  Y(NVAR), Ynew(NVAR)
+      KPP_REAL  AbsTol(NVAR), RelTol(NVAR)
+      KPP_REAL  T, Tnext, H, Hold, Tplus
+      KPP_REAL  ERR, factor, facmax
+      KPP_REAL  tau, beta, elo, dround, a21, c21, c31, c32
+      KPP_REAL  gamma3, d1, d2, d3, gam
+      INTEGER    n,nfcn,njac,Naccept,Nreject,i,j,ier
+      INTEGER    Info(5)
+      LOGICAL    IsReject, Autonomous, Embed3
+      EXTERNAL    FUNC_CHEM, JAC_CHEM                                                                                                
+
+      KPP_REAL  gamma, m1, m2, alpha, beta1, beta2, delta, w, e
+ 
+c     Initialization of counters, etc.
+      Autonomous = Info(1) .EQ. 1
+      Embed3  = Info(2) .EQ. 1
+      uround  = 1.d-15
+      dround  = dsqrt(uround)
+      H = DMAX1(1.d-8, Hmin)
+      Tplus = T
+      IsReject = .false.
+      Naccept  = 0
+      Nreject  = 0
+      Nfcn     = 0
+      Njac     = 0
+      
+C     Method Parameters      
+      gamma = 1.d0 + 1.d0/sqrt(2.d0)
+      a21   = - 1.d0/gamma
+      m1 = -3.d0/(2.d0*gamma)
+      m2 = -1.d0/(2.d0*gamma)
+      c21 = -2.d0/gamma
+      c31 = -1.0D0/gamma**2*(1.0D0-7.0D0*gamma+9.0D0*gamma**2)
+     &         /(-1.0D0+2.0D0*gamma)
+      c32 = -1.0D0/gamma**2*(1.0D0-6.0D0*gamma+6.0D0*gamma**2)
+     &          /(-1.0D0+2.0D0*gamma)/2
+      gamma3 = 0.5D0 - 2*gamma
+      d1 = ((-9.0D0*gamma+8.0D0*gamma**2+2.0D0)/gamma**2/
+     &          (-1.0D0+2*gamma))/6.0D0
+      d2 = ((-1.0D0+3.0D0*gamma)/gamma**2/
+     &          (-1.0D0+2.0D0*gamma))/6.0D0
+      d3 = -1.0D0/(3.0D0*gamma)
+ 
+C === Start the time loop ===
+       DO WHILE (T .LT. Tnext)
+
+10     CONTINUE
+
+       Tplus = T + H
+       IF ( Tplus .gt. Tnext ) THEN
+          H = Tnext - T
+          Tplus = Tnext
+       END IF
+ 
+       CALL JAC_CHEM( T, Y, JAC )
+ 
+       Njac = Njac+1
+       ghinv = -1.0d0/(gamma*H)
+       DO 20 j=1,NVAR
+         JAC(LU_DIAG(j)) = JAC(LU_DIAG(j)) + ghinv
+ 20    CONTINUE
+       CALL KppDecomp (JAC, ier)
+ 
+       IF (ier.ne.0) THEN
+         IF ( H.gt.Hmin) THEN
+            H = 5.0d-1*H
+            GO TO 10
+         ELSE
+            PRINT *,'IER <> 0, H=',H
+            STOP
+         END IF
+       END IF
+ 
+       CALL FUNC_CHEM( T, Y, F1 )
+ 
+C ====== NONAUTONOMOUS CASE ===============
+       IF (.NOT. Autonomous) THEN
+         tau = DSIGN(DROUND*DMAX1( 1.0d-6, DABS(T) ), T)
+         CALL FUNC_CHEM( T+tau, Y, K2)
+         nfcn=nfcn+1
+         DO 30 j = 1,NVAR
+           DFDT(j) = ( K2(j)-F1(j) )/tau
+ 30      CONTINUE
+       END IF ! .NOT.Autonomous
+ 
+C ----- STAGE 1 -----
+       delta = gamma*H
+       DO 40 j = 1,NVAR
+          K1(j) =  F1(j) 
+ 40    CONTINUE
+       IF (.NOT.Autonomous) THEN
+         DO 45 j = 1,NVAR
+           K1(j) = K1(j) + delta*DFDT(j)
+ 45      CONTINUE       
+       END IF ! .NOT.Autonomous
+       CALL KppSolve (JAC, K1)
+ 
+C ----- STAGE 2  -----
+       DO 50 j = 1,NVAR
+         Ynew(j) = Y(j) + a21*K1(j)
+ 50    CONTINUE
+       CALL FUNC_CHEM( T+H, Ynew, F1)
+       nfcn=nfcn+1
+       beta = -c21/H
+       DO 55 j = 1,NVAR
+         K2(j) = F1(j) + beta*K1(j) 
+ 55    CONTINUE
+       IF (.NOT.Autonomous) THEN
+         delta = -gamma*H
+         DO 56 j = 1,NVAR
+           K2(j) = K2(j) + delta*DFDT(j)
+ 56      CONTINUE       
+       END IF ! .NOT.Autonomous
+       CALL KppSolve (JAC, K2)
+ 
+C ----- STAGE 3  -----
+       IF (Embed3) THEN
+       beta1 = -c31/H
+       beta2 = -c32/H
+       delta = gamma3*H
+       DO 57 j = 1,NVAR
+         K3(j) = F1(j) + beta1*K1(j) + beta2*K2(j) 
+ 57    CONTINUE
+       IF (.NOT.Autonomous) THEN
+         DO 58 j = 1,NVAR
+           K3(j) = K3(j) + delta*DFDT(j)
+ 58      CONTINUE       
+       END IF ! .NOT.Autonomous
+       CALL KppSolve (JAC, K3)
+       END IF ! Embed3
+ 
+
+C ---- The Solution ---
+       DO 120 j = 1,NVAR
+         Ynew(j) = Y(j) + m1*K1(j) + m2*K2(j)
+ 120   CONTINUE
+ 
+ 
+C ====== Error estimation ========
+ 
+        ERR=0.d0
+        DO 130 i=1,NVAR
+           w = AbsTol(i) + RelTol(i)*DMAX1(DABS(Y(i)),DABS(Ynew(i)))
+	   IF ( Embed3 ) THEN
+	     e = d1*K1(i) + d2*K2(i) + d3*K3(i)
+	   ELSE
+             e = 1.d0/(2.d0*gamma)*(K1(i)+K2(i))
+	   END IF  ! Embed3 
+           ERR = ERR + ( e/w )**2
+ 130    CONTINUE
+        ERR = DMAX1( uround, DSQRT( ERR/NVAR ) )
+ 
+C ======= Choose the stepsize ===============================
+ 
+        IF ( Embed3 ) THEN
+            elo = 3.0D0 ! estimator local order
+	ELSE
+	    elo = 2.0D0
+	END IF    
+        factor = DMAX1(2.0D-1,DMIN1(6.0D0,ERR**(1.0D0/elo)/.9D0))
+        Hnew   = DMIN1(Hmax,DMAX1(Hmin, H/factor))
+ 
+C ======= Rejected/Accepted Step ============================
+ 
+        IF ( (ERR.gt.1).and.(H.gt.Hmin) ) THEN
+          IsReject = .true.
+	  H = DMIN1(H/10,Hnew)
+          Nreject  = Nreject+1
+        ELSE
+          DO 140 i=1,NVAR
+             Y(i)  = Ynew(i)
+ 140      CONTINUE
+          T = Tplus
+	  IF (.NOT.IsReject) THEN
+	      H = Hnew   ! Do not increase stepsize IF previous step was rejected
+	  END IF    
+          IsReject = .false.
+          Naccept = Naccept+1
+        END IF
+ 
+C ======= END of the time loop ===============================
+      END DO
+  
+ 
+C ======= Output Information =================================
+      Info(2) = Nfcn
+      Info(3) = Njac
+      Info(4) = Naccept
+      Info(5) = Nreject
+ 
+      RETURN
+      END
+ 
+ 
+ 
+      SUBROUTINE FUNC_CHEM( T, Y, P )
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+      KPP_REAL  T, Told
+      KPP_REAL  Y(NVAR), P(NVAR)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Fun( Y,  FIX, RCONST, P )
+      TIME = Told
+      RETURN
+      END
+
+ 
+      SUBROUTINE JAC_CHEM( T, Y, J )
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+      KPP_REAL  Told, T
+      KPP_REAL  Y(NVAR), J(LU_NONZERO)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Jac_SP( Y,  FIX, RCONST, J )
+      TIME = Told
+      RETURN
+      END                                                                                                                 
+  
+
+
+
+
+                                                                                                                            
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/ros2.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/ros2.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/ros2.f90	(revision 2696)
@@ -0,0 +1,294 @@
+      SUBROUTINE INTEGRATE( TIN, TOUT )
+ 
+      USE KPP_ROOT_global
+
+! TIN - Start Time
+      KPP_REAL TIN
+! TOUT - End Time
+      KPP_REAL TOUT
+
+      INTEGER    INFO(5)
+
+      EXTERNAL FUNC_CHEM, JAC_CHEM
+
+      INFO(1) = Autonomous
+ 
+      call ROS2(NVAR,TIN,TOUT,STEPMIN,STEPMAX,   &
+            STEPMIN,VAR,ATOL,RTOL, &
+            Info,FUNC_CHEM,JAC_CHEM)
+ 
+
+      END SUBROUTINE INTEGRATE
+  
+
+ 
+ 
+      SUBROUTINE ROS2(N,T,Tnext,Hmin,Hmax,Hstart,  &
+            y,AbsTol,RelTol,      &
+            Info,FUNC_CHEM,JAC_CHEM)
+      
+      USE KPP_ROOT_params
+      USE KPP_ROOT_Jacobian_sparsity                                 
+      IMPLICIT NONE
+
+!  INPUT ARGUMENTS:
+!     y = Vector of (NVAR) concentrations, contains the
+!     initial values on input
+!     [T, Tnext] = the integration interval
+!     Hmin, Hmax = lower and upper bounds for the selected step-size.
+!      Note that for Step = Hmin the current computed
+!      solution is unconditionally accepted by the error
+!      control mechanism.
+!     AbsTol, RelTol = (NVAR) dimensional vectors of
+!      componentwise absolute and relative tolerances.
+!     FUNC_CHEM = name of routine of derivatives. KPP syntax.
+!      See the header below.
+!     JAC_CHEM = name of routine that computes the Jacobian, in
+!      sparse format. KPP syntax. See the header below.
+!     Info(1) = 1  for  autonomous   system
+!         = 0  for nonautonomous system
+!     Info(2) = 1  for third order embedded formula
+!         = 0  for first order embedded formula 
+!
+!   Note: Stage 3 used to build strongly A-stable order 3 formula for error control
+!        Embed3 = (Info(2).EQ.1)
+!     if Embed3 = .true. then the third order embedded formula is used
+!         .false. then a first order embedded  formula is used
+!
+!
+!  OUTPUT ARGUMENTS:
+!     y = the values of concentrations at Tend.
+!     T = equals Tend on output.
+!     Info(2) = # of FUNC_CHEM calls.
+!     Info(3) = # of JAC_CHEM calls.
+!     Info(4) = # of accepted steps.
+!     Info(5) = # of rejected steps.
+ 
+      KPP_REAL K1(NVAR), K2(NVAR), K3(NVAR)
+      KPP_REAL F1(NVAR), JAC(LU_NONZERO)
+      KPP_REAL DFDT(NVAR)
+      KPP_REAL Hmin,Hmax,Hnew,Hstart,ghinv,uround
+      KPP_REAL y(NVAR), ynew(NVAR)
+      KPP_REAL AbsTol(NVAR), RelTol(NVAR)
+      KPP_REAL T, Tnext, H, Hold, Tplus
+      KPP_REAL ERR, factor, facmax
+      KPP_REAL tau, beta, elo, dround, a21, c31, c32
+      KPP_REAL gamma3, d1, d2, d3, gam
+      INTEGER    n,nfcn,njac,Naccept,Nreject,i,j,ier
+      INTEGER    Info(5)
+      LOGICAL    IsReject, Autonomous, Embed3
+      EXTERNAL    FUNC_CHEM, JAC_CHEM                                 
+
+      KPP_REAL gamma, m1, m2, alpha, beta1, beta2, delta, w, e
+ 
+!     Initialization of counters, etc.
+      Autonomous = Info(1) .EQ. 1
+      Embed3  = Info(2) .EQ. 1
+      uround  = 1.d-15
+      dround  = dsqrt(uround)
+      H = DMAX1(1.d-8, Hmin)
+      Tplus = T
+      IsReject = .false.
+      Naccept  = 0
+      Nreject  = 0
+      Nfcn     = 0
+      Njac     = 0
+      
+!     Method Parameters      
+      gamma = 1.d0 + 1.d0/sqrt(2.d0)
+      a21   = - 1.d0/gamma
+      m1 = -3.d0/(2.d0*gamma)
+      m2 = -1.d0/(2.d0*gamma)
+      c31 = -1.0D0/gamma**2*(1.0D0-7.0D0*gamma+9.0D0*gamma**2) &
+      /(-1.0D0+2.0D0*gamma)
+      c32 = -1.0D0/gamma**2*(1.0D0-6.0D0*gamma+6.0D0*gamma**2) &
+       /(-1.0D0+2.0D0*gamma)/2
+      gamma3 = 0.5D0 - 2*gamma
+      d1 = ((-9.0D0*gamma+8.0D0*gamma**2+2.0D0)/gamma**2/      &
+       (-1.0D0+2*gamma))/6.0D0
+      d2 = ((-1.0D0+3.0D0*gamma)/gamma**2/(-1.0D0+2.0D0*gamma))/6.0D0
+      d3 = -1.0D0/(3.0D0*gamma)
+ 
+! === Starting the time loop ===
+ 10    CONTINUE
+      Tplus = T + H
+      if ( Tplus .gt. Tnext ) then
+         H = Tnext - T
+         Tplus = Tnext
+      end if
+ 
+      call JAC_CHEM(NVAR, T, y, JAC)
+ 
+      Njac = Njac+1
+      ghinv = -1.0d0/(gamma*H)
+      DO j=1,NVAR
+         JAC(LU_DIAG(j)) = JAC(LU_DIAG(j)) + ghinv
+      END DO
+      CALL KppDecomp (JAC, ier)
+ 
+      if (ier.ne.0) then
+        if ( H.gt.Hmin) then
+          H = 5.0d-1*H
+          go to 10
+        else
+          print *,'IER <> 0, H=',H
+          stop
+        end if
+      end if
+ 
+      call FUNC_CHEM(NVAR, T, y, F1)
+ 
+! ====== NONAUTONOMOUS CASE ===============
+   IF (.not. Autonomous) THEN
+     tau = dsign(dround*dmax1( 1.0d-6, dabs(T) ), T)
+     call FUNC_CHEM(NVAR, T+tau, y, K2)
+     nfcn=nfcn+1
+     DO j = 1,NVAR
+       DFDT(j) = ( K2(j)-F1(j) )/tau
+     END DO
+   END IF ! .NOT.Autonomous
+ 
+! ----- STAGE 1 -----
+   DO j = 1,NVAR
+      K1(j) =  F1(j) 
+   END DO
+   IF (.NOT.Autonomous) THEN
+     delta = gamma*H
+     DO j = 1,NVAR
+       K1(j) = K1(j) + delta*DFDT(j)
+     END DO      
+   END IF ! .NOT.Autonomous
+   call KppSolve (JAC, K1)
+ 
+! ----- STAGE 2  -----
+   DO j = 1,NVAR
+     ynew(j) = y(j) + a21*K1(j)
+   END DO
+   call FUNC_CHEM(NVAR, T+H, ynew, F1)
+   nfcn=nfcn+1
+   beta = 2.d0/(gamma*H)
+   DO j = 1,NVAR
+     K2(j) = F1(j) + beta*K1(j) 
+   END DO
+   IF (.NOT. Autonomous) THEN
+     delta = -gamma*H
+     DO j = 1,NVAR
+       K2(j) = K2(j) + delta*DFDT(j)
+     END DO   
+   END IF ! .NOT.Autonomous
+   call KppSolve (JAC, K2)
+ 
+! ----- STAGE 3  -----
+   IF (Embed3) THEN
+   beta1 = -c31/H
+   beta2 = -c32/H
+   delta = gamma3*H
+   DO j = 1,NVAR
+     K3(j) = F1(j) + beta1*K1(j) + beta2*K2(j) 
+   END DO
+   IF (.NOT.Autonomous) THEN
+     DO j = 1,NVAR
+       K3(j) = K3(j) + delta*DFDT(j)
+     END DO   
+   END IF ! .NOT.Autonomous
+   CALL KppSolve (JAC, K3)
+    END IF ! Embed3
+ 
+
+
+! ---- The Solution ---
+   DO j = 1,NVAR
+     ynew(j) = y(j) + m1*K1(j) + m2*K2(j)
+   END DO
+ 
+ 
+! ====== Error estimation ========
+ 
+    ERR=0.d0
+    DO i=1,NVAR
+       w = AbsTol(i) + RelTol(i)*DMAX1(DABS(y(i)),DABS(ynew(i)))
+    IF ( Embed3 ) THEN
+     e = d1*K1(i) + d2*K2(i) + d3*K3(i)
+    ELSE
+         e = 1.d0/(2.d0*gamma)*(K1(i)+K2(i))
+    END IF  ! Embed3 
+       ERR = ERR + ( e/w )**2
+    END DO
+    ERR = DMAX1( uround, DSQRT( ERR/NVAR ) )
+ 
+! ======= Choose the stepsize ===============================
+ 
+    IF ( Embed3 ) THEN
+        elo = 3.0D0 ! estimator local order
+    ELSE
+        elo = 2.0D0
+    END IF    
+    factor = DMAX1(2.0D-1,DMIN1(6.0D0,ERR**(1.0D0/elo)/.9D0))
+    Hnew   = DMIN1(Hmax,DMAX1(Hmin, H/factor))
+ 
+! ======= Rejected/Accepted Step ============================
+ 
+    IF ( (ERR.gt.1).and.(H.gt.Hmin) ) THEN
+      IsReject = .true.
+      H = DMIN1(H/10,Hnew)
+      Nreject  = Nreject+1
+    ELSE
+      DO i=1,NVAR
+         y(i)  = ynew(i)
+      END DO
+      T = Tplus
+      IF (.NOT. IsReject) THEN
+          H = Hnew   ! Do not increase stepsize if previous step was rejected
+      END IF    
+      IsReject = .false.
+      Naccept = Naccept+1
+    END IF
+
+ 
+! ======= End of the time loop ===============================
+      IF ( T .lt. Tnext ) GO TO 10
+ 
+ 
+ 
+! ======= Output Information =================================
+      Info(2) = Nfcn
+      Info(3) = Njac
+      Info(4) = Naccept
+      Info(5) = Nreject
+ 
+      END SUBROUTINE Ros2
+ 
+ 
+ 
+      SUBROUTINE FUNC_CHEM(N, T, Y, P)      
+      USE KPP_ROOT_global
+      INTEGER N 
+      KPP_REAL   T, Told
+      KPP_REAL   Y(NVAR), P(NVAR)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Fun( Y, FIX, RCONST, P )
+      TIME = Told
+      END SUBROUTINE FUNC_CHEM
+
+ 
+      SUBROUTINE JAC_CHEM(N, T, Y, J)     
+      USE KPP_ROOT_global
+      INTEGER N 
+      KPP_REAL   Told, T
+      KPP_REAL   Y(NVAR), J(LU_NONZERO)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Jac_SP( Y, FIX, RCONST, J )
+      TIME = Told
+      END SUBROUTINE JAC_CHEM                                           
+  
+
+
+
+
+                                                        
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/ros2_cts_adj.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/ros2_cts_adj.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/ros2_cts_adj.f	(revision 2696)
@@ -0,0 +1,312 @@
+      SUBROUTINE ros2_cts_adj(N,T,Tnext,Hmin,Hmax,Hstart,
+     +                   y,Lambda,Fix,Rconst,AbsTol,RelTol,
+     +                   Info)
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+      
+C  INPUT ARGUMENTS:
+C     y = Vector of (NVAR) concentrations, contains the
+C         initial values on input
+C     [T, Tnext] = the integration interval
+C     Hmin, Hmax = lower and upper bounds for the selected step-size.
+C          Note that for Step = Hmin the current computed
+C          solution is unconditionally accepted by the error
+C          control mechanism.
+C     AbsTol, RelTol = (NVAR) dimensional vectors of
+C          componentwise absolute and relative tolerances.
+C     FUN = name of routine of derivatives. KPP syntax.
+C          See the header below.
+C     JAC_SP = name of routine that computes the Jacobian, in
+C          sparse format. KPP syntax. See the header below.
+C     Info(1) = 1  for  autonomous   system
+C             = 0  for nonautonomous system
+C     Info(2) = 1  for third order embedded formula
+C             = 0  for first order embedded formula 
+C
+C   Note: Stage 3 used to build strongly A-stable order 3 formula for error control
+C            Embed3 = (Info(2).EQ.1)
+C         IF Embed3 = .true. THEN the third order embedded formula is used
+C                     .false. THEN a first order embedded  formula is used
+C
+C
+C  OUTPUT ARGUMENTS:
+C     y = the values of concentrations at TEND.
+C     T = equals TEND on output.
+C     Info(2) = # of FUN CALLs.
+C     Info(3) = # of JAC_SP CALLs.
+C     Info(4) = # of accepted steps.
+C     Info(5) = # of rejected steps.
+
+      INTEGER max_no_steps
+      PARAMETER (max_no_steps = 200)      
+      KPP_REAL  Trajectory(NVAR,max_no_steps)
+      KPP_REAL  StepSize(max_no_steps)
+ 
+      KPP_REAL  K1(NVAR), K2(NVAR), K3(NVAR)
+      KPP_REAL  F1(NVAR), JAC(LU_NONZERO)
+      KPP_REAL  DFDT(NVAR)(NRAD)
+      KPP_REAL  Fix(NFIX), Rconst(NREACT)
+      KPP_REAL  Hmin,Hmax,Hstart,ghinv,uround      
+      KPP_REAL  y(NVAR), Ynew(NVAR)
+      KPP_REAL  AbsTol(NVAR), RelTol(NVAR)
+      KPP_REAL  T, Tnext, H, Hold, Tplus
+      KPP_REAL  ERR, factor, facmax
+      KPP_REAL  Lambda(NVAR), K11(NVAR), JAC1(LU_NONZERO)
+      INTEGER    n,nfcn,njac,Naccept,Nreject,i,j
+      INTEGER    Info(5)
+      LOGICAL    IsReject, Autonomous, Embed3
+      EXTERNAL    FUN, JAC_SP                                                                                                
+
+      KPP_REAL gamma, m1, m2, alpha, beta1, beta2, delta, w, e
+      KPP_REAL ginv
+c     Initialization of counters, etc.
+      Autonomous = Info(1) .EQ. 1
+      Embed3  = Info(2) .EQ. 1
+      uround  = 1.d-15
+      dround  = dsqrt(uround)
+      H = DMAX1(Hstart,DMAX1(1.d-8, Hmin))
+      Tplus = T
+      IsReject = .false.
+      Naccept  = 0
+      Nreject  = 0
+      Nfcn     = 0
+      Njac     = 0
+      
+C     Method Parameters      
+      gamma = 1.d0 + 1.d0/sqrt(2.d0)
+      a21   = - 1.d0/gamma
+      m1 = -3.d0/(2.d0*gamma)
+      m2 = -1.d0/(2.d0*gamma)
+      c31 = -1.0D0/gamma**2*(1.0D0-7.0D0*gamma+9.0D0*gamma**2)
+     &         /(-1.0D0+2.0D0*gamma)
+      c32 = -1.0D0/gamma**2*(1.0D0-6.0D0*gamma+6.0D0*gamma**2)
+     &          /(-1.0D0+2.0D0*gamma)/2
+      gamma3 = 0.5D0 - 2*gamma
+      d1 = ((-9.0D0*gamma+8.0D0*gamma**2+2.0D0)/gamma**2/
+     &          (-1.0D0+2*gamma))/6.0D0
+      d2 = ((-1.0D0+3.0D0*gam)/gamma**2/
+     &          (-1.0D0+2.0D0*gamma))/6.0D0
+      d3 = -1.0D0/(3.0D0*gamma)
+
+      Trajectory(1:NVAR,1) = Ynew(1)
+ 
+C === Starting the time loop ===
+ 10    CONTINUE
+       Tplus = T + H
+       IF ( Tplus .gt. Tnext ) THEN
+          H = Tnext - T
+          Tplus = Tnext
+       END IF
+ 
+       CALL Jac_SP( Y, Fix, Rconst, JAC )
+ 
+       Njac = Njac+1
+       ghinv = -1.0d0/(gamma*H)
+       DO 20 j=1,NVAR
+         JAC(LU_DIAG_V(j)) = JAC(LU_DIAG_V(j)) + ghinv
+ 20    CONTINUE
+       CALL KppDecomp (NVAR, JAC, ier)
+ 
+       IF (ier.ne.0) THEN
+         IF ( H.gt.Hmin) THEN
+            H = 5.0d-1*H
+            GO TO 10
+         else
+            PRINT *,'IER <> 0, H=',H
+            STOP
+         END IF
+       END IF
+ 
+       CALL Fun( Y, Fix, Rconst, F1 )
+ 
+C ====== NONAUTONOMOUS CASE ===============
+       IF (.not. Autonomous) THEN
+         tau = dsign(dround*dmax1( 1.0d-6, dabs(T) ), T)
+         CALL Fun( Y, Fix, Rconst, K2 )
+         nfcn=nfcn+1
+         DO 30 j = 1,NVAR
+           DFDT(j) = ( K2(j)-F1(j) )/tau
+ 30      CONTINUE
+       END IF ! .NOT.Autonomous
+ 
+C ----- STAGE 1 -----
+       DO 40 j = 1,NVAR
+          K1(j) =  F1(j) 
+ 40    CONTINUE
+       IF (.NOT.Autonomous) THEN
+         delta = gamma*H
+         DO 45 j = 1,NVAR
+           K1(j) = K1(j) + delta*DFDT(j)
+ 45      CONTINUE       
+       END IF ! .NOT.Autonomous
+       CALL KppSolve (JAC, K1)
+ 
+C ----- STAGE 2  -----
+       DO 50 j = 1,NVAR
+         Ynew(j) = y(j) + a21*K1(j)
+ 50    CONTINUE
+       CALL Fun( Ynew, Fix, Rconst, F1 )
+       nfcn=nfcn+1
+       beta = 2.d0/(gamma*H)
+       delta = -gamma*H
+       DO 55 j = 1,NVAR
+         K2(j) = F1(j) + beta*K1(j) 
+ 55    CONTINUE
+       IF (.NOT.Autonomous) THEN
+         DO 56 j = 1,NVAR
+           K2(j) = K2(j) + delta*DFDT(j)
+ 56      CONTINUE       
+       END IF ! .NOT.Autonomous
+       CALL KppSolve (JAC, K2)
+ 
+C ----- STAGE 3  -----
+       IF (Embed3) THEN
+       beta1 = -c31/H
+       beta2 = -c32/H
+       delta = gamma3*H
+       DO 57 j = 1,NVAR
+         K3(j) = F1(j) + beta1*K1(j) + beta2*K2(j) 
+ 57    CONTINUE
+       IF (.NOT.Autonomous) THEN
+         DO 58 j = 1,NVAR
+           K3(j) = K3(j) + delta*DFDT(j)
+ 58      CONTINUE       
+       END IF ! .NOT.Autonomous
+       CALL KppSolve (JAC, K3)
+       END IF ! Embed3
+
+
+C ---- The Solution ---
+       DO 120 j = 1,NVAR
+         Ynew(j) = y(j) + m1*K1(j) + m2*K2(j)
+ 120   CONTINUE
+ 
+ 
+C ====== Error estimation ========
+ 
+        ERR=0.d0
+        DO 130 i=1,NVAR
+           w = AbsTol(i) + RelTol(i)*DMAX1(DABS(y(i)),DABS(Ynew(i)))
+	   IF ( Embed3 ) THEN
+	     e = d1*K1(i) + d2*K2(i) + d3*K3(i)
+	   ELSE
+             e = 1.d0/(2.d0*gamma)*(K1(i)+K2(i))
+	   END IF  ! Embed3 
+           ERR = ERR + ( e/w )**2
+ 130    CONTINUE
+        ERR = DMAX1( uround, DSQRT( ERR/NVAR ) )
+	
+C ======= Choose the stepsize ===============================
+ 
+        IF ( Embed3 ) THEN
+            elo = 3.0D0 ! estimator local order
+	ELSE
+	    elo = 2.0D0
+	END IF    
+        factor = DMAX1(2.0D-1,DMIN1(6.0D0,ERR**(1.0D0/elo)/.9D0))
+        Hnew   = DMIN1(Hmax,DMAX1(Hmin, H/factor))
+        Hold = H
+         
+C ======= Rejected/Accepted Step ============================
+ 
+        IF ( (ERR.gt.1).and.(H.gt.Hmin) ) THEN
+          IsReject = .true.
+	  H = DMIN1(H/10,Hnew)
+          Nreject  = Nreject+1
+        ELSE
+          DO 140 i=1,NVAR
+             y(i)  = Ynew(i)
+ 140      CONTINUE
+          T = Tplus
+	  IF (.NOT.IsReject) THEN
+	      H = Hnew   ! Do not increase stepsize IF previous step was rejected
+	  END IF    
+          IsReject = .false.
+          Naccept = Naccept+1
+	  IF (Naccept+1>max_no_steps) THEN
+	    PRINT*,'Error in Adjoint Ros2: more steps than allowed'
+	    STOP
+	  END IF  
+	  Trajectory(1:NVAR,Naccept+1) = Ynew(1:NVAR)
+	  StepSize(Naccept) = Hold
+!	  CALL TRAJISTORE(y,hold)    
+        END IF        
+C ======= END of the time loop ===============================
+      IF ( T .lt. Tnext ) GO TO 10 
+ 
+C ======= Output Information =================================
+      Info(2) = Nfcn
+      Info(3) = Njac
+      Info(4) = Naccept
+      Info(5) = Nreject      
+
+      ginv = 1.d0/gamma
+C -- The backwards loop for the CONTINUOUS ADJOINT    
+      DO istep = Naccept,1,-1
+        
+	h = StepSize(istep)
+	y(1:NVAR) = Trajectory(1:NVAR,istep+1)
+	gHinv = -ginv/H  
+
+	CALL Jac_SP(Y, Fix, Rconst, JAC)
+        JAC1(1:LU_NONZERO)=JAC(1:LU_NONZERO)
+        DO j=1,NVAR
+          JAC(lu_diag_v(j)) = JAC(lu_diag_v(j)) + gHinv
+        END DO
+        CALL KppDecomp (NVAR,JAC,ier) 
+ccc equivalent to function evaluation in forward integration  
+ccc is J^T*Lambda in backward integration    
+        CALL JacTR_SP_Vec ( JAC1, Lambda, F1)      
+      
+C ----- STAGE 1 (AUTONOMOUS) -----
+        K11(1:NVAR) =  F1(1:NVAR) 
+        CALL KppSolveTR (JAC,K11,K1) 
+C ----- STAGE 2 (AUTONOMOUS) -----       
+	y(1:NVAR) = Trajectory(1:NVAR,istep)
+        CALL Jac_SP(Y, Fix, Rconst, JAC1)
+        Ynew(1:NVAR) = Lambda(1:NVAR) - ginv*K1(1:NVAR)
+        CALL JacTR_SP_Vec ( JAC1, Ynew, F1) 
+        beta = -2.d0*ghinv
+        K11(1:NVAR) = F1(1:NVAR) + beta*K1(1:NVAR)
+        CALL KppSolveTR (JAC,K11,K2)
+c ---- The solution
+        Lambda(1:NVAR) = Lambda(1:NVAR)+m1*K1(1:NVAR)+m2*K2(1:NVAR)                
+
+      END DO ! istep
+     
+     
+      RETURN
+      END
+
+ 
+      SUBROUTINE FUNC_CHEM(N, T, Y, P)
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+      INTEGER N
+      KPP_REAL   T, Told
+      KPP_REAL   Y(NVAR), P(NVAR)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Fun( Y,  FIX, RCONST, P )
+      TIME = Told
+      RETURN
+      END
+
+ 
+      SUBROUTINE JAC_CHEM(N, T, Y, J)
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+      INTEGER N
+      KPP_REAL   Told, T
+      KPP_REAL   Y(NVAR), J(LU_NONZERO)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Jac_SP( Y,  FIX, RCONST, J )
+      TIME = Told
+      RETURN
+      END                                                                                                                 
+  
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/ros2_ddm.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/ros2_ddm.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/ros2_ddm.def	(revision 2696)
@@ -0,0 +1,50 @@
+ 
+#FUNCTION AGGREGATE
+#JACOBIAN SPARSE_LU_ROW
+
+#DOUBLE ON 
+#INTFILE ros2_ddm
+#HESSIAN ON 
+
+#INLINE F77_DECL_INT
+      INTEGER Autonomous
+      COMMON /INTGDATA/ Autonomous
+      REAL*8 STEPSTART
+      COMMON /GDATA/ STEPSTART
+#ENDINLINE
+
+#INLINE F77_INIT_INT
+        STEPMIN=1.0E-4
+        STEPMAX=3600.
+        Autonomous = 0
+        STEPSTART=STEPMIN
+#ENDINLINE
+
+#INLINE F90_DECL_INT
+      INTEGER :: Autonomous
+      DOUBLE PRECISION :: STEPSTART
+#ENDINLINE
+
+#INLINE F90_INIT_INT
+        STEPMIN=0.0001
+        STEPMAX=3600.
+        Autonomous = 0
+        STEPSTART=STEPMIN
+#ENDINLINE
+
+#INLINE C_DECL_INT
+    extern int Autonomous;
+    extern double STEPSTART;
+#ENDINLINE
+ 
+#INLINE C_DATA_INT
+    int Autonomous;
+    double STEPSTART;
+#ENDINLINE
+
+#INLINE C_INIT_INT
+        STEPMIN = 0.0001;
+        STEPMAX = 3600.0;
+        Autonomous = 0;
+        STEPSTART = STEPMIN;
+#ENDINLINE                                                                     
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/ros2_ddm.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/ros2_ddm.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/ros2_ddm.f	(revision 2696)
@@ -0,0 +1,480 @@
+      SUBROUTINE INTEGRATE( NSENSIT, Y, TIN, TOUT )
+ 
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+
+      INTEGER NSENSIT
+C TIN - Start Time
+      KPP_REAL TIN
+C TOUT - End Time
+      KPP_REAL TOUT
+C Y - Concentrations and Sensitivities
+      KPP_REAL Y(NVAR*(NSENSIT+1))
+C ---  Note: Y contains: (1:NVAR) concentrations, followed by
+C ---                   (1:NVAR) sensitivities w.r.t. first parameter, followed by
+C ---                   etc.,  followed by          
+C ---                   (1:NVAR) sensitivities w.r.t. NSENSIT's parameter
+
+      INTEGER    INFO(5)
+
+      EXTERNAL FUNC_CHEM, JAC_CHEM
+
+      INFO(1) = Autonomous
+ 
+      CALL ROS2_DDM(NVAR,NSENSIT,TIN,TOUT,STEPMIN,STEPMAX,
+     +                   STEPMIN,Y,ATOL,RTOL,
+     +                   Info,FUNC_CHEM,JAC_CHEM)
+ 
+
+      RETURN
+      END
+  
+
+ 
+ 
+      SUBROUTINE ROS2_DDM(N,NSENSIT,T,Tnext,Hmin,Hmax,Hstart,
+     +                   y,AbsTol,RelTol,
+     +                   Info,FUNC_CHEM,JAC_CHEM)
+      IMPLICIT NONE
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'                                                                                                  
+      INCLUDE 'KPP_ROOT_sparse.h'                                                                                                  
+C
+C  Ros2 with direct-decoupled calculation of sensitivities 
+C
+C The global variable DDMTYPE distinguishes between:
+C      DDMTYPE = 0 : sensitivities w.r.t. initial values
+C      DDMTYPE = 1 : sensitivities w.r.t. parameters
+C
+C  INPUT ARGUMENTS:
+C     y = Vector of:   (1:NVAR) concentrations, followed by
+C                      (1:NVAR) sensitivities w.r.t. first parameter, followed by
+C                       etc.,  followed by          
+C                      (1:NVAR) sensitivities w.r.t. NSENSIT's parameter
+C         (y contains initial values at input, final values at output)
+C     [T, Tnext] = the integration interval
+C     Hmin, Hmax = lower and upper bounds for the selected step-size.
+C          Note that for Step = Hmin the current computed
+C          solution is unconditionally accepted by the error
+C          control mechanism.
+C     AbsTol, RelTol = (NVAR) dimensional vectors of
+C          componentwise absolute and relative tolerances.
+C     FUNC_CHEM = name of routine of derivatives. KPP syntax.
+C          See the header below.
+C     JAC_CHEM = name of routine that computes the Jacobian, in
+C          sparse format. KPP syntax. See the header below.
+C     Info(1) = 1  for  autonomous   system
+C             = 0  for nonautonomous system
+C
+C  OUTPUT ARGUMENTS:
+C     y = the values of concentrations at TEND.
+C     T = equals TEND on output.
+C     Info(2) = # of FUNC_CHEM calls.
+C     Info(3) = # of JAC_CHEM calls.
+C     Info(4) = # of accepted steps.
+C     Info(5) = # of rejected steps.
+C
+C  Adrian Sandu, December 2001
+
+ 
+      INTEGER NSENSIT
+      KPP_REAL y(NVAR*(NSENSIT+1)), ynew(NVAR*(NSENSIT+1))
+      KPP_REAL K1(NVAR*(NSENSIT+1))
+      KPP_REAL K2(NVAR*(NSENSIT+1))
+      KPP_REAL K3(NVAR)
+      KPP_REAL DFDT(NVAR*(NSENSIT+1))
+      KPP_REAL DFDP(NVAR*NSENSIT+1), DFDPDT(NVAR*NSENSIT+1)
+      KPP_REAL DJDP(NVAR*NSENSIT+1)
+      KPP_REAL F1(NVAR), F2(NVAR)
+      KPP_REAL JAC(LU_NONZERO), AJAC(LU_NONZERO)
+      KPP_REAL DJDT(LU_NONZERO)
+      KPP_REAL HESS(NHESS)
+      KPP_REAL Hmin,Hmax,Hnew,Hstart,ghinv,uround
+      KPP_REAL AbsTol(NVAR), RelTol(NVAR)
+      KPP_REAL T, Tnext, H, Hold, Tplus, e
+      KPP_REAL ERR, factor, facmax, dround, elo, tau, gam
+      
+      INTEGER    n,nfcn,njac,Naccept,Nreject,i,j,ier
+      INTEGER    Info(5)
+      LOGICAL    IsReject,Autonomous,Embed3
+      EXTERNAL   FUNC_CHEM, JAC_CHEM, HESS_CHEM                                                                                                
+
+      LOGICAL    negative
+      KPP_REAL gamma, m1, m2, alpha, beta, delta, theta, w
+      KPP_REAL gamma3, d1, d2, d3, beta1, beta2
+      KPP_REAL c31, c32, c34
+ 
+c     Initialization of counters, etc.
+      Autonomous = Info(1) .EQ. 1
+      Embed3  = Info(2) .EQ. 1
+      uround = 1.d-15
+      dround = 1.0d-7 ! DSQRT(uround)
+      H = DMAX1(1.d-8, Hstart)
+      Tplus = T
+      IsReject = .false.
+      Naccept  = 0
+      Nreject  = 0
+      Nfcn     = 0
+      Njac     = 0
+      gamma = 1.d0 + 1.d0/DSQRT(2.0d0)
+      c31 = -1.0D0/gamma**2*(1.0D0-7.0D0*gamma+9.0D0*gamma**2)
+     &         /(-1.0D0+2.0D0*gamma)
+      c32 = -1.0D0/gamma**2*(1.0D0-6.0D0*gamma+6.0D0*gamma**2)
+     &          /(-1.0D0+2.0D0*gamma)/2
+      gamma3 = 0.5D0 - 2*gamma
+      d1 = ((-9.0D0*gamma+8.0D0*gamma**2+2.0D0)/gamma**2/
+     &          (-1.0D0+2*gamma))/6.0D0
+      d2 = ((-1.0D0+3.0D0*gamma)/gamma**2/
+     &          (-1.0D0+2.0D0*gamma))/6.0D0
+      d3 = -1.0D0/(3.0D0*gamma)
+       m1 = -3.d0/(2.d0*gamma)
+       m2 = -1.d0/(2.d0*gamma)
+      
+ 
+C === Starting the time loop ===
+ 10    CONTINUE
+       Tplus = T + H
+       IF ( Tplus .gt. Tnext ) THEN
+          H = Tnext - T
+          Tplus = Tnext
+       END IF
+ 
+C              Initial Function, Jacobian, and Hessian Values
+       CALL FUNC_CHEM(NVAR, T, y, F1)
+       CALL JAC_CHEM(NVAR, T, y, JAC)
+       CALL HESS_CHEM( NVAR, T, y, HESS )
+       IF (DDMTYPE .EQ. 1) THEN
+          CALL DFUNDPAR(NVAR, NSENSIT, T, y, DFDP)
+       END IF	  
+                                                                                                                            
+C              Estimate the time derivatives in non-autonomous case 
+       IF (.not. Autonomous) THEN
+         tau = DSIGN(dround*DMAX1( 1.0d0, DABS(T) ), T)
+         CALL FUNC_CHEM(NVAR, T+tau, y, K2)
+         nfcn=nfcn+1
+         CALL JAC_CHEM(NVAR, T+tau, y, AJAC)
+         njac=njac+1
+         DO 20 j = 1,NVAR
+           DFDT(j) = ( K2(j)-F1(j) )/tau
+ 20      CONTINUE
+         DO 30 j = 1,LU_NONZERO
+           DJDT(j) = ( AJAC(j)-JAC(j) )/tau
+ 30      CONTINUE
+         DO 40 i=1,NSENSIT
+	    CALL Jac_SP_Vec (DJDT,y(i*NVAR+1),DFDT(i*NVAR+1))
+ 40      CONTINUE
+        END IF ! .not. Autonomous
+ 
+       Njac = Njac+1
+       ghinv = - 1.0d0/(gamma*H)
+       DO 50 j=1,LU_NONZERO
+         AJAC(j) = JAC(j) 
+ 50    CONTINUE
+       DO 60 j=1,NVAR
+         AJAC(LU_DIAG(j)) = JAC(LU_DIAG(j)) + ghinv
+ 60    CONTINUE
+       CALL KppDecomp (AJAC, ier)
+ 
+       IF (ier.ne.0) THEN
+         IF ( H.gt.Hmin) THEN
+            H = 5.0d-1*H
+            go to 10
+         ELSE
+            print *,'IER <> 0, H=',H
+            stop
+         END IF
+       END IF
+ 
+                                                                                                                            
+
+
+C ----- STAGE 1 -----
+         delta = gamma*H
+         DO 70 j = 1,NVAR
+           K1(j) =  F1(j) 
+ 70      CONTINUE
+         IF (.NOT. Autonomous) THEN	 
+           DO 80 j = 1,NVAR
+             K1(j) =  K1(j) + delta*DFDT(j)
+ 80        CONTINUE
+	 END IF
+         CALL KppSolve (AJAC, K1)
+C               --- If  derivative w.r.t. parameters
+	 IF (DDMTYPE .EQ. 1) THEN
+	    CALL DJACDPAR(NVAR, NSENSIT, T, y, K1(1), DJDP)
+	 END IF
+C               --- End of derivative w.r.t. parameters	  	 
+	 DO 120 i=1,NSENSIT
+	    CALL Jac_SP_Vec (JAC,y(i*NVAR+1),K1(i*NVAR+1))
+	    CALL Hess_Vec ( HESS, K1(1), y(i*NVAR+1), F2 )
+	    DO 90 j=1,NVAR
+	      K1(i*NVAR+j) = K1(i*NVAR+j) + gHinv*F2(j)
+ 90	    CONTINUE	    
+           IF (.NOT. Autonomous) THEN	 
+             DO 100 j = 1,NVAR
+               K1(i*NVAR+j) =  K1(i*NVAR+j) + delta*DFDT(i*NVAR+j)
+ 100          CONTINUE
+	   END IF
+C               --- If  derivative w.r.t. parameters
+	  IF (DDMTYPE .EQ. 1) THEN
+            DO 110 j = 1,NVAR
+	       K1(i*NVAR+j) = K1(i*NVAR+j) + DFDP((i-1)*NVAR+j) 
+     &                           + DJDP((i-1)*NVAR+j)
+ 110        CONTINUE	  
+	  END IF
+C               --- End of derivative w.r.t. parameters	  	 
+            CALL KppSolve (AJAC, K1(i*NVAR+1))
+ 120	 CONTINUE
+ 
+C ----- STAGE 2   -----
+       alpha = - 1.d0/gamma
+       DO 130 j = 1,NVAR*(NSENSIT+1)
+         ynew(j) = y(j) + alpha*K1(j)
+ 130    CONTINUE
+       CALL FUNC_CHEM(NVAR, T+H, ynew, F1)
+       IF (DDMTYPE.EQ.1) THEN
+         CALL DFUNDPAR(NVAR, NSENSIT, T+H, ynew, DFDP)
+       END IF
+       nfcn=nfcn+1
+       beta1 = 2.d0/(gamma*H)
+       delta = -gamma*H
+       DO 140 j = 1,NVAR
+         K2(j) = F1(j) + beta1*K1(j) 
+ 140   CONTINUE
+       IF (.NOT. Autonomous) THEN	 
+          DO 150 j = 1,NVAR
+               K2(j) =  K2(j) + delta*DFDT(j)
+ 150      CONTINUE
+       END IF
+       CALL KppSolve (AJAC, K2)
+C               --- If  derivative w.r.t. parameters
+       IF (DDMTYPE .EQ. 1) THEN
+	    CALL DJACDPAR(NVAR, NSENSIT, T, y, K2(1), DJDP)
+       END IF
+C               --- End of derivative w.r.t. parameters	  	 
+ 
+       CALL JAC_CHEM(NVAR, T+H, Ynew, JAC)
+       njac=njac+1
+       DO 190 i=1,NSENSIT
+	  CALL Jac_SP_Vec (JAC,ynew(i*NVAR+1),K2(i*NVAR+1))
+	  CALL Jac_SP_Vec (DJDT,y(i*NVAR+1),F1)
+	  CALL Hess_Vec ( HESS, K2(1), y(i*NVAR+1), F2 )
+          DO 160 j = 1,NVAR
+	     K2(i*NVAR+j) = K2(i*NVAR+j) + beta1*K1(i*NVAR+j) 
+     &                       + gHinv*F2(j)
+ 160      CONTINUE	 
+          IF (.NOT. Autonomous) THEN	 
+             DO 170 j = 1,NVAR
+               K2(i*NVAR+j) =  K2(i*NVAR+j) + delta*DFDT(i*NVAR+j)
+ 170         CONTINUE
+	  END IF
+C               --- If  derivative w.r.t. parameters
+	  IF (DDMTYPE .EQ. 1) THEN
+            DO 180 j = 1,NVAR
+	       K2(i*NVAR+j) = K2(i*NVAR+j)  + DFDP((i-1)*NVAR+j) 
+     &                           + DJDP((i-1)*NVAR+j)
+ 180        CONTINUE	  
+	  END IF
+C               --- End of derivative w.r.t. parameters	  	 
+          CALL KppSolve (AJAC, K2(i*NVAR+1))
+ 190    CONTINUE
+ 
+C ----- STAGE 3  for error control only -----
+       IF (Embed3) THEN
+       beta1 = -c31/H
+       beta2 = -c32/H
+       delta = gamma3*H
+       DO 195 j = 1,NVAR
+         K3(j) = F1(j) + beta1*K1(j) + beta2*K2(j)
+ 195   CONTINUE
+       IF (.NOT. Autonomous) THEN
+         DO 196 j = 1,NVAR
+           K3(j) = K3(j) + delta*DFDT(j)
+ 196     CONTINUE
+       END IF
+       CALL KppSolve (AJAC, K3)
+       END IF
+
+C ---- The Solution ---
+       DO 200 j = 1,NVAR*(NSENSIT+1)
+         ynew(j) = y(j) + m1*K1(j) + m2*K2(j)
+ 200   CONTINUE
+ 
+ 
+C ====== Error estimation for concentrations only; this can be easily adapted to
+C                                             estimate the sensitivity error too ========
+ 
+        ERR=0.d0
+        DO 210 i=1,NVAR
+           w = AbsTol(i) + RelTol(i)*DMAX1(DABS(y(i)),DABS(ynew(i)))
+	   IF (Embed3) THEN
+	     e = d1*K1(i) + d2*K2(i) + d3*K3(i)
+	   ELSE
+             e = (1.d0/(2.d0*gamma))*(K1(i)+K2(i))
+	   END IF   
+           ERR = ERR + ( e/w )**2
+ 210    CONTINUE
+        ERR = DMAX1( uround, DSQRT( ERR/NVAR ) )
+ 
+C ======= Choose the stepsize ===============================
+        
+	IF (Embed3) THEN
+           elo    = 3.0D0 ! estimator local order
+	ELSE
+	   elo    = 2.0D0
+	END IF   
+        factor = DMAX1(2.0D-1,DMIN1(6.0D0,ERR**(1.0D0/elo)/.9D0))
+        Hnew   = DMIN1(Hmax,DMAX1(Hmin, H/factor))
+ 
+C ======= Rejected/Accepted Step ============================
+ 
+        IF ( (ERR.gt.1).and.(H.gt.Hmin) ) THEN
+          IsReject = .true.
+	  H = DMIN1(H/10,Hnew)
+          Nreject  = Nreject+1
+        ELSE
+          DO 300 i=1,NVAR*(NSENSIT+1)
+             y(i)  = ynew(i)
+ 300      CONTINUE
+          T = Tplus
+	  IF (.NOT.IsReject) THEN
+	      H = Hnew   ! Do not increase stepsize if previous step was rejected
+	  END IF    
+          IsReject = .false.
+          Naccept = Naccept+1
+        END IF
+ 
+C ======= End of the time loop ===============================
+      IF ( T .lt. Tnext ) GO TO 10
+ 
+ 
+ 
+C ======= Output Information =================================
+      Info(2) = Nfcn
+      Info(3) = Njac
+      Info(4) = Naccept
+      Info(5) = Nreject
+ 
+      RETURN
+      END
+ 
+ 
+  
+      SUBROUTINE FUNC_CHEM(N, T, Y, P)
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+      KPP_REAL   T, Told
+      KPP_REAL   Y(NVAR), P(NVAR)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Fun( Y,  FIX, RCONST, P )
+      TIME = Told
+      RETURN
+      END
+
+ 
+      SUBROUTINE DFUNDPAR(N, NSENSIT, T, Y, P)
+C ---  Computes the partial derivatives of FUNC_CHEM w.r.t. parameters 
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+C ---  NCOEFF, JCOEFF useful for derivatives w.r.t. rate coefficients    
+      INTEGER NCOEFF, JCOEFF(NREACT)
+      COMMON /DDMRCOEFF/ NCOEFF, JCOEFF
+      
+      KPP_REAL   T, Told
+      KPP_REAL   Y(NVAR), P(NVAR*NSENSIT)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+C
+      IF (DDMTYPE .EQ. 0) THEN
+C ---  Note: the values below are for sensitivities w.r.t. initial values;
+C ---       they may have to be changed for other applications
+        DO j=1,NSENSIT
+          DO i=1,NVAR
+	    P(i+NVAR*(j-1)) = 0.0D0
+	  END DO
+        END DO
+      ELSE	
+C ---  Example: the call below is for sensitivities w.r.t. rate coefficients;
+C ---       JCOEFF(1:NSENSIT) are the indices of the NSENSIT rate coefficients
+C ---       w.r.t. which one differentiates
+        CALL dFun_dRcoeff( Y,  FIX, NCOEFF, JCOEFF, P )
+      END IF
+      TIME = Told
+      RETURN
+      END
+ 
+      SUBROUTINE DJACDPAR(N, NSENSIT, T, Y, U, P)
+C ---  Computes the partial derivatives of JAC w.r.t. parameters times user vector U
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+C ---  NCOEFF, JCOEFF useful for derivatives w.r.t. rate coefficients    
+      INTEGER NCOEFF, JCOEFF(NREACT)
+      COMMON /DDMRCOEFF/ NCOEFF, JCOEFF
+      
+      KPP_REAL   T, Told
+      KPP_REAL   Y(NVAR), U(NVAR)
+      KPP_REAL   P(NVAR*NSENSIT)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+C
+      IF (DDMTYPE .EQ. 0) THEN
+C ---  Note: the values below are for sensitivities w.r.t. initial values;
+C ---       they may have to be changed for other applications
+        DO j=1,NSENSIT
+          DO i=1,NVAR
+	    P(i+NVAR*(j-1)) = 0.0D0
+	  END DO
+        END DO
+      ELSE	
+C ---  Example: the call below is for sensitivities w.r.t. rate coefficients;
+C ---       JCOEFF(1:NSENSIT) are the indices of the NSENSIT rate coefficients
+C ---       w.r.t. which one differentiates
+        CALL dJac_dRcoeff( Y,  FIX, U, NCOEFF, JCOEFF, P )
+      END IF
+      TIME = Told
+      RETURN
+      END
+ 
+      SUBROUTINE JAC_CHEM(N, T, Y, J)
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+      INTEGER N
+      KPP_REAL   Told, T
+      KPP_REAL   Y(NVAR), J(LU_NONZERO)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Jac_SP( Y, FIX, RCONST, J )
+      TIME = Told
+      RETURN
+      END                                                                                                                 
+
+ 
+      SUBROUTINE HESS_CHEM(N, T, Y, HESS)
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+      INTEGER N
+      KPP_REAL   Told, T
+      KPP_REAL   Y(NVAR), HESS(NHESS)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Hessian( Y, FIX, RCONST, HESS )
+      TIME = Told
+      RETURN
+      END                                                                                                                 
+
+
+
+
+
+                                                                                                                            
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/ros3.c
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/ros3.c	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/ros3.c	(revision 2696)
@@ -0,0 +1,344 @@
+
+	#define MAX(a,b) ((a) >= (b)) ?(a):(b)
+	#define MIN(b,c) ((b) <  (c)) ?(b):(c)	
+	#define abs(x)   ((x) >=  0 ) ?(x):(-x) 
+	#define dabs(y)  (double)abs(y) 
+	#define DSQRT(d) (double)pow(d,0.5)
+	#define signum(x)((x) >=  0 ) ?(1):(-1)
+
+	void (*forfun)(int,KPP_REAL,KPP_REAL [],KPP_REAL []);
+	void (*forjac)(int,KPP_REAL,KPP_REAL [],KPP_REAL []);
+
+
+
+    void FUNC_CHEM(int N,KPP_REAL T,KPP_REAL Y[NVAR],KPP_REAL P[NVAR])
+       {
+	KPP_REAL Told;
+        Told = TIME;
+        TIME = T;
+        Update_SUN();
+        Update_PHOTO();
+        Fun( Y, FIX, RCONST, P );
+        TIME = Told;
+       }/*  function fun ends here  */
+        
+
+    void JAC_CHEM(int N,KPP_REAL T,KPP_REAL Y[NVAR],KPP_REAL J[LU_NONZERO])
+       { 
+        KPP_REAL Told;
+        Told = TIME;
+        TIME = T;
+        Update_SUN();
+        Update_PHOTO();
+        Jac_SP( Y, FIX, RCONST, J );
+        TIME = Told;
+       }  
+        
+
+      INTEGRATE( KPP_REAL TIN, KPP_REAL TOUT )
+       {
+	
+        /*    TIN - Start Time		*/
+        /*    TOUT - End Time		*/
+   
+	int INFO[5];
+	forfun = &FUNC_CHEM;
+	forjac = &JAC_CHEM;	
+        INFO[0] = Autonomous;
+	ROS3(NVAR,TIN,TOUT,STEPMIN,STEPMAX,STEPMIN,VAR,ATOL,RTOL,INFO
+        ,forfun,forjac);
+       }	/* function integrate ends here  */
+     
+
+      
+int ROS3(int N,KPP_REAL T,KPP_REAL Tnext,KPP_REAL Hmin,KPP_REAL Hmax,
+KPP_REAL Hstart,KPP_REAL y[NVAR],KPP_REAL AbsTol[NVAR],KPP_REAL RelTol[NVAR],
+int INFO[5],void (*forfun)(int,KPP_REAL,KPP_REAL [],KPP_REAL []) ,
+void (*forjac)(int,KPP_REAL,KPP_REAL [],KPP_REAL []) )
+  {
+    
+/*  
+
+       L-stable Rosenbrock 3(2), with 
+     strongly A-stable embedded formula for error control.  
+
+     All the arguments aggree with the KPP syntax.
+
+  INPUT ARGUMENTS:
+     y = Vector of (NVAR) concentrations, contains the
+         initial values on input
+     [T, Tnext] = the integration interval
+     Hmin, Hmax = lower and upper bounds for the selected step-size.
+          Note that for Step = Hmin the current computed
+          solution is unconditionally accepted by the error
+          control mechanism.
+     AbsTol, RelTol = (NVAR) dimensional vectors of 
+          componentwise absolute and relative tolerances.
+     FUNC_CHEM = name of routine of derivatives. KPP syntax.
+          See the header below.
+     JAC_CHEM = name of routine that computes the Jacobian, in
+          sparse format. KPP syntax. See the header below.
+     Info(1) = 1  for  autonomous   system
+             = 0  for nonautonomous system 
+
+  OUTPUT ARGUMENTS:
+     y = the values of concentrations at Tend.
+     T = equals Tend on output.
+     Info(2) = # of FUNC_CHEM calls.
+     Info(3) = # of JAC_CHEM calls.
+     Info(4) = # of accepted steps.
+     Info(5) = # of rejected steps.
+    
+     Adrian Sandu, April 1996
+     The Center for Global and Regional Environmental Research
+*/
+
+      KPP_REAL K1[NVAR], K2[NVAR], K3[NVAR];
+      KPP_REAL F1[NVAR], JAC[LU_NONZERO];
+      KPP_REAL ghinv,uround,dround,c43,x1,x2,x3,ytol;
+      KPP_REAL gam,c21,c31,c32,b1,b2,b3,d1,d2,d3,a21,a31,a32,alpha2,alpha3,
+      		   g1,g2,g3;	 	
+      KPP_REAL ynew[NVAR];
+      KPP_REAL H, Hold, Tplus,tau;
+      KPP_REAL ERR, factor, facmax;
+      int n,nfcn,njac,Naccept,Nreject,i,j,ier;
+      char IsReject,Autonomous;
+
+
+/*     Initialization of counters, etc.		*/
+      Autonomous = (INFO[0] == 1);         
+      uround = (double)1.e-15;
+      dround = DSQRT(uround);
+      H = MAX( (double)1.e-8, Hstart);
+      Tplus = T;
+      IsReject = 0;
+      Naccept  = 0;
+      Nreject  = 0;
+      nfcn     = 0;
+      njac     = 0;
+      gam  =   (double)  (.43586652150845899941601945119356e+00);
+      c21  =   (double) -(.10156171083877702091975600115545e+01);
+      c31  =   (double)  (.40759956452537699824805835358067e+01);
+      c32  =   (double)  (.92076794298330791242156818474003e+01);
+       b1  =   (double)  (.10000000000000000000000000000000e+01);
+       b2  =   (double)  (.61697947043828245592553615689730e+01);
+       b3  =   (double) -(.42772256543218573326238373806514e+00);
+       d1  =   (double)  (.50000000000000000000000000000000e+00);
+       d2  =   (double) -(.29079558716805469821718236208017e+01);
+       d3  =   (double)  (.22354069897811569627360909276199e+00);
+       a21 =   (double) 1.e0;
+       a31 =   (double) 1.e0;
+       a32 =   (double) 0.e0;
+       alpha2 = gam;
+       alpha3 = gam;
+       g1  =   (double)  (.43586652150845899941601945119356e+00);
+       g2  =   (double)  (.24291996454816804366592249683314e+00);
+       g3  =   (double)  (.21851380027664058511513169485832e+01);
+
+
+/* === Starting the time loop ===      */
+
+while( T < Tnext )
+ {
+  ten :  
+       Tplus = T + H;
+       
+       if ( Tplus > Tnext ) 
+       {
+          H = Tnext - T;
+          Tplus = Tnext;
+       }
+
+       (*forjac)(NVAR, T, y, JAC);
+       
+       njac = njac+1;
+       ghinv = (double)-1.0e0/(gam*H);
+
+       for(j=0;j<LU_NONZERO;j++)
+           JAC[j] = -JAC[j];
+       
+     
+
+       for(j=0;j<NVAR;j++)
+           JAC[LU_DIAG[j]] = JAC[LU_DIAG[j]] - ghinv;
+	 	
+	
+	
+       ier = KppDecomp (JAC);
+ 
+       if ( ier != 0)
+       {
+        if( H > Hmin ) 
+  	{
+   	 H = (double)5.0e-1*H; 
+   	 goto ten;	   
+  	}
+  	else
+  	 {
+	  printf("IER <> 0 , H = %d", H);
+	 }  
+       }/* main ier if ends*/	
+		
+
+       (*forfun)(NVAR, T, y, F1);
+       
+
+/* ====== NONAUTONOMOUS CASE =============== */
+       if( Autonomous == 0 ) 
+       {
+         tau =(double) (dround*MAX( (double)1.0e-6, dabs(T) ) * signum(T) );
+
+         (*forfun)(NVAR, T+tau, y, K2);
+	 
+         nfcn=nfcn+1;
+         
+	 for(j=0;j<NVAR;j++)
+	     K3[j] = ( K2[j]-F1[j] )/tau;
+	   
+ 
+
+/* ----- STAGE 1 (NONAUTONOMOUS) ----- */
+         x1 = (double)g1*H;
+	 
+         for(j=0;j<NVAR;j++)
+	     K1[j] =  F1[j] + x1*K3[j];
+	    
+         KppSolve (JAC, K1);
+      
+/* ----- STAGE 2 (NONAUTONOMOUS) -----    */
+        for(j = 0;j<NVAR;j++)
+            ynew[j] = y[j] + K1[j]; 
+        
+       (*forfun)(NVAR, T+gam*H, ynew, F1);
+       nfcn=nfcn+1;
+       x1 = (double)(c21/H);
+       x2 = (double)(g2*H);
+       for(j = 0;j<NVAR;j++)
+           K2[j] = F1[j] + x1*K1[j] + x2*K3[j];
+	
+       KppSolve (JAC, K2);
+       
+/* ----- STAGE 3  (NONAUTONOMOUS) -----        */
+       x1 = (double)(c31/H);
+       x2 = (double)(c32/H);
+       x3 = (double)(g3*H);
+       for(j=0;j<NVAR;j++)
+           K3[j] = F1[j] + x1*K1[j] + x2*K2[j] + x3*K3[j];
+       
+       KppSolve (JAC, K3);
+      }/* "if" nonautonomous case ends here */	
+
+
+
+/* ====== AUTONOMOUS CASE ===============  */
+
+       else
+       {
+       
+/* ----- STAGE 1 (AUTONOMOUS) -----   */
+
+         for(j = 0;j < NVAR;j++)
+	     K1[j] =  F1[j]; 
+	  
+	 KppSolve (JAC, K1);
+  
+      
+/* ----- STAGE 2 (AUTONOMOUS) ----- */
+       for(j = 0;j < NVAR;j++)
+           ynew[j] = y[j] + K1[j];
+	
+	
+       (*forfun)(NVAR, T + gam*H, ynew, F1);
+       nfcn=nfcn+1;
+         x1 = (double)c21/H;
+         for(j = 0;j < NVAR;j++)
+	     K2[j] = F1[j] + x1*K1[j]; 
+         
+         KppSolve (JAC, K2);
+       
+/* ----- STAGE 3  (AUTONOMOUS) -----   */
+
+       x1 = (double)(c31/H);
+       x2 = (double)(c32/H);
+       for(j = 0;j < NVAR;j++)
+           K3[j] = F1[j] + x1*K1[j] + x2*K2[j];
+       
+       KppSolve (JAC, K3);
+
+       }/*  Autonomousous case ends here  */
+       
+       
+    /*   ---- The Solution ---      */
+
+        for(j = 0;j < NVAR;j++)
+	    ynew[j] = y[j] + b1*K1[j] + b2*K2[j] + b3*K3[j]; 
+        
+
+
+/* ====== Error estimation ========   */
+
+        ERR=(double)0.e0;
+        for(i=0;i<NVAR;i++)
+	{
+           ytol = AbsTol[i] + RelTol[i]*dabs(ynew[i]);
+           ERR = (double)(ERR+ pow( (double) ( (d1*K1[i]+d2*K2[i]+d3*K3[i])/ytol ) , 2 ));
+        }      
+        ERR = (double)MAX( uround, DSQRT( ERR/NVAR ) );
+
+/*
+this is the library i am linkin it to 
+[sdmehra@herbert small_strato]$ ldd small_strato
+        libm.so.6 => /lib/libm.so.6 (0x40015000)
+        libc.so.6 => /lib/libc.so.6 (0x40032000)
+       /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)                                                             
+*/
+
+/* ======= Choose the stepsize ===============================   */
+
+        factor = 0.9/pow( ERR , (1.e0/3.e0) );
+        if(IsReject == 1)
+           facmax = (double)1.0;
+	    
+        else
+           facmax = (double)10.0;
+	 
+	    
+        factor = (double)MAX( 1.0e-1, MIN(factor,facmax) );
+        Hold = H;
+        H = (double)MIN( Hmax, MAX(Hmin,factor*H) );
+	    
+
+/* ======= Rejected/Accepted Step ============================   */
+
+        if ( (ERR > 1) && (Hold > Hmin) ) 
+	{
+          IsReject = 1;
+          Nreject  = Nreject+1;
+        }
+	else
+        {
+	  IsReject = 0;
+         
+	 for(i = 0;i < NVAR;i++)
+	     y[i]  = ynew[i];
+         	     
+          T = Tplus;     
+          Naccept = Naccept+1;
+
+	}/*   else should end here */
+        
+
+/* ======= End of the time loop ===============================  */
+  
+   } /*      while loop (T < Tnext) ends here    */
+     
+      
+/* ======= Output Information =================================   */
+      INFO[1] = nfcn;
+      INFO[2] = njac;
+      INFO[3] = Naccept;
+      INFO[4] = Nreject;
+      
+    } /* function rodas ends here   */     
+
+  
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/ros3.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/ros3.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/ros3.def	(revision 2696)
@@ -0,0 +1,46 @@
+ 
+#FUNCTION AGGREGATE
+#JACOBIAN SPARSE_LU_ROW
+
+#DOUBLE ON 
+#INTFILE ros3
+
+#INLINE F77_DECL_INT
+      INTEGER Autonomous
+      COMMON /INTGDATA/ Autonomous
+      REAL*8 STEPSTART
+      COMMON /GDATA/ STEPSTART
+#ENDINLINE
+
+#INLINE F77_INIT_INT
+        STEPMIN=0.0001
+        STEPMAX=3600.
+        Autonomous = 0
+        STEPSTART=STEPMIN
+#ENDINLINE
+
+
+#INLINE F90_DECL_INT
+      INTEGER Autonomous
+      DOUBLE PRECISION STEPSTART
+#ENDINLINE
+
+#INLINE F90_INIT_INT
+        STEPMIN=0.0001
+        STEPMAX=3600.
+        Autonomous = 0
+        STEPSTART=STEPMIN
+#ENDINLINE
+
+#INLINE C_DECL_INT
+  int Autonomous;
+  double STEPSTART;
+#ENDINLINE
+
+#INLINE C_INIT_INT
+  STEPMIN=1e-4;
+  STEPMAX=3600.;
+  Autonomous = 0;
+  STEPSTART=STEPMIN;
+#ENDINLINE
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/ros3.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/ros3.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/ros3.f	(revision 2696)
@@ -0,0 +1,304 @@
+      SUBROUTINE INTEGRATE( TIN, TOUT )
+
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+
+C TIN - Start Time
+      KPP_REAL TIN
+C TOUT - End Time
+      KPP_REAL TOUT
+
+      INTEGER    INFO(5)
+
+      EXTERNAL   FUNC_CHEM, JAC_CHEM
+
+      INFO(1) = Autonomous
+
+        CALL ROS3(NVAR,TIN,TOUT,STEPMIN,STEPMAX,
+     +                   STEPMIN,VAR,ATOL,RTOL,
+     +                   Info,FUNC_CHEM,JAC_CHEM)
+
+      RETURN
+      END
+
+      
+      SUBROUTINE ROS3(N,T,Tnext,Hmin,Hmax,Hstart,
+     +                   y,AbsTol,RelTol,
+     +                   Info,FUNC_CHEM,JAC_CHEM)
+      IMPLICIT NONE
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_sparse.h'
+
+C       L-stable Rosenbrock 3(2), with 
+C     strongly A-stable embedded formula for error control.  
+C
+C     All the arguments aggree with the KPP syntax.
+C
+C  INPUT ARGUMENTS:
+C     y = Vector of (NVAR) concentrations, contains the
+C         initial values on input
+C     [T, Tnext] = the integration interval
+C     Hmin, Hmax = lower and upper bounds for the selected step-size.
+C          Note that for Step = Hmin the current computed
+C          solution is unconditionally accepted by the error
+C          control mechanism.
+C     AbsTol, RelTol = (NVAR) dimensional vectors of 
+C          componentwise absolute and relative tolerances.
+C     FUNC_CHEM = name of routine of derivatives. KPP syntax.
+C          See the header below.
+C     JAC_CHEM = name of routine that computes the Jacobian, in
+C          sparse format. KPP syntax. See the header below.
+C     Info(1) = 1  for  autonomous   system
+C             = 0  for nonautonomous system 
+C
+C  OUTPUT ARGUMENTS:
+C     y = the values of concentrations at Tend.
+C     T = equals Tend on output.
+C     Info(2) = # of FUNC_CHEM calls.
+C     Info(3) = # of JAC_CHEM calls.
+C     Info(4) = # of accepted steps.
+C     Info(5) = # of rejected steps.
+C    
+C     Adrian Sandu, April 1996
+C     The Center for Global and Regional Environmental Research
+
+      KPP_REAL K1(NVAR), K2(NVAR), K3(NVAR)
+      KPP_REAL F1(NVAR), JAC(LU_NONZERO)
+      KPP_REAL Hmin,Hmax,Hnew,Hstart,ghinv,uround
+      KPP_REAL y(NVAR), ynew(NVAR)
+      KPP_REAL AbsTol(NVAR), RelTol(NVAR)
+      KPP_REAL T, Tnext, Tplus, H, elo
+      KPP_REAL ERR, factor, facmax
+      KPP_REAL gam, c21, c31, c32, b1, b2, b3
+      KPP_REAL d1, d2, d3, a21, a31, a32
+      KPP_REAL alpha2, alpha3, g1, g2, g3
+      KPP_REAL tau, x1, x2, x3, dround, ytol
+      INTEGER    n,nfcn,njac,Naccept,Nreject,i,j,ier
+      INTEGER    Info(5)
+      LOGICAL    IsReject,Autonomous
+      EXTERNAL   FUNC_CHEM, JAC_CHEM
+      
+      gam=   .43586652150845899941601945119356d+00
+      c21=  -.10156171083877702091975600115545d+01
+      c31=   .40759956452537699824805835358067d+01
+      c32=   .92076794298330791242156818474003d+01
+       b1=   .10000000000000000000000000000000d+01
+       b2=   .61697947043828245592553615689730d+01
+       b3=  -.42772256543218573326238373806514d+00
+       d1=   .50000000000000000000000000000000d+00
+       d2=  -.29079558716805469821718236208017d+01
+       d3=   .22354069897811569627360909276199d+00
+       a21 = 1.d0
+       a31 = 1.d0
+       a32 = 0.d0
+       alpha2 = gam
+       alpha3 = gam
+       g1=   .43586652150845899941601945119356d+00
+       g2=   .24291996454816804366592249683314d+00
+       g3=   .21851380027664058511513169485832d+01
+
+
+c     Initialization of counters, etc.
+      Autonomous = Info(1) .EQ. 1
+      uround = 1.d-15
+      dround = DSQRT(uround)
+      IF (Hmax.le.0.D0) THEN
+          Hmax = DABS(Tnext-T)
+      END IF	  
+      H = DMAX1(1.d-8, Hstart)
+      Tplus = T
+      IsReject = .false.
+      Naccept  = 0
+      Nreject  = 0
+      Nfcn     = 0
+      Njac     = 0
+
+C === Starting the time loop ===      
+ 10    continue  
+ 
+       Tplus = T + H
+       if ( Tplus .gt. Tnext ) then
+          H = Tnext - T
+          Tplus = Tnext
+       end if
+
+       CALL JAC_CHEM(NVAR, T, y, JAC)
+       Njac = Njac+1
+       gHinv = -1.0d0/(gam*H)
+       do 15 j=1,LU_NONZERO
+         JAC(j) = -JAC(j) 
+ 15    continue
+       do 20 j=1,NVAR
+         JAC(LU_DIAG(j)) = JAC(LU_DIAG(j)) - gHinv
+ 20    continue
+       CALL KppDecomp (JAC, ier)
+
+       if (ier.ne.0) then
+         if ( H.gt.Hmin) then
+            H = 5.0d-1*H
+            go to 10
+         else
+            print *,'IER <> 0, H=',H
+            stop
+         end if      
+       end if  
+       
+       CALL FUNC_CHEM(NVAR, T, y, F1)
+
+C ====== NONAUTONOMOUS CASE ===============
+       IF (.not. Autonomous) THEN
+         tau = DSIGN(dround*DMAX1( 1.0d-6, DABS(T) ), T)
+         CALL FUNC_CHEM(NVAR, T+tau, y, K2)
+         nfcn=nfcn+1
+         do 30 j = 1,NVAR
+           K3(j) = ( K2(j)-F1(j) )/tau
+ 30      continue
+ 
+C ----- STAGE 1 (NONAUTONOMOUS) -----
+         x1 = g1*H
+         do 35 j = 1,NVAR
+           K1(j) =  F1(j) + x1*K3(j)
+ 35      continue
+         CALL KppSolve (JAC, K1)
+      
+C ----- STAGE 2 (NONAUTONOMOUS) -----
+       do 40 j = 1,NVAR
+         ynew(j) = y(j) + K1(j) 
+ 40    continue
+       CALL FUNC_CHEM(NVAR, T+gam*H, ynew, F1)
+       nfcn=nfcn+1
+       x1 = c21/H
+       x2 = g2*H
+       do 45 j = 1,NVAR
+         K2(j) = F1(j) + x1*K1(j) + x2*K3(j)
+ 45    continue
+       CALL KppSolve (JAC, K2)
+       
+C ----- STAGE 3  (NONAUTONOMOUS) -----
+       x1 = c31/H
+       x2 = c32/H
+       x3 = g3*H
+       do 50 j = 1,NVAR
+         K3(j) = F1(j) + x1*K1(j) + x2*K2(j) + x3*K3(j)
+ 50    continue
+       CALL KppSolve (JAC, K3)
+
+
+C ====== AUTONOMOUS CASE ===============
+       ELSE
+
+C ----- STAGE 1 (AUTONOMOUS) -----
+         do 60 j = 1,NVAR
+           K1(j) =  F1(j) 
+ 60      continue
+         CALL KppSolve (JAC, K1)
+      
+C ----- STAGE 2 (AUTONOMOUS) -----
+       do 65 j = 1,NVAR
+         ynew(j) = y(j) + K1(j) 
+ 65    continue
+       CALL FUNC_CHEM(NVAR, T + gam*H, ynew, F1)
+       nfcn=nfcn+1
+         x1 = c21/H
+         do 70 j = 1,NVAR
+           K2(j) = F1(j) + x1*K1(j) 
+ 70      continue
+         CALL KppSolve (JAC, K2)
+       
+C ----- STAGE 3  (AUTONOMOUS) -----
+       x1 = c31/H
+       x2 = c32/H
+       do 90 j = 1,NVAR
+         K3(j) = F1(j) + x1*K1(j) + x2*K2(j)
+ 90    continue
+       CALL KppSolve (JAC, K3)
+
+       END  IF ! Autonomousous
+
+C ---- The Solution ---
+
+       do 120 j = 1,NVAR
+         ynew(j) = y(j) + b1*K1(j) + b2*K2(j) + b3*K3(j) 
+ 120   continue
+
+
+C ====== Error estimation ========
+
+        ERR=0.d0
+        do 130 i=1,NVAR
+           ytol = AbsTol(i) + RelTol(i)*DMAX1(DABS(y(i)),DABS(ynew(i)))
+           ERR=ERR+((d1*K1(i)+d2*K2(i)+d3*K3(i))/ytol)**2
+ 130    continue      
+        ERR = DMAX1( uround, DSQRT( ERR/NVAR ) )
+
+C ======= Choose the stepsize ===============================
+ 
+        elo    = 3.0D0 ! estimator local order
+        factor = DMAX1(2.0D-1,DMIN1(6.0D0,ERR**(1.0D0/elo)/.9D0))
+        Hnew   = DMIN1(Hmax,DMAX1(Hmin, H/factor))
+ 
+C ======= Rejected/Accepted Step ============================
+ 
+        IF ( (ERR.gt.1).and.(H.gt.Hmin) ) THEN
+          IsReject = .true.
+	  H = DMIN1(H/10,Hnew)
+          Nreject  = Nreject+1
+        ELSE
+          DO 140 i=1,NVAR
+             y(i)  = ynew(i)
+ 140      CONTINUE
+          T = Tplus
+	  IF (.NOT.IsReject) THEN
+	      H = Hnew   ! Do not increase stepsize if previos step was rejected
+	  END IF    
+          IsReject = .false.
+          Naccept = Naccept+1
+        END IF
+
+
+C ======= End of the time loop ===============================
+      if ( T .lt. Tnext ) go to 10
+     
+      
+C ======= Output Information =================================
+      Info(2) = Nfcn
+      Info(3) = Njac
+      Info(4) = Naccept
+      Info(5) = Nreject
+      Hstart  = H
+      
+      RETURN 
+      END        
+
+  
+ 
+      SUBROUTINE FUNC_CHEM(N, T, Y, P)
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+      INTEGER N
+      KPP_REAL   T, Told
+      KPP_REAL   Y(NVAR), P(NVAR)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Fun( Y,  FIX, RCONST, P )
+      TIME = Told
+      RETURN
+      END
+ 
+      SUBROUTINE JAC_CHEM(N, T, Y, J)
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+      INTEGER N
+      KPP_REAL   Told, T
+      KPP_REAL   Y(NVAR), J(LU_NONZERO)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Jac_SP( Y,  FIX, RCONST, J )
+      TIME = Told
+      RETURN
+      END                                                                                                                 
+  
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/ros3_ddm.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/ros3_ddm.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/ros3_ddm.def	(revision 2696)
@@ -0,0 +1,51 @@
+ 
+#FUNCTION AGGREGATE
+#JACOBIAN SPARSE_LU_ROW
+
+#DOUBLE ON 
+#INTFILE ros3_ddm
+#HESSIAN ON 
+
+#INLINE F77_DECL_INT
+      INTEGER Autonomous
+      COMMON /INTGDATA/ Autonomous
+      REAL*8 STEPSTART
+      COMMON /GDATA/ STEPSTART
+#ENDINLINE
+
+#INLINE F77_INIT_INT
+        STEPMIN=1.0E-4
+        STEPMAX=3600.
+        Autonomous = 0
+        STEPSTART=STEPMIN
+#ENDINLINE
+
+
+#INLINE F90_DECL_INT
+      INTEGER :: Autonomous
+      DOUBLE PRECISION :: STEPSTART
+#ENDINLINE
+
+#INLINE F90_INIT_INT
+        STEPMIN=1.0E-4
+        STEPMAX=3600.
+        Autonomous = 0
+        STEPSTART=STEPMIN
+#ENDINLINE
+
+#INLINE C_DECL_INT
+    extern int Autonomous;
+    extern double STEPSTART;
+#ENDINLINE
+ 
+#INLINE C_DATA_INT
+    int Autonomous;
+    double STEPSTART;
+#ENDINLINE
+
+#INLINE C_INIT_INT
+        STEPMIN = 0.0001;
+        STEPMAX = 3600.0;
+        Autonomous = 0;
+        STEPSTART = STEPMIN;
+#ENDINLINE                                                                     
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/ros3_ddm.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/ros3_ddm.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/ros3_ddm.f	(revision 2696)
@@ -0,0 +1,503 @@
+      SUBROUTINE INTEGRATE( NSENSIT, Y, TIN, TOUT )
+
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+
+C TIN - Start Time
+      KPP_REAL TIN
+C TOUT - End Time
+      KPP_REAL TOUT
+C Y - Concentrations and Sensitivities
+      KPP_REAL Y(NVAR*(NSENSIT+1))
+C ---  Note: Y contains: (1:NVAR) concentrations, followed by
+C ---                   (1:NVAR) sensitivities w.r.t. first parameter, followed by
+C ---                   etc.,  followed by          
+C ---                   (1:NVAR) sensitivities w.r.t. NSENSIT's parameter
+
+      INTEGER    INFO(5)
+
+      EXTERNAL   FUNC_CHEM, JAC_CHEM
+
+      INFO(1) = Autonomous
+
+        CALL ROS3_DDM(NVAR,NSENSIT,TIN,TOUT,STEPMIN,STEPMAX,
+     +                   STEPMIN,Y,ATOL,RTOL,
+     +                   Info,FUNC_CHEM,JAC_CHEM)
+
+      RETURN
+      END
+
+      
+      SUBROUTINE ROS3_DDM(N,NSENSIT,T,Tnext,Hmin,Hmax,Hstart,
+     +                   y,AbsTol,RelTol,
+     +                   Info,FUNC_CHEM,JAC_CHEM)
+      IMPLICIT NONE
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+      INCLUDE 'KPP_ROOT_sparse.h'
+
+C       L-stable Rosenbrock 3(2), with 
+C     strongly A-stable embedded formula for error control.  
+C
+C Direct decoupled computation of sensitivities.
+C The global variable DDMTYPE distinguishes between:
+C      DDMTYPE = 0 : sensitivities w.r.t. initial values
+C      DDMTYPE = 1 : sensitivities w.r.t. parameters
+C
+C     All the arguments aggree with the KPP syntax.
+C
+C  INPUT ARGUMENTS:
+C     y = Vector of:   (1:NVAR) concentrations, followed by
+C                      (1:NVAR) sensitivities w.r.t. first parameter, followed by
+C                       etc.,  followed by          
+C                      (1:NVAR) sensitivities w.r.t. NSENSIT's parameter
+C         (y contains initial values at input, final values at output)
+C     [T, Tnext] = the integration interval
+C     Hmin, Hmax = lower and upper bounds for the selected step-size.
+C          Note that for Step = Hmin the current computed
+C          solution is unconditionally accepted by the error
+C          control mechanism.
+C     AbsTol, RelTol = (NVAR) dimensional vectors of 
+C          componentwise absolute and relative tolerances.
+C     FUNC_CHEM = name of routine of derivatives. KPP syntax.
+C          See the header below.
+C     JAC_CHEM = name of routine that computes the Jacobian, in
+C          sparse format. KPP syntax. See the header below.
+C     Info(1) = 1  for  Autonomous   system
+C             = 0  for nonAutonomous system 
+C
+C  OUTPUT ARGUMENTS:
+C     y = the values of concentrations at TEND.
+C     T = equals TEND on output.
+C     Info(2) = # of FUNC_CHEM calls.
+C     Info(3) = # of JAC_CHEM calls.
+C     Info(4) = # of accepted steps.
+C     Info(5) = # of rejected steps.
+C    
+C     Adrian Sandu, April 1996
+C     The Center for Global and Regional Environmental Research
+      INTEGER     NSENSIT
+      KPP_REAL y(NVAR*(NSENSIT+1)), ynew(NVAR*(NSENSIT+1))
+      KPP_REAL K1(NVAR*(NSENSIT+1))
+      KPP_REAL K2(NVAR*(NSENSIT+1))
+      KPP_REAL K3(NVAR*(NSENSIT+1))
+      KPP_REAL DFDT(NVAR*(NSENSIT+1))
+      KPP_REAL DFDP(NVAR*NSENSIT), DFDPDT(NVAR*NSENSIT)
+      KPP_REAL DJDP(NVAR*NSENSIT)
+      KPP_REAL JAC(LU_NONZERO), AJAC(LU_NONZERO)
+      KPP_REAL DJDT(LU_NONZERO)
+      KPP_REAL Fv(NVAR), Hv(NVAR)
+      KPP_REAL HESS(NHESS)
+      KPP_REAL Hmin,Hmax,Hstart,ghinv,uround
+      KPP_REAL AbsTol(NVAR), RelTol(NVAR)
+      KPP_REAL T, Tnext, Tplus, H, Hnew, elo
+      KPP_REAL ERR, factor, facmax
+      INTEGER    n,nfcn,njac,Naccept,Nreject,i,j,ier
+      INTEGER    Info(5)
+      LOGICAL    IsReject,Autonomous
+      EXTERNAL   FUNC_CHEM, JAC_CHEM, HESS_CHEM
+      
+      KPP_REAL gamma, c21, c31,c32,b1,b2,b3,d1,d2,d3,a21,a31,a32
+      KPP_REAL alpha2, alpha3, g1, g2, g3, x1, x2, x3, ytol
+      KPP_REAL dround, tau
+      
+      gamma= .43586652150845899941601945119356d+00
+      c21=  -.10156171083877702091975600115545d+01
+      c31=   .40759956452537699824805835358067d+01
+      c32=   .92076794298330791242156818474003d+01
+       b1=   .10000000000000000000000000000000d+01
+       b2=   .61697947043828245592553615689730d+01
+       b3=  -.42772256543218573326238373806514d+00
+       d1=   .50000000000000000000000000000000d+00
+       d2=  -.29079558716805469821718236208017d+01
+       d3=   .22354069897811569627360909276199d+00
+       a21 = 1.d0
+       a31 = 1.d0
+       a32 = 0.d0
+       alpha2 = gamma
+       g1=   .43586652150845899941601945119356d+00
+       g2=   .24291996454816804366592249683314d+00
+       g3=   .21851380027664058511513169485832d+01
+
+
+c     Initialization of counters, etc.
+      Autonomous = Info(1) .EQ. 1
+      uround = 1.d-15
+      dround = DSQRT(uround)
+      IF (Hmax.le.0.D0) THEN
+          Hmax = DABS(Tnext-T)
+      END IF	  
+      H = DMAX1(1.d-8, Hstart)
+      Tplus = T
+      IsReject = .false.
+      Naccept  = 0
+      Nreject  = 0
+      Nfcn     = 0
+      Njac     = 0
+
+
+C === Starting the time loop ===      
+ 10    CONTINUE  
+
+C ====== Initial Function, Jacobian, and Hessian values ===============
+       CALL FUNC_CHEM(NVAR, T, y, Fv)
+       Nfcn = Nfcn + 1
+       CALL JAC_CHEM(NVAR, T, y, JAC)
+       Njac = Njac + 1
+       CALL HESS_CHEM( NVAR, T, y, HESS )
+       IF (DDMTYPE .EQ. 1) THEN
+          CALL DFUNDPAR(NVAR, NSENSIT, T, y, DFDP)
+       END IF	  
+       
+C ====== Time derivatives for NONAutonomousous CASE ===============
+       IF (.not. Autonomous) THEN
+         tau = DSIGN(dround*DMAX1( 1.0d-6, DABS(T) ), T)
+         CALL FUNC_CHEM(NVAR, T+tau, y, K2)
+         nfcn=nfcn+1
+         DO 20 j = 1,NVAR
+           DFDT(j) = ( K2(j)-Fv(j) )/tau
+ 20      CONTINUE
+         CALL JAC_CHEM(NVAR, T+tau, y, AJAC)
+         DO 30 j = 1,LU_NONZERO
+           DJDT(j) = ( AJAC(j)-JAC(j) )/tau
+ 30      CONTINUE
+         DO 40 i=1,NSENSIT
+	    CALL Jac_SP_Vec (DJDT,y(i*NVAR+1),DFDT(i*NVAR+1))
+ 40      CONTINUE
+       END IF
+ 
+       
+       Tplus = T + H
+       IF ( Tplus .gt. Tnext ) then
+          H = Tnext - T
+          Tplus = Tnext
+       END IF
+
+       gHinv = 1.0d0/(gamma*H)
+       DO 50 j=1,LU_NONZERO
+         AJAC(j) = -JAC(j) 
+ 50    CONTINUE
+       DO 60 j=1,NVAR
+         AJAC(LU_DIAG(j)) = AJAC(LU_DIAG(j)) + gHinv
+ 60    CONTINUE
+       CALL KppDecomp (AJAC, ier)
+
+       IF (ier.NE.0) THEN
+         IF ( H.GT.Hmin) THEN
+            H = 5.0d-1*H
+            GO TO 10
+         ELSE
+            PRINT *,'IER <> 0, H=',H
+            STOP
+         END IF      
+       END IF  
+       
+       Autonomous = .true.
+       
+C ------------------------------- STAGE 1 --------------------------------------
+       DO 70 j = 1,NVAR
+           K1(j) =  Fv(j) 
+ 70    CONTINUE
+       IF (.NOT.Autonomous) THEN
+         x1 = gamma*H
+         DO 80 j = 1,NVAR
+            K1(j) = K1(j) + x1*DFDT(j)
+ 80     CONTINUE       
+       END IF 
+       CALL KppSolve (AJAC, K1)
+C               --- If  derivative w.r.t. parameters
+	 IF (DDMTYPE .EQ. 1) THEN
+	    CALL DJACDPAR(NVAR, NSENSIT, T, y, K1(1), DJDP)
+	 END IF
+C               --- End of derivative w.r.t. parameters	  	 
+
+       DO 110 i=1,NSENSIT
+	  CALL Jac_SP_Vec (JAC,y(i*NVAR+1),K1(i*NVAR+1))
+	  CALL Hess_Vec ( HESS, y(i*NVAR+1), K1(1), Hv )
+	  DO 90 j=1,NVAR
+	    K1(i*NVAR+j) = K1(i*NVAR+j) + Hv(j)
+ 90	  CONTINUE	    
+          IF (.NOT. Autonomous) THEN
+	    DO 100 j=1,NVAR
+	      K1(i*NVAR+j) = K1(i*NVAR+j) + x1*DFDT(i*NVAR+j)
+ 100        CONTINUE
+          END IF
+C               --- If  derivative w.r.t. parameters
+	  IF (DDMTYPE .EQ. 1) THEN
+            DO 44 j = 1,NVAR
+	       K1(i*NVAR+j) = K1(i*NVAR+j) + DFDP((i-1)*NVAR+j) 
+     &                           + DJDP((i-1)*NVAR+j)
+ 44        CONTINUE	  
+	  END IF
+C               --- End of derivative w.r.t. parameters	  	 
+          CALL KppSolve (AJAC, K1(i*NVAR+1))
+ 110   CONTINUE
+      
+C ------------------------------- STAGE 2 --------------------------------------
+       DO 120 j = 1,NVAR*(NSENSIT+1)
+         ynew(j) = y(j) + a21*K1(j) 
+ 120   CONTINUE
+       CALL FUNC_CHEM(NVAR, T + alpha2*H, ynew, Fv)
+       IF (DDMTYPE .EQ. 1) THEN
+         CALL DFUNDPAR(NVAR, NSENSIT, T+alpha3*H, ynew, DFDP)
+       END IF	  
+       nfcn=nfcn+1
+       x1 = c21/H
+       DO 130 j = 1,NVAR
+           K2(j) = Fv(j) + x1*K1(j) 
+ 130   CONTINUE
+       IF (.NOT.Autonomous) THEN
+         x2 = g2*H
+         DO 140 j = 1,NVAR
+            K2(j) = K2(j) + x2*DFDT(j)
+ 140     CONTINUE       
+       END IF 
+       CALL KppSolve (AJAC, K2)
+C               --- If  derivative w.r.t. parameters
+       IF (DDMTYPE .EQ. 1) THEN
+	  CALL DJACDPAR(NVAR, NSENSIT, T, y, K2(1), DJDP)
+       END IF
+C               --- End of derivative w.r.t. parameters	  	 
+             
+       CALL JAC_CHEM(NVAR, T+alpha2*H, ynew, JAC)
+       njac=njac+1
+       DO 170 i=1,NSENSIT
+	  CALL Jac_SP_Vec (JAC,ynew(i*NVAR+1),K2(i*NVAR+1))
+	  CALL Hess_Vec ( HESS, y(i*NVAR+1), K2(1), Hv )
+          DO 150 j = 1,NVAR
+	     K2(i*NVAR+j) = K2(i*NVAR+j) + x1*K1(i*NVAR+j) 
+     &                          + Hv(j)
+ 150      CONTINUE	 
+          IF (.NOT. Autonomous) THEN
+	     DO 160 j=1,NVAR
+	        K2(i*NVAR+j) = K2(i*NVAR+j) + x2*DFDT(i*NVAR+j)
+ 160         CONTINUE
+          END IF
+C               --- If  derivative w.r.t. parameters
+	  IF (DDMTYPE .EQ. 1) THEN
+            DO 165 j = 1,NVAR
+	       K2(i*NVAR+j) = K2(i*NVAR+j) + DFDP((i-1)*NVAR+j) 
+     &                           + DJDP((i-1)*NVAR+j)
+ 165        CONTINUE	  
+	  END IF
+C               --- End of derivative w.r.t. parameters	  	 
+          CALL KppSolve (AJAC, K2(i*NVAR+1))
+ 170   CONTINUE
+ 
+C ------------------------------- STAGE 3  --------------------------------------
+       x1 = c31/H
+       x2 = c32/H
+       DO 180 j = 1,NVAR
+         K3(j) = Fv(j) + x1*K1(j) + x2*K2(j)
+ 180   CONTINUE
+       IF (.NOT.Autonomous) THEN
+         x3 = g3*H
+         DO 190 j = 1,NVAR
+            K3(j) = K3(j) + x3*DFDT(j)
+ 190     CONTINUE       
+       END IF 
+       CALL KppSolve (AJAC, K3)
+C               --- If  derivative w.r.t. parameters
+	 IF (DDMTYPE .EQ. 1) THEN
+	    CALL DJACDPAR(NVAR, NSENSIT, T, y, K3(1), DJDP)
+	 END IF
+C               --- End of derivative w.r.t. parameters	  	 
+       
+       DO 220 i=1,NSENSIT
+	  CALL Jac_SP_Vec (JAC,ynew(i*NVAR+1),K3(i*NVAR+1))
+	  CALL Hess_Vec ( HESS, y(i*NVAR+1), K3(1), Hv )
+          DO 200 j = 1,NVAR
+	     K3(i*NVAR+j) = K3(i*NVAR+j) +x1*K1(i*NVAR+j) 
+     &                       + x2*K2(i*NVAR+j) + Hv(j)
+ 200      CONTINUE	 
+          IF (.NOT. Autonomous) THEN
+	     DO 210 j=1,NVAR
+	        K3(i*NVAR+j) = K3(i*NVAR+j) + x3*DFDT(i*NVAR+j)
+ 210         CONTINUE
+          END IF
+C               --- If  derivative w.r.t. parameters
+	  IF (DDMTYPE .EQ. 1) THEN
+             DO 215 j = 1,NVAR
+	       K3(i*NVAR+j) = K3(i*NVAR+j) + DFDP((i-1)*NVAR+j) 
+     &                           + DJDP((i-1)*NVAR+j)
+ 215        CONTINUE	  
+	  END IF	 
+C               --- End of derivative w.r.t. parameters
+          CALL KppSolve (AJAC, K3(i*NVAR+1))
+ 220   CONTINUE
+
+C ------------------------------ The Solution ---
+
+       DO 230 j = 1,NVAR*(NSENSIT+1)
+         ynew(j) = y(j) + b1*K1(j) + b2*K2(j) + b3*K3(j) 
+ 230   CONTINUE
+
+
+C ====== Error estimation ========
+
+        ERR=0.d0
+        DO 240 i=1,NVAR
+           ytol = AbsTol(i) + RelTol(i)*DABS(ynew(i))
+           ERR=ERR+((d1*K1(i)+d2*K2(i)+d3*K3(i))/ytol)**2
+ 240    CONTINUE      
+        ERR = DMAX1( uround, DSQRT( ERR/NVAR ) )
+
+C ======= Choose the stepsize ===============================
+ 
+        elo    = 3.0D0 ! estimator local order
+        factor = DMAX1(2.0D-1,DMIN1(6.0D0,ERR**(1.0D0/elo)/.9D0))
+        Hnew   = DMIN1(Hmax,DMAX1(Hmin, H/factor))
+ 
+C ======= Rejected/Accepted Step ============================
+ 
+        IF ( (ERR.gt.1).and.(H.gt.Hmin) ) THEN
+          IsReject = .true.
+	  H = DMIN1(H/10,Hnew)
+          Nreject  = Nreject+1 
+	  GO TO 10
+        ELSE
+          DO 250 j=1,NVAR*(NSENSIT+1)
+             y(j)  = ynew(j)
+ 250      CONTINUE
+          T = Tplus
+	  IF (.NOT.IsReject) THEN
+	      H = Hnew   ! Do not increase stepsize IF previos step was rejected
+	  END IF    
+          IsReject = .false.
+          Naccept = Naccept+1
+        END IF
+
+
+C ======= End of the time loop ===============================
+      IF ( T .lt. Tnext ) GO TO 10
+     
+      
+C ======= Output Information =================================
+      Info(2) = Nfcn
+      Info(3) = Njac
+      Info(4) = Naccept
+      Info(5) = Nreject
+      Hstart  = H
+      
+      RETURN 
+      END        
+
+
+ 
+      SUBROUTINE FUNC_CHEM(N, T, Y, P)
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+      INTEGER N
+      KPP_REAL   T, Told
+      KPP_REAL   Y(NVAR), P(NVAR)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Fun( Y,  FIX, RCONST, P )
+      TIME = Told
+      RETURN
+      END
+
+ 
+      SUBROUTINE DFUNDPAR(N, NSENSIT, T, Y, P)
+C ---  Computes the partial derivatives of FUNC_CHEM w.r.t. parameters 
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+C ---  NCOEFF, JCOEFF useful for derivatives w.r.t. rate coefficients    
+      INTEGER N
+      INTEGER NCOEFF, JCOEFF(NREACT)
+      COMMON /DDMRCOEFF/ NCOEFF, JCOEFF
+      
+      KPP_REAL   T, Told
+      KPP_REAL   Y(NVAR), P(NVAR*NSENSIT)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+C
+      IF (DDMTYPE .EQ. 0) THEN
+C ---  Note: the values below are for sensitivities w.r.t. initial values;
+C ---       they may have to be changed for other applications
+        DO j=1,NSENSIT
+          DO i=1,NVAR
+	    P(i+NVAR*(j-1)) = 0.0D0
+	  END DO
+        END DO
+      ELSE	
+C ---  Example: the call below is for sensitivities w.r.t. rate coefficients;
+C ---       JCOEFF(1:NSENSIT) are the indices of the NSENSIT rate coefficients
+C ---       w.r.t. which one differentiates
+        CALL dFun_dRcoeff( Y,  FIX, NCOEFF, JCOEFF, P )
+      END IF
+      TIME = Told
+      RETURN
+      END
+ 
+      SUBROUTINE JAC_CHEM(N, T, Y, J)
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+      INTEGER N
+      KPP_REAL   Told, T
+      KPP_REAL   Y(NVAR), J(LU_NONZERO)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Jac_SP( Y,  FIX, RCONST, J )
+      TIME = Told
+      RETURN
+      END                                                                                                                 
+
+ 
+      SUBROUTINE DJACDPAR(N, NSENSIT, T, Y, U, P)
+C ---  Computes the partial derivatives of JAC w.r.t. parameters times user vector U
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+C ---  NCOEFF, JCOEFF useful for derivatives w.r.t. rate coefficients    
+      INTEGER N
+      INTEGER NCOEFF, JCOEFF(NREACT)
+      COMMON /DDMRCOEFF/ NCOEFF, JCOEFF
+      
+      KPP_REAL   T, Told
+      KPP_REAL   Y(NVAR), U(NVAR)
+      KPP_REAL   P(NVAR*NSENSIT)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+C
+      IF (DDMTYPE .EQ. 0) THEN
+C ---  Note: the values below are for sensitivities w.r.t. initial values;
+C ---       they may have to be changed for other applications
+        DO j=1,NSENSIT
+          DO i=1,NVAR
+	    P(i+NVAR*(j-1)) = 0.0D0
+	  END DO
+        END DO
+      ELSE	
+C ---  Example: the call below is for sensitivities w.r.t. rate coefficients;
+C ---       JCOEFF(1:NSENSIT) are the indices of the NSENSIT rate coefficients
+C ---       w.r.t. which one differentiates
+        CALL dJac_dRcoeff( Y,  FIX, U, NCOEFF, JCOEFF, P )
+      END IF
+      TIME = Told
+      RETURN
+      END
+
+ 
+      SUBROUTINE HESS_CHEM(N, T, Y, HESS)
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+      INTEGER N
+      KPP_REAL   Told, T
+      KPP_REAL   Y(NVAR), HESS(NHESS)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Hessian( Y,  FIX, RCONST, HESS )
+      TIME = Told
+      RETURN
+      END                                                                                                                 
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/ros4.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/ros4.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/ros4.def	(revision 2696)
@@ -0,0 +1,63 @@
+ 
+#FUNCTION AGGREGATE
+#JACOBIAN SPARSE_LU_ROW
+
+#DOUBLE ON 
+#INTFILE ros4
+
+#INLINE F_DECL_INT
+      INTEGER Autonomous
+      COMMON /INTGDATA/ Autonomous
+      REAL*8 STEPSTART
+      COMMON /GDATA/ STEPSTART
+#ENDINLINE
+
+#INLINE F77_INIT_INT
+        STEPMIN=1.e-4
+        STEPMAX=3600.
+        Autonomous = 0
+        STEPSTART=STEPMIN
+#ENDINLINE
+
+#INLINE F77_DECL_INT
+      INTEGER Autonomous
+      COMMON /INTGDATA/ Autonomous
+      REAL*8 STEPSTART
+      COMMON /GDATA/ STEPSTART
+#ENDINLINE
+
+#INLINE F90_INIT_INT
+        STEPMIN=1.e-4
+        STEPMAX=3600.
+        Autonomous = 0
+        STEPSTART=STEPMIN
+#ENDINLINE
+
+#INLINE F90_DECL_INT
+      INTEGER :: Autonomous
+      DOUBLE PRECISION :: STEPSTART
+#ENDINLINE
+
+#INLINE C_DECL_INT
+    extern int Autonomous;
+    extern double STEPSTART;
+#ENDINLINE
+ 
+#INLINE C_DATA_INT
+int Autonomous;
+double STEPSTART;
+#ENDINLINE
+
+#INLINE C_INIT_INT
+        STEPMIN = 0.0001;
+        STEPMAX = 3600.0;
+        Autonomous = 0;
+        STEPSTART = STEPMIN;
+#ENDINLINE                                                                     
+
+#INLINE MATLAB_INIT_INT
+        STEPMIN = 0.0001;
+        STEPMAX = 3600.0;
+        Autonomous = 0;
+        STEPSTART = STEPMIN;
+#ENDINLINE                                                                     
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/ros4.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/ros4.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/ros4.f	(revision 2696)
@@ -0,0 +1,334 @@
+      SUBROUTINE INTEGRATE( TIN, TOUT )
+ 
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+
+C TIN - Start Time
+      KPP_REAL TIN
+C TOUT - End Time
+      KPP_REAL TOUT
+
+      INTEGER    INFO(5)
+
+      EXTERNAL FUNC_CHEM, JAC_CHEM
+
+      INFO(1) = Autonomous
+ 
+      CALL ROS4(NVAR,TIN,TOUT,STEPMIN,STEPMAX,
+     +                   STEPMIN,VAR,ATOL,RTOL,
+     +                   Info,FUNC_CHEM,JAC_CHEM)
+
+      RETURN
+      END
+  
+
+ 
+ 
+      SUBROUTINE ROS4(N,T,Tnext,Hmin,Hmax,Hstart,
+     +                   y,AbsTol,RelTol,
+     +                   Info,FUNC_CHEM,JAC_CHEM)
+      IMPLICIT NONE
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_sparse.h'                                                                                                  
+C
+C  Four Stages, Fourth Order L-stable Rosenbrock Method, 
+C     with embedded L-stable, third order method for error control
+C     Simplified version of E. Hairer's atmros4; the coefficients are slightly
+C     different
+C
+C
+C  INPUT ARGUMENTS:
+C     y = Vector of (NVAR) concentrations, contains the
+C         initial values on input
+C     [T, Tnext] = the integration interval
+C     Hmin, Hmax = lower and upper bounds for the selected step-size.
+C          Note that for Step = Hmin the current computed
+C          solution is unconditionally accepted by the error
+C          control mechanism.
+C     AbsTol, RelTol = (NVAR) dimensional vectors of
+C          componentwise absolute and relative tolerances.
+C     FUNC_CHEM = name of routine of derivatives. KPP syntax.
+C          See the header below.
+C     JAC_CHEM = name of routine that computes the Jacobian, in
+C          sparse format. KPP syntax. See the header below.
+C     Info(1) = 1  for  Autonomous   system
+C             = 0  for nonAutonomous system
+C
+C  OUTPUT ARGUMENTS:
+C     y = the values of concentrations at Tend.
+C     T = equals TENDon output.
+C     Info(2) = # of FUNC_CHEM CALLs.
+C     Info(3) = # of JAC_CHEM CALLs.
+C     Info(4) = # of accepted steps.
+C     Info(5) = # of rejected steps.
+C     Hstart = The last accepted stepsize
+C 
+C    Adrian Sandu, December 2001
+C 
+      KPP_REAL K1(NVAR), K2(NVAR), K3(NVAR), K4(NVAR)
+      KPP_REAL F1(NVAR)
+      KPP_REAL DFDT(NVAR)
+      KPP_REAL JAC(LU_NONZERO)
+      KPP_REAL Hmin,Hmax,Hstart
+      KPP_REAL y(NVAR), ynew(NVAR)
+      KPP_REAL AbsTol(NVAR), RelTol(NVAR)
+      KPP_REAL T, Tnext, H, Hnew, Tplus
+      KPP_REAL elo,ghinv,uround
+      KPP_REAL ERR, factor, facmax
+      KPP_REAL w, e, dround, tau
+      KPP_REAL hgam1, hgam2, hgam3, hgam4
+      KPP_REAL hc21, hc31, hc32, hc41, hc42, hc43
+      
+      INTEGER    n,nfcn,njac,Naccept,Nreject,i,j,ier
+      INTEGER    Info(5)
+      LOGICAL    IsReject, Autonomous
+      EXTERNAL   FUNC_CHEM, JAC_CHEM                                                                                                
+
+
+C   The method coefficients
+      DOUBLE PRECISION gamma, gamma2, gamma3, gamma4
+      PARAMETER ( gamma  =  0.5728200000000000D+00 )
+      PARAMETER ( gamma2 = -0.1769193891319233D+01 ) 
+      PARAMETER ( gamma3 =  0.7592633437920482D+00 ) 
+      PARAMETER ( gamma4 = -0.1049021087100450D+00 ) 
+      DOUBLE PRECISION a21, a31, a32, a41, a42, a43
+      PARAMETER (  a21 = 0.2000000000000000D+01  )   
+      PARAMETER (  a31 = 0.1867943637803922D+01  )   
+      PARAMETER (  a32 = 0.2344449711399156D+00  )   
+      DOUBLE PRECISION alpha2, alpha3
+      PARAMETER (  alpha2  = 0.1145640000000000D+01  )   
+      PARAMETER (  alpha3  = 0.6552168638155900D+00  )   
+      DOUBLE PRECISION c21, c31, c32, c41, c42, c43
+      PARAMETER (  c21  = -0.7137615036412310D+01  ) 
+      PARAMETER (  c31  =  0.2580708087951457D+01  ) 
+      PARAMETER (  c32  =  0.6515950076447975D+00  ) 
+      PARAMETER (  c41  = -0.2137148994382534D+01  ) 
+      PARAMETER (  c42  = -0.3214669691237626D+00  ) 
+      PARAMETER (  c43  = -0.6949742501781779D+00  ) 
+      DOUBLE PRECISION b1, b2, b3, b4
+      PARAMETER (  b1 = 0.2255570073418735D+01  ) 
+      PARAMETER (  b2 = 0.2870493262186792D+00  ) 
+      PARAMETER (  b3 = 0.4353179431840180D+00  ) 
+      PARAMETER (  b4 = 0.1093502252409163D+01 )  
+      DOUBLE PRECISION d1, d2, d3, d4
+      PARAMETER (  d1 = -0.2815431932141155D+00  ) 
+      PARAMETER (  d2 = -0.7276199124938920D-01  ) 
+      PARAMETER (  d3 = -0.1082196201495311D+00  ) 
+      PARAMETER (  d4 = -0.1093502252409163D+01  )  
+ 
+c     Initialization of counters, etc.
+      Autonomous = Info(1) .EQ. 1
+      uround = 1.d-15
+      dround = DSQRT(uround)
+      IF (Hmax.le.0.D0) THEN
+          Hmax = DABS(Tnext-T)
+      END IF	  
+      H = DMAX1(1.d-8, Hstart)
+      Tplus = T
+      IsReject = .false.
+      Naccept  = 0
+      Nreject  = 0
+      Nfcn     = 0
+      Njac     = 0
+  
+C === Starting the time loop ===
+ 10    CONTINUE
+  
+       Tplus = T + H
+       IF ( Tplus .gt. Tnext ) THEN
+          H = Tnext - T
+          Tplus = Tnext
+       END IF
+ 
+C              Initial Function and Jacobian values                                                                                                                            
+       CALL FUNC_CHEM( T, y, F1 )
+       CALL JAC_CHEM( T, y, JAC )
+ 
+C              The time derivative for non-Autonomous case                                                                                                                            
+       IF (.not. Autonomous) THEN
+         tau = DSIGN(dround*DMAX1( 1.0d-6, DABS(T) ), T)
+         CALL FUNC_CHEM( T+tau, y, K2 )
+         nfcn=nfcn+1
+         DO 20 j = 1,NVAR
+           DFDT(j) = ( K2(j)-F1(j) )/tau
+ 20      CONTINUE
+       END IF
+ 
+C              Form the Prediction matrix and compute its LU factorization                                                                                                                           
+       Njac = Njac+1
+       ghinv = 1.0d0/(gamma*H)
+       DO 30 j=1,LU_NONZERO
+         JAC(j) = -JAC(j)
+ 30    CONTINUE
+       DO 40 j=1,NVAR
+         JAC(LU_DIAG(j)) = JAC(LU_DIAG(j)) + ghinv
+ 40    CONTINUE
+       CALL KppDecomp (JAC, ier)
+C 
+       IF (ier.ne.0) THEN
+         IF ( H.gt.Hmin) THEN
+            H = 5.0d-1*H
+            GO TO 10
+         ELSE
+            PRINT *,'ROS4: Singular factorization at T=',T,'; H=',H
+            STOP
+         END IF
+       END IF
+                                                                                                                            
+ 
+C ------------ STAGE 1-------------------------
+       DO 50 j = 1,NVAR
+         K1(j) =  F1(j)
+ 50    CONTINUE
+       IF (.NOT. Autonomous) THEN
+          hgam1 = H*gamma
+	  DO 60 j=1,NVAR
+	    K1(j) = K1(j) + hgam1*DFDT(j)	    
+ 60	  CONTINUE
+       END IF
+       CALL KppSolve (JAC, K1)
+ 
+C ----------- STAGE 2 -------------------------
+       DO 70 j = 1,NVAR
+         ynew(j) = y(j) + a21*K1(j)
+ 70    CONTINUE
+       CALL FUNC_CHEM( T+alpha2*H, ynew, F1)
+       nfcn=nfcn+1
+       hc21 = c21/H
+       DO 80 j = 1,NVAR
+         K2(j) = F1(j) + hc21*K1(j)
+ 80    CONTINUE
+       IF (.NOT. Autonomous) THEN
+         hgam2 = H*gamma2
+	 DO 90 j=1,NVAR
+	    K2(j) = K2(j) + hgam2*DFDT(j)	    
+ 90	 CONTINUE
+       END IF
+       CALL KppSolve (JAC, K2)
+ 
+ 
+C ------------ STAGE 3 -------------------------
+       DO 100 j = 1,NVAR
+         ynew(j) = y(j) + a31*K1(j) + a32*K2(j)
+ 100   CONTINUE
+       CALL FUNC_CHEM( T+alpha3*H, ynew, F1)
+       nfcn=nfcn+1
+       hc31 = c31/H
+       hc32 = c32/H
+       DO 110 j = 1,NVAR
+         K3(j) = F1(j) + hc31*K1(j) + hc32*K2(j)
+ 110   CONTINUE
+       IF (.NOT. Autonomous) THEN
+         hgam3 = H*gamma3
+	 DO 120 j=1,NVAR
+	    K3(j) = K3(j) + hgam3*DFDT(j)	    
+ 120     CONTINUE
+       END IF
+       CALL KppSolve (JAC, K3)
+ 
+C ------------ STAGE 4 -------------------------
+C              Note: uses the same function value as stage 3
+       hc41 = c41/H
+       hc42 = c42/H
+       hc43 = c43/H
+       DO 140 j = 1,NVAR
+         K4(j) = F1(j) + hc41*K1(j) + hc42*K2(j) + hc43*K3(j)
+ 140   CONTINUE
+       IF (.NOT. Autonomous) THEN
+          hgam4 = H*gamma4
+	  DO 150 j=1,NVAR
+	    K4(j) = K4(j) + hgam4*DFDT(j)
+ 150      CONTINUE
+       END IF
+       CALL KppSolve (JAC, K4)
+ 
+
+
+C ---- The Solution ---
+       DO 160 j = 1,NVAR
+         ynew(j) = y(j) + b1*K1(j) + b2*K2(j) + b3*K3(j) + b4*K4(j)
+ 160   CONTINUE
+ 
+ 
+C ====== Error estimation ========
+ 
+        ERR=0.d0
+        DO 170 j = 1,NVAR
+           w = AbsTol(j) + RelTol(j)*DMAX1(DABS(y(j)),DABS(ynew(j)))
+	   e = d1*K1(j) + d2*K2(j) + d3*K3(j) + d4*K4(j)
+           ERR = ERR + ( e/w )**2
+ 170    CONTINUE
+        ERR = DMAX1( uround, DSQRT( ERR/NVAR ) )
+ 
+C ======= Choose the stepsize ===============================
+     
+        elo    = 4.0D0 ! estimator local order
+        factor = DMAX1(2.0D-1,DMIN1(6.0D0,ERR**(1.0D0/elo)/.9D0))
+        Hnew   = DMIN1(Hmax,DMAX1(Hmin, H/factor))
+ 
+C ======= Rejected/Accepted Step ============================
+ 
+        IF ( (ERR.gt.1).and.(H.gt.Hmin) ) THEN
+          IsReject = .true.
+	  H = DMIN1(H/10,Hnew)
+          Nreject  = Nreject+1
+        ELSE
+          DO 180 i=1,NVAR
+             y(i)  = ynew(i)
+ 180      CONTINUE
+          T = Tplus
+	  IF (.NOT.IsReject) THEN
+	      H = Hnew   ! Do not increase stepsize if previos step was rejected
+	  END IF    
+          IsReject = .false.
+          Naccept = Naccept+1
+        END IF
+ 
+C ======= End of the time loop ===============================
+      IF ( T .lt. Tnext ) GO TO 10
+ 
+C ======= Output Information =================================
+      Info(2) = Nfcn
+      Info(3) = Njac
+      Info(4) = Naccept
+      Info(5) = Nreject
+      Hstart  = H
+ 
+      RETURN
+      END
+ 
+ 
+      SUBROUTINE FUNC_CHEM( T, Y, P )
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+      KPP_REAL   T, Told
+      KPP_REAL   Y(NVAR), P(NVAR)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Fun( Y,  FIX, RCONST, P )
+      TIME = Told
+      RETURN
+      END
+
+ 
+      SUBROUTINE JAC_CHEM( T, Y, J )
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+      KPP_REAL   Told, T
+      KPP_REAL   Y(NVAR), J(LU_NONZERO)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Jac_SP( Y,  FIX, RCONST, J )
+      TIME = Told
+      RETURN
+      END                                                                                                                 
+
+
+
+
+
+                                                                                                                            
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/ros4_ddm.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/ros4_ddm.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/ros4_ddm.def	(revision 2696)
@@ -0,0 +1,58 @@
+ 
+#FUNCTION AGGREGATE
+#JACOBIAN SPARSE_LU_ROW
+
+#DOUBLE ON 
+#INTFILE ros4_ddm
+#HESSIAN ON 
+
+#INLINE F77_DECL_INT
+      INTEGER Autonomous
+      COMMON /INTGDATA/ Autonomous
+      REAL*8 STEPSTART
+      COMMON /GDATA/ STEPSTART
+#ENDINLINE
+
+#INLINE F77_INIT_INT
+        STEPMIN=1.0E-4
+        STEPMAX=3600.
+        Autonomous = 0
+        STEPSTART=STEPMIN
+#ENDINLINE
+
+#INLINE F90_DECL_INT
+      INTEGER Autonomous
+      DOUBLE PRECISION STEPSTART
+#ENDINLINE
+
+#INLINE F90_INIT_INT
+        STEPMIN=1.0E-4
+        STEPMAX=3600.
+        Autonomous = 0
+        STEPSTART=STEPMIN
+#ENDINLINE
+
+
+#INLINE C_DECL_INT
+    extern int Autonomous;
+    extern double STEPSTART;
+#ENDINLINE
+ 
+#INLINE C_DATA_INT
+    int Autonomous;
+    double STEPSTART;
+#ENDINLINE
+
+#INLINE C_INIT_INT
+        STEPMIN = 0.0001;
+        STEPMAX = 3600.0;
+        Autonomous = 0;
+        STEPSTART = STEPMIN;
+#ENDINLINE                                                                     
+
+#INLINE MATLAB_INIT_INT
+        STEPMIN = 0.0001;
+        STEPMAX = 3600.0;
+        Autonomous = 0;
+        STEPSTART = STEPMIN;
+#ENDINLINE                                                                     
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/ros4_ddm.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/ros4_ddm.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/ros4_ddm.f	(revision 2696)
@@ -0,0 +1,615 @@
+      SUBROUTINE INTEGRATE( NSENSIT, Y, TIN, TOUT )
+ 
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+
+C TIN - Start Time
+      KPP_REAL TIN
+C TOUT - End Time
+      KPP_REAL TOUT
+C Y - Concentrations and Sensitivities
+      KPP_REAL Y(NVAR*(NSENSIT+1))
+C ---  Note: Y contains: (1:NVAR) concentrations, followed by
+C ---                   (1:NVAR) sensitivities w.r.t. first parameter, followed by
+C ---                   etc.,  followed by          
+C ---                   (1:NVAR) sensitivities w.r.t. NSENSIT's parameter
+
+      INTEGER    INFO(5)
+
+      EXTERNAL FUNC_CHEM, JAC_CHEM
+
+      INFO(1) = Autonomous
+ 
+      CALL ROS4_DDM(NVAR,NSENSIT,TIN,TOUT,STEPMIN,STEPMAX,
+     +                   STEPMIN,Y,ATOL,RTOL,
+     +                   Info,FUNC_CHEM,JAC_CHEM)
+ 
+
+      RETURN
+      END
+  
+
+ 
+ 
+      SUBROUTINE ROS4_DDM(N,NSENSIT,T,Tnext,Hmin,Hmax,Hstart,
+     +                   y,AbsTol,RelTol,
+     +                   Info,FUNC_CHEM,JAC_CHEM)
+      IMPLICIT NONE
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'                                                                                                  
+      INCLUDE 'KPP_ROOT_sparse.h'                                                                                                  
+C
+C  Four Stages, Fourth Order L-stable Rosenbrock Method, 
+C     with embedded L-stable, third order method for error control
+C     Simplified version of E. Hairer's atmros4; the coefficients are slightly different
+C
+C Direct decoupled computation of sensitivities.
+C The global variable DDMTYPE distinguishes between:
+C      DDMTYPE = 0 : sensitivities w.r.t. initial values
+C      DDMTYPE = 1 : sensitivities w.r.t. parameters
+C
+C  INPUT ARGUMENTS:
+C     y = Vector of:   (1:NVAR) concentrations, followed by
+C                      (1:NVAR) sensitivities w.r.t. first parameter, followed by
+C                       etc.,  followed by          
+C                      (1:NVAR) sensitivities w.r.t. NSENSIT's parameter
+C         (y contains initial values at input, final values at output)
+C     [T, Tnext] = the integration interval
+C     Hmin, Hmax = lower and upper bounds for the selected step-size.
+C          Note that for Step = Hmin the current computed
+C          solution is unconditionally accepted by the error
+C          control mechanism.
+C     AbsTol, RelTol = (NVAR) dimensional vectors of
+C          componentwise absolute and relative tolerances.
+C     FUNC_CHEM = name of routine of derivatives. KPP syntax.
+C          See the header below.
+C     JAC_CHEM = name of routine that computes the Jacobian, in
+C          sparse format. KPP syntax. See the header below.
+C     Info(1) = 1  for  Autonomous   system
+C             = 0  for nonAutonomous system
+C
+C  OUTPUT ARGUMENTS:
+C     y = the values of concentrations and sensitivities at Tend.
+C     T = equals TENDon output.
+C     Info(2) = # of FUNC_CHEM CALLs.
+C     Info(3) = # of JAC_CHEM CALLs.
+C     Info(4) = # of accepted steps.
+C     Info(5) = # of rejected steps.
+C 
+C    Adrian Sandu, December 2001
+C 
+
+
+      INTEGER NSENSIT
+      KPP_REAL y(NVAR*(NSENSIT+1)), ynew(NVAR*(NSENSIT+1))
+      KPP_REAL K1(NVAR*(NSENSIT+1))
+      KPP_REAL K2(NVAR*(NSENSIT+1))
+      KPP_REAL K3(NVAR*(NSENSIT+1))
+      KPP_REAL K4(NVAR*(NSENSIT+1))
+      KPP_REAL Fv(NVAR), Hv(NVAR)
+      KPP_REAL DFDT(NVAR*(NSENSIT+1))
+      KPP_REAL DFDP(NVAR*NSENSIT), DFDPDT(NVAR*NSENSIT)
+      KPP_REAL DJDP(NVAR*NSENSIT)
+      KPP_REAL JAC(LU_NONZERO), AJAC(LU_NONZERO)
+      KPP_REAL DJDT(LU_NONZERO)
+      KPP_REAL HESS(NHESS)
+      KPP_REAL Hmin,Hmax,Hstart,ghinv,uround
+      KPP_REAL AbsTol(NVAR), RelTol(NVAR)
+      KPP_REAL T, Tnext, Tplus, H, Hnew, elo
+      KPP_REAL ERR, factor, facmax, dround, tau
+      KPP_REAL w, e, beta1, beta2, beta3, beta4
+      
+      INTEGER    n,nfcn,njac,Naccept,Nreject,i,j,ier
+      INTEGER    Info(5)
+      LOGICAL    IsReject, Autonomous
+      EXTERNAL    FUNC_CHEM, JAC_CHEM, HESS_CHEM                                                                                                
+
+
+C   The method coefficients
+C      DOUBLE PRECISION gamma, gamma2, gamma3, gamma4
+C      PARAMETER ( gamma = 0.57281606D0  )
+C      PARAMETER ( gamma2 = -1.769177067112013949170520D0  ) 
+C      PARAMETER ( gamma3 =  0.759293964293209853670967D0  ) 
+C      PARAMETER ( gamma4 = -0.104894621490955803206743D0  ) 
+C      DOUBLE PRECISION a21, a31, a32, a41, a42, a43
+C      PARAMETER (  a21 = 2.00000000000000000000000D0  )   
+C      PARAMETER (  a31 = 1.86794814949823713234476D0  )   
+C      PARAMETER (  a32 = 0.23444556851723885002322D0  )   
+C      DOUBLE PRECISION alpha2, alpha3, alpha4 
+C      PARAMETER (  alpha2  = 1.145632120D0  )   
+C      PARAMETER (  alpha3  = 0.655214975973133829477748D0  )   
+C      DOUBLE PRECISION c21, c31, c32, c41, c42, c43
+C      PARAMETER (  c21  = -7.137649943349979830369260D0  ) 
+C      PARAMETER (  c31  =  2.580923666509657714488050D0  ) 
+C      PARAMETER (  c32  =  0.651629887302032023387417D0  ) 
+C      PARAMETER (  c41  = -2.137115266506619116806370D0  ) 
+C      PARAMETER (  c42  = -0.321469531339951070769241D0  ) 
+C      PARAMETER (  c43  = -0.694966049282445225157329D0  ) 
+C      DOUBLE PRECISION m1, m2, m3, m4, mhat1, mhat2, mhat3, mhat4
+C      PARAMETER (  m1 = 2.255566228604565243728840D0  ) 
+C      PARAMETER (  m2 = 0.287055063194157607662630D0  ) 
+C      PARAMETER (  m3 = 0.435311963379983213402707D0  ) 
+C      PARAMETER (  m4 = 1.093507656403247803214820D0  )  
+C      PARAMETER (  mhat1 = 2.068399160527583734258670D0  ) 
+C      PARAMETER (  mhat2 = 0.238681352067532797956493D0  ) 
+C      PARAMETER (  mhat3 = 0.363373345435391708261747D0  ) 
+C      PARAMETER (  mhat4 = 0.366557127936155144309163D0  ) 
+C      DOUBLE PRECISION e1, e2, e3, e4
+c      PARAMETER (  e1 = 1.8716706807698191283861888D-01  ) 
+c      PARAMETER (  e2 = 4.8373711126624835410225955D-02  ) 
+c      PARAMETER (  e3 = 7.1938617944591554120847832D-02  ) 
+c      PARAMETER (  e4 = 7.2695052846709262706070831D-01 )  
+C      PARAMETER (  e1 = -0.2815431932141155D+00  ) 
+C      PARAMETER (  e2 = -0.7276199124938920D-01  ) 
+C      PARAMETER (  e3 = -0.1082196201495311D+00  ) 
+C      PARAMETER (  e4 = -0.1093502252409163D+01  )  
+C   The method coefficients
+      DOUBLE PRECISION gamma, gamma2, gamma3, gamma4
+      PARAMETER ( gamma  =  0.5728200000000000D+00 )
+      PARAMETER ( gamma2 = -0.1769193891319233D+01 ) 
+      PARAMETER ( gamma3 =  0.7592633437920482D+00 ) 
+      PARAMETER ( gamma4 = -0.1049021087100450D+00 ) 
+      DOUBLE PRECISION a21, a31, a32, a41, a42, a43
+      PARAMETER (  a21 = 0.2000000000000000D+01  )   
+      PARAMETER (  a31 = 0.1867943637803922D+01  )   
+      PARAMETER (  a32 = 0.2344449711399156D+00  )   
+      DOUBLE PRECISION alpha2, alpha3
+      PARAMETER (  alpha2  = 0.1145640000000000D+01  )   
+      PARAMETER (  alpha3  = 0.6552168638155900D+00  )   
+      DOUBLE PRECISION c21, c31, c32, c41, c42, c43
+      PARAMETER (  c21  = -0.7137615036412310D+01  ) 
+      PARAMETER (  c31  =  0.2580708087951457D+01  ) 
+      PARAMETER (  c32  =  0.6515950076447975D+00  ) 
+      PARAMETER (  c41  = -0.2137148994382534D+01  ) 
+      PARAMETER (  c42  = -0.3214669691237626D+00  ) 
+      PARAMETER (  c43  = -0.6949742501781779D+00  ) 
+      DOUBLE PRECISION b1, b2, b3, b4
+      PARAMETER (  b1 = 0.2255570073418735D+01  ) 
+      PARAMETER (  b2 = 0.2870493262186792D+00  ) 
+      PARAMETER (  b3 = 0.4353179431840180D+00  ) 
+      PARAMETER (  b4 = 0.1093502252409163D+01 )  
+      DOUBLE PRECISION d1, d2, d3, d4
+      PARAMETER (  d1 = -0.2815431932141155D+00  ) 
+      PARAMETER (  d2 = -0.7276199124938920D-01  ) 
+      PARAMETER (  d3 = -0.1082196201495311D+00  ) 
+      PARAMETER (  d4 = -0.1093502252409163D+01  )  
+
+
+c     Initialization of counters, etc.
+      Autonomous = Info(1) .EQ. 1
+      uround = 1.d-15
+      dround = DSQRT(uround)
+      IF (Hmax.le.0.D0) THEN
+          Hmax = DABS(Tnext-T)
+      END IF	  
+      H = DMAX1(1.d-8, Hstart)
+      Tplus = T
+      IsReject = .false.
+      Naccept  = 0
+      Nreject  = 0
+      Nfcn     = 0
+      Njac     = 0
+ 
+C === Starting the time loop ===
+ 10    CONTINUE
+  
+       Tplus = T + H
+       IF ( Tplus .gt. Tnext ) THEN
+          H = Tnext - T
+          Tplus = Tnext
+       END IF
+ 
+C              Initial Function, Jacobian, and Hessian Values
+       CALL FUNC_CHEM(NVAR, T, y, Fv)
+       CALL JAC_CHEM(NVAR, T, y, JAC)
+       CALL HESS_CHEM( NVAR, T, y, HESS )
+       IF (DDMTYPE .EQ. 1) THEN
+          CALL DFUNDPAR(NVAR, NSENSIT, T, y, DFDP)
+       END IF	  
+ 
+C              The time derivatives for non-Autonomous case                                                                                                                            
+       IF (.not. Autonomous) THEN
+         tau = DSIGN(dround*DMAX1( 1.0d0, DABS(T) ), T)
+         CALL FUNC_CHEM(NVAR, T+tau, y, K2)
+         CALL JAC_CHEM(NVAR, T+tau, y, AJAC)
+         nfcn=nfcn+1
+         DO 20 j = 1,NVAR
+           DFDT(j) = ( K2(j)-Fv(j) )/tau
+ 20      CONTINUE
+         DO 30 j = 1,LU_NONZERO
+           DJDT(j) = ( AJAC(j)-JAC(j) )/tau
+ 30      CONTINUE
+         DO 35 i=1,NSENSIT
+	    CALL Jac_SP_Vec (DJDT,y(i*NVAR+1),DFDT(i*NVAR+1))
+ 35      CONTINUE
+       END IF
+ 
+ 11    CONTINUE  ! From here we restart after a rejected step
+ 
+C              Form the Prediction matrix and compute its LU factorization                                                                                                                           
+       Njac = Njac+1
+       ghinv = 1.0d0/(gamma*H)
+       DO 40 j=1,LU_NONZERO
+         AJAC(j) = -JAC(j)
+ 40    CONTINUE
+       DO 50 j=1,NVAR
+         AJAC(LU_DIAG(j)) = AJAC(LU_DIAG(j)) + ghinv
+ 50    CONTINUE
+       CALL KppDecomp (AJAC, ier)
+C 
+       IF (ier.ne.0) THEN
+         IF ( H.gt.Hmin) THEN
+            H = 5.0d-1*H
+            GO TO 10
+         ELSE
+            PRINT *,'ROS4: Singular factorization at T=',T,'; H=',H
+            STOP
+         END IF
+       END IF
+                                                                                                                            
+C ------------ STAGE 1-------------------------
+       DO 60 j = 1,NVAR
+         K1(j) =  Fv(j)
+ 60    CONTINUE
+       IF (.NOT. Autonomous) THEN
+          beta1 = H*gamma
+	  DO 70 j=1,NVAR
+	    K1(j) = K1(j) + beta1*DFDT(j)	    
+ 70	  CONTINUE
+       END IF
+       CALL KppSolve (AJAC, K1)
+C               --- If  derivative w.r.t. parameters
+       IF (DDMTYPE .EQ. 1) THEN
+	  CALL DJACDPAR(NVAR, NSENSIT, T, y, K1(1), DJDP)
+       END IF
+C               --- End of derivative w.r.t. parameters	  	 
+
+       DO 100 i=1,NSENSIT
+	  CALL Jac_SP_Vec (JAC,y(i*NVAR+1),K1(i*NVAR+1))
+	  CALL Hess_Vec ( HESS, y(i*NVAR+1), K1(1), Hv )
+	  DO 80 j=1,NVAR
+	    K1(i*NVAR+j) = K1(i*NVAR+j) + Hv(j)
+ 80	  CONTINUE	
+          IF (.NOT. Autonomous) THEN
+	    DO 90 j=1,NVAR
+	      K1(i*NVAR+j) = K1(i*NVAR+j) + beta1*DFDT(i*NVAR+j)
+ 90         CONTINUE
+          END IF
+C               --- If  derivative w.r.t. parameters
+	  IF (DDMTYPE .EQ. 1) THEN
+            DO 95 j = 1,NVAR
+	       K1(i*NVAR+j) = K1(i*NVAR+j) + DFDP((i-1)*NVAR+j) 
+     &                           + DJDP((i-1)*NVAR+j)
+ 95        CONTINUE	  
+	  END IF
+C               --- End of derivative w.r.t. parameters	  	 
+          CALL KppSolve (AJAC, K1(i*NVAR+1))
+ 100   CONTINUE
+ 
+C ----------- STAGE 2 -------------------------
+       DO 110 j = 1,NVAR*(NSENSIT+1)
+         ynew(j) = y(j) + a21*K1(j)
+ 110   CONTINUE
+       CALL FUNC_CHEM(NVAR, T+alpha2*H, ynew, Fv)
+       IF (DDMTYPE .EQ. 1) THEN
+         CALL DFUNDPAR(NVAR, NSENSIT, T+alpha2*H, ynew, DFDP)
+       END IF	 
+       nfcn=nfcn+1
+       beta1 = c21/H
+       DO 120 j = 1,NVAR
+         K2(j) = Fv(j) + beta1*K1(j)
+ 120   CONTINUE
+       IF (.NOT. Autonomous) THEN
+         beta2 = H*gamma2
+	 DO 130 j=1,NVAR
+	    K2(j) = K2(j) + beta2*DFDT(j)	    
+ 130     CONTINUE
+       END IF
+       CALL KppSolve (AJAC, K2)
+C               --- If  derivative w.r.t. parameters
+       IF (DDMTYPE .EQ. 1) THEN
+	  CALL DJACDPAR(NVAR, NSENSIT, T, y, K2(1), DJDP)
+       END IF
+C               --- End of derivative w.r.t. parameters	  	 
+       
+       CALL JAC_CHEM(NVAR, T+alpha2*H, ynew, JAC)
+       njac=njac+1
+       DO 160 i=1,NSENSIT
+	  CALL Jac_SP_Vec (JAC,ynew(i*NVAR+1),K2(i*NVAR+1))
+	  CALL Hess_Vec ( HESS, y(i*NVAR+1), K2(1), Hv )
+          DO 140 j = 1,NVAR
+	     K2(i*NVAR+j) = K2(i*NVAR+j) + beta1*K1(i*NVAR+j) 
+     &                          + Hv(j)
+ 140      CONTINUE	
+          IF (.NOT. Autonomous) THEN
+	     DO 150 j=1,NVAR
+	        K2(i*NVAR+j) = K2(i*NVAR+j) + beta2*DFDT(i*NVAR+j)
+ 150         CONTINUE
+          END IF
+C               --- If  derivative w.r.t. parameters
+	  IF (DDMTYPE .EQ. 1) THEN
+            DO 155 j = 1,NVAR
+	       K2(i*NVAR+j) = K2(i*NVAR+j) + DFDP((i-1)*NVAR+j) 
+     &                           + DJDP((i-1)*NVAR+j)
+ 155        CONTINUE	  
+	  END IF
+C               --- End of derivative w.r.t. parameters	  	 
+          CALL KppSolve (AJAC, K2(i*NVAR+1))
+ 160   CONTINUE
+ 
+ 
+C ------------ STAGE 3 -------------------------
+       DO 170 j = 1,NVAR*(NSENSIT+1)
+         ynew(j) = y(j) + a31*K1(j) + a32*K2(j)
+ 170   CONTINUE
+       CALL FUNC_CHEM(NVAR, T+alpha3*H, ynew, Fv)
+       IF (DDMTYPE .EQ. 1) THEN
+         CALL DFUNDPAR(NVAR, NSENSIT, T+alpha3*H, ynew, DFDP)
+       END IF	    
+       nfcn=nfcn+1
+       beta1 = c31/H
+       beta2 = c32/H
+       DO 180 j = 1,NVAR
+         K3(j) = Fv(j) + beta1*K1(j) + beta2*K2(j)
+ 180   CONTINUE
+       IF (.NOT. Autonomous) THEN
+         beta3 = H*gamma3
+	 DO 190 j=1,NVAR
+	    K3(j) = K3(j) + beta3*DFDT(j)	    
+ 190     CONTINUE
+       END IF
+       CALL KppSolve (AJAC, K3)
+C               --- If  derivative w.r.t. parameters
+       IF (DDMTYPE .EQ. 1) THEN
+	  CALL DJACDPAR(NVAR, NSENSIT, T, y, K3(1), DJDP)
+       END IF
+C               --- End of derivative w.r.t. parameters	  	 
+       
+       CALL JAC_CHEM(NVAR, T+alpha3*H, ynew, JAC)
+       njac=njac+1
+       DO 220 i=1,NSENSIT
+	  CALL Jac_SP_Vec (JAC,ynew(i*NVAR+1),K3(i*NVAR+1))
+	  CALL Hess_Vec ( HESS, y(i*NVAR+1), K3(1), Hv )
+          DO 200 j = 1,NVAR
+	       K3(i*NVAR+j) = K3(i*NVAR+j) + beta1*K1(i*NVAR+j) 
+     &                       + beta2*K2(i*NVAR+j) + Hv(j)
+ 200      CONTINUE	 
+          IF (.NOT. Autonomous) THEN
+	     DO 210 j=1,NVAR
+	        K3(i*NVAR+j) = K3(i*NVAR+j) + beta3*DFDT(i*NVAR+j)
+ 210         CONTINUE
+          END IF
+C               --- If  derivative w.r.t. parameters
+	  IF (DDMTYPE .EQ. 1) THEN
+            DO 215 j = 1,NVAR
+	       K3(i*NVAR+j) = K3(i*NVAR+j) + DFDP((i-1)*NVAR+j) 
+     &                           + DJDP((i-1)*NVAR+j)
+ 215        CONTINUE	  
+	  END IF	 
+C               --- End of derivative w.r.t. parameters
+          CALL KppSolve (AJAC, K3(i*NVAR+1))
+ 220   CONTINUE
+ 
+C ------------ STAGE 4 -------------------------
+C              Note: uses the same function values as stage 3
+       beta1 = c41/H
+       beta2 = c42/H
+       beta3 = c43/H
+       DO 230 j = 1,NVAR
+         K4(j) = Fv(j) + beta1*K1(j) + beta2*K2(j) + beta3*K3(j)
+ 230   CONTINUE
+       IF (.NOT. Autonomous) THEN
+          beta4 = H*gamma4
+	  DO 240 j=1,NVAR
+	    K4(j) = K4(j) + beta4*DFDT(j)
+ 240      CONTINUE
+       END IF
+       CALL KppSolve (AJAC, K4)
+C               --- If  derivative w.r.t. parameters
+       IF (DDMTYPE .EQ. 1) THEN
+	  CALL DJACDPAR(NVAR, NSENSIT, T, y, K4(1), DJDP)
+       END IF
+C               --- End of derivative w.r.t. parameters	  	 
+       
+       njac=njac+1
+       DO 270 i=1,NSENSIT
+	  CALL Jac_SP_Vec (JAC,ynew(i*NVAR+1),K4(i*NVAR+1))
+	  CALL Hess_Vec ( HESS, y(i*NVAR+1), K4(1), Hv )
+          DO 250 j = 1,NVAR
+	       K4(i*NVAR+j) = K4(i*NVAR+j) + beta1*K1(i*NVAR+j) 
+     &                       + beta2*K2(i*NVAR+j) + beta3*K3(i*NVAR+j)
+     &                       + Hv(j)
+ 250      CONTINUE
+          IF (.NOT. Autonomous) THEN
+	     DO 260 j=1,NVAR
+	        K4(i*NVAR+j) = K4(i*NVAR+j) + beta4*DFDT(i*NVAR+j)
+ 260         CONTINUE
+          END IF
+C --- If  derivative w.r.t. parameters
+	  IF (DDMTYPE .EQ. 1) THEN
+            DO 265 j = 1,NVAR
+	       K4(i*NVAR+j) = K4(i*NVAR+j) + DFDP((i-1)*NVAR+j) 
+     &                           + DJDP((i-1)*NVAR+j)
+ 265        CONTINUE	  
+	  END IF	 
+          CALL KppSolve (AJAC, K4(i*NVAR+1))
+ 270   CONTINUE
+
+
+C ---- The Solution ---
+       DO 280 j = 1,NVAR*(NSENSIT+1)
+         ynew(j) = y(j) + b1*K1(j) + b2*K2(j) + b3*K3(j) + b4*K4(j)
+ 280   CONTINUE
+ 
+ 
+C ====== Error estimation -- can be extended to control sensitivities too ========
+ 
+        ERR = 0.d0
+        DO 290 i=1,NVAR
+           w = AbsTol(i) + RelTol(i)*DMAX1(DABS(ynew(i)),DABS(y(i)))
+	   e = d1*K1(i) + d2*K2(i) + d3*K3(i) + d4*K4(i)
+           ERR = ERR + ( e/w )**2
+ 290    CONTINUE
+        ERR = DMAX1( uround, DSQRT( ERR/NVAR ) )
+ 
+C ======= Choose the stepsize ===============================
+ 
+        elo    = 4.0D0 ! estimator local order
+        factor = DMAX1(2.0D-1,DMIN1(6.0D0,ERR**(1.0D0/elo)/.9D0))
+        Hnew   = DMIN1(Hmax,DMAX1(Hmin, H/factor))
+ 
+C ======= Rejected/Accepted Step ============================
+ 
+        IF ( (ERR.gt.1).and.(H.gt.Hmin) ) THEN
+          IsReject = .true.
+	  H = DMIN1(H/10,Hnew)
+          Nreject  = Nreject+1
+        ELSE
+          DO 300 i=1,NVAR*(NSENSIT+1)
+             y(i)  = ynew(i)
+ 300      CONTINUE
+          T = Tplus
+	  IF (.NOT.IsReject) THEN
+	      H = Hnew   ! Do not increase stepsize if previos step was rejected
+	  END IF    
+          IsReject = .false.
+          Naccept = Naccept+1
+        END IF
+ 
+C ======= End of the time loop ===============================
+      IF ( T .lt. Tnext ) GO TO 10
+ 
+ 
+ 
+C ======= Output Information =================================
+      Info(2) = Nfcn
+      Info(3) = Njac
+      Info(4) = Naccept
+      Info(5) = Nreject
+      Hstart  = H
+ 
+      RETURN
+      END
+ 
+ 
+ 
+      SUBROUTINE FUNC_CHEM(N, T, Y, P)
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+      KPP_REAL   T, Told
+      KPP_REAL   Y(NVAR), P(NVAR)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Fun( Y,  FIX, RCONST, P )
+      TIME = Told
+      RETURN
+      END
+
+ 
+      SUBROUTINE DFUNDPAR(N, NSENSIT, T, Y, P)
+C ---  Computes the partial derivatives of FUNC_CHEM w.r.t. parameters 
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+C ---  NCOEFF, JCOEFF useful for derivatives w.r.t. rate coefficients    
+      INTEGER NCOEFF, JCOEFF(NREACT)
+      COMMON /DDMRCOEFF/ NCOEFF, JCOEFF
+      
+      KPP_REAL   T, Told
+      KPP_REAL   Y(NVAR), P(NVAR*NSENSIT)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+C
+      IF (DDMTYPE .EQ. 0) THEN
+C ---  Note: the values below are for sensitivities w.r.t. initial values;
+C ---       they may have to be changed for other applications
+        DO j=1,NSENSIT
+          DO i=1,NVAR
+	    P(i+NVAR*(j-1)) = 0.0D0
+	  END DO
+        END DO
+      ELSE	
+C ---  Example: the call below is for sensitivities w.r.t. rate coefficients;
+C ---       JCOEFF(1:NSENSIT) are the indices of the NSENSIT rate coefficients
+C ---       w.r.t. which one differentiates
+        CALL dFun_dRcoeff( Y,  FIX, NCOEFF, JCOEFF, P )
+      END IF
+      TIME = Told
+      RETURN
+      END
+ 
+      SUBROUTINE JAC_CHEM(N, T, Y, J)
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+      INTEGER N
+      KPP_REAL   Told, T
+      KPP_REAL   Y(NVAR), J(LU_NONZERO)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Jac_SP( Y,  FIX, RCONST, J )
+      TIME = Told
+      RETURN
+      END                                                                                                                 
+
+ 
+      SUBROUTINE DJACDPAR(N, NSENSIT, T, Y, U, P)
+C ---  Computes the partial derivatives of JAC w.r.t. parameters times user vector U
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+C ---  NCOEFF, JCOEFF useful for derivatives w.r.t. rate coefficients    
+      INTEGER N
+      INTEGER NCOEFF, JCOEFF(NREACT)
+      COMMON /DDMRCOEFF/ NCOEFF, JCOEFF
+      
+      KPP_REAL   T, Told
+      KPP_REAL   Y(NVAR), U(NVAR)
+      KPP_REAL   P(NVAR*NSENSIT)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+C
+      IF (DDMTYPE .EQ. 0) THEN
+C ---  Note: the values below are for sensitivities w.r.t. initial values;
+C ---       they may have to be changed for other applications
+        DO j=1,NSENSIT
+          DO i=1,NVAR
+	    P(i+NVAR*(j-1)) = 0.0D0
+	  END DO
+        END DO
+      ELSE	
+C ---  Example: the call below is for sensitivities w.r.t. rate coefficients;
+C ---       JCOEFF(1:NSENSIT) are the indices of the NSENSIT rate coefficients
+C ---       w.r.t. which one differentiates
+        CALL dJac_dRcoeff( Y,  FIX, U, NCOEFF, JCOEFF, P )
+      END IF
+      TIME = Told
+      RETURN
+      END
+ 
+ 
+      SUBROUTINE HESS_CHEM(N, T, Y, HESS)
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+      INTEGER N
+      KPP_REAL   Told, T
+      KPP_REAL   Y(NVAR), HESS(NHESS)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Hessian( Y,  FIX, RCONST, HESS )
+      TIME = Told
+      RETURN
+      END                                                                                                                 
+
+
+
+
+
+                                                                                                                            
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/twostepj.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/twostepj.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/twostepj.def	(revision 2696)
@@ -0,0 +1,16 @@
+ 
+#FUNCTION SPLIT
+#JACOBIAN OFF
+#SPARSEDATA OFF
+#DOUBLE ON
+#INTFILE twostepj
+
+#INLINE F_INIT_INT
+        STEPMIN=0.0001
+        STEPMAX=60.
+#ENDINLINE
+
+#INLINE C_INIT_INT
+  STEPMIN=0.0001;
+  STEPMAX=60.;
+#ENDINLINE
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/twostepj.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/twostepj.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/oldies/twostepj.f	(revision 2696)
@@ -0,0 +1,244 @@
+      SUBROUTINE INTEGRATE( TIN, TOUT )
+
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+
+C TIN - Start Time
+      KPP_REAL TIN
+C TOUT - End Time
+      KPP_REAL TOUT
+      EXTERNAL ITER
+      KPP_REAL T
+      KPP_REAL V(NVAR), VOLD(NVAR), VNEW(NVAR)
+      KPP_REAL startdt, hmin, hmax, h 
+
+      INTEGER    INFO(5)
+
+      INFO(1) = Autonomous
+      h = hmin
+      
+c Number of Jacobi-Seidel iterations      
+      numit = 3   
+
+      
+      DO i=1,NVAR
+        RTOL(i) = 1.e-2
+      ENDDO	
+
+      CALL twostepj(NVAR,TIN,TOUT,h,hmin,hmax,
+     +                   VOLD,VAR,VNEW, 
+     +                   ATOL,RTOL,numit,
+     +                   nfcn,naccpt,nrejec,nstart,startdt,ITER)
+
+
+      RETURN
+      END
+      
+      
+
+      SUBROUTINE ITER(n,T,y,yp,yl)
+      INCLUDE 'KPP_ROOT_params.h'
+      INCLUDE 'KPP_ROOT_global.h'
+      REAL*8 T, y(NVAR), yp(NVAR), yl(NVAR)
+      TOLD = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL FunSPLIT_VAR(y,Rad,yp,yl)
+      TIME = TOLD
+      RETURN
+      END
+     
+
+      subroutine twostepj(n,t,te,dt,dtmin,dtmax,
+     +                   yold,y,ynew,
+     +                   atol,rtol,numit,
+     +                   nfcn,naccpt,nrejec,nstart,startdt,ITER)
+      implicit real*8 (a-h,o-z)
+      external ITER
+      integer	 n,numit,nfcn,naccpt,nrejec,nstart,i,j
+      real*8	 t,te,dt,dtmin,dtmax,startdt,ytol,
+     +           ratio,dtold,a1,a2,c,cp1,dtg,errlte,dy
+      real*8       yold(n),y(n),ynew(n),yp(n),yl(n),
+     +           work(n),sum(n),atol(n),rtol(n)
+      logical 	 accept,failer,restart
+
+c
+c     Initialization of counters, etc.
+
+      naccpt=0
+      nrejec=0
+      nfcn=0
+      nstart=0
+      failer=.false.
+      restart=.false.
+      accept=.true.
+
+c     Initial stepsize computation. 
+    
+   10 if (dtmin.eq.dtmax) then
+       nstart=1
+       dt=min(dtmin,(te-t)/2)
+       goto 28
+      endif
+      CALL ITER(n,t,y,yp,yl)
+      nfcn=nfcn+1
+      dt=te-t
+      do 20 i=1,n
+       ytol=atol(i)+rtol(i)*abs(y(i))
+       dy=yp(i)-y(i)*yl(i)
+       if (dy.ne.0.0) dt=min(dt,ytol/abs(dy))
+   20 continue
+   25 nstart=nstart+1
+      if (restart) dt=dt/10.0
+      restart=.true.
+      dt=max(dtmin,min(dt,dtmax))
+      CALL FIT(t,te,dt)
+      dt=min(dt,(te-t)/2)
+      startdt=dt
+
+c     The starting step is carried out, using the implicit Euler method.
+
+   28 do 30 i=1,n
+       ynew(i)=y(i)
+       yold(i)=y(i)
+       sum(i)=y(i)
+   30 continue
+      do 40 i=1,numit
+       CALL ITER(n,t+dt,ynew,yp,yl)
+       do i2i=1,n
+         ynew(i2i) = (sum(i2i) + dt*yp(i2i))/(1.+dt*yl(i2i))
+       end do
+       nfcn=nfcn+1
+   40 continue
+      naccpt=naccpt+1
+      t=t+dt
+      do 50 j=1,n
+       y(j)=ynew(j)
+   50 continue
+
+c     Subsequent steps are carried out with the two-step BDF method.
+
+      dtold=dt
+      ratio=1.0
+   60 continue
+      c=1.0/ratio
+      cp1=c+1.0
+      a1=((c+1.0)**2)/(c*c+2.0*c)
+      a2=-1.0/(c*c+2.0*c)
+      dtg=dt*(1.0+c)/(2.0+c)
+      do 70 j=1,n
+       sum(j)=a1*y(j)+a2*yold(j)
+       ynew(j)=max(0.0,y(j)+ratio*(y(j)-yold(j)))
+   70 continue
+      do 80 i=1,numit
+       CALL ITER(n,t+dt,ynew,yp,yl)
+       do i2i=1,n
+        ynew(i2i) = (sum(i2i) + dtg*yp(i2i))/(1.+dtg*yl(i2i))
+       end do
+       nfcn=nfcn+1
+   80 continue
+
+c     If stepsizes should remain equal, stepsize control is omitted.
+
+      if (dtmin.eq.dtmax) then
+       t=t+dtold
+       naccpt=naccpt+1
+       do 85 j=1,n
+        yold(j)=y(j)
+        y(j)=ynew(j)
+   85  continue
+       if (dt.ne.dtold) then
+	t=t-dtold+dt
+	goto 120
+       endif
+       dt=min(dtold,te-t)
+       ratio=dt/dtold
+       if (t.ge.te) goto 120
+       goto 60
+      endif
+
+c     Otherwise stepsize control is carried out.
+
+      errlte=0.0
+      do 90 i=1,n
+       ytol=atol(i)+rtol(i)*abs(y(i))
+       errlte=max(errlte,abs(c*ynew(i)-cp1*y(i)+yold(i))/ytol)
+   90 continue
+      errlte=2.0*errlte/(c+c*c)
+      CALL NEWDT(t,te,dt,dtold,ratio,errlte,accept,
+     +           dtmin,dtmax)
+
+c     Here the step has been accepted. 
+
+      if (accept) then
+ 201   format(2(E24.16,1X))
+       failer=.false.
+       restart=.false.
+       t=t+dtold
+       naccpt=naccpt+1
+       do 100 j=1,n
+	yold(j)=y(j)
+	y(j)=ynew(j)
+  100  continue
+       if (t.ge.te) goto 120
+       goto 60
+      endif
+
+c     A restart check is carried out.
+      
+      if (failer) then
+       nrejec=nrejec+1
+       failer=.false.
+       naccpt=naccpt-1
+       t=t-dtold
+       do 110 j=1,n
+        y(j)=yold(j)
+  110  continue
+       goto 25
+      endif
+
+c     Here the step has been rejected.
+
+      nrejec=nrejec+1
+      failer=.true.
+      goto 60
+      
+c     End of TWOSTEP.
+  120 end
+c=====================================================================
+
+      subroutine NEWDT(t,te,dt,dtold,ratio,errlte,
+     +                 accept,dtmin,dtmax)
+      real*8    t,te,dt,dtold,ratio,errlte,ts,dtmin,dtmax
+      logical accept
+      if (errlte.gt.1.0.and.dt.gt.dtmin) then
+       accept=.false.
+       ts=t
+      else
+       accept=.true.
+       dtold=dt
+       ts=t+dtold
+      endif
+      dt=max(0.5,min(2.0,0.8/sqrt(errlte)))*dt
+      dt=max(dtmin,min(dt,dtmax))
+      CALL FIT(ts,te,dt)
+      ratio=dt/dtold
+      end
+
+      subroutine FIT(t,te,dt)
+      real*8 	t,te,dt,rns
+      integer 	ns
+      rns=(te-t)/dt
+      if (rns.gt.10.0) goto 10
+      ns=int(rns)+1
+      dt=(te-t)/ns
+      dt=(dt+t)-t
+   10 return
+      end
+
+
+
+C End of MAIN function                                             
+C **************************************************************** 
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/readme
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/readme	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/readme	(revision 2696)
@@ -0,0 +1,21 @@
+The integrator naming conventions:
+
+*.def = definition file
+*.f   = Fortran 77 source code
+*.f90 = Fortran 90 source code
+*.c   = C source code
+
+atm_* = off-the-shelf integrators, adapted to work with KPP
+        use the native full linear algebra
+	useful for providing reference solutions
+	
+kpp_* = off-the-shelf integrators, using the KPP sparse linear algebra	
+        very efficient, useful for production runs
+	
+plain names = original integrators
+        either use the KPP sparse linear algebra, or provide
+	explicit solutions	
+	
+*_ddm = direct decoupled method
+        integrate for both the concentrations and their sensitivities
+	implements the forward and the tangent linear models together	
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/rosenbrock.c
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/rosenbrock.c	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/rosenbrock.c	(revision 2696)
@@ -0,0 +1,1216 @@
+
+ #define MAX(a,b) ( ((a) >= (b)) ?(a):(b)  )
+ #define MIN(b,c) ( ((b) <  (c)) ?(b):(c)  )	
+ #define ABS(x)   ( ((x) >=  0 ) ?(x):(-x) ) 
+ #define SQRT(d)  ( pow((d),0.5)  )
+ #define SIGN(x)  ( ((x) >=  0 ) ?[0]:(-1) )
+
+/*~~> Numerical constants */
+ #define  ZERO     (KPP_REAL)0.0
+ #define  ONE      (KPP_REAL)1.0
+ #define  HALF     (KPP_REAL)0.5
+ #define  DeltaMin (KPP_REAL)1.0e-6    
+   
+/*~~~> Collect statistics: global variables */   
+ int Nfun,Njac,Nstp,Nacc,Nrej,Ndec,Nsol,Nsng;
+
+
+/*~~~> Function headers */   
+ void FunTemplate(KPP_REAL, KPP_REAL [], KPP_REAL []); 
+ void JacTemplate(KPP_REAL, KPP_REAL [], KPP_REAL []) ;
+ int Rosenbrock(KPP_REAL Y[], KPP_REAL Tstart, KPP_REAL Tend,
+     KPP_REAL AbsTol[], KPP_REAL RelTol[],
+     void (*ode_Fun)(KPP_REAL, KPP_REAL [], KPP_REAL []), 
+     void (*ode_Jac)(KPP_REAL, KPP_REAL [], KPP_REAL []),
+     KPP_REAL RPAR[], int IPAR[]);
+ int RosenbrockIntegrator(
+     KPP_REAL Y[], KPP_REAL Tstart, KPP_REAL Tend ,     
+     KPP_REAL  AbsTol[], KPP_REAL  RelTol[],
+     void (*ode_Fun)(KPP_REAL, KPP_REAL [], KPP_REAL []), 
+     void (*ode_Jac)(KPP_REAL, KPP_REAL [], KPP_REAL []),
+     int ros_S,
+     KPP_REAL ros_M[], KPP_REAL ros_E[], 
+     KPP_REAL ros_A[], KPP_REAL ros_C[],
+     KPP_REAL ros_Alpha[],KPP_REAL  ros_Gamma[],
+     KPP_REAL ros_ELO, char ros_NewF[],
+     char Autonomous, char VectorTol, int Max_no_steps,  
+     KPP_REAL Roundoff, KPP_REAL Hmin, KPP_REAL Hmax, KPP_REAL Hstart,
+     KPP_REAL FacMin, KPP_REAL FacMax, KPP_REAL FacRej, KPP_REAL FacSafe, 
+     KPP_REAL *Texit, KPP_REAL *Hexit ); 
+ char ros_PrepareMatrix (
+     KPP_REAL* H, 
+     int Direction,  KPP_REAL gam, KPP_REAL Jac0[], 
+     KPP_REAL Ghimj[], int Pivot[] );
+ KPP_REAL ros_ErrorNorm ( 
+     KPP_REAL Y[], KPP_REAL Ynew[], KPP_REAL Yerr[], 
+     KPP_REAL AbsTol[], KPP_REAL RelTol[], 
+     char VectorTol );
+ int  ros_ErrorMsg(int Code, KPP_REAL T, KPP_REAL H);
+ void ros_FunTimeDerivative ( 
+     KPP_REAL T, KPP_REAL Roundoff, 
+     KPP_REAL Y[], KPP_REAL Fcn0[], 
+     void ode_Fun(KPP_REAL, KPP_REAL [], KPP_REAL []), 
+     KPP_REAL dFdT[] );
+ void Fun( KPP_REAL Y[], KPP_REAL FIX[], KPP_REAL RCONST[], KPP_REAL Ydot[] );
+ void Jac_SP( KPP_REAL Y[], KPP_REAL FIX[], KPP_REAL RCONST[], KPP_REAL Ydot[] );
+ void FunTemplate( KPP_REAL T, KPP_REAL Y[], KPP_REAL Ydot[] );
+ void JacTemplate( KPP_REAL T, KPP_REAL Y[], KPP_REAL Ydot[] );
+ void DecompTemplate( KPP_REAL A[], int Pivot[], int* ising );
+ void SolveTemplate( KPP_REAL A[], int Pivot[], KPP_REAL b[] );
+ void WCOPY(int N, KPP_REAL X[], int incX, KPP_REAL Y[], int incY);
+ void WAXPY(int N, KPP_REAL Alpha, KPP_REAL X[], int incX, KPP_REAL Y[], int incY );
+ void WSCAL(int N, KPP_REAL Alpha, KPP_REAL X[], int incX);
+ KPP_REAL WLAMCH( char C );
+ void Ros2 ( int *ros_S, KPP_REAL ros_A[], KPP_REAL ros_C[], 
+             KPP_REAL ros_M[], KPP_REAL ros_E[], 
+	     KPP_REAL ros_Alpha[], KPP_REAL ros_Gamma[], 
+	     char ros_NewF[], KPP_REAL *ros_ELO, char* ros_Name );
+ void Ros3 ( int *ros_S, KPP_REAL ros_A[], KPP_REAL ros_C[], 
+             KPP_REAL ros_M[], KPP_REAL ros_E[], 
+	     KPP_REAL ros_Alpha[], KPP_REAL ros_Gamma[], 
+	     char ros_NewF[], KPP_REAL *ros_ELO, char* ros_Name );
+ void Ros4 ( int *ros_S, KPP_REAL ros_A[], KPP_REAL ros_C[], 
+             KPP_REAL ros_M[], KPP_REAL ros_E[], 
+	     KPP_REAL ros_Alpha[], KPP_REAL ros_Gamma[], 
+	     char ros_NewF[], KPP_REAL *ros_ELO, char* ros_Name );
+ void Rodas3 ( int *ros_S, KPP_REAL ros_A[], KPP_REAL ros_C[], 
+             KPP_REAL ros_M[], KPP_REAL ros_E[], 
+	     KPP_REAL ros_Alpha[], KPP_REAL ros_Gamma[], 
+	     char ros_NewF[], KPP_REAL *ros_ELO, char* ros_Name );
+ void Rodas4 ( int *ros_S, KPP_REAL ros_A[], KPP_REAL ros_C[], 
+             KPP_REAL ros_M[], KPP_REAL ros_E[], 
+	     KPP_REAL ros_Alpha[], KPP_REAL ros_Gamma[], 
+	     char ros_NewF[], KPP_REAL *ros_ELO, char* ros_Name );
+ int  KppDecomp( KPP_REAL A[] );
+ void KppSolve ( KPP_REAL A[], KPP_REAL b[] );
+ void Update_SUN();
+ void Update_RCONST();
+ 
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void INTEGRATE( KPP_REAL TIN, KPP_REAL TOUT )
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+{
+   static KPP_REAL  RPAR[20];
+   static int  i, IERR, IPAR[20];
+   static int Ns=0, Na=0, Nr=0, Ng=0;
+
+   for ( i = 0; i < 20; i++ ) {
+     IPAR[i] = 0;
+     RPAR[i] = ZERO;
+   } /* for */
+   
+   
+   IPAR[0] = 0;    /* non-autonomous */
+   IPAR[1] = 1;    /* vector tolerances */
+   RPAR[2] = STEPMIN; /* starting step */
+   IPAR[3] = 5;    /* choice of the method */
+
+   IERR = Rosenbrock(VAR, TIN, TOUT,
+           ATOL, RTOL,
+           &FunTemplate, &JacTemplate,
+           RPAR, IPAR);
+
+	     
+   Ns=Ns+IPAR[12];
+   Na=Na+IPAR[13];
+   Nr=Nr+IPAR[14];
+   Ng=Ng+IPAR[17];
+   printf("\n Step=%d  Acc=%d  Rej=%d  Singular=%d\n",
+         Ns,Na,Nr,Ng);
+
+
+   if (IERR < 0)
+     printf("\n Rosenbrock: Unsucessful step at T=%g: IERR=%d\n",
+         TIN,IERR);
+   
+   TIN = RPAR[10];      /* Exit time */
+   STEPMIN = RPAR[11];  /* Last step */
+   
+} /* INTEGRATE */
+
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+int Rosenbrock(KPP_REAL Y[], KPP_REAL Tstart, KPP_REAL Tend,
+        KPP_REAL AbsTol[], KPP_REAL RelTol[],
+        void (*ode_Fun)(KPP_REAL, KPP_REAL [], KPP_REAL []), 
+	void (*ode_Jac)(KPP_REAL, KPP_REAL [], KPP_REAL []),
+        KPP_REAL RPAR[], int IPAR[])
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   
+    Solves the system y'=F(t,y) using a Rosenbrock method defined by:
+
+     G = 1/(H*gamma[0]) - ode_Jac(t0,Y0)
+     T_i = t0 + Alpha(i)*H
+     Y_i = Y0 + \sum_{j=1}^{i-1} A(i,j)*K_j
+     G * K_i = ode_Fun( T_i, Y_i ) + \sum_{j=1}^S C(i,j)/H * K_j +
+         gamma(i)*dF/dT(t0, Y0)
+     Y1 = Y0 + \sum_{j=1}^S M(j)*K_j 
+
+    For details on Rosenbrock methods and their implementation consult:
+      E. Hairer and G. Wanner
+      "Solving ODEs II. Stiff and differential-algebraic problems".
+      Springer series in computational mathematics, Springer-Verlag, 1996.  
+    The codes contained in the book inspired this implementation.       
+
+    (C)  Adrian Sandu, August 2004
+    Virginia Polytechnic Institute and State University    
+    Contact: sandu@cs.vt.edu
+    This implementation is part of KPP - the Kinetic PreProcessor
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    
+  *~~~>   INPUT ARGUMENTS: 
+    
+-     Y(NVAR)    = vector of initial conditions (at T=Tstart)
+-    [Tstart,Tend]  = time range of integration
+     (if Tstart>Tend the integration is performed backwards in time)  
+-    RelTol, AbsTol = user precribed accuracy
+-    void ode_Fun( T, Y, Ydot ) = ODE function, 
+                       returns Ydot = Y' = F(T,Y) 
+-    void ode_Fun( T, Y, Ydot ) = Jacobian of the ODE function,
+                       returns Jcb = dF/dY 
+-    IPAR(1:10)    = int inputs parameters
+-    RPAR(1:10)    = real inputs parameters
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  *~~~>     OUTPUT ARGUMENTS:  
+     
+-    Y(NVAR)    -> vector of final states (at T->Tend)
+-    IPAR(11:20)   -> int output parameters
+-    RPAR(11:20)   -> real output parameters
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  *~~~>    RETURN VALUE (int):  
+
+-    IERR       -> job status upon return
+       - succes (positive value) or failure (negative value) -
+           =  1 : Success
+           = -1 : Improper value for maximal no of steps
+           = -2 : Selected Rosenbrock method not implemented
+           = -3 : Hmin/Hmax/Hstart must be positive
+           = -4 : FacMin/FacMax/FacRej must be positive
+           = -5 : Improper tolerance values
+           = -6 : No of steps exceeds maximum bound
+           = -7 : Step size too small
+           = -8 : Matrix is repeatedly singular
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ 
+  *~~~>     INPUT PARAMETERS:
+
+    Note: For input parameters equal to zero the default values of the
+       corresponding variables are used.
+
+    IPAR[0]   = 1: F = F(y)   Independent of T (AUTONOMOUS)
+        = 0: F = F(t,y) Depends on T (NON-AUTONOMOUS)
+    IPAR[1]   = 0: AbsTol, RelTol are NVAR-dimensional vectors
+        = 1:  AbsTol, RelTol are scalars
+    IPAR[2]  -> maximum number of integration steps
+        For IPAR[2]=0) the default value of 100000 is used
+
+    IPAR[3]  -> selection of a particular Rosenbrock method
+        = 0 :  default method is Rodas3
+        = 1 :  method is  Ros2
+        = 2 :  method is  Ros3 
+        = 3 :  method is  Ros4 
+        = 4 :  method is  Rodas3
+        = 5:   method is  Rodas4
+
+    RPAR[0]  -> Hmin, lower bound for the integration step size
+          It is strongly recommended to keep Hmin = ZERO 
+    RPAR[1]  -> Hmax, upper bound for the integration step size
+    RPAR[2]  -> Hstart, starting value for the integration step size
+          
+    RPAR[3]  -> FacMin, lower bound on step decrease factor (default=0.2)
+    RPAR[4]  -> FacMin,upper bound on step increase factor (default=6)
+    RPAR[5]  -> FacRej, step decrease factor after multiple rejections
+            (default=0.1)
+    RPAR[6]  -> FacSafe, by which the new step is slightly smaller 
+         than the predicted value  (default=0.9)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ 
+  *~~~>     OUTPUT PARAMETERS:
+
+    Note: each call to Rosenbrock adds the corrent no. of fcn calls
+      to previous value of IPAR[10], and similar for the other params.
+      Set IPAR(11:20) = 0 before call to avoid this accumulation.
+
+    IPAR[10] = No. of function calls
+    IPAR[11] = No. of jacobian calls
+    IPAR[12] = No. of steps
+    IPAR[13] = No. of accepted steps
+    IPAR[14] = No. of rejected steps (except at the beginning)
+    IPAR[15] = No. of LU decompositions
+    IPAR[16] = No. of forward/backward substitutions
+    IPAR[17] = No. of singular matrix decompositions
+
+    RPAR[10]  -> Texit, the time corresponding to the 
+            computed Y upon return
+    RPAR[11]  -> Hexit, last accepted step before exit
+    For multiple restarts, use Hexit as Hstart in the following run 
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+{   
+
+  /*~~~>  The method parameters    */   
+   #define Smax 6
+   int  Method, ros_S;
+   KPP_REAL ros_M[Smax], ros_E[Smax];
+   KPP_REAL ros_A[Smax*(Smax-1)/2], ros_C[Smax*(Smax-1)/2];
+   KPP_REAL ros_Alpha[Smax], ros_Gamma[Smax], ros_ELO;
+   char ros_NewF[Smax], ros_Name[12];
+  /*~~~>  Local variables    */  
+   int Max_no_steps, IERR, i, UplimTol;
+   char Autonomous, VectorTol;
+   KPP_REAL Roundoff,FacMin,FacMax,FacRej,FacSafe;
+   KPP_REAL Hmin, Hmax, Hstart, Hexit, Texit;
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+
+  /*~~~>  Initialize statistics */
+   Nfun = IPAR[10];
+   Njac = IPAR[11];
+   Nstp = IPAR[12];
+   Nacc = IPAR[13];
+   Nrej = IPAR[14];
+   Ndec = IPAR[15];
+   Nsol = IPAR[16];
+   Nsng = IPAR[17];
+   
+  /*~~~>  Autonomous or time dependent ODE. Default is time dependent. */
+   Autonomous = !(IPAR[0] == 0);
+
+  /*~~~>  For Scalar tolerances (IPAR[1] != 0)  the code uses AbsTol[0] and RelTol[0]
+!   For Vector tolerances (IPAR[1] == 0) the code uses AbsTol(1:NVAR) and RelTol(1:NVAR) */
+   if (IPAR[1] == 0) {
+      VectorTol = 1; UplimTol  = KPP_NVAR;
+   } else { 
+      VectorTol = 0; UplimTol  = 1;
+   } /* end if */
+   
+  /*~~~>   The maximum number of steps admitted */
+   if (IPAR[2] == 0)  
+      Max_no_steps = 100000;
+   else                
+      Max_no_steps=IPAR[2];
+   if (Max_no_steps < 0) { 
+      printf("\n User-selected max no. of steps: IPAR[2]=%d\n",IPAR[2]);
+      return ros_ErrorMsg(-1,Tstart,ZERO);
+   } /* end if */
+
+  /*~~~>  The particular Rosenbrock method chosen */
+   if (IPAR[3] == 0)  
+       Method = 3;
+   else                
+       Method = IPAR[3];
+   if ( (IPAR[3] < 1) || (IPAR[3] > 5) ){  
+      printf("\n User-selected Rosenbrock method: IPAR[3]=%d\n",IPAR[3]);
+      return ros_ErrorMsg(-2,Tstart,ZERO);
+   } /* end if */
+   
+  /*~~~>  Unit Roundoff (1+Roundoff>1)   */
+   Roundoff = WLAMCH('E');
+
+  /*~~~>  Lower bound on the step size: (positive value) */
+   Hmin = RPAR[0];
+   if (RPAR[0] < ZERO) {	 
+      printf("\n User-selected Hmin: RPAR[0]=%e\n", RPAR[0]);
+      return ros_ErrorMsg(-3,Tstart,ZERO);
+   } /* end if */
+  /*~~~>  Upper bound on the step size: (positive value) */
+   if (RPAR[1] == ZERO)  
+      Hmax = ABS(Tend-Tstart);
+   else   
+      Hmax = MIN(ABS(RPAR[1]),ABS(Tend-Tstart));
+   if (RPAR[1] < ZERO) {	 
+      printf("\n User-selected Hmax: RPAR[1]=%e\n", RPAR[1]);
+      return ros_ErrorMsg(-3,Tstart,ZERO);
+   } /* end if */
+  /*~~~>  Starting step size: (positive value) */
+   if (RPAR[2] == ZERO) 
+      Hstart = MAX(Hmin,DeltaMin);
+   else
+      Hstart = MIN(ABS(RPAR[2]),ABS(Tend-Tstart));
+   if (RPAR[2] < ZERO) {	 
+      printf("\n User-selected Hstart: RPAR[2]=%e\n", RPAR[2]);
+      return ros_ErrorMsg(-3,Tstart,ZERO);
+   } /* end if */
+  /*~~~>  Step size can be changed s.t.  FacMin < Hnew/Hexit < FacMax  */
+   if (RPAR[3] == ZERO)
+      FacMin = (KPP_REAL)0.2;
+   else
+      FacMin = RPAR[3];
+   if (RPAR[3] < ZERO) {	 
+      printf("\n User-selected FacMin: RPAR[3]=%e\n", RPAR[3]);
+      return ros_ErrorMsg(-4,Tstart,ZERO);
+   } /* end if */
+   if (RPAR[4] == ZERO) 
+      FacMax = (KPP_REAL)6.0;
+   else
+      FacMax = RPAR[4];
+   if (RPAR[4] < ZERO) {	 
+      printf("\n User-selected FacMax: RPAR[4]=%e\n", RPAR[4]);
+      return ros_ErrorMsg(-4,Tstart,ZERO);
+   } /* end if */
+  /*~~~>   FacRej: Factor to decrease step after 2 succesive rejections */
+   if (RPAR[5] == ZERO) 
+      FacRej = (KPP_REAL)0.1;
+   else
+      FacRej = RPAR[5];
+   if (RPAR[5] < ZERO) {	 
+      printf("\n User-selected FacRej: RPAR[5]=%e\n", RPAR[5]);
+      return ros_ErrorMsg(-4,Tstart,ZERO);
+   } /* end if */
+  /*~~~>   FacSafe: Safety Factor in the computation of new step size */
+   if (RPAR[6] == ZERO) 
+      FacSafe = (KPP_REAL)0.9;
+   else
+      FacSafe = RPAR[6];
+   if (RPAR[6] < ZERO) {	 
+      printf("\n User-selected FacSafe: RPAR[6]=%e\n", RPAR[6]);
+      return ros_ErrorMsg(-4,Tstart,ZERO);
+   } /* end if */
+  /*~~~>  Check if tolerances are reasonable */
+    for (i = 0; i < UplimTol; i++) {
+      if ( (AbsTol[i] <= ZERO)  ||  (RelTol[i] <= 10.0*Roundoff)
+          ||  (RelTol[i] >= ONE) ) {
+        printf("\n  AbsTol[%d] = %e\n",i,AbsTol[i]);
+        printf("\n  RelTol[%d] = %e\n",i,RelTol[i]);
+        return ros_ErrorMsg(-5,Tstart,ZERO);
+      } /* end if */
+    } /* for */
+     
+ 
+  /*~~~>   Initialize the particular Rosenbrock method */
+   switch (Method) {
+     case 1:
+       Ros2(&ros_S, ros_A, ros_C, ros_M, ros_E, 
+         ros_Alpha, ros_Gamma, ros_NewF, &ros_ELO, ros_Name);
+       break;	 
+     case 2:
+       Ros3(&ros_S, ros_A, ros_C, ros_M, ros_E, 
+         ros_Alpha, ros_Gamma, ros_NewF, &ros_ELO, ros_Name);
+       break;	 
+     case 3:
+       Ros4(&ros_S, ros_A, ros_C, ros_M, ros_E, 
+         ros_Alpha, ros_Gamma, ros_NewF, &ros_ELO, ros_Name);
+       break;	 
+     case 4:
+       Rodas3(&ros_S, ros_A, ros_C, ros_M, ros_E, 
+         ros_Alpha, ros_Gamma, ros_NewF, &ros_ELO, ros_Name);
+       break;	 
+     case 5:
+       Rodas4(&ros_S, ros_A, ros_C, ros_M, ros_E, 
+         ros_Alpha, ros_Gamma, ros_NewF, &ros_ELO, ros_Name);
+       break;	 
+     default:
+       printf("\n Unknown Rosenbrock method: IPAR[3]= %d", Method);
+       return ros_ErrorMsg(-2,Tstart,ZERO); 
+   } /* end switch */
+
+  /*~~~>  Rosenbrock method   */
+   IERR = RosenbrockIntegrator( Y,Tstart,Tend,
+        AbsTol, RelTol,
+        ode_Fun,ode_Jac ,
+      /*  Rosenbrock method coefficients  */     
+        ros_S, ros_M, ros_E, ros_A, ros_C, 
+        ros_Alpha, ros_Gamma, ros_ELO, ros_NewF,
+      /*  Integration parameters */ 
+        Autonomous, VectorTol, Max_no_steps,
+        Roundoff, Hmin, Hmax, Hstart,
+        FacMin, FacMax, FacRej, FacSafe, 
+      /* Output parameters */ 
+	&Texit, &Hexit );
+
+
+  /*~~~>  Collect run statistics */
+   IPAR[10] = Nfun;
+   IPAR[11] = Njac;
+   IPAR[12] = Nstp;
+   IPAR[13] = Nacc;
+   IPAR[14] = Nrej;
+   IPAR[15] = Ndec;
+   IPAR[16] = Nsol;
+   IPAR[17] = Nsng;
+  /*~~~> Last T and H */
+   RPAR[10] = Texit;
+   RPAR[11] = Hexit;    
+   
+   return IERR;
+   
+} /* Rosenbrock */
+
+   
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+int RosenbrockIntegrator(
+  /*~~~> Input: the initial condition at Tstart; Output: the solution at T */  
+     KPP_REAL Y[],
+  /*~~~> Input: integration interval */   
+     KPP_REAL Tstart, KPP_REAL Tend ,     
+  /*~~~> Input: tolerances  */        
+     KPP_REAL  AbsTol[], KPP_REAL  RelTol[],
+  /*~~~> Input: ode function and its Jacobian */      
+     void (*ode_Fun)(KPP_REAL, KPP_REAL [], KPP_REAL []), 
+     void (*ode_Jac)(KPP_REAL, KPP_REAL [], KPP_REAL []) ,
+  /*~~~> Input: The Rosenbrock method parameters */   
+     int ros_S,
+     KPP_REAL ros_M[], KPP_REAL ros_E[], 
+     KPP_REAL ros_A[], KPP_REAL ros_C[],
+     KPP_REAL ros_Alpha[],KPP_REAL  ros_Gamma[],
+     KPP_REAL ros_ELO, char ros_NewF[],
+  /*~~~> Input: integration parameters  */     
+     char Autonomous, char VectorTol,
+     int Max_no_steps,  
+     KPP_REAL Roundoff, KPP_REAL Hmin, KPP_REAL Hmax, KPP_REAL Hstart,
+     KPP_REAL FacMin, KPP_REAL FacMax, KPP_REAL FacRej, KPP_REAL FacSafe, 
+  /*~~~> Output: time at which the solution is returned (T=Tend  if success)   
+             and last accepted step  */     
+     KPP_REAL *Texit, KPP_REAL *Hexit ) 
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      Template for the implementation of a generic Rosenbrock method 
+      defined by ros_S (no of stages) and coefficients ros_{A,C,M,E,Alpha,Gamma}
+      
+      returned value: IERR, indicator of success (if positive) 
+                                      or failure (if negative)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+{   
+   KPP_REAL Ynew[KPP_NVAR], Fcn0[KPP_NVAR], Fcn[KPP_NVAR],
+      dFdT[KPP_NVAR],
+      Jac0[KPP_LU_NONZERO], Ghimj[KPP_LU_NONZERO];
+   KPP_REAL K[KPP_NVAR*ros_S];   
+   KPP_REAL H, T, Hnew, HC, HG, Fac, Tau; 
+   KPP_REAL Err, Yerr[KPP_NVAR];
+   int Pivot[KPP_NVAR], Direction, ioffset, j, istage;
+   char RejectLastH, RejectMoreH;
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+   
+  /*~~~>  INITIAL PREPARATIONS  */
+   T = Tstart;
+   *Hexit = 0.0;
+   H = MIN(Hstart,Hmax); 
+   if (ABS(H) <= 10.0*Roundoff) 
+        H = DeltaMin;
+   
+   if (Tend  >=  Tstart) {
+     Direction = +1;
+   } else {
+     Direction = -1;
+   } /* end if */		
+
+   RejectLastH=0; RejectMoreH=0;
+   
+  /*~~~> Time loop begins below  */ 
+
+   while ( ( (Direction > 0) && ((T-Tend)+Roundoff <= ZERO) )
+       || ( (Direction < 0) && ((Tend-T)+Roundoff <= ZERO) ) ) { 
+      
+   if ( Nstp > Max_no_steps )  {                /* Too many steps */
+        *Texit = T;
+	return ros_ErrorMsg(-6,T,H);
+   }	
+   if ( ((T+0.1*H) == T) || (H <= Roundoff) ) { /* Step size too small */
+        *Texit = T;
+	return ros_ErrorMsg(-7,T,H);
+   }   
+   
+  /*~~~>  Limit H if necessary to avoid going beyond Tend   */  
+   *Hexit = H;
+   H = MIN(H,ABS(Tend-T));
+
+  /*~~~>   Compute the function at current time  */
+   (*ode_Fun)(T,Y,Fcn0);
+
+  /*~~~>  Compute the function derivative with respect to T  */
+   if (!Autonomous) 
+      ros_FunTimeDerivative ( T, Roundoff, Y, Fcn0, ode_Fun, dFdT );
+  
+  /*~~~>   Compute the Jacobian at current time  */
+   (*ode_Jac)(T,Y,Jac0);
+ 
+  /*~~~>  Repeat step calculation until current step accepted  */
+   while (1) { /* WHILE STEP NOT ACCEPTED */
+
+   
+   if( ros_PrepareMatrix( &H, Direction, ros_Gamma[0],
+          Jac0, Ghimj, Pivot) ) { /* More than 5 consecutive failed decompositions */
+       *Texit = T;
+       return ros_ErrorMsg(-8,T,H);
+   }
+
+  /*~~~>   Compute the stages  */
+   for (istage = 1; istage <= ros_S; istage++) {
+      
+      /* Current istage offset. Current istage vector is K[ioffset:ioffset+KPP_NVAR-1] */
+      ioffset = KPP_NVAR*(istage-1);
+	 
+      /* For the 1st istage the function has been computed previously */
+      if ( istage == 1 )
+	   WCOPY(KPP_NVAR,Fcn0,1,Fcn,1);
+      else { /* istage>1 and a new function evaluation is needed at current istage */
+	if ( ros_NewF[istage-1] ) {
+	   WCOPY(KPP_NVAR,Y,1,Ynew,1);
+	   for (j = 1; j <= istage-1; j++)
+	     WAXPY(KPP_NVAR,ros_A[(istage-1)*(istage-2)/2+j-1],
+                   &K[KPP_NVAR*(j-1)],1,Ynew,1); 
+	   Tau = T + ros_Alpha[istage-1]*Direction*H;
+           (*ode_Fun)(Tau,Ynew,Fcn);
+	} /*end if ros_NewF(istage)*/
+      } /* end if istage */
+	 
+      WCOPY(KPP_NVAR,Fcn,1,&K[ioffset],1);
+      for (j = 1; j <= istage-1; j++) {
+	 HC = ros_C[(istage-1)*(istage-2)/2+j-1]/(Direction*H);
+	 WAXPY(KPP_NVAR,HC,&K[KPP_NVAR*(j-1)],1,&K[ioffset],1);
+      } /* for j */
+	 
+      if ((!Autonomous) && (ros_Gamma[istage-1])) { 
+        HG = Direction*H*ros_Gamma[istage-1];
+	WAXPY(KPP_NVAR,HG,dFdT,1,&K[ioffset],1);
+      } /* end if !Autonomous */
+      
+      SolveTemplate(Ghimj, Pivot, &K[ioffset]);
+	 
+   } /* for istage */	    
+	    
+
+  /*~~~>  Compute the new solution   */
+   WCOPY(KPP_NVAR,Y,1,Ynew,1);
+   for (j=1; j<=ros_S; j++)
+       WAXPY(KPP_NVAR,ros_M[j-1],&K[KPP_NVAR*(j-1)],1,Ynew,1);
+
+  /*~~~>  Compute the error estimation   */
+   WSCAL(KPP_NVAR,ZERO,Yerr,1);
+   for (j=1; j<=ros_S; j++)    
+       WAXPY(KPP_NVAR,ros_E[j-1],&K[KPP_NVAR*(j-1)],1,Yerr,1);
+   Err = ros_ErrorNorm ( Y, Ynew, Yerr, AbsTol, RelTol, VectorTol );
+
+  /*~~~> New step size is bounded by FacMin <= Hnew/H <= FacMax  */
+   Fac  = MIN(FacMax,MAX(FacMin,FacSafe/pow(Err,ONE/ros_ELO)));
+   Hnew = H*Fac;  
+
+  /*~~~>  Check the error magnitude and adjust step size  */
+   Nstp++;
+   if ( (Err <= ONE) || (H <= Hmin) ) {    /*~~~> Accept step  */
+      Nacc++;
+      WCOPY(KPP_NVAR,Ynew,1,Y,1);
+      T += Direction*H;
+      Hnew = MAX(Hmin,MIN(Hnew,Hmax));
+      /* No step size increase after a rejected step  */
+      if (RejectLastH) 
+         Hnew = MIN(Hnew,H); 
+      RejectLastH = 0; RejectMoreH = 0;
+      H = Hnew;
+	 break; /* EXIT THE LOOP: WHILE STEP NOT ACCEPTED */
+   } else {             /*~~~> Reject step  */
+      if (Nacc >= 1) 
+         Nrej++;    
+      if (RejectMoreH) 
+         Hnew=H*FacRej;   
+      RejectMoreH = RejectLastH; RejectLastH = 1;
+      H = Hnew;
+   } /* end if Err <= 1 */
+
+   } /* while LOOP: WHILE STEP NOT ACCEPTED */
+
+   } /* while: time loop */   
+   
+  /*~~~> The integration was successful */
+   *Texit = T;
+   return 1;    
+
+}  /* RosenbrockIntegrator */
+ 
+
+   
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+KPP_REAL ros_ErrorNorm ( 
+  /*~~~> Input arguments */  
+     KPP_REAL Y[], KPP_REAL Ynew[], KPP_REAL Yerr[], 
+     KPP_REAL AbsTol[], KPP_REAL RelTol[], 
+     char VectorTol )
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+        Computes and returns the "scaled norm" of the error vector Yerr
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/   
+{   	 
+  /*~~~> Local variables */     
+   KPP_REAL Err, Scale, Ymax;   
+   int i;
+   
+   Err = ZERO;
+   for (i=0; i<KPP_NVAR; i++) {
+	Ymax = MAX(ABS(Y[i]),ABS(Ynew[i]));
+     if (VectorTol) {
+       Scale = AbsTol[i]+RelTol[i]*Ymax;
+     } else {
+       Scale = AbsTol[0]+RelTol[0]*Ymax;
+     } /* end if */
+     Err = Err+(Yerr[i]*Yerr[i])/(Scale*Scale);
+   } /* for i */
+   Err  = SQRT(Err/(KPP_REAL)KPP_NVAR);
+
+   return Err;
+   
+} /* ros_ErrorNorm */
+
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void ros_FunTimeDerivative ( 
+    /*~~~> Input arguments: */ 
+        KPP_REAL T, KPP_REAL Roundoff, 
+        KPP_REAL Y[], KPP_REAL Fcn0[], 
+	void (*ode_Fun)(KPP_REAL, KPP_REAL [], KPP_REAL []), 
+    /*~~~> Output arguments: */ 
+        KPP_REAL dFdT[] )
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    The time partial derivative of the function by finite differences
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/   
+{
+  /*~~~> Local variables */     
+   KPP_REAL Delta;    
+   
+   Delta = SQRT(Roundoff)*MAX(DeltaMin,ABS(T));
+   (*ode_Fun)(T+Delta,Y,dFdT);
+   WAXPY(KPP_NVAR,(-ONE),Fcn0,1,dFdT,1);
+   WSCAL(KPP_NVAR,(ONE/Delta),dFdT,1);
+
+}  /*  ros_FunTimeDerivative */
+
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/   
+char ros_PrepareMatrix (
+       /* Inout argument: (step size is decreased when LU fails) */  
+           KPP_REAL* H, 
+       /* Input arguments: */    
+           int Direction,  KPP_REAL gam, KPP_REAL Jac0[], 
+       /* Output arguments: */	  
+           KPP_REAL Ghimj[], int Pivot[] )
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  Prepares the LHS matrix for stage calculations
+  1.  Construct Ghimj = 1/(H*ham) - Jac0
+      "(Gamma H) Inverse Minus Jacobian"
+  2.  Repeat LU decomposition of Ghimj until successful.
+       -half the step size if LU decomposition fails and retry
+       -exit after 5 consecutive fails
+
+  Return value:       Singular (true=1=failed_LU or false=0=successful_LU)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/   
+{   
+  /*~~~> Local variables */     
+   int i, ising, Nconsecutive;
+   KPP_REAL ghinv;
+   
+   Nconsecutive = 0;
+   
+   while (1) {  /* while Singular */
+   
+  /*~~~>    Construct Ghimj = 1/(H*ham) - Jac0 */
+     WCOPY(KPP_LU_NONZERO,Jac0,1,Ghimj,1);
+     WSCAL(KPP_LU_NONZERO,(-ONE),Ghimj,1);
+     ghinv = ONE/(Direction*(*H)*gam);
+     for (i=0; i<KPP_NVAR; i++) {
+       Ghimj[LU_DIAG[i]] = Ghimj[LU_DIAG[i]]+ghinv;
+     } /* for i */
+  /*~~~>    Compute LU decomposition  */
+     DecompTemplate( Ghimj, Pivot, &ising );
+     if (ising == 0) {
+  /*~~~>    if successful done  */
+        return 0;  /* Singular = false */
+     } else { /* ising .ne. 0 */
+  /*~~~>    if unsuccessful half the step size; if 5 consecutive fails return */
+        Nsng++; Nconsecutive++;
+        printf("\nWarning: LU Decomposition returned ising = %d\n",ising);
+        if (Nconsecutive <= 5) { /* Less than 5 consecutive failed LUs */
+          *H = (*H)*HALF;
+        } else {                  /* More than 5 consecutive failed LUs */
+          return 1; /* Singular = true */
+        } /* end if  Nconsecutive */
+     } /* end if ising */
+	 
+   } /* while Singular */
+
+}  /*  ros_PrepareMatrix */
+
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/   
+int ros_ErrorMsg(int Code, KPP_REAL T, KPP_REAL H)
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                  Handles all error messages and returns IERR = error Code
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/   
+{   
+   printf("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"); 
+   printf("\nForced exit from Rosenbrock due to the following error:\n"); 
+     
+   switch (Code) {
+   case -1:   
+      printf("--> Improper value for maximal no of steps"); break;
+   case -2:   
+      printf("--> Selected Rosenbrock method not implemented"); break;
+   case -3:   
+      printf("--> Hmin/Hmax/Hstart must be positive"); break;
+   case -4:   
+      printf("--> FacMin/FacMax/FacRej must be positive"); break;
+   case -5:
+      printf("--> Improper tolerance values"); break;
+   case -6:
+      printf("--> No of steps exceeds maximum bound"); break;
+   case -7:
+      printf("--> Step size too small (T + H/10 = T) or H < Roundoff"); break;
+   case -8:   
+      printf("--> Matrix is repeatedly singular"); break;
+   default:
+      printf("Unknown Error code: %d ",Code); 
+   } /* end switch */
+   
+   printf("\n   Time = %15.7e,  H = %15.7e",T,H);
+   printf("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"); 
+     
+   return Code;  
+     
+}  /* ros_ErrorMsg  */
+      
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/   
+void Ros2 ( int *ros_S, KPP_REAL ros_A[], KPP_REAL ros_C[], 
+           KPP_REAL ros_M[], KPP_REAL ros_E[], 
+	   KPP_REAL ros_Alpha[], KPP_REAL ros_Gamma[], 
+	   char ros_NewF[], KPP_REAL *ros_ELO, char* ros_Name )
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+             AN L-STABLE METHOD, 2 stages, order 2
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/   
+{   
+   double g = (KPP_REAL)1.70710678118655; /* 1.0 + 1.0/SQRT(2.0) */
+   
+  /*~~~> Name of the method */
+    strcpy(ros_Name, "ROS-2");  
+        
+  /*~~~> Number of stages */
+    *ros_S = 2;
+   
+  /*~~~> The coefficient matrices A and C are strictly lower triangular.
+    The lower triangular (subdiagonal) elements are stored in row-wise order:
+    A(2,1) = ros_A[0], A(3,1)=ros_A[1], A(3,2)=ros_A[2], etc.
+    The general mapping formula is:
+        A_{i,j} = ros_A[ (i-1)*(i-2)/2 + j -1 ]   */
+    ros_A[0] = 1.0/g;
+    
+  /*~~~>     C_{i,j} = ros_C[ (i-1)*(i-2)/2 + j -1]  */
+    ros_C[0] = (-2.0)/g;
+    
+  /*~~~> does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+    or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE) */
+    ros_NewF[0] = 1;
+    ros_NewF[1] = 1;
+    
+  /*~~~> M_i = Coefficients for new step solution */
+    ros_M[0]= (3.0)/(2.0*g);
+    ros_M[1]= (1.0)/(2.0*g);
+    
+  /*~~~> E_i = Coefficients for error estimator */    
+    ros_E[0] = 1.0/(2.0*g);
+    ros_E[1] = 1.0/(2.0*g);
+    
+  /*~~~> ros_ELO = estimator of local order - the minimum between the
+!    main and the embedded scheme orders plus one */
+    *ros_ELO = (KPP_REAL)2.0;   
+     
+  /*~~~> Y_stage_i ~ Y( T + H*Alpha_i ) */
+    ros_Alpha[0] = (KPP_REAL)0.0;
+    ros_Alpha[1] = (KPP_REAL)1.0; 
+    
+  /*~~~> Gamma_i = \sum_j  gamma_{i,j}  */     
+    ros_Gamma[0] =  g;
+    ros_Gamma[1] = -g;
+    
+}  /*  Ros2 */
+
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/   
+void Ros3 ( int *ros_S, KPP_REAL ros_A[], KPP_REAL ros_C[], 
+           KPP_REAL ros_M[], KPP_REAL ros_E[], 
+	   KPP_REAL ros_Alpha[], KPP_REAL ros_Gamma[], 
+	   char ros_NewF[], KPP_REAL *ros_ELO, char* ros_Name )
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+       AN L-STABLE METHOD, 3 stages, order 3, 2 function evaluations
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/   
+{ 
+  /*~~~> Name of the method */
+   strcpy(ros_Name, "ROS-3");   
+
+  /*~~~> Number of stages */
+   *ros_S = 3;
+   
+  /*~~~> The coefficient matrices A and C are strictly lower triangular.
+    The lower triangular (subdiagonal) elements are stored in row-wise order:
+    A(2,1) = ros_A[0], A(3,1)=ros_A[1], A(3,2)=ros_A[2], etc.
+    The general mapping formula is:
+        A_{i,j} = ros_A[ (i-1)*(i-2)/2 + j -1 ]   */
+   ros_A[0]= (KPP_REAL)1.0;
+   ros_A[1]= (KPP_REAL)1.0;
+   ros_A[2]= (KPP_REAL)0.0;
+
+  /*~~~>     C_{i,j} = ros_C[ (i-1)*(i-2)/2 + j -1]  */
+   ros_C[0] = (KPP_REAL)(-1.0156171083877702091975600115545);
+   ros_C[1] = (KPP_REAL)4.0759956452537699824805835358067;
+   ros_C[2] = (KPP_REAL)9.2076794298330791242156818474003;
+   
+  /*~~~> does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+    or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE) */
+   ros_NewF[0] = 1;
+   ros_NewF[1] = 1;
+   ros_NewF[2] = 0;
+   
+  /*~~~> M_i = Coefficients for new step solution */
+   ros_M[0] = (KPP_REAL)1.0;
+   ros_M[1] = (KPP_REAL)6.1697947043828245592553615689730;
+   ros_M[2] = (KPP_REAL)(-0.4277225654321857332623837380651);
+   
+  /*~~~> E_i = Coefficients for error estimator */    
+   ros_E[0] = (KPP_REAL)0.5;
+   ros_E[1] = (KPP_REAL)(-2.9079558716805469821718236208017);
+   ros_E[2] = (KPP_REAL)0.2235406989781156962736090927619;
+   
+  /*~~~> ros_ELO = estimator of local order - the minimum between the
+!    main and the embedded scheme orders plus 1 */
+   *ros_ELO = (KPP_REAL)3.0;    
+   
+  /*~~~> Y_stage_i ~ Y( T + H*Alpha_i ) */
+   ros_Alpha[0]= (KPP_REAL)0.0;
+   ros_Alpha[1]= (KPP_REAL)0.43586652150845899941601945119356;
+   ros_Alpha[2]= (KPP_REAL)0.43586652150845899941601945119356;
+   
+  /*~~~> Gamma_i = \sum_j  gamma_{i,j}  */     
+   ros_Gamma[0]= (KPP_REAL)0.43586652150845899941601945119356;
+   ros_Gamma[1]= (KPP_REAL)0.24291996454816804366592249683314;
+   ros_Gamma[2]= (KPP_REAL)2.1851380027664058511513169485832;
+
+}  /*  Ros3 */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/   
+
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/   
+void Ros4 ( int *ros_S, KPP_REAL ros_A[], KPP_REAL ros_C[], 
+           KPP_REAL ros_M[], KPP_REAL ros_E[], 
+	   KPP_REAL ros_Alpha[], KPP_REAL ros_Gamma[], 
+	   char ros_NewF[], KPP_REAL *ros_ELO, char* ros_Name )
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+     L-STABLE ROSENBROCK METHOD OF ORDER 4, WITH 4 STAGES
+     L-STABLE EMBEDDED ROSENBROCK METHOD OF ORDER 3 
+
+      E. HAIRER AND G. WANNER, SOLVING ORDINARY DIFFERENTIAL
+      EQUATIONS II. STIFF AND DIFFERENTIAL-ALGEBRAIC PROBLEMS.
+      SPRINGER SERIES IN COMPUTATIONAL MATHEMATICS,
+      SPRINGER-VERLAG (1990)         
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/   
+{   
+  /*~~~> Name of the method */
+   strcpy(ros_Name, "ROS-4");  
+       
+  /*~~~> Number of stages */
+   *ros_S = 4;
+   
+  /*~~~> The coefficient matrices A and C are strictly lower triangular.
+    The lower triangular (subdiagonal) elements are stored in row-wise order:
+    A(2,1) = ros_A[0], A(3,1)=ros_A[1], A(3,2)=ros_A[2], etc.
+    The general mapping formula is:
+       A_{i,j} = ros_A[ (i-1)*(i-2)/2 + j -1 ]  */
+   ros_A[0] = (KPP_REAL)0.2000000000000000e+01;
+   ros_A[1] = (KPP_REAL)0.1867943637803922e+01;
+   ros_A[2] = (KPP_REAL)0.2344449711399156;
+   ros_A[3] = ros_A[1];
+   ros_A[4] = ros_A[2];
+   ros_A[5] = (KPP_REAL)0.0;
+
+  /*~~~>     C(i,j) = (KPP_REAL)ros_C( (i-1)*(i-2)/2 + j )  */
+   ros_C[0] = (KPP_REAL)(-0.7137615036412310e+01);
+   ros_C[1] = (KPP_REAL)( 0.2580708087951457e+01);
+   ros_C[2] = (KPP_REAL)( 0.6515950076447975);
+   ros_C[3] = (KPP_REAL)(-0.2137148994382534e+01);
+   ros_C[4] = (KPP_REAL)(-0.3214669691237626);
+   ros_C[5] = (KPP_REAL)(-0.6949742501781779);
+   
+  /*~~~> does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+    or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE) */
+   ros_NewF[0]  = 1;
+   ros_NewF[1]  = 1;
+   ros_NewF[2]  = 1;
+   ros_NewF[3]  = 0;
+   
+  /*~~~> M_i = Coefficients for new step solution */
+   ros_M[0] = (KPP_REAL)0.2255570073418735e+01;
+   ros_M[1] = (KPP_REAL)0.2870493262186792;
+   ros_M[2] = (KPP_REAL)0.4353179431840180;
+   ros_M[3] = (KPP_REAL)0.1093502252409163e+01;
+   
+  /*~~~> E_i  = Coefficients for error estimator */   
+   ros_E[0] = (KPP_REAL)(-0.2815431932141155);
+   ros_E[1] = (KPP_REAL)(-0.7276199124938920e-01);
+   ros_E[2] = (KPP_REAL)(-0.1082196201495311);
+   ros_E[3] = (KPP_REAL)(-0.1093502252409163e+01);
+   
+  /*~~~> ros_ELO  = estimator of local order - the minimum between the
+!    main and the embedded scheme orders plus 1 */
+   *ros_ELO  = (KPP_REAL)4.0;    
+   
+  /*~~~> Y_stage_i ~ Y( T + H*Alpha_i ) */
+   ros_Alpha[0] = (KPP_REAL)0.0;
+   ros_Alpha[1] = (KPP_REAL)0.1145640000000000e+01;
+   ros_Alpha[2] = (KPP_REAL)0.6552168638155900;
+   ros_Alpha[3] = (KPP_REAL)ros_Alpha[2];
+   
+  /*~~~> Gamma_i = \sum_j  gamma_{i,j}  */     
+   ros_Gamma[0] = (KPP_REAL)( 0.5728200000000000);
+   ros_Gamma[1] = (KPP_REAL)(-0.1769193891319233e+01);
+   ros_Gamma[2] = (KPP_REAL)( 0.7592633437920482);
+   ros_Gamma[3] = (KPP_REAL)(-0.1049021087100450);
+
+}  /*  Ros4 */
+   
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/   
+void Rodas3 ( int *ros_S, KPP_REAL ros_A[], KPP_REAL ros_C[], 
+             KPP_REAL ros_M[], KPP_REAL ros_E[], 
+	     KPP_REAL ros_Alpha[], KPP_REAL ros_Gamma[], 
+	     char ros_NewF[], KPP_REAL *ros_ELO, char* ros_Name )
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+  --- A STIFFLY-STABLE METHOD, 4 stages, order 3
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/   
+{   
+  /*~~~> Name of the method */
+   strcpy(ros_Name, "RODAS-3");  
+   
+  /*~~~> Number of stages */
+   *ros_S = 4;
+   
+  /*~~~> The coefficient matrices A and C are strictly lower triangular.
+    The lower triangular (subdiagonal) elements are stored in row-wise order:
+    A(2,1) = ros_A[0], A(3,1)=ros_A[1], A(3,2)=ros_A[2], etc.
+    The general mapping formula is:
+        A_{i,j} = ros_A[ (i-1)*(i-2)/2 + j -1 ]  */   
+   ros_A[0] = (KPP_REAL)0.0;
+   ros_A[1] = (KPP_REAL)2.0;
+   ros_A[2] = (KPP_REAL)0.0;
+   ros_A[3] = (KPP_REAL)2.0;
+   ros_A[4] = (KPP_REAL)0.0;
+   ros_A[5] = (KPP_REAL)1.0;
+
+  /*~~~>     C_{i,j} = ros_C[ (i-1)*(i-2)/2 + j -1]  */
+   ros_C[0] = (KPP_REAL)4.0;
+   ros_C[1] = (KPP_REAL)1.0;
+   ros_C[2] = (KPP_REAL)(-1.0);
+   ros_C[3] = (KPP_REAL)1.0;
+   ros_C[4] = (KPP_REAL)(-1.0); 
+   ros_C[5] = (KPP_REAL)(-2.66666666666667); /* -8/3 */ 
+         
+  /*~~~> does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+    or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE) */
+   ros_NewF[0]  = 1;
+   ros_NewF[1]  = 0;
+   ros_NewF[2]  = 1;
+   ros_NewF[3]  = 1;
+   
+  /*~~~> M_i = Coefficients for new step solution */
+   ros_M[0] = (KPP_REAL)2.0;
+   ros_M[1] = (KPP_REAL)0.0;
+   ros_M[2] = (KPP_REAL)1.0;
+   ros_M[3] = (KPP_REAL)1.0;
+   
+  /*~~~> E_i  = Coefficients for error estimator */   
+   ros_E[0] = (KPP_REAL)0.0;
+   ros_E[1] = (KPP_REAL)0.0;
+   ros_E[2] = (KPP_REAL)0.0;
+   ros_E[3] = (KPP_REAL)1.0;
+   
+  /*~~~> ros_ELO  = estimator of local order - the minimum between the
+!    main and the embedded scheme orders plus 1 */
+   *ros_ELO  = (KPP_REAL)3.0;
+      
+  /*~~~> Y_stage_i ~ Y( T + H*Alpha_i ) */
+   ros_Alpha[0] = (KPP_REAL)0.0;
+   ros_Alpha[1] = (KPP_REAL)0.0;
+   ros_Alpha[2] = (KPP_REAL)1.0;
+   ros_Alpha[3] = (KPP_REAL)1.0;
+   
+  /*~~~> Gamma_i = \sum_j  gamma_{i,j}  */     
+   ros_Gamma[0] = (KPP_REAL)0.5;
+   ros_Gamma[1] = (KPP_REAL)1.5;
+   ros_Gamma[2] = (KPP_REAL)0.0;
+   ros_Gamma[3] = (KPP_REAL)0.0;
+ 
+}  /*  Rodas3 */
+    
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/   
+void Rodas4 ( int *ros_S, KPP_REAL ros_A[], KPP_REAL ros_C[], 
+             KPP_REAL ros_M[], KPP_REAL ros_E[], 
+	     KPP_REAL ros_Alpha[], KPP_REAL ros_Gamma[], 
+	     char ros_NewF[], KPP_REAL *ros_ELO, char* ros_Name )
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+     STIFFLY-STABLE ROSENBROCK METHOD OF ORDER 4, WITH 6 STAGES
+
+      E. HAIRER AND G. WANNER, SOLVING ORDINARY DIFFERENTIAL
+      EQUATIONS II. STIFF AND DIFFERENTIAL-ALGEBRAIC PROBLEMS.
+      SPRINGER SERIES IN COMPUTATIONAL MATHEMATICS,
+      SPRINGER-VERLAG (1996)         
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/   
+{
+  /*~~~> Name of the method */
+   strcpy(ros_Name, "RODAS-4");  
+   
+  /*~~~> Number of stages */
+    *ros_S = 6;
+
+  /*~~~> Y_stage_i ~ Y( T + H*Alpha_i ) */
+    ros_Alpha[0] = (KPP_REAL)0.000;
+    ros_Alpha[1] = (KPP_REAL)0.386;
+    ros_Alpha[2] = (KPP_REAL)0.210; 
+    ros_Alpha[3] = (KPP_REAL)0.630;
+    ros_Alpha[4] = (KPP_REAL)1.000;
+    ros_Alpha[5] = (KPP_REAL)1.000;
+	
+  /*~~~> Gamma_i = \sum_j  gamma_{i,j}  */     
+    ros_Gamma[0] = (KPP_REAL)0.2500000000000000;
+    ros_Gamma[1] = (KPP_REAL)(-0.1043000000000000);
+    ros_Gamma[2] = (KPP_REAL)0.1035000000000000;
+    ros_Gamma[3] = (KPP_REAL)(-0.3620000000000023e-01);
+    ros_Gamma[4] = (KPP_REAL)0.0;
+    ros_Gamma[5] = (KPP_REAL)0.0;
+
+  /*~~~> The coefficient matrices A and C are strictly lower triangular.
+    The lower triangular (subdiagonal) elements are stored in row-wise order:
+    A(2,1) = ros_A[0], A(3,1)=ros_A[1], A(3,2)=ros_A[2], etc.
+    The general mapping formula is:  A_{i,j} = ros_A[ (i-1)*(i-2)/2 + j -1 ]  */
+    ros_A[0]  = (KPP_REAL)0.1544000000000000e+01;
+    ros_A[1]  = (KPP_REAL)0.9466785280815826;
+    ros_A[2]  = (KPP_REAL)0.2557011698983284;
+    ros_A[3]  = (KPP_REAL)0.3314825187068521e+01;
+    ros_A[4]  = (KPP_REAL)0.2896124015972201e+01;
+    ros_A[5]  = (KPP_REAL)0.9986419139977817;
+    ros_A[6]  = (KPP_REAL)0.1221224509226641e+01;
+    ros_A[7]  = (KPP_REAL)0.6019134481288629e+01;
+    ros_A[8]  = (KPP_REAL)0.1253708332932087e+02;
+    ros_A[9]  = (KPP_REAL)(-0.6878860361058950);
+    ros_A[10] =  ros_A[6];
+    ros_A[11] =  ros_A[7];
+    ros_A[12] =  ros_A[8];
+    ros_A[13] =  ros_A[9];
+    ros_A[14] =  (KPP_REAL)1.0;
+
+  /*~~~>     C_{i,j} = ros_C[ (i-1)*(i-2)/2 + j -1]  */
+    ros_C[0]  = (KPP_REAL)(-0.5668800000000000e+01);
+    ros_C[1]  = (KPP_REAL)(-0.2430093356833875e+01);
+    ros_C[2]  = (KPP_REAL)(-0.2063599157091915);
+    ros_C[3]  = (KPP_REAL)(-0.1073529058151375);
+    ros_C[4]  = (KPP_REAL)(-0.9594562251023355e+01);
+    ros_C[5]  = (KPP_REAL)(-0.2047028614809616e+02);
+    ros_C[6]  = (KPP_REAL)( 0.7496443313967647e+01);
+    ros_C[7]  = (KPP_REAL)(-0.1024680431464352e+02);
+    ros_C[8]  = (KPP_REAL)(-0.3399990352819905e+02);
+    ros_C[9]  = (KPP_REAL)( 0.1170890893206160e+02);
+    ros_C[10] = (KPP_REAL)( 0.8083246795921522e+01);
+    ros_C[11] = (KPP_REAL)(-0.7981132988064893e+01);
+    ros_C[12] = (KPP_REAL)(-0.3152159432874371e+02);
+    ros_C[13] = (KPP_REAL)( 0.1631930543123136e+02);
+    ros_C[14] = (KPP_REAL)(-0.6058818238834054e+01);
+
+  /*~~~> M_i  = Coefficients for new step solution */
+    ros_M[0] = ros_A[6];
+    ros_M[1] = ros_A[7];
+    ros_M[2] = ros_A[8];
+    ros_M[3] = ros_A[9];
+    ros_M[4] = (KPP_REAL)1.0;
+    ros_M[5] = (KPP_REAL)1.0;
+
+  /*~~~> E_i  = Coefficients for error estimator */   
+    ros_E[0] = (KPP_REAL)0.0;
+    ros_E[1] = (KPP_REAL)0.0;
+    ros_E[2] = (KPP_REAL)0.0;
+    ros_E[3] = (KPP_REAL)0.0;
+    ros_E[4] = (KPP_REAL)0.0;
+    ros_E[5] = (KPP_REAL)1.0;
+
+  /*~~~> does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+    or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE) */
+    ros_NewF[0] = 1;
+    ros_NewF[1] = 1;
+    ros_NewF[2] = 1;
+    ros_NewF[3] = 1;
+    ros_NewF[4] = 1;
+    ros_NewF[5] = 1;
+     
+  /*~~~> ros_ELO  = estimator of local order - the minimum between the
+!    main and the embedded scheme orders plus 1 */
+    *ros_ELO = (KPP_REAL)4.0;
+     
+}  /*  Rodas4 */
+
+   
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/   
+void DecompTemplate( KPP_REAL A[], int Pivot[], int* ising )
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
+        Template for the LU decomposition   
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/   
+{   
+   *ising = KppDecomp ( A );
+  /*~~~> Note: for a full matrix use Lapack:
+      DGETRF( KPP_NVAR, KPP_NVAR, A, KPP_NVAR, Pivot, ising ) */
+    
+   Ndec++;
+
+}  /*  DecompTemplate */
+ 
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/   
+ void SolveTemplate( KPP_REAL A[], int Pivot[], KPP_REAL b[] )
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
+     Template for the forward/backward substitution (using pre-computed LU decomposition)   
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/   
+{   
+   KppSolve( A, b );
+  /*~~~> Note: for a full matrix use Lapack:
+      NRHS = 1
+      DGETRS( 'N', KPP_NVAR , NRHS, A, KPP_NVAR, Pivot, b, KPP_NVAR, INFO ) */
+     
+   Nsol++;
+
+}  /*  SolveTemplate */
+
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/   
+void FunTemplate( KPP_REAL T, KPP_REAL Y[], KPP_REAL Ydot[] )
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
+    Template for the ODE function call.
+    Updates the rate coefficients (and possibly the fixed species) at each call    
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/   
+{
+   KPP_REAL Told;     
+
+   Told = TIME;
+   TIME = T;
+   Update_SUN();
+   Update_RCONST();
+   Fun( Y, FIX, RCONST, Ydot );
+   TIME = Told;
+     
+   Nfun++;
+   
+}  /*  FunTemplate */
+
+ 
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/   
+void JacTemplate( KPP_REAL T, KPP_REAL Y[], KPP_REAL Jcb[] )
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+    Template for the ODE Jacobian call.
+    Updates the rate coefficients (and possibly the fixed species) at each call    
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/   
+{
+  /*~~~> Local variables */
+   KPP_REAL Told;     
+
+   Told = TIME;
+   TIME = T ; 
+   Update_SUN();
+   Update_RCONST();
+   Jac_SP( Y, FIX, RCONST, Jcb );
+   TIME = Told;
+     
+   Njac++;
+
+} /* JacTemplate   */                                    
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/rosenbrock.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/rosenbrock.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/rosenbrock.def	(revision 2696)
@@ -0,0 +1,23 @@
+ 
+#FUNCTION AGGREGATE
+#JACOBIAN SPARSE_LU_ROW
+
+#DOUBLE ON 
+#INTFILE rosenbrock
+
+#INLINE F77_GLOBAL
+      INTEGER Autonomous
+      COMMON /INTGDATA/ Autonomous
+      REAL*8 STEPSTART
+      COMMON /GDATA/ STEPSTART
+#ENDINLINE
+
+#INLINE F77_INIT
+        STEPMIN=0.0001
+        STEPMAX=3600.
+        Autonomous = 1 
+        STEPSTART=STEPMIN
+#ENDINLINE
+
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/rosenbrock.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/rosenbrock.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/rosenbrock.f	(revision 2696)
@@ -0,0 +1,1286 @@
+      SUBROUTINE INTEGRATE( TIN, TOUT )
+
+      IMPLICIT NONE	 
+      INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Global.h'
+      INTEGER Nstp, Nacc, Nrej, Nsng, IERR
+      SAVE Nstp, Nacc, Nrej, Nsng
+
+! TIN - Start Time
+      KPP_REAL TIN
+! TOUT - End Time
+      KPP_REAL TOUT
+      INTEGER i
+
+      KPP_REAL  RPAR(20)
+      INTEGER  IPAR(20)
+      EXTERNAL  FunTemplate, JacTemplate
+
+
+      DO i=1,20
+        IPAR(i) = 0
+        RPAR(i) = 0.0d0
+      ENDDO
+      
+      
+      IPAR(1) = 0       ! non-autonomous
+      IPAR(2) = 1       ! vector tolerances
+      RPAR(3) = STEPMIN ! starting step
+      IPAR(4) = 5       ! choice of the method
+
+      CALL Rosenbrock(VAR,TIN,TOUT,
+     &            ATOL,RTOL,
+     &            FunTemplate,JacTemplate,
+     &            RPAR,IPAR,IERR)
+
+	        
+      Nstp = Nstp + IPAR(13)
+      Nacc = Nacc + IPAR(14)
+      Nrej = Nrej + IPAR(15)
+      Nsng = Nsng + IPAR(18)
+      PRINT*,'Step=',Nstp,' Acc=',Nacc,' Rej=',Nrej,
+     &      ' Singular=',Nsng
+
+
+      IF (IERR.LT.0) THEN
+        print *,'Rosenbrock: Unsucessful step at T=',
+     &          TIN,' (IERR=',IERR,')'
+      ENDIF
+      
+      TIN = RPAR(11) ! Exit time
+      STEPMIN = RPAR(12)
+      
+      RETURN
+      END
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE Rosenbrock(Y,Tstart,Tend,
+     &            AbsTol,RelTol,
+     &            ode_Fun,ode_Jac ,
+     &            RPAR,IPAR,IERR)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!      
+!    Solves the system y'=F(t,y) using a Rosenbrock method defined by:
+!
+!     G = 1/(H*gamma(1)) - ode_Jac(t0,Y0)
+!     T_i = t0 + Alpha(i)*H
+!     Y_i = Y0 + \sum_{j=1}^{i-1} A(i,j)*K_j
+!     G * K_i = ode_Fun( T_i, Y_i ) + \sum_{j=1}^S C(i,j)/H * K_j +
+!                  gamma(i)*dF/dT(t0, Y0)
+!     Y1 = Y0 + \sum_{j=1}^S M(j)*K_j 
+!
+!    For details on Rosenbrock methods and their implementation consult:
+!         E. Hairer and G. Wanner
+!         "Solving ODEs II. Stiff and differential-algebraic problems".
+!         Springer series in computational mathematics, Springer-Verlag, 1996.  
+!    The codes contained in the book inspired this implementation.             
+!
+!    (C)  Adrian Sandu, August 2004
+!    Virginia Polytechnic Institute and State University    
+!    Contact: sandu@cs.vt.edu
+!    This implementation is part of KPP - the Kinetic PreProcessor
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!       
+!~~~>      INPUT ARGUMENTS: 
+!       
+!-     Y(NVAR)       = vector of initial conditions (at T=Tstart)
+!-    [Tstart,Tend]  = time range of integration
+!        (if Tstart>Tend the integration is performed backwards in time)  
+!-    RelTol, AbsTol = user precribed accuracy
+!-    SUBROUTINE ode_Fun( T, Y, Ydot ) = ODE function, 
+!                                         returns Ydot = Y' = F(T,Y) 
+!-    SUBROUTINE ode_Fun( T, Y, Ydot ) = Jacobian of the ODE function,
+!                                         returns Jcb = dF/dY 
+!-    IPAR(1:10)    = integer inputs parameters
+!-    RPAR(1:10)    = real inputs parameters
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>     OUTPUT ARGUMENTS:  
+!        
+!-    Y(NVAR)       -> vector of final states (at T->Tend)
+!-    IPAR(11:20)   -> integer output parameters
+!-    RPAR(11:20)   -> real output parameters
+!-    IERR          -> job status upon return
+!          - succes (positive value) or failure (negative value) -
+!                    =  1 : Success
+!                    = -1 : Improper value for maximal no of steps
+!                    = -2 : Selected Rosenbrock method not implemented
+!                    = -3 : Hmin/Hmax/Hstart must be positive
+!                    = -4 : FacMin/FacMax/FacRej must be positive
+!                    = -5 : Improper tolerance values
+!                    = -6 : No of steps exceeds maximum bound
+!                    = -7 : Step size too small
+!                    = -8 : Matrix is repeatedly singular
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+!~~~>     INPUT PARAMETERS:
+!
+!    Note: For input parameters equal to zero the default values of the
+!          corresponding variables are used.
+!
+!    IPAR(1)   = 1: F = F(y)   Independent of T (AUTONOMOUS)
+!              = 0: F = F(t,y) Depends on T (NON-AUTONOMOUS)
+!    IPAR(2)   = 0: AbsTol, RelTol are NVAR-dimensional vectors
+!              = 1:  AbsTol, RelTol are scalars
+!    IPAR(3)  -> maximum number of integration steps
+!              For IPAR(3)=0) the default value of 100000 is used
+!
+!    IPAR(4)  -> selection of a particular Rosenbrock method
+!              = 0 :  default method is Rodas3
+!              = 1 :  method is  Ros2
+!              = 2 :  method is  Ros3 
+!              = 3 :  method is  Ros4 
+!              = 4 :  method is  Rodas3
+!              = 5:   method is  Rodas4
+!
+!    RPAR(1)  -> Hmin, lower bound for the integration step size
+!                It is strongly recommended to keep Hmin = ZERO 
+!    RPAR(2)  -> Hmax, upper bound for the integration step size
+!    RPAR(3)  -> Hstart, starting value for the integration step size
+!                
+!    RPAR(4)  -> FacMin, lower bound on step decrease factor (default=0.2)
+!    RPAR(5)  -> FacMin,upper bound on step increase factor (default=6)
+!    RPAR(6)  -> FacRej, step decrease factor after multiple rejections
+!                        (default=0.1)
+!    RPAR(7)  -> FacSafe, by which the new step is slightly smaller 
+!                  than the predicted value  (default=0.9)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+!~~~>     OUTPUT PARAMETERS:
+!
+!    Note: each call to Rosenbrock adds the corrent no. of fcn calls
+!         to previous value of IPAR(11), and similar for the other params.
+!         Set IPAR(11:20) = 0 before call to avoid this accumulation.
+!
+!    IPAR(11) = No. of function calls
+!    IPAR(12) = No. of jacobian calls
+!    IPAR(13) = No. of steps
+!    IPAR(14) = No. of accepted steps
+!    IPAR(15) = No. of rejected steps (except at the beginning)
+!    IPAR(16) = No. of LU decompositions
+!    IPAR(17) = No. of forward/backward substitutions
+!    IPAR(18) = No. of singular matrix decompositions
+!
+!    RPAR(11)  -> Texit, the time corresponding to the 
+!                        computed Y upon return
+!    RPAR(12)  -> Hexit, last accepted step before exit
+!    For multiple restarts, use Hexit as Hstart in the following run 
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      IMPLICIT NONE
+      INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Sparse.h'
+      
+      KPP_REAL Tstart,Tend
+      KPP_REAL Y(KPP_NVAR),AbsTol(KPP_NVAR),RelTol(KPP_NVAR)
+      INTEGER IPAR(20)
+      KPP_REAL RPAR(20)
+      INTEGER IERR
+!~~~>  The method parameters      
+      INTEGER Smax
+      PARAMETER (Smax = 6)
+      INTEGER  Method, ros_S
+      KPP_REAL ros_M(Smax), ros_E(Smax)
+      KPP_REAL ros_A(Smax*(Smax-1)/2), ros_C(Smax*(Smax-1)/2)
+      KPP_REAL ros_Alpha(Smax), ros_Gamma(Smax), ros_ELO
+      LOGICAL  ros_NewF(Smax)
+      CHARACTER*12 ros_Name
+!~~~>  Local variables     
+      KPP_REAL Roundoff,FacMin,FacMax,FacRej,FacSafe
+      KPP_REAL Hmin, Hmax, Hstart, Hexit
+      KPP_REAL Texit
+      INTEGER i, UplimTol, Max_no_steps
+      LOGICAL Autonomous, VectorTol
+!~~~>   Statistics on the work performed
+      INTEGER Nfun,Njac,Nstp,Nacc,Nrej,Ndec,Nsol,Nsng
+      COMMON /Statistics/ Nfun,Njac,Nstp,Nacc,Nrej,
+     &       Ndec,Nsol,Nsng
+!~~~>   Parameters
+      KPP_REAL ZERO, ONE, DeltaMin 
+      PARAMETER (ZERO = 0.0d0)
+      PARAMETER (ONE  = 1.0d0)
+      PARAMETER (DeltaMin = 1.0d-5)
+!~~~>   Functions
+      EXTERNAL ode_Fun, ode_Jac
+      KPP_REAL WLAMCH, ros_ErrorNorm
+      EXTERNAL WLAMCH, ros_ErrorNorm
+
+!~~~>  Initialize statistics
+      Nfun = IPAR(11)
+      Njac = IPAR(12)
+      Nstp = IPAR(13)
+      Nacc = IPAR(14)
+      Nrej = IPAR(15)
+      Ndec = IPAR(16)
+      Nsol = IPAR(17)
+      Nsng = IPAR(18)
+      
+!~~~>  Autonomous or time dependent ODE. Default is time dependent.
+      Autonomous = .NOT.(IPAR(1).EQ.0)
+
+!~~~>  For Scalar tolerances (IPAR(2).NE.0)  the code uses AbsTol(1) and RelTol(1)
+!      For Vector tolerances (IPAR(2).EQ.0) the code uses AbsTol(1:NVAR) and RelTol(1:NVAR)
+      IF (IPAR(2).EQ.0) THEN
+         VectorTol = .TRUE.
+	 UplimTol  = KPP_NVAR
+      ELSE 
+         VectorTol = .FALSE.
+	 UplimTol  = 1
+      END IF
+      
+!~~~>   The maximum number of steps admitted
+      IF (IPAR(3).EQ.0) THEN
+         Max_no_steps = 100000
+      ELSEIF (Max_no_steps.GT.0) THEN
+         Max_no_steps=IPAR(3)
+      ELSE 
+         WRITE(6,*)'User-selected max no. of steps: IPAR(3)=',IPAR(3)
+         CALL ros_ErrorMsg(-1,Tstart,ZERO,IERR)
+	 RETURN         
+      END IF
+
+!~~~>  The particular Rosenbrock method chosen
+      IF (IPAR(4).EQ.0) THEN
+         Method = 3
+      ELSEIF ( (IPAR(4).GE.1).AND.(IPAR(4).LE.5) ) THEN
+         Method = IPAR(4)
+      ELSE  
+         WRITE (6,*) 'User-selected Rosenbrock method: IPAR(4)=', Method
+         CALL ros_ErrorMsg(-2,Tstart,ZERO,IERR)
+	 RETURN         
+      END IF
+      
+!~~~>  Unit roundoff (1+Roundoff>1)  
+      Roundoff = WLAMCH('E')
+
+!~~~>  Lower bound on the step size: (positive value)
+      IF (RPAR(1).EQ.ZERO) THEN
+         Hmin = ZERO
+      ELSEIF (RPAR(1).GT.ZERO) THEN 
+         Hmin = RPAR(1)
+      ELSE	 
+         WRITE (6,*) 'User-selected Hmin: RPAR(1)=', RPAR(1)
+         CALL ros_ErrorMsg(-3,Tstart,ZERO,IERR)
+	 RETURN         
+      END IF
+!~~~>  Upper bound on the step size: (positive value)
+      IF (RPAR(2).EQ.ZERO) THEN
+         Hmax = ABS(Tend-Tstart)
+      ELSEIF (RPAR(2).GT.ZERO) THEN
+         Hmax = MIN(ABS(RPAR(2)),ABS(Tend-Tstart))
+      ELSE	 
+         WRITE (6,*) 'User-selected Hmax: RPAR(2)=', RPAR(2)
+         CALL ros_ErrorMsg(-3,Tstart,ZERO,IERR)
+	 RETURN         
+      END IF
+!~~~>  Starting step size: (positive value)
+      IF (RPAR(3).EQ.ZERO) THEN
+         Hstart = MAX(Hmin,DeltaMin)
+      ELSEIF (RPAR(3).GT.ZERO) THEN
+         Hstart = MIN(ABS(RPAR(3)),ABS(Tend-Tstart))
+      ELSE	 
+         WRITE (6,*) 'User-selected Hstart: RPAR(3)=', RPAR(3)
+         CALL ros_ErrorMsg(-3,Tstart,ZERO,IERR)
+	 RETURN         
+      END IF
+!~~~>  Step size can be changed s.t.  FacMin < Hnew/Hexit < FacMax 
+      IF (RPAR(4).EQ.ZERO) THEN
+         FacMin = 0.2d0
+      ELSEIF (RPAR(4).GT.ZERO) THEN
+         FacMin = RPAR(4)
+      ELSE	 
+         WRITE (6,*) 'User-selected FacMin: RPAR(4)=', RPAR(4)
+         CALL ros_ErrorMsg(-4,Tstart,ZERO,IERR)
+	 RETURN         
+      END IF
+      IF (RPAR(5).EQ.ZERO) THEN
+         FacMax = 6.0d0
+      ELSEIF (RPAR(5).GT.ZERO) THEN
+         FacMax = RPAR(5)
+      ELSE	 
+         WRITE (6,*) 'User-selected FacMax: RPAR(5)=', RPAR(5)
+         CALL ros_ErrorMsg(-4,Tstart,ZERO,IERR)
+	 RETURN         
+      END IF
+!~~~>   FacRej: Factor to decrease step after 2 succesive rejections
+      IF (RPAR(6).EQ.ZERO) THEN
+         FacRej = 0.1d0
+      ELSEIF (RPAR(6).GT.ZERO) THEN
+         FacRej = RPAR(6)
+      ELSE	 
+         WRITE (6,*) 'User-selected FacRej: RPAR(6)=', RPAR(6)
+         CALL ros_ErrorMsg(-4,Tstart,ZERO,IERR)
+	 RETURN         
+      END IF
+!~~~>   FacSafe: Safety Factor in the computation of new step size
+      IF (RPAR(7).EQ.ZERO) THEN
+         FacSafe = 0.9d0
+      ELSEIF (RPAR(7).GT.ZERO) THEN
+         FacSafe = RPAR(7)
+      ELSE	 
+         WRITE (6,*) 'User-selected FacSafe: RPAR(7)=', RPAR(7)
+         CALL ros_ErrorMsg(-4,Tstart,ZERO,IERR)
+	 RETURN         
+      END IF
+!~~~>  Check if tolerances are reasonable
+       DO i=1,UplimTol
+         IF ( (AbsTol(i).LE.ZERO) .OR. (RelTol(i).LE.10.d0*Roundoff)
+     &          .OR. (RelTol(i).GE.1.0d0) ) THEN
+            WRITE (6,*) ' AbsTol(',i,') = ',AbsTol(i)
+            WRITE (6,*) ' RelTol(',i,') = ',RelTol(i)
+            CALL ros_ErrorMsg(-5,Tstart,ZERO,IERR)
+	    RETURN
+         END IF
+       END DO
+     
+ 
+!~~~>   Initialize the particular Rosenbrock method
+
+      IF (Method .EQ. 1) THEN
+         CALL Ros2(ros_S, ros_A, ros_C, ros_M, ros_E, 
+     &             ros_Alpha, ros_Gamma, ros_NewF, ros_ELO, ros_Name)
+      ELSEIF (Method .EQ. 2) THEN
+         CALL Ros3(ros_S, ros_A, ros_C, ros_M, ros_E, 
+     &             ros_Alpha, ros_Gamma, ros_NewF, ros_ELO, ros_Name)
+      ELSEIF (Method .EQ. 3) THEN
+         CALL Ros4(ros_S, ros_A, ros_C, ros_M, ros_E, 
+     &             ros_Alpha, ros_Gamma, ros_NewF, ros_ELO, ros_Name)
+      ELSEIF (Method .EQ. 4) THEN
+         CALL Rodas3(ros_S, ros_A, ros_C, ros_M, ros_E, 
+     &             ros_Alpha, ros_Gamma, ros_NewF, ros_ELO, ros_Name)
+      ELSEIF (Method .EQ. 5) THEN
+         CALL Rodas4(ros_S, ros_A, ros_C, ros_M, ros_E, 
+     &             ros_Alpha, ros_Gamma, ros_NewF, ros_ELO, ros_Name)
+      ELSE
+         WRITE (6,*) 'Unknown Rosenbrock method: IPAR(4)=', Method
+         CALL ros_ErrorMsg(-2,Tstart,ZERO,IERR) 
+	 RETURN        
+      END IF
+
+!~~~>  CALL Rosenbrock method   
+      CALL RosenbrockIntegrator(Y,Tstart,Tend,Texit,
+     &      AbsTol,RelTol,
+     &      ode_Fun,ode_Jac ,
+!  Rosenbrock method coefficients     
+     &      ros_S, ros_M, ros_E, ros_A, ros_C, 
+     &      ros_Alpha, ros_Gamma, ros_ELO, ros_NewF,
+!  Integration parameters
+     &      Autonomous, VectorTol, Max_no_steps,
+     &      Roundoff, Hmin, Hmax, Hstart, Hexit,
+     &      FacMin, FacMax, FacRej, FacSafe,  
+!  Error indicator
+     &      IERR)
+
+
+!~~~>  Collect run statistics
+      IPAR(11) = Nfun
+      IPAR(12) = Njac
+      IPAR(13) = Nstp
+      IPAR(14) = Nacc
+      IPAR(15) = Nrej
+      IPAR(16) = Ndec
+      IPAR(17) = Nsol
+      IPAR(18) = Nsng
+!~~~> Last T and H
+      RPAR(11) = Texit
+      RPAR(12) = Hexit       
+      
+      RETURN
+      END  !  SUBROUTINE Rosenbrock
+
+      
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE RosenbrockIntegrator(Y,Tstart,Tend,T,
+     &      AbsTol,RelTol,
+     &      ode_Fun,ode_Jac ,
+!~~~> Rosenbrock method coefficients     
+     &      ros_S, ros_M, ros_E, ros_A, ros_C, 
+     &      ros_Alpha, ros_Gamma, ros_ELO, ros_NewF,
+!~~~> Integration parameters
+     &      Autonomous, VectorTol, Max_no_steps,
+     &      Roundoff, Hmin, Hmax, Hstart, Hexit,
+     &      FacMin, FacMax, FacRej, FacSafe,  
+!~~~> Error indicator
+     &      IERR)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!   Template for the implementation of a generic Rosenbrock method 
+!            defined by ros_S (no of stages)  
+!            and its coefficients ros_{A,C,M,E,Alpha,Gamma}
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      IMPLICIT NONE
+      INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Sparse.h'
+      
+!~~~> Input: the initial condition at Tstart; Output: the solution at T      
+      KPP_REAL Y(KPP_NVAR)
+!~~~> Input: integration interval   
+      KPP_REAL Tstart,Tend         
+!~~~> Output: time at which the solution is returned (T=Tend if success)   
+      KPP_REAL T         
+!~~~> Input: tolerances            
+      KPP_REAL  AbsTol(KPP_NVAR), RelTol(KPP_NVAR)
+!~~~> Input: ode function and its Jacobian            
+      EXTERNAL ode_Fun, ode_Jac
+!~~~> Input: The Rosenbrock method parameters      
+      INTEGER  ros_S
+      KPP_REAL ros_M(ros_S), ros_E(ros_S) 
+      KPP_REAL ros_A(ros_S*(ros_S-1)/2), ros_C(ros_S*(ros_S-1)/2)
+      KPP_REAL ros_Alpha(ros_S), ros_Gamma(ros_S), ros_ELO
+      LOGICAL ros_NewF(ros_S)
+!~~~> Input: integration parameters      
+      LOGICAL Autonomous, VectorTol
+      KPP_REAL Hstart, Hmin, Hmax
+      INTEGER Max_no_steps
+      KPP_REAL Roundoff, FacMin, FacMax, FacRej, FacSafe 
+!~~~> Output: last accepted step      
+      KPP_REAL Hexit 
+!~~~> Output: Error indicator
+      INTEGER IERR
+! ~~~~ Local variables           
+      KPP_REAL Ynew(KPP_NVAR), Fcn0(KPP_NVAR), Fcn(KPP_NVAR),
+     &       K(KPP_NVAR*ros_S), dFdT(KPP_NVAR),
+     &       Jac0(KPP_LU_NONZERO), Ghimj(KPP_LU_NONZERO)
+      KPP_REAL H, Hnew, HC, HG, Fac, Tau 
+      KPP_REAL Err, Yerr(KPP_NVAR)
+      INTEGER Pivot(KPP_NVAR), Direction, ioffset, j, istage
+      LOGICAL RejectLastH, RejectMoreH, Singular
+!~~~>  Local parameters
+      KPP_REAL ZERO, ONE, DeltaMin 
+      PARAMETER (ZERO = 0.0d0)
+      PARAMETER (ONE  = 1.0d0)
+      PARAMETER (DeltaMin = 1.0d-5)
+!~~~>  Locally called functions
+      KPP_REAL WLAMCH, ros_ErrorNorm
+      EXTERNAL WLAMCH, ros_ErrorNorm
+!~~~>  Statistics on the work performed
+      INTEGER Nfun,Njac,Nstp,Nacc,Nrej,Ndec,Nsol,Nsng
+      COMMON /Statistics/ Nfun,Njac,Nstp,Nacc,Nrej,
+     &       Ndec,Nsol,Nsng
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      
+!~~~>  INITIAL PREPARATIONS
+      T = Tstart
+      Hexit = 0.0d0
+      H = MIN(Hstart,Hmax) 
+      IF (ABS(H).LE.10.d0*Roundoff) THEN
+           H = DeltaMin
+      END IF	   
+      
+      IF (Tend .GE. Tstart) THEN
+        Direction = +1
+      ELSE
+        Direction = -1
+      END IF		
+
+      RejectLastH=.FALSE.
+      RejectMoreH=.FALSE.
+   
+!~~~> Time loop begins below 
+
+      DO WHILE ( (Direction.GT.0).AND.((T-Tend)+Roundoff.LE.ZERO)
+     &     .OR. (Direction.LT.0).AND.((Tend-T)+Roundoff.LE.ZERO) ) 
+         
+      IF ( Nstp.GT.Max_no_steps ) THEN  ! Too many steps
+	CALL ros_ErrorMsg(-6,T,H,IERR)
+	RETURN
+      END IF
+      IF ( ((T+0.1d0*H).EQ.T).OR.(H.LE.Roundoff) ) THEN  ! Step size too small
+	CALL ros_ErrorMsg(-7,T,H,IERR)
+	RETURN
+      END IF
+      
+!~~~>  Limit H if necessary to avoid going beyond Tend   
+      Hexit = H
+      H = MIN(H,ABS(Tend-T))
+
+!~~~>   Compute the function at current time
+      CALL ode_Fun(T,Y,Fcn0)
+
+!~~~>  Compute the function derivative with respect to T
+      IF (.NOT.Autonomous) THEN
+         CALL ros_FunTimeDerivative ( T, Roundoff, Y, 
+     &                       Fcn0, ode_Fun, dFdT )
+      END IF
+  
+!~~~>   Compute the Jacobian at current time
+      CALL ode_Jac(T,Y,Jac0)
+ 
+!~~~>  Repeat step calculation until current step accepted
+      DO WHILE (.TRUE.) ! WHILE STEP NOT ACCEPTED
+
+      
+      CALL ros_PrepareMatrix(H,Direction,ros_Gamma(1),
+     &              Jac0,Ghimj,Pivot,Singular)
+      IF (Singular) THEN ! More than 5 consecutive failed decompositions
+	 CALL ros_ErrorMsg(-8,T,H,IERR)
+	 RETURN
+      END IF
+
+!~~~>   Compute the stages
+      DO istage = 1, ros_S
+         
+	 ! Current istage offset. Current istage vector is K(ioffset+1:ioffset+KPP_NVAR)
+	 ioffset = KPP_NVAR*(istage-1)
+	 
+	 ! For the 1st istage the function has been computed previously
+	 IF ( istage.EQ.1 ) THEN
+	   CALL WCOPY(KPP_NVAR,Fcn0,1,Fcn,1)
+	 ! istage>1 and a new function evaluation is needed at the current istage
+	 ELSEIF ( ros_NewF(istage) ) THEN
+	   CALL WCOPY(KPP_NVAR,Y,1,Ynew,1)
+	   DO j = 1, istage-1
+	     CALL WAXPY(KPP_NVAR,ros_A((istage-1)*(istage-2)/2+j),
+     &                   K(KPP_NVAR*(j-1)+1),1,Ynew,1) 
+	   END DO
+	   Tau = T + ros_Alpha(istage)*Direction*H
+           CALL ode_Fun(Tau,Ynew,Fcn)
+	 END IF ! if istage.EQ.1 elseif ros_NewF(istage)
+	 CALL WCOPY(KPP_NVAR,Fcn,1,K(ioffset+1),1)
+	 DO j = 1, istage-1
+	   HC = ros_C((istage-1)*(istage-2)/2+j)/(Direction*H)
+	   CALL WAXPY(KPP_NVAR,HC,K(KPP_NVAR*(j-1)+1),1,K(ioffset+1),1)
+	 END DO
+         IF ((.NOT. Autonomous).AND.(ros_Gamma(istage).NE.ZERO)) THEN
+           HG = Direction*H*ros_Gamma(istage)
+	   CALL WAXPY(KPP_NVAR,HG,dFdT,1,K(ioffset+1),1)
+         END IF
+         CALL SolveTemplate(Ghimj, Pivot, K(ioffset+1))
+	 
+      END DO  ! istage	    
+	    
+
+!~~~>  Compute the new solution 
+      CALL WCOPY(KPP_NVAR,Y,1,Ynew,1)
+      DO j=1,ros_S
+	 CALL WAXPY(KPP_NVAR,ros_M(j),K(KPP_NVAR*(j-1)+1),1,Ynew,1)
+      END DO
+
+!~~~>  Compute the error estimation 
+      CALL WSCAL(KPP_NVAR,ZERO,Yerr,1)
+      DO j=1,ros_S        
+	CALL WAXPY(KPP_NVAR,ros_E(j),K(KPP_NVAR*(j-1)+1),1,Yerr,1)
+      END DO 
+      Err = ros_ErrorNorm ( Y, Ynew, Yerr, AbsTol, RelTol, VectorTol )
+
+!~~~> New step size is bounded by FacMin <= Hnew/H <= FacMax
+      Fac  = MIN(FacMax,MAX(FacMin,FacSafe/Err**(ONE/ros_ELO)))
+      Hnew = H*Fac  
+
+!~~~>  Check the error magnitude and adjust step size
+      Nstp = Nstp+1
+      IF ( (Err.LE.ONE).OR.(H.LE.Hmin) ) THEN  !~~~> Accept step
+         Nacc = Nacc+1
+	 CALL WCOPY(KPP_NVAR,Ynew,1,Y,1)
+         T = T + Direction*H
+	 Hnew = MAX(Hmin,MIN(Hnew,Hmax))
+         IF (RejectLastH) THEN  ! No step size increase after a rejected step
+	    Hnew = MIN(Hnew,H) 
+	 END IF   
+         RejectLastH = .FALSE.  
+         RejectMoreH = .FALSE.
+         H = Hnew
+	 GOTO 101  ! EXIT THE LOOP: WHILE STEP NOT ACCEPTED
+      ELSE                 !~~~> Reject step
+         IF (RejectMoreH) THEN
+	    Hnew=H*FacRej
+	 END IF   
+         RejectMoreH = RejectLastH
+         RejectLastH = .TRUE.
+         H = Hnew
+         IF (Nacc.GE.1) THEN
+	    Nrej = Nrej+1
+	 END IF    
+      END IF ! Err <= 1
+
+      END DO ! LOOP: WHILE STEP NOT ACCEPTED
+
+101   CONTINUE
+
+      END DO ! Time loop    
+      
+!~~~> Succesful exit
+      IERR = 1  !~~~> The integration was successful
+
+      RETURN
+      END  !  SUBROUTINE RosenbrockIntegrator
+ 
+      
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      KPP_REAL FUNCTION ros_ErrorNorm ( Y, Ynew, Yerr, 
+     &                      AbsTol, RelTol, VectorTol )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> Computes the "scaled norm" of the error vector Yerr
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE	 
+      INCLUDE 'KPP_ROOT_Parameters.h'
+
+! Input arguments   
+      KPP_REAL Y(KPP_NVAR), Ynew(KPP_NVAR), Yerr(KPP_NVAR)
+      KPP_REAL AbsTol(KPP_NVAR), RelTol(KPP_NVAR)   
+      LOGICAL  VectorTol
+! Local variables     
+      KPP_REAL Err, Scale, Ymax, ZERO    
+      INTEGER i
+      PARAMETER (ZERO = 0.0d0)
+      
+      Err = ZERO
+      DO i=1,KPP_NVAR
+	Ymax = MAX(ABS(Y(i)),ABS(Ynew(i)))
+        IF (VectorTol) THEN
+          Scale = AbsTol(i)+RelTol(i)*Ymax
+        ELSE
+          Scale = AbsTol(1)+RelTol(1)*Ymax
+        END IF
+        Err = Err+(Yerr(i)/Scale)**2
+      END DO
+      Err  = SQRT(Err/KPP_NVAR)
+
+      ros_ErrorNorm = Err
+      
+      RETURN
+      END ! FUNCTION ros_ErrorNorm
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE ros_FunTimeDerivative ( T, Roundoff, Y, 
+     &                       Fcn0, ode_Fun, dFdT )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> The time partial derivative of the function by finite differences
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE	 
+      INCLUDE 'KPP_ROOT_Parameters.h'
+
+!~~~> Input arguments   
+      KPP_REAL T, Roundoff, Y(KPP_NVAR), Fcn0(KPP_NVAR) 
+      EXTERNAL ode_Fun  
+!~~~> Output arguments      
+      KPP_REAL dFdT(KPP_NVAR)   
+!~~~> Global variables     
+      INTEGER Nfun,Njac,Nstp,Nacc,Nrej,Ndec,Nsol,Nsng
+      COMMON /Statistics/ Nfun,Njac,Nstp,Nacc,Nrej,
+     &       Ndec,Nsol,Nsng     
+!~~~> Local variables     
+      KPP_REAL Delta, DeltaMin, ONE     
+      PARAMETER ( DeltaMin = 1.0d-6 )   
+      PARAMETER ( ONE = 1.0d0 )
+      
+      Delta = SQRT(Roundoff)*MAX(DeltaMin,ABS(T))
+      CALL ode_Fun(T+Delta,Y,dFdT)
+      CALL WAXPY(KPP_NVAR,(-ONE),Fcn0,1,dFdT,1)
+      CALL WSCAL(KPP_NVAR,(ONE/Delta),dFdT,1)
+
+      RETURN
+      END ! SUBROUTINE ros_FunTimeDerivative
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
+      SUBROUTINE ros_PrepareMatrix ( H, Direction, gam, 
+     &                    Jac0, Ghimj, Pivot, Singular )
+! --- --- --- --- --- --- --- --- --- --- --- --- ---
+!  Prepares the LHS matrix for stage calculations
+!  1.  Construct Ghimj = 1/(H*ham) - Jac0
+!         "(Gamma H) Inverse Minus Jacobian"
+!  2.  Repeat LU decomposition of Ghimj until successful.
+!          -half the step size if LU decomposition fails and retry
+!          -exit after 5 consecutive fails
+! --- --- --- --- --- --- --- --- --- --- --- --- ---
+      IMPLICIT NONE	 
+      INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Sparse.h'
+      
+!~~~> Input arguments      
+      KPP_REAL gam, Jac0(KPP_LU_NONZERO)
+      INTEGER  Direction
+!~~~> Output arguments      
+      KPP_REAL Ghimj(KPP_LU_NONZERO)
+      LOGICAL  Singular
+      INTEGER  Pivot(KPP_NVAR)
+!~~~> Inout arguments      
+      KPP_REAL H      ! step size is decreased when LU fails
+!~~~> Global variables     
+      INTEGER Nfun,Njac,Nstp,Nacc,Nrej,Ndec,Nsol,Nsng
+      COMMON /Statistics/ Nfun,Njac,Nstp,Nacc,Nrej,
+     &       Ndec,Nsol,Nsng     
+!~~~> Local variables     
+      INTEGER  i, ising, Nconsecutive
+      KPP_REAL  ghinv, ONE, HALF
+      PARAMETER ( ONE  = 1.0d0 )
+      PARAMETER ( HALF = 0.5d0 )
+      
+      Nconsecutive = 0
+      Singular = .TRUE.
+      
+      DO WHILE (Singular)
+      
+!~~~>    Construct Ghimj = 1/(H*ham) - Jac0
+        CALL WCOPY(KPP_LU_NONZERO,Jac0,1,Ghimj,1)
+        CALL WSCAL(KPP_LU_NONZERO,(-ONE),Ghimj,1)
+        ghinv = ONE/(Direction*H*gam)
+        DO i=1,KPP_NVAR
+          Ghimj(LU_DIAG(i)) = Ghimj(LU_DIAG(i))+ghinv
+        END DO
+!~~~>    Compute LU decomposition 
+        CALL DecompTemplate( Ghimj, Pivot, ising )
+        IF (ising .EQ. 0) THEN
+!~~~>    If successful done 
+	  Singular = .FALSE. 
+	ELSE ! ising .ne. 0
+!~~~>    If unsuccessful half the step size; if 5 consecutive fails then return
+          Nsng = Nsng+1
+          Nconsecutive = Nconsecutive+1
+	  Singular = .TRUE. 
+	  PRINT*,'Warning: LU Decomposition returned ising = ',ising
+          IF (Nconsecutive.LE.5) THEN ! Less than 5 consecutive failed decompositions
+            H = H*HALF
+	  ELSE  ! More than 5 consecutive failed decompositions
+ 	    RETURN
+          END IF  ! Nconsecutive
+        END IF	! ising 
+	 
+      END DO ! WHILE Singular
+
+      RETURN
+      END ! SUBROUTINE ros_PrepareMatrix
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
+      SUBROUTINE ros_ErrorMsg(Code,T,H,IERR)
+      KPP_REAL T, H
+      INTEGER IERR, Code
+      
+      IERR = Code
+      WRITE(6,*) 
+     &   'Forced exit from Rosenbrock due to the following error:' 
+     
+      IF    (Code .EQ. -1) THEN   
+         WRITE(6,*) '--> Improper value for maximal no of steps'
+      ELSEIF (Code .EQ. -2) THEN   
+         WRITE(6,*) '--> Selected Rosenbrock method not implemented'
+      ELSEIF (Code .EQ. -3) THEN   
+         WRITE(6,*) '--> Hmin/Hmax/Hstart must be positive'
+      ELSEIF (Code .EQ. -4) THEN   
+         WRITE(6,*) '--> FacMin/FacMax/FacRej must be positive'
+      ELSEIF (Code .EQ. -5) THEN
+         WRITE(6,*) '--> Improper tolerance values'
+      ELSEIF (Code .EQ. -6) THEN
+         WRITE(6,*) '--> No of steps exceeds maximum bound'
+      ELSEIF (Code .EQ. -7) THEN
+         WRITE(6,*) '--> Step size too small: T + 10*H = T',
+     &                ' or H < Roundoff'
+      ELSEIF (Code .EQ. -8) THEN   
+         WRITE(6,*) '--> Matrix is repeatedly singular'
+      ELSE
+         WRITE(6,102) 'Unknown Error code: ',Code
+      END IF
+      
+  102 FORMAT('       ',A,I4)    
+      WRITE(6,103) T, H
+      
+  103 FORMAT('        T=',E15.7,' and H=',E15.7)    
+     
+      RETURN
+      END
+      
+      
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
+      SUBROUTINE Ros2 (ros_S,ros_A,ros_C,ros_M,ros_E,ros_Alpha,
+     &                ros_Gamma,ros_NewF,ros_ELO,ros_Name)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
+! --- AN L-STABLE METHOD, 2 stages, order 2
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
+      IMPLICIT NONE
+      INTEGER S
+      PARAMETER (S=2)
+      INTEGER  ros_S
+      KPP_REAL ros_M(S), ros_E(S), ros_A(S*(S-1)/2), ros_C(S*(S-1)/2)
+      KPP_REAL ros_Alpha(S), ros_Gamma(S), ros_ELO
+      LOGICAL  ros_NewF(S)
+      CHARACTER*12 ros_Name
+      DOUBLE PRECISION g
+      
+       g = 1.0d0 + 1.0d0/SQRT(2.0d0)
+      
+!~~~> Name of the method
+       ros_Name = 'ROS-2'      
+!~~~> Number of stages
+       ros_S = 2
+      
+!~~~> The coefficient matrices A and C are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+!   The general mapping formula is:
+!             A(i,j) = ros_A( (i-1)*(i-2)/2 + j )       
+!             C(i,j) = ros_C( (i-1)*(i-2)/2 + j )  
+      
+       ros_A(1) = (1.d0)/g
+       ros_C(1) = (-2.d0)/g
+!~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+       ros_NewF(1) = .TRUE.
+       ros_NewF(2) = .TRUE.
+!~~~> M_i = Coefficients for new step solution
+       ros_M(1)= (3.d0)/(2.d0*g)
+       ros_M(2)= (1.d0)/(2.d0*g)
+! E_i = Coefficients for error estimator       
+       ros_E(1) = 1.d0/(2.d0*g)
+       ros_E(2) = 1.d0/(2.d0*g)
+!~~~> ros_ELO = estimator of local order - the minimum between the
+!       main and the embedded scheme orders plus one
+       ros_ELO = 2.0d0       
+!~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+       ros_Alpha(1) = 0.0d0
+       ros_Alpha(2) = 1.0d0 
+!~~~> Gamma_i = \sum_j  gamma_{i,j}       
+       ros_Gamma(1) = g
+       ros_Gamma(2) =-g
+      
+      RETURN
+      END ! SUBROUTINE Ros2
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
+      SUBROUTINE Ros3 (ros_S,ros_A,ros_C,ros_M,ros_E,ros_Alpha,
+     &               ros_Gamma,ros_NewF,ros_ELO,ros_Name)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
+! --- AN L-STABLE METHOD, 3 stages, order 3, 2 function evaluations
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
+      IMPLICIT NONE
+      INTEGER S
+      PARAMETER (S=3)
+      INTEGER  ros_S
+      KPP_REAL ros_M(S), ros_E(S), ros_A(S*(S-1)/2), ros_C(S*(S-1)/2)
+      KPP_REAL ros_Alpha(S), ros_Gamma(S), ros_ELO
+      LOGICAL  ros_NewF(S)
+      CHARACTER*12 ros_Name
+      
+!~~~> Name of the method
+      ros_Name = 'ROS-3'      
+!~~~> Number of stages
+      ros_S = 3
+      
+!~~~> The coefficient matrices A and C are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+!   The general mapping formula is:
+!             A(i,j) = ros_A( (i-1)*(i-2)/2 + j )       
+!             C(i,j) = ros_C( (i-1)*(i-2)/2 + j )  
+     
+      ros_A(1)= 1.d0
+      ros_A(2)= 1.d0
+      ros_A(3)= 0.d0
+
+      ros_C(1) = -0.10156171083877702091975600115545d+01
+      ros_C(2) =  0.40759956452537699824805835358067d+01
+      ros_C(3) =  0.92076794298330791242156818474003d+01
+!~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+      ros_NewF(1) = .TRUE.
+      ros_NewF(2) = .TRUE.
+      ros_NewF(3) = .FALSE.
+!~~~> M_i = Coefficients for new step solution
+      ros_M(1) =  0.1d+01
+      ros_M(2) =  0.61697947043828245592553615689730d+01
+      ros_M(3) = -0.42772256543218573326238373806514d+00
+! E_i = Coefficients for error estimator       
+      ros_E(1) =  0.5d+00
+      ros_E(2) = -0.29079558716805469821718236208017d+01
+      ros_E(3) =  0.22354069897811569627360909276199d+00
+!~~~> ros_ELO = estimator of local order - the minimum between the
+!       main and the embedded scheme orders plus 1
+      ros_ELO = 3.0d0       
+!~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+      ros_Alpha(1)= 0.0d+00
+      ros_Alpha(2)= 0.43586652150845899941601945119356d+00
+      ros_Alpha(3)= 0.43586652150845899941601945119356d+00
+!~~~> Gamma_i = \sum_j  gamma_{i,j}       
+      ros_Gamma(1)= 0.43586652150845899941601945119356d+00
+      ros_Gamma(2)= 0.24291996454816804366592249683314d+00
+      ros_Gamma(3)= 0.21851380027664058511513169485832d+01
+      RETURN
+      END ! SUBROUTINE Ros3
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+      SUBROUTINE Ros4 (ros_S,ros_A,ros_C,ros_M,ros_E,ros_Alpha,
+     &               ros_Gamma,ros_NewF,ros_ELO,ros_Name)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+!     L-STABLE ROSENBROCK METHOD OF ORDER 4, WITH 4 STAGES
+!     L-STABLE EMBEDDED ROSENBROCK METHOD OF ORDER 3 
+!
+!         E. HAIRER AND G. WANNER, SOLVING ORDINARY DIFFERENTIAL
+!         EQUATIONS II. STIFF AND DIFFERENTIAL-ALGEBRAIC PROBLEMS.
+!         SPRINGER SERIES IN COMPUTATIONAL MATHEMATICS,
+!         SPRINGER-VERLAG (1990)               
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+
+      IMPLICIT NONE
+      INTEGER S
+      PARAMETER (S=4)
+      INTEGER  ros_S
+      KPP_REAL ros_M(S), ros_E(S), ros_A(S*(S-1)/2), ros_C(S*(S-1)/2)
+      KPP_REAL ros_Alpha(S), ros_Gamma(S), ros_ELO
+      LOGICAL  ros_NewF(S)
+      CHARACTER*12 ros_Name
+      
+!~~~> Name of the method
+      ros_Name = 'ROS-4'      
+!~~~> Number of stages
+      ros_S = 4
+      
+!~~~> The coefficient matrices A and C are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+!   The general mapping formula is:
+!             A(i,j) = ros_A( (i-1)*(i-2)/2 + j )       
+!             C(i,j) = ros_C( (i-1)*(i-2)/2 + j )  
+     
+      ros_A(1) = 0.2000000000000000d+01
+      ros_A(2) = 0.1867943637803922d+01
+      ros_A(3) = 0.2344449711399156d+00
+      ros_A(4) = ros_A(2)
+      ros_A(5) = ros_A(3)
+      ros_A(6) = 0.0D0
+
+      ros_C(1) =-0.7137615036412310d+01
+      ros_C(2) = 0.2580708087951457d+01
+      ros_C(3) = 0.6515950076447975d+00
+      ros_C(4) =-0.2137148994382534d+01
+      ros_C(5) =-0.3214669691237626d+00
+      ros_C(6) =-0.6949742501781779d+00
+!~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+      ros_NewF(1)  = .TRUE.
+      ros_NewF(2)  = .TRUE.
+      ros_NewF(3)  = .TRUE.
+      ros_NewF(4)  = .FALSE.
+!~~~> M_i = Coefficients for new step solution
+      ros_M(1) = 0.2255570073418735d+01
+      ros_M(2) = 0.2870493262186792d+00
+      ros_M(3) = 0.4353179431840180d+00
+      ros_M(4) = 0.1093502252409163d+01
+!~~~> E_i  = Coefficients for error estimator       
+      ros_E(1) =-0.2815431932141155d+00
+      ros_E(2) =-0.7276199124938920d-01
+      ros_E(3) =-0.1082196201495311d+00
+      ros_E(4) =-0.1093502252409163d+01
+!~~~> ros_ELO  = estimator of local order - the minimum between the
+!       main and the embedded scheme orders plus 1
+      ros_ELO  = 4.0d0       
+!~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+      ros_Alpha(1) = 0.D0
+      ros_Alpha(2) = 0.1145640000000000d+01
+      ros_Alpha(3) = 0.6552168638155900d+00
+      ros_Alpha(4) = ros_Alpha(3)
+!~~~> Gamma_i = \sum_j  gamma_{i,j}       
+      ros_Gamma(1) = 0.5728200000000000d+00
+      ros_Gamma(2) =-0.1769193891319233d+01
+      ros_Gamma(3) = 0.7592633437920482d+00
+      ros_Gamma(4) =-0.1049021087100450d+00
+      RETURN
+      END ! SUBROUTINE Ros4
+      
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
+      SUBROUTINE Rodas3 (ros_S,ros_A,ros_C,ros_M,ros_E,ros_Alpha,
+     &                ros_Gamma,ros_NewF,ros_ELO,ros_Name)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
+! --- A STIFFLY-STABLE METHOD, 4 stages, order 3
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
+      IMPLICIT NONE
+      INTEGER S
+      PARAMETER (S=4)
+      INTEGER  ros_S
+      KPP_REAL ros_M(S), ros_E(S), ros_A(S*(S-1)/2), ros_C(S*(S-1)/2)
+      KPP_REAL ros_Alpha(S), ros_Gamma(S), ros_ELO
+      LOGICAL  ros_NewF(S)
+      CHARACTER*12 ros_Name
+      
+!~~~> Name of the method
+      ros_Name = 'RODAS-3'      
+!~~~> Number of stages
+      ros_S = 4
+      
+!~~~> The coefficient matrices A and C are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+!   The general mapping formula is:
+!             A(i,j) = ros_A( (i-1)*(i-2)/2 + j )       
+!             C(i,j) = ros_C( (i-1)*(i-2)/2 + j )  
+ 
+      ros_A(1) = 0.0d+00
+      ros_A(2) = 2.0d+00
+      ros_A(3) = 0.0d+00
+      ros_A(4) = 2.0d+00
+      ros_A(5) = 0.0d+00
+      ros_A(6) = 1.0d+00
+
+      ros_C(1) = 4.0d+00
+      ros_C(2) = 1.0d+00
+      ros_C(3) =-1.0d+00
+      ros_C(4) = 1.0d+00
+      ros_C(5) =-1.0d+00 
+      ros_C(6) =-(8.0d+00/3.0d+00) 
+               
+!~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+      ros_NewF(1)  = .TRUE.
+      ros_NewF(2)  = .FALSE.
+      ros_NewF(3)  = .TRUE.
+      ros_NewF(4)  = .TRUE.
+!~~~> M_i = Coefficients for new step solution
+      ros_M(1) = 2.0d+00
+      ros_M(2) = 0.0d+00
+      ros_M(3) = 1.0d+00
+      ros_M(4) = 1.0d+00
+!~~~> E_i  = Coefficients for error estimator       
+      ros_E(1) = 0.0d+00
+      ros_E(2) = 0.0d+00
+      ros_E(3) = 0.0d+00
+      ros_E(4) = 1.0d+00
+!~~~> ros_ELO  = estimator of local order - the minimum between the
+!       main and the embedded scheme orders plus 1
+      ros_ELO  = 3.0d+00       
+!~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+      ros_Alpha(1) = 0.0d+00
+      ros_Alpha(2) = 0.0d+00
+      ros_Alpha(3) = 1.0d+00
+      ros_Alpha(4) = 1.0d+00
+!~~~> Gamma_i = \sum_j  gamma_{i,j}       
+      ros_Gamma(1) = 0.5d+00
+      ros_Gamma(2) = 1.5d+00
+      ros_Gamma(3) = 0.0d+00
+      ros_Gamma(4) = 0.0d+00
+      RETURN
+      END ! SUBROUTINE Rodas3
+    
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
+      SUBROUTINE Rodas4 (ros_S,ros_A,ros_C,ros_M,ros_E,ros_Alpha,
+     &                 ros_Gamma,ros_NewF,ros_ELO,ros_Name)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+!     STIFFLY-STABLE ROSENBROCK METHOD OF ORDER 4, WITH 6 STAGES
+!
+!         E. HAIRER AND G. WANNER, SOLVING ORDINARY DIFFERENTIAL
+!         EQUATIONS II. STIFF AND DIFFERENTIAL-ALGEBRAIC PROBLEMS.
+!         SPRINGER SERIES IN COMPUTATIONAL MATHEMATICS,
+!         SPRINGER-VERLAG (1996)               
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+
+      IMPLICIT NONE
+      INTEGER S
+      PARAMETER (S=6)
+      INTEGER  ros_S
+      KPP_REAL ros_M(S), ros_E(S), ros_A(S*(S-1)/2), ros_C(S*(S-1)/2)
+      KPP_REAL ros_Alpha(S), ros_Gamma(S), ros_ELO
+      LOGICAL  ros_NewF(S)
+      CHARACTER*12 ros_Name
+
+!~~~> Name of the method
+       ros_Name = 'RODAS-4'      
+!~~~> Number of stages
+       ros_S = 6
+
+!~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+       ros_Alpha(1) = 0.000d0
+       ros_Alpha(2) = 0.386d0
+       ros_Alpha(3) = 0.210d0 
+       ros_Alpha(4) = 0.630d0
+       ros_Alpha(5) = 1.000d0
+       ros_Alpha(6) = 1.000d0
+	
+!~~~> Gamma_i = \sum_j  gamma_{i,j}       
+       ros_Gamma(1) = 0.2500000000000000d+00
+       ros_Gamma(2) =-0.1043000000000000d+00
+       ros_Gamma(3) = 0.1035000000000000d+00
+       ros_Gamma(4) =-0.3620000000000023d-01
+       ros_Gamma(5) = 0.0d0
+       ros_Gamma(6) = 0.0d0
+
+!~~~> The coefficient matrices A and C are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+!   The general mapping formula is:  A(i,j) = ros_A( (i-1)*(i-2)/2 + j )       
+!                                    C(i,j) = ros_C( (i-1)*(i-2)/2 + j )  
+     
+       ros_A(1) = 0.1544000000000000d+01
+       ros_A(2) = 0.9466785280815826d+00
+       ros_A(3) = 0.2557011698983284d+00
+       ros_A(4) = 0.3314825187068521d+01
+       ros_A(5) = 0.2896124015972201d+01
+       ros_A(6) = 0.9986419139977817d+00
+       ros_A(7) = 0.1221224509226641d+01
+       ros_A(8) = 0.6019134481288629d+01
+       ros_A(9) = 0.1253708332932087d+02
+       ros_A(10) =-0.6878860361058950d+00
+       ros_A(11) = ros_A(7)
+       ros_A(12) = ros_A(8)
+       ros_A(13) = ros_A(9)
+       ros_A(14) = ros_A(10)
+       ros_A(15) = 1.0d+00
+
+       ros_C(1) =-0.5668800000000000d+01
+       ros_C(2) =-0.2430093356833875d+01
+       ros_C(3) =-0.2063599157091915d+00
+       ros_C(4) =-0.1073529058151375d+00
+       ros_C(5) =-0.9594562251023355d+01
+       ros_C(6) =-0.2047028614809616d+02
+       ros_C(7) = 0.7496443313967647d+01
+       ros_C(8) =-0.1024680431464352d+02
+       ros_C(9) =-0.3399990352819905d+02
+       ros_C(10) = 0.1170890893206160d+02
+       ros_C(11) = 0.8083246795921522d+01
+       ros_C(12) =-0.7981132988064893d+01
+       ros_C(13) =-0.3152159432874371d+02
+       ros_C(14) = 0.1631930543123136d+02
+       ros_C(15) =-0.6058818238834054d+01
+
+!~~~> M_i = Coefficients for new step solution
+       ros_M(1) = ros_A(7)
+       ros_M(2) = ros_A(8)
+       ros_M(3) = ros_A(9)
+       ros_M(4) = ros_A(10)
+       ros_M(5) = 1.0d+00
+       ros_M(6) = 1.0d+00
+
+!~~~> E_i  = Coefficients for error estimator       
+       ros_E(1) = 0.0d+00
+       ros_E(2) = 0.0d+00
+       ros_E(3) = 0.0d+00
+       ros_E(4) = 0.0d+00
+       ros_E(5) = 0.0d+00
+       ros_E(6) = 1.0d+00
+
+!~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+       ros_NewF(1) = .TRUE.
+       ros_NewF(2) = .TRUE.
+       ros_NewF(3) = .TRUE.
+       ros_NewF(4) = .TRUE.
+       ros_NewF(5) = .TRUE.
+       ros_NewF(6) = .TRUE.
+     
+!~~~> ros_ELO  = estimator of local order - the minimum between the
+!       main and the embedded scheme orders plus 1
+       ros_ELO = 4.0d0
+     
+      RETURN
+      END ! SUBROUTINE Rodas4
+
+      
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
+      SUBROUTINE DecompTemplate( A, Pivot, ising )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
+!  Template for the LU decomposition   
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
+      INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Global.h'
+!~~~> Inout variables     
+      KPP_REAL A(KPP_LU_NONZERO)
+!~~~> Output variables     
+      INTEGER Pivot(KPP_NVAR), ising
+!~~~> Collect statistics      
+      INTEGER Nfun,Njac,Nstp,Nacc,Nrej,Ndec,Nsol,Nsng
+      COMMON /Statistics/ Nfun,Njac,Nstp,Nacc,Nrej,
+     &       Ndec,Nsol,Nsng
+      
+      CALL KppDecomp ( A, ising )
+!~~~> Note: for a full matrix use Lapack:
+!        CALL  DGETRF( KPP_NVAR, KPP_NVAR, A, KPP_NVAR, Pivot, ising ) 
+    
+      Ndec = Ndec + 1
+
+      END ! SUBROUTINE DecompTemplate
+ 
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
+      SUBROUTINE SolveTemplate( A, Pivot, b )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
+!  Template for the forward/backward substitution (using pre-computed LU decomposition)   
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
+      INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Global.h'
+!~~~> Input variables     
+      KPP_REAL A(KPP_LU_NONZERO)
+      INTEGER Pivot(KPP_NVAR)
+!~~~> InOut variables     
+      KPP_REAL b(KPP_NVAR)
+!~~~> Collect statistics      
+      INTEGER Nfun,Njac,Nstp,Nacc,Nrej,Ndec,Nsol,Nsng
+      COMMON /Statistics/ Nfun,Njac,Nstp,Nacc,Nrej,
+     &       Ndec,Nsol,Nsng
+      
+      CALL KppSolve( A, b )
+!~~~> Note: for a full matrix use Lapack:
+!        NRHS = 1
+!        CALL  DGETRS( 'N', KPP_NVAR , NRHS, A, KPP_NVAR, Pivot, b, KPP_NVAR, INFO )
+     
+      Nsol = Nsol+1
+
+      END ! SUBROUTINE SolveTemplate
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
+      SUBROUTINE FunTemplate( T, Y, Ydot )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
+!  Template for the ODE function call.
+!  Updates the rate coefficients (and possibly the fixed species) at each call    
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
+      INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Global.h'
+!~~~> Input variables     
+      KPP_REAL T, Y(KPP_NVAR)
+!~~~> Output variables     
+      KPP_REAL Ydot(KPP_NVAR)
+!~~~> Local variables
+      KPP_REAL Told     
+!~~~> Collect statistics      
+      INTEGER Nfun,Njac,Nstp,Nacc,Nrej,Ndec,Nsol,Nsng
+      COMMON /Statistics/ Nfun,Njac,Nstp,Nacc,Nrej,
+     &       Ndec,Nsol,Nsng
+
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Fun( Y, FIX, RCONST, Ydot )
+      TIME = Told
+     
+      Nfun = Nfun+1
+      
+      RETURN
+      END ! SUBROUTINE FunTemplate
+
+ 
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
+      SUBROUTINE JacTemplate( T, Y, Jcb )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
+!  Template for the ODE Jacobian call.
+!  Updates the rate coefficients (and possibly the fixed species) at each call    
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
+      INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Global.h'
+!~~~> Input variables     
+      KPP_REAL T, Y(KPP_NVAR)
+!~~~> Output variables     
+      KPP_REAL Jcb(KPP_LU_NONZERO)
+!~~~> Local variables
+      KPP_REAL Told     
+!~~~> Collect statistics      
+      INTEGER Nfun,Njac,Nstp,Nacc,Nrej,Ndec,Nsol,Nsng
+      COMMON /Statistics/ Nfun,Njac,Nstp,Nacc,Nrej,
+     &       Ndec,Nsol,Nsng
+
+      Told = TIME
+      TIME = T   
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Jac_SP( Y, FIX, RCONST, Jcb )
+      TIME = Told
+     
+      Njac = Njac+1
+
+      RETURN
+      END !  SUBROUTINE JacTemplate                                                                          
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/rosenbrock.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/rosenbrock.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/rosenbrock.f90	(revision 2696)
@@ -0,0 +1,1328 @@
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
+!  Rosenbrock - Implementation of several Rosenbrock methods:             !
+!               * Ros2                                                    !
+!               * Ros3                                                    !
+!               * Ros4                                                    !
+!               * Rodas3                                                  !
+!               * Rodas4                                                  !
+!  By default the code employs the KPP sparse linear algebra routines     !
+!  Compile with -DFULL_ALGEBRA to use full linear algebra (LAPACK)        !
+!                                                                         !
+!    (C)  Adrian Sandu, August 2004                                       !
+!    Virginia Polytechnic Institute and State University                  !
+!    Contact: sandu@cs.vt.edu                                             !
+!    Revised by Philipp Miehe and Adrian Sandu, May 2006                  !                               !
+!    This implementation is part of KPP - the Kinetic PreProcessor        !
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
+
+MODULE KPP_ROOT_Integrator
+
+  USE KPP_ROOT_Parameters, ONLY: NVAR, NFIX, NSPEC, LU_NONZERO
+  USE KPP_ROOT_Global
+  IMPLICIT NONE
+  PUBLIC
+  SAVE
+  
+!~~~>  Statistics on the work performed by the Rosenbrock method
+  INTEGER, PARAMETER :: Nfun=1, Njac=2, Nstp=3, Nacc=4, &
+                        Nrej=5, Ndec=6, Nsol=7, Nsng=8, &
+                        Ntexit=1, Nhexit=2, Nhnew = 3
+
+CONTAINS
+
+SUBROUTINE INTEGRATE( TIN, TOUT, &
+  ICNTRL_U, RCNTRL_U, ISTATUS_U, RSTATUS_U, IERR_U )
+
+   IMPLICIT NONE
+
+   KPP_REAL, INTENT(IN) :: TIN  ! Start Time
+   KPP_REAL, INTENT(IN) :: TOUT ! End Time
+   ! Optional input parameters and statistics
+   INTEGER,       INTENT(IN),  OPTIONAL :: ICNTRL_U(20)
+   KPP_REAL, INTENT(IN),  OPTIONAL :: RCNTRL_U(20)
+   INTEGER,       INTENT(OUT), OPTIONAL :: ISTATUS_U(20)
+   KPP_REAL, INTENT(OUT), OPTIONAL :: RSTATUS_U(20)
+   INTEGER,       INTENT(OUT), OPTIONAL :: IERR_U
+
+   KPP_REAL :: RCNTRL(20), RSTATUS(20)
+   INTEGER       :: ICNTRL(20), ISTATUS(20), IERR
+
+   INTEGER, SAVE :: Ntotal = 0
+
+   ICNTRL(:)  = 0
+   RCNTRL(:)  = 0.0_dp
+   ISTATUS(:) = 0
+   RSTATUS(:) = 0.0_dp
+
+    !~~~> fine-tune the integrator:
+   ICNTRL(1) = 0	! 0 - non-autonomous, 1 - autonomous
+   ICNTRL(2) = 0	! 0 - vector tolerances, 1 - scalars
+
+   ! If optional parameters are given, and if they are >0, 
+   ! then they overwrite default settings. 
+   IF (PRESENT(ICNTRL_U)) THEN
+     WHERE(ICNTRL_U(:) > 0) ICNTRL(:) = ICNTRL_U(:)
+   END IF
+   IF (PRESENT(RCNTRL_U)) THEN
+     WHERE(RCNTRL_U(:) > 0) RCNTRL(:) = RCNTRL_U(:)
+   END IF
+
+
+   CALL Rosenbrock(NVAR,VAR,TIN,TOUT,   &
+         ATOL,RTOL,                &
+         RCNTRL,ICNTRL,RSTATUS,ISTATUS,IERR)
+
+   !~~~> Debug option: show no of steps
+   ! Ntotal = Ntotal + ISTATUS(Nstp)
+   ! PRINT*,'NSTEPS=',ISTATUS(Nstp),' (',Ntotal,')','  O3=', VAR(ind_O3)
+
+   STEPMIN = RSTATUS(Nhexit)
+   ! if optional parameters are given for output they 
+   ! are updated with the return information
+   IF (PRESENT(ISTATUS_U)) ISTATUS_U(:) = ISTATUS(:)
+   IF (PRESENT(RSTATUS_U)) RSTATUS_U(:) = RSTATUS(:)
+   IF (PRESENT(IERR_U))    IERR_U       = IERR
+
+END SUBROUTINE INTEGRATE
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+SUBROUTINE Rosenbrock(N,Y,Tstart,Tend, &
+           AbsTol,RelTol,              &
+           RCNTRL,ICNTRL,RSTATUS,ISTATUS,IERR)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!    Solves the system y'=F(t,y) using a Rosenbrock method defined by:
+!
+!     G = 1/(H*gamma(1)) - Jac(t0,Y0)
+!     T_i = t0 + Alpha(i)*H
+!     Y_i = Y0 + \sum_{j=1}^{i-1} A(i,j)*K_j
+!     G * K_i = Fun( T_i, Y_i ) + \sum_{j=1}^S C(i,j)/H * K_j +
+!         gamma(i)*dF/dT(t0, Y0)
+!     Y1 = Y0 + \sum_{j=1}^S M(j)*K_j
+!
+!    For details on Rosenbrock methods and their implementation consult:
+!      E. Hairer and G. Wanner
+!      "Solving ODEs II. Stiff and differential-algebraic problems".
+!      Springer series in computational mathematics, Springer-Verlag, 1996.
+!    The codes contained in the book inspired this implementation.
+!
+!    (C)  Adrian Sandu, August 2004
+!    Virginia Polytechnic Institute and State University
+!    Contact: sandu@cs.vt.edu
+!    Revised by Philipp Miehe and Adrian Sandu, May 2006                  
+!    This implementation is part of KPP - the Kinetic PreProcessor
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>   INPUT ARGUMENTS:
+!
+!-     Y(N)    = vector of initial conditions (at T=Tstart)
+!-    [Tstart,Tend]  = time range of integration
+!     (if Tstart>Tend the integration is performed backwards in time)
+!-    RelTol, AbsTol = user precribed accuracy
+!- SUBROUTINE  Fun( T, Y, Ydot ) = ODE function,
+!                       returns Ydot = Y' = F(T,Y)
+!- SUBROUTINE  Jac( T, Y, Jcb ) = Jacobian of the ODE function,
+!                       returns Jcb = dFun/dY
+!-    ICNTRL(1:20)    = integer inputs parameters
+!-    RCNTRL(1:20)    = real inputs parameters
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>     OUTPUT ARGUMENTS:
+!
+!-    Y(N)    -> vector of final states (at T->Tend)
+!-    ISTATUS(1:20)   -> integer output parameters
+!-    RSTATUS(1:20)   -> real output parameters
+!-    IERR            -> job status upon return
+!                        success (positive value) or
+!                        failure (negative value)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>     INPUT PARAMETERS:
+!
+!    Note: For input parameters equal to zero the default values of the
+!       corresponding variables are used.
+!
+!    ICNTRL(1) = 1: F = F(y)   Independent of T (AUTONOMOUS)
+!              = 0: F = F(t,y) Depends on T (NON-AUTONOMOUS)
+!
+!    ICNTRL(2) = 0: AbsTol, RelTol are N-dimensional vectors
+!              = 1: AbsTol, RelTol are scalars
+!
+!    ICNTRL(3)  -> selection of a particular Rosenbrock method
+!        = 0 :    Rodas3 (default)
+!        = 1 :    Ros2
+!        = 2 :    Ros3
+!        = 3 :    Ros4
+!        = 4 :    Rodas3
+!        = 5 :    Rodas4
+!
+!    ICNTRL(4)  -> maximum number of integration steps
+!        For ICNTRL(4)=0) the default value of 100000 is used
+!
+!    RCNTRL(1)  -> Hmin, lower bound for the integration step size
+!          It is strongly recommended to keep Hmin = ZERO
+!    RCNTRL(2)  -> Hmax, upper bound for the integration step size
+!    RCNTRL(3)  -> Hstart, starting value for the integration step size
+!
+!    RCNTRL(4)  -> FacMin, lower bound on step decrease factor (default=0.2)
+!    RCNTRL(5)  -> FacMax, upper bound on step increase factor (default=6)
+!    RCNTRL(6)  -> FacRej, step decrease factor after multiple rejections
+!                          (default=0.1)
+!    RCNTRL(7)  -> FacSafe, by which the new step is slightly smaller
+!         than the predicted value  (default=0.9)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!
+!    OUTPUT ARGUMENTS:
+!    -----------------
+!
+!    T           -> T value for which the solution has been computed
+!                     (after successful return T=Tend).
+!
+!    Y(N)        -> Numerical solution at T
+!
+!    IDID        -> Reports on successfulness upon return:
+!                    = 1 for success
+!                    < 0 for error (value equals error code)
+!
+!    ISTATUS(1)  -> No. of function calls
+!    ISTATUS(2)  -> No. of jacobian calls
+!    ISTATUS(3)  -> No. of steps
+!    ISTATUS(4)  -> No. of accepted steps
+!    ISTATUS(5)  -> No. of rejected steps (except at very beginning)
+!    ISTATUS(6)  -> No. of LU decompositions
+!    ISTATUS(7)  -> No. of forward/backward substitutions
+!    ISTATUS(8)  -> No. of singular matrix decompositions
+!
+!    RSTATUS(1)  -> Texit, the time corresponding to the
+!                     computed Y upon return
+!    RSTATUS(2)  -> Hexit, last accepted step before exit
+!    RSTATUS(3)  -> Hnew, last predicted step (not yet taken)
+!                   For multiple restarts, use Hnew as Hstart 
+!                     in the subsequent run
+!
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  USE KPP_ROOT_Parameters
+  USE KPP_ROOT_LinearAlgebra
+  IMPLICIT NONE
+
+!~~~>  Arguments
+   INTEGER,       INTENT(IN)    :: N
+   KPP_REAL, INTENT(INOUT) :: Y(N)
+   KPP_REAL, INTENT(IN)    :: Tstart,Tend
+   KPP_REAL, INTENT(IN)    :: AbsTol(N),RelTol(N)
+   INTEGER,       INTENT(IN)    :: ICNTRL(20)
+   KPP_REAL, INTENT(IN)    :: RCNTRL(20)
+   INTEGER,       INTENT(INOUT) :: ISTATUS(20)
+   KPP_REAL, INTENT(INOUT) :: RSTATUS(20)
+   INTEGER, INTENT(OUT)   :: IERR
+!~~~>  Parameters of the Rosenbrock method, up to 6 stages
+   INTEGER ::  ros_S, rosMethod
+   INTEGER, PARAMETER :: RS2=1, RS3=2, RS4=3, RD3=4, RD4=5, RG3=6
+   KPP_REAL :: ros_A(15), ros_C(15), ros_M(6), ros_E(6), &
+                    ros_Alpha(6), ros_Gamma(6), ros_ELO
+   LOGICAL :: ros_NewF(6)
+   CHARACTER(LEN=12) :: ros_Name
+!~~~>  Local variables
+   KPP_REAL :: Roundoff, FacMin, FacMax, FacRej, FacSafe
+   KPP_REAL :: Hmin, Hmax, Hstart
+   KPP_REAL :: Texit
+   INTEGER       :: i, UplimTol, Max_no_steps
+   LOGICAL       :: Autonomous, VectorTol
+!~~~>   Parameters
+   KPP_REAL, PARAMETER :: ZERO = 0.0_dp, ONE  = 1.0_dp
+   KPP_REAL, PARAMETER :: DeltaMin = 1.0E-5_dp
+
+!~~~>  Initialize statistics
+   ISTATUS(1:8) = 0
+   RSTATUS(1:3) = ZERO
+
+!~~~>  Autonomous or time dependent ODE. Default is time dependent.
+   Autonomous = .NOT.(ICNTRL(1) == 0)
+
+!~~~>  For Scalar tolerances (ICNTRL(2).NE.0)  the code uses AbsTol(1) and RelTol(1)
+!   For Vector tolerances (ICNTRL(2) == 0) the code uses AbsTol(1:N) and RelTol(1:N)
+   IF (ICNTRL(2) == 0) THEN
+      VectorTol = .TRUE.
+      UplimTol  = N
+   ELSE
+      VectorTol = .FALSE.
+      UplimTol  = 1
+   END IF
+
+!~~~>   Initialize the particular Rosenbrock method selected
+   SELECT CASE (ICNTRL(3))
+     CASE (1)
+       CALL Ros2
+     CASE (2)
+       CALL Ros3
+     CASE (3)
+       CALL Ros4
+     CASE (0,4)
+       CALL Rodas3
+     CASE (5)
+       CALL Rodas4
+     CASE (6)
+       CALL Rang3
+     CASE DEFAULT
+       PRINT * , 'Unknown Rosenbrock method: ICNTRL(3)=',ICNTRL(3) 
+       CALL ros_ErrorMsg(-2,Tstart,ZERO,IERR)
+       RETURN
+   END SELECT
+
+!~~~>   The maximum number of steps admitted
+   IF (ICNTRL(4) == 0) THEN
+      Max_no_steps = 200000
+   ELSEIF (ICNTRL(4) > 0) THEN
+      Max_no_steps=ICNTRL(4)
+   ELSE
+      PRINT * ,'User-selected max no. of steps: ICNTRL(4)=',ICNTRL(4)
+      CALL ros_ErrorMsg(-1,Tstart,ZERO,IERR)
+      RETURN
+   END IF
+
+!~~~>  Unit roundoff (1+Roundoff>1)
+   Roundoff = WLAMCH('E')
+
+!~~~>  Lower bound on the step size: (positive value)
+   IF (RCNTRL(1) == ZERO) THEN
+      Hmin = ZERO
+   ELSEIF (RCNTRL(1) > ZERO) THEN
+      Hmin = RCNTRL(1)
+   ELSE
+      PRINT * , 'User-selected Hmin: RCNTRL(1)=', RCNTRL(1)
+      CALL ros_ErrorMsg(-3,Tstart,ZERO,IERR)
+      RETURN
+   END IF
+!~~~>  Upper bound on the step size: (positive value)
+   IF (RCNTRL(2) == ZERO) THEN
+      Hmax = ABS(Tend-Tstart)
+   ELSEIF (RCNTRL(2) > ZERO) THEN
+      Hmax = MIN(ABS(RCNTRL(2)),ABS(Tend-Tstart))
+   ELSE
+      PRINT * , 'User-selected Hmax: RCNTRL(2)=', RCNTRL(2)
+      CALL ros_ErrorMsg(-3,Tstart,ZERO,IERR)
+      RETURN
+   END IF
+!~~~>  Starting step size: (positive value)
+   IF (RCNTRL(3) == ZERO) THEN
+      Hstart = MAX(Hmin,DeltaMin)
+   ELSEIF (RCNTRL(3) > ZERO) THEN
+      Hstart = MIN(ABS(RCNTRL(3)),ABS(Tend-Tstart))
+   ELSE
+      PRINT * , 'User-selected Hstart: RCNTRL(3)=', RCNTRL(3)
+      CALL ros_ErrorMsg(-3,Tstart,ZERO,IERR)
+      RETURN
+   END IF
+!~~~>  Step size can be changed s.t.  FacMin < Hnew/Hold < FacMax
+   IF (RCNTRL(4) == ZERO) THEN
+      FacMin = 0.2_dp
+   ELSEIF (RCNTRL(4) > ZERO) THEN
+      FacMin = RCNTRL(4)
+   ELSE
+      PRINT * , 'User-selected FacMin: RCNTRL(4)=', RCNTRL(4)
+      CALL ros_ErrorMsg(-4,Tstart,ZERO,IERR)
+      RETURN
+   END IF
+   IF (RCNTRL(5) == ZERO) THEN
+      FacMax = 6.0_dp
+   ELSEIF (RCNTRL(5) > ZERO) THEN
+      FacMax = RCNTRL(5)
+   ELSE
+      PRINT * , 'User-selected FacMax: RCNTRL(5)=', RCNTRL(5)
+      CALL ros_ErrorMsg(-4,Tstart,ZERO,IERR)
+      RETURN
+   END IF
+!~~~>   FacRej: Factor to decrease step after 2 succesive rejections
+   IF (RCNTRL(6) == ZERO) THEN
+      FacRej = 0.1_dp
+   ELSEIF (RCNTRL(6) > ZERO) THEN
+      FacRej = RCNTRL(6)
+   ELSE
+      PRINT * , 'User-selected FacRej: RCNTRL(6)=', RCNTRL(6)
+      CALL ros_ErrorMsg(-4,Tstart,ZERO,IERR)
+      RETURN
+   END IF
+!~~~>   FacSafe: Safety Factor in the computation of new step size
+   IF (RCNTRL(7) == ZERO) THEN
+      FacSafe = 0.9_dp
+   ELSEIF (RCNTRL(7) > ZERO) THEN
+      FacSafe = RCNTRL(7)
+   ELSE
+      PRINT * , 'User-selected FacSafe: RCNTRL(7)=', RCNTRL(7)
+      CALL ros_ErrorMsg(-4,Tstart,ZERO,IERR)
+      RETURN
+   END IF
+!~~~>  Check if tolerances are reasonable
+    DO i=1,UplimTol
+      IF ( (AbsTol(i) <= ZERO) .OR. (RelTol(i) <= 10.0_dp*Roundoff) &
+         .OR. (RelTol(i) >= 1.0_dp) ) THEN
+        PRINT * , ' AbsTol(',i,') = ',AbsTol(i)
+        PRINT * , ' RelTol(',i,') = ',RelTol(i)
+        CALL ros_ErrorMsg(-5,Tstart,ZERO,IERR)
+        RETURN
+      END IF
+    END DO
+
+
+!~~~>  CALL Rosenbrock method
+   CALL ros_Integrator(Y, Tstart, Tend, Texit,   &
+        AbsTol, RelTol,                          &
+!  Integration parameters
+        Autonomous, VectorTol, Max_no_steps,     &
+        Roundoff, Hmin, Hmax, Hstart,            &
+        FacMin, FacMax, FacRej, FacSafe,         &
+!  Error indicator
+        IERR)
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+CONTAINS !  SUBROUTINES internal to Rosenbrock
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+ SUBROUTINE ros_ErrorMsg(Code,T,H,IERR)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+!    Handles all error messages
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+  
+   KPP_REAL, INTENT(IN) :: T, H
+   INTEGER, INTENT(IN)  :: Code
+   INTEGER, INTENT(OUT) :: IERR
+   
+   IERR = Code
+   PRINT * , &
+     'Forced exit from Rosenbrock due to the following error:' 
+     
+   SELECT CASE (Code)
+    CASE (-1)    
+      PRINT * , '--> Improper value for maximal no of steps'
+    CASE (-2)    
+      PRINT * , '--> Selected Rosenbrock method not implemented'
+    CASE (-3)    
+      PRINT * , '--> Hmin/Hmax/Hstart must be positive'
+    CASE (-4)    
+      PRINT * , '--> FacMin/FacMax/FacRej must be positive'
+    CASE (-5) 
+      PRINT * , '--> Improper tolerance values'
+    CASE (-6) 
+      PRINT * , '--> No of steps exceeds maximum bound'
+    CASE (-7) 
+      PRINT * , '--> Step size too small: T + 10*H = T', &
+            ' or H < Roundoff'
+    CASE (-8)    
+      PRINT * , '--> Matrix is repeatedly singular'
+    CASE DEFAULT
+      PRINT *, 'Unknown Error code: ', Code
+   END SELECT
+   
+   PRINT *, "T=", T, "and H=", H
+     
+ END SUBROUTINE ros_ErrorMsg
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE ros_Integrator (Y, Tstart, Tend, T,  &
+        AbsTol, RelTol,                          &
+!~~~> Integration parameters
+        Autonomous, VectorTol, Max_no_steps,     &
+        Roundoff, Hmin, Hmax, Hstart,            &
+        FacMin, FacMax, FacRej, FacSafe,         &
+!~~~> Error indicator
+        IERR )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!   Template for the implementation of a generic Rosenbrock method
+!      defined by ros_S (no of stages)
+!      and its coefficients ros_{A,C,M,E,Alpha,Gamma}
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  IMPLICIT NONE
+
+!~~~> Input: the initial condition at Tstart; Output: the solution at T
+   KPP_REAL, INTENT(INOUT) :: Y(N)
+!~~~> Input: integration interval
+   KPP_REAL, INTENT(IN) :: Tstart,Tend
+!~~~> Output: time at which the solution is returned (T=Tend if success)
+   KPP_REAL, INTENT(OUT) ::  T
+!~~~> Input: tolerances
+   KPP_REAL, INTENT(IN) ::  AbsTol(N), RelTol(N)
+!~~~> Input: integration parameters
+   LOGICAL, INTENT(IN) :: Autonomous, VectorTol
+   KPP_REAL, INTENT(IN) :: Hstart, Hmin, Hmax
+   INTEGER, INTENT(IN) :: Max_no_steps
+   KPP_REAL, INTENT(IN) :: Roundoff, FacMin, FacMax, FacRej, FacSafe
+!~~~> Output: Error indicator
+   INTEGER, INTENT(OUT) :: IERR
+! ~~~~ Local variables
+   KPP_REAL :: Ynew(N), Fcn0(N), Fcn(N)
+   KPP_REAL :: K(N*ros_S), dFdT(N)
+#ifdef FULL_ALGEBRA    
+   KPP_REAL :: Jac0(N,N), Ghimj(N,N)
+#else
+   KPP_REAL :: Jac0(LU_NONZERO), Ghimj(LU_NONZERO)
+#endif
+   KPP_REAL :: H, Hnew, HC, HG, Fac, Tau
+   KPP_REAL :: Err, Yerr(N)
+   INTEGER :: Pivot(N), Direction, ioffset, j, istage
+   LOGICAL :: RejectLastH, RejectMoreH, Singular
+!~~~>  Local parameters
+   KPP_REAL, PARAMETER :: ZERO = 0.0_dp, ONE  = 1.0_dp
+   KPP_REAL, PARAMETER :: DeltaMin = 1.0E-5_dp
+!~~~>  Locally called functions
+!    KPP_REAL WLAMCH
+!    EXTERNAL WLAMCH
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+!~~~>  Initial preparations
+   T = Tstart
+   RSTATUS(Nhexit) = ZERO
+   H = MIN( MAX(ABS(Hmin),ABS(Hstart)) , ABS(Hmax) )
+   IF (ABS(H) <= 10.0_dp*Roundoff) H = DeltaMin
+
+   IF (Tend  >=  Tstart) THEN
+     Direction = +1
+   ELSE
+     Direction = -1
+   END IF
+   H = Direction*H
+
+   RejectLastH=.FALSE.
+   RejectMoreH=.FALSE.
+
+!~~~> Time loop begins below
+
+TimeLoop: DO WHILE ( (Direction > 0).AND.((T-Tend)+Roundoff <= ZERO) &
+       .OR. (Direction < 0).AND.((Tend-T)+Roundoff <= ZERO) )
+
+   IF ( ISTATUS(Nstp) > Max_no_steps ) THEN  ! Too many steps
+      CALL ros_ErrorMsg(-6,T,H,IERR)
+      RETURN
+   END IF
+   IF ( ((T+0.1_dp*H) == T).OR.(H <= Roundoff) ) THEN  ! Step size too small
+      CALL ros_ErrorMsg(-7,T,H,IERR)
+      RETURN
+   END IF
+
+!~~~>  Limit H if necessary to avoid going beyond Tend
+   H = MIN(H,ABS(Tend-T))
+
+!~~~>   Compute the function at current time
+   CALL FunTemplate(T,Y,Fcn0)
+   ISTATUS(Nfun) = ISTATUS(Nfun) + 1
+
+!~~~>  Compute the function derivative with respect to T
+   IF (.NOT.Autonomous) THEN
+      CALL ros_FunTimeDerivative ( T, Roundoff, Y, &
+                Fcn0, dFdT )
+   END IF
+
+!~~~>   Compute the Jacobian at current time
+   CALL JacTemplate(T,Y,Jac0)
+   ISTATUS(Njac) = ISTATUS(Njac) + 1
+
+!~~~>  Repeat step calculation until current step accepted
+UntilAccepted: DO
+
+   CALL ros_PrepareMatrix(H,Direction,ros_Gamma(1), &
+          Jac0,Ghimj,Pivot,Singular)
+   IF (Singular) THEN ! More than 5 consecutive failed decompositions
+       CALL ros_ErrorMsg(-8,T,H,IERR)
+       RETURN
+   END IF
+
+!~~~>   Compute the stages
+Stage: DO istage = 1, ros_S
+
+      ! Current istage offset. Current istage vector is K(ioffset+1:ioffset+N)
+       ioffset = N*(istage-1)
+
+      ! For the 1st istage the function has been computed previously
+       IF ( istage == 1 ) THEN
+         !slim: CALL WCOPY(N,Fcn0,1,Fcn,1)
+	 Fcn(1:N) = Fcn0(1:N)
+      ! istage>1 and a new function evaluation is needed at the current istage
+       ELSEIF ( ros_NewF(istage) ) THEN
+         !slim: CALL WCOPY(N,Y,1,Ynew,1)
+	 Ynew(1:N) = Y(1:N)
+         DO j = 1, istage-1
+           CALL WAXPY(N,ros_A((istage-1)*(istage-2)/2+j), &
+            K(N*(j-1)+1),1,Ynew,1)
+         END DO
+         Tau = T + ros_Alpha(istage)*Direction*H
+         CALL FunTemplate(Tau,Ynew,Fcn)
+         ISTATUS(Nfun) = ISTATUS(Nfun) + 1
+       END IF ! if istage == 1 elseif ros_NewF(istage)
+       !slim: CALL WCOPY(N,Fcn,1,K(ioffset+1),1)
+       K(ioffset+1:ioffset+N) = Fcn(1:N)
+       DO j = 1, istage-1
+         HC = ros_C((istage-1)*(istage-2)/2+j)/(Direction*H)
+         CALL WAXPY(N,HC,K(N*(j-1)+1),1,K(ioffset+1),1)
+       END DO
+       IF ((.NOT. Autonomous).AND.(ros_Gamma(istage).NE.ZERO)) THEN
+         HG = Direction*H*ros_Gamma(istage)
+         CALL WAXPY(N,HG,dFdT,1,K(ioffset+1),1)
+       END IF
+       CALL ros_Solve(Ghimj, Pivot, K(ioffset+1))
+
+   END DO Stage
+
+
+!~~~>  Compute the new solution
+   !slim: CALL WCOPY(N,Y,1,Ynew,1)
+   Ynew(1:N) = Y(1:N)
+   DO j=1,ros_S
+         CALL WAXPY(N,ros_M(j),K(N*(j-1)+1),1,Ynew,1)
+   END DO
+
+!~~~>  Compute the error estimation
+   !slim: CALL WSCAL(N,ZERO,Yerr,1)
+   Yerr(1:N) = ZERO
+   DO j=1,ros_S
+        CALL WAXPY(N,ros_E(j),K(N*(j-1)+1),1,Yerr,1)
+   END DO
+   Err = ros_ErrorNorm ( Y, Ynew, Yerr, AbsTol, RelTol, VectorTol )
+
+!~~~> New step size is bounded by FacMin <= Hnew/H <= FacMax
+   Fac  = MIN(FacMax,MAX(FacMin,FacSafe/Err**(ONE/ros_ELO)))
+   Hnew = H*Fac
+
+!~~~>  Check the error magnitude and adjust step size
+   ISTATUS(Nstp) = ISTATUS(Nstp) + 1
+   IF ( (Err <= ONE).OR.(H <= Hmin) ) THEN  !~~~> Accept step
+      ISTATUS(Nacc) = ISTATUS(Nacc) + 1
+      !slim: CALL WCOPY(N,Ynew,1,Y,1)
+      Y(1:N) = Ynew(1:N)
+      T = T + Direction*H
+      Hnew = MAX(Hmin,MIN(Hnew,Hmax))
+      IF (RejectLastH) THEN  ! No step size increase after a rejected step
+         Hnew = MIN(Hnew,H)
+      END IF
+      RSTATUS(Nhexit) = H
+      RSTATUS(Nhnew)  = Hnew
+      RSTATUS(Ntexit) = T
+      RejectLastH = .FALSE.
+      RejectMoreH = .FALSE.
+      H = Hnew
+      EXIT UntilAccepted ! EXIT THE LOOP: WHILE STEP NOT ACCEPTED
+   ELSE           !~~~> Reject step
+      IF (RejectMoreH) THEN
+         Hnew = H*FacRej
+      END IF
+      RejectMoreH = RejectLastH
+      RejectLastH = .TRUE.
+      H = Hnew
+      IF (ISTATUS(Nacc) >= 1)  ISTATUS(Nrej) = ISTATUS(Nrej) + 1
+   END IF ! Err <= 1
+
+   END DO UntilAccepted
+
+   END DO TimeLoop
+
+!~~~> Succesful exit
+   IERR = 1  !~~~> The integration was successful
+
+  END SUBROUTINE ros_Integrator
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  KPP_REAL FUNCTION ros_ErrorNorm ( Y, Ynew, Yerr, &
+                               AbsTol, RelTol, VectorTol )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> Computes the "scaled norm" of the error vector Yerr
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   IMPLICIT NONE
+
+! Input arguments
+   KPP_REAL, INTENT(IN) :: Y(N), Ynew(N), &
+          Yerr(N), AbsTol(N), RelTol(N)
+   LOGICAL, INTENT(IN) ::  VectorTol
+! Local variables
+   KPP_REAL :: Err, Scale, Ymax
+   INTEGER  :: i
+   KPP_REAL, PARAMETER :: ZERO = 0.0_dp
+
+   Err = ZERO
+   DO i=1,N
+     Ymax = MAX(ABS(Y(i)),ABS(Ynew(i)))
+     IF (VectorTol) THEN
+       Scale = AbsTol(i)+RelTol(i)*Ymax
+     ELSE
+       Scale = AbsTol(1)+RelTol(1)*Ymax
+     END IF
+     Err = Err+(Yerr(i)/Scale)**2
+   END DO
+   Err  = SQRT(Err/N)
+
+   ros_ErrorNorm = MAX(Err,1.0d-10)
+
+  END FUNCTION ros_ErrorNorm
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE ros_FunTimeDerivative ( T, Roundoff, Y, &
+                Fcn0, dFdT )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> The time partial derivative of the function by finite differences
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   IMPLICIT NONE
+
+!~~~> Input arguments
+   KPP_REAL, INTENT(IN) :: T, Roundoff, Y(N), Fcn0(N)
+!~~~> Output arguments
+   KPP_REAL, INTENT(OUT) :: dFdT(N)
+!~~~> Local variables
+   KPP_REAL :: Delta
+   KPP_REAL, PARAMETER :: ONE = 1.0_dp, DeltaMin = 1.0E-6_dp
+
+   Delta = SQRT(Roundoff)*MAX(DeltaMin,ABS(T))
+   CALL FunTemplate(T+Delta,Y,dFdT)
+   ISTATUS(Nfun) = ISTATUS(Nfun) + 1
+   CALL WAXPY(N,(-ONE),Fcn0,1,dFdT,1)
+   CALL WSCAL(N,(ONE/Delta),dFdT,1)
+
+  END SUBROUTINE ros_FunTimeDerivative
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE ros_PrepareMatrix ( H, Direction, gam, &
+             Jac0, Ghimj, Pivot, Singular )
+! --- --- --- --- --- --- --- --- --- --- --- --- ---
+!  Prepares the LHS matrix for stage calculations
+!  1.  Construct Ghimj = 1/(H*ham) - Jac0
+!      "(Gamma H) Inverse Minus Jacobian"
+!  2.  Repeat LU decomposition of Ghimj until successful.
+!       -half the step size if LU decomposition fails and retry
+!       -exit after 5 consecutive fails
+! --- --- --- --- --- --- --- --- --- --- --- --- ---
+   IMPLICIT NONE
+
+!~~~> Input arguments
+#ifdef FULL_ALGEBRA    
+   KPP_REAL, INTENT(IN) ::  Jac0(N,N)
+#else
+   KPP_REAL, INTENT(IN) ::  Jac0(LU_NONZERO)
+#endif   
+   KPP_REAL, INTENT(IN) ::  gam
+   INTEGER, INTENT(IN) ::  Direction
+!~~~> Output arguments
+#ifdef FULL_ALGEBRA    
+   KPP_REAL, INTENT(OUT) :: Ghimj(N,N)
+#else
+   KPP_REAL, INTENT(OUT) :: Ghimj(LU_NONZERO)
+#endif   
+   LOGICAL, INTENT(OUT) ::  Singular
+   INTEGER, INTENT(OUT) ::  Pivot(N)
+!~~~> Inout arguments
+   KPP_REAL, INTENT(INOUT) :: H   ! step size is decreased when LU fails
+!~~~> Local variables
+   INTEGER  :: i, ISING, Nconsecutive
+   KPP_REAL :: ghinv
+   KPP_REAL, PARAMETER :: ONE  = 1.0_dp, HALF = 0.5_dp
+
+   Nconsecutive = 0
+   Singular = .TRUE.
+
+   DO WHILE (Singular)
+
+!~~~>    Construct Ghimj = 1/(H*gam) - Jac0
+#ifdef FULL_ALGEBRA    
+     !slim: CALL WCOPY(N*N,Jac0,1,Ghimj,1)
+     !slim: CALL WSCAL(N*N,(-ONE),Ghimj,1)
+     Ghimj = -Jac0
+     ghinv = ONE/(Direction*H*gam)
+     DO i=1,N
+       Ghimj(i,i) = Ghimj(i,i)+ghinv
+     END DO
+#else
+     !slim: CALL WCOPY(LU_NONZERO,Jac0,1,Ghimj,1)
+     !slim: CALL WSCAL(LU_NONZERO,(-ONE),Ghimj,1)
+     Ghimj(1:LU_NONZERO) = -Jac0(1:LU_NONZERO)
+     ghinv = ONE/(Direction*H*gam)
+     DO i=1,N
+       Ghimj(LU_DIAG(i)) = Ghimj(LU_DIAG(i))+ghinv
+     END DO
+#endif   
+!~~~>    Compute LU decomposition
+     CALL ros_Decomp( Ghimj, Pivot, ISING )
+     IF (ISING == 0) THEN
+!~~~>    If successful done
+        Singular = .FALSE.
+     ELSE ! ISING .ne. 0
+!~~~>    If unsuccessful half the step size; if 5 consecutive fails then return
+        ISTATUS(Nsng) = ISTATUS(Nsng) + 1
+        Nconsecutive = Nconsecutive+1
+        Singular = .TRUE.
+        PRINT*,'Warning: LU Decomposition returned ISING = ',ISING
+        IF (Nconsecutive <= 5) THEN ! Less than 5 consecutive failed decompositions
+           H = H*HALF
+        ELSE  ! More than 5 consecutive failed decompositions
+           RETURN
+        END IF  ! Nconsecutive
+      END IF    ! ISING
+
+   END DO ! WHILE Singular
+
+  END SUBROUTINE ros_PrepareMatrix
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE ros_Decomp( A, Pivot, ISING )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!  Template for the LU decomposition
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   IMPLICIT NONE
+!~~~> Inout variables
+#ifdef FULL_ALGEBRA    
+   KPP_REAL, INTENT(INOUT) :: A(N,N)
+#else   
+   KPP_REAL, INTENT(INOUT) :: A(LU_NONZERO)
+#endif
+!~~~> Output variables
+   INTEGER, INTENT(OUT) :: Pivot(N), ISING
+
+#ifdef FULL_ALGEBRA    
+   CALL  DGETRF( N, N, A, N, Pivot, ISING )
+#else   
+   CALL KppDecomp ( A, ISING )
+   Pivot(1) = 1
+#endif
+   ISTATUS(Ndec) = ISTATUS(Ndec) + 1
+
+  END SUBROUTINE ros_Decomp
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE ros_Solve( A, Pivot, b )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!  Template for the forward/backward substitution (using pre-computed LU decomposition)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   IMPLICIT NONE
+!~~~> Input variables
+#ifdef FULL_ALGEBRA    
+   KPP_REAL, INTENT(IN) :: A(N,N)
+   INTEGER :: ISING
+#else   
+   KPP_REAL, INTENT(IN) :: A(LU_NONZERO)
+#endif
+   INTEGER, INTENT(IN) :: Pivot(N)
+!~~~> InOut variables
+   KPP_REAL, INTENT(INOUT) :: b(N)
+
+#ifdef FULL_ALGEBRA    
+   CALL  DGETRS( 'N', N , 1, A, N, Pivot, b, N, ISING )
+   IF ( Info < 0 ) THEN
+      PRINT*,"Error in DGETRS. ISING=",ISING
+   END IF  
+#else   
+   CALL KppSolve( A, b )
+#endif
+
+   ISTATUS(Nsol) = ISTATUS(Nsol) + 1
+
+  END SUBROUTINE ros_Solve
+
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE Ros2
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! --- AN L-STABLE METHOD, 2 stages, order 2
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+   IMPLICIT NONE
+   DOUBLE PRECISION g
+
+    g = 1.0_dp + 1.0_dp/SQRT(2.0_dp)
+    rosMethod = RS2
+!~~~> Name of the method
+    ros_Name = 'ROS-2'
+!~~~> Number of stages
+    ros_S = 2
+
+!~~~> The coefficient matrices A and C are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+!   The general mapping formula is:
+!       A(i,j) = ros_A( (i-1)*(i-2)/2 + j )
+!       C(i,j) = ros_C( (i-1)*(i-2)/2 + j )
+
+    ros_A(1) = (1.0_dp)/g
+    ros_C(1) = (-2.0_dp)/g
+!~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+    ros_NewF(1) = .TRUE.
+    ros_NewF(2) = .TRUE.
+!~~~> M_i = Coefficients for new step solution
+    ros_M(1)= (3.0_dp)/(2.0_dp*g)
+    ros_M(2)= (1.0_dp)/(2.0_dp*g)
+! E_i = Coefficients for error estimator
+    ros_E(1) = 1.0_dp/(2.0_dp*g)
+    ros_E(2) = 1.0_dp/(2.0_dp*g)
+!~~~> ros_ELO = estimator of local order - the minimum between the
+!    main and the embedded scheme orders plus one
+    ros_ELO = 2.0_dp
+!~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+    ros_Alpha(1) = 0.0_dp
+    ros_Alpha(2) = 1.0_dp
+!~~~> Gamma_i = \sum_j  gamma_{i,j}
+    ros_Gamma(1) = g
+    ros_Gamma(2) =-g
+
+ END SUBROUTINE Ros2
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE Ros3
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! --- AN L-STABLE METHOD, 3 stages, order 3, 2 function evaluations
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+   IMPLICIT NONE
+   rosMethod = RS3
+!~~~> Name of the method
+   ros_Name = 'ROS-3'
+!~~~> Number of stages
+   ros_S = 3
+
+!~~~> The coefficient matrices A and C are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+!   The general mapping formula is:
+!       A(i,j) = ros_A( (i-1)*(i-2)/2 + j )
+!       C(i,j) = ros_C( (i-1)*(i-2)/2 + j )
+
+   ros_A(1)= 1.0_dp
+   ros_A(2)= 1.0_dp
+   ros_A(3)= 0.0_dp
+
+   ros_C(1) = -0.10156171083877702091975600115545E+01_dp
+   ros_C(2) =  0.40759956452537699824805835358067E+01_dp
+   ros_C(3) =  0.92076794298330791242156818474003E+01_dp
+!~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+   ros_NewF(1) = .TRUE.
+   ros_NewF(2) = .TRUE.
+   ros_NewF(3) = .FALSE.
+!~~~> M_i = Coefficients for new step solution
+   ros_M(1) =  0.1E+01_dp
+   ros_M(2) =  0.61697947043828245592553615689730E+01_dp
+   ros_M(3) = -0.42772256543218573326238373806514_dp
+! E_i = Coefficients for error estimator
+   ros_E(1) =  0.5_dp
+   ros_E(2) = -0.29079558716805469821718236208017E+01_dp
+   ros_E(3) =  0.22354069897811569627360909276199_dp
+!~~~> ros_ELO = estimator of local order - the minimum between the
+!    main and the embedded scheme orders plus 1
+   ros_ELO = 3.0_dp
+!~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+   ros_Alpha(1)= 0.0_dp
+   ros_Alpha(2)= 0.43586652150845899941601945119356_dp
+   ros_Alpha(3)= 0.43586652150845899941601945119356_dp
+!~~~> Gamma_i = \sum_j  gamma_{i,j}
+   ros_Gamma(1)= 0.43586652150845899941601945119356_dp
+   ros_Gamma(2)= 0.24291996454816804366592249683314_dp
+   ros_Gamma(3)= 0.21851380027664058511513169485832E+01_dp
+
+  END SUBROUTINE Ros3
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE Ros4
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!     L-STABLE ROSENBROCK METHOD OF ORDER 4, WITH 4 STAGES
+!     L-STABLE EMBEDDED ROSENBROCK METHOD OF ORDER 3
+!
+!      E. HAIRER AND G. WANNER, SOLVING ORDINARY DIFFERENTIAL
+!      EQUATIONS II. STIFF AND DIFFERENTIAL-ALGEBRAIC PROBLEMS.
+!      SPRINGER SERIES IN COMPUTATIONAL MATHEMATICS,
+!      SPRINGER-VERLAG (1990)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+   IMPLICIT NONE
+
+   rosMethod = RS4
+!~~~> Name of the method
+   ros_Name = 'ROS-4'
+!~~~> Number of stages
+   ros_S = 4
+
+!~~~> The coefficient matrices A and C are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+!   The general mapping formula is:
+!       A(i,j) = ros_A( (i-1)*(i-2)/2 + j )
+!       C(i,j) = ros_C( (i-1)*(i-2)/2 + j )
+
+   ros_A(1) = 0.2000000000000000E+01_dp
+   ros_A(2) = 0.1867943637803922E+01_dp
+   ros_A(3) = 0.2344449711399156_dp
+   ros_A(4) = ros_A(2)
+   ros_A(5) = ros_A(3)
+   ros_A(6) = 0.0_dp
+
+   ros_C(1) =-0.7137615036412310E+01_dp
+   ros_C(2) = 0.2580708087951457E+01_dp
+   ros_C(3) = 0.6515950076447975_dp
+   ros_C(4) =-0.2137148994382534E+01_dp
+   ros_C(5) =-0.3214669691237626_dp
+   ros_C(6) =-0.6949742501781779_dp
+!~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+   ros_NewF(1)  = .TRUE.
+   ros_NewF(2)  = .TRUE.
+   ros_NewF(3)  = .TRUE.
+   ros_NewF(4)  = .FALSE.
+!~~~> M_i = Coefficients for new step solution
+   ros_M(1) = 0.2255570073418735E+01_dp
+   ros_M(2) = 0.2870493262186792_dp
+   ros_M(3) = 0.4353179431840180_dp
+   ros_M(4) = 0.1093502252409163E+01_dp
+!~~~> E_i  = Coefficients for error estimator
+   ros_E(1) =-0.2815431932141155_dp
+   ros_E(2) =-0.7276199124938920E-01_dp
+   ros_E(3) =-0.1082196201495311_dp
+   ros_E(4) =-0.1093502252409163E+01_dp
+!~~~> ros_ELO  = estimator of local order - the minimum between the
+!    main and the embedded scheme orders plus 1
+   ros_ELO  = 4.0_dp
+!~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+   ros_Alpha(1) = 0.0_dp
+   ros_Alpha(2) = 0.1145640000000000E+01_dp
+   ros_Alpha(3) = 0.6552168638155900_dp
+   ros_Alpha(4) = ros_Alpha(3)
+!~~~> Gamma_i = \sum_j  gamma_{i,j}
+   ros_Gamma(1) = 0.5728200000000000_dp
+   ros_Gamma(2) =-0.1769193891319233E+01_dp
+   ros_Gamma(3) = 0.7592633437920482_dp
+   ros_Gamma(4) =-0.1049021087100450_dp
+
+  END SUBROUTINE Ros4
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE Rodas3
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! --- A STIFFLY-STABLE METHOD, 4 stages, order 3
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+   IMPLICIT NONE
+
+   rosMethod = RD3
+!~~~> Name of the method
+   ros_Name = 'RODAS-3'
+!~~~> Number of stages
+   ros_S = 4
+
+!~~~> The coefficient matrices A and C are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+!   The general mapping formula is:
+!       A(i,j) = ros_A( (i-1)*(i-2)/2 + j )
+!       C(i,j) = ros_C( (i-1)*(i-2)/2 + j )
+
+   ros_A(1) = 0.0_dp
+   ros_A(2) = 2.0_dp
+   ros_A(3) = 0.0_dp
+   ros_A(4) = 2.0_dp
+   ros_A(5) = 0.0_dp
+   ros_A(6) = 1.0_dp
+
+   ros_C(1) = 4.0_dp
+   ros_C(2) = 1.0_dp
+   ros_C(3) =-1.0_dp
+   ros_C(4) = 1.0_dp
+   ros_C(5) =-1.0_dp
+   ros_C(6) =-(8.0_dp/3.0_dp)
+
+!~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+   ros_NewF(1)  = .TRUE.
+   ros_NewF(2)  = .FALSE.
+   ros_NewF(3)  = .TRUE.
+   ros_NewF(4)  = .TRUE.
+!~~~> M_i = Coefficients for new step solution
+   ros_M(1) = 2.0_dp
+   ros_M(2) = 0.0_dp
+   ros_M(3) = 1.0_dp
+   ros_M(4) = 1.0_dp
+!~~~> E_i  = Coefficients for error estimator
+   ros_E(1) = 0.0_dp
+   ros_E(2) = 0.0_dp
+   ros_E(3) = 0.0_dp
+   ros_E(4) = 1.0_dp
+!~~~> ros_ELO  = estimator of local order - the minimum between the
+!    main and the embedded scheme orders plus 1
+   ros_ELO  = 3.0_dp
+!~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+   ros_Alpha(1) = 0.0_dp
+   ros_Alpha(2) = 0.0_dp
+   ros_Alpha(3) = 1.0_dp
+   ros_Alpha(4) = 1.0_dp
+!~~~> Gamma_i = \sum_j  gamma_{i,j}
+   ros_Gamma(1) = 0.5_dp
+   ros_Gamma(2) = 1.5_dp
+   ros_Gamma(3) = 0.0_dp
+   ros_Gamma(4) = 0.0_dp
+
+  END SUBROUTINE Rodas3
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE Rodas4
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!     STIFFLY-STABLE ROSENBROCK METHOD OF ORDER 4, WITH 6 STAGES
+!
+!      E. HAIRER AND G. WANNER, SOLVING ORDINARY DIFFERENTIAL
+!      EQUATIONS II. STIFF AND DIFFERENTIAL-ALGEBRAIC PROBLEMS.
+!      SPRINGER SERIES IN COMPUTATIONAL MATHEMATICS,
+!      SPRINGER-VERLAG (1996)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+   IMPLICIT NONE
+
+    rosMethod = RD4
+!~~~> Name of the method
+    ros_Name = 'RODAS-4'
+!~~~> Number of stages
+    ros_S = 6
+
+!~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+    ros_Alpha(1) = 0.000_dp
+    ros_Alpha(2) = 0.386_dp
+    ros_Alpha(3) = 0.210_dp
+    ros_Alpha(4) = 0.630_dp
+    ros_Alpha(5) = 1.000_dp
+    ros_Alpha(6) = 1.000_dp
+
+!~~~> Gamma_i = \sum_j  gamma_{i,j}
+    ros_Gamma(1) = 0.2500000000000000_dp
+    ros_Gamma(2) =-0.1043000000000000_dp
+    ros_Gamma(3) = 0.1035000000000000_dp
+    ros_Gamma(4) =-0.3620000000000023E-01_dp
+    ros_Gamma(5) = 0.0_dp
+    ros_Gamma(6) = 0.0_dp
+
+!~~~> The coefficient matrices A and C are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+!   The general mapping formula is:  A(i,j) = ros_A( (i-1)*(i-2)/2 + j )
+!                  C(i,j) = ros_C( (i-1)*(i-2)/2 + j )
+
+    ros_A(1) = 0.1544000000000000E+01_dp
+    ros_A(2) = 0.9466785280815826_dp
+    ros_A(3) = 0.2557011698983284_dp
+    ros_A(4) = 0.3314825187068521E+01_dp
+    ros_A(5) = 0.2896124015972201E+01_dp
+    ros_A(6) = 0.9986419139977817_dp
+    ros_A(7) = 0.1221224509226641E+01_dp
+    ros_A(8) = 0.6019134481288629E+01_dp
+    ros_A(9) = 0.1253708332932087E+02_dp
+    ros_A(10) =-0.6878860361058950_dp
+    ros_A(11) = ros_A(7)
+    ros_A(12) = ros_A(8)
+    ros_A(13) = ros_A(9)
+    ros_A(14) = ros_A(10)
+    ros_A(15) = 1.0_dp
+
+    ros_C(1) =-0.5668800000000000E+01_dp
+    ros_C(2) =-0.2430093356833875E+01_dp
+    ros_C(3) =-0.2063599157091915_dp
+    ros_C(4) =-0.1073529058151375_dp
+    ros_C(5) =-0.9594562251023355E+01_dp
+    ros_C(6) =-0.2047028614809616E+02_dp
+    ros_C(7) = 0.7496443313967647E+01_dp
+    ros_C(8) =-0.1024680431464352E+02_dp
+    ros_C(9) =-0.3399990352819905E+02_dp
+    ros_C(10) = 0.1170890893206160E+02_dp
+    ros_C(11) = 0.8083246795921522E+01_dp
+    ros_C(12) =-0.7981132988064893E+01_dp
+    ros_C(13) =-0.3152159432874371E+02_dp
+    ros_C(14) = 0.1631930543123136E+02_dp
+    ros_C(15) =-0.6058818238834054E+01_dp
+
+!~~~> M_i = Coefficients for new step solution
+    ros_M(1) = ros_A(7)
+    ros_M(2) = ros_A(8)
+    ros_M(3) = ros_A(9)
+    ros_M(4) = ros_A(10)
+    ros_M(5) = 1.0_dp
+    ros_M(6) = 1.0_dp
+
+!~~~> E_i  = Coefficients for error estimator
+    ros_E(1) = 0.0_dp
+    ros_E(2) = 0.0_dp
+    ros_E(3) = 0.0_dp
+    ros_E(4) = 0.0_dp
+    ros_E(5) = 0.0_dp
+    ros_E(6) = 1.0_dp
+
+!~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+    ros_NewF(1) = .TRUE.
+    ros_NewF(2) = .TRUE.
+    ros_NewF(3) = .TRUE.
+    ros_NewF(4) = .TRUE.
+    ros_NewF(5) = .TRUE.
+    ros_NewF(6) = .TRUE.
+
+!~~~> ros_ELO  = estimator of local order - the minimum between the
+!        main and the embedded scheme orders plus 1
+    ros_ELO = 4.0_dp
+
+  END SUBROUTINE Rodas4
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE Rang3
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! STIFFLY-STABLE W METHOD OF ORDER 3, WITH 4 STAGES
+!
+! J. RANG and L. ANGERMANN
+! NEW ROSENBROCK W-METHODS OF ORDER 3
+! FOR PARTIAL DIFFERENTIAL ALGEBRAIC
+!        EQUATIONS OF INDEX 1                                             
+! BIT Numerical Mathematics (2005) 45: 761-787
+!  DOI: 10.1007/s10543-005-0035-y
+! Table 4.1-4.2
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+   IMPLICIT NONE
+
+    rosMethod = RG3
+!~~~> Name of the method
+    ros_Name = 'RANG-3'
+!~~~> Number of stages
+    ros_S = 4
+
+    ros_A(1) = 5.09052051067020d+00;
+    ros_A(2) = 5.09052051067020d+00;
+    ros_A(3) = 0.0d0;
+    ros_A(4) = 4.97628111010787d+00;
+    ros_A(5) = 2.77268164715849d-02;
+    ros_A(6) = 2.29428036027904d-01;
+
+    ros_C(1) = -1.16790812312283d+01;
+    ros_C(2) = -1.64057326467367d+01;
+    ros_C(3) = -2.77268164715850d-01;
+    ros_C(4) = -8.38103960500476d+00;
+    ros_C(5) = -8.48328409199343d-01;
+    ros_C(6) =  2.87009860433106d-01;
+
+    ros_M(1) =  5.22582761233094d+00;
+    ros_M(2) = -5.56971148154165d-01;
+    ros_M(3) =  3.57979469353645d-01;
+    ros_M(4) =  1.72337398521064d+00;
+
+    ros_E(1) = -5.16845212784040d+00;
+    ros_E(2) = -1.26351942603842d+00;
+    ros_E(3) = -1.11022302462516d-16;
+    ros_E(4) =  2.22044604925031d-16;
+
+    ros_Alpha(1) = 0.0d00;
+    ros_Alpha(2) = 2.21878746765329d+00;
+    ros_Alpha(3) = 2.21878746765329d+00;
+    ros_Alpha(4) = 1.55392337535788d+00;
+
+    ros_Gamma(1) =  4.35866521508459d-01;
+    ros_Gamma(2) = -1.78292094614483d+00;
+    ros_Gamma(3) = -2.46541900496934d+00;
+    ros_Gamma(4) = -8.05529997906370d-01;
+
+
+!~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+    ros_NewF(1) = .TRUE.
+    ros_NewF(2) = .TRUE.
+    ros_NewF(3) = .TRUE.
+    ros_NewF(4) = .TRUE.
+
+!~~~> ros_ELO  = estimator of local order - the minimum between the
+!        main and the embedded scheme orders plus 1
+    ros_ELO = 3.0_dp
+
+  END SUBROUTINE Rang3
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!   End of the set of internal Rosenbrock subroutines
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+END SUBROUTINE Rosenbrock
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+SUBROUTINE FunTemplate( T, Y, Ydot )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!  Template for the ODE function call.
+!  Updates the rate coefficients (and possibly the fixed species) at each call
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ USE KPP_ROOT_Parameters, ONLY: NVAR, LU_NONZERO
+ USE KPP_ROOT_Global, ONLY: FIX, RCONST, TIME
+ USE KPP_ROOT_Function, ONLY: Fun
+ USE KPP_ROOT_Rates, ONLY: Update_SUN, Update_RCONST
+!~~~> Input variables
+   KPP_REAL :: T, Y(NVAR)
+!~~~> Output variables
+   KPP_REAL :: Ydot(NVAR)
+!~~~> Local variables
+   KPP_REAL :: Told
+
+   Told = TIME
+   TIME = T
+   CALL Update_SUN()
+   CALL Update_RCONST()
+   CALL Fun( Y, FIX, RCONST, Ydot )
+   TIME = Told
+
+END SUBROUTINE FunTemplate
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+SUBROUTINE JacTemplate( T, Y, Jcb )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!  Template for the ODE Jacobian call.
+!  Updates the rate coefficients (and possibly the fixed species) at each call
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ USE KPP_ROOT_Parameters, ONLY: NVAR, LU_NONZERO
+ USE KPP_ROOT_Global, ONLY: FIX, RCONST, TIME
+ USE KPP_ROOT_Jacobian, ONLY: Jac_SP, LU_IROW, LU_ICOL
+ USE KPP_ROOT_LinearAlgebra
+ USE KPP_ROOT_Rates, ONLY: Update_SUN, Update_RCONST
+!~~~> Input variables
+    KPP_REAL :: T, Y(NVAR)
+!~~~> Output variables
+#ifdef FULL_ALGEBRA    
+    KPP_REAL :: JV(LU_NONZERO), Jcb(NVAR,NVAR)
+#else
+    KPP_REAL :: Jcb(LU_NONZERO)
+#endif   
+!~~~> Local variables
+    KPP_REAL :: Told
+#ifdef FULL_ALGEBRA    
+    INTEGER :: i, j
+#endif   
+
+    Told = TIME
+    TIME = T
+    CALL Update_SUN()
+    CALL Update_RCONST()
+#ifdef FULL_ALGEBRA    
+    CALL Jac_SP(Y, FIX, RCONST, JV)
+    DO j=1,NVAR
+      DO i=1,NVAR
+         Jcb(i,j) = 0.0_dp
+      END DO
+    END DO
+    DO i=1,LU_NONZERO
+       Jcb(LU_IROW(i),LU_ICOL(i)) = JV(i)
+    END DO
+#else
+    CALL Jac_SP( Y, FIX, RCONST, Jcb )
+#endif   
+    TIME = Told
+
+END SUBROUTINE JacTemplate
+
+END MODULE KPP_ROOT_Integrator
+
+
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/rosenbrock.m
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/rosenbrock.m	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/rosenbrock.m	(revision 2696)
@@ -0,0 +1,986 @@
+function [T, Y, RCNTRL, ICNTRL, RSTAT, ISTAT] = ...
+    Rosenbrock(Function, Tspan, Y0, Options, RCNTRL, ICNTRL)
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+%  Rosenbrock - Implementation of several Rosenbrock methods:
+%               * Ros2                                                
+%               * Ros3                                                
+%               * Ros4                                                
+%               * Rodas3                                              
+%               * Rodas4                                              
+%                                                                     
+%    Solves the system y'=F(t,y) using a Rosenbrock method defined by:
+%                                                                     
+%     G = 1/(H*gamma(1)) - Jac(t0,Y0)                                 
+%     T_i = t0 + Alpha(i)*H                                           
+%     Y_i = Y0 + \sum_{j=1}^{i-1} A(i,j)*K_j
+%     G * K_i = Fun( T_i, Y_i ) + \sum_{j=1}^S C(i,j)/H * K_j +
+%         gamma(i)*dF/dT(t0, Y0)
+%     Y1 = Y0 + \sum_{j=1}^S M(j)*K_j
+%
+%    For details on Rosenbrock methods and their implementation consult:
+%      E. Hairer and G. Wanner
+%      "Solving ODEs II. Stiff and differential-algebraic problems".
+%      Springer series in computational mathematics, Springer-Verlag, 1996.
+%    The codes contained in the book inspired this implementation.
+%
+%    MATLAB implementation (C) John C. Linford (jlinford@vt.edu).      
+%    Virginia Polytechnic Institute and State University             
+%    November, 2009    
+%
+%    Based on the Fortran90 implementation (C) Adrian Sandu, August 2004
+%    and revised by Philipp Miehe and Adrian Sandu, May 2006.
+%    Virginia Polytechnic Institute and State University
+%    Contact: sandu@cs.vt.edu
+%
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+%  Input Arguments :
+%  The first four arguments are similar to the input arguments of 
+%  MATLAB's ODE solvers
+%      Function  - A function handle for the ODE function
+%      Tspan     - The time space to integrate
+%      Y0        - Initial value
+%      Options   - ODE solver options created by odeset():           
+%                  AbsTol, InitialStep, Jacobian, MaxStep, and RelTol
+%                  are considered.  Other options are ignored.       
+%                  'Jacobian' must be set.                           
+%      RCNTRL    - real value input parameters (explained below)
+%      ICNTRL    - integer input parameters (explained below)
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+%  Output Arguments:
+%  The first two arguments are similar to the output arguments of
+%  MATLAB's ODE solvers
+%      T         - A vector of final integration times.
+%      Y         - A matrix of function values.  Y(T(i),:) is the value of
+%                  the function at the ith output time.
+%      RCNTRL    - real value input parameters (explained below)
+%      ICNTRL    - integer input parameters (explained below)
+%      RSTAT     - real output parameters (explained below)
+%      ISTAT     - integer output parameters (explained below)
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+%
+%    RCNTRL and ICNTRL on input and output:
+%
+%    Note: For input parameters equal to zero the default values of the
+%       corresponding variables are used.
+%
+%    ICNTRL(1) = 1: F = F(y)   Independent of T (AUTONOMOUS)
+%              = 0: F = F(t,y) Depends on T (NON-AUTONOMOUS)
+%
+%    ICNTRL(2) = 0: AbsTol, RelTol are N-dimensional vectors
+%              = 1: AbsTol, RelTol are scalars
+%
+%    ICNTRL(3)  -> selection of a particular Rosenbrock method
+%        = 0 :    Rodas3 (default)
+%        = 1 :    Ros2
+%        = 2 :    Ros3
+%        = 3 :    Ros4
+%        = 4 :    Rodas3
+%        = 5 :    Rodas4
+%
+%    ICNTRL(4)  -> maximum number of integration steps
+%        For ICNTRL(4)=0) the default value of 100000 is used
+%
+%    RCNTRL(1)  -> Hmin, lower bound for the integration step size
+%          It is strongly recommended to keep Hmin = ZERO
+%    RCNTRL(2)  -> Hmax, upper bound for the integration step size
+%    RCNTRL(3)  -> Hstart, starting value for the integration step size
+%
+%    RCNTRL(4)  -> FacMin, lower bound on step decrease factor (default=0.2)
+%    RCNTRL(5)  -> FacMax, upper bound on step increase factor (default=6)
+%    RCNTRL(6)  -> FacRej, step decrease factor after multiple rejections
+%                          (default=0.1)
+%    RCNTRL(7)  -> FacSafe, by which the new step is slightly smaller
+%         than the predicted value  (default=0.9)
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+%
+%    RSTAT and ISTAT on output:
+%
+%    ISTAT(1)  -> No. of function calls
+%    ISTAT(2)  -> No. of jacobian calls
+%    ISTAT(3)  -> No. of steps
+%    ISTAT(4)  -> No. of accepted steps
+%    ISTAT(5)  -> No. of rejected steps (except at very beginning)
+%    ISTAT(6)  -> No. of LU decompositions
+%    ISTAT(7)  -> No. of forward/backward substitutions
+%    ISTAT(8)  -> No. of singular matrix decompositions
+%
+%    RSTAT(1)  -> Texit, the time corresponding to the
+%                     computed Y upon return
+%    RSTAT(2)  -> Hexit, last accepted step before exit
+%    RSTAT(3)  -> Hnew, last predicted step (not yet taken)
+%                   For multiple restarts, use Hnew as Hstart
+%                     in the subsequent run
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+%~~~>  Statistics on the work performed by the Rosenbrock method
+global Nfun Njac Nstp Nacc Nrej Ndec Nsol Nsng Ntexit Nhexit Nhnew
+global ISTATUS RSTATUS
+
+% Parse ODE options
+AbsTol = odeget(Options, 'AbsTol');
+if isempty(AbsTol)
+    AbsTol = 1.0e-3;
+end
+Hstart = odeget(Options, 'InitialStep');
+if isempty(Hstart)
+    Hstart = 0;
+end
+Jacobian = odeget(Options, 'Jacobian');
+if isempty(Jacobian)
+    error('A Jacobian function is required.');
+end
+Hmax = odeget(Options, 'MaxStep');
+if isempty(Hmax)
+    Hmax = 0;
+end
+RelTol = odeget(Options, 'RelTol');
+if isempty(RelTol)
+    RelTol = 1.0e-4;
+end
+
+% Initialize statistics
+Nfun=1; Njac=2; Nstp=3; Nacc=4; Nrej=5; Ndec=6; Nsol=7; Nsng=8;
+Ntexit=1; Nhexit=2; Nhnew=3;
+RSTATUS = zeros(20,1);
+ISTATUS = zeros(20,1);
+
+% Get problem size
+steps = length(Tspan);
+N = length(Y0);
+
+% Initialize tolerances
+ATOL = ones(N,1)*AbsTol;
+RTOL = ones(N,1)*RelTol;
+
+% Initialize step
+RCNTRL(2) = max(0, Hmax);
+RCNTRL(3) = max(0, Hstart);
+
+% Integrate
+Y = zeros(steps,N);
+T = zeros(steps,1);
+Y(1,:) = Y0;
+T(1) = Tspan(1);
+for i=2:steps
+    [T(i), Y(i,:), IERR] = ...
+        RosenbrockIntegrator(N, Y(i-1,:), T(i-1), Tspan(i), ...
+            Function, Jacobian, ATOL, RTOL, RCNTRL, ICNTRL);
+
+    if IERR < 0
+        error(['Rosenbrock exited with IERR=',num2str(IERR)]);
+    end
+
+end
+
+ISTAT = ISTATUS;
+RSTAT = RSTATUS;
+
+return
+
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+function [ T, Y, IERR ] = RosenbrockIntegrator(N, Y, Tstart, Tend, ...
+    OdeFunction, OdeJacobian, AbsTol, RelTol, RCNTRL, ICNTRL)
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+% Advances the ODE system defined by OdeFunction, OdeJacobian and Y
+% from time=Tstart to time=Tend
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+%~~~>  Statistics on the work performed by the Rosenbrock method
+global Nfun Njac Nstp Nacc Nrej Ndec Nsol Nsng Ntexit Nhexit Nhnew Ntotal
+global ISTATUS RSTATUS
+
+%~~~>   Parameters
+global ZERO ONE DeltaMin
+ZERO = 0.0; ONE = 1.0; DeltaMin = 1.0E-5;
+
+%~~~>  Initialize statistics
+ISTATUS(1:8) = 0;
+RSTATUS(1:3) = ZERO;
+
+%~~~>  Autonomous or time dependent ODE. Default is time dependent.
+Autonomous = ~(ICNTRL(1) == 0);
+
+%~~~>  For Scalar tolerances (ICNTRL(2).NE.0)  the code uses AbsTol(1) and RelTol(1)
+%   For Vector tolerances (ICNTRL(2) == 0) the code uses AbsTol(1:N) and RelTol(1:N)
+if ICNTRL(2) == 0
+    VectorTol = true;
+    UplimTol  = N;
+else
+    VectorTol = false;
+    UplimTol  = 1;
+end
+
+%~~~>   Initialize the particular Rosenbrock method selected
+switch (ICNTRL(3))
+    case (1)
+        ros_Param = Ros2;
+    case (2)
+        ros_Param = Ros3;
+    case (3)
+        ros_Param = Ros4;
+    case {0,4}
+        ros_Param = Rodas3;
+    case (5)
+        ros_Param = Rodas4;
+    otherwise
+        disp(['Unknown Rosenbrock method: ICNTRL(3)=',num2str(ICNTRL(3))]);
+        IERR = ros_ErrorMsg(-2,Tstart,ZERO);
+        return
+end
+ros_S     = ros_Param{1};
+rosMethod = ros_Param{2};
+ros_A     = ros_Param{3};
+ros_C     = ros_Param{4};
+ros_M     = ros_Param{5};
+ros_E     = ros_Param{6};
+ros_Alpha = ros_Param{7};
+ros_Gamma = ros_Param{8};
+ros_ELO   = ros_Param{9};
+ros_NewF  = ros_Param{10};
+ros_Name  = ros_Param{11};
+
+%~~~>   The maximum number of steps admitted
+if ICNTRL(4) == 0
+    Max_no_steps = 200000;
+elseif ICNTRL(4) > 0
+    Max_no_steps=ICNTRL(4);
+else
+    disp(['User-selected max no. of steps: ICNTRL(4)=',num2str(ICNTRL(4))]);
+    IERR = ros_ErrorMsg(-1,Tstart,ZERO);
+    return
+end
+
+%~~~>  Unit roundoff (1+Roundoff>1)
+Roundoff = eps;
+
+%~~~>  Lower bound on the step size: (positive value)
+if RCNTRL(1) == ZERO
+    Hmin = ZERO;
+elseif RCNTRL(1) > ZERO
+    Hmin = RCNTRL(1);
+else
+    disp(['User-selected Hmin: RCNTRL(1)=', num2str(RCNTRL(1))]);
+    IERR = ros_ErrorMsg(-3,Tstart,ZERO);
+    return
+end
+
+%~~~>  Upper bound on the step size: (positive value)
+if RCNTRL(2) == ZERO
+    Hmax = abs(Tend-Tstart);
+elseif RCNTRL(2) > ZERO
+    Hmax = min(abs(RCNTRL(2)),abs(Tend-Tstart));
+else
+    disp(['User-selected Hmax: RCNTRL(2)=', num2str(RCNTRL(2))]);
+    IERR = ros_ErrorMsg(-3,Tstart,ZERO);
+    return
+end
+
+%~~~>  Starting step size: (positive value)
+if RCNTRL(3) == ZERO
+    Hstart = max(Hmin,DeltaMin);
+elseif RCNTRL(3) > ZERO
+    Hstart = min(abs(RCNTRL(3)),abs(Tend-Tstart));
+else
+    disp(['User-selected Hstart: RCNTRL(3)=', num2str(RCNTRL(3))]);
+    IERR = ros_ErrorMsg(-3,Tstart,ZERO);
+    return
+end
+
+%~~~>  Step size can be changed s.t.  FacMin < Hnew/Hold < FacMax
+if RCNTRL(4) == ZERO
+    FacMin = 0.2;
+elseif RCNTRL(4) > ZERO
+    FacMin = RCNTRL(4);
+else
+    disp(['User-selected FacMin: RCNTRL(4)=', num2str(RCNTRL(4))]);
+    IERR = ros_ErrorMsg(-4,Tstart,ZERO);
+    return
+end
+if RCNTRL(5) == ZERO
+    FacMax = 6.0;
+elseif RCNTRL(5) > ZERO
+    FacMax = RCNTRL(5);
+else
+    disp(['User-selected FacMax: RCNTRL(5)=', num2str(RCNTRL(5))]);
+    IERR = ros_ErrorMsg(-4,Tstart,ZERO);
+    return
+end
+
+%~~~>   FacRej: Factor to decrease step after 2 succesive rejections
+if RCNTRL(6) == ZERO
+    FacRej = 0.1;
+elseif RCNTRL(6) > ZERO
+    FacRej = RCNTRL(6);
+else
+    disp(['User-selected FacRej: RCNTRL(6)=', num2str(RCNTRL(6))]);
+    IERR = ros_ErrorMsg(-4,Tstart,ZERO);
+    return
+end
+
+%~~~>   FacSafe: Safety Factor in the computation of new step size
+if RCNTRL(7) == ZERO
+    FacSafe = 0.9;
+elseif RCNTRL(7) > ZERO
+    FacSafe = RCNTRL(7);
+else
+    disp(['User-selected FacSafe: RCNTRL(7)=', num2str(RCNTRL(7))]);
+    IERR = ros_ErrorMsg(-4,Tstart,ZERO);
+    return
+end
+
+%~~~>  Check if tolerances are reasonable
+for i=1:UplimTol
+    if  (AbsTol(i) <= ZERO) || (RelTol(i) <= 10.0*Roundoff) || (RelTol(i) >= 1.0)
+        disp([' AbsTol(',i,') = ',num2str(AbsTol(i))]);
+        disp([' RelTol(',i,') = ',num2str(RelTol(i))]);
+        IERR = ros_ErrorMsg(-5,Tstart,ZERO);
+        return
+    end
+end
+
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+%   Template for the implementation of a generic Rosenbrock method
+%      defined by ros_S (no of stages)
+%      and its coefficients ros_{A,C,M,E,Alpha,Gamma}
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+% ~~~~ Local variables
+Ynew  = zeros(N,1);
+Fcn0  = zeros(N,1);
+Fcn   = zeros(N,1);
+K     = zeros(N,ros_S);
+dFdT  = zeros(N,1);
+Jac0  = sparse(N,N);
+Ghimj = sparse(N,N);
+Yerr  = zeros(N,1);
+Pivot = zeros(N,1);
+
+%~~~>  Initial preparations
+T = Tstart;
+RSTATUS(Nhexit) = ZERO;
+H = min(max(abs(Hmin), abs(Hstart)), abs(Hmax));
+if abs(H) <= 10.0*Roundoff
+    H = DeltaMin;
+end
+
+if Tend >= Tstart
+    Direction = +1;
+else
+    Direction = -1;
+end
+H = Direction*H;
+
+RejectLastH = false;
+RejectMoreH = false;
+
+%~~~> Time loop begins below
+
+while ( (Direction > 0) && ((T-Tend)+Roundoff <= ZERO) || ...
+        (Direction < 0) && ((Tend-T)+Roundoff <= ZERO) )
+
+    if ISTATUS(Nstp) > Max_no_steps   % Too many steps
+        IERR = ros_ErrorMsg(-6,T,H);
+        return
+    end
+    if ((T+0.1*H) == T) || (H <= Roundoff)   % Step size too small
+        IERR = ros_ErrorMsg(-7,T,H);
+        return
+    end
+
+    %~~~>  Limit H if necessary to avoid going beyond Tend
+    H = min(H, abs(Tend-T));
+
+    %~~~>   Compute the function at current time
+    Fcn0 = OdeFunction(T, Y);
+    ISTATUS(Nfun) = ISTATUS(Nfun) + 1;
+
+    %~~~>  Compute the function derivative with respect to T
+    if ~Autonomous
+        dFdT = ros_FunTimeDerivative (T, OdeFunction, Roundoff, Y, Fcn0);
+    end
+
+    %~~~>   Compute the Jacobian at current time
+    Jac0 = OdeJacobian(T,Y);
+    ISTATUS(Njac) = ISTATUS(Njac) + 1;
+
+    %~~~>  Repeat step calculation until current step accepted
+    while(true)
+
+        [H, Ghimj, Pivot, Singular] = ...
+            ros_PrepareMatrix(N, H, Direction, ros_Gamma(1), Jac0);
+
+        % Not calculating LU decomposition in ros_PrepareMatrix anymore 
+        % so don't need to check if the matrix is singular
+        %
+        %if Singular % More than 5 consecutive failed decompositions
+        %    IERR = ros_ErrorMsg(-8,T,H);
+        %    return
+        %end
+
+        % For the 1st istage the function has been computed previously
+        Fcn = Fcn0;
+        K(:,1) = Fcn;
+        if (~Autonomous) && (ros_Gamma(1) ~= ZERO)
+            HG = Direction*H*ros_Gamma(1);
+            K(:,1) = K(:,1) + HG * dFdT;
+        end
+        K(:,1) = ros_Solve(Ghimj, Pivot, K(:,1));
+        
+        %~~~>   Compute the remaining stages
+        for istage=2:ros_S
+
+            % istage>1 and a new function evaluation is needed
+            if ros_NewF(istage)
+                Ynew = Y;
+                for j=1:istage-1
+                    Ynew = Ynew + ros_A((istage-1)*(istage-2)/2+j)*K(:,j)';
+                end
+                Tau = T + ros_Alpha(istage)*Direction*H;
+                Fcn = OdeFunction(Tau,Ynew);
+                ISTATUS(Nfun) = ISTATUS(Nfun) + 1;
+            end
+
+            K(:,istage) = Fcn;
+            for j=1:istage-1
+                HC = ros_C((istage-1)*(istage-2)/2+j)/(Direction*H);
+                K(:,istage) = K(:,istage) + HC * K(:,j);
+            end
+            if (~Autonomous) && (ros_Gamma(istage) ~= ZERO)
+                HG = Direction*H*ros_Gamma(istage);
+                K(:,istage) = K(:,istage) + HG * dFdT;
+            end
+
+            % Linear system is solved here with MATLAB '\' operator
+            % instead of LU decomposition.
+            K(:,istage) = ros_Solve(Ghimj, Pivot, K(:,istage));
+
+        end
+
+        %~~~>  Compute the new solution
+        Ynew = Y;
+        for j=1:ros_S
+            Ynew = Ynew + ros_M(j) * K(:,j)';
+        end
+
+        %~~~>  Compute the error estimation
+        Yerr = zeros(N,1);
+        for j=1:ros_S
+            Yerr = Yerr + ros_E(j) * K(:,j);
+        end
+        Err = ros_ErrorNorm(N, Y, Ynew, Yerr, AbsTol, RelTol, VectorTol);
+
+        %~~~> New step size is bounded by FacMin <= Hnew/H <= FacMax
+        Fac  = min(FacMax, max(FacMin, FacSafe/(Err^(ONE/ros_ELO))));
+        Hnew = H*Fac;
+
+        %~~~>  Check the error magnitude and adjust step size
+        ISTATUS(Nstp) = ISTATUS(Nstp) + 1;
+        if  (Err <= ONE) || (H <= Hmin)   %~~~> Accept step
+            ISTATUS(Nacc) = ISTATUS(Nacc) + 1;
+            Y = Ynew;
+            T = T + Direction*H;
+            Hnew = max(Hmin, min(Hnew, Hmax));
+            if RejectLastH  % No step size increase after a rejected step
+                Hnew = min(Hnew, H);
+            end
+            RSTATUS(Nhexit) = H;
+            RSTATUS(Nhnew)  = Hnew;
+            RSTATUS(Ntexit) = T;
+            RejectLastH = false;
+            RejectMoreH = false;
+            H = Hnew;
+            break % EXIT THE LOOP: WHILE STEP NOT ACCEPTED
+        else           %~~~> Reject step
+            if RejectMoreH
+                Hnew = H*FacRej;
+            end
+            RejectMoreH = RejectLastH;
+            RejectLastH = true;
+            H = Hnew;
+            if ISTATUS(Nacc) >= 1
+                ISTATUS(Nrej) = ISTATUS(Nrej) + 1;
+            end
+        end % Err <= 1
+
+    end % UntilAccepted
+
+end % TimeLoop
+
+%~~~> Succesful exit
+IERR = 1;  %~~~> The integration was successful
+
+return
+
+
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+function [ ErrNorm ] = ros_ErrorNorm(N, Y, Ynew, Yerr, AbsTol, RelTol, VectorTol)
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+%~~~> Computes the "scaled norm" of the error vector Yerr
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Err = 0;
+for i=1:N
+    Ymax = max(abs(Y(i)), abs(Ynew(i)));
+    if VectorTol
+        Scale = AbsTol(i) + RelTol(i)*Ymax;
+    else
+        Scale = AbsTol(1) + RelTol(1)*Ymax;
+    end
+    Err = Err + (Yerr(i)/Scale)^2;
+end
+Err = sqrt(Err/N);
+ErrNorm = max(Err,1.0e-10);
+
+return
+
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+function [ dFdT ] = ros_FunTimeDerivative (T, OdeFunction, Roundoff, Y, Fcn0)
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+%~~~> The time partial derivative of the function by finite differences
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+%~~~>  Statistics on the work performed by the Rosenbrock method
+global Nfun ISTATUS
+
+%~~~>   Parameters
+global ZERO ONE DeltaMin
+
+Delta = sqrt(Roundoff) * max(DeltaMin, abs(T));
+dFdT = OdeFunction(T+Delta,Y);
+ISTATUS(Nfun) = ISTATUS(Nfun) + 1;
+dFdT = (dFdT - Fcn0) / Delta;
+
+return
+
+
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+function [H, Ghimj, Pivot, Singular] = ...
+    ros_PrepareMatrix(N, H, Direction, gam, Jac0)
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+%  Prepares the LHS matrix for stage calculations
+%  1.  Construct Ghimj = 1/(H*ham) - Jac0
+%      "(Gamma H) Inverse Minus Jacobian"
+%  2.  LU decomposition not performed here because
+%      MATLAB solves the linear system with '\'.
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Ghimj = -Jac0;
+ghinv = 1.0/(Direction*H*gam);
+for i=1:N
+    Ghimj(i,i) = Ghimj(i,i)+ghinv;
+end
+
+Pivot(1) = 1;
+Singular = false;
+
+return
+
+
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+function [ IERR ] = ros_ErrorMsg(Code, T, H)
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+%    Handles all error messages
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+IERR = Code;
+
+disp('Forced exit from Rosenbrock due to the following error:');
+
+switch (Code)
+    case (-1)
+        disp('--> Improper value for maximal no of steps');
+    case (-2)
+        disp('--> Selected Rosenbrock method not implemented');
+    case (-3)
+        disp('--> Hmin/Hmax/Hstart must be positive');
+    case (-4)
+        disp('--> FacMin/FacMax/FacRej must be positive');
+    case (-5)
+        disp('--> Improper tolerance values');
+    case (-6)
+        disp('--> No of steps exceeds maximum bound');
+    case (-7)
+        disp('--> Step size too small: T + 10*H = T or H < Roundoff');
+    case (-8)
+        disp('--> Matrix is repeatedly singular');
+    otherwise
+        disp(['Unknown Error code: ', num2str(Code)]);
+end
+
+disp(['T=',num2str(T),' and H=',num2str(H)]);
+
+return
+
+
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+function [X] = ros_Solve(JVS, Pivot, X)
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+%  Template for the forward/backward substitution 
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+global Nsol ISTATUS
+
+X = JVS\X;
+Pivot(1) = 1;
+ISTATUS(Nsol) = ISTATUS(Nsol) + 1;
+
+return
+
+
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+function [ params ] = Ros2()
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+% --- AN L-STABLE METHOD, 2 stages, order 2
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+g = 1.0 + 1.0/sqrt(2.0);
+rosMethod = 1;
+%~~~> Name of the method
+ros_Name = 'ROS-2';
+%~~~> Number of stages
+ros_S = 2;
+
+%~~~> The coefficient matrices A and C are strictly lower triangular.
+%   The lower triangular (subdiagonal) elements are stored in row-wise order:
+%   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+%   The general mapping formula is:
+%       A(i,j) = ros_A( (i-1)*(i-2)/2 + j )
+%       C(i,j) = ros_C( (i-1)*(i-2)/2 + j )
+
+ros_A(1) = (1.0)/g;
+ros_C(1) = (-2.0)/g;
+%~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+%   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+ros_NewF(1) = true;
+ros_NewF(2) = true;
+%~~~> M_i = Coefficients for new step solution
+ros_M(1)= (3.0)/(2.0*g);
+ros_M(2)= (1.0)/(2.0*g);
+% E_i = Coefficients for error estimator
+ros_E(1) = 1.0/(2.0*g);
+ros_E(2) = 1.0/(2.0*g);
+%~~~> ros_ELO = estimator of local order - the minimum between the
+%    main and the embedded scheme orders plus one
+ros_ELO = 2.0;
+%~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+ros_Alpha(1) = 0.0;
+ros_Alpha(2) = 1.0;
+%~~~> Gamma_i = \sum_j  gamma_{i,j}
+ros_Gamma(1) = g;
+ros_Gamma(2) =-g;
+
+params = { ros_S, rosMethod, ros_A, ros_C, ros_M, ros_E, ...
+    ros_Alpha, ros_Gamma, ros_ELO, ros_NewF, ros_Name };
+
+return
+
+
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+function [ params ] = Ros3()
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+% --- AN L-STABLE METHOD, 3 stages, order 3, 2 function evaluations
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+rosMethod = 2;
+%~~~> Name of the method
+ros_Name = 'ROS-3';
+%~~~> Number of stages
+ros_S = 3;
+
+%~~~> The coefficient matrices A and C are strictly lower triangular.
+%   The lower triangular (subdiagonal) elements are stored in row-wise order:
+%   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+%   The general mapping formula is:
+%       A(i,j) = ros_A( (i-1)*(i-2)/2 + j )
+%       C(i,j) = ros_C( (i-1)*(i-2)/2 + j )
+
+ros_A(1)= 1.0;
+ros_A(2)= 1.0;
+ros_A(3)= 0.0;
+
+ros_C(1) = -0.10156171083877702091975600115545E+01;
+ros_C(2) =  0.40759956452537699824805835358067E+01;
+ros_C(3) =  0.92076794298330791242156818474003E+01;
+%~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+%   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+ros_NewF(1) = true;
+ros_NewF(2) = true;
+ros_NewF(3) = false;
+%~~~> M_i = Coefficients for new step solution
+ros_M(1) =  0.1E+01;
+ros_M(2) =  0.61697947043828245592553615689730E+01;
+ros_M(3) = -0.42772256543218573326238373806514;
+% E_i = Coefficients for error estimator
+ros_E(1) =  0.5;
+ros_E(2) = -0.29079558716805469821718236208017E+01;
+ros_E(3) =  0.22354069897811569627360909276199;
+%~~~> ros_ELO = estimator of local order - the minimum between the
+%    main and the embedded scheme orders plus 1
+ros_ELO = 3.0;
+%~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+ros_Alpha(1)= 0.0;
+ros_Alpha(2)= 0.43586652150845899941601945119356;
+ros_Alpha(3)= 0.43586652150845899941601945119356;
+%~~~> Gamma_i = \sum_j  gamma_{i,j}
+ros_Gamma(1)= 0.43586652150845899941601945119356;
+ros_Gamma(2)= 0.24291996454816804366592249683314;
+ros_Gamma(3)= 0.21851380027664058511513169485832E+01;
+
+params = { ros_S, rosMethod, ros_A, ros_C, ros_M, ros_E, ...
+    ros_Alpha, ros_Gamma, ros_ELO, ros_NewF, ros_Name };
+
+return
+
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+function [ params ] = Ros4()
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+%     L-STABLE ROSENBROCK METHOD OF ORDER 4, WITH 4 STAGES
+%     L-STABLE EMBEDDED ROSENBROCK METHOD OF ORDER 3
+%
+%      E. HAIRER AND G. WANNER, SOLVING ORDINARY DIFFERENTIAL
+%      EQUATIONS II. STIFF AND DIFFERENTIAL-ALGEBRAIC PROBLEMS.
+%      SPRINGER SERIES IN COMPUTATIONAL MATHEMATICS,
+%      SPRINGER-VERLAG (1990)
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+rosMethod = 3;
+%~~~> Name of the method
+ros_Name = 'ROS-4';
+%~~~> Number of stages
+ros_S = 4;
+
+%~~~> The coefficient matrices A and C are strictly lower triangular.
+%   The lower triangular (subdiagonal) elements are stored in row-wise order:
+%   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+%   The general mapping formula is:
+%       A(i,j) = ros_A( (i-1)*(i-2)/2 + j )
+%       C(i,j) = ros_C( (i-1)*(i-2)/2 + j )
+
+ros_A(1) = 0.2000000000000000E+01;
+ros_A(2) = 0.1867943637803922E+01;
+ros_A(3) = 0.2344449711399156;
+ros_A(4) = ros_A(2);
+ros_A(5) = ros_A(3);
+ros_A(6) = 0.0;
+
+ros_C(1) =-0.7137615036412310E+01;
+ros_C(2) = 0.2580708087951457E+01;
+ros_C(3) = 0.6515950076447975;
+ros_C(4) =-0.2137148994382534E+01;
+ros_C(5) =-0.3214669691237626;
+ros_C(6) =-0.6949742501781779;
+%~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+%   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+ros_NewF(1)  = true;
+ros_NewF(2)  = true;
+ros_NewF(3)  = true;
+ros_NewF(4)  = false;
+%~~~> M_i = Coefficients for new step solution
+ros_M(1) = 0.2255570073418735E+01;
+ros_M(2) = 0.2870493262186792;
+ros_M(3) = 0.4353179431840180;
+ros_M(4) = 0.1093502252409163E+01;
+%~~~> E_i  = Coefficients for error estimator
+ros_E(1) =-0.2815431932141155;
+ros_E(2) =-0.7276199124938920E-01;
+ros_E(3) =-0.1082196201495311;
+ros_E(4) =-0.1093502252409163E+01;
+%~~~> ros_ELO  = estimator of local order - the minimum between the
+%    main and the embedded scheme orders plus 1
+ros_ELO  = 4.0;
+%~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+ros_Alpha(1) = 0.0;
+ros_Alpha(2) = 0.1145640000000000E+01;
+ros_Alpha(3) = 0.6552168638155900;
+ros_Alpha(4) = ros_Alpha(3);
+%~~~> Gamma_i = \sum_j  gamma_{i,j}
+ros_Gamma(1) = 0.5728200000000000;
+ros_Gamma(2) =-0.1769193891319233E+01;
+ros_Gamma(3) = 0.7592633437920482;
+ros_Gamma(4) =-0.1049021087100450;
+
+params = { ros_S, rosMethod, ros_A, ros_C, ros_M, ros_E, ...
+    ros_Alpha, ros_Gamma, ros_ELO, ros_NewF, ros_Name };
+
+return
+
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+function [ params ] = Rodas3()
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+% --- A STIFFLY-STABLE METHOD, 4 stages, order 3
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+rosMethod = 4;
+%~~~> Name of the method
+ros_Name = 'RODAS-3';
+%~~~> Number of stages
+ros_S = 4;
+
+%~~~> The coefficient matrices A and C are strictly lower triangular.
+%   The lower triangular (subdiagonal) elements are stored in row-wise order:
+%   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+%   The general mapping formula is:
+%       A(i,j) = ros_A( (i-1)*(i-2)/2 + j )
+%       C(i,j) = ros_C( (i-1)*(i-2)/2 + j )
+
+ros_A(1) = 0.0;
+ros_A(2) = 2.0;
+ros_A(3) = 0.0;
+ros_A(4) = 2.0;
+ros_A(5) = 0.0;
+ros_A(6) = 1.0;
+
+ros_C(1) = 4.0;
+ros_C(2) = 1.0;
+ros_C(3) =-1.0;
+ros_C(4) = 1.0;
+ros_C(5) =-1.0;
+ros_C(6) =-(8.0/3.0);
+
+%~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+%   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+ros_NewF(1)  = true;
+ros_NewF(2)  = false;
+ros_NewF(3)  = true;
+ros_NewF(4)  = true;
+%~~~> M_i = Coefficients for new step solution
+ros_M(1) = 2.0;
+ros_M(2) = 0.0;
+ros_M(3) = 1.0;
+ros_M(4) = 1.0;
+%~~~> E_i  = Coefficients for error estimator
+ros_E(1) = 0.0;
+ros_E(2) = 0.0;
+ros_E(3) = 0.0;
+ros_E(4) = 1.0;
+%~~~> ros_ELO  = estimator of local order - the minimum between the
+%    main and the embedded scheme orders plus 1
+ros_ELO  = 3.0;
+%~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+ros_Alpha(1) = 0.0;
+ros_Alpha(2) = 0.0;
+ros_Alpha(3) = 1.0;
+ros_Alpha(4) = 1.0;
+%~~~> Gamma_i = \sum_j  gamma_{i,j}
+ros_Gamma(1) = 0.5;
+ros_Gamma(2) = 1.5;
+ros_Gamma(3) = 0.0;
+ros_Gamma(4) = 0.0;
+
+params = { ros_S, rosMethod, ros_A, ros_C, ros_M, ros_E, ...
+    ros_Alpha, ros_Gamma, ros_ELO, ros_NewF, ros_Name };
+
+return
+
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+function [ params ] = Rodas4()
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+%     STIFFLY-STABLE ROSENBROCK METHOD OF ORDER 4, WITH 6 STAGES
+%
+%      E. HAIRER AND G. WANNER, SOLVING ORDINARY DIFFERENTIAL
+%      EQUATIONS II. STIFF AND DIFFERENTIAL-ALGEBRAIC PROBLEMS.
+%      SPRINGER SERIES IN COMPUTATIONAL MATHEMATICS,
+%      SPRINGER-VERLAG (1996)
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+rosMethod = 5;
+%~~~> Name of the method
+ros_Name = 'RODAS-4';
+%~~~> Number of stages
+ros_S = 6;
+
+%~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+ros_Alpha(1) = 0.000;
+ros_Alpha(2) = 0.386;
+ros_Alpha(3) = 0.210;
+ros_Alpha(4) = 0.630;
+ros_Alpha(5) = 1.000;
+ros_Alpha(6) = 1.000;
+
+%~~~> Gamma_i = \sum_j  gamma_{i,j}
+ros_Gamma(1) = 0.2500000000000000;
+ros_Gamma(2) =-0.1043000000000000;
+ros_Gamma(3) = 0.1035000000000000;
+ros_Gamma(4) =-0.3620000000000023E-01;
+ros_Gamma(5) = 0.0;
+ros_Gamma(6) = 0.0;
+
+%~~~> The coefficient matrices A and C are strictly lower triangular.
+%   The lower triangular (subdiagonal) elements are stored in row-wise order:
+%   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+%   The general mapping formula is:  A(i,j) = ros_A( (i-1)*(i-2)/2 + j )
+%                  C(i,j) = ros_C( (i-1)*(i-2)/2 + j )
+
+ros_A(1) = 0.1544000000000000E+01;
+ros_A(2) = 0.9466785280815826;
+ros_A(3) = 0.2557011698983284;
+ros_A(4) = 0.3314825187068521E+01;
+ros_A(5) = 0.2896124015972201E+01;
+ros_A(6) = 0.9986419139977817;
+ros_A(7) = 0.1221224509226641E+01;
+ros_A(8) = 0.6019134481288629E+01;
+ros_A(9) = 0.1253708332932087E+02;
+ros_A(10) =-0.6878860361058950;
+ros_A(11) = ros_A(7);
+ros_A(12) = ros_A(8);
+ros_A(13) = ros_A(9);
+ros_A(14) = ros_A(10);
+ros_A(15) = 1.0;
+
+ros_C(1) =-0.5668800000000000E+01;
+ros_C(2) =-0.2430093356833875E+01;
+ros_C(3) =-0.2063599157091915;
+ros_C(4) =-0.1073529058151375;
+ros_C(5) =-0.9594562251023355E+01;
+ros_C(6) =-0.2047028614809616E+02;
+ros_C(7) = 0.7496443313967647E+01;
+ros_C(8) =-0.1024680431464352E+02;
+ros_C(9) =-0.3399990352819905E+02;
+ros_C(10) = 0.1170890893206160E+02;
+ros_C(11) = 0.8083246795921522E+01;
+ros_C(12) =-0.7981132988064893E+01;
+ros_C(13) =-0.3152159432874371E+02;
+ros_C(14) = 0.1631930543123136E+02;
+ros_C(15) =-0.6058818238834054E+01;
+
+%~~~> M_i = Coefficients for new step solution
+ros_M(1) = ros_A(7);
+ros_M(2) = ros_A(8);
+ros_M(3) = ros_A(9);
+ros_M(4) = ros_A(10);
+ros_M(5) = 1.0;
+ros_M(6) = 1.0;
+
+%~~~> E_i  = Coefficients for error estimator
+ros_E(1) = 0.0;
+ros_E(2) = 0.0;
+ros_E(3) = 0.0;
+ros_E(4) = 0.0;
+ros_E(5) = 0.0;
+ros_E(6) = 1.0;
+
+%~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+%   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+ros_NewF(1) = true;
+ros_NewF(2) = true;
+ros_NewF(3) = true;
+ros_NewF(4) = true;
+ros_NewF(5) = true;
+ros_NewF(6) = true;
+
+%~~~> ros_ELO  = estimator of local order - the minimum between the
+%        main and the embedded scheme orders plus 1
+ros_ELO = 4.0;
+
+params = { ros_S, rosMethod, ros_A, ros_C, ros_M, ros_E, ...
+    ros_Alpha, ros_Gamma, ros_ELO, ros_NewF, ros_Name };
+
+return
+
+% End of INTEGRATE function
+% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/rosenbrock_adj.c
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/rosenbrock_adj.c	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/rosenbrock_adj.c	(revision 2696)
@@ -0,0 +1,2470 @@
+#define MAX(a,b) ( ((a) >= (b)) ? (a):(b)  )
+#define MIN(b,c) ( ((b) < (c))  ? (b):(c)  )
+#define ABS(x)	 ( ((x) >= 0 )  ? (x):(-x) )
+#define SQRT(d)  ( pow((d),0.5) )
+
+/* Numerical Constants */
+#define ZERO	    (KPP_REAL)0.0
+#define ONE	    (KPP_REAL)1.0
+#define HALF        (KPP_REAL)0.5
+#define DeltaMin    (KPP_REAL)1.0e-5
+enum boolean { FALSE=0, TRUE=1 };
+
+/*  Statistics on the work performed by the Rosenbrock method */
+enum statistics { Nfun=1, Njac=2, Nstp=3, Nacc=4, Nrej=5, Ndec=6, Nsol=7, 
+		  Nsng=8, Ntexit=1, Nhexit=2, Nhnew=3 };
+
+/*~~~>  Parameters of the Rosenbrock method, up to 6 stages */
+int ros_S, rosMethod;
+enum ros_Params { RS2=1, RS3=2, RS4=3, RD3=4, RD4=5 };
+KPP_REAL ros_A[15], ros_C[15], ros_M[6], ros_E[6], ros_Alpha[6], ros_Gamma[6], 
+       ros_ELO;
+int ros_NewF[6]; /* Holds Boolean values */
+char ros_Name[12]; /* Length 12 */
+
+/*~~~>  Types of Adjoints Implemented */
+enum adjoint { Adj_none=1, Adj_discrete=2, Adj_continuous=3, 
+	       Adj_simple_continuous=4 };
+
+/*~~~>  Checkpoints in memory */
+int bufsize = 200000;
+int stack_ptr; /* last written entry */
+KPP_REAL *chk_H, *chk_T;
+KPP_REAL **chk_Y, **chk_K, **chk_J; /* 2D arrays */
+KPP_REAL **chk_dY, **chk_d2Y; /* 2D arrays */
+
+/* Function Headers */
+void INTEGRATE_ADJ(int NADJ, KPP_REAL Y[], KPP_REAL Lambda[][NVAR], 
+		   KPP_REAL TIN, KPP_REAL TOUT, KPP_REAL ATOL_adj[][NVAR], 
+		   KPP_REAL RTOL_adj[][NVAR], int ICNTRL_U[], 
+		   KPP_REAL RCNTRL_U[], int ISTATUS_U[], KPP_REAL RSTATUS_U[]);
+int RosenbrockADJ( KPP_REAL Y[], int NADJ, KPP_REAL Lambda[][NVAR],
+		   KPP_REAL Tstart, KPP_REAL Tend, KPP_REAL AbsTol[], 
+		   KPP_REAL RelTol[], KPP_REAL AbsTol_adj[][NVAR], 
+		   KPP_REAL RelTol_adj[][NVAR], KPP_REAL RCNTRL[], 
+		   int ICNTRL[], KPP_REAL RSTATUS[], int ISTATUS[] );
+void ros_AllocateDBuffers( int S, int SaveLU );
+void ros_FreeDBuffers( int SaveLU );
+void ros_AllocateCBuffers();
+void ros_FreeCBuffers();
+void ros_DPush( int S, KPP_REAL T, KPP_REAL H, KPP_REAL Ystage[], 
+		KPP_REAL K[], KPP_REAL E[], int P[], int SaveLU );
+void ros_DPop( int S, KPP_REAL* T, KPP_REAL* H, KPP_REAL* Ystage, 
+	       KPP_REAL* K, KPP_REAL* E, int* P, int SaveLU );
+void ros_CPush( KPP_REAL T, KPP_REAL H, KPP_REAL Y[], KPP_REAL dY[], 
+		KPP_REAL d2Y[] );
+void ros_CPop( KPP_REAL T, KPP_REAL H, KPP_REAL Y[], KPP_REAL dY[], 
+	       KPP_REAL d2Y[] );
+int ros_ErrorMsg( int Code, KPP_REAL T, KPP_REAL H);
+int ros_FwdInt (KPP_REAL Y[], KPP_REAL Tstart, KPP_REAL Tend, KPP_REAL T, 
+		KPP_REAL AbsTol[], KPP_REAL RelTol[], int AdjointType, 
+		KPP_REAL Hmin, KPP_REAL Hstart, KPP_REAL Hmax, 
+		KPP_REAL Roundoff, int ISTATUS[], int Max_no_steps, 
+		KPP_REAL RSTATUS[], int Autonomous, int VectorTol, 
+		KPP_REAL FacMax, KPP_REAL FacMin, KPP_REAL FacSafe, 
+		KPP_REAL FacRej, int SaveLU);
+int ros_DadjInt ( int NADJ, KPP_REAL Lambda[][NVAR], KPP_REAL Tstart, 
+		  KPP_REAL Tend, KPP_REAL T, int SaveLU, int ISTATUS[], 
+		  KPP_REAL Roundoff, int Autonomous);
+int ros_CadjInt ( int NADJ, KPP_REAL Y[][NVAR], KPP_REAL Tstart, KPP_REAL Tend,
+		  KPP_REAL T, KPP_REAL AbsTol_adj[][NVAR], 
+		  KPP_REAL RelTol_adj[][NVAR], KPP_REAL RSTATUS[], 
+		  KPP_REAL Hmin, KPP_REAL Hmax, KPP_REAL Hstart, 
+		  KPP_REAL Roundoff, int Max_no_steps, int Autonomous, 
+		  int VectorTol, KPP_REAL FacMax, KPP_REAL FacMin, 
+		  KPP_REAL FacSafe, KPP_REAL FacRej, int ISTATUS[] );
+int ros_SimpleCadjInt ( int NADJ, KPP_REAL Y[][NVAR], KPP_REAL Tstart, 
+			KPP_REAL Tend, KPP_REAL T, int ISTATUS[], 
+			int Autonomous,	KPP_REAL Roundoff );
+KPP_REAL ros_ErrorNorm ( KPP_REAL Y[], KPP_REAL Ynew[], KPP_REAL Yerr[], 
+		       KPP_REAL AbsTol[], KPP_REAL RelTol[], int VectorTol );
+void ros_FunTimeDerivative ( KPP_REAL T, KPP_REAL Roundoff, KPP_REAL Y[], 
+			     KPP_REAL Fcn0[], KPP_REAL dFdT[], int ISTATUS[] );
+void ros_JacTimeDerivative ( KPP_REAL T, KPP_REAL Roundoff, KPP_REAL Y[], 
+			     KPP_REAL Jac0[], KPP_REAL dJdT[], int ISTATUS[] );
+int ros_PrepareMatrix ( KPP_REAL H, int Direction, KPP_REAL gam, 
+			 KPP_REAL Jac0[], KPP_REAL Ghimj[], int Pivot[], 
+			 int ISTATUS[] );
+void ros_Decomp( KPP_REAL A[], int Pivot[], int* ising, int ISTATUS[] );
+void ros_Solve( char How, KPP_REAL A[], int Pivot[], KPP_REAL b[], 
+		int ISTATUS[] );
+void ros_cadj_Y( KPP_REAL T, KPP_REAL Y[] );
+void ros_Hermite3( KPP_REAL a, KPP_REAL b, KPP_REAL T, KPP_REAL Ya[], 
+		   KPP_REAL Yb[], KPP_REAL Ja[], KPP_REAL Jb[], KPP_REAL Y[] );
+void ros_Hermite5( KPP_REAL a, KPP_REAL b, KPP_REAL T, KPP_REAL Ya[], 
+		   KPP_REAL Yb[], KPP_REAL Ja[], KPP_REAL Jb[], KPP_REAL Ha[], 
+		   KPP_REAL Hb[], KPP_REAL Y[] );
+void Ros2();
+void Ros3();
+void Ros4();
+void Rodas3();
+void Rodas4();
+void JacTemplate( KPP_REAL T, KPP_REAL Y[], KPP_REAL Jcb[] );
+void HessTemplate( KPP_REAL T, KPP_REAL Y[], KPP_REAL Hes[] );
+void FunTemplate( KPP_REAL T, KPP_REAL Y[], KPP_REAL Fun [] ); 
+void WSCAL( int N, KPP_REAL Alpha, KPP_REAL X[], int incX );
+void WAXPY( int N, KPP_REAL Alpha, KPP_REAL X[], int incX, KPP_REAL Y[], 
+	    int incY );
+void WCOPY( int N, KPP_REAL X[], int incX, KPP_REAL Y[], int incY );
+KPP_REAL WLAMCH( char C );
+void Update_SUN();
+void Update_RCONST();
+void Fun( KPP_REAL Y[], KPP_REAL FIX[], KPP_REAL RCONST[], KPP_REAL Ydot[] );
+void Jac_SP( KPP_REAL Y[], KPP_REAL FIX[], KPP_REAL RCONST[], KPP_REAL Ydot[]);
+void Jac_SP_Vec( KPP_REAL Jac[], KPP_REAL Fcn[], KPP_REAL K[] );
+void JacTR_SP_Vec( KPP_REAL Jac[], KPP_REAL Fcn[], KPP_REAL K[] );
+void HessTR_Vec(KPP_REAL Hess[], KPP_REAL U1[], KPP_REAL U2[], KPP_REAL HTU[]);
+void KppSolve( KPP_REAL A[], KPP_REAL b[] );
+int KppDecomp( KPP_REAL A[] );
+void KppSolveTR( KPP_REAL JVS[], KPP_REAL X[], KPP_REAL XX[] );
+void Hessian( KPP_REAL V[], KPP_REAL F[], KPP_REAL RCT[], KPP_REAL Hess[] );
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void INTEGRATE_ADJ( int NADJ, KPP_REAL Y[], KPP_REAL Lambda[][NVAR], 
+		    KPP_REAL TIN, KPP_REAL TOUT, KPP_REAL ATOL_adj[][NVAR], 
+		    KPP_REAL RTOL_adj[][NVAR], int ICNTRL_U[], 
+		    KPP_REAL RCNTRL_U[], int ISTATUS_U[], 
+		    KPP_REAL RSTATUS_U[] ) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+/*  Local Variables */
+  KPP_REAL RCNTRL[20], RSTATUS[20];
+  int ICNTRL[20], ISTATUS[20], IERR, i;
+
+  for( i = 0; i < 20; i++ ) {
+    ICNTRL[i]  = 0;
+    RCNTRL[i]  = ZERO;
+    ISTATUS[i] = 0;
+    RSTATUS[i] = ZERO;
+  }
+
+/*~~~> fine-tune the integrator:
+  ICNTRL(1) = 0       ! 0 = non-autonomous, 1 = autonomous
+  ICNTRL(2) = 1       ! 0 = scalar, 1 = vector tolerances
+  RCNTRL(3) = STEPMIN ! starting step
+  ICNTRL(3) = 5       ! choice of the method for forward integration
+  ICNTRL(6) = 1       ! choice of the method for continuous adjoint
+  ICNTRL(7) = 2       ! 1=none, 2=discrete, 3=full continuous, 
+                        4=simplified continuous adjoint
+  ICNTRL(8) = 1       ! Save fwd LU factorization: 0=*don't* save, 1=save */
+
+/* if optional parameters are given, and if they are >=0, then they overwrite 
+   default settings */
+//  if(ICNTRL_U != NULL) {
+//    for(i=0; i<20; i++)
+//	if(ICNTRL_U[i] > 0)
+//	  ICNTRL[i] = ICNTRL_U[i];
+//    } /* end for */
+//  } /* end if */
+
+//  if(RCNTRL_U != NULL) {
+//    for(i=0; i<20; i++)
+//	if(RCNTRL_U[i] > 0)
+//	  RCNTRL[i] = RCNTRL_U[i];
+//    } /* end for */
+//  } /* end if */
+
+  IERR = RosenbrockADJ( Y, NADJ, Lambda, TIN, TOUT, ATOL, RTOL, ATOL_adj, 
+			RTOL_adj, RCNTRL, ICNTRL, RSTATUS, ISTATUS );
+
+  if (IERR < 0)
+    printf( "RosenbrockADJ: Unsucessful step at T=%f (IERR=%d)", TIN, IERR );
+
+  STEPMIN = RSTATUS[Nhexit];
+
+/* if optional parameters are given for output 
+         copy to them to return information */
+//  if(ISTATUS_U != NULL)
+//    for(i=0; i<20; i++)
+//	ISTATUS_U[i] = ISTATUS[i];
+//  }
+
+//  if(RSTATUS_U != NULL)
+//    for(i=0; i<20; i++)
+//	RSTATUS_U[i] = RSTATUS[i];
+//  }
+
+} /* End of INTEGRATE_ADJ */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+int RosenbrockADJ( KPP_REAL Y[], int NADJ, KPP_REAL Lambda[][NVAR],
+		   KPP_REAL Tstart, KPP_REAL Tend, KPP_REAL AbsTol[], 
+		   KPP_REAL RelTol[], KPP_REAL AbsTol_adj[][NVAR],
+		   KPP_REAL RelTol_adj[][NVAR], KPP_REAL RCNTRL[],
+		   int ICNTRL[], KPP_REAL RSTATUS[], int ISTATUS[] ) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+    ADJ = Adjoint of the Tangent Linear Model of a Rosenbrock Method
+
+    Solves the system y'=F(t,y) using a RosenbrockADJ method defined by:
+
+     G = 1/(H*gamma(1)) - Jac(t0,Y0)
+     T_i = t0 + Alpha(i)*H
+     Y_i = Y0 + \sum_{j=1}^{i-1} A(i,j)*K_j
+     G * K_i = Fun( T_i, Y_i ) + \sum_{j=1}^S C(i,j)/H * K_j +
+         gamma(i)*dF/dT(t0, Y0)
+     Y1 = Y0 + \sum_{j=1}^S M(j)*K_j 
+
+    For details on RosenbrockADJ methods and their implementation consult:
+      E. Hairer and G. Wanner
+      "Solving ODEs II. Stiff and differential-algebraic problems".
+      Springer series in computational mathematics, Springer-Verlag, 1996.  
+    The codes contained in the book inspired this implementation.
+
+    (C)  Adrian Sandu, August 2004
+    Virginia Polytechnic Institute and State University
+    Contact: sandu@cs.vt.edu
+    Revised by Philipp Miehe and Adrian Sandu, May 2006
+    Translation F90 to C by Paul Eller, April 2007
+    This implementation is part of KPP - the Kinetic PreProcessor
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+~~~>   INPUT ARGUMENTS:
+
+-     Y[NVAR]    = vector of initial conditions (at T=Tstart)
+      NADJ       -> dimension of linearized system,
+                   i.e. the number of sensitivity coefficients
+-     Lambda[NVAR][NADJ] -> vector of initial sensitivity conditions 
+                            (at T=Tstart)
+-    [Tstart,Tend]  = time range of integration
+     (if Tstart>Tend the integration is performed backwards in time)
+-    RelTol, AbsTol = user precribed accuracy
+- void Fun( T, Y, Ydot ) = ODE function,
+                       returns Ydot = Y' = F(T,Y)
+- void Jac( T, Y, Jcb ) = Jacobian of the ODE function,
+                       returns Jcb = dF/dY
+-    ICNTRL[0:9]    = integer inputs parameters
+-    RCNTRL[0:9]    = real inputs parameters
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+~~~>     OUTPUT ARGUMENTS:
+
+-    Y[NVAR]    -> vector of final states (at T->Tend)
+-    Lambda[NVAR][NADJ] -> vector of final sensitivities (at T=Tend)
+-    ICNTRL[9:18]   -> integer output parameters
+-    RCNTRL[9:18]   -> real output parameters
+-    IERR       -> job status upon return
+       - succes (positive value) or failure (negative value) -
+           =  1 : Success
+           = -1 : Improper value for maximal no of steps
+           = -2 : Selected RosenbrockADJ method not implemented
+           = -3 : Hmin/Hmax/Hstart must be positive
+           = -4 : FacMin/FacMax/FacRej must be positive
+           = -5 : Improper tolerance values
+           = -6 : No of steps exceeds maximum bound
+           = -7 : Step size too small
+           = -8 : Matrix is repeatedly singular
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+~~~>     INPUT PARAMETERS:
+
+    Note: For input parameters equal to zero the default values of the
+       corresponding variables are used.
+
+    ICNTRL[0]   = 1: F = F(y)   Independent of T (AUTONOMOUS)
+              = 0: F = F(t,y) Depends on T (NON-AUTONOMOUS)
+
+    ICNTRL[1]   = 0: AbsTol, RelTol are NVAR-dimensional vectors
+              = 1:  AbsTol, RelTol are scalars
+
+    ICNTRL[2]  -> selection of a particular Rosenbrock method
+        = 0 :  default method is Rodas3
+        = 1 :  method is  Ros2
+        = 2 :  method is  Ros3 
+        = 3 :  method is  Ros4 
+        = 4 :  method is  Rodas3
+        = 5:   method is  Rodas4
+
+    ICNTRL[3]  -> maximum number of integration steps
+        For ICNTRL[4]=0) the default value of BUFSIZE is used
+
+    ICNTRL[5]  -> selection of a particular Rosenbrock method for the
+                continuous adjoint integration - for cts adjoint it
+                can be different than the forward method ICNTRL(3)
+         Note 1: to avoid interpolation errors (which can be huge!) 
+                   it is recommended to use only ICNTRL[6] = 2 or 4
+         Note 2: the performance of the full continuous adjoint
+                   strongly depends on the forward solution accuracy Abs/RelTol
+
+    ICNTRL[6] -> Type of adjoint algorithm
+         = 0 : default is discrete adjoint ( of method ICNTRL[3] )
+         = 1 : no adjoint
+         = 2 : discrete adjoint ( of method ICNTRL[3] )
+         = 3 : fully adaptive continuous adjoint ( with method ICNTRL[6] )
+         = 4 : simplified continuous adjoint ( with method ICNTRL[6] )
+
+    ICNTRL[7]  -> checkpointing the LU factorization at each step:
+        ICNTRL[7]=0 : do *not* save LU factorization (the default)
+        ICNTRL[7]=1 : save LU factorization
+        Note: if ICNTRL[7]=1 the LU factorization is *not* saved
+
+~~~>  Real input parameters:
+
+    RCNTRL[0]  -> Hmin, lower bound for the integration step size
+          It is strongly recommended to keep Hmin = ZERO
+
+    RCNTRL[1]  -> Hmax, upper bound for the integration step size
+
+    RCNTRL[2]  -> Hstart, starting value for the integration step size
+
+    RCNTRL[3]  -> FacMin, lower bound on step decrease factor (default=0.2)
+
+    RCNTRL[4]  -> FacMax, upper bound on step increase factor (default=6)
+
+    RCNTRL[5]  -> FacRej, step decrease factor after multiple rejections
+            (default=0.1)
+
+    RCNTRL[6]  -> FacSafe, by which the new step is slightly smaller
+         than the predicted value  (default=0.9)
+
+    RCNTRL[7]  -> ThetaMin. If Newton convergence rate smaller
+                  than ThetaMin the Jacobian is not recomputed;
+                  (default=0.001)
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+~~~>     OUTPUT PARAMETERS:
+
+    Note: each call to RosenbrockADJ adds the corrent no. of fcn calls
+      to previous value of ISTATUS(1), and similar for the other params.
+      Set ISTATUS[0:9] = 0 before call to avoid this accumulation.
+
+    ISTATUS[0] = No. of function calls
+    ISTATUS[1] = No. of jacobian calls
+    ISTATUS[2] = No. of steps
+    ISTATUS[3] = No. of accepted steps
+    ISTATUS[4] = No. of rejected steps (except at the beginning)
+    ISTATUS[5] = No. of LU decompositions
+    ISTATUS[6] = No. of forward/backward substitutions
+    ISTATUS[7] = No. of singular matrix decompositions
+
+    RSTATUS[0]  -> Texit, the time corresponding to the 
+                   computed Y upon return
+    RSTATUS[1]  -> Hexit, last accepted step before exit
+    For multiple restarts, use Hexit as Hstart in the following run
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+/*~~~>  Local variables */
+  KPP_REAL Roundoff, FacMin, FacMax, FacRej, FacSafe;
+  KPP_REAL Hmin, Hmax, Hstart;
+  KPP_REAL Texit=0.0;
+  int i, UplimTol, Max_no_steps=0, IERR;
+  int AdjointType=0, CadjMethod=0;
+  int Autonomous, VectorTol, SaveLU; /* Holds boolean values */
+
+  stack_ptr = -1;
+
+/*~~~>  Initialize statistics */
+  for(i=0; i<20; i++) {
+    ISTATUS[i] = 0;
+    RSTATUS[i] = ZERO;
+  }
+
+/*~~~>  Autonomous or time dependent ODE. Default is time dependent. */
+  Autonomous = !(ICNTRL[0] == 0);
+
+/*~~~> For Scalar tolerances(ICNTRL[1] != 0) the code uses AbsTol[0] and 
+         RelTol[0]
+   For Vector tolerances(ICNTRL[1] == 0) the code uses AbsTol[1:NVAR] and 
+     RelTol[1:NVAR] */
+
+  if (ICNTRL[1] == 0) {
+    VectorTol = TRUE;
+    UplimTol  = NVAR;
+  }
+  else { 
+    VectorTol = FALSE;
+    UplimTol  = 1;
+  }
+
+/*~~~>   Initialize the particular Rosenbrock method selected */
+  switch( ICNTRL[2] ) {
+    case 0:
+    case 4:
+      Rodas3();
+      break;
+    case 1:
+      Ros2();
+      break;
+    case 2:
+      Ros3();
+      break;
+    case 3:
+      Ros4();
+      break;
+    case 5:
+      Rodas4();
+      break;
+    default:
+      printf( "Unknown Rosenbrock method: ICNTRL[2]=%d", ICNTRL[2] );
+      return ros_ErrorMsg(-2, Tstart, ZERO);
+  } /* End switch */
+
+/*~~~>   The maximum number of steps admitted */
+  if (ICNTRL[3] == 0)
+    Max_no_steps = bufsize - 1;
+  else if (Max_no_steps > 0)
+    Max_no_steps = ICNTRL[3];
+  else {
+    printf("User-selected max no. of steps: ICNTRL[3]=%d",ICNTRL[3] );
+    return ros_ErrorMsg(-1,Tstart,ZERO);
+  }
+
+/*~~~>The particular Rosenbrock method chosen for integrating the cts adjoint*/
+  if (ICNTRL[5] == 0)
+    CadjMethod = 4;
+  else if ( (ICNTRL[5] >= 1) && (ICNTRL[5] <= 5) )
+    CadjMethod = ICNTRL[5];
+  else {
+    printf( "Unknown CADJ Rosenbrock method: ICNTRL[5]=%d", CadjMethod );
+    return ros_ErrorMsg(-2,Tstart,ZERO);
+  }
+
+/*~~~>  Discrete or continuous adjoint formulation */
+  if ( ICNTRL[6] == 0 )
+    AdjointType = Adj_discrete;
+  else if ( (ICNTRL[6] >= 1) && (ICNTRL[6] <= 4) )
+    AdjointType = ICNTRL[6];
+  else {
+    printf( "User-selected adjoint type: ICNTRL[6]=%d", AdjointType );
+    return ros_ErrorMsg(-9,Tstart,ZERO);
+  }
+
+/*~~~> Save or not the forward LU factorization */
+  SaveLU = (ICNTRL[7] != 0);
+
+/*~~~>  Unit roundoff (1+Roundoff>1)  */
+  Roundoff = WLAMCH('E');
+
+/*~~~>  Lower bound on the step size: (positive value) */
+  if (RCNTRL[0] == ZERO)
+    Hmin = ZERO;
+  else if (RCNTRL[0] > ZERO)
+    Hmin = RCNTRL[0];
+  else {
+    printf( "User-selected Hmin: RCNTRL[0]=%f", RCNTRL[0] );
+    return ros_ErrorMsg(-3,Tstart,ZERO);
+  }
+
+/*~~~>  Upper bound on the step size: (positive value) */
+  if (RCNTRL[1] == ZERO)
+    Hmax = ABS(Tend-Tstart);
+  else if (RCNTRL[1] > ZERO)
+    Hmax = MIN(ABS(RCNTRL[1]),ABS(Tend-Tstart));
+  else {
+    printf( "User-selected Hmax: RCNTRL[1]=%f", RCNTRL[1] );
+    return ros_ErrorMsg(-3,Tstart,ZERO);
+  }
+
+/*~~~>  Starting step size: (positive value) */
+  if (RCNTRL[2] == ZERO) {
+    Hstart = MAX(Hmin,DeltaMin);
+  }
+  else if (RCNTRL[2] > ZERO)
+    Hstart = MIN(ABS(RCNTRL[2]),ABS(Tend-Tstart));
+  else {
+    printf( "User-selected Hstart: RCNTRL[2]=%f", RCNTRL[2] );
+    return ros_ErrorMsg(-3,Tstart,ZERO);
+  }
+
+/*~~~>  Step size can be changed s.t.  FacMin < Hnew/Hold < FacMax */
+  if (RCNTRL[3] == ZERO)
+    FacMin = (KPP_REAL)0.2;
+  else if (RCNTRL[3] > ZERO)
+    FacMin = RCNTRL[3];
+  else {
+    printf( "User-selected FacMin: RCNTRL[3]=%f", RCNTRL[3] );
+    return ros_ErrorMsg(-4,Tstart,ZERO);
+  }
+  if (RCNTRL[4] == ZERO)
+    FacMax = (KPP_REAL)6.0;
+  else if (RCNTRL[4] > ZERO)
+    FacMax = RCNTRL[4];
+  else {
+    printf( "User-selected FacMax: RCNTRL[4]=%f", RCNTRL[4] );
+    return ros_ErrorMsg(-4,Tstart,ZERO);
+  }
+
+/*~~~>   FacRej: Factor to decrease step after 2 succesive rejections */
+  if (RCNTRL[5] == ZERO)
+    FacRej = (KPP_REAL)0.1;
+  else if (RCNTRL[5] > ZERO)
+    FacRej = RCNTRL[5];
+  else {
+    printf( "User-selected FacRej: RCNTRL[5]=%f", RCNTRL[5] );
+    return ros_ErrorMsg(-4,Tstart,ZERO);
+  }
+
+/*~~~>   FacSafe: Safety Factor in the computation of new step size */
+  if (RCNTRL[6] == ZERO)
+    FacSafe = (KPP_REAL)0.9;
+  else if (RCNTRL[6] > ZERO)
+    FacSafe = RCNTRL[6];
+  else {
+    printf( "User-selected FacSafe: RCNTRL[6]=%f", RCNTRL[6] );
+    return ros_ErrorMsg(-4,Tstart,ZERO);
+  }
+
+/*~~~>  Check if tolerances are reasonable */
+  for(i=0; i < UplimTol; i++) {
+    if ( (AbsTol[i] <= ZERO) || (RelTol[i] <= (KPP_REAL)10.0*Roundoff)
+	 || (RelTol[i] >= (KPP_REAL)1.0) ) {
+      printf( " AbsTol[%d] = %f", i, AbsTol[i] );
+      printf( " RelTol[%d] = %f", i, RelTol[i] );
+      return ros_ErrorMsg(-5,Tstart,ZERO);
+    }
+  }
+
+/*~~~>  Allocate checkpoint space or open checkpoint files */
+  if (AdjointType == Adj_discrete) {
+    ros_AllocateDBuffers( ros_S, SaveLU );
+  }
+  else if ( (AdjointType == Adj_continuous) || 
+	    (AdjointType == Adj_simple_continuous) ) {
+    ros_AllocateCBuffers();
+  }
+
+/*~~~>  CALL Forward Rosenbrock method */
+  IERR = ros_FwdInt(Y, Tstart, Tend, Texit, AbsTol, RelTol, AdjointType, Hmin,
+		    Hstart, Hmax, Roundoff, ISTATUS, Max_no_steps, 
+		    RSTATUS, Autonomous, VectorTol, FacMax, FacMin,
+		    FacSafe, FacRej, SaveLU);
+
+  printf( "\n\nFORWARD STATISTICS\n" );
+  printf( "Step=%d Acc=%d Rej=%d Singular=%d\n\n", Nstp, Nacc, Nrej, Nsng );
+
+/*~~~>  If Forward integration failed return */
+  if (IERR<0)
+    return IERR;
+
+/*~~~>   Initialize the particular Rosenbrock method for continuous adjoint */
+  if ( (AdjointType == Adj_continuous) || 
+       (AdjointType == Adj_simple_continuous) ) {
+    switch (CadjMethod) {
+      case 1:
+	Ros2();
+	break;
+      case 2:
+	Ros3();
+	break;
+      case 3:
+	Ros4();
+	break;
+      case 4:
+	Rodas3();
+	break;
+      case 5:
+	Rodas4();
+	break;
+      default:
+	printf( "Unknown Rosenbrock method: ICNTRL[2]=%d", ICNTRL[2] );
+	return ros_ErrorMsg(-2,Tstart,ZERO);
+    }
+  } /* End switch */
+
+  switch( AdjointType ) {
+    case Adj_discrete:
+      IERR = ros_DadjInt (NADJ, Lambda, Tstart, Tend, Texit, SaveLU, ISTATUS, 
+			  Roundoff, Autonomous );
+      break;
+    case Adj_continuous:
+      IERR = ros_CadjInt (NADJ, Lambda, Tend, Tstart, Texit, AbsTol_adj, 
+			  RelTol_adj, RSTATUS, Hmin, Hmax, Hstart, Roundoff,
+			  Max_no_steps, Autonomous, VectorTol, FacMax, FacMin,
+			  FacSafe, FacRej, ISTATUS);
+      break;
+    case Adj_simple_continuous:
+      IERR = ros_SimpleCadjInt (NADJ, Lambda, Tstart, Tend, Texit, ISTATUS, 
+				Autonomous, Roundoff);
+  } /* End switch for AdjointType */
+
+  printf( "ADJOINT STATISTICS\n" );
+  printf( "Step=%d Acc=%d Rej=%d Singular=%d\n",Nstp,Nacc,Nrej,Nsng );
+
+/*~~~>  Free checkpoint space or close checkpoint files */
+  if (AdjointType == Adj_discrete)
+    ros_FreeDBuffers( SaveLU );
+  else if ( (AdjointType == Adj_continuous) || 
+	    (AdjointType == Adj_simple_continuous) )
+    ros_FreeCBuffers();
+
+  return IERR;
+}
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void ros_AllocateDBuffers( int S, int SaveLU ) {
+/*~~~>  Allocate buffer space for discrete adjoint
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+    
+  int i;
+    
+  chk_H = (KPP_REAL*) malloc(bufsize * sizeof(KPP_REAL));
+  if (chk_H == NULL) {
+    printf("Failed allocation of buffer H");
+    exit(0);
+  }
+    
+  chk_T = (KPP_REAL*) malloc(bufsize * sizeof(KPP_REAL));
+  if (chk_T == NULL) {
+    printf("Failed allocation of buffer T");
+    exit(0);
+  }
+  
+  chk_Y = (KPP_REAL**) malloc(bufsize * sizeof(KPP_REAL*));
+  if (chk_Y == NULL) {
+    printf("Failed allocation of buffer Y");
+    exit(0);
+  }
+  for(i=0; i<bufsize; i++) {
+    chk_Y[i] = (KPP_REAL*) malloc(NVAR * S * sizeof(KPP_REAL));
+    if (chk_Y[i] == NULL) {
+      printf("Failed allocation of buffer Y");
+      exit(0);
+    }
+  }
+    
+  chk_K = (KPP_REAL**) malloc(bufsize * sizeof(KPP_REAL*));
+  if (chk_K == NULL) {
+    printf("Failed allocation of buffer K");
+    exit(0);
+  }
+  for(i=0; i<bufsize; i++) {
+    chk_K[i] = (KPP_REAL*) malloc(NVAR * S * sizeof(KPP_REAL));
+    if (chk_K == NULL) {
+      printf("Failed allocation of buffer K");
+      exit(0);
+    }
+  }
+  
+  if (SaveLU) {
+    chk_J = (KPP_REAL**) malloc(bufsize * sizeof(KPP_REAL*));
+    if (chk_J == NULL) {
+      printf( "Failed allocation of buffer J");
+      exit(0);
+    }
+#ifdef FULL_ALGEBRA
+    for(i=0; i<bufsize; i++) {
+      chk_J[i] = (KPP_REAL*) malloc(NVAR * NVAR * sizeof(KPP_REAL));
+      if (chk_J == NULL) {
+	printf( "Failed allocation of buffer J");
+	exit(0);
+      }
+    }
+#else
+    for(i=0; i<bufsize; i++) {
+      chk_J[i] = (KPP_REAL*) malloc(LU_NONZERO * sizeof(KPP_REAL));
+      if (chk_J == NULL) {
+	printf( "Failed allocation of buffer J");
+	exit(0);
+      }
+    }
+#endif
+  } 
+
+} /* End of ros_AllocateDBuffers */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void ros_FreeDBuffers( int SaveLU ) {
+/*~~~>  Deallocate buffer space for discrete adjoint
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+  int i;
+
+  free(chk_H);
+  free(chk_T);
+
+  for(i=0; i<bufsize; i++) {
+    free(chk_Y[i]);
+    free(chk_K[i]);
+  }
+  free(chk_Y);
+  free(chk_K);
+
+  if (SaveLU) {
+    for(i=0; i<bufsize; i++)
+      free(chk_J[i]);
+    free(chk_J);
+  }
+
+} /* End of ros_FreeDBuffers */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void ros_AllocateCBuffers() {
+/*~~~>  Allocate buffer space for continuous adjoint
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+  int i;
+
+  chk_H = (KPP_REAL*) malloc(bufsize * sizeof(KPP_REAL));
+  if (chk_H == NULL) {
+    printf( "Failed allocation of buffer H");
+    exit(0);
+  }
+
+  chk_T = (KPP_REAL*) malloc(bufsize * sizeof(KPP_REAL));
+  if (chk_T == NULL) {
+    printf( "Failed allocation of buffer T");
+    exit(0);
+  }
+
+  chk_Y = (KPP_REAL**) malloc(sizeof(KPP_REAL*) * bufsize);
+  if (chk_Y == NULL) {
+    printf( "Failed allocation of buffer Y");
+    exit(0);
+  }
+  for(i=0; i<bufsize; i++) {
+    chk_Y[i] = (KPP_REAL*) malloc( sizeof(KPP_REAL)* NVAR );
+    if (chk_Y == NULL) {
+      printf( "Failed allocation of buffer Y");
+      exit(0);
+    }
+  }
+
+  chk_dY = (KPP_REAL**) malloc(sizeof(KPP_REAL*) * bufsize);
+  if (chk_dY == NULL) {
+    printf( "Failed allocation of buffer dY");
+    exit(0);
+  }
+  for(i=0; i<bufsize; i++) {
+    chk_dY[i] = (KPP_REAL*) malloc( sizeof(KPP_REAL) * NVAR);
+    if (chk_dY == NULL) {
+      printf( "Failed allocation of buffer dY");
+      exit(0);
+    }
+  }
+
+  chk_d2Y = (KPP_REAL**) malloc(sizeof(KPP_REAL*) * bufsize);
+  if (chk_d2Y == NULL) {
+    printf( "Failed allocation of buffer d2Y");
+    exit(0);
+  }
+  for(i=0; i<bufsize; i++) {
+    chk_d2Y[i] = (KPP_REAL*) malloc( sizeof(KPP_REAL) * NVAR);
+    if (chk_d2Y == NULL) {
+      printf( "Failed allocation of buffer d2Y");
+      exit(0);
+    }
+  }
+} /* End of ros_AllocateCBuffers */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void ros_FreeCBuffers() {
+/*~~~>  Dallocate buffer space for continuous adjoint
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+  
+  int i;
+
+  free(chk_H);
+  free(chk_T);
+
+  for(i=0; i<bufsize; i++) {
+    free(chk_Y[i]);
+    free(chk_dY[i]);
+    free(chk_d2Y[i]);
+  }
+
+  free(chk_Y);
+  free(chk_dY);
+  free(chk_d2Y);
+
+} /* End of ros_FreeCBuffers */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void ros_DPush( int S, KPP_REAL T, KPP_REAL H, KPP_REAL Ystage[], 
+		KPP_REAL K[], KPP_REAL E[], int P[], int SaveLU ) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~> Saves the next trajectory snapshot for discrete adjoints
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+  int i;
+
+  stack_ptr = stack_ptr + 1;
+  if ( stack_ptr >= bufsize ) {
+    printf( "Push failed: buffer overflow" );
+    exit(0);
+  }
+
+  chk_H[ stack_ptr ] = H;
+  chk_T[ stack_ptr ] = T;
+  for(i=0; i<NVAR*S; i++) {
+    chk_Y[stack_ptr][i] = Ystage[i];
+    chk_K[stack_ptr][i] = K[i];
+  }
+
+  if (SaveLU) {
+#ifdef FULL_ALGEBRA
+    int j;
+    for(j=0; j<NVAR; j++) {
+      for(i=0; i<NVAR; i++)
+	chk_J[stack_ptr][i][j] = E[i][j];
+      chk_P[stack_ptr][j] = P[j];
+    }
+#else
+    for(i=0; i<LU_NONZERO; i++)
+      chk_J[stack_ptr][i] = E[i];
+#endif
+  }
+
+} /* End of ros_DPush */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void ros_DPop( int S, KPP_REAL* T, KPP_REAL* H, KPP_REAL* Ystage,
+	       KPP_REAL* K, KPP_REAL* E, int* P, int SaveLU ) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~> Retrieves the next trajectory snapshot for discrete adjoints
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+    
+  int i;
+  
+  if ( stack_ptr < 0 ) {
+    printf( "Pop failed: empty buffer" );
+    exit(0);
+  }
+
+  *H = chk_H[ stack_ptr ];
+  *T = chk_T[ stack_ptr ];
+
+  for(i=0; i<NVAR*S; i++) {
+    Ystage[i] = chk_Y[stack_ptr][i];
+    K[i]      = chk_K[stack_ptr][i];
+  }
+
+  if (SaveLU) {
+#ifdef FULL_ALGEBRA
+    int j;
+    for(i=0; i<NVAR; i++) {
+      for(j=0; j<NVAR; j++)
+	E[(j*NVAR)+i] = chk_J[stack_ptr][j][i];
+      P[i] = chk_P[stack_ptr][i];
+    }
+#else
+    for(i=0; i<LU_NONZERO; i++)
+      E[i] = chk_J[stack_ptr][i];
+#endif
+  }
+
+  stack_ptr--;
+
+} /* End of ros_DPop */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void ros_CPush( KPP_REAL T, KPP_REAL H, KPP_REAL Y[], KPP_REAL dY[], 
+		KPP_REAL d2Y[] ) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~> Saves the next trajectory snapshot for discrete adjoints
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+   
+  int i;
+  
+  stack_ptr++;
+  if ( stack_ptr > bufsize ) {
+    printf( "Push failed: buffer overflow" );
+    exit(0);
+  }
+  chk_H[ stack_ptr ] = H;
+  chk_T[ stack_ptr ] = T;
+
+  for(i = 0; i< NVAR; i++ ) {
+    chk_Y[stack_ptr][i] = Y[i];
+    chk_dY[stack_ptr][i] = dY[i];
+    chk_d2Y[stack_ptr][i] = d2Y[i];
+  }
+} /* End of ros_CPush */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void ros_CPop( KPP_REAL T, KPP_REAL H, KPP_REAL Y[], KPP_REAL dY[], 
+	       KPP_REAL d2Y[] ) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~> Retrieves the next trajectory snapshot for discrete adjoints
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+   
+  int i;
+
+  if ( stack_ptr <= 0 ) {
+    printf( "Pop failed: empty buffer" );
+    exit(0);
+  }
+  H = chk_H[ stack_ptr ];
+  T = chk_T[ stack_ptr ];
+
+  for(i=0; i<NVAR; i++) {
+    Y[i] = chk_Y[stack_ptr][i];
+    dY[i] = chk_dY[stack_ptr][i];
+    d2Y[i] = chk_d2Y[stack_ptr][i];
+  }
+  stack_ptr--;
+} /* End of ros_CPop */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+int ros_ErrorMsg( int Code, KPP_REAL T, KPP_REAL H) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    Handles all error messages
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+  int IERR = Code;
+  printf( "Forced exit from RosenbrockADJ due to the following error:");
+  
+  switch (Code) {
+    case -1:
+      printf( "--> Improper value for maximal no of steps" );
+      break;
+    case -2:
+      printf( "--> Selected RosenbrockADJ method not implemented" );
+      break;
+    case -3:
+      printf( "--> Hmin/Hmax/Hstart must be positive" );
+      break;
+    case -4:
+      printf( "--> FacMin/FacMax/FacRej must be positive" );
+      break;
+    case -5:
+      printf( "--> Improper tolerance values" );
+      break;
+    case -6:
+      printf( "--> No of steps exceeds maximum buffer bound" );
+      break;
+    case -7:
+      printf( "--> Step size too small: T + 10*H = T or H < Roundoff" );
+      break;
+    case -8:
+      printf( "--> Matrix is repeatedly singular" );
+      break;
+    case -9:
+      printf( "--> Improper type of adjoint selected" );
+      break;
+    default:
+      printf( "Unknown Error code: %d", Code );
+  } /* End of switch */
+
+  return IERR;
+} /* End of ros_ErrorMsg */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+int ros_FwdInt ( KPP_REAL Y[], KPP_REAL Tstart, KPP_REAL Tend, KPP_REAL T, 
+		 KPP_REAL AbsTol[], KPP_REAL RelTol[], int AdjointType, 
+		 KPP_REAL Hmin, KPP_REAL Hstart, KPP_REAL Hmax, 
+		 KPP_REAL Roundoff, int ISTATUS[], int Max_no_steps, 
+		 KPP_REAL RSTATUS[], int Autonomous, int VectorTol, 
+		 KPP_REAL FacMax, KPP_REAL FacMin, KPP_REAL FacSafe, 
+		 KPP_REAL FacRej, int SaveLU ) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   Template for the implementation of a generic RosenbrockADJ method
+      defined by ros_S (no of stages)
+      and its coefficients ros_{A,C,M,E,Alpha,Gamma}
+~~~> Y - Input: the initial condition at Tstart; Output: the solution at T
+~~~> Tstart, Tend - Input: integration interval
+~~~> T - Output: time at which the solution is returned (T=Tend if success)
+~~~> AbsTol, RelTol - Input: tolerances
+~~~> IERR - Output: Error indicator
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+/* ~~~~ Local variables */
+  KPP_REAL Ynew[NVAR], Fcn0[NVAR], Fcn[NVAR];
+  KPP_REAL K[NVAR*ros_S], dFdT[NVAR];
+  KPP_REAL *Ystage = NULL; /* Array pointer */
+#ifdef FULL_ALGEBRA
+  KPP_REAL Jac0[NVAR][NVAR],  Ghimj[NVAR][NVAR];
+#else
+  KPP_REAL Jac0[LU_NONZERO], Ghimj[LU_NONZERO];
+#endif
+  KPP_REAL H, Hnew, HC, HG, Fac, Tau;
+  KPP_REAL Err, Yerr[NVAR];
+  int Pivot[NVAR], Direction, ioffset, i, j=0, istage;
+  int RejectLastH, RejectMoreH, Singular; /* Boolean Values */
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+/*~~~>  Allocate stage vector buffer if needed */
+  if (AdjointType == Adj_discrete) {
+    Ystage = (KPP_REAL*) malloc(NVAR*ros_S*sizeof(KPP_REAL));
+    /* Uninitialized Ystage may lead to NaN on some compilers */
+    if (Ystage == NULL) {
+      printf( "Allocation of Ystage failed" );
+      exit(0);
+    }
+  }
+
+/*~~~>  Initial preparations */
+  T = Tstart;
+  RSTATUS[Nhexit] = ZERO;
+  H = MIN( MAX(ABS(Hmin),ABS(Hstart)) , ABS(Hmax) );
+  if (ABS(H) <= ((KPP_REAL)10.0)*Roundoff)
+    H = DeltaMin;
+
+  if (Tend >= Tstart)
+    Direction = 1;
+  else
+    Direction = -1;
+
+  H = Direction*H;
+  
+  RejectLastH = FALSE;
+  RejectMoreH = FALSE;
+
+/*~~~> Time loop begins below */
+  while ( ((Direction > 0) && ((T-Tend)+Roundoff <= ZERO)) || 
+	  ((Direction < 0) && ((Tend-T)+Roundoff <= ZERO)) ) { /* TimeLoop */
+
+    if ( ISTATUS[Nstp] > Max_no_steps )  /* Too many steps */
+      return ros_ErrorMsg(-6,T,H);
+
+    if ( ((T+((KPP_REAL)0.1)*H) == T) || (H <= Roundoff) ) /* Step size 
+							    too small */
+      return ros_ErrorMsg(-7,T,H);
+
+/*~~~>  Limit H if necessary to avoid going beyond Tend */
+    RSTATUS[Nhexit] = H;
+    H = MIN(H,ABS(Tend-T));
+
+/*~~~>   Compute the function at current time */
+    FunTemplate(T,Y,Fcn0);
+    ISTATUS[Nfun] = ISTATUS[Nfun] + 1;
+
+/*~~~>  Compute the function derivative with respect to T */
+    if (!Autonomous)
+      ros_FunTimeDerivative ( T, Roundoff, Y, Fcn0, dFdT, ISTATUS );
+
+/*~~~>   Compute the Jacobian at current time */
+    JacTemplate(T,Y,Jac0);
+    ISTATUS[Njac] = ISTATUS[Njac] + 1;
+
+/*~~~>  Repeat step calculation until current step accepted */
+    do {  /* UntilAccepted */
+
+      Singular = ros_PrepareMatrix ( H,Direction,ros_Gamma[0],Jac0,Ghimj,Pivot,
+				     ISTATUS );
+
+      if (Singular) /* More than 5 consecutive failed decompositions */
+	return ros_ErrorMsg(-8,T,H);
+
+/*~~~>   Compute the stages */
+      for( istage = 0; istage < ros_S; istage++ ) { /* Stage */
+
+	/* Current istage offset. Current istage vector is 
+	   K(ioffset+1:ioffset+NVAR) */
+	ioffset = NVAR*istage;
+
+	/*For the 1st istage the function has been computed previously*/
+	if ( istage == 0 ) {
+	  WCOPY(NVAR,Fcn0,1,Fcn,1);
+	  if (AdjointType == Adj_discrete) { /* Save stage solution */
+	    for(i=0; i<NVAR; i++)
+	      Ystage[i] = Y[i];
+	    WCOPY(NVAR,Y,1,Ynew,1);
+	  }
+	}
+	/* istage>0 and a new function evaluation is needed at the 
+	   current istage */
+	else if ( ros_NewF[istage] ) {
+	  WCOPY(NVAR,Y,1,Ynew,1);
+	  for ( j = 0; j < istage; j++ ) {
+	    WAXPY( NVAR,ros_A[(istage)*(istage-1)/2+j], 
+		   &K[NVAR*j],1,Ynew,1 );
+	  }
+	  Tau = T + ros_Alpha[istage]*Direction*H;
+	  FunTemplate(Tau,Ynew,Fcn);
+	  ISTATUS[Nfun] = ISTATUS[Nfun] + 1;
+	} /* if istage == 1 elseif ros_NewF[istage] */
+
+	/* Save stage solution every time even if ynew is not updated */
+	if ( ( istage > 0 ) && (AdjointType == Adj_discrete) ) {
+	  for(i=0; i<NVAR; i++)
+	    Ystage[ioffset+i] = Ynew[i];
+	}
+	WCOPY(NVAR,Fcn,1,&K[ioffset],1);
+	for( j = 0; j < istage; j++ ) {
+	  HC = ros_C[(istage)*(istage-1)/2+j]/(Direction*H);
+	  WAXPY(NVAR,HC,&K[NVAR*j],1,&K[ioffset],1);
+	}
+	if (( !Autonomous) && (ros_Gamma[istage] != ZERO)) {
+	  HG = Direction*H*ros_Gamma[istage];
+	  WAXPY(NVAR,HG,dFdT,1,&K[ioffset],1);
+	}
+	ros_Solve('N', Ghimj, Pivot, &K[ioffset], ISTATUS);
+      } /* End of Stage loop */
+
+/*~~~>  Compute the new solution */
+      WCOPY(NVAR,Y,1,Ynew,1);
+      for( j=0; j<ros_S; j++ )
+	WAXPY(NVAR,ros_M[j],&K[NVAR*j],1,Ynew,1);
+
+/*~~~>  Compute the error estimation */ 
+      WSCAL(NVAR,ZERO,Yerr,1);
+      for( j=0; j<ros_S; j++ )
+	WAXPY(NVAR,ros_E[j],&K[NVAR*j],1,Yerr,1);
+      Err = ros_ErrorNorm ( Y, Ynew, Yerr, AbsTol, RelTol, VectorTol );
+
+/*~~~> New step size is bounded by FacMin <= Hnew/H <= FacMax */
+      Fac  = MIN(FacMax,MAX(FacMin,FacSafe/pow(Err,(ONE/ros_ELO))));
+      Hnew = H*Fac;
+
+/*~~~>  Check the error magnitude and adjust step size */
+      ISTATUS[Nstp] = ISTATUS[Nstp] + 1;
+      if ( (Err <= ONE) || (H <= Hmin) ) {  /*~~~> Accept step */
+	ISTATUS[Nacc]++;
+	if (AdjointType == Adj_discrete) { /* Save current state */
+	  ros_DPush( ros_S, T, H, Ystage, K, Ghimj, Pivot, SaveLU );
+	}
+	else if ( (AdjointType == Adj_continuous) || 
+		  (AdjointType == Adj_simple_continuous) ) {
+#ifdef FULL_ALGEBRA
+	  K = MATMUL(Jac0,Fcn0);
+#else
+	  Jac_SP_Vec( Jac0, Fcn0, &K[0] );
+#endif
+	  if ( !Autonomous)
+	    WAXPY(NVAR,ONE,dFdT,1,&K[0],1);
+	  ros_CPush( T, H, Y, Fcn0, &K[0] );
+	}
+	WCOPY(NVAR,Ynew,1,Y,1);
+	T = T + Direction*H;
+	Hnew = MAX(Hmin,MIN(Hnew,Hmax));
+	if (RejectLastH) { /* No step size increase after a 
+			     rejected step */
+	  Hnew = MIN(Hnew,H);
+	}
+	RSTATUS[Nhexit] = H;
+	RSTATUS[Nhnew]  = Hnew;
+	RSTATUS[Ntexit] = T;
+	RejectLastH = FALSE;
+	RejectMoreH = FALSE;
+	H = Hnew;
+	break; /* UntilAccepted - EXIT THE LOOP: WHILE STEP NOT ACCEPTED */
+      }
+
+      else { /*~~~> Reject step */
+	if (RejectMoreH)
+	  Hnew = H*FacRej;
+        RejectMoreH = RejectLastH;
+        RejectLastH = TRUE;
+        H = Hnew;
+        if (ISTATUS[Nacc] >= 1)
+	  ISTATUS[Nrej]++;
+      } /* End if else - Err <= 1 */
+    
+    } while(1); /* End of UntilAccepted do loop */
+  } /* End of TimeLoop */
+   
+/*~~~> Save last state: only needed for continuous adjoint */
+  if ( (AdjointType == Adj_continuous) || 
+       (AdjointType == Adj_simple_continuous) ) {
+    FunTemplate(T,Y,Fcn0);
+    ISTATUS[Nfun]++;
+    JacTemplate(T,Y,Jac0);
+    ISTATUS[Njac]++;
+#ifdef FULL_ALGEBRA
+    K = MATMUL(Jac0,Fcn0);
+#else
+    Jac_SP_Vec( Jac0, Fcn0, &K[0] );
+#endif
+    if (!Autonomous) {
+      ros_FunTimeDerivative ( T, Roundoff, Y, Fcn0, dFdT, ISTATUS );
+      WAXPY(NVAR,ONE,dFdT,1,&K[0],1);
+    }
+    ros_CPush( T, H, Y, Fcn0, &K[0] );
+/*~~~> Deallocate stage buffer: only needed for discrete adjoint */
+  }
+  else if (AdjointType == Adj_discrete) {
+    free(Ystage);
+  }
+
+/*~~~> Succesful exit */
+  return 1;  /*~~~> The integration was successful */
+} /* End of ros_FwdInt */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+int ros_DadjInt ( int NADJ, KPP_REAL Lambda[][NVAR], KPP_REAL Tstart, 
+		  KPP_REAL Tend, KPP_REAL T, int SaveLU, int ISTATUS[], 
+		  KPP_REAL Roundoff, int Autonomous) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   Template for the implementation of a generic RosenbrockSOA method
+      defined by ros_S (no of stages)
+      and its coefficients ros_{A,C,M,E,Alpha,Gamma}
+!~~~> NADJ - Input: the initial condition at Tstart; Output: the solution at T
+!~~~> Lambda[NADJ][NVAR] -  First order adjoint
+!~~~> Tstart, Tend - Input: integration interval
+!~~~> T - Output: time at which the solution is returned (T=Tend if success)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+/*~~~~ Local variables */
+  KPP_REAL Ystage[NVAR*ros_S], K[NVAR*ros_S];
+  KPP_REAL U[NADJ][NVAR*ros_S], V[NADJ][NVAR*ros_S];
+#ifdef FULL_ALGEBRA
+  KPP_REAL Jac[NVAR][NVAR], dJdT[NVAR][NVAR], Ghimj[NVAR][NVAR];
+#else
+  KPP_REAL Jac[LU_NONZERO], dJdT[LU_NONZERO], Ghimj[LU_NONZERO];
+#endif
+  KPP_REAL Hes0[NHESS];
+  KPP_REAL Tmp[NVAR], Tmp2[NVAR];
+  KPP_REAL H=0.0, HC, HA, Tau;
+  int Pivot[NVAR], Direction;
+  int i, j, m, istage, istart, jstart;
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+  if (Tend  >=  Tstart)
+    Direction = 1;
+  else
+    Direction = -1;
+  
+  /*~~~> Time loop begins below */
+  while ( stack_ptr > 0 ) { /* TimeLoop */
+
+    /*~~~>  Recover checkpoints for stage values and vectors */
+    ros_DPop( ros_S, &T, &H, &Ystage[0], &K[0], &Ghimj[0], &Pivot[0], SaveLU );
+
+    /*~~~>    Compute LU decomposition */
+    if (!SaveLU) {
+      JacTemplate(T,&Ystage[0],Ghimj);
+      ISTATUS[Njac] = ISTATUS[Njac] + 1;
+      Tau = ONE/(Direction*H*ros_Gamma[0]);
+#ifdef FULL_ALGEBRA
+      for(j=0; j<NVAR; j++) {
+	for(i=0; i<NVAR; i++)
+	  Ghimj[i][j] = -Ghimj[i][j];
+      }
+      for(i=0; i<NVAR; i++)
+	Ghimj[i][i] = Ghimj[i][i]+Tau;
+#else
+      WSCAL(LU_NONZERO,(-ONE),Ghimj,1);
+      for (i=0; i<NVAR; i++)
+	Ghimj[LU_DIAG[i]] = Ghimj[LU_DIAG[i]]+Tau;
+#endif
+      ros_Decomp(Ghimj, Pivot, &j, ISTATUS);
+    }
+
+/*~~~>   Compute Hessian at the beginning of the interval */
+    HessTemplate(T,&Ystage[0],Hes0);
+
+/*~~~>   Compute the stages */
+    for (istage = ros_S - 1; istage >= 0; istage--) { /* Stage loop */
+
+      /*~~~> Current istage first entry */
+      istart = NVAR*istage;
+	 
+      /*~~~> Compute U */
+      for (m = 0; m<NADJ; m++) {
+	WCOPY(NVAR,&Lambda[m][0],1,&U[m][istart],1);
+	WSCAL(NVAR,ros_M[istage],&U[m][istart],1);
+      } /* m=0:NADJ-1 */
+      for (j = istage+1; j < ros_S; j++) {
+	jstart = NVAR*j;
+	HA = ros_A[j*(j-1)/2+istage];
+	HC = ros_C[j*(j-1)/2+istage]/(Direction*H);
+	for ( m = 0; m < NADJ; m++ ) {
+	  WAXPY(NVAR,HA,&V[m][jstart],1,&U[m][istart],1);
+	  WAXPY(NVAR,HC,&U[m][jstart],1,&U[m][istart],1);
+	} /* m=0:NADJ-1 */
+      }
+      for ( m = 0; m < NADJ; m++ )
+	ros_Solve('T', Ghimj, Pivot, &U[m][istart], ISTATUS); /* m=1:NADJ-1 */
+
+      /*~~~> Compute V */
+      Tau = T + ros_Alpha[istage]*Direction*H;
+      JacTemplate(Tau,&Ystage[istart],Jac);
+      ISTATUS[Njac]++;
+      for ( m = 0; m < NADJ; m++ ) {
+#ifdef FULL_ALGEBRA
+	for (i=istart; i < istart+NVAR-1; i++ )
+	  V[[m][i] = MATMUL(TRANSPOSE(Jac),U[m][i]];
+#else
+	JacTR_SP_Vec(Jac,&U[m][istart],&V[m][istart]); 
+#endif
+      } /* m=0:NADJ-1 */
+    } /*End of Stage loop */
+
+    if (!Autonomous)
+/*~~~>  Compute the Jacobian derivative with respect to T.
+        Last "Jac" computed for stage 1 */
+      ros_JacTimeDerivative ( T, Roundoff, &Ystage[0], Jac, dJdT, ISTATUS );
+
+/*~~~>  Compute the new solution */
+    /*~~~>  Compute Lambda */ 
+    for( istage = 0; istage < ros_S; istage++ ) {
+      istart = NVAR*istage;
+      for (m = 0; m < NADJ; m++) {
+	/* Add V_i */
+	WAXPY(NVAR,ONE,&V[m][istart],1,&Lambda[m][0],1);
+	/* Add (H0xK_i)^T * U_i */
+	HessTR_Vec ( Hes0, &U[m][istart], &K[istart], Tmp );
+	WAXPY(NVAR,ONE,Tmp,1,&Lambda[m][0],1);
+      } /* m=0:NADJ-1 */
+    }
+
+    /* Add H * dJac_dT_0^T * \sum(gamma_i U_i) */
+    /* Tmp holds sum gamma_i U_i */
+    if (!Autonomous) {
+      for( m = 0; m < NADJ; m++ ) {
+	for(i=0; i<NVAR; i++)
+	  Tmp[i] = ZERO;
+	for( istage = 0; istage < ros_S; istage++ ) {
+	  istart = NVAR*istage;
+	  WAXPY(NVAR,ros_Gamma[istage],&U[m][istart],1,Tmp,1);
+	}
+#ifdef FULL_ALGEBRA
+	Tmp2 = MATMUL(TRANSPOSE(dJdT),Tmp);
+#else
+	JacTR_SP_Vec(dJdT,Tmp,Tmp2);
+#endif
+	WAXPY(NVAR,H,Tmp2,1,&Lambda[m][0],1);
+      } /* m=0:NADJ-1 */
+    } /* .NOT.Autonomous */
+  } /* End of TimeLoop */
+
+  /*~~~> Save last state */
+  /*~~~> Succesful exit */
+  return 1;  /*~~~> The integration was successful */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+} /* End of ros_DadjInt */
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+int ros_CadjInt ( int NADJ, KPP_REAL Y[][NVAR], KPP_REAL Tstart, KPP_REAL Tend,
+		  KPP_REAL T, KPP_REAL AbsTol_adj[][NVAR], 
+		  KPP_REAL RelTol_adj[][NVAR], KPP_REAL RSTATUS[], 
+		  KPP_REAL Hmin, KPP_REAL Hmax, KPP_REAL Hstart, 
+		  KPP_REAL Roundoff, int Max_no_steps, int Autonomous, 
+		  int VectorTol, KPP_REAL FacMax, KPP_REAL FacMin, 
+		  KPP_REAL FacSafe, KPP_REAL FacRej, int ISTATUS[] ) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   Template for the implementation of a generic RosenbrockADJ method
+      defined by ros_S (no of stages)
+      and its coefficients ros_{A,C,M,E,Alpha,Gamma}
+~~~> NADJ, Y[NADJ][NVAR] - Input: the initial condition at Tstart;
+                           Output: the solution at T
+~~~> Tstart, Tend - Input: integration interval 
+~~~> AbsTol_adj[NADJ][NVAR], RelTol_adj[NADJ][NVAR] - Input: adjoint tolerances
+~~~> T - Output: time at which the solution is returned (T=Tend if success)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+/*~~~~ Local variables */
+  KPP_REAL Y0[NVAR];
+  KPP_REAL Ynew[NADJ][NVAR], Fcn0[NADJ][NVAR], Fcn[NADJ][NVAR];
+  KPP_REAL K[NADJ][NVAR*ros_S], dFdT[NADJ][NVAR];
+#ifdef FULL_ALGEBRA
+  KPP_REAL Jac0[NVAR][NVAR], Ghimj[NVAR][NVAR], Jac[NVAR][NVAR], 
+         dJdT[NVAR][NVAR];
+#else
+  KPP_REAL Jac0[LU_NONZERO], Ghimj[LU_NONZERO], Jac[LU_NONZERO], 
+         dJdT[LU_NONZERO];
+#endif
+  KPP_REAL H, Hnew, HC, HG, Fac, Tau; 
+  KPP_REAL Err, Yerr[NADJ][NVAR];
+  int Pivot[NVAR], Direction, ioffset, j, istage, iadj;
+  int RejectLastH, RejectMoreH, Singular; /* Boolean values */
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+/*~~~>  Initial preparations */
+  T = Tstart;
+  RSTATUS[Nhexit] = (KPP_REAL)0.0;
+  H = MIN( MAX(ABS(Hmin),ABS(Hstart)) , ABS(Hmax) );
+  if (ABS(H) <= ((KPP_REAL)10.0)*Roundoff) 
+    H = DeltaMin;
+  
+  if (Tend  >=  Tstart)
+    Direction = 1;
+  else
+    Direction = -1;
+  
+  H = Direction*H;
+  RejectLastH = FALSE;
+  RejectMoreH = FALSE;
+
+/*~~~> Time loop begins below */
+  while ( ((Direction > 0) && ((T-Tend)+Roundoff <= ZERO))
+	  || ((Direction < 0) && ((Tend-T)+Roundoff <= ZERO)) ) { /*TimeLoop*/
+
+    if ( ISTATUS[Nstp] > Max_no_steps )  /* Too many steps */
+      return ros_ErrorMsg(-6,T,H);
+
+    /* Step size too small */
+    if ( ((T+((KPP_REAL)0.1)*H) == T) || (H <= Roundoff) )
+      return ros_ErrorMsg(-7,T,H);
+
+/*~~~>  Limit H if necessary to avoid going beyond Tend */
+    RSTATUS[Nhexit] = H;
+    H = MIN(H,ABS(Tend-T));
+
+/*~~~>   Interpolate forward solution */
+    ros_cadj_Y( T, Y0 );
+/*~~~>   Compute the Jacobian at current time */
+    JacTemplate(T, Y0, Jac0);
+    ISTATUS[Njac]++;
+
+/*~~~>  Compute the function derivative with respect to T */
+    if (!Autonomous) {
+      ros_JacTimeDerivative ( T, Roundoff, Y0, Jac0, dJdT, ISTATUS );
+      for (iadj = 0; iadj < NADJ; iadj++) {
+#ifdef FULL_ALGEBRA
+	for (i=0; i<NVAR; i++)
+	  dFdT[iadj][i] = MATMUL(TRANSPOSE(dJdT),Y[iadj][i]);
+#else
+	JacTR_SP_Vec(dJdT,&Y[iadj][0],&dFdT[iadj][0]);
+#endif
+	WSCAL(NVAR,(-ONE),&dFdT[iadj][0],1);
+      } /* End for loop */
+    } /* End if */
+
+/*~~~>  Ydot = -J^T*Y */
+#ifdef FULL_ALGEBRA
+    int i;
+    for(i=0; i<NVAR; i++) {
+      for(j=0; j<NVAR; j++)
+	Jac0[i][j] = -Jac0[i][j];
+    }
+#else
+    WSCAL(LU_NONZERO,(-ONE),Jac0,1);
+#endif
+
+    for ( iadj = 0; iadj < NADJ; iadj++ ) {
+#ifdef FULL_ALGEBRA
+      int i;
+      for(i=0; i<NVAR; i++)
+	Fcn0[iadj][i] = MATMUL(TRANSPOSE(Jac0),Y[iadj][i]);
+#else
+      JacTR_SP_Vec(Jac0,&Y[iadj][0],&Fcn0[iadj][0]);
+#endif
+    }
+
+/*~~~>  Repeat step calculation until current step accepted */
+    do { /* UntilAccepted */
+
+      Singular = ros_PrepareMatrix(H,Direction,ros_Gamma[0], Jac0,Ghimj,Pivot,
+				   ISTATUS);
+      if (Singular) /* More than 5 consecutive failed decompositions */
+	return ros_ErrorMsg(-8,T,H);
+
+/*~~~>   Compute the stages */
+      for ( istage = 0; istage < ros_S; istage++ ) { /* Stage loop */
+
+	/* Current istage offset. Current istage vector 
+	   is K[ioffset+1:ioffset+NVAR] */
+	ioffset = NVAR*(istage-1);
+
+	/* For the 1st istage the function has been computed previously */
+	if ( istage == 0 ) {
+	  for ( iadj = 0; iadj < NADJ; iadj++ )
+	    WCOPY(NVAR,&Fcn0[iadj][0],1,&Fcn[iadj][0],1);
+
+	  /* istage>0 and a new function evaluation is needed at 
+	     the current istage */
+	}
+	else if ( ros_NewF[istage] ) {
+	  WCOPY(NVAR*NADJ,&Y[0][0],1,&Ynew[0][0],1);
+	  for (j = 0; j < istage-1; j++) {
+	    for ( iadj = 0; iadj < NADJ; iadj++ )
+	      WAXPY( NVAR,ros_A[(istage-1)*(istage-2)/2+j],
+		     &K[iadj][NVAR*(j-1)+1],1,&Ynew[iadj][0],1);
+	  } /* End for loop */
+	  Tau = T + ros_Alpha[istage]*Direction*H;
+	  ros_cadj_Y( Tau, Y0 );
+	  JacTemplate(Tau, Y0, Jac);
+	  ISTATUS[Njac]++;
+
+#ifdef FULL_ALGEBRA
+	  for(i=0; i<NVAR; i++) {
+	    for(j=0; j<NVAR; j++)
+	      Jac[i][j] = -Jac[i][j];
+	  }
+#else
+	  WSCAL(LU_NONZERO,(-ONE),Jac,1);
+#endif
+
+	  for ( iadj = 0; iadj < NADJ; iadj++ ) {
+#ifdef FULL_ALGEBRA
+	    for(i=0; i<NVAR; i++)
+	      Fcn[iadj][i] = MATMUL(TRANSPOSE(Jac),Ynew[iadj][i]);
+#else
+	    JacTR_SP_Vec(Jac,&Ynew[iadj][0],&Fcn[iadj][0]);
+#endif
+	  } /* End for loop */
+	} /*  if istage == 1 elseif ros_NewF(istage) */
+
+	for ( iadj = 0; iadj < NADJ; iadj++ )
+	  WCOPY(NVAR,&Fcn[iadj][0],1,&K[iadj][ioffset+1],1);
+	for ( j = 0; j < istage-1; j++ ) {
+	  HC = ros_C[(istage-1)*(istage-2)/2+j]/(Direction*H);
+	  for ( iadj = 0; iadj < NADJ; iadj++ )
+	    WAXPY(NVAR,HC,&K[iadj][NVAR*(j-1)+1],1,&K[iadj][ioffset+1],1);
+	} /* End for loop */
+	if ((!Autonomous) && (ros_Gamma[istage] != ZERO)) {
+	  HG = Direction*H*ros_Gamma[istage];
+	  for ( iadj = 0; iadj < NADJ; iadj++ )
+	    WAXPY(NVAR,HG,&dFdT[iadj][0],1,&K[iadj][ioffset+1],1);
+	} /* End if */
+	for ( iadj = 0; iadj < NADJ; iadj++ )
+	  ros_Solve('T', Ghimj, Pivot, &K[iadj][ioffset+1], ISTATUS);
+
+      } /* End of Stage loop */
+
+/*~~~>  Compute the new solution */
+      for ( iadj = 0; iadj < NADJ; iadj++ ) {
+	WCOPY(NVAR,&Y[iadj][0],1,&Ynew[iadj][0],1);
+	for ( j=0; j<ros_S; j++ )
+	  WAXPY(NVAR,ros_M[j],&K[iadj][NVAR*(j-1)+1],1,&Ynew[iadj][0],1);
+      } /* End for loop */
+
+/*~~~>  Compute the error estimation */
+      WSCAL(NVAR*NADJ,ZERO,&Yerr[0][0],1);
+      for ( j=0; j<ros_S; j++ ) {
+	for ( iadj = 0; iadj < NADJ; iadj++ )
+	  WAXPY(NVAR,ros_E[j],&K[iadj][NVAR*(j-1)+1],1,&Yerr[iadj][0],1);
+      } /* End for loop */
+
+/*~~~> Max error among all adjoint components */
+      iadj = 1;
+      Err = ros_ErrorNorm ( &Y[iadj][0], &Ynew[iadj][0], &Yerr[iadj][0],
+			    &AbsTol_adj[iadj][0], &RelTol_adj[iadj][0], 
+			    VectorTol );
+
+/*~~~> New step size is bounded by FacMin <= Hnew/H <= FacMax */
+      Fac  = MIN(FacMax,MAX(FacMin,FacSafe/pow(Err,(ONE/ros_ELO))));
+      Hnew = H*Fac;
+
+/*~~~>  Check the error magnitude and adjust step size */
+      /* ISTATUS[Nstp] = ISTATUS[Nstp] + 1 */
+      if ( (Err <= ONE) || (H <= Hmin) ) {  /*~~~> Accept step */
+	ISTATUS[Nacc] = ISTATUS[Nacc] + 1;
+	WCOPY(NVAR*NADJ,&Ynew[0][0],1,&Y[0][0],1);
+	T = T + Direction*H;
+	Hnew = MAX(Hmin,MIN(Hnew,Hmax));
+	if (RejectLastH) /* No step size increase after a rejected step */
+	  Hnew = MIN(Hnew,H);
+	RSTATUS[Nhexit] = H;
+	RSTATUS[Nhnew] = Hnew;
+	RSTATUS[Ntexit] = T;
+	RejectLastH = FALSE;
+	RejectMoreH = FALSE;
+	H = Hnew;
+	break; /* UntilAccepted - EXIT THE LOOP: WHILE STEP NOT ACCEPTED */
+      }
+      else {         /*~~~> Reject step */
+	if (RejectMoreH)
+	  Hnew = H*FacRej;
+	RejectMoreH = RejectLastH;
+	RejectLastH = TRUE;
+	H = Hnew;
+	if (ISTATUS[Nacc] >= 1)
+	  ISTATUS[Nrej]++;
+      } /* Err <= 1 */
+      
+    } while(1); /* End of UntilAccepted do loop */
+
+  } /* End of TimeLoop */
+
+  /*~~~> Succesful exit */
+  return 1;  /*~~~> The integration was successful */
+} /* End of ros_CadjInt */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+int ros_SimpleCadjInt ( int NADJ, KPP_REAL Y[][NVAR], KPP_REAL Tstart,
+			 KPP_REAL Tend, KPP_REAL T, int ISTATUS[], 
+			int Autonomous, KPP_REAL Roundoff ) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   Template for the implementation of a generic RosenbrockADJ method 
+      defined by ros_S (no of stages)
+      and its coefficients ros_{A,C,M,E,Alpha,Gamma}
+~~~> NADJ, Y[NADJ][NVAR] - Input: the initial condition at Tstart; 
+                           Output: the solution at T
+~~~> Tstart, Tend - Input: integration interval 
+~~~> T - Output: time at which the solution is returned (T=Tend if success) 
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+/*~~~~ Local variables */
+   KPP_REAL Y0[NVAR];
+   KPP_REAL Ynew[NADJ][NVAR], Fcn0[NADJ][NVAR], Fcn[NADJ][NVAR];
+   KPP_REAL K[NADJ][NVAR*ros_S], dFdT[NADJ][NVAR];
+#ifdef FULL_ALGEBRA
+   KPP_REAL Jac0[NVAR][NVAR], Ghimj[NVAR][NVAR], Jac[NVAR][NVAR], 
+          dJdT[NVAR][NVAR];
+#else
+   KPP_REAL Jac0[LU_NONZERO], Ghimj[LU_NONZERO], Jac[LU_NONZERO], 
+          dJdT[LU_NONZERO];
+#endif
+   KPP_REAL H, HC, HG, Tau; 
+   KPP_REAL ghinv;
+   int Pivot[NVAR], Direction, ioffset, i, j, istage, iadj;
+   int istack;
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+/*~~~>  INITIAL PREPARATIONS */
+  if (Tend  >=  Tstart)
+    Direction = -1;
+  else
+    Direction = 1;
+ 
+/*~~~> Time loop begins below */
+  for( istack = stack_ptr; istack >= 1; istack-- ) { /* TimeLoop */
+    T = chk_T[istack];
+    H = chk_H[istack-1];
+    for(i=0; i<NVAR; i++)
+      Y0[i] = chk_Y[istack][i];
+
+/*~~~>   Compute the Jacobian at current time */
+    JacTemplate(T, Y0, Jac0);
+    ISTATUS[Njac] = ISTATUS[Njac] + 1;
+
+/*~~~>  Compute the function derivative with respect to T */
+    if (!Autonomous) {
+      ros_JacTimeDerivative ( T, Roundoff, Y0, Jac0, dJdT, ISTATUS );
+      for ( iadj = 0; iadj < NADJ; iadj++ ) {
+#ifdef FULL_ALGEBRA
+	for( i=0; i<NVAR; i++)
+	  dFdT[iadj][i] = MATMUL(TRANSPOSE(dJdT),Y[iadj][i]);
+#else
+	JacTR_SP_Vec(dJdT,&Y[iadj][0],&dFdT[iadj][0]);
+#endif
+	WSCAL(NVAR,(-ONE),&dFdT[iadj][0],1);
+      }
+    }
+
+/*~~~>  Ydot = -J^T*Y */
+#ifdef FULL_ALGEBRA
+    for(i=0; i<NVAR; i++) {
+      for(j=0; j<NVAR; j++)
+	Jac0[i][j] = -Jac0[i][j];
+    }
+#else
+    WSCAL(LU_NONZERO,(-ONE),Jac0,1);
+#endif
+    
+    for(iadj=0; iadj<NADJ; iadj++) {
+#ifdef FULL_ALGEBRA
+      for(i=0; i<NVAR; i++)
+	Fcn0[iadj][i] = MATMUL(TRANSPOSE(Jac0),Y[iadj][i]);
+#else
+      JacTR_SP_Vec(Jac0,&Y[iadj][0],&Fcn0[iadj][0]);
+#endif
+    }
+    
+/*~~~>    Construct Ghimj = 1/(H*ham) - Jac0 */
+    ghinv = ONE/(Direction*H*ros_Gamma[0]);
+#ifdef FULL_ALGEBRA
+    for(i=0; i<NVAR; i++) {
+      for(j=0; j<NVAR; j++)
+	Ghimj[i][j] = -Jac0[i][j];
+    }
+    for(i=0; i<NVAR; i++)
+      Ghimj[i][i] = Ghimj[i][i]+ghinv;
+#else
+    WCOPY(LU_NONZERO,Jac0,1,Ghimj,1);
+    WSCAL(LU_NONZERO,(-ONE),Ghimj,1);
+    for(i=0; i<NVAR; i++)
+      Ghimj[LU_DIAG[i]] = Ghimj[LU_DIAG[i]]+ghinv;
+#endif
+
+/*~~~>    Compute LU decomposition */
+    ros_Decomp( Ghimj, Pivot, &j, ISTATUS );
+    if (j != 0) {
+      ros_ErrorMsg(-8,T,H);
+      printf( "The matrix is singular !");
+      exit(0);
+    }
+
+/*~~~>   Compute the stages */
+    for(istage=0; istage<ros_S; istage++) { /* Stage */
+      /* Current istage offset. Current istage vector 
+	 is K(ioffset+1:ioffset+NVAR) */
+      ioffset = NVAR*istage;
+
+      /* For the 1st istage the function has been computed previously */
+      if ( istage == 0 ) {
+	for(iadj=0; iadj<NADJ; iadj++)
+	  WCOPY(NVAR,&Fcn0[iadj][0],1,&Fcn[iadj][0],1);
+      }
+      /* istage>=1 and a new function evaluation is needed 
+	 at the current istage */
+      else if ( ros_NewF[istage] ) {
+	WCOPY(NVAR*NADJ,&Y[0][0],1,&Ynew[0][0],1);
+	for(j=0; j<istage; j++) {
+	  for(iadj=0; iadj<NADJ; iadj++)
+	    WAXPY(NVAR,ros_A[istage*(istage-1)/2+j], &K[iadj][NVAR*j],1,
+		  &Ynew[iadj][0],1);
+	}
+	
+	Tau = T + ros_Alpha[istage]*Direction*H;
+	for(i=0; i<NVAR; i++)
+	  ros_Hermite3( chk_T[istack-1], chk_T[istack], Tau,
+			&chk_Y[istack-1][i], &chk_Y[istack][i],
+			&chk_dY[istack-1][i], &chk_dY[istack][i], Y0 );
+	JacTemplate(Tau, Y0, Jac);
+	ISTATUS[Njac]++;
+
+#ifdef FULL_ALGEBRA
+	for(i=0; i<NVAR; i++) {
+	  for(j=0; j<NVAR; j++)
+	    Jac[i][j] = -Jac[i][j];
+	}
+#else
+	WSCAL(LU_NONZERO,(-ONE),Jac,1);
+#endif
+
+	for(iadj=0; iadj<NADJ; iadj++) {
+#ifdef FULL_ALGEBRA
+	  for(i=0; i<NVAR; i++)
+	    Fcn[iadj][i] = MATMUL(TRANSPOSE(Jac),Ynew[iadj][i]);
+#else
+	  JacTR_SP_Vec(Jac,&Ynew[iadj][0],&Fcn[iadj][0]);
+#endif
+	}
+      } /* if istage == 1 elseif ros_NewF(istage) */
+
+      for(iadj=0; iadj<NADJ; iadj++)
+	WCOPY(NVAR,&Fcn[iadj][0],1,&K[iadj][ioffset],1);
+      for(j=0; j<istage-1; j++) {
+	HC = ros_C[istage*(istage-1)/2+j]/(Direction*H);
+	for(iadj=0; iadj<NADJ; iadj++)
+	  WAXPY(NVAR,HC,&K[iadj][NVAR*j],1,&K[iadj][ioffset],1);
+      }
+      if((!Autonomous) && (ros_Gamma[istage] != ZERO)) {
+	HG = Direction*H*ros_Gamma[istage];
+	for(iadj=0; iadj<NADJ; iadj++)
+	  WAXPY(NVAR,HG,&dFdT[iadj][0],1,&K[iadj][ioffset],1);
+      }
+      for(iadj=0; iadj<NADJ; iadj++)
+	ros_Solve('T', Ghimj, Pivot, &K[iadj][ioffset], ISTATUS);
+    } /* End of Stage loop */
+    
+/*~~~>  Compute the new solution */
+    for(iadj=0; iadj<NADJ; iadj++) {
+      for(j=0; j<ros_S; j++)
+	WAXPY(NVAR,ros_M[j],&K[iadj][NVAR*j],1,&Y[iadj][0],1);
+    }
+  } /* End of TimeLoop */
+
+/*~~~> Succesful exit */
+  return 1;  /*~~~> The integration was successful */
+
+} /* End of ros_SimpleCadjInt */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+KPP_REAL ros_ErrorNorm ( KPP_REAL Y[], KPP_REAL Ynew[], KPP_REAL Yerr[],
+		       KPP_REAL AbsTol[], KPP_REAL RelTol[], int VectorTol ) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~> Computes the "scaled norm" of the error vector Yerr
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+/* Local variables */
+  KPP_REAL Err, Scale, Ymax;
+  int i;
+
+  Err = ZERO;
+  for(i=0; i<NVAR; i++) {
+    Ymax = MAX(ABS(Y[i]),ABS(Ynew[i]));
+    if (VectorTol)
+      Scale = AbsTol[i]+RelTol[i]*Ymax;
+    else
+      Scale = AbsTol[0]+RelTol[0]*Ymax;
+
+    Err = Err+pow((Yerr[i]/Scale),2);
+  }
+  Err  = SQRT(Err/NVAR);
+
+  return MAX(Err,(KPP_REAL)1.0e-10);
+} /* End of ros_ErrorNorm */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void ros_FunTimeDerivative ( KPP_REAL T, KPP_REAL Roundoff, KPP_REAL Y[],
+			     KPP_REAL Fcn0[], KPP_REAL dFdT[], int ISTATUS[]) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~> The time partial derivative of the function by finite differences
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+/*~~~> Local variables */
+  KPP_REAL Delta;
+  
+  Delta = SQRT(Roundoff)*MAX(DeltaMin,ABS(T));
+  FunTemplate(T+Delta,Y,dFdT);
+  ISTATUS[Nfun]++;
+  WAXPY(NVAR,(-ONE),Fcn0,1,dFdT,1);
+  WSCAL(NVAR,(ONE/Delta),dFdT,1);
+
+} /* End of ros_FunTimeDerivative */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void ros_JacTimeDerivative ( KPP_REAL T, KPP_REAL Roundoff, KPP_REAL Y[],
+			     KPP_REAL Jac0[], KPP_REAL dJdT[], int ISTATUS[]) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~> The time partial derivative of the Jacobian by finite differences
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+/*~~~> Local variables */
+  KPP_REAL Delta;
+
+  Delta = SQRT(Roundoff)*MAX(DeltaMin,ABS(T));
+  JacTemplate(T+Delta,Y,dJdT);
+  ISTATUS[Njac]++;
+#ifdef FULL_ALGEBRA
+  WAXPY(NVAR*NVAR,(-ONE),Jac0,1,dJdT,1);
+  WSCAL(NVAR*NVAR,(ONE/Delta),dJdT,1);
+#else
+  WAXPY(LU_NONZERO,(-ONE),Jac0,1,dJdT,1);
+  WSCAL(LU_NONZERO,(ONE/Delta),dJdT,1);
+#endif
+} /* End of ros_JacTimeDerivative */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+int ros_PrepareMatrix ( KPP_REAL H, int Direction, KPP_REAL gam,
+			KPP_REAL Jac0[], KPP_REAL Ghimj[], int Pivot[], 
+			int ISTATUS[] ) {
+/* --- --- --- --- --- --- --- --- --- --- --- --- ---
+  Prepares the LHS matrix for stage calculations
+  1.  Construct Ghimj = 1/(H*gam) - Jac0
+      "(Gamma H) Inverse Minus Jacobian"
+  2.  Repeat LU decomposition of Ghimj until successful.
+       -half the step size if LU decomposition fails and retry
+       -exit after 5 consecutive fails
+ --- --- --- --- --- --- --- --- --- --- --- --- --- */
+
+/*~~~> Local variables */
+  int i, ising, Nconsecutive;
+  int Singular; /* Boolean value */
+  KPP_REAL ghinv;
+
+  Nconsecutive = 0;
+  Singular = TRUE;
+
+  while (Singular) {
+
+/*~~~>    Construct Ghimj = 1/(H*gam) - Jac0 */
+#ifdef FULL_ALGEBRA
+    WCOPY(NVAR*NVAR,Jac0,1,Ghimj,1);
+    WSCAL(NVAR*NVAR,(-ONE),Ghimj,1);
+    ghinv = ONE/(Direction*H*gam);
+    for(i=0; i<NVAR; i++)
+      Ghimj[i][i] = Ghimj[i][i]+ghinv;
+#else
+    WCOPY(LU_NONZERO,Jac0,1,Ghimj,1);
+    WSCAL(LU_NONZERO,(-ONE),Ghimj,1);
+    ghinv = ONE/(Direction*H*gam);
+    for(i=0; i<NVAR; i++)
+      Ghimj[LU_DIAG[i]] = Ghimj[LU_DIAG[i]]+ghinv;
+#endif
+
+/*~~~>    Compute LU decomposition */
+    ros_Decomp( Ghimj, Pivot, &ising, ISTATUS );
+    if (ising == 0)
+/*~~~>    If successful done */
+      Singular = FALSE;
+    
+    else { /* ising != 0 */
+/*~~~>    If unsuccessful half the step size; 
+          if 5 consecutive fails then return */
+      ISTATUS[Nsng]++;
+      Nconsecutive++;
+      Singular = TRUE;
+      printf( "Warning: LU Decomposition returned ising = %d", ising );
+      if (Nconsecutive <= 5) /*Less than 5 consecutive failed decompositions*/
+	H = H*HALF;
+      else  /* More than 5 consecutive failed decompositions */
+	return Singular;
+
+    }  /* End of ising */
+  }  /* while Singular */
+
+  return Singular;
+} /* End of ros_PrepareMatrix */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void ros_Decomp( KPP_REAL A[], int Pivot[], int* ising, int ISTATUS[] ) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  Template for the LU decomposition
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+#ifdef FULL_ALGEBRA
+  DGETRF( NVAR, NVAR, A, NVAR, Pivot, ising );
+#else
+  *ising = KppDecomp ( A );
+  Pivot[0] = 1;
+#endif
+  ISTATUS[Ndec]++;
+
+} /* End of ros_Decomp */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void ros_Solve( char How, KPP_REAL A[], int Pivot[], KPP_REAL b[], 
+		int ISTATUS[] ) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  Template for the forward/backward substitution 
+  (using pre-computed LU decomposition)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+  switch (How) {
+    case 'N':
+#ifdef FULL_ALGEBRA    
+      DGETRS( 'N', NVAR , 1, A, NVAR, Pivot, b, NVAR, 0 );
+#else
+      KppSolve( A, b );
+#endif
+      break;
+    case 'T':
+#ifdef FULL_ALGEBRA
+      DGETRS( 'T', NVAR , 1, A, NVAR, Pivot, b, NVAR, 0 );
+#else
+      KppSolveTR( A, b, b );
+#endif
+      break;
+    default:
+      printf( "Error: unknown argument in ros_Solve: How=%d", How );
+      exit(0);
+  }
+  ISTATUS[Nsol]++;
+
+} /* End of ros_Solve */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void ros_cadj_Y( KPP_REAL T, KPP_REAL Y[] ) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  Finds the solution Y at T by interpolating the stored forward trajectory
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+/*~~~> Local variables */
+  int i,j;
+
+  if( (T < chk_T[0]) || (T> chk_T[stack_ptr]) ) {
+    printf( "Cannot locate solution at T = %f", T );
+    printf( "Stored trajectory is between Tstart = %f", chk_T[0] );
+    printf( "    and Tend = %f", chk_T[stack_ptr] );
+    exit(0);
+  }
+  for(i=0; i<stack_ptr-1; i++) {
+    if( (T >= chk_T[i]) &&(T <= chk_T[i+1]) )
+      exit(0);
+  }
+
+  for(j=0; j<NVAR; j++ )
+    ros_Hermite3( chk_T[i], chk_T[i+1], T, &chk_Y[i][j], &chk_Y[i+1][j],
+		  &chk_dY[i][j],  &chk_dY[i+1][j], Y );
+
+} /* End of ros_cadj_Y */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void ros_Hermite3( KPP_REAL a, KPP_REAL b, KPP_REAL T, KPP_REAL Ya[],
+		   KPP_REAL Yb[], KPP_REAL Ja[], KPP_REAL Jb[], KPP_REAL Y[]) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  Template for Hermite interpolation of order 5 on the interval [a,b]
+   P = c(1) + c(2)*(x-a) + ... + c(4)*(x-a)^3
+   P[a,b] = [Ya,Yb], P'[a,b] = [Ja,Jb]
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+/*~~~> Local variables */
+  KPP_REAL Tau, amb[3], C[4][NVAR];
+  int i, j;
+
+  amb[0] = ((KPP_REAL)1.0)/(a-b);
+  for(i=1; i<3; i++)
+    amb[i] = amb[i-1]*amb[0];
+
+/* c(1) = ya; */
+  WCOPY(NVAR,Ya,1,&C[0][0],1);
+/* c(2) = ja; */
+  WCOPY(NVAR,Ja,1,&C[1][0],1);
+/* c(3) = 2/(a-b)*ja + 1/(a-b)*jb - 3/(a - b)^2*ya + 3/(a - b)^2*yb; */
+  WCOPY(NVAR,Ya,1,&C[2][0],1);
+  WSCAL(NVAR,-3.0*amb[1],&C[2][0],1);
+  WAXPY(NVAR,3.0*amb[1],Yb,1,&C[2][0],1);
+  WAXPY(NVAR,2.0*amb[0],Ja,1,&C[2][0],1);
+  WAXPY(NVAR,amb[0],Jb,1,&C[2][0],1);
+/* c(4) =  1/(a-b)^2*ja + 1/(a-b)^2*jb - 2/(a-b)^3*ya + 2/(a-b)^3*yb */
+  WCOPY(NVAR,Ya,1,&C[3][0],1);
+  WSCAL(NVAR,-2.0*amb[2],&C[3][0],1);
+  WAXPY(NVAR,2.0*amb[2],Yb,1,&C[3][0],1);
+  WAXPY(NVAR,amb[1],Ja,1,&C[3][0],1);
+  WAXPY(NVAR,amb[1],Jb,1,&C[3][0],1);
+   
+  Tau = T - a;
+  WCOPY(NVAR,&C[3][0],1,Y,1);
+  WSCAL(NVAR,pow(Tau,3),Y,1);
+  for(j=2; j>=0; j--)
+    WAXPY(NVAR,pow(Tau,(j-1)),&C[j][0],1,Y,1);
+
+} /* End of ros_Hermite3 */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void ros_Hermite5( KPP_REAL a, KPP_REAL b, KPP_REAL T, KPP_REAL Ya[], 
+		   KPP_REAL Yb[], KPP_REAL Ja[], KPP_REAL Jb[], KPP_REAL Ha[], 
+		   KPP_REAL Hb[], KPP_REAL Y[] ) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  Template for Hermite interpolation of order 5 on the interval [a,b]
+ P = c(1) + c(2)*(x-a) + ... + c(6)*(x-a)^5
+ P[a,b] = [Ya,Yb], P'[a,b] = [Ja,Jb], P"[a,b] = [Ha,Hb]
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+/*~~~> Local variables */
+  KPP_REAL Tau, amb[5], C[6][NVAR];
+  int i, j;
+
+  amb[0] = ((KPP_REAL)1.0)/(a-b);
+  for(i=1; i<5; i++)
+    amb[i] = amb[i-1]*amb[0];
+
+/* c(1) = ya; */
+  WCOPY(NVAR,Ya,1,&C[0][0],1);
+/* c(2) = ja; */
+  WCOPY(NVAR,Ja,1,&C[1][0],1);
+/* c(3) = ha/2; */
+  WCOPY(NVAR,Ha,1,&C[2][0],1);
+  WSCAL(NVAR,HALF,&C[2][0],1);
+
+/* c(4) = 10*amb(3)*ya - 10*amb(3)*yb - 6*amb(2)*ja - 4*amb(2)*jb  
+          + 1.5*amb(1)*ha - 0.5*amb(1)*hb ; */
+  WCOPY(NVAR,Ya,1,&C[3][0],1);
+  WSCAL(NVAR,10.0*amb[2],&C[3][0],1);
+  WAXPY(NVAR,-10.0*amb[2],Yb,1,&C[3][0],1);
+  WAXPY(NVAR,-6.0*amb[1],Ja,1,&C[3][0],1);
+  WAXPY(NVAR,-4.0*amb[1],Jb,1,&C[3][0],1);
+  WAXPY(NVAR, 1.5*amb[0],Ha,1,&C[3][0],1);
+  WAXPY(NVAR,-0.5*amb[0],Hb,1,&C[3][0],1);
+
+/* c(5) =   15*amb(4)*ya - 15*amb(4)*yb - 8.*amb(3)*ja - 7*amb(3)*jb 
+            + 1.5*amb(2)*ha - 1*amb(2)*hb ; */
+  WCOPY(NVAR,Ya,1,&C[4][0],1);
+  WSCAL(NVAR, 15.0*amb[3],&C[4][0],1);
+  WAXPY(NVAR,-15.0*amb[3],Yb,1,&C[4][0],1);
+  WAXPY(NVAR,-8.0*amb[2],Ja,1,&C[4][0],1);
+  WAXPY(NVAR,-7.0*amb[2],Jb,1,&C[4][0],1);
+  WAXPY(NVAR,1.5*amb[1],Ha,1,&C[4][0],1);
+  WAXPY(NVAR,-amb[1],Hb,1,&C[4][0],1);
+
+/* c(6) =   6*amb(5)*ya - 6*amb(5)*yb - 3.*amb(4)*ja - 3.*amb(4)*jb 
+            + 0.5*amb(3)*ha -0.5*amb(3)*hb ; */
+  WCOPY(NVAR,Ya,1,&C[5][0],1);
+  WSCAL(NVAR, 6.0*amb[4],&C[5][0],1);
+  WAXPY(NVAR,-6.0*amb[4],Yb,1,&C[5][0],1);
+  WAXPY(NVAR,-3.0*amb[3],Ja,1,&C[5][0],1);
+  WAXPY(NVAR,-3.0*amb[3],Jb,1,&C[5][0],1);
+  WAXPY(NVAR, 0.5*amb[2],Ha,1,&C[5][0],1);
+  WAXPY(NVAR,-0.5*amb[2],Hb,1,&C[5][0],1);
+
+  Tau = T - a;
+  WCOPY(NVAR,&C[5][0],1,Y,1);
+  for(j=4; j>=0; j--) {
+    WSCAL(NVAR,Tau,Y,1);
+    WAXPY(NVAR,ONE,&C[j][0],1,Y,1);
+  }
+
+} /* End of ros_Hermite5 */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void Ros2() {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ --- AN L-STABLE METHOD, 2 stages, order 2
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+  KPP_REAL g;
+
+  g = (KPP_REAL)1.0 + ((KPP_REAL)1.0)/SQRT((KPP_REAL)2.0);
+
+  rosMethod = RS2;
+/*~~~> Name of the method */
+  strcpy(ros_Name, "ROS-2");
+/*~~~> Number of stages */
+  ros_S = 2;
+
+/*~~~> The coefficient matrices A and C are strictly lower triangular.
+  The lower triangular (subdiagonal) elements are stored in row-wise order:
+  A[0][1] = ros_A[0], A[0][2]=ros_A[1], A[1][2]=ros_A[2], etc.
+  The general mapping formula is:
+      A[i][j] = ros_A[ (i-1)*(i-2)/2 + j ]
+      C[i][j] = ros_C[ (i-1)*(i-2)/2 + j ] */
+
+  ros_A[0] = ((KPP_REAL)1.0)/g;
+  ros_C[0] = ((KPP_REAL)-2.0)/g;
+
+/*~~~> Does the stage i require a new function evaluation (ros_NewF[i]=TRUE)
+       or does it re-use the function evaluation from stage i-1 
+       (ros_NewF[i]=FALSE) */
+  ros_NewF[0] = TRUE;
+  ros_NewF[1] = TRUE;
+
+/*~~~> M_i = Coefficients for new step solution */
+  ros_M[0]= ((KPP_REAL)3.0)/((KPP_REAL)2.0*g);
+  ros_M[1]= ((KPP_REAL)1.0)/((KPP_REAL)2.0*g);
+
+/* E_i = Coefficients for error estimator */
+  ros_E[0] = ((KPP_REAL)1.0)/((KPP_REAL)2.0*g);
+  ros_E[1] = ((KPP_REAL)1.0)/((KPP_REAL)2.0*g);
+
+/*~~~> ros_ELO = estimator of local order - the minimum between the
+       main and the embedded scheme orders plus one */
+  ros_ELO = (KPP_REAL)2.0;
+
+/*~~~> Y_stage_i ~ Y( T + H*Alpha_i ) */
+  ros_Alpha[0] = (KPP_REAL)0.0;
+  ros_Alpha[1] = (KPP_REAL)1.0;
+
+/*~~~> Gamma_i = \sum_j  gamma_{i,j} */
+  ros_Gamma[0] = g;
+  ros_Gamma[1] =-g;
+
+} /* End of Ros2 */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void Ros3() {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ --- AN L-STABLE METHOD, 3 stages, order 3, 2 function evaluations
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+  rosMethod = RS3;
+/*~~~> Name of the method */
+  strcpy(ros_Name, "ROS-3");
+/*~~~> Number of stages */
+  ros_S = 3;
+
+/*~~~> The coefficient matrices A and C are strictly lower triangular.
+   The lower triangular (subdiagonal) elements are stored in row-wise order:
+   A[0][1] = ros_A[0], A[0][2]=ros_A[1], A[1][2]=ros_A[2], etc.
+   The general mapping formula is:
+       A[i][j] = ros_A[ (i-1)*(i-2)/2 + j ]
+       C[i][j] = ros_C[ (i-1)*(i-2)/2 + j ] */
+
+  ros_A[0]= (KPP_REAL)1.0;
+  ros_A[1]= (KPP_REAL)1.0;
+  ros_A[2]= (KPP_REAL)0.0;
+  ros_C[0] = (KPP_REAL)-0.10156171083877702091975600115545e01;
+  ros_C[1] = (KPP_REAL) 0.40759956452537699824805835358067e01;
+  ros_C[2] = (KPP_REAL) 0.92076794298330791242156818474003e01;
+
+/*~~~> Does the stage i require a new function evaluation (ros_NewF[i]=TRUE)
+       or does it re-use the function evaluation from stage i-1 
+       (ros_NewF[i]=FALSE) */
+  ros_NewF[0] = TRUE;
+  ros_NewF[1] = TRUE;
+  ros_NewF[2] = FALSE;
+/*~~~> M_i = Coefficients for new step solution */
+  ros_M[0] = (KPP_REAL) 0.1e01;
+  ros_M[1] = (KPP_REAL) 0.61697947043828245592553615689730e01;
+  ros_M[2] = (KPP_REAL)-0.42772256543218573326238373806514;
+/* E_i = Coefficients for error estimator */
+  ros_E[0] = (KPP_REAL) 0.5;
+  ros_E[1] = (KPP_REAL)-0.29079558716805469821718236208017e01;
+  ros_E[2] = (KPP_REAL) 0.22354069897811569627360909276199;
+
+/*~~~> ros_ELO = estimator of local order - the minimum between the
+       main and the embedded scheme orders plus 1 */
+  ros_ELO = (KPP_REAL)3.0;
+/*~~~> Y_stage_i ~ Y( T + H*Alpha_i ) */
+  ros_Alpha[0]= (KPP_REAL)0.0;
+  ros_Alpha[1]= (KPP_REAL)0.43586652150845899941601945119356;
+  ros_Alpha[2]= (KPP_REAL)0.43586652150845899941601945119356;
+/*~~~> Gamma_i = \sum_j  gamma_{i,j} */
+  ros_Gamma[0]= (KPP_REAL)0.43586652150845899941601945119356;
+  ros_Gamma[1]= (KPP_REAL)0.24291996454816804366592249683314;
+  ros_Gamma[2]= (KPP_REAL)0.21851380027664058511513169485832e01;
+
+} /* End of Ros3 */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void Ros4() {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+     L-STABLE ROSENBROCK METHOD OF ORDER 4, WITH 4 STAGES
+     L-STABLE EMBEDDED ROSENBROCK METHOD OF ORDER 3
+
+      E. HAIRER AND G. WANNER, SOLVING ORDINARY DIFFERENTIAL
+      EQUATIONS II. STIFF AND DIFFERENTIAL-ALGEBRAIC PROBLEMS.
+      SPRINGER SERIES IN COMPUTATIONAL MATHEMATICS,
+      SPRINGER-VERLAG (1990)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+  rosMethod = RS4;
+/*~~~> Name of the method */
+  strcpy(ros_Name, "ROS-4");
+/*~~~> Number of stages */
+  ros_S = 4;
+
+/*~~~> The coefficient matrices A and C are strictly lower triangular.
+   The lower triangular (subdiagonal) elements are stored in row-wise order:
+   A[0][1] = ros_A[0], A[0][2]=ros_A[1], A[1][2]=ros_A[2], etc.
+   The general mapping formula is:
+       A[i][j] = ros_A[ (i-1)*(i-2)/2 + j ]
+       C[i][j] = ros_C[ (i-1)*(i-2)/2 + j ] */
+
+  ros_A[0] = (KPP_REAL)0.2000000000000000e01;
+  ros_A[1] = (KPP_REAL)0.1867943637803922e01;
+  ros_A[2] = (KPP_REAL)0.2344449711399156;
+  ros_A[3] = ros_A[1];
+  ros_A[4] = ros_A[2];
+  ros_A[5] = (KPP_REAL)0.0;
+
+  ros_C[0] = (KPP_REAL)-0.7137615036412310e01;
+  ros_C[1] = (KPP_REAL) 0.2580708087951457e01;
+  ros_C[2] = (KPP_REAL) 0.6515950076447975;
+  ros_C[3] = (KPP_REAL)-0.2137148994382534e01;
+  ros_C[4] = (KPP_REAL)-0.3214669691237626;
+  ros_C[5] = (KPP_REAL)-0.6949742501781779;
+
+/*~~~> Does the stage i require a new function evaluation (ros_NewF[i]=TRUE)
+       or does it re-use the function evaluation from stage i-1 
+       (ros_NewF[i]=FALSE) */
+  ros_NewF[0] = TRUE;
+  ros_NewF[1] = TRUE;
+  ros_NewF[2] = TRUE;
+  ros_NewF[3] = FALSE;
+/*~~~> M_i = Coefficients for new step solution */
+  ros_M[0] = (KPP_REAL)0.2255570073418735e01;
+  ros_M[1] = (KPP_REAL)0.2870493262186792;
+  ros_M[2] = (KPP_REAL)0.4353179431840180;
+  ros_M[3] = (KPP_REAL)0.1093502252409163e01;
+/*~~~> E_i  = Coefficients for error estimator */
+  ros_E[0] = (KPP_REAL)-0.2815431932141155;
+  ros_E[1] = (KPP_REAL)-0.7276199124938920e-01;
+  ros_E[2] = (KPP_REAL)-0.1082196201495311;
+  ros_E[3] = (KPP_REAL)-0.1093502252409163e01;
+
+/*~~~> ros_ELO  = estimator of local order - the minimum between the
+       main and the embedded scheme orders plus 1 */
+  ros_ELO = (KPP_REAL)4.0;
+/*~~~> Y_stage_i ~ Y( T + H*Alpha_i ) */
+  ros_Alpha[0] = (KPP_REAL)0.0;
+  ros_Alpha[1] = (KPP_REAL)0.1145640000000000e01;
+  ros_Alpha[2] = (KPP_REAL)0.6552168638155900;
+  ros_Alpha[3] = ros_Alpha[2];
+/*~~~> Gamma_i = \sum_j  gamma_{i,j} */ 
+  ros_Gamma[0] = (KPP_REAL) 0.5728200000000000;
+  ros_Gamma[1] = (KPP_REAL)-0.1769193891319233e01;
+  ros_Gamma[2] = (KPP_REAL) 0.7592633437920482;
+  ros_Gamma[3] = (KPP_REAL)-0.1049021087100450;
+
+} /* End of Ros4 */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void Rodas3() {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ --- A STIFFLY-STABLE METHOD, 4 stages, order 3
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+  rosMethod = RD3;
+/*~~~> Name of the method */
+  strcpy(ros_Name, "RODAS-3");
+/*~~~> Number of stages */
+  ros_S = 4;
+
+/*~~~> The coefficient matrices A and C are strictly lower triangular.
+   The lower triangular (subdiagonal) elements are stored in row-wise order:
+   A[0][1] = ros_A[0], A[0][2]=ros_A[1], A[1][2]=ros_A[2], etc.
+   The general mapping formula is:
+       A[i][j] = ros_A[ (i-1)*(i-2)/2 + j ]
+       C[i][j] = ros_C[ (i-1)*(i-2)/2 + j ] */
+
+  ros_A[0] = (KPP_REAL)0.0;
+  ros_A[1] = (KPP_REAL)2.0;
+  ros_A[2] = (KPP_REAL)0.0;
+  ros_A[3] = (KPP_REAL)2.0;
+  ros_A[4] = (KPP_REAL)0.0;
+  ros_A[5] = (KPP_REAL)1.0;
+
+  ros_C[0] = (KPP_REAL) 4.0;
+  ros_C[1] = (KPP_REAL) 1.0;
+  ros_C[2] = (KPP_REAL)-1.0;
+  ros_C[3] = (KPP_REAL) 1.0;
+  ros_C[4] = (KPP_REAL)-1.0;
+  ros_C[5] = -(((KPP_REAL)8.0)/((KPP_REAL)3.0));
+
+/*~~~> Does the stage i require a new function evaluation (ros_NewF[i]=TRUE)
+       or does it re-use the function evaluation from stage i-1 
+       (ros_NewF[i]=FALSE) */
+  ros_NewF[0] = TRUE;
+  ros_NewF[1] = FALSE;
+  ros_NewF[2] = TRUE;
+  ros_NewF[3] = TRUE;
+/*~~~> M_i = Coefficients for new step solution */
+  ros_M[0] = (KPP_REAL)2.0;
+  ros_M[1] = (KPP_REAL)0.0;
+  ros_M[2] = (KPP_REAL)1.0;
+  ros_M[3] = (KPP_REAL)1.0;
+/*~~~> E_i  = Coefficients for error estimator */
+  ros_E[0] = (KPP_REAL)0.0;
+  ros_E[1] = (KPP_REAL)0.0;
+  ros_E[2] = (KPP_REAL)0.0;
+  ros_E[3] = (KPP_REAL)1.0;
+
+/*~~~> ros_ELO  = estimator of local order - the minimum between the
+    main and the embedded scheme orders plus 1 */
+  ros_ELO  = (KPP_REAL)3.0;
+/*~~~> Y_stage_i ~ Y( T + H*Alpha_i ) */
+  ros_Alpha[0] = (KPP_REAL)0.0;
+  ros_Alpha[1] = (KPP_REAL)0.0;
+  ros_Alpha[2] = (KPP_REAL)1.0;
+  ros_Alpha[3] = (KPP_REAL)1.0;
+/*~~~> Gamma_i = \sum_j  gamma_{i,j} */
+  ros_Gamma[0] = (KPP_REAL)0.5;
+  ros_Gamma[1] = (KPP_REAL)1.5;
+  ros_Gamma[2] = (KPP_REAL)0.0;
+  ros_Gamma[3] = (KPP_REAL)0.0;
+
+} /* End of Rodas3 */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void Rodas4() {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+     STIFFLY-STABLE ROSENBROCK METHOD OF ORDER 4, WITH 6 STAGES
+
+      E. HAIRER AND G. WANNER, SOLVING ORDINARY DIFFERENTIAL
+      EQUATIONS II. STIFF AND DIFFERENTIAL-ALGEBRAIC PROBLEMS.
+      SPRINGER SERIES IN COMPUTATIONAL MATHEMATICS,
+      SPRINGER-VERLAG (1996)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+  rosMethod = RD4;
+/*~~~> Name of the method */
+  strcpy(ros_Name, "RODAS-4");
+/*~~~> Number of stages */
+  ros_S = 6;
+
+/*~~~> Y_stage_i ~ Y( T + H*Alpha_i ) */
+  ros_Alpha[0] = (KPP_REAL)0.000;
+  ros_Alpha[1] = (KPP_REAL)0.386;
+  ros_Alpha[2] = (KPP_REAL)0.210;
+  ros_Alpha[3] = (KPP_REAL)0.630;
+  ros_Alpha[4] = (KPP_REAL)1.000;
+  ros_Alpha[5] = (KPP_REAL)1.000;
+
+/*~~~> Gamma_i = \sum_j  gamma_{i,j} */
+  ros_Gamma[0] = (KPP_REAL) 0.2500000000000000;
+  ros_Gamma[1] = (KPP_REAL)-0.1043000000000000;
+  ros_Gamma[2] = (KPP_REAL) 0.1035000000000000;
+  ros_Gamma[3] = (KPP_REAL)-0.3620000000000023e-01;
+  ros_Gamma[4] = (KPP_REAL) 0.0;
+  ros_Gamma[5] = (KPP_REAL) 0.0;
+
+/*~~~> The coefficient matrices A and C are strictly lower triangular.
+   The lower triangular (subdiagonal) elements are stored in row-wise order:
+   A[0][1] = ros_A[0], A[0][2]=ros_A[1], A[1][2]=ros_A[2], etc.
+   The general mapping formula is:  A[i][j] = ros_A[ (i-1)*(i-2)/2 + j ]
+                  C[i][j] = ros_C[ (i-1)*(i-2)/2 + j ] */
+
+  ros_A[0] = (KPP_REAL) 0.1544000000000000e01;
+  ros_A[1] = (KPP_REAL) 0.9466785280815826;
+  ros_A[2] = (KPP_REAL) 0.2557011698983284;
+  ros_A[3] = (KPP_REAL) 0.3314825187068521e01;
+  ros_A[4] = (KPP_REAL) 0.2896124015972201e01;
+  ros_A[5] = (KPP_REAL) 0.9986419139977817;
+  ros_A[6] = (KPP_REAL) 0.1221224509226641e01;
+  ros_A[7] = (KPP_REAL) 0.6019134481288629e01;
+  ros_A[8] = (KPP_REAL) 0.1253708332932087e02;
+  ros_A[9] = (KPP_REAL)-0.6878860361058950;
+  ros_A[10] = ros_A[6];
+  ros_A[11] = ros_A[7];
+  ros_A[12] = ros_A[8];
+  ros_A[13] = ros_A[9];
+  ros_A[14] = (KPP_REAL)1.0;
+  
+  ros_C[0]  = (KPP_REAL)-0.5668800000000000e01;
+  ros_C[1]  = (KPP_REAL)-0.2430093356833875e01;
+  ros_C[2]  = (KPP_REAL)-0.2063599157091915;
+  ros_C[3]  = (KPP_REAL)-0.1073529058151375;
+  ros_C[4]  = (KPP_REAL)-0.9594562251023355e01;
+  ros_C[5]  = (KPP_REAL)-0.2047028614809616e02;
+  ros_C[6]  = (KPP_REAL) 0.7496443313967647e01;
+  ros_C[7]  = (KPP_REAL)-0.1024680431464352e02;
+  ros_C[8]  = (KPP_REAL)-0.3399990352819905e02;
+  ros_C[9]  = (KPP_REAL) 0.1170890893206160e02;
+  ros_C[10] = (KPP_REAL) 0.8083246795921522e01;
+  ros_C[11] = (KPP_REAL)-0.7981132988064893e01;
+  ros_C[12] = (KPP_REAL)-0.3152159432874371e02;
+  ros_C[13] = (KPP_REAL) 0.1631930543123136e02;
+  ros_C[14] = (KPP_REAL)-0.6058818238834054e01;
+
+/*~~~> M_i = Coefficients for new step solution */
+  ros_M[0] = ros_A[6];
+  ros_M[1] = ros_A[7];
+  ros_M[2] = ros_A[8];
+  ros_M[3] = ros_A[9];
+  ros_M[4] = (KPP_REAL)1.0;
+  ros_M[5] = (KPP_REAL)1.0;
+
+/*~~~> E_i  = Coefficients for error estimator */
+  ros_E[0] = (KPP_REAL)0.0;
+  ros_E[1] = (KPP_REAL)0.0;
+  ros_E[2] = (KPP_REAL)0.0;
+  ros_E[3] = (KPP_REAL)0.0;
+  ros_E[4] = (KPP_REAL)0.0;
+  ros_E[5] = (KPP_REAL)1.0;
+
+/*~~~> Does the stage i require a new function evaluation (ros_NewF[i]=TRUE)
+       or does it re-use the function evaluation from stage i-1 
+       (ros_NewF[i]=FALSE) */
+  ros_NewF[0] = TRUE;
+  ros_NewF[1] = TRUE;
+  ros_NewF[2] = TRUE;
+  ros_NewF[3] = TRUE;
+  ros_NewF[4] = TRUE;
+  ros_NewF[5] = TRUE;
+
+/*~~~> ros_ELO  = estimator of local order - the minimum between the
+        main and the embedded scheme orders plus 1 */
+  ros_ELO = (KPP_REAL)4.0;
+
+} /* End of Rodas4 */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void FunTemplate( KPP_REAL T, KPP_REAL Y[], KPP_REAL Ydot[] ) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  Template for the ODE function call.
+  Updates the rate coefficients (and possibly the fixed species) at each call
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+/*~~~> Local variables */
+  KPP_REAL Told;
+
+  Told = TIME;
+  TIME = T;
+  Update_SUN();
+  Update_RCONST();
+  Fun( Y, FIX, RCONST, Ydot );
+  TIME = Told;
+
+} /* End of FunTemplate */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void JacTemplate( KPP_REAL T, KPP_REAL Y[], KPP_REAL Jcb[] ) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  Template for the ODE Jacobian call.
+  Updates the rate coefficients (and possibly the fixed species) at each call
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+/*~~~> Local variables */
+  KPP_REAL Told;
+#ifdef FULL_ALGEBRA
+  KPP_REAL JV[LU_NONZERO];
+  int i, j;
+#endif
+
+  Told = TIME;
+  TIME = T;
+  Update_SUN();
+  Update_RCONST();
+#ifdef FULL_ALGEBRA
+  Jac_SP(Y, FIX, RCONST, JV);
+  for(j=0; j<NVAR; j++) {
+    for(i=0; i<NVAR; i++)
+      Jcb[i][j] = (KPP_REAL)0.0;
+  }
+  for(i=0; i<LU_NONZERO; i++)
+    Jcb[LU_ICOL[i]][LU_IROW[i]] = JV[i];
+#else
+  Jac_SP( Y, FIX, RCONST, Jcb );
+#endif
+  TIME = Told;
+} /* End of JacTemplate */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void HessTemplate( KPP_REAL T, KPP_REAL Y[], KPP_REAL Hes[] ) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  Template for the ODE Hessian call.
+  Updates the rate coefficients (and possibly the fixed species) at each call
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+/*~~~> Local variables */
+  KPP_REAL Told;
+
+  Told = TIME;
+  TIME = T;
+  Update_SUN();
+  Update_RCONST();
+  Hessian( Y, FIX, RCONST, Hes );
+  TIME = Told;
+
+} /* End of HessTemplate */
+
+/* End of INTEGRATE function                                                 */
+/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/rosenbrock_adj.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/rosenbrock_adj.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/rosenbrock_adj.def	(revision 2696)
@@ -0,0 +1,23 @@
+ 
+#FUNCTION AGGREGATE
+#JACOBIAN SPARSE_LU_ROW
+
+#DOUBLE ON 
+#INTFILE rosenbrock_adj
+
+#INLINE F77_GLOBAL
+      INTEGER Autonomous
+      COMMON /INTGDATA/ Autonomous
+      REAL*8 STEPSTART
+      COMMON /GDATA/ STEPSTART
+#ENDINLINE
+
+#INLINE F77_INIT
+        STEPMIN=0.0001
+        STEPMAX=3600.
+        Autonomous = 1 
+        STEPSTART=STEPMIN
+#ENDINLINE
+
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/rosenbrock_adj.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/rosenbrock_adj.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/rosenbrock_adj.f90	(revision 2696)
@@ -0,0 +1,2570 @@
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
+!  Discrete adjoints of Rosenbrock,                                       !
+!           for several Rosenbrock methods:                               !
+!               * Ros2                                                    !
+!               * Ros3                                                    !
+!               * Ros4                                                    !
+!               * Rodas3                                                  !
+!               * Rodas4                                                  !
+!  By default the code employs the KPP sparse linear algebra routines     !
+!  Compile with -DFULL_ALGEBRA to use full linear algebra (LAPACK)        !
+!                                                                         !
+!    (C)  Adrian Sandu, August 2004                                       !
+!    Virginia Polytechnic Institute and State University                  !
+!    Contact: sandu@cs.vt.edu                                             !
+!    Revised by Philipp Miehe and Adrian Sandu, May 2006                  ! 
+!    This implementation is part of KPP - the Kinetic PreProcessor        !
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
+
+MODULE KPP_ROOT_Integrator
+
+   USE KPP_ROOT_Precision
+   USE KPP_ROOT_Parameters
+   USE KPP_ROOT_Global
+   USE KPP_ROOT_LinearAlgebra
+   USE KPP_ROOT_Rates
+   USE KPP_ROOT_Function
+   USE KPP_ROOT_Jacobian
+   USE KPP_ROOT_Hessian
+   USE KPP_ROOT_Util
+   
+   IMPLICIT NONE
+   PUBLIC
+   SAVE
+  
+!~~~>  Statistics on the work performed by the Rosenbrock method
+   INTEGER, PARAMETER :: Nfun=1, Njac=2, Nstp=3, Nacc=4, &
+                         Nrej=5, Ndec=6, Nsol=7, Nsng=8, &
+                         Ntexit=1, Nhexit=2, Nhnew = 3
+
+
+CONTAINS ! Routines in the module KPP_ROOT_Integrator
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+SUBROUTINE INTEGRATE_ADJ( NADJ, Y, Lambda, TIN, TOUT, &
+           ATOL_adj, RTOL_adj,                        &
+           ICNTRL_U, RCNTRL_U, ISTATUS_U, RSTATUS_U )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+   IMPLICIT NONE        
+    
+!~~~> Y - Concentrations
+   KPP_REAL  :: Y(NVAR)
+!~~~> NADJ - No. of cost functionals for which adjoints
+!                are evaluated simultaneously
+!            If single cost functional is considered (like in
+!                most applications) simply set NADJ = 1      
+   INTEGER NADJ
+!~~~> Lambda - Sensitivities w.r.t. concentrations
+!     Note: Lambda (1:NVAR,j) contains sensitivities of
+!           the j-th cost functional w.r.t. Y(1:NVAR), j=1...NADJ
+   KPP_REAL  :: Lambda(NVAR,NADJ)
+   KPP_REAL, INTENT(IN)  :: TIN  ! TIN  - Start Time
+   KPP_REAL, INTENT(IN)  :: TOUT ! TOUT - End Time
+!~~~> Tolerances for adjoint calculations
+!     (used only for full continuous adjoint)   
+   KPP_REAL, INTENT(IN)  :: ATOL_adj(NVAR,NADJ), RTOL_adj(NVAR,NADJ)
+!~~~> Optional input parameters and statistics
+   INTEGER,       INTENT(IN),  OPTIONAL :: ICNTRL_U(20)
+   KPP_REAL, INTENT(IN),  OPTIONAL :: RCNTRL_U(20)
+   INTEGER,       INTENT(OUT), OPTIONAL :: ISTATUS_U(20)
+   KPP_REAL, INTENT(OUT), OPTIONAL :: RSTATUS_U(20)
+
+   KPP_REAL :: RCNTRL(20), RSTATUS(20)
+   INTEGER       :: ICNTRL(20), ISTATUS(20), IERR
+
+   INTEGER, SAVE :: Ntotal
+
+
+   ICNTRL(1:20)  = 0
+   RCNTRL(1:20)  = 0.0_dp
+   ISTATUS(1:20) = 0
+   RSTATUS(1:20) = 0.0_dp
+   
+   
+!~~~> fine-tune the integrator:
+!   ICNTRL(1) = 0       ! 0 = non-autonomous, 1 = autonomous
+!   ICNTRL(2) = 1       ! 0 = scalar, 1 = vector tolerances
+!   RCNTRL(3) = STEPMIN ! starting step
+!   ICNTRL(3) = 5       ! choice of the method for forward integration
+!   ICNTRL(6) = 1       ! choice of the method for continuous adjoint
+!   ICNTRL(7) = 2       ! 1=none, 2=discrete, 3=full continuous, 4=simplified continuous adjoint
+!   ICNTRL(8) = 1       ! Save fwd LU factorization: 0 = *don't* save, 1 = save
+
+
+   ! if optional parameters are given, and if they are >=0, then they overwrite default settings
+   IF (PRESENT(ICNTRL_U)) THEN
+     WHERE(ICNTRL_U(:) >= 0) ICNTRL(:) = ICNTRL_U(:)
+   END IF
+   IF (PRESENT(RCNTRL_U)) THEN
+     WHERE(RCNTRL_U(:) >= 0) RCNTRL(:) = RCNTRL_U(:)
+   END IF
+
+   
+   CALL RosenbrockADJ(Y, NADJ, Lambda,                 &
+         TIN, TOUT,                                    &
+         ATOL, RTOL, ATOL_adj, RTOL_adj,               &
+         RCNTRL, ICNTRL, RSTATUS, ISTATUS, IERR)
+
+
+!~~~> Debug option: show number of steps
+!    Ntotal = Ntotal + ISTATUS(Nstp)
+!    WRITE(6,777) ISTATUS(Nstp),Ntotal,VAR(ind_O3),VAR(ind_NO2)
+!777 FORMAT('NSTEPS=',I6,' (',I6,')  O3=',E24.14,'  NO2=',E24.14)    
+
+   IF (IERR < 0) THEN
+     print *,'RosenbrockADJ: Unsucessful step at T=',  &
+         TIN,' (IERR=',IERR,')'
+   END IF
+
+   STEPMIN = RSTATUS(Nhexit)
+   ! if optional parameters are given for output 
+   !         copy to them to return information
+   IF (PRESENT(ISTATUS_U)) ISTATUS_U(:) = ISTATUS(:)
+   IF (PRESENT(RSTATUS_U)) RSTATUS_U(:) = RSTATUS(:)
+
+END SUBROUTINE INTEGRATE_ADJ
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+SUBROUTINE RosenbrockADJ( Y, NADJ, Lambda,             &
+           Tstart, Tend,                               &
+           AbsTol, RelTol, AbsTol_adj, RelTol_adj,     &
+           RCNTRL, ICNTRL, RSTATUS, ISTATUS, IERR)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!   
+!    ADJ = Adjoint of the Tangent Linear Model of a Rosenbrock Method
+!
+!    Solves the system y'=F(t,y) using a RosenbrockADJ method defined by:
+!
+!     G = 1/(H*gamma(1)) - Jac(t0,Y0)
+!     T_i = t0 + Alpha(i)*H
+!     Y_i = Y0 + \sum_{j=1}^{i-1} A(i,j)*K_j
+!     G * K_i = Fun( T_i, Y_i ) + \sum_{j=1}^S C(i,j)/H * K_j +
+!         gamma(i)*dF/dT(t0, Y0)
+!     Y1 = Y0 + \sum_{j=1}^S M(j)*K_j 
+!
+!    For details on RosenbrockADJ methods and their implementation consult:
+!      E. Hairer and G. Wanner
+!      "Solving ODEs II. Stiff and differential-algebraic problems".
+!      Springer series in computational mathematics, Springer-Verlag, 1996.  
+!    The codes contained in the book inspired this implementation.       
+!
+!    (C)  Adrian Sandu, August 2004
+!    Virginia Polytechnic Institute and State University    
+!    Contact: sandu@cs.vt.edu
+!    Revised by Philipp Miehe and Adrian Sandu, May 2006                   
+!    This implementation is part of KPP - the Kinetic PreProcessor
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!    
+!~~~>   INPUT ARGUMENTS: 
+!    
+!-     Y(NVAR)    = vector of initial conditions (at T=Tstart)
+!      NADJ       -> dimension of linearized system, 
+!                   i.e. the number of sensitivity coefficients
+!-     Lambda(NVAR,NADJ) -> vector of initial sensitivity conditions (at T=Tstart)
+!-    [Tstart,Tend]  = time range of integration
+!     (if Tstart>Tend the integration is performed backwards in time)  
+!-    RelTol, AbsTol = user precribed accuracy
+!- SUBROUTINE Fun( T, Y, Ydot ) = ODE function, 
+!                       returns Ydot = Y' = F(T,Y) 
+!- SUBROUTINE Jac( T, Y, Jcb ) = Jacobian of the ODE function,
+!                       returns Jcb = dF/dY 
+!-    ICNTRL(1:10)    = integer inputs parameters
+!-    RCNTRL(1:10)    = real inputs parameters
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>     OUTPUT ARGUMENTS:  
+!     
+!-    Y(NVAR)    -> vector of final states (at T->Tend)
+!-    Lambda(NVAR,NADJ) -> vector of final sensitivities (at T=Tend)
+!-    ICNTRL(11:20)   -> integer output parameters
+!-    RCNTRL(11:20)   -> real output parameters
+!-    IERR       -> job status upon return
+!       - succes (positive value) or failure (negative value) -
+!           =  1 : Success
+!           = -1 : Improper value for maximal no of steps
+!           = -2 : Selected RosenbrockADJ method not implemented
+!           = -3 : Hmin/Hmax/Hstart must be positive
+!           = -4 : FacMin/FacMax/FacRej must be positive
+!           = -5 : Improper tolerance values
+!           = -6 : No of steps exceeds maximum bound
+!           = -7 : Step size too small
+!           = -8 : Matrix is repeatedly singular
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+!~~~>     INPUT PARAMETERS:
+!
+!    Note: For input parameters equal to zero the default values of the
+!       corresponding variables are used.
+!
+!    ICNTRL(1)   = 1: F = F(y)   Independent of T (AUTONOMOUS)
+!              = 0: F = F(t,y) Depends on T (NON-AUTONOMOUS)
+!
+!    ICNTRL(2)   = 0: AbsTol, RelTol are NVAR-dimensional vectors
+!              = 1:  AbsTol, RelTol are scalars
+!
+!    ICNTRL(3)  -> selection of a particular Rosenbrock method
+!        = 0 :  default method is Rodas3
+!        = 1 :  method is  Ros2
+!        = 2 :  method is  Ros3 
+!        = 3 :  method is  Ros4 
+!        = 4 :  method is  Rodas3
+!        = 5:   method is  Rodas4
+!
+!    ICNTRL(4)  -> maximum number of integration steps
+!        For ICNTRL(4)=0) the default value of BUFSIZE is used
+!
+!    ICNTRL(6)  -> selection of a particular Rosenbrock method for the
+!                continuous adjoint integration - for cts adjoint it
+!                can be different than the forward method ICNTRL(3)
+!         Note 1: to avoid interpolation errors (which can be huge!) 
+!                   it is recommended to use only ICNTRL(7) = 2 or 4
+!         Note 2: the performance of the full continuous adjoint
+!                   strongly depends on the forward solution accuracy Abs/RelTol
+!
+!    ICNTRL(7) -> Type of adjoint algorithm
+!         = 0 : default is discrete adjoint ( of method ICNTRL(3) )
+!         = 1 : no adjoint       
+!         = 2 : discrete adjoint ( of method ICNTRL(3) )
+!         = 3 : fully adaptive continuous adjoint ( with method ICNTRL(6) )
+!         = 4 : simplified continuous adjoint ( with method ICNTRL(6) )
+!
+!    ICNTRL(8)  -> checkpointing the LU factorization at each step:
+!        ICNTRL(8)=0 : do *not* save LU factorization (the default)
+!        ICNTRL(8)=1 : save LU factorization
+!        Note: if ICNTRL(7)=1 the LU factorization is *not* saved
+!
+!~~~>  Real input parameters:
+!
+!    RCNTRL(1)  -> Hmin, lower bound for the integration step size
+!          It is strongly recommended to keep Hmin = ZERO 
+!
+!    RCNTRL(2)  -> Hmax, upper bound for the integration step size
+!
+!    RCNTRL(3)  -> Hstart, starting value for the integration step size
+!          
+!    RCNTRL(4)  -> FacMin, lower bound on step decrease factor (default=0.2)
+!
+!    RCNTRL(5)  -> FacMax, upper bound on step increase factor (default=6)
+!
+!    RCNTRL(6)  -> FacRej, step decrease factor after multiple rejections
+!            (default=0.1)
+!
+!    RCNTRL(7)  -> FacSafe, by which the new step is slightly smaller 
+!         than the predicted value  (default=0.9)
+!
+!    RCNTRL(8)  -> ThetaMin. If Newton convergence rate smaller
+!                  than ThetaMin the Jacobian is not recomputed;
+!                  (default=0.001)
+!
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+!~~~>     OUTPUT PARAMETERS:
+!
+!    Note: each call to RosenbrockADJ adds the corrent no. of fcn calls
+!      to previous value of ISTATUS(1), and similar for the other params.
+!      Set ISTATUS(1:10) = 0 before call to avoid this accumulation.
+!
+!    ISTATUS(1) = No. of function calls
+!    ISTATUS(2) = No. of jacobian calls
+!    ISTATUS(3) = No. of steps
+!    ISTATUS(4) = No. of accepted steps
+!    ISTATUS(5) = No. of rejected steps (except at the beginning)
+!    ISTATUS(6) = No. of LU decompositions
+!    ISTATUS(7) = No. of forward/backward substitutions
+!    ISTATUS(8) = No. of singular matrix decompositions
+!
+!    RSTATUS(1)  -> Texit, the time corresponding to the 
+!                   computed Y upon return
+!    RSTATUS(2)  -> Hexit, last accepted step before exit
+!    For multiple restarts, use Hexit as Hstart in the following run 
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  IMPLICIT NONE
+   
+!~~~>  Arguments   
+   KPP_REAL, INTENT(INOUT) :: Y(NVAR)
+   INTEGER, INTENT(IN)          :: NADJ
+   KPP_REAL, INTENT(INOUT) :: Lambda(NVAR,NADJ)
+   KPP_REAL, INTENT(IN)    :: Tstart,Tend
+   KPP_REAL, INTENT(IN)    :: AbsTol(NVAR),RelTol(NVAR)
+   KPP_REAL, INTENT(IN)    :: AbsTol_adj(NVAR,NADJ), RelTol_adj(NVAR,NADJ)
+   INTEGER, INTENT(IN)          :: ICNTRL(20)
+   KPP_REAL, INTENT(IN)    :: RCNTRL(20)
+   INTEGER, INTENT(INOUT)       :: ISTATUS(20)
+   KPP_REAL, INTENT(INOUT) :: RSTATUS(20)
+   INTEGER, INTENT(OUT)         :: IERR
+!~~~>  Parameters of the Rosenbrock method, up to 6 stages
+   INTEGER ::  ros_S, rosMethod
+   INTEGER, PARAMETER :: RS2=1, RS3=2, RS4=3, RD3=4, RD4=5
+   KPP_REAL :: ros_A(15), ros_C(15), ros_M(6), ros_E(6), &
+                    ros_Alpha(6), ros_Gamma(6), ros_ELO
+   LOGICAL :: ros_NewF(6)
+   CHARACTER(LEN=12) :: ros_Name
+!~~~>  Types of Adjoints Implemented
+   INTEGER, PARAMETER :: Adj_none = 1, Adj_discrete = 2,      &
+                   Adj_continuous = 3, Adj_simple_continuous = 4
+!~~~>  Checkpoints in memory
+   INTEGER, PARAMETER :: bufsize = 200000
+   INTEGER :: stack_ptr = 0 ! last written entry
+   KPP_REAL, DIMENSION(:),   POINTER :: chk_H, chk_T
+   KPP_REAL, DIMENSION(:,:), POINTER :: chk_Y, chk_K, chk_J
+   KPP_REAL, DIMENSION(:,:), POINTER :: chk_dY, chk_d2Y
+!~~~>  Local variables     
+   KPP_REAL :: Roundoff, FacMin, FacMax, FacRej, FacSafe
+   KPP_REAL :: Hmin, Hmax, Hstart
+   KPP_REAL :: Texit
+   INTEGER :: i, UplimTol, Max_no_steps
+   INTEGER :: AdjointType, CadjMethod 
+   LOGICAL :: Autonomous, VectorTol, SaveLU
+!~~~>   Parameters
+   KPP_REAL, PARAMETER :: ZERO = 0.0d0, ONE  = 1.0d0
+   KPP_REAL, PARAMETER :: DeltaMin = 1.0d-5
+
+!~~~>  Initialize statistics
+   ISTATUS(1:20) = 0
+   RSTATUS(1:20) = ZERO
+   
+!~~~>  Autonomous or time dependent ODE. Default is time dependent.
+   Autonomous = .NOT.(ICNTRL(1) == 0)
+
+!~~~>  For Scalar tolerances (ICNTRL(2).NE.0)  the code uses AbsTol(1) and RelTol(1)
+!   For Vector tolerances (ICNTRL(2) == 0) the code uses AbsTol(1:NVAR) and RelTol(1:NVAR)
+   IF (ICNTRL(2) == 0) THEN
+      VectorTol = .TRUE.
+      UplimTol  = NVAR
+   ELSE 
+      VectorTol = .FALSE.
+      UplimTol  = 1
+   END IF
+
+!~~~>   Initialize the particular Rosenbrock method selected
+   SELECT CASE (ICNTRL(3))
+     CASE (1)
+       CALL Ros2
+     CASE (2)
+       CALL Ros3
+     CASE (3)
+       CALL Ros4
+     CASE (0,4)
+       CALL Rodas3
+     CASE (5)
+       CALL Rodas4
+     CASE DEFAULT
+       PRINT * , 'Unknown Rosenbrock method: ICNTRL(3)=',ICNTRL(3) 
+       CALL ros_ErrorMsg(-2,Tstart,ZERO,IERR)
+       RETURN
+   END SELECT
+   
+!~~~>   The maximum number of steps admitted
+   IF (ICNTRL(4) == 0) THEN
+      Max_no_steps = bufsize - 1
+   ELSEIF (Max_no_steps > 0) THEN
+      Max_no_steps=ICNTRL(4)
+   ELSE 
+      PRINT * ,'User-selected max no. of steps: ICNTRL(4)=',ICNTRL(4)
+      CALL ros_ErrorMsg(-1,Tstart,ZERO,IERR)
+      RETURN      
+   END IF
+
+!~~~>  The particular Rosenbrock method chosen for integrating the cts adjoint
+   IF (ICNTRL(6) == 0) THEN
+      CadjMethod = 4
+   ELSEIF ( (ICNTRL(6) >= 1).AND.(ICNTRL(6) <= 5) ) THEN
+      CadjMethod = ICNTRL(6)
+   ELSE  
+      PRINT * , 'Unknown CADJ Rosenbrock method: ICNTRL(6)=', CadjMethod
+      CALL ros_ErrorMsg(-2,Tstart,ZERO,IERR)
+      RETURN      
+   END IF
+ 
+!~~~>  Discrete or continuous adjoint formulation
+   IF ( ICNTRL(7) == 0 ) THEN
+       AdjointType = Adj_discrete
+   ELSEIF ( (ICNTRL(7) >= 1).AND.(ICNTRL(7) <= 4) ) THEN
+       AdjointType = ICNTRL(7)
+   ELSE  
+      PRINT * , 'User-selected adjoint type: ICNTRL(7)=', AdjointType
+      CALL ros_ErrorMsg(-9,Tstart,ZERO,IERR)
+      RETURN      
+   END IF
+
+!~~~> Save or not the forward LU factorization
+      SaveLU = (ICNTRL(8) /= 0) 
+
+ 
+!~~~>  Unit roundoff (1+Roundoff>1)  
+   Roundoff = WLAMCH('E')
+
+!~~~>  Lower bound on the step size: (positive value)
+   IF (RCNTRL(1) == ZERO) THEN
+      Hmin = ZERO
+   ELSEIF (RCNTRL(1) > ZERO) THEN 
+      Hmin = RCNTRL(1)
+   ELSE  
+      PRINT * , 'User-selected Hmin: RCNTRL(1)=', RCNTRL(1)
+      CALL ros_ErrorMsg(-3,Tstart,ZERO,IERR)
+      RETURN      
+   END IF
+!~~~>  Upper bound on the step size: (positive value)
+   IF (RCNTRL(2) == ZERO) THEN
+      Hmax = ABS(Tend-Tstart)
+   ELSEIF (RCNTRL(2) > ZERO) THEN
+      Hmax = MIN(ABS(RCNTRL(2)),ABS(Tend-Tstart))
+   ELSE  
+      PRINT * , 'User-selected Hmax: RCNTRL(2)=', RCNTRL(2)
+      CALL ros_ErrorMsg(-3,Tstart,ZERO,IERR)
+      RETURN      
+   END IF
+!~~~>  Starting step size: (positive value)
+   IF (RCNTRL(3) == ZERO) THEN
+      Hstart = MAX(Hmin,DeltaMin)
+   ELSEIF (RCNTRL(3) > ZERO) THEN
+      Hstart = MIN(ABS(RCNTRL(3)),ABS(Tend-Tstart))
+   ELSE  
+      PRINT * , 'User-selected Hstart: RCNTRL(3)=', RCNTRL(3)
+      CALL ros_ErrorMsg(-3,Tstart,ZERO,IERR)
+      RETURN      
+   END IF
+!~~~>  Step size can be changed s.t.  FacMin < Hnew/Hold < FacMax 
+   IF (RCNTRL(4) == ZERO) THEN
+      FacMin = 0.2d0
+   ELSEIF (RCNTRL(4) > ZERO) THEN
+      FacMin = RCNTRL(4)
+   ELSE  
+      PRINT * , 'User-selected FacMin: RCNTRL(4)=', RCNTRL(4)
+      CALL ros_ErrorMsg(-4,Tstart,ZERO,IERR)
+      RETURN      
+   END IF
+   IF (RCNTRL(5) == ZERO) THEN
+      FacMax = 6.0d0
+   ELSEIF (RCNTRL(5) > ZERO) THEN
+      FacMax = RCNTRL(5)
+   ELSE  
+      PRINT * , 'User-selected FacMax: RCNTRL(5)=', RCNTRL(5)
+      CALL ros_ErrorMsg(-4,Tstart,ZERO,IERR)
+      RETURN      
+   END IF
+!~~~>   FacRej: Factor to decrease step after 2 succesive rejections
+   IF (RCNTRL(6) == ZERO) THEN
+      FacRej = 0.1d0
+   ELSEIF (RCNTRL(6) > ZERO) THEN
+      FacRej = RCNTRL(6)
+   ELSE  
+      PRINT * , 'User-selected FacRej: RCNTRL(6)=', RCNTRL(6)
+      CALL ros_ErrorMsg(-4,Tstart,ZERO,IERR)
+      RETURN      
+   END IF
+!~~~>   FacSafe: Safety Factor in the computation of new step size
+   IF (RCNTRL(7) == ZERO) THEN
+      FacSafe = 0.9d0
+   ELSEIF (RCNTRL(7) > ZERO) THEN
+      FacSafe = RCNTRL(7)
+   ELSE  
+      PRINT * , 'User-selected FacSafe: RCNTRL(7)=', RCNTRL(7)
+      CALL ros_ErrorMsg(-4,Tstart,ZERO,IERR)
+      RETURN      
+   END IF
+!~~~>  Check if tolerances are reasonable
+    DO i=1,UplimTol
+      IF ( (AbsTol(i) <= ZERO) .OR. (RelTol(i) <= 10.d0*Roundoff) &
+         .OR. (RelTol(i) >= 1.0d0) ) THEN
+        PRINT * , ' AbsTol(',i,') = ',AbsTol(i)
+        PRINT * , ' RelTol(',i,') = ',RelTol(i)
+        CALL ros_ErrorMsg(-5,Tstart,ZERO,IERR)
+        RETURN
+      END IF
+    END DO
+     
+ 
+!~~~>  Allocate checkpoint space or open checkpoint files
+   IF (AdjointType == Adj_discrete) THEN
+       CALL ros_AllocateDBuffers( ros_S )
+   ELSEIF ( (AdjointType == Adj_continuous).OR.  &
+           (AdjointType == Adj_simple_continuous) ) THEN
+       CALL ros_AllocateCBuffers
+   END IF
+   
+!~~~>  CALL Forward Rosenbrock method   
+   CALL ros_FwdInt(Y,Tstart,Tend,Texit,          & 
+        AbsTol, RelTol,                          & 
+!  Error indicator
+        IERR)
+
+   PRINT*,'FORWARD STATISTICS'
+   PRINT*,'Step=',Nstp,' Acc=',Nacc,   &
+        ' Rej=',Nrej, ' Singular=',Nsng
+
+!~~~>  If Forward integration failed return   
+   IF (IERR<0) RETURN
+
+!~~~>   Initialize the particular Rosenbrock method for continuous adjoint
+   IF ( (AdjointType == Adj_continuous).OR. &
+           (AdjointType == Adj_simple_continuous) ) THEN
+   SELECT CASE (CadjMethod)
+     CASE (1)
+       CALL Ros2
+     CASE (2)
+       CALL Ros3
+     CASE (3)
+       CALL Ros4
+     CASE (4)
+       CALL Rodas3
+     CASE (5)
+       CALL Rodas4
+     CASE DEFAULT
+       PRINT * , 'Unknown Rosenbrock method: ICNTRL(3)=', ICNTRL(3)
+       CALL ros_ErrorMsg(-2,Tstart,ZERO,IERR) 
+       RETURN     
+   END SELECT
+   END IF
+
+   SELECT CASE (AdjointType)   
+   CASE (Adj_discrete)   
+     CALL ros_DadjInt (                          &
+        NADJ, Lambda,                            &
+        Tstart, Tend, Texit,                     &
+        IERR )
+   CASE (Adj_continuous) 
+     CALL ros_CadjInt (                          &
+        NADJ, Lambda,                            &
+        Tend, Tstart, Texit,                     &
+        AbsTol_adj, RelTol_adj,                  &
+        IERR )
+   CASE (Adj_simple_continuous)
+     CALL ros_SimpleCadjInt (                    &
+        NADJ, Lambda,                            &
+        Tstart, Tend, Texit,                     &
+        IERR )
+   END SELECT ! AdjointType
+
+   PRINT*,'ADJOINT STATISTICS'
+   PRINT*,'Step=',Nstp,' Acc=',Nacc,             &
+        ' Rej=',Nrej, ' Singular=',Nsng
+
+!~~~>  Free checkpoint space or close checkpoint files
+   IF (AdjointType == Adj_discrete) THEN
+      CALL ros_FreeDBuffers
+   ELSEIF ( (AdjointType == Adj_continuous) .OR. &
+           (AdjointType == Adj_simple_continuous) ) THEN
+      CALL ros_FreeCBuffers
+   END IF
+   
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+CONTAINS !  Procedures internal to RosenbrockADJ
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE ros_AllocateDBuffers( S )
+!~~~>  Allocate buffer space for discrete adjoint
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   INTEGER :: i, S
+   
+   ALLOCATE( chk_H(bufsize), STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed allocation of buffer H'; STOP
+   END IF   
+   ALLOCATE( chk_T(bufsize), STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed allocation of buffer T'; STOP
+   END IF   
+   ALLOCATE( chk_Y(NVAR*S,bufsize), STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed allocation of buffer Y'; STOP
+   END IF   
+   ALLOCATE( chk_K(NVAR*S,bufsize), STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed allocation of buffer K'; STOP
+   END IF  
+   IF (SaveLU) THEN 
+#ifdef FULL_ALGEBRA
+     ALLOCATE( chk_J(NVAR*NVAR,bufsize), STAT=i )
+#else
+     ALLOCATE( chk_J(LU_NONZERO,bufsize), STAT=i )
+#endif
+     IF (i/=0) THEN
+        PRINT*,'Failed allocation of buffer J'; STOP
+     END IF   
+   END IF   
+
+ END SUBROUTINE ros_AllocateDBuffers
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE ros_FreeDBuffers
+!~~~>  Dallocate buffer space for discrete adjoint
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   INTEGER :: i
+   
+   DEALLOCATE( chk_H, STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed deallocation of buffer H'; STOP
+   END IF   
+   DEALLOCATE( chk_T, STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed deallocation of buffer T'; STOP
+   END IF   
+   DEALLOCATE( chk_Y, STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed deallocation of buffer Y'; STOP
+   END IF   
+   DEALLOCATE( chk_K, STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed deallocation of buffer K'; STOP
+   END IF   
+   IF (SaveLU) THEN 
+     DEALLOCATE( chk_J, STAT=i )
+     IF (i/=0) THEN
+        PRINT*,'Failed deallocation of buffer J'; STOP
+     END IF   
+   END IF   
+ 
+ END SUBROUTINE ros_FreeDBuffers
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE ros_AllocateCBuffers
+!~~~>  Allocate buffer space for continuous adjoint
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   INTEGER :: i
+   
+   ALLOCATE( chk_H(bufsize), STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed allocation of buffer H'; STOP
+   END IF   
+   ALLOCATE( chk_T(bufsize), STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed allocation of buffer T'; STOP
+   END IF   
+   ALLOCATE( chk_Y(NVAR,bufsize), STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed allocation of buffer Y'; STOP
+   END IF   
+   ALLOCATE( chk_dY(NVAR,bufsize), STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed allocation of buffer dY'; STOP
+   END IF   
+   ALLOCATE( chk_d2Y(NVAR,bufsize), STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed allocation of buffer d2Y'; STOP
+   END IF   
+ 
+ END SUBROUTINE ros_AllocateCBuffers
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE ros_FreeCBuffers
+!~~~>  Dallocate buffer space for continuous adjoint
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   INTEGER :: i
+   
+   DEALLOCATE( chk_H, STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed deallocation of buffer H'; STOP
+   END IF   
+   DEALLOCATE( chk_T, STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed deallocation of buffer T'; STOP
+   END IF   
+   DEALLOCATE( chk_Y, STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed deallocation of buffer Y'; STOP
+   END IF   
+   DEALLOCATE( chk_dY, STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed deallocation of buffer dY'; STOP
+   END IF   
+   DEALLOCATE( chk_d2Y, STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed deallocation of buffer d2Y'; STOP
+   END IF   
+ 
+ END SUBROUTINE ros_FreeCBuffers
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE ros_DPush( S, T, H, Ystage, K, E, P )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> Saves the next trajectory snapshot for discrete adjoints
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   INTEGER :: S ! no of stages
+   KPP_REAL :: T, H, Ystage(NVAR*S), K(NVAR*S)
+   INTEGER       :: P(NVAR)
+#ifdef FULL_ALGEBRA
+   KPP_REAL :: E(NVAR,NVAR)
+#else       
+   KPP_REAL :: E(LU_NONZERO)
+#endif
+   
+   stack_ptr = stack_ptr + 1
+   IF ( stack_ptr > bufsize ) THEN
+     PRINT*,'Push failed: buffer overflow'
+     STOP
+   END IF  
+   chk_H( stack_ptr ) = H
+   chk_T( stack_ptr ) = T
+   !CALL WCOPY(NVAR*S,Ystage,1,chk_Y(1,stack_ptr),1)
+   !CALL WCOPY(NVAR*S,K,1,chk_K(1,stack_ptr),1)
+   chk_Y(1:NVAR*S,stack_ptr) = Ystage(1:NVAR*S)
+   chk_K(1:NVAR*S,stack_ptr) = K(1:NVAR*S)
+   IF (SaveLU) THEN 
+#ifdef FULL_ALGEBRA
+       chk_J(1:NVAR,1:NVAR,stack_ptr) = E(1:NVAR,1:NVAR)
+       chk_P(1:NVAR,stack_ptr)        = P(1:NVAR)
+#else       
+       chk_J(1:LU_NONZERO,stack_ptr)  = E(1:LU_NONZERO)
+#endif
+    END IF
+  
+  END SUBROUTINE ros_DPush
+  
+   
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE ros_DPop( S, T, H, Ystage, K, E, P )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> Retrieves the next trajectory snapshot for discrete adjoints
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+   INTEGER :: S ! no of stages
+   KPP_REAL :: T, H, Ystage(NVAR*S), K(NVAR*S)
+   INTEGER       :: P(NVAR)
+#ifdef FULL_ALGEBRA
+   KPP_REAL :: E(NVAR,NVAR)
+#else       
+   KPP_REAL :: E(LU_NONZERO)
+#endif
+   
+   IF ( stack_ptr <= 0 ) THEN
+     PRINT*,'Pop failed: empty buffer'
+     STOP
+   END IF  
+   H = chk_H( stack_ptr )
+   T = chk_T( stack_ptr )
+   !CALL WCOPY(NVAR*S,chk_Y(1,stack_ptr),1,Ystage,1)
+   !CALL WCOPY(NVAR*S,chk_K(1,stack_ptr),1,K,1)
+   Ystage(1:NVAR*S) = chk_Y(1:NVAR*S,stack_ptr)
+   K(1:NVAR*S)      = chk_K(1:NVAR*S,stack_ptr)
+   !CALL WCOPY(LU_NONZERO,chk_J(1,stack_ptr),1,Jcb,1)
+   IF (SaveLU) THEN
+#ifdef FULL_ALGEBRA
+       E(1:NVAR,1:NVAR) = chk_J(1:NVAR,1:NVAR,stack_ptr)
+       P(1:NVAR)        = chk_P(1:NVAR,stack_ptr)
+#else       
+       E(1:LU_NONZERO)  = chk_J(1:LU_NONZERO,stack_ptr)
+#endif
+    END IF
+
+   stack_ptr = stack_ptr - 1
+  
+  END SUBROUTINE ros_DPop
+ 
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE ros_CPush( T, H, Y, dY, d2Y )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> Saves the next trajectory snapshot for discrete adjoints
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+   KPP_REAL :: T, H, Y(NVAR), dY(NVAR), d2Y(NVAR)
+   
+   stack_ptr = stack_ptr + 1
+   IF ( stack_ptr > bufsize ) THEN
+     PRINT*,'Push failed: buffer overflow'
+     STOP
+   END IF  
+   chk_H( stack_ptr ) = H
+   chk_T( stack_ptr ) = T
+   !CALL WCOPY(NVAR,Y,1,chk_Y(1,stack_ptr),1)
+   !CALL WCOPY(NVAR,dY,1,chk_dY(1,stack_ptr),1)
+   !CALL WCOPY(NVAR,d2Y,1,chk_d2Y(1,stack_ptr),1)
+   chk_Y(1:NVAR,stack_ptr)   = Y(1:NVAR)
+   chk_dY(1:NVAR,stack_ptr)  = dY(1:NVAR)
+   chk_d2Y(1:NVAR,stack_ptr) = d2Y(1:NVAR)
+  END SUBROUTINE ros_CPush
+  
+   
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE ros_CPop( T, H, Y, dY, d2Y )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> Retrieves the next trajectory snapshot for discrete adjoints
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+   KPP_REAL :: T, H, Y(NVAR), dY(NVAR), d2Y(NVAR)
+   
+   IF ( stack_ptr <= 0 ) THEN
+     PRINT*,'Pop failed: empty buffer'
+     STOP
+   END IF  
+   H = chk_H( stack_ptr )
+   T = chk_T( stack_ptr )
+   !CALL WCOPY(NVAR,chk_Y(1,stack_ptr),1,Y,1)
+   !CALL WCOPY(NVAR,chk_dY(1,stack_ptr),1,dY,1)
+   !CALL WCOPY(NVAR,chk_d2Y(1,stack_ptr),1,d2Y,1)
+   Y(1:NVAR)   = chk_Y(1:NVAR,stack_ptr)
+   dY(1:NVAR)  = chk_dY(1:NVAR,stack_ptr)
+   d2Y(1:NVAR) = chk_d2Y(1:NVAR,stack_ptr)
+
+   stack_ptr = stack_ptr - 1
+  
+  END SUBROUTINE ros_CPop
+
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+ SUBROUTINE ros_ErrorMsg(Code,T,H,IERR)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+!    Handles all error messages
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+  
+   KPP_REAL, INTENT(IN) :: T, H
+   INTEGER, INTENT(IN)  :: Code
+   INTEGER, INTENT(OUT) :: IERR
+   
+   IERR = Code
+   PRINT * , &
+     'Forced exit from RosenbrockADJ due to the following error:' 
+     
+   SELECT CASE (Code)
+    CASE (-1)    
+      PRINT * , '--> Improper value for maximal no of steps'
+    CASE (-2)    
+      PRINT * , '--> Selected RosenbrockADJ method not implemented'
+    CASE (-3)    
+      PRINT * , '--> Hmin/Hmax/Hstart must be positive'
+    CASE (-4)    
+      PRINT * , '--> FacMin/FacMax/FacRej must be positive'
+    CASE (-5) 
+      PRINT * , '--> Improper tolerance values'
+    CASE (-6) 
+      PRINT * , '--> No of steps exceeds maximum buffer bound'
+    CASE (-7) 
+      PRINT * , '--> Step size too small: T + 10*H = T', &
+            ' or H < Roundoff'
+    CASE (-8)    
+      PRINT * , '--> Matrix is repeatedly singular'
+    CASE (-9)    
+      PRINT * , '--> Improper type of adjoint selected'
+    CASE DEFAULT
+      PRINT *, 'Unknown Error code: ', Code
+   END SELECT
+   
+   PRINT *, "T=", T, "and H=", H
+     
+ END SUBROUTINE ros_ErrorMsg
+   
+     
+   
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE ros_FwdInt (Y,                       &
+        Tstart, Tend, T,                         &
+        AbsTol, RelTol,                          &
+!~~~> Error indicator
+        IERR )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!   Template for the implementation of a generic RosenbrockADJ method 
+!      defined by ros_S (no of stages)  
+!      and its coefficients ros_{A,C,M,E,Alpha,Gamma}
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  IMPLICIT NONE
+   
+!~~~> Input: the initial condition at Tstart; Output: the solution at T   
+   KPP_REAL, INTENT(INOUT) :: Y(NVAR)
+!~~~> Input: integration interval   
+   KPP_REAL, INTENT(IN) :: Tstart,Tend      
+!~~~> Output: time at which the solution is returned (T=Tend if success)   
+   KPP_REAL, INTENT(OUT) ::  T      
+!~~~> Input: tolerances      
+   KPP_REAL, INTENT(IN) ::  AbsTol(NVAR), RelTol(NVAR)
+!~~~> Output: Error indicator
+   INTEGER, INTENT(OUT) :: IERR
+! ~~~~ Local variables        
+   KPP_REAL :: Ynew(NVAR), Fcn0(NVAR), Fcn(NVAR) 
+   KPP_REAL :: K(NVAR*ros_S), dFdT(NVAR)
+   KPP_REAL, DIMENSION(:), POINTER :: Ystage
+#ifdef FULL_ALGEBRA    
+   KPP_REAL :: Jac0(NVAR,NVAR),  Ghimj(NVAR,NVAR)
+#else
+   KPP_REAL :: Jac0(LU_NONZERO), Ghimj(LU_NONZERO)
+#endif
+   KPP_REAL :: H, Hnew, HC, HG, Fac, Tau 
+   KPP_REAL :: Err, Yerr(NVAR)
+   INTEGER :: Pivot(NVAR), Direction, ioffset, i, j, istage
+   LOGICAL :: RejectLastH, RejectMoreH, Singular
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+!~~~>  Allocate stage vector buffer if needed
+   IF (AdjointType == Adj_discrete) THEN
+        ALLOCATE(Ystage(NVAR*ros_S), STAT=i)
+        ! Uninitialized Ystage may lead to NaN on some compilers
+        Ystage = 0.0d0
+        IF (i/=0) THEN
+          PRINT*,'Allocation of Ystage failed'
+          STOP
+        END IF
+   END IF   
+   
+!~~~>  Initial preparations
+   T = Tstart
+   RSTATUS(Nhexit) = ZERO
+   H = MIN( MAX(ABS(Hmin),ABS(Hstart)) , ABS(Hmax) )
+   IF (ABS(H) <= 10.0_dp*Roundoff) H = DeltaMin
+
+   IF (Tend  >=  Tstart) THEN
+     Direction = +1
+   ELSE
+     Direction = -1
+   END IF
+   H = Direction*H
+
+   RejectLastH=.FALSE.
+   RejectMoreH=.FALSE.
+   
+!~~~> Time loop begins below 
+
+TimeLoop: DO WHILE ( (Direction > 0).AND.((T-Tend)+Roundoff <= ZERO) &
+       .OR. (Direction < 0).AND.((Tend-T)+Roundoff <= ZERO) ) 
+      
+   IF ( ISTATUS(Nstp) > Max_no_steps ) THEN  ! Too many steps
+      CALL ros_ErrorMsg(-6,T,H,IERR)
+      RETURN
+   END IF
+   IF ( ((T+0.1d0*H) == T).OR.(H <= Roundoff) ) THEN  ! Step size too small
+      CALL ros_ErrorMsg(-7,T,H,IERR)
+      RETURN
+   END IF
+   
+!~~~>  Limit H if necessary to avoid going beyond Tend   
+   RSTATUS(Nhexit) = H
+   H = MIN(H,ABS(Tend-T))
+
+!~~~>   Compute the function at current time
+   CALL FunTemplate(T,Y,Fcn0)
+   ISTATUS(Nfun) = ISTATUS(Nfun) + 1 
+
+!~~~>  Compute the function derivative with respect to T
+   IF (.NOT.Autonomous) THEN
+      CALL ros_FunTimeDerivative ( T, Roundoff, Y, &
+                Fcn0, dFdT )
+   END IF
+  
+!~~~>   Compute the Jacobian at current time
+   CALL JacTemplate(T,Y,Jac0)
+   ISTATUS(Njac) = ISTATUS(Njac) + 1
+ 
+!~~~>  Repeat step calculation until current step accepted
+UntilAccepted: DO  
+   
+   CALL ros_PrepareMatrix(H,Direction,ros_Gamma(1), &
+          Jac0,Ghimj,Pivot,Singular)
+   IF (Singular) THEN ! More than 5 consecutive failed decompositions
+       CALL ros_ErrorMsg(-8,T,H,IERR)
+       RETURN
+   END IF
+
+!~~~>   Compute the stages
+Stage: DO istage = 1, ros_S
+      
+      ! Current istage offset. Current istage vector is K(ioffset+1:ioffset+NVAR)
+       ioffset = NVAR*(istage-1)
+      
+      ! For the 1st istage the function has been computed previously
+       IF ( istage == 1 ) THEN
+         CALL WCOPY(NVAR,Fcn0,1,Fcn,1)
+         IF (AdjointType == Adj_discrete) THEN ! Save stage solution
+            ! CALL WCOPY(NVAR,Y,1,Ystage(1),1)
+            Ystage(1:NVAR) = Y(1:NVAR)
+            CALL WCOPY(NVAR,Y,1,Ynew,1)
+         END IF   
+      ! istage>1 and a new function evaluation is needed at the current istage
+       ELSEIF ( ros_NewF(istage) ) THEN
+         CALL WCOPY(NVAR,Y,1,Ynew,1)
+         DO j = 1, istage-1
+           CALL WAXPY(NVAR,ros_A((istage-1)*(istage-2)/2+j), &
+            K(NVAR*(j-1)+1),1,Ynew,1) 
+         END DO
+         Tau = T + ros_Alpha(istage)*Direction*H
+         CALL FunTemplate(Tau,Ynew,Fcn)
+         ISTATUS(Nfun) = ISTATUS(Nfun) + 1
+       END IF ! if istage == 1 elseif ros_NewF(istage)
+      ! save stage solution every time even if ynew is not updated
+       IF ( ( istage > 1 ).AND.(AdjointType == Adj_discrete) ) THEN
+         ! CALL WCOPY(NVAR,Ynew,1,Ystage(ioffset+1),1)
+         Ystage(ioffset+1:ioffset+NVAR) = Ynew(1:NVAR)
+       END IF   
+       CALL WCOPY(NVAR,Fcn,1,K(ioffset+1),1)
+       DO j = 1, istage-1
+         HC = ros_C((istage-1)*(istage-2)/2+j)/(Direction*H)
+         CALL WAXPY(NVAR,HC,K(NVAR*(j-1)+1),1,K(ioffset+1),1)
+       END DO
+       IF ((.NOT. Autonomous).AND.(ros_Gamma(istage).NE.ZERO)) THEN
+         HG = Direction*H*ros_Gamma(istage)
+         CALL WAXPY(NVAR,HG,dFdT,1,K(ioffset+1),1)
+       END IF
+       CALL ros_Solve('N', Ghimj, Pivot, K(ioffset+1))
+      
+   END DO Stage     
+            
+
+!~~~>  Compute the new solution 
+   CALL WCOPY(NVAR,Y,1,Ynew,1)
+   DO j=1,ros_S
+         CALL WAXPY(NVAR,ros_M(j),K(NVAR*(j-1)+1),1,Ynew,1)
+   END DO
+
+!~~~>  Compute the error estimation 
+   CALL WSCAL(NVAR,ZERO,Yerr,1)
+   DO j=1,ros_S     
+        CALL WAXPY(NVAR,ros_E(j),K(NVAR*(j-1)+1),1,Yerr,1)
+   END DO 
+   Err = ros_ErrorNorm ( Y, Ynew, Yerr, AbsTol, RelTol, VectorTol )
+
+!~~~> New step size is bounded by FacMin <= Hnew/H <= FacMax
+   Fac  = MIN(FacMax,MAX(FacMin,FacSafe/Err**(ONE/ros_ELO)))
+   Hnew = H*Fac  
+
+!~~~>  Check the error magnitude and adjust step size
+   ISTATUS(Nstp) = ISTATUS(Nstp) + 1
+   IF ( (Err <= ONE).OR.(H <= Hmin) ) THEN  !~~~> Accept step
+      ISTATUS(Nacc) = ISTATUS(Nacc) + 1
+      IF (AdjointType == Adj_discrete) THEN ! Save current state
+          CALL ros_DPush( ros_S, T, H, Ystage, K, Ghimj, Pivot )
+      ELSEIF ( (AdjointType == Adj_continuous) .OR. &
+           (AdjointType == Adj_simple_continuous) ) THEN
+#ifdef FULL_ALGEBRA
+          K = MATMUL(Jac0,Fcn0)
+#else           
+          CALL Jac_SP_Vec( Jac0, Fcn0, K(1) )
+#endif          
+          IF (.NOT. Autonomous) THEN
+             CALL WAXPY(NVAR,ONE,dFdT,1,K(1),1)
+          END IF   
+          CALL ros_CPush( T, H, Y, Fcn0, K(1) )
+      END IF      
+      CALL WCOPY(NVAR,Ynew,1,Y,1)
+      T = T + Direction*H
+      Hnew = MAX(Hmin,MIN(Hnew,Hmax))
+      IF (RejectLastH) THEN  ! No step size increase after a rejected step
+         Hnew = MIN(Hnew,H) 
+      END IF   
+      RSTATUS(Nhexit) = H
+      RSTATUS(Nhnew)  = Hnew
+      RSTATUS(Ntexit) = T
+      RejectLastH = .FALSE.  
+      RejectMoreH = .FALSE.
+      H = Hnew      
+      EXIT UntilAccepted ! EXIT THE LOOP: WHILE STEP NOT ACCEPTED
+   ELSE           !~~~> Reject step
+      IF (RejectMoreH) THEN
+         Hnew = H*FacRej
+      END IF   
+      RejectMoreH = RejectLastH
+      RejectLastH = .TRUE.
+      H = Hnew
+      IF (ISTATUS(Nacc) >= 1) THEN
+         ISTATUS(Nrej) = ISTATUS(Nrej) + 1
+      END IF    
+   END IF ! Err <= 1
+
+   END DO UntilAccepted 
+
+   END DO TimeLoop 
+   
+!~~~> Save last state: only needed for continuous adjoint
+   IF ( (AdjointType == Adj_continuous) .OR. &
+       (AdjointType == Adj_simple_continuous) ) THEN
+       CALL FunTemplate(T,Y,Fcn0)
+       ISTATUS(Nfun) = ISTATUS(Nfun) + 1
+       CALL JacTemplate(T,Y,Jac0)
+       ISTATUS(Njac) = ISTATUS(Njac) + 1
+#ifdef FULL_ALGEBRA
+       K = MATMUL(Jac0,Fcn0)
+#else
+       CALL Jac_SP_Vec( Jac0, Fcn0, K(1) )
+#endif       
+       IF (.NOT. Autonomous) THEN
+           CALL ros_FunTimeDerivative ( T, Roundoff, Y, &
+                Fcn0, dFdT )
+           CALL WAXPY(NVAR,ONE,dFdT,1,K(1),1)
+       END IF   
+       CALL ros_CPush( T, H, Y, Fcn0, K(1) )
+!~~~> Deallocate stage buffer: only needed for discrete adjoint
+   ELSEIF (AdjointType == Adj_discrete) THEN 
+        DEALLOCATE(Ystage, STAT=i)
+        IF (i/=0) THEN
+          PRINT*,'Deallocation of Ystage failed'
+          STOP
+        END IF
+   END IF   
+   
+!~~~> Succesful exit
+   IERR = 1  !~~~> The integration was successful
+
+  END SUBROUTINE ros_FwdInt
+   
+     
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE ros_DadjInt (                        &
+        NADJ, Lambda,                            &
+        Tstart, Tend, T,                         &
+!~~~> Error indicator
+        IERR )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!   Template for the implementation of a generic RosenbrockSOA method 
+!      defined by ros_S (no of stages)  
+!      and its coefficients ros_{A,C,M,E,Alpha,Gamma}
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  IMPLICIT NONE
+   
+!~~~> Input: the initial condition at Tstart; Output: the solution at T   
+   INTEGER, INTENT(IN)     :: NADJ
+!~~~> First order adjoint   
+   KPP_REAL, INTENT(INOUT) :: Lambda(NVAR,NADJ)
+!!~~~> Input: integration interval   
+   KPP_REAL, INTENT(IN) :: Tstart,Tend      
+!~~~> Output: time at which the solution is returned (T=Tend if success)   
+   KPP_REAL, INTENT(OUT) ::  T      
+!~~~> Output: Error indicator
+   INTEGER, INTENT(OUT) :: IERR
+! ~~~~ Local variables        
+   KPP_REAL :: Ystage(NVAR*ros_S), K(NVAR*ros_S)
+   KPP_REAL :: U(NVAR*ros_S,NADJ), V(NVAR*ros_S,NADJ)
+#ifdef FULL_ALGEBRA
+   KPP_REAL, DIMENSION(NVAR,NVAR)  :: Jac, dJdT, Ghimj
+#else
+   KPP_REAL, DIMENSION(LU_NONZERO) :: Jac, dJdT, Ghimj
+#endif
+   KPP_REAL :: Hes0(NHESS)
+   KPP_REAL :: Tmp(NVAR), Tmp2(NVAR)
+   KPP_REAL :: H, HC, HA, Tau 
+   INTEGER :: Pivot(NVAR), Direction
+   INTEGER :: i, j, m, istage, istart, jstart
+!~~~>  Local parameters
+   KPP_REAL, PARAMETER :: ZERO = 0.0d0, ONE  = 1.0d0 
+   KPP_REAL, PARAMETER :: DeltaMin = 1.0d-5
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+   
+   
+   IF (Tend  >=  Tstart) THEN
+     Direction = +1
+   ELSE
+     Direction = -1
+   END IF               
+
+!~~~> Time loop begins below 
+TimeLoop: DO WHILE ( stack_ptr > 0 )
+        
+   !~~~>  Recover checkpoints for stage values and vectors
+   CALL ros_DPop( ros_S, T, H, Ystage, K, Ghimj, Pivot )
+
+!   ISTATUS(Nstp) = ISTATUS(Nstp) + 1
+
+!~~~>    Compute LU decomposition 
+   IF (.NOT.SaveLU) THEN
+     CALL JacTemplate(T,Ystage(1),Ghimj)
+     ISTATUS(Njac) = ISTATUS(Njac) + 1
+     Tau = ONE/(Direction*H*ros_Gamma(1))
+#ifdef FULL_ALGEBRA
+     Ghimj(1:NVAR,1:NVAR) = -Ghimj(1:NVAR,1:NVAR)
+     DO i=1,NVAR
+       Ghimj(i,i) = Ghimj(i,i)+Tau
+     END DO
+#else
+     CALL WSCAL(LU_NONZERO,(-ONE),Ghimj,1)
+     DO i=1,NVAR
+       Ghimj(LU_DIAG(i)) = Ghimj(LU_DIAG(i))+Tau
+     END DO
+#endif
+     CALL ros_Decomp( Ghimj, Pivot, j )
+   END IF
+            
+!~~~>   Compute Hessian at the beginning of the interval
+   CALL HessTemplate(T,Ystage(1),Hes0)
+   
+!~~~>   Compute the stages
+Stage: DO istage = ros_S, 1, -1
+      
+      !~~~> Current istage first entry 
+       istart = NVAR*(istage-1) + 1
+      
+      !~~~> Compute U
+       DO m = 1,NADJ
+         CALL WCOPY(NVAR,Lambda(1,m),1,U(istart,m),1)
+         CALL WSCAL(NVAR,ros_M(istage),U(istart,m),1)
+       END DO ! m=1:NADJ
+       DO j = istage+1, ros_S
+         jstart = NVAR*(j-1) + 1
+         HA = ros_A((j-1)*(j-2)/2+istage)
+         HC = ros_C((j-1)*(j-2)/2+istage)/(Direction*H)
+         DO m = 1,NADJ
+           CALL WAXPY(NVAR,HA,V(jstart,m),1,U(istart,m),1) 
+           CALL WAXPY(NVAR,HC,U(jstart,m),1,U(istart,m),1) 
+         END DO ! m=1:NADJ
+       END DO
+       DO m = 1,NADJ
+         CALL ros_Solve('T', Ghimj, Pivot, U(istart,m))
+       END DO ! m=1:NADJ
+      !~~~> Compute V 
+       Tau = T + ros_Alpha(istage)*Direction*H
+       CALL JacTemplate(Tau,Ystage(istart),Jac)
+       ISTATUS(Njac) = ISTATUS(Njac) + 1
+       DO m = 1,NADJ
+#ifdef FULL_ALGEBRA
+         V(istart:istart+NVAR-1,m) = MATMUL(TRANSPOSE(Jac),U(istart:istart+NVAR-1,m))
+#else
+         CALL JacTR_SP_Vec(Jac,U(istart,m),V(istart,m)) 
+#endif         
+       END DO ! m=1:NADJ
+             
+   END DO Stage     
+
+   IF (.NOT.Autonomous) THEN
+!~~~>  Compute the Jacobian derivative with respect to T. 
+!      Last "Jac" computed for stage 1
+      CALL ros_JacTimeDerivative ( T, Roundoff, Ystage(1), Jac, dJdT )
+   END IF
+
+!~~~>  Compute the new solution 
+   
+      !~~~>  Compute Lambda 
+      DO istage=1,ros_S
+         istart = NVAR*(istage-1) + 1
+         DO m = 1,NADJ
+           ! Add V_i
+           CALL WAXPY(NVAR,ONE,V(istart,m),1,Lambda(1,m),1)
+           ! Add (H0xK_i)^T * U_i
+           CALL HessTR_Vec ( Hes0, U(istart,m), K(istart), Tmp )
+           CALL WAXPY(NVAR,ONE,Tmp,1,Lambda(1,m),1)
+         END DO ! m=1:NADJ
+      END DO
+     ! Add H * dJac_dT_0^T * \sum(gamma_i U_i)
+     ! Tmp holds sum gamma_i U_i
+      IF (.NOT.Autonomous) THEN
+         DO m = 1,NADJ
+           Tmp(1:NVAR) = ZERO
+           DO istage = 1, ros_S
+             istart = NVAR*(istage-1) + 1
+             CALL WAXPY(NVAR,ros_Gamma(istage),U(istart,m),1,Tmp,1)
+           END DO  
+#ifdef FULL_ALGEBRA
+           Tmp2 = MATMUL(TRANSPOSE(dJdT),Tmp)
+#else
+           CALL JacTR_SP_Vec(dJdT,Tmp,Tmp2) 
+#endif           
+           CALL WAXPY(NVAR,H,Tmp2,1,Lambda(1,m),1)
+         END DO ! m=1:NADJ
+      END IF ! .NOT.Autonomous
+ 
+
+   END DO TimeLoop 
+   
+!~~~> Save last state
+   
+!~~~> Succesful exit
+   IERR = 1  !~~~> The integration was successful
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  END SUBROUTINE ros_DadjInt
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   
+   
+    
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE ros_CadjInt (                        &
+        NADJ, Y,                                 &
+        Tstart, Tend, T,                         &
+        AbsTol_adj, RelTol_adj,                  &
+!~~~> Error indicator
+        IERR )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!   Template for the implementation of a generic RosenbrockADJ method 
+!      defined by ros_S (no of stages)  
+!      and its coefficients ros_{A,C,M,E,Alpha,Gamma}
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  IMPLICIT NONE
+   
+!~~~> Input: the initial condition at Tstart; Output: the solution at T   
+   INTEGER, INTENT(IN) :: NADJ
+   KPP_REAL, INTENT(INOUT) :: Y(NVAR,NADJ)
+!~~~> Input: integration interval   
+   KPP_REAL, INTENT(IN) :: Tstart,Tend      
+!~~~> Input: adjoint tolerances   
+   KPP_REAL, INTENT(IN) :: AbsTol_adj(NVAR,NADJ), RelTol_adj(NVAR,NADJ)
+!~~~> Output: time at which the solution is returned (T=Tend if success)   
+   KPP_REAL, INTENT(OUT) ::  T      
+!~~~> Output: Error indicator
+   INTEGER, INTENT(OUT) :: IERR
+! ~~~~ Local variables        
+   KPP_REAL :: Y0(NVAR)
+   KPP_REAL :: Ynew(NVAR,NADJ), Fcn0(NVAR,NADJ), Fcn(NVAR,NADJ) 
+   KPP_REAL :: K(NVAR*ros_S,NADJ), dFdT(NVAR,NADJ)
+#ifdef FULL_ALGEBRA
+   KPP_REAL, DIMENSION(NVAR,NVAR)  :: Jac0, Ghimj, Jac, dJdT
+#else
+   KPP_REAL, DIMENSION(LU_NONZERO) :: Jac0, Ghimj, Jac, dJdT
+#endif   
+   KPP_REAL :: H, Hnew, HC, HG, Fac, Tau 
+   KPP_REAL :: Err, Yerr(NVAR,NADJ)
+   INTEGER :: Pivot(NVAR), Direction, ioffset, j, istage, iadj
+   LOGICAL :: RejectLastH, RejectMoreH, Singular
+!~~~>  Local parameters
+   KPP_REAL, PARAMETER :: ZERO = 0.0d0, ONE  = 1.0d0 
+   KPP_REAL, PARAMETER :: DeltaMin = 1.0d-5
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+   
+!~~~>  Initial preparations
+   T = Tstart
+   RSTATUS(Nhexit) = 0.0_dp
+   H = MIN( MAX(ABS(Hmin),ABS(Hstart)) , ABS(Hmax) )
+   IF (ABS(H) <= 10.0_dp*Roundoff) H = DeltaMin
+   
+   IF (Tend  >=  Tstart) THEN
+     Direction = +1
+   ELSE
+     Direction = -1
+   END IF               
+   H = Direction*H
+
+   RejectLastH=.FALSE.
+   RejectMoreH=.FALSE.
+   
+!~~~> Time loop begins below 
+
+TimeLoop: DO WHILE ( (Direction > 0).AND.((T-Tend)+Roundoff <= ZERO) &
+       .OR. (Direction < 0).AND.((Tend-T)+Roundoff <= ZERO) ) 
+      
+   IF ( ISTATUS(Nstp) > Max_no_steps ) THEN  ! Too many steps
+      CALL ros_ErrorMsg(-6,T,H,IERR)
+      RETURN
+   END IF
+   IF ( ((T+0.1d0*H) == T).OR.(H <= Roundoff) ) THEN  ! Step size too small
+      CALL ros_ErrorMsg(-7,T,H,IERR)
+      RETURN
+   END IF
+   
+!~~~>  Limit H if necessary to avoid going beyond Tend   
+   RSTATUS(Nhexit) = H
+   H = MIN(H,ABS(Tend-T))
+
+!~~~>   Interpolate forward solution
+   CALL ros_cadj_Y( T, Y0 )     
+!~~~>   Compute the Jacobian at current time
+   CALL JacTemplate(T, Y0, Jac0)
+   ISTATUS(Njac) = ISTATUS(Njac) + 1
+   
+!~~~>  Compute the function derivative with respect to T
+   IF (.NOT.Autonomous) THEN
+      CALL ros_JacTimeDerivative ( T, Roundoff, Y0, &
+                Jac0, dJdT )
+      DO iadj = 1, NADJ
+#ifdef FULL_ALGEBRA
+        dFdT(1:NVAR,iadj) = MATMUL(TRANSPOSE(dJdT),Y(1:NVAR,iadj))
+#else
+        CALL JacTR_SP_Vec(dJdT,Y(1,iadj),dFdT(1,iadj))
+#endif
+        CALL WSCAL(NVAR,(-ONE),dFdT(1,iadj),1)
+      END DO
+   END IF
+
+!~~~>  Ydot = -J^T*Y
+#ifdef FULL_ALGEBRA
+   Jac0(1:NVAR,1:NVAR) = -Jac0(1:NVAR,1:NVAR)
+#else
+   CALL WSCAL(LU_NONZERO,(-ONE),Jac0,1)
+#endif
+   DO iadj = 1, NADJ
+#ifdef FULL_ALGEBRA
+     Fcn0(1:NVAR,iadj) = MATMUL(TRANSPOSE(Jac0),Y(1:NVAR,iadj))
+#else
+     CALL JacTR_SP_Vec(Jac0,Y(1,iadj),Fcn0(1,iadj))
+#endif
+   END DO
+    
+!~~~>  Repeat step calculation until current step accepted
+UntilAccepted: DO  
+   
+   CALL ros_PrepareMatrix(H,Direction,ros_Gamma(1), &
+          Jac0,Ghimj,Pivot,Singular)
+   IF (Singular) THEN ! More than 5 consecutive failed decompositions
+       CALL ros_ErrorMsg(-8,T,H,IERR)
+       RETURN
+   END IF
+
+!~~~>   Compute the stages
+Stage: DO istage = 1, ros_S
+      
+      ! Current istage offset. Current istage vector is K(ioffset+1:ioffset+NVAR)
+       ioffset = NVAR*(istage-1)
+      
+      ! For the 1st istage the function has been computed previously
+       IF ( istage == 1 ) THEN
+         DO iadj = 1, NADJ
+           CALL WCOPY(NVAR,Fcn0(1,iadj),1,Fcn(1,iadj),1)
+         END DO
+      ! istage>1 and a new function evaluation is needed at the current istage
+       ELSEIF ( ros_NewF(istage) ) THEN
+         CALL WCOPY(NVAR*NADJ,Y,1,Ynew,1)
+         DO j = 1, istage-1
+           DO iadj = 1, NADJ
+             CALL WAXPY(NVAR,ros_A((istage-1)*(istage-2)/2+j), &
+                K(NVAR*(j-1)+1,iadj),1,Ynew(1,iadj),1) 
+           END DO       
+         END DO
+         Tau = T + ros_Alpha(istage)*Direction*H
+         ! CALL FunTemplate(Tau,Ynew,Fcn)
+         ! ISTATUS(Nfun) = ISTATUS(Nfun) + 1
+         CALL ros_cadj_Y( Tau, Y0 )     
+         CALL JacTemplate(Tau, Y0, Jac)
+         ISTATUS(Njac) = ISTATUS(Njac) + 1
+#ifdef FULL_ALGEBRA
+         Jac(1:NVAR,1:NVAR) = -Jac(1:NVAR,1:NVAR)
+#else
+         CALL WSCAL(LU_NONZERO,(-ONE),Jac,1)
+#endif
+         DO iadj = 1, NADJ
+#ifdef FULL_ALGEBRA
+             Fcn(1:NVAR,iadj) = MATMUL(TRANSPOSE(Jac),Ynew(1:NVAR,iadj))
+#else
+             CALL JacTR_SP_Vec(Jac,Ynew(1,iadj),Fcn(1,iadj))
+#endif
+             !CALL WSCAL(NVAR,(-ONE),Fcn(1,iadj),1)
+         END DO
+       END IF ! if istage == 1 elseif ros_NewF(istage)
+
+       DO iadj = 1, NADJ
+          CALL WCOPY(NVAR,Fcn(1,iadj),1,K(ioffset+1,iadj),1)
+       END DO
+       DO j = 1, istage-1
+         HC = ros_C((istage-1)*(istage-2)/2+j)/(Direction*H)
+         DO iadj = 1, NADJ
+           CALL WAXPY(NVAR,HC,K(NVAR*(j-1)+1,iadj),1, &
+                  K(ioffset+1,iadj),1)
+         END DO
+       END DO
+       IF ((.NOT. Autonomous).AND.(ros_Gamma(istage).NE.ZERO)) THEN
+         HG = Direction*H*ros_Gamma(istage)
+         DO iadj = 1, NADJ
+           CALL WAXPY(NVAR,HG,dFdT(1,iadj),1,K(ioffset+1,iadj),1)
+         END DO
+       END IF
+       DO iadj = 1, NADJ
+         CALL ros_Solve('T', Ghimj, Pivot, K(ioffset+1,iadj))
+       END DO
+      
+   END DO Stage     
+            
+
+!~~~>  Compute the new solution 
+   DO iadj = 1, NADJ
+      CALL WCOPY(NVAR,Y(1,iadj),1,Ynew(1,iadj),1)
+      DO j=1,ros_S
+         CALL WAXPY(NVAR,ros_M(j),K(NVAR*(j-1)+1,iadj),1,Ynew(1,iadj),1)
+      END DO
+   END DO
+
+!~~~>  Compute the error estimation 
+   CALL WSCAL(NVAR*NADJ,ZERO,Yerr,1)
+   DO j=1,ros_S     
+       DO iadj = 1, NADJ
+        CALL WAXPY(NVAR,ros_E(j),K(NVAR*(j-1)+1,iadj),1,Yerr(1,iadj),1)
+       END DO
+   END DO
+!~~~> Max error among all adjoint components    
+   iadj = 1
+   Err = ros_ErrorNorm ( Y(1,iadj), Ynew(1,iadj), Yerr(1,iadj), &
+              AbsTol_adj(1,iadj), RelTol_adj(1,iadj), VectorTol )
+
+!~~~> New step size is bounded by FacMin <= Hnew/H <= FacMax
+   Fac  = MIN(FacMax,MAX(FacMin,FacSafe/Err**(ONE/ros_ELO)))
+   Hnew = H*Fac  
+
+!~~~>  Check the error magnitude and adjust step size
+!   ISTATUS(Nstp) = ISTATUS(Nstp) + 1
+   IF ( (Err <= ONE).OR.(H <= Hmin) ) THEN  !~~~> Accept step
+      ISTATUS(Nacc) = ISTATUS(Nacc) + 1
+      CALL WCOPY(NVAR*NADJ,Ynew,1,Y,1)
+      T = T + Direction*H
+      Hnew = MAX(Hmin,MIN(Hnew,Hmax))
+      IF (RejectLastH) THEN  ! No step size increase after a rejected step
+         Hnew = MIN(Hnew,H) 
+      END IF   
+      RSTATUS(Nhexit) = H
+      RSTATUS(Nhnew)  = Hnew
+      RSTATUS(Ntexit) = T
+      RejectLastH = .FALSE.  
+      RejectMoreH = .FALSE.
+      H = Hnew      
+      EXIT UntilAccepted ! EXIT THE LOOP: WHILE STEP NOT ACCEPTED
+   ELSE           !~~~> Reject step
+      IF (RejectMoreH) THEN
+         Hnew = H*FacRej
+      END IF   
+      RejectMoreH = RejectLastH
+      RejectLastH = .TRUE.
+      H = Hnew
+      IF (ISTATUS(Nacc) >= 1) THEN
+         ISTATUS(Nrej) = ISTATUS(Nrej) + 1
+      END IF    
+   END IF ! Err <= 1
+
+   END DO UntilAccepted 
+
+   END DO TimeLoop 
+      
+!~~~> Succesful exit
+   IERR = 1  !~~~> The integration was successful
+
+  END SUBROUTINE ros_CadjInt
+  
+     
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE ros_SimpleCadjInt (                  &
+        NADJ, Y,                                 &
+        Tstart, Tend, T,                         &
+!~~~> Error indicator
+        IERR )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!   Template for the implementation of a generic RosenbrockADJ method 
+!      defined by ros_S (no of stages)  
+!      and its coefficients ros_{A,C,M,E,Alpha,Gamma}
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  IMPLICIT NONE
+   
+!~~~> Input: the initial condition at Tstart; Output: the solution at T   
+   INTEGER, INTENT(IN) :: NADJ
+   KPP_REAL, INTENT(INOUT) :: Y(NVAR,NADJ)
+!~~~> Input: integration interval   
+   KPP_REAL, INTENT(IN) :: Tstart,Tend      
+!~~~> Output: time at which the solution is returned (T=Tend if success)   
+   KPP_REAL, INTENT(OUT) ::  T      
+!~~~> Output: Error indicator
+   INTEGER, INTENT(OUT) :: IERR
+! ~~~~ Local variables        
+   KPP_REAL :: Y0(NVAR)
+   KPP_REAL :: Ynew(NVAR,NADJ), Fcn0(NVAR,NADJ), Fcn(NVAR,NADJ) 
+   KPP_REAL :: K(NVAR*ros_S,NADJ), dFdT(NVAR,NADJ)
+#ifdef FULL_ALGEBRA
+   KPP_REAL,DIMENSION(NVAR,NVAR)  :: Jac0, Ghimj, Jac, dJdT
+#else   
+   KPP_REAL,DIMENSION(LU_NONZERO) :: Jac0, Ghimj, Jac, dJdT
+#endif   
+   KPP_REAL :: H, HC, HG, Tau 
+   KPP_REAL :: ghinv
+   INTEGER :: Pivot(NVAR), Direction, ioffset, i, j, istage, iadj
+   INTEGER :: istack
+!~~~>  Local parameters
+   KPP_REAL, PARAMETER :: ZERO = 0.0d0, ONE  = 1.0d0 
+   KPP_REAL, PARAMETER :: DeltaMin = 1.0d-5
+!~~~>  Locally called functions
+!    KPP_REAL WLAMCH
+!    EXTERNAL WLAMCH
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+   
+!~~~>  INITIAL PREPARATIONS
+   
+   IF (Tend  >=  Tstart) THEN
+     Direction = -1
+   ELSE
+     Direction = +1
+   END IF               
+   
+!~~~> Time loop begins below 
+TimeLoop: DO istack = stack_ptr,2,-1
+        
+   T = chk_T(istack)
+   H = chk_H(istack-1)
+   !CALL WCOPY(NVAR,chk_Y(1,istack),1,Y0,1)
+   Y0(1:NVAR) = chk_Y(1:NVAR,istack)
+   
+!~~~>   Compute the Jacobian at current time
+   CALL JacTemplate(T, Y0, Jac0)
+   ISTATUS(Njac) = ISTATUS(Njac) + 1
+   
+!~~~>  Compute the function derivative with respect to T
+   IF (.NOT.Autonomous) THEN
+      CALL ros_JacTimeDerivative ( T, Roundoff, Y0, &
+                Jac0, dJdT )
+      DO iadj = 1, NADJ
+#ifdef FULL_ALGEBRA
+        dFdT(1:NVAR,iadj) = MATMUL(TRANSPOSE(dJdT),Y(1:NVAR,iadj))
+#else
+        CALL JacTR_SP_Vec(dJdT,Y(1,iadj),dFdT(1,iadj))
+#endif
+        CALL WSCAL(NVAR,(-ONE),dFdT(1,iadj),1)
+      END DO
+   END IF
+
+!~~~>  Ydot = -J^T*Y
+#ifdef FULL_ALGEBRA
+   Jac0(1:NVAR,1:NVAR) = -Jac0(1:NVAR,1:NVAR)
+#else
+   CALL WSCAL(LU_NONZERO,(-ONE),Jac0,1)
+#endif
+   DO iadj = 1, NADJ
+#ifdef FULL_ALGEBRA
+     Fcn0(1:NVAR,iadj) = MATMUL(TRANSPOSE(Jac0),Y(1:NVAR,iadj))
+#else
+     CALL JacTR_SP_Vec(Jac0,Y(1,iadj),Fcn0(1,iadj))
+#endif
+   END DO
+   
+!~~~>    Construct Ghimj = 1/(H*ham) - Jac0
+     ghinv = ONE/(Direction*H*ros_Gamma(1))
+#ifdef FULL_ALGEBRA
+     Ghimj(1:NVAR,1:NVAR) = -Jac0(1:NVAR,1:NVAR)
+     DO i=1,NVAR
+       Ghimj(i,i) = Ghimj(i,i)+ghinv
+     END DO
+#else
+     CALL WCOPY(LU_NONZERO,Jac0,1,Ghimj,1)
+     CALL WSCAL(LU_NONZERO,(-ONE),Ghimj,1)
+     DO i=1,NVAR
+       Ghimj(LU_DIAG(i)) = Ghimj(LU_DIAG(i))+ghinv
+     END DO
+#endif
+!~~~>    Compute LU decomposition 
+     CALL ros_Decomp( Ghimj, Pivot, j )
+     IF (j /= 0) THEN
+       CALL ros_ErrorMsg(-8,T,H,IERR)
+       PRINT*,' The matrix is singular !'
+       STOP
+   END IF
+
+!~~~>   Compute the stages
+Stage: DO istage = 1, ros_S
+      
+      ! Current istage offset. Current istage vector is K(ioffset+1:ioffset+NVAR)
+       ioffset = NVAR*(istage-1)
+      
+      ! For the 1st istage the function has been computed previously
+       IF ( istage == 1 ) THEN
+         DO iadj = 1, NADJ
+           CALL WCOPY(NVAR,Fcn0(1,iadj),1,Fcn(1,iadj),1)
+         END DO
+      ! istage>1 and a new function evaluation is needed at the current istage
+       ELSEIF ( ros_NewF(istage) ) THEN
+         CALL WCOPY(NVAR*NADJ,Y,1,Ynew,1)
+         DO j = 1, istage-1
+           DO iadj = 1, NADJ
+             CALL WAXPY(NVAR,ros_A((istage-1)*(istage-2)/2+j), &
+                K(NVAR*(j-1)+1,iadj),1,Ynew(1,iadj),1) 
+           END DO       
+         END DO
+         Tau = T + ros_Alpha(istage)*Direction*H
+         CALL ros_Hermite3( chk_T(istack-1), chk_T(istack), Tau, &
+             chk_Y(1:NVAR,istack-1), chk_Y(1:NVAR,istack),       &
+             chk_dY(1:NVAR,istack-1), chk_dY(1:NVAR,istack), Y0 )
+         CALL JacTemplate(Tau, Y0, Jac)
+         ISTATUS(Njac) = ISTATUS(Njac) + 1
+#ifdef FULL_ALGEBRA
+         Jac(1:NVAR,1:NVAR) = -Jac(1:NVAR,1:NVAR)
+#else
+         CALL WSCAL(LU_NONZERO,(-ONE),Jac,1)
+#endif
+         DO iadj = 1, NADJ
+#ifdef FULL_ALGEBRA
+             Fcn(1:NVAR,iadj) = MATMUL(TRANSPOSE(Jac),Ynew(1:NVAR,iadj))
+#else
+             CALL JacTR_SP_Vec(Jac,Ynew(1,iadj),Fcn(1,iadj))
+#endif
+         END DO
+       END IF ! if istage == 1 elseif ros_NewF(istage)
+
+       DO iadj = 1, NADJ
+          CALL WCOPY(NVAR,Fcn(1,iadj),1,K(ioffset+1,iadj),1)
+       END DO
+       DO j = 1, istage-1
+         HC = ros_C((istage-1)*(istage-2)/2+j)/(Direction*H)
+         DO iadj = 1, NADJ
+           CALL WAXPY(NVAR,HC,K(NVAR*(j-1)+1,iadj),1, &
+                  K(ioffset+1,iadj),1)
+         END DO
+       END DO
+       IF ((.NOT. Autonomous).AND.(ros_Gamma(istage).NE.ZERO)) THEN
+         HG = Direction*H*ros_Gamma(istage)
+         DO iadj = 1, NADJ
+           CALL WAXPY(NVAR,HG,dFdT(1,iadj),1,K(ioffset+1,iadj),1)
+         END DO
+       END IF
+       DO iadj = 1, NADJ
+         CALL ros_Solve('T', Ghimj, Pivot, K(ioffset+1,iadj))
+       END DO
+      
+   END DO Stage     
+            
+
+!~~~>  Compute the new solution 
+   DO iadj = 1, NADJ
+      DO j=1,ros_S
+         CALL WAXPY(NVAR,ros_M(j),K(NVAR*(j-1)+1,iadj),1,Y(1,iadj),1)
+      END DO
+   END DO
+
+   END DO TimeLoop 
+      
+!~~~> Succesful exit
+   IERR = 1  !~~~> The integration was successful
+
+  END SUBROUTINE ros_SimpleCadjInt
+  
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  KPP_REAL FUNCTION ros_ErrorNorm ( Y, Ynew, Yerr, & 
+               AbsTol, RelTol, VectorTol )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> Computes the "scaled norm" of the error vector Yerr
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   IMPLICIT NONE         
+
+! Input arguments   
+   KPP_REAL, INTENT(IN) :: Y(NVAR), Ynew(NVAR), &
+          Yerr(NVAR), AbsTol(NVAR), RelTol(NVAR)
+   LOGICAL, INTENT(IN) ::  VectorTol
+! Local variables     
+   KPP_REAL :: Err, Scale, Ymax   
+   INTEGER  :: i
+   
+   Err = ZERO
+   DO i=1,NVAR
+     Ymax = MAX(ABS(Y(i)),ABS(Ynew(i)))
+     IF (VectorTol) THEN
+       Scale = AbsTol(i)+RelTol(i)*Ymax
+     ELSE
+       Scale = AbsTol(1)+RelTol(1)*Ymax
+     END IF
+     Err = Err+(Yerr(i)/Scale)**2
+   END DO
+   Err  = SQRT(Err/NVAR)
+
+   ros_ErrorNorm = MAX(Err,1.0d-10)
+   
+  END FUNCTION ros_ErrorNorm
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE ros_FunTimeDerivative ( T, Roundoff, Y, Fcn0, dFdT )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> The time partial derivative of the function by finite differences
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   IMPLICIT NONE         
+
+!~~~> Input arguments   
+   KPP_REAL, INTENT(IN) :: T, Roundoff, Y(NVAR), Fcn0(NVAR) 
+!~~~> Output arguments   
+   KPP_REAL, INTENT(OUT) :: dFdT(NVAR)   
+!~~~> Local variables     
+   KPP_REAL :: Delta  
+   KPP_REAL, PARAMETER :: ONE = 1.0d0, DeltaMin = 1.0d-6
+   
+   Delta = SQRT(Roundoff)*MAX(DeltaMin,ABS(T))
+   CALL FunTemplate(T+Delta,Y,dFdT)
+   ISTATUS(Nfun) = ISTATUS(Nfun) + 1
+   CALL WAXPY(NVAR,(-ONE),Fcn0,1,dFdT,1)
+   CALL WSCAL(NVAR,(ONE/Delta),dFdT,1)
+
+  END SUBROUTINE ros_FunTimeDerivative
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE ros_JacTimeDerivative ( T, Roundoff, Y, &
+                Jac0, dJdT )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> The time partial derivative of the Jacobian by finite differences
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   IMPLICIT NONE         
+
+!~~~> Arguments   
+   KPP_REAL, INTENT(IN) :: T, Roundoff, Y(NVAR)
+#ifdef FULL_ALGEBRA    
+   KPP_REAL, INTENT(IN)  :: Jac0(NVAR,NVAR) 
+   KPP_REAL, INTENT(OUT) :: dJdT(NVAR,NVAR)   
+#else
+   KPP_REAL, INTENT(IN)  :: Jac0(LU_NONZERO) 
+   KPP_REAL, INTENT(OUT) :: dJdT(LU_NONZERO)   
+#endif   
+!~~~> Local variables     
+   KPP_REAL :: Delta  
+   
+   Delta = SQRT(Roundoff)*MAX(DeltaMin,ABS(T))
+   CALL JacTemplate(T+Delta,Y,dJdT)
+   ISTATUS(Njac) = ISTATUS(Njac) + 1
+#ifdef FULL_ALGEBRA    
+   CALL WAXPY(NVAR*NVAR,(-ONE),Jac0,1,dJdT,1)
+   CALL WSCAL(NVAR*NVAR,(ONE/Delta),dJdT,1)
+#else
+   CALL WAXPY(LU_NONZERO,(-ONE),Jac0,1,dJdT,1)
+   CALL WSCAL(LU_NONZERO,(ONE/Delta),dJdT,1)
+#endif   
+
+  END SUBROUTINE ros_JacTimeDerivative
+
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE ros_PrepareMatrix ( H, Direction, gam, &
+             Jac0, Ghimj, Pivot, Singular )
+! --- --- --- --- --- --- --- --- --- --- --- --- ---
+!  Prepares the LHS matrix for stage calculations
+!  1.  Construct Ghimj = 1/(H*gam) - Jac0
+!      "(Gamma H) Inverse Minus Jacobian"
+!  2.  Repeat LU decomposition of Ghimj until successful.
+!       -half the step size if LU decomposition fails and retry
+!       -exit after 5 consecutive fails
+! --- --- --- --- --- --- --- --- --- --- --- --- ---
+   IMPLICIT NONE
+
+!~~~> Input arguments
+#ifdef FULL_ALGEBRA    
+   KPP_REAL, INTENT(IN) ::  Jac0(NVAR,NVAR)
+#else
+   KPP_REAL, INTENT(IN) ::  Jac0(LU_NONZERO)
+#endif   
+   KPP_REAL, INTENT(IN) ::  gam
+   INTEGER, INTENT(IN) ::  Direction
+!~~~> Output arguments
+#ifdef FULL_ALGEBRA    
+   KPP_REAL, INTENT(OUT) :: Ghimj(NVAR,NVAR)
+#else
+   KPP_REAL, INTENT(OUT) :: Ghimj(LU_NONZERO)
+#endif   
+   LOGICAL, INTENT(OUT) ::  Singular
+   INTEGER, INTENT(OUT) ::  Pivot(NVAR)
+!~~~> Inout arguments
+   KPP_REAL, INTENT(INOUT) :: H   ! step size is decreased when LU fails
+!~~~> Local variables
+   INTEGER  :: i, ISING, Nconsecutive
+   KPP_REAL :: ghinv
+   KPP_REAL, PARAMETER :: ONE  = 1.0_dp, HALF = 0.5_dp
+
+   Nconsecutive = 0
+   Singular = .TRUE.
+
+   DO WHILE (Singular)
+
+!~~~>    Construct Ghimj = 1/(H*gam) - Jac0
+#ifdef FULL_ALGEBRA    
+     CALL WCOPY(NVAR*NVAR,Jac0,1,Ghimj,1)
+     CALL WSCAL(NVAR*NVAR,(-ONE),Ghimj,1)
+     ghinv = ONE/(Direction*H*gam)
+     DO i=1,NVAR
+       Ghimj(i,i) = Ghimj(i,i)+ghinv
+     END DO
+#else
+     CALL WCOPY(LU_NONZERO,Jac0,1,Ghimj,1)
+     CALL WSCAL(LU_NONZERO,(-ONE),Ghimj,1)
+     ghinv = ONE/(Direction*H*gam)
+     DO i=1,NVAR
+       Ghimj(LU_DIAG(i)) = Ghimj(LU_DIAG(i))+ghinv
+     END DO
+#endif   
+!~~~>    Compute LU decomposition
+     CALL ros_Decomp( Ghimj, Pivot, ISING )
+     IF (ISING == 0) THEN
+!~~~>    If successful done
+        Singular = .FALSE.
+     ELSE ! ISING .ne. 0
+!~~~>    If unsuccessful half the step size; if 5 consecutive fails then return
+        ISTATUS(Nsng) = ISTATUS(Nsng) + 1
+        Nconsecutive = Nconsecutive+1
+        Singular = .TRUE.
+        PRINT*,'Warning: LU Decomposition returned ISING = ',ISING
+        IF (Nconsecutive <= 5) THEN ! Less than 5 consecutive failed decompositions
+           H = H*HALF
+        ELSE  ! More than 5 consecutive failed decompositions
+           RETURN
+        END IF  ! Nconsecutive
+      END IF    ! ISING
+
+   END DO ! WHILE Singular
+
+  END SUBROUTINE ros_PrepareMatrix
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE ros_Decomp( A, Pivot, ISING )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!  Template for the LU decomposition
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   IMPLICIT NONE
+!~~~> Inout variables
+#ifdef FULL_ALGEBRA    
+   KPP_REAL, INTENT(INOUT) :: A(NVAR,NVAR)
+#else   
+   KPP_REAL, INTENT(INOUT) :: A(LU_NONZERO)
+#endif
+!~~~> Output variables
+   INTEGER, INTENT(OUT) :: Pivot(NVAR), ISING
+
+#ifdef FULL_ALGEBRA    
+   CALL  DGETRF( NVAR, NVAR, A, NVAR, Pivot, ISING )
+#else   
+   CALL KppDecomp ( A, ISING )
+   Pivot(1) = 1
+#endif
+   ISTATUS(Ndec) = ISTATUS(Ndec) + 1
+
+  END SUBROUTINE ros_Decomp
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE ros_Solve( How, A, Pivot, b )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!  Template for the forward/backward substitution (using pre-computed LU decomposition)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   IMPLICIT NONE
+!~~~> Input variables
+   CHARACTER, INTENT(IN) :: How
+#ifdef FULL_ALGEBRA    
+   KPP_REAL, INTENT(IN) :: A(NVAR,NVAR)
+   INTEGER :: ISING
+#else   
+   KPP_REAL, INTENT(IN) :: A(LU_NONZERO)
+#endif
+   INTEGER, INTENT(IN) :: Pivot(NVAR)
+!~~~> InOut variables
+   KPP_REAL, INTENT(INOUT) :: b(NVAR)
+
+   SELECT CASE (How)
+   CASE ('N')
+#ifdef FULL_ALGEBRA    
+     CALL DGETRS( 'N', NVAR , 1, A, NVAR, Pivot, b, NVAR, ISING )
+#else   
+     CALL KppSolve( A, b )
+#endif
+   CASE ('T')
+#ifdef FULL_ALGEBRA    
+     CALL DGETRS( 'T', NVAR , 1, A, NVAR, Pivot, b, NVAR, ISING )
+#else   
+     CALL KppSolveTR( A, b, b )
+#endif
+   CASE DEFAULT
+     PRINT*,'Error: unknown argument in ros_Solve: How=',How
+     STOP
+   END SELECT
+   ISTATUS(Nsol) = ISTATUS(Nsol) + 1
+
+  END SUBROUTINE ros_Solve
+
+  
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+  SUBROUTINE ros_cadj_Y( T, Y )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
+!  Finds the solution Y at T by interpolating the stored forward trajectory
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+   IMPLICIT NONE
+!~~~> Input variables 
+   KPP_REAL, INTENT(IN) :: T
+!~~~> Output variables     
+   KPP_REAL, INTENT(OUT) :: Y(NVAR)
+!~~~> Local variables     
+   INTEGER     :: i
+   KPP_REAL, PARAMETER  :: ONE = 1.0d0
+
+!   chk_H, chk_T, chk_Y, chk_dY, chk_d2Y
+
+   IF( (T < chk_T(1)).OR.(T> chk_T(stack_ptr)) ) THEN
+      PRINT*,'Cannot locate solution at T = ',T
+      PRINT*,'Stored trajectory is between Tstart = ',chk_T(1)
+      PRINT*,'    and Tend = ',chk_T(stack_ptr)
+      STOP
+   END IF
+   DO i = 1, stack_ptr-1
+     IF( (T>= chk_T(i)).AND.(T<= chk_T(i+1)) ) EXIT
+   END DO 
+
+
+!   IF (.FALSE.) THEN
+!
+!   CALL ros_Hermite5( chk_T(i), chk_T(i+1), T, &
+!                chk_Y(1,i),   chk_Y(1,i+1),     &
+!                chk_dY(1,i),  chk_dY(1,i+1),    &
+!                chk_d2Y(1,i), chk_d2Y(1,i+1), Y )
+!   
+!   ELSE
+                
+   CALL ros_Hermite3( chk_T(i), chk_T(i+1), T, &
+                chk_Y(1:NVAR,i),   chk_Y(1:NVAR,i+1),     &
+                chk_dY(1:NVAR,i),  chk_dY(1:NVAR,i+1),    &
+                Y )
+                        
+!   
+!   END IF       
+
+  END SUBROUTINE ros_cadj_Y
+  
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+  SUBROUTINE ros_Hermite3( a, b, T, Ya, Yb, Ja, Jb, Y )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
+!  Template for Hermite interpolation of order 5 on the interval [a,b]
+! P = c(1) + c(2)*(x-a) + ... + c(4)*(x-a)^3
+! P[a,b] = [Ya,Yb], P'[a,b] = [Ja,Jb]
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+   IMPLICIT NONE
+!~~~> Input variables 
+   KPP_REAL, INTENT(IN) :: a, b, T, Ya(NVAR), Yb(NVAR)
+   KPP_REAL, INTENT(IN) :: Ja(NVAR), Jb(NVAR)
+!~~~> Output variables     
+   KPP_REAL, INTENT(OUT) :: Y(NVAR)
+!~~~> Local variables     
+   KPP_REAL :: Tau, amb(3), C(NVAR,4)
+   KPP_REAL, PARAMETER :: ZERO = 0.0d0
+   INTEGER :: i, j
+   
+   amb(1) = 1.0d0/(a-b)
+   DO i=2,3
+     amb(i) = amb(i-1)*amb(1)
+   END DO
+   
+   
+! c(1) = ya;
+   CALL WCOPY(NVAR,Ya,1,C(1,1),1)
+! c(2) = ja;
+   CALL WCOPY(NVAR,Ja,1,C(1,2),1)
+! c(3) = 2/(a-b)*ja + 1/(a-b)*jb - 3/(a - b)^2*ya + 3/(a - b)^2*yb  ;
+   CALL WCOPY(NVAR,Ya,1,C(1,3),1)
+   CALL WSCAL(NVAR,-3.0*amb(2),C(1,3),1)
+   CALL WAXPY(NVAR,3.0*amb(2),Yb,1,C(1,3),1)
+   CALL WAXPY(NVAR,2.0*amb(1),Ja,1,C(1,3),1)
+   CALL WAXPY(NVAR,amb(1),Jb,1,C(1,3),1)
+! c(4) =  1/(a-b)^2*ja + 1/(a-b)^2*jb - 2/(a-b)^3*ya + 2/(a-b)^3*yb ;
+   CALL WCOPY(NVAR,Ya,1,C(1,4),1)
+   CALL WSCAL(NVAR,-2.0*amb(3),C(1,4),1)
+   CALL WAXPY(NVAR,2.0*amb(3),Yb,1,C(1,4),1)
+   CALL WAXPY(NVAR,amb(2),Ja,1,C(1,4),1)
+   CALL WAXPY(NVAR,amb(2),Jb,1,C(1,4),1)
+   
+   Tau = T - a
+   CALL WCOPY(NVAR,C(1,4),1,Y,1)
+   CALL WSCAL(NVAR,Tau**3,Y,1)
+   DO j = 3,1,-1
+     CALL WAXPY(NVAR,TAU**(j-1),C(1,j),1,Y,1)
+   END DO       
+
+  END SUBROUTINE ros_Hermite3
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+  SUBROUTINE ros_Hermite5( a, b, T, Ya, Yb, Ja, Jb, Ha, Hb, Y )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
+!  Template for Hermite interpolation of order 5 on the interval [a,b]
+! P = c(1) + c(2)*(x-a) + ... + c(6)*(x-a)^5
+! P[a,b] = [Ya,Yb], P'[a,b] = [Ja,Jb], P"[a,b] = [Ha,Hb]
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+   IMPLICIT NONE
+!~~~> Input variables 
+   KPP_REAL, INTENT(IN) :: a, b, T, Ya(NVAR), Yb(NVAR)
+   KPP_REAL, INTENT(IN) :: Ja(NVAR), Jb(NVAR), Ha(NVAR), Hb(NVAR)
+!~~~> Output variables     
+   KPP_REAL, INTENT(OUT) :: Y(NVAR)
+!~~~> Local variables     
+   KPP_REAL :: Tau, amb(5), C(NVAR,6)
+   KPP_REAL, PARAMETER :: ZERO = 0.0d0, HALF = 0.5d0
+   INTEGER :: i, j
+   
+   amb(1) = 1.0d0/(a-b)
+   DO i=2,5
+     amb(i) = amb(i-1)*amb(1)
+   END DO
+     
+! c(1) = ya;
+   CALL WCOPY(NVAR,Ya,1,C(1,1),1)
+! c(2) = ja;
+   CALL WCOPY(NVAR,Ja,1,C(1,2),1)
+! c(3) = ha/2;
+   CALL WCOPY(NVAR,Ha,1,C(1,3),1)
+   CALL WSCAL(NVAR,HALF,C(1,3),1)
+   
+! c(4) = 10*amb(3)*ya - 10*amb(3)*yb - 6*amb(2)*ja - 4*amb(2)*jb  + 1.5*amb(1)*ha - 0.5*amb(1)*hb ;
+   CALL WCOPY(NVAR,Ya,1,C(1,4),1)
+   CALL WSCAL(NVAR,10.0*amb(3),C(1,4),1)
+   CALL WAXPY(NVAR,-10.0*amb(3),Yb,1,C(1,4),1)
+   CALL WAXPY(NVAR,-6.0*amb(2),Ja,1,C(1,4),1)
+   CALL WAXPY(NVAR,-4.0*amb(2),Jb,1,C(1,4),1)
+   CALL WAXPY(NVAR, 1.5*amb(1),Ha,1,C(1,4),1)
+   CALL WAXPY(NVAR,-0.5*amb(1),Hb,1,C(1,4),1)
+
+! c(5) =   15*amb(4)*ya - 15*amb(4)*yb - 8.*amb(3)*ja - 7*amb(3)*jb + 1.5*amb(2)*ha - 1*amb(2)*hb ;
+   CALL WCOPY(NVAR,Ya,1,C(1,5),1)
+   CALL WSCAL(NVAR, 15.0*amb(4),C(1,5),1)
+   CALL WAXPY(NVAR,-15.0*amb(4),Yb,1,C(1,5),1)
+   CALL WAXPY(NVAR,-8.0*amb(3),Ja,1,C(1,5),1)
+   CALL WAXPY(NVAR,-7.0*amb(3),Jb,1,C(1,5),1)
+   CALL WAXPY(NVAR,1.5*amb(2),Ha,1,C(1,5),1)
+   CALL WAXPY(NVAR,-amb(2),Hb,1,C(1,5),1)
+   
+! c(6) =   6*amb(5)*ya - 6*amb(5)*yb - 3.*amb(4)*ja - 3.*amb(4)*jb + 0.5*amb(3)*ha -0.5*amb(3)*hb ;
+   CALL WCOPY(NVAR,Ya,1,C(1,6),1)
+   CALL WSCAL(NVAR, 6.0*amb(5),C(1,6),1)
+   CALL WAXPY(NVAR,-6.0*amb(5),Yb,1,C(1,6),1)
+   CALL WAXPY(NVAR,-3.0*amb(4),Ja,1,C(1,6),1)
+   CALL WAXPY(NVAR,-3.0*amb(4),Jb,1,C(1,6),1)
+   CALL WAXPY(NVAR, 0.5*amb(3),Ha,1,C(1,6),1)
+   CALL WAXPY(NVAR,-0.5*amb(3),Hb,1,C(1,6),1)
+   
+   Tau = T - a
+   CALL WCOPY(NVAR,C(1,6),1,Y,1)
+   DO j = 5,1,-1
+     CALL WSCAL(NVAR,Tau,Y,1)
+     CALL WAXPY(NVAR,ONE,C(1,j),1,Y,1)
+   END DO       
+
+  END SUBROUTINE ros_Hermite5
+ 
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+  SUBROUTINE Ros2
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+! --- AN L-STABLE METHOD, 2 stages, order 2
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+
+    IMPLICIT NONE
+    DOUBLE PRECISION g
+   
+    g = 1.0d0 + 1.0d0/SQRT(2.0d0)
+   
+    rosMethod = RS2
+!~~~> Name of the method
+    ros_Name = 'ROS-2'   
+!~~~> Number of stages
+    ros_S = 2
+   
+!~~~> The coefficient matrices A and C are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+!   The general mapping formula is:
+!       A(i,j) = ros_A( (i-1)*(i-2)/2 + j )    
+!       C(i,j) = ros_C( (i-1)*(i-2)/2 + j )  
+   
+    ros_A(1) = (1.d0)/g
+    ros_C(1) = (-2.d0)/g
+!~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+    ros_NewF(1) = .TRUE.
+    ros_NewF(2) = .TRUE.
+!~~~> M_i = Coefficients for new step solution
+    ros_M(1)= (3.d0)/(2.d0*g)
+    ros_M(2)= (1.d0)/(2.d0*g)
+! E_i = Coefficients for error estimator    
+    ros_E(1) = 1.d0/(2.d0*g)
+    ros_E(2) = 1.d0/(2.d0*g)
+!~~~> ros_ELO = estimator of local order - the minimum between the
+!    main and the embedded scheme orders plus one
+    ros_ELO = 2.0d0    
+!~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+    ros_Alpha(1) = 0.0d0
+    ros_Alpha(2) = 1.0d0 
+!~~~> Gamma_i = \sum_j  gamma_{i,j}    
+    ros_Gamma(1) = g
+    ros_Gamma(2) =-g
+   
+ END SUBROUTINE Ros2
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+  SUBROUTINE Ros3
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+! --- AN L-STABLE METHOD, 3 stages, order 3, 2 function evaluations
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+  
+   IMPLICIT NONE
+    
+    rosMethod = RS3
+!~~~> Name of the method
+   ros_Name = 'ROS-3'   
+!~~~> Number of stages
+   ros_S = 3
+   
+!~~~> The coefficient matrices A and C are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+!   The general mapping formula is:
+!       A(i,j) = ros_A( (i-1)*(i-2)/2 + j )    
+!       C(i,j) = ros_C( (i-1)*(i-2)/2 + j )  
+     
+   ros_A(1)= 1.d0
+   ros_A(2)= 1.d0
+   ros_A(3)= 0.d0
+
+   ros_C(1) = -0.10156171083877702091975600115545d+01
+   ros_C(2) =  0.40759956452537699824805835358067d+01
+   ros_C(3) =  0.92076794298330791242156818474003d+01
+!~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+   ros_NewF(1) = .TRUE.
+   ros_NewF(2) = .TRUE.
+   ros_NewF(3) = .FALSE.
+!~~~> M_i = Coefficients for new step solution
+   ros_M(1) =  0.1d+01
+   ros_M(2) =  0.61697947043828245592553615689730d+01
+   ros_M(3) = -0.42772256543218573326238373806514d+00
+! E_i = Coefficients for error estimator    
+   ros_E(1) =  0.5d+00
+   ros_E(2) = -0.29079558716805469821718236208017d+01
+   ros_E(3) =  0.22354069897811569627360909276199d+00
+!~~~> ros_ELO = estimator of local order - the minimum between the
+!    main and the embedded scheme orders plus 1
+   ros_ELO = 3.0d0    
+!~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+   ros_Alpha(1)= 0.0d+00
+   ros_Alpha(2)= 0.43586652150845899941601945119356d+00
+   ros_Alpha(3)= 0.43586652150845899941601945119356d+00
+!~~~> Gamma_i = \sum_j  gamma_{i,j}    
+   ros_Gamma(1)= 0.43586652150845899941601945119356d+00
+   ros_Gamma(2)= 0.24291996454816804366592249683314d+00
+   ros_Gamma(3)= 0.21851380027664058511513169485832d+01
+
+  END SUBROUTINE Ros3
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+  SUBROUTINE Ros4
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+!     L-STABLE ROSENBROCK METHOD OF ORDER 4, WITH 4 STAGES
+!     L-STABLE EMBEDDED ROSENBROCK METHOD OF ORDER 3 
+!
+!      E. HAIRER AND G. WANNER, SOLVING ORDINARY DIFFERENTIAL
+!      EQUATIONS II. STIFF AND DIFFERENTIAL-ALGEBRAIC PROBLEMS.
+!      SPRINGER SERIES IN COMPUTATIONAL MATHEMATICS,
+!      SPRINGER-VERLAG (1990)         
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+
+   IMPLICIT NONE
+   
+    rosMethod = RS4
+!~~~> Name of the method
+   ros_Name = 'ROS-4'   
+!~~~> Number of stages
+   ros_S = 4
+   
+!~~~> The coefficient matrices A and C are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+!   The general mapping formula is:
+!       A(i,j) = ros_A( (i-1)*(i-2)/2 + j )    
+!       C(i,j) = ros_C( (i-1)*(i-2)/2 + j )  
+     
+   ros_A(1) = 0.2000000000000000d+01
+   ros_A(2) = 0.1867943637803922d+01
+   ros_A(3) = 0.2344449711399156d+00
+   ros_A(4) = ros_A(2)
+   ros_A(5) = ros_A(3)
+   ros_A(6) = 0.0D0
+
+   ros_C(1) =-0.7137615036412310d+01
+   ros_C(2) = 0.2580708087951457d+01
+   ros_C(3) = 0.6515950076447975d+00
+   ros_C(4) =-0.2137148994382534d+01
+   ros_C(5) =-0.3214669691237626d+00
+   ros_C(6) =-0.6949742501781779d+00
+!~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+   ros_NewF(1)  = .TRUE.
+   ros_NewF(2)  = .TRUE.
+   ros_NewF(3)  = .TRUE.
+   ros_NewF(4)  = .FALSE.
+!~~~> M_i = Coefficients for new step solution
+   ros_M(1) = 0.2255570073418735d+01
+   ros_M(2) = 0.2870493262186792d+00
+   ros_M(3) = 0.4353179431840180d+00
+   ros_M(4) = 0.1093502252409163d+01
+!~~~> E_i  = Coefficients for error estimator    
+   ros_E(1) =-0.2815431932141155d+00
+   ros_E(2) =-0.7276199124938920d-01
+   ros_E(3) =-0.1082196201495311d+00
+   ros_E(4) =-0.1093502252409163d+01
+!~~~> ros_ELO  = estimator of local order - the minimum between the
+!    main and the embedded scheme orders plus 1
+   ros_ELO  = 4.0d0    
+!~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+   ros_Alpha(1) = 0.D0
+   ros_Alpha(2) = 0.1145640000000000d+01
+   ros_Alpha(3) = 0.6552168638155900d+00
+   ros_Alpha(4) = ros_Alpha(3)
+!~~~> Gamma_i = \sum_j  gamma_{i,j}    
+   ros_Gamma(1) = 0.5728200000000000d+00
+   ros_Gamma(2) =-0.1769193891319233d+01
+   ros_Gamma(3) = 0.7592633437920482d+00
+   ros_Gamma(4) =-0.1049021087100450d+00
+
+  END SUBROUTINE Ros4
+   
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+  SUBROUTINE Rodas3
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+! --- A STIFFLY-STABLE METHOD, 4 stages, order 3
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+
+   IMPLICIT NONE
+   
+    rosMethod = RD3
+!~~~> Name of the method
+   ros_Name = 'RODAS-3'   
+!~~~> Number of stages
+   ros_S = 4
+   
+!~~~> The coefficient matrices A and C are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+!   The general mapping formula is:
+!       A(i,j) = ros_A( (i-1)*(i-2)/2 + j )    
+!       C(i,j) = ros_C( (i-1)*(i-2)/2 + j )  
+ 
+   ros_A(1) = 0.0d+00
+   ros_A(2) = 2.0d+00
+   ros_A(3) = 0.0d+00
+   ros_A(4) = 2.0d+00
+   ros_A(5) = 0.0d+00
+   ros_A(6) = 1.0d+00
+
+   ros_C(1) = 4.0d+00
+   ros_C(2) = 1.0d+00
+   ros_C(3) =-1.0d+00
+   ros_C(4) = 1.0d+00
+   ros_C(5) =-1.0d+00 
+   ros_C(6) =-(8.0d+00/3.0d+00) 
+         
+!~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+   ros_NewF(1)  = .TRUE.
+   ros_NewF(2)  = .FALSE.
+   ros_NewF(3)  = .TRUE.
+   ros_NewF(4)  = .TRUE.
+!~~~> M_i = Coefficients for new step solution
+   ros_M(1) = 2.0d+00
+   ros_M(2) = 0.0d+00
+   ros_M(3) = 1.0d+00
+   ros_M(4) = 1.0d+00
+!~~~> E_i  = Coefficients for error estimator    
+   ros_E(1) = 0.0d+00
+   ros_E(2) = 0.0d+00
+   ros_E(3) = 0.0d+00
+   ros_E(4) = 1.0d+00
+!~~~> ros_ELO  = estimator of local order - the minimum between the
+!    main and the embedded scheme orders plus 1
+   ros_ELO  = 3.0d+00    
+!~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+   ros_Alpha(1) = 0.0d+00
+   ros_Alpha(2) = 0.0d+00
+   ros_Alpha(3) = 1.0d+00
+   ros_Alpha(4) = 1.0d+00
+!~~~> Gamma_i = \sum_j  gamma_{i,j}    
+   ros_Gamma(1) = 0.5d+00
+   ros_Gamma(2) = 1.5d+00
+   ros_Gamma(3) = 0.0d+00
+   ros_Gamma(4) = 0.0d+00
+
+  END SUBROUTINE Rodas3
+    
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+  SUBROUTINE Rodas4
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+!     STIFFLY-STABLE ROSENBROCK METHOD OF ORDER 4, WITH 6 STAGES
+!
+!      E. HAIRER AND G. WANNER, SOLVING ORDINARY DIFFERENTIAL
+!      EQUATIONS II. STIFF AND DIFFERENTIAL-ALGEBRAIC PROBLEMS.
+!      SPRINGER SERIES IN COMPUTATIONAL MATHEMATICS,
+!      SPRINGER-VERLAG (1996)         
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+
+   IMPLICIT NONE
+
+    rosMethod = RD4
+!~~~> Name of the method
+    ros_Name = 'RODAS-4'   
+!~~~> Number of stages
+    ros_S = 6
+
+!~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+    ros_Alpha(1) = 0.000d0
+    ros_Alpha(2) = 0.386d0
+    ros_Alpha(3) = 0.210d0 
+    ros_Alpha(4) = 0.630d0
+    ros_Alpha(5) = 1.000d0
+    ros_Alpha(6) = 1.000d0
+        
+!~~~> Gamma_i = \sum_j  gamma_{i,j}    
+    ros_Gamma(1) = 0.2500000000000000d+00
+    ros_Gamma(2) =-0.1043000000000000d+00
+    ros_Gamma(3) = 0.1035000000000000d+00
+    ros_Gamma(4) =-0.3620000000000023d-01
+    ros_Gamma(5) = 0.0d0
+    ros_Gamma(6) = 0.0d0
+
+!~~~> The coefficient matrices A and C are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+!   The general mapping formula is:  A(i,j) = ros_A( (i-1)*(i-2)/2 + j )    
+!                  C(i,j) = ros_C( (i-1)*(i-2)/2 + j )  
+     
+    ros_A(1) = 0.1544000000000000d+01
+    ros_A(2) = 0.9466785280815826d+00
+    ros_A(3) = 0.2557011698983284d+00
+    ros_A(4) = 0.3314825187068521d+01
+    ros_A(5) = 0.2896124015972201d+01
+    ros_A(6) = 0.9986419139977817d+00
+    ros_A(7) = 0.1221224509226641d+01
+    ros_A(8) = 0.6019134481288629d+01
+    ros_A(9) = 0.1253708332932087d+02
+    ros_A(10) =-0.6878860361058950d+00
+    ros_A(11) = ros_A(7)
+    ros_A(12) = ros_A(8)
+    ros_A(13) = ros_A(9)
+    ros_A(14) = ros_A(10)
+    ros_A(15) = 1.0d+00
+
+    ros_C(1) =-0.5668800000000000d+01
+    ros_C(2) =-0.2430093356833875d+01
+    ros_C(3) =-0.2063599157091915d+00
+    ros_C(4) =-0.1073529058151375d+00
+    ros_C(5) =-0.9594562251023355d+01
+    ros_C(6) =-0.2047028614809616d+02
+    ros_C(7) = 0.7496443313967647d+01
+    ros_C(8) =-0.1024680431464352d+02
+    ros_C(9) =-0.3399990352819905d+02
+    ros_C(10) = 0.1170890893206160d+02
+    ros_C(11) = 0.8083246795921522d+01
+    ros_C(12) =-0.7981132988064893d+01
+    ros_C(13) =-0.3152159432874371d+02
+    ros_C(14) = 0.1631930543123136d+02
+    ros_C(15) =-0.6058818238834054d+01
+
+!~~~> M_i = Coefficients for new step solution
+    ros_M(1) = ros_A(7)
+    ros_M(2) = ros_A(8)
+    ros_M(3) = ros_A(9)
+    ros_M(4) = ros_A(10)
+    ros_M(5) = 1.0d+00
+    ros_M(6) = 1.0d+00
+
+!~~~> E_i  = Coefficients for error estimator    
+    ros_E(1) = 0.0d+00
+    ros_E(2) = 0.0d+00
+    ros_E(3) = 0.0d+00
+    ros_E(4) = 0.0d+00
+    ros_E(5) = 0.0d+00
+    ros_E(6) = 1.0d+00
+
+!~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+    ros_NewF(1) = .TRUE.
+    ros_NewF(2) = .TRUE.
+    ros_NewF(3) = .TRUE.
+    ros_NewF(4) = .TRUE.
+    ros_NewF(5) = .TRUE.
+    ros_NewF(6) = .TRUE.
+     
+!~~~> ros_ELO  = estimator of local order - the minimum between the
+!        main and the embedded scheme orders plus 1
+    ros_ELO = 4.0d0
+     
+  END SUBROUTINE Rodas4
+
+
+END SUBROUTINE RosenbrockADJ ! and its internal procedures
+  
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+SUBROUTINE FunTemplate( T, Y, Ydot )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
+!  Template for the ODE function call.
+!  Updates the rate coefficients (and possibly the fixed species) at each call    
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+ 
+!~~~> Input variables     
+   KPP_REAL, INTENT(IN)  :: T, Y(NVAR)
+!~~~> Output variables     
+   KPP_REAL, INTENT(OUT) :: Ydot(NVAR)
+!~~~> Local variables
+   KPP_REAL :: Told     
+
+   Told = TIME
+   TIME = T
+   CALL Update_SUN()
+   CALL Update_RCONST()
+   CALL Fun( Y, FIX, RCONST, Ydot )
+   TIME = Told
+   
+END SUBROUTINE FunTemplate
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+SUBROUTINE JacTemplate( T, Y, Jcb )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!  Template for the ODE Jacobian call.
+!  Updates the rate coefficients (and possibly the fixed species) at each call
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+!~~~> Input variables
+    KPP_REAL :: T, Y(NVAR)
+!~~~> Output variables
+#ifdef FULL_ALGEBRA    
+    KPP_REAL :: JV(LU_NONZERO), Jcb(NVAR,NVAR)
+#else
+    KPP_REAL :: Jcb(LU_NONZERO)
+#endif   
+!~~~> Local variables
+    KPP_REAL :: Told
+#ifdef FULL_ALGEBRA    
+    INTEGER :: i, j
+#endif   
+
+    Told = TIME
+    TIME = T
+    CALL Update_SUN()
+    CALL Update_RCONST()
+#ifdef FULL_ALGEBRA    
+    CALL Jac_SP(Y, FIX, RCONST, JV)
+    DO j=1,NVAR
+      DO i=1,NVAR
+         Jcb(i,j) = 0.0_dp
+      END DO
+    END DO
+    DO i=1,LU_NONZERO
+       Jcb(LU_IROW(i),LU_ICOL(i)) = JV(i)
+    END DO
+#else
+    CALL Jac_SP( Y, FIX, RCONST, Jcb )
+#endif   
+    TIME = Told
+
+END SUBROUTINE JacTemplate
+
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+SUBROUTINE HessTemplate( T, Y, Hes )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+!  Template for the ODE Hessian call.
+!  Updates the rate coefficients (and possibly the fixed species) at each call    
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+
+!~~~> Input variables     
+    KPP_REAL, INTENT(IN)  :: T, Y(NVAR)
+!~~~> Output variables     
+    KPP_REAL, INTENT(OUT) :: Hes(NHESS)
+!~~~> Local variables
+    KPP_REAL :: Told     
+
+    Told = TIME
+    TIME = T   
+    CALL Update_SUN()
+    CALL Update_RCONST()
+    CALL Hessian( Y, FIX, RCONST, Hes )
+    TIME = Told
+
+END SUBROUTINE HessTemplate                                      
+
+END MODULE KPP_ROOT_Integrator
+
+
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/rosenbrock_tlm.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/rosenbrock_tlm.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/rosenbrock_tlm.def	(revision 2696)
@@ -0,0 +1,23 @@
+ 
+#FUNCTION AGGREGATE
+#JACOBIAN SPARSE_LU_ROW
+
+#DOUBLE ON 
+#INTFILE rosenbrock_tlm
+
+#INLINE F77_GLOBAL
+      INTEGER Autonomous
+      COMMON /INTGDATA/ Autonomous
+      REAL*8 STEPSTART
+      COMMON /GDATA/ STEPSTART
+#ENDINLINE
+
+#INLINE F77_INIT
+        STEPMIN=0.0001
+        STEPMAX=3600.
+        Autonomous = 1 
+        STEPSTART=STEPMIN
+#ENDINLINE
+
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/rosenbrock_tlm.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/rosenbrock_tlm.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/rosenbrock_tlm.f90	(revision 2696)
@@ -0,0 +1,1363 @@
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
+!  Rosenbrock_TLM - Implementation of the Tangent Linear Model            !
+!               for several Rosenbrock methods:                           !
+!               * Ros2                                                    !
+!               * Ros3                                                    !
+!               * Ros4                                                    !
+!               * Rodas3                                                  !
+!               * Rodas4                                                  !
+!  By default the code employs the KPP sparse linear algebra routines     !
+!  Compile with -DFULL_ALGEBRA to use full linear algebra (LAPACK)        !
+!                                                                         !
+!    (C)  Adrian Sandu, August 2004                                       !
+!    Virginia Polytechnic Institute and State University                  !
+!    Contact: sandu@cs.vt.edu                                             !
+!    Revised by Philipp Miehe and Adrian Sandu, May 2006                  !
+!    This implementation is part of KPP - the Kinetic PreProcessor        !
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
+
+MODULE KPP_ROOT_Integrator
+
+   USE KPP_ROOT_Precision
+   USE KPP_ROOT_Parameters
+   USE KPP_ROOT_Global
+   USE KPP_ROOT_LinearAlgebra
+   USE KPP_ROOT_Rates
+   USE KPP_ROOT_Function
+   USE KPP_ROOT_Jacobian
+   USE KPP_ROOT_Hessian
+   USE KPP_ROOT_Util
+
+   IMPLICIT NONE
+   PUBLIC
+   SAVE
+
+!~~~>  Statistics on the work performed by the Rosenbrock method
+  INTEGER, PARAMETER :: Nfun=1, Njac=2, Nstp=3, Nacc=4, &
+                        Nrej=5, Ndec=6, Nsol=7, Nsng=8, &
+                        Nhes=9, Ntexit=1, Nhexit=2, Nhnew = 3
+
+
+CONTAINS ! Functions in the module KPP_ROOT_Integrator
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+SUBROUTINE INTEGRATE_TLM( NTLM, Y, Y_tlm, TIN, TOUT, ATOL_tlm, RTOL_tlm,&
+       ICNTRL_U, RCNTRL_U, ISTATUS_U, RSTATUS_U )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   IMPLICIT NONE        
+    
+!~~~> Y - Concentrations
+   KPP_REAL :: Y(NVAR)
+!~~~> NTLM - No. of sensitivity coefficients
+   INTEGER NTLM
+!~~~> Y_tlm - Sensitivities of concentrations
+!     Note: Y_tlm (1:NVAR,j) contains sensitivities of
+!               Y(1:NVAR) w.r.t. the j-th parameter, j=1...NTLM
+   KPP_REAL :: Y_tlm(NVAR,NTLM)
+   KPP_REAL, INTENT(IN)         :: TIN  ! TIN  - Start Time
+   KPP_REAL, INTENT(IN)         :: TOUT ! TOUT - End Time
+!~~~> Optional input parameters and statistics
+   INTEGER,  INTENT(IN),  OPTIONAL :: ICNTRL_U(20)
+   KPP_REAL, INTENT(IN),  OPTIONAL :: RCNTRL_U(20)
+   INTEGER,  INTENT(OUT), OPTIONAL :: ISTATUS_U(20)
+   KPP_REAL, INTENT(OUT), OPTIONAL :: RSTATUS_U(20)
+   KPP_REAL, INTENT(IN),  OPTIONAL :: RTOL_tlm(NVAR,NTLM),ATOL_tlm(NVAR,NTLM)
+
+   INTEGER, SAVE :: IERR
+   KPP_REAL ::  RCNTRL(20), RSTATUS(20)
+   INTEGER ::   ICNTRL(20), ISTATUS(20)
+   INTEGER, SAVE :: Ntotal = 0
+
+   ICNTRL(1:20)  = 0
+   RCNTRL(1:20)  = 0.0_dp
+   ISTATUS(1:20) = 0
+   RSTATUS(1:20) = 0.0_dp
+   
+   ICNTRL(1) = 0       ! non-autonomous
+   ICNTRL(2) = 1       ! vector tolerances
+   ICNTRL(3) = 5       ! choice of the method
+   ICNTRL(12) = 1      ! 0 - fwd trunc error only, 1 - tlm trunc error
+   RCNTRL(3) = STEPMIN ! starting step
+
+   ! if optional parameters are given, and if they are >=0, then they overwrite default settings
+   IF (PRESENT(ICNTRL_U)) THEN
+     WHERE(ICNTRL_U(:) >= 0) ICNTRL(:) = ICNTRL_U(:)
+   ENDIF
+   IF (PRESENT(RCNTRL_U)) THEN
+     WHERE(RCNTRL_U(:) >= 0) RCNTRL(:) = RCNTRL_U(:)
+   ENDIF
+
+   CALL RosenbrockTLM(NVAR, VAR, NTLM, Y_tlm,      &
+         TIN,TOUT,ATOL,RTOL,ATOL_tlm,RTOL_tlm,     &
+         RCNTRL,ICNTRL,RSTATUS,ISTATUS,IERR)
+
+!~~~> Debug option: show number of steps
+!   Ntotal = Ntotal + ISTATUS(Nstp)
+!   PRINT*,'NSTEPS=',ISTATUS(Nstp),' (',Ntotal,')','  O3=', VAR(ind_O3)
+    
+   IF (IERR < 0) THEN
+     print *,'Rosenbrock: Unsucessful step at T=', &
+         TIN,' (IERR=',IERR,')'
+   END IF
+   
+   STEPMIN = RSTATUS(Nhexit)
+   ! if optional parameters are given for output they return information
+   IF (PRESENT(ISTATUS_U)) ISTATUS_U(:) = ISTATUS(:)
+   IF (PRESENT(RSTATUS_U)) RSTATUS_U(:) = RSTATUS(:)
+
+END SUBROUTINE INTEGRATE_TLM
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+SUBROUTINE RosenbrockTLM(N,Y,NTLM,Y_tlm,                      &
+           Tstart,Tend,AbsTol,RelTol,AbsTol_tlm,RelTol_tlm,   &
+           RCNTRL,ICNTRL,RSTATUS,ISTATUS,IERR)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!   
+!    TLM = Tangent Linear Model of a Rosenbrock Method
+!
+!    Solves the system y'=F(t,y) using a Rosenbrock method defined by:
+!
+!     G = 1/(H*gamma(1)) - Jac(t0,Y0)
+!     T_i = t0 + Alpha(i)*H
+!     Y_i = Y0 + \sum_{j=1}^{i-1} A(i,j)*K_j
+!     G * K_i = Fun( T_i, Y_i ) + \sum_{j=1}^S C(i,j)/H * K_j +
+!         gamma(i)*dF/dT(t0, Y0)
+!     Y1 = Y0 + \sum_{j=1}^S M(j)*K_j 
+!
+!    For details on Rosenbrock methods and their implementation consult:
+!      E. Hairer and G. Wanner
+!      "Solving ODEs II. Stiff and differential-algebraic problems".
+!      Springer series in computational mathematics, Springer-Verlag, 1996.  
+!    The codes contained in the book inspired this implementation.       
+!
+!    (C)  Adrian Sandu, August 2004
+!    Virginia Polytechnic Institute and State University    
+!    Contact: sandu@cs.vt.edu
+!    Revised by Philipp Miehe and Adrian Sandu, May 2006                  
+!    This implementation is part of KPP - the Kinetic PreProcessor
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!    
+!~~~>   INPUT ARGUMENTS: 
+!    
+!-     Y(N)    -> vector of initial conditions (at T=Tstart)
+!      NTLM       -> dimension of linearized system, 
+!                   i.e. the number of sensitivity coefficients
+!-     Y_tlm(N*NTLM) -> vector of initial sensitivity conditions (at T=Tstart)
+!-    [Tstart,Tend]    -> time range of integration
+!     (if Tstart>Tend the integration is performed backwards in time)  
+!-    RelTol, AbsTol -> user precribed accuracy
+!- SUBROUTINE Fun( T, Y, Ydot ) -> ODE function, 
+!                       returns Ydot = Y' = F(T,Y) 
+!- SUBROUTINE Jac( T, Y, Jcb ) -> Jacobian of the ODE function,
+!                       returns Jcb = dF/dY 
+!-    ICNTRL(1:20)    -> integer inputs parameters
+!-    RCNTRL(1:20)    -> real inputs parameters
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>     OUTPUT ARGUMENTS:  
+!     
+!-    Y(N)         -> vector of final states (at T->Tend)
+!-    Y_tlm(N*NTLM)-> vector of final sensitivities (at T=Tend)
+!-    ISTATUS(1:20)   -> integer output parameters
+!-    RSTATUS(:20)    -> real output parameters
+!-    IERR            -> job status upon return
+!       - succes (positive value) or failure (negative value) -
+!           =  1 : Success
+!           = -1 : Improper value for maximal no of steps
+!           = -2 : Selected Rosenbrock method not implemented
+!           = -3 : Hmin/Hmax/Hstart must be positive
+!           = -4 : FacMin/FacMax/FacRej must be positive
+!           = -5 : Improper tolerance values
+!           = -6 : No of steps exceeds maximum bound
+!           = -7 : Step size too small
+!           = -8 : Matrix is repeatedly singular
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+!~~~>     INPUT PARAMETERS:
+!
+!    Note: For input parameters equal to zero the default values of the
+!       corresponding variables are used.
+!
+!    ICNTRL(1)   = 1: F = F(y)   Independent of T (AUTONOMOUS)
+!              = 0: F = F(t,y) Depends on T (NON-AUTONOMOUS)
+!
+!    ICNTRL(2)   = 0: AbsTol, RelTol are N-dimensional vectors
+!              = 1:  AbsTol, RelTol are scalars
+!
+!    ICNTRL(3)  -> selection of a particular Rosenbrock method
+!        = 0 :  default method is Rodas3
+!        = 1 :  method is  Ros2
+!        = 2 :  method is  Ros3 
+!        = 3 :  method is  Ros4 
+!        = 4 :  method is  Rodas3
+!        = 5 :  method is  Rodas4
+!
+!    ICNTRL(4)  -> maximum number of integration steps
+!        For ICNTRL(4)=0) the default value of 100000 is used
+!
+!    ICNTRL(12) -> switch for TLM truncation error control
+!		ICNTRL(12) = 0: TLM error is not used
+!		ICNTRL(12) = 1: TLM error is computed and used
+!
+!    RCNTRL(1)  -> Hmin, lower bound for the integration step size
+!          It is strongly recommended to keep Hmin = ZERO 
+!    RCNTRL(2)  -> Hmax, upper bound for the integration step size
+!    RCNTRL(3)  -> Hstart, starting value for the integration step size
+!          
+!    RCNTRL(4)  -> FacMin, lower bound on step decrease factor (default=0.2)
+!    RCNTRL(5)  -> FacMin,upper bound on step increase factor (default=6)
+!    RCNTRL(6)  -> FacRej, step decrease factor after multiple rejections
+!                       (default=0.1)
+!    RCNTRL(7)  -> FacSafe, by which the new step is slightly smaller 
+!         than the predicted value  (default=0.9)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+!~~~>     OUTPUT PARAMETERS:
+!
+!    Note: each call to Rosenbrock adds the corrent no. of fcn calls
+!      to previous value of ISTATUS(1), and similar for the other params.
+!      Set ISTATUS(1:10) = 0 before call to avoid this accumulation.
+!
+!    ISTATUS(1) = No. of function calls
+!    ISTATUS(2) = No. of Jacobian calls
+!    ISTATUS(3) = No. of steps
+!    ISTATUS(4) = No. of accepted steps
+!    ISTATUS(5) = No. of rejected steps (except at the beginning)
+!    ISTATUS(6) = No. of LU decompositions
+!    ISTATUS(7) = No. of forward/backward substitutions
+!    ISTATUS(8) = No. of singular matrix decompositions
+!    ISTATUS(9) = No. of Hessian calls
+!
+!    RSTATUS(1)  -> Texit, the time corresponding to the 
+!                   computed Y upon return
+!    RSTATUS(2)  -> Hexit, last accepted step before exit
+!    For multiple restarts, use Hexit as Hstart in the following run 
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  IMPLICIT NONE
+   
+!~~~>  Arguments   
+   INTEGER,       INTENT(IN)    :: N, NTLM
+   KPP_REAL, INTENT(INOUT) :: Y(N)
+   KPP_REAL, INTENT(INOUT) :: Y_tlm(N,NTLM)
+   KPP_REAL, INTENT(IN)    :: Tstart, Tend
+   KPP_REAL, INTENT(IN)    :: AbsTol(N),RelTol(N)
+   KPP_REAL, INTENT(IN)    :: AbsTol_tlm(N,NTLM),RelTol_tlm(N,NTLM)
+   INTEGER,       INTENT(IN)    :: ICNTRL(20)
+   KPP_REAL, INTENT(IN)    :: RCNTRL(20)
+   INTEGER,       INTENT(INOUT) :: ISTATUS(20)
+   KPP_REAL, INTENT(INOUT) :: RSTATUS(20)
+   INTEGER, INTENT(OUT)   :: IERR
+!~~~>  Parameters of the Rosenbrock method, up to 6 stages
+   INTEGER ::  ros_S, rosMethod
+   INTEGER, PARAMETER :: RS2=1, RS3=2, RS4=3, RD3=4, RD4=5
+   KPP_REAL :: ros_A(15), ros_C(15), ros_M(6), ros_E(6), &
+                    ros_Alpha(6), ros_Gamma(6), ros_ELO
+   LOGICAL :: ros_NewF(6)
+   CHARACTER(LEN=12) :: ros_Name
+!~~~>  Local variables     
+   KPP_REAL :: Roundoff, FacMin, FacMax, FacRej, FacSafe
+   KPP_REAL :: Hmin, Hmax, Hstart, Hexit
+   KPP_REAL :: Texit
+   INTEGER :: i, UplimTol, Max_no_steps 
+   LOGICAL :: Autonomous, VectorTol, TLMtruncErr
+!~~~>   Parameters
+   KPP_REAL, PARAMETER :: ZERO = 0.0d0, ONE  = 1.0d0
+   KPP_REAL, PARAMETER :: DeltaMin = 1.0d-5
+
+!~~~> Initialize the statistics
+   IERR          = 0
+   ISTATUS(1:20) = 0
+   RSTATUS(1:20) = ZERO
+   
+!~~~>  Autonomous or time dependent ODE. Default is time dependent.
+   Autonomous = .NOT.(ICNTRL(1) == 0)
+
+!~~~>  For Scalar tolerances (ICNTRL(2).NE.0)  the code uses AbsTol(1) and RelTol(1)
+!   For Vector tolerances (ICNTRL(2) == 0) the code uses AbsTol(1:N) and RelTol(1:N)
+   IF (ICNTRL(2) == 0) THEN
+      VectorTol = .TRUE.
+      UplimTol  = N
+   ELSE 
+      VectorTol = .FALSE.
+      UplimTol  = 1
+   END IF
+
+!~~~>   Initialize the particular Rosenbrock method selected
+   SELECT CASE (ICNTRL(3))
+     CASE (1)
+       CALL Ros2
+     CASE (2)
+       CALL Ros3
+     CASE (3)
+       CALL Ros4
+     CASE (0,4)
+       CALL Rodas3
+     CASE (5)
+       CALL Rodas4
+     CASE DEFAULT
+       PRINT * , 'Unknown Rosenbrock method: ICNTRL(3)=',ICNTRL(3) 
+       CALL ros_ErrorMsg(-2,Tstart,ZERO,IERR)
+       RETURN
+   END SELECT
+   
+!~~~>   The maximum number of steps admitted
+   IF (ICNTRL(4) == 0) THEN
+      Max_no_steps = 200000
+   ELSEIF (Max_no_steps > 0) THEN
+      Max_no_steps=ICNTRL(4)
+   ELSE 
+      PRINT * ,'User-selected max no. of steps: ICNTRL(4)=',ICNTRL(4)
+      CALL ros_ErrorMsg(-1,Tstart,ZERO,IERR)
+      RETURN      
+   END IF
+!~~~> TLM truncation error control selection  
+      IF (ICNTRL(12) == 0) THEN 
+         TLMtruncErr = .FALSE.
+      ELSE
+         TLMtruncErr = .TRUE.
+      END IF      
+   
+!~~~>  Unit roundoff (1+Roundoff>1)  
+   Roundoff = WLAMCH('E')
+
+!~~~>  Lower bound on the step size: (positive value)
+   IF (RCNTRL(1) == ZERO) THEN
+      Hmin = ZERO
+   ELSEIF (RCNTRL(1) > ZERO) THEN 
+      Hmin = RCNTRL(1)
+   ELSE  
+      PRINT * , 'User-selected Hmin: RCNTRL(1)=', RCNTRL(1)
+      CALL ros_ErrorMsg(-3,Tstart,ZERO,IERR)
+      RETURN      
+   END IF
+!~~~>  Upper bound on the step size: (positive value)
+   IF (RCNTRL(2) == ZERO) THEN
+      Hmax = ABS(Tend-Tstart)
+   ELSEIF (RCNTRL(2) > ZERO) THEN
+      Hmax = MIN(ABS(RCNTRL(2)),ABS(Tend-Tstart))
+   ELSE  
+      PRINT * , 'User-selected Hmax: RCNTRL(2)=', RCNTRL(2)
+      CALL ros_ErrorMsg(-3,Tstart,ZERO,IERR)
+      RETURN      
+   END IF
+!~~~>  Starting step size: (positive value)
+   IF (RCNTRL(3) == ZERO) THEN
+      Hstart = MAX(Hmin,DeltaMin)
+   ELSEIF (RCNTRL(3) > ZERO) THEN
+      Hstart = MIN(ABS(RCNTRL(3)),ABS(Tend-Tstart))
+   ELSE  
+      PRINT * , 'User-selected Hstart: RCNTRL(3)=', RCNTRL(3)
+      CALL ros_ErrorMsg(-3,Tstart,ZERO,IERR)
+      RETURN      
+   END IF
+!~~~>  Step size can be changed s.t.  FacMin < Hnew/Hexit < FacMax 
+   IF (RCNTRL(4) == ZERO) THEN
+      FacMin = 0.2d0
+   ELSEIF (RCNTRL(4) > ZERO) THEN
+      FacMin = RCNTRL(4)
+   ELSE  
+      PRINT * , 'User-selected FacMin: RCNTRL(4)=', RCNTRL(4)
+      CALL ros_ErrorMsg(-4,Tstart,ZERO,IERR)
+      RETURN      
+   END IF
+   IF (RCNTRL(5) == ZERO) THEN
+      FacMax = 6.0d0
+   ELSEIF (RCNTRL(5) > ZERO) THEN
+      FacMax = RCNTRL(5)
+   ELSE  
+      PRINT * , 'User-selected FacMax: RCNTRL(5)=', RCNTRL(5)
+      CALL ros_ErrorMsg(-4,Tstart,ZERO,IERR)
+      RETURN      
+   END IF
+!~~~>   FacRej: Factor to decrease step after 2 succesive rejections
+   IF (RCNTRL(6) == ZERO) THEN
+      FacRej = 0.1d0
+   ELSEIF (RCNTRL(6) > ZERO) THEN
+      FacRej = RCNTRL(6)
+   ELSE  
+      PRINT * , 'User-selected FacRej: RCNTRL(6)=', RCNTRL(6)
+      CALL ros_ErrorMsg(-4,Tstart,ZERO,IERR)
+      RETURN      
+   END IF
+!~~~>   FacSafe: Safety Factor in the computation of new step size
+   IF (RCNTRL(7) == ZERO) THEN
+      FacSafe = 0.9d0
+   ELSEIF (RCNTRL(7) > ZERO) THEN
+      FacSafe = RCNTRL(7)
+   ELSE  
+      PRINT * , 'User-selected FacSafe: RCNTRL(7)=', RCNTRL(7)
+      CALL ros_ErrorMsg(-4,Tstart,ZERO,IERR)
+      RETURN      
+   END IF
+!~~~>  Check if tolerances are reasonable
+    DO i=1,UplimTol
+      IF ( (AbsTol(i) <= ZERO) .OR. (RelTol(i) <= 10.d0*Roundoff) &
+         .OR. (RelTol(i) >= 1.0d0) ) THEN
+        PRINT * , ' AbsTol(',i,') = ',AbsTol(i)
+        PRINT * , ' RelTol(',i,') = ',RelTol(i)
+        CALL ros_ErrorMsg(-5,Tstart,ZERO,IERR)
+        RETURN
+      END IF
+    END DO
+     
+
+!~~~>  CALL Rosenbrock method   
+   CALL ros_TLM_Int(Y, NTLM, Y_tlm,              &
+        Tstart, Tend, Texit,                     & 
+!  Error indicator
+        IERR)
+
+
+CONTAINS ! Procedures internal to RosenbrockTLM
+ 
+ 
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+ SUBROUTINE ros_ErrorMsg(Code,T,H,IERR)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+!    Handles all error messages
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+  
+   KPP_REAL, INTENT(IN) :: T, H
+   INTEGER, INTENT(IN)  :: Code
+   INTEGER, INTENT(OUT) :: IERR
+   
+   IERR = Code
+   PRINT * , &
+     'Forced exit from Rosenbrock due to the following error:' 
+     
+   SELECT CASE (Code)
+    CASE (-1)    
+      PRINT * , '--> Improper value for maximal no of steps'
+    CASE (-2)    
+      PRINT * , '--> Selected Rosenbrock method not implemented'
+    CASE (-3)    
+      PRINT * , '--> Hmin/Hmax/Hstart must be positive'
+    CASE (-4)    
+      PRINT * , '--> FacMin/FacMax/FacRej must be positive'
+    CASE (-5) 
+      PRINT * , '--> Improper tolerance values'
+    CASE (-6) 
+      PRINT * , '--> No of steps exceeds maximum bound'
+    CASE (-7) 
+      PRINT * , '--> Step size too small: T + 10*H = T', &
+            ' or H < Roundoff'
+    CASE (-8)    
+      PRINT * , '--> Matrix is repeatedly singular'
+    CASE DEFAULT
+      PRINT *, 'Unknown Error code: ', Code
+   END SELECT
+   
+   PRINT *, "T=", T, "and H=", H
+     
+ END SUBROUTINE ros_ErrorMsg
+   
+     
+   
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE ros_TLM_Int (Y, NTLM, Y_tlm,         &
+        Tstart, Tend, T,                         &
+!~~~> Error indicator
+        IERR )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!   Template for the implementation of a generic Rosenbrock method 
+!      defined by ros_S (no of stages)  
+!      and its coefficients ros_{A,C,M,E,Alpha,Gamma}
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  IMPLICIT NONE
+   
+!~~~> Input: the initial condition at Tstart; Output: the solution at T   
+   KPP_REAL, INTENT(INOUT) :: Y(N)
+!~~~> Input: Number of sensitivity coefficients
+   INTEGER, INTENT(IN) :: NTLM 
+!~~~> Input: the initial sensitivites at Tstart; Output: the sensitivities at T   
+   KPP_REAL, INTENT(INOUT) :: Y_tlm(N,NTLM)
+!~~~> Input: integration interval   
+   KPP_REAL, INTENT(IN) :: Tstart,Tend      
+!~~~> Output: time at which the solution is returned (T=Tend if success)   
+   KPP_REAL, INTENT(OUT) ::  T      
+!~~~> Output: Error indicator
+   INTEGER, INTENT(OUT) :: IERR
+! ~~~~ Local variables        
+   KPP_REAL :: Ynew(N), Fcn0(N), Fcn(N) 
+   KPP_REAL :: K(N*ros_S)
+   KPP_REAL :: Ynew_tlm(N,NTLM), Fcn0_tlm(N,NTLM), Fcn_tlm(N,NTLM) 
+   KPP_REAL :: K_tlm(N*ros_S,NTLM)
+   KPP_REAL :: Hes0(NHESS), Tmp(N)
+   KPP_REAL :: dFdT(N), dJdT(LU_NONZERO)
+   KPP_REAL :: Jac0(LU_NONZERO), Jac(LU_NONZERO), Ghimj(LU_NONZERO)
+   KPP_REAL :: H, Hnew, HC, HG, Fac, Tau 
+   KPP_REAL :: Err, Err0, Err1, Yerr(N), Yerr_tlm(N,NTLM)
+   INTEGER  :: Pivot(N), Direction, ioffset, j, istage, itlm
+   LOGICAL  :: RejectLastH, RejectMoreH, Singular
+!~~~>  Local parameters
+   KPP_REAL, PARAMETER :: DeltaMin = 1.0d-5
+!~~~>  Locally called functions
+!   KPP_REAL WLAMCH
+!   EXTERNAL WLAMCH
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+   
+!~~~>  Initial preparations
+   T = Tstart
+   RSTATUS(Nhexit) = ZERO
+   H = MIN( MAX(ABS(Hmin),ABS(Hstart)) , ABS(Hmax) )
+   IF (ABS(H) <= 10.D0*Roundoff) H = DeltaMin
+   
+   IF (Tend  >=  Tstart) THEN
+     Direction = +1
+   ELSE
+     Direction = -1
+   END IF               
+   H = Direction*H
+
+   RejectLastH=.FALSE.
+   RejectMoreH=.FALSE.
+   
+!~~~> Time loop begins below 
+
+TimeLoop: DO WHILE ( (Direction > 0).AND.((T-Tend)+Roundoff <= ZERO) &
+       .OR. (Direction < 0).AND.((Tend-T)+Roundoff <= ZERO) ) 
+      
+   IF ( ISTATUS(Nstp) > Max_no_steps ) THEN  ! Too many steps
+      CALL ros_ErrorMsg(-6,T,H,IERR)
+      RETURN
+   END IF
+   IF ( ((T+0.1d0*H) == T).OR.(H <= Roundoff) ) THEN  ! Step size too small
+      CALL ros_ErrorMsg(-7,T,H,IERR)
+      RETURN
+   END IF
+   
+!~~~>  Limit H if necessary to avoid going beyond Tend   
+   Hexit = H
+   H = MIN(H,ABS(Tend-T))
+
+!~~~>   Compute the function at current time
+   CALL FunTemplate(T,Y,Fcn0)
+   ISTATUS(Nfun) = ISTATUS(Nfun) + 1
+
+!~~~>   Compute the Jacobian at current time
+   CALL JacTemplate(T,Y,Jac0)    
+   ISTATUS(Njac) = ISTATUS(Njac) + 1
+  
+!~~~>   Compute the Hessian at current time
+   CALL HessTemplate(T,Y,Hes0)
+   ISTATUS(Nhes) = ISTATUS(Nhes) + 1
+   
+!~~~>   Compute the TLM function at current time
+   DO itlm = 1, NTLM
+      CALL Jac_SP_Vec ( Jac0, Y_tlm(1,itlm), Fcn0_tlm(1,itlm) )
+   END DO  
+   
+!~~~>  Compute the function and Jacobian derivatives with respect to T
+   IF (.NOT.Autonomous) THEN
+      CALL ros_FunTimeDerivative ( T, Roundoff, Y, Fcn0, dFdT )
+      CALL ros_JacTimeDerivative ( T, Roundoff, Y, Jac0, dJdT )
+   END IF
+ 
+!~~~>  Repeat step calculation until current step accepted
+UntilAccepted: DO  
+   
+   CALL ros_PrepareMatrix(H,Direction,ros_Gamma(1),&
+          Jac0,Ghimj,Pivot,Singular)
+   IF (Singular) THEN ! More than 5 consecutive failed decompositions
+       CALL ros_ErrorMsg(-8,T,H,IERR)
+       RETURN
+   END IF
+
+!~~~>   Compute the stages
+Stage: DO istage = 1, ros_S
+      
+      ! Current istage offset. Current istage vector is K(ioffset+1:ioffset+N)
+       ioffset = N*(istage-1)
+
+      ! Initialize stage solution
+       CALL WCOPY(N,Y,1,Ynew,1)
+       CALL WCOPY(N*NTLM,Y_tlm,1,Ynew_tlm,1)
+      
+      ! For the 1st istage the function has been computed previously
+       IF ( istage == 1 ) THEN
+         CALL WCOPY(N,Fcn0,1,Fcn,1)
+         CALL WCOPY(N*NTLM,Fcn0_tlm,1,Fcn_tlm,1)
+      ! istage>1 and a new function evaluation is needed at the current istage
+       ELSEIF ( ros_NewF(istage) ) THEN
+         DO j = 1, istage-1
+           CALL WAXPY(N,ros_A((istage-1)*(istage-2)/2+j),    &
+                     K(N*(j-1)+1),1,Ynew,1) 
+           DO itlm=1,NTLM                    
+              CALL WAXPY(N,ros_A((istage-1)*(istage-2)/2+j), &
+                     K_tlm(N*(j-1)+1,itlm),1,Ynew_tlm(1,itlm),1) 
+           END DO                    
+         END DO
+         Tau = T + ros_Alpha(istage)*Direction*H
+         CALL FunTemplate(Tau,Ynew,Fcn)   
+         ISTATUS(Nfun) = ISTATUS(Nfun) + 1
+         CALL JacTemplate(Tau,Ynew,Jac)    
+         ISTATUS(Njac) = ISTATUS(Njac) + 1
+         DO itlm=1,NTLM 
+           CALL Jac_SP_Vec ( Jac, Ynew_tlm(1,itlm), Fcn_tlm(1,itlm) )
+         END DO              
+       END IF ! if istage == 1 elseif ros_NewF(istage)
+       CALL WCOPY(N,Fcn,1,K(ioffset+1),1)
+       DO itlm=1,NTLM   
+          CALL WCOPY(N,Fcn_tlm(1,itlm),1,K_tlm(ioffset+1,itlm),1)
+       END DO                
+       DO j = 1, istage-1
+         HC = ros_C((istage-1)*(istage-2)/2+j)/(Direction*H)
+         CALL WAXPY(N,HC,K(N*(j-1)+1),1,K(ioffset+1),1)
+         DO itlm=1,NTLM 
+           CALL WAXPY(N,HC,K_tlm(N*(j-1)+1,itlm),1,K_tlm(ioffset+1,itlm),1)
+         END DO              
+       END DO
+       IF ((.NOT. Autonomous).AND.(ros_Gamma(istage).NE.ZERO)) THEN
+         HG = Direction*H*ros_Gamma(istage)
+         CALL WAXPY(N,HG,dFdT,1,K(ioffset+1),1)
+         DO itlm=1,NTLM 
+           CALL Jac_SP_Vec ( dJdT, Ynew_tlm(1,itlm), Tmp )
+           CALL WAXPY(N,HG,Tmp,1,K_tlm(ioffset+1,itlm),1)
+         END DO              
+       END IF
+       CALL ros_Solve(Ghimj, Pivot, K(ioffset+1))
+       DO itlm=1,NTLM   
+         CALL Hess_Vec ( Hes0, K(ioffset+1), Y_tlm(1,itlm), Tmp )
+         CALL WAXPY(N,ONE,Tmp,1,K_tlm(ioffset+1,itlm),1)
+         CALL ros_Solve(Ghimj, Pivot, K_tlm(ioffset+1,itlm))
+       END DO                
+      
+   END DO Stage     
+            
+
+!~~~>  Compute the new solution 
+   CALL WCOPY(N,Y,1,Ynew,1)
+   DO j=1,ros_S
+      CALL WAXPY(N,ros_M(j),K(N*(j-1)+1),1,Ynew,1)
+   END DO
+   DO itlm=1,NTLM       
+     CALL WCOPY(N,Y_tlm(1,itlm),1,Ynew_tlm(1,itlm),1)
+     DO j=1,ros_S
+       CALL WAXPY(N,ros_M(j),K_tlm(N*(j-1)+1,itlm),1,Ynew_tlm(1,itlm),1)
+     END DO
+   END DO
+
+!~~~>  Compute the error estimation 
+   CALL Set2zero(N,Yerr)
+   DO j=1,ros_S     
+        CALL WAXPY(N,ros_E(j),K(N*(j-1)+1),1,Yerr,1)
+   END DO 
+   Err = ros_ErrorNorm ( Y, Ynew, Yerr, AbsTol, RelTol, VectorTol )
+   IF (TLMtruncErr) THEN
+     Err1 = 0.0d0
+     CALL Set2zero(N*NTLM,Yerr_tlm)
+     DO itlm=1,NTLM
+       DO j=1,ros_S  
+         CALL WAXPY(N,ros_E(j),K_tlm(N*(j-1)+1,itlm),1,Yerr_tlm(1,itlm),1)
+       END DO 
+     END DO
+     Err = ros_ErrorNorm_tlm(Y_tlm,Ynew_tlm,Yerr_tlm,AbsTol_tlm,RelTol_tlm,Err,VectorTol)
+   END IF
+  
+!~~~> New step size is bounded by FacMin <= Hnew/H <= FacMax
+   Fac  = MIN(FacMax,MAX(FacMin,FacSafe/Err**(ONE/ros_ELO)))
+   Hnew = H*Fac  
+
+!~~~>  Check the error magnitude and adjust step size
+   ISTATUS(Nstp) = ISTATUS(Nstp) + 1
+   IF ( (Err <= ONE).OR.(H <= Hmin) ) THEN  !~~~> Accept step
+      ISTATUS(Nacc) = ISTATUS(Nacc) + 1
+      CALL WCOPY(N,Ynew,1,Y,1)
+      CALL WCOPY(N*NTLM,Ynew_tlm,1,Y_tlm,1)
+      T = T + Direction*H
+      Hnew = MAX(Hmin,MIN(Hnew,Hmax))
+      IF (RejectLastH) THEN  ! No step size increase after a rejected step
+         Hnew = MIN(Hnew,H) 
+      END IF   
+      RSTATUS(Nhexit) = H
+      RSTATUS(Nhnew)  = Hnew
+      RSTATUS(Ntexit) = T
+      RejectLastH = .FALSE.  
+      RejectMoreH = .FALSE.
+      H = Hnew
+      EXIT UntilAccepted ! EXIT THE LOOP: WHILE STEP NOT ACCEPTED
+   ELSE           !~~~> Reject step
+      IF (RejectMoreH) THEN
+         Hnew = H*FacRej
+      END IF   
+      RejectMoreH = RejectLastH
+      RejectLastH = .TRUE.
+      H = Hnew
+      IF (ISTATUS(Nacc) >= 1) THEN
+         ISTATUS(Nrej) = ISTATUS(Nrej) + 1
+      END IF    
+   END IF ! Err <= 1
+
+   END DO UntilAccepted 
+
+   END DO TimeLoop 
+   
+!~~~> Succesful exit
+   IERR = 1  !~~~> The integration was successful
+
+  END SUBROUTINE ros_TLM_Int
+   
+   
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  KPP_REAL FUNCTION ros_ErrorNorm ( Y, Ynew, Yerr, & 
+               AbsTol, RelTol, VectorTol )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> Computes the "scaled norm" of the error vector Yerr
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   IMPLICIT NONE         
+
+! Input arguments   
+   KPP_REAL, INTENT(IN) :: Y(N), Ynew(N),    &
+          Yerr(N), AbsTol(N), RelTol(N)
+   LOGICAL, INTENT(IN) ::  VectorTol
+! Local variables     
+   KPP_REAL :: Err, Scale, Ymax   
+   INTEGER  :: i
+   KPP_REAL, PARAMETER :: ZERO = 0.0d0
+   
+   Err = ZERO
+   DO i=1,N
+     Ymax = MAX(ABS(Y(i)),ABS(Ynew(i)))
+     IF (VectorTol) THEN
+       Scale = AbsTol(i)+RelTol(i)*Ymax
+     ELSE
+       Scale = AbsTol(1)+RelTol(1)*Ymax
+     END IF
+     Err = Err+(Yerr(i)/Scale)**2
+   END DO
+   Err  = SQRT(Err/N)
+
+   ros_ErrorNorm = MAX(Err,1.0d-10)
+   
+  END FUNCTION ros_ErrorNorm
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  KPP_REAL FUNCTION ros_ErrorNorm_tlm ( Y_tlm, Ynew_tlm, Yerr_tlm, & 
+               AbsTol_tlm, RelTol_tlm, Fwd_Err, VectorTol )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> Computes the "scaled norm" of the error vector Yerr_tlm
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   IMPLICIT NONE         
+
+! Input arguments   
+   KPP_REAL, INTENT(IN) :: Y_tlm(N,NTLM), Ynew_tlm(N,NTLM),    &
+          Yerr_tlm(N,NTLM), AbsTol_tlm(N,NTLM), RelTol_tlm(N,NTLM), Fwd_Err
+   LOGICAL, INTENT(IN) ::  VectorTol
+! Local variables     
+   KPP_REAL :: TMP, Err
+   INTEGER  :: itlm
+   
+   Err = FWD_Err
+   DO itlm = 1,NTLM
+     TMP = ros_ErrorNorm(Y_tlm(1,itlm), Ynew_tlm(1,itlm),Yerr_tlm(1,itlm), &
+     		AbsTol_tlm(1,itlm), RelTol_tlm(1,itlm), VectorTol)
+     Err = MAX(Err, TMP)
+   END DO
+
+   ros_ErrorNorm_tlm = MAX(Err,1.0d-10)
+   
+  END FUNCTION ros_ErrorNorm_tlm
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE ros_FunTimeDerivative ( T, Roundoff, Y, &
+                Fcn0, dFdT )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> The time partial derivative of the function by finite differences
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   IMPLICIT NONE         
+
+!~~~> Input arguments   
+   KPP_REAL, INTENT(IN) :: T, Roundoff, Y(N), Fcn0(N) 
+!~~~> Output arguments   
+   KPP_REAL, INTENT(OUT) :: dFdT(N)   
+!~~~> Local variables     
+   KPP_REAL :: Delta  
+   KPP_REAL, PARAMETER :: DeltaMin = 1.0d-6
+   
+   Delta = SQRT(Roundoff)*MAX(DeltaMin,ABS(T))
+   CALL FunTemplate(T+Delta,Y,dFdT)   
+   ISTATUS(Nfun) = ISTATUS(Nfun) + 1
+   CALL WAXPY(N,(-ONE),Fcn0,1,dFdT,1)
+   CALL WSCAL(N,(ONE/Delta),dFdT,1)
+
+  END SUBROUTINE ros_FunTimeDerivative
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE ros_JacTimeDerivative ( T, Roundoff, Y, &
+                Jac0, dJdT )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> The time partial derivative of the Jacobian by finite differences
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   IMPLICIT NONE         
+
+!~~~> Input arguments   
+   KPP_REAL, INTENT(IN) :: T, Roundoff, Y(N), Jac0(LU_NONZERO) 
+!~~~> Output arguments   
+   KPP_REAL, INTENT(OUT) :: dJdT(LU_NONZERO)   
+!~~~> Local variables     
+   KPP_REAL Delta  
+   KPP_REAL, PARAMETER :: ONE = 1.0d0, DeltaMin = 1.0d-6
+   
+   Delta = SQRT(Roundoff)*MAX(DeltaMin,ABS(T))
+   CALL JacTemplate(T+Delta,Y,dJdT)    
+   ISTATUS(Njac) = ISTATUS(Njac) + 1
+   CALL WAXPY(LU_NONZERO,(-ONE),Jac0,1,dJdT,1)
+   CALL WSCAL(LU_NONZERO,(ONE/Delta),dJdT,1)
+
+  END SUBROUTINE ros_JacTimeDerivative
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+  SUBROUTINE ros_PrepareMatrix ( H, Direction, gam, &
+             Jac0, Ghimj, Pivot, Singular )
+! --- --- --- --- --- --- --- --- --- --- --- --- ---
+!  Prepares the LHS matrix for stage calculations
+!  1.  Construct Ghimj = 1/(H*ham) - Jac0
+!      "(Gamma H) Inverse Minus Jacobian"
+!  2.  Repeat LU decomposition of Ghimj until successful.
+!       -half the step size if LU decomposition fails and retry
+!       -exit after 5 consecutive fails
+! --- --- --- --- --- --- --- --- --- --- --- --- ---
+   IMPLICIT NONE         
+   
+!~~~> Input arguments   
+   KPP_REAL, INTENT(IN) ::  gam, Jac0(LU_NONZERO)
+   INTEGER, INTENT(IN) ::  Direction
+!~~~> Output arguments   
+   KPP_REAL, INTENT(OUT) :: Ghimj(LU_NONZERO)
+   LOGICAL, INTENT(OUT) ::  Singular
+   INTEGER, INTENT(OUT) ::  Pivot(N)
+!~~~> Inout arguments   
+   KPP_REAL, INTENT(INOUT) :: H   ! step size is decreased when LU fails
+!~~~> Local variables     
+   INTEGER  :: i, ISING, Nconsecutive
+   KPP_REAL ::  ghinv
+   KPP_REAL, PARAMETER :: ONE  = 1.0d0, HALF = 0.5d0
+   
+   Nconsecutive = 0
+   Singular = .TRUE.
+   
+   DO WHILE (Singular)
+   
+!~~~>    Construct Ghimj = 1/(H*ham) - Jac0
+     CALL WCOPY(LU_NONZERO,Jac0,1,Ghimj,1)
+     CALL WSCAL(LU_NONZERO,(-ONE),Ghimj,1)
+     ghinv = ONE/(Direction*H*gam)
+     DO i=1,N
+       Ghimj(LU_DIAG(i)) = Ghimj(LU_DIAG(i))+ghinv
+     END DO
+!~~~>    Compute LU decomposition 
+     CALL ros_Decomp( Ghimj, Pivot, ISING )
+     IF (ISING == 0) THEN
+!~~~>    If successful done 
+        Singular = .FALSE. 
+     ELSE ! ISING .ne. 0
+!~~~>    If unsuccessful half the step size; if 5 consecutive fails then return
+        ISTATUS(Nsng) = ISTATUS(Nsng) + 1
+        Nconsecutive = Nconsecutive+1
+        Singular = .TRUE. 
+        PRINT*,'Warning: LU Decomposition returned ISING = ',ISING
+        IF (Nconsecutive <= 5) THEN ! Less than 5 consecutive failed decompositions
+           H = H*HALF
+        ELSE  ! More than 5 consecutive failed decompositions
+           RETURN
+        END IF  ! Nconsecutive
+      END IF    ! ISING 
+         
+   END DO ! WHILE Singular
+
+  END SUBROUTINE ros_PrepareMatrix
+
+  
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+  SUBROUTINE ros_Decomp( A, Pivot, ISING )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
+!  Template for the LU decomposition   
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+   IMPLICIT NONE
+!~~~> Inout variables     
+   KPP_REAL, INTENT(INOUT) :: A(LU_NONZERO)
+!~~~> Output variables     
+   INTEGER, INTENT(OUT) :: Pivot(N), ISING
+   
+   CALL KppDecomp ( A, ISING )
+!~~~> Note: for a full matrix use Lapack:
+!     CALL  DGETRF( N, N, A, N, Pivot, ISING ) 
+   Pivot(1) = 1
+    
+   ISTATUS(Ndec) = ISTATUS(Ndec) + 1
+
+  END SUBROUTINE ros_Decomp
+ 
+ 
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+  SUBROUTINE ros_Solve( A, Pivot, b )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
+!  Template for the forward/backward substitution (using pre-computed LU decomposition)   
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+   IMPLICIT NONE
+!~~~> Input variables 
+#ifdef FULL_ALGEBRA
+   KPP_REAL, INTENT(IN) :: A(N,N)
+   INTEGER :: ISING
+#else    
+   KPP_REAL, INTENT(IN) :: A(LU_NONZERO)
+#endif   
+   INTEGER, INTENT(IN) :: Pivot(N)
+!~~~> InOut variables     
+   KPP_REAL, INTENT(INOUT) :: b(N)
+   
+#ifdef FULL_ALGEBRA
+   CALL  DGETRS( 'N', N , 1, A, N, Pivot, b, N, ISING )
+#else    
+   CALL KppSolve( A, b )
+#endif   
+     
+   ISTATUS(Nsol) = ISTATUS(Nsol) + 1
+
+  END SUBROUTINE ros_Solve
+
+ 
+ 
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+  SUBROUTINE Ros2 
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+! --- AN L-STABLE METHOD, 2 stages, order 2
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+
+   IMPLICIT NONE
+   DOUBLE PRECISION g
+   
+    g = 1.0d0 + 1.0d0/SQRT(2.0d0)
+   
+    rosMethod = RS2
+!~~~> Name of the method
+    ros_Name = 'ROS-2'   
+!~~~> Number of stages
+    ros_S = 2
+   
+!~~~> The coefficient matrices A and C are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+!   The general mapping formula is:
+!       A(i,j) = ros_A( (i-1)*(i-2)/2 + j )    
+!       C(i,j) = ros_C( (i-1)*(i-2)/2 + j )  
+   
+    ros_A(1) = (1.d0)/g
+    ros_C(1) = (-2.d0)/g
+!~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+    ros_NewF(1) = .TRUE.
+    ros_NewF(2) = .TRUE.
+!~~~> M_i = Coefficients for new step solution
+    ros_M(1)= (3.d0)/(2.d0*g)
+    ros_M(2)= (1.d0)/(2.d0*g)
+! E_i = Coefficients for error estimator    
+    ros_E(1) = 1.d0/(2.d0*g)
+    ros_E(2) = 1.d0/(2.d0*g)
+!~~~> ros_ELO = estimator of local order - the minimum between the
+!    main and the embedded scheme orders plus one
+    ros_ELO = 2.0d0    
+!~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+    ros_Alpha(1) = 0.0d0
+    ros_Alpha(2) = 1.0d0 
+!~~~> Gamma_i = \sum_j  gamma_{i,j}    
+    ros_Gamma(1) = g
+    ros_Gamma(2) =-g
+   
+ END SUBROUTINE Ros2
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+  SUBROUTINE Ros3
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+! --- AN L-STABLE METHOD, 3 stages, order 3, 2 function evaluations
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+  
+   IMPLICIT NONE
+   
+    rosMethod = RS3
+!~~~> Name of the method
+   ros_Name = 'ROS-3'   
+!~~~> Number of stages
+   ros_S = 3
+   
+!~~~> The coefficient matrices A and C are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+!   The general mapping formula is:
+!       A(i,j) = ros_A( (i-1)*(i-2)/2 + j )    
+!       C(i,j) = ros_C( (i-1)*(i-2)/2 + j )  
+     
+   ros_A(1)= 1.d0
+   ros_A(2)= 1.d0
+   ros_A(3)= 0.d0
+
+   ros_C(1) = -0.10156171083877702091975600115545d+01
+   ros_C(2) =  0.40759956452537699824805835358067d+01
+   ros_C(3) =  0.92076794298330791242156818474003d+01
+!~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+   ros_NewF(1) = .TRUE.
+   ros_NewF(2) = .TRUE.
+   ros_NewF(3) = .FALSE.
+!~~~> M_i = Coefficients for new step solution
+   ros_M(1) =  0.1d+01
+   ros_M(2) =  0.61697947043828245592553615689730d+01
+   ros_M(3) = -0.42772256543218573326238373806514d+00
+! E_i = Coefficients for error estimator    
+   ros_E(1) =  0.5d+00
+   ros_E(2) = -0.29079558716805469821718236208017d+01
+   ros_E(3) =  0.22354069897811569627360909276199d+00
+!~~~> ros_ELO = estimator of local order - the minimum between the
+!    main and the embedded scheme orders plus 1
+   ros_ELO = 3.0d0    
+!~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+   ros_Alpha(1)= 0.0d+00
+   ros_Alpha(2)= 0.43586652150845899941601945119356d+00
+   ros_Alpha(3)= 0.43586652150845899941601945119356d+00
+!~~~> Gamma_i = \sum_j  gamma_{i,j}    
+   ros_Gamma(1)= 0.43586652150845899941601945119356d+00
+   ros_Gamma(2)= 0.24291996454816804366592249683314d+00
+   ros_Gamma(3)= 0.21851380027664058511513169485832d+01
+
+  END SUBROUTINE Ros3
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+  SUBROUTINE Ros4
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+!     L-STABLE ROSENBROCK METHOD OF ORDER 4, WITH 4 STAGES
+!     L-STABLE EMBEDDED ROSENBROCK METHOD OF ORDER 3 
+!
+!      E. HAIRER AND G. WANNER, SOLVING ORDINARY DIFFERENTIAL
+!      EQUATIONS II. STIFF AND DIFFERENTIAL-ALGEBRAIC PROBLEMS.
+!      SPRINGER SERIES IN COMPUTATIONAL MATHEMATICS,
+!      SPRINGER-VERLAG (1990)         
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+
+   IMPLICIT NONE
+   
+    rosMethod = RS4
+!~~~> Name of the method
+   ros_Name = 'ROS-4'   
+!~~~> Number of stages
+   ros_S = 4
+   
+!~~~> The coefficient matrices A and C are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+!   The general mapping formula is:
+!       A(i,j) = ros_A( (i-1)*(i-2)/2 + j )    
+!       C(i,j) = ros_C( (i-1)*(i-2)/2 + j )  
+     
+   ros_A(1) = 0.2000000000000000d+01
+   ros_A(2) = 0.1867943637803922d+01
+   ros_A(3) = 0.2344449711399156d+00
+   ros_A(4) = ros_A(2)
+   ros_A(5) = ros_A(3)
+   ros_A(6) = 0.0D0
+
+   ros_C(1) =-0.7137615036412310d+01
+   ros_C(2) = 0.2580708087951457d+01
+   ros_C(3) = 0.6515950076447975d+00
+   ros_C(4) =-0.2137148994382534d+01
+   ros_C(5) =-0.3214669691237626d+00
+   ros_C(6) =-0.6949742501781779d+00
+!~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+   ros_NewF(1)  = .TRUE.
+   ros_NewF(2)  = .TRUE.
+   ros_NewF(3)  = .TRUE.
+   ros_NewF(4)  = .FALSE.
+!~~~> M_i = Coefficients for new step solution
+   ros_M(1) = 0.2255570073418735d+01
+   ros_M(2) = 0.2870493262186792d+00
+   ros_M(3) = 0.4353179431840180d+00
+   ros_M(4) = 0.1093502252409163d+01
+!~~~> E_i  = Coefficients for error estimator    
+   ros_E(1) =-0.2815431932141155d+00
+   ros_E(2) =-0.7276199124938920d-01
+   ros_E(3) =-0.1082196201495311d+00
+   ros_E(4) =-0.1093502252409163d+01
+!~~~> ros_ELO  = estimator of local order - the minimum between the
+!    main and the embedded scheme orders plus 1
+   ros_ELO  = 4.0d0    
+!~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+   ros_Alpha(1) = 0.D0
+   ros_Alpha(2) = 0.1145640000000000d+01
+   ros_Alpha(3) = 0.6552168638155900d+00
+   ros_Alpha(4) = ros_Alpha(3)
+!~~~> Gamma_i = \sum_j  gamma_{i,j}    
+   ros_Gamma(1) = 0.5728200000000000d+00
+   ros_Gamma(2) =-0.1769193891319233d+01
+   ros_Gamma(3) = 0.7592633437920482d+00
+   ros_Gamma(4) =-0.1049021087100450d+00
+
+  END SUBROUTINE Ros4
+   
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+  SUBROUTINE Rodas3
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+! --- A STIFFLY-STABLE METHOD, 4 stages, order 3
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+
+   IMPLICIT NONE
+   
+    rosMethod = RD3
+!~~~> Name of the method
+   ros_Name = 'RODAS-3'   
+!~~~> Number of stages
+   ros_S = 4
+   
+!~~~> The coefficient matrices A and C are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+!   The general mapping formula is:
+!       A(i,j) = ros_A( (i-1)*(i-2)/2 + j )    
+!       C(i,j) = ros_C( (i-1)*(i-2)/2 + j )  
+ 
+   ros_A(1) = 0.0d+00
+   ros_A(2) = 2.0d+00
+   ros_A(3) = 0.0d+00
+   ros_A(4) = 2.0d+00
+   ros_A(5) = 0.0d+00
+   ros_A(6) = 1.0d+00
+
+   ros_C(1) = 4.0d+00
+   ros_C(2) = 1.0d+00
+   ros_C(3) =-1.0d+00
+   ros_C(4) = 1.0d+00
+   ros_C(5) =-1.0d+00 
+   ros_C(6) =-(8.0d+00/3.0d+00) 
+         
+!~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+   ros_NewF(1)  = .TRUE.
+   ros_NewF(2)  = .FALSE.
+   ros_NewF(3)  = .TRUE.
+   ros_NewF(4)  = .TRUE.
+!~~~> M_i = Coefficients for new step solution
+   ros_M(1) = 2.0d+00
+   ros_M(2) = 0.0d+00
+   ros_M(3) = 1.0d+00
+   ros_M(4) = 1.0d+00
+!~~~> E_i  = Coefficients for error estimator    
+   ros_E(1) = 0.0d+00
+   ros_E(2) = 0.0d+00
+   ros_E(3) = 0.0d+00
+   ros_E(4) = 1.0d+00
+!~~~> ros_ELO  = estimator of local order - the minimum between the
+!    main and the embedded scheme orders plus 1
+   ros_ELO  = 3.0d+00    
+!~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+   ros_Alpha(1) = 0.0d+00
+   ros_Alpha(2) = 0.0d+00
+   ros_Alpha(3) = 1.0d+00
+   ros_Alpha(4) = 1.0d+00
+!~~~> Gamma_i = \sum_j  gamma_{i,j}    
+   ros_Gamma(1) = 0.5d+00
+   ros_Gamma(2) = 1.5d+00
+   ros_Gamma(3) = 0.0d+00
+   ros_Gamma(4) = 0.0d+00
+
+  END SUBROUTINE Rodas3
+    
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+  SUBROUTINE Rodas4
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+!     STIFFLY-STABLE ROSENBROCK METHOD OF ORDER 4, WITH 6 STAGES
+!
+!      E. HAIRER AND G. WANNER, SOLVING ORDINARY DIFFERENTIAL
+!      EQUATIONS II. STIFF AND DIFFERENTIAL-ALGEBRAIC PROBLEMS.
+!      SPRINGER SERIES IN COMPUTATIONAL MATHEMATICS,
+!      SPRINGER-VERLAG (1996)         
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+
+   IMPLICIT NONE
+
+    rosMethod = RD4
+!~~~> Name of the method
+    ros_Name = 'RODAS-4'   
+!~~~> Number of stages
+    ros_S = 6
+
+!~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+    ros_Alpha(1) = 0.000d0
+    ros_Alpha(2) = 0.386d0
+    ros_Alpha(3) = 0.210d0 
+    ros_Alpha(4) = 0.630d0
+    ros_Alpha(5) = 1.000d0
+    ros_Alpha(6) = 1.000d0
+        
+!~~~> Gamma_i = \sum_j  gamma_{i,j}    
+    ros_Gamma(1) = 0.2500000000000000d+00
+    ros_Gamma(2) =-0.1043000000000000d+00
+    ros_Gamma(3) = 0.1035000000000000d+00
+    ros_Gamma(4) =-0.3620000000000023d-01
+    ros_Gamma(5) = 0.0d0
+    ros_Gamma(6) = 0.0d0
+
+!~~~> The coefficient matrices A and C are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+!   The general mapping formula is:  A(i,j) = ros_A( (i-1)*(i-2)/2 + j )    
+!                  C(i,j) = ros_C( (i-1)*(i-2)/2 + j )  
+     
+    ros_A(1) = 0.1544000000000000d+01
+    ros_A(2) = 0.9466785280815826d+00
+    ros_A(3) = 0.2557011698983284d+00
+    ros_A(4) = 0.3314825187068521d+01
+    ros_A(5) = 0.2896124015972201d+01
+    ros_A(6) = 0.9986419139977817d+00
+    ros_A(7) = 0.1221224509226641d+01
+    ros_A(8) = 0.6019134481288629d+01
+    ros_A(9) = 0.1253708332932087d+02
+    ros_A(10) =-0.6878860361058950d+00
+    ros_A(11) = ros_A(7)
+    ros_A(12) = ros_A(8)
+    ros_A(13) = ros_A(9)
+    ros_A(14) = ros_A(10)
+    ros_A(15) = 1.0d+00
+
+    ros_C(1) =-0.5668800000000000d+01
+    ros_C(2) =-0.2430093356833875d+01
+    ros_C(3) =-0.2063599157091915d+00
+    ros_C(4) =-0.1073529058151375d+00
+    ros_C(5) =-0.9594562251023355d+01
+    ros_C(6) =-0.2047028614809616d+02
+    ros_C(7) = 0.7496443313967647d+01
+    ros_C(8) =-0.1024680431464352d+02
+    ros_C(9) =-0.3399990352819905d+02
+    ros_C(10) = 0.1170890893206160d+02
+    ros_C(11) = 0.8083246795921522d+01
+    ros_C(12) =-0.7981132988064893d+01
+    ros_C(13) =-0.3152159432874371d+02
+    ros_C(14) = 0.1631930543123136d+02
+    ros_C(15) =-0.6058818238834054d+01
+
+!~~~> M_i = Coefficients for new step solution
+    ros_M(1) = ros_A(7)
+    ros_M(2) = ros_A(8)
+    ros_M(3) = ros_A(9)
+    ros_M(4) = ros_A(10)
+    ros_M(5) = 1.0d+00
+    ros_M(6) = 1.0d+00
+
+!~~~> E_i  = Coefficients for error estimator    
+    ros_E(1) = 0.0d+00
+    ros_E(2) = 0.0d+00
+    ros_E(3) = 0.0d+00
+    ros_E(4) = 0.0d+00
+    ros_E(5) = 0.0d+00
+    ros_E(6) = 1.0d+00
+
+!~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+    ros_NewF(1) = .TRUE.
+    ros_NewF(2) = .TRUE.
+    ros_NewF(3) = .TRUE.
+    ros_NewF(4) = .TRUE.
+    ros_NewF(5) = .TRUE.
+    ros_NewF(6) = .TRUE.
+     
+!~~~> ros_ELO  = estimator of local order - the minimum between the
+!        main and the embedded scheme orders plus 1
+    ros_ELO = 4.0d0
+     
+  END SUBROUTINE Rodas4
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+END SUBROUTINE RosenbrockTLM
+!  and all its internal procedures
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+  
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+SUBROUTINE FunTemplate( T, Y, Ydot )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
+!  Template for the ODE function call.
+!  Updates the rate coefficients (and possibly the fixed species) at each call    
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+
+   IMPLICIT NONE
+!~~~> Input variables     
+   KPP_REAL :: T, Y(NVAR)
+!~~~> Output variables     
+   KPP_REAL :: Ydot(NVAR)
+!~~~> Local variables
+   KPP_REAL :: Told     
+
+   Told = TIME
+   TIME = T
+   CALL Update_SUN()
+   CALL Update_RCONST()
+   CALL Fun( Y, FIX, RCONST, Ydot )
+   TIME = Told
+        
+END SUBROUTINE FunTemplate
+
+ 
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+SUBROUTINE JacTemplate( T, Y, Jcb )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+!  Template for the ODE Jacobian call.
+!  Updates the rate coefficients (and possibly the fixed species) at each call    
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+    IMPLICIT NONE
+   
+!~~~> Input variables     
+    KPP_REAL :: T, Y(NVAR)
+!~~~> Output variables     
+    KPP_REAL :: Jcb(LU_NONZERO)
+!~~~> Local variables
+    KPP_REAL :: Told     
+
+    Told = TIME
+    TIME = T   
+    CALL Update_SUN()
+    CALL Update_RCONST()
+    CALL Jac_SP( Y, FIX, RCONST, Jcb )
+    TIME = Told
+     
+END SUBROUTINE JacTemplate                                      
+
+
+ 
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+SUBROUTINE HessTemplate( T, Y, Hes )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+!  Template for the ODE Hessian call.
+!  Updates the rate coefficients (and possibly the fixed species) at each call    
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+    IMPLICIT NONE
+    
+!~~~> Input variables     
+    KPP_REAL :: T, Y(NVAR)
+!~~~> Output variables     
+    KPP_REAL :: Hes(NHESS)
+!~~~> Local variables
+    KPP_REAL :: Told     
+
+    Told = TIME
+    TIME = T   
+    CALL Update_SUN()
+    CALL Update_RCONST()
+    CALL Hessian( Y, FIX, RCONST, Hes )
+    TIME = Told
+
+END SUBROUTINE HessTemplate                                      
+
+END MODULE KPP_ROOT_Integrator
+
+
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/runge_kutta.c
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/runge_kutta.c	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/runge_kutta.c	(revision 2696)
@@ -0,0 +1,2087 @@
+ #define MAX(a,b) ( ((a) >= (b)) ?(a):(b)  )
+ #define MIN(b,c) ( ((b) <  (c)) ?(b):(c)  )
+ #define ABS(x)   ( ((x) >=  0 ) ?(x):(-x) )
+ #define SQRT(d)  ( pow((d),0.5)  )
+ /* SIGN transfer function */
+ #define SIGN(x,y) (((y) >=  0 ) ?(ABS(x)):(-ABS(x)) ) 
+
+/*~~> Numerical constants */
+ #define  ZERO     (KPP_REAL)0.0
+ #define  ONE      (KPP_REAL)1.0
+
+/*~~~> Statistics on the work performed by the Runge-Kutta method */
+ #define Nfun	0
+ #define Njac	1
+ #define Nstp	2
+ #define Nacc	3
+ #define Nrej	4
+ #define Ndec	5
+ #define Nsol	6
+ #define Nsng	7
+ #define Ntexit	0
+ #define Nhacc	1
+ #define Nhnew	2
+
+/*~~~> Runge-Kutta method parameters */
+ #define RKmax 3
+
+ #define R2A 1
+ #define R1A 2
+ #define L3C 3
+ #define GAU 4
+ #define L3A 5
+
+ int rkMethod,
+     SdirkError;
+ KPP_REAL rkT[RKmax][RKmax],
+	rkTinv[RKmax][RKmax],
+       	rkTinvAinv[RKmax][RKmax],
+   	rkAinvT[RKmax][RKmax],
+   	rkA[RKmax+1][RKmax+1],
+   	rkB[RKmax+1],
+      	rkC[RKmax+1],
+       	rkD[RKmax+1],
+       	rkE[RKmax+1],
+   	rkBgam[RKmax+2],
+       	rkBhat[RKmax+2],
+       	rkTheta[RKmax+1],
+       	rkF[RKmax+2],
+   	rkGamma,
+   	rkAlpha,
+   	rkBeta,
+	rkELO;
+/*~~~> Function headers */
+// void INTEGRATE(KPP_REAL TIN, KPP_REAL TOUT, int ICNTRL_U[], KPP_REAL RCNTRL_U[],
+//		int ISTATUS_U[], KPP_REAL RSTATUS_U[], int IERR_U); 
+ void INTEGRATE(KPP_REAL TIN, KPP_REAL TOUT); 
+ void RungeKutta(int N, KPP_REAL T, KPP_REAL Tend, KPP_REAL Y[],
+     	       KPP_REAL RelTol[], KPP_REAL AbsTol[], KPP_REAL RCNTRL[],
+	       int ICNTRL[], KPP_REAL RSTATUS[], int ISTATUS[], int* IERR);
+ void RK_Integrator(int N, KPP_REAL*  T, KPP_REAL  Tend, KPP_REAL Y[],
+     		   KPP_REAL AbsTol[], KPP_REAL RelTol[], int ITOL,
+     		   int ISTATUS[], KPP_REAL RSTATUS[], KPP_REAL Hmin,
+		   KPP_REAL Hmax, KPP_REAL Hstart, KPP_REAL Roundoff,
+		   int Max_no_steps, int NewtonMaxit, int StartNewton,
+		   int Gustafsson, KPP_REAL ThetaMin, KPP_REAL NewtonTol,
+		   KPP_REAL FacSafe, KPP_REAL FacMax, KPP_REAL FacMin,
+     		   KPP_REAL FacRej, KPP_REAL Qmin, KPP_REAL Qmax, int* IERR);
+ void RK_ErrorMsg(int Code, KPP_REAL T, KPP_REAL H, int* IERR);
+ void RK_ErrorScale(int N, int ITOL, KPP_REAL AbsTol[], KPP_REAL RelTol[], 
+		KPP_REAL Y[], KPP_REAL SCAL[]);
+ /*void RK_Transform(int N, KPP_REAL Tr[][RKmax], KPP_REAL Z1[], KPP_REAL Z2[],
+                KPP_REAL Z3[], KPP_REAL W1[], KPP_REAL W2[], KPP_REAL W3[]);*/
+ void RK_Interpolate(char action[], int N, KPP_REAL H, KPP_REAL Hold,
+	 KPP_REAL Z1[], KPP_REAL Z2[], KPP_REAL Z3[], KPP_REAL CONT[][RKmax]);
+ void RK_PrepareRHS(int N, KPP_REAL T, KPP_REAL H, KPP_REAL Y[], KPP_REAL FO[],
+        KPP_REAL Z1[], KPP_REAL Z2[], KPP_REAL Z3[], KPP_REAL R1[], KPP_REAL R2[],
+        KPP_REAL R3[]);
+ void RK_Decomp(int N, KPP_REAL H, KPP_REAL FJAC[], KPP_REAL E1[],
+                int IP1[], KPP_REAL E2R[], KPP_REAL E2I[], 
+		int IP2[], int* ISING, int ISTATUS[]);
+ void RK_Solve(int N, KPP_REAL H, KPP_REAL E1[], int IP1[], KPP_REAL E2R[],
+	KPP_REAL E2I[], int IP2[], KPP_REAL R1[], KPP_REAL R2[], KPP_REAL R3[],
+	int ISTATUS[]);
+ void RK_ErrorEstimate(int N, KPP_REAL H, KPP_REAL T, KPP_REAL Y[],
+        KPP_REAL FO[], KPP_REAL E1[], int IP1[], KPP_REAL Z1[],
+        KPP_REAL Z2[], KPP_REAL Z3[], KPP_REAL SCAL[], KPP_REAL* Err,
+        int FirstStep, int Reject, int ISTATUS[]);
+ void Radau2A_Coefficients();
+ void Lobatto3C_Coefficients ();
+ void Gauss_Coefficients();
+ void Radau1A_Coefficients();
+ void Lobatto3A_Coefficients();
+ void FUN_CHEM(KPP_REAL T, KPP_REAL V[], KPP_REAL FCT[]);
+ void JAC_CHEM(KPP_REAL T, KPP_REAL V[], KPP_REAL JF[]);
+ KPP_REAL RK_ErrorNorm(int N, KPP_REAL SCAL[], KPP_REAL DY[]);
+ void Fun(KPP_REAL Y[], KPP_REAL FIX[], KPP_REAL RCONST[], KPP_REAL Ydot[]);
+ void Jac_SP(KPP_REAL Y[], KPP_REAL FIX[], KPP_REAL RCONST[], KPP_REAL Ydot[]);
+ void WCOPY(int N, KPP_REAL X[], int incX, KPP_REAL Y[], int incY);
+ void WADD(int N, KPP_REAL Y[], KPP_REAL Z[], KPP_REAL TMP[]);
+ void WAXPY(int N, KPP_REAL Alpha, KPP_REAL X[], int incX, KPP_REAL Y[], int incY );
+ KPP_REAL WLAMCH( char C );
+ void KppSolveCmplxR(KPP_REAL JVSR[], KPP_REAL JVSI[], KPP_REAL XR[], KPP_REAL XI[]);
+ int KppDecompCmplxR(KPP_REAL *JVSR, KPP_REAL *JVSI);
+ void Set2Zero(int N, KPP_REAL A[]);
+ int KppDecomp( KPP_REAL A[] );
+ void KppSolve ( KPP_REAL A[], KPP_REAL b[] );
+ void Update_SUN();
+ void Update_RCONST();
+ void Update_PHOTO();
+ 
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+//void INTEGRATE(KPP_REAL TIN, KPP_REAL TOUT, int ICNTRL_U[], KPP_REAL RCNTRL_U[],
+//	       int ISTATUS_U[], KPP_REAL RSTATUS_U[], int IERR_U )
+void INTEGRATE(KPP_REAL TIN, KPP_REAL TOUT )
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+/* RungeKutta - Fully Implicit 3-stage Runge-Kutta methods based on:
+          * Radau-2A   quadrature (order 5)                        
+          * Radau-1A   quadrature (order 5)                              
+          * Lobatto-3C quadrature (order 4)                              
+          * Gauss      quadrature (order 6)                              
+  By default the code employs the KPP sparse linear algebra routines     
+  Compile with -DFULL_ALGEBRA to use full linear algebra (LAPACK)        
+                                                                         
+    (C)  Adrian Sandu, August 2005                                       
+    Virginia Polytechnic Institute and State University                  
+    Contact: sandu@cs.vt.edu                                             
+    Revised by Philipp Miehe and Adrian Sandu, May 2006  
+    F90 to C translation by Tinting Jiang and Don Jacob, July 2006                
+    This implementation is part of KPP - the Kinetic PreProcessor        
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+{
+   int IERR;
+   KPP_REAL RCNTRL[20],
+  	  RSTATUS[20],
+	  T1,
+	  T2;
+   int ICNTRL[20],
+       ISTATUS[20];
+   static int Ntotal = 0; /* for printing the number of steps */
+   
+   int i;
+   for ( i = 0; i < 20; i++ ) {
+     RCNTRL[i] = ZERO;
+     ICNTRL[i] = 0;
+   } /* for */
+
+   /*~~~> fine-tune the integrator: */
+   ICNTRL[1]  = 0;    /* 0=vector tolerances, 1=scalar tolerances */
+   ICNTRL[4]  = 8;    /* Max no. of Newton iterations */
+   ICNTRL[5]  = 0;    /* Starting values for Newton are interpolated(0) or zero(1) */
+   ICNTRL[9]  = 1;    /* 0 - classic or 1 - SDIRK error estimation */
+   ICNTRL[10] = 0;    /* Gustaffson(0) or classic(1) controller */ 
+   
+//   /*~~~> if optional parameters are given, and if they are >0,
+//          then use them to overwrite default settings */	
+//   if (ICNTRL_U != NULL) {
+//	for ( i = 0; i < 20; i++) {
+//	   if (ICNTRL_U[i] > 0) {
+//		  ICNTRL[i] = ICNTRL_U[i];
+//	   } /* end if */
+//	} /* end for */
+//   } /* end if */
+//   if (RCNTRL_U != NULL) {
+//	for (i = 0; i < 20; i++) {
+//   	   if (RCNTRL_U[i] > 0) {
+//		RCNTRL[i] = RCNTRL_U[i];
+//	   } /* end if */
+//	} /* end for */
+//   } /* end if */
+
+   T1 = TIN;
+   /*printf("T1=%f\n", T1);*/
+   T2 = TOUT;
+   /*printf("T2=%f\n", T2);*/
+   RungeKutta(NVAR, T1, T2, VAR, RTOL, ATOL, RCNTRL,ICNTRL,RSTATUS,ISTATUS, &IERR);
+   
+   Ntotal += ISTATUS[Nstp];
+   printf("NSTEPS=%d (%d)  O3=%E ", ISTATUS[Nstp], Ntotal, VAR[ind_O3]);
+
+//   /* if optional parameters are given for output
+//    * use them to store information in them */
+//   if (ISTATUS_U != NULL) {
+//	for (i = 0; i < 20; i++) {
+//	   ISTATUS_U[i] = ISTATUS[i];
+//	} /* end for */
+//    } /* end if */
+//   if (RSTATUS_U != NULL) {
+//	for (i = 0; i < 20; i++) {
+//	   RSTATUS_U[i] = RSTATUS[i];
+//	} /* end for */
+//   } /* end if */
+//   /*if (IERR_U != NULL) */
+//	IERR_U = IERR;
+
+   if (IERR < 0) {
+	printf("Runge-Kutta: Unsuccessful exit at T=%f(IERR=%d)", TIN, IERR);
+   } /* end if */
+   
+} /* end INTEGRATE */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+void RungeKutta(int N, KPP_REAL T, KPP_REAL Tend, KPP_REAL Y[],
+     	       KPP_REAL RelTol[], KPP_REAL AbsTol[], KPP_REAL RCNTRL[],
+	       int ICNTRL[], KPP_REAL RSTATUS[], int ISTATUS[], int* IERR)
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+    This implementation is based on the book and the code Radau5:
+
+     	E. HAIRER AND G. WANNER
+     	"SOLVING ORDINARY DIFFERENTIAL EQUATIONS II.
+       	     STIFF AND DIFFERENTIAL-ALGEBRAIC PROBLEMS."
+     	SPRINGER SERIES IN COMPUTATIONAL MATHEMATICS 14,
+        SPRINGER-VERLAG (1991)
+
+	UNIVERSITE DE GENEVE, DEPT. DE MATHEMATIQUES
+	CH-1211 GENEVE 24, SWITZERLAND
+    	E-MAIL:  HAIRER@DIVSUN.UNIGE.CH,  WANNER@DIVSUN.UNIGE.CH
+   
+    Methods:
+	 * Radau-2A	quadrature (order 5)
+      	 * Radau-1A	quadrature (order 5)
+      	 * Lobatto-3C	quadrature (order 4)
+    	 * Gauss	quadrature (order 6)
+
+    (C)  Adrian Sandu, August 2005
+    Virginia Polytechnic Institute and State University
+    Contact: sandu@cs.vt.edu
+    This implementation is part of KPP - the Kinetic PreProcessor
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  *~~~>   INPUT ARGUMENTS:
+	  ----------------
+    Note: For input parameters equal to zero the default values of the
+	  corresponding variables are used.
+
+     N		Dimension of the system
+     T		Initial time value
+
+     Tend	Final T value (Tend-T may be positive or negative)
+
+     Y(N)	Initial values for Y
+
+     RelTol, AbsTol   Relative and absolute error tolerances.
+           for ICNTRL[1] = 0: AbsTol, RelTol are N-dimensional vectors
+                         = 1: AbsTol, RelTol are scalars
+  *~~~>   Integer input parameters:
+
+     ICNTRL[0] = not used
+     
+     ICNTRL[1] = 0: AbsTol, RelTol are NVAR-dimensional vectors
+               = 1: AbsTol, RelTol are scalars
+
+     ICNTRL[2] = RK method selection
+	     = 1: Radau-2A	(the default)
+	     = 2: Radau-1A
+	     = 3: Lobatto-3C
+	     = 4: Gauss
+	     = 5: Lobatto-3A (not yet implemented)
+
+     ICNTRL[3] -> maximum number of integration steps
+	For ICNTRL[3] = 0 the default value of 10000 is used
+
+     ICNTRL[4] -> maximum number of Newton iterations
+	For ICNTRL[4] = 0 the default value of 8 is used
+
+     ICNTRL[5] -> starting values of Newton iterations:
+	ICNTRL[5] = 0: starting values are obtained from
+		     the extrapolated collocation solution
+		     (the default)
+   	ICNTRL[5] = 1: starting values are zero
+
+     ICNTRL[9] -> switch for error estimation strategy
+	ICNTRL[9] = 0: one additional stage at c = 0,
+		     see Hairer (default)
+	ICNTRL[9] = 1: two additional stages at c = 0,
+		     and SDIRK at c = 1, stiffly accurate
+
+     ICNTRL[10] -> switch for step size strategy
+	ICNTRL[10] = 0: mod. predictive controller (Gustafsson, default)
+	ICNTRL[10] = 1: classical step size control
+ 	the choice 1 seems to produce safer results;
+	for simple problems, the choice 2 produces
+	often slightly faster runs
+
+  *~~~>   Real input parameters:
+     RCNTRL[0]  -> Hmin, lower bound for the integration step size
+		(highly recommended to keep Hmin = ZERO, the default)
+
+     RCNTRL[1]  -> Hmax, upper bound for the integration step size
+
+     RCNTRL[2]  -> Hstart, the starting step size
+
+     RCNTRL[3]  -> FacMin, lower bound on step decrease factor 
+		(default=0.2)
+
+     RCNTRL[4]  -> FacMax, upper bound on step increase factor
+		(default=6)
+
+     RCNTRL[5]  -> FacRej, step decrease factor after multiple rejections
+		(default=0.1)
+
+     RCNTRL[6]  -> FacSafe, by which the new step is slightly smaller
+		than the predicted value (default=0.9)
+
+     RCNTRL[7]  -> ThetaMin. If Newton convergence rate smaller
+		than ThetaMin the Jacobian is not recomputed;
+		(default=0.001)
+
+     RCNTRL[8]  -> NewtonTol, stopping criterion for Newton's method
+		(default=0.03)
+
+     RCNTRL[9]  -> Qmin
+
+     RCNTRL[10] -> Qmax. If Qmin < Hnew/Hold < Qmax, then the
+		 step size is kept constant and the LU factorization
+		 reused (default Qmin=1, Qmax=1.2)	
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  *~~~>     OUTPUT ARGUMENTS:
+            -----------------
+     T	      -> T value for which the solution has been computed
+		 (after successful return T=Tend).
+
+     Y(N)  -> Numerical solution at T
+
+  Note: each call to RungeKutta adds the current no. of fcn calls
+	to previous value of ISTATUS[0], and similar to other params.
+	Set ISTATUS[1:9] = 0 before call to avoid this accumulation.
+
+     ISTATUS[0] -> No. of function calls
+     ISTATUS[1] -> No. of Jacobian calls
+     ISTATUS[2] -> No. of steps
+     ISTATUS[3] -> No. of accepted steps
+     ISTATUS[4] -> No. of rejected steps (except at very beginning)
+     ISTATUS[5] -> No. of LU decompositions
+     ISTATUS[6] -> No. of forward/backward substitutions
+     ISTATUS[7] -> No. of singular matrix decompositions
+
+     RSTATUS[0] -> Texit, the time corresponding to the 
+		 computed Y upon return
+     RSTATUS[1] -> Hexit, last accepted step before exit
+     RSTATUS[2] -> Hnew, last predicted step (not yet taken)
+		 For multiple restarts, use Hnew as Hstart
+  		 in the subsequent run
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  *~~~>    RETURN VALUE (int):
+
+     IERR     -> Reports on successfulness upon return:
+	= 1 for success
+	< 0 for error (value equals error code)
+	= -1  : Improper value for maximal no of steps
+	= -2  : Improper value for maximal no of Newton iterations
+	= -3  : Hmin/Hmax/Hstart must be positive
+    	= -4  : Improper values for FacMin/FacMax/FacSafe/FacRej
+    	= -5  : Improper value for ThetaMin
+    	= -6  : Newton stopping tolerance too small
+    	= -7  : Improper values for Qmin, Qmax
+    	= -8  : Tolerances are too small
+    	= -9  : No of steps exceeds maximum bound
+    	= -10 : Step size too small
+	= -11 : Matrix is repeatedly singular
+   	= -12 : Non-convergence of Newton iterations
+    	= -13 : Requested RK method not implemented
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+{
+  /*~~~>  Control arguments */
+  /*printf("Starting RungeKutta\n");*/
+   int Max_no_steps;
+   KPP_REAL Hmin,
+  	  Hmax,
+	  Hstart,
+	  Qmin,
+	  Qmax,
+   	  Roundoff,
+	  ThetaMin,
+	  NewtonTol,
+   	  FacSafe,
+          FacMin,
+	  FacMax,
+	  FacRej;
+  /*~~~> Local variables */
+   int NewtonMaxit,
+       ITOL,
+       i,
+       StartNewton,
+       Gustafsson; 
+
+   *IERR = 0;
+   for (i = 0; i < 20; i++) {
+	ISTATUS[i] = 0;
+	RSTATUS[i] = ZERO;
+   } /* end for */
+   
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+
+  /*~~~> ICNTRL[0] - autonomous system - not used */
+  /*~~~> ITOL: 1 for vector and 0 for scalar AbsTol/RelTol */
+   if (ICNTRL[1] == 0) {
+	/*printf("Entering if ICNTRL[1] == 0\n");*/
+	ITOL = 1;
+   }
+   else {
+	ITOL = 0;
+   } /*end if */
+  /*~~~> Error control selection */
+   if (ICNTRL[9] == 0) {
+	SdirkError = 0;
+   }
+   else {
+	/*printf("Entering if ICNTRL[9] == 1\n");*/    
+	SdirkError = 1;
+   } /* end if */
+  /*~~~> Method Selection */
+  /*printf("Starting case ICNTRL[2]\n");*/
+   switch (ICNTRL[2]) {
+	case 0:
+	case 1:	Radau2A_Coefficients(); /*printf("case 0 or 1\n");*/
+		break;
+	case 2: Lobatto3C_Coefficients(); printf("case 2\n");
+		break;
+	case 3: Gauss_Coefficients(); printf("case 3\n");
+		break;
+	case 4: Radau1A_Coefficients(); printf("case 4\n");
+		break;
+	case 5: Lobatto3A_Coefficients(); printf("case 5\n");
+		break;
+	default:
+		printf("\n ICNTRL[2]=%d\n", ICNTRL[2]);
+		RK_ErrorMsg(-13, T, ZERO, IERR);
+   } /* end switch */
+ 
+ /*~~~> Max_no_steps: the maximal number of time steps */
+   if (ICNTRL[3] == 0) {
+	Max_no_steps = 200000;
+	/*printf("Max_no_steps = %d\n", Max_no_steps);*/
+   }
+   else {
+	Max_no_steps = ICNTRL[3];
+	if (Max_no_steps <= 0)
+	{
+		printf("\n ICNTRL[3]=%d\n", ICNTRL[3]);
+		RK_ErrorMsg(-1, T, ZERO, IERR);
+	} /* end if */
+   } /* end if */
+
+ /*~~~> NewtonMaxit: maximal number of Newton iterations */
+   if (ICNTRL[4] == 0)
+	NewtonMaxit = 8;
+   else 
+   {
+	NewtonMaxit = ICNTRL[4];
+	if (NewtonMaxit <= 0) {
+		printf("\n ICNTRL[4]=%d\n", ICNTRL[4]);
+		RK_ErrorMsg(-2, T, ZERO, IERR);
+	}
+	/*printf("NewtonMaxit = %d\n", NewtonMaxit);*/
+   } /* end if */
+
+ /*~~~> StartNewton: Use extrapolation for starting values of Newton iterations */
+   if (ICNTRL[5] == 0) {
+	StartNewton = 1;
+	/*printf("StartNewton = %d\n", StartNewton);*/
+   }
+   else {
+	StartNewton = 0;
+   } /* end if */
+
+ /*~~~> Gustafsson: step size controller */
+   if (ICNTRL[10] == 0) {
+	Gustafsson = 1;
+	/*printf("Gustafsson = %d\n", Gustafsson);*/
+   }
+   else {
+	Gustafsson = 0;
+   } /* end if */
+  
+ /*~~~> Roundoff: smallest number s.t. 1.0 + Roundoff > 1.0 */
+   Roundoff = WLAMCH('E');
+   /*printf("Roundoff=%f\n", Roundoff);*/
+ /*~~~> Hmin = minimal step size */
+   if (RCNTRL[0] == ZERO) {
+	/*printf("Entering if RCNTRL[0]=%f == ZERO\n", RCNTRL[0]);*/   
+	Hmin = ZERO;
+   }
+   else {
+	Hmin = MIN(ABS(RCNTRL[0]), ABS(Tend-T));
+   } /* end if */
+ /*~~~> Hmax = maximal step size */
+   if (RCNTRL[1] == ZERO) {
+	/*printf("Entering if RCNTRL[1]=%f == ZERO\n", RCNTRL[1]);*/   
+      	Hmax = ABS(Tend-T);
+   }
+   else {
+      	Hmax = MIN(ABS(RCNTRL[1]),ABS(Tend-T));
+   } /* end if */
+ /*~~~> Hstart = starting step size */
+   if (RCNTRL[2] == ZERO) {
+	/*printf("Entering if RCNTRL[2]=%f == ZERO\n", RCNTRL[2]);*/   
+    	Hstart = ZERO;
+   }
+   else {
+	Hstart = MIN(ABS(RCNTRL[2]),ABS(Tend-T));
+   } /* end if */
+ /*~~~> FacMin: lower bound on step decrease factor */
+   if (RCNTRL[3] == ZERO) {
+	/*printf("Entering if RCNTRL[3]=%f == ZERO\n", RCNTRL[3]);*/   
+	FacMin = (KPP_REAL)0.2;
+   }
+   else {
+   	FacMin = RCNTRL[3];
+   } /* end if */
+ /*~~~> FacMax: upper bound on step increase factor */
+   if (RCNTRL[4] == ZERO) {
+	/*printf("Entering if RCNTRL[4]=%f == ZERO\n", RCNTRL[4]);*/   
+    	FacMax = (KPP_REAL)8.0;
+   }
+   else {
+    	FacMax = RCNTRL[4];
+   } /* end if */
+ /*~~~> FacRej: step decrease factor after 2 consecutive rejections */
+   if (RCNTRL[5] == ZERO) {
+	/*printf("Entering if RCNTRL[5]=%f == ZERO\n", RCNTRL[5]);*/
+	FacRej = (KPP_REAL)0.1;
+   }
+   else {
+     	FacRej = RCNTRL[5];
+   } /* end if */
+ /*~~~> FacSafe: by which the new step is slightly smaller
+		 than the predicted value */
+   if (RCNTRL[6] == ZERO) {
+	/*printf("Entering if RCNTRL[6]=%f == ZERO\n", RCNTRL[6]);*/   
+    	FacSafe = (KPP_REAL)0.9;
+   }
+   else {
+ 	FacSafe = RCNTRL[6];
+   } /* end if */
+   if ((FacMax < ONE) || (FacMin > ONE) || (FacSafe <= 1.0e-03) || (FacSafe >= ONE)) {
+	printf("\n RCNTRL[3]=%f, RCNTRL[4]=%f, RCNTRL[5]=%f, RCNTRL[6]=%f\n",
+		RCNTRL[3], RCNTRL[4], RCNTRL[5], RCNTRL[6]);
+	RK_ErrorMsg(-4, T, ZERO, IERR);
+   } /* end if */
+
+ /*~~~> ThetaMin: decides whether the Jacobian should be recomputed */
+   if (RCNTRL[7] == ZERO)
+  	ThetaMin = (KPP_REAL)1.0e-03;
+   else {
+	ThetaMin = RCNTRL[7];
+	if (ThetaMin <= (KPP_REAL)0.0 || ThetaMin >= (KPP_REAL)1.0) {
+		printf("\n RCNTRL[7]=%f\n", RCNTRL[7]);
+		RK_ErrorMsg(-5, T, ZERO, IERR);
+	}
+   } /* end if */
+ /*~~~> NewtonTol: stopping criterion for Newton's method */
+   if (RCNTRL[8] == ZERO)
+	NewtonTol = (KPP_REAL)3.0e-02;
+   else {
+	NewtonTol = RCNTRL[8];
+  	if (NewtonTol <= Roundoff) {
+		printf("\n RCNTRL[8]=%f\n", RCNTRL[8]);
+		RK_ErrorMsg(-6, T, ZERO, IERR);
+	}
+   } /* end if */
+ /*~~~> Qmin AND Qmax: IF Qmin < Hnew/Hold < Qmax then step size = const. */
+   if (RCNTRL[9] == ZERO) {
+	Qmin = ONE;
+   }
+   else {
+	Qmin = RCNTRL[9];
+   } /* end if */
+   if (RCNTRL[10] == ZERO) {
+	Qmax = (KPP_REAL)1.2;
+   }
+   else {
+	Qmax = RCNTRL[10];
+   } /* end if */
+   if (Qmin > ONE || Qmax < ONE) {
+	printf("\n RCNTRL[9]=%f\n", Qmin);
+	printf("\n RCNTRL[10]=%f\n", Qmax);
+	RK_ErrorMsg(-7, T, ZERO, IERR);
+   } /* end if */
+ /*~~~> Check if tolerances are reasonable */
+   if (ITOL == 0) {
+	if ( AbsTol[0] <= ZERO || RelTol[0] <= ( ((KPP_REAL)10.0)*Roundoff) ) {
+	   printf("\n AbsTol=%f\n", AbsTol[0]);
+	   printf("\n RelTol=%f\n", RelTol[0]);
+	   RK_ErrorMsg(-8, T, ZERO, IERR);
+	}
+   }
+   else {
+	for (i = 0; i < N; i++) {
+	   if ( (AbsTol[i] <= ZERO) || (RelTol[i] <= ((KPP_REAL)10.0)*Roundoff) ) {
+                printf("\n AbsTol[%d] = %f\n", i, AbsTol[i]);
+		printf("\n AbsTol[%d] = %f\n", i, RelTol[i]);
+		RK_ErrorMsg(-8, T, ZERO, IERR);
+	   } /* end if */
+	} /* end for */
+   } /* end if */
+
+ /*~~~> Parameters are wrong */
+   if (*IERR < 0)
+	return;
+
+ /*~~~> Call the core method */	
+   RK_Integrator(N, &T, Tend, Y, AbsTol, RelTol, ITOL, ISTATUS, RSTATUS,
+		   Hmin, Hmax, Hstart, Roundoff, Max_no_steps, NewtonMaxit,
+		   StartNewton, Gustafsson, ThetaMin, NewtonTol,
+		   FacSafe, FacMax, FacMin, FacRej, Qmin, Qmax, IERR);
+  /*printf("*IERR = %d\n", *IERR);*/
+  /*printf("Ending RungeKutta\n");*/
+} /* RungeKutta */
+   
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void RK_Integrator( int N, 
+	/*~~~> Input: integration interval */        
+     	KPP_REAL*  T, KPP_REAL  Tend, KPP_REAL Y[],
+     	KPP_REAL AbsTol[], KPP_REAL RelTol[], int ITOL,
+  /*~~~> Input: the initial condition at T; output: the solution at Tend */     
+     	int ISTATUS[], KPP_REAL RSTATUS[], KPP_REAL Hmin, KPP_REAL Hmax, 
+	KPP_REAL Hstart, KPP_REAL Roundoff, int Max_no_steps, int NewtonMaxit,
+       	int StartNewton, int Gustafsson, KPP_REAL ThetaMin,
+       	KPP_REAL NewtonTol, KPP_REAL FacSafe, KPP_REAL FacMax, KPP_REAL FacMin,
+     	KPP_REAL FacRej, KPP_REAL Qmin, KPP_REAL Qmax, int* IERR)
+{  
+   /*printf("Starting RK_Integrator\n");*/
+   KPP_REAL FJAC[LU_NONZERO],
+  	  E1[LU_NONZERO],
+	  E2R[LU_NONZERO],
+	  E2I[LU_NONZERO];
+   KPP_REAL Z1[NVAR],
+  	  Z2[NVAR],
+	  Z3[NVAR],
+	  Z4[NVAR],
+	  SCAL[NVAR],
+	  DZ1[NVAR],
+	  DZ2[NVAR],
+	  DZ3[NVAR],
+	  DZ4[NVAR],
+	  G[NVAR],
+	  TMP[NVAR],
+	  FO[NVAR];   
+   KPP_REAL CONT[NVAR][RKmax],
+  	  Tdirection,
+	  H,
+	  Hacc,
+	  Hnew,
+	  Hold,
+	  Fac,
+	  FacGus, 
+   	  Theta,
+	  Err,
+	  ErrOld,
+	  NewtonRate,
+	  NewtonIncrement,
+	  Hratio,
+	  Qnewton, 
+	  NewtonPredictedErr,
+	  NewtonIncrementOld,
+	  ThetaSD;
+   int IP1[NVAR],
+       IP2[NVAR],
+       NewtonIter,
+       Nconsecutive,
+       i;
+   int ISING;
+   int Reject,
+       FirstStep,
+       SkipJac,
+       NewtonDone,
+       SkipLU;
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+   
+  /*~~~>  INITIAL setting */
+   /*printf("ONE=%f Tend-*T=%f\n", ONE, Tend-*T);*/
+   Tdirection = SIGN(ONE, Tend-*T);
+   /*printf("Tdirection=%f\n", Tdirection);*/
+   /*printf("Hmin=%g Hstart=%g \n", Hmin, Hstart);*/
+   /*printf("ABS(Hmin)=%g ABS(Hstart)=%g \n", ABS(Hmin), ABS(Hstart));*/
+   H = MIN( MAX(ABS(Hmin), ABS(Hstart)), Hmax ); 
+   if (ABS(H) <= ((KPP_REAL)10.0*Roundoff)) {
+	/*printf("Entering if ABS(H)=%g <= 10.0*Roundoff=%g\n", ABS(H),(KPP_REAL)10.0*Roundoff);*/
+        H = (KPP_REAL)(1.0e-06);
+   } /* end if */
+   H = SIGN(H, Tdirection);
+   Hold = H;
+   /*printf("Hold=%f\n", Hold);*/ 
+   Reject = 0;
+   FirstStep = 1;
+   SkipJac = 0;
+   SkipLU = 0;
+   if ((*T+H*((KPP_REAL)1.0001)-Tend)*Tdirection >= ZERO) {   
+	H = Tend - *T;
+   } /* end if */
+   Nconsecutive = 0;
+   RK_ErrorScale(N, ITOL, AbsTol, RelTol, Y, SCAL);
+   /*for(i=0; i<NVAR; i++) {
+        printf("AbsTol=%g RelTol=%g Y=%g SCAL=%g \n", AbsTol[i], RelTol[i], Y[i], SCAL[i] );
+   }*/
+   
+ /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+  /*~~~> Time loop begins */ 
+  /* while Tloop */
+Tloop:   while ( (Tend-*T)*Tdirection - Roundoff > ZERO ) {
+      /*printf("Starting Tloop: (Tend-*T)*Tdirection - Roundoff=%g > ZERO\n", (Tend-*T)*Tdirection-Roundoff);*/
+      /*if ( Reject == 0 ) { */
+	FUN_CHEM(*T,Y,FO);
+	ISTATUS[Nfun]++;
+      /* } * end if */ 
+      if ( SkipLU == 0 ) { /* This time around skip the Jac update and LU */
+	/*~~~> Compute the Jacobian matrix */
+	/*printf("Entering if SkipLU == 0\n");*/
+	if ( SkipJac == 0 ) {
+	   /*printf("Entering if SkipJac == 0\n");*/
+	   JAC_CHEM(*T,Y,FJAC);
+	   ISTATUS[Njac]++;
+	} /* end if */
+	/*~~~> Compute the matrices E1 and E2 and their decompositions */
+	RK_Decomp(N,H,FJAC,E1,IP1,E2R,E2I,IP2,&ISING,ISTATUS);
+	/*printf("ISING=%d\n", ISING);*/
+	if ( ISING != 0 ) {
+	   /*printf("Entering if ISING != 0\n");*/
+	   ISTATUS[Nsng]++;
+	   Nconsecutive++;
+	   if (Nconsecutive >= 5) {
+		RK_ErrorMsg(-12,*T,H,IERR);
+	   }
+	   H = H * ((KPP_REAL)0.5);
+	   Reject = 1;
+	   SkipJac = 1;
+	   SkipLU = 0;
+	   goto Tloop;
+	}
+	else {
+	   /*printf("Entering if ISING == 0\n");*/
+	   Nconsecutive = 0;
+	} /* end if */
+      } /* end if !SkipLU */
+
+      /*printf("NSTEPS=%d\n", ISTATUS[Nstp]);*/
+      ISTATUS[Nstp]++;
+      /*printf("NSTEPS=%d\n", ISTATUS[Nstp]);*/
+      if (ISTATUS[Nstp] > Max_no_steps) {
+	printf("\n Max number of time steps is = %d", Max_no_steps);
+	RK_ErrorMsg(-9,*T,H,IERR);
+      } /* end if */
+      if (((KPP_REAL)0.1)*ABS(H) <= ABS(*T)*Roundoff)
+	RK_ErrorMsg(-10,*T,H,IERR);
+ 
+ /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+ /*~~~>  Loop for the simplified Newton iterations */
+ /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+      /*~~~> Starting values for Newton iteration */  
+      if ( (FirstStep == 1) || (StartNewton == 0) ) {
+	/*printf("Entering if FirstStep or Not StartNewton\n");*/
+	Set2Zero(N,Z1);
+	Set2Zero(N,Z2);
+	Set2Zero(N,Z3);
+      }
+      else
+      {
+    	/* Evaluate quadratic polynomial */
+   	RK_Interpolate("eval",N,H,Hold,Z1,Z2,Z3,CONT);
+      } /* end if */
+
+      /*~~~> Initializations for Newton iteration */
+      NewtonDone = 0;
+      Fac = (KPP_REAL)0.5; /* Step reduction if too many iterations */
+  
+      /* for NewtonLoop */
+      for (NewtonIter = 1; NewtonIter <= NewtonMaxit; NewtonIter++)
+      {
+	/*printf("Starting NewtonIter loop: NewtonIter=%d\n", NewtonIter);*/
+   	/* Prepare the right-hand side */
+      	RK_PrepareRHS(N,*T,H,Y,FO,Z1,Z2,Z3,DZ1,DZ2,DZ3);
+
+	/* Solve the linear systems */
+  	RK_Solve(N,H,E1,IP1,E2R,E2I,IP2,DZ1,DZ2,DZ3,ISTATUS);
+
+	NewtonIncrement = 
+		SQRT((RK_ErrorNorm(N,SCAL,DZ1) * RK_ErrorNorm(N,SCAL,DZ1)
+		    + RK_ErrorNorm(N,SCAL,DZ2) * RK_ErrorNorm(N,SCAL,DZ2) 
+		    + RK_ErrorNorm(N,SCAL,DZ3) * RK_ErrorNorm(N,SCAL,DZ3))
+	            / (KPP_REAL)3.0 );
+	/*printf( "NewtonIncrement=%g \n", NewtonIncrement );*/
+	if (NewtonIter == 1) {
+	   /*printf("Entering NewtonIter=%d == 1\n", NewtonIter);*/
+	   Theta = ABS(ThetaMin);
+	   NewtonRate = (KPP_REAL)2.0;
+	}
+	else {
+	   /*printf("Entering else from NewtonIter=%d == 1\n", NewtonIter);*/
+	   Theta = NewtonIncrement / NewtonIncrementOld;
+	   /*printf("Theta=%f\n", Theta);*/
+	   if (Theta < (KPP_REAL)0.99) {
+		/*printf( "Entering if Theta=%g < 0.99\n", Theta );*/
+		NewtonRate = Theta / (ONE-Theta);
+	   }
+	   else { /* Non-convergence of Newton: Theta too large */
+       	      break; /* EXIT NewtonLoop */
+	   } /* end if */
+	   if (NewtonIter < NewtonMaxit) {
+	      /*printf("Entering if NewtonIter=%d < NewtonMaxit=%d\n", NewtonIter, NewtonMaxit);*/
+	      /* Predict error at the end of Newton process */
+ 	      NewtonPredictedErr = NewtonIncrement
+                             *pow(Theta,(NewtonMaxit-NewtonIter))/(ONE-Theta);
+	      /*printf("NewtonRate=%g NewtonPredictedErr=%g \n", NewtonRate, NewtonPredictedErr);*/
+	      if (NewtonPredictedErr >= NewtonTol) {
+		/*printf( "Entering if NewtonPredictedErr=%g >= NewtonTol%g \n", NewtonPredictedErr, NewtonTol );*/
+	      	/* Non-convergence of Newton: predicted error too large */
+	        Qnewton = MIN((KPP_REAL)10.0, NewtonPredictedErr/NewtonTol);
+	        Fac = (KPP_REAL)0.8*pow(Qnewton,(-ONE/(1+NewtonMaxit-NewtonIter)));
+	        break; /* EXIT NewtonLoop */
+	      } /* end if */
+	   } /* end if */
+   	} /* end if */
+	    
+   	NewtonIncrementOld = MAX(NewtonIncrement, Roundoff);
+	/*printf("NewtonIncrementOld=%f\n", NewtonIncrementOld);*/
+  	/*~~~> Update solution */
+   	WAXPY(N,-ONE,DZ1,1,Z1,1);	/* Z1 <- Z1 - DZ1 */
+   	WAXPY(N,-ONE,DZ2,1,Z2,1);	/* Z2 <- Z2 - DZ2 */
+   	WAXPY(N,-ONE,DZ3,1,Z3,1);	/* Z3 <- Z3 - DZ3 */
+        /*for(i=0; i<N; i++) 
+	   printf("DZ1[%d]=%g Z1[%d]=%g\n", i, DZ1[i], i, Z1[i]);*/
+  	/*~~~> Check error in Newton iterations */
+	/*printf( "NewtonRate=%g NewtonIncrement=%g NewtonTol=%g \n", NewtonRate, NewtonIncrement, NewtonTol );*/
+	NewtonDone = (NewtonRate*NewtonIncrement <= NewtonTol);
+	/*printf( "NewtonDone=%d \n", NewtonDone );*/
+   	if (NewtonDone == 1)
+	   break; /* Exit NewtonLoop */
+   	if (NewtonIter == NewtonMaxit)
+   	{
+	   printf("\n Slow or no convergence in Newton Iteration:");
+	   printf(" Max no. of Newton iterations reached");
+   	} /* end if */
+      }/* end for NewtonLoop */
+
+      if ( NewtonDone == 0)
+      {
+	/*printf( "Entering if NewtonDone == 0\n" );*/
+	/*RK_ErrorMsg(-12,*T,H,IERR); */
+	H = Fac*H;
+	Reject  = 1;
+	SkipJac = 1;
+	SkipLU  = 0;
+	goto Tloop;
+      } /* end if */
+
+ /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+ /*~~~> SDIRK Stage */
+ /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+      if (SdirkError == 1)
+      {
+	/*printf("Entering if SdirkError=%d==1\n", SdirkError);*/
+      	/*~~~> Starting values for Newton iterations */
+   	for (i = 0; i < N; i++)
+	{
+	   Z4[i] = Z3[i];
+ 	}
+      	/*~~~> Prepare the loop-independent part of the right-hand side */
+      	/* G = H*rkBgam(0)*FO + rkTheta(1)*Z1 
+		+ rkTheta(2)*Z2 + rkTheta(3)*Z3; */
+      	Set2Zero(N,G);
+      	if (rkMethod != L3A)
+	   WAXPY(N,rkBgam[0]*H, FO,1,G,1);
+      	WAXPY(N,rkTheta[0],Z1,1,G,1);  
+      	WAXPY(N,rkTheta[1],Z2,1,G,1);  
+      	WAXPY(N,rkTheta[2],Z3,1,G,1);  
+
+      	/*~~~> Initializations for Newton iteration */
+      	NewtonDone = 0;
+      	Fac = (KPP_REAL)0.5; /* Step reduction factor if too many iterations */
+
+      	/* for SDNewtonLoop */
+      	for (NewtonIter = 1; NewtonIter <= NewtonMaxit; NewtonIter++)
+      	{
+	   /*printf("Starting NewtonIter loop: NewtonIter=%d\n", NewtonIter);*/
+	   /*~~~> Prepare the loop-dependent part of right-hand side */
+	   WADD(N,Y,Z4,TMP);	/* TMP <- Y + Z4 */
+	   FUN_CHEM(*T+H,TMP,DZ4);	/* DZ4 <- Fun(Y+Z4) */
+	   ISTATUS[Nfun]++;
+	   /* DZ4[1,N] = (D[1, N]-Z4[1,N])*(rkGamma/H) + DZ4[1,N]; */
+	   WAXPY(N,-ONE*rkGamma/H,Z4,1,DZ4,1);
+	   WAXPY(N,rkGamma/H,G,1,DZ4,1);
+
+	   /*~~~> Solve the linear system */
+	   KppSolve(E1, DZ4);
+	   /*~~~> Note: for a full matrix use Lapack:
+		DGETRS('N', 5, 1, E1, N, IP1, DZ4, 5, ISING) */
+
+	   /*~~~> Check convergence of Newton iterations */
+	   NewtonIncrement = RK_ErrorNorm(N,SCAL,DZ4);
+	   /*printf( "NewtonIncrement=%g \n", NewtonIncrement );*/
+	   if (NewtonIter == 1) {
+	      /*printf("Entering NewtonIter=%d == 1\n", NewtonIter);*/
+	      ThetaSD = ABS(ThetaMin);
+              NewtonRate = (KPP_REAL)2.0;
+	   }
+	   else {
+	      /*printf("Entering else from NewtonIter=%d == 1\n", NewtonIter);*/
+	      ThetaSD = NewtonIncrement / NewtonIncrementOld;
+	      if (ThetaSD < (KPP_REAL)0.99) {
+		/*printf( "Entering if Theta=%g < 0.99\n", Theta );*/
+		NewtonRate = ThetaSD / (ONE-ThetaSD);
+		/* Predict error at the end of Newton process */
+		NewtonPredictedErr = NewtonIncrement
+			*pow(ThetaSD,(NewtonMaxit-NewtonIter))/(ONE-ThetaSD);
+	        /*printf("NewtonRate=%g NewtonPredictedErr=%g \n", NewtonRate, NewtonPredictedErr);*/
+		if (NewtonPredictedErr >= NewtonTol) {
+		   /*printf( "Entering if NewtonPredictedErr=%g >= NewtonTol%g \n", NewtonPredictedErr, NewtonTol );*/
+		   /* Non-convergence of Newton: predicted error too large */
+		   /* printf("\n Error too large", NewtonPredictedErr); */
+		   Qnewton = MIN((KPP_REAL)10.0,NewtonPredictedErr/NewtonTol);
+		   Fac = (KPP_REAL)0.8*pow(Qnewton,(-ONE/(1+NewtonMaxit-NewtonIter)));
+		   break; /* EXIT SDNewtonLoop */
+		} /* end if */
+	      }
+	      /* Non-convergence of Newton: Theta too large */
+	      else {
+		/* prinf("\n Theta too large", ThetaSD); */
+		break; /* EXIT SDNewtonLoop */
+	      } /* end if */
+	   } /* end if */
+     	   NewtonIncrementOld = NewtonIncrement;
+	   /*printf("NewtonIncrementOld=%f\n", NewtonIncrementOld);*/
+	   /* Update solution: Z4 <-- Z4 + DZ4; */
+	   WAXPY(N,ONE,DZ4,1,Z4,1);
+
+	   /* Check error in Newton iterations */
+	   NewtonDone = (NewtonRate*NewtonIncrement <= NewtonTol);
+	   /*printf( "NewtonDone=%d \n", NewtonDone );*/
+	   if (NewtonDone == 1)
+		break;	/* EXIT SDNewtonLoop */
+      	} /* end for SDNewtonLoop */
+      
+      	if ( NewtonDone == 0 ) {
+	   /*printf( "Entering if NewtonDone == 0\n" );*/
+	   H       = Fac*H;
+	   Reject  = 1;
+	   SkipJac = 1;
+	   SkipLU  = 0;
+	   goto Tloop;
+      	} /* end if */
+      } /* end if */
+      /*~~~> End of implified SDIRK Newton iterations */
+
+ /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+ /*~~~> Error estimation */
+ /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+      if (SdirkError == 1) {
+      	Set2Zero(N, DZ4);
+      	if (rkMethod == L3A) {
+	   for (i = 0; i < N; i++)
+		DZ4[i] = H*rkF[0]*FO[i];
+	   if (rkF[0] != ZERO)
+		WAXPY(N, rkF[0], Z1, 1, DZ4, 1);
+	   if (rkF[1] != ZERO)
+		WAXPY(N, rkF[1], Z2, 1, DZ4, 1);
+	   if (rkF[2] != ZERO)
+		WAXPY(N, rkF[2], Z3, 1, DZ4, 1);
+	   for (i = 0; i < N; i++)
+		 TMP[i] = Y[i] + Z4[i];
+	   FUN_CHEM(*T+H, TMP, DZ1);
+	   WAXPY(N, H*rkBgam[4], DZ1, 1, DZ4, 1);
+      	}
+      	else {
+	   /* DZ4(1,N) = rkD(1)*Z1 + rkD(2)*Z2 + rkD(3)*Z3 - Z4; */
+	   if (rkD[0] != ZERO)
+		WAXPY(N, rkD[0], Z1, 1, DZ4, 1);
+	   if (rkD[1] != ZERO)
+		WAXPY(N, rkD[1], Z2, 1, DZ4, 1);
+	   if (rkD[2] != ZERO)
+		WAXPY(N, rkD[2], Z3, 1, DZ4, 1);
+	   WAXPY(N, -ONE, Z4, 1, DZ4, 1);
+      	} /* end if */
+      	Err = RK_ErrorNorm(N,SCAL,DZ4);
+      }
+      else
+      {
+      	RK_ErrorEstimate(N,H,*T,Y,FO,E1,IP1,Z1,Z2,Z3,SCAL,&Err,
+			FirstStep,Reject,ISTATUS);
+      } /* end if */
+
+      /*~~~> Computation of new step size Hnew */
+      Fac = pow(Err, (-ONE/rkELO))
+	    *MIN(FacSafe,(ONE+2*NewtonMaxit)/(NewtonIter+2*NewtonMaxit));
+      Fac = MIN(FacMax,MAX(FacMin,Fac));
+      Hnew = Fac*H;
+
+ /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+ /*~~~> Accept/reject step */
+ /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+      // accept:
+      if (Err < ONE) { /*~~~> STEP IS ACCEPTED */
+      	FirstStep = 0;
+      	ISTATUS[Nacc]++;
+      	if (Gustafsson == 1) {
+	   /*~~~> Predictive controller of Gustafsson */
+	   if (ISTATUS[Nacc] > 1) {
+	      FacGus = FacSafe*(H/Hacc)*pow(Err*Err/ErrOld,(KPP_REAL)(-0.25));
+	      FacGus = MIN(FacMax,MAX(FacMin,FacGus));
+	      Fac = MIN(Fac,FacGus);	
+	      Hnew = Fac*H;
+	   } /* end if */
+	   Hacc = H;
+	   ErrOld = MAX((KPP_REAL)1.0e-02,Err);
+      	} /* end if */
+        Hold = H;
+      	*T = *T + H;
+      	/* Update solution: Y <- Y + sum(d_i Z-i) */
+      	if (rkD[0] != ZERO)
+	   WAXPY(N, rkD[0], Z1, 1, Y, 1);
+      	if (rkD[1] != ZERO)
+	   WAXPY(N, rkD[1], Z2, 1, Y, 1);
+      	if (rkD[2] != ZERO)
+	   WAXPY(N, rkD[2], Z3, 1, Y, 1);
+      	/* Construct the solution quadratic interpolant Q(c_i) = Z_i, i=1:3 */
+      	if (StartNewton == 1)
+	   RK_Interpolate("make",N,H,Hold,Z1,Z2,Z3,CONT);
+      	RK_ErrorScale(N,ITOL,AbsTol,RelTol,Y,SCAL);
+	RSTATUS[Ntexit] = *T;
+	RSTATUS[Nhnew] = Hnew;
+	RSTATUS[Nhacc] = H;
+      	Hnew = Tdirection*MIN( MAX(ABS(Hnew),Hmin), Hmax );
+      	if (Reject == 1)
+	   Hnew = Tdirection*MIN(ABS(Hnew),ABS(H));
+      	Reject = 0;
+      	if ((*T+Hnew/Qmin-Tend)*Tdirection >= ZERO)
+	   H = Tend - *T;
+      	else {
+	   Hratio = Hnew/H;
+	   /* Reuse the LU decomposition */
+	   SkipLU = (Theta <= ThetaMin) && (Hratio >= Qmin) && (Hratio <= Qmax);
+	   if ( SkipLU == 0)
+	   	H = Hnew;
+        } /* end if */
+        /* If convergence is fast enough, do not update Jacobian */
+      	/* SkipJac = (Theta <= ThetaMin); */
+      	SkipJac = 0;
+      }
+
+      /*~~~> Step is rejected */
+      else {
+      	if ((FirstStep == 1)  || (Reject == 1))
+	   H = FacRej*H;
+        else
+	   H = Hnew;
+        Reject  = 1;
+        SkipJac = 1; /* Skip if rejected - Jac is independent of H */
+        SkipLU  = 0;
+      	if (ISTATUS[Nacc] >= 1)
+	   ISTATUS[Nrej]++;
+      } /* end if accept */
+   } /* while: time Tloop */
+ 
+   /*~~~> Successful exit */
+   *IERR = 1;
+
+} /* RK_Integrator */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+	Handles all error messages and returns IERR = error Code
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void RK_ErrorMsg(int Code, KPP_REAL T, KPP_REAL H, int* IERR)
+{
+   Code = *IERR;
+   printf("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
+   printf("\nForced exit from RungeKutta due to the following error:\n");
+
+   switch (Code) {
+   case -1:
+      printf("--> Improper value for maximal no of steps");
+      break;
+   case -2:
+      printf("--> Improper value for maximal no of Newton iterations");
+      break;
+   case -3:
+      printf("--> Hmin/Hmax/Hstart must be positive");
+      break;
+   case -4:
+      printf("--> Improper values for FacMin/FacMax/FacSafe/FacRej");
+      break;
+   case -5:
+      printf("--> Improper value for ThetaMin");
+      break;
+   case -6:
+      printf("--> Newton stopping tolerance too small");
+      break;
+   case -7:
+      printf("--> Improper values for Qmin, Qmax");
+      break;
+   case -8:
+      printf("--> Tolerances are too small");
+      break;
+   case -9:
+      printf("--> No of steps exceeds maximum bound");
+      break;
+   case -10:
+      printf("--> Step size too small: (T + 10*H = T) or H < Roundoff");
+      break;
+   case -11:
+      printf("--> Matrix is repeatedly singular");
+      break;
+   case -12:
+      printf("--> Non-convergence of Newton iterations");
+      break;
+   case -13:
+      printf("--> Requested RK method not implemented");
+      break;
+   default:
+      printf("Unknown Error code: %d \n", Code);
+   } /* end switch */ 
+
+   printf("\n     T=%e,  H =%e", T, H);
+   printf("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
+
+} /* RK_ErrorMsg */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+/*	Handles all error messages and returns SCAL */
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void RK_ErrorScale(int N, 
+   /*~~~> Input arguments: */
+	int ITOL, KPP_REAL AbsTol[], KPP_REAL RelTol[], KPP_REAL Y[],
+   /*~~~> Output arguments: */
+	KPP_REAL SCAL[])
+{
+   /*printf("Starting RK_ErrorScale\n");*/
+   int i;
+   if (ITOL == 0) {
+	for (i = 0; i < N; i++) {
+	   SCAL[i] = ONE/(AbsTol[0]+RelTol[0]*ABS(Y[i]));
+	} /* end for loop*/
+   }
+   else {
+	for (i = 0; i< N; i++) {
+	   SCAL[i] = ONE/(AbsTol[i]+RelTol[i]*ABS(Y[i]));
+	} /* end for loop */
+   } /* end if */
+   /*printf("Ending RK_ErrorScale\n");*/
+} /* RK_ErrorScale */  
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+void RK_Transform(int N, KPP_REAL Tr[][3], KPP_REAL Z1[], KPP_REAL Z2[],
+		KPP_REAL Z3[], KPP_REAL W1[], KPP_REAL W2[], KPP_REAL W3[])
+-->	W <-- Tr x Z 
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+{
+   int i;
+   KPP_REAL x1,x2,x3;
+   for (i = 0; i < N; i++)
+   {
+	x1 = Z1[i];
+	x2 = Z2[i]; 
+	x3 = Z3[i]; 
+	W1[i] = Tr[0][0]*x1 + Tr[0][1]*x2 + Tr[0][2]*x3;
+	W2[i] = Tr[1][0]*x1 + Tr[1][1]*x2 + Tr[1][2]*x3;
+	W1[i] = Tr[2][0]*x1 + Tr[2][1]*x2 + Tr[2][2]*x3;
+   }  end for loop
+}  end RK_Transform */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+/*--> Constructs or evaluates a quadratic polynomial that
+      interpolates the Z solution at current step and
+      provides starting values for the next step
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void RK_Interpolate(char action[], int N, KPP_REAL H, KPP_REAL Hold, KPP_REAL Z1[],
+	KPP_REAL Z2[], KPP_REAL Z3[], KPP_REAL CONT[][RKmax])
+{
+   int i;
+   KPP_REAL r,x1,x2,x3,den;
+ 
+   /* Construct the solution quadratic interpolant Q(c_i) = Z_i, i=1:3 */
+   if (action == "make") {
+	den = (rkC[2]-rkC[1])*(rkC[1]-rkC[0])*(rkC[0]-rkC[2]);
+	for (i = 0; i < N; i++)
+	{
+	   CONT[i][0] = (-rkC[2]*rkC[2]*rkC[1]*Z1[i]
+			+Z3[i]*rkC[1]*rkC[0]*rkC[0]
+	   		+rkC[1]*rkC[1]*rkC[2]*Z1[i]
+	   		-rkC[1]*rkC[1]*rkC[0]*Z3[i]
+	   		+rkC[2]*rkC[2]*rkC[0]*Z2[i]
+	   		-Z2[i]*rkC[2]*rkC[0]*rkC[0])/den-Z3[i];
+	   CONT[i][1] = -( rkC[0]*rkC[0]*(Z3[i]-Z2[i])
+	   		+ rkC[1]*rkC[1]*(Z1[i]-Z3[i])
+	   		+ rkC[2]*rkC[2]*(Z2[i]-Z1[i]) )/den;
+	   CONT[i][2] = ( rkC[0]*(Z3[i]-Z2[i])
+	   		+ rkC[1]*(Z1[i]-Z3[i])
+	   		+ rkC[2]*(Z2[i]-Z1[i]) )/den;
+	} /* end for loop */
+   }
+   /* Evaluate quadratic polynomial */
+   else if (action == "eval") {
+   	r  = H / Hold;
+	x1 = ONE + rkC[0]*r;
+	x2 = ONE + rkC[1]*r;
+	x3 = ONE + rkC[2]*r;
+	for (i = 0; i < N; i++)
+	{
+	   Z1[i] = CONT[i][0]+x1*(CONT[i][1]+x1*CONT[i][2]);	
+	   Z2[i] = CONT[i][0]+x2*(CONT[i][1]+x2*CONT[i][2]);	
+	   Z3[i] = CONT[i][0]+x3*(CONT[i][1]+x3*CONT[i][2]);
+	} /* end for loop */
+   } /* end if */
+} /* RK_Interpolate */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+/*~~~> Prepare the right-hand side for Newton iterations
+       R = Z - hA x F
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void RK_PrepareRHS(int N, KPP_REAL T, KPP_REAL H, KPP_REAL Y[], KPP_REAL FO[],
+	KPP_REAL Z1[], KPP_REAL Z2[], KPP_REAL Z3[], KPP_REAL R1[], KPP_REAL R2[],
+	KPP_REAL R3[])
+{
+   KPP_REAL TMP[N], F[N];
+   WCOPY(N,Z1,1,R1,1); /* R1 <- Z1 */	
+   WCOPY(N,Z2,1,R2,1); /* R2 <- Z2 */	
+   WCOPY(N,Z3,1,R3,1); /* R3 <- Z3 */	
+ 
+   if (rkMethod == L3A)
+   {
+	WAXPY(N,-H*rkA[0][0],FO,1,R1,1); /* R1 <- R1 - h*A_10*FO */
+	WAXPY(N,-H*rkA[1][0],FO,1,R2,1); /* R2 <- R2 - h*A_20*FO */
+	WAXPY(N,-H*rkA[2][0],FO,1,R3,1); /* R3 <- R3 - h*A_30*FO */
+   } /* end if */
+
+   WADD(N,Y,Z1,TMP);			/* TMP <- Y + Z1 */
+   FUN_CHEM(T+rkC[0]*H,TMP,F);		/* F1 <- Fun(Y+Z1) */
+   WAXPY(N,-H*rkA[0][0],F,1,R1,1); 	/* R1 <- R1 - h*A_11*F1 */
+   WAXPY(N,-H*rkA[1][0],F,1,R2,1); 	/* R2 <- R2 - h*A_21*F1 */
+   WAXPY(N,-H*rkA[2][0],F,1,R3,1); 	/* R3 <- R3 - h*A_31*F1 */
+
+   WADD(N,Y,Z2,TMP);			/* TMP <- Y + Z2 */
+   FUN_CHEM(T+rkC[1]*H,TMP,F);		/* F2 <- Fun(Y+Z2) */
+   WAXPY(N,-H*rkA[0][1],F,1,R1,1); 	/* R1 <- R1 - h*A_12*F2 */
+   WAXPY(N,-H*rkA[1][1],F,1,R2,1); 	/* R2 <- R2 - h*A_22*F2 */
+   WAXPY(N,-H*rkA[2][1],F,1,R3,1); 	/* R3 <- R3 - h*A_32*F2 */
+
+   WADD(N,Y,Z3,TMP);			/* TMP <- Y + Z3 */
+   FUN_CHEM(T+rkC[2]*H,TMP,F);		/* F3 <- Fun(Y+Z3) */
+   WAXPY(N,-H*rkA[0][2],F,1,R1,1); 	/* R1 <- R1 - h*A_13*F3 */
+   WAXPY(N,-H*rkA[1][2],F,1,R2,1); 	/* R2 <- R2 - h*A_23*F3 */
+   WAXPY(N,-H*rkA[2][2],F,1,R3,1); 	/* R3 <- R3 - h*A_33*F3 */
+} /* RK_PrepareRHS */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+/*~~~> Compute the matrices E1 and E2 and their decompositions
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void RK_Decomp(int N, KPP_REAL H, KPP_REAL FJAC[], KPP_REAL E1[],
+	int IP1[], KPP_REAL E2R[], KPP_REAL E2I[], int IP2[], 
+	int* ISING, int ISTATUS[]) 
+{
+   /*printf("Starting RK_Decomp\n");*/
+   KPP_REAL Alpha, Beta, Gamma;
+   int i,j;
+
+   Gamma = rkGamma / H;
+   Alpha = rkAlpha / H;
+   Beta  = rkBeta / H;
+
+   for (i = 0; i < LU_NONZERO; i++) {
+	E1[i] = -FJAC[i];
+   }
+   for (i = 0; i < NVAR; i++) {
+	j = LU_DIAG[i];
+	E1[j] = E1[j] + Gamma;
+   }
+   *ISING = KppDecomp(E1);
+   /*~~~> Note: for a full matrix use Lapack:
+   for (j = 0; j < N; j++) {
+	for (i = 0; i < N; i++)
+	{  
+	   E1[i,j] = -FJAC[i][j];
+	}
+	E1[i][j] = E1[i][j]+Gamma;
+   }
+   DGETRF(N, N, E1, N, IP1, ISING); */
+
+   if (*ISING != 0) {
+	/*printf("Matrix is singular, ISING=%d\n", *ISING);*/
+	ISTATUS[Ndec]++;
+	return;
+   }
+
+   for (i = 0; i < LU_NONZERO; i++) {
+	E2R[i] = (KPP_REAL)(-FJAC[i]);
+	E2I[i] = ZERO;
+   }
+   for (i = 0; i < NVAR; i++) {
+	j = LU_DIAG[i];
+	E2R[j] = E2R[j] + Alpha;
+	E2I[j] = E2I[j] + Beta;
+   }
+   *ISING = KppDecompCmplxR(E2R, E2I);
+   /*printf("Matrix is singular, ISING=%d\n", *ISING);*/
+   /*~~~> Note: for a full matrix use Lapack:
+   for (j = 0; j < N; j++) {
+      	for (i = 0; i < N; i++) {
+	   E2[i,j] = DCMPLX( -FJAC[i,j], ZERO );
+	}
+	E2[j,j] = E2[j,j] + CMPLX( Alpha, Beta );
+   }
+   ZGETRF(N,N,E2,N,IP2,ISING); */
+   ISTATUS[Ndec]++;
+} /*RK_Decomp */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ 
+void RK_Solve(int N, KPP_REAL H, KPP_REAL E1[], int IP1[], KPP_REAL E2R[],
+	KPP_REAL E2I[], int IP2[],KPP_REAL R1[], KPP_REAL R2[], KPP_REAL R3[],
+	int ISTATUS[])
+{
+   KPP_REAL x1, x2, x3;
+   KPP_REAL BCR[N], BCI[N];
+   int i;
+
+   /* Z <- h^{-1) T^{-1) A^{-1) x Z */
+   for (i = 0; i < N; i++)
+   {
+	x1 = R1[i]/H;
+	x2 = R2[i]/H;
+	x3 = R3[i]/H;
+        R1[i] = rkTinvAinv[0][0]*x1 + rkTinvAinv[0][1]*x2 + rkTinvAinv[0][2]*x3;
+	R2[i] = rkTinvAinv[1][0]*x1 + rkTinvAinv[1][1]*x2 + rkTinvAinv[1][2]*x3;
+	R3[i] = rkTinvAinv[2][0]*x1 + rkTinvAinv[2][1]*x2 + rkTinvAinv[2][2]*x3;
+   } 
+   KppSolve(E1,R1);
+   /*~~~> Note: for a full matrix use Lapack:
+   DGETRS('N',5,1,E1,N,IP1,R1,5,0); */
+   for(i = 0; i < N; i++)
+   {
+        BCR[i] = (KPP_REAL)(R2[i]);
+        BCI[i] = (KPP_REAL)(R3[i]);
+   }
+   KppSolveCmplxR(E2R,E2I,BCR,BCI);
+   /*~~~> Note: for a full matrix use Lapack:
+   ZGETRS ('N',N,1,E2,N,IP2,BC,N,0); */
+   for (i = 0; i < N; i++)
+   {
+	R2[i] = (KPP_REAL)( BCR[i] );
+        R3[i] = (KPP_REAL)( BCI[i] );
+   }
+
+   /* Z <- T x Z */
+   for (i = 0; i < N; i++)
+   {
+	x1 = R1[i];
+	x2 = R2[i];
+	x3 = R3[i];
+        R1[i] = rkT[0][0]*x1 + rkT[0][1]*x2 + rkT[0][2]*x3;
+	R2[i] = rkT[1][0]*x1 + rkT[1][1]*x2 + rkT[1][2]*x3;
+	R3[i] = rkT[2][0]*x1 + rkT[2][1]*x2 + rkT[2][2]*x3;
+   } 
+   ISTATUS[Nsol]++;
+} /* RK_Solve */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void RK_ErrorEstimate(int N, KPP_REAL H, KPP_REAL T, KPP_REAL Y[], 
+	KPP_REAL FO[], KPP_REAL E1[], int IP1[], KPP_REAL Z1[], 
+	KPP_REAL Z2[], KPP_REAL Z3[], KPP_REAL SCAL[], KPP_REAL* Err,
+	int FirstStep, int Reject, int ISTATUS[])
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+{
+   KPP_REAL F1[N],F2[N],TMP[N];
+   KPP_REAL HrkE1,HrkE2,HrkE3;
+   int i;
+
+   HrkE1  = rkE[0]/H;
+   HrkE2  = rkE[1]/H;
+   HrkE3  = rkE[2]/H;
+
+   for (i = 0; i < N; i++)
+   {
+	F2[i]  = HrkE1*Z1[i]+HrkE2*Z2[i]+HrkE3*Z3[i];
+	TMP[i] = rkE[0]*FO[i] + F2[i];
+   }
+   
+   KppSolve(E1, TMP);
+   if ((rkMethod == R1A) || (rkMethod == GAU) || (rkMethod == L3A))
+	KppSolve(E1,TMP);
+   if (rkMethod == GAU)
+	KppSolve(E1,TMP);
+   /*~~~> Note: for a full matrix use Lapack:
+	DGETRS ('N',N,1,E1,N,IP1,TMP,N,0);
+      	if ((rkMethod == R1A) || (rkMethod == GAU) || (rkMethod == L3A))
+	   DGETRS('N',N,1,E1,N,IP1,TMP,N,0);
+   	if (rkMethod == GAU)
+	   DGETRS('N',N,1,E1,N,IP1,TMP,N,0); */
+
+   *Err = RK_ErrorNorm(N,SCAL,TMP);
+
+   if (*Err < ONE)
+	return;
+   /* firej */
+   if ((FirstStep == 1) || (Reject == 1)) {
+	for (i = 0; i < N; i++) {
+	   TMP[i] = Y[i] + TMP[i];
+        } /* end for */
+        FUN_CHEM(T,TMP,F1);
+        ISTATUS[Nfun]++;
+	for (i = 0; i < N; i++) {
+	   TMP[i] = F1[i] + F2[i];
+	} /* end for */
+
+        KppSolve(E1, TMP);
+	/*~~~> Note: for a full matrix use Lapack:
+	   DGETRS ('N',N,1,E1,N,IP1,TMP,N,0); */
+        *Err = RK_ErrorNorm(N,SCAL,TMP);
+   } /* end if firej */
+} /* RK_ErrorEstimate */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+   KPP_REAL RK_ErrorNorm(int N, KPP_REAL SCAL[], KPP_REAL DY[])
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+{
+   int i;
+   KPP_REAL RK_ErrorNorm = ZERO;
+   for (i = 0; i < N; i++) {
+	RK_ErrorNorm = RK_ErrorNorm + (DY[i]*SCAL[i]) * (DY[i]*SCAL[i]);
+   }    
+   RK_ErrorNorm = MAX( SQRT(RK_ErrorNorm/N), (KPP_REAL)1.0e-10 );
+   return RK_ErrorNorm;
+} /* RK_ErrorNorm */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+	The coefficients of the 3-stage Radau-2A method
+	(given to ~30 accurate digits)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void Radau2A_Coefficients()
+{
+   /*printf("Starting Radau2A\n");*/
+   /* The coefficients of the Radau2A method */
+   KPP_REAL b0;
+   /* b0 = (KPP_REAL)1.0; */
+   if (SdirkError == 1) {
+   	b0 = (KPP_REAL)(0.2e-01);
+	/*printf("b0 = %f\n", b0);*/
+   }
+   else {
+	b0 = (KPP_REAL)(0.5e-01);
+	/*printf("b0 = %f\n", b0);*/
+   } /*end if */
+   /* The coefficients of the Radau2A method */
+   rkMethod = R2A;
+
+   rkA[0][0] = (KPP_REAL)(1.968154772236604258683861429918299e-01);
+   rkA[0][1] = (KPP_REAL)(-6.55354258501983881085227825696087e-02);
+   rkA[0][2] = (KPP_REAL)(2.377097434822015242040823210718965e-02);
+   rkA[1][0] = (KPP_REAL)(3.944243147390872769974116714584975e-01);
+   rkA[1][1] = (KPP_REAL)(2.920734116652284630205027458970589e-01);
+   rkA[1][2] = (KPP_REAL)(-4.154875212599793019818600988496743e-02);
+   rkA[2][0] = (KPP_REAL)(3.764030627004672750500754423692808e-01);
+   rkA[2][1] = (KPP_REAL)(5.124858261884216138388134465196080e-01);
+   rkA[2][2] = (KPP_REAL)(1.111111111111111111111111111111111e-01);
+
+   rkB[0] = (KPP_REAL)(3.764030627004672750500754423692808e-01);
+   rkB[1] = (KPP_REAL)(5.124858261884216138388134465196080e-01);
+   rkB[2] = (KPP_REAL)(1111111111111111111111111111111111e-01);
+
+   rkC[0] = (KPP_REAL)(1.550510257216821901802715925294109e-01);
+   rkC[1] = (KPP_REAL)(6.449489742783178098197284074705891e-01);
+   rkC[2] = ONE;
+
+   /* New solution: H* Sum B_j*f(Z_j) = Sum D_j*Z_j */
+   rkD[0] = ZERO;
+   rkD[1] = ZERO;
+   rkD[2] = ONE;
+   
+   /* Classical error estimator: */
+   /* H* Sum (B_j-Bhat_j)*f(Z_j) = H*E(0)*f(0) + Sum E_j*Z_j */
+   rkE[0] = ONE*b0;
+   rkE[1] = (KPP_REAL)(-10.04880939982741556246032950764708)*b0;
+   rkE[2] = (KPP_REAL)1.382142733160748895793662840980412*b0;
+   rkE[3] = (KPP_REAL)(-.3333333333333333333333333333333333)*b0;
+
+   /* Sdirk error estimator */
+   rkBgam[0] = b0;
+   rkBgam[1] = (KPP_REAL).3764030627004672750500754423692807
+		-(KPP_REAL)1.558078204724922382431975370686279*b0;
+   rkBgam[2] = (KPP_REAL).8914115380582557157653087040196118*b0
+		+(KPP_REAL).5124858261884216138388134465196077;
+   rkBgam[3] = (KPP_REAL)(-.1637777184845662566367174924883037)
+		-(KPP_REAL).3333333333333333333333333333333333*b0;
+   rkBgam[4] = (KPP_REAL).2748888295956773677478286035994148;
+
+   /* H* Sum Bgam_j*f(Z_j) = H*Bgam(0)*f(0) + Sum Theta_j*Z_j */
+   rkTheta[0] = (KPP_REAL)(-1.520677486405081647234271944611547)
+		-(KPP_REAL)10.04880939982741556246032950764708*b0;
+   rkTheta[1] = (KPP_REAL)2.070455145596436382729929151810376
+		+(KPP_REAL)1.382142733160748895793662840980413*b0;
+   rkTheta[2] = (KPP_REAL)(-.3333333333333333333333333333333333)*b0
+		-(KPP_REAL).3744441479783868387391430179970741;
+
+   /* Local order of error estimator */
+   if ( b0 == ZERO)
+   	rkELO  = (KPP_REAL)6.0;
+   else
+        rkELO  = (KPP_REAL)4.0;
+
+   /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    ~~~> Diagonalize the RK matrix:
+    	 rkTinv * inv(rkA) * rkT =
+    	           |  rkGamma      0           0     |
+      	           |      0      rkAlpha   -rkBeta   |
+      	           |      0      rkBeta     rkAlpha  |
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+   rkGamma = (KPP_REAL)3.637834252744495732208418513577775;
+   rkAlpha = (KPP_REAL)2.681082873627752133895790743211112;
+   rkBeta  = (KPP_REAL)3.050430199247410569426377624787569;
+
+   rkT[0][0] = (KPP_REAL)(9.443876248897524148749007950641664e-02);
+   rkT[0][1] = (KPP_REAL)(-1.412552950209542084279903838077973e-01);
+   rkT[0][2] = (KPP_REAL)(-3.00291941051474244918611170890539e-02);
+   rkT[1][0] = (KPP_REAL)(2.502131229653333113765090675125018e-01);
+   rkT[1][1] = (KPP_REAL)(2.041293522937999319959908102983381e-01);
+   rkT[1][2] = (KPP_REAL)(3.829421127572619377954382335998733e-01);
+   rkT[2][0] =  ONE;
+   rkT[2][1] =  ONE;
+   rkT[2][2] =  ZERO;
+
+   rkTinv[0][0] = (KPP_REAL)4.178718591551904727346462658512057;
+   rkTinv[0][1] = (KPP_REAL)(3.27682820761062387082533272429617e-01);
+   rkTinv[0][2] = (KPP_REAL)(5.233764454994495480399309159089876e-01);
+   rkTinv[1][0] = (KPP_REAL)(-4.178718591551904727346462658512057);
+   rkTinv[1][1] = (KPP_REAL)(-3.27682820761062387082533272429617e-01);
+   rkTinv[1][2] = (KPP_REAL)(4.766235545005504519600690840910124e-01);
+   rkTinv[2][0] = (KPP_REAL)(-5.02872634945786875951247343139544e-01);
+   rkTinv[2][1] = (KPP_REAL)2.571926949855605429186785353601676;
+   rkTinv[2][2] = (KPP_REAL)(-5.960392048282249249688219110993024e-01);
+
+   rkTinvAinv[0][0] = (KPP_REAL)(1.520148562492775501049204957366528e+01);
+   rkTinvAinv[0][1] = (KPP_REAL)1.192055789400527921212348994770778;
+   rkTinvAinv[0][2] = (KPP_REAL)1.903956760517560343018332287285119;
+   rkTinvAinv[1][0] = (KPP_REAL)(-9.669512977505946748632625374449567);
+   rkTinvAinv[1][1] = (KPP_REAL)(-8.724028436822336183071773193986487);
+   rkTinvAinv[1][2] = (KPP_REAL)3.096043239482439656981667712714881;
+   rkTinvAinv[2][0] = (KPP_REAL)(-1.409513259499574544876303981551774e+01);
+   rkTinvAinv[2][1] = (KPP_REAL)5.895975725255405108079130152868952;
+   rkTinvAinv[2][2] = (KPP_REAL)(-1.441236197545344702389881889085515e-01);
+
+   rkAinvT[0][0] = (KPP_REAL).3435525649691961614912493915818282;
+   rkAinvT[0][1] = (KPP_REAL)(-.4703191128473198422370558694426832);
+   rkAinvT[0][2] = (KPP_REAL).3503786597113668965366406634269080;
+   rkAinvT[1][0] = (KPP_REAL).9102338692094599309122768354288852;
+   rkAinvT[1][1] = (KPP_REAL)1.715425895757991796035292755937326;
+   rkAinvT[1][2] = (KPP_REAL).4040171993145015239277111187301784;
+   rkAinvT[2][0] = (KPP_REAL)3.637834252744495732208418513577775;
+   rkAinvT[2][1] = (KPP_REAL)2.681082873627752133895790743211112;
+   rkAinvT[2][2] = (KPP_REAL)(-3.050430199247410569426377624787569);
+   /*printf("Ending Radau2A");*/
+} /* Radau2A_Coefficients */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+	The coefficients of the 3-stage Lobatto-3C method
+	(given to ~30 accurate digits)
+	The parameter b0 can be chosen to tune the error estimator
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void Lobatto3C_Coefficients ()
+{
+   KPP_REAL b0;	
+   rkMethod = L3C;
+   /* b0 = 1.0d0 */
+   if (SdirkError == 1)
+	b0 = (KPP_REAL)0.2;
+   else
+	b0 = (KPP_REAL)0.5;
+    
+   /* The coefficients of the Lobatto3C method */
+   rkA[0][0] = (KPP_REAL).1666666666666666666666666666666667;
+   rkA[0][1] = (KPP_REAL)(-.3333333333333333333333333333333333);
+   rkA[0][2] = (KPP_REAL).1666666666666666666666666666666667;
+   rkA[1][0] = (KPP_REAL).1666666666666666666666666666666667;
+   rkA[1][1] = (KPP_REAL).4166666666666666666666666666666667;
+   rkA[1][2] = (KPP_REAL)(-.8333333333333333333333333333333333e-01);
+   rkA[2][0] = (KPP_REAL).1666666666666666666666666666666667;
+   rkA[2][1] = (KPP_REAL).6666666666666666666666666666666667;
+   rkA[2][2] = (KPP_REAL).1666666666666666666666666666666667;
+
+   rkB[0] = (KPP_REAL).1666666666666666666666666666666667;
+   rkB[1] = (KPP_REAL).6666666666666666666666666666666667;
+   rkB[2] = (KPP_REAL).1666666666666666666666666666666667;
+
+   rkC[0] = ZERO;
+   rkC[1] = (KPP_REAL)0.5;
+   rkC[2] = ONE;
+
+   /* Classical error estimator, embedded solution: */
+   rkBhat[0] = b0;
+   rkBhat[1] = (KPP_REAL).16666666666666666666666666666666667-b0;
+   rkBhat[2] = (KPP_REAL).66666666666666666666666666666666667;
+   rkBhat[3] = (KPP_REAL).16666666666666666666666666666666667;
+
+   /* New solution: h Sum_j b_j f(Z_j) = sum d_j Z_j */
+   rkD[0] = ZERO;
+   rkD[1] = ZERO;
+   rkD[2] = ONE;
+
+   /* Classical error estimator: */
+   /* H* Sum (B_j-Bhat_j)*f(Z_j) = H*E(0)*f(0) + Sum E_j*Z_j */
+   rkE[0] = (KPP_REAL).3808338772072650364017425226487022*b0;
+   rkE[1] = (KPP_REAL)(-1.142501631621795109205227567946107)*b0;
+   rkE[2] = (KPP_REAL)(-1.523335508829060145606970090594809)*b0;
+   rkE[3] = (KPP_REAL).3808338772072650364017425226487022*b0;
+
+   /* Sdirk error estimator */
+   rkBgam[0] = b0;
+   rkBgam[1] = (KPP_REAL).1666666666666666666666666666666667-1.0*b0;
+   rkBgam[2] = (KPP_REAL).6666666666666666666666666666666667;
+   rkBgam[3] = (KPP_REAL)(-.2141672105405983697350758559820354);
+   rkBgam[4] = (KPP_REAL).3808338772072650364017425226487021;
+
+   /* H* Sum Bgam_j*f(Z_j) = H*Bgam(0)*f(0) + Sum Theta_j*Z_j */
+   rkTheta[0] = -3.0*b0-(KPP_REAL).3808338772072650364017425226487021;
+   rkTheta[1] = -4.0*b0+(KPP_REAL)1.523335508829060145606970090594808;
+   rkTheta[2] = (KPP_REAL)(-.142501631621795109205227567946106)+b0;
+
+   /* Local order of error estimator */
+   if (b0 == ZERO)
+	rkELO  = 5.0;
+   else
+	rkELO  = 4.0;
+
+   /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   ~~~> Diagonalize the RK matrix:
+    rkTinv * inv(rkA) * rkT =
+              |  rkGamma      0           0     |
+              |      0      rkAlpha   -rkBeta   |
+              |      0      rkBeta     rkAlpha  |
+   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+   rkGamma = (KPP_REAL)2.625816818958466716011888933765284;
+   rkAlpha = (KPP_REAL)1.687091590520766641994055533117359;
+   rkBeta  = (KPP_REAL)2.508731754924880510838743672432351;
+
+   rkT[0][1] = ONE;
+   rkT[0][1] = ONE;
+   rkT[0][2] = ZERO;
+   rkT[1][0] = (KPP_REAL).4554100411010284672111720348287483;
+   rkT[1][1] = (KPP_REAL)(-.6027050205505142336055860174143743);
+   rkT[1][2] = (KPP_REAL)(-.4309321229203225731070721341350346);
+   rkT[2][0] = (KPP_REAL)2.195823345445647152832799205549709;
+   rkT[2][1] = (KPP_REAL)(-1.097911672722823576416399602774855);
+   rkT[2][2] = (KPP_REAL).7850032632435902184104551358922130;
+
+   rkTinv[0][0] = (KPP_REAL).4205559181381766909344950150991349;
+   rkTinv[0][1] = (KPP_REAL).3488903392193734304046467270632057;
+   rkTinv[0][2] = (KPP_REAL).1915253879645878102698098373933487;
+   rkTinv[1][0] = (KPP_REAL).5794440818618233090655049849008650;
+   rkTinv[1][1] = (KPP_REAL)(-.3488903392193734304046467270632057);
+   rkTinv[1][2] = (KPP_REAL)(-.1915253879645878102698098373933487);
+   rkTinv[2][0] = (KPP_REAL)(-.3659705575742745254721332009249516);
+   rkTinv[2][1] = (KPP_REAL)(-1.463882230297098101888532803699806);
+   rkTinv[2][2] = (KPP_REAL).4702733607340189781407813565524989;
+
+   rkTinvAinv[0][0] = (KPP_REAL)1.104302803159744452668648155627548;
+   rkTinvAinv[0][1] = (KPP_REAL).916122120694355522658740710823143;
+   rkTinvAinv[0][2] = (KPP_REAL).5029105849749601702795812241441172;
+   rkTinvAinv[1][0] = (KPP_REAL)1.895697196840255547331351844372453;
+   rkTinvAinv[1][1] = (KPP_REAL)3.083877879305644477341259289176857;
+   rkTinvAinv[1][2] = (KPP_REAL)(-1.502910584974960170279581224144117);
+   rkTinvAinv[2][0] = (KPP_REAL).8362439183082935036129145574774502;
+   rkTinvAinv[2][1] = (KPP_REAL)(-3.344975673233174014451658229909802);
+   rkTinvAinv[2][2] = (KPP_REAL).312908409479233358005944466882642;
+
+   rkAinvT[0][0] = (KPP_REAL)2.625816818958466716011888933765282;
+   rkAinvT[0][1] = (KPP_REAL)1.687091590520766641994055533117358;
+   rkAinvT[0][2] = (KPP_REAL)(-2.508731754924880510838743672432351);
+   rkAinvT[1][0] = (KPP_REAL)1.195823345445647152832799205549710;
+   rkAinvT[1][1] = (KPP_REAL)(-2.097911672722823576416399602774855);
+   rkAinvT[1][2] = (KPP_REAL).7850032632435902184104551358922130;
+   rkAinvT[2][0] = (KPP_REAL)5.765829871932827589653709477334136;
+   rkAinvT[2][1] = (KPP_REAL).1170850640335862051731452613329320;
+   rkAinvT[2][2] = (KPP_REAL)4.078738281412060947659653944216779;
+} /* Lobatto3C_Coefficients */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+	The coefficients of the 3-stage Gauss method
+	(given to ~30 accurate digits)
+	The parameter b3 can be chosen by the user
+	to tune the error estimator
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void Gauss_Coefficients()
+{
+   rkMethod = GAU;
+   
+   /* The coefficients of the Gauss method */
+   KPP_REAL b0;
+   /*b0 = (KPP_REAL)4.0; */
+   b0 = (KPP_REAL)0.1;
+
+   /* The coefficients of the Gauss method */
+   rkA[0][0] = (KPP_REAL).1388888888888888888888888888888889;
+   rkA[0][1] = (KPP_REAL)(-.359766675249389034563954710966045e-01);
+   rkA[0][2] = (KPP_REAL)(.97894440153083260495800422294756e-02);
+   rkA[1][0] = (KPP_REAL).3002631949808645924380249472131556;
+   rkA[1][1] = (KPP_REAL).2222222222222222222222222222222222;
+   rkA[1][2] = (KPP_REAL)(-.224854172030868146602471694353778e-01);
+   rkA[2][0] = (KPP_REAL).2679883337624694517281977355483022;
+   rkA[2][1] = (KPP_REAL).4804211119693833479008399155410489;
+   rkA[2][2] = (KPP_REAL).1388888888888888888888888888888889;
+
+   rkB[0] = (KPP_REAL).2777777777777777777777777777777778;
+   rkB[1] = (KPP_REAL).4444444444444444444444444444444444;
+   rkB[2] = (KPP_REAL).2777777777777777777777777777777778;
+
+   rkC[0] = (KPP_REAL).1127016653792583114820734600217600;
+   rkC[1] = (KPP_REAL).5000000000000000000000000000000000;
+   rkC[2] = (KPP_REAL).8872983346207416885179265399782400;
+
+   /* Classical error estimator, embedded solution: */
+   rkBhat[0] = b0;
+   rkBhat[1] = (KPP_REAL)(-1.4788305577012361475298775666303999)*b0
+   		 +(KPP_REAL).27777777777777777777777777777777778;
+   rkBhat[2] = (KPP_REAL).44444444444444444444444444444444444
+    	         +(KPP_REAL).66666666666666666666666666666666667*b0;
+   rkBhat[3] = (KPP_REAL)(-.18783610896543051913678910003626672)*b0
+  	         +(KPP_REAL).27777777777777777777777777777777778;
+
+   /* New solution: h Sum_j b_j f(Z_j) = sum d_j Z_j */
+   rkD[0] = (KPP_REAL)(.1666666666666666666666666666666667e+01);
+   rkD[1] = (KPP_REAL)(-.1333333333333333333333333333333333e+01);
+   rkD[2] = (KPP_REAL)(.1666666666666666666666666666666667e+01);
+
+   /* Classical error estimator: */
+   /* H* Sum (B_j-Bhat_j)*f(Z_j) = H*E(0)*f(0) + Sum E_j*Z_j */
+   rkE[0] = (KPP_REAL).2153144231161121782447335303806954*b0;
+   rkE[1] = (KPP_REAL)(-2.825278112319014084275808340593191)*b0;
+   rkE[2] = (KPP_REAL).2870858974881495709929780405075939*b0;
+   rkE[3] = (KPP_REAL)(-.4558086256248162565397206448274867e-01)*b0;
+
+   /* Sdirk error estimator */
+   rkBgam[0] = ZERO;
+   rkBgam[1] = (KPP_REAL).2373339543355109188382583162660537;
+   rkBgam[2] = (KPP_REAL).5879873931885192299409334646982414;
+   rkBgam[3] = (KPP_REAL)(-.4063577064014232702392531134499046e-01);
+   rkBgam[4] = (KPP_REAL).2153144231161121782447335303806955;
+
+   /* H* Sum Bgam_j*f(Z_j) = H*Bgam(0)*f(0) + Sum Theta_j*Z_j */
+   rkTheta[0] = (KPP_REAL)(-2.594040933093095272574031876464493);
+   rkTheta[1] = (KPP_REAL)1.824611539036311947589425112250199;
+   rkTheta[2] = (KPP_REAL).1856563166634371860478043996459493;
+
+   /* ELO = local order of classical error estimator */
+   rkELO = (KPP_REAL)4.0;
+
+   /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   ~~~> Diagonalize the RK matrix:
+    rkTinv * inv(rkA) * rkT =
+              |  rkGamma      0           0     |
+              |      0      rkAlpha   -rkBeta   |
+              |      0      rkBeta     rkAlpha  |
+   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+   rkGamma = (KPP_REAL)4.644370709252171185822941421408064;
+   rkAlpha = (KPP_REAL)3.677814645373914407088529289295970;
+   rkBeta  = (KPP_REAL)3.508761919567443321903661209182446;
+
+   rkT[0][0] = (KPP_REAL)(.7215185205520017032081769924397664e-01);
+   rkT[0][1] = (KPP_REAL)(-.8224123057363067064866206597516454e-01);
+   rkT[0][2] = (KPP_REAL)(-.6012073861930850173085948921439054e-01);
+   rkT[1][0] = (KPP_REAL).1188325787412778070708888193730294;
+   rkT[1][1] = (KPP_REAL)(.5306509074206139504614411373957448e-01);
+   rkT[1][2] = (KPP_REAL).3162050511322915732224862926182701;
+   rkT[2][0] = ONE;
+   rkT[2][1] = ONE;
+   rkT[2][2] = ZERO;
+
+   rkTinv[0][0] = (KPP_REAL)5.991698084937800775649580743981285;
+   rkTinv[0][1] = (KPP_REAL)1.139214295155735444567002236934009;
+   rkTinv[0][2] = (KPP_REAL).4323121137838583855696375901180497;
+   rkTinv[1][0] = (KPP_REAL)(-5.991698084937800775649580743981285);
+   rkTinv[1][1] = (KPP_REAL)(-1.139214295155735444567002236934009);
+   rkTinv[1][2] = (KPP_REAL).5676878862161416144303624098819503;
+   rkTinv[2][0] = (KPP_REAL)(-1.246213273586231410815571640493082);
+   rkTinv[2][1] = (KPP_REAL)2.925559646192313662599230367054972;
+   rkTinv[2][2] = (KPP_REAL)(-.2577352012734324923468722836888244);
+
+   rkTinvAinv[0][0] = (KPP_REAL)27.82766708436744962047620566703329;
+   rkTinvAinv[0][1] = (KPP_REAL)5.290933503982655311815946575100597;
+   rkTinvAinv[0][2] = (KPP_REAL)2.007817718512643701322151051660114;
+   rkTinvAinv[1][0] = (KPP_REAL)(-17.66368928942422710690385180065675);
+   rkTinvAinv[1][1] = (KPP_REAL)(-14.45491129892587782538830044147713);
+   rkTinvAinv[1][2] = (KPP_REAL)2.992182281487356298677848948339886;
+   rkTinvAinv[2][0] = (KPP_REAL)(-25.60678350282974256072419392007303);
+   rkTinvAinv[2][1] = (KPP_REAL)6.762434375611708328910623303779923;
+   rkTinvAinv[2][2] = (KPP_REAL)1.043979339483109825041215970036771;
+
+   rkAinvT[0][0] = (KPP_REAL).3350999483034677402618981153470483;
+   rkAinvT[0][1] = (KPP_REAL)(-.5134173605009692329246186488441294);
+   rkAinvT[0][2] = (KPP_REAL)(.6745196507033116204327635673208923e-01);
+   rkAinvT[1][0] = (KPP_REAL).5519025480108928886873752035738885;
+   rkAinvT[1][1] = (KPP_REAL)1.304651810077110066076640761092008;
+   rkAinvT[1][2] = (KPP_REAL).9767507983414134987545585703726984;
+   rkAinvT[2][0] = (KPP_REAL)4.644370709252171185822941421408064;
+   rkAinvT[2][1] = (KPP_REAL)3.677814645373914407088529289295970;
+   rkAinvT[2][2] = (KPP_REAL)(-3.508761919567443321903661209182446);
+} /* Gauss_Coefficients */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+	The coefficients of the 3-stage Gauss method
+	(given to ~30 accurate digits)
+	The parameter b3 can be chosen by the user
+	to tune the error estimator
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void Radau1A_Coefficients()
+{
+   /* The coefficients of the Radau1A method */
+   KPP_REAL b0;
+   /*b0 = (KPP_REAL)0.3; */
+   b0 = (KPP_REAL)0.1;
+
+   /* The coefficients of the Radau1A method */
+   rkMethod = R1A;
+
+   rkA[0][0] = (KPP_REAL) .1111111111111111111111111111111111;
+   rkA[0][1] = (KPP_REAL)(-.1916383190435098943442935597058829);
+   rkA[0][2] = (KPP_REAL)(.8052720793239878323318244859477174e-01);
+   rkA[1][0] = (KPP_REAL).1111111111111111111111111111111111;
+   rkA[1][1] = (KPP_REAL).2920734116652284630205027458970589;
+   rkA[1][2] = (KPP_REAL)(-.481334970546573839513422644787591e-01);
+   rkA[2][0] = (KPP_REAL).1111111111111111111111111111111111;
+   rkA[2][1] = (KPP_REAL).5370223859435462728402311533676479;
+   rkA[2][2] = (KPP_REAL).1968154772236604258683861429918299;
+
+   rkB[0] = (KPP_REAL).1111111111111111111111111111111111;
+   rkB[1] = (KPP_REAL).5124858261884216138388134465196080;
+   rkB[2] = (KPP_REAL).3764030627004672750500754423692808;
+
+   rkC[0] = ZERO;
+   rkC[1] = (KPP_REAL).3550510257216821901802715925294109;
+   rkC[2] = (KPP_REAL).8449489742783178098197284074705891;
+
+   /* Classical error estimator, embedded solution: */
+   rkBhat[0] = b0;
+   rkBhat[1] = (KPP_REAL).11111111111111111111111111111111111-b0;
+   rkBhat[2] = (KPP_REAL).51248582618842161383881344651960810;
+   rkBhat[3] = (KPP_REAL).37640306270046727505007544236928079;
+
+   /* New solution: H* Sum B_j*f(Z_j) = Sum D_j*Z_j */
+   rkD[0] = (KPP_REAL).3333333333333333333333333333333333;
+   rkD[1] = (KPP_REAL)(-.8914115380582557157653087040196127);
+   rkD[2] = (KPP_REAL)(1.558078204724922382431975370686279);
+
+   /* Classical error estimator: */
+   /* H* Sum (b_j-bhat_j) f(Z_j) = H*E(0)*F(0) + Sum E_j Z_j */
+   rkE[0] = (KPP_REAL).2748888295956773677478286035994148*b0;
+   rkE[1] = (KPP_REAL)(-1.374444147978386838739143017997074)*b0;
+   rkE[2] = (KPP_REAL)(-1.335337922441686804550326197041126)*b0;
+   rkE[3] = (KPP_REAL).235782604058977333559011782643466*b0;
+
+   /* Sdirk error estimator */
+   rkBgam[0] = ZERO;
+   rkBgam[1] = (KPP_REAL)(.1948150124588532186183490991130616e-01);
+   rkBgam[2] = (KPP_REAL).7575249005733381398986810981093584;
+   rkBgam[3] = (KPP_REAL)(-.518952314149008295083446116200793e-01);
+   rkBgam[4] = (KPP_REAL).2748888295956773677478286035994148;
+
+   /* H* Sum Bgam_j*f(Z_j) = H*Bgam(0)*f(0) + Sum Theta_j*Z_j */
+   rkTheta[0] = (KPP_REAL)(-1.224370034375505083904362087063351);
+   rkTheta[1] = (KPP_REAL).9340045331532641409047527962010133;
+   rkTheta[2] = (KPP_REAL).4656990124352088397561234800640929;
+
+   /* ELO = local order of classical error estimator */
+   rkELO = (KPP_REAL)4.0;
+
+   /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   ~~~> Diagonalize the RK matrix:
+    rkTinv * inv(rkA) * rkT =
+              |  rkGamma      0           0     |
+              |      0      rkAlpha   -rkBeta   |
+              |      0      rkBeta     rkAlpha  |
+   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+   rkGamma = (KPP_REAL)3.637834252744495732208418513577775;
+   rkAlpha = (KPP_REAL)2.681082873627752133895790743211112;
+   rkBeta  = (KPP_REAL)3.050430199247410569426377624787569;
+
+   rkT[0][0] = (KPP_REAL).424293819848497965354371036408369;
+   rkT[0][1] = (KPP_REAL)(-.3235571519651980681202894497035503);
+   rkT[0][2] = (KPP_REAL)(-.522137786846287839586599927945048);
+   rkT[1][0] = (KPP_REAL)(.57594609499806128896291585429339e-01);
+   rkT[1][1] = (KPP_REAL)(.3148663231849760131614374283783e-02);
+   rkT[1][2] = (KPP_REAL).452429247674359778577728510381731;
+   rkT[2][0] = ONE;
+   rkT[2][1] = ONE;
+   rkT[2][2] = ZERO;
+
+   rkTinv[0][0] = (KPP_REAL)1.233523612685027760114769983066164;
+   rkTinv[0][1] = (KPP_REAL)1.423580134265707095505388133369554;
+   rkTinv[0][2] = (KPP_REAL).3946330125758354736049045150429624;
+   rkTinv[1][0] = (KPP_REAL)(-1.233523612685027760114769983066164);
+   rkTinv[1][1] = (KPP_REAL)(-1.423580134265707095505388133369554);
+   rkTinv[1][2] = (KPP_REAL).6053669874241645263950954849570376;
+   rkTinv[2][0] = (KPP_REAL)(-.1484438963257383124456490049673414);
+   rkTinv[2][1] = (KPP_REAL)2.038974794939896109682070471785315;
+   rkTinv[2][2] = (KPP_REAL)(-.544501292892686735299355831692542e-01);
+
+   rkTinvAinv[0][0] = (KPP_REAL)4.487354449794728738538663081025420;
+   rkTinvAinv[0][1] = (KPP_REAL)5.178748573958397475446442544234494;
+   rkTinvAinv[0][2] = (KPP_REAL)1.435609490412123627047824222335563;
+   rkTinvAinv[1][0] = (KPP_REAL)(-2.854361287939276673073807031221493);
+   rkTinvAinv[1][1] = (KPP_REAL)(-1.003648660720543859000994063139137e+01);
+   rkTinvAinv[1][2] = (KPP_REAL)1.789135380979465422050817815017383;
+   rkTinvAinv[2][0] = (KPP_REAL)(-4.160768067752685525282947313530352);
+   rkTinvAinv[2][1] = (KPP_REAL)1.124128569859216916690209918405860;
+   rkTinvAinv[2][2] = (KPP_REAL)1.700644430961823796581896350418417;
+
+   rkAinvT[0][0] = (KPP_REAL)1.543510591072668287198054583233180;
+   rkAinvT[0][1] = (KPP_REAL)(-2.460228411937788329157493833295004);
+   rkAinvT[0][2] = (KPP_REAL)(-.412906170450356277003910443520499);
+   rkAinvT[1][0] = (KPP_REAL).209519643211838264029272585946993;
+   rkAinvT[1][1] = (KPP_REAL)1.388545667194387164417459732995766;
+   rkAinvT[1][2] = (KPP_REAL)1.20339553005832004974976023130002;
+   rkAinvT[2][0] = (KPP_REAL)3.637834252744495732208418513577775;
+   rkAinvT[2][1] = (KPP_REAL)2.681082873627752133895790743211112;
+   rkAinvT[2][2] = (KPP_REAL)(-3.050430199247410569426377624787569);
+} /* Radau1A_Coefficients */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+	The coefficients of the 4-stage Lobatto-3A method
+	(given to ~30 accurate digits)
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void Lobatto3A_Coefficients()
+{
+   /* The coefficients of the Lobatto-3A method */
+   rkMethod = L3A;
+
+   rkA[0][0] = ZERO;
+   rkA[0][1] = ZERO;
+   rkA[0][2] = ZERO;
+   rkA[0][3] = ZERO;
+   rkA[1][0] = (KPP_REAL).11030056647916491413674311390609397;
+   rkA[1][1] = (KPP_REAL).1896994335208350858632568860939060;
+   rkA[1][2] = (KPP_REAL)(-.339073642291438837776604807792215e-01);
+   rkA[1][3] = (KPP_REAL)(.1030056647916491413674311390609397e-01);
+   rkA[2][0] = (KPP_REAL)(.73032766854168419196590219427239365e-01);
+   rkA[2][1] = (KPP_REAL).4505740308958105504443271474458881;
+   rkA[2][2] = (KPP_REAL).2269672331458315808034097805727606;
+   rkA[2][3] = (KPP_REAL)(-.2696723314583158080340978057276063e-01);
+   rkA[3][0] = (KPP_REAL)(.83333333333333333333333333333333333e-01);
+   rkA[3][1] = (KPP_REAL).4166666666666666666666666666666667;
+   rkA[3][2] = (KPP_REAL).4166666666666666666666666666666667;
+   rkA[3][3] = (KPP_REAL)(.8333333333333333333333333333333333e-01);
+
+   rkB[0] = (KPP_REAL)(.83333333333333333333333333333333333e-01);
+   rkB[1] = (KPP_REAL).4166666666666666666666666666666667;
+   rkB[2] = (KPP_REAL).4166666666666666666666666666666667;
+   rkB[3] = (KPP_REAL)(.8333333333333333333333333333333333e-01);
+
+   rkC[0] = ZERO;
+   rkC[1] = (KPP_REAL).2763932022500210303590826331268724;
+   rkC[2] = (KPP_REAL).7236067977499789696409173668731276;
+   rkC[3] = ONE;
+
+   /* New solution: H*Sum B_j*f(Z_j) = Sum D_j*Z_j */
+   rkD[0] = ZERO;
+   rkD[1] = ZERO;
+   rkD[2] = ZERO;
+   rkD[3] = ONE;
+
+   /* Classical error estimator, embedded solution: */
+   rkBhat[0] = (KPP_REAL)(.90909090909090909090909090909090909e-01);
+   rkBhat[1] = (KPP_REAL).39972675774621371442114262372173276;
+   rkBhat[2] = (KPP_REAL).43360657558711961891219070961160058;
+   rkBhat[3] = (KPP_REAL)(.15151515151515151515151515151515152e-01);
+
+   /* Classical error estimator: */
+   /* H* Sum (B_j-Bhat_j)*f(Z_j) = H*E(0)*f(0) + Sum E_j*Z_j */
+
+   rkE[0] = (KPP_REAL)(.1957403846510110711315759367097231e-01);
+   rkE[1] = (KPP_REAL)(-.1986820345632580910316020806676438);
+   rkE[2] = (KPP_REAL).1660586371214229125096727578826900;
+   rkE[3] = (KPP_REAL)(-.9787019232550553556578796835486154e-01);
+
+   /* Sdirk error estimator: */
+   rkF[0] = ZERO;
+   rkF[1] = (KPP_REAL)(-.66535815876916686607437314126436349);
+   rkF[2] = (KPP_REAL)1.7419302743497277572980407931678409;
+   rkF[3] = (KPP_REAL)(-1.2918865386966730694684011822841728);
+
+   /* ELO = local order of classical error estimator */
+   rkELO = (KPP_REAL)4.0;
+
+   /* Sdirk error estimator: */
+   rkBgam[0] = (KPP_REAL)(.2950472755430528877214995073815946e-01);
+   rkBgam[1] = (KPP_REAL).5370310883226113978352873633882769;
+   rkBgam[2] = (KPP_REAL).2963022450107219354980459699450564;
+   rkBgam[3] = (KPP_REAL)(-.7815248400375080035021681445218837e-01);
+   rkBgam[4] = (KPP_REAL).2153144231161121782447335303806956;
+
+   /* H* Sum Bgam_j*f(Z_j) = H*Bgam(0)*f(0) + Sum Theta_j*Z_j */
+   rkTheta[0] = (KPP_REAL)0.0;
+   rkTheta[1] = (KPP_REAL)(-.6653581587691668660743731412643631);
+   rkTheta[2] = (KPP_REAL)1.741930274349727757298040793167842;
+   rkTheta[3] = (KPP_REAL)(-.291886538696673069468401182284174);
+
+
+   /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   ~~~> Diagonalize the RK matrix:
+    rkTinv * inv(rkA) * rkT =
+              |  rkGamma      0           0     |
+              |      0      rkAlpha   -rkBeta   |
+              |      0      rkBeta     rkAlpha  |
+   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+   rkGamma = (KPP_REAL)4.644370709252171185822941421408063;
+   rkAlpha = (KPP_REAL)3.677814645373914407088529289295968;
+   rkBeta  = (KPP_REAL)3.508761919567443321903661209182446;
+
+   rkT[0][0] = (KPP_REAL)(.5303036326129938105898786144870856e-01);
+   rkT[0][1] = (KPP_REAL)(-.7776129960563076320631956091016914e-01);
+   rkT[0][2] = (KPP_REAL)(.6043307469475508514468017399717112e-02);
+   rkT[1][0] = (KPP_REAL).2637242522173698467283726114649606;
+   rkT[1][1] = (KPP_REAL).2193839918662961493126393244533346;
+   rkT[1][2] = (KPP_REAL).3198765142300936188514264752235344;
+   rkT[2][0] = ONE;
+   rkT[2][1] = ZERO;
+   rkT[2][2] = ZERO;
+
+   rkTinv[0][0] = (KPP_REAL)7.695032983257654470769069079238553;
+   rkTinv[0][1] = (KPP_REAL)(-.1453793830957233720334601186354032);
+   rkTinv[0][2] = (KPP_REAL).6302696746849084900422461036874826;
+   rkTinv[1][0] = (KPP_REAL)(-7.695032983257654470769069079238553);
+   rkTinv[1][1] = (KPP_REAL).1453793830957233720334601186354032;
+   rkTinv[1][2] = (KPP_REAL).3697303253150915099577538963125174;
+   rkTinv[2][0] = (KPP_REAL)(-1.066660885401270392058552736086173);
+   rkTinv[2][1] = (KPP_REAL)3.146358406832537460764521760668932;
+   rkTinv[2][2] = (KPP_REAL)(-.7732056038202974770406168510664738);
+
+   rkTinvAinv[0][0] = (KPP_REAL)35.73858579417120341641749040405149;
+   rkTinvAinv[0][1] = (KPP_REAL)(-.675195748578927863668368190236025);
+   rkTinvAinv[0][2] = (KPP_REAL)2.927206016036483646751158874041632;
+   rkTinvAinv[1][0] = (KPP_REAL)(-24.55824590667225493437162206039511);
+   rkTinvAinv[1][1] = (KPP_REAL)(-10.50514413892002061837750015342036);
+   rkTinvAinv[1][2] = (KPP_REAL)4.072793983963516353248841125958369;
+   rkTinvAinv[2][0] = (KPP_REAL)(-30.92301972744621647251975054630589);
+   rkTinvAinv[2][1] = (KPP_REAL)12.08182467154052413351908559269928;
+   rkTinvAinv[2][2] = (KPP_REAL)(-1.546411207640594954081233702132946);
+
+   rkAinvT[0][0] = (KPP_REAL).2462926658317812882584158369803835;
+   rkAinvT[0][1] = (KPP_REAL)(-.2647871194157644619747121197289574);
+   rkAinvT[0][2] = (KPP_REAL).2950720515900466654896406799284586;
+   rkAinvT[1][0] = (KPP_REAL)1.224833192317784474576995878738004;
+   rkAinvT[1][1] = (KPP_REAL)1.929224190340981580557006261869763;
+   rkAinvT[1][2] = (KPP_REAL).4066803323234419988910915619080306;
+   rkAinvT[2][0] = (KPP_REAL)4.644370709252171185822941421408064;
+   rkAinvT[2][1] = (KPP_REAL)3.677814645373914407088529289295968;
+   rkAinvT[2][2] = (KPP_REAL)(-3.508761919567443321903661209182446);
+} /* Lobatto3A_Coefficients */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+	END SUBROUTINE RungeKutta ! and all its internal procedures
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void FUN_CHEM(KPP_REAL T, KPP_REAL V[], KPP_REAL FCT[])
+{
+   KPP_REAL Told;
+
+   Told = TIME;
+   TIME = T;
+   Update_SUN();
+   Update_RCONST();
+   Update_PHOTO();
+   TIME = Told;
+
+   Fun(V, FIX, RCONST, FCT);
+
+} /* FUN_CHEM */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void JAC_CHEM (KPP_REAL T, KPP_REAL V[], KPP_REAL JF[])
+{
+   KPP_REAL Told;
+
+   Told = TIME;
+   TIME = T;
+   Update_SUN();
+   Update_RCONST();
+   Update_PHOTO();
+   TIME = Told;
+   Jac_SP(V, FIX, RCONST, JF);
+} /* JAC_CHEM */
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/runge_kutta.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/runge_kutta.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/runge_kutta.def	(revision 2696)
@@ -0,0 +1,8 @@
+ 
+#FUNCTION AGGREGATE
+#JACOBIAN SPARSE_LU_ROW
+
+#DOUBLE ON 
+#INTFILE runge_kutta
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/runge_kutta.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/runge_kutta.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/runge_kutta.f90	(revision 2696)
@@ -0,0 +1,1891 @@
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
+!  RungeKutta - Fully Implicit 3-stage Runge-Kutta methods based on:      !
+!          * Radau-2A   quadrature (order 5)                              !
+!          * Radau-1A   quadrature (order 5)                              !
+!          * Lobatto-3C quadrature (order 4)                              !
+!          * Gauss      quadrature (order 6)                              !
+!  By default the code employs the KPP sparse linear algebra routines     !
+!  Compile with -DFULL_ALGEBRA to use full linear algebra (LAPACK)        !
+!                                                                         !
+!    (C)  Adrian Sandu, August 2005                                       !
+!    Virginia Polytechnic Institute and State University                  !
+!    Contact: sandu@cs.vt.edu                                             !
+!    Revised by Philipp Miehe and Adrian Sandu, May 2006                  !
+!    This implementation is part of KPP - the Kinetic PreProcessor        !
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
+
+MODULE KPP_ROOT_Integrator
+
+  USE KPP_ROOT_Precision
+  USE KPP_ROOT_Parameters, ONLY: NVAR, NSPEC, NFIX, LU_NONZERO
+  USE KPP_ROOT_Global, ONLY: FIX, RCONST, TIME
+  USE KPP_ROOT_Jacobian,   ONLY: LU_DIAG
+  USE KPP_ROOT_LinearAlgebra
+
+  IMPLICIT NONE
+  PUBLIC
+  SAVE
+
+!~~~>  Statistics on the work performed by the Runge-Kutta method
+  INTEGER, PARAMETER :: Nfun=1, Njac=2, Nstp=3, Nacc=4, &
+    Nrej=5, Ndec=6, Nsol=7, Nsng=8, Ntexit=1, Nhacc=2, Nhnew=3
+  
+CONTAINS
+
+  ! **************************************************************************
+
+  SUBROUTINE INTEGRATE( TIN, TOUT, &
+    ICNTRL_U, RCNTRL_U, ISTATUS_U, RSTATUS_U, IERR_U )
+
+    USE KPP_ROOT_Parameters, ONLY: NVAR
+    USE KPP_ROOT_Global,     ONLY: ATOL,RTOL,VAR
+
+    IMPLICIT NONE
+
+    KPP_REAL :: TIN  ! TIN - Start Time
+    KPP_REAL :: TOUT ! TOUT - End Time
+    INTEGER,       INTENT(IN),  OPTIONAL :: ICNTRL_U(20)
+    KPP_REAL, INTENT(IN),  OPTIONAL :: RCNTRL_U(20)
+    INTEGER,       INTENT(OUT), OPTIONAL :: ISTATUS_U(20)
+    KPP_REAL, INTENT(OUT), OPTIONAL :: RSTATUS_U(20)
+    INTEGER,       INTENT(OUT), OPTIONAL :: IERR_U
+
+    INTEGER :: IERR
+
+    KPP_REAL :: RCNTRL(20), RSTATUS(20), T1, T2
+    INTEGER :: ICNTRL(20), ISTATUS(20)
+    INTEGER, SAVE :: Ntotal = 0
+
+    RCNTRL(1:20) = 0.0_dp
+    ICNTRL(1:20) = 0
+
+    !~~~> fine-tune the integrator:
+    ICNTRL(2)  = 0   ! 0=vector tolerances, 1=scalar tolerances
+    ICNTRL(5)  = 8   ! Max no. of Newton iterations
+    ICNTRL(6)  = 0   ! Starting values for Newton are interpolated (0) or zero (1)
+    ICNTRL(10) = 1   ! 0 - classic or 1 - SDIRK error estimation
+    ICNTRL(11) = 0   ! Gustaffson (0) or classic(1) controller
+
+    !~~~> if optional parameters are given, and if they are >0,
+    !     then use them to overwrite default settings
+    IF (PRESENT(ICNTRL_U)) THEN
+      WHERE(ICNTRL_U(:) > 0) ICNTRL(:) = ICNTRL_U(:)
+    END IF
+    IF (PRESENT(RCNTRL_U)) THEN
+      WHERE(RCNTRL_U(:) > 0) RCNTRL(:) = RCNTRL_U(:)
+    END IF
+
+    
+    T1 = TIN; T2 = TOUT
+    CALL RungeKutta(  NVAR, T1, T2, VAR, RTOL, ATOL, &
+                      RCNTRL,ICNTRL,RSTATUS,ISTATUS,IERR  )
+
+    Ntotal = Ntotal + ISTATUS(Nstp)
+    PRINT*,'NSTEPS=',ISTATUS(Nstp),' (',Ntotal,')','  O3=', VAR(ind_O3)
+
+    ! if optional parameters are given for output
+    ! use them to store information in them
+    IF (PRESENT(ISTATUS_U)) ISTATUS_U(:) = ISTATUS(:)
+    IF (PRESENT(RSTATUS_U)) RSTATUS_U(:) = RSTATUS(:)
+    IF (PRESENT(IERR_U)) IERR_U = IERR
+
+    IF (IERR < 0) THEN
+      PRINT *,'Runge-Kutta: Unsuccessful exit at T=', TIN,' (IERR=',IERR,')'
+    ENDIF
+
+  END SUBROUTINE INTEGRATE
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE RungeKutta( N,T,Tend,Y,RelTol,AbsTol,    &
+                         RCNTRL,ICNTRL,RSTATUS,ISTATUS,IERR )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!  This implementation is based on the book and the code Radau5:
+!
+!         E. HAIRER AND G. WANNER
+!         "SOLVING ORDINARY DIFFERENTIAL EQUATIONS II. 
+!              STIFF AND DIFFERENTIAL-ALGEBRAIC PROBLEMS."
+!         SPRINGER SERIES IN COMPUTATIONAL MATHEMATICS 14,
+!         SPRINGER-VERLAG (1991)
+!
+!         UNIVERSITE DE GENEVE, DEPT. DE MATHEMATIQUES
+!         CH-1211 GENEVE 24, SWITZERLAND
+!         E-MAIL:  HAIRER@DIVSUN.UNIGE.CH,  WANNER@DIVSUN.UNIGE.CH
+!
+!   Methods:
+!          * Radau-2A   quadrature (order 5)                              
+!          * Radau-1A   quadrature (order 5)                              
+!          * Lobatto-3C quadrature (order 4)                              
+!          * Gauss      quadrature (order 6)                              
+!                                                                         
+!   (C)  Adrian Sandu, August 2005                                       
+!   Virginia Polytechnic Institute and State University                  
+!   Contact: sandu@cs.vt.edu                                             
+!   Revised by Philipp Miehe and Adrian Sandu, May 2006                  
+!   This implementation is part of KPP - the Kinetic PreProcessor        
+!
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>   INPUT ARGUMENTS:
+!       ----------------
+!
+!    Note: For input parameters equal to zero the default values of the
+!          corresponding variables are used.
+!
+!     N           Dimension of the system
+!     T           Initial time value
+!
+!     Tend        Final T value (Tend-T may be positive or negative)
+!
+!     Y(N)        Initial values for Y
+!
+!     RelTol,AbsTol   Relative and absolute error tolerances. 
+!          for ICNTRL(2) = 0: AbsTol, RelTol are N-dimensional vectors
+!                        = 1: AbsTol, RelTol are scalars
+!
+!~~~>  Integer input parameters:
+!  
+!    ICNTRL(1) = not used
+!
+!    ICNTRL(2) = 0: AbsTol, RelTol are NVAR-dimensional vectors
+!              = 1: AbsTol, RelTol are scalars
+!
+!    ICNTRL(3) = RK method selection       
+!              = 1:  Radau-2A    (the default)
+!              = 2:  Lobatto-3C
+!              = 3:  Gauss
+!              = 4:  Radau-1A
+!	       = 5:  Lobatto-3A (not yet implemented)
+!
+!    ICNTRL(4)  -> maximum number of integration steps
+!        For ICNTRL(4)=0 the default value of 10000 is used
+!
+!    ICNTRL(5)  -> maximum number of Newton iterations
+!        For ICNTRL(5)=0 the default value of 8 is used
+!
+!    ICNTRL(6)  -> starting values of Newton iterations:
+!        ICNTRL(6)=0 : starting values are obtained from 
+!                      the extrapolated collocation solution
+!                      (the default)
+!        ICNTRL(6)=1 : starting values are zero
+!
+!    ICNTRL(10) -> switch for error estimation strategy
+!		ICNTRL(10) = 0: one additional stage at c=0, 
+!				see Hairer (default)
+!		ICNTRL(10) = 1: two additional stages at c=0 
+!				and SDIRK at c=1, stiffly accurate
+!
+!    ICNTRL(11) -> switch for step size strategy
+!              ICNTRL(11)=0:  mod. predictive controller (Gustafsson, default)
+!              ICNTRL(11)=1:  classical step size control
+!              the choice 1 seems to produce safer results;
+!              for simple problems, the choice 2 produces
+!              often slightly faster runs
+!
+!~~~>  Real input parameters:
+!
+!    RCNTRL(1)  -> Hmin, lower bound for the integration step size
+!                  (highly recommended to keep Hmin = ZERO, the default)
+!
+!    RCNTRL(2)  -> Hmax, upper bound for the integration step size
+!
+!    RCNTRL(3)  -> Hstart, the starting step size
+!
+!    RCNTRL(4)  -> FacMin, lower bound on step decrease factor (default=0.2)
+!
+!    RCNTRL(5)  -> FacMax, upper bound on step increase factor (default=6)
+!
+!    RCNTRL(6)  -> FacRej, step decrease factor after multiple rejections
+!                 (default=0.1)
+!
+!    RCNTRL(7)  -> FacSafe, by which the new step is slightly smaller
+!                  than the predicted value  (default=0.9)
+!
+!    RCNTRL(8)  -> ThetaMin. If Newton convergence rate smaller
+!                  than ThetaMin the Jacobian is not recomputed;
+!                  (default=0.001)
+!
+!    RCNTRL(9)  -> NewtonTol, stopping criterion for Newton's method
+!                  (default=0.03)
+!
+!    RCNTRL(10) -> Qmin
+!
+!    RCNTRL(11) -> Qmax. If Qmin < Hnew/Hold < Qmax, then the
+!                  step size is kept constant and the LU factorization
+!                  reused (default Qmin=1, Qmax=1.2)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!
+!    OUTPUT ARGUMENTS:
+!    -----------------
+!
+!    T           -> T value for which the solution has been computed
+!                     (after successful return T=Tend).
+!
+!    Y(N)        -> Numerical solution at T
+!
+!    IERR        -> Reports on successfulness upon return:
+!                    = 1 for success
+!                    < 0 for error (value equals error code)
+!
+!    ISTATUS(1)  -> No. of function calls
+!    ISTATUS(2)  -> No. of Jacobian calls
+!    ISTATUS(3)  -> No. of steps
+!    ISTATUS(4)  -> No. of accepted steps
+!    ISTATUS(5)  -> No. of rejected steps (except at very beginning)
+!    ISTATUS(6)  -> No. of LU decompositions
+!    ISTATUS(7)  -> No. of forward/backward substitutions
+!    ISTATUS(8)  -> No. of singular matrix decompositions
+!
+!    RSTATUS(1)  -> Texit, the time corresponding to the
+!                     computed Y upon return
+!    RSTATUS(2)  -> Hexit, last accepted step before exit
+!    RSTATUS(3)  -> Hnew, last predicted step (not yet taken)
+!                   For multiple restarts, use Hnew as Hstart 
+!                     in the subsequent run
+!
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      IMPLICIT NONE
+      
+      INTEGER :: N
+      KPP_REAL :: Y(N),AbsTol(N),RelTol(N),RCNTRL(20),RSTATUS(20)
+      INTEGER :: ICNTRL(20), ISTATUS(20)
+      LOGICAL :: StartNewton, Gustafsson, SdirkError
+      INTEGER :: IERR, ITOL
+      KPP_REAL :: T,Tend
+
+      !~~~> Control arguments
+      INTEGER :: Max_no_steps, NewtonMaxit, rkMethod
+      KPP_REAL :: Hmin,Hmax,Hstart,Qmin,Qmax
+      KPP_REAL :: Roundoff, ThetaMin, NewtonTol
+      KPP_REAL :: FacSafe,FacMin,FacMax,FacRej
+      ! Runge-Kutta method parameters
+      INTEGER, PARAMETER :: R2A=1, R1A=2, L3C=3, GAU=4, L3A=5
+      KPP_REAL :: rkT(3,3), rkTinv(3,3), rkTinvAinv(3,3), rkAinvT(3,3), &
+                       rkA(0:3,0:3), rkB(0:3),  rkC(0:3), rkD(0:3), rkE(0:3), &
+		       rkBgam(0:4), rkBhat(0:4), rkTheta(0:3), rkF(0:4),      &
+                       rkGamma,  rkAlpha, rkBeta, rkELO
+       !~~~> Local variables
+      INTEGER :: i
+      KPP_REAL, PARAMETER :: ZERO = 0.0d0, ONE = 1.0d0
+   
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!        SETTING THE PARAMETERS
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IERR = 0
+      ISTATUS(1:20) = 0
+      RSTATUS(1:20) = ZERO
+       
+!~~~> ICNTRL(1) - autonomous system - not used       
+!~~~> ITOL: 1 for vector and 0 for scalar AbsTol/RelTol
+      IF (ICNTRL(2) == 0) THEN
+         ITOL = 1
+      ELSE
+         ITOL = 0
+      END IF
+!~~~> Error control selection  
+      IF (ICNTRL(10) == 0) THEN 
+         SdirkError = .FALSE.
+      ELSE
+         SdirkError = .TRUE.
+      END IF      
+!~~~> Method selection  
+      SELECT CASE (ICNTRL(3))     
+      CASE (0,1)
+         CALL Radau2A_Coefficients
+      CASE (2)
+         CALL Lobatto3C_Coefficients
+      CASE (3)
+         CALL Gauss_Coefficients
+      CASE (4)
+         CALL Radau1A_Coefficients
+      CASE (5)
+         CALL Lobatto3A_Coefficients
+      CASE DEFAULT
+         WRITE(6,*) 'ICNTRL(3)=',ICNTRL(3)
+         CALL RK_ErrorMsg(-13,T,ZERO,IERR)
+      END SELECT
+!~~~> Max_no_steps: the maximal number of time steps
+      IF (ICNTRL(4) == 0) THEN
+         Max_no_steps = 200000
+      ELSE
+         Max_no_steps=ICNTRL(4)
+         IF (Max_no_steps <= 0) THEN
+            WRITE(6,*) 'ICNTRL(4)=',ICNTRL(4)
+            CALL RK_ErrorMsg(-1,T,ZERO,IERR)
+         END IF
+      END IF
+!~~~> NewtonMaxit    maximal number of Newton iterations
+      IF (ICNTRL(5) == 0) THEN
+         NewtonMaxit = 8
+      ELSE
+         NewtonMaxit=ICNTRL(5)
+         IF (NewtonMaxit <= 0) THEN
+            WRITE(6,*) 'ICNTRL(5)=',ICNTRL(5)
+            CALL RK_ErrorMsg(-2,T,ZERO,IERR)
+          END IF
+      END IF
+!~~~> StartNewton:  Use extrapolation for starting values of Newton iterations
+      IF (ICNTRL(6) == 0) THEN
+         StartNewton = .TRUE.
+      ELSE
+         StartNewton = .FALSE.
+      END IF      
+!~~~> Gustafsson: step size controller
+      IF(ICNTRL(11) == 0)THEN
+         Gustafsson = .TRUE.
+      ELSE
+         Gustafsson = .FALSE.
+      END IF
+
+!~~~> Roundoff: smallest number s.t. 1.0 + Roundoff > 1.0
+      Roundoff=WLAMCH('E');
+
+!~~~> Hmin = minimal step size
+      IF (RCNTRL(1) == ZERO) THEN
+         Hmin = ZERO
+      ELSE
+         Hmin = MIN(ABS(RCNTRL(1)),ABS(Tend-T))
+      END IF
+!~~~> Hmax = maximal step size
+      IF (RCNTRL(2) == ZERO) THEN
+         Hmax = ABS(Tend-T)
+      ELSE
+         Hmax = MIN(ABS(RCNTRL(2)),ABS(Tend-T))
+      END IF
+!~~~> Hstart = starting step size
+      IF (RCNTRL(3) == ZERO) THEN
+         Hstart = ZERO
+      ELSE
+         Hstart = MIN(ABS(RCNTRL(3)),ABS(Tend-T))
+      END IF
+!~~~> FacMin: lower bound on step decrease factor
+      IF(RCNTRL(4) == ZERO)THEN
+         FacMin = 0.2d0
+      ELSE
+         FacMin = RCNTRL(4)
+      END IF
+!~~~> FacMax: upper bound on step increase factor
+      IF(RCNTRL(5) == ZERO)THEN
+         FacMax = 8.D0
+      ELSE
+         FacMax = RCNTRL(5)
+      END IF
+!~~~> FacRej: step decrease factor after 2 consecutive rejections
+      IF(RCNTRL(6) == ZERO)THEN
+         FacRej = 0.1d0
+      ELSE
+         FacRej = RCNTRL(6)
+      END IF
+!~~~> FacSafe:  by which the new step is slightly smaller
+!               than the predicted value
+      IF (RCNTRL(7) == ZERO) THEN
+         FacSafe=0.9d0
+      ELSE
+         FacSafe=RCNTRL(7)
+      END IF
+      IF ( (FacMax < ONE) .OR. (FacMin > ONE) .OR. &
+           (FacSafe <= 1.0d-3) .OR. (FacSafe >= ONE) ) THEN
+            WRITE(6,*)'RCNTRL(4:7)=',RCNTRL(4:7)
+            CALL RK_ErrorMsg(-4,T,ZERO,IERR)
+      END IF
+
+!~~~> ThetaMin:  decides whether the Jacobian should be recomputed
+      IF (RCNTRL(8) == ZERO) THEN
+         ThetaMin = 1.0d-3
+      ELSE
+         ThetaMin=RCNTRL(8)
+         IF (ThetaMin <= 0.0d0 .OR. ThetaMin >= 1.0d0) THEN
+            WRITE(6,*) 'RCNTRL(8)=', RCNTRL(8)
+            CALL RK_ErrorMsg(-5,T,ZERO,IERR)
+         END IF
+      END IF
+!~~~> NewtonTol:  stopping crierion for Newton's method
+      IF (RCNTRL(9) == ZERO) THEN
+         NewtonTol = 3.0d-2
+      ELSE
+         NewtonTol = RCNTRL(9)
+         IF (NewtonTol <= Roundoff) THEN
+            WRITE(6,*) 'RCNTRL(9)=',RCNTRL(9)
+            CALL RK_ErrorMsg(-6,T,ZERO,IERR)
+         END IF
+      END IF
+!~~~> Qmin AND Qmax: IF Qmin < Hnew/Hold < Qmax then step size = const.
+      IF (RCNTRL(10) == ZERO) THEN
+         Qmin=1.D0
+      ELSE
+         Qmin=RCNTRL(10)
+      END IF
+      IF (RCNTRL(11) == ZERO) THEN
+         Qmax=1.2D0
+      ELSE
+         Qmax=RCNTRL(11)
+      END IF
+      IF (Qmin > ONE .OR. Qmax < ONE) THEN
+         WRITE(6,*) 'RCNTRL(10:11)=',Qmin,Qmax
+         CALL RK_ErrorMsg(-7,T,ZERO,IERR)
+      END IF
+!~~~> Check if tolerances are reasonable
+      IF (ITOL == 0) THEN
+          IF (AbsTol(1) <= ZERO.OR.RelTol(1) <= 10.d0*Roundoff) THEN
+              WRITE (6,*) 'AbsTol/RelTol=',AbsTol,RelTol 
+              CALL RK_ErrorMsg(-8,T,ZERO,IERR)
+          END IF
+      ELSE
+          DO i=1,N
+          IF (AbsTol(i) <= ZERO.OR.RelTol(i) <= 10.d0*Roundoff) THEN
+              WRITE (6,*) 'AbsTol/RelTol(',i,')=',AbsTol(i),RelTol(i)
+              CALL RK_ErrorMsg(-8,T,ZERO,IERR)
+          END IF
+          END DO
+      END IF
+
+!~~~> Parameters are wrong
+      IF (IERR < 0) RETURN
+
+!~~~> Call the core method
+      CALL RK_Integrator( N,T,Tend,Y,IERR )
+
+   CONTAINS ! Internal procedures to RungeKutta
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE RK_Integrator( N,T,Tend,Y,IERR )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      IMPLICIT NONE
+!~~~> Arguments
+      INTEGER,  INTENT(IN)         :: N
+      KPP_REAL, INTENT(IN)    :: Tend
+      KPP_REAL, INTENT(INOUT) :: T, Y(NVAR)
+      INTEGER,  INTENT(OUT)        :: IERR
+
+!~~~> Local variables
+#ifdef FULL_ALGEBRA
+      KPP_REAL    :: FJAC(NVAR,NVAR), E1(NVAR,NVAR)
+      COMPLEX(kind=dp) :: E2(NVAR,NVAR)   
+#else
+      KPP_REAL    :: FJAC(LU_NONZERO), E1(LU_NONZERO)
+      COMPLEX(kind=dp) :: E2(LU_NONZERO)   
+#endif                
+      KPP_REAL, DIMENSION(NVAR) :: Z1,Z2,Z3,Z4,SCAL,DZ1,DZ2,DZ3,DZ4, &
+      				G,TMP,F0
+      KPP_REAL  :: CONT(NVAR,3), Tdirection,  H, Hacc, Hnew, Hold, Fac, &
+                 FacGus, Theta, Err, ErrOld, NewtonRate, NewtonIncrement,    &
+                 Hratio, Qnewton, NewtonPredictedErr,NewtonIncrementOld, ThetaSD
+      INTEGER :: IP1(NVAR),IP2(NVAR),NewtonIter, ISING, Nconsecutive
+      LOGICAL :: Reject, FirstStep, SkipJac, NewtonDone, SkipLU
+      
+            
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Initial setting
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      Tdirection = SIGN(ONE,Tend-T)
+      H = MIN( MAX(ABS(Hmin),ABS(Hstart)) , Hmax )
+      IF (ABS(H) <= 10.d0*Roundoff) H = 1.0d-6
+      H = SIGN(H,Tdirection)
+      Hold      = H
+      Reject    = .FALSE.
+      FirstStep = .TRUE.
+      SkipJac   = .FALSE.
+      SkipLU    = .FALSE.
+      IF ((T+H*1.0001D0-Tend)*Tdirection >= ZERO) THEN
+         H = Tend-T
+      END IF
+      Nconsecutive = 0
+      CALL RK_ErrorScale(N,ITOL,AbsTol,RelTol,Y,SCAL)
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Time loop begins
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Tloop: DO WHILE ( (Tend-T)*Tdirection - Roundoff > ZERO )
+
+      !IF ( .NOT.Reject ) THEN      
+         CALL FUN_CHEM(T,Y,F0)
+         ISTATUS(Nfun) = ISTATUS(Nfun) + 1
+      !END IF   
+
+      IF ( .NOT.SkipLU ) THEN ! This time around skip the Jac update and LU
+        !~~~> Compute the Jacobian matrix
+        IF ( .NOT.SkipJac ) THEN
+          CALL JAC_CHEM(T,Y,FJAC)
+          ISTATUS(Njac) = ISTATUS(Njac) + 1
+        END IF
+        !~~~> Compute the matrices E1 and E2 and their decompositions
+        CALL RK_Decomp(N,H,FJAC,E1,IP1,E2,IP2,ISING)
+        IF (ISING /= 0) THEN
+          ISTATUS(Nsng) = ISTATUS(Nsng) + 1; Nconsecutive = Nconsecutive + 1
+          IF (Nconsecutive >= 5) THEN
+            CALL RK_ErrorMsg(-12,T,H,IERR); RETURN
+          END IF
+          H=H*0.5d0; Reject=.TRUE.; SkipJac = .TRUE.;  SkipLU = .FALSE.
+          CYCLE Tloop
+        ELSE
+          Nconsecutive = 0    
+        END IF   
+      END IF ! SkipLU
+   
+      ISTATUS(Nstp) = ISTATUS(Nstp) + 1
+      IF (ISTATUS(Nstp) > Max_no_steps) THEN
+        PRINT*,'Max number of time steps is ',Max_no_steps
+        CALL RK_ErrorMsg(-9,T,H,IERR); RETURN
+      END IF
+      IF (0.1D0*ABS(H) <= ABS(T)*Roundoff)  THEN
+        CALL RK_ErrorMsg(-10,T,H,IERR); RETURN
+      END IF
+      
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Loop for the simplified Newton iterations
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+            
+      !~~~>  Starting values for Newton iteration
+      IF ( FirstStep .OR. (.NOT.StartNewton) ) THEN
+         CALL Set2zero(N,Z1)
+         CALL Set2zero(N,Z2)
+         CALL Set2zero(N,Z3)
+      ELSE
+         ! Evaluate quadratic polynomial
+         CALL RK_Interpolate('eval',N,H,Hold,Z1,Z2,Z3,CONT)
+      END IF
+      
+      !~~~>  Initializations for Newton iteration
+      NewtonDone = .FALSE.
+      Fac = 0.5d0 ! Step reduction if too many iterations
+      
+NewtonLoop:DO  NewtonIter = 1, NewtonMaxit
+ 
+            !~~~> Prepare the right-hand side
+            CALL RK_PrepareRHS(N,T,H,Y,F0,Z1,Z2,Z3,DZ1,DZ2,DZ3)
+            
+            !~~~> Solve the linear systems
+            CALL RK_Solve( N,H,E1,IP1,E2,IP2,DZ1,DZ2,DZ3,ISING )
+            
+            NewtonIncrement = SQRT( ( RK_ErrorNorm(N,SCAL,DZ1)**2 + &
+                                RK_ErrorNorm(N,SCAL,DZ2)**2 + &
+                                RK_ErrorNorm(N,SCAL,DZ3)**2 )/3.0d0 )
+            
+            IF ( NewtonIter == 1 ) THEN
+                Theta      = ABS(ThetaMin)
+                NewtonRate = 2.0d0 
+            ELSE
+                Theta = NewtonIncrement/NewtonIncrementOld
+                IF (Theta < 0.99d0) THEN
+                    NewtonRate = Theta/(ONE-Theta)
+                ELSE ! Non-convergence of Newton: Theta too large
+                    EXIT NewtonLoop
+                END IF
+                IF ( NewtonIter < NewtonMaxit ) THEN 
+                  ! Predict error at the end of Newton process 
+                  NewtonPredictedErr = NewtonIncrement &
+                               *Theta**(NewtonMaxit-NewtonIter)/(ONE-Theta)
+                  IF (NewtonPredictedErr >= NewtonTol) THEN
+                    ! Non-convergence of Newton: predicted error too large
+                    Qnewton = MIN(10.0d0,NewtonPredictedErr/NewtonTol)
+                    Fac=0.8d0*Qnewton**(-ONE/(1+NewtonMaxit-NewtonIter))
+                    EXIT NewtonLoop
+                  END IF
+                END IF
+            END IF
+
+            NewtonIncrementOld = MAX(NewtonIncrement,Roundoff) 
+            ! Update solution
+            CALL WAXPY(N,-ONE,DZ1,1,Z1,1) ! Z1 <- Z1 - DZ1
+            CALL WAXPY(N,-ONE,DZ2,1,Z2,1) ! Z2 <- Z2 - DZ2
+            CALL WAXPY(N,-ONE,DZ3,1,Z3,1) ! Z3 <- Z3 - DZ3
+            
+            ! Check error in Newton iterations
+            NewtonDone = (NewtonRate*NewtonIncrement <= NewtonTol)
+            IF (NewtonDone) EXIT NewtonLoop
+   	    IF (NewtonIter == NewtonMaxit) THEN
+		PRINT*, 'Slow or no convergence in Newton Iteration: Max no. of', &
+		 	'Newton iterations reached'
+	    END IF
+            
+      END DO NewtonLoop
+            
+      IF (.NOT.NewtonDone) THEN
+           !CALL RK_ErrorMsg(-12,T,H,IERR);
+           H = Fac*H; Reject=.TRUE.; SkipJac = .TRUE.;  SkipLU = .FALSE.
+           CYCLE Tloop
+      END IF
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> SDIRK Stage
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IF (SdirkError) THEN
+
+!~~~>  Starting values for Newton iterations
+       Z4(1:N) = Z3(1:N)
+       
+!~~~>   Prepare the loop-independent part of the right-hand side
+!       G = H*rkBgam(0)*F0 + rkTheta(1)*Z1 + rkTheta(2)*Z2 + rkTheta(3)*Z3
+       CALL Set2Zero(N, G)
+       IF (rkMethod/=L3A) CALL WAXPY(N,rkBgam(0)*H, F0,1,G,1) 
+       CALL WAXPY(N,rkTheta(1),Z1,1,G,1)
+       CALL WAXPY(N,rkTheta(2),Z2,1,G,1)
+       CALL WAXPY(N,rkTheta(3),Z3,1,G,1)
+
+       !~~~>  Initializations for Newton iteration
+       NewtonDone = .FALSE.
+       Fac = 0.5d0 ! Step reduction factor if too many iterations
+            
+SDNewtonLoop:DO NewtonIter = 1, NewtonMaxit
+
+!~~~>   Prepare the loop-dependent part of the right-hand side
+	    CALL WADD(N,Y,Z4,TMP)         ! TMP <- Y + Z4
+	    CALL FUN_CHEM(T+H,TMP,DZ4) 	  ! DZ4 <- Fun(Y+Z4)         
+            ISTATUS(Nfun) = ISTATUS(Nfun) + 1
+!            DZ4(1:N) = (G(1:N)-Z4(1:N))*(rkGamma/H) + DZ4(1:N)
+	    CALL WAXPY (N, -ONE*rkGamma/H, Z4, 1, DZ4, 1)
+            CALL WAXPY (N, rkGamma/H, G,1, DZ4,1)
+
+!~~~>   Solve the linear system
+#ifdef FULL_ALGEBRA  
+            CALL DGETRS( 'N', N, 1, E1, N, IP1, DZ4, N, ISING )
+#else
+            CALL KppSolve(E1, DZ4)
+#endif
+            
+!~~~>   Check convergence of Newton iterations
+            NewtonIncrement = RK_ErrorNorm(N,SCAL,DZ4)
+            IF ( NewtonIter == 1 ) THEN
+                ThetaSD      = ABS(ThetaMin)
+                NewtonRate = 2.0d0 
+            ELSE
+                ThetaSD = NewtonIncrement/NewtonIncrementOld
+                IF (ThetaSD < 0.99d0) THEN
+                    NewtonRate = ThetaSD/(ONE-ThetaSD)
+                    ! Predict error at the end of Newton process 
+                    NewtonPredictedErr = NewtonIncrement &
+                               *ThetaSD**(NewtonMaxit-NewtonIter)/(ONE-ThetaSD)
+                    IF (NewtonPredictedErr >= NewtonTol) THEN
+                      ! Non-convergence of Newton: predicted error too large
+                      !PRINT*,'Error too large: ', NewtonPredictedErr
+                      Qnewton = MIN(10.0d0,NewtonPredictedErr/NewtonTol)
+                      Fac = 0.8d0*Qnewton**(-ONE/(1+NewtonMaxit-NewtonIter))
+                      EXIT SDNewtonLoop
+                    END IF
+                ELSE ! Non-convergence of Newton: Theta too large
+                    !PRINT*,'Theta too large: ',ThetaSD
+                    EXIT SDNewtonLoop
+                END IF
+            END IF
+            NewtonIncrementOld = NewtonIncrement
+            ! Update solution: Z4 <-- Z4 + DZ4
+            CALL WAXPY(N,ONE,DZ4,1,Z4,1) 
+            
+            ! Check error in Newton iterations
+            NewtonDone = (NewtonRate*NewtonIncrement <= NewtonTol)
+            IF (NewtonDone) EXIT SDNewtonLoop
+            
+            END DO SDNewtonLoop
+            
+            IF (.NOT.NewtonDone) THEN
+                H = Fac*H; Reject=.TRUE.; SkipJac = .TRUE.;  SkipLU = .FALSE.
+                CYCLE Tloop
+            END IF
+      END IF
+!~~~>  End of implified SDIRK Newton iterations
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> Error estimation
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IF (SdirkError) THEN
+	 CALL Set2Zero(N, DZ4)
+         IF (rkMethod==L3A) THEN
+           DZ4(1:N) = H*rkF(0)*F0(1:N)
+	   IF (rkF(1) /= ZERO)  CALL WAXPY(N, rkF(1), Z1, 1, DZ4, 1)
+	   IF (rkF(2) /= ZERO)  CALL WAXPY(N, rkF(2), Z2, 1, DZ4, 1)
+	   IF (rkF(3) /= ZERO)  CALL WAXPY(N, rkF(3), Z3, 1, DZ4, 1)
+           TMP = Y + Z4
+           CALL FUN_CHEM(T+H,TMP,DZ1)
+ 	   CALL WAXPY(N, H*rkBgam(4), DZ1, 1, DZ4, 1)
+         ELSE
+!         DZ4(1:N) =  rkD(1)*Z1 + rkD(2)*Z2 + rkD(3)*Z3 - Z4    
+  	   IF (rkD(1) /= ZERO)  CALL WAXPY(N, rkD(1), Z1, 1, DZ4, 1)
+	   IF (rkD(2) /= ZERO)  CALL WAXPY(N, rkD(2), Z2, 1, DZ4, 1)
+	   IF (rkD(3) /= ZERO)  CALL WAXPY(N, rkD(3), Z3, 1, DZ4, 1)
+	   CALL WAXPY(N, -ONE, Z4, 1, DZ4, 1)
+         END IF
+         Err = RK_ErrorNorm(N,SCAL,DZ4)    
+      ELSE
+         CALL  RK_ErrorEstimate(N,H,T,Y,F0, &
+               E1,IP1,Z1,Z2,Z3,SCAL,Err,FirstStep,Reject)
+      END IF
+
+!~~~> Computation of new step size Hnew
+      Fac  = Err**(-ONE/rkELO)*   &
+             MIN(FacSafe,(ONE+2*NewtonMaxit)/(NewtonIter+2*NewtonMaxit))
+      Fac  = MIN(FacMax,MAX(FacMin,Fac))
+      Hnew = Fac*H
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> Accept/reject step 
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+accept:IF (Err < ONE) THEN !~~~> STEP IS ACCEPTED
+         FirstStep=.FALSE.
+         ISTATUS(Nacc) = ISTATUS(Nacc) + 1
+         IF (Gustafsson) THEN
+            !~~~> Predictive controller of Gustafsson
+            IF (ISTATUS(Nacc) > 1) THEN
+               FacGus=FacSafe*(H/Hacc)*(Err**2/ErrOld)**(-0.25d0)
+               FacGus=MIN(FacMax,MAX(FacMin,FacGus))
+               Fac=MIN(Fac,FacGus)
+               Hnew = Fac*H
+            END IF
+            Hacc=H
+            ErrOld=MAX(1.0d-2,Err)
+         END IF
+         Hold = H
+         T = T+H 
+         ! Update solution: Y <- Y + sum(d_i Z_i)
+         IF (rkD(1) /= ZERO)  CALL WAXPY(N,rkD(1),Z1,1,Y,1)
+         IF (rkD(2) /= ZERO)  CALL WAXPY(N,rkD(2),Z2,1,Y,1)
+         IF (rkD(3) /= ZERO)  CALL WAXPY(N,rkD(3),Z3,1,Y,1)
+         ! Construct the solution quadratic interpolant Q(c_i) = Z_i, i=1:3
+         IF (StartNewton) CALL RK_Interpolate('make',N,H,Hold,Z1,Z2,Z3,CONT)
+         CALL RK_ErrorScale(N,ITOL,AbsTol,RelTol,Y,SCAL)
+         RSTATUS(Ntexit) = T
+         RSTATUS(Nhnew)  = Hnew
+         RSTATUS(Nhacc)  = H
+         Hnew = Tdirection*MIN( MAX(ABS(Hnew),Hmin) , Hmax )
+         IF (Reject) Hnew = Tdirection*MIN(ABS(Hnew),ABS(H))
+         Reject = .FALSE.
+         IF ((T+Hnew/Qmin-Tend)*Tdirection >=  ZERO) THEN
+            H = Tend-T
+         ELSE
+            Hratio=Hnew/H
+            ! Reuse the LU decomposition
+            SkipLU = (Theta<=ThetaMin) .AND. (Hratio>=Qmin) .AND. (Hratio<=Qmax)
+            IF (.NOT.SkipLU) H=Hnew
+         END IF
+         ! If convergence is fast enough, do not update Jacobian
+!         SkipJac = (Theta <= ThetaMin)
+         SkipJac  = .FALSE.
+
+      ELSE accept !~~~> Step is rejected
+         IF (FirstStep .OR. Reject) THEN
+             H = FacRej*H
+         ELSE
+             H = Hnew
+         END IF
+         Reject   = .TRUE.
+         SkipJac  = .TRUE.	! Skip if rejected - Jac is independent of H
+         SkipLU   = .FALSE. 
+         IF (ISTATUS(Nacc) >= 1) ISTATUS(Nrej) = ISTATUS(Nrej) + 1
+      END IF accept
+      
+    END DO Tloop
+    
+    ! Successful exit
+    IERR = 1  
+
+ END SUBROUTINE RK_Integrator
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE RK_ErrorMsg(Code,T,H,IERR)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!    Handles all error messages
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+   IMPLICIT NONE
+   KPP_REAL, INTENT(IN) :: T, H
+   INTEGER, INTENT(IN)  :: Code
+   INTEGER, INTENT(OUT) :: IERR
+
+   IERR = Code
+   PRINT * , &
+     'Forced exit from RungeKutta due to the following error:'
+
+
+   SELECT CASE (Code)
+    CASE (-1)
+      PRINT * , '--> Improper value for maximal no of steps'
+    CASE (-2)
+      PRINT * , '--> Improper value for maximal no of Newton iterations'
+    CASE (-3)
+      PRINT * , '--> Hmin/Hmax/Hstart must be positive'
+    CASE (-4)
+      PRINT * , '--> Improper values for FacMin/FacMax/FacSafe/FacRej'
+    CASE (-5)
+      PRINT * , '--> Improper value for ThetaMin'
+    CASE (-6)
+      PRINT * , '--> Newton stopping tolerance too small'
+    CASE (-7)
+      PRINT * , '--> Improper values for Qmin, Qmax'
+    CASE (-8)
+      PRINT * , '--> Tolerances are too small'
+    CASE (-9)
+      PRINT * , '--> No of steps exceeds maximum bound'
+    CASE (-10)
+      PRINT * , '--> Step size too small: T + 10*H = T', &
+            ' or H < Roundoff'
+    CASE (-11)
+      PRINT * , '--> Matrix is repeatedly singular'
+    CASE (-12)
+      PRINT * , '--> Non-convergence of Newton iterations'
+    CASE (-13)
+      PRINT * , '--> Requested RK method not implemented'
+    CASE DEFAULT
+      PRINT *, 'Unknown Error code: ', Code
+   END SELECT
+
+   WRITE(6,FMT="(5X,'T=',E12.5,'  H=',E12.5)") T, H 
+
+ END SUBROUTINE RK_ErrorMsg
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE RK_ErrorScale(N,ITOL,AbsTol,RelTol,Y,SCAL)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!    Handles all error messages
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   IMPLICIT NONE
+   INTEGER, INTENT(IN)  :: N, ITOL
+   KPP_REAL, INTENT(IN) :: AbsTol(*), RelTol(*), Y(N)
+   KPP_REAL, INTENT(OUT) :: SCAL(N)
+   INTEGER :: i
+   
+   IF (ITOL==0) THEN
+       DO i=1,N
+          SCAL(i)= ONE/(AbsTol(1)+RelTol(1)*ABS(Y(i)))
+       END DO
+   ELSE
+       DO i=1,N
+          SCAL(i)=ONE/(AbsTol(i)+RelTol(i)*ABS(Y(i)))
+       END DO
+   END IF
+      
+ END SUBROUTINE RK_ErrorScale
+
+
+!!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!  SUBROUTINE RK_Transform(N,Tr,Z1,Z2,Z3,W1,W2,W3)
+!!~~~>                 W <-- Tr x Z
+!!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!      IMPLICIT NONE
+!      INTEGER :: N, i
+!      KPP_REAL :: Tr(3,3),Z1(N),Z2(N),Z3(N),W1(N),W2(N),W3(N)
+!      KPP_REAL :: x1, x2, x3
+!      DO i=1,N
+!          x1 = Z1(i); x2 = Z2(i); x3 = Z3(i)
+!          W1(i) = Tr(1,1)*x1 + Tr(1,2)*x2 + Tr(1,3)*x3
+!          W2(i) = Tr(2,1)*x1 + Tr(2,2)*x2 + Tr(2,3)*x3
+!          W3(i) = Tr(3,1)*x1 + Tr(3,2)*x2 + Tr(3,3)*x3
+!      END DO
+!  END SUBROUTINE RK_Transform
+ 
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE RK_Interpolate(action,N,H,Hold,Z1,Z2,Z3,CONT)
+!~~~>   Constructs or evaluates a quadratic polynomial
+!         that interpolates the Z solution at current step
+!         and provides starting values for the next step
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      INTEGER :: N, i
+      KPP_REAL :: H,Hold,Z1(N),Z2(N),Z3(N),CONT(N,3)
+      KPP_REAL :: r, x1, x2, x3, den
+      CHARACTER(LEN=4) :: action
+       
+      SELECT CASE (action) 
+      CASE ('make')
+         ! Construct the solution quadratic interpolant Q(c_i) = Z_i, i=1:3
+         den = (rkC(3)-rkC(2))*(rkC(2)-rkC(1))*(rkC(1)-rkC(3))
+         DO i=1,N
+             CONT(i,1)=(-rkC(3)**2*rkC(2)*Z1(i)+Z3(i)*rkC(2)*rkC(1)**2 &
+                        +rkC(2)**2*rkC(3)*Z1(i)-rkC(2)**2*rkC(1)*Z3(i) &
+                        +rkC(3)**2*rkC(1)*Z2(i)-Z2(i)*rkC(3)*rkC(1)**2)&
+                        /den-Z3(i)
+             CONT(i,2)= -( rkC(1)**2*(Z3(i)-Z2(i)) + rkC(2)**2*(Z1(i)  &
+                          -Z3(i)) +rkC(3)**2*(Z2(i)-Z1(i)) )/den
+             CONT(i,3)= ( rkC(1)*(Z3(i)-Z2(i)) + rkC(2)*(Z1(i)-Z3(i))  &
+                           +rkC(3)*(Z2(i)-Z1(i)) )/den
+         END DO
+      CASE ('eval')
+          ! Evaluate quadratic polynomial
+          r = H/Hold
+         x1 = ONE + rkC(1)*r
+         x2 = ONE + rkC(2)*r
+         x3 = ONE + rkC(3)*r
+         DO i=1,N
+            Z1(i) = CONT(i,1)+x1*(CONT(i,2)+x1*CONT(i,3))
+            Z2(i) = CONT(i,1)+x2*(CONT(i,2)+x2*CONT(i,3))
+            Z3(i) = CONT(i,1)+x3*(CONT(i,2)+x3*CONT(i,3))
+         END DO
+       END SELECT   
+  END SUBROUTINE RK_Interpolate
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE RK_PrepareRHS(N,T,H,Y,F0,Z1,Z2,Z3,R1,R2,R3)
+!~~~> Prepare the right-hand side for Newton iterations
+!     R = Z - hA x F
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      
+      INTEGER :: N
+      KPP_REAL :: T, H
+      KPP_REAL, DIMENSION(N) :: Y,Z1,Z2,Z3,F0,F,R1,R2,R3,TMP
+
+      CALL WCOPY(N,Z1,1,R1,1) ! R1 <- Z1
+      CALL WCOPY(N,Z2,1,R2,1) ! R2 <- Z2
+      CALL WCOPY(N,Z3,1,R3,1) ! R3 <- Z3
+
+      IF (rkMethod==L3A) THEN
+         CALL WAXPY(N,-H*rkA(1,0),F0,1,R1,1) ! R1 <- R1 - h*A_10*F0
+         CALL WAXPY(N,-H*rkA(2,0),F0,1,R2,1) ! R2 <- R2 - h*A_20*F0
+         CALL WAXPY(N,-H*rkA(3,0),F0,1,R3,1) ! R3 <- R3 - h*A_30*F0
+      END IF
+
+      CALL WADD(N,Y,Z1,TMP)              ! TMP <- Y + Z1
+      CALL FUN_CHEM(T+rkC(1)*H,TMP,F)    ! F1 <- Fun(Y+Z1)         
+      CALL WAXPY(N,-H*rkA(1,1),F,1,R1,1) ! R1 <- R1 - h*A_11*F1
+      CALL WAXPY(N,-H*rkA(2,1),F,1,R2,1) ! R2 <- R2 - h*A_21*F1
+      CALL WAXPY(N,-H*rkA(3,1),F,1,R3,1) ! R3 <- R3 - h*A_31*F1
+
+      CALL WADD(N,Y,Z2,TMP)              ! TMP <- Y + Z2
+      CALL FUN_CHEM(T+rkC(2)*H,TMP,F)    ! F2 <- Fun(Y+Z2)        
+      CALL WAXPY(N,-H*rkA(1,2),F,1,R1,1) ! R1 <- R1 - h*A_12*F2
+      CALL WAXPY(N,-H*rkA(2,2),F,1,R2,1) ! R2 <- R2 - h*A_22*F2
+      CALL WAXPY(N,-H*rkA(3,2),F,1,R3,1) ! R3 <- R3 - h*A_32*F2
+
+      CALL WADD(N,Y,Z3,TMP)              ! TMP <- Y + Z3
+      CALL FUN_CHEM(T+rkC(3)*H,TMP,F)    ! F3 <- Fun(Y+Z3)     
+      CALL WAXPY(N,-H*rkA(1,3),F,1,R1,1) ! R1 <- R1 - h*A_13*F3
+      CALL WAXPY(N,-H*rkA(2,3),F,1,R2,1) ! R2 <- R2 - h*A_23*F3
+      CALL WAXPY(N,-H*rkA(3,3),F,1,R3,1) ! R3 <- R3 - h*A_33*F3
+            
+  END SUBROUTINE RK_PrepareRHS
+  
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE RK_Decomp(N,H,FJAC,E1,IP1,E2,IP2,ISING)
+   !~~~> Compute the matrices E1 and E2 and their decompositions
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      
+      INTEGER :: N, ISING
+      KPP_REAL    :: H, Alpha, Beta, Gamma
+#ifdef FULL_ALGEBRA      
+      KPP_REAL    :: FJAC(NVAR,NVAR),E1(NVAR,NVAR)
+      COMPLEX(kind=dp) :: E2(N,N)
+#else      
+      KPP_REAL    :: FJAC(LU_NONZERO),E1(LU_NONZERO)
+      COMPLEX(kind=dp) :: E2(LU_NONZERO)
+#endif      
+      INTEGER :: IP1(N), IP2(N), i, j
+      
+      Gamma = rkGamma/H
+      Alpha = rkAlpha/H
+      Beta  = rkBeta /H
+
+#ifdef FULL_ALGEBRA      
+      DO j=1,N
+         DO  i=1,N
+            E1(i,j)=-FJAC(i,j)
+         END DO
+         E1(j,j)=E1(j,j)+Gamma
+      END DO
+      CALL DGETRF(N,N,E1,N,IP1,ISING) 
+#else      
+      DO i=1,LU_NONZERO
+         E1(i)=-FJAC(i)
+      END DO
+      DO i=1,NVAR
+         j=LU_DIAG(i); E1(j)=E1(j)+Gamma
+      END DO
+      CALL KppDecomp(E1,ISING)
+#endif      
+      
+      IF (ISING /= 0) THEN
+         ISTATUS(Ndec) = ISTATUS(Ndec) + 1
+         RETURN
+      END IF
+     
+#ifdef FULL_ALGEBRA      
+      DO j=1,N
+        DO i=1,N
+          E2(i,j) = DCMPLX( -FJAC(i,j), ZERO )
+        END DO
+        E2(j,j) = E2(j,j) + CMPLX( Alpha, Beta )
+      END DO
+      CALL ZGETRF(N,N,E2,N,IP2,ISING)     
+#else  
+      DO i=1,LU_NONZERO
+         E2(i) = DCMPLX( -FJAC(i), ZERO )
+      END DO
+      DO i=1,NVAR
+         j=LU_DIAG(i); E2(j)=E2(j) + CMPLX( Alpha, Beta )
+      END DO
+      CALL KppDecompCmplx(E2,ISING)    
+#endif      
+      ISTATUS(Ndec) = ISTATUS(Ndec) + 1
+      
+   END SUBROUTINE RK_Decomp
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE RK_Solve(N,H,E1,IP1,E2,IP2,R1,R2,R3,ISING)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      INTEGER :: N,IP1(NVAR),IP2(NVAR),ISING
+#ifdef FULL_ALGEBRA      
+      KPP_REAL    :: E1(NVAR,NVAR)
+      COMPLEX(kind=dp) :: E2(NVAR,NVAR)
+      INTEGER :: ISING
+#else      
+      KPP_REAL    :: E1(LU_NONZERO)
+      COMPLEX(kind=dp) :: E2(LU_NONZERO)
+#endif      
+      KPP_REAL    :: R1(N),R2(N),R3(N)
+      KPP_REAL    :: H, x1, x2, x3
+      COMPLEX(kind=dp) :: BC(N)
+      INTEGER :: i
+!      
+     ! Z <- h^{-1) T^{-1) A^{-1) x Z
+      DO i=1,N
+          x1 = R1(i)/H; x2 = R2(i)/H; x3 = R3(i)/H
+          R1(i) = rkTinvAinv(1,1)*x1 + rkTinvAinv(1,2)*x2 + rkTinvAinv(1,3)*x3
+          R2(i) = rkTinvAinv(2,1)*x1 + rkTinvAinv(2,2)*x2 + rkTinvAinv(2,3)*x3
+          R3(i) = rkTinvAinv(3,1)*x1 + rkTinvAinv(3,2)*x2 + rkTinvAinv(3,3)*x3
+      END DO
+
+#ifdef FULL_ALGEBRA      
+      CALL DGETRS ('N',N,1,E1,N,IP1,R1,N,ISING) 
+#else      
+      CALL KppSolve (E1,R1)
+#endif      
+!      
+      DO i=1,N
+        BC(i) = DCMPLX(R2(i),R3(i))
+      END DO
+#ifdef FULL_ALGEBRA      
+      CALL ZGETRS ('N',N,1,E2,N,IP2,BC,N,ISING) 
+#else      
+      CALL KppSolveCmplx (E2,BC)
+#endif      
+      DO i=1,N
+        R2(i) = DBLE( BC(i) )
+        R3(i) = AIMAG( BC(i) )
+      END DO
+
+      ! Z <- T x Z
+      DO i=1,N
+          x1 = R1(i); x2 = R2(i); x3 = R3(i)
+          R1(i) = rkT(1,1)*x1 + rkT(1,2)*x2 + rkT(1,3)*x3
+          R2(i) = rkT(2,1)*x1 + rkT(2,2)*x2 + rkT(2,3)*x3
+          R3(i) = rkT(3,1)*x1 + rkT(3,2)*x2 + rkT(3,3)*x3
+      END DO
+
+      ISTATUS(Nsol) = ISTATUS(Nsol) + 1
+
+   END SUBROUTINE RK_Solve
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE RK_ErrorEstimate(N,H,T,Y,F0,   &
+               E1,IP1,Z1,Z2,Z3,SCAL,Err,     &
+               FirstStep,Reject)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      
+      INTEGER :: N
+#ifdef FULL_ALGEBRA      
+      KPP_REAL :: E1(NVAR,NVAR)
+      INTEGER  :: ISING
+#else      
+      KPP_REAL :: E1(LU_NONZERO)
+#endif      
+      KPP_REAL :: SCAL(N),Z1(N),Z2(N),Z3(N),F1(N),F2(N), &
+                        F0(N),Y(N),TMP(N),T,H
+      INTEGER :: IP1(N), i
+      LOGICAL FirstStep,Reject
+      KPP_REAL :: HrkE1,HrkE2,HrkE3,Err
+
+      HrkE1  = rkE(1)/H
+      HrkE2  = rkE(2)/H
+      HrkE3  = rkE(3)/H
+
+      DO  i=1,N
+         F2(i)  = HrkE1*Z1(i)+HrkE2*Z2(i)+HrkE3*Z3(i)
+         TMP(i) = rkE(0)*F0(i) + F2(i)
+      END DO
+
+
+#ifdef FULL_ALGEBRA      
+      CALL DGETRS ('N',N,1,E1,N,IP1,TMP,N,ISING) 
+      IF ((rkMethod==R1A).OR.(rkMethod==GAU).OR.(rkMethod==L3A)) THEN
+           CALL DGETRS ('N',N,1,E1,N,IP1,TMP,N,ISING)
+      END IF 	   
+      IF (rkMethod==GAU) THEN
+           CALL DGETRS ('N',N,1,E1,N,IP1,TMP,N,ISING)
+      END IF 	   
+#else      
+      CALL KppSolve (E1, TMP)
+      IF ((rkMethod==R1A).OR.(rkMethod==GAU).OR.(rkMethod==L3A)) THEN
+            CALL KppSolve (E1,TMP)
+      END IF 	   
+      IF (rkMethod==GAU) THEN
+            CALL KppSolve (E1,TMP)
+      END IF 	   
+#endif      
+
+      Err = RK_ErrorNorm(N,SCAL,TMP)
+!
+      IF (Err < ONE) RETURN
+firej:IF (FirstStep.OR.Reject) THEN
+          DO i=1,N
+             TMP(i)=Y(i)+TMP(i)
+          END DO
+          CALL FUN_CHEM(T,TMP,F1)    
+          ISTATUS(Nfun) = ISTATUS(Nfun) + 1
+          DO i=1,N
+             TMP(i)=F1(i)+F2(i)
+          END DO
+
+#ifdef FULL_ALGEBRA      
+          CALL DGETRS ('N',N,1,E1,N,IP1,TMP,N,ISING) 
+#else      
+          CALL KppSolve (E1, TMP)
+#endif      
+          Err = RK_ErrorNorm(N,SCAL,TMP)
+       END IF firej
+ 
+   END SUBROUTINE RK_ErrorEstimate
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   KPP_REAL FUNCTION RK_ErrorNorm(N,SCAL,DY)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      
+      INTEGER :: N
+      KPP_REAL :: SCAL(N),DY(N)
+      INTEGER :: i
+
+      RK_ErrorNorm = ZERO
+        DO i=1,N
+          RK_ErrorNorm = RK_ErrorNorm + (DY(i)*SCAL(i))**2
+        END DO
+      RK_ErrorNorm = MAX( SQRT(RK_ErrorNorm/N), 1.0d-10 )
+ 
+   END FUNCTION RK_ErrorNorm
+  
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE Radau2A_Coefficients
+!    The coefficients of the 3-stage Radau-2A method
+!    (given to ~30 accurate digits)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
+      IMPLICIT NONE
+! The coefficients of the Radau2A method
+      KPP_REAL :: b0
+
+!      b0 = 1.0d0
+      IF (SdirkError) THEN
+        b0 = 0.2d-1
+      ELSE
+        b0 = 0.5d-1
+      END IF
+
+! The coefficients of the Radau2A method
+      rkMethod = R2A
+
+      rkA(1,1) =  1.968154772236604258683861429918299d-1
+      rkA(1,2) = -6.55354258501983881085227825696087d-2
+      rkA(1,3) =  2.377097434822015242040823210718965d-2
+      rkA(2,1) =  3.944243147390872769974116714584975d-1
+      rkA(2,2) =  2.920734116652284630205027458970589d-1
+      rkA(2,3) = -4.154875212599793019818600988496743d-2
+      rkA(3,1) =  3.764030627004672750500754423692808d-1
+      rkA(3,2) =  5.124858261884216138388134465196080d-1
+      rkA(3,3) =  1.111111111111111111111111111111111d-1
+
+      rkB(1) = 3.764030627004672750500754423692808d-1
+      rkB(2) = 5.124858261884216138388134465196080d-1
+      rkB(3) = 1.111111111111111111111111111111111d-1
+
+      rkC(1) = 1.550510257216821901802715925294109d-1
+      rkC(2) = 6.449489742783178098197284074705891d-1
+      rkC(3) = 1.0d0
+      
+      ! New solution: H* Sum B_j*f(Z_j) = Sum D_j*Z_j
+      rkD(1) = 0.0d0
+      rkD(2) = 0.0d0
+      rkD(3) = 1.0d0
+
+      ! Classical error estimator: 
+      ! H* Sum (B_j-Bhat_j)*f(Z_j) = H*E(0)*f(0) + Sum E_j*Z_j
+      rkE(0) = 1.0d0*b0
+      rkE(1) = -10.04880939982741556246032950764708d0*b0
+      rkE(2) = 1.382142733160748895793662840980412d0*b0
+      rkE(3) = -.3333333333333333333333333333333333d0*b0
+
+      ! Sdirk error estimator
+      rkBgam(0) = b0
+      rkBgam(1) = .3764030627004672750500754423692807d0-1.558078204724922382431975370686279d0*b0
+      rkBgam(2) = .8914115380582557157653087040196118d0*b0+.5124858261884216138388134465196077d0
+      rkBgam(3) = -.1637777184845662566367174924883037d0-.3333333333333333333333333333333333d0*b0
+      rkBgam(4) = .2748888295956773677478286035994148d0
+
+      ! H* Sum Bgam_j*f(Z_j) = H*Bgam(0)*f(0) + Sum Theta_j*Z_j
+      rkTheta(1) = -1.520677486405081647234271944611547d0-10.04880939982741556246032950764708d0*b0
+      rkTheta(2) = 2.070455145596436382729929151810376d0+1.382142733160748895793662840980413d0*b0
+      rkTheta(3) = -.3333333333333333333333333333333333d0*b0-.3744441479783868387391430179970741d0
+
+      ! Local order of error estimator 
+      IF (b0==0.0d0) THEN
+        rkELO  = 6.0d0
+      ELSE	
+        rkELO  = 4.0d0
+      END IF	
+
+      !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      !~~~> Diagonalize the RK matrix:               
+      ! rkTinv * inv(rkA) * rkT =          
+      !           |  rkGamma      0           0     |
+      !           |      0      rkAlpha   -rkBeta   |
+      !           |      0      rkBeta     rkAlpha  |
+      !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      rkGamma = 3.637834252744495732208418513577775d0
+      rkAlpha = 2.681082873627752133895790743211112d0
+      rkBeta  = 3.050430199247410569426377624787569d0
+
+      rkT(1,1) =  9.443876248897524148749007950641664d-2
+      rkT(1,2) = -1.412552950209542084279903838077973d-1
+      rkT(1,3) = -3.00291941051474244918611170890539d-2
+      rkT(2,1) =  2.502131229653333113765090675125018d-1
+      rkT(2,2) =  2.041293522937999319959908102983381d-1
+      rkT(2,3) =  3.829421127572619377954382335998733d-1
+      rkT(3,1) =  1.0d0
+      rkT(3,2) =  1.0d0
+      rkT(3,3) =  0.0d0
+
+      rkTinv(1,1) =  4.178718591551904727346462658512057d0
+      rkTinv(1,2) =  3.27682820761062387082533272429617d-1
+      rkTinv(1,3) =  5.233764454994495480399309159089876d-1
+      rkTinv(2,1) = -4.178718591551904727346462658512057d0
+      rkTinv(2,2) = -3.27682820761062387082533272429617d-1
+      rkTinv(2,3) =  4.766235545005504519600690840910124d-1
+      rkTinv(3,1) = -5.02872634945786875951247343139544d-1
+      rkTinv(3,2) =  2.571926949855605429186785353601676d0
+      rkTinv(3,3) = -5.960392048282249249688219110993024d-1
+
+      rkTinvAinv(1,1) =  1.520148562492775501049204957366528d+1
+      rkTinvAinv(1,2) =  1.192055789400527921212348994770778d0
+      rkTinvAinv(1,3) =  1.903956760517560343018332287285119d0
+      rkTinvAinv(2,1) = -9.669512977505946748632625374449567d0
+      rkTinvAinv(2,2) = -8.724028436822336183071773193986487d0
+      rkTinvAinv(2,3) =  3.096043239482439656981667712714881d0
+      rkTinvAinv(3,1) = -1.409513259499574544876303981551774d+1
+      rkTinvAinv(3,2) =  5.895975725255405108079130152868952d0
+      rkTinvAinv(3,3) = -1.441236197545344702389881889085515d-1
+
+      rkAinvT(1,1) = .3435525649691961614912493915818282d0
+      rkAinvT(1,2) = -.4703191128473198422370558694426832d0
+      rkAinvT(1,3) = .3503786597113668965366406634269080d0
+      rkAinvT(2,1) = .9102338692094599309122768354288852d0
+      rkAinvT(2,2) = 1.715425895757991796035292755937326d0
+      rkAinvT(2,3) = .4040171993145015239277111187301784d0
+      rkAinvT(3,1) = 3.637834252744495732208418513577775d0
+      rkAinvT(3,2) = 2.681082873627752133895790743211112d0
+      rkAinvT(3,3) = -3.050430199247410569426377624787569d0
+
+  END SUBROUTINE Radau2A_Coefficients
+
+    
+
+    
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE Lobatto3C_Coefficients
+!    The coefficients of the 3-stage Lobatto-3C method
+!    (given to ~30 accurate digits)
+!    The parameter b0 can be chosen to tune the error estimator
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
+      IMPLICIT NONE
+      KPP_REAL :: b0
+
+      rkMethod = L3C
+
+!      b0 = 1.0d0
+      IF (SdirkError) THEN
+        b0 = 0.2d0
+      ELSE
+        b0 = 0.5d0
+      END IF
+! The coefficients of the Lobatto3C method
+
+      rkA(1,1) =  .1666666666666666666666666666666667d0
+      rkA(1,2) = -.3333333333333333333333333333333333d0
+      rkA(1,3) =  .1666666666666666666666666666666667d0
+      rkA(2,1) =  .1666666666666666666666666666666667d0
+      rkA(2,2) =  .4166666666666666666666666666666667d0
+      rkA(2,3) = -.8333333333333333333333333333333333d-1
+      rkA(3,1) =  .1666666666666666666666666666666667d0
+      rkA(3,2) =  .6666666666666666666666666666666667d0
+      rkA(3,3) =  .1666666666666666666666666666666667d0
+
+      rkB(1) = .1666666666666666666666666666666667d0
+      rkB(2) = .6666666666666666666666666666666667d0
+      rkB(3) = .1666666666666666666666666666666667d0
+
+      rkC(1) = 0.0d0
+      rkC(2) = 0.5d0
+      rkC(3) = 1.0d0
+
+      ! Classical error estimator, embedded solution: 
+      rkBhat(0) = b0
+      rkBhat(1) = .16666666666666666666666666666666667d0-b0
+      rkBhat(2) = .66666666666666666666666666666666667d0
+      rkBhat(3) = .16666666666666666666666666666666667d0
+      
+      ! New solution: h Sum_j b_j f(Z_j) = sum d_j Z_j
+      rkD(1) = 0.0d0
+      rkD(2) = 0.0d0
+      rkD(3) = 1.0d0
+
+      ! Classical error estimator: 
+      !   H* Sum (B_j-Bhat_j)*f(Z_j) = H*E(0)*f(0) + Sum E_j*Z_j
+      rkE(0) =   .3808338772072650364017425226487022*b0
+      rkE(1) = -1.142501631621795109205227567946107*b0
+      rkE(2) = -1.523335508829060145606970090594809*b0
+      rkE(3) =   .3808338772072650364017425226487022*b0
+
+      ! Sdirk error estimator
+      rkBgam(0) = b0
+      rkBgam(1) = .1666666666666666666666666666666667d0-1.d0*b0
+      rkBgam(2) = .6666666666666666666666666666666667d0
+      rkBgam(3) = -.2141672105405983697350758559820354d0
+      rkBgam(4) = .3808338772072650364017425226487021d0
+
+      ! H* Sum Bgam_j*f(Z_j) = H*Bgam(0)*f(0) + Sum Theta_j*Z_j
+      rkTheta(1) = -3.d0*b0-.3808338772072650364017425226487021d0
+      rkTheta(2) = -4.d0*b0+1.523335508829060145606970090594808d0
+      rkTheta(3) = -.142501631621795109205227567946106d0+b0
+
+      ! Local order of error estimator 
+      IF (b0==0.0d0) THEN
+        rkELO  = 5.0d0
+      ELSE	
+        rkELO  = 4.0d0
+      END IF	
+
+      !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      !~~~> Diagonalize the RK matrix:               
+      ! rkTinv * inv(rkA) * rkT =          
+      !           |  rkGamma      0           0     |
+      !           |      0      rkAlpha   -rkBeta   |
+      !           |      0      rkBeta     rkAlpha  |
+      !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      rkGamma = 2.625816818958466716011888933765284d0
+      rkAlpha = 1.687091590520766641994055533117359d0
+      rkBeta  = 2.508731754924880510838743672432351d0
+
+      rkT(1,1) = 1.d0
+      rkT(1,2) = 1.d0
+      rkT(1,3) = 0.d0
+      rkT(2,1) = .4554100411010284672111720348287483d0
+      rkT(2,2) = -.6027050205505142336055860174143743d0
+      rkT(2,3) = -.4309321229203225731070721341350346d0
+      rkT(3,1) = 2.195823345445647152832799205549709d0
+      rkT(3,2) = -1.097911672722823576416399602774855d0
+      rkT(3,3) = .7850032632435902184104551358922130d0
+
+      rkTinv(1,1) = .4205559181381766909344950150991349d0
+      rkTinv(1,2) = .3488903392193734304046467270632057d0
+      rkTinv(1,3) = .1915253879645878102698098373933487d0
+      rkTinv(2,1) = .5794440818618233090655049849008650d0
+      rkTinv(2,2) = -.3488903392193734304046467270632057d0
+      rkTinv(2,3) = -.1915253879645878102698098373933487d0
+      rkTinv(3,1) = -.3659705575742745254721332009249516d0
+      rkTinv(3,2) = -1.463882230297098101888532803699806d0
+      rkTinv(3,3) = .4702733607340189781407813565524989d0
+
+      rkTinvAinv(1,1) = 1.104302803159744452668648155627548d0
+      rkTinvAinv(1,2) = .916122120694355522658740710823143d0
+      rkTinvAinv(1,3) = .5029105849749601702795812241441172d0
+      rkTinvAinv(2,1) = 1.895697196840255547331351844372453d0
+      rkTinvAinv(2,2) = 3.083877879305644477341259289176857d0
+      rkTinvAinv(2,3) = -1.502910584974960170279581224144117d0
+      rkTinvAinv(3,1) = .8362439183082935036129145574774502d0
+      rkTinvAinv(3,2) = -3.344975673233174014451658229909802d0
+      rkTinvAinv(3,3) = .312908409479233358005944466882642d0
+
+      rkAinvT(1,1) = 2.625816818958466716011888933765282d0
+      rkAinvT(1,2) = 1.687091590520766641994055533117358d0
+      rkAinvT(1,3) = -2.508731754924880510838743672432351d0
+      rkAinvT(2,1) = 1.195823345445647152832799205549710d0
+      rkAinvT(2,2) = -2.097911672722823576416399602774855d0
+      rkAinvT(2,3) = .7850032632435902184104551358922130d0
+      rkAinvT(3,1) = 5.765829871932827589653709477334136d0
+      rkAinvT(3,2) = .1170850640335862051731452613329320d0
+      rkAinvT(3,3) = 4.078738281412060947659653944216779d0
+
+  END SUBROUTINE Lobatto3C_Coefficients
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE Gauss_Coefficients
+!    The coefficients of the 3-stage Gauss method
+!    (given to ~30 accurate digits)
+!    The parameter b3 can be chosen by the user
+!    to tune the error estimator
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
+      IMPLICIT NONE
+      KPP_REAL :: b0
+! The coefficients of the Gauss method
+
+
+      rkMethod = GAU
+      
+!      b0 = 4.0d0
+      b0 = 0.1d0
+      
+! The coefficients of the Gauss method
+
+      rkA(1,1) =  .1388888888888888888888888888888889d0
+      rkA(1,2) = -.359766675249389034563954710966045d-1
+      rkA(1,3) =  .97894440153083260495800422294756d-2
+      rkA(2,1) =  .3002631949808645924380249472131556d0
+      rkA(2,2) =  .2222222222222222222222222222222222d0
+      rkA(2,3) = -.224854172030868146602471694353778d-1
+      rkA(3,1) =  .2679883337624694517281977355483022d0
+      rkA(3,2) =  .4804211119693833479008399155410489d0
+      rkA(3,3) =  .1388888888888888888888888888888889d0
+
+      rkB(1) = .2777777777777777777777777777777778d0
+      rkB(2) = .4444444444444444444444444444444444d0
+      rkB(3) = .2777777777777777777777777777777778d0
+
+      rkC(1) = .1127016653792583114820734600217600d0
+      rkC(2) = .5000000000000000000000000000000000d0
+      rkC(3) = .8872983346207416885179265399782400d0
+
+      ! Classical error estimator, embedded solution: 
+      rkBhat(0) = b0
+      rkBhat(1) =-1.4788305577012361475298775666303999d0*b0 &
+                  +.27777777777777777777777777777777778d0
+      rkBhat(2) =  .44444444444444444444444444444444444d0 &
+                  +.66666666666666666666666666666666667d0*b0
+      rkBhat(3) = -.18783610896543051913678910003626672d0*b0 &
+                  +.27777777777777777777777777777777778d0
+
+      ! New solution: h Sum_j b_j f(Z_j) = sum d_j Z_j
+      rkD(1) = .1666666666666666666666666666666667d1
+      rkD(2) = -.1333333333333333333333333333333333d1
+      rkD(3) = .1666666666666666666666666666666667d1
+
+      ! Classical error estimator: 
+      !   H* Sum (B_j-Bhat_j)*f(Z_j) = H*E(0)*f(0) + Sum E_j*Z_j
+      rkE(0) = .2153144231161121782447335303806954d0*b0
+      rkE(1) = -2.825278112319014084275808340593191d0*b0
+      rkE(2) = .2870858974881495709929780405075939d0*b0
+      rkE(3) = -.4558086256248162565397206448274867d-1*b0
+
+      ! Sdirk error estimator
+      rkBgam(0) = 0.d0
+      rkBgam(1) = .2373339543355109188382583162660537d0
+      rkBgam(2) = .5879873931885192299409334646982414d0
+      rkBgam(3) = -.4063577064014232702392531134499046d-1
+      rkBgam(4) = .2153144231161121782447335303806955d0
+
+      ! H* Sum Bgam_j*f(Z_j) = H*Bgam(0)*f(0) + Sum Theta_j*Z_j
+      rkTheta(1) = -2.594040933093095272574031876464493d0
+      rkTheta(2) = 1.824611539036311947589425112250199d0
+      rkTheta(3) = .1856563166634371860478043996459493d0
+
+      ! ELO = local order of classical error estimator 
+      rkELO = 4.0d0
+
+      !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      !~~~> Diagonalize the RK matrix:               
+      ! rkTinv * inv(rkA) * rkT =          
+      !           |  rkGamma      0           0     |
+      !           |      0      rkAlpha   -rkBeta   |
+      !           |      0      rkBeta     rkAlpha  |
+      !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      rkGamma = 4.644370709252171185822941421408064d0
+      rkAlpha = 3.677814645373914407088529289295970d0
+      rkBeta  = 3.508761919567443321903661209182446d0
+
+      rkT(1,1) =  .7215185205520017032081769924397664d-1
+      rkT(1,2) = -.8224123057363067064866206597516454d-1
+      rkT(1,3) = -.6012073861930850173085948921439054d-1
+      rkT(2,1) =  .1188325787412778070708888193730294d0
+      rkT(2,2) =  .5306509074206139504614411373957448d-1
+      rkT(2,3) =  .3162050511322915732224862926182701d0
+      rkT(3,1) = 1.d0
+      rkT(3,2) = 1.d0
+      rkT(3,3) = 0.d0
+
+      rkTinv(1,1) =  5.991698084937800775649580743981285d0
+      rkTinv(1,2) =  1.139214295155735444567002236934009d0
+      rkTinv(1,3) =   .4323121137838583855696375901180497d0
+      rkTinv(2,1) = -5.991698084937800775649580743981285d0
+      rkTinv(2,2) = -1.139214295155735444567002236934009d0
+      rkTinv(2,3) =   .5676878862161416144303624098819503d0
+      rkTinv(3,1) = -1.246213273586231410815571640493082d0
+      rkTinv(3,2) =  2.925559646192313662599230367054972d0
+      rkTinv(3,3) =  -.2577352012734324923468722836888244d0
+
+      rkTinvAinv(1,1) =  27.82766708436744962047620566703329d0
+      rkTinvAinv(1,2) =   5.290933503982655311815946575100597d0
+      rkTinvAinv(1,3) =   2.007817718512643701322151051660114d0
+      rkTinvAinv(2,1) = -17.66368928942422710690385180065675d0
+      rkTinvAinv(2,2) = -14.45491129892587782538830044147713d0
+      rkTinvAinv(2,3) =   2.992182281487356298677848948339886d0
+      rkTinvAinv(3,1) = -25.60678350282974256072419392007303d0
+      rkTinvAinv(3,2) =   6.762434375611708328910623303779923d0
+      rkTinvAinv(3,3) =   1.043979339483109825041215970036771d0
+      
+      rkAinvT(1,1) = .3350999483034677402618981153470483d0
+      rkAinvT(1,2) = -.5134173605009692329246186488441294d0
+      rkAinvT(1,3) = .6745196507033116204327635673208923d-1
+      rkAinvT(2,1) = .5519025480108928886873752035738885d0
+      rkAinvT(2,2) = 1.304651810077110066076640761092008d0
+      rkAinvT(2,3) = .9767507983414134987545585703726984d0
+      rkAinvT(3,1) = 4.644370709252171185822941421408064d0
+      rkAinvT(3,2) = 3.677814645373914407088529289295970d0
+      rkAinvT(3,3) = -3.508761919567443321903661209182446d0
+      
+  END SUBROUTINE Gauss_Coefficients
+
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE Radau1A_Coefficients
+!    The coefficients of the 3-stage Gauss method
+!    (given to ~30 accurate digits)
+!    The parameter b3 can be chosen by the user
+!    to tune the error estimator
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
+      IMPLICIT NONE
+!      KPP_REAL :: b0 = 0.3d0
+      KPP_REAL :: b0 = 0.1d0
+
+! The coefficients of the Radau1A method
+
+      rkMethod = R1A
+
+      rkA(1,1) =  .1111111111111111111111111111111111d0
+      rkA(1,2) = -.1916383190435098943442935597058829d0
+      rkA(1,3) =  .8052720793239878323318244859477174d-1
+      rkA(2,1) =  .1111111111111111111111111111111111d0
+      rkA(2,2) =  .2920734116652284630205027458970589d0
+      rkA(2,3) = -.481334970546573839513422644787591d-1
+      rkA(3,1) =  .1111111111111111111111111111111111d0
+      rkA(3,2) =  .5370223859435462728402311533676479d0
+      rkA(3,3) =  .1968154772236604258683861429918299d0
+
+      rkB(1) = .1111111111111111111111111111111111d0
+      rkB(2) = .5124858261884216138388134465196080d0
+      rkB(3) = .3764030627004672750500754423692808d0
+
+      rkC(1) = 0.d0
+      rkC(2) = .3550510257216821901802715925294109d0
+      rkC(3) = .8449489742783178098197284074705891d0
+
+      ! Classical error estimator, embedded solution: 
+      rkBhat(0) = b0
+      rkBhat(1) = .11111111111111111111111111111111111d0-b0
+      rkBhat(2) = .51248582618842161383881344651960810d0
+      rkBhat(3) = .37640306270046727505007544236928079d0
+
+      ! New solution: H* Sum B_j*f(Z_j) = Sum D_j*Z_j
+      rkD(1) = .3333333333333333333333333333333333d0
+      rkD(2) = -.8914115380582557157653087040196127d0
+      rkD(3) = .1558078204724922382431975370686279d1
+
+      ! Classical error estimator: 
+      ! H* Sum (b_j-bhat_j) f(Z_j) = H*E(0)*F(0) + Sum E_j Z_j
+      rkE(0) =   .2748888295956773677478286035994148d0*b0
+      rkE(1) = -1.374444147978386838739143017997074d0*b0
+      rkE(2) = -1.335337922441686804550326197041126d0*b0
+      rkE(3) =   .235782604058977333559011782643466d0*b0
+
+      ! Sdirk error estimator
+      rkBgam(0) = 0.0d0
+      rkBgam(1) = .1948150124588532186183490991130616d-1
+      rkBgam(2) = .7575249005733381398986810981093584d0
+      rkBgam(3) = -.518952314149008295083446116200793d-1
+      rkBgam(4) = .2748888295956773677478286035994148d0
+
+      ! H* Sum Bgam_j*f(Z_j) = H*Bgam(0)*f(0) + Sum Theta_j*Z_j
+      rkTheta(1) = -1.224370034375505083904362087063351d0
+      rkTheta(2) = .9340045331532641409047527962010133d0
+      rkTheta(3) = .4656990124352088397561234800640929d0
+
+      ! ELO = local order of classical error estimator 
+      rkELO = 4.0d0
+
+      !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      !~~~> Diagonalize the RK matrix:               
+      ! rkTinv * inv(rkA) * rkT =          
+      !           |  rkGamma      0           0     |
+      !           |      0      rkAlpha   -rkBeta   |
+      !           |      0      rkBeta     rkAlpha  |
+      !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      rkGamma = 3.637834252744495732208418513577775d0
+      rkAlpha = 2.681082873627752133895790743211112d0
+      rkBeta  = 3.050430199247410569426377624787569d0
+
+      rkT(1,1) =  .424293819848497965354371036408369d0
+      rkT(1,2) = -.3235571519651980681202894497035503d0
+      rkT(1,3) = -.522137786846287839586599927945048d0
+      rkT(2,1) =  .57594609499806128896291585429339d-1
+      rkT(2,2) =  .3148663231849760131614374283783d-2
+      rkT(2,3) =  .452429247674359778577728510381731d0
+      rkT(3,1) = 1.d0
+      rkT(3,2) = 1.d0
+      rkT(3,3) = 0.d0
+
+      rkTinv(1,1) = 1.233523612685027760114769983066164d0
+      rkTinv(1,2) = 1.423580134265707095505388133369554d0
+      rkTinv(1,3) = .3946330125758354736049045150429624d0
+      rkTinv(2,1) = -1.233523612685027760114769983066164d0
+      rkTinv(2,2) = -1.423580134265707095505388133369554d0
+      rkTinv(2,3) = .6053669874241645263950954849570376d0
+      rkTinv(3,1) = -.1484438963257383124456490049673414d0
+      rkTinv(3,2) = 2.038974794939896109682070471785315d0
+      rkTinv(3,3) = -.544501292892686735299355831692542d-1
+
+      rkTinvAinv(1,1) =  4.487354449794728738538663081025420d0
+      rkTinvAinv(1,2) =  5.178748573958397475446442544234494d0
+      rkTinvAinv(1,3) =  1.435609490412123627047824222335563d0
+      rkTinvAinv(2,1) = -2.854361287939276673073807031221493d0
+      rkTinvAinv(2,2) = -1.003648660720543859000994063139137d+1
+      rkTinvAinv(2,3) =  1.789135380979465422050817815017383d0
+      rkTinvAinv(3,1) = -4.160768067752685525282947313530352d0
+      rkTinvAinv(3,2) =  1.124128569859216916690209918405860d0
+      rkTinvAinv(3,3) =  1.700644430961823796581896350418417d0
+
+      rkAinvT(1,1) = 1.543510591072668287198054583233180d0
+      rkAinvT(1,2) = -2.460228411937788329157493833295004d0
+      rkAinvT(1,3) = -.412906170450356277003910443520499d0
+      rkAinvT(2,1) = .209519643211838264029272585946993d0
+      rkAinvT(2,2) = 1.388545667194387164417459732995766d0
+      rkAinvT(2,3) = 1.20339553005832004974976023130002d0
+      rkAinvT(3,1) = 3.637834252744495732208418513577775d0
+      rkAinvT(3,2) = 2.681082873627752133895790743211112d0
+      rkAinvT(3,3) = -3.050430199247410569426377624787569d0
+
+  END SUBROUTINE Radau1A_Coefficients
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE Lobatto3A_Coefficients
+!    The coefficients of the 4-stage Lobatto-3A method
+!    (given to ~30 accurate digits)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
+      IMPLICIT NONE
+
+! The coefficients of the Lobatto-3A method
+
+      rkMethod = L3A
+
+      rkA(0,0) = 0.0d0
+      rkA(0,1) = 0.0d0
+      rkA(0,2) = 0.0d0
+      rkA(0,3) = 0.0d0
+      rkA(1,0) = .11030056647916491413674311390609397d0
+      rkA(1,1) = .1896994335208350858632568860939060d0
+      rkA(1,2) = -.339073642291438837776604807792215d-1
+      rkA(1,3) = .1030056647916491413674311390609397d-1
+      rkA(2,0) = .73032766854168419196590219427239365d-1
+      rkA(2,1) = .4505740308958105504443271474458881d0
+      rkA(2,2) = .2269672331458315808034097805727606d0
+      rkA(2,3) = -.2696723314583158080340978057276063d-1
+      rkA(3,0) = .83333333333333333333333333333333333d-1
+      rkA(3,1) = .4166666666666666666666666666666667d0
+      rkA(3,2) = .4166666666666666666666666666666667d0
+      rkA(3,3) = .8333333333333333333333333333333333d-1
+      
+      rkB(0) = .83333333333333333333333333333333333d-1
+      rkB(1) = .4166666666666666666666666666666667d0
+      rkB(2) = .4166666666666666666666666666666667d0
+      rkB(3) = .8333333333333333333333333333333333d-1
+
+      rkC(0) = 0.0d0
+      rkC(1) = .2763932022500210303590826331268724d0
+      rkC(2) = .7236067977499789696409173668731276d0
+      rkC(3) = 1.0d0
+
+      ! New solution: H*Sum B_j*f(Z_j) = Sum D_j*Z_j
+      rkD(0) = 0.0d0
+      rkD(1) = 0.0d0
+      rkD(2) = 0.0d0
+      rkD(3) = 1.0d0
+      
+      ! Classical error estimator, embedded solution: 
+      rkBhat(0) = .90909090909090909090909090909090909d-1
+      rkBhat(1) = .39972675774621371442114262372173276d0
+      rkBhat(2) = .43360657558711961891219070961160058d0
+      rkBhat(3) = .15151515151515151515151515151515152d-1
+
+      ! Classical error estimator: 
+      ! H* Sum (B_j-Bhat_j)*f(Z_j) = H*E(0)*f(0) + Sum E_j*Z_j
+
+      rkE(0) =  .1957403846510110711315759367097231d-1
+      rkE(1) = -.1986820345632580910316020806676438d0
+      rkE(2) =  .1660586371214229125096727578826900d0
+      rkE(3) = -.9787019232550553556578796835486154d-1
+
+      ! Sdirk error estimator: 
+      rkF(0) =  0.0d0
+      rkF(1) = -.66535815876916686607437314126436349d0
+      rkF(2) =  1.7419302743497277572980407931678409d0
+      rkF(3) = -1.2918865386966730694684011822841728d0
+       
+      ! ELO = local order of classical error estimator 
+      rkELO = 4.0d0
+      
+      ! Sdirk error estimator: 
+      rkBgam(0) =  .2950472755430528877214995073815946d-1
+      rkBgam(1) =  .5370310883226113978352873633882769d0
+      rkBgam(2) =  .2963022450107219354980459699450564d0
+      rkBgam(3) = -.7815248400375080035021681445218837d-1
+      rkBgam(4) =  .2153144231161121782447335303806956d0
+      
+      ! H* Sum Bgam_j*f(Z_j) = H*Bgam(0)*f(0) + Sum Theta_j*Z_j
+      rkTheta(0) = 0.0d0
+      rkTheta(1) = -.6653581587691668660743731412643631d0
+      rkTheta(2) = 1.741930274349727757298040793167842d0
+      rkTheta(3) = -.291886538696673069468401182284174d0
+
+
+      !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      !~~~> Diagonalize the RK matrix:               
+      ! rkTinv * inv(rkA) * rkT =          
+      !           |  rkGamma      0           0     |
+      !           |      0      rkAlpha   -rkBeta   |
+      !           |      0      rkBeta     rkAlpha  |
+      !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      rkGamma = 4.644370709252171185822941421408063d0
+      rkAlpha = 3.677814645373914407088529289295968d0
+      rkBeta  = 3.508761919567443321903661209182446d0
+
+      rkT(1,1) = .5303036326129938105898786144870856d-1
+      rkT(1,2) = -.7776129960563076320631956091016914d-1
+      rkT(1,3) = .6043307469475508514468017399717112d-2
+      rkT(2,1) = .2637242522173698467283726114649606d0
+      rkT(2,2) = .2193839918662961493126393244533346d0
+      rkT(2,3) = .3198765142300936188514264752235344d0
+      rkT(3,1) = 1.d0
+      rkT(3,2) = 1.d0
+      rkT(3,3) = 0.d0
+
+      rkTinv(1,1) = 7.695032983257654470769069079238553d0
+      rkTinv(1,2) = -.1453793830957233720334601186354032d0
+      rkTinv(1,3) = .6302696746849084900422461036874826d0
+      rkTinv(2,1) = -7.695032983257654470769069079238553d0
+      rkTinv(2,2) = .1453793830957233720334601186354032d0
+      rkTinv(2,3) = .3697303253150915099577538963125174d0
+      rkTinv(3,1) = -1.066660885401270392058552736086173d0
+      rkTinv(3,2) = 3.146358406832537460764521760668932d0
+      rkTinv(3,3) = -.7732056038202974770406168510664738d0
+
+      rkTinvAinv(1,1) = 35.73858579417120341641749040405149d0
+      rkTinvAinv(1,2) = -.675195748578927863668368190236025d0
+      rkTinvAinv(1,3) = 2.927206016036483646751158874041632d0
+      rkTinvAinv(2,1) = -24.55824590667225493437162206039511d0
+      rkTinvAinv(2,2) = -10.50514413892002061837750015342036
+      rkTinvAinv(2,3) = 4.072793983963516353248841125958369d0
+      rkTinvAinv(3,1) = -30.92301972744621647251975054630589d0
+      rkTinvAinv(3,2) = 12.08182467154052413351908559269928d0
+      rkTinvAinv(3,3) = -1.546411207640594954081233702132946d0
+
+      rkAinvT(1,1) = .2462926658317812882584158369803835d0
+      rkAinvT(1,2) = -.2647871194157644619747121197289574d0
+      rkAinvT(1,3) = .2950720515900466654896406799284586d0
+      rkAinvT(2,1) = 1.224833192317784474576995878738004d0
+      rkAinvT(2,2) = 1.929224190340981580557006261869763d0
+      rkAinvT(2,3) = .4066803323234419988910915619080306d0
+      rkAinvT(3,1) = 4.644370709252171185822941421408064d0
+      rkAinvT(3,2) = 3.677814645373914407088529289295968d0
+      rkAinvT(3,3) = -3.508761919567443321903661209182446d0
+
+  END SUBROUTINE Lobatto3A_Coefficients
+  
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  END SUBROUTINE RungeKutta ! and all its internal procedures
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE FUN_CHEM(T, V, FCT)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+    USE KPP_ROOT_Parameters
+    USE KPP_ROOT_Global
+    USE KPP_ROOT_Function, ONLY: Fun
+    USE KPP_ROOT_Rates, ONLY: Update_SUN, Update_RCONST, Update_PHOTO
+
+    IMPLICIT NONE
+
+    KPP_REAL :: V(NVAR), FCT(NVAR)
+    KPP_REAL :: T, Told
+
+    Told = TIME
+    TIME = T
+    CALL Update_SUN()
+    CALL Update_RCONST()
+    CALL Update_PHOTO()
+    TIME = Told
+    
+    CALL Fun(V, FIX, RCONST, FCT)
+    
+  END SUBROUTINE FUN_CHEM
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE JAC_CHEM (T, V, JF)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+    USE KPP_ROOT_Parameters
+    USE KPP_ROOT_Global
+    USE KPP_ROOT_JacobianSP
+    USE KPP_ROOT_Jacobian, ONLY: Jac_SP
+    USE KPP_ROOT_Rates, ONLY: Update_SUN, Update_RCONST, Update_PHOTO
+
+    IMPLICIT NONE
+
+    KPP_REAL :: V(NVAR), T , Told
+#ifdef FULL_ALGEBRA    
+    KPP_REAL :: JV(LU_NONZERO), JF(NVAR,NVAR)
+    INTEGER :: i, j 
+#else
+    KPP_REAL :: JF(LU_NONZERO)
+#endif   
+
+    Told = TIME
+    TIME = T
+    CALL Update_SUN()
+    CALL Update_RCONST()
+    CALL Update_PHOTO()
+    TIME = Told
+    
+#ifdef FULL_ALGEBRA    
+    CALL Jac_SP(V, FIX, RCONST, JV)
+    DO j=1,NVAR
+      DO i=1,NVAR
+         JF(i,j) = 0.0d0
+      END DO
+    END DO
+    DO i=1,LU_NONZERO
+       JF(LU_IROW(i),LU_ICOL(i)) = JV(i)
+    END DO
+#else
+    CALL Jac_SP(V, FIX, RCONST, JF) 
+#endif   
+
+  END SUBROUTINE JAC_CHEM
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+END MODULE KPP_ROOT_Integrator
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/runge_kutta.m
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/runge_kutta.m	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/runge_kutta.m	(revision 2696)
@@ -0,0 +1,1519 @@
+function [T, Y, RCNTRL, ICNTRL, RSTAT, ISTAT] = ...
+    RK_Int(Function, Tspan, Y0, Options, RCNTRL, ICNTRL)
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+%  Implementation of Fully Implicit RK methods with the
+%  Coefficients:
+%               * Radau2A                                               
+%               * Lobatto3C                                             
+%               * Radau1A                                                
+%               * Gauss                                             
+%               * Lobatto3A                                              
+%                                                                     
+%    Solves the system y'=F(t,y) using a Fully Implicit RK method.
+%
+%    For details on Fully Implicit RK methods and their implementation consult:
+%      E. Hairer and G. Wanner
+%      "Solving ODEs II. Stiff and differential-algebraic problems".
+%      Springer series in computational mathematics, Springer-Verlag, 1996.
+%    The codes contained in the book inspired this implementation.
+%
+%    MATLAB implementation (C) Vishwas Rao (visrao@vt.edu).      
+%    Virginia Polytechnic Institute and State University             
+%    March, 2011    
+%
+%    Based on the Fortran90 implementation (C) Adrian Sandu, August 2004
+%    and revised by Philipp Miehe and Adrian Sandu, May 2006.
+%    Virginia Polytechnic Institute and State University
+%    Contact: sandu@cs.vt.edu
+%
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+%  Input Arguments :
+%  The first four arguments are similar to the input arguments of 
+%  MATLAB's ODE solvers
+%      Function  - A function handle for the ODE function
+%      Tspan     - The time space to integrate
+%      Y0        - Initial value
+%      Options   - ODE solver options created by odeset():           
+%                  AbsTol, InitialStep, Jacobian, MaxStep, and RelTol
+%                  are considered.  Other options are ignored.       
+%                  'Jacobian' must be set.                           
+%      RCNTRL    - real value input parameters (explained below)
+%      ICNTRL    - integer input parameters (explained below)
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+%  Output Arguments:
+%  The first two arguments are similar to the output arguments of
+%  MATLAB's ODE solvers
+%      T         - A vector of final integration times.
+%      Y         - A matrix of function values.  Y(T(i),:) is the value of
+%                  the function at the ith output time.
+%      RCNTRL    - real value input parameters (explained below)
+%      ICNTRL    - integer input parameters (explained below)
+%      RSTAT     - real output parameters (explained below)
+%      ISTAT     - integer output parameters (explained below)
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+%
+%    RCNTRL and ICNTRL on input and output:
+%
+%    Note: For input parameters equal to zero the default values of the
+%       corresponding variables are used.
+%
+%    
+%    ICNTRL(1) = 0: AbsTol, RelTol are N-dimensional vectors
+%              = 1: AbsTol, RelTol are scalars
+%
+%    ICNTRL(2)  -> selection of coefficients
+%        = 0 :    Radau2A
+%        = 1 :    Radau2A
+%        = 2 :    Lobatto3C
+%        = 3 :    Gauss
+%        = 4 :    Radau1A
+%        = 5 :    Lobatto3A
+%       
+%       
+%
+%    ICNTRL(4)  -> maximum number of integration steps
+%        For ICNTRL(4)=0) the default value of 100000 is used
+%
+%    RCNTRL(1)  -> Hmin, lower bound for the integration step size
+%          It is strongly recommended to keep Hmin = ZERO
+%    RCNTRL(2)  -> Hmax, upper bound for the integration step size
+%    RCNTRL(3)  -> Hstart, starting value for the integration step size
+%
+%    RCNTRL(4)  -> FacMin, lower bound on step decrease factor (default=0.2)
+%    RCNTRL(5)  -> FacMax, upper bound on step increase factor (default=6)
+%    RCNTRL(6)  -> FacRej, step decrease factor after multiple rejections
+%                          (default=0.1)
+%    RCNTRL(7)  -> FacSafe, by which the new step is slightly smaller
+%         than the predicted value  (default=0.9)
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+%
+%    RSTAT and ISTAT on output:
+%
+%    ISTAT(1)  -> No. of function calls
+%    ISTAT(2)  -> No. of jacobian calls
+%    ISTAT(3)  -> No. of steps
+%    ISTAT(4)  -> No. of accepted steps
+%    ISTAT(5)  -> No. of rejected steps (except at very beginning)
+%    ISTAT(6)  -> No. of LU decompositions
+%    ISTAT(7)  -> No. of forward/backward substitutions
+%    ISTAT(8)  -> No. of singular matrix decompositions
+%
+%    RSTAT(1)  -> Texit, the time corresponding to the
+%                     computed Y upon return
+%    RSTAT(2)  -> Hexit, last accepted step before exit
+%    RSTAT(3)  -> Hnew, last predicted step (not yet taken)
+%                   For multiple restarts, use Hnew as Hstart
+%                     in the subsequent run
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+global Nfun Njac Nstp Nacc Nrej Ndec Nsol Nsng Ntexit Nhexit Nhnew
+% Parse ODE options
+AbsTol = odeget(Options, 'AbsTol');
+if isempty(AbsTol)
+    AbsTol = 1.0e-3;
+end
+Hstart = odeget(Options, 'InitialStep');
+if isempty(Hstart)
+    Hstart = 0;
+end
+Jacobian = odeget(Options, 'Jacobian');
+if isempty(Jacobian)
+    error('A Jacobian function is required.');
+end
+Hmax = odeget(Options, 'MaxStep');
+if isempty(Hmax)
+    Hmax = 0;
+end
+RelTol = odeget(Options, 'RelTol');
+if isempty(RelTol)
+    RelTol = 1.0e-4;
+end
+% Initialize statistics
+Nfun=1; Njac=2; Nstp=3; Nacc=4; Nrej=5; Ndec=6; Nsol=7; Nsng=8;
+Ntexit=1; Nhexit=2; Nhnew=3;
+RSTATUS = zeros(20,1);
+ISTATUS = zeros(20,1);
+
+% Get problem size
+steps = length(Tspan);
+N = max(size(Y0));
+
+% Initialize tolerances
+ATOL = ones(N,1)*AbsTol;
+RTOL = ones(N,1)*RelTol;
+
+% Initialize step
+RCNTRL(2) = max(0, Hmax);
+RCNTRL(3) = max(0, Hstart);
+
+% Integrate
+Y = zeros(N,steps);
+T = zeros(steps,1);
+Y(:,1) = Y0;
+T(1) = Tspan(1);
+t=cputime;
+for i=2:steps
+    [T(i), Y(:,i), IERR,ISTATUS,RSTATUS] = ...
+        RK_Integrate(N, Y(:,i-1), T(i-1), Tspan(i), ...
+            Function, Jacobian, ATOL, RTOL, RCNTRL, ICNTRL,ISTATUS,RSTATUS);
+
+    if IERR < 0
+        error(['IRK exited with IERR=',num2str(IERR)]);
+    end
+
+end
+cputime-t
+RSTAT=RSTATUS;
+ISTAT=ISTATUS;
+%~~~>  Statistics on the work performed by the RK method
+function [T,Y,Ierr,ISTATUS,RSTATUS] = RK_Integrate(N,Y0,TIN, TOUT,OdeFunction1,...
+    OdeJacobian1,ATOL,RTOL,RCNTRL,ICNTRL,ISTATUS,RSTATUS)
+global ZERO ONE Nfun Njac Nstp Nacc Nrej Ndec Nsol Nsng Ntexit Nhacc Nhnew
+global R2A R1A L3C GAU L3A RKmax
+ZERO =0;ONE=1;Nfun=1;Njac=2;Nstp=3;Nacc=4;Nrej=5;Ndec=6;Nsol=7;Nsng=8;
+Ntexit=1;Nhacc=2;Nhnew=3;RKmax=3;R2A=1;R1A=2;L3C=3;GAU=4;L3A=5;
+Ierr =0;
+RSTATUS = zeros(20,1);
+ISTATUS = zeros(20,1);
+T1 = TIN;
+T2 = TOUT;
+Y(:,1)=Y0;
+[T,Y,Ierr,RSTATUS,ISTATUS] = RungeKutta(N, T1,T2,Y0,RTOL,ATOL,RCNTRL,ICNTRL,RSTATUS,ISTATUS,Ierr,OdeFunction1,OdeJacobian1);
+
+
+
+
+
+if(Ierr < 0)
+    disp('Runge-kutta Unsuccessful exit at T=',num2str(TIN));
+end
+return
+
+function [T,Y,Ierr,RSTATUS,ISTATUS]=RungeKutta(N,T1,T2,Y,RelTol,AbsTol,RCNTRL,...
+    ICNTRL,ISTATUS,RSTATUS,Ierr,OdeFunction1,OdeJacobian1)
+global ZERO  Roundoff SdirkError
+T=T1;
+
+if (ICNTRL(1)==0)
+	    ITOL=1;
+else
+	    ITOL=0;
+end
+
+if(ICNTRL(9)==0)
+    SdirkError = 0;
+else
+    SdirkError = 1;
+end
+
+switch(ICNTRL(2))
+	case{0,1}
+		Radau2A_Coefficients();
+	case(2)
+		Lobatto3C_Coefficients(); 
+	case(3)
+		Gauss_Coefficients();
+	case(4)
+		Radau1A_Coefficients();
+	case(5)
+		Lobatto3A_Coefficients();
+	otherwise
+		disp(['ICNTRL(2)=',num2str(ICNTRL(2))]);
+		RK_ErrorMsg(-13,Tin,0,IERR);
+		return;
+end
+
+if (ICNTRL(3)==0)
+		Max_no_steps=200000;
+else 
+		Max_no_steps=ICNTRL(3);
+        if(Max_no_steps<0)
+            disp(['User-selected max no. of steps is -ve and is ',num2str(ICNTRL(3))]);
+        end
+end
+
+if (ICNTRL(4)==0)
+	NewtonMaxit=8;
+else
+	NewtonMaxit=ICNTRL(4);
+	if NewtonMaxit<=0
+		disp(['User-selected max no. of newton iterations is -ve and is ',num2str(ICNTRL(5))]);
+		RK_ErrorMsg(-2, T, ZERO, IERR);
+	end
+end
+
+if (ICNTRL(5)==0)
+    StartNewton=1;
+else
+    StartNewton =0;
+end
+
+if(ICNTRL(10)==0)
+    Gustafsson = 1;
+else
+    Gustafsson = 0;
+end
+Roundoff = eps;
+if(RCNTRL(1)==ZERO)
+    Hmin = ZERO;
+else
+    Hmin = min(abs(RCNTRL(1)),abs(T2 -T1));
+end
+if(RCNTRL(2)==ZERO)
+    Hmax=abs(T2-T1);
+else
+	Hmax= min(abs(RCNTRL(2)),abs(T2-T1));
+end
+if RCNTRL(3)==0
+	Hstart=0;
+else
+	Hstart = min(abs(RCNTRL(3)),abs(T2-T1));
+end
+
+%FacMin-- Lower bound on step decrease factor
+if (RCNTRL(4) == 0)
+	FacMin = 0.2;
+else 
+   	FacMin = RCNTRL(4);
+end
+%FacMax--Upper bound on step increase factor
+if RCNTRL(5)==0
+	FacMax=8.0;
+else
+	FacMax=RCNTRL(5);
+end
+%FacRej--step decrease factor after 2 consecutive rejections
+if RCNTRL(6)==0
+	FacRej=0.1;
+else
+	FacRej=RCNTRL(6);
+end
+
+%Facsafe:by which the new step is slightly smaller than the 
+	%predicted value
+if RCNTRL(7)==0
+	FacSafe=0.9;
+else
+	FacSafe=RCNTRL(7);
+end
+
+if ( (FacMax < 1) ||( FacMin > 1) || (FacSafe <= 1.0e-03) || (FacSafe >= 1) )
+	disp(['\n RCNTRL(5)=',num2str(RCNTRL(4)) ' RCNTRL[5]=',num2str(RCNTRL(5)) ' RCNTRL[6]=', num2str(RCNTRL(6)) ' RCNTRL[7]=',num2str(RCNTRL(7))]);
+	RK_ErrorMsg(-4, T, ZERO, Ierr);
+end
+
+%ThetaMin: Decides whether the jacobian should be recomputed
+if RCNTRL(8)==0
+	ThetaMin=1.0e-03;
+else
+	ThetaMin=RCNTRL(8);
+end
+if (ThetaMin <= 0.0 || ThetaMin >= 1.0)
+	disp(['RCNTRL[8]=', num2str(RCNTRL(8))]);
+	RK_ErrorMsg(-5, Tin, ZERO, Ierr);
+end
+
+if RCNTRL(9)==0
+	NewtonTol = 3.0e-02;
+else 
+	NewtonTol = RCNTRL(9);
+	if NewtonTol<=Roundoff
+		disp(['RCNTRL(9)=',num2str(RCNTRL(9))]);
+		RK_ErrorMsg(-6, Tin, ZERO,Ierr);
+	end
+end
+
+%Qmin and Qmax: If Qmin < Hnew/Hold < Qmax then step size is constant
+if RCNTRL(10)==0
+	Qmin=1;
+else
+	Qmin = RCNTRL(10);
+end
+if RCNTRL(11)==0
+	Qmax=1.2;
+else
+	Qmax=RCNTRL(11);
+end
+if (Qmin > 1 || Qmax <1)
+	disp(['Qmin=', num2str(RCNTRL(10)) ' Qmax=',num2str(RCNTRl(11))]);
+	RK_ErrorMsg(-7, T, ZERO, Ierr);
+end
+
+%check if tolerances are reasonable
+if ITOL==0
+	if AbsTol(1)<=0 ||  RelTol(1) <= 10.0*Roundoff
+		disp(['AbsTol=', num2str(AbsTol(1)) ' RelTol=',num2str(RelTol(1))]);
+		RK_ErrorMsg(-8, T, ZERO, Ierr);
+	end
+else
+	for i=1:N 
+        if (( AbsTol(i) <= 0) || (RelTol(i) <= 10.0*Roundoff) ) 
+            disp(['AbsTol(',num2str(i) ')= ',num2str(AbsTol(i))]);
+			disp(['RelTol(',num2str(i) ')=  ',RelTol(i)]);
+			RK_ErrorMsg(-8, T, ZERO, Ierr);
+        end
+	end 
+end
+
+if(Ierr < 0)
+    return;
+end
+%Call the core Integrator
+[T,Y,Ierr,ISTATUS,RSTATUS] = RK_Integrator(N,T1,T2,Y,Hstart,Hmin,...
+                            Hmax,Roundoff,AbsTol,RelTol,...
+                            ITOL,Max_no_steps,StartNewton,NewtonTol,ThetaMin,...
+                            FacSafe,FacMin,FacMax,FacRej,Qmin,Qmax,NewtonMaxit,ISTATUS,RSTATUS,Gustafsson,Ierr,OdeFunction1,OdeJacobian1);
+return;
+
+
+
+function [T,Y,Ierr,ISTATUS,RSTATUS] = RK_Integrator(N,T1,T2,Y,Hstart,Hmin,Hmax,...
+                                      Roundoff,AbsTol,RelTol,ITOL,Max_no_steps,...
+                                      StartNewton,NewtonTol,ThetaMin,FacSafe,FacMin,...
+                                      FacMax,FacRej,Qmin,Qmax,NewtonMaxit,ISTATUS,...
+                                      RSTATUS,Gustafsson,Ierr,OdeFunction1,OdeJacobian1)
+global SdirkError ZERO Nfun Njac Nsng  Nstp ONE rkMethod L3A rkBgam
+global rkTheta rkGamma rkD rkELO Nacc Ntexit Nhacc Nhnew Hacc
+T = T1;
+CONT=zeros(N,3);
+Tdirection = sign(T2-T);
+H = min (max(abs(Hmin),abs(Hstart)),Hmax);
+if(abs(H)<=10*Roundoff)
+    H=1.0e-6;
+end
+H =sign(Tdirection)*abs(H);
+Hold = H;
+Reject = 0;
+FirstStep = 1;
+SkipJac = 0;
+SkipLU = 0;
+if((T+H*1.0001-T2)*Tdirection>=ZERO)
+    H = T2 -T;
+end
+Nconsecutive = 0;
+SCAL = RK_ErrorScale(N,ITOL,AbsTol,RelTol,Y);
+while((T2-T)*Tdirection-Roundoff>ZERO)
+    F0 = OdeFunction1(T,Y);
+    ISTATUS(Nfun)=ISTATUS(Nfun)+1;
+    if(SkipLU == 0)
+        if(SkipJac==0)
+            FJAC = OdeJacobian1(T,Y);
+            ISTATUS(Njac)=ISTATUS(Njac)+1;
+        end
+        [E1L,E1U,E2L,E2U,ISING,ISTATUS]=RK_Decomp(N,H,FJAC,ISTATUS);
+        if(ISING ~= 0)
+            ISTATUS(Nsng)=ISTATUS(Nsng)+1;
+            Nconsecutive=Nconsecutive+1;
+            if(Nconsecutive>=5)
+                RK_ErrorMsg(-12,T,H,Ierr);
+            end
+            H=H*0.5;
+            Reject = 1;
+            SkipJac = 1;
+            SkipLU = 0;
+            continue;
+        else
+            Nconsecutive = 0;
+        end
+    end
+    ISTATUS(Nstp)=ISTATUS(Nstp)+1;
+    if (ISTATUS(Nstp)>Max_no_steps)
+		disp(['Max number of time steps is =', num2str(Max_no_steps)]);
+		RK_ErrorMsg(-9,T,H,IERR);
+    end
+    if (0.1*abs(H)<=abs(T)*Roundoff)
+		RK_ErrorMsg(-10,T,H,Ierr);
+    end
+    %Loop for simplified newton iterations
+
+	%Starting values for newton iterations
+    if((FirstStep==1)||(StartNewton==0))
+			Z1=zeros(N,1);
+			Z2=zeros(N,1);
+			Z3=zeros(N,1);
+	else
+		evaluate=2;
+		[CONT, Z1, Z2, Z3]=RK_Interpolate(evaluate, N, H, Hold,Z1,Z2,Z3,CONT);
+    end
+    
+    %/*~~~> Initializations for Newton iteration */
+    
+    NewtonDone = 0;
+    Fac = 0.5;
+    for NewtonIter=1:NewtonMaxit
+        %Preparing RHS
+        [R1,R2,R3]=RK_PrepareRHS(N,T,H,Y,F0,Z1,Z2,Z3,OdeFunction1);
+        %Solve the linear systems
+        [R1,R2,R3,ISTATUS] = RK_Solve(N,H,E1L,E1U,E2L,E2U,R1,R2,R3,ISTATUS);
+        %Find NewtonIncrement
+        NewtonIncrement=sqrt((RK_ErrorNorm(N,SCAL,R1)*RK_ErrorNorm(N,SCAL,R1)...
+									+RK_ErrorNorm(N,SCAL,R2)*RK_ErrorNorm(N,SCAL,R2)...
+									+RK_ErrorNorm(N,SCAL,R3)*RK_ErrorNorm(N,SCAL,R3))...
+							/3.0);
+        if(NewtonIter == 1)
+            Theta = abs(ThetaMin);
+            NewtonRate = 2.0;
+        else
+            Theta = NewtonIncrement/NewtonIncrementOld;
+            if(Theta < 0.99)
+                NewtonRate = Theta/(ONE-Theta);
+            else
+                break
+            end
+            if(NewtonIter<NewtonMaxit)
+                NewtonPredictedErr = NewtonIncrement*Theta^(NewtonMaxit-NewtonIter)/(ONE - Theta);
+                if(NewtonPredictedErr>=NewtonTol)
+                    Qnewton = min(10.0,NewtonPredictedErr/NewtonTol);
+                    Fac = 0.8*Qnewton^(-ONE/(1+NewtonMaxit-NewtonIter));
+                    break
+                end
+            end
+        end
+        NewtonIncrementOld=max(NewtonIncrement,Roundoff);
+        Z1=Z1-R1; 
+        Z2=Z2-R2;
+        Z3=Z3-R3;
+        NewtonDone = (NewtonRate*NewtonIncrement<=NewtonTol);
+        if(NewtonDone==1)
+            break;
+        end
+        if(NewtonIter==NewtonMaxit)
+            disp('Slow or no convergence in newton iterations');
+			disp('Max no of newton iterations reached');
+        end
+    end
+    if(NewtonDone == 0)
+        H=Fac*H;
+        Reject=1;
+        SkipJac=1;
+		SkipLU=0;
+        continue;
+    end
+    %/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+    %/*~~~> SDIRK Stage */
+    %/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+    if(SdirkError==1)
+        Z4=Z3;
+        G=zeros(N,1);
+        if(rkMethod ~= L3A)
+            G=G+rkBgam(1)*H*F0;
+        end
+        G=G+Z1*rkTheta(1);
+        G=G+Z2*rkTheta(2);
+        G=G+Z3*rkTheta(3);
+        NewtonDone = 0;
+        Fac = 0.5;
+        for NewtonIter=1:NewtonMaxit
+            TMP=Y+Z4;
+            R4=OdeFunction1(T+H,TMP);
+            ISTATUS(Nfun)=ISTATUS(Nfun)+1;
+            R4=R4-(rkGamma/H)*Z4;
+            R4=R4+(rkGamma/H)*G;
+            [R4,ISTATUS] = RK_KppSolve(E1L,E1U,R4,ISTATUS);
+            NewtonIncrement = RK_ErrorNorm(N,SCAL,R4);
+            if(NewtonIter==1)
+                ThetaSD=abs(ThetaMin);
+                NewtonRate = 2.0;
+            else
+                ThetaSD = NewtonIncrement/NewtonIncrementOld;
+                if(ThetaSD<0.99)
+                    NewtonRate = ThetaSD/(ONE - ThetaSD);
+                    NewtonPredictedErr=NewtonIncrement*ThetaSD^((NewtonMaxit-NewtonIter)/(1-ThetaSD));
+                    if(NewtonPredictedErr>=NewtonTol)
+						Qnewton=min(10.0,NewtonPredictedErr/NewtonTol);
+						Fac=0.8*Qnewton^(-1/(1+NewtonMaxit-NewtonIter));
+						break;
+                    end
+                else
+                    break;
+                end
+            end
+            NewtonIncrementOld = NewtonIncrement;
+            Z4 = Z4+R4;
+            %Check error in NewtonIterations
+            NewtonDone=(NewtonRate*NewtonIncrement<=NewtonTol);
+            if(NewtonDone==1)
+                break;
+            end
+        end
+        if(NewtonDone == 0)
+            H=Fac*H;
+            Reject =1;
+            SkipJac=1;
+            SkipLU = 0;
+            continue;
+        end
+    end
+    %/*~~~> End of Simplified SDIRK Newton iterations */
+
+    %/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+    %/*~~~> Error estimation */
+    %/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+    if(SdirkError==1)
+        R4=zeros(N,1);
+        if(rkMethod==L3A)
+            R4=H*rkF(1)*F0;
+            if(rkF(2)~=ZERO)
+                R4=R4+Z1*rkF(1);
+            end
+            
+            if(rkF(3)~=ZERO)
+                R4=R4+Z2*rkF(2);
+            end
+            
+            if(rkF(4)~=ZERO)
+                R4=R4+Z3*rkF(3);
+            end
+            
+            TMP = Y+Z4;
+            R1 = OdeFunction1(T+H,TMP);
+            R4=R4+H*rkBgam(5)*R1;
+        else
+            if(rkD(1)~=0)
+                R4=R4+rkD(1)*Z1;
+            end
+            if(rkD(2)~=ZERO)
+                R4=R4+rkD(2)*Z2;
+            end
+            if(rkD(3)~=ZERO)
+                R4=R4+rkD(3)*Z3;
+            end
+            R4=R4-Z4;
+        end
+		Err=RK_ErrorNorm(N,SCAL,R4);
+    else
+        [Err,ISTATUS]=RK_ErrorEstimate(N,H,T,Y,F0,E1L,E1U,Z1,Z2,Z3,SCAL,...
+							FirstStep,Reject,ISTATUS);
+    end
+    Fac=Err^(-1/rkELO)*min(FacSafe,(1+2*NewtonMaxit)/(NewtonIter+2*NewtonMaxit));
+	Fac=min(FacMax,max(FacMin,Fac));
+	Hnew=Fac*H;
+    %/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+    %/*~~~> Accept/reject step */
+    %/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+    
+    %Accept
+    if(Err < ONE)
+        FirstStep =0;
+        ISTATUS(Nacc)=ISTATUS(Nacc)+1;
+        if(Gustafsson==ONE)
+            if(ISTATUS(Nacc)>1)
+                FacGus=FacSafe*(H/Hacc)*(Err*Err/ErrOld)^(-0.25);
+				FacGus=min(FacMax,max(FacMin,FacGus));
+				Fac=min(Fac,FacGus);
+				Hnew=Fac*H;
+            end
+            Hacc=H;
+			ErrOld=max(1.0e-02,Err);
+        end
+        Hold=H;
+		T=T+H;
+		if(rkD(1)~=0)
+			Y=Y+Z1*rkD(1);
+		end
+		if(rkD(2)~=0)
+			Y=Y+Z2*rkD(2);
+		end;
+		if(rkD(3)~=0)
+			Y=Y+Z3*rkD(3);
+		end;
+        %Construct the solution quadratic interpolant Q(c_i)=Z_i,i=1:3
+		if(StartNewton==1)
+			evaluate=1;
+			[CONT, Z1, Z2, Z3]=RK_Interpolate(evaluate, N, H, Hold,Z1,Z2,Z3,CONT);
+		end
+		SCAL=RK_ErrorScale(N,ITOL,AbsTol,RelTol,Y);
+		RSTATUS(Ntexit)=T;
+		RSTATUS(Nhnew)=Hnew;
+		RSTATUS(Nhacc)=H;
+		Hnew=Tdirection*min(max(abs(Hnew),Hmin),Hmax);
+        if(Reject==1)
+			Hnew=Tdirection*min(abs(Hnew),abs(H));
+        end;
+		Reject=0;
+        if((T + Hnew/Qmin - T2)*Tdirection>=0)
+			H=T2-T;
+		else
+			Hratio=Hnew/H;
+			SkipLU=((Theta<=ThetaMin) && (Hratio>=Qmin) && (Hratio<=Qmax));
+			if(SkipLU==0)
+				H=Hnew;
+			end;
+            
+        end;
+         SkipJac=0;
+		
+        else
+			if((FirstStep==1) || (Reject==1))
+				H=FacRej*H;
+			else
+				H=Hnew;
+			end;
+			Reject=1;
+			SkipJac=1;
+			SkipLU=0;
+			if(ISTATUS(Nacc)>=1)
+				ISTATUS(Nrej)=ISTATUS(Nrej)+1;
+			end;
+		end;
+	end;
+	Ierr=1;
+
+return;
+
+function [Err,ISTATUS]=RK_ErrorEstimate(N,H,T,Y,F0,E1L,E1U,Z1,Z2,Z3,SCAL,...
+							FirstStep,Reject,ISTATUS)
+global rkE rkMethod R1A GAU L3A
+HrkE1=rkE(2)/H;
+HrkE2=rkE(3)/H;
+HrkE3=rkE(4)/H;
+F2=HrkE1*Z1+HrkE2*Z2+HrkE3*Z3;
+TMP = rkE(1)*F0+F2;
+[TMP,ISTATUS]=RK_KppSolve(E1L,E1U,TMP,ISTATUS);
+if((rkMethod == R1A) || (rkMethod == GAU) || (rkMethod == L3A))
+	[TMP,ISTATUS]=RK_KppSolve(E1L,E1U,TMP,ISTATUS);
+end
+
+if (rkMethod == GAU)
+	[TMP,ISTATUS]=RK_KppSolve(E1L,E1U,TMP,ISTATUS);
+end
+Err=RK_ErrorNorm(N,SCAL,TMP);
+if(Err < 1)
+    return;
+end
+if((FirstStep==1 )||(Reject==1))
+    TMP=TMP+Y;
+    F1=OdeFunction1(T,TMP);
+    ISTATUS(Nfun)=ISTATUS(Nfun)+1;
+    TMP=F1+F2;
+    [TMP,ISTATUS]=RK_KppSolve(E1L,E1U,TMP,ISTATUS);
+    Err=RK_ErrorNorm(N,SCAL,TMP);
+end
+return
+
+function RK_ErrorMsg(Code, T, H, IERR)
+	
+	Code=IERR;
+	disp('Forced to exit from RungeKutta due to the following error:');
+	switch(Code)
+		case(-1)
+			disp('--> Improper value for maximal no of steps');
+		case (-2)
+      		disp('--> Improper value for maximal no of Newton iterations');
+   		case (-3)
+      		disp('--> Hmin/Hmax/Hstart must be positive');
+   		case (-4)
+      		disp('--> Improper values for FacMin/FacMax/FacSafe/FacRej');
+   		case (-5)
+      		disp('--> Improper value for ThetaMin');
+   		case (-6)
+      		disp('--> Newton stopping tolerance too small');
+   		case (-7)
+      		disp('--> Improper values for Qmin, Qmax');
+   		case (-8)
+      		disp('--> Tolerances are too small');
+   		case (-9)
+      		disp('--> No of steps exceeds maximum bound');
+   		case (-10)
+      		disp('--> Step size too small: (T + 10*H = T) or H < Roundoff');
+   		case (-11)
+      		disp('--> Matrix is repeatedly singular');
+   		case (-12)
+      		disp('--> Non-convergence of Newton iterations');
+   		case (-13)
+      		disp('--> Requested RK method not implemented');
+   		otherwise
+      		disp(['Unknown Error code:', num2str(Code)]);
+	end;
+
+   	disp(['T=',num2str(T) 'H=',num2str(H)]);
+return;
+
+function SCAL=RK_ErrorScale(N,ITOL,AbsTol,RelTol,Y)
+	if(ITOL==0)
+        SCAL=1./(AbsTol(1)+RelTol(1)*abs(Y));
+    else
+        SCAL=1./(AbsTol+RelTol.*abs(Y));
+	end;
+return;
+
+function ErrorNorm = RK_ErrorNorm(N,SCAL,DY)
+
+    temp=DY.*DY.*SCAL.*SCAL;
+    ErrorNorm = sum(temp);
+ErrorNorm=max(sqrt(ErrorNorm/N),1.0e-10);
+
+function [CONT, Z1, Z2, Z3]=RK_Interpolate(action, N, H, Hold,Z1,Z2,Z3,CONT)
+	global rkC
+    
+
+	if(action==1) %Make
+		den=(rkC(3)-rkC(2))*(rkC(2)-rkC(1))*(rkC(1)-rkC(3));
+		for i=1:N
+			CONT(i,1)=(-rkC(3)*rkC(3)*rkC(2)*Z1(i)...
+					  +Z3(i)*rkC(2)*rkC(1)*rkC(1)...
+	   				  +rkC(2)*rkC(2)*rkC(3)*Z1(i)...
+	   				  -rkC(2)*rkC(2)*rkC(1)*Z3(i)...
+	   				  +rkC(3)*rkC(3)*rkC(1)*Z2(i)...
+	   		          -Z2(i)*rkC(3)*rkC(1)*rkC(1))/den-Z3(i);
+			CONT(i,2) = -( rkC(1)*rkC(1)*(Z3(i)-Z2(i))...
+	   		+ rkC(2)*rkC(2)*(Z1(i)-Z3(i))...
+	   		+ rkC(3)*rkC(3)*(Z2(i)-Z1(i)) )/den;
+
+			CONT(i,3) = ( rkC(1)*(Z3(i)-Z2(i))...
+	   		+ rkC(2)*(Z1(i)-Z3(i))...
+	   		+ rkC(3)*(Z2(i)-Z1(i)) )/den;
+		end;
+    end
+    
+    if (action==2) %Eval
+		r=H/Hold;
+		x1=1+rkC(1)*r;
+		x2 = 1 + rkC(2)*r;
+		x3 = 1 + rkC(3)*r;
+		for i=1:N
+		
+			Z1(i) = CONT(i,1)+x1*(CONT(i,2)+x1*CONT(i,3));	
+			Z2(i) = CONT(i,1)+x2*(CONT(i,2)+x2*CONT(i,3));	
+			Z3(i) = CONT(i,1)+x3*(CONT(i,2)+x3*CONT(i,3));
+		end;
+    end;
+return;
+
+
+
+function [R1,R2,R3]=RK_PrepareRHS(N,T,H,Y,FO,Z1,Z2,Z3,OdeFunction1)
+	global rkMethod 
+	global rkA rkC 
+    global L3A
+	R1=Z1;
+	R2=Z2;
+	R3=Z3;
+	if(rkMethod==L3A)
+		R1=R1-H*rkA(1,1)*FO;
+		R2=R2-H*rkA(2,1)*FO;
+		R3=R3-H*rkA(3,1)*FO;
+	end
+	TMP=Y+Z1;
+	F=OdeFunction1(T+rkC(1)*H,TMP);	
+	R1=R1-H*rkA(1,1)*F;
+	R2=R2-H*rkA(2,1)*F;
+	R3=R3-H*rkA(3,1)*F;
+
+	TMP=Y+Z2;
+	F=OdeFunction1(T+rkC(2)*H,TMP);
+	R1=R1-H*rkA(1,2)*F;
+	R2=R2-H*rkA(2,2)*F;
+	R3=R3-H*rkA(3,2)*F;
+
+	TMP=Y+Z3;
+	F=OdeFunction1(T+rkC(3)*H,TMP);
+	R1=R1-H*rkA(1,3)*F;
+	R2=R2-H*rkA(2,3)*F;
+	R3=R3-H*rkA(3,3)*F;
+return;
+
+function [E1L,E1U,E2L,E2U,ISING,ISTATUS]=RK_Decomp(N, H, FJAC,ISTATUS)
+	global Ndec 
+	global rkGamma rkAlpha rkBeta 
+    ISING =0;
+	Gamma = rkGamma / H;
+   	Alpha = rkAlpha / H;
+   	Beta  = rkBeta / H;
+	E1=Gamma*eye(N);
+    E1=E1-FJAC;
+
+
+	
+	[E1L,E1U]=lu(E1);
+    ISTATUS(Ndec)=ISTATUS(Ndec)+1;
+	if(det(E1L)==0 || det(E1U)==0)
+		ISING=1;
+	end;
+    
+	if(ISING ~= 0)
+		
+		return;
+	end;
+    E2R=complex(Alpha,Beta)*eye(N)-FJAC;
+	
+	[E2L,E2U]=lu(E2R);
+    ISTATUS(Ndec)=ISTATUS(Ndec)+1;
+	if(abs(det(E2L))==0 || abs(det(E2U))==0)
+		ISING=1;
+	end;
+	if(ISING ~= 0)
+		return;
+	end;
+    
+return
+
+function [R1,R2,R3,ISTATUS]=RK_Solve(N,H,E1L,E1U,E2L,E2U,R1,R2,R3,ISTATUS)
+	global Nsol  
+	global rkT rkTinvAinv 
+	for i=1:N
+		x1=R1(i)/H;
+		x2=R2(i)/H;
+		x3=R3(i)/H;
+		R1(i) = rkTinvAinv(1,1)*x1 + rkTinvAinv(1,2)*x2 + rkTinvAinv(1,3)*x3;
+		R2(i) = rkTinvAinv(2,1)*x1 + rkTinvAinv(2,2)*x2 + rkTinvAinv(2,3)*x3;
+		R3(i) = rkTinvAinv(3,1)*x1 + rkTinvAinv(3,2)*x2 + rkTinvAinv(3,3)*x3;
+	end;
+	tmp = E1L\R1;
+	R1 =  E1U\tmp;
+	BCR=R2;
+	BCI=R3;
+	a1=complex(BCR,BCI);
+	tmp = E2L\a1;
+	BC = E2U\tmp;
+	R2=real(BC);
+	R3=imag(BC);
+	for i=1:N
+		x1 = R1(i);
+		x2 = R2(i);
+		x3 = R3(i);
+        R1(i) = rkT(1,1)*x1 + rkT(1,2)*x2 + rkT(1,3)*x3;
+		R2(i) = rkT(2,1)*x1 + rkT(2,2)*x2 + rkT(2,3)*x3;
+		R3(i) = rkT(3,1)*x1 + rkT(3,2)*x2 + rkT(3,3)*x3;
+	end
+	ISTATUS(Nsol)=ISTATUS(Nsol)+1;
+return
+
+function [R4,ISTATUS]=RK_KppSolve(E1L,E1U,R4,ISTATUS)
+global Nsol
+temp = E1L\R4;
+R4=E1U\temp;
+ISTATUS(Nsol)=ISTATUS(Nsol)+1;
+return
+
+
+
+
+function Radau2A_Coefficients ()
+
+	global rkMethod SdirkError
+	global rkT rkTinv rkTinvAinv rkAinvT rkA rkB rkC rkD rkE
+	global rkBgam  rkTheta  rkGamma rkAlpha rkBeta rkELO
+	global R2A 
+
+	
+	if(SdirkError==1)
+		b0=0.2e-01;
+	else
+		b0=0.5e-01;
+	end;
+	rkMethod=R2A;
+   	rkA(1,1) = 1.968154772236604258683861429918299e-01;
+	rkA(1,2) = -6.55354258501983881085227825696087e-02;
+	rkA(1,3) = 2.377097434822015242040823210718965e-02;
+	rkA(2,1) = 3.944243147390872769974116714584975e-01;
+	rkA(2,2) = 2.920734116652284630205027458970589e-01;
+	rkA(2,3) = -4.154875212599793019818600988496743e-02;
+	rkA(3,1) = 3.764030627004672750500754423692808e-01;
+	rkA(3,2) = 5.124858261884216138388134465196080e-01;
+	rkA(3,3) = 1.111111111111111111111111111111111e-01;
+
+	rkB(1) = 3.764030627004672750500754423692808e-01;
+	rkB(2) = 5.124858261884216138388134465196080e-01;
+	rkB(3) = 1.111111111111111111111111111111111e-01;
+
+	rkC(1) = 1.550510257216821901802715925294109e-01;
+	rkC(2) = 6.449489742783178098197284074705891e-01;
+	rkC(3) = 1;
+
+	% New solution: H* Sum B_j*f(Z_j) = Sum D_j*Z_j 
+	rkD(1) =0;
+	rkD(2) =0;
+	rkD(3) =1;
+
+	% Classical error estimator: */
+	% H* Sum (B_j-Bhat_j)*f(Z_j) = H*E(0)*f(0) + Sum E_j*Z_j */
+	rkE(1) = 1*b0;
+	rkE(2) = -10.04880939982741556246032950764708*b0;
+	rkE(3) = 1.382142733160748895793662840980412*b0;
+	rkE(4) = -.3333333333333333333333333333333333*b0;
+
+    %	/* Sdirk error estimator */
+	rkBgam(1) = b0;
+	rkBgam(2) = .3764030627004672750500754423692807...
+			-1.558078204724922382431975370686279*b0;
+	rkBgam(3) = 0.8914115380582557157653087040196118*b0...
+			+0.5124858261884216138388134465196077;
+	rkBgam(4) = (-0.1637777184845662566367174924883037)...
+			-0.3333333333333333333333333333333333*b0;
+	rkBgam(5) = 0.2748888295956773677478286035994148;
+
+	% H* Sum Bgam_j*f(Z_j) = H*Bgam(0)*f(0) + Sum Theta_j*Z_j */
+	rkTheta(1) = (-1.520677486405081647234271944611547)...
+			-10.04880939982741556246032950764708*b0;
+	rkTheta(2) = (2.070455145596436382729929151810376)...
+			+1.382142733160748895793662840980413*b0;
+	rkTheta(3) = -0.3333333333333333333333333333333333*b0...
+			-.3744441479783868387391430179970741;
+
+	%/* Local order of error estimator */
+	if ( b0 == 0)
+		rkELO  = 6.0;
+	else
+		rkELO  = 4.0;
+	end;
+
+	%/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+	 % ~~~> Diagonalize the RK matrix:
+	  %rkTinv * inv(rkA) * rkT =
+	  %|  rkGamma      0           0     |
+	  %|      0      rkAlpha   -rkBeta   |
+	  %|      0      rkBeta     rkAlpha  |
+	  %~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+	rkGamma = 3.637834252744495732208418513577775;
+	rkAlpha = 2.681082873627752133895790743211112;
+	rkBeta  = 3.050430199247410569426377624787569;
+
+	rkT(1,1) = 9.443876248897524148749007950641664e-02;
+	rkT(1,2) = -1.412552950209542084279903838077973e-01;
+	rkT(1,3) = -3.00291941051474244918611170890539e-02;
+	rkT(2,1) = 2.502131229653333113765090675125018e-01;
+	rkT(2,2) = 2.041293522937999319959908102983381e-01;
+	rkT(2,3) = 3.829421127572619377954382335998733e-01;
+	rkT(3,1) =  1;
+	rkT(3,2) =  1;
+	rkT(3,3) =  0;
+
+	rkTinv(1,1) = 4.178718591551904727346462658512057;
+	rkTinv(1,2) = 3.27682820761062387082533272429617e-01;
+	rkTinv(1,3) = 5.233764454994495480399309159089876e-01;
+	rkTinv(2,1) = -4.178718591551904727346462658512057;
+	rkTinv(2,2) = -3.27682820761062387082533272429617e-01;
+	rkTinv(2,3) = 4.766235545005504519600690840910124e-01;
+	rkTinv(3,1) = -5.02872634945786875951247343139544e-01;
+	rkTinv(3,2) = 2.571926949855605429186785353601676;
+	rkTinv(3,3) = -5.960392048282249249688219110993024e-01;
+
+	rkTinvAinv(1,1) = 1.520148562492775501049204957366528e+01;
+	rkTinvAinv(1,2) = 1.192055789400527921212348994770778;
+	rkTinvAinv(1,3) = 1.903956760517560343018332287285119;
+	rkTinvAinv(2,1) = -9.669512977505946748632625374449567;
+	rkTinvAinv(2,2) = -8.724028436822336183071773193986487;
+	rkTinvAinv(2,3) = 3.096043239482439656981667712714881;
+	rkTinvAinv(3,1) = -1.409513259499574544876303981551774e+01;
+	rkTinvAinv(3,2) = 5.895975725255405108079130152868952;
+	rkTinvAinv(3,3) = -1.441236197545344702389881889085515e-01;
+
+	rkAinvT(1,1) = .3435525649691961614912493915818282;
+	rkAinvT(1,2) = -.4703191128473198422370558694426832;
+	rkAinvT(1,3) = .3503786597113668965366406634269080;
+	rkAinvT(2,1) = .9102338692094599309122768354288852;
+	rkAinvT(2,2) = 1.715425895757991796035292755937326;
+	rkAinvT(2,3) = .4040171993145015239277111187301784;
+	rkAinvT(3,1) = 3.637834252744495732208418513577775;
+	rkAinvT(3,2) = 2.681082873627752133895790743211112;
+	rkAinvT(3,3) = -3.050430199247410569426377624787569;
+return;
+
+function Lobatto3C_Coefficients()
+	
+	global rkMethod SdirkError
+	global rkT rkTinv rkTinvAinv rkAinvT rkA rkB rkC rkD rkE
+	global rkBgam rkBhat rkTheta rkGamma rkAlpha rkBeta rkELO
+	global L3C 
+
+	
+
+	rkMethod=L3C;
+	if(SdirkError==1)
+		b0=0.2;
+	else
+		b0=0.5;
+	end;
+	rkA(1,1) = .1666666666666666666666666666666667;
+	rkA(1,2) = -.3333333333333333333333333333333333;
+	rkA(1,3) = .1666666666666666666666666666666667;
+	rkA(2,1) = .1666666666666666666666666666666667;
+	rkA(2,2) = .4166666666666666666666666666666667;
+	rkA(2,3) = -.8333333333333333333333333333333333e-01;
+	rkA(3,1) = .1666666666666666666666666666666667;
+	rkA(3,2) = .6666666666666666666666666666666667;
+	rkA(3,3) = .1666666666666666666666666666666667;
+
+	rkB(1) = .1666666666666666666666666666666667;
+	rkB(2) = .6666666666666666666666666666666667;
+	rkB(3) = .1666666666666666666666666666666667;
+
+	rkC(1) = 0;
+	rkC(2) = 0.5;
+	rkC(3) = 1;
+
+	%/* Classical error estimator, embedded solution: */
+	rkBhat(1) = b0;
+	rkBhat(2) = .16666666666666666666666666666666667-b0;
+	rkBhat(3) = .66666666666666666666666666666666667;
+	rkBhat(4) = .16666666666666666666666666666666667;
+
+%	/* New solution: h Sum_j b_j f(Z_j) = sum d_j Z_j */
+	rkD(1) = 0;
+	rkD(2) = 0;
+	rkD(3) = 1;
+
+%	/* Classical error estimator: */
+%	/* H* Sum (B_j-Bhat_j)*f(Z_j) = H*E(0)*f(0) + Sum E_j*Z_j */
+	rkE(1) = .3808338772072650364017425226487022*b0;
+	rkE(2) = (-1.142501631621795109205227567946107)*b0;
+	rkE(3) = (-1.523335508829060145606970090594809)*b0;
+	rkE(4) = .3808338772072650364017425226487022*b0;
+
+%	/* Sdirk error estimator */
+	rkBgam(1) = b0;
+	rkBgam(2) = .1666666666666666666666666666666667-1.0*b0;
+	rkBgam(3) = .6666666666666666666666666666666667;
+	rkBgam(4) = (-.2141672105405983697350758559820354);
+	rkBgam(5) = .3808338772072650364017425226487021;
+
+%	/* H* Sum Bgam_j*f(Z_j) = H*Bgam(0)*f(0) + Sum Theta_j*Z_j */
+	rkTheta(1) = -3.0*b0-.3808338772072650364017425226487021;
+	rkTheta(2) = -4.0*b0+1.523335508829060145606970090594808;
+	rkTheta(3) = (-.142501631621795109205227567946106)+b0;
+
+%	/* Local order of error estimator */
+	if (b0 == 0)
+			rkELO  = 5.0;
+	else
+			rkELO  = 4.0;
+
+	%/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+	%  ~~~> Diagonalize the RK matrix:
+	%  rkTinv * inv(rkA) * rkT =
+	%  |  rkGamma      0           0     |
+	%  |      0      rkAlpha   -rkBeta   |
+	%  |      0      rkBeta     rkAlpha  |
+	%  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+	rkGamma = 2.625816818958466716011888933765284;
+	rkAlpha = 1.687091590520766641994055533117359;
+	rkBeta  = 2.508731754924880510838743672432351;
+
+	rkT(1,2) = 1;
+	rkT(1,2) = 1;
+	rkT(1,3) = 0;
+	rkT(2,1) = .4554100411010284672111720348287483;
+	rkT(2,2) = -.6027050205505142336055860174143743;
+	rkT(2,3) = -.4309321229203225731070721341350346;
+	rkT(3,1) = 2.195823345445647152832799205549709;
+	rkT(3,2) = -1.097911672722823576416399602774855;
+	rkT(3,3) = .7850032632435902184104551358922130;
+
+	rkTinv(1,1) = .4205559181381766909344950150991349;
+	rkTinv(1,2) = .3488903392193734304046467270632057;
+	rkTinv(1,3) = .1915253879645878102698098373933487;
+	rkTinv(2,1) = .5794440818618233090655049849008650;
+	rkTinv(2,2) = -.3488903392193734304046467270632057;
+	rkTinv(2,3) = -.1915253879645878102698098373933487;
+	rkTinv(3,1) = -.3659705575742745254721332009249516;
+	rkTinv(3,2) = -1.463882230297098101888532803699806;
+	rkTinv(3,3) = .4702733607340189781407813565524989;
+
+	rkTinvAinv(1,1) = 1.104302803159744452668648155627548;
+	rkTinvAinv(1,2) = .916122120694355522658740710823143;
+	rkTinvAinv(1,3) = .5029105849749601702795812241441172;
+	rkTinvAinv(2,1) = 1.895697196840255547331351844372453;
+	rkTinvAinv(2,2) = 3.083877879305644477341259289176857;
+	rkTinvAinv(2,3) = -1.502910584974960170279581224144117;
+	rkTinvAinv(3,1) = .8362439183082935036129145574774502;
+	rkTinvAinv(3,2) = -3.344975673233174014451658229909802;
+	rkTinvAinv(3,3) = .312908409479233358005944466882642;
+
+	rkAinvT(1,1) = 2.625816818958466716011888933765282;
+	rkAinvT(1,2) = 1.687091590520766641994055533117358;
+	rkAinvT(1,3) = -2.508731754924880510838743672432351;
+	rkAinvT(2,1) = 1.195823345445647152832799205549710;
+	rkAinvT(2,2) = -2.097911672722823576416399602774855;
+	rkAinvT(2,3) = .7850032632435902184104551358922130;
+	rkAinvT(3,1) = 5.765829871932827589653709477334136;
+	rkAinvT(3,2) = .1170850640335862051731452613329320;
+	rkAinvT(3,3) = 4.078738281412060947659653944216779;
+end;
+return;
+
+	% /* Lobatto3C_Coefficients */
+function Gauss_Coefficients()
+	
+	global rkMethod 
+	global rkT rkTinv rkTinvAinv rkAinvT rkA rkB rkC rkD rkE
+	global rkBgam rkBhat rkTheta rkGamma rkAlpha rkBeta rkELO
+	global GAU 
+
+
+   rkMethod = GAU;
+   
+   b0 = 0.1;
+
+   %/* The coefficients of the Gauss method */
+   rkA(1,1) = .1388888888888888888888888888888889;
+   rkA(1,2) = -.359766675249389034563954710966045e-01;
+   rkA(1,3) = .97894440153083260495800422294756e-02;
+   rkA(2,1) = .3002631949808645924380249472131556;
+   rkA(2,2) = .2222222222222222222222222222222222;
+   rkA(2,3) = -.224854172030868146602471694353778e-01;
+   rkA(3,1) = .2679883337624694517281977355483022;
+   rkA(3,2) = .4804211119693833479008399155410489;
+   rkA(3,3) = .1388888888888888888888888888888889;
+
+   rkB(1) = .2777777777777777777777777777777778;
+   rkB(2) = .4444444444444444444444444444444444;
+   rkB(3) = .2777777777777777777777777777777778;
+
+   rkC(1) = .1127016653792583114820734600217600;
+   rkC(2) = .5000000000000000000000000000000000;
+   rkC(3) = .8872983346207416885179265399782400;
+
+%   /* Classical error estimator, embedded solution: */
+   rkBhat(1) = b0;
+   rkBhat(2) = -1.4788305577012361475298775666303999*b0...
+   		 +.27777777777777777777777777777777778;
+   rkBhat(3) = .44444444444444444444444444444444444...
+    	         +.66666666666666666666666666666666667*b0;
+   rkBhat(4) = -.18783610896543051913678910003626672*b0...
+  	         +.27777777777777777777777777777777778;
+
+ %  /* New solution: h Sum_j b_j f(Z_j) = sum d_j Z_j */
+   rkD(1) = (.1666666666666666666666666666666667e+01);
+   rkD(2) = (-.1333333333333333333333333333333333e+01);
+   rkD(3) = (.1666666666666666666666666666666667e+01);
+
+   %/* Classical error estimator: */
+   %/* H* Sum (B_j-Bhat_j)*f(Z_j) = H*E(0)*f(0) + Sum E_j*Z_j */
+   rkE(1) = .2153144231161121782447335303806954*b0;
+   rkE(2) = (-2.825278112319014084275808340593191)*b0;
+   rkE(3) = .2870858974881495709929780405075939*b0;
+   rkE(4) = (-.4558086256248162565397206448274867e-01)*b0;
+
+   %/* Sdirk error estimator */
+   rkBgam(1) = 0;
+   rkBgam(2) = .2373339543355109188382583162660537;
+   rkBgam(3) = .5879873931885192299409334646982414;
+   rkBgam(4) = -.4063577064014232702392531134499046e-01;
+   rkBgam(5) = .2153144231161121782447335303806955;
+
+   %/* H* Sum Bgam_j*f(Z_j) = H*Bgam(0)*f(0) + Sum Theta_j*Z_j */
+   rkTheta(1) = (-2.594040933093095272574031876464493);
+   rkTheta(2) = 1.824611539036311947589425112250199;
+   rkTheta(3) = .1856563166634371860478043996459493;
+
+   %/* ELO = local order of classical error estimator */
+   rkELO = 4.0;
+
+   %/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   %~~~> Diagonalize the RK matrix:
+   % rkTinv * inv(rkA) * rkT =
+   %           |  rkGamma      0           0     |
+   %           |      0      rkAlpha   -rkBeta   |
+   %           |      0      rkBeta     rkAlpha  |
+   %~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+   rkGamma = 4.644370709252171185822941421408064;
+   rkAlpha = 3.677814645373914407088529289295970;
+   rkBeta  = 3.508761919567443321903661209182446;
+
+   rkT(1,1) = .7215185205520017032081769924397664e-01;
+   rkT(1,2) = -.8224123057363067064866206597516454e-01;
+   rkT(1,3) = -.6012073861930850173085948921439054e-01;
+   rkT(2,1) = .1188325787412778070708888193730294;
+   rkT(2,2) = .5306509074206139504614411373957448e-01;
+   rkT(2,3) = .3162050511322915732224862926182701;
+   rkT(3,1) = 1;
+   rkT(3,2) = 1;
+   rkT(3,3) = 0;
+
+   rkTinv(1,1) = 5.991698084937800775649580743981285;
+   rkTinv(1,2) = 1.139214295155735444567002236934009;
+   rkTinv(1,3) = .4323121137838583855696375901180497;
+   rkTinv(2,1) = -5.991698084937800775649580743981285;
+   rkTinv(2,2) = -1.139214295155735444567002236934009;
+   rkTinv(2,3) = .5676878862161416144303624098819503;
+   rkTinv(3,1) = -1.246213273586231410815571640493082;
+   rkTinv(3,2) = 2.925559646192313662599230367054972;
+   rkTinv(3,3) = -.2577352012734324923468722836888244;
+
+   rkTinvAinv(1,1) = 27.82766708436744962047620566703329;
+   rkTinvAinv(1,2) = 5.290933503982655311815946575100597;
+   rkTinvAinv(1,3) = 2.007817718512643701322151051660114;
+   rkTinvAinv(2,1) = (-17.66368928942422710690385180065675);
+   rkTinvAinv(2,2) = (-14.45491129892587782538830044147713);
+   rkTinvAinv(2,3) = 2.992182281487356298677848948339886;
+   rkTinvAinv(3,1) = (-25.60678350282974256072419392007303);
+   rkTinvAinv(3,2) = 6.762434375611708328910623303779923;
+   rkTinvAinv(3,3) = 1.043979339483109825041215970036771;
+
+   rkAinvT(1,1) = .3350999483034677402618981153470483;
+   rkAinvT(1,2) = -.5134173605009692329246186488441294;
+   rkAinvT(1,3) = .6745196507033116204327635673208923e-01;
+   rkAinvT(2,1) = .5519025480108928886873752035738885;
+   rkAinvT(2,2) = 1.304651810077110066076640761092008;
+   rkAinvT(2,3) = .9767507983414134987545585703726984;
+   rkAinvT(3,1) = 4.644370709252171185822941421408064;
+   rkAinvT(3,2) = 3.677814645373914407088529289295970;
+   rkAinvT(3,3) = -3.508761919567443321903661209182446;
+return;
+ %/* Gauss_Coefficients */
+
+%/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+%	The coefficients of the 3-stage Gauss method
+%	(given to ~30 accurate digits)
+%	The parameter b3 can be chosen by the user
+%	to tune the error estimator
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+function Radau1A_Coefficients()
+	global rkMethod 
+	global rkT rkTinv rkTinvAinv rkAinvT rkA rkB rkC rkD rkE
+	global rkBgam rkBhat rkTheta rkGamma rkAlpha rkBeta rkELO
+	global  R1A 
+
+	global ZERO 
+
+
+%   /* The coefficients of the Radau1A method */
+   b0 = 0.1;
+   rkMethod = R1A;
+   rkA(1,1) =  .1111111111111111111111111111111111;
+   rkA(1,2) = (-.1916383190435098943442935597058829);
+   rkA(1,3) = (.8052720793239878323318244859477174e-01);
+   rkA(2,1) = .1111111111111111111111111111111111;
+   rkA(2,2) = .2920734116652284630205027458970589;
+   rkA(2,3) = (-.481334970546573839513422644787591e-01);
+   rkA(3,1) = .1111111111111111111111111111111111;
+   rkA(3,2) = .5370223859435462728402311533676479;
+   rkA(3,3) = .1968154772236604258683861429918299;
+
+   rkB(1) = .1111111111111111111111111111111111;
+   rkB(2) = .5124858261884216138388134465196080;
+   rkB(3) = .3764030627004672750500754423692808;
+
+   rkC(1) = 0;
+   rkC(2) = .3550510257216821901802715925294109;
+   rkC(3) = .8449489742783178098197284074705891;
+
+  % /* Classical error estimator, embedded solution: */
+   rkBhat(1) = b0;
+   rkBhat(2) = .11111111111111111111111111111111111-b0;
+   rkBhat(3) = .51248582618842161383881344651960810;
+   rkBhat(4) = .37640306270046727505007544236928079;
+
+   %/* New solution: H* Sum B_j*f(Z_j) = Sum D_j*Z_j */
+   rkD(1) = .3333333333333333333333333333333333;
+   rkD(2) = -.8914115380582557157653087040196127;
+   rkD(3) = 1.558078204724922382431975370686279;
+
+   %/* Classical error estimator: */
+   %/* H* Sum (b_j-bhat_j) f(Z_j) = H*E(0)*F(0) + Sum E_j Z_j */
+   rkE(1) = .2748888295956773677478286035994148*b0;
+   rkE(2) = -1.374444147978386838739143017997074*b0;
+   rkE(3) = -1.335337922441686804550326197041126*b0;
+   rkE(4) = .235782604058977333559011782643466*b0;
+
+   %/* Sdirk error estimator */
+   rkBgam(1) = ZERO;
+   rkBgam(2) = (.1948150124588532186183490991130616e-01);
+   rkBgam(3) = .7575249005733381398986810981093584;
+   rkBgam(4) = (-.518952314149008295083446116200793e-01);
+   rkBgam(5) = .2748888295956773677478286035994148;
+
+   %/* H* Sum Bgam_j*f(Z_j) = H*Bgam(0)*f(0) + Sum Theta_j*Z_j */
+   rkTheta(1) = (-1.224370034375505083904362087063351);
+   rkTheta(2) = .9340045331532641409047527962010133;
+   rkTheta(3) = .4656990124352088397561234800640929;
+
+   %/* ELO = local order of classical error estimator */
+   rkELO = 4.0;
+
+   %/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   %~~~> Diagonalize the RK matrix:
+   % rkTinv * inv(rkA) * rkT =
+   %           |  rkGamma      0           0     |
+   %           |      0      rkAlpha   -rkBeta   |
+   %           |      0      rkBeta     rkAlpha  |
+   %~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+   rkGamma = 3.637834252744495732208418513577775;
+   rkAlpha = 2.681082873627752133895790743211112;
+   rkBeta  = 3.050430199247410569426377624787569;
+
+   rkT(1,1) = .424293819848497965354371036408369;
+   rkT(1,2) = -.3235571519651980681202894497035503;
+   rkT(1,3) = -.522137786846287839586599927945048;
+   rkT(2,1) = .57594609499806128896291585429339e-01;
+   rkT(2,2) = .3148663231849760131614374283783e-02;
+   rkT(2,3) = .452429247674359778577728510381731;
+   rkT(3,1) = 1;
+   rkT(3,2) = 1;
+   rkT(3,3) = 0;
+
+   rkTinv(1,1) = 1.233523612685027760114769983066164;
+   rkTinv(1,2) = 1.423580134265707095505388133369554;
+   rkTinv(1,3) = .3946330125758354736049045150429624;
+   rkTinv(2,1) = -1.233523612685027760114769983066164;
+   rkTinv(2,2) = -1.423580134265707095505388133369554;
+   rkTinv(2,3) = .6053669874241645263950954849570376;
+   rkTinv(3,1) = -.1484438963257383124456490049673414;
+   rkTinv(3,2) = 2.038974794939896109682070471785315;
+   rkTinv(3,3) = -.544501292892686735299355831692542e-01;
+
+   rkTinvAinv(1,1) = 4.487354449794728738538663081025420;
+   rkTinvAinv(1,2) = 5.178748573958397475446442544234494;
+   rkTinvAinv(1,3) = 1.435609490412123627047824222335563;
+   rkTinvAinv(2,1) = -2.854361287939276673073807031221493;
+   rkTinvAinv(2,2) = -1.003648660720543859000994063139137e+01;
+   rkTinvAinv(2,3) = 1.789135380979465422050817815017383;
+   rkTinvAinv(3,1) = -4.160768067752685525282947313530352;
+   rkTinvAinv(3,2) = 1.124128569859216916690209918405860;
+   rkTinvAinv(3,3) = 1.700644430961823796581896350418417;
+
+   rkAinvT(1,1) = 1.543510591072668287198054583233180;
+   rkAinvT(1,2) = -2.460228411937788329157493833295004;
+   rkAinvT(1,3) = -.412906170450356277003910443520499;
+   rkAinvT(2,1) = .209519643211838264029272585946993;
+   rkAinvT(2,2) = 1.388545667194387164417459732995766;
+   rkAinvT(2,3) = 1.20339553005832004974976023130002;
+   rkAinvT(3,1) = 3.637834252744495732208418513577775;
+   rkAinvT(3,2) = 2.681082873627752133895790743211112;
+   rkAinvT(3,3) = -3.050430199247410569426377624787569;
+return;
+% /* Radau1A_Coefficients */
+
+%/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+%	The coefficients of the 4-stage Lobatto-3A method
+%	(given to ~30 accurate digits)
+%  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+function Lobatto3A_Coefficients()
+	
+	global rkMethod 
+	global rkT rkTinv rkTinvAinv rkAinvT rkA rkB rkC rkD rkE
+	global rkBgam rkBhat rkTheta rkF rkGamma rkAlpha rkBeta rkELO
+	global L3A
+
+
+   %/* The coefficients of the Lobatto-3A method */
+   rkMethod = L3A;
+
+   rkA(1,1) = 0;
+   rkA(1,2) = 0;
+   rkA(1,3) = 0;
+   rkA(1,4) = 0;
+   rkA(2,1) = .11030056647916491413674311390609397;
+   rkA(2,2) = .1896994335208350858632568860939060;
+   rkA(2,3) = -.339073642291438837776604807792215e-01;
+   rkA(2,4) = .1030056647916491413674311390609397e-01;
+   rkA(3,1) = .73032766854168419196590219427239365e-01;
+   rkA(3,2) = .4505740308958105504443271474458881;
+   rkA(3,3) = .2269672331458315808034097805727606;
+   rkA(3,4) = -.2696723314583158080340978057276063e-01;
+   rkA(4,1) = .83333333333333333333333333333333333e-01;
+   rkA(4,2) = .4166666666666666666666666666666667;
+   rkA(4,3) = .4166666666666666666666666666666667;
+   rkA(4,4) = .8333333333333333333333333333333333e-01;
+
+   rkB(1) = .83333333333333333333333333333333333e-01;
+   rkB(2) = .4166666666666666666666666666666667;
+   rkB(3) = .4166666666666666666666666666666667;
+   rkB(4) = .8333333333333333333333333333333333e-01;
+
+   rkC(1) = 0;
+   rkC(2) = .2763932022500210303590826331268724;
+   rkC(3) = .7236067977499789696409173668731276;
+   rkC(4) = 1;
+
+   %/* New solution: H*Sum B_j*f(Z_j) = Sum D_j*Z_j */
+   rkD(1) = 0;
+   rkD(2) = 0;
+   rkD(3) = 0;
+   rkD(4) = 1;
+
+   %/* Classical error estimator, embedded solution: */
+   rkBhat(1) = .90909090909090909090909090909090909e-01;
+   rkBhat(2) = .39972675774621371442114262372173276;
+   rkBhat(3) = .43360657558711961891219070961160058;
+   rkBhat(4) = .15151515151515151515151515151515152e-01;
+
+   %/* Classical error estimator: */
+   %/* H* Sum (B_j-Bhat_j)*f(Z_j) = H*E(0)*f(0) + Sum E_j*Z_j */
+
+   rkE(1) = .1957403846510110711315759367097231e-01;
+   rkE(2) = -.1986820345632580910316020806676438;
+   rkE(3) = .1660586371214229125096727578826900;
+   rkE(4) = -.9787019232550553556578796835486154e-01;
+
+   %/* Sdirk error estimator: */
+   rkF(1) = 0;
+   rkF(2) = -.66535815876916686607437314126436349;
+   rkF(3) = 1.7419302743497277572980407931678409;
+   rkF(4) = -1.2918865386966730694684011822841728;
+
+   %/* ELO = local order of classical error estimator */
+   rkELO = 4.0;
+
+   %/* Sdirk error estimator: */
+   rkBgam(1) = .2950472755430528877214995073815946e-01;
+   rkBgam(2) = .5370310883226113978352873633882769;
+   rkBgam(3) = .2963022450107219354980459699450564;
+   rkBgam(4) = -.7815248400375080035021681445218837e-01;
+   rkBgam(5) = .2153144231161121782447335303806956;
+
+   %/* H* Sum Bgam_j*f(Z_j) = H*Bgam(0)*f(0) + Sum Theta_j*Z_j */
+   rkTheta(1) = 0.0;
+   rkTheta(2) = -.6653581587691668660743731412643631;
+   rkTheta(3) = 1.741930274349727757298040793167842;
+   rkTheta(4) = -.291886538696673069468401182284174;
+
+
+   %/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   %~~~> Diagonalize the RK matrix:
+   % rkTinv * inv(rkA) * rkT =
+   %          |  rkGamma      0           0     |
+   %           |      0      rkAlpha   -rkBeta   |
+   %           |      0      rkBeta     rkAlpha  |
+   %~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+   rkGamma = 4.644370709252171185822941421408063;
+   rkAlpha = 3.677814645373914407088529289295968;
+   rkBeta  = 3.508761919567443321903661209182446;
+
+   rkT(1,1) = .5303036326129938105898786144870856e-01;
+   rkT(1,2) = -.7776129960563076320631956091016914e-01;
+   rkT(1,3) = .6043307469475508514468017399717112e-02;
+   rkT(2,1) = .2637242522173698467283726114649606;
+   rkT(2,2) = .2193839918662961493126393244533346;
+   rkT(2,3) = .3198765142300936188514264752235344;
+   rkT(3,1) = 1;
+   rkT(3,2) = 0;
+   rkT(3,3) = 0;
+
+   rkTinv(1,1) = 7.695032983257654470769069079238553;
+   rkTinv(1,2) = -.1453793830957233720334601186354032;
+   rkTinv(1,3) = .6302696746849084900422461036874826;
+   rkTinv(2,1) = -7.695032983257654470769069079238553;
+   rkTinv(2,2) = .1453793830957233720334601186354032;
+   rkTinv(2,3) = .3697303253150915099577538963125174;
+   rkTinv(3,1) = -1.066660885401270392058552736086173;
+   rkTinv(3,2) = 3.146358406832537460764521760668932;
+   rkTinv(3,3) = -.7732056038202974770406168510664738;
+
+   rkTinvAinv(1,1) = 35.73858579417120341641749040405149;
+   rkTinvAinv(1,2) = -.675195748578927863668368190236025;
+   rkTinvAinv(1,3) = 2.927206016036483646751158874041632;
+   rkTinvAinv(2,1) = -24.55824590667225493437162206039511;
+   rkTinvAinv(2,2) = -10.50514413892002061837750015342036;
+   rkTinvAinv(2,3) = 4.072793983963516353248841125958369;
+   rkTinvAinv(3,1) = -30.92301972744621647251975054630589;
+   rkTinvAinv(3,2) = 12.08182467154052413351908559269928;
+   rkTinvAinv(3,3) = -1.546411207640594954081233702132946;
+
+   rkAinvT(1,1) = .2462926658317812882584158369803835;
+   rkAinvT(1,2) = -.2647871194157644619747121197289574;
+   rkAinvT(1,3) = .2950720515900466654896406799284586;
+   rkAinvT(2,1) = 1.224833192317784474576995878738004;
+   rkAinvT(2,2) = 1.929224190340981580557006261869763;
+   rkAinvT(2,3) = .4066803323234419988910915619080306;
+   rkAinvT(3,1) = 4.644370709252171185822941421408064;
+   rkAinvT(3,2) = 3.677814645373914407088529289295968;
+   rkAinvT(3,3) = -3.508761919567443321903661209182446;
+return;
+		%/* Lobatto3A_Coefficients */
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/runge_kutta_adj.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/runge_kutta_adj.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/runge_kutta_adj.def	(revision 2696)
@@ -0,0 +1,8 @@
+ 
+#FUNCTION AGGREGATE
+#JACOBIAN SPARSE_LU_ROW
+
+#DOUBLE ON 
+#INTFILE runge_kutta_adj
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/runge_kutta_adj.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/runge_kutta_adj.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/runge_kutta_adj.f90	(revision 2696)
@@ -0,0 +1,2696 @@
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
+!  RungeKuttaADJ - Adjoint Model of Fully Implicit 3-stage Runge-Kutta:   !
+!          * Radau-2A   quadrature (order 5)                              !
+!          * Radau-1A   quadrature (order 5)                              !
+!          * Lobatto-3C quadrature (order 4)                              !
+!          * Gauss      quadrature (order 6)                              !
+!  By default the code employs the KPP sparse linear algebra routines     !
+!  Compile with -DFULL_ALGEBRA to use full linear algebra (LAPACK)        !
+!                                                                         !
+!    (C)  Adrian Sandu, August 2005                                       !
+!    Virginia Polytechnic Institute and State University                  !
+!    Contact: sandu@cs.vt.edu                                             !
+!    Revised by Philipp Miehe and Adrian Sandu, May 2006                  !
+!    This implementation is part of KPP - the Kinetic PreProcessor        !
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
+
+MODULE KPP_ROOT_Integrator
+
+  USE KPP_ROOT_Precision
+  USE KPP_ROOT_Parameters, ONLY: NVAR, NSPEC, NFIX, LU_NONZERO
+  USE KPP_ROOT_Global, ONLY: FIX, RCONST, TIME
+  USE KPP_ROOT_Jacobian
+  USE KPP_ROOT_LinearAlgebra
+
+  IMPLICIT NONE
+  PUBLIC
+  SAVE
+
+!~~~>  Statistics on the work performed by the Runge-Kutta method
+  INTEGER :: Nfun,Njac,Nstp,Nacc,Nrej,Ndec,Nsol,Nsng
+  INTEGER, PARAMETER :: ifun=1, ijac=2, istp=3, iacc=4, &
+    irej=5, idec=6, isol=7, isng=8, itexit=1, ihacc=2, ihnew=3
+  
+CONTAINS
+
+  ! **************************************************************************
+
+  SUBROUTINE INTEGRATE_ADJ(NADJ, Y, Lambda, TIN, TOUT,  &
+             ATOL_adj, RTOL_adj,                        &
+             ICNTRL_U, RCNTRL_U, ISTATUS_U, RSTATUS_U, IERR_U )
+
+    USE KPP_ROOT_Parameters, ONLY: NVAR
+    USE KPP_ROOT_Global,     ONLY: ATOL,RTOL
+
+    IMPLICIT NONE
+
+!~~~> Y - Concentrations
+   KPP_REAL  :: Y(NVAR)
+!~~~> NADJ - No. of cost functionals for which adjoints
+!                are evaluated simultaneously
+!            If single cost functional is considered (like in
+!                most applications) simply set NADJ = 1      
+   INTEGER NADJ
+!~~~> Lambda - Sensitivities of concentrations
+!     Note: Lambda (1:NVAR,j) contains sensitivities of
+!           the j-th cost functional w.r.t. Y(1:NVAR), j=1...NADJ
+    KPP_REAL :: Lambda(NVAR,NADJ)
+!~~~> Tolerances for adjoint calculations
+!     (used for full continuous adjoint, and for controlling
+!     the convergence of iterations for solving the discrete adjoint)   
+    KPP_REAL, INTENT(IN)  :: ATOL_adj(NVAR,NADJ), RTOL_adj(NVAR,NADJ)
+    KPP_REAL :: TIN  ! TIN - Start Time
+    KPP_REAL :: TOUT ! TOUT - End Time
+    INTEGER,       INTENT(IN),  OPTIONAL :: ICNTRL_U(20)
+    KPP_REAL, INTENT(IN),  OPTIONAL :: RCNTRL_U(20)
+    INTEGER,       INTENT(OUT), OPTIONAL :: ISTATUS_U(20)
+    KPP_REAL, INTENT(OUT), OPTIONAL :: RSTATUS_U(20)
+    INTEGER,       INTENT(OUT), OPTIONAL :: IERR_U
+
+    INTEGER :: IERR
+
+    KPP_REAL :: RCNTRL(20), RSTATUS(20), T1, T2
+    INTEGER       :: ICNTRL(20), ISTATUS(20)
+    INTEGER, SAVE :: Ntotal = 0
+
+
+    ICNTRL(1:20) = 0
+    RCNTRL(1:20) = 0.0_dp
+
+    !~~~> fine-tune the integrator:
+    ICNTRL(2)  = 0   ! 0=vector tolerances, 1=scalar tolerances
+    ICNTRL(5)  = 8   ! Max no. of Newton iterations
+    ICNTRL(6)  = 0   ! Starting values for Newton are: 0=interpolated, 1=zero
+    ICNTRL(7)  = 2   ! Adj. system solved by: 1=iteration, 2=direct, 3=adaptive
+    ICNTRL(8)  = 0   ! Adj. LU decomp: 0=compute, 1=save from fwd
+    ICNTRL(9)  = 2   ! Adjoint: 1=none, 2=discrete, 3=full continuous, 4=simplified continuous
+    ICNTRL(10) = 0   ! Error estimator: 0=classic, 1=SDIRK
+    ICNTRL(11) = 1   ! Step controller: 1=Gustaffson, 2=classic
+
+
+    !~~~> if optional parameters are given, and if they are >0,
+    !     then use them to overwrite default settings
+    IF (PRESENT(ICNTRL_U)) THEN
+      WHERE(ICNTRL_U(:) > 0) ICNTRL(:) = ICNTRL_U(:)
+    END IF
+    IF (PRESENT(RCNTRL_U)) THEN
+      WHERE(RCNTRL_U(:) > 0) RCNTRL(:) = RCNTRL_U(:)
+    END IF
+
+    
+    T1 = TIN; T2 = TOUT
+    CALL RungeKuttaADJ(NVAR, Y, NADJ, Lambda, T1, T2,   &
+                       RTOL, ATOL, ATOL_adj, RTOL_adj,  &
+                       RCNTRL, ICNTRL, RSTATUS, ISTATUS, IERR  )
+
+    Ntotal = Ntotal + ISTATUS(istp)
+!    PRINT*,'NSTEPS=',ISTATUS(istp),' (',Ntotal,')','  O3=', VAR(ind_O3)
+
+    ! if optional parameters are given for output
+    ! use them to store information in them
+    IF (PRESENT(ISTATUS_U)) ISTATUS_U(:) = ISTATUS(:)
+    IF (PRESENT(RSTATUS_U)) RSTATUS_U(:) = RSTATUS(:)
+    IF (PRESENT(IERR_U)) IERR_U = IERR
+
+    IF (IERR < 0) THEN
+      PRINT *,'Runge-Kutta-ADJ: Unsuccessful exit at T=', TIN,' (IERR=',IERR,')'
+    ENDIF
+
+  END SUBROUTINE INTEGRATE_ADJ
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE RungeKuttaADJ( N, Y, NADJ, Lambda,Tstart,Tend,      &
+                         RelTol, AbsTol, RelTol_adj, AbsTol_adj, &
+                         RCNTRL, ICNTRL, RSTATUS, ISTATUS, IERR )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!  This implementation is based on the book and the code Radau5:
+!
+!         E. HAIRER AND G. WANNER
+!         "SOLVING ORDINARY DIFFERENTIAL EQUATIONS II. 
+!              STIFF AND DIFFERENTIAL-ALGEBRAIC PROBLEMS."
+!         SPRINGER SERIES IN COMPUTATIONAL MATHEMATICS 14,
+!         SPRINGER-VERLAG (1991)
+!
+!         UNIVERSITE DE GENEVE, DEPT. DE MATHEMATIQUES
+!         CH-1211 GENEVE 24, SWITZERLAND
+!         E-MAIL:  HAIRER@DIVSUN.UNIGE.CH,  WANNER@DIVSUN.UNIGE.CH
+!
+!   Methods:
+!          * Radau-2A   quadrature (order 5)                              
+!          * Radau-1A   quadrature (order 5)                              
+!          * Lobatto-3C quadrature (order 4)                              
+!          * Gauss      quadrature (order 6)                              
+!                                                                         
+!   (C)  Adrian Sandu, August 2005                                       
+!   Virginia Polytechnic Institute and State University                  
+!   Contact: sandu@cs.vt.edu                                             
+!   Revised by Philipp Miehe and Adrian Sandu, May 2006                  
+!   This implementation is part of KPP - the Kinetic PreProcessor        
+!
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>   INPUT ARGUMENTS:
+!       ----------------
+!
+!    Note: For input parameters equal to zero the default values of the
+!          corresponding variables are used.
+!
+!     N           Dimension of the system
+!     T           Initial time value
+!
+!     Tend        Final T value (Tend-T may be positive or negative)
+!
+!     Y(N)        Initial values for Y
+!
+!     RelTol,AbsTol   Relative and absolute error tolerances. 
+!          for ICNTRL(2) = 0: AbsTol, RelTol are N-dimensional vectors
+!                        = 1: AbsTol, RelTol are scalars
+!
+!~~~>  Integer input parameters:
+!  
+!    ICNTRL(1) = not used
+!
+!    ICNTRL(2) = 0: AbsTol, RelTol are NVAR-dimensional vectors
+!              = 1: AbsTol, RelTol are scalars
+!
+!    ICNTRL(3) = RK method selection       
+!              = 1:  Radau-2A    (the default)
+!              = 2:  Lobatto-3C
+!              = 3:  Gauss
+!              = 4:  Radau-1A
+!
+!    ICNTRL(4)  -> maximum number of integration steps
+!        For ICNTRL(4)=0 the default value of 10000 is used
+!
+!    ICNTRL(5)  -> maximum number of Newton iterations
+!        For ICNTRL(5)=0 the default value of 8 is used
+!
+!    ICNTRL(6)  -> starting values of Newton iterations:
+!        ICNTRL(6)=0 : starting values are obtained from 
+!                      the extrapolated collocation solution
+!                      (the default)
+!        ICNTRL(6)=1 : starting values are zero
+!
+!    ICNTRL(7)  -> method to solve the linear ADJ equations:
+!        ICNTRL(7)=0,1 : modified Newton re-using LU (the default)
+!                        with a fixed number of iterations
+!        ICNTRL(7)=2 :   direct solution (additional one LU factorization
+!                        of 3Nx3N matrix per step); good for debugging
+!        ICNTRL(7)=3 :   adaptive solution (if Newton does not converge
+!                        switch to direct)
+!
+!    ICNTRL(8)  -> checkpointing the LU factorization at each step:
+!        ICNTRL(8)=0 : do *not* save LU factorization (the default)
+!        ICNTRL(8)=1 : save LU factorization
+!        Note: if ICNTRL(7)=1 the LU factorization is *not* saved
+!
+!    ICNTRL(9) -> Type of adjoint algorithm
+!         = 0 : default is discrete adjoint ( of method ICNTRL(3) )
+!         = 1 : no adjoint       
+!         = 2 : discrete adjoint ( of method ICNTRL(3) )
+!         = 3 : fully adaptive continuous adjoint ( with method ICNTRL(6) )
+!         = 4 : simplified continuous adjoint ( with method ICNTRL(6) )
+!
+!    ICNTRL(10) -> switch for error estimation strategy
+!		ICNTRL(10) = 0: one additional stage at c=0, 
+!				see Hairer (default)
+!		ICNTRL(10) = 1: two additional stages at c=0 
+!				and SDIRK at c=1, stiffly accurate
+!
+!    ICNTRL(11) -> switch for step size strategy
+!              ICNTRL(11)=1:  mod. predictive controller (Gustafsson, default)
+!              ICNTRL(11)=2:  classical step size control
+!              the choice 1 seems to produce safer results;
+!              for simple problems, the choice 2 produces
+!              often slightly faster runs
+!
+!~~~>  Real input parameters:
+!
+!    RCNTRL(1)  -> Hmin, lower bound for the integration step size
+!                  (highly recommended to keep Hmin = ZERO, the default)
+!
+!    RCNTRL(2)  -> Hmax, upper bound for the integration step size
+!
+!    RCNTRL(3)  -> Hstart, the starting step size
+!
+!    RCNTRL(4)  -> FacMin, lower bound on step decrease factor (default=0.2)
+!
+!    RCNTRL(5)  -> FacMax, upper bound on step increase factor (default=6)
+!
+!    RCNTRL(6)  -> FacRej, step decrease factor after multiple rejections
+!                 (default=0.1)
+!
+!    RCNTRL(7)  -> FacSafe, by which the new step is slightly smaller
+!                  than the predicted value  (default=0.9)
+!
+!    RCNTRL(8)  -> ThetaMin. If Newton convergence rate smaller
+!                  than ThetaMin the Jacobian is not recomputed;
+!                  (default=0.001)
+!
+!    RCNTRL(9)  -> NewtonTol, stopping criterion for Newton's method
+!                  (default=0.03)
+!
+!    RCNTRL(10) -> Qmin
+!
+!    RCNTRL(11) -> Qmax. If Qmin < Hnew/Hold < Qmax, then the
+!                  step size is kept constant and the LU factorization
+!                  reused (default Qmin=1, Qmax=1.2)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!
+!    OUTPUT ARGUMENTS:
+!    -----------------
+!
+!    T           -> T value for which the solution has been computed
+!                     (after successful return T=Tend).
+!
+!    Y(N)        -> Numerical solution at T
+!
+!    IERR        -> Reports on successfulness upon return:
+!                    = 1 for success
+!                    < 0 for error (value equals error code)
+!
+!    ISTATUS(1)  -> No. of function calls
+!    ISTATUS(2)  -> No. of Jacobian calls
+!    ISTATUS(3)  -> No. of steps
+!    ISTATUS(4)  -> No. of accepted steps
+!    ISTATUS(5)  -> No. of rejected steps (except at very beginning)
+!    ISTATUS(6)  -> No. of LU decompositions
+!    ISTATUS(7)  -> No. of forward/backward substitutions
+!    ISTATUS(8)  -> No. of singular matrix decompositions
+!
+!    RSTATUS(1)  -> Texit, the time corresponding to the
+!                     computed Y upon return
+!    RSTATUS(2)  -> Hexit, last accepted step before exit
+!    RSTATUS(3)  -> Hnew, last predicted step (not yet taken)
+!                   For multiple restarts, use Hnew as Hstart 
+!                     in the subsequent run
+!
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      IMPLICIT NONE
+      
+      INTEGER :: N
+      INTEGER, INTENT(IN)     :: NADJ
+      KPP_REAL, INTENT(INOUT) :: Lambda(N,NADJ)
+      KPP_REAL, INTENT(IN) :: AbsTol_adj(N,NADJ), RelTol_adj(N,NADJ)
+      KPP_REAL :: Y(N),AbsTol(N),RelTol(N),RCNTRL(20),RSTATUS(20)
+      INTEGER :: ICNTRL(20), ISTATUS(20)
+      LOGICAL :: StartNewton, Gustafsson, SdirkError, SaveLU
+      INTEGER :: IERR, ITOL
+      KPP_REAL, INTENT(IN):: Tstart,Tend
+      KPP_REAL :: Texit
+
+      !~~~> Control arguments
+      INTEGER :: Max_no_steps, NewtonMaxit, AdjointType, rkMethod
+      KPP_REAL :: Hmin,Hmax,Hstart,Qmin,Qmax
+      KPP_REAL :: Roundoff, ThetaMin, NewtonTol
+      KPP_REAL :: FacSafe,FacMin,FacMax,FacRej
+      ! Runge-Kutta method parameters
+      INTEGER, PARAMETER :: R2A=1, R1A=2, L3C=3, GAU=4, L3A=5
+      KPP_REAL :: rkT(3,3), rkTinv(3,3), rkTinvAinv(3,3), rkAinvT(3,3), &
+                       rkA(3,3), rkB(3),  rkC(3), rkD(0:3), rkE(0:3), 	   &
+		       rkBgam(0:4), rkBhat(0:4), rkTheta(0:3),             &
+                       rkGamma,  rkAlpha, rkBeta, rkELO
+      ! ADJ method parameters
+      INTEGER, PARAMETER :: KPP_ROOT_none = 1, KPP_ROOT_discrete = 2,     	   &
+                            KPP_ROOT_continuous = 3, KPP_ROOT_simple_continuous = 4
+      INTEGER :: AdjointSolve                      
+      INTEGER, PARAMETER :: Solve_direct = 1, Solve_fixed = 2,     	   &
+                            Solve_adaptive = 3
+      INTEGER, PARAMETER :: bufsize = 10000
+      INTEGER :: stack_ptr = 0 ! last written entry
+      KPP_REAL, DIMENSION(:), POINTER :: chk_H, chk_T
+      KPP_REAL, DIMENSION(:,:), POINTER :: chk_Y, chk_Z, chk_E1
+      INTEGER, DIMENSION(:), POINTER :: chk_NiT
+      COMPLEX(kind=dp), DIMENSION(:,:), POINTER :: chk_E2
+      KPP_REAL, DIMENSION(:,:), POINTER :: chk_dY, chk_d2Y
+      !~~~> Local variables
+      INTEGER :: i 
+      KPP_REAL, PARAMETER :: ZERO = 0.0d0, ONE = 1.0d0
+    
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!        SETTING THE PARAMETERS
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IERR = 0
+      ISTATUS(1:20) = 0
+      RSTATUS(1:20) = ZERO
+       
+!~~~> ICNTRL(1) - autonomous system - not used       
+!~~~> ITOL: 1 for vector and 0 for scalar AbsTol/RelTol
+      IF (ICNTRL(2) == 0) THEN
+         ITOL = 1
+      ELSE
+         ITOL = 0
+      END IF
+!~~~> Error control selection  
+      IF (ICNTRL(10) == 0) THEN 
+         SdirkError = .FALSE.
+      ELSE
+         SdirkError = .TRUE.
+      END IF      
+!~~~> Method selection  
+      SELECT CASE (ICNTRL(3))     
+      CASE (0,1)
+         CALL Radau2A_Coefficients
+      CASE (2)
+         CALL Lobatto3C_Coefficients
+      CASE (3)
+         CALL Gauss_Coefficients
+      CASE (4)
+         CALL Radau1A_Coefficients
+      CASE DEFAULT
+         WRITE(6,*) 'ICNTRL(3)=',ICNTRL(3)
+         CALL RK_ErrorMsg(-13,Tstart,ZERO,IERR)
+      END SELECT
+!~~~> Max_no_steps: the maximal number of time steps
+      IF (ICNTRL(4) == 0) THEN
+         Max_no_steps = 200000
+      ELSE
+         Max_no_steps=ICNTRL(4)
+         IF (Max_no_steps <= 0) THEN
+            WRITE(6,*) 'ICNTRL(4)=',ICNTRL(4)
+            CALL RK_ErrorMsg(-1,Tstart,ZERO,IERR)
+         END IF
+      END IF
+!~~~> NewtonMaxit    maximal number of Newton iterations
+      IF (ICNTRL(5) == 0) THEN
+         NewtonMaxit = 8
+      ELSE
+         NewtonMaxit=ICNTRL(5)
+         IF (NewtonMaxit <= 0) THEN
+            WRITE(6,*) 'ICNTRL(5)=',ICNTRL(5)
+            CALL RK_ErrorMsg(-2,Tstart,ZERO,IERR)
+          END IF
+      END IF
+!~~~> StartNewton:  Use extrapolation for starting values of Newton iterations
+      IF (ICNTRL(6) == 0) THEN
+         StartNewton = .TRUE.
+      ELSE
+         StartNewton = .FALSE.
+      END IF      
+!~~~>  How to solve the linear adjoint system
+      SELECT CASE (ICNTRL(7))     
+      CASE (0,1)
+         AdjointSolve = Solve_fixed
+      CASE (2)
+         AdjointSolve = Solve_direct
+      CASE (3)
+         AdjointSolve = Solve_adaptive
+      CASE DEFAULT  
+         PRINT * , 'User-selected adjoint solution: ICNTRL(7)=', ICNTRL(7)
+         PRINT * , 'Implemented: =(0,1) (fixed), =2 (direct), =3 (adaptive)'
+         CALL rk_ErrorMsg(-9,Tstart,ZERO,IERR)
+         RETURN      
+      END SELECT
+!~~~>  Discrete or continuous adjoint formulation
+      SELECT CASE (ICNTRL(9))     
+      CASE (0,2)
+         AdjointType = KPP_ROOT_discrete
+      CASE (1)
+         AdjointType = KPP_ROOT_none
+      CASE DEFAULT  
+         PRINT * , 'User-selected adjoint type: ICNTRL(9)=', ICNTRL(9)
+         PRINT * , 'Implemented: =(0,2) (discrete adj) and =1 (no adj)'
+         CALL rk_ErrorMsg(-9,Tstart,ZERO,IERR)
+         RETURN      
+      END SELECT
+!~~~> Save or not the forward LU factorization
+      SaveLU = (ICNTRL(8) /= 0) 
+      IF (AdjointSolve == Solve_direct) SaveLU = .FALSE.
+!~~~> Gustafsson: step size controller
+      IF (ICNTRL(11) == 0) THEN
+         Gustafsson = .TRUE.
+      ELSE
+         Gustafsson = .FALSE.
+      END IF
+
+!~~~> Roundoff: smallest number s.t. 1.0 + Roundoff > 1.0
+      Roundoff = WLAMCH('E');
+
+!~~~> Hmin = minimal step size
+      IF (RCNTRL(1) == ZERO) THEN
+         Hmin = ZERO
+      ELSE
+         Hmin = MIN(ABS(RCNTRL(1)),ABS(Tend-Tstart))
+      END IF
+!~~~> Hmax = maximal step size
+      IF (RCNTRL(2) == ZERO) THEN
+         Hmax = ABS(Tend-Tstart)
+      ELSE
+         Hmax = MIN(ABS(RCNTRL(2)),ABS(Tend-Tstart))
+      END IF
+!~~~> Hstart = starting step size
+      IF (RCNTRL(3) == ZERO) THEN
+         Hstart = ZERO
+      ELSE
+         Hstart = MIN(ABS(RCNTRL(3)),ABS(Tend-Tstart))
+      END IF
+!~~~> FacMin: lower bound on step decrease factor
+      IF(RCNTRL(4) == ZERO)THEN
+         FacMin = 0.2d0
+      ELSE
+         FacMin = RCNTRL(4)
+      END IF
+!~~~> FacMax: upper bound on step increase factor
+      IF(RCNTRL(5) == ZERO)THEN
+         FacMax = 8.D0
+      ELSE
+         FacMax = RCNTRL(5)
+      END IF
+!~~~> FacRej: step decrease factor after 2 consecutive rejections
+      IF(RCNTRL(6) == ZERO)THEN
+         FacRej = 0.1d0
+      ELSE
+         FacRej = RCNTRL(6)
+      END IF
+!~~~> FacSafe:  by which the new step is slightly smaller
+!               than the predicted value
+      IF (RCNTRL(7) == ZERO) THEN
+         FacSafe=0.9d0
+      ELSE
+         FacSafe=RCNTRL(7)
+      END IF
+      IF ( (FacMax < ONE) .OR. (FacMin > ONE) .OR. &
+           (FacSafe <= 1.0d-3) .OR. (FacSafe >= ONE) ) THEN
+            WRITE(6,*)'RCNTRL(4:7)=',RCNTRL(4:7)
+            CALL RK_ErrorMsg(-4,Tstart,ZERO,IERR)
+      END IF
+
+!~~~> ThetaMin:  decides whether the Jacobian should be recomputed
+      IF (RCNTRL(8) == ZERO) THEN
+         ThetaMin = 1.0d-3
+      ELSE
+         ThetaMin=RCNTRL(8)
+         IF (ThetaMin <= 0.0d0 .OR. ThetaMin >= 1.0d0) THEN
+            WRITE(6,*) 'RCNTRL(8)=', RCNTRL(8)
+            CALL RK_ErrorMsg(-5,Tstart,ZERO,IERR)
+         END IF
+      END IF
+!~~~> NewtonTol:  stopping crierion for Newton's method
+      IF (RCNTRL(9) == ZERO) THEN
+         NewtonTol = 3.0d-2
+      ELSE
+         NewtonTol = RCNTRL(9)
+         IF (NewtonTol <= Roundoff) THEN
+            WRITE(6,*) 'RCNTRL(9)=',RCNTRL(9)
+            CALL RK_ErrorMsg(-6,Tstart,ZERO,IERR)
+         END IF
+      END IF
+!~~~> Qmin AND Qmax: IF Qmin < Hnew/Hold < Qmax then step size = const.
+      IF (RCNTRL(10) == ZERO) THEN
+         Qmin=1.D0
+      ELSE
+         Qmin=RCNTRL(10)
+      END IF
+      IF (RCNTRL(11) == ZERO) THEN
+         Qmax=1.2D0
+      ELSE
+         Qmax=RCNTRL(11)
+      END IF
+      IF (Qmin > ONE .OR. Qmax < ONE) THEN
+         WRITE(6,*) 'RCNTRL(10:11)=',Qmin,Qmax
+         CALL RK_ErrorMsg(-7,Tstart,ZERO,IERR)
+      END IF
+!~~~> Check if tolerances are reasonable
+      IF (ITOL == 0) THEN
+          IF (AbsTol(1) <= ZERO.OR.RelTol(1) <= 10.d0*Roundoff) THEN
+              WRITE (6,*) 'AbsTol/RelTol=',AbsTol,RelTol 
+              CALL RK_ErrorMsg(-8,Tstart,ZERO,IERR)
+          END IF
+      ELSE
+          DO i=1,N
+          IF (AbsTol(i) <= ZERO.OR.RelTol(i) <= 10.d0*Roundoff) THEN
+              WRITE (6,*) 'AbsTol/RelTol(',i,')=',AbsTol(i),RelTol(i)
+              CALL RK_ErrorMsg(-8,Tstart,ZERO,IERR)
+          END IF
+          END DO
+      END IF
+
+!~~~> Parameters are wrong
+      IF (IERR < 0) RETURN
+
+!~~~>  Allocate checkpoint space or open checkpoint files
+   IF (AdjointType == KPP_ROOT_discrete) THEN
+       CALL rk_AllocateDBuffers()
+   ELSEIF ( (AdjointType == KPP_ROOT_continuous).OR. &
+           (AdjointType == KPP_ROOT_simple_continuous) ) THEN
+       CALL rk_AllocateCBuffers
+   END IF
+
+!~~~> Call the core method
+      CALL RK_FwdIntegrator( N,Tstart,Tend,Y,AdjointType,IERR )
+!   PRINT*,'FORWARD STATISTICS'
+!   PRINT*,'Step=',Istatus(istp),' Acc=',Istatus(iacc),   &
+!        ' Rej=',Istatus(irej), ' Singular=',Istatus(isng)
+   Nstp = 0
+   Nacc = 0
+   Nrej = 0
+   Nsng = 0
+
+!~~~>  If Forward integration failed return   
+   IF (IERR<0) RETURN
+
+   SELECT CASE (AdjointType)   
+   CASE (KPP_ROOT_discrete)   
+     CALL rk_DadjInt (                          &
+        NADJ, Lambda,                           &
+        Tstart, Tend, Texit,                    &
+        IERR )
+   CASE (KPP_ROOT_continuous) 
+     CALL rk_CadjInt (                          &
+        NADJ, Lambda,                           &
+        Tend, Tstart, Texit,                    &
+        IERR )
+   CASE (KPP_ROOT_simple_continuous)
+     CALL rk_SimpleCadjInt (                    &
+        NADJ, Lambda,                           &
+        Tstart, Tend, Texit,                    &
+        IERR )
+   END SELECT ! AdjointType
+!   PRINT*,'ADJOINT STATISTICS'
+!   PRINT*,'Step=',Nstp,' Acc=',Nacc,             &
+!        ' Rej=',Nrej, ' Singular=',Nsng
+
+!~~~>  Free checkpoint space or close checkpoint files
+   IF (AdjointType == KPP_ROOT_discrete) THEN
+      CALL rk_FreeDBuffers
+   ELSEIF ( (AdjointType == KPP_ROOT_continuous) .OR. &
+           (AdjointType == KPP_ROOT_simple_continuous) ) THEN
+      CALL rk_FreeCBuffers
+   END IF
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+CONTAINS ! Internal procedures to RungeKuttaADJ
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE rk_AllocateDBuffers()
+!~~~>  Allocate buffer space for discrete adjoint
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   INTEGER :: i
+   
+   ALLOCATE( chk_H(bufsize), STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed allocation of buffer H'; STOP
+   END IF   
+   ALLOCATE( chk_T(bufsize), STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed allocation of buffer T'; STOP
+   END IF   
+   ALLOCATE( chk_Y(NVAR,bufsize), STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed allocation of buffer Y'; STOP
+   END IF   
+   ALLOCATE( chk_Z(NVAR*3,bufsize), STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed allocation of buffer Z'; STOP
+   END IF   
+   ALLOCATE( chk_NiT(bufsize), STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed allocation of buffer NiT'; STOP
+   END IF   
+   IF (SaveLU) THEN 
+#ifdef FULL_ALGEBRA      
+     ALLOCATE( chk_E1(NVAR*NVAR,bufsize), STAT=i )
+     IF (i/=0) THEN
+        PRINT*,'Failed allocation of buffer E1'; STOP
+     END IF   
+     ALLOCATE( chk_E2(NVAR*NVAR,bufsize), STAT=i )
+     IF (i/=0) THEN
+        PRINT*,'Failed allocation of buffer E2'; STOP
+     END IF   
+#else      
+     ALLOCATE( chk_E1(LU_NONZERO,bufsize), STAT=i )
+     IF (i/=0) THEN
+        PRINT*,'Failed allocation of buffer E1'; STOP
+     END IF   
+     ALLOCATE( chk_E2(LU_NONZERO,bufsize), STAT=i )
+     IF (i/=0) THEN
+        PRINT*,'Failed allocation of buffer E2'; STOP
+     END IF   
+#endif
+   END IF   
+   
+ 
+ END SUBROUTINE rk_AllocateDBuffers
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE rk_FreeDBuffers()
+!~~~>  Dallocate buffer space for discrete adjoint
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   INTEGER :: i
+   
+   DEALLOCATE( chk_H, STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed deallocation of buffer H'; STOP
+   END IF   
+   DEALLOCATE( chk_T, STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed deallocation of buffer T'; STOP
+   END IF   
+   DEALLOCATE( chk_Y, STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed deallocation of buffer Y'; STOP
+   END IF   
+   DEALLOCATE( chk_Z, STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed deallocation of buffer Z'; STOP
+   END IF   
+   DEALLOCATE( chk_NiT, STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed deallocation of buffer NiT'; STOP
+   END IF   
+   IF (SaveLU) THEN 
+     DEALLOCATE( chk_E1, STAT=i )
+     IF (i/=0) THEN
+        PRINT*,'Failed allocation of buffer E1'; STOP
+     END IF   
+     DEALLOCATE( chk_E2, STAT=i )
+     IF (i/=0) THEN
+        PRINT*,'Failed allocation of buffer E2'; STOP
+     END IF   
+   END IF   
+
+ END SUBROUTINE rk_FreeDBuffers
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE rk_AllocateCBuffers()
+!~~~>  Allocate buffer space for continuous adjoint
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   INTEGER :: i
+   
+   ALLOCATE( chk_H(bufsize), STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed allocation of buffer H'; STOP
+   END IF   
+   ALLOCATE( chk_T(bufsize), STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed allocation of buffer T'; STOP
+   END IF   
+   ALLOCATE( chk_Y(NVAR,bufsize), STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed allocation of buffer Y'; STOP
+   END IF   
+   ALLOCATE( chk_dY(NVAR,bufsize), STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed allocation of buffer dY'; STOP
+   END IF   
+   ALLOCATE( chk_d2Y(NVAR,bufsize), STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed allocation of buffer d2Y'; STOP
+   END IF   
+ 
+ END SUBROUTINE rk_AllocateCBuffers
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE rk_FreeCBuffers()
+!~~~>  Dallocate buffer space for continuous adjoint
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   INTEGER :: i
+   print*,'cbuffers deallocate???'
+   DEALLOCATE( chk_H, STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed deallocation of buffer H'; STOP
+   END IF   
+   DEALLOCATE( chk_T, STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed deallocation of buffer T'; STOP
+   END IF   
+   DEALLOCATE( chk_Y, STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed deallocation of buffer Y'; STOP
+   END IF   
+   DEALLOCATE( chk_dY, STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed deallocation of buffer dY'; STOP
+   END IF   
+   DEALLOCATE( chk_d2Y, STAT=i )
+   IF (i/=0) THEN
+      PRINT*,'Failed deallocation of buffer d2Y'; STOP
+   END IF   
+ 
+ END SUBROUTINE rk_FreeCBuffers
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE rk_DPush( T, H, Y, Zstage, NewIt, E1, E2 )!, Jcb )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> Saves the next trajectory snapshot for discrete adjoints
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   KPP_REAL :: T, H, Y(NVAR), Zstage(NVAR*3)
+   INTEGER :: NewIt
+#ifdef FULL_ALGEBRA      
+   KPP_REAL :: E1(NVAR,NVAR)
+   COMPLEX(kind=dp) :: E2(NVAR,NVAR)
+   INTEGER :: i, j   
+#else      
+   KPP_REAL :: E1(LU_NONZERO)
+   COMPLEX(kind=dp) :: E2(LU_NONZERO)   
+#endif      
+
+   stack_ptr = stack_ptr + 1
+   IF ( stack_ptr > bufsize ) THEN
+     PRINT*,'Push failed: buffer overflow'
+     STOP
+   END IF  
+   chk_H( stack_ptr ) = H
+   chk_T( stack_ptr ) = T
+   ! CALL WCOPY(NVAR,Y,1,chk_Y(1,stack_ptr),1)
+   ! CALL WCOPY(NVAR*3,Zstage,1,chk_Z(1,stack_ptr),1)
+   chk_Y(1:N,stack_ptr) = Y(1:N)
+   chk_Z(1:3*N,stack_ptr) = Zstage(1:3*N)
+   chk_NiT( stack_ptr ) = NewIt
+   IF (SaveLU) THEN 
+#ifdef FULL_ALGEBRA      
+     ! CALL WCOPY(NVAR*NVAR, E1,1,chk_E1(1,stack_ptr),1)
+     ! CALL WCOPYCmplx(NVAR*NVAR, E2,1,chk_E2(1,stack_ptr),1)
+     DO j=1,NVAR
+       DO i=1,NVAR
+         chk_E1(NVAR*(j-1)+i,stack_ptr) = E1(i,j)
+         chk_E2(NVAR*(j-1)+i,stack_ptr) = E2(i,j)
+       END DO
+     END DO
+#else      
+     ! CALL WCOPY(LU_NONZERO, E1,1,chk_E1(1,stack_ptr),1)
+     ! CALL WCOPYCmplx(LU_NONZERO, E2,1,chk_E2(1,stack_ptr),1)
+     chk_E1(1:LU_NONZERO,stack_ptr) = E1(1:LU_NONZERO)
+     chk_E2(1:LU_NONZERO,stack_ptr) = E2(1:LU_NONZERO)
+#endif      
+   END IF  
+   !CALL WCOPY(LU_NONZERO,Jcb,1,chk_J(1,stack_ptr),1)
+  
+  END SUBROUTINE rk_DPush
+  
+   
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE rk_DPop( T, H, Y, Zstage, NewIt, E1, E2 ) !, Jcb )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> Retrieves the next trajectory snapshot for discrete adjoints
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+   KPP_REAL :: T, H, Y(NVAR), Zstage(NVAR*3) ! , Jcb(LU_NONZERO)
+   INTEGER :: NewIt
+#ifdef FULL_ALGEBRA      
+   KPP_REAL :: E1(NVAR,NVAR)
+   COMPLEX(kind=dp) :: E2(NVAR,NVAR)   
+   INTEGER :: i, j   
+#else      
+   KPP_REAL :: E1(LU_NONZERO)
+   COMPLEX(kind=dp) :: E2(LU_NONZERO)   
+#endif      
+   
+   IF ( stack_ptr <= 0 ) THEN
+     PRINT*,'Pop failed: empty buffer'
+     STOP
+   END IF  
+   H = chk_H( stack_ptr )
+   T = chk_T( stack_ptr )
+   ! CALL WCOPY(NVAR,chk_Y(1,stack_ptr),1,Y,1)
+   Y(1:NVAR) = chk_Y(1:NVAR,stack_ptr)
+   ! CALL WCOPY(NVAR*3,chk_Z(1,stack_ptr),1,Zstage,1)
+   Zstage(1:3*NVAR) = chk_Z(1:3*NVAR,stack_ptr)
+   NewIt = chk_NiT( stack_ptr )
+   IF (SaveLU) THEN
+#ifdef FULL_ALGEBRA      
+     ! CALL WCOPY(NVAR*NVAR,chk_E1(1,stack_ptr),1, E1,1)
+     ! CALL WCOPYCmplx(NVAR*NVAR,chk_E2(1,stack_ptr),1, E2,1)
+     DO j=1,NVAR
+       DO i=1,NVAR
+         E1(i,j) = chk_E1(NVAR*(j-1)+i,stack_ptr)
+         E2(i,j) = chk_E2(NVAR*(j-1)+i,stack_ptr)
+       END DO
+     END DO
+#else      
+     ! CALL WCOPY(LU_NONZERO,chk_E1(1,stack_ptr),1, E1,1)
+     ! CALL WCOPYCmplx(LU_NONZERO,chk_E2(1,stack_ptr),1, E2,1)
+     E1(1:LU_NONZERO) = chk_E1(1:LU_NONZERO,stack_ptr)
+     E2(1:LU_NONZERO) = chk_E2(1:LU_NONZERO,stack_ptr)
+#endif      
+   END IF  
+   !CALL WCOPY(LU_NONZERO,chk_J(1,stack_ptr),1,Jcb,1)
+
+   stack_ptr = stack_ptr - 1
+  
+  END SUBROUTINE rk_DPop
+ 
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE rk_CPush(T, H, Y, dY, d2Y )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> Saves the next trajectory snapshot for discrete adjoints
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+   KPP_REAL :: T, H, Y(NVAR), dY(NVAR), d2Y(NVAR)
+   
+   stack_ptr = stack_ptr + 1
+   IF ( stack_ptr > bufsize ) THEN
+     PRINT*,'Push failed: buffer overflow'
+     STOP
+   END IF  
+   chk_H( stack_ptr ) = H
+   chk_T( stack_ptr ) = T
+   ! CALL WCOPY(NVAR,Y,1,chk_Y(1,stack_ptr),1)
+   ! CALL WCOPY(NVAR,dY,1,chk_dY(1,stack_ptr),1)
+   ! CALL WCOPY(NVAR,d2Y,1,chk_d2Y(1,stack_ptr),1)
+   chk_Y(1:NVAR,stack_ptr)  =  Y(1:NVAR)
+   chk_dY(1:NVAR,stack_ptr) = dY(1:NVAR)
+   chk_d2Y(1:NVAR,stack_ptr)= d2Y(1:NVAR)
+  
+  END SUBROUTINE rk_CPush
+  
+   
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE rk_CPop( T, H, Y, dY, d2Y )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> Retrieves the next trajectory snapshot for discrete adjoints
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+   KPP_REAL :: T, H, Y(NVAR), dY(NVAR), d2Y(NVAR)
+   
+   IF ( stack_ptr <= 0 ) THEN
+     PRINT*,'Pop failed: empty buffer'
+     STOP
+   END IF  
+   H = chk_H( stack_ptr )
+   T = chk_T( stack_ptr )
+   ! CALL WCOPY(NVAR,chk_Y(1,stack_ptr),1,Y,1)
+   ! CALL WCOPY(NVAR,chk_dY(1,stack_ptr),1,dY,1)
+   ! CALL WCOPY(NVAR,chk_d2Y(1,stack_ptr),1,d2Y,1)
+     Y(1:NVAR) = chk_Y(1:NVAR,stack_ptr)
+    dY(1:NVAR) = chk_dY(1:NVAR,stack_ptr)
+   d2Y(1:NVAR) = chk_d2Y(1:NVAR,stack_ptr)
+
+   stack_ptr = stack_ptr - 1
+  
+  END SUBROUTINE rk_CPop
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE RK_FwdIntegrator( N,Tstart,Tend,Y,AdjointType,IERR )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      IMPLICIT NONE
+!~~~> Arguments
+      INTEGER,  INTENT(IN)         :: N
+      KPP_REAL, INTENT(IN)    :: Tend, Tstart
+      KPP_REAL, INTENT(INOUT) :: Y(N)
+      INTEGER,  INTENT(OUT)        :: IERR
+      INTEGER,  INTENT(IN)         :: AdjointType
+
+!~~~> Local variables
+#ifdef FULL_ALGEBRA
+      KPP_REAL    :: FJAC(N,N), E1(N,N)
+      COMPLEX(kind=dp) :: E2(N,N)   
+#else
+      KPP_REAL    :: FJAC(LU_NONZERO), E1(LU_NONZERO)
+      COMPLEX(kind=dp) :: E2(LU_NONZERO)   
+#endif                
+      KPP_REAL, DIMENSION(N) :: Z1,Z2,Z3,Z4,SCAL,DZ1,DZ2,DZ3,DZ4,G,TMP,FCN0
+      KPP_REAL  :: CONT(N,3), Tdirection,  H, T, Hacc, Hnew, Hold, Fac,  &
+                 FacGus, Theta, Err, ErrOld, NewtonRate, NewtonIncrement,  &
+                 Hratio, Qnewton, NewtonPredictedErr,NewtonIncrementOld, ThetaSD
+      INTEGER :: IP1(N),IP2(N),NewtonIter, ISING, Nconsecutive, NewIt
+      LOGICAL :: Reject, FirstStep, SkipJac, NewtonDone, SkipLU
+      
+      KPP_REAL, DIMENSION(:), POINTER :: Zstage
+            
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Initial setting
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IF (AdjointType == KPP_ROOT_discrete) THEN ! Save stage solution
+        ALLOCATE(Zstage(N*3), STAT=i)
+        IF (i/=0) THEN
+          PRINT*,'Allocation of Zstage failed'
+          STOP
+        END IF
+      END IF   
+      T=Tstart
+
+      Tdirection = SIGN(ONE,Tend-Tstart)
+      H = MIN( MAX(ABS(Hmin),ABS(Hstart)) , Hmax )
+      IF (ABS(H) <= 10.d0*Roundoff) H = 1.0d-6
+      H = SIGN(H,Tdirection)
+      Hold      = H
+      Reject    = .FALSE.
+      FirstStep = .TRUE.
+      SkipJac   = .FALSE.
+      SkipLU    = .FALSE.
+      IF ((T+H*1.0001D0-Tend)*Tdirection >= ZERO) THEN
+         H = Tend-T
+      END IF
+      Nconsecutive = 0
+      CALL RK_ErrorScale(N,ITOL,AbsTol,RelTol,Y,SCAL)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Time loop begins
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Tloop: DO WHILE ( (Tend-T)*Tdirection - Roundoff > ZERO )
+
+      IF ( .NOT.SkipLU ) THEN ! This time around skip the Jac update and LU
+        !~~~> Compute the Jacobian matrix
+        IF ( .NOT.SkipJac ) THEN
+          CALL JAC_CHEM(T,Y,FJAC)
+          ISTATUS(ijac) = ISTATUS(ijac) + 1
+        END IF
+        !~~~> Compute the matrices E1 and E2 and their decompositions
+        CALL RK_Decomp(N,H,FJAC,E1,IP1,E2,IP2,ISING)
+        IF (ISING /= 0) THEN
+          ISTATUS(isng) = ISTATUS(isng) + 1; Nconsecutive = Nconsecutive + 1
+          IF (Nconsecutive >= 5) THEN
+            CALL RK_ErrorMsg(-12,T,H,IERR); RETURN
+          END IF
+          H=H*0.5d0; Reject=.TRUE.; SkipJac = .TRUE.;  SkipLU = .FALSE.
+          CYCLE Tloop
+        ELSE
+          Nconsecutive = 0    
+        END IF   
+      END IF ! SkipLU
+   
+      ISTATUS(istp) = ISTATUS(istp) + 1
+      IF (ISTATUS(istp) > Max_no_steps) THEN
+        PRINT*,'Max number of time steps is ',Max_no_steps
+        CALL RK_ErrorMsg(-9,T,H,IERR); RETURN
+      END IF
+      IF (0.1D0*ABS(H) <= ABS(T)*Roundoff)  THEN
+        CALL RK_ErrorMsg(-10,T,H,IERR); RETURN
+      END IF
+      
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Loop for the simplified Newton iterations
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+            
+      !~~~>  Starting values for Newton iteration
+      IF ( FirstStep .OR. (.NOT.StartNewton) ) THEN
+         CALL Set2zero(N,Z1)
+         CALL Set2zero(N,Z2)
+         CALL Set2zero(N,Z3)
+      ELSE
+         ! Evaluate quadratic polynomial
+         CALL RK_Interpolate('eval',N,H,Hold,Z1,Z2,Z3,CONT)
+      END IF
+      
+      !~~~>  Initializations for Newton iteration
+      NewtonDone = .FALSE.
+      Fac = 0.5d0 ! Step reduction if too many iterations
+      
+NewtonLoop:DO  NewtonIter = 1, NewtonMaxit  
+ 
+            !~~~> Prepare the right-hand side
+            CALL RK_PrepareRHS(N,T,H,Y,Z1,Z2,Z3,DZ1,DZ2,DZ3)
+            
+            !~~~> Solve the linear systems
+            CALL RK_Solve( N,H,E1,IP1,E2,IP2,DZ1,DZ2,DZ3,ISING )
+
+
+            NewtonIncrement = SQRT( ( RK_ErrorNorm(N,SCAL,DZ1)**2 + &
+                                RK_ErrorNorm(N,SCAL,DZ2)**2 + &
+                                RK_ErrorNorm(N,SCAL,DZ3)**2 )/3.0d0 )
+            
+            IF ( NewtonIter == 1 ) THEN
+                Theta      = ABS(ThetaMin)
+                NewtonRate = 2.0d0 
+            ELSE
+                Theta = NewtonIncrement/NewtonIncrementOld
+                IF (Theta < 0.99d0) THEN
+                    NewtonRate = Theta/(ONE-Theta)
+                ELSE ! Non-convergence of Newton: Theta too large
+                    EXIT NewtonLoop
+                END IF
+                IF ( NewtonIter < NewtonMaxit ) THEN 
+                  ! Predict error at the end of Newton process 
+                  NewtonPredictedErr = NewtonIncrement &
+                               *Theta**(NewtonMaxit-NewtonIter)/(ONE-Theta)
+                  IF (NewtonPredictedErr >= NewtonTol) THEN
+                    ! Non-convergence of Newton: predicted error too large
+                    Qnewton = MIN(10.0d0,NewtonPredictedErr/NewtonTol)
+                    Fac=0.8d0*Qnewton**(-ONE/(1+NewtonMaxit-NewtonIter))
+                    EXIT NewtonLoop
+                  END IF
+                END IF
+            END IF
+
+            NewtonIncrementOld = MAX(NewtonIncrement,Roundoff) 
+            ! Update solution
+            CALL WAXPY(N,-ONE,DZ1,1,Z1,1) ! Z1 <- Z1 - DZ1
+            CALL WAXPY(N,-ONE,DZ2,1,Z2,1) ! Z2 <- Z2 - DZ2
+            CALL WAXPY(N,-ONE,DZ3,1,Z3,1) ! Z3 <- Z3 - DZ3
+            
+            ! Check error in Newton iterations
+            NewtonDone = (NewtonRate*NewtonIncrement <= NewtonTol)
+            IF (NewtonDone) THEN
+	      NewIt = NewtonIter
+	      EXIT NewtonLoop
+	    END IF  
+   	    IF (NewtonIter == NewtonMaxit) THEN
+		PRINT*, 'Slow or no convergence in Newton Iteration: Max no. of', &
+		 	'Newton iterations reached'
+	    END IF
+
+      END DO NewtonLoop
+
+            
+      IF (.NOT.NewtonDone) THEN
+           !CALL RK_ErrorMsg(-12,T,H,IERR);
+           H = Fac*H; Reject=.TRUE.; SkipJac = .TRUE.;  SkipLU = .FALSE.
+	   ISTATUS(irej) = ISTATUS(irej) + 1
+           CYCLE Tloop
+      END IF
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> SDIRK Stage
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IF (SdirkError) THEN
+
+!~~~>  Starting values for Newton iterations
+       Z4(1:N) = Z3(1:N)
+       
+!~~~>   Prepare the loop-independent part of the right-hand side
+       CALL FUN_CHEM(T,Y,DZ4)
+       ISTATUS(Nfun) = ISTATUS(Nfun) + 1
+       
+!       G = H*rkBgam(0)*DZ4 + rkTheta(1)*Z1 + rkTheta(2)*Z2 + rkTheta(3)*Z3
+       CALL Set2Zero(N, G)
+       CALL WAXPY(N,rkBgam(0)*H, DZ4,1,G,1) 
+       CALL WAXPY(N,rkTheta(1),Z1,1,G,1)
+       CALL WAXPY(N,rkTheta(2),Z2,1,G,1)
+       CALL WAXPY(N,rkTheta(3),Z3,1,G,1)
+
+       !~~~>  Initializations for Newton iteration
+       NewtonDone = .FALSE.
+       Fac = 0.5d0 ! Step reduction factor if too many iterations
+            
+SDNewtonLoop:DO NewtonIter = 1, NewtonMaxit
+
+!~~~>   Prepare the loop-dependent part of the right-hand side
+	    CALL WADD(N,Y,Z4,TMP)         ! TMP <- Y + Z4
+	    CALL FUN_CHEM(T+H,TMP,DZ4) 	  ! DZ4 <- Fun(Y+Z4)         
+            ISTATUS(Nfun) = ISTATUS(Nfun) + 1
+!            DZ4(1:N) = (G(1:N)-Z4(1:N))*(rkGamma/H) + DZ4(1:N)
+	    CALL WAXPY (N, -ONE*rkGamma/H, Z4, 1, DZ4, 1)
+            CALL WAXPY (N, rkGamma/H, G,1, DZ4,1)
+
+!~~~>   Solve the linear system
+#ifdef FULL_ALGEBRA  
+            CALL DGETRS( 'N', N, 1, E1, N, IP1, DZ4, N, ISING )
+#else
+            CALL KppSolve(E1, DZ4)
+#endif
+            
+!~~~>   Check convergence of Newton iterations
+            NewtonIncrement = RK_ErrorNorm(N,SCAL,DZ4)
+            IF ( NewtonIter == 1 ) THEN
+                ThetaSD      = ABS(ThetaMin)
+                NewtonRate = 2.0d0 
+            ELSE
+                ThetaSD = NewtonIncrement/NewtonIncrementOld
+                IF (ThetaSD < 0.99d0) THEN
+                    NewtonRate = ThetaSD/(ONE-ThetaSD)
+                    ! Predict error at the end of Newton process 
+                    NewtonPredictedErr = NewtonIncrement &
+                               *ThetaSD**(NewtonMaxit-NewtonIter)/(ONE-ThetaSD)
+                    IF (NewtonPredictedErr >= NewtonTol) THEN
+                      ! Non-convergence of Newton: predicted error too large
+                      !print*,'Error too large: ', NewtonPredictedErr
+                      Qnewton = MIN(10.0d0,NewtonPredictedErr/NewtonTol)
+                      Fac = 0.8d0*Qnewton**(-ONE/(1+NewtonMaxit-NewtonIter))
+                      EXIT SDNewtonLoop
+                    END IF
+                ELSE ! Non-convergence of Newton: ThetaSD too large
+                    !print*,'Theta too large: ',ThetaSD
+                    EXIT SDNewtonLoop
+                END IF
+            END IF
+            NewtonIncrementOld = NewtonIncrement
+            ! Update solution: Z4 <-- Z4 + DZ4
+            CALL WAXPY(N,ONE,DZ4,1,Z4,1) 
+            
+            ! Check error in Newton iterations
+            NewtonDone = (NewtonRate*NewtonIncrement <= NewtonTol)
+            IF (NewtonDone) EXIT SDNewtonLoop
+            
+            END DO SDNewtonLoop
+            
+            IF (.NOT.NewtonDone) THEN
+                H = Fac*H; Reject=.TRUE.; SkipJac = .TRUE.;  SkipLU = .FALSE.
+                CYCLE Tloop
+            END IF
+      END IF
+!~~~>  End of implified SDIRK Newton iterations
+
+            
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> Error estimation
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IF (SdirkError) THEN
+!         DZ4(1:N) =  rkD(1)*Z1 + rkD(2)*Z2 + rkD(3)*Z3 - Z4    
+	 CALL Set2Zero(N, DZ4)
+	 IF (rkD(1) /= ZERO) CALL WAXPY(N, rkD(1), Z1, 1, DZ4, 1)
+	 IF (rkD(2) /= ZERO) CALL WAXPY(N, rkD(2), Z2, 1, DZ4, 1)
+	 IF (rkD(3) /= ZERO) CALL WAXPY(N, rkD(3), Z3, 1, DZ4, 1)
+	 CALL WAXPY(N, -ONE, Z4, 1, DZ4, 1)
+         Err = RK_ErrorNorm(N,SCAL,DZ4)    
+      ELSE
+         CALL  RK_ErrorEstimate(N,H,Y,T, &
+               E1,IP1,Z1,Z2,Z3,SCAL,Err,FirstStep,Reject)
+      END IF
+!~~~> Computation of new step size Hnew
+      Fac  = Err**(-ONE/rkELO)*          &
+             MIN(FacSafe,(ONE+2*NewtonMaxit)/(NewtonIter+2*NewtonMaxit))
+      Fac  = MIN(FacMax,MAX(FacMin,Fac))
+      Hnew = Fac*H
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> Accept/reject step 
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+accept:IF (Err < ONE) THEN !~~~> STEP IS ACCEPTED
+         IF (AdjointType == KPP_ROOT_discrete) THEN ! Save stage solution
+            ! CALL WCOPY(N,Z1,1,Zstage(1),1)
+            ! CALL WCOPY(N,Z2,1,Zstage(N+1),1)
+            ! CALL WCOPY(N,Z3,1,Zstage(2*N+1),1)
+            Zstage(1:N)       = Z1(1:N) 
+            Zstage(N+1:2*N)   = Z2(1:N)
+            Zstage(2*N+1:3*N) = Z3(1:N)
+	    ! Push old Y - Y at the beginning of the stage
+            CALL rk_DPush(T, H, Y, Zstage, NewIt, E1, E2)
+         END IF
+
+         FirstStep=.FALSE.
+         ISTATUS(iacc) = ISTATUS(iacc) + 1
+         IF (Gustafsson) THEN
+            !~~~> Predictive controller of Gustafsson
+            IF (ISTATUS(iacc) > 1) THEN
+               FacGus=FacSafe*(H/Hacc)*(Err**2/ErrOld)**(-0.25d0)
+               FacGus=MIN(FacMax,MAX(FacMin,FacGus))
+               Fac=MIN(Fac,FacGus)
+               Hnew = Fac*H
+            END IF
+            Hacc=H
+            ErrOld=MAX(1.0d-2,Err)
+         END IF
+         Hold = H
+         T = T+H 
+         ! Update solution: Y <- Y + sum (d_i Z_i)
+         IF (rkD(1) /= ZERO) CALL WAXPY(N,rkD(1),Z1,1,Y,1)
+         IF (rkD(2) /= ZERO) CALL WAXPY(N,rkD(2),Z2,1,Y,1)
+         IF (rkD(3) /= ZERO) CALL WAXPY(N,rkD(3),Z3,1,Y,1)
+         ! Construct the solution quadratic interpolant Q(c_i) = Z_i, i=1:3
+         IF (StartNewton) CALL RK_Interpolate('make',N,H,Hold,Z1,Z2,Z3,CONT)
+         CALL RK_ErrorScale(N,ITOL,AbsTol,RelTol,Y,SCAL)
+         RSTATUS(itexit) = T
+         RSTATUS(ihnew)  = Hnew
+         RSTATUS(ihacc)  = H
+         Hnew = Tdirection*MIN( MAX(ABS(Hnew),Hmin) , Hmax )
+         IF (Reject) Hnew = Tdirection*MIN(ABS(Hnew),ABS(H))
+         Reject = .FALSE.
+         IF ((T+Hnew/Qmin-Tend)*Tdirection >=  ZERO) THEN
+            H = Tend-T
+         ELSE
+            Hratio=Hnew/H
+            ! Reuse the LU decomposition
+            SkipLU = (Theta<=ThetaMin) .AND. (Hratio>=Qmin) .AND. (Hratio<=Qmax)
+	    SkipLU = .false.
+            IF (.NOT.SkipLU) H=Hnew
+         END IF
+         ! If convergence is fast enough, do not update Jacobian
+         ! SkipJac = (Theta <= ThetaMin)
+         SkipJac = .FALSE.
+
+      ELSE accept !~~~> Step is rejected
+         IF (FirstStep .OR. Reject) THEN
+             H = FacRej*H
+         ELSE
+             H = Hnew
+         END IF
+         Reject   = .TRUE.
+         SkipJac  = .TRUE.
+         SkipLU   = .FALSE. 
+         IF (ISTATUS(iacc) >= 1) ISTATUS(irej) = ISTATUS(irej) + 1
+      END IF accept
+      
+    END DO Tloop
+
+!~~~> Save last state: only needed for continuous adjoint
+   IF ( (AdjointType == KPP_ROOT_continuous) .OR. &
+       (AdjointType == KPP_ROOT_simple_continuous) ) THEN
+       CALL Fun_Chem(T,Y,Fcn0)
+       CALL rk_CPush( T, H, Y, Fcn0, DZ3)
+!~~~> Deallocate stage buffer: only needed for discrete adjoint
+   ELSEIF (AdjointType == KPP_ROOT_discrete) THEN 
+        DEALLOCATE(Zstage, STAT=i)
+        IF (i/=0) THEN
+          PRINT*,'Deallocation of Zstage failed'
+          STOP
+        END IF
+   END IF   
+   
+    ! Successful exit
+    IERR = 1  
+
+ END SUBROUTINE RK_FwdIntegrator
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE rk_DadjInt( NADJ,Lambda,Tstart,Tend,T,IERR )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      IMPLICIT NONE
+!~~~> Arguments
+!~~~> Input: the initial condition at Tstart; Output: the solution at T   
+      INTEGER, INTENT(IN)     :: NADJ
+!~~~> First order adjoint   
+      KPP_REAL, INTENT(INOUT) :: Lambda(N,NADJ)
+      KPP_REAL, INTENT(IN)    :: Tstart, Tend
+      KPP_REAL, INTENT(INOUT) :: T
+      INTEGER,  INTENT(OUT)   :: IERR
+
+!~~~> Local variables
+#ifdef FULL_ALGEBRA
+      KPP_REAL    :: Jac0(N,N), Jac1(N,N),Jac2(N,N),Jac3(N,N), E1(N,N)
+      COMPLEX(kind=dp) :: E2(N,N)   
+      KPP_REAL    :: Jbig(3*N,3*N), X(3*N)
+      INTEGER     :: IPbig(3*N), ISING
+#else
+      KPP_REAL, DIMENSION(LU_NONZERO) :: Jac0, Jac1, Jac2, Jac3, E1
+      COMPLEX(kind=dp), DIMENSION(LU_NONZERO) :: E2   
+      ! Next two lines for sparse big algebra:
+      ! KPP_REAL :: Jbig(3,3,LU_NONZERO), X(3,N)
+      ! INTEGER :: IPbig(3,N)
+      KPP_REAL :: Jbig(3*N,3*N), X(3*N)
+      INTEGER  :: IPbig(3*N)
+#endif                
+      KPP_REAL, DIMENSION(N,NADJ) :: U1,U2,U3
+      KPP_REAL, DIMENSION(N) :: SCAL,DU1,DU2,DU3
+      KPP_REAL :: Y(N), Zstage(3*N)
+      KPP_REAL  :: H, NewtonRate, NewtonIncrement, NewtonIncrementOld
+      INTEGER :: IP1(N),IP2(N),NewtonIter, ISING, iadj, NewIt
+      LOGICAL :: Reject, NewtonDone, NewtonConverge
+      KPP_REAL :: T1, Theta
+      KPP_REAL, DIMENSION(N) :: TMP, G1, G2, G3
+      INTEGER :: i, j
+            
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Initial setting
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      T1 = Tend      
+!      Tdirection = SIGN(ONE,Tend-Tstart)
+      NewtonConverge = .TRUE.
+      Reject = .FALSE.
+      
+!~~~> Time loop begins below 
+TimeLoop:DO WHILE ( stack_ptr > 0 )
+
+   IF (.not.Reject) THEN
+   
+     !~~~>  Recover checkpoints for stage values and vectors
+     CALL rk_DPop(T, H, Y, Zstage, NewIt, E1, E2)
+
+     !~~~>  Compute LU decomposition 
+     IF (.NOT.SaveLU) THEN
+        !~~~> Compute the Jacobian matrix
+        CALL JAC_CHEM(T,Y,Jac0)
+        ISTATUS(ijac) = ISTATUS(ijac) + 1
+        !~~~> Compute the matrices E1 and E2 and their decompositions
+        CALL RK_Decomp(N,H,Jac0,E1,IP1,E2,IP2,ISING)
+     END IF
+   
+     !~~~>   Jacobian values at stage vectors
+     CALL WADD(N,Y,Zstage(1),TMP)       ! TMP  <- Y + Z1
+     CALL JAC_CHEM(T+rkC(1)*H,TMP,Jac1) ! Jac1 <- Jac(Y+Z1)  
+     CALL WADD(N,Y,Zstage(1+N),TMP)     ! TMP  <- Y + Z2
+     CALL JAC_CHEM(T+rkC(2)*H,TMP,Jac2) ! Jac2 <- Jac(Y+Z2)  
+     CALL WADD(N,Y,Zstage(1+2*N),TMP)   ! TMP  <- Y + Z3
+     CALL JAC_CHEM(T+rkC(3)*H,TMP,Jac3) ! Jac3 <- Jac(Y+Z3)
+      
+   END IF ! .not.Reject
+
+111 CONTINUE
+
+   IF ( (AdjointSolve == Solve_adaptive .and. .not.NewtonConverge) &
+         .or. (AdjointSolve == Solve_direct) ) THEN
+#ifdef FULL_ALGEBRA  
+       DO j=1,N
+         DO i=1,N
+          Jbig(i,j)         = -H*rkA(1,1)*Jac1(i,j)
+          Jbig(N+i,j)       = -H*rkA(2,1)*Jac1(i,j)
+          Jbig(2*N+i,j)     = -H*rkA(3,1)*Jac1(i,j)
+          Jbig(i,N+j)       = -H*rkA(1,2)*Jac2(i,j)
+          Jbig(N+i,N+j)     = -H*rkA(2,2)*Jac2(i,j)
+          Jbig(2*N+i,N+j)   = -H*rkA(3,2)*Jac2(i,j)
+          Jbig(i,2*N+j)     = -H*rkA(1,3)*Jac3(i,j)
+          Jbig(N+i,2*N+j)   = -H*rkA(2,3)*Jac3(i,j)
+          Jbig(2*N+i,2*N+j) = -H*rkA(3,3)*Jac3(i,j)
+         END DO  
+       END DO
+       DO i=1,3*N
+	  Jbig(i,i) = Jbig(i,i) + ONE
+       END DO
+       CALL DGETRF(3*N,3*N,Jbig,3*N,IPbig,ISING) 
+       ! CALL WGEFA(3*N,Jbig,IPbig,ISING) 
+       IF (ISING /= 0) THEN
+         PRINT*,'Big guy is singular'; STOP
+       END IF 
+#else    
+!  Commented lines for sparse big algebra:    
+!      !~~~>  Construct the big Jacobian
+!      DO j=1,LU_NONZERO
+!        DO i=1,3
+!          Jbig(i,1,j) = -H*rkA(i,1)*Jac1(j)
+!          Jbig(i,2,j) = -H*rkA(i,2)*Jac2(j)
+!          Jbig(i,3,j) = -H*rkA(i,3)*Jac3(j)
+!        END DO
+!      END DO
+!      DO j=1,NVAR
+!        DO i=1,3
+!          Jbig(i,i,LU_DIAG(j)) = ONE + Jbig(i,i,LU_DIAG(j))
+!        END DO
+!      END DO
+!      !~~~>  Solve the big system
+!      CALL KppDecompBig( Jbig, IPbig, ISING )
+!  Use full big algebra:    
+      Jbig(1:3*N,1:3*N) = 0.0d0
+      DO i=1,LU_NONZERO
+	  Jbig(LU_irow(i),LU_icol(i))         = -H*rkA(1,1)*Jac1(i)
+	  Jbig(LU_irow(i),N+LU_icol(i))       = -H*rkA(1,2)*Jac2(i)
+	  Jbig(LU_irow(i),2*N+LU_icol(i))     = -H*rkA(1,3)*Jac3(i)
+	  Jbig(N+LU_irow(i),LU_icol(i))       = -H*rkA(2,1)*Jac1(i)
+	  Jbig(N+LU_irow(i),N+LU_icol(i))     = -H*rkA(2,2)*Jac2(i)
+	  Jbig(N+LU_irow(i),2*N+LU_icol(i))   = -H*rkA(2,3)*Jac3(i)
+	  Jbig(2*N+LU_irow(i),LU_icol(i))     = -H*rkA(3,1)*Jac1(i)
+	  Jbig(2*N+LU_irow(i),N+LU_icol(i))   = -H*rkA(3,2)*Jac2(i)
+	  Jbig(2*N+LU_irow(i),2*N+LU_icol(i)) = -H*rkA(3,3)*Jac3(i)
+      END DO
+      DO i=1, 3*N
+	 Jbig(i,i) = ONE + Jbig(i,i)
+      END DO
+      ! CALL DGETRF(3*N,3*N,Jbig,3*N,IPbig,ISING) 
+      CALL WGEFA(3*N,Jbig,IPbig,ISING) 
+      IF (ISING /= 0) THEN
+         PRINT*,'Big guy is singular'; STOP
+      END IF
+#endif        
+    END IF
+      
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Loop for the simplified Newton iterations
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Adj:DO iadj = 1, NADJ      
+      !~~~>  Starting values for Newton iteration
+      ! CALL WCOPY(N,Lambda(1,iadj),1,U1(1,iadj),1)
+      ! CALL WCOPY(N,Lambda(1,iadj),1,U2(1,iadj),1)
+      ! CALL WCOPY(N,Lambda(1,iadj),1,U3(1,iadj),1)
+      CALL Set2Zero(N,U1(1,iadj))
+      CALL Set2Zero(N,U2(1,iadj))
+      CALL Set2Zero(N,U3(1,iadj))
+      
+      !~~~>  Initializations for Newton iteration
+      NewtonDone = .FALSE.
+      !~~~>    Right Hand Side - part G for all Newton iterations
+      CALL RK_PrepareRHS_G(N,H,Jac1,Jac2,Jac3,Lambda(1,iadj), 	      &
+      			G1, G2, G3)
+			
+      IF ( (AdjointSolve == Solve_adaptive .and. NewtonConverge)      &
+            .or. (AdjointSolve == Solve_fixed) ) THEN
+
+NewtonLoopAdj:DO  NewtonIter = 1, NewtonMaxit  
+
+            !~~~> Prepare the right-hand side
+            CALL RK_PrepareRHS_Adj(N,H,Jac1,Jac2,Jac3,Lambda(1,iadj), &
+	    		U1(1,iadj),U2(1,iadj),U3(1,iadj),	      &
+			G1, G2, G3, DU1,DU2,DU3)
+
+            !~~~> Solve the linear systems
+            CALL RK_SolveTR( N,H,E1,IP1,E2,IP2,DU1,DU2,DU3,ISING )
+
+!~~~> The following code performs an adaptive number of Newton
+!     iterations for solving adjoint system
+            IF (AdjointSolve == Solve_adaptive) THEN
+
+            CALL RK_ErrorScale(N,ITOL,                      &
+                 AbsTol_adj(1:N,iadj),RelTol_adj(1:N,iadj), &
+                 Lambda(1:N,iadj),SCAL)
+
+	    ! SCAL(1:N) = 1.0d0
+            NewtonIncrement = SQRT( ( RK_ErrorNorm(N,SCAL,DU1)**2 +   &
+                                RK_ErrorNorm(N,SCAL,DU2)**2 +         &
+                                RK_ErrorNorm(N,SCAL,DU3)**2 )/3.0d0 )
+            
+	
+            IF ( NewtonIter == 1 ) THEN
+                Theta      = ABS(ThetaMin)
+                NewtonRate = 2.0d0 
+            ELSE
+                Theta = NewtonIncrement/NewtonIncrementOld
+                IF (Theta < 0.99d0) THEN
+                    NewtonRate = Theta/(ONE-Theta)
+                ELSE ! Non-convergence of Newton: Theta too large
+		    Reject = .TRUE.
+		    NewtonDone = .FALSE.
+                    EXIT NewtonLoopAdj
+                END IF
+
+            END IF
+	  
+            NewtonIncrementOld = MAX(NewtonIncrement,Roundoff) 
+
+            END IF ! (AdjointSolve == Solve_adaptive)
+            
+            ! Update solution
+            CALL WAXPY(N,-ONE,DU1,1,U1(1,iadj),1) ! U1 <- U1 - DU1
+            CALL WAXPY(N,-ONE,DU2,1,U2(1,iadj),1) ! U2 <- U2 - DU2
+            CALL WAXPY(N,-ONE,DU3,1,U3(1,iadj),1) ! U3 <- U3 - DU3
+
+            IF (AdjointSolve == Solve_adaptive) THEN
+            ! When performing an adaptive number of iterations
+            !       check the error in Newton iterations
+               NewtonDone = (NewtonRate*NewtonIncrement <= NewtonTol)
+               IF ((NewtonDone).and.(NewtonIter>NewIt+1)) EXIT NewtonLoopAdj
+            ELSE IF (AdjointSolve == Solve_fixed) THEN
+               IF (NewtonIter>MAX(NewIt+1,6)) EXIT NewtonLoopAdj
+            END IF   
+            
+      END DO NewtonLoopAdj
+      
+      IF ((AdjointSolve==Solve_adaptive).AND.(.NOT.NewtonDone)) THEN
+         ! print*,'Newton iterations do not converge, switching to full system.'
+	 NewtonConverge = .FALSE.
+	 Reject = .TRUE.
+	 GOTO 111
+      END IF
+      
+      ! Update adjoint solution: Y_adj <- Y_adj + sum (U_i)
+      CALL WAXPY(N,ONE,U1(1,iadj),1,Lambda(1,iadj),1)
+      CALL WAXPY(N,ONE,U2(1,iadj),1,Lambda(1,iadj),1)
+      CALL WAXPY(N,ONE,U3(1,iadj),1,Lambda(1,iadj),1)
+
+      ELSE ! NewtonConverge = .false.
+
+#ifdef FULL_ALGEBRA  
+	X(1:N)       = -G1(1:N)
+	X(N+1:2*N)   = -G2(1:N)
+	X(2*N+1:3*N) = -G3(1:N)
+	CALL DGETRS('T',3*N,1,Jbig,3*N,IPbig,X,3*N,ISING) 
+        ! CALL WGESL('T',3*N,Jbig,IPbig,X)
+	Lambda(1:N,iadj) = Lambda(1:N,iadj)+X(1:N)+X(N+1:2*N)+X(2*N+1:3*N)
+#else        
+!   Commented lines for sparse big algebra:
+!	X(1,1:N) = -G1(1:N)
+!	X(2,1:N) = -G2(1:N)
+!	X(3,1:N) = -G3(1:N)
+!	CALL KppSolveBigTR( Jbig, IPbig, X )                
+!	Lambda(1:N,iadj) = Lambda(1:N,iadj)+X(1,1:N)+X(2,1:N)+X(3,1:N)
+!   Use fill big algebra:
+	X(1:N)       = -G1(1:N)
+	X(N+1:2*N)   = -G2(1:N)
+	X(2*N+1:3*N) = -G3(1:N)
+	! CALL DGETRS('T',3*N,1,Jbig,3*N,IPbig,X,3*N,ISING) 
+        CALL WGESL('T',3*N,Jbig,IPbig,X)
+	Lambda(1:N,iadj) = Lambda(1:N,iadj)+X(1:N)+X(N+1:2*N)+X(2*N+1:3*N)
+#endif        
+        IF ((AdjointSolve==Solve_adaptive).AND.(iadj>=NADJ)) THEN
+	  NewtonConverge = .TRUE.
+	  Reject = .FALSE.
+        END IF
+     
+     END IF ! NewtonConverge
+ 
+   END DO Adj
+   
+   T1 = T1-H
+      
+   END DO TimeLoop
+   
+    ! Successful exit
+    IERR = 1  
+
+ END SUBROUTINE RK_DadjInt
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE rk_CadjInt (                        &
+        NADJ, Y,                                &
+        Tstart, Tend, T, IERR)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+!~~~> Arguments
+!~~~> Input: the initial condition at Tstart; Output: the solution at T   
+      INTEGER, INTENT(IN)     :: NADJ
+!~~~> First order adjoint   
+      KPP_REAL, INTENT(INOUT) :: Y(N,NADJ)
+      KPP_REAL, INTENT(IN)    :: Tstart, Tend
+      KPP_REAL, INTENT(INOUT) :: T
+      INTEGER,  INTENT(OUT)        :: IERR
+
+  END SUBROUTINE rk_CadjInt
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE rk_SimpleCadjInt (                  &
+        NADJ, Y,                                &
+        Tstart, Tend, T,                        &
+        IERR )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+!~~~> Arguments
+!~~~> Input: the initial condition at Tstart; Output: the solution at T   
+      INTEGER, INTENT(IN)     :: NADJ
+!~~~> First order adjoint   
+      KPP_REAL, INTENT(INOUT) :: Y(N,NADJ)
+      KPP_REAL, INTENT(IN)    :: Tstart, Tend
+      KPP_REAL, INTENT(INOUT) :: T
+      INTEGER,  INTENT(OUT)        :: IERR
+
+  END SUBROUTINE rk_SimpleCadjInt
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE RK_ErrorMsg(Code,T,H,IERR)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!    Handles all error messages
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+   IMPLICIT NONE
+   KPP_REAL, INTENT(IN) :: T, H
+   INTEGER, INTENT(IN)  :: Code
+   INTEGER, INTENT(OUT) :: IERR
+
+   IERR = Code
+   PRINT * , &
+     'Forced exit from RungeKutta due to the following error:'
+
+
+   SELECT CASE (Code)
+    CASE (-1)
+      PRINT * , '--> Improper value for maximal no of steps'
+    CASE (-2)
+      PRINT * , '--> Improper value for maximal no of Newton iterations'
+    CASE (-3)
+      PRINT * , '--> Hmin/Hmax/Hstart must be positive'
+    CASE (-4)
+      PRINT * , '--> Improper values for FacMin/FacMax/FacSafe/FacRej'
+    CASE (-5)
+      PRINT * , '--> Improper value for ThetaMin'
+    CASE (-6)
+      PRINT * , '--> Newton stopping tolerance too small'
+    CASE (-7)
+      PRINT * , '--> Improper values for Qmin, Qmax'
+    CASE (-8)
+      PRINT * , '--> Tolerances are too small'
+    CASE (-9)
+      PRINT * , '--> No of steps exceeds maximum bound'
+    CASE (-10)
+      PRINT * , '--> Step size too small: T + 10*H = T', &
+            ' or H < Roundoff'
+    CASE (-11)
+      PRINT * , '--> Matrix is repeatedly singular'
+    CASE (-12)
+      PRINT * , '--> Non-convergence of Newton iterations'
+    CASE (-13)
+      PRINT * , '--> Requested RK method not implemented'
+    CASE DEFAULT
+      PRINT *, 'Unknown Error code: ', Code
+   END SELECT
+
+   WRITE(6,FMT="(5X,'T=',E12.5,'  H=',E12.5)") T, H 
+
+ END SUBROUTINE RK_ErrorMsg
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE RK_ErrorScale(N,ITOL,AbsTol,RelTol,Y,SCAL)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!    Handles all error messages
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   IMPLICIT NONE
+   INTEGER, INTENT(IN)  :: N, ITOL
+   KPP_REAL, INTENT(IN) :: AbsTol(*), RelTol(*), Y(N)
+   KPP_REAL, INTENT(OUT) :: SCAL(N)
+   INTEGER :: i
+   
+   IF (ITOL==0) THEN
+       DO i=1,N
+          SCAL(i)= ONE/(AbsTol(1)+RelTol(1)*ABS(Y(i)))
+       END DO
+   ELSE
+       DO i=1,N
+          SCAL(i)=ONE/(AbsTol(i)+RelTol(i)*ABS(Y(i)))
+       END DO
+   END IF
+      
+ END SUBROUTINE RK_ErrorScale
+
+
+!!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!  SUBROUTINE RK_Transform(N,Tr,Z1,Z2,Z3,W1,W2,W3)
+!!~~~>                 W <-- Tr x Z
+!!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!      IMPLICIT NONE
+!      INTEGER :: N, i
+!      KPP_REAL :: Tr(3,3),Z1(N),Z2(N),Z3(N),W1(N),W2(N),W3(N)
+!      KPP_REAL :: x1, x2, x3
+!      DO i=1,N
+!          x1 = Z1(i); x2 = Z2(i); x3 = Z3(i)
+!          W1(i) = Tr(1,1)*x1 + Tr(1,2)*x2 + Tr(1,3)*x3
+!          W2(i) = Tr(2,1)*x1 + Tr(2,2)*x2 + Tr(2,3)*x3
+!          W3(i) = Tr(3,1)*x1 + Tr(3,2)*x2 + Tr(3,3)*x3
+!      END DO
+!  END SUBROUTINE RK_Transform
+ 
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE RK_Interpolate(action,N,H,Hold,Z1,Z2,Z3,CONT)
+!~~~>   Constructs or evaluates a quadratic polynomial
+!         that interpolates the Z solution at current step
+!         and provides starting values for the next step
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      INTEGER :: N, i
+      KPP_REAL :: H,Hold,Z1(N),Z2(N),Z3(N),CONT(N,3)
+      KPP_REAL :: r, x1, x2, x3, den
+      CHARACTER(LEN=4) :: action
+       
+      SELECT CASE (action) 
+      CASE ('make')
+         ! Construct the solution quadratic interpolant Q(c_i) = Z_i, i=1:3
+         den = (rkC(3)-rkC(2))*(rkC(2)-rkC(1))*(rkC(1)-rkC(3))
+         DO i=1,N
+             CONT(i,1)=(-rkC(3)**2*rkC(2)*Z1(i)+Z3(i)*rkC(2)*rkC(1)**2 &
+                        +rkC(2)**2*rkC(3)*Z1(i)-rkC(2)**2*rkC(1)*Z3(i) &
+                        +rkC(3)**2*rkC(1)*Z2(i)-Z2(i)*rkC(3)*rkC(1)**2)&
+                        /den-Z3(i)
+             CONT(i,2)= -( rkC(1)**2*(Z3(i)-Z2(i)) + rkC(2)**2*(Z1(i)  &
+                          -Z3(i)) +rkC(3)**2*(Z2(i)-Z1(i)) )/den
+             CONT(i,3)= ( rkC(1)*(Z3(i)-Z2(i)) + rkC(2)*(Z1(i)-Z3(i))  &
+                           +rkC(3)*(Z2(i)-Z1(i)) )/den
+         END DO
+      CASE ('eval')
+          ! Evaluate quadratic polynomial
+          r = H/Hold
+         x1 = ONE + rkC(1)*r
+         x2 = ONE + rkC(2)*r
+         x3 = ONE + rkC(3)*r
+         DO i=1,N
+            Z1(i) = CONT(i,1)+x1*(CONT(i,2)+x1*CONT(i,3))
+            Z2(i) = CONT(i,1)+x2*(CONT(i,2)+x2*CONT(i,3))
+            Z3(i) = CONT(i,1)+x3*(CONT(i,2)+x3*CONT(i,3))
+         END DO
+       END SELECT   
+  END SUBROUTINE RK_Interpolate
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE RK_PrepareRHS(N,T,H,Y,Z1,Z2,Z3,R1,R2,R3)
+!~~~> Prepare the right-hand side for Newton iterations
+!     R = Z - hA x F
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      
+      INTEGER :: N
+      KPP_REAL :: T,H
+      KPP_REAL, DIMENSION(N) :: Y,Z1,Z2,Z3,F,R1,R2,R3,TMP
+
+      CALL WCOPY(N,Z1,1,R1,1) ! R1 <- Z1
+      CALL WCOPY(N,Z2,1,R2,1) ! R2 <- Z2
+      CALL WCOPY(N,Z3,1,R3,1) ! R3 <- Z3
+
+      CALL WADD(N,Y,Z1,TMP)              ! TMP <- Y + Z1
+      CALL FUN_CHEM(T+rkC(1)*H,TMP,F)    ! F1 <- Fun(Y+Z1)         
+      CALL WAXPY(N,-H*rkA(1,1),F,1,R1,1) ! R1 <- R1 - h*A_11*F1
+      CALL WAXPY(N,-H*rkA(2,1),F,1,R2,1) ! R2 <- R2 - h*A_21*F1
+      CALL WAXPY(N,-H*rkA(3,1),F,1,R3,1) ! R3 <- R3 - h*A_31*F1
+
+      CALL WADD(N,Y,Z2,TMP)              ! TMP <- Y + Z2
+      CALL FUN_CHEM(T+rkC(2)*H,TMP,F)    ! F2 <- Fun(Y+Z2)        
+      CALL WAXPY(N,-H*rkA(1,2),F,1,R1,1) ! R1 <- R1 - h*A_12*F2
+      CALL WAXPY(N,-H*rkA(2,2),F,1,R2,1) ! R2 <- R2 - h*A_22*F2
+      CALL WAXPY(N,-H*rkA(3,2),F,1,R3,1) ! R3 <- R3 - h*A_32*F2
+
+      CALL WADD(N,Y,Z3,TMP)              ! TMP <- Y + Z3
+      CALL FUN_CHEM(T+rkC(3)*H,TMP,F)    ! F3 <- Fun(Y+Z3)     
+      CALL WAXPY(N,-H*rkA(1,3),F,1,R1,1) ! R1 <- R1 - h*A_13*F3
+      CALL WAXPY(N,-H*rkA(2,3),F,1,R2,1) ! R2 <- R2 - h*A_23*F3
+      CALL WAXPY(N,-H*rkA(3,3),F,1,R3,1) ! R3 <- R3 - h*A_33*F3
+            
+  END SUBROUTINE RK_PrepareRHS
+  
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE RK_PrepareRHS_Adj(N,H,Jac1,Jac2,Jac3,Lambda, &
+                      U1,U2,U3,G1,G2,G3,R1,R2,R3)
+!~~~> Prepare the right-hand side for Newton iterations
+!     R = Z_adj - hA x Jac*Z_adj - h J^t b lambda
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      
+      INTEGER, INTENT(IN) :: N
+      KPP_REAL, INTENT(IN) :: H
+      KPP_REAL, DIMENSION(N), INTENT(IN) :: U1,U2,U3,Lambda,G1,G2,G3
+      KPP_REAL, DIMENSION(N), INTENT(OUT) :: R1,R2,R3
+#ifdef FULL_ALGEBRA      
+      KPP_REAL, DIMENSION(N,N), INTENT(IN) :: Jac1, Jac2, Jac3
+#else      
+      KPP_REAL, DIMENSION(LU_NONZERO),INTENT(IN) :: Jac1, Jac2, Jac3
+#endif
+      KPP_REAL, DIMENSION(N) ::  F,TMP
+
+
+      CALL WCOPY(N,G1,1,R1,1) ! R1 <- G1
+      CALL WCOPY(N,G2,1,R2,1) ! R2 <- G2
+      CALL WCOPY(N,G3,1,R3,1) ! R3 <- G3
+
+      CALL SET2ZERO(N,F)
+      CALL WAXPY(N,-H*rkA(1,1),U1,1,F,1) ! F1 <- -h*A_11*U1
+      CALL WAXPY(N,-H*rkA(2,1),U2,1,F,1) ! F1 <- F1 - h*A_21*U2
+      CALL WAXPY(N,-H*rkA(3,1),U3,1,F,1) ! F1 <- F1 - h*A_31*U3
+#ifdef FULL_ALGEBRA  
+      TMP = MATMUL(TRANSPOSE(Jac1),F)    
+#else      
+      CALL JacTR_SP_Vec ( Jac1, F, TMP )   ! R1 <- -Jac(Y+Z1)^t*h*sum(A_j1*U_j)  
+#endif      
+      CALL WAXPY(N,ONE,U1,1,TMP,1) ! R1 <- U1 -Jac(Y+Z1)^t*h*sum(A_j1*U_j)
+      CALL WAXPY(N,ONE,TMP,1,R1,1) ! R1 <- U1 -Jac(Y+Z1)^t*h*sum(A_j1*U_j)
+
+      CALL SET2ZERO(N,F)
+      CALL WAXPY(N,-H*rkA(1,2),U1,1,F,1) ! F2 <- -h*A_11*U1
+      CALL WAXPY(N,-H*rkA(2,2),U2,1,F,1) ! F2 <- F2 - h*A_21*U2
+      CALL WAXPY(N,-H*rkA(3,2),U3,1,F,1) ! F2 <- F2 - h*A_31*U3
+#ifdef FULL_ALGEBRA  
+      TMP = MATMUL(TRANSPOSE(Jac2),F)    
+#else      
+      CALL JacTR_SP_Vec ( Jac2, F, TMP )   ! R2 <- -Jac(Y+Z2)^t*h*sum(A_j2*U_j)  
+#endif      
+      CALL WAXPY(N,ONE,U2,1,TMP,1) ! R2 <- U2 -Jac(Y+Z2)^t*h*sum(A_j2*U_j)
+      CALL WAXPY(N,ONE,TMP,1,R2,1) ! R2 <- U2 -Jac(Y+Z2)^t*h*sum(A_j2*U_j)
+
+      CALL SET2ZERO(N,F)
+      CALL WAXPY(N,-H*rkA(1,3),U1,1,F,1) ! F3 <- -h*A_11*U1
+      CALL WAXPY(N,-H*rkA(2,3),U2,1,F,1) ! F3 <- F3 - h*A_21*U2
+      CALL WAXPY(N,-H*rkA(3,3),U3,1,F,1) ! F3 <- F3 - h*A_31*U3
+#ifdef FULL_ALGEBRA  
+      TMP = MATMUL(TRANSPOSE(Jac3),F)    
+#else      
+      CALL JacTR_SP_Vec ( Jac3, F, TMP )   ! R3 <- -Jac(Y+Z3)^t*h*sum(A_j3*U_j)  
+#endif      
+      CALL WAXPY(N,ONE,U3,1,TMP,1) ! R3 <- U3 -Jac(Y+Z3)^t*h*sum(A_j3*U_j)
+      CALL WAXPY(N,ONE,TMP,1,R3,1) ! R3 <- U3 -Jac(Y+Z3)^t*h*sum(A_j3*U_j)
+
+
+  END SUBROUTINE RK_PrepareRHS_Adj
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE RK_PrepareRHS_G(N,H,Jac1,Jac2,Jac3,Lambda, &
+                      G1,G2,G3)
+!~~~> Prepare the right-hand side for Newton iterations
+!     R = Z_adj - hA x Jac*Z_adj - h J^t b lambda
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      
+      INTEGER, INTENT(IN) :: N
+      KPP_REAL, INTENT(IN) :: H
+      KPP_REAL, DIMENSION(N), INTENT(IN) :: Lambda
+      KPP_REAL, DIMENSION(N), INTENT(OUT) :: G1,G2,G3
+#ifdef FULL_ALGEBRA      
+      KPP_REAL, DIMENSION(N,N), INTENT(IN) :: Jac1, Jac2, Jac3
+#else      
+      KPP_REAL, DIMENSION(LU_NONZERO),INTENT(IN) :: Jac1, Jac2, Jac3
+#endif
+      KPP_REAL, DIMENSION(N) ::  F  
+
+      CALL SET2ZERO(N,G1)
+      CALL SET2ZERO(N,G2)
+      CALL SET2ZERO(N,G3)
+#ifdef FULL_ALGEBRA  
+      F = MATMUL(TRANSPOSE(Jac1),Lambda)    
+#else      
+      CALL JacTR_SP_Vec ( Jac1, Lambda, F )   ! F1 <- Jac(Y+Z1)^t*Lambda  
+#endif      
+      CALL WAXPY(N,-H*rkB(1),F,1,G1,1) ! R1 <- R1 - h*B_1*F1
+
+#ifdef FULL_ALGEBRA      
+      F = MATMUL(TRANSPOSE(Jac2),Lambda)    
+#else      
+      CALL JacTR_SP_Vec ( Jac2, Lambda, F )   ! F2 <- Jac(Y+Z2)^t*Lambda  
+#endif      
+      CALL WAXPY(N,-H*rkB(2),F,1,G2,1) ! R2 <- R2 - h*B_2*F2
+
+#ifdef FULL_ALGEBRA      
+      F = MATMUL(TRANSPOSE(Jac3),Lambda)    
+#else      
+      CALL JacTR_SP_Vec ( Jac3, Lambda, F )   ! F3 <- Jac(Y+Z3)^t*Lambda  
+#endif      
+      CALL WAXPY(N,-H*rkB(3),F,1,G3,1) ! R3 <- R3 - h*B_3*F3
+
+            
+  END SUBROUTINE RK_PrepareRHS_G
+  
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE RK_Decomp(N,H,FJAC,E1,IP1,E2,IP2,ISING)
+   !~~~> Compute the matrices E1 and E2 and their decompositions
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      
+      INTEGER :: N, ISING
+      KPP_REAL    :: H, Alpha, Beta, Gamma
+#ifdef FULL_ALGEBRA      
+      KPP_REAL    :: FJAC(N,N),E1(N,N)
+      COMPLEX(kind=dp) :: E2(N,N)
+#else      
+      KPP_REAL    :: FJAC(LU_NONZERO),E1(LU_NONZERO)
+      COMPLEX(kind=dp) :: E2(LU_NONZERO)
+#endif      
+      INTEGER :: IP1(N), IP2(N), i, j
+      
+      Gamma = rkGamma/H
+      Alpha = rkAlpha/H
+      Beta  = rkBeta /H
+
+#ifdef FULL_ALGEBRA      
+      DO j=1,N
+         DO  i=1,N
+            E1(i,j)=-FJAC(i,j)
+         END DO
+         E1(j,j)=E1(j,j)+Gamma
+      END DO
+      CALL DGETRF(N,N,E1,N,IP1,ISING) 
+#else      
+      DO i=1,LU_NONZERO
+         E1(i)=-FJAC(i)
+      END DO
+      DO i=1,N
+         j=LU_DIAG(i); E1(j)=E1(j)+Gamma
+      END DO
+      CALL KppDecomp(E1,ISING)
+#endif      
+      
+      IF (ISING /= 0) THEN
+         ISTATUS(idec) = ISTATUS(idec) + 1
+         RETURN
+      END IF
+     
+#ifdef FULL_ALGEBRA      
+      DO j=1,N
+        DO i=1,N
+          E2(i,j) = DCMPLX( -FJAC(i,j), ZERO )
+        END DO
+        E2(j,j) = E2(j,j) + CMPLX( Alpha, Beta )
+      END DO
+      CALL ZGETRF(N,N,E2,N,IP2,ISING)     
+#else  
+      DO i=1,LU_NONZERO
+         E2(i) = DCMPLX( -FJAC(i), ZERO )
+      END DO
+      DO i=1,N
+         j = LU_DIAG(i); E2(j)=E2(j) + CMPLX( Alpha, Beta )
+      END DO
+      CALL KppDecompCmplx(E2,ISING)    
+#endif      
+      ISTATUS(idec) = ISTATUS(idec) + 1
+      
+   END SUBROUTINE RK_Decomp
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE RK_Solve(N,H,E1,IP1,E2,IP2,R1,R2,R3,ISING)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      INTEGER :: N,IP1(N),IP2(N),ISING
+#ifdef FULL_ALGEBRA      
+      KPP_REAL    :: E1(N,N)
+      COMPLEX(kind=dp) :: E2(N,N)
+#else      
+      KPP_REAL    :: E1(LU_NONZERO)
+      COMPLEX(kind=dp) :: E2(LU_NONZERO)
+#endif      
+      KPP_REAL    :: R1(N),R2(N),R3(N)
+      KPP_REAL    :: H, x1, x2, x3
+      COMPLEX(kind=dp) :: BC(N)
+      INTEGER :: i
+!      
+     ! Z <- h^{-1) T^{-1) A^{-1) x Z
+      DO i=1,N
+          x1 = R1(i)/H; x2 = R2(i)/H; x3 = R3(i)/H
+          R1(i) = rkTinvAinv(1,1)*x1 + rkTinvAinv(1,2)*x2 + rkTinvAinv(1,3)*x3
+          R2(i) = rkTinvAinv(2,1)*x1 + rkTinvAinv(2,2)*x2 + rkTinvAinv(2,3)*x3
+          R3(i) = rkTinvAinv(3,1)*x1 + rkTinvAinv(3,2)*x2 + rkTinvAinv(3,3)*x3
+      END DO
+
+#ifdef FULL_ALGEBRA      
+      CALL DGETRS ('N',N,1,E1,N,IP1,R1,N,ISING) 
+#else      
+      CALL KppSolve (E1,R1)
+#endif      
+!      
+      DO i=1,N
+        BC(i) = DCMPLX(R2(i),R3(i))
+      END DO
+#ifdef FULL_ALGEBRA      
+      CALL ZGETRS ('N',N,1,E2,N,IP2,BC,N,ISING) 
+#else      
+      CALL KppSolveCmplx (E2,BC)
+#endif      
+      DO i=1,N
+        R2(i) = DBLE( BC(i) )
+        R3(i) = AIMAG( BC(i) )
+      END DO
+
+      ! Z <- T x Z
+      DO i=1,N
+          x1 = R1(i); x2 = R2(i); x3 = R3(i)
+          R1(i) = rkT(1,1)*x1 + rkT(1,2)*x2 + rkT(1,3)*x3
+          R2(i) = rkT(2,1)*x1 + rkT(2,2)*x2 + rkT(2,3)*x3
+          R3(i) = rkT(3,1)*x1 + rkT(3,2)*x2 + rkT(3,3)*x3
+      END DO
+
+      ISTATUS(isol) = ISTATUS(isol) + 1
+
+   END SUBROUTINE RK_Solve
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE RK_SolveTR(N,H,E1,IP1,E2,IP2,R1,R2,R3,ISING)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      INTEGER, INTENT(IN)  :: N,IP1(N),IP2(N)
+      INTEGER, INTENT(OUT) :: ISING
+#ifdef FULL_ALGEBRA      
+      KPP_REAL,    INTENT(IN) :: E1(N,N)
+      COMPLEX(kind=dp), INTENT(IN) :: E2(N,N)
+#else      
+      KPP_REAL,    INTENT(IN) :: E1(LU_NONZERO)
+      COMPLEX(kind=dp), INTENT(IN) :: E2(LU_NONZERO)
+#endif      
+      KPP_REAL, INTENT(INOUT) :: R1(N),R2(N),R3(N)
+      KPP_REAL    :: H, x1, x2, x3
+      COMPLEX(kind=dp) :: BC(N)
+      INTEGER :: i
+!      
+     ! RHS <- h^{-1) (A^{-1) T^{-1))^t x RHS
+      DO i=1,N
+          x1 = R1(i)/H; x2 = R2(i)/H; x3 = R3(i)/H
+          R1(i) = rkAinvT(1,1)*x1 + rkAinvT(2,1)*x2 + rkAinvT(3,1)*x3
+          R2(i) = rkAinvT(1,2)*x1 + rkAinvT(2,2)*x2 + rkAinvT(3,2)*x3
+          R3(i) = rkAinvT(1,3)*x1 + rkAinvT(2,3)*x2 + rkAinvT(3,3)*x3
+      END DO
+
+#ifdef FULL_ALGEBRA      
+      CALL DGETRS ('T',N,1,E1,N,IP1,R1,N,ISING) 
+#else      
+      CALL KppSolveTR (E1,R1,R1)
+#endif      
+!      
+      DO i=1,N
+        BC(i) = DCMPLX(R2(i),-R3(i))
+      END DO
+#ifdef FULL_ALGEBRA      
+      CALL ZGETRS ('T',N,1,E2,N,IP2,BC,N,ISING) 
+#else      
+      CALL KppSolveTRCmplx (E2,BC)
+#endif      
+      DO i=1,N
+        R2(i) = DBLE( BC(i) )
+        R3(i) = -AIMAG( BC(i) )
+      END DO
+
+      ! X <- (T^{-1})^t x X
+      DO i=1,N
+          x1 = R1(i); x2 = R2(i); x3 = R3(i)
+          R1(i) = rkTinv(1,1)*x1 + rkTinv(2,1)*x2 + rkTinv(3,1)*x3
+          R2(i) = rkTinv(1,2)*x1 + rkTinv(2,2)*x2 + rkTinv(3,2)*x3
+          R3(i) = rkTinv(1,3)*x1 + rkTinv(2,3)*x2 + rkTinv(3,3)*x3
+      END DO
+
+      ISTATUS(isol) = ISTATUS(isol) + 1
+
+   END SUBROUTINE RK_SolveTR
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE RK_ErrorEstimate(N,H,Y,T,   &
+              E1,IP1,Z1,Z2,Z3,SCAL,Err,   &
+              FirstStep,Reject)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      
+      INTEGER :: N
+#ifdef FULL_ALGEBRA      
+      KPP_REAL :: E1(N,N)
+      INTEGER  :: ISING
+#else       
+      KPP_REAL :: E1(LU_NONZERO)
+#endif      
+      KPP_REAL :: SCAL(N),Z1(N),Z2(N),Z3(N),F1(N),F2(N), &
+                        F0(N),Y(N),TMP(N),T,H
+      INTEGER :: IP1(N), i
+      LOGICAL FirstStep,Reject
+      KPP_REAL :: HEE1,HEE2,HEE3,Err
+
+      HEE1  = rkE(1)/H
+      HEE2  = rkE(2)/H
+      HEE3  = rkE(3)/H
+
+      CALL FUN_CHEM(T,Y,F0)
+      ISTATUS(ifun) = ISTATUS(ifun) + 1
+
+      DO  i=1,N
+         F2(i)  = HEE1*Z1(i)+HEE2*Z2(i)+HEE3*Z3(i)
+         TMP(i) = rkE(0)*F0(i) + F2(i)
+      END DO
+
+#ifdef FULL_ALGEBRA      
+      CALL DGETRS ('N',N,1,E1,N,IP1,TMP,N,ISING) 
+      IF ((rkMethod==R1A).OR.(rkMethod==GAU).OR.(rkMethod==L3A)) THEN
+          CALL DGETRS('N',N,1,E1,N,IP1,TMP,N,ISING)
+      END IF	  
+      IF (rkMethod==GAU) THEN
+          CALL DGETRS ('N',N,1,E1,N,IP1,TMP,N,ISING)
+      END IF	  
+#else      
+      CALL KppSolve (E1, TMP)
+      IF ((rkMethod==R1A).OR.(rkMethod==GAU).OR.(rkMethod==L3A)) THEN
+          CALL KppSolve (E1,TMP)
+      END IF	  
+      IF (rkMethod==GAU) THEN
+          CALL KppSolve (E1,TMP)
+      END IF	  
+#endif      
+
+      Err = RK_ErrorNorm(N,SCAL,TMP)
+!
+      IF (Err < ONE) RETURN
+firej:IF (FirstStep.OR.Reject) THEN
+          DO i=1,N
+             TMP(i)=Y(i)+TMP(i)
+          END DO
+          CALL FUN_CHEM(T,TMP,F1)    
+          ISTATUS(ifun) = ISTATUS(ifun) + 1
+          DO i=1,N
+             TMP(i)=F1(i)+F2(i)
+          END DO
+
+#ifdef FULL_ALGEBRA      
+          CALL DGETRS ('N',N,1,E1,N,IP1,TMP,N,ISING) 
+#else      
+          CALL KppSolve (E1, TMP)
+#endif      
+          Err = RK_ErrorNorm(N,SCAL,TMP)
+       END IF firej
+ 
+   END SUBROUTINE RK_ErrorEstimate
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   KPP_REAL FUNCTION RK_ErrorNorm(N,SCAL,DY)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      
+      INTEGER :: N
+      KPP_REAL :: SCAL(N),DY(N)
+      INTEGER :: i
+
+      RK_ErrorNorm = ZERO
+      DO i=1,N
+          RK_ErrorNorm = RK_ErrorNorm + (DY(i)*SCAL(i))**2
+      END DO
+      RK_ErrorNorm = MAX( SQRT(RK_ErrorNorm/N), 1.0d-10 )
+ 
+   END FUNCTION RK_ErrorNorm
+  
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE Radau2A_Coefficients
+!    The coefficients of the 3-stage Radau-2A method
+!    (given to ~30 accurate digits)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
+      IMPLICIT NONE
+! The coefficients of the Radau2A method
+      KPP_REAL :: b0
+
+!      b0 = 1.0d0
+      IF (SdirkError) THEN
+        b0 = 0.2d-1
+      ELSE
+        b0 = 0.5d-1
+      END IF
+
+! The coefficients of the Radau2A method
+      rkMethod = R2A
+
+      rkA(1,1) =  1.968154772236604258683861429918299d-1
+      rkA(1,2) = -6.55354258501983881085227825696087d-2
+      rkA(1,3) =  2.377097434822015242040823210718965d-2
+      rkA(2,1) =  3.944243147390872769974116714584975d-1
+      rkA(2,2) =  2.920734116652284630205027458970589d-1
+      rkA(2,3) = -4.154875212599793019818600988496743d-2
+      rkA(3,1) =  3.764030627004672750500754423692808d-1
+      rkA(3,2) =  5.124858261884216138388134465196080d-1
+      rkA(3,3) =  1.111111111111111111111111111111111d-1
+
+      rkB(1) = 3.764030627004672750500754423692808d-1
+      rkB(2) = 5.124858261884216138388134465196080d-1
+      rkB(3) = 1.111111111111111111111111111111111d-1
+
+      rkC(1) = 1.550510257216821901802715925294109d-1
+      rkC(2) = 6.449489742783178098197284074705891d-1
+      rkC(3) = 1.0d0
+      
+      ! New solution: H* Sum B_j*f(Z_j) = Sum D_j*Z_j
+      rkD(1) = 0.0d0
+      rkD(2) = 0.0d0
+      rkD(3) = 1.0d0
+
+      ! Classical error estimator: 
+      ! H* Sum (B_j-Bhat_j)*f(Z_j) = H*E(0)*f(0) + Sum E_j*Z_j
+      rkE(0) = 1.0d0*b0
+      rkE(1) = -10.04880939982741556246032950764708d0*b0
+      rkE(2) = 1.382142733160748895793662840980412d0*b0
+      rkE(3) = -.3333333333333333333333333333333333d0*b0
+
+      ! Sdirk error estimator
+      rkBgam(0) = b0
+      rkBgam(1) = .3764030627004672750500754423692807d0-1.558078204724922382431975370686279d0*b0
+      rkBgam(2) = .8914115380582557157653087040196118d0*b0+.5124858261884216138388134465196077d0
+      rkBgam(3) = -.1637777184845662566367174924883037d0-.3333333333333333333333333333333333d0*b0
+      rkBgam(4) = .2748888295956773677478286035994148d0
+
+      ! H* Sum Bgam_j*f(Z_j) = H*Bgam(0)*f(0) + Sum Theta_j*Z_j
+      rkTheta(1) = -1.520677486405081647234271944611547d0-10.04880939982741556246032950764708d0*b0
+      rkTheta(2) = 2.070455145596436382729929151810376d0+1.382142733160748895793662840980413d0*b0
+      rkTheta(3) = -.3333333333333333333333333333333333d0*b0-.3744441479783868387391430179970741d0
+
+      ! Local order of error estimator 
+      IF (b0==0.0d0) THEN
+        rkELO  = 6.0d0
+      ELSE	
+        rkELO  = 4.0d0
+      END IF	
+
+      !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      !~~~> Diagonalize the RK matrix:               
+      ! rkTinv * inv(rkA) * rkT =          
+      !           |  rkGamma      0           0     |
+      !           |      0      rkAlpha   -rkBeta   |
+      !           |      0      rkBeta     rkAlpha  |
+      !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      rkGamma = 3.637834252744495732208418513577775d0
+      rkAlpha = 2.681082873627752133895790743211112d0
+      rkBeta  = 3.050430199247410569426377624787569d0
+
+      rkT(1,1) =  9.443876248897524148749007950641664d-2
+      rkT(1,2) = -1.412552950209542084279903838077973d-1
+      rkT(1,3) = -3.00291941051474244918611170890539d-2
+      rkT(2,1) =  2.502131229653333113765090675125018d-1
+      rkT(2,2) =  2.041293522937999319959908102983381d-1
+      rkT(2,3) =  3.829421127572619377954382335998733d-1
+      rkT(3,1) =  1.0d0
+      rkT(3,2) =  1.0d0
+      rkT(3,3) =  0.0d0
+
+      rkTinv(1,1) =  4.178718591551904727346462658512057d0
+      rkTinv(1,2) =  3.27682820761062387082533272429617d-1
+      rkTinv(1,3) =  5.233764454994495480399309159089876d-1
+      rkTinv(2,1) = -4.178718591551904727346462658512057d0
+      rkTinv(2,2) = -3.27682820761062387082533272429617d-1
+      rkTinv(2,3) =  4.766235545005504519600690840910124d-1
+      rkTinv(3,1) = -5.02872634945786875951247343139544d-1
+      rkTinv(3,2) =  2.571926949855605429186785353601676d0
+      rkTinv(3,3) = -5.960392048282249249688219110993024d-1
+
+      rkTinvAinv(1,1) =  1.520148562492775501049204957366528d+1
+      rkTinvAinv(1,2) =  1.192055789400527921212348994770778d0
+      rkTinvAinv(1,3) =  1.903956760517560343018332287285119d0
+      rkTinvAinv(2,1) = -9.669512977505946748632625374449567d0
+      rkTinvAinv(2,2) = -8.724028436822336183071773193986487d0
+      rkTinvAinv(2,3) =  3.096043239482439656981667712714881d0
+      rkTinvAinv(3,1) = -1.409513259499574544876303981551774d+1
+      rkTinvAinv(3,2) =  5.895975725255405108079130152868952d0
+      rkTinvAinv(3,3) = -1.441236197545344702389881889085515d-1
+
+      rkAinvT(1,1) = .3435525649691961614912493915818282d0
+      rkAinvT(1,2) = -.4703191128473198422370558694426832d0
+      rkAinvT(1,3) = .3503786597113668965366406634269080d0
+      rkAinvT(2,1) = .9102338692094599309122768354288852d0
+      rkAinvT(2,2) = 1.715425895757991796035292755937326d0
+      rkAinvT(2,3) = .4040171993145015239277111187301784d0
+      rkAinvT(3,1) = 3.637834252744495732208418513577775d0
+      rkAinvT(3,2) = 2.681082873627752133895790743211112d0
+      rkAinvT(3,3) = -3.050430199247410569426377624787569d0
+
+  END SUBROUTINE Radau2A_Coefficients
+
+    
+
+    
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE Lobatto3C_Coefficients
+!    The coefficients of the 3-stage Lobatto-3C method
+!    (given to ~30 accurate digits)
+!    The parameter b0 can be chosen to tune the error estimator
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
+      IMPLICIT NONE
+      KPP_REAL :: b0
+
+      rkMethod = L3C
+
+!      b0 = 1.0d0
+      IF (SdirkError) THEN
+        b0 = 0.2d0
+      ELSE
+        b0 = 0.5d0
+      END IF
+! The coefficients of the Lobatto3C method
+
+      rkA(1,1) =  .1666666666666666666666666666666667d0
+      rkA(1,2) = -.3333333333333333333333333333333333d0
+      rkA(1,3) =  .1666666666666666666666666666666667d0
+      rkA(2,1) =  .1666666666666666666666666666666667d0
+      rkA(2,2) =  .4166666666666666666666666666666667d0
+      rkA(2,3) = -.8333333333333333333333333333333333d-1
+      rkA(3,1) =  .1666666666666666666666666666666667d0
+      rkA(3,2) =  .6666666666666666666666666666666667d0
+      rkA(3,3) =  .1666666666666666666666666666666667d0
+
+      rkB(1) = .1666666666666666666666666666666667d0
+      rkB(2) = .6666666666666666666666666666666667d0
+      rkB(3) = .1666666666666666666666666666666667d0
+
+      rkC(1) = 0.0d0
+      rkC(2) = 0.5d0
+      rkC(3) = 1.0d0
+
+      ! Classical error estimator, embedded solution: 
+      rkBhat(0) = b0
+      rkBhat(1) = .16666666666666666666666666666666667d0-b0
+      rkBhat(2) = .66666666666666666666666666666666667d0
+      rkBhat(3) = .16666666666666666666666666666666667d0
+      
+      ! New solution: h Sum_j b_j f(Z_j) = sum d_j Z_j
+      rkD(1) = 0.0d0
+      rkD(2) = 0.0d0
+      rkD(3) = 1.0d0
+
+      ! Classical error estimator: 
+      !   H* Sum (B_j-Bhat_j)*f(Z_j) = H*E(0)*f(0) + Sum E_j*Z_j
+      rkE(0) =   .3808338772072650364017425226487022*b0
+      rkE(1) = -1.142501631621795109205227567946107*b0
+      rkE(2) = -1.523335508829060145606970090594809*b0
+      rkE(3) =   .3808338772072650364017425226487022*b0
+
+      ! Sdirk error estimator
+      rkBgam(0) = b0
+      rkBgam(1) = .1666666666666666666666666666666667d0-1.d0*b0
+      rkBgam(2) = .6666666666666666666666666666666667d0
+      rkBgam(3) = -.2141672105405983697350758559820354d0
+      rkBgam(4) = .3808338772072650364017425226487021d0
+
+      ! H* Sum Bgam_j*f(Z_j) = H*Bgam(0)*f(0) + Sum Theta_j*Z_j
+      rkTheta(1) = -3.d0*b0-.3808338772072650364017425226487021d0
+      rkTheta(2) = -4.d0*b0+1.523335508829060145606970090594808d0
+      rkTheta(3) = -.142501631621795109205227567946106d0+b0
+
+      ! Local order of error estimator 
+      IF (b0==0.0d0) THEN
+        rkELO  = 5.0d0
+      ELSE	
+        rkELO  = 4.0d0
+      END IF	
+
+      !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      !~~~> Diagonalize the RK matrix:               
+      ! rkTinv * inv(rkA) * rkT =          
+      !           |  rkGamma      0           0     |
+      !           |      0      rkAlpha   -rkBeta   |
+      !           |      0      rkBeta     rkAlpha  |
+      !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      rkGamma = 2.625816818958466716011888933765284d0
+      rkAlpha = 1.687091590520766641994055533117359d0
+      rkBeta  = 2.508731754924880510838743672432351d0
+
+      rkT(1,1) = 1.d0
+      rkT(1,2) = 1.d0
+      rkT(1,3) = 0.d0
+      rkT(2,1) = .4554100411010284672111720348287483d0
+      rkT(2,2) = -.6027050205505142336055860174143743d0
+      rkT(2,3) = -.4309321229203225731070721341350346d0
+      rkT(3,1) = 2.195823345445647152832799205549709d0
+      rkT(3,2) = -1.097911672722823576416399602774855d0
+      rkT(3,3) = .7850032632435902184104551358922130d0
+
+      rkTinv(1,1) = .4205559181381766909344950150991349d0
+      rkTinv(1,2) = .3488903392193734304046467270632057d0
+      rkTinv(1,3) = .1915253879645878102698098373933487d0
+      rkTinv(2,1) = .5794440818618233090655049849008650d0
+      rkTinv(2,2) = -.3488903392193734304046467270632057d0
+      rkTinv(2,3) = -.1915253879645878102698098373933487d0
+      rkTinv(3,1) = -.3659705575742745254721332009249516d0
+      rkTinv(3,2) = -1.463882230297098101888532803699806d0
+      rkTinv(3,3) = .4702733607340189781407813565524989d0
+
+      rkTinvAinv(1,1) = 1.104302803159744452668648155627548d0
+      rkTinvAinv(1,2) = .916122120694355522658740710823143d0
+      rkTinvAinv(1,3) = .5029105849749601702795812241441172d0
+      rkTinvAinv(2,1) = 1.895697196840255547331351844372453d0
+      rkTinvAinv(2,2) = 3.083877879305644477341259289176857d0
+      rkTinvAinv(2,3) = -1.502910584974960170279581224144117d0
+      rkTinvAinv(3,1) = .8362439183082935036129145574774502d0
+      rkTinvAinv(3,2) = -3.344975673233174014451658229909802d0
+      rkTinvAinv(3,3) = .312908409479233358005944466882642d0
+
+      rkAinvT(1,1) = 2.625816818958466716011888933765282d0
+      rkAinvT(1,2) = 1.687091590520766641994055533117358d0
+      rkAinvT(1,3) = -2.508731754924880510838743672432351d0
+      rkAinvT(2,1) = 1.195823345445647152832799205549710d0
+      rkAinvT(2,2) = -2.097911672722823576416399602774855d0
+      rkAinvT(2,3) = .7850032632435902184104551358922130d0
+      rkAinvT(3,1) = 5.765829871932827589653709477334136d0
+      rkAinvT(3,2) = .1170850640335862051731452613329320d0
+      rkAinvT(3,3) = 4.078738281412060947659653944216779d0
+
+  END SUBROUTINE Lobatto3C_Coefficients
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE Gauss_Coefficients
+!    The coefficients of the 3-stage Gauss method
+!    (given to ~30 accurate digits)
+!    The parameter b3 can be chosen by the user
+!    to tune the error estimator
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
+      IMPLICIT NONE
+      KPP_REAL :: b0
+! The coefficients of the Gauss method
+
+
+      rkMethod = GAU
+      
+!      b0 = 4.0d0
+      b0 = 0.1d0
+      
+! The coefficients of the Gauss method
+
+      rkA(1,1) =  .1388888888888888888888888888888889d0
+      rkA(1,2) = -.359766675249389034563954710966045d-1
+      rkA(1,3) =  .97894440153083260495800422294756d-2
+      rkA(2,1) =  .3002631949808645924380249472131556d0
+      rkA(2,2) =  .2222222222222222222222222222222222d0
+      rkA(2,3) = -.224854172030868146602471694353778d-1
+      rkA(3,1) =  .2679883337624694517281977355483022d0
+      rkA(3,2) =  .4804211119693833479008399155410489d0
+      rkA(3,3) =  .1388888888888888888888888888888889d0
+
+      rkB(1) = .2777777777777777777777777777777778d0
+      rkB(2) = .4444444444444444444444444444444444d0
+      rkB(3) = .2777777777777777777777777777777778d0
+
+      rkC(1) = .1127016653792583114820734600217600d0
+      rkC(2) = .5000000000000000000000000000000000d0
+      rkC(3) = .8872983346207416885179265399782400d0
+
+      ! Classical error estimator, embedded solution: 
+      rkBhat(0) = b0
+      rkBhat(1) =-1.4788305577012361475298775666303999d0*b0 &
+                  +.27777777777777777777777777777777778d0
+      rkBhat(2) =  .44444444444444444444444444444444444d0 &
+                  +.66666666666666666666666666666666667d0*b0
+      rkBhat(3) = -.18783610896543051913678910003626672d0*b0 &
+                  +.27777777777777777777777777777777778d0
+
+      ! New solution: h Sum_j b_j f(Z_j) = sum d_j Z_j
+      rkD(1) = .1666666666666666666666666666666667d1
+      rkD(2) = -.1333333333333333333333333333333333d1
+      rkD(3) = .1666666666666666666666666666666667d1
+
+      ! Classical error estimator: 
+      !   H* Sum (B_j-Bhat_j)*f(Z_j) = H*E(0)*f(0) + Sum E_j*Z_j
+      rkE(0) = .2153144231161121782447335303806954d0*b0
+      rkE(1) = -2.825278112319014084275808340593191d0*b0
+      rkE(2) = .2870858974881495709929780405075939d0*b0
+      rkE(3) = -.4558086256248162565397206448274867d-1*b0
+
+      ! Sdirk error estimator
+      rkBgam(0) = 0.d0
+      rkBgam(1) = .2373339543355109188382583162660537d0
+      rkBgam(2) = .5879873931885192299409334646982414d0
+      rkBgam(3) = -.4063577064014232702392531134499046d-1
+      rkBgam(4) = .2153144231161121782447335303806955d0
+
+      ! H* Sum Bgam_j*f(Z_j) = H*Bgam(0)*f(0) + Sum Theta_j*Z_j
+      rkTheta(1) = -2.594040933093095272574031876464493d0
+      rkTheta(2) = 1.824611539036311947589425112250199d0
+      rkTheta(3) = .1856563166634371860478043996459493d0
+
+      ! ELO = local order of classical error estimator 
+      rkELO = 4.0d0
+
+      !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      !~~~> Diagonalize the RK matrix:               
+      ! rkTinv * inv(rkA) * rkT =          
+      !           |  rkGamma      0           0     |
+      !           |      0      rkAlpha   -rkBeta   |
+      !           |      0      rkBeta     rkAlpha  |
+      !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      rkGamma = 4.644370709252171185822941421408064d0
+      rkAlpha = 3.677814645373914407088529289295970d0
+      rkBeta  = 3.508761919567443321903661209182446d0
+
+      rkT(1,1) =  .7215185205520017032081769924397664d-1
+      rkT(1,2) = -.8224123057363067064866206597516454d-1
+      rkT(1,3) = -.6012073861930850173085948921439054d-1
+      rkT(2,1) =  .1188325787412778070708888193730294d0
+      rkT(2,2) =  .5306509074206139504614411373957448d-1
+      rkT(2,3) =  .3162050511322915732224862926182701d0
+      rkT(3,1) = 1.d0
+      rkT(3,2) = 1.d0
+      rkT(3,3) = 0.d0
+
+      rkTinv(1,1) =  5.991698084937800775649580743981285d0
+      rkTinv(1,2) =  1.139214295155735444567002236934009d0
+      rkTinv(1,3) =   .4323121137838583855696375901180497d0
+      rkTinv(2,1) = -5.991698084937800775649580743981285d0
+      rkTinv(2,2) = -1.139214295155735444567002236934009d0
+      rkTinv(2,3) =   .5676878862161416144303624098819503d0
+      rkTinv(3,1) = -1.246213273586231410815571640493082d0
+      rkTinv(3,2) =  2.925559646192313662599230367054972d0
+      rkTinv(3,3) =  -.2577352012734324923468722836888244d0
+
+      rkTinvAinv(1,1) =  27.82766708436744962047620566703329d0
+      rkTinvAinv(1,2) =   5.290933503982655311815946575100597d0
+      rkTinvAinv(1,3) =   2.007817718512643701322151051660114d0
+      rkTinvAinv(2,1) = -17.66368928942422710690385180065675d0
+      rkTinvAinv(2,2) = -14.45491129892587782538830044147713d0
+      rkTinvAinv(2,3) =   2.992182281487356298677848948339886d0
+      rkTinvAinv(3,1) = -25.60678350282974256072419392007303d0
+      rkTinvAinv(3,2) =   6.762434375611708328910623303779923d0
+      rkTinvAinv(3,3) =   1.043979339483109825041215970036771d0
+      
+      rkAinvT(1,1) = .3350999483034677402618981153470483d0
+      rkAinvT(1,2) = -.5134173605009692329246186488441294d0
+      rkAinvT(1,3) = .6745196507033116204327635673208923d-1
+      rkAinvT(2,1) = .5519025480108928886873752035738885d0
+      rkAinvT(2,2) = 1.304651810077110066076640761092008d0
+      rkAinvT(2,3) = .9767507983414134987545585703726984d0
+      rkAinvT(3,1) = 4.644370709252171185822941421408064d0
+      rkAinvT(3,2) = 3.677814645373914407088529289295970d0
+      rkAinvT(3,3) = -3.508761919567443321903661209182446d0
+      
+  END SUBROUTINE Gauss_Coefficients
+
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE Radau1A_Coefficients
+!    The coefficients of the 3-stage Gauss method
+!    (given to ~30 accurate digits)
+!    The parameter b3 can be chosen by the user
+!    to tune the error estimator
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
+      IMPLICIT NONE
+!      KPP_REAL :: b0 = 0.3d0
+      KPP_REAL :: b0 = 0.1d0
+
+! The coefficients of the Radau1A method
+
+      rkMethod = R1A
+
+      rkA(1,1) =  .1111111111111111111111111111111111d0
+      rkA(1,2) = -.1916383190435098943442935597058829d0
+      rkA(1,3) =  .8052720793239878323318244859477174d-1
+      rkA(2,1) =  .1111111111111111111111111111111111d0
+      rkA(2,2) =  .2920734116652284630205027458970589d0
+      rkA(2,3) = -.481334970546573839513422644787591d-1
+      rkA(3,1) =  .1111111111111111111111111111111111d0
+      rkA(3,2) =  .5370223859435462728402311533676479d0
+      rkA(3,3) =  .1968154772236604258683861429918299d0
+
+      rkB(1) = .1111111111111111111111111111111111d0
+      rkB(2) = .5124858261884216138388134465196080d0
+      rkB(3) = .3764030627004672750500754423692808d0
+
+      rkC(1) = 0.d0
+      rkC(2) = .3550510257216821901802715925294109d0
+      rkC(3) = .8449489742783178098197284074705891d0
+
+      ! Classical error estimator, embedded solution: 
+      rkBhat(0) = b0
+      rkBhat(1) = .11111111111111111111111111111111111d0-b0
+      rkBhat(2) = .51248582618842161383881344651960810d0
+      rkBhat(3) = .37640306270046727505007544236928079d0
+
+      ! New solution: H* Sum B_j*f(Z_j) = Sum D_j*Z_j
+      rkD(1) = .3333333333333333333333333333333333d0
+      rkD(2) = -.8914115380582557157653087040196127d0
+      rkD(3) = .1558078204724922382431975370686279d1
+
+      ! Classical error estimator: 
+      ! H* Sum (b_j-bhat_j) f(Z_j) = H*E(0)*F(0) + Sum E_j Z_j
+      rkE(0) =   .2748888295956773677478286035994148d0*b0
+      rkE(1) = -1.374444147978386838739143017997074d0*b0
+      rkE(2) = -1.335337922441686804550326197041126d0*b0
+      rkE(3) =   .235782604058977333559011782643466d0*b0
+
+      ! Sdirk error estimator
+      rkBgam(0) = 0.0d0
+      rkBgam(1) = .1948150124588532186183490991130616d-1
+      rkBgam(2) = .7575249005733381398986810981093584d0
+      rkBgam(3) = -.518952314149008295083446116200793d-1
+      rkBgam(4) = .2748888295956773677478286035994148d0
+
+      ! H* Sum Bgam_j*f(Z_j) = H*Bgam(0)*f(0) + Sum Theta_j*Z_j
+      rkTheta(1) = -1.224370034375505083904362087063351d0
+      rkTheta(2) = .9340045331532641409047527962010133d0
+      rkTheta(3) = .4656990124352088397561234800640929d0
+
+      ! ELO = local order of classical error estimator 
+      rkELO = 4.0d0
+
+      !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      !~~~> Diagonalize the RK matrix:               
+      ! rkTinv * inv(rkA) * rkT =          
+      !           |  rkGamma      0           0     |
+      !           |      0      rkAlpha   -rkBeta   |
+      !           |      0      rkBeta     rkAlpha  |
+      !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      rkGamma = 3.637834252744495732208418513577775d0
+      rkAlpha = 2.681082873627752133895790743211112d0
+      rkBeta  = 3.050430199247410569426377624787569d0
+
+      rkT(1,1) =  .424293819848497965354371036408369d0
+      rkT(1,2) = -.3235571519651980681202894497035503d0
+      rkT(1,3) = -.522137786846287839586599927945048d0
+      rkT(2,1) =  .57594609499806128896291585429339d-1
+      rkT(2,2) =  .3148663231849760131614374283783d-2
+      rkT(2,3) =  .452429247674359778577728510381731d0
+      rkT(3,1) = 1.d0
+      rkT(3,2) = 1.d0
+      rkT(3,3) = 0.d0
+
+      rkTinv(1,1) = 1.233523612685027760114769983066164d0
+      rkTinv(1,2) = 1.423580134265707095505388133369554d0
+      rkTinv(1,3) = .3946330125758354736049045150429624d0
+      rkTinv(2,1) = -1.233523612685027760114769983066164d0
+      rkTinv(2,2) = -1.423580134265707095505388133369554d0
+      rkTinv(2,3) = .6053669874241645263950954849570376d0
+      rkTinv(3,1) = -.1484438963257383124456490049673414d0
+      rkTinv(3,2) = 2.038974794939896109682070471785315d0
+      rkTinv(3,3) = -.544501292892686735299355831692542d-1
+
+      rkTinvAinv(1,1) =  4.487354449794728738538663081025420d0
+      rkTinvAinv(1,2) =  5.178748573958397475446442544234494d0
+      rkTinvAinv(1,3) =  1.435609490412123627047824222335563d0
+      rkTinvAinv(2,1) = -2.854361287939276673073807031221493d0
+      rkTinvAinv(2,2) = -1.003648660720543859000994063139137d+1
+      rkTinvAinv(2,3) =  1.789135380979465422050817815017383d0
+      rkTinvAinv(3,1) = -4.160768067752685525282947313530352d0
+      rkTinvAinv(3,2) =  1.124128569859216916690209918405860d0
+      rkTinvAinv(3,3) =  1.700644430961823796581896350418417d0
+
+      rkAinvT(1,1) = 1.543510591072668287198054583233180d0
+      rkAinvT(1,2) = -2.460228411937788329157493833295004d0
+      rkAinvT(1,3) = -.412906170450356277003910443520499d0
+      rkAinvT(2,1) = .209519643211838264029272585946993d0
+      rkAinvT(2,2) = 1.388545667194387164417459732995766d0
+      rkAinvT(2,3) = 1.20339553005832004974976023130002d0
+      rkAinvT(3,1) = 3.637834252744495732208418513577775d0
+      rkAinvT(3,2) = 2.681082873627752133895790743211112d0
+      rkAinvT(3,3) = -3.050430199247410569426377624787569d0
+
+  END SUBROUTINE Radau1A_Coefficients
+
+  
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  END SUBROUTINE RungeKuttaADJ ! and all its internal procedures
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE FUN_CHEM(T, V, FCT)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+    USE KPP_ROOT_Parameters
+    USE KPP_ROOT_Global
+    USE KPP_ROOT_Function, ONLY: Fun
+    USE KPP_ROOT_Rates, ONLY: Update_SUN, Update_RCONST, Update_PHOTO
+
+    IMPLICIT NONE
+
+    KPP_REAL :: V(NVAR), FCT(NVAR)
+    KPP_REAL :: T, Told
+
+    Told = TIME
+    TIME = T
+    CALL Update_SUN()
+    CALL Update_RCONST()
+    CALL Update_PHOTO()
+    TIME = Told
+    
+    CALL Fun(V, FIX, RCONST, FCT)
+    
+  END SUBROUTINE FUN_CHEM
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE JAC_CHEM (T, V, JF)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+    USE KPP_ROOT_Parameters
+    USE KPP_ROOT_Global
+    USE KPP_ROOT_JacobianSP
+    USE KPP_ROOT_Jacobian, ONLY: Jac_SP
+    USE KPP_ROOT_Rates, ONLY: Update_SUN, Update_RCONST, Update_PHOTO
+
+    IMPLICIT NONE
+
+    KPP_REAL :: V(NVAR), T , Told
+#ifdef FULL_ALGEBRA    
+    KPP_REAL :: JV(LU_NONZERO), JF(NVAR,NVAR)
+    INTEGER       :: i, j 
+#else
+    KPP_REAL :: JF(LU_NONZERO)
+#endif   
+
+    Told = TIME
+    TIME = T
+    CALL Update_SUN()
+    CALL Update_RCONST()
+    CALL Update_PHOTO()
+    TIME = Told
+    
+#ifdef FULL_ALGEBRA    
+    CALL Jac_SP(V, FIX, RCONST, JV)
+    DO j=1,NVAR
+      DO i=1,NVAR
+         JF(i,j) = 0.0d0
+      END DO
+    END DO
+    DO i=1,LU_NONZERO
+       JF(LU_IROW(i),LU_ICOL(i)) = JV(i)
+    END DO
+#else
+    CALL Jac_SP(V, FIX, RCONST, JF) 
+#endif   
+
+  END SUBROUTINE JAC_CHEM
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+END MODULE KPP_ROOT_Integrator
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/runge_kutta_tlm.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/runge_kutta_tlm.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/runge_kutta_tlm.def	(revision 2696)
@@ -0,0 +1,8 @@
+ 
+#FUNCTION AGGREGATE
+#JACOBIAN SPARSE_LU_ROW
+
+#DOUBLE ON 
+#INTFILE runge_kutta_tlm
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/runge_kutta_tlm.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/runge_kutta_tlm.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/runge_kutta_tlm.f90	(revision 2696)
@@ -0,0 +1,2229 @@
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
+!  RungeKuttaTLM - Tangent Linear Model of Fully Implicit 3-stage RK:     !
+!          * Radau-2A   quadrature (order 5)                              !
+!          * Radau-1A   quadrature (order 5)                              !
+!          * Lobatto-3C quadrature (order 4)                              !
+!          * Gauss      quadrature (order 6)                              !
+!  By default the code employs the KPP sparse linear algebra routines     !
+!  Compile with -DFULL_ALGEBRA to use full linear algebra (LAPACK)        !
+!                                                                         !
+!    (C)  Adrian Sandu, August 2005                                       !
+!    Virginia Polytechnic Institute and State University                  !
+!    Contact: sandu@cs.vt.edu                                             !
+!    Revised by Philipp Miehe and Adrian Sandu, May 2006                  !
+!    This implementation is part of KPP - the Kinetic PreProcessor        !
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
+
+MODULE KPP_ROOT_Integrator
+
+  USE KPP_ROOT_Precision
+  USE KPP_ROOT_Parameters, ONLY: NVAR, NSPEC, NFIX, LU_NONZERO
+  USE KPP_ROOT_Global, ONLY: FIX, RCONST, TIME
+  USE KPP_ROOT_Jacobian
+  USE KPP_ROOT_LinearAlgebra
+
+  IMPLICIT NONE
+  PUBLIC
+  SAVE
+
+!~~~>  Statistics on the work performed by the Runge-Kutta method
+  INTEGER, PARAMETER :: Nfun=1, Njac=2, Nstp=3, Nacc=4, &
+    Nrej=5, Ndec=6, Nsol=7, Nsng=8, Ntexit=1, Nhacc=2, Nhnew=3
+
+CONTAINS
+
+  ! **************************************************************************
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+SUBROUTINE INTEGRATE_TLM( NTLM, Y, Y_tlm, TIN, TOUT, ATOL_tlm, RTOL_tlm, &
+       ICNTRL_U, RCNTRL_U, ISTATUS_U, RSTATUS_U, IERR_U )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+    USE KPP_ROOT_Parameters, ONLY: NVAR
+    USE KPP_ROOT_Global,     ONLY: ATOL,RTOL,VAR
+
+    IMPLICIT NONE
+
+!~~~> Y - Concentrations
+    KPP_REAL :: Y(NVAR)
+!~~~> NTLM - No. of sensitivity coefficients
+    INTEGER NTLM
+!~~~> Y_tlm - Sensitivities of concentrations
+!     Note: Y_tlm (1:NVAR,j) contains sensitivities of
+!               Y(1:NVAR) w.r.t. the j-th parameter, j=1...NTLM
+    KPP_REAL :: Y_tlm(NVAR,NTLM)
+    KPP_REAL :: TIN  ! TIN - Start Time
+    KPP_REAL :: TOUT ! TOUT - End Time
+    KPP_REAL, INTENT(IN),  OPTIONAL :: RTOL_tlm(NVAR,NTLM),ATOL_tlm(NVAR,NTLM)
+    INTEGER,       INTENT(IN),  OPTIONAL :: ICNTRL_U(20)
+    KPP_REAL, INTENT(IN),  OPTIONAL :: RCNTRL_U(20)
+    INTEGER,       INTENT(OUT), OPTIONAL :: ISTATUS_U(20)
+    KPP_REAL, INTENT(OUT), OPTIONAL :: RSTATUS_U(20)
+    INTEGER,       INTENT(OUT), OPTIONAL :: IERR_U
+
+    INTEGER :: IERR
+
+    KPP_REAL :: RCNTRL(20), RSTATUS(20), T1, T2
+    INTEGER :: ICNTRL(20), ISTATUS(20)
+    INTEGER, SAVE :: Ntotal = 0
+
+    ICNTRL(1:20) = 0
+    RCNTRL(1:20) = 0.0_dp
+
+    !~~~> fine-tune the integrator:
+    ICNTRL(2)  = 0   ! Tolerances: 0=vector, 1=scalar
+    ICNTRL(5)  = 8   ! Max no. of Newton iterations
+    ICNTRL(6)  = 0   ! Starting values for Newton are: 0=interpolated, 1=zero
+    ICNTRL(7)  = 1   ! TLM solution: 0=iterations, 1=direct
+    ICNTRL(9)  = 0   ! TLM Newton iteration error: 0=fwd Newton, 1=TLM Newton error est
+    ICNTRL(10) = 1   ! FWD error estimation: 0=classic, 1=SDIRK
+    ICNTRL(11) = 1   ! Step size ontroller: 1=Gustaffson, 2=classic
+    ICNTRL(12) = 0   ! Trunc. error estimate: 0=fwd only, 1=fwd and TLM
+
+    !~~~> if optional parameters are given, and if they are >0,
+    !     then use them to overwrite default settings
+    IF (PRESENT(ICNTRL_U)) THEN
+      WHERE(ICNTRL_U(:) > 0) ICNTRL(:) = ICNTRL_U(:)
+    END IF
+    IF (PRESENT(RCNTRL_U)) THEN
+      WHERE(RCNTRL_U(:) > 0) RCNTRL(:) = RCNTRL_U(:)
+    END IF
+
+    T1 = TIN; T2 = TOUT
+    CALL RungeKuttaTLM(  NVAR, NTLM, Y, Y_tlm, T1, T2, RTOL, ATOL, &
+                           RTOL_tlm, ATOL_tlm,                     &
+			   RCNTRL,ICNTRL,RSTATUS,ISTATUS,IERR  )
+
+    Ntotal = Ntotal + ISTATUS(Nstp)
+    PRINT*,'NSTEPS=',ISTATUS(Nstp),' (',Ntotal,')','  O3=', VAR(ind_O3)
+
+    ! if optional parameters are given for output
+    ! use them to store information in them
+    IF (PRESENT(ISTATUS_U)) ISTATUS_U(:) = ISTATUS(:)
+    IF (PRESENT(RSTATUS_U)) RSTATUS_U(:) = RSTATUS(:)
+    IF (PRESENT(IERR_U)) IERR_U = IERR
+
+    IF (IERR < 0) THEN
+      PRINT *,'Runge-Kutta-TLM: Unsuccessful exit at T=', TIN,' (IERR=',IERR,')'
+    ENDIF
+
+  END SUBROUTINE INTEGRATE_TLM
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE RungeKuttaTLM(  N, NTLM, Y, Y_tlm, T, Tend,RelTol,AbsTol,    &
+                             RelTol_tlm,AbsTol_tlm,RCNTRL,ICNTRL,RSTATUS,ISTATUS,IERR )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!  This implementation is based on the book and the code Radau5:
+!
+!         E. HAIRER AND G. WANNER
+!         "SOLVING ORDINARY DIFFERENTIAL EQUATIONS II. 
+!              STIFF AND DIFFERENTIAL-ALGEBRAIC PROBLEMS."
+!         SPRINGER SERIES IN COMPUTATIONAL MATHEMATICS 14,
+!         SPRINGER-VERLAG (1991)
+!
+!         UNIVERSITE DE GENEVE, DEPT. DE MATHEMATIQUES
+!         CH-1211 GENEVE 24, SWITZERLAND
+!         E-MAIL:  HAIRER@DIVSUN.UNIGE.CH,  WANNER@DIVSUN.UNIGE.CH
+!
+!   Methods:
+!          * Radau-2A   quadrature (order 5)                              
+!          * Radau-1A   quadrature (order 5)                              
+!          * Lobatto-3C quadrature (order 4)                              
+!          * Gauss      quadrature (order 6)                              
+!                                                                         
+!   (C)  Adrian Sandu, August 2005                                       
+!   Virginia Polytechnic Institute and State University                  
+!   Contact: sandu@cs.vt.edu                                             
+!   Revised by Philipp Miehe and Adrian Sandu, May 2006                  
+!   This implementation is part of KPP - the Kinetic PreProcessor        
+!
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>   INPUT ARGUMENTS:
+!       ----------------
+!
+!    Note: For input parameters equal to zero the default values of the
+!          corresponding variables are used.
+!
+!     N           Dimension of the system
+!     T           Initial time value
+!
+!     Tend        Final T value (Tend-T may be positive or negative)
+!
+!     Y(N)        Initial values for Y
+!
+!     RelTol,AbsTol   Relative and absolute error tolerances. 
+!          for ICNTRL(2) = 0: AbsTol, RelTol are N-dimensional vectors
+!                        = 1: AbsTol, RelTol are scalars
+!
+!~~~>  Integer input parameters:
+!  
+!    ICNTRL(1) = not used
+!
+!    ICNTRL(2) = 0: AbsTol, RelTol are NVAR-dimensional vectors
+!              = 1: AbsTol, RelTol are scalars
+!
+!    ICNTRL(3) = RK method selection       
+!              = 1:  Radau-2A    (the default)
+!              = 2:  Lobatto-3C
+!              = 3:  Gauss
+!	       = 4:  Radau-1A
+!
+!    ICNTRL(4)  -> maximum number of integration steps
+!        For ICNTRL(4)=0 the default value of 100000 is used
+!
+!    ICNTRL(5)  -> maximum number of Newton iterations
+!        For ICNTRL(5)=0 the default value of 8 is used
+!
+!    ICNTRL(6)  -> starting values of Newton iterations:
+!        ICNTRL(6)=0 : starting values are obtained from 
+!                      the extrapolated collocation solution
+!                      (the default)
+!        ICNTRL(6)=1 : starting values are zero
+!
+!    ICNTRL(7)  -> method to solve TLM equations:
+!        ICNTRL(7)=0 : modified Newton re-using LU (the default)
+!        ICNTRL(7)=1 : direct solution (additional one *big* LU factorization)
+!
+!    ICNTRL(9) -> switch for TLM Newton iteration error estimation strategy
+!		ICNTRL(9) = 0: base number of iterations as forward solution
+!		ICNTRL(9) = 1: use RTOL_tlm and ATOL_tlm to calculate
+!				error estimation for TLM at Newton stages
+!
+!    ICNTRL(10) -> switch for error estimation strategy
+!		ICNTRL(10) = 0: one additional stage: at c=0, 
+!				see Hairer (default)
+!		ICNTRL(10) = 1: two additional stages: one at c=0 
+!				and one SDIRK at c=1, stiffly accurate
+!
+!    ICNTRL(11) -> switch for step size strategy
+!              ICNTRL(11)=1:  mod. predictive controller (Gustafsson, default)
+!              ICNTRL(11)=2:  classical step size control
+!              the choice 1 seems to produce safer results;
+!              for simple problems, the choice 2 produces
+!              often slightly faster runs
+!
+!    ICNTRL(12) -> switch for TLM truncation error control
+!		ICNTRL(12) = 0: TLM error is not used
+!		ICNTRL(12) = 1: TLM error is computed and used
+!
+!
+!~~~>  Real input parameters:
+!
+!    RCNTRL(1)  -> Hmin, lower bound for the integration step size
+!                  (highly recommended to keep Hmin = ZERO, the default)
+!
+!    RCNTRL(2)  -> Hmax, upper bound for the integration step size
+!
+!    RCNTRL(3)  -> Hstart, the starting step size
+!
+!    RCNTRL(4)  -> FacMin, lower bound on step decrease factor (default=0.2)
+!
+!    RCNTRL(5)  -> FacMax, upper bound on step increase factor (default=6)
+!
+!    RCNTRL(6)  -> FacRej, step decrease factor after multiple rejections
+!                 (default=0.1)
+!
+!    RCNTRL(7)  -> FacSafe, by which the new step is slightly smaller
+!                  than the predicted value  (default=0.9)
+!
+!    RCNTRL(8)  -> ThetaMin. If Newton convergence rate smaller
+!                  than ThetaMin the Jacobian is not recomputed;
+!                  (default=0.001)
+!
+!    RCNTRL(9)  -> NewtonTol, stopping criterion for Newton's method
+!                  (default=0.03)
+!
+!    RCNTRL(10) -> Qmin
+!
+!    RCNTRL(11) -> Qmax. If Qmin < Hnew/Hold < Qmax, then the
+!                  step size is kept constant and the LU factorization
+!                  reused (default Qmin=1, Qmax=1.2)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!
+!    OUTPUT ARGUMENTS:
+!    -----------------
+!
+!    T           -> T value for which the solution has been computed
+!                     (after successful return T=Tend).
+!
+!    Y(N)        -> Numerical solution at T
+!
+!    IERR        -> Reports on successfulness upon return:
+!                    = 1 for success
+!                    < 0 for error (value equals error code)
+!
+!    ISTATUS(1)  -> No. of function calls
+!    ISTATUS(2)  -> No. of jacobian calls
+!    ISTATUS(3)  -> No. of steps
+!    ISTATUS(4)  -> No. of accepted steps
+!    ISTATUS(5)  -> No. of rejected steps (except at very beginning)
+!    ISTATUS(6)  -> No. of LU decompositions
+!    ISTATUS(7)  -> No. of forward/backward substitutions
+!    ISTATUS(8)  -> No. of singular matrix decompositions
+!
+!    RSTATUS(1)  -> Texit, the time corresponding to the
+!                     computed Y upon return
+!    RSTATUS(2)  -> Hexit, last accepted step before exit
+!    RSTATUS(3)  -> Hnew, last predicted step (not yet taken)
+!                   For multiple restarts, use Hnew as Hstart 
+!                     in the subsequent run
+!
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      IMPLICIT NONE
+      
+      INTEGER       :: N, NTLM
+      KPP_REAL :: Y(N),Y_tlm(N,NTLM)
+      KPP_REAL :: AbsTol(N),RelTol(N),RCNTRL(20),RSTATUS(20)
+      KPP_REAL :: AbsTol_tlm(N,NTLM),RelTol_tlm(N,NTLM)
+      INTEGER :: ICNTRL(20), ISTATUS(20)
+      LOGICAL :: StartNewton, Gustafsson, SdirkError, TLMNewtonEst, &
+                       TLMtruncErr, TLMDirect
+      INTEGER :: IERR, ITOL
+      KPP_REAL :: T,Tend
+
+      !~~~> Control arguments
+      INTEGER :: Max_no_steps, NewtonMaxit, rkMethod
+      KPP_REAL :: Hmin,Hmax,Hstart,Qmin,Qmax
+      KPP_REAL :: Roundoff, ThetaMin, NewtonTol
+      KPP_REAL :: FacSafe,FacMin,FacMax,FacRej
+      ! Runge-Kutta method parameters
+      INTEGER, PARAMETER :: R2A=1, R1A=2, L3C=3, GAU=4, L3A=5
+      KPP_REAL :: rkT(3,3), rkTinv(3,3), rkTinvAinv(3,3), rkAinvT(3,3), &
+                       rkA(3,3), rkB(3),  rkC(3), rkD(0:3), rkE(0:3), 	&
+	   	       rkBgam(0:4), rkBhat(0:4), rkTheta(0:3),          &
+                       rkGamma,  rkAlpha, rkBeta, rkELO
+      !~~~> Local variables
+      INTEGER :: i
+      KPP_REAL, PARAMETER :: ZERO = 0.0d0, ONE = 1.0d0
+    
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!        SETTING THE PARAMETERS
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IERR = 0
+      ISTATUS(1:20) = 0
+      RSTATUS(1:20) = ZERO
+       
+!~~~> ICNTRL(1) - autonomous system - not used       
+!~~~> ITOL: 1 for vector and 0 for scalar AbsTol/RelTol
+      IF (ICNTRL(2) == 0) THEN
+         ITOL = 1
+      ELSE
+         ITOL = 0
+      END IF
+!~~~> Error control selection  
+      IF (ICNTRL(10) == 0) THEN 
+         SdirkError = .FALSE.
+      ELSE
+         SdirkError = .TRUE.
+      END IF      
+!~~~> Method selection  
+      SELECT CASE (ICNTRL(3))     
+      CASE (0,1)
+         CALL Radau2A_Coefficients
+      CASE (2)
+         CALL Lobatto3C_Coefficients
+      CASE (3)
+         CALL Gauss_Coefficients
+      CASE (4)
+         CALL Radau1A_Coefficients
+      CASE DEFAULT
+         WRITE(6,*) 'ICNTRL(3)=',ICNTRL(3)
+         CALL RK_ErrorMsg(-13,T,ZERO,IERR)
+      END SELECT
+!~~~> Max_no_steps: the maximal number of time steps
+      IF (ICNTRL(4) == 0) THEN
+         Max_no_steps = 200000
+      ELSE
+         Max_no_steps=ICNTRL(4)
+         IF (Max_no_steps <= 0) THEN
+            WRITE(6,*) 'ICNTRL(4)=',ICNTRL(4)
+            CALL RK_ErrorMsg(-1,T,ZERO,IERR)
+         END IF
+      END IF
+!~~~> NewtonMaxit    maximal number of Newton iterations
+      IF (ICNTRL(5) == 0) THEN
+         NewtonMaxit = 8
+      ELSE
+         NewtonMaxit=ICNTRL(5)
+         IF (NewtonMaxit <= 0) THEN
+            WRITE(6,*) 'ICNTRL(5)=',ICNTRL(5)
+            CALL RK_ErrorMsg(-2,T,ZERO,IERR)
+          END IF
+      END IF
+!~~~> StartNewton:  Use extrapolation for starting values of Newton iterations
+      IF (ICNTRL(6) == 0) THEN
+         StartNewton = .TRUE.
+      ELSE
+         StartNewton = .FALSE.
+      END IF      
+!~~~> Solve TLM equations directly or by Newton iterations 
+      IF (ICNTRL(7) == 0) THEN
+         TLMDirect = .FALSE.
+      ELSE
+         TLMDirect = .TRUE.
+      END IF      
+!~~~> Newton iteration error control selection  
+      IF (ICNTRL(9) == 0) THEN 
+         TLMNewtonEst = .FALSE.
+      ELSE
+         TLMNewtonEst = .TRUE.
+      END IF      
+!~~~> Gustafsson: step size controller
+      IF(ICNTRL(11) == 0)THEN
+         Gustafsson = .TRUE.
+      ELSE
+         Gustafsson = .FALSE.
+      END IF
+!~~~> TLM truncation error control selection  
+      IF (ICNTRL(12) == 0) THEN 
+         TLMtruncErr = .FALSE.
+      ELSE
+         TLMtruncErr = .TRUE.
+      END IF      
+
+!~~~> Roundoff: smallest number s.t. 1.0 + Roundoff > 1.0
+      Roundoff=WLAMCH('E');
+
+!~~~> Hmin = minimal step size
+      IF (RCNTRL(1) == ZERO) THEN
+         Hmin = ZERO
+      ELSE
+         Hmin = MIN(ABS(RCNTRL(1)),ABS(Tend-T))
+      END IF
+!~~~> Hmax = maximal step size
+      IF (RCNTRL(2) == ZERO) THEN
+         Hmax = ABS(Tend-T)
+      ELSE
+         Hmax = MIN(ABS(RCNTRL(2)),ABS(Tend-T))
+      END IF
+!~~~> Hstart = starting step size
+      IF (RCNTRL(3) == ZERO) THEN
+         Hstart = ZERO
+      ELSE
+         Hstart = MIN(ABS(RCNTRL(3)),ABS(Tend-T))
+      END IF
+!~~~> FacMin: lower bound on step decrease factor
+      IF(RCNTRL(4) == ZERO)THEN
+         FacMin = 0.2d0
+      ELSE
+         FacMin = RCNTRL(4)
+      END IF
+!~~~> FacMax: upper bound on step increase factor
+      IF(RCNTRL(5) == ZERO)THEN
+         FacMax = 8.D0
+      ELSE
+         FacMax = RCNTRL(5)
+      END IF
+!~~~> FacRej: step decrease factor after 2 consecutive rejections
+      IF(RCNTRL(6) == ZERO)THEN
+         FacRej = 0.1d0
+      ELSE
+         FacRej = RCNTRL(6)
+      END IF
+!~~~> FacSafe:  by which the new step is slightly smaller
+!               than the predicted value
+      IF (RCNTRL(7) == ZERO) THEN
+         FacSafe=0.9d0
+      ELSE
+         FacSafe=RCNTRL(7)
+      END IF
+      IF ( (FacMax < ONE) .OR. (FacMin > ONE) .OR. &
+           (FacSafe <= 1.0d-3) .OR. (FacSafe >= ONE) ) THEN
+            WRITE(6,*)'RCNTRL(4:7)=',RCNTRL(4:7)
+            CALL RK_ErrorMsg(-4,T,ZERO,IERR)
+      END IF
+
+!~~~> ThetaMin:  decides whether the Jacobian should be recomputed
+      IF (RCNTRL(8) == ZERO) THEN
+         ThetaMin = 1.0d-3
+      ELSE
+         ThetaMin=RCNTRL(8)
+         IF (ThetaMin <= 0.0d0 .OR. ThetaMin >= 1.0d0) THEN
+            WRITE(6,*) 'RCNTRL(8)=', RCNTRL(8)
+            CALL RK_ErrorMsg(-5,T,ZERO,IERR)
+         END IF
+      END IF
+!~~~> NewtonTol:  stopping crierion for Newton's method
+      IF (RCNTRL(9) == ZERO) THEN
+         NewtonTol = 3.0d-2
+      ELSE
+         NewtonTol = RCNTRL(9)
+         IF (NewtonTol <= Roundoff) THEN
+            WRITE(6,*) 'RCNTRL(9)=',RCNTRL(9)
+            CALL RK_ErrorMsg(-6,T,ZERO,IERR)
+         END IF
+      END IF
+!~~~> Qmin AND Qmax: IF Qmin < Hnew/Hold < Qmax then step size = const.
+      IF (RCNTRL(10) == ZERO) THEN
+         Qmin=1.D0
+      ELSE
+         Qmin=RCNTRL(10)
+      END IF
+      IF (RCNTRL(11) == ZERO) THEN
+         Qmax=1.2D0
+      ELSE
+         Qmax=RCNTRL(11)
+      END IF
+      IF (Qmin > ONE .OR. Qmax < ONE) THEN
+         WRITE(6,*) 'RCNTRL(10:11)=',Qmin,Qmax
+         CALL RK_ErrorMsg(-7,T,ZERO,IERR)
+      END IF
+!~~~> Check if tolerances are reasonable
+      IF (ITOL == 0) THEN
+          IF (AbsTol(1) <= ZERO.OR.RelTol(1) <= 10.d0*Roundoff) THEN
+              WRITE (6,*) 'AbsTol/RelTol=',AbsTol,RelTol 
+              CALL RK_ErrorMsg(-8,T,ZERO,IERR)
+          END IF
+      ELSE
+          DO i=1,N
+          IF (AbsTol(i) <= ZERO.OR.RelTol(i) <= 10.d0*Roundoff) THEN
+              WRITE (6,*) 'AbsTol/RelTol(',i,')=',AbsTol(i),RelTol(i)
+              CALL RK_ErrorMsg(-8,T,ZERO,IERR)
+          END IF
+          END DO
+      END IF
+
+!~~~> Parameters are wrong
+      IF (IERR < 0) RETURN
+
+!~~~> Call the core method
+      CALL RK_IntegratorTLM( N,NTLM,T,Tend,Y,Y_tlm,IERR )
+
+   CONTAINS ! Internal procedures to RungeKutta
+
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE RK_IntegratorTLM( N,NTLM,T,Tend,Y,Y_tlm,IERR )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      IMPLICIT NONE
+!~~~> Arguments
+      INTEGER,  INTENT(IN)         :: N, NTLM
+      KPP_REAL, INTENT(IN)    :: Tend
+      KPP_REAL, INTENT(INOUT) :: T, Y(N), Y_tlm(NVAR,NTLM)
+      INTEGER,  INTENT(OUT)        :: IERR
+
+!~~~> Local variables
+#ifdef FULL_ALGEBRA
+      KPP_REAL, DIMENSION(NVAR,NVAR)    ::   &
+                             FJAC, E1, Jac1, Jac2, Jac3
+      COMPLEX(kind=dp), DIMENSION(NVAR,NVAR) :: E2   
+      KPP_REAL, DIMENSION(3*NVAR,3*NVAR)  :: Jbig, Ebig
+      KPP_REAL, DIMENSION(3*NVAR)         :: Zbig
+      INTEGER,       DIMENSION(3*NVAR)         :: IPbig
+#else
+      KPP_REAL, DIMENSION(LU_NONZERO)   ::   &
+                             FJAC, E1, Jac1, Jac2, Jac3
+      COMPLEX(kind=dp), DIMENSION(LU_NONZERO)  :: E2 
+!  Next 3 commented lines for sparse big linear algebra:
+!      KPP_REAL, DIMENSION(3,3,LU_NONZERO) :: Jbig
+!      KPP_REAL, DIMENSION(3,NVAR)         :: Zbig
+!      INTEGER, DIMENSION(3,NVAR)               :: IPbig
+      KPP_REAL, DIMENSION(3*NVAR,3*NVAR)  :: Jbig, Ebig
+      KPP_REAL, DIMENSION(3*NVAR)         :: Zbig
+      INTEGER,       DIMENSION(3*NVAR)         :: IPbig
+#endif                
+      KPP_REAL, DIMENSION(NVAR) :: Z1,Z2,Z3,Z4,SCAL,DZ1,DZ2,DZ3,DZ4, &
+                 G,TMP,SCAL_tlm
+      KPP_REAL, DIMENSION(NVAR,NTLM) :: Z1_tlm,Z2_tlm,Z3_tlm
+      KPP_REAL  :: CONT(NVAR,3), Tdirection,  H, Hacc, Hnew, Hold, Fac, &
+                 FacGus, Theta, Err, ErrOld, NewtonRate, NewtonIncrement,    &
+                 Hratio, Qnewton, NewtonPredictedErr,NewtonIncrementOld,    &
+		 ThetaTLM, ThetaSD
+      INTEGER :: i,j,IP1(NVAR),IP2(NVAR),NewtonIter, ISING, Nconsecutive, itlm
+      INTEGER :: saveNiter, NewtonIterTLM, info
+      LOGICAL :: Reject, FirstStep, SkipJac, NewtonDone, SkipLU
+      
+            
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Initial setting
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      Tdirection = SIGN(ONE,Tend-T)
+      H = MIN( MAX(ABS(Hmin),ABS(Hstart)) , Hmax )
+      IF (ABS(H) <= 10.d0*Roundoff) H = 1.0d-6
+      H = SIGN(H,Tdirection)
+      Hold      = H
+      Reject    = .FALSE.
+      FirstStep = .TRUE.
+      SkipJac   = .FALSE.
+      SkipLU    = .FALSE.
+      IF ((T+H*1.0001D0-Tend)*Tdirection >= ZERO) THEN
+         H = Tend-T
+      END IF
+      Nconsecutive = 0
+      CALL RK_ErrorScale(N,ITOL,AbsTol,RelTol,Y,SCAL)
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Time loop begins
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Tloop: DO WHILE ( (Tend-T)*Tdirection - Roundoff > ZERO )
+
+      IF ( .NOT.SkipLU ) THEN ! This time around skip the Jac update and LU
+        !~~~> Compute the Jacobian matrix
+        IF ( .NOT.SkipJac ) THEN
+          CALL JAC_CHEM(T,Y,FJAC)
+          ISTATUS(Njac) = ISTATUS(Njac) + 1
+        END IF
+        !~~~> Compute the matrices E1 and E2 and their decompositions
+        CALL RK_Decomp(N,H,FJAC,E1,IP1,E2,IP2,ISING)
+        IF (ISING /= 0) THEN
+          ISTATUS(Nsng) = ISTATUS(Nsng) + 1; Nconsecutive = Nconsecutive + 1
+          IF (Nconsecutive >= 5) THEN
+            CALL RK_ErrorMsg(-12,T,H,IERR); RETURN
+          END IF
+          H=H*0.5d0; Reject=.TRUE.; SkipJac = .TRUE.;  SkipLU = .FALSE.
+          CYCLE Tloop
+        ELSE
+          Nconsecutive = 0    
+        END IF   
+      END IF ! SkipLU
+   
+      ISTATUS(Nstp) = ISTATUS(Nstp) + 1
+      IF (ISTATUS(Nstp) > Max_no_steps) THEN
+        PRINT*,'Max number of time steps is ',Max_no_steps
+        CALL RK_ErrorMsg(-9,T,H,IERR); RETURN
+      END IF
+      IF (0.1D0*ABS(H) <= ABS(T)*Roundoff)  THEN
+        CALL RK_ErrorMsg(-10,T,H,IERR); RETURN
+      END IF
+      
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Loop for the simplified Newton iterations
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+            
+      !~~~>  Starting values for Newton iteration
+      IF ( FirstStep .OR. (.NOT.StartNewton) ) THEN
+         CALL Set2zero(N,Z1)
+         CALL Set2zero(N,Z2)
+         CALL Set2zero(N,Z3)
+      ELSE
+         ! Evaluate quadratic polynomial
+         CALL RK_Interpolate('eval',N,H,Hold,Z1,Z2,Z3,CONT)
+      END IF
+      
+      !~~~>  Initializations for Newton iteration
+      NewtonDone = .FALSE.
+      Fac = 0.5d0 ! Step reduction if too many iterations
+      
+NewtonLoop:DO  NewtonIter = 1, NewtonMaxit  
+ 
+            !~~~> Prepare the right-hand side
+            CALL RK_PrepareRHS(N,T,H,Y,Z1,Z2,Z3,DZ1,DZ2,DZ3)
+            
+            !~~~> Solve the linear systems
+            CALL RK_Solve( N,H,E1,IP1,E2,IP2,DZ1,DZ2,DZ3,ISING )
+            
+            NewtonIncrement = SQRT( ( RK_ErrorNorm(N,SCAL,DZ1)**2 + &
+                                RK_ErrorNorm(N,SCAL,DZ2)**2 +       &
+                                RK_ErrorNorm(N,SCAL,DZ3)**2 )/3.0d0 )
+            
+            IF ( NewtonIter == 1 ) THEN
+                Theta      = ABS(ThetaMin)
+                NewtonRate = 2.0d0 
+            ELSE
+                Theta = NewtonIncrement/NewtonIncrementOld
+                IF (Theta < 0.99d0) THEN
+                    NewtonRate = Theta/(ONE-Theta)
+                ELSE ! Non-convergence of Newton: Theta too large
+                    EXIT NewtonLoop
+                END IF
+                IF ( NewtonIter < NewtonMaxit ) THEN 
+                  ! Predict error at the end of Newton process 
+                  NewtonPredictedErr = NewtonIncrement &
+                               *Theta**(NewtonMaxit-NewtonIter)/(ONE-Theta)
+                  IF (NewtonPredictedErr >= NewtonTol) THEN
+                    ! Non-convergence of Newton: predicted error too large
+                    Qnewton = MIN(10.0d0,NewtonPredictedErr/NewtonTol)
+                    Fac=0.8d0*Qnewton**(-ONE/(1+NewtonMaxit-NewtonIter))
+                    EXIT NewtonLoop
+                  END IF
+                END IF
+            END IF
+
+            NewtonIncrementOld = MAX(NewtonIncrement,Roundoff) 
+            ! Update solution
+            CALL WAXPY(N,-ONE,DZ1,1,Z1,1) ! Z1 <- Z1 - DZ1
+            CALL WAXPY(N,-ONE,DZ2,1,Z2,1) ! Z2 <- Z2 - DZ2
+            CALL WAXPY(N,-ONE,DZ3,1,Z3,1) ! Z3 <- Z3 - DZ3
+            
+            ! Check error in Newton iterations
+            NewtonDone = (NewtonRate*NewtonIncrement <= NewtonTol)
+            IF (NewtonDone) THEN
+	      ! Tune error in TLM variables by defining the minimal number of Newton iterations.
+	      saveNiter = NewtonIter+1
+	      EXIT NewtonLoop
+	    END IF
+   	    IF (NewtonIter == NewtonMaxit) THEN
+		PRINT*, 'Slow or no convergence in Newton Iteration: Max no. of', &
+		 	'Newton iterations reached'
+	    END IF
+            
+      END DO NewtonLoop
+            
+      IF (.NOT.NewtonDone) THEN
+           !CALL RK_ErrorMsg(-12,T,H,IERR);
+           H = Fac*H; Reject=.TRUE.; SkipJac = .TRUE.;  SkipLU = .FALSE.
+           CYCLE Tloop
+      END IF
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> SDIRK Stage
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+       IF (SdirkError) THEN
+
+!~~~>  Starting values for Newton iterations
+       Z4(1:N) = Z3(1:N)
+       
+!~~~>   Prepare the loop-independent part of the right-hand side
+       CALL FUN_CHEM(T,Y,DZ4)
+       ISTATUS(Nfun) = ISTATUS(Nfun) + 1
+       
+!       G = H*rkBgam(0)*DZ4 + rkTheta(1)*Z1 + rkTheta(2)*Z2 + rkTheta(3)*Z3
+       CALL Set2Zero(N, G)
+       CALL WAXPY(N,rkBgam(0)*H, DZ4,1,G,1) 
+       CALL WAXPY(N,rkTheta(1),Z1,1,G,1)
+       CALL WAXPY(N,rkTheta(2),Z2,1,G,1)
+       CALL WAXPY(N,rkTheta(3),Z3,1,G,1)
+
+       !~~~>  Initializations for Newton iteration
+       NewtonDone = .FALSE.
+       Fac = 0.5d0 ! Step reduction factor if too many iterations
+            
+SDNewtonLoop:DO NewtonIter = 1, NewtonMaxit
+
+!~~~>   Prepare the loop-dependent part of the right-hand side
+	    CALL WADD(N,Y,Z4,TMP)         ! TMP <- Y + Z4
+	    CALL FUN_CHEM(T+H,TMP,DZ4) 	  ! DZ4 <- Fun(Y+Z4)         
+            ISTATUS(Nfun) = ISTATUS(Nfun) + 1
+!            DZ4(1:N) = (G(1:N)-Z4(1:N))*(rkGamma/H) + DZ4(1:N)
+	    CALL WAXPY (N, -ONE*rkGamma/H, Z4, 1, DZ4, 1)
+            CALL WAXPY (N, rkGamma/H, G,1, DZ4,1)
+
+!~~~>   Solve the linear system
+#ifdef FULL_ALGEBRA  
+            CALL DGETRS( 'N', N, 1, E1, N, IP1, DZ4, N, ISING )
+#else
+            CALL KppSolve(E1, DZ4)
+#endif
+            
+!~~~>   Check convergence of Newton iterations
+            NewtonIncrement = RK_ErrorNorm(N,SCAL,DZ4)
+            IF ( NewtonIter == 1 ) THEN
+                ThetaSD      = ABS(ThetaMin)
+                NewtonRate = 2.0d0 
+            ELSE
+                ThetaSD = NewtonIncrement/NewtonIncrementOld
+                IF (ThetaSD < 0.99d0) THEN
+                    NewtonRate = ThetaSD/(ONE-ThetaSD)
+                    ! Predict error at the end of Newton process 
+                    NewtonPredictedErr = NewtonIncrement &
+                               *ThetaSD**(NewtonMaxit-NewtonIter)/(ONE-ThetaSD)
+                    IF (NewtonPredictedErr >= NewtonTol) THEN
+                      ! Non-convergence of Newton: predicted error too large
+                      Qnewton = MIN(10.0d0,NewtonPredictedErr/NewtonTol)
+                      Fac = 0.8d0*Qnewton**(-ONE/(1+NewtonMaxit-NewtonIter))
+                      EXIT SDNewtonLoop
+                    END IF
+                ELSE ! Non-convergence of Newton: Theta too large
+                    print*,'Theta too large: ',ThetaSD
+                    EXIT SDNewtonLoop
+                END IF
+            END IF
+            NewtonIncrementOld = NewtonIncrement
+            ! Update solution: Z4 <-- Z4 + DZ4
+            CALL WAXPY(N,ONE,DZ4,1,Z4,1) 
+            
+            ! Check error in Newton iterations
+            NewtonDone = (NewtonRate*NewtonIncrement <= NewtonTol)
+            IF (NewtonDone) EXIT SDNewtonLoop
+            
+            END DO SDNewtonLoop
+            
+            IF (.NOT.NewtonDone) THEN
+                H = Fac*H; Reject=.TRUE.; SkipJac = .TRUE.;  SkipLU = .FALSE.
+                CYCLE Tloop
+            END IF
+
+!~~~>  End of implified SDIRK Newton iterations
+      END IF
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> Error estimation, forward solution
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IF (SdirkError) THEN
+!         DZ4(1:N) =  rkD(1)*Z1 + rkD(2)*Z2 + rkD(3)*Z3 - Z4    
+	 CALL Set2Zero(N, DZ4)
+	 IF (rkD(1) /= ZERO) CALL WAXPY(N, rkD(1), Z1, 1, DZ4, 1)
+	 IF (rkD(2) /= ZERO) CALL WAXPY(N, rkD(2), Z2, 1, DZ4, 1)
+	 IF (rkD(3) /= ZERO) CALL WAXPY(N, rkD(3), Z3, 1, DZ4, 1)
+	 CALL WAXPY(N, -ONE, Z4, 1, DZ4, 1)
+         Err = RK_ErrorNorm(N,SCAL,DZ4)    
+      ELSE
+        CALL  RK_ErrorEstimate(N,H,Y,T, &
+               E1,IP1,Z1,Z2,Z3,SCAL,Err,FirstStep,Reject)
+      END IF
+     
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> If error small enough, compute TLM solution
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IF (Err < ONE) THEN
+
+      !~~~>  Jacobian values
+      CALL WADD(N,Y,Z1,TMP)              ! TMP  <- Y + Z1
+      CALL JAC_CHEM(T+rkC(1)*H,TMP,Jac1) ! Jac1 <- Jac(Y+Z1)  
+      CALL WADD(N,Y,Z2,TMP)              ! TMP  <- Y + Z2
+      CALL JAC_CHEM(T+rkC(2)*H,TMP,Jac2) ! Jac2 <- Jac(Y+Z2)  
+      CALL WADD(N,Y,Z3,TMP)              ! TMP  <- Y + Z3
+      CALL JAC_CHEM(T+rkC(3)*H,TMP,Jac3) ! Jac3 <- Jac(Y+Z3)  
+       
+TLMDIR: IF (TLMDirect) THEN 
+       
+#ifdef FULL_ALGEBRA
+      !~~~>  Construct the full Jacobian
+      DO j=1,N
+        DO i=1,N
+          Jbig(i,j)         = -H*rkA(1,1)*Jac1(i,j)
+          Jbig(N+i,j)       = -H*rkA(2,1)*Jac1(i,j)
+          Jbig(2*N+i,j)     = -H*rkA(3,1)*Jac1(i,j)
+          Jbig(i,N+j)       = -H*rkA(1,2)*Jac2(i,j)
+          Jbig(N+i,N+j)     = -H*rkA(2,2)*Jac2(i,j)
+          Jbig(2*N+i,N+j)   = -H*rkA(3,2)*Jac2(i,j)
+          Jbig(i,2*N+j)     = -H*rkA(1,3)*Jac3(i,j)
+          Jbig(N+i,2*N+j)   = -H*rkA(2,3)*Jac3(i,j)
+          Jbig(2*N+i,2*N+j) = -H*rkA(3,3)*Jac3(i,j)
+        END DO  
+      END DO
+      Ebig = -Jbig
+      DO i=1,3*NVAR
+          Jbig(i,i) = ONE + Jbig(i,i)
+      END DO
+      !~~~>  Solve the big system
+      ! CALL DGETRF(3*NVAR,3*NVAR,Jbig,3*NVAR,IPbig,j) 
+      CALL WGEFA(3*N,Jbig,IPbig,info) 
+      IF (info /= 0) THEN
+        PRINT*,'Big big guy is singular'; STOP
+      END IF  
+      DO itlm = 1, NTLM      
+        DO j=1,NVAR
+            Zbig(j)        = Y_tlm(j,itlm)
+            Zbig(NVAR+j)   = Y_tlm(j,itlm)
+            Zbig(2*NVAR+j) = Y_tlm(j,itlm)
+        END DO
+        Zbig = MATMUL(Ebig,Zbig)
+        !CALL DGETRS ('N',3*NVAR,1,Jbig,3*NVAR,IPbig,Zbig,3*NVAR,ISING) 
+        CALL WGESL('N',3*N,Jbig,IPbig,Zbig)
+        DO j=1,NVAR
+            Z1_tlm(j,itlm) = Zbig(j)
+            Z2_tlm(j,itlm) = Zbig(NVAR+j)
+            Z3_tlm(j,itlm) = Zbig(2*NVAR+j)
+        END DO
+      END DO  
+#else       
+!  Commented code for sparse big linear algebra:
+!      !~~~>  Construct the big Jacobian
+!      DO j=1,LU_NONZERO
+!        DO i=1,3
+!          Jbig(i,1,j) = -H*rkA(i,1)*Jac1(j)
+!          Jbig(i,2,j) = -H*rkA(i,2)*Jac2(j)
+!          Jbig(i,3,j) = -H*rkA(i,3)*Jac3(j)
+!        END DO
+!      END DO
+!      DO j=1,NVAR
+!        DO i=1,3
+!          Jbig(i,i,LU_DIAG(j)) = ONE + Jbig(i,i,LU_DIAG(j))
+!        END DO
+!      END DO
+!      !~~~>  Solve the big system
+!      CALL KppDecompBig( Jbig, IPbig, j )
+!   Use full big linear algebra:
+      Jbig(1:3*N,1:3*N) = 0.0d0
+      DO i=1,LU_NONZERO
+	  Jbig(LU_irow(i),LU_icol(i))         = -H*rkA(1,1)*Jac1(i)
+	  Jbig(LU_irow(i),N+LU_icol(i))       = -H*rkA(1,2)*Jac2(i)
+	  Jbig(LU_irow(i),2*N+LU_icol(i))     = -H*rkA(1,3)*Jac3(i)
+	  Jbig(N+LU_irow(i),LU_icol(i))       = -H*rkA(2,1)*Jac1(i)
+	  Jbig(N+LU_irow(i),N+LU_icol(i))     = -H*rkA(2,2)*Jac2(i)
+	  Jbig(N+LU_irow(i),2*N+LU_icol(i))   = -H*rkA(2,3)*Jac3(i)
+	  Jbig(2*N+LU_irow(i),LU_icol(i))     = -H*rkA(3,1)*Jac1(i)
+	  Jbig(2*N+LU_irow(i),N+LU_icol(i))   = -H*rkA(3,2)*Jac2(i)
+	  Jbig(2*N+LU_irow(i),2*N+LU_icol(i)) = -H*rkA(3,3)*Jac3(i)
+      END DO
+      Ebig = -Jbig
+      DO i=1, 3*N
+	 Jbig(i,i) = ONE + Jbig(i,i)
+      END DO
+      ! CALL DGETRF(3*N,3*N,Jbig,3*N,IPbig,info) 
+      CALL WGEFA(3*N,Jbig,IPbig,info) 
+      IF (info /= 0) THEN
+        PRINT*,'Big guy is singular'; STOP
+      END IF  
+
+      DO itlm = 1, NTLM      
+!  Commented code for sparse big linear algebra:
+!       ! Compute RHS
+!        CALL RK_PrepareRHS_TLMdirect(N,H,Jac1,Jac2,Jac3,Y_tlm(1,itlm),Zbig)
+!       ! Solve the system
+!        CALL KppSolveBig( Jbig, IPbig, Zbig )
+!        DO j=1,NVAR
+!            Z1_tlm(j,itlm) = Zbig(1,j)
+!            Z2_tlm(j,itlm) = Zbig(2,j)
+!            Z3_tlm(j,itlm) = Zbig(3,j)
+!        END DO
+        ! Compute RHS
+        CALL RK_PrepareRHS_TLMdirect(N,H,Jac1,Jac2,Jac3,Y_tlm(1,itlm),Zbig)
+        ! Solve the system
+	! CALL DGETRS('N',3*N,1,Jbig,3*N,IPbig,Zbig,3*N,ISING) 
+        CALL WGESL('N',3*N,Jbig,IPbig,Zbig)
+        Z1_tlm(1:NVAR,itlm) = Zbig(1:NVAR)
+        Z2_tlm(1:NVAR,itlm) = Zbig(NVAR+1:2*NVAR)
+        Z3_tlm(1:NVAR,itlm) = Zbig(2*NVAR+1:3*NVAR)
+      END DO  
+#endif
+
+    ELSE TLMDIR
+    
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Loop for Newton iterations, TLM variables
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+         
+Tlm:DO itlm = 1, NTLM      
+            
+      !~~~>  Starting values for Newton iteration
+      CALL Set2zero(N,Z1_tlm(1,itlm))
+      CALL Set2zero(N,Z2_tlm(1,itlm))
+      CALL Set2zero(N,Z3_tlm(1,itlm))
+      
+      !~~~>  Initializations for Newton iteration
+      IF (TLMNewtonEst) THEN
+         NewtonDone = .FALSE.
+         Fac = 0.5d0 ! Step reduction if too many iterations
+
+         CALL RK_ErrorScale(N,ITOL,AbsTol_tlm(1,itlm),RelTol_tlm(1,itlm), &
+              Y_tlm(1,itlm),SCAL_tlm)
+      END IF
+      
+NewtonLoopTLM:DO  NewtonIterTLM = 1, NewtonMaxit  
+ 
+            !~~~> Prepare the right-hand side
+            CALL RK_PrepareRHS_TLM(N,H,Jac1,Jac2,Jac3,Y_tlm(1,itlm), &
+                      Z1_tlm(1,itlm),Z2_tlm(1,itlm),Z3_tlm(1,itlm),  &
+                      DZ1,DZ2,DZ3) 
+                                 
+            !~~~> Solve the linear systems
+            CALL RK_Solve( N,H,E1,IP1,E2,IP2,DZ1,DZ2,DZ3,ISING )
+            
+	    IF (TLMNewtonEst) THEN
+!~~~>   Check convergence of Newton iterations
+            NewtonIncrement = SQRT( ( RK_ErrorNorm(N,SCAL_tlm,DZ1)**2 + &
+                                RK_ErrorNorm(N,SCAL_tlm,DZ2)**2 +       &
+                                RK_ErrorNorm(N,SCAL_tlm,DZ3)**2 )/3.0d0 )
+            IF ( NewtonIterTLM == 1 ) THEN
+                ThetaTLM      = ABS(ThetaMin)
+                NewtonRate = 2.0d0 
+            ELSE
+                ThetaTLM = NewtonIncrement/NewtonIncrementOld
+                IF (ThetaTLM < 0.99d0) THEN
+                    NewtonRate = ThetaTLM/(ONE-ThetaTLM)
+                ELSE ! Non-convergence of Newton: ThetaTLM too large
+                    EXIT NewtonLoopTLM
+                END IF
+                IF ( NewtonIterTLM < NewtonMaxit ) THEN 
+                  ! Predict error at the end of Newton process 
+                  NewtonPredictedErr = NewtonIncrement &
+                               *ThetaTLM**(NewtonMaxit-NewtonIterTLM)/(ONE-ThetaTLM)
+                  IF (NewtonPredictedErr >= NewtonTol) THEN
+                    ! Non-convergence of Newton: predicted error too large
+                    Qnewton = MIN(10.0d0,NewtonPredictedErr/NewtonTol)
+                    Fac=0.8d0*Qnewton**(-ONE/(1+NewtonMaxit-NewtonIterTLM))
+                    EXIT NewtonLoopTLM
+                  END IF
+                END IF
+            END IF
+
+            NewtonIncrementOld = MAX(NewtonIncrement,Roundoff) 
+	    END IF !(TLMNewtonEst)
+            ! Update solution
+            CALL WAXPY(N,-ONE,DZ1,1,Z1_tlm(1,itlm),1) ! Z1 <- Z1 - DZ1
+            CALL WAXPY(N,-ONE,DZ2,1,Z2_tlm(1,itlm),1) ! Z2 <- Z2 - DZ2
+            CALL WAXPY(N,-ONE,DZ3,1,Z3_tlm(1,itlm),1) ! Z3 <- Z3 - DZ3
+            
+            ! Check error in Newton iterations
+            IF (TLMNewtonEst) THEN
+  	       NewtonDone = (NewtonRate*NewtonIncrement <= NewtonTol)
+	       IF (NewtonDone) EXIT NewtonLoopTLM
+	    ELSE
+  	       ! Minimum number of iterations same as FWD iterations
+               IF (NewtonIterTLM>=saveNiter) EXIT NewtonLoopTLM
+	    END IF
+            
+      END DO NewtonLoopTLM
+            
+      IF ((TLMNewtonEst) .AND. (.NOT.NewtonDone)) THEN
+           !CALL RK_ErrorMsg(-12,T,H,IERR);
+           H = Fac*H; Reject=.TRUE.; SkipJac = .TRUE.;  SkipLU = .FALSE.
+           CYCLE Tloop
+      END IF
+              
+  END DO Tlm    
+
+  END IF TLMDIR
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> Error estimation, TLM solution
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IF (TLMtruncErr) THEN
+        CALL RK_ErrorEstimate_tlm(N,NTLM,T,H,FJAC,Y, Y_tlm, &
+               E1,IP1,Z1_tlm,Z2_tlm,Z3_tlm,Err,FirstStep,Reject)
+      END IF
+
+  END IF ! (Err<ONE)
+            
+
+!~~~> Computation of new step size Hnew
+      Fac  = Err**(-ONE/rkELO)*   &
+             MIN(FacSafe,(ONE+2*NewtonMaxit)/(NewtonIter+2*NewtonMaxit))
+      Fac  = MIN(FacMax,MAX(FacMin,Fac))
+      Hnew = Fac*H
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> Accept/reject step 
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+accept:IF (Err < ONE) THEN !~~~> STEP IS ACCEPTED
+
+         FirstStep=.FALSE.
+         ISTATUS(Nacc) = ISTATUS(Nacc) + 1
+         IF (Gustafsson) THEN
+            !~~~> Predictive controller of Gustafsson
+            IF (ISTATUS(Nacc) > 1) THEN
+               FacGus=FacSafe*(H/Hacc)*(Err**2/ErrOld)**(-0.25d0)
+               FacGus=MIN(FacMax,MAX(FacMin,FacGus))
+               Fac=MIN(Fac,FacGus)
+               Hnew = Fac*H
+            END IF
+            Hacc=H
+            ErrOld=MAX(1.0d-2,Err)
+         END IF
+         Hold = H
+         T = T+H 
+         ! Update solution: Y <- Y + sum(d_i Z_i)
+         IF (rkD(1)/=ZERO) CALL WAXPY(N,rkD(1),Z1,1,Y,1)
+         IF (rkD(2)/=ZERO) CALL WAXPY(N,rkD(2),Z2,1,Y,1)
+         IF (rkD(3)/=ZERO) CALL WAXPY(N,rkD(3),Z3,1,Y,1)
+         ! Update TLM solution: Y <- Y + sum(d_i*Z_i_tlm)
+         DO itlm = 1,NTLM
+            IF (rkD(1)/=ZERO) CALL WAXPY(N,rkD(1),Z1_tlm(1,itlm),1,Y_tlm(1,itlm),1)
+            IF (rkD(2)/=ZERO) CALL WAXPY(N,rkD(2),Z2_tlm(1,itlm),1,Y_tlm(1,itlm),1)
+            IF (rkD(3)/=ZERO) CALL WAXPY(N,rkD(3),Z3_tlm(1,itlm),1,Y_tlm(1,itlm),1)
+         END DO   
+         ! Construct the solution quadratic interpolant Q(c_i) = Z_i, i=1:3
+         IF (StartNewton) CALL RK_Interpolate('make',N,H,Hold,Z1,Z2,Z3,CONT)
+         CALL RK_ErrorScale(N,ITOL,AbsTol,RelTol,Y,SCAL)
+         RSTATUS(Ntexit) = T
+         RSTATUS(Nhnew)  = Hnew
+         RSTATUS(Nhacc)  = H
+         Hnew = Tdirection*MIN( MAX(ABS(Hnew),Hmin) , Hmax )
+         IF (Reject) Hnew = Tdirection*MIN(ABS(Hnew),ABS(H))
+         Reject = .FALSE.
+         IF ((T+Hnew/Qmin-Tend)*Tdirection >=  ZERO) THEN
+            H = Tend-T
+         ELSE
+            Hratio=Hnew/H
+            ! Reuse the LU decomposition
+            SkipLU = (Theta<=ThetaMin) .AND. (Hratio>=Qmin) .AND. (Hratio<=Qmax)
+            ! For TLM: do not skip LU (decrease TLM error)
+  	    SkipLU = .FALSE.
+            IF (.NOT.SkipLU) H=Hnew
+         END IF
+         ! If convergence is fast enough, do not update Jacobian
+!         SkipJac = (Theta <= ThetaMin)
+         SkipJac  = .FALSE.	! For TLM: do not skip jac
+
+      ELSE accept !~~~> Step is rejected
+
+         IF (FirstStep .OR. Reject) THEN
+             H = FacRej*H
+         ELSE
+             H = Hnew
+         END IF
+         Reject   = .TRUE.
+         SkipJac  = .TRUE.
+         SkipLU   = .FALSE. 
+         IF (ISTATUS(Nacc) >= 1) ISTATUS(Nrej) = ISTATUS(Nrej) + 1
+
+      END IF accept
+      
+    END DO Tloop
+    
+    ! Successful exit
+    IERR = 1  
+
+ END SUBROUTINE RK_IntegratorTLM
+
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE RK_ErrorMsg(Code,T,H,IERR)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!    Handles all error messages
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+   IMPLICIT NONE
+   KPP_REAL, INTENT(IN) :: T, H
+   INTEGER, INTENT(IN)  :: Code
+   INTEGER, INTENT(OUT) :: IERR
+
+   IERR = Code
+   PRINT * , &
+     'Forced exit from RungeKutta due to the following error:'
+
+
+   SELECT CASE (Code)
+    CASE (-1)
+      PRINT * , '--> Improper value for maximal no of steps'
+    CASE (-2)
+      PRINT * , '--> Improper value for maximal no of Newton iterations'
+    CASE (-3)
+      PRINT * , '--> Hmin/Hmax/Hstart must be positive'
+    CASE (-4)
+      PRINT * , '--> Improper values for FacMin/FacMax/FacSafe/FacRej'
+    CASE (-5)
+      PRINT * , '--> Improper value for ThetaMin'
+    CASE (-6)
+      PRINT * , '--> Newton stopping tolerance too small'
+    CASE (-7)
+      PRINT * , '--> Improper values for Qmin, Qmax'
+    CASE (-8)
+      PRINT * , '--> Tolerances are too small'
+    CASE (-9)
+      PRINT * , '--> No of steps exceeds maximum bound'
+    CASE (-10)
+      PRINT * , '--> Step size too small: T + 10*H = T', &
+            ' or H < Roundoff'
+    CASE (-11)
+      PRINT * , '--> Matrix is repeatedly singular'
+    CASE (-12)
+      PRINT * , '--> Non-convergence of Newton iterations'
+    CASE (-13)
+      PRINT * , '--> Requested RK method not implemented'
+    CASE DEFAULT
+      PRINT *, 'Unknown Error code: ', Code
+   END SELECT
+
+   WRITE(6,FMT="(5X,'T=',E12.5,'  H=',E12.5)") T, H 
+
+ END SUBROUTINE RK_ErrorMsg
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE RK_ErrorScale(N,ITOL,AbsTol,RelTol,Y,SCAL)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!    Handles all error messages
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   IMPLICIT NONE
+   INTEGER, INTENT(IN)  :: N, ITOL
+   KPP_REAL, INTENT(IN) :: AbsTol(*), RelTol(*), Y(N)
+   KPP_REAL, INTENT(OUT) :: SCAL(N)
+   INTEGER :: i
+   
+   IF (ITOL==0) THEN
+       DO i=1,N
+          SCAL(i)= ONE/(AbsTol(1)+RelTol(1)*ABS(Y(i)))
+       END DO
+   ELSE
+       DO i=1,N
+          SCAL(i)=ONE/(AbsTol(i)+RelTol(i)*ABS(Y(i)))
+       END DO
+   END IF
+      
+ END SUBROUTINE RK_ErrorScale
+
+
+!!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!  SUBROUTINE RK_Transform(N,Tr,Z1,Z2,Z3,W1,W2,W3)
+!!~~~>                 W <-- Tr x Z
+!!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!      IMPLICIT NONE
+!      INTEGER :: N, i
+!      KPP_REAL :: Tr(3,3),Z1(N),Z2(N),Z3(N),W1(N),W2(N),W3(N)
+!      KPP_REAL :: x1, x2, x3
+!      DO i=1,N
+!          x1 = Z1(i); x2 = Z2(i); x3 = Z3(i)
+!          W1(i) = Tr(1,1)*x1 + Tr(1,2)*x2 + Tr(1,3)*x3
+!          W2(i) = Tr(2,1)*x1 + Tr(2,2)*x2 + Tr(2,3)*x3
+!          W3(i) = Tr(3,1)*x1 + Tr(3,2)*x2 + Tr(3,3)*x3
+!      END DO
+!  END SUBROUTINE RK_Transform
+ 
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE RK_Interpolate(action,N,H,Hold,Z1,Z2,Z3,CONT)
+!~~~>   Constructs or evaluates a quadratic polynomial
+!         that interpolates the Z solution at current step
+!         and provides starting values for the next step
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      INTEGER, INTENT(IN) :: N
+      KPP_REAL, INTENT(IN) :: H,Hold
+      KPP_REAL, INTENT(INOUT) :: Z1(N),Z2(N),Z3(N),CONT(N,3)
+      CHARACTER(LEN=4), INTENT(IN) :: action
+      KPP_REAL :: r, x1, x2, x3, den
+      INTEGER :: i
+       
+      SELECT CASE (action) 
+      CASE ('make')
+         ! Construct the solution quadratic interpolant Q(c_i) = Z_i, i=1:3
+         den = (rkC(3)-rkC(2))*(rkC(2)-rkC(1))*(rkC(1)-rkC(3))
+         DO i=1,N
+             CONT(i,1)=(-rkC(3)**2*rkC(2)*Z1(i)+Z3(i)*rkC(2)*rkC(1)**2 &
+                        +rkC(2)**2*rkC(3)*Z1(i)-rkC(2)**2*rkC(1)*Z3(i) &
+                        +rkC(3)**2*rkC(1)*Z2(i)-Z2(i)*rkC(3)*rkC(1)**2)&
+                        /den-Z3(i)
+             CONT(i,2)= -( rkC(1)**2*(Z3(i)-Z2(i)) + rkC(2)**2*(Z1(i)  &
+                          -Z3(i)) +rkC(3)**2*(Z2(i)-Z1(i)) )/den
+             CONT(i,3)= ( rkC(1)*(Z3(i)-Z2(i)) + rkC(2)*(Z1(i)-Z3(i))  &
+                           +rkC(3)*(Z2(i)-Z1(i)) )/den
+         END DO
+      CASE ('eval')
+          ! Evaluate quadratic polynomial
+          r = H/Hold
+         x1 = ONE + rkC(1)*r
+         x2 = ONE + rkC(2)*r
+         x3 = ONE + rkC(3)*r
+         DO i=1,N
+            Z1(i) = CONT(i,1)+x1*(CONT(i,2)+x1*CONT(i,3))
+            Z2(i) = CONT(i,1)+x2*(CONT(i,2)+x2*CONT(i,3))
+            Z3(i) = CONT(i,1)+x3*(CONT(i,2)+x3*CONT(i,3))
+         END DO
+       END SELECT   
+  END SUBROUTINE RK_Interpolate
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE RK_PrepareRHS(N,T,H,Y,Z1,Z2,Z3,R1,R2,R3)
+!~~~> Prepare the right-hand side for Newton iterations
+!     R = Z - hA x F
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      
+      INTEGER, INTENT(IN) :: N
+      KPP_REAL, INTENT(IN) :: T, H
+      KPP_REAL, INTENT(IN), DIMENSION(N) :: Y,Z1,Z2,Z3
+      KPP_REAL, INTENT(INOUT), DIMENSION(N) :: R1,R2,R3
+      KPP_REAL, DIMENSION(N) :: F, TMP
+      
+      CALL WCOPY(N,Z1,1,R1,1) ! R1 <- Z1
+      CALL WCOPY(N,Z2,1,R2,1) ! R2 <- Z2
+      CALL WCOPY(N,Z3,1,R3,1) ! R3 <- Z3
+
+      CALL WADD(N,Y,Z1,TMP)              ! TMP <- Y + Z1
+      CALL FUN_CHEM(T+rkC(1)*H,TMP,F)    ! F1 <- Fun(Y+Z1)         
+      CALL WAXPY(N,-H*rkA(1,1),F,1,R1,1) ! R1 <- R1 - h*A_11*F1
+      CALL WAXPY(N,-H*rkA(2,1),F,1,R2,1) ! R2 <- R2 - h*A_21*F1
+      CALL WAXPY(N,-H*rkA(3,1),F,1,R3,1) ! R3 <- R3 - h*A_31*F1
+
+      CALL WADD(N,Y,Z2,TMP)              ! TMP <- Y + Z2
+      CALL FUN_CHEM(T+rkC(2)*H,TMP,F)    ! F2 <- Fun(Y+Z2)        
+      CALL WAXPY(N,-H*rkA(1,2),F,1,R1,1) ! R1 <- R1 - h*A_12*F2
+      CALL WAXPY(N,-H*rkA(2,2),F,1,R2,1) ! R2 <- R2 - h*A_22*F2
+      CALL WAXPY(N,-H*rkA(3,2),F,1,R3,1) ! R3 <- R3 - h*A_32*F2
+
+      CALL WADD(N,Y,Z3,TMP)              ! TMP <- Y + Z3
+      CALL FUN_CHEM(T+rkC(3)*H,TMP,F)    ! F3 <- Fun(Y+Z3)     
+      CALL WAXPY(N,-H*rkA(1,3),F,1,R1,1) ! R1 <- R1 - h*A_13*F3
+      CALL WAXPY(N,-H*rkA(2,3),F,1,R2,1) ! R2 <- R2 - h*A_23*F3
+      CALL WAXPY(N,-H*rkA(3,3),F,1,R3,1) ! R3 <- R3 - h*A_33*F3
+            
+  END SUBROUTINE RK_PrepareRHS
+  
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE RK_PrepareRHS_TLM(N,H,Jac1,Jac2,Jac3,Y_tlm, &
+                      Z1_tlm,Z2_tlm,Z3_tlm,R1,R2,R3)
+!~~~> Prepare the right-hand side for Newton iterations
+!     R = Z_tlm - hA x Jac*Z_tlm
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      
+      INTEGER, INTENT(IN) :: N
+      KPP_REAL, INTENT(IN) :: H
+      KPP_REAL, INTENT(IN), DIMENSION(N) :: Y_tlm,Z1_tlm,Z2_tlm,Z3_tlm
+      KPP_REAL, INTENT(INOUT), DIMENSION(N) :: R1,R2,R3
+#ifdef FULL_ALGEBRA      
+      KPP_REAL, INTENT(IN), DIMENSION(NVAR,NVAR)  :: Jac1, Jac2, Jac3
+#else      
+      KPP_REAL, INTENT(IN), DIMENSION(LU_NONZERO) :: Jac1, Jac2, Jac3
+#endif
+      KPP_REAL, DIMENSION(N) :: F, TMP
+
+      CALL WCOPY(N,Z1_tlm,1,R1,1) ! R1 <- Z1_tlm
+      CALL WCOPY(N,Z2_tlm,1,R2,1) ! R2 <- Z2_tlm
+      CALL WCOPY(N,Z3_tlm,1,R3,1) ! R3 <- Z3_tlm
+
+      CALL WADD(N,Y_tlm,Z1_tlm,TMP)      ! TMP <- Y + Z1
+#ifdef FULL_ALGEBRA  
+      F = MATMUL(Jac1,TMP)    
+#else      
+      CALL Jac_SP_Vec ( Jac1, TMP, F )   ! F1 <- Jac(Y+Z1)*(Y_tlm+Z1_tlm)  
+#endif      
+      CALL WAXPY(N,-H*rkA(1,1),F,1,R1,1) ! R1 <- R1 - h*A_11*F1
+      CALL WAXPY(N,-H*rkA(2,1),F,1,R2,1) ! R2 <- R2 - h*A_21*F1
+      CALL WAXPY(N,-H*rkA(3,1),F,1,R3,1) ! R3 <- R3 - h*A_31*F1
+
+      CALL WADD(N,Y_tlm,Z2_tlm,TMP)      ! TMP <- Y + Z2
+#ifdef FULL_ALGEBRA      
+      F = MATMUL(Jac2,TMP)    
+#else      
+      CALL Jac_SP_Vec ( Jac2, TMP, F )   ! F2 <- Jac(Y+Z2)*(Y_tlm+Z2_tlm)  
+#endif      
+      CALL WAXPY(N,-H*rkA(1,2),F,1,R1,1) ! R1 <- R1 - h*A_12*F2
+      CALL WAXPY(N,-H*rkA(2,2),F,1,R2,1) ! R2 <- R2 - h*A_22*F2
+      CALL WAXPY(N,-H*rkA(3,2),F,1,R3,1) ! R3 <- R3 - h*A_32*F2
+
+      CALL WADD(N,Y_tlm,Z3_tlm,TMP)      ! TMP <- Y + Z3
+#ifdef FULL_ALGEBRA      
+      F = MATMUL(Jac3,TMP)    
+#else      
+      CALL Jac_SP_Vec ( Jac3, TMP, F )   ! F3 <- Jac(Y+Z3)*(Y_tlm+Z3_tlm)  
+#endif      
+      CALL WAXPY(N,-H*rkA(1,3),F,1,R1,1) ! R1 <- R1 - h*A_13*F3
+      CALL WAXPY(N,-H*rkA(2,3),F,1,R2,1) ! R2 <- R2 - h*A_23*F3
+      CALL WAXPY(N,-H*rkA(3,3),F,1,R3,1) ! R3 <- R3 - h*A_33*F3
+            
+  END SUBROUTINE RK_PrepareRHS_TLM
+  
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE RK_PrepareRHS_TLMdirect(N,H,Jac1,Jac2,Jac3,Y_tlm,Zbig)
+!~~~> Prepare the right-hand side for direct solution
+!     Z =  hA x Jac*Y_tlm
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      
+      INTEGER, INTENT(IN) :: N
+      KPP_REAL, INTENT(IN) :: H
+      KPP_REAL, INTENT(IN), DIMENSION(N) :: Y_tlm
+! Commented code for sparse big linear algebra:  
+!      KPP_REAL, INTENT(OUT), DIMENSION(3,N) :: Zbig
+      KPP_REAL, INTENT(OUT), DIMENSION(3*N) :: Zbig
+#ifdef FULL_ALGEBRA      
+      KPP_REAL, INTENT(IN), DIMENSION(NVAR,NVAR)  :: Jac1, Jac2, Jac3
+#else      
+      KPP_REAL, INTENT(IN), DIMENSION(LU_NONZERO) :: Jac1, Jac2, Jac3
+#endif
+      KPP_REAL, DIMENSION(N) :: F, TMP
+
+#ifdef FULL_ALGEBRA  
+      F = MATMUL(Jac1,Y_tlm)    
+#else      
+      CALL Jac_SP_Vec ( Jac1, Y_tlm, F )   ! F1 <- Jac(Y+Z1)*(Y_tlm)  
+#endif      
+! Commented code for sparse big linear algebra:  
+!      Zbig(1,1:N) = H*rkA(1,1)*F(1:N)
+!      Zbig(2,1:N) = H*rkA(2,1)*F(1:N)
+!      Zbig(3,1:N) = H*rkA(3,1)*F(1:N)
+      Zbig(1:N)       = H*rkA(1,1)*F(1:N)
+      Zbig(N+1:2*N)   = H*rkA(2,1)*F(1:N)
+      Zbig(2*N+1:3*N) = H*rkA(3,1)*F(1:N)
+
+#ifdef FULL_ALGEBRA      
+      F = MATMUL(Jac2,Y_tlm)    
+#else      
+      CALL Jac_SP_Vec ( Jac2, Y_tlm, F )   ! F2 <- Jac(Y+Z2)*(Y_tlm)  
+#endif    
+! Commented code for sparse big linear algebra:  
+!      Zbig(1,1:N) = Zbig(1,1:N) + H*rkA(1,2)*F(1:N)
+!      Zbig(2,1:N) = Zbig(2,1:N) + H*rkA(2,2)*F(1:N)
+!      Zbig(3,1:N) = Zbig(3,1:N) + H*rkA(3,2)*F(1:N)
+      Zbig(1:N)       = Zbig(1:N)       + H*rkA(1,2)*F(1:N)
+      Zbig(N+1:2*N)   = Zbig(N+1:2*N)   + H*rkA(2,2)*F(1:N)
+      Zbig(2*N+1:3*N) = Zbig(2*N+1:3*N) + H*rkA(3,2)*F(1:N)
+
+#ifdef FULL_ALGEBRA      
+      F = MATMUL(Jac3,Y_tlm)    
+#else      
+      CALL Jac_SP_Vec ( Jac3, Y_tlm, F )   ! F3 <- Jac(Y+Z3)*(Y_tlm)  
+#endif      
+! Commented code for sparse big linear algebra:  
+!      Zbig(1,1:N) = Zbig(1,1:N) + H*rkA(1,3)*F(1:N)
+!      Zbig(2,1:N) = Zbig(2,1:N) + H*rkA(2,3)*F(1:N)
+!      Zbig(3,1:N) = Zbig(3,1:N) + H*rkA(3,3)*F(1:N)
+      Zbig(1:N)       = Zbig(1:N)       + H*rkA(1,3)*F(1:N)
+      Zbig(N+1:2*N)   = Zbig(N+1:2*N)   + H*rkA(2,3)*F(1:N)
+      Zbig(2*N+1:3*N) = Zbig(2*N+1:3*N) + H*rkA(3,3)*F(1:N)
+            
+  END SUBROUTINE RK_PrepareRHS_TLMdirect
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE RK_Decomp(N,H,FJAC,E1,IP1,E2,IP2,ISING)
+   !~~~> Compute the matrices E1 and E2 and their decompositions
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      
+      INTEGER, INTENT(IN) :: N
+      KPP_REAL, INTENT(IN) :: H
+#ifdef FULL_ALGEBRA      
+      KPP_REAL, INTENT(IN) :: FJAC(NVAR,NVAR)
+      KPP_REAL, INTENT(OUT) ::E1(NVAR,NVAR)
+      COMPLEX(kind=dp), INTENT(OUT) :: E2(N,N)
+#else      
+      KPP_REAL, INTENT(IN) :: FJAC(LU_NONZERO)
+      KPP_REAL, INTENT(OUT) :: E1(LU_NONZERO)
+      COMPLEX(kind=dp),INTENT(OUT) :: E2(LU_NONZERO)
+#endif      
+      INTEGER, INTENT(OUT) :: IP1(N), IP2(N), ISING
+
+      INTEGER :: i, j
+      KPP_REAL    :: Alpha, Beta, Gamma
+      
+      Gamma = rkGamma/H
+      Alpha = rkAlpha/H
+      Beta  = rkBeta /H
+
+#ifdef FULL_ALGEBRA      
+      DO j=1,N
+         DO  i=1,N
+            E1(i,j)=-FJAC(i,j)
+         END DO
+         E1(j,j)=E1(j,j)+Gamma
+      END DO
+      CALL DGETRF(N,N,E1,N,IP1,ISING) 
+#else      
+      DO i=1,LU_NONZERO
+         E1(i)=-FJAC(i)
+      END DO
+      DO i=1,NVAR
+         j=LU_DIAG(i); E1(j)=E1(j)+Gamma
+      END DO
+      CALL KppDecomp(E1,ISING)
+#endif      
+      
+      IF (ISING /= 0) THEN
+         ISTATUS(Ndec) = ISTATUS(Ndec) + 1
+         RETURN
+      END IF
+     
+#ifdef FULL_ALGEBRA      
+      DO j=1,N
+        DO i=1,N
+          E2(i,j) = DCMPLX( -FJAC(i,j), ZERO )
+        END DO
+        E2(j,j) = E2(j,j) + CMPLX( Alpha, Beta )
+      END DO
+      CALL ZGETRF(N,N,E2,N,IP2,ISING)     
+#else  
+      DO i=1,LU_NONZERO
+         E2(i) = DCMPLX( -FJAC(i), ZERO )
+      END DO
+      DO i=1,NVAR
+         j = LU_DIAG(i); E2(j)=E2(j) + CMPLX( Alpha, Beta )
+      END DO
+      CALL KppDecompCmplx(E2,ISING)    
+#endif      
+      ISTATUS(Ndec) = ISTATUS(Ndec) + 1
+      
+   END SUBROUTINE RK_Decomp
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE RK_Solve(N,H,E1,IP1,E2,IP2,R1,R2,R3,ISING)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      INTEGER, INTENT(IN) :: N,IP1(NVAR),IP2(NVAR)
+      INTEGER, INTENT(OUT) :: ISING
+#ifdef FULL_ALGEBRA      
+      KPP_REAL, INTENT(IN) :: E1(NVAR,NVAR)
+      COMPLEX(kind=dp), INTENT(IN) :: E2(NVAR,NVAR)
+#else      
+      KPP_REAL, INTENT(IN) :: E1(LU_NONZERO)
+      COMPLEX(kind=dp), INTENT(IN) :: E2(LU_NONZERO)
+#endif      
+      KPP_REAL, INTENT(IN) :: H
+      KPP_REAL, INTENT(INOUT) :: R1(N),R2(N),R3(N)
+
+      KPP_REAL    :: x1, x2, x3
+      COMPLEX(kind=dp) :: BC(N)
+      INTEGER :: i
+!      
+     ! Z <- h^{-1) T^{-1) A^{-1) x Z
+      DO i=1,N
+          x1 = R1(i)/H; x2 = R2(i)/H; x3 = R3(i)/H
+          R1(i) = rkTinvAinv(1,1)*x1 + rkTinvAinv(1,2)*x2 + rkTinvAinv(1,3)*x3
+          R2(i) = rkTinvAinv(2,1)*x1 + rkTinvAinv(2,2)*x2 + rkTinvAinv(2,3)*x3
+          R3(i) = rkTinvAinv(3,1)*x1 + rkTinvAinv(3,2)*x2 + rkTinvAinv(3,3)*x3
+      END DO
+
+#ifdef FULL_ALGEBRA      
+      CALL DGETRS ('N',N,1,E1,N,IP1,R1,N,ISING) 
+#else      
+      CALL KppSolve (E1,R1)
+#endif      
+!      
+      DO i=1,N
+        BC(i) = DCMPLX(R2(i),R3(i))
+      END DO
+#ifdef FULL_ALGEBRA      
+      CALL ZGETRS ('N',N,1,E2,N,IP2,BC,N,ISING) 
+#else      
+      CALL KppSolveCmplx (E2,BC)
+#endif      
+      DO i=1,N
+        R2(i) = DBLE( BC(i) )
+        R3(i) = AIMAG( BC(i) )
+      END DO
+
+      ! Z <- T x Z
+      DO i=1,N
+          x1 = R1(i); x2 = R2(i); x3 = R3(i)
+          R1(i) = rkT(1,1)*x1 + rkT(1,2)*x2 + rkT(1,3)*x3
+          R2(i) = rkT(2,1)*x1 + rkT(2,2)*x2 + rkT(2,3)*x3
+          R3(i) = rkT(3,1)*x1 + rkT(3,2)*x2 + rkT(3,3)*x3
+      END DO
+
+      ISTATUS(Nsol) = ISTATUS(Nsol) + 1
+
+   END SUBROUTINE RK_Solve
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE RK_ErrorEstimate(N,H,Y,T,      &
+               E1,IP1,Z1,Z2,Z3,SCAL,Err,     &
+               FirstStep,Reject)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      
+      INTEGER, INTENT(IN) :: N, IP1(N)
+#ifdef FULL_ALGEBRA      
+      KPP_REAL, INTENT(IN) :: E1(NVAR,NVAR)
+      INTEGER :: ISING
+#else      
+      KPP_REAL, INTENT(IN) :: E1(LU_NONZERO)
+#endif      
+      KPP_REAL, INTENT(IN) :: T,H,SCAL(N),Z1(N),Z2(N),Z3(N),Y(N)
+      LOGICAL,INTENT(IN) :: FirstStep,Reject
+      KPP_REAL, INTENT(INOUT) :: Err
+
+      KPP_REAL :: F1(N),F2(N),F0(N),TMP(N)
+      INTEGER :: i
+      KPP_REAL :: HEE1,HEE2,HEE3
+
+      HEE1  = rkE(1)/H
+      HEE2  = rkE(2)/H
+      HEE3  = rkE(3)/H
+
+      CALL FUN_CHEM(T,Y,F0)
+      ISTATUS(Nfun) = ISTATUS(Nfun) + 1
+
+      DO  i=1,N
+         F2(i)  = HEE1*Z1(i)+HEE2*Z2(i)+HEE3*Z3(i)
+         TMP(i) = rkE(0)*F0(i) + F2(i)
+      END DO
+
+#ifdef FULL_ALGEBRA      
+      CALL DGETRS ('N',N,1,E1,N,IP1,TMP,N,ISING) 
+      IF ((rkMethod==R1A).OR.(rkMethod==GAU).OR.(rkMethod==L3A)) THEN
+            CALL DGETRS ('N',N,1,E1,N,IP1,TMP,N,ISING)
+      END IF	    
+      IF (rkMethod==GAU) THEN  
+            CALL DGETRS ('N',N,1,E1,N,IP1,TMP,N,ISING)
+      ENDIF	    
+#else      
+      CALL KppSolve (E1, TMP)
+      IF ((rkMethod==R1A).OR.(rkMethod==GAU).OR.(rkMethod==L3A)) THEN
+            CALL KppSolve (E1,TMP)
+      END IF	    
+      IF (rkMethod==GAU) THEN
+            CALL KppSolve (E1,TMP)
+      END IF	    
+#endif      
+
+      Err = RK_ErrorNorm(N,SCAL,TMP)
+!
+      IF (Err < ONE) RETURN
+firej:IF (FirstStep.OR.Reject) THEN
+          DO i=1,N
+             TMP(i)=Y(i)+TMP(i)
+          END DO
+          CALL FUN_CHEM(T,TMP,F1)    
+          ISTATUS(Nfun) = ISTATUS(Nfun) + 1
+          DO i=1,N
+             TMP(i)=F1(i)+F2(i)
+          END DO
+
+#ifdef FULL_ALGEBRA      
+          CALL DGETRS ('N',N,1,E1,N,IP1,TMP,N,ISING) 
+#else      
+          CALL KppSolve (E1, TMP)
+#endif      
+          Err = RK_ErrorNorm(N,SCAL,TMP)
+       END IF firej
+ 
+   END SUBROUTINE RK_ErrorEstimate
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE RK_ErrorEstimate_tlm(N,NTLM,T,H,FJAC,Y,Y_tlm, &
+               E1,IP1,Z1_tlm,Z2_tlm,Z3_tlm,FWD_Err,     &
+               FirstStep,Reject)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      
+      INTEGER, INTENT(IN) :: N,NTLM,IP1(N)
+#ifdef FULL_ALGEBRA      
+      KPP_REAL, INTENT(IN) :: FJAC(N,N),  E1(N,N)
+      KPP_REAL :: J0(N,N)
+      INTEGER  :: ISING
+#else      
+      KPP_REAL, INTENT(IN) :: FJAC(LU_NONZERO), E1(LU_NONZERO)
+      KPP_REAL :: J0(LU_NONZERO)
+#endif      
+      KPP_REAL, INTENT(IN) :: T,H, Z1_tlm(N,NTLM),Z2_tlm(N,NTLM),Z3_tlm(N,NTLM), &
+      				Y_tlm(N,NTLM), Y(N)
+      LOGICAL, INTENT(IN) :: FirstStep, Reject
+      KPP_REAL, INTENT(INOUT) :: FWD_Err
+
+      INTEGER :: itlm
+      KPP_REAL :: HEE1,HEE2,HEE3, SCAL_tlm(N), Err, TMP(N), TMP2(N), JY_tlm(N)
+	
+	HEE1  = rkE(1)/H
+	HEE2  = rkE(2)/H
+	HEE3  = rkE(3)/H
+	
+      DO itlm=1,NTLM
+        CALL RK_ErrorScale(N,ITOL,AbsTol_tlm(1,itlm),RelTol_tlm(1,itlm), &
+              Y_tlm(1,itlm),SCAL_tlm)
+
+ 	CALL JAC_CHEM(T,Y,J0)
+	ISTATUS(Njac) = ISTATUS(Njac) + 1
+	CALL JAC_SP_Vec(J0,Y_tlm(1,itlm),JY_tlm)
+
+	DO  i=1,N
+          TMP2(i)  = HEE1*Z1_tlm(i,itlm)+HEE2*Z2_tlm(i,itlm)+HEE3*Z3_tlm(i,itlm)
+          TMP(i) = rkE(0)*JY_tlm(i) + TMP2(i)
+	END DO
+
+#ifdef FULL_ALGEBRA      
+	CALL DGETRS ('N',N,1,E1,N,IP1,TMP,N,ISING) 
+!	IF ((ICNTRL(3)==3).OR.(ICNTRL(3)==4)) 
+!               CALL DGETRS('N',N,1,E1,N,IP1,TMP,N,ISING)
+!	IF (ICNTRL(3)==3) CALL DGETRS ('N',N,1,E1,N,IP1,TMP,N,ISING)
+#else      
+	CALL KppSolve (E1, TMP)
+!	IF ((ICNTRL(3)==3).OR.(ICNTRL(3)==4)) THEN
+!          CALL KppSolve (E1,TMP)
+!	END IF  
+!	IF (ICNTRL(3)==3) THEN
+!          CALL KppSolve (E1,TMP)
+!	END IF  
+#endif      
+
+        Err = RK_ErrorNorm(N,SCAL_tlm,TMP)
+!
+	FWD_Err = MAX(FWD_Err, Err)
+      END DO
+      
+   END SUBROUTINE RK_ErrorEstimate_tlm
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   KPP_REAL FUNCTION RK_ErrorNorm(N,SCAL,DY)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      
+      INTEGER, INTENT(IN) :: N
+      KPP_REAL, INTENT(IN) :: SCAL(N),DY(N)
+      INTEGER :: i
+
+      RK_ErrorNorm = ZERO
+      DO i=1,N
+          RK_ErrorNorm = RK_ErrorNorm + (DY(i)*SCAL(i))**2
+      END DO
+      RK_ErrorNorm = MAX( SQRT(RK_ErrorNorm/N), 1.0d-10 )
+ 
+   END FUNCTION RK_ErrorNorm
+  
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE Radau2A_Coefficients
+!    The coefficients of the 3-stage Radau-2A method
+!    (given to ~30 accurate digits)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
+      IMPLICIT NONE
+! The coefficients of the Radau2A method
+      KPP_REAL :: b0
+
+!      b0 = 1.0d0
+      IF (SdirkError) THEN
+        b0 = 0.2d-1
+      ELSE
+        b0 = 0.5d-1
+      END IF
+
+! The coefficients of the Radau2A method
+      rkMethod = R2A
+
+      rkA(1,1) =  1.968154772236604258683861429918299d-1
+      rkA(1,2) = -6.55354258501983881085227825696087d-2
+      rkA(1,3) =  2.377097434822015242040823210718965d-2
+      rkA(2,1) =  3.944243147390872769974116714584975d-1
+      rkA(2,2) =  2.920734116652284630205027458970589d-1
+      rkA(2,3) = -4.154875212599793019818600988496743d-2
+      rkA(3,1) =  3.764030627004672750500754423692808d-1
+      rkA(3,2) =  5.124858261884216138388134465196080d-1
+      rkA(3,3) =  1.111111111111111111111111111111111d-1
+
+      rkB(1) = 3.764030627004672750500754423692808d-1
+      rkB(2) = 5.124858261884216138388134465196080d-1
+      rkB(3) = 1.111111111111111111111111111111111d-1
+
+      rkC(1) = 1.550510257216821901802715925294109d-1
+      rkC(2) = 6.449489742783178098197284074705891d-1
+      rkC(3) = 1.0d0
+      
+      ! New solution: H* Sum B_j*f(Z_j) = Sum D_j*Z_j
+      rkD(1) = 0.0d0
+      rkD(2) = 0.0d0
+      rkD(3) = 1.0d0
+
+      ! Classical error estimator: 
+      ! H* Sum (B_j-Bhat_j)*f(Z_j) = H*E(0)*f(0) + Sum E_j*Z_j
+      rkE(0) = 1.0d0*b0
+      rkE(1) = -10.04880939982741556246032950764708d0*b0
+      rkE(2) = 1.382142733160748895793662840980412d0*b0
+      rkE(3) = -.3333333333333333333333333333333333d0*b0
+
+      ! Sdirk error estimator
+      rkBgam(0) = b0
+      rkBgam(1) = .3764030627004672750500754423692807d0-1.558078204724922382431975370686279d0*b0
+      rkBgam(2) = .8914115380582557157653087040196118d0*b0+.5124858261884216138388134465196077d0
+      rkBgam(3) = -.1637777184845662566367174924883037d0-.3333333333333333333333333333333333d0*b0
+      rkBgam(4) = .2748888295956773677478286035994148d0
+
+      ! H* Sum Bgam_j*f(Z_j) = H*Bgam(0)*f(0) + Sum Theta_j*Z_j
+      rkTheta(1) = -1.520677486405081647234271944611547d0-10.04880939982741556246032950764708d0*b0
+      rkTheta(2) = 2.070455145596436382729929151810376d0+1.382142733160748895793662840980413d0*b0
+      rkTheta(3) = -.3333333333333333333333333333333333d0*b0-.3744441479783868387391430179970741d0
+
+      ! Local order of error estimator 
+      IF (b0==0.0d0) THEN
+        rkELO  = 6.0d0
+      ELSE	
+        rkELO  = 4.0d0
+      END IF	
+
+      !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      !~~~> Diagonalize the RK matrix:               
+      ! rkTinv * inv(rkA) * rkT =          
+      !           |  rkGamma      0           0     |
+      !           |      0      rkAlpha   -rkBeta   |
+      !           |      0      rkBeta     rkAlpha  |
+      !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      rkGamma = 3.637834252744495732208418513577775d0
+      rkAlpha = 2.681082873627752133895790743211112d0
+      rkBeta  = 3.050430199247410569426377624787569d0
+
+      rkT(1,1) =  9.443876248897524148749007950641664d-2
+      rkT(1,2) = -1.412552950209542084279903838077973d-1
+      rkT(1,3) = -3.00291941051474244918611170890539d-2
+      rkT(2,1) =  2.502131229653333113765090675125018d-1
+      rkT(2,2) =  2.041293522937999319959908102983381d-1
+      rkT(2,3) =  3.829421127572619377954382335998733d-1
+      rkT(3,1) =  1.0d0
+      rkT(3,2) =  1.0d0
+      rkT(3,3) =  0.0d0
+
+      rkTinv(1,1) =  4.178718591551904727346462658512057d0
+      rkTinv(1,2) =  3.27682820761062387082533272429617d-1
+      rkTinv(1,3) =  5.233764454994495480399309159089876d-1
+      rkTinv(2,1) = -4.178718591551904727346462658512057d0
+      rkTinv(2,2) = -3.27682820761062387082533272429617d-1
+      rkTinv(2,3) =  4.766235545005504519600690840910124d-1
+      rkTinv(3,1) = -5.02872634945786875951247343139544d-1
+      rkTinv(3,2) =  2.571926949855605429186785353601676d0
+      rkTinv(3,3) = -5.960392048282249249688219110993024d-1
+
+      rkTinvAinv(1,1) =  1.520148562492775501049204957366528d+1
+      rkTinvAinv(1,2) =  1.192055789400527921212348994770778d0
+      rkTinvAinv(1,3) =  1.903956760517560343018332287285119d0
+      rkTinvAinv(2,1) = -9.669512977505946748632625374449567d0
+      rkTinvAinv(2,2) = -8.724028436822336183071773193986487d0
+      rkTinvAinv(2,3) =  3.096043239482439656981667712714881d0
+      rkTinvAinv(3,1) = -1.409513259499574544876303981551774d+1
+      rkTinvAinv(3,2) =  5.895975725255405108079130152868952d0
+      rkTinvAinv(3,3) = -1.441236197545344702389881889085515d-1
+
+      rkAinvT(1,1) = .3435525649691961614912493915818282d0
+      rkAinvT(1,2) = -.4703191128473198422370558694426832d0
+      rkAinvT(1,3) = .3503786597113668965366406634269080d0
+      rkAinvT(2,1) = .9102338692094599309122768354288852d0
+      rkAinvT(2,2) = 1.715425895757991796035292755937326d0
+      rkAinvT(2,3) = .4040171993145015239277111187301784d0
+      rkAinvT(3,1) = 3.637834252744495732208418513577775d0
+      rkAinvT(3,2) = 2.681082873627752133895790743211112d0
+      rkAinvT(3,3) = -3.050430199247410569426377624787569d0
+
+  END SUBROUTINE Radau2A_Coefficients
+
+    
+
+    
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE Lobatto3C_Coefficients
+!    The coefficients of the 3-stage Lobatto-3C method
+!    (given to ~30 accurate digits)
+!    The parameter b0 can be chosen to tune the error estimator
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
+      IMPLICIT NONE
+      KPP_REAL :: b0
+
+      rkMethod = L3C
+
+!      b0 = 1.0d0
+      IF (SdirkError) THEN
+        b0 = 0.2d0
+      ELSE
+        b0 = 0.5d0
+      END IF
+! The coefficients of the Lobatto3C method
+
+      rkA(1,1) =  .1666666666666666666666666666666667d0
+      rkA(1,2) = -.3333333333333333333333333333333333d0
+      rkA(1,3) =  .1666666666666666666666666666666667d0
+      rkA(2,1) =  .1666666666666666666666666666666667d0
+      rkA(2,2) =  .4166666666666666666666666666666667d0
+      rkA(2,3) = -.8333333333333333333333333333333333d-1
+      rkA(3,1) =  .1666666666666666666666666666666667d0
+      rkA(3,2) =  .6666666666666666666666666666666667d0
+      rkA(3,3) =  .1666666666666666666666666666666667d0
+
+      rkB(1) = .1666666666666666666666666666666667d0
+      rkB(2) = .6666666666666666666666666666666667d0
+      rkB(3) = .1666666666666666666666666666666667d0
+
+      rkC(1) = 0.0d0
+      rkC(2) = 0.5d0
+      rkC(3) = 1.0d0
+
+      ! Classical error estimator, embedded solution: 
+      rkBhat(0) = b0
+      rkBhat(1) = .16666666666666666666666666666666667d0-b0
+      rkBhat(2) = .66666666666666666666666666666666667d0
+      rkBhat(3) = .16666666666666666666666666666666667d0
+      
+      ! New solution: h Sum_j b_j f(Z_j) = sum d_j Z_j
+      rkD(1) = 0.0d0
+      rkD(2) = 0.0d0
+      rkD(3) = 1.0d0
+
+      ! Classical error estimator: 
+      !   H* Sum (B_j-Bhat_j)*f(Z_j) = H*E(0)*f(0) + Sum E_j*Z_j
+      rkE(0) =   .3808338772072650364017425226487022*b0
+      rkE(1) = -1.142501631621795109205227567946107*b0
+      rkE(2) = -1.523335508829060145606970090594809*b0
+      rkE(3) =   .3808338772072650364017425226487022*b0
+
+      ! Sdirk error estimator
+      rkBgam(0) = b0
+      rkBgam(1) = .1666666666666666666666666666666667d0-1.d0*b0
+      rkBgam(2) = .6666666666666666666666666666666667d0
+      rkBgam(3) = -.2141672105405983697350758559820354d0
+      rkBgam(4) = .3808338772072650364017425226487021d0
+
+      ! H* Sum Bgam_j*f(Z_j) = H*Bgam(0)*f(0) + Sum Theta_j*Z_j
+      rkTheta(1) = -3.d0*b0-.3808338772072650364017425226487021d0
+      rkTheta(2) = -4.d0*b0+1.523335508829060145606970090594808d0
+      rkTheta(3) = -.142501631621795109205227567946106d0+b0
+
+      ! Local order of error estimator 
+      IF (b0==0.0d0) THEN
+        rkELO  = 5.0d0
+      ELSE	
+        rkELO  = 4.0d0
+      END IF	
+
+      !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      !~~~> Diagonalize the RK matrix:               
+      ! rkTinv * inv(rkA) * rkT =          
+      !           |  rkGamma      0           0     |
+      !           |      0      rkAlpha   -rkBeta   |
+      !           |      0      rkBeta     rkAlpha  |
+      !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      rkGamma = 2.625816818958466716011888933765284d0
+      rkAlpha = 1.687091590520766641994055533117359d0
+      rkBeta  = 2.508731754924880510838743672432351d0
+
+      rkT(1,1) = 1.d0
+      rkT(1,2) = 1.d0
+      rkT(1,3) = 0.d0
+      rkT(2,1) = .4554100411010284672111720348287483d0
+      rkT(2,2) = -.6027050205505142336055860174143743d0
+      rkT(2,3) = -.4309321229203225731070721341350346d0
+      rkT(3,1) = 2.195823345445647152832799205549709d0
+      rkT(3,2) = -1.097911672722823576416399602774855d0
+      rkT(3,3) = .7850032632435902184104551358922130d0
+
+      rkTinv(1,1) = .4205559181381766909344950150991349d0
+      rkTinv(1,2) = .3488903392193734304046467270632057d0
+      rkTinv(1,3) = .1915253879645878102698098373933487d0
+      rkTinv(2,1) = .5794440818618233090655049849008650d0
+      rkTinv(2,2) = -.3488903392193734304046467270632057d0
+      rkTinv(2,3) = -.1915253879645878102698098373933487d0
+      rkTinv(3,1) = -.3659705575742745254721332009249516d0
+      rkTinv(3,2) = -1.463882230297098101888532803699806d0
+      rkTinv(3,3) = .4702733607340189781407813565524989d0
+
+      rkTinvAinv(1,1) = 1.104302803159744452668648155627548d0
+      rkTinvAinv(1,2) = .916122120694355522658740710823143d0
+      rkTinvAinv(1,3) = .5029105849749601702795812241441172d0
+      rkTinvAinv(2,1) = 1.895697196840255547331351844372453d0
+      rkTinvAinv(2,2) = 3.083877879305644477341259289176857d0
+      rkTinvAinv(2,3) = -1.502910584974960170279581224144117d0
+      rkTinvAinv(3,1) = .8362439183082935036129145574774502d0
+      rkTinvAinv(3,2) = -3.344975673233174014451658229909802d0
+      rkTinvAinv(3,3) = .312908409479233358005944466882642d0
+
+      rkAinvT(1,1) = 2.625816818958466716011888933765282d0
+      rkAinvT(1,2) = 1.687091590520766641994055533117358d0
+      rkAinvT(1,3) = -2.508731754924880510838743672432351d0
+      rkAinvT(2,1) = 1.195823345445647152832799205549710d0
+      rkAinvT(2,2) = -2.097911672722823576416399602774855d0
+      rkAinvT(2,3) = .7850032632435902184104551358922130d0
+      rkAinvT(3,1) = 5.765829871932827589653709477334136d0
+      rkAinvT(3,2) = .1170850640335862051731452613329320d0
+      rkAinvT(3,3) = 4.078738281412060947659653944216779d0
+
+  END SUBROUTINE Lobatto3C_Coefficients
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE Gauss_Coefficients
+!    The coefficients of the 3-stage Gauss method
+!    (given to ~30 accurate digits)
+!    The parameter b3 can be chosen by the user
+!    to tune the error estimator
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
+      IMPLICIT NONE
+      KPP_REAL :: b0
+! The coefficients of the Gauss method
+
+
+      rkMethod = GAU
+      
+!      b0 = 4.0d0
+      b0 = 0.1d0
+      
+! The coefficients of the Gauss method
+
+      rkA(1,1) =  .1388888888888888888888888888888889d0
+      rkA(1,2) = -.359766675249389034563954710966045d-1
+      rkA(1,3) =  .97894440153083260495800422294756d-2
+      rkA(2,1) =  .3002631949808645924380249472131556d0
+      rkA(2,2) =  .2222222222222222222222222222222222d0
+      rkA(2,3) = -.224854172030868146602471694353778d-1
+      rkA(3,1) =  .2679883337624694517281977355483022d0
+      rkA(3,2) =  .4804211119693833479008399155410489d0
+      rkA(3,3) =  .1388888888888888888888888888888889d0
+
+      rkB(1) = .2777777777777777777777777777777778d0
+      rkB(2) = .4444444444444444444444444444444444d0
+      rkB(3) = .2777777777777777777777777777777778d0
+
+      rkC(1) = .1127016653792583114820734600217600d0
+      rkC(2) = .5000000000000000000000000000000000d0
+      rkC(3) = .8872983346207416885179265399782400d0
+
+      ! Classical error estimator, embedded solution: 
+      rkBhat(0) = b0
+      rkBhat(1) =-1.4788305577012361475298775666303999d0*b0 &
+                  +.27777777777777777777777777777777778d0
+      rkBhat(2) =  .44444444444444444444444444444444444d0 &
+                  +.66666666666666666666666666666666667d0*b0
+      rkBhat(3) = -.18783610896543051913678910003626672d0*b0 &
+                  +.27777777777777777777777777777777778d0
+
+      ! New solution: h Sum_j b_j f(Z_j) = sum d_j Z_j
+      rkD(1) = .1666666666666666666666666666666667d1
+      rkD(2) = -.1333333333333333333333333333333333d1
+      rkD(3) = .1666666666666666666666666666666667d1
+
+      ! Classical error estimator: 
+      !   H* Sum (B_j-Bhat_j)*f(Z_j) = H*E(0)*f(0) + Sum E_j*Z_j
+      rkE(0) = .2153144231161121782447335303806954d0*b0
+      rkE(1) = -2.825278112319014084275808340593191d0*b0
+      rkE(2) = .2870858974881495709929780405075939d0*b0
+      rkE(3) = -.4558086256248162565397206448274867d-1*b0
+
+      ! Sdirk error estimator
+      rkBgam(0) = 0.d0
+      rkBgam(1) = .2373339543355109188382583162660537d0
+      rkBgam(2) = .5879873931885192299409334646982414d0
+      rkBgam(3) = -.4063577064014232702392531134499046d-1
+      rkBgam(4) = .2153144231161121782447335303806955d0
+
+      ! H* Sum Bgam_j*f(Z_j) = H*Bgam(0)*f(0) + Sum Theta_j*Z_j
+      rkTheta(1) = -2.594040933093095272574031876464493d0
+      rkTheta(2) = 1.824611539036311947589425112250199d0
+      rkTheta(3) = .1856563166634371860478043996459493d0
+
+      ! ELO = local order of classical error estimator 
+      rkELO = 4.0d0
+
+      !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      !~~~> Diagonalize the RK matrix:               
+      ! rkTinv * inv(rkA) * rkT =          
+      !           |  rkGamma      0           0     |
+      !           |      0      rkAlpha   -rkBeta   |
+      !           |      0      rkBeta     rkAlpha  |
+      !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      rkGamma = 4.644370709252171185822941421408064d0
+      rkAlpha = 3.677814645373914407088529289295970d0
+      rkBeta  = 3.508761919567443321903661209182446d0
+
+      rkT(1,1) =  .7215185205520017032081769924397664d-1
+      rkT(1,2) = -.8224123057363067064866206597516454d-1
+      rkT(1,3) = -.6012073861930850173085948921439054d-1
+      rkT(2,1) =  .1188325787412778070708888193730294d0
+      rkT(2,2) =  .5306509074206139504614411373957448d-1
+      rkT(2,3) =  .3162050511322915732224862926182701d0
+      rkT(3,1) = 1.d0
+      rkT(3,2) = 1.d0
+      rkT(3,3) = 0.d0
+
+      rkTinv(1,1) =  5.991698084937800775649580743981285d0
+      rkTinv(1,2) =  1.139214295155735444567002236934009d0
+      rkTinv(1,3) =   .4323121137838583855696375901180497d0
+      rkTinv(2,1) = -5.991698084937800775649580743981285d0
+      rkTinv(2,2) = -1.139214295155735444567002236934009d0
+      rkTinv(2,3) =   .5676878862161416144303624098819503d0
+      rkTinv(3,1) = -1.246213273586231410815571640493082d0
+      rkTinv(3,2) =  2.925559646192313662599230367054972d0
+      rkTinv(3,3) =  -.2577352012734324923468722836888244d0
+
+      rkTinvAinv(1,1) =  27.82766708436744962047620566703329d0
+      rkTinvAinv(1,2) =   5.290933503982655311815946575100597d0
+      rkTinvAinv(1,3) =   2.007817718512643701322151051660114d0
+      rkTinvAinv(2,1) = -17.66368928942422710690385180065675d0
+      rkTinvAinv(2,2) = -14.45491129892587782538830044147713d0
+      rkTinvAinv(2,3) =   2.992182281487356298677848948339886d0
+      rkTinvAinv(3,1) = -25.60678350282974256072419392007303d0
+      rkTinvAinv(3,2) =   6.762434375611708328910623303779923d0
+      rkTinvAinv(3,3) =   1.043979339483109825041215970036771d0
+      
+      rkAinvT(1,1) = .3350999483034677402618981153470483d0
+      rkAinvT(1,2) = -.5134173605009692329246186488441294d0
+      rkAinvT(1,3) = .6745196507033116204327635673208923d-1
+      rkAinvT(2,1) = .5519025480108928886873752035738885d0
+      rkAinvT(2,2) = 1.304651810077110066076640761092008d0
+      rkAinvT(2,3) = .9767507983414134987545585703726984d0
+      rkAinvT(3,1) = 4.644370709252171185822941421408064d0
+      rkAinvT(3,2) = 3.677814645373914407088529289295970d0
+      rkAinvT(3,3) = -3.508761919567443321903661209182446d0
+      
+  END SUBROUTINE Gauss_Coefficients
+
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE Radau1A_Coefficients
+!    The coefficients of the 3-stage Gauss method
+!    (given to ~30 accurate digits)
+!    The parameter b3 can be chosen by the user
+!    to tune the error estimator
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
+      IMPLICIT NONE
+!      KPP_REAL :: b0 = 0.3d0
+      KPP_REAL :: b0 = 0.1d0
+
+! The coefficients of the Radau1A method
+
+      rkMethod = R1A
+
+      rkA(1,1) =  .1111111111111111111111111111111111d0
+      rkA(1,2) = -.1916383190435098943442935597058829d0
+      rkA(1,3) =  .8052720793239878323318244859477174d-1
+      rkA(2,1) =  .1111111111111111111111111111111111d0
+      rkA(2,2) =  .2920734116652284630205027458970589d0
+      rkA(2,3) = -.481334970546573839513422644787591d-1
+      rkA(3,1) =  .1111111111111111111111111111111111d0
+      rkA(3,2) =  .5370223859435462728402311533676479d0
+      rkA(3,3) =  .1968154772236604258683861429918299d0
+
+      rkB(1) = .1111111111111111111111111111111111d0
+      rkB(2) = .5124858261884216138388134465196080d0
+      rkB(3) = .3764030627004672750500754423692808d0
+
+      rkC(1) = 0.d0
+      rkC(2) = .3550510257216821901802715925294109d0
+      rkC(3) = .8449489742783178098197284074705891d0
+
+      ! Classical error estimator, embedded solution: 
+      rkBhat(0) = b0
+      rkBhat(1) = .11111111111111111111111111111111111d0-b0
+      rkBhat(2) = .51248582618842161383881344651960810d0
+      rkBhat(3) = .37640306270046727505007544236928079d0
+
+      ! New solution: H* Sum B_j*f(Z_j) = Sum D_j*Z_j
+      rkD(1) = .3333333333333333333333333333333333d0
+      rkD(2) = -.8914115380582557157653087040196127d0
+      rkD(3) = .1558078204724922382431975370686279d1
+
+      ! Classical error estimator: 
+      ! H* Sum (b_j-bhat_j) f(Z_j) = H*E(0)*F(0) + Sum E_j Z_j
+      rkE(0) =   .2748888295956773677478286035994148d0*b0
+      rkE(1) = -1.374444147978386838739143017997074d0*b0
+      rkE(2) = -1.335337922441686804550326197041126d0*b0
+      rkE(3) =   .235782604058977333559011782643466d0*b0
+
+      ! Sdirk error estimator
+      rkBgam(0) = 0.0d0
+      rkBgam(1) = .1948150124588532186183490991130616d-1
+      rkBgam(2) = .7575249005733381398986810981093584d0
+      rkBgam(3) = -.518952314149008295083446116200793d-1
+      rkBgam(4) = .2748888295956773677478286035994148d0
+
+      ! H* Sum Bgam_j*f(Z_j) = H*Bgam(0)*f(0) + Sum Theta_j*Z_j
+      rkTheta(1) = -1.224370034375505083904362087063351d0
+      rkTheta(2) = .9340045331532641409047527962010133d0
+      rkTheta(3) = .4656990124352088397561234800640929d0
+
+      ! ELO = local order of classical error estimator 
+      rkELO = 4.0d0
+
+      !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      !~~~> Diagonalize the RK matrix:               
+      ! rkTinv * inv(rkA) * rkT =          
+      !           |  rkGamma      0           0     |
+      !           |      0      rkAlpha   -rkBeta   |
+      !           |      0      rkBeta     rkAlpha  |
+      !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      rkGamma = 3.637834252744495732208418513577775d0
+      rkAlpha = 2.681082873627752133895790743211112d0
+      rkBeta  = 3.050430199247410569426377624787569d0
+
+      rkT(1,1) =  .424293819848497965354371036408369d0
+      rkT(1,2) = -.3235571519651980681202894497035503d0
+      rkT(1,3) = -.522137786846287839586599927945048d0
+      rkT(2,1) =  .57594609499806128896291585429339d-1
+      rkT(2,2) =  .3148663231849760131614374283783d-2
+      rkT(2,3) =  .452429247674359778577728510381731d0
+      rkT(3,1) = 1.d0
+      rkT(3,2) = 1.d0
+      rkT(3,3) = 0.d0
+
+      rkTinv(1,1) = 1.233523612685027760114769983066164d0
+      rkTinv(1,2) = 1.423580134265707095505388133369554d0
+      rkTinv(1,3) = .3946330125758354736049045150429624d0
+      rkTinv(2,1) = -1.233523612685027760114769983066164d0
+      rkTinv(2,2) = -1.423580134265707095505388133369554d0
+      rkTinv(2,3) = .6053669874241645263950954849570376d0
+      rkTinv(3,1) = -.1484438963257383124456490049673414d0
+      rkTinv(3,2) = 2.038974794939896109682070471785315d0
+      rkTinv(3,3) = -.544501292892686735299355831692542d-1
+
+      rkTinvAinv(1,1) =  4.487354449794728738538663081025420d0
+      rkTinvAinv(1,2) =  5.178748573958397475446442544234494d0
+      rkTinvAinv(1,3) =  1.435609490412123627047824222335563d0
+      rkTinvAinv(2,1) = -2.854361287939276673073807031221493d0
+      rkTinvAinv(2,2) = -1.003648660720543859000994063139137d+1
+      rkTinvAinv(2,3) =  1.789135380979465422050817815017383d0
+      rkTinvAinv(3,1) = -4.160768067752685525282947313530352d0
+      rkTinvAinv(3,2) =  1.124128569859216916690209918405860d0
+      rkTinvAinv(3,3) =  1.700644430961823796581896350418417d0
+
+      rkAinvT(1,1) = 1.543510591072668287198054583233180d0
+      rkAinvT(1,2) = -2.460228411937788329157493833295004d0
+      rkAinvT(1,3) = -.412906170450356277003910443520499d0
+      rkAinvT(2,1) = .209519643211838264029272585946993d0
+      rkAinvT(2,2) = 1.388545667194387164417459732995766d0
+      rkAinvT(2,3) = 1.20339553005832004974976023130002d0
+      rkAinvT(3,1) = 3.637834252744495732208418513577775d0
+      rkAinvT(3,2) = 2.681082873627752133895790743211112d0
+      rkAinvT(3,3) = -3.050430199247410569426377624787569d0
+
+  END SUBROUTINE Radau1A_Coefficients
+
+  
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  END SUBROUTINE RungeKuttaTLM ! and all its internal procedures
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE FUN_CHEM(T, V, FCT)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+    USE KPP_ROOT_Parameters
+    USE KPP_ROOT_Global
+    USE KPP_ROOT_Function, ONLY: Fun
+    USE KPP_ROOT_Rates, ONLY: Update_SUN, Update_RCONST, Update_PHOTO
+
+    IMPLICIT NONE
+
+    KPP_REAL, INTENT(IN) :: V(NVAR), T
+    KPP_REAL, INTENT(INOUT) :: FCT(NVAR)
+    KPP_REAL :: Told
+
+    Told = TIME
+    TIME = T
+    CALL Update_SUN()
+    CALL Update_RCONST()
+    CALL Update_PHOTO()
+    TIME = Told
+    
+    CALL Fun(V, FIX, RCONST, FCT)
+    
+  END SUBROUTINE FUN_CHEM
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE JAC_CHEM (T, V, JF)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+    USE KPP_ROOT_Parameters
+    USE KPP_ROOT_Global
+    USE KPP_ROOT_JacobianSP
+    USE KPP_ROOT_Jacobian, ONLY: Jac_SP
+    USE KPP_ROOT_Rates, ONLY: Update_SUN, Update_RCONST, Update_PHOTO
+
+    IMPLICIT NONE
+
+    KPP_REAL, INTENT(IN) :: V(NVAR), T 
+#ifdef FULL_ALGEBRA    
+    KPP_REAL, INTENT(INOUT) :: JF(NVAR,NVAR)
+    KPP_REAL :: JV(LU_NONZERO)
+    INTEGER       :: i, j 
+#else
+    KPP_REAL, INTENT(INOUT) :: JF(LU_NONZERO)
+#endif   
+
+    KPP_REAL :: Told
+
+    Told = TIME
+    TIME = T
+    CALL Update_SUN()
+    CALL Update_RCONST()
+    CALL Update_PHOTO()
+    TIME = Told
+    
+#ifdef FULL_ALGEBRA    
+    CALL Jac_SP(V, FIX, RCONST, JV)
+    DO j=1,NVAR
+      DO i=1,NVAR
+         JF(i,j) = 0.0d0
+      END DO
+    END DO
+    DO i=1,LU_NONZERO
+       JF(LU_IROW(i),LU_ICOL(i)) = JV(i)
+    END DO
+#else
+    CALL Jac_SP(V, FIX, RCONST, JF) 
+#endif   
+
+  END SUBROUTINE JAC_CHEM
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+END MODULE KPP_ROOT_Integrator
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/sdirk.c
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/sdirk.c	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/sdirk.c	(revision 2696)
@@ -0,0 +1,1361 @@
+#define MAX(a,b) ( ((a) >= (b)) ?(a):(b)  )
+#define MIN(b,c) ( ((b) <  (c)) ?(b):(c)  )
+#define ABS(x)   ( ((x) >=  0 ) ?(x):(-x) )
+#define SQRT(d)  ( pow((d),0.5)  )
+#define SIGN(x,y)( ( (x*y) >= 0 ) ?(x):(-x) )/* Sign transfer function */
+#define MOD(A,B) (int)((A)%(B))
+
+/* ~~~> Numerical constants    */
+#define  ZERO     (KPP_REAL)0.0
+#define  ONE      (KPP_REAL)1.0
+
+/* ~~~>  Statistics on the work performed by the SDIRK method */
+#define  Nfun 1
+#define  Njac 2
+#define  Nstp 3
+#define  Nacc 4
+#define  Nrej 5
+#define  Ndec 6
+#define  Nsol 7
+#define  Nsng 8
+#define  Ntexit 1
+#define  Nhexit 2
+#define  Nhnew 3
+
+/*~~~>  SDIRK method coefficients, up to 5 stages    */
+#define Smax 5
+
+int S2A=1,
+	S2B=2,
+	S3A=3, 
+	S4A=4, 
+	S4B=5;
+
+int sdMethod, 
+	rkS;
+
+KPP_REAL rkGamma, 
+	rkA[Smax][Smax], 
+	rkB[Smax], 
+	rkELO, 
+	rkBhat[Smax],
+	rkC[Smax], 
+	rkD[Smax], 
+	rkE[Smax], 
+	rkTheta[Smax][Smax], 
+	rkAlpha[Smax][Smax];
+
+/*~~~> Function headers     */
+//void INTEGRATE(KPP_REAL TIN, KPP_REAL TOUT, int ICNTRL_U[], KPP_REAL RCNTRL_U[],
+//	int ISTATUS_U[], KPP_REAL RSTATUS_U[], int Ierr);
+void INTEGRATE(KPP_REAL TIN, KPP_REAL TOUT);
+int SDIRK(int N, KPP_REAL Tinitial, KPP_REAL Tfinal, KPP_REAL Y[], 
+	KPP_REAL RelTol[], KPP_REAL AbsTol[], KPP_REAL RCNTRL[], int ICNTRL[], 
+	KPP_REAL RSTATUS[], int ISTATUS[]);
+int SDIRK_Integrator(int N, KPP_REAL Tinitial, KPP_REAL Tfinal, KPP_REAL Y[], 
+	int Ierr, KPP_REAL Hstart, KPP_REAL Hmin, KPP_REAL Hmax, KPP_REAL Roundoff, 
+	KPP_REAL AbsTol[], KPP_REAL RelTol[], int ISTATUS[], KPP_REAL RSTATUS[],
+	int ITOL, int Max_no_steps, int StartNewton, KPP_REAL NewtonTol, 
+	KPP_REAL ThetaMin, KPP_REAL FacSafe, KPP_REAL FacMin, KPP_REAL FacMax,
+	KPP_REAL FacRej, KPP_REAL Qmin, KPP_REAL Qmax, int NewtonMaxit);
+void SDIRK_ErrorScale(int N, int ITOL, KPP_REAL AbsTol[], KPP_REAL RelTol[],
+	KPP_REAL Y[], KPP_REAL SCAL[]);
+KPP_REAL SDIRK_ErrorNorm(int N, KPP_REAL Y[], KPP_REAL SCAL[]);
+int SDIRK_ErrorMsg(int code, KPP_REAL T, KPP_REAL H, int Ierr);
+void SDIRK_PrepareMatrix(KPP_REAL H, KPP_REAL T, KPP_REAL Y[], KPP_REAL FJAC[], 
+	int SkipJac, int SkipLU, KPP_REAL E[], int IP[], int Reject, 
+	int ISING, int ISTATUS[]);
+void SDIRK_Solve(KPP_REAL H, int N, KPP_REAL E[], int IP[], int ISING, 
+	KPP_REAL RHS[], int ISTATUS[]);
+void Sdirk4a(void);
+void Sdirk4b(void);
+void Sdirk2a(void);
+void Sdirk2b(void);
+void Sdirk3a(void);
+void FUN_CHEM(KPP_REAL T, KPP_REAL Y[], KPP_REAL P[]);
+void JAC_CHEM(KPP_REAL T, KPP_REAL Y[], KPP_REAL JV[]);
+void Fun(KPP_REAL Y[], KPP_REAL FIX[], KPP_REAL RCONST[], KPP_REAL Ydot[]);
+void Jac_SP(KPP_REAL Y[], KPP_REAL FIX[], KPP_REAL RCONST[], KPP_REAL Ydot[]);
+void WAXPY(int N, KPP_REAL Alpha, KPP_REAL X[], int incX, KPP_REAL Y[], int incY);
+void WSCAL(int N, KPP_REAL Alpha, KPP_REAL X[], int incX);
+KPP_REAL WLAMCH(char C);
+void WADD(int N, KPP_REAL Y[], KPP_REAL Z[], KPP_REAL TMP[]);
+void Set2Zero(int N, KPP_REAL Y[]);
+void KppSolve(KPP_REAL A[], KPP_REAL b[]);
+int KppDecomp(KPP_REAL A[]);
+void Update_SUN();
+void Update_RCONST();
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+//void INTEGRATE(KPP_REAL TIN, KPP_REAL TOUT, int ICNTRL_U[], KPP_REAL RCNTRL_U[],
+//		int ISTATUS_U[], KPP_REAL RSTATUS_U[], int Ierr_U)
+void INTEGRATE(KPP_REAL TIN, KPP_REAL TOUT)
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+{
+
+/* int Ntotal = 0; *//* Used for debug option below to print the number of steps */
+KPP_REAL RCNTRL[20], 
+	RSTATUS[20], 
+	T1, 
+	T2;
+	
+int ICNTRL[20], 
+	ISTATUS[20], 
+	Ierr;
+
+Ierr = 0;
+
+int i;
+for(i=0; i<20; i++) {
+	ICNTRL[i] = 0;
+	RCNTRL[i] = (KPP_REAL)0.0;
+	ISTATUS[i] = 0;
+	RSTATUS[i] = (KPP_REAL)0.0;
+} /* end for */
+
+/*~> fine-tune the integrator: */
+ICNTRL[1] = 0; /* 0 - vector tolerances, 1 - scalar tolerances */
+ICNTRL[5] = 0; /* starting values of N. iter.: interpolated 0), zero (1) */
+
+///* If optional parameters are given, and if they are >0, 
+//	then they overwrite default settings. */
+//if(ICNTRL_U != NULL) { /* Check to see if ICNTRL_U is not NULL */
+//	for(i=0; i<20; i++) {
+//		if(ICNTRL_U[i] > 0) {
+//			ICNTRL[i] = ICNTRL_U[i];
+//		} /* end if */
+//	} /* end for */
+//} /* end if */
+//
+//if(RCNTRL_U != NULL) { /* Check to see if RCNTRL_U is not NULL */
+//	for(i=0; i<20; i++) {
+//		if(RCNTRL_U[i] > 0) {
+//			RCNTRL[i] = RCNTRL_U[i];
+//		} /* end if */
+//	} /* end for */
+//} /* end if */
+
+
+T1 = TIN;
+T2 = TOUT;
+Ierr = SDIRK( NVAR, T1, T2, VAR, RTOL, ATOL, RCNTRL, ICNTRL, RSTATUS,
+	ISTATUS);
+
+
+/*~~~> Debug option: print number of steps
+   Ntotal += ISTATUS[Nstp]; */
+
+if(Ierr < 0) {
+	printf("SDIRK: Unsuccessful exit at T=%f(Ierr=%d)", TIN, Ierr);
+}
+
+///*if optional parameters are given for output they to return information */
+//if(ISTATUS_U != NULL) { /* Check to see if ISTATUS_U is not NULL */
+//	for(i=0; i<20; i++) {
+//		ISTATUS_U[i] = ISTATUS[i];
+//	} /* end for */
+//} /* end if */
+//
+//if(RSTATUS_U != NULL) { /* Check to see if RSTATUS_U is not NULL */
+//	for(i=0; i<20; i++) {
+//		RSTATUS_U[i] = RSTATUS[i];
+//	} /* end for */
+//} /* end if */
+//
+//Ierr_U = Ierr;
+
+}
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+int SDIRK(int N, KPP_REAL Tinitial, KPP_REAL Tfinal, KPP_REAL Y[],
+	KPP_REAL RelTol[], KPP_REAL AbsTol[], KPP_REAL RCNTRL[],
+	int ICNTRL[], KPP_REAL RSTATUS[], int ISTATUS[])
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+    Solves the system y'=F(t,y) using a Singly-Diagonally-Implicit
+    Runge-Kutta (SDIRK) method.
+
+    This implementation is based on the book and the code Sdirk4:
+
+    E. Hairer and G. Wanner
+    "Solving ODEs II. Stiff and differential-algebraic problems".
+    Springer series in computational mathematics, Springer-Verlag, 1996.
+    This code is based on the SDIRK4 routine in the above book.
+
+    Methods:
+        * Sdirk 2a, 2b: L-stable, 2 stages, order 2
+        * Sdirk 3a:     L-stable, 3 stages, order 2, adjoint-invariant
+        * Sdirk 4a, 4b: L-stable, 5 stages, order 4
+
+    (C)  Adrian Sandu, July 2005
+    Virginia Polytechnic Institute and State University
+    Contact: sandu@cs.vt.edu
+    Revised by Philipp Miehe and Adrian Sandu, May 2006
+    Translation F90 to C by Paul Eller and Nicholas Hobbs, July 2006
+    This implementation is part of KPP - the Kinetic PreProcessor
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+~~~>  INPUT ARGUMENTS:
+
+   -     Y[NVAR]    = vector of initial conditions (at T=Tinitial)
+   -    [Tinitial,Tfinal]  = time range of integration
+        (if Tinitial>Tfinal the integration is performed backwards in time)
+   -    RelTol, AbsTol = user precribed accuracy
+   - SUBROUTINE ode_Fun( T, Y, Ydot ) = ODE function,
+        returns Ydot = Y' = F(T,Y)
+   - SUBROUTINE ode_Fun( T, Y, Ydot ) = Jacobian of the ODE function,
+        returns Jcb = dF/dY
+   -    ICNTRL[1:20]    = integer inputs parameters
+   -    RCNTRL[1:20]    = real inputs parameters
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+~~~>  OUTPUT ARGUMENTS:
+
+   -    Y[NVAR]         -> vector of final states (at T->Tfinal)
+   -    ISTATUS[1:20]   -> integer output parameters
+   -    RSTATUS[1:20]   -> real output parameters
+   -    Ierr            -> job status upon return
+                           success (positive value) or
+                           failure (negative value)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~>  INPUT PARAMETERS:
+    Note: For input parameters equal to zero the default values of the
+       corresponding variables are used.
+
+    Note: For input parameters equal to zero the default values of the
+       corresponding variables are used.
+~~~>
+    ICNTRL[0] = not used
+    ICNTRL[1] = 0: AbsTol, RelTol are NVAR-dimensional vectors
+                                           = 1: AbsTol, RelTol are scalars
+    ICNTRL[2] = Method
+    ICNTRL[3]  -> maximum number of integration steps
+            For ICNTRL[3]=0 the default value of 100000 is used
+    ICNTRL[4]  -> maximum number of Newton iterations
+        For ICNTRL(4)=0 the default value of 8 is used
+    ICNTRL[5]  -> starting values of Newton iterations:
+    ICNTRL[5]=0 : starting values are interpolated (the default)
+    ICNTRL[5]=1 : starting values are zero
+
+~~~>  Real parameters
+
+    RCNTRL[0]  -> Hmin, lower bound for the integration step size
+                  It is strongly recommended to keep Hmin = ZERO
+    RCNTRL[1]  -> Hmax, upper bound for the integration step size
+    RCNTRL[2]  -> Hstart, starting value for the integration step size
+    RCNTRL[3]  -> FacMin, lower bound on step decrease factor (default=0.2)
+    RCNTRL[4]  -> FacMax, upper bound on step increase factor (default=6)
+    RCNTRL[5]  -> FacRej, step decrease factor after multiple rejections
+                  (default=0.1)
+    RCNTRL[6]  -> FacSafe, by which the new step is slightly smaller
+                  than the predicted value  (default=0.9)
+    RCNTRL[7]  -> ThetaMin. If Newton convergence rate smaller
+                  than ThetaMin the Jacobian is not recomputed;
+                  (default=0.001)
+    RCNTRL[8]  -> NewtonTol, stopping criterion for Newton's method
+                  (default=0.03)
+    RCNTRL[9]  -> Qmin
+    RCNTRL[10] -> Qmax. If Qmin < Hnew/Hold < Qmax, then the
+                  step size is kept constant and the LU factorization
+                  reused (default Qmin=1, Qmax=1.2)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~>  OUTPUT PARAMETERS:
+   Note: each call to Rosenbrock adds the current no. of fcn calls
+   to previous value of ISTATUS(1), and similar for the other params.
+   Set ISTATUS(1:10) = 0 before call to avoid this accumulation.
+  ISTATUS[0] = No. of function calls
+  ISTATUS[1] = No. of jacobian calls
+  ISTATUS[2] = No. of steps
+  ISTATUS[3] = No. of accepted steps
+  ISTATUS[4] = No. of rejected steps (except at the beginning)
+  ISTATUS[5] = No. of LU decompositions
+  ISTATUS[6] = No. of forward/backward substitutions
+  ISTATUS[7] = No. of singular matrix decompositions
+  RSTATUS[0]  -> Texit, the time corresponding to the computed Y upon return
+  RSTATUS[1]  -> Hexit,last accepted step before return
+  RSTATUS[2]  -> Hnew, last predicted step before return
+  For multiple restarts, use Hnew as Hstart in the following run
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+{ 
+
+int Max_no_steps=0;
+
+/*~~~> Local variables      */
+int StartNewton;
+
+KPP_REAL  Hmin=0,
+	Hmax=0,
+	Hstart=0,
+	Roundoff,
+	FacMin=0,
+	FacMax=0,
+	FacSafe=0,
+	FacRej=0,
+	ThetaMin,
+	NewtonTol,
+	Qmin,
+	Qmax;
+
+int ITOL,
+	NewtonMaxit,
+	i,
+	Ierr = 0;
+
+/*~~~>  For Scalar tolerances (ICNTRL[1] !=0 )  the code uses AbsTol[1] and RelTol[1)
+    For Vector tolerances (ICNTRL[1] == 0) the code uses AbsTol[1:NVAR] and RelTol[1:NVAR] */
+if (ICNTRL[1]==0){
+	ITOL = 1;
+}
+else {
+	ITOL = 0;
+}  /* end if */
+
+/*~~~> ICNTRL[3] - method selection   */
+
+switch (ICNTRL[2]) {
+
+case 0: Sdirk2a();
+	break;
+
+case 1: Sdirk2a();
+	break;
+
+case 2: Sdirk2b();
+	break;
+
+case 3: Sdirk3a();
+	break;
+
+case 4: Sdirk4a();
+	break;
+
+case 5: Sdirk4b();
+	break;
+
+default: Sdirk2a();
+
+} /* end switch */
+
+/*~~~>   The maximum number of time steps admitted   */
+if (ICNTRL[3] == 0) {
+	Max_no_steps = 200000;
+}
+else if (ICNTRL[3] > 0) {
+	Max_no_steps = ICNTRL[3];
+}
+else {
+	printf("User-selected ICNTRL(4)=%d", ICNTRL[3]);
+	SDIRK_ErrorMsg(-1,Tinitial,ZERO,Ierr);
+} /*end if */
+
+/*~~~>The maximum number of Newton iterations admitted */
+if(ICNTRL[4]==0) {
+	NewtonMaxit = 8;
+}
+else {
+	NewtonMaxit=ICNTRL[4];
+	if(NewtonMaxit <=0) {
+		printf("User-selected ICNTRL(5)=%d", ICNTRL[4] );
+		SDIRK_ErrorMsg(-2,Tinitial,ZERO,Ierr);
+	}
+}
+
+/*~~~> StartNewton: Extrapolate for starting values of Newton iterations */
+if (ICNTRL[5] == 0) {
+	StartNewton = 1;
+}
+else {
+	StartNewton = 0;
+} /* end if */
+
+/*~~~>  Unit roundoff (1+Roundoff>1) */
+Roundoff = WLAMCH('E');
+
+/*~~~>  Lower bound on the step size: (positive value) */
+if (RCNTRL[0] == ZERO) {
+	Hmin = ZERO;
+}
+else if (RCNTRL[0] > ZERO) {
+	Hmin = RCNTRL[0];
+}
+else {
+	printf("User-selected RCNTRL[0]=%f", RCNTRL[0]);
+	SDIRK_ErrorMsg(-3,Tinitial,ZERO,Ierr);
+} /* end if */
+
+/*~~~>  Upper bound on the step size: (positive value) */
+if (RCNTRL[1] == ZERO) {
+	Hmax = ABS(Tfinal-Tinitial);
+}
+else if (RCNTRL[1] > ZERO) {
+	Hmax = MIN( ABS(RCNTRL[1]), ABS(Tfinal-Tinitial) );
+}
+else {
+	printf("User-selected RCNTRL[1]=%f", RCNTRL[1]);
+	SDIRK_ErrorMsg(-3,Tinitial,ZERO,Ierr);
+} /* end if */
+
+/*~~~>  Starting step size: (positive value) */
+if (RCNTRL[2] == ZERO) {
+	Hstart = MAX( Hmin, Roundoff);
+}
+else if (RCNTRL[2] > ZERO) {
+	Hstart = MIN( ABS(RCNTRL[2]), ABS(Tfinal-Tinitial) );
+}
+else {
+	printf("User-selected Hstart: RCNTRL[2]=%f", RCNTRL[2]);
+	SDIRK_ErrorMsg(-3,Tinitial,ZERO,Ierr);
+} /* end if */
+
+/*~~~>  Step size can be changed s.t.  FacMin < Hnew/Hexit < FacMax */
+if (RCNTRL[3] == ZERO) {
+	FacMin = (KPP_REAL)0.2;
+}
+else if (RCNTRL[3] > ZERO) {
+	FacMin = RCNTRL[3];
+}
+else {
+	printf("User-selected FacMin: RCNTRL[3]=%f", RCNTRL[3]);
+	SDIRK_ErrorMsg(-4,Tinitial,ZERO,Ierr);
+} /* end if */
+
+if (RCNTRL[4] == ZERO) {
+	FacMax = (KPP_REAL)10.0;
+}
+else if (RCNTRL[4] > ZERO) {
+	FacMax = RCNTRL[4];
+}
+else {
+	printf("User-selected FacMax: RCNTRL[4]=%f", RCNTRL[4]);
+	SDIRK_ErrorMsg(-4,Tinitial,ZERO,Ierr);
+} /* end if */
+
+/*~~~>   FacRej: Factor to decrease step after 2 succesive rejections */
+if (RCNTRL[5] == ZERO) {
+	FacRej = (KPP_REAL)0.1;
+}
+else if (RCNTRL[5] > ZERO) {
+	FacRej = RCNTRL[5];
+}
+else {
+	printf("User-selected FacRej: RCNTRL[5]=%f", RCNTRL[5]);
+	SDIRK_ErrorMsg(-4,Tinitial,ZERO,Ierr);
+} /*end if */
+
+/* ~~~>   FacSafe: Safety Factor in the computation of new step size  */
+if (RCNTRL[6] == ZERO) {
+	FacSafe = (KPP_REAL)0.9;
+}
+else if (RCNTRL[6] > ZERO) {
+	FacSafe = RCNTRL[6];
+}
+else {
+	printf("User-selected FacSafe: RCNTRL[6]=%f", RCNTRL[6]);
+	SDIRK_ErrorMsg(-4,Tinitial,ZERO,Ierr);
+} /* end if */
+
+/*~~~> ThetaMin: decides whether the Jacobian should be recomputed */
+if (RCNTRL[7] == ZERO) {
+	ThetaMin = (KPP_REAL)1.0e-03;
+}
+else {
+	ThetaMin = RCNTRL[7];
+} /* end if */
+
+/*~~~> Stopping criterion for Newton's method */
+if (RCNTRL[8] == ZERO) {
+	NewtonTol = (KPP_REAL)3.0e-02;
+}
+else {
+	NewtonTol = RCNTRL[8];
+} /* end if */
+
+/* ~~~> Qmin, Qmax: IF Qmin < Hnew/Hold < Qmax, STEP SIZE = CONST. */
+if (RCNTRL[9] == ZERO) {
+	Qmin = ONE;
+}
+else {
+	Qmin = RCNTRL[9];
+} /* end if */
+
+if (RCNTRL[10] == ZERO) {
+	Qmax = (KPP_REAL)1.2;
+}
+else {
+	Qmax = RCNTRL [10];
+} /* end if */
+
+/* ~~~>  Check if tolerances are reasonable */
+if (ITOL == 0) {
+	if ((AbsTol[0]<=ZERO || RelTol[0])<=(((KPP_REAL)10.0)*Roundoff)) {
+		SDIRK_ErrorMsg(-5,Tinitial,ZERO,Ierr);
+	} /* end internal if */
+}
+else {
+	for (i = 0; i < N; i++) {
+		if((AbsTol[i]<=ZERO)||(RelTol[i]<=((KPP_REAL)10.0)*Roundoff)){
+			SDIRK_ErrorMsg(-5,Tinitial,ZERO,Ierr);
+		} /* end internal if */
+	} /* end for */
+} /* end if */
+
+if (Ierr < 0) {
+	return Ierr;
+} /*end if */
+
+Ierr = SDIRK_Integrator(N, Tinitial, Tfinal, Y, Ierr, Hstart, Hmin, Hmax,
+	Roundoff, AbsTol, RelTol, ISTATUS, RSTATUS, ITOL, Max_no_steps,
+	StartNewton, NewtonTol, ThetaMin, FacSafe, FacMin, FacMax, FacRej,
+	Qmin, Qmax, NewtonMaxit);
+
+return Ierr;
+
+}  /* end of main SDIRK function */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+int SDIRK_Integrator(int N, KPP_REAL Tinitial, KPP_REAL Tfinal, KPP_REAL Y[], 
+	int Ierr, KPP_REAL Hstart, KPP_REAL Hmin, KPP_REAL Hmax, KPP_REAL Roundoff,
+	KPP_REAL AbsTol[], KPP_REAL RelTol[], int ISTATUS[], KPP_REAL RSTATUS[],
+	int ITOL, int Max_no_steps, int StartNewton, KPP_REAL NewtonTol,
+	KPP_REAL ThetaMin, KPP_REAL FacSafe, KPP_REAL FacMin, KPP_REAL FacMax,
+	KPP_REAL FacRej, KPP_REAL Qmin, KPP_REAL Qmax, int NewtonMaxit)
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+{
+
+/*~~~> Local variables:    */
+KPP_REAL Z[Smax][NVAR],
+	G[NVAR],
+	TMP[NVAR],
+	NewtonRate,
+	SCAL[NVAR],
+	RHS[NVAR],
+	T,
+	H,
+	Theta=0,
+	Hratio,
+	NewtonPredictedErr,
+	Qnewton,
+	Err=0,
+	Fac,
+	Hnew,
+	Tdirection,
+	NewtonIncrement=0,
+	NewtonIncrementOld=0;
+
+int IER=0,
+	istage,
+	NewtonIter,
+	IP[NVAR],
+	Reject,
+	FirstStep,
+	SkipJac,
+	SkipLU,
+	NewtonDone,
+	CycleTloop,
+	i,
+	j;
+
+#ifdef FULL_ALGEBRA
+	KPP_REAL FJAC[NVAR][NVAR];
+	KPP_REAL E[NVAR][NVAR];
+#else
+	KPP_REAL FJAC[LU_NONZERO];
+	KPP_REAL E[LU_NONZERO];
+#endif
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+/*~~~~>   Initializations              */
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+T = Tinitial;
+Tdirection = SIGN(ONE, Tfinal-Tinitial);
+H = MAX(ABS(Hmin), ABS(Hstart));
+
+if(ABS(H) <= ((KPP_REAL)10.0 * Roundoff)) {
+	H = (KPP_REAL)(1.0e-06);
+} /* end if */
+
+H = MIN(ABS(H), Hmax);
+H = SIGN(H, Tdirection);
+SkipLU = 0;
+SkipJac = 0;
+Reject = 0;
+FirstStep = 1;
+CycleTloop = 0;
+
+SDIRK_ErrorScale(N, ITOL, AbsTol, RelTol, Y, SCAL);
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+/*~~~>  Time loop begins                */
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+while((Tfinal-T)*Tdirection - Roundoff > ZERO) {  /* Tloop */
+
+/*~~~>  Compute E = 1/(h*gamma)-Jac and its LU decomposition */
+	if(SkipLU == 0) { /* This time around skip the Jac update and LU */
+		SDIRK_PrepareMatrix(H, T, Y, FJAC, SkipJac, SkipLU, E, IP, 
+			Reject, IER, ISTATUS);
+		if(IER != 0) {
+			SDIRK_ErrorMsg(-8, T, H, Ierr);
+		return Ierr;
+		} /* end if */
+	} /* end if */
+
+	if(ISTATUS[Nstp] > Max_no_steps) {
+		SDIRK_ErrorMsg(-6, T, H, Ierr);
+		return Ierr;
+	} /* end if */
+
+	if((T + ((KPP_REAL)0.1) * H == T) || (ABS(H) <= Roundoff)) {
+		SDIRK_ErrorMsg(-7, T, H, Ierr);
+		return Ierr;
+	} /* end if */
+
+/*stages*/ for(istage=0; istage < rkS; istage++) {
+		/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+		/*~~~>  Simplified Newton iterations          */
+		/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+		/*~~~>  Starting values for Newton iterations */
+		Set2Zero(N, &Z[istage][0]);
+
+	/*~~~>   Prepare the loop-independent part of the right-hand side */
+		Set2Zero(N, G);
+			if(istage > 0) {
+				for(j=0; j < istage; j++) {
+         				 WAXPY(N, rkTheta[j][istage], 
+						&Z[j][0], 1, G, 1);
+					if(StartNewton == 1) {
+						WAXPY(N, rkAlpha[j][istage],
+							&Z[j][0], 1, 
+							&Z[istage][0], 1);
+					} /* end if */
+				} /* end for */
+			} /* end if */
+
+	/*~~~>  Initializations for Newton iteration */
+		NewtonDone = 0; /* false */
+		Fac = (KPP_REAL)0.5; /* Step reduction factor */
+
+/*NewtonLoop*/	for(NewtonIter=0; NewtonIter<NewtonMaxit; NewtonIter++ ) {
+
+        /*~~~>  Prepare the loop-dependent part of the right-hand side */
+			WADD(N, Y, &Z[istage][0], TMP);
+			FUN_CHEM(T+rkC[istage]*H, TMP, RHS);
+			ISTATUS[Nfun]++;
+			WSCAL(N, H*rkGamma, RHS, 1);
+			WAXPY(N, -ONE, &Z[istage][0], 1, RHS, 1);
+			WAXPY(N, ONE, G, 1, RHS, 1 );
+
+	        /*~~~>   Solve the linear system  */
+			SDIRK_Solve(H, N, E, IP, IER, RHS, ISTATUS);
+
+		/*~~~>   Check convergence of Newton iterations */
+			NewtonIncrement = SDIRK_ErrorNorm(N, RHS, SCAL);
+
+			if(NewtonIter == 0) {
+				Theta = ABS(ThetaMin);
+				NewtonRate = (KPP_REAL)2.0;
+			}
+			else {
+				Theta = NewtonIncrement/NewtonIncrementOld;
+
+				if(Theta < (KPP_REAL)0.99) {
+					NewtonRate = Theta/(ONE-Theta);
+			/* Predict error at the end of Newton process */
+					NewtonPredictedErr = 	
+						(NewtonIncrement*pow(Theta,
+						(NewtonMaxit - (NewtonIter +
+						1)) / (ONE - Theta)));
+					if(NewtonPredictedErr >= NewtonTol) {
+		              /* Non-convergence of Newton: 
+				predicted error too large*/
+						Qnewton = MIN((KPP_REAL)10.0,
+							NewtonPredictedErr/
+							NewtonTol);
+						Fac = (KPP_REAL)0.8 * pow
+							(Qnewton, (-ONE / (1
+							+ NewtonMaxit -
+							NewtonIter + 1)));
+						break;
+					} /* end internal if */
+				}
+				else  /* Non-convergence of Newton: 
+					Theta too large */ {
+					break;
+				} /* end internal if else */
+			} /* end if else */
+
+			NewtonIncrementOld = NewtonIncrement;
+
+		/* Update solution: Z(:) <-- Z(:)+RHS(:) */
+			WAXPY(N, ONE, RHS, 1, &Z[istage][0], 1);
+
+		/* Check error in Newton iterations */
+			NewtonDone=(NewtonRate*NewtonIncrement<=NewtonTol);
+
+		        if(NewtonDone == 1) {
+				break;
+			}
+		} /* end NewtonLoop for */
+
+		if(NewtonDone == 0) {
+		/* CALL RK_ErrorMsg(-12,T,H,Ierr); */
+			H = Fac*H;
+			Reject = 1; /* true */
+			SkipJac = 1;/* true */
+			SkipLU = 0;/* false */
+			CycleTloop = 1; /* cycle Tloop */
+		} /* end if */
+
+		if(CycleTloop == 1) {
+			CycleTloop=0;
+			break;
+		}
+	} /* end stages for */
+
+	if(CycleTloop==0) {
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+/*~~~>  Error estimation      */
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+	ISTATUS[Nstp]++;
+	Set2Zero(N, TMP);
+
+	for(i=0; i<rkS; i++) {
+		if(rkE[i] != ZERO) {
+			WAXPY(N, rkE[i], &Z[i][0], 1, TMP, 1);
+		} /* end if */
+	} /* end for */
+
+	SDIRK_Solve(H, N, E, IP, IER, TMP, ISTATUS);
+	Err = SDIRK_ErrorNorm(N, TMP, SCAL);
+
+/*~~~~> Computation of new step size Hnew */
+	Fac = FacSafe * pow((Err), (-ONE/rkELO));
+	Fac = MAX(FacMin, MIN(FacMax, Fac));
+	Hnew = H*Fac;
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+/*~~~>  Accept/Reject step    */
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+	if(Err < ONE) { /*~~~> Step is accepted */
+		FirstStep = 0; /* false */
+		ISTATUS[Nacc]++;
+
+	/*~~~> Update time and solution */
+		T = T + H;
+
+        /* Y(:) <-- Y(:) + Sum_j rkD(j)*Z_j(:) */
+		for(i=0; i<rkS; i++) {
+			if(rkD[i] != ZERO) {
+				WAXPY(N, rkD[i], &Z[i][0], 1, Y, 1);
+			} /* end if */
+		} /* end for */
+
+	/*~~~> Update scaling coefficients */
+		SDIRK_ErrorScale(N, ITOL, AbsTol, RelTol, Y, SCAL);
+
+	/*~~~> Next time step */
+		Hnew = Tdirection*MIN(ABS(Hnew), Hmax);
+
+	/* Last T and H */
+		RSTATUS[Ntexit] = T;
+		RSTATUS[Nhexit] = H;
+		RSTATUS[Nhnew] = Hnew;
+
+	/* No step increase after a rejection */
+		if(Reject==1) {
+			Hnew = Tdirection*MIN(ABS(Hnew), ABS(H));
+		} /* end if */
+
+		Reject = 0; /* false */
+
+		if((T+Hnew/Qmin-Tfinal)*Tdirection > ZERO) {
+			H = Tfinal-T;
+		}
+		else {
+			Hratio = Hnew/H;
+		/* If step not changed too much keep Jacobian and reuse LU */
+			SkipLU = ((Theta <= ThetaMin) && (Hratio >= Qmin) && 
+				(Hratio <= Qmax));
+
+			if(SkipLU==0) {
+				H = Hnew;
+			} /* end internal if */
+		} /* end if else */
+
+		SkipJac = (Theta <= ThetaMin);
+		SkipJac = 0; /* false */
+		}
+		else { /*~~~> Step is rejected */
+			if((FirstStep==1) || (Reject==1)) {
+				H = FacRej * H;
+			}
+			else {
+				H = Hnew;
+			} /* end internal if */
+
+			Reject = 1;
+			SkipJac = 1;
+			SkipLU = 0;
+
+			if(ISTATUS[Nacc] >=1) {
+				ISTATUS[Nrej]++;
+			} /* end if */
+		} /* end if else */
+	} /* end CycleTloop if */
+} /* end Tloop */
+
+/* Successful return */
+Ierr = 1;
+return Ierr;
+
+} /* end SDIRK_Integrator */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void SDIRK_ErrorScale(int N, int ITOL, KPP_REAL AbsTol[], KPP_REAL RelTol[],
+			KPP_REAL Y[],KPP_REAL SCAL[])
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+{
+
+int i;
+if (ITOL == 0){
+	for (i = 0; i < NVAR; i++){
+		SCAL[i] = ONE / (AbsTol[0]+RelTol[0]*ABS(Y[i]) );
+	} /* end for */
+}
+else {
+	for (i = 0; i < NVAR; i++){
+		SCAL[i] = ONE / (AbsTol[i]+RelTol[i]*ABS(Y[i]) );
+	} /*  end for  */
+} /*  end if  */
+
+} /*  end SDIRK_ErrorScale  */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+KPP_REAL SDIRK_ErrorNorm(int N, KPP_REAL Y[], KPP_REAL SCAL[])
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+{
+
+int i;
+KPP_REAL Err = ZERO;
+
+for (i = 0; i < N; i++) {
+	Err = Err + pow( (Y[i]*SCAL[i]), 2);
+} /* end for */
+
+Err = MAX( SQRT(Err/(KPP_REAL)N), (KPP_REAL)1.0e-10);
+
+return Err;
+
+} /*  end SDIRK_ErrorNorm  */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+int SDIRK_ErrorMsg(int code, KPP_REAL T, KPP_REAL H, int Ierr)
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ *    Handles all error messages
+ *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+{
+
+Ierr = code;
+
+printf("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
+printf("\nForced exit from Sdirk due to the following error:\n");
+
+switch (code) {
+
+case -1:
+	printf("--> Improper value for maximal no of steps");
+	break;
+case -2:
+	printf("--> Selected Rosenbrock method not implemented");
+	break;
+case -3:
+	printf("--> Hmin/Hmax/Hstart must be positive");
+	break;
+case -4:
+	printf("--> FacMin/FacMax/FacRej must be positive");
+	break;
+case -5:
+	printf("--> Improper tolerance values");
+	break;
+case -6:
+	printf("--> No of steps exceeds maximum bound");
+	break;
+case -7:
+	printf("--> Step size too small (T + H/10 = T) or H < Roundoff");
+	break;
+case -8:
+	printf("--> Matrix is repeatedly singular");
+	break;
+default: /* causing an error */
+	printf("Unknown Error code: %d", code);
+
+} /*  end switch   */
+
+printf("\n   Time = %f and H = %f", T, H );
+printf("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
+
+return code;
+
+} /*  end SDIRK_ErrorMsg   */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void SDIRK_PrepareMatrix(KPP_REAL H, KPP_REAL T, KPP_REAL Y[], KPP_REAL FJAC[],
+			int SkipJac, int SkipLU, KPP_REAL E[], int IP[], 
+			int Reject, int ISING, int ISTATUS[] )
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ *  Compute the matrix E = 1/(H*GAMMA)*Jac, and its decomposition
+ *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+{
+
+KPP_REAL HGammaInv;
+int i, j;
+int ConsecutiveSng = 0;
+ISING = 1;
+
+
+while( ISING != 0) {
+	HGammaInv = ONE/(H*rkGamma);
+
+/*~~~>  Compute the Jacobian */
+	if(SkipJac==0) {
+		JAC_CHEM(T,Y,FJAC);
+		ISTATUS[Njac]++;
+	} /* end if */
+
+	#ifdef FULL_ALGEBRA
+		for(j=0; j<NVAR; j++) {
+			for(i=0; i<NVAR; i++) {
+				E[j][i] = -FJAC[j][i];
+			} /* end for */
+
+			E[j][j] = E[j][j] + HGammaInv;
+		} /* end for */
+
+		DGETRF(NVAR, NVAR, E, NVAR, IP, ISING);
+	#else
+		for(i=0; i<LU_NONZERO; i++) {
+			E[i] = -FJAC[i];
+		} /* end for */
+
+		for(i=0; i<NVAR; i++) {
+			j = LU_DIAG[i];
+			E[j]=E[j] + HGammaInv;
+		} /* end for */
+
+		ISING = KppDecomp(E);
+		IP[0] = 1;
+	#endif
+
+	ISTATUS[Ndec]++;
+
+	if(ISING != 0) {
+		ISTATUS[Nsng]++;
+		ConsecutiveSng++;
+
+		if(ConsecutiveSng >= 6) {
+			return; /* Failure */
+		} /* end internal if */
+
+		H = (KPP_REAL)(0.5) * H;
+		SkipJac = 1; /* true */
+		SkipLU = 0; /* false */
+		Reject = 1; /* true */
+	} /* end if */
+} /* end while */
+
+} /* end SDIRK_PrepareMatrix */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void SDIRK_Solve( KPP_REAL H, int N, KPP_REAL E[], int IP[], int ISING, 
+		KPP_REAL RHS[], int ISTATUS[] )
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ *  Solves the system (H*Gamma-Jac)*x = RHS
+ *      using the LU decomposition of E = I - 1/(H*Gamma)*Jac
+ *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+{
+
+KPP_REAL HGammaInv = ONE/(H * rkGamma);
+
+WSCAL(N, HGammaInv, RHS, 1);
+
+#ifdef FULL_ALGEBRA
+	DGETRS('N', N, 1, E, N, IP, RHS, N, ISING);
+#else
+	KppSolve(E, RHS);
+#endif
+	ISTATUS[Nsol]++;
+
+} /* end SDIRK_Solve */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void Sdirk4a()
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+{
+
+sdMethod = S4A;
+
+/* Number of stages */
+rkS = 5;
+
+/* Method Coefficients */
+rkGamma = (KPP_REAL)0.2666666666666666666666666666666667;
+
+rkA[0][0] = (KPP_REAL)0.2666666666666666666666666666666667;
+rkA[0][1] = (KPP_REAL)0.5000000000000000000000000000000000;
+rkA[1][1] = (KPP_REAL)0.2666666666666666666666666666666667;
+rkA[0][2] = (KPP_REAL)0.3541539528432732316227461858529820;
+rkA[1][2] = (KPP_REAL)(-0.5415395284327323162274618585298197e-01);
+rkA[2][2] = (KPP_REAL)0.2666666666666666666666666666666667;
+rkA[0][3] = (KPP_REAL)0.8515494131138652076337791881433756e-01;
+rkA[1][3] = (KPP_REAL)(-0.6484332287891555171683963466229754e-01);
+rkA[2][3] = (KPP_REAL)0.7915325296404206392428857585141242e-01;
+rkA[3][3] = (KPP_REAL)0.2666666666666666666666666666666667;
+rkA[0][4] = (KPP_REAL)2.100115700566932777970612055999074;
+rkA[1][4] = (KPP_REAL)(-0.7677800284445976813343102185062276);
+rkA[2][4] = (KPP_REAL)2.399816361080026398094746205273880;
+rkA[3][4] = (KPP_REAL)(-2.998818699869028161397714709433394);
+rkA[4][4] = (KPP_REAL)0.2666666666666666666666666666666667;
+rkB[0] = (KPP_REAL)2.100115700566932777970612055999074;
+rkB[1] = (KPP_REAL)(-0.7677800284445976813343102185062276);
+rkB[2] = (KPP_REAL)2.399816361080026398094746205273880;
+rkB[3] = (KPP_REAL)(-2.998818699869028161397714709433394);
+rkB[4] = (KPP_REAL)0.2666666666666666666666666666666667;
+
+rkBhat[0] = (KPP_REAL)2.885264204387193942183851612883390;
+rkBhat[1] = (KPP_REAL)(-0.1458793482962771337341223443218041);
+rkBhat[2] = (KPP_REAL)2.390008682465139866479830743628554;
+rkBhat[3] = (KPP_REAL)(-4.129393538556056674929560012190140);
+rkBhat[4] = ZERO;
+
+rkC[0] = (KPP_REAL)0.2666666666666666666666666666666667;
+rkC[1] = (KPP_REAL)0.7666666666666666666666666666666667;
+rkC[2] = (KPP_REAL)0.5666666666666666666666666666666667;
+rkC[3] = (KPP_REAL)0.3661315380631796996374935266701191;
+rkC[4] = ONE;
+
+/* Ynew = Yold + h*Sum_i {rkB_i*k_i} = Yold + Sum_i {rkD_i*Z_i} */
+rkD[0] = ZERO;
+rkD[1] = ZERO;
+rkD[2] = ZERO;
+rkD[3] = ZERO;
+rkD[4] = ONE;
+
+/* Err = h * Sum_i {(rkB_i-rkBhat_i)*k_i} = Sum_i {rkE_i*Z_i} */
+rkE[0] = (KPP_REAL)(-0.6804000050475287124787034884002302);
+rkE[1] = (KPP_REAL)(1.558961944525217193393931795738823);
+rkE[2] = (KPP_REAL)(-13.55893003128907927748632408763868);
+rkE[3] = (KPP_REAL)(15.48522576958521253098585004571302);
+rkE[4] = ONE;
+
+/* Local order of Err estimate */
+rkELO = 4;
+
+/* h*Sum_j {rkA_ij*k_j} = Sum_j {rkTheta_ij*Z_j} */
+rkTheta[0][1] = (KPP_REAL)1.875000000000000000000000000000000;
+rkTheta[0][2] = (KPP_REAL)1.708847304091539528432732316227462;
+rkTheta[1][2] = (KPP_REAL)(-0.2030773231622746185852981969486824);
+rkTheta[0][3] = (KPP_REAL)0.2680325578937783958847157206823118;
+rkTheta[1][3] = (KPP_REAL)(-0.1828840955527181631794050728644549);
+rkTheta[2][3] = (KPP_REAL)0.2968246986151577397160821594427966;
+rkTheta[0][4] = (KPP_REAL)0.9096171815241460655379433581446771;
+rkTheta[1][4] = (KPP_REAL)(-3.108254967778352416114774430509465);
+rkTheta[2][4] = (KPP_REAL)12.33727431701306195581826123274001;
+rkTheta[3][4] = (KPP_REAL)(-11.24557012450885560524143016037523);
+
+/* Starting value for Newton iterations: Z_i^0 = Sum_j {rkAlpha_ij*Z_j} */
+rkAlpha[0][1] = (KPP_REAL)2.875000000000000000000000000000000;
+rkAlpha[0][2] = (KPP_REAL)0.8500000000000000000000000000000000;
+rkAlpha[1][2] = (KPP_REAL)0.4434782608695652173913043478260870;
+rkAlpha[0][3] = (KPP_REAL)0.7352046091658870564637910527807370;
+rkAlpha[1][3] = (KPP_REAL)(-0.9525565003057343527941920657462074e-01);
+rkAlpha[2][3] = (KPP_REAL)0.4290111305453813852259481840631738;
+rkAlpha[0][4] = (KPP_REAL)(-16.10898993405067684831655675112808);
+rkAlpha[1][4] = (KPP_REAL)6.559571569643355712998131800797873;
+rkAlpha[2][4] = (KPP_REAL)(-15.90772144271326504260996815012482);
+rkAlpha[3][4] = (KPP_REAL)25.34908987169226073668861694892683;
+
+rkELO = (KPP_REAL)4.0;
+
+} /* end Sdirk4a */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void Sdirk4b()
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+{
+
+sdMethod = S4B;
+
+/* Number of stages */
+rkS = 5;
+
+/* Method coefficients */
+rkGamma = (KPP_REAL)0.25;
+
+rkA[0][0] = (KPP_REAL)0.25;
+rkA[0][1] = (KPP_REAL)0.5;
+rkA[1][1] = (KPP_REAL)0.25;
+rkA[0][2] = (KPP_REAL)0.34;
+rkA[1][2] = (KPP_REAL)(-0.40e-01);
+rkA[2][2] = (KPP_REAL)0.25;
+rkA[0][3] = (KPP_REAL)0.2727941176470588235294117647058824;
+rkA[1][3] = (KPP_REAL)(-0.5036764705882352941176470588235294e-01);
+rkA[2][3] = (KPP_REAL)0.2757352941176470588235294117647059e-01;
+rkA[3][3] = (KPP_REAL)0.25;
+rkA[0][4] = (KPP_REAL)1.041666666666666666666666666666667;
+rkA[1][4] = (KPP_REAL)(-1.020833333333333333333333333333333);
+rkA[2][4] = (KPP_REAL)7.812500000000000000000000000000000;
+rkA[3][4] = (KPP_REAL)(-7.083333333333333333333333333333333);
+rkA[4][4] = (KPP_REAL)0.25;
+
+rkB[0] = (KPP_REAL)1.041666666666666666666666666666667;
+rkB[1] = (KPP_REAL)(-1.020833333333333333333333333333333);
+rkB[2] = (KPP_REAL)7.812500000000000000000000000000000;
+rkB[3] = (KPP_REAL)(-7.083333333333333333333333333333333);
+rkB[4] = (KPP_REAL)0.250000000000000000000000000000000;
+
+rkBhat[0] = (KPP_REAL)1.069791666666666666666666666666667;
+rkBhat[1] = (KPP_REAL)(-0.894270833333333333333333333333333);
+rkBhat[2] = (KPP_REAL)7.695312500000000000000000000000000;
+rkBhat[3] = (KPP_REAL)(-7.083333333333333333333333333333333);
+rkBhat[4] = (KPP_REAL)0.212500000000000000000000000000000;
+
+rkC[0] = (KPP_REAL)0.25;
+rkC[1] = (KPP_REAL)0.75;
+rkC[2] = (KPP_REAL)0.55;
+rkC[3] = (KPP_REAL)0.5;
+rkC[4] = ONE;
+
+/* Ynew = Yold + h*Sum_i {rkB_i*k_i} = Yold + Sum_i {rkD_i*Z_i} */
+rkD[0] = ZERO;
+rkD[1] = ZERO;
+rkD[2] = ZERO;
+rkD[3] = ZERO;
+rkD[4] = ONE;
+
+/* Err = h * Sum_i {(rkB_i-rkBhat_i)*k_i} = Sum_i {rkE_i*Z_i} */
+rkE[0] = (KPP_REAL)0.5750;
+rkE[1] = (KPP_REAL)0.2125;
+rkE[2] = (KPP_REAL)(-4.6875);
+rkE[3] = (KPP_REAL)4.2500;
+rkE[4] = (KPP_REAL)0.1500;
+
+/* Local order of Err estimate */
+rkELO = 4;
+
+/* h*Sum_j {rkA_ij*k_j} = Sum_j {rkTheta_ij*Z_j} */
+rkTheta[0][1] = (KPP_REAL)2.0;
+rkTheta[0][2] = (KPP_REAL)1.680000000000000000000000000000000;
+rkTheta[1][2] = (KPP_REAL)(-0.1600000000000000000000000000000000);
+rkTheta[0][3] = (KPP_REAL)1.308823529411764705882352941176471;
+rkTheta[1][3] = (KPP_REAL)(-0.1838235294117647058823529411764706);
+rkTheta[2][3] = (KPP_REAL)0.1102941176470588235294117647058824;
+rkTheta[0][4] = (KPP_REAL)(-3.083333333333333333333333333333333);
+rkTheta[1][4] = (KPP_REAL)(-4.291666666666666666666666666666667);
+rkTheta[2][4] = (KPP_REAL)34.37500000000000000000000000000000;
+rkTheta[3][4] = (KPP_REAL)(-28.3333333333333333333333333333);
+
+/* Starting value for Newton iterations: Z_i^0 = Sum_j {rkAlpha_ij*Z_j} */
+rkAlpha[0][1] = (KPP_REAL)3.0;
+rkAlpha[0][2] = (KPP_REAL)0.8800000000000000000000000000000000;
+rkAlpha[1][2] = (KPP_REAL)0.4400000000000000000000000000000000;
+rkAlpha[0][3] = (KPP_REAL)0.1666666666666666666666666666666667;
+rkAlpha[1][3] = (KPP_REAL)(-0.8333333333333333333333333333333333e-01);
+rkAlpha[2][3] = (KPP_REAL)0.9469696969696969696969696969696970;
+rkAlpha[0][4] = (KPP_REAL)(-6.0);
+rkAlpha[1][4] = (KPP_REAL)9.0;
+rkAlpha[2][4] = (KPP_REAL)(-56.81818181818181818181818181818182);
+rkAlpha[3][4] = (KPP_REAL)54.0;
+
+} /* end Sdirk4b */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void Sdirk2a()
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+{
+
+sdMethod = S2A;
+
+/* ~~~> Number of stages    */
+rkS = 2;
+
+/* ~~~> Method coefficients    */
+rkGamma = (KPP_REAL)0.2928932188134524755991556378951510;
+rkA[0][0] = (KPP_REAL)0.2928932188134524755991556378951510;
+rkA[0][1] = (KPP_REAL)0.7071067811865475244008443621048490;
+rkA[1][1] = (KPP_REAL)0.2928932188134524755991556378951510;
+rkB[0] = (KPP_REAL)0.7071067811865475244008443621048490;
+rkB[1] = (KPP_REAL)0.2928932188134524755991556378951510;
+rkBhat[0] = (KPP_REAL)0.6666666666666666666666666666666667;
+rkBhat[1] = (KPP_REAL)0.3333333333333333333333333333333333;
+rkC[0] = (KPP_REAL)0.292893218813452475599155637895151;
+rkC[1] = ONE;
+
+/* ~~~> Ynew = Yold + h*Sum_i {rkB_i*k_i} = Yold + Sum_i {rkD_i*Z_i}    */
+rkD[0] = ZERO;
+rkD[1] = ONE;
+
+/* ~~~> Err = h * Sum_i {(rkB_i-rkBhat_i)*k_i} = Sum_i {rkE_i*Z_i}    */
+rkE[0] = (KPP_REAL)0.4714045207910316829338962414032326;
+rkE[1] = (KPP_REAL)(-0.1380711874576983496005629080698993);
+
+/* ~~~> Local order of Err estimate    */
+rkELO = 2;
+
+/* ~~~> h*Sum_j {rkA_ij*k_j} = Sum_j {rkTheta_ij*Z_j}    */
+rkTheta[0][1] = (KPP_REAL)2.414213562373095048801688724209698;
+
+/* ~~~> Starting value for Newton iterations */
+rkAlpha[0][1] = (KPP_REAL)3.414213562373095048801688724209698;
+
+} /* end Sdirk2a */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void Sdirk2b()
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+{
+
+sdMethod = S2B;
+
+/* ~~~> Number of stages    */
+rkS      = 2;
+
+/* ~~~> Method coefficients    */
+rkGamma = (KPP_REAL)1.707106781186547524400844362104849;
+rkA[0][0] = (KPP_REAL)1.707106781186547524400844362104849;
+rkA[0][1] = (KPP_REAL)(-0.707106781186547524400844362104849);
+rkA[1][1] = (KPP_REAL)1.707106781186547524400844362104849;
+rkB[0] = (KPP_REAL)(-0.707106781186547524400844362104849);
+rkB[1] = (KPP_REAL)1.707106781186547524400844362104849;
+rkBhat[0] = (KPP_REAL)0.6666666666666666666666666666666667;
+rkBhat[1] = (KPP_REAL)0.3333333333333333333333333333333333;
+rkC[0] = (KPP_REAL)1.707106781186547524400844362104849;
+rkC[1] = ONE;
+
+/* ~~~> Ynew = Yold + h*Sum_i {rkB_i*k_i} = Yold + Sum_i {rkD_i*Z_i}    */
+rkD[0] = ZERO;
+rkD[1] = ONE;
+
+/* ~~~> Err = h * Sum_i {(rkB_i-rkBhat_i)*k_i} = Sum_i {rkE_i*Z_i}    */
+rkE[0] = (KPP_REAL)(-0.4714045207910316829338962414032326);
+rkE[1] = (KPP_REAL)0.8047378541243650162672295747365659;
+
+/* ~~~> Local order of Err estimate    */
+rkELO = 2;
+
+/* ~~~> h*Sum_j {rkA_ij*k_j} = Sum_j {rkTheta_ij*Z_j}    */
+rkTheta[0][1] = (KPP_REAL)(-0.414213562373095048801688724209698);
+
+/* ~~~> Starting value for Newton iterations */
+rkAlpha[0][1] = (KPP_REAL)0.5857864376269049511983112757903019;
+
+} /* end Sdirk2b */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void Sdirk3a()
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+{
+
+sdMethod = S3A;
+
+/* ~~~> Number of stages    */
+rkS = 3;
+
+/* ~~~> Method coefficients    */
+rkGamma = (KPP_REAL)0.2113248654051871177454256097490213;
+rkA[0][0] = (KPP_REAL)0.2113248654051871177454256097490213;
+rkA[0][1] = (KPP_REAL)0.2113248654051871177454256097490213;
+rkA[1][1] = (KPP_REAL)0.2113248654051871177454256097490213;
+rkA[0][2] = (KPP_REAL)0.2113248654051871177454256097490213;
+rkA[1][2] = (KPP_REAL)0.5773502691896257645091487805019573;
+rkA[2][2] = (KPP_REAL)0.2113248654051871177454256097490213;
+rkB[0] = (KPP_REAL)0.2113248654051871177454256097490213;
+rkB[1] = (KPP_REAL)0.5773502691896257645091487805019573;
+rkB[2] = (KPP_REAL)0.2113248654051871177454256097490213;
+rkBhat[0]= (KPP_REAL)0.2113248654051871177454256097490213;
+rkBhat[1]= (KPP_REAL)0.6477918909913548037576239837516312;
+rkBhat[2]= (KPP_REAL)0.1408832436034580784969504064993475;
+rkC[0] = (KPP_REAL)0.2113248654051871177454256097490213;
+rkC[1] = (KPP_REAL)0.4226497308103742354908512194980427;
+rkC[2] = ONE;
+
+/* ~~~> Ynew = Yold + h*Sum_i {rkB_i*k_i} = Yold + Sum_i {rkD_i*Z_i}    */
+rkD[0] = ZERO;
+rkD[1] = ZERO;
+rkD[2] = ONE;
+
+/* ~~~> Err = h * Sum_i {(rkB_i-rkBhat_i)*k_i} = Sum_i {rkE_i*Z_i}    */
+rkE[0] = (KPP_REAL)0.9106836025229590978424821138352906;
+rkE[1] = (KPP_REAL)(-1.244016935856292431175815447168624);
+rkE[2] = (KPP_REAL)0.3333333333333333333333333333333333;
+
+/* ~~~> Local order of Err estimate    */
+rkELO    = 2;
+
+/* ~~~> h*Sum_j {rkA_ij*k_j} = Sum_j {rkTheta_ij*Z_j}    */
+rkTheta[0][1] =  ONE;
+rkTheta[0][2] = (KPP_REAL)(-1.732050807568877293527446341505872);
+rkTheta[1][2] = (KPP_REAL)2.732050807568877293527446341505872;
+
+/* ~~~> Starting value for Newton iterations */
+rkAlpha[0][1] = (KPP_REAL)2.0;
+rkAlpha[0][2] = (KPP_REAL)(-12.92820323027550917410978536602349);
+rkAlpha[1][2] = (KPP_REAL)8.83012701892219323381861585376468;
+
+} /* end Sdirk3a */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void FUN_CHEM(KPP_REAL T, KPP_REAL Y[], KPP_REAL P[])
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+{
+
+KPP_REAL Told;
+
+Told = TIME;
+TIME = T;
+Update_SUN();
+Update_RCONST();
+Fun( Y, FIX, RCONST, P );
+TIME = Told;
+
+
+}  /*  end FUN_CHEM  */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void JAC_CHEM(KPP_REAL T, KPP_REAL Y[], KPP_REAL JV[])
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+{
+
+KPP_REAL Told;
+
+#ifdef FULL_ALGEBRA
+	KPP_REAL JS[LU_NONZERO];
+	int i,j;
+#endif
+
+Told = TIME;
+TIME = T;
+Update_SUN();
+Update_RCONST();
+
+#ifdef FULL_ALGEBRA
+	Jac_SP( Y, FIX, RCONST, JS);
+
+	for(j=0; j<NVAR; j++) {
+		for(i=0; i<NVAR; i++) {
+			JV[j][i] = (KPP_REAL)0.0;
+		} /* end for */
+	} /* end for */
+
+	for(i=0; i<LU_NONZERO; i++) {
+		JV[LU_ICOL[i]][LU_IROW[i]] = JS[i];
+	} /* end for */
+#else
+	Jac_SP(Y, FIX, RCONST, JV);
+#endif
+
+TIME = Told;
+
+} /* end JAC_CHEM  */
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/sdirk.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/sdirk.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/sdirk.def	(revision 2696)
@@ -0,0 +1,20 @@
+ 
+#FUNCTION AGGREGATE
+#JACOBIAN SPARSE_LU_ROW
+
+#DOUBLE ON 
+#INTFILE sdirk
+
+#INLINE F77_GLOBAL
+      REAL*8 STEPSTART
+      COMMON /GDATA/ STEPSTART
+#ENDINLINE
+
+#INLINE F77_INIT
+        STEPMIN=0.0001
+        STEPMAX=3600.
+        STEPSTART=STEPMIN
+#ENDINLINE
+
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/sdirk.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/sdirk.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/sdirk.f	(revision 2696)
@@ -0,0 +1,705 @@
+      SUBROUTINE INTEGRATE( TIN, TOUT )
+
+      IMPLICIT KPP_REAL (A-H,O-Z)	 
+      INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Global.h'
+
+C TIN - Start Time
+      KPP_REAL TIN
+C TOUT - End Time
+      KPP_REAL TOUT
+      INTEGER i 
+
+      PARAMETER (LWORK=2*NVAR*NVAR+12*NVAR+7,LIWORK=2*NVAR+7)
+      PARAMETER (LRCONT=5*NVAR+2)
+
+      KPP_REAL WORK(LWORK)
+      INTEGER IWORK(LIWORK)   
+      COMMON /CONT/ ICONT(4),RCONT(LRCONT)
+      EXTERNAL FUNC_CHEM,JAC_CHEM
+
+      ITOL=1     ! --- VECTOR TOLERANCES
+      IJAC=1     ! --- COMPUTE THE JACOBIAN ANALYTICALLY
+      IMAS=0     ! --- DIFFERENTIAL EQUATION IS IN EXPLICIT FORM
+
+      DO i=1,20
+        IWORK(i) = 0
+        WORK(i) = 0.D0
+      ENDDO
+      
+      IWORK(3) = 8
+
+      CALL ATMSDIRK(NVAR,FUNC_CHEM,TIN,VAR,TOUT,STEPMIN,     
+     &                  RTOL,ATOL,ITOL,     
+     &                  JAC_CHEM ,IJAC, FUNC_CHEM ,IMAS,                   
+     &                  WORK,LWORK,IWORK,LIWORK,LRCONT,IDID)        
+
+      IF (IDID.LT.0) THEN
+        print *,'ATMSDIRK: Unsucessfull exit at T=',
+     &          TIN,' (IDID=',IDID,')'
+      ENDIF
+
+      RETURN
+      END
+
+
+      SUBROUTINE ATMSDIRK(N,FCN,X,Y,XEND,H,
+     &                  RelTol,AbsTol,ITOL,
+     &                  JAC ,IJAC, MAS ,IMAS,
+     &                  WORK,LWORK,IWORK,LIWORK,LRCONT,IDID)
+C ----------------------------------------------------------
+C *** *** *** *** *** *** *** *** *** *** *** *** ***
+C          DECLARATIONS 
+C *** *** *** *** *** *** *** *** *** *** *** *** *** 
+      IMPLICIT KPP_REAL (A-H,O-Z)
+      DIMENSION Y(N),AbsTol(1),RelTol(1),WORK(LWORK),IWORK(LIWORK)
+      LOGICAL IMPLCT,JBAND,ARRET
+      EXTERNAL FCN,JAC,MAS
+      COMMON/STAT/NFCN,NJAC,NSTEP,NACCPT,NREJCT,NDEC,NSOL
+
+C *** *** *** *** *** *** ***
+C        SETTING THE PARAMETERS 
+C *** *** *** *** *** *** ***
+       NFCN=0
+       NJAC=0
+       NSTEP=0
+       NACCPT=0
+       NREJCT=0
+       NDEC=0
+       NSOL=0
+       ARRET=.FALSE.
+C -------- SWITCH FOR TRANSFORMATION OF JACOBIAN TO HESS_CHEM FORM ---
+      NHESS1 = 0         ! ADRIAN
+C -------- NMAX , THE MAXIMAL NUMBER OF STEPS -----
+      IF(IWORK(2).EQ.0)THEN
+         NMAX=100000
+      ELSE
+         NMAX=IWORK(2)
+         IF(NMAX.LE.0)THEN
+            WRITE(6,*)' WRONG INPUT IWORK(2)=',IWORK(2)
+            ARRET=.TRUE.
+         END IF
+      END IF
+C -------- NIT    MAXIMAL NUMBER OF NEWTON ITERATIONS
+      IF(IWORK(3).EQ.0)THEN
+         NIT=8
+      ELSE
+         NIT=IWORK(3)
+         IF(NIT.LE.0)THEN
+            WRITE(6,*)' CURIOUS INPUT IWORK(3)=',IWORK(3)
+            ARRET=.TRUE.
+         END IF
+      END IF
+C -------- METH    SWITCH FOR THE COEFFICIENTS OF THE METHOD 
+      METH = 2
+C -------- UROUND   SMALLEST NUMBER SATISFYING 1.D0+UROUND>1.D0  
+      IF(WORK(1).EQ.0.D0)THEN
+         UROUND=1.D-16
+      ELSE
+         UROUND=WORK(1)
+         IF(UROUND.LE.1.D-19.OR.UROUND.GE.1.D0)THEN
+            WRITE(6,*)' COEFFICIENTS HAVE 20 DIGITS, UROUND=',WORK(1)
+            ARRET=.TRUE.
+         END IF
+      END IF
+C --------- SAFE     SAFETY FACTOR IN STEP SIZE PREDICTION
+      IF(WORK(2).EQ.0.D0)THEN
+         SAFE=0.9D0
+      ELSE
+         SAFE=WORK(2)
+         IF(SAFE.LE..001D0.OR.SAFE.GE.1.D0)THEN
+            WRITE(6,*)' CURIOUS INPUT FOR WORK(2)=',WORK(2)
+            ARRET=.TRUE.
+         END IF
+      END IF
+C ------ THET     DECIDES WHETHER THE JACOBIAN SHOULD BE RECOMPUTED;
+      IF(WORK(3).EQ.0.D0)THEN
+         THET=0.001D0
+      ELSE
+         THET=WORK(3)
+      END IF
+C --- FNEWT   STOPPING CRIERION FOR NEWTON'S METHOD, USUALLY CHOSEN <1.
+      IF(WORK(4).EQ.0.D0)THEN
+         FNEWT=0.03D0
+      ELSE
+         FNEWT=WORK(4)
+      END IF
+C --- QUOT1 AND QUOT2: IF QUOT1 < HNEW/HOLD < QUOT2, STEP SIZE = CONST.
+      IF(WORK(5).EQ.0.D0)THEN
+         QUOT1=1.D0
+      ELSE
+         QUOT1=WORK(5)
+      END IF
+      IF(WORK(6).EQ.0.D0)THEN
+         QUOT2=1.2D0
+      ELSE
+         QUOT2=WORK(6)
+      END IF
+C -------- MAXIMAL STEP SIZE
+      IF(WORK(7).EQ.0.D0)THEN
+         HMAX=XEND-X
+      ELSE
+         HMAX=WORK(7)
+      END IF
+C --------- CHECK IF TOLERANCES ARE O.K.
+      IF (ITOL.EQ.0) THEN
+          IF (AbsTol(1).LE.0.D0.OR.RelTol(1).LE.10.D0*UROUND) THEN
+              WRITE (6,*) ' TOLERANCES ARE TOO SMALL'
+              ARRET=.TRUE.
+          END IF
+      ELSE
+          DO 15 I=1,N
+          IF (AbsTol(I).LE.0.D0.OR.RelTol(I).LE.10.D0*UROUND) THEN
+              WRITE (6,*) ' TOLERANCES(',I,') ARE TOO SMALL'
+              ARRET=.TRUE.
+          END IF
+  15      CONTINUE
+      END IF
+
+C *** *** *** *** *** *** *** *** *** *** *** *** ***
+C         COMPUTATION OF ARRAY ENTRIES
+C *** *** *** *** *** *** *** *** *** *** *** *** ***
+C ---- IMPLICIT, BANDED OR NOT ?
+      IMPLCT=IMAS.NE.0
+      ARRET=.FALSE.
+C -------- COMPUTATION OF THE ROW-DIMENSIONS OF THE 2-ARRAYS ---
+C -- JACOBIAN 
+         LDJAC=N
+C -- MATRIX E FOR LINEAR ALGEBRA
+         LDE=N
+C -- MASS MATRIX
+      IF (IMPLCT) THEN
+          print *,'IMPLCT 1'
+      ELSE
+          LDMAS=0
+      END IF
+      LDMAS2=MAX(1,LDMAS)
+
+C ------- PREPARE THE ENTRY-POINTS FOR THE ARRAYS IN WORK -----
+      IEYHAT=8
+      IEZ=IEYHAT+N
+      IEY0=IEZ+N
+      IEZ1=IEY0+N
+      IEZ2=IEZ1+N
+      IEZ3=IEZ2+N
+      IEZ4=IEZ3+N
+      IEZ5=IEZ4+N
+      IESCAL=IEZ5+N
+      IEF1=IESCAL+N
+      IEG1=IEF1+N
+      IEH1=IEG1+N
+      IEJAC=IEH1+N
+      IEMAS=IEJAC+N*LDJAC
+      IEE=IEMAS+N*LDMAS
+
+C ------ TOTAL STORAGE REQUIREMENT -----------
+      ISTORE=IEE+N*LDE-1
+      IF(ISTORE.GT.LWORK)THEN
+         WRITE(6,*)' INSUFFICIENT STORAGE FOR WORK, MIN. LWORK=',ISTORE
+         ARRET=.TRUE.
+      END IF
+C ------- ENTRY POINTS FOR INTEGER WORKSPACE -----
+      IEIP=5
+      IEHES=IEIP+N
+C --------- TOTAL REQUIREMENT ---------------
+      ISTORE=IEHES+N-1
+      IF(ISTORE.GT.LIWORK)THEN
+         WRITE(6,*)' INSUFF. STORAGE FOR IWORK, MIN. LIWORK=',ISTORE
+         ARRET=.TRUE.
+      END IF
+C --------- CONTROL OF LENGTH OF COMMON BLOCK "CONT" -------
+      IF(LRCONT.LT.(5*N+2))THEN
+         WRITE(6,*)' INSUFF. STORAGE FOR RCONT, MIN. LRCONT=',5*N+2
+         ARRET=.TRUE.
+      END IF
+C ------ WHEN A FAIL HAS OCCURED, WE RETURN WITH IDID=-1
+      IF (ARRET) THEN
+         IDID=-1
+         RETURN
+      END IF
+C -------- CALL TO CORE INTEGRATOR ------------
+      CALL SDICOR(N,FCN,X,Y,XEND,HMAX,H,RelTol,AbsTol,ITOL,
+     &   JAC,IJAC,MLJAC,MUJAC,MAS,MLMAS,MUMAS,IOUT,IDID,
+     &   NMAX,UROUND,SAFE,THET,FNEWT,QUOT1,QUOT2,NIT,METH,NHESS1,
+     &   IMPLCT,JBAND,LDJAC,LDE,LDMAS2,
+     &   WORK(IEYHAT),WORK(IEZ),WORK(IEY0),WORK(IEZ1),WORK(IEZ2),
+     &   WORK(IEZ3),WORK(IEZ4),WORK(IEZ5),WORK(IESCAL),WORK(IEF1),
+     &   WORK(IEG1),WORK(IEH1),WORK(IEJAC),WORK(IEE),
+     &   WORK(IEMAS),IWORK(IEIP),IWORK(IEHES))
+C ----------- RETURN -----------
+      RETURN
+      END
+C
+C
+C
+C  ----- ... AND HERE IS THE CORE INTEGRATOR  ----------
+C
+      SUBROUTINE SDICOR(N,FCN,X,Y,XEND,HMAX,H,RelTol,AbsTol,ITOL,
+     &   JAC,IJAC,MLJAC,MUJAC,MAS,MLMAS,MUMAS,IOUT,IDID,
+     &   NMAX,UROUND,SAFE,THET,FNEWT,QUOT1,QUOT2,NIT,METH,NHESS1,
+     &   IMPLCT,BANDED,LDJAC,LE,LDMAS,
+     &   YHAT,Z,Y0,Z1,Z2,Z3,Z4,Z5,SCAL,F1,G1,H1,FJAC,E,FMAS,IP,IPHES)
+C ----------------------------------------------------------
+C     CORE INTEGRATOR FOR SDIRK4
+C     PARAMETERS SAME AS IN SDIRK4 WITH WORKSPACE ADDED 
+C ---------------------------------------------------------- 
+C         DECLARATIONS 
+C ---------------------------------------------------------- 
+      IMPLICIT KPP_REAL (A-H,O-Z)
+      INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Sparse.h'
+      KPP_REAL Y(N),YHAT(N),Z(N),Y0(N),Z1(N),Z2(N),Z3(N),Z4(N),Z5(N)
+      KPP_REAL SCAL(N),F1(N),G1(N),H1(N)
+      KPP_REAL FJAC(LU_NONZERO),E(LU_NONZERO),FMAS(LDMAS,N)
+      KPP_REAL AbsTol(1),RelTol(1)
+      INTEGER IP(N),IPHES(N)
+      LOGICAL REJECT,FIRST,IMPLCT,BANDED,CALJAC,NEWTRE
+      COMMON /CONT/NN,NN2,NN3,NN4,XOLD,HSOL,CONT(5*NVAR)
+      COMMON/STAT/NFCN,NJAC,NSTEP,NACCPT,NREJCT,NDEC,NSOL
+      EXTERNAL MAS, FCN, JAC
+
+C *** *** *** *** *** *** ***
+C  INITIALISATIONS
+C *** *** *** *** *** *** ***
+
+C --------- DUPLIFY N FOR COMMON BLOCK CONT -----
+      NN=N
+      NN2=2*N
+      NN3=3*N
+      NN4=4*N
+
+C ------- COMPUTE MASS MATRIX FOR IMPLICIT CASE ----------
+      IF(IMPLCT) CALL MAS(N,FMAS,LDMAS)
+
+C ---------- CONSTANTS ---------
+      MBDIAG=MUMAS+1
+      IF (METH.EQ.2) THEN
+C ---------- METHOD WITH GAMMA = 4/15 ---------------
+          GAMMA=4.0D0/15.0D0
+          C2=23.0D0/30.0D0
+          C3=17.0D0/30.0D0
+          C4=2881.0D0/28965.0D0+GAMMA
+          ALPH21=15.0D0/8.0D0
+          ALPH31=1577061.0D0/922880.0D0
+          ALPH32=-23427.0D0/115360.0D0
+          ALPH41=647163682356923881.0D0/2414496535205978880.0D0
+          ALPH42=-593512117011179.0D0/3245291041943520.0D0
+          ALPH43=559907973726451.0D0/1886325418129671.0D0
+          ALPH51=724545451.0D0/796538880.0D0
+          ALPH52=-830832077.0D0/267298560.0D0
+          ALPH53=30957577.0D0/2509272.0D0
+          ALPH54=-69863904375173.0D0/6212571137048.0D0
+          E1=7752107607.0D0/11393456128.0D0
+          E2=-17881415427.0D0/11470078208.0D0
+          E3=2433277665.0D0/179459416.0D0
+          E4=-96203066666797.0D0/6212571137048.0D0
+          D11= 24.74416644927758D0
+          D12= -4.325375951824688D0
+          D13= 41.39683763286316D0
+          D14= -61.04144619901784D0
+          D15= -3.391332232917013D0
+          D21= -51.98245719616925D0
+          D22= 10.52501981094525D0
+          D23= -154.2067922191855D0
+          D24= 214.3082125319825D0
+          D25= 14.71166018088679D0
+          D31= 33.14347947522142D0
+          D32= -19.72986789558523D0
+          D33= 230.4878502285804D0
+          D34= -287.6629744338197D0
+          D35= -18.99932366302254D0
+          D41= -5.905188728329743D0
+          D42= 13.53022403646467D0
+          D43= -117.6778956422581D0
+          D44= 134.3962081008550D0
+          D45= 8.678995715052762D0
+         ETA1=23.D0/8.D0
+         ANU1= 0.9838473040915402D0
+         ANU2= 0.3969226768377252D0
+         AMU1= 0.6563374010466914D0
+         AMU3= 0.3372498196189311D0
+      ELSE
+         PRINT *, 'WRONG  CHOICE OF <METH>'
+      END IF
+      POSNEG=SIGN(1.D0,XEND-X)
+      HMAX1=MIN(ABS(HMAX),ABS(XEND-X))
+      IF (ABS(H).LE.10.D0*UROUND) H=1.0D-6
+      H=MIN(ABS(H),HMAX1) 
+      H=SIGN(H,POSNEG) 
+      HOLD=H
+      CFAC=SAFE*(1+2*NIT)
+      NEWTRE=.FALSE.
+      REJECT=.FALSE.
+      FIRST=.TRUE.
+      FACCO1=1.D0
+      FACCO2=1.D0
+      FACCO3=1.D0
+      FACCO4=1.D0
+      FACCO5=1.D0
+      NSING=0
+      XOLD=X
+      IF (ITOL.EQ.0) THEN
+          DO 8 I=1,N
+   8      SCAL(I)=1.D0 / ( AbsTol(1)+RelTol(1)*DABS(Y(I)) )
+      ELSE
+          DO 9 I=1,N
+   9      SCAL(I)=1.D0 / ( AbsTol(I)+RelTol(I)*DABS(Y(I)) )
+      END IF
+
+C --- BASIC INTEGRATION STEP  
+  10  CONTINUE
+
+C *** *** *** *** *** *** ***
+C  COMPUTATION OF THE JACOBIAN
+C *** *** *** *** *** *** ***
+      NJAC=NJAC+1
+      CALL JAC(N,X,Y,FJAC)
+      CALJAC=.TRUE.
+  20  CONTINUE
+
+C *** *** *** *** *** *** ***
+C  COMPUTE THE MATRIX E AND ITS DECOMPOSITION
+C *** *** *** *** *** *** ***
+      FAC1=1.D0/(H*GAMMA)
+      IF (IMPLCT) THEN
+         print *, 'IMPLCT 4'
+      ELSE  ! EXPLICIT SYSTEM
+C --- THE MATRIX E (MAS=IDENTITY, JACOBIAN A FULL MATRIX)
+c         DO 526 J=1,N
+c           DO 525 I=1,N
+c 525         E(I,J)=-FJAC(I,J)
+c 526       E(J,J)=E(J,J)+FAC1
+c         CALL DEC(N,LE,E,IP,IER)
+          DO K=1,LU_NONZERO
+             E(K) = -FJAC(K)
+          END DO
+          DO I=1,N
+             IDG = LU_DIAG(I)
+             E(IDG) = E(IDG) + FAC1
+          END DO
+          CALL KppDecomp ( E, IER)
+          
+         IF (IER.NE.0) GOTO 79 
+      END IF
+      NDEC=NDEC+1
+  30  CONTINUE
+
+      IF (NSTEP.GT.NMAX.OR.X+.1D0*H.EQ.X.OR.ABS(H).LE.UROUND) GOTO 79
+      XPH=X+H
+C --- LOOP FOR THE 5 STAGES
+      FACCO1=DMAX1(FACCO1,UROUND)**0.8D0
+      FACCO2=DMAX1(FACCO2,UROUND)**0.8D0
+      FACCO3=DMAX1(FACCO3,UROUND)**0.8D0
+      FACCO4=DMAX1(FACCO4,UROUND)**0.8D0
+      FACCO5=DMAX1(FACCO5,UROUND)**0.8D0
+
+C *** *** *** *** *** *** ***
+C  STARTING VALUES FOR NEWTON ITERATION
+C *** *** *** *** *** *** ***
+      DO 59 ISTAGE=1,5
+      IF (ISTAGE.EQ.1) THEN
+          XCH=X+GAMMA*H
+          IF (FIRST.OR.NEWTRE) THEN
+              DO 132 I=1,N
+ 132          Z(I)=0.D0
+          ELSE
+              S=1.D0+GAMMA*H/HOLD
+              DO 232 I=1,N
+c  232          Z(I) = 0.D0
+ 232          Z(I)=S*(CONT(I+NN)+S*(CONT(I+NN2)+S*(CONT(I+NN3)
+     &             +S*CONT(I+NN4))))-YHAT(I)
+
+          END IF
+          DO 31 I=1,N
+  31      G1(I)=0.D0 
+          FACCON=FACCO1
+      END IF
+      IF (ISTAGE.EQ.2) THEN
+          XCH=X+C2*H
+          DO 131 I=1,N
+          Z1I=Z1(I)
+          Z(I)=ETA1*Z1I
+ 131      G1(I)=ALPH21*Z1I
+          FACCON=FACCO2
+      END IF
+      IF (ISTAGE.EQ.3) THEN
+          XCH=X+C3*H
+          DO 231 I=1,N
+          Z1I=Z1(I)
+          Z2I=Z2(I)
+          Z(I)=ANU1*Z1I+ANU2*Z2I
+ 231      G1(I)=ALPH31*Z1I+ALPH32*Z2I
+          FACCON=FACCO3
+      END IF
+      IF (ISTAGE.EQ.4) THEN
+          XCH=X+C4*H
+          DO 331 I=1,N
+          Z1I=Z1(I)
+          Z3I=Z3(I)
+          Z(I)=AMU1*Z1I+AMU3*Z3I
+ 331      G1(I)=ALPH41*Z1I+ALPH42*Z2(I)+ALPH43*Z3I
+          FACCON=FACCO4
+      END IF
+      IF (ISTAGE.EQ.5) THEN
+          XCH=XPH
+          DO 431 I=1,N
+          Z1I=Z1(I)
+          Z2I=Z2(I)
+          Z3I=Z3(I)
+          Z4I=Z4(I)
+          Z(I)=E1*Z1I+E2*Z2I+E3*Z3I+E4*Z4I
+          YHAT(I)=Z(I)
+ 431      G1(I)=ALPH51*Z1I+ALPH52*Z2I+ALPH53*Z3I+ALPH54*Z4I
+          FACCON=FACCO5
+      END IF
+
+
+
+C *** *** *** *** *** *** *** *** *** *** ***
+C  LOOP FOR THE SIMPLIFIED NEWTON ITERATION
+C *** *** *** *** *** *** *** *** *** *** ***
+            NEWT=0
+            THETA=ABS(THET)
+            IF (REJECT) THETA=2*ABS(THET)
+  40        CONTINUE
+            IF (NEWT.GE.NIT) THEN
+                H=H/2.D0
+                REJECT=.TRUE.
+                NEWTRE=.TRUE.
+                IF (CALJAC) GOTO 20
+                GOTO 10
+            END IF
+
+C ---     COMPUTE THE RIGHT-HAND SIDE
+            DO 41 I=1,N
+            H1(I)=G1(I)-Z(I)
+  41        CONT(I)=Y(I)+Z(I)
+            CALL FCN(N,XCH,CONT,F1)
+            NFCN=NFCN+1
+
+C ---     KppSolve THE LINEAR SYSTEMS
+            IF (IMPLCT) THEN
+                print *, 'IMPLCT 2'
+            ELSE
+                DO 345 I=1,N
+ 345            F1(I)=H1(I)*FAC1+F1(I)
+C                CALL SOL(N,LE,E,F1,IP)
+                CALL KppSolve(E, F1)
+            END IF
+            NEWT=NEWT+1
+            DYNO=0.D0
+C --- NORM 2 ---
+            DO 57 I=1,N
+  57        DYNO=DYNO+(F1(I)*SCAL(I))**2
+            DYNO=DSQRT(DYNO/N)
+C --- NORM INF ---
+C            DO 57 I=1,N
+C  57        DYNO=DMAX1( DYNO, DABS(F1(I)*SCAL(I)) )
+
+
+C ---     BAD CONVERGENCE OR NUMBER OF ITERATIONS TO LARGE
+            IF (NEWT.GE.2.AND.NEWT.LT.NIT) THEN
+                THETA=DYNO/DYNOLD
+                IF (THETA.LT.0.99D0) THEN
+                    FACCON=THETA/(1.0D0-THETA)
+                    DYTH=FACCON*DYNO*THETA**(NIT-1-NEWT)
+                    QNEWT=DMAX1(1.0D-4,DMIN1(16.0D0,DYTH/FNEWT))
+                    IF (QNEWT.GE.1.0D0) THEN
+                         H=.8D0*H*QNEWT**(-1.0D0/(NIT-NEWT))
+                         REJECT=.TRUE.
+                         NEWTRE=.TRUE.
+                         IF (CALJAC) GOTO 20
+                         GOTO 10
+                    END IF
+                ELSE
+                    NEWTRE=.TRUE.
+                    GOTO 78
+                END IF
+            END IF
+            DYNOLD=DYNO
+            DO 58 I=1,N
+  58        Z(I)=Z(I)+F1(I)
+            NSOL=NSOL+1
+            IF (FACCON*DYNO.GT.FNEWT) GOTO 40
+
+C --- END OF SIMPILFIED NEWTON
+      IF (ISTAGE.EQ.1) THEN
+          DO I=1,N
+            Z1(I) = Z(I)
+          END DO  
+          FACCO1=FACCON
+      END IF
+      IF (ISTAGE.EQ.2) THEN
+          DO I=1,N
+            Z2(I) = Z(I)
+          END DO  
+          FACCO2=FACCON
+      END IF
+      IF (ISTAGE.EQ.3) THEN
+          DO I=1,N
+            Z3(I) = Z(I)
+          END DO  
+          FACCO3=FACCON
+      END IF
+      IF (ISTAGE.EQ.4) THEN
+          DO I=1,N
+            Z4(I) = Z(I)
+          END DO  
+          FACCO4=FACCON
+      END IF
+      IF (ISTAGE.EQ.5) THEN
+          DO I=1,N
+            Z5(I) = Z(I)
+          END DO  
+          FACCO5=FACCON
+      END IF
+  59  CONTINUE
+
+
+C *** *** *** *** *** *** ***
+C  ERROR ESTIMATION  
+C *** *** *** *** *** *** ***
+      NSTEP=NSTEP+1
+      IF (IMPLCT) THEN
+          print *,'IMPLCT 3'
+      ELSE
+          DO 461 I=1,N 
+ 461      CONT(I)=FAC1*(Z5(I)-YHAT(I))
+      END IF
+
+      CALL KppSolve(E, CONT)
+
+      ERR=0.D0
+C ---- NORM 2 ---
+      DO 64 I=1,N
+  64  ERR=ERR+(CONT(I)*SCAL(I))**2
+      ERR=DMAX1(DSQRT(ERR/N),1.D-10)
+
+C ---- NORM INF ---
+C      DO 64 I=1,N
+c  64  ERR=DMAX1( ERR, DABS( CONT(I)*SCAL(I) ) )
+
+C --- COMPUTATION OF HNEW
+C --- WE REQUIRE .25<=HNEW/H<=10.
+      FAC=DMIN1(SAFE,CFAC/(NEWT+2*NIT))
+      QUOT=DMAX1(.25D0,DMIN1(10.D0,(ERR)**.25D0/FAC))
+      HNEW= H/QUOT
+
+C *** *** *** *** *** *** ***
+C  IS THE ERROR SMALL ENOUGH ?
+C *** *** *** *** *** *** ***
+      IF (ERR.LT.1.D0) THEN
+C --- STEP IS ACCEPTED  
+         FIRST=.FALSE.
+         NACCPT=NACCPT+1
+         HOLD=H
+         XOLD=X
+C --- COEFFICIENTS FOR CONTINUOUS SOLUTION
+         DO 74 I=1,N 
+          Z1I=Z1(I)
+          Z2I=Z2(I)
+          Z3I=Z3(I)
+          Z4I=Z4(I)
+          Z5I=Z5(I)
+         CONT(I)=Y(I)
+         Y(I)=Y(I)+Z5I  
+         CONT(I+NN) =D11*Z1I+D12*Z2I+D13*Z3I+D14*Z4I+D15*Z5I
+         CONT(I+NN2)=D21*Z1I+D22*Z2I+D23*Z3I+D24*Z4I+D25*Z5I
+         CONT(I+NN3)=D31*Z1I+D32*Z2I+D33*Z3I+D34*Z4I+D35*Z5I
+         CONT(I+NN4)=D41*Z1I+D42*Z2I+D43*Z3I+D44*Z4I+D45*Z5I
+         YHAT(I)=Z5I
+         IF (ITOL.EQ.0) THEN
+           SCAL(I)=1.D0/( AbsTol(1)+RelTol(1)*DABS(Y(I)) )
+         ELSE
+           SCAL(I)=1.D0/( AbsTol(I)+RelTol(I)*DABS(Y(I)) )
+         END IF
+  74     CONTINUE
+         X=XPH 
+         CALJAC=.FALSE.
+         IF ((X-XEND)*POSNEG+UROUND.GT.0.D0) THEN
+            H=HOPT
+            IDID=1
+            RETURN
+         END IF
+         IF (IJAC.EQ.0) CALL FCN(N,X,Y,Y0)
+         NFCN=NFCN+1
+         HNEW=POSNEG*DMIN1(DABS(HNEW),HMAX1)
+         HOPT=HNEW
+         IF (REJECT) HNEW=POSNEG*DMIN1(DABS(HNEW),DABS(H)) 
+         REJECT=.FALSE.
+         NEWTRE=.FALSE.
+         IF ((X+HNEW/QUOT1-XEND)*POSNEG.GT.0.D0) THEN
+            H=XEND-X
+         ELSE
+            QT=HNEW/H
+            IF (THETA.LE.THET.AND.QT.GE.QUOT1.AND.QT.LE.QUOT2) GOTO 30
+            H = HNEW 
+         END IF
+         IF (THETA.LE.THET) GOTO 20
+         GOTO 10
+
+      ELSE
+C --- STEP IS REJECTED  
+         REJECT=.TRUE.
+         IF (FIRST) THEN
+             H=H/10.D0
+         ELSE
+             H=HNEW
+         END IF
+         IF (NACCPT.GE.1) NREJCT=NREJCT+1
+         IF (CALJAC) GOTO 20
+         GOTO 10
+      END IF
+
+C --- UNEXPECTED STEP-REJECTION
+  78  CONTINUE
+      IF (IER.NE.0) THEN
+          WRITE (6,*) ' MATRIX IS SINGULAR, IER=',IER,' X=',X,' H=',H
+          NSING=NSING+1
+          IF (NSING.GE.6) GOTO 79
+      END IF
+      H=H*0.5D0
+      REJECT=.TRUE.
+      IF (CALJAC) GOTO 20
+      GOTO 10
+
+C --- FAIL EXIT
+  79  WRITE (6,979) X,H,IER
+ 979  FORMAT(' EXIT OF SDIRK4 AT X=',D14.7,'   H=',D14.7,'   IER=',I4)
+      IDID=-1
+      RETURN
+      END
+C
+
+ 
+      SUBROUTINE FUNC_CHEM(N, T, Y, P)
+      INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Global.h'
+      INTEGER N
+      KPP_REAL   T, Told
+      KPP_REAL   Y(NVAR), P(NVAR)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Fun( Y,  FIX, RCONST, P )
+      TIME = Told
+      RETURN
+      END
+
+ 
+      SUBROUTINE JAC_CHEM(N, T, Y, J)
+      INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Global.h'
+      INTEGER N
+      KPP_REAL   Told, T
+      KPP_REAL   Y(NVAR), J(LU_NONZERO)
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      CALL Jac_SP( Y,  FIX, RCONST, J )
+      TIME = Told
+      RETURN
+      END                                                                                                                 
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/sdirk.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/sdirk.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/sdirk.f90	(revision 2696)
@@ -0,0 +1,1258 @@
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
+!  SDIRK - Singly-Diagonally-Implicit Runge-Kutta methods                 !
+!            * Sdirk 2a, 2b: L-stable, 2 stages, order 2                  !
+!            * Sdirk 3a:     L-stable, 3 stages, order 2, adj-invariant   !
+!            * Sdirk 4a, 4b: L-stable, 5 stages, order 4                  !
+!  By default the code employs the KPP sparse linear algebra routines     !
+!  Compile with -DFULL_ALGEBRA to use full linear algebra (LAPACK)        !
+!                                                                         !
+!    (C)  Adrian Sandu, July 2005                                         !
+!    Virginia Polytechnic Institute and State University                  !
+!    Contact: sandu@cs.vt.edu                                             !
+!    Revised by Philipp Miehe and Adrian Sandu, May 2006                  !
+!    This implementation is part of KPP - the Kinetic PreProcessor        !
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
+
+MODULE KPP_ROOT_Integrator
+
+  USE KPP_ROOT_Precision
+  USE KPP_ROOT_Global, ONLY: FIX, RCONST, TIME
+  USE KPP_ROOT_Parameters, ONLY: NVAR, NSPEC, NFIX, LU_NONZERO
+  USE KPP_ROOT_JacobianSP, ONLY: LU_DIAG
+  USE KPP_ROOT_LinearAlgebra, ONLY: KppDecomp,    &
+               KppSolve, Set2zero, WLAMCH, WCOPY, WAXPY, WSCAL, WADD
+  
+  IMPLICIT NONE
+  PUBLIC
+  SAVE
+  
+!~~~>  Statistics on the work performed by the SDIRK method
+  INTEGER, PARAMETER :: Nfun=1, Njac=2, Nstp=3, Nacc=4,  &
+           Nrej=5, Ndec=6, Nsol=7, Nsng=8,               &
+           Ntexit=1, Nhexit=2, Nhnew=3
+                 
+CONTAINS
+
+SUBROUTINE INTEGRATE( TIN, TOUT, &
+  ICNTRL_U, RCNTRL_U, ISTATUS_U, RSTATUS_U, Ierr_U )
+
+   USE KPP_ROOT_Parameters
+   USE KPP_ROOT_Global
+   IMPLICIT NONE
+
+   KPP_REAL, INTENT(IN) :: TIN  ! Start Time
+   KPP_REAL, INTENT(IN) :: TOUT ! End Time
+   ! Optional input parameters and statistics
+   INTEGER,       INTENT(IN),  OPTIONAL :: ICNTRL_U(20)
+   KPP_REAL, INTENT(IN),  OPTIONAL :: RCNTRL_U(20)
+   INTEGER,       INTENT(OUT), OPTIONAL :: ISTATUS_U(20)
+   KPP_REAL, INTENT(OUT), OPTIONAL :: RSTATUS_U(20)
+   INTEGER,       INTENT(OUT), OPTIONAL :: Ierr_U
+
+   INTEGER, SAVE :: Ntotal = 0
+   KPP_REAL :: RCNTRL(20), RSTATUS(20), T1, T2
+   INTEGER       :: ICNTRL(20), ISTATUS(20), Ierr
+
+   ICNTRL(:)  = 0
+   RCNTRL(:)  = 0.0_dp
+   ISTATUS(:) = 0
+   RSTATUS(:) = 0.0_dp
+
+   !~~~> fine-tune the integrator:
+   ICNTRL(2) = 0	! 0 - vector tolerances, 1 - scalar tolerances
+   ICNTRL(6) = 0	! starting values of Newton iterations: interpolated (0), zero (1)
+  ! If optional parameters are given, and if they are >0, 
+   ! then they overwrite default settings. 
+   IF (PRESENT(ICNTRL_U)) THEN
+     WHERE(ICNTRL_U(:) > 0) ICNTRL(:) = ICNTRL_U(:)
+   END IF
+   IF (PRESENT(RCNTRL_U)) THEN
+     WHERE(RCNTRL_U(:) > 0) RCNTRL(:) = RCNTRL_U(:)
+   END IF
+   
+   
+   T1 = TIN; T2 = TOUT
+   CALL SDIRK( NVAR,T1,T2,VAR,RTOL,ATOL,          &
+               RCNTRL,ICNTRL,RSTATUS,ISTATUS,Ierr )
+
+   !~~~> Debug option: print number of steps
+   ! Ntotal = Ntotal + ISTATUS(Nstp)
+   ! PRINT*,'NSTEPS=',ISTATUS(Nstp), '(',Ntotal,')','   O3=',VAR(ind_O3), &
+   !       '  NO2=',VAR(ind_NO2)
+
+   IF (Ierr < 0) THEN
+        PRINT *,'SDIRK: Unsuccessful exit at T=',TIN,' (Ierr=',Ierr,')'
+   ENDIF
+   
+   ! if optional parameters are given for output they to return information
+   IF (PRESENT(ISTATUS_U)) ISTATUS_U(:) = ISTATUS(:)
+   IF (PRESENT(RSTATUS_U)) RSTATUS_U(:) = RSTATUS(:)
+   IF (PRESENT(Ierr_U))    Ierr_U       = Ierr
+
+   END SUBROUTINE INTEGRATE
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE SDIRK(N, Tinitial, Tfinal, Y, RelTol, AbsTol,     &
+                       RCNTRL, ICNTRL, RSTATUS, ISTATUS, Ierr)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!    Solves the system y'=F(t,y) using a Singly-Diagonally-Implicit
+!    Runge-Kutta (SDIRK) method.
+!
+!    This implementation is based on the book and the code Sdirk4:
+!
+!      E. Hairer and G. Wanner
+!      "Solving ODEs II. Stiff and differential-algebraic problems".
+!      Springer series in computational mathematics, Springer-Verlag, 1996.
+!    This code is based on the SDIRK4 routine in the above book.
+!
+!    Methods:
+!            * Sdirk 2a, 2b: L-stable, 2 stages, order 2                  
+!            * Sdirk 3a:     L-stable, 3 stages, order 2, adjoint-invariant   
+!            * Sdirk 4a, 4b: L-stable, 5 stages, order 4                  
+!
+!    (C)  Adrian Sandu, July 2005
+!    Virginia Polytechnic Institute and State University
+!    Contact: sandu@cs.vt.edu
+!    Revised by Philipp Miehe and Adrian Sandu, May 2006                 
+!    This implementation is part of KPP - the Kinetic PreProcessor
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>   INPUT ARGUMENTS:
+!
+!-     Y(NVAR)    = vector of initial conditions (at T=Tinitial)
+!-    [Tinitial,Tfinal]  = time range of integration
+!     (if Tinitial>Tfinal the integration is performed backwards in time)
+!-    RelTol, AbsTol = user precribed accuracy
+!- SUBROUTINE ode_Fun( T, Y, Ydot ) = ODE function,
+!                       returns Ydot = Y' = F(T,Y)
+!- SUBROUTINE ode_Fun( T, Y, Ydot ) = Jacobian of the ODE function,
+!                       returns Jcb = dF/dY
+!-    ICNTRL(1:20)    = integer inputs parameters
+!-    RCNTRL(1:20)    = real inputs parameters
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>     OUTPUT ARGUMENTS:
+!
+!-    Y(NVAR)         -> vector of final states (at T->Tfinal)
+!-    ISTATUS(1:20)   -> integer output parameters
+!-    RSTATUS(1:20)   -> real output parameters
+!-    Ierr            -> job status upon return
+!                        success (positive value) or
+!                        failure (negative value)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>     INPUT PARAMETERS:
+!
+!    Note: For input parameters equal to zero the default values of the
+!       corresponding variables are used.
+!
+!    Note: For input parameters equal to zero the default values of the
+!          corresponding variables are used.
+!~~~>  
+!    ICNTRL(1) = not used
+!
+!    ICNTRL(2) = 0: AbsTol, RelTol are NVAR-dimensional vectors
+!              = 1: AbsTol, RelTol are scalars
+!
+!    ICNTRL(3) = Method
+!
+!    ICNTRL(4)  -> maximum number of integration steps
+!        For ICNTRL(4)=0 the default value of 100000 is used
+!
+!    ICNTRL(5)  -> maximum number of Newton iterations
+!        For ICNTRL(5)=0 the default value of 8 is used
+!
+!    ICNTRL(6)  -> starting values of Newton iterations:
+!        ICNTRL(6)=0 : starting values are interpolated (the default)
+!        ICNTRL(6)=1 : starting values are zero
+!
+!~~~>  Real parameters
+!
+!    RCNTRL(1)  -> Hmin, lower bound for the integration step size
+!                  It is strongly recommended to keep Hmin = ZERO
+!    RCNTRL(2)  -> Hmax, upper bound for the integration step size
+!    RCNTRL(3)  -> Hstart, starting value for the integration step size
+!
+!    RCNTRL(4)  -> FacMin, lower bound on step decrease factor (default=0.2)
+!    RCNTRL(5)  -> FacMax, upper bound on step increase factor (default=6)
+!    RCNTRL(6)  -> FacRej, step decrease factor after multiple rejections
+!                 (default=0.1)
+!    RCNTRL(7)  -> FacSafe, by which the new step is slightly smaller
+!                  than the predicted value  (default=0.9)
+!    RCNTRL(8)  -> ThetaMin. If Newton convergence rate smaller
+!                  than ThetaMin the Jacobian is not recomputed;
+!                  (default=0.001)
+!    RCNTRL(9)  -> NewtonTol, stopping criterion for Newton's method
+!                  (default=0.03)
+!    RCNTRL(10) -> Qmin
+!    RCNTRL(11) -> Qmax. If Qmin < Hnew/Hold < Qmax, then the
+!                  step size is kept constant and the LU factorization
+!                  reused (default Qmin=1, Qmax=1.2)
+!
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>     OUTPUT PARAMETERS:
+!
+!    Note: each call to Rosenbrock adds the current no. of fcn calls
+!      to previous value of ISTATUS(1), and similar for the other params.
+!      Set ISTATUS(1:10) = 0 before call to avoid this accumulation.
+!
+!    ISTATUS(1) = No. of function calls
+!    ISTATUS(2) = No. of jacobian calls
+!    ISTATUS(3) = No. of steps
+!    ISTATUS(4) = No. of accepted steps
+!    ISTATUS(5) = No. of rejected steps (except at the beginning)
+!    ISTATUS(6) = No. of LU decompositions
+!    ISTATUS(7) = No. of forward/backward substitutions
+!    ISTATUS(8) = No. of singular matrix decompositions
+!
+!    RSTATUS(1)  -> Texit, the time corresponding to the
+!                   computed Y upon return
+!    RSTATUS(2)  -> Hexit,last accepted step before return
+!    RSTATUS(3)  -> Hnew, last predicted step before return
+!        For multiple restarts, use Hnew as Hstart in the following run
+!
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+
+! Arguments      
+      INTEGER, INTENT(IN)          :: N, ICNTRL(20)
+      KPP_REAL, INTENT(IN)    :: Tinitial, Tfinal, &
+                    RelTol(NVAR), AbsTol(NVAR), RCNTRL(20)
+      KPP_REAL, INTENT(INOUT) :: Y(NVAR)
+      INTEGER, INTENT(OUT)         :: Ierr
+      INTEGER, INTENT(INOUT)       :: ISTATUS(20) 
+      KPP_REAL, INTENT(OUT)   :: RSTATUS(20)
+       
+!~~~>  SDIRK method coefficients, up to 5 stages
+      INTEGER, PARAMETER :: Smax = 5
+      INTEGER, PARAMETER :: S2A=1, S2B=2, S3A=3, S4A=4, S4B=5
+      KPP_REAL :: rkGamma, rkA(Smax,Smax), rkB(Smax), rkC(Smax), &
+                       rkD(Smax),  rkE(Smax), rkBhat(Smax), rkELO,    &
+                       rkAlpha(Smax,Smax), rkTheta(Smax,Smax)
+      INTEGER :: sdMethod, rkS ! The number of stages
+! Local variables      
+      LOGICAL :: StartNewton
+      KPP_REAL :: Hmin, Hmax, Hstart, Roundoff,    &
+                       FacMin, Facmax, FacSafe, FacRej, &
+                       ThetaMin, NewtonTol, Qmin, Qmax
+      INTEGER       :: ITOL, NewtonMaxit, Max_no_steps, i
+      KPP_REAL, PARAMETER :: ZERO = 0.0d0, ONE = 1.0d0
+
+       
+      ISTATUS(1:20) = 0
+      RSTATUS(1:20) = ZERO
+      Ierr = 0
+
+!~~~>  For Scalar tolerances (ICNTRL(2).NE.0)  the code uses AbsTol(1) and RelTol(1)
+!   For Vector tolerances (ICNTRL(2) == 0) the code uses AbsTol(1:NVAR) and RelTol(1:NVAR)
+      IF (ICNTRL(2) == 0) THEN
+         ITOL = 1
+      ELSE
+         ITOL = 0
+      END IF
+
+!~~~> ICNTRL(3) - method selection       
+      SELECT CASE (ICNTRL(3))
+      CASE (0,1)
+         CALL Sdirk2a
+      CASE (2)
+         CALL Sdirk2b
+      CASE (3)
+         CALL Sdirk3a
+      CASE (4)
+         CALL Sdirk4a
+      CASE (5)
+         CALL Sdirk4b
+      CASE DEFAULT
+         CALL Sdirk2a
+      END SELECT
+      
+!~~~>   The maximum number of time steps admitted
+      IF (ICNTRL(4) == 0) THEN
+         Max_no_steps = 200000
+      ELSEIF (ICNTRL(4) > 0) THEN
+         Max_no_steps=ICNTRL(4)
+      ELSE
+         PRINT * ,'User-selected ICNTRL(4)=',ICNTRL(4)
+         CALL SDIRK_ErrorMsg(-1,Tinitial,ZERO,Ierr)
+   END IF
+
+!~~~> The maximum number of Newton iterations admitted
+      IF(ICNTRL(5) == 0)THEN
+         NewtonMaxit=8
+      ELSE
+         NewtonMaxit=ICNTRL(5)
+         IF(NewtonMaxit <= 0)THEN
+             PRINT * ,'User-selected ICNTRL(5)=',ICNTRL(5)
+             CALL SDIRK_ErrorMsg(-2,Tinitial,ZERO,Ierr)
+         END IF
+      END IF
+
+!~~~> StartNewton:  Use extrapolation for starting values of Newton iterations
+      IF (ICNTRL(6) == 0) THEN
+         StartNewton = .TRUE.
+      ELSE
+         StartNewton = .FALSE.
+      END IF      
+
+!~~~>  Unit roundoff (1+Roundoff>1)
+      Roundoff = WLAMCH('E')
+
+!~~~>  Lower bound on the step size: (positive value)
+      IF (RCNTRL(1) == ZERO) THEN
+         Hmin = ZERO
+      ELSEIF (RCNTRL(1) > ZERO) THEN
+         Hmin = RCNTRL(1)
+      ELSE
+         PRINT * , 'User-selected RCNTRL(1)=', RCNTRL(1)
+         CALL SDIRK_ErrorMsg(-3,Tinitial,ZERO,Ierr)
+      END IF
+   
+!~~~>  Upper bound on the step size: (positive value)
+      IF (RCNTRL(2) == ZERO) THEN
+         Hmax = ABS(Tfinal-Tinitial)
+      ELSEIF (RCNTRL(2) > ZERO) THEN
+         Hmax = MIN(ABS(RCNTRL(2)),ABS(Tfinal-Tinitial))
+      ELSE
+         PRINT * , 'User-selected RCNTRL(2)=', RCNTRL(2)
+         CALL SDIRK_ErrorMsg(-3,Tinitial,ZERO,Ierr)
+      END IF
+   
+!~~~>  Starting step size: (positive value)
+      IF (RCNTRL(3) == ZERO) THEN
+         Hstart = MAX(Hmin,Roundoff)
+      ELSEIF (RCNTRL(3) > ZERO) THEN
+         Hstart = MIN(ABS(RCNTRL(3)),ABS(Tfinal-Tinitial))
+      ELSE
+         PRINT * , 'User-selected Hstart: RCNTRL(3)=', RCNTRL(3)
+         CALL SDIRK_ErrorMsg(-3,Tinitial,ZERO,Ierr)
+      END IF
+   
+!~~~>  Step size can be changed s.t.  FacMin < Hnew/Hexit < FacMax
+      IF (RCNTRL(4) == ZERO) THEN
+         FacMin = 0.2_dp
+      ELSEIF (RCNTRL(4) > ZERO) THEN
+         FacMin = RCNTRL(4)
+      ELSE
+         PRINT * , 'User-selected FacMin: RCNTRL(4)=', RCNTRL(4)
+         CALL SDIRK_ErrorMsg(-4,Tinitial,ZERO,Ierr)
+      END IF
+      IF (RCNTRL(5) == ZERO) THEN
+         FacMax = 10.0_dp
+      ELSEIF (RCNTRL(5) > ZERO) THEN
+         FacMax = RCNTRL(5)
+      ELSE
+         PRINT * , 'User-selected FacMax: RCNTRL(5)=', RCNTRL(5)
+         CALL SDIRK_ErrorMsg(-4,Tinitial,ZERO,Ierr)
+      END IF
+!~~~>   FacRej: Factor to decrease step after 2 succesive rejections
+      IF (RCNTRL(6) == ZERO) THEN
+         FacRej = 0.1_dp
+      ELSEIF (RCNTRL(6) > ZERO) THEN
+         FacRej = RCNTRL(6)
+      ELSE
+         PRINT * , 'User-selected FacRej: RCNTRL(6)=', RCNTRL(6)
+         CALL SDIRK_ErrorMsg(-4,Tinitial,ZERO,Ierr)
+      END IF
+!~~~>   FacSafe: Safety Factor in the computation of new step size
+      IF (RCNTRL(7) == ZERO) THEN
+         FacSafe = 0.9_dp
+      ELSEIF (RCNTRL(7) > ZERO) THEN
+         FacSafe = RCNTRL(7)
+      ELSE
+         PRINT * , 'User-selected FacSafe: RCNTRL(7)=', RCNTRL(7)
+         CALL SDIRK_ErrorMsg(-4,Tinitial,ZERO,Ierr)
+      END IF
+
+!~~~> ThetaMin: decides whether the Jacobian should be recomputed
+      IF(RCNTRL(8) == 0.D0)THEN
+         ThetaMin = 1.0d-3
+      ELSE
+         ThetaMin = RCNTRL(8)
+      END IF
+
+!~~~> Stopping criterion for Newton's method
+      IF(RCNTRL(9) == ZERO)THEN
+         NewtonTol = 3.0d-2
+      ELSE
+         NewtonTol = RCNTRL(9)
+      END IF
+
+!~~~> Qmin, Qmax: IF Qmin < Hnew/Hold < Qmax, STEP SIZE = CONST.
+      IF(RCNTRL(10) == ZERO)THEN
+         Qmin=ONE
+      ELSE
+         Qmin=RCNTRL(10)
+      END IF
+      IF(RCNTRL(11) == ZERO)THEN
+         Qmax=1.2D0
+      ELSE
+         Qmax=RCNTRL(11)
+      END IF
+
+!~~~>  Check if tolerances are reasonable
+      IF (ITOL == 0) THEN
+         IF (AbsTol(1) <= ZERO .OR. RelTol(1) <= 10.D0*Roundoff) THEN
+            PRINT * , ' Scalar AbsTol = ',AbsTol(1)
+            PRINT * , ' Scalar RelTol = ',RelTol(1)
+            CALL SDIRK_ErrorMsg(-5,Tinitial,ZERO,Ierr)
+         END IF
+      ELSE
+         DO i=1,N
+            IF (AbsTol(i) <= 0.D0.OR.RelTol(i) <= 10.D0*Roundoff) THEN
+              PRINT * , ' AbsTol(',i,') = ',AbsTol(i)
+              PRINT * , ' RelTol(',i,') = ',RelTol(i)
+              CALL SDIRK_ErrorMsg(-5,Tinitial,ZERO,Ierr)
+            END IF
+         END DO
+      END IF
+    
+    IF (Ierr < 0) RETURN
+
+    CALL SDIRK_Integrator( N,Tinitial,Tfinal,Y,Ierr )
+
+
+   !END SUBROUTINE SDIRK
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   CONTAINS  !  PROCEDURES INTERNAL TO SDIRK
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE SDIRK_Integrator( N,Tinitial,Tfinal,Y,Ierr )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      USE KPP_ROOT_Parameters
+      IMPLICIT NONE
+
+!~~~> Arguments:      
+      INTEGER, INTENT(IN) :: N
+      KPP_REAL, INTENT(INOUT) :: Y(NVAR)
+      KPP_REAL, INTENT(IN) :: Tinitial, Tfinal
+      INTEGER, INTENT(OUT) :: Ierr
+      
+!~~~> Local variables:      
+      KPP_REAL :: Z(NVAR,Smax), G(NVAR), TMP(NVAR),        &   
+                       NewtonRate, SCAL(NVAR), RHS(NVAR),       &
+                       T, H, Theta, Hratio, NewtonPredictedErr, &
+                       Qnewton, Err, Fac, Hnew,Tdirection,      &
+                       NewtonIncrement, NewtonIncrementOld
+      INTEGER :: j, IER, istage, NewtonIter, IP(NVAR)
+      LOGICAL :: Reject, FirstStep, SkipJac, SkipLU, NewtonDone
+      
+#ifdef FULL_ALGEBRA      
+      KPP_REAL FJAC(NVAR,NVAR),  E(NVAR,NVAR)
+#else      
+      KPP_REAL FJAC(LU_NONZERO), E(LU_NONZERO)
+#endif      
+      KPP_REAL, PARAMETER :: ZERO = 0.0d0, ONE = 1.0d0
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Initializations
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      T = Tinitial
+      Tdirection = SIGN(ONE,Tfinal-Tinitial)
+      H = MAX(ABS(Hmin),ABS(Hstart))
+      IF (ABS(H) <= 10.D0*Roundoff) H=1.0D-6
+      H=MIN(ABS(H),Hmax)
+      H=SIGN(H,Tdirection)
+      SkipLU =.FALSE.
+      SkipJac = .FALSE.
+      Reject=.FALSE.
+      FirstStep=.TRUE.
+
+      CALL SDIRK_ErrorScale(N, ITOL, AbsTol, RelTol, Y, SCAL)
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Time loop begins
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Tloop: DO WHILE ( (Tfinal-T)*Tdirection - Roundoff > ZERO )
+
+
+!~~~>  Compute E = 1/(h*gamma)-Jac and its LU decomposition
+      IF ( .NOT.SkipLU ) THEN ! This time around skip the Jac update and LU
+         CALL SDIRK_PrepareMatrix ( H, T, Y, FJAC, &
+                   SkipJac, SkipLU, E, IP, Reject, IER )
+         IF (IER /= 0) THEN
+             CALL SDIRK_ErrorMsg(-8,T,H,Ierr); RETURN
+         END IF
+      END IF      
+
+      IF (ISTATUS(Nstp) > Max_no_steps) THEN
+             CALL SDIRK_ErrorMsg(-6,T,H,Ierr); RETURN
+      END IF   
+      IF ( (T+0.1d0*H == T) .OR. (ABS(H) <= Roundoff) ) THEN
+             CALL SDIRK_ErrorMsg(-7,T,H,Ierr); RETURN
+      END IF   
+
+stages:DO istage = 1, rkS
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Simplified Newton iterations
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+!~~~>  Starting values for Newton iterations
+       CALL Set2zero(N,Z(1,istage))
+       
+!~~~>   Prepare the loop-independent part of the right-hand side
+       CALL Set2zero(N,G)
+       IF (istage > 1) THEN
+           DO j = 1, istage-1
+               ! Gj(:) = sum_j Theta(i,j)*Zj(:) = H * sum_j A(i,j)*Fun(Zj)
+               CALL WAXPY(N,rkTheta(istage,j),Z(1,j),1,G,1)
+               ! Zi(:) = sum_j Alpha(i,j)*Zj(:)
+	       IF (StartNewton) THEN
+                  CALL WAXPY(N,rkAlpha(istage,j),Z(1,j),1,Z(1,istage),1)
+	       END IF
+           END DO
+       END IF
+
+       !~~~>  Initializations for Newton iteration
+       NewtonDone = .FALSE.
+       Fac = 0.5d0 ! Step reduction factor if too many iterations
+            
+NewtonLoop:DO NewtonIter = 1, NewtonMaxit
+
+!~~~>   Prepare the loop-dependent part of the right-hand side
+ 	    CALL WADD(N,Y,Z(1,istage),TMP)         	! TMP <- Y + Zi
+            CALL FUN_CHEM(T+rkC(istage)*H,TMP,RHS)	! RHS <- Fun(Y+Zi)
+            ISTATUS(Nfun) = ISTATUS(Nfun) + 1
+!            RHS(1:N) = G(1:N) - Z(1:N,istage) + (H*rkGamma)*RHS(1:N)
+	    CALL WSCAL(N, H*rkGamma, RHS, 1)
+	    CALL WAXPY (N, -ONE, Z(1,istage), 1, RHS, 1)
+            CALL WAXPY (N, ONE, G,1, RHS,1)
+
+!~~~>   Solve the linear system
+            CALL SDIRK_Solve ( H, N, E, IP, IER, RHS )
+            
+!~~~>   Check convergence of Newton iterations
+            CALL SDIRK_ErrorNorm(N, RHS, SCAL, NewtonIncrement)
+            IF ( NewtonIter == 1 ) THEN
+                Theta      = ABS(ThetaMin)
+                NewtonRate = 2.0d0 
+            ELSE
+                Theta = NewtonIncrement/NewtonIncrementOld
+                IF (Theta < 0.99d0) THEN
+                    NewtonRate = Theta/(ONE-Theta)
+                    ! Predict error at the end of Newton process 
+                    NewtonPredictedErr = NewtonIncrement &
+                               *Theta**(NewtonMaxit-NewtonIter)/(ONE-Theta)
+                    IF (NewtonPredictedErr >= NewtonTol) THEN
+                      ! Non-convergence of Newton: predicted error too large
+                      Qnewton = MIN(10.0d0,NewtonPredictedErr/NewtonTol)
+                      Fac = 0.8d0*Qnewton**(-ONE/(1+NewtonMaxit-NewtonIter))
+                      EXIT NewtonLoop
+                    END IF
+                ELSE ! Non-convergence of Newton: Theta too large
+                    EXIT NewtonLoop
+                END IF
+            END IF
+            NewtonIncrementOld = NewtonIncrement
+            ! Update solution: Z(:) <-- Z(:)+RHS(:)
+            CALL WAXPY(N,ONE,RHS,1,Z(1,istage),1) 
+            
+            ! Check error in Newton iterations
+            NewtonDone = (NewtonRate*NewtonIncrement <= NewtonTol)
+            IF (NewtonDone) EXIT NewtonLoop
+            
+            END DO NewtonLoop
+            
+            IF (.NOT.NewtonDone) THEN
+                 !CALL RK_ErrorMsg(-12,T,H,Ierr);
+                 H = Fac*H; Reject=.TRUE.
+                 SkipJac = .TRUE.; SkipLU = .FALSE.
+                 CYCLE Tloop
+            END IF
+
+!~~~>  End of implified Newton iterations
+
+ 
+   END DO stages
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Error estimation
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      ISTATUS(Nstp) = ISTATUS(Nstp) + 1
+      CALL Set2zero(N,TMP)
+      DO i = 1,rkS
+         IF (rkE(i)/=ZERO) CALL WAXPY(N,rkE(i),Z(1,i),1,TMP,1)
+      END DO  
+
+      CALL SDIRK_Solve( H, N, E, IP, IER, TMP )
+      CALL SDIRK_ErrorNorm(N, TMP, SCAL, Err)
+
+!~~~> Computation of new step size Hnew
+      Fac  = FacSafe*(Err)**(-ONE/rkELO)
+      Fac  = MAX(FacMin,MIN(FacMax,Fac))
+      Hnew = H*Fac
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Accept/Reject step
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+accept: IF ( Err < ONE ) THEN !~~~> Step is accepted
+
+         FirstStep=.FALSE.
+         ISTATUS(Nacc) = ISTATUS(Nacc) + 1
+
+!~~~> Update time and solution
+         T  =  T + H
+         ! Y(:) <-- Y(:) + Sum_j rkD(j)*Z_j(:)
+         DO i = 1,rkS 
+            IF (rkD(i)/=ZERO) CALL WAXPY(N,rkD(i),Z(1,i),1,Y,1)
+         END DO  
+       
+!~~~> Update scaling coefficients
+         CALL SDIRK_ErrorScale(N, ITOL, AbsTol, RelTol, Y, SCAL)
+
+!~~~> Next time step
+         Hnew = Tdirection*MIN(ABS(Hnew),Hmax)
+         ! Last T and H
+         RSTATUS(Ntexit) = T
+         RSTATUS(Nhexit) = H
+         RSTATUS(Nhnew)  = Hnew
+         ! No step increase after a rejection
+         IF (Reject) Hnew = Tdirection*MIN(ABS(Hnew),ABS(H))
+         Reject = .FALSE.
+         IF ((T+Hnew/Qmin-Tfinal)*Tdirection > ZERO) THEN
+            H = Tfinal-T
+         ELSE
+            Hratio=Hnew/H
+            ! If step not changed too much keep Jacobian and reuse LU
+            SkipLU = ( (Theta <= ThetaMin) .AND. (Hratio >= Qmin) &
+                                     .AND. (Hratio <= Qmax) )
+            IF (.NOT.SkipLU) H = Hnew
+         END IF
+         ! If convergence is fast enough, do not update Jacobian
+!         SkipJac = (Theta <= ThetaMin)
+         SkipJac = .FALSE.
+	 
+      ELSE accept !~~~> Step is rejected
+
+         IF (FirstStep .OR. Reject) THEN
+             H = FacRej*H
+         ELSE
+             H = Hnew
+         END IF
+         Reject  = .TRUE.
+         SkipJac = .TRUE.
+         SkipLU  = .FALSE. 
+         IF (ISTATUS(Nacc) >= 1) ISTATUS(Nrej) = ISTATUS(Nrej) + 1
+         
+      END IF accept
+      
+      END DO Tloop
+
+      ! Successful return
+      Ierr  = 1
+  
+      END SUBROUTINE SDIRK_Integrator
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE SDIRK_ErrorScale(N, ITOL, AbsTol, RelTol, Y, SCAL)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      INTEGER :: i, N, ITOL
+      KPP_REAL :: AbsTol(NVAR), RelTol(NVAR), &
+                       Y(NVAR), SCAL(NVAR)
+      IF (ITOL == 0) THEN
+        DO i=1,NVAR
+          SCAL(i) = ONE / ( AbsTol(1)+RelTol(1)*ABS(Y(i)) )
+        END DO
+      ELSE
+        DO i=1,NVAR
+          SCAL(i) = ONE / ( AbsTol(i)+RelTol(i)*ABS(Y(i)) )
+        END DO
+      END IF
+      END SUBROUTINE SDIRK_ErrorScale
+      
+      
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE SDIRK_ErrorNorm(N, Y, SCAL, Err)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!      
+      INTEGER :: i, N
+      KPP_REAL :: Y(N), SCAL(N), Err      
+      Err = ZERO
+      DO i=1,N
+           Err = Err+(Y(i)*SCAL(i))**2
+      END DO
+      Err = MAX( SQRT(Err/DBLE(N)), 1.0d-10 )
+!
+      END SUBROUTINE SDIRK_ErrorNorm
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE SDIRK_ErrorMsg(Code,T,H,Ierr)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!    Handles all error messages
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+   KPP_REAL, INTENT(IN) :: T, H
+   INTEGER, INTENT(IN)  :: Code
+   INTEGER, INTENT(OUT) :: Ierr
+
+   Ierr = Code
+   PRINT * , &
+     'Forced exit from SDIRK due to the following error:'
+
+   SELECT CASE (Code)
+    CASE (-1)
+      PRINT * , '--> Improper value for maximal no of steps'
+    CASE (-2)
+      PRINT * , '--> Improper value for maximal no of Newton iterations'
+    CASE (-3)
+      PRINT * , '--> Hmin/Hmax/Hstart must be positive'
+    CASE (-4)
+      PRINT * , '--> FacMin/FacMax/FacRej must be positive'
+    CASE (-5)
+      PRINT * , '--> Improper tolerance values'
+    CASE (-6)
+      PRINT * , '--> No of steps exceeds maximum bound'
+    CASE (-7)
+      PRINT * , '--> Step size too small: T + 10*H = T', &
+            ' or H < Roundoff'
+    CASE (-8)
+      PRINT * , '--> Matrix is repeatedly singular'
+    CASE DEFAULT
+      PRINT *, 'Unknown Error code: ', Code
+   END SELECT
+
+   PRINT *, "T=", T, "and H=", H
+
+ END SUBROUTINE SDIRK_ErrorMsg
+      
+      
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE SDIRK_PrepareMatrix ( H, T, Y, FJAC, &
+                   SkipJac, SkipLU, E, IP, Reject, ISING )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Compute the matrix E = 1/(H*GAMMA)*Jac, and its decomposition
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+     
+      IMPLICIT NONE
+      
+      KPP_REAL, INTENT(INOUT) :: H
+      KPP_REAL, INTENT(IN)    :: T, Y(NVAR)
+      LOGICAL, INTENT(INOUT)       :: SkipJac,SkipLU,Reject
+      INTEGER, INTENT(OUT)         :: ISING, IP(NVAR)
+#ifdef FULL_ALGEBRA
+      KPP_REAL, INTENT(INOUT) :: FJAC(NVAR,NVAR)
+      KPP_REAL, INTENT(OUT)   :: E(NVAR,NVAR)
+#else
+      KPP_REAL, INTENT(INOUT) :: FJAC(LU_NONZERO)
+      KPP_REAL, INTENT(OUT)   :: E(LU_NONZERO)
+#endif
+      KPP_REAL                :: HGammaInv
+      INTEGER                      :: i, j, ConsecutiveSng
+
+      ConsecutiveSng = 0
+      ISING = 1
+      
+Hloop: DO WHILE (ISING /= 0)
+      
+      HGammaInv = ONE/(H*rkGamma)
+
+!~~~>  Compute the Jacobian
+!      IF (SkipJac) THEN
+!          SkipJac = .FALSE.
+!      ELSE
+      IF (.NOT. SkipJac) THEN
+          CALL JAC_CHEM( T, Y, FJAC )
+          ISTATUS(Njac) = ISTATUS(Njac) + 1
+      END IF  
+      
+#ifdef FULL_ALGEBRA
+      DO j=1,NVAR
+         DO i=1,NVAR
+            E(i,j) = -FJAC(i,j)
+         END DO
+         E(j,j) = E(j,j)+HGammaInv
+      END DO
+      CALL DGETRF( NVAR, NVAR, E, NVAR, IP, ISING )
+#else
+      DO i = 1,LU_NONZERO
+            E(i) = -FJAC(i)
+      END DO
+      DO i = 1,NVAR
+          j = LU_DIAG(i); E(j) = E(j) + HGammaInv
+      END DO
+      CALL KppDecomp ( E, ISING)
+      IP(1) = 1
+#endif
+      ISTATUS(Ndec) = ISTATUS(Ndec) + 1
+
+      IF (ISING /= 0) THEN
+          WRITE (6,*) ' MATRIX IS SINGULAR, ISING=',ISING,' T=',T,' H=',H
+          ISTATUS(Nsng) = ISTATUS(Nsng) + 1; ConsecutiveSng = ConsecutiveSng + 1
+          IF (ConsecutiveSng >= 6) RETURN ! Failure
+          H = 0.5d0*H
+          SkipJac = .TRUE.
+          SkipLU  = .FALSE.
+          Reject  = .TRUE.
+      END IF
+      
+      END DO Hloop
+
+      END SUBROUTINE SDIRK_PrepareMatrix
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE SDIRK_Solve ( H, N, E, IP, ISING, RHS )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Solves the system (H*Gamma-Jac)*x = RHS
+!      using the LU decomposition of E = I - 1/(H*Gamma)*Jac
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      INTEGER, INTENT(IN)       :: N, IP(N), ISING
+      KPP_REAL, INTENT(IN) :: H
+#ifdef FULL_ALGEBRA
+      KPP_REAL, INTENT(IN) :: E(NVAR,NVAR)
+#else
+      KPP_REAL, INTENT(IN) :: E(LU_NONZERO)
+#endif
+      KPP_REAL, INTENT(INOUT) :: RHS(N)
+      KPP_REAL                :: HGammaInv
+      
+      HGammaInv = ONE/(H*rkGamma)
+      CALL WSCAL(N,HGammaInv,RHS,1)
+#ifdef FULL_ALGEBRA  
+      CALL DGETRS( 'N', N, 1, E, N, IP, RHS, N, ISING )
+#else
+      CALL KppSolve(E, RHS)
+#endif
+      ISTATUS(Nsol) = ISTATUS(Nsol) + 1
+ 
+      END SUBROUTINE SDIRK_Solve
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE Sdirk4a
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      sdMethod = S4A
+! Number of stages
+      rkS = 5
+
+! Method coefficients
+      rkGamma = .2666666666666666666666666666666667d0
+
+      rkA(1,1) = .2666666666666666666666666666666667d0
+      rkA(2,1) = .5000000000000000000000000000000000d0
+      rkA(2,2) = .2666666666666666666666666666666667d0
+      rkA(3,1) = .3541539528432732316227461858529820d0
+      rkA(3,2) = -.5415395284327323162274618585298197d-1
+      rkA(3,3) = .2666666666666666666666666666666667d0
+      rkA(4,1) = .8515494131138652076337791881433756d-1
+      rkA(4,2) = -.6484332287891555171683963466229754d-1
+      rkA(4,3) = .7915325296404206392428857585141242d-1
+      rkA(4,4) = .2666666666666666666666666666666667d0
+      rkA(5,1) = 2.100115700566932777970612055999074d0
+      rkA(5,2) = -.7677800284445976813343102185062276d0
+      rkA(5,3) = 2.399816361080026398094746205273880d0
+      rkA(5,4) = -2.998818699869028161397714709433394d0
+      rkA(5,5) = .2666666666666666666666666666666667d0
+
+      rkB(1)   = 2.100115700566932777970612055999074d0
+      rkB(2)   = -.7677800284445976813343102185062276d0
+      rkB(3)   = 2.399816361080026398094746205273880d0
+      rkB(4)   = -2.998818699869028161397714709433394d0
+      rkB(5)   = .2666666666666666666666666666666667d0
+
+      rkBhat(1)= 2.885264204387193942183851612883390d0
+      rkBhat(2)= -.1458793482962771337341223443218041d0
+      rkBhat(3)= 2.390008682465139866479830743628554d0
+      rkBhat(4)= -4.129393538556056674929560012190140d0
+      rkBhat(5)= 0.d0
+
+      rkC(1)   = .2666666666666666666666666666666667d0
+      rkC(2)   = .7666666666666666666666666666666667d0
+      rkC(3)   = .5666666666666666666666666666666667d0
+      rkC(4)   = .3661315380631796996374935266701191d0
+      rkC(5)   = 1.d0
+
+! Ynew = Yold + h*Sum_i {rkB_i*k_i} = Yold + Sum_i {rkD_i*Z_i}
+      rkD(1)   = 0.d0
+      rkD(2)   = 0.d0
+      rkD(3)   = 0.d0
+      rkD(4)   = 0.d0
+      rkD(5)   = 1.d0
+
+! Err = h * Sum_i {(rkB_i-rkBhat_i)*k_i} = Sum_i {rkE_i*Z_i}
+      rkE(1)   = -.6804000050475287124787034884002302d0
+      rkE(2)   = 1.558961944525217193393931795738823d0
+      rkE(3)   = -13.55893003128907927748632408763868d0
+      rkE(4)   = 15.48522576958521253098585004571302d0
+      rkE(5)   = 1.d0
+
+! Local order of Err estimate
+      rkElo    = 4
+
+! h*Sum_j {rkA_ij*k_j} = Sum_j {rkTheta_ij*Z_j}
+      rkTheta(2,1) = 1.875000000000000000000000000000000d0
+      rkTheta(3,1) = 1.708847304091539528432732316227462d0
+      rkTheta(3,2) = -.2030773231622746185852981969486824d0
+      rkTheta(4,1) = .2680325578937783958847157206823118d0
+      rkTheta(4,2) = -.1828840955527181631794050728644549d0
+      rkTheta(4,3) = .2968246986151577397160821594427966d0
+      rkTheta(5,1) = .9096171815241460655379433581446771d0
+      rkTheta(5,2) = -3.108254967778352416114774430509465d0
+      rkTheta(5,3) = 12.33727431701306195581826123274001d0
+      rkTheta(5,4) = -11.24557012450885560524143016037523d0
+
+! Starting value for Newton iterations: Z_i^0 = Sum_j {rkAlpha_ij*Z_j}
+      rkAlpha(2,1) = 2.875000000000000000000000000000000d0
+      rkAlpha(3,1) = .8500000000000000000000000000000000d0
+      rkAlpha(3,2) = .4434782608695652173913043478260870d0
+      rkAlpha(4,1) = .7352046091658870564637910527807370d0
+      rkAlpha(4,2) = -.9525565003057343527941920657462074d-1
+      rkAlpha(4,3) = .4290111305453813852259481840631738d0
+      rkAlpha(5,1) = -16.10898993405067684831655675112808d0
+      rkAlpha(5,2) = 6.559571569643355712998131800797873d0
+      rkAlpha(5,3) = -15.90772144271326504260996815012482d0
+      rkAlpha(5,4) = 25.34908987169226073668861694892683d0
+               
+!~~~> Coefficients for continuous solution
+!          rkD(1,1)= 24.74416644927758d0
+!          rkD(1,2)= -4.325375951824688d0
+!          rkD(1,3)= 41.39683763286316d0
+!          rkD(1,4)= -61.04144619901784d0
+!          rkD(1,5)= -3.391332232917013d0
+!          rkD(2,1)= -51.98245719616925d0
+!          rkD(2,2)= 10.52501981094525d0
+!          rkD(2,3)= -154.2067922191855d0
+!          rkD(2,4)= 214.3082125319825d0
+!          rkD(2,5)= 14.71166018088679d0
+!          rkD(3,1)= 33.14347947522142d0
+!          rkD(3,2)= -19.72986789558523d0
+!          rkD(3,3)= 230.4878502285804d0
+!          rkD(3,4)= -287.6629744338197d0
+!          rkD(3,5)= -18.99932366302254d0
+!          rkD(4,1)= -5.905188728329743d0
+!          rkD(4,2)= 13.53022403646467d0
+!          rkD(4,3)= -117.6778956422581d0
+!          rkD(4,4)= 134.3962081008550d0
+!          rkD(4,5)= 8.678995715052762d0
+!
+!         DO i=1,4  ! CONTi <-- Sum_j rkD(i,j)*Zj
+!           CALL Set2zero(N,CONT(1,i))
+!           DO j = 1,rkS
+!             CALL WAXPY(N,rkD(i,j),Z(1,j),1,CONT(1,i),1)
+!           END DO
+!         END DO
+          
+          rkELO = 4.0d0
+          
+      END SUBROUTINE Sdirk4a
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE Sdirk4b
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      sdMethod = S4B
+! Number of stages
+      rkS = 5
+
+! Method coefficients
+      rkGamma = .25d0
+
+      rkA(1,1) = 0.25d0
+      rkA(2,1) = 0.5d00
+      rkA(2,2) = 0.25d0
+      rkA(3,1) = 0.34d0
+      rkA(3,2) =-0.40d-1
+      rkA(3,3) = 0.25d0
+      rkA(4,1) = 0.2727941176470588235294117647058824d0
+      rkA(4,2) =-0.5036764705882352941176470588235294d-1
+      rkA(4,3) = 0.2757352941176470588235294117647059d-1
+      rkA(4,4) = 0.25d0
+      rkA(5,1) = 1.041666666666666666666666666666667d0
+      rkA(5,2) =-1.020833333333333333333333333333333d0
+      rkA(5,3) = 7.812500000000000000000000000000000d0
+      rkA(5,4) =-7.083333333333333333333333333333333d0
+      rkA(5,5) = 0.25d0
+
+      rkB(1)   =  1.041666666666666666666666666666667d0
+      rkB(2)   = -1.020833333333333333333333333333333d0
+      rkB(3)   =  7.812500000000000000000000000000000d0
+      rkB(4)   = -7.083333333333333333333333333333333d0
+      rkB(5)   =  0.250000000000000000000000000000000d0
+
+      rkBhat(1)=  1.069791666666666666666666666666667d0
+      rkBhat(2)= -0.894270833333333333333333333333333d0
+      rkBhat(3)=  7.695312500000000000000000000000000d0
+      rkBhat(4)= -7.083333333333333333333333333333333d0
+      rkBhat(5)=  0.212500000000000000000000000000000d0
+
+      rkC(1)   = 0.25d0
+      rkC(2)   = 0.75d0
+      rkC(3)   = 0.55d0
+      rkC(4)   = 0.50d0
+      rkC(5)   = 1.00d0
+
+! Ynew = Yold + h*Sum_i {rkB_i*k_i} = Yold + Sum_i {rkD_i*Z_i}
+      rkD(1)   = 0.0d0
+      rkD(2)   = 0.0d0
+      rkD(3)   = 0.0d0
+      rkD(4)   = 0.0d0
+      rkD(5)   = 1.0d0
+
+! Err = h * Sum_i {(rkB_i-rkBhat_i)*k_i} = Sum_i {rkE_i*Z_i}
+      rkE(1)   =  0.5750d0
+      rkE(2)   =  0.2125d0
+      rkE(3)   = -4.6875d0
+      rkE(4)   =  4.2500d0
+      rkE(5)   =  0.1500d0
+
+! Local order of Err estimate
+      rkElo    = 4
+
+! h*Sum_j {rkA_ij*k_j} = Sum_j {rkTheta_ij*Z_j}
+      rkTheta(2,1) = 2.d0
+      rkTheta(3,1) = 1.680000000000000000000000000000000d0
+      rkTheta(3,2) = -.1600000000000000000000000000000000d0
+      rkTheta(4,1) = 1.308823529411764705882352941176471d0
+      rkTheta(4,2) = -.1838235294117647058823529411764706d0
+      rkTheta(4,3) = 0.1102941176470588235294117647058824d0
+      rkTheta(5,1) = -3.083333333333333333333333333333333d0
+      rkTheta(5,2) = -4.291666666666666666666666666666667d0
+      rkTheta(5,3) =  34.37500000000000000000000000000000d0
+      rkTheta(5,4) = -28.33333333333333333333333333333333d0
+
+! Starting value for Newton iterations: Z_i^0 = Sum_j {rkAlpha_ij*Z_j}
+      rkAlpha(2,1) = 3.
+      rkAlpha(3,1) = .8800000000000000000000000000000000d0
+      rkAlpha(3,2) = .4400000000000000000000000000000000d0
+      rkAlpha(4,1) = .1666666666666666666666666666666667d0
+      rkAlpha(4,2) = -.8333333333333333333333333333333333d-1
+      rkAlpha(4,3) = .9469696969696969696969696969696970d0
+      rkAlpha(5,1) = -6.d0
+      rkAlpha(5,2) = 9.d0
+      rkAlpha(5,3) = -56.81818181818181818181818181818182d0
+      rkAlpha(5,4) = 54.d0
+      
+      END SUBROUTINE Sdirk4b
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE Sdirk2a
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      sdMethod = S2A
+! Number of stages
+      rkS = 2
+
+! Method coefficients
+      rkGamma = .2928932188134524755991556378951510d0
+
+      rkA(1,1) = .2928932188134524755991556378951510d0
+      rkA(2,1) = .7071067811865475244008443621048490d0
+      rkA(2,2) = .2928932188134524755991556378951510d0
+
+      rkB(1)   = .7071067811865475244008443621048490d0
+      rkB(2)   = .2928932188134524755991556378951510d0
+
+      rkBhat(1)= .6666666666666666666666666666666667d0
+      rkBhat(2)= .3333333333333333333333333333333333d0
+
+      rkC(1)   = 0.292893218813452475599155637895151d0
+      rkC(2)   = 1.0d0
+
+! Ynew = Yold + h*Sum_i {rkB_i*k_i} = Yold + Sum_i {rkD_i*Z_i}
+      rkD(1)   = 0.0d0
+      rkD(2)   = 1.0d0
+
+! Err = h * Sum_i {(rkB_i-rkBhat_i)*k_i} = Sum_i {rkE_i*Z_i}
+      rkE(1)   =  0.4714045207910316829338962414032326d0
+      rkE(2)   = -0.1380711874576983496005629080698993d0
+
+! Local order of Err estimate
+      rkElo    = 2
+
+! h*Sum_j {rkA_ij*k_j} = Sum_j {rkTheta_ij*Z_j}
+      rkTheta(2,1) = 2.414213562373095048801688724209698d0
+
+! Starting value for Newton iterations: Z_i^0 = Sum_j {rkAlpha_ij*Z_j}
+      rkAlpha(2,1) = 3.414213562373095048801688724209698d0
+          
+      END SUBROUTINE Sdirk2a
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE Sdirk2b
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      sdMethod = S2B
+! Number of stages
+      rkS      = 2
+
+! Method coefficients
+      rkGamma  = 1.707106781186547524400844362104849d0
+
+      rkA(1,1) = 1.707106781186547524400844362104849d0
+      rkA(2,1) = -.707106781186547524400844362104849d0
+      rkA(2,2) = 1.707106781186547524400844362104849d0
+
+      rkB(1)   = -.707106781186547524400844362104849d0
+      rkB(2)   = 1.707106781186547524400844362104849d0
+
+      rkBhat(1)= .6666666666666666666666666666666667d0
+      rkBhat(2)= .3333333333333333333333333333333333d0
+
+      rkC(1)   = 1.707106781186547524400844362104849d0
+      rkC(2)   = 1.0d0
+
+! Ynew = Yold + h*Sum_i {rkB_i*k_i} = Yold + Sum_i {rkD_i*Z_i}
+      rkD(1)   = 0.0d0
+      rkD(2)   = 1.0d0
+
+! Err = h * Sum_i {(rkB_i-rkBhat_i)*k_i} = Sum_i {rkE_i*Z_i}
+      rkE(1)   = -.4714045207910316829338962414032326d0
+      rkE(2)   =  .8047378541243650162672295747365659d0
+
+! Local order of Err estimate
+      rkElo    = 2
+
+! h*Sum_j {rkA_ij*k_j} = Sum_j {rkTheta_ij*Z_j}
+      rkTheta(2,1) = -.414213562373095048801688724209698d0
+
+! Starting value for Newton iterations: Z_i^0 = Sum_j {rkAlpha_ij*Z_j}
+      rkAlpha(2,1) = .5857864376269049511983112757903019d0
+      
+      END SUBROUTINE Sdirk2b
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE Sdirk3a
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      sdMethod = S3A
+! Number of stages
+      rkS = 3
+
+! Method coefficients
+      rkGamma = .2113248654051871177454256097490213d0
+
+      rkA(1,1) = .2113248654051871177454256097490213d0
+      rkA(2,1) = .2113248654051871177454256097490213d0
+      rkA(2,2) = .2113248654051871177454256097490213d0
+      rkA(3,1) = .2113248654051871177454256097490213d0
+      rkA(3,2) = .5773502691896257645091487805019573d0
+      rkA(3,3) = .2113248654051871177454256097490213d0
+
+      rkB(1)   = .2113248654051871177454256097490213d0
+      rkB(2)   = .5773502691896257645091487805019573d0
+      rkB(3)   = .2113248654051871177454256097490213d0
+
+      rkBhat(1)= .2113248654051871177454256097490213d0
+      rkBhat(2)= .6477918909913548037576239837516312d0
+      rkBhat(3)= .1408832436034580784969504064993475d0
+
+      rkC(1)   = .2113248654051871177454256097490213d0
+      rkC(2)   = .4226497308103742354908512194980427d0
+      rkC(3)   = 1.d0
+
+! Ynew = Yold + h*Sum_i {rkB_i*k_i} = Yold + Sum_i {rkD_i*Z_i}
+      rkD(1)   = 0.d0
+      rkD(2)   = 0.d0
+      rkD(3)   = 1.d0
+
+! Err = h * Sum_i {(rkB_i-rkBhat_i)*k_i} = Sum_i {rkE_i*Z_i}
+      rkE(1)   =  0.9106836025229590978424821138352906d0
+      rkE(2)   = -1.244016935856292431175815447168624d0
+      rkE(3)   =  0.3333333333333333333333333333333333d0
+
+! Local order of Err estimate
+      rkElo    = 2
+
+! h*Sum_j {rkA_ij*k_j} = Sum_j {rkTheta_ij*Z_j}
+      rkTheta(2,1) =  1.0d0
+      rkTheta(3,1) = -1.732050807568877293527446341505872d0
+      rkTheta(3,2) =  2.732050807568877293527446341505872d0
+
+! Starting value for Newton iterations: Z_i^0 = Sum_j {rkAlpha_ij*Z_j}
+      rkAlpha(2,1) =   2.0d0
+      rkAlpha(3,1) = -12.92820323027550917410978536602349d0
+      rkAlpha(3,2) =   8.83012701892219323381861585376468d0
+
+      END SUBROUTINE Sdirk3a
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   END SUBROUTINE SDIRK ! AND ALL ITS INTERNAL PROCEDURES
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE FUN_CHEM( T, Y, P )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      USE KPP_ROOT_Parameters, ONLY: NVAR, LU_NONZERO
+      USE KPP_ROOT_Global, ONLY: FIX, RCONST, TIME
+      USE KPP_ROOT_Function, ONLY: Fun
+      USE KPP_ROOT_Rates, ONLY: Update_SUN, Update_RCONST, Update_PHOTO
+      IMPLICIT NONE
+
+      KPP_REAL :: T, Told
+      KPP_REAL :: Y(NVAR), P(NVAR)
+      
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      
+      CALL Fun( Y, FIX, RCONST, P )
+      
+      TIME = Told
+      
+      END SUBROUTINE FUN_CHEM
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE JAC_CHEM( T, Y, JV )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      USE KPP_ROOT_Parameters, ONLY: NVAR, LU_NONZERO
+      USE KPP_ROOT_Global, ONLY: FIX, RCONST, TIME
+      USE KPP_ROOT_Jacobian
+      USE KPP_ROOT_Jacobian, ONLY: Jac_SP
+      USE KPP_ROOT_Rates, ONLY: Update_SUN, Update_RCONST, Update_PHOTO
+      IMPLICIT NONE
+  
+      KPP_REAL ::  T, Told
+      KPP_REAL ::  Y(NVAR)
+#ifdef FULL_ALGEBRA
+      KPP_REAL :: JS(LU_NONZERO), JV(NVAR,NVAR)
+      INTEGER :: i, j
+#else
+      KPP_REAL :: JV(LU_NONZERO)
+#endif
+ 
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+
+#ifdef FULL_ALGEBRA
+      CALL Jac_SP(Y, FIX, RCONST, JS)
+      DO j=1,NVAR
+         DO i=1,NVAR
+          JV(i,j) = 0.0D0
+         END DO
+      END DO
+      DO i=1,LU_NONZERO
+         JV(LU_IROW(i),LU_ICOL(i)) = JS(i)
+      END DO
+#else
+      CALL Jac_SP(Y, FIX, RCONST, JV)
+#endif
+      TIME = Told
+
+      END SUBROUTINE JAC_CHEM
+
+END MODULE KPP_ROOT_Integrator
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/sdirk.m
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/sdirk.m	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/sdirk.m	(revision 2696)
@@ -0,0 +1,1006 @@
+function [T,Y,RCNTRL,ICNTRL,RSTATUS,ISTATUS]=...
+    SdirkInt(Function,Tspan,Y0,Options,RCNTRL,ICNTRL)
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+%  SDIRK - Implementation of several SDIRK methods:
+%               * SDIRK4a                                                
+%               * SDIRK4b                                                
+%               * SDIRK3a                                                
+%               * SDIRK2b                                              
+%               * SDIRK2a
+%                                                                     
+%    Solves the system y'=F(t,y) using a SDIRK Method 
+%                                                                     
+%
+%    For details on SDIRK methods and their implementation consult:
+%      E. Hairer and G. Wanner
+%      "Solving ODEs II. Stiff and differential-algebraic problems".
+%      Springer series in computational mathematics, Springer-Verlag, 1996.
+%    The codes contained in the book inspired this implementation.
+%
+%    MATLAB implementation (C) Vishwas Rao (visrao@vt.edu).      
+%    Virginia Polytechnic Institute and State University             
+%    March, 2011    
+%
+%    Based on the Fortran90 implementation (C) Adrian Sandu, August 2004
+%    and revised by Philipp Miehe and Adrian Sandu, May 2006.
+%    Virginia Polytechnic Institute and State University
+%    Contact: sandu@cs.vt.edu
+%
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+%  Input Arguments :
+%  The first four arguments are similar to the input arguments of 
+%  MATLAB's ODE solvers
+%      Function  - A function handle for the ODE function
+%      Tspan     - The time space to integrate
+%      Y0        - Initial value
+%      Options   - ODE solver options created by odeset():           
+%                  AbsTol, InitialStep, Jacobian, MaxStep, and RelTol
+%                  are considered.  Other options are ignored.       
+%                  'Jacobian' must be set.                           
+%      RCNTRL    - real value input parameters (explained below)
+%      ICNTRL    - integer input parameters (explained below)
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+%  Output Arguments:
+%  The first two arguments are similar to the output arguments of
+%  MATLAB's ODE solvers
+%      T         - A vector of final integration times.
+%      Y         - A matrix of function values.  Y(T(i),:) is the value of
+%                  the function at the ith output time.
+%      RCNTRL    - real value input parameters (explained below)
+%      ICNTRL    - integer input parameters (explained below)
+%      RSTATUS     - real output parameters (explained below)
+%      ISTATUS     - integer output parameters (explained below)
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+%
+%    RCNTRL and ICNTRL on input and output:
+%
+%    Note: For input parameters equal to zero the default values of the
+%       corresponding variables are used.
+%
+%    
+%
+%    ICNTRL(1) = 0: AbsTol, RelTol are N-dimensional vectors
+%              = 1: AbsTol, RelTol are scalars
+%
+%    ICNTRL(2)  -> selection of a particular SDIRK method
+%        = 0 :    Sdirk2a(Default)
+%        = 1 :    Sdirk2a
+%        = 2 :    Sdirk2b
+%        = 3 :    Sdirk3a
+%        = 4 :    Sdirk4a
+%        = 5 :    Sdirk4b
+%        
+%        
+%
+%    ICNTRL(3)  -> maximum number of integration steps
+%        For ICNTRL(3)=0) the default value of 100000 is used
+%
+%    RCNTRL(1)  -> Hmin, lower bound for the integration step size
+%          It is strongly recommended to keep Hmin = ZERO
+%    RCNTRL(2)  -> Hmax, upper bound for the integration step size
+%    RCNTRL(3)  -> Hstart, starting value for the integration step size
+%
+%    RCNTRL(4)  -> FacMin, lower bound on step decrease factor (default=0.2)
+%    RCNTRL(5)  -> FacMax, upper bound on step increase factor (default=6)
+%    RCNTRL(6)  -> FacRej, step decrease factor after multiple rejections
+%                          (default=0.1)
+%    RCNTRL(7)  -> FacSafe, by which the new step is slightly smaller
+%         than the predicted value  (default=0.9)
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+%
+%    RSTAT and ISTAT on output:
+%
+%    ISTATUS(1)  -> No. of function calls
+%    ISTATUS(2)  -> No. of jacobian calls
+%    ISTATUS(3)  -> No. of steps
+%    ISTATUS(4)  -> No. of accepted steps
+%    ISTATUS(5)  -> No. of rejected steps (except at very beginning)
+%    ISTATUS(6)  -> No. of LU decompositions
+%    ISTATUS(7)  -> No. of forward/backward substitutions
+%    ISTATUS(8)  -> No. of singular matrix decompositions
+%
+%    RSTATUS(1)  -> Texit, the time corresponding to the
+%                     computed Y upon return
+%    RSTATUS(2)  -> Hexit, last accepted step before exit
+%    RSTATUS(3)  -> Hnew, last predicted step (not yet taken)
+%                   For multiple restarts, use Hnew as Hstart
+%                     in the subsequent run
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+global Nfun Njac Nstp Nacc Nrej Ndec Nsol Nsng Ntexit Nhexit Nhnew
+% Parse ODE options
+AbsTol = odeget(Options, 'AbsTol');
+if isempty(AbsTol)
+    AbsTol = 1.0e-3;
+end
+Hstart = odeget(Options, 'InitialStep');
+if isempty(Hstart)
+    Hstart = 0;
+end
+Jacobian = odeget(Options, 'Jacobian');
+if isempty(Jacobian)
+    error('A Jacobian function is required.');
+end
+Hmax = odeget(Options, 'MaxStep');
+if isempty(Hmax)
+    Hmax = 0;
+end
+RelTol = odeget(Options, 'RelTol');
+if isempty(RelTol)
+    RelTol = 1.0e-4;
+end
+% Initialize statistics
+Nfun=1; Njac=2; Nstp=3; Nacc=4; Nrej=5; Ndec=6; Nsol=7; Nsng=8;
+Ntexit=1; Nhexit=2; Nhnew=3;
+RSTATUS = zeros(20,1);
+ISTATUS = zeros(20,1);
+
+% Get problem size
+steps = length(Tspan);
+N = max(size(Y0));
+
+% Initialize tolerances
+ATOL = ones(N,1)*AbsTol;
+RTOL = ones(N,1)*RelTol;
+
+% Initialize step
+RCNTRL(2) = max(0, Hmax);
+RCNTRL(3) = max(0, Hstart);
+
+% Integrate
+Y = zeros(N,steps);
+T = zeros(steps,1);
+Y(:,1) = Y0;
+T(1) = Tspan(1);
+t=cputime;
+for i=2:steps
+    [T(i), Y(:,i), IERR,ISTATUS,RSTATUS] = ...
+        Sdirk_Integrate(N, Y(:,i-1), T(i-1), Tspan(i), ...
+            Function, Jacobian, ATOL, RTOL, RCNTRL, ICNTRL,ISTATUS,RSTATUS);
+
+    if IERR < 0
+        error(['SDIRK exited with IERR=',num2str(IERR)]);
+    end
+
+end
+cputime-t
+
+
+
+function [T,Y,Ierr,ISTATUS,RSTATUS] = Sdirk_Integrate(N,Y0,TIN, TOUT,OdeFunction1,...
+    OdeJacobian1,ATOL,RTOL,RCNTRL,ICNTRL,ISTATUS,RSTATUS)
+global ZERO ONE Nfun Njac Nstp Nacc Nrej Ndec Nsol Nsng Ntexit Nhexit Nhnew
+global Smax S2A S2B S3A S4A S4B 
+global rkTheta rkAlpha
+ZERO = 0; ONE=1.0; Nfun = 1; Njac = 2; Nstp = 3; Nacc = 4; Nrej = 5;Ndec=6;
+Nsol = 7; Nsng = 8; Ntexit = 1; Nhexit = 2; Nhnew = 3; Smax = 5; S2A = 1;
+S2B = 2; S3A = 3; S4A = 4; S4B = 5;
+rkTheta = zeros(Smax);
+rkAlpha = zeros(Smax);
+
+%Local Variables
+ISTATUS = zeros(20,1);
+RSTATUS = zeros(20,1);
+
+% Fine-Tune the integrator
+T1 = TIN;
+T2 = TOUT;
+RTOL=ones(size(Y0));
+RTOL=1e-3*RTOL;
+ATOL=RTOL;
+
+    [T,Y,Ierr,RSTATUS,ISTATUS] = SDIRK(N, T1,T2,Y0,RTOL,ATOL,RCNTRL,ICNTRL,RSTATUS,ISTATUS,OdeFunction1,OdeJacobian1);
+
+if Ierr < 0
+    disp(['SDIRK:Unsuccessful exit at ',num2str(TIN), ' ',num2str(Ierr)]);
+end
+return;
+
+
+
+
+function [T, Y, Ierr,RSTATUS,ISTATUS] = SDIRK(N,T1,T2,Y,AbsTol,RelTol,...
+                        RCNTRL,ICNTRL,RSTATUS,ISTATUS,OdeFunction1,OdeJacobian1)
+
+global ZERO ONE 
+
+
+Max_no_steps = 0;Hmin = 0;Hmax = 0; Hstart = 0; Roundoff = eps; FacMin = 0;
+FacMax = 0; FacSafe = 0; FacRej = 0; 
+if(ICNTRL(1)==0)
+    ITOL = 1;
+else
+    ITOL = 0;
+end
+Ierr = 0;
+%~~~> Method Selection
+switch (ICNTRL(2))
+    
+    case (0)
+        Sdirk2a();
+    case (1)
+        Sdirk2a();
+    case (2)
+        Sdirk2b();
+    case(3)
+        Sdirk3a();
+    case(4)
+        Sdirk4a();
+    case(5)
+        Sdirk4b();
+    otherwise
+        Sdirk2a();
+end
+
+if (ICNTRL(3)==ZERO)
+    Max_no_steps = 200000;
+end
+if(ICNTRL(3) > ZERO)
+        Max_no_steps = ICNTRL(3);
+end
+
+if(ICNTRL(3) < ZERO)
+    disp(['User-Selected ICNTRL(3)=',num2str(ICNTRL(3))]);
+    SDIRK_ErrorMsg(-1,T1,ZERO,Ierr);
+end;
+%~~>StartNewton Extrapolate for starting values of Newton iterations
+if(ICNTRL(5)==ZERO)
+    StartNewton = 1;
+else
+    StartNewton = 0;
+end;
+
+if(ICNTRL(4)>=ZERO)
+    if(ICNTRL(4)==ZERO)
+        NewtonMaxit = 8;
+    else
+        NewtonMaxit = ICNTRL(4);
+    end
+else
+    disp(['User-Selected NewtonMaxit ICNTRL(4)=',num2str(ICNTRL(4))]);
+    SDIRK_ErrorMsg(-2,T1,ZERO,Ierr);
+end;
+
+%~~> Lower bound on the step size (Positive value)
+
+if(RCNTRL(1)==ZERO)
+    Hmin = ZERO;
+end
+if (RCNTRL(1)>ZERO)
+        Hmin = RCNTRL(1);
+end    
+if(RCNTRL(1)<ZERO)
+    disp(['User-Selected Hmin, RCNTRL(1)=',num2str(RCNTRL(1))]);
+    SDIRK_ErrorMsg(-3,T1,ZERO,Ierr);
+end;
+% Upper bound on the step size : (Positive value)
+
+if(RCNTRL(2)==ZERO)
+    Hmax = abs(T2-T1);
+end
+if(RCNTRL(2)>ZERO)
+    Hmax = min(abs(T2-T1),RCNTRL(2));
+end;
+if(RCNTRL(2)<ZERO)
+    disp(['User-Selected Hmax, RCNTRL(2)=',num2str(RCNTRL(2))]);
+    SDIRK_ErrorMsg(-3,T1,ZERO,Ierr);
+end;
+%~~> Starting step size
+
+if(RCNTRL(3)>=ZERO)
+    if(RCNTRL(3)==ZERO)
+        Hstart = max(Hmin,Roundoff);
+    else
+        Hstart = min(abs(RCNTRL(3)),abs(T2-T1));
+    end
+else
+    disp(['User-Selected Hstart, RCNTRL(3)=',num2str(RCNTRL(3))]);
+    SDIRK_ErrorMsg(-3,T1,ZERO,Ierr);
+end;
+%~~> Stepsize can be changed such that FacMin < Hnew/Hexit < FacMax
+if(RCNTRL(4) >= ZERO)
+    if(RCNTRL(4) == ZERO)
+        FacMin = 0.2;
+    else
+        FacMin = RCNTRL(4);
+    end
+else
+    disp(['User-Selected FacMin, RCNTRL(4)=',num2str(RCNTRL(4))]);
+    SDIRK_ErrorMsg(-4,T1,ZERO,Ierr);
+end
+
+
+if (RCNTRL(5)>=ZERO)
+    if(RCNTRL(5)==ZERO)
+        FacMax = 10.0;
+    else
+        FacMax = RCNTRL(5);
+    end
+else
+    disp(['User-Selected FacMax, RCNTRL(5)=',num2str(RCNTRL(5))]);
+    SDIRK_ErrorMsg(-4,T1,ZERO,Ierr);
+end
+
+%~~> FacRej Factor to decrease step after 2 successive rejections
+
+if(RCNTRL(6)>=ZERO)
+    if(RCNTRL(6) == ZERO)
+        FacRej = 0.1;
+    else
+        FacRej = RCNTRL(6);
+    end
+else
+    disp(['User-Selected FacRej, RCNTRL(6)=',num2str(RCNTRL(6))]);
+    SDIRK_ErrorMsg(-4,T1,ZERO,Ierr);
+end;
+
+%~~> FacSafe Safety Factor in the computation of new step size
+
+if(RCNTRL(7)>=ZERO)
+    if(RCNTRL(7)==ZERO)
+        FacSafe = 0.9;
+    else
+        FacSafe = RCNTRL(7);
+    end
+else
+    disp(['User-Selected FacSafe, RCNTRL(7)=',num2str(RCNTRL(7))]);
+    SDIRK_ErrorMsg(-4,T1,ZERO,Ierr);
+end
+
+%~~> ThetaMin decides whether the Jacobian should be recomputed
+
+if(RCNTRL(8) == ZERO)
+    ThetaMin = 1.0E-3;
+else
+    ThetaMin = RCNTRL(8);
+end;
+
+%~~> Stopping Criteria for Newtons method
+
+if(RCNTRL(9) == ZERO)
+    NewtonTol = 3.0e-4;
+else
+    NewtonTol = RCNTRL(9);
+end;
+
+%~~> Qmin, Qmax : IF Qmin <Hnew/Hold<Qmax STEP SIZE = constant
+
+if(RCNTRL(10) == ZERO)
+    Qmin = ONE;
+else
+    Qmin = RCNTRL(10);
+end
+
+if(RCNTRL(11) == ZERO)
+    Qmax = 1.2;
+else
+    Qmax = RCNTRL(11);
+end
+
+%~~> Check if tolerances are reasonable
+if(ITOL == ZERO)
+    if((AbsTol(1)<=ZERO) || RelTol(1) <=10*Roundoff)
+        SDIRK_ErrorMsg(-5,T1,ZERO,Ierr);
+    end;
+else
+    for i=1:N
+        if((AbsTol(i)<=ZERO)||RelTol(i)<=10*Roundoff)
+            SDIRK_ErrorMsg(-5,T1,ZERO,Ierr);
+        end
+    end
+end
+if(Ierr < 0)
+    return;
+end
+
+
+
+[T,Y,Ierr,ISTATUS,RSTATUS] = SDIRK_Inetgrator(N,T1,T2,Y,Hstart,Hmin,...
+                            Hmax,Roundoff,AbsTol,RelTol,...
+                            ITOL,Max_no_steps,StartNewton,NewtonTol,ThetaMin,...
+                            FacSafe,FacMin,FacMax,FacRej,Qmin,Qmax,NewtonMaxit,ISTATUS,RSTATUS,Ierr,OdeFunction1,OdeJacobian1);
+ 
+
+
+return;
+
+function[T,Y,Ierr,ISTATUS,RSTATUS] = SDIRK_Inetgrator(N,T1,T2,Y,Hstart,Hmin,...
+                            Hmax,Roundoff,AbsTol,RelTol,...
+                            ITOL,Max_no_steps,StartNewton,NewtonTol,ThetaMin,...
+                            FacSafe,FacMin,FacMax,FacRej,Qmin,Qmax,NewtonMaxit,ISTATUS,RSTATUS,Ierr,OdeFunction1,OdeJacobian1)
+global ZERO ONE Nfun Nstp Nacc Nrej Ntexit Nhexit Nhnew
+global rkS rkGamma rkELO
+global rkC rkD rkE rkTheta rkAlpha
+T =T1;
+Tdirection = sign(T2-T1);
+H = max(abs(Hmin),abs(Hstart));
+if(H<=10.0*Roundoff)
+    H = 1.0e-6;
+end;
+H = min(H,Hmax);
+H=sign(Tdirection)*H;
+SkipLU = 0;
+SkipJac = 0;
+Reject = 0;
+FirstStep = 1;
+CycleTloop = 0;
+SCAL = SDIRK_ErrorScale(N,ITOL,AbsTol,RelTol,Y);
+FJAC = zeros(N);
+while((T2-T)*Tdirection - Roundoff > ZERO)
+    if(SkipLU == 0)
+        [E1L,E1U,ISTATUS,ISING]=PrepareMatrix(N,H,T,Y,FJAC,SkipJac, SkipLU,Reject,ISTATUS,OdeJacobian1);
+        if(ISING ~= 0)
+            SDIRK_ErrorMsg(-8,T,H,Ierr);
+            return;
+        end;
+    end;
+    if(ISTATUS(Nstp)>Max_no_steps)
+        SDIRK_ErrorMsg(-6, T, H, Ierr);
+        return;
+    end;
+    
+    if(T+0.1*H==T || abs(H)<=Roundoff)
+        SDIRK_ErrorMsg(-7,T,H,Ierr);
+        return;
+    end
+    %~~> Simplified Newton Iterations
+    Z=zeros(rkS,N);
+    for istage=1:rkS
+        G=zeros(N,1);
+        if(istage>1)
+            aa=rkTheta(1:istage,istage);
+            G=Z(1:istage,:)'*aa;
+            if(StartNewton==1)
+                for j=1:istage
+                    Z(istage,:)=Z(istage,:)+rkAlpha(j,istage)*Z(j,:);
+                end
+                
+            end
+                
+		end
+		NewtonDone = 0;
+		Fac = 0.5;
+		for	NewtonIter=0:NewtonMaxit-1
+			TMP=Z(istage,:)'+Y;
+			RHS=OdeFunction1(T+rkC(istage)*H,TMP);
+			ISTATUS(Nfun)=ISTATUS(Nfun)+1;
+			RHS=H*rkGamma*RHS;
+			RHS=RHS-Z(istage,:)';
+            RHS=RHS+G;
+			[RHS,ISTATUS]=SDIRK_Solve(H,N,E1L,E1U,RHS,ISTATUS);
+			NewtonIncrement = SDIRK_ErrorNorm(N,RHS,SCAL);
+			if(NewtonIter==0)
+				Theta = abs(ThetaMin);
+				NewtonRate = 2.0;
+			else
+				Theta = NewtonIncrement/NewtonIncrementOld;
+				if (Theta < 0.99)
+					NewtonRate = Theta/(1-Theta);
+					NewtonPredictedErr = NewtonIncrement*Theta^((NewtonMaxit - (NewtonIter+1))/(ONE-Theta));
+					if(NewtonPredictedErr>=NewtonTol)
+						Qnewton = min(10,NewtonPredictedErr/NewtonTol);
+						Fac = 0.8*Qnewton ^(-ONE/(NewtonMaxit-NewtonIter));
+						break;
+					end
+				else
+					break;
+				end
+			end;
+			NewtonIncrementOld = NewtonIncrement;
+			Z(istage,:)=Z(istage,:)+RHS';
+			NewtonDone=(NewtonRate*NewtonIncrement<=NewtonTol);
+			if(NewtonDone == 1)
+				break;
+			end;
+		end;
+
+		if(NewtonDone == 0)
+			H=Fac*H;
+			Reject =1;
+			SkipJac = 1;
+			SkipLU = 0;
+			CycleTloop = 1;
+		end;
+		if(CycleTloop == 1)
+			CycleTloop = 0;
+			break;
+		end
+	end;
+	if(CycleTloop==0)
+	%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%
+	%~~~~ Error Estimation ~~~~~~~~~~~~~~%
+	%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%
+	ISTATUS(Nstp) = ISTATUS(Nstp)+1;
+	TMP = zeros(N,1);
+    rr=rkE(1:rkS);
+    TMP = (rr*Z)';
+	
+	[TMP,ISTATUS]=	SDIRK_Solve(H,N,E1L,E1U,TMP,ISTATUS);
+	Err = SDIRK_ErrorNorm (N,TMP,SCAL);
+	%/*~~~~> Computation of new step size Hnew */
+
+	Fac = FacSafe *Err^(-ONE/rkELO);
+	Fac = max (FacMin, min(FacMax,Fac));
+    Hnew = H*Fac;
+	%/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+	%/*~~~>  Accept/Reject step    */
+	%/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+	if(Err < ONE)
+		FirstStep = 0;
+		ISTATUS(Nacc)=ISTATUS(Nacc)+1;
+		T=T+H;
+        Y=Y+(rkD(1:rkS)*Z)';
+		SCAL = SDIRK_ErrorScale(N,ITOL,AbsTol,RelTol,Y);
+		Hnew = Tdirection*min(abs(Hnew),Hmax);
+		RSTATUS(Ntexit)=T;
+		RSTATUS(Nhexit)=H;
+		RSTATUS(Nhnew)=Hnew;
+		if(Reject == 1)
+			Hnew = Tdirection*min(abs(Hnew),abs(H));
+		end;
+		Reject = 0;
+		if((T+Hnew/Qmin - T2)*Tdirection > ZERO)
+			H=T2-T;
+		else
+			Hratio = Hnew/H;
+			SkipLU = ((Theta<=ThetaMin) && (Hratio >=Qmin) && (Hratio<=Qmax));
+			if(SkipLU==0)
+				H=Hnew;
+			end
+		end
+		SkipJac = (Theta<=ThetaMin);
+		SkipJac = 0;
+	else
+		if(FirstStep==1 || Reject==1)
+			H=FacRej*H;
+		else
+			H=Hnew;
+		end;
+		Reject=1;
+		SkipJac =1;
+		SkipLU=0;
+		if(ISTATUS(Nacc)>=1)
+			ISTATUS(Nrej)=ISTATUS(Nrej)+1;
+		end
+	end
+	end
+end
+
+Ierr =1;
+return;
+
+
+
+
+function [SCAL] = SDIRK_ErrorScale(N,ITOL,AbsTol,RelTol,Y)
+ZERO =0;
+if(ITOL==ZERO)
+    temp = RelTol(1)*Y;
+    temp =(AbsTol(1)+abs(temp));
+    SCAL=1./temp;
+else
+    SCAL=1./(AbsTol+RelTol.*abs(Y));
+end
+return;
+
+
+function [Err] = SDIRK_ErrorNorm(N,Y,SCAL)
+ZERO=0;
+temp=Y.*Y.*SCAL.*SCAL;
+Err=sum(temp);
+Err = max(sqrt(Err/N),1e-10);
+return
+
+
+function SDIRK_ErrorMsg(code,T,H,Ierr)
+Ierr = code;
+
+disp('\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
+disp('\nForced exit from Sdirk due to the following error:\n');
+
+switch (code) 
+
+case -1
+	disp('--> Improper value for maximal no of steps');
+	
+case -2
+	disp('--> Selected SDIRK method not implemented');
+	
+case -3
+	printf('--> Hmin/Hmax/Hstart must be positive');
+	
+case -4
+	printf('--> FacMin/FacMax/FacRej must be positive');
+	
+case -5
+	printf('-> Improper tolerance values');
+case -6
+	disp('--> No of steps exceeds maximum bound');
+case -7
+	disp('--> Step size too small (T + H/10 = T) or H < Roundoff');
+case -8
+	printf('--> Matrix is repeatedly singular');
+
+end;
+return
+
+
+function [E1L,E1U,ISTATUS,ISING]=PrepareMatrix(N,H,T,Y,FJAC,SkipJac, SkipLU,Reject,ISTATUS,OdeJacobian1)
+global ZERO Njac  Ndec  Nsng 
+global rkGamma 
+
+
+ConsecutiveSng = 0;
+ISING =1;
+while (ISING ~= ZERO)
+    HGammaInv = 1/(H*rkGamma);
+    if(SkipJac == 0)
+        FJAC = OdeJacobian1(T,Y);
+        ISTATUS(Njac)=ISTATUS(Njac)+1;
+    end;
+    E=eye(N);
+    E=HGammaInv*E-FJAC;
+    
+    [E1L,E1U] = lu(E);
+    if(min(rank(E1L),rank(E1U))<N)
+        ISING = 1;
+    else
+        ISING = 0;
+    end;
+    ISTATUS(Ndec) =ISTATUS(Ndec)+1;
+    if(ISING ~= 0 )
+        ISTATUS(Nsng)=ISTATUS(Nsng)+1;
+        ConsecutiveSng=ConsecutiveSng+1;
+        
+        if(ConsecutiveSng >= 6)
+            return;
+        end
+        H = 0.5*H;
+        SkipJac =1;
+        SkipLU = 0;
+        Reject =1 ;
+    end;
+end
+return;
+
+
+function [RHS,ISTATUS] = SDIRK_Solve(H,N,E1L,E1U,RHS,ISTATUS)
+global  Nsol 
+global  rkGamma 
+
+HGammaInv = 1/(H*rkGamma);
+RHS = HGammaInv*RHS;
+size(RHS);
+size(E1L);
+size(E1U);
+temp = E1L\RHS;
+RHS = E1U\temp;
+ISTATUS(Nsol)=ISTATUS(Nsol)+1;
+return
+
+function Sdirk4a()
+%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*
+global ZERO ONE 
+global  S4A  sdMethod rkS rkGamma rkA rkB rkELO rkBhat
+global rkC rkD rkE rkTheta rkAlpha
+sdMethod = S4A;
+
+%/* Number of stages */
+rkS = 5;
+
+%/* Method Coefficients */
+rkGamma = 0.2666666666666666666666666666666667;
+
+rkA(1,1) = 0.2666666666666666666666666666666667;
+rkA(1,2) = 0.5000000000000000000000000000000000;
+rkA(2,2) = 0.2666666666666666666666666666666667;
+rkA(1,3) = 0.3541539528432732316227461858529820;
+rkA(2,3) = -0.5415395284327323162274618585298197e-01;
+rkA(3,3) = 0.2666666666666666666666666666666667;
+rkA(1,4) = 0.8515494131138652076337791881433756e-01;
+rkA(2,4) = -0.6484332287891555171683963466229754e-01;
+rkA(3,4) = 0.7915325296404206392428857585141242e-01;
+rkA(4,4) = 0.2666666666666666666666666666666667;
+rkA(1,5) = 2.100115700566932777970612055999074;
+rkA(2,5) = -0.7677800284445976813343102185062276;
+rkA(3,5) = 2.399816361080026398094746205273880;
+rkA(4,5) = -2.998818699869028161397714709433394;
+rkA(5,5) = 0.2666666666666666666666666666666667;
+rkB(1) = 2.100115700566932777970612055999074;
+rkB(2) = -0.7677800284445976813343102185062276;
+rkB(3) = 2.399816361080026398094746205273880;
+rkB(4) = -2.998818699869028161397714709433394;
+rkB(5) = 0.2666666666666666666666666666666667;
+
+rkBhat(1) = 2.885264204387193942183851612883390;
+rkBhat(2) = -0.1458793482962771337341223443218041;
+rkBhat(3) = 2.390008682465139866479830743628554;
+rkBhat(4) = -4.129393538556056674929560012190140;
+rkBhat(5) = ZERO;
+
+rkC(1) = 0.2666666666666666666666666666666667;
+rkC(2) = 0.7666666666666666666666666666666667;
+rkC(3) = 0.5666666666666666666666666666666667;
+rkC(4) = 0.3661315380631796996374935266701191;
+rkC(5) = ONE;
+
+%/* Ynew = Yold + h*Sum_i {rkB_i*k_i} = Yold + Sum_i {rkD_i*Z_i} */
+rkD(1) = ZERO;
+rkD(2) = ZERO;
+rkD(3) = ZERO;
+rkD(4) = ZERO;
+rkD(5) = ONE;
+
+%/* Err = h * Sum_i {(rkB_i-rkBhat_i)*k_i} = Sum_i {rkE_i*Z_i} */
+rkE(1) = -0.6804000050475287124787034884002302;
+rkE(2) = 1.558961944525217193393931795738823;
+rkE(3) = -13.55893003128907927748632408763868;
+rkE(4) = 15.48522576958521253098585004571302;
+rkE(5) = ONE;
+
+%/* Local order of Err estimate */
+rkELO = 4;
+
+%/* h*Sum_j {rkA_ij*k_j} = Sum_j {rkTheta_ij*Z_j} */
+rkTheta(1,2) = 1.875000000000000000000000000000000;
+rkTheta(1,3) = 1.708847304091539528432732316227462;
+rkTheta(2,3) = -0.2030773231622746185852981969486824;
+rkTheta(1,4) = 0.2680325578937783958847157206823118;
+rkTheta(2,4) = -0.1828840955527181631794050728644549;
+rkTheta(3,4) = 0.2968246986151577397160821594427966;
+rkTheta(1,5) = 0.9096171815241460655379433581446771;
+rkTheta(2,5) = -3.108254967778352416114774430509465;
+rkTheta(3,5) = 12.33727431701306195581826123274001;
+rkTheta(4,5) = -11.24557012450885560524143016037523;
+
+%/* Starting value for Newton iterations: Z_i^0 = Sum_j {rkAlpha_ij*Z_j} */
+rkAlpha(1,2) = 2.875000000000000000000000000000000;
+rkAlpha(1,3) = 0.8500000000000000000000000000000000;
+rkAlpha(2,3) = 0.4434782608695652173913043478260870;
+rkAlpha(1,4) = 0.7352046091658870564637910527807370;
+rkAlpha(2,4) = -0.9525565003057343527941920657462074e-01;
+rkAlpha(3,4) = 0.4290111305453813852259481840631738;
+rkAlpha(1,5) = -16.10898993405067684831655675112808;
+rkAlpha(2,5) = 6.559571569643355712998131800797873;
+rkAlpha(3,5) = -15.90772144271326504260996815012482;
+rkAlpha(4,5) = 25.34908987169226073668861694892683;
+
+rkELO = 4.0;
+
+% /* end Sdirk4a */
+
+%/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+function Sdirk4b()
+%/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+global ZERO ONE 
+global  S4B sdMethod rkS rkGamma rkA rkB rkELO rkBhat
+global rkC rkD rkE rkTheta rkAlpha
+
+sdMethod = S4B;
+
+%/* Number of stages */
+rkS = 5;
+
+%/* Method coefficients */
+rkGamma = 0.25;
+
+rkA(1,1) = 0.25;
+rkA(1,2) = 0.5;
+rkA(2,2) = 0.25;
+rkA(1,3) = 0.34;
+rkA(2,3) = -0.40e-01;
+rkA(3,3) = 0.25;
+rkA(1,4) = 0.2727941176470588235294117647058824;
+rkA(2,4) = -0.5036764705882352941176470588235294e-01;
+rkA(3,4) = 0.2757352941176470588235294117647059e-01;
+rkA(4,4) = 0.25;
+rkA(1,5) = 1.041666666666666666666666666666667;
+rkA(2,5) = -1.020833333333333333333333333333333;
+rkA(3,5) = 7.812500000000000000000000000000000;
+rkA(4,5) = -7.083333333333333333333333333333333;
+rkA(5,5) = 0.25;
+
+rkB(1) = 1.041666666666666666666666666666667;
+rkB(2) = -1.020833333333333333333333333333333;
+rkB(3) = 7.812500000000000000000000000000000;
+rkB(4) = -7.083333333333333333333333333333333;
+rkB(5) = 0.250000000000000000000000000000000;
+
+rkBhat(1) = 1.069791666666666666666666666666667;
+rkBhat(2) = -0.894270833333333333333333333333333;
+rkBhat(3) = 7.695312500000000000000000000000000;
+rkBhat(4) = -7.083333333333333333333333333333333;
+rkBhat(5) = 0.212500000000000000000000000000000;
+
+rkC(1) = 0.25;
+rkC(2) = 0.75;
+rkC(3) = 0.55;
+rkC(4) = 0.5;
+rkC(5) = ONE;
+
+%/* Ynew = Yold + h*Sum_i {rkB_i*k_i} = Yold + Sum_i {rkD_i*Z_i} */
+rkD(1) = ZERO;
+rkD(2) = ZERO;
+rkD(3) = ZERO;
+rkD(4) = ZERO;
+rkD(5) = ONE;
+
+%/* Err = h * Sum_i {(rkB_i-rkBhat_i)*k_i} = Sum_i {rkE_i*Z_i} */
+rkE(1) = 0.5750;
+rkE(2) = 0.2125;
+rkE(3) = -4.6875;
+rkE(4) = 4.2500;
+rkE(5) = 0.1500;
+
+%/* Local order of Err estimate */
+rkELO = 4;
+
+%/* h*Sum_j {rkA_ij*k_j} = Sum_j {rkTheta_ij*Z_j} */
+rkTheta(1,2) = 2.0;
+rkTheta(1,3) = 1.680000000000000000000000000000000;
+rkTheta(2,3) = -0.1600000000000000000000000000000000;
+rkTheta(1,4) = 1.308823529411764705882352941176471;
+rkTheta(2,4) = -0.1838235294117647058823529411764706;
+rkTheta(3,4) = 0.1102941176470588235294117647058824;
+rkTheta(1,5) = -3.083333333333333333333333333333333;
+rkTheta(2,5) = -4.291666666666666666666666666666667;
+rkTheta(3,5) = 34.37500000000000000000000000000000;
+rkTheta(4,5) = -28.3333333333333333333333333333;
+
+%/* Starting value for Newton iterations: Z_i^0 = Sum_j {rkAlpha_ij*Z_j} */
+rkAlpha(1,2) = 3.0;
+rkAlpha(1,3) = 0.8800000000000000000000000000000000;
+rkAlpha(2,3) = 0.4400000000000000000000000000000000;
+rkAlpha(1,4) = 0.1666666666666666666666666666666667;
+rkAlpha(2,4) = -0.8333333333333333333333333333333333e-01;
+rkAlpha(3,4) = 0.9469696969696969696969696969696970;
+rkAlpha(1,5) = -6.0;
+rkAlpha(2,5) = 9.0;
+rkAlpha(3,5) = -56.81818181818181818181818181818182;
+rkAlpha(4,5) = 54.0;
+
+ %/* end Sdirk4b */
+
+%/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+function Sdirk2a()
+%/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+global ZERO ONE 
+global  S2A  sdMethod rkS rkGamma rkA rkB rkELO rkBhat
+global rkC rkD rkE rkTheta rkAlpha
+
+sdMethod = S2A;
+
+%/* ~~~> Number of stages    */
+rkS = 2;
+
+%/* ~~~> Method coefficients    */
+rkGamma = 0.2928932188134524755991556378951510;
+rkA(1,1) = 0.2928932188134524755991556378951510;
+rkA(1,2) = 0.7071067811865475244008443621048490;
+rkA(2,2) = 0.2928932188134524755991556378951510;
+rkB(1) = 0.7071067811865475244008443621048490;
+rkB(2) = 0.2928932188134524755991556378951510;
+rkBhat(1) = 0.6666666666666666666666666666666667;
+rkBhat(2) = 0.3333333333333333333333333333333333;
+rkC(1) = 0.292893218813452475599155637895151;
+rkC(2) = ONE;
+
+%/* ~~~> Ynew = Yold + h*Sum_i {rkB_i*k_i} = Yold + Sum_i {rkD_i*Z_i}    */
+rkD(1) = ZERO;
+rkD(2) = ONE;
+
+%/* ~~~> Err = h * Sum_i {(rkB_i-rkBhat_i)*k_i} = Sum_i {rkE_i*Z_i}    */
+rkE(1) = 0.4714045207910316829338962414032326;
+rkE(2) = -0.1380711874576983496005629080698993;
+
+%/* ~~~> Local order of Err estimate    */
+rkELO = 2;
+
+%/* ~~~> h*Sum_j {rkA_ij*k_j} = Sum_j {rkTheta_ij*Z_j}    */
+rkTheta(1,2) = 2.414213562373095048801688724209698;
+
+%/* ~~~> Starting value for Newton iterations */
+rkAlpha(1,2) = 3.414213562373095048801688724209698;
+
+% /* end Sdirk2a */
+
+%/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+function Sdirk2b()
+%/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+global ZERO ONE 
+global  S2B  sdMethod rkS rkGamma rkA rkB rkELO rkBhat
+global rkC rkD rkE rkTheta rkAlpha
+
+sdMethod = S2B;
+
+%/* ~~~> Number of stages    */
+rkS      = 2;
+
+%/* ~~~> Method coefficients    */
+rkGamma = 1.707106781186547524400844362104849;
+rkA(1,1) = 1.707106781186547524400844362104849;
+rkA(1,2) = -0.707106781186547524400844362104849;
+rkA(2,2) = 1.707106781186547524400844362104849;
+rkB(1) = -0.707106781186547524400844362104849;
+rkB(2) = 1.707106781186547524400844362104849;
+rkBhat(1) = 0.6666666666666666666666666666666667;
+rkBhat(2) = 0.3333333333333333333333333333333333;
+rkC(1) = 1.707106781186547524400844362104849;
+rkC(2) = ONE;
+
+%/* ~~~> Ynew = Yold + h*Sum_i {rkB_i*k_i} = Yold + Sum_i {rkD_i*Z_i}    */
+rkD(1) = ZERO;
+rkD(2) = ONE;
+
+%/* ~~~> Err = h * Sum_i {(rkB_i-rkBhat_i)*k_i} = Sum_i {rkE_i*Z_i}    */
+rkE(1) = -0.4714045207910316829338962414032326;
+rkE(2) = 0.8047378541243650162672295747365659;
+
+%/* ~~~> Local order of Err estimate    */
+rkELO = 2;
+
+%/* ~~~> h*Sum_j {rkA_ij*k_j} = Sum_j {rkTheta_ij*Z_j}    */
+rkTheta(1,2) = -0.414213562373095048801688724209698;
+
+%/* ~~~> Starting value for Newton iterations */
+rkAlpha(1,2) = 0.5857864376269049511983112757903019;
+
+% /* end Sdirk2b */
+
+%/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+function Sdirk3a()
+%/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+global ZERO ONE 
+global  S3A  sdMethod rkS rkGamma rkA rkB rkELO rkBhat
+global rkC rkD rkE rkTheta rkAlpha
+
+sdMethod = S3A;
+
+%/* ~~~> Number of stages    */
+rkS = 3;
+
+%/* ~~~> Method coefficients    */
+rkGamma = 0.2113248654051871177454256097490213;
+rkA(1,1) = 0.2113248654051871177454256097490213;
+rkA(1,2) = 0.2113248654051871177454256097490213;
+rkA(2,2) = 0.2113248654051871177454256097490213;
+rkA(1,3) = 0.2113248654051871177454256097490213;
+rkA(2,3) = 0.5773502691896257645091487805019573;
+rkA(3,3) = 0.2113248654051871177454256097490213;
+rkB(1) = 0.2113248654051871177454256097490213;
+rkB(2) = 0.5773502691896257645091487805019573;
+rkB(3) = 0.2113248654051871177454256097490213;
+rkBhat(1)= 0.2113248654051871177454256097490213;
+rkBhat(2)= 0.6477918909913548037576239837516312;
+rkBhat(3)= 0.1408832436034580784969504064993475;
+rkC(1) = 0.2113248654051871177454256097490213;
+rkC(2) = 0.4226497308103742354908512194980427;
+rkC(3) = ONE;
+
+%/* ~~~> Ynew = Yold + h*Sum_i {rkB_i*k_i} = Yold + Sum_i {rkD_i*Z_i}    */
+rkD(1) = ZERO;
+rkD(2) = ZERO;
+rkD(3) = ONE;
+
+%/* ~~~> Err = h * Sum_i {(rkB_i-rkBhat_i)*k_i} = Sum_i {rkE_i*Z_i}    */
+rkE(1) = 0.9106836025229590978424821138352906;
+rkE(2) = -1.244016935856292431175815447168624;
+rkE(3) = 0.3333333333333333333333333333333333;
+
+%/* ~~~> Local order of Err estimate    */
+rkELO    = 2;
+
+%/* ~~~> h*Sum_j {rkA_ij*k_j} = Sum_j {rkTheta_ij*Z_j}    */
+rkTheta(1,2) =  ONE;
+rkTheta(1,3) = -1.732050807568877293527446341505872;
+rkTheta(2,3) = 2.732050807568877293527446341505872;
+
+%/* ~~~> Starting value for Newton iterations */
+rkAlpha(1,2) = 2.0;
+rkAlpha(1,3) = -12.92820323027550917410978536602349;
+rkAlpha(2,3) = 8.83012701892219323381861585376468;
+
+% /* end Sdirk3a */    
+
+
+      
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/sdirk_adj.c
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/sdirk_adj.c	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/sdirk_adj.c	(revision 2696)
@@ -0,0 +1,1705 @@
+
+#define MAX(a,b) ( ((a) >= (b)) ? (a):(b)  )
+#define MIN(b,c) ( ((b) < (c))  ? (b):(c)  )
+#define ABS(x)	 ( ((x) >= 0 )  ? (x):(-x) )
+#define SIGN(x,y)( ( (x*y) >= 0 ) ?(x):(-x) )
+#define SQRT(d)  ( pow((d),0.5)  )
+
+/* Numerical Constants */
+#define ZERO	    (KPP_REAL)0.0
+#define ONE	    (KPP_REAL)1.0
+#define HALF        (KPP_REAL)0.5
+#define DeltaMin    (KPP_REAL)1.0e-5
+enum boolean { FALSE=0, TRUE=1 };
+  
+/*~~~>  Statistics on the work performed by the SDIRK method */
+enum statistics { Nfun=1, Njac=2, Nstp=3, Nacc=4, Nrej=5, Ndec=6, Nsol=7, 
+		  Nsng=8, Ntexit=1, Nhexit=2, Nhnew=3 };
+
+/*~~~>  SDIRK method coefficients, up to 5 stages */
+int Smax = 5;
+enum ros_Params { S2A=1, S2B=2, S3A=3, S4A=4, S4B=5 };
+KPP_REAL rkGamma, rkA[5][5], rkB[5], rkC[5], rkD[5], rkE[5], 
+  rkBhat[5], rkELO, rkAlpha[5][5], rkTheta[5][5];
+int sdMethod, rkS; /* The number of stages */
+
+/*~~~>  Checkpoints in memory buffers */
+int stack_ptr = -1; /* last written entry in checkpoint */
+KPP_REAL *chk_H, *chk_T;
+KPP_REAL **chk_Y;
+KPP_REAL ***chk_Z;
+int **chk_P;
+#ifdef FULL_ALGEBRA
+  KPP_REAL ***chk_J;
+#else
+  KPP_REAL **chk_J;
+#endif
+
+/* Function Headers */
+void INTEGRATE_ADJ( int NADJ, KPP_REAL Y[], KPP_REAL Lambda[][NVAR], 
+		    KPP_REAL TIN, KPP_REAL TOUT, KPP_REAL ATOL_adj[][NVAR], 
+		    KPP_REAL RTOL_adj[][NVAR], int ICNTRL_U[], 
+		    KPP_REAL RCNTRL_U[], int ISTATUS_U[], 
+		    KPP_REAL RSTATUS_U[] );
+int SDIRKADJ( int N, int NADJ, KPP_REAL Tinitial, KPP_REAL Tfinal, KPP_REAL Y[],
+	      KPP_REAL Lambda[][NVAR], KPP_REAL RelTol[], KPP_REAL AbsTol[], 
+	      KPP_REAL RelTol_adj[][NVAR], KPP_REAL AbsTol_adj[][NVAR], 
+	      KPP_REAL RCNTRL[], int ICNTRL[], KPP_REAL RSTATUS[], 
+	      int ISTATUS[]);
+int SDIRK_FwdInt( int N, KPP_REAL Tinitial, KPP_REAL Tfinal, KPP_REAL Y[], 
+		  KPP_REAL Hmax, KPP_REAL Hmin, KPP_REAL Hstart, 
+		  KPP_REAL Roundoff, KPP_REAL AbsTol[], KPP_REAL RelTol[], 
+		  int ISTATUS[], KPP_REAL RSTATUS[], int Max_no_steps, 
+		  int NewtonMaxit, KPP_REAL NewtonTol, KPP_REAL ThetaMin, 
+		  KPP_REAL FacSafe, KPP_REAL FacMin, KPP_REAL FacMax, 
+		  KPP_REAL FacRej, KPP_REAL Qmin, KPP_REAL Qmax, int ITOL, 
+		  int SaveLU );
+int SDIRK_DadjInt( int N, int NADJ, KPP_REAL Lambda[][NVAR], int SaveLU, 
+		   int ISTATUS[], int ITOL, KPP_REAL AbsTol_adj[][NVAR], 
+		   KPP_REAL RelTol_adj[][NVAR], int NewtonMaxit,
+		   KPP_REAL ThetaMin, KPP_REAL NewtonTol, int DirectADJ );
+void SDIRK_AllocBuffers( int Max_no_steps, int rkS, int SaveLU );
+void SDIRK_FreeBuffers( int Max_no_steps, int SaveLU );
+void SDIRK_Push( KPP_REAL T, KPP_REAL H, KPP_REAL Y[], KPP_REAL Z[][NVAR], 
+		 KPP_REAL E[], int P[], int Max_no_steps, int SaveLU );
+void SDIRK_Pop( KPP_REAL* T, KPP_REAL* H, KPP_REAL* Y, KPP_REAL* Z, 
+		KPP_REAL* E, int* P, int SaveLU );
+void SDIRK_ErrorScale( int N, int ITOL, KPP_REAL AbsTol[], KPP_REAL RelTol[],
+		       KPP_REAL Y[],KPP_REAL SCAL[]);
+KPP_REAL SDIRK_ErrorNorm( int N, KPP_REAL Y[], KPP_REAL SCAL[] );
+int SDIRK_ErrorMsg( int code, KPP_REAL T, KPP_REAL H );
+void SDIRK_PrepareMatrix( KPP_REAL H, KPP_REAL T, KPP_REAL Y[], KPP_REAL FJAC[],
+			  int SkipJac, int SkipLU, KPP_REAL E[], int IP[], 
+			  int Reject, int ISING, int ISTATUS[] );
+void SDIRK_Solve ( char Transp, KPP_REAL H, int N, KPP_REAL E[], 
+		   int IP[], int ISING, KPP_REAL RHS[], int ISTATUS[] );
+void Sdirk4a();
+void Sdirk4b();
+void Sdirk2a();
+void Sdirk2b();
+void Sdirk3a();
+void FUN_CHEM( KPP_REAL T, KPP_REAL Y[], KPP_REAL P[] );
+void JAC_CHEM( KPP_REAL T, KPP_REAL Y[], KPP_REAL JV[] );
+KPP_REAL WLAMCH( char C );
+void Set2Zero( int N, KPP_REAL Y[] );
+void WAXPY( int N, KPP_REAL Alpha, KPP_REAL X[], int incX, KPP_REAL Y[], 
+	    int incY );
+void WADD( int N, KPP_REAL Y[], KPP_REAL Z[], KPP_REAL TMP[] );
+void WSCAL( int N, KPP_REAL Alpha, KPP_REAL X[], int incX );
+void JacTR_SP_Vec( KPP_REAL Jac[], KPP_REAL Fcn[], KPP_REAL K[] );
+void KppSolve( KPP_REAL A[], KPP_REAL b[] );
+void KppSolveTR( KPP_REAL JVS[], KPP_REAL X[], KPP_REAL XX[] );
+int KppDecomp( KPP_REAL A[] );
+void Update_SUN();
+void Update_RCONST();
+void Fun( KPP_REAL Y[], KPP_REAL FIX[], KPP_REAL RCONST[], KPP_REAL Ydot[] );
+void Jac_SP( KPP_REAL Y[], KPP_REAL FIX[], KPP_REAL RCONST[], KPP_REAL Ydot[] );
+void Set2Zero( int N, KPP_REAL Y[] );
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void INTEGRATE_ADJ( int NADJ, KPP_REAL Y[], KPP_REAL Lambda[][NVAR], 
+		    KPP_REAL TIN, KPP_REAL TOUT, KPP_REAL ATOL_adj[][NVAR], 
+		    KPP_REAL RTOL_adj[][NVAR], int ICNTRL_U[], 
+		    KPP_REAL RCNTRL_U[], int ISTATUS_U[], 
+		    KPP_REAL RSTATUS_U[] ) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+  //int Ntotal = 0;
+  KPP_REAL RCNTRL[20], RSTATUS[20], T1, T2;
+  int ICNTRL[20], ISTATUS[20], Ierr, i;
+
+  for(i=0; i<20; i++) {
+    ICNTRL[i] = 0;
+    RCNTRL[i] = (KPP_REAL)0.0;
+    ISTATUS[i] = 0;
+    RSTATUS[i] = (KPP_REAL)0.0;
+  }
+
+  /*~~~> fine-tune the integrator: */
+  ICNTRL[4] = 8;    /* Max no. of Newton iterations */
+  ICNTRL[6] = 1;   /* Adjoint solution by: 0=Newton, 1=direct */
+  ICNTRL[7] = 1;    /* Save fwd LU factorization: 0 = do *not* save, 1 = save */
+
+  /* If optional parameters are given, and if they are >0, 
+     then they overwrite default settings. */ 
+  //if(ICNTRL_U != NULL) { /* Check to see if ICNTRL_U is not NULL */
+  //  for(i=0; i<20; i++) {
+  //	if(ICNTRL_U[i] > 0)
+  //	  ICNTRL[i] = ICNTRL_U[i];
+  //  }
+  //}
+  //
+  //if(RCNTRL_U != NULL) { /* Check to see if RCNTRL_U is not NULL */
+  //  for(i=0; i<20; i++) {
+  //	if(RCNTRL_U[i] > 0)
+  //	  RCNTRL[i] = RCNTRL_U[i];
+  //  }
+  //}
+  
+  T1 = TIN; 
+  T2 = TOUT;
+  Ierr = SDIRKADJ( NVAR, NADJ, T1, T2, Y, Lambda, RTOL, ATOL, ATOL_adj, 
+		   RTOL_adj, RCNTRL, ICNTRL, RSTATUS, ISTATUS );
+
+  /*~~~> Debug option: number of steps */
+  // Ntotal = Ntotal + ISTATUS(Nstp)
+  // printf( "NSTEP=%d Ntotal=%d O3=%e NO2=%e\n", ISTATUS(Nstp), Ntotal, 
+  //          VAR(ind_O3), VAR(ind_NO2) );    
+
+  if (Ierr < 0)
+    printf("SDIRK: Unsuccessful exit at T=%f (Ierr=%d)\n", TIN, Ierr );
+   
+  /* if optional parameters are given for output they to return information */
+  //if(ISTATUS_U != NULL) { /* Check to see if ISTATUS_U is not NULL */
+  //	for(i=0; i<20; i++)
+  //	  ISTATUS_U[i] = ISTATUS[i];
+  //} 
+  //
+  //if(RSTATUS_U != NULL) { /* Check to see if RSTATUS_U is not NULL */
+  //	for(i=0; i<20; i++)
+  //	  RSTATUS_U[i] = RSTATUS[i];
+  //}
+  //
+  //Ierr_U = Ierr;
+  
+} /* END of SUBROUTINE INTEGRATE_ADJ */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+int SDIRKADJ( int N, int NADJ, KPP_REAL Tinitial, KPP_REAL Tfinal, KPP_REAL Y[],
+	      KPP_REAL Lambda[][NVAR], KPP_REAL RelTol[], KPP_REAL AbsTol[], 
+	      KPP_REAL RelTol_adj[][NVAR], KPP_REAL AbsTol_adj[][NVAR], 
+	      KPP_REAL RCNTRL[], int ICNTRL[], KPP_REAL RSTATUS[], 
+	      int ISTATUS[] ) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+    Solves the system y'=F(t,y) using a Singly-Diagonally-Implicit
+    Runge-Kutta (SDIRK) method.
+
+    This implementation is based on the book and the code Sdirk4:
+
+      E. Hairer and G. Wanner
+      "Solving ODEs II. Stiff and differential-algebraic problems".
+      Springer series in computational mathematics, Springer-Verlag, 1996.
+    This code is based on the SDIRK4 routine in the above book.
+
+    Methods:
+            * Sdirk 2a, 2b: L-stable, 2 stages, order 2                  
+            * Sdirk 3a:     L-stable, 3 stages, order 2, adjoint-invariant   
+            * Sdirk 4a, 4b: L-stable, 5 stages, order 4                  
+
+    (C)  Adrian Sandu, July 2005
+    Virginia Polytechnic Institute and State University
+    Contact: sandu@cs.vt.edu
+    Revised by Philipp Miehe and Adrian Sandu, May 2006     
+    Translation F90 to C by Paul Eller, May 2007
+    This implementation is part of KPP - the Kinetic PreProcessor
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+~~~>   INPUT ARGUMENTS:
+
+-     Y[NVAR]    = vector of initial conditions (at T=Tinitial)
+-    [Tinitial,Tfinal]  = time range of integration
+     (if Tinitial>Tfinal the integration is performed backwards in time)
+-    RelTol, AbsTol = user precribed accuracy
+- SUBROUTINE ode_Fun( T, Y, Ydot ) = ODE function,
+                       returns Ydot = Y' = F(T,Y)
+- SUBROUTINE ode_Fun( T, Y, Ydot ) = Jacobian of the ODE function,
+                       returns Jcb = dF/dY
+-    ICNTRL[1:20]    = integer inputs parameters
+-    RCNTRL[1:20]    = real inputs parameters
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+~~~>     OUTPUT ARGUMENTS:
+
+-    Y[NVAR]         -> vector of final states (at T->Tfinal)
+-    ISTATUS[0:19]   -> integer output parameters
+-    RSTATUS[0:19]   -> real output parameters
+-    Ierr            -> job status upon return
+                        success (positive value) or
+                        failure (negative value)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+~~~>     INPUT PARAMETERS:
+
+    Note: For input parameters equal to zero the default values of the
+       corresponding variables are used.
+
+    Note: For input parameters equal to zero the default values of the
+          corresponding variables are used.
+~~~>  
+    ICNTRL[0] = not used
+
+    ICNTRL[1] = 0: AbsTol, RelTol are NVAR-dimensional vectors
+              = 1: AbsTol, RelTol are scalars
+
+    ICNTRL[2] = Method
+
+    ICNTRL[3]  -> maximum number of integration steps
+        For ICNTRL[3]=0 the default value of 1500 is used
+        Note: use a conservative estimate, since the checkpoint
+              buffers are allocated to hold Max_no_steps
+
+    ICNTRL[4]  -> maximum number of Newton iterations
+        For ICNTRL[4]=0 the default value of 8 is used
+
+    ICNTRL[5]  -> starting values of Newton iterations:
+        ICNTRL[5]=0 : starting values are interpolated (the default)
+        ICNTRL[5]=1 : starting values are zero
+
+    ICNTRL[6]  -> method to solve ADJ equations:
+        ICNTRL[6]=0 : modified Newton re-using LU (the default)
+        ICNTRL[6]=1 : direct solution(additional one LU factorization per stage)
+
+    ICNTRL[7]  -> checkpointing the LU factorization at each step:
+        ICNTRL[7]=0 : do *not* save LU factorization (the default)
+        ICNTRL[7]=1 : save LU factorization
+        Note: if ICNTRL[6]=1 the LU factorization is *not* saved
+
+~~~>  Real parameters
+
+    RCNTRL[0]  -> Hmin, lower bound for the integration step size
+                  It is strongly recommended to keep Hmin = ZERO
+    RCNTRL[1]  -> Hmax, upper bound for the integration step size
+    RCNTRL[2]  -> Hstart, starting value for the integration step size
+
+    RCNTRL[3]  -> FacMin, lower bound on step decrease factor (default=0.2)
+    RCNTRL[4]  -> FacMax, upper bound on step increase factor (default=6)
+    RCNTRL[5]  -> FacRej, step decrease factor after multiple rejections
+                 (default=0.1)
+    RCNTRL[6]  -> FacSafe, by which the new step is slightly smaller
+                  than the predicted value  (default=0.9)
+    RCNTRL[7]  -> ThetaMin. If Newton convergence rate smaller
+                  than ThetaMin the Jacobian is not recomputed;
+                  (default=0.001)
+    RCNTRL[8]  -> NewtonTol, stopping criterion for Newton's method
+                  (default=0.03)
+    RCNTRL[9] -> Qmin
+    RCNTRL[10] -> Qmax. If Qmin < Hnew/Hold < Qmax, then the
+                  step size is kept constant and the LU factorization
+                  reused (default Qmin=1, Qmax=1.2)
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+~~~>     OUTPUT PARAMETERS:
+
+    Note: each call to Rosenbrock adds the current no. of fcn calls
+      to previous value of ISTATUS[0], and similar for the other params.
+      Set ISTATUS[1:10] = 0 before call to avoid this accumulation.
+
+    ISTATUS[0] = No. of function calls
+    ISTATUS[1] = No. of jacobian calls
+    ISTATUS[2] = No. of steps
+    ISTATUS[3] = No. of accepted steps
+    ISTATUS[4] = No. of rejected steps (except at the beginning)
+    ISTATUS[5] = No. of LU decompositions
+    ISTATUS[6] = No. of forward/backward substitutions
+    ISTATUS[7] = No. of singular matrix decompositions
+
+    RSTATUS[0]  -> Texit, the time corresponding to the
+                   computed Y upon return
+    RSTATUS[1]  -> Hexit,last accepted step before return
+    RSTATUS[2]  -> Hnew, last predicted step before return
+        For multiple restarts, use Hnew as Hstart in the following run
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+/* Local variables */     
+  KPP_REAL Hmin=0.0, Hmax=0.0, Hstart=0.0, Roundoff, FacMin=0.0, FacMax=0.0, 
+    FacSafe=0.0, FacRej=0.0, ThetaMin, NewtonTol,Qmin, Qmax;
+  int SaveLU, DirectADJ; /* Boolean variables */                 
+  int ITOL, NewtonMaxit, Max_no_steps=0, i, Ierr=0;
+
+  stack_ptr = -1;
+
+/*~~~>  Initialize statistics */
+  for(i=0; i<20; i++) {
+    ISTATUS[i] = 0;
+    RSTATUS[i] = ZERO;
+  }
+
+/*~~~>  For Scalar tolerances (ICNTRL[1] != 0)  the code uses AbsTol[0] 
+            and RelTol[0]
+	For Vector tolerances (ICNTRL[1] == 0) the code uses AbsTol[0:NVAR-1] 
+            and RelTol[0:NVAR-1]*/
+  if (ICNTRL[1]==0)
+    ITOL = 1;
+  else
+    ITOL = 0;
+
+/*~~~> ICNTRL(3) - method selection */
+  switch (ICNTRL[2]) {
+    case 0:
+    case 1:
+      Sdirk2a();
+      break;
+    case 2:
+      Sdirk2b();
+      break;
+    case 3:
+      Sdirk3a();
+      break;
+    case 4:
+      Sdirk4a();
+      break;
+    case 5:
+      Sdirk4b();
+      break;
+    default:
+      Sdirk2a();
+  }
+      
+/*~~~>   The maximum number of time steps admitted */
+  if (ICNTRL[3] == 0)
+    Max_no_steps = 200000;
+  else if (ICNTRL[3] > 0)
+    Max_no_steps = ICNTRL[3];
+  else {
+    printf("User-selected ICNTRL(4)=%d", ICNTRL[3]);
+    Ierr = SDIRK_ErrorMsg(-1,Tinitial,ZERO);
+  }
+
+/*~~~>The maximum number of Newton iterations admitted */
+  if(ICNTRL[4]==0)
+    NewtonMaxit = 8;
+  else {
+    NewtonMaxit=ICNTRL[4];
+    if(NewtonMaxit <=0) {
+      printf("User-selected ICNTRL(5)=%d", ICNTRL[4] );
+      Ierr = SDIRK_ErrorMsg(-2,Tinitial,ZERO);
+    }
+  }
+
+/*~~~> Solve ADJ equations directly or by Newton iterations */
+  DirectADJ = (ICNTRL[6] == 1);
+ 
+/*~~~> Save or not the forward LU factorization */
+  SaveLU = ((ICNTRL[7] != 0) && (DirectADJ == 0));
+
+/*~~~>  Unit roundoff (1+Roundoff>1) */
+  Roundoff = WLAMCH('E');
+
+/*~~~>  Lower bound on the step size: (positive value) */
+  if (RCNTRL[0] == ZERO)
+    Hmin = ZERO;
+  else if (RCNTRL[0] > ZERO)
+    Hmin = RCNTRL[0];
+  else {
+    printf("User-selected RCNTRL[0]=%f", RCNTRL[0]);
+    Ierr = SDIRK_ErrorMsg(-3,Tinitial,ZERO);
+  }
+   
+/*~~~>  Upper bound on the step size: (positive value) */
+  if (RCNTRL[1] == ZERO)
+    Hmax = ABS(Tfinal-Tinitial);
+  else if (RCNTRL[1] > ZERO)
+    Hmax = MIN( ABS(RCNTRL[1]), ABS(Tfinal-Tinitial) );
+  else {
+    printf("User-selected RCNTRL[1]=%f", RCNTRL[1]);
+    Ierr = SDIRK_ErrorMsg(-3,Tinitial,ZERO);
+  }
+
+/*~~~>  Starting step size: (positive value) */
+  if (RCNTRL[2] == ZERO)
+    Hstart = MAX( Hmin, Roundoff);
+  else if (RCNTRL[2] > ZERO)
+    Hstart = MIN( ABS(RCNTRL[2]), ABS(Tfinal-Tinitial) );
+  else {
+    printf("User-selected Hstart: RCNTRL[2]=%f", RCNTRL[2]);
+    Ierr = SDIRK_ErrorMsg(-3,Tinitial,ZERO);
+  }
+
+/*~~~>  Step size can be changed s.t.  FacMin < Hnew/Hexit < FacMax */
+  if (RCNTRL[3] == ZERO)
+    FacMin = (KPP_REAL)0.2;
+  else if (RCNTRL[3] > ZERO)
+    FacMin = RCNTRL[3];
+  else {
+    printf("User-selected FacMin: RCNTRL[3]=%f", RCNTRL[3]);
+    Ierr = SDIRK_ErrorMsg(-4,Tinitial,ZERO);
+  }
+   
+  if (RCNTRL[4] == ZERO)
+    FacMax = (KPP_REAL)10.0;
+  else if (RCNTRL[4] > ZERO)
+    FacMax = RCNTRL[4];
+  else {
+    printf("User-selected FacMax: RCNTRL[4]=%f", RCNTRL[4]);
+    Ierr = SDIRK_ErrorMsg(-4,Tinitial,ZERO);
+  }
+
+/*~~~>   FacRej: Factor to decrease step after 2 succesive rejections */
+  if (RCNTRL[5] == ZERO)
+    FacRej = (KPP_REAL)0.1;
+  else if (RCNTRL[5] > ZERO)
+    FacRej = RCNTRL[5];
+  else {
+    printf("User-selected FacRej: RCNTRL[5]=%f", RCNTRL[5]);
+    Ierr = SDIRK_ErrorMsg(-4,Tinitial,ZERO);
+  }
+
+/* ~~~>   FacSafe: Safety Factor in the computation of new step size  */
+  if (RCNTRL[6] == ZERO)
+    FacSafe = (KPP_REAL)0.9;
+  else if (RCNTRL[6] > ZERO)
+    FacSafe = RCNTRL[6];
+  else {
+    printf("User-selected FacSafe: RCNTRL[6]=%f", RCNTRL[6]);
+    Ierr = SDIRK_ErrorMsg(-4,Tinitial,ZERO);
+  }
+
+/*~~~> ThetaMin: decides whether the Jacobian should be recomputed */
+  if (RCNTRL[7] == ZERO)
+    ThetaMin = (KPP_REAL)1.0e-03;
+  else
+    ThetaMin = RCNTRL[7];
+
+/*~~~> Stopping criterion for Newton's method */
+  if (RCNTRL[8] == ZERO)
+    NewtonTol = (KPP_REAL)3.0e-02;
+  else
+    NewtonTol = RCNTRL[8];
+
+/* ~~~> Qmin, Qmax: IF Qmin < Hnew/Hold < Qmax, STEP SIZE = CONST. */
+  if (RCNTRL[9] == ZERO)
+    Qmin = ONE;
+  else
+    Qmin = RCNTRL[9];
+
+  if (RCNTRL[10] == ZERO)
+    Qmax = (KPP_REAL)1.2;
+  else
+    Qmax = RCNTRL [10];
+
+/* ~~~>  Check if tolerances are reasonable */
+  if (ITOL == 0) {
+    if ((AbsTol[0]<=ZERO || RelTol[0])<=(((KPP_REAL)10.0)*Roundoff))
+      Ierr = SDIRK_ErrorMsg(-5,Tinitial,ZERO);
+  }
+  else {
+    for (i = 0; i < N; i++) {
+      if ((AbsTol[i]<=ZERO)||(RelTol[i]<=((KPP_REAL)10.0)*Roundoff))
+	Ierr = SDIRK_ErrorMsg(-5,Tinitial,ZERO);
+    }
+  }
+
+  if (Ierr < 0)
+    return Ierr;
+    
+/*~~~>  Allocate memory buffers */
+  SDIRK_AllocBuffers(Max_no_steps, rkS, SaveLU);
+
+/*~~~>  Call forward integration */
+  Ierr = SDIRK_FwdInt( N, Tinitial, Tfinal, Y, Hmax, Hmin, Hstart, Roundoff, 
+		       AbsTol, RelTol, ISTATUS, RSTATUS, Max_no_steps, 
+		       NewtonMaxit, NewtonTol, ThetaMin, FacSafe, FacMin, 
+		       FacMax, FacRej, Qmin, Qmax, ITOL, SaveLU );
+
+/*~~~>  Call adjoint integration */  
+  Ierr = SDIRK_DadjInt( N, NADJ, Lambda, SaveLU, ISTATUS, ITOL, AbsTol_adj, 
+			RelTol_adj, NewtonMaxit, ThetaMin, NewtonTol, 
+			DirectADJ );
+
+/*~~~>  Free memory buffers */ 
+  SDIRK_FreeBuffers(Max_no_steps, SaveLU);
+
+  return Ierr;
+
+} /* End of main SDIRK_ADJ */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+int SDIRK_FwdInt( int N, KPP_REAL Tinitial, KPP_REAL Tfinal, KPP_REAL Y[], 
+		  KPP_REAL Hmax, KPP_REAL Hmin, KPP_REAL Hstart, 
+		  KPP_REAL Roundoff, KPP_REAL AbsTol[], KPP_REAL RelTol[], 
+		  int ISTATUS[], KPP_REAL RSTATUS[], int Max_no_steps, 
+		  int NewtonMaxit, KPP_REAL NewtonTol, KPP_REAL ThetaMin, 
+		  KPP_REAL FacSafe, KPP_REAL FacMin, KPP_REAL FacMax, 
+		  KPP_REAL FacRej, KPP_REAL Qmin, KPP_REAL Qmax, int ITOL, 
+		  int SaveLU ) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+      
+/*~~~> Local variables: */   
+  KPP_REAL Z[Smax][NVAR], G[NVAR], TMP[NVAR], NewtonRate, SCAL[NVAR], RHS[NVAR],
+    T, H, Theta=0.0, Hratio, NewtonPredictedErr, Qnewton, Err, Fac, Hnew, 
+    Tdirection, NewtonIncrement, NewtonIncrementOld=0.0;
+  int i, j, IER=0, istage, NewtonIter, IP[NVAR];
+
+  /*Boolean Variables*/
+  int Reject, FirstStep, SkipJac, SkipLU, NewtonDone, CycleTloop;
+      
+#ifdef FULL_ALGEBRA      
+  KPP_REAL FJAC[NVAR][NVAR], E[NVAR][NVAR];
+#else      
+  KPP_REAL FJAC[LU_NONZERO], E[LU_NONZERO];
+#endif
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+/*~~~~>   Initializations              */
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+  T = Tinitial;
+  Tdirection = SIGN(ONE, Tfinal-Tinitial);
+  H = MAX(ABS(Hmin), ABS(Hstart));
+  if (ABS(H) <= ((KPP_REAL)10.0 * Roundoff))
+    H = (KPP_REAL)(1.0e-06);
+  H = MIN(ABS(H), Hmax);
+  H = SIGN(H, Tdirection);
+  SkipLU = 0;
+  SkipJac = 0;
+  Reject = 0;
+  FirstStep = 1;
+  CycleTloop = 0;
+
+  SDIRK_ErrorScale(N, ITOL, AbsTol, RelTol, Y, SCAL);
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+/*~~~>  Time loop begins                */
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+  while((Tfinal-T)*Tdirection - Roundoff > ZERO) {  /* Tloop */
+
+  /*~~~>  Compute E = 1/(h*gamma)-Jac and its LU decomposition */
+    if (SkipLU == 0) { /* This time around skip the Jac update and LU */
+      SDIRK_PrepareMatrix( H, T, Y, FJAC, SkipJac, SkipLU, E, IP, 
+	                   Reject, IER, ISTATUS);
+      if (IER != 0)
+	return SDIRK_ErrorMsg(-8, T, H);
+    }
+
+    if (ISTATUS[Nstp] > Max_no_steps)
+      return SDIRK_ErrorMsg(-6, T, H);
+
+    if ((T + ((KPP_REAL)0.1) * H == T) || (ABS(H) <= Roundoff)) {
+      return SDIRK_ErrorMsg(-7, T, H);
+    }
+
+    for (istage=0; istage < rkS; istage++) {  /*stages*/
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+/*~~~>  Simplified Newton iterations          */
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+    /*~~~>  Starting values for Newton iterations */
+      Set2Zero(N, &Z[istage][0]);
+
+    /*~~~>   Prepare the loop-independent part of the right-hand side */
+      Set2Zero(N, G);
+      if (istage > 0) {
+	for (j=0; j < istage; j++) {
+	/* Gj(:) = sum_j Theta(i,j)*Zj(:) = H * sum_j A(i,j)*Fun(Zj(:)) */
+          WAXPY(N, rkTheta[j][istage], &Z[j][0], 1, G, 1);
+	/* Zi(:) = sum_j Alpha(i,j)*Zj(:) */
+	  WAXPY(N, rkAlpha[j][istage],&Z[j][0], 1, &Z[istage][0], 1);
+	}
+      }
+
+    /*~~~>  Initializations for Newton iteration */
+      NewtonDone = 0; /* false */
+      Fac = (KPP_REAL)0.5; /* Step reduction factor */
+
+      for (NewtonIter=0; NewtonIter<NewtonMaxit; NewtonIter++ ) { /*NewtonLoop*/
+      /*~~~>  Prepare the loop-dependent part of the right-hand side */
+	WADD(N, Y, &Z[istage][0], TMP); /* TMP <- Y + Zi */
+        FUN_CHEM(T+rkC[istage]*H, TMP, RHS); /* RHS <- Run(Y+Zi) */
+	ISTATUS[Nfun]++;
+      /* RHS[0:N-1] = G[0:N-1] - Z[istage][0:N-1] + (H*rkGamma)*RHS[1:N] */
+	WSCAL(N, H*rkGamma, RHS, 1);
+	WAXPY(N, -ONE, &Z[istage][0], 1, RHS, 1);
+	WAXPY(N, ONE, G, 1, RHS, 1 );
+
+      /*~~~>   Solve the linear system  */
+	SDIRK_Solve('N', H, N, E, IP, IER, RHS, ISTATUS);
+            
+      /*~~~>   Check convergence of Newton iterations */
+	NewtonIncrement = SDIRK_ErrorNorm(N, RHS, SCAL);
+	if (NewtonIter == 0) {
+	  Theta = ABS(ThetaMin);
+	  NewtonRate = (KPP_REAL)2.0;
+       	}
+	else {
+	  Theta = NewtonIncrement/NewtonIncrementOld;
+   	  if (Theta < (KPP_REAL)0.99) {
+	    NewtonRate = Theta/(ONE-Theta);
+	  /* Predict error at the end of Newton process */
+	    NewtonPredictedErr = (NewtonIncrement*pow(Theta,
+				 (NewtonMaxit - (NewtonIter+1))/(ONE - Theta)));
+	    if(NewtonPredictedErr >= NewtonTol) {
+	    /* Non-convergence of Newton: predicted error too large*/
+	      Qnewton = MIN((KPP_REAL)10.0, NewtonPredictedErr/NewtonTol);
+	      Fac = (KPP_REAL)0.8 * pow(Qnewton, (-ONE / (1 + NewtonMaxit - 
+							  NewtonIter + 1)));
+	      break;
+	    }
+	  }
+	  else  /* Non-convergence of Newton: Theta too large */ {
+	    break;
+	  }
+	}
+
+	NewtonIncrementOld = NewtonIncrement;
+
+      /* Update solution: Z(:) <-- Z(:)+RHS(:) */
+	WAXPY(N, ONE, RHS, 1, &Z[istage][0], 1);
+
+      /* Check error in Newton iterations */
+	NewtonDone=(NewtonRate*NewtonIncrement<=NewtonTol);
+	if (NewtonDone == 1)
+	  break;
+      } /* end NewtonLoop for */
+                      
+      if(NewtonDone == 0) {
+	H = Fac*H;
+	Reject = 1;
+	SkipJac = 1;
+	SkipLU = 0;
+        CycleTloop = 1;
+      } /* end if */
+
+      if (CycleTloop == 1) {
+	CycleTloop=0;
+	break;
+      }
+    /* End of implified Newton iterations */
+    } /* end stages for */
+
+    if (CycleTloop==0) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+/*~~~>  Error estimation      */
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+      ISTATUS[Nstp]++;
+      Set2Zero(N, TMP);
+
+      for (i=0; i<rkS; i++) {
+        if (rkE[i] != ZERO)
+	  WAXPY(N, rkE[i], &Z[i][0], 1, TMP, 1);
+      }
+
+      SDIRK_Solve('N', H, N, E, IP, IER, TMP, ISTATUS);
+      Err = SDIRK_ErrorNorm(N, TMP, SCAL);
+
+    /*~~~~> Computation of new step size Hnew */
+      Fac = FacSafe * pow((Err), (-ONE/rkELO));
+      Fac = MAX(FacMin, MIN(FacMax, Fac));
+      Hnew = H*Fac;
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+/*~~~>  Accept/Reject step    */
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+      if (Err < ONE) { /*~~~> Step is accepted */
+        FirstStep = 0; /* false */
+        ISTATUS[Nacc]++;
+
+      /* Checkpoint solution */
+        SDIRK_Push( T, H, Y, Z, E, IP, Max_no_steps, SaveLU );
+
+      /*~~~> Update time and solution */
+        T = T + H;
+      /* Y(:) <-- Y(:) + Sum_j rkD(j)*Z_j(:) */
+        for(i=0; i<rkS; i++) {
+	  if(rkD[i] != ZERO)
+	    WAXPY(N, rkD[i], &Z[i][0], 1, Y, 1);
+        }
+
+      /*~~~> Update scaling coefficients */
+        SDIRK_ErrorScale(N, ITOL, AbsTol, RelTol, Y, SCAL);
+
+      /*~~~> Next time step */
+        Hnew = Tdirection*MIN(ABS(Hnew), Hmax);
+
+      /* Last T and H */
+        RSTATUS[Ntexit] = T;
+        RSTATUS[Nhexit] = H;
+        RSTATUS[Nhnew] = Hnew;
+
+      /* No step increase after a rejection */
+        if (Reject==1)
+	  Hnew = Tdirection*MIN(ABS(Hnew), ABS(H));
+        Reject = 0; /* false */
+        if ((T+Hnew/Qmin-Tfinal)*Tdirection > ZERO)
+	  H = Tfinal-T;
+        else {
+	  Hratio = Hnew/H;
+        /* If step not changed too much keep Jacobian and reuse LU */
+          SkipLU = ((Theta <= ThetaMin) && (Hratio >= Qmin) 
+		    && (Hratio <= Qmax));
+	  if (SkipLU==0)
+	    H = Hnew;
+        }
+
+        /* If convergence is fast enough, do not update Jacobian */
+        /* SkipJac = (Theta <= ThetaMin); */
+        SkipJac = 0;
+      }
+      else { /*~~~> Step is rejected */
+        if ((FirstStep==1) || (Reject==1))
+	  H = FacRej * H;
+        else  
+          H = Hnew;
+
+        Reject = 1;
+        SkipJac = 1;
+        SkipLU = 0;
+        if (ISTATUS[Nacc] >=1)
+	  ISTATUS[Nrej]++;
+
+      }
+    } /* end CycleTloop if */
+  } /* end Tloop */
+
+  /* Successful return */
+  return 1;
+
+} /* end SDIRK_FwdInt */
+         
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+int SDIRK_DadjInt( int N, int NADJ, KPP_REAL Lambda[][NVAR], int SaveLU, 
+		   int ISTATUS[], int ITOL, KPP_REAL AbsTol_adj[][NVAR], 
+		   KPP_REAL RelTol_adj[][NVAR], int NewtonMaxit, 
+		   KPP_REAL ThetaMin, KPP_REAL NewtonTol, int DirectADJ) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+/*~~~> Local variables: */
+  KPP_REAL Y[NVAR];
+  KPP_REAL Z[Smax][NVAR], U[Smax][NADJ][NVAR], TMP[NVAR], G[NVAR], NewtonRate, 
+    SCAL[NVAR], DU[NVAR], T, H, Theta, NewtonPredictedErr, NewtonIncrement, 
+    NewtonIncrementOld=0.0;
+  int i, j, IER=0, istage, iadj, NewtonIter, IP[NVAR], IP_adj[NVAR];
+  int Reject=0, SkipJac, SkipLU, NewtonDone; /* Boolean */
+      
+#ifdef FULL_ALGEBRA      
+  KPP_REAL E[NVAR][NVAR], Jac[NVAR][NVAR], E_adj[NVAR][NVAR];
+#else      
+  KPP_REAL E[LU_NONZERO], Jac[LU_NONZERO], E_adj[LU_NONZERO];
+#endif      
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~>  Time loop begins
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+  while ( stack_ptr > -1 ) { /* Tloop */
+        
+  /*~~~>  Recover checkpoints for stage values and vectors */
+    SDIRK_Pop( &T, &H, &Y[0], &Z[0][0], &E[0], &IP[0], SaveLU );
+
+  /*~~~>  Compute E = 1/(h*gamma)-Jac and its LU decomposition */
+    if (!SaveLU) {
+      SkipJac = FALSE; 
+      SkipLU = FALSE;
+      SDIRK_PrepareMatrix ( H, T, Y, Jac, SkipJac, SkipLU, E, IP, Reject, IER, 
+			    ISTATUS );
+      if (IER != 0)
+	return SDIRK_ErrorMsg(-8,T,H); 
+    }  
+
+    for( istage = rkS-1; istage >=0; istage--) { /* Stages Loop */
+    /*~~~>  Jacobian of the current stage solution */
+      for(i=0; i<N; i++)
+	TMP[i] = Y[i] + Z[istage][i];
+      JAC_CHEM(T+rkC[istage]*H,TMP,Jac);
+      ISTATUS[Njac]++;
+       
+      if (DirectADJ) {
+#ifdef FULL_ALGEBRA
+	for(i=0; i<N; i++) {
+	  for(j=0; j<N; j++)
+	    E_adj[i][j] = -Jac[i][j];
+	}
+	for(i=0; i<N; i++)
+	  E_adj[i][i] = E_adj[i][i] + ONE/(H*rkGamma);
+
+	DGETRF( N, N, E_adj, N, IP_adj, IER );
+#else
+	for(i=0; i<LU_NONZERO; i++)
+	  E_adj[i] = -Jac[i];
+	for(i=0; i<NVAR; i++) {
+	  j = LU_DIAG[i];
+	  E_adj[j] = E_adj[j] + ONE/(H*rkGamma);
+	}
+        IER = KppDecomp (E_adj);
+#endif
+	ISTATUS[Ndec]++;
+        if (IER != 0) {
+	  printf("At stage %d the matrix used in adjoint computation is " 
+		 "singular\n", istage);
+          return SDIRK_ErrorMsg(-8,T,H);
+	}
+      }
+
+      for(iadj=0; iadj<NADJ; iadj++) { /* adj loop */
+       
+      /*~~~> Update scaling coefficients */
+	for(i=0; i<NVAR; i++)
+	  SDIRK_ErrorScale(N, ITOL, &AbsTol_adj[iadj][i], &RelTol_adj[iadj][i], 
+			   &Lambda[iadj][i], SCAL);
+      
+      /*~~~>   Prepare the loop-independent part of the right-hand side
+	       G(:) = H*Jac^T*( B(i)*Lambda + sum_j A(j,i)*Uj(:) ) */
+	for(i=0; i<N; i++)
+	  G[i] = rkB[istage]*Lambda[iadj][i];
+	if (istage+1 < rkS) {
+	  for (j=istage+1; j<rkS; j++)
+	    WAXPY(N,rkA[istage][j],&U[j][iadj][0],1,G,1);
+	}
+#ifdef FULL_ALGEBRA  
+	TMP = MATMUL(TRANSPOSE(Jac),G); /* DZ <- Jac(Y+Z)*Y_tlm */
+#else      
+	JacTR_SP_Vec ( Jac, G, TMP );    
+#endif     
+	for(i=0; i<N; i++)
+	  G[i] = H*TMP[i];
+	
+	if (DirectADJ) {
+	  SDIRK_Solve ( 'T', H, N, E_adj, IP_adj, IER, G, ISTATUS );
+	  for(i=0; i<N; i++)
+	    U[istage][iadj][i] = G[i];
+	} else {
+	  /*~~~>  Initializations for Newton iteration */
+	  Set2Zero(N,&U[istage][iadj][0]);
+	  NewtonDone = FALSE;
+            
+	  /* Newton Loop */
+	  for( NewtonIter=0; NewtonIter<NewtonMaxit; NewtonIter++) {
+
+	  /*~~~>   Prepare the loop-dependent part of the right-hand side */
+#ifdef FULL_ALGEBRA  
+	    for(i=0; i<N; i++)
+	      TMP = MATMUL(TRANSPOSE(Jac),U[istage][iadj][i]);    
+#else      
+	    for(i=0; i<N; i++)
+	      JacTR_SP_Vec ( Jac, &U[istage][iadj][i], TMP );    
+#endif      
+	    for(i=0; i<N; i++)
+	      DU[i] = U[istage][iadj][i] - (H*rkGamma)*TMP[i] - G[i];
+
+	  /*~~~>   Solve the linear system */
+            SDIRK_Solve ( 'T', H, N, E, IP, IER, DU, ISTATUS );
+            
+	  /*~~~>   Check convergence of Newton iterations */
+            NewtonIncrement = SDIRK_ErrorNorm(N, DU, SCAL);
+            if ( NewtonIter == 0 ) {
+	      Theta = ABS(ThetaMin);
+	      NewtonRate = (KPP_REAL)2.0;
+	    }
+            else {
+	      Theta = NewtonIncrement/NewtonIncrementOld;
+	      if (Theta < (KPP_REAL)0.99) {
+		NewtonRate = Theta/(ONE-Theta);
+	      /* Predict error at the end of Newton process */ 
+		NewtonPredictedErr = NewtonIncrement*
+		  pow(Theta,(NewtonMaxit-NewtonIter)) / (ONE-Theta);
+	      /* Non-convergence of Newton: predicted error too large */
+                if (NewtonPredictedErr >= NewtonTol)
+		  break; /* Exit NewtonLoop */
+	      } else { /* Non-convergence of Newton: Theta too large */
+		break;
+	      }
+            }
+            NewtonIncrementOld = NewtonIncrement;
+	  /* Update solution */
+	    for(i=0; i<N; i++)
+	      U[istage][iadj][i] -= DU[i];
+            
+          /* Check error in Newton iterations */
+            NewtonDone = (NewtonRate*NewtonIncrement <= NewtonTol);
+          /* AbsTol is often inappropriate for adjoints -
+              we do at least 4 Newton iterations to ensure convergence
+              of all adjoint components */
+            if ((NewtonIter>=4) && NewtonDone)
+	      break; /* Exit Newton Loop */ 
+	  }
+            
+	/*~~~> If Newton iterations fail employ the direct solution */
+	  if (!NewtonDone) {
+	    printf("Problems with Newton Adjoint!!!\n");
+#ifdef FULL_ALGEBRA
+	    for(i=0; i<N; i++)
+	      E_adj[i][j] = -Jac[i][j];
+	    for(j=0; j<N; j++)
+	      E_adj[j][j] += ONE/(H*rkGamma);
+	    DGETRF( N, N, E_adj, N, IP_adj, IER );
+#else
+	    for(i=0; i<LU_NONZERO; i++)
+	      E_adj[i] = -Jac[i];
+	    for(i=0; i<NVAR; i++) {
+	      j = LU_DIAG[i];
+	      E_adj[j] += ONE/(H*rkGamma);
+	    }
+	    IER = KppDecomp ( E_adj);
+#endif
+	    ISTATUS[Ndec]++;
+	    if (IER != 0) {
+	      printf("At stage %d the matrix used in adjoint computation is "
+		     "singular", istage);
+	      return SDIRK_ErrorMsg(-8,T,H);
+	    }
+	    SDIRK_Solve ( 'T', H, N, E_adj, IP_adj, IER, G, ISTATUS );
+	    for(i=0; i<N; i++)
+	      U[istage][iadj][i] = G[i];  
+	  }
+
+	/*~~~>  End of implified Newton iterations */
+	} /* End of DirADJ */
+
+      } /* End of adj */
+ 
+    } /* End of stages */
+
+    /*~~~> Update adjoint solution
+           Y(:) <-- Y(:) + Sum_j rkD(j)*Z_j(:) */
+    for (istage=0; istage<rkS; istage++) {
+      for (iadj=0; iadj<NADJ; iadj++) {
+	for(i=0; i<N; i++)
+	  Lambda[iadj][i] += U[istage][iadj][i];
+      }
+    }
+  } /* End of Tloop */
+
+  /* Successful return */
+  return 1;
+  
+} /* End of SDIRK_DadjInt */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void SDIRK_AllocBuffers(int Max_no_steps, int rkS, int SaveLU) {
+/*~~~>  Allocate buffer space for checkpointing
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+  int i,j;
+
+  chk_H = (KPP_REAL*) malloc(Max_no_steps * sizeof(KPP_REAL));
+  if (chk_H == NULL) {
+    printf("Failed allocation of buffer H\n");
+    exit(0);
+  }
+
+  chk_T = (KPP_REAL*) malloc(Max_no_steps * sizeof(KPP_REAL));
+  if (chk_T == NULL) {
+    printf("Failed allocation of buffer T\n");
+    exit(0);
+  }
+
+  chk_Y = (KPP_REAL**) malloc(Max_no_steps * sizeof(KPP_REAL*));
+  if (chk_Y == NULL) {
+    printf("Failed allocation of buffer Y\n");
+    exit(0);
+  }
+  for(i=0; i<Max_no_steps; i++) {
+    chk_Y[i] = (KPP_REAL*) malloc(NVAR * sizeof(KPP_REAL));
+    if (chk_Y[i] == NULL) {
+      printf("Failed allocation of buffer Y\n");
+      exit(0);
+    }
+  }
+   
+  chk_Z = (KPP_REAL***) malloc(Max_no_steps * sizeof(KPP_REAL**));
+  if (chk_Z == NULL) {
+    printf("Failed allocation of buffer Z\n");
+    exit(0);
+  }
+  for(i=0; i<Max_no_steps; i++) {
+    chk_Z[i] = (KPP_REAL**) malloc(rkS * sizeof(KPP_REAL*));
+    if (chk_Z[i] == NULL) {
+      printf("Failed allocation of buffer Z\n");
+      exit(0);
+    }
+    for(j=0; j<rkS; j++) {
+      chk_Z[i][j] = (KPP_REAL*) malloc(NVAR * sizeof(KPP_REAL));
+      if (chk_Z[i][j] == NULL) {
+	printf("Failed allocation of buffer Z\n");
+	exit(0);
+      }
+    }
+  }
+
+  if (SaveLU) {
+#ifdef FULL_ALGEBRA
+    chk_J = (KPP_REAL***) malloc(Max_no_steps * sizeof(KPP_REAL**));
+    if (chk_J == NULL) {
+      printf("Failed allocation of buffer J\n");
+      exit(0);
+    }
+    for(i=0; i<Max_no_steps; i++) {
+      chk_J[i] = (KPP_REAL**) malloc(NVAR * sizeof(KPP_REAL*));
+      if (chk_J[i] == NULL) {
+	printf("Failed allocation of buffer J\n");
+	exit(0);
+      }
+      for(j=0; j<NVAR; j++) {
+	chk_J[i][j] = (KPP_REAL*) malloc(NVAR * sizeof(KPP_REAL));
+	if (chk_J[i][j] == NULL) {
+	  printf("Failed allocation of buffer J\n");
+	  exit(0);
+	}
+      }
+    }
+#else
+    chk_J = (KPP_REAL**) malloc(Max_no_steps * sizeof(KPP_REAL*));
+    if (chk_J == NULL) {
+      printf("Failed allocation of buffer J\n");
+      exit(0);
+    }
+    for(i=0; i<Max_no_steps; i++) {
+      chk_J[i] = (KPP_REAL*) malloc(LU_NONZERO * sizeof(KPP_REAL));
+      if (chk_J[i] == NULL) {
+	printf("Failed allocation of buffer J\n");
+	exit(0);
+      }
+    }
+#endif
+ 
+    chk_P = (int**) malloc(Max_no_steps * sizeof(int*));
+    if (chk_P == NULL) {
+      printf("Failed allocation of buffer P\n");
+      exit(0);
+    }
+    for(i=0; i<Max_no_steps; i++) {
+      chk_P[i] = (int*) malloc(NVAR * sizeof(int));
+      if (chk_P[i] == NULL) {
+	printf("Failed allocation of buffer P\n");
+	exit(0);
+      }
+    }
+  }
+} /* End of SDIRK_AllocBuffers */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void SDIRK_FreeBuffers(int Max_no_steps, int SaveLU) {
+/*~~~>  Deallocate buffer space for discrete adjoint
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+  int i,j;
+
+  free(chk_H);
+  free(chk_T);
+
+  for(i=0; i<Max_no_steps; i++)
+    free(chk_Y[i]);
+  free(chk_Y);
+
+  for(i=0; i<Max_no_steps; i++) {
+    for(j=0; j<rkS; j++) {
+      free(chk_Z[i][j]);
+    }
+    free(chk_Z[i]);
+  }
+  free(chk_Z);
+
+  if(SaveLU) {
+#ifdef FULL_ALGEBRA
+    for(i=0; i<Max_no_steps; i++) {
+      for(j=0; j<rkS; j++) {
+	free(chk_J[i][j]);
+      }
+      free(chk_J[i]);
+    }
+    free(chk_Z);
+#else
+    for(i=0; i<Max_no_steps; i++)
+      free(chk_J[i]);
+    free(chk_J);
+#endif
+
+    for(i=0; i<Max_no_steps; i++)
+      free(chk_P[i]);
+    free(chk_P);
+  }
+} /* End of SDIRK_FreeBuffers */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void SDIRK_Push( KPP_REAL T, KPP_REAL H, KPP_REAL Y[], KPP_REAL Z[][NVAR], 
+		 KPP_REAL E[], int P[], int Max_no_steps, int SaveLU ) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~> Saves the next trajectory snapshot for discrete adjoints
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+  
+  int i,j;
+
+  stack_ptr++;
+  if( stack_ptr > Max_no_steps ) {
+    printf( "Push failed: buffer overflow");
+    exit(0);
+  }
+
+  chk_H[ stack_ptr ] = H;
+  chk_T[ stack_ptr ] = T;
+  for(i=0; i<NVAR; i++) {
+    chk_Y[stack_ptr][i] = Y[i];
+    for(j=0; j<rkS; j++)
+      chk_Z[stack_ptr][j][i] = Z[j][i];
+  }
+
+  if (SaveLU) {
+#ifdef FULL_ALGEBRA
+    for(i=0; i<NVAR; i++) {
+      for(j=0; j<NVAR; j++)
+	chk_J[stack_ptr][i][j] = E[i][j];
+      chk_P[stack_ptr][i] = P[i];
+    }
+#else   
+    for(i=0; i<LU_NONZERO; i++)
+      chk_J[stack_ptr][i] = E[i];
+#endif
+  }
+  
+} /* End of SDIRK_Push */
+  
+   
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void SDIRK_Pop( KPP_REAL* T, KPP_REAL* H, KPP_REAL* Y, KPP_REAL* Z, KPP_REAL* E,
+		int* P, int SaveLU ) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~> Retrieves the next trajectory snapshot for discrete adjoints
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+   
+  int i,j;
+
+  if ( stack_ptr < 0 ) {
+    printf( "Pop failed: empty buffer\n" );
+    exit(0);
+  }
+
+  *H = chk_H[ stack_ptr ];
+  *T = chk_T[ stack_ptr ];
+  for(i=0; i<NVAR; i++) {
+    Y[i] = chk_Y[stack_ptr][i];
+    for(j=0; j<rkS; j++)
+      Z[(j * NVAR) + i] = chk_Z[stack_ptr][j][i];
+  }
+
+  if (SaveLU) {
+#ifdef FULL_ALGEBRA
+    for(i=0; i<NVAR; i++) {
+      for(j=0; j<NVAR; j++)
+	E[(j*NVAR)+i] = chk_J[stack_ptr][j][i];
+      P[i] = chk_P[stack_ptr][i];
+    }
+#else
+    for(i=0; i<LU_NONZERO; i++)
+      E[i] = chk_J[stack_ptr][i];
+#endif
+  }
+
+  stack_ptr--;
+  
+} /* End of SDIRK_Pop */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void SDIRK_ErrorScale( int N, int ITOL, KPP_REAL AbsTol[], KPP_REAL RelTol[],
+		       KPP_REAL Y[], KPP_REAL SCAL[]) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+  int i;
+  if (ITOL == 0){
+    for (i = 0; i < NVAR; i++)
+      SCAL[i] = ONE / (AbsTol[0]+RelTol[0]*ABS(Y[i]) );
+  }
+  else {
+    for (i = 0; i < NVAR; i++)
+      SCAL[i] = ONE / (AbsTol[i]+RelTol[i]*ABS(Y[i]) );
+  }
+
+} /*  End of SDIRK_ErrorScale */
+      
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+KPP_REAL SDIRK_ErrorNorm( int N, KPP_REAL Y[], KPP_REAL SCAL[] ) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+  int i;
+  KPP_REAL Err = ZERO;
+
+  for (i = 0; i < N; i++)
+    Err = Err + pow( (Y[i]*SCAL[i]), 2);
+  Err = MAX( SQRT(Err/(KPP_REAL)N), (KPP_REAL)1.0e-10);
+
+  return Err;
+
+} /*  End of SDIRK_ErrorNorm  */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+int SDIRK_ErrorMsg(int code, KPP_REAL T, KPP_REAL H) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    Handles all error messages
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+
+  printf("\nForced exit from Sdirk due to the following error:\n");
+
+  switch (code) {
+    case -1:
+      printf("--> Improper value for maximal no of steps\n");
+      break;
+    case -2:
+      printf("--> Selected Rosenbrock method not implemented\n");
+      break;
+    case -3:
+      printf("--> Hmin/Hmax/Hstart must be positive\n");
+      break;
+    case -4:
+      printf("--> FacMin/FacMax/FacRej must be positive\n");
+      break;
+    case -5:
+      printf("--> Improper tolerance values\n");
+      break;
+    case -6:
+      printf("--> No of steps exceeds maximum bound\n");
+      break;
+    case -7:
+      printf("--> Step size too small T + 10*H = T or H < Roundoff\n");
+      break;
+    case -8:
+      printf("--> Matrix is repeatedly singular\n");
+      break;
+    default: /* causing an error */
+      printf("Unknown Error code: %d\n", code);
+  }
+
+  printf("\nTime = %f and H = %f\n", T, H );
+  return code;
+
+} /*  end SDIRK_ErrorMsg   */
+      
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void SDIRK_PrepareMatrix ( KPP_REAL H, KPP_REAL T, KPP_REAL Y[], 
+			   KPP_REAL FJAC[], int SkipJac, int SkipLU, 
+			   KPP_REAL E[], int IP[], int Reject, int ISING, 
+			   int ISTATUS[] ) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~>  Compute the matrix E = 1/(H*GAMMA)*Jac, and its decomposition
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+  KPP_REAL HGammaInv;
+  int i, j, ConsecutiveSng = 0;
+
+  ISING = 1;
+
+  while (ISING != 0) {
+    HGammaInv = ONE/(H*rkGamma);
+
+  /*~~~>  Compute the Jacobian */
+    if (SkipJac==0) {
+      JAC_CHEM(T,Y,FJAC);
+      ISTATUS[Njac]++;
+    }
+
+#ifdef FULL_ALGEBRA
+    for(j=0; j<NVAR; j++) {
+      for(i=0; i<NVAR; i++)
+	E[j][i] = -FJAC[j][i];
+      E[j][j] = E[j][j] + HGammaInv;
+    }
+    DGETRF(NVAR, NVAR, E, NVAR, IP, ISING);
+#else
+    for(i=0; i<LU_NONZERO; i++)
+      E[i] = -FJAC[i];
+    for(i=0; i<NVAR; i++) {
+      j = LU_DIAG[i];
+      E[j]=E[j] + HGammaInv;
+    }
+
+    ISING = KppDecomp(E);
+    IP[0] = 1;
+#endif
+      
+    ISTATUS[Ndec]++;
+
+    if (ISING != 0) {
+      printf("MATRIX IS SINGULAR, ISING=%d T=%e H=%e\n", ISING, T, H);
+      ISTATUS[Nsng]++;
+      ConsecutiveSng++;
+      if (ConsecutiveSng >= 6) 
+	return; /* Failure */
+      H = (KPP_REAL)(0.5)*H;
+      SkipJac = 0; /* False */
+      SkipLU  = 0; /* False */
+      Reject  = 1; /* True */
+    }
+  }
+} /* End of SDIRK_PrepareMatrix */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void SDIRK_Solve ( char Transp, KPP_REAL H, int N, KPP_REAL E[], int IP[], 
+		   int ISING, KPP_REAL RHS[], int ISTATUS[] ) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~>  Solves the system (H*Gamma-Jac)*x = R
+      using the LU decomposition of E = I - 1/(H*Gamma)*Jac
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+  KPP_REAL HGammaInv;
+      
+  HGammaInv = ONE/(H*rkGamma);
+  WSCAL(N,HGammaInv,RHS,1);
+  switch (Transp) {
+    case 'N':
+#ifdef FULL_ALGEBRA  
+      DGETRS( 'N', N, 1, E, N, IP, RHS, N, ISING );
+#else
+      KppSolve(E, RHS);
+#endif
+      break;
+    case 'T':
+#ifdef FULL_ALGEBRA  
+      DGETRS( 'T', N, 1, E, N, IP, RHS, N, ISING );
+#else
+      KppSolveTR(E, RHS, RHS);
+#endif
+      break;
+    default:
+      printf("Error in SDIRK_Solve. Unknown Transp argument: %c\n", Transp);
+      exit(0);
+  }
+  ISTATUS[Nsol]++;
+} /* End of SDIRK_Solve */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void Sdirk4a()
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+{
+  sdMethod = S4A;
+
+/* Number of stages */
+  rkS = 5;
+
+/* Method Coefficients */
+  rkGamma = (KPP_REAL)0.2666666666666666666666666666666667;
+
+  rkA[0][0] = (KPP_REAL)0.2666666666666666666666666666666667;
+  rkA[0][1] = (KPP_REAL)0.5000000000000000000000000000000000;
+  rkA[1][1] = (KPP_REAL)0.2666666666666666666666666666666667;
+  rkA[0][2] = (KPP_REAL)0.3541539528432732316227461858529820;
+  rkA[1][2] = (KPP_REAL)(-0.5415395284327323162274618585298197e-01);
+  rkA[2][2] = (KPP_REAL)0.2666666666666666666666666666666667;
+  rkA[0][3] = (KPP_REAL)0.8515494131138652076337791881433756e-01;
+  rkA[1][3] = (KPP_REAL)(-0.6484332287891555171683963466229754e-01);
+  rkA[2][3] = (KPP_REAL)0.7915325296404206392428857585141242e-01;
+  rkA[3][3] = (KPP_REAL)0.2666666666666666666666666666666667;
+  rkA[0][4] = (KPP_REAL)2.100115700566932777970612055999074;
+  rkA[1][4] = (KPP_REAL)(-0.7677800284445976813343102185062276);
+  rkA[2][4] = (KPP_REAL)2.399816361080026398094746205273880;
+  rkA[3][4] = (KPP_REAL)(-2.998818699869028161397714709433394);
+  rkA[4][4] = (KPP_REAL)0.2666666666666666666666666666666667;
+  rkB[0] = (KPP_REAL)2.100115700566932777970612055999074;
+  rkB[1] = (KPP_REAL)(-0.7677800284445976813343102185062276);
+  rkB[2] = (KPP_REAL)2.399816361080026398094746205273880;
+  rkB[3] = (KPP_REAL)(-2.998818699869028161397714709433394);
+  rkB[4] = (KPP_REAL)0.2666666666666666666666666666666667;
+
+  rkBhat[0] = (KPP_REAL)2.885264204387193942183851612883390;
+  rkBhat[1] = (KPP_REAL)(-0.1458793482962771337341223443218041);
+  rkBhat[2] = (KPP_REAL)2.390008682465139866479830743628554;
+  rkBhat[3] = (KPP_REAL)(-4.129393538556056674929560012190140);
+  rkBhat[4] = ZERO;
+
+  rkC[0] = (KPP_REAL)0.2666666666666666666666666666666667;
+  rkC[1] = (KPP_REAL)0.7666666666666666666666666666666667;
+  rkC[2] = (KPP_REAL)0.5666666666666666666666666666666667;
+  rkC[3] = (KPP_REAL)0.3661315380631796996374935266701191;
+  rkC[4] = ONE;
+
+/* Ynew = Yold + h*Sum_i {rkB_i*k_i} = Yold + Sum_i {rkD_i*Z_i} */
+  rkD[0] = ZERO;
+  rkD[1] = ZERO;
+  rkD[2] = ZERO;
+  rkD[3] = ZERO;
+  rkD[4] = ONE;
+
+/* Err = h * Sum_i {(rkB_i-rkBhat_i)*k_i} = Sum_i {rkE_i*Z_i} */
+  rkE[0] = (KPP_REAL)(-0.6804000050475287124787034884002302);
+  rkE[1] = (KPP_REAL)(1.558961944525217193393931795738823);
+  rkE[2] = (KPP_REAL)(-13.55893003128907927748632408763868);
+  rkE[3] = (KPP_REAL)(15.48522576958521253098585004571302);
+  rkE[4] = ONE;
+
+/* Local order of Err estimate */
+  rkELO = 4;
+
+/* h*Sum_j {rkA_ij*k_j} = Sum_j {rkTheta_ij*Z_j} */
+  rkTheta[0][1] = (KPP_REAL)1.875000000000000000000000000000000;
+  rkTheta[0][2] = (KPP_REAL)1.708847304091539528432732316227462;
+  rkTheta[1][2] = (KPP_REAL)(-0.2030773231622746185852981969486824);
+  rkTheta[0][3] = (KPP_REAL)0.2680325578937783958847157206823118;
+  rkTheta[1][3] = (KPP_REAL)(-0.1828840955527181631794050728644549);
+  rkTheta[2][3] = (KPP_REAL)0.2968246986151577397160821594427966;
+  rkTheta[0][4] = (KPP_REAL)0.9096171815241460655379433581446771;
+  rkTheta[1][4] = (KPP_REAL)(-3.108254967778352416114774430509465);
+  rkTheta[2][4] = (KPP_REAL)12.33727431701306195581826123274001;
+  rkTheta[3][4] = (KPP_REAL)(-11.24557012450885560524143016037523);
+
+/* Starting value for Newton iterations: Z_i^0 = Sum_j {rkAlpha_ij*Z_j} */
+  rkAlpha[0][1] = (KPP_REAL)2.875000000000000000000000000000000;
+  rkAlpha[0][2] = (KPP_REAL)0.8500000000000000000000000000000000;
+  rkAlpha[1][2] = (KPP_REAL)0.4434782608695652173913043478260870;
+  rkAlpha[0][3] = (KPP_REAL)0.7352046091658870564637910527807370;
+  rkAlpha[1][3] = (KPP_REAL)(-0.9525565003057343527941920657462074e-01);
+  rkAlpha[2][3] = (KPP_REAL)0.4290111305453813852259481840631738;
+  rkAlpha[0][4] = (KPP_REAL)(-16.10898993405067684831655675112808);
+  rkAlpha[1][4] = (KPP_REAL)6.559571569643355712998131800797873;
+  rkAlpha[2][4] = (KPP_REAL)(-15.90772144271326504260996815012482);
+  rkAlpha[3][4] = (KPP_REAL)25.34908987169226073668861694892683;
+
+  rkELO = (KPP_REAL)4.0;
+
+} /* end Sdirk4a */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void Sdirk4b() {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+  sdMethod = S4B;
+
+/* Number of stages */
+  rkS = 5;
+
+/* Method coefficients */
+  rkGamma = (KPP_REAL)0.25;
+
+  rkA[0][0] = (KPP_REAL)0.25;
+  rkA[0][1] = (KPP_REAL)0.5;
+  rkA[1][1] = (KPP_REAL)0.25;
+  rkA[0][2] = (KPP_REAL)0.34;
+  rkA[1][2] = (KPP_REAL)(-0.40e-01);
+  rkA[2][2] = (KPP_REAL)0.25;
+  rkA[0][3] = (KPP_REAL)0.2727941176470588235294117647058824;
+  rkA[1][3] = (KPP_REAL)(-0.5036764705882352941176470588235294e-01);
+  rkA[2][3] = (KPP_REAL)0.2757352941176470588235294117647059e-01;
+  rkA[3][3] = (KPP_REAL)0.25;
+  rkA[0][4] = (KPP_REAL)1.041666666666666666666666666666667;
+  rkA[1][4] = (KPP_REAL)(-1.020833333333333333333333333333333);
+  rkA[2][4] = (KPP_REAL)7.812500000000000000000000000000000;
+  rkA[3][4] = (KPP_REAL)(-7.083333333333333333333333333333333);
+  rkA[4][4] = (KPP_REAL)0.25;
+
+  rkB[0] = (KPP_REAL)1.041666666666666666666666666666667;
+  rkB[1] = (KPP_REAL)(-1.020833333333333333333333333333333);
+  rkB[2] = (KPP_REAL)7.812500000000000000000000000000000;
+  rkB[3] = (KPP_REAL)(-7.083333333333333333333333333333333);
+  rkB[4] = (KPP_REAL)0.250000000000000000000000000000000;
+
+  rkBhat[0] = (KPP_REAL)1.069791666666666666666666666666667;
+  rkBhat[1] = (KPP_REAL)(-0.894270833333333333333333333333333);
+  rkBhat[2] = (KPP_REAL)7.695312500000000000000000000000000;
+  rkBhat[3] = (KPP_REAL)(-7.083333333333333333333333333333333);
+  rkBhat[4] = (KPP_REAL)0.212500000000000000000000000000000;
+
+  rkC[0] = (KPP_REAL)0.25;
+  rkC[1] = (KPP_REAL)0.75;
+  rkC[2] = (KPP_REAL)0.55;
+  rkC[3] = (KPP_REAL)0.5;
+  rkC[4] = ONE;
+
+/* Ynew = Yold + h*Sum_i {rkB_i*k_i} = Yold + Sum_i {rkD_i*Z_i} */
+  rkD[0] = ZERO;
+  rkD[1] = ZERO;
+  rkD[2] = ZERO;
+  rkD[3] = ZERO;
+  rkD[4] = ONE;
+
+/* Err = h * Sum_i {(rkB_i-rkBhat_i)*k_i} = Sum_i {rkE_i*Z_i} */
+  rkE[0] = (KPP_REAL)0.5750;
+  rkE[1] = (KPP_REAL)0.2125;
+  rkE[2] = (KPP_REAL)(-4.6875);
+  rkE[3] = (KPP_REAL)4.2500;
+  rkE[4] = (KPP_REAL)0.1500;
+
+/* Local order of Err estimate */
+  rkELO = 4;
+
+/* h*Sum_j {rkA_ij*k_j} = Sum_j {rkTheta_ij*Z_j} */
+  rkTheta[0][1] = (KPP_REAL)2.0;
+  rkTheta[0][2] = (KPP_REAL)1.680000000000000000000000000000000;
+  rkTheta[1][2] = (KPP_REAL)(-0.1600000000000000000000000000000000);
+  rkTheta[0][3] = (KPP_REAL)1.308823529411764705882352941176471;
+  rkTheta[1][3] = (KPP_REAL)(-0.1838235294117647058823529411764706);
+  rkTheta[2][3] = (KPP_REAL)0.1102941176470588235294117647058824;
+  rkTheta[0][4] = (KPP_REAL)(-3.083333333333333333333333333333333);
+  rkTheta[1][4] = (KPP_REAL)(-4.291666666666666666666666666666667);
+  rkTheta[2][4] = (KPP_REAL)34.37500000000000000000000000000000;
+  rkTheta[3][4] = (KPP_REAL)(-28.3333333333333333333333333333);
+
+/* Starting value for Newton iterations: Z_i^0 = Sum_j {rkAlpha_ij*Z_j} */
+  rkAlpha[0][1] = (KPP_REAL)3.0;
+  rkAlpha[0][2] = (KPP_REAL)0.8800000000000000000000000000000000;
+  rkAlpha[1][2] = (KPP_REAL)0.4400000000000000000000000000000000;
+  rkAlpha[0][3] = (KPP_REAL)0.1666666666666666666666666666666667;
+  rkAlpha[1][3] = (KPP_REAL)(-0.8333333333333333333333333333333333e-01);
+  rkAlpha[2][3] = (KPP_REAL)0.9469696969696969696969696969696970;
+  rkAlpha[0][4] = (KPP_REAL)(-6.0);
+  rkAlpha[1][4] = (KPP_REAL)9.0;
+  rkAlpha[2][4] = (KPP_REAL)(-56.81818181818181818181818181818182);
+  rkAlpha[3][4] = (KPP_REAL)54.0;
+
+} /* end Sdirk4b */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void Sdirk2a() {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+  sdMethod = S2A;
+
+/* ~~~> Number of stages */
+  rkS = 2;
+
+/* ~~~> Method coefficients */
+  rkGamma = (KPP_REAL)0.2928932188134524755991556378951510;
+  rkA[0][0] = (KPP_REAL)0.2928932188134524755991556378951510;
+  rkA[0][1] = (KPP_REAL)0.7071067811865475244008443621048490;
+  rkA[1][1] = (KPP_REAL)0.2928932188134524755991556378951510;
+  rkB[0] = (KPP_REAL)0.7071067811865475244008443621048490;
+  rkB[1] = (KPP_REAL)0.2928932188134524755991556378951510;
+  rkBhat[0] = (KPP_REAL)0.6666666666666666666666666666666667;
+  rkBhat[1] = (KPP_REAL)0.3333333333333333333333333333333333;
+  rkC[0] = (KPP_REAL)0.292893218813452475599155637895151;
+  rkC[1] = ONE;
+
+/* ~~~> Ynew = Yold + h*Sum_i {rkB_i*k_i} = Yold + Sum_i {rkD_i*Z_i} */
+  rkD[0] = ZERO;
+  rkD[1] = ONE;
+
+/* ~~~> Err = h * Sum_i {(rkB_i-rkBhat_i)*k_i} = Sum_i {rkE_i*Z_i} */
+  rkE[0] = (KPP_REAL)0.4714045207910316829338962414032326;
+  rkE[1] = (KPP_REAL)(-0.1380711874576983496005629080698993);
+
+/* ~~~> Local order of Err estimate */
+  rkELO = 2;
+
+/* ~~~> h*Sum_j {rkA_ij*k_j} = Sum_j {rkTheta_ij*Z_j} */
+  rkTheta[0][1] = (KPP_REAL)2.414213562373095048801688724209698;
+
+/* ~~~> Starting value for Newton iterations */
+  rkAlpha[0][1] = (KPP_REAL)3.414213562373095048801688724209698;
+
+} /* end Sdirk2a */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void Sdirk2b() {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+  sdMethod = S2B;
+
+/* ~~~> Number of stages */
+  rkS = 2;
+
+/* ~~~> Method coefficients */
+  rkGamma = (KPP_REAL)1.707106781186547524400844362104849;
+  rkA[0][0] = (KPP_REAL)1.707106781186547524400844362104849;
+  rkA[0][1] = (KPP_REAL)(-0.707106781186547524400844362104849);
+  rkA[1][1] = (KPP_REAL)1.707106781186547524400844362104849;
+  rkB[0] = (KPP_REAL)(-0.707106781186547524400844362104849);
+  rkB[1] = (KPP_REAL)1.707106781186547524400844362104849;
+  rkBhat[0] = (KPP_REAL)0.6666666666666666666666666666666667;
+  rkBhat[1] = (KPP_REAL)0.3333333333333333333333333333333333;
+  rkC[0] = (KPP_REAL)1.707106781186547524400844362104849;
+  rkC[1] = ONE;
+
+/* ~~~> Ynew = Yold + h*Sum_i {rkB_i*k_i} = Yold + Sum_i {rkD_i*Z_i} */
+  rkD[0] = ZERO;
+  rkD[1] = ONE;
+
+/* ~~~> Err = h * Sum_i {(rkB_i-rkBhat_i)*k_i} = Sum_i {rkE_i*Z_i} */
+  rkE[0] = (KPP_REAL)(-0.4714045207910316829338962414032326);
+  rkE[1] = (KPP_REAL)0.8047378541243650162672295747365659;
+
+/* ~~~> Local order of Err estimate */
+  rkELO = 2;
+
+/* ~~~> h*Sum_j {rkA_ij*k_j} = Sum_j {rkTheta_ij*Z_j} */
+  rkTheta[0][1] = (KPP_REAL)(-0.414213562373095048801688724209698);
+
+/* ~~~> Starting value for Newton iterations */
+  rkAlpha[0][1] = (KPP_REAL)0.5857864376269049511983112757903019;
+
+} /* end Sdirk2b */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void Sdirk3a() {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+  sdMethod = S3A;
+
+/* ~~~> Number of stages */
+  rkS = 3;
+
+/* ~~~> Method coefficients */
+  rkGamma = (KPP_REAL)0.2113248654051871177454256097490213;
+  rkA[0][0] = (KPP_REAL)0.2113248654051871177454256097490213;
+  rkA[0][1] = (KPP_REAL)0.2113248654051871177454256097490213;
+  rkA[1][1] = (KPP_REAL)0.2113248654051871177454256097490213;
+  rkA[0][2] = (KPP_REAL)0.2113248654051871177454256097490213;
+  rkA[1][2] = (KPP_REAL)0.5773502691896257645091487805019573;
+  rkA[2][2] = (KPP_REAL)0.2113248654051871177454256097490213;
+  rkB[0] = (KPP_REAL)0.2113248654051871177454256097490213;
+  rkB[1] = (KPP_REAL)0.5773502691896257645091487805019573;
+  rkB[2] = (KPP_REAL)0.2113248654051871177454256097490213;
+  rkBhat[0]= (KPP_REAL)0.2113248654051871177454256097490213;
+  rkBhat[1]= (KPP_REAL)0.6477918909913548037576239837516312;
+  rkBhat[2]= (KPP_REAL)0.1408832436034580784969504064993475;
+  rkC[0] = (KPP_REAL)0.2113248654051871177454256097490213;
+  rkC[1] = (KPP_REAL)0.4226497308103742354908512194980427;
+  rkC[2] = ONE;
+
+/* ~~~> Ynew = Yold + h*Sum_i {rkB_i*k_i} = Yold + Sum_i {rkD_i*Z_i} */
+  rkD[0] = ZERO;
+  rkD[1] = ZERO;
+  rkD[2] = ONE;
+
+/* ~~~> Err = h * Sum_i {(rkB_i-rkBhat_i)*k_i} = Sum_i {rkE_i*Z_i} */
+  rkE[0] = (KPP_REAL)0.9106836025229590978424821138352906;
+  rkE[1] = (KPP_REAL)(-1.244016935856292431175815447168624);
+  rkE[2] = (KPP_REAL)0.3333333333333333333333333333333333;
+
+/* ~~~> Local order of Err estimate    */
+  rkELO    = 2;
+
+/* ~~~> h*Sum_j {rkA_ij*k_j} = Sum_j {rkTheta_ij*Z_j} */
+  rkTheta[0][1] =  ONE;
+  rkTheta[0][2] = (KPP_REAL)(-1.732050807568877293527446341505872);
+  rkTheta[1][2] = (KPP_REAL)2.732050807568877293527446341505872;
+
+/* ~~~> Starting value for Newton iterations */
+  rkAlpha[0][1] = (KPP_REAL)2.0;
+  rkAlpha[0][2] = (KPP_REAL)(-12.92820323027550917410978536602349);
+  rkAlpha[1][2] = (KPP_REAL)8.83012701892219323381861585376468;
+
+} /* end Sdirk3a */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void FUN_CHEM(KPP_REAL T, KPP_REAL Y[], KPP_REAL P[])
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+{
+
+  KPP_REAL Told;
+
+  Told = TIME;
+  TIME = T;
+  Update_SUN();
+  Update_RCONST();
+  Fun( Y, FIX, RCONST, P );
+  TIME = Told;
+
+}  /*  end FUN_CHEM  */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void JAC_CHEM(KPP_REAL T, KPP_REAL Y[], KPP_REAL JV[]) {
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+  KPP_REAL Told;
+
+#ifdef FULL_ALGEBRA
+  KPP_REAL JS[LU_NONZERO];
+  int i,j;
+#endif
+
+  Told = TIME;
+  TIME = T;
+  Update_SUN();
+  Update_RCONST();
+
+#ifdef FULL_ALGEBRA
+  Jac_SP( Y, FIX, RCONST, JS);
+
+  for(j=0; j<NVAR; j++) {
+    for(i=0; i<NVAR; i++)
+      JV[j][i] = (KPP_REAL)0.0;
+  } /* end for */
+
+  for(i=0; i<LU_NONZERO; i++)
+    JV[LU_ICOL[i]][LU_IROW[i]] = JS[i];
+#else
+  Jac_SP(Y, FIX, RCONST, JV);
+#endif
+
+  TIME = Told;
+
+} /* end JAC_CHEM  */
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/sdirk_adj.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/sdirk_adj.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/sdirk_adj.def	(revision 2696)
@@ -0,0 +1,20 @@
+ 
+#FUNCTION AGGREGATE
+#JACOBIAN SPARSE_LU_ROW
+
+#DOUBLE ON 
+#INTFILE sdirk_adj
+
+#INLINE F77_GLOBAL
+      REAL*8 STEPSTART
+      COMMON /GDATA/ STEPSTART
+#ENDINLINE
+
+#INLINE F77_INIT
+        STEPMIN=0.0001
+        STEPMAX=3600.
+        STEPSTART=STEPMIN
+#ENDINLINE
+
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/sdirk_adj.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/sdirk_adj.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/sdirk_adj.f90	(revision 2696)
@@ -0,0 +1,1669 @@
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
+!  Adjoint of SDIRK - Singly-Diagonally-Implicit Runge-Kutta method       !
+!            * Sdirk 2a, 2b: L-stable, 2 stages, order 2                  !
+!            * Sdirk 3a:     L-stable, 3 stages, order 2, adj-invariant   !
+!            * Sdirk 4a, 4b: L-stable, 5 stages, order 4                  !
+!  By default the code employs the KPP sparse linear algebra routines     !
+!  Compile with -DFULL_ALGEBRA to use full linear algebra (LAPACK)        !
+!                                                                         !
+!    (C)  Adrian Sandu, July 2005                                         !
+!    Virginia Polytechnic Institute and State University                  !
+!    Contact: sandu@cs.vt.edu                                             !
+!    Revised by Philipp Miehe and Adrian Sandu, May 2006                  !
+!    This implementation is part of KPP - the Kinetic PreProcessor        !
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
+
+MODULE KPP_ROOT_Integrator
+
+  USE KPP_ROOT_Precision
+  USE KPP_ROOT_Global, ONLY: FIX, RCONST, TIME
+  USE KPP_ROOT_Parameters, ONLY: NVAR, NSPEC, NFIX, LU_NONZERO
+  USE KPP_ROOT_JacobianSP, ONLY: LU_DIAG
+  USE KPP_ROOT_Jacobian, ONLY: Jac_SP_Vec, JacTR_SP_Vec
+  USE KPP_ROOT_LinearAlgebra, ONLY: KppDecomp, KppSolve,    &
+               KppSolveTR, Set2zero, WLAMCH, WCOPY, WAXPY, WSCAL, WADD
+  
+  IMPLICIT NONE
+  PUBLIC
+  SAVE
+  
+!~~~>  Statistics on the work performed by the SDIRK method
+  INTEGER, PARAMETER :: Nfun=1, Njac=2, Nstp=3, Nacc=4,  &
+           Nrej=5, Ndec=6, Nsol=7, Nsng=8,               &
+           Ntexit=1, Nhexit=2, Nhnew=3
+                 
+CONTAINS
+
+SUBROUTINE INTEGRATE_ADJ( NADJ, Y, Lambda, TIN, TOUT, &
+           ATOL_adj, RTOL_adj,                        &
+           ICNTRL_U, RCNTRL_U, ISTATUS_U, RSTATUS_U, Ierr_U )
+
+   USE KPP_ROOT_Parameters
+   USE KPP_ROOT_Global
+   IMPLICIT NONE
+
+!~~~> Y - Concentrations
+   KPP_REAL :: Y(NVAR)
+!~~~> NADJ - No. of cost functionals for which adjoints
+!                are evaluated simultaneously
+!            If single cost functional is considered (like in
+!                most applications) simply set NADJ = 1      
+   INTEGER :: NADJ
+!~~~> Lambda - Sensitivities w.r.t. concentrations
+!     Note: Lambda (1:NVAR,j) contains sensitivities of
+!           the j-th cost functional w.r.t. Y(1:NVAR), j=1...NADJ
+   KPP_REAL  :: Lambda(NVAR,NADJ)
+!~~~> Tolerances for adjoint calculations
+!     (used for full continuous adjoint, and for controlling
+!      iterations when used to solve the discrete adjoint)   
+   KPP_REAL, INTENT(IN)  :: ATOL_adj(NVAR,NADJ), RTOL_adj(NVAR,NADJ)
+   KPP_REAL, INTENT(IN) :: TIN  ! Start Time
+   KPP_REAL, INTENT(IN) :: TOUT ! End Time
+   ! Optional input parameters and statistics
+   INTEGER,       INTENT(IN),  OPTIONAL :: ICNTRL_U(20)
+   KPP_REAL, INTENT(IN),  OPTIONAL :: RCNTRL_U(20)
+   INTEGER,       INTENT(OUT), OPTIONAL :: ISTATUS_U(20)
+   KPP_REAL, INTENT(OUT), OPTIONAL :: RSTATUS_U(20)
+   INTEGER,       INTENT(OUT), OPTIONAL :: Ierr_U
+
+   INTEGER, SAVE :: Ntotal = 0
+   KPP_REAL :: RCNTRL(20), RSTATUS(20), T1, T2
+   INTEGER       :: ICNTRL(20), ISTATUS(20), Ierr
+
+   ICNTRL(:)  = 0
+   RCNTRL(:)  = 0.0_dp
+   ISTATUS(:) = 0
+   RSTATUS(:) = 0.0_dp
+
+   !~~~> fine-tune the integrator:
+   ICNTRL(5) = 8    ! Max no. of Newton iterations
+   ICNTRL(7) = 1    ! Adjoint solution by: 0=Newton, 1=direct
+   ICNTRL(8) = 1    ! Save fwd LU factorization: 0 = do *not* save, 1 = save
+
+   ! If optional parameters are given, and if they are >0, 
+   ! then they overwrite default settings. 
+   IF (PRESENT(ICNTRL_U)) THEN
+     WHERE(ICNTRL_U(:) > 0) ICNTRL(:) = ICNTRL_U(:)
+   END IF
+   IF (PRESENT(RCNTRL_U)) THEN
+     WHERE(RCNTRL_U(:) > 0) RCNTRL(:) = RCNTRL_U(:)
+   END IF
+   
+   
+   T1 = TIN; T2 = TOUT
+   CALL SDIRKADJ( NVAR, NADJ, T1, T2, Y, Lambda,            &
+                  RTOL, ATOL, ATOL_adj, RTOL_adj,           &
+                  RCNTRL, ICNTRL, RSTATUS, ISTATUS, Ierr )
+
+   !~~~> Debug option: number of steps
+   ! Ntotal = Ntotal + ISTATUS(Nstp)
+   ! WRITE(6,777) ISTATUS(Nstp),Ntotal,VAR(ind_O3),VAR(ind_NO2)
+   ! 777 FORMAT('NSTEPS=',I5,' (',I5,')  O3=',E24.14,'  NO2=',E24.14)    
+
+   IF (Ierr < 0) THEN
+        PRINT *,'SDIRK: Unsuccessful exit at T=',TIN,' (Ierr=',Ierr,')'
+   ENDIF
+   
+   ! if optional parameters are given for output they to return information
+   IF (PRESENT(ISTATUS_U)) ISTATUS_U(:) = ISTATUS(:)
+   IF (PRESENT(RSTATUS_U)) RSTATUS_U(:) = RSTATUS(:)
+   IF (PRESENT(Ierr_U))    Ierr_U       = Ierr
+
+   END SUBROUTINE INTEGRATE_ADJ
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE SDIRKADJ(N, NADJ, Tinitial, Tfinal, Y, Lambda,   &
+                       RelTol, AbsTol, RelTol_adj, AbsTol_adj, &
+                       RCNTRL, ICNTRL, RSTATUS, ISTATUS, Ierr)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!    Solves the system y'=F(t,y) using a Singly-Diagonally-Implicit
+!    Runge-Kutta (SDIRK) method.
+!
+!    This implementation is based on the book and the code Sdirk4:
+!
+!      E. Hairer and G. Wanner
+!      "Solving ODEs II. Stiff and differential-algebraic problems".
+!      Springer series in computational mathematics, Springer-Verlag, 1996.
+!    This code is based on the SDIRK4 routine in the above book.
+!
+!    Methods:
+!            * Sdirk 2a, 2b: L-stable, 2 stages, order 2                  
+!            * Sdirk 3a:     L-stable, 3 stages, order 2, adjoint-invariant   
+!            * Sdirk 4a, 4b: L-stable, 5 stages, order 4                  
+!
+!    (C)  Adrian Sandu, July 2005
+!    Virginia Polytechnic Institute and State University
+!    Contact: sandu@cs.vt.edu
+!    Revised by Philipp Miehe and Adrian Sandu, May 2006                  
+!    This implementation is part of KPP - the Kinetic PreProcessor
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>   INPUT ARGUMENTS:
+!
+!-     Y(NVAR)    = vector of initial conditions (at T=Tinitial)
+!-    [Tinitial,Tfinal]  = time range of integration
+!     (if Tinitial>Tfinal the integration is performed backwards in time)
+!-    RelTol, AbsTol = user precribed accuracy
+!- SUBROUTINE ode_Fun( T, Y, Ydot ) = ODE function,
+!                       returns Ydot = Y' = F(T,Y)
+!- SUBROUTINE ode_Fun( T, Y, Ydot ) = Jacobian of the ODE function,
+!                       returns Jcb = dF/dY
+!-    ICNTRL(1:20)    = integer inputs parameters
+!-    RCNTRL(1:20)    = real inputs parameters
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>     OUTPUT ARGUMENTS:
+!
+!-    Y(NVAR)         -> vector of final states (at T->Tfinal)
+!-    ISTATUS(1:20)   -> integer output parameters
+!-    RSTATUS(1:20)   -> real output parameters
+!-    Ierr            -> job status upon return
+!                        success (positive value) or
+!                        failure (negative value)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>     INPUT PARAMETERS:
+!
+!    Note: For input parameters equal to zero the default values of the
+!       corresponding variables are used.
+!
+!    Note: For input parameters equal to zero the default values of the
+!          corresponding variables are used.
+!~~~>  
+!    ICNTRL(1) = not used
+!
+!    ICNTRL(2) = 0: AbsTol, RelTol are NVAR-dimensional vectors
+!              = 1: AbsTol, RelTol are scalars
+!
+!    ICNTRL(3) = Method
+!
+!    ICNTRL(4)  -> maximum number of integration steps
+!        For ICNTRL(4)=0 the default value of 1500 is used
+!        Note: use a conservative estimate, since the checkpoint
+!              buffers are allocated to hold Max_no_steps
+!
+!    ICNTRL(5)  -> maximum number of Newton iterations
+!        For ICNTRL(5)=0 the default value of 8 is used
+!
+!    ICNTRL(6)  -> starting values of Newton iterations:
+!        ICNTRL(6)=0 : starting values are interpolated (the default)
+!        ICNTRL(6)=1 : starting values are zero
+!
+!    ICNTRL(7)  -> method to solve ADJ equations:
+!        ICNTRL(7)=0 : modified Newton re-using LU (the default)
+!        ICNTRL(7)=1 : direct solution (additional one LU factorization per stage)
+!
+!    ICNTRL(8)  -> checkpointing the LU factorization at each step:
+!        ICNTRL(8)=0 : do *not* save LU factorization (the default)
+!        ICNTRL(8)=1 : save LU factorization
+!        Note: if ICNTRL(7)=1 the LU factorization is *not* saved
+!
+!~~~>  Real parameters
+!
+!    RCNTRL(1)  -> Hmin, lower bound for the integration step size
+!                  It is strongly recommended to keep Hmin = ZERO
+!    RCNTRL(2)  -> Hmax, upper bound for the integration step size
+!    RCNTRL(3)  -> Hstart, starting value for the integration step size
+!
+!    RCNTRL(4)  -> FacMin, lower bound on step decrease factor (default=0.2)
+!    RCNTRL(5)  -> FacMax, upper bound on step increase factor (default=6)
+!    RCNTRL(6)  -> FacRej, step decrease factor after multiple rejections
+!                 (default=0.1)
+!    RCNTRL(7)  -> FacSafe, by which the new step is slightly smaller
+!                  than the predicted value  (default=0.9)
+!    RCNTRL(8)  -> ThetaMin. If Newton convergence rate smaller
+!                  than ThetaMin the Jacobian is not recomputed;
+!                  (default=0.001)
+!    RCNTRL(9)  -> NewtonTol, stopping criterion for Newton's method
+!                  (default=0.03)
+!    RCNTRL(10) -> Qmin
+!    RCNTRL(11) -> Qmax. If Qmin < Hnew/Hold < Qmax, then the
+!                  step size is kept constant and the LU factorization
+!                  reused (default Qmin=1, Qmax=1.2)
+!
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>     OUTPUT PARAMETERS:
+!
+!    Note: each call to Rosenbrock adds the current no. of fcn calls
+!      to previous value of ISTATUS(1), and similar for the other params.
+!      Set ISTATUS(1:10) = 0 before call to avoid this accumulation.
+!
+!    ISTATUS(1) = No. of function calls
+!    ISTATUS(2) = No. of jacobian calls
+!    ISTATUS(3) = No. of steps
+!    ISTATUS(4) = No. of accepted steps
+!    ISTATUS(5) = No. of rejected steps (except at the beginning)
+!    ISTATUS(6) = No. of LU decompositions
+!    ISTATUS(7) = No. of forward/backward substitutions
+!    ISTATUS(8) = No. of singular matrix decompositions
+!
+!    RSTATUS(1)  -> Texit, the time corresponding to the
+!                   computed Y upon return
+!    RSTATUS(2)  -> Hexit,last accepted step before return
+!    RSTATUS(3)  -> Hnew, last predicted step before return
+!        For multiple restarts, use Hnew as Hstart in the following run
+!
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+
+! Arguments      
+      INTEGER, INTENT(IN)          :: N, NADJ, ICNTRL(20)
+      KPP_REAL, INTENT(INOUT) :: Y(NVAR), Lambda(NVAR,NADJ)
+      KPP_REAL, INTENT(IN)    :: Tinitial, Tfinal, &
+                    RelTol(NVAR), AbsTol(NVAR), RCNTRL(20), &
+                    RelTol_adj(NVAR,NADJ), AbsTol_adj(NVAR,NADJ)
+      INTEGER, INTENT(OUT)         :: Ierr
+      INTEGER, INTENT(INOUT)       :: ISTATUS(20) 
+      KPP_REAL, INTENT(OUT)   :: RSTATUS(20)
+       
+!~~~>  SDIRK method coefficients, up to 5 stages
+      INTEGER, PARAMETER :: Smax = 5
+      INTEGER, PARAMETER :: S2A=1, S2B=2, S3A=3, S4A=4, S4B=5
+      KPP_REAL :: rkGamma, rkA(Smax,Smax), rkB(Smax), rkC(Smax), &
+                       rkD(Smax),  rkE(Smax), rkBhat(Smax), rkELO,    &
+                       rkAlpha(Smax,Smax), rkTheta(Smax,Smax)
+      INTEGER :: sdMethod, rkS ! The number of stages
+
+!~~~>  Checkpoints in memory buffers
+      INTEGER :: stack_ptr = 0 ! last written entry in checkpoint
+      KPP_REAL, DIMENSION(:),     POINTER :: chk_H, chk_T
+      KPP_REAL, DIMENSION(:,:),   POINTER :: chk_Y
+      KPP_REAL, DIMENSION(:,:,:), POINTER :: chk_Z
+      INTEGER,       DIMENSION(:,:),   POINTER :: chk_P
+#ifdef FULL_ALGEBRA
+      KPP_REAL, DIMENSION(:,:,:), POINTER :: chk_J
+#else
+      KPP_REAL, DIMENSION(:,:),   POINTER :: chk_J
+#endif
+! Local variables      
+      KPP_REAL :: Hmin, Hmax, Hstart, Roundoff,    &
+                       FacMin, Facmax, FacSafe, FacRej, &
+                       ThetaMin, NewtonTol, Qmin, Qmax
+      LOGICAL       :: SaveLU, DirectADJ                 
+      INTEGER       :: ITOL, NewtonMaxit, Max_no_steps, i
+      KPP_REAL, PARAMETER :: ZERO = 0.0d0, ONE = 1.0d0
+      KPP_REAL, PARAMETER :: DeltaMin = 1.0d-5
+
+       
+!~~~>  Initialize statistics
+      ISTATUS(1:20) = 0
+      RSTATUS(1:20) = ZERO
+      Ierr          = 0
+
+!~~~>  For Scalar tolerances (ICNTRL(2).NE.0)  the code uses AbsTol(1) and RelTol(1)
+!   For Vector tolerances (ICNTRL(2) == 0) the code uses AbsTol(1:NVAR) and RelTol(1:NVAR)
+      IF (ICNTRL(2) == 0) THEN
+         ITOL = 1
+      ELSE
+         ITOL = 0
+      END IF
+
+!~~~> ICNTRL(3) - method selection       
+      SELECT CASE (ICNTRL(3))
+      CASE (0,1)
+         CALL Sdirk2a
+      CASE (2)
+         CALL Sdirk2b
+      CASE (3)
+         CALL Sdirk3a
+      CASE (4)
+         CALL Sdirk4a
+      CASE (5)
+         CALL Sdirk4b
+      CASE DEFAULT
+         CALL Sdirk2a
+      END SELECT
+      
+!~~~>   The maximum number of time steps admitted
+      IF (ICNTRL(4) == 0) THEN
+         Max_no_steps = 200000
+      ELSEIF (ICNTRL(4) > 0) THEN
+         Max_no_steps = ICNTRL(4)
+      ELSE
+         PRINT * ,'User-selected ICNTRL(4)=',ICNTRL(4)
+         CALL SDIRK_ErrorMsg(-1,Tinitial,ZERO,Ierr)
+   END IF
+ 
+!~~~> The maximum number of Newton iterations admitted
+      IF(ICNTRL(5) == 0)THEN
+         NewtonMaxit=8
+      ELSE
+         NewtonMaxit=ICNTRL(5)
+         IF(NewtonMaxit <= 0)THEN
+             PRINT * ,'User-selected ICNTRL(5)=',ICNTRL(5)
+             CALL SDIRK_ErrorMsg(-2,Tinitial,ZERO,Ierr)
+         END IF
+      END IF
+
+!~~~> Solve ADJ equations directly or by Newton iterations 
+      DirectADJ = (ICNTRL(7) == 1)
+ 
+!~~~> Save or not the forward LU factorization
+      SaveLU = (ICNTRL(8) /= 0) .AND. (.NOT.DirectADJ)
+
+!~~~>  Unit roundoff (1+Roundoff>1)
+      Roundoff = WLAMCH('E')
+
+!~~~>  Lower bound on the step size: (positive value)
+      IF (RCNTRL(1) == ZERO) THEN
+         Hmin = ZERO
+      ELSEIF (RCNTRL(1) > ZERO) THEN
+         Hmin = RCNTRL(1)
+      ELSE
+         PRINT * , 'User-selected RCNTRL(1)=', RCNTRL(1)
+         CALL SDIRK_ErrorMsg(-3,Tinitial,ZERO,Ierr)
+      END IF
+   
+!~~~>  Upper bound on the step size: (positive value)
+      IF (RCNTRL(2) == ZERO) THEN
+         Hmax = ABS(Tfinal-Tinitial)
+      ELSEIF (RCNTRL(2) > ZERO) THEN
+         Hmax = MIN(ABS(RCNTRL(2)),ABS(Tfinal-Tinitial))
+      ELSE
+         PRINT * , 'User-selected RCNTRL(2)=', RCNTRL(2)
+         CALL SDIRK_ErrorMsg(-3,Tinitial,ZERO,Ierr)
+      END IF
+   
+!~~~>  Starting step size: (positive value)
+      IF (RCNTRL(3) == ZERO) THEN
+         Hstart = MAX(Hmin,Roundoff)
+      ELSEIF (RCNTRL(3) > ZERO) THEN
+         Hstart = MIN(ABS(RCNTRL(3)),ABS(Tfinal-Tinitial))
+      ELSE
+         PRINT * , 'User-selected Hstart: RCNTRL(3)=', RCNTRL(3)
+         CALL SDIRK_ErrorMsg(-3,Tinitial,ZERO,Ierr)
+      END IF
+   
+!~~~>  Step size can be changed s.t.  FacMin < Hnew/Hexit < FacMax
+      IF (RCNTRL(4) == ZERO) THEN
+         FacMin = 0.2_dp
+      ELSEIF (RCNTRL(4) > ZERO) THEN
+         FacMin = RCNTRL(4)
+      ELSE
+         PRINT * , 'User-selected FacMin: RCNTRL(4)=', RCNTRL(4)
+         CALL SDIRK_ErrorMsg(-4,Tinitial,ZERO,Ierr)
+      END IF
+      IF (RCNTRL(5) == ZERO) THEN
+         FacMax = 10.0_dp
+      ELSEIF (RCNTRL(5) > ZERO) THEN
+         FacMax = RCNTRL(5)
+      ELSE
+         PRINT * , 'User-selected FacMax: RCNTRL(5)=', RCNTRL(5)
+         CALL SDIRK_ErrorMsg(-4,Tinitial,ZERO,Ierr)
+      END IF
+!~~~>   FacRej: Factor to decrease step after 2 succesive rejections
+      IF (RCNTRL(6) == ZERO) THEN
+         FacRej = 0.1_dp
+      ELSEIF (RCNTRL(6) > ZERO) THEN
+         FacRej = RCNTRL(6)
+      ELSE
+         PRINT * , 'User-selected FacRej: RCNTRL(6)=', RCNTRL(6)
+         CALL SDIRK_ErrorMsg(-4,Tinitial,ZERO,Ierr)
+      END IF
+!~~~>   FacSafe: Safety Factor in the computation of new step size
+      IF (RCNTRL(7) == ZERO) THEN
+         FacSafe = 0.9_dp
+      ELSEIF (RCNTRL(7) > ZERO) THEN
+         FacSafe = RCNTRL(7)
+      ELSE
+         PRINT * , 'User-selected FacSafe: RCNTRL(7)=', RCNTRL(7)
+         CALL SDIRK_ErrorMsg(-4,Tinitial,ZERO,Ierr)
+      END IF
+
+!~~~> ThetaMin: decides whether the Jacobian should be recomputed
+      IF(RCNTRL(8) == 0.D0)THEN
+         ThetaMin = 1.0d-3
+      ELSE
+         ThetaMin = RCNTRL(8)
+      END IF
+
+!~~~> Stopping criterion for Newton's method
+      IF(RCNTRL(9) == ZERO)THEN
+         NewtonTol = 3.0d-2
+      ELSE
+         NewtonTol = RCNTRL(9)
+      END IF
+
+!~~~> Qmin, Qmax: IF Qmin < Hnew/Hold < Qmax, STEP SIZE = CONST.
+      IF(RCNTRL(10) == ZERO)THEN
+         Qmin=ONE
+      ELSE
+         Qmin=RCNTRL(10)
+      END IF
+      IF(RCNTRL(11) == ZERO)THEN
+         Qmax=1.2D0
+      ELSE
+         Qmax=RCNTRL(11)
+      END IF
+
+!~~~>  Check if tolerances are reasonable
+      IF (ITOL == 0) THEN
+         IF (AbsTol(1) <= ZERO .OR. RelTol(1) <= 10.D0*Roundoff) THEN
+            PRINT * , ' Scalar AbsTol = ',AbsTol(1)
+            PRINT * , ' Scalar RelTol = ',RelTol(1)
+            CALL SDIRK_ErrorMsg(-5,Tinitial,ZERO,Ierr)
+         END IF
+      ELSE
+         DO i=1,N
+            IF (AbsTol(i) <= 0.D0.OR.RelTol(i) <= 10.D0*Roundoff) THEN
+              PRINT * , ' AbsTol(',i,') = ',AbsTol(i)
+              PRINT * , ' RelTol(',i,') = ',RelTol(i)
+              CALL SDIRK_ErrorMsg(-5,Tinitial,ZERO,Ierr)
+            END IF
+         END DO
+      END IF
+    
+    IF (Ierr < 0) RETURN
+    
+!~~~>  Allocate memory buffers    
+    CALL SDIRK_AllocBuffers
+
+!~~~>  Call forward integration    
+    CALL SDIRK_FwdInt( N, Tinitial, Tfinal, Y, Ierr )
+
+!~~~>  Call adjoint integration    
+    CALL SDIRK_DadjInt( N, NADJ, Lambda, Ierr )
+
+!~~~>  Free memory buffers    
+    CALL SDIRK_FreeBuffers
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   CONTAINS  !  Procedures internal to SDIRKADJ
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE SDIRK_FwdInt( N,Tinitial,Tfinal,Y,Ierr )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      USE KPP_ROOT_Parameters
+      IMPLICIT NONE
+
+!~~~> Arguments:      
+      INTEGER :: N
+      KPP_REAL, INTENT(INOUT) :: Y(NVAR)
+      KPP_REAL, INTENT(IN) :: Tinitial, Tfinal
+      INTEGER, INTENT(OUT) :: Ierr
+      
+!~~~> Local variables:      
+      KPP_REAL :: Z(NVAR,Smax), G(NVAR), TMP(NVAR),        &   
+                       NewtonRate, SCAL(NVAR), RHS(NVAR),       &
+                       T, H, Theta, Hratio, NewtonPredictedErr, &
+                       Qnewton, Err, Fac, Hnew,Tdirection,      &
+                       NewtonIncrement, NewtonIncrementOld
+      INTEGER :: j, ISING, istage, NewtonIter, IP(NVAR)
+      LOGICAL :: Reject, FirstStep, SkipJac, SkipLU, NewtonDone
+      
+#ifdef FULL_ALGEBRA      
+      KPP_REAL, DIMENSION(NVAR,NVAR) :: FJAC, E
+#else      
+      KPP_REAL, DIMENSION(LU_NONZERO):: FJAC, E
+#endif      
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Initializations
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      T = Tinitial
+      Tdirection = SIGN(ONE,Tfinal-Tinitial)
+      H = MAX(ABS(Hmin),ABS(Hstart))
+      IF (ABS(H) <= 10.D0*Roundoff) H=1.0D-6
+      H=MIN(ABS(H),Hmax)
+      H=SIGN(H,Tdirection)
+      SkipLU =.FALSE.
+      SkipJac = .FALSE.
+      Reject=.FALSE.
+      FirstStep=.TRUE.
+
+      CALL SDIRK_ErrorScale(ITOL, AbsTol, RelTol, Y, SCAL)
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Time loop begins
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Tloop: DO WHILE ( (Tfinal-T)*Tdirection - Roundoff > ZERO )
+
+
+!~~~>  Compute E = 1/(h*gamma)-Jac and its LU decomposition
+      IF ( .NOT.SkipLU ) THEN ! This time around skip the Jac update and LU
+         CALL SDIRK_PrepareMatrix ( H, T, Y, FJAC, &
+                   SkipJac, SkipLU, E, IP, Reject, ISING )
+         IF (ISING /= 0) THEN
+             CALL SDIRK_ErrorMsg(-8,T,H,Ierr); RETURN
+         END IF
+      END IF      
+
+      IF (ISTATUS(Nstp) > Max_no_steps) THEN
+             CALL SDIRK_ErrorMsg(-6,T,H,Ierr); RETURN
+      END IF   
+      IF ( (T+0.1d0*H == T) .OR. (ABS(H) <= Roundoff) ) THEN
+             CALL SDIRK_ErrorMsg(-7,T,H,Ierr); RETURN
+      END IF   
+
+stages:DO istage = 1, rkS
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Simplified Newton iterations
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+!~~~>  Starting values for Newton iterations
+       CALL Set2zero(N,Z(1,istage))
+       
+!~~~>   Prepare the loop-independent part of the right-hand side
+       CALL Set2zero(N,G)
+       IF (istage > 1) THEN
+           DO j = 1, istage-1
+               ! Gj(:) = sum_j Theta(i,j)*Zj(:) = H * sum_j A(i,j)*Fun(Zj(:))
+               CALL WAXPY(N,rkTheta(istage,j),Z(1,j),1,G,1)
+               ! Zi(:) = sum_j Alpha(i,j)*Zj(:)
+               CALL WAXPY(N,rkAlpha(istage,j),Z(1,j),1,Z(1,istage),1)
+           END DO
+       END IF
+
+       !~~~>  Initializations for Newton iteration
+       NewtonDone = .FALSE.
+       Fac = 0.5d0 ! Step reduction factor if too many iterations
+            
+NewtonLoop:DO NewtonIter = 1, NewtonMaxit
+
+!~~~>   Prepare the loop-dependent part of the right-hand side
+ 	    CALL WADD(N,Y,Z(1,istage),TMP)         	! TMP <- Y + Zi
+            CALL FUN_CHEM(T+rkC(istage)*H,TMP,RHS)	! RHS <- Fun(Y+Zi)
+            ISTATUS(Nfun) = ISTATUS(Nfun) + 1
+!            RHS(1:N) = G(1:N) - Z(1:N,istage) + (H*rkGamma)*RHS(1:N)
+	    CALL WSCAL(N, H*rkGamma, RHS, 1)
+	    CALL WAXPY (N, -ONE, Z(1,istage), 1, RHS, 1)
+            CALL WAXPY (N, ONE, G,1, RHS,1)
+
+!~~~>   Solve the linear system
+            CALL SDIRK_Solve ( 'N', H, N, E, IP, ISING, RHS )
+            
+!~~~>   Check convergence of Newton iterations
+            CALL SDIRK_ErrorNorm(N, RHS, SCAL, NewtonIncrement)
+            IF ( NewtonIter == 1 ) THEN
+                Theta      = ABS(ThetaMin)
+                NewtonRate = 2.0d0 
+            ELSE
+                Theta = NewtonIncrement/NewtonIncrementOld
+                IF (Theta < 0.99d0) THEN
+                    NewtonRate = Theta/(ONE-Theta)
+                    ! Predict error at the end of Newton process 
+                    NewtonPredictedErr = NewtonIncrement &
+                               *Theta**(NewtonMaxit-NewtonIter)/(ONE-Theta)
+                    IF (NewtonPredictedErr >= NewtonTol) THEN
+                      ! Non-convergence of Newton: predicted error too large
+                      Qnewton = MIN(10.0d0,NewtonPredictedErr/NewtonTol)
+                      Fac = 0.8d0*Qnewton**(-ONE/(1+NewtonMaxit-NewtonIter))
+                      EXIT NewtonLoop
+                    END IF
+                ELSE ! Non-convergence of Newton: Theta too large
+                    EXIT NewtonLoop
+                END IF
+            END IF
+            NewtonIncrementOld = NewtonIncrement
+            ! Update solution: Z(:) <-- Z(:)+RHS(:)
+            CALL WAXPY(N,ONE,RHS,1,Z(1,istage),1) 
+            
+            ! Check error in Newton iterations
+            NewtonDone = (NewtonRate*NewtonIncrement <= NewtonTol)
+            IF (NewtonDone) EXIT NewtonLoop
+            
+            END DO NewtonLoop
+            
+            IF (.NOT.NewtonDone) THEN
+                 !CALL RK_ErrorMsg(-12,T,H,Ierr);
+                 H = Fac*H; Reject=.TRUE.
+                 SkipJac = .TRUE.; SkipLU = .FALSE.
+                 CYCLE Tloop
+            END IF
+
+!~~~>  End of implified Newton iterations
+
+ 
+   END DO stages
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Error estimation
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      ISTATUS(Nstp) = ISTATUS(Nstp) + 1
+      CALL Set2zero(N,TMP)
+      DO i = 1,rkS
+         IF (rkE(i)/=ZERO) CALL WAXPY(N,rkE(i),Z(1,i),1,TMP,1)
+      END DO  
+
+      CALL SDIRK_Solve( 'N', H, N, E, IP, ISING, TMP )
+      CALL SDIRK_ErrorNorm(N, TMP, SCAL, Err)
+
+!~~~> Computation of new step size Hnew
+      Fac  = FacSafe*(Err)**(-ONE/rkELO)
+      Fac  = MAX(FacMin,MIN(FacMax,Fac))
+      Hnew = H*Fac
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Accept/Reject step
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+accept: IF ( Err < ONE ) THEN !~~~> Step is accepted
+
+         FirstStep=.FALSE.
+         ISTATUS(Nacc) = ISTATUS(Nacc) + 1
+
+!~~~> Checkpoint solution
+         CALL SDIRK_Push( T, H, Y, Z, E, IP )
+
+!~~~> Update time and solution
+         T  =  T + H
+         ! Y(:) <-- Y(:) + Sum_j rkD(j)*Z_j(:)
+         DO i = 1,rkS 
+            IF (rkD(i)/=ZERO) CALL WAXPY(N,rkD(i),Z(1,i),1,Y,1)
+         END DO  
+       
+!~~~> Update scaling coefficients
+         CALL SDIRK_ErrorScale(ITOL, AbsTol, RelTol, Y, SCAL)
+
+!~~~> Next time step
+         Hnew = Tdirection*MIN(ABS(Hnew),Hmax)
+         ! Last T and H
+         RSTATUS(Ntexit) = T
+         RSTATUS(Nhexit) = H
+         RSTATUS(Nhnew)  = Hnew
+         ! No step increase after a rejection
+         IF (Reject) Hnew = Tdirection*MIN(ABS(Hnew),ABS(H))
+         Reject = .FALSE.
+         IF ((T+Hnew/Qmin-Tfinal)*Tdirection > ZERO) THEN
+            H = Tfinal-T
+         ELSE
+            Hratio=Hnew/H
+            ! If step not changed too much keep Jacobian and reuse LU
+            SkipLU = ( (Theta <= ThetaMin) .AND. (Hratio >= Qmin) &
+                                     .AND. (Hratio <= Qmax) )
+            IF (.NOT.SkipLU) H = Hnew
+         END IF
+         ! If convergence is fast enough, do not update Jacobian
+!         SkipJac = (Theta <= ThetaMin)
+         SkipJac = .FALSE.
+
+      ELSE accept !~~~> Step is rejected
+
+         IF (FirstStep .OR. Reject) THEN
+             H = FacRej*H
+         ELSE
+             H = Hnew
+         END IF
+         Reject  = .TRUE.
+         SkipJac = .TRUE.
+         SkipLU  = .FALSE. 
+         IF (ISTATUS(Nacc) >= 1) ISTATUS(Nrej) = ISTATUS(Nrej) + 1
+         
+      END IF accept
+      
+      END DO Tloop
+
+      ! Successful return
+      Ierr  = 1
+  
+      END SUBROUTINE SDIRK_FwdInt
+
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE SDIRK_DadjInt( N, NADJ, Lambda, Ierr )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      USE KPP_ROOT_Parameters
+      IMPLICIT NONE
+
+!~~~> Arguments:      
+      INTEGER, INTENT(IN) :: N, NADJ
+      KPP_REAL, INTENT(INOUT) :: Lambda(NVAR,NADJ)
+      INTEGER, INTENT(OUT) :: Ierr
+      
+!~~~> Local variables:      
+      KPP_REAL :: Y(NVAR)
+      KPP_REAL :: Z(NVAR,Smax), U(NVAR,NADJ,Smax),   &
+                       TMP(NVAR), G(NVAR),                &   
+                       NewtonRate, SCAL(NVAR), DU(NVAR),  &
+                       T, H, Theta, NewtonPredictedErr,   &
+                       NewtonIncrement, NewtonIncrementOld
+      INTEGER :: j, ISING, istage, iadj, NewtonIter, &
+                 IP(NVAR), IP_adj(NVAR)
+      LOGICAL :: Reject, SkipJac, SkipLU, NewtonDone
+      
+#ifdef FULL_ALGEBRA      
+      KPP_REAL, DIMENSION(NVAR,NVAR) :: E, Jac, E_adj
+#else      
+      KPP_REAL, DIMENSION(LU_NONZERO):: E, Jac, E_adj
+#endif      
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Time loop begins
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Tloop: DO WHILE ( stack_ptr > 0 )
+        
+   !~~~>  Recover checkpoints for stage values and vectors
+      CALL SDIRK_Pop( T, H, Y, Z, E, IP )
+
+!~~~>  Compute E = 1/(h*gamma)-Jac and its LU decomposition
+      IF (.NOT.SaveLU) THEN
+          SkipJac = .FALSE.; SkipLU = .FALSE.
+          CALL SDIRK_PrepareMatrix ( H, T, Y, Jac, &
+                   SkipJac, SkipLU, E, IP, Reject, ISING )
+         IF (ISING /= 0) THEN
+             CALL SDIRK_ErrorMsg(-8,T,H,Ierr); RETURN
+         END IF
+      END IF      
+
+stages:DO istage = rkS, 1, -1
+
+!~~~>  Jacobian of the current stage solution
+       TMP(1:N) = Y(1:N) + Z(1:N,istage)
+       CALL JAC_CHEM(T+rkC(istage)*H,TMP,Jac)
+       ISTATUS(Njac) = ISTATUS(Njac) + 1
+       
+       IF (DirectADJ) THEN 
+#ifdef FULL_ALGEBRA
+         E_adj(1:N,1:N) = -Jac(1:N,1:N)
+         DO j=1,N
+            E_adj(j,j) = E_adj(j,j) + ONE/(H*rkGamma)
+         END DO
+         CALL DGETRF( N, N, E_adj, N, IP_adj, ISING )
+#else
+         E_adj(1:LU_NONZERO) = -Jac(1:LU_NONZERO)
+         DO i = 1,NVAR
+            j = LU_DIAG(i); E_adj(j) = E_adj(j) + ONE/(H*rkGamma)
+         END DO
+         CALL KppDecomp ( E_adj, ISING)
+#endif
+         ISTATUS(Ndec) = ISTATUS(Ndec) + 1
+         IF (ISING /= 0)  THEN
+             PRINT*,'At stage ',istage,' the matrix used in adjoint', &
+                      ' computation is singular'
+             CALL SDIRK_ErrorMsg(-8,T,H,Ierr); RETURN
+         END IF
+       END IF
+
+adj:   DO iadj = 1, NADJ
+       
+!~~~> Update scaling coefficients
+       CALL SDIRK_ErrorScale(ITOL, AbsTol_adj(1:NVAR,iadj), &
+             RelTol_adj(1:NVAR,iadj), Lambda(1:NVAR,iadj), SCAL)
+      
+!~~~>   Prepare the loop-independent part of the right-hand side
+!       G(:) = H*Jac^T*( B(i)*Lambda + sum_j A(j,i)*Uj(:) )
+       G(1:N) = rkB(istage)*Lambda(1:N,iadj)
+       IF (istage < rkS) THEN
+           DO j = istage+1, rkS
+               CALL WAXPY(N,rkA(j,istage),U(1,iadj,j),1,G,1)
+           END DO
+       END IF
+#ifdef FULL_ALGEBRA  
+       TMP = MATMUL(TRANSPOSE(Jac),G)    ! DZ <- Jac(Y+Z)*Y_tlm
+#else      
+       CALL JacTR_SP_Vec ( Jac, G, TMP )    
+#endif      
+       G(1:N) = H*TMP(1:N)
+
+DirADJ:IF (DirectADJ) THEN 
+
+            CALL SDIRK_Solve ( 'T', H, N, E_adj, IP_adj, ISING, G )
+            U(1:N,iadj,istage) = G(1:N)
+      
+       ELSE DirADJ
+
+            !~~~>  Initializations for Newton iteration
+            CALL Set2zero(N,U(1,iadj,istage))
+            NewtonDone = .FALSE.
+            
+NewtonLoop:DO NewtonIter = 1, NewtonMaxit
+
+!~~~>   Prepare the loop-dependent part of the right-hand side
+#ifdef FULL_ALGEBRA  
+            TMP = MATMUL(TRANSPOSE(Jac),U(1:N,iadj,istage))    
+#else      
+            CALL JacTR_SP_Vec ( Jac, U(1:N,iadj,istage), TMP )    
+#endif      
+            DU(1:N) = U(1:N,iadj,istage) - (H*rkGamma)*TMP(1:N) - G(1:N)
+
+!~~~>   Solve the linear system
+            CALL SDIRK_Solve ( 'T', H, N, E, IP, ISING, DU )
+            
+!~~~>   Check convergence of Newton iterations
+            
+            CALL SDIRK_ErrorNorm(N, DU, SCAL, NewtonIncrement)
+            IF ( NewtonIter == 1 ) THEN
+                Theta      = ABS(ThetaMin)
+                NewtonRate = 2.0d0 
+            ELSE
+                Theta = NewtonIncrement/NewtonIncrementOld
+                IF (Theta < 0.99d0) THEN
+                    NewtonRate = Theta/(ONE-Theta)
+                     ! Predict error at the end of Newton process 
+                    NewtonPredictedErr = NewtonIncrement &
+                               *Theta**(NewtonMaxit-NewtonIter)/(ONE-Theta)
+                     ! Non-convergence of Newton: predicted error too large
+                    IF (NewtonPredictedErr >= NewtonTol) EXIT NewtonLoop
+                ELSE ! Non-convergence of Newton: Theta too large
+                    EXIT NewtonLoop
+                END IF
+            END IF
+            NewtonIncrementOld = NewtonIncrement
+            ! Update solution
+            U(1:N,iadj,istage) = U(1:N,iadj,istage) - DU(1:N)
+            
+            ! Check error in Newton iterations
+            NewtonDone = (NewtonRate*NewtonIncrement <= NewtonTol)
+            ! AbsTol is often inappropriate for adjoints -
+            !    we do at least 4 Newton iterations to ensure convergence
+            !    of all adjoint components
+            IF ((NewtonIter>=4) .AND. NewtonDone) EXIT NewtonLoop
+            
+            END DO NewtonLoop
+            
+            !~~~> If Newton iterations fail employ the direct solution
+            IF (.NOT.NewtonDone) THEN                 
+               PRINT*,'Problems with Newton Adjoint!!!'
+#ifdef FULL_ALGEBRA
+               E_adj(1:N,1:N) = -Jac(1:N,1:N)
+               DO j=1,N
+                  E_adj(j,j) = E_adj(j,j) + ONE/(H*rkGamma)
+               END DO
+               CALL DGETRF( N, N, E_adj, N, IP_adj, ISING )
+#else
+               E_adj(1:LU_NONZERO) = -Jac(1:LU_NONZERO)
+               DO i = 1,NVAR
+                  j = LU_DIAG(i); E_adj(j) = E_adj(j) + ONE/(H*rkGamma)
+               END DO
+               CALL KppDecomp ( E_adj, ISING)
+#endif
+               ISTATUS(Ndec) = ISTATUS(Ndec) + 1
+               IF (ISING /= 0)  THEN
+                   PRINT*,'At stage ',istage,' the matrix used in adjoint', &
+                            ' computation is singular'
+                   CALL SDIRK_ErrorMsg(-8,T,H,Ierr); RETURN
+               END IF
+                  CALL SDIRK_Solve ( 'T', H, N, E_adj, IP_adj, ISING, G )
+                  U(1:N,iadj,istage) = G(1:N)
+                 
+            END IF
+
+!~~~>  End of simplified Newton iterations
+      
+       END IF DirADJ
+
+   END DO adj
+ 
+   END DO stages
+
+!~~~> Update adjoint solution
+         ! Y(:) <-- Y(:) + Sum_j rkD(j)*Z_j(:)
+         DO istage = 1,rkS 
+             DO iadj = 1,NADJ
+                 Lambda(1:N,iadj) = Lambda(1:N,iadj) + U(1:N,iadj,istage)
+                 !CALL WAXPY(N,ONE,U(1:N,iadj,istage),1,Lambda(1,iadj),1)
+             END DO  
+         END DO  
+
+      END DO Tloop
+
+      ! Successful return
+      Ierr  = 1
+  
+      END SUBROUTINE SDIRK_DadjInt
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE SDIRK_AllocBuffers
+!~~~>  Allocate buffer space for checkpointing
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+       INTEGER :: i
+   
+       ALLOCATE( chk_H(Max_no_steps), STAT=i )
+       IF (i/=0) THEN
+          PRINT*,'Failed allocation of buffer H'; STOP
+       END IF   
+       ALLOCATE( chk_T(Max_no_steps), STAT=i )
+       IF (i/=0) THEN
+          PRINT*,'Failed allocation of buffer T'; STOP
+       END IF   
+       ALLOCATE( chk_Y(NVAR,Max_no_steps), STAT=i )
+       IF (i/=0) THEN
+          PRINT*,'Failed allocation of buffer Y'; STOP
+       END IF   
+       ALLOCATE( chk_Z(NVAR,rkS,Max_no_steps), STAT=i )
+       IF (i/=0) THEN
+          PRINT*,'Failed allocation of buffer K'; STOP
+       END IF   
+       IF (SaveLU) THEN
+#ifdef FULL_ALGEBRA
+          ALLOCATE( chk_J(NVAR,NVAR,Max_no_steps),  STAT=i )
+#else
+          ALLOCATE( chk_J(LU_NONZERO,Max_no_steps), STAT=i )
+#endif
+          IF (i/=0) THEN
+             PRINT*,'Failed allocation of buffer J'; STOP
+          END IF   
+          ALLOCATE( chk_P(NVAR,Max_no_steps), STAT=i )
+          IF (i/=0) THEN
+             PRINT*,'Failed allocation of buffer P'; STOP
+          END IF   
+       END IF   
+ 
+     END SUBROUTINE SDIRK_AllocBuffers
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+     SUBROUTINE SDIRK_FreeBuffers
+!~~~>  Dallocate buffer space for discrete adjoint
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+       INTEGER :: i
+   
+       DEALLOCATE( chk_H, STAT=i )
+       IF (i/=0) THEN
+          PRINT*,'Failed deallocation of buffer H'; STOP
+       END IF   
+       DEALLOCATE( chk_T, STAT=i )
+       IF (i/=0) THEN
+          PRINT*,'Failed deallocation of buffer T'; STOP
+       END IF   
+       DEALLOCATE( chk_Y, STAT=i )
+       IF (i/=0) THEN
+          PRINT*,'Failed deallocation of buffer Y'; STOP
+       END IF   
+       DEALLOCATE( chk_Z, STAT=i )
+       IF (i/=0) THEN
+          PRINT*,'Failed deallocation of buffer K'; STOP
+       END IF   
+       IF (SaveLU) THEN
+          DEALLOCATE( chk_J, STAT=i )
+          IF (i/=0) THEN
+             PRINT*,'Failed deallocation of buffer J'; STOP
+          END IF   
+          DEALLOCATE( chk_P, STAT=i )
+          IF (i/=0) THEN
+             PRINT*,'Failed deallocation of buffer P'; STOP
+          END IF   
+       END IF   
+ 
+     END SUBROUTINE SDIRK_FreeBuffers
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+     SUBROUTINE SDIRK_Push( T, H, Y, Z, E, P )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> Saves the next trajectory snapshot for discrete adjoints
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+       KPP_REAL :: T, H, Y(NVAR), Z(NVAR,Smax) 
+       INTEGER       :: P(NVAR)
+#ifdef FULL_ALGEBRA
+       KPP_REAL :: E(NVAR,NVAR)
+#else       
+       KPP_REAL :: E(LU_NONZERO)
+#endif
+   
+       stack_ptr = stack_ptr + 1
+       IF ( stack_ptr > Max_no_steps ) THEN
+         PRINT*,'Push failed: buffer overflow'
+         STOP
+       END IF  
+       chk_H( stack_ptr ) = H
+       chk_T( stack_ptr ) = T
+       chk_Y(1:NVAR,stack_ptr) = Y(1:NVAR)
+       chk_Z(1:NVAR,1:rkS,stack_ptr) = Z(1:NVAR,1:rkS)
+       IF (SaveLU) THEN 
+#ifdef FULL_ALGEBRA
+          chk_J(1:NVAR,1:NVAR,stack_ptr) = E(1:NVAR,1:NVAR)
+          chk_P(1:NVAR,stack_ptr)        = P(1:NVAR)
+#else       
+          chk_J(1:LU_NONZERO,stack_ptr)  = E(1:LU_NONZERO)
+#endif
+       END IF
+  
+      END SUBROUTINE SDIRK_Push
+  
+   
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE SDIRK_Pop( T, H, Y, Z, E, P )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> Retrieves the next trajectory snapshot for discrete adjoints
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+       KPP_REAL :: T, H, Y(NVAR), Z(NVAR,Smax)
+       INTEGER       :: P(NVAR)
+#ifdef FULL_ALGEBRA
+       KPP_REAL :: E(NVAR,NVAR)
+#else       
+       KPP_REAL :: E(LU_NONZERO)
+#endif
+   
+       IF ( stack_ptr <= 0 ) THEN
+         PRINT*,'Pop failed: empty buffer'
+         STOP
+       END IF  
+       H = chk_H( stack_ptr )
+       T = chk_T( stack_ptr )
+       Y(1:NVAR) = chk_Y(1:NVAR,stack_ptr)
+       Z(1:NVAR,1:rkS) = chk_Z(1:NVAR,1:rkS,stack_ptr)
+       IF (SaveLU) THEN
+#ifdef FULL_ALGEBRA
+          E(1:NVAR,1:NVAR) = chk_J(1:NVAR,1:NVAR,stack_ptr)
+          P(1:NVAR)        = chk_P(1:NVAR,stack_ptr)
+#else       
+          E(1:LU_NONZERO)  = chk_J(1:LU_NONZERO,stack_ptr)
+#endif
+       END IF
+
+       stack_ptr = stack_ptr - 1
+  
+      END SUBROUTINE SDIRK_Pop
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE SDIRK_ErrorScale(ITOL, AbsTol, RelTol, Y, SCAL)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      INTEGER :: i, ITOL
+      KPP_REAL :: AbsTol(NVAR), RelTol(NVAR), &
+                       Y(NVAR), SCAL(NVAR)
+      IF (ITOL == 0) THEN
+        DO i=1,NVAR
+          SCAL(i) = ONE / ( AbsTol(1)+RelTol(1)*ABS(Y(i)) )
+        END DO
+      ELSE
+        DO i=1,NVAR
+          SCAL(i) = ONE / ( AbsTol(i)+RelTol(i)*ABS(Y(i)) )
+        END DO
+      END IF
+      END SUBROUTINE SDIRK_ErrorScale
+      
+      
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE SDIRK_ErrorNorm(N, Y, SCAL, Err)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!      
+      INTEGER :: i, N
+      KPP_REAL :: Y(N), SCAL(N), Err      
+      Err = ZERO
+      DO i=1,N
+           Err = Err+(Y(i)*SCAL(i))**2
+      END DO
+      Err = MAX( SQRT(Err/DBLE(N)), 1.0d-10 )
+!
+      END SUBROUTINE SDIRK_ErrorNorm
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
+SUBROUTINE SDIRK_ErrorMsg(Code,T,H,Ierr)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!    Handles all error messages
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   KPP_REAL, INTENT(IN) :: T, H
+   INTEGER, INTENT(IN)  :: Code
+   INTEGER, INTENT(OUT) :: Ierr
+
+   Ierr = Code
+   PRINT * , &
+     'Forced exit from SDIRK due to the following error:'
+
+   SELECT CASE (Code)
+    CASE (-1)
+      PRINT * , '--> Improper value for maximal no of steps'
+    CASE (-2)
+      PRINT * , '--> Improper value for maximal no of Newton iterations'
+    CASE (-3)
+      PRINT * , '--> Hmin/Hmax/Hstart must be positive'
+    CASE (-4)
+      PRINT * , '--> FacMin/FacMax/FacRej must be positive'
+    CASE (-5)
+      PRINT * , '--> Improper tolerance values'
+    CASE (-6)
+      PRINT * , '--> No of steps exceeds maximum bound', max_no_steps
+    CASE (-7)
+      PRINT * , '--> Step size too small: T + 10*H = T', &
+            ' or H < Roundoff'
+    CASE (-8)
+      PRINT * , '--> Matrix is repeatedly singular'
+    CASE DEFAULT
+      PRINT *, 'Unknown Error code: ', Code
+   END SELECT
+
+   PRINT *, "T=", T, "and H=", H
+
+ END SUBROUTINE SDIRK_ErrorMsg
+      
+      
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE SDIRK_PrepareMatrix ( H, T, Y, FJAC, &
+                   SkipJac, SkipLU, E, IP, Reject, ISING )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Compute the matrix E = 1/(H*GAMMA)*Jac, and its decomposition
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+     
+      IMPLICIT NONE
+      
+      KPP_REAL, INTENT(INOUT) :: H
+      KPP_REAL, INTENT(IN)    :: T, Y(NVAR)
+      LOGICAL, INTENT(INOUT)       :: SkipJac,SkipLU,Reject
+      INTEGER, INTENT(OUT)         :: ISING, IP(NVAR)
+#ifdef FULL_ALGEBRA
+      KPP_REAL, INTENT(INOUT) :: FJAC(NVAR,NVAR)
+      KPP_REAL, INTENT(OUT)   :: E(NVAR,NVAR)
+#else
+      KPP_REAL, INTENT(INOUT) :: FJAC(LU_NONZERO)
+      KPP_REAL, INTENT(OUT)   :: E(LU_NONZERO)
+#endif
+      KPP_REAL                :: HGammaInv
+      INTEGER                      :: i, j, ConsecutiveSng
+
+      ConsecutiveSng = 0
+      ISING = 1
+      
+Hloop: DO WHILE (ISING /= 0)
+      
+      HGammaInv = ONE/(H*rkGamma)
+
+!~~~>  Compute the Jacobian
+!      IF (SkipJac) THEN
+!          SkipJac = .FALSE.
+!      ELSE
+      IF (.NOT. SkipJac) THEN
+          CALL JAC_CHEM( T, Y, FJAC )
+          ISTATUS(Njac) = ISTATUS(Njac) + 1
+      END IF  
+      
+#ifdef FULL_ALGEBRA
+      DO j=1,NVAR
+         DO i=1,NVAR
+            E(i,j) = -FJAC(i,j)
+         END DO
+         E(j,j) = E(j,j)+HGammaInv
+      END DO
+      CALL DGETRF( NVAR, NVAR, E, NVAR, IP, ISING )
+#else
+      DO i = 1,LU_NONZERO
+            E(i) = -FJAC(i)
+      END DO
+      DO i = 1,NVAR
+          j = LU_DIAG(i); E(j) = E(j) + HGammaInv
+      END DO
+      CALL KppDecomp ( E, ISING)
+      IP(1) = 1
+#endif
+      ISTATUS(Ndec) = ISTATUS(Ndec) + 1
+
+      IF (ISING /= 0) THEN
+          WRITE (6,*) ' MATRIX IS SINGULAR, ISING=',ISING,' T=',T,' H=',H
+          ISTATUS(Nsng) = ISTATUS(Nsng) + 1; ConsecutiveSng = ConsecutiveSng + 1
+          IF (ConsecutiveSng >= 6) RETURN ! Failure
+          H = 0.5d0*H
+          SkipJac = .FALSE.
+          SkipLU  = .FALSE.
+          Reject  = .TRUE.
+      END IF
+      
+      END DO Hloop
+
+      END SUBROUTINE SDIRK_PrepareMatrix
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE SDIRK_Solve ( Transp, H, N, E, IP, ISING, RHS )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Solves the system (H*Gamma-Jac)*x = R
+!      using the LU decomposition of E = I - 1/(H*Gamma)*Jac
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      INTEGER, INTENT(IN)       :: N, IP(N), ISING
+      CHARACTER, INTENT(IN)     :: Transp
+      KPP_REAL, INTENT(IN) :: H
+#ifdef FULL_ALGEBRA
+      KPP_REAL, INTENT(IN) :: E(NVAR,NVAR)
+#else
+      KPP_REAL, INTENT(IN) :: E(LU_NONZERO)
+#endif
+      KPP_REAL, INTENT(INOUT) :: RHS(N)
+      KPP_REAL                :: HGammaInv
+      
+      HGammaInv = ONE/(H*rkGamma)
+      CALL WSCAL(N,HGammaInv,RHS,1)
+      SELECT CASE (TRANSP)
+      CASE ('N')
+#ifdef FULL_ALGEBRA  
+         CALL DGETRS( 'N', N, 1, E, N, IP, RHS, N, ISING )
+#else
+         CALL KppSolve(E, RHS)
+#endif
+      CASE ('T')
+#ifdef FULL_ALGEBRA  
+         CALL DGETRS( 'T', N, 1, E, N, IP, RHS, N, ISING )
+#else
+         CALL KppSolveTR(E, RHS, RHS)
+#endif
+      CASE DEFAULT
+         PRINT*,'Error in SDIRK_Solve. Unknown Transp argument:',Transp
+         STOP
+      END SELECT
+      ISTATUS(Nsol) = ISTATUS(Nsol) + 1
+ 
+      END SUBROUTINE SDIRK_Solve
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE Sdirk4a
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      sdMethod = S4A
+! Number of stages
+      rkS = 5
+
+! Method coefficients
+      rkGamma = .2666666666666666666666666666666667d0
+
+      rkA(1,1) = .2666666666666666666666666666666667d0
+      rkA(2,1) = .5000000000000000000000000000000000d0
+      rkA(2,2) = .2666666666666666666666666666666667d0
+      rkA(3,1) = .3541539528432732316227461858529820d0
+      rkA(3,2) = -.5415395284327323162274618585298197d-1
+      rkA(3,3) = .2666666666666666666666666666666667d0
+      rkA(4,1) = .8515494131138652076337791881433756d-1
+      rkA(4,2) = -.6484332287891555171683963466229754d-1
+      rkA(4,3) = .7915325296404206392428857585141242d-1
+      rkA(4,4) = .2666666666666666666666666666666667d0
+      rkA(5,1) = 2.100115700566932777970612055999074d0
+      rkA(5,2) = -.7677800284445976813343102185062276d0
+      rkA(5,3) = 2.399816361080026398094746205273880d0
+      rkA(5,4) = -2.998818699869028161397714709433394d0
+      rkA(5,5) = .2666666666666666666666666666666667d0
+
+      rkB(1)   = 2.100115700566932777970612055999074d0
+      rkB(2)   = -.7677800284445976813343102185062276d0
+      rkB(3)   = 2.399816361080026398094746205273880d0
+      rkB(4)   = -2.998818699869028161397714709433394d0
+      rkB(5)   = .2666666666666666666666666666666667d0
+
+      rkBhat(1)= 2.885264204387193942183851612883390d0
+      rkBhat(2)= -.1458793482962771337341223443218041d0
+      rkBhat(3)= 2.390008682465139866479830743628554d0
+      rkBhat(4)= -4.129393538556056674929560012190140d0
+      rkBhat(5)= 0.d0
+
+      rkC(1)   = .2666666666666666666666666666666667d0
+      rkC(2)   = .7666666666666666666666666666666667d0
+      rkC(3)   = .5666666666666666666666666666666667d0
+      rkC(4)   = .3661315380631796996374935266701191d0
+      rkC(5)   = 1.d0
+
+! Ynew = Yold + h*Sum_i {rkB_i*k_i} = Yold + Sum_i {rkD_i*Z_i}
+      rkD(1)   = 0.d0
+      rkD(2)   = 0.d0
+      rkD(3)   = 0.d0
+      rkD(4)   = 0.d0
+      rkD(5)   = 1.d0
+
+! Err = h * Sum_i {(rkB_i-rkBhat_i)*k_i} = Sum_i {rkE_i*Z_i}
+      rkE(1)   = -.6804000050475287124787034884002302d0
+      rkE(2)   = 1.558961944525217193393931795738823d0
+      rkE(3)   = -13.55893003128907927748632408763868d0
+      rkE(4)   = 15.48522576958521253098585004571302d0
+      rkE(5)   = 1.d0
+
+! Local order of Err estimate
+      rkElo    = 4
+
+! h*Sum_j {rkA_ij*k_j} = Sum_j {rkTheta_ij*Z_j}
+      rkTheta(2,1) = 1.875000000000000000000000000000000d0
+      rkTheta(3,1) = 1.708847304091539528432732316227462d0
+      rkTheta(3,2) = -.2030773231622746185852981969486824d0
+      rkTheta(4,1) = .2680325578937783958847157206823118d0
+      rkTheta(4,2) = -.1828840955527181631794050728644549d0
+      rkTheta(4,3) = .2968246986151577397160821594427966d0
+      rkTheta(5,1) = .9096171815241460655379433581446771d0
+      rkTheta(5,2) = -3.108254967778352416114774430509465d0
+      rkTheta(5,3) = 12.33727431701306195581826123274001d0
+      rkTheta(5,4) = -11.24557012450885560524143016037523d0
+
+! Starting value for Newton iterations: Z_i^0 = Sum_j {rkAlpha_ij*Z_j}
+      rkAlpha(2,1) = 2.875000000000000000000000000000000d0
+      rkAlpha(3,1) = .8500000000000000000000000000000000d0
+      rkAlpha(3,2) = .4434782608695652173913043478260870d0
+      rkAlpha(4,1) = .7352046091658870564637910527807370d0
+      rkAlpha(4,2) = -.9525565003057343527941920657462074d-1
+      rkAlpha(4,3) = .4290111305453813852259481840631738d0
+      rkAlpha(5,1) = -16.10898993405067684831655675112808d0
+      rkAlpha(5,2) = 6.559571569643355712998131800797873d0
+      rkAlpha(5,3) = -15.90772144271326504260996815012482d0
+      rkAlpha(5,4) = 25.34908987169226073668861694892683d0
+               
+!~~~> Coefficients for continuous solution
+!          rkD(1,1)= 24.74416644927758d0
+!          rkD(1,2)= -4.325375951824688d0
+!          rkD(1,3)= 41.39683763286316d0
+!          rkD(1,4)= -61.04144619901784d0
+!          rkD(1,5)= -3.391332232917013d0
+!          rkD(2,1)= -51.98245719616925d0
+!          rkD(2,2)= 10.52501981094525d0
+!          rkD(2,3)= -154.2067922191855d0
+!          rkD(2,4)= 214.3082125319825d0
+!          rkD(2,5)= 14.71166018088679d0
+!          rkD(3,1)= 33.14347947522142d0
+!          rkD(3,2)= -19.72986789558523d0
+!          rkD(3,3)= 230.4878502285804d0
+!          rkD(3,4)= -287.6629744338197d0
+!          rkD(3,5)= -18.99932366302254d0
+!          rkD(4,1)= -5.905188728329743d0
+!          rkD(4,2)= 13.53022403646467d0
+!          rkD(4,3)= -117.6778956422581d0
+!          rkD(4,4)= 134.3962081008550d0
+!          rkD(4,5)= 8.678995715052762d0
+!
+!         DO i=1,4  ! CONTi <-- Sum_j rkD(i,j)*Zj
+!           CALL Set2zero(N,CONT(1,i))
+!           DO j = 1,rkS
+!             CALL WAXPY(N,rkD(i,j),Z(1,j),1,CONT(1,i),1)
+!           END DO
+!         END DO
+          
+          rkELO = 4.0d0
+          
+      END SUBROUTINE Sdirk4a
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE Sdirk4b
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      sdMethod = S4B
+! Number of stages
+      rkS = 5
+
+! Method coefficients
+      rkGamma = .25d0
+
+      rkA(1,1) = 0.25d0
+      rkA(2,1) = 0.5d00
+      rkA(2,2) = 0.25d0
+      rkA(3,1) = 0.34d0
+      rkA(3,2) =-0.40d-1
+      rkA(3,3) = 0.25d0
+      rkA(4,1) = 0.2727941176470588235294117647058824d0
+      rkA(4,2) =-0.5036764705882352941176470588235294d-1
+      rkA(4,3) = 0.2757352941176470588235294117647059d-1
+      rkA(4,4) = 0.25d0
+      rkA(5,1) = 1.041666666666666666666666666666667d0
+      rkA(5,2) =-1.020833333333333333333333333333333d0
+      rkA(5,3) = 7.812500000000000000000000000000000d0
+      rkA(5,4) =-7.083333333333333333333333333333333d0
+      rkA(5,5) = 0.25d0
+
+      rkB(1)   =  1.041666666666666666666666666666667d0
+      rkB(2)   = -1.020833333333333333333333333333333d0
+      rkB(3)   =  7.812500000000000000000000000000000d0
+      rkB(4)   = -7.083333333333333333333333333333333d0
+      rkB(5)   =  0.250000000000000000000000000000000d0
+
+      rkBhat(1)=  1.069791666666666666666666666666667d0
+      rkBhat(2)= -0.894270833333333333333333333333333d0
+      rkBhat(3)=  7.695312500000000000000000000000000d0
+      rkBhat(4)= -7.083333333333333333333333333333333d0
+      rkBhat(5)=  0.212500000000000000000000000000000d0
+
+      rkC(1)   = 0.25d0
+      rkC(2)   = 0.75d0
+      rkC(3)   = 0.55d0
+      rkC(4)   = 0.50d0
+      rkC(5)   = 1.00d0
+
+! Ynew = Yold + h*Sum_i {rkB_i*k_i} = Yold + Sum_i {rkD_i*Z_i}
+      rkD(1)   = 0.0d0
+      rkD(2)   = 0.0d0
+      rkD(3)   = 0.0d0
+      rkD(4)   = 0.0d0
+      rkD(5)   = 1.0d0
+
+! Err = h * Sum_i {(rkB_i-rkBhat_i)*k_i} = Sum_i {rkE_i*Z_i}
+      rkE(1)   =  0.5750d0
+      rkE(2)   =  0.2125d0
+      rkE(3)   = -4.6875d0
+      rkE(4)   =  4.2500d0
+      rkE(5)   =  0.1500d0
+
+! Local order of Err estimate
+      rkElo    = 4
+
+! h*Sum_j {rkA_ij*k_j} = Sum_j {rkTheta_ij*Z_j}
+      rkTheta(2,1) = 2.d0
+      rkTheta(3,1) = 1.680000000000000000000000000000000d0
+      rkTheta(3,2) = -.1600000000000000000000000000000000d0
+      rkTheta(4,1) = 1.308823529411764705882352941176471d0
+      rkTheta(4,2) = -.1838235294117647058823529411764706d0
+      rkTheta(4,3) = 0.1102941176470588235294117647058824d0
+      rkTheta(5,1) = -3.083333333333333333333333333333333d0
+      rkTheta(5,2) = -4.291666666666666666666666666666667d0
+      rkTheta(5,3) =  34.37500000000000000000000000000000d0
+      rkTheta(5,4) = -28.33333333333333333333333333333333d0
+
+! Starting value for Newton iterations: Z_i^0 = Sum_j {rkAlpha_ij*Z_j}
+      rkAlpha(2,1) = 3.
+      rkAlpha(3,1) = .8800000000000000000000000000000000d0
+      rkAlpha(3,2) = .4400000000000000000000000000000000d0
+      rkAlpha(4,1) = .1666666666666666666666666666666667d0
+      rkAlpha(4,2) = -.8333333333333333333333333333333333d-1
+      rkAlpha(4,3) = .9469696969696969696969696969696970d0
+      rkAlpha(5,1) = -6.d0
+      rkAlpha(5,2) = 9.d0
+      rkAlpha(5,3) = -56.81818181818181818181818181818182d0
+      rkAlpha(5,4) = 54.d0
+      
+      END SUBROUTINE Sdirk4b
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE Sdirk2a
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      sdMethod = S2A
+! Number of stages
+      rkS = 2
+
+! Method coefficients
+      rkGamma = .2928932188134524755991556378951510d0
+
+      rkA(1,1) = .2928932188134524755991556378951510d0
+      rkA(2,1) = .7071067811865475244008443621048490d0
+      rkA(2,2) = .2928932188134524755991556378951510d0
+
+      rkB(1)   = .7071067811865475244008443621048490d0
+      rkB(2)   = .2928932188134524755991556378951510d0
+
+      rkBhat(1)= .6666666666666666666666666666666667d0
+      rkBhat(2)= .3333333333333333333333333333333333d0
+
+      rkC(1)   = 0.292893218813452475599155637895151d0
+      rkC(2)   = 1.0d0
+
+! Ynew = Yold + h*Sum_i {rkB_i*k_i} = Yold + Sum_i {rkD_i*Z_i}
+      rkD(1)   = 0.0d0
+      rkD(2)   = 1.0d0
+
+! Err = h * Sum_i {(rkB_i-rkBhat_i)*k_i} = Sum_i {rkE_i*Z_i}
+      rkE(1)   =  0.4714045207910316829338962414032326d0
+      rkE(2)   = -0.1380711874576983496005629080698993d0
+
+! Local order of Err estimate
+      rkElo    = 2
+
+! h*Sum_j {rkA_ij*k_j} = Sum_j {rkTheta_ij*Z_j}
+      rkTheta(2,1) = 2.414213562373095048801688724209698d0
+
+! Starting value for Newton iterations: Z_i^0 = Sum_j {rkAlpha_ij*Z_j}
+      rkAlpha(2,1) = 3.414213562373095048801688724209698d0
+          
+      END SUBROUTINE Sdirk2a
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE Sdirk2b
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      sdMethod = S2B
+! Number of stages
+      rkS      = 2
+
+! Method coefficients
+      rkGamma  = 1.707106781186547524400844362104849d0
+
+      rkA(1,1) = 1.707106781186547524400844362104849d0
+      rkA(2,1) = -.707106781186547524400844362104849d0
+      rkA(2,2) = 1.707106781186547524400844362104849d0
+
+      rkB(1)   = -.707106781186547524400844362104849d0
+      rkB(2)   = 1.707106781186547524400844362104849d0
+
+      rkBhat(1)= .6666666666666666666666666666666667d0
+      rkBhat(2)= .3333333333333333333333333333333333d0
+
+      rkC(1)   = 1.707106781186547524400844362104849d0
+      rkC(2)   = 1.0d0
+
+! Ynew = Yold + h*Sum_i {rkB_i*k_i} = Yold + Sum_i {rkD_i*Z_i}
+      rkD(1)   = 0.0d0
+      rkD(2)   = 1.0d0
+
+! Err = h * Sum_i {(rkB_i-rkBhat_i)*k_i} = Sum_i {rkE_i*Z_i}
+      rkE(1)   = -.4714045207910316829338962414032326d0
+      rkE(2)   =  .8047378541243650162672295747365659d0
+
+! Local order of Err estimate
+      rkElo    = 2
+
+! h*Sum_j {rkA_ij*k_j} = Sum_j {rkTheta_ij*Z_j}
+      rkTheta(2,1) = -.414213562373095048801688724209698d0
+
+! Starting value for Newton iterations: Z_i^0 = Sum_j {rkAlpha_ij*Z_j}
+      rkAlpha(2,1) = .5857864376269049511983112757903019d0
+      
+      END SUBROUTINE Sdirk2b
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE Sdirk3a
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      sdMethod = S3A
+! Number of stages
+      rkS = 3
+
+! Method coefficients
+      rkGamma = .2113248654051871177454256097490213d0
+
+      rkA(1,1) = .2113248654051871177454256097490213d0
+      rkA(2,1) = .2113248654051871177454256097490213d0
+      rkA(2,2) = .2113248654051871177454256097490213d0
+      rkA(3,1) = .2113248654051871177454256097490213d0
+      rkA(3,2) = .5773502691896257645091487805019573d0
+      rkA(3,3) = .2113248654051871177454256097490213d0
+
+      rkB(1)   = .2113248654051871177454256097490213d0
+      rkB(2)   = .5773502691896257645091487805019573d0
+      rkB(3)   = .2113248654051871177454256097490213d0
+
+      rkBhat(1)= .2113248654051871177454256097490213d0
+      rkBhat(2)= .6477918909913548037576239837516312d0
+      rkBhat(3)= .1408832436034580784969504064993475d0
+
+      rkC(1)   = .2113248654051871177454256097490213d0
+      rkC(2)   = .4226497308103742354908512194980427d0
+      rkC(3)   = 1.d0
+
+! Ynew = Yold + h*Sum_i {rkB_i*k_i} = Yold + Sum_i {rkD_i*Z_i}
+      rkD(1)   = 0.d0
+      rkD(2)   = 0.d0
+      rkD(3)   = 1.d0
+
+! Err = h * Sum_i {(rkB_i-rkBhat_i)*k_i} = Sum_i {rkE_i*Z_i}
+      rkE(1)   =  0.9106836025229590978424821138352906d0
+      rkE(2)   = -1.244016935856292431175815447168624d0
+      rkE(3)   =  0.3333333333333333333333333333333333d0
+
+! Local order of Err estimate
+      rkElo    = 2
+
+! h*Sum_j {rkA_ij*k_j} = Sum_j {rkTheta_ij*Z_j}
+      rkTheta(2,1) =  1.0d0
+      rkTheta(3,1) = -1.732050807568877293527446341505872d0
+      rkTheta(3,2) =  2.732050807568877293527446341505872d0
+
+! Starting value for Newton iterations: Z_i^0 = Sum_j {rkAlpha_ij*Z_j}
+      rkAlpha(2,1) =   2.0d0
+      rkAlpha(3,1) = -12.92820323027550917410978536602349d0
+      rkAlpha(3,2) =   8.83012701892219323381861585376468d0
+
+      END SUBROUTINE Sdirk3a
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   END SUBROUTINE SDIRKADJ ! AND ALL ITS INTERNAL PROCEDURES
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE FUN_CHEM( T, Y, P )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      USE KPP_ROOT_Parameters, ONLY: NVAR
+      USE KPP_ROOT_Global, ONLY: TIME, FIX, RCONST
+      USE KPP_ROOT_Function, ONLY: Fun
+      USE KPP_ROOT_Rates, ONLY: Update_SUN, Update_RCONST, Update_PHOTO
+
+      KPP_REAL :: T, Told
+      KPP_REAL :: Y(NVAR), P(NVAR)
+      
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      
+      CALL Fun( Y, FIX, RCONST, P )
+      
+      TIME = Told
+      
+      END SUBROUTINE FUN_CHEM
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE JAC_CHEM( T, Y, JV )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      USE KPP_ROOT_Parameters, ONLY: NVAR, LU_NONZERO
+      USE KPP_ROOT_Global, ONLY: TIME, FIX, RCONST
+      USE KPP_ROOT_Jacobian, ONLY: Jac_SP,LU_IROW,LU_ICOL
+      USE KPP_ROOT_Rates, ONLY: Update_SUN, Update_RCONST, Update_PHOTO
+  
+      KPP_REAL ::  T, Told
+      KPP_REAL ::  Y(NVAR)
+#ifdef FULL_ALGEBRA
+      KPP_REAL :: JS(LU_NONZERO), JV(NVAR,NVAR)
+      INTEGER :: i, j
+#else
+      KPP_REAL :: JV(LU_NONZERO)
+#endif
+ 
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+
+#ifdef FULL_ALGEBRA
+      CALL Jac_SP(Y, FIX, RCONST, JS)
+      DO j=1,NVAR
+         DO j=1,NVAR
+          JV(i,j) = 0.0d0
+         END DO
+      END DO
+      DO i=1,LU_NONZERO
+         JV(LU_IROW(i),LU_ICOL(i)) = JS(i)
+      END DO
+#else
+      CALL Jac_SP(Y, FIX, RCONST, JV)
+#endif
+      TIME = Told
+
+      END SUBROUTINE JAC_CHEM
+
+END MODULE KPP_ROOT_Integrator
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/sdirk_tlm.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/sdirk_tlm.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/sdirk_tlm.def	(revision 2696)
@@ -0,0 +1,20 @@
+ 
+#FUNCTION AGGREGATE
+#JACOBIAN SPARSE_LU_ROW
+
+#DOUBLE ON 
+#INTFILE sdirk_tlm
+
+#INLINE F77_GLOBAL
+      REAL*8 STEPSTART
+      COMMON /GDATA/ STEPSTART
+#ENDINLINE
+
+#INLINE F77_INIT
+        STEPMIN=0.0001
+        STEPMAX=3600.
+        STEPSTART=STEPMIN
+#ENDINLINE
+
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/sdirk_tlm.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/sdirk_tlm.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/sdirk_tlm.f90	(revision 2696)
@@ -0,0 +1,1461 @@
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
+!  SDIRK-TLM - Tangent Linear Model of Singly-Diagonally-Implicit RK      !
+!            * Sdirk 2a, 2b: L-stable, 2 stages, order 2                  !
+!            * Sdirk 3a:     L-stable, 3 stages, order 2, adj-invariant   !
+!            * Sdirk 4a, 4b: L-stable, 5 stages, order 4                  !
+!  By default the code employs the KPP sparse linear algebra routines     !
+!  Compile with -DFULL_ALGEBRA to use full linear algebra (LAPACK)        !
+!                                                                         !
+!    (C)  Adrian Sandu, July 2005                                         !
+!    Virginia Polytechnic Institute and State University                  !
+!    Contact: sandu@cs.vt.edu                                             !
+!    Revised by Philipp Miehe and Adrian Sandu, May 2006                  !
+!    This implementation is part of KPP - the Kinetic PreProcessor        !
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
+
+MODULE KPP_ROOT_Integrator
+
+  USE KPP_ROOT_Precision
+  USE KPP_ROOT_Global, ONLY: FIX, RCONST, TIME
+  USE KPP_ROOT_Parameters, ONLY: NVAR, NSPEC, NFIX, LU_NONZERO
+  USE KPP_ROOT_JacobianSP, ONLY: LU_DIAG
+  USE KPP_ROOT_Jacobian, ONLY:   Jac_SP_Vec
+  USE KPP_ROOT_LinearAlgebra, ONLY: KppDecomp,    &
+               KppSolve, Set2zero, WLAMCH, WCOPY, WAXPY, WSCAL, WADD
+  
+  IMPLICIT NONE
+  PUBLIC
+  SAVE
+  
+!~~~>  Statistics on the work performed by the SDIRK method
+  INTEGER, PARAMETER :: Nfun=1, Njac=2, Nstp=3, Nacc=4,  &
+           Nrej=5, Ndec=6, Nsol=7, Nsng=8,               &
+           Ntexit=1, Nhexit=2, Nhnew=3
+                 
+CONTAINS
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+SUBROUTINE INTEGRATE_TLM( NTLM, Y, Y_tlm, TIN, TOUT, ATOL_tlm,RTOL_tlm, &
+       ICNTRL_U, RCNTRL_U, ISTATUS_U, RSTATUS_U, IERR_U )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+    USE KPP_ROOT_Parameters, ONLY: NVAR,ind_O3
+    USE KPP_ROOT_Global,     ONLY: ATOL,RTOL,VAR
+
+    IMPLICIT NONE
+
+!~~~> Y - Concentrations
+    KPP_REAL :: Y(NVAR)
+!~~~> NTLM - No. of sensitivity coefficients
+    INTEGER NTLM
+!~~~> Y_tlm - Sensitivities of concentrations
+!     Note: Y_tlm (1:NVAR,j) contains sensitivities of
+!               Y(1:NVAR) w.r.t. the j-th parameter, j=1...NTLM
+    KPP_REAL :: Y_tlm(NVAR,NTLM)
+    KPP_REAL :: TIN  ! TIN - Start Time
+    KPP_REAL :: TOUT ! TOUT - End Time
+    KPP_REAL, INTENT(IN),  OPTIONAL :: RTOL_tlm(NVAR,NTLM),ATOL_tlm(NVAR,NTLM)
+    INTEGER,       INTENT(IN),  OPTIONAL :: ICNTRL_U(20)
+    KPP_REAL, INTENT(IN),  OPTIONAL :: RCNTRL_U(20)
+    INTEGER,       INTENT(OUT), OPTIONAL :: ISTATUS_U(20)
+    KPP_REAL, INTENT(OUT), OPTIONAL :: RSTATUS_U(20)
+    INTEGER,       INTENT(OUT), OPTIONAL :: IERR_U
+
+    INTEGER :: IERR
+
+    KPP_REAL :: RCNTRL(20), RSTATUS(20), T1, T2
+    INTEGER       :: ICNTRL(20), ISTATUS(20)
+    INTEGER, SAVE :: Ntotal = 0
+
+    ICNTRL(1:20) = 0
+    RCNTRL(1:20) = 0.0_dp
+
+    !~~~> fine-tune the integrator:
+    ICNTRL(2)  = 0   ! 0=vector tolerances, 1=scalar tolerances
+    ICNTRL(5)  = 8   ! Max no. of Newton iterations
+    ICNTRL(6)  = 0   ! Starting values for Newton are interpolated (0) or zero (1)
+    ICNTRL(7)  = 0   ! How to solve TLM: 0=modified Newton, 1=direct
+    ICNTRL(9)  = 0   ! TLM Newton Iterations influence
+    ICNTRL(12) = 0   ! TLM Truncation Error influence
+
+    !~~~> if optional parameters are given, and if they are >0,
+    !     then use them to overwrite default settings
+    IF (PRESENT(ICNTRL_U)) THEN
+      WHERE(ICNTRL_U(:) > 0) ICNTRL(:) = ICNTRL_U(:)
+    END IF
+    IF (PRESENT(RCNTRL_U)) THEN
+      WHERE(RCNTRL_U(:) > 0) RCNTRL(:) = RCNTRL_U(:)
+    END IF
+
+
+    T1 = TIN; T2 = TOUT
+    CALL SdirkTLM(  NVAR, NTLM, T1, T2, Y, Y_tlm, RTOL, ATOL, &
+                    RTOL_tlm, ATOL_tlm, RCNTRL,ICNTRL,RSTATUS,ISTATUS,IERR  )
+
+    !~~~> Debug option: print number of steps
+    ! Ntotal = Ntotal + ISTATUS(Nstp)
+    ! PRINT*,'NSTEPS=',ISTATUS(Nstp),' (',Ntotal,')','  O3=', VAR(ind_O3)
+
+    ! if optional parameters are given for output
+    ! use them to store information in them
+    IF (PRESENT(ISTATUS_U)) ISTATUS_U(:) = ISTATUS(:)
+    IF (PRESENT(RSTATUS_U)) RSTATUS_U(:) = RSTATUS(:)
+    IF (PRESENT(IERR_U)) IERR_U = IERR
+
+    IF (IERR < 0) THEN
+      PRINT *,'SDIRK-TLM: Unsuccessful exit at T=', TIN,' (IERR=',IERR,')'
+    ENDIF
+
+  END SUBROUTINE INTEGRATE_TLM
+
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE SdirkTLM(N, NTLM, Tinitial, Tfinal, Y, Y_tlm, RelTol, AbsTol, &
+                          RelTol_tlm, AbsTol_tlm, &
+			  RCNTRL, ICNTRL, RSTATUS, ISTATUS, Ierr)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!    Solves the system y'=F(t,y) using a Singly-Diagonally-Implicit
+!    Runge-Kutta (SDIRK) method.
+!
+!    This implementation is based on the book and the code Sdirk4:
+!
+!      E. Hairer and G. Wanner
+!      "Solving ODEs II. Stiff and differential-algebraic problems".
+!      Springer series in computational mathematics, Springer-Verlag, 1996.
+!    This code is based on the SDIRK4 routine in the above book.
+!
+!    Methods:
+!            * Sdirk 2a, 2b: L-stable, 2 stages, order 2                  
+!            * Sdirk 3a:     L-stable, 3 stages, order 2, adjoint-invariant   
+!            * Sdirk 4a, 4b: L-stable, 5 stages, order 4                  
+!
+!    (C)  Adrian Sandu, July 2005
+!    Virginia Polytechnic Institute and State University
+!    Contact: sandu@cs.vt.edu
+!    Revised by Philipp Miehe and Adrian Sandu, May 2006                  
+!    This implementation is part of KPP - the Kinetic PreProcessor
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>   INPUT ARGUMENTS:
+!
+!-     Y(NVAR)    = vector of initial conditions (at T=Tinitial)
+!-    [Tinitial,Tfinal]  = time range of integration
+!     (if Tinitial>Tfinal the integration is performed backwards in time)
+!-    RelTol, AbsTol = user precribed accuracy
+!- SUBROUTINE ode_Fun( T, Y, Ydot ) = ODE function,
+!                       returns Ydot = Y' = F(T,Y)
+!- SUBROUTINE ode_Fun( T, Y, Ydot ) = Jacobian of the ODE function,
+!                       returns Jcb = dF/dY
+!-    ICNTRL(1:20)    = integer inputs parameters
+!-    RCNTRL(1:20)    = real inputs parameters
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>     OUTPUT ARGUMENTS:
+!
+!-    Y(NVAR)         -> vector of final states (at T->Tfinal)
+!-    ISTATUS(1:20)   -> integer output parameters
+!-    RSTATUS(1:20)   -> real output parameters
+!-    Ierr            -> job status upon return
+!                        success (positive value) or
+!                        failure (negative value)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>     INPUT PARAMETERS:
+!
+!    Note: For input parameters equal to zero the default values of the
+!       corresponding variables are used.
+!
+!    Note: For input parameters equal to zero the default values of the
+!          corresponding variables are used.
+!~~~>  
+!    ICNTRL(1) = not used
+!
+!    ICNTRL(2) = 0: AbsTol, RelTol are NVAR-dimensional vectors
+!              = 1: AbsTol, RelTol are scalars
+!
+!    ICNTRL(3) = Method
+!
+!    ICNTRL(4)  -> maximum number of integration steps
+!        For ICNTRL(4)=0 the default value of 100000 is used
+!
+!    ICNTRL(5)  -> maximum number of Newton iterations
+!        For ICNTRL(5)=0 the default value of 8 is used
+!
+!    ICNTRL(6)  -> starting values of Newton iterations:
+!        ICNTRL(6)=0 : starting values are interpolated (the default)
+!        ICNTRL(6)=1 : starting values are zero
+!
+!    ICNTRL(7)  -> method to solve TLM equations:
+!        ICNTRL(7)=0 : modified Newton re-using LU (the default)
+!        ICNTRL(7)=1 : direct solution (additional one LU factorization per stage)
+!
+!    ICNTRL(9) -> switch for TLM Newton iteration error estimation strategy
+!		ICNTRL(9) = 0: base number of iterations as forward solution
+!		ICNTRL(9) = 1: use RTOL_tlm and ATOL_tlm to calculate
+!				error estimation for TLM at Newton stages
+!
+!    ICNTRL(12) -> switch for TLM truncation error control
+!		ICNTRL(12) = 0: TLM error is not used
+!		ICNTRL(12) = 1: TLM error is computed and used
+!
+!
+!~~~>  Real parameters
+!
+!    RCNTRL(1)  -> Hmin, lower bound for the integration step size
+!                  It is strongly recommended to keep Hmin = ZERO
+!    RCNTRL(2)  -> Hmax, upper bound for the integration step size
+!    RCNTRL(3)  -> Hstart, starting value for the integration step size
+!
+!    RCNTRL(4)  -> FacMin, lower bound on step decrease factor (default=0.2)
+!    RCNTRL(5)  -> FacMax, upper bound on step increase factor (default=6)
+!    RCNTRL(6)  -> FacRej, step decrease factor after multiple rejections
+!                 (default=0.1)
+!    RCNTRL(7)  -> FacSafe, by which the new step is slightly smaller
+!                  than the predicted value  (default=0.9)
+!    RCNTRL(8)  -> ThetaMin. If Newton convergence rate smaller
+!                  than ThetaMin the Jacobian is not recomputed;
+!                  (default=0.001)
+!    RCNTRL(9)  -> NewtonTol, stopping criterion for Newton's method
+!                  (default=0.03)
+!    RCNTRL(10) -> Qmin
+!    RCNTRL(11) -> Qmax. If Qmin < Hnew/Hold < Qmax, then the
+!                  step size is kept constant and the LU factorization
+!                  reused (default Qmin=1, Qmax=1.2)
+!
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>     OUTPUT PARAMETERS:
+!
+!    Note: each call to Rosenbrock adds the current no. of fcn calls
+!      to previous value of ISTATUS(1), and similar for the other params.
+!      Set ISTATUS(1:10) = 0 before call to avoid this accumulation.
+!
+!    ISTATUS(1) = No. of function calls
+!    ISTATUS(2) = No. of jacobian calls
+!    ISTATUS(3) = No. of steps
+!    ISTATUS(4) = No. of accepted steps
+!    ISTATUS(5) = No. of rejected steps (except at the beginning)
+!    ISTATUS(6) = No. of LU decompositions
+!    ISTATUS(7) = No. of forward/backward substitutions
+!    ISTATUS(8) = No. of singular matrix decompositions
+!
+!    RSTATUS(1)  -> Texit, the time corresponding to the
+!                   computed Y upon return
+!    RSTATUS(2)  -> Hexit,last accepted step before return
+!    RSTATUS(3)  -> Hnew, last predicted step before return
+!        For multiple restarts, use Hnew as Hstart in the following run
+!
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+
+! Arguments      
+      INTEGER, INTENT(IN)          :: N, NTLM, ICNTRL(20)
+      KPP_REAL, INTENT(IN)    :: Tinitial, Tfinal, &
+                    RelTol(N), AbsTol(N), RCNTRL(20), &
+		    RelTol_tlm(N,NTLM), AbsTol_tlm(N,NTLM)
+      KPP_REAL, INTENT(INOUT) :: Y(NVAR), Y_tlm(N,NTLM)
+      INTEGER, INTENT(OUT)         :: Ierr
+      INTEGER, INTENT(INOUT)       :: ISTATUS(20) 
+      KPP_REAL, INTENT(OUT)   :: RSTATUS(20)
+       
+!~~~>  SDIRK method coefficients, up to 5 stages
+      INTEGER, PARAMETER :: Smax = 5
+      INTEGER, PARAMETER :: S2A=1, S2B=2, S3A=3, S4A=4, S4B=5
+      KPP_REAL :: rkGamma, rkA(Smax,Smax), rkB(Smax), rkC(Smax), &
+                       rkD(Smax),  rkE(Smax), rkBhat(Smax), rkELO,    &
+                       rkAlpha(Smax,Smax), rkTheta(Smax,Smax)
+      INTEGER :: sdMethod, rkS ! The number of stages
+
+! Local variables      
+      KPP_REAL :: Hmin, Hmax, Hstart, Roundoff,    &
+                       FacMin, Facmax, FacSafe, FacRej, &
+                       ThetaMin, NewtonTol, Qmin, Qmax
+      INTEGER       :: ITOL, NewtonMaxit, Max_no_steps, i
+      LOGICAL       :: StartNewton, DirectTLM, TLMNewtonEst, TLMtruncErr
+      KPP_REAL, PARAMETER :: ZERO = 0.0d0, ONE = 1.0d0
+
+       
+      Ierr = 0
+      ISTATUS(1:20) = 0
+      RSTATUS(1:20) = ZERO
+
+!~~~>  For Scalar tolerances (ICNTRL(2).NE.0)  the code uses AbsTol(1) and RelTol(1)
+!   For Vector tolerances (ICNTRL(2) == 0) the code uses AbsTol(1:NVAR) and RelTol(1:NVAR)
+      IF (ICNTRL(2) == 0) THEN
+         ITOL = 1
+      ELSE
+         ITOL = 0
+      END IF
+
+!~~~> ICNTRL(3) - method selection       
+      SELECT CASE (ICNTRL(3))
+      CASE (0,1)
+         CALL Sdirk2a
+      CASE (2)
+         CALL Sdirk2b
+      CASE (3)
+         CALL Sdirk3a
+      CASE (4)
+         CALL Sdirk4a
+      CASE (5)
+         CALL Sdirk4b
+      CASE DEFAULT
+         CALL Sdirk2a
+      END SELECT
+      
+!~~~>   The maximum number of time steps admitted
+      IF (ICNTRL(4) == 0) THEN
+         Max_no_steps = 200000
+      ELSEIF (ICNTRL(4) > 0) THEN
+         Max_no_steps=ICNTRL(4)
+      ELSE
+         PRINT * ,'User-selected ICNTRL(4)=',ICNTRL(4)
+         CALL SDIRK_ErrorMsg(-1,Tinitial,ZERO,Ierr)
+   END IF
+   !~~~> The maximum number of Newton iterations admitted
+      IF(ICNTRL(5) == 0)THEN
+         NewtonMaxit=8
+      ELSE
+         NewtonMaxit=ICNTRL(5)
+         IF(NewtonMaxit <= 0)THEN
+             PRINT * ,'User-selected ICNTRL(5)=',ICNTRL(5)
+             CALL SDIRK_ErrorMsg(-2,Tinitial,ZERO,Ierr)
+         END IF
+      END IF
+!~~~> StartNewton:  Use extrapolation for starting values of Newton iterations
+      IF (ICNTRL(6) == 0) THEN
+         StartNewton = .TRUE.
+      ELSE
+         StartNewton = .FALSE.
+      END IF      
+!~~~> Solve TLM equations directly or by Newton iterations 
+      DirectTLM = (ICNTRL(7) == 1)
+!~~~> Newton iteration error control selection  
+      IF (ICNTRL(9) == 0) THEN 
+         TLMNewtonEst = .FALSE.
+      ELSE
+         TLMNewtonEst = .TRUE.
+      END IF      
+!~~~> TLM truncation error control selection  
+      IF (ICNTRL(12) == 0) THEN 
+         TLMtruncErr = .FALSE.
+      ELSE
+         TLMtruncErr = .TRUE.
+      END IF      
+           
+!~~~>  Unit roundoff (1+Roundoff>1)
+      Roundoff = WLAMCH('E')
+
+!~~~>  Lower bound on the step size: (positive value)
+      IF (RCNTRL(1) == ZERO) THEN
+         Hmin = ZERO
+      ELSEIF (RCNTRL(1) > ZERO) THEN
+         Hmin = RCNTRL(1)
+      ELSE
+         PRINT * , 'User-selected RCNTRL(1)=', RCNTRL(1)
+         CALL SDIRK_ErrorMsg(-3,Tinitial,ZERO,Ierr)
+      END IF
+   
+!~~~>  Upper bound on the step size: (positive value)
+      IF (RCNTRL(2) == ZERO) THEN
+         Hmax = ABS(Tfinal-Tinitial)
+      ELSEIF (RCNTRL(2) > ZERO) THEN
+         Hmax = MIN(ABS(RCNTRL(2)),ABS(Tfinal-Tinitial))
+      ELSE
+         PRINT * , 'User-selected RCNTRL(2)=', RCNTRL(2)
+         CALL SDIRK_ErrorMsg(-3,Tinitial,ZERO,Ierr)
+      END IF
+   
+!~~~>  Starting step size: (positive value)
+      IF (RCNTRL(3) == ZERO) THEN
+         Hstart = MAX(Hmin,Roundoff)
+      ELSEIF (RCNTRL(3) > ZERO) THEN
+         Hstart = MIN(ABS(RCNTRL(3)),ABS(Tfinal-Tinitial))
+      ELSE
+         PRINT * , 'User-selected Hstart: RCNTRL(3)=', RCNTRL(3)
+         CALL SDIRK_ErrorMsg(-3,Tinitial,ZERO,Ierr)
+      END IF
+   
+!~~~>  Step size can be changed s.t.  FacMin < Hnew/Hexit < FacMax
+      IF (RCNTRL(4) == ZERO) THEN
+         FacMin = 0.2_dp
+      ELSEIF (RCNTRL(4) > ZERO) THEN
+         FacMin = RCNTRL(4)
+      ELSE
+         PRINT * , 'User-selected FacMin: RCNTRL(4)=', RCNTRL(4)
+         CALL SDIRK_ErrorMsg(-4,Tinitial,ZERO,Ierr)
+      END IF
+      IF (RCNTRL(5) == ZERO) THEN
+         FacMax = 10.0_dp
+      ELSEIF (RCNTRL(5) > ZERO) THEN
+         FacMax = RCNTRL(5)
+      ELSE
+         PRINT * , 'User-selected FacMax: RCNTRL(5)=', RCNTRL(5)
+         CALL SDIRK_ErrorMsg(-4,Tinitial,ZERO,Ierr)
+      END IF
+!~~~>   FacRej: Factor to decrease step after 2 succesive rejections
+      IF (RCNTRL(6) == ZERO) THEN
+         FacRej = 0.1_dp
+      ELSEIF (RCNTRL(6) > ZERO) THEN
+         FacRej = RCNTRL(6)
+      ELSE
+         PRINT * , 'User-selected FacRej: RCNTRL(6)=', RCNTRL(6)
+         CALL SDIRK_ErrorMsg(-4,Tinitial,ZERO,Ierr)
+      END IF
+!~~~>   FacSafe: Safety Factor in the computation of new step size
+      IF (RCNTRL(7) == ZERO) THEN
+         FacSafe = 0.9_dp
+      ELSEIF (RCNTRL(7) > ZERO) THEN
+         FacSafe = RCNTRL(7)
+      ELSE
+         PRINT * , 'User-selected FacSafe: RCNTRL(7)=', RCNTRL(7)
+         CALL SDIRK_ErrorMsg(-4,Tinitial,ZERO,Ierr)
+      END IF
+
+!~~~> ThetaMin: decides whether the Jacobian should be recomputed
+      IF(RCNTRL(8) == 0.D0)THEN
+         ThetaMin = 1.0d-3
+      ELSE
+         ThetaMin = RCNTRL(8)
+      END IF
+
+!~~~> Stopping criterion for Newton's method
+      IF(RCNTRL(9) == ZERO)THEN
+         NewtonTol = 3.0d-2
+      ELSE
+         NewtonTol = RCNTRL(9)
+      END IF
+
+!~~~> Qmin, Qmax: IF Qmin < Hnew/Hold < Qmax, STEP SIZE = CONST.
+      IF(RCNTRL(10) == ZERO)THEN
+         Qmin=ONE
+      ELSE
+         Qmin=RCNTRL(10)
+      END IF
+      IF(RCNTRL(11) == ZERO)THEN
+         Qmax=1.2D0
+      ELSE
+         Qmax=RCNTRL(11)
+      END IF
+
+!~~~>  Check if tolerances are reasonable
+      IF (ITOL == 0) THEN
+         IF (AbsTol(1) <= ZERO .OR. RelTol(1) <= 10.D0*Roundoff) THEN
+            PRINT * , ' Scalar AbsTol = ',AbsTol(1)
+            PRINT * , ' Scalar RelTol = ',RelTol(1)
+            CALL SDIRK_ErrorMsg(-5,Tinitial,ZERO,Ierr)
+         END IF
+      ELSE
+         DO i=1,N
+            IF (AbsTol(i) <= 0.D0.OR.RelTol(i) <= 10.D0*Roundoff) THEN
+              PRINT * , ' AbsTol(',i,') = ',AbsTol(i)
+              PRINT * , ' RelTol(',i,') = ',RelTol(i)
+              CALL SDIRK_ErrorMsg(-5,Tinitial,ZERO,Ierr)
+            END IF
+         END DO
+      END IF
+    
+    IF (Ierr < 0) RETURN
+
+    CALL SDIRK_IntegratorTLM( N,NTLM,Tinitial,Tfinal,Y,Y_tlm,Ierr )
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   CONTAINS  !  PROCEDURES INTERNAL TO SDIRK
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE SDIRK_IntegratorTLM( N,NTLM,Tinitial,Tfinal,Y,Y_tlm,Ierr )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      USE KPP_ROOT_Parameters
+      IMPLICIT NONE
+
+!~~~> Arguments:      
+      INTEGER, INTENT(IN) :: N, NTLM
+      KPP_REAL, INTENT(INOUT) :: Y(N), Y_tlm(N,NTLM)
+      KPP_REAL, INTENT(IN) :: Tinitial, Tfinal
+      INTEGER, INTENT(OUT) :: Ierr
+      
+!~~~> Local variables:      
+      KPP_REAL :: Z(NVAR,rkS), G(NVAR), TMP(NVAR),         &   
+                       NewtonRate, SCAL(NVAR), DZ(NVAR),        &
+                       T, H, Theta, Hratio, NewtonPredictedErr, &
+                       Qnewton, Err, Fac, Hnew, Tdirection,     &
+                       NewtonIncrement, NewtonIncrementOld, &
+		       SCAL_tlm(NVAR), Yerr(N), Yerr_tlm(N,NTLM), ThetaTLM
+      KPP_REAL :: Z_tlm(NVAR,rkS,NTLM)
+      INTEGER :: itlm, j, IER, istage, NewtonIter, saveNiter, NewtonIterTLM
+      INTEGER :: IP(NVAR), IP_tlm(NVAR)
+      LOGICAL :: Reject, FirstStep, SkipJac, SkipLU, NewtonDone
+      
+#ifdef FULL_ALGEBRA      
+      KPP_REAL, DIMENSION(NVAR,NVAR)  :: FJAC, E, Jac, E_tlm
+#else      
+      KPP_REAL, DIMENSION(LU_NONZERO) :: FJAC, E, Jac, E_tlm
+#endif      
+      KPP_REAL, PARAMETER :: ZERO = 0.0d0, ONE = 1.0d0
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Initializations
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      T = Tinitial
+      Tdirection = SIGN(ONE,Tfinal-Tinitial)
+      H = MAX(ABS(Hmin),ABS(Hstart))
+      IF (ABS(H) <= 10.D0*Roundoff) H=1.0D-6
+      H=MIN(ABS(H),Hmax)
+      H=SIGN(H,Tdirection)
+      SkipLU  = .FALSE.
+      SkipJac = .FALSE.
+      Reject =  .FALSE.
+      FirstStep=.TRUE.
+
+      CALL SDIRK_ErrorScale(N, ITOL, AbsTol, RelTol, Y, SCAL)
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Time loop begins
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Tloop: DO WHILE ( (Tfinal-T)*Tdirection - Roundoff > ZERO )
+
+
+!~~~>  Compute E = 1/(h*gamma)-Jac and its LU decomposition
+      IF ( .NOT.SkipLU ) THEN ! This time around skip the Jac update and LU
+         CALL SDIRK_PrepareMatrix ( H, T, Y, FJAC, &
+                   SkipJac, SkipLU, E, IP, Reject, IER )
+         IF (IER /= 0) THEN
+             CALL SDIRK_ErrorMsg(-8,T,H,Ierr); RETURN
+         END IF
+      END IF      
+
+      IF (ISTATUS(Nstp) > Max_no_steps) THEN
+             CALL SDIRK_ErrorMsg(-6,T,H,Ierr); RETURN
+      END IF   
+      IF ( (T+0.1d0*H == T) .OR. (ABS(H) <= Roundoff) ) THEN
+             CALL SDIRK_ErrorMsg(-7,T,H,Ierr); RETURN
+      END IF   
+
+stages:DO istage = 1, rkS
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Simplified Newton iterations
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+!~~~>  Starting values for Newton iterations
+       CALL Set2zero(N,Z(1,istage))
+       
+!~~~>   Prepare the loop-independent part of the right-hand side
+       CALL Set2zero(N,G)
+       IF (istage > 1) THEN
+           DO j = 1, istage-1
+               ! Gj(:) = sum_j Theta(i,j)*Zj(:) = H * sum_j A(i,j)*Fun(Zj(:))
+               CALL WAXPY(N,rkTheta(istage,j),Z(1,j),1,G,1)
+               ! Zi(:) = sum_j Alpha(i,j)*Zj(:)
+	       IF (StartNewton) THEN
+                 CALL WAXPY(N,rkAlpha(istage,j),Z(1,j),1,Z(1,istage),1)
+	       END IF
+           END DO
+       END IF
+
+       !~~~>  Initializations for Newton iteration
+       NewtonDone = .FALSE.
+       Fac = 0.5d0 ! Step reduction factor if too many iterations
+            
+NewtonLoop:DO NewtonIter = 1, NewtonMaxit
+
+!~~~>   Prepare the loop-dependent part of the right-hand side
+ 	    CALL WADD(N,Y,Z(1,istage),TMP)         	! TMP <- Y + Zi
+            CALL FUN_CHEM(T+rkC(istage)*H,TMP,DZ)	! DZ <- Fun(Y+Zi)
+            ISTATUS(Nfun) = ISTATUS(Nfun) + 1
+!            DZ(1:N) = G(1:N) - Z(1:N,istage) + (H*rkGamma)*DZ(1:N)
+	    CALL WSCAL(N, H*rkGamma, DZ, 1)
+	    CALL WAXPY (N, -ONE, Z(1,istage), 1, DZ, 1)
+            CALL WAXPY (N, ONE, G,1, DZ,1)
+
+!~~~>   Solve the linear system
+            CALL SDIRK_Solve ( H, N, E, IP, IER, DZ )
+            
+!~~~>   Check convergence of Newton iterations
+            CALL SDIRK_ErrorNorm(N, DZ, SCAL, NewtonIncrement)
+            IF ( NewtonIter == 1 ) THEN
+                Theta      = ABS(ThetaMin)
+                NewtonRate = 2.0d0 
+            ELSE
+                Theta = NewtonIncrement/NewtonIncrementOld
+                IF (Theta < 0.99d0) THEN
+                    NewtonRate = Theta/(ONE-Theta)
+                    ! Predict error at the end of Newton process 
+                    NewtonPredictedErr = NewtonIncrement &
+                               *Theta**(NewtonMaxit-NewtonIter)/(ONE-Theta)
+                    IF (NewtonPredictedErr >= NewtonTol) THEN
+                      ! Non-convergence of Newton: predicted error too large
+                      Qnewton = MIN(10.0d0,NewtonPredictedErr/NewtonTol)
+                      Fac = 0.8d0*Qnewton**(-ONE/(1+NewtonMaxit-NewtonIter))
+                      EXIT NewtonLoop
+                    END IF
+                ELSE ! Non-convergence of Newton: Theta too large
+                    EXIT NewtonLoop
+                END IF
+            END IF
+            NewtonIncrementOld = NewtonIncrement
+            ! Update solution: Z(:) <-- Z(:)+DZ(:)
+            CALL WAXPY(N,ONE,DZ,1,Z(1,istage),1) 
+            
+            ! Check error in Newton iterations
+            NewtonDone = (NewtonRate*NewtonIncrement <= NewtonTol)
+            IF (NewtonDone) THEN
+    	       ! Tune error in TLM variables by defining the minimal number of Newton iterations.
+	       saveNiter = NewtonIter+1
+	       EXIT NewtonLoop
+	    END IF
+            
+            END DO NewtonLoop
+            
+            IF (.NOT.NewtonDone) THEN
+                 !CALL RK_ErrorMsg(-12,T,H,Ierr);
+                 H = Fac*H; Reject=.TRUE.
+                 SkipJac = .TRUE.; SkipLU = .FALSE.
+                 CYCLE Tloop
+            END IF
+
+!~~~>  End of simplified Newton iterations for forward variables
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Solve for TLM variables
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+!~~~>  Direct solution for TLM variables
+DirTLM:IF (DirectTLM) THEN 
+
+         TMP(1:N) = Y(1:N) + Z(1:N,istage)
+         SkipJac = .FALSE.
+         CALL SDIRK_PrepareMatrix ( H, T+rkC(istage)*H, TMP, Jac, &
+                   SkipJac, SkipLU, E_tlm, IP_tlm, Reject, IER )
+         IF (IER /= 0) CYCLE TLoop
+
+TlmL:    DO itlm = 1, NTLM
+            G(1:N) = Y_tlm(1:N,itlm)
+            IF (istage > 1) THEN
+              ! Gj(:) = sum_j Theta(i,j)*Zj_tlm(:) 
+              !       = H * sum_j A(i,j)*Jac(Zj(:))*(Yj_tlm+Zj_tlm)
+              DO j = 1, istage-1
+                  CALL WAXPY(N,rkTheta(istage,j),Z_tlm(1,j,itlm),1,G,1)
+              END DO
+            END IF
+            CALL SDIRK_Solve ( H, N, E_tlm, IP_tlm, IER, G )
+            Z_tlm(1:N,istage,itlm) = G(1:N) - Y_tlm(1:N,itlm)
+         END DO TlmL
+
+       ELSE DirTLM
+
+!~~~>  Jacobian of the current stage solution
+       TMP(1:N) = Y(1:N) + Z(1:N,istage)
+       CALL JAC_CHEM(T+rkC(istage)*H,TMP,Jac)
+       ISTATUS(Njac) = ISTATUS(Njac) + 1
+
+!~~~>  Simplified Newton iterations for TLM variables
+TlmLoop:DO itlm = 1,NTLM
+       NewtonRate = MAX(NewtonRate,Roundoff)**0.8d0
+
+!~~~>  Starting values for Newton iterations
+       CALL Set2zero(N,Z_tlm(1,istage,itlm))
+       
+!~~~>   Prepare the loop-independent part of the right-hand side
+#ifdef FULL_ALGEBRA  
+       DZ = MATMUL(Jac,Y_tlm(1,itlm))    ! DZ <- Jac(Y+Z)*Y_tlm
+#else      
+       CALL Jac_SP_Vec ( Jac, Y_tlm(1,itlm), DZ )    
+#endif      
+       G(1:N) = (H*rkGamma)*DZ(1:N)
+       IF (istage > 1) THEN
+           ! Gj(:) = sum_j Theta(i,j)*Zj_tlm(:) 
+           !       = H * sum_j A(i,j)*Jac(Zj(:))*(Yj_tlm+Zj_tlm)
+           DO j = 1, istage-1
+               CALL WAXPY(N,rkTheta(istage,j),Z_tlm(1,j,itlm),1,G,1)
+           END DO
+       END IF
+       
+       
+       !~~~>  Initializations for Newton iteration
+       IF (TLMNewtonEst) THEN
+          NewtonDone = .FALSE.
+          Fac = 0.5d0 ! Step reduction factor if too many iterations
+
+          CALL SDIRK_ErrorScale(N,ITOL,AbsTol_tlm(1,itlm),RelTol_tlm(1,itlm), &
+               Y_tlm(1,itlm),SCAL_tlm)
+       END IF
+            
+NewtonLoopTLM:DO NewtonIterTLM = 1, NewtonMaxit
+
+!~~~>   Prepare the loop-dependent part of the right-hand side
+#ifdef FULL_ALGEBRA  
+            DZ = MATMUL(Jac,Z_tlm(1,istage,itlm))    ! DZ <- Jac(Y+Z)*Z_tlm
+#else      
+            CALL Jac_SP_Vec ( Jac, Z_tlm(1,istage,itlm), DZ )    
+#endif      
+            DZ(1:N) = (H*rkGamma)*DZ(1:N)+G(1:N)-Z_tlm(1:N,istage,itlm)
+
+            CALL SDIRK_Solve ( H, N, E, IP, IER, DZ )
+            
+	    IF (TLMNewtonEst) THEN
+!~~~>   Check convergence of Newton iterations
+            CALL SDIRK_ErrorNorm(N, DZ, SCAL_tlm, NewtonIncrement)
+            IF ( NewtonIterTLM <= 1 ) THEN
+                ThetaTLM      = ABS(ThetaMin)
+                NewtonRate = 2.0d0 
+            ELSE
+                ThetaTLM = NewtonIncrement/NewtonIncrementOld
+                IF (ThetaTLM < 0.99d0) THEN
+                    NewtonRate = ThetaTLM/(ONE-ThetaTLM)
+                    ! Predict error at the end of Newton process 
+                    NewtonPredictedErr = NewtonIncrement &
+                               *ThetaTLM**(NewtonMaxit-NewtonIterTLM)/(ONE-ThetaTLM)
+                    IF (NewtonPredictedErr >= NewtonTol) THEN
+                      ! Non-convergence of Newton: predicted error too large
+                      Qnewton = MIN(10.0d0,NewtonPredictedErr/NewtonTol)
+                      Fac = 0.8d0*Qnewton**(-ONE/(1+NewtonMaxit-NewtonIterTLM))
+                      EXIT NewtonLoopTLM
+                    END IF
+                ELSE ! Non-convergence of Newton: Theta too large
+                    EXIT NewtonLoopTLM
+                END IF
+            END IF
+            NewtonIncrementOld = NewtonIncrement
+	    END IF !(TLMNewtonEst)
+	    
+            ! Update solution: Z_tlm(:) <-- Z_tlm(:)+DZ(:)
+            CALL WAXPY(N,ONE,DZ,1,Z_tlm(1,istage,itlm),1) 
+            
+            ! Check error in Newton iterations
+            IF (TLMNewtonEst) THEN
+               NewtonDone = (NewtonRate*NewtonIncrement <= NewtonTol)
+               IF (NewtonDone) EXIT NewtonLoopTLM
+	    ELSE
+  	       ! Minimum number of iterations same as FWD iterations
+               IF (NewtonIterTLM>=saveNiter) EXIT NewtonLoopTLM
+	    END IF
+            
+            END DO NewtonLoopTLM
+            
+            IF ((TLMNewtonEst) .AND. (.NOT.NewtonDone)) THEN
+                 !CALL RK_ErrorMsg(-12,T,H,Ierr);
+                 H = Fac*H; Reject=.TRUE.
+                 SkipJac = .TRUE.; SkipLU = .FALSE.
+                 CYCLE Tloop
+            END IF
+
+      END DO TlmLoop
+!~~~> End of simplified Newton iterations for TLM
+
+    END IF DirTLM
+
+   END DO stages
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Error estimation 
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      ISTATUS(Nstp) = ISTATUS(Nstp) + 1
+      CALL Set2zero(N,Yerr)
+      DO i = 1,rkS
+         IF (rkE(i)/=ZERO) CALL WAXPY(N,rkE(i),Z(1,i),1,Yerr,1)
+      END DO  
+
+      CALL SDIRK_Solve ( H, N, E, IP, IER, Yerr )
+      CALL SDIRK_ErrorNorm(N, Yerr, SCAL, Err)
+
+      IF (TLMtruncErr) THEN
+        CALL Set2zero(NVAR*NTLM,Yerr_tlm)
+        DO itlm=1,NTLM
+          DO j=1,rkS  
+            IF (rkE(j) /= ZERO) CALL WAXPY(N,rkE(j),Z_tlm(1,j,itlm),1,Yerr_tlm(1,itlm),1)
+          END DO 
+	  CALL SDIRK_Solve (H, N, E, IP, IER, Yerr_tlm(1,itlm))
+        END DO
+        CALL SDIRK_ErrorNorm_tlm(N,NTLM, Yerr_tlm, Err)
+      END IF
+
+!~~~> Computation of new step size Hnew
+      Fac  = FacSafe*(Err)**(-ONE/rkELO)
+      Fac  = MAX(FacMin,MIN(FacMax,Fac))
+      Hnew = H*Fac
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Accept/Reject step
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+accept: IF ( Err < ONE ) THEN !~~~> Step is accepted
+
+         FirstStep=.FALSE.
+         ISTATUS(Nacc) = ISTATUS(Nacc) + 1
+
+!~~~> Update time and solution
+         T  =  T + H
+         ! Y(:) <-- Y(:) + Sum_j rkD(j)*Z_j(:)
+         DO i = 1,rkS 
+            IF (rkD(i)/=ZERO) THEN
+                 CALL WAXPY(N,rkD(i),Z(1,i),1,Y,1)
+                 DO itlm = 1, NTLM
+                   CALL WAXPY(N,rkD(i),Z_tlm(1,i,itlm),1,Y_tlm(1,itlm),1)
+                 END DO  
+            END IF     
+         END DO  
+       
+!~~~> Update scaling coefficients
+         CALL SDIRK_ErrorScale(N, ITOL, AbsTol, RelTol, Y, SCAL)
+
+!~~~> Next time step
+         Hnew = Tdirection*MIN(ABS(Hnew),Hmax)
+         ! Last T and H
+         RSTATUS(Ntexit) = T
+         RSTATUS(Nhexit) = H
+         RSTATUS(Nhnew)  = Hnew
+         ! No step increase after a rejection
+         IF (Reject) Hnew = Tdirection*MIN(ABS(Hnew),ABS(H))
+         Reject = .FALSE.
+         IF ((T+Hnew/Qmin-Tfinal)*Tdirection > ZERO) THEN
+            H = Tfinal-T
+         ELSE
+            Hratio=Hnew/H
+            ! If step not changed too much keep Jacobian and reuse LU
+            SkipLU = ( (Theta <= ThetaMin) .AND. (Hratio >= Qmin) &
+                                     .AND. (Hratio <= Qmax) )
+            ! For TLM: do not skip LU (decrease TLM error)
+   	    SkipLU = .FALSE.
+            IF (.NOT.SkipLU) H = Hnew
+         END IF
+         ! If convergence is fast enough, do not update Jacobian
+!         SkipJac = (Theta <= ThetaMin)
+         SkipJac = .FALSE.
+
+      ELSE accept !~~~> Step is rejected
+
+         IF (FirstStep .OR. Reject) THEN
+             H = FacRej*H
+         ELSE
+             H = Hnew
+         END IF
+         Reject = .TRUE.
+         SkipJac = .TRUE.
+         SkipLU  = .FALSE. 
+         IF (ISTATUS(Nacc) >= 1) ISTATUS(Nrej) = ISTATUS(Nrej) + 1
+         
+      END IF accept
+      
+      END DO Tloop
+
+      ! Successful return
+      Ierr  = 1
+  
+      END SUBROUTINE SDIRK_IntegratorTLM
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE SDIRK_ErrorScale(N, ITOL, AbsTol, RelTol, Y, SCAL)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      INTEGER :: N, i, ITOL
+      KPP_REAL :: AbsTol(NVAR), RelTol(NVAR), &
+                       Y(NVAR), SCAL(NVAR)
+      IF (ITOL == 0) THEN
+        DO i=1,N
+          SCAL(i) = ONE / ( AbsTol(1)+RelTol(1)*ABS(Y(i)) )
+        END DO
+      ELSE
+        DO i=1,N
+          SCAL(i) = ONE / ( AbsTol(i)+RelTol(i)*ABS(Y(i)) )
+        END DO
+      END IF
+      END SUBROUTINE SDIRK_ErrorScale
+      
+      
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE SDIRK_ErrorNorm(N, Y, SCAL, Err)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!      
+      INTEGER :: i, N
+      KPP_REAL :: Y(N), SCAL(N), Err      
+      Err = ZERO
+      DO i=1,N
+           Err = Err+(Y(i)*SCAL(i))**2
+      END DO
+      Err = MAX( SQRT(Err/DBLE(N)), 1.0d-10 )
+!
+      END SUBROUTINE SDIRK_ErrorNorm
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE SDIRK_ErrorNorm_tlm(N,NTLM, Y_tlm, FWD_Err)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!      
+      INTEGER :: itlm, NTLM, N
+      KPP_REAL :: Y_tlm(N,NTLM), SCAL_tlm(N), FWD_Err, Err  
+      
+      DO itlm=1,NTLM
+        CALL SDIRK_ErrorScale(N,ITOL,AbsTol_tlm(1,itlm),RelTol_tlm(1,itlm), &
+               Y_tlm(1,itlm),SCAL_tlm)
+	CALL SDIRK_ErrorNorm(N, Y_tlm(1,itlm), SCAL_tlm, Err)
+	FWD_Err = MAX(FWD_Err, Err)
+      END DO
+!
+      END SUBROUTINE SDIRK_ErrorNorm_tlm
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE SDIRK_ErrorMsg(Code,T,H,Ierr)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!    Handles all error messages
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+   KPP_REAL, INTENT(IN) :: T, H
+   INTEGER, INTENT(IN)  :: Code
+   INTEGER, INTENT(OUT) :: Ierr
+
+   Ierr = Code
+   PRINT * , &
+     'Forced exit from SDIRK due to the following error:'
+
+   SELECT CASE (Code)
+    CASE (-1)
+      PRINT * , '--> Improper value for maximal no of steps'
+    CASE (-2)
+      PRINT * , '--> Improper value for maximal no of Newton iterations'
+    CASE (-3)
+      PRINT * , '--> Hmin/Hmax/Hstart must be positive'
+    CASE (-4)
+      PRINT * , '--> FacMin/FacMax/FacRej must be positive'
+    CASE (-5)
+      PRINT * , '--> Improper tolerance values'
+    CASE (-6)
+      PRINT * , '--> No of steps exceeds maximum bound'
+    CASE (-7)
+      PRINT * , '--> Step size too small: T + 10*H = T', &
+            ' or H < Roundoff'
+    CASE (-8)
+      PRINT * , '--> Matrix is repeatedly singular'
+    CASE DEFAULT
+      PRINT *, 'Unknown Error code: ', Code
+   END SELECT
+
+   PRINT *, "T=", T, "and H=", H
+
+ END SUBROUTINE SDIRK_ErrorMsg
+      
+      
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE SDIRK_PrepareMatrix ( H, T, Y, FJAC, &
+                   SkipJac, SkipLU, E, IP, Reject, ISING )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Compute the matrix E = I - 1/(H*Gamma)*Jac, and its decomposition
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+     
+      IMPLICIT NONE
+      
+      KPP_REAL, INTENT(INOUT) :: H
+      KPP_REAL, INTENT(IN)    :: T, Y(NVAR)
+      LOGICAL, INTENT(INOUT)       :: SkipJac,SkipLU,Reject
+      INTEGER, INTENT(OUT)         :: ISING, IP(NVAR)
+#ifdef FULL_ALGEBRA
+      KPP_REAL, INTENT(INOUT) :: FJAC(NVAR,NVAR)
+      KPP_REAL, INTENT(OUT)   :: E(NVAR,NVAR)
+#else
+      KPP_REAL, INTENT(INOUT) :: FJAC(LU_NONZERO)
+      KPP_REAL, INTENT(OUT)   :: E(LU_NONZERO)
+#endif
+      KPP_REAL                :: HGammaInv
+      INTEGER                      :: i, j, ConsecutiveSng
+
+      ConsecutiveSng = 0
+      ISING = 1
+      
+Hloop: DO WHILE (ISING /= 0)
+      
+      HGammaInv = ONE/(H*rkGamma)
+
+!~~~>  Compute the Jacobian
+!      IF (SkipJac) THEN
+!          SkipJac = .FALSE.
+!      ELSE
+      IF (.NOT. SkipJac) THEN
+          CALL JAC_CHEM( T, Y, FJAC )
+          ISTATUS(Njac) = ISTATUS(Njac) + 1
+      END IF  
+      
+#ifdef FULL_ALGEBRA
+      DO j=1,NVAR
+         DO i=1,NVAR
+            E(i,j) = -FJAC(i,j)
+         END DO
+         E(j,j) = E(j,j)+HGammaInv
+      END DO
+      CALL DGETRF( NVAR, NVAR, E, NVAR, IP, ISING )
+#else
+      DO i = 1,LU_NONZERO
+            E(i) = -FJAC(i)
+      END DO
+      DO i = 1,NVAR
+          j = LU_DIAG(i); E(j) = E(j) + HGammaInv
+      END DO
+      CALL KppDecomp ( E, ISING)
+      IP(1) = 1
+#endif
+      ISTATUS(Ndec) = ISTATUS(Ndec) + 1
+
+      IF (ISING /= 0) THEN
+          WRITE (6,*) ' MATRIX IS SINGULAR, ISING=',ISING,' T=',T,' H=',H
+          ISTATUS(Nsng) = ISTATUS(Nsng) + 1; ConsecutiveSng = ConsecutiveSng + 1
+          IF (ConsecutiveSng >= 6) RETURN ! Failure
+          H = 0.5d0*H
+          SkipJac = .TRUE.
+          SkipLU  = .FALSE.
+          Reject  = .TRUE.
+      END IF
+      
+      END DO Hloop
+
+      END SUBROUTINE SDIRK_PrepareMatrix
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE SDIRK_Solve ( H, N, E, IP, ISING, RHS )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~>  Solves the system (H*Gamma-Jac)*x = R
+!      using the LU decomposition of E = I - 1/(H*Gamma)*Jac
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      IMPLICIT NONE
+      INTEGER, INTENT(IN)       :: N, IP(N), ISING
+      KPP_REAL, INTENT(IN) :: H
+#ifdef FULL_ALGEBRA
+      KPP_REAL, INTENT(IN) :: E(NVAR,NVAR)
+#else
+      KPP_REAL, INTENT(IN) :: E(LU_NONZERO)
+#endif
+      KPP_REAL, INTENT(INOUT) :: RHS(N)
+      KPP_REAL                :: HGammaInv
+      
+      HGammaInv = ONE/(H*rkGamma)
+      CALL WSCAL(N,HGammaInv,RHS,1)
+#ifdef FULL_ALGEBRA  
+      CALL DGETRS( 'N', N, 1, E, N, IP, RHS, N, ISING )
+#else
+      CALL KppSolve(E, RHS)
+#endif
+      ISTATUS(Nsol) = ISTATUS(Nsol) + 1
+ 
+      END SUBROUTINE SDIRK_Solve
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE Sdirk4a
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      sdMethod = S4A
+! Number of stages
+      rkS = 5
+
+! Method coefficients
+      rkGamma = .2666666666666666666666666666666667d0
+
+      rkA(1,1) = .2666666666666666666666666666666667d0
+      rkA(2,1) = .5000000000000000000000000000000000d0
+      rkA(2,2) = .2666666666666666666666666666666667d0
+      rkA(3,1) = .3541539528432732316227461858529820d0
+      rkA(3,2) = -.5415395284327323162274618585298197d-1
+      rkA(3,3) = .2666666666666666666666666666666667d0
+      rkA(4,1) = .8515494131138652076337791881433756d-1
+      rkA(4,2) = -.6484332287891555171683963466229754d-1
+      rkA(4,3) = .7915325296404206392428857585141242d-1
+      rkA(4,4) = .2666666666666666666666666666666667d0
+      rkA(5,1) = 2.100115700566932777970612055999074d0
+      rkA(5,2) = -.7677800284445976813343102185062276d0
+      rkA(5,3) = 2.399816361080026398094746205273880d0
+      rkA(5,4) = -2.998818699869028161397714709433394d0
+      rkA(5,5) = .2666666666666666666666666666666667d0
+
+      rkB(1)   = 2.100115700566932777970612055999074d0
+      rkB(2)   = -.7677800284445976813343102185062276d0
+      rkB(3)   = 2.399816361080026398094746205273880d0
+      rkB(4)   = -2.998818699869028161397714709433394d0
+      rkB(5)   = .2666666666666666666666666666666667d0
+
+      rkBhat(1)= 2.885264204387193942183851612883390d0
+      rkBhat(2)= -.1458793482962771337341223443218041d0
+      rkBhat(3)= 2.390008682465139866479830743628554d0
+      rkBhat(4)= -4.129393538556056674929560012190140d0
+      rkBhat(5)= 0.d0
+
+      rkC(1)   = .2666666666666666666666666666666667d0
+      rkC(2)   = .7666666666666666666666666666666667d0
+      rkC(3)   = .5666666666666666666666666666666667d0
+      rkC(4)   = .3661315380631796996374935266701191d0
+      rkC(5)   = 1.d0
+
+! Ynew = Yold + h*Sum_i {rkB_i*k_i} = Yold + Sum_i {rkD_i*Z_i}
+      rkD(1)   = 0.d0
+      rkD(2)   = 0.d0
+      rkD(3)   = 0.d0
+      rkD(4)   = 0.d0
+      rkD(5)   = 1.d0
+
+! Err = h * Sum_i {(rkB_i-rkBhat_i)*k_i} = Sum_i {rkE_i*Z_i}
+      rkE(1)   = -.6804000050475287124787034884002302d0
+      rkE(2)   = 1.558961944525217193393931795738823d0
+      rkE(3)   = -13.55893003128907927748632408763868d0
+      rkE(4)   = 15.48522576958521253098585004571302d0
+      rkE(5)   = 1.d0
+
+! Local order of Err estimate
+      rkElo    = 4
+
+! h*Sum_j {rkA_ij*k_j} = Sum_j {rkTheta_ij*Z_j}
+      rkTheta(2,1) = 1.875000000000000000000000000000000d0
+      rkTheta(3,1) = 1.708847304091539528432732316227462d0
+      rkTheta(3,2) = -.2030773231622746185852981969486824d0
+      rkTheta(4,1) = .2680325578937783958847157206823118d0
+      rkTheta(4,2) = -.1828840955527181631794050728644549d0
+      rkTheta(4,3) = .2968246986151577397160821594427966d0
+      rkTheta(5,1) = .9096171815241460655379433581446771d0
+      rkTheta(5,2) = -3.108254967778352416114774430509465d0
+      rkTheta(5,3) = 12.33727431701306195581826123274001d0
+      rkTheta(5,4) = -11.24557012450885560524143016037523d0
+
+! Starting value for Newton iterations: Z_i^0 = Sum_j {rkAlpha_ij*Z_j}
+      rkAlpha(2,1) = 2.875000000000000000000000000000000d0
+      rkAlpha(3,1) = .8500000000000000000000000000000000d0
+      rkAlpha(3,2) = .4434782608695652173913043478260870d0
+      rkAlpha(4,1) = .7352046091658870564637910527807370d0
+      rkAlpha(4,2) = -.9525565003057343527941920657462074d-1
+      rkAlpha(4,3) = .4290111305453813852259481840631738d0
+      rkAlpha(5,1) = -16.10898993405067684831655675112808d0
+      rkAlpha(5,2) = 6.559571569643355712998131800797873d0
+      rkAlpha(5,3) = -15.90772144271326504260996815012482d0
+      rkAlpha(5,4) = 25.34908987169226073668861694892683d0
+               
+!~~~> Coefficients for continuous solution
+!          rkD(1,1)= 24.74416644927758d0
+!          rkD(1,2)= -4.325375951824688d0
+!          rkD(1,3)= 41.39683763286316d0
+!          rkD(1,4)= -61.04144619901784d0
+!          rkD(1,5)= -3.391332232917013d0
+!          rkD(2,1)= -51.98245719616925d0
+!          rkD(2,2)= 10.52501981094525d0
+!          rkD(2,3)= -154.2067922191855d0
+!          rkD(2,4)= 214.3082125319825d0
+!          rkD(2,5)= 14.71166018088679d0
+!          rkD(3,1)= 33.14347947522142d0
+!          rkD(3,2)= -19.72986789558523d0
+!          rkD(3,3)= 230.4878502285804d0
+!          rkD(3,4)= -287.6629744338197d0
+!          rkD(3,5)= -18.99932366302254d0
+!          rkD(4,1)= -5.905188728329743d0
+!          rkD(4,2)= 13.53022403646467d0
+!          rkD(4,3)= -117.6778956422581d0
+!          rkD(4,4)= 134.3962081008550d0
+!          rkD(4,5)= 8.678995715052762d0
+!
+!         DO i=1,4  ! CONTi <-- Sum_j rkD(i,j)*Zj
+!           CALL Set2zero(N,CONT(1,i))
+!           DO j = 1,rkS
+!             CALL WAXPY(N,rkD(i,j),Z(1,j),1,CONT(1,i),1)
+!           END DO
+!         END DO
+          
+          rkELO = 4.0d0
+          
+      END SUBROUTINE Sdirk4a
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE Sdirk4b
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      sdMethod = S4B
+! Number of stages
+      rkS = 5
+
+! Method coefficients
+      rkGamma = .25d0
+
+      rkA(1,1) = 0.25d0
+      rkA(2,1) = 0.5d00
+      rkA(2,2) = 0.25d0
+      rkA(3,1) = 0.34d0
+      rkA(3,2) =-0.40d-1
+      rkA(3,3) = 0.25d0
+      rkA(4,1) = 0.2727941176470588235294117647058824d0
+      rkA(4,2) =-0.5036764705882352941176470588235294d-1
+      rkA(4,3) = 0.2757352941176470588235294117647059d-1
+      rkA(4,4) = 0.25d0
+      rkA(5,1) = 1.041666666666666666666666666666667d0
+      rkA(5,2) =-1.020833333333333333333333333333333d0
+      rkA(5,3) = 7.812500000000000000000000000000000d0
+      rkA(5,4) =-7.083333333333333333333333333333333d0
+      rkA(5,5) = 0.25d0
+
+      rkB(1)   =  1.041666666666666666666666666666667d0
+      rkB(2)   = -1.020833333333333333333333333333333d0
+      rkB(3)   =  7.812500000000000000000000000000000d0
+      rkB(4)   = -7.083333333333333333333333333333333d0
+      rkB(5)   =  0.250000000000000000000000000000000d0
+
+      rkBhat(1)=  1.069791666666666666666666666666667d0
+      rkBhat(2)= -0.894270833333333333333333333333333d0
+      rkBhat(3)=  7.695312500000000000000000000000000d0
+      rkBhat(4)= -7.083333333333333333333333333333333d0
+      rkBhat(5)=  0.212500000000000000000000000000000d0
+
+      rkC(1)   = 0.25d0
+      rkC(2)   = 0.75d0
+      rkC(3)   = 0.55d0
+      rkC(4)   = 0.50d0
+      rkC(5)   = 1.00d0
+
+! Ynew = Yold + h*Sum_i {rkB_i*k_i} = Yold + Sum_i {rkD_i*Z_i}
+      rkD(1)   = 0.0d0
+      rkD(2)   = 0.0d0
+      rkD(3)   = 0.0d0
+      rkD(4)   = 0.0d0
+      rkD(5)   = 1.0d0
+
+! Err = h * Sum_i {(rkB_i-rkBhat_i)*k_i} = Sum_i {rkE_i*Z_i}
+      rkE(1)   =  0.5750d0
+      rkE(2)   =  0.2125d0
+      rkE(3)   = -4.6875d0
+      rkE(4)   =  4.2500d0
+      rkE(5)   =  0.1500d0
+
+! Local order of Err estimate
+      rkElo    = 4
+
+! h*Sum_j {rkA_ij*k_j} = Sum_j {rkTheta_ij*Z_j}
+      rkTheta(2,1) = 2.d0
+      rkTheta(3,1) = 1.680000000000000000000000000000000d0
+      rkTheta(3,2) = -.1600000000000000000000000000000000d0
+      rkTheta(4,1) = 1.308823529411764705882352941176471d0
+      rkTheta(4,2) = -.1838235294117647058823529411764706d0
+      rkTheta(4,3) = 0.1102941176470588235294117647058824d0
+      rkTheta(5,1) = -3.083333333333333333333333333333333d0
+      rkTheta(5,2) = -4.291666666666666666666666666666667d0
+      rkTheta(5,3) =  34.37500000000000000000000000000000d0
+      rkTheta(5,4) = -28.33333333333333333333333333333333d0
+
+! Starting value for Newton iterations: Z_i^0 = Sum_j {rkAlpha_ij*Z_j}
+      rkAlpha(2,1) = 3.
+      rkAlpha(3,1) = .8800000000000000000000000000000000d0
+      rkAlpha(3,2) = .4400000000000000000000000000000000d0
+      rkAlpha(4,1) = .1666666666666666666666666666666667d0
+      rkAlpha(4,2) = -.8333333333333333333333333333333333d-1
+      rkAlpha(4,3) = .9469696969696969696969696969696970d0
+      rkAlpha(5,1) = -6.d0
+      rkAlpha(5,2) = 9.d0
+      rkAlpha(5,3) = -56.81818181818181818181818181818182d0
+      rkAlpha(5,4) = 54.d0
+      
+      END SUBROUTINE Sdirk4b
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE Sdirk2a
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      sdMethod = S2A
+! Number of stages
+      rkS = 2
+
+! Method coefficients
+      rkGamma = .2928932188134524755991556378951510d0
+
+      rkA(1,1) = .2928932188134524755991556378951510d0
+      rkA(2,1) = .7071067811865475244008443621048490d0
+      rkA(2,2) = .2928932188134524755991556378951510d0
+
+      rkB(1)   = .7071067811865475244008443621048490d0
+      rkB(2)   = .2928932188134524755991556378951510d0
+
+      rkBhat(1)= .6666666666666666666666666666666667d0
+      rkBhat(2)= .3333333333333333333333333333333333d0
+
+      rkC(1)   = 0.292893218813452475599155637895151d0
+      rkC(2)   = 1.0d0
+
+! Ynew = Yold + h*Sum_i {rkB_i*k_i} = Yold + Sum_i {rkD_i*Z_i}
+      rkD(1)   = 0.0d0
+      rkD(2)   = 1.0d0
+
+! Err = h * Sum_i {(rkB_i-rkBhat_i)*k_i} = Sum_i {rkE_i*Z_i}
+      rkE(1)   =  0.4714045207910316829338962414032326d0
+      rkE(2)   = -0.1380711874576983496005629080698993d0
+
+! Local order of Err estimate
+      rkElo    = 2
+
+! h*Sum_j {rkA_ij*k_j} = Sum_j {rkTheta_ij*Z_j}
+      rkTheta(2,1) = 2.414213562373095048801688724209698d0
+
+! Starting value for Newton iterations: Z_i^0 = Sum_j {rkAlpha_ij*Z_j}
+      rkAlpha(2,1) = 3.414213562373095048801688724209698d0
+          
+      END SUBROUTINE Sdirk2a
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE Sdirk2b
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      sdMethod = S2B
+! Number of stages
+      rkS      = 2
+
+! Method coefficients
+      rkGamma  = 1.707106781186547524400844362104849d0
+
+      rkA(1,1) = 1.707106781186547524400844362104849d0
+      rkA(2,1) = -.707106781186547524400844362104849d0
+      rkA(2,2) = 1.707106781186547524400844362104849d0
+
+      rkB(1)   = -.707106781186547524400844362104849d0
+      rkB(2)   = 1.707106781186547524400844362104849d0
+
+      rkBhat(1)= .6666666666666666666666666666666667d0
+      rkBhat(2)= .3333333333333333333333333333333333d0
+
+      rkC(1)   = 1.707106781186547524400844362104849d0
+      rkC(2)   = 1.0d0
+
+! Ynew = Yold + h*Sum_i {rkB_i*k_i} = Yold + Sum_i {rkD_i*Z_i}
+      rkD(1)   = 0.0d0
+      rkD(2)   = 1.0d0
+
+! Err = h * Sum_i {(rkB_i-rkBhat_i)*k_i} = Sum_i {rkE_i*Z_i}
+      rkE(1)   = -.4714045207910316829338962414032326d0
+      rkE(2)   =  .8047378541243650162672295747365659d0
+
+! Local order of Err estimate
+      rkElo    = 2
+
+! h*Sum_j {rkA_ij*k_j} = Sum_j {rkTheta_ij*Z_j}
+      rkTheta(2,1) = -.414213562373095048801688724209698d0
+
+! Starting value for Newton iterations: Z_i^0 = Sum_j {rkAlpha_ij*Z_j}
+      rkAlpha(2,1) = .5857864376269049511983112757903019d0
+      
+      END SUBROUTINE Sdirk2b
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE Sdirk3a
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      sdMethod = S3A
+! Number of stages
+      rkS = 3
+
+! Method coefficients
+      rkGamma = .2113248654051871177454256097490213d0
+
+      rkA(1,1) = .2113248654051871177454256097490213d0
+      rkA(2,1) = .2113248654051871177454256097490213d0
+      rkA(2,2) = .2113248654051871177454256097490213d0
+      rkA(3,1) = .2113248654051871177454256097490213d0
+      rkA(3,2) = .5773502691896257645091487805019573d0
+      rkA(3,3) = .2113248654051871177454256097490213d0
+
+      rkB(1)   = .2113248654051871177454256097490213d0
+      rkB(2)   = .5773502691896257645091487805019573d0
+      rkB(3)   = .2113248654051871177454256097490213d0
+
+      rkBhat(1)= .2113248654051871177454256097490213d0
+      rkBhat(2)= .6477918909913548037576239837516312d0
+      rkBhat(3)= .1408832436034580784969504064993475d0
+
+      rkC(1)   = .2113248654051871177454256097490213d0
+      rkC(2)   = .4226497308103742354908512194980427d0
+      rkC(3)   = 1.d0
+
+! Ynew = Yold + h*Sum_i {rkB_i*k_i} = Yold + Sum_i {rkD_i*Z_i}
+      rkD(1)   = 0.d0
+      rkD(2)   = 0.d0
+      rkD(3)   = 1.d0
+
+! Err = h * Sum_i {(rkB_i-rkBhat_i)*k_i} = Sum_i {rkE_i*Z_i}
+      rkE(1)   =  0.9106836025229590978424821138352906d0
+      rkE(2)   = -1.244016935856292431175815447168624d0
+      rkE(3)   =  0.3333333333333333333333333333333333d0
+
+! Local order of Err estimate
+      rkElo    = 2
+
+! h*Sum_j {rkA_ij*k_j} = Sum_j {rkTheta_ij*Z_j}
+      rkTheta(2,1) =  1.0d0
+      rkTheta(3,1) = -1.732050807568877293527446341505872d0
+      rkTheta(3,2) =  2.732050807568877293527446341505872d0
+
+! Starting value for Newton iterations: Z_i^0 = Sum_j {rkAlpha_ij*Z_j}
+      rkAlpha(2,1) =   2.0d0
+      rkAlpha(3,1) = -12.92820323027550917410978536602349d0
+      rkAlpha(3,2) =   8.83012701892219323381861585376468d0
+
+      END SUBROUTINE Sdirk3a
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   END SUBROUTINE SdirkTLM ! AND ALL ITS INTERNAL PROCEDURES
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   SUBROUTINE FUN_CHEM( T, Y, P )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      USE KPP_ROOT_Parameters, ONLY: NVAR
+      USE KPP_ROOT_Global, ONLY: TIME, FIX, RCONST
+      USE KPP_ROOT_Function, ONLY: Fun
+      USE KPP_ROOT_Rates, ONLY: Update_SUN, Update_RCONST, Update_PHOTO
+
+      KPP_REAL :: T, Told
+      KPP_REAL :: Y(NVAR), P(NVAR)
+      
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+      
+      CALL Fun( Y, FIX, RCONST, P )
+      
+      TIME = Told
+      
+    END SUBROUTINE FUN_CHEM
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    SUBROUTINE JAC_CHEM( T, Y, JV )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+      USE KPP_ROOT_Parameters, ONLY: NVAR, LU_NONZERO
+      USE KPP_ROOT_Global, ONLY: TIME, FIX, RCONST
+      USE KPP_ROOT_Jacobian, ONLY: Jac_SP,LU_IROW,LU_ICOL
+      USE KPP_ROOT_Rates, ONLY: Update_SUN, Update_RCONST, Update_PHOTO
+  
+      KPP_REAL :: T, Told
+      KPP_REAL :: Y(NVAR)
+#ifdef FULL_ALGEBRA
+      KPP_REAL :: JS(LU_NONZERO), JV(NVAR,NVAR)
+      INTEGER :: i, j
+#else
+      KPP_REAL :: JV(LU_NONZERO)
+#endif
+ 
+      Told = TIME
+      TIME = T
+      CALL Update_SUN()
+      CALL Update_RCONST()
+
+#ifdef FULL_ALGEBRA
+      CALL Jac_SP(Y, FIX, RCONST, JS)
+      DO j=1,NVAR
+         DO i=1,NVAR
+           JV(i,j) = 0.0D0
+         END DO
+      END DO
+      DO i=1,LU_NONZERO
+         JV(LU_IROW(i),LU_ICOL(i)) = JS(i)
+      END DO
+#else
+      CALL Jac_SP(Y, FIX, RCONST, JV)
+#endif
+      TIME = Told
+
+    END SUBROUTINE JAC_CHEM
+
+END MODULE KPP_ROOT_Integrator
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/tau_leap.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/tau_leap.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/tau_leap.def	(revision 2696)
@@ -0,0 +1,10 @@
+ 
+#FUNCTION   aggregate
+#JACOBIAN   SPARSE_LU_ROW
+#DOUBLE     on 
+#STOCHASTIC on 
+#INTFILE    tau_leap
+
+
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/tau_leap.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/tau_leap.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/tau_leap.f90	(revision 2696)
@@ -0,0 +1,1688 @@
+MODULE KPP_ROOT_Random
+! A module for random number generation from the following distributions:
+!
+!     Distribution                    Function/subroutine name
+!
+!     Normal (Gaussian)               random_normal
+!     Gamma                           random_gamma
+!     Chi-squared                     random_chisq
+!     Exponential                     random_exponential
+!     Weibull                         random_Weibull
+!     Beta                            random_beta
+!     t                               random_t
+!     Multivariate normal             random_mvnorm
+!     Generalized inverse Gaussian    random_inv_gauss
+!     Poisson                         random_Poisson
+!     Binomial                        random_binomial1   *
+!                                     random_binomial2   *
+!     Negative binomial               random_neg_binomial
+!     von Mises                       random_von_Mises
+!     Cauchy                          random_Cauchy
+!
+!  Generate a random ordering of the integers 1 .. N
+!                                     random_order
+!     Initialize (seed) the uniform random number generator for ANY compiler
+!                                     seed_random_number
+
+!     Lognormal - see note below.
+
+!  ** Two functions are provided for the binomial distribution.
+!  If the parameter values remain constant, it is recommended that the
+!  first function is used (random_binomial1).   If one or both of the
+!  parameters change, use the second function (random_binomial2).
+
+! The compilers own random number generator, SUBROUTINE RANDOM_NUMBER(r),
+! is used to provide a source of uniformly distributed random numbers.
+
+! N.B. At this stage, only one random number is generated at each call to
+!      one of the functions above.
+
+! The module uses the following functions which are included here:
+! bin_prob to calculate a single binomial probability
+! lngamma  to calculate the logarithm to base e of the gamma function
+
+! Some of the code is adapted from Dagpunar's book:
+!     Dagpunar, J. 'Principles of random variate generation'
+!     Clarendon Press, Oxford, 1988.   ISBN 0-19-852202-9
+!
+! In most of Dagpunar's routines, there is a test to see whether the value
+! of one or two floating-point parameters has changed since the last call.
+! These tests have been replaced by using a logical variable FIRST.
+! This should be set to .TRUE. on the first call using new values of the
+! parameters, and .FALSE. if the parameter values are the same as for the
+! previous call.
+
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! Lognormal distribution
+! If X has a lognormal distribution, then log(X) is normally distributed.
+! Here the logarithm is the natural logarithm, that is to base e, sometimes
+! denoted as ln.  To generate random variates from this distribution, generate
+! a random deviate from the normal distribution with mean and variance equal
+! to the mean and variance of the logarithms of X, then take its exponential.
+
+! Relationship between the mean & variance of log(X) and the mean & variance
+! of X, when X has a lognormal distribution.
+! Let m = mean of log(X), and s^2 = variance of log(X)
+! Then
+! mean of X     = exp(m + 0.5s^2)
+! variance of X = (mean(X))^2.[exp(s^2) - 1]
+
+! In the reverse direction (rarely used)
+! variance of log(X) = log[1 + var(X)/(mean(X))^2]
+! mean of log(X)     = log(mean(X) - 0.5var(log(X))
+
+! N.B. The above formulae relate to population parameters; they will only be
+!      approximate if applied to sample values.
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+! Version 1.13, 2 October 2000
+! Changes from version 1.01
+! 1. The random_order, random_Poisson & random_binomial routines have been
+!    replaced with more efficient routines.
+! 2. A routine, seed_random_number, has been added to seed the uniform random
+!    number generator.   This requires input of the required number of seeds
+!    for the particular compiler from a specified I/O unit such as a keyboard.
+! 3. Made compatible with Lahey's ELF90.
+! 4. Marsaglia & Tsang algorithm used for random_gamma when shape parameter > 1.
+! 5. INTENT for array f corrected in random_mvnorm.
+
+!     Author: Alan Miller
+!             CSIRO Division of Mathematical & Information Sciences
+!             Private Bag 10, Clayton South MDC
+!             Clayton 3169, Victoria, Australia
+!     Phone: (+61) 3 9545-8016      Fax: (+61) 3 9545-8080
+!     e-mail: amiller @ bigpond.net.au
+
+IMPLICIT NONE
+REAL, PRIVATE      :: zero = 0.0, half = 0.5, one = 1.0, two = 2.0,   &
+                      vsmall = TINY(1.0), vlarge = HUGE(1.0)
+PRIVATE            :: integral
+INTEGER, PARAMETER :: dp = SELECTED_REAL_KIND(12, 60)
+
+
+CONTAINS
+
+
+FUNCTION random_normal() RESULT(fn_val)
+
+! Adapted from the following Fortran 77 code
+!      ALGORITHM 712, COLLECTED ALGORITHMS FROM ACM.
+!      THIS WORK PUBLISHED IN TRANSACTIONS ON MATHEMATICAL SOFTWARE,
+!      VOL. 18, NO. 4, DECEMBER, 1992, PP. 434-435.
+
+!  The function random_normal() returns a normally distributed pseudo-random
+!  number with zero mean and unit variance.
+
+!  The algorithm uses the ratio of uniforms method of A.J. Kinderman
+!  and J.F. Monahan augmented with quadratic bounding curves.
+
+REAL :: fn_val
+
+!     Local variables
+REAL     :: s = 0.449871, t = -0.386595, a = 0.19600, b = 0.25472,           &
+            r1 = 0.27597, r2 = 0.27846, u, v, x, y, q
+
+!     Generate P = (u,v) uniform in rectangle enclosing acceptance region
+
+DO
+  CALL RANDOM_NUMBER(u)
+  CALL RANDOM_NUMBER(v)
+  v = 1.7156 * (v - half)
+
+!     Evaluate the quadratic form
+  x = u - s
+  y = ABS(v) - t
+  q = x**2 + y*(a*y - b*x)
+
+!     Accept P if inside inner ellipse
+  IF (q < r1) EXIT
+!     Reject P if outside outer ellipse
+  IF (q > r2) CYCLE
+!     Reject P if outside acceptance region
+  IF (v**2 < -4.0*LOG(u)*u**2) EXIT
+END DO
+
+!     Return ratio of P's coordinates as the normal deviate
+fn_val = v/u
+RETURN
+
+END FUNCTION random_normal
+
+
+
+FUNCTION random_gamma(s, first) RESULT(fn_val)
+
+! Adapted from Fortran 77 code from the book:
+!     Dagpunar, J. 'Principles of random variate generation'
+!     Clarendon Press, Oxford, 1988.   ISBN 0-19-852202-9
+
+!     FUNCTION GENERATES A RANDOM GAMMA VARIATE.
+!     CALLS EITHER random_gamma1 (S > 1.0)
+!     OR random_exponential (S = 1.0)
+!     OR random_gamma2 (S < 1.0).
+
+!     S = SHAPE PARAMETER OF DISTRIBUTION (0 < REAL).
+
+REAL, INTENT(IN)    :: s
+LOGICAL, INTENT(IN) :: first
+REAL                :: fn_val
+
+IF (s <= zero) THEN
+  WRITE(*, *) 'SHAPE PARAMETER VALUE MUST BE POSITIVE'
+  STOP
+END IF
+
+IF (s > one) THEN
+  fn_val = random_gamma1(s, first)
+ELSE IF (s < one) THEN
+  fn_val = random_gamma2(s, first)
+ELSE
+  fn_val = random_exponential()
+END IF
+
+RETURN
+END FUNCTION random_gamma
+
+
+
+FUNCTION random_gamma1(s, first) RESULT(fn_val)
+
+! Uses the algorithm in
+! Marsaglia, G. and Tsang, W.W. (2000) `A simple method for generating
+! gamma variables', Trans. om Math. Software (TOMS), vol.26(3), pp.363-372.
+
+! Generates a random gamma deviate for shape parameter s >= 1.
+
+REAL, INTENT(IN)    :: s
+LOGICAL, INTENT(IN) :: first
+REAL                :: fn_val
+
+! Local variables
+REAL, SAVE  :: c, d
+REAL        :: u, v, x
+
+IF (first) THEN
+  d = s - one/3.
+  c = one/SQRT(9.0*d)
+END IF
+
+! Start of main loop
+DO
+
+! Generate v = (1+cx)^3 where x is random normal; repeat if v <= 0.
+
+  DO
+    x = random_normal()
+    v = (one + c*x)**3
+    IF (v > zero) EXIT
+  END DO
+
+! Generate uniform variable U
+
+  CALL RANDOM_NUMBER(u)
+  IF (u < one - 0.0331*x**4) THEN
+    fn_val = d*v
+    EXIT
+  ELSE IF (LOG(u) < half*x**2 + d*(one - v + LOG(v))) THEN
+    fn_val = d*v
+    EXIT
+  END IF
+END DO
+
+RETURN
+END FUNCTION random_gamma1
+
+
+
+FUNCTION random_gamma2(s, first) RESULT(fn_val)
+
+! Adapted from Fortran 77 code from the book:
+!     Dagpunar, J. 'Principles of random variate generation'
+!     Clarendon Press, Oxford, 1988.   ISBN 0-19-852202-9
+
+! FUNCTION GENERATES A RANDOM VARIATE IN [0,INFINITY) FROM
+! A GAMMA DISTRIBUTION WITH DENSITY PROPORTIONAL TO
+! GAMMA2**(S-1) * EXP(-GAMMA2),
+! USING A SWITCHING METHOD.
+
+!    S = SHAPE PARAMETER OF DISTRIBUTION
+!          (REAL < 1.0)
+
+REAL, INTENT(IN)    :: s
+LOGICAL, INTENT(IN) :: first
+REAL                :: fn_val
+
+!     Local variables
+REAL       :: r, x, w
+REAL, SAVE :: a, p, c, uf, vr, d
+
+IF (s <= zero .OR. s >= one) THEN
+  WRITE(*, *) 'SHAPE PARAMETER VALUE OUTSIDE PERMITTED RANGE'
+  STOP
+END IF
+
+IF (first) THEN                        ! Initialization, if necessary
+  a = one - s
+  p = a/(a + s*EXP(-a))
+  IF (s < vsmall) THEN
+    WRITE(*, *) 'SHAPE PARAMETER VALUE TOO SMALL'
+    STOP
+  END IF
+  c = one/s
+  uf = p*(vsmall/a)**s
+  vr = one - vsmall
+  d = a*LOG(a)
+END IF
+
+DO
+  CALL RANDOM_NUMBER(r)
+  IF (r >= vr) THEN
+    CYCLE
+  ELSE IF (r > p) THEN
+    x = a - LOG((one - r)/(one - p))
+    w = a*LOG(x)-d
+  ELSE IF (r > uf) THEN
+    x = a*(r/p)**c
+    w = x
+  ELSE
+    fn_val = zero
+    RETURN
+  END IF
+
+  CALL RANDOM_NUMBER(r)
+  IF (one-r <= w .AND. r > zero) THEN
+    IF (r*(w + one) >= one) CYCLE
+    IF (-LOG(r) <= w) CYCLE
+  END IF
+  EXIT
+END DO
+
+fn_val = x
+RETURN
+
+END FUNCTION random_gamma2
+
+
+
+FUNCTION random_chisq(ndf, first) RESULT(fn_val)
+
+!     Generates a random variate from the chi-squared distribution with
+!     ndf degrees of freedom
+
+INTEGER, INTENT(IN) :: ndf
+LOGICAL, INTENT(IN) :: first
+REAL                :: fn_val
+
+fn_val = two * random_gamma(half*ndf, first)
+RETURN
+
+END FUNCTION random_chisq
+
+
+
+FUNCTION random_exponential() RESULT(fn_val)
+
+! Adapted from Fortran 77 code from the book:
+!     Dagpunar, J. 'Principles of random variate generation'
+!     Clarendon Press, Oxford, 1988.   ISBN 0-19-852202-9
+
+! FUNCTION GENERATES A RANDOM VARIATE IN [0,INFINITY) FROM
+! A NEGATIVE EXPONENTIAL DlSTRIBUTION WlTH DENSITY PROPORTIONAL
+! TO EXP(-random_exponential), USING INVERSION.
+
+REAL  :: fn_val
+
+!     Local variable
+REAL  :: r
+
+DO
+  CALL RANDOM_NUMBER(r)
+  IF (r > zero) EXIT
+END DO
+
+fn_val = -LOG(r)
+RETURN
+
+END FUNCTION random_exponential
+
+
+
+FUNCTION random_Weibull(a) RESULT(fn_val)
+
+!     Generates a random variate from the Weibull distribution with
+!     probability density:
+!                      a
+!               a-1  -x
+!     f(x) = a.x    e
+
+REAL, INTENT(IN) :: a
+REAL             :: fn_val
+
+!     For speed, there is no checking that a is not zero or very small.
+
+fn_val = random_exponential() ** (one/a)
+RETURN
+
+END FUNCTION random_Weibull
+
+
+
+FUNCTION random_beta(aa, bb, first) RESULT(fn_val)
+
+! Adapted from Fortran 77 code from the book:
+!     Dagpunar, J. 'Principles of random variate generation'
+!     Clarendon Press, Oxford, 1988.   ISBN 0-19-852202-9
+
+! FUNCTION GENERATES A RANDOM VARIATE IN [0,1]
+! FROM A BETA DISTRIBUTION WITH DENSITY
+! PROPORTIONAL TO BETA**(AA-1) * (1-BETA)**(BB-1).
+! USING CHENG'S LOG LOGISTIC METHOD.
+
+!     AA = SHAPE PARAMETER FROM DISTRIBUTION (0 < REAL)
+!     BB = SHAPE PARAMETER FROM DISTRIBUTION (0 < REAL)
+
+REAL, INTENT(IN)    :: aa, bb
+LOGICAL, INTENT(IN) :: first
+REAL                :: fn_val
+
+!     Local variables
+REAL, PARAMETER  :: aln4 = 1.3862944
+REAL             :: a, b, g, r, s, x, y, z
+REAL, SAVE       :: d, f, h, t, c
+LOGICAL, SAVE    :: swap
+
+IF (aa <= zero .OR. bb <= zero) THEN
+  WRITE(*, *) 'IMPERMISSIBLE SHAPE PARAMETER VALUE(S)'
+  STOP
+END IF
+
+IF (first) THEN                        ! Initialization, if necessary
+  a = aa
+  b = bb
+  swap = b > a
+  IF (swap) THEN
+    g = b
+    b = a
+    a = g
+  END IF
+  d = a/b
+  f = a+b
+  IF (b > one) THEN
+    h = SQRT((two*a*b - f)/(f - two))
+    t = one
+  ELSE
+    h = b
+    t = one/(one + (a/(vlarge*b))**b)
+  END IF
+  c = a+h
+END IF
+
+DO
+  CALL RANDOM_NUMBER(r)
+  CALL RANDOM_NUMBER(x)
+  s = r*r*x
+  IF (r < vsmall .OR. s <= zero) CYCLE
+  IF (r < t) THEN
+    x = LOG(r/(one - r))/h
+    y = d*EXP(x)
+    z = c*x + f*LOG((one + d)/(one + y)) - aln4
+    IF (s - one > z) THEN
+      IF (s - s*z > one) CYCLE
+      IF (LOG(s) > z) CYCLE
+    END IF
+    fn_val = y/(one + y)
+  ELSE
+    IF (4.0*s > (one + one/d)**f) CYCLE
+    fn_val = one
+  END IF
+  EXIT
+END DO
+
+IF (swap) fn_val = one - fn_val
+RETURN
+END FUNCTION random_beta
+
+
+
+FUNCTION random_t(m) RESULT(fn_val)
+
+! Adapted from Fortran 77 code from the book:
+!     Dagpunar, J. 'Principles of random variate generation'
+!     Clarendon Press, Oxford, 1988.   ISBN 0-19-852202-9
+
+! FUNCTION GENERATES A RANDOM VARIATE FROM A
+! T DISTRIBUTION USING KINDERMAN AND MONAHAN'S RATIO METHOD.
+
+!     M = DEGREES OF FREEDOM OF DISTRIBUTION
+!           (1 <= 1NTEGER)
+
+INTEGER, INTENT(IN) :: m
+REAL                :: fn_val
+
+!     Local variables
+REAL, SAVE      :: s, c, a, f, g
+REAL            :: r, x, v
+
+REAL, PARAMETER :: three = 3.0, four = 4.0, quart = 0.25,   &
+                   five = 5.0, sixteen = 16.0
+INTEGER         :: mm = 0
+
+IF (m < 1) THEN
+  WRITE(*, *) 'IMPERMISSIBLE DEGREES OF FREEDOM'
+  STOP
+END IF
+
+IF (m /= mm) THEN                    ! Initialization, if necessary
+  s = m
+  c = -quart*(s + one)
+  a = four/(one + one/s)**c
+  f = sixteen/a
+  IF (m > 1) THEN
+    g = s - one
+    g = ((s + one)/g)**c*SQRT((s+s)/g)
+  ELSE
+    g = one
+  END IF
+  mm = m
+END IF
+
+DO
+  CALL RANDOM_NUMBER(r)
+  IF (r <= zero) CYCLE
+  CALL RANDOM_NUMBER(v)
+  x = (two*v - one)*g/r
+  v = x*x
+  IF (v > five - a*r) THEN
+    IF (m >= 1 .AND. r*(v + three) > f) CYCLE
+    IF (r > (one + v/s)**c) CYCLE
+  END IF
+  EXIT
+END DO
+
+fn_val = x
+RETURN
+END FUNCTION random_t
+
+
+
+SUBROUTINE random_mvnorm(n, h, d, f, first, x, ier)
+
+! Adapted from Fortran 77 code from the book:
+!     Dagpunar, J. 'Principles of random variate generation'
+!     Clarendon Press, Oxford, 1988.   ISBN 0-19-852202-9
+
+! N.B. An extra argument, ier, has been added to Dagpunar's routine
+
+!     SUBROUTINE GENERATES AN N VARIATE RANDOM NORMAL
+!     VECTOR USING A CHOLESKY DECOMPOSITION.
+
+! ARGUMENTS:
+!        N = NUMBER OF VARIATES IN VECTOR
+!           (INPUT,INTEGER >= 1)
+!     H(J) = J'TH ELEMENT OF VECTOR OF MEANS
+!           (INPUT,REAL)
+!     X(J) = J'TH ELEMENT OF DELIVERED VECTOR
+!           (OUTPUT,REAL)
+!
+!    D(J*(J-1)/2+I) = (I,J)'TH ELEMENT OF VARIANCE MATRIX (J> = I)
+!            (INPUT,REAL)
+!    F((J-1)*(2*N-J)/2+I) = (I,J)'TH ELEMENT OF LOWER TRIANGULAR
+!           DECOMPOSITION OF VARIANCE MATRIX (J <= I)
+!            (OUTPUT,REAL)
+
+!    FIRST = .TRUE. IF THIS IS THE FIRST CALL OF THE ROUTINE
+!    OR IF THE DISTRIBUTION HAS CHANGED SINCE THE LAST CALL OF THE ROUTINE.
+!    OTHERWISE SET TO .FALSE.
+!            (INPUT,LOGICAL)
+
+!    ier = 1 if the input covariance matrix is not +ve definite
+!        = 0 otherwise
+
+INTEGER, INTENT(IN)   :: n
+REAL, INTENT(IN)      :: h(:), d(:)   ! d(n*(n+1)/2)
+REAL, INTENT(IN OUT)  :: f(:)         ! f(n*(n+1)/2)
+REAL, INTENT(OUT)     :: x(:)
+LOGICAL, INTENT(IN)   :: first
+INTEGER, INTENT(OUT)  :: ier
+
+!     Local variables
+INTEGER       :: j, i, m
+REAL          :: y, v
+INTEGER, SAVE :: n2
+
+IF (n < 1) THEN
+  WRITE(*, *) 'SIZE OF VECTOR IS NON POSITIVE'
+  STOP
+END IF
+
+ier = 0
+IF (first) THEN                        ! Initialization, if necessary
+  n2 = 2*n
+  IF (d(1) < zero) THEN
+    ier = 1
+    RETURN
+  END IF
+
+  f(1) = SQRT(d(1))
+  y = one/f(1)
+  DO j = 2,n
+    f(j) = d(1+j*(j-1)/2) * y
+  END DO
+
+  DO i = 2,n
+    v = d(i*(i-1)/2+i)
+    DO m = 1,i-1
+      v = v - f((m-1)*(n2-m)/2+i)**2
+    END DO
+
+    IF (v < zero) THEN
+      ier = 1
+      RETURN
+    END IF
+
+    v = SQRT(v)
+    y = one/v
+    f((i-1)*(n2-i)/2+i) = v
+    DO j = i+1,n
+      v = d(j*(j-1)/2+i)
+      DO m = 1,i-1
+        v = v - f((m-1)*(n2-m)/2+i)*f((m-1)*(n2-m)/2 + j)
+      END DO ! m = 1,i-1
+      f((i-1)*(n2-i)/2 + j) = v*y
+    END DO ! j = i+1,n
+  END DO ! i = 2,n
+END IF
+
+x(1:n) = h(1:n)
+DO j = 1,n
+  y = random_normal()
+  DO i = j,n
+    x(i) = x(i) + f((j-1)*(n2-j)/2 + i) * y
+  END DO ! i = j,n
+END DO ! j = 1,n
+
+RETURN
+END SUBROUTINE random_mvnorm
+
+
+
+FUNCTION random_inv_gauss(h, b, first) RESULT(fn_val)
+
+! Adapted from Fortran 77 code from the book:
+!     Dagpunar, J. 'Principles of random variate generation'
+!     Clarendon Press, Oxford, 1988.   ISBN 0-19-852202-9
+
+! FUNCTION GENERATES A RANDOM VARIATE IN [0,INFINITY] FROM
+! A REPARAMETERISED GENERALISED INVERSE GAUSSIAN (GIG) DISTRIBUTION
+! WITH DENSITY PROPORTIONAL TO  GIG**(H-1) * EXP(-0.5*B*(GIG+1/GIG))
+! USING A RATIO METHOD.
+
+!     H = PARAMETER OF DISTRIBUTION (0 <= REAL)
+!     B = PARAMETER OF DISTRIBUTION (0 < REAL)
+
+REAL, INTENT(IN)    :: h, b
+LOGICAL, INTENT(IN) :: first
+REAL                :: fn_val
+
+!     Local variables
+REAL            :: ym, xm, r, w, r1, r2, x
+REAL, SAVE      :: a, c, d, e
+REAL, PARAMETER :: quart = 0.25
+
+IF (h < zero .OR. b <= zero) THEN
+  WRITE(*, *) 'IMPERMISSIBLE DISTRIBUTION PARAMETER VALUES'
+  STOP
+END IF
+
+IF (first) THEN                        ! Initialization, if necessary
+  IF (h > quart*b*SQRT(vlarge)) THEN
+    WRITE(*, *) 'THE RATIO H:B IS TOO SMALL'
+    STOP
+  END IF
+  e = b*b
+  d = h + one
+  ym = (-d + SQRT(d*d + e))/b
+  IF (ym < vsmall) THEN
+    WRITE(*, *) 'THE VALUE OF B IS TOO SMALL'
+    STOP
+  END IF
+
+  d = h - one
+  xm = (d + SQRT(d*d + e))/b
+  d = half*d
+  e = -quart*b
+  r = xm + one/xm
+  w = xm*ym
+  a = w**(-half*h) * SQRT(xm/ym) * EXP(-e*(r - ym - one/ym))
+  IF (a < vsmall) THEN
+    WRITE(*, *) 'THE VALUE OF H IS TOO LARGE'
+    STOP
+  END IF
+  c = -d*LOG(xm) - e*r
+END IF
+
+DO
+  CALL RANDOM_NUMBER(r1)
+  IF (r1 <= zero) CYCLE
+  CALL RANDOM_NUMBER(r2)
+  x = a*r2/r1
+  IF (x <= zero) CYCLE
+  IF (LOG(r1) < d*LOG(x) + e*(x + one/x) + c) EXIT
+END DO
+
+fn_val = x
+
+RETURN
+END FUNCTION random_inv_gauss
+
+
+
+FUNCTION random_Poisson(mu, first) RESULT(ival)
+!**********************************************************************
+!     Translated to Fortran 90 by Alan Miller from:
+!                           RANLIB
+!
+!     Library of Fortran Routines for Random Number Generation
+!
+!                    Compiled and Written by:
+!
+!                         Barry W. Brown
+!                          James Lovato
+!
+!             Department of Biomathematics, Box 237
+!             The University of Texas, M.D. Anderson Cancer Center
+!             1515 Holcombe Boulevard
+!             Houston, TX      77030
+!
+! This work was supported by grant CA-16672 from the National Cancer Institute.
+
+!                    GENerate POIsson random deviate
+
+!                            Function
+
+! Generates a single random deviate from a Poisson distribution with mean mu.
+
+!                            Arguments
+
+!     mu --> The mean of the Poisson distribution from which
+!            a random deviate is to be generated.
+!                              REAL mu
+
+!                              Method
+
+!     For details see:
+
+!               Ahrens, J.H. and Dieter, U.
+!               Computer Generation of Poisson Deviates
+!               From Modified Normal Distributions.
+!               ACM Trans. Math. Software, 8, 2
+!               (June 1982),163-179
+
+!     TABLES: COEFFICIENTS A0-A7 FOR STEP F. FACTORIALS FACT
+!     COEFFICIENTS A(K) - FOR PX = FK*V*V*SUM(A(K)*V**K)-DEL
+
+!     SEPARATION OF CASES A AND B
+
+!     .. Scalar Arguments ..
+REAL, INTENT(IN)    :: mu
+LOGICAL, INTENT(IN) :: first
+INTEGER             :: ival
+!     ..
+!     .. Local Scalars ..
+REAL          :: b1, b2, c, c0, c1, c2, c3, del, difmuk, e, fk, fx, fy, g,  &
+                 omega, px, py, t, u, v, x, xx
+REAL, SAVE    :: s, d, p, q, p0
+INTEGER       :: j, k, kflag
+LOGICAL, SAVE :: full_init
+INTEGER, SAVE :: l, m
+!     ..
+!     .. Local Arrays ..
+REAL, SAVE    :: pp(35)
+!     ..
+!     .. Data statements ..
+REAL, PARAMETER :: a0 = -.5, a1 = .3333333, a2 = -.2500068, a3 = .2000118,  &
+                   a4 = -.1661269, a5 = .1421878, a6 = -.1384794,   &
+                   a7 = .1250060
+
+REAL, PARAMETER :: fact(10) = (/ 1., 1., 2., 6., 24., 120., 720., 5040.,  &
+                                 40320., 362880. /)
+
+!     ..
+!     .. Executable Statements ..
+IF (mu > 10.0) THEN
+!     C A S E  A. (RECALCULATION OF S, D, L IF MU HAS CHANGED)
+
+  IF (first) THEN
+    s = SQRT(mu)
+    d = 6.0*mu*mu
+
+!             THE POISSON PROBABILITIES PK EXCEED THE DISCRETE NORMAL
+!             PROBABILITIES FK WHENEVER K >= M(MU). L=IFIX(MU-1.1484)
+!             IS AN UPPER BOUND TO M(MU) FOR ALL MU >= 10 .
+
+    l = mu - 1.1484
+    full_init = .false.
+  END IF
+
+
+!     STEP N. NORMAL SAMPLE - random_normal() FOR STANDARD NORMAL DEVIATE
+
+  g = mu + s*random_normal()
+  IF (g > 0.0) THEN
+    ival = g
+
+!     STEP I. IMMEDIATE ACCEPTANCE IF ival IS LARGE ENOUGH
+
+    IF (ival>=l) RETURN
+
+!     STEP S. SQUEEZE ACCEPTANCE - SAMPLE U
+
+    fk = ival
+    difmuk = mu - fk
+    CALL RANDOM_NUMBER(u)
+    IF (d*u >= difmuk*difmuk*difmuk) RETURN
+  END IF
+
+!     STEP P. PREPARATIONS FOR STEPS Q AND H.
+!             (RECALCULATIONS OF PARAMETERS IF NECESSARY)
+!             .3989423=(2*PI)**(-.5)  .416667E-1=1./24.  .1428571=1./7.
+!             THE QUANTITIES B1, B2, C3, C2, C1, C0 ARE FOR THE HERMITE
+!             APPROXIMATIONS TO THE DISCRETE NORMAL PROBABILITIES FK.
+!             C=.1069/MU GUARANTEES MAJORIZATION BY THE 'HAT'-FUNCTION.
+
+  IF (.NOT. full_init) THEN
+    omega = .3989423/s
+    b1 = .4166667E-1/mu
+    b2 = .3*b1*b1
+    c3 = .1428571*b1*b2
+    c2 = b2 - 15.*c3
+    c1 = b1 - 6.*b2 + 45.*c3
+    c0 = 1. - b1 + 3.*b2 - 15.*c3
+    c = .1069/mu
+    full_init = .true.
+  END IF
+
+  IF (g < 0.0) GO TO 50
+
+!             'SUBROUTINE' F IS CALLED (KFLAG=0 FOR CORRECT RETURN)
+
+  kflag = 0
+  GO TO 70
+
+!     STEP Q. QUOTIENT ACCEPTANCE (RARE CASE)
+
+  40 IF (fy-u*fy <= py*EXP(px-fx)) RETURN
+
+!     STEP E. EXPONENTIAL SAMPLE - random_exponential() FOR STANDARD EXPONENTIAL
+!             DEVIATE E AND SAMPLE T FROM THE LAPLACE 'HAT'
+!             (IF T <= -.6744 THEN PK < FK FOR ALL MU >= 10.)
+
+  50 e = random_exponential()
+  CALL RANDOM_NUMBER(u)
+  u = u + u - one
+  t = 1.8 + SIGN(e, u)
+  IF (t <= (-.6744)) GO TO 50
+  ival = mu + s*t
+  fk = ival
+  difmuk = mu - fk
+
+!             'SUBROUTINE' F IS CALLED (KFLAG=1 FOR CORRECT RETURN)
+
+  kflag = 1
+  GO TO 70
+
+!     STEP H. HAT ACCEPTANCE (E IS REPEATED ON REJECTION)
+
+  60 IF (c*ABS(u) > py*EXP(px+e) - fy*EXP(fx+e)) GO TO 50
+  RETURN
+
+!     STEP F. 'SUBROUTINE' F. CALCULATION OF PX, PY, FX, FY.
+!             CASE ival < 10 USES FACTORIALS FROM TABLE FACT
+
+  70 IF (ival>=10) GO TO 80
+  px = -mu
+  py = mu**ival/fact(ival+1)
+  GO TO 110
+
+!             CASE ival >= 10 USES POLYNOMIAL APPROXIMATION
+!             A0-A7 FOR ACCURACY WHEN ADVISABLE
+!             .8333333E-1=1./12.  .3989423=(2*PI)**(-.5)
+
+  80 del = .8333333E-1/fk
+  del = del - 4.8*del*del*del
+  v = difmuk/fk
+  IF (ABS(v)>0.25) THEN
+    px = fk*LOG(one + v) - difmuk - del
+  ELSE
+    px = fk*v*v* (((((((a7*v+a6)*v+a5)*v+a4)*v+a3)*v+a2)*v+a1)*v+a0) - del
+  END IF
+  py = .3989423/SQRT(fk)
+  110 x = (half - difmuk)/s
+  xx = x*x
+  fx = -half*xx
+  fy = omega* (((c3*xx + c2)*xx + c1)*xx + c0)
+  IF (kflag <= 0) GO TO 40
+  GO TO 60
+
+!---------------------------------------------------------------------------
+!     C A S E  B.    mu < 10
+!     START NEW TABLE AND CALCULATE P0 IF NECESSARY
+
+ELSE
+  IF (first) THEN
+    m = MAX(1, INT(mu))
+    l = 0
+    p = EXP(-mu)
+    q = p
+    p0 = p
+  END IF
+
+!     STEP U. UNIFORM SAMPLE FOR INVERSION METHOD
+
+  DO
+    CALL RANDOM_NUMBER(u)
+    ival = 0
+    IF (u <= p0) RETURN
+
+!     STEP T. TABLE COMPARISON UNTIL THE END PP(L) OF THE
+!             PP-TABLE OF CUMULATIVE POISSON PROBABILITIES
+!             (0.458=PP(9) FOR MU=10)
+
+    IF (l == 0) GO TO 150
+    j = 1
+    IF (u > 0.458) j = MIN(l, m)
+    DO k = j, l
+      IF (u <= pp(k)) GO TO 180
+    END DO
+    IF (l == 35) CYCLE
+
+!     STEP C. CREATION OF NEW POISSON PROBABILITIES P
+!             AND THEIR CUMULATIVES Q=PP(K)
+
+    150 l = l + 1
+    DO k = l, 35
+      p = p*mu / k
+      q = q + p
+      pp(k) = q
+      IF (u <= q) GO TO 170
+    END DO
+    l = 35
+  END DO
+
+  170 l = k
+  180 ival = k
+  RETURN
+END IF
+
+RETURN
+END FUNCTION random_Poisson
+
+
+
+FUNCTION random_binomial1(n, p, first) RESULT(ival)
+
+! FUNCTION GENERATES A RANDOM BINOMIAL VARIATE USING C.D.Kemp's method.
+! This algorithm is suitable when many random variates are required
+! with the SAME parameter values for n & p.
+
+!    P = BERNOULLI SUCCESS PROBABILITY
+!           (0 <= REAL <= 1)
+!    N = NUMBER OF BERNOULLI TRIALS
+!           (1 <= INTEGER)
+!    FIRST = .TRUE. for the first call using the current parameter values
+!          = .FALSE. if the values of (n,p) are unchanged from last call
+
+! Reference: Kemp, C.D. (1986). `A modal method for generating binomial
+!            variables', Commun. Statist. - Theor. Meth. 15(3), 805-813.
+
+INTEGER, INTENT(IN) :: n
+REAL, INTENT(IN)    :: p
+LOGICAL, INTENT(IN) :: first
+INTEGER             :: ival
+
+!     Local variables
+
+INTEGER         :: ru, rd
+INTEGER, SAVE   :: r0
+REAL            :: u, pd, pu
+REAL, SAVE      :: odds_ratio, p_r
+REAL, PARAMETER :: zero = 0.0, one = 1.0
+
+IF (first) THEN
+  r0 = (n+1)*p
+  p_r = bin_prob(n, p, r0)
+  odds_ratio = p / (one - p)
+END IF
+
+CALL RANDOM_NUMBER(u)
+u = u - p_r
+IF (u < zero) THEN
+  ival = r0
+  RETURN
+END IF
+
+pu = p_r
+ru = r0
+pd = p_r
+rd = r0
+DO
+  rd = rd - 1
+  IF (rd >= 0) THEN
+    pd = pd * (rd+1) / (odds_ratio * (n-rd))
+    u = u - pd
+    IF (u < zero) THEN
+      ival = rd
+      RETURN
+    END IF
+  END IF
+
+  ru = ru + 1
+  IF (ru <= n) THEN
+    pu = pu * (n-ru+1) * odds_ratio / ru
+    u = u - pu
+    IF (u < zero) THEN
+      ival = ru
+      RETURN
+    END IF
+  END IF
+END DO
+
+!     This point should not be reached, but just in case:
+
+ival = r0
+RETURN
+
+END FUNCTION random_binomial1
+
+
+
+FUNCTION bin_prob(n, p, r) RESULT(fn_val)
+!     Calculate a binomial probability
+
+INTEGER, INTENT(IN) :: n, r
+REAL, INTENT(IN)    :: p
+REAL                :: fn_val
+
+!     Local variable
+REAL                :: one = 1.0
+
+fn_val = EXP( lngamma(DBLE(n+1)) - lngamma(DBLE(r+1)) - lngamma(DBLE(n-r+1)) &
+              + r*LOG(p) + (n-r)*LOG(one - p) )
+RETURN
+
+END FUNCTION bin_prob
+
+
+
+FUNCTION lngamma(x) RESULT(fn_val)
+
+! Logarithm to base e of the gamma function.
+!
+! Accurate to about 1.e-14.
+! Programmer: Alan Miller
+
+! Latest revision of Fortran 77 version - 28 February 1988
+
+REAL (dp), INTENT(IN) :: x
+REAL (dp)             :: fn_val
+
+!       Local variables
+
+REAL (dp) :: a1 = -4.166666666554424D-02, a2 = 2.430554511376954D-03,  &
+             a3 = -7.685928044064347D-04, a4 = 5.660478426014386D-04,  &
+             temp, arg, product, lnrt2pi = 9.189385332046727D-1,       &
+             pi = 3.141592653589793D0
+LOGICAL   :: reflect
+
+!       lngamma is not defined if x = 0 or a negative integer.
+
+IF (x > 0.d0) GO TO 10
+IF (x /= INT(x)) GO TO 10
+fn_val = 0.d0
+RETURN
+
+!       If x < 0, use the reflection formula:
+!               gamma(x) * gamma(1-x) = pi * cosec(pi.x)
+
+10 reflect = (x < 0.d0)
+IF (reflect) THEN
+  arg = 1.d0 - x
+ELSE
+  arg = x
+END IF
+
+!       Increase the argument, if necessary, to make it > 10.
+
+product = 1.d0
+20 IF (arg <= 10.d0) THEN
+  product = product * arg
+  arg = arg + 1.d0
+  GO TO 20
+END IF
+
+!  Use a polynomial approximation to Stirling's formula.
+!  N.B. The real Stirling's formula is used here, not the simpler, but less
+!       accurate formula given by De Moivre in a letter to Stirling, which
+!       is the one usually quoted.
+
+arg = arg - 0.5D0
+temp = 1.d0/arg**2
+fn_val = lnrt2pi + arg * (LOG(arg) - 1.d0 + &
+                  (((a4*temp + a3)*temp + a2)*temp + a1)*temp) - LOG(product)
+IF (reflect) THEN
+  temp = SIN(pi * x)
+  fn_val = LOG(pi/temp) - fn_val
+END IF
+RETURN
+END FUNCTION lngamma
+
+
+
+FUNCTION random_binomial2(n, pp, first) RESULT(ival)
+!**********************************************************************
+!     Translated to Fortran 90 by Alan Miller from:
+!                              RANLIB
+!
+!     Library of Fortran Routines for Random Number Generation
+!
+!                      Compiled and Written by:
+!
+!                           Barry W. Brown
+!                            James Lovato
+!
+!               Department of Biomathematics, Box 237
+!               The University of Texas, M.D. Anderson Cancer Center
+!               1515 Holcombe Boulevard
+!               Houston, TX      77030
+!
+! This work was supported by grant CA-16672 from the National Cancer Institute.
+
+!                    GENerate BINomial random deviate
+
+!                              Function
+
+!     Generates a single random deviate from a binomial
+!     distribution whose number of trials is N and whose
+!     probability of an event in each trial is P.
+
+!                              Arguments
+
+!     N  --> The number of trials in the binomial distribution
+!            from which a random deviate is to be generated.
+!                              INTEGER N
+
+!     P  --> The probability of an event in each trial of the
+!            binomial distribution from which a random deviate
+!            is to be generated.
+!                              REAL P
+
+!     FIRST --> Set FIRST = .TRUE. for the first call to perform initialization
+!               the set FIRST = .FALSE. for further calls using the same pair
+!               of parameter values (N, P).
+!                              LOGICAL FIRST
+
+!     random_binomial2 <-- A random deviate yielding the number of events
+!                from N independent trials, each of which has
+!                a probability of event P.
+!                              INTEGER random_binomial
+
+!                              Method
+
+!     This is algorithm BTPE from:
+
+!         Kachitvichyanukul, V. and Schmeiser, B. W.
+!         Binomial Random Variate Generation.
+!         Communications of the ACM, 31, 2 (February, 1988) 216.
+
+!**********************************************************************
+
+!*****DETERMINE APPROPRIATE ALGORITHM AND WHETHER SETUP IS NECESSARY
+
+!     ..
+!     .. Scalar Arguments ..
+REAL, INTENT(IN)    :: pp
+INTEGER, INTENT(IN) :: n
+LOGICAL, INTENT(IN) :: first
+INTEGER             :: ival
+!     ..
+!     .. Local Scalars ..
+REAL            :: alv, amaxp, f, f1, f2, u, v, w, w2, x, x1, x2, ynorm, z, z2
+REAL, PARAMETER :: zero = 0.0, half = 0.5, one = 1.0
+INTEGER         :: i, ix, ix1, k, mp
+INTEGER, SAVE   :: m
+REAL, SAVE      :: p, q, xnp, ffm, fm, xnpq, p1, xm, xl, xr, c, al, xll,  &
+                   xlr, p2, p3, p4, qn, r, g
+
+!     ..
+!     .. Executable Statements ..
+
+!*****SETUP, PERFORM ONLY WHEN PARAMETERS CHANGE
+
+IF (first) THEN
+  p = MIN(pp, one-pp)
+  q = one - p
+  xnp = n * p
+END IF
+
+IF (xnp > 30.) THEN
+  IF (first) THEN
+    ffm = xnp + p
+    m = ffm
+    fm = m
+    xnpq = xnp * q
+    p1 = INT(2.195*SQRT(xnpq) - 4.6*q) + half
+    xm = fm + half
+    xl = xm - p1
+    xr = xm + p1
+    c = 0.134 + 20.5 / (15.3 + fm)
+    al = (ffm-xl) / (ffm - xl*p)
+    xll = al * (one + half*al)
+    al = (xr - ffm) / (xr*q)
+    xlr = al * (one + half*al)
+    p2 = p1 * (one + c + c)
+    p3 = p2 + c / xll
+    p4 = p3 + c / xlr
+  END IF
+
+!*****GENERATE VARIATE, Binomial mean at least 30.
+
+  20 CALL RANDOM_NUMBER(u)
+  u = u * p4
+  CALL RANDOM_NUMBER(v)
+
+!     TRIANGULAR REGION
+
+  IF (u <= p1) THEN
+    ix = xm - p1 * v + u
+    GO TO 110
+  END IF
+
+!     PARALLELOGRAM REGION
+
+  IF (u <= p2) THEN
+    x = xl + (u-p1) / c
+    v = v * c + one - ABS(xm-x) / p1
+    IF (v > one .OR. v <= zero) GO TO 20
+    ix = x
+  ELSE
+
+!     LEFT TAIL
+
+    IF (u <= p3) THEN
+      ix = xl + LOG(v) / xll
+      IF (ix < 0) GO TO 20
+      v = v * (u-p2) * xll
+    ELSE
+
+!     RIGHT TAIL
+
+      ix = xr - LOG(v) / xlr
+      IF (ix > n) GO TO 20
+      v = v * (u-p3) * xlr
+    END IF
+  END IF
+
+!*****DETERMINE APPROPRIATE WAY TO PERFORM ACCEPT/REJECT TEST
+
+  k = ABS(ix-m)
+  IF (k <= 20 .OR. k >= xnpq/2-1) THEN
+
+!     EXPLICIT EVALUATION
+
+    f = one
+    r = p / q
+    g = (n+1) * r
+    IF (m < ix) THEN
+      mp = m + 1
+      DO i = mp, ix
+        f = f * (g/i-r)
+      END DO
+
+    ELSE IF (m > ix) THEN
+      ix1 = ix + 1
+      DO i = ix1, m
+        f = f / (g/i-r)
+      END DO
+    END IF
+
+    IF (v > f) THEN
+      GO TO 20
+    ELSE
+      GO TO 110
+    END IF
+  END IF
+
+!     SQUEEZING USING UPPER AND LOWER BOUNDS ON LOG(F(X))
+
+  amaxp = (k/xnpq) * ((k*(k/3. + .625) + .1666666666666)/xnpq + half)
+  ynorm = -k * k / (2.*xnpq)
+  alv = LOG(v)
+  IF (alv<ynorm - amaxp) GO TO 110
+  IF (alv>ynorm + amaxp) GO TO 20
+
+!     STIRLING'S (actually de Moivre's) FORMULA TO MACHINE ACCURACY FOR
+!     THE FINAL ACCEPTANCE/REJECTION TEST
+
+  x1 = ix + 1
+  f1 = fm + one
+  z = n + 1 - fm
+  w = n - ix + one
+  z2 = z * z
+  x2 = x1 * x1
+  f2 = f1 * f1
+  w2 = w * w
+  IF (alv - (xm*LOG(f1/x1) + (n-m+half)*LOG(z/w) + (ix-m)*LOG(w*p/(x1*q)) +    &
+      (13860.-(462.-(132.-(99.-140./f2)/f2)/f2)/f2)/f1/166320. +               &
+      (13860.-(462.-(132.-(99.-140./z2)/z2)/z2)/z2)/z/166320. +                &
+      (13860.-(462.-(132.-(99.-140./x2)/x2)/x2)/x2)/x1/166320. +               &
+      (13860.-(462.-(132.-(99.-140./w2)/w2)/w2)/w2)/w/166320.) > zero) THEN
+    GO TO 20
+  ELSE
+    GO TO 110
+  END IF
+
+ELSE
+!     INVERSE CDF LOGIC FOR MEAN LESS THAN 30
+  IF (first) THEN
+    qn = q ** n
+    r = p / q
+    g = r * (n+1)
+  END IF
+
+  90 ix = 0
+  f = qn
+  CALL RANDOM_NUMBER(u)
+  100 IF (u >= f) THEN
+    IF (ix > 110) GO TO 90
+    u = u - f
+    ix = ix + 1
+    f = f * (g/ix - r)
+    GO TO 100
+  END IF
+END IF
+
+110 IF (pp > half) ix = n - ix
+ival = ix
+RETURN
+
+END FUNCTION random_binomial2
+
+
+
+
+FUNCTION random_neg_binomial(sk, p) RESULT(ival)
+
+! Adapted from Fortran 77 code from the book:
+!     Dagpunar, J. 'Principles of random variate generation'
+!     Clarendon Press, Oxford, 1988.   ISBN 0-19-852202-9
+
+! FUNCTION GENERATES A RANDOM NEGATIVE BINOMIAL VARIATE USING UNSTORED
+! INVERSION AND/OR THE REPRODUCTIVE PROPERTY.
+
+!    SK = NUMBER OF FAILURES REQUIRED (Dagpunar's words!)
+!       = the `power' parameter of the negative binomial
+!           (0 < REAL)
+!    P = BERNOULLI SUCCESS PROBABILITY
+!           (0 < REAL < 1)
+
+! THE PARAMETER H IS SET SO THAT UNSTORED INVERSION ONLY IS USED WHEN P <= H,
+! OTHERWISE A COMBINATION OF UNSTORED INVERSION AND
+! THE REPRODUCTIVE PROPERTY IS USED.
+
+REAL, INTENT(IN)   :: sk, p
+INTEGER            :: ival
+
+!     Local variables
+! THE PARAMETER ULN = -LOG(MACHINE'S SMALLEST REAL NUMBER).
+
+REAL, PARAMETER    :: h = 0.7
+REAL               :: q, x, st, uln, v, r, s, y, g
+INTEGER            :: k, i, n
+
+IF (sk <= zero .OR. p <= zero .OR. p >= one) THEN
+  WRITE(*, *) 'IMPERMISSIBLE DISTRIBUTION PARAMETER VALUES'
+  STOP
+END IF
+
+q = one - p
+x = zero
+st = sk
+IF (p > h) THEN
+  v = one/LOG(p)
+  k = st
+  DO i = 1,k
+    DO
+      CALL RANDOM_NUMBER(r)
+      IF (r > zero) EXIT
+    END DO
+    n = v*LOG(r)
+    x = x + n
+  END DO
+  st = st - k
+END IF
+
+s = zero
+uln = -LOG(vsmall)
+IF (st > -uln/LOG(q)) THEN
+  WRITE(*, *) ' P IS TOO LARGE FOR THIS VALUE OF SK'
+  STOP
+END IF
+
+y = q**st
+g = st
+CALL RANDOM_NUMBER(r)
+DO
+  IF (y > r) EXIT
+  r = r - y
+  s = s + one
+  y = y*p*g/s
+  g = g + one
+END DO
+
+ival = x + s + half
+RETURN
+END FUNCTION random_neg_binomial
+
+
+
+FUNCTION random_von_Mises(k, first) RESULT(fn_val)
+
+!     Algorithm VMD from:
+!     Dagpunar, J.S. (1990) `Sampling from the von Mises distribution via a
+!     comparison of random numbers', J. of Appl. Statist., 17, 165-168.
+
+!     Fortran 90 code by Alan Miller
+!     CSIRO Division of Mathematical & Information Sciences
+
+!     Arguments:
+!     k (real)        parameter of the von Mises distribution.
+!     first (logical) set to .TRUE. the first time that the function
+!                     is called, or the first time with a new value
+!                     for k.   When first = .TRUE., the function sets
+!                     up starting values and may be very much slower.
+
+REAL, INTENT(IN)     :: k
+LOGICAL, INTENT(IN)  :: first
+REAL                 :: fn_val
+
+!     Local variables
+
+INTEGER          :: j, n
+INTEGER, SAVE    :: nk
+REAL, PARAMETER  :: pi = 3.14159265
+REAL, SAVE       :: p(20), theta(0:20)
+REAL             :: sump, r, th, lambda, rlast
+REAL (dp)        :: dk
+
+IF (first) THEN                        ! Initialization, if necessary
+  IF (k < zero) THEN
+    WRITE(*, *) '** Error: argument k for random_von_Mises = ', k
+    RETURN
+  END IF
+
+  nk = k + k + one
+  IF (nk > 20) THEN
+    WRITE(*, *) '** Error: argument k for random_von_Mises = ', k
+    RETURN
+  END IF
+
+  dk = k
+  theta(0) = zero
+  IF (k > half) THEN
+
+!     Set up array p of probabilities.
+
+    sump = zero
+    DO j = 1, nk
+      IF (j < nk) THEN
+        theta(j) = ACOS(one - j/k)
+      ELSE
+        theta(nk) = pi
+      END IF
+
+!     Numerical integration of e^[k.cos(x)] from theta(j-1) to theta(j)
+
+      CALL integral(theta(j-1), theta(j), p(j), dk)
+      sump = sump + p(j)
+    END DO
+    p(1:nk) = p(1:nk) / sump
+  ELSE
+    p(1) = one
+    theta(1) = pi
+  END IF                         ! if k > 0.5
+END IF                           ! if first
+
+CALL RANDOM_NUMBER(r)
+DO j = 1, nk
+  r = r - p(j)
+  IF (r < zero) EXIT
+END DO
+r = -r/p(j)
+
+DO
+  th = theta(j-1) + r*(theta(j) - theta(j-1))
+  lambda = k - j + one - k*COS(th)
+  n = 1
+  rlast = lambda
+
+  DO
+    CALL RANDOM_NUMBER(r)
+    IF (r > rlast) EXIT
+    n = n + 1
+    rlast = r
+  END DO
+
+  IF (n .NE. 2*(n/2)) EXIT         ! is n even?
+  CALL RANDOM_NUMBER(r)
+END DO
+
+fn_val = SIGN(th, (r - rlast)/(one - rlast) - half)
+RETURN
+END FUNCTION random_von_Mises
+
+
+
+SUBROUTINE integral(a, b, result, dk)
+
+!     Gaussian integration of exp(k.cosx) from a to b.
+
+REAL (dp), INTENT(IN) :: dk
+REAL, INTENT(IN)      :: a, b
+REAL, INTENT(OUT)     :: result
+
+!     Local variables
+
+REAL (dp)  :: xmid, range, x1, x2,                                    &
+  x(3) = (/0.238619186083197_dp, 0.661209386466265_dp, 0.932469514203152_dp/), &
+  w(3) = (/0.467913934572691_dp, 0.360761573048139_dp, 0.171324492379170_dp/)
+INTEGER    :: i
+
+xmid = (a + b)/2._dp
+range = (b - a)/2._dp
+
+result = 0._dp
+DO i = 1, 3
+  x1 = xmid + x(i)*range
+  x2 = xmid - x(i)*range
+  result = result + w(i)*(EXP(dk*COS(x1)) + EXP(dk*COS(x2)))
+END DO
+
+result = result * range
+RETURN
+END SUBROUTINE integral
+
+
+
+FUNCTION random_Cauchy() RESULT(fn_val)
+
+!     Generate a random deviate from the standard Cauchy distribution
+
+REAL     :: fn_val
+
+!     Local variables
+REAL     :: v(2)
+
+DO
+  CALL RANDOM_NUMBER(v)
+  v = two*(v - half)
+  IF (ABS(v(2)) < vsmall) CYCLE               ! Test for zero
+  IF (v(1)**2 + v(2)**2 < one) EXIT
+END DO
+fn_val = v(1) / v(2)
+
+RETURN
+END FUNCTION random_Cauchy
+
+
+
+SUBROUTINE random_order(order, n)
+
+!     Generate a random ordering of the integers 1 ... n.
+
+INTEGER, INTENT(IN)  :: n
+INTEGER, INTENT(OUT) :: order(n)
+
+!     Local variables
+
+INTEGER :: i, j, k
+REAL    :: wk
+
+DO i = 1, n
+  order(i) = i
+END DO
+
+!     Starting at the end, swap the current last indicator with one
+!     randomly chosen from those preceeding it.
+
+DO i = n, 2, -1
+  CALL RANDOM_NUMBER(wk)
+  j = 1 + i * wk
+  IF (j < i) THEN
+    k = order(i)
+    order(i) = order(j)
+    order(j) = k
+  END IF
+END DO
+
+RETURN
+END SUBROUTINE random_order
+
+
+
+SUBROUTINE seed_random_number(iounit)
+
+INTEGER, INTENT(IN)  :: iounit
+
+! Local variables
+
+INTEGER              :: k
+INTEGER, ALLOCATABLE :: seed(:)
+
+CALL RANDOM_SEED(SIZE=k)
+ALLOCATE( seed(k) )
+
+WRITE(*, '(a, i2, a)')' Enter ', k, ' integers for random no. seeds: '
+READ(*, *) seed
+WRITE(iounit, '(a, (7i10))') ' Random no. seeds: ', seed
+CALL RANDOM_SEED(PUT=seed)
+
+DEALLOCATE( seed )
+
+RETURN
+END SUBROUTINE seed_random_number
+
+
+END MODULE KPP_ROOT_Random
+
+MODULE KPP_ROOT_Integrator
+  USE KPP_ROOT_Random
+  USE KPP_ROOT_Parameters, ONLY : NVAR, NFIX, NREACT 
+  USE KPP_ROOT_Global, ONLY : TIME, RCONST, Volume 
+  USE KPP_ROOT_Stoichiom  
+  USE KPP_ROOT_Stochastic
+  USE KPP_ROOT_Rates
+  USE KPP_ROOT_Random, ddp => dp
+  IMPLICIT NONE
+
+CONTAINS
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+SUBROUTINE TauLeap(Nsteps, Tau, T, SCT, NmlcV, NmlcF)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!   Tau-leap stochastic integration
+!   INPUT:
+!       Nsteps  = no. of tau-leap steps to be simulated
+!       Tau     = time step length
+!       T       = time
+!       SCT     = stochastic rate constants
+!       NmlcV, NmlcF = no. of molecules for variable and fixed species
+!   OUTPUT:
+!       T       = updated time (after Nsteps)
+!       NmlcV   = updated no. of molecules for variable species
+!      
+!
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  IMPLICIT NONE
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    
+      KPP_REAL:: T, Tau
+      INTEGER :: Nsteps     
+      INTEGER :: NmlcV(NVAR), NmlcF(NFIX)
+      INTEGER :: i, j, irct, id, istep, Nfirings(NREACT)
+      REAL   :: mu
+      KPP_REAL :: A(NREACT), SCT(NREACT), x
+      LOGICAL, SAVE :: First = .TRUE.
+   
+      DO istep = 1, Nsteps
+
+          ! Propensity vector
+          CALL  Propensity ( NmlcV, NmlcF, SCT, A )
+          
+          ! Index of next reaction
+          DO irct = 1, NREACT
+            mu = A(irct)*Tau
+            Nfirings(irct) = random_Poisson(mu, First)
+            First = .TRUE.
+          END DO
+          
+          ! Update time with the leap interval
+          T = T + Tau;
+
+          ! Directly update state vector
+          DO irct = 1, NREACT
+             DO i = CCOL_STOICM(irct), CCOL_STOICM(irct+1)-1
+                id = IROW_STOICM(i)
+                NmlcV(id) = MAX(0, NmlcV(id) + Nfirings(irct)*INT(STOICM(i)))
+             END DO
+          END DO
+          
+          ! Update state vector
+          ! DO irct = 1, NREACT
+          !   DO j = 1, Nfirings(irct)
+          !    CALL MoleculeChange( irct, NmlcV )
+          !   END DO 
+          ! END DO
+        
+     END DO
+     
+CONTAINS
+
+     SUBROUTINE PropensityTemplate( T, NmlcV, NmlcF, Prop )
+      KPP_REAL, INTENT(IN)  :: T
+      INTEGER, INTENT(IN)   :: NmlcV(NVAR), NmlcF(NFIX)
+      KPP_REAL, INTENT(OUT) :: Prop(NREACT)
+      KPP_REAL :: Tsave
+! Update the stochastic reaction rates, which may be time dependent 
+      Tsave = TIME
+      TIME = T
+      CALL Update_RCONST()
+      CALL StochasticRates( RCONST, Volume, SCT )   
+      CALL Propensity ( NmlcV, NmlcF, SCT, Prop )
+      TIME = Tsave
+     END SUBROUTINE PropensityTemplate    
+    
+END SUBROUTINE TauLeap
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+END MODULE KPP_ROOT_Integrator
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/user_contributed/readme
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/user_contributed/readme	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/user_contributed/readme	(revision 2696)
@@ -0,0 +1,3 @@
+Integrators in this directory have been contributed by KPP users. By
+default, KPP will not search for integrators in this directory. To
+activate them, move them into the int/ directory.
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/user_contributed/ros2_manual.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/user_contributed/ros2_manual.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/user_contributed/ros2_manual.def	(revision 2696)
@@ -0,0 +1,5 @@
+#FUNCTION AGGREGATE
+#JACOBIAN SPARSE_LU_ROW 
+
+#DOUBLE ON
+#INTFILE ros2_manual
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/user_contributed/ros2_manual.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/user_contributed/ros2_manual.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/int/user_contributed/ros2_manual.f90	(revision 2696)
@@ -0,0 +1,119 @@
+! Rosenbrock integrator with manual time step control
+! Solve: d/dt c = f(t,c)
+
+! written by Edwin Spee, CWI, Amsterdam. Last update: July 28, 1997
+! email: Edwin.Spee@cwi.nl (http://edwin-spee.mypage.org/)
+! adapted to KPP-2.1 by Rolf Sander, Max-Planck Institute, Mainz, Germany, 2005
+!
+! Integration method for Ros2:
+! C_{n+1} = C_n + 3/2 dt k_1 + 1/2 dt k_2
+! k_1 = S f(t_n, C_n)
+! k_2 = S [f(t_{n+1},C_n + dt k_1) - 2 k_1]
+!
+! where g = 1.0 + sqrt(0.5_dp),
+! S = (I - g dt J ) ^ {-1}
+! with J the Jacobian
+
+MODULE KPP_ROOT_Integrator
+
+  USE KPP_ROOT_Precision, ONLY: dp
+
+  IMPLICIT NONE
+  PUBLIC
+  SAVE
+
+  ! description of the error numbers IERR
+  CHARACTER(LEN=50), PARAMETER, DIMENSION(1) :: IERR_NAMES = (/ &
+    'dummy value                                       ' /)
+
+CONTAINS
+
+  ! **************************************************************************
+
+  SUBROUTINE INTEGRATE( TIN, TOUT, &
+    ICNTRL_U, RCNTRL_U, ISTATUS_U, RSTATUS_U, IERR_U )
+
+    IMPLICIT NONE
+
+    KPP_REAL, INTENT(IN) :: TIN  ! TIN - Start Time
+    KPP_REAL, INTENT(IN) :: TOUT ! TOUT - End Time
+    ! Optional input parameters and statistics
+    INTEGER,  INTENT(IN),  OPTIONAL :: ICNTRL_U(20)
+    KPP_REAL, INTENT(IN),  OPTIONAL :: RCNTRL_U(20)
+    INTEGER,  INTENT(OUT), OPTIONAL :: ISTATUS_U(20)
+    KPP_REAL, INTENT(OUT), OPTIONAL :: RSTATUS_U(20)
+    INTEGER,  INTENT(OUT), OPTIONAL :: IERR_U
+
+    CALL ROS2(TIN, TOUT)
+
+    ! if optional parameters are given for output
+    ! use them to store information in them
+    IF (PRESENT(ISTATUS_U)) ISTATUS_U(:) = 0
+    IF (PRESENT(RSTATUS_U)) THEN
+      RSTATUS_U(:) = 0._dp
+      RSTATUS_U(1)=TOUT ! put final time into RSTATUS_U
+    ENDIF
+    IF (PRESENT(IERR_U)) IERR_U = 1 ! dummy value
+
+  END SUBROUTINE INTEGRATE
+
+  ! **************************************************************************
+
+  SUBROUTINE ROS2(Tstart,Tend)
+
+    USE KPP_ROOT_Jacobian,         ONLY: Jac_SP
+    USE KPP_ROOT_Global,           ONLY: VAR,   & ! VARiable species
+                                         FIX,   & ! FIXed species
+                                         RCONST   ! rate coefficients
+    USE KPP_ROOT_JacobianSP,       ONLY: LU_DIAG
+    USE KPP_ROOT_Function,         ONLY: Fun
+    USE KPP_ROOT_LinearAlgebra,    ONLY: KppDecomp, KppSolve
+    USE KPP_ROOT_Parameters,       ONLY: NVAR, LU_NONZERO
+
+    IMPLICIT NONE
+
+    KPP_REAL, INTENT(IN) :: Tstart, Tend
+
+    KPP_REAL :: dt ! time step                                          
+    KPP_REAL :: k1(NVAR), k2(NVAR), w1(NVAR), g, jvs(LU_NONZERO)
+    INTEGER ising, i
+
+    dt = Tend - Tstart
+    g = 1.0 + SQRT(0.5_dp)
+    CALL JAC_sp(VAR, FIX, RCONST, jvs)
+    jvs(1:LU_NONZERO) = -g*dt*jvs(1:LU_NONZERO)
+
+    ! Rolf von Kuhlmann:
+    ! optionally cut this out and replace it by directly addressed statements
+    DO i=1,NVAR
+      jvs(LU_DIAG(i)) = jvs(LU_DIAG(i)) + 1.0_dp
+    END DO
+
+    CALL KppDecomp (jvs, ising)
+
+    IF (ising /= 0) THEN
+      PRINT *,'ising <> 0, dt=',dt
+      STOP
+    END IF
+
+    CALL Fun(VAR, FIX, RCONST, k1 )
+
+    CALL KppSolve (jvs,k1)
+
+    DO i = 1,NVAR
+      w1(i) = MAX(0.0_dp, VAR(i) + dt * k1(i) )
+    END DO
+
+    CALL Fun(w1, FIX, RCONST, k2 )
+
+    k2(1:NVAR) = k2(1:NVAR) - 2.0_dp*k1(1:NVAR)
+    CALL KppSolve (jvs,k2)
+    DO i = 1,NVAR
+      VAR(i) = MAX( 0.0_dp, VAR(i)+1.5_dp*dt*k1(i)+0.5_dp*dt*k2(i) )
+    END DO
+
+  END SUBROUTINE ROS2
+
+  ! **************************************************************************
+
+END MODULE KPP_ROOT_Integrator
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/atoms
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/atoms	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/atoms	(revision 2696)
@@ -0,0 +1,107 @@
+#ATOMS
+        H	{  1 	Hydrogen	}; 
+	He	{  2	Helium  	};
+	Li	{  3    Litium		};
+	Be	{  4   		};
+	B	{  5   		};
+	C	{  6   		};
+	N	{  7   		};
+	O	{  8   		};
+	F	{  9   		};
+	Ne	{ 10   		};
+	Na	{ 11   		};
+	Mg	{ 12   		};
+	Al	{ 13   		};
+	Si	{ 14   		};
+	P	{ 15   		};
+	S	{ 16   		};
+	Cl	{ 17   		};
+	Ar	{ 18   		};
+	K	{ 19   		};
+	Ca	{ 20   		};
+	Sc	{ 21   		};
+	Ti	{ 22   		};
+	V	{ 23   		};
+	Cr	{ 24   		};
+	Mn	{ 25   		};
+	Fe	{ 26   		};
+	Co	{ 27   		};
+	Ni	{ 28   		};
+	Cu	{ 29   		};
+	Zn	{ 30   		};
+	Ga	{ 31   		};
+	Ge	{ 32   		};
+	As	{ 33   		};
+	Se	{ 34   		};
+	Br	{ 35   		};
+	Kr	{ 36   		};
+	Rb	{ 37   		};
+	Sr	{ 38   		};
+	Y	{ 39   		};
+	Zr	{ 40   		};
+	Nb	{ 41   		};
+	Mu	{ 42   		};
+	Tc	{ 43   		};
+	Ru	{ 44   		};
+	Rh	{ 45   		};
+	Pd	{ 46   		};
+	Ag	{ 47   		};
+	Cd	{ 48   		};
+	In	{ 49   		};
+	Sn	{ 50   		};
+	Sb	{ 51   		};
+	Te	{ 52   		};
+	I	{ 53   		};
+	Xe	{ 54   		};
+	Cs	{ 55   		};
+	Ba	{ 56   		};
+	La	{ 57   		};
+	Ce	{ 58   		};
+	Pr	{ 59   		};
+	Nd	{ 60   		};
+	Pm	{ 61   		};
+	Sm	{ 62   		};
+	Eu	{ 63   		};
+	Gd	{ 64   		};
+	Tb	{ 65   		};
+	Dy	{ 66   		};
+	Ho	{ 67   		};
+	Er	{ 68   		};
+	Tm	{ 69   		};
+	Yb	{ 70   		};
+	Lu	{ 71   		};
+	Hf	{ 72   		};
+	Ta	{ 73   		};
+	W	{ 74   		};
+	Re	{ 75   		};
+	Os	{ 76   		};
+	Ir	{ 77   		};
+	Pt	{ 78   		};
+	Au	{ 79   		};
+	Hg	{ 80   		};
+	Tl	{ 81   		};
+	Pb	{ 82   		};
+	Bi	{ 83   		};
+	Po	{ 84   		};
+	At	{ 85   		};
+	Rn	{ 86   		};
+	Fr	{ 87   		};
+	Ra	{ 88   		};
+	Ac	{ 89   		};
+	Th	{ 90   		};
+	Pa	{ 91   		};
+	U	{ 92   		};
+	Np	{ 93   		};
+	Pu	{ 94   		};
+	Am	{ 95   		};
+	Cm	{ 96   		};
+	Bk	{ 97   		};
+	Cf	{ 98   		};
+	Es	{ 99   		};
+	Fm	{100   		};
+	Md	{101   		};
+	No	{102   		};
+	Lr	{103   		};
+	Unq	{104   		};
+	Unp	{105   		};
+	Unh	{106   		};
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/cbm4.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/cbm4.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/cbm4.def	(revision 2696)
@@ -0,0 +1,63 @@
+#include atoms
+#include ./cbm4.spc
+#include ./cbm4.eqn
+
+{#LANGUAGE Fortran77
+#INTEGRATOR rodas3
+#DRIVER general}
+
+#LOOKATALL
+
+#MONITOR O3;
+
+#INITVALUES
+  CFACTOR = 2.55E+10; {ppb-to-mcm}
+  ALL_SPEC = 1.0E-8;
+{Variable species}
+  NO   = 50.0;
+  NO2  = 20.0;
+  HONO = 1.0;
+  O3   = 100.0;
+  HCHO = 10.0;
+  ALD2 = 10;
+  PAN  = 1.0;
+  PAR  = 50.0;
+  OLE  = 10.0;
+  ETH  = 10.0;
+  TOL  = 10.0;
+  XYL  = 10.0;
+  ISOP = 10.0;
+  CO   = 300.0;
+{Fixed species}
+  H2O  = 1.25E+8; {30 %}
+
+
+#INLINE F77_INIT
+        TSTART = 12.D0*3600.D0
+        TEND = TSTART + 24.D0*3600.D0 * 5
+        DT = 3600.D0
+        TEMP = 288.15
+#ENDINLINE
+
+#INLINE F90_INIT
+        TSTART = 12.D0*3600.D0
+        TEND = TSTART + 24.D0*3600.D0 * 5
+        DT = 3600.D0
+        TEMP = 288.15
+#ENDINLINE
+
+#INLINE MATLAB_INIT
+   TSTART = 12.0*3600.0;
+   TEND = TSTART + 24.0*3600.0*5;
+   DT = 3600.0;
+   TEMP = 288.15;
+#ENDINLINE
+
+#INLINE C_INIT
+   TSTART = 12.0*3600.0;
+   TEND = TSTART + 24.0*3600.0*5;
+   DT = 3600.0;
+   TEMP = 288.15;
+#ENDINLINE
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/cbm4.eqn
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/cbm4.eqn	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/cbm4.eqn	(revision 2696)
@@ -0,0 +1,119 @@
+#EQUATIONS {of the CBM-IV mechanism}
+
+{ 1.} NO2 + hv =  NO + O              :  8.89E-3*SUN ;
+{ 2.} O {+ O2 + M} = O3               :  ARR2(1.4E+3, 1175.0) ;
+{ 3.} O3 + NO = NO2                   :  ARR2(1.8E-12, -1370.0) ;
+{ 4.} O + NO2 = NO                    :  9.3E-12 ;
+{ 5.} O + NO2   = NO3                 :  ARR2(1.6E-13, 687.0) ;
+{ 6.} O + NO   =  NO2                 :  ARR2(2.2E-13, 602.0) ;
+{ 7.} O3 + NO2 =  NO3                 :  ARR2(1.2E-13, -2450.0) ;
+{ 8.} O3 + hv = O                     :  3.556E-04*SUN ; {4.0E-2*RCONST(1) ;}
+{ 9.} O3 + hv = O1D                   :  2.489E-05*SUN ; {2.8E-3*RCONST(1) ;}
+{10.} O1D   = O                       :  ARR2(1.9E+8, 390.0)  ;
+
+{11.} O1D + H2O = 2OH                 :  2.2E-10 ;
+{12.} O3 + OH = HO2                   :  ARR2(1.6E-12, -940.0) ;
+{13.} O3 + HO2 = OH                   :  ARR2(1.4E-14, -580.0) ;
+{14.} NO3 + hv = 0.89 NO2 + 0.89 O 
+                 + 0.11 NO            :  1.378E-01*SUN ; {15.5*RCONST(1);}
+{15.} NO3 + NO = 2 NO2                :  ARR2(1.3E-11, 250.0) ;
+{16.} NO3 + NO2 = NO + NO2            :  ARR2(2.5E-14, -1230.0) ;
+{17.} NO3 + NO2   =  N2O5             :  ARR2(5.3E-13, 256.0) ;
+{18.} N2O5 + H2O = 2 HNO3             :  1.3E-21 ;
+{19.} N2O5   =  NO3 + NO2             :  ARR2(3.5E+14, -10897.0) ;
+{20.} 2 NO  =  2 NO2                  :  ARR2(1.8E-20, 530.0) ;
+
+
+{21.} NO + NO2 + H2O = 2 HONO         :  4.4E-40 ;
+{22.} OH + NO   =  HONO               :  ARR2(4.5E-13, 806.0) ;
+{23.} HONO + hv =  OH + NO            :  1.511e-03*SUN ; {0.17*RCONST(1);}
+{24.} OH + HONO =  NO2                :  6.6E-12 ;
+{25.} 2 HONO = NO + NO2               :  1.0E-20 ;
+{26.} OH + NO2   =  HNO3              :  ARR2(1.0E-12, 713.0) ;
+{27.} OH + HNO3   =  NO3              :  ARR2(5.1E-15, 1000.0) ;
+{28.} HO2 + NO = OH + NO2             :  ARR2(3.7E-12, 240.0) ;
+{29.} HO2 + NO2   =  PNA              :  ARR2(1.2E-13, 749.0) ;
+{30.} PNA   = HO2 + NO2               :  ARR2(4.8E+13, -10121.0) ;
+
+{31.} OH + PNA = NO2                  :  ARR2(1.3E-12, 380.0) ;
+{32.} 2 HO2 = H2O2                    :  ARR2(5.9E-14, 1150.0)  ;
+{33.} 2 HO2 + H2O = H2O2              :  ARR2(2.2E-38, 5800.0) ;
+{34.} H2O2 + hv = 2 OH                :  6.312E-06*SUN ; {7.1E-4*RCONST(1);}
+{35.} OH + H2O2 = HO2                 :  ARR2(3.1E-12, -187.0) ;
+{36.} OH + CO  = HO2                  :  2.2E-13 ;
+{37.} HCHO + OH  =  HO2 + CO          :  1.0E-11 ;
+{38.} HCHO + hv {+ 2 O2} = 2 HO2 + CO :  2.845E-05*SUN ; {3.2E-3*RCONST(1);}
+{39.} HCHO +  hv = CO                 :  3.734E-05*SUN ; {4.2E-3*RCONST(1);}
+{40.} HCHO + O = OH + HO2 + CO        :  ARR2(3.0E-11, -1550.0) ;
+
+{41.} HCHO + NO3  = HNO3 
+                        + HO2 + CO    :  6.3E-16 ;
+{42.} ALD2 + O  =  C2O3 + OH          :  ARR2(1.2E-11, -986.0) ;
+{43.} ALD2 + OH = C2O3                :  ARR2(7.0E-12, 250.0) ;
+{44.} ALD2 + NO3  = C2O3 + HNO3       :  2.5E-15  ;
+{45.} ALD2 + hv {+ 2 O2} = HCHO + XO2 
+                         + CO + 2 HO2 :  4.00E-06*SUN ; {4.5E-4*RCONST(1);}
+{46.} C2O3 + NO  = HCHO + XO2 
+                       + HO2 + NO2    :  ARR2(5.4E-12, 250.0) ;
+{47.} C2O3 + NO2 = PAN                :  ARR2(8.0E-20, 5500.0) ;
+{48.} PAN = C2O3 + NO2                :  ARR2(9.4E+16, -14000.0) ;
+{49.} 2 C2O3 = 2 HCHO + 2 XO2 + 2 HO2 :  2.0E-12  ;
+{50.} C2O3 + HO2 = 0.79 HCHO 
+   + 0.79 XO2 + 0.79 HO2 + 0.79 OH    :  6.5E-12 ;
+
+{51.} OH = HCHO + XO2 + HO2           :  ARR2(1.1E+2, -1710.0) ;
+{52.} PAR + OH = 0.87 XO2 + 0.13 XO2N 
+               + 0.11 HO2 + 0.11 ALD2
+               + 0.76 ROR - 0.11 PAR  :  8.1E-13 ;
+{53.} ROR = 1.1 ALD2 + 0.96 XO2 
+               + 0.94 HO2 + 0.04 XO2N
+               + 0.02 ROR - 2.10 PAR  :  ARR2(1.0E+15, -8000.0) ;
+{54.} ROR = HO2                       :  1.6E+03 ;
+{55.} ROR + NO2 =  PROD               :  1.5E-11  ;
+{56.} O + OLE = 0.63 ALD2 + 0.38 HO2 
+                + 0.28 XO2 + 0.3 CO
+                + 0.2 HCHO + 0.02 XO2N 
+                + 0.22 PAR + 0.2 OH   :  ARR2(1.2E-11, -324.0) ;
+{57.} OH + OLE = HCHO + ALD2 + XO2 
+                 + HO2 - PAR          :  ARR2(5.2E-12, 504.0) ;
+{58.} O3 + OLE = 0.5 ALD2 + 0.74 HCHO 
+                 + 0.33 CO + 0.44 HO2 
+                 + 0.22 XO2
+                 + 0.1 OH - PAR       :  ARR2(1.4E-14, -2105.0)  ;
+{59.} NO3 + OLE = 0.91 XO2 + HCHO 
+                  + ALD2 + 0.09 XO2N                          
+                  + NO2 - PAR         :  7.7E-15 ;
+{60.} O + ETH = HCHO + 0.7 XO2 + CO
+                + 1.7 HO2 + 0.3 OH    :  ARR2(1.0E-11, -792.0) ;
+
+{61.} OH + ETH = XO2 + 1.56 HCHO + HO2 + 0.22 ALD2        :  ARR2(2.0E-12, 411.0)  ;
+{62.} O3 + ETH = HCHO + 0.42 CO + 0.12 HO2                :  ARR2(1.3E-14, -2633.0) ;
+{63.} OH + TOL = 0.08 XO2 + 0.36 CRES 
+                 + 0.44 HO2 + 0.56 TO2                    :  ARR2(2.1E-12, 322.0) ;
+{64.} TO2 + NO =  0.9 NO2 + 0.9 OPEN + 0.9 HO2            :  8.1E-12 ;
+{65.} TO2 = HO2 + CRES                                    :  4.20 ;
+{66.} OH + CRES = 0.4 CRO + 0.6 XO2 + 0.6 HO2 + 0.3 OPEN  :  4.1E-11  ;
+{67.} NO3 + CRES = CRO + HNO3                             :  2.2E-11 ;
+{68.} CRO + NO2 = PROD                                    :  1.4E-11 ;
+{69.} OH + XYL = 0.7 HO2 + 0.5 XO2 + 0.2 CRES + 0.8 MGLY
+                 + 1.10 PAR + 0.3 TO2                     :  ARR2(1.7E-11, 116.0) ;
+{70.} OH + OPEN = XO2 + C2O3 + 2 HO2 + 2 CO + HCHO        :  3.0E-11 ;
+
+{71.} OPEN + hv = C2O3 + CO + HO2                         :  5.334E-05*SUN ; {6.0E-3*RCONST(1);}
+{72.} O3 + OPEN = 0.03 ALD2 + 0.62 C2O3 
+                  + 0.7 HCHO + 0.03 XO2 + 0.69 CO 
+                  + 0.08 OH + 0.76 HO2 + 0.2 MGLY         :  ARR2(5.4E-17, -500.0)  ;
+{73.} OH + MGLY =  XO2 + C2O3                             :  1.70E-11 ;
+{74.} MGLY + hv = C2O3 + CO + HO2                         :  1.654E-04*SUN ; {1.86E-2*RCONST(1);}
+{75.} O + ISOP =  0.6 HO2 + 0.8 ALD2 + 0.55 OLE + 0.5 XO2
+                  + 0.5 CO + 0.45 ETH + 0.9 PAR           :  1.80E-11  ;
+{76.} OH + ISOP = HCHO + XO2 + 0.67 HO2 
+                  + 0.4 MGLY + 0.2 C2O3
+                  + ETH + 0.2 ALD2 + 0.13 XO2N            :  9.6E-11  ;
+{77.} O3 + ISOP = HCHO + 0.4 ALD2 + 0.55 ETH + 0.2 MGLY 
+                  + 0.06 CO + 0.1 PAR + 0.44 HO2 + 0.1 OH :  1.2E-17 ;
+{78.} NO3 + ISOP =  XO2N                                  :  3.2E-13 ;
+{79.} XO2 + NO = NO2                                      :  8.1E-12 ;
+{80.} 2 XO2 =  PROD                                       :  ARR2(1.7E-14, 1300.0) ;
+{81.} XO2N + NO =  PROD                                   :  6.8E-13 ;
+ 
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/cbm4.spc
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/cbm4.spc	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/cbm4.spc	(revision 2696)
@@ -0,0 +1,41 @@
+#DEFVAR
+    NO          = N + O ;       {nitric oxide}
+    NO2         = N + 2O ;      {nitrogen dioxide}
+    NO3         = N + 3O ;      {nitrogen trioxide}
+    N2O5        = 2N + 5O ;     {dinitrogen pentoxide}
+    HONO        = H + 2O + N ;  {nitrous acid}
+    HNO3        = H + N + 3O ;  { nitric acid }
+    PNA         = H + 4 O + N ; {HO2NO2 peroxynitric acid}
+    O1D         = O ;           {oxygen atomic first singlet state}
+    O           = O ;           {oxygen atomic ground state (3P)}
+    OH          = O + H ;       {hydroxyl radical}
+    O3          = 3O ;          {ozone}
+    HO2         = H + 2O ;      {perhydroxyl radical}
+    H2O2        = 2H + 2O ;     {hydrogen peroxide}
+    HCHO        = C + 2H + O ;  {formalydehyde}
+    ALD2        = IGNORE ;      {high molecular weight aldehides}
+    C2O3        = 2C + 3H + 3O ; {CH3CO(O)OO peroxyacyl radical}
+    PAN         = 2C + 3H + 5O + N ; {CH3C(O)OONO2, peroxyacyl nitrate}
+    PAR         = IGNORE ;      {parafin carbon bond}
+    ROR         = IGNORE ;      {secondary organic oxy radical}
+    OLE         = IGNORE ;      {olefinic carbon bond}
+    ETH         = 2C + 4H ;     {CH2=CH2 ethene}
+    TOL         = 7C + 8H ;     {C6H5-CH3 toluene}
+    CRES        = IGNORE ;      {cresol and h.m.w. phenols}
+    TO2         = IGNORE ;      {toluene-hydroxyl radical adduct}
+    CRO         = IGNORE ;      {methylphenoxy radical}
+    OPEN        = IGNORE ;      {h.m.w. aromatic oxidation ring fragment}
+    XYL         = 8C + 10H ;    {C6H4-(CH3)2 xylene}
+    MGLY        = 3C + 4H + 2O ; {CH3C(O)C(O)H methylglyoxal}
+    ISOP        = IGNORE ;      {isoprene}
+    XO2         = IGNORE ;      {NO-to-NO2 operation}
+    XO2N        = IGNORE ;      {NO-to-nitrate operation}          
+    CO          = C + O ;       {carbon monoxide}
+
+#DEFFIX
+    H2O         = H + 2O ;      {water}
+    H2          = 2H ;          {molecular hydrogen}
+    O2          = 2O ;          {molecular oxygen}
+    N2          = 2N ;          {molecular nitrogen}
+    CH4         = C + 4H ;      {methane}
+    M           = IGNORE ;      {third body}
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/cell_cycle.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/cell_cycle.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/cell_cycle.def	(revision 2696)
@@ -0,0 +1,139 @@
+{Model of hysteresis and irreversible transition in eukaryotic cell}
+
+#DEFVAR
+A  = ignore; {protein that activates Cdh1 at finish}
+AYp= ignore; {complex}
+Yp = ignore; {inactive (phosphorylated) Cdh1-P/APC}
+XY = ignore; {complex}
+Y  = ignore; {active Cdh1/APC complex}
+X  = ignore; {cyclin/Cdk dimer}
+YX = ignore; {complex}
+XYX= ignore; {complex}
+G  = ignore; {complex}
+TF = ignore; {complex}
+TFp= ignore; {complex}
+C1 = ignore; {complex}
+C2 = ignore; {complex}
+mas= ignore; {mass of the cell} 
+
+
+#EQUATIONS
+mas    = 2mas    : (0.01);
+2mas    = mas    : (0.001);
+PROD    = X      : (0.02);   {k1}
+X      =  PROD   : (0.05);   {k2 prime}
+Y + X  =  YX     : (1000);   {k2f double prime}
+YX     =  Y + X  : (3);      {k2r double prime}
+YX     =  Y      : (1);      {k2  double prime}
+X + Y  =  XY     : (1200);   {k4f}
+XY     =  X + Y  : (35);     {k4r}
+XY     =  X + Yp : (80);     {k4}
+A + Yp =  AYp    : (4000);   {k3f}
+AYp    =  A + Yp : (75);     {k3r}
+AYp    =  A + Y  : (60);     {k3}
+X + YX =  XYX    : (360);    {k5f}
+XYX    =  X + YX : (18);     {k5r}
+XYX    =  2X + Yp: (16);     {k6}
+A      = PROD    : (0.4);    {k6 prime}
+AYp      = Yp    : (0.4);    {k6 prime}
+G       = G + A  : (0.00075);{k5 prime}
+TF + X  = X + TFp: (2.6);    {k7f}
+TFp     = TF     : (4.0);    {k7r}
+TFp + G = C1     : (1.2);    {k8f}
+C1      = TFp + G   : (320); {k8r}
+C1      =  C1 + A   : (0.15);{k9}
+TFp + C1= C2        : (65);  {k10f}
+C2      =  C1 + TFp : (0.2); {k10r}
+C2      = C2 + A    : (3);   {k11}
+
+#LOOKAT X;
+#MONITOR X;
+
+#INITVALUES
+CFACTOR = 1;
+mas=0.1046E+01; 
+TF=0.8979E+01; 
+XY=0.5458E-02; 
+XYX=0.8918E-02; 
+YX=0.2989E-02; 
+X=0.1275E+00; 
+Y=0.1714E-02; 
+Yp=0.9605E+00; 
+AYp=0.2046E-01; 
+A=0.8577E-03; 
+C2=0.1692E-02; 
+C1=0.1769E-04; 
+TFp=0.1731E-01; 
+G=0.9983E+00;
+
+#INLINE F77_INIT
+      TSTART = 0.d0
+      TEND   = 1000.d0
+      DT     = 5.d0
+      Volume = 1000.d0
+#ENDINLINE
+
+#INLINE F77_UTIL
+      DOUBLE PRECISION FUNCTION CellMass(t)
+       ! Cell mass evolution in time
+       DOUBLE PRECISION t
+       DOUBLE PRECISION m0, mstar, mu, one
+       PARAMETER (m0    = 1.0d0)
+       PARAMETER (mstar = 10.0d0)
+       PARAMETER (mu    = 0.01d0)
+       PARAMETER (one   = 1.0d0)
+       CellMass = mstar/(one-(one-mstar/m0)*EXP(-mu*t))
+      END
+#ENDINLINE
+
+#INLINE F90_INIT
+   TSTART = 0.d0
+   TEND   = 1000.d0
+   DT     = 5.d0
+   !Volume = 1000.d0
+#ENDINLINE
+
+#INLINE F90_UTIL
+   DOUBLE PRECISION FUNCTION CellMass(t)
+     ! Cell mass evolution in time
+     DOUBLE PRECISION, INTENT(IN) :: t
+     DOUBLE PRECISION, PARAMETER:: m0    = 1.0d0
+     DOUBLE PRECISION, PARAMETER:: mstar = 10.0d0
+     DOUBLE PRECISION, PARAMETER:: mu    = 0.01d0
+     DOUBLE PRECISION, PARAMETER:: one   = 1.0d0
+     CellMass = mstar/(one-(one-mstar/m0)*EXP(-mu*t))
+   END FUNCTION CellMass
+#ENDINLINE
+
+#INLINE MATLAB_INIT
+   global TSTART TEND DT TEMP
+   TSTART = 0;
+   TEND   = 1000;
+   DT     = 5.0;
+   Volume = 1000.0;
+#ENDINLINE
+
+#INLINE MATLAB_UTIL
+   function m = CellMass(t)
+     % Cell mass evolution in time
+     m = 10/(1+9*exp(-0.01*t));
+   return
+#ENDINLINE
+
+#INLINE C_INIT
+   TSTART = 0.0;
+   TEND   = 1000.0;
+   DT     = 5.0;
+   Volume = 1000.0;
+#ENDINLINE
+
+#INLINE C_UTIL
+   double CellMass(double t)
+   {/* Cell mass evolution in time */
+     const double m0    = 1.0;
+     const double mstar = 10.0;
+     const double mu    = 0.01;
+     const double one   = 1.0;
+     return mstar/(one-(one-mstar/m0)*exp(-mu*t));
+   }
+#ENDINLINE
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/cell_cycle_mRNA.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/cell_cycle_mRNA.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/cell_cycle_mRNA.def	(revision 2696)
@@ -0,0 +1,144 @@
+{Model of hysteresis and irreversible transition in eukaryotic cell
+   WITH mRNA! }
+
+#DEFVAR
+A  = ignore; {protein that activates Cdh1 at finish}
+AYp= ignore; {complex}
+Yp = ignore; {inactive (phosphorylated) Cdh1-P/APC}
+XY = ignore; {complex}
+Y  = ignore; {active Cdh1/APC complex}
+X  = ignore; {cyclin/Cdk dimer}
+YX = ignore; {complex}
+XYX= ignore; {complex}
+G  = ignore; {complex}
+TF = ignore; {complex}
+TFp= ignore; {complex}
+C1 = ignore; {complex}
+C2 = ignore; {complex}
+R  = ignore; {mRNA}
+mas= ignore; {mass of the cell} 
+
+
+#EQUATIONS
+mas     =  2mas     : (0.01);
+2mas    =  mas      : (0.001);
+PROD    =  X        : (0.02);   {k1}
+X       =  PROD     : (0.05);   {k2 prime}
+Y + X   =  YX       : (1000);   {k2f double prime}
+YX      =  Y + X    : (3);      {k2r double prime}
+YX      =  Y        : (1);      {k2  double prime}
+X + Y   =  XY       : (1200);   {k4f}
+XY      =  X + Y    : (35);     {k4r}
+XY      =  X + Yp   : (80);     {k4}
+A + Yp  =  AYp      : (4000);   {k3f}
+AYp     =  A + Yp   : (75);     {k3r}
+AYp     =  A + Y    : (60);     {k3}
+X + YX  =  XYX      : (360);    {k5f}
+XYX     =  X + YX   : (18);     {k5r}
+G       =  G + R    : (0.00075);{k5 prime}
+XYX     =  2X + Yp  : (16);     {k6}
+A       =  PROD     : (0.4);    {k6 prime}
+AYp     =  Yp       : (0.4);    {k6 prime}
+TF + X  =  X + TFp  : (2.5);    {k7f}
+TFp     =  TF       : (4.0);    {k7r}
+TFp + G =  C1       : (1.2);    {k8f}
+C1      =  TFp + G  : (320);    {k8r}
+C1      =  C1 + R   : (0.15);   {k9}
+TFp + C1=  C2       : (65);     {k10f}
+C2      =  C1 + TFp : (0.2);    {k10r}
+C2      =  C2 + R   : (3);      {k11}
+R       =  PROD     : (1);      {krd}
+R       =  R + A    : (1);      {krs}
+
+#LOOKAT X;
+#MONITOR X;
+
+#INITVALUES
+CFACTOR = 1;
+mas = 0.1046E+01; 
+TF  = 0.8979E+01; 
+XY  = 0.5458E-02; 
+XYX = 0.8918E-02; 
+YX  = 0.2989E-02; 
+X   = 0.1275E+00; 
+Y   = 0.1714E-02; 
+Yp  = 0.9605E+00; 
+AYp = 0.2046E-01; 
+A   = 0.8577E-03; 
+C2  = 0.1692E-02; 
+C1  = 0.1769E-04; 
+TFp = 0.1731E-01; 
+G   = 0.9983E+00;
+R   = 0;
+
+#INLINE F77_INIT
+      TSTART = 0.d0
+      TEND   = 1000.d0
+      DT     = 5.d0
+      Volume = 1000.d0
+#ENDINLINE
+
+#INLINE F77_UTIL
+      DOUBLE PRECISION FUNCTION CellMass(t)
+       ! Cell mass evolution in time
+       DOUBLE PRECISION t
+       DOUBLE PRECISION m0, mstar, mu, one
+       PARAMETER (m0    = 1.0d0)
+       PARAMETER (mstar = 10.0d0)
+       PARAMETER (mu    = 0.01d0)
+       PARAMETER (one   = 1.0d0)
+       CellMass = mstar/(one-(one-mstar/m0)*EXP(-mu*t))
+      END
+#ENDINLINE
+
+#INLINE F90_INIT
+   TSTART = 0.d0
+   TEND   = 1000.d0
+   DT     = 5.d0
+   !Volume = 1000.d0
+#ENDINLINE
+
+#INLINE F90_UTIL
+   DOUBLE PRECISION FUNCTION CellMass(t)
+     ! Cell mass evolution in time
+     DOUBLE PRECISION, INTENT(IN) :: t
+     DOUBLE PRECISION, PARAMETER:: m0    = 1.0d0
+     DOUBLE PRECISION, PARAMETER:: mstar = 10.0d0
+     DOUBLE PRECISION, PARAMETER:: mu    = 0.01d0
+     DOUBLE PRECISION, PARAMETER:: one   = 1.0d0
+     CellMass = mstar/(one-(one-mstar/m0)*EXP(-mu*t))
+   END FUNCTION CellMass
+#ENDINLINE
+
+#INLINE MATLAB_INIT
+   global TSTART TEND DT TEMP
+   TSTART = 0;
+   TEND   = 1000;
+   DT     = 5.0;
+   Volume = 1000.0;
+#ENDINLINE
+
+#INLINE MATLAB_UTIL
+   function m = CellMass(t)
+     % Cell mass evolution in time
+     m = 10/(1+9*exp(-0.01*t));
+   return
+#ENDINLINE
+
+#INLINE C_INIT
+   TSTART = 0.0;
+   TEND   = 1000.0;
+   DT     = 5.0;
+   Volume = 1000.0;
+#ENDINLINE
+
+#INLINE C_UTIL
+   double CellMass(double t)
+   {/* Cell mass evolution in time */
+     const double m0    = 1.0;
+     const double mstar = 10.0;
+     const double mu    = 0.01;
+     const double one   = 1.0;
+     return mstar/(one-(one-mstar/m0)*exp(-mu*t));
+   }
+#ENDINLINE
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/chapman.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/chapman.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/chapman.def	(revision 2696)
@@ -0,0 +1,59 @@
+#include small_strato.spc
+#include small_strato.eqn
+ 
+
+//#LANGUAGE Fortran77          {Output Language}
+//#DOUBLE ON                   {Double Precision}
+//#JACOBIAN SPARSE_LU_ROW      {Use Sparse DATA STRUCTURES}
+ 
+//#INTEGRATOR rodas3
+//#DRIVER general
+
+
+#LOOKATALL                     {File Output}
+#MONITOR O3;N;O2;O;NO;O1D;NO2; {Screen Output}
+
+#CHECK O; N;                   {Check Mass Balance}
+ 
+#INITVALUES                    {Initial Values}
+ 
+CFACTOR = 1.    ;              {Conversion Factor} 
+O1D = 9.906E+01 ; 
+O   = 6.624E+08 ; 
+O3  = 5.326E+11 ; 
+O2  = 1.697E+16 ;
+NO  = 8.725E+08 ; 
+NO2 = 2.240E+08 ; 
+M   = 8.120E+16 ;
+ 
+#INLINE F77_INIT
+       	TSTART = (12*3600)
+        TEND = TSTART + (3*24*3600)
+        DT = 0.25*3600  
+        TEMP = 270
+#ENDINLINE         
+ 
+#INLINE F90_INIT
+        TSTART = (12*3600)
+        TEND = TSTART + (3*24*3600)
+        DT = 0.25*3600  
+        TEMP = 270
+#ENDINLINE         
+ 
+#INLINE MATLAB_INIT
+  global TSTART TEND DT TEMP
+  TSTART = (12*3600);
+  TEND = TSTART + (3*24*3600);
+  DT = 0.25*3600;  
+  TEMP = 270;
+#ENDINLINE         
+
+
+#INLINE C_INIT
+        TSTART = (12*3600);
+        TEND = TSTART + (3*24*3600);
+        DT = 0.25*3600;
+        TEMP = 270;
+#ENDINLINE
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/chapman.eqn
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/chapman.eqn	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/chapman.eqn	(revision 2696)
@@ -0,0 +1,13 @@
+#EQUATIONS { Chapman with catalytical loss }
+
+// Classical Chapman
+<R1>  O2   + hv = 2O		: (2.643E-10) * SUN*SUN*SUN;
+<R2>  O2   + O  = O3		: (8.018E-17);
+<R3>  O3   + hv = O   + O2 	: (6.120E-04) * SUN;
+<R4>  O3   + O  = 2O2		: (1.576E-15);
+// Catalytical loss reaction
+<R5>  NO   + O3 = NO2 + O2 	: (6.062E-15);
+<R6>  NO2  + O  = NO  + O2	: (1.069E-11);
+//<R7>  NO2  + hv = NO  + O       : (1.289E-02) * SUN;
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/chapman.spc
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/chapman.spc	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/chapman.spc	(revision 2696)
@@ -0,0 +1,15 @@
+#include atoms
+
+#DEFVAR
+O   = O;    	    { Atomic oxygen }	
+O3  = O + O + O;    { Ozone }
+NO  = N + O;	    { Nitric oxide }	     
+NO2 = N + O + O;    { Nitrogen dioxide }
+
+#DEFFIX
+M   = O + O + N + N;{ Atmospheric generic molecule }
+O2  = O + O;        { Molecular oxygen }
+
+
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/cmaq/cmaq_s99.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/cmaq/cmaq_s99.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/cmaq/cmaq_s99.def	(revision 2696)
@@ -0,0 +1,111 @@
+#include cmaq_s99.spc
+#include cmaq_s99.eqn
+
+#LOOKATALL
+
+#MONITOR O3; NO; NO2; ETHENE;
+
+#INITVALUES
+
+	CFACTOR = 1.    ;              {Conversion Factor}
+        NO2             = 46.0;       
+        NO              = 30.0;       
+        O3P             = 16.0;       
+        O3              = 48.0;       
+        NO3             = 62.0;       
+        N2O5            = 108.0;       
+        HNO3            = 63.0;       
+        O1D2            = 16.0;       
+        HO              = 17.0;       
+        HONO            = 47.0;       
+        HO2             = 33.0;       
+        CO              = 28.0;       
+        HNO4            = 79.0;       
+        HO2H            = 34.0;       
+        SO2             = 64.0;       
+        SULF            = 98.0;       
+        C_O2            = 47.0;       
+        HCHO            = 30.0;       
+        COOH            = 48.0;       
+        MEOH            = 32.0;       
+        RO2_R           = 1.0;       
+        ROOH            = 62.0;       
+        R2O2            = 1.0;       
+        RO2_N           = 1.0;       
+        RNO3            = 133.0;       
+        MEK             = 72.0;       
+        PROD2           = 100.0;       
+        CCO_O2          = 75.0;       
+        PAN             = 121.0;       
+        CCO_OOH         = 76.0;       
+        CCO_OH          = 60.0;       
+        RCO_O2          = 89.0;       
+        PAN2            = 135.0;       
+        CCHO            = 44.0;       
+        RCO_OOH         = 90.0;       
+        RCO_OH          = 74.0;       
+        BZCO_O2         = 137.0;       
+        PBZN            = 183.0;       
+        BZ_O            = 93.0;       
+        MA_RCO3         = 101.0;       
+        MA_PAN          = 147.0;       
+        TBU_O           = 73.0;       
+        ACET            = 58.0;       
+        NPHE            = 139.0;       
+        PHEN            = 94.0;       
+        BZNO2_O         = 139.0;       
+        HOCOO           = 63.0;       
+        HCOOH           = 46.0;       
+        RCHO            = 58.0;       
+        GLY             = 58.0;       
+        MGLY            = 72.0;       
+        BACL            = 86.0;       
+        CRES            = 108.0;       
+        BALD            = 106.0;       
+        METHACRO        = 70.0;       
+        MVK             = 70.0;       
+        ISOPROD         = 70.0;       
+        DCB1            = 58.0;       
+        DCB2            = 72.0;       
+        DCB3            = 72.0;       
+        ETHENE          = 28.0;       
+        ISOPRENE        = 68.0;       
+        TRP1            = 136.0;       
+        ALK1            = 30.1;       
+        ALK2            = 36.7;       
+        ALK3            = 58.6;       
+        ALK4            = 77.6;       
+        ALK5            = 118.9;       
+        ARO1            = 98.6;       
+        ARO2            = 118.7;       
+        OLE1            = 72.3;       
+        OLE2            = 75.8;       
+
+#INLINE F77_INIT
+        TSTART = 12.0D0*3600.0D0
+        TEND   = TSTART + 120.0D0*3600.0D0
+        DT     = 3600.D0
+        TEMP   = 300.0D0
+#ENDINLINE   
+   
+#INLINE F90_INIT
+        TSTART = 12.0d0*3600.0d0
+        TEND   = TSTART + 120.0d0*3600.0d0
+        DT     = 3600.d0
+        TEMP   = 300.0d0
+#ENDINLINE   
+     
+#INLINE MATLAB_INIT
+   global TSTART TEND DT TEMP
+   TSTART = 12*3600;
+   TEND   = TSTART + 120*3600;
+   DT     = 3600;
+   TEMP   = 300;
+#ENDINLINE   
+     
+#INLINE C_INIT
+   TSTART = 12.0*3600.0;
+   TEND   = TSTART + 120.0*3600.0;
+   DT     = 3600.0;
+   TEMP   = 300.0;
+#ENDINLINE
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/cmaq/cmaq_s99.eqn
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/cmaq/cmaq_s99.eqn	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/cmaq/cmaq_s99.eqn	(revision 2696)
@@ -0,0 +1,285 @@
+{ SAPRC-99 Fixed Parameter Mechanism }
+{ Created from BASEMECH.XLS 21-Jul-2004 10:31 }
+{  Base mechanism only.  Reactions of TERP, ALKn, AROn, OLEn removed. }
+{ SAPRC99 }
+
+#EQUATIONS
+{1} NO2 = NO + O3P : ((1.0));
+{2} O3P + O2 + M = O3 : (5.68e-34);
+{3} O3P + O3 = PROD : (8.00e-12);
+{4} O3P + NO + M = NO2 : (1.00e-31);
+{5} O3P + NO2 = NO : (6.50e-12);
+{6} O3P + NO2 = NO3 : (9.00e-32);
+{8} O3 + NO = NO2 : (1.80e-12);
+{9} O3 + NO2 = NO3 : (1.40e-13);
+{10} NO + NO3 = 2NO2 : (1.80e-11);
+{11} NO + NO + O2 = 2NO2 : (3.30e-39);
+{12} NO2 + NO3 = N2O5 : (2.80e-30);
+{13} N2O5 = NO2 + NO3 : (1.00e-03);
+{14} N2O5 + H2O = 2HNO3 : (2.60e-22);
+{17} NO2 + NO3 = NO + NO2 : (4.50e-14);
+{18} NO3 = NO : (1.0);
+{19} NO3 = NO2 + O3P : (1.0);
+{20} O3 = O3P : (1.0);
+{21} O3 = O1D2 : (1.0);
+{22} O1D2 + H2O = 2HO : (2.20e-10);
+{23} O1D2 + M = O3P : (2.09e-11);
+{24} HO + NO = HONO : (7.00e-31);
+{25} HONO = HO + NO : (1.0);
+{26} HONO = HO2 + NO2 : (1.0);
+{27} HO + HONO = NO2 : (2.70e-12);
+{28} HO + NO2 = HNO3 : (2.43e-30);
+{29} HO + NO3 = HO2 + NO2 : (2.00e-11);
+{30} HO + HNO3 = NO3 : (7.20e-15);
+{31} HNO3 = HO + NO2 : (1.0);
+{32} HO + CO = HO2 : (1.30e-13);
+{33} HO + O3 = HO2 : (1.90e-12);
+{34} HO2 + NO = HO + NO2 : (3.40e-12);
+{35} HO2 + NO2 = HNO4 : (1.80e-31);
+{36} HNO4 = HO2 + NO2 : (4.10e-05);
+{37} HNO4 = 0.61HO2 + 0.61NO2 + 0.39HO + 0.39NO3 : (1.0);
+{38} HNO4 + HO = NO2 : (1.50e-12);
+{39} HO2 + O3 = HO : (1.40e-14);
+{40A} HO2 + HO2 = HO2H : (2.20e-13);
+{40B} HO2 + HO2 + H2O = HO2H : (3.08e-34);
+{41} NO3 + HO2 = 0.8HO + 0.8NO2 + 0.2HNO3 : (4.00e-12);
+{42} NO3 + NO3 = 2NO2 : (8.50e-13);
+{43} HO2H = 2HO : (1.0);
+{44} HO2H + HO = HO2 : (2.90e-12);
+{45} HO + HO2 =  PROD: (4.80e-11);
+{S2OH} HO + SO2 = HO2 + SULF : (4.00e-31);
+{H2OH} HO + H2 = HO2 : (7.70e-12);
+{MER1} C_O2 + NO = NO2 + HCHO + HO2 : (2.80e-12);
+{MER4} C_O2 + HO2 = COOH : (3.80e-13);
+{MEN3} C_O2 + NO3 = HCHO + HO2 + NO2 : (1.30e-12);
+{MER5} C_O2 + C_O2 = MEOH + HCHO : (2.45e-14);
+{MER6} C_O2 + C_O2 = 2HCHO + 2HO2 : (5.90e-13);
+{RRNO} RO2_R + NO = NO2 + HO2 : (2.70e-12);
+{RRH2} RO2_R + HO2 = ROOH : (1.90e-13);
+{RRN3} RO2_R + NO3 = NO2 + HO2 : (2.30e-12);
+{RRME} RO2_R + C_O2 = HO2 + 0.75HCHO + 0.25MEOH : (2.00e-13);
+{RRR2} RO2_R + RO2_R = HO2 : (3.50e-14);
+{R2NO} R2O2 + NO = NO2 : (1.0);
+{R2H2} R2O2 + HO2 = HO2 : (1.0);
+{R2N3} R2O2 + NO3 = NO2 : (1.0);
+{R2ME} R2O2 + C_O2 = C_O2 : (1.0);
+{R2RR} R2O2 + RO2_R = RO2_R : (1.0);
+{R2R3} R2O2 + R2O2 = PROD : (1.0);
+{RNNO} RO2_N + NO = RNO3 : (1.0);
+{RNH2} RO2_N + HO2 = ROOH : (1.0);
+{RNME} RO2_N + C_O2 = HO2 + 0.25MEOH + 0.5MEK + 0.5PROD2 + 0.75HCHO
+        : (1.0);
+{RNN3} RO2_N + NO3 = NO2 + HO2 + MEK : (1.0);
+{RNRR} RO2_N + RO2_R = HO2 + 0.5MEK + 0.5PROD2 : (1.0);
+{RNR2} RO2_N + R2O2 = RO2_N : (1.0);
+{RNRN} RO2_N + RO2_N = MEK + HO2 + PROD2 : (1.0);
+{APN2} CCO_O2 + NO2 = PAN : (2.70e-28);
+{DPAN} PAN = CCO_O2 + NO2 : (4.90e-03);
+{APNO} CCO_O2 + NO = C_O2 + NO2 : (7.80e-12);
+{APH2} CCO_O2 + HO2 = 0.75CCO_OOH + 0.25CCO_OH + 0.25O3 : (4.30e-13);
+{APN3} CCO_O2 + NO3 = C_O2 + NO2 : (4.00e-12);
+{APME} CCO_O2 + C_O2 = CCO_OH + HCHO : (1.80e-12);
+{APRR} CCO_O2 + RO2_R = CCO_OH : (7.50e-12);
+{APR2} CCO_O2 + R2O2 = CCO_O2 : (1.0);
+{APRN} CCO_O2 + RO2_N = CCO_OH + PROD2 : (1.0);
+{APAP} CCO_O2 + CCO_O2 = 2C_O2 : (2.90e-12);
+{PPN2} RCO_O2 + NO2 = PAN2 : (1.20e-11);
+{PAN2} PAN2 = RCO_O2 + NO2 : (2.00e+15);
+{PPNO} RCO_O2 + NO = NO2 + CCHO + RO2_R : (1.25e-11);
+{PPH2} RCO_O2 + HO2 = 0.75RCO_OOH + 0.25RCO_OH + 0.25O3 : (1.0);
+{PPN3} RCO_O2 + NO3 = NO2 + CCHO + RO2_R : (1.0);
+{PPME} RCO_O2 + C_O2 = RCO_OH + HCHO : (1.0);
+{PPRR} RCO_O2 + RO2_R = RCO_OH : (1.0);
+{PPR2} RCO_O2 + R2O2 = RCO_O2 : (1.0);
+{PPRN} RCO_O2 + RO2_N = RCO_OH + PROD2 : (1.0);
+{PPAP} RCO_O2 + CCO_O2 = C_O2 + CCHO + RO2_R : (1.0);
+{PPPP} RCO_O2 + RCO_O2 = 2CCHO + 2RO2_R : (1.0);
+{BPN2} BZCO_O2 + NO2 = PBZN : (1.37e-11);
+{BPAN} PBZN = BZCO_O2 + NO2 : (7.90e+16);
+{BPNO} BZCO_O2 + NO = NO2 + BZ_O + R2O2 : (1.0);
+{BPH2} BZCO_O2 + HO2 = 0.75RCO_OOH + 0.25RCO_OH + 0.25O3 : (1.0);
+{BPN3} BZCO_O2 + NO3 = NO2 + BZ_O + R2O2 : (1.0);
+{BPME} BZCO_O2 + C_O2 = RCO_OH + HCHO : (1.0);
+{BPRR} BZCO_O2 + RO2_R = RCO_OH : (1.0);
+{BPR2} BZCO_O2 + R2O2 = BZCO_O2 : (1.0);
+{BPRN} BZCO_O2 + RO2_N = RCO_OH + PROD2 : (1.0);
+{BPAP} BZCO_O2 + CCO_O2 = C_O2 + BZ_O + R2O2 : (1.0);
+{BPPP} BZCO_O2 + RCO_O2 = CCHO + RO2_R + BZ_O + R2O2 : (1.0);
+{BPBP} BZCO_O2 + BZCO_O2 = 2BZ_O + 2R2O2 : (1.0);
+{MPN2} MA_RCO3 + NO2 = MA_PAN : (1.0);
+{MPPN} MA_PAN = MA_RCO3 + NO2 : (1.60e+16);
+{MPNO} MA_RCO3 + NO = NO2 + HCHO + CCO_O2 : (1.0);
+{MPH2} MA_RCO3 + HO2 = 0.75RCO_OOH + 0.25RCO_OH + 0.25O3 : (1.0);
+{MPN3} MA_RCO3 + NO3 = NO2 + HCHO + CCO_O2 : (1.0);
+{MPME} MA_RCO3 + C_O2 = RCO_OH + HCHO : (1.0);
+{MPRR} MA_RCO3 + RO2_R = RCO_OH : (1.0);
+{MPR2} MA_RCO3 + R2O2 = MA_RCO3 : (1.0);
+{MPRN} MA_RCO3 + RO2_N = 2RCO_OH : (1.0);
+{MPAP} MA_RCO3 + CCO_O2 = C_O2 + HCHO + CCO_O2 : (1.0);
+{MPPP} MA_RCO3 + RCO_O2 = HCHO + CCO_O2 + CCHO + RO2_R : (1.0);
+{MPBP} MA_RCO3 + BZCO_O2 = HCHO + CCO_O2 + BZ_O + R2O2 : (1.0);
+{MPMP} MA_RCO3 + MA_RCO3 = 2HCHO + 2CCO_O2 : (1.0);
+{TBON} TBU_O + NO2 = RNO3 : (2.40e-11);
+{TBOD} TBU_O = ACET + C_O2 : (7.50e+14);
+{BRN2} BZ_O + NO2 = NPHE : (2.30e-11);
+{BRH2} BZ_O + HO2 = PHEN : (1.0);
+{BRXX} BZ_O = PHEN : (1.00e-03);
+{BNN2} BZNO2_O + NO2 = PROD : (1.0);
+{BNH2} BZNO2_O + HO2 = NPHE : (1.0);
+{BNXX} BZNO2_O = NPHE : (1.0);
+{FAHV} HCHO = 2HO2 + CO : (1.0);
+{FAVS} HCHO = CO : (1.0);
+{FAOH} HCHO + HO = HO2 + CO : (8.60e-12);
+{FAH2} HCHO + HO2 = HOCOO : (9.70e-15);
+{FAHR} HOCOO = HO2 + HCHO : (2.40e+12);
+{FAHN} HOCOO + NO = HCOOH + NO2 + HO2 : (1.0);
+{FAN3} HCHO + NO3 = HNO3 + HO2 + CO : (2.00e-12);
+{AAOH} CCHO + HO = CCO_O2 : (5.60e-12);
+{AAHV} CCHO = CO + HO2 + C_O2 : (1.0);
+{AAN3} CCHO + NO3 = HNO3 + CCO_O2 : (1.40e-12);
+{PAOH} RCHO + HO = 0.034RO2_R + 0.001RO2_N + 0.965RCO_O2 + 0.034CO +
+         0.034CCHO : (2.00e-11);
+{PAHV} RCHO = CCHO + RO2_R + CO + HO2 : (1.0);
+{PAN3} RCHO + NO3 = HNO3 + RCO_O2 : (1.40e-12);
+{K3OH} ACET + HO = HCHO + CCO_O2 + R2O2 : (1.10e-12);
+{K3HV} ACET = CCO_O2 + C_O2 : (1.0);
+{K4OH} MEK + HO = 0.37RO2_R + 0.042RO2_N + 0.616R2O2 + 0.492CCO_O2 +
+         0.096RCO_O2 + 0.115HCHO + 0.482CCHO + 0.37RCHO : (1.30e-12);
+{K4HV} MEK = CCO_O2 + CCHO + RO2_R : (1.50e-1);
+{MeOH} MEOH + HO = HCHO + HO2 : (3.10e-12);
+{MER9} COOH + HO = 0.35HCHO + 0.35HO + 0.65C_O2 : (2.90e-12);
+{MERA} COOH = HCHO + HO2 + HO : (1.0);
+{LPR9} ROOH + HO = RCHO + 0.34RO2_R + 0.66HO : (1.10e-11);
+{LPRA} ROOH = RCHO + HO2 + HO : (1.0);
+{GLHV} GLY = 2CO + 2HO2 : (1.0);
+{GLVM} GLY = HCHO + CO : (6.00e-3);
+{GLOH} GLY + HO = 0.63HO2 + 1.26CO + 0.37RCO_O2 : (1.10e-11);
+{GLN3} GLY + NO3 = HNO3 + 0.63HO2 + 1.26CO + 0.37RCO_O2 : (2.80e-12);
+{MGHV} MGLY = HO2 + CO + CCO_O2 : (1.0);
+{MGOH} MGLY + HO = CO + CCO_O2 : (1.50e-11);
+{MGN3} MGLY + NO3 = HNO3 + CO + CCO_O2 : (1.40e-12);
+{BAHV} BACL = 2CCO_O2 : (1.0);
+{PHOH} PHEN + HO = 0.24BZ_O + 0.76RO2_R + 0.23GLY : (2.63e-11);
+{PHN3} PHEN + NO3 = HNO3 + BZ_O : (3.78e-12);
+{CROH} CRES + HO = 0.24BZ_O + 0.76RO2_R + 0.23MGLY : (4.20e-11);
+{CRN3} CRES + NO3 = HNO3 + BZ_O : (1.37e-11);
+{NPN3} NPHE + NO3 = HNO3 + BZNO2_O : (1.0);
+{BZOH} BALD + HO = BZCO_O2 : (1.29e-11);
+{BZHV} BALD = PROD : (5.00e-2);
+{BZNT} BALD + NO3 = HNO3 + BZCO_O2 : (1.40e-12);
+{MAOH} METHACRO + HO = 0.5RO2_R + 0.416CO + 0.084HCHO + 0.416MEK +
+         0.084MGLY + 0.5MA_RCO3 : (1.86e-11);
+{MAO3} METHACRO + O3 = 0.008HO2 + 0.1RO2_R + 0.208HO + 0.1RCO_O2 + 0.45CO +
+         0.2HCHO + 0.9MGLY + 0.333HCOOH : (1.36e-15);
+{MAN3} METHACRO + NO3 = 0.5HNO3 + 0.5RO2_R + 0.5CO + 0.5MA_RCO3
+        : (1.50e-12);
+{MAOP} METHACRO + O3P = RCHO : (6.34e-12);
+{MAHV} METHACRO = 0.34HO2 + 0.33RO2_R + 0.33HO + 0.67CCO_O2 + 0.67CO +
+         0.67HCHO + 0.33MA_RCO3 : (4.10e-3);
+{MVOH} MVK + HO = 0.3RO2_R + 0.025RO2_N + 0.675R2O2 + 0.675CCO_O2 +
+         0.3HCHO + 0.675RCHO + 0.3MGLY : (4.14e-12);
+{MVO3} MVK + O3 = 0.064HO2 + 0.05RO2_R + 0.164HO + 0.05RCO_O2 + 0.475CO +
+         0.1HCHO + 0.95MGLY + 0.351HCOOH : (7.51e-16);
+{MVOP} MVK + O3P = 0.45RCHO + 0.55MEK : (4.32e-12);
+{MVHV} MVK = 0.3C_O2 + 0.7CO + 0.7PROD2 + 0.3MA_RCO3
+             : (2.10e-3);
+{IPOH} ISOPROD + HO = 0.67RO2_R + 0.041RO2_N + 0.289MA_RCO3 + 0.336CO +
+         0.055HCHO + 0.129CCHO + 0.013RCHO + 0.15MEK + 0.332PROD2 +
+         0.15GLY + 0.174MGLY : (6.19e-11);
+{IPO3} ISOPROD + O3 = 0.4HO2 + 0.048RO2_R + 0.048RCO_O2 + 0.285HO +
+         0.498CO + 0.125HCHO + 0.047CCHO + 0.21MEK + 0.023GLY +
+         0.742MGLY + 0.1HCOOH + 0.372RCO_OH : (4.18e-18);
+{IPN3} ISOPROD + NO3 = 0.799RO2_R + 0.051RO2_N + 0.15MA_RCO3 + 0.572CO +
+         0.15HNO3 + 0.227HCHO + 0.218RCHO + 0.008MGLY + 0.572RNO3
+        : (1.00e-13);
+{IPHV} ISOPROD = 1.233HO2 + 0.467CCO_O2 + 0.3RCO_O2 + 1.233CO + 0.3HCHO +
+         0.467CCHO + 0.233MEK : (4.10e-3);
+{K6OH} PROD2 + HO = 0.379HO2 + 0.473RO2_R + 0.07RO2_N + 0.029CCO_O2 +
+         0.049RCO_O2 + 0.213HCHO + 0.084CCHO + 0.558RCHO + 0.115MEK +
+         0.329PROD2 : (1.50e-11);
+{K6HV} PROD2 = 0.96RO2_R + 0.04RO2_N + 0.515R2O2 + 0.667CCO_O2 +
+         0.333RCO_O2 + 0.506HCHO + 0.246CCHO + 0.71RCHO 
+         : (2.00e-2);
+{RNOH} RNO3 + HO = 0.338NO2 + 0.113HO2 + 0.376RO2_R + 0.173RO2_N +
+         0.596R2O2 + 0.01HCHO + 0.439CCHO + 0.213RCHO + 0.006ACET +
+         0.177MEK + 0.048PROD2 + 0.31RNO3 : (7.80e-12);
+{RNHV} RNO3 = NO2 + 0.341HO2 + 0.564RO2_R + 0.095RO2_N + 0.152R2O2 +
+         0.134HCHO + 0.431CCHO + 0.147RCHO + 0.02ACET + 0.243MEK +
+         0.435PROD2 : (1.0);
+{D1OH} DCB1 + HO = RCHO + RO2_R + CO : (5.00e-11);
+{D1O3} DCB1 + O3 = 1.5HO2 + 0.5HO + 1.5CO + GLY : (2.00e-18);
+{D2OH} DCB2 + HO = R2O2 + RCHO + CCO_O2 : (5.00e-11);
+{D2HV} DCB2 = RO2_R + 0.5CCO_O2 + 0.5HO2 + CO + R2O2 + 0.5GLY + 0.5MGLY
+        : (3.65e-1);
+{D3OH} DCB3 + HO = R2O2 + RCHO + CCO_O2 : (5.00e-11);
+{D3HV} DCB3 = RO2_R + 0.5CCO_O2 + 0.5HO2 + CO + R2O2 + 0.5GLY + 0.5MGLY
+        : (7.28e+0);
+{c1OH} CH4 + HO = C_O2 : (2.15e-12);
+{etOH} ETHENE + HO = RO2_R + 1.61HCHO + 0.195CCHO : (1.96e-12);
+{etO3} ETHENE + O3 = 0.12HO + 0.12HO2 + 0.5CO + HCHO + 0.37HCOOH
+        : (9.14e-15);
+{etN3} ETHENE + NO3 = RO2_R + RCHO : (4.39e-13);
+{etOA} ETHENE + O3P = 0.5HO2 + 0.2RO2_R + 0.3C_O2 + 0.491CO + 0.191HCHO +
+         0.25CCHO + 0.009GLY : (1.04e-11);
+{isOH} ISOPRENE + HO = 0.907RO2_R + 0.093RO2_N + 0.079R2O2 + 0.624HCHO +
+         0.23METHACRO + 0.32MVK + 0.357ISOPROD : (2.50e-11);
+{isO3} ISOPRENE + O3 = 0.266HO + 0.066RO2_R + 0.008RO2_N + 0.126R2O2 +
+         0.192MA_RCO3 + 0.275CO + 0.592HCHO + 0.1PROD2 + 0.39METHACRO +
+         0.16MVK + 0.204HCOOH + 0.15RCO_OH : (7.86e-15);
+{isN3} ISOPRENE + NO3 = 0.187NO2 + 0.749RO2_R + 0.064RO2_N + 0.187R2O2 +
+         0.936ISOPROD : (3.03e-12);
+{isOP} ISOPRENE + O3P = 0.01RO2_N + 0.24R2O2 + 0.25C_O2 + 0.24MA_RCO3 +
+         0.24HCHO + 0.75PROD2 : (3.60e-11);
+{t1OH} TRP1 + HO = 0.75RO2_R + 0.25RO2_N + 0.5R2O2 + 0.276HCHO +
+         0.474RCHO + 0.276PROD2 : (1.83e-11);
+{t1O3} TRP1 + O3 = 0.567HO + 0.033HO2 + 0.031RO2_R + 0.18RO2_N +
+         0.729R2O2 + 0.123CCO_O2 + 0.201RCO_O2 + 0.157CO + 0.235HCHO +
+         0.205RCHO + 0.13ACET + 0.276PROD2 + 0.001GLY + 0.031BACL +
+         0.103HCOOH + 0.189RCO_OH : (1.08e-15);
+{t1N3} TRP1 + NO3 = 0.474NO2 + 0.276RO2_R + 0.25RO2_N + 0.75R2O2 +
+         0.474RCHO + 0.276RNO3 : (3.66e-12);
+{t1OP} TRP1 + O3P = 0.147RCHO + 0.853PROD2 : (3.27e-11);
+{a1OH} ALK1 + HO = RO2_R + CCHO : (1.37e-12);
+{a2OH} ALK2 + HO = 0.246HO + 0.121HO2 + 0.612RO2_R + 0.021RO2_N + 0.16CO +
+         0.039HCHO + 0.155RCHO + 0.417ACET + 0.248GLY + 0.121HCOOH
+        : (9.87e-12);
+{a3OH} ALK3 + HO = 0.695RO2_R + 0.07RO2_N + 0.559R2O2 + 0.236TBU_O +
+         0.026HCHO + 0.445CCHO + 0.122RCHO + 0.024ACET + 0.332MEK
+        : (1.02e-11);
+{a4OH} ALK4 + HO = 0.835RO2_R + 0.143RO2_N + 0.936R2O2 + 0.011C_O2 +
+         0.011CCO_O2 + 0.002CO + 0.024HCHO + 0.455CCHO + 0.244RCHO +
+         0.452ACET + 0.11MEK + 0.125PROD2 : (5.95e-12);
+{a5OH} ALK5 + HO = 0.653RO2_R + 0.347RO2_N + 0.948R2O2 + 0.026HCHO +
+         0.099CCHO + 0.204RCHO + 0.072ACET + 0.089MEK + 0.417PROD2
+        : (1.11e-11);
+{b1OH} ARO1 + HO = 0.224HO2 + 0.765RO2_R + 0.011RO2_N + 0.055PROD2 +
+         0.118GLY + 0.119MGLY + 0.017PHEN + 0.207CRES + 0.059BALD +
+         0.491DCB1 + 0.108DCB2 + 0.051DCB3 : (1.81e-12);
+{b2OH} ARO2 + HO = 0.187HO2 + 0.804RO2_R + 0.009RO2_N + 0.097GLY +
+         0.287MGLY + 0.087BACL + 0.187CRES + 0.05BALD + 0.561DCB1 +
+         0.099DCB2 + 0.093DCB3 : (2.64e-11);
+{o1OH} OLE1 + HO = 0.91RO2_R + 0.09RO2_N + 0.205R2O2 + 0.732HCHO +
+         0.294CCHO + 0.497RCHO + 0.005ACET + 0.119PROD2 : (7.10e-12);
+{o1O3} OLE1 + O3 = 0.155HO + 0.056HO2 + 0.022RO2_R + 0.001RO2_N +
+         0.076C_O2 + 0.345CO + 0.5HCHO + 0.154CCHO + 0.363RCHO +
+         0.001ACET + 0.215PROD2 + 0.185HCOOH + 0.05CCO_OH + 0.119RCO_OH
+        : (2.62e-15);
+{o1N3} OLE1 + NO3 = 0.824RO2_R + 0.176RO2_N + 0.488R2O2 + 0.009CCHO +
+         0.037RCHO + 0.024ACET + 0.511RNO3 : (4.45e-14);
+{o1OP} OLE1 + O3P = 0.45RCHO + 0.437MEK + 0.113PROD2 : (1.07e-11);
+{o2OH} OLE2 + HO = 0.918RO2_R + 0.082RO2_N + 0.001R2O2 + 0.244HCHO +
+         0.732CCHO + 0.511RCHO + 0.127ACET + 0.072MEK + 0.061BALD +
+         0.025METHACRO + 0.025ISOPROD : (1.74e-11);
+{o2O3} OLE2 + O3 = 0.378HO + 0.003HO2 + 0.033RO2_R + 0.002RO2_N +
+         0.137R2O2 + 0.197C_O2 + 0.137CCO_O2 + 0.006RCO_O2 + 0.265CO +
+         0.269HCHO + 0.456CCHO + 0.305RCHO + 0.045ACET + 0.026MEK +
+         0.006PROD2 + 0.042BALD + 0.026METHACRO + 0.073HCOOH +
+         0.129CCO_OH + 0.303RCO_OH : (5.02e-16);
+{o2N3} OLE2 + NO3 = 0.391NO2 + 0.442RO2_R + 0.136RO2_N + 0.711R2O2 +
+         0.03C_O2 + 0.079HCHO + 0.507CCHO + 0.151RCHO + 0.102ACET +
+         0.001MEK + 0.015BALD + 0.048MVK + 0.321RNO3 : (7.26e-13);
+{o2OP} OLE2 + O3P = 0.013HO2 + 0.012RO2_R + 0.001RO2_N + 0.012CO +
+         0.069RCHO + 0.659MEK + 0.259PROD2 + 0.012METHACRO : (2.09e-11);
+{c1OH} HCOOH + HO = HO2 : (4.5E-13);
+{c2OH} CCO_OH + HO = 0.13RO2_R + 0.87C_O2 + 0.13MGLY : (8.00E-13);
+{c3OH} RCO_OH + HO = RO2_R + 0.605CCHO + 0.21RCHO + 0.185BACL : (1.16E-12);
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/cmaq/cmaq_s99.spc
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/cmaq/cmaq_s99.spc	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/cmaq/cmaq_s99.spc	(revision 2696)
@@ -0,0 +1,82 @@
+#include atoms
+
+#DEFVAR   
+	NO2             = N + 2O;
+	NO              = N + O;
+	O3P             = O;
+	O3              = 3O;
+	NO3             = N + 3O;
+	N2O5            = 2N + 5O;
+	HNO3            = H + N + 3O;
+	O1D2            = O;
+	HO              = H + O;
+	HONO            = H + 2O + N;
+	HO2             = H + 2O;
+	CO              = C + O;
+	HNO4            = H + 4O + N;
+	HO2H            = 2H + 2O;
+	SO2             = S + 2O;
+	SULF            = IGNORE;
+	C_O2            = IGNORE;
+	HCHO            = 2H + C + O;
+	COOH            = H + 2O + C;
+	MEOH            = IGNORE;
+	RO2_R           = IGNORE;
+	ROOH            = IGNORE;
+	R2O2            = IGNORE;
+	RO2_N           = IGNORE;
+	RNO3            = IGNORE;
+	MEK             = IGNORE;
+	PROD2           = IGNORE;
+	CCO_O2          = IGNORE;
+	PAN             = IGNORE;
+	CCO_OOH         = 2C + 3O + H;
+	CCO_OH          = 2O + 2C + H;
+	RCO_O2          = IGNORE;
+	PAN2            = IGNORE;
+	CCHO            = 2C + H + O;
+	RCO_OOH         = IGNORE;
+	RCO_OH          = IGNORE;
+	BZCO_O2         = IGNORE;
+	PBZN            = IGNORE;
+	BZ_O            = IGNORE;
+	MA_RCO3         = IGNORE;
+	MA_PAN          = IGNORE;
+	TBU_O           = IGNORE;
+	ACET            = IGNORE;
+	NPHE            = IGNORE;
+	PHEN            = IGNORE;
+	BZNO2_O         = IGNORE;
+	HOCOO           = IGNORE;
+	HCOOH           = IGNORE;
+	RCHO            = IGNORE;
+	GLY             = IGNORE;
+	MGLY            = IGNORE;
+	BACL            = IGNORE;
+	CRES            = IGNORE;
+	BALD            = IGNORE;
+	METHACRO        = IGNORE;
+	MVK             = IGNORE;
+	ISOPROD         = IGNORE;
+	DCB1            = IGNORE;
+	DCB2            = IGNORE;
+	DCB3            = IGNORE;
+	ETHENE          = 2C + 4H;
+	ISOPRENE        = IGNORE;
+	TRP1            = IGNORE;
+	ALK1            = IGNORE;
+	ALK2            = IGNORE;
+	ALK3            = IGNORE;
+	ALK4            = IGNORE;
+	ALK5            = IGNORE;
+	ARO1            = IGNORE;
+	ARO2            = IGNORE;
+	OLE1            = IGNORE;
+	OLE2            = IGNORE;
+
+#DEFFIX	
+	M		= IGNORE;
+	O2		= 2O;
+	H2O		= 2H + O;
+	H2		= 2H;	
+	CH4		= C + 4H;	
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/cmaq/gc_spc.ext
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/cmaq/gc_spc.ext	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/cmaq/gc_spc.ext	(revision 2696)
@@ -0,0 +1,91 @@
+
+C RCS file, release, date & time of last delta, author, state, [and locker]
+C $Header: /project/air5/sjr/CMAS4.5/rel/models/include/ICL/src/mech/saprc99/GC_SPC.EXT,v 1.1.1.1 2005/09/09 19:03:12 sjr Exp $ 
+
+C what(1) key, module and SID; SCCS file; date and time of last delta:
+C %W% %P% %G% %U%
+
+C------------------------------------------------------ 
+C  This file is generated by gen_includes. 
+C------------------------------------------------------ 
+C Mechanism Name: SAPRC99
+
+        INTEGER        N_GC_SPC
+        PARAMETER     (N_GC_SPC = 72)
+        INTEGER        N_GC_SPCD
+        PARAMETER     (N_GC_SPCD = N_GC_SPC + 1 )
+        CHARACTER*16   GC_SPC(N_GC_SPCD)
+        REAL           GC_MOLWT(N_GC_SPCD)
+
+        DATA          GC_SPC(  1), GC_MOLWT(  1) / 'NO2             ', 46.0 /
+        DATA          GC_SPC(  2), GC_MOLWT(  2) / 'NO              ', 30.0 /
+        DATA          GC_SPC(  3), GC_MOLWT(  3) / 'O3P             ', 16.0 /
+        DATA          GC_SPC(  4), GC_MOLWT(  4) / 'O3              ', 48.0 /
+        DATA          GC_SPC(  5), GC_MOLWT(  5) / 'NO3             ', 62.0 /
+        DATA          GC_SPC(  6), GC_MOLWT(  6) / 'N2O5            ', 108.0 /
+        DATA          GC_SPC(  7), GC_MOLWT(  7) / 'HNO3            ', 63.0 /
+        DATA          GC_SPC(  8), GC_MOLWT(  8) / 'O1D2            ', 16.0 /
+        DATA          GC_SPC(  9), GC_MOLWT(  9) / 'HO              ', 17.0 /
+        DATA          GC_SPC( 10), GC_MOLWT( 10) / 'HONO            ', 47.0 /
+        DATA          GC_SPC( 11), GC_MOLWT( 11) / 'HO2             ', 33.0 /
+        DATA          GC_SPC( 12), GC_MOLWT( 12) / 'CO              ', 28.0 /
+        DATA          GC_SPC( 13), GC_MOLWT( 13) / 'HNO4            ', 79.0 /
+        DATA          GC_SPC( 14), GC_MOLWT( 14) / 'HO2H            ', 34.0 /
+        DATA          GC_SPC( 15), GC_MOLWT( 15) / 'SO2             ', 64.0 /
+        DATA          GC_SPC( 16), GC_MOLWT( 16) / 'SULF            ', 98.0 /
+        DATA          GC_SPC( 17), GC_MOLWT( 17) / 'C_O2            ', 47.0 /
+        DATA          GC_SPC( 18), GC_MOLWT( 18) / 'HCHO            ', 30.0 /
+        DATA          GC_SPC( 19), GC_MOLWT( 19) / 'COOH            ', 48.0 /
+        DATA          GC_SPC( 20), GC_MOLWT( 20) / 'MEOH            ', 32.0 /
+        DATA          GC_SPC( 21), GC_MOLWT( 21) / 'RO2_R           ', 1.0 /
+        DATA          GC_SPC( 22), GC_MOLWT( 22) / 'ROOH            ', 62.0 /
+        DATA          GC_SPC( 23), GC_MOLWT( 23) / 'R2O2            ', 1.0 /
+        DATA          GC_SPC( 24), GC_MOLWT( 24) / 'RO2_N           ', 1.0 /
+        DATA          GC_SPC( 25), GC_MOLWT( 25) / 'RNO3            ', 133.0 /
+        DATA          GC_SPC( 26), GC_MOLWT( 26) / 'MEK             ', 72.0 /
+        DATA          GC_SPC( 27), GC_MOLWT( 27) / 'PROD2           ', 100.0 /
+        DATA          GC_SPC( 28), GC_MOLWT( 28) / 'CCO_O2          ', 75.0 /
+        DATA          GC_SPC( 29), GC_MOLWT( 29) / 'PAN             ', 121.0 /
+        DATA          GC_SPC( 30), GC_MOLWT( 30) / 'CCO_OOH         ', 76.0 /
+        DATA          GC_SPC( 31), GC_MOLWT( 31) / 'CCO_OH          ', 60.0 /
+        DATA          GC_SPC( 32), GC_MOLWT( 32) / 'RCO_O2          ', 89.0 /
+        DATA          GC_SPC( 33), GC_MOLWT( 33) / 'PAN2            ', 135.0 /
+        DATA          GC_SPC( 34), GC_MOLWT( 34) / 'CCHO            ', 44.0 /
+        DATA          GC_SPC( 35), GC_MOLWT( 35) / 'RCO_OOH         ', 90.0 /
+        DATA          GC_SPC( 36), GC_MOLWT( 36) / 'RCO_OH          ', 74.0 /
+        DATA          GC_SPC( 37), GC_MOLWT( 37) / 'BZCO_O2         ', 137.0 /
+        DATA          GC_SPC( 38), GC_MOLWT( 38) / 'PBZN            ', 183.0 /
+        DATA          GC_SPC( 39), GC_MOLWT( 39) / 'BZ_O            ', 93.0 /
+        DATA          GC_SPC( 40), GC_MOLWT( 40) / 'MA_RCO3         ', 101.0 /
+        DATA          GC_SPC( 41), GC_MOLWT( 41) / 'MA_PAN          ', 147.0 /
+        DATA          GC_SPC( 42), GC_MOLWT( 42) / 'TBU_O           ', 73.0 /
+        DATA          GC_SPC( 43), GC_MOLWT( 43) / 'ACET            ', 58.0 /
+        DATA          GC_SPC( 44), GC_MOLWT( 44) / 'NPHE            ', 139.0 /
+        DATA          GC_SPC( 45), GC_MOLWT( 45) / 'PHEN            ', 94.0 /
+        DATA          GC_SPC( 46), GC_MOLWT( 46) / 'BZNO2_O         ', 139.0 /
+        DATA          GC_SPC( 47), GC_MOLWT( 47) / 'HOCOO           ', 63.0 /
+        DATA          GC_SPC( 48), GC_MOLWT( 48) / 'HCOOH           ', 46.0 /
+        DATA          GC_SPC( 49), GC_MOLWT( 49) / 'RCHO            ', 58.0 /
+        DATA          GC_SPC( 50), GC_MOLWT( 50) / 'GLY             ', 58.0 /
+        DATA          GC_SPC( 51), GC_MOLWT( 51) / 'MGLY            ', 72.0 /
+        DATA          GC_SPC( 52), GC_MOLWT( 52) / 'BACL            ', 86.0 /
+        DATA          GC_SPC( 53), GC_MOLWT( 53) / 'CRES            ', 108.0 /
+        DATA          GC_SPC( 54), GC_MOLWT( 54) / 'BALD            ', 106.0 /
+        DATA          GC_SPC( 55), GC_MOLWT( 55) / 'METHACRO        ', 70.0 /
+        DATA          GC_SPC( 56), GC_MOLWT( 56) / 'MVK             ', 70.0 /
+        DATA          GC_SPC( 57), GC_MOLWT( 57) / 'ISOPROD         ', 70.0 /
+        DATA          GC_SPC( 58), GC_MOLWT( 58) / 'DCB1            ', 58.0 /
+        DATA          GC_SPC( 59), GC_MOLWT( 59) / 'DCB2            ', 72.0 /
+        DATA          GC_SPC( 60), GC_MOLWT( 60) / 'DCB3            ', 72.0 /
+        DATA          GC_SPC( 61), GC_MOLWT( 61) / 'ETHENE          ', 28.0 /
+        DATA          GC_SPC( 62), GC_MOLWT( 62) / 'ISOPRENE        ', 68.0 /
+        DATA          GC_SPC( 63), GC_MOLWT( 63) / 'TRP1            ', 136.0 /
+        DATA          GC_SPC( 64), GC_MOLWT( 64) / 'ALK1            ', 30.1 /
+        DATA          GC_SPC( 65), GC_MOLWT( 65) / 'ALK2            ', 36.7 /
+        DATA          GC_SPC( 66), GC_MOLWT( 66) / 'ALK3            ', 58.6 /
+        DATA          GC_SPC( 67), GC_MOLWT( 67) / 'ALK4            ', 77.6 /
+        DATA          GC_SPC( 68), GC_MOLWT( 68) / 'ALK5            ', 118.9 /
+        DATA          GC_SPC( 69), GC_MOLWT( 69) / 'ARO1            ', 98.6 /
+        DATA          GC_SPC( 70), GC_MOLWT( 70) / 'ARO2            ', 118.7 /
+        DATA          GC_SPC( 71), GC_MOLWT( 71) / 'OLE1            ', 72.3 /
+        DATA          GC_SPC( 72), GC_MOLWT( 72) / 'OLE2            ', 75.8 /
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/cmaq/mech.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/cmaq/mech.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/cmaq/mech.def	(revision 2696)
@@ -0,0 +1,301 @@
+
+C RCS file, release, date & time of last delta, author, state, [and locker]
+C $Header: /project/air5/sjr/CMAS4.5/rel/models/include/ICL/src/mech/saprc99/mech.def,v 1.1.1.1 2005/09/09 19:03:12 sjr Exp $ 
+
+C what(1) key, module and SID; SCCS file; date and time of last delta:
+C %W% %P% %G% %U%
+
+! SAPRC-99 Fixed Parameter Mechanism 
+! Created from BASEMECH.XLS 21-Jan-2000 18:19
+! Modified by Jerry Gipson 02/08/01 for Models3 implementation:
+!   1)  Added Mechanism name
+!   2)  Changed REACTIONS(CM)  to REACTIONS[CM]
+!   3)  Changed species BZ(NO2)_O to BZNO2_O
+!   4)  Added zero activation energies for <32> (special type %3)
+!   5)  Added recations for formic, acetic, and higher organic acids
+!   6)  Modified labels of photolysis reactions 
+
+
+SAPRC99
+
+REACTIONS[CM] =
+<1> NO2 = NO + O3P # 1.0/<NO2_SAPRC99>;
+<2> O3P + O2 + M = O3 # 5.68e-34^-2.80;
+<3> O3P + O3 =  # 8.00e-12@2060;
+<4> O3P + NO + M = NO2 # 1.00e-31^-1.60;
+<5> O3P + NO2 = NO # 6.50e-12@-120;
+<6> O3P + NO2 = NO3 # 9.00e-32^-2.00&2.20e-11&0.80&1.0;
+<8> O3 + NO = NO2 # 1.80e-12@1370;
+<9> O3 + NO2 = NO3 # 1.40e-13@2470;
+<10> NO + NO3 = 2*NO2 # 1.80e-11@-110;
+<11> NO + NO + O2 = 2*NO2 # 3.30e-39@-530;
+<12> NO2 + NO3 = N2O5 # 2.80e-30^-3.50&2.00e-12^0.20&0.45&1.0;
+<13> N2O5 = NO2 + NO3 # 1.00e-03^-3.50@11000&9.70e+14^0.10@11080&0.45&1.0;
+<14> N2O5 + H2O = 2*HNO3 # 2.60e-22;
+<17> NO2 + NO3 = NO + NO2 # 4.50e-14@1260;
+<18> NO3 = NO # 1.0/<NO3NO_SAPRC99>;
+<19> NO3 = NO2 + O3P # 1.0/<NO3NO2_SAPRC99>;
+<20> O3 = O3P # 1.0/<O3O3P_SAPRC99>;
+<21> O3 = O1D2 # 1.0/<O3O1D_SAPRC99>;
+<22> O1D2 + H2O = 2*HO # 2.20e-10;
+<23> O1D2 + M = O3P # 2.09e-11@-95;
+<24> HO + NO = HONO # 7.00e-31^-2.60&3.60e-11^-0.10&0.60&1.0;
+<25> HONO = HO + NO # 1.0/<HONO_NO_SAPRC99>;
+<26> HONO = HO2 + NO2 # 1.0/<HONO_NO2_SAPRC99>;
+<27> HO + HONO = NO2 # 2.70e-12@-260;
+<28> HO + NO2 = HNO3 # 2.43e-30^-3.10&1.67e-11^-2.10&0.60&1.0;
+<29> HO + NO3 = HO2 + NO2 # 2.00e-11;
+<30> HO + HNO3 = NO3 %2 # 7.20e-15@-785&4.10e-16@-1440&1.90e-33@-725;
+<31> HNO3 = HO + NO2 # 1.0/<HNO3_SAPRC99>;
+<32> HO + CO = HO2 %3 # 1.30e-13@0.0&3.19e-33@0.0;
+<33> HO + O3 = HO2 # 1.90e-12@1000;
+<34> HO2 + NO = HO + NO2 # 3.40e-12@-270;
+<35> HO2 + NO2 = HNO4 # 1.80e-31^-3.20&4.70e-12&0.60&1.0;
+<36> HNO4 = HO2 + NO2 # 4.10e-05@10650&5.70e+15@11170&0.50&1.0;
+<37> HNO4 = 0.61*HO2 + 0.61*NO2 + 0.39*HO + 0.39*NO3 # 1.0/<HO2NO2_SAPRC99>;
+<38> HNO4 + HO = NO2 # 1.50e-12@-360;
+<39> HO2 + O3 = HO # 1.40e-14@600;
+<40A> HO2 + HO2 = HO2H %3 # 2.20e-13@-600&1.85e-33@-980;
+<40B> HO2 + HO2 + H2O = HO2H %3 # 3.08e-34@-2800&2.59e-54@-3180;
+<41> NO3 + HO2 = 0.8*HO + 0.8*NO2 + 0.2*HNO3 # 4.00e-12;
+<42> NO3 + NO3 = 2*NO2 # 8.50e-13@2450;
+<43> HO2H = 2*HO # 1.0/<H2O2_SAPRC99>;
+<44> HO2H + HO = HO2 # 2.90e-12@160;
+<45> HO + HO2 =  # 4.80e-11@-250;
+<S2OH> HO + SO2 = HO2 + SULF # 4.00e-31^-3.30&2.00e-12&0.45&1.0;
+<H2OH> HO + H2 = HO2 # 7.70e-12@2100;
+<MER1> C_O2 + NO = NO2 + HCHO + HO2 # 2.80e-12@-285;
+<MER4> C_O2 + HO2 = COOH # 3.80e-13@-780;
+<MEN3> C_O2 + NO3 = HCHO + HO2 + NO2 # 1.30e-12;
+<MER5> C_O2 + C_O2 = MEOH + HCHO # 2.45e-14@-710;
+<MER6> C_O2 + C_O2 = 2*HCHO + 2*HO2 # 5.90e-13@509;
+<RRNO> RO2_R + NO = NO2 + HO2 # 2.70e-12@-360;
+<RRH2> RO2_R + HO2 = ROOH # 1.90e-13@-1300;
+<RRN3> RO2_R + NO3 = NO2 + HO2 # 2.30e-12;
+<RRME> RO2_R + C_O2 = HO2 + 0.75*HCHO + 0.25*MEOH # 2.00e-13;
+<RRR2> RO2_R + RO2_R = HO2 # 3.50e-14;
+<R2NO> R2O2 + NO = NO2 # 1.0*K<RRNO>;
+<R2H2> R2O2 + HO2 = HO2 # 1.0*K<RRH2>;
+<R2N3> R2O2 + NO3 = NO2 # 1.0*K<RRN3>;
+<R2ME> R2O2 + C_O2 = C_O2 # 1.0*K<RRME>;
+<R2RR> R2O2 + RO2_R = RO2_R # 1.0*K<RRR2>;
+<R2R3> R2O2 + R2O2 =  # 1.0*K<RRR2>;
+<RNNO> RO2_N + NO = RNO3 # 1.0*K<RRNO>;
+<RNH2> RO2_N + HO2 = ROOH # 1.0*K<RRH2>;
+<RNME> RO2_N + C_O2 = HO2 + 0.25*MEOH + 0.5*MEK + 0.5*PROD2 + 0.75*HCHO
+        # 1.0*K<RRME>;
+<RNN3> RO2_N + NO3 = NO2 + HO2 + MEK # 1.0*K<RRN3>;
+<RNRR> RO2_N + RO2_R = HO2 + 0.5*MEK + 0.5*PROD2 # 1.0*K<RRR2>;
+<RNR2> RO2_N + R2O2 = RO2_N # 1.0*K<RRR2>;
+<RNRN> RO2_N + RO2_N = MEK + HO2 + PROD2 # 1.0*K<RRR2>;
+<APN2> CCO_O2 + NO2 = PAN # 2.70e-28^-7.10&1.20e-11^-0.90&0.30&1.0;
+<DPAN> PAN = CCO_O2 + NO2 # 4.90e-03@12100&4.00e+16@13600&0.30&1.0;
+<APNO> CCO_O2 + NO = C_O2 + NO2 # 7.80e-12@-300;
+<APH2> CCO_O2 + HO2 = 0.75*CCO_OOH + 0.25*CCO_OH + 0.25*O3 # 4.30e-13@-1040;
+<APN3> CCO_O2 + NO3 = C_O2 + NO2 # 4.00e-12;
+<APME> CCO_O2 + C_O2 = CCO_OH + HCHO # 1.80e-12@-500;
+<APRR> CCO_O2 + RO2_R = CCO_OH # 7.50e-12;
+<APR2> CCO_O2 + R2O2 = CCO_O2 # 1.0*K<APRR>;
+<APRN> CCO_O2 + RO2_N = CCO_OH + PROD2 # 1.0*K<APRR>;
+<APAP> CCO_O2 + CCO_O2 = 2*C_O2 # 2.90e-12@-500;
+<PPN2> RCO_O2 + NO2 = PAN2 # 1.20e-11^-0.90;
+<PAN2> PAN2 = RCO_O2 + NO2 # 2.00e+15@12800;
+<PPNO> RCO_O2 + NO = NO2 + CCHO + RO2_R # 1.25e-11@-240;
+<PPH2> RCO_O2 + HO2 = 0.75*RCO_OOH + 0.25*RCO_OH + 0.25*O3 # 1.0*K<APH2>;
+<PPN3> RCO_O2 + NO3 = NO2 + CCHO + RO2_R # 1.0*K<APN3>;
+<PPME> RCO_O2 + C_O2 = RCO_OH + HCHO # 1.0*K<APME>;
+<PPRR> RCO_O2 + RO2_R = RCO_OH # 1.0*K<APRR>;
+<PPR2> RCO_O2 + R2O2 = RCO_O2 # 1.0*K<APRR>;
+<PPRN> RCO_O2 + RO2_N = RCO_OH + PROD2 # 1.0*K<APRR>;
+<PPAP> RCO_O2 + CCO_O2 = C_O2 + CCHO + RO2_R # 1.0*K<APAP>;
+<PPPP> RCO_O2 + RCO_O2 = 2*CCHO + 2*RO2_R # 1.0*K<APAP>;
+<BPN2> BZCO_O2 + NO2 = PBZN # 1.37e-11;
+<BPAN> PBZN = BZCO_O2 + NO2 # 7.90e+16@14000;
+<BPNO> BZCO_O2 + NO = NO2 + BZ_O + R2O2 # 1.0*K<PPNO>;
+<BPH2> BZCO_O2 + HO2 = 0.75*RCO_OOH + 0.25*RCO_OH + 0.25*O3 # 1.0*K<APH2>;
+<BPN3> BZCO_O2 + NO3 = NO2 + BZ_O + R2O2 # 1.0*K<APN3>;
+<BPME> BZCO_O2 + C_O2 = RCO_OH + HCHO # 1.0*K<APME>;
+<BPRR> BZCO_O2 + RO2_R = RCO_OH # 1.0*K<APRR>;
+<BPR2> BZCO_O2 + R2O2 = BZCO_O2 # 1.0*K<APRR>;
+<BPRN> BZCO_O2 + RO2_N = RCO_OH + PROD2 # 1.0*K<APRR>;
+<BPAP> BZCO_O2 + CCO_O2 = C_O2 + BZ_O + R2O2 # 1.0*K<APAP>;
+<BPPP> BZCO_O2 + RCO_O2 = CCHO + RO2_R + BZ_O + R2O2 # 1.0*K<APAP>;
+<BPBP> BZCO_O2 + BZCO_O2 = 2*BZ_O + 2*R2O2 # 1.0*K<APAP>;
+<MPN2> MA_RCO3 + NO2 = MA_PAN # 1.0*K<PPN2>;
+<MPPN> MA_PAN = MA_RCO3 + NO2 # 1.60e+16@13486;
+<MPNO> MA_RCO3 + NO = NO2 + HCHO + CCO_O2 # 1.0*K<PPNO>;
+<MPH2> MA_RCO3 + HO2 = 0.75*RCO_OOH + 0.25*RCO_OH + 0.25*O3 # 1.0*K<APH2>;
+<MPN3> MA_RCO3 + NO3 = NO2 + HCHO + CCO_O2 # 1.0*K<APN3>;
+<MPME> MA_RCO3 + C_O2 = RCO_OH + HCHO # 1.0*K<APME>;
+<MPRR> MA_RCO3 + RO2_R = RCO_OH # 1.0*K<APRR>;
+<MPR2> MA_RCO3 + R2O2 = MA_RCO3 # 1.0*K<APRR>;
+<MPRN> MA_RCO3 + RO2_N = 2*RCO_OH # 1.0*K<APRR>;
+<MPAP> MA_RCO3 + CCO_O2 = C_O2 + HCHO + CCO_O2 # 1.0*K<APAP>;
+<MPPP> MA_RCO3 + RCO_O2 = HCHO + CCO_O2 + CCHO + RO2_R # 1.0*K<APAP>;
+<MPBP> MA_RCO3 + BZCO_O2 = HCHO + CCO_O2 + BZ_O + R2O2 # 1.0*K<APAP>;
+<MPMP> MA_RCO3 + MA_RCO3 = 2*HCHO + 2*CCO_O2 # 1.0*K<APAP>;
+<TBON> TBU_O + NO2 = RNO3 # 2.40e-11;
+<TBOD> TBU_O = ACET + C_O2 # 7.50e+14@8152;
+<BRN2> BZ_O + NO2 = NPHE # 2.30e-11@-150;
+<BRH2> BZ_O + HO2 = PHEN # 1.0*K<RRH2>;
+<BRXX> BZ_O = PHEN # 1.00e-03;
+<BNN2> BZNO2_O + NO2 =  # 1.0*K<BRN2>;
+<BNH2> BZNO2_O + HO2 = NPHE # 1.0*K<RRH2>;
+<BNXX> BZNO2_O = NPHE # 1.0*K<BRXX>;
+<FAHV> HCHO = 2*HO2 + CO # 1.0/<HCHO_R_SAPRC99>;
+<FAVS> HCHO = CO # 1.0/<HCHO_M_SAPRC99>;
+<FAOH> HCHO + HO = HO2 + CO # 8.60e-12@-20;
+<FAH2> HCHO + HO2 = HOCOO # 9.70e-15@-625;
+<FAHR> HOCOO = HO2 + HCHO # 2.40e+12@7000;
+<FAHN> HOCOO + NO = HCOOH + NO2 + HO2 # 1.0*K<MER1>;
+<FAN3> HCHO + NO3 = HNO3 + HO2 + CO # 2.00e-12@2431;
+<AAOH> CCHO + HO = CCO_O2 # 5.60e-12@-310;
+<AAHV> CCHO = CO + HO2 + C_O2 # 1.0/<CCHO_R_SAPRC99>;
+<AAN3> CCHO + NO3 = HNO3 + CCO_O2 # 1.40e-12@1860;
+<PAOH> RCHO + HO = 0.034*RO2_R + 0.001*RO2_N + 0.965*RCO_O2 + 0.034*CO +
+         0.034*CCHO # 2.00e-11;
+<PAHV> RCHO = CCHO + RO2_R + CO + HO2 # 1.0/<C2CHO_SAPRC99>;
+<PAN3> RCHO + NO3 = HNO3 + RCO_O2 # 1.40e-12@1771;
+<K3OH> ACET + HO = HCHO + CCO_O2 + R2O2 # 1.10e-12@520;
+<K3HV> ACET = CCO_O2 + C_O2 # 1.0/<ACETONE_SAPRC99>;
+<K4OH> MEK + HO = 0.37*RO2_R + 0.042*RO2_N + 0.616*R2O2 + 0.492*CCO_O2 +
+         0.096*RCO_O2 + 0.115*HCHO + 0.482*CCHO + 0.37*RCHO # 1.30e-12^2.00@25;
+<K4HV> MEK = CCO_O2 + CCHO + RO2_R # 1.50e-1/<KETONE_SAPRC99>;
+<MeOH> MEOH + HO = HCHO + HO2 # 3.10e-12^2.00@360;
+<MER9> COOH + HO = 0.35*HCHO + 0.35*HO + 0.65*C_O2 # 2.90e-12@-190;
+<MERA> COOH = HCHO + HO2 + HO # 1.0/<COOH_SAPRC99>;
+<LPR9> ROOH + HO = RCHO + 0.34*RO2_R + 0.66*HO # 1.10e-11;
+<LPRA> ROOH = RCHO + HO2 + HO # 1.0/<COOH_SAPRC99>;
+<GLHV> GLY = 2*CO + 2*HO2 # 1.0/<GLY_R_SAPRC99>;
+<GLVM> GLY = HCHO + CO # 6.00e-3/<GLY_ABS_SAPRC99>;
+<GLOH> GLY + HO = 0.63*HO2 + 1.26*CO + 0.37*RCO_O2 # 1.10e-11;
+<GLN3> GLY + NO3 = HNO3 + 0.63*HO2 + 1.26*CO + 0.37*RCO_O2 # 2.80e-12@2376;
+<MGHV> MGLY = HO2 + CO + CCO_O2 # 1.0/<MGLY_ADJ_SAPRC99>;
+<MGOH> MGLY + HO = CO + CCO_O2 # 1.50e-11;
+<MGN3> MGLY + NO3 = HNO3 + CO + CCO_O2 # 1.40e-12@1895;
+<BAHV> BACL = 2*CCO_O2 # 1.0/<BACL_ADJ_SAPRC99>;
+<PHOH> PHEN + HO = 0.24*BZ_O + 0.76*RO2_R + 0.23*GLY # 2.63e-11;
+<PHN3> PHEN + NO3 = HNO3 + BZ_O # 3.78e-12;
+<CROH> CRES + HO = 0.24*BZ_O + 0.76*RO2_R + 0.23*MGLY # 4.20e-11;
+<CRN3> CRES + NO3 = HNO3 + BZ_O # 1.37e-11;
+<NPN3> NPHE + NO3 = HNO3 + BZNO2_O # 1.0*K<PHN3>;
+<BZOH> BALD + HO = BZCO_O2 # 1.29e-11;
+<BZHV> BALD =  # 5.00e-2/<BZCHO_SAPRC99>;
+<BZNT> BALD + NO3 = HNO3 + BZCO_O2 # 1.40e-12@1872;
+<MAOH> METHACRO + HO = 0.5*RO2_R + 0.416*CO + 0.084*HCHO + 0.416*MEK +
+         0.084*MGLY + 0.5*MA_RCO3 # 1.86e-11@-176;
+<MAO3> METHACRO + O3 = 0.008*HO2 + 0.1*RO2_R + 0.208*HO + 0.1*RCO_O2 + 0.45*CO +
+         0.2*HCHO + 0.9*MGLY + 0.333*HCOOH # 1.36e-15@2114;
+<MAN3> METHACRO + NO3 = 0.5*HNO3 + 0.5*RO2_R + 0.5*CO + 0.5*MA_RCO3
+        # 1.50e-12@1726;
+<MAOP> METHACRO + O3P = RCHO # 6.34e-12;
+<MAHV> METHACRO = 0.34*HO2 + 0.33*RO2_R + 0.33*HO + 0.67*CCO_O2 + 0.67*CO +
+         0.67*HCHO + 0.33*MA_RCO3 # 4.10e-3/<ACROLEIN_SAPRC99>;
+<MVOH> MVK + HO = 0.3*RO2_R + 0.025*RO2_N + 0.675*R2O2 + 0.675*CCO_O2 +
+         0.3*HCHO + 0.675*RCHO + 0.3*MGLY # 4.14e-12@-453;
+<MVO3> MVK + O3 = 0.064*HO2 + 0.05*RO2_R + 0.164*HO + 0.05*RCO_O2 + 0.475*CO +
+         0.1*HCHO + 0.95*MGLY + 0.351*HCOOH # 7.51e-16@1520;
+<MVOP> MVK + O3P = 0.45*RCHO + 0.55*MEK # 4.32e-12;
+<MVHV> MVK = 0.3*C_O2 + 0.7*CO + 0.7*PROD2 + 0.3*MA_RCO3
+             # 2.10e-3/<ACROLEIN_SAPRC99>;
+<IPOH> ISOPROD + HO = 0.67*RO2_R + 0.041*RO2_N + 0.289*MA_RCO3 + 0.336*CO +
+         0.055*HCHO + 0.129*CCHO + 0.013*RCHO + 0.15*MEK + 0.332*PROD2 +
+         0.15*GLY + 0.174*MGLY # 6.19e-11;
+<IPO3> ISOPROD + O3 = 0.4*HO2 + 0.048*RO2_R + 0.048*RCO_O2 + 0.285*HO +
+         0.498*CO + 0.125*HCHO + 0.047*CCHO + 0.21*MEK + 0.023*GLY +
+         0.742*MGLY + 0.1*HCOOH + 0.372*RCO_OH # 4.18e-18;
+<IPN3> ISOPROD + NO3 = 0.799*RO2_R + 0.051*RO2_N + 0.15*MA_RCO3 + 0.572*CO +
+         0.15*HNO3 + 0.227*HCHO + 0.218*RCHO + 0.008*MGLY + 0.572*RNO3
+        # 1.00e-13;
+<IPHV> ISOPROD = 1.233*HO2 + 0.467*CCO_O2 + 0.3*RCO_O2 + 1.233*CO + 0.3*HCHO +
+         0.467*CCHO + 0.233*MEK # 4.10e-3/<ACROLEIN_SAPRC99>;
+<K6OH> PROD2 + HO = 0.379*HO2 + 0.473*RO2_R + 0.07*RO2_N + 0.029*CCO_O2 +
+         0.049*RCO_O2 + 0.213*HCHO + 0.084*CCHO + 0.558*RCHO + 0.115*MEK +
+         0.329*PROD2 # 1.50e-11;
+<K6HV> PROD2 = 0.96*RO2_R + 0.04*RO2_N + 0.515*R2O2 + 0.667*CCO_O2 +
+         0.333*RCO_O2 + 0.506*HCHO + 0.246*CCHO + 0.71*RCHO 
+         # 2.00e-2/<KETONE_SAPRC99>;
+<RNOH> RNO3 + HO = 0.338*NO2 + 0.113*HO2 + 0.376*RO2_R + 0.173*RO2_N +
+         0.596*R2O2 + 0.01*HCHO + 0.439*CCHO + 0.213*RCHO + 0.006*ACET +
+         0.177*MEK + 0.048*PROD2 + 0.31*RNO3 # 7.80e-12;
+<RNHV> RNO3 = NO2 + 0.341*HO2 + 0.564*RO2_R + 0.095*RO2_N + 0.152*R2O2 +
+         0.134*HCHO + 0.431*CCHO + 0.147*RCHO + 0.02*ACET + 0.243*MEK +
+         0.435*PROD2 # 1.0/<IC3ONO2_SAPRC99>;
+<D1OH> DCB1 + HO = RCHO + RO2_R + CO # 5.00e-11;
+<D1O3> DCB1 + O3 = 1.5*HO2 + 0.5*HO + 1.5*CO + GLY # 2.00e-18;
+<D2OH> DCB2 + HO = R2O2 + RCHO + CCO_O2 # 5.00e-11;
+<D2HV> DCB2 = RO2_R + 0.5*CCO_O2 + 0.5*HO2 + CO + R2O2 + 0.5*GLY + 0.5*MGLY
+        # 3.65e-1/<MGLY_ABS_SAPRC99>;
+<D3OH> DCB3 + HO = R2O2 + RCHO + CCO_O2 # 5.00e-11;
+<D3HV> DCB3 = RO2_R + 0.5*CCO_O2 + 0.5*HO2 + CO + R2O2 + 0.5*GLY + 0.5*MGLY
+        # 7.28e+0/<ACROLEIN_SAPRC99>;
+<c1OH> CH4 + HO = C_O2 # 2.15e-12@1735;
+<etOH> ETHENE + HO = RO2_R + 1.61*HCHO + 0.195*CCHO # 1.96e-12@-438;
+<etO3> ETHENE + O3 = 0.12*HO + 0.12*HO2 + 0.5*CO + HCHO + 0.37*HCOOH
+        # 9.14e-15@2580;
+<etN3> ETHENE + NO3 = RO2_R + RCHO # 4.39e-13^2.00@2282;
+<etOA> ETHENE + O3P = 0.5*HO2 + 0.2*RO2_R + 0.3*C_O2 + 0.491*CO + 0.191*HCHO +
+         0.25*CCHO + 0.009*GLY # 1.04e-11@792;
+<isOH> ISOPRENE + HO = 0.907*RO2_R + 0.093*RO2_N + 0.079*R2O2 + 0.624*HCHO +
+         0.23*METHACRO + 0.32*MVK + 0.357*ISOPROD # 2.50e-11@-408;
+<isO3> ISOPRENE + O3 = 0.266*HO + 0.066*RO2_R + 0.008*RO2_N + 0.126*R2O2 +
+         0.192*MA_RCO3 + 0.275*CO + 0.592*HCHO + 0.1*PROD2 + 0.39*METHACRO +
+         0.16*MVK + 0.204*HCOOH + 0.15*RCO_OH # 7.86e-15@1912;
+<isN3> ISOPRENE + NO3 = 0.187*NO2 + 0.749*RO2_R + 0.064*RO2_N + 0.187*R2O2 +
+         0.936*ISOPROD # 3.03e-12@448;
+<isOP> ISOPRENE + O3P = 0.01*RO2_N + 0.24*R2O2 + 0.25*C_O2 + 0.24*MA_RCO3 +
+         0.24*HCHO + 0.75*PROD2 # 3.60e-11;
+<t1OH> TRP1 + HO = 0.75*RO2_R + 0.25*RO2_N + 0.5*R2O2 + 0.276*HCHO +
+         0.474*RCHO + 0.276*PROD2 # 1.83e-11@-449;
+<t1O3> TRP1 + O3 = 0.567*HO + 0.033*HO2 + 0.031*RO2_R + 0.18*RO2_N +
+         0.729*R2O2 + 0.123*CCO_O2 + 0.201*RCO_O2 + 0.157*CO + 0.235*HCHO +
+         0.205*RCHO + 0.13*ACET + 0.276*PROD2 + 0.001*GLY + 0.031*BACL +
+         0.103*HCOOH + 0.189*RCO_OH # 1.08e-15@821;
+<t1N3> TRP1 + NO3 = 0.474*NO2 + 0.276*RO2_R + 0.25*RO2_N + 0.75*R2O2 +
+         0.474*RCHO + 0.276*RNO3 # 3.66e-12@-175;
+<t1OP> TRP1 + O3P = 0.147*RCHO + 0.853*PROD2 # 3.27e-11;
+<a1OH> ALK1 + HO = RO2_R + CCHO # 1.37e-12^2.00@498;
+<a2OH> ALK2 + HO = 0.246*HO + 0.121*HO2 + 0.612*RO2_R + 0.021*RO2_N + 0.16*CO +
+         0.039*HCHO + 0.155*RCHO + 0.417*ACET + 0.248*GLY + 0.121*HCOOH
+        # 9.87e-12@671;
+<a3OH> ALK3 + HO = 0.695*RO2_R + 0.07*RO2_N + 0.559*R2O2 + 0.236*TBU_O +
+         0.026*HCHO + 0.445*CCHO + 0.122*RCHO + 0.024*ACET + 0.332*MEK
+        # 1.02e-11@434;
+<a4OH> ALK4 + HO = 0.835*RO2_R + 0.143*RO2_N + 0.936*R2O2 + 0.011*C_O2 +
+         0.011*CCO_O2 + 0.002*CO + 0.024*HCHO + 0.455*CCHO + 0.244*RCHO +
+         0.452*ACET + 0.11*MEK + 0.125*PROD2 # 5.95e-12@91;
+<a5OH> ALK5 + HO = 0.653*RO2_R + 0.347*RO2_N + 0.948*R2O2 + 0.026*HCHO +
+         0.099*CCHO + 0.204*RCHO + 0.072*ACET + 0.089*MEK + 0.417*PROD2
+        # 1.11e-11@52;
+<b1OH> ARO1 + HO = 0.224*HO2 + 0.765*RO2_R + 0.011*RO2_N + 0.055*PROD2 +
+         0.118*GLY + 0.119*MGLY + 0.017*PHEN + 0.207*CRES + 0.059*BALD +
+         0.491*DCB1 + 0.108*DCB2 + 0.051*DCB3 # 1.81e-12@-355;
+<b2OH> ARO2 + HO = 0.187*HO2 + 0.804*RO2_R + 0.009*RO2_N + 0.097*GLY +
+         0.287*MGLY + 0.087*BACL + 0.187*CRES + 0.05*BALD + 0.561*DCB1 +
+         0.099*DCB2 + 0.093*DCB3 # 2.64e-11;
+<o1OH> OLE1 + HO = 0.91*RO2_R + 0.09*RO2_N + 0.205*R2O2 + 0.732*HCHO +
+         0.294*CCHO + 0.497*RCHO + 0.005*ACET + 0.119*PROD2 # 7.10e-12@-451;
+<o1O3> OLE1 + O3 = 0.155*HO + 0.056*HO2 + 0.022*RO2_R + 0.001*RO2_N +
+         0.076*C_O2 + 0.345*CO + 0.5*HCHO + 0.154*CCHO + 0.363*RCHO +
+         0.001*ACET + 0.215*PROD2 + 0.185*HCOOH + 0.05*CCO_OH + 0.119*RCO_OH
+        # 2.62e-15@1640;
+<o1N3> OLE1 + NO3 = 0.824*RO2_R + 0.176*RO2_N + 0.488*R2O2 + 0.009*CCHO +
+         0.037*RCHO + 0.024*ACET + 0.511*RNO3 # 4.45e-14@376;
+<o1OP> OLE1 + O3P = 0.45*RCHO + 0.437*MEK + 0.113*PROD2 # 1.07e-11@234;
+<o2OH> OLE2 + HO = 0.918*RO2_R + 0.082*RO2_N + 0.001*R2O2 + 0.244*HCHO +
+         0.732*CCHO + 0.511*RCHO + 0.127*ACET + 0.072*MEK + 0.061*BALD +
+         0.025*METHACRO + 0.025*ISOPROD # 1.74e-11@-384;
+<o2O3> OLE2 + O3 = 0.378*HO + 0.003*HO2 + 0.033*RO2_R + 0.002*RO2_N +
+         0.137*R2O2 + 0.197*C_O2 + 0.137*CCO_O2 + 0.006*RCO_O2 + 0.265*CO +
+         0.269*HCHO + 0.456*CCHO + 0.305*RCHO + 0.045*ACET + 0.026*MEK +
+         0.006*PROD2 + 0.042*BALD + 0.026*METHACRO + 0.073*HCOOH +
+         0.129*CCO_OH + 0.303*RCO_OH # 5.02e-16@461;
+<o2N3> OLE2 + NO3 = 0.391*NO2 + 0.442*RO2_R + 0.136*RO2_N + 0.711*R2O2 +
+         0.03*C_O2 + 0.079*HCHO + 0.507*CCHO + 0.151*RCHO + 0.102*ACET +
+         0.001*MEK + 0.015*BALD + 0.048*MVK + 0.321*RNO3 # 7.26e-13;
+<o2OP> OLE2 + O3P = 0.013*HO2 + 0.012*RO2_R + 0.001*RO2_N + 0.012*CO +
+         0.069*RCHO + 0.659*MEK + 0.259*PROD2 + 0.012*METHACRO # 2.09e-11;
+<c1OH> HCOOH + HO = HO2 # 4.5E-13;
+<c2OH> CCO_OH + HO = 0.13*RO2_R + 0.87*C_O2 + 0.13*MGLY # 8.00E-13;
+<c3OH> RCO_OH + HO = RO2_R + 0.605*CCHO + 0.21*RCHO + 0.185*BACL # 1.16E-12;
+endmech
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/cmaq/texas.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/cmaq/texas.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/cmaq/texas.def	(revision 2696)
@@ -0,0 +1,116 @@
+#include texas.spc
+#include texas.eqn
+
+{#LANGUAGE Fortran77
+#INTEGRATOR rodas3
+#DRIVER matlab
+#HESSIAN ON}
+
+#LOOKATALL
+
+#MONITOR O3; NO; NO2; ETHENE;
+
+#INITVALUES
+
+	CFACTOR = 1.    ;              {Conversion Factor}
+        NO2             = 46.0;       
+        NO              = 30.0;       
+        O3P             = 16.0;       
+        O3              = 48.0;       
+        NO3             = 62.0;       
+        N2O5            = 108.0;       
+        HNO3            = 63.0;       
+        O1D2            = 16.0;       
+        HO              = 17.0;       
+        HONO            = 47.0;       
+        HO2             = 33.0;       
+        CO              = 28.0;       
+        HNO4            = 79.0;       
+        HO2H            = 34.0;       
+        SO2             = 64.0;       
+        SULF            = 98.0;       
+        C_O2            = 47.0;       
+        HCHO            = 30.0;       
+        COOH            = 48.0;       
+        MEOH            = 32.0;       
+        RO2_R           = 1.0;       
+        ROOH            = 62.0;       
+        R2O2            = 1.0;       
+        RO2_N           = 1.0;       
+        RNO3            = 133.0;       
+        MEK             = 72.0;       
+        PROD2           = 100.0;       
+        CCO_O2          = 75.0;       
+        PAN             = 121.0;       
+        CCO_OOH         = 76.0;       
+        CCO_OH          = 60.0;       
+        RCO_O2          = 89.0;       
+        PAN2            = 135.0;       
+        CCHO            = 44.0;       
+        RCO_OOH         = 90.0;       
+        RCO_OH          = 74.0;       
+        BZCO_O2         = 137.0;       
+        PBZN            = 183.0;       
+        BZ_O            = 93.0;       
+        MA_RCO3         = 101.0;       
+        MA_PAN          = 147.0;       
+        TBU_O           = 73.0;       
+        ACET            = 58.0;       
+        NPHE            = 139.0;       
+        PHEN            = 94.0;       
+        BZNO2_O         = 139.0;       
+        HOCOO           = 63.0;       
+        HCOOH           = 46.0;       
+        RCHO            = 58.0;       
+        GLY             = 58.0;       
+        MGLY            = 72.0;       
+        BACL            = 86.0;       
+        CRES            = 108.0;       
+        BALD            = 106.0;       
+        METHACRO        = 70.0;       
+        MVK             = 70.0;       
+        ISOPROD         = 70.0;       
+        DCB1            = 58.0;       
+        DCB2            = 72.0;       
+        DCB3            = 72.0;       
+        ETHENE          = 28.0;       
+        ISOPRENE        = 68.0;       
+        TRP1            = 136.0;       
+        ALK1            = 30.1;       
+        ALK2            = 36.7;       
+        ALK3            = 58.6;       
+        ALK4            = 77.6;       
+        ALK5            = 118.9;       
+        ARO1            = 98.6;       
+        ARO2            = 118.7;       
+        OLE1            = 72.3;       
+        OLE2            = 75.8;       
+
+#INLINE F77_INIT
+        TSTART = 12.0D0*3600.0D0
+        TEND   = TSTART + 120.0D0*3600.0D0
+        DT     = 3600.D0
+        TEMP   = 300.0D0
+#ENDINLINE   
+   
+#INLINE F90_INIT
+        TSTART = 12.0d0*3600.0d0
+        TEND   = TSTART + 120.0d0*3600.0d0
+        DT     = 3600.d0
+        TEMP   = 300.0d0
+#ENDINLINE   
+     
+#INLINE MATLAB_INIT
+   global TSTART TEND DT TEMP
+   TSTART = 12*3600;
+   TEND   = TSTART + 120*3600;
+   DT     = 3600;
+   TEMP   = 300;
+#ENDINLINE   
+     
+#INLINE C_INIT
+   TSTART = 12.0*3600.0;
+   TEND   = TSTART + 120.0*3600.0;
+   DT     = 3600.0;
+   TEMP   = 300.0;
+#ENDINLINE
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/cmaq/texas.eqn
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/cmaq/texas.eqn	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/cmaq/texas.eqn	(revision 2696)
@@ -0,0 +1,285 @@
+{ SAPRC-99 Fixed Parameter Mechanism }
+{ Created from BASEMECH.XLS 21-Jul-2004 10:31 }
+{  Base mechanism only.  Reactions of TERP, ALKn, AROn, OLEn removed. }
+{ SAPRC99 }
+
+#EQUATIONS
+{1} NO2 = NO + O3P : 1.0;
+{2} O3P + O2 + M = O3 : 5.68e-34;
+{3} O3P + O3 = PROD : 8.00e-12;
+{4} O3P + NO + M = NO2 : 1.00e-31;
+{5} O3P + NO2 = NO : 6.50e-12;
+{6} O3P + NO2 = NO3 : 9.00e-32;
+{8} O3 + NO = NO2 : 1.80e-12;
+{9} O3 + NO2 = NO3 : 1.40e-13;
+{10} NO + NO3 = 2NO2 : 1.80e-11;
+{11} NO + NO + O2 = 2NO2 : 3.30e-39;
+{12} NO2 + NO3 = N2O5 : 2.80e-30;
+{13} N2O5 = NO2 + NO3 : 1.00e-03;
+{14} N2O5 + H2O = 2HNO3 : 2.60e-22;
+{17} NO2 + NO3 = NO + NO2 : 4.50e-14;
+{18} NO3 = NO : 1.0;
+{19} NO3 = NO2 + O3P : 1.0;
+{20} O3 = O3P : 1.0;
+{21} O3 = O1D2 : 1.0;
+{22} O1D2 + H2O = 2HO : 2.20e-10;
+{23} O1D2 + M = O3P : 2.09e-11;
+{24} HO + NO = HONO : 7.00e-31;
+{25} HONO = HO + NO : 1.0;
+{26} HONO = HO2 + NO2 : 1.0;
+{27} HO + HONO = NO2 : 2.70e-12;
+{28} HO + NO2 = HNO3 : 2.43e-30;
+{29} HO + NO3 = HO2 + NO2 : 2.00e-11;
+{30} HO + HNO3 = NO3 : 7.20e-15;
+{31} HNO3 = HO + NO2 : 1.0;
+{32} HO + CO = HO2 : 1.30e-13;
+{33} HO + O3 = HO2 : 1.90e-12;
+{34} HO2 + NO = HO + NO2 : 3.40e-12;
+{35} HO2 + NO2 = HNO4 : 1.80e-31;
+{36} HNO4 = HO2 + NO2 : 4.10e-05;
+{37} HNO4 = 0.61HO2 + 0.61NO2 + 0.39HO + 0.39NO3 : 1.0;
+{38} HNO4 + HO = NO2 : 1.50e-12;
+{39} HO2 + O3 = HO : 1.40e-14;
+{40A} HO2 + HO2 = HO2H : 2.20e-13;
+{40B} HO2 + HO2 + H2O = HO2H : 3.08e-34;
+{41} NO3 + HO2 = 0.8HO + 0.8NO2 + 0.2HNO3 : 4.00e-12;
+{42} NO3 + NO3 = 2NO2 : 8.50e-13;
+{43} HO2H = 2HO : 1.0;
+{44} HO2H + HO = HO2 : 2.90e-12;
+{45} HO + HO2 =  PROD: 4.80e-11;
+{S2OH} HO + SO2 = HO2 + SULF : 4.00e-31;
+{H2OH} HO + H2 = HO2 : 7.70e-12;
+{MER1} C_O2 + NO = NO2 + HCHO + HO2 : 2.80e-12;
+{MER4} C_O2 + HO2 = COOH : 3.80e-13;
+{MEN3} C_O2 + NO3 = HCHO + HO2 + NO2 : 1.30e-12;
+{MER5} C_O2 + C_O2 = MEOH + HCHO : 2.45e-14;
+{MER6} C_O2 + C_O2 = 2HCHO + 2HO2 : 5.90e-13;
+{RRNO} RO2_R + NO = NO2 + HO2 : 2.70e-12;
+{RRH2} RO2_R + HO2 = ROOH : 1.90e-13;
+{RRN3} RO2_R + NO3 = NO2 + HO2 : 2.30e-12;
+{RRME} RO2_R + C_O2 = HO2 + 0.75HCHO + 0.25MEOH : 2.00e-13;
+{RRR2} RO2_R + RO2_R = HO2 : 3.50e-14;
+{R2NO} R2O2 + NO = NO2 : 1.0;
+{R2H2} R2O2 + HO2 = HO2 : 1.0;
+{R2N3} R2O2 + NO3 = NO2 : 1.0;
+{R2ME} R2O2 + C_O2 = C_O2 : 1.0;
+{R2RR} R2O2 + RO2_R = RO2_R : 1.0;
+{R2R3} R2O2 + R2O2 = PROD : 1.0;
+{RNNO} RO2_N + NO = RNO3 : 1.0;
+{RNH2} RO2_N + HO2 = ROOH : 1.0;
+{RNME} RO2_N + C_O2 = HO2 + 0.25MEOH + 0.5MEK + 0.5PROD2 + 0.75HCHO
+        : 1.0;
+{RNN3} RO2_N + NO3 = NO2 + HO2 + MEK : 1.0;
+{RNRR} RO2_N + RO2_R = HO2 + 0.5MEK + 0.5PROD2 : 1.0;
+{RNR2} RO2_N + R2O2 = RO2_N : 1.0;
+{RNRN} RO2_N + RO2_N = MEK + HO2 + PROD2 : 1.0;
+{APN2} CCO_O2 + NO2 = PAN : 2.70e-28;
+{DPAN} PAN = CCO_O2 + NO2 : 4.90e-03;
+{APNO} CCO_O2 + NO = C_O2 + NO2 : 7.80e-12;
+{APH2} CCO_O2 + HO2 = 0.75CCO_OOH + 0.25CCO_OH + 0.25O3 : 4.30e-13;
+{APN3} CCO_O2 + NO3 = C_O2 + NO2 : 4.00e-12;
+{APME} CCO_O2 + C_O2 = CCO_OH + HCHO : 1.80e-12;
+{APRR} CCO_O2 + RO2_R = CCO_OH : 7.50e-12;
+{APR2} CCO_O2 + R2O2 = CCO_O2 : 1.0;
+{APRN} CCO_O2 + RO2_N = CCO_OH + PROD2 : 1.0;
+{APAP} CCO_O2 + CCO_O2 = 2C_O2 : 2.90e-12;
+{PPN2} RCO_O2 + NO2 = PAN2 : 1.20e-11;
+{PAN2} PAN2 = RCO_O2 + NO2 : 2.00e+15;
+{PPNO} RCO_O2 + NO = NO2 + CCHO + RO2_R : 1.25e-11;
+{PPH2} RCO_O2 + HO2 = 0.75RCO_OOH + 0.25RCO_OH + 0.25O3 : 1.0;
+{PPN3} RCO_O2 + NO3 = NO2 + CCHO + RO2_R : 1.0;
+{PPME} RCO_O2 + C_O2 = RCO_OH + HCHO : 1.0;
+{PPRR} RCO_O2 + RO2_R = RCO_OH : 1.0;
+{PPR2} RCO_O2 + R2O2 = RCO_O2 : 1.0;
+{PPRN} RCO_O2 + RO2_N = RCO_OH + PROD2 : 1.0;
+{PPAP} RCO_O2 + CCO_O2 = C_O2 + CCHO + RO2_R : 1.0;
+{PPPP} RCO_O2 + RCO_O2 = 2CCHO + 2RO2_R : 1.0;
+{BPN2} BZCO_O2 + NO2 = PBZN : 1.37e-11;
+{BPAN} PBZN = BZCO_O2 + NO2 : 7.90e+16;
+{BPNO} BZCO_O2 + NO = NO2 + BZ_O + R2O2 : 1.0;
+{BPH2} BZCO_O2 + HO2 = 0.75RCO_OOH + 0.25RCO_OH + 0.25O3 : 1.0;
+{BPN3} BZCO_O2 + NO3 = NO2 + BZ_O + R2O2 : 1.0;
+{BPME} BZCO_O2 + C_O2 = RCO_OH + HCHO : 1.0;
+{BPRR} BZCO_O2 + RO2_R = RCO_OH : 1.0;
+{BPR2} BZCO_O2 + R2O2 = BZCO_O2 : 1.0;
+{BPRN} BZCO_O2 + RO2_N = RCO_OH + PROD2 : 1.0;
+{BPAP} BZCO_O2 + CCO_O2 = C_O2 + BZ_O + R2O2 : 1.0;
+{BPPP} BZCO_O2 + RCO_O2 = CCHO + RO2_R + BZ_O + R2O2 : 1.0;
+{BPBP} BZCO_O2 + BZCO_O2 = 2BZ_O + 2R2O2 : 1.0;
+{MPN2} MA_RCO3 + NO2 = MA_PAN : 1.0;
+{MPPN} MA_PAN = MA_RCO3 + NO2 : 1.60e+16;
+{MPNO} MA_RCO3 + NO = NO2 + HCHO + CCO_O2 : 1.0;
+{MPH2} MA_RCO3 + HO2 = 0.75RCO_OOH + 0.25RCO_OH + 0.25O3 : 1.0;
+{MPN3} MA_RCO3 + NO3 = NO2 + HCHO + CCO_O2 : 1.0;
+{MPME} MA_RCO3 + C_O2 = RCO_OH + HCHO : 1.0;
+{MPRR} MA_RCO3 + RO2_R = RCO_OH : 1.0;
+{MPR2} MA_RCO3 + R2O2 = MA_RCO3 : 1.0;
+{MPRN} MA_RCO3 + RO2_N = 2RCO_OH : 1.0;
+{MPAP} MA_RCO3 + CCO_O2 = C_O2 + HCHO + CCO_O2 : 1.0;
+{MPPP} MA_RCO3 + RCO_O2 = HCHO + CCO_O2 + CCHO + RO2_R : 1.0;
+{MPBP} MA_RCO3 + BZCO_O2 = HCHO + CCO_O2 + BZ_O + R2O2 : 1.0;
+{MPMP} MA_RCO3 + MA_RCO3 = 2HCHO + 2CCO_O2 : 1.0;
+{TBON} TBU_O + NO2 = RNO3 : 2.40e-11;
+{TBOD} TBU_O = ACET + C_O2 : 7.50e+14;
+{BRN2} BZ_O + NO2 = NPHE : 2.30e-11;
+{BRH2} BZ_O + HO2 = PHEN : 1.0;
+{BRXX} BZ_O = PHEN : 1.00e-03;
+{BNN2} BZNO2_O + NO2 = PROD : 1.0;
+{BNH2} BZNO2_O + HO2 = NPHE : 1.0;
+{BNXX} BZNO2_O = NPHE : 1.0;
+{FAHV} HCHO = 2HO2 + CO : 1.0;
+{FAVS} HCHO = CO : 1.0;
+{FAOH} HCHO + HO = HO2 + CO : 8.60e-12;
+{FAH2} HCHO + HO2 = HOCOO : 9.70e-15;
+{FAHR} HOCOO = HO2 + HCHO : 2.40e+12;
+{FAHN} HOCOO + NO = HCOOH + NO2 + HO2 : 1.0;
+{FAN3} HCHO + NO3 = HNO3 + HO2 + CO : 2.00e-12;
+{AAOH} CCHO + HO = CCO_O2 : 5.60e-12;
+{AAHV} CCHO = CO + HO2 + C_O2 : 1.0;
+{AAN3} CCHO + NO3 = HNO3 + CCO_O2 : 1.40e-12;
+{PAOH} RCHO + HO = 0.034RO2_R + 0.001RO2_N + 0.965RCO_O2 + 0.034CO +
+         0.034CCHO : 2.00e-11;
+{PAHV} RCHO = CCHO + RO2_R + CO + HO2 : 1.0;
+{PAN3} RCHO + NO3 = HNO3 + RCO_O2 : 1.40e-12;
+{K3OH} ACET + HO = HCHO + CCO_O2 + R2O2 : 1.10e-12;
+{K3HV} ACET = CCO_O2 + C_O2 : 1.0;
+{K4OH} MEK + HO = 0.37RO2_R + 0.042RO2_N + 0.616R2O2 + 0.492CCO_O2 +
+         0.096RCO_O2 + 0.115HCHO + 0.482CCHO + 0.37RCHO : 1.30e-12;
+{K4HV} MEK = CCO_O2 + CCHO + RO2_R : 1.50e-1;
+{MeOH} MEOH + HO = HCHO + HO2 : 3.10e-12;
+{MER9} COOH + HO = 0.35HCHO + 0.35HO + 0.65C_O2 : 2.90e-12;
+{MERA} COOH = HCHO + HO2 + HO : 1.0;
+{LPR9} ROOH + HO = RCHO + 0.34RO2_R + 0.66HO : 1.10e-11;
+{LPRA} ROOH = RCHO + HO2 + HO : 1.0;
+{GLHV} GLY = 2CO + 2HO2 : 1.0;
+{GLVM} GLY = HCHO + CO : 6.00e-3;
+{GLOH} GLY + HO = 0.63HO2 + 1.26CO + 0.37RCO_O2 : 1.10e-11;
+{GLN3} GLY + NO3 = HNO3 + 0.63HO2 + 1.26CO + 0.37RCO_O2 : 2.80e-12;
+{MGHV} MGLY = HO2 + CO + CCO_O2 : 1.0;
+{MGOH} MGLY + HO = CO + CCO_O2 : 1.50e-11;
+{MGN3} MGLY + NO3 = HNO3 + CO + CCO_O2 : 1.40e-12;
+{BAHV} BACL = 2CCO_O2 : 1.0;
+{PHOH} PHEN + HO = 0.24BZ_O + 0.76RO2_R + 0.23GLY : 2.63e-11;
+{PHN3} PHEN + NO3 = HNO3 + BZ_O : 3.78e-12;
+{CROH} CRES + HO = 0.24BZ_O + 0.76RO2_R + 0.23MGLY : 4.20e-11;
+{CRN3} CRES + NO3 = HNO3 + BZ_O : 1.37e-11;
+{NPN3} NPHE + NO3 = HNO3 + BZNO2_O : 1.0;
+{BZOH} BALD + HO = BZCO_O2 : 1.29e-11;
+{BZHV} BALD = PROD : 5.00e-2;
+{BZNT} BALD + NO3 = HNO3 + BZCO_O2 : 1.40e-12;
+{MAOH} METHACRO + HO = 0.5RO2_R + 0.416CO + 0.084HCHO + 0.416MEK +
+         0.084MGLY + 0.5MA_RCO3 : 1.86e-11;
+{MAO3} METHACRO + O3 = 0.008HO2 + 0.1RO2_R + 0.208HO + 0.1RCO_O2 + 0.45CO +
+         0.2HCHO + 0.9MGLY + 0.333HCOOH : 1.36e-15;
+{MAN3} METHACRO + NO3 = 0.5HNO3 + 0.5RO2_R + 0.5CO + 0.5MA_RCO3
+        : 1.50e-12;
+{MAOP} METHACRO + O3P = RCHO : 6.34e-12;
+{MAHV} METHACRO = 0.34HO2 + 0.33RO2_R + 0.33HO + 0.67CCO_O2 + 0.67CO +
+         0.67HCHO + 0.33MA_RCO3 : 4.10e-3;
+{MVOH} MVK + HO = 0.3RO2_R + 0.025RO2_N + 0.675R2O2 + 0.675CCO_O2 +
+         0.3HCHO + 0.675RCHO + 0.3MGLY : 4.14e-12;
+{MVO3} MVK + O3 = 0.064HO2 + 0.05RO2_R + 0.164HO + 0.05RCO_O2 + 0.475CO +
+         0.1HCHO + 0.95MGLY + 0.351HCOOH : 7.51e-16;
+{MVOP} MVK + O3P = 0.45RCHO + 0.55MEK : 4.32e-12;
+{MVHV} MVK = 0.3C_O2 + 0.7CO + 0.7PROD2 + 0.3MA_RCO3
+             : 2.10e-3;
+{IPOH} ISOPROD + HO = 0.67RO2_R + 0.041RO2_N + 0.289MA_RCO3 + 0.336CO +
+         0.055HCHO + 0.129CCHO + 0.013RCHO + 0.15MEK + 0.332PROD2 +
+         0.15GLY + 0.174MGLY : 6.19e-11;
+{IPO3} ISOPROD + O3 = 0.4HO2 + 0.048RO2_R + 0.048RCO_O2 + 0.285HO +
+         0.498CO + 0.125HCHO + 0.047CCHO + 0.21MEK + 0.023GLY +
+         0.742MGLY + 0.1HCOOH + 0.372RCO_OH : 4.18e-18;
+{IPN3} ISOPROD + NO3 = 0.799RO2_R + 0.051RO2_N + 0.15MA_RCO3 + 0.572CO +
+         0.15HNO3 + 0.227HCHO + 0.218RCHO + 0.008MGLY + 0.572RNO3
+        : 1.00e-13;
+{IPHV} ISOPROD = 1.233HO2 + 0.467CCO_O2 + 0.3RCO_O2 + 1.233CO + 0.3HCHO +
+         0.467CCHO + 0.233MEK : 4.10e-3;
+{K6OH} PROD2 + HO = 0.379HO2 + 0.473RO2_R + 0.07RO2_N + 0.029CCO_O2 +
+         0.049RCO_O2 + 0.213HCHO + 0.084CCHO + 0.558RCHO + 0.115MEK +
+         0.329PROD2 : 1.50e-11;
+{K6HV} PROD2 = 0.96RO2_R + 0.04RO2_N + 0.515R2O2 + 0.667CCO_O2 +
+         0.333RCO_O2 + 0.506HCHO + 0.246CCHO + 0.71RCHO 
+         : 2.00e-2;
+{RNOH} RNO3 + HO = 0.338NO2 + 0.113HO2 + 0.376RO2_R + 0.173RO2_N +
+         0.596R2O2 + 0.01HCHO + 0.439CCHO + 0.213RCHO + 0.006ACET +
+         0.177MEK + 0.048PROD2 + 0.31RNO3 : 7.80e-12;
+{RNHV} RNO3 = NO2 + 0.341HO2 + 0.564RO2_R + 0.095RO2_N + 0.152R2O2 +
+         0.134HCHO + 0.431CCHO + 0.147RCHO + 0.02ACET + 0.243MEK +
+         0.435PROD2 : 1.0;
+{D1OH} DCB1 + HO = RCHO + RO2_R + CO : 5.00e-11;
+{D1O3} DCB1 + O3 = 1.5HO2 + 0.5HO + 1.5CO + GLY : 2.00e-18;
+{D2OH} DCB2 + HO = R2O2 + RCHO + CCO_O2 : 5.00e-11;
+{D2HV} DCB2 = RO2_R + 0.5CCO_O2 + 0.5HO2 + CO + R2O2 + 0.5GLY + 0.5MGLY
+        : 3.65e-1;
+{D3OH} DCB3 + HO = R2O2 + RCHO + CCO_O2 : 5.00e-11;
+{D3HV} DCB3 = RO2_R + 0.5CCO_O2 + 0.5HO2 + CO + R2O2 + 0.5GLY + 0.5MGLY
+        : 7.28e+0;
+{c1OH} CH4 + HO = C_O2 : 2.15e-12;
+{etOH} ETHENE + HO = RO2_R + 1.61HCHO + 0.195CCHO : 1.96e-12;
+{etO3} ETHENE + O3 = 0.12HO + 0.12HO2 + 0.5CO + HCHO + 0.37HCOOH
+        : 9.14e-15;
+{etN3} ETHENE + NO3 = RO2_R + RCHO : 4.39e-13;
+{etOA} ETHENE + O3P = 0.5HO2 + 0.2RO2_R + 0.3C_O2 + 0.491CO + 0.191HCHO +
+         0.25CCHO + 0.009GLY : 1.04e-11;
+{isOH} ISOPRENE + HO = 0.907RO2_R + 0.093RO2_N + 0.079R2O2 + 0.624HCHO +
+         0.23METHACRO + 0.32MVK + 0.357ISOPROD : 2.50e-11;
+{isO3} ISOPRENE + O3 = 0.266HO + 0.066RO2_R + 0.008RO2_N + 0.126R2O2 +
+         0.192MA_RCO3 + 0.275CO + 0.592HCHO + 0.1PROD2 + 0.39METHACRO +
+         0.16MVK + 0.204HCOOH + 0.15RCO_OH : 7.86e-15;
+{isN3} ISOPRENE + NO3 = 0.187NO2 + 0.749RO2_R + 0.064RO2_N + 0.187R2O2 +
+         0.936ISOPROD : 3.03e-12;
+{isOP} ISOPRENE + O3P = 0.01RO2_N + 0.24R2O2 + 0.25C_O2 + 0.24MA_RCO3 +
+         0.24HCHO + 0.75PROD2 : 3.60e-11;
+{t1OH} TRP1 + HO = 0.75RO2_R + 0.25RO2_N + 0.5R2O2 + 0.276HCHO +
+         0.474RCHO + 0.276PROD2 : 1.83e-11;
+{t1O3} TRP1 + O3 = 0.567HO + 0.033HO2 + 0.031RO2_R + 0.18RO2_N +
+         0.729R2O2 + 0.123CCO_O2 + 0.201RCO_O2 + 0.157CO + 0.235HCHO +
+         0.205RCHO + 0.13ACET + 0.276PROD2 + 0.001GLY + 0.031BACL +
+         0.103HCOOH + 0.189RCO_OH : 1.08e-15;
+{t1N3} TRP1 + NO3 = 0.474NO2 + 0.276RO2_R + 0.25RO2_N + 0.75R2O2 +
+         0.474RCHO + 0.276RNO3 : 3.66e-12;
+{t1OP} TRP1 + O3P = 0.147RCHO + 0.853PROD2 : 3.27e-11;
+{a1OH} ALK1 + HO = RO2_R + CCHO : 1.37e-12;
+{a2OH} ALK2 + HO = 0.246HO + 0.121HO2 + 0.612RO2_R + 0.021RO2_N + 0.16CO +
+         0.039HCHO + 0.155RCHO + 0.417ACET + 0.248GLY + 0.121HCOOH
+        : 9.87e-12;
+{a3OH} ALK3 + HO = 0.695RO2_R + 0.07RO2_N + 0.559R2O2 + 0.236TBU_O +
+         0.026HCHO + 0.445CCHO + 0.122RCHO + 0.024ACET + 0.332MEK
+        : 1.02e-11;
+{a4OH} ALK4 + HO = 0.835RO2_R + 0.143RO2_N + 0.936R2O2 + 0.011C_O2 +
+         0.011CCO_O2 + 0.002CO + 0.024HCHO + 0.455CCHO + 0.244RCHO +
+         0.452ACET + 0.11MEK + 0.125PROD2 : 5.95e-12;
+{a5OH} ALK5 + HO = 0.653RO2_R + 0.347RO2_N + 0.948R2O2 + 0.026HCHO +
+         0.099CCHO + 0.204RCHO + 0.072ACET + 0.089MEK + 0.417PROD2
+        : 1.11e-11;
+{b1OH} ARO1 + HO = 0.224HO2 + 0.765RO2_R + 0.011RO2_N + 0.055PROD2 +
+         0.118GLY + 0.119MGLY + 0.017PHEN + 0.207CRES + 0.059BALD +
+         0.491DCB1 + 0.108DCB2 + 0.051DCB3 : 1.81e-12;
+{b2OH} ARO2 + HO = 0.187HO2 + 0.804RO2_R + 0.009RO2_N + 0.097GLY +
+         0.287MGLY + 0.087BACL + 0.187CRES + 0.05BALD + 0.561DCB1 +
+         0.099DCB2 + 0.093DCB3 : 2.64e-11;
+{o1OH} OLE1 + HO = 0.91RO2_R + 0.09RO2_N + 0.205R2O2 + 0.732HCHO +
+         0.294CCHO + 0.497RCHO + 0.005ACET + 0.119PROD2 : 7.10e-12;
+{o1O3} OLE1 + O3 = 0.155HO + 0.056HO2 + 0.022RO2_R + 0.001RO2_N +
+         0.076C_O2 + 0.345CO + 0.5HCHO + 0.154CCHO + 0.363RCHO +
+         0.001ACET + 0.215PROD2 + 0.185HCOOH + 0.05CCO_OH + 0.119RCO_OH
+        : 2.62e-15;
+{o1N3} OLE1 + NO3 = 0.824RO2_R + 0.176RO2_N + 0.488R2O2 + 0.009CCHO +
+         0.037RCHO + 0.024ACET + 0.511RNO3 : 4.45e-14;
+{o1OP} OLE1 + O3P = 0.45RCHO + 0.437MEK + 0.113PROD2 : 1.07e-11;
+{o2OH} OLE2 + HO = 0.918RO2_R + 0.082RO2_N + 0.001R2O2 + 0.244HCHO +
+         0.732CCHO + 0.511RCHO + 0.127ACET + 0.072MEK + 0.061BALD +
+         0.025METHACRO + 0.025ISOPROD : 1.74e-11;
+{o2O3} OLE2 + O3 = 0.378HO + 0.003HO2 + 0.033RO2_R + 0.002RO2_N +
+         0.137R2O2 + 0.197C_O2 + 0.137CCO_O2 + 0.006RCO_O2 + 0.265CO +
+         0.269HCHO + 0.456CCHO + 0.305RCHO + 0.045ACET + 0.026MEK +
+         0.006PROD2 + 0.042BALD + 0.026METHACRO + 0.073HCOOH +
+         0.129CCO_OH + 0.303RCO_OH : 5.02e-16;
+{o2N3} OLE2 + NO3 = 0.391NO2 + 0.442RO2_R + 0.136RO2_N + 0.711R2O2 +
+         0.03C_O2 + 0.079HCHO + 0.507CCHO + 0.151RCHO + 0.102ACET +
+         0.001MEK + 0.015BALD + 0.048MVK + 0.321RNO3 : 7.26e-13;
+{o2OP} OLE2 + O3P = 0.013HO2 + 0.012RO2_R + 0.001RO2_N + 0.012CO +
+         0.069RCHO + 0.659MEK + 0.259PROD2 + 0.012METHACRO : 2.09e-11;
+{c1OH} HCOOH + HO = HO2 : 4.5E-13;
+{c2OH} CCO_OH + HO = 0.13RO2_R + 0.87C_O2 + 0.13MGLY : 8.00E-13;
+{c3OH} RCO_OH + HO = RO2_R + 0.605CCHO + 0.21RCHO + 0.185BACL : 1.16E-12;
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/cmaq/texas.spc
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/cmaq/texas.spc	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/cmaq/texas.spc	(revision 2696)
@@ -0,0 +1,82 @@
+#include atoms
+
+#DEFVAR   
+	NO2             = N + 2O;
+	NO              = N + O;
+	O3P             = O;
+	O3              = 3O;
+	NO3             = N + 3O;
+	N2O5            = 2N + 5O;
+	HNO3            = H + N + 3O;
+	O1D2            = O;
+	HO              = H + O;
+	HONO            = H + 2O + N;
+	HO2             = H + 2O;
+	CO              = C + O;
+	HNO4            = H + 4O + N;
+	HO2H            = 2H + 2O;
+	SO2             = S + 2O;
+	SULF            = IGNORE;
+	C_O2            = IGNORE;
+	HCHO            = 2H + C + O;
+	COOH            = H + 2O + C;
+	MEOH            = IGNORE;
+	RO2_R           = IGNORE;
+	ROOH            = IGNORE;
+	R2O2            = IGNORE;
+	RO2_N           = IGNORE;
+	RNO3            = IGNORE;
+	MEK             = IGNORE;
+	PROD2           = IGNORE;
+	CCO_O2          = IGNORE;
+	PAN             = IGNORE;
+	CCO_OOH         = 2C + 3O + H;
+	CCO_OH          = 2O + 2C + H;
+	RCO_O2          = IGNORE;
+	PAN2            = IGNORE;
+	CCHO            = 2C + H + O;
+	RCO_OOH         = IGNORE;
+	RCO_OH          = IGNORE;
+	BZCO_O2         = IGNORE;
+	PBZN            = IGNORE;
+	BZ_O            = IGNORE;
+	MA_RCO3         = IGNORE;
+	MA_PAN          = IGNORE;
+	TBU_O           = IGNORE;
+	ACET            = IGNORE;
+	NPHE            = IGNORE;
+	PHEN            = IGNORE;
+	BZNO2_O         = IGNORE;
+	HOCOO           = IGNORE;
+	HCOOH           = IGNORE;
+	RCHO            = IGNORE;
+	GLY             = IGNORE;
+	MGLY            = IGNORE;
+	BACL            = IGNORE;
+	CRES            = IGNORE;
+	BALD            = IGNORE;
+	METHACRO        = IGNORE;
+	MVK             = IGNORE;
+	ISOPROD         = IGNORE;
+	DCB1            = IGNORE;
+	DCB2            = IGNORE;
+	DCB3            = IGNORE;
+	ETHENE          = 2C + 4H;
+	ISOPRENE        = IGNORE;
+	TRP1            = IGNORE;
+	ALK1            = IGNORE;
+	ALK2            = IGNORE;
+	ALK3            = IGNORE;
+	ALK4            = IGNORE;
+	ALK5            = IGNORE;
+	ARO1            = IGNORE;
+	ARO2            = IGNORE;
+	OLE1            = IGNORE;
+	OLE2            = IGNORE;
+
+#DEFFIX	
+	M		= IGNORE;
+	O2		= 2O;
+	H2O		= 2H + O;
+	H2		= 2H;	
+	CH4		= C + 4H;	
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/cmaq_s99.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/cmaq_s99.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/cmaq_s99.def	(revision 2696)
@@ -0,0 +1,111 @@
+#include cmaq_s99.spc
+#include cmaq_s99.eqn
+
+#LOOKATALL
+
+#MONITOR O3; NO; NO2; ETHENE;
+
+#INITVALUES
+
+	CFACTOR = 1.    ;              {Conversion Factor}
+        NO2             = 46.0;       
+        NO              = 30.0;       
+        O3P             = 16.0;       
+        O3              = 48.0;       
+        NO3             = 62.0;       
+        N2O5            = 108.0;       
+        HNO3            = 63.0;       
+        O1D2            = 16.0;       
+        HO              = 17.0;       
+        HONO            = 47.0;       
+        HO2             = 33.0;       
+        CO              = 28.0;       
+        HNO4            = 79.0;       
+        HO2H            = 34.0;       
+        SO2             = 64.0;       
+        SULF            = 98.0;       
+        C_O2            = 47.0;       
+        HCHO            = 30.0;       
+        COOH            = 48.0;       
+        MEOH            = 32.0;       
+        RO2_R           = 1.0;       
+        ROOH            = 62.0;       
+        R2O2            = 1.0;       
+        RO2_N           = 1.0;       
+        RNO3            = 133.0;       
+        MEK             = 72.0;       
+        PROD2           = 100.0;       
+        CCO_O2          = 75.0;       
+        PAN             = 121.0;       
+        CCO_OOH         = 76.0;       
+        CCO_OH          = 60.0;       
+        RCO_O2          = 89.0;       
+        PAN2            = 135.0;       
+        CCHO            = 44.0;       
+        RCO_OOH         = 90.0;       
+        RCO_OH          = 74.0;       
+        BZCO_O2         = 137.0;       
+        PBZN            = 183.0;       
+        BZ_O            = 93.0;       
+        MA_RCO3         = 101.0;       
+        MA_PAN          = 147.0;       
+        TBU_O           = 73.0;       
+        ACET            = 58.0;       
+        NPHE            = 139.0;       
+        PHEN            = 94.0;       
+        BZNO2_O         = 139.0;       
+        HOCOO           = 63.0;       
+        HCOOH           = 46.0;       
+        RCHO            = 58.0;       
+        GLY             = 58.0;       
+        MGLY            = 72.0;       
+        BACL            = 86.0;       
+        CRES            = 108.0;       
+        BALD            = 106.0;       
+        METHACRO        = 70.0;       
+        MVK             = 70.0;       
+        ISOPROD         = 70.0;       
+        DCB1            = 58.0;       
+        DCB2            = 72.0;       
+        DCB3            = 72.0;       
+        ETHENE          = 28.0;       
+        ISOPRENE        = 68.0;       
+        TRP1            = 136.0;       
+        ALK1            = 30.1;       
+        ALK2            = 36.7;       
+        ALK3            = 58.6;       
+        ALK4            = 77.6;       
+        ALK5            = 118.9;       
+        ARO1            = 98.6;       
+        ARO2            = 118.7;       
+        OLE1            = 72.3;       
+        OLE2            = 75.8;       
+
+#INLINE F77_INIT
+        TSTART = 12.0D0*3600.0D0
+        TEND   = TSTART + 120.0D0*3600.0D0
+        DT     = 3600.D0
+        TEMP   = 300.0D0
+#ENDINLINE   
+   
+#INLINE F90_INIT
+        TSTART = 12.0d0*3600.0d0
+        TEND   = TSTART + 120.0d0*3600.0d0
+        DT     = 3600.d0
+        TEMP   = 300.0d0
+#ENDINLINE   
+     
+#INLINE MATLAB_INIT
+   global TSTART TEND DT TEMP
+   TSTART = 12*3600;
+   TEND   = TSTART + 120*3600;
+   DT     = 3600;
+   TEMP   = 300;
+#ENDINLINE   
+     
+#INLINE C_INIT
+   TSTART = 12.0*3600.0;
+   TEND   = TSTART + 120.0*3600.0;
+   DT     = 3600.0;
+   TEMP   = 300.0;
+#ENDINLINE
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/cmaq_s99.eqn
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/cmaq_s99.eqn	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/cmaq_s99.eqn	(revision 2696)
@@ -0,0 +1,285 @@
+{ SAPRC-99 Fixed Parameter Mechanism }
+{ Created from BASEMECH.XLS 21-Jul-2004 10:31 }
+{  Base mechanism only.  Reactions of TERP, ALKn, AROn, OLEn removed. }
+{ SAPRC99 }
+
+#EQUATIONS
+{1} NO2 = NO + O3P : ((1.0));
+{2} O3P + O2 + M = O3 : (5.68e-34);
+{3} O3P + O3 = PROD : (8.00e-12);
+{4} O3P + NO + M = NO2 : (1.00e-31);
+{5} O3P + NO2 = NO : (6.50e-12);
+{6} O3P + NO2 = NO3 : (9.00e-32);
+{8} O3 + NO = NO2 : (1.80e-12);
+{9} O3 + NO2 = NO3 : (1.40e-13);
+{10} NO + NO3 = 2NO2 : (1.80e-11);
+{11} NO + NO + O2 = 2NO2 : (3.30e-39);
+{12} NO2 + NO3 = N2O5 : (2.80e-30);
+{13} N2O5 = NO2 + NO3 : (1.00e-03);
+{14} N2O5 + H2O = 2HNO3 : (2.60e-22);
+{17} NO2 + NO3 = NO + NO2 : (4.50e-14);
+{18} NO3 = NO : (1.0);
+{19} NO3 = NO2 + O3P : (1.0);
+{20} O3 = O3P : (1.0);
+{21} O3 = O1D2 : (1.0);
+{22} O1D2 + H2O = 2HO : (2.20e-10);
+{23} O1D2 + M = O3P : (2.09e-11);
+{24} HO + NO = HONO : (7.00e-31);
+{25} HONO = HO + NO : (1.0);
+{26} HONO = HO2 + NO2 : (1.0);
+{27} HO + HONO = NO2 : (2.70e-12);
+{28} HO + NO2 = HNO3 : (2.43e-30);
+{29} HO + NO3 = HO2 + NO2 : (2.00e-11);
+{30} HO + HNO3 = NO3 : (7.20e-15);
+{31} HNO3 = HO + NO2 : (1.0);
+{32} HO + CO = HO2 : (1.30e-13);
+{33} HO + O3 = HO2 : (1.90e-12);
+{34} HO2 + NO = HO + NO2 : (3.40e-12);
+{35} HO2 + NO2 = HNO4 : (1.80e-31);
+{36} HNO4 = HO2 + NO2 : (4.10e-05);
+{37} HNO4 = 0.61HO2 + 0.61NO2 + 0.39HO + 0.39NO3 : (1.0);
+{38} HNO4 + HO = NO2 : (1.50e-12);
+{39} HO2 + O3 = HO : (1.40e-14);
+{40A} HO2 + HO2 = HO2H : (2.20e-13);
+{40B} HO2 + HO2 + H2O = HO2H : (3.08e-34);
+{41} NO3 + HO2 = 0.8HO + 0.8NO2 + 0.2HNO3 : (4.00e-12);
+{42} NO3 + NO3 = 2NO2 : (8.50e-13);
+{43} HO2H = 2HO : (1.0);
+{44} HO2H + HO = HO2 : (2.90e-12);
+{45} HO + HO2 =  PROD: (4.80e-11);
+{S2OH} HO + SO2 = HO2 + SULF : (4.00e-31);
+{H2OH} HO + H2 = HO2 : (7.70e-12);
+{MER1} C_O2 + NO = NO2 + HCHO + HO2 : (2.80e-12);
+{MER4} C_O2 + HO2 = COOH : (3.80e-13);
+{MEN3} C_O2 + NO3 = HCHO + HO2 + NO2 : (1.30e-12);
+{MER5} C_O2 + C_O2 = MEOH + HCHO : (2.45e-14);
+{MER6} C_O2 + C_O2 = 2HCHO + 2HO2 : (5.90e-13);
+{RRNO} RO2_R + NO = NO2 + HO2 : (2.70e-12);
+{RRH2} RO2_R + HO2 = ROOH : (1.90e-13);
+{RRN3} RO2_R + NO3 = NO2 + HO2 : (2.30e-12);
+{RRME} RO2_R + C_O2 = HO2 + 0.75HCHO + 0.25MEOH : (2.00e-13);
+{RRR2} RO2_R + RO2_R = HO2 : (3.50e-14);
+{R2NO} R2O2 + NO = NO2 : (1.0);
+{R2H2} R2O2 + HO2 = HO2 : (1.0);
+{R2N3} R2O2 + NO3 = NO2 : (1.0);
+{R2ME} R2O2 + C_O2 = C_O2 : (1.0);
+{R2RR} R2O2 + RO2_R = RO2_R : (1.0);
+{R2R3} R2O2 + R2O2 = PROD : (1.0);
+{RNNO} RO2_N + NO = RNO3 : (1.0);
+{RNH2} RO2_N + HO2 = ROOH : (1.0);
+{RNME} RO2_N + C_O2 = HO2 + 0.25MEOH + 0.5MEK + 0.5PROD2 + 0.75HCHO
+        : (1.0);
+{RNN3} RO2_N + NO3 = NO2 + HO2 + MEK : (1.0);
+{RNRR} RO2_N + RO2_R = HO2 + 0.5MEK + 0.5PROD2 : (1.0);
+{RNR2} RO2_N + R2O2 = RO2_N : (1.0);
+{RNRN} RO2_N + RO2_N = MEK + HO2 + PROD2 : (1.0);
+{APN2} CCO_O2 + NO2 = PAN : (2.70e-28);
+{DPAN} PAN = CCO_O2 + NO2 : (4.90e-03);
+{APNO} CCO_O2 + NO = C_O2 + NO2 : (7.80e-12);
+{APH2} CCO_O2 + HO2 = 0.75CCO_OOH + 0.25CCO_OH + 0.25O3 : (4.30e-13);
+{APN3} CCO_O2 + NO3 = C_O2 + NO2 : (4.00e-12);
+{APME} CCO_O2 + C_O2 = CCO_OH + HCHO : (1.80e-12);
+{APRR} CCO_O2 + RO2_R = CCO_OH : (7.50e-12);
+{APR2} CCO_O2 + R2O2 = CCO_O2 : (1.0);
+{APRN} CCO_O2 + RO2_N = CCO_OH + PROD2 : (1.0);
+{APAP} CCO_O2 + CCO_O2 = 2C_O2 : (2.90e-12);
+{PPN2} RCO_O2 + NO2 = PAN2 : (1.20e-11);
+{PAN2} PAN2 = RCO_O2 + NO2 : (2.00e+15);
+{PPNO} RCO_O2 + NO = NO2 + CCHO + RO2_R : (1.25e-11);
+{PPH2} RCO_O2 + HO2 = 0.75RCO_OOH + 0.25RCO_OH + 0.25O3 : (1.0);
+{PPN3} RCO_O2 + NO3 = NO2 + CCHO + RO2_R : (1.0);
+{PPME} RCO_O2 + C_O2 = RCO_OH + HCHO : (1.0);
+{PPRR} RCO_O2 + RO2_R = RCO_OH : (1.0);
+{PPR2} RCO_O2 + R2O2 = RCO_O2 : (1.0);
+{PPRN} RCO_O2 + RO2_N = RCO_OH + PROD2 : (1.0);
+{PPAP} RCO_O2 + CCO_O2 = C_O2 + CCHO + RO2_R : (1.0);
+{PPPP} RCO_O2 + RCO_O2 = 2CCHO + 2RO2_R : (1.0);
+{BPN2} BZCO_O2 + NO2 = PBZN : (1.37e-11);
+{BPAN} PBZN = BZCO_O2 + NO2 : (7.90e+16);
+{BPNO} BZCO_O2 + NO = NO2 + BZ_O + R2O2 : (1.0);
+{BPH2} BZCO_O2 + HO2 = 0.75RCO_OOH + 0.25RCO_OH + 0.25O3 : (1.0);
+{BPN3} BZCO_O2 + NO3 = NO2 + BZ_O + R2O2 : (1.0);
+{BPME} BZCO_O2 + C_O2 = RCO_OH + HCHO : (1.0);
+{BPRR} BZCO_O2 + RO2_R = RCO_OH : (1.0);
+{BPR2} BZCO_O2 + R2O2 = BZCO_O2 : (1.0);
+{BPRN} BZCO_O2 + RO2_N = RCO_OH + PROD2 : (1.0);
+{BPAP} BZCO_O2 + CCO_O2 = C_O2 + BZ_O + R2O2 : (1.0);
+{BPPP} BZCO_O2 + RCO_O2 = CCHO + RO2_R + BZ_O + R2O2 : (1.0);
+{BPBP} BZCO_O2 + BZCO_O2 = 2BZ_O + 2R2O2 : (1.0);
+{MPN2} MA_RCO3 + NO2 = MA_PAN : (1.0);
+{MPPN} MA_PAN = MA_RCO3 + NO2 : (1.60e+16);
+{MPNO} MA_RCO3 + NO = NO2 + HCHO + CCO_O2 : (1.0);
+{MPH2} MA_RCO3 + HO2 = 0.75RCO_OOH + 0.25RCO_OH + 0.25O3 : (1.0);
+{MPN3} MA_RCO3 + NO3 = NO2 + HCHO + CCO_O2 : (1.0);
+{MPME} MA_RCO3 + C_O2 = RCO_OH + HCHO : (1.0);
+{MPRR} MA_RCO3 + RO2_R = RCO_OH : (1.0);
+{MPR2} MA_RCO3 + R2O2 = MA_RCO3 : (1.0);
+{MPRN} MA_RCO3 + RO2_N = 2RCO_OH : (1.0);
+{MPAP} MA_RCO3 + CCO_O2 = C_O2 + HCHO + CCO_O2 : (1.0);
+{MPPP} MA_RCO3 + RCO_O2 = HCHO + CCO_O2 + CCHO + RO2_R : (1.0);
+{MPBP} MA_RCO3 + BZCO_O2 = HCHO + CCO_O2 + BZ_O + R2O2 : (1.0);
+{MPMP} MA_RCO3 + MA_RCO3 = 2HCHO + 2CCO_O2 : (1.0);
+{TBON} TBU_O + NO2 = RNO3 : (2.40e-11);
+{TBOD} TBU_O = ACET + C_O2 : (7.50e+14);
+{BRN2} BZ_O + NO2 = NPHE : (2.30e-11);
+{BRH2} BZ_O + HO2 = PHEN : (1.0);
+{BRXX} BZ_O = PHEN : (1.00e-03);
+{BNN2} BZNO2_O + NO2 = PROD : (1.0);
+{BNH2} BZNO2_O + HO2 = NPHE : (1.0);
+{BNXX} BZNO2_O = NPHE : (1.0);
+{FAHV} HCHO = 2HO2 + CO : (1.0);
+{FAVS} HCHO = CO : (1.0);
+{FAOH} HCHO + HO = HO2 + CO : (8.60e-12);
+{FAH2} HCHO + HO2 = HOCOO : (9.70e-15);
+{FAHR} HOCOO = HO2 + HCHO : (2.40e+12);
+{FAHN} HOCOO + NO = HCOOH + NO2 + HO2 : (1.0);
+{FAN3} HCHO + NO3 = HNO3 + HO2 + CO : (2.00e-12);
+{AAOH} CCHO + HO = CCO_O2 : (5.60e-12);
+{AAHV} CCHO = CO + HO2 + C_O2 : (1.0);
+{AAN3} CCHO + NO3 = HNO3 + CCO_O2 : (1.40e-12);
+{PAOH} RCHO + HO = 0.034RO2_R + 0.001RO2_N + 0.965RCO_O2 + 0.034CO +
+         0.034CCHO : (2.00e-11);
+{PAHV} RCHO = CCHO + RO2_R + CO + HO2 : (1.0);
+{PAN3} RCHO + NO3 = HNO3 + RCO_O2 : (1.40e-12);
+{K3OH} ACET + HO = HCHO + CCO_O2 + R2O2 : (1.10e-12);
+{K3HV} ACET = CCO_O2 + C_O2 : (1.0);
+{K4OH} MEK + HO = 0.37RO2_R + 0.042RO2_N + 0.616R2O2 + 0.492CCO_O2 +
+         0.096RCO_O2 + 0.115HCHO + 0.482CCHO + 0.37RCHO : (1.30e-12);
+{K4HV} MEK = CCO_O2 + CCHO + RO2_R : (1.50e-1);
+{MeOH} MEOH + HO = HCHO + HO2 : (3.10e-12);
+{MER9} COOH + HO = 0.35HCHO + 0.35HO + 0.65C_O2 : (2.90e-12);
+{MERA} COOH = HCHO + HO2 + HO : (1.0);
+{LPR9} ROOH + HO = RCHO + 0.34RO2_R + 0.66HO : (1.10e-11);
+{LPRA} ROOH = RCHO + HO2 + HO : (1.0);
+{GLHV} GLY = 2CO + 2HO2 : (1.0);
+{GLVM} GLY = HCHO + CO : (6.00e-3);
+{GLOH} GLY + HO = 0.63HO2 + 1.26CO + 0.37RCO_O2 : (1.10e-11);
+{GLN3} GLY + NO3 = HNO3 + 0.63HO2 + 1.26CO + 0.37RCO_O2 : (2.80e-12);
+{MGHV} MGLY = HO2 + CO + CCO_O2 : (1.0);
+{MGOH} MGLY + HO = CO + CCO_O2 : (1.50e-11);
+{MGN3} MGLY + NO3 = HNO3 + CO + CCO_O2 : (1.40e-12);
+{BAHV} BACL = 2CCO_O2 : (1.0);
+{PHOH} PHEN + HO = 0.24BZ_O + 0.76RO2_R + 0.23GLY : (2.63e-11);
+{PHN3} PHEN + NO3 = HNO3 + BZ_O : (3.78e-12);
+{CROH} CRES + HO = 0.24BZ_O + 0.76RO2_R + 0.23MGLY : (4.20e-11);
+{CRN3} CRES + NO3 = HNO3 + BZ_O : (1.37e-11);
+{NPN3} NPHE + NO3 = HNO3 + BZNO2_O : (1.0);
+{BZOH} BALD + HO = BZCO_O2 : (1.29e-11);
+{BZHV} BALD = PROD : (5.00e-2);
+{BZNT} BALD + NO3 = HNO3 + BZCO_O2 : (1.40e-12);
+{MAOH} METHACRO + HO = 0.5RO2_R + 0.416CO + 0.084HCHO + 0.416MEK +
+         0.084MGLY + 0.5MA_RCO3 : (1.86e-11);
+{MAO3} METHACRO + O3 = 0.008HO2 + 0.1RO2_R + 0.208HO + 0.1RCO_O2 + 0.45CO +
+         0.2HCHO + 0.9MGLY + 0.333HCOOH : (1.36e-15);
+{MAN3} METHACRO + NO3 = 0.5HNO3 + 0.5RO2_R + 0.5CO + 0.5MA_RCO3
+        : (1.50e-12);
+{MAOP} METHACRO + O3P = RCHO : (6.34e-12);
+{MAHV} METHACRO = 0.34HO2 + 0.33RO2_R + 0.33HO + 0.67CCO_O2 + 0.67CO +
+         0.67HCHO + 0.33MA_RCO3 : (4.10e-3);
+{MVOH} MVK + HO = 0.3RO2_R + 0.025RO2_N + 0.675R2O2 + 0.675CCO_O2 +
+         0.3HCHO + 0.675RCHO + 0.3MGLY : (4.14e-12);
+{MVO3} MVK + O3 = 0.064HO2 + 0.05RO2_R + 0.164HO + 0.05RCO_O2 + 0.475CO +
+         0.1HCHO + 0.95MGLY + 0.351HCOOH : (7.51e-16);
+{MVOP} MVK + O3P = 0.45RCHO + 0.55MEK : (4.32e-12);
+{MVHV} MVK = 0.3C_O2 + 0.7CO + 0.7PROD2 + 0.3MA_RCO3
+             : (2.10e-3);
+{IPOH} ISOPROD + HO = 0.67RO2_R + 0.041RO2_N + 0.289MA_RCO3 + 0.336CO +
+         0.055HCHO + 0.129CCHO + 0.013RCHO + 0.15MEK + 0.332PROD2 +
+         0.15GLY + 0.174MGLY : (6.19e-11);
+{IPO3} ISOPROD + O3 = 0.4HO2 + 0.048RO2_R + 0.048RCO_O2 + 0.285HO +
+         0.498CO + 0.125HCHO + 0.047CCHO + 0.21MEK + 0.023GLY +
+         0.742MGLY + 0.1HCOOH + 0.372RCO_OH : (4.18e-18);
+{IPN3} ISOPROD + NO3 = 0.799RO2_R + 0.051RO2_N + 0.15MA_RCO3 + 0.572CO +
+         0.15HNO3 + 0.227HCHO + 0.218RCHO + 0.008MGLY + 0.572RNO3
+        : (1.00e-13);
+{IPHV} ISOPROD = 1.233HO2 + 0.467CCO_O2 + 0.3RCO_O2 + 1.233CO + 0.3HCHO +
+         0.467CCHO + 0.233MEK : (4.10e-3);
+{K6OH} PROD2 + HO = 0.379HO2 + 0.473RO2_R + 0.07RO2_N + 0.029CCO_O2 +
+         0.049RCO_O2 + 0.213HCHO + 0.084CCHO + 0.558RCHO + 0.115MEK +
+         0.329PROD2 : (1.50e-11);
+{K6HV} PROD2 = 0.96RO2_R + 0.04RO2_N + 0.515R2O2 + 0.667CCO_O2 +
+         0.333RCO_O2 + 0.506HCHO + 0.246CCHO + 0.71RCHO 
+         : (2.00e-2);
+{RNOH} RNO3 + HO = 0.338NO2 + 0.113HO2 + 0.376RO2_R + 0.173RO2_N +
+         0.596R2O2 + 0.01HCHO + 0.439CCHO + 0.213RCHO + 0.006ACET +
+         0.177MEK + 0.048PROD2 + 0.31RNO3 : (7.80e-12);
+{RNHV} RNO3 = NO2 + 0.341HO2 + 0.564RO2_R + 0.095RO2_N + 0.152R2O2 +
+         0.134HCHO + 0.431CCHO + 0.147RCHO + 0.02ACET + 0.243MEK +
+         0.435PROD2 : (1.0);
+{D1OH} DCB1 + HO = RCHO + RO2_R + CO : (5.00e-11);
+{D1O3} DCB1 + O3 = 1.5HO2 + 0.5HO + 1.5CO + GLY : (2.00e-18);
+{D2OH} DCB2 + HO = R2O2 + RCHO + CCO_O2 : (5.00e-11);
+{D2HV} DCB2 = RO2_R + 0.5CCO_O2 + 0.5HO2 + CO + R2O2 + 0.5GLY + 0.5MGLY
+        : (3.65e-1);
+{D3OH} DCB3 + HO = R2O2 + RCHO + CCO_O2 : (5.00e-11);
+{D3HV} DCB3 = RO2_R + 0.5CCO_O2 + 0.5HO2 + CO + R2O2 + 0.5GLY + 0.5MGLY
+        : (7.28e+0);
+{c1OH} CH4 + HO = C_O2 : (2.15e-12);
+{etOH} ETHENE + HO = RO2_R + 1.61HCHO + 0.195CCHO : (1.96e-12);
+{etO3} ETHENE + O3 = 0.12HO + 0.12HO2 + 0.5CO + HCHO + 0.37HCOOH
+        : (9.14e-15);
+{etN3} ETHENE + NO3 = RO2_R + RCHO : (4.39e-13);
+{etOA} ETHENE + O3P = 0.5HO2 + 0.2RO2_R + 0.3C_O2 + 0.491CO + 0.191HCHO +
+         0.25CCHO + 0.009GLY : (1.04e-11);
+{isOH} ISOPRENE + HO = 0.907RO2_R + 0.093RO2_N + 0.079R2O2 + 0.624HCHO +
+         0.23METHACRO + 0.32MVK + 0.357ISOPROD : (2.50e-11);
+{isO3} ISOPRENE + O3 = 0.266HO + 0.066RO2_R + 0.008RO2_N + 0.126R2O2 +
+         0.192MA_RCO3 + 0.275CO + 0.592HCHO + 0.1PROD2 + 0.39METHACRO +
+         0.16MVK + 0.204HCOOH + 0.15RCO_OH : (7.86e-15);
+{isN3} ISOPRENE + NO3 = 0.187NO2 + 0.749RO2_R + 0.064RO2_N + 0.187R2O2 +
+         0.936ISOPROD : (3.03e-12);
+{isOP} ISOPRENE + O3P = 0.01RO2_N + 0.24R2O2 + 0.25C_O2 + 0.24MA_RCO3 +
+         0.24HCHO + 0.75PROD2 : (3.60e-11);
+{t1OH} TRP1 + HO = 0.75RO2_R + 0.25RO2_N + 0.5R2O2 + 0.276HCHO +
+         0.474RCHO + 0.276PROD2 : (1.83e-11);
+{t1O3} TRP1 + O3 = 0.567HO + 0.033HO2 + 0.031RO2_R + 0.18RO2_N +
+         0.729R2O2 + 0.123CCO_O2 + 0.201RCO_O2 + 0.157CO + 0.235HCHO +
+         0.205RCHO + 0.13ACET + 0.276PROD2 + 0.001GLY + 0.031BACL +
+         0.103HCOOH + 0.189RCO_OH : (1.08e-15);
+{t1N3} TRP1 + NO3 = 0.474NO2 + 0.276RO2_R + 0.25RO2_N + 0.75R2O2 +
+         0.474RCHO + 0.276RNO3 : (3.66e-12);
+{t1OP} TRP1 + O3P = 0.147RCHO + 0.853PROD2 : (3.27e-11);
+{a1OH} ALK1 + HO = RO2_R + CCHO : (1.37e-12);
+{a2OH} ALK2 + HO = 0.246HO + 0.121HO2 + 0.612RO2_R + 0.021RO2_N + 0.16CO +
+         0.039HCHO + 0.155RCHO + 0.417ACET + 0.248GLY + 0.121HCOOH
+        : (9.87e-12);
+{a3OH} ALK3 + HO = 0.695RO2_R + 0.07RO2_N + 0.559R2O2 + 0.236TBU_O +
+         0.026HCHO + 0.445CCHO + 0.122RCHO + 0.024ACET + 0.332MEK
+        : (1.02e-11);
+{a4OH} ALK4 + HO = 0.835RO2_R + 0.143RO2_N + 0.936R2O2 + 0.011C_O2 +
+         0.011CCO_O2 + 0.002CO + 0.024HCHO + 0.455CCHO + 0.244RCHO +
+         0.452ACET + 0.11MEK + 0.125PROD2 : (5.95e-12);
+{a5OH} ALK5 + HO = 0.653RO2_R + 0.347RO2_N + 0.948R2O2 + 0.026HCHO +
+         0.099CCHO + 0.204RCHO + 0.072ACET + 0.089MEK + 0.417PROD2
+        : (1.11e-11);
+{b1OH} ARO1 + HO = 0.224HO2 + 0.765RO2_R + 0.011RO2_N + 0.055PROD2 +
+         0.118GLY + 0.119MGLY + 0.017PHEN + 0.207CRES + 0.059BALD +
+         0.491DCB1 + 0.108DCB2 + 0.051DCB3 : (1.81e-12);
+{b2OH} ARO2 + HO = 0.187HO2 + 0.804RO2_R + 0.009RO2_N + 0.097GLY +
+         0.287MGLY + 0.087BACL + 0.187CRES + 0.05BALD + 0.561DCB1 +
+         0.099DCB2 + 0.093DCB3 : (2.64e-11);
+{o1OH} OLE1 + HO = 0.91RO2_R + 0.09RO2_N + 0.205R2O2 + 0.732HCHO +
+         0.294CCHO + 0.497RCHO + 0.005ACET + 0.119PROD2 : (7.10e-12);
+{o1O3} OLE1 + O3 = 0.155HO + 0.056HO2 + 0.022RO2_R + 0.001RO2_N +
+         0.076C_O2 + 0.345CO + 0.5HCHO + 0.154CCHO + 0.363RCHO +
+         0.001ACET + 0.215PROD2 + 0.185HCOOH + 0.05CCO_OH + 0.119RCO_OH
+        : (2.62e-15);
+{o1N3} OLE1 + NO3 = 0.824RO2_R + 0.176RO2_N + 0.488R2O2 + 0.009CCHO +
+         0.037RCHO + 0.024ACET + 0.511RNO3 : (4.45e-14);
+{o1OP} OLE1 + O3P = 0.45RCHO + 0.437MEK + 0.113PROD2 : (1.07e-11);
+{o2OH} OLE2 + HO = 0.918RO2_R + 0.082RO2_N + 0.001R2O2 + 0.244HCHO +
+         0.732CCHO + 0.511RCHO + 0.127ACET + 0.072MEK + 0.061BALD +
+         0.025METHACRO + 0.025ISOPROD : (1.74e-11);
+{o2O3} OLE2 + O3 = 0.378HO + 0.003HO2 + 0.033RO2_R + 0.002RO2_N +
+         0.137R2O2 + 0.197C_O2 + 0.137CCO_O2 + 0.006RCO_O2 + 0.265CO +
+         0.269HCHO + 0.456CCHO + 0.305RCHO + 0.045ACET + 0.026MEK +
+         0.006PROD2 + 0.042BALD + 0.026METHACRO + 0.073HCOOH +
+         0.129CCO_OH + 0.303RCO_OH : (5.02e-16);
+{o2N3} OLE2 + NO3 = 0.391NO2 + 0.442RO2_R + 0.136RO2_N + 0.711R2O2 +
+         0.03C_O2 + 0.079HCHO + 0.507CCHO + 0.151RCHO + 0.102ACET +
+         0.001MEK + 0.015BALD + 0.048MVK + 0.321RNO3 : (7.26e-13);
+{o2OP} OLE2 + O3P = 0.013HO2 + 0.012RO2_R + 0.001RO2_N + 0.012CO +
+         0.069RCHO + 0.659MEK + 0.259PROD2 + 0.012METHACRO : (2.09e-11);
+{c1OH} HCOOH + HO = HO2 : (4.5E-13);
+{c2OH} CCO_OH + HO = 0.13RO2_R + 0.87C_O2 + 0.13MGLY : (8.00E-13);
+{c3OH} RCO_OH + HO = RO2_R + 0.605CCHO + 0.21RCHO + 0.185BACL : (1.16E-12);
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/cmaq_s99.spc
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/cmaq_s99.spc	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/cmaq_s99.spc	(revision 2696)
@@ -0,0 +1,82 @@
+#include atoms
+
+#DEFVAR   
+	NO2             = N + 2O;
+	NO              = N + O;
+	O3P             = O;
+	O3              = 3O;
+	NO3             = N + 3O;
+	N2O5            = 2N + 5O;
+	HNO3            = H + N + 3O;
+	O1D2            = O;
+	HO              = H + O;
+	HONO            = H + 2O + N;
+	HO2             = H + 2O;
+	CO              = C + O;
+	HNO4            = H + 4O + N;
+	HO2H            = 2H + 2O;
+	SO2             = S + 2O;
+	SULF            = IGNORE;
+	C_O2            = IGNORE;
+	HCHO            = 2H + C + O;
+	COOH            = H + 2O + C;
+	MEOH            = IGNORE;
+	RO2_R           = IGNORE;
+	ROOH            = IGNORE;
+	R2O2            = IGNORE;
+	RO2_N           = IGNORE;
+	RNO3            = IGNORE;
+	MEK             = IGNORE;
+	PROD2           = IGNORE;
+	CCO_O2          = IGNORE;
+	PAN             = IGNORE;
+	CCO_OOH         = 2C + 3O + H;
+	CCO_OH          = 2O + 2C + H;
+	RCO_O2          = IGNORE;
+	PAN2            = IGNORE;
+	CCHO            = 2C + H + O;
+	RCO_OOH         = IGNORE;
+	RCO_OH          = IGNORE;
+	BZCO_O2         = IGNORE;
+	PBZN            = IGNORE;
+	BZ_O            = IGNORE;
+	MA_RCO3         = IGNORE;
+	MA_PAN          = IGNORE;
+	TBU_O           = IGNORE;
+	ACET            = IGNORE;
+	NPHE            = IGNORE;
+	PHEN            = IGNORE;
+	BZNO2_O         = IGNORE;
+	HOCOO           = IGNORE;
+	HCOOH           = IGNORE;
+	RCHO            = IGNORE;
+	GLY             = IGNORE;
+	MGLY            = IGNORE;
+	BACL            = IGNORE;
+	CRES            = IGNORE;
+	BALD            = IGNORE;
+	METHACRO        = IGNORE;
+	MVK             = IGNORE;
+	ISOPROD         = IGNORE;
+	DCB1            = IGNORE;
+	DCB2            = IGNORE;
+	DCB3            = IGNORE;
+	ETHENE          = 2C + 4H;
+	ISOPRENE        = IGNORE;
+	TRP1            = IGNORE;
+	ALK1            = IGNORE;
+	ALK2            = IGNORE;
+	ALK3            = IGNORE;
+	ALK4            = IGNORE;
+	ALK5            = IGNORE;
+	ARO1            = IGNORE;
+	ARO2            = IGNORE;
+	OLE1            = IGNORE;
+	OLE2            = IGNORE;
+
+#DEFFIX	
+	M		= IGNORE;
+	O2		= 2O;
+	H2O		= 2H + O;
+	H2		= 2H;	
+	CH4		= C + 4H;	
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/saprc99.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/saprc99.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/saprc99.def	(revision 2696)
@@ -0,0 +1,87 @@
+#include saprc99.spc
+#include saprc99.eqn
+
+{#LANGUAGE Fortran77
+#INTEGRATOR rodas3
+#DRIVER matlab
+#HESSIAN ON}
+
+#LOOKATALL
+
+#MONITOR O3; NO; NO2; ETHENE;
+
+#INITVALUES
+
+   CFACTOR = 2.4476e+13;
+
+   ALL_SPEC = 0.0e0;
+   NO = 1.0e-1;
+   NO2 = 5.0e-2;
+   HONO = 1.e-3;
+   SO2 = 5.e-2;
+   HCHO = 1.121e-2;
+   CCHO = 2.316e-3;
+   RCHO = 1.72e-3;
+   ACET = 5.07e-3;
+   MEK = 3.26e-3;
+   MEOH = 5.89e-3;
+   GLY = 1.21e-4;
+   MGLY = 8.37e-5;
+   PHEN = 6.06e-4;
+   CRES = 5.60e-4;
+   BALD = 7.51e-5; 
+   METHACRO = 1.30e-3; 
+   ISOPROD = 8.93e-5; 
+   PROD2 = 1.93e-3; 
+   ETHENE = 1.89e-2;                 
+   ISOPRENE = 4.33e-4;
+   ALK1 = 1.167e-2;
+   ALK2 = 1.88e-2;
+   ALK3 = 4.69e-2;
+   ALK4 = 4.17e-2;
+   ALK5 = 3.06e-2;   
+   ARO1 = 1.18e-2;
+   ARO2 = 8.74e-3;
+   OLE1 = 1.04e-2;
+   OLE2 = 7.97e-3;   
+   TERP = 8.20e-4;
+   XC   = 0.2E0;
+   CCO_OH = 1.16e-3; 
+   RCO_OH = 3.92e-4;     
+   HCOOH  = 6.77e-4;
+   O3P    = 7.843e-9;
+   H2O = 2.0e+04; 
+   O2  = 2.09e+5;
+   AIR = 1.0e+6;
+   CH4 = 1.0e0;
+     
+#INLINE F77_INIT
+        TSTART = 12.0D0*3600.0D0
+        TEND   = TSTART + 120.0D0*3600.0D0
+        DT     = 3600.D0
+        TEMP   = 300.0D0
+#ENDINLINE   
+   
+#INLINE F90_INIT
+        TSTART = 12.0d0*3600.0d0
+        TEND   = TSTART + 120.0d0*3600.0d0
+        DT     = 3600.d0
+        TEMP   = 300.0d0
+#ENDINLINE   
+     
+#INLINE MATLAB_INIT
+   global TSTART TEND DT TEMP
+   TSTART = 12*3600;
+   TEND   = TSTART + 120*3600;
+   DT     = 3600;
+   TEMP   = 300;
+#ENDINLINE   
+     
+#INLINE C_INIT
+   TSTART = 12.0*3600.0;
+   TEND   = TSTART + 120.0*3600.0;
+   DT     = 3600.0;
+   TEMP   = 300.0;
+#ENDINLINE   
+   
+   
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/saprc99.eqn
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/saprc99.eqn	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/saprc99.eqn	(revision 2696)
@@ -0,0 +1,354 @@
+#Equations
+
+{1} NO2 + hv = NO + O3P : 				6.69e-1*(SUN/60.0e0);
+{2} O3P + O2 + AIR = O3 : 				ARR(5.68e-34,0.0e0,-2.80e0);
+{3} O3P + O3 = 2O2 : 					ARR(8.00e-12,2060.0e0,0.0e0);
+{4} O3P + NO + AIR = NO2 : 				ARR(1.00e-31,0.0e0,-1.60e0);
+{5} O3P + NO2 = NO : 					ARR(6.50e-12,-120.0e0,0.0e0);
+{6} O3P + NO2   = NO3 : 				FALL(9.00e-32,0.0e0,-2.00e0,2.20e-11,0.0e0,0.0e0,0.80e0);
+{7} O3 + NO = NO2 : 					ARR(1.80e-12,1370.0e0,0.0e0);
+{8} O3 + NO2 = NO3 : 					ARR(1.40e-13,2470.0e0,0.0e0);
+{9} NO + NO3 = 2NO2 : 					ARR(1.80e-11,-110.0e0,0.0e0);
+{10} NO + NO + O2 = 2NO2 : 				ARR(3.30e-39,-530.0e0,0.0e0);
+{11} NO2 + NO3   = N2O5 : 				FALL(2.80e-30,0.0e0,-3.50e0,2.00e-12,0.0e0,0.20e0,0.45e0);
+{12} N2O5   = NO2 + NO3 : 			        FALL(1.e-3,11000.0e0,-3.5e0,9.7e+14,11080.0e0,0.1e0,0.45e0);
+{13} N2O5 + H2O = 2HNO3 : 				(2.60e-22);
+{14} NO2 + NO3 = NO + NO2 : 				ARR(4.50e-14,1260.0e0,0.0e0);
+{15} NO3 + hv = NO : 					1.59e0*(SUN/60.0e0);
+{16} NO3 + hv = NO2 + O3P : 				1.50e+1*(SUN/60.0e0);
+{17} O3 + hv = O3P : 					3.76e-2*(SUN/60.0e0);
+{18} O3 + hv = O1D : 					4.19e-3*(SUN/60.0e0);
+{19} O1D + H2O = 2OH : 				        (2.20e-10);
+{20} O1D + AIR = O3P : 					ARR(2.09e-11,-95.0e0,0.0e0);
+{21} OH + NO   = HONO : 				FALL(7.00e-31,0.0e0,-2.60e0,3.60e-11,0.0e0,-0.10e0,0.60e0);
+{22} HONO + hv = OH + NO : 				1.27e-1*(SUN/60.0e0);
+{23} HONO + hv = HO2 + NO2 : 				1.60e-2*(SUN/60.0e0);
+{24} OH + HONO = NO2 : 					ARR(2.70e-12,-260.0e0,0.0e0);
+{25} OH + NO2 = HNO3 : 					FALL(2.43e-30, 0.0e0,-3.10e0,1.67e-11,0.0e0,-2.10e0,0.60e0);
+{26} OH + NO3 = HO2 + NO2 : 				(2.00e-11);
+{27} OH + HNO3 = NO3 : 					EP2(7.20e-15,-785.0e0,4.10e-16,-1440.0e0,1.90e-33,-725.0e0);
+{28} HNO3 + hv = OH + NO2 : 				5.40e-5*(SUN/60.0e0);
+{29} OH + CO = HO2 : 					EP3(1.30e-13,0.0e0,3.19e-33,0.0e0);
+{30} OH + O3 = HO2 : 					ARR(1.90e-12,1000.0e0,0.0e0);
+{31} HO2 + NO = OH + NO2 : 				ARR(3.40e-12,-270.0e0,0.0e0);
+{32} HO2 + NO2  = HNO4 : 				FALL(1.80e-31,0.0,-3.20,4.70e-12,0.0e0,0.0,0.6);
+{33} HNO4  = HO2 + NO2 : 			FALL(4.10e-05,10650.0,0.0,5.7e+15,11170.0,0.0,0.5);
+{34} HNO4 + hv = 0.61HO2 + 0.61NO2 + 0.39OH + 
+            0.39NO3 : 					4.69e-4*(SUN/60.0e0);
+{35} HNO4 + OH = NO2 : 					ARR(1.50e-12,-360.0e0,0.0e0);
+{36} HO2 + O3 = OH : 					ARR(1.40e-14,600.0e0,0.0e0);
+{37} HO2 + HO2 = H2O2 : 				EP3(2.20e-13,-600.0e0,1.85e-33,-980.0e0);
+{38} HO2 + HO2 + H2O = H2O2 : 				EP3(3.08e-34,-2800.0e0,2.59e-54,-3180.0e0);
+{39} NO3 + HO2 = 0.8OH + 0.8NO2 + 0.2HNO3 : 		(4.00e-12);
+{40} NO3 + NO3 = 2NO2 : 				ARR(8.50e-13,2450.0e0,0.0e0);
+{41} H2O2 + hv = 2OH : 					5.64e-4*(SUN/60.0e0);
+{42} H2O2 + OH = HO2 : 					ARR(2.90e-12,160.0e0,0.0e0);
+{43} OH + HO2 = H2O + O2 : 				ARR(4.80e-11,-250.0e0,0.0e0);
+{44} OH + SO2   = HO2 + H2SO4 :  		    	FALL(4.00e-31,0.0e0,-3.30e0,2.00e-12,0.0e0,0.0e0,0.45e0);
+{45} OH + H2 = HO2 :				    	ARR(7.70e-12,2100.0e0,0.0e0);
+{46} C_O2 + NO = NO2 + HCHO + HO2 : 	    		ARR(2.80e-12,-285.0e0,0.0e0);
+{47} C_O2 + HO2 = COOH :			    	ARR(3.80e-13,-780.0e0,0.0e0);
+{48} C_O2 + NO3 = HCHO + HO2 + NO2 :	    		(1.30e-12);
+{49} C_O2 + C_O2 = MEOH + HCHO :		    	ARR(2.45e-14,-710.0e0,0.0e0);
+{50} C_O2 + C_O2 = 2HCHO + 2HO2 : 	    		ARR(5.90e-13,509.0e0,0.0e0);
+{51} RO2_R + NO = NO2 + HO2 : 		    		ARR(2.70e-12,-360.0e0,0.0e0);
+{52} RO2_R + HO2 = ROOH :			    	ARR(1.90e-13,-1300.0e0,0.0e0);
+{53} RO2_R + NO3 = NO2 + HO2 :		    		(2.30e-12);
+{54} RO2_R + C_O2 = HO2 + 0.75HCHO +
+                      0.25MEOH : 			(2.00e-13);
+{55} RO2_R + RO2_R = HO2 :			    	(3.50e-14);
+{56} R2O2 + NO = NO2 :  			    	ARR(2.70e-12,-360.0e0,0.0e0);
+{57} R2O2 + HO2 = HO2 : 			    	ARR(1.90e-13,-1300.0e0,0.0e0);
+{58} R2O2 + NO3 = NO2 : 			    	(2.30e-12);
+{59} R2O2 + C_O2 = C_O2 :			    	(2.00e-13);
+{60} R2O2 + RO2_R = RO2_R :			    	(3.50e-14);
+{61} R2O2 + R2O2 = 2R2O2 :				(0.0e0);
+{62} RO2_N + NO = RNO3 :			    	ARR(2.70e-12,-360.0e0,0.0e0);
+{63} RO2_N + HO2 = ROOH :			    	ARR(1.90e-13,-1300.0e0,0.0e0);
+{64} RO2_N + C_O2 = HO2 + 0.25MEOH +
+       0.5MEK + 0.5PROD2 + 0.75HCHO : 			(2.00e-13);
+{65} RO2_N + NO3 = NO2 + HO2 + MEK : 			(2.30e-12);
+{66} RO2_N + RO2_R = HO2 + 0.5MEK + 
+       0.5PROD2 : 					(3.50e-14);
+{67} RO2_N + R2O2 = RO2_N : 				(3.50e-14);
+{68} RO2_N + RO2_N = MEK + HO2 + PROD2 : 		(3.50e-14);
+{69} CCO_O2 + NO2  = PAN : 				FALL(2.70e-28,0.0e0,-7.10e0,1.20e-11,0.0e0,-0.90e0,0.30e0);
+{70} PAN  = CCO_O2 + NO2 : 				FALL(4.90e-3,12100.0e0,0.0e0,4.0e+16,13600.0e0,0.e0,0.3e0);
+{71} CCO_O2 + NO = C_O2 + NO2 : 			ARR(7.80e-12,-300.0e0,0.0e0);
+{72} CCO_O2 + HO2 = 0.75CCO_OOH + 
+       0.25CCO_OH + 0.25O3 : 				ARR(4.30e-13,-1040.0e0,0.0e0);
+{73} CCO_O2 + NO3 = C_O2 + NO2 : 			(4.00e-12);
+{74} CCO_O2 + C_O2 = CCO_OH + HCHO : 			ARR(1.80e-12,-500.0e0,0.0e0);
+{75} CCO_O2 + RO2_R = CCO_OH : 				(7.50e-12);
+{76} CCO_O2 + R2O2 = CCO_O2 : 				(7.50e-12);
+{77} CCO_O2 + RO2_N = CCO_OH + PROD2 : 			(7.50e-12);
+{78} CCO_O2 + CCO_O2 = 2C_O2 : 				ARR(2.90e-12,-500.0e0,0.0e0);
+{79} RCO_O2 + NO2 = PAN2 : 				ARR(1.20e-11,0.0e0,-0.90e0);
+{80} PAN2 = RCO_O2 + NO2 : 				ARR(2.00e+15,12800.0e0,0.0e0);
+{81} RCO_O2 + NO = NO2 + CCHO + RO2_R : 		ARR(1.25e-11,-240.0e0,0.0e0);
+{82} RCO_O2 + HO2 = 0.75RCO_OOH + 
+       0.25RCO_OH + 0.25O3 : 				ARR(4.30e-13,-1040.0e0,0.0e0);
+{83} RCO_O2 + NO3 = NO2 + CCHO + RO2_R : 		(4.00e-12);
+{84} RCO_O2 + C_O2 = RCO_OH + HCHO : 			ARR(1.80e-12,-500.0e0,0.0e0);
+{85} RCO_O2 + RO2_R = RCO_OH : 				(7.50e-12);
+{86} RCO_O2 + R2O2 = RCO_O2 : 				(7.50e-12);
+{87} RCO_O2 + RO2_N = RCO_OH + PROD2 : 			(7.50e-12);
+{88} RCO_O2 + CCO_O2 = C_O2 + CCHO + RO2_R : 		ARR(2.90e-12,-500.0e0,0.0e0);
+{89} RCO_O2 + RCO_O2 = 2CCHO + 2RO2_R : 		ARR(2.90e-12,-500.0e0,0.0e0);
+{90} BZCO_O2 + NO2 = PBZN : 				(1.37e-11);
+{91} PBZN = BZCO_O2 + NO2 : 				ARR(7.90e+16,14000.0e0,0.0e0);
+{92} BZCO_O2 + NO = NO2 + BZ_O + R2O2 : 		ARR(1.25e-11,-240.0e0,0.0e0);
+{93} BZCO_O2 + HO2 = 0.75RCO_OOH + 
+       0.25RCO_OH + 0.25O3 : 				ARR(4.30e-13,-1040.0e0,0.0e0);
+{94} BZCO_O2 + NO3 = NO2 + BZ_O + R2O2 : 		(4.00e-12);
+{95} BZCO_O2 + C_O2 = RCO_OH + HCHO : 			ARR(1.80e-12,-500.0e0,0.0e0);
+{96} BZCO_O2 + RO2_R = RCO_OH : 			(7.50e-12);
+{97} BZCO_O2 + R2O2 = BZCO_O2 : 			(7.50e-12);
+{98} BZCO_O2 + RO2_N = RCO_OH + PROD2 : 		(7.50e-12);
+{99} BZCO_O2 + CCO_O2 = C_O2 + BZ_O + R2O2 : 		ARR(2.90e-12,-500.0e0,0.0e0);
+{100} BZCO_O2 + RCO_O2 = CCHO + RO2_R + 
+       BZ_O + R2O2 : 					ARR(2.90e-12,-500.0e0,0.0e0);
+{101} BZCO_O2 + BZCO_O2 = 2BZ_O + 2R2O2: 		ARR(2.90e-12,-500.0e0,0.0e0);
+{102} MA_RCO3 + NO2 = MA_PAN : 				ARR(1.20e-11,0.0e0,-0.90e0);
+{103} MA_PAN = MA_RCO3 + NO2 : 				ARR(1.60e+16,13486.0e0,0.0e0);
+{104} MA_RCO3 + NO = NO2 + HCHO + CCO_O2 : 		ARR(1.25e-11,-240.0e0,0.0e0);
+{105} MA_RCO3 + HO2 = 0.75RCO_OOH + 
+       0.25RCO_OH + 0.25O3 : 				ARR(4.30e-13,-1040.0e0,0.0e0);
+{106} MA_RCO3 + NO3 = NO2 + HCHO + CCO_O2 : 		(4.00e-12);
+{107} MA_RCO3 + C_O2 = RCO_OH + HCHO : 			ARR(1.80e-12,-500.0e0,0.0e0);
+{108} MA_RCO3 + RO2_R = RCO_OH : 			(7.50e-12);
+{109} MA_RCO3 + R2O2 = MA_RCO3 : 			(7.50e-12);
+{110} MA_RCO3 + RO2_N = 2RCO_OH : 			(7.50e-12);
+{111} MA_RCO3 + CCO_O2 = C_O2 + HCHO + 
+       CCO_O2 : 					ARR(2.90e-12,-500.0e0,0.0e0);
+{112} MA_RCO3 + RCO_O2 = HCHO + CCO_O2 + 
+       CCHO + RO2_R : 					ARR(2.90e-12,-500.0e0,0.0e0);
+{113} MA_RCO3 + BZCO_O2 = HCHO + CCO_O2 + 
+       BZ_O + R2O2 : 					ARR(2.90e-12,-500.0e0,0.0e0);
+{114} MA_RCO3 + MA_RCO3 = 2HCHO + 2CCO_O2 : 		ARR(2.90e-12,-500.0e0,0.0e0);
+{115} TBU_O + NO2 = RNO3 : 				(2.40e-11);
+{116} TBU_O = ACET + C_O2 : 				ARR(7.50e+14,8152.0e0,0.0e0);
+{117} BZ_O + NO2 = NPHE : 				ARR(2.30e-11,-150.0e0,0.0e0);
+{118} BZ_O + HO2 = PHEN : 				ARR(1.90e-13,-1300.0e0,0.0e0);
+{119} BZ_O = PHEN : 					(1.00e-03);
+{120} BZNO2_O + NO2 =  2XN + 6XC: 			ARR(7.50e+14,8152.0e0,0.0e0);
+{121} BZNO2_O + HO2 = NPHE : 				ARR(2.30e-11,-150.0e0,0.0e0);
+{122} BZNO2_O  = NPHE :					ARR(1.90e-13,-1300.0e0,0.0e0);
+{123} HCHO + hv = 2HO2 + CO :				2.32e-3*(SUN/60.0e0);
+{124} HCHO + hv = CO : 					3.15e-3*(SUN/60.0e0);
+{125} HCHO + OH = HO2 + CO :  				ARR(8.60e-12,-20.0e0,0.0e0);
+{126} HCHO + HO2 = HOCOO :				ARR(9.70e-15,-625.0e0,0.0e0);
+{127} HOCOO = HO2 + HCHO :				ARR(2.40e+12,7000.0e0,0.0e0);
+{128} HOCOO + NO = HCOOH + NO2 + HO2 :			ARR(2.80e-12,-285.0e0,0.0e0);
+{129} HCHO + NO3 = HNO3 + HO2 + CO :			ARR(2.00e-12,2431.0e0,0.0e0);
+{130} CCHO + OH = CCO_O2 :				ARR(5.60e-12,-310.0e0,0.0e0);
+{131} CCHO +hv = CO + HO2 + C_O2 : 			4.16e-4*(SUN/60.0e0);
+{132} CCHO + NO3 = HNO3 + CCO_O2 : 			ARR(1.40e-12,1860.0e0,0.0e0);
+{133} RCHO + OH = 0.034RO2_R + 0.001RO2_N  + 
+       0.965RCO_O2 + 0.034CO+ 0.034CCHO : 		(2.00e-11);
+{134} RCHO + hv = CCHO + RO2_R + CO + HO2 : 		1.40e-3*(SUN/60.0e0);
+{135} RCHO + NO3 = HNO3 + RCO_O2 : 			ARR(1.40e-12,1771.0e0,0.0e0);
+{136} ACET + OH = HCHO + CCO_O2 + R2O2 : 		ARR(1.10e-12,520.0e0,0.0e0);
+{137} ACET + hv  = CCO_O2 + C_O2 : 			4.16e-5*(SUN/60.0e0);
+{138} MEK + OH = 0.37RO2_R + 0.042RO2_N  + 
+       0.616R2O2+ 0.492CCO_O2 + 
+	 0.096RCO_O2 + 0.115HCHO + 
+	 0.482CCHO + 0.37RCHO : 			ARR(1.30e-12,25.0e0,2.0e0);
+{139} MEK + hv = CCO_O2 + CCHO + RO2_R : 		9.49e-4*(1.50e-1*SUN/60.0e0);
+{140} MEOH + OH = HCHO + HO2 : 				ARR(3.10e-12,360.0e0,2.0e0);
+{141} COOH + OH = 0.35HCHO + 0.35OH + 
+       0.65C_O2 : 					ARR(2.90e-12,-190.0e0,0.0e0);
+{142} COOH + hv = HCHO + HO2 + OH :		      	3.94e-4*(SUN/60.0e0);
+{143} ROOH + OH = RCHO + 0.34RO2_R + 
+       0.66OH : 					(1.10e-11);
+{144} ROOH + hv = RCHO + HO2 + OH : 		        3.94e-4*(SUN/60.0e0);
+{145} GLY + hv = 2CO+ 2HO2 : 				8.93e-3*(SUN/60.0e0);
+{146} GLY + hv = HCHO + CO : 				1.81e-1*(6.00e-3*SUN/60.0e0);
+{147} GLY + OH = 0.63HO2 + 1.26CO+ 
+       0.37RCO_O2 : 					(1.10e-11);
+{148} GLY + NO3 = HNO3 + 0.63HO2 + 
+       1.26CO+ 0.37RCO_O2 : 				ARR(2.80e-12,2376.0e0,0.0e0);
+{149} MGLY + hv = HO2 + CO + CCO_O2 : 			1.10e-2*(SUN/60.0e0);
+{150} MGLY + OH = CO + CCO_O2 :				1.50e-11;
+{151} MGLY + NO3 = HNO3 + CO + CCO_O2 : 		ARR(1.40e-12,1895.0e0,0.0e0);
+{152} BACL + hv = 2CCO_O2 : 				1.90e-2*(SUN/60.0e0);
+{153} PHEN + OH = 0.24BZ_O + 0.76RO2_R + 
+       0.23GLY : 					(2.63e-11);
+{154} PHEN + NO3 = HNO3 + BZ_O : 			(3.78e-12);
+{155} CRES + OH = 0.24BZ_O + 0.76RO2_R + 
+       0.23MGLY : 					(4.20e-11);
+{156} CRES + NO3 = HNO3 + BZ_O : 			(1.37e-11);
+{157} NPHE + NO3 = HNO3 + BZNO2_O : 			(3.78e-12);
+{158} BALD + OH = BZCO_O2 : 				(1.29e-11);
+{159} BALD + hv =  7XC: 				6.22e-2*(5.00e-2*SUN/60.0e0);
+{160} BALD + NO3 = HNO3 + BZCO_O2 : 			ARR(1.40e-12,1872.0e0,0.0e0);
+{161} METHACRO + OH = 0.5RO2_R + 0.416CO+ 
+       0.084HCHO + 0.416MEK +
+       0.084MGLY + 0.5MA_RCO3 : 			ARR(1.86e-11,-176.0e0,0.0e0);
+{162} METHACRO + O3 = 0.008HO2 + 0.1RO2_R + 
+       0.208OH + 0.1RCO_O2 + 0.45CO+
+       0.2HCHO + 0.9MGLY + 0.333HCOOH : 		ARR(1.36e-15,2114.0e0,0.0e0);
+{163} METHACRO + NO3 = 0.5HNO3 + 0.5RO2_R + 
+      0.5CO+ 0.5MA_RCO3 : 				ARR(1.50e-12,1726.0e0,0.0e0);
+{164} METHACRO + O3P = RCHO : 				(6.34e-12);
+{165} METHACRO + hv = 0.34HO2 + 0.33RO2_R + 
+       0.33OH + 0.67CCO_O2 + 0.67CO+
+       0.67HCHO + 0.33MA_RCO3 : 			3.32e-2*(4.10e-3*SUN/60.0e0);
+{166} MVK + OH = 0.3RO2_R + 0.025RO2_N  + 
+       0.675R2O2+ 0.675CCO_O2 +
+       0.3HCHO + 0.675RCHO + 0.3MGLY : 			ARR(4.14e-12,-453.0e0,0.0e0);
+{167} MVK + O3 = 0.064HO2 + 0.05RO2_R + 
+       0.164OH + 0.05RCO_O2 + 0.475CO+
+       0.1HCHO + 0.95MGLY + 0.351HCOOH : 		ARR(7.51e-16,1520.0e0,0.0e0);
+{168} MVK + O3P = 0.45RCHO + 0.55MEK : 			(4.32e-12);
+{169} MVK + hv = 0.3C_O2 + 0.7CO+ 0.7PROD2 + 
+       0.3MA_RCO3 : 					3.32e-2*(2.10e-3*SUN/60.0e0);
+{170} ISOPROD + OH = 0.67RO2_R + 
+       0.041RO2_N  + 0.289MA_RCO3 + 
+	 0.336CO+ 0.055HCHO + 0.129CCHO + 
+	 0.013RCHO + 0.15MEK + 0.332PROD2 +
+       0.15GLY + 0.174MGLY : 				(6.19e-11);
+{171} ISOPROD + O3 = 0.4HO2 + 0.048RO2_R + 
+       0.048RCO_O2 + 0.285OH +
+       0.498CO+ 0.125HCHO + 0.047CCHO + 
+	 0.21MEK + 0.023GLY + 0.742MGLY + 
+	 0.1HCOOH + 0.372RCO_OH : 			(4.18e-18);
+{172} ISOPROD + NO3 = 0.799RO2_R + 
+       0.051RO2_N  + 0.15MA_RCO3 + 0.572CO+
+       0.15HNO3 + 0.227HCHO + 0.218RCHO + 
+	 0.008MGLY + 0.572RNO3 : 			(1.00e-13);
+{173} ISOPROD + hv = 1.233HO2 + 0.467CCO_O2 + 
+       0.3RCO_O2 + 1.233CO+ 0.3HCHO +
+       0.467CCHO + 0.233MEK : 				3.32e-2*(4.10e-3*SUN/60.0e0);
+{174} PROD2 + OH = 0.379HO2 + 0.473RO2_R + 
+       0.07RO2_N  + 0.029CCO_O2 +
+       0.049RCO_O2 + 0.213HCHO + 
+	 0.084CCHO + 0.558RCHO + 
+	 0.115MEK + 0.329PROD2 : 			(1.50e-11);
+{175} PROD2 + hv = 0.96RO2_R + 0.04RO2_N  + 
+       0.515R2O2+ 0.667CCO_O2 + 
+	 0.333RCO_O2 + 0.506HCHO + 
+	 0.246CCHO + 0.71RCHO : 			9.49e-4*(2.00e-2*SUN/60.0e0);
+{176} RNO3 + OH = 0.338NO2 + 0.113HO2 + 
+       0.376RO2_R + 0.173RO2_N  + 
+	 0.596R2O2+ 0.01HCHO + 
+	 0.439CCHO + 0.213RCHO + 
+	 0.006ACET + 0.177MEK + 
+	 0.048PROD2 + 0.31RNO3 : 			(7.80e-12);
+{177} RNO3 + hv = NO2 + 0.341HO2 + 0.564RO2_R + 
+       0.095RO2_N  + 0.152R2O2+ 0.134HCHO + 
+	 0.431CCHO + 0.147RCHO + 0.02ACET + 
+	 0.243MEK + 0.435PROD2 : 			2.35e-4*(SUN/60.0e0);
+{178} DCB1 + OH = RCHO + RO2_R + CO : 			(5.00e-11);
+{179} DCB1 + O3 = 1.5HO2 + 0.5OH + 
+       1.5CO + GLY : 					(2.00e-18);
+{180} DCB2 + OH = R2O2 + RCHO + CCO_O2 : 		(5.00e-11);
+{181} DCB2 + hv = RO2_R + 0.5CCO_O2 + 0.5HO2 + 
+       CO + R2O2 + 0.5GLY + 0.5MGLY : 			2.06e-1*(3.65e-1*SUN/60.0e0);
+{182} DCB3 + OH = R2O2 + RCHO + CCO_O2 : 		(5.00e-11);
+{183} DCB3 + hv = RO2_R + 0.5CCO_O2 + 0.5HO2 + 
+       CO + R2O2 + 0.5GLY + 0.5MGLY : 			3.32e-2*(7.28e0*SUN/60.0e0);
+{184} CH4 + OH = C_O2 : 				ARR(2.15e-12,1735.0e0,0.0e0);
+{185} ETHENE + OH = RO2_R + 1.61HCHO + 
+       0.195CCHO : 					ARR(1.96e-12,-438.0e0,0.0e0);
+{186} ETHENE + O3 = 0.12OH + 0.12HO2 + 
+       0.5CO+ HCHO + 0.37HCOOH : 			ARR(9.14e-15,2580.0e0,0.0e0);
+{187} ETHENE + NO3 = RO2_R + RCHO : 			ARR(4.39e-13,2282.0e0,2.0e0);
+{188} ETHENE + O3P = 0.5HO2 + 0.2RO2_R + 
+       0.3C_O2 + 0.491CO+ 0.191HCHO +
+	 0.25CCHO + 0.009GLY : 				ARR(1.04e-11,792.0e0,0.0e0);
+{189} ISOPRENE + OH = 0.907RO2_R + 
+       0.093RO2_N  + 0.079R2O2+ 
+	 0.624HCHO + 0.23METHACRO + 
+	 0.32MVK + 0.357ISOPROD : 			ARR(2.50e-11,-408.0e0,0.0e0);
+{190} ISOPRENE + O3 = 0.266OH + 
+       0.066RO2_R + 0.008RO2_N  + 
+	 0.126R2O2+ 0.192MA_RCO3 + 
+	 0.275CO+ 0.592HCHO + 0.1PROD2 + 
+	 0.39METHACRO + 0.16MVK + 
+	 0.204HCOOH + 0.15RCO_OH : 			ARR(7.86e-15,1912.0e0,0.0e0);
+{191} ISOPRENE + NO3 = 0.187NO2 + 
+       0.749RO2_R + 0.064RO2_N  + 
+	 0.187R2O2+ 0.936ISOPROD : 			ARR(3.03e-12,448.0e0,0.0e0);
+{192} ISOPRENE + O3P = 0.01RO2_N  + 
+       0.24R2O2+ 0.25C_O2 + 0.24MA_RCO3 +
+       0.24HCHO + 0.75PROD2 : 				(3.60e-11);
+{193} TERP + OH = 0.75RO2_R + 0.25RO2_N  + 
+       0.5R2O2+ 0.276HCHO +
+       0.474RCHO + 0.276PROD2 : 			ARR(1.83e-11,-449.0e0,0.0e0);
+{194} TERP + O3 = 0.567OH + 0.033HO2 + 
+       0.031RO2_R + 0.18RO2_N  +
+       0.729R2O2+ 0.123CCO_O2 + 
+	 0.201RCO_O2 + 0.157CO+ 
+	 0.235HCHO + 0.205RCHO + 0.13ACET + 
+	 0.276PROD2 + 0.001GLY + 0.031BACL +
+       0.103HCOOH + 0.189RCO_OH : 			ARR(1.08e-15,821.0e0,0.0e0);
+{195} TERP + NO3 = 0.474NO2 + 
+       0.276RO2_R + 0.25RO2_N  + 
+	 0.75R2O2+ 0.474RCHO + 0.276RNO3 : 		ARR(3.66e-12,-175.e00,0.0e0);
+{196} TERP + O3P = 0.147RCHO + 0.853PROD2 : 		(3.27e-11);
+{197} ALK1 + OH = RO2_R + CCHO :			ARR(1.37e-12,498.0e0,2.0e0); 
+{198} ALK2 + OH = 0.246OH + 0.121HO2 + 
+      0.612RO2_R + 0.021RO2_N + 
+      0.16CO + 0.039HCHO + 0.155RCHO +
+      0.417ACET +
+      0.248GLY + 0.121HCOOH : 				ARR(9.87e-12,671.0e0,0.0e0);
+{199} ALK3 + OH = 0.695RO2_R + 0.07RO2_N  + 
+      0.559R2O2+ 0.236TBU_O + 0.026HCHO + 
+	0.445CCHO + 0.122RCHO + 0.024ACET + 
+	0.332MEK : 					ARR(1.019e-11,434.0e0,0.0e0);
+{200} ALK4 + OH = 0.835RO2_R + 0.143RO2_N  + 
+      0.936R2O2+ 0.011C_O2 + 0.011CCO_O2 + 
+	0.002CO+ 0.024HCHO + 0.455CCHO + 
+	0.244RCHO + 0.452ACET + 0.11MEK + 
+	0.125PROD2 : 					ARR(5.946e-12,91.0e0,0.0e0);
+{201} ALK5 + OH = 0.653RO2_R + 0.347RO2_N  + 
+      0.948R2O2+ 0.026HCHO + 0.099CCHO + 
+	0.204RCHO + 0.072ACET + 0.089MEK + 
+	0.417PROD2 : 					ARR(1.112e-11,52.0e0,0.0e0);
+{202} ARO1 + OH = 0.224HO2 + 0.765RO2_R + 
+      0.011RO2_N  + 0.055PROD2 + 0.118GLY + 
+	0.119MGLY + 0.017PHEN + 0.207CRES + 
+	0.059BALD + 0.491DCB1 + 0.108DCB2 + 
+	0.051DCB3 : 					ARR(1.81e-12,-355.0e0,0.0e0);
+{203} ARO2 + OH = 0.187HO2 + 0.804RO2_R + 
+      0.009RO2_N  + 0.097GLY + 0.287MGLY + 
+	0.087BACL + 0.187CRES + 0.05BALD + 
+	0.561DCB1 + 0.099DCB2 + 0.093DCB3 : 		(2.640e-11);
+{204} OLE1 + OH = 0.91RO2_R + 0.09RO2_N  + 
+      0.205R2O2+ 0.732HCHO + 0.294CCHO + 
+	0.497RCHO + 0.005ACET + 0.119PROD2 : 		ARR(7.095e-12,-451.0e0,0.0e0);
+{205} OLE1 + O3 = 0.155OH + 0.056HO2 + 
+      0.022RO2_R + 0.001RO2_N  + 
+	0.076C_O2 + 0.345CO+ 0.5HCHO + 
+	0.154CCHO + 0.363RCHO + 0.001ACET + 
+	0.215PROD2 + 0.185HCOOH + 
+	0.05CCO_OH + 0.119RCO_OH : 			ARR(2.617e-15,1640.0e0,0.0e0);
+{206} OLE1 + NO3 = 0.824RO2_R + 0.176RO2_N  + 
+      0.488R2O2+ 0.009CCHO + 0.037RCHO + 
+	0.024ACET + 0.511RNO3 : 			ARR(4.453e-14,376.0e0,0.0e0);
+{207} OLE1 + O3P = 0.45RCHO + 0.437MEK + 
+      0.113PROD2 : 					ARR(1.074e-11,234.0e0,0.0e0);
+{208} OLE2 + OH = 0.918RO2_R + 0.082RO2_N  + 
+      0.001R2O2+ 0.244HCHO + 0.732CCHO + 
+	0.511RCHO + 0.127ACET + 0.072MEK + 
+	0.061BALD + 0.025METHACRO + 
+	0.025ISOPROD : 					ARR(1.743e-11,-384.0e0,0.0e0);
+{209} OLE2 + O3 = 0.378OH + 0.003HO2 + 
+      0.033RO2_R + 0.002RO2_N  + 0.137R2O2+ 
+	0.197C_O2 + 0.137CCO_O2 + 
+	0.006RCO_O2 + 0.265CO+ 0.269HCHO + 
+	0.456CCHO + 0.305RCHO + 0.045ACET + 
+	0.026MEK + 0.043PROD2 + 0.042BALD + 
+	0.026METHACRO + 0.019MVK + 
+	0.073HCOOH + 0.129CCO_OH + 
+	0.247RCO_OH : 					ARR(5.022e-16,461.0e0,0.0e0);
+{210} OLE2 + NO3 = 0.391NO2 + 0.442RO2_R + 
+      0.136RO2_N  + 0.711R2O2+ 0.03C_O2 + 
+	0.079HCHO + 0.507CCHO + 0.151RCHO + 
+	0.102ACET + 0.001MEK + 0.015BALD + 
+	0.048MVK + 0.321RNO3 : 				(7.265e-13);
+{211} OLE2 + O3P = 0.013HO2 + 0.012RO2_R + 
+      0.001RO2_N  + 0.012CO+ 0.069RCHO + 
+	0.659MEK + 0.259PROD2 + 
+	0.012METHACRO : 				(2.085e-11);
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/saprc99.spc
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/saprc99.spc	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/saprc99.spc	(revision 2696)
@@ -0,0 +1,87 @@
+#include atoms
+
+#DEFVAR   
+
+        O3        	= 3O;
+	H2O2		= 2H + 2O;        
+	NO		= N + O;
+	NO2		= N + 2O;
+	NO3		= N + 3O;
+	N2O5		= 2N + 5O;
+	HONO		= H + 2O + N;
+	HNO3		= H + N + 3O;
+	HNO4		= H + N + 4O;
+	SO2		= S + 2O;	
+	H2SO4		= 2H + S + 4O;		
+	CO 		= C + O;
+	HCHO		= 2H + C + O;	
+	CCHO		= 2C + H + O;	
+	RCHO		= 3C + IGNORE;
+	ACET		= 			IGNORE;	
+	MEK		= 			IGNORE;
+	HCOOH		= 2H + C + 2O;	
+	MEOH		= 			IGNORE;
+	CCO_OH		= 			IGNORE;
+	RCO_OH		= 			IGNORE;	
+	GLY		= 			IGNORE;
+	MGLY		= 3C + 4H + 2O;	
+	BACL		=			IGNORE;		
+	CRES		= 			IGNORE;
+	BALD		= 			IGNORE;	
+	ISOPROD		=			IGNORE;	
+	METHACRO	= 			IGNORE;
+	MVK		=  			IGNORE;
+	PROD2		= 			IGNORE;	
+	DCB1		= 			IGNORE;
+	DCB2		= 			IGNORE;
+	DCB3 		= 			IGNORE;
+	ETHENE		= 2C + 4H;
+	ISOPRENE	= 			IGNORE;
+        ALK1		=			IGNORE;	
+	ALK2		= 			IGNORE;
+	ALK3		= 			IGNORE;
+	ALK4		= 			IGNORE;
+	ALK5		= 			IGNORE;		
+	ARO1		= 			IGNORE;
+	ARO2		= 			IGNORE;
+	OLE1		= 			IGNORE;
+	OLE2		= 			IGNORE;	
+	TERP		= 			IGNORE;
+	RNO3		= 			IGNORE;	
+	NPHE		= 			IGNORE;	
+	PHEN		= 			IGNORE;	
+	PAN		= 2C + 3H + 5O + N;	
+	PAN2		= N + IGNORE;	
+	PBZN		= N + IGNORE;
+	MA_PAN		= N + IGNORE;
+	CCO_OOH		= 2C + 3O + H;
+	RCO_O2		= 			IGNORE;	
+	RCO_OOH		= 			IGNORE;				
+	XN		= 			IGNORE;	
+	XC		= 			IGNORE;
+	O3P		= O;
+	O1D		= O;
+	OH		= H + O;
+	HO2		= H+ 2O;	
+	C_O2		= 			IGNORE;
+	COOH		= C + 2O + H;
+	ROOH		= 			IGNORE;	
+	RO2_R		= 			IGNORE;	
+	R2O2		= 			IGNORE;
+	RO2_N		= 			IGNORE;	
+	HOCOO		= H + 3O + C;
+	CCO_O2		= 			IGNORE;	
+	BZCO_O2		= 			IGNORE;
+	BZNO2_O		= 			IGNORE;	
+	BZ_O		= 			IGNORE;
+	MA_RCO3		= 			IGNORE;									
+	TBU_O		= 			IGNORE;
+	
+
+
+#DEFFIX	
+	AIR		= IGNORE;
+	O2		= 2O;
+	H2O		= 2H + O;
+	H2		= 2H;	
+	CH4		= C + 4H;	
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/saprcnov.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/saprcnov.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/saprcnov.def	(revision 2696)
@@ -0,0 +1,79 @@
+#include saprcnov.spc
+#include saprcnov.eqn
+
+{#LANGUAGE Fortran77
+#INTEGRATOR rodas3
+#DRIVER general}
+
+#LOOKATALL
+#MONITOR O3; NO; NO2; SO2;
+
+#INITVALUES
+
+   CFACTOR = 2.4476E+13;
+
+   ALl_SPEC = 0.0E0;
+   NO = 1.0E-1;
+   NO2 = 5.0E-2;
+   HONO = 1.E-3;
+   SO2 = 5.E-2;
+   ISOPRENE = 4.33E-4;
+   TERP = 8.20E-4;
+   ETHENE = 1.89E-2;
+   MEOH = 5.89E-3;
+   HCOOH = 6.77E-4;
+   CCO_OH = 1.16E-3;
+   RCO_OH = 3.92E-4;
+   HCHO = 1.12E-2;
+   CCHO = 2.32E-3;
+   RCHO = 1.72E-3;
+   GLY = 1.21E-4;
+   MGLY = 8.37E-5;
+   METHACRO = 1.30E-3;
+   ISOPROD = 8.93E-5;
+   BALD = 7.51E-5;
+   ACET = 5.07E-3;
+   MEK = 3.26E-3;
+   PROD2 = 1.93E-3;
+   PHEN = 6.06E-4;
+   CRES = 5.60E-4;
+   ALK3 = 4.69E-2;
+   ALK4 = 4.17E-2;
+   ALK5 = 3.06E-2;
+   ARO1 = 1.18E-2;
+   ARO2 = 8.74E-3;
+   OLE1 = 1.04E-2;
+   OLE2 = 7.97E-3;
+   CH4 = 0.07E0;
+   H2O = 2.0E+04; 
+   O2  = 2.09E+5;
+   AIR = 1.0E6;  
+   
+#INLINE F77_INIT
+	TSTART = 0.0D0
+	TEND = TSTART + 2*24*3600.0D0 ! 2160.0D0*60.0D0
+	DT = 3600.D0
+        TEMP = 300.0D0
+#ENDINLINE   
+
+#INLINE F90_INIT
+	TSTART = 0.0D0
+	TEND = TSTART + 2*24*3600.0D0 ! 2160.0D0*60.0D0
+	DT = 3600.D0
+        TEMP = 300.0D0
+#ENDINLINE   
+ 
+#INLINE MATLAB_INIT
+   global TSTART TEND DT TEMP
+   TSTART = 0.0;
+   TEND = TSTART  + 2*24*3600.0D0; 
+   DT = 3600.0;
+   TEMP = 300.00;
+#ENDINLINE   
+ 
+#INLINE C_INIT
+   TSTART = 0.0;
+   TEND = TSTART  + 2*24*3600.0D0; /*+ 2160.0*60.0;*/
+   DT = 3600.0;
+   TEMP = 300.00;
+#ENDINLINE   
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/saprcnov.eqn
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/saprcnov.eqn	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/saprcnov.eqn	(revision 2696)
@@ -0,0 +1,386 @@
+#Equations
+
+{1} NO2 + hv = NO + O3P : 				1.0*SUN;
+{2} O3P + O2 + AIR = O3 : 				ARR(5.68e-34,0.0,-2.80);
+{3} O3P + O3 = 2O2 : 					ARR(8.00e-12,2060.0,0.0);
+{4} O3P + NO + AIR = NO2 : 				ARR(1.00e-31,0.0,-1.60);
+{5} O3P + NO2 = NO : 					ARR(6.50e-12,-120.0,0.0);
+{6} O3P + NO2   = NO3 : 				FALL(9.00e-32,0.0,-2.00,2.20e-11,0.0,0.0,0.80);
+{7} O3 + NO = NO2 : 					ARR(1.80e-12,1370.0,0.0);
+{8} O3 + NO2 = NO3 : 					ARR(1.40e-13,2470.0,0.0);
+{9} NO + NO3 = 2NO2 : 					ARR(1.80e-11,-110.0,0.0);
+{10} NO + NO + O2 = 2NO2 : 				ARR(3.30e-39,-530.0,0.0);
+{11} NO2 + NO3   = N2O5 : 				FALL(2.80e-30,0.0,-3.50,2.00e-12,0.0,0.20,0.45);
+{12} N2O5   = NO2 + NO3 : 			        FALL(1.e-3,11000.0,-3.5,9.7e14,11080.0,0.1,0.45);
+{13} N2O5 + H2O = 2HNO3 : 				(2.60e-22);
+{14} NO2 + NO3 = NO + NO2 : 				ARR(4.50e-14,1260.0,0.0);
+{15} NO3 + hv = NO : 					1.0*SUN;
+{16} NO3 + hv = NO2 + O3P : 				1.0*SUN;
+{17} O3 + hv = O3P : 					1.0*SUN;
+{18} O3 + hv = O1D : 					1.0*SUN;
+{19} O1D + H2O = 2OH : 					(2.20e-10);
+{20} O1D + AIR = O3P : 					ARR(2.09e-11,-95.0,0.0);
+{21} OH + NO   = HONO : 				FALL(7.00e-31,0.0,-2.60,3.60e-11,0.0,-0.10,0.60);
+{22} HONO + hv = OH + NO : 				1.0*SUN;
+{23} HONO + hv = HO2 + NO2 : 				1.0*SUN;
+{24} OH + HONO = NO2 : 					ARR(2.70e-12,-260.0,0.0);
+{25} OH + NO2 = HNO3 : 					FALL(2.43e-30, 0.0,-3.10,1.67e-11,0.0,-2.10,0.60);
+{26} OH + NO3 = HO2 + NO2 : 				(2.00e-11);
+{27} OH + HNO3 = NO3 : 					EP2(7.20e-15,-785.0,4.10e-16,-1440.0,1.90e-33,-725.0);
+{28} HNO3 + hv = OH + NO2 : 				1.0*SUN;
+{29} OH + CO = HO2 : 					EP3(1.30e-13,0.0,3.19e-33,0.0);
+{30} OH + O3 = HO2 : 					ARR(1.90e-12,1000.0,0.0);
+{31} HO2 + NO = OH + NO2 : 				ARR(3.40e-12,-270.0,0.0);
+{32} HO2 + NO2  = HNO4 : 				FALL(1.80e-31,0.0,-3.20,4.70e-12,0.0,0.0,0.60);
+{33} HNO4  = HO2 + NO2 : 			        FALL(4.10e-05,10650.0,0.0,5.7e+15,11170.0,0.0,0.5);
+{34} HNO4 + hv = 0.61HO2 + 0.61NO2 + 0.39OH + 
+            0.39NO3 : 					1.0*SUN;
+{35} HNO4 + OH = NO2 : 					ARR(1.50e-12,-360.0,0.0);
+{36} HO2 + O3 = OH : 					ARR(1.40e-14,600.0,0.0);
+{37} HO2 + HO2 = H2O2 : 				EP3(2.20e-13,-600.0,1.85e-33,-980.0);
+//{38} HO2 + HO2 + H2O = H2O2 : 				EP3(3.08e-34,-2800.0,2.59e-54,-3180.0);
+{38} HO2 + HO2 + H2O = H2O2 : 				EP3(3.08e-34,-2800.0,2.59e-38,-3180.0);
+{39} NO3 + HO2 = 0.8OH + 0.8NO2 + 0.2HNO3 : 		(4.00e-12);
+{40} NO3 + NO3 = 2NO2 : 				ARR(8.50e-13,2450.0,0.0);
+{41} H2O2 + hv = 2OH : 					1.0*SUN;
+{42} H2O2 + OH = HO2 : 					ARR(2.90e-12,160.0,0.0);
+{43} OH + HO2 = H2O + O2 : 				ARR(4.80e-11,-250.0,0.0);
+{44} OH + SO2   = HO2 + H2SO4 :  		    	FALL(4.00e-31,0.0,-3.30,2.00e-12,0.0,0.0,0.45);
+{45} OH + H2 = HO2 :				    	ARR(7.70e-12,2100.0,0.0);
+{46} C_O2 + NO = NO2 + HCHO + HO2 : 	    		ARR(2.80e-12,-285.0,0.0);
+{47} C_O2 + HO2 = COOH :			    	ARR(3.80e-13,-780.0,0.0);
+{48} C_O2 + NO3 = HCHO + HO2 + NO2 :	    		(1.30e-12);
+{49} C_O2 + C_O2 = MEOH + HCHO :		    	ARR(2.45e-14,-710.0,0.0);
+{50} C_O2 + C_O2 = 2HCHO + 2HO2 : 	    		ARR(5.90e-13,509.0,0.0);
+{51} RO2_R + NO = NO2 + HO2 : 		    		ARR(2.70e-12,-360.0,0.0);
+{52} RO2_R + HO2 = ROOH :			    	ARR(1.90e-13,-1300.0,0.0);
+{53} RO2_R + NO3 = NO2 + HO2 :		    		(2.30e-12);
+{54} RO2_R + C_O2 = HO2 + 0.75HCHO +
+                      0.25MEOH : 			(2.00e-13);
+{55} RO2_R + RO2_R = HO2 :			    	(3.50e-14);
+{56} R2O2 + NO = NO2 :  			    	ARR(2.70e-12,-360.0,0.0); {1.0*RCONST(51);}
+{57} R2O2 + HO2 = HO2 : 			    	ARR(1.90e-13,-1300.0,0.0); {1.0*RCONST(52);}
+{58} R2O2 + NO3 = NO2 : 			    	(2.30e-12); {1.0*RCONST(53);}
+{59} R2O2 + C_O2 = C_O2 :			    	(2.00e-13); {1.0*RCONST(54);}
+{60} R2O2 + RO2_R = RO2_R :			    	(3.50e-14); {1.0*RCONST(55);}
+{61} R2O2 + R2O2 = 2R2O2 :				(0.0);
+{62} RO2_N + NO = RNO3 :			    	ARR(2.70e-12,-360.0,0.0); {1.0*RCONST(51);}
+{63} RO2_N + HO2 = ROOH :			    	ARR(1.90e-13,-1300.0,0.0); {1.0*RCONST(52);}
+{64} RO2_N + C_O2 = HO2 + 0.25MEOH +
+       0.5MEK + 0.5PROD2 + 0.75HCHO : 			(2.00e-13); {1.0*RCONST(54);}
+{65} RO2_N + NO3 = NO2 + HO2 + MEK : 			(2.30e-12); {1.0*RCONST(53);}
+{66} RO2_N + RO2_R = HO2 + 0.5MEK + 
+       0.5PROD2 : 					(3.50e-14); {1.0*RCONST(55);}
+{67} RO2_N + R2O2 = RO2_N : 				(3.50e-14); {1.0*RCONST(55);}
+{68} RO2_N + RO2_N = MEK + HO2 + PROD2 : 		(3.50e-14); {1.0*RCONST(55);}
+{69} CCO_O2 + NO2  = PAN : 				FALL(2.70e-28,0.0,-7.10,1.20e-11,0.0,-0.90,0.30);
+{70} PAN  = CCO_O2 + NO2 : 				FALL(4.90e-3,12100.0,0.0,4.0e+16,13600.0,0.,0.3);
+{71} CCO_O2 + NO = C_O2 + NO2 : 			ARR(7.80e-12,-300.0,0.0);
+{72} CCO_O2 + HO2 = 0.75CCO_OOH + 
+       0.25CCO_OH + 0.25O3 : 				ARR(4.30e-13,-1040.0,0.0);
+{73} CCO_O2 + NO3 = C_O2 + NO2 : 			(4.00e-12);
+{74} CCO_O2 + C_O2 = CCO_OH + HCHO : 			ARR(1.80e-12,-500.0,0.0);
+{75} CCO_O2 + RO2_R = CCO_OH : 				(7.50e-12);
+{76} CCO_O2 + R2O2 = CCO_O2 : 				(7.50e-12);
+{77} CCO_O2 + RO2_N = CCO_OH + PROD2 : 			(7.50e-12);
+{78} CCO_O2 + CCO_O2 = 2C_O2 : 				ARR(2.90e-12,-500.0,0.0);
+{79} RCO_O2 + NO2 = PAN2 : 				ARR(1.20e-11,0.0,-0.90);
+{80} PAN2 = RCO_O2 + NO2 : 				ARR(2.00e+15,12800.0,0.0);
+{81} RCO_O2 + NO = NO2 + CCHO + RO2_R : 		ARR(1.25e-11,-240.0,0.0);
+{82} RCO_O2 + HO2 = 0.75RCO_OOH + 
+       0.25RCO_OH + 0.25O3 : 				ARR(4.30e-13,-1040.0,0.0); {1.0*RCONST(72);}
+{83} RCO_O2 + NO3 = NO2 + CCHO + RO2_R : 		(4.00e-12); {1.0*RCONST(73);}
+{84} RCO_O2 + C_O2 = RCO_OH + HCHO : 			ARR(1.80e-12,-500.0,0.0); {1.0*RCONST(74);}
+{85} RCO_O2 + RO2_R = RCO_OH : 				(7.50e-12); {1.0*RCONST(75);}
+{86} RCO_O2 + R2O2 = RCO_O2 : 				(7.50e-12); {1.0*RCONST(75);}
+{87} RCO_O2 + RO2_N = RCO_OH + PROD2 : 			(7.50e-12); {1.0*RCONST(75);}
+{88} RCO_O2 + CCO_O2 = C_O2 + CCHO + RO2_R : 		ARR(2.90e-12,-500.0,0.0); {1.0*RCONST(78);}
+{89} RCO_O2 + RCO_O2 = 2CCHO + 2RO2_R : 		ARR(2.90e-12,-500.0,0.0); {1.0*RCONST(78);}
+{90} BZCO_O2 + NO2 = PBZN : 				(1.37e-11);
+{91} PBZN = BZCO_O2 + NO2 : 				ARR(7.90e+16,14000.0,0.0);
+{92} BZCO_O2 + NO = NO2 + BZ_O + R2O2 : 		ARR(1.25e-11,-240.0,0.0); {1.0*RCONST(81);}
+{93} BZCO_O2 + HO2 = 0.75RCO_OOH + 
+       0.25RCO_OH + 0.25O3 : 				ARR(4.30e-13,-1040.0,0.0); {1.0*RCONST(72);}
+{94} BZCO_O2 + NO3 = NO2 + BZ_O + R2O2 : 		(4.00e-12); {1.0*RCONST(73);}
+{95} BZCO_O2 + C_O2 = RCO_OH + HCHO : 			ARR(1.80e-12,-500.0,0.0); {1.0*RCONST(74);}
+{96} BZCO_O2 + RO2_R = RCO_OH : 			(7.50e-12); {1.0*RCONST(75);}
+{97} BZCO_O2 + R2O2 = BZCO_O2 : 			(7.50e-12); {1.0*RCONST(75);}
+{98} BZCO_O2 + RO2_N = RCO_OH + PROD2 : 		(7.50e-12); {1.0*RCONST(75);}
+{99} BZCO_O2 + CCO_O2 = C_O2 + BZ_O + R2O2 : 		ARR(2.90e-12,-500.0,0.0); {1.0*RCONST(78);}
+{100} BZCO_O2 + RCO_O2 = CCHO + RO2_R + 
+       BZ_O + R2O2 : 					ARR(2.90e-12,-500.0,0.0); {1.0*RCONST(78);}
+{101} BZCO_O2 + BZCO_O2 = 2BZ_O + 2R2O2: 		ARR(2.90e-12,-500.0,0.0); {1.0*RCONST(78);}
+{102} MA_RCO3 + NO2 = MA_PAN : 				ARR(1.20e-11,0.0,-0.90); {1.0*RCONST(79);}
+{103} MA_PAN = MA_RCO3 + NO2 : 				ARR(1.60e+16,13486.0,0.0);
+{104} MA_RCO3 + NO = NO2 + HCHO + CCO_O2 : 		ARR(1.25e-11,-240.0,0.0); {1.0*RCONST(81);}
+{105} MA_RCO3 + HO2 = 0.75RCO_OOH + 
+       0.25RCO_OH + 0.25O3 : 				ARR(4.30e-13,-1040.0,0.0); {1.0*RCONST(72);}
+{106} MA_RCO3 + NO3 = NO2 + HCHO + CCO_O2 : 		(4.00e-12); {1.0*RCONST(73);}
+{107} MA_RCO3 + C_O2 = RCO_OH + HCHO : 			ARR(1.80e-12,-500.0,0.0); {1.0*RCONST(74);}
+{108} MA_RCO3 + RO2_R = RCO_OH : 			(7.50e-12); {1.0*RCONST(75);}
+{109} MA_RCO3 + R2O2 = MA_RCO3 : 			(7.50e-12); {1.0*RCONST(75);}
+{110} MA_RCO3 + RO2_N = 2RCO_OH : 			(7.50e-12); {1.0*RCONST(75);}
+{111} MA_RCO3 + CCO_O2 = C_O2 + HCHO + 
+       CCO_O2 : 					ARR(2.90e-12,-500.0,0.0); {1.0*RCONST(78);}
+{112} MA_RCO3 + RCO_O2 = HCHO + CCO_O2 + 
+       CCHO + RO2_R : 					ARR(2.90e-12,-500.0,0.0); {1.0*RCONST(78);}
+{113} MA_RCO3 + BZCO_O2 = HCHO + CCO_O2 + 
+       BZ_O + R2O2 : 					ARR(2.90e-12,-500.0,0.0); {1.0*RCONST(78);}
+{114} MA_RCO3 + MA_RCO3 = 2HCHO + 2CCO_O2 : 		ARR(2.90e-12,-500.0,0.0); {1.0*RCONST(78);}
+{115} TBU_O + NO2 = RNO3 : 				(2.40e-11);
+{116} TBU_O = ACET + C_O2 : 				ARR(7.50e+14,8152.0,0.0);
+{117} BZ_O + NO2 = NPHE : 				ARR(2.30e-11,-150.0,0.0);
+{118} BZ_O + HO2 = PHEN : 				ARR(1.90e-13,-1300.0,0.0); {1.0*RCONST(52);}
+{119} BZ_O = PHEN : 					(1.00e-03);
+{120} BZNO2_O + NO2 =  2XN + 6XC: 			ARR(7.50e+14,8152.0,0.0);  {1.0*RCONST(116);}
+{121} BZNO2_O + HO2 = NPHE : 				ARR(2.30e-11,-150.0,0.0);  {1.0*RCONST(117);}
+{122} BZNO2_O  = NPHE :					ARR(1.90e-13,-1300.0,0.0); {1.0*RCONST(118);}
+{123} HCHO + hv = 2HO2 + CO :				1.0*SUN;
+{124} HCHO + hv = CO : 					1.0*SUN;
+{125} HCHO + OH = HO2 + CO :  				ARR(8.60e-12,-20.0,0.0);
+{126} HCHO + HO2 = HOCOO :				ARR(9.70e-15,-625.0,0.0);
+{127} HOCOO = HO2 + HCHO :				ARR(2.40e+12,7000.0,0.0);
+{128} HOCOO + NO = HCOOH + NO2 + HO2 :			ARR(2.80e-12,-285.0,0.0); {1.0*RCONST(46);}
+{129} HCHO + NO3 = HNO3 + HO2 + CO :			ARR(2.00e-12,2431.0,0.0);
+{130} CCHO + OH = CCO_O2 :				ARR(5.60e-12,-310.0,0.0);
+{131} CCHO +hv = CO + HO2 + C_O2 : 				1.0*SUN;
+{132} CCHO + NO3 = HNO3 + CCO_O2 : 			ARR(1.40e-12,1860.0,0.0);
+{133} RCHO + OH = 0.034RO2_R + 0.001RO2_N  + 
+       0.965RCO_O2 + 0.034CO+ 0.034CCHO : 		(2.00e-11);
+{134} RCHO + hv = CCHO + RO2_R + CO + HO2 : 		1.0*SUN;
+{135} RCHO + NO3 = HNO3 + RCO_O2 : 			ARR(1.40e-12,1771.0,0.0);
+{136} ACET + OH = HCHO + CCO_O2 + R2O2 : 		ARR(1.10e-12,520.0,0.0);
+{137} ACET + hv  = CCO_O2 + C_O2 : 			1.0*SUN;
+{138} MEK + OH = 0.37RO2_R + 0.042RO2_N  + 
+       0.616R2O2+ 0.492CCO_O2 + 
+	 0.096RCO_O2 + 0.115HCHO + 
+	 0.482CCHO + 0.37RCHO : 			ARR(1.30e-12,25.0,2.0);
+{139} MEK + hv = CCO_O2 + CCHO + RO2_R : 		1.50e-1*SUN;
+{140} MEOH + OH = HCHO + HO2 : 				ARR(3.10e-12,360.0,2.0);
+{141} ETOH + OH = 0.95HO2 + 0.05RO2_R +
+      0.081HCHO + 0.96CCHO :				ARR(0.0,0.0,1.0);
+{142} COOH + OH = 0.35HCHO + 0.35OH + 
+       0.65C_O2 : 					ARR(2.90e-12,-190.0,0.0);
+{143} COOH + hv = HCHO + HO2 + OH :		      	1.0*SUN;
+{144} ROOH + OH = RCHO + 0.34RO2_R + 
+       0.66OH : 					(1.10e-11);
+{145} ROOH + hv = RCHO + HO2 + OH : 		        1.0*SUN;
+{146} GLY + hv = 2CO+ 2HO2 : 				1.0*SUN;
+{147} GLY + hv = HCHO + CO : 				6.00e-3*SUN;
+{148} GLY + OH = 0.63HO2 + 1.26CO+ 
+       0.37RCO_O2 : 					(1.10e-11);
+{149} GLY + NO3 = HNO3 + 0.63HO2 + 
+       1.26CO+ 0.37RCO_O2 : 				ARR(2.80e-12,2376.0,0.0);
+{150} MGLY + hv = HO2 + CO + CCO_O2 : 			1.0*SUN;
+{151} MGLY + OH = CO + CCO_O2 :				(1.50e-11);
+{152} MGLY + NO3 = HNO3 + CO + CCO_O2 : 		ARR(1.40e-12,1895.0,0.0);
+{153} BACL + hv = 2CCO_O2 : 				1.0*SUN;
+{154} PHEN + OH = 0.24BZ_O + 0.76RO2_R + 
+       0.23GLY : 					(2.63e-11);
+{155} PHEN + NO3 = HNO3 + BZ_O : 			(3.78e-12);
+{156} CRES + OH = 0.24BZ_O + 0.76RO2_R + 
+       0.23MGLY : 					(4.20e-11);
+{157} CRES + NO3 = HNO3 + BZ_O : 			(1.37e-11);
+{158} NPHE + NO3 = HNO3 + BZNO2_O : 			(2.63e-11); {1.0*RCONST(154);}
+{159} BALD + OH = BZCO_O2 : 				(1.29e-11);
+{160} BALD + hv =  7XC: 				5.00e-2*SUN;
+{161} BALD + NO3 = HNO3 + BZCO_O2 : 			ARR(1.40e-12,1872.0,0.0);
+{162} METHACRO + OH = 0.5RO2_R + 0.416CO+ 
+       0.084HCHO + 0.416MEK +
+       0.084MGLY + 0.5MA_RCO3 : 			ARR(1.86e-11,-176.0,0.0);
+{163} METHACRO + O3 = 0.008HO2 + 0.1RO2_R + 
+       0.208OH + 0.1RCO_O2 + 0.45CO+
+       0.2HCHO + 0.9MGLY + 0.333HCOOH : 		ARR(1.36e-15,2114.0,0.0);
+{164} METHACRO + NO3 = 0.5HNO3 + 0.5RO2_R + 
+      0.5CO+ 0.5MA_RCO3 : 				ARR(1.50e-12,1726.0,0.0);
+{165} METHACRO + O3P = RCHO : 				(6.34e-12);
+{166} METHACRO + hv = 0.34HO2 + 0.33RO2_R + 
+       0.33OH + 0.67CCO_O2 + 0.67CO+
+       0.67HCHO + 0.33MA_RCO3 : 			4.10e-3*SUN;
+{167} MVK + OH = 0.3RO2_R + 0.025RO2_N  + 
+       0.675R2O2+ 0.675CCO_O2 +
+       0.3HCHO + 0.675RCHO + 0.3MGLY : 			ARR(4.14e-12,-453.0,0.0);
+{168} MVK + O3 = 0.064HO2 + 0.05RO2_R + 
+       0.164OH + 0.05RCO_O2 + 0.475CO+
+       0.1HCHO + 0.95MGLY + 0.351HCOOH : 		ARR(7.51e-16,1520.0,0.0);
+{169} MVK + O3P = 0.45RCHO + 0.55MEK : 			(4.32e-12);
+{170} MVK + hv = 0.3C_O2 + 0.7CO+ 0.7PROD2 + 
+       0.3MA_RCO3 : 					2.10e-3*SUN;
+{171} ISOPROD + OH = 0.67RO2_R + 
+       0.041RO2_N  + 0.289MA_RCO3 + 
+	 0.336CO+ 0.055HCHO + 0.129CCHO + 
+	 0.013RCHO + 0.15MEK + 0.332PROD2 +
+       0.15GLY + 0.174MGLY : 				(6.19e-11);
+{172} ISOPROD + O3 = 0.4HO2 + 0.048RO2_R + 
+       0.048RCO_O2 + 0.285OH +
+       0.498CO+ 0.125HCHO + 0.047CCHO + 
+	 0.21MEK + 0.023GLY + 0.742MGLY + 
+	 0.1HCOOH + 0.372RCO_OH : 			(4.18e-18);
+{173} ISOPROD + NO3 = 0.799RO2_R + 
+       0.051RO2_N  + 0.15MA_RCO3 + 0.572CO+
+       0.15HNO3 + 0.227HCHO + 0.218RCHO + 
+	 0.008MGLY + 0.572RNO3 : 			(1.00e-13);
+{174} ISOPROD + hv = 1.233HO2 + 0.467CCO_O2 + 
+       0.3RCO_O2 + 1.233CO+ 0.3HCHO +
+       0.467CCHO + 0.233MEK : 				4.10e-3*SUN;
+{175} PROD2 + OH = 0.379HO2 + 0.473RO2_R + 
+       0.07RO2_N  + 0.029CCO_O2 +
+       0.049RCO_O2 + 0.213HCHO + 
+	 0.084CCHO + 0.558RCHO + 
+	 0.115MEK + 0.329PROD2 : 			(1.50e-11);
+{176} PROD2 + hv = 0.96RO2_R + 0.04RO2_N  + 
+       0.515R2O2+ 0.667CCO_O2 + 
+	 0.333RCO_O2 + 0.506HCHO + 
+	 0.246CCHO + 0.71RCHO : 			2.00e-2*SUN;
+{177} RNO3 + OH = 0.338NO2 + 0.113HO2 + 
+       0.376RO2_R + 0.173RO2_N  + 
+	 0.596R2O2+ 0.01HCHO + 
+	 0.439CCHO + 0.213RCHO + 
+	 0.006ACET + 0.177MEK + 
+	 0.048PROD2 + 0.31RNO3 : 			(7.80e-12);
+{178} RNO3 + hv = NO2 + 0.341HO2 + 0.564RO2_R + 
+       0.095RO2_N  + 0.152R2O2+ 0.134HCHO + 
+	 0.431CCHO + 0.147RCHO + 0.02ACET + 
+	 0.243MEK + 0.435PROD2 : 			1.0*SUN;
+{179} DCB1 + OH = RCHO + RO2_R + CO : 			(5.00e-11);
+{180} DCB1 + O3 = 1.5HO2 + 0.5OH + 
+       1.5CO + GLY : 					(2.00e-18);
+{181} DCB2 + OH = R2O2 + RCHO + CCO_O2 : 		(5.00e-11);
+{182} DCB2 + hv = RO2_R + 0.5CCO_O2 + 0.5HO2 + 
+       CO + R2O2 + 0.5GLY + 0.5MGLY : 			3.65e-1*SUN;
+{183} DCB3 + OH = R2O2 + RCHO + CCO_O2 : 		(5.00e-11);
+{184} DCB3 + hv = RO2_R + 0.5CCO_O2 + 0.5HO2 + 
+       CO + R2O2 + 0.5GLY + 0.5MGLY : 			7.28*SUN;
+{185} CH4 + OH = C_O2 : 				ARR(2.15e-12,1735.0,0.0);
+{186} ETHENE + OH = RO2_R + 1.61HCHO + 
+       0.195CCHO : 					ARR(1.96e-12,-438.0,0.0);
+{187} ETHENE + O3 = 0.12OH + 0.12HO2 + 
+       0.5CO+ HCHO + 0.37HCOOH : 			ARR(9.14e-15,2580.0,0.0);
+{188} ETHENE + NO3 = RO2_R + RCHO : 			ARR(4.39e-13,2282.0,2.0);
+{189} ETHENE + O3P = 0.5HO2 + 0.2RO2_R + 
+       0.3C_O2 + 0.491CO+ 0.191HCHO +
+	 0.25CCHO + 0.009GLY : 				ARR(1.04e-11,792.0,0.0);
+{190} ISOPRENE + OH = 0.907RO2_R + 
+       0.093RO2_N  + 0.079R2O2+ 
+	 0.624HCHO + 0.23METHACRO + 
+	 0.32MVK + 0.357ISOPROD : 			ARR(2.50e-11,-408.0,0.0);
+{191} ISOPRENE + O3 = 0.266OH + 
+       0.066RO2_R + 0.008RO2_N  + 
+	 0.126R2O2+ 0.192MA_RCO3 + 
+	 0.275CO+ 0.592HCHO + 0.1PROD2 + 
+	 0.39METHACRO + 0.16MVK + 
+	 0.204HCOOH + 0.15RCO_OH : 			ARR(7.86e-15,1912.0,0.0);
+{192} ISOPRENE + NO3 = 0.187NO2 + 
+       0.749RO2_R + 0.064RO2_N  + 
+	 0.187R2O2+ 0.936ISOPROD : 			ARR(3.03e-12,448.0,0.0);
+{193} ISOPRENE + O3P = 0.01RO2_N  + 
+       0.24R2O2+ 0.25C_O2 + 0.24MA_RCO3 +
+       0.24HCHO + 0.75PROD2 : 				(3.60e-11);
+{194} TERP + OH = 0.75RO2_R + 0.25RO2_N  + 
+       0.5R2O2+ 0.276HCHO +
+       0.474RCHO + 0.276PROD2 : 			ARR(1.83e-11,-449.0,0.0);
+{195} TERP + O3 = 0.567OH + 0.033HO2 + 
+       0.031RO2_R + 0.18RO2_N  +
+       0.729R2O2+ 0.123CCO_O2 + 
+	 0.201RCO_O2 + 0.157CO+ 
+	 0.235HCHO + 0.205RCHO + 0.13ACET + 
+	 0.276PROD2 + 0.001GLY + 0.031BACL +
+       0.103HCOOH + 0.189RCO_OH : 			ARR(1.08e-15,821.0,0.0);
+{196} TERP + NO3 = 0.474NO2 + 
+       0.276RO2_R + 0.25RO2_N  + 
+	 0.75R2O2+ 0.474RCHO + 0.276RNO3 : 		ARR(3.66e-12,-175.0,0.0);
+{197} TERP + O3P = 0.147RCHO + 0.853PROD2 : 		(3.27e-11);
+{198} C2H6 + OH = RO2_R + CCHO :			ARR(1.37e-12,498.0,2.0); 
+{199} C3H8 + OH = 0.965RO2_R + 0.035RO2_N +
+      0.261RCHO + 0.704ACET :				ARR(0.0,0.0,1.0);
+{200} C2H2 + OH = 0.603OH + 0.297HO2 + 
+      0.1RO2_R + 0.393CO + 0.096HCHO + 
+      0.607GLY + 0.297HCOOH : 				ARR(9.87e-12,671.0,0.0);
+{201} ALK3 + OH = 0.695RO2_R + 0.07RO2_N  + 
+      0.559R2O2+ 0.236TBU_O + 0.026HCHO + 
+	0.445CCHO + 0.122RCHO + 0.024ACET + 
+	0.332MEK : 					ARR(1.019e-11,434.0,0.0);
+{202} ALK4 + OH = 0.835RO2_R + 0.143RO2_N  + 
+      0.936R2O2+ 0.011C_O2 + 0.011CCO_O2 + 
+	0.002CO+ 0.024HCHO + 0.455CCHO + 
+	0.244RCHO + 0.452ACET + 0.11MEK + 
+	0.125PROD2 : 					ARR(5.946e-12,91.0,0.0);
+{203} ALK5 + OH = 0.653RO2_R + 0.347RO2_N  + 
+      0.948R2O2+ 0.026HCHO + 0.099CCHO + 
+	0.204RCHO + 0.072ACET + 0.089MEK + 
+	0.417PROD2 : 					ARR(1.112e-11,52.0,0.0);
+{204} ARO1 + OH = 0.224HO2 + 0.765RO2_R + 
+      0.011RO2_N  + 0.055PROD2 + 0.118GLY + 
+	0.119MGLY + 0.017PHEN + 0.207CRES + 
+	0.059BALD + 0.491DCB1 + 0.108DCB2 + 
+	0.051DCB3 : 					ARR(1.81e-12,-355.0,0.0);
+{205} ARO2 + OH = 0.187HO2 + 0.804RO2_R + 
+      0.009RO2_N  + 0.097GLY + 0.287MGLY + 
+	0.087BACL + 0.187CRES + 0.05BALD + 
+	0.561DCB1 + 0.099DCB2 + 0.093DCB3 : 		(2.640e-11);
+{206} OLE1 + OH = 0.91RO2_R + 0.09RO2_N  + 
+      0.205R2O2+ 0.732HCHO + 0.294CCHO + 
+	0.497RCHO + 0.005ACET + 0.119PROD2 : 		ARR(7.095e-12,-451.0,0.0);
+{207} OLE1 + O3 = 0.155OH + 0.056HO2 + 
+      0.022RO2_R + 0.001RO2_N  + 
+	0.076C_O2 + 0.345CO+ 0.5HCHO + 
+	0.154CCHO + 0.363RCHO + 0.001ACET + 
+	0.215PROD2 + 0.185HCOOH + 
+	0.05CCO_OH + 0.119RCO_OH : 			ARR(2.617e-15,1640.0,0.0);
+{208} OLE1 + NO3 = 0.824RO2_R + 0.176RO2_N  + 
+      0.488R2O2+ 0.009CCHO + 0.037RCHO + 
+	0.024ACET + 0.511RNO3 : 			ARR(4.453e-14,376.0,0.0);
+{209} OLE1 + O3P = 0.45RCHO + 0.437MEK + 
+      0.113PROD2 : 					ARR(1.074e-11,234.0,0.0);
+{210} OLE2 + OH = 0.918RO2_R + 0.082RO2_N  + 
+      0.001R2O2+ 0.244HCHO + 0.732CCHO + 
+	0.511RCHO + 0.127ACET + 0.072MEK + 
+	0.061BALD + 0.025METHACRO + 
+	0.025ISOPROD : 					ARR(1.743e-11,-384.0,0.0);
+{211} OLE2 + O3 = 0.378OH + 0.003HO2 + 
+      0.033RO2_R + 0.002RO2_N  + 0.137R2O2+ 
+	0.197C_O2 + 0.137CCO_O2 + 
+	0.006RCO_O2 + 0.265CO+ 0.269HCHO + 
+	0.456CCHO + 0.305RCHO + 0.045ACET + 
+	0.026MEK + 0.043PROD2 + 0.042BALD + 
+	0.026METHACRO + 0.019MVK + 
+	0.073HCOOH + 0.129CCO_OH + 
+	0.247RCO_OH : 					ARR(5.022e-16,461.0,0.0);
+{212} OLE2 + NO3 = 0.391NO2 + 0.442RO2_R + 
+      0.136RO2_N  + 0.711R2O2+ 0.03C_O2 + 
+	0.079HCHO + 0.507CCHO + 0.151RCHO + 
+	0.102ACET + 0.001MEK + 0.015BALD + 
+	0.048MVK + 0.321RNO3 : 				(7.265e-13);
+{213} OLE2 + O3P = 0.013HO2 + 0.012RO2_R + 
+      0.001RO2_N  + 0.012CO+ 0.069RCHO + 
+	0.659MEK + 0.259PROD2 + 
+	0.012METHACRO : 				(2.085e-11);
+{214} C2H2 + O3 = 0.5OH + 1.5HO2 + 
+      1.5CO + 0.5CO2 : 				       	(2.20e-10);
+{215} C3H6 + OH = 0.984RO2_R + 0.016RO2_N +
+      0.984HCHO + 0.984CCHO + 0.048XC : 		(2.20e-10);
+{216} C3H6 + O3 = 0.32OH + 0.06HO2 + 
+      0.26C_O2 + 0.51CO + 0.135CO2 + 0.5HCHO +
+      0.5CCHO + 0.185HCOOH + 0.17CCO_OH + 0.07XC:       (2.20e-10);
+{217} C3H6 + NO3 = 0.949RO2_R + 0.051RO2_N + 
+      2.693XC + 1.0XN : 				(2.20e-10);
+{218} C3H6 + O3P = 0.45RCHO + 0.55MEK + 
+      0.55XC: 				       		(2.20e-10);
+{219} SO2 = H2SO4 : 					(2.20e-10); 
+{220} HO2 = AIR : 					(7.00e-7);
+{221} SO2 = AIR : 					(2.20e-10);   
+{222} H2SO4 = AIR : 					(2.20e-10);
+{223} HNO3 = AIR : 					(2.20e-10);
+{224} H2O2 = AIR : 					(2.20e-10);
+{225} BC = AIR : 					(7.00e-7);
+{226} OC = AIR : 					(7.00e-7);
+{227} SSF = AIR : 					(7.00e-7);
+{228} SSC = AIR : 					(7.00e-7);
+{229} PM10 = AIR : 					(7.00e-7);
+{230} PM25 = AIR : 					(7.00e-7);
+{231} DST1 = AIR : 					(7.00e-7);
+{232} DST2 = AIR : 					(7.00e-7);
+{233} DST3 = AIR : 					(7.00e-7);
+{234} DMS = AIR : 					(7.00e-7);
+{235} CO2 = AIR : 					(7.00e-7);
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/saprcnov.spc
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/saprcnov.spc	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/saprcnov.spc	(revision 2696)
@@ -0,0 +1,101 @@
+#include atoms
+
+  #DEFVAR   
+     O3        	= 3O ;
+     H2O2		= 2H + 2O ;        
+     NO		= N + O ;
+     NO2		= N + 2O ;
+     NO3		= N + 3O ;
+     N2O5		= 2N + 5O ;
+     HONO		= H + 2O + N ;
+     HNO3		= H + N + 3O ;
+     HNO4		= H + N + 4O ;
+     SO2		= S + 2O ;	
+     H2SO4		= 2H + S + 4O ;		
+     CO 		= C + O ;
+     HCHO		= 2H + C + O ;	
+     CCHO		= 2C + H + O ;	
+     RCHO		= 3C + ignore ;
+     ACET		= 			ignore ;	
+     MEK		= 			ignore ;
+     HCOOH		= 2H + C + 2O ;	
+     MEOH		= 			ignore ;
+     ETOH		= 			ignore ;	
+     CCO_OH		= 			ignore ;
+     RCO_OH		= 			ignore ;	
+     GLY		= 			ignore ;
+     MGLY		= 3C + 4H + 2O ;	
+     BACL		=			ignore ;		
+     CRES		= 			ignore ;
+     BALD		= 			ignore ;	
+     ISOPROD		=			ignore ;	
+     METHACRO	= 			ignore ;
+     MVK		=  			ignore ;
+     PROD2		= 			ignore ;	
+     DCB1		= 			ignore ;
+     DCB2		= 			ignore ;
+     DCB3 		= 			ignore ;
+     ETHENE		= 2C + 4H ;
+     ISOPRENE	= 			ignore ;
+     C2H6		= 2C + 6H ;   
+     C3H8		= 3C + 8H ;		
+     C2H2		= 2C + 2H ;   
+     C3H6		= 3C + 6H ;	
+     ALK3		= 			ignore ;
+     ALK4		= 			ignore ;
+     ALK5		= 			ignore ;		
+     ARO1		= 			ignore ;
+     ARO2		= 			ignore ;
+     OLE1		= 			ignore ;
+     OLE2		= 			ignore ;	
+     TERP		= 			ignore ;
+     RNO3		= 			ignore ;	
+     NPHE		= 			ignore ;	
+     PHEN		= 			ignore ;	
+     PAN		= 2C + 3H + 5O + N ;	
+     PAN2		= N + ignore ;	
+     PBZN		= N + ignore ;
+     MA_PAN		= N + ignore ;
+     BC 		= C ;
+     OC 		= C ;
+     SSF		= 			ignore ;
+     SSC		= 			ignore ;
+     PM10		= 			ignore ;
+     PM25		= 			ignore ;
+     DMS		= 			ignore ;
+     DST1		= 			ignore ;
+     DST2		= 			ignore ;
+     DST3		= 			ignore ;
+     CO2		= C + 2O ;
+     CCO_OOH		= 2C + 3O + H ;
+     RCO_O2		= 			ignore ;	
+     RCO_OOH		= 			ignore ;				
+     XN		= 			ignore ;	
+     XC		= 			ignore ;
+     O3P		= O ;
+     O1D		= O ;
+     OH		= H + O ;
+     HO2		= H+ 2O ;	
+     C_O2		= 			ignore ;
+     COOH		= C + 2O + H ;
+     ROOH		= 			ignore ;	
+     RO2_R		= 			ignore ;	
+     R2O2		= 			ignore ;
+     RO2_N		= 			ignore ;	
+     HOCOO		= H + 3O + C ;
+     CCO_O2		= 			ignore ;	
+     BZCO_O2		= 			ignore ;
+     BZNO2_O		= 			ignore ;	
+     BZ_O		= 			ignore ;
+     MA_RCO3		= 			ignore ;									
+     TBU_O		= 			ignore ;
+    
+     
+#DEFFIX	
+     AIR		= ignore ;
+     N2		= 2N ;
+     O2		= 2O ;
+     H2O		= 2H + O ;
+     H2		= 2H ;	
+     CH4		= C + 4H ;	
+	
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/small_strato.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/small_strato.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/small_strato.def	(revision 2696)
@@ -0,0 +1,59 @@
+#include small_strato.spc
+#include small_strato.eqn
+ 
+
+//#LANGUAGE Fortran77          {Output Language}
+//#DOUBLE ON                   {Double Precision}
+//#JACOBIAN SPARSE_LU_ROW      {Use Sparse DATA STRUCTURES}
+ 
+//#INTEGRATOR rodas3
+//#DRIVER general
+
+
+#LOOKATALL                     {File Output}
+#MONITOR O3;N;O2;O;NO;O1D;NO2; {Screen Output}
+
+#CHECK O; N;                   {Check Mass Balance}
+ 
+#INITVALUES                    {Initial Values}
+ 
+CFACTOR = 1.    ;              {Conversion Factor} 
+O1D = 9.906E+01 ; 
+O   = 6.624E+08 ; 
+O3  = 5.326E+11 ; 
+O2  = 1.697E+16 ;
+NO  = 8.725E+08 ; 
+NO2 = 2.240E+08 ; 
+M   = 8.120E+16 ;
+ 
+#INLINE F77_INIT
+       	TSTART = (12*3600)
+        TEND = TSTART + (3*24*3600)
+        DT = 0.25*3600  
+        TEMP = 270
+#ENDINLINE         
+ 
+#INLINE F90_INIT
+        TSTART = (12*3600)
+        TEND = TSTART + (3*24*3600)
+        DT = 0.25*3600  
+        TEMP = 270
+#ENDINLINE         
+ 
+#INLINE MATLAB_INIT
+  global TSTART TEND DT TEMP
+  TSTART = (12*3600);
+  TEND = TSTART + (3*24*3600);
+  DT = 0.25*3600;  
+  TEMP = 270;
+#ENDINLINE         
+
+
+#INLINE C_INIT
+        TSTART = (12*3600);
+        TEND = TSTART + (3*24*3600);
+        DT = 0.25*3600;
+        TEMP = 270;
+#ENDINLINE
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/small_strato.eqn
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/small_strato.eqn	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/small_strato.eqn	(revision 2696)
@@ -0,0 +1,15 @@
+#EQUATIONS { Small Stratospheric Mechanism }
+
+
+<R1>  O2   + hv = 2O		: (2.643E-10) * SUN*SUN*SUN;
+<R2>  O    + O2 = O3		: (8.018E-17);
+<R3>  O3   + hv = O   + O2 	: (6.120E-04) * SUN;
+<R4>  O    + O3 = 2O2		: (1.576E-15);
+<R5>  O3   + hv = O1D + O2	: (1.070E-03) * SUN*SUN;
+<R6>  O1D  + M  = O   + M	: (7.110E-11);
+<R7>  O1D  + O3 = 2O2 		: (1.200E-10);
+<R8>  NO   + O3 = NO2 + O2 	: (6.062E-15);
+<R9>  NO2  + O  = NO  + O2	: (1.069E-11);
+<R10> NO2  + hv = NO  + O	: (1.289E-02) * SUN;
+ 
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/small_strato.spc
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/small_strato.spc	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/small_strato.spc	(revision 2696)
@@ -0,0 +1,17 @@
+#include atoms
+
+#DEFVAR
+O   = O;    	    { Oxygen atomic ground state }	
+O1D = O;	    { Oxygen atomic excited state }
+O3  = O + O + O;    { Ozone }
+NO  = N + O;	    { Nitric oxide }	     
+NO2 = N + O + O;    { Nitrogen dioxide }
+
+
+#DEFFIX
+M   = O + O + N + N;{ Atmospheric generic molecule }
+O2  = O + O;        { Molecular oxygen }
+
+
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/smog.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/smog.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/smog.def	(revision 2696)
@@ -0,0 +1,49 @@
+#include smog.spc
+#include smog.eqn
+
+{#LANGUAGE Fortran77
+#INTEGRATOR rodas3
+#DRIVER general}
+
+#LOOKATALL
+#MONITOR O3;
+
+#INITVALUES
+
+CFACTOR = 1.;
+ALL_SPEC = 1.0E-8;
+RH   = 2.0 ;
+RCHO = 2.0 ;
+NO   = 0.5 ;
+NO2  = 0.1 ;
+H2O  = 1.3E+4 ;
+O2   = 2.0E+5 ;
+
+#INLINE F77_INIT
+	TSTART = 0
+	TEND = TSTART + 600
+	DT = 60.0
+        TEMP = 298
+#ENDINLINE
+
+#INLINE F90_INIT
+	TSTART = 0
+	TEND = TSTART + 600
+	DT = 60.0
+        TEMP = 298
+#ENDINLINE
+
+#INLINE MATLAB_INIT
+   global TSTART TEND DT TEMP
+   TSTART = 0;
+   TEND = TSTART + 600;
+   DT = 60.0;
+   TEMP = 298;
+#ENDINLINE
+
+#INLINE C_INIT
+   TSTART = 0;
+   TEND = TSTART + 600;
+   DT = 60.0;
+   TEMP = 298;
+#ENDINLINE
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/smog.eqn
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/smog.eqn	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/smog.eqn	(revision 2696)
@@ -0,0 +1,17 @@
+#EQUATIONS
+
+{ A Generalized Reaction Mechanism for Photochemical Smog }
+
+{ 1.}  NO2 + hv = NO + O :                    0.533 ;
+{ 2.}  O + O2 = O3       :                 2.183E-5 ;
+{ 3.}  NO + O3 = NO2 + O2 :                   26.59 ;
+{ 4.}  RH + OH = RO2 + H2O :               3.775E+3 ;
+{ 5.}  RCHO + OH = RCOO2 + H2O :           2.341E+4 ;
+{ 6.}  RCHO + hv = RO2 + HO2 + CO :         1.91E-4 ;
+{ 7.}  HO2 + NO = NO2 + OH :               1.214E+4 ;
+{ 8.}  RO2 + NO = NO2 + RCHO + HO2 :       1.127E+4 ;
+{ 9.}  RCOO2 + NO = NO2 + RO2 + CO2 :      1.127E+4 ;
+{10.}  OH + NO2 = HNO3 :                   1.613E+4 ;
+{11.}  RCOO2 + NO2 = RCOO2NO2 :            6.893E+3 ;  
+{12.}  RCOO2NO2 = RCOO2 + NO2 :            2.143E-2 ;
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/smog.spc
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/smog.spc	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/smog.spc	(revision 2696)
@@ -0,0 +1,37 @@
+#include atoms
+
+ #DEFVAR  
+    O           = O ;           {oxygen atomic ground state (3P)}
+    O3		= 3O ;          {ozone}  
+    NO		= N + O ;       {nitric oxide}  
+    NO2		= N + 2O ;      {nitrogen dioxide} 
+    NO3		= N + 3O ;      {nitrogen trioxide} 
+    N2O5	= 2N + 5O ;     {dinitrogen pentoxide}           
+    HNO3	= H + N + 3O ;  { nitric acid }
+    HNO4	= H + N + 4O ;  {HO2NO2 pernitric acid}
+    H           = H ;           {hydrogen atomic ground state (2S)}
+    OH		= O + H ;       {hydroxyl radical}  
+    HO2		= H + 2O ;      {perhydroxyl radical}                     
+    H2O2	= 2H + 2O ;     {hydrogen peroxide} 
+    CH3         = C + 3H ;      {methyl radical}
+    CH3O        = C + 3H + O ;  {methoxy radical}
+    CH3O2       = C + 3H + 2O ; {methylperoxy radical}
+    CH3OOH      = C + 4H + 2O ; {CH4O2      methylperoxy alcohol}
+    HCO         = H + C + O ;   {CHO  formyl radical}
+    CH2O        = C + 2H + O ;  {formalydehyde}
+    
+    RH          = ignore ;
+    RO2         = ignore ;
+    RCHO        = ignore ;
+    RCOO2       = ignore ;
+    RCOO2NO2    = ignore ;
+
+#DEFFIX
+    H2O		= H + 2O ;      {water}
+    H2		= 2H ;          {molecular hydrogen}
+    O2          = 2O ;          {molecular oxygen}              
+    N2          = 2N ;          {molecular nitrogen}              
+    CH4		= C + 4H ;      {methane} 
+    CO		= C + O ;       {carbon monoxide}   
+    CO2         = C + 2O ;      {carbon dioxide}
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/stochastic_dimer.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/stochastic_dimer.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/stochastic_dimer.def	(revision 2696)
@@ -0,0 +1,62 @@
+{Decaying-dimerizing reaction set
+ (Gillespie, J. Chem. Phys. 115(4), p. 1716, 2001)}
+
+#DEFVAR
+S1  = ignore; {}
+S2  = ignore; {}
+S3  = ignore; {}
+
+#EQUATIONS
+S1 	  = PROD	: (1);    {c1}
+S1 + S1   = S2		: (0.004);{2*c2}
+S2 	  = S1 + S1	: (0.5);  {c3}
+S2 	  = S3	 	: (0.04); {c4}
+
+#LOOKATALL
+
+#INITVALUES
+  CFACTOR = 1.0;
+  S1   = 1.0e+5;
+  S2   = 0.0;
+  S3   = 0.0;
+
+#INLINE F77_INIT
+      TSTART = 0.d0
+      TEND   = 30.0d0
+      DT     = 0.5d0;
+      DO i=1,NVAR
+        RTOL(i) = 1.0e-4
+        ATOL(i) = 1.0e-8
+      END DO 
+      Volume = 1.0d0
+#ENDINLINE
+
+#INLINE F90_INIT
+  TSTART = 0.d0
+  TEND   = 30.0d0
+  DT     = 0.5d0
+  RTOL(1:NVAR) = 1.0e-4
+  ATOL(1:NVAR) = 1.0e-8
+  Volume = 1.0d0
+#ENDINLINE
+
+#INLINE MATLAB_INIT
+  global TSTART TEND DT TEMP
+  TSTART = 0;
+  TEND   = 30;
+  DT     = 0.5;
+  RTOL(1:NVAR) = 1.0e-4;
+  ATOL(1:NVAR) = 1.0e-8;
+  Volume = 1;
+#ENDINLINE
+
+#INLINE C_INIT
+  TSTART = 0.0;
+  TEND   = 30.0;
+  DT     = 0.5;
+  for(i=0; i<NVAR; i++) {
+      RTOL[i] = 1.0e-4;
+      ATOL[i] = 1.0e-8;
+  } 
+  Volume = 1.0;
+#ENDINLINE
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/strato.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/strato.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/strato.def	(revision 2696)
@@ -0,0 +1,84 @@
+#include strato.spc
+#include strato.eqn
+
+{#LANGUAGE Fortran77
+#INTEGRATOR rodas3
+#DRIVER general}
+
+#LOOKATALL
+
+#MONITOR O;
+
+#INITVALUES
+
+CFACTOR =   8.12E+16 ;
+
+O       =    8.158574E-09 ;  
+O1D     =    2.773328E-15 ;  
+O3      =    6.560000E-06 ;  
+NO      =    1.074516E-08 ;  
+NO2     =    2.758840E-09 ;
+NO3     =    5.667175E-14 ;  
+N2O5    =    6.905712E-12 ;  
+HNO3    =    3.486344E-10 ;  
+HNO4    =    3.827485E-12 ;  
+H2O     =    6.100000E-06 ;
+H       =    4.190815E-14 ;  
+OH      =    2.041165E-10 ;  
+HO2     =    1.439703E-10 ;  
+H2O2    =    7.227409E-11 ;  
+H2      =    3.700000E-07 ;
+CH4     =    4.900000E-07 ;  
+CH3     =    3.984427E-17 ;  
+CH3O    =    2.496504E-15 ;  
+CH3O2   =    5.130799E-12 ;  
+CH3OOH  =    4.587317E-12 ;
+HCO     =    3.010774E-19 ;  
+CH2O    =    9.913988E-11 ;  
+CO      =    2.000000E-08 ;  
+Cl      =    8.756027E-12 ;  
+Cl2     =    8.665679E-14 ;
+ClO     =    1.011874E-09 ;  
+ClOO    =    2.659306E-15 ;  
+OClO    =    7.193558E-14 ;  
+Cl2O2   =    7.103997E-14 ;  
+HCl     =    2.157657E-09 ;
+HOCl    =    2.196369E-10 ;  
+ClONO2  =    2.166934E-11 ;  
+Br      =    4.025093E-12 ;  
+BrCl    =    5.843046E-14 ;  
+BrO     =    1.132088E-11 ;
+HBr     =    4.349534E-13 ; 
+HOBr    =    5.066596E-12 ;  
+BrONO2  =    9.405408E-14 ;
+O2      =    0.209;
+N2      =    0.781;
+
+#INLINE F77_INIT
+        TSTART = 12.D0*3600.D0
+        TEND = TSTART + 24.D0*3600.D0 * 3
+        DT = 3600.D0
+        TEMP = 241.42
+#ENDINLINE
+
+#INLINE F90_INIT
+        TSTART = 12.D0*3600.D0
+        TEND = TSTART + 24.D0*3600.D0 * 3
+        DT = 3600.D0
+        TEMP = 241.42
+#ENDINLINE
+
+#INLINE MATLAB_INIT
+   global TSTART TEND DT TEMP
+   TSTART = 12.0*3600.0;
+   TEND = TSTART + 24.0*3600.0 * 3;
+   DT = 3600.0;
+   TEMP = 241.42;
+#ENDINLINE
+
+#INLINE C_INIT
+   TSTART = 12.0*3600.0;
+   TEND = TSTART + 24.0*3600.0 * 3;
+   DT = 3600.0;
+   TEMP = 241.42;
+#ENDINLINE
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/strato.eqn
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/strato.eqn	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/strato.eqn	(revision 2696)
@@ -0,0 +1,115 @@
+#EQUATIONS
+
+{ REGION A. STRATOSPHERIC REACTION LIST}
+
+{ 1.} O + O2 = O3 :                       8.018216E-17 ;
+{ 2.} O + O3 = 2O2 :                      1.575705E-15 ;
+{ 3.} O1D + N2 = O + N2 :                 2.838868E-11 ;
+{ 4.} O1D + O2 = O + O2 :                 4.276308E-11 ;
+{ 5.} O1D + O3 = 2O2 :                    1.200000E-10 ;
+{ 6.} H2O + O1D = 2OH :                   2.200000E-10 ; 
+{ 7.} H2 + O1D = OH + H :                 1.000000E-10 ;
+{ 8.} CH4 + O1D = CH2O + H2 :             7.500000E-12 ;  
+{ 9.} CH4 + O1D = CH3 + OH :              1.425000E-10 ; 
+{10.} H + O2 = HO2 :                      6.353884E-15 ;
+{11.} H + O3 = OH + O2 :                  1.998353E-11 ;
+{12.} H2 + OH = H2O + H :                 1.388923E-15 ;
+{13.} OH + O3 = HO2 + O2 :                3.259930E-14 ;
+{14.} OH + O = O2 + H :                   3.616461E-11 ;
+{15.} OH + OH = H2O + O :                 1.554272E-12 ;
+{16.} HO2 + O = OH + O2 :                 6.868940E-11 ;
+{17.} HO2 + O3 = OH + 2O2 :               1.386665E-15 ;
+{18.} H + HO2 = 2OH :                     7.000000E-11 ;
+{19.} HO2 + OH = H2O + O2 :               1.351923E-10 ;
+{20.} HO2 + HO2 = H2O2 + O2 :             2.769464E-12 ;
+{21.} HO2 + HO2 + H2O = H2O2 + O2 + H2O : 3.515415E-29 ;
+{22.} H2O2 + OH = H2O + HO2 :             1.494801E-12 ;
+{23.} NO + O3 = NO2 + O2 :                6.062488E-15 ;
+{24.} NO + HO2 = NO2 + OH :               1.042107E-11 ;
+{25.} NO2 + O = NO + O2 :                 1.068500E-11 ;
+{26.} NO2 + O3 = NO3 + O2 :               4.699133E-18 ;
+{27.} NO2 + OH = HNO3 :                   3.724129E-13 ;
+{28.} NO2 + HO2 = HNO4 :                  2.690292E-14 ;
+{29.} NO3 + O = O2 + NO2 :                1.000000E-11 ;
+{30.} NO3 + NO = 2NO2 :                   3.033154E-11 ;
+{31.} NO3 + NO2 = N2O5 :                  2.325973E-13 ;
+{32.} N2O5 = NO2 + NO3 :                  1.405991E-06 ;
+{33.} HNO3 + OH = H2O + NO3 :             1.890063E-13 ;
+{34.} HNO4 + OH = H2O + NO2 + O2 :        6.273406E-12 ;
+{35.} HNO4 = HO2 + NO2 :                  3.163299E-07 ;
+{36.} N2O5 = 2HNO3 :                      0.000000E+00 ;
+{37.} Cl + O2 = ClOO :                    3.032678E-16 ;
+{38.} Cl + O3 = ClO + O2 :                9.878682E-12 ;
+{39.} Cl + H2 = HCl + H :                 2.696898E-15 ;
+{40.} Cl + HO2 = HCl + O2 :               3.639785E-11 ;
+{41.} Cl + HO2 = OH + ClO :               6.357771E-12 ;
+{42.} Cl + H2O2 = HCl + HO2 :             1.899010E-13 ;
+{43.} ClO + O = Cl + O2 :                 4.009038E-11 ;
+{44.} ClO + OH = HO2 + Cl :               1.808230E-11 ;
+{45.} ClO + OH = HCl + O2 :               0.000000E+00 ;        
+{46.} ClO + HO2 = O2 + HOCl :             8.718280E-12 ;
+{47.} ClO + NO = NO2 + Cl :               2.127376E-11 ;
+{48.} ClO + NO2 = ClONO2 :                2.886454E-14 ;
+{49.} ClO + ClO = Cl + OClO :             1.201307E-15 ;
+{50.} ClO + ClO = Cl + ClOO :             1.174783E-15 ;
+{51.} ClO + ClO = Cl2 + O2 :              1.379878E-15 ;
+{52.} ClO + ClO = Cl2O2 :                 3.330338E-15 ;
+{53.} ClOO = Cl + O2 :                    1.694865E+04 ;
+{54.} Cl2O2 = 2ClO :                      4.773959E-04 ;
+{55.} HCl + OH = H2O + Cl :               6.100684E-13 ;
+{56.} HOCl + OH = H2O + ClO :             3.781814E-13 ;
+{57.} ClONO2 + O = ClO + NO3 :	          1.055174E-13 ;
+{58.} ClONO2 + OH = HOCl + NO3 :          3.021112E-13 ;
+{59.} ClONO2 + Cl = Cl2 + NO3 :           1.319240E-11 ;
+{60.} ClONO2 = HOCl + HNO3 :              0.000000E+00 ;
+{61.} Br + O3 = BrO + O2 :                6.185505E-13 ;
+{62.} Br + HO2 = HBr + O2 :               1.249643E-12 ;
+{63.} Br + CH2O = HBr + HCO :             6.185505E-13 ;
+{64.} BrO + O = Br + O2  :                4.990544E-11 ;
+{65.} BrO + HO2 = HOBr + O2 :             4.918275E-11 ;
+{66.} BrO + NO = Br + NO2 :               2.583341E-11 ;
+{67.} BrO + NO2 = BrONO2 :                7.684217E-14 ;
+{68.} BrO + ClO = Br + OClO :             9.497781E-12 ;
+{69.} BrO + ClO = Br + ClOO :             7.213454E-12 ;
+{70.} BrO + ClO = BrCl + O2 :             1.172819E-12 ;
+{71.} BrO + BrO = 2Br + O2 :              2.467250E-12 ;
+{72.} HBr + OH = Br + H2O :               1.100000E-11 ;
+{73.} CO + OH = H :                       1.502401E-13 ;
+{74.} CH4 + OH = CH3 + H2O :              1.532251E-15 ;
+{75.} CH2O + OH = HCO + H2O :             1.000000E-11 ;
+{76.} CH2O + O = HCO + OH  :              4.501231E-14 ;
+{77.} Cl + CH4 = CH3 + HCl :              3.334368E-14 ;
+{78.} Cl + CH2O = HCl + HCO :             7.153519E-11 ;
+{79.} HCO + O2 = CO + HO2 :               6.250373E-12 ;
+{80.} CH3 + O2 = CH3O2 :                  5.883651E-14 ;
+{81.} CH3O + O2 = CH2O + HO2 :            9.377921E-16 ;
+{82.} CH3O2 + NO = CH3O + NO2 :           8.851990E-12 ;
+{83.} CH3O2 + HO2 = CH3OOH + O2 :         1.044377E-11 ;
+{84.} CH3OOH + OH = CH3O2 + H2O :         6.182046E-12 ;
+
+{ 1.} O2 + hv = 2O :                      2.643E-10 * SUN*SUN*SUN ;           
+{ 2.} O3 + hv = O + O2 :                  6.120E-04 * SUN ;           
+{ 3.} O3 + hv = O1D + O2 :                1.070E-03 * SUN*SUN ;         
+{ 4.} HO2 + hv = OH + O :                 1.817E-04 * SUN*SUN ;         
+{ 5.} H2O2 + hv = 2OH :                   3.537E-05 * SUN ;       
+{ 6.} NO2 + hv = NO + O :                 1.289E-02 * SUN ;       
+{ 7.} NO3 + hv = NO2 + O :                2.359E-01 * SUN ;        
+{ 8.} NO3 + hv = NO + O2 :                2.883E-02 * SUN ;        
+{ 9.} N2O5 + hv = NO2 + NO3 :             2.594E-04 * SUN*SUN ;	  
+{10.} HNO3 + hv = OH + NO2 :              5.269E-05 * SUN*SUN ;          
+{11.} HNO4 + hv = OH + NO3 :              4.557E-05 * SUN*SUN ;	        
+{12.} HNO4 + hv = HO2 + NO2 :             9.113E-05 * SUN*SUN ;        
+{13.} Cl2 + hv = 2Cl :                    3.692E-03 * SUN ;               
+{14.} OClO + hv = O + ClO :               1.243E-01 * SUN ;             
+{15.} Cl2O2 + hv = Cl + ClOO :            3.421E-03 * SUN ;          
+{16.} HOCl + hv = OH + Cl :               4.606E-04 * SUN ;             
+{17.} ClONO2 + hv = Cl + NO3 :            2.254E-04 * SUN*SUN ;	         
+{18.} ClONO2 + hv = Cl + NO2 + O :        2.505E-05 * SUN*SUN ;    
+{19.} BrCl + hv = Br + Cl :               1.867E-02 * SUN ;             
+{20.} BrO + hv = Br + O :                 5.950E-02 * SUN ;              
+{21.} HOBr + hv = Br + OH :               1.284E-03 * SUN ;             
+{22.} BrONO2 + hv = Br + NO3 :            2.074E-03 * SUN ;	         
+{23.} CH2O + hv = HCO + H :               7.553E-05 * SUN ;            
+{24.} CH2O + hv = CO + H2 :               8.303E-05 * SUN ;            
+{25.} CH3OOH + hv = CH3O + OH :           2.285E-05 * SUN ;        
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/strato.spc
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/strato.spc	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/strato.spc	(revision 2696)
@@ -0,0 +1,46 @@
+#include atoms
+
+#DEFVAR  
+    O           = O ;           {oxygen atomic ground state (3P)}
+    O1D         = O ;           {oxygen atomic first singlet state}
+    O3		= 3O ;          {ozone}  
+    NO		= N + O ;       {nitric oxide}  
+    NO2		= N + 2O ;      {nitrogen dioxide} 
+    NO3		= N + 3O ;      {nitrogen trioxide} 
+    N2O5	= 2N + 5O ;     {dinitrogen pentoxide}           
+    HNO3	= H + N + 3O ;  { nitric acid }
+    HNO4	= H + N + 4O ;  {HO2NO2 pernitric acid}
+    H           = H ;           {hydrogen atomic ground state (2S)}
+    OH		= O + H ;       {hydroxyl radical}  
+    HO2		= H + 2O ;      {perhydroxyl radical}                     
+    H2O2	= 2H + 2O ;     {hydrogen peroxide} 
+    CH3         = C + 3H ;      {methyl radical}
+    CH3O        = C + 3H + O ;  {methoxy radical}
+    CH3O2       = C + 3H + 2O ; {methylperoxy radical}
+    CH3OOH      = C + 4H + 2O ; {CH4O2      methylperoxy alcohol}
+    HCO         = H + C + O ;   {CHO  formyl radical}
+    CH2O        = C + 2H + O ;  {formalydehyde}
+    Cl          = Cl ;          {chlorine atomic ground state (2P3/2)}
+    Cl2         = 2Cl ;         {molecular chlorine}
+    ClO         = Cl + O ;      {chlorine monoxide radical}
+    ClOO        = Cl + 2O ;     {asymmetrical chlorine dioxide radical}
+    OClO        = Cl + 2O ;     {symmetrical chlorine dioxide}
+    Cl2O2       = 2Cl + 2O ;    {chlorine monoxide dimer}
+    HCl         = H + Cl ;      {hydrogen chloride}
+    HOCl        = H + O + Cl ;  {hydrochlorous acid}
+    ClONO2      = Cl + 3O + N ; {ClNO3, chlorine nitrate}
+    Br          = Br ;          {bromine atomic ground state (2P3/2)}
+    BrCl        = Br + Cl ;     {bromine chloride}
+    BrO         = Br + O ;      {bromine monoxide radical}
+    HBr         = H + Br ;      {hydrogen bromide}
+    HOBr        = H + O + Br ;  {hydrobromous acid}
+    BrONO2      = Br + N + 3O ; {BrNO3, bromine nitrate}
+
+
+#DEFFIX
+    H2O		= H + 2O ;      {water}
+    H2		= 2H ;          {molecular hydrogen}
+    O2          = 2O ;          {molecular oxygen}              
+    N2          = 2N ;          {molecular nitrogen}              
+    CH4		= C + 4H ;      {methane} 
+    CO		= C + O ;       {carbon monoxide}   
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/test_pentane.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/test_pentane.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/test_pentane.def	(revision 2696)
@@ -0,0 +1,62 @@
+#INCLUDE test_pentane.spc
+#INCLUDE test_pentane.eqn
+
+{#LANGUAGE Fortran90
+#INTEGRATOR ros3
+#DRIVER general}
+
+#LOOKATALL
+
+#MONITOR GO3; GC05000; GD02000; GD03000
+
+#INITVALUES
+  ALL_SPEC = 0.0;
+  GO3   = 100.0;
+  GNO   = 0.05;
+  GNO2  = 0.05;
+  GH2O  = 500.0;
+  GCO   = 100.0;
+  GNO3  = 0.1;
+  GSO2  = 5.0;
+  GCH4  = 1700;
+  GH2O2 = 2.0;
+  GHNO4 = 1E-8;
+  GO2   = 2.E+8;
+  GCO2  = 5.E+7;
+  GH2   = 500;  
+  GC05000 = 35;  
+
+#INLINE F77_INIT
+	TSTART = 12.*3600.
+	TEND = TSTART + 24.*3600. * 5
+	DT = 3600.
+        TEMP = 288.15
+#ENDINLINE
+
+#INLINE F90_INIT
+        TSTART = 0.0D0
+        TEND = TSTART + 2*24*3600.0D0 ! 2160.0D0*60.0D0
+        DT = 3600.D0
+        TEMP = 300.0D0
+#ENDINLINE
+{	TSTART = 12.*3600.
+	TEND = TSTART + 24.*3600. * 1
+	DT = 3600.
+        TEMP = 288.15}
+{        SUNRISE = 5.0
+        SUNSET  = 7.0}
+
+#INLINE MATLAB_INIT
+   global TSTART TEND DT TEMP
+   TSTART = 12.*3600.0;
+   TEND = TSTART + 24.0*3600.0 * 5;
+   DT = 3600.0;
+   TEMP = 288.15;
+#ENDINLINE
+
+#INLINE C_INIT
+   TSTART = 12.*3600.0;
+   TEND = TSTART + 24.0*3600.0 * 5;
+   DT = 3600.0;
+   TEMP = 288.15;
+#ENDINLINE
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/test_pentane.eqn
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/test_pentane.eqn	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/test_pentane.eqn	(revision 2696)
@@ -0,0 +1,78059 @@
+#EQUATIONS
+{ 1} GO3P + GO3 =  NOTHING                                                 : ARR( 0.800E-11,  2060., 0.0);
+{ 2} GO3P + GNO2 =  GNO                                                    : ARR( 0.560E-11,  -180., 0.0);
+{ 3} GO1D + M =  GO3P + M                                                  : ARR( 0.209E-10,   -96., 0.0);
+{ 4} GO3 + GNO =  GNO2                                                     : ARR( 0.300E-11,  1500., 0.0);
+{ 5} GO3 + GNO2 =  GNO3                                                    : ARR( 0.120E-12,  2450., 0.0);
+{ 6} GNO + GNO3 =  2. GNO2                                                 : ARR( 0.150E-10,  -170., 0.0);
+{ 7} GNO + GNO + M =  2. GNO2                                              : ARR( 0.330E-38,  -530., 0.0);
+{ 8} GNO2 + GNO3 =  GNO + GNO2                                             : ARR( 0.450E-13,  1260., 0.0);
+{ 9} GHO + GHNO2 =  GNO2                                                   : ARR( 0.180E-10,   390., 0.0);
+{10} GHO + GNO3 =  GHO2 + GNO2                                             : ARR( 0.200E-10,     0., 0.0);
+{11} GHO + GCO =  GHO2 + GCO2                                              : ARR( 0.150E-12,     0., 0.0);
+{12} GHO + GCO + M =  GHO2 + GCO2                                          : ARR( 0.366E-32,     0., 0.0);
+{13} GHO + GO3 =  GHO2                                                     : ARR( 0.150E-11,   880., 0.0);
+{14} GHO2 + GNO =  GHO + GNO2                                              : ARR( 0.370E-11,  -240., 0.0);
+{15} GHNO4 + GHO =  GNO2                                                   : ARR( 0.130E-11,  -380., 0.0);
+{16} GHO2 + GO3 =  GHO                                                     : ARR( 0.200E-13,   680., 0.0);
+{17} GHO2 + GHO2 =  GH2O2                                                  : ARR( 0.230E-12,  -600., 0.0);
+{18} GHO2 + GHO2 + M =  GH2O2 + M                                          : ARR( 0.170E-32, -1000., 0.0);
+{19} GNO3 + GHO2 =  0.8 GHO + 0.8 GNO2 + 0.2 GHNO3                         : ARR( 0.350E-11,     0., 0.0);
+{20} GNO3 + GNO3 =  2. GNO2                                                : ARR( 0.850E-12,  2450., 0.0);
+{21} GH2O2 + GHO =  GHO2                                                   : ARR( 0.290E-11,   160., 0.0);
+{22} GHO + GHO2 =  NOTHING                                                 : ARR( 0.480E-10,  -250., 0.0);
+{23} GHO + GH2 =  GHO2                                                     : ARR( 0.550E-11,  2000., 0.0);
+{24} GO3P + GNO + M  =  GNO2 + M                                           : FALL( 0.900E-31,     0.,-1.5, 0.300E-10,     0., 0.0,0.60);
+{25} GO3P + GNO2 + M  =  GNO3 + M                                          : FALL( 0.900E-31,     0.,-2.0, 0.220E-10,     0., 0.0,0.60);
+{26} GNO2 + GNO3 + M =  GN2O5 + M                                          : FALL( 0.200E-29,     0.,-4.4, 0.140E-11,     0.,-0.7,0.60);
+{27} GN2O5 + M  =  GNO2 + GNO3 + M                                         : FALL( 0.667E-03, 10991.,-4.4, 0.467E+15, 10991.,-0.7,0.60);
+{28} GHO + GNO + M  =  GHNO2 + M                                           : FALL( 0.700E-30,     0.,-2.6, 0.360E-10,     0.,-0.1,0.60);
+{29} GHO + GNO2 + M  =  GHNO3 + M                                          : FALL( 0.300E-29,     0.,-3.0, 0.360E-10,     0., 0.0,0.40);
+{30} GHO2 + GNO2 + M  =  GHNO4 + M                                         : FALL( 0.180E-30,     0.,-3.2, 0.470E-11,     0., 0.0,0.60);
+{31} GHNO4 + M  =  GHO2 + GNO2 + M                                         : FALL( 0.500E-05, 10000., 0.0, 0.261E+16, 10900., 0.0,0.60);
+{32} GHO + GSO2 + M  =  GHO2 + GSULF + M                                   : FALL( 0.300E-30,     0.,-3.3, 0.150E-11,     0., 0.0,0.60);
+{33} GO3P + EXTRA =  GO3                                                   : ARR( 0.528E-27,     0., 2.4);
+{34} GO1D + EXTRA =  2. GHO                                                : ARR( 0.220E-09,     0., 0.0);
+{35} GHO + GHNO3 + EXTRA =  GNO3                                           : ARR( 0.240E-13,  -460., 0.0);
+{36} GHO2 + GHO2 + EXTRA =  GH2O2                                          : ARR( 0.320E-33, -2800., 0.0);
+{37} GO3 + HV =  GO1D                                                      :  0.100E+01*SUN;
+{38} GO3 + HV =  GO3P                                                      :  0.100E+01*SUN;
+{39} GNO2 + HV =  GNO + GO3P                                               :  0.100E+01*SUN;
+{40} GNO3 + HV =  GNO                                                      :  0.100E+01*SUN;
+{41} GNO3 + HV =  GNO2 + GO3                                               :  0.100E+01*SUN;
+{42} GH2O2 + HV =  2. GHO                                                  :  0.100E+01*SUN;
+{43} GHNO2 + HV =  GHO + GNO                                               :  0.100E+01*SUN;
+{44} GHNO3 + HV =  GHO + GNO2                                              :  0.100E+01*SUN;
+{45} GHNO4 + HV =  0.61 GHO2 + 0.61 GNO2 + 0.39 GHO + 0.39 GHNO3           :  0.100E+01*SUN;
+{46} GCH4 + GHO =  GCH3O2                                                  : ARR( 0.215E-11,  1735., 0.0);
+{47} GCH3O2 + GCH3O2 =  GCH3OH + GCH2O                                     : ARR( 0.600E-13,  -390., 0.0);
+{48} GCH3O2 + GCH3O2 =  2 GCH3O                                            : ARR( 0.350E-13,  -390., 0.0);
+{49} GCH3O2 + GNO =  GCH3O + GNO2                                          : ARR( 0.280E-11,  -300., 0.0);
+{50} GCH3O2 + GNO3 =  GCH3O + GNO2                                         : ARR( 0.130E-11,     0., 0.0);
+{51} GCH3O2 + GHO2 =  GCH3OOH                                              : ARR( 0.410E-12,  -750., 0.0);
+{52} GCH3O + OXYGEN =  GCH2O + GHO2                                        : ARR( 0.720E-13,  1080., 0.0);
+{53} GCH3OH + GHO =  0.85 GCH2O + 0.85 GHO2 + 0.15 GCH3O                   : ARR( 0.310E-11,   360., 0.0);
+{54} GCH3OH + GNO3 =  GCH2O + GHO2 + GHNO3                                 : ARR( 0.940E-12,  2650., 0.0);
+{55} GCH3OOH + HV =  GCH3O + GHO                                           :  0.100E+01*SUN;
+{56} GCH3OOH + GHO =  GHO + GCH2O                                          : ARR( 0.100E-11,  -190., 0.0);
+{57} GCH3OOH + GHO =  GCH3O2                                               : ARR( 0.190E-11,  -190., 0.0);
+{58} GCH3O + GNO2 + M  =  GN01001 + M                                      : FALL( 0.900E-28,     0.,-4.5, 0.190E-10,     0., 0.0,0.44);
+{59} GN01001 + HV =  GCH3O + GNO2                                          :  0.100E+01*SUN;
+{60} GN01001 + GHO =  GCH2O + GNO2                                         : ARR( 0.400E-12,   845., 0.0);
+{61} GCH2O + HV =  GCO + 2 GHO2                                            :  0.100E+01*SUN;
+{62} GCH2O + HV =  GH2 + GCO                                               :  0.100E+01*SUN;
+{63} GCH2O + GHO =  GCO + GHO2                                             : ARR( 0.860E-11,   -20., 0.0);
+{64} GCH2O + GNO3 =  GHNO3 + GCO + GHO2                                    : ARR( 0.580E-15,     0., 0.0);
+{65} GHCOOH + GHO =  GHO2 + GCO2                                           : ARR( 0.450E-12,     0., 0.0);
+{66} GHCOO2H + GHO =  GHCOO2                                               : ARR( 0.190E-11,  -190., 0.0);
+{67} GHCOO2H + HV =  GHO2 + GHO + GCO2                                     :  0.100E+01*SUN;
+{68} GHCOO2 + GHO2 =  0.7 GHCOO2H + 0.3 GHCOOH + 0.3 GO3                   : ARR( 0.430E-12, -1040., 0.0);
+{69} GHCOO2 + GNO =  GHO2 + GNO2 + GCO2                                    : ARR( 0.810E-11,  -270., 0.0);
+{70} GHCOO2 + GNO3 =  GCH3O2 + GNO2                                        : ARR( 0.500E-11,     0., 0.0);
+{71} GHCOO2 + GCH3O2 =  1.37 GHO2 + 1.37 GCO2 + 1.37 GCH3O                 : ARR( 0.500E-11,     0., 0.0);
+{72} GHCOO2 + GCH3O2 =  0.63 GHCOOH + 0.63 GCH2O                           : ARR( 0.500E-11,     0., 0.0);
+{73} GHCOO2 + GNO2 + M  =  GP01001  + M                                    : FALL( 0.850E-28,     0.,-6.5, 0.110E-10,     0.,-1.0,0.60);
+{74} GP01001 + M  =  GHCOO2 + GNO2 + M                                     : FALL( 0.490E-02, 12100., 0.0, 0.540E+17, 13830., 0.0,0.30);
+{75} GP01001 + HV =  GHCOO2 + GNO2                                         :  0.100E+01*SUN;
+{76} GN01002 =  GCO2 + GHO2 + GNO2                                         : ARR( 0.100E+02,     0., 0.0);
+{    77} GCH3O2  +PERO1              =  0.480GCH3O   + 0.260GCH2O   + 0.260GCH3OH                  : ARR( 0.146E-12,  -445., 0.0);
+{    78} GCH3O2  +PERO2              =  0.440GCH3O   + 0.280GCH2O   + 0.280GCH3OH                  : ARR( 0.544E-13,  -945., 0.0);
+{    79} GCH3O2  +PERO3              =  0.480GCH3O   + 0.260GCH2O   + 0.260GCH3OH                  : ARR( 0.164E-12,  -795., 0.0);
+{    80} GCH3O2  +PERO5              =  0.480GCH3O   + 0.260GCH2O   + 0.260GCH3OH                  : ARR( 0.616E-11,   905., 0.0);
+{    81} GCH3O2  +PERO6              =  0.340GCH3O   + 0.330GCH2O   + 0.330GCH3OH                  : ARR( 0.565E-13,  -845., 0.0);
+{    82} GCH3O2  +PERO9              =  0.690GCH3O   + 0.310GCH2O                                  : ARR( 0.100E-10,     0., 0.0);
+{    83} GC05000 +GHO                =       G205000                                               : ARR( 0.202E-17,  -183., 2.0);
+{    84} GC05000 +GHO                =       G205001                                               : ARR( 0.139E-16,  -183., 2.0);
+{    85} GC05000 +GHO                =       G205002                                               : ARR( 0.852E-17,  -183., 2.0);
+{    86} G205000 +GNO                =       G105000 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{    87} G205000 +GNO                =       GN05000                                               : ARR( 0.182E-12,  -360., 0.0);
+{    88} G205000 +GHO2               =       GH05000                                               : ARR( 0.242E-12, -1250., 0.0);
+{    89} G205000 +GNO3               =       G105000 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{    90} G205000 +MEPERO             =  0.480G105000 + 0.260GO05000 + 0.260GD05000                 : ARR( 0.146E-12,  -445., 0.0);
+{    91} G205000 +PERO1              =  0.600G105000 + 0.200GO05000 + 0.200GD05000                 : ARR( 0.112E-12,  -500., 0.0);
+{    92} G205000 +PERO2              =  0.560G105000 + 0.220GO05000 + 0.220GD05000                 : ARR( 0.418E-13, -1000., 0.0);
+{    93} G205000 +PERO3              =  0.600G105000 + 0.200GO05000 + 0.200GD05000                 : ARR( 0.126E-12,  -850., 0.0);
+{    94} G205000 +PERO5              =  0.600G105000 + 0.200GO05000 + 0.200GD05000                 : ARR( 0.473E-11,   850., 0.0);
+{    95} G205000 +PERO6              =  0.460G105000 + 0.270GO05000 + 0.270GD05000                 : ARR( 0.434E-13,  -900., 0.0);
+{    96} G205000 +PERO9              =  0.800G105000 + 0.200GD05000                                : ARR( 0.100E-10,     0., 0.0);
+{    97} G205001 +GNO                =       G105001 +      GNO2                                   : ARR( 0.238E-11,  -360., 0.0);
+{    98} G205001 +GNO                =       GN05001                                               : ARR( 0.324E-12,  -360., 0.0);
+{    99} G205001 +GHO2               =       GH05001                                               : ARR( 0.242E-12, -1250., 0.0);
+{   100} G205001 +GNO3               =       G105001 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{   101} G205001 +MEPERO             =  0.480G105001 + 0.260GO05001 + 0.260GK05000                 : ARR( 0.616E-11,   905., 0.0);
+{   102} G205001 +PERO1              =  0.600G105001 + 0.200GO05001 + 0.200GK05000                 : ARR( 0.473E-11,   850., 0.0);
+{   103} G205001 +PERO2              =  0.560G105001 + 0.220GO05001 + 0.220GK05000                 : ARR( 0.177E-11,   350., 0.0);
+{   104} G205001 +PERO3              =  0.600G105001 + 0.200GO05001 + 0.200GK05000                 : ARR( 0.533E-11,   500., 0.0);
+{   105} G205001 +PERO5              =  0.600G105001 + 0.200GO05001 + 0.200GK05000                 : ARR( 0.200E-09,  2200., 0.0);
+{   106} G205001 +PERO6              =  0.460G105001 + 0.270GO05001 + 0.270GK05000                 : ARR( 0.183E-11,   450., 0.0);
+{   107} G205001 +PERO9              =  0.800G105001 + 0.200GK05000                                : ARR( 0.100E-10,     0., 0.0);
+{   108} G205002 +GNO                =       G105002 +      GNO2                                   : ARR( 0.238E-11,  -360., 0.0);
+{   109} G205002 +GNO                =       GN05002                                               : ARR( 0.324E-12,  -360., 0.0);
+{   110} G205002 +GHO2               =       GH05002                                               : ARR( 0.242E-12, -1250., 0.0);
+{   111} G205002 +GNO3               =       G105002 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{   112} G205002 +MEPERO             =  0.480G105002 + 0.260GO05002 + 0.260GK05001                 : ARR( 0.616E-11,   905., 0.0);
+{   113} G205002 +PERO1              =  0.600G105002 + 0.200GO05002 + 0.200GK05001                 : ARR( 0.473E-11,   850., 0.0);
+{   114} G205002 +PERO2              =  0.560G105002 + 0.220GO05002 + 0.220GK05001                 : ARR( 0.177E-11,   350., 0.0);
+{   115} G205002 +PERO3              =  0.600G105002 + 0.200GO05002 + 0.200GK05001                 : ARR( 0.533E-11,   500., 0.0);
+{   116} G205002 +PERO5              =  0.600G105002 + 0.200GO05002 + 0.200GK05001                 : ARR( 0.200E-09,  2200., 0.0);
+{   117} G205002 +PERO6              =  0.460G105002 + 0.270GO05002 + 0.270GK05001                 : ARR( 0.183E-11,   450., 0.0);
+{   118} G205002 +PERO9              =  0.800G105002 + 0.200GK05001                                : ARR( 0.100E-10,     0., 0.0);
+{   119} G105000                     =       G2O5000                                               : ARR( 0.160E+12,  3092., 0.0);
+{   120} G105001                     =       G2O5001                                               : ARR( 0.240E+12,  4177., 0.0);
+{   121} G105001                     =       G203000 +      GD02000                                : ARR( 0.200E+15,  7236., 0.0);
+{   122} G105002                     =       G202000 +      GD03000                                : ARR( 0.400E+15,  7207., 0.0);
+{   123} G2O5000 +GNO                =       G1O5000 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{   124} G2O5000 +GNO                =       GNO5000                                               : ARR( 0.182E-12,  -360., 0.0);
+{   125} G2O5000 +GHO2               =       GHO5000                                               : ARR( 0.242E-12, -1250., 0.0);
+{   126} G2O5000 +GNO3               =       G1O5000 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{   127} G2O5000 +MEPERO             =  0.480G1O5000 + 0.260GOO5000 + 0.260GKO5000                 : ARR( 0.616E-11,   905., 0.0);
+{   128} G2O5000 +PERO1              =  0.600G1O5000 + 0.200GOO5000 + 0.200GKO5000                 : ARR( 0.473E-11,   850., 0.0);
+{   129} G2O5000 +PERO2              =  0.560G1O5000 + 0.220GOO5000 + 0.220GKO5000                 : ARR( 0.177E-11,   350., 0.0);
+{   130} G2O5000 +PERO3              =  0.600G1O5000 + 0.200GOO5000 + 0.200GKO5000                 : ARR( 0.533E-11,   500., 0.0);
+{   131} G2O5000 +PERO5              =  0.600G1O5000 + 0.200GOO5000 + 0.200GKO5000                 : ARR( 0.200E-09,  2200., 0.0);
+{   132} G2O5000 +PERO6              =  0.460G1O5000 + 0.270GOO5000 + 0.270GKO5000                 : ARR( 0.183E-11,   450., 0.0);
+{   133} G2O5000 +PERO9              =  0.800G1O5000 + 0.200GKO5000                                : ARR( 0.100E-10,     0., 0.0);
+{   134} G2O5001 +GNO                =       G1O5001 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{   135} G2O5001 +GNO                =       GNO5001                                               : ARR( 0.182E-12,  -360., 0.0);
+{   136} G2O5001 +GHO2               =       GHO5001                                               : ARR( 0.242E-12, -1250., 0.0);
+{   137} G2O5001 +GNO3               =       G1O5001 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{   138} G2O5001 +MEPERO             =  0.480G1O5001 + 0.260GOO5000 + 0.260GDO5000                 : ARR( 0.146E-12,  -445., 0.0);
+{   139} G2O5001 +PERO1              =  0.600G1O5001 + 0.200GOO5000 + 0.200GDO5000                 : ARR( 0.112E-12,  -500., 0.0);
+{   140} G2O5001 +PERO2              =  0.560G1O5001 + 0.220GOO5000 + 0.220GDO5000                 : ARR( 0.418E-13, -1000., 0.0);
+{   141} G2O5001 +PERO3              =  0.600G1O5001 + 0.200GOO5000 + 0.200GDO5000                 : ARR( 0.126E-12,  -850., 0.0);
+{   142} G2O5001 +PERO5              =  0.600G1O5001 + 0.200GOO5000 + 0.200GDO5000                 : ARR( 0.473E-11,   850., 0.0);
+{   143} G2O5001 +PERO6              =  0.460G1O5001 + 0.270GOO5000 + 0.270GDO5000                 : ARR( 0.434E-13,  -900., 0.0);
+{   144} G2O5001 +PERO9              =  0.800G1O5001 + 0.200GDO5000                                : ARR( 0.100E-10,     0., 0.0);
+{   145} G203000 +GNO                =       G103000 +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{   146} G203000 +GNO                =       GN03000                                               : ARR( 0.622E-13,  -360., 0.0);
+{   147} G203000 +GHO2               =       GH03000                                               : ARR( 0.179E-12, -1250., 0.0);
+{   148} G203000 +GNO3               =       G103000 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{   149} G203000 +MEPERO             =  0.480G103000 + 0.260GO03000 + 0.260GD03000                 : ARR( 0.146E-12,  -445., 0.0);
+{   150} G203000 +PERO1              =  0.600G103000 + 0.200GO03000 + 0.200GD03000                 : ARR( 0.112E-12,  -500., 0.0);
+{   151} G203000 +PERO2              =  0.560G103000 + 0.220GO03000 + 0.220GD03000                 : ARR( 0.418E-13, -1000., 0.0);
+{   152} G203000 +PERO3              =  0.600G103000 + 0.200GO03000 + 0.200GD03000                 : ARR( 0.126E-12,  -850., 0.0);
+{   153} G203000 +PERO5              =  0.600G103000 + 0.200GO03000 + 0.200GD03000                 : ARR( 0.473E-11,   850., 0.0);
+{   154} G203000 +PERO6              =  0.460G103000 + 0.270GO03000 + 0.270GD03000                 : ARR( 0.434E-13,  -900., 0.0);
+{   155} G203000 +PERO9              =  0.800G103000 + 0.200GD03000                                : ARR( 0.100E-10,     0., 0.0);
+{   156} G202000 +GNO                =       G102000 +      GNO2                                   : ARR( 0.270E-11,  -360., 0.0);
+{   157} G202000 +GHO2               =       GH02000                                               : ARR( 0.133E-12, -1250., 0.0);
+{   158} G202000 +GNO3               =       G102000 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{   159} G202000 +MEPERO             =  0.480G102000 + 0.260GO02000 + 0.260GD02000                 : ARR( 0.146E-12,  -445., 0.0);
+{   160} G202000 +PERO1              =  0.600G102000 + 0.200GO02000 + 0.200GD02000                 : ARR( 0.112E-12,  -500., 0.0);
+{   161} G202000 +PERO2              =  0.560G102000 + 0.220GO02000 + 0.220GD02000                 : ARR( 0.418E-13, -1000., 0.0);
+{   162} G202000 +PERO3              =  0.600G102000 + 0.200GO02000 + 0.200GD02000                 : ARR( 0.126E-12,  -850., 0.0);
+{   163} G202000 +PERO5              =  0.600G102000 + 0.200GO02000 + 0.200GD02000                 : ARR( 0.473E-11,   850., 0.0);
+{   164} G202000 +PERO6              =  0.460G102000 + 0.270GO02000 + 0.270GD02000                 : ARR( 0.434E-13,  -900., 0.0);
+{   165} G202000 +PERO9              =  0.800G102000 + 0.200GD02000                                : ARR( 0.100E-10,     0., 0.0);
+{   166} G1O5000                     =       GDO5000 +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{   167} G1O5001                     =       GKO5000 +      GHO2                                   : ARR( 0.800E+11,  2117., 0.0);
+{   168} G103000 +OXYGEN             =       GD03000 +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{   169} G102000 +OXYGEN             =       GD02000 +      GHO2                                   : ARR( 0.600E-13,   582., 0.0);
+{   170} GN05000 +GHO                =       G2N5000                                               : ARR( 0.170E-12,     0., 0.0);
+{   171} GN05000 +GHO                =       G2N5001                                               : ARR( 0.117E-11,     0., 0.0);
+{   172} GN05000 +GHO                =       G2N5002                                               : ARR( 0.143E-11,     0., 0.0);
+{   173} GN05000 +GHO                =       G2N5003                                               : ARR( 0.287E-12,     0., 0.0);
+{   174} GN05000+HV               =       G105000 +      GNO2                                   :  0.100E+01*SUN;
+{   175} G2N5000 +GNO                =       G1N5000 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{   176} G2N5000 +GNO                =       GNN5000                                               : ARR( 0.182E-12,  -360., 0.0);
+{   177} G2N5000 +GHO2               =       GHN5000                                               : ARR( 0.242E-12, -1250., 0.0);
+{   178} G2N5000 +GNO3               =       G1N5000 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{   179} G2N5000 +MEPERO             =  0.480G1N5000 + 0.260GNO5002 + 0.260GND5000                 : ARR( 0.146E-12,  -445., 0.0);
+{   180} G2N5000 +PERO1              =  0.600G1N5000 + 0.200GNO5002 + 0.200GND5000                 : ARR( 0.112E-12,  -500., 0.0);
+{   181} G2N5000 +PERO2              =  0.560G1N5000 + 0.220GNO5002 + 0.220GND5000                 : ARR( 0.418E-13, -1000., 0.0);
+{   182} G2N5000 +PERO3              =  0.600G1N5000 + 0.200GNO5002 + 0.200GND5000                 : ARR( 0.126E-12,  -850., 0.0);
+{   183} G2N5000 +PERO5              =  0.600G1N5000 + 0.200GNO5002 + 0.200GND5000                 : ARR( 0.473E-11,   850., 0.0);
+{   184} G2N5000 +PERO6              =  0.460G1N5000 + 0.270GNO5002 + 0.270GND5000                 : ARR( 0.434E-13,  -900., 0.0);
+{   185} G2N5000 +PERO9              =  0.800G1N5000 + 0.200GND5000                                : ARR( 0.100E-10,     0., 0.0);
+{   186} G2N5001 +GNO                =       G1N5001 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{   187} G2N5001 +GNO                =       GNN5001                                               : ARR( 0.182E-12,  -360., 0.0);
+{   188} G2N5001 +GHO2               =       GHN5001                                               : ARR( 0.242E-12, -1250., 0.0);
+{   189} G2N5001 +GNO3               =       G1N5001 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{   190} G2N5001 +MEPERO             =  0.480G1N5001 + 0.260GNO5001 + 0.260GNK5000                 : ARR( 0.616E-11,   905., 0.0);
+{   191} G2N5001 +PERO1              =  0.600G1N5001 + 0.200GNO5001 + 0.200GNK5000                 : ARR( 0.473E-11,   850., 0.0);
+{   192} G2N5001 +PERO2              =  0.560G1N5001 + 0.220GNO5001 + 0.220GNK5000                 : ARR( 0.177E-11,   350., 0.0);
+{   193} G2N5001 +PERO3              =  0.600G1N5001 + 0.200GNO5001 + 0.200GNK5000                 : ARR( 0.533E-11,   500., 0.0);
+{   194} G2N5001 +PERO5              =  0.600G1N5001 + 0.200GNO5001 + 0.200GNK5000                 : ARR( 0.200E-09,  2200., 0.0);
+{   195} G2N5001 +PERO6              =  0.460G1N5001 + 0.270GNO5001 + 0.270GNK5000                 : ARR( 0.183E-11,   450., 0.0);
+{   196} G2N5001 +PERO9              =  0.800G1N5001 + 0.200GNK5000                                : ARR( 0.100E-10,     0., 0.0);
+{   197} G2N5002 +GNO                =       G1N5002 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{   198} G2N5002 +GNO                =       GNN5002                                               : ARR( 0.182E-12,  -360., 0.0);
+{   199} G2N5002 +GHO2               =       GHN5002                                               : ARR( 0.242E-12, -1250., 0.0);
+{   200} G2N5002 +GNO3               =       G1N5002 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{   201} G2N5002 +MEPERO             =  0.480G1N5002 + 0.260GNO5003 + 0.260GNK5001                 : ARR( 0.616E-11,   905., 0.0);
+{   202} G2N5002 +PERO1              =  0.600G1N5002 + 0.200GNO5003 + 0.200GNK5001                 : ARR( 0.473E-11,   850., 0.0);
+{   203} G2N5002 +PERO2              =  0.560G1N5002 + 0.220GNO5003 + 0.220GNK5001                 : ARR( 0.177E-11,   350., 0.0);
+{   204} G2N5002 +PERO3              =  0.600G1N5002 + 0.200GNO5003 + 0.200GNK5001                 : ARR( 0.533E-11,   500., 0.0);
+{   205} G2N5002 +PERO5              =  0.600G1N5002 + 0.200GNO5003 + 0.200GNK5001                 : ARR( 0.200E-09,  2200., 0.0);
+{   206} G2N5002 +PERO6              =  0.460G1N5002 + 0.270GNO5003 + 0.270GNK5001                 : ARR( 0.183E-11,   450., 0.0);
+{   207} G2N5002 +PERO9              =  0.800G1N5002 + 0.200GNK5001                                : ARR( 0.100E-10,     0., 0.0);
+{   208} G2N5003 +GNO                =       G1N5003 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{   209} G2N5003 +GNO                =       GNN5003                                               : ARR( 0.182E-12,  -360., 0.0);
+{   210} G2N5003 +GHO2               =       GHN5003                                               : ARR( 0.242E-12, -1250., 0.0);
+{   211} G2N5003 +GNO3               =       G1N5003 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{   212} G2N5003 +MEPERO             =  0.340G1N5003 + 0.330GNO5004 + 0.330GNK5002                 : ARR( 0.565E-13,  -845., 0.0);
+{   213} G2N5003 +PERO1              =  0.460G1N5003 + 0.270GNO5004 + 0.270GNK5002                 : ARR( 0.434E-13,  -900., 0.0);
+{   214} G2N5003 +PERO2              =  0.400G1N5003 + 0.300GNO5004 + 0.300GNK5002                 : ARR( 0.162E-13, -1400., 0.0);
+{   215} G2N5003 +PERO3              =  0.460G1N5003 + 0.270GNO5004 + 0.270GNK5002                 : ARR( 0.488E-13, -1250., 0.0);
+{   216} G2N5003 +PERO5              =  0.460G1N5003 + 0.270GNO5004 + 0.270GNK5002                 : ARR( 0.183E-11,   450., 0.0);
+{   217} G2N5003 +PERO6              =  0.300G1N5003 + 0.350GNO5004 + 0.350GNK5002                 : ARR( 0.168E-13, -1300., 0.0);
+{   218} G2N5003 +PERO9              =  0.650G1N5003 + 0.350GNK5002                                : ARR( 0.100E-10,     0., 0.0);
+{   219} G1N5000 +OXYGEN             =       GND5000 +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{   220} G1N5000                     =       G2N5004                                               : ARR( 0.160E+12,  3719., 0.0);
+{   221} G1N5001                     =       GDO5000 +      GNO2                                   : ARR( 0.160E+12,  4531., 0.0);
+{   222} G1N5001                     =       GD02000 +      G2N3000                                : ARR( 0.200E+15,  7236., 0.0);
+{   223} G1N5002                     =       G202000 +      GND3000                                : ARR( 0.200E+15,  7207., 0.0);
+{   224} G1N5002                     =       GD03000 +      G2N2000                                : ARR( 0.200E+15,  6819., 0.0);
+{   225} G1N5003                     =       G2N5005                                               : ARR( 0.240E+12,  4177., 0.0);
+{   226} G2N5004 +GNO                =       G1N5004 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{   227} G2N5004 +GNO                =       GNN5004                                               : ARR( 0.182E-12,  -360., 0.0);
+{   228} G2N5004 +GHO2               =       GHN5004                                               : ARR( 0.242E-12, -1250., 0.0);
+{   229} G2N5004 +GNO3               =       G1N5004 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{   230} G2N5004 +MEPERO             =  0.340G1N5004 + 0.330GNO5005 + 0.330GNK5003                 : ARR( 0.565E-13,  -845., 0.0);
+{   231} G2N5004 +PERO1              =  0.460G1N5004 + 0.270GNO5005 + 0.270GNK5003                 : ARR( 0.434E-13,  -900., 0.0);
+{   232} G2N5004 +PERO2              =  0.400G1N5004 + 0.300GNO5005 + 0.300GNK5003                 : ARR( 0.162E-13, -1400., 0.0);
+{   233} G2N5004 +PERO3              =  0.460G1N5004 + 0.270GNO5005 + 0.270GNK5003                 : ARR( 0.488E-13, -1250., 0.0);
+{   234} G2N5004 +PERO5              =  0.460G1N5004 + 0.270GNO5005 + 0.270GNK5003                 : ARR( 0.183E-11,   450., 0.0);
+{   235} G2N5004 +PERO6              =  0.300G1N5004 + 0.350GNO5005 + 0.350GNK5003                 : ARR( 0.168E-13, -1300., 0.0);
+{   236} G2N5004 +PERO9              =  0.650G1N5004 + 0.350GNK5003                                : ARR( 0.100E-10,     0., 0.0);
+{   237} G2N3000 +GNO                =       G1N3000 +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{   238} G2N3000 +GNO                =       GNN3000                                               : ARR( 0.622E-13,  -360., 0.0);
+{   239} G2N3000 +GHO2               =       GHN3000                                               : ARR( 0.179E-12, -1250., 0.0);
+{   240} G2N3000 +GNO3               =       G1N3000 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{   241} G2N3000 +MEPERO             =  0.480G1N3000 + 0.260GNO3000 + 0.260GND3000                 : ARR( 0.146E-12,  -445., 0.0);
+{   242} G2N3000 +PERO1              =  0.600G1N3000 + 0.200GNO3000 + 0.200GND3000                 : ARR( 0.112E-12,  -500., 0.0);
+{   243} G2N3000 +PERO2              =  0.560G1N3000 + 0.220GNO3000 + 0.220GND3000                 : ARR( 0.418E-13, -1000., 0.0);
+{   244} G2N3000 +PERO3              =  0.600G1N3000 + 0.200GNO3000 + 0.200GND3000                 : ARR( 0.126E-12,  -850., 0.0);
+{   245} G2N3000 +PERO5              =  0.600G1N3000 + 0.200GNO3000 + 0.200GND3000                 : ARR( 0.473E-11,   850., 0.0);
+{   246} G2N3000 +PERO6              =  0.460G1N3000 + 0.270GNO3000 + 0.270GND3000                 : ARR( 0.434E-13,  -900., 0.0);
+{   247} G2N3000 +PERO9              =  0.800G1N3000 + 0.200GND3000                                : ARR( 0.100E-10,     0., 0.0);
+{   248} G2N2000 +GNO                =       G1N2000 +      GNO2                                   : ARR( 0.270E-11,  -360., 0.0);
+{   249} G2N2000 +GHO2               =       GHN2000                                               : ARR( 0.133E-12, -1250., 0.0);
+{   250} G2N2000 +GNO3               =       G1N2000 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{   251} G2N2000 +MEPERO             =  0.480G1N2000 + 0.260GNO2000 + 0.260GND2000                 : ARR( 0.164E-12,  -795., 0.0);
+{   252} G2N2000 +PERO1              =  0.600G1N2000 + 0.200GNO2000 + 0.200GND2000                 : ARR( 0.126E-12,  -850., 0.0);
+{   253} G2N2000 +PERO2              =  0.560G1N2000 + 0.220GNO2000 + 0.220GND2000                 : ARR( 0.471E-13, -1350., 0.0);
+{   254} G2N2000 +PERO3              =  0.600G1N2000 + 0.200GNO2000 + 0.200GND2000                 : ARR( 0.142E-12, -1200., 0.0);
+{   255} G2N2000 +PERO5              =  0.600G1N2000 + 0.200GNO2000 + 0.200GND2000                 : ARR( 0.533E-11,   500., 0.0);
+{   256} G2N2000 +PERO6              =  0.460G1N2000 + 0.270GNO2000 + 0.270GND2000                 : ARR( 0.488E-13, -1250., 0.0);
+{   257} G2N2000 +PERO9              =  0.800G1N2000 + 0.200GND2000                                : ARR( 0.100E-10,     0., 0.0);
+{   258} G2N5005 +GNO                =       G1N5005 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{   259} G2N5005 +GNO                =       GNN5005                                               : ARR( 0.182E-12,  -360., 0.0);
+{   260} G2N5005 +GHO2               =       GHN5005                                               : ARR( 0.242E-12, -1250., 0.0);
+{   261} G2N5005 +GNO3               =       G1N5005 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{   262} G2N5005 +MEPERO             =  0.480G1N5005 + 0.260GNO5005 + 0.260GND5001                 : ARR( 0.146E-12,  -445., 0.0);
+{   263} G2N5005 +PERO1              =  0.600G1N5005 + 0.200GNO5005 + 0.200GND5001                 : ARR( 0.112E-12,  -500., 0.0);
+{   264} G2N5005 +PERO2              =  0.560G1N5005 + 0.220GNO5005 + 0.220GND5001                 : ARR( 0.418E-13, -1000., 0.0);
+{   265} G2N5005 +PERO3              =  0.600G1N5005 + 0.200GNO5005 + 0.200GND5001                 : ARR( 0.126E-12,  -850., 0.0);
+{   266} G2N5005 +PERO5              =  0.600G1N5005 + 0.200GNO5005 + 0.200GND5001                 : ARR( 0.473E-11,   850., 0.0);
+{   267} G2N5005 +PERO6              =  0.460G1N5005 + 0.270GNO5005 + 0.270GND5001                 : ARR( 0.434E-13,  -900., 0.0);
+{   268} G2N5005 +PERO9              =  0.800G1N5005 + 0.200GND5001                                : ARR( 0.100E-10,     0., 0.0);
+{   269} G1N5004                     =       GND5001 +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{   270} G1N3000 +OXYGEN             =       GND3000 +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{   271} G1N2000 +OXYGEN             =       GND2000 +      GHO2                                   : ARR( 0.600E-13,   687., 0.0);
+{   272} G1N5005                     =       GNK5003 +      GHO2                                   : ARR( 0.800E+11,  2744., 0.0);
+{   273} GH05000 +GHO                =       G2H5000                                               : ARR( 0.150E-11,     0., 0.0);
+{   274} GH05000 +GHO                =       G2H5001                                               : ARR( 0.150E-11,     0., 0.0);
+{   275} GH05000 +GHO                =       GD05000 +      GHO                                    : ARR( 0.170E-10,     0., 0.0);
+{   276} GH05000 +GHO                =       G205000                                               : ARR( 0.201E-11,  -190., 0.0);
+{   277} GH05000+HV               =       G105000 +      GHO                                    :  0.100E+01*SUN;
+{   278} G2H5000 +GNO                =       G1H5000 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{   279} G2H5000 +GNO                =       GHN5006                                               : ARR( 0.182E-12,  -360., 0.0);
+{   280} G2H5000 +GHO2               =       GHH5000                                               : ARR( 0.242E-12, -1250., 0.0);
+{   281} G2H5000 +GNO3               =       G1H5000 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{   282} G2H5000 +MEPERO             =  0.480G1H5000 + 0.260GHO5002 + 0.260GHK5000                 : ARR( 0.616E-11,   905., 0.0);
+{   283} G2H5000 +PERO1              =  0.600G1H5000 + 0.200GHO5002 + 0.200GHK5000                 : ARR( 0.473E-11,   850., 0.0);
+{   284} G2H5000 +PERO2              =  0.560G1H5000 + 0.220GHO5002 + 0.220GHK5000                 : ARR( 0.177E-11,   350., 0.0);
+{   285} G2H5000 +PERO3              =  0.600G1H5000 + 0.200GHO5002 + 0.200GHK5000                 : ARR( 0.533E-11,   500., 0.0);
+{   286} G2H5000 +PERO5              =  0.600G1H5000 + 0.200GHO5002 + 0.200GHK5000                 : ARR( 0.200E-09,  2200., 0.0);
+{   287} G2H5000 +PERO6              =  0.460G1H5000 + 0.270GHO5002 + 0.270GHK5000                 : ARR( 0.183E-11,   450., 0.0);
+{   288} G2H5000 +PERO9              =  0.800G1H5000 + 0.200GHK5000                                : ARR( 0.100E-10,     0., 0.0);
+{   289} G2H5001 +GNO                =       G1H5001 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{   290} G2H5001 +GNO                =       GHN5007                                               : ARR( 0.182E-12,  -360., 0.0);
+{   291} G2H5001 +GHO2               =       GHH5001                                               : ARR( 0.242E-12, -1250., 0.0);
+{   292} G2H5001 +GNO3               =       G1H5001 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{   293} G2H5001 +MEPERO             =  0.340G1H5001 + 0.330GHO5003 + 0.330GHK5001                 : ARR( 0.565E-13,  -845., 0.0);
+{   294} G2H5001 +PERO1              =  0.460G1H5001 + 0.270GHO5003 + 0.270GHK5001                 : ARR( 0.434E-13,  -900., 0.0);
+{   295} G2H5001 +PERO2              =  0.400G1H5001 + 0.300GHO5003 + 0.300GHK5001                 : ARR( 0.162E-13, -1400., 0.0);
+{   296} G2H5001 +PERO3              =  0.460G1H5001 + 0.270GHO5003 + 0.270GHK5001                 : ARR( 0.488E-13, -1250., 0.0);
+{   297} G2H5001 +PERO5              =  0.460G1H5001 + 0.270GHO5003 + 0.270GHK5001                 : ARR( 0.183E-11,   450., 0.0);
+{   298} G2H5001 +PERO6              =  0.300G1H5001 + 0.350GHO5003 + 0.350GHK5001                 : ARR( 0.168E-13, -1300., 0.0);
+{   299} G2H5001 +PERO9              =  0.650G1H5001 + 0.350GHK5001                                : ARR( 0.100E-10,     0., 0.0);
+{   300} G1H5000                     =       G202000 +      GHD3000                                : ARR( 0.200E+15,  7207., 0.0);
+{   301} G1H5000                     =       GD03000 +      G2H2000                                : ARR( 0.200E+15,  6819., 0.0);
+{   302} G1H5001                     =       G2H5002                                               : ARR( 0.240E+12,  4177., 0.0);
+{   303} G1H5001                     =       GD04000 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  7140., 0.0);
+{   304} G2H2000 +GNO                =       G1H2000 +      GNO2                                   : ARR( 0.270E-11,  -360., 0.0);
+{   305} G2H2000 +GHO2               =       GHH2000                                               : ARR( 0.133E-12, -1250., 0.0);
+{   306} G2H2000 +GNO3               =       G1H2000 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{   307} G2H2000 +MEPERO             =  0.480G1H2000 + 0.260GHO2000 + 0.260GHD2000                 : ARR( 0.164E-12,  -795., 0.0);
+{   308} G2H2000 +PERO1              =  0.600G1H2000 + 0.200GHO2000 + 0.200GHD2000                 : ARR( 0.126E-12,  -850., 0.0);
+{   309} G2H2000 +PERO2              =  0.560G1H2000 + 0.220GHO2000 + 0.220GHD2000                 : ARR( 0.471E-13, -1350., 0.0);
+{   310} G2H2000 +PERO3              =  0.600G1H2000 + 0.200GHO2000 + 0.200GHD2000                 : ARR( 0.142E-12, -1200., 0.0);
+{   311} G2H2000 +PERO5              =  0.600G1H2000 + 0.200GHO2000 + 0.200GHD2000                 : ARR( 0.533E-11,   500., 0.0);
+{   312} G2H2000 +PERO6              =  0.460G1H2000 + 0.270GHO2000 + 0.270GHD2000                 : ARR( 0.488E-13, -1250., 0.0);
+{   313} G2H2000 +PERO9              =  0.800G1H2000 + 0.200GHD2000                                : ARR( 0.100E-10,     0., 0.0);
+{   314} G2H5002 +GNO                =       G1H5002 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{   315} G2H5002 +GNO                =       GHN5008                                               : ARR( 0.182E-12,  -360., 0.0);
+{   316} G2H5002 +GHO2               =       GHH5002                                               : ARR( 0.242E-12, -1250., 0.0);
+{   317} G2H5002 +GNO3               =       G1H5002 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{   318} G2H5002 +MEPERO             =  0.480G1H5002 + 0.260GHO5004 + 0.260GHD5000                 : ARR( 0.146E-12,  -445., 0.0);
+{   319} G2H5002 +PERO1              =  0.600G1H5002 + 0.200GHO5004 + 0.200GHD5000                 : ARR( 0.112E-12,  -500., 0.0);
+{   320} G2H5002 +PERO2              =  0.560G1H5002 + 0.220GHO5004 + 0.220GHD5000                 : ARR( 0.418E-13, -1000., 0.0);
+{   321} G2H5002 +PERO3              =  0.600G1H5002 + 0.200GHO5004 + 0.200GHD5000                 : ARR( 0.126E-12,  -850., 0.0);
+{   322} G2H5002 +PERO5              =  0.600G1H5002 + 0.200GHO5004 + 0.200GHD5000                 : ARR( 0.473E-11,   850., 0.0);
+{   323} G2H5002 +PERO6              =  0.460G1H5002 + 0.270GHO5004 + 0.270GHD5000                 : ARR( 0.434E-13,  -900., 0.0);
+{   324} G2H5002 +PERO9              =  0.800G1H5002 + 0.200GHD5000                                : ARR( 0.100E-10,     0., 0.0);
+{   325} G1H2000 +OXYGEN             =       GHD2000 +      GHO2                                   : ARR( 0.600E-13,   688., 0.0);
+{   326} G1H5002                     =       GHK5002 +      GHO2                                   : ARR( 0.800E+11,  2025., 0.0);
+{   327} GO05000 +GHO                =       G2O5000                                               : ARR( 0.159E-11,     0., 0.0);
+{   328} GO05000 +GHO                =       G2O5002                                               : ARR( 0.196E-11,     0., 0.0);
+{   329} GO05000 +GHO                =       G2O5003                                               : ARR( 0.196E-11,     0., 0.0);
+{   330} GO05000 +GHO                =       GD05000 +      GHO2                                   : ARR( 0.558E-11,     0., 0.0);
+{   331} G2O5002 +GNO                =       G1O5002 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{   332} G2O5002 +GNO                =       GNO5006                                               : ARR( 0.182E-12,  -360., 0.0);
+{   333} G2O5002 +GHO2               =       GHO5005                                               : ARR( 0.242E-12, -1250., 0.0);
+{   334} G2O5002 +GNO3               =       G1O5002 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{   335} G2O5002 +MEPERO             =  0.480G1O5002 + 0.260GOO5001 + 0.260GKO5001                 : ARR( 0.616E-11,   905., 0.0);
+{   336} G2O5002 +PERO1              =  0.600G1O5002 + 0.200GOO5001 + 0.200GKO5001                 : ARR( 0.473E-11,   850., 0.0);
+{   337} G2O5002 +PERO2              =  0.560G1O5002 + 0.220GOO5001 + 0.220GKO5001                 : ARR( 0.177E-11,   350., 0.0);
+{   338} G2O5002 +PERO3              =  0.600G1O5002 + 0.200GOO5001 + 0.200GKO5001                 : ARR( 0.533E-11,   500., 0.0);
+{   339} G2O5002 +PERO5              =  0.600G1O5002 + 0.200GOO5001 + 0.200GKO5001                 : ARR( 0.200E-09,  2200., 0.0);
+{   340} G2O5002 +PERO6              =  0.460G1O5002 + 0.270GOO5001 + 0.270GKO5001                 : ARR( 0.183E-11,   450., 0.0);
+{   341} G2O5002 +PERO9              =  0.800G1O5002 + 0.200GKO5001                                : ARR( 0.100E-10,     0., 0.0);
+{   342} G2O5003 +GNO                =       G1O5003 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{   343} G2O5003 +GNO                =       GNO5007                                               : ARR( 0.182E-12,  -360., 0.0);
+{   344} G2O5003 +GHO2               =       GHO5006                                               : ARR( 0.242E-12, -1250., 0.0);
+{   345} G2O5003 +GNO3               =       G1O5003 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{   346} G2O5003 +MEPERO             =  0.340G1O5003 + 0.330GOO5002 + 0.330GKO5002                 : ARR( 0.565E-13,  -845., 0.0);
+{   347} G2O5003 +PERO1              =  0.460G1O5003 + 0.270GOO5002 + 0.270GKO5002                 : ARR( 0.434E-13,  -900., 0.0);
+{   348} G2O5003 +PERO2              =  0.400G1O5003 + 0.300GOO5002 + 0.300GKO5002                 : ARR( 0.162E-13, -1400., 0.0);
+{   349} G2O5003 +PERO3              =  0.460G1O5003 + 0.270GOO5002 + 0.270GKO5002                 : ARR( 0.488E-13, -1250., 0.0);
+{   350} G2O5003 +PERO5              =  0.460G1O5003 + 0.270GOO5002 + 0.270GKO5002                 : ARR( 0.183E-11,   450., 0.0);
+{   351} G2O5003 +PERO6              =  0.300G1O5003 + 0.350GOO5002 + 0.350GKO5002                 : ARR( 0.168E-13, -1300., 0.0);
+{   352} G2O5003 +PERO9              =  0.650G1O5003 + 0.350GKO5002                                : ARR( 0.100E-10,     0., 0.0);
+{   353} G1O5002                     =       G202000 +      GDO3000                                : ARR( 0.200E+15,  7207., 0.0);
+{   354} G1O5002                     =       GD03000 +      G2O2000                                : ARR( 0.200E+15,  6819., 0.0);
+{   355} G1O5003                     =       G2O5004                                               : ARR( 0.240E+12,  4177., 0.0);
+{   356} G1O5003                     =       GD04000 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  5041., 0.0);
+{   357} G2O2000 +GNO                =       G1O2000 +      GNO2                                   : ARR( 0.270E-11,  -360., 0.0);
+{   358} G2O2000 +GHO2               =       GHO2000                                               : ARR( 0.133E-12, -1250., 0.0);
+{   359} G2O2000 +GNO3               =       G1O2000 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{   360} G2O2000 +MEPERO             =  0.480G1O2000 + 0.260GOO2000 + 0.260GDO2000                 : ARR( 0.164E-12,  -795., 0.0);
+{   361} G2O2000 +PERO1              =  0.600G1O2000 + 0.200GOO2000 + 0.200GDO2000                 : ARR( 0.126E-12,  -850., 0.0);
+{   362} G2O2000 +PERO2              =  0.560G1O2000 + 0.220GOO2000 + 0.220GDO2000                 : ARR( 0.471E-13, -1350., 0.0);
+{   363} G2O2000 +PERO3              =  0.600G1O2000 + 0.200GOO2000 + 0.200GDO2000                 : ARR( 0.142E-12, -1200., 0.0);
+{   364} G2O2000 +PERO5              =  0.600G1O2000 + 0.200GOO2000 + 0.200GDO2000                 : ARR( 0.533E-11,   500., 0.0);
+{   365} G2O2000 +PERO6              =  0.460G1O2000 + 0.270GOO2000 + 0.270GDO2000                 : ARR( 0.488E-13, -1250., 0.0);
+{   366} G2O2000 +PERO9              =  0.800G1O2000 + 0.200GDO2000                                : ARR( 0.100E-10,     0., 0.0);
+{   367} G2O5004 +GNO                =       G1O5004 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{   368} G2O5004 +GNO                =       GNO5008                                               : ARR( 0.182E-12,  -360., 0.0);
+{   369} G2O5004 +GHO2               =       GHO5007                                               : ARR( 0.242E-12, -1250., 0.0);
+{   370} G2O5004 +GNO3               =       G1O5004 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{   371} G2O5004 +MEPERO             =  0.480G1O5004 + 0.260GOO5003 + 0.260GDO5001                 : ARR( 0.146E-12,  -445., 0.0);
+{   372} G2O5004 +PERO1              =  0.600G1O5004 + 0.200GOO5003 + 0.200GDO5001                 : ARR( 0.112E-12,  -500., 0.0);
+{   373} G2O5004 +PERO2              =  0.560G1O5004 + 0.220GOO5003 + 0.220GDO5001                 : ARR( 0.418E-13, -1000., 0.0);
+{   374} G2O5004 +PERO3              =  0.600G1O5004 + 0.200GOO5003 + 0.200GDO5001                 : ARR( 0.126E-12,  -850., 0.0);
+{   375} G2O5004 +PERO5              =  0.600G1O5004 + 0.200GOO5003 + 0.200GDO5001                 : ARR( 0.473E-11,   850., 0.0);
+{   376} G2O5004 +PERO6              =  0.460G1O5004 + 0.270GOO5003 + 0.270GDO5001                 : ARR( 0.434E-13,  -900., 0.0);
+{   377} G2O5004 +PERO9              =  0.800G1O5004 + 0.200GDO5001                                : ARR( 0.100E-10,     0., 0.0);
+{   378} G1O2000 +OXYGEN             =       GDO2000 +      GHO2                                   : ARR( 0.600E-13,   688., 0.0);
+{   379} G1O2000                     =  2.000GCH2O   +      GHO2                                   : ARR( 0.200E+15,  6163., 0.0);
+{   380} G1O5004                     =       GKO5003 +      GHO2                                   : ARR( 0.800E+11,  2025., 0.0);
+{   381} GD05000 +GHO                =       G2D5000                                               : ARR( 0.112E-11,  -448., 0.0);
+{   382} GD05000 +GHO                =       G3K5000                                               : ARR( 0.522E-11,  -448., 0.0);
+{   383} GD05000 +GNO3               =       G3K5000 +      GHNO3                                  : ARR( 0.164E-13,     0., 0.0);
+{   384} GD05000+HV               =       G204000 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{   385} GD05000+HV               =       GD02000 +      GU03000                                :  0.100E+01*SUN;
+{   386} G2D5000 +GNO                =       G1D5000 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{   387} G2D5000 +GNO                =       GND5002                                               : ARR( 0.182E-12,  -360., 0.0);
+{   388} G2D5000 +GHO2               =       GHD5001                                               : ARR( 0.242E-12, -1250., 0.0);
+{   389} G2D5000 +GNO3               =       G1D5000 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{   390} G2D5000 +MEPERO             =  0.480G1D5000 + 0.260GDO5002 + 0.260GDK5000                 : ARR( 0.616E-11,   905., 0.0);
+{   391} G2D5000 +PERO1              =  0.600G1D5000 + 0.200GDO5002 + 0.200GDK5000                 : ARR( 0.473E-11,   850., 0.0);
+{   392} G2D5000 +PERO2              =  0.560G1D5000 + 0.220GDO5002 + 0.220GDK5000                 : ARR( 0.177E-11,   350., 0.0);
+{   393} G2D5000 +PERO3              =  0.600G1D5000 + 0.200GDO5002 + 0.200GDK5000                 : ARR( 0.533E-11,   500., 0.0);
+{   394} G2D5000 +PERO5              =  0.600G1D5000 + 0.200GDO5002 + 0.200GDK5000                 : ARR( 0.200E-09,  2200., 0.0);
+{   395} G2D5000 +PERO6              =  0.460G1D5000 + 0.270GDO5002 + 0.270GDK5000                 : ARR( 0.183E-11,   450., 0.0);
+{   396} G2D5000 +PERO9              =  0.800G1D5000 + 0.200GDK5000                                : ARR( 0.100E-10,     0., 0.0);
+{   397} G3K5000 +GHO2               =  0.800GG05000 + 0.200GA05000 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{   398} G3K5000 +GNO                =       G204000 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{   399} G3K5000 +GNO2               =       GP05000                                               : ARR( 0.330E-08,     0.,-1.0);
+{   400} G3K5000 +GNO3               =       G204000 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{   401} G3K5000 +MEPERO             =  0.685G204000 + 0.315GA05000 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{   402} G3K5000 +PERO1              =  0.800G204000 + 0.200GA05000 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{   403} G3K5000 +PERO2              =  0.750G204000 + 0.250GA05000 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{   404} G3K5000 +PERO3              =  0.800G204000 + 0.200GA05000 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{   405} G3K5000 +PERO5              =  0.650G204000 + 0.350GA05000 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{   406} G3K5000 +PERO6              =  0.650G204000 + 0.350GA05000 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{   407} G3K5000 +PERO9              =       G204000 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{   408} G204000 +GNO                =       G104000 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{   409} G204000 +GNO                =       GN04000                                               : ARR( 0.111E-12,  -360., 0.0);
+{   410} G204000 +GHO2               =       GH04000                                               : ARR( 0.214E-12, -1250., 0.0);
+{   411} G204000 +GNO3               =       G104000 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{   412} G204000 +MEPERO             =  0.480G104000 + 0.260GO04000 + 0.260GD04000                 : ARR( 0.146E-12,  -445., 0.0);
+{   413} G204000 +PERO1              =  0.600G104000 + 0.200GO04000 + 0.200GD04000                 : ARR( 0.112E-12,  -500., 0.0);
+{   414} G204000 +PERO2              =  0.560G104000 + 0.220GO04000 + 0.220GD04000                 : ARR( 0.418E-13, -1000., 0.0);
+{   415} G204000 +PERO3              =  0.600G104000 + 0.200GO04000 + 0.200GD04000                 : ARR( 0.126E-12,  -850., 0.0);
+{   416} G204000 +PERO5              =  0.600G104000 + 0.200GO04000 + 0.200GD04000                 : ARR( 0.473E-11,   850., 0.0);
+{   417} G204000 +PERO6              =  0.460G104000 + 0.270GO04000 + 0.270GD04000                 : ARR( 0.434E-13,  -900., 0.0);
+{   418} G204000 +PERO9              =  0.800G104000 + 0.200GD04000                                : ARR( 0.100E-10,     0., 0.0);
+{   419} G1D5000                     =       G202000 +      GDD3000                                : ARR( 0.200E+15,  6824., 0.0);
+{   420} G1D5000                     =       GD03000 +      G2D2000                                : ARR( 0.200E+15,  6974., 0.0);
+{   421} G104000 +OXYGEN             =       GD04000 +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{   422} G104000                     =       G2O4000                                               : ARR( 0.240E+12,  4177., 0.0);
+{   423} G2D2000 +GNO                =       G1D2000 +      GNO2                                   : ARR( 0.270E-11,  -360., 0.0);
+{   424} G2D2000 +GHO2               =       GHD2000                                               : ARR( 0.133E-12, -1250., 0.0);
+{   425} G2D2000 +GNO3               =       G1D2000 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{   426} G2D2000 +MEPERO             =  0.480G1D2000 + 0.260GDO2000 + 0.260GDD2000                 : ARR( 0.164E-12,  -795., 0.0);
+{   427} G2D2000 +PERO1              =  0.600G1D2000 + 0.200GDO2000 + 0.200GDD2000                 : ARR( 0.126E-12,  -850., 0.0);
+{   428} G2D2000 +PERO2              =  0.560G1D2000 + 0.220GDO2000 + 0.220GDD2000                 : ARR( 0.471E-13, -1350., 0.0);
+{   429} G2D2000 +PERO3              =  0.600G1D2000 + 0.200GDO2000 + 0.200GDD2000                 : ARR( 0.142E-12, -1200., 0.0);
+{   430} G2D2000 +PERO5              =  0.600G1D2000 + 0.200GDO2000 + 0.200GDD2000                 : ARR( 0.533E-11,   500., 0.0);
+{   431} G2D2000 +PERO6              =  0.460G1D2000 + 0.270GDO2000 + 0.270GDD2000                 : ARR( 0.488E-13, -1250., 0.0);
+{   432} G2D2000 +PERO9              =  0.800G1D2000 + 0.200GDD2000                                : ARR( 0.100E-10,     0., 0.0);
+{   433} G2O4000 +GNO                =       G1O4000 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{   434} G2O4000 +GNO                =       GNO4000                                               : ARR( 0.111E-12,  -360., 0.0);
+{   435} G2O4000 +GHO2               =       GHO4000                                               : ARR( 0.214E-12, -1250., 0.0);
+{   436} G2O4000 +GNO3               =       G1O4000 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{   437} G2O4000 +MEPERO             =  0.480G1O4000 + 0.260GOO4000 + 0.260GDO4000                 : ARR( 0.146E-12,  -445., 0.0);
+{   438} G2O4000 +PERO1              =  0.600G1O4000 + 0.200GOO4000 + 0.200GDO4000                 : ARR( 0.112E-12,  -500., 0.0);
+{   439} G2O4000 +PERO2              =  0.560G1O4000 + 0.220GOO4000 + 0.220GDO4000                 : ARR( 0.418E-13, -1000., 0.0);
+{   440} G2O4000 +PERO3              =  0.600G1O4000 + 0.200GOO4000 + 0.200GDO4000                 : ARR( 0.126E-12,  -850., 0.0);
+{   441} G2O4000 +PERO5              =  0.600G1O4000 + 0.200GOO4000 + 0.200GDO4000                 : ARR( 0.473E-11,   850., 0.0);
+{   442} G2O4000 +PERO6              =  0.460G1O4000 + 0.270GOO4000 + 0.270GDO4000                 : ARR( 0.434E-13,  -900., 0.0);
+{   443} G2O4000 +PERO9              =  0.800G1O4000 + 0.200GDO4000                                : ARR( 0.100E-10,     0., 0.0);
+{   444} G1D2000 +OXYGEN             =       GDD2000 +      GHO2                                   : ARR( 0.600E-13,  1177., 0.0);
+{   445} G1D2000                     =       GCO     +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  6323., 0.0);
+{   446} G1O4000                     =       GDO4000 +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{   447} GN05001 +GHO                =       G2N5006                                               : ARR( 0.183E-12,     0., 0.0);
+{   448} GN05001 +GHO                =       G2N5007                                               : ARR( 0.125E-11,     0., 0.0);
+{   449} GN05001 +GHO                =       G2N5008                                               : ARR( 0.309E-12,     0., 0.0);
+{   450} GN05001 +GHO                =       GK05000 +      GNO2                                   : ARR( 0.105E-12,     0., 0.0);
+{   451} GN05001+HV               =       G105001 +      GNO2                                   :  0.100E+01*SUN;
+{   452} G2N5006 +GNO                =       G1N5006 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{   453} G2N5006 +GNO                =       GNN5001                                               : ARR( 0.182E-12,  -360., 0.0);
+{   454} G2N5006 +GHO2               =       GHN5009                                               : ARR( 0.242E-12, -1250., 0.0);
+{   455} G2N5006 +GNO3               =       G1N5006 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{   456} G2N5006 +MEPERO             =  0.480G1N5006 + 0.260GNO5000 + 0.260GND5003                 : ARR( 0.146E-12,  -445., 0.0);
+{   457} G2N5006 +PERO1              =  0.600G1N5006 + 0.200GNO5000 + 0.200GND5003                 : ARR( 0.112E-12,  -500., 0.0);
+{   458} G2N5006 +PERO2              =  0.560G1N5006 + 0.220GNO5000 + 0.220GND5003                 : ARR( 0.418E-13, -1000., 0.0);
+{   459} G2N5006 +PERO3              =  0.600G1N5006 + 0.200GNO5000 + 0.200GND5003                 : ARR( 0.126E-12,  -850., 0.0);
+{   460} G2N5006 +PERO5              =  0.600G1N5006 + 0.200GNO5000 + 0.200GND5003                 : ARR( 0.473E-11,   850., 0.0);
+{   461} G2N5006 +PERO6              =  0.460G1N5006 + 0.270GNO5000 + 0.270GND5003                 : ARR( 0.434E-13,  -900., 0.0);
+{   462} G2N5006 +PERO9              =  0.800G1N5006 + 0.200GND5003                                : ARR( 0.100E-10,     0., 0.0);
+{   463} G2N5007 +GNO                =       G1N5007 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{   464} G2N5007 +GNO                =       GNN5006                                               : ARR( 0.182E-12,  -360., 0.0);
+{   465} G2N5007 +GHO2               =       GHN500A                                               : ARR( 0.242E-12, -1250., 0.0);
+{   466} G2N5007 +GNO3               =       G1N5007 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{   467} G2N5007 +MEPERO             =  0.480G1N5007 + 0.260GNO5009 + 0.260GNK5004                 : ARR( 0.616E-11,   905., 0.0);
+{   468} G2N5007 +PERO1              =  0.600G1N5007 + 0.200GNO5009 + 0.200GNK5004                 : ARR( 0.473E-11,   850., 0.0);
+{   469} G2N5007 +PERO2              =  0.560G1N5007 + 0.220GNO5009 + 0.220GNK5004                 : ARR( 0.177E-11,   350., 0.0);
+{   470} G2N5007 +PERO3              =  0.600G1N5007 + 0.200GNO5009 + 0.200GNK5004                 : ARR( 0.533E-11,   500., 0.0);
+{   471} G2N5007 +PERO5              =  0.600G1N5007 + 0.200GNO5009 + 0.200GNK5004                 : ARR( 0.200E-09,  2200., 0.0);
+{   472} G2N5007 +PERO6              =  0.460G1N5007 + 0.270GNO5009 + 0.270GNK5004                 : ARR( 0.183E-11,   450., 0.0);
+{   473} G2N5007 +PERO9              =  0.800G1N5007 + 0.200GNK5004                                : ARR( 0.100E-10,     0., 0.0);
+{   474} G2N5008 +GNO                =       G1N5008 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{   475} G2N5008 +GNO                =       GNN5007                                               : ARR( 0.182E-12,  -360., 0.0);
+{   476} G2N5008 +GHO2               =       GHN500B                                               : ARR( 0.242E-12, -1250., 0.0);
+{   477} G2N5008 +GNO3               =       G1N5008 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{   478} G2N5008 +MEPERO             =  0.340G1N5008 + 0.330GNO500A + 0.330GNK5005                 : ARR( 0.565E-13,  -845., 0.0);
+{   479} G2N5008 +PERO1              =  0.460G1N5008 + 0.270GNO500A + 0.270GNK5005                 : ARR( 0.434E-13,  -900., 0.0);
+{   480} G2N5008 +PERO2              =  0.400G1N5008 + 0.300GNO500A + 0.300GNK5005                 : ARR( 0.162E-13, -1400., 0.0);
+{   481} G2N5008 +PERO3              =  0.460G1N5008 + 0.270GNO500A + 0.270GNK5005                 : ARR( 0.488E-13, -1250., 0.0);
+{   482} G2N5008 +PERO5              =  0.460G1N5008 + 0.270GNO500A + 0.270GNK5005                 : ARR( 0.183E-11,   450., 0.0);
+{   483} G2N5008 +PERO6              =  0.300G1N5008 + 0.350GNO500A + 0.350GNK5005                 : ARR( 0.168E-13, -1300., 0.0);
+{   484} G2N5008 +PERO9              =  0.650G1N5008 + 0.350GNK5005                                : ARR( 0.100E-10,     0., 0.0);
+{   485} G1N5006 +OXYGEN             =       GND5003 +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{   486} G1N5006                     =       GKO5000 +      GNO2                                   : ARR( 0.800E+11,  4116., 0.0);
+{   487} G1N5007                     =       G2N5009                                               : ARR( 0.240E+12,  4897., 0.0);
+{   488} G1N5007                     =       G2N3001 +      GD02000                                : ARR( 0.200E+15,  6731., 0.0);
+{   489} G1N5008                     =       GD02000 +      GD03000 +      GNO2                    : ARR( 0.200E+15,  6455., 0.0);
+{   490} G1N5008                     =       GND3001 +      G202000                                : ARR( 0.200E+15,  7461., 0.0);
+{   491} G2N5009 +GNO                =       G1N5009 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{   492} G2N5009 +GNO                =       GNN5008                                               : ARR( 0.182E-12,  -360., 0.0);
+{   493} G2N5009 +GHO2               =       GHN500C                                               : ARR( 0.242E-12, -1250., 0.0);
+{   494} G2N5009 +GNO3               =       G1N5009 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{   495} G2N5009 +MEPERO             =  0.480G1N5009 + 0.260GNO500B + 0.260GND5004                 : ARR( 0.164E-12,  -795., 0.0);
+{   496} G2N5009 +PERO1              =  0.600G1N5009 + 0.200GNO500B + 0.200GND5004                 : ARR( 0.126E-12,  -850., 0.0);
+{   497} G2N5009 +PERO2              =  0.560G1N5009 + 0.220GNO500B + 0.220GND5004                 : ARR( 0.471E-13, -1350., 0.0);
+{   498} G2N5009 +PERO3              =  0.600G1N5009 + 0.200GNO500B + 0.200GND5004                 : ARR( 0.142E-12, -1200., 0.0);
+{   499} G2N5009 +PERO5              =  0.600G1N5009 + 0.200GNO500B + 0.200GND5004                 : ARR( 0.533E-11,   500., 0.0);
+{   500} G2N5009 +PERO6              =  0.460G1N5009 + 0.270GNO500B + 0.270GND5004                 : ARR( 0.488E-13, -1250., 0.0);
+{   501} G2N5009 +PERO9              =  0.800G1N5009 + 0.200GND5004                                : ARR( 0.100E-10,     0., 0.0);
+{   502} G2N3001 +GNO                =       G1N3001 +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{   503} G2N3001 +GNO                =       GNN3001                                               : ARR( 0.622E-13,  -360., 0.0);
+{   504} G2N3001 +GHO2               =       GHN3001                                               : ARR( 0.179E-12, -1250., 0.0);
+{   505} G2N3001 +GNO3               =       G1N3001 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{   506} G2N3001 +MEPERO             =  0.480G1N3001 + 0.260GNO3001 + 0.260GND3001                 : ARR( 0.164E-12,  -795., 0.0);
+{   507} G2N3001 +PERO1              =  0.600G1N3001 + 0.200GNO3001 + 0.200GND3001                 : ARR( 0.126E-12,  -850., 0.0);
+{   508} G2N3001 +PERO2              =  0.560G1N3001 + 0.220GNO3001 + 0.220GND3001                 : ARR( 0.471E-13, -1350., 0.0);
+{   509} G2N3001 +PERO3              =  0.600G1N3001 + 0.200GNO3001 + 0.200GND3001                 : ARR( 0.142E-12, -1200., 0.0);
+{   510} G2N3001 +PERO5              =  0.600G1N3001 + 0.200GNO3001 + 0.200GND3001                 : ARR( 0.533E-11,   500., 0.0);
+{   511} G2N3001 +PERO6              =  0.460G1N3001 + 0.270GNO3001 + 0.270GND3001                 : ARR( 0.488E-13, -1250., 0.0);
+{   512} G2N3001 +PERO9              =  0.800G1N3001 + 0.200GND3001                                : ARR( 0.100E-10,     0., 0.0);
+{   513} G1N5009                     =       GNK5006 +      GHO2                                   : ARR( 0.800E+11,  2117., 0.0);
+{   514} G1N3001 +OXYGEN             =       GND3001 +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{   515} G1N3001                     =       GD02000 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7578., 0.0);
+{   516} GH05001 +GHO                =       GK05000 +      GHO                                    : ARR( 0.361E-10,     0., 0.0);
+{   517} GH05001 +GHO                =       G205001                                               : ARR( 0.205E-11,  -190., 0.0);
+{   518} GH05001+HV               =       G105001 +      GHO                                    :  0.100E+01*SUN;
+{   519} GO05001 +GHO                =       G2O5005                                               : ARR( 0.124E-11,     0., 0.0);
+{   520} GO05001 +GHO                =       G2O5006                                               : ARR( 0.152E-11,     0., 0.0);
+{   521} GO05001 +GHO                =       GK05000 +      GHO2                                   : ARR( 0.904E-11,     0., 0.0);
+{   522} G2O5005 +GNO                =       G1O5005 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{   523} G2O5005 +GNO                =       GNO5009                                               : ARR( 0.182E-12,  -360., 0.0);
+{   524} G2O5005 +GHO2               =       GHO5008                                               : ARR( 0.242E-12, -1250., 0.0);
+{   525} G2O5005 +GNO3               =       G1O5005 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{   526} G2O5005 +MEPERO             =  0.480G1O5005 + 0.260GOO5004 + 0.260GKO5004                 : ARR( 0.616E-11,   905., 0.0);
+{   527} G2O5005 +PERO1              =  0.600G1O5005 + 0.200GOO5004 + 0.200GKO5004                 : ARR( 0.473E-11,   850., 0.0);
+{   528} G2O5005 +PERO2              =  0.560G1O5005 + 0.220GOO5004 + 0.220GKO5004                 : ARR( 0.177E-11,   350., 0.0);
+{   529} G2O5005 +PERO3              =  0.600G1O5005 + 0.200GOO5004 + 0.200GKO5004                 : ARR( 0.533E-11,   500., 0.0);
+{   530} G2O5005 +PERO5              =  0.600G1O5005 + 0.200GOO5004 + 0.200GKO5004                 : ARR( 0.200E-09,  2200., 0.0);
+{   531} G2O5005 +PERO6              =  0.460G1O5005 + 0.270GOO5004 + 0.270GKO5004                 : ARR( 0.183E-11,   450., 0.0);
+{   532} G2O5005 +PERO9              =  0.800G1O5005 + 0.200GKO5004                                : ARR( 0.100E-10,     0., 0.0);
+{   533} G2O5006 +GNO                =       G1O5006 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{   534} G2O5006 +GNO                =       GNO500C                                               : ARR( 0.182E-12,  -360., 0.0);
+{   535} G2O5006 +GHO2               =       GHO5009                                               : ARR( 0.242E-12, -1250., 0.0);
+{   536} G2O5006 +GNO3               =       G1O5006 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{   537} G2O5006 +MEPERO             =  0.340G1O5006 + 0.330GOO5005 + 0.330GKO5005                 : ARR( 0.565E-13,  -845., 0.0);
+{   538} G2O5006 +PERO1              =  0.460G1O5006 + 0.270GOO5005 + 0.270GKO5005                 : ARR( 0.434E-13,  -900., 0.0);
+{   539} G2O5006 +PERO2              =  0.400G1O5006 + 0.300GOO5005 + 0.300GKO5005                 : ARR( 0.162E-13, -1400., 0.0);
+{   540} G2O5006 +PERO3              =  0.460G1O5006 + 0.270GOO5005 + 0.270GKO5005                 : ARR( 0.488E-13, -1250., 0.0);
+{   541} G2O5006 +PERO5              =  0.460G1O5006 + 0.270GOO5005 + 0.270GKO5005                 : ARR( 0.183E-11,   450., 0.0);
+{   542} G2O5006 +PERO6              =  0.300G1O5006 + 0.350GOO5005 + 0.350GKO5005                 : ARR( 0.168E-13, -1300., 0.0);
+{   543} G2O5006 +PERO9              =  0.650G1O5006 + 0.350GKO5005                                : ARR( 0.100E-10,     0., 0.0);
+{   544} G1O5005                     =       G2O5007                                               : ARR( 0.240E+12,  4177., 0.0);
+{   545} G1O5005                     =       G2O3000 +      GD02000                                : ARR( 0.200E+15,  6731., 0.0);
+{   546} G1O5006                     =       GD02000 +      GD03000 +      GHO2                    : ARR( 0.200E+15,  3708., 0.0);
+{   547} G2O5007 +GNO                =       G1O5007 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{   548} G2O5007 +GNO                =       GNO500D                                               : ARR( 0.182E-12,  -360., 0.0);
+{   549} G2O5007 +GHO2               =       GHO500A                                               : ARR( 0.242E-12, -1250., 0.0);
+{   550} G2O5007 +GNO3               =       G1O5007 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{   551} G2O5007 +MEPERO             =  0.480G1O5007 + 0.260GOO5006 + 0.260GDO5003                 : ARR( 0.164E-12,  -795., 0.0);
+{   552} G2O5007 +PERO1              =  0.600G1O5007 + 0.200GOO5006 + 0.200GDO5003                 : ARR( 0.126E-12,  -850., 0.0);
+{   553} G2O5007 +PERO2              =  0.560G1O5007 + 0.220GOO5006 + 0.220GDO5003                 : ARR( 0.471E-13, -1350., 0.0);
+{   554} G2O5007 +PERO3              =  0.600G1O5007 + 0.200GOO5006 + 0.200GDO5003                 : ARR( 0.142E-12, -1200., 0.0);
+{   555} G2O5007 +PERO5              =  0.600G1O5007 + 0.200GOO5006 + 0.200GDO5003                 : ARR( 0.533E-11,   500., 0.0);
+{   556} G2O5007 +PERO6              =  0.460G1O5007 + 0.270GOO5006 + 0.270GDO5003                 : ARR( 0.488E-13, -1250., 0.0);
+{   557} G2O5007 +PERO9              =  0.800G1O5007 + 0.200GDO5003                                : ARR( 0.100E-10,     0., 0.0);
+{   558} G2O3000 +GNO                =       G1O3000 +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{   559} G2O3000 +GNO                =       GNO3002                                               : ARR( 0.622E-13,  -360., 0.0);
+{   560} G2O3000 +GHO2               =       GHO3000                                               : ARR( 0.179E-12, -1250., 0.0);
+{   561} G2O3000 +GNO3               =       G1O3000 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{   562} G2O3000 +MEPERO             =  0.480G1O3000 + 0.260GOO3000 + 0.260GDO3001                 : ARR( 0.164E-12,  -795., 0.0);
+{   563} G2O3000 +PERO1              =  0.600G1O3000 + 0.200GOO3000 + 0.200GDO3001                 : ARR( 0.126E-12,  -850., 0.0);
+{   564} G2O3000 +PERO2              =  0.560G1O3000 + 0.220GOO3000 + 0.220GDO3001                 : ARR( 0.471E-13, -1350., 0.0);
+{   565} G2O3000 +PERO3              =  0.600G1O3000 + 0.200GOO3000 + 0.200GDO3001                 : ARR( 0.142E-12, -1200., 0.0);
+{   566} G2O3000 +PERO5              =  0.600G1O3000 + 0.200GOO3000 + 0.200GDO3001                 : ARR( 0.533E-11,   500., 0.0);
+{   567} G2O3000 +PERO6              =  0.460G1O3000 + 0.270GOO3000 + 0.270GDO3001                 : ARR( 0.488E-13, -1250., 0.0);
+{   568} G2O3000 +PERO9              =  0.800G1O3000 + 0.200GDO3001                                : ARR( 0.100E-10,     0., 0.0);
+{   569} G1O5007                     =       GKO5006 +      GHO2                                   : ARR( 0.800E+11,  2117., 0.0);
+{   570} G1O5007                     =       GDO4001 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4799., 0.0);
+{   571} G1O3000                     =       GD02000 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4830., 0.0);
+{   572} GK05000 +GHO                =       G2K5000                                               : ARR( 0.377E-11,     0., 0.0);
+{   573} GK05000 +GHO                =       G2K5001                                               : ARR( 0.891E-12,     0., 0.0);
+{   574} GK05000+HV               =       G203000 +      G3K2000                                :  0.100E+01*SUN;
+{   575} G2K5000 +GNO                =       G1K5000 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{   576} G2K5000 +GNO                =       GNK5004                                               : ARR( 0.182E-12,  -360., 0.0);
+{   577} G2K5000 +GHO2               =       GHK5003                                               : ARR( 0.242E-12, -1250., 0.0);
+{   578} G2K5000 +GNO3               =       G1K5000 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{   579} G2K5000 +MEPERO             =  0.480G1K5000 + 0.260GKO5004 + 0.260GKK5000                 : ARR( 0.616E-11,   905., 0.0);
+{   580} G2K5000 +PERO1              =  0.600G1K5000 + 0.200GKO5004 + 0.200GKK5000                 : ARR( 0.473E-11,   850., 0.0);
+{   581} G2K5000 +PERO2              =  0.560G1K5000 + 0.220GKO5004 + 0.220GKK5000                 : ARR( 0.177E-11,   350., 0.0);
+{   582} G2K5000 +PERO3              =  0.600G1K5000 + 0.200GKO5004 + 0.200GKK5000                 : ARR( 0.533E-11,   500., 0.0);
+{   583} G2K5000 +PERO5              =  0.600G1K5000 + 0.200GKO5004 + 0.200GKK5000                 : ARR( 0.200E-09,  2200., 0.0);
+{   584} G2K5000 +PERO6              =  0.460G1K5000 + 0.270GKO5004 + 0.270GKK5000                 : ARR( 0.183E-11,   450., 0.0);
+{   585} G2K5000 +PERO9              =  0.800G1K5000 + 0.200GKK5000                                : ARR( 0.100E-10,     0., 0.0);
+{   586} G2K5001 +GNO                =       G1K5001 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{   587} G2K5001 +GNO                =       GNK5007                                               : ARR( 0.182E-12,  -360., 0.0);
+{   588} G2K5001 +GHO2               =       GHK5004                                               : ARR( 0.242E-12, -1250., 0.0);
+{   589} G2K5001 +GNO3               =       G1K5001 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{   590} G2K5001 +MEPERO             =  0.340G1K5001 + 0.330GKO5007 + 0.330GKK5001                 : ARR( 0.565E-13,  -845., 0.0);
+{   591} G2K5001 +PERO1              =  0.460G1K5001 + 0.270GKO5007 + 0.270GKK5001                 : ARR( 0.434E-13,  -900., 0.0);
+{   592} G2K5001 +PERO2              =  0.400G1K5001 + 0.300GKO5007 + 0.300GKK5001                 : ARR( 0.162E-13, -1400., 0.0);
+{   593} G2K5001 +PERO3              =  0.460G1K5001 + 0.270GKO5007 + 0.270GKK5001                 : ARR( 0.488E-13, -1250., 0.0);
+{   594} G2K5001 +PERO5              =  0.460G1K5001 + 0.270GKO5007 + 0.270GKK5001                 : ARR( 0.183E-11,   450., 0.0);
+{   595} G2K5001 +PERO6              =  0.300G1K5001 + 0.350GKO5007 + 0.350GKK5001                 : ARR( 0.168E-13, -1300., 0.0);
+{   596} G2K5001 +PERO9              =  0.650G1K5001 + 0.350GKK5001                                : ARR( 0.100E-10,     0., 0.0);
+{   597} G3K2000 +GHO2               =  0.800GG02000 + 0.200GA02000 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{   598} G3K2000 +GNO                =       GCH3O2  +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{   599}  G3K2000 + GNO2       +M       =       GP02000         +M                                    : FALL( 0.110E-10,     0.,-1.0, 0.850E-28,     0.,-6.5,0.60);
+{   600} G3K2000 +GNO3               =       GCH3O2  +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{   601} G3K2000 +MEPERO             =  0.685GCH3O2  + 0.315GA02000 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{   602} G3K2000 +PERO1              =  0.800GCH3O2  + 0.200GA02000 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{   603} G3K2000 +PERO2              =  0.750GCH3O2  + 0.250GA02000 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{   604} G3K2000 +PERO3              =  0.800GCH3O2  + 0.200GA02000 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{   605} G3K2000 +PERO5              =  0.650GCH3O2  + 0.350GA02000 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{   606} G3K2000 +PERO6              =  0.650GCH3O2  + 0.350GA02000 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{   607} G3K2000 +PERO9              =       GCH3O2  +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{   608} G1K5000                     =       G2K5002                                               : ARR( 0.240E+12,  6160., 0.0);
+{   609} G1K5000                     =       G2K3000 +      GD02000                                : ARR( 0.200E+15,  7034., 0.0);
+{   610} G1K5001                     =       GD03000 +      G3K2000                                : ARR( 0.200E+15,  2668., 0.0);
+{   611} G2K5002 +GNO                =       G1K5002 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{   612} G2K5002 +GNO                =       GNK5008                                               : ARR( 0.182E-12,  -360., 0.0);
+{   613} G2K5002 +GHO2               =       GHK5005                                               : ARR( 0.242E-12, -1250., 0.0);
+{   614} G2K5002 +GNO3               =       G1K5002 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{   615} G2K5002 +MEPERO             =  0.480G1K5002 + 0.260GKO5008 + 0.260GDK5001                 : ARR( 0.164E-12,  -795., 0.0);
+{   616} G2K5002 +PERO1              =  0.600G1K5002 + 0.200GKO5008 + 0.200GDK5001                 : ARR( 0.126E-12,  -850., 0.0);
+{   617} G2K5002 +PERO2              =  0.560G1K5002 + 0.220GKO5008 + 0.220GDK5001                 : ARR( 0.471E-13, -1350., 0.0);
+{   618} G2K5002 +PERO3              =  0.600G1K5002 + 0.200GKO5008 + 0.200GDK5001                 : ARR( 0.142E-12, -1200., 0.0);
+{   619} G2K5002 +PERO5              =  0.600G1K5002 + 0.200GKO5008 + 0.200GDK5001                 : ARR( 0.533E-11,   500., 0.0);
+{   620} G2K5002 +PERO6              =  0.460G1K5002 + 0.270GKO5008 + 0.270GDK5001                 : ARR( 0.488E-13, -1250., 0.0);
+{   621} G2K5002 +PERO9              =  0.800G1K5002 + 0.200GDK5001                                : ARR( 0.100E-10,     0., 0.0);
+{   622} G2K3000 +GNO                =       G1K3000 +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{   623} G2K3000 +GNO                =       GNK3000                                               : ARR( 0.622E-13,  -360., 0.0);
+{   624} G2K3000 +GHO2               =       GHK3000                                               : ARR( 0.179E-12, -1250., 0.0);
+{   625} G2K3000 +GNO3               =       G1K3000 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{   626} G2K3000 +MEPERO             =  0.480G1K3000 + 0.260GKO3000 + 0.260GDK3000                 : ARR( 0.164E-12,  -795., 0.0);
+{   627} G2K3000 +PERO1              =  0.600G1K3000 + 0.200GKO3000 + 0.200GDK3000                 : ARR( 0.126E-12,  -850., 0.0);
+{   628} G2K3000 +PERO2              =  0.560G1K3000 + 0.220GKO3000 + 0.220GDK3000                 : ARR( 0.471E-13, -1350., 0.0);
+{   629} G2K3000 +PERO3              =  0.600G1K3000 + 0.200GKO3000 + 0.200GDK3000                 : ARR( 0.142E-12, -1200., 0.0);
+{   630} G2K3000 +PERO5              =  0.600G1K3000 + 0.200GKO3000 + 0.200GDK3000                 : ARR( 0.533E-11,   500., 0.0);
+{   631} G2K3000 +PERO6              =  0.460G1K3000 + 0.270GKO3000 + 0.270GDK3000                 : ARR( 0.488E-13, -1250., 0.0);
+{   632} G2K3000 +PERO9              =  0.800G1K3000 + 0.200GDK3000                                : ARR( 0.100E-10,     0., 0.0);
+{   633} G1K5002                     =       G3K4000 +      GCH2O                                  : ARR( 0.200E+15,  3576., 0.0);
+{   634} G1K3000                     =       G3K2000 +      GCH2O                                  : ARR( 0.200E+15,  3554., 0.0);
+{   635} G3K4000 +GHO2               =  0.800GGO4000 + 0.200GAO4000 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{   636} G3K4000 +GNO                =       G2O3000 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{   637} G3K4000 +GNO2               =       GPO4000                                               : ARR( 0.330E-08,     0.,-1.0);
+{   638} G3K4000 +GNO3               =       G2O3000 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{   639} G3K4000 +MEPERO             =  0.685G2O3000 + 0.315GAO4000 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{   640} G3K4000 +PERO1              =  0.800G2O3000 + 0.200GAO4000 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{   641} G3K4000 +PERO2              =  0.750G2O3000 + 0.250GAO4000 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{   642} G3K4000 +PERO3              =  0.800G2O3000 + 0.200GAO4000 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{   643} G3K4000 +PERO5              =  0.650G2O3000 + 0.350GAO4000 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{   644} G3K4000 +PERO6              =  0.650G2O3000 + 0.350GAO4000 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{   645} G3K4000 +PERO9              =       G2O3000 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{   646} GN05002 +GHO                =       G2N500A                                               : ARR( 0.411E-12,     0., 0.0);
+{   647} GN05002 +GHO                =       G2N500B                                               : ARR( 0.564E-12,     0., 0.0);
+{   648} GN05002 +GHO                =       GK05001 +      GNO2                                   : ARR( 0.145E-12,     0., 0.0);
+{   649} GN05002+HV               =       G105002 +      GNO2                                   :  0.100E+01*SUN;
+{   650} G2N500A +GNO                =       G1N500A +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{   651} G2N500A +GNO                =       GNN5002                                               : ARR( 0.182E-12,  -360., 0.0);
+{   652} G2N500A +GHO2               =       GHN5006                                               : ARR( 0.242E-12, -1250., 0.0);
+{   653} G2N500A +GNO3               =       G1N500A +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{   654} G2N500A +MEPERO             =  0.480G1N500A + 0.260GNO5006 + 0.260GND5002                 : ARR( 0.146E-12,  -445., 0.0);
+{   655} G2N500A +PERO1              =  0.600G1N500A + 0.200GNO5006 + 0.200GND5002                 : ARR( 0.112E-12,  -500., 0.0);
+{   656} G2N500A +PERO2              =  0.560G1N500A + 0.220GNO5006 + 0.220GND5002                 : ARR( 0.418E-13, -1000., 0.0);
+{   657} G2N500A +PERO3              =  0.600G1N500A + 0.200GNO5006 + 0.200GND5002                 : ARR( 0.126E-12,  -850., 0.0);
+{   658} G2N500A +PERO5              =  0.600G1N500A + 0.200GNO5006 + 0.200GND5002                 : ARR( 0.473E-11,   850., 0.0);
+{   659} G2N500A +PERO6              =  0.460G1N500A + 0.270GNO5006 + 0.270GND5002                 : ARR( 0.434E-13,  -900., 0.0);
+{   660} G2N500A +PERO9              =  0.800G1N500A + 0.200GND5002                                : ARR( 0.100E-10,     0., 0.0);
+{   661} G2N500B +GNO                =       G1N500B +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{   662} G2N500B +GNO                =       GNN5007                                               : ARR( 0.182E-12,  -360., 0.0);
+{   663} G2N500B +GHO2               =       GHN500D                                               : ARR( 0.242E-12, -1250., 0.0);
+{   664} G2N500B +GNO3               =       G1N500B +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{   665} G2N500B +MEPERO             =  0.340G1N500B + 0.330GNO500C + 0.330GNK5007                 : ARR( 0.565E-13,  -845., 0.0);
+{   666} G2N500B +PERO1              =  0.460G1N500B + 0.270GNO500C + 0.270GNK5007                 : ARR( 0.434E-13,  -900., 0.0);
+{   667} G2N500B +PERO2              =  0.400G1N500B + 0.300GNO500C + 0.300GNK5007                 : ARR( 0.162E-13, -1400., 0.0);
+{   668} G2N500B +PERO3              =  0.460G1N500B + 0.270GNO500C + 0.270GNK5007                 : ARR( 0.488E-13, -1250., 0.0);
+{   669} G2N500B +PERO5              =  0.460G1N500B + 0.270GNO500C + 0.270GNK5007                 : ARR( 0.183E-11,   450., 0.0);
+{   670} G2N500B +PERO6              =  0.300G1N500B + 0.350GNO500C + 0.350GNK5007                 : ARR( 0.168E-13, -1300., 0.0);
+{   671} G2N500B +PERO9              =  0.650G1N500B + 0.350GNK5007                                : ARR( 0.100E-10,     0., 0.0);
+{   672} G1N500A +OXYGEN             =       GND5002 +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{   673} G1N500A                     =       G2N500C                                               : ARR( 0.160E+12,  3812., 0.0);
+{   674} G1N500B                     =       G2N500D                                               : ARR( 0.240E+12,  4177., 0.0);
+{   675} G1N500B                     =       GD03000 +      GD02000 +      GNO2                    : ARR( 0.200E+15,  6484., 0.0);
+{   676} G2N500C +GNO                =       G1N500C +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{   677} G2N500C +GNO                =       GNN5009                                               : ARR( 0.182E-12,  -360., 0.0);
+{   678} G2N500C +GHO2               =       GHN500E                                               : ARR( 0.242E-12, -1250., 0.0);
+{   679} G2N500C +GNO3               =       G1N500C +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{   680} G2N500C +MEPERO             =  0.340G1N500C + 0.330GNO500E + 0.330GNK5009                 : ARR( 0.565E-13,  -845., 0.0);
+{   681} G2N500C +PERO1              =  0.460G1N500C + 0.270GNO500E + 0.270GNK5009                 : ARR( 0.434E-13,  -900., 0.0);
+{   682} G2N500C +PERO2              =  0.400G1N500C + 0.300GNO500E + 0.300GNK5009                 : ARR( 0.162E-13, -1400., 0.0);
+{   683} G2N500C +PERO3              =  0.460G1N500C + 0.270GNO500E + 0.270GNK5009                 : ARR( 0.488E-13, -1250., 0.0);
+{   684} G2N500C +PERO5              =  0.460G1N500C + 0.270GNO500E + 0.270GNK5009                 : ARR( 0.183E-11,   450., 0.0);
+{   685} G2N500C +PERO6              =  0.300G1N500C + 0.350GNO500E + 0.350GNK5009                 : ARR( 0.168E-13, -1300., 0.0);
+{   686} G2N500C +PERO9              =  0.650G1N500C + 0.350GNK5009                                : ARR( 0.100E-10,     0., 0.0);
+{   687} G2N500D +GNO                =       G1N500D +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{   688} G2N500D +GNO                =       GNN500A                                               : ARR( 0.182E-12,  -360., 0.0);
+{   689} G2N500D +GHO2               =       GHN500F                                               : ARR( 0.242E-12, -1250., 0.0);
+{   690} G2N500D +GNO3               =       G1N500D +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{   691} G2N500D +MEPERO             =  0.480G1N500D + 0.260GNO500E + 0.260GND5005                 : ARR( 0.146E-12,  -445., 0.0);
+{   692} G2N500D +PERO1              =  0.600G1N500D + 0.200GNO500E + 0.200GND5005                 : ARR( 0.112E-12,  -500., 0.0);
+{   693} G2N500D +PERO2              =  0.560G1N500D + 0.220GNO500E + 0.220GND5005                 : ARR( 0.418E-13, -1000., 0.0);
+{   694} G2N500D +PERO3              =  0.600G1N500D + 0.200GNO500E + 0.200GND5005                 : ARR( 0.126E-12,  -850., 0.0);
+{   695} G2N500D +PERO5              =  0.600G1N500D + 0.200GNO500E + 0.200GND5005                 : ARR( 0.473E-11,   850., 0.0);
+{   696} G2N500D +PERO6              =  0.460G1N500D + 0.270GNO500E + 0.270GND5005                 : ARR( 0.434E-13,  -900., 0.0);
+{   697} G2N500D +PERO9              =  0.800G1N500D + 0.200GND5005                                : ARR( 0.100E-10,     0., 0.0);
+{   698} G1N500C                     =       GND5005 +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{   699} G1N500D                     =       GNK5009 +      GHO2                                   : ARR( 0.800E+11,  2837., 0.0);
+{   700} GH05002 +GHO                =       GK05001 +      GHO                                    : ARR( 0.436E-10,     0., 0.0);
+{   701} GH05002 +GHO                =       G205002                                               : ARR( 0.201E-11,  -190., 0.0);
+{   702} GH05002+HV               =       G105002 +      GHO                                    :  0.100E+01*SUN;
+{   703} GO05002 +GHO                =       G2O5008                                               : ARR( 0.222E-11,     0., 0.0);
+{   704} GO05002 +GHO                =       GK05001 +      GHO2                                   : ARR( 0.998E-11,     0., 0.0);
+{   705} G2O5008 +GNO                =       G1O5008 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{   706} G2O5008 +GNO                =       GNO500A                                               : ARR( 0.182E-12,  -360., 0.0);
+{   707} G2O5008 +GHO2               =       GHO500B                                               : ARR( 0.242E-12, -1250., 0.0);
+{   708} G2O5008 +GNO3               =       G1O5008 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{   709} G2O5008 +MEPERO             =  0.340G1O5008 + 0.330GOO5005 + 0.330GKO5007                 : ARR( 0.565E-13,  -845., 0.0);
+{   710} G2O5008 +PERO1              =  0.460G1O5008 + 0.270GOO5005 + 0.270GKO5007                 : ARR( 0.434E-13,  -900., 0.0);
+{   711} G2O5008 +PERO2              =  0.400G1O5008 + 0.300GOO5005 + 0.300GKO5007                 : ARR( 0.162E-13, -1400., 0.0);
+{   712} G2O5008 +PERO3              =  0.460G1O5008 + 0.270GOO5005 + 0.270GKO5007                 : ARR( 0.488E-13, -1250., 0.0);
+{   713} G2O5008 +PERO5              =  0.460G1O5008 + 0.270GOO5005 + 0.270GKO5007                 : ARR( 0.183E-11,   450., 0.0);
+{   714} G2O5008 +PERO6              =  0.300G1O5008 + 0.350GOO5005 + 0.350GKO5007                 : ARR( 0.168E-13, -1300., 0.0);
+{   715} G2O5008 +PERO9              =  0.650G1O5008 + 0.350GKO5007                                : ARR( 0.100E-10,     0., 0.0);
+{   716} G1O5008                     =       GD03000 +      GD02000 +      GHO2                    : ARR( 0.200E+15,  3737., 0.0);
+{   717} GK05001 +GHO                =       G2K5003                                               : ARR( 0.863E-12,     0., 0.0);
+{   718} GK05001 +GHO                =       G2K5004                                               : ARR( 0.114E-11,     0., 0.0);
+{   719} GK05001+HV               =       G3K3000 +      G202000                                :  0.100E+01*SUN;
+{   720} G2K5003 +GNO                =       G1K5003 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{   721} G2K5003 +GNO                =       GNK5001                                               : ARR( 0.182E-12,  -360., 0.0);
+{   722} G2K5003 +GHO2               =       GHK5000                                               : ARR( 0.242E-12, -1250., 0.0);
+{   723} G2K5003 +GNO3               =       G1K5003 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{   724} G2K5003 +MEPERO             =  0.480G1K5003 + 0.260GKO5001 + 0.260GDK5000                 : ARR( 0.146E-12,  -445., 0.0);
+{   725} G2K5003 +PERO1              =  0.600G1K5003 + 0.200GKO5001 + 0.200GDK5000                 : ARR( 0.112E-12,  -500., 0.0);
+{   726} G2K5003 +PERO2              =  0.560G1K5003 + 0.220GKO5001 + 0.220GDK5000                 : ARR( 0.418E-13, -1000., 0.0);
+{   727} G2K5003 +PERO3              =  0.600G1K5003 + 0.200GKO5001 + 0.200GDK5000                 : ARR( 0.126E-12,  -850., 0.0);
+{   728} G2K5003 +PERO5              =  0.600G1K5003 + 0.200GKO5001 + 0.200GDK5000                 : ARR( 0.473E-11,   850., 0.0);
+{   729} G2K5003 +PERO6              =  0.460G1K5003 + 0.270GKO5001 + 0.270GDK5000                 : ARR( 0.434E-13,  -900., 0.0);
+{   730} G2K5003 +PERO9              =  0.800G1K5003 + 0.200GDK5000                                : ARR( 0.100E-10,     0., 0.0);
+{   731} G2K5004 +GNO                =       G1K5004 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{   732} G2K5004 +GNO                =       GNK5005                                               : ARR( 0.182E-12,  -360., 0.0);
+{   733} G2K5004 +GHO2               =       GHK5006                                               : ARR( 0.242E-12, -1250., 0.0);
+{   734} G2K5004 +GNO3               =       G1K5004 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{   735} G2K5004 +MEPERO             =  0.340G1K5004 + 0.330GKO5005 + 0.330GKK5001                 : ARR( 0.565E-13,  -845., 0.0);
+{   736} G2K5004 +PERO1              =  0.460G1K5004 + 0.270GKO5005 + 0.270GKK5001                 : ARR( 0.434E-13,  -900., 0.0);
+{   737} G2K5004 +PERO2              =  0.400G1K5004 + 0.300GKO5005 + 0.300GKK5001                 : ARR( 0.162E-13, -1400., 0.0);
+{   738} G2K5004 +PERO3              =  0.460G1K5004 + 0.270GKO5005 + 0.270GKK5001                 : ARR( 0.488E-13, -1250., 0.0);
+{   739} G2K5004 +PERO5              =  0.460G1K5004 + 0.270GKO5005 + 0.270GKK5001                 : ARR( 0.183E-11,   450., 0.0);
+{   740} G2K5004 +PERO6              =  0.300G1K5004 + 0.350GKO5005 + 0.350GKK5001                 : ARR( 0.168E-13, -1300., 0.0);
+{   741} G2K5004 +PERO9              =  0.650G1K5004 + 0.350GKK5001                                : ARR( 0.100E-10,     0., 0.0);
+{   742} G3K3000 +GHO2               =  0.800GG03000 + 0.200GA03000 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{   743} G3K3000 +GNO                =       G202000 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{   744} G3K3000 +GNO2               =       GP03000                                               : ARR( 0.330E-08,     0.,-1.0);
+{   745} G3K3000 +GNO3               =       G202000 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{   746} G3K3000 +MEPERO             =  0.685G202000 + 0.315GA03000 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{   747} G3K3000 +PERO1              =  0.800G202000 + 0.200GA03000 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{   748} G3K3000 +PERO2              =  0.750G202000 + 0.250GA03000 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{   749} G3K3000 +PERO3              =  0.800G202000 + 0.200GA03000 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{   750} G3K3000 +PERO5              =  0.650G202000 + 0.350GA03000 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{   751} G3K3000 +PERO6              =  0.650G202000 + 0.350GA03000 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{   752} G3K3000 +PERO9              =       G202000 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{   753} G1K5003 +OXYGEN             =       GDK5000 +      GHO2                                   : ARR( 0.600E-13,   398., 0.0);
+{   754} G1K5003                     =       G2K5005                                               : ARR( 0.160E+12,  5075., 0.0);
+{   755} G1K5004                     =       G3K3000 +      GD02000                                : ARR( 0.200E+15,  2750., 0.0);
+{   756} G2K5005 +GNO                =       G1K5005 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{   757} G2K5005 +GNO                =       GNK500A                                               : ARR( 0.182E-12,  -360., 0.0);
+{   758} G2K5005 +GHO2               =       GHK5007                                               : ARR( 0.242E-12, -1250., 0.0);
+{   759} G2K5005 +GNO3               =       G1K5005 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{   760} G2K5005 +MEPERO             =  0.340G1K5005 + 0.330GKO5009 + 0.330GKK5002                 : ARR( 0.565E-13,  -845., 0.0);
+{   761} G2K5005 +PERO1              =  0.460G1K5005 + 0.270GKO5009 + 0.270GKK5002                 : ARR( 0.434E-13,  -900., 0.0);
+{   762} G2K5005 +PERO2              =  0.400G1K5005 + 0.300GKO5009 + 0.300GKK5002                 : ARR( 0.162E-13, -1400., 0.0);
+{   763} G2K5005 +PERO3              =  0.460G1K5005 + 0.270GKO5009 + 0.270GKK5002                 : ARR( 0.488E-13, -1250., 0.0);
+{   764} G2K5005 +PERO5              =  0.460G1K5005 + 0.270GKO5009 + 0.270GKK5002                 : ARR( 0.183E-11,   450., 0.0);
+{   765} G2K5005 +PERO6              =  0.300G1K5005 + 0.350GKO5009 + 0.350GKK5002                 : ARR( 0.168E-13, -1300., 0.0);
+{   766} G2K5005 +PERO9              =  0.650G1K5005 + 0.350GKK5002                                : ARR( 0.100E-10,     0., 0.0);
+{   767} G1K5005                     =       GD02000 +      G3K3001                                : ARR( 0.200E+15,  2750., 0.0);
+{   768} G3K3001 +GHO2               =  0.800GGO3000 + 0.200GAO3000 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{   769} G3K3001 +GNO                =       G2O2000 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{   770} G3K3001 +GNO2               =       GPO3000                                               : ARR( 0.330E-08,     0.,-1.0);
+{   771} G3K3001 +GNO3               =       G2O2000 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{   772} G3K3001 +MEPERO             =  0.685G2O2000 + 0.315GAO3000 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{   773} G3K3001 +PERO1              =  0.800G2O2000 + 0.200GAO3000 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{   774} G3K3001 +PERO2              =  0.750G2O2000 + 0.250GAO3000 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{   775} G3K3001 +PERO3              =  0.800G2O2000 + 0.200GAO3000 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{   776} G3K3001 +PERO5              =  0.650G2O2000 + 0.350GAO3000 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{   777} G3K3001 +PERO6              =  0.650G2O2000 + 0.350GAO3000 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{   778} G3K3001 +PERO9              =       G2O2000 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{   779} GD02000 +GHO                =       G3K2000                                               : ARR( 0.560E-11,  -310., 0.0);
+{   780} GD02000 +GNO3               =       G3K2000 +      GHNO3                                  : ARR( 0.140E-11,  1860., 0.0);
+{   781} GD02000+HV               =       GCH3O2  +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{   782} GD03000 +GHO                =       G3K3000                                               : ARR( 0.200E-10,     0., 0.0);
+{   783} GD03000 +GNO3               =       G3K3000 +      GHNO3                                  : ARR( 0.600E-14,     0., 0.0);
+{   784} GD03000+HV               =       G202000 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{   785} GNO5000 +GHO                =       G2N500E                                               : ARR( 0.156E-11,     0., 0.0);
+{   786} GNO5000 +GHO                =       GND5003 +      GHO2                                   : ARR( 0.443E-11,     0., 0.0);
+{   787} GNO5000+HV               =       G1O5000 +      GNO2                                   :  0.100E+01*SUN;
+{   788} G2N500E +GNO                =       G1N500E +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{   789} G2N500E +GNO                =       GNN500B                                               : ARR( 0.182E-12,  -360., 0.0);
+{   790} G2N500E +GHO2               =       GHN500G                                               : ARR( 0.242E-12, -1250., 0.0);
+{   791} G2N500E +GNO3               =       G1N500E +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{   792} G2N500E +MEPERO             =  0.340G1N500E + 0.330GNO500F + 0.330GNK500B                 : ARR( 0.565E-13,  -845., 0.0);
+{   793} G2N500E +PERO1              =  0.460G1N500E + 0.270GNO500F + 0.270GNK500B                 : ARR( 0.434E-13,  -900., 0.0);
+{   794} G2N500E +PERO2              =  0.400G1N500E + 0.300GNO500F + 0.300GNK500B                 : ARR( 0.162E-13, -1400., 0.0);
+{   795} G2N500E +PERO3              =  0.460G1N500E + 0.270GNO500F + 0.270GNK500B                 : ARR( 0.488E-13, -1250., 0.0);
+{   796} G2N500E +PERO5              =  0.460G1N500E + 0.270GNO500F + 0.270GNK500B                 : ARR( 0.183E-11,   450., 0.0);
+{   797} G2N500E +PERO6              =  0.300G1N500E + 0.350GNO500F + 0.350GNK500B                 : ARR( 0.168E-13, -1300., 0.0);
+{   798} G2N500E +PERO9              =  0.650G1N500E + 0.350GNK500B                                : ARR( 0.100E-10,     0., 0.0);
+{   799} G1N500E                     =       GND4000 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  5041., 0.0);
+{   800} GHO5000 +GHO                =       GKO5000 +      GHO                                    : ARR( 0.361E-10,     0., 0.0);
+{   801} GHO5000 +GHO                =       GHD5002 +      GHO2                                   : ARR( 0.433E-11,     0., 0.0);
+{   802} GHO5000 +GHO                =       G2O5000                                               : ARR( 0.204E-11,  -190., 0.0);
+{   803} GHO5000+HV               =       G1O5000 +      GHO                                    :  0.100E+01*SUN;
+{   804} GOO5000 +GHO                =       GKO5000 +      GHO2                                   : ARR( 0.862E-11,     0., 0.0);
+{   805} GOO5000 +GHO                =       G2O5009                                               : ARR( 0.145E-11,     0., 0.0);
+{   806} GOO5000 +GHO                =       G2O500A                                               : ARR( 0.145E-11,     0., 0.0);
+{   807} GOO5000 +GHO                =       GDO5000 +      GHO2                                   : ARR( 0.414E-11,     0., 0.0);
+{   808} G2O5009 +GNO                =       G1O5009 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{   809} G2O5009 +GNO                =       GNO500E                                               : ARR( 0.182E-12,  -360., 0.0);
+{   810} G2O5009 +GHO2               =       GHO500C                                               : ARR( 0.242E-12, -1250., 0.0);
+{   811} G2O5009 +GNO3               =       G1O5009 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{   812} G2O5009 +MEPERO             =  0.340G1O5009 + 0.330GOO5007 + 0.330GKO5009                 : ARR( 0.565E-13,  -845., 0.0);
+{   813} G2O5009 +PERO1              =  0.460G1O5009 + 0.270GOO5007 + 0.270GKO5009                 : ARR( 0.434E-13,  -900., 0.0);
+{   814} G2O5009 +PERO2              =  0.400G1O5009 + 0.300GOO5007 + 0.300GKO5009                 : ARR( 0.162E-13, -1400., 0.0);
+{   815} G2O5009 +PERO3              =  0.460G1O5009 + 0.270GOO5007 + 0.270GKO5009                 : ARR( 0.488E-13, -1250., 0.0);
+{   816} G2O5009 +PERO5              =  0.460G1O5009 + 0.270GOO5007 + 0.270GKO5009                 : ARR( 0.183E-11,   450., 0.0);
+{   817} G2O5009 +PERO6              =  0.300G1O5009 + 0.350GOO5007 + 0.350GKO5009                 : ARR( 0.168E-13, -1300., 0.0);
+{   818} G2O5009 +PERO9              =  0.650G1O5009 + 0.350GKO5009                                : ARR( 0.100E-10,     0., 0.0);
+{   819} G2O500A +GNO                =       G1O500A +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{   820} G2O500A +GNO                =       GNO500B                                               : ARR( 0.182E-12,  -360., 0.0);
+{   821} G2O500A +GHO2               =       GHO500D                                               : ARR( 0.242E-12, -1250., 0.0);
+{   822} G2O500A +GNO3               =       G1O500A +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{   823} G2O500A +MEPERO             =  0.340G1O500A + 0.330GOO5006 + 0.330GKO5008                 : ARR( 0.565E-13,  -845., 0.0);
+{   824} G2O500A +PERO1              =  0.460G1O500A + 0.270GOO5006 + 0.270GKO5008                 : ARR( 0.434E-13,  -900., 0.0);
+{   825} G2O500A +PERO2              =  0.400G1O500A + 0.300GOO5006 + 0.300GKO5008                 : ARR( 0.162E-13, -1400., 0.0);
+{   826} G2O500A +PERO3              =  0.460G1O500A + 0.270GOO5006 + 0.270GKO5008                 : ARR( 0.488E-13, -1250., 0.0);
+{   827} G2O500A +PERO5              =  0.460G1O500A + 0.270GOO5006 + 0.270GKO5008                 : ARR( 0.183E-11,   450., 0.0);
+{   828} G2O500A +PERO6              =  0.300G1O500A + 0.350GOO5006 + 0.350GKO5008                 : ARR( 0.168E-13, -1300., 0.0);
+{   829} G2O500A +PERO9              =  0.650G1O500A + 0.350GKO5008                                : ARR( 0.100E-10,     0., 0.0);
+{   830} G1O5009                     =       GD02000 +      GDO3000 +      GHO2                    : ARR( 0.200E+15,  3708., 0.0);
+{   831} G1O500A                     =       G2O500B                                               : ARR( 0.240E+12,  4177., 0.0);
+{   832} G1O500A                     =       GDO4001 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  5041., 0.0);
+{   833} G2O500B +GNO                =       G1O500B +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{   834} G2O500B +GNO                =       GNO500G                                               : ARR( 0.182E-12,  -360., 0.0);
+{   835} G2O500B +GHO2               =       GHO500E                                               : ARR( 0.242E-12, -1250., 0.0);
+{   836} G2O500B +GNO3               =       G1O500B +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{   837} G2O500B +MEPERO             =  0.480G1O500B + 0.260GOO5008 + 0.260GDO5004                 : ARR( 0.164E-12,  -795., 0.0);
+{   838} G2O500B +PERO1              =  0.600G1O500B + 0.200GOO5008 + 0.200GDO5004                 : ARR( 0.126E-12,  -850., 0.0);
+{   839} G2O500B +PERO2              =  0.560G1O500B + 0.220GOO5008 + 0.220GDO5004                 : ARR( 0.471E-13, -1350., 0.0);
+{   840} G2O500B +PERO3              =  0.600G1O500B + 0.200GOO5008 + 0.200GDO5004                 : ARR( 0.142E-12, -1200., 0.0);
+{   841} G2O500B +PERO5              =  0.600G1O500B + 0.200GOO5008 + 0.200GDO5004                 : ARR( 0.533E-11,   500., 0.0);
+{   842} G2O500B +PERO6              =  0.460G1O500B + 0.270GOO5008 + 0.270GDO5004                 : ARR( 0.488E-13, -1250., 0.0);
+{   843} G2O500B +PERO9              =  0.800G1O500B + 0.200GDO5004                                : ARR( 0.100E-10,     0., 0.0);
+{   844} G1O500B                     =       GKO500A +      GHO2                                   : ARR( 0.800E+11,  2025., 0.0);
+{   845} G1O500B                     =       GDO4002 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4799., 0.0);
+{   846} GKO5000 +GHO                =       G2K5006                                               : ARR( 0.884E-12,     0., 0.0);
+{   847} GKO5000 +GHO                =       G2K5007                                               : ARR( 0.460E-11,     0., 0.0);
+{   848} GKO5000 +GHO                =       GDK5002 +      GHO2                                   : ARR( 0.413E-11,     0., 0.0);
+{   849} GKO5000+HV               =       G3K2000 +      G2O3001                                :  0.100E+01*SUN;
+{   850} GKO5000+HV               =       GK03000 +      GD02000                                :  0.100E+01*SUN;
+{   851} G2K5006 +GNO                =       G1K5006 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{   852} G2K5006 +GNO                =       GNK5009                                               : ARR( 0.182E-12,  -360., 0.0);
+{   853} G2K5006 +GHO2               =       GHK5008                                               : ARR( 0.242E-12, -1250., 0.0);
+{   854} G2K5006 +GNO3               =       G1K5006 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{   855} G2K5006 +MEPERO             =  0.340G1K5006 + 0.330GKO500B + 0.330GKK5002                 : ARR( 0.565E-13,  -845., 0.0);
+{   856} G2K5006 +PERO1              =  0.460G1K5006 + 0.270GKO500B + 0.270GKK5002                 : ARR( 0.434E-13,  -900., 0.0);
+{   857} G2K5006 +PERO2              =  0.400G1K5006 + 0.300GKO500B + 0.300GKK5002                 : ARR( 0.162E-13, -1400., 0.0);
+{   858} G2K5006 +PERO3              =  0.460G1K5006 + 0.270GKO500B + 0.270GKK5002                 : ARR( 0.488E-13, -1250., 0.0);
+{   859} G2K5006 +PERO5              =  0.460G1K5006 + 0.270GKO500B + 0.270GKK5002                 : ARR( 0.183E-11,   450., 0.0);
+{   860} G2K5006 +PERO6              =  0.300G1K5006 + 0.350GKO500B + 0.350GKK5002                 : ARR( 0.168E-13, -1300., 0.0);
+{   861} G2K5006 +PERO9              =  0.650G1K5006 + 0.350GKK5002                                : ARR( 0.100E-10,     0., 0.0);
+{   862} G2K5007 +GNO                =       G1K5007 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{   863} G2K5007 +GNO                =       GNK5006                                               : ARR( 0.182E-12,  -360., 0.0);
+{   864} G2K5007 +GHO2               =       GHK5009                                               : ARR( 0.242E-12, -1250., 0.0);
+{   865} G2K5007 +GNO3               =       G1K5007 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{   866} G2K5007 +MEPERO             =  0.340G1K5007 + 0.330GKO5006 + 0.330GKK5003                 : ARR( 0.565E-13,  -845., 0.0);
+{   867} G2K5007 +PERO1              =  0.460G1K5007 + 0.270GKO5006 + 0.270GKK5003                 : ARR( 0.434E-13,  -900., 0.0);
+{   868} G2K5007 +PERO2              =  0.400G1K5007 + 0.300GKO5006 + 0.300GKK5003                 : ARR( 0.162E-13, -1400., 0.0);
+{   869} G2K5007 +PERO3              =  0.460G1K5007 + 0.270GKO5006 + 0.270GKK5003                 : ARR( 0.488E-13, -1250., 0.0);
+{   870} G2K5007 +PERO5              =  0.460G1K5007 + 0.270GKO5006 + 0.270GKK5003                 : ARR( 0.183E-11,   450., 0.0);
+{   871} G2K5007 +PERO6              =  0.300G1K5007 + 0.350GKO5006 + 0.350GKK5003                 : ARR( 0.168E-13, -1300., 0.0);
+{   872} G2K5007 +PERO9              =  0.650G1K5007 + 0.350GKK5003                                : ARR( 0.100E-10,     0., 0.0);
+{   873} G2O3001 +GNO                =       G1O3001 +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{   874} G2O3001 +GNO                =       GNO3000                                               : ARR( 0.622E-13,  -360., 0.0);
+{   875} G2O3001 +GHO2               =       GHO3001                                               : ARR( 0.179E-12, -1250., 0.0);
+{   876} G2O3001 +GNO3               =       G1O3001 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{   877} G2O3001 +MEPERO             =  0.480G1O3001 + 0.260GOO3001 + 0.260GDO3000                 : ARR( 0.146E-12,  -445., 0.0);
+{   878} G2O3001 +PERO1              =  0.600G1O3001 + 0.200GOO3001 + 0.200GDO3000                 : ARR( 0.112E-12,  -500., 0.0);
+{   879} G2O3001 +PERO2              =  0.560G1O3001 + 0.220GOO3001 + 0.220GDO3000                 : ARR( 0.418E-13, -1000., 0.0);
+{   880} G2O3001 +PERO3              =  0.600G1O3001 + 0.200GOO3001 + 0.200GDO3000                 : ARR( 0.126E-12,  -850., 0.0);
+{   881} G2O3001 +PERO5              =  0.600G1O3001 + 0.200GOO3001 + 0.200GDO3000                 : ARR( 0.473E-11,   850., 0.0);
+{   882} G2O3001 +PERO6              =  0.460G1O3001 + 0.270GOO3001 + 0.270GDO3000                 : ARR( 0.434E-13,  -900., 0.0);
+{   883} G2O3001 +PERO9              =  0.800G1O3001 + 0.200GDO3000                                : ARR( 0.100E-10,     0., 0.0);
+{   884} G1K5006                     =       G3K2000 +      GDO3000                                : ARR( 0.200E+15,  2668., 0.0);
+{   885} G1K5007                     =       GDK4000 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4658., 0.0);
+{   886} G1O3001 +OXYGEN             =       GDO3000 +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{   887} GNO5001 +GHO                =       GNK5000 +      GHO2                                   : ARR( 0.892E-11,     0., 0.0);
+{   888} GNO5001 +GHO                =       G2N500F                                               : ARR( 0.150E-11,     0., 0.0);
+{   889} GNO5001+HV               =       G1O5001 +      GNO2                                   :  0.100E+01*SUN;
+{   890} G2N500F +GNO                =       G1N500F +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{   891} G2N500F +GNO                =       GNN500A                                               : ARR( 0.182E-12,  -360., 0.0);
+{   892} G2N500F +GHO2               =       GHN500H                                               : ARR( 0.242E-12, -1250., 0.0);
+{   893} G2N500F +GNO3               =       G1N500F +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{   894} G2N500F +MEPERO             =  0.340G1N500F + 0.330GNO500H + 0.330GNK500C                 : ARR( 0.565E-13,  -845., 0.0);
+{   895} G2N500F +PERO1              =  0.460G1N500F + 0.270GNO500H + 0.270GNK500C                 : ARR( 0.434E-13,  -900., 0.0);
+{   896} G2N500F +PERO2              =  0.400G1N500F + 0.300GNO500H + 0.300GNK500C                 : ARR( 0.162E-13, -1400., 0.0);
+{   897} G2N500F +PERO3              =  0.460G1N500F + 0.270GNO500H + 0.270GNK500C                 : ARR( 0.488E-13, -1250., 0.0);
+{   898} G2N500F +PERO5              =  0.460G1N500F + 0.270GNO500H + 0.270GNK500C                 : ARR( 0.183E-11,   450., 0.0);
+{   899} G2N500F +PERO6              =  0.300G1N500F + 0.350GNO500H + 0.350GNK500C                 : ARR( 0.168E-13, -1300., 0.0);
+{   900} G2N500F +PERO9              =  0.650G1N500F + 0.350GNK500C                                : ARR( 0.100E-10,     0., 0.0);
+{   901} G1N500F                     =       GD02000 +      GND3000 +      GHO2                    : ARR( 0.200E+15,  3708., 0.0);
+{   902} GHO5001 +GHO                =       GHK500A +      GHO2                                   : ARR( 0.931E-11,     0., 0.0);
+{   903} GHO5001 +GHO                =       GDO5000 +      GHO                                    : ARR( 0.179E-10,     0., 0.0);
+{   904} GHO5001 +GHO                =       G2O5001                                               : ARR( 0.211E-11,  -190., 0.0);
+{   905} GHO5001+HV               =       G1O5001 +      GHO                                    :  0.100E+01*SUN;
+{   906} GDO5000 +GHO                =       GDK5002 +      GHO2                                   : ARR( 0.867E-11,     0., 0.0);
+{   907} GDO5000 +GHO                =       G2D5001                                               : ARR( 0.464E-11,     0., 0.0);
+{   908} GDO5000 +GHO                =       G3K5001                                               : ARR( 0.215E-10,     0., 0.0);
+{   909} GDO5000 +GNO3               =       G3K5001 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{   910} GDO5000+HV               =       G2O4001 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{   911} GDO5000+HV               =       GK03000 +      GD02000                                :  0.100E+01*SUN;
+{   912} G2D5001 +GNO                =       G1D5001 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{   913} G2D5001 +GNO                =       GND5005                                               : ARR( 0.182E-12,  -360., 0.0);
+{   914} G2D5001 +GHO2               =       GHD5003                                               : ARR( 0.242E-12, -1250., 0.0);
+{   915} G2D5001 +GNO3               =       G1D5001 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{   916} G2D5001 +MEPERO             =  0.340G1D5001 + 0.330GDO5005 + 0.330GDK5003                 : ARR( 0.565E-13,  -845., 0.0);
+{   917} G2D5001 +PERO1              =  0.460G1D5001 + 0.270GDO5005 + 0.270GDK5003                 : ARR( 0.434E-13,  -900., 0.0);
+{   918} G2D5001 +PERO2              =  0.400G1D5001 + 0.300GDO5005 + 0.300GDK5003                 : ARR( 0.162E-13, -1400., 0.0);
+{   919} G2D5001 +PERO3              =  0.460G1D5001 + 0.270GDO5005 + 0.270GDK5003                 : ARR( 0.488E-13, -1250., 0.0);
+{   920} G2D5001 +PERO5              =  0.460G1D5001 + 0.270GDO5005 + 0.270GDK5003                 : ARR( 0.183E-11,   450., 0.0);
+{   921} G2D5001 +PERO6              =  0.300G1D5001 + 0.350GDO5005 + 0.350GDK5003                 : ARR( 0.168E-13, -1300., 0.0);
+{   922} G2D5001 +PERO9              =  0.650G1D5001 + 0.350GDK5003                                : ARR( 0.100E-10,     0., 0.0);
+{   923} G3K5001 +GHO2               =  0.800GGO5000 + 0.200GAO5000 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{   924} G3K5001 +GNO                =       G2O4001 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{   925} G3K5001 +GNO2               =       GPO5000                                               : ARR( 0.330E-08,     0.,-1.0);
+{   926} G3K5001 +GNO3               =       G2O4001 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{   927} G3K5001 +MEPERO             =  0.685G2O4001 + 0.315GAO5000 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{   928} G3K5001 +PERO1              =  0.800G2O4001 + 0.200GAO5000 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{   929} G3K5001 +PERO2              =  0.750G2O4001 + 0.250GAO5000 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{   930} G3K5001 +PERO3              =  0.800G2O4001 + 0.200GAO5000 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{   931} G3K5001 +PERO5              =  0.650G2O4001 + 0.350GAO5000 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{   932} G3K5001 +PERO6              =  0.650G2O4001 + 0.350GAO5000 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{   933} G3K5001 +PERO9              =       G2O4001 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{   934} G2O4001 +GNO                =       G1O4001 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{   935} G2O4001 +GNO                =       GNO4001                                               : ARR( 0.111E-12,  -360., 0.0);
+{   936} G2O4001 +GHO2               =       GHO4001                                               : ARR( 0.214E-12, -1250., 0.0);
+{   937} G2O4001 +GNO3               =       G1O4001 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{   938} G2O4001 +MEPERO             =  0.480G1O4001 + 0.260GOO4001 + 0.260GDO4001                 : ARR( 0.146E-12,  -445., 0.0);
+{   939} G2O4001 +PERO1              =  0.600G1O4001 + 0.200GOO4001 + 0.200GDO4001                 : ARR( 0.112E-12,  -500., 0.0);
+{   940} G2O4001 +PERO2              =  0.560G1O4001 + 0.220GOO4001 + 0.220GDO4001                 : ARR( 0.418E-13, -1000., 0.0);
+{   941} G2O4001 +PERO3              =  0.600G1O4001 + 0.200GOO4001 + 0.200GDO4001                 : ARR( 0.126E-12,  -850., 0.0);
+{   942} G2O4001 +PERO5              =  0.600G1O4001 + 0.200GOO4001 + 0.200GDO4001                 : ARR( 0.473E-11,   850., 0.0);
+{   943} G2O4001 +PERO6              =  0.460G1O4001 + 0.270GOO4001 + 0.270GDO4001                 : ARR( 0.434E-13,  -900., 0.0);
+{   944} G2O4001 +PERO9              =  0.800G1O4001 + 0.200GDO4001                                : ARR( 0.100E-10,     0., 0.0);
+{   945} G1D5001                     =       GD02000 +      GDD3000 +      GHO2                    : ARR( 0.200E+15,  3325., 0.0);
+{   946} G1O4001 +OXYGEN             =       GDO4001 +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{   947} G1O4001                     =       G2O4002                                               : ARR( 0.240E+12,  4177., 0.0);
+{   948} G2O4002 +GNO                =       G1O4002 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{   949} G2O4002 +GNO                =       GNO4002                                               : ARR( 0.111E-12,  -360., 0.0);
+{   950} G2O4002 +GHO2               =       GHO4002                                               : ARR( 0.214E-12, -1250., 0.0);
+{   951} G2O4002 +GNO3               =       G1O4002 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{   952} G2O4002 +MEPERO             =  0.480G1O4002 + 0.260GOO4002 + 0.260GDO4003                 : ARR( 0.164E-12,  -795., 0.0);
+{   953} G2O4002 +PERO1              =  0.600G1O4002 + 0.200GOO4002 + 0.200GDO4003                 : ARR( 0.126E-12,  -850., 0.0);
+{   954} G2O4002 +PERO2              =  0.560G1O4002 + 0.220GOO4002 + 0.220GDO4003                 : ARR( 0.471E-13, -1350., 0.0);
+{   955} G2O4002 +PERO3              =  0.600G1O4002 + 0.200GOO4002 + 0.200GDO4003                 : ARR( 0.142E-12, -1200., 0.0);
+{   956} G2O4002 +PERO5              =  0.600G1O4002 + 0.200GOO4002 + 0.200GDO4003                 : ARR( 0.533E-11,   500., 0.0);
+{   957} G2O4002 +PERO6              =  0.460G1O4002 + 0.270GOO4002 + 0.270GDO4003                 : ARR( 0.488E-13, -1250., 0.0);
+{   958} G2O4002 +PERO9              =  0.800G1O4002 + 0.200GDO4003                                : ARR( 0.100E-10,     0., 0.0);
+{   959} G1O4002                     =       GDO4002 +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{   960} G1O4002                     =       GDO3000 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4799., 0.0);
+{   961} GN03000 +GHO                =       G2N3000                                               : ARR( 0.227E-12,     0., 0.0);
+{   962} GN03000 +GHO                =       G2N3002                                               : ARR( 0.311E-12,     0., 0.0);
+{   963} GN03000 +GHO                =       GD03000 +      GNO2                                   : ARR( 0.622E-13,     0., 0.0);
+{   964} GN03000+HV               =       G103000 +      GNO2                                   :  0.100E+01*SUN;
+{   965} G2N3002 +GNO                =       G1N3002 +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{   966} G2N3002 +GNO                =       GNN3001                                               : ARR( 0.622E-13,  -360., 0.0);
+{   967} G2N3002 +GHO2               =       GHN3002                                               : ARR( 0.179E-12, -1250., 0.0);
+{   968} G2N3002 +GNO3               =       G1N3002 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{   969} G2N3002 +MEPERO             =  0.340G1N3002 + 0.330GNO3002 + 0.330GNK3000                 : ARR( 0.565E-13,  -845., 0.0);
+{   970} G2N3002 +PERO1              =  0.460G1N3002 + 0.270GNO3002 + 0.270GNK3000                 : ARR( 0.434E-13,  -900., 0.0);
+{   971} G2N3002 +PERO2              =  0.400G1N3002 + 0.300GNO3002 + 0.300GNK3000                 : ARR( 0.162E-13, -1400., 0.0);
+{   972} G2N3002 +PERO3              =  0.460G1N3002 + 0.270GNO3002 + 0.270GNK3000                 : ARR( 0.488E-13, -1250., 0.0);
+{   973} G2N3002 +PERO5              =  0.460G1N3002 + 0.270GNO3002 + 0.270GNK3000                 : ARR( 0.183E-11,   450., 0.0);
+{   974} G2N3002 +PERO6              =  0.300G1N3002 + 0.350GNO3002 + 0.350GNK3000                 : ARR( 0.168E-13, -1300., 0.0);
+{   975} G2N3002 +PERO9              =  0.650G1N3002 + 0.350GNK3000                                : ARR( 0.100E-10,     0., 0.0);
+{   976} G1N3002                     =       GCH3O2  +      GND2000                                : ARR( 0.200E+15,  9138., 0.0);
+{   977} G1N3002                     =       GD02000 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  8739., 0.0);
+{   978} GH03000 +GHO                =       G2H3000                                               : ARR( 0.116E-11,     0., 0.0);
+{   979} GH03000 +GHO                =       GD03000 +      GHO                                    : ARR( 0.162E-10,     0., 0.0);
+{   980} GH03000 +GHO                =       G203000                                               : ARR( 0.192E-11,  -190., 0.0);
+{   981} GH03000+HV               =       G103000 +      GHO                                    :  0.100E+01*SUN;
+{   982} G2H3000 +GNO                =       G1H3000 +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{   983} G2H3000 +GNO                =       GHN3001                                               : ARR( 0.622E-13,  -360., 0.0);
+{   984} G2H3000 +GHO2               =       GHH3000                                               : ARR( 0.179E-12, -1250., 0.0);
+{   985} G2H3000 +GNO3               =       G1H3000 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{   986} G2H3000 +MEPERO             =  0.340G1H3000 + 0.330GHO3000 + 0.330GHK3000                 : ARR( 0.565E-13,  -845., 0.0);
+{   987} G2H3000 +PERO1              =  0.460G1H3000 + 0.270GHO3000 + 0.270GHK3000                 : ARR( 0.434E-13,  -900., 0.0);
+{   988} G2H3000 +PERO2              =  0.400G1H3000 + 0.300GHO3000 + 0.300GHK3000                 : ARR( 0.162E-13, -1400., 0.0);
+{   989} G2H3000 +PERO3              =  0.460G1H3000 + 0.270GHO3000 + 0.270GHK3000                 : ARR( 0.488E-13, -1250., 0.0);
+{   990} G2H3000 +PERO5              =  0.460G1H3000 + 0.270GHO3000 + 0.270GHK3000                 : ARR( 0.183E-11,   450., 0.0);
+{   991} G2H3000 +PERO6              =  0.300G1H3000 + 0.350GHO3000 + 0.350GHK3000                 : ARR( 0.168E-13, -1300., 0.0);
+{   992} G2H3000 +PERO9              =  0.650G1H3000 + 0.350GHK3000                                : ARR( 0.100E-10,     0., 0.0);
+{   993} G1H3000                     =       GD02000 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  7200., 0.0);
+{   994} GO03000 +GHO                =       G2O3002                                               : ARR( 0.122E-11,     0., 0.0);
+{   995} GO03000 +GHO                =       GD03000 +      GHO2                                   : ARR( 0.428E-11,     0., 0.0);
+{   996} G2O3002 +GNO                =       G1O3002 +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{   997} G2O3002 +GNO                =       GNO3001                                               : ARR( 0.622E-13,  -360., 0.0);
+{   998} G2O3002 +GHO2               =       GHO3002                                               : ARR( 0.179E-12, -1250., 0.0);
+{   999} G2O3002 +GNO3               =       G1O3002 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  1000} G2O3002 +MEPERO             =  0.340G1O3002 + 0.330GOO3000 + 0.330GKO3000                 : ARR( 0.565E-13,  -845., 0.0);
+{  1001} G2O3002 +PERO1              =  0.460G1O3002 + 0.270GOO3000 + 0.270GKO3000                 : ARR( 0.434E-13,  -900., 0.0);
+{  1002} G2O3002 +PERO2              =  0.400G1O3002 + 0.300GOO3000 + 0.300GKO3000                 : ARR( 0.162E-13, -1400., 0.0);
+{  1003} G2O3002 +PERO3              =  0.460G1O3002 + 0.270GOO3000 + 0.270GKO3000                 : ARR( 0.488E-13, -1250., 0.0);
+{  1004} G2O3002 +PERO5              =  0.460G1O3002 + 0.270GOO3000 + 0.270GKO3000                 : ARR( 0.183E-11,   450., 0.0);
+{  1005} G2O3002 +PERO6              =  0.300G1O3002 + 0.350GOO3000 + 0.350GKO3000                 : ARR( 0.168E-13, -1300., 0.0);
+{  1006} G2O3002 +PERO9              =  0.650G1O3002 + 0.350GKO3000                                : ARR( 0.100E-10,     0., 0.0);
+{  1007} G1O3002                     =       GD02000 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  5101., 0.0);
+{  1008} GH02000 +GHO                =       GD02000 +      GHO                                    : ARR( 0.132E-10,     0., 0.0);
+{  1009} GH02000 +GHO                =       G202000                                               : ARR( 0.192E-11,  -190., 0.0);
+{  1010} GH02000+HV               =       G102000 +      GHO                                    :  0.100E+01*SUN;
+{  1011} GO02000 +GHO                =       GD02000 +      GHO2                                   : ARR( 0.410E-11,    70., 0.0);
+{  1012} GNN5000 +GHO                =       G2N500G                                               : ARR( 0.591E-12,     0., 0.0);
+{  1013} GNN5000 +GHO                =       G2N500H                                               : ARR( 0.148E-11,     0., 0.0);
+{  1014} GNN5000+HV               =       G1N5000 +      GNO2                                   :  0.200E+01*SUN;
+{  1015} G2N500G +GNO                =       G1N500G +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  1016} G2N500G +GNO                =       GNN500C                                               : ARR( 0.182E-12,  -360., 0.0);
+{  1017} G2N500G +GHO2               =       GHN500I                                               : ARR( 0.242E-12, -1250., 0.0);
+{  1018} G2N500G +GNO3               =       G1N500G +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  1019} G2N500G +MEPERO             =  0.340G1N500G + 0.330GNN5005 + 0.330GNN500D                 : ARR( 0.565E-13,  -845., 0.0);
+{  1020} G2N500G +PERO1              =  0.460G1N500G + 0.270GNN5005 + 0.270GNN500D                 : ARR( 0.434E-13,  -900., 0.0);
+{  1021} G2N500G +PERO2              =  0.400G1N500G + 0.300GNN5005 + 0.300GNN500D                 : ARR( 0.162E-13, -1400., 0.0);
+{  1022} G2N500G +PERO3              =  0.460G1N500G + 0.270GNN5005 + 0.270GNN500D                 : ARR( 0.488E-13, -1250., 0.0);
+{  1023} G2N500G +PERO5              =  0.460G1N500G + 0.270GNN5005 + 0.270GNN500D                 : ARR( 0.183E-11,   450., 0.0);
+{  1024} G2N500G +PERO6              =  0.300G1N500G + 0.350GNN5005 + 0.350GNN500D                 : ARR( 0.168E-13, -1300., 0.0);
+{  1025} G2N500G +PERO9              =  0.650G1N500G + 0.350GNN500D                                : ARR( 0.100E-10,     0., 0.0);
+{  1026} G2N500H +GNO                =       G1N500H +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  1027} G2N500H +GNO                =       GNN500E                                               : ARR( 0.182E-12,  -360., 0.0);
+{  1028} G2N500H +GHO2               =       GHN500J                                               : ARR( 0.242E-12, -1250., 0.0);
+{  1029} G2N500H +GNO3               =       G1N500H +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  1030} G2N500H +MEPERO             =  0.480G1N500H + 0.260GNN500F + 0.260GNN500G                 : ARR( 0.616E-11,   905., 0.0);
+{  1031} G2N500H +PERO1              =  0.600G1N500H + 0.200GNN500F + 0.200GNN500G                 : ARR( 0.473E-11,   850., 0.0);
+{  1032} G2N500H +PERO2              =  0.560G1N500H + 0.220GNN500F + 0.220GNN500G                 : ARR( 0.177E-11,   350., 0.0);
+{  1033} G2N500H +PERO3              =  0.600G1N500H + 0.200GNN500F + 0.200GNN500G                 : ARR( 0.533E-11,   500., 0.0);
+{  1034} G2N500H +PERO5              =  0.600G1N500H + 0.200GNN500F + 0.200GNN500G                 : ARR( 0.200E-09,  2200., 0.0);
+{  1035} G2N500H +PERO6              =  0.460G1N500H + 0.270GNN500F + 0.270GNN500G                 : ARR( 0.183E-11,   450., 0.0);
+{  1036} G2N500H +PERO9              =  0.800G1N500H + 0.200GNN500G                                : ARR( 0.100E-10,     0., 0.0);
+{  1037} G1N500G                     =       GND5001 +      GNO2                                   : ARR( 0.160E+12,  4531., 0.0);
+{  1038} G1N500G                     =       G2N3000 +      GND2000                                : ARR( 0.200E+15,  7488., 0.0);
+{  1039} G1N500H                     =       G2N2000 +      GND3000                                : ARR( 0.400E+15,  6819., 0.0);
+{  1040} GHN5000 +GHO                =       G2H5003                                               : ARR( 0.143E-11,     0., 0.0);
+{  1041} GHN5000 +GHO                =       G2H5004                                               : ARR( 0.143E-11,     0., 0.0);
+{  1042} GHN5000 +GHO                =       GND5000 +      GHO                                    : ARR( 0.163E-10,     0., 0.0);
+{  1043} GHN5000 +GHO                =       G2N5000                                               : ARR( 0.193E-11,  -190., 0.0);
+{  1044} GHN5000+HV               =       G1H5003 +      GNO2                                   :  0.100E+01*SUN;
+{  1045} GHN5000+HV               =       G1N5000 +      GHO                                    :  0.100E+01*SUN;
+{  1046} G2H5003 +GNO                =       G1H5004 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  1047} G2H5003 +GNO                =       GHN500K                                               : ARR( 0.182E-12,  -360., 0.0);
+{  1048} G2H5003 +GHO2               =       GHH5003                                               : ARR( 0.242E-12, -1250., 0.0);
+{  1049} G2H5003 +GNO3               =       G1H5004 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  1050} G2H5003 +MEPERO             =  0.480G1H5004 + 0.260GHN500L + 0.260GHN500M                 : ARR( 0.616E-11,   905., 0.0);
+{  1051} G2H5003 +PERO1              =  0.600G1H5004 + 0.200GHN500L + 0.200GHN500M                 : ARR( 0.473E-11,   850., 0.0);
+{  1052} G2H5003 +PERO2              =  0.560G1H5004 + 0.220GHN500L + 0.220GHN500M                 : ARR( 0.177E-11,   350., 0.0);
+{  1053} G2H5003 +PERO3              =  0.600G1H5004 + 0.200GHN500L + 0.200GHN500M                 : ARR( 0.533E-11,   500., 0.0);
+{  1054} G2H5003 +PERO5              =  0.600G1H5004 + 0.200GHN500L + 0.200GHN500M                 : ARR( 0.200E-09,  2200., 0.0);
+{  1055} G2H5003 +PERO6              =  0.460G1H5004 + 0.270GHN500L + 0.270GHN500M                 : ARR( 0.183E-11,   450., 0.0);
+{  1056} G2H5003 +PERO9              =  0.800G1H5004 + 0.200GHN500M                                : ARR( 0.100E-10,     0., 0.0);
+{  1057} G2H5004 +GNO                =       G1H5005 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  1058} G2H5004 +GNO                =       GHN500N                                               : ARR( 0.182E-12,  -360., 0.0);
+{  1059} G2H5004 +GHO2               =       GHH5004                                               : ARR( 0.242E-12, -1250., 0.0);
+{  1060} G2H5004 +GNO3               =       G1H5005 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  1061} G2H5004 +MEPERO             =  0.340G1H5005 + 0.330GHN5008 + 0.330GHN500O                 : ARR( 0.565E-13,  -845., 0.0);
+{  1062} G2H5004 +PERO1              =  0.460G1H5005 + 0.270GHN5008 + 0.270GHN500O                 : ARR( 0.434E-13,  -900., 0.0);
+{  1063} G2H5004 +PERO2              =  0.400G1H5005 + 0.300GHN5008 + 0.300GHN500O                 : ARR( 0.162E-13, -1400., 0.0);
+{  1064} G2H5004 +PERO3              =  0.460G1H5005 + 0.270GHN5008 + 0.270GHN500O                 : ARR( 0.488E-13, -1250., 0.0);
+{  1065} G2H5004 +PERO5              =  0.460G1H5005 + 0.270GHN5008 + 0.270GHN500O                 : ARR( 0.183E-11,   450., 0.0);
+{  1066} G2H5004 +PERO6              =  0.300G1H5005 + 0.350GHN5008 + 0.350GHN500O                 : ARR( 0.168E-13, -1300., 0.0);
+{  1067} G2H5004 +PERO9              =  0.650G1H5005 + 0.350GHN500O                                : ARR( 0.100E-10,     0., 0.0);
+{  1068} G1H5003                     =       G2H5005                                               : ARR( 0.160E+12,  3000., 0.0);
+{  1069} G1H5004                     =       G2N2000 +      GHD3000                                : ARR( 0.200E+15,  6819., 0.0);
+{  1070} G1H5004                     =       GND3000 +      G2H2000                                : ARR( 0.200E+15,  6819., 0.0);
+{  1071} G1H5005                     =       GHD5000 +      GNO2                                   : ARR( 0.160E+12,  4531., 0.0);
+{  1072} G1H5005                     =       G2N3000 +      GHD2000                                : ARR( 0.200E+15,  7490., 0.0);
+{  1073} G1H5005                     =       GND4001 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  7140., 0.0);
+{  1074} G2H5005 +GNO                =       G1H5006 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  1075} G2H5005 +GNO                =       GHN500P                                               : ARR( 0.182E-12,  -360., 0.0);
+{  1076} G2H5005 +GHO2               =       GHH5005                                               : ARR( 0.242E-12, -1250., 0.0);
+{  1077} G2H5005 +GNO3               =       G1H5006 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  1078} G2H5005 +MEPERO             =  0.340G1H5006 + 0.330GHO5004 + 0.330GHK5002                 : ARR( 0.565E-13,  -845., 0.0);
+{  1079} G2H5005 +PERO1              =  0.460G1H5006 + 0.270GHO5004 + 0.270GHK5002                 : ARR( 0.434E-13,  -900., 0.0);
+{  1080} G2H5005 +PERO2              =  0.400G1H5006 + 0.300GHO5004 + 0.300GHK5002                 : ARR( 0.162E-13, -1400., 0.0);
+{  1081} G2H5005 +PERO3              =  0.460G1H5006 + 0.270GHO5004 + 0.270GHK5002                 : ARR( 0.488E-13, -1250., 0.0);
+{  1082} G2H5005 +PERO5              =  0.460G1H5006 + 0.270GHO5004 + 0.270GHK5002                 : ARR( 0.183E-11,   450., 0.0);
+{  1083} G2H5005 +PERO6              =  0.300G1H5006 + 0.350GHO5004 + 0.350GHK5002                 : ARR( 0.168E-13, -1300., 0.0);
+{  1084} G2H5005 +PERO9              =  0.650G1H5006 + 0.350GHK5002                                : ARR( 0.100E-10,     0., 0.0);
+{  1085} G1H5006                     =       GHD5000 +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{  1086} GNO5002 +GHO                =       GND5000 +      GHO2                                   : ARR( 0.430E-11,     0., 0.0);
+{  1087} GNO5002 +GHO                =       G2N500I                                               : ARR( 0.151E-11,     0., 0.0);
+{  1088} GNO5002 +GHO                =       G2N500J                                               : ARR( 0.151E-11,     0., 0.0);
+{  1089} GNO5002+HV               =       G1O500C +      GNO2                                   :  0.100E+01*SUN;
+{  1090} G2N500I +GNO                =       G1N500I +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  1091} G2N500I +GNO                =       GNN500H                                               : ARR( 0.182E-12,  -360., 0.0);
+{  1092} G2N500I +GHO2               =       GHN500Q                                               : ARR( 0.242E-12, -1250., 0.0);
+{  1093} G2N500I +GNO3               =       G1N500I +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  1094} G2N500I +MEPERO             =  0.340G1N500I + 0.330GNO5008 + 0.330GNK500D                 : ARR( 0.565E-13,  -845., 0.0);
+{  1095} G2N500I +PERO1              =  0.460G1N500I + 0.270GNO5008 + 0.270GNK500D                 : ARR( 0.434E-13,  -900., 0.0);
+{  1096} G2N500I +PERO2              =  0.400G1N500I + 0.300GNO5008 + 0.300GNK500D                 : ARR( 0.162E-13, -1400., 0.0);
+{  1097} G2N500I +PERO3              =  0.460G1N500I + 0.270GNO5008 + 0.270GNK500D                 : ARR( 0.488E-13, -1250., 0.0);
+{  1098} G2N500I +PERO5              =  0.460G1N500I + 0.270GNO5008 + 0.270GNK500D                 : ARR( 0.183E-11,   450., 0.0);
+{  1099} G2N500I +PERO6              =  0.300G1N500I + 0.350GNO5008 + 0.350GNK500D                 : ARR( 0.168E-13, -1300., 0.0);
+{  1100} G2N500I +PERO9              =  0.650G1N500I + 0.350GNK500D                                : ARR( 0.100E-10,     0., 0.0);
+{  1101} G2N500J +GNO                =       G1N500J +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  1102} G2N500J +GNO                =       GNN500I                                               : ARR( 0.182E-12,  -360., 0.0);
+{  1103} G2N500J +GHO2               =       GHN500R                                               : ARR( 0.242E-12, -1250., 0.0);
+{  1104} G2N500J +GNO3               =       G1N500J +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  1105} G2N500J +MEPERO             =  0.480G1N500J + 0.260GNO500I + 0.260GNK500E                 : ARR( 0.616E-11,   905., 0.0);
+{  1106} G2N500J +PERO1              =  0.600G1N500J + 0.200GNO500I + 0.200GNK500E                 : ARR( 0.473E-11,   850., 0.0);
+{  1107} G2N500J +PERO2              =  0.560G1N500J + 0.220GNO500I + 0.220GNK500E                 : ARR( 0.177E-11,   350., 0.0);
+{  1108} G2N500J +PERO3              =  0.600G1N500J + 0.200GNO500I + 0.200GNK500E                 : ARR( 0.533E-11,   500., 0.0);
+{  1109} G2N500J +PERO5              =  0.600G1N500J + 0.200GNO500I + 0.200GNK500E                 : ARR( 0.200E-09,  2200., 0.0);
+{  1110} G2N500J +PERO6              =  0.460G1N500J + 0.270GNO500I + 0.270GNK500E                 : ARR( 0.183E-11,   450., 0.0);
+{  1111} G2N500J +PERO9              =  0.800G1N500J + 0.200GNK500E                                : ARR( 0.100E-10,     0., 0.0);
+{  1112} G1O500C                     =       G2O500C                                               : ARR( 0.160E+12,  3000., 0.0);
+{  1113} G1N500I                     =       GCH2O   +      GND4001 +      GHO2                    : ARR( 0.200E+15,  5041., 0.0);
+{  1114} G1N500J                     =       G2O2000 +      GND3000                                : ARR( 0.200E+15,  6819., 0.0);
+{  1115} G1N500J                     =       GDO3000 +      G2N2000                                : ARR( 0.200E+15,  6819., 0.0);
+{  1116} G2O500C +GNO                =       G1O500D +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  1117} G2O500C +GNO                =       GNO500J                                               : ARR( 0.182E-12,  -360., 0.0);
+{  1118} G2O500C +GHO2               =       GHO500F                                               : ARR( 0.242E-12, -1250., 0.0);
+{  1119} G2O500C +GNO3               =       G1O500D +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  1120} G2O500C +MEPERO             =  0.340G1O500D + 0.330GOO5003 + 0.330GKO5003                 : ARR( 0.565E-13,  -845., 0.0);
+{  1121} G2O500C +PERO1              =  0.460G1O500D + 0.270GOO5003 + 0.270GKO5003                 : ARR( 0.434E-13,  -900., 0.0);
+{  1122} G2O500C +PERO2              =  0.400G1O500D + 0.300GOO5003 + 0.300GKO5003                 : ARR( 0.162E-13, -1400., 0.0);
+{  1123} G2O500C +PERO3              =  0.460G1O500D + 0.270GOO5003 + 0.270GKO5003                 : ARR( 0.488E-13, -1250., 0.0);
+{  1124} G2O500C +PERO5              =  0.460G1O500D + 0.270GOO5003 + 0.270GKO5003                 : ARR( 0.183E-11,   450., 0.0);
+{  1125} G2O500C +PERO6              =  0.300G1O500D + 0.350GOO5003 + 0.350GKO5003                 : ARR( 0.168E-13, -1300., 0.0);
+{  1126} G2O500C +PERO9              =  0.650G1O500D + 0.350GKO5003                                : ARR( 0.100E-10,     0., 0.0);
+{  1127} G1O500D                     =       GDO5001 +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{  1128} G1O500D                     =       GDO4000 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  5041., 0.0);
+{  1129} GND5000 +GHO                =       G2N500K                                               : ARR( 0.469E-11,     0., 0.0);
+{  1130} GND5000 +GHO                =       G3N5000                                               : ARR( 0.218E-10,     0., 0.0);
+{  1131} GND5000 +GNO3               =       G3N5000 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{  1132} GND5000+HV               =       G1D5002 +      GNO2                                   :  0.100E+01*SUN;
+{  1133} GND5000+HV               =       G2N4000 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{  1134} GND5000+HV               =       GNU3000 +      GD02000                                :  0.100E+01*SUN;
+{  1135} G2N500K +GNO                =       G1N500K +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  1136} G2N500K +GNO                =       GNN500J                                               : ARR( 0.182E-12,  -360., 0.0);
+{  1137} G2N500K +GHO2               =       GHN500S                                               : ARR( 0.242E-12, -1250., 0.0);
+{  1138} G2N500K +GNO3               =       G1N500K +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  1139} G2N500K +MEPERO             =  0.480G1N500K + 0.260GND5006 + 0.260GND5007                 : ARR( 0.616E-11,   905., 0.0);
+{  1140} G2N500K +PERO1              =  0.600G1N500K + 0.200GND5006 + 0.200GND5007                 : ARR( 0.473E-11,   850., 0.0);
+{  1141} G2N500K +PERO2              =  0.560G1N500K + 0.220GND5006 + 0.220GND5007                 : ARR( 0.177E-11,   350., 0.0);
+{  1142} G2N500K +PERO3              =  0.600G1N500K + 0.200GND5006 + 0.200GND5007                 : ARR( 0.533E-11,   500., 0.0);
+{  1143} G2N500K +PERO5              =  0.600G1N500K + 0.200GND5006 + 0.200GND5007                 : ARR( 0.200E-09,  2200., 0.0);
+{  1144} G2N500K +PERO6              =  0.460G1N500K + 0.270GND5006 + 0.270GND5007                 : ARR( 0.183E-11,   450., 0.0);
+{  1145} G2N500K +PERO9              =  0.800G1N500K + 0.200GND5007                                : ARR( 0.100E-10,     0., 0.0);
+{  1146} G3N5000 +GHO2               =  0.800GGN5000 + 0.200GAN5000 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  1147} G3N5000 +GNO                =       G2N4000 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{  1148} G3N5000 +GNO2               =       GPN5000                                               : ARR( 0.330E-08,     0.,-1.0);
+{  1149} G3N5000 +GNO3               =       G2N4000 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{  1150} G3N5000 +MEPERO             =  0.685G2N4000 + 0.315GAN5000 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  1151} G3N5000 +PERO1              =  0.800G2N4000 + 0.200GAN5000 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  1152} G3N5000 +PERO2              =  0.750G2N4000 + 0.250GAN5000 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  1153} G3N5000 +PERO3              =  0.800G2N4000 + 0.200GAN5000 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  1154} G3N5000 +PERO5              =  0.650G2N4000 + 0.350GAN5000 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  1155} G3N5000 +PERO6              =  0.650G2N4000 + 0.350GAN5000 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  1156} G3N5000 +PERO9              =       G2N4000 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{  1157} G1D5002                     =       G2D5002                                               : ARR( 0.160E+12,  3221., 0.0);
+{  1158} G2N4000 +GNO                =       G1N4000 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  1159} G2N4000 +GNO                =       GNN4000                                               : ARR( 0.111E-12,  -360., 0.0);
+{  1160} G2N4000 +GHO2               =       GHN4000                                               : ARR( 0.214E-12, -1250., 0.0);
+{  1161} G2N4000 +GNO3               =       G1N4000 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  1162} G2N4000 +MEPERO             =  0.480G1N4000 + 0.260GNO4000 + 0.260GND4001                 : ARR( 0.146E-12,  -445., 0.0);
+{  1163} G2N4000 +PERO1              =  0.600G1N4000 + 0.200GNO4000 + 0.200GND4001                 : ARR( 0.112E-12,  -500., 0.0);
+{  1164} G2N4000 +PERO2              =  0.560G1N4000 + 0.220GNO4000 + 0.220GND4001                 : ARR( 0.418E-13, -1000., 0.0);
+{  1165} G2N4000 +PERO3              =  0.600G1N4000 + 0.200GNO4000 + 0.200GND4001                 : ARR( 0.126E-12,  -850., 0.0);
+{  1166} G2N4000 +PERO5              =  0.600G1N4000 + 0.200GNO4000 + 0.200GND4001                 : ARR( 0.473E-11,   850., 0.0);
+{  1167} G2N4000 +PERO6              =  0.460G1N4000 + 0.270GNO4000 + 0.270GND4001                 : ARR( 0.434E-13,  -900., 0.0);
+{  1168} G2N4000 +PERO9              =  0.800G1N4000 + 0.200GND4001                                : ARR( 0.100E-10,     0., 0.0);
+{  1169} G1N500K                     =       G2N2000 +      GDD3000                                : ARR( 0.200E+15,  6436., 0.0);
+{  1170} G1N500K                     =       GND3000 +      G2D2000                                : ARR( 0.200E+15,  6974., 0.0);
+{  1171} G2D5002 +GNO                =       G1D5003 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  1172} G2D5002 +GNO                =       GND5008                                               : ARR( 0.182E-12,  -360., 0.0);
+{  1173} G2D5002 +GHO2               =       GHD5004                                               : ARR( 0.242E-12, -1250., 0.0);
+{  1174} G2D5002 +GNO3               =       G1D5003 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  1175} G2D5002 +MEPERO             =  0.340G1D5003 + 0.330GDO5006 + 0.330GDK5004                 : ARR( 0.565E-13,  -845., 0.0);
+{  1176} G2D5002 +PERO1              =  0.460G1D5003 + 0.270GDO5006 + 0.270GDK5004                 : ARR( 0.434E-13,  -900., 0.0);
+{  1177} G2D5002 +PERO2              =  0.400G1D5003 + 0.300GDO5006 + 0.300GDK5004                 : ARR( 0.162E-13, -1400., 0.0);
+{  1178} G2D5002 +PERO3              =  0.460G1D5003 + 0.270GDO5006 + 0.270GDK5004                 : ARR( 0.488E-13, -1250., 0.0);
+{  1179} G2D5002 +PERO5              =  0.460G1D5003 + 0.270GDO5006 + 0.270GDK5004                 : ARR( 0.183E-11,   450., 0.0);
+{  1180} G2D5002 +PERO6              =  0.300G1D5003 + 0.350GDO5006 + 0.350GDK5004                 : ARR( 0.168E-13, -1300., 0.0);
+{  1181} G2D5002 +PERO9              =  0.650G1D5003 + 0.350GDK5004                                : ARR( 0.100E-10,     0., 0.0);
+{  1182} G1N4000 +OXYGEN             =       GND4001 +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{  1183} G1N4000                     =       GDO4000 +      GNO2                                   : ARR( 0.160E+12,  4531., 0.0);
+{  1184} G1D5003                     =       GDD5000 +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{  1185} G1D5003                     =       GDO4000 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5437., 0.0);
+{  1186} GNN5001 +GHO                =       GNK5000 +      GNO2                                   : ARR( 0.100E-12,     0., 0.0);
+{  1187} GNN5001 +GHO                =       G2N500L                                               : ARR( 0.296E-12,     0., 0.0);
+{  1188} GNN5001 +GHO                =       G2N500M                                               : ARR( 0.296E-12,     0., 0.0);
+{  1189} GNN5001 +GHO                =       GND5003 +      GNO2                                   : ARR( 0.481E-13,     0., 0.0);
+{  1190} GNN5001+HV               =       G1N5001 +      GNO2                                   :  0.100E+01*SUN;
+{  1191} GNN5001+HV               =       G1N5006 +      GNO2                                   :  0.100E+01*SUN;
+{  1192} G2N500L +GNO                =       G1N500L +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  1193} G2N500L +GNO                =       GNN500K                                               : ARR( 0.182E-12,  -360., 0.0);
+{  1194} G2N500L +GHO2               =       GHN500T                                               : ARR( 0.242E-12, -1250., 0.0);
+{  1195} G2N500L +GNO3               =       G1N500L +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  1196} G2N500L +MEPERO             =  0.340G1N500L + 0.330GNN500L + 0.330GNN500M                 : ARR( 0.565E-13,  -845., 0.0);
+{  1197} G2N500L +PERO1              =  0.460G1N500L + 0.270GNN500L + 0.270GNN500M                 : ARR( 0.434E-13,  -900., 0.0);
+{  1198} G2N500L +PERO2              =  0.400G1N500L + 0.300GNN500L + 0.300GNN500M                 : ARR( 0.162E-13, -1400., 0.0);
+{  1199} G2N500L +PERO3              =  0.460G1N500L + 0.270GNN500L + 0.270GNN500M                 : ARR( 0.488E-13, -1250., 0.0);
+{  1200} G2N500L +PERO5              =  0.460G1N500L + 0.270GNN500L + 0.270GNN500M                 : ARR( 0.183E-11,   450., 0.0);
+{  1201} G2N500L +PERO6              =  0.300G1N500L + 0.350GNN500L + 0.350GNN500M                 : ARR( 0.168E-13, -1300., 0.0);
+{  1202} G2N500L +PERO9              =  0.650G1N500L + 0.350GNN500M                                : ARR( 0.100E-10,     0., 0.0);
+{  1203} G2N500M +GNO                =       G1N500M +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  1204} G2N500M +GNO                =       GNN500N                                               : ARR( 0.182E-12,  -360., 0.0);
+{  1205} G2N500M +GHO2               =       GHN500U                                               : ARR( 0.242E-12, -1250., 0.0);
+{  1206} G2N500M +GNO3               =       G1N500M +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  1207} G2N500M +MEPERO             =  0.340G1N500M + 0.330GNN500O + 0.330GNN500P                 : ARR( 0.565E-13,  -845., 0.0);
+{  1208} G2N500M +PERO1              =  0.460G1N500M + 0.270GNN500O + 0.270GNN500P                 : ARR( 0.434E-13,  -900., 0.0);
+{  1209} G2N500M +PERO2              =  0.400G1N500M + 0.300GNN500O + 0.300GNN500P                 : ARR( 0.162E-13, -1400., 0.0);
+{  1210} G2N500M +PERO3              =  0.460G1N500M + 0.270GNN500O + 0.270GNN500P                 : ARR( 0.488E-13, -1250., 0.0);
+{  1211} G2N500M +PERO5              =  0.460G1N500M + 0.270GNN500O + 0.270GNN500P                 : ARR( 0.183E-11,   450., 0.0);
+{  1212} G2N500M +PERO6              =  0.300G1N500M + 0.350GNN500O + 0.350GNN500P                 : ARR( 0.168E-13, -1300., 0.0);
+{  1213} G2N500M +PERO9              =  0.650G1N500M + 0.350GNN500P                                : ARR( 0.100E-10,     0., 0.0);
+{  1214} G1N500L                     =       GD02000 +      GND3000 +      GNO2                    : ARR( 0.200E+15,  6455., 0.0);
+{  1215} G1N500L                     =       GND3001 +      G2N2000                                : ARR( 0.200E+15,  7074., 0.0);
+{  1216} G1N500M                     =       G2N500N                                               : ARR( 0.240E+12,  4897., 0.0);
+{  1217} G1N500M                     =       G2N3001 +      GND2000                                : ARR( 0.200E+15,  6983., 0.0);
+{  1218} G2N500N +GNO                =       G1N500N +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  1219} G2N500N +GNO                =       GNN500Q                                               : ARR( 0.182E-12,  -360., 0.0);
+{  1220} G2N500N +GHO2               =       GHN500W                                               : ARR( 0.242E-12, -1250., 0.0);
+{  1221} G2N500N +GNO3               =       G1N500N +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  1222} G2N500N +MEPERO             =  0.480G1N500N + 0.260GNN500R + 0.260GNN500S                 : ARR( 0.164E-12,  -795., 0.0);
+{  1223} G2N500N +PERO1              =  0.600G1N500N + 0.200GNN500R + 0.200GNN500S                 : ARR( 0.126E-12,  -850., 0.0);
+{  1224} G2N500N +PERO2              =  0.560G1N500N + 0.220GNN500R + 0.220GNN500S                 : ARR( 0.471E-13, -1350., 0.0);
+{  1225} G2N500N +PERO3              =  0.600G1N500N + 0.200GNN500R + 0.200GNN500S                 : ARR( 0.142E-12, -1200., 0.0);
+{  1226} G2N500N +PERO5              =  0.600G1N500N + 0.200GNN500R + 0.200GNN500S                 : ARR( 0.533E-11,   500., 0.0);
+{  1227} G2N500N +PERO6              =  0.460G1N500N + 0.270GNN500R + 0.270GNN500S                 : ARR( 0.488E-13, -1250., 0.0);
+{  1228} G2N500N +PERO9              =  0.800G1N500N + 0.200GNN500S                                : ARR( 0.100E-10,     0., 0.0);
+{  1229} G1N500N                     =       GNN500T +      GHO2                                   : ARR( 0.800E+11,  2744., 0.0);
+{  1230} GHN5001 +GHO                =       GNK5000 +      GHO                                    : ARR( 0.352E-10,     0., 0.0);
+{  1231} GHN5001 +GHO                =       G2N5001                                               : ARR( 0.200E-11,  -190., 0.0);
+{  1232} GHN5001+HV               =       G1N5001 +      GHO                                    :  0.100E+01*SUN;
+{  1233} GHN5001+HV               =       G1H5007 +      GNO2                                   :  0.100E+01*SUN;
+{  1234} G1H5007                     =       GKO5000 +      GHO                                    : ARR( 0.800E+11,  1771., 0.0);
+{  1235} GNK5000 +GHO                =       G2N500O                                               : ARR( 0.105E-12,     0., 0.0);
+{  1236} GNK5000 +GHO                =       G2N500P                                               : ARR( 0.883E-12,     0., 0.0);
+{  1237} GNK5000 +GHO                =       G2N500Q                                               : ARR( 0.918E-12,     0., 0.0);
+{  1238} GNK5000+HV               =       G3K2000 +      G2N3000                                :  0.100E+01*SUN;
+{  1239} GNK5000+HV               =       GK03000 +      G2D2000 +      GNO2                    :  0.100E+01*SUN;
+{  1240} GNK5000+HV               =       G1K5008 +      GNO2                                   :  0.100E+01*SUN;
+{  1241} G2N500O +GNO                =       G1N500O +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  1242} G2N500O +GNO                =       GNN500D                                               : ARR( 0.182E-12,  -360., 0.0);
+{  1243} G2N500O +GHO2               =       GHN500O                                               : ARR( 0.242E-12, -1250., 0.0);
+{  1244} G2N500O +GNO3               =       G1N500O +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  1245} G2N500O +MEPERO             =  0.480G1N500O + 0.260GNK500D + 0.260GND5009                 : ARR( 0.164E-12,  -795., 0.0);
+{  1246} G2N500O +PERO1              =  0.600G1N500O + 0.200GNK500D + 0.200GND5009                 : ARR( 0.126E-12,  -850., 0.0);
+{  1247} G2N500O +PERO2              =  0.560G1N500O + 0.220GNK500D + 0.220GND5009                 : ARR( 0.471E-13, -1350., 0.0);
+{  1248} G2N500O +PERO3              =  0.600G1N500O + 0.200GNK500D + 0.200GND5009                 : ARR( 0.142E-12, -1200., 0.0);
+{  1249} G2N500O +PERO5              =  0.600G1N500O + 0.200GNK500D + 0.200GND5009                 : ARR( 0.533E-11,   500., 0.0);
+{  1250} G2N500O +PERO6              =  0.460G1N500O + 0.270GNK500D + 0.270GND5009                 : ARR( 0.488E-13, -1250., 0.0);
+{  1251} G2N500O +PERO9              =  0.800G1N500O + 0.200GND5009                                : ARR( 0.100E-10,     0., 0.0);
+{  1252} G2N500P +GNO                =       G1N500P +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  1253} G2N500P +GNO                =       GNN500U                                               : ARR( 0.182E-12,  -360., 0.0);
+{  1254} G2N500P +GHO2               =       GHN500X                                               : ARR( 0.242E-12, -1250., 0.0);
+{  1255} G2N500P +GNO3               =       G1N500P +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  1256} G2N500P +MEPERO             =  0.340G1N500P + 0.330GNK500F + 0.330GNK500G                 : ARR( 0.565E-13,  -845., 0.0);
+{  1257} G2N500P +PERO1              =  0.460G1N500P + 0.270GNK500F + 0.270GNK500G                 : ARR( 0.434E-13,  -900., 0.0);
+{  1258} G2N500P +PERO2              =  0.400G1N500P + 0.300GNK500F + 0.300GNK500G                 : ARR( 0.162E-13, -1400., 0.0);
+{  1259} G2N500P +PERO3              =  0.460G1N500P + 0.270GNK500F + 0.270GNK500G                 : ARR( 0.488E-13, -1250., 0.0);
+{  1260} G2N500P +PERO5              =  0.460G1N500P + 0.270GNK500F + 0.270GNK500G                 : ARR( 0.183E-11,   450., 0.0);
+{  1261} G2N500P +PERO6              =  0.300G1N500P + 0.350GNK500F + 0.350GNK500G                 : ARR( 0.168E-13, -1300., 0.0);
+{  1262} G2N500P +PERO9              =  0.650G1N500P + 0.350GNK500G                                : ARR( 0.100E-10,     0., 0.0);
+{  1263} G2N500Q +GNO                =       G1N500Q +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  1264} G2N500Q +GNO                =       GNN500W                                               : ARR( 0.182E-12,  -360., 0.0);
+{  1265} G2N500Q +GHO2               =       GHN500Y                                               : ARR( 0.242E-12, -1250., 0.0);
+{  1266} G2N500Q +GNO3               =       G1N500Q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  1267} G2N500Q +MEPERO             =  0.340G1N500Q + 0.330GNK500H + 0.330GNK500I                 : ARR( 0.565E-13,  -845., 0.0);
+{  1268} G2N500Q +PERO1              =  0.460G1N500Q + 0.270GNK500H + 0.270GNK500I                 : ARR( 0.434E-13,  -900., 0.0);
+{  1269} G2N500Q +PERO2              =  0.400G1N500Q + 0.300GNK500H + 0.300GNK500I                 : ARR( 0.162E-13, -1400., 0.0);
+{  1270} G2N500Q +PERO3              =  0.460G1N500Q + 0.270GNK500H + 0.270GNK500I                 : ARR( 0.488E-13, -1250., 0.0);
+{  1271} G2N500Q +PERO5              =  0.460G1N500Q + 0.270GNK500H + 0.270GNK500I                 : ARR( 0.183E-11,   450., 0.0);
+{  1272} G2N500Q +PERO6              =  0.300G1N500Q + 0.350GNK500H + 0.350GNK500I                 : ARR( 0.168E-13, -1300., 0.0);
+{  1273} G2N500Q +PERO9              =  0.650G1N500Q + 0.350GNK500I                                : ARR( 0.100E-10,     0., 0.0);
+{  1274} G1K5008 +OXYGEN             =       GDK5002 +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{  1275} G1N500O                     =       G3N4000 +      GCH2O                                  : ARR( 0.200E+15,  3576., 0.0);
+{  1276} G1N500P                     =       G3K2000 +      GND3000                                : ARR( 0.200E+15,  2668., 0.0);
+{  1277} G1N500Q                     =       G2N500R                                               : ARR( 0.240E+12,  6160., 0.0);
+{  1278} G1N500Q                     =       G2K3000 +      GND2000                                : ARR( 0.200E+15,  7286., 0.0);
+{  1279} G1N500Q                     =       GDK4000 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  8296., 0.0);
+{  1280} G3N4000 +GHO2               =  0.800GGN4000 + 0.200GAN4000 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  1281} G3N4000 +GNO                =       G2N3000 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{  1282} G3N4000 +GNO2               =       GPN4000                                               : ARR( 0.330E-08,     0.,-1.0);
+{  1283} G3N4000 +GNO3               =       G2N3000 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{  1284} G3N4000 +MEPERO             =  0.685G2N3000 + 0.315GAN4000 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  1285} G3N4000 +PERO1              =  0.800G2N3000 + 0.200GAN4000 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  1286} G3N4000 +PERO2              =  0.750G2N3000 + 0.250GAN4000 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  1287} G3N4000 +PERO3              =  0.800G2N3000 + 0.200GAN4000 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  1288} G3N4000 +PERO5              =  0.650G2N3000 + 0.350GAN4000 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  1289} G3N4000 +PERO6              =  0.650G2N3000 + 0.350GAN4000 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  1290} G3N4000 +PERO9              =       G2N3000 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{  1291} G2N500R +GNO                =       G1N500R +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  1292} G2N500R +GNO                =       GNN500X                                               : ARR( 0.182E-12,  -360., 0.0);
+{  1293} G2N500R +GHO2               =       GHN500Z                                               : ARR( 0.242E-12, -1250., 0.0);
+{  1294} G2N500R +GNO3               =       G1N500R +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  1295} G2N500R +MEPERO             =  0.480G1N500R + 0.260GNK500J + 0.260GND500A                 : ARR( 0.164E-12,  -795., 0.0);
+{  1296} G2N500R +PERO1              =  0.600G1N500R + 0.200GNK500J + 0.200GND500A                 : ARR( 0.126E-12,  -850., 0.0);
+{  1297} G2N500R +PERO2              =  0.560G1N500R + 0.220GNK500J + 0.220GND500A                 : ARR( 0.471E-13, -1350., 0.0);
+{  1298} G2N500R +PERO3              =  0.600G1N500R + 0.200GNK500J + 0.200GND500A                 : ARR( 0.142E-12, -1200., 0.0);
+{  1299} G2N500R +PERO5              =  0.600G1N500R + 0.200GNK500J + 0.200GND500A                 : ARR( 0.533E-11,   500., 0.0);
+{  1300} G2N500R +PERO6              =  0.460G1N500R + 0.270GNK500J + 0.270GND500A                 : ARR( 0.488E-13, -1250., 0.0);
+{  1301} G2N500R +PERO9              =  0.800G1N500R + 0.200GND500A                                : ARR( 0.100E-10,     0., 0.0);
+{  1302} G1N500R                     =       G3N4001 +      GCH2O                                  : ARR( 0.200E+15,  3576., 0.0);
+{  1303} G3N4001 +GHO2               =  0.800GGN4001 + 0.200GAN4001 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  1304} G3N4001 +GNO                =       G2N3003 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{  1305} G3N4001 +GNO2               =       GPN4001                                               : ARR( 0.330E-08,     0.,-1.0);
+{  1306} G3N4001 +GNO3               =       G2N3003 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{  1307} G3N4001 +MEPERO             =  0.685G2N3003 + 0.315GAN4001 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  1308} G3N4001 +PERO1              =  0.800G2N3003 + 0.200GAN4001 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  1309} G3N4001 +PERO2              =  0.750G2N3003 + 0.250GAN4001 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  1310} G3N4001 +PERO3              =  0.800G2N3003 + 0.200GAN4001 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  1311} G3N4001 +PERO5              =  0.650G2N3003 + 0.350GAN4001 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  1312} G3N4001 +PERO6              =  0.650G2N3003 + 0.350GAN4001 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  1313} G3N4001 +PERO9              =       G2N3003 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{  1314} G2N3003 +GNO                =       G1N3003 +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{  1315} G2N3003 +GNO                =       GNN3002                                               : ARR( 0.622E-13,  -360., 0.0);
+{  1316} G2N3003 +GHO2               =       GHN3003                                               : ARR( 0.179E-12, -1250., 0.0);
+{  1317} G2N3003 +GNO3               =       G1N3003 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  1318} G2N3003 +MEPERO             =  0.480G1N3003 + 0.260GNO3003 + 0.260GND3002                 : ARR( 0.164E-12,  -795., 0.0);
+{  1319} G2N3003 +PERO1              =  0.600G1N3003 + 0.200GNO3003 + 0.200GND3002                 : ARR( 0.126E-12,  -850., 0.0);
+{  1320} G2N3003 +PERO2              =  0.560G1N3003 + 0.220GNO3003 + 0.220GND3002                 : ARR( 0.471E-13, -1350., 0.0);
+{  1321} G2N3003 +PERO3              =  0.600G1N3003 + 0.200GNO3003 + 0.200GND3002                 : ARR( 0.142E-12, -1200., 0.0);
+{  1322} G2N3003 +PERO5              =  0.600G1N3003 + 0.200GNO3003 + 0.200GND3002                 : ARR( 0.533E-11,   500., 0.0);
+{  1323} G2N3003 +PERO6              =  0.460G1N3003 + 0.270GNO3003 + 0.270GND3002                 : ARR( 0.488E-13, -1250., 0.0);
+{  1324} G2N3003 +PERO9              =  0.800G1N3003 + 0.200GND3002                                : ARR( 0.100E-10,     0., 0.0);
+{  1325} G1N3003                     =       GND2000 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4443., 0.0);
+{  1326} GNN5002 +GHO                =       G2N500S                                               : ARR( 0.168E-12,     0., 0.0);
+{  1327} GNN5002 +GHO                =       G2N500T                                               : ARR( 0.230E-12,     0., 0.0);
+{  1328} GNN5002 +GHO                =       GNK5001 +      GNO2                                   : ARR( 0.118E-12,     0., 0.0);
+{  1329} GNN5002 +GHO                =       G2N500U                                               : ARR( 0.565E-13,     0., 0.0);
+{  1330} GNN5002 +GHO                =       GND5002 +      GNO2                                   : ARR( 0.460E-13,     0., 0.0);
+{  1331} GNN5002+HV               =       G1N5002 +      GNO2                                   :  0.100E+01*SUN;
+{  1332} GNN5002+HV               =       G1N500A +      GNO2                                   :  0.100E+01*SUN;
+{  1333} G2N500S +GNO                =       G1N500S +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  1334} G2N500S +GNO                =       GNN500E                                               : ARR( 0.182E-12,  -360., 0.0);
+{  1335} G2N500S +GHO2               =       GHN500K                                               : ARR( 0.242E-12, -1250., 0.0);
+{  1336} G2N500S +GNO3               =       G1N500S +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  1337} G2N500S +MEPERO             =  0.480G1N500S + 0.260GNN500I + 0.260GNN500J                 : ARR( 0.146E-12,  -445., 0.0);
+{  1338} G2N500S +PERO1              =  0.600G1N500S + 0.200GNN500I + 0.200GNN500J                 : ARR( 0.112E-12,  -500., 0.0);
+{  1339} G2N500S +PERO2              =  0.560G1N500S + 0.220GNN500I + 0.220GNN500J                 : ARR( 0.418E-13, -1000., 0.0);
+{  1340} G2N500S +PERO3              =  0.600G1N500S + 0.200GNN500I + 0.200GNN500J                 : ARR( 0.126E-12,  -850., 0.0);
+{  1341} G2N500S +PERO5              =  0.600G1N500S + 0.200GNN500I + 0.200GNN500J                 : ARR( 0.473E-11,   850., 0.0);
+{  1342} G2N500S +PERO6              =  0.460G1N500S + 0.270GNN500I + 0.270GNN500J                 : ARR( 0.434E-13,  -900., 0.0);
+{  1343} G2N500S +PERO9              =  0.800G1N500S + 0.200GNN500J                                : ARR( 0.100E-10,     0., 0.0);
+{  1344} G2N500T +GNO                =       G1N500T +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  1345} G2N500T +GNO                =       GNN500K                                               : ARR( 0.182E-12,  -360., 0.0);
+{  1346} G2N500T +GHO2               =       GHN500a                                               : ARR( 0.242E-12, -1250., 0.0);
+{  1347} G2N500T +GNO3               =       G1N500T +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  1348} G2N500T +MEPERO             =  0.340G1N500T + 0.330GNN500A + 0.330GNN500U                 : ARR( 0.565E-13,  -845., 0.0);
+{  1349} G2N500T +PERO1              =  0.460G1N500T + 0.270GNN500A + 0.270GNN500U                 : ARR( 0.434E-13,  -900., 0.0);
+{  1350} G2N500T +PERO2              =  0.400G1N500T + 0.300GNN500A + 0.300GNN500U                 : ARR( 0.162E-13, -1400., 0.0);
+{  1351} G2N500T +PERO3              =  0.460G1N500T + 0.270GNN500A + 0.270GNN500U                 : ARR( 0.488E-13, -1250., 0.0);
+{  1352} G2N500T +PERO5              =  0.460G1N500T + 0.270GNN500A + 0.270GNN500U                 : ARR( 0.183E-11,   450., 0.0);
+{  1353} G2N500T +PERO6              =  0.300G1N500T + 0.350GNN500A + 0.350GNN500U                 : ARR( 0.168E-13, -1300., 0.0);
+{  1354} G2N500T +PERO9              =  0.650G1N500T + 0.350GNN500U                                : ARR( 0.100E-10,     0., 0.0);
+{  1355} G2N500U +GNO                =       G1N500U +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  1356} G2N500U +GNO                =       GNN500Y                                               : ARR( 0.182E-12,  -360., 0.0);
+{  1357} G2N500U +GHO2               =       GHN500b                                               : ARR( 0.242E-12, -1250., 0.0);
+{  1358} G2N500U +GNO3               =       G1N500U +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  1359} G2N500U +MEPERO             =  0.340G1N500U + 0.330GNN500Z + 0.330GNN500a                 : ARR( 0.565E-13,  -845., 0.0);
+{  1360} G2N500U +PERO1              =  0.460G1N500U + 0.270GNN500Z + 0.270GNN500a                 : ARR( 0.434E-13,  -900., 0.0);
+{  1361} G2N500U +PERO2              =  0.400G1N500U + 0.300GNN500Z + 0.300GNN500a                 : ARR( 0.162E-13, -1400., 0.0);
+{  1362} G2N500U +PERO3              =  0.460G1N500U + 0.270GNN500Z + 0.270GNN500a                 : ARR( 0.488E-13, -1250., 0.0);
+{  1363} G2N500U +PERO5              =  0.460G1N500U + 0.270GNN500Z + 0.270GNN500a                 : ARR( 0.183E-11,   450., 0.0);
+{  1364} G2N500U +PERO6              =  0.300G1N500U + 0.350GNN500Z + 0.350GNN500a                 : ARR( 0.168E-13, -1300., 0.0);
+{  1365} G2N500U +PERO9              =  0.650G1N500U + 0.350GNN500a                                : ARR( 0.100E-10,     0., 0.0);
+{  1366} G1N500S +OXYGEN             =       GNN500J +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{  1367} G1N500S                     =       G2N500W                                               : ARR( 0.160E+12,  4439., 0.0);
+{  1368} G1N500T                     =       GND5005 +      GNO2                                   : ARR( 0.160E+12,  4531., 0.0);
+{  1369} G1N500T                     =       GD02000 +      GND3000 +      GNO2                    : ARR( 0.200E+15,  6484., 0.0);
+{  1370} G1N500U                     =       G2N500X                                               : ARR( 0.240E+12,  4177., 0.0);
+{  1371} G1N500U                     =       GD03000 +      GND2000 +      GNO2                    : ARR( 0.200E+15,  6737., 0.0);
+{  1372} G2N500W +GNO                =       G1N500W +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  1373} G2N500W +GNO                =       GNN500b                                               : ARR( 0.182E-12,  -360., 0.0);
+{  1374} G2N500W +GHO2               =       GHN500c                                               : ARR( 0.242E-12, -1250., 0.0);
+{  1375} G2N500W +GNO3               =       G1N500W +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  1376} G2N500W +MEPERO             =  0.340G1N500W + 0.330GNN500c + 0.330GNN500d                 : ARR( 0.565E-13,  -845., 0.0);
+{  1377} G2N500W +PERO1              =  0.460G1N500W + 0.270GNN500c + 0.270GNN500d                 : ARR( 0.434E-13,  -900., 0.0);
+{  1378} G2N500W +PERO2              =  0.400G1N500W + 0.300GNN500c + 0.300GNN500d                 : ARR( 0.162E-13, -1400., 0.0);
+{  1379} G2N500W +PERO3              =  0.460G1N500W + 0.270GNN500c + 0.270GNN500d                 : ARR( 0.488E-13, -1250., 0.0);
+{  1380} G2N500W +PERO5              =  0.460G1N500W + 0.270GNN500c + 0.270GNN500d                 : ARR( 0.183E-11,   450., 0.0);
+{  1381} G2N500W +PERO6              =  0.300G1N500W + 0.350GNN500c + 0.350GNN500d                 : ARR( 0.168E-13, -1300., 0.0);
+{  1382} G2N500W +PERO9              =  0.650G1N500W + 0.350GNN500d                                : ARR( 0.100E-10,     0., 0.0);
+{  1383} G2N500X +GNO                =       G1N500X +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  1384} G2N500X +GNO                =       GNN500e                                               : ARR( 0.182E-12,  -360., 0.0);
+{  1385} G2N500X +GHO2               =       GHN500d                                               : ARR( 0.242E-12, -1250., 0.0);
+{  1386} G2N500X +GNO3               =       G1N500X +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  1387} G2N500X +MEPERO             =  0.480G1N500X + 0.260GNN500c + 0.260GNN500f                 : ARR( 0.146E-12,  -445., 0.0);
+{  1388} G2N500X +PERO1              =  0.600G1N500X + 0.200GNN500c + 0.200GNN500f                 : ARR( 0.112E-12,  -500., 0.0);
+{  1389} G2N500X +PERO2              =  0.560G1N500X + 0.220GNN500c + 0.220GNN500f                 : ARR( 0.418E-13, -1000., 0.0);
+{  1390} G2N500X +PERO3              =  0.600G1N500X + 0.200GNN500c + 0.200GNN500f                 : ARR( 0.126E-12,  -850., 0.0);
+{  1391} G2N500X +PERO5              =  0.600G1N500X + 0.200GNN500c + 0.200GNN500f                 : ARR( 0.473E-11,   850., 0.0);
+{  1392} G2N500X +PERO6              =  0.460G1N500X + 0.270GNN500c + 0.270GNN500f                 : ARR( 0.434E-13,  -900., 0.0);
+{  1393} G2N500X +PERO9              =  0.800G1N500X + 0.200GNN500f                                : ARR( 0.100E-10,     0., 0.0);
+{  1394} G1N500W                     =       GNN500f +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{  1395} G1N500X +OXYGEN             =       GNN500f +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{  1396} G1N500X                     =       GNN500d +      GHO2                                   : ARR( 0.800E+11,  3464., 0.0);
+{  1397} GHN5002 +GHO                =       GNK5001 +      GHO                                    : ARR( 0.427E-10,     0., 0.0);
+{  1398} GHN5002 +GHO                =       G2N5002                                               : ARR( 0.197E-11,  -190., 0.0);
+{  1399} GHN5002+HV               =       G1N5002 +      GHO                                    :  0.100E+01*SUN;
+{  1400} GHN5002+HV               =       G1H5008 +      GNO2                                   :  0.100E+01*SUN;
+{  1401} G1H5008                     =       G2H5006                                               : ARR( 0.160E+12,  3092., 0.0);
+{  1402} G2H5006 +GNO                =       G1H5009 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  1403} G2H5006 +GNO                =       GHN500e                                               : ARR( 0.182E-12,  -360., 0.0);
+{  1404} G2H5006 +GHO2               =       GHH5006                                               : ARR( 0.242E-12, -1250., 0.0);
+{  1405} G2H5006 +GNO3               =       G1H5009 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  1406} G2H5006 +MEPERO             =  0.340G1H5009 + 0.330GHO500C + 0.330GHK5008                 : ARR( 0.565E-13,  -845., 0.0);
+{  1407} G2H5006 +PERO1              =  0.460G1H5009 + 0.270GHO500C + 0.270GHK5008                 : ARR( 0.434E-13,  -900., 0.0);
+{  1408} G2H5006 +PERO2              =  0.400G1H5009 + 0.300GHO500C + 0.300GHK5008                 : ARR( 0.162E-13, -1400., 0.0);
+{  1409} G2H5006 +PERO3              =  0.460G1H5009 + 0.270GHO500C + 0.270GHK5008                 : ARR( 0.488E-13, -1250., 0.0);
+{  1410} G2H5006 +PERO5              =  0.460G1H5009 + 0.270GHO500C + 0.270GHK5008                 : ARR( 0.183E-11,   450., 0.0);
+{  1411} G2H5006 +PERO6              =  0.300G1H5009 + 0.350GHO500C + 0.350GHK5008                 : ARR( 0.168E-13, -1300., 0.0);
+{  1412} G2H5006 +PERO9              =  0.650G1H5009 + 0.350GHK5008                                : ARR( 0.100E-10,     0., 0.0);
+{  1413} G1H5009                     =       GHD5003 +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{  1414} G1H5009                     =       GD02000 +      GDO3000 +      GHO                     : ARR( 0.200E+15,  4945., 0.0);
+{  1415} GNO5003 +GHO                =       G2N500Y                                               : ARR( 0.121E-11,     0., 0.0);
+{  1416} GNO5003 +GHO                =       GNK5001 +      GHO2                                   : ARR( 0.109E-10,     0., 0.0);
+{  1417} GNO5003+HV               =       G1O500E +      GNO2                                   :  0.100E+01*SUN;
+{  1418} G2N500Y +GNO                =       G1N500Y +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  1419} G2N500Y +GNO                =       GNN500L                                               : ARR( 0.182E-12,  -360., 0.0);
+{  1420} G2N500Y +GHO2               =       GHN500f                                               : ARR( 0.242E-12, -1250., 0.0);
+{  1421} G2N500Y +GNO3               =       G1N500Y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  1422} G2N500Y +MEPERO             =  0.340G1N500Y + 0.330GNO500H + 0.330GNK500F                 : ARR( 0.565E-13,  -845., 0.0);
+{  1423} G2N500Y +PERO1              =  0.460G1N500Y + 0.270GNO500H + 0.270GNK500F                 : ARR( 0.434E-13,  -900., 0.0);
+{  1424} G2N500Y +PERO2              =  0.400G1N500Y + 0.300GNO500H + 0.300GNK500F                 : ARR( 0.162E-13, -1400., 0.0);
+{  1425} G2N500Y +PERO3              =  0.460G1N500Y + 0.270GNO500H + 0.270GNK500F                 : ARR( 0.488E-13, -1250., 0.0);
+{  1426} G2N500Y +PERO5              =  0.460G1N500Y + 0.270GNO500H + 0.270GNK500F                 : ARR( 0.183E-11,   450., 0.0);
+{  1427} G2N500Y +PERO6              =  0.300G1N500Y + 0.350GNO500H + 0.350GNK500F                 : ARR( 0.168E-13, -1300., 0.0);
+{  1428} G2N500Y +PERO9              =  0.650G1N500Y + 0.350GNK500F                                : ARR( 0.100E-10,     0., 0.0);
+{  1429} G1O500E                     =       G2O500D                                               : ARR( 0.160E+12,  3092., 0.0);
+{  1430} G1N500Y                     =       GD02000 +      GND3000 +      GHO2                    : ARR( 0.200E+15,  3737., 0.0);
+{  1431} G2O500D +GNO                =       G1O500F +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  1432} G2O500D +GNO                =       GNO500K                                               : ARR( 0.182E-12,  -360., 0.0);
+{  1433} G2O500D +GHO2               =       GHO500G                                               : ARR( 0.242E-12, -1250., 0.0);
+{  1434} G2O500D +GNO3               =       G1O500F +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  1435} G2O500D +MEPERO             =  0.340G1O500F + 0.330GOO5007 + 0.330GKO500B                 : ARR( 0.565E-13,  -845., 0.0);
+{  1436} G2O500D +PERO1              =  0.460G1O500F + 0.270GOO5007 + 0.270GKO500B                 : ARR( 0.434E-13,  -900., 0.0);
+{  1437} G2O500D +PERO2              =  0.400G1O500F + 0.300GOO5007 + 0.300GKO500B                 : ARR( 0.162E-13, -1400., 0.0);
+{  1438} G2O500D +PERO3              =  0.460G1O500F + 0.270GOO5007 + 0.270GKO500B                 : ARR( 0.488E-13, -1250., 0.0);
+{  1439} G2O500D +PERO5              =  0.460G1O500F + 0.270GOO5007 + 0.270GKO500B                 : ARR( 0.183E-11,   450., 0.0);
+{  1440} G2O500D +PERO6              =  0.300G1O500F + 0.350GOO5007 + 0.350GKO500B                 : ARR( 0.168E-13, -1300., 0.0);
+{  1441} G2O500D +PERO9              =  0.650G1O500F + 0.350GKO500B                                : ARR( 0.100E-10,     0., 0.0);
+{  1442} G1O500F                     =       GDO5005 +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{  1443} G1O500F                     =       GD02000 +      GDO3000 +      GHO2                    : ARR( 0.200E+15,  3737., 0.0);
+{  1444} GNK5001 +GHO                =       G2N500Z                                               : ARR( 0.531E-12,     0., 0.0);
+{  1445} GNK5001 +GHO                =       G2N500a                                               : ARR( 0.701E-12,     0., 0.0);
+{  1446} GNK5001 +GHO                =       G2N500b                                               : ARR( 0.172E-12,     0., 0.0);
+{  1447} GNK5001 +GHO                =       GDK5000 +      GNO2                                   : ARR( 0.146E-12,     0., 0.0);
+{  1448} GNK5001+HV               =       G3K3000 +      G2N2000                                :  0.100E+01*SUN;
+{  1449} GNK5001+HV               =       G1K5003 +      GNO2                                   :  0.100E+01*SUN;
+{  1450} G2N500Z +GNO                =       G1N500Z +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  1451} G2N500Z +GNO                =       GNN500G                                               : ARR( 0.182E-12,  -360., 0.0);
+{  1452} G2N500Z +GHO2               =       GHN500M                                               : ARR( 0.242E-12, -1250., 0.0);
+{  1453} G2N500Z +GNO3               =       G1N500Z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  1454} G2N500Z +MEPERO             =  0.480G1N500Z + 0.260GNK500E + 0.260GND5007                 : ARR( 0.146E-12,  -445., 0.0);
+{  1455} G2N500Z +PERO1              =  0.600G1N500Z + 0.200GNK500E + 0.200GND5007                 : ARR( 0.112E-12,  -500., 0.0);
+{  1456} G2N500Z +PERO2              =  0.560G1N500Z + 0.220GNK500E + 0.220GND5007                 : ARR( 0.418E-13, -1000., 0.0);
+{  1457} G2N500Z +PERO3              =  0.600G1N500Z + 0.200GNK500E + 0.200GND5007                 : ARR( 0.126E-12,  -850., 0.0);
+{  1458} G2N500Z +PERO5              =  0.600G1N500Z + 0.200GNK500E + 0.200GND5007                 : ARR( 0.473E-11,   850., 0.0);
+{  1459} G2N500Z +PERO6              =  0.460G1N500Z + 0.270GNK500E + 0.270GND5007                 : ARR( 0.434E-13,  -900., 0.0);
+{  1460} G2N500Z +PERO9              =  0.800G1N500Z + 0.200GND5007                                : ARR( 0.100E-10,     0., 0.0);
+{  1461} G2N500a +GNO                =       G1N500a +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  1462} G2N500a +GNO                =       GNN500M                                               : ARR( 0.182E-12,  -360., 0.0);
+{  1463} G2N500a +GHO2               =       GHN500g                                               : ARR( 0.242E-12, -1250., 0.0);
+{  1464} G2N500a +GNO3               =       G1N500a +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  1465} G2N500a +MEPERO             =  0.340G1N500a + 0.330GNK500C + 0.330GNK500G                 : ARR( 0.565E-13,  -845., 0.0);
+{  1466} G2N500a +PERO1              =  0.460G1N500a + 0.270GNK500C + 0.270GNK500G                 : ARR( 0.434E-13,  -900., 0.0);
+{  1467} G2N500a +PERO2              =  0.400G1N500a + 0.300GNK500C + 0.300GNK500G                 : ARR( 0.162E-13, -1400., 0.0);
+{  1468} G2N500a +PERO3              =  0.460G1N500a + 0.270GNK500C + 0.270GNK500G                 : ARR( 0.488E-13, -1250., 0.0);
+{  1469} G2N500a +PERO5              =  0.460G1N500a + 0.270GNK500C + 0.270GNK500G                 : ARR( 0.183E-11,   450., 0.0);
+{  1470} G2N500a +PERO6              =  0.300G1N500a + 0.350GNK500C + 0.350GNK500G                 : ARR( 0.168E-13, -1300., 0.0);
+{  1471} G2N500a +PERO9              =  0.650G1N500a + 0.350GNK500G                                : ARR( 0.100E-10,     0., 0.0);
+{  1472} G2N500b +GNO                =       G1N500b +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  1473} G2N500b +GNO                =       GNN500g                                               : ARR( 0.182E-12,  -360., 0.0);
+{  1474} G2N500b +GHO2               =       GHN500h                                               : ARR( 0.242E-12, -1250., 0.0);
+{  1475} G2N500b +GNO3               =       G1N500b +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  1476} G2N500b +MEPERO             =  0.340G1N500b + 0.330GNK500K + 0.330GNK500L                 : ARR( 0.565E-13,  -845., 0.0);
+{  1477} G2N500b +PERO1              =  0.460G1N500b + 0.270GNK500K + 0.270GNK500L                 : ARR( 0.434E-13,  -900., 0.0);
+{  1478} G2N500b +PERO2              =  0.400G1N500b + 0.300GNK500K + 0.300GNK500L                 : ARR( 0.162E-13, -1400., 0.0);
+{  1479} G2N500b +PERO3              =  0.460G1N500b + 0.270GNK500K + 0.270GNK500L                 : ARR( 0.488E-13, -1250., 0.0);
+{  1480} G2N500b +PERO5              =  0.460G1N500b + 0.270GNK500K + 0.270GNK500L                 : ARR( 0.183E-11,   450., 0.0);
+{  1481} G2N500b +PERO6              =  0.300G1N500b + 0.350GNK500K + 0.350GNK500L                 : ARR( 0.168E-13, -1300., 0.0);
+{  1482} G2N500b +PERO9              =  0.650G1N500b + 0.350GNK500L                                : ARR( 0.100E-10,     0., 0.0);
+{  1483} G1N500Z +OXYGEN             =       GND5007 +      GHO2                                   : ARR( 0.600E-13,   398., 0.0);
+{  1484} G1N500a                     =       GD02000 +      G3N3000                                : ARR( 0.200E+15,  2750., 0.0);
+{  1485} G1N500b                     =       G3K3000 +      GND2000                                : ARR( 0.200E+15,  3003., 0.0);
+{  1486} G3N3000 +GHO2               =  0.800GGN3000 + 0.200GAN3000 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  1487} G3N3000 +GNO                =       G2N2000 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{  1488} G3N3000 +GNO2               =       GPN3000                                               : ARR( 0.330E-08,     0.,-1.0);
+{  1489} G3N3000 +GNO3               =       G2N2000 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{  1490} G3N3000 +MEPERO             =  0.685G2N2000 + 0.315GAN3000 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  1491} G3N3000 +PERO1              =  0.800G2N2000 + 0.200GAN3000 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  1492} G3N3000 +PERO2              =  0.750G2N2000 + 0.250GAN3000 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  1493} G3N3000 +PERO3              =  0.800G2N2000 + 0.200GAN3000 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  1494} G3N3000 +PERO5              =  0.650G2N2000 + 0.350GAN3000 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  1495} G3N3000 +PERO6              =  0.650G2N2000 + 0.350GAN3000 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  1496} G3N3000 +PERO9              =       G2N2000 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{  1497} GNN5003 +GHO                =       G2N500c                                               : ARR( 0.171E-12,     0., 0.0);
+{  1498} GNN5003 +GHO                =       G2N500d                                               : ARR( 0.117E-11,     0., 0.0);
+{  1499} GNN5003 +GHO                =       G2N500e                                               : ARR( 0.288E-12,     0., 0.0);
+{  1500} GNN5003+HV               =       G1N5003 +      GNO2                                   :  0.100E+01*SUN;
+{  1501} GNN5003+HV               =       G1N500c +      GNO2                                   :  0.100E+01*SUN;
+{  1502} G2N500c +GNO                =       G1N500d +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  1503} G2N500c +GNO                =       GNN500C                                               : ARR( 0.182E-12,  -360., 0.0);
+{  1504} G2N500c +GHO2               =       GHN500i                                               : ARR( 0.242E-12, -1250., 0.0);
+{  1505} G2N500c +GNO3               =       G1N500d +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  1506} G2N500c +MEPERO             =  0.480G1N500d + 0.260GNN5004 + 0.260GNN500h                 : ARR( 0.146E-12,  -445., 0.0);
+{  1507} G2N500c +PERO1              =  0.600G1N500d + 0.200GNN5004 + 0.200GNN500h                 : ARR( 0.112E-12,  -500., 0.0);
+{  1508} G2N500c +PERO2              =  0.560G1N500d + 0.220GNN5004 + 0.220GNN500h                 : ARR( 0.418E-13, -1000., 0.0);
+{  1509} G2N500c +PERO3              =  0.600G1N500d + 0.200GNN5004 + 0.200GNN500h                 : ARR( 0.126E-12,  -850., 0.0);
+{  1510} G2N500c +PERO5              =  0.600G1N500d + 0.200GNN5004 + 0.200GNN500h                 : ARR( 0.473E-11,   850., 0.0);
+{  1511} G2N500c +PERO6              =  0.460G1N500d + 0.270GNN5004 + 0.270GNN500h                 : ARR( 0.434E-13,  -900., 0.0);
+{  1512} G2N500c +PERO9              =  0.800G1N500d + 0.200GNN500h                                : ARR( 0.100E-10,     0., 0.0);
+{  1513} G2N500d +GNO                =       G1N500e +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  1514} G2N500d +GNO                =       GNN500N                                               : ARR( 0.182E-12,  -360., 0.0);
+{  1515} G2N500d +GHO2               =       GHN500j                                               : ARR( 0.242E-12, -1250., 0.0);
+{  1516} G2N500d +GNO3               =       G1N500e +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  1517} G2N500d +MEPERO             =  0.480G1N500e + 0.260GNN5008 + 0.260GNN500W                 : ARR( 0.616E-11,   905., 0.0);
+{  1518} G2N500d +PERO1              =  0.600G1N500e + 0.200GNN5008 + 0.200GNN500W                 : ARR( 0.473E-11,   850., 0.0);
+{  1519} G2N500d +PERO2              =  0.560G1N500e + 0.220GNN5008 + 0.220GNN500W                 : ARR( 0.177E-11,   350., 0.0);
+{  1520} G2N500d +PERO3              =  0.600G1N500e + 0.200GNN5008 + 0.200GNN500W                 : ARR( 0.533E-11,   500., 0.0);
+{  1521} G2N500d +PERO5              =  0.600G1N500e + 0.200GNN5008 + 0.200GNN500W                 : ARR( 0.200E-09,  2200., 0.0);
+{  1522} G2N500d +PERO6              =  0.460G1N500e + 0.270GNN5008 + 0.270GNN500W                 : ARR( 0.183E-11,   450., 0.0);
+{  1523} G2N500d +PERO9              =  0.800G1N500e + 0.200GNN500W                                : ARR( 0.100E-10,     0., 0.0);
+{  1524} G2N500e +GNO                =       G1N500f +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  1525} G2N500e +GNO                =       GNN500Y                                               : ARR( 0.182E-12,  -360., 0.0);
+{  1526} G2N500e +GHO2               =       GHN500k                                               : ARR( 0.242E-12, -1250., 0.0);
+{  1527} G2N500e +GNO3               =       G1N500f +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  1528} G2N500e +MEPERO             =  0.340G1N500f + 0.330GNN500i + 0.330GNN500g                 : ARR( 0.565E-13,  -845., 0.0);
+{  1529} G2N500e +PERO1              =  0.460G1N500f + 0.270GNN500i + 0.270GNN500g                 : ARR( 0.434E-13,  -900., 0.0);
+{  1530} G2N500e +PERO2              =  0.400G1N500f + 0.300GNN500i + 0.300GNN500g                 : ARR( 0.162E-13, -1400., 0.0);
+{  1531} G2N500e +PERO3              =  0.460G1N500f + 0.270GNN500i + 0.270GNN500g                 : ARR( 0.488E-13, -1250., 0.0);
+{  1532} G2N500e +PERO5              =  0.460G1N500f + 0.270GNN500i + 0.270GNN500g                 : ARR( 0.183E-11,   450., 0.0);
+{  1533} G2N500e +PERO6              =  0.300G1N500f + 0.350GNN500i + 0.350GNN500g                 : ARR( 0.168E-13, -1300., 0.0);
+{  1534} G2N500e +PERO9              =  0.650G1N500f + 0.350GNN500g                                : ARR( 0.100E-10,     0., 0.0);
+{  1535} G1N500c                     =       G2N500f                                               : ARR( 0.160E+12,  3092., 0.0);
+{  1536} G1N500d +OXYGEN             =       GNN500h +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{  1537} G1N500d                     =       GNK5003 +      GNO2                                   : ARR( 0.800E+11,  4743., 0.0);
+{  1538} G1N500e                     =       GND5004 +      GNO2                                   : ARR( 0.160E+12,  5251., 0.0);
+{  1539} G1N500e                     =       GD02000 +      G2N3004                                : ARR( 0.200E+15,  6731., 0.0);
+{  1540} G1N500f                     =       GD03000 +      GND2000 +      GNO2                    : ARR( 0.200E+15,  6068., 0.0);
+{  1541} G2N500f +GNO                =       G1N500g +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  1542} G2N500f +GNO                =       GNN500B                                               : ARR( 0.182E-12,  -360., 0.0);
+{  1543} G2N500f +GHO2               =       GHN500l                                               : ARR( 0.242E-12, -1250., 0.0);
+{  1544} G2N500f +GNO3               =       G1N500g +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  1545} G2N500f +MEPERO             =  0.480G1N500g + 0.260GNO500B + 0.260GNK5006                 : ARR( 0.616E-11,   905., 0.0);
+{  1546} G2N500f +PERO1              =  0.600G1N500g + 0.200GNO500B + 0.200GNK5006                 : ARR( 0.473E-11,   850., 0.0);
+{  1547} G2N500f +PERO2              =  0.560G1N500g + 0.220GNO500B + 0.220GNK5006                 : ARR( 0.177E-11,   350., 0.0);
+{  1548} G2N500f +PERO3              =  0.600G1N500g + 0.200GNO500B + 0.200GNK5006                 : ARR( 0.533E-11,   500., 0.0);
+{  1549} G2N500f +PERO5              =  0.600G1N500g + 0.200GNO500B + 0.200GNK5006                 : ARR( 0.200E-09,  2200., 0.0);
+{  1550} G2N500f +PERO6              =  0.460G1N500g + 0.270GNO500B + 0.270GNK5006                 : ARR( 0.183E-11,   450., 0.0);
+{  1551} G2N500f +PERO9              =  0.800G1N500g + 0.200GNK5006                                : ARR( 0.100E-10,     0., 0.0);
+{  1552} G2N3004 +GNO                =       G1N3004 +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{  1553} G2N3004 +GNO                =       GNN3003                                               : ARR( 0.622E-13,  -360., 0.0);
+{  1554} G2N3004 +GHO2               =       GHN3004                                               : ARR( 0.179E-12, -1250., 0.0);
+{  1555} G2N3004 +GNO3               =       G1N3004 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  1556} G2N3004 +MEPERO             =  0.480G1N3004 + 0.260GNN3004 + 0.260GNN3005                 : ARR( 0.164E-12,  -795., 0.0);
+{  1557} G2N3004 +PERO1              =  0.600G1N3004 + 0.200GNN3004 + 0.200GNN3005                 : ARR( 0.126E-12,  -850., 0.0);
+{  1558} G2N3004 +PERO2              =  0.560G1N3004 + 0.220GNN3004 + 0.220GNN3005                 : ARR( 0.471E-13, -1350., 0.0);
+{  1559} G2N3004 +PERO3              =  0.600G1N3004 + 0.200GNN3004 + 0.200GNN3005                 : ARR( 0.142E-12, -1200., 0.0);
+{  1560} G2N3004 +PERO5              =  0.600G1N3004 + 0.200GNN3004 + 0.200GNN3005                 : ARR( 0.533E-11,   500., 0.0);
+{  1561} G2N3004 +PERO6              =  0.460G1N3004 + 0.270GNN3004 + 0.270GNN3005                 : ARR( 0.488E-13, -1250., 0.0);
+{  1562} G2N3004 +PERO9              =  0.800G1N3004 + 0.200GNN3005                                : ARR( 0.100E-10,     0., 0.0);
+{  1563} G1N500g                     =       GND5004 +      GHO2                                   : ARR( 0.160E+12,  3252., 0.0);
+{  1564} G1N3004 +OXYGEN             =       GNN3005 +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{  1565} G1N3004                     =       GND2000 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7190., 0.0);
+{  1566} GHN5003 +GHO                =       G2H5007                                               : ARR( 0.117E-11,     0., 0.0);
+{  1567} GHN5003 +GHO                =       G2H5008                                               : ARR( 0.143E-11,     0., 0.0);
+{  1568} GHN5003 +GHO                =       GNK5002 +      GHO                                    : ARR( 0.836E-11,     0., 0.0);
+{  1569} GHN5003 +GHO                =       G2N5003                                               : ARR( 0.193E-11,  -190., 0.0);
+{  1570} GHN5003+HV               =       G1N5003 +      GHO                                    :  0.100E+01*SUN;
+{  1571} GHN5003+HV               =       G1H500A +      GNO2                                   :  0.100E+01*SUN;
+{  1572} G2H5007 +GNO                =       G1H500B +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  1573} G2H5007 +GNO                =       GHN500U                                               : ARR( 0.182E-12,  -360., 0.0);
+{  1574} G2H5007 +GHO2               =       GHH5007                                               : ARR( 0.242E-12, -1250., 0.0);
+{  1575} G2H5007 +GNO3               =       G1H500B +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  1576} G2H5007 +MEPERO             =  0.480G1H500B + 0.260GHN500m + 0.260GHN500Y                 : ARR( 0.616E-11,   905., 0.0);
+{  1577} G2H5007 +PERO1              =  0.600G1H500B + 0.200GHN500m + 0.200GHN500Y                 : ARR( 0.473E-11,   850., 0.0);
+{  1578} G2H5007 +PERO2              =  0.560G1H500B + 0.220GHN500m + 0.220GHN500Y                 : ARR( 0.177E-11,   350., 0.0);
+{  1579} G2H5007 +PERO3              =  0.600G1H500B + 0.200GHN500m + 0.200GHN500Y                 : ARR( 0.533E-11,   500., 0.0);
+{  1580} G2H5007 +PERO5              =  0.600G1H500B + 0.200GHN500m + 0.200GHN500Y                 : ARR( 0.200E-09,  2200., 0.0);
+{  1581} G2H5007 +PERO6              =  0.460G1H500B + 0.270GHN500m + 0.270GHN500Y                 : ARR( 0.183E-11,   450., 0.0);
+{  1582} G2H5007 +PERO9              =  0.800G1H500B + 0.200GHN500Y                                : ARR( 0.100E-10,     0., 0.0);
+{  1583} G2H5008 +GNO                =       G1H500C +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  1584} G2H5008 +GNO                =       GHN500b                                               : ARR( 0.182E-12,  -360., 0.0);
+{  1585} G2H5008 +GHO2               =       GHH5008                                               : ARR( 0.242E-12, -1250., 0.0);
+{  1586} G2H5008 +GNO3               =       G1H500C +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  1587} G2H5008 +MEPERO             =  0.340G1H500C + 0.330GHN500n + 0.330GHN500h                 : ARR( 0.565E-13,  -845., 0.0);
+{  1588} G2H5008 +PERO1              =  0.460G1H500C + 0.270GHN500n + 0.270GHN500h                 : ARR( 0.434E-13,  -900., 0.0);
+{  1589} G2H5008 +PERO2              =  0.400G1H500C + 0.300GHN500n + 0.300GHN500h                 : ARR( 0.162E-13, -1400., 0.0);
+{  1590} G2H5008 +PERO3              =  0.460G1H500C + 0.270GHN500n + 0.270GHN500h                 : ARR( 0.488E-13, -1250., 0.0);
+{  1591} G2H5008 +PERO5              =  0.460G1H500C + 0.270GHN500n + 0.270GHN500h                 : ARR( 0.183E-11,   450., 0.0);
+{  1592} G2H5008 +PERO6              =  0.300G1H500C + 0.350GHN500n + 0.350GHN500h                 : ARR( 0.168E-13, -1300., 0.0);
+{  1593} G2H5008 +PERO9              =  0.650G1H500C + 0.350GHN500h                                : ARR( 0.100E-10,     0., 0.0);
+{  1594} G1H500A                     =       G2H5009                                               : ARR( 0.160E+12,  3092., 0.0);
+{  1595} G1H500A                     =       GD04000 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  6008., 0.0);
+{  1596} G1H500B                     =       GHD5005 +      GNO2                                   : ARR( 0.160E+12,  4531., 0.0);
+{  1597} G1H500B                     =       GD02000 +      G2H3001                                : ARR( 0.200E+15,  6731., 0.0);
+{  1598} G1H500C                     =       GD03000 +      GND2000 +      GHO                     : ARR( 0.200E+15,  4529., 0.0);
+{  1599} G2H5009 +GNO                =       G1H500D +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  1600} G2H5009 +GNO                =       GHN500G                                               : ARR( 0.182E-12,  -360., 0.0);
+{  1601} G2H5009 +GHO2               =       GHH5009                                               : ARR( 0.242E-12, -1250., 0.0);
+{  1602} G2H5009 +GNO3               =       G1H500D +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  1603} G2H5009 +MEPERO             =  0.480G1H500D + 0.260GHO500D + 0.260GHK5009                 : ARR( 0.616E-11,   905., 0.0);
+{  1604} G2H5009 +PERO1              =  0.600G1H500D + 0.200GHO500D + 0.200GHK5009                 : ARR( 0.473E-11,   850., 0.0);
+{  1605} G2H5009 +PERO2              =  0.560G1H500D + 0.220GHO500D + 0.220GHK5009                 : ARR( 0.177E-11,   350., 0.0);
+{  1606} G2H5009 +PERO3              =  0.600G1H500D + 0.200GHO500D + 0.200GHK5009                 : ARR( 0.533E-11,   500., 0.0);
+{  1607} G2H5009 +PERO5              =  0.600G1H500D + 0.200GHO500D + 0.200GHK5009                 : ARR( 0.200E-09,  2200., 0.0);
+{  1608} G2H5009 +PERO6              =  0.460G1H500D + 0.270GHO500D + 0.270GHK5009                 : ARR( 0.183E-11,   450., 0.0);
+{  1609} G2H5009 +PERO9              =  0.800G1H500D + 0.200GHK5009                                : ARR( 0.100E-10,     0., 0.0);
+{  1610} G2H3001 +GNO                =       G1H3001 +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{  1611} G2H3001 +GNO                =       GHN3005                                               : ARR( 0.622E-13,  -360., 0.0);
+{  1612} G2H3001 +GHO2               =       GHH3001                                               : ARR( 0.179E-12, -1250., 0.0);
+{  1613} G2H3001 +GNO3               =       G1H3001 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  1614} G2H3001 +MEPERO             =  0.480G1H3001 + 0.260GHN3006 + 0.260GHN3007                 : ARR( 0.164E-12,  -795., 0.0);
+{  1615} G2H3001 +PERO1              =  0.600G1H3001 + 0.200GHN3006 + 0.200GHN3007                 : ARR( 0.126E-12,  -850., 0.0);
+{  1616} G2H3001 +PERO2              =  0.560G1H3001 + 0.220GHN3006 + 0.220GHN3007                 : ARR( 0.471E-13, -1350., 0.0);
+{  1617} G2H3001 +PERO3              =  0.600G1H3001 + 0.200GHN3006 + 0.200GHN3007                 : ARR( 0.142E-12, -1200., 0.0);
+{  1618} G2H3001 +PERO5              =  0.600G1H3001 + 0.200GHN3006 + 0.200GHN3007                 : ARR( 0.533E-11,   500., 0.0);
+{  1619} G2H3001 +PERO6              =  0.460G1H3001 + 0.270GHN3006 + 0.270GHN3007                 : ARR( 0.488E-13, -1250., 0.0);
+{  1620} G2H3001 +PERO9              =  0.800G1H3001 + 0.200GHN3007                                : ARR( 0.100E-10,     0., 0.0);
+{  1621} G1H500D                     =       GHD5005 +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{  1622} G1H3001 +OXYGEN             =       GHN3007 +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{  1623} G1H3001                     =       GND2000 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5652., 0.0);
+{  1624} GNO5004 +GHO                =       G2N500g                                               : ARR( 0.124E-11,     0., 0.0);
+{  1625} GNO5004 +GHO                =       G2N500h                                               : ARR( 0.152E-11,     0., 0.0);
+{  1626} GNO5004 +GHO                =       GNK5002 +      GHO2                                   : ARR( 0.222E-11,     0., 0.0);
+{  1627} GNO5004+HV               =       G1O500G +      GNO2                                   :  0.100E+01*SUN;
+{  1628} G2N500g +GNO                =       G1N500h +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  1629} G2N500g +GNO                =       GNN500O                                               : ARR( 0.182E-12,  -360., 0.0);
+{  1630} G2N500g +GHO2               =       GHN500o                                               : ARR( 0.242E-12, -1250., 0.0);
+{  1631} G2N500g +GNO3               =       G1N500h +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  1632} G2N500g +MEPERO             =  0.480G1N500h + 0.260GNO500D + 0.260GNK500H                 : ARR( 0.616E-11,   905., 0.0);
+{  1633} G2N500g +PERO1              =  0.600G1N500h + 0.200GNO500D + 0.200GNK500H                 : ARR( 0.473E-11,   850., 0.0);
+{  1634} G2N500g +PERO2              =  0.560G1N500h + 0.220GNO500D + 0.220GNK500H                 : ARR( 0.177E-11,   350., 0.0);
+{  1635} G2N500g +PERO3              =  0.600G1N500h + 0.200GNO500D + 0.200GNK500H                 : ARR( 0.533E-11,   500., 0.0);
+{  1636} G2N500g +PERO5              =  0.600G1N500h + 0.200GNO500D + 0.200GNK500H                 : ARR( 0.200E-09,  2200., 0.0);
+{  1637} G2N500g +PERO6              =  0.460G1N500h + 0.270GNO500D + 0.270GNK500H                 : ARR( 0.183E-11,   450., 0.0);
+{  1638} G2N500g +PERO9              =  0.800G1N500h + 0.200GNK500H                                : ARR( 0.100E-10,     0., 0.0);
+{  1639} G2N500h +GNO                =       G1N500i +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  1640} G2N500h +GNO                =       GNN500Z                                               : ARR( 0.182E-12,  -360., 0.0);
+{  1641} G2N500h +GHO2               =       GHN500p                                               : ARR( 0.242E-12, -1250., 0.0);
+{  1642} G2N500h +GNO3               =       G1N500i +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  1643} G2N500h +MEPERO             =  0.340G1N500i + 0.330GNO500L + 0.330GNK500K                 : ARR( 0.565E-13,  -845., 0.0);
+{  1644} G2N500h +PERO1              =  0.460G1N500i + 0.270GNO500L + 0.270GNK500K                 : ARR( 0.434E-13,  -900., 0.0);
+{  1645} G2N500h +PERO2              =  0.400G1N500i + 0.300GNO500L + 0.300GNK500K                 : ARR( 0.162E-13, -1400., 0.0);
+{  1646} G2N500h +PERO3              =  0.460G1N500i + 0.270GNO500L + 0.270GNK500K                 : ARR( 0.488E-13, -1250., 0.0);
+{  1647} G2N500h +PERO5              =  0.460G1N500i + 0.270GNO500L + 0.270GNK500K                 : ARR( 0.183E-11,   450., 0.0);
+{  1648} G2N500h +PERO6              =  0.300G1N500i + 0.350GNO500L + 0.350GNK500K                 : ARR( 0.168E-13, -1300., 0.0);
+{  1649} G2N500h +PERO9              =  0.650G1N500i + 0.350GNK500K                                : ARR( 0.100E-10,     0., 0.0);
+{  1650} G1O500G                     =       G2O500E                                               : ARR( 0.160E+12,  3092., 0.0);
+{  1651} G1O500G                     =       GD04000 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4799., 0.0);
+{  1652} G1N500h                     =       GDO5003 +      GNO2                                   : ARR( 0.160E+12,  4531., 0.0);
+{  1653} G1N500h                     =       GD02000 +      G2N3003                                : ARR( 0.200E+15,  6731., 0.0);
+{  1654} G1N500i                     =       GD03000 +      GND2000 +      GHO2                    : ARR( 0.200E+15,  3320., 0.0);
+{  1655} G2O500E +GNO                =       G1O500H +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  1656} G2O500E +GNO                =       GNO500F                                               : ARR( 0.182E-12,  -360., 0.0);
+{  1657} G2O500E +GHO2               =       GHO500H                                               : ARR( 0.242E-12, -1250., 0.0);
+{  1658} G2O500E +GNO3               =       G1O500H +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  1659} G2O500E +MEPERO             =  0.480G1O500H + 0.260GOO5006 + 0.260GKO5006                 : ARR( 0.616E-11,   905., 0.0);
+{  1660} G2O500E +PERO1              =  0.600G1O500H + 0.200GOO5006 + 0.200GKO5006                 : ARR( 0.473E-11,   850., 0.0);
+{  1661} G2O500E +PERO2              =  0.560G1O500H + 0.220GOO5006 + 0.220GKO5006                 : ARR( 0.177E-11,   350., 0.0);
+{  1662} G2O500E +PERO3              =  0.600G1O500H + 0.200GOO5006 + 0.200GKO5006                 : ARR( 0.533E-11,   500., 0.0);
+{  1663} G2O500E +PERO5              =  0.600G1O500H + 0.200GOO5006 + 0.200GKO5006                 : ARR( 0.200E-09,  2200., 0.0);
+{  1664} G2O500E +PERO6              =  0.460G1O500H + 0.270GOO5006 + 0.270GKO5006                 : ARR( 0.183E-11,   450., 0.0);
+{  1665} G2O500E +PERO9              =  0.800G1O500H + 0.200GKO5006                                : ARR( 0.100E-10,     0., 0.0);
+{  1666} G1O500H                     =       GDO5003 +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{  1667} GNK5002 +GHO                =       G2N500i                                               : ARR( 0.380E-11,     0., 0.0);
+{  1668} GNK5002 +GHO                =       G2N500j                                               : ARR( 0.899E-12,     0., 0.0);
+{  1669} GNK5002+HV               =       G3K4001 +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{  1670} GNK5002+HV               =       GU02000 +      GNK3000                                :  0.100E+01*SUN;
+{  1671} GNK5002+HV               =       G1K5009 +      GNO2                                   :  0.100E+01*SUN;
+{  1672} G2N500i +GNO                =       G1N500j +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  1673} G2N500i +GNO                =       GNN500P                                               : ARR( 0.182E-12,  -360., 0.0);
+{  1674} G2N500i +GHO2               =       GHN500q                                               : ARR( 0.242E-12, -1250., 0.0);
+{  1675} G2N500i +GNO3               =       G1N500j +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  1676} G2N500i +MEPERO             =  0.480G1N500j + 0.260GNK5008 + 0.260GNK500I                 : ARR( 0.616E-11,   905., 0.0);
+{  1677} G2N500i +PERO1              =  0.600G1N500j + 0.200GNK5008 + 0.200GNK500I                 : ARR( 0.473E-11,   850., 0.0);
+{  1678} G2N500i +PERO2              =  0.560G1N500j + 0.220GNK5008 + 0.220GNK500I                 : ARR( 0.177E-11,   350., 0.0);
+{  1679} G2N500i +PERO3              =  0.600G1N500j + 0.200GNK5008 + 0.200GNK500I                 : ARR( 0.533E-11,   500., 0.0);
+{  1680} G2N500i +PERO5              =  0.600G1N500j + 0.200GNK5008 + 0.200GNK500I                 : ARR( 0.200E-09,  2200., 0.0);
+{  1681} G2N500i +PERO6              =  0.460G1N500j + 0.270GNK5008 + 0.270GNK500I                 : ARR( 0.183E-11,   450., 0.0);
+{  1682} G2N500i +PERO9              =  0.800G1N500j + 0.200GNK500I                                : ARR( 0.100E-10,     0., 0.0);
+{  1683} G2N500j +GNO                =       G1N500k +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  1684} G2N500j +GNO                =       GNN500a                                               : ARR( 0.182E-12,  -360., 0.0);
+{  1685} G2N500j +GHO2               =       GHN500r                                               : ARR( 0.242E-12, -1250., 0.0);
+{  1686} G2N500j +GNO3               =       G1N500k +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  1687} G2N500j +MEPERO             =  0.340G1N500k + 0.330GNK500M + 0.330GNK500L                 : ARR( 0.565E-13,  -845., 0.0);
+{  1688} G2N500j +PERO1              =  0.460G1N500k + 0.270GNK500M + 0.270GNK500L                 : ARR( 0.434E-13,  -900., 0.0);
+{  1689} G2N500j +PERO2              =  0.400G1N500k + 0.300GNK500M + 0.300GNK500L                 : ARR( 0.162E-13, -1400., 0.0);
+{  1690} G2N500j +PERO3              =  0.460G1N500k + 0.270GNK500M + 0.270GNK500L                 : ARR( 0.488E-13, -1250., 0.0);
+{  1691} G2N500j +PERO5              =  0.460G1N500k + 0.270GNK500M + 0.270GNK500L                 : ARR( 0.183E-11,   450., 0.0);
+{  1692} G2N500j +PERO6              =  0.300G1N500k + 0.350GNK500M + 0.350GNK500L                 : ARR( 0.168E-13, -1300., 0.0);
+{  1693} G2N500j +PERO9              =  0.650G1N500k + 0.350GNK500L                                : ARR( 0.100E-10,     0., 0.0);
+{  1694} G3K4001 +GHO2               =  0.800GG04000 + 0.200GA04000 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  1695} G3K4001 +GNO                =       G203000 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{  1696} G3K4001 +GNO2               =       GP04000                                               : ARR( 0.330E-08,     0.,-1.0);
+{  1697} G3K4001 +GNO3               =       G203000 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{  1698} G3K4001 +MEPERO             =  0.685G203000 + 0.315GA04000 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  1699} G3K4001 +PERO1              =  0.800G203000 + 0.200GA04000 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  1700} G3K4001 +PERO2              =  0.750G203000 + 0.250GA04000 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  1701} G3K4001 +PERO3              =  0.800G203000 + 0.200GA04000 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  1702} G3K4001 +PERO5              =  0.650G203000 + 0.350GA04000 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  1703} G3K4001 +PERO6              =  0.650G203000 + 0.350GA04000 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  1704} G3K4001 +PERO9              =       G203000 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{  1705} G1K5009                     =       G3K4001 +      GCH2O                                  : ARR( 0.200E+15,  3576., 0.0);
+{  1706} G1N500j                     =       GD02000 +      G2N3005                                : ARR( 0.200E+15,  7034., 0.0);
+{  1707} G1N500k                     =       GD03000 +      G3N2000                                : ARR( 0.200E+15,  2635., 0.0);
+{  1708} G2N3005 +GNO                =       G1N3005 +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{  1709} G2N3005 +GNO                =       GNN3006                                               : ARR( 0.622E-13,  -360., 0.0);
+{  1710} G2N3005 +GHO2               =       GHN3008                                               : ARR( 0.179E-12, -1250., 0.0);
+{  1711} G2N3005 +GNO3               =       G1N3005 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  1712} G2N3005 +MEPERO             =  0.480G1N3005 + 0.260GNK3001 + 0.260GND3003                 : ARR( 0.164E-12,  -795., 0.0);
+{  1713} G2N3005 +PERO1              =  0.600G1N3005 + 0.200GNK3001 + 0.200GND3003                 : ARR( 0.126E-12,  -850., 0.0);
+{  1714} G2N3005 +PERO2              =  0.560G1N3005 + 0.220GNK3001 + 0.220GND3003                 : ARR( 0.471E-13, -1350., 0.0);
+{  1715} G2N3005 +PERO3              =  0.600G1N3005 + 0.200GNK3001 + 0.200GND3003                 : ARR( 0.142E-12, -1200., 0.0);
+{  1716} G2N3005 +PERO5              =  0.600G1N3005 + 0.200GNK3001 + 0.200GND3003                 : ARR( 0.533E-11,   500., 0.0);
+{  1717} G2N3005 +PERO6              =  0.460G1N3005 + 0.270GNK3001 + 0.270GND3003                 : ARR( 0.488E-13, -1250., 0.0);
+{  1718} G2N3005 +PERO9              =  0.800G1N3005 + 0.200GND3003                                : ARR( 0.100E-10,     0., 0.0);
+{  1719} G3N2000 +GHO2               =  0.800GGN2000 + 0.200GAN2000 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  1720} G3N2000 +GNO                =       GCH2O   + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{  1721}  G3N2000 + GNO2       +M       =       GPN2000         +M                                    : FALL( 0.110E-10,     0.,-1.0, 0.850E-28,     0.,-6.5,0.60);
+{  1722} G3N2000 +GNO3               =       GCH2O   + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{  1723} G3N2000 +MEPERO             =  0.685GCH2O   + 0.315GAN2000 + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  1724} G3N2000 +PERO1              =  0.800GCH2O   + 0.200GAN2000 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  1725} G3N2000 +PERO2              =  0.750GCH2O   + 0.250GAN2000 + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  1726} G3N2000 +PERO3              =  0.800GCH2O   + 0.200GAN2000 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  1727} G3N2000 +PERO5              =  0.650GCH2O   + 0.350GAN2000 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  1728} G3N2000 +PERO6              =  0.650GCH2O   + 0.350GAN2000 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  1729} G3N2000 +PERO9              =       GCH2O   +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{  1730} G1N3005                     =       G3N2000 +      GCH2O                                  : ARR( 0.200E+15,  3521., 0.0);
+{  1731} GND3000 +GHO                =       G3N3000                                               : ARR( 0.211E-10,     0., 0.0);
+{  1732} GND3000 +GNO3               =       G3N3000 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{  1733} GND3000+HV               =       G1D3000 +      GNO2                                   :  0.100E+01*SUN;
+{  1734} GND3000+HV               =       G2N2000 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{  1735} G1D3000 +OXYGEN             =       GDD3000 +      GHO2                                   : ARR( 0.600E-13,   398., 0.0);
+{  1736} GNN5004 +GHO                =       GNN500h +      GHO2                                   : ARR( 0.436E-11,     0., 0.0);
+{  1737} GNN5004 +GHO                =       G2N500k                                               : ARR( 0.153E-11,     0., 0.0);
+{  1738} GNN5004+HV               =       G1N5004 +      GNO2                                   :  0.100E+01*SUN;
+{  1739} GNN5004+HV               =       G1N500l +      GNO2                                   :  0.100E+01*SUN;
+{  1740} G2N500k +GNO                =       G1N500m +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  1741} G2N500k +GNO                =       GNN500j                                               : ARR( 0.182E-12,  -360., 0.0);
+{  1742} G2N500k +GHO2               =       GHN500s                                               : ARR( 0.242E-12, -1250., 0.0);
+{  1743} G2N500k +GNO3               =       G1N500m +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  1744} G2N500k +MEPERO             =  0.340G1N500m + 0.330GNN500k + 0.330GNN500l                 : ARR( 0.565E-13,  -845., 0.0);
+{  1745} G2N500k +PERO1              =  0.460G1N500m + 0.270GNN500k + 0.270GNN500l                 : ARR( 0.434E-13,  -900., 0.0);
+{  1746} G2N500k +PERO2              =  0.400G1N500m + 0.300GNN500k + 0.300GNN500l                 : ARR( 0.162E-13, -1400., 0.0);
+{  1747} G2N500k +PERO3              =  0.460G1N500m + 0.270GNN500k + 0.270GNN500l                 : ARR( 0.488E-13, -1250., 0.0);
+{  1748} G2N500k +PERO5              =  0.460G1N500m + 0.270GNN500k + 0.270GNN500l                 : ARR( 0.183E-11,   450., 0.0);
+{  1749} G2N500k +PERO6              =  0.300G1N500m + 0.350GNN500k + 0.350GNN500l                 : ARR( 0.168E-13, -1300., 0.0);
+{  1750} G2N500k +PERO9              =  0.650G1N500m + 0.350GNN500l                                : ARR( 0.100E-10,     0., 0.0);
+{  1751} G1N500l                     =       G2N500l                                               : ARR( 0.160E+12,  3000., 0.0);
+{  1752} G1N500m                     =       GCH2O   +      GNN4001 +      GHO2                    : ARR( 0.200E+15,  5041., 0.0);
+{  1753} G2N500l +GNO                =       G1N500n +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  1754} G2N500l +GNO                =       GNN500m                                               : ARR( 0.182E-12,  -360., 0.0);
+{  1755} G2N500l +GHO2               =       GHN500t                                               : ARR( 0.242E-12, -1250., 0.0);
+{  1756} G2N500l +GNO3               =       G1N500n +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  1757} G2N500l +MEPERO             =  0.340G1N500n + 0.330GNO500M + 0.330GNK500N                 : ARR( 0.565E-13,  -845., 0.0);
+{  1758} G2N500l +PERO1              =  0.460G1N500n + 0.270GNO500M + 0.270GNK500N                 : ARR( 0.434E-13,  -900., 0.0);
+{  1759} G2N500l +PERO2              =  0.400G1N500n + 0.300GNO500M + 0.300GNK500N                 : ARR( 0.162E-13, -1400., 0.0);
+{  1760} G2N500l +PERO3              =  0.460G1N500n + 0.270GNO500M + 0.270GNK500N                 : ARR( 0.488E-13, -1250., 0.0);
+{  1761} G2N500l +PERO5              =  0.460G1N500n + 0.270GNO500M + 0.270GNK500N                 : ARR( 0.183E-11,   450., 0.0);
+{  1762} G2N500l +PERO6              =  0.300G1N500n + 0.350GNO500M + 0.350GNK500N                 : ARR( 0.168E-13, -1300., 0.0);
+{  1763} G2N500l +PERO9              =  0.650G1N500n + 0.350GNK500N                                : ARR( 0.100E-10,     0., 0.0);
+{  1764} G1N500n                     =       GND500B +      GHO2                                   : ARR( 0.160E+12,  3252., 0.0);
+{  1765} G1N500n                     =       GND4002 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  5041., 0.0);
+{  1766} GHN5004 +GHO                =       GHN500u +      GHO2                                   : ARR( 0.406E-11,     0., 0.0);
+{  1767} GHN5004 +GHO                =       G2H500A                                               : ARR( 0.143E-11,     0., 0.0);
+{  1768} GHN5004 +GHO                =       G2H500B                                               : ARR( 0.143E-11,     0., 0.0);
+{  1769} GHN5004 +GHO                =       GNK5003 +      GHO                                    : ARR( 0.832E-11,     0., 0.0);
+{  1770} GHN5004 +GHO                =       G2N5004                                               : ARR( 0.192E-11,  -190., 0.0);
+{  1771} GHN5004+HV               =       G1N5004 +      GHO                                    :  0.100E+01*SUN;
+{  1772} GHN5004+HV               =       G1H500E +      GNO2                                   :  0.100E+01*SUN;
+{  1773} G2H500A +GNO                =       G1H500F +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  1774} G2H500A +GNO                =       GHN500v                                               : ARR( 0.182E-12,  -360., 0.0);
+{  1775} G2H500A +GHO2               =       GHH500A                                               : ARR( 0.242E-12, -1250., 0.0);
+{  1776} G2H500A +GNO3               =       G1H500F +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  1777} G2H500A +MEPERO             =  0.340G1H500F + 0.330GHN500w + 0.330GHN500x                 : ARR( 0.565E-13,  -845., 0.0);
+{  1778} G2H500A +PERO1              =  0.460G1H500F + 0.270GHN500w + 0.270GHN500x                 : ARR( 0.434E-13,  -900., 0.0);
+{  1779} G2H500A +PERO2              =  0.400G1H500F + 0.300GHN500w + 0.300GHN500x                 : ARR( 0.162E-13, -1400., 0.0);
+{  1780} G2H500A +PERO3              =  0.460G1H500F + 0.270GHN500w + 0.270GHN500x                 : ARR( 0.488E-13, -1250., 0.0);
+{  1781} G2H500A +PERO5              =  0.460G1H500F + 0.270GHN500w + 0.270GHN500x                 : ARR( 0.183E-11,   450., 0.0);
+{  1782} G2H500A +PERO6              =  0.300G1H500F + 0.350GHN500w + 0.350GHN500x                 : ARR( 0.168E-13, -1300., 0.0);
+{  1783} G2H500A +PERO9              =  0.650G1H500F + 0.350GHN500x                                : ARR( 0.100E-10,     0., 0.0);
+{  1784} G2H500B +GNO                =       G1H500G +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  1785} G2H500B +GNO                =       GHN500c                                               : ARR( 0.182E-12,  -360., 0.0);
+{  1786} G2H500B +GHO2               =       GHH500B                                               : ARR( 0.242E-12, -1250., 0.0);
+{  1787} G2H500B +GNO3               =       G1H500G +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  1788} G2H500B +MEPERO             =  0.340G1H500G + 0.330GHN500y + 0.330GHN500z                 : ARR( 0.565E-13,  -845., 0.0);
+{  1789} G2H500B +PERO1              =  0.460G1H500G + 0.270GHN500y + 0.270GHN500z                 : ARR( 0.434E-13,  -900., 0.0);
+{  1790} G2H500B +PERO2              =  0.400G1H500G + 0.300GHN500y + 0.300GHN500z                 : ARR( 0.162E-13, -1400., 0.0);
+{  1791} G2H500B +PERO3              =  0.460G1H500G + 0.270GHN500y + 0.270GHN500z                 : ARR( 0.488E-13, -1250., 0.0);
+{  1792} G2H500B +PERO5              =  0.460G1H500G + 0.270GHN500y + 0.270GHN500z                 : ARR( 0.183E-11,   450., 0.0);
+{  1793} G2H500B +PERO6              =  0.300G1H500G + 0.350GHN500y + 0.350GHN500z                 : ARR( 0.168E-13, -1300., 0.0);
+{  1794} G2H500B +PERO9              =  0.650G1H500G + 0.350GHN500z                                : ARR( 0.100E-10,     0., 0.0);
+{  1795} G1H500E                     =       G2H500C                                               : ARR( 0.160E+12,  3000., 0.0);
+{  1796} G1H500E                     =       GDO4000 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  6008., 0.0);
+{  1797} G1H500F                     =       GCH2O   +      GHN4001 +      GHO2                    : ARR( 0.200E+15,  5041., 0.0);
+{  1798} G1H500G                     =       GDO3000 +      GND2000 +      GHO                     : ARR( 0.200E+15,  4529., 0.0);
+{  1799} G2H500C +GNO                =       G1H500H +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  1800} G2H500C +GNO                =       GHN500t                                               : ARR( 0.182E-12,  -360., 0.0);
+{  1801} G2H500C +GHO2               =       GHH500C                                               : ARR( 0.242E-12, -1250., 0.0);
+{  1802} G2H500C +GNO3               =       G1H500H +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  1803} G2H500C +MEPERO             =  0.340G1H500H + 0.330GHO500I + 0.330GHK500B                 : ARR( 0.565E-13,  -845., 0.0);
+{  1804} G2H500C +PERO1              =  0.460G1H500H + 0.270GHO500I + 0.270GHK500B                 : ARR( 0.434E-13,  -900., 0.0);
+{  1805} G2H500C +PERO2              =  0.400G1H500H + 0.300GHO500I + 0.300GHK500B                 : ARR( 0.162E-13, -1400., 0.0);
+{  1806} G2H500C +PERO3              =  0.460G1H500H + 0.270GHO500I + 0.270GHK500B                 : ARR( 0.488E-13, -1250., 0.0);
+{  1807} G2H500C +PERO5              =  0.460G1H500H + 0.270GHO500I + 0.270GHK500B                 : ARR( 0.183E-11,   450., 0.0);
+{  1808} G2H500C +PERO6              =  0.300G1H500H + 0.350GHO500I + 0.350GHK500B                 : ARR( 0.168E-13, -1300., 0.0);
+{  1809} G2H500C +PERO9              =  0.650G1H500H + 0.350GHK500B                                : ARR( 0.100E-10,     0., 0.0);
+{  1810} G1H500H                     =       GHD5006 +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{  1811} G1H500H                     =       GHD4000 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  5041., 0.0);
+{  1812} GNO5005 +GHO                =       GND5001 +      GHO2                                   : ARR( 0.417E-11,     0., 0.0);
+{  1813} GNO5005 +GHO                =       G2N500m                                               : ARR( 0.146E-11,     0., 0.0);
+{  1814} GNO5005 +GHO                =       G2N500n                                               : ARR( 0.146E-11,     0., 0.0);
+{  1815} GNO5005 +GHO                =       GNK5003 +      GHO2                                   : ARR( 0.214E-11,     0., 0.0);
+{  1816} GNO5005+HV               =       G1O500I +      GNO2                                   :  0.100E+01*SUN;
+{  1817} G2N500m +GNO                =       G1N500o +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  1818} G2N500m +GNO                =       GNN500R                                               : ARR( 0.182E-12,  -360., 0.0);
+{  1819} G2N500m +GHO2               =       GHN5011                                               : ARR( 0.242E-12, -1250., 0.0);
+{  1820} G2N500m +GNO3               =       G1N500o +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  1821} G2N500m +MEPERO             =  0.340G1N500o + 0.330GNO500G + 0.330GNK500J                 : ARR( 0.565E-13,  -845., 0.0);
+{  1822} G2N500m +PERO1              =  0.460G1N500o + 0.270GNO500G + 0.270GNK500J                 : ARR( 0.434E-13,  -900., 0.0);
+{  1823} G2N500m +PERO2              =  0.400G1N500o + 0.300GNO500G + 0.300GNK500J                 : ARR( 0.162E-13, -1400., 0.0);
+{  1824} G2N500m +PERO3              =  0.460G1N500o + 0.270GNO500G + 0.270GNK500J                 : ARR( 0.488E-13, -1250., 0.0);
+{  1825} G2N500m +PERO5              =  0.460G1N500o + 0.270GNO500G + 0.270GNK500J                 : ARR( 0.183E-11,   450., 0.0);
+{  1826} G2N500m +PERO6              =  0.300G1N500o + 0.350GNO500G + 0.350GNK500J                 : ARR( 0.168E-13, -1300., 0.0);
+{  1827} G2N500m +PERO9              =  0.650G1N500o + 0.350GNK500J                                : ARR( 0.100E-10,     0., 0.0);
+{  1828} G2N500n +GNO                =       G1N500p +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  1829} G2N500n +GNO                =       GNN500c                                               : ARR( 0.182E-12,  -360., 0.0);
+{  1830} G2N500n +GHO2               =       GHN5012                                               : ARR( 0.242E-12, -1250., 0.0);
+{  1831} G2N500n +GNO3               =       G1N500p +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  1832} G2N500n +MEPERO             =  0.340G1N500p + 0.330GNO500N + 0.330GNK500O                 : ARR( 0.565E-13,  -845., 0.0);
+{  1833} G2N500n +PERO1              =  0.460G1N500p + 0.270GNO500N + 0.270GNK500O                 : ARR( 0.434E-13,  -900., 0.0);
+{  1834} G2N500n +PERO2              =  0.400G1N500p + 0.300GNO500N + 0.300GNK500O                 : ARR( 0.162E-13, -1400., 0.0);
+{  1835} G2N500n +PERO3              =  0.460G1N500p + 0.270GNO500N + 0.270GNK500O                 : ARR( 0.488E-13, -1250., 0.0);
+{  1836} G2N500n +PERO5              =  0.460G1N500p + 0.270GNO500N + 0.270GNK500O                 : ARR( 0.183E-11,   450., 0.0);
+{  1837} G2N500n +PERO6              =  0.300G1N500p + 0.350GNO500N + 0.350GNK500O                 : ARR( 0.168E-13, -1300., 0.0);
+{  1838} G2N500n +PERO9              =  0.650G1N500p + 0.350GNK500O                                : ARR( 0.100E-10,     0., 0.0);
+{  1839} G1O500I                     =       G2O500F                                               : ARR( 0.160E+12,  3000., 0.0);
+{  1840} G1O500I                     =       GDO4000 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4799., 0.0);
+{  1841} G1N500o                     =       GCH2O   +      GND4003 +      GHO2                    : ARR( 0.200E+15,  5041., 0.0);
+{  1842} G1N500p                     =       GDO3000 +      GND2000 +      GHO2                    : ARR( 0.200E+15,  3320., 0.0);
+{  1843} G2O500F +GNO                =       G1O500J +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  1844} G2O500F +GNO                =       GNO500M                                               : ARR( 0.182E-12,  -360., 0.0);
+{  1845} G2O500F +GHO2               =       GHO500I                                               : ARR( 0.242E-12, -1250., 0.0);
+{  1846} G2O500F +GNO3               =       G1O500J +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  1847} G2O500F +MEPERO             =  0.340G1O500J + 0.330GOO5008 + 0.330GKO500A                 : ARR( 0.565E-13,  -845., 0.0);
+{  1848} G2O500F +PERO1              =  0.460G1O500J + 0.270GOO5008 + 0.270GKO500A                 : ARR( 0.434E-13,  -900., 0.0);
+{  1849} G2O500F +PERO2              =  0.400G1O500J + 0.300GOO5008 + 0.300GKO500A                 : ARR( 0.162E-13, -1400., 0.0);
+{  1850} G2O500F +PERO3              =  0.460G1O500J + 0.270GOO5008 + 0.270GKO500A                 : ARR( 0.488E-13, -1250., 0.0);
+{  1851} G2O500F +PERO5              =  0.460G1O500J + 0.270GOO5008 + 0.270GKO500A                 : ARR( 0.183E-11,   450., 0.0);
+{  1852} G2O500F +PERO6              =  0.300G1O500J + 0.350GOO5008 + 0.350GKO500A                 : ARR( 0.168E-13, -1300., 0.0);
+{  1853} G2O500F +PERO9              =  0.650G1O500J + 0.350GKO500A                                : ARR( 0.100E-10,     0., 0.0);
+{  1854} G1O500J                     =       GDO5004 +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{  1855} G1O500J                     =       GDO4002 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  5041., 0.0);
+{  1856} GNK5003 +GHO                =       GND500C +      GHO2                                   : ARR( 0.409E-11,     0., 0.0);
+{  1857} GNK5003 +GHO                =       G2N500o                                               : ARR( 0.456E-11,     0., 0.0);
+{  1858} GNK5003 +GHO                =       G2N500p                                               : ARR( 0.877E-12,     0., 0.0);
+{  1859} GNK5003+HV               =       G3K4002 +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{  1860} GNK5003+HV               =       GD02000 +      GNK3000                                :  0.100E+01*SUN;
+{  1861} GNK5003+HV               =       G1K500A +      GNO2                                   :  0.100E+01*SUN;
+{  1862} G2N500o +GNO                =       G1N500q +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  1863} G2N500o +GNO                =       GNN500T                                               : ARR( 0.182E-12,  -360., 0.0);
+{  1864} G2N500o +GHO2               =       GHN5013                                               : ARR( 0.242E-12, -1250., 0.0);
+{  1865} G2N500o +GNO3               =       G1N500q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  1866} G2N500o +MEPERO             =  0.340G1N500q + 0.330GNK500P + 0.330GNK500Q                 : ARR( 0.565E-13,  -845., 0.0);
+{  1867} G2N500o +PERO1              =  0.460G1N500q + 0.270GNK500P + 0.270GNK500Q                 : ARR( 0.434E-13,  -900., 0.0);
+{  1868} G2N500o +PERO2              =  0.400G1N500q + 0.300GNK500P + 0.300GNK500Q                 : ARR( 0.162E-13, -1400., 0.0);
+{  1869} G2N500o +PERO3              =  0.460G1N500q + 0.270GNK500P + 0.270GNK500Q                 : ARR( 0.488E-13, -1250., 0.0);
+{  1870} G2N500o +PERO5              =  0.460G1N500q + 0.270GNK500P + 0.270GNK500Q                 : ARR( 0.183E-11,   450., 0.0);
+{  1871} G2N500o +PERO6              =  0.300G1N500q + 0.350GNK500P + 0.350GNK500Q                 : ARR( 0.168E-13, -1300., 0.0);
+{  1872} G2N500o +PERO9              =  0.650G1N500q + 0.350GNK500Q                                : ARR( 0.100E-10,     0., 0.0);
+{  1873} G2N500p +GNO                =       G1N500r +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  1874} G2N500p +GNO                =       GNN500d                                               : ARR( 0.182E-12,  -360., 0.0);
+{  1875} G2N500p +GHO2               =       GHN5014                                               : ARR( 0.242E-12, -1250., 0.0);
+{  1876} G2N500p +GNO3               =       G1N500r +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  1877} G2N500p +MEPERO             =  0.340G1N500r + 0.330GNK500R + 0.330GNK500S                 : ARR( 0.565E-13,  -845., 0.0);
+{  1878} G2N500p +PERO1              =  0.460G1N500r + 0.270GNK500R + 0.270GNK500S                 : ARR( 0.434E-13,  -900., 0.0);
+{  1879} G2N500p +PERO2              =  0.400G1N500r + 0.300GNK500R + 0.300GNK500S                 : ARR( 0.162E-13, -1400., 0.0);
+{  1880} G2N500p +PERO3              =  0.460G1N500r + 0.270GNK500R + 0.270GNK500S                 : ARR( 0.488E-13, -1250., 0.0);
+{  1881} G2N500p +PERO5              =  0.460G1N500r + 0.270GNK500R + 0.270GNK500S                 : ARR( 0.183E-11,   450., 0.0);
+{  1882} G2N500p +PERO6              =  0.300G1N500r + 0.350GNK500R + 0.350GNK500S                 : ARR( 0.168E-13, -1300., 0.0);
+{  1883} G2N500p +PERO9              =  0.650G1N500r + 0.350GNK500S                                : ARR( 0.100E-10,     0., 0.0);
+{  1884} G3K4002 +GHO2               =  0.800GGO4001 + 0.200GAO4001 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  1885} G3K4002 +GNO                =       G2O3001 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{  1886} G3K4002 +GNO2               =       GPO4001                                               : ARR( 0.330E-08,     0.,-1.0);
+{  1887} G3K4002 +GNO3               =       G2O3001 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{  1888} G3K4002 +MEPERO             =  0.685G2O3001 + 0.315GAO4001 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  1889} G3K4002 +PERO1              =  0.800G2O3001 + 0.200GAO4001 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  1890} G3K4002 +PERO2              =  0.750G2O3001 + 0.250GAO4001 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  1891} G3K4002 +PERO3              =  0.800G2O3001 + 0.200GAO4001 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  1892} G3K4002 +PERO5              =  0.650G2O3001 + 0.350GAO4001 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  1893} G3K4002 +PERO6              =  0.650G2O3001 + 0.350GAO4001 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  1894} G3K4002 +PERO9              =       G2O3001 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{  1895} G1K500A                     =       G3K4002 +      GCH2O                                  : ARR( 0.200E+15,  3576., 0.0);
+{  1896} G1N500q                     =       GCH2O   +      GND4004 +      GHO2                    : ARR( 0.200E+15,  4658., 0.0);
+{  1897} G1N500r                     =       GDO3000 +      G3N2000                                : ARR( 0.200E+15,  2635., 0.0);
+{  1898} GNN3000 +GHO                =       GND3000 +      GNO2                                   : ARR( 0.919E-13,     0., 0.0);
+{  1899} GNN3000 +GHO                =       G2N3006                                               : ARR( 0.565E-13,     0., 0.0);
+{  1900} GNN3000+HV               =       G1N3000 +      GNO2                                   :  0.200E+01*SUN;
+{  1901} G2N3006 +GNO                =       G1N3006 +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{  1902} G2N3006 +GNO                =       GNN3003                                               : ARR( 0.622E-13,  -360., 0.0);
+{  1903} G2N3006 +GHO2               =       GHN3005                                               : ARR( 0.179E-12, -1250., 0.0);
+{  1904} G2N3006 +GNO3               =       G1N3006 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  1905} G2N3006 +MEPERO             =  0.340G1N3006 + 0.330GNN3002 + 0.330GNN3006                 : ARR( 0.565E-13,  -845., 0.0);
+{  1906} G2N3006 +PERO1              =  0.460G1N3006 + 0.270GNN3002 + 0.270GNN3006                 : ARR( 0.434E-13,  -900., 0.0);
+{  1907} G2N3006 +PERO2              =  0.400G1N3006 + 0.300GNN3002 + 0.300GNN3006                 : ARR( 0.162E-13, -1400., 0.0);
+{  1908} G2N3006 +PERO3              =  0.460G1N3006 + 0.270GNN3002 + 0.270GNN3006                 : ARR( 0.488E-13, -1250., 0.0);
+{  1909} G2N3006 +PERO5              =  0.460G1N3006 + 0.270GNN3002 + 0.270GNN3006                 : ARR( 0.183E-11,   450., 0.0);
+{  1910} G2N3006 +PERO6              =  0.300G1N3006 + 0.350GNN3002 + 0.350GNN3006                 : ARR( 0.168E-13, -1300., 0.0);
+{  1911} G2N3006 +PERO9              =  0.650G1N3006 + 0.350GNN3006                                : ARR( 0.100E-10,     0., 0.0);
+{  1912} G1N3006                     =       GCH2O   +      GND2000 +      GNO2                    : ARR( 0.400E+15,  8991., 0.0);
+{  1913} GHN3000 +GHO                =       GND3000 +      GHO                                    : ARR( 0.164E-10,     0., 0.0);
+{  1914} GHN3000 +GHO                =       G2N3000                                               : ARR( 0.193E-11,  -190., 0.0);
+{  1915} GHN3000+HV               =       G1H3002 +      GNO2                                   :  0.100E+01*SUN;
+{  1916} GHN3000+HV               =       G1N3000 +      GHO                                    :  0.100E+01*SUN;
+{  1917} G1H3002 +OXYGEN             =       GHD3000 +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{  1918} GNO3000 +GHO                =       GND3000 +      GHO2                                   : ARR( 0.419E-11,     0., 0.0);
+{  1919} GNO3000 +GHO                =       G2N3007                                               : ARR( 0.295E-12,     0., 0.0);
+{  1920} GNO3000+HV               =       G1O3001 +      GNO2                                   :  0.100E+01*SUN;
+{  1921} G2N3007 +GNO                =       G1N3007 +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{  1922} G2N3007 +GNO                =       GNN3004                                               : ARR( 0.622E-13,  -360., 0.0);
+{  1923} G2N3007 +GHO2               =       GHN3006                                               : ARR( 0.179E-12, -1250., 0.0);
+{  1924} G2N3007 +GNO3               =       G1N3007 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  1925} G2N3007 +MEPERO             =  0.340G1N3007 + 0.330GNO3003 + 0.330GNK3001                 : ARR( 0.565E-13,  -845., 0.0);
+{  1926} G2N3007 +PERO1              =  0.460G1N3007 + 0.270GNO3003 + 0.270GNK3001                 : ARR( 0.434E-13,  -900., 0.0);
+{  1927} G2N3007 +PERO2              =  0.400G1N3007 + 0.300GNO3003 + 0.300GNK3001                 : ARR( 0.162E-13, -1400., 0.0);
+{  1928} G2N3007 +PERO3              =  0.460G1N3007 + 0.270GNO3003 + 0.270GNK3001                 : ARR( 0.488E-13, -1250., 0.0);
+{  1929} G2N3007 +PERO5              =  0.460G1N3007 + 0.270GNO3003 + 0.270GNK3001                 : ARR( 0.183E-11,   450., 0.0);
+{  1930} G2N3007 +PERO6              =  0.300G1N3007 + 0.350GNO3003 + 0.350GNK3001                 : ARR( 0.168E-13, -1300., 0.0);
+{  1931} G2N3007 +PERO9              =  0.650G1N3007 + 0.350GNK3001                                : ARR( 0.100E-10,     0., 0.0);
+{  1932} G1N3007                     =       GCH2O   +      GND2000 +      GHO2                    : ARR( 0.200E+15,  5353., 0.0);
+{  1933} GHN2000 +GHO                =       GND2000 +      GHO                                    : ARR( 0.324E-11,     0., 0.0);
+{  1934} GHN2000 +GHO                =       G2N2000                                               : ARR( 0.191E-11,  -190., 0.0);
+{  1935} GHN2000+HV               =       G1H2000 +      GNO2                                   :  0.100E+01*SUN;
+{  1936} GHN2000+HV               =       G1N2000 +      GHO                                    :  0.100E+01*SUN;
+{  1937} GNO2000 +GHO                =       GND2000 +      GHO2                                   : ARR( 0.843E-12,     0., 0.0);
+{  1938} GNO2000 +GHO                =       G1N2000                                               : ARR( 0.220E-17,    85., 2.0);
+{  1939} GNO2000+HV               =       G1O2000 +      GNO2                                   :  0.100E+01*SUN;
+{  1940} GND2000 +GHO                =       G3N2000                                               : ARR( 0.418E-11,     0., 0.0);
+{  1941} GND2000 +GNO3               =       G3N2000 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{  1942} GND2000+HV               =       G1D2000 +      GNO2                                   :  0.100E+01*SUN;
+{  1943} GND2000+HV               =       GCH2O   +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{  1944} GNN5005 +GHO                =       G2N500q                                               : ARR( 0.300E-12,     0., 0.0);
+{  1945} GNN5005 +GHO                =       G2N500r                                               : ARR( 0.150E-11,     0., 0.0);
+{  1946} GNN5005 +GHO                =       GNN500D +      GHO2                                   : ARR( 0.219E-11,     0., 0.0);
+{  1947} GNN5005+HV               =       G1N5005 +      GNO2                                   :  0.100E+01*SUN;
+{  1948} GNN5005+HV               =       G1N500s +      GNO2                                   :  0.100E+01*SUN;
+{  1949} G2N500q +GNO                =       G1N500t +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  1950} G2N500q +GNO                =       GNN500Q                                               : ARR( 0.182E-12,  -360., 0.0);
+{  1951} G2N500q +GHO2               =       GHN5015                                               : ARR( 0.242E-12, -1250., 0.0);
+{  1952} G2N500q +GNO3               =       G1N500t +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  1953} G2N500q +MEPERO             =  0.340G1N500t + 0.330GNN500n + 0.330GNN500X                 : ARR( 0.565E-13,  -845., 0.0);
+{  1954} G2N500q +PERO1              =  0.460G1N500t + 0.270GNN500n + 0.270GNN500X                 : ARR( 0.434E-13,  -900., 0.0);
+{  1955} G2N500q +PERO2              =  0.400G1N500t + 0.300GNN500n + 0.300GNN500X                 : ARR( 0.162E-13, -1400., 0.0);
+{  1956} G2N500q +PERO3              =  0.460G1N500t + 0.270GNN500n + 0.270GNN500X                 : ARR( 0.488E-13, -1250., 0.0);
+{  1957} G2N500q +PERO5              =  0.460G1N500t + 0.270GNN500n + 0.270GNN500X                 : ARR( 0.183E-11,   450., 0.0);
+{  1958} G2N500q +PERO6              =  0.300G1N500t + 0.350GNN500n + 0.350GNN500X                 : ARR( 0.168E-13, -1300., 0.0);
+{  1959} G2N500q +PERO9              =  0.650G1N500t + 0.350GNN500X                                : ARR( 0.100E-10,     0., 0.0);
+{  1960} G2N500r +GNO                =       G1N500u +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  1961} G2N500r +GNO                =       GNN500e                                               : ARR( 0.182E-12,  -360., 0.0);
+{  1962} G2N500r +GHO2               =       GHN5016                                               : ARR( 0.242E-12, -1250., 0.0);
+{  1963} G2N500r +GNO3               =       G1N500u +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  1964} G2N500r +MEPERO             =  0.340G1N500u + 0.330GNN500o + 0.330GNN500p                 : ARR( 0.565E-13,  -845., 0.0);
+{  1965} G2N500r +PERO1              =  0.460G1N500u + 0.270GNN500o + 0.270GNN500p                 : ARR( 0.434E-13,  -900., 0.0);
+{  1966} G2N500r +PERO2              =  0.400G1N500u + 0.300GNN500o + 0.300GNN500p                 : ARR( 0.162E-13, -1400., 0.0);
+{  1967} G2N500r +PERO3              =  0.460G1N500u + 0.270GNN500o + 0.270GNN500p                 : ARR( 0.488E-13, -1250., 0.0);
+{  1968} G2N500r +PERO5              =  0.460G1N500u + 0.270GNN500o + 0.270GNN500p                 : ARR( 0.183E-11,   450., 0.0);
+{  1969} G2N500r +PERO6              =  0.300G1N500u + 0.350GNN500o + 0.350GNN500p                 : ARR( 0.168E-13, -1300., 0.0);
+{  1970} G2N500r +PERO9              =  0.650G1N500u + 0.350GNN500p                                : ARR( 0.100E-10,     0., 0.0);
+{  1971} G1N500s                     =       G2N500s                                               : ARR( 0.160E+12,  3719., 0.0);
+{  1972} G1N500s                     =       GND4001 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4799., 0.0);
+{  1973} G1N500t                     =       GND500D +      GNO2                                   : ARR( 0.160E+12,  4531., 0.0);
+{  1974} G1N500t                     =       G2N3003 +      GND2000                                : ARR( 0.200E+15,  6983., 0.0);
+{  1975} G1N500u                     =       GND2000 +      GND3000 +      GHO2                    : ARR( 0.200E+15,  3320., 0.0);
+{  1976} G2N500s +GNO                =       G1N500v +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  1977} G2N500s +GNO                =       GNN500k                                               : ARR( 0.182E-12,  -360., 0.0);
+{  1978} G2N500s +GHO2               =       GHN500w                                               : ARR( 0.242E-12, -1250., 0.0);
+{  1979} G2N500s +GNO3               =       G1N500v +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  1980} G2N500s +MEPERO             =  0.340G1N500v + 0.330GNO500G + 0.330GNK500P                 : ARR( 0.565E-13,  -845., 0.0);
+{  1981} G2N500s +PERO1              =  0.460G1N500v + 0.270GNO500G + 0.270GNK500P                 : ARR( 0.434E-13,  -900., 0.0);
+{  1982} G2N500s +PERO2              =  0.400G1N500v + 0.300GNO500G + 0.300GNK500P                 : ARR( 0.162E-13, -1400., 0.0);
+{  1983} G2N500s +PERO3              =  0.460G1N500v + 0.270GNO500G + 0.270GNK500P                 : ARR( 0.488E-13, -1250., 0.0);
+{  1984} G2N500s +PERO5              =  0.460G1N500v + 0.270GNO500G + 0.270GNK500P                 : ARR( 0.183E-11,   450., 0.0);
+{  1985} G2N500s +PERO6              =  0.300G1N500v + 0.350GNO500G + 0.350GNK500P                 : ARR( 0.168E-13, -1300., 0.0);
+{  1986} G2N500s +PERO9              =  0.650G1N500v + 0.350GNK500P                                : ARR( 0.100E-10,     0., 0.0);
+{  1987} G1N500v                     =       GND500D +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{  1988} GHN5005 +GHO                =       GHN5017 +      GHO2                                   : ARR( 0.208E-11,     0., 0.0);
+{  1989} GHN5005 +GHO                =       G2H500D                                               : ARR( 0.142E-11,     0., 0.0);
+{  1990} GHN5005 +GHO                =       G2H500E                                               : ARR( 0.142E-11,     0., 0.0);
+{  1991} GHN5005 +GHO                =       GND5001 +      GHO                                    : ARR( 0.162E-10,     0., 0.0);
+{  1992} GHN5005 +GHO                =       G2N5005                                               : ARR( 0.191E-11,  -190., 0.0);
+{  1993} GHN5005+HV               =       G1H500I +      GNO2                                   :  0.100E+01*SUN;
+{  1994} GHN5005+HV               =       G1N5005 +      GHO                                    :  0.100E+01*SUN;
+{  1995} G2H500D +GNO                =       G1H500J +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  1996} G2H500D +GNO                =       GHN500d                                               : ARR( 0.182E-12,  -360., 0.0);
+{  1997} G2H500D +GHO2               =       GHH500D                                               : ARR( 0.242E-12, -1250., 0.0);
+{  1998} G2H500D +GNO3               =       G1H500J +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  1999} G2H500D +MEPERO             =  0.340G1H500J + 0.330GHN5018 + 0.330GHN5019                 : ARR( 0.565E-13,  -845., 0.0);
+{  2000} G2H500D +PERO1              =  0.460G1H500J + 0.270GHN5018 + 0.270GHN5019                 : ARR( 0.434E-13,  -900., 0.0);
+{  2001} G2H500D +PERO2              =  0.400G1H500J + 0.300GHN5018 + 0.300GHN5019                 : ARR( 0.162E-13, -1400., 0.0);
+{  2002} G2H500D +PERO3              =  0.460G1H500J + 0.270GHN5018 + 0.270GHN5019                 : ARR( 0.488E-13, -1250., 0.0);
+{  2003} G2H500D +PERO5              =  0.460G1H500J + 0.270GHN5018 + 0.270GHN5019                 : ARR( 0.183E-11,   450., 0.0);
+{  2004} G2H500D +PERO6              =  0.300G1H500J + 0.350GHN5018 + 0.350GHN5019                 : ARR( 0.168E-13, -1300., 0.0);
+{  2005} G2H500D +PERO9              =  0.650G1H500J + 0.350GHN5019                                : ARR( 0.100E-10,     0., 0.0);
+{  2006} G2H500E +GNO                =       G1H500K +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  2007} G2H500E +GNO                =       GHN500W                                               : ARR( 0.182E-12,  -360., 0.0);
+{  2008} G2H500E +GHO2               =       GHH500E                                               : ARR( 0.242E-12, -1250., 0.0);
+{  2009} G2H500E +GNO3               =       G1H500K +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  2010} G2H500E +MEPERO             =  0.340G1H500K + 0.330GHN501A + 0.330GHN500Z                 : ARR( 0.565E-13,  -845., 0.0);
+{  2011} G2H500E +PERO1              =  0.460G1H500K + 0.270GHN501A + 0.270GHN500Z                 : ARR( 0.434E-13,  -900., 0.0);
+{  2012} G2H500E +PERO2              =  0.400G1H500K + 0.300GHN501A + 0.300GHN500Z                 : ARR( 0.162E-13, -1400., 0.0);
+{  2013} G2H500E +PERO3              =  0.460G1H500K + 0.270GHN501A + 0.270GHN500Z                 : ARR( 0.488E-13, -1250., 0.0);
+{  2014} G2H500E +PERO5              =  0.460G1H500K + 0.270GHN501A + 0.270GHN500Z                 : ARR( 0.183E-11,   450., 0.0);
+{  2015} G2H500E +PERO6              =  0.300G1H500K + 0.350GHN501A + 0.350GHN500Z                 : ARR( 0.168E-13, -1300., 0.0);
+{  2016} G2H500E +PERO9              =  0.650G1H500K + 0.350GHN500Z                                : ARR( 0.100E-10,     0., 0.0);
+{  2017} G1H500I                     =       G2H500F                                               : ARR( 0.160E+12,  3000., 0.0);
+{  2018} G1H500I                     =       GHD4001 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4799., 0.0);
+{  2019} G1H500J                     =       GND2000 +      GHD3000 +      GHO2                    : ARR( 0.200E+15,  3320., 0.0);
+{  2020} G1H500K                     =       GHD5007 +      GNO2                                   : ARR( 0.160E+12,  4531., 0.0);
+{  2021} G1H500K                     =       G2N3003 +      GHD2000                                : ARR( 0.200E+15,  6985., 0.0);
+{  2022} G1H500K                     =       GND4003 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  7140., 0.0);
+{  2023} G2H500F +GNO                =       G1H500L +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  2024} G2H500F +GNO                =       GHN501B                                               : ARR( 0.182E-12,  -360., 0.0);
+{  2025} G2H500F +GHO2               =       GHH500F                                               : ARR( 0.242E-12, -1250., 0.0);
+{  2026} G2H500F +GNO3               =       G1H500L +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  2027} G2H500F +MEPERO             =  0.340G1H500L + 0.330GHO500E + 0.330GHK500C                 : ARR( 0.565E-13,  -845., 0.0);
+{  2028} G2H500F +PERO1              =  0.460G1H500L + 0.270GHO500E + 0.270GHK500C                 : ARR( 0.434E-13,  -900., 0.0);
+{  2029} G2H500F +PERO2              =  0.400G1H500L + 0.300GHO500E + 0.300GHK500C                 : ARR( 0.162E-13, -1400., 0.0);
+{  2030} G2H500F +PERO3              =  0.460G1H500L + 0.270GHO500E + 0.270GHK500C                 : ARR( 0.488E-13, -1250., 0.0);
+{  2031} G2H500F +PERO5              =  0.460G1H500L + 0.270GHO500E + 0.270GHK500C                 : ARR( 0.183E-11,   450., 0.0);
+{  2032} G2H500F +PERO6              =  0.300G1H500L + 0.350GHO500E + 0.350GHK500C                 : ARR( 0.168E-13, -1300., 0.0);
+{  2033} G2H500F +PERO9              =  0.650G1H500L + 0.350GHK500C                                : ARR( 0.100E-10,     0., 0.0);
+{  2034} G1H500L                     =       GHD5007 +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{  2035} GND5001 +GHO                =       GND500C +      GHO2                                   : ARR( 0.214E-11,     0., 0.0);
+{  2036} GND5001 +GHO                =       G2N500t                                               : ARR( 0.465E-11,     0., 0.0);
+{  2037} GND5001 +GHO                =       G3N5001                                               : ARR( 0.216E-10,     0., 0.0);
+{  2038} GND5001 +GNO3               =       G3N5001 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{  2039} GND5001+HV               =       G1D5004 +      GNO2                                   :  0.100E+01*SUN;
+{  2040} GND5001+HV               =       G2N4001 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{  2041} GND5001+HV               =       GNK3000 +      GD02000                                :  0.100E+01*SUN;
+{  2042} G2N500t +GNO                =       G1N500w +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  2043} G2N500t +GNO                =       GNN500f                                               : ARR( 0.182E-12,  -360., 0.0);
+{  2044} G2N500t +GHO2               =       GHN501C                                               : ARR( 0.242E-12, -1250., 0.0);
+{  2045} G2N500t +GNO3               =       G1N500w +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  2046} G2N500t +MEPERO             =  0.340G1N500w + 0.330GND500E + 0.330GND500F                 : ARR( 0.565E-13,  -845., 0.0);
+{  2047} G2N500t +PERO1              =  0.460G1N500w + 0.270GND500E + 0.270GND500F                 : ARR( 0.434E-13,  -900., 0.0);
+{  2048} G2N500t +PERO2              =  0.400G1N500w + 0.300GND500E + 0.300GND500F                 : ARR( 0.162E-13, -1400., 0.0);
+{  2049} G2N500t +PERO3              =  0.460G1N500w + 0.270GND500E + 0.270GND500F                 : ARR( 0.488E-13, -1250., 0.0);
+{  2050} G2N500t +PERO5              =  0.460G1N500w + 0.270GND500E + 0.270GND500F                 : ARR( 0.183E-11,   450., 0.0);
+{  2051} G2N500t +PERO6              =  0.300G1N500w + 0.350GND500E + 0.350GND500F                 : ARR( 0.168E-13, -1300., 0.0);
+{  2052} G2N500t +PERO9              =  0.650G1N500w + 0.350GND500F                                : ARR( 0.100E-10,     0., 0.0);
+{  2053} G3N5001 +GHO2               =  0.800GGN5001 + 0.200GAN5001 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  2054} G3N5001 +GNO                =       G2N4001 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{  2055} G3N5001 +GNO2               =       GPN5001                                               : ARR( 0.330E-08,     0.,-1.0);
+{  2056} G3N5001 +GNO3               =       G2N4001 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{  2057} G3N5001 +MEPERO             =  0.685G2N4001 + 0.315GAN5001 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  2058} G3N5001 +PERO1              =  0.800G2N4001 + 0.200GAN5001 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  2059} G3N5001 +PERO2              =  0.750G2N4001 + 0.250GAN5001 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  2060} G3N5001 +PERO3              =  0.800G2N4001 + 0.200GAN5001 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  2061} G3N5001 +PERO5              =  0.650G2N4001 + 0.350GAN5001 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  2062} G3N5001 +PERO6              =  0.650G2N4001 + 0.350GAN5001 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  2063} G3N5001 +PERO9              =       G2N4001 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{  2064} G1D5004                     =       G2D5003                                               : ARR( 0.160E+12,  3221., 0.0);
+{  2065} G1D5004                     =       GDD4000 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4799., 0.0);
+{  2066} G2N4001 +GNO                =       G1N4001 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  2067} G2N4001 +GNO                =       GNN4002                                               : ARR( 0.111E-12,  -360., 0.0);
+{  2068} G2N4001 +GHO2               =       GHN4002                                               : ARR( 0.214E-12, -1250., 0.0);
+{  2069} G2N4001 +GNO3               =       G1N4001 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  2070} G2N4001 +MEPERO             =  0.480G1N4001 + 0.260GNO4002 + 0.260GND4003                 : ARR( 0.146E-12,  -445., 0.0);
+{  2071} G2N4001 +PERO1              =  0.600G1N4001 + 0.200GNO4002 + 0.200GND4003                 : ARR( 0.112E-12,  -500., 0.0);
+{  2072} G2N4001 +PERO2              =  0.560G1N4001 + 0.220GNO4002 + 0.220GND4003                 : ARR( 0.418E-13, -1000., 0.0);
+{  2073} G2N4001 +PERO3              =  0.600G1N4001 + 0.200GNO4002 + 0.200GND4003                 : ARR( 0.126E-12,  -850., 0.0);
+{  2074} G2N4001 +PERO5              =  0.600G1N4001 + 0.200GNO4002 + 0.200GND4003                 : ARR( 0.473E-11,   850., 0.0);
+{  2075} G2N4001 +PERO6              =  0.460G1N4001 + 0.270GNO4002 + 0.270GND4003                 : ARR( 0.434E-13,  -900., 0.0);
+{  2076} G2N4001 +PERO9              =  0.800G1N4001 + 0.200GND4003                                : ARR( 0.100E-10,     0., 0.0);
+{  2077} G1N500w                     =       GND2000 +      GDD3000 +      GHO2                    : ARR( 0.200E+15,  2937., 0.0);
+{  2078} G2D5003 +GNO                =       G1D5005 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  2079} G2D5003 +GNO                =       GND500B                                               : ARR( 0.182E-12,  -360., 0.0);
+{  2080} G2D5003 +GHO2               =       GHD5006                                               : ARR( 0.242E-12, -1250., 0.0);
+{  2081} G2D5003 +GNO3               =       G1D5005 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  2082} G2D5003 +MEPERO             =  0.340G1D5005 + 0.330GDO5004 + 0.330GDK5005                 : ARR( 0.565E-13,  -845., 0.0);
+{  2083} G2D5003 +PERO1              =  0.460G1D5005 + 0.270GDO5004 + 0.270GDK5005                 : ARR( 0.434E-13,  -900., 0.0);
+{  2084} G2D5003 +PERO2              =  0.400G1D5005 + 0.300GDO5004 + 0.300GDK5005                 : ARR( 0.162E-13, -1400., 0.0);
+{  2085} G2D5003 +PERO3              =  0.460G1D5005 + 0.270GDO5004 + 0.270GDK5005                 : ARR( 0.488E-13, -1250., 0.0);
+{  2086} G2D5003 +PERO5              =  0.460G1D5005 + 0.270GDO5004 + 0.270GDK5005                 : ARR( 0.183E-11,   450., 0.0);
+{  2087} G2D5003 +PERO6              =  0.300G1D5005 + 0.350GDO5004 + 0.350GDK5005                 : ARR( 0.168E-13, -1300., 0.0);
+{  2088} G2D5003 +PERO9              =  0.650G1D5005 + 0.350GDK5005                                : ARR( 0.100E-10,     0., 0.0);
+{  2089} G1N4001 +OXYGEN             =       GND4003 +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{  2090} G1N4001                     =       GDO4003 +      GNO2                                   : ARR( 0.160E+12,  4531., 0.0);
+{  2091} G1D5005                     =       GDD5001 +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{  2092} G1D5005                     =       GDO4002 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5437., 0.0);
+{  2093} GHN5006 +GHO                =       GND5002 +      GHO                                    : ARR( 0.167E-10,     0., 0.0);
+{  2094} GHN5006 +GHO                =       G2N500A                                               : ARR( 0.198E-11,  -190., 0.0);
+{  2095} GHN5006+HV               =       G1H5000 +      GNO2                                   :  0.100E+01*SUN;
+{  2096} GHN5006+HV               =       G1N500A +      GHO                                    :  0.100E+01*SUN;
+{  2097} GHH5000 +GHO                =       GHK5000 +      GHO                                    : ARR( 0.430E-10,     0., 0.0);
+{  2098} GHH5000 +GHO                =       GHD5001 +      GHO                                    : ARR( 0.168E-10,     0., 0.0);
+{  2099} GHH5000 +GHO                =       G2H5000                                               : ARR( 0.198E-11,  -190., 0.0);
+{  2100} GHH5000 +GHO                =       G2H500G                                               : ARR( 0.198E-11,  -190., 0.0);
+{  2101} GHH5000+HV               =       G1H5000 +      GHO                                    :  0.100E+01*SUN;
+{  2102} GHH5000+HV               =       G1H5008 +      GHO                                    :  0.100E+01*SUN;
+{  2103} G2H500G +GNO                =       G1H5008 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  2104} G2H500G +GNO                =       GHN5002                                               : ARR( 0.182E-12,  -360., 0.0);
+{  2105} G2H500G +GHO2               =       GHH5000                                               : ARR( 0.242E-12, -1250., 0.0);
+{  2106} G2H500G +GNO3               =       G1H5008 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  2107} G2H500G +MEPERO             =  0.480G1H5008 + 0.260GHO5005 + 0.260GHD5001                 : ARR( 0.146E-12,  -445., 0.0);
+{  2108} G2H500G +PERO1              =  0.600G1H5008 + 0.200GHO5005 + 0.200GHD5001                 : ARR( 0.112E-12,  -500., 0.0);
+{  2109} G2H500G +PERO2              =  0.560G1H5008 + 0.220GHO5005 + 0.220GHD5001                 : ARR( 0.418E-13, -1000., 0.0);
+{  2110} G2H500G +PERO3              =  0.600G1H5008 + 0.200GHO5005 + 0.200GHD5001                 : ARR( 0.126E-12,  -850., 0.0);
+{  2111} G2H500G +PERO5              =  0.600G1H5008 + 0.200GHO5005 + 0.200GHD5001                 : ARR( 0.473E-11,   850., 0.0);
+{  2112} G2H500G +PERO6              =  0.460G1H5008 + 0.270GHO5005 + 0.270GHD5001                 : ARR( 0.434E-13,  -900., 0.0);
+{  2113} G2H500G +PERO9              =  0.800G1H5008 + 0.200GHD5001                                : ARR( 0.100E-10,     0., 0.0);
+{  2114} GHO5002 +GHO                =       GHK5000 +      GHO2                                   : ARR( 0.113E-10,     0., 0.0);
+{  2115} GHO5002 +GHO                =       GDO5002 +      GHO                                    : ARR( 0.176E-10,     0., 0.0);
+{  2116} GHO5002 +GHO                =       G2O500G                                               : ARR( 0.208E-11,  -190., 0.0);
+{  2117} GHO5002+HV               =       G1O500E +      GHO                                    :  0.100E+01*SUN;
+{  2118} G2O500G +GNO                =       G1O500E +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  2119} G2O500G +GNO                =       GNO5003                                               : ARR( 0.182E-12,  -360., 0.0);
+{  2120} G2O500G +GHO2               =       GHO5002                                               : ARR( 0.242E-12, -1250., 0.0);
+{  2121} G2O500G +GNO3               =       G1O500E +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  2122} G2O500G +MEPERO             =  0.480G1O500E + 0.260GOO5001 + 0.260GDO5002                 : ARR( 0.146E-12,  -445., 0.0);
+{  2123} G2O500G +PERO1              =  0.600G1O500E + 0.200GOO5001 + 0.200GDO5002                 : ARR( 0.112E-12,  -500., 0.0);
+{  2124} G2O500G +PERO2              =  0.560G1O500E + 0.220GOO5001 + 0.220GDO5002                 : ARR( 0.418E-13, -1000., 0.0);
+{  2125} G2O500G +PERO3              =  0.600G1O500E + 0.200GOO5001 + 0.200GDO5002                 : ARR( 0.126E-12,  -850., 0.0);
+{  2126} G2O500G +PERO5              =  0.600G1O500E + 0.200GOO5001 + 0.200GDO5002                 : ARR( 0.473E-11,   850., 0.0);
+{  2127} G2O500G +PERO6              =  0.460G1O500E + 0.270GOO5001 + 0.270GDO5002                 : ARR( 0.434E-13,  -900., 0.0);
+{  2128} G2O500G +PERO9              =  0.800G1O500E + 0.200GDO5002                                : ARR( 0.100E-10,     0., 0.0);
+{  2129} GHK5000 +GHO                =       GDK5000 +      GHO                                    : ARR( 0.530E-10,     0., 0.0);
+{  2130} GHK5000 +GHO                =       G2K5003                                               : ARR( 0.197E-11,  -190., 0.0);
+{  2131} GHK5000+HV               =       G3K3000 +      G2H2000                                :  0.100E+01*SUN;
+{  2132} GHK5000+HV               =       G1K5003 +      GHO                                    :  0.100E+01*SUN;
+{  2133} GHN5007 +GHO                =       G2H500H                                               : ARR( 0.123E-11,     0., 0.0);
+{  2134} GHN5007 +GHO                =       GND500G +      GHO                                    : ARR( 0.345E-11,     0., 0.0);
+{  2135} GHN5007 +GHO                =       G2N500u                                               : ARR( 0.204E-11,  -190., 0.0);
+{  2136} GHN5007+HV               =       G1H5001 +      GNO2                                   :  0.100E+01*SUN;
+{  2137} GHN5007+HV               =       G1N500c +      GHO                                    :  0.100E+01*SUN;
+{  2138} G2H500H +GNO                =       G1H500M +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  2139} G2H500H +GNO                =       GHN501D                                               : ARR( 0.182E-12,  -360., 0.0);
+{  2140} G2H500H +GHO2               =       GHH500G                                               : ARR( 0.242E-12, -1250., 0.0);
+{  2141} G2H500H +GNO3               =       G1H500M +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  2142} G2H500H +MEPERO             =  0.480G1H500M + 0.260GHN500C + 0.260GHN501E                 : ARR( 0.616E-11,   905., 0.0);
+{  2143} G2H500H +PERO1              =  0.600G1H500M + 0.200GHN500C + 0.200GHN501E                 : ARR( 0.473E-11,   850., 0.0);
+{  2144} G2H500H +PERO2              =  0.560G1H500M + 0.220GHN500C + 0.220GHN501E                 : ARR( 0.177E-11,   350., 0.0);
+{  2145} G2H500H +PERO3              =  0.600G1H500M + 0.200GHN500C + 0.200GHN501E                 : ARR( 0.533E-11,   500., 0.0);
+{  2146} G2H500H +PERO5              =  0.600G1H500M + 0.200GHN500C + 0.200GHN501E                 : ARR( 0.200E-09,  2200., 0.0);
+{  2147} G2H500H +PERO6              =  0.460G1H500M + 0.270GHN500C + 0.270GHN501E                 : ARR( 0.183E-11,   450., 0.0);
+{  2148} G2H500H +PERO9              =  0.800G1H500M + 0.200GHN501E                                : ARR( 0.100E-10,     0., 0.0);
+{  2149} G2N500u +GNO                =       G1N500c +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  2150} G2N500u +GNO                =       GNN5003                                               : ARR( 0.182E-12,  -360., 0.0);
+{  2151} G2N500u +GHO2               =       GHN5007                                               : ARR( 0.242E-12, -1250., 0.0);
+{  2152} G2N500u +GNO3               =       G1N500c +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  2153} G2N500u +MEPERO             =  0.480G1N500c + 0.260GNO5007 + 0.260GND500G                 : ARR( 0.164E-12,  -795., 0.0);
+{  2154} G2N500u +PERO1              =  0.600G1N500c + 0.200GNO5007 + 0.200GND500G                 : ARR( 0.126E-12,  -850., 0.0);
+{  2155} G2N500u +PERO2              =  0.560G1N500c + 0.220GNO5007 + 0.220GND500G                 : ARR( 0.471E-13, -1350., 0.0);
+{  2156} G2N500u +PERO3              =  0.600G1N500c + 0.200GNO5007 + 0.200GND500G                 : ARR( 0.142E-12, -1200., 0.0);
+{  2157} G2N500u +PERO5              =  0.600G1N500c + 0.200GNO5007 + 0.200GND500G                 : ARR( 0.533E-11,   500., 0.0);
+{  2158} G2N500u +PERO6              =  0.460G1N500c + 0.270GNO5007 + 0.270GND500G                 : ARR( 0.488E-13, -1250., 0.0);
+{  2159} G2N500u +PERO9              =  0.800G1N500c + 0.200GND500G                                : ARR( 0.100E-10,     0., 0.0);
+{  2160} G1H500M                     =       GND5004 +      GHO                                    : ARR( 0.160E+12,  2905., 0.0);
+{  2161} GHH5001 +GHO                =       GHK5001 +      GHO                                    : ARR( 0.430E-10,     0., 0.0);
+{  2162} GHH5001 +GHO                =       GHD5008 +      GHO                                    : ARR( 0.168E-10,     0., 0.0);
+{  2163} GHH5001 +GHO                =       G2H5001                                               : ARR( 0.198E-11,  -190., 0.0);
+{  2164} GHH5001 +GHO                =       G2H500I                                               : ARR( 0.198E-11,  -190., 0.0);
+{  2165} GHH5001+HV               =       G1H5001 +      GHO                                    :  0.100E+01*SUN;
+{  2166} GHH5001+HV               =       G1H500A +      GHO                                    :  0.100E+01*SUN;
+{  2167} G2H500I +GNO                =       G1H500A +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  2168} G2H500I +GNO                =       GHN5003                                               : ARR( 0.182E-12,  -360., 0.0);
+{  2169} G2H500I +GHO2               =       GHH5001                                               : ARR( 0.242E-12, -1250., 0.0);
+{  2170} G2H500I +GNO3               =       G1H500A +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  2171} G2H500I +MEPERO             =  0.480G1H500A + 0.260GHO5006 + 0.260GHD5008                 : ARR( 0.164E-12,  -795., 0.0);
+{  2172} G2H500I +PERO1              =  0.600G1H500A + 0.200GHO5006 + 0.200GHD5008                 : ARR( 0.126E-12,  -850., 0.0);
+{  2173} G2H500I +PERO2              =  0.560G1H500A + 0.220GHO5006 + 0.220GHD5008                 : ARR( 0.471E-13, -1350., 0.0);
+{  2174} G2H500I +PERO3              =  0.600G1H500A + 0.200GHO5006 + 0.200GHD5008                 : ARR( 0.142E-12, -1200., 0.0);
+{  2175} G2H500I +PERO5              =  0.600G1H500A + 0.200GHO5006 + 0.200GHD5008                 : ARR( 0.533E-11,   500., 0.0);
+{  2176} G2H500I +PERO6              =  0.460G1H500A + 0.270GHO5006 + 0.270GHD5008                 : ARR( 0.488E-13, -1250., 0.0);
+{  2177} G2H500I +PERO9              =  0.800G1H500A + 0.200GHD5008                                : ARR( 0.100E-10,     0., 0.0);
+{  2178} GHO5003 +GHO                =       GHK5001 +      GHO2                                   : ARR( 0.113E-10,     0., 0.0);
+{  2179} GHO5003 +GHO                =       GDO5007 +      GHO                                    : ARR( 0.176E-10,     0., 0.0);
+{  2180} GHO5003 +GHO                =       G2O500H                                               : ARR( 0.208E-11,  -190., 0.0);
+{  2181} GHO5003+HV               =       G1O500G +      GHO                                    :  0.100E+01*SUN;
+{  2182} G2O500H +GNO                =       G1O500G +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  2183} G2O500H +GNO                =       GNO5004                                               : ARR( 0.182E-12,  -360., 0.0);
+{  2184} G2O500H +GHO2               =       GHO5003                                               : ARR( 0.242E-12, -1250., 0.0);
+{  2185} G2O500H +GNO3               =       G1O500G +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  2186} G2O500H +MEPERO             =  0.480G1O500G + 0.260GOO5002 + 0.260GDO5007                 : ARR( 0.164E-12,  -795., 0.0);
+{  2187} G2O500H +PERO1              =  0.600G1O500G + 0.200GOO5002 + 0.200GDO5007                 : ARR( 0.126E-12,  -850., 0.0);
+{  2188} G2O500H +PERO2              =  0.560G1O500G + 0.220GOO5002 + 0.220GDO5007                 : ARR( 0.471E-13, -1350., 0.0);
+{  2189} G2O500H +PERO3              =  0.600G1O500G + 0.200GOO5002 + 0.200GDO5007                 : ARR( 0.142E-12, -1200., 0.0);
+{  2190} G2O500H +PERO5              =  0.600G1O500G + 0.200GOO5002 + 0.200GDO5007                 : ARR( 0.533E-11,   500., 0.0);
+{  2191} G2O500H +PERO6              =  0.460G1O500G + 0.270GOO5002 + 0.270GDO5007                 : ARR( 0.488E-13, -1250., 0.0);
+{  2192} G2O500H +PERO9              =  0.800G1O500G + 0.200GDO5007                                : ARR( 0.100E-10,     0., 0.0);
+{  2193} GHK5001 +GHO                =       G2H500J                                               : ARR( 0.386E-11,     0., 0.0);
+{  2194} GHK5001 +GHO                =       GDK5006 +      GHO                                    : ARR( 0.104E-10,     0., 0.0);
+{  2195} GHK5001 +GHO                =       G2K5008                                               : ARR( 0.201E-11,  -190., 0.0);
+{  2196} GHK5001+HV               =       G3K4001 +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{  2197} GHK5001+HV               =       GU02000 +      GHK3000                                :  0.100E+01*SUN;
+{  2198} GHK5001+HV               =       G1K5009 +      GHO                                    :  0.100E+01*SUN;
+{  2199} G2H500J +GNO                =       G1H500N +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  2200} G2H500J +GNO                =       GHN501F                                               : ARR( 0.182E-12,  -360., 0.0);
+{  2201} G2H500J +GHO2               =       GHH500H                                               : ARR( 0.242E-12, -1250., 0.0);
+{  2202} G2H500J +GNO3               =       G1H500N +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  2203} G2H500J +MEPERO             =  0.480G1H500N + 0.260GHK5005 + 0.260GHK500D                 : ARR( 0.616E-11,   905., 0.0);
+{  2204} G2H500J +PERO1              =  0.600G1H500N + 0.200GHK5005 + 0.200GHK500D                 : ARR( 0.473E-11,   850., 0.0);
+{  2205} G2H500J +PERO2              =  0.560G1H500N + 0.220GHK5005 + 0.220GHK500D                 : ARR( 0.177E-11,   350., 0.0);
+{  2206} G2H500J +PERO3              =  0.600G1H500N + 0.200GHK5005 + 0.200GHK500D                 : ARR( 0.533E-11,   500., 0.0);
+{  2207} G2H500J +PERO5              =  0.600G1H500N + 0.200GHK5005 + 0.200GHK500D                 : ARR( 0.200E-09,  2200., 0.0);
+{  2208} G2H500J +PERO6              =  0.460G1H500N + 0.270GHK5005 + 0.270GHK500D                 : ARR( 0.183E-11,   450., 0.0);
+{  2209} G2H500J +PERO9              =  0.800G1H500N + 0.200GHK500D                                : ARR( 0.100E-10,     0., 0.0);
+{  2210} G2K5008 +GNO                =       G1K5009 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  2211} G2K5008 +GNO                =       GNK5002                                               : ARR( 0.182E-12,  -360., 0.0);
+{  2212} G2K5008 +GHO2               =       GHK5001                                               : ARR( 0.242E-12, -1250., 0.0);
+{  2213} G2K5008 +GNO3               =       G1K5009 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  2214} G2K5008 +MEPERO             =  0.480G1K5009 + 0.260GKO5002 + 0.260GDK5006                 : ARR( 0.164E-12,  -795., 0.0);
+{  2215} G2K5008 +PERO1              =  0.600G1K5009 + 0.200GKO5002 + 0.200GDK5006                 : ARR( 0.126E-12,  -850., 0.0);
+{  2216} G2K5008 +PERO2              =  0.560G1K5009 + 0.220GKO5002 + 0.220GDK5006                 : ARR( 0.471E-13, -1350., 0.0);
+{  2217} G2K5008 +PERO3              =  0.600G1K5009 + 0.200GKO5002 + 0.200GDK5006                 : ARR( 0.142E-12, -1200., 0.0);
+{  2218} G2K5008 +PERO5              =  0.600G1K5009 + 0.200GKO5002 + 0.200GDK5006                 : ARR( 0.533E-11,   500., 0.0);
+{  2219} G2K5008 +PERO6              =  0.460G1K5009 + 0.270GKO5002 + 0.270GDK5006                 : ARR( 0.488E-13, -1250., 0.0);
+{  2220} G2K5008 +PERO9              =  0.800G1K5009 + 0.200GDK5006                                : ARR( 0.100E-10,     0., 0.0);
+{  2221} G1H500N                     =       GDK5001 +      GHO                                    : ARR( 0.160E+12,  4168., 0.0);
+{  2222} G1H500N                     =       GD02000 +      G2H3002                                : ARR( 0.200E+15,  7034., 0.0);
+{  2223} G2H3002 +GNO                =       G1H3003 +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{  2224} G2H3002 +GNO                =       GHN3008                                               : ARR( 0.622E-13,  -360., 0.0);
+{  2225} G2H3002 +GHO2               =       GHH3002                                               : ARR( 0.179E-12, -1250., 0.0);
+{  2226} G2H3002 +GNO3               =       G1H3003 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  2227} G2H3002 +MEPERO             =  0.480G1H3003 + 0.260GHK3001 + 0.260GHD3001                 : ARR( 0.164E-12,  -795., 0.0);
+{  2228} G2H3002 +PERO1              =  0.600G1H3003 + 0.200GHK3001 + 0.200GHD3001                 : ARR( 0.126E-12,  -850., 0.0);
+{  2229} G2H3002 +PERO2              =  0.560G1H3003 + 0.220GHK3001 + 0.220GHD3001                 : ARR( 0.471E-13, -1350., 0.0);
+{  2230} G2H3002 +PERO3              =  0.600G1H3003 + 0.200GHK3001 + 0.200GHD3001                 : ARR( 0.142E-12, -1200., 0.0);
+{  2231} G2H3002 +PERO5              =  0.600G1H3003 + 0.200GHK3001 + 0.200GHD3001                 : ARR( 0.533E-11,   500., 0.0);
+{  2232} G2H3002 +PERO6              =  0.460G1H3003 + 0.270GHK3001 + 0.270GHD3001                 : ARR( 0.488E-13, -1250., 0.0);
+{  2233} G2H3002 +PERO9              =  0.800G1H3003 + 0.200GHD3001                                : ARR( 0.100E-10,     0., 0.0);
+{  2234} G1H3003                     =       G3H2000 +      GCH2O                                  : ARR( 0.200E+15,  3640., 0.0);
+{  2235} G3H2000 +GHO2               =  0.800GGH2000 + 0.200GAH2000 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  2236} G3H2000 +GNO                =       GCH2O   +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{  2237}  G3H2000 + GNO2       +M       =       GPH2000         +M                                    : FALL( 0.110E-10,     0.,-1.0, 0.850E-28,     0.,-6.5,0.60);
+{  2238} G3H2000 +GNO3               =       GCH2O   +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{  2239} G3H2000 +MEPERO             =  0.685GCH2O   + 0.315GAH2000 + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  2240} G3H2000 +PERO1              =  0.800GCH2O   + 0.200GAH2000 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  2241} G3H2000 +PERO2              =  0.750GCH2O   + 0.250GAH2000 + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  2242} G3H2000 +PERO3              =  0.800GCH2O   + 0.200GAH2000 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  2243} G3H2000 +PERO5              =  0.650GCH2O   + 0.350GAH2000 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  2244} G3H2000 +PERO6              =  0.650GCH2O   + 0.350GAH2000 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  2245} G3H2000 +PERO9              =       GCH2O   +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{  2246} GHD3000 +GHO                =       GDD3000 +      GHO                                    : ARR( 0.542E-10,     0., 0.0);
+{  2247} GHD3000 +GHO                =       G3H3000                                               : ARR( 0.221E-10,     0., 0.0);
+{  2248} GHD3000 +GNO3               =       G3H3000 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{  2249} GHD3000+HV               =       G1D3000 +      GHO                                    :  0.100E+01*SUN;
+{  2250} GHD3000+HV               =       G2H2000 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{  2251} G3H3000 +GHO2               =  0.800GGH3000 + 0.200GAH3000 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  2252} G3H3000 +GNO                =       G2H2000 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{  2253} G3H3000 +GNO2               =       GPH3000                                               : ARR( 0.330E-08,     0.,-1.0);
+{  2254} G3H3000 +GNO3               =       G2H2000 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{  2255} G3H3000 +MEPERO             =  0.685G2H2000 + 0.315GAH3000 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  2256} G3H3000 +PERO1              =  0.800G2H2000 + 0.200GAH3000 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  2257} G3H3000 +PERO2              =  0.750G2H2000 + 0.250GAH3000 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  2258} G3H3000 +PERO3              =  0.800G2H2000 + 0.200GAH3000 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  2259} G3H3000 +PERO5              =  0.650G2H2000 + 0.350GAH3000 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  2260} G3H3000 +PERO6              =  0.650G2H2000 + 0.350GAH3000 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  2261} G3H3000 +PERO9              =       G2H2000 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{  2262} GD04000 +GHO                =       G2D4000                                               : ARR( 0.785E-12,  -446., 0.0);
+{  2263} GD04000 +GHO                =       G3K4001                                               : ARR( 0.448E-11,  -446., 0.0);
+{  2264} GD04000 +GNO3               =       G3K4001 +      GHNO3                                  : ARR( 0.117E-13,     0., 0.0);
+{  2265} GD04000+HV               =       G203000 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{  2266} GD04000+HV               =       GU02000 +      GD02000                                :  0.100E+01*SUN;
+{  2267} G2D4000 +GNO                =       G1D4000 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  2268} G2D4000 +GNO                =       GND4000                                               : ARR( 0.111E-12,  -360., 0.0);
+{  2269} G2D4000 +GHO2               =       GHD4002                                               : ARR( 0.214E-12, -1250., 0.0);
+{  2270} G2D4000 +GNO3               =       G1D4000 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  2271} G2D4000 +MEPERO             =  0.480G1D4000 + 0.260GDO4001 + 0.260GDK4000                 : ARR( 0.616E-11,   905., 0.0);
+{  2272} G2D4000 +PERO1              =  0.600G1D4000 + 0.200GDO4001 + 0.200GDK4000                 : ARR( 0.473E-11,   850., 0.0);
+{  2273} G2D4000 +PERO2              =  0.560G1D4000 + 0.220GDO4001 + 0.220GDK4000                 : ARR( 0.177E-11,   350., 0.0);
+{  2274} G2D4000 +PERO3              =  0.600G1D4000 + 0.200GDO4001 + 0.200GDK4000                 : ARR( 0.533E-11,   500., 0.0);
+{  2275} G2D4000 +PERO5              =  0.600G1D4000 + 0.200GDO4001 + 0.200GDK4000                 : ARR( 0.200E-09,  2200., 0.0);
+{  2276} G2D4000 +PERO6              =  0.460G1D4000 + 0.270GDO4001 + 0.270GDK4000                 : ARR( 0.183E-11,   450., 0.0);
+{  2277} G2D4000 +PERO9              =  0.800G1D4000 + 0.200GDK4000                                : ARR( 0.100E-10,     0., 0.0);
+{  2278} G1D4000                     =       GD02000 +      G2D2000                                : ARR( 0.200E+15,  7034., 0.0);
+{  2279} GHH2000 +GHO                =       GHD2000 +      GHO                                    : ARR( 0.322E-10,     0., 0.0);
+{  2280} GHH2000 +GHO                =       G2H2000                                               : ARR( 0.380E-11,  -190., 0.0);
+{  2281} GHH2000+HV               =       G1H2000 +      GHO                                    :  0.200E+01*SUN;
+{  2282} GHO2000 +GHO                =       GHD2000 +      GHO2                                   : ARR( 0.404E-11,     0., 0.0);
+{  2283} GHO2000 +GHO                =       GDO2000 +      GHO                                    : ARR( 0.162E-10,     0., 0.0);
+{  2284} GHO2000 +GHO                =       G2O2000                                               : ARR( 0.191E-11,  -190., 0.0);
+{  2285} GHO2000+HV               =       G1O2000 +      GHO                                    :  0.100E+01*SUN;
+{  2286} GHD2000 +GHO                =       GDD2000 +      GHO                                    : ARR( 0.981E-11,     0., 0.0);
+{  2287} GHD2000 +GHO                =       G3H2000                                               : ARR( 0.208E-10,     0., 0.0);
+{  2288} GHD2000 +GHO                =       G2D2000                                               : ARR( 0.190E-11,  -190., 0.0);
+{  2289} GHD2000 +GNO3               =       G3H2000 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{  2290} GHD2000+HV               =       G1D2000 +      GHO                                    :  0.100E+01*SUN;
+{  2291} GHD2000+HV               =       GCH2O   +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{  2292} GHN5008 +GHO                =       GHN500O +      GHO2                                   : ARR( 0.109E-10,     0., 0.0);
+{  2293} GHN5008 +GHO                =       GND500H +      GHO                                    : ARR( 0.171E-10,     0., 0.0);
+{  2294} GHN5008 +GHO                =       G2N500v                                               : ARR( 0.202E-11,  -190., 0.0);
+{  2295} GHN5008+HV               =       G1H5002 +      GNO2                                   :  0.100E+01*SUN;
+{  2296} GHN5008+HV               =       G1N500s +      GHO                                    :  0.100E+01*SUN;
+{  2297} G2N500v +GNO                =       G1N500s +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  2298} G2N500v +GNO                =       GNN5005                                               : ARR( 0.182E-12,  -360., 0.0);
+{  2299} G2N500v +GHO2               =       GHN5008                                               : ARR( 0.242E-12, -1250., 0.0);
+{  2300} G2N500v +GNO3               =       G1N500s +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  2301} G2N500v +MEPERO             =  0.480G1N500s + 0.260GNO5008 + 0.260GND500H                 : ARR( 0.164E-12,  -795., 0.0);
+{  2302} G2N500v +PERO1              =  0.600G1N500s + 0.200GNO5008 + 0.200GND500H                 : ARR( 0.126E-12,  -850., 0.0);
+{  2303} G2N500v +PERO2              =  0.560G1N500s + 0.220GNO5008 + 0.220GND500H                 : ARR( 0.471E-13, -1350., 0.0);
+{  2304} G2N500v +PERO3              =  0.600G1N500s + 0.200GNO5008 + 0.200GND500H                 : ARR( 0.142E-12, -1200., 0.0);
+{  2305} G2N500v +PERO5              =  0.600G1N500s + 0.200GNO5008 + 0.200GND500H                 : ARR( 0.533E-11,   500., 0.0);
+{  2306} G2N500v +PERO6              =  0.460G1N500s + 0.270GNO5008 + 0.270GND500H                 : ARR( 0.488E-13, -1250., 0.0);
+{  2307} G2N500v +PERO9              =  0.800G1N500s + 0.200GND500H                                : ARR( 0.100E-10,     0., 0.0);
+{  2308} GHH5002 +GHO                =       GHD5000 +      GHO                                    : ARR( 0.170E-10,     0., 0.0);
+{  2309} GHH5002 +GHO                =       GHH500I +      GHO2                                   : ARR( 0.109E-10,     0., 0.0);
+{  2310} GHH5002 +GHO                =       GHD5009 +      GHO                                    : ARR( 0.170E-10,     0., 0.0);
+{  2311} GHH5002 +GHO                =       G2H5002                                               : ARR( 0.201E-11,  -190., 0.0);
+{  2312} GHH5002 +GHO                =       G2H500K                                               : ARR( 0.201E-11,  -190., 0.0);
+{  2313} GHH5002+HV               =       G1H5002 +      GHO                                    :  0.100E+01*SUN;
+{  2314} GHH5002+HV               =       G1H500I +      GHO                                    :  0.100E+01*SUN;
+{  2315} G2H500K +GNO                =       G1H500I +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  2316} G2H500K +GNO                =       GHN5005                                               : ARR( 0.182E-12,  -360., 0.0);
+{  2317} G2H500K +GHO2               =       GHH5002                                               : ARR( 0.242E-12, -1250., 0.0);
+{  2318} G2H500K +GNO3               =       G1H500I +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  2319} G2H500K +MEPERO             =  0.480G1H500I + 0.260GHO5007 + 0.260GHD5009                 : ARR( 0.164E-12,  -795., 0.0);
+{  2320} G2H500K +PERO1              =  0.600G1H500I + 0.200GHO5007 + 0.200GHD5009                 : ARR( 0.126E-12,  -850., 0.0);
+{  2321} G2H500K +PERO2              =  0.560G1H500I + 0.220GHO5007 + 0.220GHD5009                 : ARR( 0.471E-13, -1350., 0.0);
+{  2322} G2H500K +PERO3              =  0.600G1H500I + 0.200GHO5007 + 0.200GHD5009                 : ARR( 0.142E-12, -1200., 0.0);
+{  2323} G2H500K +PERO5              =  0.600G1H500I + 0.200GHO5007 + 0.200GHD5009                 : ARR( 0.533E-11,   500., 0.0);
+{  2324} G2H500K +PERO6              =  0.460G1H500I + 0.270GHO5007 + 0.270GHD5009                 : ARR( 0.488E-13, -1250., 0.0);
+{  2325} G2H500K +PERO9              =  0.800G1H500I + 0.200GHD5009                                : ARR( 0.100E-10,     0., 0.0);
+{  2326} GHO5004 +GHO                =       GHD5000 +      GHO2                                   : ARR( 0.439E-11,     0., 0.0);
+{  2327} GHO5004 +GHO                =       GHK5002 +      GHO2                                   : ARR( 0.112E-10,     0., 0.0);
+{  2328} GHO5004 +GHO                =       GDO5006 +      GHO                                    : ARR( 0.176E-10,     0., 0.0);
+{  2329} GHO5004 +GHO                =       G2O500I                                               : ARR( 0.207E-11,  -190., 0.0);
+{  2330} GHO5004+HV               =       G1O500I +      GHO                                    :  0.100E+01*SUN;
+{  2331} G2O500I +GNO                =       G1O500I +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  2332} G2O500I +GNO                =       GNO5005                                               : ARR( 0.182E-12,  -360., 0.0);
+{  2333} G2O500I +GHO2               =       GHO5004                                               : ARR( 0.242E-12, -1250., 0.0);
+{  2334} G2O500I +GNO3               =       G1O500I +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  2335} G2O500I +MEPERO             =  0.480G1O500I + 0.260GOO5003 + 0.260GDO5006                 : ARR( 0.164E-12,  -795., 0.0);
+{  2336} G2O500I +PERO1              =  0.600G1O500I + 0.200GOO5003 + 0.200GDO5006                 : ARR( 0.126E-12,  -850., 0.0);
+{  2337} G2O500I +PERO2              =  0.560G1O500I + 0.220GOO5003 + 0.220GDO5006                 : ARR( 0.471E-13, -1350., 0.0);
+{  2338} G2O500I +PERO3              =  0.600G1O500I + 0.200GOO5003 + 0.200GDO5006                 : ARR( 0.142E-12, -1200., 0.0);
+{  2339} G2O500I +PERO5              =  0.600G1O500I + 0.200GOO5003 + 0.200GDO5006                 : ARR( 0.533E-11,   500., 0.0);
+{  2340} G2O500I +PERO6              =  0.460G1O500I + 0.270GOO5003 + 0.270GDO5006                 : ARR( 0.488E-13, -1250., 0.0);
+{  2341} G2O500I +PERO9              =  0.800G1O500I + 0.200GDO5006                                : ARR( 0.100E-10,     0., 0.0);
+{  2342} GHD5000 +GHO                =       GDD5000 +      GHO                                    : ARR( 0.164E-10,     0., 0.0);
+{  2343} GHD5000 +GHO                =       GHD500A +      GHO2                                   : ARR( 0.105E-10,     0., 0.0);
+{  2344} GHD5000 +GHO                =       G2H500L                                               : ARR( 0.456E-11,     0., 0.0);
+{  2345} GHD5000 +GHO                =       G3H5000                                               : ARR( 0.212E-10,     0., 0.0);
+{  2346} GHD5000 +GHO                =       G2D5004                                               : ARR( 0.193E-11,  -190., 0.0);
+{  2347} GHD5000 +GNO3               =       G3H5000 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{  2348} GHD5000+HV               =       G1D5004 +      GHO                                    :  0.100E+01*SUN;
+{  2349} GHD5000+HV               =       G2H4000 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{  2350} GHD5000+HV               =       GHK3000 +      GD02000                                :  0.100E+01*SUN;
+{  2351} G2H500L +GNO                =       G1H500O +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  2352} G2H500L +GNO                =       GHN501G                                               : ARR( 0.182E-12,  -360., 0.0);
+{  2353} G2H500L +GHO2               =       GHH500J                                               : ARR( 0.242E-12, -1250., 0.0);
+{  2354} G2H500L +GNO3               =       G1H500O +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  2355} G2H500L +MEPERO             =  0.340G1H500O + 0.330GHD500B + 0.330GHD500C                 : ARR( 0.565E-13,  -845., 0.0);
+{  2356} G2H500L +PERO1              =  0.460G1H500O + 0.270GHD500B + 0.270GHD500C                 : ARR( 0.434E-13,  -900., 0.0);
+{  2357} G2H500L +PERO2              =  0.400G1H500O + 0.300GHD500B + 0.300GHD500C                 : ARR( 0.162E-13, -1400., 0.0);
+{  2358} G2H500L +PERO3              =  0.460G1H500O + 0.270GHD500B + 0.270GHD500C                 : ARR( 0.488E-13, -1250., 0.0);
+{  2359} G2H500L +PERO5              =  0.460G1H500O + 0.270GHD500B + 0.270GHD500C                 : ARR( 0.183E-11,   450., 0.0);
+{  2360} G2H500L +PERO6              =  0.300G1H500O + 0.350GHD500B + 0.350GHD500C                 : ARR( 0.168E-13, -1300., 0.0);
+{  2361} G2H500L +PERO9              =  0.650G1H500O + 0.350GHD500C                                : ARR( 0.100E-10,     0., 0.0);
+{  2362} G3H5000 +GHO2               =  0.800GGH5000 + 0.200GAH5000 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  2363} G3H5000 +GNO                =       G2H4000 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{  2364} G3H5000 +GNO2               =       GPH5000                                               : ARR( 0.330E-08,     0.,-1.0);
+{  2365} G3H5000 +GNO3               =       G2H4000 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{  2366} G3H5000 +MEPERO             =  0.685G2H4000 + 0.315GAH5000 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  2367} G3H5000 +PERO1              =  0.800G2H4000 + 0.200GAH5000 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  2368} G3H5000 +PERO2              =  0.750G2H4000 + 0.250GAH5000 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  2369} G3H5000 +PERO3              =  0.800G2H4000 + 0.200GAH5000 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  2370} G3H5000 +PERO5              =  0.650G2H4000 + 0.350GAH5000 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  2371} G3H5000 +PERO6              =  0.650G2H4000 + 0.350GAH5000 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  2372} G3H5000 +PERO9              =       G2H4000 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{  2373} G2D5004 +GNO                =       G1D5004 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  2374} G2D5004 +GNO                =       GND5001                                               : ARR( 0.182E-12,  -360., 0.0);
+{  2375} G2D5004 +GHO2               =       GHD5000                                               : ARR( 0.242E-12, -1250., 0.0);
+{  2376} G2D5004 +GNO3               =       G1D5004 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  2377} G2D5004 +MEPERO             =  0.480G1D5004 + 0.260GDO5001 + 0.260GDD5000                 : ARR( 0.164E-12,  -795., 0.0);
+{  2378} G2D5004 +PERO1              =  0.600G1D5004 + 0.200GDO5001 + 0.200GDD5000                 : ARR( 0.126E-12,  -850., 0.0);
+{  2379} G2D5004 +PERO2              =  0.560G1D5004 + 0.220GDO5001 + 0.220GDD5000                 : ARR( 0.471E-13, -1350., 0.0);
+{  2380} G2D5004 +PERO3              =  0.600G1D5004 + 0.200GDO5001 + 0.200GDD5000                 : ARR( 0.142E-12, -1200., 0.0);
+{  2381} G2D5004 +PERO5              =  0.600G1D5004 + 0.200GDO5001 + 0.200GDD5000                 : ARR( 0.533E-11,   500., 0.0);
+{  2382} G2D5004 +PERO6              =  0.460G1D5004 + 0.270GDO5001 + 0.270GDD5000                 : ARR( 0.488E-13, -1250., 0.0);
+{  2383} G2D5004 +PERO9              =  0.800G1D5004 + 0.200GDD5000                                : ARR( 0.100E-10,     0., 0.0);
+{  2384} G2H4000 +GNO                =       G1H4000 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  2385} G2H4000 +GNO                =       GHN4003                                               : ARR( 0.111E-12,  -360., 0.0);
+{  2386} G2H4000 +GHO2               =       GHH4000                                               : ARR( 0.214E-12, -1250., 0.0);
+{  2387} G2H4000 +GNO3               =       G1H4000 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  2388} G2H4000 +MEPERO             =  0.480G1H4000 + 0.260GHO4002 + 0.260GHD4003                 : ARR( 0.146E-12,  -445., 0.0);
+{  2389} G2H4000 +PERO1              =  0.600G1H4000 + 0.200GHO4002 + 0.200GHD4003                 : ARR( 0.112E-12,  -500., 0.0);
+{  2390} G2H4000 +PERO2              =  0.560G1H4000 + 0.220GHO4002 + 0.220GHD4003                 : ARR( 0.418E-13, -1000., 0.0);
+{  2391} G2H4000 +PERO3              =  0.600G1H4000 + 0.200GHO4002 + 0.200GHD4003                 : ARR( 0.126E-12,  -850., 0.0);
+{  2392} G2H4000 +PERO5              =  0.600G1H4000 + 0.200GHO4002 + 0.200GHD4003                 : ARR( 0.473E-11,   850., 0.0);
+{  2393} G2H4000 +PERO6              =  0.460G1H4000 + 0.270GHO4002 + 0.270GHD4003                 : ARR( 0.434E-13,  -900., 0.0);
+{  2394} G2H4000 +PERO9              =  0.800G1H4000 + 0.200GHD4003                                : ARR( 0.100E-10,     0., 0.0);
+{  2395} G1H500O                     =       GHD2000 +      GDD3000 +      GHO2                    : ARR( 0.200E+15,  2937., 0.0);
+{  2396} G1H4000                     =       GDO4003 +      GHO                                    : ARR( 0.160E+12,  2186., 0.0);
+{  2397} GHK5002 +GHO                =       GHD500A +      GHO2                                   : ARR( 0.420E-11,     0., 0.0);
+{  2398} GHK5002 +GHO                =       G2H500M                                               : ARR( 0.469E-11,     0., 0.0);
+{  2399} GHK5002 +GHO                =       GDK5004 +      GHO                                    : ARR( 0.103E-10,     0., 0.0);
+{  2400} GHK5002 +GHO                =       G2K5009                                               : ARR( 0.199E-11,  -190., 0.0);
+{  2401} GHK5002+HV               =       G3K4002 +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{  2402} GHK5002+HV               =       GD02000 +      GHK3000                                :  0.100E+01*SUN;
+{  2403} GHK5002+HV               =       G1K500A +      GHO                                    :  0.100E+01*SUN;
+{  2404} G2H500M +GNO                =       G1H500P +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  2405} G2H500M +GNO                =       GHN501H                                               : ARR( 0.182E-12,  -360., 0.0);
+{  2406} G2H500M +GHO2               =       GHH500K                                               : ARR( 0.242E-12, -1250., 0.0);
+{  2407} G2H500M +GNO3               =       G1H500P +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  2408} G2H500M +MEPERO             =  0.340G1H500P + 0.330GHK500C + 0.330GHK500E                 : ARR( 0.565E-13,  -845., 0.0);
+{  2409} G2H500M +PERO1              =  0.460G1H500P + 0.270GHK500C + 0.270GHK500E                 : ARR( 0.434E-13,  -900., 0.0);
+{  2410} G2H500M +PERO2              =  0.400G1H500P + 0.300GHK500C + 0.300GHK500E                 : ARR( 0.162E-13, -1400., 0.0);
+{  2411} G2H500M +PERO3              =  0.460G1H500P + 0.270GHK500C + 0.270GHK500E                 : ARR( 0.488E-13, -1250., 0.0);
+{  2412} G2H500M +PERO5              =  0.460G1H500P + 0.270GHK500C + 0.270GHK500E                 : ARR( 0.183E-11,   450., 0.0);
+{  2413} G2H500M +PERO6              =  0.300G1H500P + 0.350GHK500C + 0.350GHK500E                 : ARR( 0.168E-13, -1300., 0.0);
+{  2414} G2H500M +PERO9              =  0.650G1H500P + 0.350GHK500E                                : ARR( 0.100E-10,     0., 0.0);
+{  2415} G2K5009 +GNO                =       G1K500A +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  2416} G2K5009 +GNO                =       GNK5003                                               : ARR( 0.182E-12,  -360., 0.0);
+{  2417} G2K5009 +GHO2               =       GHK5002                                               : ARR( 0.242E-12, -1250., 0.0);
+{  2418} G2K5009 +GNO3               =       G1K500A +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  2419} G2K5009 +MEPERO             =  0.480G1K500A + 0.260GKO5003 + 0.260GDK5004                 : ARR( 0.164E-12,  -795., 0.0);
+{  2420} G2K5009 +PERO1              =  0.600G1K500A + 0.200GKO5003 + 0.200GDK5004                 : ARR( 0.126E-12,  -850., 0.0);
+{  2421} G2K5009 +PERO2              =  0.560G1K500A + 0.220GKO5003 + 0.220GDK5004                 : ARR( 0.471E-13, -1350., 0.0);
+{  2422} G2K5009 +PERO3              =  0.600G1K500A + 0.200GKO5003 + 0.200GDK5004                 : ARR( 0.142E-12, -1200., 0.0);
+{  2423} G2K5009 +PERO5              =  0.600G1K500A + 0.200GKO5003 + 0.200GDK5004                 : ARR( 0.533E-11,   500., 0.0);
+{  2424} G2K5009 +PERO6              =  0.460G1K500A + 0.270GKO5003 + 0.270GDK5004                 : ARR( 0.488E-13, -1250., 0.0);
+{  2425} G2K5009 +PERO9              =  0.800G1K500A + 0.200GDK5004                                : ARR( 0.100E-10,     0., 0.0);
+{  2426} G1H500P                     =       GCH2O   +      GHD4004 +      GHO2                    : ARR( 0.200E+15,  4658., 0.0);
+{  2427} GNO5006 +GHO                =       G2N500w                                               : ARR( 0.326E-12,     0., 0.0);
+{  2428} GNO5006 +GHO                =       GND5002 +      GHO2                                   : ARR( 0.463E-11,     0., 0.0);
+{  2429} GNO5006+HV               =       G1O5002 +      GNO2                                   :  0.100E+01*SUN;
+{  2430} G2N500w +GNO                =       G1N500x +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  2431} G2N500w +GNO                =       GNN500q                                               : ARR( 0.182E-12,  -360., 0.0);
+{  2432} G2N500w +GHO2               =       GHN501I                                               : ARR( 0.242E-12, -1250., 0.0);
+{  2433} G2N500w +GNO3               =       G1N500x +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  2434} G2N500w +MEPERO             =  0.340G1N500x + 0.330GNO500O + 0.330GNK500T                 : ARR( 0.565E-13,  -845., 0.0);
+{  2435} G2N500w +PERO1              =  0.460G1N500x + 0.270GNO500O + 0.270GNK500T                 : ARR( 0.434E-13,  -900., 0.0);
+{  2436} G2N500w +PERO2              =  0.400G1N500x + 0.300GNO500O + 0.300GNK500T                 : ARR( 0.162E-13, -1400., 0.0);
+{  2437} G2N500w +PERO3              =  0.460G1N500x + 0.270GNO500O + 0.270GNK500T                 : ARR( 0.488E-13, -1250., 0.0);
+{  2438} G2N500w +PERO5              =  0.460G1N500x + 0.270GNO500O + 0.270GNK500T                 : ARR( 0.183E-11,   450., 0.0);
+{  2439} G2N500w +PERO6              =  0.300G1N500x + 0.350GNO500O + 0.350GNK500T                 : ARR( 0.168E-13, -1300., 0.0);
+{  2440} G2N500w +PERO9              =  0.650G1N500x + 0.350GNK500T                                : ARR( 0.100E-10,     0., 0.0);
+{  2441} G1N500x                     =       G2N500x                                               : ARR( 0.240E+12,  4177., 0.0);
+{  2442} G1N500x                     =       GND4005 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  5296., 0.0);
+{  2443} G2N500x +GNO                =       G1N500y +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  2444} G2N500x +GNO                =       GNN500r                                               : ARR( 0.182E-12,  -360., 0.0);
+{  2445} G2N500x +GHO2               =       GHN501J                                               : ARR( 0.242E-12, -1250., 0.0);
+{  2446} G2N500x +GNO3               =       G1N500y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  2447} G2N500x +MEPERO             =  0.480G1N500y + 0.260GNO500P + 0.260GND500I                 : ARR( 0.146E-12,  -445., 0.0);
+{  2448} G2N500x +PERO1              =  0.600G1N500y + 0.200GNO500P + 0.200GND500I                 : ARR( 0.112E-12,  -500., 0.0);
+{  2449} G2N500x +PERO2              =  0.560G1N500y + 0.220GNO500P + 0.220GND500I                 : ARR( 0.418E-13, -1000., 0.0);
+{  2450} G2N500x +PERO3              =  0.600G1N500y + 0.200GNO500P + 0.200GND500I                 : ARR( 0.126E-12,  -850., 0.0);
+{  2451} G2N500x +PERO5              =  0.600G1N500y + 0.200GNO500P + 0.200GND500I                 : ARR( 0.473E-11,   850., 0.0);
+{  2452} G2N500x +PERO6              =  0.460G1N500y + 0.270GNO500P + 0.270GND500I                 : ARR( 0.434E-13,  -900., 0.0);
+{  2453} G2N500x +PERO9              =  0.800G1N500y + 0.200GND500I                                : ARR( 0.100E-10,     0., 0.0);
+{  2454} G1N500y                     =       GNK500U +      GHO2                                   : ARR( 0.800E+11,  2744., 0.0);
+{  2455} GHO5005 +GHO                =       GKO5001 +      GHO                                    : ARR( 0.436E-10,     0., 0.0);
+{  2456} GHO5005 +GHO                =       GHD5001 +      GHO2                                   : ARR( 0.426E-11,     0., 0.0);
+{  2457} GHO5005 +GHO                =       G2O5002                                               : ARR( 0.201E-11,  -190., 0.0);
+{  2458} GHO5005+HV               =       G1O5002 +      GHO                                    :  0.100E+01*SUN;
+{  2459} GOO5001 +GHO                =       G2O500D                                               : ARR( 0.118E-11,     0., 0.0);
+{  2460} GOO5001 +GHO                =       GKO5001 +      GHO2                                   : ARR( 0.106E-10,     0., 0.0);
+{  2461} GOO5001 +GHO                =       G2O500J                                               : ARR( 0.145E-11,     0., 0.0);
+{  2462} GOO5001 +GHO                =       GDO5002 +      GHO2                                   : ARR( 0.413E-11,     0., 0.0);
+{  2463} G2O500J +GNO                =       G1O500K +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  2464} G2O500J +GNO                =       GNO500Q                                               : ARR( 0.182E-12,  -360., 0.0);
+{  2465} G2O500J +GHO2               =       GHO500J                                               : ARR( 0.242E-12, -1250., 0.0);
+{  2466} G2O500J +GNO3               =       G1O500K +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  2467} G2O500J +MEPERO             =  0.340G1O500K + 0.330GOO5009 + 0.330GKO500C                 : ARR( 0.565E-13,  -845., 0.0);
+{  2468} G2O500J +PERO1              =  0.460G1O500K + 0.270GOO5009 + 0.270GKO500C                 : ARR( 0.434E-13,  -900., 0.0);
+{  2469} G2O500J +PERO2              =  0.400G1O500K + 0.300GOO5009 + 0.300GKO500C                 : ARR( 0.162E-13, -1400., 0.0);
+{  2470} G2O500J +PERO3              =  0.460G1O500K + 0.270GOO5009 + 0.270GKO500C                 : ARR( 0.488E-13, -1250., 0.0);
+{  2471} G2O500J +PERO5              =  0.460G1O500K + 0.270GOO5009 + 0.270GKO500C                 : ARR( 0.183E-11,   450., 0.0);
+{  2472} G2O500J +PERO6              =  0.300G1O500K + 0.350GOO5009 + 0.350GKO500C                 : ARR( 0.168E-13, -1300., 0.0);
+{  2473} G2O500J +PERO9              =  0.650G1O500K + 0.350GKO500C                                : ARR( 0.100E-10,     0., 0.0);
+{  2474} G1O500K                     =       GD03000 +      GDO2000 +      GHO2                    : ARR( 0.200E+15,  3991., 0.0);
+{  2475} GKO5001 +GHO                =       G2K500A                                               : ARR( 0.949E-12,     0., 0.0);
+{  2476} GKO5001 +GHO                =       GDK5000 +      GHO2                                   : ARR( 0.140E-10,     0., 0.0);
+{  2477} GKO5001+HV               =       G3K3000 +      G2O2000                                :  0.100E+01*SUN;
+{  2478} G2K500A +GNO                =       G1K500B +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  2479} G2K500A +GNO                =       GNK500W                                               : ARR( 0.182E-12,  -360., 0.0);
+{  2480} G2K500A +GHO2               =       GHK500F                                               : ARR( 0.242E-12, -1250., 0.0);
+{  2481} G2K500A +GNO3               =       G1K500B +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  2482} G2K500A +MEPERO             =  0.340G1K500B + 0.330GKO500D + 0.330GKK5004                 : ARR( 0.565E-13,  -845., 0.0);
+{  2483} G2K500A +PERO1              =  0.460G1K500B + 0.270GKO500D + 0.270GKK5004                 : ARR( 0.434E-13,  -900., 0.0);
+{  2484} G2K500A +PERO2              =  0.400G1K500B + 0.300GKO500D + 0.300GKK5004                 : ARR( 0.162E-13, -1400., 0.0);
+{  2485} G2K500A +PERO3              =  0.460G1K500B + 0.270GKO500D + 0.270GKK5004                 : ARR( 0.488E-13, -1250., 0.0);
+{  2486} G2K500A +PERO5              =  0.460G1K500B + 0.270GKO500D + 0.270GKK5004                 : ARR( 0.183E-11,   450., 0.0);
+{  2487} G2K500A +PERO6              =  0.300G1K500B + 0.350GKO500D + 0.350GKK5004                 : ARR( 0.168E-13, -1300., 0.0);
+{  2488} G2K500A +PERO9              =  0.650G1K500B + 0.350GKK5004                                : ARR( 0.100E-10,     0., 0.0);
+{  2489} G1K500B                     =       G3K3000 +      GDO2000                                : ARR( 0.200E+15,  3005., 0.0);
+{  2490} GNO5007 +GHO                =       G2N500y                                               : ARR( 0.175E-12,     0., 0.0);
+{  2491} GNO5007 +GHO                =       G2N500f                                               : ARR( 0.120E-11,     0., 0.0);
+{  2492} GNO5007 +GHO                =       G2N500z                                               : ARR( 0.296E-12,     0., 0.0);
+{  2493} GNO5007 +GHO                =       GND500G +      GHO2                                   : ARR( 0.841E-12,     0., 0.0);
+{  2494} GNO5007 +GHO                =       G1N500c                                               : ARR( 0.220E-17,    85., 2.0);
+{  2495} GNO5007+HV               =       G1O5003 +      GNO2                                   :  0.100E+01*SUN;
+{  2496} G2N500y +GNO                =       G1N500z +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  2497} G2N500y +GNO                =       GNN500H                                               : ARR( 0.182E-12,  -360., 0.0);
+{  2498} G2N500y +GHO2               =       GHN501K                                               : ARR( 0.242E-12, -1250., 0.0);
+{  2499} G2N500y +GNO3               =       G1N500z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  2500} G2N500y +MEPERO             =  0.480G1N500z + 0.260GNO500J + 0.260GND500J                 : ARR( 0.146E-12,  -445., 0.0);
+{  2501} G2N500y +PERO1              =  0.600G1N500z + 0.200GNO500J + 0.200GND500J                 : ARR( 0.112E-12,  -500., 0.0);
+{  2502} G2N500y +PERO2              =  0.560G1N500z + 0.220GNO500J + 0.220GND500J                 : ARR( 0.418E-13, -1000., 0.0);
+{  2503} G2N500y +PERO3              =  0.600G1N500z + 0.200GNO500J + 0.200GND500J                 : ARR( 0.126E-12,  -850., 0.0);
+{  2504} G2N500y +PERO5              =  0.600G1N500z + 0.200GNO500J + 0.200GND500J                 : ARR( 0.473E-11,   850., 0.0);
+{  2505} G2N500y +PERO6              =  0.460G1N500z + 0.270GNO500J + 0.270GND500J                 : ARR( 0.434E-13,  -900., 0.0);
+{  2506} G2N500y +PERO9              =  0.800G1N500z + 0.200GND500J                                : ARR( 0.100E-10,     0., 0.0);
+{  2507} G2N500z +GNO                =       G1N5011 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  2508} G2N500z +GNO                =       GNN500q                                               : ARR( 0.182E-12,  -360., 0.0);
+{  2509} G2N500z +GHO2               =       GHN501L                                               : ARR( 0.242E-12, -1250., 0.0);
+{  2510} G2N500z +GNO3               =       G1N5011 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  2511} G2N500z +MEPERO             =  0.340G1N5011 + 0.330GNO500Q + 0.330GNK500W                 : ARR( 0.565E-13,  -845., 0.0);
+{  2512} G2N500z +PERO1              =  0.460G1N5011 + 0.270GNO500Q + 0.270GNK500W                 : ARR( 0.434E-13,  -900., 0.0);
+{  2513} G2N500z +PERO2              =  0.400G1N5011 + 0.300GNO500Q + 0.300GNK500W                 : ARR( 0.162E-13, -1400., 0.0);
+{  2514} G2N500z +PERO3              =  0.460G1N5011 + 0.270GNO500Q + 0.270GNK500W                 : ARR( 0.488E-13, -1250., 0.0);
+{  2515} G2N500z +PERO5              =  0.460G1N5011 + 0.270GNO500Q + 0.270GNK500W                 : ARR( 0.183E-11,   450., 0.0);
+{  2516} G2N500z +PERO6              =  0.300G1N5011 + 0.350GNO500Q + 0.350GNK500W                 : ARR( 0.168E-13, -1300., 0.0);
+{  2517} G2N500z +PERO9              =  0.650G1N5011 + 0.350GNK500W                                : ARR( 0.100E-10,     0., 0.0);
+{  2518} G1N500z +OXYGEN             =       GND500J +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{  2519} G1N500z                     =       GKO5003 +      GNO2                                   : ARR( 0.800E+11,  4024., 0.0);
+{  2520} G1N5011                     =       GD03000 +      GDO2000 +      GNO2                    : ARR( 0.200E+15,  6068., 0.0);
+{  2521} GHO5006 +GHO                =       GKO5002 +      GHO                                    : ARR( 0.436E-10,     0., 0.0);
+{  2522} GHO5006 +GHO                =       GHD5008 +      GHO2                                   : ARR( 0.426E-11,     0., 0.0);
+{  2523} GHO5006 +GHO                =       G2O5003                                               : ARR( 0.201E-11,  -190., 0.0);
+{  2524} GHO5006+HV               =       G1O5003 +      GHO                                    :  0.100E+01*SUN;
+{  2525} GOO5002 +GHO                =       G2O500E                                               : ARR( 0.118E-11,     0., 0.0);
+{  2526} GOO5002 +GHO                =       G2O500K                                               : ARR( 0.145E-11,     0., 0.0);
+{  2527} GOO5002 +GHO                =       GKO5002 +      GHO2                                   : ARR( 0.106E-10,     0., 0.0);
+{  2528} GOO5002 +GHO                =       GDO5007 +      GHO2                                   : ARR( 0.413E-11,     0., 0.0);
+{  2529} G2O500K +GNO                =       G1O500L +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  2530} G2O500K +GNO                =       GNO500O                                               : ARR( 0.182E-12,  -360., 0.0);
+{  2531} G2O500K +GHO2               =       GHO500K                                               : ARR( 0.242E-12, -1250., 0.0);
+{  2532} G2O500K +GNO3               =       G1O500L +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  2533} G2O500K +MEPERO             =  0.340G1O500L + 0.330GOO5009 + 0.330GKO500D                 : ARR( 0.565E-13,  -845., 0.0);
+{  2534} G2O500K +PERO1              =  0.460G1O500L + 0.270GOO5009 + 0.270GKO500D                 : ARR( 0.434E-13,  -900., 0.0);
+{  2535} G2O500K +PERO2              =  0.400G1O500L + 0.300GOO5009 + 0.300GKO500D                 : ARR( 0.162E-13, -1400., 0.0);
+{  2536} G2O500K +PERO3              =  0.460G1O500L + 0.270GOO5009 + 0.270GKO500D                 : ARR( 0.488E-13, -1250., 0.0);
+{  2537} G2O500K +PERO5              =  0.460G1O500L + 0.270GOO5009 + 0.270GKO500D                 : ARR( 0.183E-11,   450., 0.0);
+{  2538} G2O500K +PERO6              =  0.300G1O500L + 0.350GOO5009 + 0.350GKO500D                 : ARR( 0.168E-13, -1300., 0.0);
+{  2539} G2O500K +PERO9              =  0.650G1O500L + 0.350GKO500D                                : ARR( 0.100E-10,     0., 0.0);
+{  2540} G1O500L                     =       GD03000 +      GDO2000 +      GHO2                    : ARR( 0.200E+15,  3320., 0.0);
+{  2541} GKO5002 +GHO                =       G2K500B                                               : ARR( 0.380E-11,     0., 0.0);
+{  2542} GKO5002 +GHO                =       G2K500C                                               : ARR( 0.900E-12,     0., 0.0);
+{  2543} GKO5002 +GHO                =       GDK5006 +      GHO2                                   : ARR( 0.256E-11,     0., 0.0);
+{  2544} GKO5002+HV               =       G3K4001 +      GCH2O   +      GHO2                    :  0.100E+01*SUN;
+{  2545} GKO5002+HV               =       GU02000 +      GKO3000                                :  0.100E+01*SUN;
+{  2546} G2K500B +GNO                =       G1K500C +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  2547} G2K500B +GNO                =       GNK500B                                               : ARR( 0.182E-12,  -360., 0.0);
+{  2548} G2K500B +GHO2               =       GHK500G                                               : ARR( 0.242E-12, -1250., 0.0);
+{  2549} G2K500B +GNO3               =       G1K500C +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  2550} G2K500B +MEPERO             =  0.480G1K500C + 0.260GKO5008 + 0.260GKK5003                 : ARR( 0.616E-11,   905., 0.0);
+{  2551} G2K500B +PERO1              =  0.600G1K500C + 0.200GKO5008 + 0.200GKK5003                 : ARR( 0.473E-11,   850., 0.0);
+{  2552} G2K500B +PERO2              =  0.560G1K500C + 0.220GKO5008 + 0.220GKK5003                 : ARR( 0.177E-11,   350., 0.0);
+{  2553} G2K500B +PERO3              =  0.600G1K500C + 0.200GKO5008 + 0.200GKK5003                 : ARR( 0.533E-11,   500., 0.0);
+{  2554} G2K500B +PERO5              =  0.600G1K500C + 0.200GKO5008 + 0.200GKK5003                 : ARR( 0.200E-09,  2200., 0.0);
+{  2555} G2K500B +PERO6              =  0.460G1K500C + 0.270GKO5008 + 0.270GKK5003                 : ARR( 0.183E-11,   450., 0.0);
+{  2556} G2K500B +PERO9              =  0.800G1K500C + 0.200GKK5003                                : ARR( 0.100E-10,     0., 0.0);
+{  2557} G2K500C +GNO                =       G1K500D +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  2558} G2K500C +GNO                =       GNK500T                                               : ARR( 0.182E-12,  -360., 0.0);
+{  2559} G2K500C +GHO2               =       GHK500H                                               : ARR( 0.242E-12, -1250., 0.0);
+{  2560} G2K500C +GNO3               =       G1K500D +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  2561} G2K500C +MEPERO             =  0.340G1K500D + 0.330GKO500C + 0.330GKK5004                 : ARR( 0.565E-13,  -845., 0.0);
+{  2562} G2K500C +PERO1              =  0.460G1K500D + 0.270GKO500C + 0.270GKK5004                 : ARR( 0.434E-13,  -900., 0.0);
+{  2563} G2K500C +PERO2              =  0.400G1K500D + 0.300GKO500C + 0.300GKK5004                 : ARR( 0.162E-13, -1400., 0.0);
+{  2564} G2K500C +PERO3              =  0.460G1K500D + 0.270GKO500C + 0.270GKK5004                 : ARR( 0.488E-13, -1250., 0.0);
+{  2565} G2K500C +PERO5              =  0.460G1K500D + 0.270GKO500C + 0.270GKK5004                 : ARR( 0.183E-11,   450., 0.0);
+{  2566} G2K500C +PERO6              =  0.300G1K500D + 0.350GKO500C + 0.350GKK5004                 : ARR( 0.168E-13, -1300., 0.0);
+{  2567} G2K500C +PERO9              =  0.650G1K500D + 0.350GKK5004                                : ARR( 0.100E-10,     0., 0.0);
+{  2568} G1K500C                     =       GDK5001 +      GHO2                                   : ARR( 0.160E+12,  4515., 0.0);
+{  2569} G1K500C                     =       GD02000 +      G2K3001                                : ARR( 0.200E+15,  7034., 0.0);
+{  2570} G1K500D                     =       GD03000 +      G3K2001                                : ARR( 0.200E+15,  2755., 0.0);
+{  2571} G2K3001 +GNO                =       G1K3001 +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{  2572} G2K3001 +GNO                =       GNK3001                                               : ARR( 0.622E-13,  -360., 0.0);
+{  2573} G2K3001 +GHO2               =       GHK3001                                               : ARR( 0.179E-12, -1250., 0.0);
+{  2574} G2K3001 +GNO3               =       G1K3001 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  2575} G2K3001 +MEPERO             =  0.480G1K3001 + 0.260GKO3001 + 0.260GDK3001                 : ARR( 0.164E-12,  -795., 0.0);
+{  2576} G2K3001 +PERO1              =  0.600G1K3001 + 0.200GKO3001 + 0.200GDK3001                 : ARR( 0.126E-12,  -850., 0.0);
+{  2577} G2K3001 +PERO2              =  0.560G1K3001 + 0.220GKO3001 + 0.220GDK3001                 : ARR( 0.471E-13, -1350., 0.0);
+{  2578} G2K3001 +PERO3              =  0.600G1K3001 + 0.200GKO3001 + 0.200GDK3001                 : ARR( 0.142E-12, -1200., 0.0);
+{  2579} G2K3001 +PERO5              =  0.600G1K3001 + 0.200GKO3001 + 0.200GDK3001                 : ARR( 0.533E-11,   500., 0.0);
+{  2580} G2K3001 +PERO6              =  0.460G1K3001 + 0.270GKO3001 + 0.270GDK3001                 : ARR( 0.488E-13, -1250., 0.0);
+{  2581} G2K3001 +PERO9              =  0.800G1K3001 + 0.200GDK3001                                : ARR( 0.100E-10,     0., 0.0);
+{  2582} G3K2001 +GHO2               =  0.800GGO2000 + 0.200GAO2000 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  2583} G3K2001 +GNO                =       GCH2O   +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{  2584}  G3K2001 + GNO2       +M       =       GPO2000         +M                                    : FALL( 0.110E-10,     0.,-1.0, 0.850E-28,     0.,-6.5,0.60);
+{  2585} G3K2001 +GNO3               =       GCH2O   +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{  2586} G3K2001 +MEPERO             =  0.685GCH2O   + 0.315GAO2000 + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  2587} G3K2001 +PERO1              =  0.800GCH2O   + 0.200GAO2000 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  2588} G3K2001 +PERO2              =  0.750GCH2O   + 0.250GAO2000 + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  2589} G3K2001 +PERO3              =  0.800GCH2O   + 0.200GAO2000 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  2590} G3K2001 +PERO5              =  0.650GCH2O   + 0.350GAO2000 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  2591} G3K2001 +PERO6              =  0.650GCH2O   + 0.350GAO2000 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  2592} G3K2001 +PERO9              =       GCH2O   +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{  2593} G1K3001                     =       G3K2001 +      GCH2O                                  : ARR( 0.200E+15,  3640., 0.0);
+{  2594} GDO3000 +GHO                =       GDD3000 +      GHO2                                   : ARR( 0.131E-10,     0., 0.0);
+{  2595} GDO3000 +GHO                =       G3K3001                                               : ARR( 0.214E-10,     0., 0.0);
+{  2596} GDO3000 +GNO3               =       G3K3001 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{  2597} GDO3000+HV               =       G2O2000 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{  2598} GOO2000 +GHO                =       GDO2000 +      GHO2                                   : ARR( 0.770E-11,     0., 0.0);
+{  2599} GDO2000 +GHO                =       GDD2000 +      GHO2                                   : ARR( 0.106E-11,     0., 0.0);
+{  2600} GDO2000 +GHO                =       G3K2001                                               : ARR( 0.894E-11,     0., 0.0);
+{  2601} GDO2000 +GNO3               =       G3K2001 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{  2602} GDO2000+HV               =       GCH2O   +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{  2603} GNO5008 +GHO                =       GND500H +      GHO2                                   : ARR( 0.418E-11,     0., 0.0);
+{  2604} GNO5008 +GHO                =       GNK500D +      GHO2                                   : ARR( 0.107E-10,     0., 0.0);
+{  2605} GNO5008 +GHO                =       G2N5011                                               : ARR( 0.147E-11,     0., 0.0);
+{  2606} GNO5008+HV               =       G1O5004 +      GNO2                                   :  0.100E+01*SUN;
+{  2607} G2N5011 +GNO                =       G1N5012 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  2608} G2N5011 +GNO                =       GNN500r                                               : ARR( 0.182E-12,  -360., 0.0);
+{  2609} G2N5011 +GHO2               =       GHN501M                                               : ARR( 0.242E-12, -1250., 0.0);
+{  2610} G2N5011 +GNO3               =       G1N5012 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  2611} G2N5011 +MEPERO             =  0.340G1N5012 + 0.330GNO500R + 0.330GNK500X                 : ARR( 0.565E-13,  -845., 0.0);
+{  2612} G2N5011 +PERO1              =  0.460G1N5012 + 0.270GNO500R + 0.270GNK500X                 : ARR( 0.434E-13,  -900., 0.0);
+{  2613} G2N5011 +PERO2              =  0.400G1N5012 + 0.300GNO500R + 0.300GNK500X                 : ARR( 0.162E-13, -1400., 0.0);
+{  2614} G2N5011 +PERO3              =  0.460G1N5012 + 0.270GNO500R + 0.270GNK500X                 : ARR( 0.488E-13, -1250., 0.0);
+{  2615} G2N5011 +PERO5              =  0.460G1N5012 + 0.270GNO500R + 0.270GNK500X                 : ARR( 0.183E-11,   450., 0.0);
+{  2616} G2N5011 +PERO6              =  0.300G1N5012 + 0.350GNO500R + 0.350GNK500X                 : ARR( 0.168E-13, -1300., 0.0);
+{  2617} G2N5011 +PERO9              =  0.650G1N5012 + 0.350GNK500X                                : ARR( 0.100E-10,     0., 0.0);
+{  2618} G1N5012                     =       GDO2000 +      GND3000 +      GHO2                    : ARR( 0.200E+15,  3320., 0.0);
+{  2619} GHO5007 +GHO                =       GHD5009 +      GHO2                                   : ARR( 0.439E-11,     0., 0.0);
+{  2620} GHO5007 +GHO                =       GHK500I +      GHO2                                   : ARR( 0.112E-10,     0., 0.0);
+{  2621} GHO5007 +GHO                =       GDO5001 +      GHO                                    : ARR( 0.176E-10,     0., 0.0);
+{  2622} GHO5007 +GHO                =       G2O5004                                               : ARR( 0.207E-11,  -190., 0.0);
+{  2623} GHO5007+HV               =       G1O5004 +      GHO                                    :  0.100E+01*SUN;
+{  2624} GOO5003 +GHO                =       GDO5001 +      GHO2                                   : ARR( 0.410E-11,     0., 0.0);
+{  2625} GOO5003 +GHO                =       G2O500F                                               : ARR( 0.144E-11,     0., 0.0);
+{  2626} GOO5003 +GHO                =       G2O500L                                               : ARR( 0.144E-11,     0., 0.0);
+{  2627} GOO5003 +GHO                =       GKO5003 +      GHO2                                   : ARR( 0.105E-10,     0., 0.0);
+{  2628} GOO5003 +GHO                =       GDO5006 +      GHO2                                   : ARR( 0.410E-11,     0., 0.0);
+{  2629} G2O500L +GNO                =       G1O500M +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  2630} G2O500L +GNO                =       GNO500P                                               : ARR( 0.182E-12,  -360., 0.0);
+{  2631} G2O500L +GHO2               =       GHO500L                                               : ARR( 0.242E-12, -1250., 0.0);
+{  2632} G2O500L +GNO3               =       G1O500M +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  2633} G2O500L +MEPERO             =  0.340G1O500M + 0.330GOO500A + 0.330GKO500E                 : ARR( 0.565E-13,  -845., 0.0);
+{  2634} G2O500L +PERO1              =  0.460G1O500M + 0.270GOO500A + 0.270GKO500E                 : ARR( 0.434E-13,  -900., 0.0);
+{  2635} G2O500L +PERO2              =  0.400G1O500M + 0.300GOO500A + 0.300GKO500E                 : ARR( 0.162E-13, -1400., 0.0);
+{  2636} G2O500L +PERO3              =  0.460G1O500M + 0.270GOO500A + 0.270GKO500E                 : ARR( 0.488E-13, -1250., 0.0);
+{  2637} G2O500L +PERO5              =  0.460G1O500M + 0.270GOO500A + 0.270GKO500E                 : ARR( 0.183E-11,   450., 0.0);
+{  2638} G2O500L +PERO6              =  0.300G1O500M + 0.350GOO500A + 0.350GKO500E                 : ARR( 0.168E-13, -1300., 0.0);
+{  2639} G2O500L +PERO9              =  0.650G1O500M + 0.350GKO500E                                : ARR( 0.100E-10,     0., 0.0);
+{  2640} G1O500M                     =       GDO2000 +      GDO3000 +      GHO2                    : ARR( 0.200E+15,  3320., 0.0);
+{  2641} GDO5001 +GHO                =       GDD5000 +      GHO2                                   : ARR( 0.414E-11,     0., 0.0);
+{  2642} GDO5001 +GHO                =       GDK5007 +      GHO2                                   : ARR( 0.106E-10,     0., 0.0);
+{  2643} GDO5001 +GHO                =       G2D5005                                               : ARR( 0.461E-11,     0., 0.0);
+{  2644} GDO5001 +GHO                =       G3K5002                                               : ARR( 0.214E-10,     0., 0.0);
+{  2645} GDO5001 +GNO3               =       G3K5002 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{  2646} GDO5001+HV               =       G2O4003 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{  2647} GDO5001+HV               =       GKO3000 +      GD02000                                :  0.100E+01*SUN;
+{  2648} G2D5005 +GNO                =       G1D5006 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  2649} G2D5005 +GNO                =       GND500I                                               : ARR( 0.182E-12,  -360., 0.0);
+{  2650} G2D5005 +GHO2               =       GHD500D                                               : ARR( 0.242E-12, -1250., 0.0);
+{  2651} G2D5005 +GNO3               =       G1D5006 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  2652} G2D5005 +MEPERO             =  0.340G1D5006 + 0.330GDO5008 + 0.330GDK5008                 : ARR( 0.565E-13,  -845., 0.0);
+{  2653} G2D5005 +PERO1              =  0.460G1D5006 + 0.270GDO5008 + 0.270GDK5008                 : ARR( 0.434E-13,  -900., 0.0);
+{  2654} G2D5005 +PERO2              =  0.400G1D5006 + 0.300GDO5008 + 0.300GDK5008                 : ARR( 0.162E-13, -1400., 0.0);
+{  2655} G2D5005 +PERO3              =  0.460G1D5006 + 0.270GDO5008 + 0.270GDK5008                 : ARR( 0.488E-13, -1250., 0.0);
+{  2656} G2D5005 +PERO5              =  0.460G1D5006 + 0.270GDO5008 + 0.270GDK5008                 : ARR( 0.183E-11,   450., 0.0);
+{  2657} G2D5005 +PERO6              =  0.300G1D5006 + 0.350GDO5008 + 0.350GDK5008                 : ARR( 0.168E-13, -1300., 0.0);
+{  2658} G2D5005 +PERO9              =  0.650G1D5006 + 0.350GDK5008                                : ARR( 0.100E-10,     0., 0.0);
+{  2659} G3K5002 +GHO2               =  0.800GGO5001 + 0.200GAO5001 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  2660} G3K5002 +GNO                =       G2O4003 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{  2661} G3K5002 +GNO2               =       GPO5001                                               : ARR( 0.330E-08,     0.,-1.0);
+{  2662} G3K5002 +GNO3               =       G2O4003 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{  2663} G3K5002 +MEPERO             =  0.685G2O4003 + 0.315GAO5001 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  2664} G3K5002 +PERO1              =  0.800G2O4003 + 0.200GAO5001 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  2665} G3K5002 +PERO2              =  0.750G2O4003 + 0.250GAO5001 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  2666} G3K5002 +PERO3              =  0.800G2O4003 + 0.200GAO5001 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  2667} G3K5002 +PERO5              =  0.650G2O4003 + 0.350GAO5001 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  2668} G3K5002 +PERO6              =  0.650G2O4003 + 0.350GAO5001 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  2669} G3K5002 +PERO9              =       G2O4003 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{  2670} G2O4003 +GNO                =       G1O4003 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  2671} G2O4003 +GNO                =       GNO4003                                               : ARR( 0.111E-12,  -360., 0.0);
+{  2672} G2O4003 +GHO2               =       GHO4003                                               : ARR( 0.214E-12, -1250., 0.0);
+{  2673} G2O4003 +GNO3               =       G1O4003 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  2674} G2O4003 +MEPERO             =  0.480G1O4003 + 0.260GOO4002 + 0.260GDO4002                 : ARR( 0.146E-12,  -445., 0.0);
+{  2675} G2O4003 +PERO1              =  0.600G1O4003 + 0.200GOO4002 + 0.200GDO4002                 : ARR( 0.112E-12,  -500., 0.0);
+{  2676} G2O4003 +PERO2              =  0.560G1O4003 + 0.220GOO4002 + 0.220GDO4002                 : ARR( 0.418E-13, -1000., 0.0);
+{  2677} G2O4003 +PERO3              =  0.600G1O4003 + 0.200GOO4002 + 0.200GDO4002                 : ARR( 0.126E-12,  -850., 0.0);
+{  2678} G2O4003 +PERO5              =  0.600G1O4003 + 0.200GOO4002 + 0.200GDO4002                 : ARR( 0.473E-11,   850., 0.0);
+{  2679} G2O4003 +PERO6              =  0.460G1O4003 + 0.270GOO4002 + 0.270GDO4002                 : ARR( 0.434E-13,  -900., 0.0);
+{  2680} G2O4003 +PERO9              =  0.800G1O4003 + 0.200GDO4002                                : ARR( 0.100E-10,     0., 0.0);
+{  2681} G1D5006                     =       GDO2000 +      GDD3000 +      GHO2                    : ARR( 0.200E+15,  2937., 0.0);
+{  2682} G1O4003                     =       GDO4003 +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{  2683} GKO5003 +GHO                =       GDK5007 +      GHO2                                   : ARR( 0.412E-11,     0., 0.0);
+{  2684} GKO5003 +GHO                =       G2K500D                                               : ARR( 0.459E-11,     0., 0.0);
+{  2685} GKO5003 +GHO                =       G2K500E                                               : ARR( 0.882E-12,     0., 0.0);
+{  2686} GKO5003 +GHO                =       GDK5004 +      GHO2                                   : ARR( 0.251E-11,     0., 0.0);
+{  2687} GKO5003+HV               =       G3K4002 +      GCH2O   +      GHO2                    :  0.100E+01*SUN;
+{  2688} GKO5003+HV               =       GD02000 +      GKO3000                                :  0.100E+01*SUN;
+{  2689} G2K500D +GNO                =       G1K500E +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  2690} G2K500D +GNO                =       GNK500N                                               : ARR( 0.182E-12,  -360., 0.0);
+{  2691} G2K500D +GHO2               =       GHK500B                                               : ARR( 0.242E-12, -1250., 0.0);
+{  2692} G2K500D +GNO3               =       G1K500E +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  2693} G2K500D +MEPERO             =  0.340G1K500E + 0.330GKO500A + 0.330GKK5005                 : ARR( 0.565E-13,  -845., 0.0);
+{  2694} G2K500D +PERO1              =  0.460G1K500E + 0.270GKO500A + 0.270GKK5005                 : ARR( 0.434E-13,  -900., 0.0);
+{  2695} G2K500D +PERO2              =  0.400G1K500E + 0.300GKO500A + 0.300GKK5005                 : ARR( 0.162E-13, -1400., 0.0);
+{  2696} G2K500D +PERO3              =  0.460G1K500E + 0.270GKO500A + 0.270GKK5005                 : ARR( 0.488E-13, -1250., 0.0);
+{  2697} G2K500D +PERO5              =  0.460G1K500E + 0.270GKO500A + 0.270GKK5005                 : ARR( 0.183E-11,   450., 0.0);
+{  2698} G2K500D +PERO6              =  0.300G1K500E + 0.350GKO500A + 0.350GKK5005                 : ARR( 0.168E-13, -1300., 0.0);
+{  2699} G2K500D +PERO9              =  0.650G1K500E + 0.350GKK5005                                : ARR( 0.100E-10,     0., 0.0);
+{  2700} G2K500E +GNO                =       G1K500F +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  2701} G2K500E +GNO                =       GNK500U                                               : ARR( 0.182E-12,  -360., 0.0);
+{  2702} G2K500E +GHO2               =       GHK500J                                               : ARR( 0.242E-12, -1250., 0.0);
+{  2703} G2K500E +GNO3               =       G1K500F +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  2704} G2K500E +MEPERO             =  0.340G1K500F + 0.330GKO500F + 0.330GKK5006                 : ARR( 0.565E-13,  -845., 0.0);
+{  2705} G2K500E +PERO1              =  0.460G1K500F + 0.270GKO500F + 0.270GKK5006                 : ARR( 0.434E-13,  -900., 0.0);
+{  2706} G2K500E +PERO2              =  0.400G1K500F + 0.300GKO500F + 0.300GKK5006                 : ARR( 0.162E-13, -1400., 0.0);
+{  2707} G2K500E +PERO3              =  0.460G1K500F + 0.270GKO500F + 0.270GKK5006                 : ARR( 0.488E-13, -1250., 0.0);
+{  2708} G2K500E +PERO5              =  0.460G1K500F + 0.270GKO500F + 0.270GKK5006                 : ARR( 0.183E-11,   450., 0.0);
+{  2709} G2K500E +PERO6              =  0.300G1K500F + 0.350GKO500F + 0.350GKK5006                 : ARR( 0.168E-13, -1300., 0.0);
+{  2710} G2K500E +PERO9              =  0.650G1K500F + 0.350GKK5006                                : ARR( 0.100E-10,     0., 0.0);
+{  2711} G1K500E                     =       GDK4001 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4658., 0.0);
+{  2712} G1K500F                     =       GDO3000 +      G3K2001                                : ARR( 0.200E+15,  2755., 0.0);
+{  2713} GU03000 +GHO                =       G2O3000                                               : ARR( 0.633E-12,  -504., 0.0);
+{  2714} GU03000 +GHO                =       G2O3002                                               : ARR( 0.422E-11,  -504., 0.0);
+{  2715} GU03000 +GO3                =  2.000GD02000 + 0.740GHCOOH  + 0.260GCO2    + 0.260GH2      : ARR( 0.138E-14,  1878., 0.0);
+{  2716} GU03000 +GO3                =       GCO     + 0.760GH2O    + 0.240GHO2    + 0.240GHO      : ARR( 0.138E-14,  1878., 0.0);
+{  2717} GU03000 +GO3                =  2.000GCH2O   + 0.680GA02000 + 0.280GCO2    + 0.280GCH4     : ARR( 0.138E-14,  1878., 0.0);
+{  2718} GU03000 +GO3                =  1.040GCO     + 1.040GHO     + 1.040GCH3O2                  : ARR( 0.138E-14,  1878., 0.0);
+{  2719} GU03000 +GNO3               =       G2N3002                                               : ARR( 0.459E-12,  1156., 0.0);
+{  2720} GND5002 +GHO                =       G3N5002                                               : ARR( 0.217E-10,     0., 0.0);
+{  2721} GND5002 +GNO3               =       G3N5002 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{  2722} GND5002+HV               =       G1D5000 +      GNO2                                   :  0.100E+01*SUN;
+{  2723} GND5002+HV               =       G2N4002 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{  2724} GND5002+HV               =       G2D3000 +      GD02000 +      GNO2                    :  0.100E+01*SUN;
+{  2725} G3N5002 +GHO2               =  0.800GGN5002 + 0.200GAN5002 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  2726} G3N5002 +GNO                =       G2N4002 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{  2727} G3N5002 +GNO2               =       GPN5002                                               : ARR( 0.330E-08,     0.,-1.0);
+{  2728} G3N5002 +GNO3               =       G2N4002 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{  2729} G3N5002 +MEPERO             =  0.685G2N4002 + 0.315GAN5002 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  2730} G3N5002 +PERO1              =  0.800G2N4002 + 0.200GAN5002 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  2731} G3N5002 +PERO2              =  0.750G2N4002 + 0.250GAN5002 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  2732} G3N5002 +PERO3              =  0.800G2N4002 + 0.200GAN5002 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  2733} G3N5002 +PERO5              =  0.650G2N4002 + 0.350GAN5002 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  2734} G3N5002 +PERO6              =  0.650G2N4002 + 0.350GAN5002 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  2735} G3N5002 +PERO9              =       G2N4002 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{  2736} G2N4002 +GNO                =       G1N4002 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  2737} G2N4002 +GNO                =       GNN4003                                               : ARR( 0.111E-12,  -360., 0.0);
+{  2738} G2N4002 +GHO2               =       GHN4004                                               : ARR( 0.214E-12, -1250., 0.0);
+{  2739} G2N4002 +GNO3               =       G1N4002 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  2740} G2N4002 +MEPERO             =  0.480G1N4002 + 0.260GNO4004 + 0.260GND4005                 : ARR( 0.164E-12,  -795., 0.0);
+{  2741} G2N4002 +PERO1              =  0.600G1N4002 + 0.200GNO4004 + 0.200GND4005                 : ARR( 0.126E-12,  -850., 0.0);
+{  2742} G2N4002 +PERO2              =  0.560G1N4002 + 0.220GNO4004 + 0.220GND4005                 : ARR( 0.471E-13, -1350., 0.0);
+{  2743} G2N4002 +PERO3              =  0.600G1N4002 + 0.200GNO4004 + 0.200GND4005                 : ARR( 0.142E-12, -1200., 0.0);
+{  2744} G2N4002 +PERO5              =  0.600G1N4002 + 0.200GNO4004 + 0.200GND4005                 : ARR( 0.533E-11,   500., 0.0);
+{  2745} G2N4002 +PERO6              =  0.460G1N4002 + 0.270GNO4004 + 0.270GND4005                 : ARR( 0.488E-13, -1250., 0.0);
+{  2746} G2N4002 +PERO9              =  0.800G1N4002 + 0.200GND4005                                : ARR( 0.100E-10,     0., 0.0);
+{  2747} G2D3000 +GNO                =       G1D3001 +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{  2748} G2D3000 +GNO                =       GND3001                                               : ARR( 0.622E-13,  -360., 0.0);
+{  2749} G2D3000 +GHO2               =       GHD3002                                               : ARR( 0.179E-12, -1250., 0.0);
+{  2750} G2D3000 +GNO3               =       G1D3001 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  2751} G2D3000 +MEPERO             =  0.340G1D3001 + 0.330GDO3001 + 0.330GDK3000                 : ARR( 0.565E-13,  -845., 0.0);
+{  2752} G2D3000 +PERO1              =  0.460G1D3001 + 0.270GDO3001 + 0.270GDK3000                 : ARR( 0.434E-13,  -900., 0.0);
+{  2753} G2D3000 +PERO2              =  0.400G1D3001 + 0.300GDO3001 + 0.300GDK3000                 : ARR( 0.162E-13, -1400., 0.0);
+{  2754} G2D3000 +PERO3              =  0.460G1D3001 + 0.270GDO3001 + 0.270GDK3000                 : ARR( 0.488E-13, -1250., 0.0);
+{  2755} G2D3000 +PERO5              =  0.460G1D3001 + 0.270GDO3001 + 0.270GDK3000                 : ARR( 0.183E-11,   450., 0.0);
+{  2756} G2D3000 +PERO6              =  0.300G1D3001 + 0.350GDO3001 + 0.350GDK3000                 : ARR( 0.168E-13, -1300., 0.0);
+{  2757} G2D3000 +PERO9              =  0.650G1D3001 + 0.350GDK3000                                : ARR( 0.100E-10,     0., 0.0);
+{  2758} G1N4002 +OXYGEN             =       GND4005 +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{  2759} G1N4002                     =       G2N4003                                               : ARR( 0.240E+12,  4177., 0.0);
+{  2760} G1D3001                     =       GD02000 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5497., 0.0);
+{  2761} G2N4003 +GNO                =       G1N4003 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  2762} G2N4003 +GNO                =       GNN4004                                               : ARR( 0.111E-12,  -360., 0.0);
+{  2763} G2N4003 +GHO2               =       GHN4005                                               : ARR( 0.214E-12, -1250., 0.0);
+{  2764} G2N4003 +GNO3               =       G1N4003 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  2765} G2N4003 +MEPERO             =  0.480G1N4003 + 0.260GNO4005 + 0.260GND4002                 : ARR( 0.146E-12,  -445., 0.0);
+{  2766} G2N4003 +PERO1              =  0.600G1N4003 + 0.200GNO4005 + 0.200GND4002                 : ARR( 0.112E-12,  -500., 0.0);
+{  2767} G2N4003 +PERO2              =  0.560G1N4003 + 0.220GNO4005 + 0.220GND4002                 : ARR( 0.418E-13, -1000., 0.0);
+{  2768} G2N4003 +PERO3              =  0.600G1N4003 + 0.200GNO4005 + 0.200GND4002                 : ARR( 0.126E-12,  -850., 0.0);
+{  2769} G2N4003 +PERO5              =  0.600G1N4003 + 0.200GNO4005 + 0.200GND4002                 : ARR( 0.473E-11,   850., 0.0);
+{  2770} G2N4003 +PERO6              =  0.460G1N4003 + 0.270GNO4005 + 0.270GND4002                 : ARR( 0.434E-13,  -900., 0.0);
+{  2771} G2N4003 +PERO9              =  0.800G1N4003 + 0.200GND4002                                : ARR( 0.100E-10,     0., 0.0);
+{  2772} G1N4003                     =       GND4006 +      GHO2                                   : ARR( 0.160E+12,  3252., 0.0);
+{  2773} GHD5001 +GHO                =       GDK5000 +      GHO                                    : ARR( 0.136E-09,     0., 0.0);
+{  2774} GHD5001 +GHO                =       G3H5001                                               : ARR( 0.216E-10,     0., 0.0);
+{  2775} GHD5001 +GNO3               =       G3H5001 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{  2776} GHD5001+HV               =       G1D5000 +      GHO                                    :  0.100E+01*SUN;
+{  2777} GHD5001+HV               =       G2H4001 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{  2778} GHD5001+HV               =       G2D3000 +      GD02000 +      GHO                     :  0.100E+01*SUN;
+{  2779} G3H5001 +GHO2               =  0.800GGH5001 + 0.200GAH5001 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  2780} G3H5001 +GNO                =       G2H4001 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{  2781} G3H5001 +GNO2               =       GPH5001                                               : ARR( 0.330E-08,     0.,-1.0);
+{  2782} G3H5001 +GNO3               =       G2H4001 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{  2783} G3H5001 +MEPERO             =  0.685G2H4001 + 0.315GAH5001 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  2784} G3H5001 +PERO1              =  0.800G2H4001 + 0.200GAH5001 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  2785} G3H5001 +PERO2              =  0.750G2H4001 + 0.250GAH5001 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  2786} G3H5001 +PERO3              =  0.800G2H4001 + 0.200GAH5001 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  2787} G3H5001 +PERO5              =  0.650G2H4001 + 0.350GAH5001 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  2788} G3H5001 +PERO6              =  0.650G2H4001 + 0.350GAH5001 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  2789} G3H5001 +PERO9              =       G2H4001 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{  2790} G2H4001 +GNO                =       G1H4001 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  2791} G2H4001 +GNO                =       GHN4006                                               : ARR( 0.111E-12,  -360., 0.0);
+{  2792} G2H4001 +GHO2               =       GHH4001                                               : ARR( 0.214E-12, -1250., 0.0);
+{  2793} G2H4001 +GNO3               =       G1H4001 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  2794} G2H4001 +MEPERO             =  0.480G1H4001 + 0.260GHO4004 + 0.260GHD4005                 : ARR( 0.164E-12,  -795., 0.0);
+{  2795} G2H4001 +PERO1              =  0.600G1H4001 + 0.200GHO4004 + 0.200GHD4005                 : ARR( 0.126E-12,  -850., 0.0);
+{  2796} G2H4001 +PERO2              =  0.560G1H4001 + 0.220GHO4004 + 0.220GHD4005                 : ARR( 0.471E-13, -1350., 0.0);
+{  2797} G2H4001 +PERO3              =  0.600G1H4001 + 0.200GHO4004 + 0.200GHD4005                 : ARR( 0.142E-12, -1200., 0.0);
+{  2798} G2H4001 +PERO5              =  0.600G1H4001 + 0.200GHO4004 + 0.200GHD4005                 : ARR( 0.533E-11,   500., 0.0);
+{  2799} G2H4001 +PERO6              =  0.460G1H4001 + 0.270GHO4004 + 0.270GHD4005                 : ARR( 0.488E-13, -1250., 0.0);
+{  2800} G2H4001 +PERO9              =  0.800G1H4001 + 0.200GHD4005                                : ARR( 0.100E-10,     0., 0.0);
+{  2801} G1H4001 +OXYGEN             =       GHD4005 +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{  2802} G1H4001                     =       G2H4002                                               : ARR( 0.240E+12,  4177., 0.0);
+{  2803} G1H4001                     =       GD03000 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  6008., 0.0);
+{  2804} G2H4002 +GNO                =       G1H4002 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  2805} G2H4002 +GNO                =       GHN4007                                               : ARR( 0.111E-12,  -360., 0.0);
+{  2806} G2H4002 +GHO2               =       GHH4002                                               : ARR( 0.214E-12, -1250., 0.0);
+{  2807} G2H4002 +GNO3               =       G1H4002 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  2808} G2H4002 +MEPERO             =  0.480G1H4002 + 0.260GHO4005 + 0.260GHD4000                 : ARR( 0.146E-12,  -445., 0.0);
+{  2809} G2H4002 +PERO1              =  0.600G1H4002 + 0.200GHO4005 + 0.200GHD4000                 : ARR( 0.112E-12,  -500., 0.0);
+{  2810} G2H4002 +PERO2              =  0.560G1H4002 + 0.220GHO4005 + 0.220GHD4000                 : ARR( 0.418E-13, -1000., 0.0);
+{  2811} G2H4002 +PERO3              =  0.600G1H4002 + 0.200GHO4005 + 0.200GHD4000                 : ARR( 0.126E-12,  -850., 0.0);
+{  2812} G2H4002 +PERO5              =  0.600G1H4002 + 0.200GHO4005 + 0.200GHD4000                 : ARR( 0.473E-11,   850., 0.0);
+{  2813} G2H4002 +PERO6              =  0.460G1H4002 + 0.270GHO4005 + 0.270GHD4000                 : ARR( 0.434E-13,  -900., 0.0);
+{  2814} G2H4002 +PERO9              =  0.800G1H4002 + 0.200GHD4000                                : ARR( 0.100E-10,     0., 0.0);
+{  2815} G1H4002                     =       GHD4006 +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{  2816} GDO5002 +GHO                =       GDK5000 +      GHO2                                   : ARR( 0.341E-10,     0., 0.0);
+{  2817} GDO5002 +GHO                =       G3K5003                                               : ARR( 0.217E-10,     0., 0.0);
+{  2818} GDO5002 +GNO3               =       G3K5003 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{  2819} GDO5002+HV               =       G2O4004 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{  2820} GDO5002+HV               =       GD03000 +      GD02000                                :  0.100E+01*SUN;
+{  2821} G3K5003 +GHO2               =  0.800GGO5002 + 0.200GAO5002 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  2822} G3K5003 +GNO                =       G2O4004 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{  2823} G3K5003 +GNO2               =       GPO5002                                               : ARR( 0.330E-08,     0.,-1.0);
+{  2824} G3K5003 +GNO3               =       G2O4004 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{  2825} G3K5003 +MEPERO             =  0.685G2O4004 + 0.315GAO5002 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  2826} G3K5003 +PERO1              =  0.800G2O4004 + 0.200GAO5002 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  2827} G3K5003 +PERO2              =  0.750G2O4004 + 0.250GAO5002 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  2828} G3K5003 +PERO3              =  0.800G2O4004 + 0.200GAO5002 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  2829} G3K5003 +PERO5              =  0.650G2O4004 + 0.350GAO5002 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  2830} G3K5003 +PERO6              =  0.650G2O4004 + 0.350GAO5002 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  2831} G3K5003 +PERO9              =       G2O4004 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{  2832} G2O4004 +GNO                =       G1O4004 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  2833} G2O4004 +GNO                =       GNO4006                                               : ARR( 0.111E-12,  -360., 0.0);
+{  2834} G2O4004 +GHO2               =       GHO4006                                               : ARR( 0.214E-12, -1250., 0.0);
+{  2835} G2O4004 +GNO3               =       G1O4004 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  2836} G2O4004 +MEPERO             =  0.480G1O4004 + 0.260GOO4003 + 0.260GDO4004                 : ARR( 0.164E-12,  -795., 0.0);
+{  2837} G2O4004 +PERO1              =  0.600G1O4004 + 0.200GOO4003 + 0.200GDO4004                 : ARR( 0.126E-12,  -850., 0.0);
+{  2838} G2O4004 +PERO2              =  0.560G1O4004 + 0.220GOO4003 + 0.220GDO4004                 : ARR( 0.471E-13, -1350., 0.0);
+{  2839} G2O4004 +PERO3              =  0.600G1O4004 + 0.200GOO4003 + 0.200GDO4004                 : ARR( 0.142E-12, -1200., 0.0);
+{  2840} G2O4004 +PERO5              =  0.600G1O4004 + 0.200GOO4003 + 0.200GDO4004                 : ARR( 0.533E-11,   500., 0.0);
+{  2841} G2O4004 +PERO6              =  0.460G1O4004 + 0.270GOO4003 + 0.270GDO4004                 : ARR( 0.488E-13, -1250., 0.0);
+{  2842} G2O4004 +PERO9              =  0.800G1O4004 + 0.200GDO4004                                : ARR( 0.100E-10,     0., 0.0);
+{  2843} G1O4004                     =       GD03000 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4799., 0.0);
+{  2844} GDK5000 +GHO                =       G3K5004                                               : ARR( 0.676E-10,     0., 0.0);
+{  2845} GDK5000 +GNO3               =       G3K5004 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{  2846} GDK5000+HV               =       G3K3000 +      G2D2000                                :  0.100E+01*SUN;
+{  2847} GDK5000+HV               =       G2K4000 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{  2848} G3K5004 +GHO2               =  0.800GGK5000 + 0.200GAK5000 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  2849} G3K5004 +GNO                =       G2K4000 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{  2850} G3K5004 +GNO2               =       GPK5000                                               : ARR( 0.330E-08,     0.,-1.0);
+{  2851} G3K5004 +GNO3               =       G2K4000 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{  2852} G3K5004 +MEPERO             =  0.685G2K4000 + 0.315GAK5000 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  2853} G3K5004 +PERO1              =  0.800G2K4000 + 0.200GAK5000 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  2854} G3K5004 +PERO2              =  0.750G2K4000 + 0.250GAK5000 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  2855} G3K5004 +PERO3              =  0.800G2K4000 + 0.200GAK5000 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  2856} G3K5004 +PERO5              =  0.650G2K4000 + 0.350GAK5000 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  2857} G3K5004 +PERO6              =  0.650G2K4000 + 0.350GAK5000 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  2858} G3K5004 +PERO9              =       G2K4000 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{  2859} G2K4000 +GNO                =       G1K4000 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  2860} G2K4000 +GNO                =       GNK4000                                               : ARR( 0.111E-12,  -360., 0.0);
+{  2861} G2K4000 +GHO2               =       GHK4000                                               : ARR( 0.214E-12, -1250., 0.0);
+{  2862} G2K4000 +GNO3               =       G1K4000 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  2863} G2K4000 +MEPERO             =  0.480G1K4000 + 0.260GKO4000 + 0.260GDK4002                 : ARR( 0.164E-12,  -795., 0.0);
+{  2864} G2K4000 +PERO1              =  0.600G1K4000 + 0.200GKO4000 + 0.200GDK4002                 : ARR( 0.126E-12,  -850., 0.0);
+{  2865} G2K4000 +PERO2              =  0.560G1K4000 + 0.220GKO4000 + 0.220GDK4002                 : ARR( 0.471E-13, -1350., 0.0);
+{  2866} G2K4000 +PERO3              =  0.600G1K4000 + 0.200GKO4000 + 0.200GDK4002                 : ARR( 0.142E-12, -1200., 0.0);
+{  2867} G2K4000 +PERO5              =  0.600G1K4000 + 0.200GKO4000 + 0.200GDK4002                 : ARR( 0.533E-11,   500., 0.0);
+{  2868} G2K4000 +PERO6              =  0.460G1K4000 + 0.270GKO4000 + 0.270GDK4002                 : ARR( 0.488E-13, -1250., 0.0);
+{  2869} G2K4000 +PERO9              =  0.800G1K4000 + 0.200GDK4002                                : ARR( 0.100E-10,     0., 0.0);
+{  2870} G1K4000                     =       G3K3000 +      GCH2O                                  : ARR( 0.200E+15,  3576., 0.0);
+{  2871} GG05000 +GHO                =       G2G5000                                               : ARR( 0.118E-11,     0., 0.0);
+{  2872} GG05000 +GHO                =       G2G5001                                               : ARR( 0.145E-11,     0., 0.0);
+{  2873} GG05000 +GHO                =       G2G5002                                               : ARR( 0.882E-12,     0., 0.0);
+{  2874} GG05000 +GHO                =       G3K5000                                               : ARR( 0.195E-11,  -190., 0.0);
+{  2875} GG05000+HV               =       G204000 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{  2876} G2G5000 +GNO                =       G1G5000 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  2877} G2G5000 +GNO                =       GGN5003                                               : ARR( 0.182E-12,  -360., 0.0);
+{  2878} G2G5000 +GHO2               =       GGH5002                                               : ARR( 0.242E-12, -1250., 0.0);
+{  2879} G2G5000 +GNO3               =       G1G5000 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  2880} G2G5000 +MEPERO             =  0.480G1G5000 + 0.260GGO5000 + 0.260GGK5001                 : ARR( 0.616E-11,   905., 0.0);
+{  2881} G2G5000 +PERO1              =  0.600G1G5000 + 0.200GGO5000 + 0.200GGK5001                 : ARR( 0.473E-11,   850., 0.0);
+{  2882} G2G5000 +PERO2              =  0.560G1G5000 + 0.220GGO5000 + 0.220GGK5001                 : ARR( 0.177E-11,   350., 0.0);
+{  2883} G2G5000 +PERO3              =  0.600G1G5000 + 0.200GGO5000 + 0.200GGK5001                 : ARR( 0.533E-11,   500., 0.0);
+{  2884} G2G5000 +PERO5              =  0.600G1G5000 + 0.200GGO5000 + 0.200GGK5001                 : ARR( 0.200E-09,  2200., 0.0);
+{  2885} G2G5000 +PERO6              =  0.460G1G5000 + 0.270GGO5000 + 0.270GGK5001                 : ARR( 0.183E-11,   450., 0.0);
+{  2886} G2G5000 +PERO9              =  0.800G1G5000 + 0.200GGK5001                                : ARR( 0.100E-10,     0., 0.0);
+{  2887} G2G5001 +GNO                =       G1G5001 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  2888} G2G5001 +GNO                =       GGN5002                                               : ARR( 0.182E-12,  -360., 0.0);
+{  2889} G2G5001 +GHO2               =       GGH5001                                               : ARR( 0.242E-12, -1250., 0.0);
+{  2890} G2G5001 +GNO3               =       G1G5001 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  2891} G2G5001 +MEPERO             =  0.480G1G5001 + 0.260GGO5002 + 0.260GGK5000                 : ARR( 0.616E-11,   905., 0.0);
+{  2892} G2G5001 +PERO1              =  0.600G1G5001 + 0.200GGO5002 + 0.200GGK5000                 : ARR( 0.473E-11,   850., 0.0);
+{  2893} G2G5001 +PERO2              =  0.560G1G5001 + 0.220GGO5002 + 0.220GGK5000                 : ARR( 0.177E-11,   350., 0.0);
+{  2894} G2G5001 +PERO3              =  0.600G1G5001 + 0.200GGO5002 + 0.200GGK5000                 : ARR( 0.533E-11,   500., 0.0);
+{  2895} G2G5001 +PERO5              =  0.600G1G5001 + 0.200GGO5002 + 0.200GGK5000                 : ARR( 0.200E-09,  2200., 0.0);
+{  2896} G2G5001 +PERO6              =  0.460G1G5001 + 0.270GGO5002 + 0.270GGK5000                 : ARR( 0.183E-11,   450., 0.0);
+{  2897} G2G5001 +PERO9              =  0.800G1G5001 + 0.200GGK5000                                : ARR( 0.100E-10,     0., 0.0);
+{  2898} G2G5002 +GNO                =       G1G5002 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  2899} G2G5002 +GNO                =       GGN5004                                               : ARR( 0.182E-12,  -360., 0.0);
+{  2900} G2G5002 +GHO2               =       GGH5003                                               : ARR( 0.242E-12, -1250., 0.0);
+{  2901} G2G5002 +GNO3               =       G1G5002 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  2902} G2G5002 +MEPERO             =  0.340G1G5002 + 0.330GGO5003 + 0.330GGK5002                 : ARR( 0.565E-13,  -845., 0.0);
+{  2903} G2G5002 +PERO1              =  0.460G1G5002 + 0.270GGO5003 + 0.270GGK5002                 : ARR( 0.434E-13,  -900., 0.0);
+{  2904} G2G5002 +PERO2              =  0.400G1G5002 + 0.300GGO5003 + 0.300GGK5002                 : ARR( 0.162E-13, -1400., 0.0);
+{  2905} G2G5002 +PERO3              =  0.460G1G5002 + 0.270GGO5003 + 0.270GGK5002                 : ARR( 0.488E-13, -1250., 0.0);
+{  2906} G2G5002 +PERO5              =  0.460G1G5002 + 0.270GGO5003 + 0.270GGK5002                 : ARR( 0.183E-11,   450., 0.0);
+{  2907} G2G5002 +PERO6              =  0.300G1G5002 + 0.350GGO5003 + 0.350GGK5002                 : ARR( 0.168E-13, -1300., 0.0);
+{  2908} G2G5002 +PERO9              =  0.650G1G5002 + 0.350GGK5002                                : ARR( 0.100E-10,     0., 0.0);
+{  2909} G1G5000                     =       GD02000 +      G2G3000                                : ARR( 0.200E+15,  6864., 0.0);
+{  2910} G1G5001                     =       G202000 +      GGD3000                                : ARR( 0.200E+15,  6824., 0.0);
+{  2911} G1G5001                     =       GD03000 +      G2G2000                                : ARR( 0.200E+15,  7196., 0.0);
+{  2912} G1G5002                     =       GD04000 +      GCO     +      GHO2                    : ARR( 0.200E+15,  4949., 0.0);
+{  2913} G2G3000 +GNO                =       G1G3000 +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{  2914} G2G3000 +GNO                =       GGN3000                                               : ARR( 0.622E-13,  -360., 0.0);
+{  2915} G2G3000 +GHO2               =       GGH3000                                               : ARR( 0.179E-12, -1250., 0.0);
+{  2916} G2G3000 +GNO3               =       G1G3000 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  2917} G2G3000 +MEPERO             =  0.480G1G3000 + 0.260GGO3000 + 0.260GGD3000                 : ARR( 0.146E-12,  -445., 0.0);
+{  2918} G2G3000 +PERO1              =  0.600G1G3000 + 0.200GGO3000 + 0.200GGD3000                 : ARR( 0.112E-12,  -500., 0.0);
+{  2919} G2G3000 +PERO2              =  0.560G1G3000 + 0.220GGO3000 + 0.220GGD3000                 : ARR( 0.418E-13, -1000., 0.0);
+{  2920} G2G3000 +PERO3              =  0.600G1G3000 + 0.200GGO3000 + 0.200GGD3000                 : ARR( 0.126E-12,  -850., 0.0);
+{  2921} G2G3000 +PERO5              =  0.600G1G3000 + 0.200GGO3000 + 0.200GGD3000                 : ARR( 0.473E-11,   850., 0.0);
+{  2922} G2G3000 +PERO6              =  0.460G1G3000 + 0.270GGO3000 + 0.270GGD3000                 : ARR( 0.434E-13,  -900., 0.0);
+{  2923} G2G3000 +PERO9              =  0.800G1G3000 + 0.200GGD3000                                : ARR( 0.100E-10,     0., 0.0);
+{  2924} G2G2000 +GNO                =       G1G2000 +      GNO2                                   : ARR( 0.270E-11,  -360., 0.0);
+{  2925} G2G2000 +GHO2               =       GGH2000                                               : ARR( 0.133E-12, -1250., 0.0);
+{  2926} G2G2000 +GNO3               =       G1G2000 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  2927} G2G2000 +MEPERO             =  0.480G1G2000 + 0.260GGO2000 + 0.260GGD2000                 : ARR( 0.164E-12,  -795., 0.0);
+{  2928} G2G2000 +PERO1              =  0.600G1G2000 + 0.200GGO2000 + 0.200GGD2000                 : ARR( 0.126E-12,  -850., 0.0);
+{  2929} G2G2000 +PERO2              =  0.560G1G2000 + 0.220GGO2000 + 0.220GGD2000                 : ARR( 0.471E-13, -1350., 0.0);
+{  2930} G2G2000 +PERO3              =  0.600G1G2000 + 0.200GGO2000 + 0.200GGD2000                 : ARR( 0.142E-12, -1200., 0.0);
+{  2931} G2G2000 +PERO5              =  0.600G1G2000 + 0.200GGO2000 + 0.200GGD2000                 : ARR( 0.533E-11,   500., 0.0);
+{  2932} G2G2000 +PERO6              =  0.460G1G2000 + 0.270GGO2000 + 0.270GGD2000                 : ARR( 0.488E-13, -1250., 0.0);
+{  2933} G2G2000 +PERO9              =  0.800G1G2000 + 0.200GGD2000                                : ARR( 0.100E-10,     0., 0.0);
+{  2934} G1G3000 +OXYGEN             =       GGD3000 +      GHO2                                   : ARR( 0.600E-13,   398., 0.0);
+{  2935} G1G2000                     =       GCO     +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  5835., 0.0);
+{  2936} GA05000 +GHO                =       G2A5000                                               : ARR( 0.120E-11,     0., 0.0);
+{  2937} GA05000 +GHO                =       G2A5001                                               : ARR( 0.148E-11,     0., 0.0);
+{  2938} GA05000 +GHO                =       G2A5002                                               : ARR( 0.666E-12,     0., 0.0);
+{  2939} GA05000 +GHO                =       G204000 +      GCO2                                   : ARR( 0.543E-12,     0., 0.0);
+{  2940} G2A5000 +GNO                =       G1A5000 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  2941} G2A5000 +GNO                =       GAN5003                                               : ARR( 0.182E-12,  -360., 0.0);
+{  2942} G2A5000 +GHO2               =       GAH5002                                               : ARR( 0.242E-12, -1250., 0.0);
+{  2943} G2A5000 +GNO3               =       G1A5000 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  2944} G2A5000 +MEPERO             =  0.480G1A5000 + 0.260GAO5000 + 0.260GAK5001                 : ARR( 0.616E-11,   905., 0.0);
+{  2945} G2A5000 +PERO1              =  0.600G1A5000 + 0.200GAO5000 + 0.200GAK5001                 : ARR( 0.473E-11,   850., 0.0);
+{  2946} G2A5000 +PERO2              =  0.560G1A5000 + 0.220GAO5000 + 0.220GAK5001                 : ARR( 0.177E-11,   350., 0.0);
+{  2947} G2A5000 +PERO3              =  0.600G1A5000 + 0.200GAO5000 + 0.200GAK5001                 : ARR( 0.533E-11,   500., 0.0);
+{  2948} G2A5000 +PERO5              =  0.600G1A5000 + 0.200GAO5000 + 0.200GAK5001                 : ARR( 0.200E-09,  2200., 0.0);
+{  2949} G2A5000 +PERO6              =  0.460G1A5000 + 0.270GAO5000 + 0.270GAK5001                 : ARR( 0.183E-11,   450., 0.0);
+{  2950} G2A5000 +PERO9              =  0.800G1A5000 + 0.200GAK5001                                : ARR( 0.100E-10,     0., 0.0);
+{  2951} G2A5001 +GNO                =       G1A5001 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  2952} G2A5001 +GNO                =       GAN5002                                               : ARR( 0.182E-12,  -360., 0.0);
+{  2953} G2A5001 +GHO2               =       GAH5001                                               : ARR( 0.242E-12, -1250., 0.0);
+{  2954} G2A5001 +GNO3               =       G1A5001 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  2955} G2A5001 +MEPERO             =  0.480G1A5001 + 0.260GAO5002 + 0.260GAK5000                 : ARR( 0.616E-11,   905., 0.0);
+{  2956} G2A5001 +PERO1              =  0.600G1A5001 + 0.200GAO5002 + 0.200GAK5000                 : ARR( 0.473E-11,   850., 0.0);
+{  2957} G2A5001 +PERO2              =  0.560G1A5001 + 0.220GAO5002 + 0.220GAK5000                 : ARR( 0.177E-11,   350., 0.0);
+{  2958} G2A5001 +PERO3              =  0.600G1A5001 + 0.200GAO5002 + 0.200GAK5000                 : ARR( 0.533E-11,   500., 0.0);
+{  2959} G2A5001 +PERO5              =  0.600G1A5001 + 0.200GAO5002 + 0.200GAK5000                 : ARR( 0.200E-09,  2200., 0.0);
+{  2960} G2A5001 +PERO6              =  0.460G1A5001 + 0.270GAO5002 + 0.270GAK5000                 : ARR( 0.183E-11,   450., 0.0);
+{  2961} G2A5001 +PERO9              =  0.800G1A5001 + 0.200GAK5000                                : ARR( 0.100E-10,     0., 0.0);
+{  2962} G2A5002 +GNO                =       G1A5002 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  2963} G2A5002 +GNO                =       GAN5004                                               : ARR( 0.182E-12,  -360., 0.0);
+{  2964} G2A5002 +GHO2               =       GAH5003                                               : ARR( 0.242E-12, -1250., 0.0);
+{  2965} G2A5002 +GNO3               =       G1A5002 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  2966} G2A5002 +MEPERO             =  0.340G1A5002 + 0.330GAO5003 + 0.330GAK5002                 : ARR( 0.565E-13,  -845., 0.0);
+{  2967} G2A5002 +PERO1              =  0.460G1A5002 + 0.270GAO5003 + 0.270GAK5002                 : ARR( 0.434E-13,  -900., 0.0);
+{  2968} G2A5002 +PERO2              =  0.400G1A5002 + 0.300GAO5003 + 0.300GAK5002                 : ARR( 0.162E-13, -1400., 0.0);
+{  2969} G2A5002 +PERO3              =  0.460G1A5002 + 0.270GAO5003 + 0.270GAK5002                 : ARR( 0.488E-13, -1250., 0.0);
+{  2970} G2A5002 +PERO5              =  0.460G1A5002 + 0.270GAO5003 + 0.270GAK5002                 : ARR( 0.183E-11,   450., 0.0);
+{  2971} G2A5002 +PERO6              =  0.300G1A5002 + 0.350GAO5003 + 0.350GAK5002                 : ARR( 0.168E-13, -1300., 0.0);
+{  2972} G2A5002 +PERO9              =  0.650G1A5002 + 0.350GAK5002                                : ARR( 0.100E-10,     0., 0.0);
+{  2973} G1A5000                     =       GD02000 +      G2A3000                                : ARR( 0.200E+15,  6864., 0.0);
+{  2974} G1A5001                     =       G202000 +      GAD3000                                : ARR( 0.200E+15,  6824., 0.0);
+{  2975} G1A5001                     =       GD03000 +      G2A2000                                : ARR( 0.200E+15,  7196., 0.0);
+{  2976} G1A5002                     =       GD04000 +      GCO     +      GHO                     : ARR( 0.200E+15,  4918., 0.0);
+{  2977} G2A3000 +GNO                =       G1A3000 +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{  2978} G2A3000 +GNO                =       GAN3000                                               : ARR( 0.622E-13,  -360., 0.0);
+{  2979} G2A3000 +GHO2               =       GAH3000                                               : ARR( 0.179E-12, -1250., 0.0);
+{  2980} G2A3000 +GNO3               =       G1A3000 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  2981} G2A3000 +MEPERO             =  0.480G1A3000 + 0.260GAO3000 + 0.260GAD3000                 : ARR( 0.146E-12,  -445., 0.0);
+{  2982} G2A3000 +PERO1              =  0.600G1A3000 + 0.200GAO3000 + 0.200GAD3000                 : ARR( 0.112E-12,  -500., 0.0);
+{  2983} G2A3000 +PERO2              =  0.560G1A3000 + 0.220GAO3000 + 0.220GAD3000                 : ARR( 0.418E-13, -1000., 0.0);
+{  2984} G2A3000 +PERO3              =  0.600G1A3000 + 0.200GAO3000 + 0.200GAD3000                 : ARR( 0.126E-12,  -850., 0.0);
+{  2985} G2A3000 +PERO5              =  0.600G1A3000 + 0.200GAO3000 + 0.200GAD3000                 : ARR( 0.473E-11,   850., 0.0);
+{  2986} G2A3000 +PERO6              =  0.460G1A3000 + 0.270GAO3000 + 0.270GAD3000                 : ARR( 0.434E-13,  -900., 0.0);
+{  2987} G2A3000 +PERO9              =  0.800G1A3000 + 0.200GAD3000                                : ARR( 0.100E-10,     0., 0.0);
+{  2988} G2A2000 +GNO                =       G1A2000 +      GNO2                                   : ARR( 0.270E-11,  -360., 0.0);
+{  2989} G2A2000 +GHO2               =       GAH2000                                               : ARR( 0.133E-12, -1250., 0.0);
+{  2990} G2A2000 +GNO3               =       G1A2000 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  2991} G2A2000 +MEPERO             =  0.480G1A2000 + 0.260GAO2000 + 0.260GAD2000                 : ARR( 0.164E-12,  -795., 0.0);
+{  2992} G2A2000 +PERO1              =  0.600G1A2000 + 0.200GAO2000 + 0.200GAD2000                 : ARR( 0.126E-12,  -850., 0.0);
+{  2993} G2A2000 +PERO2              =  0.560G1A2000 + 0.220GAO2000 + 0.220GAD2000                 : ARR( 0.471E-13, -1350., 0.0);
+{  2994} G2A2000 +PERO3              =  0.600G1A2000 + 0.200GAO2000 + 0.200GAD2000                 : ARR( 0.142E-12, -1200., 0.0);
+{  2995} G2A2000 +PERO5              =  0.600G1A2000 + 0.200GAO2000 + 0.200GAD2000                 : ARR( 0.533E-11,   500., 0.0);
+{  2996} G2A2000 +PERO6              =  0.460G1A2000 + 0.270GAO2000 + 0.270GAD2000                 : ARR( 0.488E-13, -1250., 0.0);
+{  2997} G2A2000 +PERO9              =  0.800G1A2000 + 0.200GAD2000                                : ARR( 0.100E-10,     0., 0.0);
+{  2998} G1A3000 +OXYGEN             =       GAD3000 +      GHO2                                   : ARR( 0.600E-13,   398., 0.0);
+{  2999} G1A2000                     =       GCO     +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5804., 0.0);
+{  3000} GP05000                     =       G3K5000 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{  3001} GP05000 +GHO                =       G2P5000                                               : ARR( 0.121E-11,     0., 0.0);
+{  3002} GP05000 +GHO                =       G2P5001                                               : ARR( 0.148E-11,     0., 0.0);
+{  3003} GP05000 +GHO                =       G2P5002                                               : ARR( 0.904E-12,     0., 0.0);
+{  3004} GP05000+HV               =       G3K5000 +      GNO2                                   :  0.100E+01*SUN;
+{  3005} G2P5000 +GNO                =       G1P5000 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  3006} G2P5000 +GNO                =       GPN5003                                               : ARR( 0.182E-12,  -360., 0.0);
+{  3007} G2P5000 +GHO2               =       GPH5002                                               : ARR( 0.242E-12, -1250., 0.0);
+{  3008} G2P5000 +GNO3               =       G1P5000 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  3009} G2P5000 +MEPERO             =  0.480G1P5000 + 0.260GPO5000 + 0.260GPK5001                 : ARR( 0.616E-11,   905., 0.0);
+{  3010} G2P5000 +PERO1              =  0.600G1P5000 + 0.200GPO5000 + 0.200GPK5001                 : ARR( 0.473E-11,   850., 0.0);
+{  3011} G2P5000 +PERO2              =  0.560G1P5000 + 0.220GPO5000 + 0.220GPK5001                 : ARR( 0.177E-11,   350., 0.0);
+{  3012} G2P5000 +PERO3              =  0.600G1P5000 + 0.200GPO5000 + 0.200GPK5001                 : ARR( 0.533E-11,   500., 0.0);
+{  3013} G2P5000 +PERO5              =  0.600G1P5000 + 0.200GPO5000 + 0.200GPK5001                 : ARR( 0.200E-09,  2200., 0.0);
+{  3014} G2P5000 +PERO6              =  0.460G1P5000 + 0.270GPO5000 + 0.270GPK5001                 : ARR( 0.183E-11,   450., 0.0);
+{  3015} G2P5000 +PERO9              =  0.800G1P5000 + 0.200GPK5001                                : ARR( 0.100E-10,     0., 0.0);
+{  3016} G2P5001 +GNO                =       G1P5001 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  3017} G2P5001 +GNO                =       GPN5002                                               : ARR( 0.182E-12,  -360., 0.0);
+{  3018} G2P5001 +GHO2               =       GPH5001                                               : ARR( 0.242E-12, -1250., 0.0);
+{  3019} G2P5001 +GNO3               =       G1P5001 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  3020} G2P5001 +MEPERO             =  0.480G1P5001 + 0.260GPO5002 + 0.260GPK5000                 : ARR( 0.616E-11,   905., 0.0);
+{  3021} G2P5001 +PERO1              =  0.600G1P5001 + 0.200GPO5002 + 0.200GPK5000                 : ARR( 0.473E-11,   850., 0.0);
+{  3022} G2P5001 +PERO2              =  0.560G1P5001 + 0.220GPO5002 + 0.220GPK5000                 : ARR( 0.177E-11,   350., 0.0);
+{  3023} G2P5001 +PERO3              =  0.600G1P5001 + 0.200GPO5002 + 0.200GPK5000                 : ARR( 0.533E-11,   500., 0.0);
+{  3024} G2P5001 +PERO5              =  0.600G1P5001 + 0.200GPO5002 + 0.200GPK5000                 : ARR( 0.200E-09,  2200., 0.0);
+{  3025} G2P5001 +PERO6              =  0.460G1P5001 + 0.270GPO5002 + 0.270GPK5000                 : ARR( 0.183E-11,   450., 0.0);
+{  3026} G2P5001 +PERO9              =  0.800G1P5001 + 0.200GPK5000                                : ARR( 0.100E-10,     0., 0.0);
+{  3027} G2P5002 +GNO                =       G1P5002 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  3028} G2P5002 +GNO                =       GPN5004                                               : ARR( 0.182E-12,  -360., 0.0);
+{  3029} G2P5002 +GHO2               =       GPH5003                                               : ARR( 0.242E-12, -1250., 0.0);
+{  3030} G2P5002 +GNO3               =       G1P5002 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  3031} G2P5002 +MEPERO             =  0.340G1P5002 + 0.330GPO5003 + 0.330GPK5002                 : ARR( 0.565E-13,  -845., 0.0);
+{  3032} G2P5002 +PERO1              =  0.460G1P5002 + 0.270GPO5003 + 0.270GPK5002                 : ARR( 0.434E-13,  -900., 0.0);
+{  3033} G2P5002 +PERO2              =  0.400G1P5002 + 0.300GPO5003 + 0.300GPK5002                 : ARR( 0.162E-13, -1400., 0.0);
+{  3034} G2P5002 +PERO3              =  0.460G1P5002 + 0.270GPO5003 + 0.270GPK5002                 : ARR( 0.488E-13, -1250., 0.0);
+{  3035} G2P5002 +PERO5              =  0.460G1P5002 + 0.270GPO5003 + 0.270GPK5002                 : ARR( 0.183E-11,   450., 0.0);
+{  3036} G2P5002 +PERO6              =  0.300G1P5002 + 0.350GPO5003 + 0.350GPK5002                 : ARR( 0.168E-13, -1300., 0.0);
+{  3037} G2P5002 +PERO9              =  0.650G1P5002 + 0.350GPK5002                                : ARR( 0.100E-10,     0., 0.0);
+{  3038} G1P5000                     =       GD02000 +      G2P3000                                : ARR( 0.200E+15,  6864., 0.0);
+{  3039} G1P5001                     =       G202000 +      GPD3000                                : ARR( 0.200E+15,  6824., 0.0);
+{  3040} G1P5001                     =       GD03000 +      G2P2000                                : ARR( 0.200E+15,  7196., 0.0);
+{  3041} G1P5002                     =       GD04000 +      GCO     +      GNO2                    : ARR( 0.200E+15,  4949., 0.0);
+{  3042} G2P3000 +GNO                =       G1P3000 +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{  3043} G2P3000 +GNO                =       GPN3000                                               : ARR( 0.622E-13,  -360., 0.0);
+{  3044} G2P3000 +GHO2               =       GPH3000                                               : ARR( 0.179E-12, -1250., 0.0);
+{  3045} G2P3000 +GNO3               =       G1P3000 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  3046} G2P3000 +MEPERO             =  0.480G1P3000 + 0.260GPO3000 + 0.260GPD3000                 : ARR( 0.146E-12,  -445., 0.0);
+{  3047} G2P3000 +PERO1              =  0.600G1P3000 + 0.200GPO3000 + 0.200GPD3000                 : ARR( 0.112E-12,  -500., 0.0);
+{  3048} G2P3000 +PERO2              =  0.560G1P3000 + 0.220GPO3000 + 0.220GPD3000                 : ARR( 0.418E-13, -1000., 0.0);
+{  3049} G2P3000 +PERO3              =  0.600G1P3000 + 0.200GPO3000 + 0.200GPD3000                 : ARR( 0.126E-12,  -850., 0.0);
+{  3050} G2P3000 +PERO5              =  0.600G1P3000 + 0.200GPO3000 + 0.200GPD3000                 : ARR( 0.473E-11,   850., 0.0);
+{  3051} G2P3000 +PERO6              =  0.460G1P3000 + 0.270GPO3000 + 0.270GPD3000                 : ARR( 0.434E-13,  -900., 0.0);
+{  3052} G2P3000 +PERO9              =  0.800G1P3000 + 0.200GPD3000                                : ARR( 0.100E-10,     0., 0.0);
+{  3053} G2P2000 +GNO                =       G1P2000 +      GNO2                                   : ARR( 0.270E-11,  -360., 0.0);
+{  3054} G2P2000 +GHO2               =       GPH2000                                               : ARR( 0.133E-12, -1250., 0.0);
+{  3055} G2P2000 +GNO3               =       G1P2000 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  3056} G2P2000 +MEPERO             =  0.480G1P2000 + 0.260GPO2000 + 0.260GPD2000                 : ARR( 0.164E-12,  -795., 0.0);
+{  3057} G2P2000 +PERO1              =  0.600G1P2000 + 0.200GPO2000 + 0.200GPD2000                 : ARR( 0.126E-12,  -850., 0.0);
+{  3058} G2P2000 +PERO2              =  0.560G1P2000 + 0.220GPO2000 + 0.220GPD2000                 : ARR( 0.471E-13, -1350., 0.0);
+{  3059} G2P2000 +PERO3              =  0.600G1P2000 + 0.200GPO2000 + 0.200GPD2000                 : ARR( 0.142E-12, -1200., 0.0);
+{  3060} G2P2000 +PERO5              =  0.600G1P2000 + 0.200GPO2000 + 0.200GPD2000                 : ARR( 0.533E-11,   500., 0.0);
+{  3061} G2P2000 +PERO6              =  0.460G1P2000 + 0.270GPO2000 + 0.270GPD2000                 : ARR( 0.488E-13, -1250., 0.0);
+{  3062} G2P2000 +PERO9              =  0.800G1P2000 + 0.200GPD2000                                : ARR( 0.100E-10,     0., 0.0);
+{  3063} G1P3000 +OXYGEN             =       GPD3000 +      GHO2                                   : ARR( 0.600E-13,   398., 0.0);
+{  3064} G1P2000                     =       GCO     +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  5835., 0.0);
+{  3065} GN04000 +GHO                =       G2N4000                                               : ARR( 0.178E-12,     0., 0.0);
+{  3066} GN04000 +GHO                =       G2N4004                                               : ARR( 0.122E-11,     0., 0.0);
+{  3067} GN04000 +GHO                =       G2N4005                                               : ARR( 0.300E-12,     0., 0.0);
+{  3068} GN04000+HV               =       G104000 +      GNO2                                   :  0.100E+01*SUN;
+{  3069} G2N4004 +GNO                =       G1N4004 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  3070} G2N4004 +GNO                =       GNN4005                                               : ARR( 0.111E-12,  -360., 0.0);
+{  3071} G2N4004 +GHO2               =       GHN4008                                               : ARR( 0.214E-12, -1250., 0.0);
+{  3072} G2N4004 +GNO3               =       G1N4004 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  3073} G2N4004 +MEPERO             =  0.480G1N4004 + 0.260GNO4001 + 0.260GNK4001                 : ARR( 0.616E-11,   905., 0.0);
+{  3074} G2N4004 +PERO1              =  0.600G1N4004 + 0.200GNO4001 + 0.200GNK4001                 : ARR( 0.473E-11,   850., 0.0);
+{  3075} G2N4004 +PERO2              =  0.560G1N4004 + 0.220GNO4001 + 0.220GNK4001                 : ARR( 0.177E-11,   350., 0.0);
+{  3076} G2N4004 +PERO3              =  0.600G1N4004 + 0.200GNO4001 + 0.200GNK4001                 : ARR( 0.533E-11,   500., 0.0);
+{  3077} G2N4004 +PERO5              =  0.600G1N4004 + 0.200GNO4001 + 0.200GNK4001                 : ARR( 0.200E-09,  2200., 0.0);
+{  3078} G2N4004 +PERO6              =  0.460G1N4004 + 0.270GNO4001 + 0.270GNK4001                 : ARR( 0.183E-11,   450., 0.0);
+{  3079} G2N4004 +PERO9              =  0.800G1N4004 + 0.200GNK4001                                : ARR( 0.100E-10,     0., 0.0);
+{  3080} G2N4005 +GNO                =       G1N4005 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  3081} G2N4005 +GNO                =       GNN4003                                               : ARR( 0.111E-12,  -360., 0.0);
+{  3082} G2N4005 +GHO2               =       GHN4006                                               : ARR( 0.214E-12, -1250., 0.0);
+{  3083} G2N4005 +GNO3               =       G1N4005 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  3084} G2N4005 +MEPERO             =  0.340G1N4005 + 0.330GNO4006 + 0.330GNK4000                 : ARR( 0.565E-13,  -845., 0.0);
+{  3085} G2N4005 +PERO1              =  0.460G1N4005 + 0.270GNO4006 + 0.270GNK4000                 : ARR( 0.434E-13,  -900., 0.0);
+{  3086} G2N4005 +PERO2              =  0.400G1N4005 + 0.300GNO4006 + 0.300GNK4000                 : ARR( 0.162E-13, -1400., 0.0);
+{  3087} G2N4005 +PERO3              =  0.460G1N4005 + 0.270GNO4006 + 0.270GNK4000                 : ARR( 0.488E-13, -1250., 0.0);
+{  3088} G2N4005 +PERO5              =  0.460G1N4005 + 0.270GNO4006 + 0.270GNK4000                 : ARR( 0.183E-11,   450., 0.0);
+{  3089} G2N4005 +PERO6              =  0.300G1N4005 + 0.350GNO4006 + 0.350GNK4000                 : ARR( 0.168E-13, -1300., 0.0);
+{  3090} G2N4005 +PERO9              =  0.650G1N4005 + 0.350GNK4000                                : ARR( 0.100E-10,     0., 0.0);
+{  3091} G1N4004                     =       GD02000 +      G2N2000                                : ARR( 0.200E+15,  6879., 0.0);
+{  3092} G1N4005                     =       G202000 +      GND2000                                : ARR( 0.200E+15,  7519., 0.0);
+{  3093} GH04000 +GHO                =       G2H4003                                               : ARR( 0.116E-11,     0., 0.0);
+{  3094} GH04000 +GHO                =       G2H4004                                               : ARR( 0.142E-11,     0., 0.0);
+{  3095} GH04000 +GHO                =       GD04000 +      GHO                                    : ARR( 0.162E-10,     0., 0.0);
+{  3096} GH04000 +GHO                =       G204000                                               : ARR( 0.191E-11,  -190., 0.0);
+{  3097} GH04000+HV               =       G104000 +      GHO                                    :  0.100E+01*SUN;
+{  3098} G2H4003 +GNO                =       G1H4003 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  3099} G2H4003 +GNO                =       GHN4009                                               : ARR( 0.111E-12,  -360., 0.0);
+{  3100} G2H4003 +GHO2               =       GHH4003                                               : ARR( 0.214E-12, -1250., 0.0);
+{  3101} G2H4003 +GNO3               =       G1H4003 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  3102} G2H4003 +MEPERO             =  0.480G1H4003 + 0.260GHO4001 + 0.260GHK4001                 : ARR( 0.616E-11,   905., 0.0);
+{  3103} G2H4003 +PERO1              =  0.600G1H4003 + 0.200GHO4001 + 0.200GHK4001                 : ARR( 0.473E-11,   850., 0.0);
+{  3104} G2H4003 +PERO2              =  0.560G1H4003 + 0.220GHO4001 + 0.220GHK4001                 : ARR( 0.177E-11,   350., 0.0);
+{  3105} G2H4003 +PERO3              =  0.600G1H4003 + 0.200GHO4001 + 0.200GHK4001                 : ARR( 0.533E-11,   500., 0.0);
+{  3106} G2H4003 +PERO5              =  0.600G1H4003 + 0.200GHO4001 + 0.200GHK4001                 : ARR( 0.200E-09,  2200., 0.0);
+{  3107} G2H4003 +PERO6              =  0.460G1H4003 + 0.270GHO4001 + 0.270GHK4001                 : ARR( 0.183E-11,   450., 0.0);
+{  3108} G2H4003 +PERO9              =  0.800G1H4003 + 0.200GHK4001                                : ARR( 0.100E-10,     0., 0.0);
+{  3109} G2H4004 +GNO                =       G1H4004 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  3110} G2H4004 +GNO                =       GHN4004                                               : ARR( 0.111E-12,  -360., 0.0);
+{  3111} G2H4004 +GHO2               =       GHH4001                                               : ARR( 0.214E-12, -1250., 0.0);
+{  3112} G2H4004 +GNO3               =       G1H4004 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  3113} G2H4004 +MEPERO             =  0.340G1H4004 + 0.330GHO4006 + 0.330GHK4000                 : ARR( 0.565E-13,  -845., 0.0);
+{  3114} G2H4004 +PERO1              =  0.460G1H4004 + 0.270GHO4006 + 0.270GHK4000                 : ARR( 0.434E-13,  -900., 0.0);
+{  3115} G2H4004 +PERO2              =  0.400G1H4004 + 0.300GHO4006 + 0.300GHK4000                 : ARR( 0.162E-13, -1400., 0.0);
+{  3116} G2H4004 +PERO3              =  0.460G1H4004 + 0.270GHO4006 + 0.270GHK4000                 : ARR( 0.488E-13, -1250., 0.0);
+{  3117} G2H4004 +PERO5              =  0.460G1H4004 + 0.270GHO4006 + 0.270GHK4000                 : ARR( 0.183E-11,   450., 0.0);
+{  3118} G2H4004 +PERO6              =  0.300G1H4004 + 0.350GHO4006 + 0.350GHK4000                 : ARR( 0.168E-13, -1300., 0.0);
+{  3119} G2H4004 +PERO9              =  0.650G1H4004 + 0.350GHK4000                                : ARR( 0.100E-10,     0., 0.0);
+{  3120} G1H4003                     =       GD02000 +      G2H2000                                : ARR( 0.200E+15,  6879., 0.0);
+{  3121} G1H4004                     =       G202000 +      GHD2000                                : ARR( 0.200E+15,  7521., 0.0);
+{  3122} G1H4004                     =       GD03000 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  7140., 0.0);
+{  3123} GO04000 +GHO                =       G2O4005                                               : ARR( 0.141E-11,     0., 0.0);
+{  3124} GO04000 +GHO                =       G2O4006                                               : ARR( 0.174E-11,     0., 0.0);
+{  3125} GO04000 +GHO                =       GD04000 +      GHO2                                   : ARR( 0.495E-11,     0., 0.0);
+{  3126} G2O4005 +GNO                =       G1O4005 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  3127} G2O4005 +GNO                =       GNO4007                                               : ARR( 0.111E-12,  -360., 0.0);
+{  3128} G2O4005 +GHO2               =       GHO4007                                               : ARR( 0.214E-12, -1250., 0.0);
+{  3129} G2O4005 +GNO3               =       G1O4005 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  3130} G2O4005 +MEPERO             =  0.480G1O4005 + 0.260GOO4001 + 0.260GKO4001                 : ARR( 0.616E-11,   905., 0.0);
+{  3131} G2O4005 +PERO1              =  0.600G1O4005 + 0.200GOO4001 + 0.200GKO4001                 : ARR( 0.473E-11,   850., 0.0);
+{  3132} G2O4005 +PERO2              =  0.560G1O4005 + 0.220GOO4001 + 0.220GKO4001                 : ARR( 0.177E-11,   350., 0.0);
+{  3133} G2O4005 +PERO3              =  0.600G1O4005 + 0.200GOO4001 + 0.200GKO4001                 : ARR( 0.533E-11,   500., 0.0);
+{  3134} G2O4005 +PERO5              =  0.600G1O4005 + 0.200GOO4001 + 0.200GKO4001                 : ARR( 0.200E-09,  2200., 0.0);
+{  3135} G2O4005 +PERO6              =  0.460G1O4005 + 0.270GOO4001 + 0.270GKO4001                 : ARR( 0.183E-11,   450., 0.0);
+{  3136} G2O4005 +PERO9              =  0.800G1O4005 + 0.200GKO4001                                : ARR( 0.100E-10,     0., 0.0);
+{  3137} G2O4006 +GNO                =       G1O4006 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  3138} G2O4006 +GNO                =       GNO4004                                               : ARR( 0.111E-12,  -360., 0.0);
+{  3139} G2O4006 +GHO2               =       GHO4004                                               : ARR( 0.214E-12, -1250., 0.0);
+{  3140} G2O4006 +GNO3               =       G1O4006 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  3141} G2O4006 +MEPERO             =  0.340G1O4006 + 0.330GOO4003 + 0.330GKO4000                 : ARR( 0.565E-13,  -845., 0.0);
+{  3142} G2O4006 +PERO1              =  0.460G1O4006 + 0.270GOO4003 + 0.270GKO4000                 : ARR( 0.434E-13,  -900., 0.0);
+{  3143} G2O4006 +PERO2              =  0.400G1O4006 + 0.300GOO4003 + 0.300GKO4000                 : ARR( 0.162E-13, -1400., 0.0);
+{  3144} G2O4006 +PERO3              =  0.460G1O4006 + 0.270GOO4003 + 0.270GKO4000                 : ARR( 0.488E-13, -1250., 0.0);
+{  3145} G2O4006 +PERO5              =  0.460G1O4006 + 0.270GOO4003 + 0.270GKO4000                 : ARR( 0.183E-11,   450., 0.0);
+{  3146} G2O4006 +PERO6              =  0.300G1O4006 + 0.350GOO4003 + 0.350GKO4000                 : ARR( 0.168E-13, -1300., 0.0);
+{  3147} G2O4006 +PERO9              =  0.650G1O4006 + 0.350GKO4000                                : ARR( 0.100E-10,     0., 0.0);
+{  3148} G1O4005                     =       GD02000 +      G2O2000                                : ARR( 0.200E+15,  6879., 0.0);
+{  3149} G1O4006                     =       GD03000 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  5041., 0.0);
+{  3150} GDD3000 +GHO                =       G3D3000                                               : ARR( 0.132E-09,     0., 0.0);
+{  3151} GDD3000 +GNO3               =       G3D3000 +      GHNO3                                  : ARR( 0.240E-13,     0., 0.0);
+{  3152} GDD3000+HV               =       GCO     +      G2D2000 +      GHO2                    :  0.200E+01*SUN;
+{  3153} G3D3000 +GHO2               =  0.800GGD3000 + 0.200GAD3000 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  3154} G3D3000 +GNO                =       G2D2000 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{  3155} G3D3000 +GNO2               =       GPD3000                                               : ARR( 0.330E-08,     0.,-1.0);
+{  3156} G3D3000 +GNO3               =       G2D2000 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{  3157} G3D3000 +MEPERO             =  0.685G2D2000 + 0.315GAD3000 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  3158} G3D3000 +PERO1              =  0.800G2D2000 + 0.200GAD3000 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  3159} G3D3000 +PERO2              =  0.750G2D2000 + 0.250GAD3000 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  3160} G3D3000 +PERO3              =  0.800G2D2000 + 0.200GAD3000 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  3161} G3D3000 +PERO5              =  0.650G2D2000 + 0.350GAD3000 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  3162} G3D3000 +PERO6              =  0.650G2D2000 + 0.350GAD3000 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  3163} G3D3000 +PERO9              =       G2D2000 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{  3164} GDD2000 +GHO                =       G3D2000                                               : ARR( 0.110E-10,     0., 0.0);
+{  3165} GDD2000 +GNO3               =       G3D2000 +      GHNO3                                  : ARR( 0.280E-11,  2375., 0.0);
+{  3166} GDD2000+HV               =       GH2     +      GCO     +      GCO                     :  0.100E+01*SUN;
+{  3167} GDD2000+HV               =  2.000GCO     + 2.000GHO2                                   :  0.100E+01*SUN;
+{  3168} GDD2000+HV               =       GCH2O   +      GCO                                    :  0.100E+01*SUN;
+{  3169} G3D2000 +GHO2               =  0.800GGD2000 + 0.200GAD2000 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  3170} G3D2000 +GNO                =       GCO     +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{  3171}  G3D2000 + GNO2       +M       =       GPD2000         +M                                    : FALL( 0.110E-10,     0.,-1.0, 0.850E-28,     0.,-6.5,0.60);
+{  3172} G3D2000 +GNO3               =       GCO     +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{  3173} G3D2000 +MEPERO             =  0.685GCO     + 0.315GAD2000 + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  3174} G3D2000 +PERO1              =  0.800GCO     + 0.200GAD2000 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  3175} G3D2000 +PERO2              =  0.750GCO     + 0.250GAD2000 + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  3176} G3D2000 +PERO3              =  0.800GCO     + 0.200GAD2000 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  3177} G3D2000 +PERO5              =  0.650GCO     + 0.350GAD2000 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  3178} G3D2000 +PERO6              =  0.650GCO     + 0.350GAD2000 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  3179} G3D2000 +PERO9              =       GCO     +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{  3180} GNO4000 +GHO                =       GND4001 +      GHO2                                   : ARR( 0.437E-11,     0., 0.0);
+{  3181} GNO4000 +GHO                =       G2N4006                                               : ARR( 0.153E-11,     0., 0.0);
+{  3182} GNO4000+HV               =       G1O4000 +      GNO2                                   :  0.100E+01*SUN;
+{  3183} G2N4006 +GNO                =       G1N4006 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  3184} G2N4006 +GNO                =       GNN4004                                               : ARR( 0.111E-12,  -360., 0.0);
+{  3185} G2N4006 +GHO2               =       GHN4007                                               : ARR( 0.214E-12, -1250., 0.0);
+{  3186} G2N4006 +GNO3               =       G1N4006 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  3187} G2N4006 +MEPERO             =  0.340G1N4006 + 0.330GNO4003 + 0.330GNK4002                 : ARR( 0.565E-13,  -845., 0.0);
+{  3188} G2N4006 +PERO1              =  0.460G1N4006 + 0.270GNO4003 + 0.270GNK4002                 : ARR( 0.434E-13,  -900., 0.0);
+{  3189} G2N4006 +PERO2              =  0.400G1N4006 + 0.300GNO4003 + 0.300GNK4002                 : ARR( 0.162E-13, -1400., 0.0);
+{  3190} G2N4006 +PERO3              =  0.460G1N4006 + 0.270GNO4003 + 0.270GNK4002                 : ARR( 0.488E-13, -1250., 0.0);
+{  3191} G2N4006 +PERO5              =  0.460G1N4006 + 0.270GNO4003 + 0.270GNK4002                 : ARR( 0.183E-11,   450., 0.0);
+{  3192} G2N4006 +PERO6              =  0.300G1N4006 + 0.350GNO4003 + 0.350GNK4002                 : ARR( 0.168E-13, -1300., 0.0);
+{  3193} G2N4006 +PERO9              =  0.650G1N4006 + 0.350GNK4002                                : ARR( 0.100E-10,     0., 0.0);
+{  3194} G1N4006                     =       GCH2O   +      GND3000 +      GHO2                    : ARR( 0.200E+15,  5041., 0.0);
+{  3195} GHO4000 +GHO                =       GHD4001 +      GHO2                                   : ARR( 0.404E-11,     0., 0.0);
+{  3196} GHO4000 +GHO                =       G2H4005                                               : ARR( 0.142E-11,     0., 0.0);
+{  3197} GHO4000 +GHO                =       G2H4006                                               : ARR( 0.142E-11,     0., 0.0);
+{  3198} GHO4000 +GHO                =       GDO4000 +      GHO                                    : ARR( 0.162E-10,     0., 0.0);
+{  3199} GHO4000 +GHO                =       G2O4000                                               : ARR( 0.191E-11,  -190., 0.0);
+{  3200} GHO4000+HV               =       G1O4000 +      GHO                                    :  0.100E+01*SUN;
+{  3201} G2H4005 +GNO                =       G1H4005 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  3202} G2H4005 +GNO                =       GHN4005                                               : ARR( 0.111E-12,  -360., 0.0);
+{  3203} G2H4005 +GHO2               =       GHH4002                                               : ARR( 0.214E-12, -1250., 0.0);
+{  3204} G2H4005 +GNO3               =       G1H4005 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  3205} G2H4005 +MEPERO             =  0.340G1H4005 + 0.330GHO4003 + 0.330GHK4002                 : ARR( 0.565E-13,  -845., 0.0);
+{  3206} G2H4005 +PERO1              =  0.460G1H4005 + 0.270GHO4003 + 0.270GHK4002                 : ARR( 0.434E-13,  -900., 0.0);
+{  3207} G2H4005 +PERO2              =  0.400G1H4005 + 0.300GHO4003 + 0.300GHK4002                 : ARR( 0.162E-13, -1400., 0.0);
+{  3208} G2H4005 +PERO3              =  0.460G1H4005 + 0.270GHO4003 + 0.270GHK4002                 : ARR( 0.488E-13, -1250., 0.0);
+{  3209} G2H4005 +PERO5              =  0.460G1H4005 + 0.270GHO4003 + 0.270GHK4002                 : ARR( 0.183E-11,   450., 0.0);
+{  3210} G2H4005 +PERO6              =  0.300G1H4005 + 0.350GHO4003 + 0.350GHK4002                 : ARR( 0.168E-13, -1300., 0.0);
+{  3211} G2H4005 +PERO9              =  0.650G1H4005 + 0.350GHK4002                                : ARR( 0.100E-10,     0., 0.0);
+{  3212} G2H4006 +GNO                =       G1H4006 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  3213} G2H4006 +GNO                =       GHN400A                                               : ARR( 0.111E-12,  -360., 0.0);
+{  3214} G2H4006 +GHO2               =       GHH4004                                               : ARR( 0.214E-12, -1250., 0.0);
+{  3215} G2H4006 +GNO3               =       G1H4006 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  3216} G2H4006 +MEPERO             =  0.340G1H4006 + 0.330GHO4002 + 0.330GHK4003                 : ARR( 0.565E-13,  -845., 0.0);
+{  3217} G2H4006 +PERO1              =  0.460G1H4006 + 0.270GHO4002 + 0.270GHK4003                 : ARR( 0.434E-13,  -900., 0.0);
+{  3218} G2H4006 +PERO2              =  0.400G1H4006 + 0.300GHO4002 + 0.300GHK4003                 : ARR( 0.162E-13, -1400., 0.0);
+{  3219} G2H4006 +PERO3              =  0.460G1H4006 + 0.270GHO4002 + 0.270GHK4003                 : ARR( 0.488E-13, -1250., 0.0);
+{  3220} G2H4006 +PERO5              =  0.460G1H4006 + 0.270GHO4002 + 0.270GHK4003                 : ARR( 0.183E-11,   450., 0.0);
+{  3221} G2H4006 +PERO6              =  0.300G1H4006 + 0.350GHO4002 + 0.350GHK4003                 : ARR( 0.168E-13, -1300., 0.0);
+{  3222} G2H4006 +PERO9              =  0.650G1H4006 + 0.350GHK4003                                : ARR( 0.100E-10,     0., 0.0);
+{  3223} G1H4005                     =       GCH2O   +      GHD3000 +      GHO2                    : ARR( 0.200E+15,  5041., 0.0);
+{  3224} G1H4006                     =       G2O2000 +      GHD2000                                : ARR( 0.200E+15,  7134., 0.0);
+{  3225} G1H4006                     =       GDO3000 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  7140., 0.0);
+{  3226} GOO4000 +GHO                =       GDO4000 +      GHO2                                   : ARR( 0.825E-11,     0., 0.0);
+{  3227} GOO4000 +GHO                =       G2O4007                                               : ARR( 0.290E-11,     0., 0.0);
+{  3228} G2O4007 +GNO                =       G1O4007 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  3229} G2O4007 +GNO                =       GNO4005                                               : ARR( 0.111E-12,  -360., 0.0);
+{  3230} G2O4007 +GHO2               =       GHO4005                                               : ARR( 0.214E-12, -1250., 0.0);
+{  3231} G2O4007 +GNO3               =       G1O4007 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  3232} G2O4007 +MEPERO             =  0.340G1O4007 + 0.330GOO4002 + 0.330GKO4002                 : ARR( 0.565E-13,  -845., 0.0);
+{  3233} G2O4007 +PERO1              =  0.460G1O4007 + 0.270GOO4002 + 0.270GKO4002                 : ARR( 0.434E-13,  -900., 0.0);
+{  3234} G2O4007 +PERO2              =  0.400G1O4007 + 0.300GOO4002 + 0.300GKO4002                 : ARR( 0.162E-13, -1400., 0.0);
+{  3235} G2O4007 +PERO3              =  0.460G1O4007 + 0.270GOO4002 + 0.270GKO4002                 : ARR( 0.488E-13, -1250., 0.0);
+{  3236} G2O4007 +PERO5              =  0.460G1O4007 + 0.270GOO4002 + 0.270GKO4002                 : ARR( 0.183E-11,   450., 0.0);
+{  3237} G2O4007 +PERO6              =  0.300G1O4007 + 0.350GOO4002 + 0.350GKO4002                 : ARR( 0.168E-13, -1300., 0.0);
+{  3238} G2O4007 +PERO9              =  0.650G1O4007 + 0.350GKO4002                                : ARR( 0.100E-10,     0., 0.0);
+{  3239} G1O4007                     =       GDO3000 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  5041., 0.0);
+{  3240} GDO4000 +GHO                =       GDD4000 +      GHO2                                   : ARR( 0.416E-11,     0., 0.0);
+{  3241} GDO4000 +GHO                =       G2D4001                                               : ARR( 0.463E-11,     0., 0.0);
+{  3242} GDO4000 +GHO                =       G3K4002                                               : ARR( 0.215E-10,     0., 0.0);
+{  3243} GDO4000 +GNO3               =       G3K4002 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{  3244} GDO4000+HV               =       G2O3001 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{  3245} GDO4000+HV               =  2.000GD02000                                               :  0.100E+01*SUN;
+{  3246} G2D4001 +GNO                =       G1D4001 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  3247} G2D4001 +GNO                =       GND4002                                               : ARR( 0.111E-12,  -360., 0.0);
+{  3248} G2D4001 +GHO2               =       GHD4000                                               : ARR( 0.214E-12, -1250., 0.0);
+{  3249} G2D4001 +GNO3               =       G1D4001 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  3250} G2D4001 +MEPERO             =  0.340G1D4001 + 0.330GDO4002 + 0.330GDK4001                 : ARR( 0.565E-13,  -845., 0.0);
+{  3251} G2D4001 +PERO1              =  0.460G1D4001 + 0.270GDO4002 + 0.270GDK4001                 : ARR( 0.434E-13,  -900., 0.0);
+{  3252} G2D4001 +PERO2              =  0.400G1D4001 + 0.300GDO4002 + 0.300GDK4001                 : ARR( 0.162E-13, -1400., 0.0);
+{  3253} G2D4001 +PERO3              =  0.460G1D4001 + 0.270GDO4002 + 0.270GDK4001                 : ARR( 0.488E-13, -1250., 0.0);
+{  3254} G2D4001 +PERO5              =  0.460G1D4001 + 0.270GDO4002 + 0.270GDK4001                 : ARR( 0.183E-11,   450., 0.0);
+{  3255} G2D4001 +PERO6              =  0.300G1D4001 + 0.350GDO4002 + 0.350GDK4001                 : ARR( 0.168E-13, -1300., 0.0);
+{  3256} G2D4001 +PERO9              =  0.650G1D4001 + 0.350GDK4001                                : ARR( 0.100E-10,     0., 0.0);
+{  3257} G1D4001                     =       GCH2O   +      GDD3000 +      GHO2                    : ARR( 0.200E+15,  4658., 0.0);
+{  3258} GHN5009 +GHO                =       G2H500N                                               : ARR( 0.144E-11,     0., 0.0);
+{  3259} GHN5009 +GHO                =       GND5003 +      GHO                                    : ARR( 0.164E-10,     0., 0.0);
+{  3260} GHN5009 +GHO                =       G2N5006                                               : ARR( 0.194E-11,  -190., 0.0);
+{  3261} GHN5009+HV               =       G1H500Q +      GNO2                                   :  0.100E+01*SUN;
+{  3262} GHN5009+HV               =       G1N5006 +      GHO                                    :  0.100E+01*SUN;
+{  3263} G2H500N +GNO                =       G1H500R +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  3264} G2H500N +GNO                =       GHN501D                                               : ARR( 0.182E-12,  -360., 0.0);
+{  3265} G2H500N +GHO2               =       GHH500L                                               : ARR( 0.242E-12, -1250., 0.0);
+{  3266} G2H500N +GNO3               =       G1H500R +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  3267} G2H500N +MEPERO             =  0.340G1H500R + 0.330GHN501N + 0.330GHN501F                 : ARR( 0.565E-13,  -845., 0.0);
+{  3268} G2H500N +PERO1              =  0.460G1H500R + 0.270GHN501N + 0.270GHN501F                 : ARR( 0.434E-13,  -900., 0.0);
+{  3269} G2H500N +PERO2              =  0.400G1H500R + 0.300GHN501N + 0.300GHN501F                 : ARR( 0.162E-13, -1400., 0.0);
+{  3270} G2H500N +PERO3              =  0.460G1H500R + 0.270GHN501N + 0.270GHN501F                 : ARR( 0.488E-13, -1250., 0.0);
+{  3271} G2H500N +PERO5              =  0.460G1H500R + 0.270GHN501N + 0.270GHN501F                 : ARR( 0.183E-11,   450., 0.0);
+{  3272} G2H500N +PERO6              =  0.300G1H500R + 0.350GHN501N + 0.350GHN501F                 : ARR( 0.168E-13, -1300., 0.0);
+{  3273} G2H500N +PERO9              =  0.650G1H500R + 0.350GHN501F                                : ARR( 0.100E-10,     0., 0.0);
+{  3274} G1H500Q                     =       GDO5000 +      GHO                                    : ARR( 0.160E+12,  2186., 0.0);
+{  3275} G1H500R                     =       G2H500O                                               : ARR( 0.240E+12,  4897., 0.0);
+{  3276} G1H500R                     =       G2N3001 +      GHD2000                                : ARR( 0.200E+15,  6985., 0.0);
+{  3277} G1H500R                     =       GND4000 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  7140., 0.0);
+{  3278} G2H500O +GNO                =       G1H500S +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  3279} G2H500O +GNO                =       GHN501O                                               : ARR( 0.182E-12,  -360., 0.0);
+{  3280} G2H500O +GHO2               =       GHH500M                                               : ARR( 0.242E-12, -1250., 0.0);
+{  3281} G2H500O +GNO3               =       G1H500S +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  3282} G2H500O +MEPERO             =  0.480G1H500S + 0.260GHN501P + 0.260GHN501Q                 : ARR( 0.164E-12,  -795., 0.0);
+{  3283} G2H500O +PERO1              =  0.600G1H500S + 0.200GHN501P + 0.200GHN501Q                 : ARR( 0.126E-12,  -850., 0.0);
+{  3284} G2H500O +PERO2              =  0.560G1H500S + 0.220GHN501P + 0.220GHN501Q                 : ARR( 0.471E-13, -1350., 0.0);
+{  3285} G2H500O +PERO3              =  0.600G1H500S + 0.200GHN501P + 0.200GHN501Q                 : ARR( 0.142E-12, -1200., 0.0);
+{  3286} G2H500O +PERO5              =  0.600G1H500S + 0.200GHN501P + 0.200GHN501Q                 : ARR( 0.533E-11,   500., 0.0);
+{  3287} G2H500O +PERO6              =  0.460G1H500S + 0.270GHN501P + 0.270GHN501Q                 : ARR( 0.488E-13, -1250., 0.0);
+{  3288} G2H500O +PERO9              =  0.800G1H500S + 0.200GHN501Q                                : ARR( 0.100E-10,     0., 0.0);
+{  3289} G1H500S                     =       GHN501H +      GHO2                                   : ARR( 0.800E+11,  2025., 0.0);
+{  3290} GND5003 +GHO                =       G3N5003                                               : ARR( 0.227E-10,     0., 0.0);
+{  3291} GND5003 +GNO3               =       G3N5003 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{  3292} GND5003+HV               =       G1D5007 +      GNO2                                   :  0.100E+01*SUN;
+{  3293} GND5003+HV               =       G2N4007 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{  3294} GND5003+HV               =       G2K3000 +      GD02000 +      GNO2                    :  0.100E+01*SUN;
+{  3295} G3N5003 +GHO2               =  0.800GGN5003 + 0.200GAN5003 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  3296} G3N5003 +GNO                =       G2N4007 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{  3297} G3N5003 +GNO2               =       GPN5003                                               : ARR( 0.330E-08,     0.,-1.0);
+{  3298} G3N5003 +GNO3               =       G2N4007 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{  3299} G3N5003 +MEPERO             =  0.685G2N4007 + 0.315GAN5003 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  3300} G3N5003 +PERO1              =  0.800G2N4007 + 0.200GAN5003 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  3301} G3N5003 +PERO2              =  0.750G2N4007 + 0.250GAN5003 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  3302} G3N5003 +PERO3              =  0.800G2N4007 + 0.200GAN5003 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  3303} G3N5003 +PERO5              =  0.650G2N4007 + 0.350GAN5003 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  3304} G3N5003 +PERO6              =  0.650G2N4007 + 0.350GAN5003 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  3305} G3N5003 +PERO9              =       G2N4007 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{  3306} G1D5007                     =       G3K5001                                               : ARR( 0.800E+11,  4559., 0.0);
+{  3307} G1D5007                     =       GD02000 +      G2D3001                                : ARR( 0.200E+15,  6864., 0.0);
+{  3308} G2N4007 +GNO                =       G1N4007 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  3309} G2N4007 +GNO                =       GNN4005                                               : ARR( 0.111E-12,  -360., 0.0);
+{  3310} G2N4007 +GHO2               =       GHN4009                                               : ARR( 0.214E-12, -1250., 0.0);
+{  3311} G2N4007 +GNO3               =       G1N4007 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  3312} G2N4007 +MEPERO             =  0.480G1N4007 + 0.260GNO4007 + 0.260GND4000                 : ARR( 0.146E-12,  -445., 0.0);
+{  3313} G2N4007 +PERO1              =  0.600G1N4007 + 0.200GNO4007 + 0.200GND4000                 : ARR( 0.112E-12,  -500., 0.0);
+{  3314} G2N4007 +PERO2              =  0.560G1N4007 + 0.220GNO4007 + 0.220GND4000                 : ARR( 0.418E-13, -1000., 0.0);
+{  3315} G2N4007 +PERO3              =  0.600G1N4007 + 0.200GNO4007 + 0.200GND4000                 : ARR( 0.126E-12,  -850., 0.0);
+{  3316} G2N4007 +PERO5              =  0.600G1N4007 + 0.200GNO4007 + 0.200GND4000                 : ARR( 0.473E-11,   850., 0.0);
+{  3317} G2N4007 +PERO6              =  0.460G1N4007 + 0.270GNO4007 + 0.270GND4000                 : ARR( 0.434E-13,  -900., 0.0);
+{  3318} G2N4007 +PERO9              =  0.800G1N4007 + 0.200GND4000                                : ARR( 0.100E-10,     0., 0.0);
+{  3319} G2D3001 +GNO                =       G1D3000 +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{  3320} G2D3001 +GNO                =       GND3000                                               : ARR( 0.622E-13,  -360., 0.0);
+{  3321} G2D3001 +GHO2               =       GHD3000                                               : ARR( 0.179E-12, -1250., 0.0);
+{  3322} G2D3001 +GNO3               =       G1D3000 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  3323} G2D3001 +MEPERO             =  0.480G1D3000 + 0.260GDO3000 + 0.260GDD3000                 : ARR( 0.146E-12,  -445., 0.0);
+{  3324} G2D3001 +PERO1              =  0.600G1D3000 + 0.200GDO3000 + 0.200GDD3000                 : ARR( 0.112E-12,  -500., 0.0);
+{  3325} G2D3001 +PERO2              =  0.560G1D3000 + 0.220GDO3000 + 0.220GDD3000                 : ARR( 0.418E-13, -1000., 0.0);
+{  3326} G2D3001 +PERO3              =  0.600G1D3000 + 0.200GDO3000 + 0.200GDD3000                 : ARR( 0.126E-12,  -850., 0.0);
+{  3327} G2D3001 +PERO5              =  0.600G1D3000 + 0.200GDO3000 + 0.200GDD3000                 : ARR( 0.473E-11,   850., 0.0);
+{  3328} G2D3001 +PERO6              =  0.460G1D3000 + 0.270GDO3000 + 0.270GDD3000                 : ARR( 0.434E-13,  -900., 0.0);
+{  3329} G2D3001 +PERO9              =  0.800G1D3000 + 0.200GDD3000                                : ARR( 0.100E-10,     0., 0.0);
+{  3330} G1N4007 +OXYGEN             =       GND4000 +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{  3331} G1N4007                     =       G2N4008                                               : ARR( 0.240E+12,  4897., 0.0);
+{  3332} G2N4008 +GNO                =       G1N4008 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  3333} G2N4008 +GNO                =       GNN4006                                               : ARR( 0.111E-12,  -360., 0.0);
+{  3334} G2N4008 +GHO2               =       GHN400A                                               : ARR( 0.214E-12, -1250., 0.0);
+{  3335} G2N4008 +GNO3               =       G1N4008 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  3336} G2N4008 +MEPERO             =  0.480G1N4008 + 0.260GNO4005 + 0.260GND4006                 : ARR( 0.164E-12,  -795., 0.0);
+{  3337} G2N4008 +PERO1              =  0.600G1N4008 + 0.200GNO4005 + 0.200GND4006                 : ARR( 0.126E-12,  -850., 0.0);
+{  3338} G2N4008 +PERO2              =  0.560G1N4008 + 0.220GNO4005 + 0.220GND4006                 : ARR( 0.471E-13, -1350., 0.0);
+{  3339} G2N4008 +PERO3              =  0.600G1N4008 + 0.200GNO4005 + 0.200GND4006                 : ARR( 0.142E-12, -1200., 0.0);
+{  3340} G2N4008 +PERO5              =  0.600G1N4008 + 0.200GNO4005 + 0.200GND4006                 : ARR( 0.533E-11,   500., 0.0);
+{  3341} G2N4008 +PERO6              =  0.460G1N4008 + 0.270GNO4005 + 0.270GND4006                 : ARR( 0.488E-13, -1250., 0.0);
+{  3342} G2N4008 +PERO9              =  0.800G1N4008 + 0.200GND4006                                : ARR( 0.100E-10,     0., 0.0);
+{  3343} G1N4008                     =       GND4002 +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{  3344} GNN5006 +GHO                =       G2N5012                                               : ARR( 0.670E-13,     0., 0.0);
+{  3345} GNN5006 +GHO                =       GNK5004 +      GNO2                                   : ARR( 0.191E-12,     0., 0.0);
+{  3346} GNN5006 +GHO                =       G2N5013                                               : ARR( 0.565E-13,     0., 0.0);
+{  3347} GNN5006+HV               =       G1N5007 +      GNO2                                   :  0.200E+01*SUN;
+{  3348} G2N5012 +GNO                =       G1N5013 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  3349} G2N5012 +GNO                =       GNN500N                                               : ARR( 0.182E-12,  -360., 0.0);
+{  3350} G2N5012 +GHO2               =       GHN501D                                               : ARR( 0.242E-12, -1250., 0.0);
+{  3351} G2N5012 +GNO3               =       G1N5013 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  3352} G2N5012 +MEPERO             =  0.480G1N5013 + 0.260GNN500B + 0.260GNN500s                 : ARR( 0.164E-12,  -795., 0.0);
+{  3353} G2N5012 +PERO1              =  0.600G1N5013 + 0.200GNN500B + 0.200GNN500s                 : ARR( 0.126E-12,  -850., 0.0);
+{  3354} G2N5012 +PERO2              =  0.560G1N5013 + 0.220GNN500B + 0.220GNN500s                 : ARR( 0.471E-13, -1350., 0.0);
+{  3355} G2N5012 +PERO3              =  0.600G1N5013 + 0.200GNN500B + 0.200GNN500s                 : ARR( 0.142E-12, -1200., 0.0);
+{  3356} G2N5012 +PERO5              =  0.600G1N5013 + 0.200GNN500B + 0.200GNN500s                 : ARR( 0.533E-11,   500., 0.0);
+{  3357} G2N5012 +PERO6              =  0.460G1N5013 + 0.270GNN500B + 0.270GNN500s                 : ARR( 0.488E-13, -1250., 0.0);
+{  3358} G2N5012 +PERO9              =  0.800G1N5013 + 0.200GNN500s                                : ARR( 0.100E-10,     0., 0.0);
+{  3359} G2N5013 +GNO                =       G1N5014 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  3360} G2N5013 +GNO                =       GNN500t                                               : ARR( 0.182E-12,  -360., 0.0);
+{  3361} G2N5013 +GHO2               =       GHN501R                                               : ARR( 0.242E-12, -1250., 0.0);
+{  3362} G2N5013 +GNO3               =       G1N5014 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  3363} G2N5013 +MEPERO             =  0.340G1N5014 + 0.330GNN500u + 0.330GNN500v                 : ARR( 0.565E-13,  -845., 0.0);
+{  3364} G2N5013 +PERO1              =  0.460G1N5014 + 0.270GNN500u + 0.270GNN500v                 : ARR( 0.434E-13,  -900., 0.0);
+{  3365} G2N5013 +PERO2              =  0.400G1N5014 + 0.300GNN500u + 0.300GNN500v                 : ARR( 0.162E-13, -1400., 0.0);
+{  3366} G2N5013 +PERO3              =  0.460G1N5014 + 0.270GNN500u + 0.270GNN500v                 : ARR( 0.488E-13, -1250., 0.0);
+{  3367} G2N5013 +PERO5              =  0.460G1N5014 + 0.270GNN500u + 0.270GNN500v                 : ARR( 0.183E-11,   450., 0.0);
+{  3368} G2N5013 +PERO6              =  0.300G1N5014 + 0.350GNN500u + 0.350GNN500v                 : ARR( 0.168E-13, -1300., 0.0);
+{  3369} G2N5013 +PERO9              =  0.650G1N5014 + 0.350GNN500v                                : ARR( 0.100E-10,     0., 0.0);
+{  3370} G1N5013 +OXYGEN             =       GNN500s +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{  3371} G1N5013                     =       GNK5006 +      GNO2                                   : ARR( 0.800E+11,  4116., 0.0);
+{  3372} G1N5014                     =       GD02000 +      GND3001 +      GNO2                    : ARR( 0.400E+15,  6710., 0.0);
+{  3373} GHN500A +GHO                =       GNK5004 +      GHO                                    : ARR( 0.340E-10,     0., 0.0);
+{  3374} GHN500A +GHO                =       G2N5007                                               : ARR( 0.193E-11,  -190., 0.0);
+{  3375} GHN500A+HV               =       G1H500T +      GNO2                                   :  0.100E+01*SUN;
+{  3376} GHN500A+HV               =       G1N5007 +      GHO                                    :  0.100E+01*SUN;
+{  3377} G1H500T                     =       G2H500P                                               : ARR( 0.240E+12,  4177., 0.0);
+{  3378} G1H500T                     =       G2H3003 +      GD02000                                : ARR( 0.200E+15,  6731., 0.0);
+{  3379} G2H500P +GNO                =       G1H500U +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  3380} G2H500P +GNO                =       GHN500m                                               : ARR( 0.182E-12,  -360., 0.0);
+{  3381} G2H500P +GHO2               =       GHH500N                                               : ARR( 0.242E-12, -1250., 0.0);
+{  3382} G2H500P +GNO3               =       G1H500U +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  3383} G2H500P +MEPERO             =  0.480G1H500U + 0.260GHO500D + 0.260GHD5005                 : ARR( 0.164E-12,  -795., 0.0);
+{  3384} G2H500P +PERO1              =  0.600G1H500U + 0.200GHO500D + 0.200GHD5005                 : ARR( 0.126E-12,  -850., 0.0);
+{  3385} G2H500P +PERO2              =  0.560G1H500U + 0.220GHO500D + 0.220GHD5005                 : ARR( 0.471E-13, -1350., 0.0);
+{  3386} G2H500P +PERO3              =  0.600G1H500U + 0.200GHO500D + 0.200GHD5005                 : ARR( 0.142E-12, -1200., 0.0);
+{  3387} G2H500P +PERO5              =  0.600G1H500U + 0.200GHO500D + 0.200GHD5005                 : ARR( 0.533E-11,   500., 0.0);
+{  3388} G2H500P +PERO6              =  0.460G1H500U + 0.270GHO500D + 0.270GHD5005                 : ARR( 0.488E-13, -1250., 0.0);
+{  3389} G2H500P +PERO9              =  0.800G1H500U + 0.200GHD5005                                : ARR( 0.100E-10,     0., 0.0);
+{  3390} G2H3003 +GNO                =       G1H3004 +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{  3391} G2H3003 +GNO                =       GHN3002                                               : ARR( 0.622E-13,  -360., 0.0);
+{  3392} G2H3003 +GHO2               =       GHH3000                                               : ARR( 0.179E-12, -1250., 0.0);
+{  3393} G2H3003 +GNO3               =       G1H3004 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  3394} G2H3003 +MEPERO             =  0.480G1H3004 + 0.260GHO3002 + 0.260GHD3002                 : ARR( 0.164E-12,  -795., 0.0);
+{  3395} G2H3003 +PERO1              =  0.600G1H3004 + 0.200GHO3002 + 0.200GHD3002                 : ARR( 0.126E-12,  -850., 0.0);
+{  3396} G2H3003 +PERO2              =  0.560G1H3004 + 0.220GHO3002 + 0.220GHD3002                 : ARR( 0.471E-13, -1350., 0.0);
+{  3397} G2H3003 +PERO3              =  0.600G1H3004 + 0.200GHO3002 + 0.200GHD3002                 : ARR( 0.142E-12, -1200., 0.0);
+{  3398} G2H3003 +PERO5              =  0.600G1H3004 + 0.200GHO3002 + 0.200GHD3002                 : ARR( 0.533E-11,   500., 0.0);
+{  3399} G2H3003 +PERO6              =  0.460G1H3004 + 0.270GHO3002 + 0.270GHD3002                 : ARR( 0.488E-13, -1250., 0.0);
+{  3400} G2H3003 +PERO9              =  0.800G1H3004 + 0.200GHD3002                                : ARR( 0.100E-10,     0., 0.0);
+{  3401} G1H500U                     =       GHK5009 +      GHO2                                   : ARR( 0.800E+11,  2117., 0.0);
+{  3402} G1H3004 +OXYGEN             =       GHD3002 +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{  3403} G1H3004                     =       GD02000 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  6039., 0.0);
+{  3404} GNO5009 +GHO                =       GNK5004 +      GHO2                                   : ARR( 0.910E-11,     0., 0.0);
+{  3405} GNO5009+HV               =       G1O5005 +      GNO2                                   :  0.100E+01*SUN;
+{  3406} GNK5004 +GHO                =       G2N5014                                               : ARR( 0.102E-12,     0., 0.0);
+{  3407} GNK5004 +GHO                =       G2N5015                                               : ARR( 0.172E-12,     0., 0.0);
+{  3408} GNK5004 +GHO                =       GKK5000 +      GNO2                                   : ARR( 0.304E-12,     0., 0.0);
+{  3409} GNK5004 +GHO                =       G2N5016                                               : ARR( 0.335E-13,     0., 0.0);
+{  3410} GNK5004+HV               =       G3K2000 +      G2N3001                                :  0.100E+01*SUN;
+{  3411} GNK5004+HV               =       GK03000 +      G2D2000 +      GNO2                    :  0.100E+01*SUN;
+{  3412} GNK5004+HV               =       G1K5000 +      GNO2                                   :  0.100E+01*SUN;
+{  3413} G2N5014 +GNO                =       G1N5015 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  3414} G2N5014 +GNO                =       GNN500P                                               : ARR( 0.182E-12,  -360., 0.0);
+{  3415} G2N5014 +GHO2               =       GHN501F                                               : ARR( 0.242E-12, -1250., 0.0);
+{  3416} G2N5014 +GNO3               =       G1N5015 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  3417} G2N5014 +MEPERO             =  0.480G1N5015 + 0.260GNK500B + 0.260GND500K                 : ARR( 0.164E-12,  -795., 0.0);
+{  3418} G2N5014 +PERO1              =  0.600G1N5015 + 0.200GNK500B + 0.200GND500K                 : ARR( 0.126E-12,  -850., 0.0);
+{  3419} G2N5014 +PERO2              =  0.560G1N5015 + 0.220GNK500B + 0.220GND500K                 : ARR( 0.471E-13, -1350., 0.0);
+{  3420} G2N5014 +PERO3              =  0.600G1N5015 + 0.200GNK500B + 0.200GND500K                 : ARR( 0.142E-12, -1200., 0.0);
+{  3421} G2N5014 +PERO5              =  0.600G1N5015 + 0.200GNK500B + 0.200GND500K                 : ARR( 0.533E-11,   500., 0.0);
+{  3422} G2N5014 +PERO6              =  0.460G1N5015 + 0.270GNK500B + 0.270GND500K                 : ARR( 0.488E-13, -1250., 0.0);
+{  3423} G2N5014 +PERO9              =  0.800G1N5015 + 0.200GND500K                                : ARR( 0.100E-10,     0., 0.0);
+{  3424} G2N5015 +GNO                =       G1N5016 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  3425} G2N5015 +GNO                =       GNN500w                                               : ARR( 0.182E-12,  -360., 0.0);
+{  3426} G2N5015 +GHO2               =       GHN501S                                               : ARR( 0.242E-12, -1250., 0.0);
+{  3427} G2N5015 +GNO3               =       G1N5016 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  3428} G2N5015 +MEPERO             =  0.340G1N5016 + 0.330GNK500Y + 0.330GNK500Z                 : ARR( 0.565E-13,  -845., 0.0);
+{  3429} G2N5015 +PERO1              =  0.460G1N5016 + 0.270GNK500Y + 0.270GNK500Z                 : ARR( 0.434E-13,  -900., 0.0);
+{  3430} G2N5015 +PERO2              =  0.400G1N5016 + 0.300GNK500Y + 0.300GNK500Z                 : ARR( 0.162E-13, -1400., 0.0);
+{  3431} G2N5015 +PERO3              =  0.460G1N5016 + 0.270GNK500Y + 0.270GNK500Z                 : ARR( 0.488E-13, -1250., 0.0);
+{  3432} G2N5015 +PERO5              =  0.460G1N5016 + 0.270GNK500Y + 0.270GNK500Z                 : ARR( 0.183E-11,   450., 0.0);
+{  3433} G2N5015 +PERO6              =  0.300G1N5016 + 0.350GNK500Y + 0.350GNK500Z                 : ARR( 0.168E-13, -1300., 0.0);
+{  3434} G2N5015 +PERO9              =  0.650G1N5016 + 0.350GNK500Z                                : ARR( 0.100E-10,     0., 0.0);
+{  3435} G2N5016 +GNO                =       G1N5017 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  3436} G2N5016 +GNO                =       GNN500W                                               : ARR( 0.182E-12,  -360., 0.0);
+{  3437} G2N5016 +GHO2               =       GHN501E                                               : ARR( 0.242E-12, -1250., 0.0);
+{  3438} G2N5016 +GNO3               =       G1N5017 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  3439} G2N5016 +MEPERO             =  0.480G1N5017 + 0.260GNK5006 + 0.260GND500L                 : ARR( 0.164E-12,  -795., 0.0);
+{  3440} G2N5016 +PERO1              =  0.600G1N5017 + 0.200GNK5006 + 0.200GND500L                 : ARR( 0.126E-12,  -850., 0.0);
+{  3441} G2N5016 +PERO2              =  0.560G1N5017 + 0.220GNK5006 + 0.220GND500L                 : ARR( 0.471E-13, -1350., 0.0);
+{  3442} G2N5016 +PERO3              =  0.600G1N5017 + 0.200GNK5006 + 0.200GND500L                 : ARR( 0.142E-12, -1200., 0.0);
+{  3443} G2N5016 +PERO5              =  0.600G1N5017 + 0.200GNK5006 + 0.200GND500L                 : ARR( 0.533E-11,   500., 0.0);
+{  3444} G2N5016 +PERO6              =  0.460G1N5017 + 0.270GNK5006 + 0.270GND500L                 : ARR( 0.488E-13, -1250., 0.0);
+{  3445} G2N5016 +PERO9              =  0.800G1N5017 + 0.200GND500L                                : ARR( 0.100E-10,     0., 0.0);
+{  3446} G1N5015                     =       G3N4002 +      GCH2O                                  : ARR( 0.200E+15,  3576., 0.0);
+{  3447} G1N5016                     =       GND3001 +      G3K2000                                : ARR( 0.200E+15,  2923., 0.0);
+{  3448} G1N5017 +OXYGEN             =       GND500L +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{  3449} G1N5017                     =       GDK4000 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7175., 0.0);
+{  3450} G3N4002 +GHO2               =  0.800GGN4002 + 0.200GAN4002 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  3451} G3N4002 +GNO                =       G2N3001 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{  3452} G3N4002 +GNO2               =       GPN4002                                               : ARR( 0.330E-08,     0.,-1.0);
+{  3453} G3N4002 +GNO3               =       G2N3001 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{  3454} G3N4002 +MEPERO             =  0.685G2N3001 + 0.315GAN4002 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  3455} G3N4002 +PERO1              =  0.800G2N3001 + 0.200GAN4002 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  3456} G3N4002 +PERO2              =  0.750G2N3001 + 0.250GAN4002 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  3457} G3N4002 +PERO3              =  0.800G2N3001 + 0.200GAN4002 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  3458} G3N4002 +PERO5              =  0.650G2N3001 + 0.350GAN4002 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  3459} G3N4002 +PERO6              =  0.650G2N3001 + 0.350GAN4002 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  3460} G3N4002 +PERO9              =       G2N3001 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{  3461} GNN5007 +GHO                =       G2N5017                                               : ARR( 0.184E-12,     0., 0.0);
+{  3462} GNN5007 +GHO                =       G2N5018                                               : ARR( 0.253E-12,     0., 0.0);
+{  3463} GNN5007 +GHO                =       G2N5019                                               : ARR( 0.368E-13,     0., 0.0);
+{  3464} GNN5007+HV               =       G1N5008 +      GNO2                                   :  0.100E+01*SUN;
+{  3465} GNN5007+HV               =       G1N500B +      GNO2                                   :  0.100E+01*SUN;
+{  3466} G2N5017 +GNO                =       G1N5018 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  3467} G2N5017 +GNO                =       GNN500K                                               : ARR( 0.182E-12,  -360., 0.0);
+{  3468} G2N5017 +GHO2               =       GHN501T                                               : ARR( 0.242E-12, -1250., 0.0);
+{  3469} G2N5017 +GNO3               =       G1N5018 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  3470} G2N5017 +MEPERO             =  0.480G1N5018 + 0.260GNN5009 + 0.260GNN500x                 : ARR( 0.146E-12,  -445., 0.0);
+{  3471} G2N5017 +PERO1              =  0.600G1N5018 + 0.200GNN5009 + 0.200GNN500x                 : ARR( 0.112E-12,  -500., 0.0);
+{  3472} G2N5017 +PERO2              =  0.560G1N5018 + 0.220GNN5009 + 0.220GNN500x                 : ARR( 0.418E-13, -1000., 0.0);
+{  3473} G2N5017 +PERO3              =  0.600G1N5018 + 0.200GNN5009 + 0.200GNN500x                 : ARR( 0.126E-12,  -850., 0.0);
+{  3474} G2N5017 +PERO5              =  0.600G1N5018 + 0.200GNN5009 + 0.200GNN500x                 : ARR( 0.473E-11,   850., 0.0);
+{  3475} G2N5017 +PERO6              =  0.460G1N5018 + 0.270GNN5009 + 0.270GNN500x                 : ARR( 0.434E-13,  -900., 0.0);
+{  3476} G2N5017 +PERO9              =  0.800G1N5018 + 0.200GNN500x                                : ARR( 0.100E-10,     0., 0.0);
+{  3477} G2N5018 +GNO                =       G1N5019 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  3478} G2N5018 +GNO                =       GNN500t                                               : ARR( 0.182E-12,  -360., 0.0);
+{  3479} G2N5018 +GHO2               =       GHN501U                                               : ARR( 0.242E-12, -1250., 0.0);
+{  3480} G2N5018 +GNO3               =       G1N5019 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  3481} G2N5018 +MEPERO             =  0.340G1N5019 + 0.330GNN500y + 0.330GNN500w                 : ARR( 0.565E-13,  -845., 0.0);
+{  3482} G2N5018 +PERO1              =  0.460G1N5019 + 0.270GNN500y + 0.270GNN500w                 : ARR( 0.434E-13,  -900., 0.0);
+{  3483} G2N5018 +PERO2              =  0.400G1N5019 + 0.300GNN500y + 0.300GNN500w                 : ARR( 0.162E-13, -1400., 0.0);
+{  3484} G2N5018 +PERO3              =  0.460G1N5019 + 0.270GNN500y + 0.270GNN500w                 : ARR( 0.488E-13, -1250., 0.0);
+{  3485} G2N5018 +PERO5              =  0.460G1N5019 + 0.270GNN500y + 0.270GNN500w                 : ARR( 0.183E-11,   450., 0.0);
+{  3486} G2N5018 +PERO6              =  0.300G1N5019 + 0.350GNN500y + 0.350GNN500w                 : ARR( 0.168E-13, -1300., 0.0);
+{  3487} G2N5018 +PERO9              =  0.650G1N5019 + 0.350GNN500w                                : ARR( 0.100E-10,     0., 0.0);
+{  3488} G2N5019 +GNO                =       G1N501A +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  3489} G2N5019 +GNO                =       GNN500Y                                               : ARR( 0.182E-12,  -360., 0.0);
+{  3490} G2N5019 +GHO2               =       GHN501W                                               : ARR( 0.242E-12, -1250., 0.0);
+{  3491} G2N5019 +GNO3               =       G1N501A +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  3492} G2N5019 +MEPERO             =  0.480G1N501A + 0.260GNN500q + 0.260GNN500z                 : ARR( 0.164E-12,  -795., 0.0);
+{  3493} G2N5019 +PERO1              =  0.600G1N501A + 0.200GNN500q + 0.200GNN500z                 : ARR( 0.126E-12,  -850., 0.0);
+{  3494} G2N5019 +PERO2              =  0.560G1N501A + 0.220GNN500q + 0.220GNN500z                 : ARR( 0.471E-13, -1350., 0.0);
+{  3495} G2N5019 +PERO3              =  0.600G1N501A + 0.200GNN500q + 0.200GNN500z                 : ARR( 0.142E-12, -1200., 0.0);
+{  3496} G2N5019 +PERO5              =  0.600G1N501A + 0.200GNN500q + 0.200GNN500z                 : ARR( 0.533E-11,   500., 0.0);
+{  3497} G2N5019 +PERO6              =  0.460G1N501A + 0.270GNN500q + 0.270GNN500z                 : ARR( 0.488E-13, -1250., 0.0);
+{  3498} G2N5019 +PERO9              =  0.800G1N501A + 0.200GNN500z                                : ARR( 0.100E-10,     0., 0.0);
+{  3499} G1N5018 +OXYGEN             =       GNN500x +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{  3500} G1N5018                     =       GNK5009 +      GNO2                                   : ARR( 0.800E+11,  4836., 0.0);
+{  3501} G1N5019                     =       G2N501A                                               : ARR( 0.240E+12,  4897., 0.0);
+{  3502} G1N5019                     =       GND3001 +      GD02000 +      GNO2                    : ARR( 0.200E+15,  5979., 0.0);
+{  3503} G1N501A +OXYGEN             =       GNN500z +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{  3504} G1N501A                     =       G2N501B                                               : ARR( 0.160E+12,  3812., 0.0);
+{  3505} G1N501A                     =       GND4005 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7042., 0.0);
+{  3506} G2N501A +GNO                =       G1N501B +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  3507} G2N501A +GNO                =       GNN5011                                               : ARR( 0.182E-12,  -360., 0.0);
+{  3508} G2N501A +GHO2               =       GHN501X                                               : ARR( 0.242E-12, -1250., 0.0);
+{  3509} G2N501A +GNO3               =       G1N501B +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  3510} G2N501A +MEPERO             =  0.480G1N501B + 0.260GNN5012 + 0.260GNN5013                 : ARR( 0.164E-12,  -795., 0.0);
+{  3511} G2N501A +PERO1              =  0.600G1N501B + 0.200GNN5012 + 0.200GNN5013                 : ARR( 0.126E-12,  -850., 0.0);
+{  3512} G2N501A +PERO2              =  0.560G1N501B + 0.220GNN5012 + 0.220GNN5013                 : ARR( 0.471E-13, -1350., 0.0);
+{  3513} G2N501A +PERO3              =  0.600G1N501B + 0.200GNN5012 + 0.200GNN5013                 : ARR( 0.142E-12, -1200., 0.0);
+{  3514} G2N501A +PERO5              =  0.600G1N501B + 0.200GNN5012 + 0.200GNN5013                 : ARR( 0.533E-11,   500., 0.0);
+{  3515} G2N501A +PERO6              =  0.460G1N501B + 0.270GNN5012 + 0.270GNN5013                 : ARR( 0.488E-13, -1250., 0.0);
+{  3516} G2N501A +PERO9              =  0.800G1N501B + 0.200GNN5013                                : ARR( 0.100E-10,     0., 0.0);
+{  3517} G2N501B +GNO                =       G1N501C +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  3518} G2N501B +GNO                =       GNN5014                                               : ARR( 0.182E-12,  -360., 0.0);
+{  3519} G2N501B +GHO2               =       GHN501Y                                               : ARR( 0.242E-12, -1250., 0.0);
+{  3520} G2N501B +GNO3               =       G1N501C +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  3521} G2N501B +MEPERO             =  0.340G1N501C + 0.330GNN5012 + 0.330GNN5015                 : ARR( 0.565E-13,  -845., 0.0);
+{  3522} G2N501B +PERO1              =  0.460G1N501C + 0.270GNN5012 + 0.270GNN5015                 : ARR( 0.434E-13,  -900., 0.0);
+{  3523} G2N501B +PERO2              =  0.400G1N501C + 0.300GNN5012 + 0.300GNN5015                 : ARR( 0.162E-13, -1400., 0.0);
+{  3524} G2N501B +PERO3              =  0.460G1N501C + 0.270GNN5012 + 0.270GNN5015                 : ARR( 0.488E-13, -1250., 0.0);
+{  3525} G2N501B +PERO5              =  0.460G1N501C + 0.270GNN5012 + 0.270GNN5015                 : ARR( 0.183E-11,   450., 0.0);
+{  3526} G2N501B +PERO6              =  0.300G1N501C + 0.350GNN5012 + 0.350GNN5015                 : ARR( 0.168E-13, -1300., 0.0);
+{  3527} G2N501B +PERO9              =  0.650G1N501C + 0.350GNN5015                                : ARR( 0.100E-10,     0., 0.0);
+{  3528} G1N501B                     =       GNN5015 +      GHO2                                   : ARR( 0.800E+11,  2837., 0.0);
+{  3529} G1N501C                     =       GNN5013 +      GHO2                                   : ARR( 0.160E+12,  3252., 0.0);
+{  3530} G1N501C                     =       GD02000 +      GND3004 +      GNO2                    : ARR( 0.200E+15,  5979., 0.0);
+{  3531} GHN500B +GHO                =       GNK5005 +      GHO                                    : ARR( 0.843E-11,     0., 0.0);
+{  3532} GHN500B +GHO                =       G2H500Q                                               : ARR( 0.118E-11,     0., 0.0);
+{  3533} GHN500B +GHO                =       G2N5008                                               : ARR( 0.194E-11,  -190., 0.0);
+{  3534} GHN500B+HV               =       G1H500W +      GNO2                                   :  0.100E+01*SUN;
+{  3535} GHN500B+HV               =       G1N5008 +      GHO                                    :  0.100E+01*SUN;
+{  3536} G2H500Q +GNO                =       G1H500X +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  3537} G2H500Q +GNO                =       GHN501R                                               : ARR( 0.182E-12,  -360., 0.0);
+{  3538} G2H500Q +GHO2               =       GHH500O                                               : ARR( 0.242E-12, -1250., 0.0);
+{  3539} G2H500Q +GNO3               =       G1H500X +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  3540} G2H500Q +MEPERO             =  0.340G1H500X + 0.330GHN501Z + 0.330GHN501S                 : ARR( 0.565E-13,  -845., 0.0);
+{  3541} G2H500Q +PERO1              =  0.460G1H500X + 0.270GHN501Z + 0.270GHN501S                 : ARR( 0.434E-13,  -900., 0.0);
+{  3542} G2H500Q +PERO2              =  0.400G1H500X + 0.300GHN501Z + 0.300GHN501S                 : ARR( 0.162E-13, -1400., 0.0);
+{  3543} G2H500Q +PERO3              =  0.460G1H500X + 0.270GHN501Z + 0.270GHN501S                 : ARR( 0.488E-13, -1250., 0.0);
+{  3544} G2H500Q +PERO5              =  0.460G1H500X + 0.270GHN501Z + 0.270GHN501S                 : ARR( 0.183E-11,   450., 0.0);
+{  3545} G2H500Q +PERO6              =  0.300G1H500X + 0.350GHN501Z + 0.350GHN501S                 : ARR( 0.168E-13, -1300., 0.0);
+{  3546} G2H500Q +PERO9              =  0.650G1H500X + 0.350GHN501S                                : ARR( 0.100E-10,     0., 0.0);
+{  3547} G1H500W                     =       GD03000 +      GD02000 +      GHO                     : ARR( 0.200E+15,  4945., 0.0);
+{  3548} G1H500X                     =       GND3001 +      GD02000 +      GHO                     : ARR( 0.200E+15,  4440., 0.0);
+{  3549} GNO500A +GHO                =       G2N501C                                               : ARR( 0.131E-11,     0., 0.0);
+{  3550} GNO500A +GHO                =       GNK5005 +      GHO2                                   : ARR( 0.234E-11,     0., 0.0);
+{  3551} GNO500A+HV               =       G1O5008 +      GNO2                                   :  0.100E+01*SUN;
+{  3552} G2N501C +GNO                =       G1N501D +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  3553} G2N501C +GNO                =       GNN500u                                               : ARR( 0.182E-12,  -360., 0.0);
+{  3554} G2N501C +GHO2               =       GHN501a                                               : ARR( 0.242E-12, -1250., 0.0);
+{  3555} G2N501C +GNO3               =       G1N501D +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  3556} G2N501C +MEPERO             =  0.340G1N501D + 0.330GNO500S + 0.330GNK500Y                 : ARR( 0.565E-13,  -845., 0.0);
+{  3557} G2N501C +PERO1              =  0.460G1N501D + 0.270GNO500S + 0.270GNK500Y                 : ARR( 0.434E-13,  -900., 0.0);
+{  3558} G2N501C +PERO2              =  0.400G1N501D + 0.300GNO500S + 0.300GNK500Y                 : ARR( 0.162E-13, -1400., 0.0);
+{  3559} G2N501C +PERO3              =  0.460G1N501D + 0.270GNO500S + 0.270GNK500Y                 : ARR( 0.488E-13, -1250., 0.0);
+{  3560} G2N501C +PERO5              =  0.460G1N501D + 0.270GNO500S + 0.270GNK500Y                 : ARR( 0.183E-11,   450., 0.0);
+{  3561} G2N501C +PERO6              =  0.300G1N501D + 0.350GNO500S + 0.350GNK500Y                 : ARR( 0.168E-13, -1300., 0.0);
+{  3562} G2N501C +PERO9              =  0.650G1N501D + 0.350GNK500Y                                : ARR( 0.100E-10,     0., 0.0);
+{  3563} G1N501D                     =       GND3001 +      GD02000 +      GHO2                    : ARR( 0.200E+15,  3232., 0.0);
+{  3564} GNK5005 +GHO                =       G2N501D                                               : ARR( 0.571E-12,     0., 0.0);
+{  3565} GNK5005 +GHO                =       G2N501E                                               : ARR( 0.753E-12,     0., 0.0);
+{  3566} GNK5005+HV               =       G3K3000 +      GD02000 +      GNO2                    :  0.100E+01*SUN;
+{  3567} GNK5005+HV               =       G1K5004 +      GNO2                                   :  0.100E+01*SUN;
+{  3568} G2N501D +GNO                =       G1N501E +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  3569} G2N501D +GNO                =       GNN500M                                               : ARR( 0.182E-12,  -360., 0.0);
+{  3570} G2N501D +GHO2               =       GHN501b                                               : ARR( 0.242E-12, -1250., 0.0);
+{  3571} G2N501D +GNO3               =       G1N501E +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  3572} G2N501D +MEPERO             =  0.480G1N501E + 0.260GNK500A + 0.260GND500M                 : ARR( 0.146E-12,  -445., 0.0);
+{  3573} G2N501D +PERO1              =  0.600G1N501E + 0.200GNK500A + 0.200GND500M                 : ARR( 0.112E-12,  -500., 0.0);
+{  3574} G2N501D +PERO2              =  0.560G1N501E + 0.220GNK500A + 0.220GND500M                 : ARR( 0.418E-13, -1000., 0.0);
+{  3575} G2N501D +PERO3              =  0.600G1N501E + 0.200GNK500A + 0.200GND500M                 : ARR( 0.126E-12,  -850., 0.0);
+{  3576} G2N501D +PERO5              =  0.600G1N501E + 0.200GNK500A + 0.200GND500M                 : ARR( 0.473E-11,   850., 0.0);
+{  3577} G2N501D +PERO6              =  0.460G1N501E + 0.270GNK500A + 0.270GND500M                 : ARR( 0.434E-13,  -900., 0.0);
+{  3578} G2N501D +PERO9              =  0.800G1N501E + 0.200GND500M                                : ARR( 0.100E-10,     0., 0.0);
+{  3579} G2N501E +GNO                =       G1N501F +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  3580} G2N501E +GNO                =       GNN500v                                               : ARR( 0.182E-12,  -360., 0.0);
+{  3581} G2N501E +GHO2               =       GHN501c                                               : ARR( 0.242E-12, -1250., 0.0);
+{  3582} G2N501E +GNO3               =       G1N501F +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  3583} G2N501E +MEPERO             =  0.340G1N501F + 0.330GNK500a + 0.330GNK500Z                 : ARR( 0.565E-13,  -845., 0.0);
+{  3584} G2N501E +PERO1              =  0.460G1N501F + 0.270GNK500a + 0.270GNK500Z                 : ARR( 0.434E-13,  -900., 0.0);
+{  3585} G2N501E +PERO2              =  0.400G1N501F + 0.300GNK500a + 0.300GNK500Z                 : ARR( 0.162E-13, -1400., 0.0);
+{  3586} G2N501E +PERO3              =  0.460G1N501F + 0.270GNK500a + 0.270GNK500Z                 : ARR( 0.488E-13, -1250., 0.0);
+{  3587} G2N501E +PERO5              =  0.460G1N501F + 0.270GNK500a + 0.270GNK500Z                 : ARR( 0.183E-11,   450., 0.0);
+{  3588} G2N501E +PERO6              =  0.300G1N501F + 0.350GNK500a + 0.350GNK500Z                 : ARR( 0.168E-13, -1300., 0.0);
+{  3589} G2N501E +PERO9              =  0.650G1N501F + 0.350GNK500Z                                : ARR( 0.100E-10,     0., 0.0);
+{  3590} G1N501E +OXYGEN             =       GND500M +      GHO2                                   : ARR( 0.600E-13,   398., 0.0);
+{  3591} G1N501F                     =       G3N3001 +      GD02000                                : ARR( 0.200E+15,  2814., 0.0);
+{  3592} G3N3001 +GHO2               =  0.800GGN3001 + 0.200GAN3001 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  3593} G3N3001 +GNO                =       GD02000 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{  3594} G3N3001 +GNO2               =       GPN3001                                               : ARR( 0.330E-08,     0.,-1.0);
+{  3595} G3N3001 +GNO3               =       GD02000 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{  3596} G3N3001 +MEPERO             =  0.685GD02000 + 0.315GAN3001 + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  3597} G3N3001 +PERO1              =  0.800GD02000 + 0.200GAN3001 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  3598} G3N3001 +PERO2              =  0.750GD02000 + 0.250GAN3001 + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  3599} G3N3001 +PERO3              =  0.800GD02000 + 0.200GAN3001 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  3600} G3N3001 +PERO5              =  0.650GD02000 + 0.350GAN3001 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  3601} G3N3001 +PERO6              =  0.650GD02000 + 0.350GAN3001 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  3602} G3N3001 +PERO9              =       GD02000 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{  3603} GND3001 +GHO                =       G3N3001                                               : ARR( 0.425E-11,     0., 0.0);
+{  3604} GND3001 +GNO3               =       G3N3001 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{  3605} GND3001+HV               =       G1D3001 +      GNO2                                   :  0.100E+01*SUN;
+{  3606} GND3001+HV               =       GD02000 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{  3607} GNN5008 +GHO                =       GNN500W +      GHO2                                   : ARR( 0.900E-11,     0., 0.0);
+{  3608} GNN5008+HV               =       G1N501G +      GNO2                                   :  0.100E+01*SUN;
+{  3609} GNN5008+HV               =       G1N5009 +      GNO2                                   :  0.100E+01*SUN;
+{  3610} G1N501G                     =       G2N501F                                               : ARR( 0.240E+12,  4177., 0.0);
+{  3611} G1N501G                     =       G2O3000 +      GND2000                                : ARR( 0.200E+15,  6983., 0.0);
+{  3612} G2N501F +GNO                =       G1N501H +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  3613} G2N501F +GNO                =       GNN500n                                               : ARR( 0.182E-12,  -360., 0.0);
+{  3614} G2N501F +GHO2               =       GHN501A                                               : ARR( 0.242E-12, -1250., 0.0);
+{  3615} G2N501F +GNO3               =       G1N501H +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  3616} G2N501F +MEPERO             =  0.480G1N501H + 0.260GNO500G + 0.260GND500D                 : ARR( 0.164E-12,  -795., 0.0);
+{  3617} G2N501F +PERO1              =  0.600G1N501H + 0.200GNO500G + 0.200GND500D                 : ARR( 0.126E-12,  -850., 0.0);
+{  3618} G2N501F +PERO2              =  0.560G1N501H + 0.220GNO500G + 0.220GND500D                 : ARR( 0.471E-13, -1350., 0.0);
+{  3619} G2N501F +PERO3              =  0.600G1N501H + 0.200GNO500G + 0.200GND500D                 : ARR( 0.142E-12, -1200., 0.0);
+{  3620} G2N501F +PERO5              =  0.600G1N501H + 0.200GNO500G + 0.200GND500D                 : ARR( 0.533E-11,   500., 0.0);
+{  3621} G2N501F +PERO6              =  0.460G1N501H + 0.270GNO500G + 0.270GND500D                 : ARR( 0.488E-13, -1250., 0.0);
+{  3622} G2N501F +PERO9              =  0.800G1N501H + 0.200GND500D                                : ARR( 0.100E-10,     0., 0.0);
+{  3623} G1N501H                     =       GNK500P +      GHO2                                   : ARR( 0.800E+11,  2744., 0.0);
+{  3624} G1N501H                     =       GND4003 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4799., 0.0);
+{  3625} GHN500C +GHO                =       GHN501E +      GHO2                                   : ARR( 0.877E-11,     0., 0.0);
+{  3626} GHN500C +GHO                =       GND5004 +      GHO                                    : ARR( 0.337E-11,     0., 0.0);
+{  3627} GHN500C +GHO                =       G2N5009                                               : ARR( 0.199E-11,  -190., 0.0);
+{  3628} GHN500C+HV               =       G1H500Y +      GNO2                                   :  0.100E+01*SUN;
+{  3629} GHN500C+HV               =       G1N5009 +      GHO                                    :  0.100E+01*SUN;
+{  3630} G1H500Y                     =       G2H500R                                               : ARR( 0.240E+12,  4177., 0.0);
+{  3631} G1H500Y                     =       G2O3000 +      GHD2000                                : ARR( 0.200E+15,  6985., 0.0);
+{  3632} G1H500Y                     =       GDO4001 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  7140., 0.0);
+{  3633} G2H500R +GNO                =       G1H500Z +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  3634} G2H500R +GNO                =       GHN501A                                               : ARR( 0.182E-12,  -360., 0.0);
+{  3635} G2H500R +GHO2               =       GHH500P                                               : ARR( 0.242E-12, -1250., 0.0);
+{  3636} G2H500R +GNO3               =       G1H500Z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  3637} G2H500R +MEPERO             =  0.480G1H500Z + 0.260GHO500E + 0.260GHD5007                 : ARR( 0.164E-12,  -795., 0.0);
+{  3638} G2H500R +PERO1              =  0.600G1H500Z + 0.200GHO500E + 0.200GHD5007                 : ARR( 0.126E-12,  -850., 0.0);
+{  3639} G2H500R +PERO2              =  0.560G1H500Z + 0.220GHO500E + 0.220GHD5007                 : ARR( 0.471E-13, -1350., 0.0);
+{  3640} G2H500R +PERO3              =  0.600G1H500Z + 0.200GHO500E + 0.200GHD5007                 : ARR( 0.142E-12, -1200., 0.0);
+{  3641} G2H500R +PERO5              =  0.600G1H500Z + 0.200GHO500E + 0.200GHD5007                 : ARR( 0.533E-11,   500., 0.0);
+{  3642} G2H500R +PERO6              =  0.460G1H500Z + 0.270GHO500E + 0.270GHD5007                 : ARR( 0.488E-13, -1250., 0.0);
+{  3643} G2H500R +PERO9              =  0.800G1H500Z + 0.200GHD5007                                : ARR( 0.100E-10,     0., 0.0);
+{  3644} G1H500Z                     =       GHK500C +      GHO2                                   : ARR( 0.800E+11,  2025., 0.0);
+{  3645} G1H500Z                     =       GHD4003 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4799., 0.0);
+{  3646} GNO500B +GHO                =       GNK5006 +      GHO2                                   : ARR( 0.915E-11,     0., 0.0);
+{  3647} GNO500B +GHO                =       GND5004 +      GHO2                                   : ARR( 0.879E-12,     0., 0.0);
+{  3648} GNO500B+HV               =       G1O500A +      GNO2                                   :  0.100E+01*SUN;
+{  3649} GND5004 +GHO                =       GND500L +      GHO2                                   : ARR( 0.882E-11,     0., 0.0);
+{  3650} GND5004 +GHO                =       G3N5004                                               : ARR( 0.437E-11,     0., 0.0);
+{  3651} GND5004 +GNO3               =       G3N5004 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{  3652} GND5004+HV               =       G1D5008 +      GNO2                                   :  0.100E+01*SUN;
+{  3653} GND5004+HV               =       GDO4001 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{  3654} GND5004+HV               =       GK03000 +      GND2000                                :  0.100E+01*SUN;
+{  3655} G3N5004 +GHO2               =  0.800GGN5005 + 0.200GAN5005 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  3656} G3N5004 +GNO                =       GDO4001 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{  3657} G3N5004 +GNO2               =       GPN5005                                               : ARR( 0.330E-08,     0.,-1.0);
+{  3658} G3N5004 +GNO3               =       GDO4001 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{  3659} G3N5004 +MEPERO             =  0.685GDO4001 + 0.315GAN5005 + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  3660} G3N5004 +PERO1              =  0.800GDO4001 + 0.200GAN5005 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  3661} G3N5004 +PERO2              =  0.750GDO4001 + 0.250GAN5005 + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  3662} G3N5004 +PERO3              =  0.800GDO4001 + 0.200GAN5005 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  3663} G3N5004 +PERO5              =  0.650GDO4001 + 0.350GAN5005 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  3664} G3N5004 +PERO6              =  0.650GDO4001 + 0.350GAN5005 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  3665} G3N5004 +PERO9              =       GDO4001 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{  3666} G1D5008                     =       G2D5006                                               : ARR( 0.240E+12,  4177., 0.0);
+{  3667} G1D5008                     =       GDO4001 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5437., 0.0);
+{  3668} G2D5006 +GNO                =       G1D5009 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  3669} G2D5006 +GNO                =       GND500D                                               : ARR( 0.182E-12,  -360., 0.0);
+{  3670} G2D5006 +GHO2               =       GHD5007                                               : ARR( 0.242E-12, -1250., 0.0);
+{  3671} G2D5006 +GNO3               =       G1D5009 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  3672} G2D5006 +MEPERO             =  0.480G1D5009 + 0.260GDO5004 + 0.260GDD5001                 : ARR( 0.164E-12,  -795., 0.0);
+{  3673} G2D5006 +PERO1              =  0.600G1D5009 + 0.200GDO5004 + 0.200GDD5001                 : ARR( 0.126E-12,  -850., 0.0);
+{  3674} G2D5006 +PERO2              =  0.560G1D5009 + 0.220GDO5004 + 0.220GDD5001                 : ARR( 0.471E-13, -1350., 0.0);
+{  3675} G2D5006 +PERO3              =  0.600G1D5009 + 0.200GDO5004 + 0.200GDD5001                 : ARR( 0.142E-12, -1200., 0.0);
+{  3676} G2D5006 +PERO5              =  0.600G1D5009 + 0.200GDO5004 + 0.200GDD5001                 : ARR( 0.533E-11,   500., 0.0);
+{  3677} G2D5006 +PERO6              =  0.460G1D5009 + 0.270GDO5004 + 0.270GDD5001                 : ARR( 0.488E-13, -1250., 0.0);
+{  3678} G2D5006 +PERO9              =  0.800G1D5009 + 0.200GDD5001                                : ARR( 0.100E-10,     0., 0.0);
+{  3679} G1D5009                     =       GDK5005 +      GHO2                                   : ARR( 0.800E+11,  2246., 0.0);
+{  3680} G1D5009                     =       GDD4001 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4799., 0.0);
+{  3681} GNN3001 +GHO                =       G2N3004                                               : ARR( 0.173E-12,     0., 0.0);
+{  3682} GNN3001 +GHO                =       GNK3000 +      GNO2                                   : ARR( 0.991E-13,     0., 0.0);
+{  3683} GNN3001 +GHO                =       GND3001 +      GNO2                                   : ARR( 0.475E-13,     0., 0.0);
+{  3684} GNN3001+HV               =       G1N3002 +      GNO2                                   :  0.100E+01*SUN;
+{  3685} GNN3001+HV               =       G1N3001 +      GNO2                                   :  0.100E+01*SUN;
+{  3686} GHN3001 +GHO                =       GND3001 +      GHO                                    : ARR( 0.328E-11,     0., 0.0);
+{  3687} GHN3001 +GHO                =       G2N3001                                               : ARR( 0.194E-11,  -190., 0.0);
+{  3688} GHN3001+HV               =       G1H3000 +      GNO2                                   :  0.100E+01*SUN;
+{  3689} GHN3001+HV               =       G1N3001 +      GHO                                    :  0.100E+01*SUN;
+{  3690} GNO3001 +GHO                =       GKO3000 +      GNO2                                   : ARR( 0.988E-13,     0., 0.0);
+{  3691} GNO3001 +GHO                =       GND3001 +      GHO2                                   : ARR( 0.830E-12,     0., 0.0);
+{  3692} GNO3001 +GHO                =       G1N3001                                               : ARR( 0.217E-17,    85., 2.0);
+{  3693} GNO3001+HV               =       G1O3002 +      GNO2                                   :  0.100E+01*SUN;
+{  3694} GNK5006 +GHO                =       G2N501G                                               : ARR( 0.102E-12,     0., 0.0);
+{  3695} GNK5006 +GHO                =       G2N501H                                               : ARR( 0.172E-12,     0., 0.0);
+{  3696} GNK5006 +GHO                =       GKK5003 +      GNO2                                   : ARR( 0.373E-12,     0., 0.0);
+{  3697} GNK5006 +GHO                =       GND500L +      GHO2                                   : ARR( 0.804E-12,     0., 0.0);
+{  3698} GNK5006 +GHO                =       G1N5017                                               : ARR( 0.210E-17,    85., 2.0);
+{  3699} GNK5006+HV               =       G3K2000 +      G2N3008                                :  0.100E+01*SUN;
+{  3700} GNK5006+HV               =       GK03000 +      GND2000                                :  0.100E+01*SUN;
+{  3701} GNK5006+HV               =       G1K5007 +      GNO2                                   :  0.100E+01*SUN;
+{  3702} G2N501G +GNO                =       G1N501I +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  3703} G2N501G +GNO                =       GNN500T                                               : ARR( 0.182E-12,  -360., 0.0);
+{  3704} G2N501G +GHO2               =       GHN501H                                               : ARR( 0.242E-12, -1250., 0.0);
+{  3705} G2N501G +GNO3               =       G1N501I +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  3706} G2N501G +MEPERO             =  0.480G1N501I + 0.260GNK500N + 0.260GND500N                 : ARR( 0.164E-12,  -795., 0.0);
+{  3707} G2N501G +PERO1              =  0.600G1N501I + 0.200GNK500N + 0.200GND500N                 : ARR( 0.126E-12,  -850., 0.0);
+{  3708} G2N501G +PERO2              =  0.560G1N501I + 0.220GNK500N + 0.220GND500N                 : ARR( 0.471E-13, -1350., 0.0);
+{  3709} G2N501G +PERO3              =  0.600G1N501I + 0.200GNK500N + 0.200GND500N                 : ARR( 0.142E-12, -1200., 0.0);
+{  3710} G2N501G +PERO5              =  0.600G1N501I + 0.200GNK500N + 0.200GND500N                 : ARR( 0.533E-11,   500., 0.0);
+{  3711} G2N501G +PERO6              =  0.460G1N501I + 0.270GNK500N + 0.270GND500N                 : ARR( 0.488E-13, -1250., 0.0);
+{  3712} G2N501G +PERO9              =  0.800G1N501I + 0.200GND500N                                : ARR( 0.100E-10,     0., 0.0);
+{  3713} G2N501H +GNO                =       G1N501J +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  3714} G2N501H +GNO                =       GNN5015                                               : ARR( 0.182E-12,  -360., 0.0);
+{  3715} G2N501H +GHO2               =       GHN501d                                               : ARR( 0.242E-12, -1250., 0.0);
+{  3716} G2N501H +GNO3               =       G1N501J +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  3717} G2N501H +MEPERO             =  0.340G1N501J + 0.330GNK500b + 0.330GNK500c                 : ARR( 0.565E-13,  -845., 0.0);
+{  3718} G2N501H +PERO1              =  0.460G1N501J + 0.270GNK500b + 0.270GNK500c                 : ARR( 0.434E-13,  -900., 0.0);
+{  3719} G2N501H +PERO2              =  0.400G1N501J + 0.300GNK500b + 0.300GNK500c                 : ARR( 0.162E-13, -1400., 0.0);
+{  3720} G2N501H +PERO3              =  0.460G1N501J + 0.270GNK500b + 0.270GNK500c                 : ARR( 0.488E-13, -1250., 0.0);
+{  3721} G2N501H +PERO5              =  0.460G1N501J + 0.270GNK500b + 0.270GNK500c                 : ARR( 0.183E-11,   450., 0.0);
+{  3722} G2N501H +PERO6              =  0.300G1N501J + 0.350GNK500b + 0.350GNK500c                 : ARR( 0.168E-13, -1300., 0.0);
+{  3723} G2N501H +PERO9              =  0.650G1N501J + 0.350GNK500c                                : ARR( 0.100E-10,     0., 0.0);
+{  3724} G2N3008 +GNO                =       G1N3008 +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{  3725} G2N3008 +GNO                =       GNN3004                                               : ARR( 0.622E-13,  -360., 0.0);
+{  3726} G2N3008 +GHO2               =       GHN3009                                               : ARR( 0.179E-12, -1250., 0.0);
+{  3727} G2N3008 +GNO3               =       G1N3008 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  3728} G2N3008 +MEPERO             =  0.480G1N3008 + 0.260GNO3004 + 0.260GND3004                 : ARR( 0.164E-12,  -795., 0.0);
+{  3729} G2N3008 +PERO1              =  0.600G1N3008 + 0.200GNO3004 + 0.200GND3004                 : ARR( 0.126E-12,  -850., 0.0);
+{  3730} G2N3008 +PERO2              =  0.560G1N3008 + 0.220GNO3004 + 0.220GND3004                 : ARR( 0.471E-13, -1350., 0.0);
+{  3731} G2N3008 +PERO3              =  0.600G1N3008 + 0.200GNO3004 + 0.200GND3004                 : ARR( 0.142E-12, -1200., 0.0);
+{  3732} G2N3008 +PERO5              =  0.600G1N3008 + 0.200GNO3004 + 0.200GND3004                 : ARR( 0.533E-11,   500., 0.0);
+{  3733} G2N3008 +PERO6              =  0.460G1N3008 + 0.270GNO3004 + 0.270GND3004                 : ARR( 0.488E-13, -1250., 0.0);
+{  3734} G2N3008 +PERO9              =  0.800G1N3008 + 0.200GND3004                                : ARR( 0.100E-10,     0., 0.0);
+{  3735} G1N501I                     =       G3N4003 +      GCH2O                                  : ARR( 0.200E+15,  3576., 0.0);
+{  3736} G1N501J                     =       G3K2000 +      GND3004                                : ARR( 0.200E+15,  2923., 0.0);
+{  3737} G1N3008 +OXYGEN             =       GND3004 +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{  3738} G1N3008                     =       GDO2000 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7190., 0.0);
+{  3739} G3N4003 +GHO2               =  0.800GGN4003 + 0.200GAN4003 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  3740} G3N4003 +GNO                =       G2N3008 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{  3741} G3N4003 +GNO2               =       GPN4003                                               : ARR( 0.330E-08,     0.,-1.0);
+{  3742} G3N4003 +GNO3               =       G2N3008 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{  3743} G3N4003 +MEPERO             =  0.685G2N3008 + 0.315GAN4003 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  3744} G3N4003 +PERO1              =  0.800G2N3008 + 0.200GAN4003 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  3745} G3N4003 +PERO2              =  0.750G2N3008 + 0.250GAN4003 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  3746} G3N4003 +PERO3              =  0.800G2N3008 + 0.200GAN4003 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  3747} G3N4003 +PERO5              =  0.650G2N3008 + 0.350GAN4003 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  3748} G3N4003 +PERO6              =  0.650G2N3008 + 0.350GAN4003 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  3749} G3N4003 +PERO9              =       G2N3008 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{  3750} GHO5008 +GHO                =       GHK5003 +      GHO2                                   : ARR( 0.872E-11,     0., 0.0);
+{  3751} GHO5008 +GHO                =       GKO5004 +      GHO                                    : ARR( 0.349E-10,     0., 0.0);
+{  3752} GHO5008 +GHO                =       G2O5005                                               : ARR( 0.198E-11,  -190., 0.0);
+{  3753} GHO5008+HV               =       G1O5005 +      GHO                                    :  0.100E+01*SUN;
+{  3754} GOO5004 +GHO                =       GKO5004 +      GHO2                                   : ARR( 0.173E-10,     0., 0.0);
+{  3755} GOO5004 +GHO                =       G2O500M                                               : ARR( 0.146E-11,     0., 0.0);
+{  3756} G2O500M +GNO                =       G1O500N +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  3757} G2O500M +GNO                =       GNO500T                                               : ARR( 0.182E-12,  -360., 0.0);
+{  3758} G2O500M +GHO2               =       GHO500M                                               : ARR( 0.242E-12, -1250., 0.0);
+{  3759} G2O500M +GNO3               =       G1O500N +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  3760} G2O500M +MEPERO             =  0.340G1O500N + 0.330GOO500B + 0.330GKO500G                 : ARR( 0.565E-13,  -845., 0.0);
+{  3761} G2O500M +PERO1              =  0.460G1O500N + 0.270GOO500B + 0.270GKO500G                 : ARR( 0.434E-13,  -900., 0.0);
+{  3762} G2O500M +PERO2              =  0.400G1O500N + 0.300GOO500B + 0.300GKO500G                 : ARR( 0.162E-13, -1400., 0.0);
+{  3763} G2O500M +PERO3              =  0.460G1O500N + 0.270GOO500B + 0.270GKO500G                 : ARR( 0.488E-13, -1250., 0.0);
+{  3764} G2O500M +PERO5              =  0.460G1O500N + 0.270GOO500B + 0.270GKO500G                 : ARR( 0.183E-11,   450., 0.0);
+{  3765} G2O500M +PERO6              =  0.300G1O500N + 0.350GOO500B + 0.350GKO500G                 : ARR( 0.168E-13, -1300., 0.0);
+{  3766} G2O500M +PERO9              =  0.650G1O500N + 0.350GKO500G                                : ARR( 0.100E-10,     0., 0.0);
+{  3767} G1O500N                     =       GD02000 +      GDO3001 +      GHO2                    : ARR( 0.400E+15,  3962., 0.0);
+{  3768} GKO5004 +GHO                =       GKK5000 +      GHO2                                   : ARR( 0.278E-10,     0., 0.0);
+{  3769} GKO5004+HV               =       G3K4000 +      GCH3O2                                 :  0.100E+01*SUN;
+{  3770} GKO5004+HV               =       GD02000 +      GK03000                                :  0.100E+01*SUN;
+{  3771} GNO500C +GHO                =       G2N501I                                               : ARR( 0.176E-12,     0., 0.0);
+{  3772} GNO500C +GHO                =       GNK5007 +      GHO2                                   : ARR( 0.176E-11,     0., 0.0);
+{  3773} GNO500C +GHO                =       G2N501J                                               : ARR( 0.241E-12,     0., 0.0);
+{  3774} GNO500C +GHO                =       G2N500D                                               : ARR( 0.176E-12,     0., 0.0);
+{  3775} GNO500C +GHO                =       G1N500B                                               : ARR( 0.220E-17,    85., 2.0);
+{  3776} GNO500C+HV               =       G1O5006 +      GNO2                                   :  0.100E+01*SUN;
+{  3777} G2N501I +GNO                =       G1N501K +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  3778} G2N501I +GNO                =       GNN500Z                                               : ARR( 0.182E-12,  -360., 0.0);
+{  3779} G2N501I +GHO2               =       GHN501e                                               : ARR( 0.242E-12, -1250., 0.0);
+{  3780} G2N501I +GNO3               =       G1N501K +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  3781} G2N501I +MEPERO             =  0.480G1N501K + 0.260GNO500O + 0.260GND500O                 : ARR( 0.164E-12,  -795., 0.0);
+{  3782} G2N501I +PERO1              =  0.600G1N501K + 0.200GNO500O + 0.200GND500O                 : ARR( 0.126E-12,  -850., 0.0);
+{  3783} G2N501I +PERO2              =  0.560G1N501K + 0.220GNO500O + 0.220GND500O                 : ARR( 0.471E-13, -1350., 0.0);
+{  3784} G2N501I +PERO3              =  0.600G1N501K + 0.200GNO500O + 0.200GND500O                 : ARR( 0.142E-12, -1200., 0.0);
+{  3785} G2N501I +PERO5              =  0.600G1N501K + 0.200GNO500O + 0.200GND500O                 : ARR( 0.533E-11,   500., 0.0);
+{  3786} G2N501I +PERO6              =  0.460G1N501K + 0.270GNO500O + 0.270GND500O                 : ARR( 0.488E-13, -1250., 0.0);
+{  3787} G2N501I +PERO9              =  0.800G1N501K + 0.200GND500O                                : ARR( 0.100E-10,     0., 0.0);
+{  3788} G2N501J +GNO                =       G1N501L +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  3789} G2N501J +GNO                =       GNN500y                                               : ARR( 0.182E-12,  -360., 0.0);
+{  3790} G2N501J +GHO2               =       GHN501f                                               : ARR( 0.242E-12, -1250., 0.0);
+{  3791} G2N501J +GNO3               =       G1N501L +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  3792} G2N501J +MEPERO             =  0.340G1N501L + 0.330GNO500T + 0.330GNK500d                 : ARR( 0.565E-13,  -845., 0.0);
+{  3793} G2N501J +PERO1              =  0.460G1N501L + 0.270GNO500T + 0.270GNK500d                 : ARR( 0.434E-13,  -900., 0.0);
+{  3794} G2N501J +PERO2              =  0.400G1N501L + 0.300GNO500T + 0.300GNK500d                 : ARR( 0.162E-13, -1400., 0.0);
+{  3795} G2N501J +PERO3              =  0.460G1N501L + 0.270GNO500T + 0.270GNK500d                 : ARR( 0.488E-13, -1250., 0.0);
+{  3796} G2N501J +PERO5              =  0.460G1N501L + 0.270GNO500T + 0.270GNK500d                 : ARR( 0.183E-11,   450., 0.0);
+{  3797} G2N501J +PERO6              =  0.300G1N501L + 0.350GNO500T + 0.350GNK500d                 : ARR( 0.168E-13, -1300., 0.0);
+{  3798} G2N501J +PERO9              =  0.650G1N501L + 0.350GNK500d                                : ARR( 0.100E-10,     0., 0.0);
+{  3799} G1N501K                     =       GND4005 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{  3800} G1N501L                     =       G2N501K                                               : ARR( 0.240E+12,  4177., 0.0);
+{  3801} G1N501L                     =       GDO3001 +      GD02000 +      GNO2                    : ARR( 0.200E+15,  5979., 0.0);
+{  3802} G2N501K +GNO                =       G1N501M +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  3803} G2N501K +GNO                =       GNN5016                                               : ARR( 0.182E-12,  -360., 0.0);
+{  3804} G2N501K +GHO2               =       GHN501g                                               : ARR( 0.242E-12, -1250., 0.0);
+{  3805} G2N501K +GNO3               =       G1N501M +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  3806} G2N501K +MEPERO             =  0.480G1N501M + 0.260GNO500U + 0.260GND500P                 : ARR( 0.164E-12,  -795., 0.0);
+{  3807} G2N501K +PERO1              =  0.600G1N501M + 0.200GNO500U + 0.200GND500P                 : ARR( 0.126E-12,  -850., 0.0);
+{  3808} G2N501K +PERO2              =  0.560G1N501M + 0.220GNO500U + 0.220GND500P                 : ARR( 0.471E-13, -1350., 0.0);
+{  3809} G2N501K +PERO3              =  0.600G1N501M + 0.200GNO500U + 0.200GND500P                 : ARR( 0.142E-12, -1200., 0.0);
+{  3810} G2N501K +PERO5              =  0.600G1N501M + 0.200GNO500U + 0.200GND500P                 : ARR( 0.533E-11,   500., 0.0);
+{  3811} G2N501K +PERO6              =  0.460G1N501M + 0.270GNO500U + 0.270GND500P                 : ARR( 0.488E-13, -1250., 0.0);
+{  3812} G2N501K +PERO9              =  0.800G1N501M + 0.200GND500P                                : ARR( 0.100E-10,     0., 0.0);
+{  3813} G1N501M                     =       GNK500e +      GHO2                                   : ARR( 0.800E+11,  2837., 0.0);
+{  3814} G1N501M                     =       GND4007 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{  3815} GHO5009 +GHO                =       GHK5004 +      GHO2                                   : ARR( 0.863E-11,     0., 0.0);
+{  3816} GHO5009 +GHO                =       GKO5005 +      GHO                                    : ARR( 0.425E-10,     0., 0.0);
+{  3817} GHO5009 +GHO                =       G2O5006                                               : ARR( 0.196E-11,  -190., 0.0);
+{  3818} GHO5009+HV               =       G1O5006 +      GHO                                    :  0.100E+01*SUN;
+{  3819} GOO5005 +GHO                =       G2O500N                                               : ARR( 0.118E-11,     0., 0.0);
+{  3820} GOO5005 +GHO                =       GKO5005 +      GHO2                                   : ARR( 0.106E-10,     0., 0.0);
+{  3821} GOO5005 +GHO                =       GKO5007 +      GHO2                                   : ARR( 0.864E-11,     0., 0.0);
+{  3822} G2O500N +GNO                =       G1O500O +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  3823} G2O500N +GNO                =       GNO500S                                               : ARR( 0.182E-12,  -360., 0.0);
+{  3824} G2O500N +GHO2               =       GHO500N                                               : ARR( 0.242E-12, -1250., 0.0);
+{  3825} G2O500N +GNO3               =       G1O500O +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  3826} G2O500N +MEPERO             =  0.340G1O500O + 0.330GOO500B + 0.330GKO500H                 : ARR( 0.565E-13,  -845., 0.0);
+{  3827} G2O500N +PERO1              =  0.460G1O500O + 0.270GOO500B + 0.270GKO500H                 : ARR( 0.434E-13,  -900., 0.0);
+{  3828} G2O500N +PERO2              =  0.400G1O500O + 0.300GOO500B + 0.300GKO500H                 : ARR( 0.162E-13, -1400., 0.0);
+{  3829} G2O500N +PERO3              =  0.460G1O500O + 0.270GOO500B + 0.270GKO500H                 : ARR( 0.488E-13, -1250., 0.0);
+{  3830} G2O500N +PERO5              =  0.460G1O500O + 0.270GOO500B + 0.270GKO500H                 : ARR( 0.183E-11,   450., 0.0);
+{  3831} G2O500N +PERO6              =  0.300G1O500O + 0.350GOO500B + 0.350GKO500H                 : ARR( 0.168E-13, -1300., 0.0);
+{  3832} G2O500N +PERO9              =  0.650G1O500O + 0.350GKO500H                                : ARR( 0.100E-10,     0., 0.0);
+{  3833} G1O500O                     =       GDO3001 +      GD02000 +      GHO2                    : ARR( 0.200E+15,  3232., 0.0);
+{  3834} GKO5005 +GHO                =       G2K500F                                               : ARR( 0.542E-12,     0., 0.0);
+{  3835} GKO5005 +GHO                =       GKK5001 +      GHO2                                   : ARR( 0.521E-11,     0., 0.0);
+{  3836} GKO5005 +GHO                =       G2K500G                                               : ARR( 0.715E-12,     0., 0.0);
+{  3837} GKO5005 +GHO                =       G2K500H                                               : ARR( 0.542E-12,     0., 0.0);
+{  3838} GKO5005+HV               =       G3K3002 +      G202000                                :  0.100E+01*SUN;
+{  3839} G2K500F +GNO                =       G1K500G +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  3840} G2K500F +GNO                =       GNK500K                                               : ARR( 0.182E-12,  -360., 0.0);
+{  3841} G2K500F +GHO2               =       GHK500K                                               : ARR( 0.242E-12, -1250., 0.0);
+{  3842} G2K500F +GNO3               =       G1K500G +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  3843} G2K500F +MEPERO             =  0.480G1K500G + 0.260GKO500D + 0.260GDK5009                 : ARR( 0.164E-12,  -795., 0.0);
+{  3844} G2K500F +PERO1              =  0.600G1K500G + 0.200GKO500D + 0.200GDK5009                 : ARR( 0.126E-12,  -850., 0.0);
+{  3845} G2K500F +PERO2              =  0.560G1K500G + 0.220GKO500D + 0.220GDK5009                 : ARR( 0.471E-13, -1350., 0.0);
+{  3846} G2K500F +PERO3              =  0.600G1K500G + 0.200GKO500D + 0.200GDK5009                 : ARR( 0.142E-12, -1200., 0.0);
+{  3847} G2K500F +PERO5              =  0.600G1K500G + 0.200GKO500D + 0.200GDK5009                 : ARR( 0.533E-11,   500., 0.0);
+{  3848} G2K500F +PERO6              =  0.460G1K500G + 0.270GKO500D + 0.270GDK5009                 : ARR( 0.488E-13, -1250., 0.0);
+{  3849} G2K500F +PERO9              =  0.800G1K500G + 0.200GDK5009                                : ARR( 0.100E-10,     0., 0.0);
+{  3850} G2K500G +GNO                =       G1K500H +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  3851} G2K500G +GNO                =       GNK500a                                               : ARR( 0.182E-12,  -360., 0.0);
+{  3852} G2K500G +GHO2               =       GHK500L                                               : ARR( 0.242E-12, -1250., 0.0);
+{  3853} G2K500G +GNO3               =       G1K500H +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  3854} G2K500G +MEPERO             =  0.340G1K500H + 0.330GKO500G + 0.330GKK5007                 : ARR( 0.565E-13,  -845., 0.0);
+{  3855} G2K500G +PERO1              =  0.460G1K500H + 0.270GKO500G + 0.270GKK5007                 : ARR( 0.434E-13,  -900., 0.0);
+{  3856} G2K500G +PERO2              =  0.400G1K500H + 0.300GKO500G + 0.300GKK5007                 : ARR( 0.162E-13, -1400., 0.0);
+{  3857} G2K500G +PERO3              =  0.460G1K500H + 0.270GKO500G + 0.270GKK5007                 : ARR( 0.488E-13, -1250., 0.0);
+{  3858} G2K500G +PERO5              =  0.460G1K500H + 0.270GKO500G + 0.270GKK5007                 : ARR( 0.183E-11,   450., 0.0);
+{  3859} G2K500G +PERO6              =  0.300G1K500H + 0.350GKO500G + 0.350GKK5007                 : ARR( 0.168E-13, -1300., 0.0);
+{  3860} G2K500G +PERO9              =  0.650G1K500H + 0.350GKK5007                                : ARR( 0.100E-10,     0., 0.0);
+{  3861} G2K500H +GNO                =       G1K500I +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  3862} G2K500H +GNO                =       GNK500C                                               : ARR( 0.182E-12,  -360., 0.0);
+{  3863} G2K500H +GHO2               =       GHK500M                                               : ARR( 0.242E-12, -1250., 0.0);
+{  3864} G2K500H +GNO3               =       G1K500I +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  3865} G2K500H +MEPERO             =  0.480G1K500I + 0.260GKO5009 + 0.260GDK5003                 : ARR( 0.146E-12,  -445., 0.0);
+{  3866} G2K500H +PERO1              =  0.600G1K500I + 0.200GKO5009 + 0.200GDK5003                 : ARR( 0.112E-12,  -500., 0.0);
+{  3867} G2K500H +PERO2              =  0.560G1K500I + 0.220GKO5009 + 0.220GDK5003                 : ARR( 0.418E-13, -1000., 0.0);
+{  3868} G2K500H +PERO3              =  0.600G1K500I + 0.200GKO5009 + 0.200GDK5003                 : ARR( 0.126E-12,  -850., 0.0);
+{  3869} G2K500H +PERO5              =  0.600G1K500I + 0.200GKO5009 + 0.200GDK5003                 : ARR( 0.473E-11,   850., 0.0);
+{  3870} G2K500H +PERO6              =  0.460G1K500I + 0.270GKO5009 + 0.270GDK5003                 : ARR( 0.434E-13,  -900., 0.0);
+{  3871} G2K500H +PERO9              =  0.800G1K500I + 0.200GDK5003                                : ARR( 0.100E-10,     0., 0.0);
+{  3872} G3K3002 +GHO2               =  0.800GGO3001 + 0.200GAO3001 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  3873} G3K3002 +GNO                =       GD02000 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{  3874} G3K3002 +GNO2               =       GPO3001                                               : ARR( 0.330E-08,     0.,-1.0);
+{  3875} G3K3002 +GNO3               =       GD02000 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{  3876} G3K3002 +MEPERO             =  0.685GD02000 + 0.315GAO3001 + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  3877} G3K3002 +PERO1              =  0.800GD02000 + 0.200GAO3001 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  3878} G3K3002 +PERO2              =  0.750GD02000 + 0.250GAO3001 + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  3879} G3K3002 +PERO3              =  0.800GD02000 + 0.200GAO3001 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  3880} G3K3002 +PERO5              =  0.650GD02000 + 0.350GAO3001 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  3881} G3K3002 +PERO6              =  0.650GD02000 + 0.350GAO3001 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  3882} G3K3002 +PERO9              =       GD02000 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{  3883} G1K500G                     =       GDK4002 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4576., 0.0);
+{  3884} G1K500H                     =       G3K3002 +      GD02000                                : ARR( 0.200E+15,  2777., 0.0);
+{  3885} G1K500I +OXYGEN             =       GDK5003 +      GHO2                                   : ARR( 0.600E-13,   398., 0.0);
+{  3886} G1K500I                     =       GKK5002 +      GHO2                                   : ARR( 0.800E+11,  4100., 0.0);
+{  3887} GNO500D +GHO                =       GNK500H +      GHO2                                   : ARR( 0.873E-11,     0., 0.0);
+{  3888} GNO500D +GHO                =       G2N501L                                               : ARR( 0.147E-11,     0., 0.0);
+{  3889} GNO500D +GHO                =       GNK5008 +      GHO2                                   : ARR( 0.215E-11,     0., 0.0);
+{  3890} GNO500D+HV               =       G1O5007 +      GNO2                                   :  0.100E+01*SUN;
+{  3891} G2N501L +GNO                =       G1N501N +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  3892} G2N501L +GNO                =       GNN5016                                               : ARR( 0.182E-12,  -360., 0.0);
+{  3893} G2N501L +GHO2               =       GHN501h                                               : ARR( 0.242E-12, -1250., 0.0);
+{  3894} G2N501L +GNO3               =       G1N501N +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  3895} G2N501L +MEPERO             =  0.340G1N501N + 0.330GNO500W + 0.330GNK500f                 : ARR( 0.565E-13,  -845., 0.0);
+{  3896} G2N501L +PERO1              =  0.460G1N501N + 0.270GNO500W + 0.270GNK500f                 : ARR( 0.434E-13,  -900., 0.0);
+{  3897} G2N501L +PERO2              =  0.400G1N501N + 0.300GNO500W + 0.300GNK500f                 : ARR( 0.162E-13, -1400., 0.0);
+{  3898} G2N501L +PERO3              =  0.460G1N501N + 0.270GNO500W + 0.270GNK500f                 : ARR( 0.488E-13, -1250., 0.0);
+{  3899} G2N501L +PERO5              =  0.460G1N501N + 0.270GNO500W + 0.270GNK500f                 : ARR( 0.183E-11,   450., 0.0);
+{  3900} G2N501L +PERO6              =  0.300G1N501N + 0.350GNO500W + 0.350GNK500f                 : ARR( 0.168E-13, -1300., 0.0);
+{  3901} G2N501L +PERO9              =  0.650G1N501N + 0.350GNK500f                                : ARR( 0.100E-10,     0., 0.0);
+{  3902} G1N501N                     =       GD02000 +      GND3002 +      GHO2                    : ARR( 0.200E+15,  3962., 0.0);
+{  3903} G1N501N                     =       GDO3001 +      GND2000 +      GHO2                    : ARR( 0.200E+15,  3575., 0.0);
+{  3904} GHO500A +GHO                =       GHK500N +      GHO2                                   : ARR( 0.878E-11,     0., 0.0);
+{  3905} GHO500A +GHO                =       GHK5005 +      GHO2                                   : ARR( 0.108E-10,     0., 0.0);
+{  3906} GHO500A +GHO                =       GDO5003 +      GHO                                    : ARR( 0.169E-10,     0., 0.0);
+{  3907} GHO500A +GHO                =       G2O5007                                               : ARR( 0.199E-11,  -190., 0.0);
+{  3908} GHO500A+HV               =       G1O5007 +      GHO                                    :  0.100E+01*SUN;
+{  3909} GOO5006 +GHO                =       GKO5006 +      GHO2                                   : ARR( 0.858E-11,     0., 0.0);
+{  3910} GOO5006 +GHO                =       G2O500O                                               : ARR( 0.145E-11,     0., 0.0);
+{  3911} GOO5006 +GHO                =       GKO5008 +      GHO2                                   : ARR( 0.106E-10,     0., 0.0);
+{  3912} GOO5006 +GHO                =       GDO5003 +      GHO2                                   : ARR( 0.412E-11,     0., 0.0);
+{  3913} G2O500O +GNO                =       G1O500P +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  3914} G2O500O +GNO                =       GNO500U                                               : ARR( 0.182E-12,  -360., 0.0);
+{  3915} G2O500O +GHO2               =       GHO500O                                               : ARR( 0.242E-12, -1250., 0.0);
+{  3916} G2O500O +GNO3               =       G1O500P +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  3917} G2O500O +MEPERO             =  0.340G1O500P + 0.330GOO500C + 0.330GKO500I                 : ARR( 0.565E-13,  -845., 0.0);
+{  3918} G2O500O +PERO1              =  0.460G1O500P + 0.270GOO500C + 0.270GKO500I                 : ARR( 0.434E-13,  -900., 0.0);
+{  3919} G2O500O +PERO2              =  0.400G1O500P + 0.300GOO500C + 0.300GKO500I                 : ARR( 0.162E-13, -1400., 0.0);
+{  3920} G2O500O +PERO3              =  0.460G1O500P + 0.270GOO500C + 0.270GKO500I                 : ARR( 0.488E-13, -1250., 0.0);
+{  3921} G2O500O +PERO5              =  0.460G1O500P + 0.270GOO500C + 0.270GKO500I                 : ARR( 0.183E-11,   450., 0.0);
+{  3922} G2O500O +PERO6              =  0.300G1O500P + 0.350GOO500C + 0.350GKO500I                 : ARR( 0.168E-13, -1300., 0.0);
+{  3923} G2O500O +PERO9              =  0.650G1O500P + 0.350GKO500I                                : ARR( 0.100E-10,     0., 0.0);
+{  3924} G1O500P                     =       GD02000 +      GDO3002 +      GHO2                    : ARR( 0.200E+15,  3962., 0.0);
+{  3925} G1O500P                     =       GDO3001 +      GDO2000 +      GHO2                    : ARR( 0.200E+15,  3575., 0.0);
+{  3926} GDO5003 +GHO                =       GDK500A +      GHO2                                   : ARR( 0.847E-11,     0., 0.0);
+{  3927} GDO5003 +GHO                =       G2D5007                                               : ARR( 0.453E-11,     0., 0.0);
+{  3928} GDO5003 +GHO                =       GDK5001 +      GHO2                                   : ARR( 0.635E-11,     0., 0.0);
+{  3929} GDO5003 +GHO                =       G3K5005                                               : ARR( 0.210E-10,     0., 0.0);
+{  3930} GDO5003 +GNO3               =       G3K5005 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{  3931} GDO5003+HV               =       GDO4001 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{  3932} G2D5007 +GNO                =       G1D500A +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  3933} G2D5007 +GNO                =       GND500P                                               : ARR( 0.182E-12,  -360., 0.0);
+{  3934} G2D5007 +GHO2               =       GHD500E                                               : ARR( 0.242E-12, -1250., 0.0);
+{  3935} G2D5007 +GNO3               =       G1D500A +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  3936} G2D5007 +MEPERO             =  0.340G1D500A + 0.330GDO5009 + 0.330GDK500B                 : ARR( 0.565E-13,  -845., 0.0);
+{  3937} G2D5007 +PERO1              =  0.460G1D500A + 0.270GDO5009 + 0.270GDK500B                 : ARR( 0.434E-13,  -900., 0.0);
+{  3938} G2D5007 +PERO2              =  0.400G1D500A + 0.300GDO5009 + 0.300GDK500B                 : ARR( 0.162E-13, -1400., 0.0);
+{  3939} G2D5007 +PERO3              =  0.460G1D500A + 0.270GDO5009 + 0.270GDK500B                 : ARR( 0.488E-13, -1250., 0.0);
+{  3940} G2D5007 +PERO5              =  0.460G1D500A + 0.270GDO5009 + 0.270GDK500B                 : ARR( 0.183E-11,   450., 0.0);
+{  3941} G2D5007 +PERO6              =  0.300G1D500A + 0.350GDO5009 + 0.350GDK500B                 : ARR( 0.168E-13, -1300., 0.0);
+{  3942} G2D5007 +PERO9              =  0.650G1D500A + 0.350GDK500B                                : ARR( 0.100E-10,     0., 0.0);
+{  3943} G3K5005 +GHO2               =  0.800GGO5004 + 0.200GAO5004 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  3944} G3K5005 +GNO                =       GDO4001 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{  3945} G3K5005 +GNO2               =       GPO5004                                               : ARR( 0.330E-08,     0.,-1.0);
+{  3946} G3K5005 +GNO3               =       GDO4001 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{  3947} G3K5005 +MEPERO             =  0.685GDO4001 + 0.315GAO5004 + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  3948} G3K5005 +PERO1              =  0.800GDO4001 + 0.200GAO5004 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  3949} G3K5005 +PERO2              =  0.750GDO4001 + 0.250GAO5004 + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  3950} G3K5005 +PERO3              =  0.800GDO4001 + 0.200GAO5004 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  3951} G3K5005 +PERO5              =  0.650GDO4001 + 0.350GAO5004 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  3952} G3K5005 +PERO6              =  0.650GDO4001 + 0.350GAO5004 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  3953} G3K5005 +PERO9              =       GDO4001 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{  3954} G1D500A                     =       GD02000 +      GDD3001 +      GHO2                    : ARR( 0.200E+15,  3132., 0.0);
+{  3955} G1D500A                     =       GDO3001 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  3708., 0.0);
+{  3956} GNO3002 +GHO                =       G2N3003                                               : ARR( 0.171E-12,     0., 0.0);
+{  3957} GNO3002 +GHO                =       GNK3000 +      GHO2                                   : ARR( 0.171E-11,     0., 0.0);
+{  3958} GNO3002 +GHO                =       G1N3002                                               : ARR( 0.215E-17,    85., 2.0);
+{  3959} GNO3002+HV               =       G1O3000 +      GNO2                                   :  0.100E+01*SUN;
+{  3960} GHO3000 +GHO                =       GHK3000 +      GHO2                                   : ARR( 0.847E-11,     0., 0.0);
+{  3961} GHO3000 +GHO                =       GDO3001 +      GHO                                    : ARR( 0.163E-10,     0., 0.0);
+{  3962} GHO3000 +GHO                =       G2O3000                                               : ARR( 0.192E-11,  -190., 0.0);
+{  3963} GHO3000+HV               =       G1O3000 +      GHO                                    :  0.100E+01*SUN;
+{  3964} GOO3000 +GHO                =       GKO3000 +      GHO2                                   : ARR( 0.811E-11,     0., 0.0);
+{  3965} GOO3000 +GHO                =       GDO3001 +      GHO2                                   : ARR( 0.389E-11,     0., 0.0);
+{  3966} GDO3001 +GHO                =       GDK3000 +      GHO2                                   : ARR( 0.524E-11,     0., 0.0);
+{  3967} GDO3001 +GHO                =       G3K3002                                               : ARR( 0.213E-10,     0., 0.0);
+{  3968} GDO3001 +GNO3               =       G3K3002 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{  3969} GDO3001+HV               =       GD02000 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{  3970} GKO5006 +GHO                =       GKK5003 +      GHO2                                   : ARR( 0.338E-10,     0., 0.0);
+{  3971} GKO5006 +GHO                =       GDK500A +      GHO2                                   : ARR( 0.416E-11,     0., 0.0);
+{  3972} GKO5006+HV               =       G3K2000 +      G2O3003                                :  0.100E+01*SUN;
+{  3973} GKO5006+HV               =       GK03000 +      GDO2000                                :  0.100E+01*SUN;
+{  3974} G2O3003 +GNO                =       G1O3003 +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{  3975} G2O3003 +GNO                =       GNO3003                                               : ARR( 0.622E-13,  -360., 0.0);
+{  3976} G2O3003 +GHO2               =       GHO3003                                               : ARR( 0.179E-12, -1250., 0.0);
+{  3977} G2O3003 +GNO3               =       G1O3003 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  3978} G2O3003 +MEPERO             =  0.480G1O3003 + 0.260GOO3002 + 0.260GDO3002                 : ARR( 0.164E-12,  -795., 0.0);
+{  3979} G2O3003 +PERO1              =  0.600G1O3003 + 0.200GOO3002 + 0.200GDO3002                 : ARR( 0.126E-12,  -850., 0.0);
+{  3980} G2O3003 +PERO2              =  0.560G1O3003 + 0.220GOO3002 + 0.220GDO3002                 : ARR( 0.471E-13, -1350., 0.0);
+{  3981} G2O3003 +PERO3              =  0.600G1O3003 + 0.200GOO3002 + 0.200GDO3002                 : ARR( 0.142E-12, -1200., 0.0);
+{  3982} G2O3003 +PERO5              =  0.600G1O3003 + 0.200GOO3002 + 0.200GDO3002                 : ARR( 0.533E-11,   500., 0.0);
+{  3983} G2O3003 +PERO6              =  0.460G1O3003 + 0.270GOO3002 + 0.270GDO3002                 : ARR( 0.488E-13, -1250., 0.0);
+{  3984} G2O3003 +PERO9              =  0.800G1O3003 + 0.200GDO3002                                : ARR( 0.100E-10,     0., 0.0);
+{  3985} G1O3003                     =       GDO2000 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4443., 0.0);
+{  3986} GDO4001 +GHO                =       GDK4000 +      GHO2                                   : ARR( 0.272E-10,     0., 0.0);
+{  3987} GDO4001 +GHO                =       G3K4000                                               : ARR( 0.213E-10,     0., 0.0);
+{  3988} GDO4001 +GNO3               =       G3K4000 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{  3989} GDO4001+HV               =       G2O3000 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{  3990} GDO4001+HV               =  2.000GD02000                                               :  0.100E+01*SUN;
+{  3991} GHK5003 +GHO                =       GKK5000 +      GHO                                    : ARR( 0.111E-09,     0., 0.0);
+{  3992} GHK5003+HV               =       G3K2000 +      G2H3003                                :  0.100E+01*SUN;
+{  3993} GHK5003+HV               =       GK03000 +      G2D2000 +      GHO                     :  0.100E+01*SUN;
+{  3994} GHK5003+HV               =       G1K5000 +      GHO                                    :  0.100E+01*SUN;
+{  3995} GKK5000 +GHO                =       G2K500I                                               : ARR( 0.322E-12,     0., 0.0);
+{  3996} GKK5000 +GHO                =       G2K500J                                               : ARR( 0.828E-12,     0., 0.0);
+{  3997} GKK5000+HV               =       G3K2000 +      G2K3000                                :  0.100E+01*SUN;
+{  3998} GKK5000+HV               =       G3K4003 +      GCH3O2                                 :  0.100E+01*SUN;
+{  3999} G2K500I +GNO                =       G1K500J +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  4000} G2K500I +GNO                =       GNK500I                                               : ARR( 0.182E-12,  -360., 0.0);
+{  4001} G2K500I +GHO2               =       GHK500D                                               : ARR( 0.242E-12, -1250., 0.0);
+{  4002} G2K500I +GNO3               =       G1K500J +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  4003} G2K500I +MEPERO             =  0.480G1K500J + 0.260GKK5003 + 0.260GDK500C                 : ARR( 0.164E-12,  -795., 0.0);
+{  4004} G2K500I +PERO1              =  0.600G1K500J + 0.200GKK5003 + 0.200GDK500C                 : ARR( 0.126E-12,  -850., 0.0);
+{  4005} G2K500I +PERO2              =  0.560G1K500J + 0.220GKK5003 + 0.220GDK500C                 : ARR( 0.471E-13, -1350., 0.0);
+{  4006} G2K500I +PERO3              =  0.600G1K500J + 0.200GKK5003 + 0.200GDK500C                 : ARR( 0.142E-12, -1200., 0.0);
+{  4007} G2K500I +PERO5              =  0.600G1K500J + 0.200GKK5003 + 0.200GDK500C                 : ARR( 0.533E-11,   500., 0.0);
+{  4008} G2K500I +PERO6              =  0.460G1K500J + 0.270GKK5003 + 0.270GDK500C                 : ARR( 0.488E-13, -1250., 0.0);
+{  4009} G2K500I +PERO9              =  0.800G1K500J + 0.200GDK500C                                : ARR( 0.100E-10,     0., 0.0);
+{  4010} G2K500J +GNO                =       G1K500K +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  4011} G2K500J +GNO                =       GNK500g                                               : ARR( 0.182E-12,  -360., 0.0);
+{  4012} G2K500J +GHO2               =       GHK500O                                               : ARR( 0.242E-12, -1250., 0.0);
+{  4013} G2K500J +GNO3               =       G1K500K +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  4014} G2K500J +MEPERO             =  0.340G1K500K + 0.330GKK5008 + 0.330GKK5009                 : ARR( 0.565E-13,  -845., 0.0);
+{  4015} G2K500J +PERO1              =  0.460G1K500K + 0.270GKK5008 + 0.270GKK5009                 : ARR( 0.434E-13,  -900., 0.0);
+{  4016} G2K500J +PERO2              =  0.400G1K500K + 0.300GKK5008 + 0.300GKK5009                 : ARR( 0.162E-13, -1400., 0.0);
+{  4017} G2K500J +PERO3              =  0.460G1K500K + 0.270GKK5008 + 0.270GKK5009                 : ARR( 0.488E-13, -1250., 0.0);
+{  4018} G2K500J +PERO5              =  0.460G1K500K + 0.270GKK5008 + 0.270GKK5009                 : ARR( 0.183E-11,   450., 0.0);
+{  4019} G2K500J +PERO6              =  0.300G1K500K + 0.350GKK5008 + 0.350GKK5009                 : ARR( 0.168E-13, -1300., 0.0);
+{  4020} G2K500J +PERO9              =  0.650G1K500K + 0.350GKK5009                                : ARR( 0.100E-10,     0., 0.0);
+{  4021} G3K4003 +GHO2               =  0.800GGK4000 + 0.200GAK4000 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  4022} G3K4003 +GNO                =       G2K3000 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{  4023} G3K4003 +GNO2               =       GPK4000                                               : ARR( 0.330E-08,     0.,-1.0);
+{  4024} G3K4003 +GNO3               =       G2K3000 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{  4025} G3K4003 +MEPERO             =  0.685G2K3000 + 0.315GAK4000 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  4026} G3K4003 +PERO1              =  0.800G2K3000 + 0.200GAK4000 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  4027} G3K4003 +PERO2              =  0.750G2K3000 + 0.250GAK4000 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  4028} G3K4003 +PERO3              =  0.800G2K3000 + 0.200GAK4000 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  4029} G3K4003 +PERO5              =  0.650G2K3000 + 0.350GAK4000 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  4030} G3K4003 +PERO6              =  0.650G2K3000 + 0.350GAK4000 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  4031} G3K4003 +PERO9              =       G2K3000 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{  4032} G1K500J                     =       G3K4003 +      GCH2O                                  : ARR( 0.200E+15,  3552., 0.0);
+{  4033} G1K500K                     =       G3K2000 +      GDK3000                                : ARR( 0.400E+15,  4513., 0.0);
+{  4034} GNK5007 +GHO                =       G2N501M                                               : ARR( 0.168E-12,     0., 0.0);
+{  4035} GNK5007 +GHO                =       G2N501N                                               : ARR( 0.230E-12,     0., 0.0);
+{  4036} GNK5007 +GHO                =       GKK5001 +      GNO2                                   : ARR( 0.718E-13,     0., 0.0);
+{  4037} GNK5007 +GHO                =       G2N501O                                               : ARR( 0.102E-12,     0., 0.0);
+{  4038} GNK5007+HV               =       G1K5001 +      GNO2                                   :  0.100E+01*SUN;
+{  4039} GNK5007+HV               =       G3N4004 +      GCH3O2                                 :  0.100E+01*SUN;
+{  4040} GNK5007+HV               =       GU02000 +      GNK3000                                :  0.100E+01*SUN;
+{  4041} G2N501M +GNO                =       G1N501O +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  4042} G2N501M +GNO                =       GNN500U                                               : ARR( 0.182E-12,  -360., 0.0);
+{  4043} G2N501M +GHO2               =       GHN501i                                               : ARR( 0.242E-12, -1250., 0.0);
+{  4044} G2N501M +GNO3               =       G1N501O +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  4045} G2N501M +MEPERO             =  0.480G1N501O + 0.260GNK5009 + 0.260GND500Q                 : ARR( 0.146E-12,  -445., 0.0);
+{  4046} G2N501M +PERO1              =  0.600G1N501O + 0.200GNK5009 + 0.200GND500Q                 : ARR( 0.112E-12,  -500., 0.0);
+{  4047} G2N501M +PERO2              =  0.560G1N501O + 0.220GNK5009 + 0.220GND500Q                 : ARR( 0.418E-13, -1000., 0.0);
+{  4048} G2N501M +PERO3              =  0.600G1N501O + 0.200GNK5009 + 0.200GND500Q                 : ARR( 0.126E-12,  -850., 0.0);
+{  4049} G2N501M +PERO5              =  0.600G1N501O + 0.200GNK5009 + 0.200GND500Q                 : ARR( 0.473E-11,   850., 0.0);
+{  4050} G2N501M +PERO6              =  0.460G1N501O + 0.270GNK5009 + 0.270GND500Q                 : ARR( 0.434E-13,  -900., 0.0);
+{  4051} G2N501M +PERO9              =  0.800G1N501O + 0.200GND500Q                                : ARR( 0.100E-10,     0., 0.0);
+{  4052} G2N501N +GNO                =       G1N501P +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  4053} G2N501N +GNO                =       GNN500w                                               : ARR( 0.182E-12,  -360., 0.0);
+{  4054} G2N501N +GHO2               =       GHN501j                                               : ARR( 0.242E-12, -1250., 0.0);
+{  4055} G2N501N +GNO3               =       G1N501P +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  4056} G2N501N +MEPERO             =  0.340G1N501P + 0.330GNK500d + 0.330GNK500g                 : ARR( 0.565E-13,  -845., 0.0);
+{  4057} G2N501N +PERO1              =  0.460G1N501P + 0.270GNK500d + 0.270GNK500g                 : ARR( 0.434E-13,  -900., 0.0);
+{  4058} G2N501N +PERO2              =  0.400G1N501P + 0.300GNK500d + 0.300GNK500g                 : ARR( 0.162E-13, -1400., 0.0);
+{  4059} G2N501N +PERO3              =  0.460G1N501P + 0.270GNK500d + 0.270GNK500g                 : ARR( 0.488E-13, -1250., 0.0);
+{  4060} G2N501N +PERO5              =  0.460G1N501P + 0.270GNK500d + 0.270GNK500g                 : ARR( 0.183E-11,   450., 0.0);
+{  4061} G2N501N +PERO6              =  0.300G1N501P + 0.350GNK500d + 0.350GNK500g                 : ARR( 0.168E-13, -1300., 0.0);
+{  4062} G2N501N +PERO9              =  0.650G1N501P + 0.350GNK500g                                : ARR( 0.100E-10,     0., 0.0);
+{  4063} G2N501O +GNO                =       G1N501Q +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  4064} G2N501O +GNO                =       GNN500a                                               : ARR( 0.182E-12,  -360., 0.0);
+{  4065} G2N501O +GHO2               =       GHN501k                                               : ARR( 0.242E-12, -1250., 0.0);
+{  4066} G2N501O +GNO3               =       G1N501Q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  4067} G2N501O +MEPERO             =  0.480G1N501Q + 0.260GNK500T + 0.260GND500R                 : ARR( 0.164E-12,  -795., 0.0);
+{  4068} G2N501O +PERO1              =  0.600G1N501Q + 0.200GNK500T + 0.200GND500R                 : ARR( 0.126E-12,  -850., 0.0);
+{  4069} G2N501O +PERO2              =  0.560G1N501Q + 0.220GNK500T + 0.220GND500R                 : ARR( 0.471E-13, -1350., 0.0);
+{  4070} G2N501O +PERO3              =  0.600G1N501Q + 0.200GNK500T + 0.200GND500R                 : ARR( 0.142E-12, -1200., 0.0);
+{  4071} G2N501O +PERO5              =  0.600G1N501Q + 0.200GNK500T + 0.200GND500R                 : ARR( 0.533E-11,   500., 0.0);
+{  4072} G2N501O +PERO6              =  0.460G1N501Q + 0.270GNK500T + 0.270GND500R                 : ARR( 0.488E-13, -1250., 0.0);
+{  4073} G2N501O +PERO9              =  0.800G1N501Q + 0.200GND500R                                : ARR( 0.100E-10,     0., 0.0);
+{  4074} G3N4004 +GHO2               =  0.800GGN4004 + 0.200GAN4004 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  4075} G3N4004 +GNO                =       GD03000 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{  4076} G3N4004 +GNO2               =       GPN4004                                               : ARR( 0.330E-08,     0.,-1.0);
+{  4077} G3N4004 +GNO3               =       GD03000 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{  4078} G3N4004 +MEPERO             =  0.685GD03000 + 0.315GAN4004 + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  4079} G3N4004 +PERO1              =  0.800GD03000 + 0.200GAN4004 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  4080} G3N4004 +PERO2              =  0.750GD03000 + 0.250GAN4004 + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  4081} G3N4004 +PERO3              =  0.800GD03000 + 0.200GAN4004 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  4082} G3N4004 +PERO5              =  0.650GD03000 + 0.350GAN4004 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  4083} G3N4004 +PERO6              =  0.650GD03000 + 0.350GAN4004 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  4084} G3N4004 +PERO9              =       GD03000 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{  4085} G1N501O +OXYGEN             =       GND500Q +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{  4086} G1N501P                     =       GDK3000 +      GD02000 +      GNO2                    : ARR( 0.200E+15,  6261., 0.0);
+{  4087} G1N501Q                     =       G3N4004 +      GCH2O                                  : ARR( 0.200E+15,  3640., 0.0);
+{  4088} GHK5004 +GHO                =       G2H500S                                               : ARR( 0.367E-11,     0., 0.0);
+{  4089} GHK5004 +GHO                =       GKK5001 +      GHO                                    : ARR( 0.253E-10,     0., 0.0);
+{  4090} GHK5004 +GHO                =       G2K5001                                               : ARR( 0.192E-11,  -190., 0.0);
+{  4091} GHK5004+HV               =       G1K5001 +      GHO                                    :  0.100E+01*SUN;
+{  4092} GHK5004+HV               =       G3H4000 +      GCH3O2                                 :  0.100E+01*SUN;
+{  4093} G2H500S +GNO                =       G1H500a +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  4094} G2H500S +GNO                =       GHN501S                                               : ARR( 0.182E-12,  -360., 0.0);
+{  4095} G2H500S +GHO2               =       GHH500Q                                               : ARR( 0.242E-12, -1250., 0.0);
+{  4096} G2H500S +GNO3               =       G1H500a +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  4097} G2H500S +MEPERO             =  0.340G1H500a + 0.330GHK500P + 0.330GHK500O                 : ARR( 0.565E-13,  -845., 0.0);
+{  4098} G2H500S +PERO1              =  0.460G1H500a + 0.270GHK500P + 0.270GHK500O                 : ARR( 0.434E-13,  -900., 0.0);
+{  4099} G2H500S +PERO2              =  0.400G1H500a + 0.300GHK500P + 0.300GHK500O                 : ARR( 0.162E-13, -1400., 0.0);
+{  4100} G2H500S +PERO3              =  0.460G1H500a + 0.270GHK500P + 0.270GHK500O                 : ARR( 0.488E-13, -1250., 0.0);
+{  4101} G2H500S +PERO5              =  0.460G1H500a + 0.270GHK500P + 0.270GHK500O                 : ARR( 0.183E-11,   450., 0.0);
+{  4102} G2H500S +PERO6              =  0.300G1H500a + 0.350GHK500P + 0.350GHK500O                 : ARR( 0.168E-13, -1300., 0.0);
+{  4103} G2H500S +PERO9              =  0.650G1H500a + 0.350GHK500O                                : ARR( 0.100E-10,     0., 0.0);
+{  4104} G3H4000 +GHO2               =  0.800GGH4000 + 0.200GAH4000 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  4105} G3H4000 +GNO                =       GD03000 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{  4106} G3H4000 +GNO2               =       GPH4000                                               : ARR( 0.330E-08,     0.,-1.0);
+{  4107} G3H4000 +GNO3               =       GD03000 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{  4108} G3H4000 +MEPERO             =  0.685GD03000 + 0.315GAH4000 + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  4109} G3H4000 +PERO1              =  0.800GD03000 + 0.200GAH4000 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  4110} G3H4000 +PERO2              =  0.750GD03000 + 0.250GAH4000 + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  4111} G3H4000 +PERO3              =  0.800GD03000 + 0.200GAH4000 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  4112} G3H4000 +PERO5              =  0.650GD03000 + 0.350GAH4000 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  4113} G3H4000 +PERO6              =  0.650GD03000 + 0.350GAH4000 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  4114} G3H4000 +PERO9              =       GD03000 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{  4115} G1H500a                     =       GDK3000 +      GD02000 +      GHO                     : ARR( 0.200E+15,  4722., 0.0);
+{  4116} GKO5007 +GHO                =       G2K500K                                               : ARR( 0.379E-11,     0., 0.0);
+{  4117} GKO5007 +GHO                =       GKK5001 +      GHO2                                   : ARR( 0.654E-11,     0., 0.0);
+{  4118} GKO5007+HV               =       G3K4004 +      GCH3O2                                 :  0.100E+01*SUN;
+{  4119} G2K500K +GNO                =       G1K500L +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  4120} G2K500K +GNO                =       GNK500Y                                               : ARR( 0.182E-12,  -360., 0.0);
+{  4121} G2K500K +GHO2               =       GHK500Q                                               : ARR( 0.242E-12, -1250., 0.0);
+{  4122} G2K500K +GNO3               =       G1K500L +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  4123} G2K500K +MEPERO             =  0.340G1K500L + 0.330GKO500H + 0.330GKK5008                 : ARR( 0.565E-13,  -845., 0.0);
+{  4124} G2K500K +PERO1              =  0.460G1K500L + 0.270GKO500H + 0.270GKK5008                 : ARR( 0.434E-13,  -900., 0.0);
+{  4125} G2K500K +PERO2              =  0.400G1K500L + 0.300GKO500H + 0.300GKK5008                 : ARR( 0.162E-13, -1400., 0.0);
+{  4126} G2K500K +PERO3              =  0.460G1K500L + 0.270GKO500H + 0.270GKK5008                 : ARR( 0.488E-13, -1250., 0.0);
+{  4127} G2K500K +PERO5              =  0.460G1K500L + 0.270GKO500H + 0.270GKK5008                 : ARR( 0.183E-11,   450., 0.0);
+{  4128} G2K500K +PERO6              =  0.300G1K500L + 0.350GKO500H + 0.350GKK5008                 : ARR( 0.168E-13, -1300., 0.0);
+{  4129} G2K500K +PERO9              =  0.650G1K500L + 0.350GKK5008                                : ARR( 0.100E-10,     0., 0.0);
+{  4130} G3K4004 +GHO2               =  0.800GGO4002 + 0.200GAO4002 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  4131} G3K4004 +GNO                =       GD03000 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{  4132} G3K4004 +GNO2               =       GPO4002                                               : ARR( 0.330E-08,     0.,-1.0);
+{  4133} G3K4004 +GNO3               =       GD03000 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{  4134} G3K4004 +MEPERO             =  0.685GD03000 + 0.315GAO4002 + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  4135} G3K4004 +PERO1              =  0.800GD03000 + 0.200GAO4002 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  4136} G3K4004 +PERO2              =  0.750GD03000 + 0.250GAO4002 + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  4137} G3K4004 +PERO3              =  0.800GD03000 + 0.200GAO4002 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  4138} G3K4004 +PERO5              =  0.650GD03000 + 0.350GAO4002 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  4139} G3K4004 +PERO6              =  0.650GD03000 + 0.350GAO4002 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  4140} G3K4004 +PERO9              =       GD03000 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{  4141} G1K500L                     =       GDK3000 +      GD02000 +      GHO2                    : ARR( 0.200E+15,  3513., 0.0);
+{  4142} GKK5001 +GHO                =       G2K500L                                               : ARR( 0.531E-12,     0., 0.0);
+{  4143} GKK5001 +GHO                =       G2K500M                                               : ARR( 0.701E-12,     0., 0.0);
+{  4144} GKK5001 +GHO                =       G2K500N                                               : ARR( 0.102E-12,     0., 0.0);
+{  4145} GKK5001+HV               =       G3K3000 +      G3K2000                                :  0.100E+01*SUN;
+{  4146} G2K500L +GNO                =       G1K500M +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  4147} G2K500L +GNO                =       GNK500G                                               : ARR( 0.182E-12,  -360., 0.0);
+{  4148} G2K500L +GHO2               =       GHK500R                                               : ARR( 0.242E-12, -1250., 0.0);
+{  4149} G2K500L +GNO3               =       G1K500M +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  4150} G2K500L +MEPERO             =  0.480G1K500M + 0.260GKK5002 + 0.260GDK500D                 : ARR( 0.146E-12,  -445., 0.0);
+{  4151} G2K500L +PERO1              =  0.600G1K500M + 0.200GKK5002 + 0.200GDK500D                 : ARR( 0.112E-12,  -500., 0.0);
+{  4152} G2K500L +PERO2              =  0.560G1K500M + 0.220GKK5002 + 0.220GDK500D                 : ARR( 0.418E-13, -1000., 0.0);
+{  4153} G2K500L +PERO3              =  0.600G1K500M + 0.200GKK5002 + 0.200GDK500D                 : ARR( 0.126E-12,  -850., 0.0);
+{  4154} G2K500L +PERO5              =  0.600G1K500M + 0.200GKK5002 + 0.200GDK500D                 : ARR( 0.473E-11,   850., 0.0);
+{  4155} G2K500L +PERO6              =  0.460G1K500M + 0.270GKK5002 + 0.270GDK500D                 : ARR( 0.434E-13,  -900., 0.0);
+{  4156} G2K500L +PERO9              =  0.800G1K500M + 0.200GDK500D                                : ARR( 0.100E-10,     0., 0.0);
+{  4157} G2K500M +GNO                =       G1K500N +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  4158} G2K500M +GNO                =       GNK500Z                                               : ARR( 0.182E-12,  -360., 0.0);
+{  4159} G2K500M +GHO2               =       GHK500S                                               : ARR( 0.242E-12, -1250., 0.0);
+{  4160} G2K500M +GNO3               =       G1K500N +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  4161} G2K500M +MEPERO             =  0.340G1K500N + 0.330GKK5007 + 0.330GKK5009                 : ARR( 0.565E-13,  -845., 0.0);
+{  4162} G2K500M +PERO1              =  0.460G1K500N + 0.270GKK5007 + 0.270GKK5009                 : ARR( 0.434E-13,  -900., 0.0);
+{  4163} G2K500M +PERO2              =  0.400G1K500N + 0.300GKK5007 + 0.300GKK5009                 : ARR( 0.162E-13, -1400., 0.0);
+{  4164} G2K500M +PERO3              =  0.460G1K500N + 0.270GKK5007 + 0.270GKK5009                 : ARR( 0.488E-13, -1250., 0.0);
+{  4165} G2K500M +PERO5              =  0.460G1K500N + 0.270GKK5007 + 0.270GKK5009                 : ARR( 0.183E-11,   450., 0.0);
+{  4166} G2K500M +PERO6              =  0.300G1K500N + 0.350GKK5007 + 0.350GKK5009                 : ARR( 0.168E-13, -1300., 0.0);
+{  4167} G2K500M +PERO9              =  0.650G1K500N + 0.350GKK5009                                : ARR( 0.100E-10,     0., 0.0);
+{  4168} G2K500N +GNO                =       G1K500O +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  4169} G2K500N +GNO                =       GNK500L                                               : ARR( 0.182E-12,  -360., 0.0);
+{  4170} G2K500N +GHO2               =       GHK500T                                               : ARR( 0.242E-12, -1250., 0.0);
+{  4171} G2K500N +GNO3               =       G1K500O +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  4172} G2K500N +MEPERO             =  0.480G1K500O + 0.260GKK5004 + 0.260GDK500E                 : ARR( 0.164E-12,  -795., 0.0);
+{  4173} G2K500N +PERO1              =  0.600G1K500O + 0.200GKK5004 + 0.200GDK500E                 : ARR( 0.126E-12,  -850., 0.0);
+{  4174} G2K500N +PERO2              =  0.560G1K500O + 0.220GKK5004 + 0.220GDK500E                 : ARR( 0.471E-13, -1350., 0.0);
+{  4175} G2K500N +PERO3              =  0.600G1K500O + 0.200GKK5004 + 0.200GDK500E                 : ARR( 0.142E-12, -1200., 0.0);
+{  4176} G2K500N +PERO5              =  0.600G1K500O + 0.200GKK5004 + 0.200GDK500E                 : ARR( 0.533E-11,   500., 0.0);
+{  4177} G2K500N +PERO6              =  0.460G1K500O + 0.270GKK5004 + 0.270GDK500E                 : ARR( 0.488E-13, -1250., 0.0);
+{  4178} G2K500N +PERO9              =  0.800G1K500O + 0.200GDK500E                                : ARR( 0.100E-10,     0., 0.0);
+{  4179} G1K500M +OXYGEN             =       GDK500D +      GHO2                                   : ARR( 0.600E-13,   398., 0.0);
+{  4180} G1K500N                     =       G3K2000 +      GD02000 +      GCO                     : ARR( 0.200E+15,  3071., 0.0);
+{  4181} G1K500O                     =       G3K3000 +      GCH2O   +      GCO                     : ARR( 0.200E+15,  3897., 0.0);
+{  4182} GG02000 +GHO                =       G3K2000                                               : ARR( 0.195E-11,  -190., 0.0);
+{  4183} GG02000+HV               =       GCH3O2  +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{  4184} GA02000 +GHO                =       G2A2000                                               : ARR( 0.102E-12,     0., 0.0);
+{  4185} GA02000 +GHO                =       GCH3O2  +      GCO2                                   : ARR( 0.698E-12,     0., 0.0);
+{  4186}  GP02000    +M                 =       G3K2000 +      GNO2            +M                     : FALL( 0.280E+17, 13580., 0.0, 0.190E-02, 12175., 0.0,0.60);
+{  4187} GP02000 +GHO                =       G2P2000                                               : ARR( 0.102E-12,     0., 0.0);
+{  4188} GP02000+HV               =       G3K2000 +      GNO2                                   :  0.100E+01*SUN;
+{  4189} GNK5008 +GHO                =       GNK500I +      GHO2                                   : ARR( 0.278E-10,     0., 0.0);
+{  4190} GNK5008+HV               =       G3K4000 +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{  4191} GNK5008+HV               =       GD02000 +      GNK3000                                :  0.100E+01*SUN;
+{  4192} GNK5008+HV               =       G1K5002 +      GNO2                                   :  0.100E+01*SUN;
+{  4193} GHK5005 +GHO                =       GHK500D +      GHO2                                   : ARR( 0.273E-10,     0., 0.0);
+{  4194} GHK5005 +GHO                =       GDK5001 +      GHO                                    : ARR( 0.101E-10,     0., 0.0);
+{  4195} GHK5005 +GHO                =       G2K5002                                               : ARR( 0.196E-11,  -190., 0.0);
+{  4196} GHK5005+HV               =       G3K4000 +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{  4197} GHK5005+HV               =       GD02000 +      GHK3000                                :  0.100E+01*SUN;
+{  4198} GHK5005+HV               =       G1K5002 +      GHO                                    :  0.100E+01*SUN;
+{  4199} GKO5008 +GHO                =       GKK5003 +      GHO2                                   : ARR( 0.278E-10,     0., 0.0);
+{  4200} GKO5008 +GHO                =       GDK5001 +      GHO2                                   : ARR( 0.256E-11,     0., 0.0);
+{  4201} GKO5008+HV               =       G3K4000 +      GCH2O   +      GHO2                    :  0.100E+01*SUN;
+{  4202} GKO5008+HV               =       GD02000 +      GKO3000                                :  0.100E+01*SUN;
+{  4203} GDK5001 +GHO                =       GDK500C +      GHO2                                   : ARR( 0.274E-10,     0., 0.0);
+{  4204} GDK5001 +GHO                =       G3K4000 +      GCO                                    : ARR( 0.130E-10,     0., 0.0);
+{  4205} GDK5001 +GNO3               =       G3K4000 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{  4206} GDK5001+HV               =       G3K4000 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{  4207} GDK5001+HV               =       GDO4001 +      GCO                                    :  0.100E+01*SUN;
+{  4208} GDK5001+HV               =       GO03001 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{  4209} GNK3000 +GHO                =       G2N3005                                               : ARR( 0.102E-12,     0., 0.0);
+{  4210} GNK3000 +GHO                =       GDK3000 +      GNO2                                   : ARR( 0.280E-13,     0., 0.0);
+{  4211} GNK3000+HV               =       G3K2000 +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{  4212} GNK3000+HV               =       G1K3000 +      GNO2                                   :  0.100E+01*SUN;
+{  4213} GHK3000 +GHO                =       GDK3000 +      GHO                                    : ARR( 0.988E-11,     0., 0.0);
+{  4214} GHK3000 +GHO                =       G2K3000                                               : ARR( 0.191E-11,  -190., 0.0);
+{  4215} GHK3000+HV               =       G3K2000 +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{  4216} GHK3000+HV               =       G1K3000 +      GHO                                    :  0.100E+01*SUN;
+{  4217} GKO3000 +GHO                =       GDK3000 +      GHO2                                   : ARR( 0.284E-11,     0., 0.0);
+{  4218} GKO3000 +GHO                =       G1K3000                                               : ARR( 0.162E-12,     0., 0.0);
+{  4219} GKO3000+HV               =       GCH2O   +      G3K2000 +      GHO2                    :  0.100E+01*SUN;
+{  4220} GDK3000 +GHO                =       G3K2000 +      GCO                                    : ARR( 0.840E-12,  -830., 0.0);
+{  4221} GDK3000 +GNO3               =       G3K2000 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{  4222} GDK3000+HV               =       GCO     +      G3K2000 +      GHO2                    :  0.100E+01*SUN;
+{  4223} GDK3000+HV               =       GCO     +      GD02000                                :  0.200E+01*SUN;
+{  4224} GDK3000+HV               =  2.000GCO     +      GCH4                                   :  0.100E+01*SUN;
+{  4225} GGO4000 +GHO                =       GGK4000 +      GHO2                                   : ARR( 0.858E-11,     0., 0.0);
+{  4226} GGO4000 +GHO                =       G2G4000                                               : ARR( 0.882E-12,     0., 0.0);
+{  4227} GGO4000 +GHO                =       G3K4000                                               : ARR( 0.195E-11,  -190., 0.0);
+{  4228} GGO4000+HV               =       G2O3000 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{  4229} G2G4000 +GNO                =       G1G4000 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  4230} G2G4000 +GNO                =       GGN4005                                               : ARR( 0.111E-12,  -360., 0.0);
+{  4231} G2G4000 +GHO2               =       GGH4001                                               : ARR( 0.214E-12, -1250., 0.0);
+{  4232} G2G4000 +GNO3               =       G1G4000 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  4233} G2G4000 +MEPERO             =  0.340G1G4000 + 0.330GGO4003 + 0.330GGK4001                 : ARR( 0.565E-13,  -845., 0.0);
+{  4234} G2G4000 +PERO1              =  0.460G1G4000 + 0.270GGO4003 + 0.270GGK4001                 : ARR( 0.434E-13,  -900., 0.0);
+{  4235} G2G4000 +PERO2              =  0.400G1G4000 + 0.300GGO4003 + 0.300GGK4001                 : ARR( 0.162E-13, -1400., 0.0);
+{  4236} G2G4000 +PERO3              =  0.460G1G4000 + 0.270GGO4003 + 0.270GGK4001                 : ARR( 0.488E-13, -1250., 0.0);
+{  4237} G2G4000 +PERO5              =  0.460G1G4000 + 0.270GGO4003 + 0.270GGK4001                 : ARR( 0.183E-11,   450., 0.0);
+{  4238} G2G4000 +PERO6              =  0.300G1G4000 + 0.350GGO4003 + 0.350GGK4001                 : ARR( 0.168E-13, -1300., 0.0);
+{  4239} G2G4000 +PERO9              =  0.650G1G4000 + 0.350GGK4001                                : ARR( 0.100E-10,     0., 0.0);
+{  4240} G1G4000                     =       GD02000 +      GGD2000 +      GHO2                    : ARR( 0.200E+15,  5878., 0.0);
+{  4241} G1G4000                     =       GDO3001 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{  4242} GAO4000 +GHO                =       GAK4000 +      GHO2                                   : ARR( 0.865E-11,     0., 0.0);
+{  4243} GAO4000 +GHO                =       G2A4000                                               : ARR( 0.658E-12,     0., 0.0);
+{  4244} GAO4000 +GHO                =       G2O3000 +      GCO2                                   : ARR( 0.537E-12,     0., 0.0);
+{  4245} G2A4000 +GNO                =       G1A4000 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  4246} G2A4000 +GNO                =       GAN4005                                               : ARR( 0.111E-12,  -360., 0.0);
+{  4247} G2A4000 +GHO2               =       GAH4001                                               : ARR( 0.214E-12, -1250., 0.0);
+{  4248} G2A4000 +GNO3               =       G1A4000 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  4249} G2A4000 +MEPERO             =  0.340G1A4000 + 0.330GAO4003 + 0.330GAK4001                 : ARR( 0.565E-13,  -845., 0.0);
+{  4250} G2A4000 +PERO1              =  0.460G1A4000 + 0.270GAO4003 + 0.270GAK4001                 : ARR( 0.434E-13,  -900., 0.0);
+{  4251} G2A4000 +PERO2              =  0.400G1A4000 + 0.300GAO4003 + 0.300GAK4001                 : ARR( 0.162E-13, -1400., 0.0);
+{  4252} G2A4000 +PERO3              =  0.460G1A4000 + 0.270GAO4003 + 0.270GAK4001                 : ARR( 0.488E-13, -1250., 0.0);
+{  4253} G2A4000 +PERO5              =  0.460G1A4000 + 0.270GAO4003 + 0.270GAK4001                 : ARR( 0.183E-11,   450., 0.0);
+{  4254} G2A4000 +PERO6              =  0.300G1A4000 + 0.350GAO4003 + 0.350GAK4001                 : ARR( 0.168E-13, -1300., 0.0);
+{  4255} G2A4000 +PERO9              =  0.650G1A4000 + 0.350GAK4001                                : ARR( 0.100E-10,     0., 0.0);
+{  4256} G1A4000                     =       GD02000 +      GAD2000 +      GHO2                    : ARR( 0.200E+15,  5878., 0.0);
+{  4257} G1A4000                     =       GDO3001 +      GCO     +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{  4258} GPO4000                     =       G3K4000 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{  4259} GPO4000 +GHO                =       GPK4000 +      GHO2                                   : ARR( 0.866E-11,     0., 0.0);
+{  4260} GPO4000 +GHO                =       G2P4000                                               : ARR( 0.890E-12,     0., 0.0);
+{  4261} GPO4000+HV               =       G3K4000 +      GNO2                                   :  0.100E+01*SUN;
+{  4262} G2P4000 +GNO                =       G1P4000 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  4263} G2P4000 +GNO                =       GPN4005                                               : ARR( 0.111E-12,  -360., 0.0);
+{  4264} G2P4000 +GHO2               =       GPH4001                                               : ARR( 0.214E-12, -1250., 0.0);
+{  4265} G2P4000 +GNO3               =       G1P4000 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  4266} G2P4000 +MEPERO             =  0.340G1P4000 + 0.330GPO4003 + 0.330GPK4001                 : ARR( 0.565E-13,  -845., 0.0);
+{  4267} G2P4000 +PERO1              =  0.460G1P4000 + 0.270GPO4003 + 0.270GPK4001                 : ARR( 0.434E-13,  -900., 0.0);
+{  4268} G2P4000 +PERO2              =  0.400G1P4000 + 0.300GPO4003 + 0.300GPK4001                 : ARR( 0.162E-13, -1400., 0.0);
+{  4269} G2P4000 +PERO3              =  0.460G1P4000 + 0.270GPO4003 + 0.270GPK4001                 : ARR( 0.488E-13, -1250., 0.0);
+{  4270} G2P4000 +PERO5              =  0.460G1P4000 + 0.270GPO4003 + 0.270GPK4001                 : ARR( 0.183E-11,   450., 0.0);
+{  4271} G2P4000 +PERO6              =  0.300G1P4000 + 0.350GPO4003 + 0.350GPK4001                 : ARR( 0.168E-13, -1300., 0.0);
+{  4272} G2P4000 +PERO9              =  0.650G1P4000 + 0.350GPK4001                                : ARR( 0.100E-10,     0., 0.0);
+{  4273} G1P4000                     =       GD02000 +      GPD2000 +      GHO2                    : ARR( 0.200E+15,  5878., 0.0);
+{  4274} G1P4000                     =       GDO3001 +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{  4275} GHN500D +GHO                =       GNK5007 +      GHO                                    : ARR( 0.715E-11,     0., 0.0);
+{  4276} GHN500D +GHO                =       G2N500B                                               : ARR( 0.203E-11,  -190., 0.0);
+{  4277} GHN500D+HV               =       G1H500b +      GNO2                                   :  0.100E+01*SUN;
+{  4278} GHN500D+HV               =       G1N500B +      GHO                                    :  0.100E+01*SUN;
+{  4279} G1H500b                     =       GD02000 +      GD03000 +      GHO                     : ARR( 0.200E+15,  4917., 0.0);
+{  4280} GNN5009 +GHO                =       G2N501P                                               : ARR( 0.297E-12,     0., 0.0);
+{  4281} GNN5009 +GHO                =       GNN500x +      GHO2                                   : ARR( 0.422E-11,     0., 0.0);
+{  4282} GNN5009+HV               =       G1N500C +      GNO2                                   :  0.100E+01*SUN;
+{  4283} GNN5009+HV               =       G1N501R +      GNO2                                   :  0.100E+01*SUN;
+{  4284} G2N501P +GNO                =       G1N501S +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  4285} G2N501P +GNO                =       GNN5014                                               : ARR( 0.182E-12,  -360., 0.0);
+{  4286} G2N501P +GHO2               =       GHN501l                                               : ARR( 0.242E-12, -1250., 0.0);
+{  4287} G2N501P +GNO3               =       G1N501S +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  4288} G2N501P +MEPERO             =  0.340G1N501S + 0.330GNN5017 + 0.330GNN5018                 : ARR( 0.565E-13,  -845., 0.0);
+{  4289} G2N501P +PERO1              =  0.460G1N501S + 0.270GNN5017 + 0.270GNN5018                 : ARR( 0.434E-13,  -900., 0.0);
+{  4290} G2N501P +PERO2              =  0.400G1N501S + 0.300GNN5017 + 0.300GNN5018                 : ARR( 0.162E-13, -1400., 0.0);
+{  4291} G2N501P +PERO3              =  0.460G1N501S + 0.270GNN5017 + 0.270GNN5018                 : ARR( 0.488E-13, -1250., 0.0);
+{  4292} G2N501P +PERO5              =  0.460G1N501S + 0.270GNN5017 + 0.270GNN5018                 : ARR( 0.183E-11,   450., 0.0);
+{  4293} G2N501P +PERO6              =  0.300G1N501S + 0.350GNN5017 + 0.350GNN5018                 : ARR( 0.168E-13, -1300., 0.0);
+{  4294} G2N501P +PERO9              =  0.650G1N501S + 0.350GNN5018                                : ARR( 0.100E-10,     0., 0.0);
+{  4295} G1N501R                     =       GD02000 +      GDO3000 +      GNO2                    : ARR( 0.200E+15,  6455., 0.0);
+{  4296} G1N501R                     =       GND3001 +      G2O2000                                : ARR( 0.200E+15,  7074., 0.0);
+{  4297} G1N501S                     =       GND3001 +      GDO2000 +      GNO2                    : ARR( 0.200E+15,  6234., 0.0);
+{  4298} G1N501S                     =       GNN4007 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  5296., 0.0);
+{  4299} GHN500E +GHO                =       GNK5009 +      GHO                                    : ARR( 0.703E-11,     0., 0.0);
+{  4300} GHN500E +GHO                =       GHN501m +      GHO2                                   : ARR( 0.422E-11,     0., 0.0);
+{  4301} GHN500E +GHO                =       G2N500C                                               : ARR( 0.199E-11,  -190., 0.0);
+{  4302} GHN500E+HV               =       G1N500C +      GHO                                    :  0.100E+01*SUN;
+{  4303} GHN500E+HV               =       G1H500c +      GNO2                                   :  0.100E+01*SUN;
+{  4304} G1H500c                     =       GD02000 +      GDO3000 +      GHO                     : ARR( 0.200E+15,  4917., 0.0);
+{  4305} GNO500E +GHO                =       GNK5009 +      GHO2                                   : ARR( 0.192E-11,     0., 0.0);
+{  4306} GNO500E +GHO                =       GND5005 +      GHO2                                   : ARR( 0.462E-11,     0., 0.0);
+{  4307} GNO500E+HV               =       G1O5009 +      GNO2                                   :  0.100E+01*SUN;
+{  4308} GNK5009 +GHO                =       G2N501Q                                               : ARR( 0.303E-12,     0., 0.0);
+{  4309} GNK5009 +GHO                =       GND500Q +      GHO2                                   : ARR( 0.431E-11,     0., 0.0);
+{  4310} GNK5009+HV               =       G3K2000 +      GDO3000 +      GNO2                    :  0.100E+01*SUN;
+{  4311} GNK5009+HV               =       GNK3000 +      GD02000                                :  0.100E+01*SUN;
+{  4312} GNK5009+HV               =       G1K5006 +      GNO2                                   :  0.100E+01*SUN;
+{  4313} G2N501Q +GNO                =       G1N501T +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  4314} G2N501Q +GNO                =       GNN5015                                               : ARR( 0.182E-12,  -360., 0.0);
+{  4315} G2N501Q +GHO2               =       GHN501n                                               : ARR( 0.242E-12, -1250., 0.0);
+{  4316} G2N501Q +GNO3               =       G1N501T +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  4317} G2N501Q +MEPERO             =  0.340G1N501T + 0.330GNK500e + 0.330GNK500h                 : ARR( 0.565E-13,  -845., 0.0);
+{  4318} G2N501Q +PERO1              =  0.460G1N501T + 0.270GNK500e + 0.270GNK500h                 : ARR( 0.434E-13,  -900., 0.0);
+{  4319} G2N501Q +PERO2              =  0.400G1N501T + 0.300GNK500e + 0.300GNK500h                 : ARR( 0.162E-13, -1400., 0.0);
+{  4320} G2N501Q +PERO3              =  0.460G1N501T + 0.270GNK500e + 0.270GNK500h                 : ARR( 0.488E-13, -1250., 0.0);
+{  4321} G2N501Q +PERO5              =  0.460G1N501T + 0.270GNK500e + 0.270GNK500h                 : ARR( 0.183E-11,   450., 0.0);
+{  4322} G2N501Q +PERO6              =  0.300G1N501T + 0.350GNK500e + 0.350GNK500h                 : ARR( 0.168E-13, -1300., 0.0);
+{  4323} G2N501Q +PERO9              =  0.650G1N501T + 0.350GNK500h                                : ARR( 0.100E-10,     0., 0.0);
+{  4324} G1N501T                     =       GND4008 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4465., 0.0);
+{  4325} GNN500A +GHO                =       G2N501R                                               : ARR( 0.176E-12,     0., 0.0);
+{  4326} GNN500A +GHO                =       GNN500U +      GHO2                                   : ARR( 0.176E-11,     0., 0.0);
+{  4327} GNN500A +GHO                =       GNK500C +      GNO2                                   : ARR( 0.123E-12,     0., 0.0);
+{  4328} GNN500A +GHO                =       G1N500T                                               : ARR( 0.220E-17,    85., 2.0);
+{  4329} GNN500A+HV               =       G1N500F +      GNO2                                   :  0.100E+01*SUN;
+{  4330} GNN500A+HV               =       G1N500D +      GNO2                                   :  0.100E+01*SUN;
+{  4331} G2N501R +GNO                =       G1N501U +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  4332} G2N501R +GNO                =       GNN500e                                               : ARR( 0.182E-12,  -360., 0.0);
+{  4333} G2N501R +GHO2               =       GHN501o                                               : ARR( 0.242E-12, -1250., 0.0);
+{  4334} G2N501R +GNO3               =       G1N501U +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  4335} G2N501R +MEPERO             =  0.480G1N501U + 0.260GNN500r + 0.260GNN5019                 : ARR( 0.164E-12,  -795., 0.0);
+{  4336} G2N501R +PERO1              =  0.600G1N501U + 0.200GNN500r + 0.200GNN5019                 : ARR( 0.126E-12,  -850., 0.0);
+{  4337} G2N501R +PERO2              =  0.560G1N501U + 0.220GNN500r + 0.220GNN5019                 : ARR( 0.471E-13, -1350., 0.0);
+{  4338} G2N501R +PERO3              =  0.600G1N501U + 0.200GNN500r + 0.200GNN5019                 : ARR( 0.142E-12, -1200., 0.0);
+{  4339} G2N501R +PERO5              =  0.600G1N501U + 0.200GNN500r + 0.200GNN5019                 : ARR( 0.533E-11,   500., 0.0);
+{  4340} G2N501R +PERO6              =  0.460G1N501U + 0.270GNN500r + 0.270GNN5019                 : ARR( 0.488E-13, -1250., 0.0);
+{  4341} G2N501R +PERO9              =  0.800G1N501U + 0.200GNN5019                                : ARR( 0.100E-10,     0., 0.0);
+{  4342} G1N501U                     =       GNN4008 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{  4343} GHN500F +GHO                =       GHN501i +      GHO2                                   : ARR( 0.173E-11,     0., 0.0);
+{  4344} GHN500F +GHO                =       GND5005 +      GHO                                    : ARR( 0.166E-10,     0., 0.0);
+{  4345} GHN500F +GHO                =       G2N500D                                               : ARR( 0.196E-11,  -190., 0.0);
+{  4346} GHN500F+HV               =       G1H500d +      GNO2                                   :  0.100E+01*SUN;
+{  4347} GHN500F+HV               =       G1N500D +      GHO                                    :  0.100E+01*SUN;
+{  4348} G1H500d                     =       GD02000 +      GHD3000 +      GHO2                    : ARR( 0.200E+15,  3708., 0.0);
+{  4349} GND5005 +GHO                =       GND500Q +      GHO2                                   : ARR( 0.174E-11,     0., 0.0);
+{  4350} GND5005 +GHO                =       G3N5005                                               : ARR( 0.216E-10,     0., 0.0);
+{  4351} GND5005 +GNO3               =       G3N5005 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{  4352} GND5005+HV               =       G1D5001 +      GNO2                                   :  0.100E+01*SUN;
+{  4353} GND5005+HV               =       G2N4009 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{  4354} GND5005+HV               =       GNK3000 +      GD02000                                :  0.100E+01*SUN;
+{  4355} G3N5005 +GHO2               =  0.800GGN5006 + 0.200GAN5006 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  4356} G3N5005 +GNO                =       G2N4009 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{  4357} G3N5005 +GNO2               =       GPN5006                                               : ARR( 0.330E-08,     0.,-1.0);
+{  4358} G3N5005 +GNO3               =       G2N4009 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{  4359} G3N5005 +MEPERO             =  0.685G2N4009 + 0.315GAN5006 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  4360} G3N5005 +PERO1              =  0.800G2N4009 + 0.200GAN5006 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  4361} G3N5005 +PERO2              =  0.750G2N4009 + 0.250GAN5006 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  4362} G3N5005 +PERO3              =  0.800G2N4009 + 0.200GAN5006 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  4363} G3N5005 +PERO5              =  0.650G2N4009 + 0.350GAN5006 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  4364} G3N5005 +PERO6              =  0.650G2N4009 + 0.350GAN5006 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  4365} G3N5005 +PERO9              =       G2N4009 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{  4366} G2N4009 +GNO                =       G1N4009 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  4367} G2N4009 +GNO                =       GNN4009                                               : ARR( 0.111E-12,  -360., 0.0);
+{  4368} G2N4009 +GHO2               =       GHN400B                                               : ARR( 0.214E-12, -1250., 0.0);
+{  4369} G2N4009 +GNO3               =       G1N4009 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  4370} G2N4009 +MEPERO             =  0.480G1N4009 + 0.260GNO4008 + 0.260GND4007                 : ARR( 0.164E-12,  -795., 0.0);
+{  4371} G2N4009 +PERO1              =  0.600G1N4009 + 0.200GNO4008 + 0.200GND4007                 : ARR( 0.126E-12,  -850., 0.0);
+{  4372} G2N4009 +PERO2              =  0.560G1N4009 + 0.220GNO4008 + 0.220GND4007                 : ARR( 0.471E-13, -1350., 0.0);
+{  4373} G2N4009 +PERO3              =  0.600G1N4009 + 0.200GNO4008 + 0.200GND4007                 : ARR( 0.142E-12, -1200., 0.0);
+{  4374} G2N4009 +PERO5              =  0.600G1N4009 + 0.200GNO4008 + 0.200GND4007                 : ARR( 0.533E-11,   500., 0.0);
+{  4375} G2N4009 +PERO6              =  0.460G1N4009 + 0.270GNO4008 + 0.270GND4007                 : ARR( 0.488E-13, -1250., 0.0);
+{  4376} G2N4009 +PERO9              =  0.800G1N4009 + 0.200GND4007                                : ARR( 0.100E-10,     0., 0.0);
+{  4377} G1N4009 +OXYGEN             =       GND4007 +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{  4378} G1N4009                     =       G2N400A                                               : ARR( 0.240E+12,  4177., 0.0);
+{  4379} G1N4009                     =       GDO3001 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7042., 0.0);
+{  4380} G2N400A +GNO                =       G1N400A +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  4381} G2N400A +GNO                =       GNN400A                                               : ARR( 0.111E-12,  -360., 0.0);
+{  4382} G2N400A +GHO2               =       GHN400C                                               : ARR( 0.214E-12, -1250., 0.0);
+{  4383} G2N400A +GNO3               =       G1N400A +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  4384} G2N400A +MEPERO             =  0.480G1N400A + 0.260GNO4009 + 0.260GND4009                 : ARR( 0.164E-12,  -795., 0.0);
+{  4385} G2N400A +PERO1              =  0.600G1N400A + 0.200GNO4009 + 0.200GND4009                 : ARR( 0.126E-12,  -850., 0.0);
+{  4386} G2N400A +PERO2              =  0.560G1N400A + 0.220GNO4009 + 0.220GND4009                 : ARR( 0.471E-13, -1350., 0.0);
+{  4387} G2N400A +PERO3              =  0.600G1N400A + 0.200GNO4009 + 0.200GND4009                 : ARR( 0.142E-12, -1200., 0.0);
+{  4388} G2N400A +PERO5              =  0.600G1N400A + 0.200GNO4009 + 0.200GND4009                 : ARR( 0.533E-11,   500., 0.0);
+{  4389} G2N400A +PERO6              =  0.460G1N400A + 0.270GNO4009 + 0.270GND4009                 : ARR( 0.488E-13, -1250., 0.0);
+{  4390} G2N400A +PERO9              =  0.800G1N400A + 0.200GND4009                                : ARR( 0.100E-10,     0., 0.0);
+{  4391} G1N400A                     =       GND400A +      GHO2                                   : ARR( 0.160E+12,  3252., 0.0);
+{  4392} G1N400A                     =       GND3004 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{  4393} GHO500B +GHO                =       GHK5006 +      GHO2                                   : ARR( 0.107E-10,     0., 0.0);
+{  4394} GHO500B +GHO                =       GKO5007 +      GHO                                    : ARR( 0.347E-10,     0., 0.0);
+{  4395} GHO500B +GHO                =       G2O5008                                               : ARR( 0.197E-11,  -190., 0.0);
+{  4396} GHO500B+HV               =       G1O5008 +      GHO                                    :  0.100E+01*SUN;
+{  4397} GHK5006 +GHO                =       GKK5001 +      GHO                                    : ARR( 0.219E-10,     0., 0.0);
+{  4398} GHK5006 +GHO                =       G2K5004                                               : ARR( 0.204E-11,  -190., 0.0);
+{  4399} GHK5006+HV               =       G3K3000 +      GD02000 +      GHO                     :  0.100E+01*SUN;
+{  4400} GHK5006+HV               =       G1K5004 +      GHO                                    :  0.100E+01*SUN;
+{  4401} GG03000 +GHO                =       G2G3001                                               : ARR( 0.728E-12,     0., 0.0);
+{  4402} GG03000 +GHO                =       G3K3000                                               : ARR( 0.197E-11,  -190., 0.0);
+{  4403} GG03000+HV               =       G202000 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{  4404} G2G3001 +GNO                =       G1G3001 +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{  4405} G2G3001 +GNO                =       GGN3001                                               : ARR( 0.622E-13,  -360., 0.0);
+{  4406} G2G3001 +GHO2               =       GGH3001                                               : ARR( 0.179E-12, -1250., 0.0);
+{  4407} G2G3001 +GNO3               =       G1G3001 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  4408} G2G3001 +MEPERO             =  0.340G1G3001 + 0.330GGO3001 + 0.330GGK3000                 : ARR( 0.565E-13,  -845., 0.0);
+{  4409} G2G3001 +PERO1              =  0.460G1G3001 + 0.270GGO3001 + 0.270GGK3000                 : ARR( 0.434E-13,  -900., 0.0);
+{  4410} G2G3001 +PERO2              =  0.400G1G3001 + 0.300GGO3001 + 0.300GGK3000                 : ARR( 0.162E-13, -1400., 0.0);
+{  4411} G2G3001 +PERO3              =  0.460G1G3001 + 0.270GGO3001 + 0.270GGK3000                 : ARR( 0.488E-13, -1250., 0.0);
+{  4412} G2G3001 +PERO5              =  0.460G1G3001 + 0.270GGO3001 + 0.270GGK3000                 : ARR( 0.183E-11,   450., 0.0);
+{  4413} G2G3001 +PERO6              =  0.300G1G3001 + 0.350GGO3001 + 0.350GGK3000                 : ARR( 0.168E-13, -1300., 0.0);
+{  4414} G2G3001 +PERO9              =  0.650G1G3001 + 0.350GGK3000                                : ARR( 0.100E-10,     0., 0.0);
+{  4415} G1G3001                     =       GD02000 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5009., 0.0);
+{  4416} GA03000 +GHO                =       G2A3000                                               : ARR( 0.167E-12,     0., 0.0);
+{  4417} GA03000 +GHO                =       G2A3001                                               : ARR( 0.516E-12,     0., 0.0);
+{  4418} GA03000 +GHO                =       G202000 +      GCO2                                   : ARR( 0.517E-12,     0., 0.0);
+{  4419} G2A3001 +GNO                =       G1A3001 +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{  4420} G2A3001 +GNO                =       GAN3001                                               : ARR( 0.622E-13,  -360., 0.0);
+{  4421} G2A3001 +GHO2               =       GAH3001                                               : ARR( 0.179E-12, -1250., 0.0);
+{  4422} G2A3001 +GNO3               =       G1A3001 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  4423} G2A3001 +MEPERO             =  0.340G1A3001 + 0.330GAO3001 + 0.330GAK3000                 : ARR( 0.565E-13,  -845., 0.0);
+{  4424} G2A3001 +PERO1              =  0.460G1A3001 + 0.270GAO3001 + 0.270GAK3000                 : ARR( 0.434E-13,  -900., 0.0);
+{  4425} G2A3001 +PERO2              =  0.400G1A3001 + 0.300GAO3001 + 0.300GAK3000                 : ARR( 0.162E-13, -1400., 0.0);
+{  4426} G2A3001 +PERO3              =  0.460G1A3001 + 0.270GAO3001 + 0.270GAK3000                 : ARR( 0.488E-13, -1250., 0.0);
+{  4427} G2A3001 +PERO5              =  0.460G1A3001 + 0.270GAO3001 + 0.270GAK3000                 : ARR( 0.183E-11,   450., 0.0);
+{  4428} G2A3001 +PERO6              =  0.300G1A3001 + 0.350GAO3001 + 0.350GAK3000                 : ARR( 0.168E-13, -1300., 0.0);
+{  4429} G2A3001 +PERO9              =  0.650G1A3001 + 0.350GAK3000                                : ARR( 0.100E-10,     0., 0.0);
+{  4430} G1A3001                     =       GD02000 +      GCO     +      GHO                     : ARR( 0.200E+15,  4978., 0.0);
+{  4431} GP03000                     =       G3K3000 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{  4432} GP03000 +GHO                =       G2P3000                                               : ARR( 0.168E-12,     0., 0.0);
+{  4433} GP03000 +GHO                =       G2P3001                                               : ARR( 0.701E-12,     0., 0.0);
+{  4434} GP03000+HV               =       G3K3000 +      GNO2                                   :  0.100E+01*SUN;
+{  4435} G2P3001 +GNO                =       G1P3001 +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{  4436} G2P3001 +GNO                =       GPN3001                                               : ARR( 0.622E-13,  -360., 0.0);
+{  4437} G2P3001 +GHO2               =       GPH3001                                               : ARR( 0.179E-12, -1250., 0.0);
+{  4438} G2P3001 +GNO3               =       G1P3001 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  4439} G2P3001 +MEPERO             =  0.340G1P3001 + 0.330GPO3001 + 0.330GPK3000                 : ARR( 0.565E-13,  -845., 0.0);
+{  4440} G2P3001 +PERO1              =  0.460G1P3001 + 0.270GPO3001 + 0.270GPK3000                 : ARR( 0.434E-13,  -900., 0.0);
+{  4441} G2P3001 +PERO2              =  0.400G1P3001 + 0.300GPO3001 + 0.300GPK3000                 : ARR( 0.162E-13, -1400., 0.0);
+{  4442} G2P3001 +PERO3              =  0.460G1P3001 + 0.270GPO3001 + 0.270GPK3000                 : ARR( 0.488E-13, -1250., 0.0);
+{  4443} G2P3001 +PERO5              =  0.460G1P3001 + 0.270GPO3001 + 0.270GPK3000                 : ARR( 0.183E-11,   450., 0.0);
+{  4444} G2P3001 +PERO6              =  0.300G1P3001 + 0.350GPO3001 + 0.350GPK3000                 : ARR( 0.168E-13, -1300., 0.0);
+{  4445} G2P3001 +PERO9              =  0.650G1P3001 + 0.350GPK3000                                : ARR( 0.100E-10,     0., 0.0);
+{  4446} G1P3001                     =       GD02000 +      GCO     +      GNO2                    : ARR( 0.200E+15,  5009., 0.0);
+{  4447} GNK500A +GHO                =       G2N501S                                               : ARR( 0.876E-12,     0., 0.0);
+{  4448} GNK500A +GHO                =       GND500M +      GHO2                                   : ARR( 0.130E-10,     0., 0.0);
+{  4449} GNK500A+HV               =       G1K5005 +      GNO2                                   :  0.100E+01*SUN;
+{  4450} GNK500A+HV               =       G3N3001 +      G2O2000                                :  0.100E+01*SUN;
+{  4451} G2N501S +GNO                =       G1N501W +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  4452} G2N501S +GNO                =       GNN501A                                               : ARR( 0.182E-12,  -360., 0.0);
+{  4453} G2N501S +GHO2               =       GHN501p                                               : ARR( 0.242E-12, -1250., 0.0);
+{  4454} G2N501S +GNO3               =       G1N501W +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  4455} G2N501S +MEPERO             =  0.340G1N501W + 0.330GNK500i + 0.330GNK500j                 : ARR( 0.565E-13,  -845., 0.0);
+{  4456} G2N501S +PERO1              =  0.460G1N501W + 0.270GNK500i + 0.270GNK500j                 : ARR( 0.434E-13,  -900., 0.0);
+{  4457} G2N501S +PERO2              =  0.400G1N501W + 0.300GNK500i + 0.300GNK500j                 : ARR( 0.162E-13, -1400., 0.0);
+{  4458} G2N501S +PERO3              =  0.460G1N501W + 0.270GNK500i + 0.270GNK500j                 : ARR( 0.488E-13, -1250., 0.0);
+{  4459} G2N501S +PERO5              =  0.460G1N501W + 0.270GNK500i + 0.270GNK500j                 : ARR( 0.183E-11,   450., 0.0);
+{  4460} G2N501S +PERO6              =  0.300G1N501W + 0.350GNK500i + 0.350GNK500j                 : ARR( 0.168E-13, -1300., 0.0);
+{  4461} G2N501S +PERO9              =  0.650G1N501W + 0.350GNK500j                                : ARR( 0.100E-10,     0., 0.0);
+{  4462} G1N501W                     =       G3N3001 +      GDO2000                                : ARR( 0.200E+15,  3069., 0.0);
+{  4463} GHK5007 +GHO                =       GKK5002 +      GHO                                    : ARR( 0.213E-10,     0., 0.0);
+{  4464} GHK5007 +GHO                =       GHD500F +      GHO2                                   : ARR( 0.133E-10,     0., 0.0);
+{  4465} GHK5007 +GHO                =       G2K5005                                               : ARR( 0.198E-11,  -190., 0.0);
+{  4466} GHK5007+HV               =       G1K5005 +      GHO                                    :  0.100E+01*SUN;
+{  4467} GHK5007+HV               =       G3H3001 +      G2O2000                                :  0.100E+01*SUN;
+{  4468} G3H3001 +GHO2               =  0.800GGH3001 + 0.200GAH3001 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  4469} G3H3001 +GNO                =       GD02000 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{  4470} G3H3001 +GNO2               =       GPH3001                                               : ARR( 0.330E-08,     0.,-1.0);
+{  4471} G3H3001 +GNO3               =       GD02000 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{  4472} G3H3001 +MEPERO             =  0.685GD02000 + 0.315GAH3001 + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  4473} G3H3001 +PERO1              =  0.800GD02000 + 0.200GAH3001 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  4474} G3H3001 +PERO2              =  0.750GD02000 + 0.250GAH3001 + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  4475} G3H3001 +PERO3              =  0.800GD02000 + 0.200GAH3001 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  4476} G3H3001 +PERO5              =  0.650GD02000 + 0.350GAH3001 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  4477} G3H3001 +PERO6              =  0.650GD02000 + 0.350GAH3001 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  4478} G3H3001 +PERO9              =       GD02000 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{  4479} GKO5009 +GHO                =       GKK5002 +      GHO2                                   : ARR( 0.559E-11,     0., 0.0);
+{  4480} GKO5009 +GHO                =       GDK5003 +      GHO2                                   : ARR( 0.139E-10,     0., 0.0);
+{  4481} GKO5009+HV               =       G3K3002 +      G2O2000                                :  0.100E+01*SUN;
+{  4482} GKK5002 +GHO                =       G2K500O                                               : ARR( 0.877E-12,     0., 0.0);
+{  4483} GKK5002 +GHO                =       GDK500D +      GHO2                                   : ARR( 0.130E-10,     0., 0.0);
+{  4484} GKK5002+HV               =       G3K2000 +      G3K3001                                :  0.100E+01*SUN;
+{  4485} G2K500O +GNO                =       G1K500P +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  4486} G2K500O +GNO                =       GNK500c                                               : ARR( 0.182E-12,  -360., 0.0);
+{  4487} G2K500O +GHO2               =       GHK500U                                               : ARR( 0.242E-12, -1250., 0.0);
+{  4488} G2K500O +GNO3               =       G1K500P +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  4489} G2K500O +MEPERO             =  0.340G1K500P + 0.330GKK500A + 0.330GKK500B                 : ARR( 0.565E-13,  -845., 0.0);
+{  4490} G2K500O +PERO1              =  0.460G1K500P + 0.270GKK500A + 0.270GKK500B                 : ARR( 0.434E-13,  -900., 0.0);
+{  4491} G2K500O +PERO2              =  0.400G1K500P + 0.300GKK500A + 0.300GKK500B                 : ARR( 0.162E-13, -1400., 0.0);
+{  4492} G2K500O +PERO3              =  0.460G1K500P + 0.270GKK500A + 0.270GKK500B                 : ARR( 0.488E-13, -1250., 0.0);
+{  4493} G2K500O +PERO5              =  0.460G1K500P + 0.270GKK500A + 0.270GKK500B                 : ARR( 0.183E-11,   450., 0.0);
+{  4494} G2K500O +PERO6              =  0.300G1K500P + 0.350GKK500A + 0.350GKK500B                 : ARR( 0.168E-13, -1300., 0.0);
+{  4495} G2K500O +PERO9              =  0.650G1K500P + 0.350GKK500B                                : ARR( 0.100E-10,     0., 0.0);
+{  4496} G1K500P                     =       G3K2000 +      GDO2000 +      GCO                     : ARR( 0.200E+15,  3326., 0.0);
+{  4497} GGO3000 +GHO                =       GGD3000 +      GHO2                                   : ARR( 0.409E-11,     0., 0.0);
+{  4498} GGO3000 +GHO                =       G2G3002                                               : ARR( 0.876E-12,     0., 0.0);
+{  4499} GGO3000 +GHO                =       G3K3001                                               : ARR( 0.193E-11,  -190., 0.0);
+{  4500} GGO3000+HV               =       G2O2000 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{  4501} G2G3002 +GNO                =       G1G3002 +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{  4502} G2G3002 +GNO                =       GGN3002                                               : ARR( 0.622E-13,  -360., 0.0);
+{  4503} G2G3002 +GHO2               =       GGH3002                                               : ARR( 0.179E-12, -1250., 0.0);
+{  4504} G2G3002 +GNO3               =       G1G3002 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  4505} G2G3002 +MEPERO             =  0.340G1G3002 + 0.330GGO3002 + 0.330GGK3001                 : ARR( 0.565E-13,  -845., 0.0);
+{  4506} G2G3002 +PERO1              =  0.460G1G3002 + 0.270GGO3002 + 0.270GGK3001                 : ARR( 0.434E-13,  -900., 0.0);
+{  4507} G2G3002 +PERO2              =  0.400G1G3002 + 0.300GGO3002 + 0.300GGK3001                 : ARR( 0.162E-13, -1400., 0.0);
+{  4508} G2G3002 +PERO3              =  0.460G1G3002 + 0.270GGO3002 + 0.270GGK3001                 : ARR( 0.488E-13, -1250., 0.0);
+{  4509} G2G3002 +PERO5              =  0.460G1G3002 + 0.270GGO3002 + 0.270GGK3001                 : ARR( 0.183E-11,   450., 0.0);
+{  4510} G2G3002 +PERO6              =  0.300G1G3002 + 0.350GGO3002 + 0.350GGK3001                 : ARR( 0.168E-13, -1300., 0.0);
+{  4511} G2G3002 +PERO9              =  0.650G1G3002 + 0.350GGK3001                                : ARR( 0.100E-10,     0., 0.0);
+{  4512} G1G3002                     =       GDO2000 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5263., 0.0);
+{  4513} GAO3000 +GHO                =       GAD3000 +      GHO2                                   : ARR( 0.413E-11,     0., 0.0);
+{  4514} GAO3000 +GHO                =       G2A3002                                               : ARR( 0.655E-12,     0., 0.0);
+{  4515} GAO3000 +GHO                =       G2O2000 +      GCO2                                   : ARR( 0.534E-12,     0., 0.0);
+{  4516} G2A3002 +GNO                =       G1A3002 +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{  4517} G2A3002 +GNO                =       GAN3002                                               : ARR( 0.622E-13,  -360., 0.0);
+{  4518} G2A3002 +GHO2               =       GAH3002                                               : ARR( 0.179E-12, -1250., 0.0);
+{  4519} G2A3002 +GNO3               =       G1A3002 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  4520} G2A3002 +MEPERO             =  0.340G1A3002 + 0.330GAO3002 + 0.330GAK3001                 : ARR( 0.565E-13,  -845., 0.0);
+{  4521} G2A3002 +PERO1              =  0.460G1A3002 + 0.270GAO3002 + 0.270GAK3001                 : ARR( 0.434E-13,  -900., 0.0);
+{  4522} G2A3002 +PERO2              =  0.400G1A3002 + 0.300GAO3002 + 0.300GAK3001                 : ARR( 0.162E-13, -1400., 0.0);
+{  4523} G2A3002 +PERO3              =  0.460G1A3002 + 0.270GAO3002 + 0.270GAK3001                 : ARR( 0.488E-13, -1250., 0.0);
+{  4524} G2A3002 +PERO5              =  0.460G1A3002 + 0.270GAO3002 + 0.270GAK3001                 : ARR( 0.183E-11,   450., 0.0);
+{  4525} G2A3002 +PERO6              =  0.300G1A3002 + 0.350GAO3002 + 0.350GAK3001                 : ARR( 0.168E-13, -1300., 0.0);
+{  4526} G2A3002 +PERO9              =  0.650G1A3002 + 0.350GAK3001                                : ARR( 0.100E-10,     0., 0.0);
+{  4527} G1A3002                     =       GDO2000 +      GCO     +      GHO                     : ARR( 0.200E+15,  5232., 0.0);
+{  4528} GPO3000                     =       G3K3001 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{  4529} GPO3000 +GHO                =       GPD3000 +      GHO2                                   : ARR( 0.414E-11,     0., 0.0);
+{  4530} GPO3000 +GHO                =       G2P3002                                               : ARR( 0.886E-12,     0., 0.0);
+{  4531} GPO3000+HV               =       G3K3001 +      GNO2                                   :  0.100E+01*SUN;
+{  4532} G2P3002 +GNO                =       G1P3002 +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{  4533} G2P3002 +GNO                =       GPN3002                                               : ARR( 0.622E-13,  -360., 0.0);
+{  4534} G2P3002 +GHO2               =       GPH3002                                               : ARR( 0.179E-12, -1250., 0.0);
+{  4535} G2P3002 +GNO3               =       G1P3002 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  4536} G2P3002 +MEPERO             =  0.340G1P3002 + 0.330GPO3002 + 0.330GPK3001                 : ARR( 0.565E-13,  -845., 0.0);
+{  4537} G2P3002 +PERO1              =  0.460G1P3002 + 0.270GPO3002 + 0.270GPK3001                 : ARR( 0.434E-13,  -900., 0.0);
+{  4538} G2P3002 +PERO2              =  0.400G1P3002 + 0.300GPO3002 + 0.300GPK3001                 : ARR( 0.162E-13, -1400., 0.0);
+{  4539} G2P3002 +PERO3              =  0.460G1P3002 + 0.270GPO3002 + 0.270GPK3001                 : ARR( 0.488E-13, -1250., 0.0);
+{  4540} G2P3002 +PERO5              =  0.460G1P3002 + 0.270GPO3002 + 0.270GPK3001                 : ARR( 0.183E-11,   450., 0.0);
+{  4541} G2P3002 +PERO6              =  0.300G1P3002 + 0.350GPO3002 + 0.350GPK3001                 : ARR( 0.168E-13, -1300., 0.0);
+{  4542} G2P3002 +PERO9              =  0.650G1P3002 + 0.350GPK3001                                : ARR( 0.100E-10,     0., 0.0);
+{  4543} G1P3002                     =       GDO2000 +      GCO     +      GNO2                    : ARR( 0.200E+15,  5263., 0.0);
+{  4544} GNN500B +GHO                =       GNK5006 +      GNO2                                   : ARR( 0.103E-12,     0., 0.0);
+{  4545} GNN500B +GHO                =       GNK500B +      GNO2                                   : ARR( 0.127E-12,     0., 0.0);
+{  4546} GNN500B +GHO                =       GNN500s +      GHO2                                   : ARR( 0.867E-12,     0., 0.0);
+{  4547} GNN500B +GHO                =       G1N5013                                               : ARR( 0.226E-17,    85., 2.0);
+{  4548} GNN500B+HV               =       G1N500g +      GNO2                                   :  0.100E+01*SUN;
+{  4549} GNN500B+HV               =       G1N500E +      GNO2                                   :  0.100E+01*SUN;
+{  4550} GHN500G +GHO                =       GNK500B +      GHO                                    : ARR( 0.417E-10,     0., 0.0);
+{  4551} GHN500G +GHO                =       GHN501q +      GHO2                                   : ARR( 0.407E-11,     0., 0.0);
+{  4552} GHN500G +GHO                =       G2N500E                                               : ARR( 0.192E-11,  -190., 0.0);
+{  4553} GHN500G+HV               =       G1H500D +      GNO2                                   :  0.100E+01*SUN;
+{  4554} GHN500G+HV               =       G1N500E +      GHO                                    :  0.100E+01*SUN;
+{  4555} GNO500F +GHO                =       GNK500B +      GHO2                                   : ARR( 0.108E-10,     0., 0.0);
+{  4556} GNO500F +GHO                =       GND500S +      GHO2                                   : ARR( 0.422E-11,     0., 0.0);
+{  4557} GNO500F+HV               =       G1O500H +      GNO2                                   :  0.100E+01*SUN;
+{  4558} GNK500B +GHO                =       GKK5003 +      GNO2                                   : ARR( 0.322E-12,     0., 0.0);
+{  4559} GNK500B +GHO                =       G2N501T                                               : ARR( 0.183E-12,     0., 0.0);
+{  4560} GNK500B +GHO                =       GND500K +      GHO2                                   : ARR( 0.260E-11,     0., 0.0);
+{  4561} GNK500B+HV               =       G1K500C +      GNO2                                   :  0.100E+01*SUN;
+{  4562} GNK500B+HV               =       G3N4002 +      GCH2O   +      GHO2                    :  0.100E+01*SUN;
+{  4563} GNK500B+HV               =       G2D2000 +      GKO3000 +      GNO2                    :  0.100E+01*SUN;
+{  4564} G2N501T +GNO                =       G1N501X +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  4565} G2N501T +GNO                =       GNN5018                                               : ARR( 0.182E-12,  -360., 0.0);
+{  4566} G2N501T +GHO2               =       GHN501r                                               : ARR( 0.242E-12, -1250., 0.0);
+{  4567} G2N501T +GNO3               =       G1N501X +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  4568} G2N501T +MEPERO             =  0.340G1N501X + 0.330GNK500k + 0.330GNK500j                 : ARR( 0.565E-13,  -845., 0.0);
+{  4569} G2N501T +PERO1              =  0.460G1N501X + 0.270GNK500k + 0.270GNK500j                 : ARR( 0.434E-13,  -900., 0.0);
+{  4570} G2N501T +PERO2              =  0.400G1N501X + 0.300GNK500k + 0.300GNK500j                 : ARR( 0.162E-13, -1400., 0.0);
+{  4571} G2N501T +PERO3              =  0.460G1N501X + 0.270GNK500k + 0.270GNK500j                 : ARR( 0.488E-13, -1250., 0.0);
+{  4572} G2N501T +PERO5              =  0.460G1N501X + 0.270GNK500k + 0.270GNK500j                 : ARR( 0.183E-11,   450., 0.0);
+{  4573} G2N501T +PERO6              =  0.300G1N501X + 0.350GNK500k + 0.350GNK500j                 : ARR( 0.168E-13, -1300., 0.0);
+{  4574} G2N501T +PERO9              =  0.650G1N501X + 0.350GNK500j                                : ARR( 0.100E-10,     0., 0.0);
+{  4575} G1N501X                     =       GND3001 +      G3K2001                                : ARR( 0.200E+15,  3009., 0.0);
+{  4576} GND4000 +GHO                =       G3N4002                                               : ARR( 0.213E-10,     0., 0.0);
+{  4577} GND4000 +GNO3               =       G3N4002 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{  4578} GND4000+HV               =       G1D4000 +      GNO2                                   :  0.100E+01*SUN;
+{  4579} GND4000+HV               =       G2N3001 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{  4580} GND4000+HV               =       G2D2000 +      GD02000 +      GNO2                    :  0.100E+01*SUN;
+{  4581} GHD5002 +GHO                =       GDK5002 +      GHO                                    : ARR( 0.341E-10,     0., 0.0);
+{  4582} GHD5002 +GHO                =       G2H500T                                               : ARR( 0.455E-11,     0., 0.0);
+{  4583} GHD5002 +GHO                =       G3H5002                                               : ARR( 0.211E-10,     0., 0.0);
+{  4584} GHD5002 +GHO                =       G2D5008                                               : ARR( 0.193E-11,  -190., 0.0);
+{  4585} GHD5002 +GNO3               =       G3H5002 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{  4586} GHD5002+HV               =       G1D5007 +      GHO                                    :  0.100E+01*SUN;
+{  4587} GHD5002+HV               =       G2H4007 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{  4588} GHD5002+HV               =       G2K3000 +      GD02000 +      GHO                     :  0.100E+01*SUN;
+{  4589} G2H500T +GNO                =       G1H500e +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  4590} G2H500T +GNO                =       GHN501m                                               : ARR( 0.182E-12,  -360., 0.0);
+{  4591} G2H500T +GHO2               =       GHH500R                                               : ARR( 0.242E-12, -1250., 0.0);
+{  4592} G2H500T +GNO3               =       G1H500e +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  4593} G2H500T +MEPERO             =  0.340G1H500e + 0.330GHD500G + 0.330GHD500F                 : ARR( 0.565E-13,  -845., 0.0);
+{  4594} G2H500T +PERO1              =  0.460G1H500e + 0.270GHD500G + 0.270GHD500F                 : ARR( 0.434E-13,  -900., 0.0);
+{  4595} G2H500T +PERO2              =  0.400G1H500e + 0.300GHD500G + 0.300GHD500F                 : ARR( 0.162E-13, -1400., 0.0);
+{  4596} G2H500T +PERO3              =  0.460G1H500e + 0.270GHD500G + 0.270GHD500F                 : ARR( 0.488E-13, -1250., 0.0);
+{  4597} G2H500T +PERO5              =  0.460G1H500e + 0.270GHD500G + 0.270GHD500F                 : ARR( 0.183E-11,   450., 0.0);
+{  4598} G2H500T +PERO6              =  0.300G1H500e + 0.350GHD500G + 0.350GHD500F                 : ARR( 0.168E-13, -1300., 0.0);
+{  4599} G2H500T +PERO9              =  0.650G1H500e + 0.350GHD500F                                : ARR( 0.100E-10,     0., 0.0);
+{  4600} G3H5002 +GHO2               =  0.800GGH5002 + 0.200GAH5002 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  4601} G3H5002 +GNO                =       G2H4007 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{  4602} G3H5002 +GNO2               =       GPH5002                                               : ARR( 0.330E-08,     0.,-1.0);
+{  4603} G3H5002 +GNO3               =       G2H4007 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{  4604} G3H5002 +MEPERO             =  0.685G2H4007 + 0.315GAH5002 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  4605} G3H5002 +PERO1              =  0.800G2H4007 + 0.200GAH5002 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  4606} G3H5002 +PERO2              =  0.750G2H4007 + 0.250GAH5002 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  4607} G3H5002 +PERO3              =  0.800G2H4007 + 0.200GAH5002 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  4608} G3H5002 +PERO5              =  0.650G2H4007 + 0.350GAH5002 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  4609} G3H5002 +PERO6              =  0.650G2H4007 + 0.350GAH5002 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  4610} G3H5002 +PERO9              =       G2H4007 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{  4611} G2D5008 +GNO                =       G1D5007 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  4612} G2D5008 +GNO                =       GND5003                                               : ARR( 0.182E-12,  -360., 0.0);
+{  4613} G2D5008 +GHO2               =       GHD5002                                               : ARR( 0.242E-12, -1250., 0.0);
+{  4614} G2D5008 +GNO3               =       G1D5007 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  4615} G2D5008 +MEPERO             =  0.480G1D5007 + 0.260GDO5000 + 0.260GDK5002                 : ARR( 0.616E-11,   905., 0.0);
+{  4616} G2D5008 +PERO1              =  0.600G1D5007 + 0.200GDO5000 + 0.200GDK5002                 : ARR( 0.473E-11,   850., 0.0);
+{  4617} G2D5008 +PERO2              =  0.560G1D5007 + 0.220GDO5000 + 0.220GDK5002                 : ARR( 0.177E-11,   350., 0.0);
+{  4618} G2D5008 +PERO3              =  0.600G1D5007 + 0.200GDO5000 + 0.200GDK5002                 : ARR( 0.533E-11,   500., 0.0);
+{  4619} G2D5008 +PERO5              =  0.600G1D5007 + 0.200GDO5000 + 0.200GDK5002                 : ARR( 0.200E-09,  2200., 0.0);
+{  4620} G2D5008 +PERO6              =  0.460G1D5007 + 0.270GDO5000 + 0.270GDK5002                 : ARR( 0.183E-11,   450., 0.0);
+{  4621} G2D5008 +PERO9              =  0.800G1D5007 + 0.200GDK5002                                : ARR( 0.100E-10,     0., 0.0);
+{  4622} G2H4007 +GNO                =       G1H4007 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  4623} G2H4007 +GNO                =       GHN4008                                               : ARR( 0.111E-12,  -360., 0.0);
+{  4624} G2H4007 +GHO2               =       GHH4003                                               : ARR( 0.214E-12, -1250., 0.0);
+{  4625} G2H4007 +GNO3               =       G1H4007 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  4626} G2H4007 +MEPERO             =  0.480G1H4007 + 0.260GHO4007 + 0.260GHD4002                 : ARR( 0.146E-12,  -445., 0.0);
+{  4627} G2H4007 +PERO1              =  0.600G1H4007 + 0.200GHO4007 + 0.200GHD4002                 : ARR( 0.112E-12,  -500., 0.0);
+{  4628} G2H4007 +PERO2              =  0.560G1H4007 + 0.220GHO4007 + 0.220GHD4002                 : ARR( 0.418E-13, -1000., 0.0);
+{  4629} G2H4007 +PERO3              =  0.600G1H4007 + 0.200GHO4007 + 0.200GHD4002                 : ARR( 0.126E-12,  -850., 0.0);
+{  4630} G2H4007 +PERO5              =  0.600G1H4007 + 0.200GHO4007 + 0.200GHD4002                 : ARR( 0.473E-11,   850., 0.0);
+{  4631} G2H4007 +PERO6              =  0.460G1H4007 + 0.270GHO4007 + 0.270GHD4002                 : ARR( 0.434E-13,  -900., 0.0);
+{  4632} G2H4007 +PERO9              =  0.800G1H4007 + 0.200GHD4002                                : ARR( 0.100E-10,     0., 0.0);
+{  4633} G1H500e                     =       GD02000 +      GDD3000 +      GHO                     : ARR( 0.200E+15,  4533., 0.0);
+{  4634} G1H4007 +OXYGEN             =       GHD4002 +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{  4635} G1H4007                     =       G2H4008                                               : ARR( 0.240E+12,  4177., 0.0);
+{  4636} G2H4008 +GNO                =       G1H4008 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  4637} G2H4008 +GNO                =       GHN400D                                               : ARR( 0.111E-12,  -360., 0.0);
+{  4638} G2H4008 +GHO2               =       GHH4004                                               : ARR( 0.214E-12, -1250., 0.0);
+{  4639} G2H4008 +GNO3               =       G1H4008 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  4640} G2H4008 +MEPERO             =  0.480G1H4008 + 0.260GHO4005 + 0.260GHD4006                 : ARR( 0.164E-12,  -795., 0.0);
+{  4641} G2H4008 +PERO1              =  0.600G1H4008 + 0.200GHO4005 + 0.200GHD4006                 : ARR( 0.126E-12,  -850., 0.0);
+{  4642} G2H4008 +PERO2              =  0.560G1H4008 + 0.220GHO4005 + 0.220GHD4006                 : ARR( 0.471E-13, -1350., 0.0);
+{  4643} G2H4008 +PERO3              =  0.600G1H4008 + 0.200GHO4005 + 0.200GHD4006                 : ARR( 0.142E-12, -1200., 0.0);
+{  4644} G2H4008 +PERO5              =  0.600G1H4008 + 0.200GHO4005 + 0.200GHD4006                 : ARR( 0.533E-11,   500., 0.0);
+{  4645} G2H4008 +PERO6              =  0.460G1H4008 + 0.270GHO4005 + 0.270GHD4006                 : ARR( 0.488E-13, -1250., 0.0);
+{  4646} G2H4008 +PERO9              =  0.800G1H4008 + 0.200GHD4006                                : ARR( 0.100E-10,     0., 0.0);
+{  4647} G1H4008                     =       GHD4000 +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{  4648} GHO500C +GHO                =       GHK5008 +      GHO2                                   : ARR( 0.865E-11,     0., 0.0);
+{  4649} GHO500C +GHO                =       GKO5009 +      GHO                                    : ARR( 0.426E-10,     0., 0.0);
+{  4650} GHO500C +GHO                =       GHD5003 +      GHO2                                   : ARR( 0.415E-11,     0., 0.0);
+{  4651} GHO500C +GHO                =       G2O5009                                               : ARR( 0.196E-11,  -190., 0.0);
+{  4652} GHO500C+HV               =       G1O5009 +      GHO                                    :  0.100E+01*SUN;
+{  4653} GOO5007 +GHO                =       GKO500B +      GHO2                                   : ARR( 0.858E-11,     0., 0.0);
+{  4654} GOO5007 +GHO                =       GKO5009 +      GHO2                                   : ARR( 0.106E-10,     0., 0.0);
+{  4655} GOO5007 +GHO                =       G2O500P                                               : ARR( 0.145E-11,     0., 0.0);
+{  4656} GOO5007 +GHO                =       GDO5005 +      GHO2                                   : ARR( 0.412E-11,     0., 0.0);
+{  4657} G2O500P +GNO                =       G1O500Q +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  4658} G2O500P +GNO                =       GNO500X                                               : ARR( 0.182E-12,  -360., 0.0);
+{  4659} G2O500P +GHO2               =       GHO500P                                               : ARR( 0.242E-12, -1250., 0.0);
+{  4660} G2O500P +GNO3               =       G1O500Q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  4661} G2O500P +MEPERO             =  0.340G1O500Q + 0.330GOO500C + 0.330GKO500J                 : ARR( 0.565E-13,  -845., 0.0);
+{  4662} G2O500P +PERO1              =  0.460G1O500Q + 0.270GOO500C + 0.270GKO500J                 : ARR( 0.434E-13,  -900., 0.0);
+{  4663} G2O500P +PERO2              =  0.400G1O500Q + 0.300GOO500C + 0.300GKO500J                 : ARR( 0.162E-13, -1400., 0.0);
+{  4664} G2O500P +PERO3              =  0.460G1O500Q + 0.270GOO500C + 0.270GKO500J                 : ARR( 0.488E-13, -1250., 0.0);
+{  4665} G2O500P +PERO5              =  0.460G1O500Q + 0.270GOO500C + 0.270GKO500J                 : ARR( 0.183E-11,   450., 0.0);
+{  4666} G2O500P +PERO6              =  0.300G1O500Q + 0.350GOO500C + 0.350GKO500J                 : ARR( 0.168E-13, -1300., 0.0);
+{  4667} G2O500P +PERO9              =  0.650G1O500Q + 0.350GKO500J                                : ARR( 0.100E-10,     0., 0.0);
+{  4668} G1O500Q                     =       GDO3001 +      GDO2000 +      GHO2                    : ARR( 0.200E+15,  3486., 0.0);
+{  4669} GHO500D +GHO                =       GHK5009 +      GHO2                                   : ARR( 0.865E-11,     0., 0.0);
+{  4670} GHO500D +GHO                =       GKO5008 +      GHO                                    : ARR( 0.426E-10,     0., 0.0);
+{  4671} GHO500D +GHO                =       GHD5005 +      GHO2                                   : ARR( 0.415E-11,     0., 0.0);
+{  4672} GHO500D +GHO                =       G2O500A                                               : ARR( 0.196E-11,  -190., 0.0);
+{  4673} GHO500D+HV               =       G1O500A +      GHO                                    :  0.100E+01*SUN;
+{  4674} GNO500G +GHO                =       GND500D +      GHO2                                   : ARR( 0.413E-11,     0., 0.0);
+{  4675} GNO500G +GHO                =       GNK500J +      GHO2                                   : ARR( 0.106E-10,     0., 0.0);
+{  4676} GNO500G +GHO                =       G2N501U                                               : ARR( 0.145E-11,     0., 0.0);
+{  4677} GNO500G +GHO                =       GNK500P +      GHO2                                   : ARR( 0.211E-11,     0., 0.0);
+{  4678} GNO500G+HV               =       G1O500B +      GNO2                                   :  0.100E+01*SUN;
+{  4679} G2N501U +GNO                =       G1N501Y +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  4680} G2N501U +GNO                =       GNN501B                                               : ARR( 0.182E-12,  -360., 0.0);
+{  4681} G2N501U +GHO2               =       GHN501s                                               : ARR( 0.242E-12, -1250., 0.0);
+{  4682} G2N501U +GNO3               =       G1N501Y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  4683} G2N501U +MEPERO             =  0.340G1N501Y + 0.330GNO500Y + 0.330GNK500l                 : ARR( 0.565E-13,  -845., 0.0);
+{  4684} G2N501U +PERO1              =  0.460G1N501Y + 0.270GNO500Y + 0.270GNK500l                 : ARR( 0.434E-13,  -900., 0.0);
+{  4685} G2N501U +PERO2              =  0.400G1N501Y + 0.300GNO500Y + 0.300GNK500l                 : ARR( 0.162E-13, -1400., 0.0);
+{  4686} G2N501U +PERO3              =  0.460G1N501Y + 0.270GNO500Y + 0.270GNK500l                 : ARR( 0.488E-13, -1250., 0.0);
+{  4687} G2N501U +PERO5              =  0.460G1N501Y + 0.270GNO500Y + 0.270GNK500l                 : ARR( 0.183E-11,   450., 0.0);
+{  4688} G2N501U +PERO6              =  0.300G1N501Y + 0.350GNO500Y + 0.350GNK500l                 : ARR( 0.168E-13, -1300., 0.0);
+{  4689} G2N501U +PERO9              =  0.650G1N501Y + 0.350GNK500l                                : ARR( 0.100E-10,     0., 0.0);
+{  4690} G1N501Y                     =       GDO2000 +      GND3002 +      GHO2                    : ARR( 0.200E+15,  3575., 0.0);
+{  4691} G1N501Y                     =       GDO3002 +      GND2000 +      GHO2                    : ARR( 0.200E+15,  3575., 0.0);
+{  4692} GHO500E +GHO                =       GHD5007 +      GHO2                                   : ARR( 0.419E-11,     0., 0.0);
+{  4693} GHO500E +GHO                =       GHK500W +      GHO2                                   : ARR( 0.107E-10,     0., 0.0);
+{  4694} GHO500E +GHO                =       GHK500C +      GHO2                                   : ARR( 0.107E-10,     0., 0.0);
+{  4695} GHO500E +GHO                =       GDO5004 +      GHO                                    : ARR( 0.167E-10,     0., 0.0);
+{  4696} GHO500E +GHO                =       G2O500B                                               : ARR( 0.198E-11,  -190., 0.0);
+{  4697} GHO500E+HV               =       G1O500B +      GHO                                    :  0.100E+01*SUN;
+{  4698} GOO5008 +GHO                =       GDO5004 +      GHO2                                   : ARR( 0.860E-11,     0., 0.0);
+{  4699} GOO5008 +GHO                =       GKO500A +      GHO2                                   : ARR( 0.220E-10,     0., 0.0);
+{  4700} GDO5004 +GHO                =       GDD5001 +      GHO2                                   : ARR( 0.406E-11,     0., 0.0);
+{  4701} GDO5004 +GHO                =       GDK500F +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{  4702} GDO5004 +GHO                =       G2D5009                                               : ARR( 0.452E-11,     0., 0.0);
+{  4703} GDO5004 +GHO                =       GDK5005 +      GHO2                                   : ARR( 0.634E-11,     0., 0.0);
+{  4704} GDO5004 +GHO                =       G3K5006                                               : ARR( 0.210E-10,     0., 0.0);
+{  4705} GDO5004 +GNO3               =       G3K5006 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{  4706} GDO5004+HV               =       GDO4002 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{  4707} G2D5009 +GNO                =       G1D500B +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  4708} G2D5009 +GNO                =       GND500T                                               : ARR( 0.182E-12,  -360., 0.0);
+{  4709} G2D5009 +GHO2               =       GHD500H                                               : ARR( 0.242E-12, -1250., 0.0);
+{  4710} G2D5009 +GNO3               =       G1D500B +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  4711} G2D5009 +MEPERO             =  0.340G1D500B + 0.330GDO500A + 0.330GDK500G                 : ARR( 0.565E-13,  -845., 0.0);
+{  4712} G2D5009 +PERO1              =  0.460G1D500B + 0.270GDO500A + 0.270GDK500G                 : ARR( 0.434E-13,  -900., 0.0);
+{  4713} G2D5009 +PERO2              =  0.400G1D500B + 0.300GDO500A + 0.300GDK500G                 : ARR( 0.162E-13, -1400., 0.0);
+{  4714} G2D5009 +PERO3              =  0.460G1D500B + 0.270GDO500A + 0.270GDK500G                 : ARR( 0.488E-13, -1250., 0.0);
+{  4715} G2D5009 +PERO5              =  0.460G1D500B + 0.270GDO500A + 0.270GDK500G                 : ARR( 0.183E-11,   450., 0.0);
+{  4716} G2D5009 +PERO6              =  0.300G1D500B + 0.350GDO500A + 0.350GDK500G                 : ARR( 0.168E-13, -1300., 0.0);
+{  4717} G2D5009 +PERO9              =  0.650G1D500B + 0.350GDK500G                                : ARR( 0.100E-10,     0., 0.0);
+{  4718} G3K5006 +GHO2               =  0.800GGO5005 + 0.200GAO5005 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  4719} G3K5006 +GNO                =       GDO4002 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{  4720} G3K5006 +GNO2               =       GPO5005                                               : ARR( 0.330E-08,     0.,-1.0);
+{  4721} G3K5006 +GNO3               =       GDO4002 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{  4722} G3K5006 +MEPERO             =  0.685GDO4002 + 0.315GAO5005 + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  4723} G3K5006 +PERO1              =  0.800GDO4002 + 0.200GAO5005 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  4724} G3K5006 +PERO2              =  0.750GDO4002 + 0.250GAO5005 + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  4725} G3K5006 +PERO3              =  0.800GDO4002 + 0.200GAO5005 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  4726} G3K5006 +PERO5              =  0.650GDO4002 + 0.350GAO5005 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  4727} G3K5006 +PERO6              =  0.650GDO4002 + 0.350GAO5005 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  4728} G3K5006 +PERO9              =       GDO4002 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{  4729} G1D500B                     =       GDO2000 +      GDD3001 +      GHO2                    : ARR( 0.200E+15,  2745., 0.0);
+{  4730} G1D500B                     =       GDO3002 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  3708., 0.0);
+{  4731} GKO500A +GHO                =       GDK500F +      GHO2                                   : ARR( 0.415E-11,     0., 0.0);
+{  4732} GKO500A +GHO                =       GKK5005 +      GHO2                                   : ARR( 0.337E-10,     0., 0.0);
+{  4733} GKO500A +GHO                =       GDK5005 +      GHO2                                   : ARR( 0.253E-11,     0., 0.0);
+{  4734} GKO500A+HV               =       G3K4005 +      GCH2O   +      GHO2                    :  0.100E+01*SUN;
+{  4735} GKO500A+HV               =       GDO2000 +      GKO3000                                :  0.100E+01*SUN;
+{  4736} G3K4005 +GHO2               =  0.800GGO4004 + 0.200GAO4004 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  4737} G3K4005 +GNO                =       G2O3003 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{  4738} G3K4005 +GNO2               =       GPO4004                                               : ARR( 0.330E-08,     0.,-1.0);
+{  4739} G3K4005 +GNO3               =       G2O3003 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{  4740} G3K4005 +MEPERO             =  0.685G2O3003 + 0.315GAO4004 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  4741} G3K4005 +PERO1              =  0.800G2O3003 + 0.200GAO4004 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  4742} G3K4005 +PERO2              =  0.750G2O3003 + 0.250GAO4004 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  4743} G3K4005 +PERO3              =  0.800G2O3003 + 0.200GAO4004 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  4744} G3K4005 +PERO5              =  0.650G2O3003 + 0.350GAO4004 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  4745} G3K4005 +PERO6              =  0.650G2O3003 + 0.350GAO4004 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  4746} G3K4005 +PERO9              =       G2O3003 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{  4747} GDO4002 +GHO                =       GDD4001 +      GHO2                                   : ARR( 0.410E-11,     0., 0.0);
+{  4748} GDO4002 +GHO                =       GDK4001 +      GHO2                                   : ARR( 0.333E-10,     0., 0.0);
+{  4749} GDO4002 +GHO                =       G3K4005                                               : ARR( 0.212E-10,     0., 0.0);
+{  4750} GDO4002 +GNO3               =       G3K4005 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{  4751} GDO4002+HV               =       G2O3003 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{  4752} GDO4002+HV               =       GDO2000 +      GD02000                                :  0.100E+01*SUN;
+{  4753} GDK5002 +GHO                =       G2D500A                                               : ARR( 0.274E-11,     0., 0.0);
+{  4754} GDK5002 +GHO                =       G2D500B                                               : ARR( 0.274E-11,     0., 0.0);
+{  4755} GDK5002 +GHO                =       G3K5007                                               : ARR( 0.209E-10,     0., 0.0);
+{  4756} GDK5002 +GNO3               =       G3K5007 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{  4757} GDK5002+HV               =       G3K2000 +      G2D3001                                :  0.100E+01*SUN;
+{  4758} GDK5002+HV               =       G2K4001 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{  4759} G2D500A +GNO                =       G1D500C +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  4760} G2D500A +GNO                =       GND500Q                                               : ARR( 0.182E-12,  -360., 0.0);
+{  4761} G2D500A +GHO2               =       GHD500I                                               : ARR( 0.242E-12, -1250., 0.0);
+{  4762} G2D500A +GNO3               =       G1D500C +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  4763} G2D500A +MEPERO             =  0.340G1D500C + 0.330GDK500H + 0.330GDK500D                 : ARR( 0.565E-13,  -845., 0.0);
+{  4764} G2D500A +PERO1              =  0.460G1D500C + 0.270GDK500H + 0.270GDK500D                 : ARR( 0.434E-13,  -900., 0.0);
+{  4765} G2D500A +PERO2              =  0.400G1D500C + 0.300GDK500H + 0.300GDK500D                 : ARR( 0.162E-13, -1400., 0.0);
+{  4766} G2D500A +PERO3              =  0.460G1D500C + 0.270GDK500H + 0.270GDK500D                 : ARR( 0.488E-13, -1250., 0.0);
+{  4767} G2D500A +PERO5              =  0.460G1D500C + 0.270GDK500H + 0.270GDK500D                 : ARR( 0.183E-11,   450., 0.0);
+{  4768} G2D500A +PERO6              =  0.300G1D500C + 0.350GDK500H + 0.350GDK500D                 : ARR( 0.168E-13, -1300., 0.0);
+{  4769} G2D500A +PERO9              =  0.650G1D500C + 0.350GDK500D                                : ARR( 0.100E-10,     0., 0.0);
+{  4770} G2D500B +GNO                =       G1D500D +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  4771} G2D500B +GNO                =       GND500L                                               : ARR( 0.182E-12,  -360., 0.0);
+{  4772} G2D500B +GHO2               =       GHD500J                                               : ARR( 0.242E-12, -1250., 0.0);
+{  4773} G2D500B +GNO3               =       G1D500D +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  4774} G2D500B +MEPERO             =  0.340G1D500D + 0.330GDK500A + 0.330GDK500C                 : ARR( 0.565E-13,  -845., 0.0);
+{  4775} G2D500B +PERO1              =  0.460G1D500D + 0.270GDK500A + 0.270GDK500C                 : ARR( 0.434E-13,  -900., 0.0);
+{  4776} G2D500B +PERO2              =  0.400G1D500D + 0.300GDK500A + 0.300GDK500C                 : ARR( 0.162E-13, -1400., 0.0);
+{  4777} G2D500B +PERO3              =  0.460G1D500D + 0.270GDK500A + 0.270GDK500C                 : ARR( 0.488E-13, -1250., 0.0);
+{  4778} G2D500B +PERO5              =  0.460G1D500D + 0.270GDK500A + 0.270GDK500C                 : ARR( 0.183E-11,   450., 0.0);
+{  4779} G2D500B +PERO6              =  0.300G1D500D + 0.350GDK500A + 0.350GDK500C                 : ARR( 0.168E-13, -1300., 0.0);
+{  4780} G2D500B +PERO9              =  0.650G1D500D + 0.350GDK500C                                : ARR( 0.100E-10,     0., 0.0);
+{  4781} G3K5007 +GHO2               =  0.800GGK5001 + 0.200GAK5001 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  4782} G3K5007 +GNO                =       G2K4001 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{  4783} G3K5007 +GNO2               =       GPK5001                                               : ARR( 0.330E-08,     0.,-1.0);
+{  4784} G3K5007 +GNO3               =       G2K4001 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{  4785} G3K5007 +MEPERO             =  0.685G2K4001 + 0.315GAK5001 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  4786} G3K5007 +PERO1              =  0.800G2K4001 + 0.200GAK5001 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  4787} G3K5007 +PERO2              =  0.750G2K4001 + 0.250GAK5001 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  4788} G3K5007 +PERO3              =  0.800G2K4001 + 0.200GAK5001 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  4789} G3K5007 +PERO5              =  0.650G2K4001 + 0.350GAK5001 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  4790} G3K5007 +PERO6              =  0.650G2K4001 + 0.350GAK5001 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  4791} G3K5007 +PERO9              =       G2K4001 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{  4792} G2K4001 +GNO                =       G1K4001 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  4793} G2K4001 +GNO                =       GNK4001                                               : ARR( 0.111E-12,  -360., 0.0);
+{  4794} G2K4001 +GHO2               =       GHK4001                                               : ARR( 0.214E-12, -1250., 0.0);
+{  4795} G2K4001 +GNO3               =       G1K4001 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  4796} G2K4001 +MEPERO             =  0.480G1K4001 + 0.260GKO4001 + 0.260GDK4000                 : ARR( 0.146E-12,  -445., 0.0);
+{  4797} G2K4001 +PERO1              =  0.600G1K4001 + 0.200GKO4001 + 0.200GDK4000                 : ARR( 0.112E-12,  -500., 0.0);
+{  4798} G2K4001 +PERO2              =  0.560G1K4001 + 0.220GKO4001 + 0.220GDK4000                 : ARR( 0.418E-13, -1000., 0.0);
+{  4799} G2K4001 +PERO3              =  0.600G1K4001 + 0.200GKO4001 + 0.200GDK4000                 : ARR( 0.126E-12,  -850., 0.0);
+{  4800} G2K4001 +PERO5              =  0.600G1K4001 + 0.200GKO4001 + 0.200GDK4000                 : ARR( 0.473E-11,   850., 0.0);
+{  4801} G2K4001 +PERO6              =  0.460G1K4001 + 0.270GKO4001 + 0.270GDK4000                 : ARR( 0.434E-13,  -900., 0.0);
+{  4802} G2K4001 +PERO9              =  0.800G1K4001 + 0.200GDK4000                                : ARR( 0.100E-10,     0., 0.0);
+{  4803} G1D500C                     =       G3K2000 +      GDD3000                                : ARR( 0.200E+15,  2285., 0.0);
+{  4804} G1D500D                     =       GDK4000 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5054., 0.0);
+{  4805} G1K4001 +OXYGEN             =       GDK4000 +      GHO2                                   : ARR( 0.600E-13,   398., 0.0);
+{  4806} GK03000 +GHO                =       G2K3000                                               : ARR( 0.211E-17,   -10., 2.0);
+{  4807} GK03000+HV               =       G3K2000 +      GCH3O2                                 :  0.100E+01*SUN;
+{  4808} GHK5008 +GHO                =       GKK5002 +      GHO                                    : ARR( 0.253E-10,     0., 0.0);
+{  4809} GHK5008 +GHO                =       G2H500U                                               : ARR( 0.451E-11,     0., 0.0);
+{  4810} GHK5008 +GHO                =       GHD500I +      GHO2                                   : ARR( 0.405E-11,     0., 0.0);
+{  4811} GHK5008 +GHO                =       G2K5006                                               : ARR( 0.191E-11,  -190., 0.0);
+{  4812} GHK5008+HV               =       G3K2000 +      GDO3000 +      GHO                     :  0.100E+01*SUN;
+{  4813} GHK5008+HV               =       G1K5006 +      GHO                                    :  0.100E+01*SUN;
+{  4814} G2H500U +GNO                =       G1H500f +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  4815} G2H500U +GNO                =       GHN501d                                               : ARR( 0.182E-12,  -360., 0.0);
+{  4816} G2H500U +GHO2               =       GHH500S                                               : ARR( 0.242E-12, -1250., 0.0);
+{  4817} G2H500U +GNO3               =       G1H500f +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  4818} G2H500U +MEPERO             =  0.340G1H500f + 0.330GHK500X + 0.330GHK500Y                 : ARR( 0.565E-13,  -845., 0.0);
+{  4819} G2H500U +PERO1              =  0.460G1H500f + 0.270GHK500X + 0.270GHK500Y                 : ARR( 0.434E-13,  -900., 0.0);
+{  4820} G2H500U +PERO2              =  0.400G1H500f + 0.300GHK500X + 0.300GHK500Y                 : ARR( 0.162E-13, -1400., 0.0);
+{  4821} G2H500U +PERO3              =  0.460G1H500f + 0.270GHK500X + 0.270GHK500Y                 : ARR( 0.488E-13, -1250., 0.0);
+{  4822} G2H500U +PERO5              =  0.460G1H500f + 0.270GHK500X + 0.270GHK500Y                 : ARR( 0.183E-11,   450., 0.0);
+{  4823} G2H500U +PERO6              =  0.300G1H500f + 0.350GHK500X + 0.350GHK500Y                 : ARR( 0.168E-13, -1300., 0.0);
+{  4824} G2H500U +PERO9              =  0.650G1H500f + 0.350GHK500Y                                : ARR( 0.100E-10,     0., 0.0);
+{  4825} G1H500f                     =       GDK3000 +      GDO2000 +      GHO                     : ARR( 0.200E+15,  4976., 0.0);
+{  4826} G1H500f                     =       GHD4007 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4465., 0.0);
+{  4827} GKO500B +GHO                =       GKK5002 +      GHO2                                   : ARR( 0.645E-11,     0., 0.0);
+{  4828} GKO500B +GHO                =       G2K500P                                               : ARR( 0.460E-11,     0., 0.0);
+{  4829} GKO500B +GHO                =       GDK500H +      GHO2                                   : ARR( 0.413E-11,     0., 0.0);
+{  4830} GKO500B+HV               =       G3K2000 +      GDO3000 +      GHO2                    :  0.100E+01*SUN;
+{  4831} G2K500P +GNO                =       G1K500Q +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  4832} G2K500P +GNO                =       GNK500b                                               : ARR( 0.182E-12,  -360., 0.0);
+{  4833} G2K500P +GHO2               =       GHK500Z                                               : ARR( 0.242E-12, -1250., 0.0);
+{  4834} G2K500P +GNO3               =       G1K500Q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  4835} G2K500P +MEPERO             =  0.340G1K500Q + 0.330GKO500K + 0.330GKK500C                 : ARR( 0.565E-13,  -845., 0.0);
+{  4836} G2K500P +PERO1              =  0.460G1K500Q + 0.270GKO500K + 0.270GKK500C                 : ARR( 0.434E-13,  -900., 0.0);
+{  4837} G2K500P +PERO2              =  0.400G1K500Q + 0.300GKO500K + 0.300GKK500C                 : ARR( 0.162E-13, -1400., 0.0);
+{  4838} G2K500P +PERO3              =  0.460G1K500Q + 0.270GKO500K + 0.270GKK500C                 : ARR( 0.488E-13, -1250., 0.0);
+{  4839} G2K500P +PERO5              =  0.460G1K500Q + 0.270GKO500K + 0.270GKK500C                 : ARR( 0.183E-11,   450., 0.0);
+{  4840} G2K500P +PERO6              =  0.300G1K500Q + 0.350GKO500K + 0.350GKK500C                 : ARR( 0.168E-13, -1300., 0.0);
+{  4841} G2K500P +PERO9              =  0.650G1K500Q + 0.350GKK500C                                : ARR( 0.100E-10,     0., 0.0);
+{  4842} G1K500Q                     =       GDK3000 +      GDO2000 +      GHO2                    : ARR( 0.200E+15,  3768., 0.0);
+{  4843} G1K500Q                     =       GDK4003 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4465., 0.0);
+{  4844} GHK5009 +GHO                =       GKK5003 +      GHO                                    : ARR( 0.139E-09,     0., 0.0);
+{  4845} GHK5009+HV               =       G3K2000 +      G2H3004                                :  0.100E+01*SUN;
+{  4846} GHK5009+HV               =       GK03000 +      GHD2000                                :  0.100E+01*SUN;
+{  4847} GHK5009+HV               =       G1K5007 +      GHO                                    :  0.100E+01*SUN;
+{  4848} G2H3004 +GNO                =       G1H3005 +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{  4849} G2H3004 +GNO                =       GHN3006                                               : ARR( 0.622E-13,  -360., 0.0);
+{  4850} G2H3004 +GHO2               =       GHH3003                                               : ARR( 0.179E-12, -1250., 0.0);
+{  4851} G2H3004 +GNO3               =       G1H3005 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  4852} G2H3004 +MEPERO             =  0.480G1H3005 + 0.260GHO3004 + 0.260GHD3003                 : ARR( 0.164E-12,  -795., 0.0);
+{  4853} G2H3004 +PERO1              =  0.600G1H3005 + 0.200GHO3004 + 0.200GHD3003                 : ARR( 0.126E-12,  -850., 0.0);
+{  4854} G2H3004 +PERO2              =  0.560G1H3005 + 0.220GHO3004 + 0.220GHD3003                 : ARR( 0.471E-13, -1350., 0.0);
+{  4855} G2H3004 +PERO3              =  0.600G1H3005 + 0.200GHO3004 + 0.200GHD3003                 : ARR( 0.142E-12, -1200., 0.0);
+{  4856} G2H3004 +PERO5              =  0.600G1H3005 + 0.200GHO3004 + 0.200GHD3003                 : ARR( 0.533E-11,   500., 0.0);
+{  4857} G2H3004 +PERO6              =  0.460G1H3005 + 0.270GHO3004 + 0.270GHD3003                 : ARR( 0.488E-13, -1250., 0.0);
+{  4858} G2H3004 +PERO9              =  0.800G1H3005 + 0.200GHD3003                                : ARR( 0.100E-10,     0., 0.0);
+{  4859} G1H3005 +OXYGEN             =       GHD3003 +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{  4860} G1H3005                     =       GDO2000 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5652., 0.0);
+{  4861} GKK5003 +GHO                =       G2K500Q                                               : ARR( 0.568E-12,     0., 0.0);
+{  4862} GKK5003 +GHO                =       GDK500C +      GHO2                                   : ARR( 0.265E-11,     0., 0.0);
+{  4863} GKK5003+HV               =       G3K2000 +      G2K3001                                :  0.100E+01*SUN;
+{  4864} GKK5003+HV               =       G3K4003 +      GCH2O   +      GHO2                    :  0.100E+01*SUN;
+{  4865} G2K500Q +GNO                =       G1K500R +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  4866} G2K500Q +GNO                =       GNK500h                                               : ARR( 0.182E-12,  -360., 0.0);
+{  4867} G2K500Q +GHO2               =       GHK500Y                                               : ARR( 0.242E-12, -1250., 0.0);
+{  4868} G2K500Q +GNO3               =       G1K500R +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  4869} G2K500Q +MEPERO             =  0.340G1K500R + 0.330GKK500C + 0.330GKK500B                 : ARR( 0.565E-13,  -845., 0.0);
+{  4870} G2K500Q +PERO1              =  0.460G1K500R + 0.270GKK500C + 0.270GKK500B                 : ARR( 0.434E-13,  -900., 0.0);
+{  4871} G2K500Q +PERO2              =  0.400G1K500R + 0.300GKK500C + 0.300GKK500B                 : ARR( 0.162E-13, -1400., 0.0);
+{  4872} G2K500Q +PERO3              =  0.460G1K500R + 0.270GKK500C + 0.270GKK500B                 : ARR( 0.488E-13, -1250., 0.0);
+{  4873} G2K500Q +PERO5              =  0.460G1K500R + 0.270GKK500C + 0.270GKK500B                 : ARR( 0.183E-11,   450., 0.0);
+{  4874} G2K500Q +PERO6              =  0.300G1K500R + 0.350GKK500C + 0.350GKK500B                 : ARR( 0.168E-13, -1300., 0.0);
+{  4875} G2K500Q +PERO9              =  0.650G1K500R + 0.350GKK500B                                : ARR( 0.100E-10,     0., 0.0);
+{  4876} G1K500R                     =       G3K2000 +      GDK3001                                : ARR( 0.200E+15,  4513., 0.0);
+{  4877} G1K500R                     =       GDK3000 +      G3K2001                                : ARR( 0.200E+15,  4599., 0.0);
+{  4878} GHO3001 +GHO                =       GHD3000 +      GHO2                                   : ARR( 0.404E-11,     0., 0.0);
+{  4879} GHO3001 +GHO                =       G2H3005                                               : ARR( 0.142E-11,     0., 0.0);
+{  4880} GHO3001 +GHO                =       GDO3000 +      GHO                                    : ARR( 0.162E-10,     0., 0.0);
+{  4881} GHO3001 +GHO                =       G2O3001                                               : ARR( 0.191E-11,  -190., 0.0);
+{  4882} GHO3001+HV               =       G1O3001 +      GHO                                    :  0.100E+01*SUN;
+{  4883} G2H3005 +GNO                =       G1H3006 +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{  4884} G2H3005 +GNO                =       GHN3009                                               : ARR( 0.622E-13,  -360., 0.0);
+{  4885} G2H3005 +GHO2               =       GHH3003                                               : ARR( 0.179E-12, -1250., 0.0);
+{  4886} G2H3005 +GNO3               =       G1H3006 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  4887} G2H3005 +MEPERO             =  0.340G1H3006 + 0.330GHO3003 + 0.330GHK3001                 : ARR( 0.565E-13,  -845., 0.0);
+{  4888} G2H3005 +PERO1              =  0.460G1H3006 + 0.270GHO3003 + 0.270GHK3001                 : ARR( 0.434E-13,  -900., 0.0);
+{  4889} G2H3005 +PERO2              =  0.400G1H3006 + 0.300GHO3003 + 0.300GHK3001                 : ARR( 0.162E-13, -1400., 0.0);
+{  4890} G2H3005 +PERO3              =  0.460G1H3006 + 0.270GHO3003 + 0.270GHK3001                 : ARR( 0.488E-13, -1250., 0.0);
+{  4891} G2H3005 +PERO5              =  0.460G1H3006 + 0.270GHO3003 + 0.270GHK3001                 : ARR( 0.183E-11,   450., 0.0);
+{  4892} G2H3005 +PERO6              =  0.300G1H3006 + 0.350GHO3003 + 0.350GHK3001                 : ARR( 0.168E-13, -1300., 0.0);
+{  4893} G2H3005 +PERO9              =  0.650G1H3006 + 0.350GHK3001                                : ARR( 0.100E-10,     0., 0.0);
+{  4894} G1H3006                     =       GCH2O   +      GHD2000 +      GHO2                    : ARR( 0.200E+15,  5355., 0.0);
+{  4895} GOO3001 +GHO                =       GDO3000 +      GHO2                                   : ARR( 0.828E-11,     0., 0.0);
+{  4896} GOO3001 +GHO                =       G2O3004                                               : ARR( 0.145E-11,     0., 0.0);
+{  4897} G2O3004 +GNO                =       G1O3004 +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{  4898} G2O3004 +GNO                =       GNO3004                                               : ARR( 0.622E-13,  -360., 0.0);
+{  4899} G2O3004 +GHO2               =       GHO3004                                               : ARR( 0.179E-12, -1250., 0.0);
+{  4900} G2O3004 +GNO3               =       G1O3004 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  4901} G2O3004 +MEPERO             =  0.340G1O3004 + 0.330GOO3002 + 0.330GKO3001                 : ARR( 0.565E-13,  -845., 0.0);
+{  4902} G2O3004 +PERO1              =  0.460G1O3004 + 0.270GOO3002 + 0.270GKO3001                 : ARR( 0.434E-13,  -900., 0.0);
+{  4903} G2O3004 +PERO2              =  0.400G1O3004 + 0.300GOO3002 + 0.300GKO3001                 : ARR( 0.162E-13, -1400., 0.0);
+{  4904} G2O3004 +PERO3              =  0.460G1O3004 + 0.270GOO3002 + 0.270GKO3001                 : ARR( 0.488E-13, -1250., 0.0);
+{  4905} G2O3004 +PERO5              =  0.460G1O3004 + 0.270GOO3002 + 0.270GKO3001                 : ARR( 0.183E-11,   450., 0.0);
+{  4906} G2O3004 +PERO6              =  0.300G1O3004 + 0.350GOO3002 + 0.350GKO3001                 : ARR( 0.168E-13, -1300., 0.0);
+{  4907} G2O3004 +PERO9              =  0.650G1O3004 + 0.350GKO3001                                : ARR( 0.100E-10,     0., 0.0);
+{  4908} G1O3004                     =       GCH2O   +      GDO2000 +      GHO2                    : ARR( 0.400E+15,  5355., 0.0);
+{  4909} GDK4000 +GHO                =       G3K4003                                               : ARR( 0.665E-10,     0., 0.0);
+{  4910} GDK4000 +GNO3               =       G3K4003 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{  4911} GDK4000+HV               =       G3K2000 +      G2D2000                                :  0.100E+01*SUN;
+{  4912} GDK4000+HV               =       G2K3000 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{  4913} GHN500H +GHO                =       GHN500X +      GHO2                                   : ARR( 0.848E-11,     0., 0.0);
+{  4914} GHN500H +GHO                =       GNK500C +      GHO                                    : ARR( 0.417E-10,     0., 0.0);
+{  4915} GHN500H +GHO                =       G2N500F                                               : ARR( 0.192E-11,  -190., 0.0);
+{  4916} GHN500H+HV               =       G1N500F +      GHO                                    :  0.100E+01*SUN;
+{  4917} GHN500H+HV               =       G1H500g +      GNO2                                   :  0.100E+01*SUN;
+{  4918} G1H500g                     =       GHK5008 +      GHO2                                   : ARR( 0.800E+11,  2117., 0.0);
+{  4919} GNO500H +GHO                =       GNK500F +      GHO2                                   : ARR( 0.872E-11,     0., 0.0);
+{  4920} GNO500H +GHO                =       GNK500C +      GHO2                                   : ARR( 0.107E-10,     0., 0.0);
+{  4921} GNO500H+HV               =       G1O500R +      GNO2                                   :  0.100E+01*SUN;
+{  4922} G1O500R                     =       GKO500B +      GHO2                                   : ARR( 0.800E+11,  2117., 0.0);
+{  4923} GNK500C +GHO                =       G2N501W                                               : ARR( 0.575E-12,     0., 0.0);
+{  4924} GNK500C +GHO                =       GNK500G +      GHO2                                   : ARR( 0.552E-11,     0., 0.0);
+{  4925} GNK500C+HV               =       G3K3002 +      G2N2000                                :  0.100E+01*SUN;
+{  4926} GNK500C+HV               =       G1K500I +      GNO2                                   :  0.100E+01*SUN;
+{  4927} G2N501W +GNO                =       G1N501Z +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  4928} G2N501W +GNO                =       GNN500p                                               : ARR( 0.182E-12,  -360., 0.0);
+{  4929} G2N501W +GHO2               =       GHN501t                                               : ARR( 0.242E-12, -1250., 0.0);
+{  4930} G2N501W +GNO3               =       G1N501Z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  4931} G2N501W +MEPERO             =  0.480G1N501Z + 0.260GNK500X + 0.260GND500U                 : ARR( 0.164E-12,  -795., 0.0);
+{  4932} G2N501W +PERO1              =  0.600G1N501Z + 0.200GNK500X + 0.200GND500U                 : ARR( 0.126E-12,  -850., 0.0);
+{  4933} G2N501W +PERO2              =  0.560G1N501Z + 0.220GNK500X + 0.220GND500U                 : ARR( 0.471E-13, -1350., 0.0);
+{  4934} G2N501W +PERO3              =  0.600G1N501Z + 0.200GNK500X + 0.200GND500U                 : ARR( 0.142E-12, -1200., 0.0);
+{  4935} G2N501W +PERO5              =  0.600G1N501Z + 0.200GNK500X + 0.200GND500U                 : ARR( 0.533E-11,   500., 0.0);
+{  4936} G2N501W +PERO6              =  0.460G1N501Z + 0.270GNK500X + 0.270GND500U                 : ARR( 0.488E-13, -1250., 0.0);
+{  4937} G2N501W +PERO9              =  0.800G1N501Z + 0.200GND500U                                : ARR( 0.100E-10,     0., 0.0);
+{  4938} G1N501Z                     =       GND400B +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4576., 0.0);
+{  4939} GHK500A +GHO                =       G2H500W                                               : ARR( 0.466E-11,     0., 0.0);
+{  4940} GHK500A +GHO                =       GDK5002 +      GHO                                    : ARR( 0.167E-10,     0., 0.0);
+{  4941} GHK500A +GHO                =       G2K500R                                               : ARR( 0.198E-11,  -190., 0.0);
+{  4942} GHK500A+HV               =       G3K2000 +      G2H3006                                :  0.100E+01*SUN;
+{  4943} GHK500A+HV               =       GK03000 +      G2D2000 +      GHO                     :  0.100E+01*SUN;
+{  4944} GHK500A+HV               =       G1K5008 +      GHO                                    :  0.100E+01*SUN;
+{  4945} G2H500W +GNO                =       G1H500h +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  4946} G2H500W +GNO                =       GHN501E                                               : ARR( 0.182E-12,  -360., 0.0);
+{  4947} G2H500W +GHO2               =       GHH500T                                               : ARR( 0.242E-12, -1250., 0.0);
+{  4948} G2H500W +GNO3               =       G1H500h +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  4949} G2H500W +MEPERO             =  0.340G1H500h + 0.330GHK500N + 0.330GHK500D                 : ARR( 0.565E-13,  -845., 0.0);
+{  4950} G2H500W +PERO1              =  0.460G1H500h + 0.270GHK500N + 0.270GHK500D                 : ARR( 0.434E-13,  -900., 0.0);
+{  4951} G2H500W +PERO2              =  0.400G1H500h + 0.300GHK500N + 0.300GHK500D                 : ARR( 0.162E-13, -1400., 0.0);
+{  4952} G2H500W +PERO3              =  0.460G1H500h + 0.270GHK500N + 0.270GHK500D                 : ARR( 0.488E-13, -1250., 0.0);
+{  4953} G2H500W +PERO5              =  0.460G1H500h + 0.270GHK500N + 0.270GHK500D                 : ARR( 0.183E-11,   450., 0.0);
+{  4954} G2H500W +PERO6              =  0.300G1H500h + 0.350GHK500N + 0.350GHK500D                 : ARR( 0.168E-13, -1300., 0.0);
+{  4955} G2H500W +PERO9              =  0.650G1H500h + 0.350GHK500D                                : ARR( 0.100E-10,     0., 0.0);
+{  4956} G2K500R +GNO                =       G1K5008 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  4957} G2K500R +GNO                =       GNK5000                                               : ARR( 0.182E-12,  -360., 0.0);
+{  4958} G2K500R +GHO2               =       GHK500A                                               : ARR( 0.242E-12, -1250., 0.0);
+{  4959} G2K500R +GNO3               =       G1K5008 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  4960} G2K500R +MEPERO             =  0.480G1K5008 + 0.260GKO5000 + 0.260GDK5002                 : ARR( 0.146E-12,  -445., 0.0);
+{  4961} G2K500R +PERO1              =  0.600G1K5008 + 0.200GKO5000 + 0.200GDK5002                 : ARR( 0.112E-12,  -500., 0.0);
+{  4962} G2K500R +PERO2              =  0.560G1K5008 + 0.220GKO5000 + 0.220GDK5002                 : ARR( 0.418E-13, -1000., 0.0);
+{  4963} G2K500R +PERO3              =  0.600G1K5008 + 0.200GKO5000 + 0.200GDK5002                 : ARR( 0.126E-12,  -850., 0.0);
+{  4964} G2K500R +PERO5              =  0.600G1K5008 + 0.200GKO5000 + 0.200GDK5002                 : ARR( 0.473E-11,   850., 0.0);
+{  4965} G2K500R +PERO6              =  0.460G1K5008 + 0.270GKO5000 + 0.270GDK5002                 : ARR( 0.434E-13,  -900., 0.0);
+{  4966} G2K500R +PERO9              =  0.800G1K5008 + 0.200GDK5002                                : ARR( 0.100E-10,     0., 0.0);
+{  4967} G2H3006 +GNO                =       G1H3002 +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{  4968} G2H3006 +GNO                =       GHN3000                                               : ARR( 0.622E-13,  -360., 0.0);
+{  4969} G2H3006 +GHO2               =       GHH3004                                               : ARR( 0.179E-12, -1250., 0.0);
+{  4970} G2H3006 +GNO3               =       G1H3002 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  4971} G2H3006 +MEPERO             =  0.480G1H3002 + 0.260GHO3001 + 0.260GHD3000                 : ARR( 0.146E-12,  -445., 0.0);
+{  4972} G2H3006 +PERO1              =  0.600G1H3002 + 0.200GHO3001 + 0.200GHD3000                 : ARR( 0.112E-12,  -500., 0.0);
+{  4973} G2H3006 +PERO2              =  0.560G1H3002 + 0.220GHO3001 + 0.220GHD3000                 : ARR( 0.418E-13, -1000., 0.0);
+{  4974} G2H3006 +PERO3              =  0.600G1H3002 + 0.200GHO3001 + 0.200GHD3000                 : ARR( 0.126E-12,  -850., 0.0);
+{  4975} G2H3006 +PERO5              =  0.600G1H3002 + 0.200GHO3001 + 0.200GHD3000                 : ARR( 0.473E-11,   850., 0.0);
+{  4976} G2H3006 +PERO6              =  0.460G1H3002 + 0.270GHO3001 + 0.270GHD3000                 : ARR( 0.434E-13,  -900., 0.0);
+{  4977} G2H3006 +PERO9              =  0.800G1H3002 + 0.200GHD3000                                : ARR( 0.100E-10,     0., 0.0);
+{  4978} G1H500h                     =       G2K3000 +      GHD2000                                : ARR( 0.200E+15,  7289., 0.0);
+{  4979} G1H500h                     =       GDK4000 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  6757., 0.0);
+{  4980} GHD5003 +GHO                =       GHD500I +      GHO2                                   : ARR( 0.863E-11,     0., 0.0);
+{  4981} GHD5003 +GHO                =       GDK5003 +      GHO                                    : ARR( 0.135E-09,     0., 0.0);
+{  4982} GHD5003 +GHO                =       G3H5003                                               : ARR( 0.214E-10,     0., 0.0);
+{  4983} GHD5003 +GNO3               =       G3H5003 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{  4984} GHD5003+HV               =       G1D5001 +      GHO                                    :  0.100E+01*SUN;
+{  4985} GHD5003+HV               =       G2H4009 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{  4986} GHD5003+HV               =       GHK3000 +      GD02000                                :  0.100E+01*SUN;
+{  4987} G3H5003 +GHO2               =  0.800GGH5004 + 0.200GAH5004 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  4988} G3H5003 +GNO                =       G2H4009 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{  4989} G3H5003 +GNO2               =       GPH5004                                               : ARR( 0.330E-08,     0.,-1.0);
+{  4990} G3H5003 +GNO3               =       G2H4009 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{  4991} G3H5003 +MEPERO             =  0.685G2H4009 + 0.315GAH5004 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  4992} G3H5003 +PERO1              =  0.800G2H4009 + 0.200GAH5004 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  4993} G3H5003 +PERO2              =  0.750G2H4009 + 0.250GAH5004 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  4994} G3H5003 +PERO3              =  0.800G2H4009 + 0.200GAH5004 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  4995} G3H5003 +PERO5              =  0.650G2H4009 + 0.350GAH5004 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  4996} G3H5003 +PERO6              =  0.650G2H4009 + 0.350GAH5004 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  4997} G3H5003 +PERO9              =       G2H4009 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{  4998} G2H4009 +GNO                =       G1H4009 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  4999} G2H4009 +GNO                =       GHN400E                                               : ARR( 0.111E-12,  -360., 0.0);
+{  5000} G2H4009 +GHO2               =       GHH4005                                               : ARR( 0.214E-12, -1250., 0.0);
+{  5001} G2H4009 +GNO3               =       G1H4009 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  5002} G2H4009 +MEPERO             =  0.480G1H4009 + 0.260GHO4008 + 0.260GHD4008                 : ARR( 0.164E-12,  -795., 0.0);
+{  5003} G2H4009 +PERO1              =  0.600G1H4009 + 0.200GHO4008 + 0.200GHD4008                 : ARR( 0.126E-12,  -850., 0.0);
+{  5004} G2H4009 +PERO2              =  0.560G1H4009 + 0.220GHO4008 + 0.220GHD4008                 : ARR( 0.471E-13, -1350., 0.0);
+{  5005} G2H4009 +PERO3              =  0.600G1H4009 + 0.200GHO4008 + 0.200GHD4008                 : ARR( 0.142E-12, -1200., 0.0);
+{  5006} G2H4009 +PERO5              =  0.600G1H4009 + 0.200GHO4008 + 0.200GHD4008                 : ARR( 0.533E-11,   500., 0.0);
+{  5007} G2H4009 +PERO6              =  0.460G1H4009 + 0.270GHO4008 + 0.270GHD4008                 : ARR( 0.488E-13, -1250., 0.0);
+{  5008} G2H4009 +PERO9              =  0.800G1H4009 + 0.200GHD4008                                : ARR( 0.100E-10,     0., 0.0);
+{  5009} G1H4009                     =       G2H400A                                               : ARR( 0.240E+12,  4177., 0.0);
+{  5010} G1H4009                     =       GDO3001 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{  5011} G2H400A +GNO                =       G1H400A +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  5012} G2H400A +GNO                =       GHN400F                                               : ARR( 0.111E-12,  -360., 0.0);
+{  5013} G2H400A +GHO2               =       GHH4006                                               : ARR( 0.214E-12, -1250., 0.0);
+{  5014} G2H400A +GNO3               =       G1H400A +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  5015} G2H400A +MEPERO             =  0.480G1H400A + 0.260GHO4009 + 0.260GHD4009                 : ARR( 0.164E-12,  -795., 0.0);
+{  5016} G2H400A +PERO1              =  0.600G1H400A + 0.200GHO4009 + 0.200GHD4009                 : ARR( 0.126E-12,  -850., 0.0);
+{  5017} G2H400A +PERO2              =  0.560G1H400A + 0.220GHO4009 + 0.220GHD4009                 : ARR( 0.471E-13, -1350., 0.0);
+{  5018} G2H400A +PERO3              =  0.600G1H400A + 0.200GHO4009 + 0.200GHD4009                 : ARR( 0.142E-12, -1200., 0.0);
+{  5019} G2H400A +PERO5              =  0.600G1H400A + 0.200GHO4009 + 0.200GHD4009                 : ARR( 0.533E-11,   500., 0.0);
+{  5020} G2H400A +PERO6              =  0.460G1H400A + 0.270GHO4009 + 0.270GHD4009                 : ARR( 0.488E-13, -1250., 0.0);
+{  5021} G2H400A +PERO9              =  0.800G1H400A + 0.200GHD4009                                : ARR( 0.100E-10,     0., 0.0);
+{  5022} G1H400A                     =       GHD400A +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{  5023} G1H400A                     =       GHD3003 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{  5024} GDO5005 +GHO                =       GDK500H +      GHO2                                   : ARR( 0.855E-11,     0., 0.0);
+{  5025} GDO5005 +GHO                =       GDK5003 +      GHO2                                   : ARR( 0.334E-10,     0., 0.0);
+{  5026} GDO5005 +GHO                =       G3K5008                                               : ARR( 0.212E-10,     0., 0.0);
+{  5027} GDO5005 +GNO3               =       G3K5008 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{  5028} GDO5005+HV               =       G2O4008 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{  5029} GDO5005+HV               =       GKO3000 +      GD02000                                :  0.100E+01*SUN;
+{  5030} G3K5008 +GHO2               =  0.800GGO5006 + 0.200GAO5006 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  5031} G3K5008 +GNO                =       G2O4008 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{  5032} G3K5008 +GNO2               =       GPO5006                                               : ARR( 0.330E-08,     0.,-1.0);
+{  5033} G3K5008 +GNO3               =       G2O4008 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{  5034} G3K5008 +MEPERO             =  0.685G2O4008 + 0.315GAO5006 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  5035} G3K5008 +PERO1              =  0.800G2O4008 + 0.200GAO5006 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  5036} G3K5008 +PERO2              =  0.750G2O4008 + 0.250GAO5006 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  5037} G3K5008 +PERO3              =  0.800G2O4008 + 0.200GAO5006 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  5038} G3K5008 +PERO5              =  0.650G2O4008 + 0.350GAO5006 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  5039} G3K5008 +PERO6              =  0.650G2O4008 + 0.350GAO5006 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  5040} G3K5008 +PERO9              =       G2O4008 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{  5041} G2O4008 +GNO                =       G1O4008 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  5042} G2O4008 +GNO                =       GNO400A                                               : ARR( 0.111E-12,  -360., 0.0);
+{  5043} G2O4008 +GHO2               =       GHO400A                                               : ARR( 0.214E-12, -1250., 0.0);
+{  5044} G2O4008 +GNO3               =       G1O4008 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  5045} G2O4008 +MEPERO             =  0.480G1O4008 + 0.260GOO4004 + 0.260GDO4005                 : ARR( 0.164E-12,  -795., 0.0);
+{  5046} G2O4008 +PERO1              =  0.600G1O4008 + 0.200GOO4004 + 0.200GDO4005                 : ARR( 0.126E-12,  -850., 0.0);
+{  5047} G2O4008 +PERO2              =  0.560G1O4008 + 0.220GOO4004 + 0.220GDO4005                 : ARR( 0.471E-13, -1350., 0.0);
+{  5048} G2O4008 +PERO3              =  0.600G1O4008 + 0.200GOO4004 + 0.200GDO4005                 : ARR( 0.142E-12, -1200., 0.0);
+{  5049} G2O4008 +PERO5              =  0.600G1O4008 + 0.200GOO4004 + 0.200GDO4005                 : ARR( 0.533E-11,   500., 0.0);
+{  5050} G2O4008 +PERO6              =  0.460G1O4008 + 0.270GOO4004 + 0.270GDO4005                 : ARR( 0.488E-13, -1250., 0.0);
+{  5051} G2O4008 +PERO9              =  0.800G1O4008 + 0.200GDO4005                                : ARR( 0.100E-10,     0., 0.0);
+{  5052} G1O4008                     =       GDO3001 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{  5053} GDK5003 +GHO                =       GDK500D +      GHO2                                   : ARR( 0.519E-11,     0., 0.0);
+{  5054} GDK5003 +GHO                =       G3K5009                                               : ARR( 0.670E-10,     0., 0.0);
+{  5055} GDK5003 +GNO3               =       G3K5009 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{  5056} GDK5003+HV               =       G3K3002 +      G2D2000                                :  0.100E+01*SUN;
+{  5057} GDK5003+HV               =       G2K4002 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{  5058} G3K5009 +GHO2               =  0.800GGK5003 + 0.200GAK5003 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  5059} G3K5009 +GNO                =       G2K4002 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{  5060} G3K5009 +GNO2               =       GPK5003                                               : ARR( 0.330E-08,     0.,-1.0);
+{  5061} G3K5009 +GNO3               =       G2K4002 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{  5062} G3K5009 +MEPERO             =  0.685G2K4002 + 0.315GAK5003 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  5063} G3K5009 +PERO1              =  0.800G2K4002 + 0.200GAK5003 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  5064} G3K5009 +PERO2              =  0.750G2K4002 + 0.250GAK5003 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  5065} G3K5009 +PERO3              =  0.800G2K4002 + 0.200GAK5003 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  5066} G3K5009 +PERO5              =  0.650G2K4002 + 0.350GAK5003 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  5067} G3K5009 +PERO6              =  0.650G2K4002 + 0.350GAK5003 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  5068} G3K5009 +PERO9              =       G2K4002 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{  5069} G2K4002 +GNO                =       G1K4002 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  5070} G2K4002 +GNO                =       GNK4003                                               : ARR( 0.111E-12,  -360., 0.0);
+{  5071} G2K4002 +GHO2               =       GHK4004                                               : ARR( 0.214E-12, -1250., 0.0);
+{  5072} G2K4002 +GNO3               =       G1K4002 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  5073} G2K4002 +MEPERO             =  0.480G1K4002 + 0.260GKO4003 + 0.260GDK4004                 : ARR( 0.164E-12,  -795., 0.0);
+{  5074} G2K4002 +PERO1              =  0.600G1K4002 + 0.200GKO4003 + 0.200GDK4004                 : ARR( 0.126E-12,  -850., 0.0);
+{  5075} G2K4002 +PERO2              =  0.560G1K4002 + 0.220GKO4003 + 0.220GDK4004                 : ARR( 0.471E-13, -1350., 0.0);
+{  5076} G2K4002 +PERO3              =  0.600G1K4002 + 0.200GKO4003 + 0.200GDK4004                 : ARR( 0.142E-12, -1200., 0.0);
+{  5077} G2K4002 +PERO5              =  0.600G1K4002 + 0.200GKO4003 + 0.200GDK4004                 : ARR( 0.533E-11,   500., 0.0);
+{  5078} G2K4002 +PERO6              =  0.460G1K4002 + 0.270GKO4003 + 0.270GDK4004                 : ARR( 0.488E-13, -1250., 0.0);
+{  5079} G2K4002 +PERO9              =  0.800G1K4002 + 0.200GDK4004                                : ARR( 0.100E-10,     0., 0.0);
+{  5080} G1K4002                     =       G3K3002 +      GCH2O                                  : ARR( 0.200E+15,  3603., 0.0);
+{  5081} GGO5000 +GHO                =       GGK5001 +      GHO2                                   : ARR( 0.856E-11,     0., 0.0);
+{  5082} GGO5000 +GHO                =       G2G5003                                               : ARR( 0.144E-11,     0., 0.0);
+{  5083} GGO5000 +GHO                =       G2G5004                                               : ARR( 0.880E-12,     0., 0.0);
+{  5084} GGO5000 +GHO                =       G3K5001                                               : ARR( 0.194E-11,  -190., 0.0);
+{  5085} GGO5000+HV               =       G2O4001 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{  5086} G2G5003 +GNO                =       G1G5003 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  5087} G2G5003 +GNO                =       GGN5006                                               : ARR( 0.182E-12,  -360., 0.0);
+{  5088} G2G5003 +GHO2               =       GGH5004                                               : ARR( 0.242E-12, -1250., 0.0);
+{  5089} G2G5003 +GNO3               =       G1G5003 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  5090} G2G5003 +MEPERO             =  0.340G1G5003 + 0.330GGO5006 + 0.330GGK5003                 : ARR( 0.565E-13,  -845., 0.0);
+{  5091} G2G5003 +PERO1              =  0.460G1G5003 + 0.270GGO5006 + 0.270GGK5003                 : ARR( 0.434E-13,  -900., 0.0);
+{  5092} G2G5003 +PERO2              =  0.400G1G5003 + 0.300GGO5006 + 0.300GGK5003                 : ARR( 0.162E-13, -1400., 0.0);
+{  5093} G2G5003 +PERO3              =  0.460G1G5003 + 0.270GGO5006 + 0.270GGK5003                 : ARR( 0.488E-13, -1250., 0.0);
+{  5094} G2G5003 +PERO5              =  0.460G1G5003 + 0.270GGO5006 + 0.270GGK5003                 : ARR( 0.183E-11,   450., 0.0);
+{  5095} G2G5003 +PERO6              =  0.300G1G5003 + 0.350GGO5006 + 0.350GGK5003                 : ARR( 0.168E-13, -1300., 0.0);
+{  5096} G2G5003 +PERO9              =  0.650G1G5003 + 0.350GGK5003                                : ARR( 0.100E-10,     0., 0.0);
+{  5097} G2G5004 +GNO                =       G1G5004 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  5098} G2G5004 +GNO                =       GGN5005                                               : ARR( 0.182E-12,  -360., 0.0);
+{  5099} G2G5004 +GHO2               =       GGH5005                                               : ARR( 0.242E-12, -1250., 0.0);
+{  5100} G2G5004 +GNO3               =       G1G5004 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  5101} G2G5004 +MEPERO             =  0.340G1G5004 + 0.330GGO5004 + 0.330GGK5004                 : ARR( 0.565E-13,  -845., 0.0);
+{  5102} G2G5004 +PERO1              =  0.460G1G5004 + 0.270GGO5004 + 0.270GGK5004                 : ARR( 0.434E-13,  -900., 0.0);
+{  5103} G2G5004 +PERO2              =  0.400G1G5004 + 0.300GGO5004 + 0.300GGK5004                 : ARR( 0.162E-13, -1400., 0.0);
+{  5104} G2G5004 +PERO3              =  0.460G1G5004 + 0.270GGO5004 + 0.270GGK5004                 : ARR( 0.488E-13, -1250., 0.0);
+{  5105} G2G5004 +PERO5              =  0.460G1G5004 + 0.270GGO5004 + 0.270GGK5004                 : ARR( 0.183E-11,   450., 0.0);
+{  5106} G2G5004 +PERO6              =  0.300G1G5004 + 0.350GGO5004 + 0.350GGK5004                 : ARR( 0.168E-13, -1300., 0.0);
+{  5107} G2G5004 +PERO9              =  0.650G1G5004 + 0.350GGK5004                                : ARR( 0.100E-10,     0., 0.0);
+{  5108} G1G5003                     =       GD02000 +      GGD3000 +      GHO2                    : ARR( 0.200E+15,  3325., 0.0);
+{  5109} G1G5004                     =       GDO4001 +      GCO     +      GHO2                    : ARR( 0.200E+15,  4949., 0.0);
+{  5110} GAO5000 +GHO                =       GAK5001 +      GHO2                                   : ARR( 0.904E-11,     0., 0.0);
+{  5111} GAO5000 +GHO                =       G2A5003                                               : ARR( 0.153E-11,     0., 0.0);
+{  5112} GAO5000 +GHO                =       G2A5004                                               : ARR( 0.688E-12,     0., 0.0);
+{  5113} G2A5003 +GNO                =       G1A5003 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  5114} G2A5003 +GNO                =       GAN5006                                               : ARR( 0.182E-12,  -360., 0.0);
+{  5115} G2A5003 +GHO2               =       GAH5004                                               : ARR( 0.242E-12, -1250., 0.0);
+{  5116} G2A5003 +GNO3               =       G1A5003 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  5117} G2A5003 +MEPERO             =  0.340G1A5003 + 0.330GAO5006 + 0.330GAK5003                 : ARR( 0.565E-13,  -845., 0.0);
+{  5118} G2A5003 +PERO1              =  0.460G1A5003 + 0.270GAO5006 + 0.270GAK5003                 : ARR( 0.434E-13,  -900., 0.0);
+{  5119} G2A5003 +PERO2              =  0.400G1A5003 + 0.300GAO5006 + 0.300GAK5003                 : ARR( 0.162E-13, -1400., 0.0);
+{  5120} G2A5003 +PERO3              =  0.460G1A5003 + 0.270GAO5006 + 0.270GAK5003                 : ARR( 0.488E-13, -1250., 0.0);
+{  5121} G2A5003 +PERO5              =  0.460G1A5003 + 0.270GAO5006 + 0.270GAK5003                 : ARR( 0.183E-11,   450., 0.0);
+{  5122} G2A5003 +PERO6              =  0.300G1A5003 + 0.350GAO5006 + 0.350GAK5003                 : ARR( 0.168E-13, -1300., 0.0);
+{  5123} G2A5003 +PERO9              =  0.650G1A5003 + 0.350GAK5003                                : ARR( 0.100E-10,     0., 0.0);
+{  5124} G2A5004 +GNO                =       G1A5004 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  5125} G2A5004 +GNO                =       GAN5005                                               : ARR( 0.182E-12,  -360., 0.0);
+{  5126} G2A5004 +GHO2               =       GAH5005                                               : ARR( 0.242E-12, -1250., 0.0);
+{  5127} G2A5004 +GNO3               =       G1A5004 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  5128} G2A5004 +MEPERO             =  0.340G1A5004 + 0.330GAO5004 + 0.330GAK5004                 : ARR( 0.565E-13,  -845., 0.0);
+{  5129} G2A5004 +PERO1              =  0.460G1A5004 + 0.270GAO5004 + 0.270GAK5004                 : ARR( 0.434E-13,  -900., 0.0);
+{  5130} G2A5004 +PERO2              =  0.400G1A5004 + 0.300GAO5004 + 0.300GAK5004                 : ARR( 0.162E-13, -1400., 0.0);
+{  5131} G2A5004 +PERO3              =  0.460G1A5004 + 0.270GAO5004 + 0.270GAK5004                 : ARR( 0.488E-13, -1250., 0.0);
+{  5132} G2A5004 +PERO5              =  0.460G1A5004 + 0.270GAO5004 + 0.270GAK5004                 : ARR( 0.183E-11,   450., 0.0);
+{  5133} G2A5004 +PERO6              =  0.300G1A5004 + 0.350GAO5004 + 0.350GAK5004                 : ARR( 0.168E-13, -1300., 0.0);
+{  5134} G2A5004 +PERO9              =  0.650G1A5004 + 0.350GAK5004                                : ARR( 0.100E-10,     0., 0.0);
+{  5135} G1A5003                     =       GD02000 +      GAD3000 +      GHO2                    : ARR( 0.200E+15,  3325., 0.0);
+{  5136} G1A5004                     =       GDO4001 +      GCO     +      GHO                     : ARR( 0.200E+15,  4918., 0.0);
+{  5137} GPO5000                     =       G3K5001 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{  5138} GPO5000 +GHO                =       GPK5001 +      GHO2                                   : ARR( 0.862E-11,     0., 0.0);
+{  5139} GPO5000 +GHO                =       G2P5003                                               : ARR( 0.145E-11,     0., 0.0);
+{  5140} GPO5000 +GHO                =       G2P5004                                               : ARR( 0.887E-12,     0., 0.0);
+{  5141} GPO5000+HV               =       G3K5001 +      GNO2                                   :  0.100E+01*SUN;
+{  5142} G2P5003 +GNO                =       G1P5003 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  5143} G2P5003 +GNO                =       GPN5006                                               : ARR( 0.182E-12,  -360., 0.0);
+{  5144} G2P5003 +GHO2               =       GPH5004                                               : ARR( 0.242E-12, -1250., 0.0);
+{  5145} G2P5003 +GNO3               =       G1P5003 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  5146} G2P5003 +MEPERO             =  0.340G1P5003 + 0.330GPO5006 + 0.330GPK5003                 : ARR( 0.565E-13,  -845., 0.0);
+{  5147} G2P5003 +PERO1              =  0.460G1P5003 + 0.270GPO5006 + 0.270GPK5003                 : ARR( 0.434E-13,  -900., 0.0);
+{  5148} G2P5003 +PERO2              =  0.400G1P5003 + 0.300GPO5006 + 0.300GPK5003                 : ARR( 0.162E-13, -1400., 0.0);
+{  5149} G2P5003 +PERO3              =  0.460G1P5003 + 0.270GPO5006 + 0.270GPK5003                 : ARR( 0.488E-13, -1250., 0.0);
+{  5150} G2P5003 +PERO5              =  0.460G1P5003 + 0.270GPO5006 + 0.270GPK5003                 : ARR( 0.183E-11,   450., 0.0);
+{  5151} G2P5003 +PERO6              =  0.300G1P5003 + 0.350GPO5006 + 0.350GPK5003                 : ARR( 0.168E-13, -1300., 0.0);
+{  5152} G2P5003 +PERO9              =  0.650G1P5003 + 0.350GPK5003                                : ARR( 0.100E-10,     0., 0.0);
+{  5153} G2P5004 +GNO                =       G1P5004 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  5154} G2P5004 +GNO                =       GPN5005                                               : ARR( 0.182E-12,  -360., 0.0);
+{  5155} G2P5004 +GHO2               =       GPH5005                                               : ARR( 0.242E-12, -1250., 0.0);
+{  5156} G2P5004 +GNO3               =       G1P5004 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  5157} G2P5004 +MEPERO             =  0.340G1P5004 + 0.330GPO5004 + 0.330GPK5004                 : ARR( 0.565E-13,  -845., 0.0);
+{  5158} G2P5004 +PERO1              =  0.460G1P5004 + 0.270GPO5004 + 0.270GPK5004                 : ARR( 0.434E-13,  -900., 0.0);
+{  5159} G2P5004 +PERO2              =  0.400G1P5004 + 0.300GPO5004 + 0.300GPK5004                 : ARR( 0.162E-13, -1400., 0.0);
+{  5160} G2P5004 +PERO3              =  0.460G1P5004 + 0.270GPO5004 + 0.270GPK5004                 : ARR( 0.488E-13, -1250., 0.0);
+{  5161} G2P5004 +PERO5              =  0.460G1P5004 + 0.270GPO5004 + 0.270GPK5004                 : ARR( 0.183E-11,   450., 0.0);
+{  5162} G2P5004 +PERO6              =  0.300G1P5004 + 0.350GPO5004 + 0.350GPK5004                 : ARR( 0.168E-13, -1300., 0.0);
+{  5163} G2P5004 +PERO9              =  0.650G1P5004 + 0.350GPK5004                                : ARR( 0.100E-10,     0., 0.0);
+{  5164} G1P5003                     =       GD02000 +      GPD3000 +      GHO2                    : ARR( 0.200E+15,  3325., 0.0);
+{  5165} G1P5004                     =       GDO4001 +      GCO     +      GNO2                    : ARR( 0.200E+15,  4949., 0.0);
+{  5166} GNO4001 +GHO                =       GNK4001 +      GHO2                                   : ARR( 0.901E-11,     0., 0.0);
+{  5167} GNO4001+HV               =       G1O4001 +      GNO2                                   :  0.100E+01*SUN;
+{  5168} GHO4001 +GHO                =       GHK4001 +      GHO2                                   : ARR( 0.889E-11,     0., 0.0);
+{  5169} GHO4001 +GHO                =       GDO4001 +      GHO                                    : ARR( 0.171E-10,     0., 0.0);
+{  5170} GHO4001 +GHO                =       G2O4001                                               : ARR( 0.202E-11,  -190., 0.0);
+{  5171} GHO4001+HV               =       G1O4001 +      GHO                                    :  0.100E+01*SUN;
+{  5172} GOO4001 +GHO                =       GKO4001 +      GHO2                                   : ARR( 0.865E-11,     0., 0.0);
+{  5173} GOO4001 +GHO                =       G2O4009                                               : ARR( 0.146E-11,     0., 0.0);
+{  5174} GOO4001 +GHO                =       GDO4001 +      GHO2                                   : ARR( 0.415E-11,     0., 0.0);
+{  5175} G2O4009 +GNO                =       G1O4009 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  5176} G2O4009 +GNO                =       GNO4008                                               : ARR( 0.111E-12,  -360., 0.0);
+{  5177} G2O4009 +GHO2               =       GHO4008                                               : ARR( 0.214E-12, -1250., 0.0);
+{  5178} G2O4009 +GNO3               =       G1O4009 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  5179} G2O4009 +MEPERO             =  0.340G1O4009 + 0.330GOO4004 + 0.330GKO4003                 : ARR( 0.565E-13,  -845., 0.0);
+{  5180} G2O4009 +PERO1              =  0.460G1O4009 + 0.270GOO4004 + 0.270GKO4003                 : ARR( 0.434E-13,  -900., 0.0);
+{  5181} G2O4009 +PERO2              =  0.400G1O4009 + 0.300GOO4004 + 0.300GKO4003                 : ARR( 0.162E-13, -1400., 0.0);
+{  5182} G2O4009 +PERO3              =  0.460G1O4009 + 0.270GOO4004 + 0.270GKO4003                 : ARR( 0.488E-13, -1250., 0.0);
+{  5183} G2O4009 +PERO5              =  0.460G1O4009 + 0.270GOO4004 + 0.270GKO4003                 : ARR( 0.183E-11,   450., 0.0);
+{  5184} G2O4009 +PERO6              =  0.300G1O4009 + 0.350GOO4004 + 0.350GKO4003                 : ARR( 0.168E-13, -1300., 0.0);
+{  5185} G2O4009 +PERO9              =  0.650G1O4009 + 0.350GKO4003                                : ARR( 0.100E-10,     0., 0.0);
+{  5186} G1O4009                     =       GD02000 +      GDO2000 +      GHO2                    : ARR( 0.200E+15,  4022., 0.0);
+{  5187} GNO4002 +GHO                =       GND4003 +      GHO2                                   : ARR( 0.420E-11,     0., 0.0);
+{  5188} GNO4002 +GHO                =       G2N400B                                               : ARR( 0.147E-11,     0., 0.0);
+{  5189} GNO4002 +GHO                =       GNK4004 +      GHO2                                   : ARR( 0.215E-11,     0., 0.0);
+{  5190} GNO4002+HV               =       G1O4002 +      GNO2                                   :  0.100E+01*SUN;
+{  5191} G2N400B +GNO                =       G1N400B +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  5192} G2N400B +GNO                =       GNN400A                                               : ARR( 0.111E-12,  -360., 0.0);
+{  5193} G2N400B +GHO2               =       GHN400F                                               : ARR( 0.214E-12, -1250., 0.0);
+{  5194} G2N400B +GNO3               =       G1N400B +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  5195} G2N400B +MEPERO             =  0.340G1N400B + 0.330GNO400B + 0.330GNK4005                 : ARR( 0.565E-13,  -845., 0.0);
+{  5196} G2N400B +PERO1              =  0.460G1N400B + 0.270GNO400B + 0.270GNK4005                 : ARR( 0.434E-13,  -900., 0.0);
+{  5197} G2N400B +PERO2              =  0.400G1N400B + 0.300GNO400B + 0.300GNK4005                 : ARR( 0.162E-13, -1400., 0.0);
+{  5198} G2N400B +PERO3              =  0.460G1N400B + 0.270GNO400B + 0.270GNK4005                 : ARR( 0.488E-13, -1250., 0.0);
+{  5199} G2N400B +PERO5              =  0.460G1N400B + 0.270GNO400B + 0.270GNK4005                 : ARR( 0.183E-11,   450., 0.0);
+{  5200} G2N400B +PERO6              =  0.300G1N400B + 0.350GNO400B + 0.350GNK4005                 : ARR( 0.168E-13, -1300., 0.0);
+{  5201} G2N400B +PERO9              =  0.650G1N400B + 0.350GNK4005                                : ARR( 0.100E-10,     0., 0.0);
+{  5202} G1N400B                     =       GDO2000 +      GND2000 +      GHO2                    : ARR( 0.200E+15,  3635., 0.0);
+{  5203} GHO4002 +GHO                =       GHD4003 +      GHO2                                   : ARR( 0.422E-11,     0., 0.0);
+{  5204} GHO4002 +GHO                =       GHK4003 +      GHO2                                   : ARR( 0.108E-10,     0., 0.0);
+{  5205} GHO4002 +GHO                =       GDO4003 +      GHO                                    : ARR( 0.169E-10,     0., 0.0);
+{  5206} GHO4002 +GHO                =       G2O4002                                               : ARR( 0.199E-11,  -190., 0.0);
+{  5207} GHO4002+HV               =       G1O4002 +      GHO                                    :  0.100E+01*SUN;
+{  5208} GOO4002 +GHO                =       GDO4002 +      GHO2                                   : ARR( 0.411E-11,     0., 0.0);
+{  5209} GOO4002 +GHO                =       G2O400A                                               : ARR( 0.144E-11,     0., 0.0);
+{  5210} GOO4002 +GHO                =       GKO4002 +      GHO2                                   : ARR( 0.105E-10,     0., 0.0);
+{  5211} GOO4002 +GHO                =       GDO4003 +      GHO2                                   : ARR( 0.411E-11,     0., 0.0);
+{  5212} G2O400A +GNO                =       G1O400A +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  5213} G2O400A +GNO                =       GNO4009                                               : ARR( 0.111E-12,  -360., 0.0);
+{  5214} G2O400A +GHO2               =       GHO4009                                               : ARR( 0.214E-12, -1250., 0.0);
+{  5215} G2O400A +GNO3               =       G1O400A +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  5216} G2O400A +MEPERO             =  0.340G1O400A + 0.330GOO4005 + 0.330GKO4004                 : ARR( 0.565E-13,  -845., 0.0);
+{  5217} G2O400A +PERO1              =  0.460G1O400A + 0.270GOO4005 + 0.270GKO4004                 : ARR( 0.434E-13,  -900., 0.0);
+{  5218} G2O400A +PERO2              =  0.400G1O400A + 0.300GOO4005 + 0.300GKO4004                 : ARR( 0.162E-13, -1400., 0.0);
+{  5219} G2O400A +PERO3              =  0.460G1O400A + 0.270GOO4005 + 0.270GKO4004                 : ARR( 0.488E-13, -1250., 0.0);
+{  5220} G2O400A +PERO5              =  0.460G1O400A + 0.270GOO4005 + 0.270GKO4004                 : ARR( 0.183E-11,   450., 0.0);
+{  5221} G2O400A +PERO6              =  0.300G1O400A + 0.350GOO4005 + 0.350GKO4004                 : ARR( 0.168E-13, -1300., 0.0);
+{  5222} G2O400A +PERO9              =  0.650G1O400A + 0.350GKO4004                                : ARR( 0.100E-10,     0., 0.0);
+{  5223} G1O400A                     =  2.000GDO2000 +      GHO2                                   : ARR( 0.200E+15,  3635., 0.0);
+{  5224} GDO4003 +GHO                =       GDD4001 +      GHO2                                   : ARR( 0.405E-11,     0., 0.0);
+{  5225} GDO4003 +GHO                =       G2D4002                                               : ARR( 0.452E-11,     0., 0.0);
+{  5226} GDO4003 +GHO                =       GDK4005 +      GHO2                                   : ARR( 0.633E-11,     0., 0.0);
+{  5227} GDO4003 +GHO                =       G3K4006                                               : ARR( 0.209E-10,     0., 0.0);
+{  5228} GDO4003 +GNO3               =       G3K4006 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{  5229} GDO4003+HV               =       GDO3000 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{  5230} G2D4002 +GNO                =       G1D4002 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  5231} G2D4002 +GNO                =       GND4009                                               : ARR( 0.111E-12,  -360., 0.0);
+{  5232} G2D4002 +GHO2               =       GHD4009                                               : ARR( 0.214E-12, -1250., 0.0);
+{  5233} G2D4002 +GNO3               =       G1D4002 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  5234} G2D4002 +MEPERO             =  0.340G1D4002 + 0.330GDO4006 + 0.330GDK4006                 : ARR( 0.565E-13,  -845., 0.0);
+{  5235} G2D4002 +PERO1              =  0.460G1D4002 + 0.270GDO4006 + 0.270GDK4006                 : ARR( 0.434E-13,  -900., 0.0);
+{  5236} G2D4002 +PERO2              =  0.400G1D4002 + 0.300GDO4006 + 0.300GDK4006                 : ARR( 0.162E-13, -1400., 0.0);
+{  5237} G2D4002 +PERO3              =  0.460G1D4002 + 0.270GDO4006 + 0.270GDK4006                 : ARR( 0.488E-13, -1250., 0.0);
+{  5238} G2D4002 +PERO5              =  0.460G1D4002 + 0.270GDO4006 + 0.270GDK4006                 : ARR( 0.183E-11,   450., 0.0);
+{  5239} G2D4002 +PERO6              =  0.300G1D4002 + 0.350GDO4006 + 0.350GDK4006                 : ARR( 0.168E-13, -1300., 0.0);
+{  5240} G2D4002 +PERO9              =  0.650G1D4002 + 0.350GDK4006                                : ARR( 0.100E-10,     0., 0.0);
+{  5241} G3K4006 +GHO2               =  0.800GGO4005 + 0.200GAO4005 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  5242} G3K4006 +GNO                =       GDO3000 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{  5243} G3K4006 +GNO2               =       GPO4005                                               : ARR( 0.330E-08,     0.,-1.0);
+{  5244} G3K4006 +GNO3               =       GDO3000 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{  5245} G3K4006 +MEPERO             =  0.685GDO3000 + 0.315GAO4005 + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  5246} G3K4006 +PERO1              =  0.800GDO3000 + 0.200GAO4005 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  5247} G3K4006 +PERO2              =  0.750GDO3000 + 0.250GAO4005 + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  5248} G3K4006 +PERO3              =  0.800GDO3000 + 0.200GAO4005 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  5249} G3K4006 +PERO5              =  0.650GDO3000 + 0.350GAO4005 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  5250} G3K4006 +PERO6              =  0.650GDO3000 + 0.350GAO4005 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  5251} G3K4006 +PERO9              =       GDO3000 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{  5252} G1D4002                     =       GCH2O   +      GDD3001 +      GHO2                    : ARR( 0.200E+15,  4465., 0.0);
+{  5253} G1D4002                     =       GDO2000 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  3768., 0.0);
+{  5254} GHN3002 +GHO                =       GNK3000 +      GHO                                    : ARR( 0.684E-11,     0., 0.0);
+{  5255} GHN3002 +GHO                =       G2N3002                                               : ARR( 0.194E-11,  -190., 0.0);
+{  5256} GHN3002+HV               =       G1N3002 +      GHO                                    :  0.100E+01*SUN;
+{  5257} GHN3002+HV               =       G1H3004 +      GNO2                                   :  0.100E+01*SUN;
+{  5258} GHH3000 +GHO                =       GHK3000 +      GHO                                    : ARR( 0.336E-10,     0., 0.0);
+{  5259} GHH3000 +GHO                =       GHD3002 +      GHO                                    : ARR( 0.161E-10,     0., 0.0);
+{  5260} GHH3000 +GHO                =       G2H3000                                               : ARR( 0.191E-11,  -190., 0.0);
+{  5261} GHH3000 +GHO                =       G2H3003                                               : ARR( 0.191E-11,  -190., 0.0);
+{  5262} GHH3000+HV               =       G1H3000 +      GHO                                    :  0.100E+01*SUN;
+{  5263} GHH3000+HV               =       G1H3004 +      GHO                                    :  0.100E+01*SUN;
+{  5264} GHO3002 +GHO                =       GKO3000 +      GHO                                    : ARR( 0.338E-10,     0., 0.0);
+{  5265} GHO3002 +GHO                =       GHD3002 +      GHO2                                   : ARR( 0.405E-11,     0., 0.0);
+{  5266} GHO3002 +GHO                =       G2O3002                                               : ARR( 0.191E-11,  -190., 0.0);
+{  5267} GHO3002+HV               =       G1O3002 +      GHO                                    :  0.100E+01*SUN;
+{  5268} GNN500C +GHO                =       GNN500h +      GNO2                                   : ARR( 0.484E-13,     0., 0.0);
+{  5269} GNN500C +GHO                =       G2N501X                                               : ARR( 0.298E-12,     0., 0.0);
+{  5270} GNN500C +GHO                =       G2N501Y                                               : ARR( 0.298E-12,     0., 0.0);
+{  5271} GNN500C+HV               =       G1N500d +      GNO2                                   :  0.100E+01*SUN;
+{  5272} GNN500C+HV               =       G1N500G +      GNO2                                   :  0.100E+01*SUN;
+{  5273} GNN500C+HV               =       G1N501a +      GNO2                                   :  0.100E+01*SUN;
+{  5274} G2N501X +GNO                =       G1N501b +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  5275} G2N501X +GNO                =       GNN501C                                               : ARR( 0.182E-12,  -360., 0.0);
+{  5276} G2N501X +GHO2               =       GHN501u                                               : ARR( 0.242E-12, -1250., 0.0);
+{  5277} G2N501X +GNO3               =       G1N501b +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  5278} G2N501X +MEPERO             =  0.340G1N501b + 0.330GNN500Q + 0.330GNN501D                 : ARR( 0.565E-13,  -845., 0.0);
+{  5279} G2N501X +PERO1              =  0.460G1N501b + 0.270GNN500Q + 0.270GNN501D                 : ARR( 0.434E-13,  -900., 0.0);
+{  5280} G2N501X +PERO2              =  0.400G1N501b + 0.300GNN500Q + 0.300GNN501D                 : ARR( 0.162E-13, -1400., 0.0);
+{  5281} G2N501X +PERO3              =  0.460G1N501b + 0.270GNN500Q + 0.270GNN501D                 : ARR( 0.488E-13, -1250., 0.0);
+{  5282} G2N501X +PERO5              =  0.460G1N501b + 0.270GNN500Q + 0.270GNN501D                 : ARR( 0.183E-11,   450., 0.0);
+{  5283} G2N501X +PERO6              =  0.300G1N501b + 0.350GNN500Q + 0.350GNN501D                 : ARR( 0.168E-13, -1300., 0.0);
+{  5284} G2N501X +PERO9              =  0.650G1N501b + 0.350GNN501D                                : ARR( 0.100E-10,     0., 0.0);
+{  5285} G2N501Y +GNO                =       G1N501c +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  5286} G2N501Y +GNO                =       GNN501E                                               : ARR( 0.182E-12,  -360., 0.0);
+{  5287} G2N501Y +GHO2               =       GHN501v                                               : ARR( 0.242E-12, -1250., 0.0);
+{  5288} G2N501Y +GNO3               =       G1N501c +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  5289} G2N501Y +MEPERO             =  0.340G1N501c + 0.330GNN501F + 0.330GNN501G                 : ARR( 0.565E-13,  -845., 0.0);
+{  5290} G2N501Y +PERO1              =  0.460G1N501c + 0.270GNN501F + 0.270GNN501G                 : ARR( 0.434E-13,  -900., 0.0);
+{  5291} G2N501Y +PERO2              =  0.400G1N501c + 0.300GNN501F + 0.300GNN501G                 : ARR( 0.162E-13, -1400., 0.0);
+{  5292} G2N501Y +PERO3              =  0.460G1N501c + 0.270GNN501F + 0.270GNN501G                 : ARR( 0.488E-13, -1250., 0.0);
+{  5293} G2N501Y +PERO5              =  0.460G1N501c + 0.270GNN501F + 0.270GNN501G                 : ARR( 0.183E-11,   450., 0.0);
+{  5294} G2N501Y +PERO6              =  0.300G1N501c + 0.350GNN501F + 0.350GNN501G                 : ARR( 0.168E-13, -1300., 0.0);
+{  5295} G2N501Y +PERO9              =  0.650G1N501c + 0.350GNN501G                                : ARR( 0.100E-10,     0., 0.0);
+{  5296} G1N501a +OXYGEN             =       GNN501H +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{  5297} G1N501a                     =       G2N501Z                                               : ARR( 0.160E+12,  3719., 0.0);
+{  5298} G1N501b                     =       GNN500S +      GNO2                                   : ARR( 0.160E+12,  5251., 0.0);
+{  5299} G1N501b                     =       G2N3004 +      GND2000                                : ARR( 0.200E+15,  6983., 0.0);
+{  5300} G1N501c                     =       GND2000 +      GND3000 +      GNO2                    : ARR( 0.200E+15,  6068., 0.0);
+{  5301} G1N501c                     =       GNN3005 +      G2N2000                                : ARR( 0.200E+15,  7074., 0.0);
+{  5302} G2N501Z +GNO                =       G1N501d +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  5303} G2N501Z +GNO                =       GNN500j                                               : ARR( 0.182E-12,  -360., 0.0);
+{  5304} G2N501Z +GHO2               =       GHN500v                                               : ARR( 0.242E-12, -1250., 0.0);
+{  5305} G2N501Z +GNO3               =       G1N501d +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  5306} G2N501Z +MEPERO             =  0.340G1N501d + 0.330GNN500R + 0.330GNN500T                 : ARR( 0.565E-13,  -845., 0.0);
+{  5307} G2N501Z +PERO1              =  0.460G1N501d + 0.270GNN500R + 0.270GNN500T                 : ARR( 0.434E-13,  -900., 0.0);
+{  5308} G2N501Z +PERO2              =  0.400G1N501d + 0.300GNN500R + 0.300GNN500T                 : ARR( 0.162E-13, -1400., 0.0);
+{  5309} G2N501Z +PERO3              =  0.460G1N501d + 0.270GNN500R + 0.270GNN500T                 : ARR( 0.488E-13, -1250., 0.0);
+{  5310} G2N501Z +PERO5              =  0.460G1N501d + 0.270GNN500R + 0.270GNN500T                 : ARR( 0.183E-11,   450., 0.0);
+{  5311} G2N501Z +PERO6              =  0.300G1N501d + 0.350GNN500R + 0.350GNN500T                 : ARR( 0.168E-13, -1300., 0.0);
+{  5312} G2N501Z +PERO9              =  0.650G1N501d + 0.350GNN500T                                : ARR( 0.100E-10,     0., 0.0);
+{  5313} G1N501d                     =       GNN500S +      GHO2                                   : ARR( 0.160E+12,  3252., 0.0);
+{  5314} GHN500I +GHO                =       G2H500X                                               : ARR( 0.145E-11,     0., 0.0);
+{  5315} GHN500I +GHO                =       GNN500D +      GHO                                    : ARR( 0.848E-11,     0., 0.0);
+{  5316} GHN500I +GHO                =       G2N500G                                               : ARR( 0.195E-11,  -190., 0.0);
+{  5317} GHN500I+HV               =       G1H500i +      GNO2                                   :  0.100E+01*SUN;
+{  5318} GHN500I+HV               =       G1N500G +      GHO                                    :  0.100E+01*SUN;
+{  5319} GHN500I+HV               =       G1H500j +      GNO2                                   :  0.100E+01*SUN;
+{  5320} G2H500X +GNO                =       G1H500k +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  5321} G2H500X +GNO                =       GHN501w                                               : ARR( 0.182E-12,  -360., 0.0);
+{  5322} G2H500X +GHO2               =       GHH500U                                               : ARR( 0.242E-12, -1250., 0.0);
+{  5323} G2H500X +GNO3               =       G1H500k +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  5324} G2H500X +MEPERO             =  0.340G1H500k + 0.330GHN501x + 0.330GHN501y                 : ARR( 0.565E-13,  -845., 0.0);
+{  5325} G2H500X +PERO1              =  0.460G1H500k + 0.270GHN501x + 0.270GHN501y                 : ARR( 0.434E-13,  -900., 0.0);
+{  5326} G2H500X +PERO2              =  0.400G1H500k + 0.300GHN501x + 0.300GHN501y                 : ARR( 0.162E-13, -1400., 0.0);
+{  5327} G2H500X +PERO3              =  0.460G1H500k + 0.270GHN501x + 0.270GHN501y                 : ARR( 0.488E-13, -1250., 0.0);
+{  5328} G2H500X +PERO5              =  0.460G1H500k + 0.270GHN501x + 0.270GHN501y                 : ARR( 0.183E-11,   450., 0.0);
+{  5329} G2H500X +PERO6              =  0.300G1H500k + 0.350GHN501x + 0.350GHN501y                 : ARR( 0.168E-13, -1300., 0.0);
+{  5330} G2H500X +PERO9              =  0.650G1H500k + 0.350GHN501y                                : ARR( 0.100E-10,     0., 0.0);
+{  5331} G1H500i                     =       GNK5003 +      GHO                                    : ARR( 0.800E+11,  2398., 0.0);
+{  5332} G1H500j +OXYGEN             =       GHN501z +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{  5333} G1H500j                     =       G2H500Y                                               : ARR( 0.160E+12,  3719., 0.0);
+{  5334} G1H500j                     =       GND4001 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  6008., 0.0);
+{  5335} G1H500k                     =       GND2000 +      GND3000 +      GHO                     : ARR( 0.200E+15,  4529., 0.0);
+{  5336} G2H500Y +GNO                =       G1H500l +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  5337} G2H500Y +GNO                =       GHN500s                                               : ARR( 0.182E-12,  -360., 0.0);
+{  5338} G2H500Y +GHO2               =       GHH500A                                               : ARR( 0.242E-12, -1250., 0.0);
+{  5339} G2H500Y +GNO3               =       G1H500l +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  5340} G2H500Y +MEPERO             =  0.340G1H500l + 0.330GHN5011 + 0.330GHN5013                 : ARR( 0.565E-13,  -845., 0.0);
+{  5341} G2H500Y +PERO1              =  0.460G1H500l + 0.270GHN5011 + 0.270GHN5013                 : ARR( 0.434E-13,  -900., 0.0);
+{  5342} G2H500Y +PERO2              =  0.400G1H500l + 0.300GHN5011 + 0.300GHN5013                 : ARR( 0.162E-13, -1400., 0.0);
+{  5343} G2H500Y +PERO3              =  0.460G1H500l + 0.270GHN5011 + 0.270GHN5013                 : ARR( 0.488E-13, -1250., 0.0);
+{  5344} G2H500Y +PERO5              =  0.460G1H500l + 0.270GHN5011 + 0.270GHN5013                 : ARR( 0.183E-11,   450., 0.0);
+{  5345} G2H500Y +PERO6              =  0.300G1H500l + 0.350GHN5011 + 0.350GHN5013                 : ARR( 0.168E-13, -1300., 0.0);
+{  5346} G2H500Y +PERO9              =  0.650G1H500l + 0.350GHN5013                                : ARR( 0.100E-10,     0., 0.0);
+{  5347} G1H500l                     =       GHN5021 +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{  5348} GNN500D +GHO                =       G2N501a                                               : ARR( 0.934E-12,     0., 0.0);
+{  5349} GNN500D +GHO                =       G2N501b                                               : ARR( 0.898E-12,     0., 0.0);
+{  5350} GNN500D+HV               =       G1N501e +      GNO2                                   :  0.100E+01*SUN;
+{  5351} GNN500D+HV               =       G3N4000 +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{  5352} GNN500D+HV               =       G2D2000 +      GNK3000 +      GNO2                    :  0.100E+01*SUN;
+{  5353} GNN500D+HV               =       G1N500O +      GNO2                                   :  0.100E+01*SUN;
+{  5354} G2N501a +GNO                =       G1N501f +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  5355} G2N501a +GNO                =       GNN501D                                               : ARR( 0.182E-12,  -360., 0.0);
+{  5356} G2N501a +GHO2               =       GHN5022                                               : ARR( 0.242E-12, -1250., 0.0);
+{  5357} G2N501a +GNO3               =       G1N501f +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  5358} G2N501a +MEPERO             =  0.340G1N501f + 0.330GNN500X + 0.330GNN501I                 : ARR( 0.565E-13,  -845., 0.0);
+{  5359} G2N501a +PERO1              =  0.460G1N501f + 0.270GNN500X + 0.270GNN501I                 : ARR( 0.434E-13,  -900., 0.0);
+{  5360} G2N501a +PERO2              =  0.400G1N501f + 0.300GNN500X + 0.300GNN501I                 : ARR( 0.162E-13, -1400., 0.0);
+{  5361} G2N501a +PERO3              =  0.460G1N501f + 0.270GNN500X + 0.270GNN501I                 : ARR( 0.488E-13, -1250., 0.0);
+{  5362} G2N501a +PERO5              =  0.460G1N501f + 0.270GNN500X + 0.270GNN501I                 : ARR( 0.183E-11,   450., 0.0);
+{  5363} G2N501a +PERO6              =  0.300G1N501f + 0.350GNN500X + 0.350GNN501I                 : ARR( 0.168E-13, -1300., 0.0);
+{  5364} G2N501a +PERO9              =  0.650G1N501f + 0.350GNN501I                                : ARR( 0.100E-10,     0., 0.0);
+{  5365} G2N501b +GNO                =       G1N501g +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  5366} G2N501b +GNO                =       GNN501J                                               : ARR( 0.182E-12,  -360., 0.0);
+{  5367} G2N501b +GHO2               =       GHN5023                                               : ARR( 0.242E-12, -1250., 0.0);
+{  5368} G2N501b +GNO3               =       G1N501g +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  5369} G2N501b +MEPERO             =  0.340G1N501g + 0.330GNN501K + 0.330GNN501L                 : ARR( 0.565E-13,  -845., 0.0);
+{  5370} G2N501b +PERO1              =  0.460G1N501g + 0.270GNN501K + 0.270GNN501L                 : ARR( 0.434E-13,  -900., 0.0);
+{  5371} G2N501b +PERO2              =  0.400G1N501g + 0.300GNN501K + 0.300GNN501L                 : ARR( 0.162E-13, -1400., 0.0);
+{  5372} G2N501b +PERO3              =  0.460G1N501g + 0.270GNN501K + 0.270GNN501L                 : ARR( 0.488E-13, -1250., 0.0);
+{  5373} G2N501b +PERO5              =  0.460G1N501g + 0.270GNN501K + 0.270GNN501L                 : ARR( 0.183E-11,   450., 0.0);
+{  5374} G2N501b +PERO6              =  0.300G1N501g + 0.350GNN501K + 0.350GNN501L                 : ARR( 0.168E-13, -1300., 0.0);
+{  5375} G2N501b +PERO9              =  0.650G1N501g + 0.350GNN501L                                : ARR( 0.100E-10,     0., 0.0);
+{  5376} G1N501e +OXYGEN             =       GND500C +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{  5377} G1N501f                     =       G2N3005 +      GND2000                                : ARR( 0.200E+15,  7286., 0.0);
+{  5378} G1N501f                     =       GND4004 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  8296., 0.0);
+{  5379} G1N501g                     =       GND3000 +      G3N2000                                : ARR( 0.200E+15,  2635., 0.0);
+{  5380} GNN500E +GHO                =       GNN500J +      GNO2                                   : ARR( 0.919E-13,     0., 0.0);
+{  5381} GNN500E +GHO                =       G2N501c                                               : ARR( 0.113E-12,     0., 0.0);
+{  5382} GNN500E +GHO                =       GNN500G +      GNO2                                   : ARR( 0.118E-12,     0., 0.0);
+{  5383} GNN500E+HV               =       G1N500S +      GNO2                                   :  0.200E+01*SUN;
+{  5384} GNN500E+HV               =       G1N500H +      GNO2                                   :  0.100E+01*SUN;
+{  5385} G2N501c +GNO                =       G1N501h +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  5386} G2N501c +GNO                =       GNN501E                                               : ARR( 0.182E-12,  -360., 0.0);
+{  5387} G2N501c +GHO2               =       GHN501w                                               : ARR( 0.242E-12, -1250., 0.0);
+{  5388} G2N501c +GNO3               =       G1N501h +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  5389} G2N501c +MEPERO             =  0.340G1N501h + 0.330GNN500e + 0.330GNN501J                 : ARR( 0.565E-13,  -845., 0.0);
+{  5390} G2N501c +PERO1              =  0.460G1N501h + 0.270GNN500e + 0.270GNN501J                 : ARR( 0.434E-13,  -900., 0.0);
+{  5391} G2N501c +PERO2              =  0.400G1N501h + 0.300GNN500e + 0.300GNN501J                 : ARR( 0.162E-13, -1400., 0.0);
+{  5392} G2N501c +PERO3              =  0.460G1N501h + 0.270GNN500e + 0.270GNN501J                 : ARR( 0.488E-13, -1250., 0.0);
+{  5393} G2N501c +PERO5              =  0.460G1N501h + 0.270GNN500e + 0.270GNN501J                 : ARR( 0.183E-11,   450., 0.0);
+{  5394} G2N501c +PERO6              =  0.300G1N501h + 0.350GNN500e + 0.350GNN501J                 : ARR( 0.168E-13, -1300., 0.0);
+{  5395} G2N501c +PERO9              =  0.650G1N501h + 0.350GNN501J                                : ARR( 0.100E-10,     0., 0.0);
+{  5396} G1N501h                     =       GNN500f +      GNO2                                   : ARR( 0.160E+12,  4531., 0.0);
+{  5397} G1N501h                     =       GND3000 +      GND2000 +      GNO2                    : ARR( 0.200E+15,  6737., 0.0);
+{  5398} GHN500J +GHO                =       GNN500G +      GHO                                    : ARR( 0.418E-10,     0., 0.0);
+{  5399} GHN500J +GHO                =       G2N500H                                               : ARR( 0.193E-11,  -190., 0.0);
+{  5400} GHN500J+HV               =       G1H500m +      GNO2                                   :  0.200E+01*SUN;
+{  5401} GHN500J+HV               =       G1N500H +      GHO                                    :  0.100E+01*SUN;
+{  5402} G1H500m +OXYGEN             =       GHN500S +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{  5403} G1H500m                     =       G2H500Z                                               : ARR( 0.160E+12,  3719., 0.0);
+{  5404} G2H500Z +GNO                =       G1H500n +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  5405} G2H500Z +GNO                =       GHN5024                                               : ARR( 0.182E-12,  -360., 0.0);
+{  5406} G2H500Z +GHO2               =       GHH500B                                               : ARR( 0.242E-12, -1250., 0.0);
+{  5407} G2H500Z +GNO3               =       G1H500n +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  5408} G2H500Z +MEPERO             =  0.340G1H500n + 0.330GHN5012 + 0.330GHN5014                 : ARR( 0.565E-13,  -845., 0.0);
+{  5409} G2H500Z +PERO1              =  0.460G1H500n + 0.270GHN5012 + 0.270GHN5014                 : ARR( 0.434E-13,  -900., 0.0);
+{  5410} G2H500Z +PERO2              =  0.400G1H500n + 0.300GHN5012 + 0.300GHN5014                 : ARR( 0.162E-13, -1400., 0.0);
+{  5411} G2H500Z +PERO3              =  0.460G1H500n + 0.270GHN5012 + 0.270GHN5014                 : ARR( 0.488E-13, -1250., 0.0);
+{  5412} G2H500Z +PERO5              =  0.460G1H500n + 0.270GHN5012 + 0.270GHN5014                 : ARR( 0.183E-11,   450., 0.0);
+{  5413} G2H500Z +PERO6              =  0.300G1H500n + 0.350GHN5012 + 0.350GHN5014                 : ARR( 0.168E-13, -1300., 0.0);
+{  5414} G2H500Z +PERO9              =  0.650G1H500n + 0.350GHN5014                                : ARR( 0.100E-10,     0., 0.0);
+{  5415} G1H500n                     =       GHN501C +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{  5416} G1H500n                     =       GDO3000 +      GND2000 +      GHO                     : ARR( 0.200E+15,  5198., 0.0);
+{  5417} GNN500F +GHO                =       G2N501d                                               : ARR( 0.577E-12,     0., 0.0);
+{  5418} GNN500F +GHO                =       GNN500G +      GHO2                                   : ARR( 0.105E-10,     0., 0.0);
+{  5419} GNN500F+HV               =       G1N501i +      GNO2                                   :  0.200E+01*SUN;
+{  5420} G2N501d +GNO                =       G1N501j +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  5421} G2N501d +GNO                =       GNN501F                                               : ARR( 0.182E-12,  -360., 0.0);
+{  5422} G2N501d +GHO2               =       GHN501x                                               : ARR( 0.242E-12, -1250., 0.0);
+{  5423} G2N501d +GNO3               =       G1N501j +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  5424} G2N501d +MEPERO             =  0.340G1N501j + 0.330GNN500o + 0.330GNN501K                 : ARR( 0.565E-13,  -845., 0.0);
+{  5425} G2N501d +PERO1              =  0.460G1N501j + 0.270GNN500o + 0.270GNN501K                 : ARR( 0.434E-13,  -900., 0.0);
+{  5426} G2N501d +PERO2              =  0.400G1N501j + 0.300GNN500o + 0.300GNN501K                 : ARR( 0.162E-13, -1400., 0.0);
+{  5427} G2N501d +PERO3              =  0.460G1N501j + 0.270GNN500o + 0.270GNN501K                 : ARR( 0.488E-13, -1250., 0.0);
+{  5428} G2N501d +PERO5              =  0.460G1N501j + 0.270GNN500o + 0.270GNN501K                 : ARR( 0.183E-11,   450., 0.0);
+{  5429} G2N501d +PERO6              =  0.300G1N501j + 0.350GNN500o + 0.350GNN501K                 : ARR( 0.168E-13, -1300., 0.0);
+{  5430} G2N501d +PERO9              =  0.650G1N501j + 0.350GNN501K                                : ARR( 0.100E-10,     0., 0.0);
+{  5431} G1N501i +OXYGEN             =       GND5006 +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{  5432} G1N501i                     =       G2N501e                                               : ARR( 0.160E+12,  3719., 0.0);
+{  5433} G1N501j                     =       GND3000 +      GND2000 +      GHO2                    : ARR( 0.200E+15,  3989., 0.0);
+{  5434} G2N501e +GNO                =       G1N501k +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  5435} G2N501e +GNO                =       GNN501M                                               : ARR( 0.182E-12,  -360., 0.0);
+{  5436} G2N501e +GHO2               =       GHN500y                                               : ARR( 0.242E-12, -1250., 0.0);
+{  5437} G2N501e +GNO3               =       G1N501k +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  5438} G2N501e +MEPERO             =  0.340G1N501k + 0.330GNO500N + 0.330GNK500R                 : ARR( 0.565E-13,  -845., 0.0);
+{  5439} G2N501e +PERO1              =  0.460G1N501k + 0.270GNO500N + 0.270GNK500R                 : ARR( 0.434E-13,  -900., 0.0);
+{  5440} G2N501e +PERO2              =  0.400G1N501k + 0.300GNO500N + 0.300GNK500R                 : ARR( 0.162E-13, -1400., 0.0);
+{  5441} G2N501e +PERO3              =  0.460G1N501k + 0.270GNO500N + 0.270GNK500R                 : ARR( 0.488E-13, -1250., 0.0);
+{  5442} G2N501e +PERO5              =  0.460G1N501k + 0.270GNO500N + 0.270GNK500R                 : ARR( 0.183E-11,   450., 0.0);
+{  5443} G2N501e +PERO6              =  0.300G1N501k + 0.350GNO500N + 0.350GNK500R                 : ARR( 0.168E-13, -1300., 0.0);
+{  5444} G2N501e +PERO9              =  0.650G1N501k + 0.350GNK500R                                : ARR( 0.100E-10,     0., 0.0);
+{  5445} G1N501k                     =       GND500E +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{  5446} G1N501k                     =       GDO3000 +      GND2000 +      GHO2                    : ARR( 0.200E+15,  3989., 0.0);
+{  5447} GNN500G +GHO                =       GND5007 +      GNO2                                   : ARR( 0.291E-12,     0., 0.0);
+{  5448} GNN500G +GHO                =       G2N501f                                               : ARR( 0.345E-12,     0., 0.0);
+{  5449} GNN500G+HV               =       G1N500Z +      GNO2                                   :  0.200E+01*SUN;
+{  5450} GNN500G+HV               =       G3N3000 +      G2N2000                                :  0.100E+01*SUN;
+{  5451} G2N501f +GNO                =       G1N501l +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  5452} G2N501f +GNO                =       GNN501G                                               : ARR( 0.182E-12,  -360., 0.0);
+{  5453} G2N501f +GHO2               =       GHN501y                                               : ARR( 0.242E-12, -1250., 0.0);
+{  5454} G2N501f +GNO3               =       G1N501l +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  5455} G2N501f +MEPERO             =  0.340G1N501l + 0.330GNN500p + 0.330GNN501L                 : ARR( 0.565E-13,  -845., 0.0);
+{  5456} G2N501f +PERO1              =  0.460G1N501l + 0.270GNN500p + 0.270GNN501L                 : ARR( 0.434E-13,  -900., 0.0);
+{  5457} G2N501f +PERO2              =  0.400G1N501l + 0.300GNN500p + 0.300GNN501L                 : ARR( 0.162E-13, -1400., 0.0);
+{  5458} G2N501f +PERO3              =  0.460G1N501l + 0.270GNN500p + 0.270GNN501L                 : ARR( 0.488E-13, -1250., 0.0);
+{  5459} G2N501f +PERO5              =  0.460G1N501l + 0.270GNN500p + 0.270GNN501L                 : ARR( 0.183E-11,   450., 0.0);
+{  5460} G2N501f +PERO6              =  0.300G1N501l + 0.350GNN500p + 0.350GNN501L                 : ARR( 0.168E-13, -1300., 0.0);
+{  5461} G2N501f +PERO9              =  0.650G1N501l + 0.350GNN501L                                : ARR( 0.100E-10,     0., 0.0);
+{  5462} G1N501l                     =       G3N3000 +      GND2000                                : ARR( 0.200E+15,  3003., 0.0);
+{  5463} GHN500K +GHO                =       GNN500J +      GHO                                    : ARR( 0.165E-10,     0., 0.0);
+{  5464} GHN500K +GHO                =       G2N500S                                               : ARR( 0.195E-11,  -190., 0.0);
+{  5465} GHN500K+HV               =       G1H500o +      GNO2                                   :  0.100E+01*SUN;
+{  5466} GHN500K+HV               =       G1H5004 +      GNO2                                   :  0.100E+01*SUN;
+{  5467} GHN500K+HV               =       G1N500S +      GHO                                    :  0.100E+01*SUN;
+{  5468} G1H500o +OXYGEN             =       GHN5025 +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{  5469} G1H500o                     =       G2H500a                                               : ARR( 0.160E+12,  3719., 0.0);
+{  5470} G2H500a +GNO                =       G1H500p +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  5471} G2H500a +GNO                =       GHN5026                                               : ARR( 0.182E-12,  -360., 0.0);
+{  5472} G2H500a +GHO2               =       GHH500W                                               : ARR( 0.242E-12, -1250., 0.0);
+{  5473} G2H500a +GNO3               =       G1H500p +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  5474} G2H500a +MEPERO             =  0.340G1H500p + 0.330GHN5027 + 0.330GHN5028                 : ARR( 0.565E-13,  -845., 0.0);
+{  5475} G2H500a +PERO1              =  0.460G1H500p + 0.270GHN5027 + 0.270GHN5028                 : ARR( 0.434E-13,  -900., 0.0);
+{  5476} G2H500a +PERO2              =  0.400G1H500p + 0.300GHN5027 + 0.300GHN5028                 : ARR( 0.162E-13, -1400., 0.0);
+{  5477} G2H500a +PERO3              =  0.460G1H500p + 0.270GHN5027 + 0.270GHN5028                 : ARR( 0.488E-13, -1250., 0.0);
+{  5478} G2H500a +PERO5              =  0.460G1H500p + 0.270GHN5027 + 0.270GHN5028                 : ARR( 0.183E-11,   450., 0.0);
+{  5479} G2H500a +PERO6              =  0.300G1H500p + 0.350GHN5027 + 0.350GHN5028                 : ARR( 0.168E-13, -1300., 0.0);
+{  5480} G2H500a +PERO9              =  0.650G1H500p + 0.350GHN5028                                : ARR( 0.100E-10,     0., 0.0);
+{  5481} G1H500p                     =       GHN501G +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{  5482} GHH5003 +GHO                =       GHN500M +      GHO                                    : ARR( 0.423E-10,     0., 0.0);
+{  5483} GHH5003 +GHO                =       GHN500S +      GHO                                    : ARR( 0.165E-10,     0., 0.0);
+{  5484} GHH5003 +GHO                =       G2H5003                                               : ARR( 0.195E-11,  -190., 0.0);
+{  5485} GHH5003 +GHO                =       G2H500b                                               : ARR( 0.195E-11,  -190., 0.0);
+{  5486} GHH5003+HV               =       G1H500q +      GNO2                                   :  0.100E+01*SUN;
+{  5487} GHH5003+HV               =       G1H5004 +      GHO                                    :  0.100E+01*SUN;
+{  5488} GHH5003+HV               =       G1H500m +      GHO                                    :  0.100E+01*SUN;
+{  5489} G2H500b +GNO                =       G1H500m +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  5490} G2H500b +GNO                =       GHN500J                                               : ARR( 0.182E-12,  -360., 0.0);
+{  5491} G2H500b +GHO2               =       GHH5003                                               : ARR( 0.242E-12, -1250., 0.0);
+{  5492} G2H500b +GNO3               =       G1H500m +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  5493} G2H500b +MEPERO             =  0.480G1H500m + 0.260GHN500R + 0.260GHN500S                 : ARR( 0.146E-12,  -445., 0.0);
+{  5494} G2H500b +PERO1              =  0.600G1H500m + 0.200GHN500R + 0.200GHN500S                 : ARR( 0.112E-12,  -500., 0.0);
+{  5495} G2H500b +PERO2              =  0.560G1H500m + 0.220GHN500R + 0.220GHN500S                 : ARR( 0.418E-13, -1000., 0.0);
+{  5496} G2H500b +PERO3              =  0.600G1H500m + 0.200GHN500R + 0.200GHN500S                 : ARR( 0.126E-12,  -850., 0.0);
+{  5497} G2H500b +PERO5              =  0.600G1H500m + 0.200GHN500R + 0.200GHN500S                 : ARR( 0.473E-11,   850., 0.0);
+{  5498} G2H500b +PERO6              =  0.460G1H500m + 0.270GHN500R + 0.270GHN500S                 : ARR( 0.434E-13,  -900., 0.0);
+{  5499} G2H500b +PERO9              =  0.800G1H500m + 0.200GHN500S                                : ARR( 0.100E-10,     0., 0.0);
+{  5500} G1H500q                     =       G2H500c                                               : ARR( 0.160E+12,  3000., 0.0);
+{  5501} G2H500c +GNO                =       G1H500r +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  5502} G2H500c +GNO                =       GHH500X                                               : ARR( 0.182E-12,  -360., 0.0);
+{  5503} G2H500c +GHO2               =       GHH500Y                                               : ARR( 0.242E-12, -1250., 0.0);
+{  5504} G2H500c +GNO3               =       G1H500r +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  5505} G2H500c +MEPERO             =  0.340G1H500r + 0.330GHH500Z + 0.330GHH500a                 : ARR( 0.565E-13,  -845., 0.0);
+{  5506} G2H500c +PERO1              =  0.460G1H500r + 0.270GHH500Z + 0.270GHH500a                 : ARR( 0.434E-13,  -900., 0.0);
+{  5507} G2H500c +PERO2              =  0.400G1H500r + 0.300GHH500Z + 0.300GHH500a                 : ARR( 0.162E-13, -1400., 0.0);
+{  5508} G2H500c +PERO3              =  0.460G1H500r + 0.270GHH500Z + 0.270GHH500a                 : ARR( 0.488E-13, -1250., 0.0);
+{  5509} G2H500c +PERO5              =  0.460G1H500r + 0.270GHH500Z + 0.270GHH500a                 : ARR( 0.183E-11,   450., 0.0);
+{  5510} G2H500c +PERO6              =  0.300G1H500r + 0.350GHH500Z + 0.350GHH500a                 : ARR( 0.168E-13, -1300., 0.0);
+{  5511} G2H500c +PERO9              =  0.650G1H500r + 0.350GHH500a                                : ARR( 0.100E-10,     0., 0.0);
+{  5512} G1H500r                     =       GHH500J +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{  5513} G1H500r                     =       GDO3000 +      GHD2000 +      GHO                     : ARR( 0.200E+15,  5200., 0.0);
+{  5514} GHN500L +GHO                =       GHN500M +      GHO2                                   : ARR( 0.109E-10,     0., 0.0);
+{  5515} GHN500L +GHO                =       GND5006 +      GHO                                    : ARR( 0.171E-10,     0., 0.0);
+{  5516} GHN500L +GHO                =       G2N501g                                               : ARR( 0.202E-11,  -190., 0.0);
+{  5517} GHN500L+HV               =       G1H500s +      GNO2                                   :  0.100E+01*SUN;
+{  5518} GHN500L+HV               =       G1N501i +      GHO                                    :  0.100E+01*SUN;
+{  5519} G2N501g +GNO                =       G1N501i +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  5520} G2N501g +GNO                =       GNN500F                                               : ARR( 0.182E-12,  -360., 0.0);
+{  5521} G2N501g +GHO2               =       GHN500L                                               : ARR( 0.242E-12, -1250., 0.0);
+{  5522} G2N501g +GNO3               =       G1N501i +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  5523} G2N501g +MEPERO             =  0.480G1N501i + 0.260GNO500I + 0.260GND5006                 : ARR( 0.146E-12,  -445., 0.0);
+{  5524} G2N501g +PERO1              =  0.600G1N501i + 0.200GNO500I + 0.200GND5006                 : ARR( 0.112E-12,  -500., 0.0);
+{  5525} G2N501g +PERO2              =  0.560G1N501i + 0.220GNO500I + 0.220GND5006                 : ARR( 0.418E-13, -1000., 0.0);
+{  5526} G2N501g +PERO3              =  0.600G1N501i + 0.200GNO500I + 0.200GND5006                 : ARR( 0.126E-12,  -850., 0.0);
+{  5527} G2N501g +PERO5              =  0.600G1N501i + 0.200GNO500I + 0.200GND5006                 : ARR( 0.473E-11,   850., 0.0);
+{  5528} G2N501g +PERO6              =  0.460G1N501i + 0.270GNO500I + 0.270GND5006                 : ARR( 0.434E-13,  -900., 0.0);
+{  5529} G2N501g +PERO9              =  0.800G1N501i + 0.200GND5006                                : ARR( 0.100E-10,     0., 0.0);
+{  5530} G1H500s                     =       G2H500d                                               : ARR( 0.160E+12,  3000., 0.0);
+{  5531} G2H500d +GNO                =       G1H500t +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  5532} G2H500d +GNO                =       GHN5029                                               : ARR( 0.182E-12,  -360., 0.0);
+{  5533} G2H500d +GHO2               =       GHH500b                                               : ARR( 0.242E-12, -1250., 0.0);
+{  5534} G2H500d +GNO3               =       G1H500t +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  5535} G2H500d +MEPERO             =  0.340G1H500t + 0.330GHO500Q + 0.330GHK500a                 : ARR( 0.565E-13,  -845., 0.0);
+{  5536} G2H500d +PERO1              =  0.460G1H500t + 0.270GHO500Q + 0.270GHK500a                 : ARR( 0.434E-13,  -900., 0.0);
+{  5537} G2H500d +PERO2              =  0.400G1H500t + 0.300GHO500Q + 0.300GHK500a                 : ARR( 0.162E-13, -1400., 0.0);
+{  5538} G2H500d +PERO3              =  0.460G1H500t + 0.270GHO500Q + 0.270GHK500a                 : ARR( 0.488E-13, -1250., 0.0);
+{  5539} G2H500d +PERO5              =  0.460G1H500t + 0.270GHO500Q + 0.270GHK500a                 : ARR( 0.183E-11,   450., 0.0);
+{  5540} G2H500d +PERO6              =  0.300G1H500t + 0.350GHO500Q + 0.350GHK500a                 : ARR( 0.168E-13, -1300., 0.0);
+{  5541} G2H500d +PERO9              =  0.650G1H500t + 0.350GHK500a                                : ARR( 0.100E-10,     0., 0.0);
+{  5542} G1H500t                     =       GHD500B +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{  5543} G1H500t                     =       GDO3000 +      GHD2000 +      GHO2                    : ARR( 0.200E+15,  3991., 0.0);
+{  5544} GHN500M +GHO                =       GND5007 +      GHO                                    : ARR( 0.521E-10,     0., 0.0);
+{  5545} GHN500M +GHO                =       G2N500Z                                               : ARR( 0.194E-11,  -190., 0.0);
+{  5546} GHN500M+HV               =       G1H500u +      GNO2                                   :  0.100E+01*SUN;
+{  5547} GHN500M+HV               =       G3N3000 +      G2H2000                                :  0.100E+01*SUN;
+{  5548} GHN500M+HV               =       G1N500Z +      GHO                                    :  0.100E+01*SUN;
+{  5549} G1H500u +OXYGEN             =       GHD500K +      GHO2                                   : ARR( 0.600E-13,   398., 0.0);
+{  5550} G1H500u                     =       G2H500e                                               : ARR( 0.160E+12,  4982., 0.0);
+{  5551} G2H500e +GNO                =       G1H500v +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  5552} G2H500e +GNO                =       GHN502A                                               : ARR( 0.182E-12,  -360., 0.0);
+{  5553} G2H500e +GHO2               =       GHH500c                                               : ARR( 0.242E-12, -1250., 0.0);
+{  5554} G2H500e +GNO3               =       G1H500v +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  5555} G2H500e +MEPERO             =  0.340G1H500v + 0.330GHK500b + 0.330GHK500c                 : ARR( 0.565E-13,  -845., 0.0);
+{  5556} G2H500e +PERO1              =  0.460G1H500v + 0.270GHK500b + 0.270GHK500c                 : ARR( 0.434E-13,  -900., 0.0);
+{  5557} G2H500e +PERO2              =  0.400G1H500v + 0.300GHK500b + 0.300GHK500c                 : ARR( 0.162E-13, -1400., 0.0);
+{  5558} G2H500e +PERO3              =  0.460G1H500v + 0.270GHK500b + 0.270GHK500c                 : ARR( 0.488E-13, -1250., 0.0);
+{  5559} G2H500e +PERO5              =  0.460G1H500v + 0.270GHK500b + 0.270GHK500c                 : ARR( 0.183E-11,   450., 0.0);
+{  5560} G2H500e +PERO6              =  0.300G1H500v + 0.350GHK500b + 0.350GHK500c                 : ARR( 0.168E-13, -1300., 0.0);
+{  5561} G2H500e +PERO9              =  0.650G1H500v + 0.350GHK500c                                : ARR( 0.100E-10,     0., 0.0);
+{  5562} G1H500v                     =       G3K3001 +      GHD2000                                : ARR( 0.200E+15,  3005., 0.0);
+{  5563} GHN500N +GHO                =       GNN501H +      GHO                                    : ARR( 0.356E-11,     0., 0.0);
+{  5564} GHN500N +GHO                =       G2N501h                                               : ARR( 0.210E-11,  -190., 0.0);
+{  5565} GHN500N+HV               =       G1H500w +      GNO2                                   :  0.100E+01*SUN;
+{  5566} GHN500N+HV               =       G1H5005 +      GNO2                                   :  0.100E+01*SUN;
+{  5567} GHN500N+HV               =       G1N501a +      GHO                                    :  0.100E+01*SUN;
+{  5568} G2N501h +GNO                =       G1N501a +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  5569} G2N501h +GNO                =       GNN500C                                               : ARR( 0.182E-12,  -360., 0.0);
+{  5570} G2N501h +GHO2               =       GHN500N                                               : ARR( 0.242E-12, -1250., 0.0);
+{  5571} G2N501h +GNO3               =       G1N501a +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  5572} G2N501h +MEPERO             =  0.480G1N501a + 0.260GNN500H + 0.260GNN501H                 : ARR( 0.164E-12,  -795., 0.0);
+{  5573} G2N501h +PERO1              =  0.600G1N501a + 0.200GNN500H + 0.200GNN501H                 : ARR( 0.126E-12,  -850., 0.0);
+{  5574} G2N501h +PERO2              =  0.560G1N501a + 0.220GNN500H + 0.220GNN501H                 : ARR( 0.471E-13, -1350., 0.0);
+{  5575} G2N501h +PERO3              =  0.600G1N501a + 0.200GNN500H + 0.200GNN501H                 : ARR( 0.142E-12, -1200., 0.0);
+{  5576} G2N501h +PERO5              =  0.600G1N501a + 0.200GNN500H + 0.200GNN501H                 : ARR( 0.533E-11,   500., 0.0);
+{  5577} G2N501h +PERO6              =  0.460G1N501a + 0.270GNN500H + 0.270GNN501H                 : ARR( 0.488E-13, -1250., 0.0);
+{  5578} G2N501h +PERO9              =  0.800G1N501a + 0.200GNN501H                                : ARR( 0.100E-10,     0., 0.0);
+{  5579} G1H500w +OXYGEN             =       GHN502B +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{  5580} G1H500w                     =       GHK5002 +      GNO2                                   : ARR( 0.800E+11,  4024., 0.0);
+{  5581} GHH5004 +GHO                =       GHN500O +      GHO                                    : ARR( 0.423E-10,     0., 0.0);
+{  5582} GHH5004 +GHO                =       GHN501z +      GHO                                    : ARR( 0.165E-10,     0., 0.0);
+{  5583} GHH5004 +GHO                =       G2H5004                                               : ARR( 0.195E-11,  -190., 0.0);
+{  5584} GHH5004 +GHO                =       G2H500f                                               : ARR( 0.195E-11,  -190., 0.0);
+{  5585} GHH5004+HV               =       G1H500x +      GNO2                                   :  0.100E+01*SUN;
+{  5586} GHH5004+HV               =       G1H5005 +      GHO                                    :  0.100E+01*SUN;
+{  5587} GHH5004+HV               =       G1H500j +      GHO                                    :  0.100E+01*SUN;
+{  5588} G2H500f +GNO                =       G1H500j +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  5589} G2H500f +GNO                =       GHN500I                                               : ARR( 0.182E-12,  -360., 0.0);
+{  5590} G2H500f +GHO2               =       GHH5004                                               : ARR( 0.242E-12, -1250., 0.0);
+{  5591} G2H500f +GNO3               =       G1H500j +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  5592} G2H500f +MEPERO             =  0.480G1H500j + 0.260GHN500Q + 0.260GHN501z                 : ARR( 0.164E-12,  -795., 0.0);
+{  5593} G2H500f +PERO1              =  0.600G1H500j + 0.200GHN500Q + 0.200GHN501z                 : ARR( 0.126E-12,  -850., 0.0);
+{  5594} G2H500f +PERO2              =  0.560G1H500j + 0.220GHN500Q + 0.220GHN501z                 : ARR( 0.471E-13, -1350., 0.0);
+{  5595} G2H500f +PERO3              =  0.600G1H500j + 0.200GHN500Q + 0.200GHN501z                 : ARR( 0.142E-12, -1200., 0.0);
+{  5596} G2H500f +PERO5              =  0.600G1H500j + 0.200GHN500Q + 0.200GHN501z                 : ARR( 0.533E-11,   500., 0.0);
+{  5597} G2H500f +PERO6              =  0.460G1H500j + 0.270GHN500Q + 0.270GHN501z                 : ARR( 0.488E-13, -1250., 0.0);
+{  5598} G2H500f +PERO9              =  0.800G1H500j + 0.200GHN501z                                : ARR( 0.100E-10,     0., 0.0);
+{  5599} G1H500x                     =       GHK5002 +      GHO                                    : ARR( 0.800E+11,  1678., 0.0);
+{  5600} GHN500O +GHO                =       G2H500g                                               : ARR( 0.899E-12,     0., 0.0);
+{  5601} GHN500O +GHO                =       G2H500h                                               : ARR( 0.864E-12,     0., 0.0);
+{  5602} GHN500O +GHO                =       GND5009 +      GHO                                    : ARR( 0.984E-11,     0., 0.0);
+{  5603} GHN500O +GHO                =       G2N500O                                               : ARR( 0.191E-11,  -190., 0.0);
+{  5604} GHN500O+HV               =       G1H500y +      GNO2                                   :  0.100E+01*SUN;
+{  5605} GHN500O+HV               =       G3N4000 +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{  5606} GHN500O+HV               =       G2D2000 +      GHK3000 +      GNO2                    :  0.100E+01*SUN;
+{  5607} GHN500O+HV               =       G1N500O +      GHO                                    :  0.100E+01*SUN;
+{  5608} G2H500g +GNO                =       G1H500z +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  5609} G2H500g +GNO                =       GHN502C                                               : ARR( 0.182E-12,  -360., 0.0);
+{  5610} G2H500g +GHO2               =       GHH500d                                               : ARR( 0.242E-12, -1250., 0.0);
+{  5611} G2H500g +GNO3               =       G1H500z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  5612} G2H500g +MEPERO             =  0.340G1H500z + 0.330GHN500Z + 0.330GHN502D                 : ARR( 0.565E-13,  -845., 0.0);
+{  5613} G2H500g +PERO1              =  0.460G1H500z + 0.270GHN500Z + 0.270GHN502D                 : ARR( 0.434E-13,  -900., 0.0);
+{  5614} G2H500g +PERO2              =  0.400G1H500z + 0.300GHN500Z + 0.300GHN502D                 : ARR( 0.162E-13, -1400., 0.0);
+{  5615} G2H500g +PERO3              =  0.460G1H500z + 0.270GHN500Z + 0.270GHN502D                 : ARR( 0.488E-13, -1250., 0.0);
+{  5616} G2H500g +PERO5              =  0.460G1H500z + 0.270GHN500Z + 0.270GHN502D                 : ARR( 0.183E-11,   450., 0.0);
+{  5617} G2H500g +PERO6              =  0.300G1H500z + 0.350GHN500Z + 0.350GHN502D                 : ARR( 0.168E-13, -1300., 0.0);
+{  5618} G2H500g +PERO9              =  0.650G1H500z + 0.350GHN502D                                : ARR( 0.100E-10,     0., 0.0);
+{  5619} G2H500h +GNO                =       G1H5011 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  5620} G2H500h +GNO                =       GHN502E                                               : ARR( 0.182E-12,  -360., 0.0);
+{  5621} G2H500h +GHO2               =       GHH500e                                               : ARR( 0.242E-12, -1250., 0.0);
+{  5622} G2H500h +GNO3               =       G1H5011 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  5623} G2H500h +MEPERO             =  0.340G1H5011 + 0.330GHN502F + 0.330GHN502G                 : ARR( 0.565E-13,  -845., 0.0);
+{  5624} G2H500h +PERO1              =  0.460G1H5011 + 0.270GHN502F + 0.270GHN502G                 : ARR( 0.434E-13,  -900., 0.0);
+{  5625} G2H500h +PERO2              =  0.400G1H5011 + 0.300GHN502F + 0.300GHN502G                 : ARR( 0.162E-13, -1400., 0.0);
+{  5626} G2H500h +PERO3              =  0.460G1H5011 + 0.270GHN502F + 0.270GHN502G                 : ARR( 0.488E-13, -1250., 0.0);
+{  5627} G2H500h +PERO5              =  0.460G1H5011 + 0.270GHN502F + 0.270GHN502G                 : ARR( 0.183E-11,   450., 0.0);
+{  5628} G2H500h +PERO6              =  0.300G1H5011 + 0.350GHN502F + 0.350GHN502G                 : ARR( 0.168E-13, -1300., 0.0);
+{  5629} G2H500h +PERO9              =  0.650G1H5011 + 0.350GHN502G                                : ARR( 0.100E-10,     0., 0.0);
+{  5630} G1H500y +OXYGEN             =       GHD500A +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{  5631} G1H500z                     =       GND500A +      GHO                                    : ARR( 0.160E+12,  4168., 0.0);
+{  5632} G1H500z                     =       GND2000 +      G2H3002                                : ARR( 0.200E+15,  7286., 0.0);
+{  5633} G1H5011                     =       GND3000 +      G3H2000                                : ARR( 0.200E+15,  2755., 0.0);
+{  5634} GND4001 +GHO                =       G3N4000                                               : ARR( 0.226E-10,     0., 0.0);
+{  5635} GND4001 +GNO3               =       G3N4000 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{  5636} GND4001+HV               =       G1D4003 +      GNO2                                   :  0.100E+01*SUN;
+{  5637} GND4001+HV               =       G2N3000 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{  5638} GND4001+HV               =       G2D2000 +      GD02000 +      GNO2                    :  0.100E+01*SUN;
+{  5639} G1D4003 +OXYGEN             =       GDD4000 +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{  5640} G1D4003                     =       G3K4002                                               : ARR( 0.800E+11,  4559., 0.0);
+{  5641} GHN500P +GHO                =       GHN502B +      GHO2                                   : ARR( 0.420E-11,     0., 0.0);
+{  5642} GHN500P +GHO                =       G2H500i                                               : ARR( 0.148E-11,     0., 0.0);
+{  5643} GHN500P +GHO                =       GND5008 +      GHO                                    : ARR( 0.336E-11,     0., 0.0);
+{  5644} GHN500P +GHO                =       G2N501i                                               : ARR( 0.198E-11,  -190., 0.0);
+{  5645} GHN500P+HV               =       G1H5006 +      GNO2                                   :  0.100E+01*SUN;
+{  5646} GHN500P+HV               =       G1N500l +      GHO                                    :  0.100E+01*SUN;
+{  5647} G2H500i +GNO                =       G1H5012 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  5648} G2H500i +GNO                =       GHN502H                                               : ARR( 0.182E-12,  -360., 0.0);
+{  5649} G2H500i +GHO2               =       GHH500f                                               : ARR( 0.242E-12, -1250., 0.0);
+{  5650} G2H500i +GNO3               =       G1H5012 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  5651} G2H500i +MEPERO             =  0.340G1H5012 + 0.330GHN501B + 0.330GHN502I                 : ARR( 0.565E-13,  -845., 0.0);
+{  5652} G2H500i +PERO1              =  0.460G1H5012 + 0.270GHN501B + 0.270GHN502I                 : ARR( 0.434E-13,  -900., 0.0);
+{  5653} G2H500i +PERO2              =  0.400G1H5012 + 0.300GHN501B + 0.300GHN502I                 : ARR( 0.162E-13, -1400., 0.0);
+{  5654} G2H500i +PERO3              =  0.460G1H5012 + 0.270GHN501B + 0.270GHN502I                 : ARR( 0.488E-13, -1250., 0.0);
+{  5655} G2H500i +PERO5              =  0.460G1H5012 + 0.270GHN501B + 0.270GHN502I                 : ARR( 0.183E-11,   450., 0.0);
+{  5656} G2H500i +PERO6              =  0.300G1H5012 + 0.350GHN501B + 0.350GHN502I                 : ARR( 0.168E-13, -1300., 0.0);
+{  5657} G2H500i +PERO9              =  0.650G1H5012 + 0.350GHN502I                                : ARR( 0.100E-10,     0., 0.0);
+{  5658} G2N501i +GNO                =       G1N500l +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  5659} G2N501i +GNO                =       GNN5004                                               : ARR( 0.182E-12,  -360., 0.0);
+{  5660} G2N501i +GHO2               =       GHN500P                                               : ARR( 0.242E-12, -1250., 0.0);
+{  5661} G2N501i +GNO3               =       G1N500l +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  5662} G2N501i +MEPERO             =  0.480G1N500l + 0.260GNO500J + 0.260GND5008                 : ARR( 0.164E-12,  -795., 0.0);
+{  5663} G2N501i +PERO1              =  0.600G1N500l + 0.200GNO500J + 0.200GND5008                 : ARR( 0.126E-12,  -850., 0.0);
+{  5664} G2N501i +PERO2              =  0.560G1N500l + 0.220GNO500J + 0.220GND5008                 : ARR( 0.471E-13, -1350., 0.0);
+{  5665} G2N501i +PERO3              =  0.600G1N500l + 0.200GNO500J + 0.200GND5008                 : ARR( 0.142E-12, -1200., 0.0);
+{  5666} G2N501i +PERO5              =  0.600G1N500l + 0.200GNO500J + 0.200GND5008                 : ARR( 0.533E-11,   500., 0.0);
+{  5667} G2N501i +PERO6              =  0.460G1N500l + 0.270GNO500J + 0.270GND5008                 : ARR( 0.488E-13, -1250., 0.0);
+{  5668} G2N501i +PERO9              =  0.800G1N500l + 0.200GND5008                                : ARR( 0.100E-10,     0., 0.0);
+{  5669} G1H5012                     =       GND500B +      GHO                                    : ARR( 0.160E+12,  2905., 0.0);
+{  5670} G1H5012                     =       GCH2O   +      GHN400G +      GHO2                    : ARR( 0.200E+15,  5041., 0.0);
+{  5671} GHH5005 +GHO                =       GHH500g +      GHO2                                   : ARR( 0.420E-11,     0., 0.0);
+{  5672} GHH5005 +GHO                =       GHK5002 +      GHO                                    : ARR( 0.430E-10,     0., 0.0);
+{  5673} GHH5005 +GHO                =       GHD5004 +      GHO                                    : ARR( 0.168E-10,     0., 0.0);
+{  5674} GHH5005 +GHO                =       G2H5005                                               : ARR( 0.198E-11,  -190., 0.0);
+{  5675} GHH5005 +GHO                =       G2H500j                                               : ARR( 0.198E-11,  -190., 0.0);
+{  5676} GHH5005+HV               =       G1H5006 +      GHO                                    :  0.100E+01*SUN;
+{  5677} GHH5005+HV               =       G1H500E +      GHO                                    :  0.100E+01*SUN;
+{  5678} G2H500j +GNO                =       G1H500E +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  5679} G2H500j +GNO                =       GHN5004                                               : ARR( 0.182E-12,  -360., 0.0);
+{  5680} G2H500j +GHO2               =       GHH5005                                               : ARR( 0.242E-12, -1250., 0.0);
+{  5681} G2H500j +GNO3               =       G1H500E +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  5682} G2H500j +MEPERO             =  0.480G1H500E + 0.260GHO500F + 0.260GHD5004                 : ARR( 0.164E-12,  -795., 0.0);
+{  5683} G2H500j +PERO1              =  0.600G1H500E + 0.200GHO500F + 0.200GHD5004                 : ARR( 0.126E-12,  -850., 0.0);
+{  5684} G2H500j +PERO2              =  0.560G1H500E + 0.220GHO500F + 0.220GHD5004                 : ARR( 0.471E-13, -1350., 0.0);
+{  5685} G2H500j +PERO3              =  0.600G1H500E + 0.200GHO500F + 0.200GHD5004                 : ARR( 0.142E-12, -1200., 0.0);
+{  5686} G2H500j +PERO5              =  0.600G1H500E + 0.200GHO500F + 0.200GHD5004                 : ARR( 0.533E-11,   500., 0.0);
+{  5687} G2H500j +PERO6              =  0.460G1H500E + 0.270GHO500F + 0.270GHD5004                 : ARR( 0.488E-13, -1250., 0.0);
+{  5688} G2H500j +PERO9              =  0.800G1H500E + 0.200GHD5004                                : ARR( 0.100E-10,     0., 0.0);
+{  5689} GNN500H +GHO                =       GNN501H +      GHO2                                   : ARR( 0.827E-12,     0., 0.0);
+{  5690} GNN500H +GHO                =       GNK500D +      GNO2                                   : ARR( 0.121E-12,     0., 0.0);
+{  5691} GNN500H +GHO                =       G2N501j                                               : ARR( 0.291E-12,     0., 0.0);
+{  5692} GNN500H +GHO                =       G2N501Z                                               : ARR( 0.291E-12,     0., 0.0);
+{  5693} GNN500H +GHO                =       G1N501a                                               : ARR( 0.216E-17,    85., 2.0);
+{  5694} GNN500H+HV               =       G1N500I +      GNO2                                   :  0.100E+01*SUN;
+{  5695} GNN500H+HV               =       G1N500z +      GNO2                                   :  0.100E+01*SUN;
+{  5696} G2N501j +GNO                =       G1N501m +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  5697} G2N501j +GNO                =       GNN501N                                               : ARR( 0.182E-12,  -360., 0.0);
+{  5698} G2N501j +GHO2               =       GHN502J                                               : ARR( 0.242E-12, -1250., 0.0);
+{  5699} G2N501j +GNO3               =       G1N501m +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  5700} G2N501j +MEPERO             =  0.340G1N501m + 0.330GNN501O + 0.330GNN501P                 : ARR( 0.565E-13,  -845., 0.0);
+{  5701} G2N501j +PERO1              =  0.460G1N501m + 0.270GNN501O + 0.270GNN501P                 : ARR( 0.434E-13,  -900., 0.0);
+{  5702} G2N501j +PERO2              =  0.400G1N501m + 0.300GNN501O + 0.300GNN501P                 : ARR( 0.162E-13, -1400., 0.0);
+{  5703} G2N501j +PERO3              =  0.460G1N501m + 0.270GNN501O + 0.270GNN501P                 : ARR( 0.488E-13, -1250., 0.0);
+{  5704} G2N501j +PERO5              =  0.460G1N501m + 0.270GNN501O + 0.270GNN501P                 : ARR( 0.183E-11,   450., 0.0);
+{  5705} G2N501j +PERO6              =  0.300G1N501m + 0.350GNN501O + 0.350GNN501P                 : ARR( 0.168E-13, -1300., 0.0);
+{  5706} G2N501j +PERO9              =  0.650G1N501m + 0.350GNN501P                                : ARR( 0.100E-10,     0., 0.0);
+{  5707} G1N501m                     =       GDO2000 +      GND3000 +      GNO2                    : ARR( 0.200E+15,  6068., 0.0);
+{  5708} G1N501m                     =       GND3004 +      G2N2000                                : ARR( 0.200E+15,  7074., 0.0);
+{  5709} GHN500Q +GHO                =       GHN501z +      GHO2                                   : ARR( 0.418E-11,     0., 0.0);
+{  5710} GHN500Q +GHO                =       GNK500D +      GHO                                    : ARR( 0.428E-10,     0., 0.0);
+{  5711} GHN500Q +GHO                =       G2N500I                                               : ARR( 0.197E-11,  -190., 0.0);
+{  5712} GHN500Q+HV               =       G1N500I +      GHO                                    :  0.100E+01*SUN;
+{  5713} GHN500Q+HV               =       G1H5013 +      GNO2                                   :  0.100E+01*SUN;
+{  5714} G1H5013                     =       GKO5003 +      GHO                                    : ARR( 0.800E+11,  1678., 0.0);
+{  5715} GNK500D +GHO                =       GND5009 +      GHO2                                   : ARR( 0.256E-11,     0., 0.0);
+{  5716} GNK500D +GHO                =       G2N501k                                               : ARR( 0.900E-12,     0., 0.0);
+{  5717} GNK500D +GHO                =       G2N501l                                               : ARR( 0.936E-12,     0., 0.0);
+{  5718} GNK500D+HV               =       G3K2001 +      G2N3000                                :  0.100E+01*SUN;
+{  5719} GNK500D+HV               =       GKO3000 +      G2D2000 +      GNO2                    :  0.100E+01*SUN;
+{  5720} GNK500D+HV               =       G1K500S +      GNO2                                   :  0.100E+01*SUN;
+{  5721} G2N501k +GNO                =       G1N501n +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  5722} G2N501k +GNO                =       GNN501Q                                               : ARR( 0.182E-12,  -360., 0.0);
+{  5723} G2N501k +GHO2               =       GHN502K                                               : ARR( 0.242E-12, -1250., 0.0);
+{  5724} G2N501k +GNO3               =       G1N501n +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  5725} G2N501k +MEPERO             =  0.340G1N501n + 0.330GNK500m + 0.330GNK500n                 : ARR( 0.565E-13,  -845., 0.0);
+{  5726} G2N501k +PERO1              =  0.460G1N501n + 0.270GNK500m + 0.270GNK500n                 : ARR( 0.434E-13,  -900., 0.0);
+{  5727} G2N501k +PERO2              =  0.400G1N501n + 0.300GNK500m + 0.300GNK500n                 : ARR( 0.162E-13, -1400., 0.0);
+{  5728} G2N501k +PERO3              =  0.460G1N501n + 0.270GNK500m + 0.270GNK500n                 : ARR( 0.488E-13, -1250., 0.0);
+{  5729} G2N501k +PERO5              =  0.460G1N501n + 0.270GNK500m + 0.270GNK500n                 : ARR( 0.183E-11,   450., 0.0);
+{  5730} G2N501k +PERO6              =  0.300G1N501n + 0.350GNK500m + 0.350GNK500n                 : ARR( 0.168E-13, -1300., 0.0);
+{  5731} G2N501k +PERO9              =  0.650G1N501n + 0.350GNK500n                                : ARR( 0.100E-10,     0., 0.0);
+{  5732} G2N501l +GNO                =       G1N501o +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  5733} G2N501l +GNO                =       GNN500l                                               : ARR( 0.182E-12,  -360., 0.0);
+{  5734} G2N501l +GHO2               =       GHN500x                                               : ARR( 0.242E-12, -1250., 0.0);
+{  5735} G2N501l +GNO3               =       G1N501o +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  5736} G2N501l +MEPERO             =  0.340G1N501o + 0.330GNK500J + 0.330GNK500Q                 : ARR( 0.565E-13,  -845., 0.0);
+{  5737} G2N501l +PERO1              =  0.460G1N501o + 0.270GNK500J + 0.270GNK500Q                 : ARR( 0.434E-13,  -900., 0.0);
+{  5738} G2N501l +PERO2              =  0.400G1N501o + 0.300GNK500J + 0.300GNK500Q                 : ARR( 0.162E-13, -1400., 0.0);
+{  5739} G2N501l +PERO3              =  0.460G1N501o + 0.270GNK500J + 0.270GNK500Q                 : ARR( 0.488E-13, -1250., 0.0);
+{  5740} G2N501l +PERO5              =  0.460G1N501o + 0.270GNK500J + 0.270GNK500Q                 : ARR( 0.183E-11,   450., 0.0);
+{  5741} G2N501l +PERO6              =  0.300G1N501o + 0.350GNK500J + 0.350GNK500Q                 : ARR( 0.168E-13, -1300., 0.0);
+{  5742} G2N501l +PERO9              =  0.650G1N501o + 0.350GNK500Q                                : ARR( 0.100E-10,     0., 0.0);
+{  5743} G1K500S +OXYGEN             =       GDK5007 +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{  5744} G1N501n                     =       G3K2001 +      GND3000                                : ARR( 0.200E+15,  2755., 0.0);
+{  5745} G1N501o                     =       GND500A +      GHO2                                   : ARR( 0.160E+12,  4515., 0.0);
+{  5746} G1N501o                     =       G2K3001 +      GND2000                                : ARR( 0.200E+15,  7286., 0.0);
+{  5747} GNN500I +GHO                =       GNN500J +      GHO2                                   : ARR( 0.436E-11,     0., 0.0);
+{  5748} GNN500I +GHO                =       G2N501m                                               : ARR( 0.306E-12,     0., 0.0);
+{  5749} GNN500I+HV               =       G1N500J +      GNO2                                   :  0.100E+01*SUN;
+{  5750} GNN500I+HV               =       G1N501p +      GNO2                                   :  0.100E+01*SUN;
+{  5751} G2N501m +GNO                =       G1N501q +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  5752} G2N501m +GNO                =       GNN501N                                               : ARR( 0.182E-12,  -360., 0.0);
+{  5753} G2N501m +GHO2               =       GHN502L                                               : ARR( 0.242E-12, -1250., 0.0);
+{  5754} G2N501m +GNO3               =       G1N501q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  5755} G2N501m +MEPERO             =  0.340G1N501q + 0.330GNN500r + 0.330GNN501Q                 : ARR( 0.565E-13,  -845., 0.0);
+{  5756} G2N501m +PERO1              =  0.460G1N501q + 0.270GNN500r + 0.270GNN501Q                 : ARR( 0.434E-13,  -900., 0.0);
+{  5757} G2N501m +PERO2              =  0.400G1N501q + 0.300GNN500r + 0.300GNN501Q                 : ARR( 0.162E-13, -1400., 0.0);
+{  5758} G2N501m +PERO3              =  0.460G1N501q + 0.270GNN500r + 0.270GNN501Q                 : ARR( 0.488E-13, -1250., 0.0);
+{  5759} G2N501m +PERO5              =  0.460G1N501q + 0.270GNN500r + 0.270GNN501Q                 : ARR( 0.183E-11,   450., 0.0);
+{  5760} G2N501m +PERO6              =  0.300G1N501q + 0.350GNN500r + 0.350GNN501Q                 : ARR( 0.168E-13, -1300., 0.0);
+{  5761} G2N501m +PERO9              =  0.650G1N501q + 0.350GNN501Q                                : ARR( 0.100E-10,     0., 0.0);
+{  5762} G1N501p +OXYGEN             =       GND500W +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{  5763} G1N501p                     =       G2N501n                                               : ARR( 0.160E+12,  3719., 0.0);
+{  5764} G1N501q                     =       GCH2O   +      GNN4008 +      GHO2                    : ARR( 0.200E+15,  5296., 0.0);
+{  5765} G2N501n +GNO                =       G1N501r +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  5766} G2N501n +GNO                =       GNN501R                                               : ARR( 0.182E-12,  -360., 0.0);
+{  5767} G2N501n +GHO2               =       GHN502M                                               : ARR( 0.242E-12, -1250., 0.0);
+{  5768} G2N501n +GNO3               =       G1N501r +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  5769} G2N501n +MEPERO             =  0.340G1N501r + 0.330GNO500P + 0.330GNK500U                 : ARR( 0.565E-13,  -845., 0.0);
+{  5770} G2N501n +PERO1              =  0.460G1N501r + 0.270GNO500P + 0.270GNK500U                 : ARR( 0.434E-13,  -900., 0.0);
+{  5771} G2N501n +PERO2              =  0.400G1N501r + 0.300GNO500P + 0.300GNK500U                 : ARR( 0.162E-13, -1400., 0.0);
+{  5772} G2N501n +PERO3              =  0.460G1N501r + 0.270GNO500P + 0.270GNK500U                 : ARR( 0.488E-13, -1250., 0.0);
+{  5773} G2N501n +PERO5              =  0.460G1N501r + 0.270GNO500P + 0.270GNK500U                 : ARR( 0.183E-11,   450., 0.0);
+{  5774} G2N501n +PERO6              =  0.300G1N501r + 0.350GNO500P + 0.350GNK500U                 : ARR( 0.168E-13, -1300., 0.0);
+{  5775} G2N501n +PERO9              =  0.650G1N501r + 0.350GNK500U                                : ARR( 0.100E-10,     0., 0.0);
+{  5776} G1N501r                     =       GND500I +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{  5777} G1N501r                     =       GND4006 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  5296., 0.0);
+{  5778} GHN500R +GHO                =       GHN500S +      GHO2                                   : ARR( 0.418E-11,     0., 0.0);
+{  5779} GHN500R +GHO                =       GNK500E +      GHO                                    : ARR( 0.428E-10,     0., 0.0);
+{  5780} GHN500R +GHO                =       G2N500J                                               : ARR( 0.197E-11,  -190., 0.0);
+{  5781} GHN500R+HV               =       G1N500J +      GHO                                    :  0.100E+01*SUN;
+{  5782} GHN500R+HV               =       G1H5014 +      GNO2                                   :  0.100E+01*SUN;
+{  5783} G1H5014                     =       G2H500k                                               : ARR( 0.160E+12,  3000., 0.0);
+{  5784} G2H500k +GNO                =       G1H5015 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  5785} G2H500k +GNO                =       GHN502N                                               : ARR( 0.182E-12,  -360., 0.0);
+{  5786} G2H500k +GHO2               =       GHH500h                                               : ARR( 0.242E-12, -1250., 0.0);
+{  5787} G2H500k +GNO3               =       G1H5015 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  5788} G2H500k +MEPERO             =  0.340G1H5015 + 0.330GHO500L + 0.330GHK500J                 : ARR( 0.565E-13,  -845., 0.0);
+{  5789} G2H500k +PERO1              =  0.460G1H5015 + 0.270GHO500L + 0.270GHK500J                 : ARR( 0.434E-13,  -900., 0.0);
+{  5790} G2H500k +PERO2              =  0.400G1H5015 + 0.300GHO500L + 0.300GHK500J                 : ARR( 0.162E-13, -1400., 0.0);
+{  5791} G2H500k +PERO3              =  0.460G1H5015 + 0.270GHO500L + 0.270GHK500J                 : ARR( 0.488E-13, -1250., 0.0);
+{  5792} G2H500k +PERO5              =  0.460G1H5015 + 0.270GHO500L + 0.270GHK500J                 : ARR( 0.183E-11,   450., 0.0);
+{  5793} G2H500k +PERO6              =  0.300G1H5015 + 0.350GHO500L + 0.350GHK500J                 : ARR( 0.168E-13, -1300., 0.0);
+{  5794} G2H500k +PERO9              =  0.650G1H5015 + 0.350GHK500J                                : ARR( 0.100E-10,     0., 0.0);
+{  5795} G1H5015                     =       GHD500D +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{  5796} G1H5015                     =       GDO3000 +      GDO2000 +      GHO                     : ARR( 0.200E+15,  5200., 0.0);
+{  5797} G1H5015                     =       GHD4006 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  5296., 0.0);
+{  5798} GNO500I +GHO                =       GND5006 +      GHO2                                   : ARR( 0.418E-11,     0., 0.0);
+{  5799} GNO500I +GHO                =       G2N501o                                               : ARR( 0.147E-11,     0., 0.0);
+{  5800} GNO500I +GHO                =       GNK500E +      GHO2                                   : ARR( 0.107E-10,     0., 0.0);
+{  5801} GNO500I+HV               =       G1O500S +      GNO2                                   :  0.100E+01*SUN;
+{  5802} G2N501o +GNO                =       G1N501s +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  5803} G2N501o +GNO                =       GNN501O                                               : ARR( 0.182E-12,  -360., 0.0);
+{  5804} G2N501o +GHO2               =       GHN502O                                               : ARR( 0.242E-12, -1250., 0.0);
+{  5805} G2N501o +GNO3               =       G1N501s +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  5806} G2N501o +MEPERO             =  0.340G1N501s + 0.330GNO500R + 0.330GNK500m                 : ARR( 0.565E-13,  -845., 0.0);
+{  5807} G2N501o +PERO1              =  0.460G1N501s + 0.270GNO500R + 0.270GNK500m                 : ARR( 0.434E-13,  -900., 0.0);
+{  5808} G2N501o +PERO2              =  0.400G1N501s + 0.300GNO500R + 0.300GNK500m                 : ARR( 0.162E-13, -1400., 0.0);
+{  5809} G2N501o +PERO3              =  0.460G1N501s + 0.270GNO500R + 0.270GNK500m                 : ARR( 0.488E-13, -1250., 0.0);
+{  5810} G2N501o +PERO5              =  0.460G1N501s + 0.270GNO500R + 0.270GNK500m                 : ARR( 0.183E-11,   450., 0.0);
+{  5811} G2N501o +PERO6              =  0.300G1N501s + 0.350GNO500R + 0.350GNK500m                 : ARR( 0.168E-13, -1300., 0.0);
+{  5812} G2N501o +PERO9              =  0.650G1N501s + 0.350GNK500m                                : ARR( 0.100E-10,     0., 0.0);
+{  5813} G1O500S                     =       G2O500Q                                               : ARR( 0.160E+12,  3000., 0.0);
+{  5814} G1N501s                     =       GDO2000 +      GND3000 +      GHO2                    : ARR( 0.200E+15,  3991., 0.0);
+{  5815} G2O500Q +GNO                =       G1O500T +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  5816} G2O500Q +GNO                =       GNO500Z                                               : ARR( 0.182E-12,  -360., 0.0);
+{  5817} G2O500Q +GHO2               =       GHO500R                                               : ARR( 0.242E-12, -1250., 0.0);
+{  5818} G2O500Q +GNO3               =       G1O500T +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  5819} G2O500Q +MEPERO             =  0.340G1O500T + 0.330GOO500A + 0.330GKO500F                 : ARR( 0.565E-13,  -845., 0.0);
+{  5820} G2O500Q +PERO1              =  0.460G1O500T + 0.270GOO500A + 0.270GKO500F                 : ARR( 0.434E-13,  -900., 0.0);
+{  5821} G2O500Q +PERO2              =  0.400G1O500T + 0.300GOO500A + 0.300GKO500F                 : ARR( 0.162E-13, -1400., 0.0);
+{  5822} G2O500Q +PERO3              =  0.460G1O500T + 0.270GOO500A + 0.270GKO500F                 : ARR( 0.488E-13, -1250., 0.0);
+{  5823} G2O500Q +PERO5              =  0.460G1O500T + 0.270GOO500A + 0.270GKO500F                 : ARR( 0.183E-11,   450., 0.0);
+{  5824} G2O500Q +PERO6              =  0.300G1O500T + 0.350GOO500A + 0.350GKO500F                 : ARR( 0.168E-13, -1300., 0.0);
+{  5825} G2O500Q +PERO9              =  0.650G1O500T + 0.350GKO500F                                : ARR( 0.100E-10,     0., 0.0);
+{  5826} G1O500T                     =       GDO5008 +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{  5827} G1O500T                     =       GDO3000 +      GDO2000 +      GHO2                    : ARR( 0.200E+15,  3991., 0.0);
+{  5828} GNK500E +GHO                =       GND5007 +      GHO2                                   : ARR( 0.132E-10,     0., 0.0);
+{  5829} GNK500E +GHO                =       G2N501p                                               : ARR( 0.891E-12,     0., 0.0);
+{  5830} GNK500E+HV               =       G3K3001 +      G2N2000                                :  0.100E+01*SUN;
+{  5831} GNK500E+HV               =       G1K500T +      GNO2                                   :  0.100E+01*SUN;
+{  5832} G2N501p +GNO                =       G1N501t +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  5833} G2N501p +GNO                =       GNN501P                                               : ARR( 0.182E-12,  -360., 0.0);
+{  5834} G2N501p +GHO2               =       GHN502P                                               : ARR( 0.242E-12, -1250., 0.0);
+{  5835} G2N501p +GNO3               =       G1N501t +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  5836} G2N501p +MEPERO             =  0.340G1N501t + 0.330GNK500X + 0.330GNK500n                 : ARR( 0.565E-13,  -845., 0.0);
+{  5837} G2N501p +PERO1              =  0.460G1N501t + 0.270GNK500X + 0.270GNK500n                 : ARR( 0.434E-13,  -900., 0.0);
+{  5838} G2N501p +PERO2              =  0.400G1N501t + 0.300GNK500X + 0.300GNK500n                 : ARR( 0.162E-13, -1400., 0.0);
+{  5839} G2N501p +PERO3              =  0.460G1N501t + 0.270GNK500X + 0.270GNK500n                 : ARR( 0.488E-13, -1250., 0.0);
+{  5840} G2N501p +PERO5              =  0.460G1N501t + 0.270GNK500X + 0.270GNK500n                 : ARR( 0.183E-11,   450., 0.0);
+{  5841} G2N501p +PERO6              =  0.300G1N501t + 0.350GNK500X + 0.350GNK500n                 : ARR( 0.168E-13, -1300., 0.0);
+{  5842} G2N501p +PERO9              =  0.650G1N501t + 0.350GNK500n                                : ARR( 0.100E-10,     0., 0.0);
+{  5843} G1K500T +OXYGEN             =       GDK500I +      GHO2                                   : ARR( 0.600E-13,   398., 0.0);
+{  5844} G1K500T                     =       G2K500S                                               : ARR( 0.160E+12,  4982., 0.0);
+{  5845} G1N501t                     =       GDO2000 +      G3N3000                                : ARR( 0.200E+15,  3005., 0.0);
+{  5846} G2K500S +GNO                =       G1K500U +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  5847} G2K500S +GNO                =       GNK500o                                               : ARR( 0.182E-12,  -360., 0.0);
+{  5848} G2K500S +GHO2               =       GHK500d                                               : ARR( 0.242E-12, -1250., 0.0);
+{  5849} G2K500S +GNO3               =       G1K500U +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  5850} G2K500S +MEPERO             =  0.340G1K500U + 0.330GKO500E + 0.330GKK5006                 : ARR( 0.565E-13,  -845., 0.0);
+{  5851} G2K500S +PERO1              =  0.460G1K500U + 0.270GKO500E + 0.270GKK5006                 : ARR( 0.434E-13,  -900., 0.0);
+{  5852} G2K500S +PERO2              =  0.400G1K500U + 0.300GKO500E + 0.300GKK5006                 : ARR( 0.162E-13, -1400., 0.0);
+{  5853} G2K500S +PERO3              =  0.460G1K500U + 0.270GKO500E + 0.270GKK5006                 : ARR( 0.488E-13, -1250., 0.0);
+{  5854} G2K500S +PERO5              =  0.460G1K500U + 0.270GKO500E + 0.270GKK5006                 : ARR( 0.183E-11,   450., 0.0);
+{  5855} G2K500S +PERO6              =  0.300G1K500U + 0.350GKO500E + 0.350GKK5006                 : ARR( 0.168E-13, -1300., 0.0);
+{  5856} G2K500S +PERO9              =  0.650G1K500U + 0.350GKK5006                                : ARR( 0.100E-10,     0., 0.0);
+{  5857} G1K500U                     =       G3K3001 +      GDO2000                                : ARR( 0.200E+15,  3005., 0.0);
+{  5858} GNO500J +GHO                =       GND500J +      GHO2                                   : ARR( 0.446E-11,     0., 0.0);
+{  5859} GNO500J +GHO                =       G2N500l                                               : ARR( 0.157E-11,     0., 0.0);
+{  5860} GNO500J +GHO                =       GND5008 +      GHO2                                   : ARR( 0.892E-12,     0., 0.0);
+{  5861} GNO500J+HV               =       G1O500D +      GNO2                                   :  0.100E+01*SUN;
+{  5862} GHO500F +GHO                =       GHD500L +      GHO2                                   : ARR( 0.426E-11,     0., 0.0);
+{  5863} GHO500F +GHO                =       GKO5003 +      GHO                                    : ARR( 0.436E-10,     0., 0.0);
+{  5864} GHO500F +GHO                =       GHD5004 +      GHO2                                   : ARR( 0.426E-11,     0., 0.0);
+{  5865} GHO500F +GHO                =       G2O500C                                               : ARR( 0.201E-11,  -190., 0.0);
+{  5866} GHO500F+HV               =       G1O500D +      GHO                                    :  0.100E+01*SUN;
+{  5867} GNU3000 +GHO                =       G2N3003                                               : ARR( 0.450E-11,     0., 0.0);
+{  5868} GNU3000 +GHO                =       G2N3007                                               : ARR( 0.300E-10,     0., 0.0);
+{  5869} GNU3000 +GO3                =  2.000GND2000 + 0.740GHCOOH  + 0.260GCO2    + 0.260GH2      : ARR( 0.253E-17,     0., 0.0);
+{  5870} GNU3000 +GO3                =       GCO     + 0.760GH2O    + 0.240GHO2    + 0.240GHO      : ARR( 0.253E-17,     0., 0.0);
+{  5871} GNU3000 +GO3                =  3.040GCH2O   + 0.680GAN2000 + 0.280GCO2    + 0.280GN01001  : ARR( 0.253E-17,     0., 0.0);
+{  5872} GNU3000 +GO3                =  1.040GCO     + 1.040GHO     + 1.040GNO2                    : ARR( 0.253E-17,     0., 0.0);
+{  5873} GNU3000 +GNO3               =       G2N3006                                               : ARR( 0.135E-13,     0., 0.0);
+{  5874} GNU3000+HV               =       G1U3000 +      GNO2                                   :  0.100E+01*SUN;
+{  5875} G1U3000 +OXYGEN             =       GUD3000 +      GHO2                                   : ARR( 0.600E-13,   330., 0.0);
+{  5876} GNN500J +GHO                =       G3N5006                                               : ARR( 0.214E-10,     0., 0.0);
+{  5877} GNN500J +GNO3               =       G3N5006 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{  5878} GNN500J+HV               =       G1N501u +      GNO2                                   :  0.100E+01*SUN;
+{  5879} GNN500J+HV               =       G1N500K +      GNO2                                   :  0.100E+01*SUN;
+{  5880} GNN500J+HV               =       G2N400C +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{  5881} GNN500J+HV               =       G2N3009 +      GD02000 +      GNO2                    :  0.100E+01*SUN;
+{  5882} G3N5006 +GHO2               =  0.800GGN5007 + 0.200GAN5007 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  5883} G3N5006 +GNO                =       G2N400C +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{  5884} G3N5006 +GNO2               =       GPN5007                                               : ARR( 0.330E-08,     0.,-1.0);
+{  5885} G3N5006 +GNO3               =       G2N400C +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{  5886} G3N5006 +MEPERO             =  0.685G2N400C + 0.315GAN5007 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  5887} G3N5006 +PERO1              =  0.800G2N400C + 0.200GAN5007 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  5888} G3N5006 +PERO2              =  0.750G2N400C + 0.250GAN5007 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  5889} G3N5006 +PERO3              =  0.800G2N400C + 0.200GAN5007 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  5890} G3N5006 +PERO5              =  0.650G2N400C + 0.350GAN5007 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  5891} G3N5006 +PERO6              =  0.650G2N400C + 0.350GAN5007 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  5892} G3N5006 +PERO9              =       G2N400C +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{  5893} G1N501u +OXYGEN             =       GND500X +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{  5894} G1N501u                     =       G2N501q                                               : ARR( 0.160E+12,  3940., 0.0);
+{  5895} G2N400C +GNO                =       G1N400C +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  5896} G2N400C +GNO                =       GNN400B                                               : ARR( 0.111E-12,  -360., 0.0);
+{  5897} G2N400C +GHO2               =       GHN400H                                               : ARR( 0.214E-12, -1250., 0.0);
+{  5898} G2N400C +GNO3               =       G1N400C +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  5899} G2N400C +MEPERO             =  0.480G1N400C + 0.260GNN4004 + 0.260GNN4008                 : ARR( 0.164E-12,  -795., 0.0);
+{  5900} G2N400C +PERO1              =  0.600G1N400C + 0.200GNN4004 + 0.200GNN4008                 : ARR( 0.126E-12,  -850., 0.0);
+{  5901} G2N400C +PERO2              =  0.560G1N400C + 0.220GNN4004 + 0.220GNN4008                 : ARR( 0.471E-13, -1350., 0.0);
+{  5902} G2N400C +PERO3              =  0.600G1N400C + 0.200GNN4004 + 0.200GNN4008                 : ARR( 0.142E-12, -1200., 0.0);
+{  5903} G2N400C +PERO5              =  0.600G1N400C + 0.200GNN4004 + 0.200GNN4008                 : ARR( 0.533E-11,   500., 0.0);
+{  5904} G2N400C +PERO6              =  0.460G1N400C + 0.270GNN4004 + 0.270GNN4008                 : ARR( 0.488E-13, -1250., 0.0);
+{  5905} G2N400C +PERO9              =  0.800G1N400C + 0.200GNN4008                                : ARR( 0.100E-10,     0., 0.0);
+{  5906} G2N3009 +GNO                =       G1N3009 +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{  5907} G2N3009 +GNO                =       GNN3005                                               : ARR( 0.622E-13,  -360., 0.0);
+{  5908} G2N3009 +GHO2               =       GHN3007                                               : ARR( 0.179E-12, -1250., 0.0);
+{  5909} G2N3009 +GNO3               =       G1N3009 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  5910} G2N3009 +MEPERO             =  0.340G1N3009 + 0.330GND3002 + 0.330GND3003                 : ARR( 0.565E-13,  -845., 0.0);
+{  5911} G2N3009 +PERO1              =  0.460G1N3009 + 0.270GND3002 + 0.270GND3003                 : ARR( 0.434E-13,  -900., 0.0);
+{  5912} G2N3009 +PERO2              =  0.400G1N3009 + 0.300GND3002 + 0.300GND3003                 : ARR( 0.162E-13, -1400., 0.0);
+{  5913} G2N3009 +PERO3              =  0.460G1N3009 + 0.270GND3002 + 0.270GND3003                 : ARR( 0.488E-13, -1250., 0.0);
+{  5914} G2N3009 +PERO5              =  0.460G1N3009 + 0.270GND3002 + 0.270GND3003                 : ARR( 0.183E-11,   450., 0.0);
+{  5915} G2N3009 +PERO6              =  0.300G1N3009 + 0.350GND3002 + 0.350GND3003                 : ARR( 0.168E-13, -1300., 0.0);
+{  5916} G2N3009 +PERO9              =  0.650G1N3009 + 0.350GND3003                                : ARR( 0.100E-10,     0., 0.0);
+{  5917} G2N501q +GNO                =       G1N501v +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  5918} G2N501q +GNO                =       GNN501S                                               : ARR( 0.182E-12,  -360., 0.0);
+{  5919} G2N501q +GHO2               =       GHN502Q                                               : ARR( 0.242E-12, -1250., 0.0);
+{  5920} G2N501q +GNO3               =       G1N501v +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  5921} G2N501q +MEPERO             =  0.340G1N501v + 0.330GND500Y + 0.330GND500Z                 : ARR( 0.565E-13,  -845., 0.0);
+{  5922} G2N501q +PERO1              =  0.460G1N501v + 0.270GND500Y + 0.270GND500Z                 : ARR( 0.434E-13,  -900., 0.0);
+{  5923} G2N501q +PERO2              =  0.400G1N501v + 0.300GND500Y + 0.300GND500Z                 : ARR( 0.162E-13, -1400., 0.0);
+{  5924} G2N501q +PERO3              =  0.460G1N501v + 0.270GND500Y + 0.270GND500Z                 : ARR( 0.488E-13, -1250., 0.0);
+{  5925} G2N501q +PERO5              =  0.460G1N501v + 0.270GND500Y + 0.270GND500Z                 : ARR( 0.183E-11,   450., 0.0);
+{  5926} G2N501q +PERO6              =  0.300G1N501v + 0.350GND500Y + 0.350GND500Z                 : ARR( 0.168E-13, -1300., 0.0);
+{  5927} G2N501q +PERO9              =  0.650G1N501v + 0.350GND500Z                                : ARR( 0.100E-10,     0., 0.0);
+{  5928} G1N400C +OXYGEN             =       GNN4008 +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{  5929} G1N400C                     =       GND4002 +      GNO2                                   : ARR( 0.160E+12,  4531., 0.0);
+{  5930} G1N400C                     =       GND3000 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7547., 0.0);
+{  5931} G1N3009                     =       GND2000 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5749., 0.0);
+{  5932} G1N501v                     =       GND500a +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{  5933} G1N501v                     =       GND4006 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{  5934} GHN500S +GHO                =       GND5007 +      GHO                                    : ARR( 0.135E-09,     0., 0.0);
+{  5935} GHN500S +GHO                =       G3H5004                                               : ARR( 0.214E-10,     0., 0.0);
+{  5936} GHN500S +GNO3               =       G3H5004 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{  5937} GHN500S+HV               =       G1H5016 +      GNO2                                   :  0.100E+01*SUN;
+{  5938} GHN500S+HV               =       G1N500K +      GHO                                    :  0.100E+01*SUN;
+{  5939} GHN500S+HV               =       G2H400B +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{  5940} GHN500S+HV               =       G2N3009 +      GD02000 +      GHO                     :  0.100E+01*SUN;
+{  5941} G3H5004 +GHO2               =  0.800GGH5006 + 0.200GAH5006 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  5942} G3H5004 +GNO                =       G2H400B +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{  5943} G3H5004 +GNO2               =       GPH5006                                               : ARR( 0.330E-08,     0.,-1.0);
+{  5944} G3H5004 +GNO3               =       G2H400B +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{  5945} G3H5004 +MEPERO             =  0.685G2H400B + 0.315GAH5006 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  5946} G3H5004 +PERO1              =  0.800G2H400B + 0.200GAH5006 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  5947} G3H5004 +PERO2              =  0.750G2H400B + 0.250GAH5006 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  5948} G3H5004 +PERO3              =  0.800G2H400B + 0.200GAH5006 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  5949} G3H5004 +PERO5              =  0.650G2H400B + 0.350GAH5006 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  5950} G3H5004 +PERO6              =  0.650G2H400B + 0.350GAH5006 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  5951} G3H5004 +PERO9              =       G2H400B +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{  5952} G1H5016                     =       G2H500l                                               : ARR( 0.160E+12,  3221., 0.0);
+{  5953} G2H400B +GNO                =       G1H400B +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  5954} G2H400B +GNO                =       GHN400I                                               : ARR( 0.111E-12,  -360., 0.0);
+{  5955} G2H400B +GHO2               =       GHH4007                                               : ARR( 0.214E-12, -1250., 0.0);
+{  5956} G2H400B +GNO3               =       G1H400B +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  5957} G2H400B +MEPERO             =  0.480G1H400B + 0.260GHN4007 + 0.260GHN400J                 : ARR( 0.164E-12,  -795., 0.0);
+{  5958} G2H400B +PERO1              =  0.600G1H400B + 0.200GHN4007 + 0.200GHN400J                 : ARR( 0.126E-12,  -850., 0.0);
+{  5959} G2H400B +PERO2              =  0.560G1H400B + 0.220GHN4007 + 0.220GHN400J                 : ARR( 0.471E-13, -1350., 0.0);
+{  5960} G2H400B +PERO3              =  0.600G1H400B + 0.200GHN4007 + 0.200GHN400J                 : ARR( 0.142E-12, -1200., 0.0);
+{  5961} G2H400B +PERO5              =  0.600G1H400B + 0.200GHN4007 + 0.200GHN400J                 : ARR( 0.533E-11,   500., 0.0);
+{  5962} G2H400B +PERO6              =  0.460G1H400B + 0.270GHN4007 + 0.270GHN400J                 : ARR( 0.488E-13, -1250., 0.0);
+{  5963} G2H400B +PERO9              =  0.800G1H400B + 0.200GHN400J                                : ARR( 0.100E-10,     0., 0.0);
+{  5964} G2H500l +GNO                =       G1H5017 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  5965} G2H500l +GNO                =       GHN502R                                               : ARR( 0.182E-12,  -360., 0.0);
+{  5966} G2H500l +GHO2               =       GHH500i                                               : ARR( 0.242E-12, -1250., 0.0);
+{  5967} G2H500l +GNO3               =       G1H5017 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  5968} G2H500l +MEPERO             =  0.340G1H5017 + 0.330GHD500M + 0.330GHD500N                 : ARR( 0.565E-13,  -845., 0.0);
+{  5969} G2H500l +PERO1              =  0.460G1H5017 + 0.270GHD500M + 0.270GHD500N                 : ARR( 0.434E-13,  -900., 0.0);
+{  5970} G2H500l +PERO2              =  0.400G1H5017 + 0.300GHD500M + 0.300GHD500N                 : ARR( 0.162E-13, -1400., 0.0);
+{  5971} G2H500l +PERO3              =  0.460G1H5017 + 0.270GHD500M + 0.270GHD500N                 : ARR( 0.488E-13, -1250., 0.0);
+{  5972} G2H500l +PERO5              =  0.460G1H5017 + 0.270GHD500M + 0.270GHD500N                 : ARR( 0.183E-11,   450., 0.0);
+{  5973} G2H500l +PERO6              =  0.300G1H5017 + 0.350GHD500M + 0.350GHD500N                 : ARR( 0.168E-13, -1300., 0.0);
+{  5974} G2H500l +PERO9              =  0.650G1H5017 + 0.350GHD500N                                : ARR( 0.100E-10,     0., 0.0);
+{  5975} G1H400B +OXYGEN             =       GHN400J +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{  5976} G1H400B                     =       GHD4000 +      GNO2                                   : ARR( 0.160E+12,  4531., 0.0);
+{  5977} G1H400B                     =       GND3000 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  6008., 0.0);
+{  5978} G1H5017                     =       GHD500O +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{  5979} G1H5017                     =       GHD4006 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{  5980} GND5006 +GHO                =       GND5007 +      GHO2                                   : ARR( 0.335E-10,     0., 0.0);
+{  5981} GND5006 +GHO                =       G3N5007                                               : ARR( 0.213E-10,     0., 0.0);
+{  5982} GND5006 +GNO3               =       G3N5007 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{  5983} GND5006+HV               =       G1D500E +      GNO2                                   :  0.100E+01*SUN;
+{  5984} GND5006+HV               =       G2N400D +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{  5985} GND5006+HV               =       GND3000 +      GD02000                                :  0.100E+01*SUN;
+{  5986} G3N5007 +GHO2               =  0.800GGN5008 + 0.200GAN5008 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  5987} G3N5007 +GNO                =       G2N400D +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{  5988} G3N5007 +GNO2               =       GPN5008                                               : ARR( 0.330E-08,     0.,-1.0);
+{  5989} G3N5007 +GNO3               =       G2N400D +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{  5990} G3N5007 +MEPERO             =  0.685G2N400D + 0.315GAN5008 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  5991} G3N5007 +PERO1              =  0.800G2N400D + 0.200GAN5008 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  5992} G3N5007 +PERO2              =  0.750G2N400D + 0.250GAN5008 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  5993} G3N5007 +PERO3              =  0.800G2N400D + 0.200GAN5008 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  5994} G3N5007 +PERO5              =  0.650G2N400D + 0.350GAN5008 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  5995} G3N5007 +PERO6              =  0.650G2N400D + 0.350GAN5008 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  5996} G3N5007 +PERO9              =       G2N400D +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{  5997} G1D500E                     =       G2D500C                                               : ARR( 0.160E+12,  3221., 0.0);
+{  5998} G2N400D +GNO                =       G1N400D +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  5999} G2N400D +GNO                =       GNN4002                                               : ARR( 0.111E-12,  -360., 0.0);
+{  6000} G2N400D +GHO2               =       GHN4003                                               : ARR( 0.214E-12, -1250., 0.0);
+{  6001} G2N400D +GNO3               =       G1N400D +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  6002} G2N400D +MEPERO             =  0.480G1N400D + 0.260GNO4003 + 0.260GND400C                 : ARR( 0.164E-12,  -795., 0.0);
+{  6003} G2N400D +PERO1              =  0.600G1N400D + 0.200GNO4003 + 0.200GND400C                 : ARR( 0.126E-12,  -850., 0.0);
+{  6004} G2N400D +PERO2              =  0.560G1N400D + 0.220GNO4003 + 0.220GND400C                 : ARR( 0.471E-13, -1350., 0.0);
+{  6005} G2N400D +PERO3              =  0.600G1N400D + 0.200GNO4003 + 0.200GND400C                 : ARR( 0.142E-12, -1200., 0.0);
+{  6006} G2N400D +PERO5              =  0.600G1N400D + 0.200GNO4003 + 0.200GND400C                 : ARR( 0.533E-11,   500., 0.0);
+{  6007} G2N400D +PERO6              =  0.460G1N400D + 0.270GNO4003 + 0.270GND400C                 : ARR( 0.488E-13, -1250., 0.0);
+{  6008} G2N400D +PERO9              =  0.800G1N400D + 0.200GND400C                                : ARR( 0.100E-10,     0., 0.0);
+{  6009} G2D500C +GNO                =       G1D500F +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  6010} G2D500C +GNO                =       GND500b                                               : ARR( 0.182E-12,  -360., 0.0);
+{  6011} G2D500C +GHO2               =       GHD500P                                               : ARR( 0.242E-12, -1250., 0.0);
+{  6012} G2D500C +GNO3               =       G1D500F +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  6013} G2D500C +MEPERO             =  0.340G1D500F + 0.330GDO500B + 0.330GDK500J                 : ARR( 0.565E-13,  -845., 0.0);
+{  6014} G2D500C +PERO1              =  0.460G1D500F + 0.270GDO500B + 0.270GDK500J                 : ARR( 0.434E-13,  -900., 0.0);
+{  6015} G2D500C +PERO2              =  0.400G1D500F + 0.300GDO500B + 0.300GDK500J                 : ARR( 0.162E-13, -1400., 0.0);
+{  6016} G2D500C +PERO3              =  0.460G1D500F + 0.270GDO500B + 0.270GDK500J                 : ARR( 0.488E-13, -1250., 0.0);
+{  6017} G2D500C +PERO5              =  0.460G1D500F + 0.270GDO500B + 0.270GDK500J                 : ARR( 0.183E-11,   450., 0.0);
+{  6018} G2D500C +PERO6              =  0.300G1D500F + 0.350GDO500B + 0.350GDK500J                 : ARR( 0.168E-13, -1300., 0.0);
+{  6019} G2D500C +PERO9              =  0.650G1D500F + 0.350GDK500J                                : ARR( 0.100E-10,     0., 0.0);
+{  6020} G1N400D                     =       GND3000 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4799., 0.0);
+{  6021} G1D500F                     =       GDD5002 +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{  6022} G1D500F                     =       GDO3000 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  5404., 0.0);
+{  6023} G1D500F                     =       GDO4003 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{  6024} GND5007 +GHO                =       G3N5008                                               : ARR( 0.667E-10,     0., 0.0);
+{  6025} GND5007 +GNO3               =       G3N5008 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{  6026} GND5007+HV               =       G1D500G +      GNO2                                   :  0.100E+01*SUN;
+{  6027} GND5007+HV               =       G3N3000 +      G2D2000                                :  0.100E+01*SUN;
+{  6028} GND5007+HV               =       G2N400E +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{  6029} G3N5008 +GHO2               =  0.800GGN5009 + 0.200GAN5009 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  6030} G3N5008 +GNO                =       G2N400E +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{  6031} G3N5008 +GNO2               =       GPN5009                                               : ARR( 0.330E-08,     0.,-1.0);
+{  6032} G3N5008 +GNO3               =       G2N400E +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{  6033} G3N5008 +MEPERO             =  0.685G2N400E + 0.315GAN5009 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  6034} G3N5008 +PERO1              =  0.800G2N400E + 0.200GAN5009 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  6035} G3N5008 +PERO2              =  0.750G2N400E + 0.250GAN5009 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  6036} G3N5008 +PERO3              =  0.800G2N400E + 0.200GAN5009 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  6037} G3N5008 +PERO5              =  0.650G2N400E + 0.350GAN5009 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  6038} G3N5008 +PERO6              =  0.650G2N400E + 0.350GAN5009 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  6039} G3N5008 +PERO9              =       G2N400E +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{  6040} G1D500G +OXYGEN             =       GDD5003 +      GHO2                                   : ARR( 0.600E-13,   398., 0.0);
+{  6041} G1D500G                     =       G2D500D                                               : ARR( 0.160E+12,  5203., 0.0);
+{  6042} G2N400E +GNO                =       G1N400E +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  6043} G2N400E +GNO                =       GNN400C                                               : ARR( 0.111E-12,  -360., 0.0);
+{  6044} G2N400E +GHO2               =       GHN400K                                               : ARR( 0.214E-12, -1250., 0.0);
+{  6045} G2N400E +GNO3               =       G1N400E +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  6046} G2N400E +MEPERO             =  0.480G1N400E + 0.260GNK4002 + 0.260GND400B                 : ARR( 0.164E-12,  -795., 0.0);
+{  6047} G2N400E +PERO1              =  0.600G1N400E + 0.200GNK4002 + 0.200GND400B                 : ARR( 0.126E-12,  -850., 0.0);
+{  6048} G2N400E +PERO2              =  0.560G1N400E + 0.220GNK4002 + 0.220GND400B                 : ARR( 0.471E-13, -1350., 0.0);
+{  6049} G2N400E +PERO3              =  0.600G1N400E + 0.200GNK4002 + 0.200GND400B                 : ARR( 0.142E-12, -1200., 0.0);
+{  6050} G2N400E +PERO5              =  0.600G1N400E + 0.200GNK4002 + 0.200GND400B                 : ARR( 0.533E-11,   500., 0.0);
+{  6051} G2N400E +PERO6              =  0.460G1N400E + 0.270GNK4002 + 0.270GND400B                 : ARR( 0.488E-13, -1250., 0.0);
+{  6052} G2N400E +PERO9              =  0.800G1N400E + 0.200GND400B                                : ARR( 0.100E-10,     0., 0.0);
+{  6053} G2D500D +GNO                =       G1D500H +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  6054} G2D500D +GNO                =       GND500c                                               : ARR( 0.182E-12,  -360., 0.0);
+{  6055} G2D500D +GHO2               =       GHD500Q                                               : ARR( 0.242E-12, -1250., 0.0);
+{  6056} G2D500D +GNO3               =       G1D500H +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  6057} G2D500D +MEPERO             =  0.340G1D500H + 0.330GDK500K + 0.330GDK500L                 : ARR( 0.565E-13,  -845., 0.0);
+{  6058} G2D500D +PERO1              =  0.460G1D500H + 0.270GDK500K + 0.270GDK500L                 : ARR( 0.434E-13,  -900., 0.0);
+{  6059} G2D500D +PERO2              =  0.400G1D500H + 0.300GDK500K + 0.300GDK500L                 : ARR( 0.162E-13, -1400., 0.0);
+{  6060} G2D500D +PERO3              =  0.460G1D500H + 0.270GDK500K + 0.270GDK500L                 : ARR( 0.488E-13, -1250., 0.0);
+{  6061} G2D500D +PERO5              =  0.460G1D500H + 0.270GDK500K + 0.270GDK500L                 : ARR( 0.183E-11,   450., 0.0);
+{  6062} G2D500D +PERO6              =  0.300G1D500H + 0.350GDK500K + 0.350GDK500L                 : ARR( 0.168E-13, -1300., 0.0);
+{  6063} G2D500D +PERO9              =  0.650G1D500H + 0.350GDK500L                                : ARR( 0.100E-10,     0., 0.0);
+{  6064} G1N400E                     =       G3N3000 +      GCH2O                                  : ARR( 0.200E+15,  3576., 0.0);
+{  6065} G1D500H                     =       G3K3001 +      GDD2000                                : ARR( 0.200E+15,  4889., 0.0);
+{  6066} GGN5000 +GHO                =       G2G5005                                               : ARR( 0.149E-11,     0., 0.0);
+{  6067} GGN5000 +GHO                =       G2G5006                                               : ARR( 0.910E-12,     0., 0.0);
+{  6068} GGN5000 +GHO                =       G3N5000                                               : ARR( 0.201E-11,  -190., 0.0);
+{  6069} GGN5000+HV               =       G1G5005 +      GNO2                                   :  0.100E+01*SUN;
+{  6070} GGN5000+HV               =       G2N4000 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{  6071} G2G5005 +GNO                =       G1G5006 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  6072} G2G5005 +GNO                =       GGN5007                                               : ARR( 0.182E-12,  -360., 0.0);
+{  6073} G2G5005 +GHO2               =       GGH5006                                               : ARR( 0.242E-12, -1250., 0.0);
+{  6074} G2G5005 +GNO3               =       G1G5006 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  6075} G2G5005 +MEPERO             =  0.480G1G5006 + 0.260GGN5008 + 0.260GGN5009                 : ARR( 0.616E-11,   905., 0.0);
+{  6076} G2G5005 +PERO1              =  0.600G1G5006 + 0.200GGN5008 + 0.200GGN5009                 : ARR( 0.473E-11,   850., 0.0);
+{  6077} G2G5005 +PERO2              =  0.560G1G5006 + 0.220GGN5008 + 0.220GGN5009                 : ARR( 0.177E-11,   350., 0.0);
+{  6078} G2G5005 +PERO3              =  0.600G1G5006 + 0.200GGN5008 + 0.200GGN5009                 : ARR( 0.533E-11,   500., 0.0);
+{  6079} G2G5005 +PERO5              =  0.600G1G5006 + 0.200GGN5008 + 0.200GGN5009                 : ARR( 0.200E-09,  2200., 0.0);
+{  6080} G2G5005 +PERO6              =  0.460G1G5006 + 0.270GGN5008 + 0.270GGN5009                 : ARR( 0.183E-11,   450., 0.0);
+{  6081} G2G5005 +PERO9              =  0.800G1G5006 + 0.200GGN5009                                : ARR( 0.100E-10,     0., 0.0);
+{  6082} G2G5006 +GNO                =       G1G5007 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  6083} G2G5006 +GNO                =       GGN500A                                               : ARR( 0.182E-12,  -360., 0.0);
+{  6084} G2G5006 +GHO2               =       GGH5007                                               : ARR( 0.242E-12, -1250., 0.0);
+{  6085} G2G5006 +GNO3               =       G1G5007 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  6086} G2G5006 +MEPERO             =  0.340G1G5007 + 0.330GGN500B + 0.330GGN500C                 : ARR( 0.565E-13,  -845., 0.0);
+{  6087} G2G5006 +PERO1              =  0.460G1G5007 + 0.270GGN500B + 0.270GGN500C                 : ARR( 0.434E-13,  -900., 0.0);
+{  6088} G2G5006 +PERO2              =  0.400G1G5007 + 0.300GGN500B + 0.300GGN500C                 : ARR( 0.162E-13, -1400., 0.0);
+{  6089} G2G5006 +PERO3              =  0.460G1G5007 + 0.270GGN500B + 0.270GGN500C                 : ARR( 0.488E-13, -1250., 0.0);
+{  6090} G2G5006 +PERO5              =  0.460G1G5007 + 0.270GGN500B + 0.270GGN500C                 : ARR( 0.183E-11,   450., 0.0);
+{  6091} G2G5006 +PERO6              =  0.300G1G5007 + 0.350GGN500B + 0.350GGN500C                 : ARR( 0.168E-13, -1300., 0.0);
+{  6092} G2G5006 +PERO9              =  0.650G1G5007 + 0.350GGN500C                                : ARR( 0.100E-10,     0., 0.0);
+{  6093} G1G5005                     =       G2G5007                                               : ARR( 0.160E+12,  3221., 0.0);
+{  6094} G1G5006                     =       G2N2000 +      GGD3000                                : ARR( 0.200E+15,  6436., 0.0);
+{  6095} G1G5006                     =       GND3000 +      G2G2000                                : ARR( 0.200E+15,  7196., 0.0);
+{  6096} G1G5007                     =       GND4001 +      GCO     +      GHO2                    : ARR( 0.200E+15,  4949., 0.0);
+{  6097} G2G5007 +GNO                =       G1G5008 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  6098} G2G5007 +GNO                =       GGN500D                                               : ARR( 0.182E-12,  -360., 0.0);
+{  6099} G2G5007 +GHO2               =       GGH5008                                               : ARR( 0.242E-12, -1250., 0.0);
+{  6100} G2G5007 +GNO3               =       G1G5008 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  6101} G2G5007 +MEPERO             =  0.340G1G5008 + 0.330GGO5007 + 0.330GGK5005                 : ARR( 0.565E-13,  -845., 0.0);
+{  6102} G2G5007 +PERO1              =  0.460G1G5008 + 0.270GGO5007 + 0.270GGK5005                 : ARR( 0.434E-13,  -900., 0.0);
+{  6103} G2G5007 +PERO2              =  0.400G1G5008 + 0.300GGO5007 + 0.300GGK5005                 : ARR( 0.162E-13, -1400., 0.0);
+{  6104} G2G5007 +PERO3              =  0.460G1G5008 + 0.270GGO5007 + 0.270GGK5005                 : ARR( 0.488E-13, -1250., 0.0);
+{  6105} G2G5007 +PERO5              =  0.460G1G5008 + 0.270GGO5007 + 0.270GGK5005                 : ARR( 0.183E-11,   450., 0.0);
+{  6106} G2G5007 +PERO6              =  0.300G1G5008 + 0.350GGO5007 + 0.350GGK5005                 : ARR( 0.168E-13, -1300., 0.0);
+{  6107} G2G5007 +PERO9              =  0.650G1G5008 + 0.350GGK5005                                : ARR( 0.100E-10,     0., 0.0);
+{  6108} G1G5008                     =       GGD5000 +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{  6109} G1G5008                     =       GDO4000 +      GCO     +      GHO2                    : ARR( 0.200E+15,  4949., 0.0);
+{  6110} GAN5000 +GHO                =       G2A5005                                               : ARR( 0.648E-12,     0., 0.0);
+{  6111} GAN5000 +GHO                =       G2A5006                                               : ARR( 0.144E-11,     0., 0.0);
+{  6112} GAN5000 +GHO                =       G2A5007                                               : ARR( 0.287E-12,     0., 0.0);
+{  6113} GAN5000 +GHO                =       G2N4000 +      GCO2                                   : ARR( 0.528E-12,     0., 0.0);
+{  6114} GAN5000+HV               =       G1A5005 +      GNO2                                   :  0.100E+01*SUN;
+{  6115} G2A5005 +GNO                =       G1A5006 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  6116} G2A5005 +GNO                =       GAN500A                                               : ARR( 0.182E-12,  -360., 0.0);
+{  6117} G2A5005 +GHO2               =       GAH5007                                               : ARR( 0.242E-12, -1250., 0.0);
+{  6118} G2A5005 +GNO3               =       G1A5006 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  6119} G2A5005 +MEPERO             =  0.340G1A5006 + 0.330GAN500B + 0.330GAN500C                 : ARR( 0.565E-13,  -845., 0.0);
+{  6120} G2A5005 +PERO1              =  0.460G1A5006 + 0.270GAN500B + 0.270GAN500C                 : ARR( 0.434E-13,  -900., 0.0);
+{  6121} G2A5005 +PERO2              =  0.400G1A5006 + 0.300GAN500B + 0.300GAN500C                 : ARR( 0.162E-13, -1400., 0.0);
+{  6122} G2A5005 +PERO3              =  0.460G1A5006 + 0.270GAN500B + 0.270GAN500C                 : ARR( 0.488E-13, -1250., 0.0);
+{  6123} G2A5005 +PERO5              =  0.460G1A5006 + 0.270GAN500B + 0.270GAN500C                 : ARR( 0.183E-11,   450., 0.0);
+{  6124} G2A5005 +PERO6              =  0.300G1A5006 + 0.350GAN500B + 0.350GAN500C                 : ARR( 0.168E-13, -1300., 0.0);
+{  6125} G2A5005 +PERO9              =  0.650G1A5006 + 0.350GAN500C                                : ARR( 0.100E-10,     0., 0.0);
+{  6126} G2A5006 +GNO                =       G1A5007 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  6127} G2A5006 +GNO                =       GAN5007                                               : ARR( 0.182E-12,  -360., 0.0);
+{  6128} G2A5006 +GHO2               =       GAH5006                                               : ARR( 0.242E-12, -1250., 0.0);
+{  6129} G2A5006 +GNO3               =       G1A5007 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  6130} G2A5006 +MEPERO             =  0.480G1A5007 + 0.260GAN5008 + 0.260GAN5009                 : ARR( 0.616E-11,   905., 0.0);
+{  6131} G2A5006 +PERO1              =  0.600G1A5007 + 0.200GAN5008 + 0.200GAN5009                 : ARR( 0.473E-11,   850., 0.0);
+{  6132} G2A5006 +PERO2              =  0.560G1A5007 + 0.220GAN5008 + 0.220GAN5009                 : ARR( 0.177E-11,   350., 0.0);
+{  6133} G2A5006 +PERO3              =  0.600G1A5007 + 0.200GAN5008 + 0.200GAN5009                 : ARR( 0.533E-11,   500., 0.0);
+{  6134} G2A5006 +PERO5              =  0.600G1A5007 + 0.200GAN5008 + 0.200GAN5009                 : ARR( 0.200E-09,  2200., 0.0);
+{  6135} G2A5006 +PERO6              =  0.460G1A5007 + 0.270GAN5008 + 0.270GAN5009                 : ARR( 0.183E-11,   450., 0.0);
+{  6136} G2A5006 +PERO9              =  0.800G1A5007 + 0.200GAN5009                                : ARR( 0.100E-10,     0., 0.0);
+{  6137} G2A5007 +GNO                =       G1A5008 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  6138} G2A5007 +GNO                =       GAN500D                                               : ARR( 0.182E-12,  -360., 0.0);
+{  6139} G2A5007 +GHO2               =       GAH5008                                               : ARR( 0.242E-12, -1250., 0.0);
+{  6140} G2A5007 +GNO3               =       G1A5008 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  6141} G2A5007 +MEPERO             =  0.340G1A5008 + 0.330GAN5001 + 0.330GAN500E                 : ARR( 0.565E-13,  -845., 0.0);
+{  6142} G2A5007 +PERO1              =  0.460G1A5008 + 0.270GAN5001 + 0.270GAN500E                 : ARR( 0.434E-13,  -900., 0.0);
+{  6143} G2A5007 +PERO2              =  0.400G1A5008 + 0.300GAN5001 + 0.300GAN500E                 : ARR( 0.162E-13, -1400., 0.0);
+{  6144} G2A5007 +PERO3              =  0.460G1A5008 + 0.270GAN5001 + 0.270GAN500E                 : ARR( 0.488E-13, -1250., 0.0);
+{  6145} G2A5007 +PERO5              =  0.460G1A5008 + 0.270GAN5001 + 0.270GAN500E                 : ARR( 0.183E-11,   450., 0.0);
+{  6146} G2A5007 +PERO6              =  0.300G1A5008 + 0.350GAN5001 + 0.350GAN500E                 : ARR( 0.168E-13, -1300., 0.0);
+{  6147} G2A5007 +PERO9              =  0.650G1A5008 + 0.350GAN500E                                : ARR( 0.100E-10,     0., 0.0);
+{  6148} G1A5005 +OXYGEN             =       GAD5000 +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{  6149} G1A5005                     =       G2A5008                                               : ARR( 0.160E+12,  3356., 0.0);
+{  6150} G1A5006                     =       GCO     +      GND4001 +      GHO                     : ARR( 0.200E+15,  4918., 0.0);
+{  6151} G1A5007                     =       G2A2000 +      GND3000                                : ARR( 0.200E+15,  7196., 0.0);
+{  6152} G1A5007                     =       GAD3000 +      G2N2000                                : ARR( 0.200E+15,  6436., 0.0);
+{  6153} G1A5008                     =       G2A3000 +      GND2000                                : ARR( 0.200E+15,  7116., 0.0);
+{  6154} G2A5008 +GNO                =       G1A5009 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  6155} G2A5008 +GNO                =       GAN500F                                               : ARR( 0.182E-12,  -360., 0.0);
+{  6156} G2A5008 +GHO2               =       GAH5009                                               : ARR( 0.242E-12, -1250., 0.0);
+{  6157} G2A5008 +GNO3               =       G1A5009 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  6158} G2A5008 +MEPERO             =  0.340G1A5009 + 0.330GAO5007 + 0.330GAK5005                 : ARR( 0.565E-13,  -845., 0.0);
+{  6159} G2A5008 +PERO1              =  0.460G1A5009 + 0.270GAO5007 + 0.270GAK5005                 : ARR( 0.434E-13,  -900., 0.0);
+{  6160} G2A5008 +PERO2              =  0.400G1A5009 + 0.300GAO5007 + 0.300GAK5005                 : ARR( 0.162E-13, -1400., 0.0);
+{  6161} G2A5008 +PERO3              =  0.460G1A5009 + 0.270GAO5007 + 0.270GAK5005                 : ARR( 0.488E-13, -1250., 0.0);
+{  6162} G2A5008 +PERO5              =  0.460G1A5009 + 0.270GAO5007 + 0.270GAK5005                 : ARR( 0.183E-11,   450., 0.0);
+{  6163} G2A5008 +PERO6              =  0.300G1A5009 + 0.350GAO5007 + 0.350GAK5005                 : ARR( 0.168E-13, -1300., 0.0);
+{  6164} G2A5008 +PERO9              =  0.650G1A5009 + 0.350GAK5005                                : ARR( 0.100E-10,     0., 0.0);
+{  6165} G1A5009                     =       GAD5001 +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{  6166} G1A5009                     =       GDO4000 +      GCO     +      GHO                     : ARR( 0.200E+15,  4918., 0.0);
+{  6167} GPN5000                     =       G3N5000 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{  6168} GPN5000 +GHO                =       G2P5005                                               : ARR( 0.288E-12,     0., 0.0);
+{  6169} GPN5000 +GHO                =       G2P5006                                               : ARR( 0.144E-11,     0., 0.0);
+{  6170} GPN5000 +GHO                =       G2P5007                                               : ARR( 0.877E-12,     0., 0.0);
+{  6171} GPN5000+HV               =       G1P5005 +      GNO2                                   :  0.100E+01*SUN;
+{  6172} GPN5000+HV               =       G3N5000 +      GNO2                                   :  0.100E+01*SUN;
+{  6173} G2P5005 +GNO                =       G1P5006 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  6174} G2P5005 +GNO                =       GPN500A                                               : ARR( 0.182E-12,  -360., 0.0);
+{  6175} G2P5005 +GHO2               =       GPH5007                                               : ARR( 0.242E-12, -1250., 0.0);
+{  6176} G2P5005 +GNO3               =       G1P5006 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  6177} G2P5005 +MEPERO             =  0.340G1P5006 + 0.330GPN5001 + 0.330GPN500B                 : ARR( 0.565E-13,  -845., 0.0);
+{  6178} G2P5005 +PERO1              =  0.460G1P5006 + 0.270GPN5001 + 0.270GPN500B                 : ARR( 0.434E-13,  -900., 0.0);
+{  6179} G2P5005 +PERO2              =  0.400G1P5006 + 0.300GPN5001 + 0.300GPN500B                 : ARR( 0.162E-13, -1400., 0.0);
+{  6180} G2P5005 +PERO3              =  0.460G1P5006 + 0.270GPN5001 + 0.270GPN500B                 : ARR( 0.488E-13, -1250., 0.0);
+{  6181} G2P5005 +PERO5              =  0.460G1P5006 + 0.270GPN5001 + 0.270GPN500B                 : ARR( 0.183E-11,   450., 0.0);
+{  6182} G2P5005 +PERO6              =  0.300G1P5006 + 0.350GPN5001 + 0.350GPN500B                 : ARR( 0.168E-13, -1300., 0.0);
+{  6183} G2P5005 +PERO9              =  0.650G1P5006 + 0.350GPN500B                                : ARR( 0.100E-10,     0., 0.0);
+{  6184} G2P5006 +GNO                =       G1P5007 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  6185} G2P5006 +GNO                =       GPN5007                                               : ARR( 0.182E-12,  -360., 0.0);
+{  6186} G2P5006 +GHO2               =       GPH5006                                               : ARR( 0.242E-12, -1250., 0.0);
+{  6187} G2P5006 +GNO3               =       G1P5007 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  6188} G2P5006 +MEPERO             =  0.480G1P5007 + 0.260GPN5008 + 0.260GPN5009                 : ARR( 0.616E-11,   905., 0.0);
+{  6189} G2P5006 +PERO1              =  0.600G1P5007 + 0.200GPN5008 + 0.200GPN5009                 : ARR( 0.473E-11,   850., 0.0);
+{  6190} G2P5006 +PERO2              =  0.560G1P5007 + 0.220GPN5008 + 0.220GPN5009                 : ARR( 0.177E-11,   350., 0.0);
+{  6191} G2P5006 +PERO3              =  0.600G1P5007 + 0.200GPN5008 + 0.200GPN5009                 : ARR( 0.533E-11,   500., 0.0);
+{  6192} G2P5006 +PERO5              =  0.600G1P5007 + 0.200GPN5008 + 0.200GPN5009                 : ARR( 0.200E-09,  2200., 0.0);
+{  6193} G2P5006 +PERO6              =  0.460G1P5007 + 0.270GPN5008 + 0.270GPN5009                 : ARR( 0.183E-11,   450., 0.0);
+{  6194} G2P5006 +PERO9              =  0.800G1P5007 + 0.200GPN5009                                : ARR( 0.100E-10,     0., 0.0);
+{  6195} G2P5007 +GNO                =       G1P5008 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  6196} G2P5007 +GNO                =       GPN500C                                               : ARR( 0.182E-12,  -360., 0.0);
+{  6197} G2P5007 +GHO2               =       GPH5008                                               : ARR( 0.242E-12, -1250., 0.0);
+{  6198} G2P5007 +GNO3               =       G1P5008 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  6199} G2P5007 +MEPERO             =  0.340G1P5008 + 0.330GPN500D + 0.330GPN500E                 : ARR( 0.565E-13,  -845., 0.0);
+{  6200} G2P5007 +PERO1              =  0.460G1P5008 + 0.270GPN500D + 0.270GPN500E                 : ARR( 0.434E-13,  -900., 0.0);
+{  6201} G2P5007 +PERO2              =  0.400G1P5008 + 0.300GPN500D + 0.300GPN500E                 : ARR( 0.162E-13, -1400., 0.0);
+{  6202} G2P5007 +PERO3              =  0.460G1P5008 + 0.270GPN500D + 0.270GPN500E                 : ARR( 0.488E-13, -1250., 0.0);
+{  6203} G2P5007 +PERO5              =  0.460G1P5008 + 0.270GPN500D + 0.270GPN500E                 : ARR( 0.183E-11,   450., 0.0);
+{  6204} G2P5007 +PERO6              =  0.300G1P5008 + 0.350GPN500D + 0.350GPN500E                 : ARR( 0.168E-13, -1300., 0.0);
+{  6205} G2P5007 +PERO9              =  0.650G1P5008 + 0.350GPN500E                                : ARR( 0.100E-10,     0., 0.0);
+{  6206} G1P5005                     =       G2P5008                                               : ARR( 0.160E+12,  3221., 0.0);
+{  6207} G1P5006                     =       GND2000 +      G2P3000                                : ARR( 0.200E+15,  7116., 0.0);
+{  6208} G1P5007                     =       G2N2000 +      GPD3000                                : ARR( 0.200E+15,  6436., 0.0);
+{  6209} G1P5007                     =       GND3000 +      G2P2000                                : ARR( 0.200E+15,  7196., 0.0);
+{  6210} G1P5008                     =       GND4001 +      GCO     +      GNO2                    : ARR( 0.200E+15,  4949., 0.0);
+{  6211} G2P5008 +GNO                =       G1P5009 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  6212} G2P5008 +GNO                =       GPN500F                                               : ARR( 0.182E-12,  -360., 0.0);
+{  6213} G2P5008 +GHO2               =       GPH5009                                               : ARR( 0.242E-12, -1250., 0.0);
+{  6214} G2P5008 +GNO3               =       G1P5009 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  6215} G2P5008 +MEPERO             =  0.340G1P5009 + 0.330GPO5007 + 0.330GPK5005                 : ARR( 0.565E-13,  -845., 0.0);
+{  6216} G2P5008 +PERO1              =  0.460G1P5009 + 0.270GPO5007 + 0.270GPK5005                 : ARR( 0.434E-13,  -900., 0.0);
+{  6217} G2P5008 +PERO2              =  0.400G1P5009 + 0.300GPO5007 + 0.300GPK5005                 : ARR( 0.162E-13, -1400., 0.0);
+{  6218} G2P5008 +PERO3              =  0.460G1P5009 + 0.270GPO5007 + 0.270GPK5005                 : ARR( 0.488E-13, -1250., 0.0);
+{  6219} G2P5008 +PERO5              =  0.460G1P5009 + 0.270GPO5007 + 0.270GPK5005                 : ARR( 0.183E-11,   450., 0.0);
+{  6220} G2P5008 +PERO6              =  0.300G1P5009 + 0.350GPO5007 + 0.350GPK5005                 : ARR( 0.168E-13, -1300., 0.0);
+{  6221} G2P5008 +PERO9              =  0.650G1P5009 + 0.350GPK5005                                : ARR( 0.100E-10,     0., 0.0);
+{  6222} G1P5009                     =       GPD5000 +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{  6223} G1P5009                     =       GDO4000 +      GCO     +      GNO2                    : ARR( 0.200E+15,  4949., 0.0);
+{  6224} GNN4000 +GHO                =       GND4001 +      GNO2                                   : ARR( 0.919E-13,     0., 0.0);
+{  6225} GNN4000 +GHO                =       G2N400F                                               : ARR( 0.565E-12,     0., 0.0);
+{  6226} GNN4000+HV               =       G1N4000 +      GNO2                                   :  0.200E+01*SUN;
+{  6227} G2N400F +GNO                =       G1N400F +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  6228} G2N400F +GNO                =       GNN400B                                               : ARR( 0.111E-12,  -360., 0.0);
+{  6229} G2N400F +GHO2               =       GHN400I                                               : ARR( 0.214E-12, -1250., 0.0);
+{  6230} G2N400F +GNO3               =       G1N400F +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  6231} G2N400F +MEPERO             =  0.340G1N400F + 0.330GNN4002 + 0.330GNN400C                 : ARR( 0.565E-13,  -845., 0.0);
+{  6232} G2N400F +PERO1              =  0.460G1N400F + 0.270GNN4002 + 0.270GNN400C                 : ARR( 0.434E-13,  -900., 0.0);
+{  6233} G2N400F +PERO2              =  0.400G1N400F + 0.300GNN4002 + 0.300GNN400C                 : ARR( 0.162E-13, -1400., 0.0);
+{  6234} G2N400F +PERO3              =  0.460G1N400F + 0.270GNN4002 + 0.270GNN400C                 : ARR( 0.488E-13, -1250., 0.0);
+{  6235} G2N400F +PERO5              =  0.460G1N400F + 0.270GNN4002 + 0.270GNN400C                 : ARR( 0.183E-11,   450., 0.0);
+{  6236} G2N400F +PERO6              =  0.300G1N400F + 0.350GNN4002 + 0.350GNN400C                 : ARR( 0.168E-13, -1300., 0.0);
+{  6237} G2N400F +PERO9              =  0.650G1N400F + 0.350GNN400C                                : ARR( 0.100E-10,     0., 0.0);
+{  6238} G1N400F                     =       G2N2000 +      GND2000                                : ARR( 0.200E+15,  7131., 0.0);
+{  6239} GHN4000 +GHO                =       G2H400C                                               : ARR( 0.144E-11,     0., 0.0);
+{  6240} GHN4000 +GHO                =       GND4001 +      GHO                                    : ARR( 0.163E-10,     0., 0.0);
+{  6241} GHN4000 +GHO                =       G2N4000                                               : ARR( 0.193E-11,  -190., 0.0);
+{  6242} GHN4000+HV               =       G1H400C +      GNO2                                   :  0.100E+01*SUN;
+{  6243} GHN4000+HV               =       G1N4000 +      GHO                                    :  0.100E+01*SUN;
+{  6244} G2H400C +GNO                =       G1H400D +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  6245} G2H400C +GNO                =       GHN400H                                               : ARR( 0.111E-12,  -360., 0.0);
+{  6246} G2H400C +GHO2               =       GHH4007                                               : ARR( 0.214E-12, -1250., 0.0);
+{  6247} G2H400C +GNO3               =       G1H400D +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  6248} G2H400C +MEPERO             =  0.340G1H400D + 0.330GHN4003 + 0.330GHN400K                 : ARR( 0.565E-13,  -845., 0.0);
+{  6249} G2H400C +PERO1              =  0.460G1H400D + 0.270GHN4003 + 0.270GHN400K                 : ARR( 0.434E-13,  -900., 0.0);
+{  6250} G2H400C +PERO2              =  0.400G1H400D + 0.300GHN4003 + 0.300GHN400K                 : ARR( 0.162E-13, -1400., 0.0);
+{  6251} G2H400C +PERO3              =  0.460G1H400D + 0.270GHN4003 + 0.270GHN400K                 : ARR( 0.488E-13, -1250., 0.0);
+{  6252} G2H400C +PERO5              =  0.460G1H400D + 0.270GHN4003 + 0.270GHN400K                 : ARR( 0.183E-11,   450., 0.0);
+{  6253} G2H400C +PERO6              =  0.300G1H400D + 0.350GHN4003 + 0.350GHN400K                 : ARR( 0.168E-13, -1300., 0.0);
+{  6254} G2H400C +PERO9              =  0.650G1H400D + 0.350GHN400K                                : ARR( 0.100E-10,     0., 0.0);
+{  6255} G1H400C                     =       GDO4000 +      GHO                                    : ARR( 0.160E+12,  2186., 0.0);
+{  6256} G1H400D                     =       G2N2000 +      GHD2000                                : ARR( 0.200E+15,  7134., 0.0);
+{  6257} G1H400D                     =       GND3000 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  7140., 0.0);
+{  6258} GND5008 +GHO                =       GND500d +      GHO2                                   : ARR( 0.423E-11,     0., 0.0);
+{  6259} GND5008 +GHO                =       G2N501r                                               : ARR( 0.149E-11,     0., 0.0);
+{  6260} GND5008 +GHO                =       G3N5009                                               : ARR( 0.437E-11,     0., 0.0);
+{  6261} GND5008 +GNO3               =       G3N5009 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{  6262} GND5008+HV               =       G1D5003 +      GNO2                                   :  0.100E+01*SUN;
+{  6263} GND5008+HV               =       GDO4000 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{  6264} GND5008+HV               =       GUO3000 +      GND2000                                :  0.100E+01*SUN;
+{  6265} G2N501r +GNO                =       G1N501w +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  6266} G2N501r +GNO                =       GNN501T                                               : ARR( 0.182E-12,  -360., 0.0);
+{  6267} G2N501r +GHO2               =       GHN502S                                               : ARR( 0.242E-12, -1250., 0.0);
+{  6268} G2N501r +GNO3               =       G1N501w +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  6269} G2N501r +MEPERO             =  0.340G1N501w + 0.330GND500B + 0.330GND500e                 : ARR( 0.565E-13,  -845., 0.0);
+{  6270} G2N501r +PERO1              =  0.460G1N501w + 0.270GND500B + 0.270GND500e                 : ARR( 0.434E-13,  -900., 0.0);
+{  6271} G2N501r +PERO2              =  0.400G1N501w + 0.300GND500B + 0.300GND500e                 : ARR( 0.162E-13, -1400., 0.0);
+{  6272} G2N501r +PERO3              =  0.460G1N501w + 0.270GND500B + 0.270GND500e                 : ARR( 0.488E-13, -1250., 0.0);
+{  6273} G2N501r +PERO5              =  0.460G1N501w + 0.270GND500B + 0.270GND500e                 : ARR( 0.183E-11,   450., 0.0);
+{  6274} G2N501r +PERO6              =  0.300G1N501w + 0.350GND500B + 0.350GND500e                 : ARR( 0.168E-13, -1300., 0.0);
+{  6275} G2N501r +PERO9              =  0.650G1N501w + 0.350GND500e                                : ARR( 0.100E-10,     0., 0.0);
+{  6276} G3N5009 +GHO2               =  0.800GGN500D + 0.200GAN500F + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  6277} G3N5009 +GNO                =       GDO4000 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{  6278} G3N5009 +GNO2               =       GPN500F                                               : ARR( 0.330E-08,     0.,-1.0);
+{  6279} G3N5009 +GNO3               =       GDO4000 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{  6280} G3N5009 +MEPERO             =  0.685GDO4000 + 0.315GAN500F + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  6281} G3N5009 +PERO1              =  0.800GDO4000 + 0.200GAN500F + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  6282} G3N5009 +PERO2              =  0.750GDO4000 + 0.250GAN500F + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  6283} G3N5009 +PERO3              =  0.800GDO4000 + 0.200GAN500F + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  6284} G3N5009 +PERO5              =  0.650GDO4000 + 0.350GAN500F + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  6285} G3N5009 +PERO6              =  0.650GDO4000 + 0.350GAN500F + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  6286} G3N5009 +PERO9              =       GDO4000 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{  6287} G1N501w                     =       GCH2O   +      GND400D +      GHO2                    : ARR( 0.200E+15,  5041., 0.0);
+{  6288} GHD5004 +GHO                =       GHD500R +      GHO2                                   : ARR( 0.413E-11,     0., 0.0);
+{  6289} GHD5004 +GHO                =       G2H500m                                               : ARR( 0.460E-11,     0., 0.0);
+{  6290} GHD5004 +GHO                =       GDK5004 +      GHO                                    : ARR( 0.258E-10,     0., 0.0);
+{  6291} GHD5004 +GHO                =       G3H5005                                               : ARR( 0.213E-10,     0., 0.0);
+{  6292} GHD5004 +GHO                =       G2D5002                                               : ARR( 0.195E-11,  -190., 0.0);
+{  6293} GHD5004 +GNO3               =       G3H5005 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{  6294} GHD5004+HV               =       G1D5003 +      GHO                                    :  0.100E+01*SUN;
+{  6295} GHD5004+HV               =       GDO4000 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{  6296} G2H500m +GNO                =       G1H5018 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  6297} G2H500m +GNO                =       GHN502Q                                               : ARR( 0.182E-12,  -360., 0.0);
+{  6298} G2H500m +GHO2               =       GHH500i                                               : ARR( 0.242E-12, -1250., 0.0);
+{  6299} G2H500m +GNO3               =       G1H5018 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  6300} G2H500m +MEPERO             =  0.340G1H5018 + 0.330GHD500P + 0.330GHD500Q                 : ARR( 0.565E-13,  -845., 0.0);
+{  6301} G2H500m +PERO1              =  0.460G1H5018 + 0.270GHD500P + 0.270GHD500Q                 : ARR( 0.434E-13,  -900., 0.0);
+{  6302} G2H500m +PERO2              =  0.400G1H5018 + 0.300GHD500P + 0.300GHD500Q                 : ARR( 0.162E-13, -1400., 0.0);
+{  6303} G2H500m +PERO3              =  0.460G1H5018 + 0.270GHD500P + 0.270GHD500Q                 : ARR( 0.488E-13, -1250., 0.0);
+{  6304} G2H500m +PERO5              =  0.460G1H5018 + 0.270GHD500P + 0.270GHD500Q                 : ARR( 0.183E-11,   450., 0.0);
+{  6305} G2H500m +PERO6              =  0.300G1H5018 + 0.350GHD500P + 0.350GHD500Q                 : ARR( 0.168E-13, -1300., 0.0);
+{  6306} G2H500m +PERO9              =  0.650G1H5018 + 0.350GHD500Q                                : ARR( 0.100E-10,     0., 0.0);
+{  6307} G3H5005 +GHO2               =  0.800GGH5008 + 0.200GAH5009 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  6308} G3H5005 +GNO                =       GDO4000 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{  6309} G3H5005 +GNO2               =       GPH5009                                               : ARR( 0.330E-08,     0.,-1.0);
+{  6310} G3H5005 +GNO3               =       GDO4000 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{  6311} G3H5005 +MEPERO             =  0.685GDO4000 + 0.315GAH5009 + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  6312} G3H5005 +PERO1              =  0.800GDO4000 + 0.200GAH5009 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  6313} G3H5005 +PERO2              =  0.750GDO4000 + 0.250GAH5009 + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  6314} G3H5005 +PERO3              =  0.800GDO4000 + 0.200GAH5009 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  6315} G3H5005 +PERO5              =  0.650GDO4000 + 0.350GAH5009 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  6316} G3H5005 +PERO6              =  0.650GDO4000 + 0.350GAH5009 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  6317} G3H5005 +PERO9              =       GDO4000 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{  6318} G1H5018                     =       GDO3000 +      GDD2000 +      GHO                     : ARR( 0.200E+15,  4662., 0.0);
+{  6319} GDO5006 +GHO                =       GDD5000 +      GHO2                                   : ARR( 0.421E-11,     0., 0.0);
+{  6320} GDO5006 +GHO                =       G2D500E                                               : ARR( 0.469E-11,     0., 0.0);
+{  6321} GDO5006 +GHO                =       GDK5004 +      GHO2                                   : ARR( 0.658E-11,     0., 0.0);
+{  6322} GDO5006 +GHO                =       G3K500A                                               : ARR( 0.218E-10,     0., 0.0);
+{  6323} GDO5006 +GNO3               =       G3K500A +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{  6324} GDO5006+HV               =       GDO4000 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{  6325} G2D500E +GNO                =       G1D500I +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  6326} G2D500E +GNO                =       GND500Y                                               : ARR( 0.182E-12,  -360., 0.0);
+{  6327} G2D500E +GHO2               =       GHD500M                                               : ARR( 0.242E-12, -1250., 0.0);
+{  6328} G2D500E +GNO3               =       G1D500I +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  6329} G2D500E +MEPERO             =  0.340G1D500I + 0.330GDO500B + 0.330GDK500K                 : ARR( 0.565E-13,  -845., 0.0);
+{  6330} G2D500E +PERO1              =  0.460G1D500I + 0.270GDO500B + 0.270GDK500K                 : ARR( 0.434E-13,  -900., 0.0);
+{  6331} G2D500E +PERO2              =  0.400G1D500I + 0.300GDO500B + 0.300GDK500K                 : ARR( 0.162E-13, -1400., 0.0);
+{  6332} G2D500E +PERO3              =  0.460G1D500I + 0.270GDO500B + 0.270GDK500K                 : ARR( 0.488E-13, -1250., 0.0);
+{  6333} G2D500E +PERO5              =  0.460G1D500I + 0.270GDO500B + 0.270GDK500K                 : ARR( 0.183E-11,   450., 0.0);
+{  6334} G2D500E +PERO6              =  0.300G1D500I + 0.350GDO500B + 0.350GDK500K                 : ARR( 0.168E-13, -1300., 0.0);
+{  6335} G2D500E +PERO9              =  0.650G1D500I + 0.350GDK500K                                : ARR( 0.100E-10,     0., 0.0);
+{  6336} G3K500A +GHO2               =  0.800GGO5007 + 0.200GAO5007 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  6337} G3K500A +GNO                =       GDO4000 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{  6338} G3K500A +GNO2               =       GPO5007                                               : ARR( 0.330E-08,     0.,-1.0);
+{  6339} G3K500A +GNO3               =       GDO4000 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{  6340} G3K500A +MEPERO             =  0.685GDO4000 + 0.315GAO5007 + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  6341} G3K500A +PERO1              =  0.800GDO4000 + 0.200GAO5007 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  6342} G3K500A +PERO2              =  0.750GDO4000 + 0.250GAO5007 + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  6343} G3K500A +PERO3              =  0.800GDO4000 + 0.200GAO5007 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  6344} G3K500A +PERO5              =  0.650GDO4000 + 0.350GAO5007 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  6345} G3K500A +PERO6              =  0.650GDO4000 + 0.350GAO5007 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  6346} G3K500A +PERO9              =       GDO4000 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{  6347} G1D500I                     =       GDO3000 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  3453., 0.0);
+{  6348} GDK5004 +GHO                =       GDD5004 +      GHO2                                   : ARR( 0.421E-11,     0., 0.0);
+{  6349} GDK5004 +GHO                =       G2D500F                                               : ARR( 0.469E-11,     0., 0.0);
+{  6350} GDK5004 +GHO                =       G3K4002 +      GCO                                    : ARR( 0.133E-10,     0., 0.0);
+{  6351} GDK5004 +GNO3               =       G3K4002 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{  6352} GDK5004+HV               =       G3K4002 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{  6353} GDK5004+HV               =       GDO4000 +      GCO                                    :  0.100E+01*SUN;
+{  6354} GDK5004+HV               =       GO03000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{  6355} G2D500F +GNO                =       G1D500J +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  6356} G2D500F +GNO                =       GND500N                                               : ARR( 0.182E-12,  -360., 0.0);
+{  6357} G2D500F +GHO2               =       GHD500S                                               : ARR( 0.242E-12, -1250., 0.0);
+{  6358} G2D500F +GNO3               =       G1D500J +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  6359} G2D500F +MEPERO             =  0.340G1D500J + 0.330GDK5005 + 0.330GDK500M                 : ARR( 0.565E-13,  -845., 0.0);
+{  6360} G2D500F +PERO1              =  0.460G1D500J + 0.270GDK5005 + 0.270GDK500M                 : ARR( 0.434E-13,  -900., 0.0);
+{  6361} G2D500F +PERO2              =  0.400G1D500J + 0.300GDK5005 + 0.300GDK500M                 : ARR( 0.162E-13, -1400., 0.0);
+{  6362} G2D500F +PERO3              =  0.460G1D500J + 0.270GDK5005 + 0.270GDK500M                 : ARR( 0.488E-13, -1250., 0.0);
+{  6363} G2D500F +PERO5              =  0.460G1D500J + 0.270GDK5005 + 0.270GDK500M                 : ARR( 0.183E-11,   450., 0.0);
+{  6364} G2D500F +PERO6              =  0.300G1D500J + 0.350GDK5005 + 0.350GDK500M                 : ARR( 0.168E-13, -1300., 0.0);
+{  6365} G2D500F +PERO9              =  0.650G1D500J + 0.350GDK500M                                : ARR( 0.100E-10,     0., 0.0);
+{  6366} G1D500J                     =       GCH2O   +      GDD4002 +      GHO2                    : ARR( 0.200E+15,  4658., 0.0);
+{  6367} GDD5000 +GHO                =       G3D5000                                               : ARR( 0.211E-10,     0., 0.0);
+{  6368} GDD5000 +GHO                =       G2D500G                                               : ARR( 0.144E-10,     0., 0.0);
+{  6369} GDD5000 +GHO                =       GDD5004 +      GHO2                                   : ARR( 0.638E-11,     0., 0.0);
+{  6370} GDD5000 +GHO                =       G3D5001                                               : ARR( 0.211E-10,     0., 0.0);
+{  6371} GDD5000 +GNO3               =       G3D5000 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{  6372} GDD5000 +GNO3               =       G3D5001 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{  6373} GDD5000+HV               =       GCO     +      G2D4003 +      GHO2                    :  0.100E+01*SUN;
+{  6374} GDD5000+HV               =       GD02000 +      GDK3000                                :  0.100E+01*SUN;
+{  6375} GDD5000+HV               =       GDD4000 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{  6376} G3D5000 +GHO2               =  0.800GGD5001 + 0.200GAD5002 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  6377} G3D5000 +GNO                =       G2D4003 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{  6378} G3D5000 +GNO2               =       GPD5001                                               : ARR( 0.330E-08,     0.,-1.0);
+{  6379} G3D5000 +GNO3               =       G2D4003 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{  6380} G3D5000 +MEPERO             =  0.685G2D4003 + 0.315GAD5002 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  6381} G3D5000 +PERO1              =  0.800G2D4003 + 0.200GAD5002 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  6382} G3D5000 +PERO2              =  0.750G2D4003 + 0.250GAD5002 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  6383} G3D5000 +PERO3              =  0.800G2D4003 + 0.200GAD5002 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  6384} G3D5000 +PERO5              =  0.650G2D4003 + 0.350GAD5002 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  6385} G3D5000 +PERO6              =  0.650G2D4003 + 0.350GAD5002 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  6386} G3D5000 +PERO9              =       G2D4003 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{  6387} G2D500G +GNO                =       G1D500K +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  6388} G2D500G +GNO                =       GND500a                                               : ARR( 0.182E-12,  -360., 0.0);
+{  6389} G2D500G +GHO2               =       GHD500O                                               : ARR( 0.242E-12, -1250., 0.0);
+{  6390} G2D500G +GNO3               =       G1D500K +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  6391} G2D500G +MEPERO             =  0.340G1D500K + 0.330GDD5002 + 0.330GDD5005                 : ARR( 0.565E-13,  -845., 0.0);
+{  6392} G2D500G +PERO1              =  0.460G1D500K + 0.270GDD5002 + 0.270GDD5005                 : ARR( 0.434E-13,  -900., 0.0);
+{  6393} G2D500G +PERO2              =  0.400G1D500K + 0.300GDD5002 + 0.300GDD5005                 : ARR( 0.162E-13, -1400., 0.0);
+{  6394} G2D500G +PERO3              =  0.460G1D500K + 0.270GDD5002 + 0.270GDD5005                 : ARR( 0.488E-13, -1250., 0.0);
+{  6395} G2D500G +PERO5              =  0.460G1D500K + 0.270GDD5002 + 0.270GDD5005                 : ARR( 0.183E-11,   450., 0.0);
+{  6396} G2D500G +PERO6              =  0.300G1D500K + 0.350GDD5002 + 0.350GDD5005                 : ARR( 0.168E-13, -1300., 0.0);
+{  6397} G2D500G +PERO9              =  0.650G1D500K + 0.350GDD5005                                : ARR( 0.100E-10,     0., 0.0);
+{  6398} G3D5001 +GHO2               =  0.800GGD5000 + 0.200GAD5001 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  6399} G3D5001 +GNO                =       GDD4000 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{  6400} G3D5001 +GNO2               =       GPD5000                                               : ARR( 0.330E-08,     0.,-1.0);
+{  6401} G3D5001 +GNO3               =       GDD4000 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{  6402} G3D5001 +MEPERO             =  0.685GDD4000 + 0.315GAD5001 + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  6403} G3D5001 +PERO1              =  0.800GDD4000 + 0.200GAD5001 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  6404} G3D5001 +PERO2              =  0.750GDD4000 + 0.250GAD5001 + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  6405} G3D5001 +PERO3              =  0.800GDD4000 + 0.200GAD5001 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  6406} G3D5001 +PERO5              =  0.650GDD4000 + 0.350GAD5001 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  6407} G3D5001 +PERO6              =  0.650GDD4000 + 0.350GAD5001 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  6408} G3D5001 +PERO9              =       GDD4000 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{  6409} G2D4003 +GNO                =       G1D4004 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  6410} G2D4003 +GNO                =       GND400C                                               : ARR( 0.111E-12,  -360., 0.0);
+{  6411} G2D4003 +GHO2               =       GHD400B                                               : ARR( 0.214E-12, -1250., 0.0);
+{  6412} G2D4003 +GNO3               =       G1D4004 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  6413} G2D4003 +MEPERO             =  0.480G1D4004 + 0.260GDO4003 + 0.260GDD4001                 : ARR( 0.146E-12,  -445., 0.0);
+{  6414} G2D4003 +PERO1              =  0.600G1D4004 + 0.200GDO4003 + 0.200GDD4001                 : ARR( 0.112E-12,  -500., 0.0);
+{  6415} G2D4003 +PERO2              =  0.560G1D4004 + 0.220GDO4003 + 0.220GDD4001                 : ARR( 0.418E-13, -1000., 0.0);
+{  6416} G2D4003 +PERO3              =  0.600G1D4004 + 0.200GDO4003 + 0.200GDD4001                 : ARR( 0.126E-12,  -850., 0.0);
+{  6417} G2D4003 +PERO5              =  0.600G1D4004 + 0.200GDO4003 + 0.200GDD4001                 : ARR( 0.473E-11,   850., 0.0);
+{  6418} G2D4003 +PERO6              =  0.460G1D4004 + 0.270GDO4003 + 0.270GDD4001                 : ARR( 0.434E-13,  -900., 0.0);
+{  6419} G2D4003 +PERO9              =  0.800G1D4004 + 0.200GDD4001                                : ARR( 0.100E-10,     0., 0.0);
+{  6420} G1D500K                     =       GDD2000 +      GDD3000 +      GHO2                    : ARR( 0.200E+15,  3070., 0.0);
+{  6421} G1D4004 +OXYGEN             =       GDD4001 +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{  6422} G1D4004                     =       G3K4006                                               : ARR( 0.800E+11,  4559., 0.0);
+{  6423} GNN500K +GHO                =       G2N501s                                               : ARR( 0.335E-13,     0., 0.0);
+{  6424} GNN500K +GHO                =       GNN500U +      GNO2                                   : ARR( 0.191E-13,     0., 0.0);
+{  6425} GNN500K +GHO                =       GNN500M +      GNO2                                   : ARR( 0.236E-13,     0., 0.0);
+{  6426} GNN500K +GHO                =       G2N501t                                               : ARR( 0.565E-13,     0., 0.0);
+{  6427} GNN500K +GHO                =       GNN500x +      GNO2                                   : ARR( 0.460E-13,     0., 0.0);
+{  6428} GNN500K+HV               =       G1N500T +      GNO2                                   :  0.100E+01*SUN;
+{  6429} GNN500K+HV               =       G1N500L +      GNO2                                   :  0.100E+01*SUN;
+{  6430} GNN500K+HV               =       G1N5018 +      GNO2                                   :  0.100E+01*SUN;
+{  6431} G2N501s +GNO                =       G1N501x +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  6432} G2N501s +GNO                =       GNN501E                                               : ARR( 0.182E-12,  -360., 0.0);
+{  6433} G2N501s +GHO2               =       GHN502T                                               : ARR( 0.242E-12, -1250., 0.0);
+{  6434} G2N501s +GNO3               =       G1N501x +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  6435} G2N501s +MEPERO             =  0.480G1N501x + 0.260GNN501N + 0.260GNN501U                 : ARR( 0.164E-12,  -795., 0.0);
+{  6436} G2N501s +PERO1              =  0.600G1N501x + 0.200GNN501N + 0.200GNN501U                 : ARR( 0.126E-12,  -850., 0.0);
+{  6437} G2N501s +PERO2              =  0.560G1N501x + 0.220GNN501N + 0.220GNN501U                 : ARR( 0.471E-13, -1350., 0.0);
+{  6438} G2N501s +PERO3              =  0.600G1N501x + 0.200GNN501N + 0.200GNN501U                 : ARR( 0.142E-12, -1200., 0.0);
+{  6439} G2N501s +PERO5              =  0.600G1N501x + 0.200GNN501N + 0.200GNN501U                 : ARR( 0.533E-11,   500., 0.0);
+{  6440} G2N501s +PERO6              =  0.460G1N501x + 0.270GNN501N + 0.270GNN501U                 : ARR( 0.488E-13, -1250., 0.0);
+{  6441} G2N501s +PERO9              =  0.800G1N501x + 0.200GNN501U                                : ARR( 0.100E-10,     0., 0.0);
+{  6442} G2N501t +GNO                =       G1N501y +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  6443} G2N501t +GNO                =       GNN501W                                               : ARR( 0.182E-12,  -360., 0.0);
+{  6444} G2N501t +GHO2               =       GHN502U                                               : ARR( 0.242E-12, -1250., 0.0);
+{  6445} G2N501t +GNO3               =       G1N501y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  6446} G2N501t +MEPERO             =  0.340G1N501y + 0.330GNN501X + 0.330GNN501Y                 : ARR( 0.565E-13,  -845., 0.0);
+{  6447} G2N501t +PERO1              =  0.460G1N501y + 0.270GNN501X + 0.270GNN501Y                 : ARR( 0.434E-13,  -900., 0.0);
+{  6448} G2N501t +PERO2              =  0.400G1N501y + 0.300GNN501X + 0.300GNN501Y                 : ARR( 0.162E-13, -1400., 0.0);
+{  6449} G2N501t +PERO3              =  0.460G1N501y + 0.270GNN501X + 0.270GNN501Y                 : ARR( 0.488E-13, -1250., 0.0);
+{  6450} G2N501t +PERO5              =  0.460G1N501y + 0.270GNN501X + 0.270GNN501Y                 : ARR( 0.183E-11,   450., 0.0);
+{  6451} G2N501t +PERO6              =  0.300G1N501y + 0.350GNN501X + 0.350GNN501Y                 : ARR( 0.168E-13, -1300., 0.0);
+{  6452} G2N501t +PERO9              =  0.650G1N501y + 0.350GNN501Y                                : ARR( 0.100E-10,     0., 0.0);
+{  6453} G1N501x +OXYGEN             =       GNN501U +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{  6454} G1N501x                     =       G2N501u                                               : ARR( 0.160E+12,  4439., 0.0);
+{  6455} G1N501x                     =       GNN4008 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7042., 0.0);
+{  6456} G1N501y                     =       G2N501v                                               : ARR( 0.240E+12,  4897., 0.0);
+{  6457} G1N501y                     =       GND3001 +      GND2000 +      GNO2                    : ARR( 0.200E+15,  6232., 0.0);
+{  6458} G2N501u +GNO                =       G1N501z +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  6459} G2N501u +GNO                =       GNN501Z                                               : ARR( 0.182E-12,  -360., 0.0);
+{  6460} G2N501u +GHO2               =       GHN502W                                               : ARR( 0.242E-12, -1250., 0.0);
+{  6461} G2N501u +GNO3               =       G1N501z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  6462} G2N501u +MEPERO             =  0.340G1N501z + 0.330GNN501a + 0.330GNN501b                 : ARR( 0.565E-13,  -845., 0.0);
+{  6463} G2N501u +PERO1              =  0.460G1N501z + 0.270GNN501a + 0.270GNN501b                 : ARR( 0.434E-13,  -900., 0.0);
+{  6464} G2N501u +PERO2              =  0.400G1N501z + 0.300GNN501a + 0.300GNN501b                 : ARR( 0.162E-13, -1400., 0.0);
+{  6465} G2N501u +PERO3              =  0.460G1N501z + 0.270GNN501a + 0.270GNN501b                 : ARR( 0.488E-13, -1250., 0.0);
+{  6466} G2N501u +PERO5              =  0.460G1N501z + 0.270GNN501a + 0.270GNN501b                 : ARR( 0.183E-11,   450., 0.0);
+{  6467} G2N501u +PERO6              =  0.300G1N501z + 0.350GNN501a + 0.350GNN501b                 : ARR( 0.168E-13, -1300., 0.0);
+{  6468} G2N501u +PERO9              =  0.650G1N501z + 0.350GNN501b                                : ARR( 0.100E-10,     0., 0.0);
+{  6469} G2N501v +GNO                =       G1N5021 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  6470} G2N501v +GNO                =       GNN501c                                               : ARR( 0.182E-12,  -360., 0.0);
+{  6471} G2N501v +GHO2               =       GHN502X                                               : ARR( 0.242E-12, -1250., 0.0);
+{  6472} G2N501v +GNO3               =       G1N5021 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  6473} G2N501v +MEPERO             =  0.480G1N5021 + 0.260GNN501a + 0.260GNN501d                 : ARR( 0.164E-12,  -795., 0.0);
+{  6474} G2N501v +PERO1              =  0.600G1N5021 + 0.200GNN501a + 0.200GNN501d                 : ARR( 0.126E-12,  -850., 0.0);
+{  6475} G2N501v +PERO2              =  0.560G1N5021 + 0.220GNN501a + 0.220GNN501d                 : ARR( 0.471E-13, -1350., 0.0);
+{  6476} G2N501v +PERO3              =  0.600G1N5021 + 0.200GNN501a + 0.200GNN501d                 : ARR( 0.142E-12, -1200., 0.0);
+{  6477} G2N501v +PERO5              =  0.600G1N5021 + 0.200GNN501a + 0.200GNN501d                 : ARR( 0.533E-11,   500., 0.0);
+{  6478} G2N501v +PERO6              =  0.460G1N5021 + 0.270GNN501a + 0.270GNN501d                 : ARR( 0.488E-13, -1250., 0.0);
+{  6479} G2N501v +PERO9              =  0.800G1N5021 + 0.200GNN501d                                : ARR( 0.100E-10,     0., 0.0);
+{  6480} G1N501z                     =       GNN501d +      GHO2                                   : ARR( 0.160E+12,  3252., 0.0);
+{  6481} G1N501z                     =       GND3004 +      GND2000 +      GNO2                    : ARR( 0.200E+15,  6232., 0.0);
+{  6482} G1N5021 +OXYGEN             =       GNN501d +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{  6483} G1N5021                     =       GNN501b +      GHO2                                   : ARR( 0.800E+11,  3464., 0.0);
+{  6484} GHN500T +GHO                =       GNN500M +      GHO                                    : ARR( 0.856E-11,     0., 0.0);
+{  6485} GHN500T +GHO                =       G2N500L                                               : ARR( 0.197E-11,  -190., 0.0);
+{  6486} GHN500T+HV               =       G1H5019 +      GNO2                                   :  0.100E+01*SUN;
+{  6487} GHN500T+HV               =       G1N500L +      GHO                                    :  0.100E+01*SUN;
+{  6488} GHN500T+HV               =       G1H501A +      GNO2                                   :  0.100E+01*SUN;
+{  6489} G1H5019                     =       GD02000 +      GND3000 +      GHO                     : ARR( 0.200E+15,  4945., 0.0);
+{  6490} G1H501A +OXYGEN             =       GHN502Y +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{  6491} G1H501A                     =       GHK5008 +      GNO2                                   : ARR( 0.800E+11,  4116., 0.0);
+{  6492} GNN500L +GHO                =       GNN500M +      GHO2                                   : ARR( 0.221E-11,     0., 0.0);
+{  6493} GNN500L +GHO                =       G2N501w                                               : ARR( 0.303E-12,     0., 0.0);
+{  6494} GNN500L +GHO                =       G1N500L                                               : ARR( 0.225E-17,    85., 2.0);
+{  6495} GNN500L+HV               =       G1N500Y +      GNO2                                   :  0.100E+01*SUN;
+{  6496} GNN500L+HV               =       G1N5022 +      GNO2                                   :  0.100E+01*SUN;
+{  6497} G2N501w +GNO                =       G1N5023 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  6498} G2N501w +GNO                =       GNN501e                                               : ARR( 0.182E-12,  -360., 0.0);
+{  6499} G2N501w +GHO2               =       GHN502Z                                               : ARR( 0.242E-12, -1250., 0.0);
+{  6500} G2N501w +GNO3               =       G1N5023 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  6501} G2N501w +MEPERO             =  0.340G1N5023 + 0.330GNN501f + 0.330GNN501g                 : ARR( 0.565E-13,  -845., 0.0);
+{  6502} G2N501w +PERO1              =  0.460G1N5023 + 0.270GNN501f + 0.270GNN501g                 : ARR( 0.434E-13,  -900., 0.0);
+{  6503} G2N501w +PERO2              =  0.400G1N5023 + 0.300GNN501f + 0.300GNN501g                 : ARR( 0.162E-13, -1400., 0.0);
+{  6504} G2N501w +PERO3              =  0.460G1N5023 + 0.270GNN501f + 0.270GNN501g                 : ARR( 0.488E-13, -1250., 0.0);
+{  6505} G2N501w +PERO5              =  0.460G1N5023 + 0.270GNN501f + 0.270GNN501g                 : ARR( 0.183E-11,   450., 0.0);
+{  6506} G2N501w +PERO6              =  0.300G1N5023 + 0.350GNN501f + 0.350GNN501g                 : ARR( 0.168E-13, -1300., 0.0);
+{  6507} G2N501w +PERO9              =  0.650G1N5023 + 0.350GNN501g                                : ARR( 0.100E-10,     0., 0.0);
+{  6508} G1N5022 +OXYGEN             =       GND500f +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{  6509} G1N5022                     =       GKO500B +      GNO2                                   : ARR( 0.800E+11,  4116., 0.0);
+{  6510} G1N5023                     =       GND3001 +      GND2000 +      GHO2                    : ARR( 0.200E+15,  3484., 0.0);
+{  6511} GNN500M +GHO                =       G2N501x                                               : ARR( 0.335E-13,     0., 0.0);
+{  6512} GNN500M +GHO                =       GNK500G +      GNO2                                   : ARR( 0.584E-13,     0., 0.0);
+{  6513} GNN500M +GHO                =       G2N501y                                               : ARR( 0.172E-12,     0., 0.0);
+{  6514} GNN500M +GHO                =       GND500M +      GNO2                                   : ARR( 0.146E-12,     0., 0.0);
+{  6515} GNN500M+HV               =       G1N500a +      GNO2                                   :  0.100E+01*SUN;
+{  6516} GNN500M+HV               =       G3N3001 +      G2N2000                                :  0.100E+01*SUN;
+{  6517} GNN500M+HV               =       G1N501E +      GNO2                                   :  0.100E+01*SUN;
+{  6518} G2N501x +GNO                =       G1N5024 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  6519} G2N501x +GNO                =       GNN501G                                               : ARR( 0.182E-12,  -360., 0.0);
+{  6520} G2N501x +GHO2               =       GHN502a                                               : ARR( 0.242E-12, -1250., 0.0);
+{  6521} G2N501x +GNO3               =       G1N5024 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  6522} G2N501x +MEPERO             =  0.480G1N5024 + 0.260GNN501P + 0.260GNN501h                 : ARR( 0.164E-12,  -795., 0.0);
+{  6523} G2N501x +PERO1              =  0.600G1N5024 + 0.200GNN501P + 0.200GNN501h                 : ARR( 0.126E-12,  -850., 0.0);
+{  6524} G2N501x +PERO2              =  0.560G1N5024 + 0.220GNN501P + 0.220GNN501h                 : ARR( 0.471E-13, -1350., 0.0);
+{  6525} G2N501x +PERO3              =  0.600G1N5024 + 0.200GNN501P + 0.200GNN501h                 : ARR( 0.142E-12, -1200., 0.0);
+{  6526} G2N501x +PERO5              =  0.600G1N5024 + 0.200GNN501P + 0.200GNN501h                 : ARR( 0.533E-11,   500., 0.0);
+{  6527} G2N501x +PERO6              =  0.460G1N5024 + 0.270GNN501P + 0.270GNN501h                 : ARR( 0.488E-13, -1250., 0.0);
+{  6528} G2N501x +PERO9              =  0.800G1N5024 + 0.200GNN501h                                : ARR( 0.100E-10,     0., 0.0);
+{  6529} G2N501y +GNO                =       G1N5025 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  6530} G2N501y +GNO                =       GNN501i                                               : ARR( 0.182E-12,  -360., 0.0);
+{  6531} G2N501y +GHO2               =       GHN502b                                               : ARR( 0.242E-12, -1250., 0.0);
+{  6532} G2N501y +GNO3               =       G1N5025 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  6533} G2N501y +MEPERO             =  0.340G1N5025 + 0.330GNN501j + 0.330GNN501k                 : ARR( 0.565E-13,  -845., 0.0);
+{  6534} G2N501y +PERO1              =  0.460G1N5025 + 0.270GNN501j + 0.270GNN501k                 : ARR( 0.434E-13,  -900., 0.0);
+{  6535} G2N501y +PERO2              =  0.400G1N5025 + 0.300GNN501j + 0.300GNN501k                 : ARR( 0.162E-13, -1400., 0.0);
+{  6536} G2N501y +PERO3              =  0.460G1N5025 + 0.270GNN501j + 0.270GNN501k                 : ARR( 0.488E-13, -1250., 0.0);
+{  6537} G2N501y +PERO5              =  0.460G1N5025 + 0.270GNN501j + 0.270GNN501k                 : ARR( 0.183E-11,   450., 0.0);
+{  6538} G2N501y +PERO6              =  0.300G1N5025 + 0.350GNN501j + 0.350GNN501k                 : ARR( 0.168E-13, -1300., 0.0);
+{  6539} G2N501y +PERO9              =  0.650G1N5025 + 0.350GNN501k                                : ARR( 0.100E-10,     0., 0.0);
+{  6540} G1N5024 +OXYGEN             =       GNN501h +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{  6541} G1N5024                     =       GND400B +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7323., 0.0);
+{  6542} G1N5025                     =       G3N3001 +      GND2000                                : ARR( 0.200E+15,  3067., 0.0);
+{  6543} GNN500N +GHO                =       G2N501z                                               : ARR( 0.350E-13,     0., 0.0);
+{  6544} GNN500N +GHO                =       GNN500W +      GNO2                                   : ARR( 0.999E-13,     0., 0.0);
+{  6545} GNN500N +GHO                =       G2N5021                                               : ARR( 0.590E-13,     0., 0.0);
+{  6546} GNN500N +GHO                =       GNN500P +      GNO2                                   : ARR( 0.246E-13,     0., 0.0);
+{  6547} GNN500N+HV               =       G1N500e +      GNO2                                   :  0.100E+01*SUN;
+{  6548} GNN500N+HV               =       G1N500M +      GNO2                                   :  0.100E+01*SUN;
+{  6549} GNN500N+HV               =       G1N5013 +      GNO2                                   :  0.100E+01*SUN;
+{  6550} G2N501z +GNO                =       G1N5026 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  6551} G2N501z +GNO                =       GNN501C                                               : ARR( 0.182E-12,  -360., 0.0);
+{  6552} G2N501z +GHO2               =       GHN502c                                               : ARR( 0.242E-12, -1250., 0.0);
+{  6553} G2N501z +GNO3               =       G1N5026 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  6554} G2N501z +MEPERO             =  0.480G1N5026 + 0.260GNN500j + 0.260GNN501l                 : ARR( 0.164E-12,  -795., 0.0);
+{  6555} G2N501z +PERO1              =  0.600G1N5026 + 0.200GNN500j + 0.200GNN501l                 : ARR( 0.126E-12,  -850., 0.0);
+{  6556} G2N501z +PERO2              =  0.560G1N5026 + 0.220GNN500j + 0.220GNN501l                 : ARR( 0.471E-13, -1350., 0.0);
+{  6557} G2N501z +PERO3              =  0.600G1N5026 + 0.200GNN500j + 0.200GNN501l                 : ARR( 0.142E-12, -1200., 0.0);
+{  6558} G2N501z +PERO5              =  0.600G1N5026 + 0.200GNN500j + 0.200GNN501l                 : ARR( 0.533E-11,   500., 0.0);
+{  6559} G2N501z +PERO6              =  0.460G1N5026 + 0.270GNN500j + 0.270GNN501l                 : ARR( 0.488E-13, -1250., 0.0);
+{  6560} G2N501z +PERO9              =  0.800G1N5026 + 0.200GNN501l                                : ARR( 0.100E-10,     0., 0.0);
+{  6561} G2N5021 +GNO                =       G1N5027 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  6562} G2N5021 +GNO                =       GNN501W                                               : ARR( 0.182E-12,  -360., 0.0);
+{  6563} G2N5021 +GHO2               =       GHN502d                                               : ARR( 0.242E-12, -1250., 0.0);
+{  6564} G2N5021 +GNO3               =       G1N5027 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  6565} G2N5021 +MEPERO             =  0.340G1N5027 + 0.330GNN501e + 0.330GNN501i                 : ARR( 0.565E-13,  -845., 0.0);
+{  6566} G2N5021 +PERO1              =  0.460G1N5027 + 0.270GNN501e + 0.270GNN501i                 : ARR( 0.434E-13,  -900., 0.0);
+{  6567} G2N5021 +PERO2              =  0.400G1N5027 + 0.300GNN501e + 0.300GNN501i                 : ARR( 0.162E-13, -1400., 0.0);
+{  6568} G2N5021 +PERO3              =  0.460G1N5027 + 0.270GNN501e + 0.270GNN501i                 : ARR( 0.488E-13, -1250., 0.0);
+{  6569} G2N5021 +PERO5              =  0.460G1N5027 + 0.270GNN501e + 0.270GNN501i                 : ARR( 0.183E-11,   450., 0.0);
+{  6570} G2N5021 +PERO6              =  0.300G1N5027 + 0.350GNN501e + 0.350GNN501i                 : ARR( 0.168E-13, -1300., 0.0);
+{  6571} G2N5021 +PERO9              =  0.650G1N5027 + 0.350GNN501i                                : ARR( 0.100E-10,     0., 0.0);
+{  6572} G1N5026 +OXYGEN             =       GNN501l +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{  6573} G1N5026                     =       GNN500T +      GNO2                                   : ARR( 0.800E+11,  4743., 0.0);
+{  6574} G1N5026                     =       GNN4001 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7547., 0.0);
+{  6575} G1N5027                     =       GD02000 +      GNN3005 +      GNO2                    : ARR( 0.200E+15,  6710., 0.0);
+{  6576} G1N5027                     =       GND3001 +      GND2000 +      GNO2                    : ARR( 0.200E+15,  6323., 0.0);
+{  6577} GHN500U +GHO                =       GNN500P +      GHO                                    : ARR( 0.856E-11,     0., 0.0);
+{  6578} GHN500U +GHO                =       G2N500M                                               : ARR( 0.197E-11,  -190., 0.0);
+{  6579} GHN500U+HV               =       G1H500B +      GNO2                                   :  0.100E+01*SUN;
+{  6580} GHN500U+HV               =       G1N500M +      GHO                                    :  0.100E+01*SUN;
+{  6581} GHN500U+HV               =       G1H501B +      GNO2                                   :  0.100E+01*SUN;
+{  6582} G1H501B +OXYGEN             =       GHN501q +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{  6583} G1H501B                     =       GHK5009 +      GNO2                                   : ARR( 0.800E+11,  4116., 0.0);
+{  6584} G1H501B                     =       GND4000 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  6008., 0.0);
+{  6585} GNN500O +GHO                =       G2N5022                                               : ARR( 0.303E-12,     0., 0.0);
+{  6586} GNN500O +GHO                =       GNN500P +      GHO2                                   : ARR( 0.221E-11,     0., 0.0);
+{  6587} GNN500O +GHO                =       G1N500M                                               : ARR( 0.225E-17,    85., 2.0);
+{  6588} GNN500O+HV               =       G1N500h +      GNO2                                   :  0.100E+01*SUN;
+{  6589} GNN500O+HV               =       G1N5028 +      GNO2                                   :  0.100E+01*SUN;
+{  6590} G2N5022 +GNO                =       G1N5029 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  6591} G2N5022 +GNO                =       GNN501X                                               : ARR( 0.182E-12,  -360., 0.0);
+{  6592} G2N5022 +GHO2               =       GHN502e                                               : ARR( 0.242E-12, -1250., 0.0);
+{  6593} G2N5022 +GNO3               =       G1N5029 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  6594} G2N5022 +MEPERO             =  0.340G1N5029 + 0.330GNN501f + 0.330GNN501j                 : ARR( 0.565E-13,  -845., 0.0);
+{  6595} G2N5022 +PERO1              =  0.460G1N5029 + 0.270GNN501f + 0.270GNN501j                 : ARR( 0.434E-13,  -900., 0.0);
+{  6596} G2N5022 +PERO2              =  0.400G1N5029 + 0.300GNN501f + 0.300GNN501j                 : ARR( 0.162E-13, -1400., 0.0);
+{  6597} G2N5022 +PERO3              =  0.460G1N5029 + 0.270GNN501f + 0.270GNN501j                 : ARR( 0.488E-13, -1250., 0.0);
+{  6598} G2N5022 +PERO5              =  0.460G1N5029 + 0.270GNN501f + 0.270GNN501j                 : ARR( 0.183E-11,   450., 0.0);
+{  6599} G2N5022 +PERO6              =  0.300G1N5029 + 0.350GNN501f + 0.350GNN501j                 : ARR( 0.168E-13, -1300., 0.0);
+{  6600} G2N5022 +PERO9              =  0.650G1N5029 + 0.350GNN501j                                : ARR( 0.100E-10,     0., 0.0);
+{  6601} G1N5028                     =       GND4000 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4799., 0.0);
+{  6602} G1N5029                     =       GND3001 +      GND2000 +      GHO2                    : ARR( 0.200E+15,  3575., 0.0);
+{  6603} GNN500P +GHO                =       G2N5023                                               : ARR( 0.335E-13,     0., 0.0);
+{  6604} GNN500P +GHO                =       GNK500I +      GNO2                                   : ARR( 0.304E-12,     0., 0.0);
+{  6605} GNN500P +GHO                =       G2N5024                                               : ARR( 0.172E-12,     0., 0.0);
+{  6606} GNN500P +GHO                =       GND500K +      GNO2                                   : ARR( 0.280E-13,     0., 0.0);
+{  6607} GNN500P+HV               =       G1N500j +      GNO2                                   :  0.100E+01*SUN;
+{  6608} GNN500P+HV               =       G3N4002 +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{  6609} GNN500P+HV               =       G2D2000 +      GNK3000 +      GNO2                    :  0.100E+01*SUN;
+{  6610} GNN500P+HV               =       G1N5015 +      GNO2                                   :  0.100E+01*SUN;
+{  6611} G2N5023 +GNO                =       G1N502A +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  6612} G2N5023 +GNO                =       GNN501D                                               : ARR( 0.182E-12,  -360., 0.0);
+{  6613} G2N5023 +GHO2               =       GHN502f                                               : ARR( 0.242E-12, -1250., 0.0);
+{  6614} G2N5023 +GNO3               =       G1N502A +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  6615} G2N5023 +MEPERO             =  0.480G1N502A + 0.260GNN500T + 0.260GNN501m                 : ARR( 0.164E-12,  -795., 0.0);
+{  6616} G2N5023 +PERO1              =  0.600G1N502A + 0.200GNN500T + 0.200GNN501m                 : ARR( 0.126E-12,  -850., 0.0);
+{  6617} G2N5023 +PERO2              =  0.560G1N502A + 0.220GNN500T + 0.220GNN501m                 : ARR( 0.471E-13, -1350., 0.0);
+{  6618} G2N5023 +PERO3              =  0.600G1N502A + 0.200GNN500T + 0.200GNN501m                 : ARR( 0.142E-12, -1200., 0.0);
+{  6619} G2N5023 +PERO5              =  0.600G1N502A + 0.200GNN500T + 0.200GNN501m                 : ARR( 0.533E-11,   500., 0.0);
+{  6620} G2N5023 +PERO6              =  0.460G1N502A + 0.270GNN500T + 0.270GNN501m                 : ARR( 0.488E-13, -1250., 0.0);
+{  6621} G2N5023 +PERO9              =  0.800G1N502A + 0.200GNN501m                                : ARR( 0.100E-10,     0., 0.0);
+{  6622} G2N5024 +GNO                =       G1N502B +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  6623} G2N5024 +GNO                =       GNN501Y                                               : ARR( 0.182E-12,  -360., 0.0);
+{  6624} G2N5024 +GHO2               =       GHN502g                                               : ARR( 0.242E-12, -1250., 0.0);
+{  6625} G2N5024 +GNO3               =       G1N502B +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  6626} G2N5024 +MEPERO             =  0.340G1N502B + 0.330GNN501g + 0.330GNN501k                 : ARR( 0.565E-13,  -845., 0.0);
+{  6627} G2N5024 +PERO1              =  0.460G1N502B + 0.270GNN501g + 0.270GNN501k                 : ARR( 0.434E-13,  -900., 0.0);
+{  6628} G2N5024 +PERO2              =  0.400G1N502B + 0.300GNN501g + 0.300GNN501k                 : ARR( 0.162E-13, -1400., 0.0);
+{  6629} G2N5024 +PERO3              =  0.460G1N502B + 0.270GNN501g + 0.270GNN501k                 : ARR( 0.488E-13, -1250., 0.0);
+{  6630} G2N5024 +PERO5              =  0.460G1N502B + 0.270GNN501g + 0.270GNN501k                 : ARR( 0.183E-11,   450., 0.0);
+{  6631} G2N5024 +PERO6              =  0.300G1N502B + 0.350GNN501g + 0.350GNN501k                 : ARR( 0.168E-13, -1300., 0.0);
+{  6632} G2N5024 +PERO9              =  0.650G1N502B + 0.350GNN501k                                : ARR( 0.100E-10,     0., 0.0);
+{  6633} G1N502A +OXYGEN             =       GNN501m +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{  6634} G1N502A                     =       GND4004 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7175., 0.0);
+{  6635} G1N502B                     =       GND3001 +      G3N2000                                : ARR( 0.200E+15,  2890., 0.0);
+{  6636} GNN500Q +GHO                =       GNN501D +      GHO2                                   : ARR( 0.213E-11,     0., 0.0);
+{  6637} GNN500Q +GHO                =       G2N5025                                               : ARR( 0.292E-12,     0., 0.0);
+{  6638} GNN500Q +GHO                =       G1N501b                                               : ARR( 0.217E-17,    85., 2.0);
+{  6639} GNN500Q+HV               =       G1N502C +      GNO2                                   :  0.100E+01*SUN;
+{  6640} GNN500Q+HV               =       G1N500t +      GNO2                                   :  0.100E+01*SUN;
+{  6641} GNN500Q+HV               =       G1N500N +      GNO2                                   :  0.100E+01*SUN;
+{  6642} G2N5025 +GNO                =       G1N502D +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  6643} G2N5025 +GNO                =       GNN501c                                               : ARR( 0.182E-12,  -360., 0.0);
+{  6644} G2N5025 +GHO2               =       GHN502h                                               : ARR( 0.242E-12, -1250., 0.0);
+{  6645} G2N5025 +GNO3               =       G1N502D +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  6646} G2N5025 +MEPERO             =  0.340G1N502D + 0.330GNN501n + 0.330GNN501o                 : ARR( 0.565E-13,  -845., 0.0);
+{  6647} G2N5025 +PERO1              =  0.460G1N502D + 0.270GNN501n + 0.270GNN501o                 : ARR( 0.434E-13,  -900., 0.0);
+{  6648} G2N5025 +PERO2              =  0.400G1N502D + 0.300GNN501n + 0.300GNN501o                 : ARR( 0.162E-13, -1400., 0.0);
+{  6649} G2N5025 +PERO3              =  0.460G1N502D + 0.270GNN501n + 0.270GNN501o                 : ARR( 0.488E-13, -1250., 0.0);
+{  6650} G2N5025 +PERO5              =  0.460G1N502D + 0.270GNN501n + 0.270GNN501o                 : ARR( 0.183E-11,   450., 0.0);
+{  6651} G2N5025 +PERO6              =  0.300G1N502D + 0.350GNN501n + 0.350GNN501o                 : ARR( 0.168E-13, -1300., 0.0);
+{  6652} G2N5025 +PERO9              =  0.650G1N502D + 0.350GNN501o                                : ARR( 0.100E-10,     0., 0.0);
+{  6653} G1N502C                     =       GNN4001 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4799., 0.0);
+{  6654} G1N502D                     =       GNN3005 +      GND2000 +      GHO2                    : ARR( 0.200E+15,  3575., 0.0);
+{  6655} GHN500W +GHO                =       GHN502f +      GHO2                                   : ARR( 0.220E-11,     0., 0.0);
+{  6656} GHN500W +GHO                =       GNN500S +      GHO                                    : ARR( 0.343E-11,     0., 0.0);
+{  6657} GHN500W +GHO                =       G2N500N                                               : ARR( 0.203E-11,  -190., 0.0);
+{  6658} GHN500W+HV               =       G1H501C +      GNO2                                   :  0.100E+01*SUN;
+{  6659} GHN500W+HV               =       G1H500K +      GNO2                                   :  0.100E+01*SUN;
+{  6660} GHN500W+HV               =       G1N500N +      GHO                                    :  0.100E+01*SUN;
+{  6661} G1H501C                     =       GHN400G +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4799., 0.0);
+{  6662} GNN500R +GHO                =       GNN500S +      GHO2                                   : ARR( 0.918E-12,     0., 0.0);
+{  6663} GNN500R +GHO                =       G2N5026                                               : ARR( 0.323E-12,     0., 0.0);
+{  6664} GNN500R +GHO                =       GNN500T +      GHO2                                   : ARR( 0.235E-11,     0., 0.0);
+{  6665} GNN500R+HV               =       G1N500o +      GNO2                                   :  0.100E+01*SUN;
+{  6666} GNN500R+HV               =       G1N502E +      GNO2                                   :  0.100E+01*SUN;
+{  6667} G2N5026 +GNO                =       G1N502F +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  6668} G2N5026 +GNO                =       GNN501a                                               : ARR( 0.182E-12,  -360., 0.0);
+{  6669} G2N5026 +GHO2               =       GHN502i                                               : ARR( 0.242E-12, -1250., 0.0);
+{  6670} G2N5026 +GNO3               =       G1N502F +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  6671} G2N5026 +MEPERO             =  0.340G1N502F + 0.330GNN501p + 0.330GNN501q                 : ARR( 0.565E-13,  -845., 0.0);
+{  6672} G2N5026 +PERO1              =  0.460G1N502F + 0.270GNN501p + 0.270GNN501q                 : ARR( 0.434E-13,  -900., 0.0);
+{  6673} G2N5026 +PERO2              =  0.400G1N502F + 0.300GNN501p + 0.300GNN501q                 : ARR( 0.162E-13, -1400., 0.0);
+{  6674} G2N5026 +PERO3              =  0.460G1N502F + 0.270GNN501p + 0.270GNN501q                 : ARR( 0.488E-13, -1250., 0.0);
+{  6675} G2N5026 +PERO5              =  0.460G1N502F + 0.270GNN501p + 0.270GNN501q                 : ARR( 0.183E-11,   450., 0.0);
+{  6676} G2N5026 +PERO6              =  0.300G1N502F + 0.350GNN501p + 0.350GNN501q                 : ARR( 0.168E-13, -1300., 0.0);
+{  6677} G2N5026 +PERO9              =  0.650G1N502F + 0.350GNN501q                                : ARR( 0.100E-10,     0., 0.0);
+{  6678} G1N502E                     =       GND4002 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4799., 0.0);
+{  6679} G1N502F                     =       GND3004 +      GND2000 +      GHO2                    : ARR( 0.200E+15,  3575., 0.0);
+{  6680} GNN500S +GHO                =       GNN501m +      GHO2                                   : ARR( 0.224E-11,     0., 0.0);
+{  6681} GNN500S +GHO                =       G3N500A                                               : ARR( 0.452E-11,     0., 0.0);
+{  6682} GNN500S +GNO3               =       G3N500A +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{  6683} GNN500S+HV               =       G1N502G +      GNO2                                   :  0.100E+01*SUN;
+{  6684} GNN500S+HV               =       G1N502H +      GNO2                                   :  0.100E+01*SUN;
+{  6685} GNN500S+HV               =       GND4003 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{  6686} GNN500S+HV               =       GNK3000 +      GND2000                                :  0.100E+01*SUN;
+{  6687} G3N500A +GHO2               =  0.800GGN500E + 0.200GAN500G + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  6688} G3N500A +GNO                =       GND4003 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{  6689} G3N500A +GNO2               =       GPN500G                                               : ARR( 0.330E-08,     0.,-1.0);
+{  6690} G3N500A +GNO3               =       GND4003 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{  6691} G3N500A +MEPERO             =  0.685GND4003 + 0.315GAN500G + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  6692} G3N500A +PERO1              =  0.800GND4003 + 0.200GAN500G + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  6693} G3N500A +PERO2              =  0.750GND4003 + 0.250GAN500G + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  6694} G3N500A +PERO3              =  0.800GND4003 + 0.200GAN500G + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  6695} G3N500A +PERO5              =  0.650GND4003 + 0.350GAN500G + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  6696} G3N500A +PERO6              =  0.650GND4003 + 0.350GAN500G + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  6697} G3N500A +PERO9              =       GND4003 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{  6698} G1N502G                     =       GND400D +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4799., 0.0);
+{  6699} G1N502H                     =       GND4003 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5437., 0.0);
+{  6700} GNN500T +GHO                =       GNN501m +      GHO2                                   : ARR( 0.819E-12,     0., 0.0);
+{  6701} GNN500T +GHO                =       GNK500Q +      GNO2                                   : ARR( 0.380E-12,     0., 0.0);
+{  6702} GNN500T +GHO                =       G2N5027                                               : ARR( 0.176E-12,     0., 0.0);
+{  6703} GNN500T +GHO                =       G1N502A                                               : ARR( 0.214E-17,    85., 2.0);
+{  6704} GNN500T+HV               =       G1N500q +      GNO2                                   :  0.100E+01*SUN;
+{  6705} GNN500T+HV               =       G3N4003 +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{  6706} GNN500T+HV               =       GND2000 +      GNK3000                                :  0.100E+01*SUN;
+{  6707} GNN500T+HV               =       G1N501I +      GNO2                                   :  0.100E+01*SUN;
+{  6708} G2N5027 +GNO                =       G1N502I +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  6709} G2N5027 +GNO                =       GNN501b                                               : ARR( 0.182E-12,  -360., 0.0);
+{  6710} G2N5027 +GHO2               =       GHN502j                                               : ARR( 0.242E-12, -1250., 0.0);
+{  6711} G2N5027 +GNO3               =       G1N502I +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  6712} G2N5027 +MEPERO             =  0.340G1N502I + 0.330GNN501r + 0.330GNN501s                 : ARR( 0.565E-13,  -845., 0.0);
+{  6713} G2N5027 +PERO1              =  0.460G1N502I + 0.270GNN501r + 0.270GNN501s                 : ARR( 0.434E-13,  -900., 0.0);
+{  6714} G2N5027 +PERO2              =  0.400G1N502I + 0.300GNN501r + 0.300GNN501s                 : ARR( 0.162E-13, -1400., 0.0);
+{  6715} G2N5027 +PERO3              =  0.460G1N502I + 0.270GNN501r + 0.270GNN501s                 : ARR( 0.488E-13, -1250., 0.0);
+{  6716} G2N5027 +PERO5              =  0.460G1N502I + 0.270GNN501r + 0.270GNN501s                 : ARR( 0.183E-11,   450., 0.0);
+{  6717} G2N5027 +PERO6              =  0.300G1N502I + 0.350GNN501r + 0.350GNN501s                 : ARR( 0.168E-13, -1300., 0.0);
+{  6718} G2N5027 +PERO9              =  0.650G1N502I + 0.350GNN501s                                : ARR( 0.100E-10,     0., 0.0);
+{  6719} G1N502I                     =       GND3004 +      G3N2000                                : ARR( 0.200E+15,  2890., 0.0);
+{  6720} GND5009 +GHO                =       G2N5028                                               : ARR( 0.899E-12,     0., 0.0);
+{  6721} GND5009 +GHO                =       G2N5029                                               : ARR( 0.864E-12,     0., 0.0);
+{  6722} GND5009 +GHO                =       G3N4000 +      GCO                                    : ARR( 0.127E-10,     0., 0.0);
+{  6723} GND5009 +GNO3               =       G3N4000 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{  6724} GND5009+HV               =       G1D500L +      GNO2                                   :  0.100E+01*SUN;
+{  6725} GND5009+HV               =       G3N4000 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{  6726} GND5009+HV               =       GND4001 +      GCO                                    :  0.100E+01*SUN;
+{  6727} GND5009+HV               =       GN03000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{  6728} G2N5028 +GNO                =       G1N502J +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  6729} G2N5028 +GNO                =       GNN501t                                               : ARR( 0.182E-12,  -360., 0.0);
+{  6730} G2N5028 +GHO2               =       GHN502k                                               : ARR( 0.242E-12, -1250., 0.0);
+{  6731} G2N5028 +GNO3               =       G1N502J +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  6732} G2N5028 +MEPERO             =  0.340G1N502J + 0.330GND500A + 0.330GND500g                 : ARR( 0.565E-13,  -845., 0.0);
+{  6733} G2N5028 +PERO1              =  0.460G1N502J + 0.270GND500A + 0.270GND500g                 : ARR( 0.434E-13,  -900., 0.0);
+{  6734} G2N5028 +PERO2              =  0.400G1N502J + 0.300GND500A + 0.300GND500g                 : ARR( 0.162E-13, -1400., 0.0);
+{  6735} G2N5028 +PERO3              =  0.460G1N502J + 0.270GND500A + 0.270GND500g                 : ARR( 0.488E-13, -1250., 0.0);
+{  6736} G2N5028 +PERO5              =  0.460G1N502J + 0.270GND500A + 0.270GND500g                 : ARR( 0.183E-11,   450., 0.0);
+{  6737} G2N5028 +PERO6              =  0.300G1N502J + 0.350GND500A + 0.350GND500g                 : ARR( 0.168E-13, -1300., 0.0);
+{  6738} G2N5028 +PERO9              =  0.650G1N502J + 0.350GND500g                                : ARR( 0.100E-10,     0., 0.0);
+{  6739} G2N5029 +GNO                =       G1N502K +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  6740} G2N5029 +GNO                =       GNN501u                                               : ARR( 0.182E-12,  -360., 0.0);
+{  6741} G2N5029 +GHO2               =       GHN502l                                               : ARR( 0.242E-12, -1250., 0.0);
+{  6742} G2N5029 +GNO3               =       G1N502K +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  6743} G2N5029 +MEPERO             =  0.340G1N502K + 0.330GND500h + 0.330GND500i                 : ARR( 0.565E-13,  -845., 0.0);
+{  6744} G2N5029 +PERO1              =  0.460G1N502K + 0.270GND500h + 0.270GND500i                 : ARR( 0.434E-13,  -900., 0.0);
+{  6745} G2N5029 +PERO2              =  0.400G1N502K + 0.300GND500h + 0.300GND500i                 : ARR( 0.162E-13, -1400., 0.0);
+{  6746} G2N5029 +PERO3              =  0.460G1N502K + 0.270GND500h + 0.270GND500i                 : ARR( 0.488E-13, -1250., 0.0);
+{  6747} G2N5029 +PERO5              =  0.460G1N502K + 0.270GND500h + 0.270GND500i                 : ARR( 0.183E-11,   450., 0.0);
+{  6748} G2N5029 +PERO6              =  0.300G1N502K + 0.350GND500h + 0.350GND500i                 : ARR( 0.168E-13, -1300., 0.0);
+{  6749} G2N5029 +PERO9              =  0.650G1N502K + 0.350GND500i                                : ARR( 0.100E-10,     0., 0.0);
+{  6750} G1D500L +OXYGEN             =       GDD5004 +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{  6751} G1N502J                     =       G3N4001 +      GCO                                    : ARR( 0.800E+11,  4780., 0.0);
+{  6752} G1N502J                     =       GND2000 +      G2D3002                                : ARR( 0.200E+15,  6866., 0.0);
+{  6753} G1N502K                     =       GND3000 +      G3D2000                                : ARR( 0.200E+15,  2978., 0.0);
+{  6754} G2D3002 +GNO                =       G1D3002 +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{  6755} G2D3002 +GNO                =       GND3003                                               : ARR( 0.622E-13,  -360., 0.0);
+{  6756} G2D3002 +GHO2               =       GHD3001                                               : ARR( 0.179E-12, -1250., 0.0);
+{  6757} G2D3002 +GNO3               =       G1D3002 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  6758} G2D3002 +MEPERO             =  0.480G1D3002 + 0.260GDK3001 + 0.260GDD3002                 : ARR( 0.164E-12,  -795., 0.0);
+{  6759} G2D3002 +PERO1              =  0.600G1D3002 + 0.200GDK3001 + 0.200GDD3002                 : ARR( 0.126E-12,  -850., 0.0);
+{  6760} G2D3002 +PERO2              =  0.560G1D3002 + 0.220GDK3001 + 0.220GDD3002                 : ARR( 0.471E-13, -1350., 0.0);
+{  6761} G2D3002 +PERO3              =  0.600G1D3002 + 0.200GDK3001 + 0.200GDD3002                 : ARR( 0.142E-12, -1200., 0.0);
+{  6762} G2D3002 +PERO5              =  0.600G1D3002 + 0.200GDK3001 + 0.200GDD3002                 : ARR( 0.533E-11,   500., 0.0);
+{  6763} G2D3002 +PERO6              =  0.460G1D3002 + 0.270GDK3001 + 0.270GDD3002                 : ARR( 0.488E-13, -1250., 0.0);
+{  6764} G2D3002 +PERO9              =  0.800G1D3002 + 0.200GDD3002                                : ARR( 0.100E-10,     0., 0.0);
+{  6765} G1D3002                     =       G3D2000 +      GCH2O                                  : ARR( 0.200E+15,  3864., 0.0);
+{  6766} GNN500U +GHO                =       G2N502A                                               : ARR( 0.102E-12,     0., 0.0);
+{  6767} GNN500U +GHO                =       GNK500G +      GNO2                                   : ARR( 0.718E-13,     0., 0.0);
+{  6768} GNN500U +GHO                =       G2N502B                                               : ARR( 0.565E-13,     0., 0.0);
+{  6769} GNN500U +GHO                =       GND500Q +      GNO2                                   : ARR( 0.460E-13,     0., 0.0);
+{  6770} GNN500U+HV               =       G3K2000 +      GND3000 +      GNO2                    :  0.100E+01*SUN;
+{  6771} GNN500U+HV               =       GNK3000 +      G2D2000 +      GNO2                    :  0.100E+01*SUN;
+{  6772} GNN500U+HV               =       G1N500P +      GNO2                                   :  0.100E+01*SUN;
+{  6773} GNN500U+HV               =       G1N501O +      GNO2                                   :  0.100E+01*SUN;
+{  6774} G2N502A +GNO                =       G1N502L +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  6775} G2N502A +GNO                =       GNN501J                                               : ARR( 0.182E-12,  -360., 0.0);
+{  6776} G2N502A +GHO2               =       GHN502E                                               : ARR( 0.242E-12, -1250., 0.0);
+{  6777} G2N502A +GNO3               =       G1N502L +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  6778} G2N502A +MEPERO             =  0.480G1N502L + 0.260GNN501Q + 0.260GNN501u                 : ARR( 0.164E-12,  -795., 0.0);
+{  6779} G2N502A +PERO1              =  0.600G1N502L + 0.200GNN501Q + 0.200GNN501u                 : ARR( 0.126E-12,  -850., 0.0);
+{  6780} G2N502A +PERO2              =  0.560G1N502L + 0.220GNN501Q + 0.220GNN501u                 : ARR( 0.471E-13, -1350., 0.0);
+{  6781} G2N502A +PERO3              =  0.600G1N502L + 0.200GNN501Q + 0.200GNN501u                 : ARR( 0.142E-12, -1200., 0.0);
+{  6782} G2N502A +PERO5              =  0.600G1N502L + 0.200GNN501Q + 0.200GNN501u                 : ARR( 0.533E-11,   500., 0.0);
+{  6783} G2N502A +PERO6              =  0.460G1N502L + 0.270GNN501Q + 0.270GNN501u                 : ARR( 0.488E-13, -1250., 0.0);
+{  6784} G2N502A +PERO9              =  0.800G1N502L + 0.200GNN501u                                : ARR( 0.100E-10,     0., 0.0);
+{  6785} G2N502B +GNO                =       G1N502M +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  6786} G2N502B +GNO                =       GNN501v                                               : ARR( 0.182E-12,  -360., 0.0);
+{  6787} G2N502B +GHO2               =       GHN502m                                               : ARR( 0.242E-12, -1250., 0.0);
+{  6788} G2N502B +GNO3               =       G1N502M +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  6789} G2N502B +MEPERO             =  0.340G1N502M + 0.330GNN501w + 0.330GNN501x                 : ARR( 0.565E-13,  -845., 0.0);
+{  6790} G2N502B +PERO1              =  0.460G1N502M + 0.270GNN501w + 0.270GNN501x                 : ARR( 0.434E-13,  -900., 0.0);
+{  6791} G2N502B +PERO2              =  0.400G1N502M + 0.300GNN501w + 0.300GNN501x                 : ARR( 0.162E-13, -1400., 0.0);
+{  6792} G2N502B +PERO3              =  0.460G1N502M + 0.270GNN501w + 0.270GNN501x                 : ARR( 0.488E-13, -1250., 0.0);
+{  6793} G2N502B +PERO5              =  0.460G1N502M + 0.270GNN501w + 0.270GNN501x                 : ARR( 0.183E-11,   450., 0.0);
+{  6794} G2N502B +PERO6              =  0.300G1N502M + 0.350GNN501w + 0.350GNN501x                 : ARR( 0.168E-13, -1300., 0.0);
+{  6795} G2N502B +PERO9              =  0.650G1N502M + 0.350GNN501x                                : ARR( 0.100E-10,     0., 0.0);
+{  6796} G1N502L                     =       G3N4005 +      GCH2O                                  : ARR( 0.200E+15,  3640., 0.0);
+{  6797} G1N502M                     =       GDK3000 +      GND2000 +      GNO2                    : ARR( 0.200E+15,  6513., 0.0);
+{  6798} G3N4005 +GHO2               =  0.800GGN4006 + 0.200GAN4006 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  6799} G3N4005 +GNO                =       GND3000 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{  6800} G3N4005 +GNO2               =       GPN4006                                               : ARR( 0.330E-08,     0.,-1.0);
+{  6801} G3N4005 +GNO3               =       GND3000 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{  6802} G3N4005 +MEPERO             =  0.685GND3000 + 0.315GAN4006 + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  6803} G3N4005 +PERO1              =  0.800GND3000 + 0.200GAN4006 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  6804} G3N4005 +PERO2              =  0.750GND3000 + 0.250GAN4006 + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  6805} G3N4005 +PERO3              =  0.800GND3000 + 0.200GAN4006 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  6806} G3N4005 +PERO5              =  0.650GND3000 + 0.350GAN4006 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  6807} G3N4005 +PERO6              =  0.650GND3000 + 0.350GAN4006 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  6808} G3N4005 +PERO9              =       GND3000 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{  6809} GHN500X +GHO                =       GNK500G +      GHO                                    : ARR( 0.260E-10,     0., 0.0);
+{  6810} GHN500X +GHO                =       G2N500P                                               : ARR( 0.197E-11,  -190., 0.0);
+{  6811} GHN500X+HV               =       G3K2000 +      GND3000 +      GHO                     :  0.100E+01*SUN;
+{  6812} GHN500X+HV               =       G1N500P +      GHO                                    :  0.100E+01*SUN;
+{  6813} GHN500X+HV               =       G1H501D +      GNO2                                   :  0.100E+01*SUN;
+{  6814} G1H501D +OXYGEN             =       GHD500I +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{  6815} GNK500F +GHO                =       GNK500G +      GHO2                                   : ARR( 0.653E-11,     0., 0.0);
+{  6816} GNK500F +GHO                =       G2N502C                                               : ARR( 0.932E-12,     0., 0.0);
+{  6817} GNK500F+HV               =       G3K2000 +      GND3000 +      GHO2                    :  0.100E+01*SUN;
+{  6818} GNK500F+HV               =       G1K500W +      GNO2                                   :  0.100E+01*SUN;
+{  6819} G2N502C +GNO                =       G1N502N +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  6820} G2N502C +GNO                =       GNN501y                                               : ARR( 0.182E-12,  -360., 0.0);
+{  6821} G2N502C +GHO2               =       GHN502n                                               : ARR( 0.242E-12, -1250., 0.0);
+{  6822} G2N502C +GNO3               =       G1N502N +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  6823} G2N502C +MEPERO             =  0.340G1N502N + 0.330GNK500p + 0.330GNK500q                 : ARR( 0.565E-13,  -845., 0.0);
+{  6824} G2N502C +PERO1              =  0.460G1N502N + 0.270GNK500p + 0.270GNK500q                 : ARR( 0.434E-13,  -900., 0.0);
+{  6825} G2N502C +PERO2              =  0.400G1N502N + 0.300GNK500p + 0.300GNK500q                 : ARR( 0.162E-13, -1400., 0.0);
+{  6826} G2N502C +PERO3              =  0.460G1N502N + 0.270GNK500p + 0.270GNK500q                 : ARR( 0.488E-13, -1250., 0.0);
+{  6827} G2N502C +PERO5              =  0.460G1N502N + 0.270GNK500p + 0.270GNK500q                 : ARR( 0.183E-11,   450., 0.0);
+{  6828} G2N502C +PERO6              =  0.300G1N502N + 0.350GNK500p + 0.350GNK500q                 : ARR( 0.168E-13, -1300., 0.0);
+{  6829} G2N502C +PERO9              =  0.650G1N502N + 0.350GNK500q                                : ARR( 0.100E-10,     0., 0.0);
+{  6830} G1K500W +OXYGEN             =       GDK500H +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{  6831} G1N502N                     =       GDK3000 +      GND2000 +      GHO2                    : ARR( 0.200E+15,  3765., 0.0);
+{  6832} GNK500G +GHO                =       G2N502D                                               : ARR( 0.102E-12,     0., 0.0);
+{  6833} GNK500G +GHO                =       G2N502E                                               : ARR( 0.172E-12,     0., 0.0);
+{  6834} GNK500G +GHO                =       GDK500D +      GNO2                                   : ARR( 0.146E-12,     0., 0.0);
+{  6835} GNK500G+HV               =       G3K2000 +      G3N3000                                :  0.100E+01*SUN;
+{  6836} GNK500G+HV               =       G1K500M +      GNO2                                   :  0.100E+01*SUN;
+{  6837} G2N502D +GNO                =       G1N502O +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  6838} G2N502D +GNO                =       GNN501L                                               : ARR( 0.182E-12,  -360., 0.0);
+{  6839} G2N502D +GHO2               =       GHN502G                                               : ARR( 0.242E-12, -1250., 0.0);
+{  6840} G2N502D +GNO3               =       G1N502O +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  6841} G2N502D +MEPERO             =  0.480G1N502O + 0.260GNK500n + 0.260GND500i                 : ARR( 0.164E-12,  -795., 0.0);
+{  6842} G2N502D +PERO1              =  0.600G1N502O + 0.200GNK500n + 0.200GND500i                 : ARR( 0.126E-12,  -850., 0.0);
+{  6843} G2N502D +PERO2              =  0.560G1N502O + 0.220GNK500n + 0.220GND500i                 : ARR( 0.471E-13, -1350., 0.0);
+{  6844} G2N502D +PERO3              =  0.600G1N502O + 0.200GNK500n + 0.200GND500i                 : ARR( 0.142E-12, -1200., 0.0);
+{  6845} G2N502D +PERO5              =  0.600G1N502O + 0.200GNK500n + 0.200GND500i                 : ARR( 0.533E-11,   500., 0.0);
+{  6846} G2N502D +PERO6              =  0.460G1N502O + 0.270GNK500n + 0.270GND500i                 : ARR( 0.488E-13, -1250., 0.0);
+{  6847} G2N502D +PERO9              =  0.800G1N502O + 0.200GND500i                                : ARR( 0.100E-10,     0., 0.0);
+{  6848} G2N502E +GNO                =       G1N502P +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  6849} G2N502E +GNO                =       GNN501z                                               : ARR( 0.182E-12,  -360., 0.0);
+{  6850} G2N502E +GHO2               =       GHN502o                                               : ARR( 0.242E-12, -1250., 0.0);
+{  6851} G2N502E +GNO3               =       G1N502P +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  6852} G2N502E +MEPERO             =  0.340G1N502P + 0.330GNK500r + 0.330GNK500s                 : ARR( 0.565E-13,  -845., 0.0);
+{  6853} G2N502E +PERO1              =  0.460G1N502P + 0.270GNK500r + 0.270GNK500s                 : ARR( 0.434E-13,  -900., 0.0);
+{  6854} G2N502E +PERO2              =  0.400G1N502P + 0.300GNK500r + 0.300GNK500s                 : ARR( 0.162E-13, -1400., 0.0);
+{  6855} G2N502E +PERO3              =  0.460G1N502P + 0.270GNK500r + 0.270GNK500s                 : ARR( 0.488E-13, -1250., 0.0);
+{  6856} G2N502E +PERO5              =  0.460G1N502P + 0.270GNK500r + 0.270GNK500s                 : ARR( 0.183E-11,   450., 0.0);
+{  6857} G2N502E +PERO6              =  0.300G1N502P + 0.350GNK500r + 0.350GNK500s                 : ARR( 0.168E-13, -1300., 0.0);
+{  6858} G2N502E +PERO9              =  0.650G1N502P + 0.350GNK500s                                : ARR( 0.100E-10,     0., 0.0);
+{  6859} G1N502O                     =       G3N3000 +      GCH2O   +      GCO                     : ARR( 0.200E+15,  3897., 0.0);
+{  6860} G1N502P                     =       G3K2000 +      GND2000 +      GCO                     : ARR( 0.200E+15,  3324., 0.0);
+{  6861} GNN500W +GHO                =       G2N502F                                               : ARR( 0.105E-12,     0., 0.0);
+{  6862} GNN500W +GHO                =       G2N502G                                               : ARR( 0.177E-12,     0., 0.0);
+{  6863} GNN500W +GHO                =       GNK500I +      GNO2                                   : ARR( 0.766E-13,     0., 0.0);
+{  6864} GNN500W+HV               =       G3K2000 +      G2N3004                                :  0.100E+01*SUN;
+{  6865} GNN500W+HV               =       GK03000 +      GDD2000 + 2.000GNO2                    :  0.100E+01*SUN;
+{  6866} GNN500W+HV               =       G1N500Q +      GNO2                                   :  0.100E+01*SUN;
+{  6867} GNN500W+HV               =       G1N5017 +      GNO2                                   :  0.100E+01*SUN;
+{  6868} G2N502F +GNO                =       G1N502Q +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  6869} G2N502F +GNO                =       GNN501D                                               : ARR( 0.182E-12,  -360., 0.0);
+{  6870} G2N502F +GHO2               =       GHN502C                                               : ARR( 0.242E-12, -1250., 0.0);
+{  6871} G2N502F +GNO3               =       G1N502Q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  6872} G2N502F +MEPERO             =  0.480G1N502Q + 0.260GNN500l + 0.260GNN501t                 : ARR( 0.164E-12,  -795., 0.0);
+{  6873} G2N502F +PERO1              =  0.600G1N502Q + 0.200GNN500l + 0.200GNN501t                 : ARR( 0.126E-12,  -850., 0.0);
+{  6874} G2N502F +PERO2              =  0.560G1N502Q + 0.220GNN500l + 0.220GNN501t                 : ARR( 0.471E-13, -1350., 0.0);
+{  6875} G2N502F +PERO3              =  0.600G1N502Q + 0.200GNN500l + 0.200GNN501t                 : ARR( 0.142E-12, -1200., 0.0);
+{  6876} G2N502F +PERO5              =  0.600G1N502Q + 0.200GNN500l + 0.200GNN501t                 : ARR( 0.533E-11,   500., 0.0);
+{  6877} G2N502F +PERO6              =  0.460G1N502Q + 0.270GNN500l + 0.270GNN501t                 : ARR( 0.488E-13, -1250., 0.0);
+{  6878} G2N502F +PERO9              =  0.800G1N502Q + 0.200GNN501t                                : ARR( 0.100E-10,     0., 0.0);
+{  6879} G2N502G +GNO                =       G1N502R +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  6880} G2N502G +GNO                =       GNN501v                                               : ARR( 0.182E-12,  -360., 0.0);
+{  6881} G2N502G +GHO2               =       GHN502p                                               : ARR( 0.242E-12, -1250., 0.0);
+{  6882} G2N502G +GNO3               =       G1N502R +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  6883} G2N502G +MEPERO             =  0.340G1N502R + 0.330GNN501y + 0.330GNN501z                 : ARR( 0.565E-13,  -845., 0.0);
+{  6884} G2N502G +PERO1              =  0.460G1N502R + 0.270GNN501y + 0.270GNN501z                 : ARR( 0.434E-13,  -900., 0.0);
+{  6885} G2N502G +PERO2              =  0.400G1N502R + 0.300GNN501y + 0.300GNN501z                 : ARR( 0.162E-13, -1400., 0.0);
+{  6886} G2N502G +PERO3              =  0.460G1N502R + 0.270GNN501y + 0.270GNN501z                 : ARR( 0.488E-13, -1250., 0.0);
+{  6887} G2N502G +PERO5              =  0.460G1N502R + 0.270GNN501y + 0.270GNN501z                 : ARR( 0.183E-11,   450., 0.0);
+{  6888} G2N502G +PERO6              =  0.300G1N502R + 0.350GNN501y + 0.350GNN501z                 : ARR( 0.168E-13, -1300., 0.0);
+{  6889} G2N502G +PERO9              =  0.650G1N502R + 0.350GNN501z                                : ARR( 0.100E-10,     0., 0.0);
+{  6890} G1N502Q                     =       G3N4006 +      GCH2O                                  : ARR( 0.200E+15,  3576., 0.0);
+{  6891} G1N502R                     =       G3K2000 +      GNN3005                                : ARR( 0.200E+15,  2923., 0.0);
+{  6892} G3N4006 +GHO2               =  0.800GGN4007 + 0.200GAN4007 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  6893} G3N4006 +GNO                =       G2N3004 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{  6894} G3N4006 +GNO2               =       GPN4007                                               : ARR( 0.330E-08,     0.,-1.0);
+{  6895} G3N4006 +GNO3               =       G2N3004 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{  6896} G3N4006 +MEPERO             =  0.685G2N3004 + 0.315GAN4007 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  6897} G3N4006 +PERO1              =  0.800G2N3004 + 0.200GAN4007 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  6898} G3N4006 +PERO2              =  0.750G2N3004 + 0.250GAN4007 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  6899} G3N4006 +PERO3              =  0.800G2N3004 + 0.200GAN4007 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  6900} G3N4006 +PERO5              =  0.650G2N3004 + 0.350GAN4007 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  6901} G3N4006 +PERO6              =  0.650G2N3004 + 0.350GAN4007 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  6902} G3N4006 +PERO9              =       G2N3004 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{  6903} GHN500Y +GHO                =       GNK500I +      GHO                                    : ARR( 0.270E-10,     0., 0.0);
+{  6904} GHN500Y +GHO                =       G2N500Q                                               : ARR( 0.196E-11,  -190., 0.0);
+{  6905} GHN500Y+HV               =       G3K2000 +      G2H3001                                :  0.100E+01*SUN;
+{  6906} GHN500Y+HV               =       GK03000 +      GDD2000 +      GHO     +      GNO2     :  0.100E+01*SUN;
+{  6907} GHN500Y+HV               =       G1N500Q +      GHO                                    :  0.100E+01*SUN;
+{  6908} GHN500Y+HV               =       G1H501E +      GNO2                                   :  0.100E+01*SUN;
+{  6909} G1H501E +OXYGEN             =       GHD500J +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{  6910} G1H501E                     =       GDK4000 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5636., 0.0);
+{  6911} GNK500H +GHO                =       G2N502H                                               : ARR( 0.895E-12,     0., 0.0);
+{  6912} GNK500H +GHO                =       GNK500I +      GHO2                                   : ARR( 0.679E-11,     0., 0.0);
+{  6913} GNK500H+HV               =       G3K2000 +      G2N3003                                :  0.100E+01*SUN;
+{  6914} GNK500H+HV               =       GK03000 +      GND2000                                :  0.100E+01*SUN;
+{  6915} GNK500H+HV               =       G1K500X +      GNO2                                   :  0.100E+01*SUN;
+{  6916} G2N502H +GNO                =       G1N502S +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  6917} G2N502H +GNO                =       GNN501w                                               : ARR( 0.182E-12,  -360., 0.0);
+{  6918} G2N502H +GHO2               =       GHN502q                                               : ARR( 0.242E-12, -1250., 0.0);
+{  6919} G2N502H +GNO3               =       G1N502S +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  6920} G2N502H +MEPERO             =  0.340G1N502S + 0.330GNK500p + 0.330GNK500r                 : ARR( 0.565E-13,  -845., 0.0);
+{  6921} G2N502H +PERO1              =  0.460G1N502S + 0.270GNK500p + 0.270GNK500r                 : ARR( 0.434E-13,  -900., 0.0);
+{  6922} G2N502H +PERO2              =  0.400G1N502S + 0.300GNK500p + 0.300GNK500r                 : ARR( 0.162E-13, -1400., 0.0);
+{  6923} G2N502H +PERO3              =  0.460G1N502S + 0.270GNK500p + 0.270GNK500r                 : ARR( 0.488E-13, -1250., 0.0);
+{  6924} G2N502H +PERO5              =  0.460G1N502S + 0.270GNK500p + 0.270GNK500r                 : ARR( 0.183E-11,   450., 0.0);
+{  6925} G2N502H +PERO6              =  0.300G1N502S + 0.350GNK500p + 0.350GNK500r                 : ARR( 0.168E-13, -1300., 0.0);
+{  6926} G2N502H +PERO9              =  0.650G1N502S + 0.350GNK500r                                : ARR( 0.100E-10,     0., 0.0);
+{  6927} G1K500X                     =       GDK4000 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4427., 0.0);
+{  6928} G1N502S                     =       G3K2000 +      GND3002                                : ARR( 0.200E+15,  2923., 0.0);
+{  6929} GNK500I +GHO                =       G2N502I                                               : ARR( 0.107E-12,     0., 0.0);
+{  6930} GNK500I +GHO                =       G2N502J                                               : ARR( 0.549E-12,     0., 0.0);
+{  6931} GNK500I+HV               =       G3K2000 +      G2N3005                                :  0.100E+01*SUN;
+{  6932} GNK500I+HV               =       G3K4003 +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{  6933} GNK500I+HV               =       G1K500J +      GNO2                                   :  0.100E+01*SUN;
+{  6934} G2N502I +GNO                =       G1N502T +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  6935} G2N502I +GNO                =       GNN501I                                               : ARR( 0.182E-12,  -360., 0.0);
+{  6936} G2N502I +GHO2               =       GHN502D                                               : ARR( 0.242E-12, -1250., 0.0);
+{  6937} G2N502I +GNO3               =       G1N502T +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  6938} G2N502I +MEPERO             =  0.480G1N502T + 0.260GNK500Q + 0.260GND500g                 : ARR( 0.164E-12,  -795., 0.0);
+{  6939} G2N502I +PERO1              =  0.600G1N502T + 0.200GNK500Q + 0.200GND500g                 : ARR( 0.126E-12,  -850., 0.0);
+{  6940} G2N502I +PERO2              =  0.560G1N502T + 0.220GNK500Q + 0.220GND500g                 : ARR( 0.471E-13, -1350., 0.0);
+{  6941} G2N502I +PERO3              =  0.600G1N502T + 0.200GNK500Q + 0.200GND500g                 : ARR( 0.142E-12, -1200., 0.0);
+{  6942} G2N502I +PERO5              =  0.600G1N502T + 0.200GNK500Q + 0.200GND500g                 : ARR( 0.533E-11,   500., 0.0);
+{  6943} G2N502I +PERO6              =  0.460G1N502T + 0.270GNK500Q + 0.270GND500g                 : ARR( 0.488E-13, -1250., 0.0);
+{  6944} G2N502I +PERO9              =  0.800G1N502T + 0.200GND500g                                : ARR( 0.100E-10,     0., 0.0);
+{  6945} G2N502J +GNO                =       G1N502U +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  6946} G2N502J +GNO                =       GNN501x                                               : ARR( 0.182E-12,  -360., 0.0);
+{  6947} G2N502J +GHO2               =       GHN502r                                               : ARR( 0.242E-12, -1250., 0.0);
+{  6948} G2N502J +GNO3               =       G1N502U +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  6949} G2N502J +MEPERO             =  0.340G1N502U + 0.330GNK500q + 0.330GNK500s                 : ARR( 0.565E-13,  -845., 0.0);
+{  6950} G2N502J +PERO1              =  0.460G1N502U + 0.270GNK500q + 0.270GNK500s                 : ARR( 0.434E-13,  -900., 0.0);
+{  6951} G2N502J +PERO2              =  0.400G1N502U + 0.300GNK500q + 0.300GNK500s                 : ARR( 0.162E-13, -1400., 0.0);
+{  6952} G2N502J +PERO3              =  0.460G1N502U + 0.270GNK500q + 0.270GNK500s                 : ARR( 0.488E-13, -1250., 0.0);
+{  6953} G2N502J +PERO5              =  0.460G1N502U + 0.270GNK500q + 0.270GNK500s                 : ARR( 0.183E-11,   450., 0.0);
+{  6954} G2N502J +PERO6              =  0.300G1N502U + 0.350GNK500q + 0.350GNK500s                 : ARR( 0.168E-13, -1300., 0.0);
+{  6955} G2N502J +PERO9              =  0.650G1N502U + 0.350GNK500s                                : ARR( 0.100E-10,     0., 0.0);
+{  6956} G1N502T                     =       G3N4007 +      GCH2O                                  : ARR( 0.200E+15,  3552., 0.0);
+{  6957} G1N502U                     =       G3K2000 +      GND3003                                : ARR( 0.200E+15,  4513., 0.0);
+{  6958} G1N502U                     =       GDK3000 +      G3N2000                                : ARR( 0.200E+15,  4480., 0.0);
+{  6959} G3N4007 +GHO2               =  0.800GGN4008 + 0.200GAN4008 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  6960} G3N4007 +GNO                =       G2N3005 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{  6961} G3N4007 +GNO2               =       GPN4008                                               : ARR( 0.330E-08,     0.,-1.0);
+{  6962} G3N4007 +GNO3               =       G2N3005 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{  6963} G3N4007 +MEPERO             =  0.685G2N3005 + 0.315GAN4008 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  6964} G3N4007 +PERO1              =  0.800G2N3005 + 0.200GAN4008 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  6965} G3N4007 +PERO2              =  0.750G2N3005 + 0.250GAN4008 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  6966} G3N4007 +PERO3              =  0.800G2N3005 + 0.200GAN4008 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  6967} G3N4007 +PERO5              =  0.650G2N3005 + 0.350GAN4008 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  6968} G3N4007 +PERO6              =  0.650G2N3005 + 0.350GAN4008 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  6969} G3N4007 +PERO9              =       G2N3005 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{  6970} GGN4000 +GHO                =       G2G4001                                               : ARR( 0.285E-12,     0., 0.0);
+{  6971} GGN4000 +GHO                =       G2G4002                                               : ARR( 0.870E-12,     0., 0.0);
+{  6972} GGN4000 +GHO                =       G3N4000                                               : ARR( 0.192E-11,  -190., 0.0);
+{  6973} GGN4000+HV               =       G1G4001 +      GNO2                                   :  0.100E+01*SUN;
+{  6974} GGN4000+HV               =       G2N3000 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{  6975} G2G4001 +GNO                =       G1G4002 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  6976} G2G4001 +GNO                =       GGN4007                                               : ARR( 0.111E-12,  -360., 0.0);
+{  6977} G2G4001 +GHO2               =       GGH4002                                               : ARR( 0.214E-12, -1250., 0.0);
+{  6978} G2G4001 +GNO3               =       G1G4002 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  6979} G2G4001 +MEPERO             =  0.340G1G4002 + 0.330GGN4001 + 0.330GGN4008                 : ARR( 0.565E-13,  -845., 0.0);
+{  6980} G2G4001 +PERO1              =  0.460G1G4002 + 0.270GGN4001 + 0.270GGN4008                 : ARR( 0.434E-13,  -900., 0.0);
+{  6981} G2G4001 +PERO2              =  0.400G1G4002 + 0.300GGN4001 + 0.300GGN4008                 : ARR( 0.162E-13, -1400., 0.0);
+{  6982} G2G4001 +PERO3              =  0.460G1G4002 + 0.270GGN4001 + 0.270GGN4008                 : ARR( 0.488E-13, -1250., 0.0);
+{  6983} G2G4001 +PERO5              =  0.460G1G4002 + 0.270GGN4001 + 0.270GGN4008                 : ARR( 0.183E-11,   450., 0.0);
+{  6984} G2G4001 +PERO6              =  0.300G1G4002 + 0.350GGN4001 + 0.350GGN4008                 : ARR( 0.168E-13, -1300., 0.0);
+{  6985} G2G4001 +PERO9              =  0.650G1G4002 + 0.350GGN4008                                : ARR( 0.100E-10,     0., 0.0);
+{  6986} G2G4002 +GNO                =       G1G4003 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  6987} G2G4002 +GNO                =       GGN4006                                               : ARR( 0.111E-12,  -360., 0.0);
+{  6988} G2G4002 +GHO2               =       GGH4003                                               : ARR( 0.214E-12, -1250., 0.0);
+{  6989} G2G4002 +GNO3               =       G1G4003 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  6990} G2G4002 +MEPERO             =  0.340G1G4003 + 0.330GGN4009 + 0.330GGN400A                 : ARR( 0.565E-13,  -845., 0.0);
+{  6991} G2G4002 +PERO1              =  0.460G1G4003 + 0.270GGN4009 + 0.270GGN400A                 : ARR( 0.434E-13,  -900., 0.0);
+{  6992} G2G4002 +PERO2              =  0.400G1G4003 + 0.300GGN4009 + 0.300GGN400A                 : ARR( 0.162E-13, -1400., 0.0);
+{  6993} G2G4002 +PERO3              =  0.460G1G4003 + 0.270GGN4009 + 0.270GGN400A                 : ARR( 0.488E-13, -1250., 0.0);
+{  6994} G2G4002 +PERO5              =  0.460G1G4003 + 0.270GGN4009 + 0.270GGN400A                 : ARR( 0.183E-11,   450., 0.0);
+{  6995} G2G4002 +PERO6              =  0.300G1G4003 + 0.350GGN4009 + 0.350GGN400A                 : ARR( 0.168E-13, -1300., 0.0);
+{  6996} G2G4002 +PERO9              =  0.650G1G4003 + 0.350GGN400A                                : ARR( 0.100E-10,     0., 0.0);
+{  6997} G1G4001 +OXYGEN             =       GGD4000 +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{  6998} G1G4002                     =       GCH2O   +      GGD3000 +      GNO2                    : ARR( 0.200E+15,  8296., 0.0);
+{  6999} G1G4002                     =       GND2000 +      G2G2000                                : ARR( 0.200E+15,  7508., 0.0);
+{  7000} G1G4003                     =       GND3000 +      GCO     +      GHO2                    : ARR( 0.200E+15,  4949., 0.0);
+{  7001} GAN4000 +GHO                =       G2A4001                                               : ARR( 0.658E-12,     0., 0.0);
+{  7002} GAN4000 +GHO                =       G2A4002                                               : ARR( 0.292E-12,     0., 0.0);
+{  7003} GAN4000 +GHO                =       G2N3000 +      GCO2                                   : ARR( 0.537E-12,     0., 0.0);
+{  7004} GAN4000+HV               =       G1A4001 +      GNO2                                   :  0.100E+01*SUN;
+{  7005} G2A4001 +GNO                =       G1A4002 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  7006} G2A4001 +GNO                =       GAN4006                                               : ARR( 0.111E-12,  -360., 0.0);
+{  7007} G2A4001 +GHO2               =       GAH4002                                               : ARR( 0.214E-12, -1250., 0.0);
+{  7008} G2A4001 +GNO3               =       G1A4002 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  7009} G2A4001 +MEPERO             =  0.340G1A4002 + 0.330GAN4009 + 0.330GAN400A                 : ARR( 0.565E-13,  -845., 0.0);
+{  7010} G2A4001 +PERO1              =  0.460G1A4002 + 0.270GAN4009 + 0.270GAN400A                 : ARR( 0.434E-13,  -900., 0.0);
+{  7011} G2A4001 +PERO2              =  0.400G1A4002 + 0.300GAN4009 + 0.300GAN400A                 : ARR( 0.162E-13, -1400., 0.0);
+{  7012} G2A4001 +PERO3              =  0.460G1A4002 + 0.270GAN4009 + 0.270GAN400A                 : ARR( 0.488E-13, -1250., 0.0);
+{  7013} G2A4001 +PERO5              =  0.460G1A4002 + 0.270GAN4009 + 0.270GAN400A                 : ARR( 0.183E-11,   450., 0.0);
+{  7014} G2A4001 +PERO6              =  0.300G1A4002 + 0.350GAN4009 + 0.350GAN400A                 : ARR( 0.168E-13, -1300., 0.0);
+{  7015} G2A4001 +PERO9              =  0.650G1A4002 + 0.350GAN400A                                : ARR( 0.100E-10,     0., 0.0);
+{  7016} G2A4002 +GNO                =       G1A4003 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  7017} G2A4002 +GNO                =       GAN4007                                               : ARR( 0.111E-12,  -360., 0.0);
+{  7018} G2A4002 +GHO2               =       GAH4003                                               : ARR( 0.214E-12, -1250., 0.0);
+{  7019} G2A4002 +GNO3               =       G1A4003 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  7020} G2A4002 +MEPERO             =  0.340G1A4003 + 0.330GAN4001 + 0.330GAN4008                 : ARR( 0.565E-13,  -845., 0.0);
+{  7021} G2A4002 +PERO1              =  0.460G1A4003 + 0.270GAN4001 + 0.270GAN4008                 : ARR( 0.434E-13,  -900., 0.0);
+{  7022} G2A4002 +PERO2              =  0.400G1A4003 + 0.300GAN4001 + 0.300GAN4008                 : ARR( 0.162E-13, -1400., 0.0);
+{  7023} G2A4002 +PERO3              =  0.460G1A4003 + 0.270GAN4001 + 0.270GAN4008                 : ARR( 0.488E-13, -1250., 0.0);
+{  7024} G2A4002 +PERO5              =  0.460G1A4003 + 0.270GAN4001 + 0.270GAN4008                 : ARR( 0.183E-11,   450., 0.0);
+{  7025} G2A4002 +PERO6              =  0.300G1A4003 + 0.350GAN4001 + 0.350GAN4008                 : ARR( 0.168E-13, -1300., 0.0);
+{  7026} G2A4002 +PERO9              =  0.650G1A4003 + 0.350GAN4008                                : ARR( 0.100E-10,     0., 0.0);
+{  7027} G1A4001 +OXYGEN             =       GAD4000 +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{  7028} G1A4002                     =       GCO     +      GND3000 +      GHO                     : ARR( 0.200E+15,  4918., 0.0);
+{  7029} G1A4003                     =       G2A2000 +      GND2000                                : ARR( 0.200E+15,  7508., 0.0);
+{  7030} G1A4003                     =       GAD3000 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  8296., 0.0);
+{  7031} GPN4000                     =       G3N4000 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{  7032} GPN4000 +GHO                =       G2P4001                                               : ARR( 0.294E-12,     0., 0.0);
+{  7033} GPN4000 +GHO                =       G2P4002                                               : ARR( 0.896E-12,     0., 0.0);
+{  7034} GPN4000+HV               =       G1P4001 +      GNO2                                   :  0.100E+01*SUN;
+{  7035} GPN4000+HV               =       G3N4000 +      GNO2                                   :  0.100E+01*SUN;
+{  7036} G2P4001 +GNO                =       G1P4002 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  7037} G2P4001 +GNO                =       GPN4007                                               : ARR( 0.111E-12,  -360., 0.0);
+{  7038} G2P4001 +GHO2               =       GPH4002                                               : ARR( 0.214E-12, -1250., 0.0);
+{  7039} G2P4001 +GNO3               =       G1P4002 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  7040} G2P4001 +MEPERO             =  0.340G1P4002 + 0.330GPN4001 + 0.330GPN4008                 : ARR( 0.565E-13,  -845., 0.0);
+{  7041} G2P4001 +PERO1              =  0.460G1P4002 + 0.270GPN4001 + 0.270GPN4008                 : ARR( 0.434E-13,  -900., 0.0);
+{  7042} G2P4001 +PERO2              =  0.400G1P4002 + 0.300GPN4001 + 0.300GPN4008                 : ARR( 0.162E-13, -1400., 0.0);
+{  7043} G2P4001 +PERO3              =  0.460G1P4002 + 0.270GPN4001 + 0.270GPN4008                 : ARR( 0.488E-13, -1250., 0.0);
+{  7044} G2P4001 +PERO5              =  0.460G1P4002 + 0.270GPN4001 + 0.270GPN4008                 : ARR( 0.183E-11,   450., 0.0);
+{  7045} G2P4001 +PERO6              =  0.300G1P4002 + 0.350GPN4001 + 0.350GPN4008                 : ARR( 0.168E-13, -1300., 0.0);
+{  7046} G2P4001 +PERO9              =  0.650G1P4002 + 0.350GPN4008                                : ARR( 0.100E-10,     0., 0.0);
+{  7047} G2P4002 +GNO                =       G1P4003 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  7048} G2P4002 +GNO                =       GPN4006                                               : ARR( 0.111E-12,  -360., 0.0);
+{  7049} G2P4002 +GHO2               =       GPH4003                                               : ARR( 0.214E-12, -1250., 0.0);
+{  7050} G2P4002 +GNO3               =       G1P4003 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  7051} G2P4002 +MEPERO             =  0.340G1P4003 + 0.330GPN4009 + 0.330GPN400A                 : ARR( 0.565E-13,  -845., 0.0);
+{  7052} G2P4002 +PERO1              =  0.460G1P4003 + 0.270GPN4009 + 0.270GPN400A                 : ARR( 0.434E-13,  -900., 0.0);
+{  7053} G2P4002 +PERO2              =  0.400G1P4003 + 0.300GPN4009 + 0.300GPN400A                 : ARR( 0.162E-13, -1400., 0.0);
+{  7054} G2P4002 +PERO3              =  0.460G1P4003 + 0.270GPN4009 + 0.270GPN400A                 : ARR( 0.488E-13, -1250., 0.0);
+{  7055} G2P4002 +PERO5              =  0.460G1P4003 + 0.270GPN4009 + 0.270GPN400A                 : ARR( 0.183E-11,   450., 0.0);
+{  7056} G2P4002 +PERO6              =  0.300G1P4003 + 0.350GPN4009 + 0.350GPN400A                 : ARR( 0.168E-13, -1300., 0.0);
+{  7057} G2P4002 +PERO9              =  0.650G1P4003 + 0.350GPN400A                                : ARR( 0.100E-10,     0., 0.0);
+{  7058} G1P4001 +OXYGEN             =       GPD4000 +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{  7059} G1P4002                     =       GCH2O   +      GPD3000 +      GNO2                    : ARR( 0.200E+15,  8296., 0.0);
+{  7060} G1P4002                     =       GND2000 +      G2P2000                                : ARR( 0.200E+15,  7508., 0.0);
+{  7061} G1P4003                     =       GND3000 +      GCO     +      GNO2                    : ARR( 0.200E+15,  4949., 0.0);
+{  7062} GNN500X +GHO                =       GNN501I +      GHO2                                   : ARR( 0.672E-11,     0., 0.0);
+{  7063} GNN500X +GHO                =       G2N502K                                               : ARR( 0.887E-12,     0., 0.0);
+{  7064} GNN500X+HV               =       G1N502W +      GNO2                                   :  0.100E+01*SUN;
+{  7065} GNN500X+HV               =       G3N4001 +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{  7066} GNN500X+HV               =       GND2000 +      GNK3000                                :  0.100E+01*SUN;
+{  7067} GNN500X+HV               =       G1N500R +      GNO2                                   :  0.100E+01*SUN;
+{  7068} G2N502K +GNO                =       G1N502X +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  7069} G2N502K +GNO                =       GNN5021                                               : ARR( 0.182E-12,  -360., 0.0);
+{  7070} G2N502K +GHO2               =       GHN502s                                               : ARR( 0.242E-12, -1250., 0.0);
+{  7071} G2N502K +GNO3               =       G1N502X +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  7072} G2N502K +MEPERO             =  0.340G1N502X + 0.330GNN5022 + 0.330GNN5023                 : ARR( 0.565E-13,  -845., 0.0);
+{  7073} G2N502K +PERO1              =  0.460G1N502X + 0.270GNN5022 + 0.270GNN5023                 : ARR( 0.434E-13,  -900., 0.0);
+{  7074} G2N502K +PERO2              =  0.400G1N502X + 0.300GNN5022 + 0.300GNN5023                 : ARR( 0.162E-13, -1400., 0.0);
+{  7075} G2N502K +PERO3              =  0.460G1N502X + 0.270GNN5022 + 0.270GNN5023                 : ARR( 0.488E-13, -1250., 0.0);
+{  7076} G2N502K +PERO5              =  0.460G1N502X + 0.270GNN5022 + 0.270GNN5023                 : ARR( 0.183E-11,   450., 0.0);
+{  7077} G2N502K +PERO6              =  0.300G1N502X + 0.350GNN5022 + 0.350GNN5023                 : ARR( 0.168E-13, -1300., 0.0);
+{  7078} G2N502K +PERO9              =  0.650G1N502X + 0.350GNN5023                                : ARR( 0.100E-10,     0., 0.0);
+{  7079} G1N502W                     =       GND4004 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4427., 0.0);
+{  7080} G1N502X                     =       GND3002 +      G3N2000                                : ARR( 0.200E+15,  2890., 0.0);
+{  7081} GHN500Z +GHO                =       GHN502D +      GHO2                                   : ARR( 0.688E-11,     0., 0.0);
+{  7082} GHN500Z +GHO                =       GND500A +      GHO                                    : ARR( 0.103E-10,     0., 0.0);
+{  7083} GHN500Z +GHO                =       G2N500R                                               : ARR( 0.200E-11,  -190., 0.0);
+{  7084} GHN500Z+HV               =       G1H501F +      GNO2                                   :  0.100E+01*SUN;
+{  7085} GHN500Z+HV               =       G3N4001 +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{  7086} GHN500Z+HV               =       GND2000 +      GHK3000                                :  0.100E+01*SUN;
+{  7087} GHN500Z+HV               =       G1N500R +      GHO                                    :  0.100E+01*SUN;
+{  7088} G1H501F                     =       GHD4004 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4427., 0.0);
+{  7089} GNK500J +GHO                =       GND500A +      GHO2                                   : ARR( 0.253E-11,     0., 0.0);
+{  7090} GNK500J +GHO                =       G2N502L                                               : ARR( 0.890E-12,     0., 0.0);
+{  7091} GNK500J +GHO                =       GNK500Q +      GHO2                                   : ARR( 0.675E-11,     0., 0.0);
+{  7092} GNK500J+HV               =       G3K2001 +      G2N3003                                :  0.100E+01*SUN;
+{  7093} GNK500J+HV               =       GKO3000 +      GND2000                                :  0.100E+01*SUN;
+{  7094} GNK500J+HV               =       G1K500Y +      GNO2                                   :  0.100E+01*SUN;
+{  7095} G2N502L +GNO                =       G1N502Y +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  7096} G2N502L +GNO                =       GNN5024                                               : ARR( 0.182E-12,  -360., 0.0);
+{  7097} G2N502L +GHO2               =       GHN502t                                               : ARR( 0.242E-12, -1250., 0.0);
+{  7098} G2N502L +GNO3               =       G1N502Y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  7099} G2N502L +MEPERO             =  0.340G1N502Y + 0.330GNK500t + 0.330GNK500u                 : ARR( 0.565E-13,  -845., 0.0);
+{  7100} G2N502L +PERO1              =  0.460G1N502Y + 0.270GNK500t + 0.270GNK500u                 : ARR( 0.434E-13,  -900., 0.0);
+{  7101} G2N502L +PERO2              =  0.400G1N502Y + 0.300GNK500t + 0.300GNK500u                 : ARR( 0.162E-13, -1400., 0.0);
+{  7102} G2N502L +PERO3              =  0.460G1N502Y + 0.270GNK500t + 0.270GNK500u                 : ARR( 0.488E-13, -1250., 0.0);
+{  7103} G2N502L +PERO5              =  0.460G1N502Y + 0.270GNK500t + 0.270GNK500u                 : ARR( 0.183E-11,   450., 0.0);
+{  7104} G2N502L +PERO6              =  0.300G1N502Y + 0.350GNK500t + 0.350GNK500u                 : ARR( 0.168E-13, -1300., 0.0);
+{  7105} G2N502L +PERO9              =  0.650G1N502Y + 0.350GNK500u                                : ARR( 0.100E-10,     0., 0.0);
+{  7106} G1K500Y                     =       GDK4001 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4427., 0.0);
+{  7107} G1N502Y                     =       G3K2001 +      GND3002                                : ARR( 0.200E+15,  3009., 0.0);
+{  7108} GND500A +GHO                =       GND500g +      GHO2                                   : ARR( 0.689E-11,     0., 0.0);
+{  7109} GND500A +GHO                =       G3N4001 +      GCO                                    : ARR( 0.134E-10,     0., 0.0);
+{  7110} GND500A +GNO3               =       G3N4001 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{  7111} GND500A+HV               =       G1D500M +      GNO2                                   :  0.100E+01*SUN;
+{  7112} GND500A+HV               =       G3N4001 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{  7113} GND500A+HV               =       GND4003 +      GCO                                    :  0.100E+01*SUN;
+{  7114} GND500A+HV               =       GNO3002 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{  7115} G1D500M                     =       GDD4002 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4427., 0.0);
+{  7116} GGN4001 +GHO                =       GGN4008 +      GHO2                                   : ARR( 0.212E-11,     0., 0.0);
+{  7117} GGN4001 +GHO                =       G2G4003                                               : ARR( 0.886E-12,     0., 0.0);
+{  7118} GGN4001 +GHO                =       G3N4001                                               : ARR( 0.195E-11,  -190., 0.0);
+{  7119} GGN4001+HV               =       G1G4004 +      GNO2                                   :  0.100E+01*SUN;
+{  7120} GGN4001+HV               =       G2N3003 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{  7121} G2G4003 +GNO                =       G1G4005 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  7122} G2G4003 +GNO                =       GGN400B                                               : ARR( 0.111E-12,  -360., 0.0);
+{  7123} G2G4003 +GHO2               =       GGH4004                                               : ARR( 0.214E-12, -1250., 0.0);
+{  7124} G2G4003 +GNO3               =       G1G4005 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  7125} G2G4003 +MEPERO             =  0.340G1G4005 + 0.330GGN400C + 0.330GGN400D                 : ARR( 0.565E-13,  -845., 0.0);
+{  7126} G2G4003 +PERO1              =  0.460G1G4005 + 0.270GGN400C + 0.270GGN400D                 : ARR( 0.434E-13,  -900., 0.0);
+{  7127} G2G4003 +PERO2              =  0.400G1G4005 + 0.300GGN400C + 0.300GGN400D                 : ARR( 0.162E-13, -1400., 0.0);
+{  7128} G2G4003 +PERO3              =  0.460G1G4005 + 0.270GGN400C + 0.270GGN400D                 : ARR( 0.488E-13, -1250., 0.0);
+{  7129} G2G4003 +PERO5              =  0.460G1G4005 + 0.270GGN400C + 0.270GGN400D                 : ARR( 0.183E-11,   450., 0.0);
+{  7130} G2G4003 +PERO6              =  0.300G1G4005 + 0.350GGN400C + 0.350GGN400D                 : ARR( 0.168E-13, -1300., 0.0);
+{  7131} G2G4003 +PERO9              =  0.650G1G4005 + 0.350GGN400D                                : ARR( 0.100E-10,     0., 0.0);
+{  7132} G1G4004                     =       GGD3000 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4427., 0.0);
+{  7133} G1G4005                     =       GND2000 +      GGD2000 +      GHO2                    : ARR( 0.200E+15,  5490., 0.0);
+{  7134} G1G4005                     =       GND3002 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{  7135} GAN4001 +GHO                =       G2A4003                                               : ARR( 0.675E-12,     0., 0.0);
+{  7136} GAN4001 +GHO                =       GAN4008 +      GHO2                                   : ARR( 0.218E-11,     0., 0.0);
+{  7137} GAN4001 +GHO                =       G2N3003 +      GCO2                                   : ARR( 0.550E-12,     0., 0.0);
+{  7138} GAN4001+HV               =       G1A4004 +      GNO2                                   :  0.100E+01*SUN;
+{  7139} G2A4003 +GNO                =       G1A4005 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  7140} G2A4003 +GNO                =       GAN400B                                               : ARR( 0.111E-12,  -360., 0.0);
+{  7141} G2A4003 +GHO2               =       GAH4004                                               : ARR( 0.214E-12, -1250., 0.0);
+{  7142} G2A4003 +GNO3               =       G1A4005 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  7143} G2A4003 +MEPERO             =  0.340G1A4005 + 0.330GAN400C + 0.330GAN400D                 : ARR( 0.565E-13,  -845., 0.0);
+{  7144} G2A4003 +PERO1              =  0.460G1A4005 + 0.270GAN400C + 0.270GAN400D                 : ARR( 0.434E-13,  -900., 0.0);
+{  7145} G2A4003 +PERO2              =  0.400G1A4005 + 0.300GAN400C + 0.300GAN400D                 : ARR( 0.162E-13, -1400., 0.0);
+{  7146} G2A4003 +PERO3              =  0.460G1A4005 + 0.270GAN400C + 0.270GAN400D                 : ARR( 0.488E-13, -1250., 0.0);
+{  7147} G2A4003 +PERO5              =  0.460G1A4005 + 0.270GAN400C + 0.270GAN400D                 : ARR( 0.183E-11,   450., 0.0);
+{  7148} G2A4003 +PERO6              =  0.300G1A4005 + 0.350GAN400C + 0.350GAN400D                 : ARR( 0.168E-13, -1300., 0.0);
+{  7149} G2A4003 +PERO9              =  0.650G1A4005 + 0.350GAN400D                                : ARR( 0.100E-10,     0., 0.0);
+{  7150} G1A4004                     =       GAD3000 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4427., 0.0);
+{  7151} G1A4005                     =       GCO     +      GND3002 +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{  7152} G1A4005                     =       GAD2000 +      GND2000 +      GHO2                    : ARR( 0.200E+15,  5490., 0.0);
+{  7153} GPN4001                     =       G3N4001 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{  7154} GPN4001 +GHO                =       GPN4008 +      GHO2                                   : ARR( 0.219E-11,     0., 0.0);
+{  7155} GPN4001 +GHO                =       G2P4003                                               : ARR( 0.917E-12,     0., 0.0);
+{  7156} GPN4001+HV               =       G1P4004 +      GNO2                                   :  0.100E+01*SUN;
+{  7157} GPN4001+HV               =       G3N4001 +      GNO2                                   :  0.100E+01*SUN;
+{  7158} G2P4003 +GNO                =       G1P4005 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  7159} G2P4003 +GNO                =       GPN400B                                               : ARR( 0.111E-12,  -360., 0.0);
+{  7160} G2P4003 +GHO2               =       GPH4004                                               : ARR( 0.214E-12, -1250., 0.0);
+{  7161} G2P4003 +GNO3               =       G1P4005 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  7162} G2P4003 +MEPERO             =  0.340G1P4005 + 0.330GPN400C + 0.330GPN400D                 : ARR( 0.565E-13,  -845., 0.0);
+{  7163} G2P4003 +PERO1              =  0.460G1P4005 + 0.270GPN400C + 0.270GPN400D                 : ARR( 0.434E-13,  -900., 0.0);
+{  7164} G2P4003 +PERO2              =  0.400G1P4005 + 0.300GPN400C + 0.300GPN400D                 : ARR( 0.162E-13, -1400., 0.0);
+{  7165} G2P4003 +PERO3              =  0.460G1P4005 + 0.270GPN400C + 0.270GPN400D                 : ARR( 0.488E-13, -1250., 0.0);
+{  7166} G2P4003 +PERO5              =  0.460G1P4005 + 0.270GPN400C + 0.270GPN400D                 : ARR( 0.183E-11,   450., 0.0);
+{  7167} G2P4003 +PERO6              =  0.300G1P4005 + 0.350GPN400C + 0.350GPN400D                 : ARR( 0.168E-13, -1300., 0.0);
+{  7168} G2P4003 +PERO9              =  0.650G1P4005 + 0.350GPN400D                                : ARR( 0.100E-10,     0., 0.0);
+{  7169} G1P4004                     =       GPD3000 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4427., 0.0);
+{  7170} G1P4005                     =       GND2000 +      GPD2000 +      GHO2                    : ARR( 0.200E+15,  5490., 0.0);
+{  7171} G1P4005                     =       GND3002 +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{  7172} GNN3002 +GHO                =       GND3002 +      GNO2                                   : ARR( 0.919E-13,     0., 0.0);
+{  7173} GNN3002 +GHO                =       GNN3006 +      GHO2                                   : ARR( 0.412E-12,     0., 0.0);
+{  7174} GNN3002 +GHO                =       G1N3006                                               : ARR( 0.210E-17,    85., 2.0);
+{  7175} GNN3002+HV               =       G1N3003 +      GNO2                                   :  0.200E+01*SUN;
+{  7176} GHN3003 +GHO                =       GHN3008 +      GHO2                                   : ARR( 0.208E-11,     0., 0.0);
+{  7177} GHN3003 +GHO                =       GND3002 +      GHO                                    : ARR( 0.162E-10,     0., 0.0);
+{  7178} GHN3003 +GHO                =       G2N3003                                               : ARR( 0.192E-11,  -190., 0.0);
+{  7179} GHN3003+HV               =       G1H3007 +      GNO2                                   :  0.100E+01*SUN;
+{  7180} GHN3003+HV               =       G1N3003 +      GHO                                    :  0.100E+01*SUN;
+{  7181} G1H3007                     =       GHD2000 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4443., 0.0);
+{  7182} GNO3003 +GHO                =       GND3002 +      GHO2                                   : ARR( 0.424E-11,     0., 0.0);
+{  7183} GNO3003 +GHO                =       GNK3001 +      GHO2                                   : ARR( 0.217E-11,     0., 0.0);
+{  7184} GNO3003+HV               =       G1O3003 +      GNO2                                   :  0.100E+01*SUN;
+{  7185} GND3002 +GHO                =       GND3003 +      GHO2                                   : ARR( 0.127E-11,     0., 0.0);
+{  7186} GND3002 +GHO                =       G3N3002                                               : ARR( 0.210E-10,     0., 0.0);
+{  7187} GND3002 +GNO3               =       G3N3002 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{  7188} GND3002+HV               =       G1D3003 +      GNO2                                   :  0.100E+01*SUN;
+{  7189} GND3002+HV               =       GND2000 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{  7190} G3N3002 +GHO2               =  0.800GGN3003 + 0.200GAN3003 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  7191} G3N3002 +GNO                =       GND2000 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{  7192} G3N3002 +GNO2               =       GPN3003                                               : ARR( 0.330E-08,     0.,-1.0);
+{  7193} G3N3002 +GNO3               =       GND2000 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{  7194} G3N3002 +MEPERO             =  0.685GND2000 + 0.315GAN3003 + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  7195} G3N3002 +PERO1              =  0.800GND2000 + 0.200GAN3003 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  7196} G3N3002 +PERO2              =  0.750GND2000 + 0.250GAN3003 + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  7197} G3N3002 +PERO3              =  0.800GND2000 + 0.200GAN3003 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  7198} G3N3002 +PERO5              =  0.650GND2000 + 0.350GAN3003 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  7199} G3N3002 +PERO6              =  0.650GND2000 + 0.350GAN3003 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  7200} G3N3002 +PERO9              =       GND2000 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{  7201} G1D3003                     =       GDD2000 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4576., 0.0);
+{  7202} GHN500a +GHO                =       GNN500U +      GHO                                    : ARR( 0.695E-11,     0., 0.0);
+{  7203} GHN500a +GHO                =       G2N500T                                               : ARR( 0.197E-11,  -190., 0.0);
+{  7204} GHN500a+HV               =       G1N500T +      GHO                                    :  0.100E+01*SUN;
+{  7205} GHN500a+HV               =       G1H501G +      GNO2                                   :  0.100E+01*SUN;
+{  7206} GHN500a+HV               =       G1H501H +      GNO2                                   :  0.100E+01*SUN;
+{  7207} G1H501G                     =       GD02000 +      GND3000 +      GHO                     : ARR( 0.200E+15,  4917., 0.0);
+{  7208} G1H501H                     =       GNK5009 +      GHO                                    : ARR( 0.800E+11,  2490., 0.0);
+{  7209} GNN500Y +GHO                =       G2N502M                                               : ARR( 0.173E-12,     0., 0.0);
+{  7210} GNN500Y +GHO                =       G2N502N                                               : ARR( 0.237E-12,     0., 0.0);
+{  7211} GNN500Y +GHO                =       GNN500g +      GNO2                                   : ARR( 0.243E-13,     0., 0.0);
+{  7212} GNN500Y+HV               =       G1N500f +      GNO2                                   :  0.100E+01*SUN;
+{  7213} GNN500Y+HV               =       G1N500U +      GNO2                                   :  0.100E+01*SUN;
+{  7214} GNN500Y+HV               =       G1N501A +      GNO2                                   :  0.100E+01*SUN;
+{  7215} G2N502M +GNO                =       G1N502Z +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  7216} G2N502M +GNO                =       GNN501E                                               : ARR( 0.182E-12,  -360., 0.0);
+{  7217} G2N502M +GHO2               =       GHN502u                                               : ARR( 0.242E-12, -1250., 0.0);
+{  7218} G2N502M +GNO3               =       G1N502Z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  7219} G2N502M +MEPERO             =  0.480G1N502Z + 0.260GNN500b + 0.260GNN5025                 : ARR( 0.146E-12,  -445., 0.0);
+{  7220} G2N502M +PERO1              =  0.600G1N502Z + 0.200GNN500b + 0.200GNN5025                 : ARR( 0.112E-12,  -500., 0.0);
+{  7221} G2N502M +PERO2              =  0.560G1N502Z + 0.220GNN500b + 0.220GNN5025                 : ARR( 0.418E-13, -1000., 0.0);
+{  7222} G2N502M +PERO3              =  0.600G1N502Z + 0.200GNN500b + 0.200GNN5025                 : ARR( 0.126E-12,  -850., 0.0);
+{  7223} G2N502M +PERO5              =  0.600G1N502Z + 0.200GNN500b + 0.200GNN5025                 : ARR( 0.473E-11,   850., 0.0);
+{  7224} G2N502M +PERO6              =  0.460G1N502Z + 0.270GNN500b + 0.270GNN5025                 : ARR( 0.434E-13,  -900., 0.0);
+{  7225} G2N502M +PERO9              =  0.800G1N502Z + 0.200GNN5025                                : ARR( 0.100E-10,     0., 0.0);
+{  7226} G2N502N +GNO                =       G1N502a +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  7227} G2N502N +GNO                =       GNN501W                                               : ARR( 0.182E-12,  -360., 0.0);
+{  7228} G2N502N +GHO2               =       GHN502v                                               : ARR( 0.242E-12, -1250., 0.0);
+{  7229} G2N502N +GNO3               =       G1N502a +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  7230} G2N502N +MEPERO             =  0.340G1N502a + 0.330GNN5011 + 0.330GNN501v                 : ARR( 0.565E-13,  -845., 0.0);
+{  7231} G2N502N +PERO1              =  0.460G1N502a + 0.270GNN5011 + 0.270GNN501v                 : ARR( 0.434E-13,  -900., 0.0);
+{  7232} G2N502N +PERO2              =  0.400G1N502a + 0.300GNN5011 + 0.300GNN501v                 : ARR( 0.162E-13, -1400., 0.0);
+{  7233} G2N502N +PERO3              =  0.460G1N502a + 0.270GNN5011 + 0.270GNN501v                 : ARR( 0.488E-13, -1250., 0.0);
+{  7234} G2N502N +PERO5              =  0.460G1N502a + 0.270GNN5011 + 0.270GNN501v                 : ARR( 0.183E-11,   450., 0.0);
+{  7235} G2N502N +PERO6              =  0.300G1N502a + 0.350GNN5011 + 0.350GNN501v                 : ARR( 0.168E-13, -1300., 0.0);
+{  7236} G2N502N +PERO9              =  0.650G1N502a + 0.350GNN501v                                : ARR( 0.100E-10,     0., 0.0);
+{  7237} G1N502Z +OXYGEN             =       GNN5025 +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{  7238} G1N502a                     =       GD02000 +      GNN3005 +      GNO2                    : ARR( 0.200E+15,  5979., 0.0);
+{  7239} GHN500b +GHO                =       GNN500a +      GHO                                    : ARR( 0.182E-11,     0., 0.0);
+{  7240} GHN500b +GHO                =       G2N500U                                               : ARR( 0.210E-11,  -190., 0.0);
+{  7241} GHN500b+HV               =       G1H500C +      GNO2                                   :  0.100E+01*SUN;
+{  7242} GHN500b+HV               =       G1N500U +      GHO                                    :  0.100E+01*SUN;
+{  7243} GHN500b+HV               =       G1H501I +      GNO2                                   :  0.100E+01*SUN;
+{  7244} G1H501I                     =       G2H500n                                               : ARR( 0.160E+12,  3812., 0.0);
+{  7245} G1H501I                     =       GND4005 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{  7246} G2H500n +GNO                =       G1H501J +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  7247} G2H500n +GNO                =       GHN501l                                               : ARR( 0.182E-12,  -360., 0.0);
+{  7248} G2H500n +GHO2               =       GHH500j                                               : ARR( 0.242E-12, -1250., 0.0);
+{  7249} G2H500n +GNO3               =       G1H501J +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  7250} G2H500n +MEPERO             =  0.340G1H501J + 0.330GHN502w + 0.330GHN501n                 : ARR( 0.565E-13,  -845., 0.0);
+{  7251} G2H500n +PERO1              =  0.460G1H501J + 0.270GHN502w + 0.270GHN501n                 : ARR( 0.434E-13,  -900., 0.0);
+{  7252} G2H500n +PERO2              =  0.400G1H501J + 0.300GHN502w + 0.300GHN501n                 : ARR( 0.162E-13, -1400., 0.0);
+{  7253} G2H500n +PERO3              =  0.460G1H501J + 0.270GHN502w + 0.270GHN501n                 : ARR( 0.488E-13, -1250., 0.0);
+{  7254} G2H500n +PERO5              =  0.460G1H501J + 0.270GHN502w + 0.270GHN501n                 : ARR( 0.183E-11,   450., 0.0);
+{  7255} G2H500n +PERO6              =  0.300G1H501J + 0.350GHN502w + 0.350GHN501n                 : ARR( 0.168E-13, -1300., 0.0);
+{  7256} G2H500n +PERO9              =  0.650G1H501J + 0.350GHN501n                                : ARR( 0.100E-10,     0., 0.0);
+{  7257} G1H501J                     =       GHN502x +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{  7258} GNN500Z +GHO                =       G2N500X                                               : ARR( 0.175E-12,     0., 0.0);
+{  7259} GNN500Z +GHO                =       G2N502O                                               : ARR( 0.240E-12,     0., 0.0);
+{  7260} GNN500Z +GHO                =       GNK500K +      GNO2                                   : ARR( 0.123E-12,     0., 0.0);
+{  7261} GNN500Z +GHO                =       GNN500a +      GHO2                                   : ARR( 0.430E-12,     0., 0.0);
+{  7262} GNN500Z +GHO                =       G1N500U                                               : ARR( 0.219E-17,    85., 2.0);
+{  7263} GNN500Z+HV               =       G1N500i +      GNO2                                   :  0.100E+01*SUN;
+{  7264} GNN500Z+HV               =       G1N501K +      GNO2                                   :  0.100E+01*SUN;
+{  7265} G2N502O +GNO                =       G1N502b +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  7266} G2N502O +GNO                =       GNN501X                                               : ARR( 0.182E-12,  -360., 0.0);
+{  7267} G2N502O +GHO2               =       GHN502y                                               : ARR( 0.242E-12, -1250., 0.0);
+{  7268} G2N502O +GNO3               =       G1N502b +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  7269} G2N502O +MEPERO             =  0.340G1N502b + 0.330GNN5016 + 0.330GNN501w                 : ARR( 0.565E-13,  -845., 0.0);
+{  7270} G2N502O +PERO1              =  0.460G1N502b + 0.270GNN5016 + 0.270GNN501w                 : ARR( 0.434E-13,  -900., 0.0);
+{  7271} G2N502O +PERO2              =  0.400G1N502b + 0.300GNN5016 + 0.300GNN501w                 : ARR( 0.162E-13, -1400., 0.0);
+{  7272} G2N502O +PERO3              =  0.460G1N502b + 0.270GNN5016 + 0.270GNN501w                 : ARR( 0.488E-13, -1250., 0.0);
+{  7273} G2N502O +PERO5              =  0.460G1N502b + 0.270GNN5016 + 0.270GNN501w                 : ARR( 0.183E-11,   450., 0.0);
+{  7274} G2N502O +PERO6              =  0.300G1N502b + 0.350GNN5016 + 0.350GNN501w                 : ARR( 0.168E-13, -1300., 0.0);
+{  7275} G2N502O +PERO9              =  0.650G1N502b + 0.350GNN501w                                : ARR( 0.100E-10,     0., 0.0);
+{  7276} G1N502b                     =       GND500P +      GNO2                                   : ARR( 0.160E+12,  4531., 0.0);
+{  7277} G1N502b                     =       GD02000 +      GND3002 +      GNO2                    : ARR( 0.200E+15,  5979., 0.0);
+{  7278} GNN500a +GHO                =       G2N502P                                               : ARR( 0.168E-12,     0., 0.0);
+{  7279} GNN500a +GHO                =       G2N502Q                                               : ARR( 0.230E-12,     0., 0.0);
+{  7280} GNN500a +GHO                =       GNK500L +      GNO2                                   : ARR( 0.718E-13,     0., 0.0);
+{  7281} GNN500a +GHO                =       GND500R +      GNO2                                   : ARR( 0.280E-13,     0., 0.0);
+{  7282} GNN500a+HV               =       G1N500k +      GNO2                                   :  0.100E+01*SUN;
+{  7283} GNN500a+HV               =       G3N4004 +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{  7284} GNN500a+HV               =       GU02000 +      GNN3006                                :  0.100E+01*SUN;
+{  7285} GNN500a+HV               =       G1N501Q +      GNO2                                   :  0.100E+01*SUN;
+{  7286} G2N502P +GNO                =       G1N502c +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  7287} G2N502P +GNO                =       GNN501J                                               : ARR( 0.182E-12,  -360., 0.0);
+{  7288} G2N502P +GHO2               =       GHN502z                                               : ARR( 0.242E-12, -1250., 0.0);
+{  7289} G2N502P +GNO3               =       G1N502c +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  7290} G2N502P +MEPERO             =  0.480G1N502c + 0.260GNN500d + 0.260GNN5026                 : ARR( 0.146E-12,  -445., 0.0);
+{  7291} G2N502P +PERO1              =  0.600G1N502c + 0.200GNN500d + 0.200GNN5026                 : ARR( 0.112E-12,  -500., 0.0);
+{  7292} G2N502P +PERO2              =  0.560G1N502c + 0.220GNN500d + 0.220GNN5026                 : ARR( 0.418E-13, -1000., 0.0);
+{  7293} G2N502P +PERO3              =  0.600G1N502c + 0.200GNN500d + 0.200GNN5026                 : ARR( 0.126E-12,  -850., 0.0);
+{  7294} G2N502P +PERO5              =  0.600G1N502c + 0.200GNN500d + 0.200GNN5026                 : ARR( 0.473E-11,   850., 0.0);
+{  7295} G2N502P +PERO6              =  0.460G1N502c + 0.270GNN500d + 0.270GNN5026                 : ARR( 0.434E-13,  -900., 0.0);
+{  7296} G2N502P +PERO9              =  0.800G1N502c + 0.200GNN5026                                : ARR( 0.100E-10,     0., 0.0);
+{  7297} G2N502Q +GNO                =       G1N502d +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  7298} G2N502Q +GNO                =       GNN501Y                                               : ARR( 0.182E-12,  -360., 0.0);
+{  7299} G2N502Q +GHO2               =       GHN5031                                               : ARR( 0.242E-12, -1250., 0.0);
+{  7300} G2N502Q +GNO3               =       G1N502d +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  7301} G2N502Q +MEPERO             =  0.340G1N502d + 0.330GNN5027 + 0.330GNN501x                 : ARR( 0.565E-13,  -845., 0.0);
+{  7302} G2N502Q +PERO1              =  0.460G1N502d + 0.270GNN5027 + 0.270GNN501x                 : ARR( 0.434E-13,  -900., 0.0);
+{  7303} G2N502Q +PERO2              =  0.400G1N502d + 0.300GNN5027 + 0.300GNN501x                 : ARR( 0.162E-13, -1400., 0.0);
+{  7304} G2N502Q +PERO3              =  0.460G1N502d + 0.270GNN5027 + 0.270GNN501x                 : ARR( 0.488E-13, -1250., 0.0);
+{  7305} G2N502Q +PERO5              =  0.460G1N502d + 0.270GNN5027 + 0.270GNN501x                 : ARR( 0.183E-11,   450., 0.0);
+{  7306} G2N502Q +PERO6              =  0.300G1N502d + 0.350GNN5027 + 0.350GNN501x                 : ARR( 0.168E-13, -1300., 0.0);
+{  7307} G2N502Q +PERO9              =  0.650G1N502d + 0.350GNN501x                                : ARR( 0.100E-10,     0., 0.0);
+{  7308} G1N502c +OXYGEN             =       GNN5026 +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{  7309} G1N502d                     =       GD02000 +      GND3003 +      GNO2                    : ARR( 0.200E+15,  6261., 0.0);
+{  7310} GNN500b +GHO                =       GNN5025 +      GHO2                                   : ARR( 0.419E-11,     0., 0.0);
+{  7311} GNN500b +GHO                =       G2N502R                                               : ARR( 0.294E-12,     0., 0.0);
+{  7312} GNN500b+HV               =       G1N502e +      GNO2                                   :  0.100E+01*SUN;
+{  7313} GNN500b+HV               =       G1N500W +      GNO2                                   :  0.100E+01*SUN;
+{  7314} GNN500b+HV               =       G1N502f +      GNO2                                   :  0.100E+01*SUN;
+{  7315} G2N502R +GNO                =       G1N502g +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  7316} G2N502R +GNO                =       GNN501Z                                               : ARR( 0.182E-12,  -360., 0.0);
+{  7317} G2N502R +GHO2               =       GHN5032                                               : ARR( 0.242E-12, -1250., 0.0);
+{  7318} G2N502R +GNO3               =       G1N502g +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  7319} G2N502R +MEPERO             =  0.340G1N502g + 0.330GNN5028 + 0.330GNN5029                 : ARR( 0.565E-13,  -845., 0.0);
+{  7320} G2N502R +PERO1              =  0.460G1N502g + 0.270GNN5028 + 0.270GNN5029                 : ARR( 0.434E-13,  -900., 0.0);
+{  7321} G2N502R +PERO2              =  0.400G1N502g + 0.300GNN5028 + 0.300GNN5029                 : ARR( 0.162E-13, -1400., 0.0);
+{  7322} G2N502R +PERO3              =  0.460G1N502g + 0.270GNN5028 + 0.270GNN5029                 : ARR( 0.488E-13, -1250., 0.0);
+{  7323} G2N502R +PERO5              =  0.460G1N502g + 0.270GNN5028 + 0.270GNN5029                 : ARR( 0.183E-11,   450., 0.0);
+{  7324} G2N502R +PERO6              =  0.300G1N502g + 0.350GNN5028 + 0.350GNN5029                 : ARR( 0.168E-13, -1300., 0.0);
+{  7325} G2N502R +PERO9              =  0.650G1N502g + 0.350GNN5029                                : ARR( 0.100E-10,     0., 0.0);
+{  7326} G1N502e                     =       G2O2000 +      GNN3005                                : ARR( 0.200E+15,  7074., 0.0);
+{  7327} G1N502e                     =       GDO3000 +      GND2000 +      GNO2                    : ARR( 0.200E+15,  6068., 0.0);
+{  7328} G1N502f +OXYGEN             =       GNN501S +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{  7329} G1N502f                     =       G2N502S                                               : ARR( 0.160E+12,  3719., 0.0);
+{  7330} G1N502g                     =       GCH2O   +      GNN400D +      GHO2                    : ARR( 0.200E+15,  5296., 0.0);
+{  7331} G1N502g                     =       GDO2000 +      GNN3005 +      GNO2                    : ARR( 0.200E+15,  6234., 0.0);
+{  7332} G2N502S +GNO                =       G1N502h +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  7333} G2N502S +GNO                =       GNN502A                                               : ARR( 0.182E-12,  -360., 0.0);
+{  7334} G2N502S +GHO2               =       GHN5033                                               : ARR( 0.242E-12, -1250., 0.0);
+{  7335} G2N502S +GNO3               =       G1N502h +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  7336} G2N502S +MEPERO             =  0.340G1N502h + 0.330GNN502B + 0.330GNN502C                 : ARR( 0.565E-13,  -845., 0.0);
+{  7337} G2N502S +PERO1              =  0.460G1N502h + 0.270GNN502B + 0.270GNN502C                 : ARR( 0.434E-13,  -900., 0.0);
+{  7338} G2N502S +PERO2              =  0.400G1N502h + 0.300GNN502B + 0.300GNN502C                 : ARR( 0.162E-13, -1400., 0.0);
+{  7339} G2N502S +PERO3              =  0.460G1N502h + 0.270GNN502B + 0.270GNN502C                 : ARR( 0.488E-13, -1250., 0.0);
+{  7340} G2N502S +PERO5              =  0.460G1N502h + 0.270GNN502B + 0.270GNN502C                 : ARR( 0.183E-11,   450., 0.0);
+{  7341} G2N502S +PERO6              =  0.300G1N502h + 0.350GNN502B + 0.350GNN502C                 : ARR( 0.168E-13, -1300., 0.0);
+{  7342} G2N502S +PERO9              =  0.650G1N502h + 0.350GNN502C                                : ARR( 0.100E-10,     0., 0.0);
+{  7343} G1N502h                     =       GNN502D +      GHO2                                   : ARR( 0.160E+12,  3252., 0.0);
+{  7344} G1N502h                     =       GND3004 +      GDO2000 +      GNO2                    : ARR( 0.200E+15,  6234., 0.0);
+{  7345} G1N502h                     =       GNN400E +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  5296., 0.0);
+{  7346} GHN500c +GHO                =       GHN5034 +      GHO2                                   : ARR( 0.428E-11,     0., 0.0);
+{  7347} GHN500c +GHO                =       GNN500d +      GHO                                    : ARR( 0.175E-11,     0., 0.0);
+{  7348} GHN500c +GHO                =       G2N500W                                               : ARR( 0.202E-11,  -190., 0.0);
+{  7349} GHN500c+HV               =       G1H500G +      GNO2                                   :  0.100E+01*SUN;
+{  7350} GHN500c+HV               =       G1N500W +      GHO                                    :  0.100E+01*SUN;
+{  7351} GHN500c+HV               =       G1H501K +      GNO2                                   :  0.100E+01*SUN;
+{  7352} G1H501K                     =       G2H500o                                               : ARR( 0.160E+12,  3719., 0.0);
+{  7353} G1H501K                     =       GND4006 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{  7354} G2H500o +GNO                =       G1H501L +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  7355} G2H500o +GNO                =       GHN5033                                               : ARR( 0.182E-12,  -360., 0.0);
+{  7356} G2H500o +GHO2               =       GHH500k                                               : ARR( 0.242E-12, -1250., 0.0);
+{  7357} G2H500o +GNO3               =       G1H501L +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  7358} G2H500o +MEPERO             =  0.340G1H501L + 0.330GHN5035 + 0.330GHN5036                 : ARR( 0.565E-13,  -845., 0.0);
+{  7359} G2H500o +PERO1              =  0.460G1H501L + 0.270GHN5035 + 0.270GHN5036                 : ARR( 0.434E-13,  -900., 0.0);
+{  7360} G2H500o +PERO2              =  0.400G1H501L + 0.300GHN5035 + 0.300GHN5036                 : ARR( 0.162E-13, -1400., 0.0);
+{  7361} G2H500o +PERO3              =  0.460G1H501L + 0.270GHN5035 + 0.270GHN5036                 : ARR( 0.488E-13, -1250., 0.0);
+{  7362} G2H500o +PERO5              =  0.460G1H501L + 0.270GHN5035 + 0.270GHN5036                 : ARR( 0.183E-11,   450., 0.0);
+{  7363} G2H500o +PERO6              =  0.300G1H501L + 0.350GHN5035 + 0.350GHN5036                 : ARR( 0.168E-13, -1300., 0.0);
+{  7364} G2H500o +PERO9              =  0.650G1H501L + 0.350GHN5036                                : ARR( 0.100E-10,     0., 0.0);
+{  7365} G1H501L                     =       GHN5037 +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{  7366} G1H501L                     =       GHN400L +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  5296., 0.0);
+{  7367} GNN500c +GHO                =       GNN500f +      GHO2                                   : ARR( 0.440E-11,     0., 0.0);
+{  7368} GNN500c +GHO                =       G2N502T                                               : ARR( 0.309E-12,     0., 0.0);
+{  7369} GNN500c +GHO                =       GNN500d +      GHO2                                   : ARR( 0.451E-12,     0., 0.0);
+{  7370} GNN500c+HV               =       G1N500p +      GNO2                                   :  0.100E+01*SUN;
+{  7371} GNN500c+HV               =       G1N502i +      GNO2                                   :  0.100E+01*SUN;
+{  7372} G2N502T +GNO                =       G1N502j +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  7373} G2N502T +GNO                =       GNN501a                                               : ARR( 0.182E-12,  -360., 0.0);
+{  7374} G2N502T +GHO2               =       GHN5038                                               : ARR( 0.242E-12, -1250., 0.0);
+{  7375} G2N502T +GNO3               =       G1N502j +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  7376} G2N502T +MEPERO             =  0.340G1N502j + 0.330GNN501B + 0.330GNN5024                 : ARR( 0.565E-13,  -845., 0.0);
+{  7377} G2N502T +PERO1              =  0.460G1N502j + 0.270GNN501B + 0.270GNN5024                 : ARR( 0.434E-13,  -900., 0.0);
+{  7378} G2N502T +PERO2              =  0.400G1N502j + 0.300GNN501B + 0.300GNN5024                 : ARR( 0.162E-13, -1400., 0.0);
+{  7379} G2N502T +PERO3              =  0.460G1N502j + 0.270GNN501B + 0.270GNN5024                 : ARR( 0.488E-13, -1250., 0.0);
+{  7380} G2N502T +PERO5              =  0.460G1N502j + 0.270GNN501B + 0.270GNN5024                 : ARR( 0.183E-11,   450., 0.0);
+{  7381} G2N502T +PERO6              =  0.300G1N502j + 0.350GNN501B + 0.350GNN5024                 : ARR( 0.168E-13, -1300., 0.0);
+{  7382} G2N502T +PERO9              =  0.650G1N502j + 0.350GNN5024                                : ARR( 0.100E-10,     0., 0.0);
+{  7383} G1N502i                     =       GND4006 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{  7384} G1N502j                     =       GCH2O   +      GNN400F +      GHO2                    : ARR( 0.200E+15,  5296., 0.0);
+{  7385} G1N502j                     =       GDO2000 +      GND3002 +      GNO2                    : ARR( 0.200E+15,  6234., 0.0);
+{  7386} GNN500d +GHO                =       GNN5026 +      GHO2                                   : ARR( 0.425E-11,     0., 0.0);
+{  7387} GNN500d +GHO                =       G2N502U                                               : ARR( 0.298E-12,     0., 0.0);
+{  7388} GNN500d+HV               =       G1N500r +      GNO2                                   :  0.100E+01*SUN;
+{  7389} GNN500d+HV               =       G3N4008 +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{  7390} GNN500d+HV               =       GD02000 +      GNN3006                                :  0.100E+01*SUN;
+{  7391} GNN500d+HV               =       G1N502k +      GNO2                                   :  0.100E+01*SUN;
+{  7392} G2N502U +GNO                =       G1N502l +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  7393} G2N502U +GNO                =       GNN501b                                               : ARR( 0.182E-12,  -360., 0.0);
+{  7394} G2N502U +GHO2               =       GHN5039                                               : ARR( 0.242E-12, -1250., 0.0);
+{  7395} G2N502U +GNO3               =       G1N502l +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  7396} G2N502U +MEPERO             =  0.340G1N502l + 0.330GNN502E + 0.330GNN502F                 : ARR( 0.565E-13,  -845., 0.0);
+{  7397} G2N502U +PERO1              =  0.460G1N502l + 0.270GNN502E + 0.270GNN502F                 : ARR( 0.434E-13,  -900., 0.0);
+{  7398} G2N502U +PERO2              =  0.400G1N502l + 0.300GNN502E + 0.300GNN502F                 : ARR( 0.162E-13, -1400., 0.0);
+{  7399} G2N502U +PERO3              =  0.460G1N502l + 0.270GNN502E + 0.270GNN502F                 : ARR( 0.488E-13, -1250., 0.0);
+{  7400} G2N502U +PERO5              =  0.460G1N502l + 0.270GNN502E + 0.270GNN502F                 : ARR( 0.183E-11,   450., 0.0);
+{  7401} G2N502U +PERO6              =  0.300G1N502l + 0.350GNN502E + 0.350GNN502F                 : ARR( 0.168E-13, -1300., 0.0);
+{  7402} G2N502U +PERO9              =  0.650G1N502l + 0.350GNN502F                                : ARR( 0.100E-10,     0., 0.0);
+{  7403} G3N4008 +GHO2               =  0.800GGN400E + 0.200GAN400E + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  7404} G3N4008 +GNO                =       GDO3000 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{  7405} G3N4008 +GNO2               =       GPN400E                                               : ARR( 0.330E-08,     0.,-1.0);
+{  7406} G3N4008 +GNO3               =       GDO3000 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{  7407} G3N4008 +MEPERO             =  0.685GDO3000 + 0.315GAN400E + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  7408} G3N4008 +PERO1              =  0.800GDO3000 + 0.200GAN400E + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  7409} G3N4008 +PERO2              =  0.750GDO3000 + 0.250GAN400E + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  7410} G3N4008 +PERO3              =  0.800GDO3000 + 0.200GAN400E + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  7411} G3N4008 +PERO5              =  0.650GDO3000 + 0.350GAN400E + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  7412} G3N4008 +PERO6              =  0.650GDO3000 + 0.350GAN400E + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  7413} G3N4008 +PERO9              =       GDO3000 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{  7414} G1N502k                     =       G3N4008 +      GCH2O                                  : ARR( 0.200E+15,  3640., 0.0);
+{  7415} G1N502l                     =       GCH2O   +      GNN400G +      GHO2                    : ARR( 0.200E+15,  4465., 0.0);
+{  7416} GNN500e +GHO                =       GNN5019 +      GNO2                                   : ARR( 0.460E-13,     0., 0.0);
+{  7417} GNN500e +GHO                =       GNN501J +      GHO2                                   : ARR( 0.412E-12,     0., 0.0);
+{  7418} GNN500e +GHO                =       GNN500p +      GNO2                                   : ARR( 0.118E-12,     0., 0.0);
+{  7419} GNN500e +GHO                =       G2N502W                                               : ARR( 0.565E-13,     0., 0.0);
+{  7420} GNN500e +GHO                =       GNN500f +      GNO2                                   : ARR( 0.460E-13,     0., 0.0);
+{  7421} GNN500e +GHO                =       G1N501h                                               : ARR( 0.210E-17,    85., 2.0);
+{  7422} GNN500e+HV               =       G1N501U +      GNO2                                   :  0.100E+01*SUN;
+{  7423} GNN500e+HV               =       G1N500u +      GNO2                                   :  0.100E+01*SUN;
+{  7424} GNN500e+HV               =       G1N500X +      GNO2                                   :  0.100E+01*SUN;
+{  7425} G2N502W +GNO                =       G1N502m +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  7426} G2N502W +GNO                =       GNN501c                                               : ARR( 0.182E-12,  -360., 0.0);
+{  7427} G2N502W +GHO2               =       GHN503A                                               : ARR( 0.242E-12, -1250., 0.0);
+{  7428} G2N502W +GNO3               =       G1N502m +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  7429} G2N502W +MEPERO             =  0.340G1N502m + 0.330GNN502G + 0.330GNN5021                 : ARR( 0.565E-13,  -845., 0.0);
+{  7430} G2N502W +PERO1              =  0.460G1N502m + 0.270GNN502G + 0.270GNN5021                 : ARR( 0.434E-13,  -900., 0.0);
+{  7431} G2N502W +PERO2              =  0.400G1N502m + 0.300GNN502G + 0.300GNN5021                 : ARR( 0.162E-13, -1400., 0.0);
+{  7432} G2N502W +PERO3              =  0.460G1N502m + 0.270GNN502G + 0.270GNN5021                 : ARR( 0.488E-13, -1250., 0.0);
+{  7433} G2N502W +PERO5              =  0.460G1N502m + 0.270GNN502G + 0.270GNN5021                 : ARR( 0.183E-11,   450., 0.0);
+{  7434} G2N502W +PERO6              =  0.300G1N502m + 0.350GNN502G + 0.350GNN5021                 : ARR( 0.168E-13, -1300., 0.0);
+{  7435} G2N502W +PERO9              =  0.650G1N502m + 0.350GNN5021                                : ARR( 0.100E-10,     0., 0.0);
+{  7436} G1N502m                     =       GNN502H +      GNO2                                   : ARR( 0.160E+12,  4531., 0.0);
+{  7437} G1N502m                     =       GND3002 +      GND2000 +      GNO2                    : ARR( 0.200E+15,  6232., 0.0);
+{  7438} GHN500d +GHO                =       GNN500f +      GHO                                    : ARR( 0.169E-10,     0., 0.0);
+{  7439} GHN500d +GHO                =       G2N500X                                               : ARR( 0.200E-11,  -190., 0.0);
+{  7440} GHN500d+HV               =       G1H501M +      GNO2                                   :  0.100E+01*SUN;
+{  7441} GHN500d+HV               =       G1H500J +      GNO2                                   :  0.100E+01*SUN;
+{  7442} GHN500d+HV               =       G1N500X +      GHO                                    :  0.100E+01*SUN;
+{  7443} G1H501M                     =       GHN400M +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{  7444} GNN500f +GHO                =       G3N500B                                               : ARR( 0.219E-10,     0., 0.0);
+{  7445} GNN500f +GNO3               =       G3N500B +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{  7446} GNN500f+HV               =       G1N502n +      GNO2                                   :  0.100E+01*SUN;
+{  7447} GNN500f+HV               =       G1N500w +      GNO2                                   :  0.100E+01*SUN;
+{  7448} GNN500f+HV               =       G2N400G +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{  7449} GNN500f+HV               =       GNN3006 +      GD02000                                :  0.100E+01*SUN;
+{  7450} G3N500B +GHO2               =  0.800GGN500F + 0.200GAN500H + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  7451} G3N500B +GNO                =       G2N400G +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{  7452} G3N500B +GNO2               =       GPN500H                                               : ARR( 0.330E-08,     0.,-1.0);
+{  7453} G3N500B +GNO3               =       G2N400G +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{  7454} G3N500B +MEPERO             =  0.685G2N400G + 0.315GAN500H + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  7455} G3N500B +PERO1              =  0.800G2N400G + 0.200GAN500H + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  7456} G3N500B +PERO2              =  0.750G2N400G + 0.250GAN500H + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  7457} G3N500B +PERO3              =  0.800G2N400G + 0.200GAN500H + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  7458} G3N500B +PERO5              =  0.650G2N400G + 0.350GAN500H + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  7459} G3N500B +PERO6              =  0.650G2N400G + 0.350GAN500H + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  7460} G3N500B +PERO9              =       G2N400G +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{  7461} G1N502n                     =       GND400D +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{  7462} G2N400G +GNO                =       G1N400G +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  7463} G2N400G +GNO                =       GNN400H                                               : ARR( 0.111E-12,  -360., 0.0);
+{  7464} G2N400G +GHO2               =       GHN400N                                               : ARR( 0.214E-12, -1250., 0.0);
+{  7465} G2N400G +GNO3               =       G1N400G +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  7466} G2N400G +MEPERO             =  0.480G1N400G + 0.260GNN400A + 0.260GNN400F                 : ARR( 0.164E-12,  -795., 0.0);
+{  7467} G2N400G +PERO1              =  0.600G1N400G + 0.200GNN400A + 0.200GNN400F                 : ARR( 0.126E-12,  -850., 0.0);
+{  7468} G2N400G +PERO2              =  0.560G1N400G + 0.220GNN400A + 0.220GNN400F                 : ARR( 0.471E-13, -1350., 0.0);
+{  7469} G2N400G +PERO3              =  0.600G1N400G + 0.200GNN400A + 0.200GNN400F                 : ARR( 0.142E-12, -1200., 0.0);
+{  7470} G2N400G +PERO5              =  0.600G1N400G + 0.200GNN400A + 0.200GNN400F                 : ARR( 0.533E-11,   500., 0.0);
+{  7471} G2N400G +PERO6              =  0.460G1N400G + 0.270GNN400A + 0.270GNN400F                 : ARR( 0.488E-13, -1250., 0.0);
+{  7472} G2N400G +PERO9              =  0.800G1N400G + 0.200GNN400F                                : ARR( 0.100E-10,     0., 0.0);
+{  7473} G1N400G +OXYGEN             =       GNN400F +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{  7474} G1N400G                     =       GND4009 +      GNO2                                   : ARR( 0.160E+12,  4531., 0.0);
+{  7475} G1N400G                     =       GND3002 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7042., 0.0);
+{  7476} GHN500e +GHO                =       GNK500A +      GHO                                    : ARR( 0.837E-11,     0., 0.0);
+{  7477} GHN500e +GHO                =       G2H500p                                               : ARR( 0.144E-11,     0., 0.0);
+{  7478} GHN500e +GHO                =       GHN502Y +      GHO2                                   : ARR( 0.408E-11,     0., 0.0);
+{  7479} GHN500e +GHO                =       G2N502X                                               : ARR( 0.193E-11,  -190., 0.0);
+{  7480} GHN500e+HV               =       G1H5009 +      GNO2                                   :  0.100E+01*SUN;
+{  7481} GHN500e+HV               =       G1N501R +      GHO                                    :  0.100E+01*SUN;
+{  7482} G2H500p +GNO                =       G1H501N +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  7483} G2H500p +GNO                =       GHN503B                                               : ARR( 0.182E-12,  -360., 0.0);
+{  7484} G2H500p +GHO2               =       GHH500l                                               : ARR( 0.242E-12, -1250., 0.0);
+{  7485} G2H500p +GNO3               =       G1H501N +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  7486} G2H500p +MEPERO             =  0.340G1H501N + 0.330GHN503C + 0.330GHN501r                 : ARR( 0.565E-13,  -845., 0.0);
+{  7487} G2H500p +PERO1              =  0.460G1H501N + 0.270GHN503C + 0.270GHN501r                 : ARR( 0.434E-13,  -900., 0.0);
+{  7488} G2H500p +PERO2              =  0.400G1H501N + 0.300GHN503C + 0.300GHN501r                 : ARR( 0.162E-13, -1400., 0.0);
+{  7489} G2H500p +PERO3              =  0.460G1H501N + 0.270GHN503C + 0.270GHN501r                 : ARR( 0.488E-13, -1250., 0.0);
+{  7490} G2H500p +PERO5              =  0.460G1H501N + 0.270GHN503C + 0.270GHN501r                 : ARR( 0.183E-11,   450., 0.0);
+{  7491} G2H500p +PERO6              =  0.300G1H501N + 0.350GHN503C + 0.350GHN501r                 : ARR( 0.168E-13, -1300., 0.0);
+{  7492} G2H500p +PERO9              =  0.650G1H501N + 0.350GHN501r                                : ARR( 0.100E-10,     0., 0.0);
+{  7493} G2N502X +GNO                =       G1N501R +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  7494} G2N502X +GNO                =       GNN5009                                               : ARR( 0.182E-12,  -360., 0.0);
+{  7495} G2N502X +GHO2               =       GHN500e                                               : ARR( 0.242E-12, -1250., 0.0);
+{  7496} G2N502X +GNO3               =       G1N501R +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  7497} G2N502X +MEPERO             =  0.340G1N501R + 0.330GNO500K + 0.330GNK500A                 : ARR( 0.565E-13,  -845., 0.0);
+{  7498} G2N502X +PERO1              =  0.460G1N501R + 0.270GNO500K + 0.270GNK500A                 : ARR( 0.434E-13,  -900., 0.0);
+{  7499} G2N502X +PERO2              =  0.400G1N501R + 0.300GNO500K + 0.300GNK500A                 : ARR( 0.162E-13, -1400., 0.0);
+{  7500} G2N502X +PERO3              =  0.460G1N501R + 0.270GNO500K + 0.270GNK500A                 : ARR( 0.488E-13, -1250., 0.0);
+{  7501} G2N502X +PERO5              =  0.460G1N501R + 0.270GNO500K + 0.270GNK500A                 : ARR( 0.183E-11,   450., 0.0);
+{  7502} G2N502X +PERO6              =  0.300G1N501R + 0.350GNO500K + 0.350GNK500A                 : ARR( 0.168E-13, -1300., 0.0);
+{  7503} G2N502X +PERO9              =  0.650G1N501R + 0.350GNK500A                                : ARR( 0.100E-10,     0., 0.0);
+{  7504} G1H501N                     =       GND3001 +      GDO2000 +      GHO                     : ARR( 0.200E+15,  4695., 0.0);
+{  7505} G1H501N                     =       GHN400O +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  5296., 0.0);
+{  7506} GHH5006 +GHO                =       GHK5008 +      GHO                                    : ARR( 0.393E-10,     0., 0.0);
+{  7507} GHH5006 +GHO                =       GHK5007 +      GHO                                    : ARR( 0.483E-10,     0., 0.0);
+{  7508} GHH5006+HV               =       G1H5009 +      GHO                                    :  0.100E+01*SUN;
+{  7509} GHH5006+HV               =       G1H500c +      GHO                                    :  0.100E+01*SUN;
+{  7510} GHN500f +GHO                =       GNK500F +      GHO                                    : ARR( 0.340E-10,     0., 0.0);
+{  7511} GHN500f +GHO                =       GHN500g +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{  7512} GHN500f +GHO                =       G2N500Y                                               : ARR( 0.193E-11,  -190., 0.0);
+{  7513} GHN500f+HV               =       G1N500Y +      GHO                                    :  0.100E+01*SUN;
+{  7514} GHN500f+HV               =       G1H501O +      GNO2                                   :  0.100E+01*SUN;
+{  7515} G1H501O                     =       GKO500B +      GHO                                    : ARR( 0.800E+11,  1771., 0.0);
+{  7516} GNO500K +GHO                =       GNK500A +      GHO2                                   : ARR( 0.217E-11,     0., 0.0);
+{  7517} GNO500K +GHO                =       G2N502Y                                               : ARR( 0.149E-11,     0., 0.0);
+{  7518} GNO500K +GHO                =       GND500f +      GHO2                                   : ARR( 0.424E-11,     0., 0.0);
+{  7519} GNO500K+HV               =       G1O500F +      GNO2                                   :  0.100E+01*SUN;
+{  7520} G2N502Y +GNO                =       G1N502o +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  7521} G2N502Y +GNO                =       GNN502I                                               : ARR( 0.182E-12,  -360., 0.0);
+{  7522} G2N502Y +GHO2               =       GHN503D                                               : ARR( 0.242E-12, -1250., 0.0);
+{  7523} G2N502Y +GNO3               =       G1N502o +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  7524} G2N502Y +MEPERO             =  0.340G1N502o + 0.330GNO500a + 0.330GNK500k                 : ARR( 0.565E-13,  -845., 0.0);
+{  7525} G2N502Y +PERO1              =  0.460G1N502o + 0.270GNO500a + 0.270GNK500k                 : ARR( 0.434E-13,  -900., 0.0);
+{  7526} G2N502Y +PERO2              =  0.400G1N502o + 0.300GNO500a + 0.300GNK500k                 : ARR( 0.162E-13, -1400., 0.0);
+{  7527} G2N502Y +PERO3              =  0.460G1N502o + 0.270GNO500a + 0.270GNK500k                 : ARR( 0.488E-13, -1250., 0.0);
+{  7528} G2N502Y +PERO5              =  0.460G1N502o + 0.270GNO500a + 0.270GNK500k                 : ARR( 0.183E-11,   450., 0.0);
+{  7529} G2N502Y +PERO6              =  0.300G1N502o + 0.350GNO500a + 0.350GNK500k                 : ARR( 0.168E-13, -1300., 0.0);
+{  7530} G2N502Y +PERO9              =  0.650G1N502o + 0.350GNK500k                                : ARR( 0.100E-10,     0., 0.0);
+{  7531} G1N502o                     =       GND3001 +      GDO2000 +      GHO2                    : ARR( 0.200E+15,  3486., 0.0);
+{  7532} GHO500G +GHO                =       GKO500B +      GHO                                    : ARR( 0.347E-10,     0., 0.0);
+{  7533} GHO500G +GHO                =       GHK5007 +      GHO2                                   : ARR( 0.107E-10,     0., 0.0);
+{  7534} GHO500G +GHO                =       GHD500G +      GHO2                                   : ARR( 0.417E-11,     0., 0.0);
+{  7535} GHO500G +GHO                =       G2O500D                                               : ARR( 0.197E-11,  -190., 0.0);
+{  7536} GHO500G+HV               =       G1O500F +      GHO                                    :  0.100E+01*SUN;
+{  7537} GHN500g +GHO                =       GNK500G +      GHO                                    : ARR( 0.212E-10,     0., 0.0);
+{  7538} GHN500g +GHO                =       G2N500a                                               : ARR( 0.197E-11,  -190., 0.0);
+{  7539} GHN500g+HV               =       G1N500a +      GHO                                    :  0.100E+01*SUN;
+{  7540} GHN500g+HV               =       G3H3001 +      G2N2000                                :  0.100E+01*SUN;
+{  7541} GHN500g+HV               =       G1H501P +      GNO2                                   :  0.100E+01*SUN;
+{  7542} G1H501P +OXYGEN             =       GHD500F +      GHO2                                   : ARR( 0.600E-13,   398., 0.0);
+{  7543} G1H501P                     =       GKK5002 +      GHO                                    : ARR( 0.800E+11,  3753., 0.0);
+{  7544} GNN500g +GHO                =       G2N502Z                                               : ARR( 0.542E-12,     0., 0.0);
+{  7545} GNN500g +GHO                =       G2N502a                                               : ARR( 0.714E-12,     0., 0.0);
+{  7546} GNN500g+HV               =       G3K3000 +      GND2000 +      GNO2                    :  0.100E+01*SUN;
+{  7547} GNN500g+HV               =       G1N500b +      GNO2                                   :  0.100E+01*SUN;
+{  7548} GNN500g+HV               =       G1N502p +      GNO2                                   :  0.100E+01*SUN;
+{  7549} G2N502Z +GNO                =       G1N502q +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  7550} G2N502Z +GNO                =       GNN501G                                               : ARR( 0.182E-12,  -360., 0.0);
+{  7551} G2N502Z +GHO2               =       GHN503E                                               : ARR( 0.242E-12, -1250., 0.0);
+{  7552} G2N502Z +GNO3               =       G1N502q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  7553} G2N502Z +MEPERO             =  0.480G1N502q + 0.260GNN502J + 0.260GNN502K                 : ARR( 0.146E-12,  -445., 0.0);
+{  7554} G2N502Z +PERO1              =  0.600G1N502q + 0.200GNN502J + 0.200GNN502K                 : ARR( 0.112E-12,  -500., 0.0);
+{  7555} G2N502Z +PERO2              =  0.560G1N502q + 0.220GNN502J + 0.220GNN502K                 : ARR( 0.418E-13, -1000., 0.0);
+{  7556} G2N502Z +PERO3              =  0.600G1N502q + 0.200GNN502J + 0.200GNN502K                 : ARR( 0.126E-12,  -850., 0.0);
+{  7557} G2N502Z +PERO5              =  0.600G1N502q + 0.200GNN502J + 0.200GNN502K                 : ARR( 0.473E-11,   850., 0.0);
+{  7558} G2N502Z +PERO6              =  0.460G1N502q + 0.270GNN502J + 0.270GNN502K                 : ARR( 0.434E-13,  -900., 0.0);
+{  7559} G2N502Z +PERO9              =  0.800G1N502q + 0.200GNN502K                                : ARR( 0.100E-10,     0., 0.0);
+{  7560} G2N502a +GNO                =       G1N502r +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  7561} G2N502a +GNO                =       GNN501i                                               : ARR( 0.182E-12,  -360., 0.0);
+{  7562} G2N502a +GHO2               =       GHN503F                                               : ARR( 0.242E-12, -1250., 0.0);
+{  7563} G2N502a +GNO3               =       G1N502r +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  7564} G2N502a +MEPERO             =  0.340G1N502r + 0.330GNN502L + 0.330GNN501z                 : ARR( 0.565E-13,  -845., 0.0);
+{  7565} G2N502a +PERO1              =  0.460G1N502r + 0.270GNN502L + 0.270GNN501z                 : ARR( 0.434E-13,  -900., 0.0);
+{  7566} G2N502a +PERO2              =  0.400G1N502r + 0.300GNN502L + 0.300GNN501z                 : ARR( 0.162E-13, -1400., 0.0);
+{  7567} G2N502a +PERO3              =  0.460G1N502r + 0.270GNN502L + 0.270GNN501z                 : ARR( 0.488E-13, -1250., 0.0);
+{  7568} G2N502a +PERO5              =  0.460G1N502r + 0.270GNN502L + 0.270GNN501z                 : ARR( 0.183E-11,   450., 0.0);
+{  7569} G2N502a +PERO6              =  0.300G1N502r + 0.350GNN502L + 0.350GNN501z                 : ARR( 0.168E-13, -1300., 0.0);
+{  7570} G2N502a +PERO9              =  0.650G1N502r + 0.350GNN501z                                : ARR( 0.100E-10,     0., 0.0);
+{  7571} G1N502p +OXYGEN             =       GND500j +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{  7572} G1N502p                     =       G2N502b                                               : ARR( 0.160E+12,  5075., 0.0);
+{  7573} G1N502p                     =       GDK4002 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7323., 0.0);
+{  7574} G1N502q +OXYGEN             =       GNN502K +      GHO2                                   : ARR( 0.600E-13,   398., 0.0);
+{  7575} G1N502r                     =       GD02000 +      G3N3003                                : ARR( 0.200E+15,  2814., 0.0);
+{  7576} G2N502b +GNO                =       G1N502s +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  7577} G2N502b +GNO                =       GNN501A                                               : ARR( 0.182E-12,  -360., 0.0);
+{  7578} G2N502b +GHO2               =       GHN503G                                               : ARR( 0.242E-12, -1250., 0.0);
+{  7579} G2N502b +GNO3               =       G1N502s +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  7580} G2N502b +MEPERO             =  0.340G1N502s + 0.330GNK500v + 0.330GNK500c                 : ARR( 0.565E-13,  -845., 0.0);
+{  7581} G2N502b +PERO1              =  0.460G1N502s + 0.270GNK500v + 0.270GNK500c                 : ARR( 0.434E-13,  -900., 0.0);
+{  7582} G2N502b +PERO2              =  0.400G1N502s + 0.300GNK500v + 0.300GNK500c                 : ARR( 0.162E-13, -1400., 0.0);
+{  7583} G2N502b +PERO3              =  0.460G1N502s + 0.270GNK500v + 0.270GNK500c                 : ARR( 0.488E-13, -1250., 0.0);
+{  7584} G2N502b +PERO5              =  0.460G1N502s + 0.270GNK500v + 0.270GNK500c                 : ARR( 0.183E-11,   450., 0.0);
+{  7585} G2N502b +PERO6              =  0.300G1N502s + 0.350GNK500v + 0.350GNK500c                 : ARR( 0.168E-13, -1300., 0.0);
+{  7586} G2N502b +PERO9              =  0.650G1N502s + 0.350GNK500c                                : ARR( 0.100E-10,     0., 0.0);
+{  7587} G3N3003 +GHO2               =  0.800GGN3004 + 0.200GAN3004 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  7588} G3N3003 +GNO                =       GND2000 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{  7589} G3N3003 +GNO2               =       GPN3004                                               : ARR( 0.330E-08,     0.,-1.0);
+{  7590} G3N3003 +GNO3               =       GND2000 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{  7591} G3N3003 +MEPERO             =  0.685GND2000 + 0.315GAN3004 + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  7592} G3N3003 +PERO1              =  0.800GND2000 + 0.200GAN3004 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  7593} G3N3003 +PERO2              =  0.750GND2000 + 0.250GAN3004 + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  7594} G3N3003 +PERO3              =  0.800GND2000 + 0.200GAN3004 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  7595} G3N3003 +PERO5              =  0.650GND2000 + 0.350GAN3004 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  7596} G3N3003 +PERO6              =  0.650GND2000 + 0.350GAN3004 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  7597} G3N3003 +PERO9              =       GND2000 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{  7598} G1N502s                     =       GD02000 +      G3N3004                                : ARR( 0.200E+15,  2814., 0.0);
+{  7599} G3N3004 +GHO2               =  0.800GGN3002 + 0.200GAN3002 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  7600} G3N3004 +GNO                =       GDO2000 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{  7601} G3N3004 +GNO2               =       GPN3002                                               : ARR( 0.330E-08,     0.,-1.0);
+{  7602} G3N3004 +GNO3               =       GDO2000 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{  7603} G3N3004 +MEPERO             =  0.685GDO2000 + 0.315GAN3002 + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  7604} G3N3004 +PERO1              =  0.800GDO2000 + 0.200GAN3002 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  7605} G3N3004 +PERO2              =  0.750GDO2000 + 0.250GAN3002 + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  7606} G3N3004 +PERO3              =  0.800GDO2000 + 0.200GAN3002 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  7607} G3N3004 +PERO5              =  0.650GDO2000 + 0.350GAN3002 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  7608} G3N3004 +PERO6              =  0.650GDO2000 + 0.350GAN3002 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  7609} G3N3004 +PERO9              =       GDO2000 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{  7610} GHN500h +GHO                =       G2H500q                                               : ARR( 0.539E-12,     0., 0.0);
+{  7611} GHN500h +GHO                =       G2H500r                                               : ARR( 0.711E-12,     0., 0.0);
+{  7612} GHN500h +GHO                =       GNK500L +      GHO                                    : ARR( 0.510E-11,     0., 0.0);
+{  7613} GHN500h +GHO                =       G2N500b                                               : ARR( 0.193E-11,  -190., 0.0);
+{  7614} GHN500h+HV               =       G3K3000 +      GND2000 +      GHO                     :  0.100E+01*SUN;
+{  7615} GHN500h+HV               =       G1N500b +      GHO                                    :  0.100E+01*SUN;
+{  7616} GHN500h+HV               =       G1H501Q +      GNO2                                   :  0.100E+01*SUN;
+{  7617} G2H500q +GNO                =       G1H501R +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  7618} G2H500q +GNO                =       GHN501y                                               : ARR( 0.182E-12,  -360., 0.0);
+{  7619} G2H500q +GHO2               =       GHH500m                                               : ARR( 0.242E-12, -1250., 0.0);
+{  7620} G2H500q +GNO3               =       G1H501R +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  7621} G2H500q +MEPERO             =  0.480G1H501R + 0.260GHN500z + 0.260GHN503H                 : ARR( 0.146E-12,  -445., 0.0);
+{  7622} G2H500q +PERO1              =  0.600G1H501R + 0.200GHN500z + 0.200GHN503H                 : ARR( 0.112E-12,  -500., 0.0);
+{  7623} G2H500q +PERO2              =  0.560G1H501R + 0.220GHN500z + 0.220GHN503H                 : ARR( 0.418E-13, -1000., 0.0);
+{  7624} G2H500q +PERO3              =  0.600G1H501R + 0.200GHN500z + 0.200GHN503H                 : ARR( 0.126E-12,  -850., 0.0);
+{  7625} G2H500q +PERO5              =  0.600G1H501R + 0.200GHN500z + 0.200GHN503H                 : ARR( 0.473E-11,   850., 0.0);
+{  7626} G2H500q +PERO6              =  0.460G1H501R + 0.270GHN500z + 0.270GHN503H                 : ARR( 0.434E-13,  -900., 0.0);
+{  7627} G2H500q +PERO9              =  0.800G1H501R + 0.200GHN503H                                : ARR( 0.100E-10,     0., 0.0);
+{  7628} G2H500r +GNO                =       G1H501S +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  7629} G2H500r +GNO                =       GHN502b                                               : ARR( 0.182E-12,  -360., 0.0);
+{  7630} G2H500r +GHO2               =       GHH500n                                               : ARR( 0.242E-12, -1250., 0.0);
+{  7631} G2H500r +GNO3               =       G1H501S +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  7632} G2H500r +MEPERO             =  0.340G1H501S + 0.330GHN503I + 0.330GHN502o                 : ARR( 0.565E-13,  -845., 0.0);
+{  7633} G2H500r +PERO1              =  0.460G1H501S + 0.270GHN503I + 0.270GHN502o                 : ARR( 0.434E-13,  -900., 0.0);
+{  7634} G2H500r +PERO2              =  0.400G1H501S + 0.300GHN503I + 0.300GHN502o                 : ARR( 0.162E-13, -1400., 0.0);
+{  7635} G2H500r +PERO3              =  0.460G1H501S + 0.270GHN503I + 0.270GHN502o                 : ARR( 0.488E-13, -1250., 0.0);
+{  7636} G2H500r +PERO5              =  0.460G1H501S + 0.270GHN503I + 0.270GHN502o                 : ARR( 0.183E-11,   450., 0.0);
+{  7637} G2H500r +PERO6              =  0.300G1H501S + 0.350GHN503I + 0.350GHN502o                 : ARR( 0.168E-13, -1300., 0.0);
+{  7638} G2H500r +PERO9              =  0.650G1H501S + 0.350GHN502o                                : ARR( 0.100E-10,     0., 0.0);
+{  7639} G1H501Q +OXYGEN             =       GHD500T +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{  7640} G1H501Q                     =       GDK4002 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5784., 0.0);
+{  7641} G1H501R +OXYGEN             =       GHN503H +      GHO2                                   : ARR( 0.600E-13,   398., 0.0);
+{  7642} G1H501R                     =       GNK500S +      GHO                                    : ARR( 0.800E+11,  4380., 0.0);
+{  7643} G1H501S                     =       GD02000 +      G3H3002                                : ARR( 0.200E+15,  2777., 0.0);
+{  7644} G3H3002 +GHO2               =  0.800GGH3003 + 0.200GAH3003 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  7645} G3H3002 +GNO                =       GND2000 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{  7646} G3H3002 +GNO2               =       GPH3003                                               : ARR( 0.330E-08,     0.,-1.0);
+{  7647} G3H3002 +GNO3               =       GND2000 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{  7648} G3H3002 +MEPERO             =  0.685GND2000 + 0.315GAH3003 + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  7649} G3H3002 +PERO1              =  0.800GND2000 + 0.200GAH3003 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  7650} G3H3002 +PERO2              =  0.750GND2000 + 0.250GAH3003 + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  7651} G3H3002 +PERO3              =  0.800GND2000 + 0.200GAH3003 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  7652} G3H3002 +PERO5              =  0.650GND2000 + 0.350GAH3003 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  7653} G3H3002 +PERO6              =  0.650GND2000 + 0.350GAH3003 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  7654} G3H3002 +PERO9              =       GND2000 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{  7655} GNK500K +GHO                =       G2N502c                                               : ARR( 0.531E-12,     0., 0.0);
+{  7656} GNK500K +GHO                =       G2N502d                                               : ARR( 0.701E-12,     0., 0.0);
+{  7657} GNK500K +GHO                =       GNK500L +      GHO2                                   : ARR( 0.126E-11,     0., 0.0);
+{  7658} GNK500K +GHO                =       GDK5009 +      GNO2                                   : ARR( 0.146E-12,     0., 0.0);
+{  7659} GNK500K +GHO                =       G1N500b                                               : ARR( 0.210E-17,    85., 2.0);
+{  7660} GNK500K+HV               =       G3K3000 +      GND2000 +      GHO2                    :  0.100E+01*SUN;
+{  7661} GNK500K+HV               =       G1K500G +      GNO2                                   :  0.100E+01*SUN;
+{  7662} G2N502c +GNO                =       G1N502t +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  7663} G2N502c +GNO                =       GNN500p                                               : ARR( 0.182E-12,  -360., 0.0);
+{  7664} G2N502c +GHO2               =       GHN5019                                               : ARR( 0.242E-12, -1250., 0.0);
+{  7665} G2N502c +GNO3               =       G1N502t +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  7666} G2N502c +MEPERO             =  0.480G1N502t + 0.260GNK500O + 0.260GND500F                 : ARR( 0.146E-12,  -445., 0.0);
+{  7667} G2N502c +PERO1              =  0.600G1N502t + 0.200GNK500O + 0.200GND500F                 : ARR( 0.112E-12,  -500., 0.0);
+{  7668} G2N502c +PERO2              =  0.560G1N502t + 0.220GNK500O + 0.220GND500F                 : ARR( 0.418E-13, -1000., 0.0);
+{  7669} G2N502c +PERO3              =  0.600G1N502t + 0.200GNK500O + 0.200GND500F                 : ARR( 0.126E-12,  -850., 0.0);
+{  7670} G2N502c +PERO5              =  0.600G1N502t + 0.200GNK500O + 0.200GND500F                 : ARR( 0.473E-11,   850., 0.0);
+{  7671} G2N502c +PERO6              =  0.460G1N502t + 0.270GNK500O + 0.270GND500F                 : ARR( 0.434E-13,  -900., 0.0);
+{  7672} G2N502c +PERO9              =  0.800G1N502t + 0.200GND500F                                : ARR( 0.100E-10,     0., 0.0);
+{  7673} G2N502d +GNO                =       G1N502u +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  7674} G2N502d +GNO                =       GNN501j                                               : ARR( 0.182E-12,  -360., 0.0);
+{  7675} G2N502d +GHO2               =       GHN503J                                               : ARR( 0.242E-12, -1250., 0.0);
+{  7676} G2N502d +GNO3               =       G1N502u +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  7677} G2N502d +MEPERO             =  0.340G1N502u + 0.330GNK500f + 0.330GNK500r                 : ARR( 0.565E-13,  -845., 0.0);
+{  7678} G2N502d +PERO1              =  0.460G1N502u + 0.270GNK500f + 0.270GNK500r                 : ARR( 0.434E-13,  -900., 0.0);
+{  7679} G2N502d +PERO2              =  0.400G1N502u + 0.300GNK500f + 0.300GNK500r                 : ARR( 0.162E-13, -1400., 0.0);
+{  7680} G2N502d +PERO3              =  0.460G1N502u + 0.270GNK500f + 0.270GNK500r                 : ARR( 0.488E-13, -1250., 0.0);
+{  7681} G2N502d +PERO5              =  0.460G1N502u + 0.270GNK500f + 0.270GNK500r                 : ARR( 0.183E-11,   450., 0.0);
+{  7682} G2N502d +PERO6              =  0.300G1N502u + 0.350GNK500f + 0.350GNK500r                 : ARR( 0.168E-13, -1300., 0.0);
+{  7683} G2N502d +PERO9              =  0.650G1N502u + 0.350GNK500r                                : ARR( 0.100E-10,     0., 0.0);
+{  7684} G1N502t +OXYGEN             =       GND500F +      GHO2                                   : ARR( 0.600E-13,   398., 0.0);
+{  7685} G1N502t                     =       GNK500S +      GHO2                                   : ARR( 0.800E+11,  4727., 0.0);
+{  7686} G1N502u                     =       GD02000 +      G3N3002                                : ARR( 0.200E+15,  2777., 0.0);
+{  7687} GNK500L +GHO                =       G2N502e                                               : ARR( 0.543E-12,     0., 0.0);
+{  7688} GNK500L +GHO                =       G2N502f                                               : ARR( 0.716E-12,     0., 0.0);
+{  7689} GNK500L+HV               =       G3K3000 +      G3N2000                                :  0.100E+01*SUN;
+{  7690} GNK500L+HV               =       G1K500O +      GNO2                                   :  0.100E+01*SUN;
+{  7691} G2N502e +GNO                =       G1N502v +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  7692} G2N502e +GNO                =       GNN501L                                               : ARR( 0.182E-12,  -360., 0.0);
+{  7693} G2N502e +GHO2               =       GHN503K                                               : ARR( 0.242E-12, -1250., 0.0);
+{  7694} G2N502e +GNO3               =       G1N502v +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  7695} G2N502e +MEPERO             =  0.480G1N502v + 0.260GNK500S + 0.260GND500k                 : ARR( 0.146E-12,  -445., 0.0);
+{  7696} G2N502e +PERO1              =  0.600G1N502v + 0.200GNK500S + 0.200GND500k                 : ARR( 0.112E-12,  -500., 0.0);
+{  7697} G2N502e +PERO2              =  0.560G1N502v + 0.220GNK500S + 0.220GND500k                 : ARR( 0.418E-13, -1000., 0.0);
+{  7698} G2N502e +PERO3              =  0.600G1N502v + 0.200GNK500S + 0.200GND500k                 : ARR( 0.126E-12,  -850., 0.0);
+{  7699} G2N502e +PERO5              =  0.600G1N502v + 0.200GNK500S + 0.200GND500k                 : ARR( 0.473E-11,   850., 0.0);
+{  7700} G2N502e +PERO6              =  0.460G1N502v + 0.270GNK500S + 0.270GND500k                 : ARR( 0.434E-13,  -900., 0.0);
+{  7701} G2N502e +PERO9              =  0.800G1N502v + 0.200GND500k                                : ARR( 0.100E-10,     0., 0.0);
+{  7702} G2N502f +GNO                =       G1N502w +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  7703} G2N502f +GNO                =       GNN501k                                               : ARR( 0.182E-12,  -360., 0.0);
+{  7704} G2N502f +GHO2               =       GHN503L                                               : ARR( 0.242E-12, -1250., 0.0);
+{  7705} G2N502f +GNO3               =       G1N502w +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  7706} G2N502f +MEPERO             =  0.340G1N502w + 0.330GNK500w + 0.330GNK500s                 : ARR( 0.565E-13,  -845., 0.0);
+{  7707} G2N502f +PERO1              =  0.460G1N502w + 0.270GNK500w + 0.270GNK500s                 : ARR( 0.434E-13,  -900., 0.0);
+{  7708} G2N502f +PERO2              =  0.400G1N502w + 0.300GNK500w + 0.300GNK500s                 : ARR( 0.162E-13, -1400., 0.0);
+{  7709} G2N502f +PERO3              =  0.460G1N502w + 0.270GNK500w + 0.270GNK500s                 : ARR( 0.488E-13, -1250., 0.0);
+{  7710} G2N502f +PERO5              =  0.460G1N502w + 0.270GNK500w + 0.270GNK500s                 : ARR( 0.183E-11,   450., 0.0);
+{  7711} G2N502f +PERO6              =  0.300G1N502w + 0.350GNK500w + 0.350GNK500s                 : ARR( 0.168E-13, -1300., 0.0);
+{  7712} G2N502f +PERO9              =  0.650G1N502w + 0.350GNK500s                                : ARR( 0.100E-10,     0., 0.0);
+{  7713} G1N502v +OXYGEN             =       GND500k +      GHO2                                   : ARR( 0.600E-13,   398., 0.0);
+{  7714} G1N502w                     =       GD02000 +      G3N2000 +      GCO                     : ARR( 0.200E+15,  3071., 0.0);
+{  7715} GGN3000 +GHO                =       G3N3000                                               : ARR( 0.202E-11,  -190., 0.0);
+{  7716} GGN3000+HV               =       G1G3000 +      GNO2                                   :  0.100E+01*SUN;
+{  7717} GGN3000+HV               =       G2N2000 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{  7718} GAN3000 +GHO                =       G2A3003                                               : ARR( 0.128E-12,     0., 0.0);
+{  7719} GAN3000 +GHO                =       GAD3000 +      GNO2                                   : ARR( 0.460E-13,     0., 0.0);
+{  7720} GAN3000 +GHO                =       G2N2000 +      GCO2                                   : ARR( 0.520E-12,     0., 0.0);
+{  7721} GAN3000+HV               =       G1A3000 +      GNO2                                   :  0.100E+01*SUN;
+{  7722} G2A3003 +GNO                =       G1A3003 +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{  7723} G2A3003 +GNO                =       GAN3004                                               : ARR( 0.622E-13,  -360., 0.0);
+{  7724} G2A3003 +GHO2               =       GAH3003                                               : ARR( 0.179E-12, -1250., 0.0);
+{  7725} G2A3003 +GNO3               =       G1A3003 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  7726} G2A3003 +MEPERO             =  0.340G1A3003 + 0.330GAN3003 + 0.330GAN3005                 : ARR( 0.565E-13,  -845., 0.0);
+{  7727} G2A3003 +PERO1              =  0.460G1A3003 + 0.270GAN3003 + 0.270GAN3005                 : ARR( 0.434E-13,  -900., 0.0);
+{  7728} G2A3003 +PERO2              =  0.400G1A3003 + 0.300GAN3003 + 0.300GAN3005                 : ARR( 0.162E-13, -1400., 0.0);
+{  7729} G2A3003 +PERO3              =  0.460G1A3003 + 0.270GAN3003 + 0.270GAN3005                 : ARR( 0.488E-13, -1250., 0.0);
+{  7730} G2A3003 +PERO5              =  0.460G1A3003 + 0.270GAN3003 + 0.270GAN3005                 : ARR( 0.183E-11,   450., 0.0);
+{  7731} G2A3003 +PERO6              =  0.300G1A3003 + 0.350GAN3003 + 0.350GAN3005                 : ARR( 0.168E-13, -1300., 0.0);
+{  7732} G2A3003 +PERO9              =  0.650G1A3003 + 0.350GAN3005                                : ARR( 0.100E-10,     0., 0.0);
+{  7733} G1A3003                     =       GCO     +      GND2000 +      GHO                     : ARR( 0.200E+15,  5230., 0.0);
+{  7734} GPN3000                     =       G3N3000 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{  7735} GPN3000 +GHO                =       GPD3000 +      GNO2                                   : ARR( 0.460E-13,     0., 0.0);
+{  7736} GPN3000 +GHO                =       G2P3003                                               : ARR( 0.172E-12,     0., 0.0);
+{  7737} GPN3000+HV               =       G1P3000 +      GNO2                                   :  0.100E+01*SUN;
+{  7738} GPN3000+HV               =       G3N3000 +      GNO2                                   :  0.100E+01*SUN;
+{  7739} G2P3003 +GNO                =       G1P3003 +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{  7740} G2P3003 +GNO                =       GPN3004                                               : ARR( 0.622E-13,  -360., 0.0);
+{  7741} G2P3003 +GHO2               =       GPH3003                                               : ARR( 0.179E-12, -1250., 0.0);
+{  7742} G2P3003 +GNO3               =       G1P3003 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  7743} G2P3003 +MEPERO             =  0.340G1P3003 + 0.330GPN3003 + 0.330GPN3005                 : ARR( 0.565E-13,  -845., 0.0);
+{  7744} G2P3003 +PERO1              =  0.460G1P3003 + 0.270GPN3003 + 0.270GPN3005                 : ARR( 0.434E-13,  -900., 0.0);
+{  7745} G2P3003 +PERO2              =  0.400G1P3003 + 0.300GPN3003 + 0.300GPN3005                 : ARR( 0.162E-13, -1400., 0.0);
+{  7746} G2P3003 +PERO3              =  0.460G1P3003 + 0.270GPN3003 + 0.270GPN3005                 : ARR( 0.488E-13, -1250., 0.0);
+{  7747} G2P3003 +PERO5              =  0.460G1P3003 + 0.270GPN3003 + 0.270GPN3005                 : ARR( 0.183E-11,   450., 0.0);
+{  7748} G2P3003 +PERO6              =  0.300G1P3003 + 0.350GPN3003 + 0.350GPN3005                 : ARR( 0.168E-13, -1300., 0.0);
+{  7749} G2P3003 +PERO9              =  0.650G1P3003 + 0.350GPN3005                                : ARR( 0.100E-10,     0., 0.0);
+{  7750} G1P3003                     =       GND2000 +      GCO     +      GNO2                    : ARR( 0.200E+15,  5261., 0.0);
+{  7751} GHN500i +GHO                =       G2H500s                                               : ARR( 0.143E-11,     0., 0.0);
+{  7752} GHN500i +GHO                =       GNN500h +      GHO                                    : ARR( 0.163E-10,     0., 0.0);
+{  7753} GHN500i +GHO                =       G2N500c                                               : ARR( 0.193E-11,  -190., 0.0);
+{  7754} GHN500i+HV               =       G1H501T +      GNO2                                   :  0.100E+01*SUN;
+{  7755} GHN500i+HV               =       G1H501U +      GNO2                                   :  0.100E+01*SUN;
+{  7756} GHN500i+HV               =       G1N500d +      GHO                                    :  0.100E+01*SUN;
+{  7757} G2H500s +GNO                =       G1H501W +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  7758} G2H500s +GNO                =       GHN502c                                               : ARR( 0.182E-12,  -360., 0.0);
+{  7759} G2H500s +GHO2               =       GHH500o                                               : ARR( 0.242E-12, -1250., 0.0);
+{  7760} G2H500s +GNO3               =       G1H501W +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  7761} G2H500s +MEPERO             =  0.340G1H501W + 0.330GHN501O + 0.330GHN502C                 : ARR( 0.565E-13,  -845., 0.0);
+{  7762} G2H500s +PERO1              =  0.460G1H501W + 0.270GHN501O + 0.270GHN502C                 : ARR( 0.434E-13,  -900., 0.0);
+{  7763} G2H500s +PERO2              =  0.400G1H501W + 0.300GHN501O + 0.300GHN502C                 : ARR( 0.162E-13, -1400., 0.0);
+{  7764} G2H500s +PERO3              =  0.460G1H501W + 0.270GHN501O + 0.270GHN502C                 : ARR( 0.488E-13, -1250., 0.0);
+{  7765} G2H500s +PERO5              =  0.460G1H501W + 0.270GHN501O + 0.270GHN502C                 : ARR( 0.183E-11,   450., 0.0);
+{  7766} G2H500s +PERO6              =  0.300G1H501W + 0.350GHN501O + 0.350GHN502C                 : ARR( 0.168E-13, -1300., 0.0);
+{  7767} G2H500s +PERO9              =  0.650G1H501W + 0.350GHN502C                                : ARR( 0.100E-10,     0., 0.0);
+{  7768} G1H501T                     =       G2H500t                                               : ARR( 0.160E+12,  3000., 0.0);
+{  7769} G1H501U                     =       GND5001 +      GHO                                    : ARR( 0.160E+12,  2186., 0.0);
+{  7770} G1H501W                     =       GHN501Q +      GNO2                                   : ARR( 0.160E+12,  5251., 0.0);
+{  7771} G1H501W                     =       G2N3004 +      GHD2000                                : ARR( 0.200E+15,  6985., 0.0);
+{  7772} G1H501W                     =       GNN4001 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  7140., 0.0);
+{  7773} G2H500t +GNO                =       G1H501X +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  7774} G2H500t +GNO                =       GHN502H                                               : ARR( 0.182E-12,  -360., 0.0);
+{  7775} G2H500t +GHO2               =       GHH500p                                               : ARR( 0.242E-12, -1250., 0.0);
+{  7776} G2H500t +GNO3               =       G1H501X +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  7777} G2H500t +MEPERO             =  0.340G1H501X + 0.330GHN501P + 0.330GHN501H                 : ARR( 0.565E-13,  -845., 0.0);
+{  7778} G2H500t +PERO1              =  0.460G1H501X + 0.270GHN501P + 0.270GHN501H                 : ARR( 0.434E-13,  -900., 0.0);
+{  7779} G2H500t +PERO2              =  0.400G1H501X + 0.300GHN501P + 0.300GHN501H                 : ARR( 0.162E-13, -1400., 0.0);
+{  7780} G2H500t +PERO3              =  0.460G1H501X + 0.270GHN501P + 0.270GHN501H                 : ARR( 0.488E-13, -1250., 0.0);
+{  7781} G2H500t +PERO5              =  0.460G1H501X + 0.270GHN501P + 0.270GHN501H                 : ARR( 0.183E-11,   450., 0.0);
+{  7782} G2H500t +PERO6              =  0.300G1H501X + 0.350GHN501P + 0.350GHN501H                 : ARR( 0.168E-13, -1300., 0.0);
+{  7783} G2H500t +PERO9              =  0.650G1H501X + 0.350GHN501H                                : ARR( 0.100E-10,     0., 0.0);
+{  7784} G1H501X                     =       GHN501Q +      GHO2                                   : ARR( 0.160E+12,  3252., 0.0);
+{  7785} GNN500h +GHO                =       G3N500C                                               : ARR( 0.226E-10,     0., 0.0);
+{  7786} GNN500h +GNO3               =       G3N500C +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{  7787} GNN500h+HV               =       G1N502x +      GNO2                                   :  0.100E+01*SUN;
+{  7788} GNN500h+HV               =       G1N502y +      GNO2                                   :  0.100E+01*SUN;
+{  7789} GNN500h+HV               =       G2N400H +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{  7790} GNN500h+HV               =       G2N3005 +      GD02000 +      GNO2                    :  0.100E+01*SUN;
+{  7791} G3N500C +GHO2               =  0.800GGN500G + 0.200GAN500D + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  7792} G3N500C +GNO                =       G2N400H +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{  7793} G3N500C +GNO2               =       GPN500A                                               : ARR( 0.330E-08,     0.,-1.0);
+{  7794} G3N500C +GNO3               =       G2N400H +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{  7795} G3N500C +MEPERO             =  0.685G2N400H + 0.315GAN500D + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  7796} G3N500C +PERO1              =  0.800G2N400H + 0.200GAN500D + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  7797} G3N500C +PERO2              =  0.750G2N400H + 0.250GAN500D + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  7798} G3N500C +PERO3              =  0.800G2N400H + 0.200GAN500D + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  7799} G3N500C +PERO5              =  0.650G2N400H + 0.350GAN500D + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  7800} G3N500C +PERO6              =  0.650G2N400H + 0.350GAN500D + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  7801} G3N500C +PERO9              =       G2N400H +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{  7802} G1N502x                     =       G2N502g                                               : ARR( 0.160E+12,  3221., 0.0);
+{  7803} G1N502y                     =       G3N5001                                               : ARR( 0.800E+11,  4559., 0.0);
+{  7804} G1N502y                     =       GND2000 +      G2D3001                                : ARR( 0.200E+15,  7116., 0.0);
+{  7805} G2N400H +GNO                =       G1N400H +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  7806} G2N400H +GNO                =       GNN400B                                               : ARR( 0.111E-12,  -360., 0.0);
+{  7807} G2N400H +GHO2               =       GHN400P                                               : ARR( 0.214E-12, -1250., 0.0);
+{  7808} G2N400H +GNO3               =       G1N400H +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  7809} G2N400H +MEPERO             =  0.480G1N400H + 0.260GNN4006 + 0.260GNN4001                 : ARR( 0.146E-12,  -445., 0.0);
+{  7810} G2N400H +PERO1              =  0.600G1N400H + 0.200GNN4006 + 0.200GNN4001                 : ARR( 0.112E-12,  -500., 0.0);
+{  7811} G2N400H +PERO2              =  0.560G1N400H + 0.220GNN4006 + 0.220GNN4001                 : ARR( 0.418E-13, -1000., 0.0);
+{  7812} G2N400H +PERO3              =  0.600G1N400H + 0.200GNN4006 + 0.200GNN4001                 : ARR( 0.126E-12,  -850., 0.0);
+{  7813} G2N400H +PERO5              =  0.600G1N400H + 0.200GNN4006 + 0.200GNN4001                 : ARR( 0.473E-11,   850., 0.0);
+{  7814} G2N400H +PERO6              =  0.460G1N400H + 0.270GNN4006 + 0.270GNN4001                 : ARR( 0.434E-13,  -900., 0.0);
+{  7815} G2N400H +PERO9              =  0.800G1N400H + 0.200GNN4001                                : ARR( 0.100E-10,     0., 0.0);
+{  7816} G2N502g +GNO                =       G1N502z +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  7817} G2N502g +GNO                =       GNN501T                                               : ARR( 0.182E-12,  -360., 0.0);
+{  7818} G2N502g +GHO2               =       GHN503M                                               : ARR( 0.242E-12, -1250., 0.0);
+{  7819} G2N502g +GNO3               =       G1N502z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  7820} G2N502g +MEPERO             =  0.340G1N502z + 0.330GND500l + 0.330GND500N                 : ARR( 0.565E-13,  -845., 0.0);
+{  7821} G2N502g +PERO1              =  0.460G1N502z + 0.270GND500l + 0.270GND500N                 : ARR( 0.434E-13,  -900., 0.0);
+{  7822} G2N502g +PERO2              =  0.400G1N502z + 0.300GND500l + 0.300GND500N                 : ARR( 0.162E-13, -1400., 0.0);
+{  7823} G2N502g +PERO3              =  0.460G1N502z + 0.270GND500l + 0.270GND500N                 : ARR( 0.488E-13, -1250., 0.0);
+{  7824} G2N502g +PERO5              =  0.460G1N502z + 0.270GND500l + 0.270GND500N                 : ARR( 0.183E-11,   450., 0.0);
+{  7825} G2N502g +PERO6              =  0.300G1N502z + 0.350GND500l + 0.350GND500N                 : ARR( 0.168E-13, -1300., 0.0);
+{  7826} G2N502g +PERO9              =  0.650G1N502z + 0.350GND500N                                : ARR( 0.100E-10,     0., 0.0);
+{  7827} G1N400H +OXYGEN             =       GNN4001 +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{  7828} G1N400H                     =       GND4006 +      GNO2                                   : ARR( 0.160E+12,  5251., 0.0);
+{  7829} G1N502z                     =       GND500m +      GHO2                                   : ARR( 0.160E+12,  3252., 0.0);
+{  7830} G1N502z                     =       GND4002 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5437., 0.0);
+{  7831} GHN500j +GHO                =       GNN500W +      GHO                                    : ARR( 0.339E-10,     0., 0.0);
+{  7832} GHN500j +GHO                =       G2N500d                                               : ARR( 0.192E-11,  -190., 0.0);
+{  7833} GHN500j+HV               =       G1N500e +      GHO                                    :  0.100E+01*SUN;
+{  7834} GHN500j+HV               =       G1H501Y +      GNO2                                   :  0.100E+01*SUN;
+{  7835} GHN500j+HV               =       G1H501Z +      GNO2                                   :  0.100E+01*SUN;
+{  7836} G1H501Y                     =       G2H500u                                               : ARR( 0.240E+12,  4177., 0.0);
+{  7837} G1H501Y                     =       G2H3003 +      GND2000                                : ARR( 0.200E+15,  6983., 0.0);
+{  7838} G1H501Z                     =       GNK5006 +      GHO                                    : ARR( 0.800E+11,  1771., 0.0);
+{  7839} G2H500u +GNO                =       G1H501a +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  7840} G2H500u +GNO                =       GHN5015                                               : ARR( 0.182E-12,  -360., 0.0);
+{  7841} G2H500u +GHO2               =       GHH500E                                               : ARR( 0.242E-12, -1250., 0.0);
+{  7842} G2H500u +GNO3               =       G1H501a +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  7843} G2H500u +MEPERO             =  0.480G1H501a + 0.260GHN5011 + 0.260GHN5021                 : ARR( 0.164E-12,  -795., 0.0);
+{  7844} G2H500u +PERO1              =  0.600G1H501a + 0.200GHN5011 + 0.200GHN5021                 : ARR( 0.126E-12,  -850., 0.0);
+{  7845} G2H500u +PERO2              =  0.560G1H501a + 0.220GHN5011 + 0.220GHN5021                 : ARR( 0.471E-13, -1350., 0.0);
+{  7846} G2H500u +PERO3              =  0.600G1H501a + 0.200GHN5011 + 0.200GHN5021                 : ARR( 0.142E-12, -1200., 0.0);
+{  7847} G2H500u +PERO5              =  0.600G1H501a + 0.200GHN5011 + 0.200GHN5021                 : ARR( 0.533E-11,   500., 0.0);
+{  7848} G2H500u +PERO6              =  0.460G1H501a + 0.270GHN5011 + 0.270GHN5021                 : ARR( 0.488E-13, -1250., 0.0);
+{  7849} G2H500u +PERO9              =  0.800G1H501a + 0.200GHN5021                                : ARR( 0.100E-10,     0., 0.0);
+{  7850} G1H501a                     =       GHN5013 +      GHO2                                   : ARR( 0.800E+11,  2744., 0.0);
+{  7851} G1H501a                     =       GND4003 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  6008., 0.0);
+{  7852} GHN500k +GHO                =       G2H500v                                               : ARR( 0.117E-11,     0., 0.0);
+{  7853} GHN500k +GHO                =       GNN500g +      GHO                                    : ARR( 0.837E-11,     0., 0.0);
+{  7854} GHN500k +GHO                =       G2N500e                                               : ARR( 0.193E-11,  -190., 0.0);
+{  7855} GHN500k+HV               =       G1N500f +      GHO                                    :  0.100E+01*SUN;
+{  7856} GHN500k+HV               =       G1H501b +      GNO2                                   :  0.100E+01*SUN;
+{  7857} GHN500k+HV               =       G1H501c +      GNO2                                   :  0.100E+01*SUN;
+{  7858} G2H500v +GNO                =       G1H501d +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  7859} G2H500v +GNO                =       GHN502d                                               : ARR( 0.182E-12,  -360., 0.0);
+{  7860} G2H500v +GHO2               =       GHH500q                                               : ARR( 0.242E-12, -1250., 0.0);
+{  7861} G2H500v +GNO3               =       G1H501d +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  7862} G2H500v +MEPERO             =  0.340G1H501d + 0.330GHN503N + 0.330GHN502p                 : ARR( 0.565E-13,  -845., 0.0);
+{  7863} G2H500v +PERO1              =  0.460G1H501d + 0.270GHN503N + 0.270GHN502p                 : ARR( 0.434E-13,  -900., 0.0);
+{  7864} G2H500v +PERO2              =  0.400G1H501d + 0.300GHN503N + 0.300GHN502p                 : ARR( 0.162E-13, -1400., 0.0);
+{  7865} G2H500v +PERO3              =  0.460G1H501d + 0.270GHN503N + 0.270GHN502p                 : ARR( 0.488E-13, -1250., 0.0);
+{  7866} G2H500v +PERO5              =  0.460G1H501d + 0.270GHN503N + 0.270GHN502p                 : ARR( 0.183E-11,   450., 0.0);
+{  7867} G2H500v +PERO6              =  0.300G1H501d + 0.350GHN503N + 0.350GHN502p                 : ARR( 0.168E-13, -1300., 0.0);
+{  7868} G2H500v +PERO9              =  0.650G1H501d + 0.350GHN502p                                : ARR( 0.100E-10,     0., 0.0);
+{  7869} G1H501b                     =       G2H500w                                               : ARR( 0.240E+12,  4177., 0.0);
+{  7870} G1H501b                     =       GD03000 +      GND2000 +      GHO                     : ARR( 0.200E+15,  5198., 0.0);
+{  7871} G1H501c                     =       G2H500x                                               : ARR( 0.160E+12,  3092., 0.0);
+{  7872} G1H501d                     =       GD02000 +      GNN3005 +      GHO                     : ARR( 0.200E+15,  4440., 0.0);
+{  7873} G2H500w +GNO                =       G1H501e +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  7874} G2H500w +GNO                =       GHN5016                                               : ARR( 0.182E-12,  -360., 0.0);
+{  7875} G2H500w +GHO2               =       GHH500D                                               : ARR( 0.242E-12, -1250., 0.0);
+{  7876} G2H500w +GNO3               =       G1H501e +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  7877} G2H500w +MEPERO             =  0.480G1H501e + 0.260GHN5012 + 0.260GHN501C                 : ARR( 0.146E-12,  -445., 0.0);
+{  7878} G2H500w +PERO1              =  0.600G1H501e + 0.200GHN5012 + 0.200GHN501C                 : ARR( 0.112E-12,  -500., 0.0);
+{  7879} G2H500w +PERO2              =  0.560G1H501e + 0.220GHN5012 + 0.220GHN501C                 : ARR( 0.418E-13, -1000., 0.0);
+{  7880} G2H500w +PERO3              =  0.600G1H501e + 0.200GHN5012 + 0.200GHN501C                 : ARR( 0.126E-12,  -850., 0.0);
+{  7881} G2H500w +PERO5              =  0.600G1H501e + 0.200GHN5012 + 0.200GHN501C                 : ARR( 0.473E-11,   850., 0.0);
+{  7882} G2H500w +PERO6              =  0.460G1H501e + 0.270GHN5012 + 0.270GHN501C                 : ARR( 0.434E-13,  -900., 0.0);
+{  7883} G2H500w +PERO9              =  0.800G1H501e + 0.200GHN501C                                : ARR( 0.100E-10,     0., 0.0);
+{  7884} G2H500x +GNO                =       G1H501f +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  7885} G2H500x +GNO                =       GHN503B                                               : ARR( 0.182E-12,  -360., 0.0);
+{  7886} G2H500x +GHO2               =       GHH500r                                               : ARR( 0.242E-12, -1250., 0.0);
+{  7887} G2H500x +GNO3               =       G1H501f +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  7888} G2H500x +MEPERO             =  0.340G1H501f + 0.330GHN503O + 0.330GHN501d                 : ARR( 0.565E-13,  -845., 0.0);
+{  7889} G2H500x +PERO1              =  0.460G1H501f + 0.270GHN503O + 0.270GHN501d                 : ARR( 0.434E-13,  -900., 0.0);
+{  7890} G2H500x +PERO2              =  0.400G1H501f + 0.300GHN503O + 0.300GHN501d                 : ARR( 0.162E-13, -1400., 0.0);
+{  7891} G2H500x +PERO3              =  0.460G1H501f + 0.270GHN503O + 0.270GHN501d                 : ARR( 0.488E-13, -1250., 0.0);
+{  7892} G2H500x +PERO5              =  0.460G1H501f + 0.270GHN503O + 0.270GHN501d                 : ARR( 0.183E-11,   450., 0.0);
+{  7893} G2H500x +PERO6              =  0.300G1H501f + 0.350GHN503O + 0.350GHN501d                 : ARR( 0.168E-13, -1300., 0.0);
+{  7894} G2H500x +PERO9              =  0.650G1H501f + 0.350GHN501d                                : ARR( 0.100E-10,     0., 0.0);
+{  7895} G1H501e                     =       GHN5014 +      GHO2                                   : ARR( 0.800E+11,  2744., 0.0);
+{  7896} G1H501f                     =       GHN503P +      GHO2                                   : ARR( 0.160E+12,  3252., 0.0);
+{  7897} G1H501f                     =       GD02000 +      GND3004 +      GHO                     : ARR( 0.200E+15,  4440., 0.0);
+{  7898} GNN500i +GHO                =       G2N502h                                               : ARR( 0.127E-11,     0., 0.0);
+{  7899} GNN500i +GHO                =       GNN500g +      GHO2                                   : ARR( 0.228E-11,     0., 0.0);
+{  7900} GNN500i+HV               =       G1N5031 +      GNO2                                   :  0.100E+01*SUN;
+{  7901} GNN500i+HV               =       G1N5032 +      GNO2                                   :  0.100E+01*SUN;
+{  7902} G2N502h +GNO                =       G1N5033 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  7903} G2N502h +GNO                =       GNN501e                                               : ARR( 0.182E-12,  -360., 0.0);
+{  7904} G2N502h +GHO2               =       GHN503Q                                               : ARR( 0.242E-12, -1250., 0.0);
+{  7905} G2N502h +GNO3               =       G1N5033 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  7906} G2N502h +MEPERO             =  0.340G1N5033 + 0.330GNN502M + 0.330GNN501y                 : ARR( 0.565E-13,  -845., 0.0);
+{  7907} G2N502h +PERO1              =  0.460G1N5033 + 0.270GNN502M + 0.270GNN501y                 : ARR( 0.434E-13,  -900., 0.0);
+{  7908} G2N502h +PERO2              =  0.400G1N5033 + 0.300GNN502M + 0.300GNN501y                 : ARR( 0.162E-13, -1400., 0.0);
+{  7909} G2N502h +PERO3              =  0.460G1N5033 + 0.270GNN502M + 0.270GNN501y                 : ARR( 0.488E-13, -1250., 0.0);
+{  7910} G2N502h +PERO5              =  0.460G1N5033 + 0.270GNN502M + 0.270GNN501y                 : ARR( 0.183E-11,   450., 0.0);
+{  7911} G2N502h +PERO6              =  0.300G1N5033 + 0.350GNN502M + 0.350GNN501y                 : ARR( 0.168E-13, -1300., 0.0);
+{  7912} G2N502h +PERO9              =  0.650G1N5033 + 0.350GNN501y                                : ARR( 0.100E-10,     0., 0.0);
+{  7913} G1N5031                     =       GD03000 +      GND2000 +      GHO2                    : ARR( 0.200E+15,  3989., 0.0);
+{  7914} G1N5032                     =       G2N502i                                               : ARR( 0.160E+12,  3092., 0.0);
+{  7915} G1N5033                     =       GD02000 +      GNN3005 +      GHO2                    : ARR( 0.200E+15,  3232., 0.0);
+{  7916} G2N502i +GNO                =       G1N5034 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  7917} G2N502i +GNO                =       GNN502I                                               : ARR( 0.182E-12,  -360., 0.0);
+{  7918} G2N502i +GHO2               =       GHN503R                                               : ARR( 0.242E-12, -1250., 0.0);
+{  7919} G2N502i +GNO3               =       G1N5034 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  7920} G2N502i +MEPERO             =  0.340G1N5034 + 0.330GNO500X + 0.330GNK500b                 : ARR( 0.565E-13,  -845., 0.0);
+{  7921} G2N502i +PERO1              =  0.460G1N5034 + 0.270GNO500X + 0.270GNK500b                 : ARR( 0.434E-13,  -900., 0.0);
+{  7922} G2N502i +PERO2              =  0.400G1N5034 + 0.300GNO500X + 0.300GNK500b                 : ARR( 0.162E-13, -1400., 0.0);
+{  7923} G2N502i +PERO3              =  0.460G1N5034 + 0.270GNO500X + 0.270GNK500b                 : ARR( 0.488E-13, -1250., 0.0);
+{  7924} G2N502i +PERO5              =  0.460G1N5034 + 0.270GNO500X + 0.270GNK500b                 : ARR( 0.183E-11,   450., 0.0);
+{  7925} G2N502i +PERO6              =  0.300G1N5034 + 0.350GNO500X + 0.350GNK500b                 : ARR( 0.168E-13, -1300., 0.0);
+{  7926} G2N502i +PERO9              =  0.650G1N5034 + 0.350GNK500b                                : ARR( 0.100E-10,     0., 0.0);
+{  7927} G1N5034                     =       GD02000 +      GND3004 +      GHO2                    : ARR( 0.200E+15,  3232., 0.0);
+{  7928} GHN500l +GHO                =       GNK5006 +      GHO                                    : ARR( 0.349E-10,     0., 0.0);
+{  7929} GHN500l +GHO                =       G2N500f                                               : ARR( 0.198E-11,  -190., 0.0);
+{  7930} GHN500l+HV               =       G1N500g +      GHO                                    :  0.100E+01*SUN;
+{  7931} GHN500l+HV               =       G1H501g +      GNO2                                   :  0.100E+01*SUN;
+{  7932} G1H501g                     =       G2H500y                                               : ARR( 0.240E+12,  4177., 0.0);
+{  7933} G1H501g                     =       GHD4002 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  5041., 0.0);
+{  7934} G2H500y +GNO                =       G1H501h +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  7935} G2H500y +GNO                =       GHN500w                                               : ARR( 0.182E-12,  -360., 0.0);
+{  7936} G2H500y +GHO2               =       GHH500F                                               : ARR( 0.242E-12, -1250., 0.0);
+{  7937} G2H500y +GNO3               =       G1H501h +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  7938} G2H500y +MEPERO             =  0.480G1H501h + 0.260GHO500I + 0.260GHD5006                 : ARR( 0.164E-12,  -795., 0.0);
+{  7939} G2H500y +PERO1              =  0.600G1H501h + 0.200GHO500I + 0.200GHD5006                 : ARR( 0.126E-12,  -850., 0.0);
+{  7940} G2H500y +PERO2              =  0.560G1H501h + 0.220GHO500I + 0.220GHD5006                 : ARR( 0.471E-13, -1350., 0.0);
+{  7941} G2H500y +PERO3              =  0.600G1H501h + 0.200GHO500I + 0.200GHD5006                 : ARR( 0.142E-12, -1200., 0.0);
+{  7942} G2H500y +PERO5              =  0.600G1H501h + 0.200GHO500I + 0.200GHD5006                 : ARR( 0.533E-11,   500., 0.0);
+{  7943} G2H500y +PERO6              =  0.460G1H501h + 0.270GHO500I + 0.270GHD5006                 : ARR( 0.488E-13, -1250., 0.0);
+{  7944} G2H500y +PERO9              =  0.800G1H501h + 0.200GHD5006                                : ARR( 0.100E-10,     0., 0.0);
+{  7945} G1H501h                     =       GHK500B +      GHO2                                   : ARR( 0.800E+11,  2025., 0.0);
+{  7946} GNN3003 +GHO                =       GNN3005 +      GNO2                                   : ARR( 0.184E-13,     0., 0.0);
+{  7947} GNN3003 +GHO                =       GNN3006 +      GNO2                                   : ARR( 0.471E-14,     0., 0.0);
+{  7948} GNN3003+HV               =       G1N3004 +      GNO2                                   :  0.200E+01*SUN;
+{  7949} GNN3003+HV               =       G1N3006 +      GNO2                                   :  0.100E+01*SUN;
+{  7950} GHN3004 +GHO                =       GNN3005 +      GHO                                    : ARR( 0.323E-11,     0., 0.0);
+{  7951} GHN3004 +GHO                =       G2N3004                                               : ARR( 0.191E-11,  -190., 0.0);
+{  7952} GHN3004+HV               =       G1H3008 +      GNO2                                   :  0.100E+01*SUN;
+{  7953} GHN3004+HV               =       G1H3009 +      GNO2                                   :  0.100E+01*SUN;
+{  7954} GHN3004+HV               =       G1N3004 +      GHO                                    :  0.100E+01*SUN;
+{  7955} G1H3008 +OXYGEN             =       GHN300A +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{  7956} G1H3008                     =       GHD2000 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7190., 0.0);
+{  7957} G1H3009                     =       GND2000 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  7453., 0.0);
+{  7958} GNN3004 +GHO                =       GNN3005 +      GHO2                                   : ARR( 0.832E-12,     0., 0.0);
+{  7959} GNN3004 +GHO                =       G1N3004                                               : ARR( 0.217E-17,    85., 2.0);
+{  7960} GNN3004+HV               =       G1N3007 +      GNO2                                   :  0.100E+01*SUN;
+{  7961} GNN3004+HV               =       G1N3008 +      GNO2                                   :  0.100E+01*SUN;
+{  7962} GNN3005 +GHO                =       G3N3003                                               : ARR( 0.418E-11,     0., 0.0);
+{  7963} GNN3005 +GNO3               =       G3N3003 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{  7964} GNN3005+HV               =       G1N300A +      GNO2                                   :  0.100E+01*SUN;
+{  7965} GNN3005+HV               =       G1N3009 +      GNO2                                   :  0.100E+01*SUN;
+{  7966} GNN3005+HV               =       GND2000 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{  7967} G1N300A +OXYGEN             =       GND3005 +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{  7968} G1N300A                     =       GDD2000 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7323., 0.0);
+{  7969} GHH5007 +GHO                =       GHN500Y +      GHO                                    : ARR( 0.346E-10,     0., 0.0);
+{  7970} GHH5007 +GHO                =       GHN500q +      GHO                                    : ARR( 0.852E-11,     0., 0.0);
+{  7971} GHH5007 +GHO                =       G2H5007                                               : ARR( 0.196E-11,  -190., 0.0);
+{  7972} GHH5007 +GHO                =       G2H500z                                               : ARR( 0.196E-11,  -190., 0.0);
+{  7973} GHH5007+HV               =       G1H500B +      GHO                                    :  0.100E+01*SUN;
+{  7974} GHH5007+HV               =       G1H501Y +      GHO                                    :  0.100E+01*SUN;
+{  7975} GHH5007+HV               =       G1H501i +      GNO2                                   :  0.100E+01*SUN;
+{  7976} G2H500z +GNO                =       G1H501Y +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  7977} G2H500z +GNO                =       GHN500j                                               : ARR( 0.182E-12,  -360., 0.0);
+{  7978} G2H500z +GHO2               =       GHH5007                                               : ARR( 0.242E-12, -1250., 0.0);
+{  7979} G2H500z +GNO3               =       G1H501Y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  7980} G2H500z +MEPERO             =  0.340G1H501Y + 0.330GHN500o + 0.330GHN500q                 : ARR( 0.565E-13,  -845., 0.0);
+{  7981} G2H500z +PERO1              =  0.460G1H501Y + 0.270GHN500o + 0.270GHN500q                 : ARR( 0.434E-13,  -900., 0.0);
+{  7982} G2H500z +PERO2              =  0.400G1H501Y + 0.300GHN500o + 0.300GHN500q                 : ARR( 0.162E-13, -1400., 0.0);
+{  7983} G2H500z +PERO3              =  0.460G1H501Y + 0.270GHN500o + 0.270GHN500q                 : ARR( 0.488E-13, -1250., 0.0);
+{  7984} G2H500z +PERO5              =  0.460G1H501Y + 0.270GHN500o + 0.270GHN500q                 : ARR( 0.183E-11,   450., 0.0);
+{  7985} G2H500z +PERO6              =  0.300G1H501Y + 0.350GHN500o + 0.350GHN500q                 : ARR( 0.168E-13, -1300., 0.0);
+{  7986} G2H500z +PERO9              =  0.650G1H501Y + 0.350GHN500q                                : ARR( 0.100E-10,     0., 0.0);
+{  7987} G1H501i                     =       GHK5009 +      GHO                                    : ARR( 0.800E+11,  1771., 0.0);
+{  7988} GHN500m +GHO                =       GHN500Y +      GHO2                                   : ARR( 0.851E-11,     0., 0.0);
+{  7989} GHN500m +GHO                =       G2H5011                                               : ARR( 0.144E-11,     0., 0.0);
+{  7990} GHN500m +GHO                =       GNK5008 +      GHO                                    : ARR( 0.838E-11,     0., 0.0);
+{  7991} GHN500m +GHO                =       G2N502j                                               : ARR( 0.193E-11,  -190., 0.0);
+{  7992} GHN500m+HV               =       G1N501G +      GHO                                    :  0.100E+01*SUN;
+{  7993} GHN500m+HV               =       G1H500U +      GNO2                                   :  0.100E+01*SUN;
+{  7994} G2H5011 +GNO                =       G1H501j +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  7995} G2H5011 +GNO                =       GHN503S                                               : ARR( 0.182E-12,  -360., 0.0);
+{  7996} G2H5011 +GHO2               =       GHH500s                                               : ARR( 0.242E-12, -1250., 0.0);
+{  7997} G2H5011 +GNO3               =       G1H501j +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  7998} G2H5011 +MEPERO             =  0.340G1H501j + 0.330GHN503T + 0.330GHN503I                 : ARR( 0.565E-13,  -845., 0.0);
+{  7999} G2H5011 +PERO1              =  0.460G1H501j + 0.270GHN503T + 0.270GHN503I                 : ARR( 0.434E-13,  -900., 0.0);
+{  8000} G2H5011 +PERO2              =  0.400G1H501j + 0.300GHN503T + 0.300GHN503I                 : ARR( 0.162E-13, -1400., 0.0);
+{  8001} G2H5011 +PERO3              =  0.460G1H501j + 0.270GHN503T + 0.270GHN503I                 : ARR( 0.488E-13, -1250., 0.0);
+{  8002} G2H5011 +PERO5              =  0.460G1H501j + 0.270GHN503T + 0.270GHN503I                 : ARR( 0.183E-11,   450., 0.0);
+{  8003} G2H5011 +PERO6              =  0.300G1H501j + 0.350GHN503T + 0.350GHN503I                 : ARR( 0.168E-13, -1300., 0.0);
+{  8004} G2H5011 +PERO9              =  0.650G1H501j + 0.350GHN503I                                : ARR( 0.100E-10,     0., 0.0);
+{  8005} G2N502j +GNO                =       G1N501G +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  8006} G2N502j +GNO                =       GNN5008                                               : ARR( 0.182E-12,  -360., 0.0);
+{  8007} G2N502j +GHO2               =       GHN500m                                               : ARR( 0.242E-12, -1250., 0.0);
+{  8008} G2N502j +GNO3               =       G1N501G +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  8009} G2N502j +MEPERO             =  0.340G1N501G + 0.330GNO500D + 0.330GNK5008                 : ARR( 0.565E-13,  -845., 0.0);
+{  8010} G2N502j +PERO1              =  0.460G1N501G + 0.270GNO500D + 0.270GNK5008                 : ARR( 0.434E-13,  -900., 0.0);
+{  8011} G2N502j +PERO2              =  0.400G1N501G + 0.300GNO500D + 0.300GNK5008                 : ARR( 0.162E-13, -1400., 0.0);
+{  8012} G2N502j +PERO3              =  0.460G1N501G + 0.270GNO500D + 0.270GNK5008                 : ARR( 0.488E-13, -1250., 0.0);
+{  8013} G2N502j +PERO5              =  0.460G1N501G + 0.270GNO500D + 0.270GNK5008                 : ARR( 0.183E-11,   450., 0.0);
+{  8014} G2N502j +PERO6              =  0.300G1N501G + 0.350GNO500D + 0.350GNK5008                 : ARR( 0.168E-13, -1300., 0.0);
+{  8015} G2N502j +PERO9              =  0.650G1N501G + 0.350GNK5008                                : ARR( 0.100E-10,     0., 0.0);
+{  8016} G1H501j                     =       GD02000 +      GHN3007 +      GHO2                    : ARR( 0.200E+15,  3962., 0.0);
+{  8017} G1H501j                     =       GDO3001 +      GND2000 +      GHO                     : ARR( 0.200E+15,  4784., 0.0);
+{  8018} GHH5008 +GHO                =       GHN500h +      GHO                                    : ARR( 0.422E-10,     0., 0.0);
+{  8019} GHH5008 +GHO                =       GHN500r +      GHO                                    : ARR( 0.844E-11,     0., 0.0);
+{  8020} GHH5008 +GHO                =       G2H5008                                               : ARR( 0.195E-11,  -190., 0.0);
+{  8021} GHH5008 +GHO                =       G2H5012                                               : ARR( 0.195E-11,  -190., 0.0);
+{  8022} GHH5008+HV               =       G1H500C +      GHO                                    :  0.100E+01*SUN;
+{  8023} GHH5008+HV               =       G1H501b +      GHO                                    :  0.100E+01*SUN;
+{  8024} GHH5008+HV               =       G1H501k +      GNO2                                   :  0.100E+01*SUN;
+{  8025} G2H5012 +GNO                =       G1H501b +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  8026} G2H5012 +GNO                =       GHN500k                                               : ARR( 0.182E-12,  -360., 0.0);
+{  8027} G2H5012 +GHO2               =       GHH5008                                               : ARR( 0.242E-12, -1250., 0.0);
+{  8028} G2H5012 +GNO3               =       G1H501b +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  8029} G2H5012 +MEPERO             =  0.340G1H501b + 0.330GHN500p + 0.330GHN500r                 : ARR( 0.565E-13,  -845., 0.0);
+{  8030} G2H5012 +PERO1              =  0.460G1H501b + 0.270GHN500p + 0.270GHN500r                 : ARR( 0.434E-13,  -900., 0.0);
+{  8031} G2H5012 +PERO2              =  0.400G1H501b + 0.300GHN500p + 0.300GHN500r                 : ARR( 0.162E-13, -1400., 0.0);
+{  8032} G2H5012 +PERO3              =  0.460G1H501b + 0.270GHN500p + 0.270GHN500r                 : ARR( 0.488E-13, -1250., 0.0);
+{  8033} G2H5012 +PERO5              =  0.460G1H501b + 0.270GHN500p + 0.270GHN500r                 : ARR( 0.183E-11,   450., 0.0);
+{  8034} G2H5012 +PERO6              =  0.300G1H501b + 0.350GHN500p + 0.350GHN500r                 : ARR( 0.168E-13, -1300., 0.0);
+{  8035} G2H5012 +PERO9              =  0.650G1H501b + 0.350GHN500r                                : ARR( 0.100E-10,     0., 0.0);
+{  8036} G1H501k                     =       G2H5013                                               : ARR( 0.160E+12,  3092., 0.0);
+{  8037} G1H501k                     =       GHD4005 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{  8038} G2H5013 +GNO                =       G1H501l +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  8039} G2H5013 +GNO                =       GHH500l                                               : ARR( 0.182E-12,  -360., 0.0);
+{  8040} G2H5013 +GHO2               =       GHH500t                                               : ARR( 0.242E-12, -1250., 0.0);
+{  8041} G2H5013 +GNO3               =       G1H501l +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  8042} G2H5013 +MEPERO             =  0.340G1H501l + 0.330GHH500u + 0.330GHH500S                 : ARR( 0.565E-13,  -845., 0.0);
+{  8043} G2H5013 +PERO1              =  0.460G1H501l + 0.270GHH500u + 0.270GHH500S                 : ARR( 0.434E-13,  -900., 0.0);
+{  8044} G2H5013 +PERO2              =  0.400G1H501l + 0.300GHH500u + 0.300GHH500S                 : ARR( 0.162E-13, -1400., 0.0);
+{  8045} G2H5013 +PERO3              =  0.460G1H501l + 0.270GHH500u + 0.270GHH500S                 : ARR( 0.488E-13, -1250., 0.0);
+{  8046} G2H5013 +PERO5              =  0.460G1H501l + 0.270GHH500u + 0.270GHH500S                 : ARR( 0.183E-11,   450., 0.0);
+{  8047} G2H5013 +PERO6              =  0.300G1H501l + 0.350GHH500u + 0.350GHH500S                 : ARR( 0.168E-13, -1300., 0.0);
+{  8048} G2H5013 +PERO9              =  0.650G1H501l + 0.350GHH500S                                : ARR( 0.100E-10,     0., 0.0);
+{  8049} G1H501l                     =       GHH500v +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{  8050} G1H501l                     =       GD02000 +      GHD3003 +      GHO                     : ARR( 0.200E+15,  4440., 0.0);
+{  8051} GHN500n +GHO                =       GHN500h +      GHO2                                   : ARR( 0.110E-10,     0., 0.0);
+{  8052} GHN500n +GHO                =       GNK500M +      GHO                                    : ARR( 0.880E-11,     0., 0.0);
+{  8053} GHN500n +GHO                =       G2N502k                                               : ARR( 0.203E-11,  -190., 0.0);
+{  8054} GHN500n+HV               =       G1N5031 +      GHO                                    :  0.100E+01*SUN;
+{  8055} GHN500n+HV               =       G1H501m +      GNO2                                   :  0.100E+01*SUN;
+{  8056} G2N502k +GNO                =       G1N5031 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  8057} G2N502k +GNO                =       GNN500i                                               : ARR( 0.182E-12,  -360., 0.0);
+{  8058} G2N502k +GHO2               =       GHN500n                                               : ARR( 0.242E-12, -1250., 0.0);
+{  8059} G2N502k +GNO3               =       G1N5031 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  8060} G2N502k +MEPERO             =  0.340G1N5031 + 0.330GNO500L + 0.330GNK500M                 : ARR( 0.565E-13,  -845., 0.0);
+{  8061} G2N502k +PERO1              =  0.460G1N5031 + 0.270GNO500L + 0.270GNK500M                 : ARR( 0.434E-13,  -900., 0.0);
+{  8062} G2N502k +PERO2              =  0.400G1N5031 + 0.300GNO500L + 0.300GNK500M                 : ARR( 0.162E-13, -1400., 0.0);
+{  8063} G2N502k +PERO3              =  0.460G1N5031 + 0.270GNO500L + 0.270GNK500M                 : ARR( 0.488E-13, -1250., 0.0);
+{  8064} G2N502k +PERO5              =  0.460G1N5031 + 0.270GNO500L + 0.270GNK500M                 : ARR( 0.183E-11,   450., 0.0);
+{  8065} G2N502k +PERO6              =  0.300G1N5031 + 0.350GNO500L + 0.350GNK500M                 : ARR( 0.168E-13, -1300., 0.0);
+{  8066} G2N502k +PERO9              =  0.650G1N5031 + 0.350GNK500M                                : ARR( 0.100E-10,     0., 0.0);
+{  8067} G1H501m                     =       G2H5014                                               : ARR( 0.160E+12,  3092., 0.0);
+{  8068} G1H501m                     =       GDO4004 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{  8069} G2H5014 +GNO                =       G1H501n +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  8070} G2H5014 +GNO                =       GHN503D                                               : ARR( 0.182E-12,  -360., 0.0);
+{  8071} G2H5014 +GHO2               =       GHH500w                                               : ARR( 0.242E-12, -1250., 0.0);
+{  8072} G2H5014 +GNO3               =       G1H501n +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  8073} G2H5014 +MEPERO             =  0.340G1H501n + 0.330GHO500P + 0.330GHK500Z                 : ARR( 0.565E-13,  -845., 0.0);
+{  8074} G2H5014 +PERO1              =  0.460G1H501n + 0.270GHO500P + 0.270GHK500Z                 : ARR( 0.434E-13,  -900., 0.0);
+{  8075} G2H5014 +PERO2              =  0.400G1H501n + 0.300GHO500P + 0.300GHK500Z                 : ARR( 0.162E-13, -1400., 0.0);
+{  8076} G2H5014 +PERO3              =  0.460G1H501n + 0.270GHO500P + 0.270GHK500Z                 : ARR( 0.488E-13, -1250., 0.0);
+{  8077} G2H5014 +PERO5              =  0.460G1H501n + 0.270GHO500P + 0.270GHK500Z                 : ARR( 0.183E-11,   450., 0.0);
+{  8078} G2H5014 +PERO6              =  0.300G1H501n + 0.350GHO500P + 0.350GHK500Z                 : ARR( 0.168E-13, -1300., 0.0);
+{  8079} G2H5014 +PERO9              =  0.650G1H501n + 0.350GHK500Z                                : ARR( 0.100E-10,     0., 0.0);
+{  8080} G1H501n                     =       GD02000 +      GHD3003 +      GHO2                    : ARR( 0.200E+15,  3232., 0.0);
+{  8081} GHD5005 +GHO                =       GHD500J +      GHO2                                   : ARR( 0.842E-11,     0., 0.0);
+{  8082} GHD5005 +GHO                =       G2H5015                                               : ARR( 0.450E-11,     0., 0.0);
+{  8083} GHD5005 +GHO                =       GDK5001 +      GHO                                    : ARR( 0.253E-10,     0., 0.0);
+{  8084} GHD5005 +GHO                =       G3H5006                                               : ARR( 0.209E-10,     0., 0.0);
+{  8085} GHD5005 +GHO                =       G2D500H                                               : ARR( 0.191E-11,  -190., 0.0);
+{  8086} GHD5005 +GNO3               =       G3H5006 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{  8087} GHD5005+HV               =       G1D5008 +      GHO                                    :  0.100E+01*SUN;
+{  8088} GHD5005+HV               =       GDO4001 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{  8089} G2H5015 +GNO                =       G1H501o +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  8090} G2H5015 +GNO                =       GHN502x                                               : ARR( 0.182E-12,  -360., 0.0);
+{  8091} G2H5015 +GHO2               =       GHH500v                                               : ARR( 0.242E-12, -1250., 0.0);
+{  8092} G2H5015 +GNO3               =       G1H501o +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  8093} G2H5015 +MEPERO             =  0.340G1H501o + 0.330GHD500U + 0.330GHD500W                 : ARR( 0.565E-13,  -845., 0.0);
+{  8094} G2H5015 +PERO1              =  0.460G1H501o + 0.270GHD500U + 0.270GHD500W                 : ARR( 0.434E-13,  -900., 0.0);
+{  8095} G2H5015 +PERO2              =  0.400G1H501o + 0.300GHD500U + 0.300GHD500W                 : ARR( 0.162E-13, -1400., 0.0);
+{  8096} G2H5015 +PERO3              =  0.460G1H501o + 0.270GHD500U + 0.270GHD500W                 : ARR( 0.488E-13, -1250., 0.0);
+{  8097} G2H5015 +PERO5              =  0.460G1H501o + 0.270GHD500U + 0.270GHD500W                 : ARR( 0.183E-11,   450., 0.0);
+{  8098} G2H5015 +PERO6              =  0.300G1H501o + 0.350GHD500U + 0.350GHD500W                 : ARR( 0.168E-13, -1300., 0.0);
+{  8099} G2H5015 +PERO9              =  0.650G1H501o + 0.350GHD500W                                : ARR( 0.100E-10,     0., 0.0);
+{  8100} G3H5006 +GHO2               =  0.800GGH5005 + 0.200GAH5005 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  8101} G3H5006 +GNO                =       GDO4001 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{  8102} G3H5006 +GNO2               =       GPH5005                                               : ARR( 0.330E-08,     0.,-1.0);
+{  8103} G3H5006 +GNO3               =       GDO4001 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{  8104} G3H5006 +MEPERO             =  0.685GDO4001 + 0.315GAH5005 + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  8105} G3H5006 +PERO1              =  0.800GDO4001 + 0.200GAH5005 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  8106} G3H5006 +PERO2              =  0.750GDO4001 + 0.250GAH5005 + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  8107} G3H5006 +PERO3              =  0.800GDO4001 + 0.200GAH5005 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  8108} G3H5006 +PERO5              =  0.650GDO4001 + 0.350GAH5005 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  8109} G3H5006 +PERO6              =  0.650GDO4001 + 0.350GAH5005 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  8110} G3H5006 +PERO9              =       GDO4001 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{  8111} G2D500H +GNO                =       G1D5008 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  8112} G2D500H +GNO                =       GND5004                                               : ARR( 0.182E-12,  -360., 0.0);
+{  8113} G2D500H +GHO2               =       GHD5005                                               : ARR( 0.242E-12, -1250., 0.0);
+{  8114} G2D500H +GNO3               =       G1D5008 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  8115} G2D500H +MEPERO             =  0.340G1D5008 + 0.330GDO5003 + 0.330GDK5001                 : ARR( 0.565E-13,  -845., 0.0);
+{  8116} G2D500H +PERO1              =  0.460G1D5008 + 0.270GDO5003 + 0.270GDK5001                 : ARR( 0.434E-13,  -900., 0.0);
+{  8117} G2D500H +PERO2              =  0.400G1D5008 + 0.300GDO5003 + 0.300GDK5001                 : ARR( 0.162E-13, -1400., 0.0);
+{  8118} G2D500H +PERO3              =  0.460G1D5008 + 0.270GDO5003 + 0.270GDK5001                 : ARR( 0.488E-13, -1250., 0.0);
+{  8119} G2D500H +PERO5              =  0.460G1D5008 + 0.270GDO5003 + 0.270GDK5001                 : ARR( 0.183E-11,   450., 0.0);
+{  8120} G2D500H +PERO6              =  0.300G1D5008 + 0.350GDO5003 + 0.350GDK5001                 : ARR( 0.168E-13, -1300., 0.0);
+{  8121} G2D500H +PERO9              =  0.650G1D5008 + 0.350GDK5001                                : ARR( 0.100E-10,     0., 0.0);
+{  8122} G1H501o                     =       GD02000 +      GHD3004 +      GHO2                    : ARR( 0.200E+15,  3132., 0.0);
+{  8123} GHH5009 +GHO                =       GHK5009 +      GHO                                    : ARR( 0.393E-10,     0., 0.0);
+{  8124} GHH5009 +GHO                =       GHK500G +      GHO                                    : ARR( 0.483E-10,     0., 0.0);
+{  8125} GHH5009+HV               =       G1H500D +      GHO                                    :  0.100E+01*SUN;
+{  8126} GHH5009+HV               =       G1H501g +      GHO                                    :  0.100E+01*SUN;
+{  8127} GHN3005 +GHO                =       GNN3006 +      GHO                                    : ARR( 0.168E-11,     0., 0.0);
+{  8128} GHN3005 +GHO                =       G2N3006                                               : ARR( 0.193E-11,  -190., 0.0);
+{  8129} GHN3005+HV               =       G1H3001 +      GNO2                                   :  0.200E+01*SUN;
+{  8130} GHN3005+HV               =       G1N3006 +      GHO                                    :  0.100E+01*SUN;
+{  8131} GHH3001 +GHO                =       GHN3008 +      GHO                                    : ARR( 0.825E-11,     0., 0.0);
+{  8132} GHH3001 +GHO                =       GHN3007 +      GHO                                    : ARR( 0.161E-10,     0., 0.0);
+{  8133} GHH3001 +GHO                =       G2H3007                                               : ARR( 0.190E-11,  -190., 0.0);
+{  8134} GHH3001 +GHO                =       G2H3001                                               : ARR( 0.190E-11,  -190., 0.0);
+{  8135} GHH3001+HV               =       G1H300A +      GNO2                                   :  0.100E+01*SUN;
+{  8136} GHH3001+HV               =       G1H3009 +      GHO                                    :  0.100E+01*SUN;
+{  8137} GHH3001+HV               =       G1H3001 +      GHO                                    :  0.100E+01*SUN;
+{  8138} G2H3007 +GNO                =       G1H3009 +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{  8139} G2H3007 +GNO                =       GHN3004                                               : ARR( 0.622E-13,  -360., 0.0);
+{  8140} G2H3007 +GHO2               =       GHH3001                                               : ARR( 0.179E-12, -1250., 0.0);
+{  8141} G2H3007 +GNO3               =       G1H3009 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  8142} G2H3007 +MEPERO             =  0.340G1H3009 + 0.330GHN3003 + 0.330GHN3008                 : ARR( 0.565E-13,  -845., 0.0);
+{  8143} G2H3007 +PERO1              =  0.460G1H3009 + 0.270GHN3003 + 0.270GHN3008                 : ARR( 0.434E-13,  -900., 0.0);
+{  8144} G2H3007 +PERO2              =  0.400G1H3009 + 0.300GHN3003 + 0.300GHN3008                 : ARR( 0.162E-13, -1400., 0.0);
+{  8145} G2H3007 +PERO3              =  0.460G1H3009 + 0.270GHN3003 + 0.270GHN3008                 : ARR( 0.488E-13, -1250., 0.0);
+{  8146} G2H3007 +PERO5              =  0.460G1H3009 + 0.270GHN3003 + 0.270GHN3008                 : ARR( 0.183E-11,   450., 0.0);
+{  8147} G2H3007 +PERO6              =  0.300G1H3009 + 0.350GHN3003 + 0.350GHN3008                 : ARR( 0.168E-13, -1300., 0.0);
+{  8148} G2H3007 +PERO9              =  0.650G1H3009 + 0.350GHN3008                                : ARR( 0.100E-10,     0., 0.0);
+{  8149} G1H300A +OXYGEN             =       GHH3005 +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{  8150} G1H300A                     =       GHD2000 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5652., 0.0);
+{  8151} GHN3006 +GHO                =       GHN3007 +      GHO2                                   : ARR( 0.407E-11,     0., 0.0);
+{  8152} GHN3006 +GHO                =       GNK3001 +      GHO                                    : ARR( 0.834E-11,     0., 0.0);
+{  8153} GHN3006 +GHO                =       G2N3007                                               : ARR( 0.192E-11,  -190., 0.0);
+{  8154} GHN3006+HV               =       G1N3007 +      GHO                                    :  0.100E+01*SUN;
+{  8155} GHN3006+HV               =       G1H3005 +      GNO2                                   :  0.100E+01*SUN;
+{  8156} GHN3007 +GHO                =       GND3003 +      GHO                                    : ARR( 0.505E-11,     0., 0.0);
+{  8157} GHN3007 +GHO                =       G3H3002                                               : ARR( 0.209E-10,     0., 0.0);
+{  8158} GHN3007 +GHO                =       G2N3009                                               : ARR( 0.191E-11,  -190., 0.0);
+{  8159} GHN3007 +GNO3               =       G3H3002 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{  8160} GHN3007+HV               =       G1H300B +      GNO2                                   :  0.100E+01*SUN;
+{  8161} GHN3007+HV               =       G1N3009 +      GHO                                    :  0.100E+01*SUN;
+{  8162} GHN3007+HV               =       GND2000 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{  8163} G1H300B +OXYGEN             =       GHD3004 +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{  8164} G1H300B                     =       GDD2000 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5784., 0.0);
+{  8165} GHN500o +GHO                =       GNK500H +      GHO                                    : ARR( 0.350E-10,     0., 0.0);
+{  8166} GHN500o +GHO                =       GHN500q +      GHO2                                   : ARR( 0.215E-11,     0., 0.0);
+{  8167} GHN500o +GHO                =       G2N500g                                               : ARR( 0.199E-11,  -190., 0.0);
+{  8168} GHN500o+HV               =       G1N500h +      GHO                                    :  0.100E+01*SUN;
+{  8169} GHN500o+HV               =       G1H501p +      GNO2                                   :  0.100E+01*SUN;
+{  8170} G1H501p                     =       GKO5006 +      GHO                                    : ARR( 0.800E+11,  1771., 0.0);
+{  8171} G1H501p                     =       GHD4002 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4799., 0.0);
+{  8172} GHN500p +GHO                =       GNK500K +      GHO                                    : ARR( 0.445E-10,     0., 0.0);
+{  8173} GHN500p +GHO                =       G2N500h                                               : ARR( 0.205E-11,  -190., 0.0);
+{  8174} GHN500p+HV               =       G1N500i +      GHO                                    :  0.100E+01*SUN;
+{  8175} GHN500p+HV               =       G1H501q +      GNO2                                   :  0.100E+01*SUN;
+{  8176} G1H501q                     =       G2H5016                                               : ARR( 0.160E+12,  3092., 0.0);
+{  8177} G1H501q                     =       GHD4005 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{  8178} G2H5016 +GNO                =       G1H501r +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  8179} G2H5016 +GNO                =       GHN503C                                               : ARR( 0.182E-12,  -360., 0.0);
+{  8180} G2H5016 +GHO2               =       GHH500x                                               : ARR( 0.242E-12, -1250., 0.0);
+{  8181} G2H5016 +GNO3               =       G1H501r +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  8182} G2H5016 +MEPERO             =  0.340G1H501r + 0.330GHO500O + 0.330GHK500X                 : ARR( 0.565E-13,  -845., 0.0);
+{  8183} G2H5016 +PERO1              =  0.460G1H501r + 0.270GHO500O + 0.270GHK500X                 : ARR( 0.434E-13,  -900., 0.0);
+{  8184} G2H5016 +PERO2              =  0.400G1H501r + 0.300GHO500O + 0.300GHK500X                 : ARR( 0.162E-13, -1400., 0.0);
+{  8185} G2H5016 +PERO3              =  0.460G1H501r + 0.270GHO500O + 0.270GHK500X                 : ARR( 0.488E-13, -1250., 0.0);
+{  8186} G2H5016 +PERO5              =  0.460G1H501r + 0.270GHO500O + 0.270GHK500X                 : ARR( 0.183E-11,   450., 0.0);
+{  8187} G2H5016 +PERO6              =  0.300G1H501r + 0.350GHO500O + 0.350GHK500X                 : ARR( 0.168E-13, -1300., 0.0);
+{  8188} G2H5016 +PERO9              =  0.650G1H501r + 0.350GHK500X                                : ARR( 0.100E-10,     0., 0.0);
+{  8189} G1H501r                     =       GHD500E +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{  8190} G1H501r                     =       GD02000 +      GDO3002 +      GHO                     : ARR( 0.200E+15,  4440., 0.0);
+{  8191} GNO500L +GHO                =       G2N502l                                               : ARR( 0.119E-11,     0., 0.0);
+{  8192} GNO500L +GHO                =       GNK500K +      GHO2                                   : ARR( 0.107E-10,     0., 0.0);
+{  8193} GNO500L +GHO                =       GNK500M +      GHO2                                   : ARR( 0.214E-11,     0., 0.0);
+{  8194} GNO500L+HV               =       G1O500U +      GNO2                                   :  0.100E+01*SUN;
+{  8195} G2N502l +GNO                =       G1N5035 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  8196} G2N502l +GNO                =       GNN501f                                               : ARR( 0.182E-12,  -360., 0.0);
+{  8197} G2N502l +GHO2               =       GHN503U                                               : ARR( 0.242E-12, -1250., 0.0);
+{  8198} G2N502l +GNO3               =       G1N5035 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  8199} G2N502l +MEPERO             =  0.340G1N5035 + 0.330GNO500W + 0.330GNK500p                 : ARR( 0.565E-13,  -845., 0.0);
+{  8200} G2N502l +PERO1              =  0.460G1N5035 + 0.270GNO500W + 0.270GNK500p                 : ARR( 0.434E-13,  -900., 0.0);
+{  8201} G2N502l +PERO2              =  0.400G1N5035 + 0.300GNO500W + 0.300GNK500p                 : ARR( 0.162E-13, -1400., 0.0);
+{  8202} G2N502l +PERO3              =  0.460G1N5035 + 0.270GNO500W + 0.270GNK500p                 : ARR( 0.488E-13, -1250., 0.0);
+{  8203} G2N502l +PERO5              =  0.460G1N5035 + 0.270GNO500W + 0.270GNK500p                 : ARR( 0.183E-11,   450., 0.0);
+{  8204} G2N502l +PERO6              =  0.300G1N5035 + 0.350GNO500W + 0.350GNK500p                 : ARR( 0.168E-13, -1300., 0.0);
+{  8205} G2N502l +PERO9              =  0.650G1N5035 + 0.350GNK500p                                : ARR( 0.100E-10,     0., 0.0);
+{  8206} G1O500U                     =       G2O500R                                               : ARR( 0.160E+12,  3092., 0.0);
+{  8207} G1O500U                     =       GDO4004 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{  8208} G1N5035                     =       GD02000 +      GND3002 +      GHO2                    : ARR( 0.200E+15,  3232., 0.0);
+{  8209} G2O500R +GNO                =       G1O500W +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  8210} G2O500R +GNO                =       GNO500a                                               : ARR( 0.182E-12,  -360., 0.0);
+{  8211} G2O500R +GHO2               =       GHO500S                                               : ARR( 0.242E-12, -1250., 0.0);
+{  8212} G2O500R +GNO3               =       G1O500W +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  8213} G2O500R +MEPERO             =  0.340G1O500W + 0.330GOO500C + 0.330GKO500K                 : ARR( 0.565E-13,  -845., 0.0);
+{  8214} G2O500R +PERO1              =  0.460G1O500W + 0.270GOO500C + 0.270GKO500K                 : ARR( 0.434E-13,  -900., 0.0);
+{  8215} G2O500R +PERO2              =  0.400G1O500W + 0.300GOO500C + 0.300GKO500K                 : ARR( 0.162E-13, -1400., 0.0);
+{  8216} G2O500R +PERO3              =  0.460G1O500W + 0.270GOO500C + 0.270GKO500K                 : ARR( 0.488E-13, -1250., 0.0);
+{  8217} G2O500R +PERO5              =  0.460G1O500W + 0.270GOO500C + 0.270GKO500K                 : ARR( 0.183E-11,   450., 0.0);
+{  8218} G2O500R +PERO6              =  0.300G1O500W + 0.350GOO500C + 0.350GKO500K                 : ARR( 0.168E-13, -1300., 0.0);
+{  8219} G2O500R +PERO9              =  0.650G1O500W + 0.350GKO500K                                : ARR( 0.100E-10,     0., 0.0);
+{  8220} G1O500W                     =       GD02000 +      GDO3002 +      GHO2                    : ARR( 0.200E+15,  3232., 0.0);
+{  8221} GHO500H +GHO                =       GKO5006 +      GHO                                    : ARR( 0.347E-10,     0., 0.0);
+{  8222} GHO500H +GHO                =       GHK500G +      GHO2                                   : ARR( 0.107E-10,     0., 0.0);
+{  8223} GHO500H +GHO                =       GHD500X +      GHO2                                   : ARR( 0.417E-11,     0., 0.0);
+{  8224} GHO500H +GHO                =       G2O500E                                               : ARR( 0.197E-11,  -190., 0.0);
+{  8225} GHO500H+HV               =       G1O500H +      GHO                                    :  0.100E+01*SUN;
+{  8226} GU02000 +GHO                =       G2O2000                                               : ARR( 0.196E-11,  -438., 0.0);
+{  8227} GU02000 +GO3                =  2.000GCH2O   + 0.740GHCOOH  + 0.260GCO2    + 0.260GH2      : ARR( 0.457E-14,  2580., 0.0);
+{  8228} GU02000 +GO3                =       GCO     + 0.760GH2O    + 0.240GHO2    + 0.240GHO      : ARR( 0.457E-14,  2580., 0.0);
+{  8229} GU02000 +GNO3               =       G2N2000                                               : ARR( 0.488E-17,  2282., 2.0);
+{  8230} GHN500q +GHO                =       GNK500I +      GHO                                    : ARR( 0.111E-09,     0., 0.0);
+{  8231} GHN500q+HV               =       G1N500j +      GHO                                    :  0.100E+01*SUN;
+{  8232} GHN500q+HV               =       G3H4001 +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{  8233} GHN500q+HV               =       G2D2000 +      GNK3000 +      GHO                     :  0.100E+01*SUN;
+{  8234} GHN500q+HV               =       G1H501s +      GNO2                                   :  0.100E+01*SUN;
+{  8235} G3H4001 +GHO2               =  0.800GGH4005 + 0.200GAH4005 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  8236} G3H4001 +GNO                =       G2H3003 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{  8237} G3H4001 +GNO2               =       GPH4005                                               : ARR( 0.330E-08,     0.,-1.0);
+{  8238} G3H4001 +GNO3               =       G2H3003 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{  8239} G3H4001 +MEPERO             =  0.685G2H3003 + 0.315GAH4005 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  8240} G3H4001 +PERO1              =  0.800G2H3003 + 0.200GAH4005 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  8241} G3H4001 +PERO2              =  0.750G2H3003 + 0.250GAH4005 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  8242} G3H4001 +PERO3              =  0.800G2H3003 + 0.200GAH4005 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  8243} G3H4001 +PERO5              =  0.650G2H3003 + 0.350GAH4005 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  8244} G3H4001 +PERO6              =  0.650G2H3003 + 0.350GAH4005 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  8245} G3H4001 +PERO9              =       G2H3003 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{  8246} G1H501s                     =       G3H4001 +      GCH2O                                  : ARR( 0.200E+15,  3576., 0.0);
+{  8247} GHN500r +GHO                =       G2H5017                                               : ARR( 0.366E-11,     0., 0.0);
+{  8248} GHN500r +GHO                =       GNK500L +      GHO                                    : ARR( 0.253E-10,     0., 0.0);
+{  8249} GHN500r +GHO                =       G2N500j                                               : ARR( 0.191E-11,  -190., 0.0);
+{  8250} GHN500r+HV               =       G1N500k +      GHO                                    :  0.100E+01*SUN;
+{  8251} GHN500r+HV               =       G3H4000 +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{  8252} GHN500r+HV               =       G1H501t +      GNO2                                   :  0.100E+01*SUN;
+{  8253} G2H5017 +GNO                =       G1H501u +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  8254} G2H5017 +GNO                =       GHN502g                                               : ARR( 0.182E-12,  -360., 0.0);
+{  8255} G2H5017 +GHO2               =       GHH500y                                               : ARR( 0.242E-12, -1250., 0.0);
+{  8256} G2H5017 +GNO3               =       G1H501u +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  8257} G2H5017 +MEPERO             =  0.340G1H501u + 0.330GHN503W + 0.330GHN502r                 : ARR( 0.565E-13,  -845., 0.0);
+{  8258} G2H5017 +PERO1              =  0.460G1H501u + 0.270GHN503W + 0.270GHN502r                 : ARR( 0.434E-13,  -900., 0.0);
+{  8259} G2H5017 +PERO2              =  0.400G1H501u + 0.300GHN503W + 0.300GHN502r                 : ARR( 0.162E-13, -1400., 0.0);
+{  8260} G2H5017 +PERO3              =  0.460G1H501u + 0.270GHN503W + 0.270GHN502r                 : ARR( 0.488E-13, -1250., 0.0);
+{  8261} G2H5017 +PERO5              =  0.460G1H501u + 0.270GHN503W + 0.270GHN502r                 : ARR( 0.183E-11,   450., 0.0);
+{  8262} G2H5017 +PERO6              =  0.300G1H501u + 0.350GHN503W + 0.350GHN502r                 : ARR( 0.168E-13, -1300., 0.0);
+{  8263} G2H5017 +PERO9              =  0.650G1H501u + 0.350GHN502r                                : ARR( 0.100E-10,     0., 0.0);
+{  8264} G1H501t                     =       G3H4000 +      GCH2O                                  : ARR( 0.200E+15,  3603., 0.0);
+{  8265} G1H501u                     =       GD02000 +      GND3003 +      GHO                     : ARR( 0.200E+15,  4722., 0.0);
+{  8266} GNK500M +GHO                =       G2N502m                                               : ARR( 0.377E-11,     0., 0.0);
+{  8267} GNK500M +GHO                =       GNK500L +      GHO2                                   : ARR( 0.650E-11,     0., 0.0);
+{  8268} GNK500M+HV               =       G3K4004 +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{  8269} GNK500M+HV               =       G1K500Z +      GNO2                                   :  0.100E+01*SUN;
+{  8270} G2N502m +GNO                =       G1N5036 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  8271} G2N502m +GNO                =       GNN501g                                               : ARR( 0.182E-12,  -360., 0.0);
+{  8272} G2N502m +GHO2               =       GHN503X                                               : ARR( 0.242E-12, -1250., 0.0);
+{  8273} G2N502m +GNO3               =       G1N5036 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  8274} G2N502m +MEPERO             =  0.340G1N5036 + 0.330GNK500x + 0.330GNK500q                 : ARR( 0.565E-13,  -845., 0.0);
+{  8275} G2N502m +PERO1              =  0.460G1N5036 + 0.270GNK500x + 0.270GNK500q                 : ARR( 0.434E-13,  -900., 0.0);
+{  8276} G2N502m +PERO2              =  0.400G1N5036 + 0.300GNK500x + 0.300GNK500q                 : ARR( 0.162E-13, -1400., 0.0);
+{  8277} G2N502m +PERO3              =  0.460G1N5036 + 0.270GNK500x + 0.270GNK500q                 : ARR( 0.488E-13, -1250., 0.0);
+{  8278} G2N502m +PERO5              =  0.460G1N5036 + 0.270GNK500x + 0.270GNK500q                 : ARR( 0.183E-11,   450., 0.0);
+{  8279} G2N502m +PERO6              =  0.300G1N5036 + 0.350GNK500x + 0.350GNK500q                 : ARR( 0.168E-13, -1300., 0.0);
+{  8280} G2N502m +PERO9              =  0.650G1N5036 + 0.350GNK500q                                : ARR( 0.100E-10,     0., 0.0);
+{  8281} G1K500Z                     =       G3K4004 +      GCH2O                                  : ARR( 0.200E+15,  3603., 0.0);
+{  8282} G1N5036                     =       GD02000 +      GND3003 +      GHO2                    : ARR( 0.200E+15,  3513., 0.0);
+{  8283} GG04000 +GHO                =       G2G4004                                               : ARR( 0.118E-11,     0., 0.0);
+{  8284} GG04000 +GHO                =       G2G4005                                               : ARR( 0.887E-12,     0., 0.0);
+{  8285} GG04000 +GHO                =       G3K4001                                               : ARR( 0.196E-11,  -190., 0.0);
+{  8286} GG04000+HV               =       G203000 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{  8287} G2G4004 +GNO                =       G1G4006 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  8288} G2G4004 +GNO                =       GGN4002                                               : ARR( 0.111E-12,  -360., 0.0);
+{  8289} G2G4004 +GHO2               =       GGH4005                                               : ARR( 0.214E-12, -1250., 0.0);
+{  8290} G2G4004 +GNO3               =       G1G4006 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  8291} G2G4004 +MEPERO             =  0.480G1G4006 + 0.260GGO4000 + 0.260GGK4000                 : ARR( 0.616E-11,   905., 0.0);
+{  8292} G2G4004 +PERO1              =  0.600G1G4006 + 0.200GGO4000 + 0.200GGK4000                 : ARR( 0.473E-11,   850., 0.0);
+{  8293} G2G4004 +PERO2              =  0.560G1G4006 + 0.220GGO4000 + 0.220GGK4000                 : ARR( 0.177E-11,   350., 0.0);
+{  8294} G2G4004 +PERO3              =  0.600G1G4006 + 0.200GGO4000 + 0.200GGK4000                 : ARR( 0.533E-11,   500., 0.0);
+{  8295} G2G4004 +PERO5              =  0.600G1G4006 + 0.200GGO4000 + 0.200GGK4000                 : ARR( 0.200E-09,  2200., 0.0);
+{  8296} G2G4004 +PERO6              =  0.460G1G4006 + 0.270GGO4000 + 0.270GGK4000                 : ARR( 0.183E-11,   450., 0.0);
+{  8297} G2G4004 +PERO9              =  0.800G1G4006 + 0.200GGK4000                                : ARR( 0.100E-10,     0., 0.0);
+{  8298} G2G4005 +GNO                =       G1G4007 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  8299} G2G4005 +GNO                =       GGN4004                                               : ARR( 0.111E-12,  -360., 0.0);
+{  8300} G2G4005 +GHO2               =       GGH4000                                               : ARR( 0.214E-12, -1250., 0.0);
+{  8301} G2G4005 +GNO3               =       G1G4007 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  8302} G2G4005 +MEPERO             =  0.340G1G4007 + 0.330GGO4002 + 0.330GGK4002                 : ARR( 0.565E-13,  -845., 0.0);
+{  8303} G2G4005 +PERO1              =  0.460G1G4007 + 0.270GGO4002 + 0.270GGK4002                 : ARR( 0.434E-13,  -900., 0.0);
+{  8304} G2G4005 +PERO2              =  0.400G1G4007 + 0.300GGO4002 + 0.300GGK4002                 : ARR( 0.162E-13, -1400., 0.0);
+{  8305} G2G4005 +PERO3              =  0.460G1G4007 + 0.270GGO4002 + 0.270GGK4002                 : ARR( 0.488E-13, -1250., 0.0);
+{  8306} G2G4005 +PERO5              =  0.460G1G4007 + 0.270GGO4002 + 0.270GGK4002                 : ARR( 0.183E-11,   450., 0.0);
+{  8307} G2G4005 +PERO6              =  0.300G1G4007 + 0.350GGO4002 + 0.350GGK4002                 : ARR( 0.168E-13, -1300., 0.0);
+{  8308} G2G4005 +PERO9              =  0.650G1G4007 + 0.350GGK4002                                : ARR( 0.100E-10,     0., 0.0);
+{  8309} G1G4006                     =       GD02000 +      G2G2000                                : ARR( 0.200E+15,  7255., 0.0);
+{  8310} G1G4007                     =       GD03000 +      GCO     +      GHO2                    : ARR( 0.200E+15,  4949., 0.0);
+{  8311} GA04000 +GHO                =       G2A4004                                               : ARR( 0.168E-12,     0., 0.0);
+{  8312} GA04000 +GHO                =       G2A4005                                               : ARR( 0.115E-11,     0., 0.0);
+{  8313} GA04000 +GHO                =       G2A4006                                               : ARR( 0.638E-12,     0., 0.0);
+{  8314} GA04000 +GHO                =       G203000 +      GCO2                                   : ARR( 0.520E-12,     0., 0.0);
+{  8315} G2A4004 +GNO                =       G1A4001 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  8316} G2A4004 +GNO                =       GAN4000                                               : ARR( 0.111E-12,  -360., 0.0);
+{  8317} G2A4004 +GHO2               =       GAH4006                                               : ARR( 0.214E-12, -1250., 0.0);
+{  8318} G2A4004 +GNO3               =       G1A4001 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  8319} G2A4004 +MEPERO             =  0.480G1A4001 + 0.260GAO4001 + 0.260GAD4000                 : ARR( 0.146E-12,  -445., 0.0);
+{  8320} G2A4004 +PERO1              =  0.600G1A4001 + 0.200GAO4001 + 0.200GAD4000                 : ARR( 0.112E-12,  -500., 0.0);
+{  8321} G2A4004 +PERO2              =  0.560G1A4001 + 0.220GAO4001 + 0.220GAD4000                 : ARR( 0.418E-13, -1000., 0.0);
+{  8322} G2A4004 +PERO3              =  0.600G1A4001 + 0.200GAO4001 + 0.200GAD4000                 : ARR( 0.126E-12,  -850., 0.0);
+{  8323} G2A4004 +PERO5              =  0.600G1A4001 + 0.200GAO4001 + 0.200GAD4000                 : ARR( 0.473E-11,   850., 0.0);
+{  8324} G2A4004 +PERO6              =  0.460G1A4001 + 0.270GAO4001 + 0.270GAD4000                 : ARR( 0.434E-13,  -900., 0.0);
+{  8325} G2A4004 +PERO9              =  0.800G1A4001 + 0.200GAD4000                                : ARR( 0.100E-10,     0., 0.0);
+{  8326} G2A4005 +GNO                =       G1A4006 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  8327} G2A4005 +GNO                =       GAN4002                                               : ARR( 0.111E-12,  -360., 0.0);
+{  8328} G2A4005 +GHO2               =       GAH4005                                               : ARR( 0.214E-12, -1250., 0.0);
+{  8329} G2A4005 +GNO3               =       G1A4006 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  8330} G2A4005 +MEPERO             =  0.480G1A4006 + 0.260GAO4000 + 0.260GAK4000                 : ARR( 0.616E-11,   905., 0.0);
+{  8331} G2A4005 +PERO1              =  0.600G1A4006 + 0.200GAO4000 + 0.200GAK4000                 : ARR( 0.473E-11,   850., 0.0);
+{  8332} G2A4005 +PERO2              =  0.560G1A4006 + 0.220GAO4000 + 0.220GAK4000                 : ARR( 0.177E-11,   350., 0.0);
+{  8333} G2A4005 +PERO3              =  0.600G1A4006 + 0.200GAO4000 + 0.200GAK4000                 : ARR( 0.533E-11,   500., 0.0);
+{  8334} G2A4005 +PERO5              =  0.600G1A4006 + 0.200GAO4000 + 0.200GAK4000                 : ARR( 0.200E-09,  2200., 0.0);
+{  8335} G2A4005 +PERO6              =  0.460G1A4006 + 0.270GAO4000 + 0.270GAK4000                 : ARR( 0.183E-11,   450., 0.0);
+{  8336} G2A4005 +PERO9              =  0.800G1A4006 + 0.200GAK4000                                : ARR( 0.100E-10,     0., 0.0);
+{  8337} G2A4006 +GNO                =       G1A4007 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  8338} G2A4006 +GNO                =       GAN4004                                               : ARR( 0.111E-12,  -360., 0.0);
+{  8339} G2A4006 +GHO2               =       GAH4000                                               : ARR( 0.214E-12, -1250., 0.0);
+{  8340} G2A4006 +GNO3               =       G1A4007 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  8341} G2A4006 +MEPERO             =  0.340G1A4007 + 0.330GAO4002 + 0.330GAK4002                 : ARR( 0.565E-13,  -845., 0.0);
+{  8342} G2A4006 +PERO1              =  0.460G1A4007 + 0.270GAO4002 + 0.270GAK4002                 : ARR( 0.434E-13,  -900., 0.0);
+{  8343} G2A4006 +PERO2              =  0.400G1A4007 + 0.300GAO4002 + 0.300GAK4002                 : ARR( 0.162E-13, -1400., 0.0);
+{  8344} G2A4006 +PERO3              =  0.460G1A4007 + 0.270GAO4002 + 0.270GAK4002                 : ARR( 0.488E-13, -1250., 0.0);
+{  8345} G2A4006 +PERO5              =  0.460G1A4007 + 0.270GAO4002 + 0.270GAK4002                 : ARR( 0.183E-11,   450., 0.0);
+{  8346} G2A4006 +PERO6              =  0.300G1A4007 + 0.350GAO4002 + 0.350GAK4002                 : ARR( 0.168E-13, -1300., 0.0);
+{  8347} G2A4006 +PERO9              =  0.650G1A4007 + 0.350GAK4002                                : ARR( 0.100E-10,     0., 0.0);
+{  8348} G1A4006                     =       GD02000 +      G2A2000                                : ARR( 0.200E+15,  7255., 0.0);
+{  8349} G1A4007                     =       GD03000 +      GCO     +      GHO                     : ARR( 0.200E+15,  4918., 0.0);
+{  8350} GP04000                     =       G3K4001 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{  8351} GP04000 +GHO                =       G2P4004                                               : ARR( 0.168E-12,     0., 0.0);
+{  8352} GP04000 +GHO                =       G2P4005                                               : ARR( 0.115E-11,     0., 0.0);
+{  8353} GP04000 +GHO                =       G2P4006                                               : ARR( 0.862E-12,     0., 0.0);
+{  8354} GP04000+HV               =       G3K4001 +      GNO2                                   :  0.100E+01*SUN;
+{  8355} G2P4004 +GNO                =       G1P4001 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  8356} G2P4004 +GNO                =       GPN4000                                               : ARR( 0.111E-12,  -360., 0.0);
+{  8357} G2P4004 +GHO2               =       GPH4006                                               : ARR( 0.214E-12, -1250., 0.0);
+{  8358} G2P4004 +GNO3               =       G1P4001 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  8359} G2P4004 +MEPERO             =  0.480G1P4001 + 0.260GPO4001 + 0.260GPD4000                 : ARR( 0.146E-12,  -445., 0.0);
+{  8360} G2P4004 +PERO1              =  0.600G1P4001 + 0.200GPO4001 + 0.200GPD4000                 : ARR( 0.112E-12,  -500., 0.0);
+{  8361} G2P4004 +PERO2              =  0.560G1P4001 + 0.220GPO4001 + 0.220GPD4000                 : ARR( 0.418E-13, -1000., 0.0);
+{  8362} G2P4004 +PERO3              =  0.600G1P4001 + 0.200GPO4001 + 0.200GPD4000                 : ARR( 0.126E-12,  -850., 0.0);
+{  8363} G2P4004 +PERO5              =  0.600G1P4001 + 0.200GPO4001 + 0.200GPD4000                 : ARR( 0.473E-11,   850., 0.0);
+{  8364} G2P4004 +PERO6              =  0.460G1P4001 + 0.270GPO4001 + 0.270GPD4000                 : ARR( 0.434E-13,  -900., 0.0);
+{  8365} G2P4004 +PERO9              =  0.800G1P4001 + 0.200GPD4000                                : ARR( 0.100E-10,     0., 0.0);
+{  8366} G2P4005 +GNO                =       G1P4006 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  8367} G2P4005 +GNO                =       GPN4002                                               : ARR( 0.111E-12,  -360., 0.0);
+{  8368} G2P4005 +GHO2               =       GPH4005                                               : ARR( 0.214E-12, -1250., 0.0);
+{  8369} G2P4005 +GNO3               =       G1P4006 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  8370} G2P4005 +MEPERO             =  0.480G1P4006 + 0.260GPO4000 + 0.260GPK4000                 : ARR( 0.616E-11,   905., 0.0);
+{  8371} G2P4005 +PERO1              =  0.600G1P4006 + 0.200GPO4000 + 0.200GPK4000                 : ARR( 0.473E-11,   850., 0.0);
+{  8372} G2P4005 +PERO2              =  0.560G1P4006 + 0.220GPO4000 + 0.220GPK4000                 : ARR( 0.177E-11,   350., 0.0);
+{  8373} G2P4005 +PERO3              =  0.600G1P4006 + 0.200GPO4000 + 0.200GPK4000                 : ARR( 0.533E-11,   500., 0.0);
+{  8374} G2P4005 +PERO5              =  0.600G1P4006 + 0.200GPO4000 + 0.200GPK4000                 : ARR( 0.200E-09,  2200., 0.0);
+{  8375} G2P4005 +PERO6              =  0.460G1P4006 + 0.270GPO4000 + 0.270GPK4000                 : ARR( 0.183E-11,   450., 0.0);
+{  8376} G2P4005 +PERO9              =  0.800G1P4006 + 0.200GPK4000                                : ARR( 0.100E-10,     0., 0.0);
+{  8377} G2P4006 +GNO                =       G1P4007 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  8378} G2P4006 +GNO                =       GPN4004                                               : ARR( 0.111E-12,  -360., 0.0);
+{  8379} G2P4006 +GHO2               =       GPH4000                                               : ARR( 0.214E-12, -1250., 0.0);
+{  8380} G2P4006 +GNO3               =       G1P4007 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  8381} G2P4006 +MEPERO             =  0.340G1P4007 + 0.330GPO4002 + 0.330GPK4002                 : ARR( 0.565E-13,  -845., 0.0);
+{  8382} G2P4006 +PERO1              =  0.460G1P4007 + 0.270GPO4002 + 0.270GPK4002                 : ARR( 0.434E-13,  -900., 0.0);
+{  8383} G2P4006 +PERO2              =  0.400G1P4007 + 0.300GPO4002 + 0.300GPK4002                 : ARR( 0.162E-13, -1400., 0.0);
+{  8384} G2P4006 +PERO3              =  0.460G1P4007 + 0.270GPO4002 + 0.270GPK4002                 : ARR( 0.488E-13, -1250., 0.0);
+{  8385} G2P4006 +PERO5              =  0.460G1P4007 + 0.270GPO4002 + 0.270GPK4002                 : ARR( 0.183E-11,   450., 0.0);
+{  8386} G2P4006 +PERO6              =  0.300G1P4007 + 0.350GPO4002 + 0.350GPK4002                 : ARR( 0.168E-13, -1300., 0.0);
+{  8387} G2P4006 +PERO9              =  0.650G1P4007 + 0.350GPK4002                                : ARR( 0.100E-10,     0., 0.0);
+{  8388} G1P4006                     =       GD02000 +      G2P2000                                : ARR( 0.200E+15,  7255., 0.0);
+{  8389} G1P4007                     =       GD03000 +      GCO     +      GNO2                    : ARR( 0.200E+15,  4949., 0.0);
+{  8390} GNN3006 +GHO                =       GND3003 +      GNO2                                   : ARR( 0.560E-13,     0., 0.0);
+{  8391} GNN3006+HV               =       G1N3005 +      GNO2                                   :  0.200E+01*SUN;
+{  8392} GNN3006+HV               =       G3N2000 +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{  8393} GHN3008 +GHO                =       GND3003 +      GHO                                    : ARR( 0.983E-11,     0., 0.0);
+{  8394} GHN3008 +GHO                =       G2N3005                                               : ARR( 0.190E-11,  -190., 0.0);
+{  8395} GHN3008+HV               =       G1H3003 +      GNO2                                   :  0.100E+01*SUN;
+{  8396} GHN3008+HV               =       G3N2000 +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{  8397} GHN3008+HV               =       G1N3005 +      GHO                                    :  0.100E+01*SUN;
+{  8398} GNK3001 +GHO                =       GND3003 +      GHO2                                   : ARR( 0.248E-11,     0., 0.0);
+{  8399} GNK3001 +GHO                =       G1N3005                                               : ARR( 0.212E-17,    85., 2.0);
+{  8400} GNK3001+HV               =       G3K2001 +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{  8401} GNK3001+HV               =       G1K3001 +      GNO2                                   :  0.100E+01*SUN;
+{  8402} GND3003 +GHO                =       G3N2000 +      GCO                                    : ARR( 0.127E-10,     0., 0.0);
+{  8403} GND3003 +GNO3               =       G3N2000 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{  8404} GND3003+HV               =       G1D3002 +      GNO2                                   :  0.100E+01*SUN;
+{  8405} GND3003+HV               =       G3N2000 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{  8406} GND3003+HV               =       GND2000 +      GCO                                    :  0.100E+01*SUN;
+{  8407} GND3003+HV               =       GN01001 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{  8408} GGN2000 +GHO                =       G3N2000                                               : ARR( 0.191E-11,  -190., 0.0);
+{  8409} GGN2000+HV               =       G1G2000 +      GNO2                                   :  0.100E+01*SUN;
+{  8410} GGN2000+HV               =       GCH2O   +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{  8411} GAN2000 +GHO                =       GCH2O   +      GNO2    +      GCO2                    : ARR( 0.541E-12,     0., 0.0);
+{  8412} GAN2000+HV               =       G1A2000 +      GNO2                                   :  0.100E+01*SUN;
+{  8413}  GPN2000    +M                 =       G3N2000 +      GNO2            +M                     : FALL( 0.280E+17, 13580., 0.0, 0.190E-02, 12175., 0.0,0.60);
+{  8414} GPN2000 +GHO                =       GPD2000 +      GNO2                                   : ARR( 0.280E-13,     0., 0.0);
+{  8415} GPN2000+HV               =       G1P2000 +      GNO2                                   :  0.100E+01*SUN;
+{  8416} GPN2000+HV               =       G3N2000 +      GNO2                                   :  0.100E+01*SUN;
+{  8417} GNN500j +GHO                =       GNN501l +      GHO2                                   : ARR( 0.872E-12,     0., 0.0);
+{  8418} GNN500j +GHO                =       GNN500l +      GNO2                                   : ARR( 0.128E-12,     0., 0.0);
+{  8419} GNN500j +GHO                =       G1N5026                                               : ARR( 0.228E-17,    85., 2.0);
+{  8420} GNN500j+HV               =       G1N500m +      GNO2                                   :  0.100E+01*SUN;
+{  8421} GNN500j+HV               =       G1N501d +      GNO2                                   :  0.100E+01*SUN;
+{  8422} GNN500j+HV               =       G1N5037 +      GNO2                                   :  0.100E+01*SUN;
+{  8423} G1N5037 +OXYGEN             =       GNN501T +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{  8424} G1N5037                     =       GNK500N +      GNO2                                   : ARR( 0.800E+11,  4024., 0.0);
+{  8425} GHN500s +GHO                =       GHN503Y +      GHO2                                   : ARR( 0.406E-11,     0., 0.0);
+{  8426} GHN500s +GHO                =       GNN500l +      GHO                                    : ARR( 0.416E-10,     0., 0.0);
+{  8427} GHN500s +GHO                =       G2N500k                                               : ARR( 0.192E-11,  -190., 0.0);
+{  8428} GHN500s+HV               =       G1N500m +      GHO                                    :  0.100E+01*SUN;
+{  8429} GHN500s+HV               =       G1H500l +      GNO2                                   :  0.100E+01*SUN;
+{  8430} GHN500s+HV               =       G1H501v +      GNO2                                   :  0.100E+01*SUN;
+{  8431} G1H501v                     =       GNK500N +      GHO                                    : ARR( 0.800E+11,  1678., 0.0);
+{  8432} GNN500k +GHO                =       GNN502N +      GHO2                                   : ARR( 0.419E-11,     0., 0.0);
+{  8433} GNN500k +GHO                =       GNN500l +      GHO2                                   : ARR( 0.107E-10,     0., 0.0);
+{  8434} GNN500k+HV               =       G1N500v +      GNO2                                   :  0.100E+01*SUN;
+{  8435} GNN500k+HV               =       G1N5038 +      GNO2                                   :  0.100E+01*SUN;
+{  8436} G1N5038                     =       GNK500N +      GHO2                                   : ARR( 0.800E+11,  2025., 0.0);
+{  8437} GNN500l +GHO                =       GNN501t +      GHO2                                   : ARR( 0.266E-11,     0., 0.0);
+{  8438} GNN500l +GHO                =       G2N502n                                               : ARR( 0.187E-12,     0., 0.0);
+{  8439} GNN500l+HV               =       G3K2001 +      G2N3004                                :  0.100E+01*SUN;
+{  8440} GNN500l+HV               =       GKO3000 +      GDD2000 + 2.000GNO2                    :  0.100E+01*SUN;
+{  8441} GNN500l+HV               =       G1N501o +      GNO2                                   :  0.100E+01*SUN;
+{  8442} GNN500l+HV               =       G1N5039 +      GNO2                                   :  0.100E+01*SUN;
+{  8443} G2N502n +GNO                =       G1N503A +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  8444} G2N502n +GNO                =       GNN5029                                               : ARR( 0.182E-12,  -360., 0.0);
+{  8445} G2N502n +GHO2               =       GHN503Z                                               : ARR( 0.242E-12, -1250., 0.0);
+{  8446} G2N502n +GNO3               =       G1N503A +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  8447} G2N502n +MEPERO             =  0.340G1N503A + 0.330GNN502O + 0.330GNN502P                 : ARR( 0.565E-13,  -845., 0.0);
+{  8448} G2N502n +PERO1              =  0.460G1N503A + 0.270GNN502O + 0.270GNN502P                 : ARR( 0.434E-13,  -900., 0.0);
+{  8449} G2N502n +PERO2              =  0.400G1N503A + 0.300GNN502O + 0.300GNN502P                 : ARR( 0.162E-13, -1400., 0.0);
+{  8450} G2N502n +PERO3              =  0.460G1N503A + 0.270GNN502O + 0.270GNN502P                 : ARR( 0.488E-13, -1250., 0.0);
+{  8451} G2N502n +PERO5              =  0.460G1N503A + 0.270GNN502O + 0.270GNN502P                 : ARR( 0.183E-11,   450., 0.0);
+{  8452} G2N502n +PERO6              =  0.300G1N503A + 0.350GNN502O + 0.350GNN502P                 : ARR( 0.168E-13, -1300., 0.0);
+{  8453} G2N502n +PERO9              =  0.650G1N503A + 0.350GNN502P                                : ARR( 0.100E-10,     0., 0.0);
+{  8454} G1N5039 +OXYGEN             =       GND500e +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{  8455} G1N5039                     =       GDK4001 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7175., 0.0);
+{  8456} G1N503A                     =       G3K2001 +      GNN3005                                : ARR( 0.200E+15,  3009., 0.0);
+{  8457} GNN4001 +GHO                =       G3N4006                                               : ARR( 0.210E-10,     0., 0.0);
+{  8458} GNN4001 +GNO3               =       G3N4006 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{  8459} GNN4001+HV               =       G1N400I +      GNO2                                   :  0.100E+01*SUN;
+{  8460} GNN4001+HV               =       G1N400J +      GNO2                                   :  0.100E+01*SUN;
+{  8461} GNN4001+HV               =       G2N3004 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{  8462} GNN4001+HV               =       GDD2000 +      GD02000 + 2.000GNO2                    :  0.100E+01*SUN;
+{  8463} G1N400I +OXYGEN             =       GND400D +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{  8464} G1N400I                     =       G3N4003                                               : ARR( 0.800E+11,  4559., 0.0);
+{  8465} G1N400I                     =       GDD3000 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7175., 0.0);
+{  8466} G1N400J                     =       GCH2O   +      GDD3000 +      GNO2                    : ARR( 0.200E+15,  8296., 0.0);
+{  8467} G1N400J                     =       GND2000 +      G2D2000                                : ARR( 0.200E+15,  7286., 0.0);
+{  8468} GNN500m +GHO                =       GNN501T +      GHO2                                   : ARR( 0.165E-11,     0., 0.0);
+{  8469} GNN500m +GHO                =       GNK500N +      GNO2                                   : ARR( 0.242E-12,     0., 0.0);
+{  8470} GNN500m +GHO                =       G1N5037                                               : ARR( 0.431E-17,    85., 2.0);
+{  8471} GNN500m+HV               =       G1N500n +      GNO2                                   :  0.200E+01*SUN;
+{  8472} GHN500t +GHO                =       GNK500N +      GHO                                    : ARR( 0.425E-10,     0., 0.0);
+{  8473} GHN500t +GHO                =       GHN503M +      GHO2                                   : ARR( 0.414E-11,     0., 0.0);
+{  8474} GHN500t +GHO                =       G2N500l                                               : ARR( 0.196E-11,  -190., 0.0);
+{  8475} GHN500t+HV               =       G1H500H +      GNO2                                   :  0.100E+01*SUN;
+{  8476} GHN500t+HV               =       G1N500n +      GHO                                    :  0.100E+01*SUN;
+{  8477} GNO500M +GHO                =       GND500l +      GHO2                                   : ARR( 0.424E-11,     0., 0.0);
+{  8478} GNO500M +GHO                =       GNK500N +      GHO2                                   : ARR( 0.109E-10,     0., 0.0);
+{  8479} GNO500M +GHO                =       GND500B +      GHO2                                   : ARR( 0.848E-12,     0., 0.0);
+{  8480} GNO500M+HV               =       G1O500J +      GNO2                                   :  0.100E+01*SUN;
+{  8481} GNK500N +GHO                =       GND500N +      GHO2                                   : ARR( 0.276E-11,     0., 0.0);
+{  8482} GNK500N +GHO                =       GKK5005 +      GNO2                                   : ARR( 0.420E-12,     0., 0.0);
+{  8483} GNK500N +GHO                =       GND500e +      GHO2                                   : ARR( 0.905E-12,     0., 0.0);
+{  8484} GNK500N+HV               =       G3K2001 +      G2N3008                                :  0.100E+01*SUN;
+{  8485} GNK500N+HV               =       GKO3000 +      GND2000                                :  0.100E+01*SUN;
+{  8486} GNK500N+HV               =       G1K500E +      GNO2                                   :  0.100E+01*SUN;
+{  8487} GND500B +GHO                =       GND500m +      GHO2                                   : ARR( 0.416E-11,     0., 0.0);
+{  8488} GND500B +GHO                =       GND500e +      GHO2                                   : ARR( 0.107E-10,     0., 0.0);
+{  8489} GND500B +GHO                =       G3N500D                                               : ARR( 0.430E-11,     0., 0.0);
+{  8490} GND500B +GNO3               =       G3N500D +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{  8491} GND500B+HV               =       G1D5005 +      GNO2                                   :  0.100E+01*SUN;
+{  8492} GND500B+HV               =       GDO4002 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{  8493} GND500B+HV               =       GKO3000 +      GND2000                                :  0.100E+01*SUN;
+{  8494} G3N500D +GHO2               =  0.800GGN500H + 0.200GAN500I + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  8495} G3N500D +GNO                =       GDO4002 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{  8496} G3N500D +GNO2               =       GPN500I                                               : ARR( 0.330E-08,     0.,-1.0);
+{  8497} G3N500D +GNO3               =       GDO4002 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{  8498} G3N500D +MEPERO             =  0.685GDO4002 + 0.315GAN500I + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  8499} G3N500D +PERO1              =  0.800GDO4002 + 0.200GAN500I + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  8500} G3N500D +PERO2              =  0.750GDO4002 + 0.250GAN500I + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  8501} G3N500D +PERO3              =  0.800GDO4002 + 0.200GAN500I + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  8502} G3N500D +PERO5              =  0.650GDO4002 + 0.350GAN500I + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  8503} G3N500D +PERO6              =  0.650GDO4002 + 0.350GAN500I + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  8504} G3N500D +PERO9              =       GDO4002 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{  8505} GND4002 +GHO                =       G3N4003                                               : ARR( 0.223E-10,     0., 0.0);
+{  8506} GND4002 +GNO3               =       G3N4003 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{  8507} GND4002+HV               =       G1D4001 +      GNO2                                   :  0.100E+01*SUN;
+{  8508} GND4002+HV               =       G2N3008 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{  8509} GND4002+HV               =       GND2000 +      GD02000                                :  0.100E+01*SUN;
+{  8510} GHN500u +GHO                =       GND500C +      GHO                                    : ARR( 0.844E-11,     0., 0.0);
+{  8511} GHN500u +GHO                =       G2H5018                                               : ARR( 0.459E-11,     0., 0.0);
+{  8512} GHN500u +GHO                =       G3H5007                                               : ARR( 0.213E-10,     0., 0.0);
+{  8513} GHN500u +GHO                =       G2N502o                                               : ARR( 0.195E-11,  -190., 0.0);
+{  8514} GHN500u +GNO3               =       G3H5007 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{  8515} GHN500u+HV               =       G1H501w +      GNO2                                   :  0.100E+01*SUN;
+{  8516} GHN500u+HV               =       G1N502y +      GHO                                    :  0.100E+01*SUN;
+{  8517} GHN500u+HV               =       G2H400D +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{  8518} GHN500u+HV               =       G2N3005 +      GD02000 +      GHO                     :  0.100E+01*SUN;
+{  8519} G2H5018 +GNO                =       G1H501x +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  8520} G2H5018 +GNO                =       GHN5034                                               : ARR( 0.182E-12,  -360., 0.0);
+{  8521} G2H5018 +GHO2               =       GHH500z                                               : ARR( 0.242E-12, -1250., 0.0);
+{  8522} G2H5018 +GNO3               =       G1H501x +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  8523} G2H5018 +MEPERO             =  0.340G1H501x + 0.330GHN503a + 0.330GHN503H                 : ARR( 0.565E-13,  -845., 0.0);
+{  8524} G2H5018 +PERO1              =  0.460G1H501x + 0.270GHN503a + 0.270GHN503H                 : ARR( 0.434E-13,  -900., 0.0);
+{  8525} G2H5018 +PERO2              =  0.400G1H501x + 0.300GHN503a + 0.300GHN503H                 : ARR( 0.162E-13, -1400., 0.0);
+{  8526} G2H5018 +PERO3              =  0.460G1H501x + 0.270GHN503a + 0.270GHN503H                 : ARR( 0.488E-13, -1250., 0.0);
+{  8527} G2H5018 +PERO5              =  0.460G1H501x + 0.270GHN503a + 0.270GHN503H                 : ARR( 0.183E-11,   450., 0.0);
+{  8528} G2H5018 +PERO6              =  0.300G1H501x + 0.350GHN503a + 0.350GHN503H                 : ARR( 0.168E-13, -1300., 0.0);
+{  8529} G2H5018 +PERO9              =  0.650G1H501x + 0.350GHN503H                                : ARR( 0.100E-10,     0., 0.0);
+{  8530} G3H5007 +GHO2               =  0.800GGH5009 + 0.200GAH5008 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  8531} G3H5007 +GNO                =       G2H400D +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{  8532} G3H5007 +GNO2               =       GPH5007                                               : ARR( 0.330E-08,     0.,-1.0);
+{  8533} G3H5007 +GNO3               =       G2H400D +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{  8534} G3H5007 +MEPERO             =  0.685G2H400D + 0.315GAH5008 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  8535} G3H5007 +PERO1              =  0.800G2H400D + 0.200GAH5008 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  8536} G3H5007 +PERO2              =  0.750G2H400D + 0.250GAH5008 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  8537} G3H5007 +PERO3              =  0.800G2H400D + 0.200GAH5008 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  8538} G3H5007 +PERO5              =  0.650G2H400D + 0.350GAH5008 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  8539} G3H5007 +PERO6              =  0.650G2H400D + 0.350GAH5008 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  8540} G3H5007 +PERO9              =       G2H400D +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{  8541} G2N502o +GNO                =       G1N502y +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  8542} G2N502o +GNO                =       GNN500h                                               : ARR( 0.182E-12,  -360., 0.0);
+{  8543} G2N502o +GHO2               =       GHN500u                                               : ARR( 0.242E-12, -1250., 0.0);
+{  8544} G2N502o +GNO3               =       G1N502y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  8545} G2N502o +MEPERO             =  0.340G1N502y + 0.330GND5001 + 0.330GND500C                 : ARR( 0.565E-13,  -845., 0.0);
+{  8546} G2N502o +PERO1              =  0.460G1N502y + 0.270GND5001 + 0.270GND500C                 : ARR( 0.434E-13,  -900., 0.0);
+{  8547} G2N502o +PERO2              =  0.400G1N502y + 0.300GND5001 + 0.300GND500C                 : ARR( 0.162E-13, -1400., 0.0);
+{  8548} G2N502o +PERO3              =  0.460G1N502y + 0.270GND5001 + 0.270GND500C                 : ARR( 0.488E-13, -1250., 0.0);
+{  8549} G2N502o +PERO5              =  0.460G1N502y + 0.270GND5001 + 0.270GND500C                 : ARR( 0.183E-11,   450., 0.0);
+{  8550} G2N502o +PERO6              =  0.300G1N502y + 0.350GND5001 + 0.350GND500C                 : ARR( 0.168E-13, -1300., 0.0);
+{  8551} G2N502o +PERO9              =  0.650G1N502y + 0.350GND500C                                : ARR( 0.100E-10,     0., 0.0);
+{  8552} G1H501w                     =       G2H5019                                               : ARR( 0.160E+12,  3221., 0.0);
+{  8553} G1H501w                     =       GDD4000 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  6008., 0.0);
+{  8554} G2H400D +GNO                =       G1H400E +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  8555} G2H400D +GNO                =       GHN400I                                               : ARR( 0.111E-12,  -360., 0.0);
+{  8556} G2H400D +GHO2               =       GHH4008                                               : ARR( 0.214E-12, -1250., 0.0);
+{  8557} G2H400D +GNO3               =       G1H400E +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  8558} G2H400D +MEPERO             =  0.480G1H400E + 0.260GHN400D + 0.260GHN4001                 : ARR( 0.146E-12,  -445., 0.0);
+{  8559} G2H400D +PERO1              =  0.600G1H400E + 0.200GHN400D + 0.200GHN4001                 : ARR( 0.112E-12,  -500., 0.0);
+{  8560} G2H400D +PERO2              =  0.560G1H400E + 0.220GHN400D + 0.220GHN4001                 : ARR( 0.418E-13, -1000., 0.0);
+{  8561} G2H400D +PERO3              =  0.600G1H400E + 0.200GHN400D + 0.200GHN4001                 : ARR( 0.126E-12,  -850., 0.0);
+{  8562} G2H400D +PERO5              =  0.600G1H400E + 0.200GHN400D + 0.200GHN4001                 : ARR( 0.473E-11,   850., 0.0);
+{  8563} G2H400D +PERO6              =  0.460G1H400E + 0.270GHN400D + 0.270GHN4001                 : ARR( 0.434E-13,  -900., 0.0);
+{  8564} G2H400D +PERO9              =  0.800G1H400E + 0.200GHN4001                                : ARR( 0.100E-10,     0., 0.0);
+{  8565} G1H501x                     =       GND2000 +      GDD3000 +      GHO                     : ARR( 0.200E+15,  4146., 0.0);
+{  8566} G2H5019 +GNO                =       G1H501y +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  8567} G2H5019 +GNO                =       GHN502S                                               : ARR( 0.182E-12,  -360., 0.0);
+{  8568} G2H5019 +GHO2               =       GHH5011                                               : ARR( 0.242E-12, -1250., 0.0);
+{  8569} G2H5019 +GNO3               =       G1H501y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  8570} G2H5019 +MEPERO             =  0.340G1H501y + 0.330GHD500Y + 0.330GHD500S                 : ARR( 0.565E-13,  -845., 0.0);
+{  8571} G2H5019 +PERO1              =  0.460G1H501y + 0.270GHD500Y + 0.270GHD500S                 : ARR( 0.434E-13,  -900., 0.0);
+{  8572} G2H5019 +PERO2              =  0.400G1H501y + 0.300GHD500Y + 0.300GHD500S                 : ARR( 0.162E-13, -1400., 0.0);
+{  8573} G2H5019 +PERO3              =  0.460G1H501y + 0.270GHD500Y + 0.270GHD500S                 : ARR( 0.488E-13, -1250., 0.0);
+{  8574} G2H5019 +PERO5              =  0.460G1H501y + 0.270GHD500Y + 0.270GHD500S                 : ARR( 0.183E-11,   450., 0.0);
+{  8575} G2H5019 +PERO6              =  0.300G1H501y + 0.350GHD500Y + 0.350GHD500S                 : ARR( 0.168E-13, -1300., 0.0);
+{  8576} G2H5019 +PERO9              =  0.650G1H501y + 0.350GHD500S                                : ARR( 0.100E-10,     0., 0.0);
+{  8577} G1H400E +OXYGEN             =       GHN4001 +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{  8578} G1H400E                     =       GHD4006 +      GNO2                                   : ARR( 0.160E+12,  4531., 0.0);
+{  8579} G1H501y                     =       GHD500Z +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{  8580} G1H501y                     =       GHD4000 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5437., 0.0);
+{  8581} GHN500v +GHO                =       GHN503b +      GHO2                                   : ARR( 0.842E-12,     0., 0.0);
+{  8582} GHN500v +GHO                =       GNN500T +      GHO                                    : ARR( 0.862E-11,     0., 0.0);
+{  8583} GHN500v +GHO                =       G2N501Z                                               : ARR( 0.199E-11,  -190., 0.0);
+{  8584} GHN500v+HV               =       G1H500F +      GNO2                                   :  0.100E+01*SUN;
+{  8585} GHN500v+HV               =       G1N501d +      GHO                                    :  0.100E+01*SUN;
+{  8586} GHN500v+HV               =       G1H501z +      GNO2                                   :  0.100E+01*SUN;
+{  8587} G1H501z +OXYGEN             =       GHN503M +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{  8588} G1H501z                     =       GHK500B +      GNO2                                   : ARR( 0.800E+11,  4024., 0.0);
+{  8589} G1H501z                     =       GND4002 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  6008., 0.0);
+{  8590} GHH500A +GHO                =       GHH5012 +      GHO2                                   : ARR( 0.413E-11,     0., 0.0);
+{  8591} GHH500A +GHO                =       GHN500x +      GHO                                    : ARR( 0.423E-10,     0., 0.0);
+{  8592} GHH500A +GHO                =       GHN5013 +      GHO                                    : ARR( 0.846E-11,     0., 0.0);
+{  8593} GHH500A +GHO                =       G2H500A                                               : ARR( 0.195E-11,  -190., 0.0);
+{  8594} GHH500A +GHO                =       G2H500Y                                               : ARR( 0.195E-11,  -190., 0.0);
+{  8595} GHH500A+HV               =       G1H500F +      GHO                                    :  0.100E+01*SUN;
+{  8596} GHH500A+HV               =       G1H500l +      GHO                                    :  0.100E+01*SUN;
+{  8597} GHH500A+HV               =       G1H5021 +      GNO2                                   :  0.100E+01*SUN;
+{  8598} G1H5021                     =       GHK500B +      GHO                                    : ARR( 0.800E+11,  1678., 0.0);
+{  8599} GHN500w +GHO                =       GHN503c +      GHO2                                   : ARR( 0.407E-11,     0., 0.0);
+{  8600} GHN500w +GHO                =       GHN500x +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{  8601} GHN500w +GHO                =       G2H501A                                               : ARR( 0.143E-11,     0., 0.0);
+{  8602} GHN500w +GHO                =       GNK500P +      GHO                                    : ARR( 0.834E-11,     0., 0.0);
+{  8603} GHN500w +GHO                =       G2N500s                                               : ARR( 0.192E-11,  -190., 0.0);
+{  8604} GHN500w+HV               =       G1N500v +      GHO                                    :  0.100E+01*SUN;
+{  8605} GHN500w+HV               =       G1H501h +      GNO2                                   :  0.100E+01*SUN;
+{  8606} G2H501A +GNO                =       G1H5022 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  8607} G2H501A +GNO                =       GHN503d                                               : ARR( 0.182E-12,  -360., 0.0);
+{  8608} G2H501A +GHO2               =       GHH5013                                               : ARR( 0.242E-12, -1250., 0.0);
+{  8609} G2H501A +GNO3               =       G1H5022 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  8610} G2H501A +MEPERO             =  0.340G1H5022 + 0.330GHN503e + 0.330GHN503f                 : ARR( 0.565E-13,  -845., 0.0);
+{  8611} G2H501A +PERO1              =  0.460G1H5022 + 0.270GHN503e + 0.270GHN503f                 : ARR( 0.434E-13,  -900., 0.0);
+{  8612} G2H501A +PERO2              =  0.400G1H5022 + 0.300GHN503e + 0.300GHN503f                 : ARR( 0.162E-13, -1400., 0.0);
+{  8613} G2H501A +PERO3              =  0.460G1H5022 + 0.270GHN503e + 0.270GHN503f                 : ARR( 0.488E-13, -1250., 0.0);
+{  8614} G2H501A +PERO5              =  0.460G1H5022 + 0.270GHN503e + 0.270GHN503f                 : ARR( 0.183E-11,   450., 0.0);
+{  8615} G2H501A +PERO6              =  0.300G1H5022 + 0.350GHN503e + 0.350GHN503f                 : ARR( 0.168E-13, -1300., 0.0);
+{  8616} G2H501A +PERO9              =  0.650G1H5022 + 0.350GHN503f                                : ARR( 0.100E-10,     0., 0.0);
+{  8617} G1H5022                     =       GDO2000 +      GHN3007 +      GHO2                    : ARR( 0.200E+15,  3575., 0.0);
+{  8618} GHN500x +GHO                =       GHN502k +      GHO2                                   : ARR( 0.253E-11,     0., 0.0);
+{  8619} GHN500x +GHO                =       GNK500Q +      GHO                                    : ARR( 0.270E-10,     0., 0.0);
+{  8620} GHN500x +GHO                =       G2N501l                                               : ARR( 0.196E-11,  -190., 0.0);
+{  8621} GHN500x+HV               =       G3K2001 +      G2H3001                                :  0.100E+01*SUN;
+{  8622} GHN500x+HV               =       GKO3000 +      GDD2000 +      GHO     +      GNO2     :  0.100E+01*SUN;
+{  8623} GHN500x+HV               =       G1N501o +      GHO                                    :  0.100E+01*SUN;
+{  8624} GHN500x+HV               =       G1H5023 +      GNO2                                   :  0.100E+01*SUN;
+{  8625} G1H5023 +OXYGEN             =       GHD500a +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{  8626} G1H5023                     =       GDK4001 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5636., 0.0);
+{  8627} GHH500B +GHO                =       GHH500z +      GHO2                                   : ARR( 0.413E-11,     0., 0.0);
+{  8628} GHH500B +GHO                =       GHN500z +      GHO                                    : ARR( 0.423E-10,     0., 0.0);
+{  8629} GHH500B +GHO                =       GHN5014 +      GHO                                    : ARR( 0.846E-11,     0., 0.0);
+{  8630} GHH500B +GHO                =       G2H500B                                               : ARR( 0.195E-11,  -190., 0.0);
+{  8631} GHH500B +GHO                =       G2H500Z                                               : ARR( 0.195E-11,  -190., 0.0);
+{  8632} GHH500B+HV               =       G1H500G +      GHO                                    :  0.100E+01*SUN;
+{  8633} GHH500B+HV               =       G1H500n +      GHO                                    :  0.100E+01*SUN;
+{  8634} GHH500B+HV               =       G1H5024 +      GNO2                                   :  0.100E+01*SUN;
+{  8635} G1H5024                     =       G2H501B                                               : ARR( 0.160E+12,  3000., 0.0);
+{  8636} G1H5024                     =       GHD4006 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{  8637} G2H501B +GNO                =       G1H5025 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  8638} G2H501B +GNO                =       GHH5014                                               : ARR( 0.182E-12,  -360., 0.0);
+{  8639} G2H501B +GHO2               =       GHH5015                                               : ARR( 0.242E-12, -1250., 0.0);
+{  8640} G2H501B +GNO3               =       G1H5025 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  8641} G2H501B +MEPERO             =  0.340G1H5025 + 0.330GHH5016 + 0.330GHH5017                 : ARR( 0.565E-13,  -845., 0.0);
+{  8642} G2H501B +PERO1              =  0.460G1H5025 + 0.270GHH5016 + 0.270GHH5017                 : ARR( 0.434E-13,  -900., 0.0);
+{  8643} G2H501B +PERO2              =  0.400G1H5025 + 0.300GHH5016 + 0.300GHH5017                 : ARR( 0.162E-13, -1400., 0.0);
+{  8644} G2H501B +PERO3              =  0.460G1H5025 + 0.270GHH5016 + 0.270GHH5017                 : ARR( 0.488E-13, -1250., 0.0);
+{  8645} G2H501B +PERO5              =  0.460G1H5025 + 0.270GHH5016 + 0.270GHH5017                 : ARR( 0.183E-11,   450., 0.0);
+{  8646} G2H501B +PERO6              =  0.300G1H5025 + 0.350GHH5016 + 0.350GHH5017                 : ARR( 0.168E-13, -1300., 0.0);
+{  8647} G2H501B +PERO9              =  0.650G1H5025 + 0.350GHH5017                                : ARR( 0.100E-10,     0., 0.0);
+{  8648} G1H5025                     =       GHH5018 +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{  8649} G1H5025                     =       GHD3003 +      GDO2000 +      GHO                     : ARR( 0.200E+15,  4695., 0.0);
+{  8650} G1H5025                     =       GHH4009 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  5296., 0.0);
+{  8651} GHN500y +GHO                =       GHN503a +      GHO2                                   : ARR( 0.407E-11,     0., 0.0);
+{  8652} GHN500y +GHO                =       G2H501C                                               : ARR( 0.143E-11,     0., 0.0);
+{  8653} GHN500y +GHO                =       GHN500z +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{  8654} GHN500y +GHO                =       GNK500R +      GHO                                    : ARR( 0.834E-11,     0., 0.0);
+{  8655} GHN500y +GHO                =       G2N501e                                               : ARR( 0.192E-11,  -190., 0.0);
+{  8656} GHN500y+HV               =       G1N501k +      GHO                                    :  0.100E+01*SUN;
+{  8657} GHN500y+HV               =       G1H5026 +      GNO2                                   :  0.100E+01*SUN;
+{  8658} G2H501C +GNO                =       G1H5027 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  8659} G2H501C +GNO                =       GHN503g                                               : ARR( 0.182E-12,  -360., 0.0);
+{  8660} G2H501C +GHO2               =       GHH5019                                               : ARR( 0.242E-12, -1250., 0.0);
+{  8661} G2H501C +GNO3               =       G1H5027 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  8662} G2H501C +MEPERO             =  0.340G1H5027 + 0.330GHN503e + 0.330GHN503h                 : ARR( 0.565E-13,  -845., 0.0);
+{  8663} G2H501C +PERO1              =  0.460G1H5027 + 0.270GHN503e + 0.270GHN503h                 : ARR( 0.434E-13,  -900., 0.0);
+{  8664} G2H501C +PERO2              =  0.400G1H5027 + 0.300GHN503e + 0.300GHN503h                 : ARR( 0.162E-13, -1400., 0.0);
+{  8665} G2H501C +PERO3              =  0.460G1H5027 + 0.270GHN503e + 0.270GHN503h                 : ARR( 0.488E-13, -1250., 0.0);
+{  8666} G2H501C +PERO5              =  0.460G1H5027 + 0.270GHN503e + 0.270GHN503h                 : ARR( 0.183E-11,   450., 0.0);
+{  8667} G2H501C +PERO6              =  0.300G1H5027 + 0.350GHN503e + 0.350GHN503h                 : ARR( 0.168E-13, -1300., 0.0);
+{  8668} G2H501C +PERO9              =  0.650G1H5027 + 0.350GHN503h                                : ARR( 0.100E-10,     0., 0.0);
+{  8669} G1H5026                     =       G2H501D                                               : ARR( 0.160E+12,  3000., 0.0);
+{  8670} G1H5026                     =       GDO4003 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{  8671} G1H5027                     =       GDO2000 +      GHN3007 +      GHO2                    : ARR( 0.200E+15,  3486., 0.0);
+{  8672} G2H501D +GNO                =       G1H5028 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  8673} G2H501D +GNO                =       GHN503i                                               : ARR( 0.182E-12,  -360., 0.0);
+{  8674} G2H501D +GHO2               =       GHH501A                                               : ARR( 0.242E-12, -1250., 0.0);
+{  8675} G2H501D +GNO3               =       G1H5028 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  8676} G2H501D +MEPERO             =  0.340G1H5028 + 0.330GHO500T + 0.330GHK500e                 : ARR( 0.565E-13,  -845., 0.0);
+{  8677} G2H501D +PERO1              =  0.460G1H5028 + 0.270GHO500T + 0.270GHK500e                 : ARR( 0.434E-13,  -900., 0.0);
+{  8678} G2H501D +PERO2              =  0.400G1H5028 + 0.300GHO500T + 0.300GHK500e                 : ARR( 0.162E-13, -1400., 0.0);
+{  8679} G2H501D +PERO3              =  0.460G1H5028 + 0.270GHO500T + 0.270GHK500e                 : ARR( 0.488E-13, -1250., 0.0);
+{  8680} G2H501D +PERO5              =  0.460G1H5028 + 0.270GHO500T + 0.270GHK500e                 : ARR( 0.183E-11,   450., 0.0);
+{  8681} G2H501D +PERO6              =  0.300G1H5028 + 0.350GHO500T + 0.350GHK500e                 : ARR( 0.168E-13, -1300., 0.0);
+{  8682} G2H501D +PERO9              =  0.650G1H5028 + 0.350GHK500e                                : ARR( 0.100E-10,     0., 0.0);
+{  8683} G1H5028                     =       GHD3003 +      GDO2000 +      GHO2                    : ARR( 0.200E+15,  3486., 0.0);
+{  8684} GHN500z +GHO                =       GHN503H +      GHO2                                   : ARR( 0.134E-10,     0., 0.0);
+{  8685} GHN500z +GHO                =       GNK500S +      GHO                                    : ARR( 0.530E-11,     0., 0.0);
+{  8686} GHN500z +GHO                =       G2N502p                                               : ARR( 0.200E-11,  -190., 0.0);
+{  8687} GHN500z+HV               =       G3K3001 +      GND2000 +      GHO                     :  0.100E+01*SUN;
+{  8688} GHN500z+HV               =       G1N503B +      GHO                                    :  0.100E+01*SUN;
+{  8689} GHN500z+HV               =       G1H5029 +      GNO2                                   :  0.100E+01*SUN;
+{  8690} G2N502p +GNO                =       G1N503B +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  8691} G2N502p +GNO                =       GNN502J                                               : ARR( 0.182E-12,  -360., 0.0);
+{  8692} G2N502p +GHO2               =       GHN500z                                               : ARR( 0.242E-12, -1250., 0.0);
+{  8693} G2N502p +GNO3               =       G1N503B +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  8694} G2N502p +MEPERO             =  0.340G1N503B + 0.330GNK500O + 0.330GNK500S                 : ARR( 0.565E-13,  -845., 0.0);
+{  8695} G2N502p +PERO1              =  0.460G1N503B + 0.270GNK500O + 0.270GNK500S                 : ARR( 0.434E-13,  -900., 0.0);
+{  8696} G2N502p +PERO2              =  0.400G1N503B + 0.300GNK500O + 0.300GNK500S                 : ARR( 0.162E-13, -1400., 0.0);
+{  8697} G2N502p +PERO3              =  0.460G1N503B + 0.270GNK500O + 0.270GNK500S                 : ARR( 0.488E-13, -1250., 0.0);
+{  8698} G2N502p +PERO5              =  0.460G1N503B + 0.270GNK500O + 0.270GNK500S                 : ARR( 0.183E-11,   450., 0.0);
+{  8699} G2N502p +PERO6              =  0.300G1N503B + 0.350GNK500O + 0.350GNK500S                 : ARR( 0.168E-13, -1300., 0.0);
+{  8700} G2N502p +PERO9              =  0.650G1N503B + 0.350GNK500S                                : ARR( 0.100E-10,     0., 0.0);
+{  8701} G1N503B                     =       G3K3001 +      GND2000                                : ARR( 0.200E+15,  3003., 0.0);
+{  8702} G1H5029 +OXYGEN             =       GHD500Q +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{  8703} G1H5029                     =       GDK4005 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5784., 0.0);
+{  8704} GHN4001 +GHO                =       GND4004 +      GHO                                    : ARR( 0.266E-10,     0., 0.0);
+{  8705} GHN4001 +GHO                =       G3H4002                                               : ARR( 0.211E-10,     0., 0.0);
+{  8706} GHN4001 +GHO                =       G2N400I                                               : ARR( 0.193E-11,  -190., 0.0);
+{  8707} GHN4001 +GNO3               =       G3H4002 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{  8708} GHN4001+HV               =       G1H400F +      GNO2                                   :  0.100E+01*SUN;
+{  8709} GHN4001+HV               =       G1N400J +      GHO                                    :  0.100E+01*SUN;
+{  8710} GHN4001+HV               =       G2H3001 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{  8711} GHN4001+HV               =       GDD2000 +      GD02000 +      GHO     +      GNO2     :  0.100E+01*SUN;
+{  8712} G3H4002 +GHO2               =  0.800GGH4002 + 0.200GAH4003 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  8713} G3H4002 +GNO                =       G2H3001 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{  8714} G3H4002 +GNO2               =       GPH4002                                               : ARR( 0.330E-08,     0.,-1.0);
+{  8715} G3H4002 +GNO3               =       G2H3001 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{  8716} G3H4002 +MEPERO             =  0.685G2H3001 + 0.315GAH4003 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  8717} G3H4002 +PERO1              =  0.800G2H3001 + 0.200GAH4003 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  8718} G3H4002 +PERO2              =  0.750G2H3001 + 0.250GAH4003 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  8719} G3H4002 +PERO3              =  0.800G2H3001 + 0.200GAH4003 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  8720} G3H4002 +PERO5              =  0.650G2H3001 + 0.350GAH4003 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  8721} G3H4002 +PERO6              =  0.650G2H3001 + 0.350GAH4003 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  8722} G3H4002 +PERO9              =       G2H3001 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{  8723} G2N400I +GNO                =       G1N400J +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  8724} G2N400I +GNO                =       GNN4001                                               : ARR( 0.111E-12,  -360., 0.0);
+{  8725} G2N400I +GHO2               =       GHN4001                                               : ARR( 0.214E-12, -1250., 0.0);
+{  8726} G2N400I +GNO3               =       G1N400J +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  8727} G2N400I +MEPERO             =  0.340G1N400J + 0.330GND4003 + 0.330GND4004                 : ARR( 0.565E-13,  -845., 0.0);
+{  8728} G2N400I +PERO1              =  0.460G1N400J + 0.270GND4003 + 0.270GND4004                 : ARR( 0.434E-13,  -900., 0.0);
+{  8729} G2N400I +PERO2              =  0.400G1N400J + 0.300GND4003 + 0.300GND4004                 : ARR( 0.162E-13, -1400., 0.0);
+{  8730} G2N400I +PERO3              =  0.460G1N400J + 0.270GND4003 + 0.270GND4004                 : ARR( 0.488E-13, -1250., 0.0);
+{  8731} G2N400I +PERO5              =  0.460G1N400J + 0.270GND4003 + 0.270GND4004                 : ARR( 0.183E-11,   450., 0.0);
+{  8732} G2N400I +PERO6              =  0.300G1N400J + 0.350GND4003 + 0.350GND4004                 : ARR( 0.168E-13, -1300., 0.0);
+{  8733} G2N400I +PERO9              =  0.650G1N400J + 0.350GND4004                                : ARR( 0.100E-10,     0., 0.0);
+{  8734} G1H400F +OXYGEN             =       GHD400C +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{  8735} G1H400F                     =       GDD3000 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5636., 0.0);
+{  8736} GHH500C +GHO                =       GHH5011 +      GHO2                                   : ARR( 0.818E-11,     0., 0.0);
+{  8737} GHH500C +GHO                =       GHK500B +      GHO                                    : ARR( 0.839E-10,     0., 0.0);
+{  8738} GHH500C +GHO                =       G2H500C                                               : ARR( 0.387E-11,  -190., 0.0);
+{  8739} GHH500C+HV               =       G1H500H +      GHO                                    :  0.200E+01*SUN;
+{  8740} GHO500I +GHO                =       GHD500Y +      GHO2                                   : ARR( 0.414E-11,     0., 0.0);
+{  8741} GHO500I +GHO                =       GHK500B +      GHO2                                   : ARR( 0.106E-10,     0., 0.0);
+{  8742} GHO500I +GHO                =       GKO500A +      GHO                                    : ARR( 0.424E-10,     0., 0.0);
+{  8743} GHO500I +GHO                =       GHD5006 +      GHO2                                   : ARR( 0.414E-11,     0., 0.0);
+{  8744} GHO500I +GHO                =       G2O500F                                               : ARR( 0.196E-11,  -190., 0.0);
+{  8745} GHO500I+HV               =       G1O500J +      GHO                                    :  0.100E+01*SUN;
+{  8746} GHK500B +GHO                =       GKK5005 +      GHO                                    : ARR( 0.142E-09,     0., 0.0);
+{  8747} GHK500B+HV               =       G3K2001 +      G2H3004                                :  0.100E+01*SUN;
+{  8748} GHK500B+HV               =       GKO3000 +      GHD2000                                :  0.100E+01*SUN;
+{  8749} GHK500B+HV               =       G1K500E +      GHO                                    :  0.100E+01*SUN;
+{  8750} GHD5006 +GHO                =       GHD500Z +      GHO2                                   : ARR( 0.404E-11,     0., 0.0);
+{  8751} GHD5006 +GHO                =       GHD500a +      GHO2                                   : ARR( 0.103E-10,     0., 0.0);
+{  8752} GHD5006 +GHO                =       G2H501E                                               : ARR( 0.450E-11,     0., 0.0);
+{  8753} GHD5006 +GHO                =       GDK5005 +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{  8754} GHD5006 +GHO                =       G3H5008                                               : ARR( 0.209E-10,     0., 0.0);
+{  8755} GHD5006 +GHO                =       G2D5003                                               : ARR( 0.191E-11,  -190., 0.0);
+{  8756} GHD5006 +GNO3               =       G3H5008 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{  8757} GHD5006+HV               =       G1D5005 +      GHO                                    :  0.100E+01*SUN;
+{  8758} GHD5006+HV               =       GDO4002 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{  8759} G2H501E +GNO                =       G1H502A +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  8760} G2H501E +GNO                =       GHN5037                                               : ARR( 0.182E-12,  -360., 0.0);
+{  8761} G2H501E +GHO2               =       GHH5018                                               : ARR( 0.242E-12, -1250., 0.0);
+{  8762} G2H501E +GNO3               =       G1H502A +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  8763} G2H501E +MEPERO             =  0.340G1H502A + 0.330GHD500b + 0.330GHD500c                 : ARR( 0.565E-13,  -845., 0.0);
+{  8764} G2H501E +PERO1              =  0.460G1H502A + 0.270GHD500b + 0.270GHD500c                 : ARR( 0.434E-13,  -900., 0.0);
+{  8765} G2H501E +PERO2              =  0.400G1H502A + 0.300GHD500b + 0.300GHD500c                 : ARR( 0.162E-13, -1400., 0.0);
+{  8766} G2H501E +PERO3              =  0.460G1H502A + 0.270GHD500b + 0.270GHD500c                 : ARR( 0.488E-13, -1250., 0.0);
+{  8767} G2H501E +PERO5              =  0.460G1H502A + 0.270GHD500b + 0.270GHD500c                 : ARR( 0.183E-11,   450., 0.0);
+{  8768} G2H501E +PERO6              =  0.300G1H502A + 0.350GHD500b + 0.350GHD500c                 : ARR( 0.168E-13, -1300., 0.0);
+{  8769} G2H501E +PERO9              =  0.650G1H502A + 0.350GHD500c                                : ARR( 0.100E-10,     0., 0.0);
+{  8770} G3H5008 +GHO2               =  0.800GGH500A + 0.200GAH500A + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  8771} G3H5008 +GNO                =       GDO4002 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{  8772} G3H5008 +GNO2               =       GPH500A                                               : ARR( 0.330E-08,     0.,-1.0);
+{  8773} G3H5008 +GNO3               =       GDO4002 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{  8774} G3H5008 +MEPERO             =  0.685GDO4002 + 0.315GAH500A + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  8775} G3H5008 +PERO1              =  0.800GDO4002 + 0.200GAH500A + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  8776} G3H5008 +PERO2              =  0.750GDO4002 + 0.250GAH500A + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  8777} G3H5008 +PERO3              =  0.800GDO4002 + 0.200GAH500A + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  8778} G3H5008 +PERO5              =  0.650GDO4002 + 0.350GAH500A + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  8779} G3H5008 +PERO6              =  0.650GDO4002 + 0.350GAH500A + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  8780} G3H5008 +PERO9              =       GDO4002 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{  8781} G1H502A                     =       GDO2000 +      GHD3004 +      GHO2                    : ARR( 0.200E+15,  2745., 0.0);
+{  8782} GHD4000 +GHO                =       GDK4001 +      GHO                                    : ARR( 0.138E-09,     0., 0.0);
+{  8783} GHD4000 +GHO                =       G3H4003                                               : ARR( 0.220E-10,     0., 0.0);
+{  8784} GHD4000 +GNO3               =       G3H4003 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{  8785} GHD4000+HV               =       G1D4001 +      GHO                                    :  0.100E+01*SUN;
+{  8786} GHD4000+HV               =       G2H3004 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{  8787} GHD4000+HV               =       GHD2000 +      GD02000                                :  0.100E+01*SUN;
+{  8788} G3H4003 +GHO2               =  0.800GGH4006 + 0.200GAH4007 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  8789} G3H4003 +GNO                =       G2H3004 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{  8790} G3H4003 +GNO2               =       GPH4007                                               : ARR( 0.330E-08,     0.,-1.0);
+{  8791} G3H4003 +GNO3               =       G2H3004 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{  8792} G3H4003 +MEPERO             =  0.685G2H3004 + 0.315GAH4007 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  8793} G3H4003 +PERO1              =  0.800G2H3004 + 0.200GAH4007 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  8794} G3H4003 +PERO2              =  0.750G2H3004 + 0.250GAH4007 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  8795} G3H4003 +PERO3              =  0.800G2H3004 + 0.200GAH4007 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  8796} G3H4003 +PERO5              =  0.650G2H3004 + 0.350GAH4007 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  8797} G3H4003 +PERO6              =  0.650G2H3004 + 0.350GAH4007 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  8798} G3H4003 +PERO9              =       G2H3004 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{  8799} GHN5011 +GHO                =       GHN5021 +      GHO2                                   : ARR( 0.433E-11,     0., 0.0);
+{  8800} GHN5011 +GHO                =       GNK500J +      GHO                                    : ARR( 0.444E-10,     0., 0.0);
+{  8801} GHN5011 +GHO                =       G2N500m                                               : ARR( 0.205E-11,  -190., 0.0);
+{  8802} GHN5011+HV               =       G1N500o +      GHO                                    :  0.100E+01*SUN;
+{  8803} GHN5011+HV               =       G1H502B +      GNO2                                   :  0.100E+01*SUN;
+{  8804} G1H502B                     =       GKO500A +      GHO                                    : ARR( 0.800E+11,  1678., 0.0);
+{  8805} G1H502B                     =       GHD4000 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4799., 0.0);
+{  8806} GHN5012 +GHO                =       GHN501C +      GHO2                                   : ARR( 0.433E-11,     0., 0.0);
+{  8807} GHN5012 +GHO                =       GNK500O +      GHO                                    : ARR( 0.444E-10,     0., 0.0);
+{  8808} GHN5012 +GHO                =       G2N500n                                               : ARR( 0.205E-11,  -190., 0.0);
+{  8809} GHN5012+HV               =       G1N500p +      GHO                                    :  0.100E+01*SUN;
+{  8810} GHN5012+HV               =       G1H502C +      GNO2                                   :  0.100E+01*SUN;
+{  8811} G1H502C                     =       G2H501F                                               : ARR( 0.160E+12,  3000., 0.0);
+{  8812} G1H502C                     =       GHD4006 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{  8813} G2H501F +GNO                =       G1H502D +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  8814} G2H501F +GNO                =       GHN503j                                               : ARR( 0.182E-12,  -360., 0.0);
+{  8815} G2H501F +GHO2               =       GHH5016                                               : ARR( 0.242E-12, -1250., 0.0);
+{  8816} G2H501F +GNO3               =       G1H502D +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  8817} G2H501F +MEPERO             =  0.340G1H502D + 0.330GHO500U + 0.330GHK500f                 : ARR( 0.565E-13,  -845., 0.0);
+{  8818} G2H501F +PERO1              =  0.460G1H502D + 0.270GHO500U + 0.270GHK500f                 : ARR( 0.434E-13,  -900., 0.0);
+{  8819} G2H501F +PERO2              =  0.400G1H502D + 0.300GHO500U + 0.300GHK500f                 : ARR( 0.162E-13, -1400., 0.0);
+{  8820} G2H501F +PERO3              =  0.460G1H502D + 0.270GHO500U + 0.270GHK500f                 : ARR( 0.488E-13, -1250., 0.0);
+{  8821} G2H501F +PERO5              =  0.460G1H502D + 0.270GHO500U + 0.270GHK500f                 : ARR( 0.183E-11,   450., 0.0);
+{  8822} G2H501F +PERO6              =  0.300G1H502D + 0.350GHO500U + 0.350GHK500f                 : ARR( 0.168E-13, -1300., 0.0);
+{  8823} G2H501F +PERO9              =  0.650G1H502D + 0.350GHK500f                                : ARR( 0.100E-10,     0., 0.0);
+{  8824} G1H502D                     =       GHD500H +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{  8825} G1H502D                     =       GDO3002 +      GDO2000 +      GHO                     : ARR( 0.200E+15,  4695., 0.0);
+{  8826} G1H502D                     =       GHD400A +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  5296., 0.0);
+{  8827} GNO500N +GHO                =       GND500E +      GHO2                                   : ARR( 0.413E-11,     0., 0.0);
+{  8828} GNO500N +GHO                =       G2N502q                                               : ARR( 0.145E-11,     0., 0.0);
+{  8829} GNO500N +GHO                =       GNK500O +      GHO2                                   : ARR( 0.106E-10,     0., 0.0);
+{  8830} GNO500N +GHO                =       GNK500R +      GHO2                                   : ARR( 0.211E-11,     0., 0.0);
+{  8831} GNO500N+HV               =       G1O500X +      GNO2                                   :  0.100E+01*SUN;
+{  8832} G2N502q +GNO                =       G1N503C +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  8833} G2N502q +GNO                =       GNN501p                                               : ARR( 0.182E-12,  -360., 0.0);
+{  8834} G2N502q +GHO2               =       GHN503k                                               : ARR( 0.242E-12, -1250., 0.0);
+{  8835} G2N502q +GNO3               =       G1N503C +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  8836} G2N502q +MEPERO             =  0.340G1N503C + 0.330GNO500Y + 0.330GNK500t                 : ARR( 0.565E-13,  -845., 0.0);
+{  8837} G2N502q +PERO1              =  0.460G1N503C + 0.270GNO500Y + 0.270GNK500t                 : ARR( 0.434E-13,  -900., 0.0);
+{  8838} G2N502q +PERO2              =  0.400G1N503C + 0.300GNO500Y + 0.300GNK500t                 : ARR( 0.162E-13, -1400., 0.0);
+{  8839} G2N502q +PERO3              =  0.460G1N503C + 0.270GNO500Y + 0.270GNK500t                 : ARR( 0.488E-13, -1250., 0.0);
+{  8840} G2N502q +PERO5              =  0.460G1N503C + 0.270GNO500Y + 0.270GNK500t                 : ARR( 0.183E-11,   450., 0.0);
+{  8841} G2N502q +PERO6              =  0.300G1N503C + 0.350GNO500Y + 0.350GNK500t                 : ARR( 0.168E-13, -1300., 0.0);
+{  8842} G2N502q +PERO9              =  0.650G1N503C + 0.350GNK500t                                : ARR( 0.100E-10,     0., 0.0);
+{  8843} G1O500X                     =       G2O500S                                               : ARR( 0.160E+12,  3000., 0.0);
+{  8844} G1O500X                     =       GDO4003 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{  8845} G1N503C                     =       GDO2000 +      GND3002 +      GHO2                    : ARR( 0.200E+15,  3486., 0.0);
+{  8846} G2O500S +GNO                =       G1O500Y +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  8847} G2O500S +GNO                =       GNO500b                                               : ARR( 0.182E-12,  -360., 0.0);
+{  8848} G2O500S +GHO2               =       GHO500T                                               : ARR( 0.242E-12, -1250., 0.0);
+{  8849} G2O500S +GNO3               =       G1O500Y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  8850} G2O500S +MEPERO             =  0.340G1O500Y + 0.330GOO500D + 0.330GKO500L                 : ARR( 0.565E-13,  -845., 0.0);
+{  8851} G2O500S +PERO1              =  0.460G1O500Y + 0.270GOO500D + 0.270GKO500L                 : ARR( 0.434E-13,  -900., 0.0);
+{  8852} G2O500S +PERO2              =  0.400G1O500Y + 0.300GOO500D + 0.300GKO500L                 : ARR( 0.162E-13, -1400., 0.0);
+{  8853} G2O500S +PERO3              =  0.460G1O500Y + 0.270GOO500D + 0.270GKO500L                 : ARR( 0.488E-13, -1250., 0.0);
+{  8854} G2O500S +PERO5              =  0.460G1O500Y + 0.270GOO500D + 0.270GKO500L                 : ARR( 0.183E-11,   450., 0.0);
+{  8855} G2O500S +PERO6              =  0.300G1O500Y + 0.350GOO500D + 0.350GKO500L                 : ARR( 0.168E-13, -1300., 0.0);
+{  8856} G2O500S +PERO9              =  0.650G1O500Y + 0.350GKO500L                                : ARR( 0.100E-10,     0., 0.0);
+{  8857} G1O500Y                     =       GDO3002 +      GDO2000 +      GHO2                    : ARR( 0.200E+15,  3486., 0.0);
+{  8858} GNK500O +GHO                =       GND500F +      GHO2                                   : ARR( 0.131E-10,     0., 0.0);
+{  8859} GNK500O +GHO                =       G2N502r                                               : ARR( 0.886E-12,     0., 0.0);
+{  8860} GNK500O +GHO                =       GNK500S +      GHO2                                   : ARR( 0.129E-11,     0., 0.0);
+{  8861} GNK500O+HV               =       G3K3001 +      GND2000 +      GHO2                    :  0.100E+01*SUN;
+{  8862} GNK500O+HV               =       G1K500a +      GNO2                                   :  0.100E+01*SUN;
+{  8863} G2N502r +GNO                =       G1N503D +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  8864} G2N502r +GNO                =       GNN501q                                               : ARR( 0.182E-12,  -360., 0.0);
+{  8865} G2N502r +GHO2               =       GHN503l                                               : ARR( 0.242E-12, -1250., 0.0);
+{  8866} G2N502r +GNO3               =       G1N503D +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  8867} G2N502r +MEPERO             =  0.340G1N503D + 0.330GNK500l + 0.330GNK500u                 : ARR( 0.565E-13,  -845., 0.0);
+{  8868} G2N502r +PERO1              =  0.460G1N503D + 0.270GNK500l + 0.270GNK500u                 : ARR( 0.434E-13,  -900., 0.0);
+{  8869} G2N502r +PERO2              =  0.400G1N503D + 0.300GNK500l + 0.300GNK500u                 : ARR( 0.162E-13, -1400., 0.0);
+{  8870} G2N502r +PERO3              =  0.460G1N503D + 0.270GNK500l + 0.270GNK500u                 : ARR( 0.488E-13, -1250., 0.0);
+{  8871} G2N502r +PERO5              =  0.460G1N503D + 0.270GNK500l + 0.270GNK500u                 : ARR( 0.183E-11,   450., 0.0);
+{  8872} G2N502r +PERO6              =  0.300G1N503D + 0.350GNK500l + 0.350GNK500u                 : ARR( 0.168E-13, -1300., 0.0);
+{  8873} G2N502r +PERO9              =  0.650G1N503D + 0.350GNK500u                                : ARR( 0.100E-10,     0., 0.0);
+{  8874} G1K500a                     =       GDK4005 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4576., 0.0);
+{  8875} G1N503D                     =       GDO2000 +      G3N3002                                : ARR( 0.200E+15,  3031., 0.0);
+{  8876} GND4003 +GHO                =       GND4004 +      GHO2                                   : ARR( 0.678E-11,     0., 0.0);
+{  8877} GND4003 +GHO                =       G3N4001                                               : ARR( 0.216E-10,     0., 0.0);
+{  8878} GND4003 +GNO3               =       G3N4001 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{  8879} GND4003+HV               =       G1D4005 +      GNO2                                   :  0.100E+01*SUN;
+{  8880} GND4003+HV               =       G2N3003 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{  8881} GND4003+HV               =       GND2000 +      GD02000                                :  0.100E+01*SUN;
+{  8882} G1D4005                     =       GDD3000 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4427., 0.0);
+{  8883} GND500C +GHO                =       G2N502s                                               : ARR( 0.273E-11,     0., 0.0);
+{  8884} GND500C +GHO                =       G2N502t                                               : ARR( 0.273E-11,     0., 0.0);
+{  8885} GND500C +GHO                =       G3N500E                                               : ARR( 0.208E-10,     0., 0.0);
+{  8886} GND500C +GNO3               =       G3N500E +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{  8887} GND500C+HV               =       G1D500N +      GNO2                                   :  0.100E+01*SUN;
+{  8888} GND500C+HV               =       G3N2000 +      G2D3001                                :  0.100E+01*SUN;
+{  8889} GND500C+HV               =       G2N400J +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{  8890} G2N502s +GNO                =       G1N503E +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  8891} G2N502s +GNO                =       GNN5026                                               : ARR( 0.182E-12,  -360., 0.0);
+{  8892} G2N502s +GHO2               =       GHN503m                                               : ARR( 0.242E-12, -1250., 0.0);
+{  8893} G2N502s +GNO3               =       G1N503E +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  8894} G2N502s +MEPERO             =  0.340G1N503E + 0.330GND500n + 0.330GND500k                 : ARR( 0.565E-13,  -845., 0.0);
+{  8895} G2N502s +PERO1              =  0.460G1N503E + 0.270GND500n + 0.270GND500k                 : ARR( 0.434E-13,  -900., 0.0);
+{  8896} G2N502s +PERO2              =  0.400G1N503E + 0.300GND500n + 0.300GND500k                 : ARR( 0.162E-13, -1400., 0.0);
+{  8897} G2N502s +PERO3              =  0.460G1N503E + 0.270GND500n + 0.270GND500k                 : ARR( 0.488E-13, -1250., 0.0);
+{  8898} G2N502s +PERO5              =  0.460G1N503E + 0.270GND500n + 0.270GND500k                 : ARR( 0.183E-11,   450., 0.0);
+{  8899} G2N502s +PERO6              =  0.300G1N503E + 0.350GND500n + 0.350GND500k                 : ARR( 0.168E-13, -1300., 0.0);
+{  8900} G2N502s +PERO9              =  0.650G1N503E + 0.350GND500k                                : ARR( 0.100E-10,     0., 0.0);
+{  8901} G2N502t +GNO                =       G1N503F +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  8902} G2N502t +GNO                =       GNN501m                                               : ARR( 0.182E-12,  -360., 0.0);
+{  8903} G2N502t +GHO2               =       GHN503n                                               : ARR( 0.242E-12, -1250., 0.0);
+{  8904} G2N502t +GNO3               =       G1N503F +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  8905} G2N502t +MEPERO             =  0.340G1N503F + 0.330GND500o + 0.330GND500g                 : ARR( 0.565E-13,  -845., 0.0);
+{  8906} G2N502t +PERO1              =  0.460G1N503F + 0.270GND500o + 0.270GND500g                 : ARR( 0.434E-13,  -900., 0.0);
+{  8907} G2N502t +PERO2              =  0.400G1N503F + 0.300GND500o + 0.300GND500g                 : ARR( 0.162E-13, -1400., 0.0);
+{  8908} G2N502t +PERO3              =  0.460G1N503F + 0.270GND500o + 0.270GND500g                 : ARR( 0.488E-13, -1250., 0.0);
+{  8909} G2N502t +PERO5              =  0.460G1N503F + 0.270GND500o + 0.270GND500g                 : ARR( 0.183E-11,   450., 0.0);
+{  8910} G2N502t +PERO6              =  0.300G1N503F + 0.350GND500o + 0.350GND500g                 : ARR( 0.168E-13, -1300., 0.0);
+{  8911} G2N502t +PERO9              =  0.650G1N503F + 0.350GND500g                                : ARR( 0.100E-10,     0., 0.0);
+{  8912} G3N500E +GHO2               =  0.800GGN500I + 0.200GAN500E + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  8913} G3N500E +GNO                =       G2N400J +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{  8914} G3N500E +GNO2               =       GPN500B                                               : ARR( 0.330E-08,     0.,-1.0);
+{  8915} G3N500E +GNO3               =       G2N400J +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{  8916} G3N500E +MEPERO             =  0.685G2N400J + 0.315GAN500E + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  8917} G3N500E +PERO1              =  0.800G2N400J + 0.200GAN500E + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  8918} G3N500E +PERO2              =  0.750G2N400J + 0.250GAN500E + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  8919} G3N500E +PERO3              =  0.800G2N400J + 0.200GAN500E + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  8920} G3N500E +PERO5              =  0.650G2N400J + 0.350GAN500E + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  8921} G3N500E +PERO6              =  0.650G2N400J + 0.350GAN500E + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  8922} G3N500E +PERO9              =       G2N400J +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{  8923} G1D500N                     =       G3D4000 +      GCH2O                                  : ARR( 0.200E+15,  3576., 0.0);
+{  8924} G2N400J +GNO                =       G1N400K +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  8925} G2N400J +GNO                =       GNN400C                                               : ARR( 0.111E-12,  -360., 0.0);
+{  8926} G2N400J +GHO2               =       GHN400Q                                               : ARR( 0.214E-12, -1250., 0.0);
+{  8927} G2N400J +GNO3               =       G1N400K +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  8928} G2N400J +MEPERO             =  0.480G1N400K + 0.260GNK4004 + 0.260GND4004                 : ARR( 0.146E-12,  -445., 0.0);
+{  8929} G2N400J +PERO1              =  0.600G1N400K + 0.200GNK4004 + 0.200GND4004                 : ARR( 0.112E-12,  -500., 0.0);
+{  8930} G2N400J +PERO2              =  0.560G1N400K + 0.220GNK4004 + 0.220GND4004                 : ARR( 0.418E-13, -1000., 0.0);
+{  8931} G2N400J +PERO3              =  0.600G1N400K + 0.200GNK4004 + 0.200GND4004                 : ARR( 0.126E-12,  -850., 0.0);
+{  8932} G2N400J +PERO5              =  0.600G1N400K + 0.200GNK4004 + 0.200GND4004                 : ARR( 0.473E-11,   850., 0.0);
+{  8933} G2N400J +PERO6              =  0.460G1N400K + 0.270GNK4004 + 0.270GND4004                 : ARR( 0.434E-13,  -900., 0.0);
+{  8934} G2N400J +PERO9              =  0.800G1N400K + 0.200GND4004                                : ARR( 0.100E-10,     0., 0.0);
+{  8935} G1N503E                     =       G3N2000 +      GDD3000                                : ARR( 0.200E+15,  2252., 0.0);
+{  8936} G1N503F                     =       GND4004 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5054., 0.0);
+{  8937} G3D4000 +GHO2               =  0.800GGD4000 + 0.200GAD4000 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  8938} G3D4000 +GNO                =       G2D3001 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{  8939} G3D4000 +GNO2               =       GPD4000                                               : ARR( 0.330E-08,     0.,-1.0);
+{  8940} G3D4000 +GNO3               =       G2D3001 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{  8941} G3D4000 +MEPERO             =  0.685G2D3001 + 0.315GAD4000 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  8942} G3D4000 +PERO1              =  0.800G2D3001 + 0.200GAD4000 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  8943} G3D4000 +PERO2              =  0.750G2D3001 + 0.250GAD4000 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  8944} G3D4000 +PERO3              =  0.800G2D3001 + 0.200GAD4000 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  8945} G3D4000 +PERO5              =  0.650G2D3001 + 0.350GAD4000 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  8946} G3D4000 +PERO6              =  0.650G2D3001 + 0.350GAD4000 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  8947} G3D4000 +PERO9              =       G2D3001 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{  8948} G1N400K +OXYGEN             =       GND4004 +      GHO2                                   : ARR( 0.600E-13,   398., 0.0);
+{  8949} GHN5013 +GHO                =       GNK500Q +      GHO                                    : ARR( 0.139E-09,     0., 0.0);
+{  8950} GHN5013+HV               =       G1N500q +      GHO                                    :  0.100E+01*SUN;
+{  8951} GHN5013+HV               =       G3H4003 +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{  8952} GHN5013+HV               =       GHD2000 +      GNK3000                                :  0.100E+01*SUN;
+{  8953} GHN5013+HV               =       G1H502E +      GNO2                                   :  0.100E+01*SUN;
+{  8954} G1H502E                     =       G3H4003 +      GCH2O                                  : ARR( 0.200E+15,  3576., 0.0);
+{  8955} GNK500P +GHO                =       GND500o +      GHO2                                   : ARR( 0.415E-11,     0., 0.0);
+{  8956} GNK500P +GHO                =       GNK500Q +      GHO2                                   : ARR( 0.337E-10,     0., 0.0);
+{  8957} GNK500P+HV               =       G3K4005 +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{  8958} GNK500P+HV               =       GDO2000 +      GNK3000                                :  0.100E+01*SUN;
+{  8959} GNK500P+HV               =       G1K500b +      GNO2                                   :  0.100E+01*SUN;
+{  8960} G1K500b                     =       G3K4005 +      GCH2O                                  : ARR( 0.200E+15,  3576., 0.0);
+{  8961} GNK500Q +GHO                =       GND500g +      GHO2                                   : ARR( 0.259E-11,     0., 0.0);
+{  8962} GNK500Q +GHO                =       G2N502u                                               : ARR( 0.555E-12,     0., 0.0);
+{  8963} GNK500Q+HV               =       G3K2001 +      G2N3005                                :  0.100E+01*SUN;
+{  8964} GNK500Q+HV               =       G3K4007 +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{  8965} GNK500Q+HV               =       G1K500c +      GNO2                                   :  0.100E+01*SUN;
+{  8966} G2N502u +GNO                =       G1N503G +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  8967} G2N502u +GNO                =       GNN502F                                               : ARR( 0.182E-12,  -360., 0.0);
+{  8968} G2N502u +GHO2               =       GHN503o                                               : ARR( 0.242E-12, -1250., 0.0);
+{  8969} G2N502u +GNO3               =       G1N503G +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  8970} G2N502u +MEPERO             =  0.340G1N503G + 0.330GNK500y + 0.330GNK500z                 : ARR( 0.565E-13,  -845., 0.0);
+{  8971} G2N502u +PERO1              =  0.460G1N503G + 0.270GNK500y + 0.270GNK500z                 : ARR( 0.434E-13,  -900., 0.0);
+{  8972} G2N502u +PERO2              =  0.400G1N503G + 0.300GNK500y + 0.300GNK500z                 : ARR( 0.162E-13, -1400., 0.0);
+{  8973} G2N502u +PERO3              =  0.460G1N503G + 0.270GNK500y + 0.270GNK500z                 : ARR( 0.488E-13, -1250., 0.0);
+{  8974} G2N502u +PERO5              =  0.460G1N503G + 0.270GNK500y + 0.270GNK500z                 : ARR( 0.183E-11,   450., 0.0);
+{  8975} G2N502u +PERO6              =  0.300G1N503G + 0.350GNK500y + 0.350GNK500z                 : ARR( 0.168E-13, -1300., 0.0);
+{  8976} G2N502u +PERO9              =  0.650G1N503G + 0.350GNK500z                                : ARR( 0.100E-10,     0., 0.0);
+{  8977} G3K4007 +GHO2               =  0.800GGK4003 + 0.200GAK4003 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  8978} G3K4007 +GNO                =       G2K3001 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{  8979} G3K4007 +GNO2               =       GPK4003                                               : ARR( 0.330E-08,     0.,-1.0);
+{  8980} G3K4007 +GNO3               =       G2K3001 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{  8981} G3K4007 +MEPERO             =  0.685G2K3001 + 0.315GAK4003 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  8982} G3K4007 +PERO1              =  0.800G2K3001 + 0.200GAK4003 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  8983} G3K4007 +PERO2              =  0.750G2K3001 + 0.250GAK4003 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  8984} G3K4007 +PERO3              =  0.800G2K3001 + 0.200GAK4003 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  8985} G3K4007 +PERO5              =  0.650G2K3001 + 0.350GAK4003 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  8986} G3K4007 +PERO6              =  0.650G2K3001 + 0.350GAK4003 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  8987} G3K4007 +PERO9              =       G2K3001 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{  8988} G1K500c                     =       G3K4007 +      GCH2O                                  : ARR( 0.200E+15,  3552., 0.0);
+{  8989} G1N503G                     =       G3K2001 +      GND3003                                : ARR( 0.200E+15,  4599., 0.0);
+{  8990} G1N503G                     =       GDK3001 +      G3N2000                                : ARR( 0.200E+15,  4480., 0.0);
+{  8991} GHN5014 +GHO                =       GHN503m +      GHO2                                   : ARR( 0.404E-11,     0., 0.0);
+{  8992} GHN5014 +GHO                =       G2H501G                                               : ARR( 0.450E-11,     0., 0.0);
+{  8993} GHN5014 +GHO                =       GNK500S +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{  8994} GHN5014 +GHO                =       G2N500p                                               : ARR( 0.191E-11,  -190., 0.0);
+{  8995} GHN5014+HV               =       G1N500r +      GHO                                    :  0.100E+01*SUN;
+{  8996} GHN5014+HV               =       G3H4004 +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{  8997} GHN5014+HV               =       G1H502F +      GNO2                                   :  0.100E+01*SUN;
+{  8998} G2H501G +GNO                =       G1H502G +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  8999} G2H501G +GNO                =       GHN502j                                               : ARR( 0.182E-12,  -360., 0.0);
+{  9000} G2H501G +GHO2               =       GHH501B                                               : ARR( 0.242E-12, -1250., 0.0);
+{  9001} G2H501G +GNO3               =       G1H502G +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  9002} G2H501G +MEPERO             =  0.340G1H502G + 0.330GHN503p + 0.330GHN503o                 : ARR( 0.565E-13,  -845., 0.0);
+{  9003} G2H501G +PERO1              =  0.460G1H502G + 0.270GHN503p + 0.270GHN503o                 : ARR( 0.434E-13,  -900., 0.0);
+{  9004} G2H501G +PERO2              =  0.400G1H502G + 0.300GHN503p + 0.300GHN503o                 : ARR( 0.162E-13, -1400., 0.0);
+{  9005} G2H501G +PERO3              =  0.460G1H502G + 0.270GHN503p + 0.270GHN503o                 : ARR( 0.488E-13, -1250., 0.0);
+{  9006} G2H501G +PERO5              =  0.460G1H502G + 0.270GHN503p + 0.270GHN503o                 : ARR( 0.183E-11,   450., 0.0);
+{  9007} G2H501G +PERO6              =  0.300G1H502G + 0.350GHN503p + 0.350GHN503o                 : ARR( 0.168E-13, -1300., 0.0);
+{  9008} G2H501G +PERO9              =  0.650G1H502G + 0.350GHN503o                                : ARR( 0.100E-10,     0., 0.0);
+{  9009} G3H4004 +GHO2               =  0.800GGH4007 + 0.200GAH4008 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  9010} G3H4004 +GNO                =       GDO3000 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{  9011} G3H4004 +GNO2               =       GPH4008                                               : ARR( 0.330E-08,     0.,-1.0);
+{  9012} G3H4004 +GNO3               =       GDO3000 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{  9013} G3H4004 +MEPERO             =  0.685GDO3000 + 0.315GAH4008 + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  9014} G3H4004 +PERO1              =  0.800GDO3000 + 0.200GAH4008 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  9015} G3H4004 +PERO2              =  0.750GDO3000 + 0.250GAH4008 + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  9016} G3H4004 +PERO3              =  0.800GDO3000 + 0.200GAH4008 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  9017} G3H4004 +PERO5              =  0.650GDO3000 + 0.350GAH4008 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  9018} G3H4004 +PERO6              =  0.650GDO3000 + 0.350GAH4008 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  9019} G3H4004 +PERO9              =       GDO3000 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{  9020} G1H502F                     =       G3H4004 +      GCH2O                                  : ARR( 0.200E+15,  3603., 0.0);
+{  9021} G1H502G                     =       GCH2O   +      GHN400R +      GHO2                    : ARR( 0.200E+15,  4465., 0.0);
+{  9022} G1H502G                     =       GDO2000 +      GND3003 +      GHO                     : ARR( 0.200E+15,  4976., 0.0);
+{  9023} GNK500R +GHO                =       GND500n +      GHO2                                   : ARR( 0.410E-11,     0., 0.0);
+{  9024} GNK500R +GHO                =       G2N502v                                               : ARR( 0.457E-11,     0., 0.0);
+{  9025} GNK500R +GHO                =       GNK500S +      GHO2                                   : ARR( 0.641E-11,     0., 0.0);
+{  9026} GNK500R+HV               =       G3K4006 +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{  9027} GNK500R+HV               =       G1K500d +      GNO2                                   :  0.100E+01*SUN;
+{  9028} G2N502v +GNO                =       G1N503H +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  9029} G2N502v +GNO                =       GNN501r                                               : ARR( 0.182E-12,  -360., 0.0);
+{  9030} G2N502v +GHO2               =       GHN503q                                               : ARR( 0.242E-12, -1250., 0.0);
+{  9031} G2N502v +GNO3               =       G1N503H +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  9032} G2N502v +MEPERO             =  0.340G1N503H + 0.330GNK5011 + 0.330GNK500y                 : ARR( 0.565E-13,  -845., 0.0);
+{  9033} G2N502v +PERO1              =  0.460G1N503H + 0.270GNK5011 + 0.270GNK500y                 : ARR( 0.434E-13,  -900., 0.0);
+{  9034} G2N502v +PERO2              =  0.400G1N503H + 0.300GNK5011 + 0.300GNK500y                 : ARR( 0.162E-13, -1400., 0.0);
+{  9035} G2N502v +PERO3              =  0.460G1N503H + 0.270GNK5011 + 0.270GNK500y                 : ARR( 0.488E-13, -1250., 0.0);
+{  9036} G2N502v +PERO5              =  0.460G1N503H + 0.270GNK5011 + 0.270GNK500y                 : ARR( 0.183E-11,   450., 0.0);
+{  9037} G2N502v +PERO6              =  0.300G1N503H + 0.350GNK5011 + 0.350GNK500y                 : ARR( 0.168E-13, -1300., 0.0);
+{  9038} G2N502v +PERO9              =  0.650G1N503H + 0.350GNK500y                                : ARR( 0.100E-10,     0., 0.0);
+{  9039} G1K500d                     =       G3K4006 +      GCH2O                                  : ARR( 0.200E+15,  3603., 0.0);
+{  9040} G1N503H                     =       GCH2O   +      GND400E +      GHO2                    : ARR( 0.200E+15,  4465., 0.0);
+{  9041} G1N503H                     =       GDO2000 +      GND3003 +      GHO2                    : ARR( 0.200E+15,  3768., 0.0);
+{  9042} GNK500S +GHO                =       GND500k +      GHO2                                   : ARR( 0.129E-10,     0., 0.0);
+{  9043} GNK500S +GHO                =       G2N502w                                               : ARR( 0.872E-12,     0., 0.0);
+{  9044} GNK500S+HV               =       G3K3001 +      G3N2000                                :  0.100E+01*SUN;
+{  9045} GNK500S+HV               =       G1K500e +      GNO2                                   :  0.100E+01*SUN;
+{  9046} G2N502w +GNO                =       G1N503I +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  9047} G2N502w +GNO                =       GNN501s                                               : ARR( 0.182E-12,  -360., 0.0);
+{  9048} G2N502w +GHO2               =       GHN503r                                               : ARR( 0.242E-12, -1250., 0.0);
+{  9049} G2N502w +GNO3               =       G1N503I +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  9050} G2N502w +MEPERO             =  0.340G1N503I + 0.330GNK5012 + 0.330GNK500z                 : ARR( 0.565E-13,  -845., 0.0);
+{  9051} G2N502w +PERO1              =  0.460G1N503I + 0.270GNK5012 + 0.270GNK500z                 : ARR( 0.434E-13,  -900., 0.0);
+{  9052} G2N502w +PERO2              =  0.400G1N503I + 0.300GNK5012 + 0.300GNK500z                 : ARR( 0.162E-13, -1400., 0.0);
+{  9053} G2N502w +PERO3              =  0.460G1N503I + 0.270GNK5012 + 0.270GNK500z                 : ARR( 0.488E-13, -1250., 0.0);
+{  9054} G2N502w +PERO5              =  0.460G1N503I + 0.270GNK5012 + 0.270GNK500z                 : ARR( 0.183E-11,   450., 0.0);
+{  9055} G2N502w +PERO6              =  0.300G1N503I + 0.350GNK5012 + 0.350GNK500z                 : ARR( 0.168E-13, -1300., 0.0);
+{  9056} G2N502w +PERO9              =  0.650G1N503I + 0.350GNK500z                                : ARR( 0.100E-10,     0., 0.0);
+{  9057} G1K500e                     =       G3K3001 +      GCH2O   +      GCO                     : ARR( 0.200E+15,  3897., 0.0);
+{  9058} G1N503I                     =       GDO2000 +      G3N2000 +      GCO                     : ARR( 0.200E+15,  3326., 0.0);
+{  9059} GGO4001 +GHO                =       GGD4000 +      GHO2                                   : ARR( 0.408E-11,     0., 0.0);
+{  9060} GGO4001 +GHO                =       G2G4006                                               : ARR( 0.143E-11,     0., 0.0);
+{  9061} GGO4001 +GHO                =       G2G4007                                               : ARR( 0.874E-12,     0., 0.0);
+{  9062} GGO4001 +GHO                =       G3K4002                                               : ARR( 0.193E-11,  -190., 0.0);
+{  9063} GGO4001+HV               =       G2O3001 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{  9064} G2G4006 +GNO                =       G1G4008 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  9065} G2G4006 +GNO                =       GGN4003                                               : ARR( 0.111E-12,  -360., 0.0);
+{  9066} G2G4006 +GHO2               =       GGH4006                                               : ARR( 0.214E-12, -1250., 0.0);
+{  9067} G2G4006 +GNO3               =       G1G4008 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  9068} G2G4006 +MEPERO             =  0.340G1G4008 + 0.330GGO4004 + 0.330GGK4003                 : ARR( 0.565E-13,  -845., 0.0);
+{  9069} G2G4006 +PERO1              =  0.460G1G4008 + 0.270GGO4004 + 0.270GGK4003                 : ARR( 0.434E-13,  -900., 0.0);
+{  9070} G2G4006 +PERO2              =  0.400G1G4008 + 0.300GGO4004 + 0.300GGK4003                 : ARR( 0.162E-13, -1400., 0.0);
+{  9071} G2G4006 +PERO3              =  0.460G1G4008 + 0.270GGO4004 + 0.270GGK4003                 : ARR( 0.488E-13, -1250., 0.0);
+{  9072} G2G4006 +PERO5              =  0.460G1G4008 + 0.270GGO4004 + 0.270GGK4003                 : ARR( 0.183E-11,   450., 0.0);
+{  9073} G2G4006 +PERO6              =  0.300G1G4008 + 0.350GGO4004 + 0.350GGK4003                 : ARR( 0.168E-13, -1300., 0.0);
+{  9074} G2G4006 +PERO9              =  0.650G1G4008 + 0.350GGK4003                                : ARR( 0.100E-10,     0., 0.0);
+{  9075} G2G4007 +GNO                =       G1G4009 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  9076} G2G4007 +GNO                =       GGN400E                                               : ARR( 0.111E-12,  -360., 0.0);
+{  9077} G2G4007 +GHO2               =       GGH4007                                               : ARR( 0.214E-12, -1250., 0.0);
+{  9078} G2G4007 +GNO3               =       G1G4009 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  9079} G2G4007 +MEPERO             =  0.340G1G4009 + 0.330GGO4005 + 0.330GGK4004                 : ARR( 0.565E-13,  -845., 0.0);
+{  9080} G2G4007 +PERO1              =  0.460G1G4009 + 0.270GGO4005 + 0.270GGK4004                 : ARR( 0.434E-13,  -900., 0.0);
+{  9081} G2G4007 +PERO2              =  0.400G1G4009 + 0.300GGO4005 + 0.300GGK4004                 : ARR( 0.162E-13, -1400., 0.0);
+{  9082} G2G4007 +PERO3              =  0.460G1G4009 + 0.270GGO4005 + 0.270GGK4004                 : ARR( 0.488E-13, -1250., 0.0);
+{  9083} G2G4007 +PERO5              =  0.460G1G4009 + 0.270GGO4005 + 0.270GGK4004                 : ARR( 0.183E-11,   450., 0.0);
+{  9084} G2G4007 +PERO6              =  0.300G1G4009 + 0.350GGO4005 + 0.350GGK4004                 : ARR( 0.168E-13, -1300., 0.0);
+{  9085} G2G4007 +PERO9              =  0.650G1G4009 + 0.350GGK4004                                : ARR( 0.100E-10,     0., 0.0);
+{  9086} G1G4008                     =       GCH2O   +      GGD3000 +      GHO2                    : ARR( 0.200E+15,  4658., 0.0);
+{  9087} G1G4009                     =       GDO3000 +      GCO     +      GHO2                    : ARR( 0.200E+15,  4949., 0.0);
+{  9088} GAO4001 +GHO                =       GAD4000 +      GHO2                                   : ARR( 0.411E-11,     0., 0.0);
+{  9089} GAO4001 +GHO                =       G2A4007                                               : ARR( 0.144E-11,     0., 0.0);
+{  9090} GAO4001 +GHO                =       G2A4008                                               : ARR( 0.651E-12,     0., 0.0);
+{  9091} GAO4001 +GHO                =       G2O3001 +      GCO2                                   : ARR( 0.531E-12,     0., 0.0);
+{  9092} G2A4007 +GNO                =       G1A4008 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  9093} G2A4007 +GNO                =       GAN4003                                               : ARR( 0.111E-12,  -360., 0.0);
+{  9094} G2A4007 +GHO2               =       GAH4007                                               : ARR( 0.214E-12, -1250., 0.0);
+{  9095} G2A4007 +GNO3               =       G1A4008 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  9096} G2A4007 +MEPERO             =  0.340G1A4008 + 0.330GAO4004 + 0.330GAK4003                 : ARR( 0.565E-13,  -845., 0.0);
+{  9097} G2A4007 +PERO1              =  0.460G1A4008 + 0.270GAO4004 + 0.270GAK4003                 : ARR( 0.434E-13,  -900., 0.0);
+{  9098} G2A4007 +PERO2              =  0.400G1A4008 + 0.300GAO4004 + 0.300GAK4003                 : ARR( 0.162E-13, -1400., 0.0);
+{  9099} G2A4007 +PERO3              =  0.460G1A4008 + 0.270GAO4004 + 0.270GAK4003                 : ARR( 0.488E-13, -1250., 0.0);
+{  9100} G2A4007 +PERO5              =  0.460G1A4008 + 0.270GAO4004 + 0.270GAK4003                 : ARR( 0.183E-11,   450., 0.0);
+{  9101} G2A4007 +PERO6              =  0.300G1A4008 + 0.350GAO4004 + 0.350GAK4003                 : ARR( 0.168E-13, -1300., 0.0);
+{  9102} G2A4007 +PERO9              =  0.650G1A4008 + 0.350GAK4003                                : ARR( 0.100E-10,     0., 0.0);
+{  9103} G2A4008 +GNO                =       G1A4009 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  9104} G2A4008 +GNO                =       GAN400E                                               : ARR( 0.111E-12,  -360., 0.0);
+{  9105} G2A4008 +GHO2               =       GAH4008                                               : ARR( 0.214E-12, -1250., 0.0);
+{  9106} G2A4008 +GNO3               =       G1A4009 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  9107} G2A4008 +MEPERO             =  0.340G1A4009 + 0.330GAO4005 + 0.330GAK4004                 : ARR( 0.565E-13,  -845., 0.0);
+{  9108} G2A4008 +PERO1              =  0.460G1A4009 + 0.270GAO4005 + 0.270GAK4004                 : ARR( 0.434E-13,  -900., 0.0);
+{  9109} G2A4008 +PERO2              =  0.400G1A4009 + 0.300GAO4005 + 0.300GAK4004                 : ARR( 0.162E-13, -1400., 0.0);
+{  9110} G2A4008 +PERO3              =  0.460G1A4009 + 0.270GAO4005 + 0.270GAK4004                 : ARR( 0.488E-13, -1250., 0.0);
+{  9111} G2A4008 +PERO5              =  0.460G1A4009 + 0.270GAO4005 + 0.270GAK4004                 : ARR( 0.183E-11,   450., 0.0);
+{  9112} G2A4008 +PERO6              =  0.300G1A4009 + 0.350GAO4005 + 0.350GAK4004                 : ARR( 0.168E-13, -1300., 0.0);
+{  9113} G2A4008 +PERO9              =  0.650G1A4009 + 0.350GAK4004                                : ARR( 0.100E-10,     0., 0.0);
+{  9114} G1A4008                     =       GCH2O   +      GAD3000 +      GHO2                    : ARR( 0.200E+15,  4658., 0.0);
+{  9115} G1A4009                     =       GDO3000 +      GCO     +      GHO                     : ARR( 0.200E+15,  4918., 0.0);
+{  9116} GPO4001                     =       G3K4002 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{  9117} GPO4001 +GHO                =       GPD4000 +      GHO2                                   : ARR( 0.411E-11,     0., 0.0);
+{  9118} GPO4001 +GHO                =       G2P4007                                               : ARR( 0.144E-11,     0., 0.0);
+{  9119} GPO4001 +GHO                =       G2P4008                                               : ARR( 0.881E-12,     0., 0.0);
+{  9120} GPO4001+HV               =       G3K4002 +      GNO2                                   :  0.100E+01*SUN;
+{  9121} G2P4007 +GNO                =       G1P4008 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  9122} G2P4007 +GNO                =       GPN4003                                               : ARR( 0.111E-12,  -360., 0.0);
+{  9123} G2P4007 +GHO2               =       GPH4007                                               : ARR( 0.214E-12, -1250., 0.0);
+{  9124} G2P4007 +GNO3               =       G1P4008 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  9125} G2P4007 +MEPERO             =  0.340G1P4008 + 0.330GPO4004 + 0.330GPK4003                 : ARR( 0.565E-13,  -845., 0.0);
+{  9126} G2P4007 +PERO1              =  0.460G1P4008 + 0.270GPO4004 + 0.270GPK4003                 : ARR( 0.434E-13,  -900., 0.0);
+{  9127} G2P4007 +PERO2              =  0.400G1P4008 + 0.300GPO4004 + 0.300GPK4003                 : ARR( 0.162E-13, -1400., 0.0);
+{  9128} G2P4007 +PERO3              =  0.460G1P4008 + 0.270GPO4004 + 0.270GPK4003                 : ARR( 0.488E-13, -1250., 0.0);
+{  9129} G2P4007 +PERO5              =  0.460G1P4008 + 0.270GPO4004 + 0.270GPK4003                 : ARR( 0.183E-11,   450., 0.0);
+{  9130} G2P4007 +PERO6              =  0.300G1P4008 + 0.350GPO4004 + 0.350GPK4003                 : ARR( 0.168E-13, -1300., 0.0);
+{  9131} G2P4007 +PERO9              =  0.650G1P4008 + 0.350GPK4003                                : ARR( 0.100E-10,     0., 0.0);
+{  9132} G2P4008 +GNO                =       G1P4009 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  9133} G2P4008 +GNO                =       GPN400E                                               : ARR( 0.111E-12,  -360., 0.0);
+{  9134} G2P4008 +GHO2               =       GPH4008                                               : ARR( 0.214E-12, -1250., 0.0);
+{  9135} G2P4008 +GNO3               =       G1P4009 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  9136} G2P4008 +MEPERO             =  0.340G1P4009 + 0.330GPO4005 + 0.330GPK4004                 : ARR( 0.565E-13,  -845., 0.0);
+{  9137} G2P4008 +PERO1              =  0.460G1P4009 + 0.270GPO4005 + 0.270GPK4004                 : ARR( 0.434E-13,  -900., 0.0);
+{  9138} G2P4008 +PERO2              =  0.400G1P4009 + 0.300GPO4005 + 0.300GPK4004                 : ARR( 0.162E-13, -1400., 0.0);
+{  9139} G2P4008 +PERO3              =  0.460G1P4009 + 0.270GPO4005 + 0.270GPK4004                 : ARR( 0.488E-13, -1250., 0.0);
+{  9140} G2P4008 +PERO5              =  0.460G1P4009 + 0.270GPO4005 + 0.270GPK4004                 : ARR( 0.183E-11,   450., 0.0);
+{  9141} G2P4008 +PERO6              =  0.300G1P4009 + 0.350GPO4005 + 0.350GPK4004                 : ARR( 0.168E-13, -1300., 0.0);
+{  9142} G2P4008 +PERO9              =  0.650G1P4009 + 0.350GPK4004                                : ARR( 0.100E-10,     0., 0.0);
+{  9143} G1P4008                     =       GCH2O   +      GPD3000 +      GHO2                    : ARR( 0.200E+15,  4658., 0.0);
+{  9144} G1P4009                     =       GDO3000 +      GCO     +      GNO2                    : ARR( 0.200E+15,  4949., 0.0);
+{  9145} GND4004 +GHO                =       G3N4007                                               : ARR( 0.664E-10,     0., 0.0);
+{  9146} GND4004 +GNO3               =       G3N4007 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{  9147} GND4004+HV               =       G1D4006 +      GNO2                                   :  0.100E+01*SUN;
+{  9148} GND4004+HV               =       G3N2000 +      G2D2000                                :  0.100E+01*SUN;
+{  9149} GND4004+HV               =       G2N3005 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{  9150} G1D4006                     =       G3D3000 +      GCH2O                                  : ARR( 0.200E+15,  3552., 0.0);
+{  9151} GHN5015 +GHO                =       GHN5022 +      GHO2                                   : ARR( 0.209E-11,     0., 0.0);
+{  9152} GHN5015 +GHO                =       G2H501H                                               : ARR( 0.143E-11,     0., 0.0);
+{  9153} GHN5015 +GHO                =       GNN500X +      GHO                                    : ARR( 0.837E-11,     0., 0.0);
+{  9154} GHN5015 +GHO                =       G2N500q                                               : ARR( 0.193E-11,  -190., 0.0);
+{  9155} GHN5015+HV               =       G1H502H +      GNO2                                   :  0.100E+01*SUN;
+{  9156} GHN5015+HV               =       G1N500t +      GHO                                    :  0.100E+01*SUN;
+{  9157} GHN5015+HV               =       G1H501a +      GNO2                                   :  0.100E+01*SUN;
+{  9158} G2H501H +GNO                =       G1H502I +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  9159} G2H501H +GNO                =       GHN503A                                               : ARR( 0.182E-12,  -360., 0.0);
+{  9160} G2H501H +GHO2               =       GHH501C                                               : ARR( 0.242E-12, -1250., 0.0);
+{  9161} G2H501H +GNO3               =       G1H502I +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  9162} G2H501H +MEPERO             =  0.340G1H502I + 0.330GHN503s + 0.330GHN503t                 : ARR( 0.565E-13,  -845., 0.0);
+{  9163} G2H501H +PERO1              =  0.460G1H502I + 0.270GHN503s + 0.270GHN503t                 : ARR( 0.434E-13,  -900., 0.0);
+{  9164} G2H501H +PERO2              =  0.400G1H502I + 0.300GHN503s + 0.300GHN503t                 : ARR( 0.162E-13, -1400., 0.0);
+{  9165} G2H501H +PERO3              =  0.460G1H502I + 0.270GHN503s + 0.270GHN503t                 : ARR( 0.488E-13, -1250., 0.0);
+{  9166} G2H501H +PERO5              =  0.460G1H502I + 0.270GHN503s + 0.270GHN503t                 : ARR( 0.183E-11,   450., 0.0);
+{  9167} G2H501H +PERO6              =  0.300G1H502I + 0.350GHN503s + 0.350GHN503t                 : ARR( 0.168E-13, -1300., 0.0);
+{  9168} G2H501H +PERO9              =  0.650G1H502I + 0.350GHN503t                                : ARR( 0.100E-10,     0., 0.0);
+{  9169} G1H502H                     =       GNK500P +      GHO                                    : ARR( 0.800E+11,  2398., 0.0);
+{  9170} G1H502H                     =       GHN4001 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4799., 0.0);
+{  9171} G1H502I                     =       GHN3007 +      GND2000 +      GHO2                    : ARR( 0.200E+15,  3575., 0.0);
+{  9172} GNN500n +GHO                =       GNN500X +      GHO2                                   : ARR( 0.440E-11,     0., 0.0);
+{  9173} GNN500n +GHO                =       G2N502x                                               : ARR( 0.151E-11,     0., 0.0);
+{  9174} GNN500n+HV               =       G1N501H +      GNO2                                   :  0.200E+01*SUN;
+{  9175} G2N502x +GNO                =       G1N503J +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  9176} G2N502x +GNO                =       GNN502G                                               : ARR( 0.182E-12,  -360., 0.0);
+{  9177} G2N502x +GHO2               =       GHN503u                                               : ARR( 0.242E-12, -1250., 0.0);
+{  9178} G2N502x +GNO3               =       G1N503J +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  9179} G2N502x +MEPERO             =  0.340G1N503J + 0.330GNN502Q + 0.330GNN502R                 : ARR( 0.565E-13,  -845., 0.0);
+{  9180} G2N502x +PERO1              =  0.460G1N503J + 0.270GNN502Q + 0.270GNN502R                 : ARR( 0.434E-13,  -900., 0.0);
+{  9181} G2N502x +PERO2              =  0.400G1N503J + 0.300GNN502Q + 0.300GNN502R                 : ARR( 0.162E-13, -1400., 0.0);
+{  9182} G2N502x +PERO3              =  0.460G1N503J + 0.270GNN502Q + 0.270GNN502R                 : ARR( 0.488E-13, -1250., 0.0);
+{  9183} G2N502x +PERO5              =  0.460G1N503J + 0.270GNN502Q + 0.270GNN502R                 : ARR( 0.183E-11,   450., 0.0);
+{  9184} G2N502x +PERO6              =  0.300G1N503J + 0.350GNN502Q + 0.350GNN502R                 : ARR( 0.168E-13, -1300., 0.0);
+{  9185} G2N502x +PERO9              =  0.650G1N503J + 0.350GNN502R                                : ARR( 0.100E-10,     0., 0.0);
+{  9186} G1N503J                     =       GND2000 +      GND3002 +      GHO2                    : ARR( 0.400E+15,  3575., 0.0);
+{  9187} GHN5016 +GHO                =       GNN500p +      GHO                                    : ARR( 0.436E-10,     0., 0.0);
+{  9188} GHN5016 +GHO                =       G2N500r                                               : ARR( 0.201E-11,  -190., 0.0);
+{  9189} GHN5016+HV               =       G1H502J +      GNO2                                   :  0.100E+01*SUN;
+{  9190} GHN5016+HV               =       G1N500u +      GHO                                    :  0.100E+01*SUN;
+{  9191} GHN5016+HV               =       G1H501e +      GNO2                                   :  0.100E+01*SUN;
+{  9192} G1H502J                     =       GHN400J +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{  9193} GNN500o +GHO                =       GNN500p +      GHO2                                   : ARR( 0.108E-10,     0., 0.0);
+{  9194} GNN500o +GHO                =       GNN501K +      GHO2                                   : ARR( 0.217E-11,     0., 0.0);
+{  9195} GNN500o+HV               =       G1N503K +      GNO2                                   :  0.100E+01*SUN;
+{  9196} GNN500o+HV               =       G1N503L +      GNO2                                   :  0.100E+01*SUN;
+{  9197} G1N503K                     =       GNK500R +      GHO2                                   : ARR( 0.800E+11,  2744., 0.0);
+{  9198} G1N503L                     =       GND400C +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{  9199} GNN500p +GHO                =       GND500U +      GNO2                                   : ARR( 0.146E-12,     0., 0.0);
+{  9200} GNN500p +GHO                =       GNN501L +      GHO2                                   : ARR( 0.126E-11,     0., 0.0);
+{  9201} GNN500p +GHO                =       G2N502y                                               : ARR( 0.172E-12,     0., 0.0);
+{  9202} GNN500p +GHO                =       GND500F +      GNO2                                   : ARR( 0.146E-12,     0., 0.0);
+{  9203} GNN500p +GHO                =       G1N501l                                               : ARR( 0.210E-17,    85., 2.0);
+{  9204} GNN500p+HV               =       G1N501Z +      GNO2                                   :  0.100E+01*SUN;
+{  9205} GNN500p+HV               =       G3N3002 +      G2N2000                                :  0.100E+01*SUN;
+{  9206} GNN500p+HV               =       G1N502t +      GNO2                                   :  0.100E+01*SUN;
+{  9207} G2N502y +GNO                =       G1N503M +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  9208} G2N502y +GNO                =       GNN501o                                               : ARR( 0.182E-12,  -360., 0.0);
+{  9209} G2N502y +GHO2               =       GHN503t                                               : ARR( 0.242E-12, -1250., 0.0);
+{  9210} G2N502y +GNO3               =       G1N503M +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  9211} G2N502y +MEPERO             =  0.340G1N503M + 0.330GNN502R + 0.330GNN5023                 : ARR( 0.565E-13,  -845., 0.0);
+{  9212} G2N502y +PERO1              =  0.460G1N503M + 0.270GNN502R + 0.270GNN5023                 : ARR( 0.434E-13,  -900., 0.0);
+{  9213} G2N502y +PERO2              =  0.400G1N503M + 0.300GNN502R + 0.300GNN5023                 : ARR( 0.162E-13, -1400., 0.0);
+{  9214} G2N502y +PERO3              =  0.460G1N503M + 0.270GNN502R + 0.270GNN5023                 : ARR( 0.488E-13, -1250., 0.0);
+{  9215} G2N502y +PERO5              =  0.460G1N503M + 0.270GNN502R + 0.270GNN5023                 : ARR( 0.183E-11,   450., 0.0);
+{  9216} G2N502y +PERO6              =  0.300G1N503M + 0.350GNN502R + 0.350GNN5023                 : ARR( 0.168E-13, -1300., 0.0);
+{  9217} G2N502y +PERO9              =  0.650G1N503M + 0.350GNN5023                                : ARR( 0.100E-10,     0., 0.0);
+{  9218} G1N503M                     =       G3N3002 +      GND2000                                : ARR( 0.200E+15,  3029., 0.0);
+{  9219} GND500D +GHO                =       GND500o +      GHO2                                   : ARR( 0.208E-11,     0., 0.0);
+{  9220} GND500D +GHO                =       G2N502z                                               : ARR( 0.452E-11,     0., 0.0);
+{  9221} GND500D +GHO                =       GND500A +      GHO2                                   : ARR( 0.634E-11,     0., 0.0);
+{  9222} GND500D +GHO                =       G3N500F                                               : ARR( 0.210E-10,     0., 0.0);
+{  9223} GND500D +GNO3               =       G3N500F +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{  9224} GND500D+HV               =       G1D5009 +      GNO2                                   :  0.100E+01*SUN;
+{  9225} GND500D+HV               =       GND4003 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{  9226} G2N502z +GNO                =       G1N503N +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  9227} G2N502z +GNO                =       GNN502H                                               : ARR( 0.182E-12,  -360., 0.0);
+{  9228} G2N502z +GHO2               =       GHN503v                                               : ARR( 0.242E-12, -1250., 0.0);
+{  9229} G2N502z +GNO3               =       G1N503N +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  9230} G2N502z +MEPERO             =  0.340G1N503N + 0.330GND500p + 0.330GND500q                 : ARR( 0.565E-13,  -845., 0.0);
+{  9231} G2N502z +PERO1              =  0.460G1N503N + 0.270GND500p + 0.270GND500q                 : ARR( 0.434E-13,  -900., 0.0);
+{  9232} G2N502z +PERO2              =  0.400G1N503N + 0.300GND500p + 0.300GND500q                 : ARR( 0.162E-13, -1400., 0.0);
+{  9233} G2N502z +PERO3              =  0.460G1N503N + 0.270GND500p + 0.270GND500q                 : ARR( 0.488E-13, -1250., 0.0);
+{  9234} G2N502z +PERO5              =  0.460G1N503N + 0.270GND500p + 0.270GND500q                 : ARR( 0.183E-11,   450., 0.0);
+{  9235} G2N502z +PERO6              =  0.300G1N503N + 0.350GND500p + 0.350GND500q                 : ARR( 0.168E-13, -1300., 0.0);
+{  9236} G2N502z +PERO9              =  0.650G1N503N + 0.350GND500q                                : ARR( 0.100E-10,     0., 0.0);
+{  9237} G3N500F +GHO2               =  0.800GGN500J + 0.200GAN500J + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  9238} G3N500F +GNO                =       GND4003 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{  9239} G3N500F +GNO2               =       GPN500J                                               : ARR( 0.330E-08,     0.,-1.0);
+{  9240} G3N500F +GNO3               =       GND4003 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{  9241} G3N500F +MEPERO             =  0.685GND4003 + 0.315GAN500J + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  9242} G3N500F +PERO1              =  0.800GND4003 + 0.200GAN500J + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  9243} G3N500F +PERO2              =  0.750GND4003 + 0.250GAN500J + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  9244} G3N500F +PERO3              =  0.800GND4003 + 0.200GAN500J + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  9245} G3N500F +PERO5              =  0.650GND4003 + 0.350GAN500J + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  9246} G3N500F +PERO6              =  0.650GND4003 + 0.350GAN500J + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  9247} G3N500F +PERO9              =       GND4003 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{  9248} G1N503N                     =       GND2000 +      GDD3001 +      GHO2                    : ARR( 0.200E+15,  2745., 0.0);
+{  9249} G1N503N                     =       GND3002 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  3708., 0.0);
+{  9250} GHN5017 +GHO                =       G2H501I                                               : ARR( 0.465E-11,     0., 0.0);
+{  9251} GHN5017 +GHO                =       GND500C +      GHO                                    : ARR( 0.167E-10,     0., 0.0);
+{  9252} GHN5017 +GHO                =       G2N5031                                               : ARR( 0.197E-11,  -190., 0.0);
+{  9253} GHN5017+HV               =       G1H502K +      GNO2                                   :  0.100E+01*SUN;
+{  9254} GHN5017+HV               =       G3N2000 +      G2H3006                                :  0.100E+01*SUN;
+{  9255} GHN5017+HV               =       GNK3000 +      G2D2000 +      GHO                     :  0.100E+01*SUN;
+{  9256} GHN5017+HV               =       G1N501e +      GHO                                    :  0.100E+01*SUN;
+{  9257} G2H501I +GNO                =       G1H502L +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  9258} G2H501I +GNO                =       GHN502f                                               : ARR( 0.182E-12,  -360., 0.0);
+{  9259} G2H501I +GHO2               =       GHH501D                                               : ARR( 0.242E-12, -1250., 0.0);
+{  9260} G2H501I +GNO3               =       G1H502L +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  9261} G2H501I +MEPERO             =  0.340G1H502L + 0.330GHN503w + 0.330GHN502D                 : ARR( 0.565E-13,  -845., 0.0);
+{  9262} G2H501I +PERO1              =  0.460G1H502L + 0.270GHN503w + 0.270GHN502D                 : ARR( 0.434E-13,  -900., 0.0);
+{  9263} G2H501I +PERO2              =  0.400G1H502L + 0.300GHN503w + 0.300GHN502D                 : ARR( 0.162E-13, -1400., 0.0);
+{  9264} G2H501I +PERO3              =  0.460G1H502L + 0.270GHN503w + 0.270GHN502D                 : ARR( 0.488E-13, -1250., 0.0);
+{  9265} G2H501I +PERO5              =  0.460G1H502L + 0.270GHN503w + 0.270GHN502D                 : ARR( 0.183E-11,   450., 0.0);
+{  9266} G2H501I +PERO6              =  0.300G1H502L + 0.350GHN503w + 0.350GHN502D                 : ARR( 0.168E-13, -1300., 0.0);
+{  9267} G2H501I +PERO9              =  0.650G1H502L + 0.350GHN502D                                : ARR( 0.100E-10,     0., 0.0);
+{  9268} G2N5031 +GNO                =       G1N501e +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  9269} G2N5031 +GNO                =       GNN500D                                               : ARR( 0.182E-12,  -360., 0.0);
+{  9270} G2N5031 +GHO2               =       GHN5017                                               : ARR( 0.242E-12, -1250., 0.0);
+{  9271} G2N5031 +GNO3               =       G1N501e +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  9272} G2N5031 +MEPERO             =  0.480G1N501e + 0.260GNK5003 + 0.260GND500C                 : ARR( 0.146E-12,  -445., 0.0);
+{  9273} G2N5031 +PERO1              =  0.600G1N501e + 0.200GNK5003 + 0.200GND500C                 : ARR( 0.112E-12,  -500., 0.0);
+{  9274} G2N5031 +PERO2              =  0.560G1N501e + 0.220GNK5003 + 0.220GND500C                 : ARR( 0.418E-13, -1000., 0.0);
+{  9275} G2N5031 +PERO3              =  0.600G1N501e + 0.200GNK5003 + 0.200GND500C                 : ARR( 0.126E-12,  -850., 0.0);
+{  9276} G2N5031 +PERO5              =  0.600G1N501e + 0.200GNK5003 + 0.200GND500C                 : ARR( 0.473E-11,   850., 0.0);
+{  9277} G2N5031 +PERO6              =  0.460G1N501e + 0.270GNK5003 + 0.270GND500C                 : ARR( 0.434E-13,  -900., 0.0);
+{  9278} G2N5031 +PERO9              =  0.800G1N501e + 0.200GND500C                                : ARR( 0.100E-10,     0., 0.0);
+{  9279} G1H502K                     =       G3H4005 +      GCH2O                                  : ARR( 0.200E+15,  3576., 0.0);
+{  9280} G1H502L                     =       G2N3005 +      GHD2000                                : ARR( 0.200E+15,  7289., 0.0);
+{  9281} G1H502L                     =       GND4004 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  6757., 0.0);
+{  9282} G3H4005 +GHO2               =  0.800GGH4008 + 0.200GAH4006 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  9283} G3H4005 +GNO                =       G2H3006 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{  9284} G3H4005 +GNO2               =       GPH4006                                               : ARR( 0.330E-08,     0.,-1.0);
+{  9285} G3H4005 +GNO3               =       G2H3006 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{  9286} G3H4005 +MEPERO             =  0.685G2H3006 + 0.315GAH4006 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  9287} G3H4005 +PERO1              =  0.800G2H3006 + 0.200GAH4006 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  9288} G3H4005 +PERO2              =  0.750G2H3006 + 0.250GAH4006 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  9289} G3H4005 +PERO3              =  0.800G2H3006 + 0.200GAH4006 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  9290} G3H4005 +PERO5              =  0.650G2H3006 + 0.350GAH4006 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  9291} G3H4005 +PERO6              =  0.650G2H3006 + 0.350GAH4006 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  9292} G3H4005 +PERO9              =       G2H3006 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{  9293} GHH500D +GHO                =       GHN5019 +      GHO                                    : ARR( 0.436E-10,     0., 0.0);
+{  9294} GHH500D +GHO                =       GHN501C +      GHO                                    : ARR( 0.170E-10,     0., 0.0);
+{  9295} GHH500D +GHO                =       G2H500D                                               : ARR( 0.201E-11,  -190., 0.0);
+{  9296} GHH500D +GHO                =       G2H500w                                               : ARR( 0.201E-11,  -190., 0.0);
+{  9297} GHH500D+HV               =       G1H502M +      GNO2                                   :  0.100E+01*SUN;
+{  9298} GHH500D+HV               =       G1H500J +      GHO                                    :  0.100E+01*SUN;
+{  9299} GHH500D+HV               =       G1H501e +      GHO                                    :  0.100E+01*SUN;
+{  9300} G1H502M                     =       G2H501J                                               : ARR( 0.160E+12,  3000., 0.0);
+{  9301} G1H502M                     =       GHH400A +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{  9302} G2H501J +GNO                =       G1H502N +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  9303} G2H501J +GNO                =       GHH501E                                               : ARR( 0.182E-12,  -360., 0.0);
+{  9304} G2H501J +GHO2               =       GHH501F                                               : ARR( 0.242E-12, -1250., 0.0);
+{  9305} G2H501J +GNO3               =       G1H502N +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  9306} G2H501J +MEPERO             =  0.340G1H502N + 0.330GHH501G + 0.330GHH501H                 : ARR( 0.565E-13,  -845., 0.0);
+{  9307} G2H501J +PERO1              =  0.460G1H502N + 0.270GHH501G + 0.270GHH501H                 : ARR( 0.434E-13,  -900., 0.0);
+{  9308} G2H501J +PERO2              =  0.400G1H502N + 0.300GHH501G + 0.300GHH501H                 : ARR( 0.162E-13, -1400., 0.0);
+{  9309} G2H501J +PERO3              =  0.460G1H502N + 0.270GHH501G + 0.270GHH501H                 : ARR( 0.488E-13, -1250., 0.0);
+{  9310} G2H501J +PERO5              =  0.460G1H502N + 0.270GHH501G + 0.270GHH501H                 : ARR( 0.183E-11,   450., 0.0);
+{  9311} G2H501J +PERO6              =  0.300G1H502N + 0.350GHH501G + 0.350GHH501H                 : ARR( 0.168E-13, -1300., 0.0);
+{  9312} G2H501J +PERO9              =  0.650G1H502N + 0.350GHH501H                                : ARR( 0.100E-10,     0., 0.0);
+{  9313} G1H502N                     =       GHH501I +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{  9314} G1H502N                     =       GDO3002 +      GHD2000 +      GHO                     : ARR( 0.200E+15,  4695., 0.0);
+{  9315} GHN5018 +GHO                =       GHN503x +      GHO2                                   : ARR( 0.217E-11,     0., 0.0);
+{  9316} GHN5018 +GHO                =       GHN5019 +      GHO2                                   : ARR( 0.109E-10,     0., 0.0);
+{  9317} GHN5018 +GHO                =       GND500E +      GHO                                    : ARR( 0.170E-10,     0., 0.0);
+{  9318} GHN5018 +GHO                =       G2N5032                                               : ARR( 0.200E-11,  -190., 0.0);
+{  9319} GHN5018+HV               =       G1H502O +      GNO2                                   :  0.100E+01*SUN;
+{  9320} GHN5018+HV               =       G1N503K +      GHO                                    :  0.100E+01*SUN;
+{  9321} G2N5032 +GNO                =       G1N503K +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  9322} G2N5032 +GNO                =       GNN500o                                               : ARR( 0.182E-12,  -360., 0.0);
+{  9323} G2N5032 +GHO2               =       GHN5018                                               : ARR( 0.242E-12, -1250., 0.0);
+{  9324} G2N5032 +GNO3               =       G1N503K +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  9325} G2N5032 +MEPERO             =  0.480G1N503K + 0.260GNO500N + 0.260GND500E                 : ARR( 0.146E-12,  -445., 0.0);
+{  9326} G2N5032 +PERO1              =  0.600G1N503K + 0.200GNO500N + 0.200GND500E                 : ARR( 0.112E-12,  -500., 0.0);
+{  9327} G2N5032 +PERO2              =  0.560G1N503K + 0.220GNO500N + 0.220GND500E                 : ARR( 0.418E-13, -1000., 0.0);
+{  9328} G2N5032 +PERO3              =  0.600G1N503K + 0.200GNO500N + 0.200GND500E                 : ARR( 0.126E-12,  -850., 0.0);
+{  9329} G2N5032 +PERO5              =  0.600G1N503K + 0.200GNO500N + 0.200GND500E                 : ARR( 0.473E-11,   850., 0.0);
+{  9330} G2N5032 +PERO6              =  0.460G1N503K + 0.270GNO500N + 0.270GND500E                 : ARR( 0.434E-13,  -900., 0.0);
+{  9331} G2N5032 +PERO9              =  0.800G1N503K + 0.200GND500E                                : ARR( 0.100E-10,     0., 0.0);
+{  9332} G1H502O                     =       G2H501K                                               : ARR( 0.160E+12,  3000., 0.0);
+{  9333} G1H502O                     =       GHD400B +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{  9334} G2H501K +GNO                =       G1H502P +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  9335} G2H501K +GNO                =       GHN503y                                               : ARR( 0.182E-12,  -360., 0.0);
+{  9336} G2H501K +GHO2               =       GHH501J                                               : ARR( 0.242E-12, -1250., 0.0);
+{  9337} G2H501K +GNO3               =       G1H502P +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  9338} G2H501K +MEPERO             =  0.340G1H502P + 0.330GHO500W + 0.330GHK500g                 : ARR( 0.565E-13,  -845., 0.0);
+{  9339} G2H501K +PERO1              =  0.460G1H502P + 0.270GHO500W + 0.270GHK500g                 : ARR( 0.434E-13,  -900., 0.0);
+{  9340} G2H501K +PERO2              =  0.400G1H502P + 0.300GHO500W + 0.300GHK500g                 : ARR( 0.162E-13, -1400., 0.0);
+{  9341} G2H501K +PERO3              =  0.460G1H502P + 0.270GHO500W + 0.270GHK500g                 : ARR( 0.488E-13, -1250., 0.0);
+{  9342} G2H501K +PERO5              =  0.460G1H502P + 0.270GHO500W + 0.270GHK500g                 : ARR( 0.183E-11,   450., 0.0);
+{  9343} G2H501K +PERO6              =  0.300G1H502P + 0.350GHO500W + 0.350GHK500g                 : ARR( 0.168E-13, -1300., 0.0);
+{  9344} G2H501K +PERO9              =  0.650G1H502P + 0.350GHK500g                                : ARR( 0.100E-10,     0., 0.0);
+{  9345} G1H502P                     =       GDO3002 +      GHD2000 +      GHO2                    : ARR( 0.200E+15,  3486., 0.0);
+{  9346} GHN5019 +GHO                =       GND500F +      GHO                                    : ARR( 0.532E-10,     0., 0.0);
+{  9347} GHN5019 +GHO                =       G2N502c                                               : ARR( 0.198E-11,  -190., 0.0);
+{  9348} GHN5019+HV               =       G1H502Q +      GNO2                                   :  0.100E+01*SUN;
+{  9349} GHN5019+HV               =       G3N3002 +      G2H2000                                :  0.100E+01*SUN;
+{  9350} GHN5019+HV               =       G1N502t +      GHO                                    :  0.100E+01*SUN;
+{  9351} G1H502Q                     =       GHD400D +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4576., 0.0);
+{  9352} GHH500E +GHO                =       GHN500Z +      GHO                                    : ARR( 0.436E-10,     0., 0.0);
+{  9353} GHH500E +GHO                =       GHN5021 +      GHO                                    : ARR( 0.170E-10,     0., 0.0);
+{  9354} GHH500E +GHO                =       G2H500E                                               : ARR( 0.201E-11,  -190., 0.0);
+{  9355} GHH500E +GHO                =       G2H500u                                               : ARR( 0.201E-11,  -190., 0.0);
+{  9356} GHH500E+HV               =       G1H502R +      GNO2                                   :  0.100E+01*SUN;
+{  9357} GHH500E+HV               =       G1H500K +      GHO                                    :  0.100E+01*SUN;
+{  9358} GHH500E+HV               =       G1H501a +      GHO                                    :  0.100E+01*SUN;
+{  9359} G1H502R                     =       GHK500C +      GHO                                    : ARR( 0.800E+11,  1678., 0.0);
+{  9360} G1H502R                     =       GHH400B +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4799., 0.0);
+{  9361} GHN501A +GHO                =       GHN503w +      GHO2                                   : ARR( 0.217E-11,     0., 0.0);
+{  9362} GHN501A +GHO                =       GHN500Z +      GHO2                                   : ARR( 0.109E-10,     0., 0.0);
+{  9363} GHN501A +GHO                =       GND500D +      GHO                                    : ARR( 0.170E-10,     0., 0.0);
+{  9364} GHN501A +GHO                =       G2N501F                                               : ARR( 0.200E-11,  -190., 0.0);
+{  9365} GHN501A+HV               =       G1H500Z +      GNO2                                   :  0.100E+01*SUN;
+{  9366} GHN501A+HV               =       G1N501H +      GHO                                    :  0.100E+01*SUN;
+{  9367} GHD4001 +GHO                =       GDD4000 +      GHO                                    : ARR( 0.164E-10,     0., 0.0);
+{  9368} GHD4001 +GHO                =       G2H400E                                               : ARR( 0.457E-11,     0., 0.0);
+{  9369} GHD4001 +GHO                =       G3H4005                                               : ARR( 0.212E-10,     0., 0.0);
+{  9370} GHD4001 +GHO                =       G2D4004                                               : ARR( 0.194E-11,  -190., 0.0);
+{  9371} GHD4001 +GNO3               =       G3H4005 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{  9372} GHD4001+HV               =       G1D4003 +      GHO                                    :  0.100E+01*SUN;
+{  9373} GHD4001+HV               =       G2H3006 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{  9374} GHD4001+HV               =       G2D2000 +      GD02000 +      GHO                     :  0.100E+01*SUN;
+{  9375} G2H400E +GNO                =       G1H400G +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  9376} G2H400E +GNO                =       GHN400G                                               : ARR( 0.111E-12,  -360., 0.0);
+{  9377} G2H400E +GHO2               =       GHH400B                                               : ARR( 0.214E-12, -1250., 0.0);
+{  9378} G2H400E +GNO3               =       G1H400G +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  9379} G2H400E +MEPERO             =  0.340G1H400G + 0.330GHD4003 + 0.330GHD4004                 : ARR( 0.565E-13,  -845., 0.0);
+{  9380} G2H400E +PERO1              =  0.460G1H400G + 0.270GHD4003 + 0.270GHD4004                 : ARR( 0.434E-13,  -900., 0.0);
+{  9381} G2H400E +PERO2              =  0.400G1H400G + 0.300GHD4003 + 0.300GHD4004                 : ARR( 0.162E-13, -1400., 0.0);
+{  9382} G2H400E +PERO3              =  0.460G1H400G + 0.270GHD4003 + 0.270GHD4004                 : ARR( 0.488E-13, -1250., 0.0);
+{  9383} G2H400E +PERO5              =  0.460G1H400G + 0.270GHD4003 + 0.270GHD4004                 : ARR( 0.183E-11,   450., 0.0);
+{  9384} G2H400E +PERO6              =  0.300G1H400G + 0.350GHD4003 + 0.350GHD4004                 : ARR( 0.168E-13, -1300., 0.0);
+{  9385} G2H400E +PERO9              =  0.650G1H400G + 0.350GHD4004                                : ARR( 0.100E-10,     0., 0.0);
+{  9386} G2D4004 +GNO                =       G1D4003 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  9387} G2D4004 +GNO                =       GND4001                                               : ARR( 0.111E-12,  -360., 0.0);
+{  9388} G2D4004 +GHO2               =       GHD4001                                               : ARR( 0.214E-12, -1250., 0.0);
+{  9389} G2D4004 +GNO3               =       G1D4003 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  9390} G2D4004 +MEPERO             =  0.480G1D4003 + 0.260GDO4000 + 0.260GDD4000                 : ARR( 0.146E-12,  -445., 0.0);
+{  9391} G2D4004 +PERO1              =  0.600G1D4003 + 0.200GDO4000 + 0.200GDD4000                 : ARR( 0.112E-12,  -500., 0.0);
+{  9392} G2D4004 +PERO2              =  0.560G1D4003 + 0.220GDO4000 + 0.220GDD4000                 : ARR( 0.418E-13, -1000., 0.0);
+{  9393} G2D4004 +PERO3              =  0.600G1D4003 + 0.200GDO4000 + 0.200GDD4000                 : ARR( 0.126E-12,  -850., 0.0);
+{  9394} G2D4004 +PERO5              =  0.600G1D4003 + 0.200GDO4000 + 0.200GDD4000                 : ARR( 0.473E-11,   850., 0.0);
+{  9395} G2D4004 +PERO6              =  0.460G1D4003 + 0.270GDO4000 + 0.270GDD4000                 : ARR( 0.434E-13,  -900., 0.0);
+{  9396} G2D4004 +PERO9              =  0.800G1D4003 + 0.200GDD4000                                : ARR( 0.100E-10,     0., 0.0);
+{  9397} G1H400G                     =       GCH2O   +      GDD3000 +      GHO                     : ARR( 0.200E+15,  6757., 0.0);
+{  9398} G1H400G                     =       GHD2000 +      G2D2000                                : ARR( 0.200E+15,  7289., 0.0);
+{  9399} GHD5007 +GHO                =       GDD5001 +      GHO                                    : ARR( 0.162E-10,     0., 0.0);
+{  9400} GHD5007 +GHO                =       GHD500d +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{  9401} GHD5007 +GHO                =       G2H501L                                               : ARR( 0.450E-11,     0., 0.0);
+{  9402} GHD5007 +GHO                =       GHD500e +      GHO2                                   : ARR( 0.631E-11,     0., 0.0);
+{  9403} GHD5007 +GHO                =       G3H5009                                               : ARR( 0.209E-10,     0., 0.0);
+{  9404} GHD5007 +GHO                =       G2D5006                                               : ARR( 0.191E-11,  -190., 0.0);
+{  9405} GHD5007 +GNO3               =       G3H5009 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{  9406} GHD5007+HV               =       G1D5009 +      GHO                                    :  0.100E+01*SUN;
+{  9407} GHD5007+HV               =       GHD4003 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{  9408} G2H501L +GNO                =       G1H502S +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  9409} G2H501L +GNO                =       GHN503z                                               : ARR( 0.182E-12,  -360., 0.0);
+{  9410} G2H501L +GHO2               =       GHH501I                                               : ARR( 0.242E-12, -1250., 0.0);
+{  9411} G2H501L +GNO3               =       G1H502S +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  9412} G2H501L +MEPERO             =  0.340G1H502S + 0.330GHD500f + 0.330GHD500g                 : ARR( 0.565E-13,  -845., 0.0);
+{  9413} G2H501L +PERO1              =  0.460G1H502S + 0.270GHD500f + 0.270GHD500g                 : ARR( 0.434E-13,  -900., 0.0);
+{  9414} G2H501L +PERO2              =  0.400G1H502S + 0.300GHD500f + 0.300GHD500g                 : ARR( 0.162E-13, -1400., 0.0);
+{  9415} G2H501L +PERO3              =  0.460G1H502S + 0.270GHD500f + 0.270GHD500g                 : ARR( 0.488E-13, -1250., 0.0);
+{  9416} G2H501L +PERO5              =  0.460G1H502S + 0.270GHD500f + 0.270GHD500g                 : ARR( 0.183E-11,   450., 0.0);
+{  9417} G2H501L +PERO6              =  0.300G1H502S + 0.350GHD500f + 0.350GHD500g                 : ARR( 0.168E-13, -1300., 0.0);
+{  9418} G2H501L +PERO9              =  0.650G1H502S + 0.350GHD500g                                : ARR( 0.100E-10,     0., 0.0);
+{  9419} G3H5009 +GHO2               =  0.800GGH500B + 0.200GAH500B + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  9420} G3H5009 +GNO                =       GHD4003 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{  9421} G3H5009 +GNO2               =       GPH500B                                               : ARR( 0.330E-08,     0.,-1.0);
+{  9422} G3H5009 +GNO3               =       GHD4003 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{  9423} G3H5009 +MEPERO             =  0.685GHD4003 + 0.315GAH500B + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  9424} G3H5009 +PERO1              =  0.800GHD4003 + 0.200GAH500B + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  9425} G3H5009 +PERO2              =  0.750GHD4003 + 0.250GAH500B + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  9426} G3H5009 +PERO3              =  0.800GHD4003 + 0.200GAH500B + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  9427} G3H5009 +PERO5              =  0.650GHD4003 + 0.350GAH500B + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  9428} G3H5009 +PERO6              =  0.650GHD4003 + 0.350GAH500B + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  9429} G3H5009 +PERO9              =       GHD4003 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{  9430} G1H502S                     =       GHD2000 +      GDD3001 +      GHO2                    : ARR( 0.200E+15,  2745., 0.0);
+{  9431} G1H502S                     =       GHD3005 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  3708., 0.0);
+{  9432} GHN501B +GHO                =       GHN5041 +      GHO2                                   : ARR( 0.415E-11,     0., 0.0);
+{  9433} GHN501B +GHO                =       GHN502I +      GHO2                                   : ARR( 0.106E-10,     0., 0.0);
+{  9434} GHN501B +GHO                =       GND500B +      GHO                                    : ARR( 0.332E-11,     0., 0.0);
+{  9435} GHN501B +GHO                =       G2N5033                                               : ARR( 0.196E-11,  -190., 0.0);
+{  9436} GHN501B+HV               =       G1H500L +      GNO2                                   :  0.100E+01*SUN;
+{  9437} GHN501B+HV               =       G1N5038 +      GHO                                    :  0.100E+01*SUN;
+{  9438} G2N5033 +GNO                =       G1N5038 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  9439} G2N5033 +GNO                =       GNN500k                                               : ARR( 0.182E-12,  -360., 0.0);
+{  9440} G2N5033 +GHO2               =       GHN501B                                               : ARR( 0.242E-12, -1250., 0.0);
+{  9441} G2N5033 +GNO3               =       G1N5038 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  9442} G2N5033 +MEPERO             =  0.480G1N5038 + 0.260GNO500M + 0.260GND500B                 : ARR( 0.164E-12,  -795., 0.0);
+{  9443} G2N5033 +PERO1              =  0.600G1N5038 + 0.200GNO500M + 0.200GND500B                 : ARR( 0.126E-12,  -850., 0.0);
+{  9444} G2N5033 +PERO2              =  0.560G1N5038 + 0.220GNO500M + 0.220GND500B                 : ARR( 0.471E-13, -1350., 0.0);
+{  9445} G2N5033 +PERO3              =  0.600G1N5038 + 0.200GNO500M + 0.200GND500B                 : ARR( 0.142E-12, -1200., 0.0);
+{  9446} G2N5033 +PERO5              =  0.600G1N5038 + 0.200GNO500M + 0.200GND500B                 : ARR( 0.533E-11,   500., 0.0);
+{  9447} G2N5033 +PERO6              =  0.460G1N5038 + 0.270GNO500M + 0.270GND500B                 : ARR( 0.488E-13, -1250., 0.0);
+{  9448} G2N5033 +PERO9              =  0.800G1N5038 + 0.200GND500B                                : ARR( 0.100E-10,     0., 0.0);
+{  9449} GHH500F +GHO                =       GHH501K +      GHO2                                   : ARR( 0.123E-10,     0., 0.0);
+{  9450} GHH500F +GHO                =       GHK500C +      GHO                                    : ARR( 0.491E-10,     0., 0.0);
+{  9451} GHH500F +GHO                =       GHD5006 +      GHO                                    : ARR( 0.192E-10,     0., 0.0);
+{  9452} GHH500F+HV               =       G1H500L +      GHO                                    :  0.100E+01*SUN;
+{  9453} GHH500F+HV               =       G1H501h +      GHO                                    :  0.100E+01*SUN;
+{  9454} GHK500C +GHO                =       GHD500d +      GHO2                                   : ARR( 0.411E-11,     0., 0.0);
+{  9455} GHK500C +GHO                =       GHK500E +      GHO2                                   : ARR( 0.334E-10,     0., 0.0);
+{  9456} GHK500C +GHO                =       GDK5005 +      GHO                                    : ARR( 0.100E-10,     0., 0.0);
+{  9457} GHK500C +GHO                =       G2K500T                                               : ARR( 0.194E-11,  -190., 0.0);
+{  9458} GHK500C+HV               =       G3K4005 +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{  9459} GHK500C+HV               =       GDO2000 +      GHK3000                                :  0.100E+01*SUN;
+{  9460} GHK500C+HV               =       G1K500b +      GHO                                    :  0.100E+01*SUN;
+{  9461} G2K500T +GNO                =       G1K500b +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  9462} G2K500T +GNO                =       GNK500P                                               : ARR( 0.182E-12,  -360., 0.0);
+{  9463} G2K500T +GHO2               =       GHK500C                                               : ARR( 0.242E-12, -1250., 0.0);
+{  9464} G2K500T +GNO3               =       G1K500b +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  9465} G2K500T +MEPERO             =  0.480G1K500b + 0.260GKO500A + 0.260GDK5005                 : ARR( 0.164E-12,  -795., 0.0);
+{  9466} G2K500T +PERO1              =  0.600G1K500b + 0.200GKO500A + 0.200GDK5005                 : ARR( 0.126E-12,  -850., 0.0);
+{  9467} G2K500T +PERO2              =  0.560G1K500b + 0.220GKO500A + 0.220GDK5005                 : ARR( 0.471E-13, -1350., 0.0);
+{  9468} G2K500T +PERO3              =  0.600G1K500b + 0.200GKO500A + 0.200GDK5005                 : ARR( 0.142E-12, -1200., 0.0);
+{  9469} G2K500T +PERO5              =  0.600G1K500b + 0.200GKO500A + 0.200GDK5005                 : ARR( 0.533E-11,   500., 0.0);
+{  9470} G2K500T +PERO6              =  0.460G1K500b + 0.270GKO500A + 0.270GDK5005                 : ARR( 0.488E-13, -1250., 0.0);
+{  9471} G2K500T +PERO9              =  0.800G1K500b + 0.200GDK5005                                : ARR( 0.100E-10,     0., 0.0);
+{  9472} GHN501C +GHO                =       GND500F +      GHO                                    : ARR( 0.136E-09,     0., 0.0);
+{  9473} GHN501C +GHO                =       G3H500A                                               : ARR( 0.217E-10,     0., 0.0);
+{  9474} GHN501C +GNO3               =       G3H500A +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{  9475} GHN501C+HV               =       G1H502T +      GNO2                                   :  0.100E+01*SUN;
+{  9476} GHN501C+HV               =       G1N500w +      GHO                                    :  0.100E+01*SUN;
+{  9477} GHN501C+HV               =       G2H400F +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{  9478} GHN501C+HV               =       GHN3008 +      GD02000                                :  0.100E+01*SUN;
+{  9479} G3H500A +GHO2               =  0.800GGH500C + 0.200GAH500C + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  9480} G3H500A +GNO                =       G2H400F +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{  9481} G3H500A +GNO2               =       GPH500C                                               : ARR( 0.330E-08,     0.,-1.0);
+{  9482} G3H500A +GNO3               =       G2H400F +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{  9483} G3H500A +MEPERO             =  0.685G2H400F + 0.315GAH500C + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  9484} G3H500A +PERO1              =  0.800G2H400F + 0.200GAH500C + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  9485} G3H500A +PERO2              =  0.750G2H400F + 0.250GAH500C + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  9486} G3H500A +PERO3              =  0.800G2H400F + 0.200GAH500C + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  9487} G3H500A +PERO5              =  0.650G2H400F + 0.350GAH500C + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  9488} G3H500A +PERO6              =  0.650G2H400F + 0.350GAH500C + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  9489} G3H500A +PERO9              =       G2H400F +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{  9490} G1H502T                     =       G2H501M                                               : ARR( 0.160E+12,  3221., 0.0);
+{  9491} G1H502T                     =       GHD400C +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{  9492} G2H400F +GNO                =       G1H400H +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  9493} G2H400F +GNO                =       GHN400S                                               : ARR( 0.111E-12,  -360., 0.0);
+{  9494} G2H400F +GHO2               =       GHH400C                                               : ARR( 0.214E-12, -1250., 0.0);
+{  9495} G2H400F +GNO3               =       G1H400H +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  9496} G2H400F +MEPERO             =  0.480G1H400H + 0.260GHN400F + 0.260GHN400T                 : ARR( 0.164E-12,  -795., 0.0);
+{  9497} G2H400F +PERO1              =  0.600G1H400H + 0.200GHN400F + 0.200GHN400T                 : ARR( 0.126E-12,  -850., 0.0);
+{  9498} G2H400F +PERO2              =  0.560G1H400H + 0.220GHN400F + 0.220GHN400T                 : ARR( 0.471E-13, -1350., 0.0);
+{  9499} G2H400F +PERO3              =  0.600G1H400H + 0.200GHN400F + 0.200GHN400T                 : ARR( 0.142E-12, -1200., 0.0);
+{  9500} G2H400F +PERO5              =  0.600G1H400H + 0.200GHN400F + 0.200GHN400T                 : ARR( 0.533E-11,   500., 0.0);
+{  9501} G2H400F +PERO6              =  0.460G1H400H + 0.270GHN400F + 0.270GHN400T                 : ARR( 0.488E-13, -1250., 0.0);
+{  9502} G2H400F +PERO9              =  0.800G1H400H + 0.200GHN400T                                : ARR( 0.100E-10,     0., 0.0);
+{  9503} G2H501M +GNO                =       G1H502U +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  9504} G2H501M +GNO                =       GHN5042                                               : ARR( 0.182E-12,  -360., 0.0);
+{  9505} G2H501M +GHO2               =       GHH5018                                               : ARR( 0.242E-12, -1250., 0.0);
+{  9506} G2H501M +GNO3               =       G1H502U +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  9507} G2H501M +MEPERO             =  0.340G1H502U + 0.330GHD500H + 0.330GHD500h                 : ARR( 0.565E-13,  -845., 0.0);
+{  9508} G2H501M +PERO1              =  0.460G1H502U + 0.270GHD500H + 0.270GHD500h                 : ARR( 0.434E-13,  -900., 0.0);
+{  9509} G2H501M +PERO2              =  0.400G1H502U + 0.300GHD500H + 0.300GHD500h                 : ARR( 0.162E-13, -1400., 0.0);
+{  9510} G2H501M +PERO3              =  0.460G1H502U + 0.270GHD500H + 0.270GHD500h                 : ARR( 0.488E-13, -1250., 0.0);
+{  9511} G2H501M +PERO5              =  0.460G1H502U + 0.270GHD500H + 0.270GHD500h                 : ARR( 0.183E-11,   450., 0.0);
+{  9512} G2H501M +PERO6              =  0.300G1H502U + 0.350GHD500H + 0.350GHD500h                 : ARR( 0.168E-13, -1300., 0.0);
+{  9513} G2H501M +PERO9              =  0.650G1H502U + 0.350GHD500h                                : ARR( 0.100E-10,     0., 0.0);
+{  9514} G1H400H                     =       GHD4009 +      GNO2                                   : ARR( 0.160E+12,  4531., 0.0);
+{  9515} G1H400H                     =       GND3002 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{  9516} G1H502U                     =       GHD500i +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{  9517} G1H502U                     =       GHD400A +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{  9518} GND500E +GHO                =       GND500F +      GHO2                                   : ARR( 0.347E-10,     0., 0.0);
+{  9519} GND500E +GHO                =       G3N500G                                               : ARR( 0.220E-10,     0., 0.0);
+{  9520} GND500E +GNO3               =       G3N500G +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{  9521} GND500E+HV               =       G1D500O +      GNO2                                   :  0.100E+01*SUN;
+{  9522} GND500E+HV               =       G2N400K +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{  9523} GND500E+HV               =       GNK3001 +      GD02000                                :  0.100E+01*SUN;
+{  9524} G3N500G +GHO2               =  0.800GGN500K + 0.200GAN500K + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  9525} G3N500G +GNO                =       G2N400K +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{  9526} G3N500G +GNO2               =       GPN500K                                               : ARR( 0.330E-08,     0.,-1.0);
+{  9527} G3N500G +GNO3               =       G2N400K +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{  9528} G3N500G +MEPERO             =  0.685G2N400K + 0.315GAN500K + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  9529} G3N500G +PERO1              =  0.800G2N400K + 0.200GAN500K + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  9530} G3N500G +PERO2              =  0.750G2N400K + 0.250GAN500K + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  9531} G3N500G +PERO3              =  0.800G2N400K + 0.200GAN500K + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  9532} G3N500G +PERO5              =  0.650G2N400K + 0.350GAN500K + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  9533} G3N500G +PERO6              =  0.650G2N400K + 0.350GAN500K + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  9534} G3N500G +PERO9              =       G2N400K +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{  9535} G1D500O                     =       G2D500I                                               : ARR( 0.160E+12,  3221., 0.0);
+{  9536} G1D500O                     =       GDD4001 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{  9537} G2N400K +GNO                =       G1N400L +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  9538} G2N400K +GNO                =       GNN400I                                               : ARR( 0.111E-12,  -360., 0.0);
+{  9539} G2N400K +GHO2               =       GHN400U                                               : ARR( 0.214E-12, -1250., 0.0);
+{  9540} G2N400K +GNO3               =       G1N400L +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  9541} G2N400K +MEPERO             =  0.480G1N400L + 0.260GNO400B + 0.260GND400F                 : ARR( 0.164E-12,  -795., 0.0);
+{  9542} G2N400K +PERO1              =  0.600G1N400L + 0.200GNO400B + 0.200GND400F                 : ARR( 0.126E-12,  -850., 0.0);
+{  9543} G2N400K +PERO2              =  0.560G1N400L + 0.220GNO400B + 0.220GND400F                 : ARR( 0.471E-13, -1350., 0.0);
+{  9544} G2N400K +PERO3              =  0.600G1N400L + 0.200GNO400B + 0.200GND400F                 : ARR( 0.142E-12, -1200., 0.0);
+{  9545} G2N400K +PERO5              =  0.600G1N400L + 0.200GNO400B + 0.200GND400F                 : ARR( 0.533E-11,   500., 0.0);
+{  9546} G2N400K +PERO6              =  0.460G1N400L + 0.270GNO400B + 0.270GND400F                 : ARR( 0.488E-13, -1250., 0.0);
+{  9547} G2N400K +PERO9              =  0.800G1N400L + 0.200GND400F                                : ARR( 0.100E-10,     0., 0.0);
+{  9548} G2D500I +GNO                =       G1D500P +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  9549} G2D500I +GNO                =       GND500r                                               : ARR( 0.182E-12,  -360., 0.0);
+{  9550} G2D500I +GHO2               =       GHD500b                                               : ARR( 0.242E-12, -1250., 0.0);
+{  9551} G2D500I +GNO3               =       G1D500P +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  9552} G2D500I +MEPERO             =  0.340G1D500P + 0.330GDO500A + 0.330GDK500N                 : ARR( 0.565E-13,  -845., 0.0);
+{  9553} G2D500I +PERO1              =  0.460G1D500P + 0.270GDO500A + 0.270GDK500N                 : ARR( 0.434E-13,  -900., 0.0);
+{  9554} G2D500I +PERO2              =  0.400G1D500P + 0.300GDO500A + 0.300GDK500N                 : ARR( 0.162E-13, -1400., 0.0);
+{  9555} G2D500I +PERO3              =  0.460G1D500P + 0.270GDO500A + 0.270GDK500N                 : ARR( 0.488E-13, -1250., 0.0);
+{  9556} G2D500I +PERO5              =  0.460G1D500P + 0.270GDO500A + 0.270GDK500N                 : ARR( 0.183E-11,   450., 0.0);
+{  9557} G2D500I +PERO6              =  0.300G1D500P + 0.350GDO500A + 0.350GDK500N                 : ARR( 0.168E-13, -1300., 0.0);
+{  9558} G2D500I +PERO9              =  0.650G1D500P + 0.350GDK500N                                : ARR( 0.100E-10,     0., 0.0);
+{  9559} G1N400L                     =       GND3002 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{  9560} G1D500P                     =       GDD5006 +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{  9561} G1D500P                     =       GDO3002 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  4899., 0.0);
+{  9562} G1D500P                     =       GDO4006 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{  9563} GND500F +GHO                =       G3N500H                                               : ARR( 0.679E-10,     0., 0.0);
+{  9564} GND500F +GNO3               =       G3N500H +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{  9565} GND500F+HV               =       G1D500Q +      GNO2                                   :  0.100E+01*SUN;
+{  9566} GND500F+HV               =       G3N3002 +      G2D2000                                :  0.100E+01*SUN;
+{  9567} GND500F+HV               =       G2N400L +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{  9568} G3N500H +GHO2               =  0.800GGN500L + 0.200GAN500L + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  9569} G3N500H +GNO                =       G2N400L +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{  9570} G3N500H +GNO2               =       GPN500L                                               : ARR( 0.330E-08,     0.,-1.0);
+{  9571} G3N500H +GNO3               =       G2N400L +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{  9572} G3N500H +MEPERO             =  0.685G2N400L + 0.315GAN500L + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  9573} G3N500H +PERO1              =  0.800G2N400L + 0.200GAN500L + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  9574} G3N500H +PERO2              =  0.750G2N400L + 0.250GAN500L + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  9575} G3N500H +PERO3              =  0.800G2N400L + 0.200GAN500L + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  9576} G3N500H +PERO5              =  0.650G2N400L + 0.350GAN500L + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  9577} G3N500H +PERO6              =  0.650G2N400L + 0.350GAN500L + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{  9578} G3N500H +PERO9              =       G2N400L +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{  9579} G1D500Q                     =       GDD4002 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4576., 0.0);
+{  9580} G2N400L +GNO                =       G1N400M +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  9581} G2N400L +GNO                =       GNN400J                                               : ARR( 0.111E-12,  -360., 0.0);
+{  9582} G2N400L +GHO2               =       GHN400W                                               : ARR( 0.214E-12, -1250., 0.0);
+{  9583} G2N400L +GNO3               =       G1N400M +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  9584} G2N400L +MEPERO             =  0.480G1N400M + 0.260GNK4005 + 0.260GND400G                 : ARR( 0.164E-12,  -795., 0.0);
+{  9585} G2N400L +PERO1              =  0.600G1N400M + 0.200GNK4005 + 0.200GND400G                 : ARR( 0.126E-12,  -850., 0.0);
+{  9586} G2N400L +PERO2              =  0.560G1N400M + 0.220GNK4005 + 0.220GND400G                 : ARR( 0.471E-13, -1350., 0.0);
+{  9587} G2N400L +PERO3              =  0.600G1N400M + 0.200GNK4005 + 0.200GND400G                 : ARR( 0.142E-12, -1200., 0.0);
+{  9588} G2N400L +PERO5              =  0.600G1N400M + 0.200GNK4005 + 0.200GND400G                 : ARR( 0.533E-11,   500., 0.0);
+{  9589} G2N400L +PERO6              =  0.460G1N400M + 0.270GNK4005 + 0.270GND400G                 : ARR( 0.488E-13, -1250., 0.0);
+{  9590} G2N400L +PERO9              =  0.800G1N400M + 0.200GND400G                                : ARR( 0.100E-10,     0., 0.0);
+{  9591} G1N400M                     =       G3N3002 +      GCH2O                                  : ARR( 0.200E+15,  3603., 0.0);
+{  9592} GGN5001 +GHO                =       GGN500I +      GHO2                                   : ARR( 0.211E-11,     0., 0.0);
+{  9593} GGN5001 +GHO                =       G2G5008                                               : ARR( 0.145E-11,     0., 0.0);
+{  9594} GGN5001 +GHO                =       G2G5009                                               : ARR( 0.882E-12,     0., 0.0);
+{  9595} GGN5001 +GHO                =       G3N5001                                               : ARR( 0.194E-11,  -190., 0.0);
+{  9596} GGN5001+HV               =       G1G5009 +      GNO2                                   :  0.100E+01*SUN;
+{  9597} GGN5001+HV               =       G2N4001 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{  9598} G2G5008 +GNO                =       G1G500A +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  9599} G2G5008 +GNO                =       GGN500F                                               : ARR( 0.182E-12,  -360., 0.0);
+{  9600} G2G5008 +GHO2               =       GGH500C                                               : ARR( 0.242E-12, -1250., 0.0);
+{  9601} G2G5008 +GNO3               =       G1G500A +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  9602} G2G5008 +MEPERO             =  0.340G1G500A + 0.330GGN500K + 0.330GGN500L                 : ARR( 0.565E-13,  -845., 0.0);
+{  9603} G2G5008 +PERO1              =  0.460G1G500A + 0.270GGN500K + 0.270GGN500L                 : ARR( 0.434E-13,  -900., 0.0);
+{  9604} G2G5008 +PERO2              =  0.400G1G500A + 0.300GGN500K + 0.300GGN500L                 : ARR( 0.162E-13, -1400., 0.0);
+{  9605} G2G5008 +PERO3              =  0.460G1G500A + 0.270GGN500K + 0.270GGN500L                 : ARR( 0.488E-13, -1250., 0.0);
+{  9606} G2G5008 +PERO5              =  0.460G1G500A + 0.270GGN500K + 0.270GGN500L                 : ARR( 0.183E-11,   450., 0.0);
+{  9607} G2G5008 +PERO6              =  0.300G1G500A + 0.350GGN500K + 0.350GGN500L                 : ARR( 0.168E-13, -1300., 0.0);
+{  9608} G2G5008 +PERO9              =  0.650G1G500A + 0.350GGN500L                                : ARR( 0.100E-10,     0., 0.0);
+{  9609} G2G5009 +GNO                =       G1G500B +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  9610} G2G5009 +GNO                =       GGN500E                                               : ARR( 0.182E-12,  -360., 0.0);
+{  9611} G2G5009 +GHO2               =       GGH500D                                               : ARR( 0.242E-12, -1250., 0.0);
+{  9612} G2G5009 +GNO3               =       G1G500B +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  9613} G2G5009 +MEPERO             =  0.340G1G500B + 0.330GGN500J + 0.330GGN500M                 : ARR( 0.565E-13,  -845., 0.0);
+{  9614} G2G5009 +PERO1              =  0.460G1G500B + 0.270GGN500J + 0.270GGN500M                 : ARR( 0.434E-13,  -900., 0.0);
+{  9615} G2G5009 +PERO2              =  0.400G1G500B + 0.300GGN500J + 0.300GGN500M                 : ARR( 0.162E-13, -1400., 0.0);
+{  9616} G2G5009 +PERO3              =  0.460G1G500B + 0.270GGN500J + 0.270GGN500M                 : ARR( 0.488E-13, -1250., 0.0);
+{  9617} G2G5009 +PERO5              =  0.460G1G500B + 0.270GGN500J + 0.270GGN500M                 : ARR( 0.183E-11,   450., 0.0);
+{  9618} G2G5009 +PERO6              =  0.300G1G500B + 0.350GGN500J + 0.350GGN500M                 : ARR( 0.168E-13, -1300., 0.0);
+{  9619} G2G5009 +PERO9              =  0.650G1G500B + 0.350GGN500M                                : ARR( 0.100E-10,     0., 0.0);
+{  9620} G1G5009                     =       G2G500A                                               : ARR( 0.160E+12,  3221., 0.0);
+{  9621} G1G5009                     =       GGD4000 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4799., 0.0);
+{  9622} G1G500A                     =       GND2000 +      GGD3000 +      GHO2                    : ARR( 0.200E+15,  2937., 0.0);
+{  9623} G1G500B                     =       GND4003 +      GCO     +      GHO2                    : ARR( 0.200E+15,  4949., 0.0);
+{  9624} G2G500A +GNO                =       G1G500C +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  9625} G2G500A +GNO                =       GGN500H                                               : ARR( 0.182E-12,  -360., 0.0);
+{  9626} G2G500A +GHO2               =       GGH500A                                               : ARR( 0.242E-12, -1250., 0.0);
+{  9627} G2G500A +GNO3               =       G1G500C +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  9628} G2G500A +MEPERO             =  0.340G1G500C + 0.330GGO5005 + 0.330GGK5006                 : ARR( 0.565E-13,  -845., 0.0);
+{  9629} G2G500A +PERO1              =  0.460G1G500C + 0.270GGO5005 + 0.270GGK5006                 : ARR( 0.434E-13,  -900., 0.0);
+{  9630} G2G500A +PERO2              =  0.400G1G500C + 0.300GGO5005 + 0.300GGK5006                 : ARR( 0.162E-13, -1400., 0.0);
+{  9631} G2G500A +PERO3              =  0.460G1G500C + 0.270GGO5005 + 0.270GGK5006                 : ARR( 0.488E-13, -1250., 0.0);
+{  9632} G2G500A +PERO5              =  0.460G1G500C + 0.270GGO5005 + 0.270GGK5006                 : ARR( 0.183E-11,   450., 0.0);
+{  9633} G2G500A +PERO6              =  0.300G1G500C + 0.350GGO5005 + 0.350GGK5006                 : ARR( 0.168E-13, -1300., 0.0);
+{  9634} G2G500A +PERO9              =  0.650G1G500C + 0.350GGK5006                                : ARR( 0.100E-10,     0., 0.0);
+{  9635} G1G500C                     =       GGD5002 +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{  9636} G1G500C                     =       GDO4002 +      GCO     +      GHO2                    : ARR( 0.200E+15,  4949., 0.0);
+{  9637} GAN5001 +GHO                =       G2A5009                                               : ARR( 0.663E-12,     0., 0.0);
+{  9638} GAN5001 +GHO                =       G2A500A                                               : ARR( 0.147E-11,     0., 0.0);
+{  9639} GAN5001 +GHO                =       GAN500E +      GHO2                                   : ARR( 0.214E-11,     0., 0.0);
+{  9640} GAN5001 +GHO                =       G2N4001 +      GCO2                                   : ARR( 0.541E-12,     0., 0.0);
+{  9641} GAN5001+HV               =       G1A500A +      GNO2                                   :  0.100E+01*SUN;
+{  9642} G2A5009 +GNO                =       G1A500B +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  9643} G2A5009 +GNO                =       GAN500G                                               : ARR( 0.182E-12,  -360., 0.0);
+{  9644} G2A5009 +GHO2               =       GAH500D                                               : ARR( 0.242E-12, -1250., 0.0);
+{  9645} G2A5009 +GNO3               =       G1A500B +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  9646} G2A5009 +MEPERO             =  0.340G1A500B + 0.330GAN500J + 0.330GAN500M                 : ARR( 0.565E-13,  -845., 0.0);
+{  9647} G2A5009 +PERO1              =  0.460G1A500B + 0.270GAN500J + 0.270GAN500M                 : ARR( 0.434E-13,  -900., 0.0);
+{  9648} G2A5009 +PERO2              =  0.400G1A500B + 0.300GAN500J + 0.300GAN500M                 : ARR( 0.162E-13, -1400., 0.0);
+{  9649} G2A5009 +PERO3              =  0.460G1A500B + 0.270GAN500J + 0.270GAN500M                 : ARR( 0.488E-13, -1250., 0.0);
+{  9650} G2A5009 +PERO5              =  0.460G1A500B + 0.270GAN500J + 0.270GAN500M                 : ARR( 0.183E-11,   450., 0.0);
+{  9651} G2A5009 +PERO6              =  0.300G1A500B + 0.350GAN500J + 0.350GAN500M                 : ARR( 0.168E-13, -1300., 0.0);
+{  9652} G2A5009 +PERO9              =  0.650G1A500B + 0.350GAN500M                                : ARR( 0.100E-10,     0., 0.0);
+{  9653} G2A500A +GNO                =       G1A500C +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  9654} G2A500A +GNO                =       GAN500H                                               : ARR( 0.182E-12,  -360., 0.0);
+{  9655} G2A500A +GHO2               =       GAH500C                                               : ARR( 0.242E-12, -1250., 0.0);
+{  9656} G2A500A +GNO3               =       G1A500C +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  9657} G2A500A +MEPERO             =  0.340G1A500C + 0.330GAN500K + 0.330GAN500L                 : ARR( 0.565E-13,  -845., 0.0);
+{  9658} G2A500A +PERO1              =  0.460G1A500C + 0.270GAN500K + 0.270GAN500L                 : ARR( 0.434E-13,  -900., 0.0);
+{  9659} G2A500A +PERO2              =  0.400G1A500C + 0.300GAN500K + 0.300GAN500L                 : ARR( 0.162E-13, -1400., 0.0);
+{  9660} G2A500A +PERO3              =  0.460G1A500C + 0.270GAN500K + 0.270GAN500L                 : ARR( 0.488E-13, -1250., 0.0);
+{  9661} G2A500A +PERO5              =  0.460G1A500C + 0.270GAN500K + 0.270GAN500L                 : ARR( 0.183E-11,   450., 0.0);
+{  9662} G2A500A +PERO6              =  0.300G1A500C + 0.350GAN500K + 0.350GAN500L                 : ARR( 0.168E-13, -1300., 0.0);
+{  9663} G2A500A +PERO9              =  0.650G1A500C + 0.350GAN500L                                : ARR( 0.100E-10,     0., 0.0);
+{  9664} G1A500A                     =       G2A500B                                               : ARR( 0.160E+12,  3356., 0.0);
+{  9665} G1A500A                     =       GAD4000 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4799., 0.0);
+{  9666} G1A500B                     =       GCO     +      GND4003 +      GHO                     : ARR( 0.200E+15,  4918., 0.0);
+{  9667} G1A500C                     =       GAD3000 +      GND2000 +      GHO2                    : ARR( 0.200E+15,  2937., 0.0);
+{  9668} G2A500B +GNO                =       G1A500D +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  9669} G2A500B +GNO                =       GAN500I                                               : ARR( 0.182E-12,  -360., 0.0);
+{  9670} G2A500B +GHO2               =       GAH500A                                               : ARR( 0.242E-12, -1250., 0.0);
+{  9671} G2A500B +GNO3               =       G1A500D +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  9672} G2A500B +MEPERO             =  0.340G1A500D + 0.330GAO5005 + 0.330GAK5006                 : ARR( 0.565E-13,  -845., 0.0);
+{  9673} G2A500B +PERO1              =  0.460G1A500D + 0.270GAO5005 + 0.270GAK5006                 : ARR( 0.434E-13,  -900., 0.0);
+{  9674} G2A500B +PERO2              =  0.400G1A500D + 0.300GAO5005 + 0.300GAK5006                 : ARR( 0.162E-13, -1400., 0.0);
+{  9675} G2A500B +PERO3              =  0.460G1A500D + 0.270GAO5005 + 0.270GAK5006                 : ARR( 0.488E-13, -1250., 0.0);
+{  9676} G2A500B +PERO5              =  0.460G1A500D + 0.270GAO5005 + 0.270GAK5006                 : ARR( 0.183E-11,   450., 0.0);
+{  9677} G2A500B +PERO6              =  0.300G1A500D + 0.350GAO5005 + 0.350GAK5006                 : ARR( 0.168E-13, -1300., 0.0);
+{  9678} G2A500B +PERO9              =  0.650G1A500D + 0.350GAK5006                                : ARR( 0.100E-10,     0., 0.0);
+{  9679} G1A500D                     =       GAD5003 +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{  9680} G1A500D                     =       GDO4002 +      GCO     +      GHO                     : ARR( 0.200E+15,  4918., 0.0);
+{  9681} GPN5001                     =       G3N5001 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{  9682} GPN5001 +GHO                =       GPN500B +      GHO2                                   : ARR( 0.215E-11,     0., 0.0);
+{  9683} GPN5001 +GHO                =       G2P5009                                               : ARR( 0.147E-11,     0., 0.0);
+{  9684} GPN5001 +GHO                =       G2P500A                                               : ARR( 0.899E-12,     0., 0.0);
+{  9685} GPN5001+HV               =       G1P500A +      GNO2                                   :  0.100E+01*SUN;
+{  9686} GPN5001+HV               =       G3N5001 +      GNO2                                   :  0.100E+01*SUN;
+{  9687} G2P5009 +GNO                =       G1P500B +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  9688} G2P5009 +GNO                =       GPN500H                                               : ARR( 0.182E-12,  -360., 0.0);
+{  9689} G2P5009 +GHO2               =       GPH500C                                               : ARR( 0.242E-12, -1250., 0.0);
+{  9690} G2P5009 +GNO3               =       G1P500B +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  9691} G2P5009 +MEPERO             =  0.340G1P500B + 0.330GPN500K + 0.330GPN500L                 : ARR( 0.565E-13,  -845., 0.0);
+{  9692} G2P5009 +PERO1              =  0.460G1P500B + 0.270GPN500K + 0.270GPN500L                 : ARR( 0.434E-13,  -900., 0.0);
+{  9693} G2P5009 +PERO2              =  0.400G1P500B + 0.300GPN500K + 0.300GPN500L                 : ARR( 0.162E-13, -1400., 0.0);
+{  9694} G2P5009 +PERO3              =  0.460G1P500B + 0.270GPN500K + 0.270GPN500L                 : ARR( 0.488E-13, -1250., 0.0);
+{  9695} G2P5009 +PERO5              =  0.460G1P500B + 0.270GPN500K + 0.270GPN500L                 : ARR( 0.183E-11,   450., 0.0);
+{  9696} G2P5009 +PERO6              =  0.300G1P500B + 0.350GPN500K + 0.350GPN500L                 : ARR( 0.168E-13, -1300., 0.0);
+{  9697} G2P5009 +PERO9              =  0.650G1P500B + 0.350GPN500L                                : ARR( 0.100E-10,     0., 0.0);
+{  9698} G2P500A +GNO                =       G1P500C +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  9699} G2P500A +GNO                =       GPN500G                                               : ARR( 0.182E-12,  -360., 0.0);
+{  9700} G2P500A +GHO2               =       GPH500D                                               : ARR( 0.242E-12, -1250., 0.0);
+{  9701} G2P500A +GNO3               =       G1P500C +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  9702} G2P500A +MEPERO             =  0.340G1P500C + 0.330GPN500J + 0.330GPN500M                 : ARR( 0.565E-13,  -845., 0.0);
+{  9703} G2P500A +PERO1              =  0.460G1P500C + 0.270GPN500J + 0.270GPN500M                 : ARR( 0.434E-13,  -900., 0.0);
+{  9704} G2P500A +PERO2              =  0.400G1P500C + 0.300GPN500J + 0.300GPN500M                 : ARR( 0.162E-13, -1400., 0.0);
+{  9705} G2P500A +PERO3              =  0.460G1P500C + 0.270GPN500J + 0.270GPN500M                 : ARR( 0.488E-13, -1250., 0.0);
+{  9706} G2P500A +PERO5              =  0.460G1P500C + 0.270GPN500J + 0.270GPN500M                 : ARR( 0.183E-11,   450., 0.0);
+{  9707} G2P500A +PERO6              =  0.300G1P500C + 0.350GPN500J + 0.350GPN500M                 : ARR( 0.168E-13, -1300., 0.0);
+{  9708} G2P500A +PERO9              =  0.650G1P500C + 0.350GPN500M                                : ARR( 0.100E-10,     0., 0.0);
+{  9709} G1P500A                     =       G2P500B                                               : ARR( 0.160E+12,  3221., 0.0);
+{  9710} G1P500A                     =       GPD4000 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4799., 0.0);
+{  9711} G1P500B                     =       GND2000 +      GPD3000 +      GHO2                    : ARR( 0.200E+15,  2937., 0.0);
+{  9712} G1P500C                     =       GND4003 +      GCO     +      GNO2                    : ARR( 0.200E+15,  4949., 0.0);
+{  9713} G2P500B +GNO                =       G1P500D +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  9714} G2P500B +GNO                =       GPN500I                                               : ARR( 0.182E-12,  -360., 0.0);
+{  9715} G2P500B +GHO2               =       GPH500A                                               : ARR( 0.242E-12, -1250., 0.0);
+{  9716} G2P500B +GNO3               =       G1P500D +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  9717} G2P500B +MEPERO             =  0.340G1P500D + 0.330GPO5005 + 0.330GPK5006                 : ARR( 0.565E-13,  -845., 0.0);
+{  9718} G2P500B +PERO1              =  0.460G1P500D + 0.270GPO5005 + 0.270GPK5006                 : ARR( 0.434E-13,  -900., 0.0);
+{  9719} G2P500B +PERO2              =  0.400G1P500D + 0.300GPO5005 + 0.300GPK5006                 : ARR( 0.162E-13, -1400., 0.0);
+{  9720} G2P500B +PERO3              =  0.460G1P500D + 0.270GPO5005 + 0.270GPK5006                 : ARR( 0.488E-13, -1250., 0.0);
+{  9721} G2P500B +PERO5              =  0.460G1P500D + 0.270GPO5005 + 0.270GPK5006                 : ARR( 0.183E-11,   450., 0.0);
+{  9722} G2P500B +PERO6              =  0.300G1P500D + 0.350GPO5005 + 0.350GPK5006                 : ARR( 0.168E-13, -1300., 0.0);
+{  9723} G2P500B +PERO9              =  0.650G1P500D + 0.350GPK5006                                : ARR( 0.100E-10,     0., 0.0);
+{  9724} G1P500D                     =       GPD5002 +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{  9725} G1P500D                     =       GDO4002 +      GCO     +      GNO2                    : ARR( 0.200E+15,  4949., 0.0);
+{  9726} GDD4000 +GHO                =       G3D4000                                               : ARR( 0.416E-10,     0., 0.0);
+{  9727} GDD4000 +GHO                =       G2D4005                                               : ARR( 0.546E-11,     0., 0.0);
+{  9728} GDD4000 +GNO3               =       G3D4000 +      GHNO3                                  : ARR( 0.240E-13,     0., 0.0);
+{  9729} GDD4000+HV               =       GCO     +      G2D3001 +      GHO2                    :  0.200E+01*SUN;
+{  9730} G2D4005 +GNO                =       G1D4007 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  9731} G2D4005 +GNO                =       GND400D                                               : ARR( 0.111E-12,  -360., 0.0);
+{  9732} G2D4005 +GHO2               =       GHD400C                                               : ARR( 0.214E-12, -1250., 0.0);
+{  9733} G2D4005 +GNO3               =       G1D4007 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  9734} G2D4005 +MEPERO             =  0.340G1D4007 + 0.330GDD4001 + 0.330GDD4002                 : ARR( 0.565E-13,  -845., 0.0);
+{  9735} G2D4005 +PERO1              =  0.460G1D4007 + 0.270GDD4001 + 0.270GDD4002                 : ARR( 0.434E-13,  -900., 0.0);
+{  9736} G2D4005 +PERO2              =  0.400G1D4007 + 0.300GDD4001 + 0.300GDD4002                 : ARR( 0.162E-13, -1400., 0.0);
+{  9737} G2D4005 +PERO3              =  0.460G1D4007 + 0.270GDD4001 + 0.270GDD4002                 : ARR( 0.488E-13, -1250., 0.0);
+{  9738} G2D4005 +PERO5              =  0.460G1D4007 + 0.270GDD4001 + 0.270GDD4002                 : ARR( 0.183E-11,   450., 0.0);
+{  9739} G2D4005 +PERO6              =  0.300G1D4007 + 0.350GDD4001 + 0.350GDD4002                 : ARR( 0.168E-13, -1300., 0.0);
+{  9740} G2D4005 +PERO9              =  0.650G1D4007 + 0.350GDD4002                                : ARR( 0.100E-10,     0., 0.0);
+{  9741} G1D4007                     =       GDD3000 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5054., 0.0);
+{  9742} GNN4002 +GHO                =       G2N400M                                               : ARR( 0.293E-12,     0., 0.0);
+{  9743} GNN4002 +GHO                =       GNN400C +      GHO2                                   : ARR( 0.214E-11,     0., 0.0);
+{  9744} GNN4002 +GHO                =       G1N400F                                               : ARR( 0.218E-17,    85., 2.0);
+{  9745} GNN4002+HV               =       G1N4001 +      GNO2                                   :  0.100E+01*SUN;
+{  9746} GNN4002+HV               =       G1N400D +      GNO2                                   :  0.100E+01*SUN;
+{  9747} G2N400M +GNO                =       G1N400N +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  9748} G2N400M +GNO                =       GNN400H                                               : ARR( 0.111E-12,  -360., 0.0);
+{  9749} G2N400M +GHO2               =       GHN400S                                               : ARR( 0.214E-12, -1250., 0.0);
+{  9750} G2N400M +GNO3               =       G1N400N +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  9751} G2N400M +MEPERO             =  0.340G1N400N + 0.330GNN400I + 0.330GNN400J                 : ARR( 0.565E-13,  -845., 0.0);
+{  9752} G2N400M +PERO1              =  0.460G1N400N + 0.270GNN400I + 0.270GNN400J                 : ARR( 0.434E-13,  -900., 0.0);
+{  9753} G2N400M +PERO2              =  0.400G1N400N + 0.300GNN400I + 0.300GNN400J                 : ARR( 0.162E-13, -1400., 0.0);
+{  9754} G2N400M +PERO3              =  0.460G1N400N + 0.270GNN400I + 0.270GNN400J                 : ARR( 0.488E-13, -1250., 0.0);
+{  9755} G2N400M +PERO5              =  0.460G1N400N + 0.270GNN400I + 0.270GNN400J                 : ARR( 0.183E-11,   450., 0.0);
+{  9756} G2N400M +PERO6              =  0.300G1N400N + 0.350GNN400I + 0.350GNN400J                 : ARR( 0.168E-13, -1300., 0.0);
+{  9757} G2N400M +PERO9              =  0.650G1N400N + 0.350GNN400J                                : ARR( 0.100E-10,     0., 0.0);
+{  9758} G1N400N                     =  2.000GND2000 +      GHO2                                   : ARR( 0.200E+15,  3632., 0.0);
+{  9759} GHN4002 +GHO                =       GHN400Q +      GHO2                                   : ARR( 0.208E-11,     0., 0.0);
+{  9760} GHN4002 +GHO                =       G2H400G                                               : ARR( 0.142E-11,     0., 0.0);
+{  9761} GHN4002 +GHO                =       GND4003 +      GHO                                    : ARR( 0.162E-10,     0., 0.0);
+{  9762} GHN4002 +GHO                =       G2N4001                                               : ARR( 0.192E-11,  -190., 0.0);
+{  9763} GHN4002+HV               =       G1H400I +      GNO2                                   :  0.100E+01*SUN;
+{  9764} GHN4002+HV               =       G1N4001 +      GHO                                    :  0.100E+01*SUN;
+{  9765} G2H400G +GNO                =       G1H400J +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{  9766} G2H400G +GNO                =       GHN400N                                               : ARR( 0.111E-12,  -360., 0.0);
+{  9767} G2H400G +GHO2               =       GHH400C                                               : ARR( 0.214E-12, -1250., 0.0);
+{  9768} G2H400G +GNO3               =       G1H400J +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  9769} G2H400G +MEPERO             =  0.340G1H400J + 0.330GHN400U + 0.330GHN400W                 : ARR( 0.565E-13,  -845., 0.0);
+{  9770} G2H400G +PERO1              =  0.460G1H400J + 0.270GHN400U + 0.270GHN400W                 : ARR( 0.434E-13,  -900., 0.0);
+{  9771} G2H400G +PERO2              =  0.400G1H400J + 0.300GHN400U + 0.300GHN400W                 : ARR( 0.162E-13, -1400., 0.0);
+{  9772} G2H400G +PERO3              =  0.460G1H400J + 0.270GHN400U + 0.270GHN400W                 : ARR( 0.488E-13, -1250., 0.0);
+{  9773} G2H400G +PERO5              =  0.460G1H400J + 0.270GHN400U + 0.270GHN400W                 : ARR( 0.183E-11,   450., 0.0);
+{  9774} G2H400G +PERO6              =  0.300G1H400J + 0.350GHN400U + 0.350GHN400W                 : ARR( 0.168E-13, -1300., 0.0);
+{  9775} G2H400G +PERO9              =  0.650G1H400J + 0.350GHN400W                                : ARR( 0.100E-10,     0., 0.0);
+{  9776} G1H400I                     =       GDO4002 +      GHO                                    : ARR( 0.160E+12,  2186., 0.0);
+{  9777} G1H400I                     =       GHD3000 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4799., 0.0);
+{  9778} G1H400J                     =       GND2000 +      GHD2000 +      GHO2                    : ARR( 0.200E+15,  3635., 0.0);
+{  9779} GDK5005 +GHO                =       GDD5007 +      GHO2                                   : ARR( 0.411E-11,     0., 0.0);
+{  9780} GDK5005 +GHO                =       GDK500M +      GHO2                                   : ARR( 0.334E-10,     0., 0.0);
+{  9781} GDK5005 +GHO                =       G3K4005 +      GCO                                    : ARR( 0.130E-10,     0., 0.0);
+{  9782} GDK5005 +GNO3               =       G3K4005 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{  9783} GDK5005+HV               =       G3K4005 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{  9784} GDK5005+HV               =       GDO4002 +      GCO                                    :  0.100E+01*SUN;
+{  9785} GDK5005+HV               =       GOO3000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{  9786} GDD5001 +GHO                =       G3D5002                                               : ARR( 0.417E-10,     0., 0.0);
+{  9787} GDD5001 +GHO                =       GDD5007 +      GHO2                                   : ARR( 0.126E-10,     0., 0.0);
+{  9788} GDD5001 +GHO                =       G2D500J                                               : ARR( 0.143E-10,     0., 0.0);
+{  9789} GDD5001 +GNO3               =       G3D5002 +      GHNO3                                  : ARR( 0.240E-13,     0., 0.0);
+{  9790} GDD5001+HV               =       GCO     +      GDD4001 + 2.000GHO2                    :  0.200E+01*SUN;
+{  9791} G3D5002 +GHO2               =  0.800GGD5002 + 0.200GAD5003 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  9792} G3D5002 +GNO                =       GDD4001 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{  9793} G3D5002 +GNO2               =       GPD5002                                               : ARR( 0.330E-08,     0.,-1.0);
+{  9794} G3D5002 +GNO3               =       GDD4001 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{  9795} G3D5002 +MEPERO             =  0.685GDD4001 + 0.315GAD5003 + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  9796} G3D5002 +PERO1              =  0.800GDD4001 + 0.200GAD5003 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  9797} G3D5002 +PERO2              =  0.750GDD4001 + 0.250GAD5003 + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  9798} G3D5002 +PERO3              =  0.800GDD4001 + 0.200GAD5003 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  9799} G3D5002 +PERO5              =  0.650GDD4001 + 0.350GAD5003 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  9800} G3D5002 +PERO6              =  0.650GDD4001 + 0.350GAD5003 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  9801} G3D5002 +PERO9              =       GDD4001 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{  9802} G2D500J +GNO                =       G1D500R +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  9803} G2D500J +GNO                =       GND500s                                               : ARR( 0.182E-12,  -360., 0.0);
+{  9804} G2D500J +GHO2               =       GHD500i                                               : ARR( 0.242E-12, -1250., 0.0);
+{  9805} G2D500J +GNO3               =       G1D500R +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  9806} G2D500J +MEPERO             =  0.340G1D500R + 0.330GDD5006 + 0.330GDD5008                 : ARR( 0.565E-13,  -845., 0.0);
+{  9807} G2D500J +PERO1              =  0.460G1D500R + 0.270GDD5006 + 0.270GDD5008                 : ARR( 0.434E-13,  -900., 0.0);
+{  9808} G2D500J +PERO2              =  0.400G1D500R + 0.300GDD5006 + 0.300GDD5008                 : ARR( 0.162E-13, -1400., 0.0);
+{  9809} G2D500J +PERO3              =  0.460G1D500R + 0.270GDD5006 + 0.270GDD5008                 : ARR( 0.488E-13, -1250., 0.0);
+{  9810} G2D500J +PERO5              =  0.460G1D500R + 0.270GDD5006 + 0.270GDD5008                 : ARR( 0.183E-11,   450., 0.0);
+{  9811} G2D500J +PERO6              =  0.300G1D500R + 0.350GDD5006 + 0.350GDD5008                 : ARR( 0.168E-13, -1300., 0.0);
+{  9812} G2D500J +PERO9              =  0.650G1D500R + 0.350GDD5008                                : ARR( 0.100E-10,     0., 0.0);
+{  9813} G1D500R                     =       GDD2000 +      GDD3001 +      GHO2                    : ARR( 0.400E+15,  2877., 0.0);
+{  9814} GND500G +GHO                =       G2N5034                                               : ARR( 0.126E-11,     0., 0.0);
+{  9815} GND500G +GHO                =       G3N500I                                               : ARR( 0.456E-11,     0., 0.0);
+{  9816} GND500G +GNO3               =       G3N500I +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{  9817} GND500G+HV               =       G1D500S +      GNO2                                   :  0.100E+01*SUN;
+{  9818} GND500G+HV               =       GD04000 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{  9819} GND500G+HV               =       GU03000 +      GND2000                                :  0.100E+01*SUN;
+{  9820} G2N5034 +GNO                =       G1N503O +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  9821} G2N5034 +GNO                =       GNN500s                                               : ARR( 0.182E-12,  -360., 0.0);
+{  9822} G2N5034 +GHO2               =       GHN5043                                               : ARR( 0.242E-12, -1250., 0.0);
+{  9823} G2N5034 +GNO3               =       G1N503O +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  9824} G2N5034 +MEPERO             =  0.480G1N503O + 0.260GND5004 + 0.260GND500L                 : ARR( 0.616E-11,   905., 0.0);
+{  9825} G2N5034 +PERO1              =  0.600G1N503O + 0.200GND5004 + 0.200GND500L                 : ARR( 0.473E-11,   850., 0.0);
+{  9826} G2N5034 +PERO2              =  0.560G1N503O + 0.220GND5004 + 0.220GND500L                 : ARR( 0.177E-11,   350., 0.0);
+{  9827} G2N5034 +PERO3              =  0.600G1N503O + 0.200GND5004 + 0.200GND500L                 : ARR( 0.533E-11,   500., 0.0);
+{  9828} G2N5034 +PERO5              =  0.600G1N503O + 0.200GND5004 + 0.200GND500L                 : ARR( 0.200E-09,  2200., 0.0);
+{  9829} G2N5034 +PERO6              =  0.460G1N503O + 0.270GND5004 + 0.270GND500L                 : ARR( 0.183E-11,   450., 0.0);
+{  9830} G2N5034 +PERO9              =  0.800G1N503O + 0.200GND500L                                : ARR( 0.100E-10,     0., 0.0);
+{  9831} G3N500I +GHO2               =  0.800GGN5004 + 0.200GAN5004 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  9832} G3N500I +GNO                =       GD04000 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{  9833} G3N500I +GNO2               =       GPN5004                                               : ARR( 0.330E-08,     0.,-1.0);
+{  9834} G3N500I +GNO3               =       GD04000 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{  9835} G3N500I +MEPERO             =  0.685GD04000 + 0.315GAN5004 + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  9836} G3N500I +PERO1              =  0.800GD04000 + 0.200GAN5004 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  9837} G3N500I +PERO2              =  0.750GD04000 + 0.250GAN5004 + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  9838} G3N500I +PERO3              =  0.800GD04000 + 0.200GAN5004 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  9839} G3N500I +PERO5              =  0.650GD04000 + 0.350GAN5004 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  9840} G3N500I +PERO6              =  0.650GD04000 + 0.350GAN5004 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  9841} G3N500I +PERO9              =       GD04000 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{  9842} G1D500S                     =       G2D500K                                               : ARR( 0.240E+12,  4177., 0.0);
+{  9843} G1D500S                     =       GD04000 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5437., 0.0);
+{  9844} G1N503O                     =       G3N5004                                               : ARR( 0.800E+11,  5278., 0.0);
+{  9845} G1N503O                     =       GD02000 +      G2N300A                                : ARR( 0.200E+15,  6864., 0.0);
+{  9846} G2D500K +GNO                =       G1D500T +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  9847} G2D500K +GNO                =       GND500H                                               : ARR( 0.182E-12,  -360., 0.0);
+{  9848} G2D500K +GHO2               =       GHD5009                                               : ARR( 0.242E-12, -1250., 0.0);
+{  9849} G2D500K +GNO3               =       G1D500T +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  9850} G2D500K +MEPERO             =  0.480G1D500T + 0.260GDO5006 + 0.260GDD5000                 : ARR( 0.146E-12,  -445., 0.0);
+{  9851} G2D500K +PERO1              =  0.600G1D500T + 0.200GDO5006 + 0.200GDD5000                 : ARR( 0.112E-12,  -500., 0.0);
+{  9852} G2D500K +PERO2              =  0.560G1D500T + 0.220GDO5006 + 0.220GDD5000                 : ARR( 0.418E-13, -1000., 0.0);
+{  9853} G2D500K +PERO3              =  0.600G1D500T + 0.200GDO5006 + 0.200GDD5000                 : ARR( 0.126E-12,  -850., 0.0);
+{  9854} G2D500K +PERO5              =  0.600G1D500T + 0.200GDO5006 + 0.200GDD5000                 : ARR( 0.473E-11,   850., 0.0);
+{  9855} G2D500K +PERO6              =  0.460G1D500T + 0.270GDO5006 + 0.270GDD5000                 : ARR( 0.434E-13,  -900., 0.0);
+{  9856} G2D500K +PERO9              =  0.800G1D500T + 0.200GDD5000                                : ARR( 0.100E-10,     0., 0.0);
+{  9857} G2N300A +GNO                =       G1N300A +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{  9858} G2N300A +GNO                =       GNN3005                                               : ARR( 0.622E-13,  -360., 0.0);
+{  9859} G2N300A +GHO2               =       GHN300A                                               : ARR( 0.179E-12, -1250., 0.0);
+{  9860} G2N300A +GNO3               =       G1N300A +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  9861} G2N300A +MEPERO             =  0.480G1N300A + 0.260GND3004 + 0.260GND3005                 : ARR( 0.164E-12,  -795., 0.0);
+{  9862} G2N300A +PERO1              =  0.600G1N300A + 0.200GND3004 + 0.200GND3005                 : ARR( 0.126E-12,  -850., 0.0);
+{  9863} G2N300A +PERO2              =  0.560G1N300A + 0.220GND3004 + 0.220GND3005                 : ARR( 0.471E-13, -1350., 0.0);
+{  9864} G2N300A +PERO3              =  0.600G1N300A + 0.200GND3004 + 0.200GND3005                 : ARR( 0.142E-12, -1200., 0.0);
+{  9865} G2N300A +PERO5              =  0.600G1N300A + 0.200GND3004 + 0.200GND3005                 : ARR( 0.533E-11,   500., 0.0);
+{  9866} G2N300A +PERO6              =  0.460G1N300A + 0.270GND3004 + 0.270GND3005                 : ARR( 0.488E-13, -1250., 0.0);
+{  9867} G2N300A +PERO9              =  0.800G1N300A + 0.200GND3005                                : ARR( 0.100E-10,     0., 0.0);
+{  9868} G1D500T                     =       GDK5004 +      GHO2                                   : ARR( 0.800E+11,  2246., 0.0);
+{  9869} GHN501D +GHO                =       GNN500s +      GHO                                    : ARR( 0.336E-11,     0., 0.0);
+{  9870} GHN501D +GHO                =       G2N5012                                               : ARR( 0.198E-11,  -190., 0.0);
+{  9871} GHN501D+HV               =       G1H500M +      GNO2                                   :  0.100E+01*SUN;
+{  9872} GHN501D+HV               =       G1H500R +      GNO2                                   :  0.100E+01*SUN;
+{  9873} GHN501D+HV               =       G1N5013 +      GHO                                    :  0.100E+01*SUN;
+{  9874} GHH500G +GHO                =       GHN501E +      GHO                                    : ARR( 0.339E-10,     0., 0.0);
+{  9875} GHH500G +GHO                =       GHN5043 +      GHO                                    : ARR( 0.326E-11,     0., 0.0);
+{  9876} GHH500G +GHO                =       G2H500H                                               : ARR( 0.192E-11,  -190., 0.0);
+{  9877} GHH500G +GHO                =       G2H501N                                               : ARR( 0.192E-11,  -190., 0.0);
+{  9878} GHH500G+HV               =       G1H500M +      GHO                                    :  0.100E+01*SUN;
+{  9879} GHH500G+HV               =       G1H502W +      GNO2                                   :  0.100E+01*SUN;
+{  9880} GHH500G+HV               =       G1H501Z +      GHO                                    :  0.100E+01*SUN;
+{  9881} G2H501N +GNO                =       G1H501Z +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  9882} G2H501N +GNO                =       GHN500j                                               : ARR( 0.182E-12,  -360., 0.0);
+{  9883} G2H501N +GHO2               =       GHH500G                                               : ARR( 0.242E-12, -1250., 0.0);
+{  9884} G2H501N +GNO3               =       G1H501Z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  9885} G2H501N +MEPERO             =  0.480G1H501Z + 0.260GHN500l + 0.260GHN5043                 : ARR( 0.164E-12,  -795., 0.0);
+{  9886} G2H501N +PERO1              =  0.600G1H501Z + 0.200GHN500l + 0.200GHN5043                 : ARR( 0.126E-12,  -850., 0.0);
+{  9887} G2H501N +PERO2              =  0.560G1H501Z + 0.220GHN500l + 0.220GHN5043                 : ARR( 0.471E-13, -1350., 0.0);
+{  9888} G2H501N +PERO3              =  0.600G1H501Z + 0.200GHN500l + 0.200GHN5043                 : ARR( 0.142E-12, -1200., 0.0);
+{  9889} G2H501N +PERO5              =  0.600G1H501Z + 0.200GHN500l + 0.200GHN5043                 : ARR( 0.533E-11,   500., 0.0);
+{  9890} G2H501N +PERO6              =  0.460G1H501Z + 0.270GHN500l + 0.270GHN5043                 : ARR( 0.488E-13, -1250., 0.0);
+{  9891} G2H501N +PERO9              =  0.800G1H501Z + 0.200GHN5043                                : ARR( 0.100E-10,     0., 0.0);
+{  9892} G1H502W                     =       G2H501O                                               : ARR( 0.240E+12,  4177., 0.0);
+{  9893} G1H502W                     =       G2H3003 +      GHD2000                                : ARR( 0.200E+15,  6985., 0.0);
+{  9894} G1H502W                     =       GHD4002 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  7140., 0.0);
+{  9895} G2H501O +GNO                =       G1H502X +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  9896} G2H501O +GNO                =       GHH501L                                               : ARR( 0.182E-12,  -360., 0.0);
+{  9897} G2H501O +GHO2               =       GHH501M                                               : ARR( 0.242E-12, -1250., 0.0);
+{  9898} G2H501O +GNO3               =       G1H502X +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  9899} G2H501O +MEPERO             =  0.480G1H502X + 0.260GHH501N + 0.260GHH501O                 : ARR( 0.164E-12,  -795., 0.0);
+{  9900} G2H501O +PERO1              =  0.600G1H502X + 0.200GHH501N + 0.200GHH501O                 : ARR( 0.126E-12,  -850., 0.0);
+{  9901} G2H501O +PERO2              =  0.560G1H502X + 0.220GHH501N + 0.220GHH501O                 : ARR( 0.471E-13, -1350., 0.0);
+{  9902} G2H501O +PERO3              =  0.600G1H502X + 0.200GHH501N + 0.200GHH501O                 : ARR( 0.142E-12, -1200., 0.0);
+{  9903} G2H501O +PERO5              =  0.600G1H502X + 0.200GHH501N + 0.200GHH501O                 : ARR( 0.533E-11,   500., 0.0);
+{  9904} G2H501O +PERO6              =  0.460G1H502X + 0.270GHH501N + 0.270GHH501O                 : ARR( 0.488E-13, -1250., 0.0);
+{  9905} G2H501O +PERO9              =  0.800G1H502X + 0.200GHH501O                                : ARR( 0.100E-10,     0., 0.0);
+{  9906} G1H502X                     =       GHH500K +      GHO2                                   : ARR( 0.800E+11,  2025., 0.0);
+{  9907} GHN501E +GHO                =       GHK500D +      GNO2                                   : ARR( 0.388E-12,     0., 0.0);
+{  9908} GHN501E +GHO                =       GND500L +      GHO                                    : ARR( 0.334E-11,     0., 0.0);
+{  9909} GHN501E +GHO                =       G2N5016                                               : ARR( 0.197E-11,  -190., 0.0);
+{  9910} GHN501E+HV               =       G3K2000 +      G2H3008                                :  0.100E+01*SUN;
+{  9911} GHN501E+HV               =       GK03000 +      GDD2000 +      GHO     +      GNO2     :  0.100E+01*SUN;
+{  9912} GHN501E+HV               =       G1H500h +      GNO2                                   :  0.100E+01*SUN;
+{  9913} GHN501E+HV               =       G1N5017 +      GHO                                    :  0.100E+01*SUN;
+{  9914} G2H3008 +GNO                =       G1H3008 +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{  9915} G2H3008 +GNO                =       GHN3004                                               : ARR( 0.622E-13,  -360., 0.0);
+{  9916} G2H3008 +GHO2               =       GHH3006                                               : ARR( 0.179E-12, -1250., 0.0);
+{  9917} G2H3008 +GNO3               =       G1H3008 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  9918} G2H3008 +MEPERO             =  0.480G1H3008 + 0.260GHN3009 + 0.260GHN300A                 : ARR( 0.164E-12,  -795., 0.0);
+{  9919} G2H3008 +PERO1              =  0.600G1H3008 + 0.200GHN3009 + 0.200GHN300A                 : ARR( 0.126E-12,  -850., 0.0);
+{  9920} G2H3008 +PERO2              =  0.560G1H3008 + 0.220GHN3009 + 0.220GHN300A                 : ARR( 0.471E-13, -1350., 0.0);
+{  9921} G2H3008 +PERO3              =  0.600G1H3008 + 0.200GHN3009 + 0.200GHN300A                 : ARR( 0.142E-12, -1200., 0.0);
+{  9922} G2H3008 +PERO5              =  0.600G1H3008 + 0.200GHN3009 + 0.200GHN300A                 : ARR( 0.533E-11,   500., 0.0);
+{  9923} G2H3008 +PERO6              =  0.460G1H3008 + 0.270GHN3009 + 0.270GHN300A                 : ARR( 0.488E-13, -1250., 0.0);
+{  9924} G2H3008 +PERO9              =  0.800G1H3008 + 0.200GHN300A                                : ARR( 0.100E-10,     0., 0.0);
+{  9925} GHD5008 +GHO                =       G2H501P                                               : ARR( 0.459E-11,     0., 0.0);
+{  9926} GHD5008 +GHO                =       GDK5006 +      GHO                                    : ARR( 0.257E-10,     0., 0.0);
+{  9927} GHD5008 +GHO                =       G3H500B                                               : ARR( 0.213E-10,     0., 0.0);
+{  9928} GHD5008 +GHO                =       G2D500L                                               : ARR( 0.195E-11,  -190., 0.0);
+{  9929} GHD5008 +GNO3               =       G3H500B +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{  9930} GHD5008+HV               =       G1D500S +      GHO                                    :  0.100E+01*SUN;
+{  9931} GHD5008+HV               =       GD04000 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{  9932} G2H501P +GNO                =       G1H502Y +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  9933} G2H501P +GNO                =       GHN5044                                               : ARR( 0.182E-12,  -360., 0.0);
+{  9934} G2H501P +GHO2               =       GHH501P                                               : ARR( 0.242E-12, -1250., 0.0);
+{  9935} G2H501P +GNO3               =       G1H502Y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  9936} G2H501P +MEPERO             =  0.340G1H502Y + 0.330GHD500j + 0.330GHD500T                 : ARR( 0.565E-13,  -845., 0.0);
+{  9937} G2H501P +PERO1              =  0.460G1H502Y + 0.270GHD500j + 0.270GHD500T                 : ARR( 0.434E-13,  -900., 0.0);
+{  9938} G2H501P +PERO2              =  0.400G1H502Y + 0.300GHD500j + 0.300GHD500T                 : ARR( 0.162E-13, -1400., 0.0);
+{  9939} G2H501P +PERO3              =  0.460G1H502Y + 0.270GHD500j + 0.270GHD500T                 : ARR( 0.488E-13, -1250., 0.0);
+{  9940} G2H501P +PERO5              =  0.460G1H502Y + 0.270GHD500j + 0.270GHD500T                 : ARR( 0.183E-11,   450., 0.0);
+{  9941} G2H501P +PERO6              =  0.300G1H502Y + 0.350GHD500j + 0.350GHD500T                 : ARR( 0.168E-13, -1300., 0.0);
+{  9942} G2H501P +PERO9              =  0.650G1H502Y + 0.350GHD500T                                : ARR( 0.100E-10,     0., 0.0);
+{  9943} G3H500B +GHO2               =  0.800GGH5003 + 0.200GAH5003 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  9944} G3H500B +GNO                =       GD04000 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{  9945} G3H500B +GNO2               =       GPH5003                                               : ARR( 0.330E-08,     0.,-1.0);
+{  9946} G3H500B +GNO3               =       GD04000 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{  9947} G3H500B +MEPERO             =  0.685GD04000 + 0.315GAH5003 + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  9948} G3H500B +PERO1              =  0.800GD04000 + 0.200GAH5003 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  9949} G3H500B +PERO2              =  0.750GD04000 + 0.250GAH5003 + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  9950} G3H500B +PERO3              =  0.800GD04000 + 0.200GAH5003 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  9951} G3H500B +PERO5              =  0.650GD04000 + 0.350GAH5003 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  9952} G3H500B +PERO6              =  0.650GD04000 + 0.350GAH5003 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  9953} G3H500B +PERO9              =       GD04000 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{  9954} G2D500L +GNO                =       G1D500S +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  9955} G2D500L +GNO                =       GND500G                                               : ARR( 0.182E-12,  -360., 0.0);
+{  9956} G2D500L +GHO2               =       GHD5008                                               : ARR( 0.242E-12, -1250., 0.0);
+{  9957} G2D500L +GNO3               =       G1D500S +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  9958} G2D500L +MEPERO             =  0.340G1D500S + 0.330GDO5007 + 0.330GDK5006                 : ARR( 0.565E-13,  -845., 0.0);
+{  9959} G2D500L +PERO1              =  0.460G1D500S + 0.270GDO5007 + 0.270GDK5006                 : ARR( 0.434E-13,  -900., 0.0);
+{  9960} G2D500L +PERO2              =  0.400G1D500S + 0.300GDO5007 + 0.300GDK5006                 : ARR( 0.162E-13, -1400., 0.0);
+{  9961} G2D500L +PERO3              =  0.460G1D500S + 0.270GDO5007 + 0.270GDK5006                 : ARR( 0.488E-13, -1250., 0.0);
+{  9962} G2D500L +PERO5              =  0.460G1D500S + 0.270GDO5007 + 0.270GDK5006                 : ARR( 0.183E-11,   450., 0.0);
+{  9963} G2D500L +PERO6              =  0.300G1D500S + 0.350GDO5007 + 0.350GDK5006                 : ARR( 0.168E-13, -1300., 0.0);
+{  9964} G2D500L +PERO9              =  0.650G1D500S + 0.350GDK5006                                : ARR( 0.100E-10,     0., 0.0);
+{  9965} G1H502Y                     =       GD03000 +      GDD2000 +      GHO                     : ARR( 0.200E+15,  4662., 0.0);
+{  9966} GDO5007 +GHO                =       G2D500M                                               : ARR( 0.469E-11,     0., 0.0);
+{  9967} GDO5007 +GHO                =       GDK5006 +      GHO2                                   : ARR( 0.657E-11,     0., 0.0);
+{  9968} GDO5007 +GHO                =       G3K500B                                               : ARR( 0.217E-10,     0., 0.0);
+{  9969} GDO5007 +GNO3               =       G3K500B +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{  9970} GDO5007+HV               =       GD04000 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{  9971} G2D500M +GNO                =       G1D500U +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{  9972} G2D500M +GNO                =       GND500O                                               : ARR( 0.182E-12,  -360., 0.0);
+{  9973} G2D500M +GHO2               =       GHD500k                                               : ARR( 0.242E-12, -1250., 0.0);
+{  9974} G2D500M +GNO3               =       G1D500U +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{  9975} G2D500M +MEPERO             =  0.340G1D500U + 0.330GDO500C + 0.330GDK5009                 : ARR( 0.565E-13,  -845., 0.0);
+{  9976} G2D500M +PERO1              =  0.460G1D500U + 0.270GDO500C + 0.270GDK5009                 : ARR( 0.434E-13,  -900., 0.0);
+{  9977} G2D500M +PERO2              =  0.400G1D500U + 0.300GDO500C + 0.300GDK5009                 : ARR( 0.162E-13, -1400., 0.0);
+{  9978} G2D500M +PERO3              =  0.460G1D500U + 0.270GDO500C + 0.270GDK5009                 : ARR( 0.488E-13, -1250., 0.0);
+{  9979} G2D500M +PERO5              =  0.460G1D500U + 0.270GDO500C + 0.270GDK5009                 : ARR( 0.183E-11,   450., 0.0);
+{  9980} G2D500M +PERO6              =  0.300G1D500U + 0.350GDO500C + 0.350GDK5009                 : ARR( 0.168E-13, -1300., 0.0);
+{  9981} G2D500M +PERO9              =  0.650G1D500U + 0.350GDK5009                                : ARR( 0.100E-10,     0., 0.0);
+{  9982} G3K500B +GHO2               =  0.800GGO5003 + 0.200GAO5003 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{  9983} G3K500B +GNO                =       GD04000 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{  9984} G3K500B +GNO2               =       GPO5003                                               : ARR( 0.330E-08,     0.,-1.0);
+{  9985} G3K500B +GNO3               =       GD04000 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{  9986} G3K500B +MEPERO             =  0.685GD04000 + 0.315GAO5003 + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  9987} G3K500B +PERO1              =  0.800GD04000 + 0.200GAO5003 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  9988} G3K500B +PERO2              =  0.750GD04000 + 0.250GAO5003 + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  9989} G3K500B +PERO3              =  0.800GD04000 + 0.200GAO5003 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  9990} G3K500B +PERO5              =  0.650GD04000 + 0.350GAO5003 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  9991} G3K500B +PERO6              =  0.650GD04000 + 0.350GAO5003 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{  9992} G3K500B +PERO9              =       GD04000 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{  9993} G1D500U                     =       GD03000 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  3453., 0.0);
+{  9994} GDK5006 +GHO                =       G2D500N                                               : ARR( 0.387E-11,     0., 0.0);
+{  9995} GDK5006 +GHO                =       G3K4001 +      GCO                                    : ARR( 0.135E-10,     0., 0.0);
+{  9996} GDK5006 +GNO3               =       G3K4001 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{  9997} GDK5006+HV               =       G3K4001 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{  9998} GDK5006+HV               =       GD04000 +      GCO                                    :  0.100E+01*SUN;
+{  9999} GDK5006+HV               =       GC03000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 10000} G2D500N +GNO                =       G1D500W +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 10001} G2D500N +GNO                =       GND500K                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 10002} G2D500N +GHO2               =       GHD500l                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 10003} G2D500N +GNO3               =       G1D500W +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 10004} G2D500N +MEPERO             =  0.480G1D500W + 0.260GDK5001 + 0.260GDK500C                 : ARR( 0.616E-11,   905., 0.0);
+{ 10005} G2D500N +PERO1              =  0.600G1D500W + 0.200GDK5001 + 0.200GDK500C                 : ARR( 0.473E-11,   850., 0.0);
+{ 10006} G2D500N +PERO2              =  0.560G1D500W + 0.220GDK5001 + 0.220GDK500C                 : ARR( 0.177E-11,   350., 0.0);
+{ 10007} G2D500N +PERO3              =  0.600G1D500W + 0.200GDK5001 + 0.200GDK500C                 : ARR( 0.533E-11,   500., 0.0);
+{ 10008} G2D500N +PERO5              =  0.600G1D500W + 0.200GDK5001 + 0.200GDK500C                 : ARR( 0.200E-09,  2200., 0.0);
+{ 10009} G2D500N +PERO6              =  0.460G1D500W + 0.270GDK5001 + 0.270GDK500C                 : ARR( 0.183E-11,   450., 0.0);
+{ 10010} G2D500N +PERO9              =  0.800G1D500W + 0.200GDK500C                                : ARR( 0.100E-10,     0., 0.0);
+{ 10011} G1D500W                     =       G3K4000 +      GCO                                    : ARR( 0.800E+11,  4780., 0.0);
+{ 10012} G1D500W                     =       GD02000 +      G2D3002                                : ARR( 0.200E+15,  6613., 0.0);
+{ 10013} GHN501F +GHO                =       GND500K +      GHO                                    : ARR( 0.102E-10,     0., 0.0);
+{ 10014} GHN501F +GHO                =       G2N5014                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 10015} GHN501F+HV               =       G1H500N +      GNO2                                   :  0.100E+01*SUN;
+{ 10016} GHN501F+HV               =       G3N4002 +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 10017} GHN501F+HV               =       G2D2000 +      GHK3000 +      GNO2                    :  0.100E+01*SUN;
+{ 10018} GHN501F+HV               =       G1N5015 +      GHO                                    :  0.100E+01*SUN;
+{ 10019} GHH500H +GHO                =       GHK500D +      GHO                                    : ARR( 0.114E-09,     0., 0.0);
+{ 10020} GHH500H +GHO                =       GHD500l +      GHO                                    : ARR( 0.105E-10,     0., 0.0);
+{ 10021} GHH500H+HV               =       G1H500N +      GHO                                    :  0.100E+01*SUN;
+{ 10022} GHH500H+HV               =       G3H4001 +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 10023} GHH500H+HV               =       G2D2000 +      GHK3000 +      GHO                     :  0.100E+01*SUN;
+{ 10024} GHH500H+HV               =       G1H501s +      GHO                                    :  0.100E+01*SUN;
+{ 10025} GHK500D +GHO                =       GDK500C +      GHO                                    : ARR( 0.103E-10,     0., 0.0);
+{ 10026} GHK500D +GHO                =       G2K500I                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 10027} GHK500D+HV               =       G3K2000 +      G2H3002                                :  0.100E+01*SUN;
+{ 10028} GHK500D+HV               =       G3K4003 +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 10029} GHK500D+HV               =       G1K500J +      GHO                                    :  0.100E+01*SUN;
+{ 10030} GHH3002 +GHO                =       GHD3001 +      GHO                                    : ARR( 0.196E-10,     0., 0.0);
+{ 10031} GHH3002 +GHO                =       G2H3002                                               : ARR( 0.380E-11,  -190., 0.0);
+{ 10032} GHH3002+HV               =       G1H3003 +      GHO                                    :  0.200E+01*SUN;
+{ 10033} GHH3002+HV               =       G3H2000 +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 10034} GHK3001 +GHO                =       GHD3001 +      GHO2                                   : ARR( 0.247E-11,     0., 0.0);
+{ 10035} GHK3001 +GHO                =       GDK3001 +      GHO                                    : ARR( 0.989E-11,     0., 0.0);
+{ 10036} GHK3001 +GHO                =       G2K3001                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 10037} GHK3001+HV               =       G3K2001 +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 10038} GHK3001+HV               =       G1K3001 +      GHO                                    :  0.100E+01*SUN;
+{ 10039} GHD3001 +GHO                =       GDD3002 +      GHO                                    : ARR( 0.981E-11,     0., 0.0);
+{ 10040} GHD3001 +GHO                =       G3H2000 +      GCO                                    : ARR( 0.127E-10,     0., 0.0);
+{ 10041} GHD3001 +GHO                =       G2D3002                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 10042} GHD3001 +GNO3               =       G3H2000 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 10043} GHD3001+HV               =       G1D3002 +      GHO                                    :  0.100E+01*SUN;
+{ 10044} GHD3001+HV               =       G3H2000 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 10045} GHD3001+HV               =       GHD2000 +      GCO                                    :  0.100E+01*SUN;
+{ 10046} GHD3001+HV               =       GCH3OOH +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 10047} GGH2000 +GHO                =       GGD2000 +      GHO                                    : ARR( 0.981E-11,     0., 0.0);
+{ 10048} GGH2000 +GHO                =       G2G2000                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 10049} GGH2000 +GHO                =       G3H2000                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 10050} GGH2000+HV               =       G1G2000 +      GHO                                    :  0.100E+01*SUN;
+{ 10051} GGH2000+HV               =       GCH2O   +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 10052} GAH2000 +GHO                =       GAD2000 +      GHO                                    : ARR( 0.761E-11,     0., 0.0);
+{ 10053} GAH2000 +GHO                =       G2A2000                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 10054} GAH2000+HV               =       G1A2000 +      GHO                                    :  0.100E+01*SUN;
+{ 10055}  GPH2000    +M                 =       G3H2000 +      GNO2            +M                     : FALL( 0.280E+17, 13580., 0.0, 0.190E-02, 12175., 0.0,0.60);
+{ 10056} GPH2000 +GHO                =       GPD2000 +      GHO                                    : ARR( 0.981E-11,     0., 0.0);
+{ 10057} GPH2000 +GHO                =       G2P2000                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 10058} GPH2000+HV               =       G1P2000 +      GHO                                    :  0.100E+01*SUN;
+{ 10059} GPH2000+HV               =       G3H2000 +      GNO2                                   :  0.100E+01*SUN;
+{ 10060} GGH3000 +GHO                =       GGD3000 +      GHO                                    : ARR( 0.167E-10,     0., 0.0);
+{ 10061} GGH3000 +GHO                =       G2G3000                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 10062} GGH3000 +GHO                =       G3H3000                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 10063} GGH3000+HV               =       G1G3000 +      GHO                                    :  0.100E+01*SUN;
+{ 10064} GGH3000+HV               =       G2H2000 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 10065} GAH3000 +GHO                =       GAD3000 +      GHO                                    : ARR( 0.170E-10,     0., 0.0);
+{ 10066} GAH3000 +GHO                =       G2A3000                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 10067} GAH3000+HV               =       G1A3000 +      GHO                                    :  0.100E+01*SUN;
+{ 10068} GPH3000                     =       G3H3000 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 10069} GPH3000 +GHO                =       GPD3000 +      GHO                                    : ARR( 0.168E-10,     0., 0.0);
+{ 10070} GPH3000 +GHO                =       G2P3000                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 10071} GPH3000+HV               =       G1P3000 +      GHO                                    :  0.100E+01*SUN;
+{ 10072} GPH3000+HV               =       G3H3000 +      GNO2                                   :  0.100E+01*SUN;
+{ 10073} GHD4002 +GHO                =       GDK4000 +      GHO                                    : ARR( 0.110E-09,     0., 0.0);
+{ 10074} GHD4002 +GHO                =       G3H4001                                               : ARR( 0.215E-10,     0., 0.0);
+{ 10075} GHD4002 +GNO3               =       G3H4001 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 10076} GHD4002+HV               =       G1D4000 +      GHO                                    :  0.100E+01*SUN;
+{ 10077} GHD4002+HV               =       G2H3003 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 10078} GHD4002+HV               =       G2D2000 +      GD02000 +      GHO                     :  0.100E+01*SUN;
+{ 10079} GND500H +GHO                =       G2N5035                                               : ARR( 0.455E-11,     0., 0.0);
+{ 10080} GND500H +GHO                =       GND5009 +      GHO2                                   : ARR( 0.638E-11,     0., 0.0);
+{ 10081} GND500H +GHO                =       G3N500J                                               : ARR( 0.211E-10,     0., 0.0);
+{ 10082} GND500H +GNO3               =       G3N500J +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 10083} GND500H+HV               =       G1D500T +      GNO2                                   :  0.100E+01*SUN;
+{ 10084} GND500H+HV               =       GND4001 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 10085} G2N5035 +GNO                =       G1N503P +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 10086} G2N5035 +GNO                =       GNN5019                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 10087} G2N5035 +GHO2               =       GHN5045                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 10088} G2N5035 +GNO3               =       G1N503P +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 10089} G2N5035 +MEPERO             =  0.340G1N503P + 0.330GND500t + 0.330GND500U                 : ARR( 0.565E-13,  -845., 0.0);
+{ 10090} G2N5035 +PERO1              =  0.460G1N503P + 0.270GND500t + 0.270GND500U                 : ARR( 0.434E-13,  -900., 0.0);
+{ 10091} G2N5035 +PERO2              =  0.400G1N503P + 0.300GND500t + 0.300GND500U                 : ARR( 0.162E-13, -1400., 0.0);
+{ 10092} G2N5035 +PERO3              =  0.460G1N503P + 0.270GND500t + 0.270GND500U                 : ARR( 0.488E-13, -1250., 0.0);
+{ 10093} G2N5035 +PERO5              =  0.460G1N503P + 0.270GND500t + 0.270GND500U                 : ARR( 0.183E-11,   450., 0.0);
+{ 10094} G2N5035 +PERO6              =  0.300G1N503P + 0.350GND500t + 0.350GND500U                 : ARR( 0.168E-13, -1300., 0.0);
+{ 10095} G2N5035 +PERO9              =  0.650G1N503P + 0.350GND500U                                : ARR( 0.100E-10,     0., 0.0);
+{ 10096} G3N500J +GHO2               =  0.800GGN500B + 0.200GAN500B + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 10097} G3N500J +GNO                =       GND4001 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 10098} G3N500J +GNO2               =       GPN500D                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 10099} G3N500J +GNO3               =       GND4001 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 10100} G3N500J +MEPERO             =  0.685GND4001 + 0.315GAN500B + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 10101} G3N500J +PERO1              =  0.800GND4001 + 0.200GAN500B + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 10102} G3N500J +PERO2              =  0.750GND4001 + 0.250GAN500B + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 10103} G3N500J +PERO3              =  0.800GND4001 + 0.200GAN500B + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 10104} G3N500J +PERO5              =  0.650GND4001 + 0.350GAN500B + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 10105} G3N500J +PERO6              =  0.650GND4001 + 0.350GAN500B + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 10106} G3N500J +PERO9              =       GND4001 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 10107} G1N503P                     =       GND3000 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  3453., 0.0);
+{ 10108} GHH500I +GHO                =       GHD500A +      GHO                                    : ARR( 0.165E-10,     0., 0.0);
+{ 10109} GHH500I +GHO                =       G2H501Q                                               : ARR( 0.458E-11,     0., 0.0);
+{ 10110} GHH500I +GHO                =       GHD500m +      GHO                                    : ARR( 0.100E-10,     0., 0.0);
+{ 10111} GHH500I +GHO                =       G2H501R                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 10112} GHH500I +GHO                =       G2H501S                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 10113} GHH500I+HV               =       G1H500y +      GHO                                    :  0.100E+01*SUN;
+{ 10114} GHH500I+HV               =       G3H4005 +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 10115} GHH500I+HV               =       G2D2000 +      GHK3000 +      GHO                     :  0.100E+01*SUN;
+{ 10116} GHH500I+HV               =       G1H502K +      GHO                                    :  0.100E+01*SUN;
+{ 10117} G2H501Q +GNO                =       G1H502Z +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 10118} G2H501Q +GNO                =       GHH501Q                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 10119} G2H501Q +GHO2               =       GHH501R                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 10120} G2H501Q +GNO3               =       G1H502Z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 10121} G2H501Q +MEPERO             =  0.340G1H502Z + 0.330GHH501S + 0.330GHH501T                 : ARR( 0.565E-13,  -845., 0.0);
+{ 10122} G2H501Q +PERO1              =  0.460G1H502Z + 0.270GHH501S + 0.270GHH501T                 : ARR( 0.434E-13,  -900., 0.0);
+{ 10123} G2H501Q +PERO2              =  0.400G1H502Z + 0.300GHH501S + 0.300GHH501T                 : ARR( 0.162E-13, -1400., 0.0);
+{ 10124} G2H501Q +PERO3              =  0.460G1H502Z + 0.270GHH501S + 0.270GHH501T                 : ARR( 0.488E-13, -1250., 0.0);
+{ 10125} G2H501Q +PERO5              =  0.460G1H502Z + 0.270GHH501S + 0.270GHH501T                 : ARR( 0.183E-11,   450., 0.0);
+{ 10126} G2H501Q +PERO6              =  0.300G1H502Z + 0.350GHH501S + 0.350GHH501T                 : ARR( 0.168E-13, -1300., 0.0);
+{ 10127} G2H501Q +PERO9              =  0.650G1H502Z + 0.350GHH501T                                : ARR( 0.100E-10,     0., 0.0);
+{ 10128} G2H501R +GNO                =       G1H500y +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 10129} G2H501R +GNO                =       GHN500O                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 10130} G2H501R +GHO2               =       GHH500I                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 10131} G2H501R +GNO3               =       G1H500y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 10132} G2H501R +MEPERO             =  0.480G1H500y + 0.260GHK5002 + 0.260GHD500A                 : ARR( 0.146E-12,  -445., 0.0);
+{ 10133} G2H501R +PERO1              =  0.600G1H500y + 0.200GHK5002 + 0.200GHD500A                 : ARR( 0.112E-12,  -500., 0.0);
+{ 10134} G2H501R +PERO2              =  0.560G1H500y + 0.220GHK5002 + 0.220GHD500A                 : ARR( 0.418E-13, -1000., 0.0);
+{ 10135} G2H501R +PERO3              =  0.600G1H500y + 0.200GHK5002 + 0.200GHD500A                 : ARR( 0.126E-12,  -850., 0.0);
+{ 10136} G2H501R +PERO5              =  0.600G1H500y + 0.200GHK5002 + 0.200GHD500A                 : ARR( 0.473E-11,   850., 0.0);
+{ 10137} G2H501R +PERO6              =  0.460G1H500y + 0.270GHK5002 + 0.270GHD500A                 : ARR( 0.434E-13,  -900., 0.0);
+{ 10138} G2H501R +PERO9              =  0.800G1H500y + 0.200GHD500A                                : ARR( 0.100E-10,     0., 0.0);
+{ 10139} G2H501S +GNO                =       G1H502K +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 10140} G2H501S +GNO                =       GHN5017                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 10141} G2H501S +GHO2               =       GHH500I                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 10142} G2H501S +GNO3               =       G1H502K +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 10143} G2H501S +MEPERO             =  0.480G1H502K + 0.260GHK500I + 0.260GHD500m                 : ARR( 0.164E-12,  -795., 0.0);
+{ 10144} G2H501S +PERO1              =  0.600G1H502K + 0.200GHK500I + 0.200GHD500m                 : ARR( 0.126E-12,  -850., 0.0);
+{ 10145} G2H501S +PERO2              =  0.560G1H502K + 0.220GHK500I + 0.220GHD500m                 : ARR( 0.471E-13, -1350., 0.0);
+{ 10146} G2H501S +PERO3              =  0.600G1H502K + 0.200GHK500I + 0.200GHD500m                 : ARR( 0.142E-12, -1200., 0.0);
+{ 10147} G2H501S +PERO5              =  0.600G1H502K + 0.200GHK500I + 0.200GHD500m                 : ARR( 0.533E-11,   500., 0.0);
+{ 10148} G2H501S +PERO6              =  0.460G1H502K + 0.270GHK500I + 0.270GHD500m                 : ARR( 0.488E-13, -1250., 0.0);
+{ 10149} G2H501S +PERO9              =  0.800G1H502K + 0.200GHD500m                                : ARR( 0.100E-10,     0., 0.0);
+{ 10150} G1H502Z                     =       GHD500e +      GHO                                    : ARR( 0.160E+12,  4168., 0.0);
+{ 10151} G1H502Z                     =       G2H3002 +      GHD2000                                : ARR( 0.200E+15,  7289., 0.0);
+{ 10152} G1H502Z                     =       GHD4004 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  6757., 0.0);
+{ 10153} GHD5009 +GHO                =       GDD5000 +      GHO                                    : ARR( 0.166E-10,     0., 0.0);
+{ 10154} GHD5009 +GHO                =       G2H501T                                               : ARR( 0.462E-11,     0., 0.0);
+{ 10155} GHD5009 +GHO                =       GHD500m +      GHO2                                   : ARR( 0.647E-11,     0., 0.0);
+{ 10156} GHD5009 +GHO                =       G3H500C                                               : ARR( 0.214E-10,     0., 0.0);
+{ 10157} GHD5009 +GHO                =       G2D500K                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 10158} GHD5009 +GNO3               =       G3H500C +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 10159} GHD5009+HV               =       G1D500T +      GHO                                    :  0.100E+01*SUN;
+{ 10160} GHD5009+HV               =       GHD4001 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 10161} G2H501T +GNO                =       G1H502a +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 10162} G2H501T +GNO                =       GHN5046                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 10163} G2H501T +GHO2               =       GHH501U                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 10164} G2H501T +GNO3               =       G1H502a +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 10165} G2H501T +MEPERO             =  0.340G1H502a + 0.330GHD500n + 0.330GHD500o                 : ARR( 0.565E-13,  -845., 0.0);
+{ 10166} G2H501T +PERO1              =  0.460G1H502a + 0.270GHD500n + 0.270GHD500o                 : ARR( 0.434E-13,  -900., 0.0);
+{ 10167} G2H501T +PERO2              =  0.400G1H502a + 0.300GHD500n + 0.300GHD500o                 : ARR( 0.162E-13, -1400., 0.0);
+{ 10168} G2H501T +PERO3              =  0.460G1H502a + 0.270GHD500n + 0.270GHD500o                 : ARR( 0.488E-13, -1250., 0.0);
+{ 10169} G2H501T +PERO5              =  0.460G1H502a + 0.270GHD500n + 0.270GHD500o                 : ARR( 0.183E-11,   450., 0.0);
+{ 10170} G2H501T +PERO6              =  0.300G1H502a + 0.350GHD500n + 0.350GHD500o                 : ARR( 0.168E-13, -1300., 0.0);
+{ 10171} G2H501T +PERO9              =  0.650G1H502a + 0.350GHD500o                                : ARR( 0.100E-10,     0., 0.0);
+{ 10172} G3H500C +GHO2               =  0.800GGH500E + 0.200GAH500E + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 10173} G3H500C +GNO                =       GHD4001 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 10174} G3H500C +GNO2               =       GPH500E                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 10175} G3H500C +GNO3               =       GHD4001 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 10176} G3H500C +MEPERO             =  0.685GHD4001 + 0.315GAH500E + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 10177} G3H500C +PERO1              =  0.800GHD4001 + 0.200GAH500E + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 10178} G3H500C +PERO2              =  0.750GHD4001 + 0.250GAH500E + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 10179} G3H500C +PERO3              =  0.800GHD4001 + 0.200GAH500E + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 10180} G3H500C +PERO5              =  0.650GHD4001 + 0.350GAH500E + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 10181} G3H500C +PERO6              =  0.650GHD4001 + 0.350GAH500E + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 10182} G3H500C +PERO9              =       GHD4001 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 10183} G1H502a                     =       GHD3000 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  3453., 0.0);
+{ 10184} GHD500A +GHO                =       GDD5004 +      GHO                                    : ARR( 0.981E-11,     0., 0.0);
+{ 10185} GHD500A +GHO                =       G2H501U                                               : ARR( 0.273E-11,     0., 0.0);
+{ 10186} GHD500A +GHO                =       G2H501W                                               : ARR( 0.273E-11,     0., 0.0);
+{ 10187} GHD500A +GHO                =       G3H500D                                               : ARR( 0.208E-10,     0., 0.0);
+{ 10188} GHD500A +GHO                =       G2D500O                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 10189} GHD500A +GNO3               =       G3H500D +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 10190} GHD500A+HV               =       G1D500N +      GHO                                    :  0.100E+01*SUN;
+{ 10191} GHD500A+HV               =       G3H2000 +      G2D3001                                :  0.100E+01*SUN;
+{ 10192} GHD500A+HV               =       G2H400H +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 10193} G2H501U +GNO                =       G1H502b +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 10194} G2H501U +GNO                =       GHN5047                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 10195} G2H501U +GHO2               =       GHH501W                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 10196} G2H501U +GNO3               =       G1H502b +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 10197} G2H501U +MEPERO             =  0.340G1H502b + 0.330GHD500p + 0.330GHD500q                 : ARR( 0.565E-13,  -845., 0.0);
+{ 10198} G2H501U +PERO1              =  0.460G1H502b + 0.270GHD500p + 0.270GHD500q                 : ARR( 0.434E-13,  -900., 0.0);
+{ 10199} G2H501U +PERO2              =  0.400G1H502b + 0.300GHD500p + 0.300GHD500q                 : ARR( 0.162E-13, -1400., 0.0);
+{ 10200} G2H501U +PERO3              =  0.460G1H502b + 0.270GHD500p + 0.270GHD500q                 : ARR( 0.488E-13, -1250., 0.0);
+{ 10201} G2H501U +PERO5              =  0.460G1H502b + 0.270GHD500p + 0.270GHD500q                 : ARR( 0.183E-11,   450., 0.0);
+{ 10202} G2H501U +PERO6              =  0.300G1H502b + 0.350GHD500p + 0.350GHD500q                 : ARR( 0.168E-13, -1300., 0.0);
+{ 10203} G2H501U +PERO9              =  0.650G1H502b + 0.350GHD500q                                : ARR( 0.100E-10,     0., 0.0);
+{ 10204} G2H501W +GNO                =       G1H502c +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 10205} G2H501W +GNO                =       GHN5048                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 10206} G2H501W +GHO2               =       GHH501X                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 10207} G2H501W +GNO3               =       G1H502c +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 10208} G2H501W +MEPERO             =  0.340G1H502c + 0.330GHD500d + 0.330GHD500r                 : ARR( 0.565E-13,  -845., 0.0);
+{ 10209} G2H501W +PERO1              =  0.460G1H502c + 0.270GHD500d + 0.270GHD500r                 : ARR( 0.434E-13,  -900., 0.0);
+{ 10210} G2H501W +PERO2              =  0.400G1H502c + 0.300GHD500d + 0.300GHD500r                 : ARR( 0.162E-13, -1400., 0.0);
+{ 10211} G2H501W +PERO3              =  0.460G1H502c + 0.270GHD500d + 0.270GHD500r                 : ARR( 0.488E-13, -1250., 0.0);
+{ 10212} G2H501W +PERO5              =  0.460G1H502c + 0.270GHD500d + 0.270GHD500r                 : ARR( 0.183E-11,   450., 0.0);
+{ 10213} G2H501W +PERO6              =  0.300G1H502c + 0.350GHD500d + 0.350GHD500r                 : ARR( 0.168E-13, -1300., 0.0);
+{ 10214} G2H501W +PERO9              =  0.650G1H502c + 0.350GHD500r                                : ARR( 0.100E-10,     0., 0.0);
+{ 10215} G3H500D +GHO2               =  0.800GGH500F + 0.200GAH500F + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 10216} G3H500D +GNO                =       G2H400H +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 10217} G3H500D +GNO2               =       GPH500F                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 10218} G3H500D +GNO3               =       G2H400H +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 10219} G3H500D +MEPERO             =  0.685G2H400H + 0.315GAH500F + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 10220} G3H500D +PERO1              =  0.800G2H400H + 0.200GAH500F + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 10221} G3H500D +PERO2              =  0.750G2H400H + 0.250GAH500F + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 10222} G3H500D +PERO3              =  0.800G2H400H + 0.200GAH500F + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 10223} G3H500D +PERO5              =  0.650G2H400H + 0.350GAH500F + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 10224} G3H500D +PERO6              =  0.650G2H400H + 0.350GAH500F + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 10225} G3H500D +PERO9              =       G2H400H +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 10226} G2D500O +GNO                =       G1D500N +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 10227} G2D500O +GNO                =       GND500C                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 10228} G2D500O +GHO2               =       GHD500A                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 10229} G2D500O +GNO3               =       G1D500N +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 10230} G2D500O +MEPERO             =  0.480G1D500N + 0.260GDK5007 + 0.260GDD5004                 : ARR( 0.164E-12,  -795., 0.0);
+{ 10231} G2D500O +PERO1              =  0.600G1D500N + 0.200GDK5007 + 0.200GDD5004                 : ARR( 0.126E-12,  -850., 0.0);
+{ 10232} G2D500O +PERO2              =  0.560G1D500N + 0.220GDK5007 + 0.220GDD5004                 : ARR( 0.471E-13, -1350., 0.0);
+{ 10233} G2D500O +PERO3              =  0.600G1D500N + 0.200GDK5007 + 0.200GDD5004                 : ARR( 0.142E-12, -1200., 0.0);
+{ 10234} G2D500O +PERO5              =  0.600G1D500N + 0.200GDK5007 + 0.200GDD5004                 : ARR( 0.533E-11,   500., 0.0);
+{ 10235} G2D500O +PERO6              =  0.460G1D500N + 0.270GDK5007 + 0.270GDD5004                 : ARR( 0.488E-13, -1250., 0.0);
+{ 10236} G2D500O +PERO9              =  0.800G1D500N + 0.200GDD5004                                : ARR( 0.100E-10,     0., 0.0);
+{ 10237} G2H400H +GNO                =       G1H400K +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 10238} G2H400H +GNO                =       GHN400K                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 10239} G2H400H +GHO2               =       GHH400D                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 10240} G2H400H +GNO3               =       G1H400K +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 10241} G2H400H +MEPERO             =  0.480G1H400K + 0.260GHK4003 + 0.260GHD4004                 : ARR( 0.146E-12,  -445., 0.0);
+{ 10242} G2H400H +PERO1              =  0.600G1H400K + 0.200GHK4003 + 0.200GHD4004                 : ARR( 0.112E-12,  -500., 0.0);
+{ 10243} G2H400H +PERO2              =  0.560G1H400K + 0.220GHK4003 + 0.220GHD4004                 : ARR( 0.418E-13, -1000., 0.0);
+{ 10244} G2H400H +PERO3              =  0.600G1H400K + 0.200GHK4003 + 0.200GHD4004                 : ARR( 0.126E-12,  -850., 0.0);
+{ 10245} G2H400H +PERO5              =  0.600G1H400K + 0.200GHK4003 + 0.200GHD4004                 : ARR( 0.473E-11,   850., 0.0);
+{ 10246} G2H400H +PERO6              =  0.460G1H400K + 0.270GHK4003 + 0.270GHD4004                 : ARR( 0.434E-13,  -900., 0.0);
+{ 10247} G2H400H +PERO9              =  0.800G1H400K + 0.200GHD4004                                : ARR( 0.100E-10,     0., 0.0);
+{ 10248} G1H502b                     =       G3H2000 +      GDD3000                                : ARR( 0.200E+15,  2372., 0.0);
+{ 10249} G1H502c                     =       GHD4004 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5054., 0.0);
+{ 10250} G1H400K +OXYGEN             =       GHD4004 +      GHO2                                   : ARR( 0.600E-13,   398., 0.0);
+{ 10251} G1H400K                     =       GDK4005 +      GHO                                    : ARR( 0.160E+12,  4168., 0.0);
+{ 10252} GHN501G +GHO                =       GND500a +      GHO                                    : ARR( 0.172E-10,     0., 0.0);
+{ 10253} GHN501G +GHO                =       G3H500E                                               : ARR( 0.222E-10,     0., 0.0);
+{ 10254} GHN501G +GHO                =       G2N5036                                               : ARR( 0.203E-11,  -190., 0.0);
+{ 10255} GHN501G +GNO3               =       G3H500E +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 10256} GHN501G+HV               =       G1N502n +      GHO                                    :  0.100E+01*SUN;
+{ 10257} GHN501G+HV               =       G1H500O +      GNO2                                   :  0.100E+01*SUN;
+{ 10258} GHN501G+HV               =       G2H400I +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 10259} GHN501G+HV               =       GHN3008 +      GD02000                                :  0.100E+01*SUN;
+{ 10260} G3H500E +GHO2               =  0.800GGH500G + 0.200GAH500G + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 10261} G3H500E +GNO                =       G2H400I +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 10262} G3H500E +GNO2               =       GPH500G                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 10263} G3H500E +GNO3               =       G2H400I +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 10264} G3H500E +MEPERO             =  0.685G2H400I + 0.315GAH500G + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 10265} G3H500E +PERO1              =  0.800G2H400I + 0.200GAH500G + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 10266} G3H500E +PERO2              =  0.750G2H400I + 0.250GAH500G + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 10267} G3H500E +PERO3              =  0.800G2H400I + 0.200GAH500G + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 10268} G3H500E +PERO5              =  0.650G2H400I + 0.350GAH500G + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 10269} G3H500E +PERO6              =  0.650G2H400I + 0.350GAH500G + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 10270} G3H500E +PERO9              =       G2H400I +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 10271} G2N5036 +GNO                =       G1N502n +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 10272} G2N5036 +GNO                =       GNN500f                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 10273} G2N5036 +GHO2               =       GHN501G                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 10274} G2N5036 +GNO3               =       G1N502n +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 10275} G2N5036 +MEPERO             =  0.480G1N502n + 0.260GND500I + 0.260GND500a                 : ARR( 0.164E-12,  -795., 0.0);
+{ 10276} G2N5036 +PERO1              =  0.600G1N502n + 0.200GND500I + 0.200GND500a                 : ARR( 0.126E-12,  -850., 0.0);
+{ 10277} G2N5036 +PERO2              =  0.560G1N502n + 0.220GND500I + 0.220GND500a                 : ARR( 0.471E-13, -1350., 0.0);
+{ 10278} G2N5036 +PERO3              =  0.600G1N502n + 0.200GND500I + 0.200GND500a                 : ARR( 0.142E-12, -1200., 0.0);
+{ 10279} G2N5036 +PERO5              =  0.600G1N502n + 0.200GND500I + 0.200GND500a                 : ARR( 0.533E-11,   500., 0.0);
+{ 10280} G2N5036 +PERO6              =  0.460G1N502n + 0.270GND500I + 0.270GND500a                 : ARR( 0.488E-13, -1250., 0.0);
+{ 10281} G2N5036 +PERO9              =  0.800G1N502n + 0.200GND500a                                : ARR( 0.100E-10,     0., 0.0);
+{ 10282} G2H400I +GNO                =       G1H400L +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 10283} G2H400I +GNO                =       GHN400X                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 10284} G2H400I +GHO2               =       GHH400E                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 10285} G2H400I +GNO3               =       G1H400L +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 10286} G2H400I +MEPERO             =  0.480G1H400L + 0.260GHN400C + 0.260GHN400Y                 : ARR( 0.164E-12,  -795., 0.0);
+{ 10287} G2H400I +PERO1              =  0.600G1H400L + 0.200GHN400C + 0.200GHN400Y                 : ARR( 0.126E-12,  -850., 0.0);
+{ 10288} G2H400I +PERO2              =  0.560G1H400L + 0.220GHN400C + 0.220GHN400Y                 : ARR( 0.471E-13, -1350., 0.0);
+{ 10289} G2H400I +PERO3              =  0.600G1H400L + 0.200GHN400C + 0.200GHN400Y                 : ARR( 0.142E-12, -1200., 0.0);
+{ 10290} G2H400I +PERO5              =  0.600G1H400L + 0.200GHN400C + 0.200GHN400Y                 : ARR( 0.533E-11,   500., 0.0);
+{ 10291} G2H400I +PERO6              =  0.460G1H400L + 0.270GHN400C + 0.270GHN400Y                 : ARR( 0.488E-13, -1250., 0.0);
+{ 10292} G2H400I +PERO9              =  0.800G1H400L + 0.200GHN400Y                                : ARR( 0.100E-10,     0., 0.0);
+{ 10293} G1H400L                     =       GND4009 +      GHO                                    : ARR( 0.160E+12,  2186., 0.0);
+{ 10294} GHH500J +GHO                =       GHD500O +      GHO                                    : ARR( 0.168E-10,     0., 0.0);
+{ 10295} GHH500J +GHO                =       GHH501W +      GHO2                                   : ARR( 0.108E-10,     0., 0.0);
+{ 10296} GHH500J +GHO                =       GHD500C +      GHO                                    : ARR( 0.137E-09,     0., 0.0);
+{ 10297} GHH500J +GHO                =       G3H500F                                               : ARR( 0.217E-10,     0., 0.0);
+{ 10298} GHH500J +GNO3               =       G3H500F +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 10299} GHH500J+HV               =       G1H502T +      GHO                                    :  0.100E+01*SUN;
+{ 10300} GHH500J+HV               =       G1H500O +      GHO                                    :  0.100E+01*SUN;
+{ 10301} GHH500J+HV               =       G2H400J +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 10302} GHH500J+HV               =       GHH3002 +      GD02000                                :  0.100E+01*SUN;
+{ 10303} G3H500F +GHO2               =  0.800GGH500H + 0.200GAH500H + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 10304} G3H500F +GNO                =       G2H400J +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 10305} G3H500F +GNO2               =       GPH500H                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 10306} G3H500F +GNO3               =       G2H400J +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 10307} G3H500F +MEPERO             =  0.685G2H400J + 0.315GAH500H + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 10308} G3H500F +PERO1              =  0.800G2H400J + 0.200GAH500H + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 10309} G3H500F +PERO2              =  0.750G2H400J + 0.250GAH500H + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 10310} G3H500F +PERO3              =  0.800G2H400J + 0.200GAH500H + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 10311} G3H500F +PERO5              =  0.650G2H400J + 0.350GAH500H + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 10312} G3H500F +PERO6              =  0.650G2H400J + 0.350GAH500H + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 10313} G3H500F +PERO9              =       G2H400J +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 10314} G2H400J +GNO                =       G1H400M +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 10315} G2H400J +GNO                =       GHH400F                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 10316} G2H400J +GHO2               =       GHH400G                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 10317} G2H400J +GNO3               =       G1H400M +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 10318} G2H400J +MEPERO             =  0.480G1H400M + 0.260GHH4006 + 0.260GHH400H                 : ARR( 0.164E-12,  -795., 0.0);
+{ 10319} G2H400J +PERO1              =  0.600G1H400M + 0.200GHH4006 + 0.200GHH400H                 : ARR( 0.126E-12,  -850., 0.0);
+{ 10320} G2H400J +PERO2              =  0.560G1H400M + 0.220GHH4006 + 0.220GHH400H                 : ARR( 0.471E-13, -1350., 0.0);
+{ 10321} G2H400J +PERO3              =  0.600G1H400M + 0.200GHH4006 + 0.200GHH400H                 : ARR( 0.142E-12, -1200., 0.0);
+{ 10322} G2H400J +PERO5              =  0.600G1H400M + 0.200GHH4006 + 0.200GHH400H                 : ARR( 0.533E-11,   500., 0.0);
+{ 10323} G2H400J +PERO6              =  0.460G1H400M + 0.270GHH4006 + 0.270GHH400H                 : ARR( 0.488E-13, -1250., 0.0);
+{ 10324} G2H400J +PERO9              =  0.800G1H400M + 0.200GHH400H                                : ARR( 0.100E-10,     0., 0.0);
+{ 10325} G1H400M                     =       GHD4009 +      GHO                                    : ARR( 0.160E+12,  2186., 0.0);
+{ 10326} GHD500B +GHO                =       GDD5002 +      GHO                                    : ARR( 0.170E-10,     0., 0.0);
+{ 10327} GHD500B +GHO                =       GHD500p +      GHO2                                   : ARR( 0.109E-10,     0., 0.0);
+{ 10328} GHD500B +GHO                =       GHD500C +      GHO2                                   : ARR( 0.346E-10,     0., 0.0);
+{ 10329} GHD500B +GHO                =       G3H500G                                               : ARR( 0.220E-10,     0., 0.0);
+{ 10330} GHD500B +GNO3               =       G3H500G +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 10331} GHD500B+HV               =       G1D500O +      GHO                                    :  0.100E+01*SUN;
+{ 10332} GHD500B+HV               =       G2H400K +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 10333} GHD500B+HV               =       GHK3001 +      GD02000                                :  0.100E+01*SUN;
+{ 10334} G3H500G +GHO2               =  0.800GGH500I + 0.200GAH500I + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 10335} G3H500G +GNO                =       G2H400K +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 10336} G3H500G +GNO2               =       GPH500I                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 10337} G3H500G +GNO3               =       G2H400K +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 10338} G3H500G +MEPERO             =  0.685G2H400K + 0.315GAH500I + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 10339} G3H500G +PERO1              =  0.800G2H400K + 0.200GAH500I + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 10340} G3H500G +PERO2              =  0.750G2H400K + 0.250GAH500I + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 10341} G3H500G +PERO3              =  0.800G2H400K + 0.200GAH500I + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 10342} G3H500G +PERO5              =  0.650G2H400K + 0.350GAH500I + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 10343} G3H500G +PERO6              =  0.650G2H400K + 0.350GAH500I + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 10344} G3H500G +PERO9              =       G2H400K +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 10345} G2H400K +GNO                =       G1H400N +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 10346} G2H400K +GNO                =       GHN400U                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 10347} G2H400K +GHO2               =       GHH400I                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 10348} G2H400K +GNO3               =       G1H400N +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 10349} G2H400K +MEPERO             =  0.480G1H400N + 0.260GHO400B + 0.260GHD400E                 : ARR( 0.164E-12,  -795., 0.0);
+{ 10350} G2H400K +PERO1              =  0.600G1H400N + 0.200GHO400B + 0.200GHD400E                 : ARR( 0.126E-12,  -850., 0.0);
+{ 10351} G2H400K +PERO2              =  0.560G1H400N + 0.220GHO400B + 0.220GHD400E                 : ARR( 0.471E-13, -1350., 0.0);
+{ 10352} G2H400K +PERO3              =  0.600G1H400N + 0.200GHO400B + 0.200GHD400E                 : ARR( 0.142E-12, -1200., 0.0);
+{ 10353} G2H400K +PERO5              =  0.600G1H400N + 0.200GHO400B + 0.200GHD400E                 : ARR( 0.533E-11,   500., 0.0);
+{ 10354} G2H400K +PERO6              =  0.460G1H400N + 0.270GHO400B + 0.270GHD400E                 : ARR( 0.488E-13, -1250., 0.0);
+{ 10355} G2H400K +PERO9              =  0.800G1H400N + 0.200GHD400E                                : ARR( 0.100E-10,     0., 0.0);
+{ 10356} G1H400N                     =       GDO4006 +      GHO                                    : ARR( 0.160E+12,  2186., 0.0);
+{ 10357} G1H400N                     =       GHD3005 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 10358} GHD500C +GHO                =       GDD5005 +      GHO                                    : ARR( 0.556E-10,     0., 0.0);
+{ 10359} GHD500C +GHO                =       G3H500H                                               : ARR( 0.718E-10,     0., 0.0);
+{ 10360} GHD500C +GNO3               =       G3H500H +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 10361} GHD500C+HV               =       G1D500Q +      GHO                                    :  0.100E+01*SUN;
+{ 10362} GHD500C+HV               =       G3H3003 +      G2D2000                                :  0.100E+01*SUN;
+{ 10363} GHD500C+HV               =       G2H400L +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 10364} G3H500H +GHO2               =  0.800GGH500J + 0.200GAH500J + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 10365} G3H500H +GNO                =       G2H400L +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 10366} G3H500H +GNO2               =       GPH500J                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 10367} G3H500H +GNO3               =       G2H400L +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 10368} G3H500H +MEPERO             =  0.685G2H400L + 0.315GAH500J + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 10369} G3H500H +PERO1              =  0.800G2H400L + 0.200GAH500J + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 10370} G3H500H +PERO2              =  0.750G2H400L + 0.250GAH500J + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 10371} G3H500H +PERO3              =  0.800G2H400L + 0.200GAH500J + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 10372} G3H500H +PERO5              =  0.650G2H400L + 0.350GAH500J + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 10373} G3H500H +PERO6              =  0.650G2H400L + 0.350GAH500J + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 10374} G3H500H +PERO9              =       G2H400L +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 10375} G3H3003 +GHO2               =  0.800GGH3004 + 0.200GAH3004 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 10376} G3H3003 +GNO                =       GHD2000 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 10377} G3H3003 +GNO2               =       GPH3004                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 10378} G3H3003 +GNO3               =       GHD2000 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 10379} G3H3003 +MEPERO             =  0.685GHD2000 + 0.315GAH3004 + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 10380} G3H3003 +PERO1              =  0.800GHD2000 + 0.200GAH3004 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 10381} G3H3003 +PERO2              =  0.750GHD2000 + 0.250GAH3004 + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 10382} G3H3003 +PERO3              =  0.800GHD2000 + 0.200GAH3004 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 10383} G3H3003 +PERO5              =  0.650GHD2000 + 0.350GAH3004 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 10384} G3H3003 +PERO6              =  0.650GHD2000 + 0.350GAH3004 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 10385} G3H3003 +PERO9              =       GHD2000 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 10386} G2H400L +GNO                =       G1H400O +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 10387} G2H400L +GNO                =       GHN400Z                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 10388} G2H400L +GHO2               =       GHH400J                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 10389} G2H400L +GNO3               =       G1H400O +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 10390} G2H400L +MEPERO             =  0.480G1H400O + 0.260GHK4005 + 0.260GHD400F                 : ARR( 0.164E-12,  -795., 0.0);
+{ 10391} G2H400L +PERO1              =  0.600G1H400O + 0.200GHK4005 + 0.200GHD400F                 : ARR( 0.126E-12,  -850., 0.0);
+{ 10392} G2H400L +PERO2              =  0.560G1H400O + 0.220GHK4005 + 0.220GHD400F                 : ARR( 0.471E-13, -1350., 0.0);
+{ 10393} G2H400L +PERO3              =  0.600G1H400O + 0.200GHK4005 + 0.200GHD400F                 : ARR( 0.142E-12, -1200., 0.0);
+{ 10394} G2H400L +PERO5              =  0.600G1H400O + 0.200GHK4005 + 0.200GHD400F                 : ARR( 0.533E-11,   500., 0.0);
+{ 10395} G2H400L +PERO6              =  0.460G1H400O + 0.270GHK4005 + 0.270GHD400F                 : ARR( 0.488E-13, -1250., 0.0);
+{ 10396} G2H400L +PERO9              =  0.800G1H400O + 0.200GHD400F                                : ARR( 0.100E-10,     0., 0.0);
+{ 10397} G1H400O                     =       G3H3003 +      GCH2O                                  : ARR( 0.200E+15,  3603., 0.0);
+{ 10398} GGH5000 +GHO                =       GGD5001 +      GHO                                    : ARR( 0.172E-10,     0., 0.0);
+{ 10399} GGH5000 +GHO                =       GGH500F +      GHO2                                   : ARR( 0.110E-10,     0., 0.0);
+{ 10400} GGH5000 +GHO                =       G2G500B                                               : ARR( 0.204E-11,  -190., 0.0);
+{ 10401} GGH5000 +GHO                =       G3H5000                                               : ARR( 0.204E-11,  -190., 0.0);
+{ 10402} GGH5000+HV               =       G1G5009 +      GHO                                    :  0.100E+01*SUN;
+{ 10403} GGH5000+HV               =       G2H4000 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 10404} G2G500B +GNO                =       G1G5009 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 10405} G2G500B +GNO                =       GGN5001                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 10406} G2G500B +GHO2               =       GGH5000                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 10407} G2G500B +GNO3               =       G1G5009 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 10408} G2G500B +MEPERO             =  0.480G1G5009 + 0.260GGO5001 + 0.260GGD5001                 : ARR( 0.164E-12,  -795., 0.0);
+{ 10409} G2G500B +PERO1              =  0.600G1G5009 + 0.200GGO5001 + 0.200GGD5001                 : ARR( 0.126E-12,  -850., 0.0);
+{ 10410} G2G500B +PERO2              =  0.560G1G5009 + 0.220GGO5001 + 0.220GGD5001                 : ARR( 0.471E-13, -1350., 0.0);
+{ 10411} G2G500B +PERO3              =  0.600G1G5009 + 0.200GGO5001 + 0.200GGD5001                 : ARR( 0.142E-12, -1200., 0.0);
+{ 10412} G2G500B +PERO5              =  0.600G1G5009 + 0.200GGO5001 + 0.200GGD5001                 : ARR( 0.533E-11,   500., 0.0);
+{ 10413} G2G500B +PERO6              =  0.460G1G5009 + 0.270GGO5001 + 0.270GGD5001                 : ARR( 0.488E-13, -1250., 0.0);
+{ 10414} G2G500B +PERO9              =  0.800G1G5009 + 0.200GGD5001                                : ARR( 0.100E-10,     0., 0.0);
+{ 10415} GAH5000 +GHO                =       GAH500F +      GHO2                                   : ARR( 0.112E-10,     0., 0.0);
+{ 10416} GAH5000 +GHO                =       GAD5002 +      GHO                                    : ARR( 0.175E-10,     0., 0.0);
+{ 10417} GAH5000 +GHO                =       G2A500C                                               : ARR( 0.207E-11,  -190., 0.0);
+{ 10418} GAH5000+HV               =       G1A500A +      GHO                                    :  0.100E+01*SUN;
+{ 10419} G2A500C +GNO                =       G1A500A +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 10420} G2A500C +GNO                =       GAN5001                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 10421} G2A500C +GHO2               =       GAH5000                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 10422} G2A500C +GNO3               =       G1A500A +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 10423} G2A500C +MEPERO             =  0.480G1A500A + 0.260GAO5001 + 0.260GAD5002                 : ARR( 0.164E-12,  -795., 0.0);
+{ 10424} G2A500C +PERO1              =  0.600G1A500A + 0.200GAO5001 + 0.200GAD5002                 : ARR( 0.126E-12,  -850., 0.0);
+{ 10425} G2A500C +PERO2              =  0.560G1A500A + 0.220GAO5001 + 0.220GAD5002                 : ARR( 0.471E-13, -1350., 0.0);
+{ 10426} G2A500C +PERO3              =  0.600G1A500A + 0.200GAO5001 + 0.200GAD5002                 : ARR( 0.142E-12, -1200., 0.0);
+{ 10427} G2A500C +PERO5              =  0.600G1A500A + 0.200GAO5001 + 0.200GAD5002                 : ARR( 0.533E-11,   500., 0.0);
+{ 10428} G2A500C +PERO6              =  0.460G1A500A + 0.270GAO5001 + 0.270GAD5002                 : ARR( 0.488E-13, -1250., 0.0);
+{ 10429} G2A500C +PERO9              =  0.800G1A500A + 0.200GAD5002                                : ARR( 0.100E-10,     0., 0.0);
+{ 10430} GPH5000                     =       G3H5000 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 10431} GPH5000 +GHO                =       GPD5001 +      GHO                                    : ARR( 0.174E-10,     0., 0.0);
+{ 10432} GPH5000 +GHO                =       GPH500F +      GHO2                                   : ARR( 0.111E-10,     0., 0.0);
+{ 10433} GPH5000 +GHO                =       G2P500C                                               : ARR( 0.205E-11,  -190., 0.0);
+{ 10434} GPH5000+HV               =       G1P500A +      GHO                                    :  0.100E+01*SUN;
+{ 10435} GPH5000+HV               =       G3H5000 +      GNO2                                   :  0.100E+01*SUN;
+{ 10436} G2P500C +GNO                =       G1P500A +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 10437} G2P500C +GNO                =       GPN5001                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 10438} G2P500C +GHO2               =       GPH5000                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 10439} G2P500C +GNO3               =       G1P500A +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 10440} G2P500C +MEPERO             =  0.480G1P500A + 0.260GPO5001 + 0.260GPD5001                 : ARR( 0.164E-12,  -795., 0.0);
+{ 10441} G2P500C +PERO1              =  0.600G1P500A + 0.200GPO5001 + 0.200GPD5001                 : ARR( 0.126E-12,  -850., 0.0);
+{ 10442} G2P500C +PERO2              =  0.560G1P500A + 0.220GPO5001 + 0.220GPD5001                 : ARR( 0.471E-13, -1350., 0.0);
+{ 10443} G2P500C +PERO3              =  0.600G1P500A + 0.200GPO5001 + 0.200GPD5001                 : ARR( 0.142E-12, -1200., 0.0);
+{ 10444} G2P500C +PERO5              =  0.600G1P500A + 0.200GPO5001 + 0.200GPD5001                 : ARR( 0.533E-11,   500., 0.0);
+{ 10445} G2P500C +PERO6              =  0.460G1P500A + 0.270GPO5001 + 0.270GPD5001                 : ARR( 0.488E-13, -1250., 0.0);
+{ 10446} G2P500C +PERO9              =  0.800G1P500A + 0.200GPD5001                                : ARR( 0.100E-10,     0., 0.0);
+{ 10447} GHN4003 +GHO                =       GHN400K +      GHO2                                   : ARR( 0.105E-10,     0., 0.0);
+{ 10448} GHN4003 +GHO                =       GND400C +      GHO                                    : ARR( 0.163E-10,     0., 0.0);
+{ 10449} GHN4003 +GHO                =       G2N400D                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 10450} GHN4003+HV               =       G1H4000 +      GNO2                                   :  0.100E+01*SUN;
+{ 10451} GHN4003+HV               =       G1N400D +      GHO                                    :  0.100E+01*SUN;
+{ 10452} GHH4000 +GHO                =       GHD4003 +      GHO                                    : ARR( 0.166E-10,     0., 0.0);
+{ 10453} GHH4000 +GHO                =       GHH400D +      GHO2                                   : ARR( 0.106E-10,     0., 0.0);
+{ 10454} GHH4000 +GHO                =       GHD400B +      GHO                                    : ARR( 0.166E-10,     0., 0.0);
+{ 10455} GHH4000 +GHO                =       G2H4000                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 10456} GHH4000 +GHO                =       G2H400M                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 10457} GHH4000+HV               =       G1H4000 +      GHO                                    :  0.100E+01*SUN;
+{ 10458} GHH4000+HV               =       G1H400I +      GHO                                    :  0.100E+01*SUN;
+{ 10459} G2H400M +GNO                =       G1H400I +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 10460} G2H400M +GNO                =       GHN4002                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 10461} G2H400M +GHO2               =       GHH4000                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 10462} G2H400M +GNO3               =       G1H400I +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 10463} G2H400M +MEPERO             =  0.480G1H400I + 0.260GHO4003 + 0.260GHD400B                 : ARR( 0.164E-12,  -795., 0.0);
+{ 10464} G2H400M +PERO1              =  0.600G1H400I + 0.200GHO4003 + 0.200GHD400B                 : ARR( 0.126E-12,  -850., 0.0);
+{ 10465} G2H400M +PERO2              =  0.560G1H400I + 0.220GHO4003 + 0.220GHD400B                 : ARR( 0.471E-13, -1350., 0.0);
+{ 10466} G2H400M +PERO3              =  0.600G1H400I + 0.200GHO4003 + 0.200GHD400B                 : ARR( 0.142E-12, -1200., 0.0);
+{ 10467} G2H400M +PERO5              =  0.600G1H400I + 0.200GHO4003 + 0.200GHD400B                 : ARR( 0.533E-11,   500., 0.0);
+{ 10468} G2H400M +PERO6              =  0.460G1H400I + 0.270GHO4003 + 0.270GHD400B                 : ARR( 0.488E-13, -1250., 0.0);
+{ 10469} G2H400M +PERO9              =  0.800G1H400I + 0.200GHD400B                                : ARR( 0.100E-10,     0., 0.0);
+{ 10470} GHD4003 +GHO                =       GDD4001 +      GHO                                    : ARR( 0.171E-10,     0., 0.0);
+{ 10471} GHD4003 +GHO                =       GHD4004 +      GHO2                                   : ARR( 0.348E-10,     0., 0.0);
+{ 10472} GHD4003 +GHO                =       G3H4006                                               : ARR( 0.221E-10,     0., 0.0);
+{ 10473} GHD4003 +GNO3               =       G3H4006 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 10474} GHD4003+HV               =       G1D4005 +      GHO                                    :  0.100E+01*SUN;
+{ 10475} GHD4003+HV               =       G2H3009 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 10476} GHD4003+HV               =       GHD2000 +      GD02000                                :  0.100E+01*SUN;
+{ 10477} G3H4006 +GHO2               =  0.800GGH4009 + 0.200GAH4009 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 10478} G3H4006 +GNO                =       G2H3009 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 10479} G3H4006 +GNO2               =       GPH4009                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 10480} G3H4006 +GNO3               =       G2H3009 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 10481} G3H4006 +MEPERO             =  0.685G2H3009 + 0.315GAH4009 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 10482} G3H4006 +PERO1              =  0.800G2H3009 + 0.200GAH4009 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 10483} G3H4006 +PERO2              =  0.750G2H3009 + 0.250GAH4009 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 10484} G3H4006 +PERO3              =  0.800G2H3009 + 0.200GAH4009 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 10485} G3H4006 +PERO5              =  0.650G2H3009 + 0.350GAH4009 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 10486} G3H4006 +PERO6              =  0.650G2H3009 + 0.350GAH4009 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 10487} G3H4006 +PERO9              =       G2H3009 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 10488} G2H3009 +GNO                =       G1H3007 +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{ 10489} G2H3009 +GNO                =       GHN3003                                               : ARR( 0.622E-13,  -360., 0.0);
+{ 10490} G2H3009 +GHO2               =       GHH3007                                               : ARR( 0.179E-12, -1250., 0.0);
+{ 10491} G2H3009 +GNO3               =       G1H3007 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 10492} G2H3009 +MEPERO             =  0.480G1H3007 + 0.260GHO3003 + 0.260GHD3005                 : ARR( 0.164E-12,  -795., 0.0);
+{ 10493} G2H3009 +PERO1              =  0.600G1H3007 + 0.200GHO3003 + 0.200GHD3005                 : ARR( 0.126E-12,  -850., 0.0);
+{ 10494} G2H3009 +PERO2              =  0.560G1H3007 + 0.220GHO3003 + 0.220GHD3005                 : ARR( 0.471E-13, -1350., 0.0);
+{ 10495} G2H3009 +PERO3              =  0.600G1H3007 + 0.200GHO3003 + 0.200GHD3005                 : ARR( 0.142E-12, -1200., 0.0);
+{ 10496} G2H3009 +PERO5              =  0.600G1H3007 + 0.200GHO3003 + 0.200GHD3005                 : ARR( 0.533E-11,   500., 0.0);
+{ 10497} G2H3009 +PERO6              =  0.460G1H3007 + 0.270GHO3003 + 0.270GHD3005                 : ARR( 0.488E-13, -1250., 0.0);
+{ 10498} G2H3009 +PERO9              =  0.800G1H3007 + 0.200GHD3005                                : ARR( 0.100E-10,     0., 0.0);
+{ 10499} GHN501H +GHO                =       GHN5048 +      GHO2                                   : ARR( 0.843E-12,     0., 0.0);
+{ 10500} GHN501H +GHO                =       GND500N +      GHO                                    : ARR( 0.103E-10,     0., 0.0);
+{ 10501} GHN501H +GHO                =       G2N501G                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 10502} GHN501H+HV               =       G1H500P +      GNO2                                   :  0.100E+01*SUN;
+{ 10503} GHN501H+HV               =       G3N4003 +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 10504} GHN501H+HV               =       GND2000 +      GHK3000                                :  0.100E+01*SUN;
+{ 10505} GHN501H+HV               =       G1N501I +      GHO                                    :  0.100E+01*SUN;
+{ 10506} GHH500K +GHO                =       GHK500E +      GHO                                    : ARR( 0.142E-09,     0., 0.0);
+{ 10507} GHH500K +GHO                =       GHD500S +      GHO                                    : ARR( 0.107E-10,     0., 0.0);
+{ 10508} GHH500K+HV               =       G1H500P +      GHO                                    :  0.100E+01*SUN;
+{ 10509} GHH500K+HV               =       G3H4003 +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 10510} GHH500K+HV               =       GHD2000 +      GHK3000                                :  0.100E+01*SUN;
+{ 10511} GHH500K+HV               =       G1H502E +      GHO                                    :  0.100E+01*SUN;
+{ 10512} GHK500E +GHO                =       GHD500r +      GHO2                                   : ARR( 0.255E-11,     0., 0.0);
+{ 10513} GHK500E +GHO                =       GDK500M +      GHO                                    : ARR( 0.102E-10,     0., 0.0);
+{ 10514} GHK500E +GHO                =       G2K500U                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 10515} GHK500E+HV               =       G3K2001 +      G2H3002                                :  0.100E+01*SUN;
+{ 10516} GHK500E+HV               =       G3K4007 +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 10517} GHK500E+HV               =       G1K500c +      GHO                                    :  0.100E+01*SUN;
+{ 10518} G2K500U +GNO                =       G1K500c +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 10519} G2K500U +GNO                =       GNK500Q                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 10520} G2K500U +GHO2               =       GHK500E                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 10521} G2K500U +GNO3               =       G1K500c +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 10522} G2K500U +MEPERO             =  0.480G1K500c + 0.260GKK5005 + 0.260GDK500M                 : ARR( 0.164E-12,  -795., 0.0);
+{ 10523} G2K500U +PERO1              =  0.600G1K500c + 0.200GKK5005 + 0.200GDK500M                 : ARR( 0.126E-12,  -850., 0.0);
+{ 10524} G2K500U +PERO2              =  0.560G1K500c + 0.220GKK5005 + 0.220GDK500M                 : ARR( 0.471E-13, -1350., 0.0);
+{ 10525} G2K500U +PERO3              =  0.600G1K500c + 0.200GKK5005 + 0.200GDK500M                 : ARR( 0.142E-12, -1200., 0.0);
+{ 10526} G2K500U +PERO5              =  0.600G1K500c + 0.200GKK5005 + 0.200GDK500M                 : ARR( 0.533E-11,   500., 0.0);
+{ 10527} G2K500U +PERO6              =  0.460G1K500c + 0.270GKK5005 + 0.270GDK500M                 : ARR( 0.488E-13, -1250., 0.0);
+{ 10528} G2K500U +PERO9              =  0.800G1K500c + 0.200GDK500M                                : ARR( 0.100E-10,     0., 0.0);
+{ 10529} GHD4004 +GHO                =       GDD4002 +      GHO                                    : ARR( 0.103E-10,     0., 0.0);
+{ 10530} GHD4004 +GHO                =       G3H4007                                               : ARR( 0.695E-10,     0., 0.0);
+{ 10531} GHD4004 +GNO3               =       G3H4007 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 10532} GHD4004+HV               =       G1D4006 +      GHO                                    :  0.100E+01*SUN;
+{ 10533} GHD4004+HV               =       G3H2000 +      G2D2000                                :  0.100E+01*SUN;
+{ 10534} GHD4004+HV               =       G2H3002 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 10535} G3H4007 +GHO2               =  0.800GGH400A + 0.200GAH400A + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 10536} G3H4007 +GNO                =       G2H3002 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 10537} G3H4007 +GNO2               =       GPH400A                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 10538} G3H4007 +GNO3               =       G2H3002 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 10539} G3H4007 +MEPERO             =  0.685G2H3002 + 0.315GAH400A + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 10540} G3H4007 +PERO1              =  0.800G2H3002 + 0.200GAH400A + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 10541} G3H4007 +PERO2              =  0.750G2H3002 + 0.250GAH400A + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 10542} G3H4007 +PERO3              =  0.800G2H3002 + 0.200GAH400A + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 10543} G3H4007 +PERO5              =  0.650G2H3002 + 0.350GAH400A + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 10544} G3H4007 +PERO6              =  0.650G2H3002 + 0.350GAH400A + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 10545} G3H4007 +PERO9              =       G2H3002 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 10546} GNN500q +GHO                =       G2N5037                                               : ARR( 0.173E-12,     0., 0.0);
+{ 10547} GNN500q +GHO                =       G2N501B                                               : ARR( 0.238E-12,     0., 0.0);
+{ 10548} GNN500q +GHO                =       GNN500z +      GHO2                                   : ARR( 0.832E-12,     0., 0.0);
+{ 10549} GNN500q +GHO                =       G1N501A                                               : ARR( 0.217E-17,    85., 2.0);
+{ 10550} GNN500q+HV               =       G1N5011 +      GNO2                                   :  0.100E+01*SUN;
+{ 10551} GNN500q+HV               =       G1N500x +      GNO2                                   :  0.100E+01*SUN;
+{ 10552} G2N5037 +GNO                =       G1N503Q +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 10553} G2N5037 +GNO                =       GNN501N                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 10554} G2N5037 +GHO2               =       GHN5049                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 10555} G2N5037 +GNO3               =       G1N503Q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 10556} G2N5037 +MEPERO             =  0.480G1N503Q + 0.260GNN501R + 0.260GNN502S                 : ARR( 0.146E-12,  -445., 0.0);
+{ 10557} G2N5037 +PERO1              =  0.600G1N503Q + 0.200GNN501R + 0.200GNN502S                 : ARR( 0.112E-12,  -500., 0.0);
+{ 10558} G2N5037 +PERO2              =  0.560G1N503Q + 0.220GNN501R + 0.220GNN502S                 : ARR( 0.418E-13, -1000., 0.0);
+{ 10559} G2N5037 +PERO3              =  0.600G1N503Q + 0.200GNN501R + 0.200GNN502S                 : ARR( 0.126E-12,  -850., 0.0);
+{ 10560} G2N5037 +PERO5              =  0.600G1N503Q + 0.200GNN501R + 0.200GNN502S                 : ARR( 0.473E-11,   850., 0.0);
+{ 10561} G2N5037 +PERO6              =  0.460G1N503Q + 0.270GNN501R + 0.270GNN502S                 : ARR( 0.434E-13,  -900., 0.0);
+{ 10562} G2N5037 +PERO9              =  0.800G1N503Q + 0.200GNN502S                                : ARR( 0.100E-10,     0., 0.0);
+{ 10563} G1N503Q +OXYGEN             =       GNN502S +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{ 10564} G1N503Q                     =       GNK500U +      GNO2                                   : ARR( 0.800E+11,  4743., 0.0);
+{ 10565} GHN501I +GHO                =       GNK500T +      GHO                                    : ARR( 0.858E-11,     0., 0.0);
+{ 10566} GHN501I +GHO                =       GHN5044 +      GHO2                                   : ARR( 0.419E-11,     0., 0.0);
+{ 10567} GHN501I +GHO                =       G2N500w                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 10568} GHN501I+HV               =       G1H502d +      GNO2                                   :  0.100E+01*SUN;
+{ 10569} GHN501I+HV               =       G1N500x +      GHO                                    :  0.100E+01*SUN;
+{ 10570} G1H502d                     =       GD03000 +      GDO2000 +      GHO                     : ARR( 0.200E+15,  4529., 0.0);
+{ 10571} GNO500O +GHO                =       GNK500T +      GHO2                                   : ARR( 0.233E-11,     0., 0.0);
+{ 10572} GNO500O +GHO                =       GND500O +      GHO2                                   : ARR( 0.455E-11,     0., 0.0);
+{ 10573} GNO500O+HV               =       G1O500L +      GNO2                                   :  0.100E+01*SUN;
+{ 10574} GNK500T +GHO                =       G2N5038                                               : ARR( 0.180E-12,     0., 0.0);
+{ 10575} GNK500T +GHO                =       G2N5039                                               : ARR( 0.247E-12,     0., 0.0);
+{ 10576} GNK500T +GHO                =       GND500R +      GHO2                                   : ARR( 0.263E-11,     0., 0.0);
+{ 10577} GNK500T+HV               =       G1K500D +      GNO2                                   :  0.100E+01*SUN;
+{ 10578} GNK500T+HV               =       G3N4004 +      GCH2O   +      GHO2                    :  0.100E+01*SUN;
+{ 10579} GNK500T+HV               =       GU02000 +      GNK3001                                :  0.100E+01*SUN;
+{ 10580} G2N5038 +GNO                =       G1N503R +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 10581} G2N5038 +GNO                =       GNN501Q                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 10582} G2N5038 +GHO2               =       GHN504A                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 10583} G2N5038 +GNO3               =       G1N503R +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 10584} G2N5038 +MEPERO             =  0.480G1N503R + 0.260GNK500U + 0.260GND500u                 : ARR( 0.146E-12,  -445., 0.0);
+{ 10585} G2N5038 +PERO1              =  0.600G1N503R + 0.200GNK500U + 0.200GND500u                 : ARR( 0.112E-12,  -500., 0.0);
+{ 10586} G2N5038 +PERO2              =  0.560G1N503R + 0.220GNK500U + 0.220GND500u                 : ARR( 0.418E-13, -1000., 0.0);
+{ 10587} G2N5038 +PERO3              =  0.600G1N503R + 0.200GNK500U + 0.200GND500u                 : ARR( 0.126E-12,  -850., 0.0);
+{ 10588} G2N5038 +PERO5              =  0.600G1N503R + 0.200GNK500U + 0.200GND500u                 : ARR( 0.473E-11,   850., 0.0);
+{ 10589} G2N5038 +PERO6              =  0.460G1N503R + 0.270GNK500U + 0.270GND500u                 : ARR( 0.434E-13,  -900., 0.0);
+{ 10590} G2N5038 +PERO9              =  0.800G1N503R + 0.200GND500u                                : ARR( 0.100E-10,     0., 0.0);
+{ 10591} G2N5039 +GNO                =       G1N503S +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 10592} G2N5039 +GNO                =       GNN5018                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 10593} G2N5039 +GHO2               =       GHN504B                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 10594} G2N5039 +GNO3               =       G1N503S +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 10595} G2N5039 +MEPERO             =  0.340G1N503S + 0.330GNK5013 + 0.330GNK500h                 : ARR( 0.565E-13,  -845., 0.0);
+{ 10596} G2N5039 +PERO1              =  0.460G1N503S + 0.270GNK5013 + 0.270GNK500h                 : ARR( 0.434E-13,  -900., 0.0);
+{ 10597} G2N5039 +PERO2              =  0.400G1N503S + 0.300GNK5013 + 0.300GNK500h                 : ARR( 0.162E-13, -1400., 0.0);
+{ 10598} G2N5039 +PERO3              =  0.460G1N503S + 0.270GNK5013 + 0.270GNK500h                 : ARR( 0.488E-13, -1250., 0.0);
+{ 10599} G2N5039 +PERO5              =  0.460G1N503S + 0.270GNK5013 + 0.270GNK500h                 : ARR( 0.183E-11,   450., 0.0);
+{ 10600} G2N5039 +PERO6              =  0.300G1N503S + 0.350GNK5013 + 0.350GNK500h                 : ARR( 0.168E-13, -1300., 0.0);
+{ 10601} G2N5039 +PERO9              =  0.650G1N503S + 0.350GNK500h                                : ARR( 0.100E-10,     0., 0.0);
+{ 10602} G1N503R +OXYGEN             =       GND500u +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{ 10603} G1N503S                     =       GND500v +      GHO2                                   : ARR( 0.160E+12,  4515., 0.0);
+{ 10604} G1N503S                     =       GD02000 +      GDK3001 +      GNO2                    : ARR( 0.200E+15,  6261., 0.0);
+{ 10605} GND4005 +GHO                =       G3N4004                                               : ARR( 0.462E-11,     0., 0.0);
+{ 10606} GND4005 +GNO3               =       G3N4004 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 10607} GND4005+HV               =       G1D4008 +      GNO2                                   :  0.100E+01*SUN;
+{ 10608} GND4005+HV               =       GD03000 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 10609} GND4005+HV               =       GU02000 +      GND2000                                :  0.100E+01*SUN;
+{ 10610} G1D4008                     =       GD03000 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5437., 0.0);
+{ 10611} GNN500r +GHO                =       GNN5019 +      GHO2                                   : ARR( 0.435E-11,     0., 0.0);
+{ 10612} GNN500r +GHO                =       GNN501Q +      GHO2                                   : ARR( 0.223E-11,     0., 0.0);
+{ 10613} GNN500r+HV               =       G1N5012 +      GNO2                                   :  0.100E+01*SUN;
+{ 10614} GNN500r+HV               =       G1N500y +      GNO2                                   :  0.100E+01*SUN;
+{ 10615} GHN501J +GHO                =       GHN5046 +      GHO2                                   : ARR( 0.413E-11,     0., 0.0);
+{ 10616} GHN501J +GHO                =       GHN504A +      GHO2                                   : ARR( 0.212E-11,     0., 0.0);
+{ 10617} GHN501J +GHO                =       GND500I +      GHO                                    : ARR( 0.165E-10,     0., 0.0);
+{ 10618} GHN501J +GHO                =       G2N500x                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 10619} GHN501J+HV               =       G1H502e +      GNO2                                   :  0.100E+01*SUN;
+{ 10620} GHN501J+HV               =       G1N500y +      GHO                                    :  0.100E+01*SUN;
+{ 10621} G1H502e                     =       GDO2000 +      GHD3000 +      GHO2                    : ARR( 0.200E+15,  3320., 0.0);
+{ 10622} GNO500P +GHO                =       GND500Y +      GHO2                                   : ARR( 0.435E-11,     0., 0.0);
+{ 10623} GNO500P +GHO                =       GNK500U +      GHO2                                   : ARR( 0.223E-11,     0., 0.0);
+{ 10624} GNO500P +GHO                =       GND500I +      GHO2                                   : ARR( 0.435E-11,     0., 0.0);
+{ 10625} GNO500P+HV               =       G1O500M +      GNO2                                   :  0.100E+01*SUN;
+{ 10626} GND500I +GHO                =       GND500a +      GHO2                                   : ARR( 0.414E-11,     0., 0.0);
+{ 10627} GND500I +GHO                =       GND500u +      GHO2                                   : ARR( 0.212E-11,     0., 0.0);
+{ 10628} GND500I +GHO                =       G3N500K                                               : ARR( 0.214E-10,     0., 0.0);
+{ 10629} GND500I +GNO3               =       G3N500K +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 10630} GND500I+HV               =       G1D5006 +      GNO2                                   :  0.100E+01*SUN;
+{ 10631} GND500I+HV               =       G2N400N +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 10632} GND500I+HV               =       GNK3001 +      GD02000                                :  0.100E+01*SUN;
+{ 10633} G3N500K +GHO2               =  0.800GGN500N + 0.200GAN500N + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 10634} G3N500K +GNO                =       G2N400N +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 10635} G3N500K +GNO2               =       GPN500N                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 10636} G3N500K +GNO3               =       G2N400N +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 10637} G3N500K +MEPERO             =  0.685G2N400N + 0.315GAN500N + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 10638} G3N500K +PERO1              =  0.800G2N400N + 0.200GAN500N + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 10639} G3N500K +PERO2              =  0.750G2N400N + 0.250GAN500N + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 10640} G3N500K +PERO3              =  0.800G2N400N + 0.200GAN500N + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 10641} G3N500K +PERO5              =  0.650G2N400N + 0.350GAN500N + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 10642} G3N500K +PERO6              =  0.650G2N400N + 0.350GAN500N + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 10643} G3N500K +PERO9              =       G2N400N +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 10644} G2N400N +GNO                =       G1N400O +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 10645} G2N400N +GNO                =       GNN400K                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 10646} G2N400N +GHO2               =       GHN400a                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 10647} G2N400N +GNO3               =       G1N400O +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 10648} G2N400N +MEPERO             =  0.480G1N400O + 0.260GNO4009 + 0.260GND400A                 : ARR( 0.164E-12,  -795., 0.0);
+{ 10649} G2N400N +PERO1              =  0.600G1N400O + 0.200GNO4009 + 0.200GND400A                 : ARR( 0.126E-12,  -850., 0.0);
+{ 10650} G2N400N +PERO2              =  0.560G1N400O + 0.220GNO4009 + 0.220GND400A                 : ARR( 0.471E-13, -1350., 0.0);
+{ 10651} G2N400N +PERO3              =  0.600G1N400O + 0.200GNO4009 + 0.200GND400A                 : ARR( 0.142E-12, -1200., 0.0);
+{ 10652} G2N400N +PERO5              =  0.600G1N400O + 0.200GNO4009 + 0.200GND400A                 : ARR( 0.533E-11,   500., 0.0);
+{ 10653} G2N400N +PERO6              =  0.460G1N400O + 0.270GNO4009 + 0.270GND400A                 : ARR( 0.488E-13, -1250., 0.0);
+{ 10654} G2N400N +PERO9              =  0.800G1N400O + 0.200GND400A                                : ARR( 0.100E-10,     0., 0.0);
+{ 10655} G1N400O                     =       GND4009 +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{ 10656} GNK500U +GHO                =       GND500u +      GHO2                                   : ARR( 0.442E-11,     0., 0.0);
+{ 10657} GNK500U +GHO                =       GND500Z +      GHO2                                   : ARR( 0.269E-11,     0., 0.0);
+{ 10658} GNK500U+HV               =       G1K500F +      GNO2                                   :  0.100E+01*SUN;
+{ 10659} GNK500U+HV               =       G3N4008 +      GCH2O   +      GHO2                    :  0.100E+01*SUN;
+{ 10660} GNK500U+HV               =       GD02000 +      GNK3001                                :  0.100E+01*SUN;
+{ 10661} GNO500Q +GHO                =       G2N502i                                               : ARR( 0.131E-11,     0., 0.0);
+{ 10662} GNO500Q +GHO                =       GNK500W +      GHO2                                   : ARR( 0.235E-11,     0., 0.0);
+{ 10663} GNO500Q +GHO                =       GND500w +      GHO2                                   : ARR( 0.918E-12,     0., 0.0);
+{ 10664} GNO500Q+HV               =       G1O500K +      GNO2                                   :  0.100E+01*SUN;
+{ 10665} GHO500J +GHO                =       GHK500F +      GHO2                                   : ARR( 0.106E-10,     0., 0.0);
+{ 10666} GHO500J +GHO                =       GKO500C +      GHO                                    : ARR( 0.423E-10,     0., 0.0);
+{ 10667} GHO500J +GHO                =       GHD500j +      GHO2                                   : ARR( 0.413E-11,     0., 0.0);
+{ 10668} GHO500J +GHO                =       G2O500J                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 10669} GHO500J+HV               =       G1O500K +      GHO                                    :  0.100E+01*SUN;
+{ 10670} GOO5009 +GHO                =       GKO500D +      GHO2                                   : ARR( 0.110E-10,     0., 0.0);
+{ 10671} GOO5009 +GHO                =       GKO500C +      GHO2                                   : ARR( 0.110E-10,     0., 0.0);
+{ 10672} GOO5009 +GHO                =       GDO500C +      GHO2                                   : ARR( 0.430E-11,     0., 0.0);
+{ 10673} GKO500C +GHO                =       G2K500W                                               : ARR( 0.377E-11,     0., 0.0);
+{ 10674} GKO500C +GHO                =       GKK5004 +      GHO2                                   : ARR( 0.651E-11,     0., 0.0);
+{ 10675} GKO500C +GHO                =       GDK500O +      GHO2                                   : ARR( 0.254E-11,     0., 0.0);
+{ 10676} GKO500C+HV               =       G3K4004 +      GCH2O   +      GHO2                    :  0.100E+01*SUN;
+{ 10677} G2K500W +GNO                =       G1K500f +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 10678} G2K500W +GNO                =       GNK500k                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 10679} G2K500W +GHO2               =       GHK500h                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 10680} G2K500W +GNO3               =       G1K500f +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 10681} G2K500W +MEPERO             =  0.340G1K500f + 0.330GKO500J + 0.330GKK500C                 : ARR( 0.565E-13,  -845., 0.0);
+{ 10682} G2K500W +PERO1              =  0.460G1K500f + 0.270GKO500J + 0.270GKK500C                 : ARR( 0.434E-13,  -900., 0.0);
+{ 10683} G2K500W +PERO2              =  0.400G1K500f + 0.300GKO500J + 0.300GKK500C                 : ARR( 0.162E-13, -1400., 0.0);
+{ 10684} G2K500W +PERO3              =  0.460G1K500f + 0.270GKO500J + 0.270GKK500C                 : ARR( 0.488E-13, -1250., 0.0);
+{ 10685} G2K500W +PERO5              =  0.460G1K500f + 0.270GKO500J + 0.270GKK500C                 : ARR( 0.183E-11,   450., 0.0);
+{ 10686} G2K500W +PERO6              =  0.300G1K500f + 0.350GKO500J + 0.350GKK500C                 : ARR( 0.168E-13, -1300., 0.0);
+{ 10687} G2K500W +PERO9              =  0.650G1K500f + 0.350GKK500C                                : ARR( 0.100E-10,     0., 0.0);
+{ 10688} G1K500f                     =       GD02000 +      GDK3001 +      GHO2                    : ARR( 0.200E+15,  3513., 0.0);
+{ 10689} GNK500W +GHO                =       G2N503A                                               : ARR( 0.549E-12,     0., 0.0);
+{ 10690} GNK500W +GHO                =       G2N502b                                               : ARR( 0.724E-12,     0., 0.0);
+{ 10691} GNK500W +GHO                =       GND500j +      GHO2                                   : ARR( 0.831E-12,     0., 0.0);
+{ 10692} GNK500W +GHO                =       G1N502p                                               : ARR( 0.217E-17,    85., 2.0);
+{ 10693} GNK500W+HV               =       G3K3000 +      GDO2000 +      GNO2                    :  0.100E+01*SUN;
+{ 10694} GNK500W+HV               =       G1K500B +      GNO2                                   :  0.100E+01*SUN;
+{ 10695} G2N503A +GNO                =       G1N503T +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 10696} G2N503A +GNO                =       GNN501P                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 10697} G2N503A +GHO2               =       GHN504C                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 10698} G2N503A +GNO3               =       G1N503T +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 10699} G2N503A +MEPERO             =  0.480G1N503T + 0.260GNK500o + 0.260GND500x                 : ARR( 0.146E-12,  -445., 0.0);
+{ 10700} G2N503A +PERO1              =  0.600G1N503T + 0.200GNK500o + 0.200GND500x                 : ARR( 0.112E-12,  -500., 0.0);
+{ 10701} G2N503A +PERO2              =  0.560G1N503T + 0.220GNK500o + 0.220GND500x                 : ARR( 0.418E-13, -1000., 0.0);
+{ 10702} G2N503A +PERO3              =  0.600G1N503T + 0.200GNK500o + 0.200GND500x                 : ARR( 0.126E-12,  -850., 0.0);
+{ 10703} G2N503A +PERO5              =  0.600G1N503T + 0.200GNK500o + 0.200GND500x                 : ARR( 0.473E-11,   850., 0.0);
+{ 10704} G2N503A +PERO6              =  0.460G1N503T + 0.270GNK500o + 0.270GND500x                 : ARR( 0.434E-13,  -900., 0.0);
+{ 10705} G2N503A +PERO9              =  0.800G1N503T + 0.200GND500x                                : ARR( 0.100E-10,     0., 0.0);
+{ 10706} G1N503T +OXYGEN             =       GND500x +      GHO2                                   : ARR( 0.600E-13,   398., 0.0);
+{ 10707} GHK500F +GHO                =       GKK5004 +      GHO                                    : ARR( 0.260E-10,     0., 0.0);
+{ 10708} GHK500F +GHO                =       GHD500T +      GHO2                                   : ARR( 0.132E-10,     0., 0.0);
+{ 10709} GHK500F +GHO                =       G2K500A                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 10710} GHK500F+HV               =       G3K3000 +      GDO2000 +      GHO                     :  0.100E+01*SUN;
+{ 10711} GHK500F+HV               =       G1K500B +      GHO                                    :  0.100E+01*SUN;
+{ 10712} GKO500D +GHO                =       GKK5004 +      GHO2                                   : ARR( 0.678E-11,     0., 0.0);
+{ 10713} GKO500D +GHO                =       GDK5009 +      GHO2                                   : ARR( 0.138E-10,     0., 0.0);
+{ 10714} GKO500D+HV               =       G3K3000 +      GDO2000 +      GHO2                    :  0.100E+01*SUN;
+{ 10715} GKK5004 +GHO                =       G2K500X                                               : ARR( 0.552E-12,     0., 0.0);
+{ 10716} GKK5004 +GHO                =       G2K500Y                                               : ARR( 0.727E-12,     0., 0.0);
+{ 10717} GKK5004 +GHO                =       GDK500E +      GHO2                                   : ARR( 0.255E-11,     0., 0.0);
+{ 10718} GKK5004+HV               =       G3K3000 +      G3K2001                                :  0.100E+01*SUN;
+{ 10719} G2K500X +GNO                =       G1K500g +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 10720} G2K500X +GNO                =       GNK500n                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 10721} G2K500X +GHO2               =       GHK500i                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 10722} G2K500X +GNO3               =       G1K500g +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 10723} G2K500X +MEPERO             =  0.480G1K500g + 0.260GKK5006 + 0.260GDK500P                 : ARR( 0.146E-12,  -445., 0.0);
+{ 10724} G2K500X +PERO1              =  0.600G1K500g + 0.200GKK5006 + 0.200GDK500P                 : ARR( 0.112E-12,  -500., 0.0);
+{ 10725} G2K500X +PERO2              =  0.560G1K500g + 0.220GKK5006 + 0.220GDK500P                 : ARR( 0.418E-13, -1000., 0.0);
+{ 10726} G2K500X +PERO3              =  0.600G1K500g + 0.200GKK5006 + 0.200GDK500P                 : ARR( 0.126E-12,  -850., 0.0);
+{ 10727} G2K500X +PERO5              =  0.600G1K500g + 0.200GKK5006 + 0.200GDK500P                 : ARR( 0.473E-11,   850., 0.0);
+{ 10728} G2K500X +PERO6              =  0.460G1K500g + 0.270GKK5006 + 0.270GDK500P                 : ARR( 0.434E-13,  -900., 0.0);
+{ 10729} G2K500X +PERO9              =  0.800G1K500g + 0.200GDK500P                                : ARR( 0.100E-10,     0., 0.0);
+{ 10730} G2K500Y +GNO                =       G1K500h +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 10731} G2K500Y +GNO                =       GNK500j                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 10732} G2K500Y +GHO2               =       GHK500j                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 10733} G2K500Y +GNO3               =       G1K500h +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 10734} G2K500Y +MEPERO             =  0.340G1K500h + 0.330GKK500D + 0.330GKK500B                 : ARR( 0.565E-13,  -845., 0.0);
+{ 10735} G2K500Y +PERO1              =  0.460G1K500h + 0.270GKK500D + 0.270GKK500B                 : ARR( 0.434E-13,  -900., 0.0);
+{ 10736} G2K500Y +PERO2              =  0.400G1K500h + 0.300GKK500D + 0.300GKK500B                 : ARR( 0.162E-13, -1400., 0.0);
+{ 10737} G2K500Y +PERO3              =  0.460G1K500h + 0.270GKK500D + 0.270GKK500B                 : ARR( 0.488E-13, -1250., 0.0);
+{ 10738} G2K500Y +PERO5              =  0.460G1K500h + 0.270GKK500D + 0.270GKK500B                 : ARR( 0.183E-11,   450., 0.0);
+{ 10739} G2K500Y +PERO6              =  0.300G1K500h + 0.350GKK500D + 0.350GKK500B                 : ARR( 0.168E-13, -1300., 0.0);
+{ 10740} G2K500Y +PERO9              =  0.650G1K500h + 0.350GKK500B                                : ARR( 0.100E-10,     0., 0.0);
+{ 10741} G1K500g +OXYGEN             =       GDK500P +      GHO2                                   : ARR( 0.600E-13,   398., 0.0);
+{ 10742} G1K500h                     =       GD02000 +      G3K2001 +      GCO                     : ARR( 0.200E+15,  3071., 0.0);
+{ 10743} GHN501K +GHO                =       G2H500t                                               : ARR( 0.150E-11,     0., 0.0);
+{ 10744} GHN501K +GHO                =       GND500J +      GHO                                    : ARR( 0.171E-10,     0., 0.0);
+{ 10745} GHN501K +GHO                =       G2N500y                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 10746} GHN501K+HV               =       G1H502f +      GNO2                                   :  0.100E+01*SUN;
+{ 10747} GHN501K+HV               =       G1N500z +      GHO                                    :  0.100E+01*SUN;
+{ 10748} G1H502f                     =       GDO5001 +      GHO                                    : ARR( 0.160E+12,  2186., 0.0);
+{ 10749} G1H502f                     =       GCH2O   +      GHD4001 +      GHO2                    : ARR( 0.200E+15,  5041., 0.0);
+{ 10750} GND500J +GHO                =       G3N500L                                               : ARR( 0.236E-10,     0., 0.0);
+{ 10751} GND500J +GNO3               =       G3N500L +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 10752} GND500J+HV               =       G1D500X +      GNO2                                   :  0.100E+01*SUN;
+{ 10753} GND500J+HV               =       G2N4003 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 10754} GND500J+HV               =       G2K3001 +      GD02000 +      GNO2                    :  0.100E+01*SUN;
+{ 10755} G3N500L +GHO2               =  0.800GGN500O + 0.200GAN500O + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 10756} G3N500L +GNO                =       G2N4003 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 10757} G3N500L +GNO2               =       GPN500O                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 10758} G3N500L +GNO3               =       G2N4003 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 10759} G3N500L +MEPERO             =  0.685G2N4003 + 0.315GAN500O + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 10760} G3N500L +PERO1              =  0.800G2N4003 + 0.200GAN500O + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 10761} G3N500L +PERO2              =  0.750G2N4003 + 0.250GAN500O + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 10762} G3N500L +PERO3              =  0.800G2N4003 + 0.200GAN500O + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 10763} G3N500L +PERO5              =  0.650G2N4003 + 0.350GAN500O + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 10764} G3N500L +PERO6              =  0.650G2N4003 + 0.350GAN500O + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 10765} G3N500L +PERO9              =       G2N4003 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 10766} G1D500X                     =       GCH2O   +      GDD4000 +      GHO2                    : ARR( 0.200E+15,  5041., 0.0);
+{ 10767} GHN501L +GHO                =       G2H500x                                               : ARR( 0.118E-11,     0., 0.0);
+{ 10768} GHN501L +GHO                =       GNK500W +      GHO                                    : ARR( 0.850E-11,     0., 0.0);
+{ 10769} GHN501L +GHO                =       GHN504D +      GHO2                                   : ARR( 0.829E-12,     0., 0.0);
+{ 10770} GHN501L +GHO                =       G2N500z                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 10771} GHN501L+HV               =       G1N5011 +      GHO                                    :  0.100E+01*SUN;
+{ 10772} GHN501L+HV               =       G1H502g +      GNO2                                   :  0.100E+01*SUN;
+{ 10773} G1H502g                     =       G2H501X                                               : ARR( 0.240E+12,  4177., 0.0);
+{ 10774} G1H502g                     =       GD03000 +      GDO2000 +      GHO                     : ARR( 0.200E+15,  5200., 0.0);
+{ 10775} G1H502g                     =       GHD4005 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  5296., 0.0);
+{ 10776} G2H501X +GNO                =       G1H502h +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 10777} G2H501X +GNO                =       GHN501M                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 10778} G2H501X +GHO2               =       GHH501Y                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 10779} G2H501X +GNO3               =       G1H502h +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 10780} G2H501X +MEPERO             =  0.480G1H502h + 0.260GHO500L + 0.260GHD500D                 : ARR( 0.146E-12,  -445., 0.0);
+{ 10781} G2H501X +PERO1              =  0.600G1H502h + 0.200GHO500L + 0.200GHD500D                 : ARR( 0.112E-12,  -500., 0.0);
+{ 10782} G2H501X +PERO2              =  0.560G1H502h + 0.220GHO500L + 0.220GHD500D                 : ARR( 0.418E-13, -1000., 0.0);
+{ 10783} G2H501X +PERO3              =  0.600G1H502h + 0.200GHO500L + 0.200GHD500D                 : ARR( 0.126E-12,  -850., 0.0);
+{ 10784} G2H501X +PERO5              =  0.600G1H502h + 0.200GHO500L + 0.200GHD500D                 : ARR( 0.473E-11,   850., 0.0);
+{ 10785} G2H501X +PERO6              =  0.460G1H502h + 0.270GHO500L + 0.270GHD500D                 : ARR( 0.434E-13,  -900., 0.0);
+{ 10786} G2H501X +PERO9              =  0.800G1H502h + 0.200GHD500D                                : ARR( 0.100E-10,     0., 0.0);
+{ 10787} G1H502h                     =       GHK500J +      GHO2                                   : ARR( 0.800E+11,  2025., 0.0);
+{ 10788} GHO500K +GHO                =       GKO500D +      GHO                                    : ARR( 0.423E-10,     0., 0.0);
+{ 10789} GHO500K +GHO                =       GHK500H +      GHO2                                   : ARR( 0.106E-10,     0., 0.0);
+{ 10790} GHO500K +GHO                =       GHD500k +      GHO2                                   : ARR( 0.413E-11,     0., 0.0);
+{ 10791} GHO500K +GHO                =       G2O500K                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 10792} GHO500K+HV               =       G1O500L +      GHO                                    :  0.100E+01*SUN;
+{ 10793} GHK500G +GHO                =       GKK5003 +      GHO                                    : ARR( 0.113E-09,     0., 0.0);
+{ 10794} GHK500G+HV               =       G1K500C +      GHO                                    :  0.100E+01*SUN;
+{ 10795} GHK500G+HV               =       G3H4001 +      GCH2O   +      GHO2                    :  0.100E+01*SUN;
+{ 10796} GHK500G+HV               =       G2D2000 +      GKO3000 +      GHO                     :  0.100E+01*SUN;
+{ 10797} GHK500H +GHO                =       G2H501Y                                               : ARR( 0.367E-11,     0., 0.0);
+{ 10798} GHK500H +GHO                =       GKK5004 +      GHO                                    : ARR( 0.254E-10,     0., 0.0);
+{ 10799} GHK500H +GHO                =       GHD500s +      GHO2                                   : ARR( 0.247E-11,     0., 0.0);
+{ 10800} GHK500H +GHO                =       G2K500C                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 10801} GHK500H+HV               =       G1K500D +      GHO                                    :  0.100E+01*SUN;
+{ 10802} GHK500H+HV               =       G3H4000 +      GCH2O   +      GHO2                    :  0.100E+01*SUN;
+{ 10803} G2H501Y +GNO                =       G1H502i +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 10804} G2H501Y +GNO                =       GHN501r                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 10805} G2H501Y +GHO2               =       GHH501Z                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 10806} G2H501Y +GNO3               =       G1H502i +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 10807} G2H501Y +MEPERO             =  0.340G1H502i + 0.330GHK500k + 0.330GHK500Y                 : ARR( 0.565E-13,  -845., 0.0);
+{ 10808} G2H501Y +PERO1              =  0.460G1H502i + 0.270GHK500k + 0.270GHK500Y                 : ARR( 0.434E-13,  -900., 0.0);
+{ 10809} G2H501Y +PERO2              =  0.400G1H502i + 0.300GHK500k + 0.300GHK500Y                 : ARR( 0.162E-13, -1400., 0.0);
+{ 10810} G2H501Y +PERO3              =  0.460G1H502i + 0.270GHK500k + 0.270GHK500Y                 : ARR( 0.488E-13, -1250., 0.0);
+{ 10811} G2H501Y +PERO5              =  0.460G1H502i + 0.270GHK500k + 0.270GHK500Y                 : ARR( 0.183E-11,   450., 0.0);
+{ 10812} G2H501Y +PERO6              =  0.300G1H502i + 0.350GHK500k + 0.350GHK500Y                 : ARR( 0.168E-13, -1300., 0.0);
+{ 10813} G2H501Y +PERO9              =  0.650G1H502i + 0.350GHK500Y                                : ARR( 0.100E-10,     0., 0.0);
+{ 10814} G1H502i                     =       GD02000 +      GDK3001 +      GHO                     : ARR( 0.200E+15,  4722., 0.0);
+{ 10815} GKO3001 +GHO                =       GDK3001 +      GHO2                                   : ARR( 0.490E-11,     0., 0.0);
+{ 10816} GKO3001 +GHO                =       G1K3001                                               : ARR( 0.420E-17,    85., 2.0);
+{ 10817} GKO3001+HV               =       G3K2001 +      GCH2O   +      GHO2                    :  0.100E+01*SUN;
+{ 10818} GDK3001 +GHO                =       GDD3002 +      GHO2                                   : ARR( 0.247E-11,     0., 0.0);
+{ 10819} GDK3001 +GHO                =       G3K2001 +      GCO                                    : ARR( 0.128E-10,     0., 0.0);
+{ 10820} GDK3001 +GNO3               =       G3K2001 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 10821} GDK3001+HV               =       G3K2001 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 10822} GDK3001+HV               =       GDO2000 +      GCO                                    :  0.100E+01*SUN;
+{ 10823} GDK3001+HV               =       GCH3OH  +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 10824} GGO2000 +GHO                =       GGD2000 +      GHO2                                   : ARR( 0.251E-11,     0., 0.0);
+{ 10825} GGO2000 +GHO                =       G3K2001                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 10826} GGO2000+HV               =       GCH2O   +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 10827} GAO2000 +GHO                =       GAD2000 +      GHO2                                   : ARR( 0.181E-11,     0., 0.0);
+{ 10828} GAO2000 +GHO                =       G1A2000                                               : ARR( 0.210E-17,    85., 2.0);
+{ 10829} GAO2000 +GHO                =       GCH2O   +      GHO2    +      GCO2                    : ARR( 0.520E-12,     0., 0.0);
+{ 10830}  GPO2000    +M                 =       G3K2001 +      GNO2            +M                     : FALL( 0.280E+17, 13580., 0.0, 0.190E-02, 12175., 0.0,0.60);
+{ 10831} GPO2000 +GHO                =       GPD2000 +      GHO2                                   : ARR( 0.245E-11,     0., 0.0);
+{ 10832} GPO2000 +GHO                =       G1P2000                                               : ARR( 0.210E-17,    85., 2.0);
+{ 10833} GPO2000+HV               =       G3K2001 +      GNO2                                   :  0.100E+01*SUN;
+{ 10834} GHN501M +GHO                =       GHN5045 +      GHO2                                   : ARR( 0.406E-11,     0., 0.0);
+{ 10835} GHN501M +GHO                =       GHN502K +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 10836} GHN501M +GHO                =       GNK500X +      GHO                                    : ARR( 0.416E-10,     0., 0.0);
+{ 10837} GHN501M +GHO                =       G2N5011                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 10838} GHN501M+HV               =       G1N5012 +      GHO                                    :  0.100E+01*SUN;
+{ 10839} GHN501M+HV               =       G1H502h +      GNO2                                   :  0.100E+01*SUN;
+{ 10840} GNO500R +GHO                =       GND500t +      GHO2                                   : ARR( 0.414E-11,     0., 0.0);
+{ 10841} GNO500R +GHO                =       GNK500m +      GHO2                                   : ARR( 0.106E-10,     0., 0.0);
+{ 10842} GNO500R +GHO                =       GNK500X +      GHO2                                   : ARR( 0.106E-10,     0., 0.0);
+{ 10843} GNO500R+HV               =       G1O500Z +      GNO2                                   :  0.100E+01*SUN;
+{ 10844} G1O500Z                     =       GKO500F +      GHO2                                   : ARR( 0.800E+11,  2025., 0.0);
+{ 10845} GNK500X +GHO                =       GND500U +      GHO2                                   : ARR( 0.132E-10,     0., 0.0);
+{ 10846} GNK500X +GHO                =       GNK500n +      GHO2                                   : ARR( 0.648E-11,     0., 0.0);
+{ 10847} GNK500X+HV               =       G3K3003 +      G2N2000                                :  0.100E+01*SUN;
+{ 10848} GNK500X+HV               =       G1K500i +      GNO2                                   :  0.100E+01*SUN;
+{ 10849} G3K3003 +GHO2               =  0.800GGO3002 + 0.200GAO3002 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 10850} G3K3003 +GNO                =       GDO2000 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 10851} G3K3003 +GNO2               =       GPO3002                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 10852} G3K3003 +GNO3               =       GDO2000 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 10853} G3K3003 +MEPERO             =  0.685GDO2000 + 0.315GAO3002 + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 10854} G3K3003 +PERO1              =  0.800GDO2000 + 0.200GAO3002 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 10855} G3K3003 +PERO2              =  0.750GDO2000 + 0.250GAO3002 + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 10856} G3K3003 +PERO3              =  0.800GDO2000 + 0.200GAO3002 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 10857} G3K3003 +PERO5              =  0.650GDO2000 + 0.350GAO3002 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 10858} G3K3003 +PERO6              =  0.650GDO2000 + 0.350GAO3002 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 10859} G3K3003 +PERO9              =       GDO2000 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 10860} G1K500i +OXYGEN             =       GDK5008 +      GHO2                                   : ARR( 0.600E-13,   398., 0.0);
+{ 10861} G1K500i                     =       GKK5006 +      GHO2                                   : ARR( 0.800E+11,  4007., 0.0);
+{ 10862} GHK500I +GHO                =       GHD500m +      GHO2                                   : ARR( 0.254E-11,     0., 0.0);
+{ 10863} GHK500I +GHO                =       G2H501Z                                               : ARR( 0.465E-11,     0., 0.0);
+{ 10864} GHK500I +GHO                =       GDK5007 +      GHO                                    : ARR( 0.167E-10,     0., 0.0);
+{ 10865} GHK500I +GHO                =       G2K500Z                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 10866} GHK500I+HV               =       G3K2001 +      G2H3006                                :  0.100E+01*SUN;
+{ 10867} GHK500I+HV               =       GKO3000 +      G2D2000 +      GHO                     :  0.100E+01*SUN;
+{ 10868} GHK500I+HV               =       G1K500S +      GHO                                    :  0.100E+01*SUN;
+{ 10869} G2H501Z +GNO                =       G1H502j +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 10870} G2H501Z +GNO                =       GHN502I                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 10871} G2H501Z +GHO2               =       GHH501K                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 10872} G2H501Z +GNO3               =       G1H502j +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 10873} G2H501Z +MEPERO             =  0.340G1H502j + 0.330GHK500W + 0.330GHK500E                 : ARR( 0.565E-13,  -845., 0.0);
+{ 10874} G2H501Z +PERO1              =  0.460G1H502j + 0.270GHK500W + 0.270GHK500E                 : ARR( 0.434E-13,  -900., 0.0);
+{ 10875} G2H501Z +PERO2              =  0.400G1H502j + 0.300GHK500W + 0.300GHK500E                 : ARR( 0.162E-13, -1400., 0.0);
+{ 10876} G2H501Z +PERO3              =  0.460G1H502j + 0.270GHK500W + 0.270GHK500E                 : ARR( 0.488E-13, -1250., 0.0);
+{ 10877} G2H501Z +PERO5              =  0.460G1H502j + 0.270GHK500W + 0.270GHK500E                 : ARR( 0.183E-11,   450., 0.0);
+{ 10878} G2H501Z +PERO6              =  0.300G1H502j + 0.350GHK500W + 0.350GHK500E                 : ARR( 0.168E-13, -1300., 0.0);
+{ 10879} G2H501Z +PERO9              =  0.650G1H502j + 0.350GHK500E                                : ARR( 0.100E-10,     0., 0.0);
+{ 10880} G2K500Z +GNO                =       G1K500S +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 10881} G2K500Z +GNO                =       GNK500D                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 10882} G2K500Z +GHO2               =       GHK500I                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 10883} G2K500Z +GNO3               =       G1K500S +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 10884} G2K500Z +MEPERO             =  0.480G1K500S + 0.260GKO5003 + 0.260GDK5007                 : ARR( 0.146E-12,  -445., 0.0);
+{ 10885} G2K500Z +PERO1              =  0.600G1K500S + 0.200GKO5003 + 0.200GDK5007                 : ARR( 0.112E-12,  -500., 0.0);
+{ 10886} G2K500Z +PERO2              =  0.560G1K500S + 0.220GKO5003 + 0.220GDK5007                 : ARR( 0.418E-13, -1000., 0.0);
+{ 10887} G2K500Z +PERO3              =  0.600G1K500S + 0.200GKO5003 + 0.200GDK5007                 : ARR( 0.126E-12,  -850., 0.0);
+{ 10888} G2K500Z +PERO5              =  0.600G1K500S + 0.200GKO5003 + 0.200GDK5007                 : ARR( 0.473E-11,   850., 0.0);
+{ 10889} G2K500Z +PERO6              =  0.460G1K500S + 0.270GKO5003 + 0.270GDK5007                 : ARR( 0.434E-13,  -900., 0.0);
+{ 10890} G2K500Z +PERO9              =  0.800G1K500S + 0.200GDK5007                                : ARR( 0.100E-10,     0., 0.0);
+{ 10891} G1H502j                     =       GHD500e +      GHO2                                   : ARR( 0.160E+12,  4515., 0.0);
+{ 10892} G1H502j                     =       G2K3001 +      GHD2000                                : ARR( 0.200E+15,  7289., 0.0);
+{ 10893} G1H502j                     =       GDK4001 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  6757., 0.0);
+{ 10894} GHO500L +GHO                =       GHD500M +      GHO2                                   : ARR( 0.414E-11,     0., 0.0);
+{ 10895} GHO500L +GHO                =       GHK500J +      GHO2                                   : ARR( 0.106E-10,     0., 0.0);
+{ 10896} GHO500L +GHO                =       GKO500E +      GHO                                    : ARR( 0.424E-10,     0., 0.0);
+{ 10897} GHO500L +GHO                =       GHD500D +      GHO2                                   : ARR( 0.414E-11,     0., 0.0);
+{ 10898} GHO500L +GHO                =       G2O500L                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 10899} GHO500L+HV               =       G1O500M +      GHO                                    :  0.100E+01*SUN;
+{ 10900} GOO500A +GHO                =       GDO5008 +      GHO2                                   : ARR( 0.430E-11,     0., 0.0);
+{ 10901} GOO500A +GHO                =       GKO500E +      GHO2                                   : ARR( 0.110E-10,     0., 0.0);
+{ 10902} GOO500A +GHO                =       GKO500F +      GHO2                                   : ARR( 0.110E-10,     0., 0.0);
+{ 10903} GOO500A +GHO                =       GDO500B +      GHO2                                   : ARR( 0.430E-11,     0., 0.0);
+{ 10904} GKO500E +GHO                =       GDK500K +      GHO2                                   : ARR( 0.133E-10,     0., 0.0);
+{ 10905} GKO500E +GHO                =       GKK5006 +      GHO2                                   : ARR( 0.654E-11,     0., 0.0);
+{ 10906} GKO500E +GHO                =       GDK5008 +      GHO2                                   : ARR( 0.133E-10,     0., 0.0);
+{ 10907} GKO500E+HV               =       G3K3003 +      G2O2000                                :  0.100E+01*SUN;
+{ 10908} GDK5007 +GHO                =       GDD5004 +      GHO2                                   : ARR( 0.246E-11,     0., 0.0);
+{ 10909} GDK5007 +GHO                =       G2D500P                                               : ARR( 0.275E-11,     0., 0.0);
+{ 10910} GDK5007 +GHO                =       G2D500Q                                               : ARR( 0.275E-11,     0., 0.0);
+{ 10911} GDK5007 +GHO                =       G3K500C                                               : ARR( 0.209E-10,     0., 0.0);
+{ 10912} GDK5007 +GNO3               =       G3K500C +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 10913} GDK5007+HV               =       G3K2001 +      G2D3001                                :  0.100E+01*SUN;
+{ 10914} GDK5007+HV               =       G2K4003 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 10915} G2D500P +GNO                =       G1D500Y +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 10916} G2D500P +GNO                =       GND500u                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 10917} G2D500P +GHO2               =       GHD500t                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 10918} G2D500P +GNO3               =       G1D500Y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 10919} G2D500P +MEPERO             =  0.340G1D500Y + 0.330GDK500Q + 0.330GDK500P                 : ARR( 0.565E-13,  -845., 0.0);
+{ 10920} G2D500P +PERO1              =  0.460G1D500Y + 0.270GDK500Q + 0.270GDK500P                 : ARR( 0.434E-13,  -900., 0.0);
+{ 10921} G2D500P +PERO2              =  0.400G1D500Y + 0.300GDK500Q + 0.300GDK500P                 : ARR( 0.162E-13, -1400., 0.0);
+{ 10922} G2D500P +PERO3              =  0.460G1D500Y + 0.270GDK500Q + 0.270GDK500P                 : ARR( 0.488E-13, -1250., 0.0);
+{ 10923} G2D500P +PERO5              =  0.460G1D500Y + 0.270GDK500Q + 0.270GDK500P                 : ARR( 0.183E-11,   450., 0.0);
+{ 10924} G2D500P +PERO6              =  0.300G1D500Y + 0.350GDK500Q + 0.350GDK500P                 : ARR( 0.168E-13, -1300., 0.0);
+{ 10925} G2D500P +PERO9              =  0.650G1D500Y + 0.350GDK500P                                : ARR( 0.100E-10,     0., 0.0);
+{ 10926} G2D500Q +GNO                =       G1D500Z +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 10927} G2D500Q +GNO                =       GND500e                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 10928} G2D500Q +GHO2               =       GHD500a                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 10929} G2D500Q +GNO3               =       G1D500Z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 10930} G2D500Q +MEPERO             =  0.340G1D500Z + 0.330GDK500F + 0.330GDK500M                 : ARR( 0.565E-13,  -845., 0.0);
+{ 10931} G2D500Q +PERO1              =  0.460G1D500Z + 0.270GDK500F + 0.270GDK500M                 : ARR( 0.434E-13,  -900., 0.0);
+{ 10932} G2D500Q +PERO2              =  0.400G1D500Z + 0.300GDK500F + 0.300GDK500M                 : ARR( 0.162E-13, -1400., 0.0);
+{ 10933} G2D500Q +PERO3              =  0.460G1D500Z + 0.270GDK500F + 0.270GDK500M                 : ARR( 0.488E-13, -1250., 0.0);
+{ 10934} G2D500Q +PERO5              =  0.460G1D500Z + 0.270GDK500F + 0.270GDK500M                 : ARR( 0.183E-11,   450., 0.0);
+{ 10935} G2D500Q +PERO6              =  0.300G1D500Z + 0.350GDK500F + 0.350GDK500M                 : ARR( 0.168E-13, -1300., 0.0);
+{ 10936} G2D500Q +PERO9              =  0.650G1D500Z + 0.350GDK500M                                : ARR( 0.100E-10,     0., 0.0);
+{ 10937} G3K500C +GHO2               =  0.800GGK5007 + 0.200GAK5007 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 10938} G3K500C +GNO                =       G2K4003 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 10939} G3K500C +GNO2               =       GPK5007                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 10940} G3K500C +GNO3               =       G2K4003 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 10941} G3K500C +MEPERO             =  0.685G2K4003 + 0.315GAK5007 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 10942} G3K500C +PERO1              =  0.800G2K4003 + 0.200GAK5007 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 10943} G3K500C +PERO2              =  0.750G2K4003 + 0.250GAK5007 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 10944} G3K500C +PERO3              =  0.800G2K4003 + 0.200GAK5007 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 10945} G3K500C +PERO5              =  0.650G2K4003 + 0.350GAK5007 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 10946} G3K500C +PERO6              =  0.650G2K4003 + 0.350GAK5007 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 10947} G3K500C +PERO9              =       G2K4003 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 10948} G2K4003 +GNO                =       G1K4003 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 10949} G2K4003 +GNO                =       GNK4002                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 10950} G2K4003 +GHO2               =       GHK4002                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 10951} G2K4003 +GNO3               =       G1K4003 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 10952} G2K4003 +MEPERO             =  0.480G1K4003 + 0.260GKO4002 + 0.260GDK4001                 : ARR( 0.146E-12,  -445., 0.0);
+{ 10953} G2K4003 +PERO1              =  0.600G1K4003 + 0.200GKO4002 + 0.200GDK4001                 : ARR( 0.112E-12,  -500., 0.0);
+{ 10954} G2K4003 +PERO2              =  0.560G1K4003 + 0.220GKO4002 + 0.220GDK4001                 : ARR( 0.418E-13, -1000., 0.0);
+{ 10955} G2K4003 +PERO3              =  0.600G1K4003 + 0.200GKO4002 + 0.200GDK4001                 : ARR( 0.126E-12,  -850., 0.0);
+{ 10956} G2K4003 +PERO5              =  0.600G1K4003 + 0.200GKO4002 + 0.200GDK4001                 : ARR( 0.473E-11,   850., 0.0);
+{ 10957} G2K4003 +PERO6              =  0.460G1K4003 + 0.270GKO4002 + 0.270GDK4001                 : ARR( 0.434E-13,  -900., 0.0);
+{ 10958} G2K4003 +PERO9              =  0.800G1K4003 + 0.200GDK4001                                : ARR( 0.100E-10,     0., 0.0);
+{ 10959} G1D500Y                     =       G3K2001 +      GDD3000                                : ARR( 0.200E+15,  2372., 0.0);
+{ 10960} G1D500Z                     =       GDK4001 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5054., 0.0);
+{ 10961} G1K4003 +OXYGEN             =       GDK4001 +      GHO2                                   : ARR( 0.600E-13,   398., 0.0);
+{ 10962} G1K4003                     =       GDK4005 +      GHO2                                   : ARR( 0.160E+12,  4515., 0.0);
+{ 10963} GHD500D +GHO                =       GHD500t +      GHO2                                   : ARR( 0.109E-10,     0., 0.0);
+{ 10964} GHD500D +GHO                =       GDK5008 +      GHO                                    : ARR( 0.138E-09,     0., 0.0);
+{ 10965} GHD500D +GHO                =       G3H500I                                               : ARR( 0.219E-10,     0., 0.0);
+{ 10966} GHD500D +GNO3               =       G3H500I +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 10967} GHD500D+HV               =       G1D5006 +      GHO                                    :  0.100E+01*SUN;
+{ 10968} GHD500D+HV               =       G2H400N +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 10969} GHD500D+HV               =       GHK3001 +      GD02000                                :  0.100E+01*SUN;
+{ 10970} G3H500I +GHO2               =  0.800GGH500K + 0.200GAH500K + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 10971} G3H500I +GNO                =       G2H400N +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 10972} G3H500I +GNO2               =       GPH500K                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 10973} G3H500I +GNO3               =       G2H400N +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 10974} G3H500I +MEPERO             =  0.685G2H400N + 0.315GAH500K + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 10975} G3H500I +PERO1              =  0.800G2H400N + 0.200GAH500K + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 10976} G3H500I +PERO2              =  0.750G2H400N + 0.250GAH500K + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 10977} G3H500I +PERO3              =  0.800G2H400N + 0.200GAH500K + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 10978} G3H500I +PERO5              =  0.650G2H400N + 0.350GAH500K + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 10979} G3H500I +PERO6              =  0.650G2H400N + 0.350GAH500K + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 10980} G3H500I +PERO9              =       G2H400N +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 10981} G2H400N +GNO                =       G1H400P +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 10982} G2H400N +GNO                =       GHN400b                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 10983} G2H400N +GHO2               =       GHH400K                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 10984} G2H400N +GNO3               =       G1H400P +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 10985} G2H400N +MEPERO             =  0.480G1H400P + 0.260GHO4009 + 0.260GHD400A                 : ARR( 0.164E-12,  -795., 0.0);
+{ 10986} G2H400N +PERO1              =  0.600G1H400P + 0.200GHO4009 + 0.200GHD400A                 : ARR( 0.126E-12,  -850., 0.0);
+{ 10987} G2H400N +PERO2              =  0.560G1H400P + 0.220GHO4009 + 0.220GHD400A                 : ARR( 0.471E-13, -1350., 0.0);
+{ 10988} G2H400N +PERO3              =  0.600G1H400P + 0.200GHO4009 + 0.200GHD400A                 : ARR( 0.142E-12, -1200., 0.0);
+{ 10989} G2H400N +PERO5              =  0.600G1H400P + 0.200GHO4009 + 0.200GHD400A                 : ARR( 0.533E-11,   500., 0.0);
+{ 10990} G2H400N +PERO6              =  0.460G1H400P + 0.270GHO4009 + 0.270GHD400A                 : ARR( 0.488E-13, -1250., 0.0);
+{ 10991} G2H400N +PERO9              =  0.800G1H400P + 0.200GHD400A                                : ARR( 0.100E-10,     0., 0.0);
+{ 10992} G1H400P                     =       GHD4009 +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{ 10993} G1H400P                     =       GDO3002 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{ 10994} GDO5008 +GHO                =       GDD5002 +      GHO2                                   : ARR( 0.410E-11,     0., 0.0);
+{ 10995} GDO5008 +GHO                =       GDK500Q +      GHO2                                   : ARR( 0.105E-10,     0., 0.0);
+{ 10996} GDO5008 +GHO                =       GDK5008 +      GHO2                                   : ARR( 0.333E-10,     0., 0.0);
+{ 10997} GDO5008 +GHO                =       G3K500D                                               : ARR( 0.212E-10,     0., 0.0);
+{ 10998} GDO5008 +GNO3               =       G3K500D +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 10999} GDO5008+HV               =       G2O400B +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 11000} GDO5008+HV               =       GKO3001 +      GD02000                                :  0.100E+01*SUN;
+{ 11001} G3K500D +GHO2               =  0.800GGO5008 + 0.200GAO5008 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 11002} G3K500D +GNO                =       G2O400B +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 11003} G3K500D +GNO2               =       GPO5008                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 11004} G3K500D +GNO3               =       G2O400B +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 11005} G3K500D +MEPERO             =  0.685G2O400B + 0.315GAO5008 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 11006} G3K500D +PERO1              =  0.800G2O400B + 0.200GAO5008 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 11007} G3K500D +PERO2              =  0.750G2O400B + 0.250GAO5008 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 11008} G3K500D +PERO3              =  0.800G2O400B + 0.200GAO5008 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 11009} G3K500D +PERO5              =  0.650G2O400B + 0.350GAO5008 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 11010} G3K500D +PERO6              =  0.650G2O400B + 0.350GAO5008 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 11011} G3K500D +PERO9              =       G2O400B +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 11012} G2O400B +GNO                =       G1O400B +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 11013} G2O400B +GNO                =       GNO400B                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 11014} G2O400B +GHO2               =       GHO400B                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 11015} G2O400B +GNO3               =       G1O400B +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 11016} G2O400B +MEPERO             =  0.480G1O400B + 0.260GOO4005 + 0.260GDO4006                 : ARR( 0.164E-12,  -795., 0.0);
+{ 11017} G2O400B +PERO1              =  0.600G1O400B + 0.200GOO4005 + 0.200GDO4006                 : ARR( 0.126E-12,  -850., 0.0);
+{ 11018} G2O400B +PERO2              =  0.560G1O400B + 0.220GOO4005 + 0.220GDO4006                 : ARR( 0.471E-13, -1350., 0.0);
+{ 11019} G2O400B +PERO3              =  0.600G1O400B + 0.200GOO4005 + 0.200GDO4006                 : ARR( 0.142E-12, -1200., 0.0);
+{ 11020} G2O400B +PERO5              =  0.600G1O400B + 0.200GOO4005 + 0.200GDO4006                 : ARR( 0.533E-11,   500., 0.0);
+{ 11021} G2O400B +PERO6              =  0.460G1O400B + 0.270GOO4005 + 0.270GDO4006                 : ARR( 0.488E-13, -1250., 0.0);
+{ 11022} G2O400B +PERO9              =  0.800G1O400B + 0.200GDO4006                                : ARR( 0.100E-10,     0., 0.0);
+{ 11023} G1O400B                     =       GDO4006 +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{ 11024} G1O400B                     =       GDO3002 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 11025} GDK5008 +GHO                =       GDD5005 +      GHO2                                   : ARR( 0.129E-10,     0., 0.0);
+{ 11026} GDK5008 +GHO                =       GDK500P +      GHO2                                   : ARR( 0.634E-11,     0., 0.0);
+{ 11027} GDK5008 +GHO                =       G3K500E                                               : ARR( 0.665E-10,     0., 0.0);
+{ 11028} GDK5008 +GNO3               =       G3K500E +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 11029} GDK5008+HV               =       G3K3003 +      G2D2000                                :  0.100E+01*SUN;
+{ 11030} GDK5008+HV               =       G2K4004 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 11031} G3K500E +GHO2               =  0.800GGK5008 + 0.200GAK5008 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 11032} G3K500E +GNO                =       G2K4004 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 11033} G3K500E +GNO2               =       GPK5008                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 11034} G3K500E +GNO3               =       G2K4004 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 11035} G3K500E +MEPERO             =  0.685G2K4004 + 0.315GAK5008 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 11036} G3K500E +PERO1              =  0.800G2K4004 + 0.200GAK5008 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 11037} G3K500E +PERO2              =  0.750G2K4004 + 0.250GAK5008 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 11038} G3K500E +PERO3              =  0.800G2K4004 + 0.200GAK5008 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 11039} G3K500E +PERO5              =  0.650G2K4004 + 0.350GAK5008 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 11040} G3K500E +PERO6              =  0.650G2K4004 + 0.350GAK5008 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 11041} G3K500E +PERO9              =       G2K4004 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 11042} G2K4004 +GNO                =       G1K4004 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 11043} G2K4004 +GNO                =       GNK4006                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 11044} G2K4004 +GHO2               =       GHK4006                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 11045} G2K4004 +GNO3               =       G1K4004 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 11046} G2K4004 +MEPERO             =  0.480G1K4004 + 0.260GKO4004 + 0.260GDK4007                 : ARR( 0.164E-12,  -795., 0.0);
+{ 11047} G2K4004 +PERO1              =  0.600G1K4004 + 0.200GKO4004 + 0.200GDK4007                 : ARR( 0.126E-12,  -850., 0.0);
+{ 11048} G2K4004 +PERO2              =  0.560G1K4004 + 0.220GKO4004 + 0.220GDK4007                 : ARR( 0.471E-13, -1350., 0.0);
+{ 11049} G2K4004 +PERO3              =  0.600G1K4004 + 0.200GKO4004 + 0.200GDK4007                 : ARR( 0.142E-12, -1200., 0.0);
+{ 11050} G2K4004 +PERO5              =  0.600G1K4004 + 0.200GKO4004 + 0.200GDK4007                 : ARR( 0.533E-11,   500., 0.0);
+{ 11051} G2K4004 +PERO6              =  0.460G1K4004 + 0.270GKO4004 + 0.270GDK4007                 : ARR( 0.488E-13, -1250., 0.0);
+{ 11052} G2K4004 +PERO9              =  0.800G1K4004 + 0.200GDK4007                                : ARR( 0.100E-10,     0., 0.0);
+{ 11053} G1K4004                     =       G3K3003 +      GCH2O                                  : ARR( 0.200E+15,  3603., 0.0);
+{ 11054} GGO5001 +GHO                =       GGD5001 +      GHO2                                   : ARR( 0.426E-11,     0., 0.0);
+{ 11055} GGO5001 +GHO                =       GGK5007 +      GHO2                                   : ARR( 0.109E-10,     0., 0.0);
+{ 11056} GGO5001 +GHO                =       G2G500C                                               : ARR( 0.150E-11,     0., 0.0);
+{ 11057} GGO5001 +GHO                =       G3K5002                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 11058} GGO5001+HV               =       G2O4003 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 11059} G2G500C +GNO                =       G1G500D +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 11060} G2G500C +GNO                =       GGN500N                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 11061} G2G500C +GHO2               =       GGH500K                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 11062} G2G500C +GNO3               =       G1G500D +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 11063} G2G500C +MEPERO             =  0.340G1G500D + 0.330GGO5008 + 0.330GGK5008                 : ARR( 0.565E-13,  -845., 0.0);
+{ 11064} G2G500C +PERO1              =  0.460G1G500D + 0.270GGO5008 + 0.270GGK5008                 : ARR( 0.434E-13,  -900., 0.0);
+{ 11065} G2G500C +PERO2              =  0.400G1G500D + 0.300GGO5008 + 0.300GGK5008                 : ARR( 0.162E-13, -1400., 0.0);
+{ 11066} G2G500C +PERO3              =  0.460G1G500D + 0.270GGO5008 + 0.270GGK5008                 : ARR( 0.488E-13, -1250., 0.0);
+{ 11067} G2G500C +PERO5              =  0.460G1G500D + 0.270GGO5008 + 0.270GGK5008                 : ARR( 0.183E-11,   450., 0.0);
+{ 11068} G2G500C +PERO6              =  0.300G1G500D + 0.350GGO5008 + 0.350GGK5008                 : ARR( 0.168E-13, -1300., 0.0);
+{ 11069} G2G500C +PERO9              =  0.650G1G500D + 0.350GGK5008                                : ARR( 0.100E-10,     0., 0.0);
+{ 11070} G1G500D                     =       GDO2000 +      GGD3000 +      GHO2                    : ARR( 0.200E+15,  2937., 0.0);
+{ 11071} GAO5001 +GHO                =       GAD5002 +      GHO2                                   : ARR( 0.439E-11,     0., 0.0);
+{ 11072} GAO5001 +GHO                =       GAK5007 +      GHO2                                   : ARR( 0.112E-10,     0., 0.0);
+{ 11073} GAO5001 +GHO                =       G2A500D                                               : ARR( 0.154E-11,     0., 0.0);
+{ 11074} G2A500D +GNO                =       G1A500E +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 11075} G2A500D +GNO                =       GAN500N                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 11076} G2A500D +GHO2               =       GAH500K                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 11077} G2A500D +GNO3               =       G1A500E +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 11078} G2A500D +MEPERO             =  0.340G1A500E + 0.330GAO5008 + 0.330GAK5008                 : ARR( 0.565E-13,  -845., 0.0);
+{ 11079} G2A500D +PERO1              =  0.460G1A500E + 0.270GAO5008 + 0.270GAK5008                 : ARR( 0.434E-13,  -900., 0.0);
+{ 11080} G2A500D +PERO2              =  0.400G1A500E + 0.300GAO5008 + 0.300GAK5008                 : ARR( 0.162E-13, -1400., 0.0);
+{ 11081} G2A500D +PERO3              =  0.460G1A500E + 0.270GAO5008 + 0.270GAK5008                 : ARR( 0.488E-13, -1250., 0.0);
+{ 11082} G2A500D +PERO5              =  0.460G1A500E + 0.270GAO5008 + 0.270GAK5008                 : ARR( 0.183E-11,   450., 0.0);
+{ 11083} G2A500D +PERO6              =  0.300G1A500E + 0.350GAO5008 + 0.350GAK5008                 : ARR( 0.168E-13, -1300., 0.0);
+{ 11084} G2A500D +PERO9              =  0.650G1A500E + 0.350GAK5008                                : ARR( 0.100E-10,     0., 0.0);
+{ 11085} G1A500E                     =       GDO2000 +      GAD3000 +      GHO2                    : ARR( 0.200E+15,  2937., 0.0);
+{ 11086} GPO5001                     =       G3K5002 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 11087} GPO5001 +GHO                =       GPD5001 +      GHO2                                   : ARR( 0.409E-11,     0., 0.0);
+{ 11088} GPO5001 +GHO                =       GPK5007 +      GHO2                                   : ARR( 0.105E-10,     0., 0.0);
+{ 11089} GPO5001 +GHO                =       G2P500D                                               : ARR( 0.144E-11,     0., 0.0);
+{ 11090} GPO5001 +GHO                =       G2P500B                                               : ARR( 0.876E-12,     0., 0.0);
+{ 11091} GPO5001+HV               =       G3K5002 +      GNO2                                   :  0.100E+01*SUN;
+{ 11092} G2P500D +GNO                =       G1P500E +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 11093} G2P500D +GNO                =       GPN500N                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 11094} G2P500D +GHO2               =       GPH500K                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 11095} G2P500D +GNO3               =       G1P500E +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 11096} G2P500D +MEPERO             =  0.340G1P500E + 0.330GPO5008 + 0.330GPK5008                 : ARR( 0.565E-13,  -845., 0.0);
+{ 11097} G2P500D +PERO1              =  0.460G1P500E + 0.270GPO5008 + 0.270GPK5008                 : ARR( 0.434E-13,  -900., 0.0);
+{ 11098} G2P500D +PERO2              =  0.400G1P500E + 0.300GPO5008 + 0.300GPK5008                 : ARR( 0.162E-13, -1400., 0.0);
+{ 11099} G2P500D +PERO3              =  0.460G1P500E + 0.270GPO5008 + 0.270GPK5008                 : ARR( 0.488E-13, -1250., 0.0);
+{ 11100} G2P500D +PERO5              =  0.460G1P500E + 0.270GPO5008 + 0.270GPK5008                 : ARR( 0.183E-11,   450., 0.0);
+{ 11101} G2P500D +PERO6              =  0.300G1P500E + 0.350GPO5008 + 0.350GPK5008                 : ARR( 0.168E-13, -1300., 0.0);
+{ 11102} G2P500D +PERO9              =  0.650G1P500E + 0.350GPK5008                                : ARR( 0.100E-10,     0., 0.0);
+{ 11103} G1P500E                     =       GDO2000 +      GPD3000 +      GHO2                    : ARR( 0.200E+15,  2937., 0.0);
+{ 11104} GNO4003 +GHO                =       GND400C +      GHO2                                   : ARR( 0.419E-11,     0., 0.0);
+{ 11105} GNO4003 +GHO                =       GNK4002 +      GHO2                                   : ARR( 0.107E-10,     0., 0.0);
+{ 11106} GNO4003+HV               =       G1O4003 +      GNO2                                   :  0.100E+01*SUN;
+{ 11107} GHO4003 +GHO                =       GHD400B +      GHO2                                   : ARR( 0.422E-11,     0., 0.0);
+{ 11108} GHO4003 +GHO                =       GHK4002 +      GHO2                                   : ARR( 0.108E-10,     0., 0.0);
+{ 11109} GHO4003 +GHO                =       GDO4002 +      GHO                                    : ARR( 0.169E-10,     0., 0.0);
+{ 11110} GHO4003 +GHO                =       G2O4003                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 11111} GHO4003+HV               =       G1O4003 +      GHO                                    :  0.100E+01*SUN;
+{ 11112} GKK5005 +GHO                =       GDK500M +      GHO2                                   : ARR( 0.516E-11,     0., 0.0);
+{ 11113} GKK5005 +GHO                =       G2K500a                                               : ARR( 0.553E-12,     0., 0.0);
+{ 11114} GKK5005+HV               =       G3K2001 +      G2K3001                                :  0.100E+01*SUN;
+{ 11115} GKK5005+HV               =       G3K4007 +      GCH2O   +      GHO2                    :  0.100E+01*SUN;
+{ 11116} G2K500a +GNO                =       G1K500j +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 11117} G2K500a +GNO                =       GNK5014                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 11118} G2K500a +GHO2               =       GHK500l                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 11119} G2K500a +GNO3               =       G1K500j +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 11120} G2K500a +MEPERO             =  0.340G1K500j + 0.330GKK500E + 0.330GKK500F                 : ARR( 0.565E-13,  -845., 0.0);
+{ 11121} G2K500a +PERO1              =  0.460G1K500j + 0.270GKK500E + 0.270GKK500F                 : ARR( 0.434E-13,  -900., 0.0);
+{ 11122} G2K500a +PERO2              =  0.400G1K500j + 0.300GKK500E + 0.300GKK500F                 : ARR( 0.162E-13, -1400., 0.0);
+{ 11123} G2K500a +PERO3              =  0.460G1K500j + 0.270GKK500E + 0.270GKK500F                 : ARR( 0.488E-13, -1250., 0.0);
+{ 11124} G2K500a +PERO5              =  0.460G1K500j + 0.270GKK500E + 0.270GKK500F                 : ARR( 0.183E-11,   450., 0.0);
+{ 11125} G2K500a +PERO6              =  0.300G1K500j + 0.350GKK500E + 0.350GKK500F                 : ARR( 0.168E-13, -1300., 0.0);
+{ 11126} G2K500a +PERO9              =  0.650G1K500j + 0.350GKK500F                                : ARR( 0.100E-10,     0., 0.0);
+{ 11127} G1K500j                     =       G3K2001 +      GDK3001                                : ARR( 0.400E+15,  4599., 0.0);
+{ 11128} GHK500J +GHO                =       GHD500t +      GHO2                                   : ARR( 0.405E-11,     0., 0.0);
+{ 11129} GHK500J +GHO                =       G2H501a                                               : ARR( 0.451E-11,     0., 0.0);
+{ 11130} GHK500J +GHO                =       GKK5006 +      GHO                                    : ARR( 0.253E-10,     0., 0.0);
+{ 11131} GHK500J +GHO                =       GHD500N +      GHO2                                   : ARR( 0.247E-11,     0., 0.0);
+{ 11132} GHK500J +GHO                =       G2K500E                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 11133} GHK500J+HV               =       G1K500F +      GHO                                    :  0.100E+01*SUN;
+{ 11134} GHK500J+HV               =       G3H4004 +      GCH2O   +      GHO2                    :  0.100E+01*SUN;
+{ 11135} G2H501a +GNO                =       G1H502k +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 11136} G2H501a +GNO                =       GHN504E                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 11137} G2H501a +GHO2               =       GHH5017                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 11138} G2H501a +GNO3               =       G1H502k +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 11139} G2H501a +MEPERO             =  0.340G1H502k + 0.330GHK500f + 0.330GHK500l                 : ARR( 0.565E-13,  -845., 0.0);
+{ 11140} G2H501a +PERO1              =  0.460G1H502k + 0.270GHK500f + 0.270GHK500l                 : ARR( 0.434E-13,  -900., 0.0);
+{ 11141} G2H501a +PERO2              =  0.400G1H502k + 0.300GHK500f + 0.300GHK500l                 : ARR( 0.162E-13, -1400., 0.0);
+{ 11142} G2H501a +PERO3              =  0.460G1H502k + 0.270GHK500f + 0.270GHK500l                 : ARR( 0.488E-13, -1250., 0.0);
+{ 11143} G2H501a +PERO5              =  0.460G1H502k + 0.270GHK500f + 0.270GHK500l                 : ARR( 0.183E-11,   450., 0.0);
+{ 11144} G2H501a +PERO6              =  0.300G1H502k + 0.350GHK500f + 0.350GHK500l                 : ARR( 0.168E-13, -1300., 0.0);
+{ 11145} G2H501a +PERO9              =  0.650G1H502k + 0.350GHK500l                                : ARR( 0.100E-10,     0., 0.0);
+{ 11146} G1H502k                     =       GDK3001 +      GDO2000 +      GHO                     : ARR( 0.200E+15,  4976., 0.0);
+{ 11147} G1H502k                     =       GHD400G +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4465., 0.0);
+{ 11148} GKO500F +GHO                =       GDK500Q +      GHO2                                   : ARR( 0.412E-11,     0., 0.0);
+{ 11149} GKO500F +GHO                =       G2K500b                                               : ARR( 0.459E-11,     0., 0.0);
+{ 11150} GKO500F +GHO                =       GKK5006 +      GHO2                                   : ARR( 0.644E-11,     0., 0.0);
+{ 11151} GKO500F +GHO                =       GDK500J +      GHO2                                   : ARR( 0.251E-11,     0., 0.0);
+{ 11152} GKO500F+HV               =       G3K4006 +      GCH2O   +      GHO2                    :  0.100E+01*SUN;
+{ 11153} G2K500b +GNO                =       G1K500k +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 11154} G2K500b +GNO                =       GNK5015                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 11155} G2K500b +GHO2               =       GHK500e                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 11156} G2K500b +GNO3               =       G1K500k +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 11157} G2K500b +MEPERO             =  0.340G1K500k + 0.330GKO500L + 0.330GKK500E                 : ARR( 0.565E-13,  -845., 0.0);
+{ 11158} G2K500b +PERO1              =  0.460G1K500k + 0.270GKO500L + 0.270GKK500E                 : ARR( 0.434E-13,  -900., 0.0);
+{ 11159} G2K500b +PERO2              =  0.400G1K500k + 0.300GKO500L + 0.300GKK500E                 : ARR( 0.162E-13, -1400., 0.0);
+{ 11160} G2K500b +PERO3              =  0.460G1K500k + 0.270GKO500L + 0.270GKK500E                 : ARR( 0.488E-13, -1250., 0.0);
+{ 11161} G2K500b +PERO5              =  0.460G1K500k + 0.270GKO500L + 0.270GKK500E                 : ARR( 0.183E-11,   450., 0.0);
+{ 11162} G2K500b +PERO6              =  0.300G1K500k + 0.350GKO500L + 0.350GKK500E                 : ARR( 0.168E-13, -1300., 0.0);
+{ 11163} G2K500b +PERO9              =  0.650G1K500k + 0.350GKK500E                                : ARR( 0.100E-10,     0., 0.0);
+{ 11164} G1K500k                     =       GDK3001 +      GDO2000 +      GHO2                    : ARR( 0.200E+15,  3768., 0.0);
+{ 11165} G1K500k                     =       GDK4006 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4465., 0.0);
+{ 11166} GKK5006 +GHO                =       GDK500P +      GHO2                                   : ARR( 0.130E-10,     0., 0.0);
+{ 11167} GKK5006 +GHO                =       G2K500c                                               : ARR( 0.877E-12,     0., 0.0);
+{ 11168} GKK5006 +GHO                =       GDK500L +      GHO2                                   : ARR( 0.249E-11,     0., 0.0);
+{ 11169} GKK5006+HV               =       G3K3001 +      G3K2001                                :  0.100E+01*SUN;
+{ 11170} G2K500c +GNO                =       G1K500l +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 11171} G2K500c +GNO                =       GNK5016                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 11172} G2K500c +GHO2               =       GHK500m                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 11173} G2K500c +GNO3               =       G1K500l +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 11174} G2K500c +MEPERO             =  0.340G1K500l + 0.330GKK500G + 0.330GKK500F                 : ARR( 0.565E-13,  -845., 0.0);
+{ 11175} G2K500c +PERO1              =  0.460G1K500l + 0.270GKK500G + 0.270GKK500F                 : ARR( 0.434E-13,  -900., 0.0);
+{ 11176} G2K500c +PERO2              =  0.400G1K500l + 0.300GKK500G + 0.300GKK500F                 : ARR( 0.162E-13, -1400., 0.0);
+{ 11177} G2K500c +PERO3              =  0.460G1K500l + 0.270GKK500G + 0.270GKK500F                 : ARR( 0.488E-13, -1250., 0.0);
+{ 11178} G2K500c +PERO5              =  0.460G1K500l + 0.270GKK500G + 0.270GKK500F                 : ARR( 0.183E-11,   450., 0.0);
+{ 11179} G2K500c +PERO6              =  0.300G1K500l + 0.350GKK500G + 0.350GKK500F                 : ARR( 0.168E-13, -1300., 0.0);
+{ 11180} G2K500c +PERO9              =  0.650G1K500l + 0.350GKK500F                                : ARR( 0.100E-10,     0., 0.0);
+{ 11181} G1K500l                     =       G3K2001 +      GDO2000 +      GCO                     : ARR( 0.200E+15,  3326., 0.0);
+{ 11182} GDK4001 +GHO                =       G3K4007                                               : ARR( 0.690E-10,     0., 0.0);
+{ 11183} GDK4001 +GNO3               =       G3K4007 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 11184} GDK4001+HV               =       G3K2001 +      G2D2000                                :  0.100E+01*SUN;
+{ 11185} GDK4001+HV               =       G2K3001 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 11186} GGN5002 +GHO                =       G2G500D                                               : ARR( 0.257E-12,     0., 0.0);
+{ 11187} GGN5002 +GHO                =       G3N5002                                               : ARR( 0.213E-11,  -190., 0.0);
+{ 11188} GGN5002+HV               =       G1G5001 +      GNO2                                   :  0.100E+01*SUN;
+{ 11189} GGN5002+HV               =       G2N4002 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 11190} G2G500D +GNO                =       G1G500E +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 11191} G2G500D +GNO                =       GGN500P                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 11192} G2G500D +GHO2               =       GGH500L                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 11193} G2G500D +GNO3               =       G1G500E +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 11194} G2G500D +MEPERO             =  0.340G1G500E + 0.330GGN5006 + 0.330GGN500Q                 : ARR( 0.565E-13,  -845., 0.0);
+{ 11195} G2G500D +PERO1              =  0.460G1G500E + 0.270GGN5006 + 0.270GGN500Q                 : ARR( 0.434E-13,  -900., 0.0);
+{ 11196} G2G500D +PERO2              =  0.400G1G500E + 0.300GGN5006 + 0.300GGN500Q                 : ARR( 0.162E-13, -1400., 0.0);
+{ 11197} G2G500D +PERO3              =  0.460G1G500E + 0.270GGN5006 + 0.270GGN500Q                 : ARR( 0.488E-13, -1250., 0.0);
+{ 11198} G2G500D +PERO5              =  0.460G1G500E + 0.270GGN5006 + 0.270GGN500Q                 : ARR( 0.183E-11,   450., 0.0);
+{ 11199} G2G500D +PERO6              =  0.300G1G500E + 0.350GGN5006 + 0.350GGN500Q                 : ARR( 0.168E-13, -1300., 0.0);
+{ 11200} G2G500D +PERO9              =  0.650G1G500E + 0.350GGN500Q                                : ARR( 0.100E-10,     0., 0.0);
+{ 11201} G1G500E                     =       GD02000 +      GGD3000 +      GNO2                    : ARR( 0.200E+15,  6112., 0.0);
+{ 11202} GAN5002 +GHO                =       G2A500E                                               : ARR( 0.168E-12,     0., 0.0);
+{ 11203} GAN5002 +GHO                =       G2A500F                                               : ARR( 0.230E-12,     0., 0.0);
+{ 11204} GAN5002 +GHO                =       GAK5000 +      GNO2                                   : ARR( 0.118E-12,     0., 0.0);
+{ 11205} GAN5002 +GHO                =       G2A500G                                               : ARR( 0.128E-12,     0., 0.0);
+{ 11206} GAN5002 +GHO                =       G2N4002 +      GCO2                                   : ARR( 0.520E-12,     0., 0.0);
+{ 11207} GAN5002+HV               =       G1A5001 +      GNO2                                   :  0.100E+01*SUN;
+{ 11208} G2A500E +GNO                =       G1A500F +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 11209} G2A500E +GNO                =       GAN5007                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 11210} G2A500E +GHO2               =       GAH500L                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 11211} G2A500E +GNO3               =       G1A500F +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 11212} G2A500E +MEPERO             =  0.480G1A500F + 0.260GAN500P + 0.260GAN500Q                 : ARR( 0.146E-12,  -445., 0.0);
+{ 11213} G2A500E +PERO1              =  0.600G1A500F + 0.200GAN500P + 0.200GAN500Q                 : ARR( 0.112E-12,  -500., 0.0);
+{ 11214} G2A500E +PERO2              =  0.560G1A500F + 0.220GAN500P + 0.220GAN500Q                 : ARR( 0.418E-13, -1000., 0.0);
+{ 11215} G2A500E +PERO3              =  0.600G1A500F + 0.200GAN500P + 0.200GAN500Q                 : ARR( 0.126E-12,  -850., 0.0);
+{ 11216} G2A500E +PERO5              =  0.600G1A500F + 0.200GAN500P + 0.200GAN500Q                 : ARR( 0.473E-11,   850., 0.0);
+{ 11217} G2A500E +PERO6              =  0.460G1A500F + 0.270GAN500P + 0.270GAN500Q                 : ARR( 0.434E-13,  -900., 0.0);
+{ 11218} G2A500E +PERO9              =  0.800G1A500F + 0.200GAN500Q                                : ARR( 0.100E-10,     0., 0.0);
+{ 11219} G2A500F +GNO                =       G1A500G +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 11220} G2A500F +GNO                =       GAN500R                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 11221} G2A500F +GHO2               =       GAH500M                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 11222} G2A500F +GNO3               =       G1A500G +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 11223} G2A500F +MEPERO             =  0.340G1A500G + 0.330GAN5006 + 0.330GAN500S                 : ARR( 0.565E-13,  -845., 0.0);
+{ 11224} G2A500F +PERO1              =  0.460G1A500G + 0.270GAN5006 + 0.270GAN500S                 : ARR( 0.434E-13,  -900., 0.0);
+{ 11225} G2A500F +PERO2              =  0.400G1A500G + 0.300GAN5006 + 0.300GAN500S                 : ARR( 0.162E-13, -1400., 0.0);
+{ 11226} G2A500F +PERO3              =  0.460G1A500G + 0.270GAN5006 + 0.270GAN500S                 : ARR( 0.488E-13, -1250., 0.0);
+{ 11227} G2A500F +PERO5              =  0.460G1A500G + 0.270GAN5006 + 0.270GAN500S                 : ARR( 0.183E-11,   450., 0.0);
+{ 11228} G2A500F +PERO6              =  0.300G1A500G + 0.350GAN5006 + 0.350GAN500S                 : ARR( 0.168E-13, -1300., 0.0);
+{ 11229} G2A500F +PERO9              =  0.650G1A500G + 0.350GAN500S                                : ARR( 0.100E-10,     0., 0.0);
+{ 11230} G2A500G +GNO                =       G1A500H +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 11231} G2A500G +GNO                =       GAN500T                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 11232} G2A500G +GHO2               =       GAH500N                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 11233} G2A500G +GNO3               =       G1A500H +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 11234} G2A500G +MEPERO             =  0.340G1A500H + 0.330GAN500U + 0.330GAN500W                 : ARR( 0.565E-13,  -845., 0.0);
+{ 11235} G2A500G +PERO1              =  0.460G1A500H + 0.270GAN500U + 0.270GAN500W                 : ARR( 0.434E-13,  -900., 0.0);
+{ 11236} G2A500G +PERO2              =  0.400G1A500H + 0.300GAN500U + 0.300GAN500W                 : ARR( 0.162E-13, -1400., 0.0);
+{ 11237} G2A500G +PERO3              =  0.460G1A500H + 0.270GAN500U + 0.270GAN500W                 : ARR( 0.488E-13, -1250., 0.0);
+{ 11238} G2A500G +PERO5              =  0.460G1A500H + 0.270GAN500U + 0.270GAN500W                 : ARR( 0.183E-11,   450., 0.0);
+{ 11239} G2A500G +PERO6              =  0.300G1A500H + 0.350GAN500U + 0.350GAN500W                 : ARR( 0.168E-13, -1300., 0.0);
+{ 11240} G2A500G +PERO9              =  0.650G1A500H + 0.350GAN500W                                : ARR( 0.100E-10,     0., 0.0);
+{ 11241} G1A500F +OXYGEN             =       GAN500Q +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{ 11242} G1A500F                     =       G2A500H                                               : ARR( 0.160E+12,  4075., 0.0);
+{ 11243} G1A500G                     =       GD02000 +      GAD3000 +      GNO2                    : ARR( 0.200E+15,  6112., 0.0);
+{ 11244} G1A500H                     =       G2A500I                                               : ARR( 0.240E+12,  4177., 0.0);
+{ 11245} G1A500H                     =       GND4005 +      GCO     +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 11246} G2A500H +GNO                =       G1A500I +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 11247} G2A500H +GNO                =       GAN500X                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 11248} G2A500H +GHO2               =       GAH500O                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 11249} G2A500H +GNO3               =       G1A500I +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 11250} G2A500H +MEPERO             =  0.340G1A500I + 0.330GAN500Y + 0.330GAN500Z                 : ARR( 0.565E-13,  -845., 0.0);
+{ 11251} G2A500H +PERO1              =  0.460G1A500I + 0.270GAN500Y + 0.270GAN500Z                 : ARR( 0.434E-13,  -900., 0.0);
+{ 11252} G2A500H +PERO2              =  0.400G1A500I + 0.300GAN500Y + 0.300GAN500Z                 : ARR( 0.162E-13, -1400., 0.0);
+{ 11253} G2A500H +PERO3              =  0.460G1A500I + 0.270GAN500Y + 0.270GAN500Z                 : ARR( 0.488E-13, -1250., 0.0);
+{ 11254} G2A500H +PERO5              =  0.460G1A500I + 0.270GAN500Y + 0.270GAN500Z                 : ARR( 0.183E-11,   450., 0.0);
+{ 11255} G2A500H +PERO6              =  0.300G1A500I + 0.350GAN500Y + 0.350GAN500Z                 : ARR( 0.168E-13, -1300., 0.0);
+{ 11256} G2A500H +PERO9              =  0.650G1A500I + 0.350GAN500Z                                : ARR( 0.100E-10,     0., 0.0);
+{ 11257} G2A500I +GNO                =       G1A500J +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 11258} G2A500I +GNO                =       GAN500a                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 11259} G2A500I +GHO2               =       GAH500P                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 11260} G2A500I +GNO3               =       G1A500J +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 11261} G2A500I +MEPERO             =  0.480G1A500J + 0.260GAN500Y + 0.260GAN500b                 : ARR( 0.146E-12,  -445., 0.0);
+{ 11262} G2A500I +PERO1              =  0.600G1A500J + 0.200GAN500Y + 0.200GAN500b                 : ARR( 0.112E-12,  -500., 0.0);
+{ 11263} G2A500I +PERO2              =  0.560G1A500J + 0.220GAN500Y + 0.220GAN500b                 : ARR( 0.418E-13, -1000., 0.0);
+{ 11264} G2A500I +PERO3              =  0.600G1A500J + 0.200GAN500Y + 0.200GAN500b                 : ARR( 0.126E-12,  -850., 0.0);
+{ 11265} G2A500I +PERO5              =  0.600G1A500J + 0.200GAN500Y + 0.200GAN500b                 : ARR( 0.473E-11,   850., 0.0);
+{ 11266} G2A500I +PERO6              =  0.460G1A500J + 0.270GAN500Y + 0.270GAN500b                 : ARR( 0.434E-13,  -900., 0.0);
+{ 11267} G2A500I +PERO9              =  0.800G1A500J + 0.200GAN500b                                : ARR( 0.100E-10,     0., 0.0);
+{ 11268} G1A500I                     =       GAN500b +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{ 11269} G1A500I                     =       GND4006 +      GCO     +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 11270} G1A500J                     =       GAN500Z +      GHO2                                   : ARR( 0.800E+11,  3100., 0.0);
+{ 11271} GPN5002                     =       G3N5002 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 11272} GPN5002 +GHO                =       G2P500E                                               : ARR( 0.168E-12,     0., 0.0);
+{ 11273} GPN5002 +GHO                =       G2P500F                                               : ARR( 0.230E-12,     0., 0.0);
+{ 11274} GPN5002 +GHO                =       GPK5000 +      GNO2                                   : ARR( 0.118E-12,     0., 0.0);
+{ 11275} GPN5002 +GHO                =       G2P500G                                               : ARR( 0.172E-12,     0., 0.0);
+{ 11276} GPN5002+HV               =       G1P5001 +      GNO2                                   :  0.100E+01*SUN;
+{ 11277} GPN5002+HV               =       G3N5002 +      GNO2                                   :  0.100E+01*SUN;
+{ 11278} G2P500E +GNO                =       G1P500F +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 11279} G2P500E +GNO                =       GPN5007                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 11280} G2P500E +GHO2               =       GPH500L                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 11281} G2P500E +GNO3               =       G1P500F +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 11282} G2P500E +MEPERO             =  0.480G1P500F + 0.260GPN500P + 0.260GPN500Q                 : ARR( 0.146E-12,  -445., 0.0);
+{ 11283} G2P500E +PERO1              =  0.600G1P500F + 0.200GPN500P + 0.200GPN500Q                 : ARR( 0.112E-12,  -500., 0.0);
+{ 11284} G2P500E +PERO2              =  0.560G1P500F + 0.220GPN500P + 0.220GPN500Q                 : ARR( 0.418E-13, -1000., 0.0);
+{ 11285} G2P500E +PERO3              =  0.600G1P500F + 0.200GPN500P + 0.200GPN500Q                 : ARR( 0.126E-12,  -850., 0.0);
+{ 11286} G2P500E +PERO5              =  0.600G1P500F + 0.200GPN500P + 0.200GPN500Q                 : ARR( 0.473E-11,   850., 0.0);
+{ 11287} G2P500E +PERO6              =  0.460G1P500F + 0.270GPN500P + 0.270GPN500Q                 : ARR( 0.434E-13,  -900., 0.0);
+{ 11288} G2P500E +PERO9              =  0.800G1P500F + 0.200GPN500Q                                : ARR( 0.100E-10,     0., 0.0);
+{ 11289} G2P500F +GNO                =       G1P500G +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 11290} G2P500F +GNO                =       GPN500R                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 11291} G2P500F +GHO2               =       GPH500M                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 11292} G2P500F +GNO3               =       G1P500G +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 11293} G2P500F +MEPERO             =  0.340G1P500G + 0.330GPN5006 + 0.330GPN500S                 : ARR( 0.565E-13,  -845., 0.0);
+{ 11294} G2P500F +PERO1              =  0.460G1P500G + 0.270GPN5006 + 0.270GPN500S                 : ARR( 0.434E-13,  -900., 0.0);
+{ 11295} G2P500F +PERO2              =  0.400G1P500G + 0.300GPN5006 + 0.300GPN500S                 : ARR( 0.162E-13, -1400., 0.0);
+{ 11296} G2P500F +PERO3              =  0.460G1P500G + 0.270GPN5006 + 0.270GPN500S                 : ARR( 0.488E-13, -1250., 0.0);
+{ 11297} G2P500F +PERO5              =  0.460G1P500G + 0.270GPN5006 + 0.270GPN500S                 : ARR( 0.183E-11,   450., 0.0);
+{ 11298} G2P500F +PERO6              =  0.300G1P500G + 0.350GPN5006 + 0.350GPN500S                 : ARR( 0.168E-13, -1300., 0.0);
+{ 11299} G2P500F +PERO9              =  0.650G1P500G + 0.350GPN500S                                : ARR( 0.100E-10,     0., 0.0);
+{ 11300} G2P500G +GNO                =       G1P500H +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 11301} G2P500G +GNO                =       GPN500T                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 11302} G2P500G +GHO2               =       GPH500N                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 11303} G2P500G +GNO3               =       G1P500H +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 11304} G2P500G +MEPERO             =  0.340G1P500H + 0.330GPN500U + 0.330GPN500W                 : ARR( 0.565E-13,  -845., 0.0);
+{ 11305} G2P500G +PERO1              =  0.460G1P500H + 0.270GPN500U + 0.270GPN500W                 : ARR( 0.434E-13,  -900., 0.0);
+{ 11306} G2P500G +PERO2              =  0.400G1P500H + 0.300GPN500U + 0.300GPN500W                 : ARR( 0.162E-13, -1400., 0.0);
+{ 11307} G2P500G +PERO3              =  0.460G1P500H + 0.270GPN500U + 0.270GPN500W                 : ARR( 0.488E-13, -1250., 0.0);
+{ 11308} G2P500G +PERO5              =  0.460G1P500H + 0.270GPN500U + 0.270GPN500W                 : ARR( 0.183E-11,   450., 0.0);
+{ 11309} G2P500G +PERO6              =  0.300G1P500H + 0.350GPN500U + 0.350GPN500W                 : ARR( 0.168E-13, -1300., 0.0);
+{ 11310} G2P500G +PERO9              =  0.650G1P500H + 0.350GPN500W                                : ARR( 0.100E-10,     0., 0.0);
+{ 11311} G1P500F +OXYGEN             =       GPN500Q +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{ 11312} G1P500F                     =       G2P500H                                               : ARR( 0.160E+12,  3940., 0.0);
+{ 11313} G1P500G                     =       GD02000 +      GPD3000 +      GNO2                    : ARR( 0.200E+15,  6112., 0.0);
+{ 11314} G1P500H                     =       G2P500I                                               : ARR( 0.240E+12,  4177., 0.0);
+{ 11315} G1P500H                     =       GND4005 +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 11316} G2P500H +GNO                =       G1P500I +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 11317} G2P500H +GNO                =       GPN500X                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 11318} G2P500H +GHO2               =       GPH500O                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 11319} G2P500H +GNO3               =       G1P500I +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 11320} G2P500H +MEPERO             =  0.340G1P500I + 0.330GPN500Y + 0.330GPN500Z                 : ARR( 0.565E-13,  -845., 0.0);
+{ 11321} G2P500H +PERO1              =  0.460G1P500I + 0.270GPN500Y + 0.270GPN500Z                 : ARR( 0.434E-13,  -900., 0.0);
+{ 11322} G2P500H +PERO2              =  0.400G1P500I + 0.300GPN500Y + 0.300GPN500Z                 : ARR( 0.162E-13, -1400., 0.0);
+{ 11323} G2P500H +PERO3              =  0.460G1P500I + 0.270GPN500Y + 0.270GPN500Z                 : ARR( 0.488E-13, -1250., 0.0);
+{ 11324} G2P500H +PERO5              =  0.460G1P500I + 0.270GPN500Y + 0.270GPN500Z                 : ARR( 0.183E-11,   450., 0.0);
+{ 11325} G2P500H +PERO6              =  0.300G1P500I + 0.350GPN500Y + 0.350GPN500Z                 : ARR( 0.168E-13, -1300., 0.0);
+{ 11326} G2P500H +PERO9              =  0.650G1P500I + 0.350GPN500Z                                : ARR( 0.100E-10,     0., 0.0);
+{ 11327} G2P500I +GNO                =       G1P500J +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 11328} G2P500I +GNO                =       GPN500a                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 11329} G2P500I +GHO2               =       GPH500P                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 11330} G2P500I +GNO3               =       G1P500J +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 11331} G2P500I +MEPERO             =  0.480G1P500J + 0.260GPN500Y + 0.260GPN500b                 : ARR( 0.146E-12,  -445., 0.0);
+{ 11332} G2P500I +PERO1              =  0.600G1P500J + 0.200GPN500Y + 0.200GPN500b                 : ARR( 0.112E-12,  -500., 0.0);
+{ 11333} G2P500I +PERO2              =  0.560G1P500J + 0.220GPN500Y + 0.220GPN500b                 : ARR( 0.418E-13, -1000., 0.0);
+{ 11334} G2P500I +PERO3              =  0.600G1P500J + 0.200GPN500Y + 0.200GPN500b                 : ARR( 0.126E-12,  -850., 0.0);
+{ 11335} G2P500I +PERO5              =  0.600G1P500J + 0.200GPN500Y + 0.200GPN500b                 : ARR( 0.473E-11,   850., 0.0);
+{ 11336} G2P500I +PERO6              =  0.460G1P500J + 0.270GPN500Y + 0.270GPN500b                 : ARR( 0.434E-13,  -900., 0.0);
+{ 11337} G2P500I +PERO9              =  0.800G1P500J + 0.200GPN500b                                : ARR( 0.100E-10,     0., 0.0);
+{ 11338} G1P500I                     =       GPN500b +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{ 11339} G1P500I                     =       GND4006 +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 11340} G1P500J                     =       GPN500Z +      GHO2                                   : ARR( 0.800E+11,  2965., 0.0);
+{ 11341} GNN4003 +GHO                =       G2N400H                                               : ARR( 0.677E-12,     0., 0.0);
+{ 11342} GNN4003 +GHO                =       G2N400O                                               : ARR( 0.928E-12,     0., 0.0);
+{ 11343} GNN4003 +GHO                =       GNK4000 +      GNO2                                   : ARR( 0.951E-13,     0., 0.0);
+{ 11344} GNN4003+HV               =       G1N4005 +      GNO2                                   :  0.100E+01*SUN;
+{ 11345} GNN4003+HV               =       G1N4002 +      GNO2                                   :  0.100E+01*SUN;
+{ 11346} G2N400O +GNO                =       G1N400P +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 11347} G2N400O +GNO                =       GNN400L                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 11348} G2N400O +GHO2               =       GHN400c                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 11349} G2N400O +GNO3               =       G1N400P +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 11350} G2N400O +MEPERO             =  0.340G1N400P + 0.330GNN4009 + 0.330GNN400M                 : ARR( 0.565E-13,  -845., 0.0);
+{ 11351} G2N400O +PERO1              =  0.460G1N400P + 0.270GNN4009 + 0.270GNN400M                 : ARR( 0.434E-13,  -900., 0.0);
+{ 11352} G2N400O +PERO2              =  0.400G1N400P + 0.300GNN4009 + 0.300GNN400M                 : ARR( 0.162E-13, -1400., 0.0);
+{ 11353} G2N400O +PERO3              =  0.460G1N400P + 0.270GNN4009 + 0.270GNN400M                 : ARR( 0.488E-13, -1250., 0.0);
+{ 11354} G2N400O +PERO5              =  0.460G1N400P + 0.270GNN4009 + 0.270GNN400M                 : ARR( 0.183E-11,   450., 0.0);
+{ 11355} G2N400O +PERO6              =  0.300G1N400P + 0.350GNN4009 + 0.350GNN400M                 : ARR( 0.168E-13, -1300., 0.0);
+{ 11356} G2N400O +PERO9              =  0.650G1N400P + 0.350GNN400M                                : ARR( 0.100E-10,     0., 0.0);
+{ 11357} G1N400P                     =       GD02000 +      GND2000 +      GNO2                    : ARR( 0.200E+15,  6128., 0.0);
+{ 11358} GHN4004 +GHO                =       GND4005 +      GHO                                    : ARR( 0.346E-11,     0., 0.0);
+{ 11359} GHN4004 +GHO                =       G2N4002                                               : ARR( 0.204E-11,  -190., 0.0);
+{ 11360} GHN4004+HV               =       G1H4004 +      GNO2                                   :  0.100E+01*SUN;
+{ 11361} GHN4004+HV               =       G1N4002 +      GHO                                    :  0.100E+01*SUN;
+{ 11362} GNO4004 +GHO                =       G2N4003                                               : ARR( 0.168E-12,     0., 0.0);
+{ 11363} GNO4004 +GHO                =       G2N400P                                               : ARR( 0.230E-12,     0., 0.0);
+{ 11364} GNO4004 +GHO                =       GKO4000 +      GNO2                                   : ARR( 0.118E-12,     0., 0.0);
+{ 11365} GNO4004 +GHO                =       GND4005 +      GHO2                                   : ARR( 0.804E-12,     0., 0.0);
+{ 11366} GNO4004 +GHO                =       G1N4002                                               : ARR( 0.210E-17,    85., 2.0);
+{ 11367} GNO4004+HV               =       G1O4006 +      GNO2                                   :  0.100E+01*SUN;
+{ 11368} G2N400P +GNO                =       G1N400Q +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 11369} G2N400P +GNO                =       GNN400N                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 11370} G2N400P +GHO2               =       GHN400d                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 11371} G2N400P +GNO3               =       G1N400Q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 11372} G2N400P +MEPERO             =  0.340G1N400Q + 0.330GNO4008 + 0.330GNK4007                 : ARR( 0.565E-13,  -845., 0.0);
+{ 11373} G2N400P +PERO1              =  0.460G1N400Q + 0.270GNO4008 + 0.270GNK4007                 : ARR( 0.434E-13,  -900., 0.0);
+{ 11374} G2N400P +PERO2              =  0.400G1N400Q + 0.300GNO4008 + 0.300GNK4007                 : ARR( 0.162E-13, -1400., 0.0);
+{ 11375} G2N400P +PERO3              =  0.460G1N400Q + 0.270GNO4008 + 0.270GNK4007                 : ARR( 0.488E-13, -1250., 0.0);
+{ 11376} G2N400P +PERO5              =  0.460G1N400Q + 0.270GNO4008 + 0.270GNK4007                 : ARR( 0.183E-11,   450., 0.0);
+{ 11377} G2N400P +PERO6              =  0.300G1N400Q + 0.350GNO4008 + 0.350GNK4007                 : ARR( 0.168E-13, -1300., 0.0);
+{ 11378} G2N400P +PERO9              =  0.650G1N400Q + 0.350GNK4007                                : ARR( 0.100E-10,     0., 0.0);
+{ 11379} G1N400Q                     =       GD02000 +      GDO2000 +      GNO2                    : ARR( 0.200E+15,  6128., 0.0);
+{ 11380} GHD3002 +GHO                =       GDK3000 +      GHO                                    : ARR( 0.207E-10,     0., 0.0);
+{ 11381} GHD3002 +GHO                =       G3H3001                                               : ARR( 0.210E-10,     0., 0.0);
+{ 11382} GHD3002 +GHO                =       G2D3000                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 11383} GHD3002 +GNO3               =       G3H3001 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 11384} GHD3002+HV               =       G1D3001 +      GHO                                    :  0.100E+01*SUN;
+{ 11385} GHD3002+HV               =       GD02000 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 11386} GNN4004 +GHO                =       GNN4008 +      GHO2                                   : ARR( 0.882E-12,     0., 0.0);
+{ 11387} GNN4004 +GHO                =       GNK4002 +      GNO2                                   : ARR( 0.129E-12,     0., 0.0);
+{ 11388} GNN4004 +GHO                =       G1N400C                                               : ARR( 0.230E-17,    85., 2.0);
+{ 11389} GNN4004+HV               =       G1N4006 +      GNO2                                   :  0.100E+01*SUN;
+{ 11390} GNN4004+HV               =       G1N4003 +      GNO2                                   :  0.100E+01*SUN;
+{ 11391} GHN4005 +GHO                =       GND4002 +      GHO                                    : ARR( 0.172E-10,     0., 0.0);
+{ 11392} GHN4005 +GHO                =       G2N4003                                               : ARR( 0.203E-11,  -190., 0.0);
+{ 11393} GHN4005+HV               =       G1H4005 +      GNO2                                   :  0.100E+01*SUN;
+{ 11394} GHN4005+HV               =       G1N4003 +      GHO                                    :  0.100E+01*SUN;
+{ 11395} GNO4005 +GHO                =       GND4002 +      GHO2                                   : ARR( 0.433E-11,     0., 0.0);
+{ 11396} GNO4005 +GHO                =       G2N400Q                                               : ARR( 0.305E-12,     0., 0.0);
+{ 11397} GNO4005 +GHO                =       GND4006 +      GHO2                                   : ARR( 0.867E-12,     0., 0.0);
+{ 11398} GNO4005+HV               =       G1O4007 +      GNO2                                   :  0.100E+01*SUN;
+{ 11399} G2N400Q +GNO                =       G1N400R +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 11400} G2N400Q +GNO                =       GNN400O                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 11401} G2N400Q +GHO2               =       GHN400e                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 11402} G2N400Q +GNO3               =       G1N400R +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 11403} G2N400Q +MEPERO             =  0.340G1N400R + 0.330GNO4009 + 0.330GNK4008                 : ARR( 0.565E-13,  -845., 0.0);
+{ 11404} G2N400Q +PERO1              =  0.460G1N400R + 0.270GNO4009 + 0.270GNK4008                 : ARR( 0.434E-13,  -900., 0.0);
+{ 11405} G2N400Q +PERO2              =  0.400G1N400R + 0.300GNO4009 + 0.300GNK4008                 : ARR( 0.162E-13, -1400., 0.0);
+{ 11406} G2N400Q +PERO3              =  0.460G1N400R + 0.270GNO4009 + 0.270GNK4008                 : ARR( 0.488E-13, -1250., 0.0);
+{ 11407} G2N400Q +PERO5              =  0.460G1N400R + 0.270GNO4009 + 0.270GNK4008                 : ARR( 0.183E-11,   450., 0.0);
+{ 11408} G2N400Q +PERO6              =  0.300G1N400R + 0.350GNO4009 + 0.350GNK4008                 : ARR( 0.168E-13, -1300., 0.0);
+{ 11409} G2N400Q +PERO9              =  0.650G1N400R + 0.350GNK4008                                : ARR( 0.100E-10,     0., 0.0);
+{ 11410} G1N400R                     =  2.000GDO2000 +      GNO2                                   : ARR( 0.200E+15,  6382., 0.0);
+{ 11411} G1N400R                     =       GND3004 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  5296., 0.0);
+{ 11412} GND4006 +GHO                =       GND400D +      GHO2                                   : ARR( 0.426E-11,     0., 0.0);
+{ 11413} GND4006 +GHO                =       G3N4008                                               : ARR( 0.441E-11,     0., 0.0);
+{ 11414} GND4006 +GNO3               =       G3N4008 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 11415} GND4006+HV               =       G1D4009 +      GNO2                                   :  0.100E+01*SUN;
+{ 11416} GND4006+HV               =       GDO3000 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 11417} GND4006+HV               =       GD02000 +      GND2000                                :  0.100E+01*SUN;
+{ 11418} G1D4009                     =       GDO3000 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5437., 0.0);
+{ 11419} GGH5001 +GHO                =       GGK5000 +      GHO                                    : ARR( 0.431E-10,     0., 0.0);
+{ 11420} GGH5001 +GHO                =       G2G5001                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 11421} GGH5001 +GHO                =       G3H5001                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 11422} GGH5001+HV               =       G1G5001 +      GHO                                    :  0.100E+01*SUN;
+{ 11423} GGH5001+HV               =       G2H4001 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 11424} GAH5001 +GHO                =       GAK5000 +      GHO                                    : ARR( 0.435E-10,     0., 0.0);
+{ 11425} GAH5001 +GHO                =       G2A5001                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 11426} GAH5001+HV               =       G1A5001 +      GHO                                    :  0.100E+01*SUN;
+{ 11427} GPH5001                     =       G3H5001 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 11428} GPH5001 +GHO                =       GPK5000 +      GHO                                    : ARR( 0.432E-10,     0., 0.0);
+{ 11429} GPH5001 +GHO                =       G2P5001                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 11430} GPH5001+HV               =       G1P5001 +      GHO                                    :  0.100E+01*SUN;
+{ 11431} GPH5001+HV               =       G3H5001 +      GNO2                                   :  0.100E+01*SUN;
+{ 11432} GHN4006 +GHO                =       G2H400O                                               : ARR( 0.117E-11,     0., 0.0);
+{ 11433} GHN4006 +GHO                =       GNK4000 +      GHO                                    : ARR( 0.838E-11,     0., 0.0);
+{ 11434} GHN4006 +GHO                =       G2N4005                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 11435} GHN4006+HV               =       G1N4005 +      GHO                                    :  0.100E+01*SUN;
+{ 11436} GHN4006+HV               =       G1H4001 +      GNO2                                   :  0.100E+01*SUN;
+{ 11437} G2H400O +GNO                =       G1H400Q +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 11438} G2H400O +GNO                =       GHN400f                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 11439} G2H400O +GHO2               =       GHH400L                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 11440} G2H400O +GNO3               =       G1H400Q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 11441} G2H400O +MEPERO             =  0.340G1H400Q + 0.330GHN400E + 0.330GHN400g                 : ARR( 0.565E-13,  -845., 0.0);
+{ 11442} G2H400O +PERO1              =  0.460G1H400Q + 0.270GHN400E + 0.270GHN400g                 : ARR( 0.434E-13,  -900., 0.0);
+{ 11443} G2H400O +PERO2              =  0.400G1H400Q + 0.300GHN400E + 0.300GHN400g                 : ARR( 0.162E-13, -1400., 0.0);
+{ 11444} G2H400O +PERO3              =  0.460G1H400Q + 0.270GHN400E + 0.270GHN400g                 : ARR( 0.488E-13, -1250., 0.0);
+{ 11445} G2H400O +PERO5              =  0.460G1H400Q + 0.270GHN400E + 0.270GHN400g                 : ARR( 0.183E-11,   450., 0.0);
+{ 11446} G2H400O +PERO6              =  0.300G1H400Q + 0.350GHN400E + 0.350GHN400g                 : ARR( 0.168E-13, -1300., 0.0);
+{ 11447} G2H400O +PERO9              =  0.650G1H400Q + 0.350GHN400g                                : ARR( 0.100E-10,     0., 0.0);
+{ 11448} G1H400Q                     =       GD02000 +      GND2000 +      GHO                     : ARR( 0.200E+15,  4589., 0.0);
+{ 11449} GHH4001 +GHO                =       GHK4000 +      GHO                                    : ARR( 0.421E-10,     0., 0.0);
+{ 11450} GHH4001 +GHO                =       GHD4005 +      GHO                                    : ARR( 0.164E-10,     0., 0.0);
+{ 11451} GHH4001 +GHO                =       G2H4004                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 11452} GHH4001 +GHO                =       G2H4001                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 11453} GHH4001+HV               =       G1H4004 +      GHO                                    :  0.100E+01*SUN;
+{ 11454} GHH4001+HV               =       G1H4001 +      GHO                                    :  0.100E+01*SUN;
+{ 11455} GHO4004 +GHO                =       GKO4000 +      GHO                                    : ARR( 0.424E-10,     0., 0.0);
+{ 11456} GHO4004 +GHO                =       GHD4005 +      GHO2                                   : ARR( 0.414E-11,     0., 0.0);
+{ 11457} GHO4004 +GHO                =       G2O4006                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 11458} GHO4004+HV               =       G1O4006 +      GHO                                    :  0.100E+01*SUN;
+{ 11459} GHD4005 +GHO                =       G2H400P                                               : ARR( 0.365E-11,     0., 0.0);
+{ 11460} GHD4005 +GHO                =       GDK4002 +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 11461} GHD4005 +GHO                =       G3H4000                                               : ARR( 0.208E-10,     0., 0.0);
+{ 11462} GHD4005 +GHO                =       G2D4006                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 11463} GHD4005 +GNO3               =       G3H4000 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 11464} GHD4005+HV               =       G1D4008 +      GHO                                    :  0.100E+01*SUN;
+{ 11465} GHD4005+HV               =       GD03000 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 11466} G2H400P +GNO                =       G1H400R +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 11467} G2H400P +GNO                =       GHN400O                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 11468} G2H400P +GHO2               =       GHH400M                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 11469} G2H400P +GNO3               =       G1H400R +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 11470} G2H400P +MEPERO             =  0.340G1H400R + 0.330GHD4008 + 0.330GHD4007                 : ARR( 0.565E-13,  -845., 0.0);
+{ 11471} G2H400P +PERO1              =  0.460G1H400R + 0.270GHD4008 + 0.270GHD4007                 : ARR( 0.434E-13,  -900., 0.0);
+{ 11472} G2H400P +PERO2              =  0.400G1H400R + 0.300GHD4008 + 0.300GHD4007                 : ARR( 0.162E-13, -1400., 0.0);
+{ 11473} G2H400P +PERO3              =  0.460G1H400R + 0.270GHD4008 + 0.270GHD4007                 : ARR( 0.488E-13, -1250., 0.0);
+{ 11474} G2H400P +PERO5              =  0.460G1H400R + 0.270GHD4008 + 0.270GHD4007                 : ARR( 0.183E-11,   450., 0.0);
+{ 11475} G2H400P +PERO6              =  0.300G1H400R + 0.350GHD4008 + 0.350GHD4007                 : ARR( 0.168E-13, -1300., 0.0);
+{ 11476} G2H400P +PERO9              =  0.650G1H400R + 0.350GHD4007                                : ARR( 0.100E-10,     0., 0.0);
+{ 11477} G2D4006 +GNO                =       G1D4008 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 11478} G2D4006 +GNO                =       GND4005                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 11479} G2D4006 +GHO2               =       GHD4005                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 11480} G2D4006 +GNO3               =       G1D4008 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 11481} G2D4006 +MEPERO             =  0.340G1D4008 + 0.330GDO4004 + 0.330GDK4002                 : ARR( 0.565E-13,  -845., 0.0);
+{ 11482} G2D4006 +PERO1              =  0.460G1D4008 + 0.270GDO4004 + 0.270GDK4002                 : ARR( 0.434E-13,  -900., 0.0);
+{ 11483} G2D4006 +PERO2              =  0.400G1D4008 + 0.300GDO4004 + 0.300GDK4002                 : ARR( 0.162E-13, -1400., 0.0);
+{ 11484} G2D4006 +PERO3              =  0.460G1D4008 + 0.270GDO4004 + 0.270GDK4002                 : ARR( 0.488E-13, -1250., 0.0);
+{ 11485} G2D4006 +PERO5              =  0.460G1D4008 + 0.270GDO4004 + 0.270GDK4002                 : ARR( 0.183E-11,   450., 0.0);
+{ 11486} G2D4006 +PERO6              =  0.300G1D4008 + 0.350GDO4004 + 0.350GDK4002                 : ARR( 0.168E-13, -1300., 0.0);
+{ 11487} G2D4006 +PERO9              =  0.650G1D4008 + 0.350GDK4002                                : ARR( 0.100E-10,     0., 0.0);
+{ 11488} G1H400R                     =       GD02000 +      GDD2000 +      GHO                     : ARR( 0.200E+15,  4722., 0.0);
+{ 11489} GHN4007 +GHO                =       GHN400J +      GHO2                                   : ARR( 0.406E-11,     0., 0.0);
+{ 11490} GHN4007 +GHO                =       GNK4002 +      GHO                                    : ARR( 0.416E-10,     0., 0.0);
+{ 11491} GHN4007 +GHO                =       G2N4006                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 11492} GHN4007+HV               =       G1N4006 +      GHO                                    :  0.100E+01*SUN;
+{ 11493} GHN4007+HV               =       G1H4002 +      GNO2                                   :  0.100E+01*SUN;
+{ 11494} GHH4002 +GHO                =       GHH400A +      GHO2                                   : ARR( 0.411E-11,     0., 0.0);
+{ 11495} GHH4002 +GHO                =       GHK4002 +      GHO                                    : ARR( 0.421E-10,     0., 0.0);
+{ 11496} GHH4002 +GHO                =       GHD4000 +      GHO                                    : ARR( 0.164E-10,     0., 0.0);
+{ 11497} GHH4002 +GHO                =       G2H4005                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 11498} GHH4002 +GHO                =       G2H4002                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 11499} GHH4002+HV               =       G1H4005 +      GHO                                    :  0.100E+01*SUN;
+{ 11500} GHH4002+HV               =       G1H4002 +      GHO                                    :  0.100E+01*SUN;
+{ 11501} GHO4005 +GHO                =       GHD4000 +      GHO2                                   : ARR( 0.415E-11,     0., 0.0);
+{ 11502} GHO4005 +GHO                =       GKO4002 +      GHO                                    : ARR( 0.425E-10,     0., 0.0);
+{ 11503} GHO4005 +GHO                =       GHD4006 +      GHO2                                   : ARR( 0.415E-11,     0., 0.0);
+{ 11504} GHO4005 +GHO                =       G2O4007                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 11505} GHO4005+HV               =       G1O4007 +      GHO                                    :  0.100E+01*SUN;
+{ 11506} GHD4006 +GHO                =       GHD400C +      GHO2                                   : ARR( 0.403E-11,     0., 0.0);
+{ 11507} GHD4006 +GHO                =       G2H400Q                                               : ARR( 0.449E-11,     0., 0.0);
+{ 11508} GHD4006 +GHO                =       GDK4005 +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 11509} GHD4006 +GHO                =       G3H4004                                               : ARR( 0.208E-10,     0., 0.0);
+{ 11510} GHD4006 +GHO                =       G2D4007                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 11511} GHD4006 +GNO3               =       G3H4004 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 11512} GHD4006+HV               =       G1D4009 +      GHO                                    :  0.100E+01*SUN;
+{ 11513} GHD4006+HV               =       GDO3000 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 11514} G2H400Q +GNO                =       G1H400S +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 11515} G2H400Q +GNO                =       GHN400h                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 11516} G2H400Q +GHO2               =       GHH4009                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 11517} G2H400Q +GNO3               =       G1H400S +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 11518} G2H400Q +MEPERO             =  0.340G1H400S + 0.330GHD400A + 0.330GHD400G                 : ARR( 0.565E-13,  -845., 0.0);
+{ 11519} G2H400Q +PERO1              =  0.460G1H400S + 0.270GHD400A + 0.270GHD400G                 : ARR( 0.434E-13,  -900., 0.0);
+{ 11520} G2H400Q +PERO2              =  0.400G1H400S + 0.300GHD400A + 0.300GHD400G                 : ARR( 0.162E-13, -1400., 0.0);
+{ 11521} G2H400Q +PERO3              =  0.460G1H400S + 0.270GHD400A + 0.270GHD400G                 : ARR( 0.488E-13, -1250., 0.0);
+{ 11522} G2H400Q +PERO5              =  0.460G1H400S + 0.270GHD400A + 0.270GHD400G                 : ARR( 0.183E-11,   450., 0.0);
+{ 11523} G2H400Q +PERO6              =  0.300G1H400S + 0.350GHD400A + 0.350GHD400G                 : ARR( 0.168E-13, -1300., 0.0);
+{ 11524} G2H400Q +PERO9              =  0.650G1H400S + 0.350GHD400G                                : ARR( 0.100E-10,     0., 0.0);
+{ 11525} G2D4007 +GNO                =       G1D4009 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 11526} G2D4007 +GNO                =       GND4006                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 11527} G2D4007 +GHO2               =       GHD4006                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 11528} G2D4007 +GNO3               =       G1D4009 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 11529} G2D4007 +MEPERO             =  0.340G1D4009 + 0.330GDO4003 + 0.330GDK4005                 : ARR( 0.565E-13,  -845., 0.0);
+{ 11530} G2D4007 +PERO1              =  0.460G1D4009 + 0.270GDO4003 + 0.270GDK4005                 : ARR( 0.434E-13,  -900., 0.0);
+{ 11531} G2D4007 +PERO2              =  0.400G1D4009 + 0.300GDO4003 + 0.300GDK4005                 : ARR( 0.162E-13, -1400., 0.0);
+{ 11532} G2D4007 +PERO3              =  0.460G1D4009 + 0.270GDO4003 + 0.270GDK4005                 : ARR( 0.488E-13, -1250., 0.0);
+{ 11533} G2D4007 +PERO5              =  0.460G1D4009 + 0.270GDO4003 + 0.270GDK4005                 : ARR( 0.183E-11,   450., 0.0);
+{ 11534} G2D4007 +PERO6              =  0.300G1D4009 + 0.350GDO4003 + 0.350GDK4005                 : ARR( 0.168E-13, -1300., 0.0);
+{ 11535} G2D4007 +PERO9              =  0.650G1D4009 + 0.350GDK4005                                : ARR( 0.100E-10,     0., 0.0);
+{ 11536} G1H400S                     =       GCH2O   +      GHD3004 +      GHO2                    : ARR( 0.200E+15,  4465., 0.0);
+{ 11537} G1H400S                     =       GDO2000 +      GDD2000 +      GHO                     : ARR( 0.200E+15,  4976., 0.0);
+{ 11538} GGO5002 +GHO                =       G2G500E                                               : ARR( 0.117E-11,     0., 0.0);
+{ 11539} GGO5002 +GHO                =       GGK5000 +      GHO2                                   : ARR( 0.105E-10,     0., 0.0);
+{ 11540} GGO5002 +GHO                =       G2G500F                                               : ARR( 0.878E-12,     0., 0.0);
+{ 11541} GGO5002 +GHO                =       G3K5003                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 11542} GGO5002+HV               =       G2O4004 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 11543} G2G500E +GNO                =       G1G500F +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 11544} G2G500E +GNO                =       GGN500R                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 11545} G2G500E +GHO2               =       GGH500M                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 11546} G2G500E +GNO3               =       G1G500F +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 11547} G2G500E +MEPERO             =  0.340G1G500F + 0.330GGO5006 + 0.330GGK5009                 : ARR( 0.565E-13,  -845., 0.0);
+{ 11548} G2G500E +PERO1              =  0.460G1G500F + 0.270GGO5006 + 0.270GGK5009                 : ARR( 0.434E-13,  -900., 0.0);
+{ 11549} G2G500E +PERO2              =  0.400G1G500F + 0.300GGO5006 + 0.300GGK5009                 : ARR( 0.162E-13, -1400., 0.0);
+{ 11550} G2G500E +PERO3              =  0.460G1G500F + 0.270GGO5006 + 0.270GGK5009                 : ARR( 0.488E-13, -1250., 0.0);
+{ 11551} G2G500E +PERO5              =  0.460G1G500F + 0.270GGO5006 + 0.270GGK5009                 : ARR( 0.183E-11,   450., 0.0);
+{ 11552} G2G500E +PERO6              =  0.300G1G500F + 0.350GGO5006 + 0.350GGK5009                 : ARR( 0.168E-13, -1300., 0.0);
+{ 11553} G2G500E +PERO9              =  0.650G1G500F + 0.350GGK5009                                : ARR( 0.100E-10,     0., 0.0);
+{ 11554} G2G500F +GNO                =       G1G500G +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 11555} G2G500F +GNO                =       GGN500S                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 11556} G2G500F +GHO2               =       GGH500N                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 11557} G2G500F +GNO3               =       G1G500G +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 11558} G2G500F +MEPERO             =  0.340G1G500G + 0.330GGO5009 + 0.330GGK500A                 : ARR( 0.565E-13,  -845., 0.0);
+{ 11559} G2G500F +PERO1              =  0.460G1G500G + 0.270GGO5009 + 0.270GGK500A                 : ARR( 0.434E-13,  -900., 0.0);
+{ 11560} G2G500F +PERO2              =  0.400G1G500G + 0.300GGO5009 + 0.300GGK500A                 : ARR( 0.162E-13, -1400., 0.0);
+{ 11561} G2G500F +PERO3              =  0.460G1G500G + 0.270GGO5009 + 0.270GGK500A                 : ARR( 0.488E-13, -1250., 0.0);
+{ 11562} G2G500F +PERO5              =  0.460G1G500G + 0.270GGO5009 + 0.270GGK500A                 : ARR( 0.183E-11,   450., 0.0);
+{ 11563} G2G500F +PERO6              =  0.300G1G500G + 0.350GGO5009 + 0.350GGK500A                 : ARR( 0.168E-13, -1300., 0.0);
+{ 11564} G2G500F +PERO9              =  0.650G1G500G + 0.350GGK500A                                : ARR( 0.100E-10,     0., 0.0);
+{ 11565} G1G500F                     =       GD02000 +      GGD3000 +      GHO2                    : ARR( 0.200E+15,  3365., 0.0);
+{ 11566} G1G500G                     =       G2G500G                                               : ARR( 0.240E+12,  4177., 0.0);
+{ 11567} G1G500G                     =       GD03000 +      GGD2000 +      GHO2                    : ARR( 0.200E+15,  5847., 0.0);
+{ 11568} G1G500G                     =       GDO4004 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 11569} G2G500G +GNO                =       G1G500H +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 11570} G2G500G +GNO                =       GGN500T                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 11571} G2G500G +GHO2               =       GGH500O                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 11572} G2G500G +GNO3               =       G1G500H +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 11573} G2G500G +MEPERO             =  0.480G1G500H + 0.260GGO500A + 0.260GGD5003                 : ARR( 0.146E-12,  -445., 0.0);
+{ 11574} G2G500G +PERO1              =  0.600G1G500H + 0.200GGO500A + 0.200GGD5003                 : ARR( 0.112E-12,  -500., 0.0);
+{ 11575} G2G500G +PERO2              =  0.560G1G500H + 0.220GGO500A + 0.220GGD5003                 : ARR( 0.418E-13, -1000., 0.0);
+{ 11576} G2G500G +PERO3              =  0.600G1G500H + 0.200GGO500A + 0.200GGD5003                 : ARR( 0.126E-12,  -850., 0.0);
+{ 11577} G2G500G +PERO5              =  0.600G1G500H + 0.200GGO500A + 0.200GGD5003                 : ARR( 0.473E-11,   850., 0.0);
+{ 11578} G2G500G +PERO6              =  0.460G1G500H + 0.270GGO500A + 0.270GGD5003                 : ARR( 0.434E-13,  -900., 0.0);
+{ 11579} G2G500G +PERO9              =  0.800G1G500H + 0.200GGD5003                                : ARR( 0.100E-10,     0., 0.0);
+{ 11580} G1G500H                     =       GGK500B +      GHO2                                   : ARR( 0.800E+11,  2246., 0.0);
+{ 11581} GAO5002 +GHO                =       G2A500J                                               : ARR( 0.130E-11,     0., 0.0);
+{ 11582} GAO5002 +GHO                =       GAK5000 +      GHO2                                   : ARR( 0.116E-10,     0., 0.0);
+{ 11583} G2A500J +GNO                =       G1A500K +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 11584} G2A500J +GNO                =       GAN500c                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 11585} G2A500J +GHO2               =       GAH500Q                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 11586} G2A500J +GNO3               =       G1A500K +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 11587} G2A500J +MEPERO             =  0.340G1A500K + 0.330GAO5006 + 0.330GAK5009                 : ARR( 0.565E-13,  -845., 0.0);
+{ 11588} G2A500J +PERO1              =  0.460G1A500K + 0.270GAO5006 + 0.270GAK5009                 : ARR( 0.434E-13,  -900., 0.0);
+{ 11589} G2A500J +PERO2              =  0.400G1A500K + 0.300GAO5006 + 0.300GAK5009                 : ARR( 0.162E-13, -1400., 0.0);
+{ 11590} G2A500J +PERO3              =  0.460G1A500K + 0.270GAO5006 + 0.270GAK5009                 : ARR( 0.488E-13, -1250., 0.0);
+{ 11591} G2A500J +PERO5              =  0.460G1A500K + 0.270GAO5006 + 0.270GAK5009                 : ARR( 0.183E-11,   450., 0.0);
+{ 11592} G2A500J +PERO6              =  0.300G1A500K + 0.350GAO5006 + 0.350GAK5009                 : ARR( 0.168E-13, -1300., 0.0);
+{ 11593} G2A500J +PERO9              =  0.650G1A500K + 0.350GAK5009                                : ARR( 0.100E-10,     0., 0.0);
+{ 11594} G1A500K                     =       GD02000 +      GAD3000 +      GHO2                    : ARR( 0.200E+15,  3365., 0.0);
+{ 11595} GPO5002                     =       G3K5003 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 11596} GPO5002 +GHO                =       G2P500J                                               : ARR( 0.118E-11,     0., 0.0);
+{ 11597} GPO5002 +GHO                =       GPK5000 +      GHO2                                   : ARR( 0.106E-10,     0., 0.0);
+{ 11598} GPO5002 +GHO                =       G2P500K                                               : ARR( 0.883E-12,     0., 0.0);
+{ 11599} GPO5002+HV               =       G3K5003 +      GNO2                                   :  0.100E+01*SUN;
+{ 11600} G2P500J +GNO                =       G1P500K +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 11601} G2P500J +GNO                =       GPN500c                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 11602} G2P500J +GHO2               =       GPH500Q                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 11603} G2P500J +GNO3               =       G1P500K +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 11604} G2P500J +MEPERO             =  0.340G1P500K + 0.330GPO5006 + 0.330GPK5009                 : ARR( 0.565E-13,  -845., 0.0);
+{ 11605} G2P500J +PERO1              =  0.460G1P500K + 0.270GPO5006 + 0.270GPK5009                 : ARR( 0.434E-13,  -900., 0.0);
+{ 11606} G2P500J +PERO2              =  0.400G1P500K + 0.300GPO5006 + 0.300GPK5009                 : ARR( 0.162E-13, -1400., 0.0);
+{ 11607} G2P500J +PERO3              =  0.460G1P500K + 0.270GPO5006 + 0.270GPK5009                 : ARR( 0.488E-13, -1250., 0.0);
+{ 11608} G2P500J +PERO5              =  0.460G1P500K + 0.270GPO5006 + 0.270GPK5009                 : ARR( 0.183E-11,   450., 0.0);
+{ 11609} G2P500J +PERO6              =  0.300G1P500K + 0.350GPO5006 + 0.350GPK5009                 : ARR( 0.168E-13, -1300., 0.0);
+{ 11610} G2P500J +PERO9              =  0.650G1P500K + 0.350GPK5009                                : ARR( 0.100E-10,     0., 0.0);
+{ 11611} G2P500K +GNO                =       G1P500L +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 11612} G2P500K +GNO                =       GPN500d                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 11613} G2P500K +GHO2               =       GPH500R                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 11614} G2P500K +GNO3               =       G1P500L +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 11615} G2P500K +MEPERO             =  0.340G1P500L + 0.330GPO5009 + 0.330GPK500A                 : ARR( 0.565E-13,  -845., 0.0);
+{ 11616} G2P500K +PERO1              =  0.460G1P500L + 0.270GPO5009 + 0.270GPK500A                 : ARR( 0.434E-13,  -900., 0.0);
+{ 11617} G2P500K +PERO2              =  0.400G1P500L + 0.300GPO5009 + 0.300GPK500A                 : ARR( 0.162E-13, -1400., 0.0);
+{ 11618} G2P500K +PERO3              =  0.460G1P500L + 0.270GPO5009 + 0.270GPK500A                 : ARR( 0.488E-13, -1250., 0.0);
+{ 11619} G2P500K +PERO5              =  0.460G1P500L + 0.270GPO5009 + 0.270GPK500A                 : ARR( 0.183E-11,   450., 0.0);
+{ 11620} G2P500K +PERO6              =  0.300G1P500L + 0.350GPO5009 + 0.350GPK500A                 : ARR( 0.168E-13, -1300., 0.0);
+{ 11621} G2P500K +PERO9              =  0.650G1P500L + 0.350GPK500A                                : ARR( 0.100E-10,     0., 0.0);
+{ 11622} G1P500K                     =       GD02000 +      GPD3000 +      GHO2                    : ARR( 0.200E+15,  3365., 0.0);
+{ 11623} G1P500L                     =       G2P500L                                               : ARR( 0.240E+12,  4177., 0.0);
+{ 11624} G1P500L                     =       GD03000 +      GPD2000 +      GHO2                    : ARR( 0.200E+15,  5847., 0.0);
+{ 11625} G1P500L                     =       GDO4004 +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 11626} G2P500L +GNO                =       G1P500M +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 11627} G2P500L +GNO                =       GPN500e                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 11628} G2P500L +GHO2               =       GPH500S                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 11629} G2P500L +GNO3               =       G1P500M +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 11630} G2P500L +MEPERO             =  0.480G1P500M + 0.260GPO500A + 0.260GPD5003                 : ARR( 0.146E-12,  -445., 0.0);
+{ 11631} G2P500L +PERO1              =  0.600G1P500M + 0.200GPO500A + 0.200GPD5003                 : ARR( 0.112E-12,  -500., 0.0);
+{ 11632} G2P500L +PERO2              =  0.560G1P500M + 0.220GPO500A + 0.220GPD5003                 : ARR( 0.418E-13, -1000., 0.0);
+{ 11633} G2P500L +PERO3              =  0.600G1P500M + 0.200GPO500A + 0.200GPD5003                 : ARR( 0.126E-12,  -850., 0.0);
+{ 11634} G2P500L +PERO5              =  0.600G1P500M + 0.200GPO500A + 0.200GPD5003                 : ARR( 0.473E-11,   850., 0.0);
+{ 11635} G2P500L +PERO6              =  0.460G1P500M + 0.270GPO500A + 0.270GPD5003                 : ARR( 0.434E-13,  -900., 0.0);
+{ 11636} G2P500L +PERO9              =  0.800G1P500M + 0.200GPD5003                                : ARR( 0.100E-10,     0., 0.0);
+{ 11637} G1P500M                     =       GPK500B +      GHO2                                   : ARR( 0.800E+11,  2246., 0.0);
+{ 11638} GNO4006 +GHO                =       G2N400R                                               : ARR( 0.128E-11,     0., 0.0);
+{ 11639} GNO4006 +GHO                =       GNK4000 +      GHO2                                   : ARR( 0.229E-11,     0., 0.0);
+{ 11640} GNO4006+HV               =       G1O4004 +      GNO2                                   :  0.100E+01*SUN;
+{ 11641} G2N400R +GNO                =       G1N400S +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 11642} G2N400R +GNO                =       GNN400P                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 11643} G2N400R +GHO2               =       GHN400i                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 11644} G2N400R +GNO3               =       G1N400S +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 11645} G2N400R +MEPERO             =  0.340G1N400S + 0.330GNO400A + 0.330GNK4009                 : ARR( 0.565E-13,  -845., 0.0);
+{ 11646} G2N400R +PERO1              =  0.460G1N400S + 0.270GNO400A + 0.270GNK4009                 : ARR( 0.434E-13,  -900., 0.0);
+{ 11647} G2N400R +PERO2              =  0.400G1N400S + 0.300GNO400A + 0.300GNK4009                 : ARR( 0.162E-13, -1400., 0.0);
+{ 11648} G2N400R +PERO3              =  0.460G1N400S + 0.270GNO400A + 0.270GNK4009                 : ARR( 0.488E-13, -1250., 0.0);
+{ 11649} G2N400R +PERO5              =  0.460G1N400S + 0.270GNO400A + 0.270GNK4009                 : ARR( 0.183E-11,   450., 0.0);
+{ 11650} G2N400R +PERO6              =  0.300G1N400S + 0.350GNO400A + 0.350GNK4009                 : ARR( 0.168E-13, -1300., 0.0);
+{ 11651} G2N400R +PERO9              =  0.650G1N400S + 0.350GNK4009                                : ARR( 0.100E-10,     0., 0.0);
+{ 11652} G1N400S                     =       GD02000 +      GND2000 +      GHO2                    : ARR( 0.200E+15,  3380., 0.0);
+{ 11653} GHO4006 +GHO                =       GHK4000 +      GHO2                                   : ARR( 0.108E-10,     0., 0.0);
+{ 11654} GHO4006 +GHO                =       GDO4004 +      GHO                                    : ARR( 0.169E-10,     0., 0.0);
+{ 11655} GHO4006 +GHO                =       G2O4004                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 11656} GHO4006+HV               =       G1O4004 +      GHO                                    :  0.100E+01*SUN;
+{ 11657} GOO4003 +GHO                =       G2O400C                                               : ARR( 0.118E-11,     0., 0.0);
+{ 11658} GOO4003 +GHO                =       GKO4000 +      GHO2                                   : ARR( 0.106E-10,     0., 0.0);
+{ 11659} GOO4003 +GHO                =       GDO4004 +      GHO2                                   : ARR( 0.414E-11,     0., 0.0);
+{ 11660} G2O400C +GNO                =       G1O400C +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 11661} G2O400C +GNO                =       GNO400C                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 11662} G2O400C +GHO2               =       GHO400C                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 11663} G2O400C +GNO3               =       G1O400C +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 11664} G2O400C +MEPERO             =  0.340G1O400C + 0.330GOO4004 + 0.330GKO4005                 : ARR( 0.565E-13,  -845., 0.0);
+{ 11665} G2O400C +PERO1              =  0.460G1O400C + 0.270GOO4004 + 0.270GKO4005                 : ARR( 0.434E-13,  -900., 0.0);
+{ 11666} G2O400C +PERO2              =  0.400G1O400C + 0.300GOO4004 + 0.300GKO4005                 : ARR( 0.162E-13, -1400., 0.0);
+{ 11667} G2O400C +PERO3              =  0.460G1O400C + 0.270GOO4004 + 0.270GKO4005                 : ARR( 0.488E-13, -1250., 0.0);
+{ 11668} G2O400C +PERO5              =  0.460G1O400C + 0.270GOO4004 + 0.270GKO4005                 : ARR( 0.183E-11,   450., 0.0);
+{ 11669} G2O400C +PERO6              =  0.300G1O400C + 0.350GOO4004 + 0.350GKO4005                 : ARR( 0.168E-13, -1300., 0.0);
+{ 11670} G2O400C +PERO9              =  0.650G1O400C + 0.350GKO4005                                : ARR( 0.100E-10,     0., 0.0);
+{ 11671} G1O400C                     =       GD02000 +      GDO2000 +      GHO2                    : ARR( 0.200E+15,  3380., 0.0);
+{ 11672} GDO4004 +GHO                =       G2D4008                                               : ARR( 0.368E-11,     0., 0.0);
+{ 11673} GDO4004 +GHO                =       GDK4002 +      GHO2                                   : ARR( 0.635E-11,     0., 0.0);
+{ 11674} GDO4004 +GHO                =       G3K4004                                               : ARR( 0.210E-10,     0., 0.0);
+{ 11675} GDO4004 +GNO3               =       G3K4004 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 11676} GDO4004+HV               =       GD03000 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 11677} G2D4008 +GNO                =       G1D400A +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 11678} G2D4008 +GNO                =       GND400H                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 11679} G2D4008 +GHO2               =       GHD400H                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 11680} G2D4008 +GNO3               =       G1D400A +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 11681} G2D4008 +MEPERO             =  0.340G1D400A + 0.330GDO4005 + 0.330GDK4003                 : ARR( 0.565E-13,  -845., 0.0);
+{ 11682} G2D4008 +PERO1              =  0.460G1D400A + 0.270GDO4005 + 0.270GDK4003                 : ARR( 0.434E-13,  -900., 0.0);
+{ 11683} G2D4008 +PERO2              =  0.400G1D400A + 0.300GDO4005 + 0.300GDK4003                 : ARR( 0.162E-13, -1400., 0.0);
+{ 11684} G2D4008 +PERO3              =  0.460G1D400A + 0.270GDO4005 + 0.270GDK4003                 : ARR( 0.488E-13, -1250., 0.0);
+{ 11685} G2D4008 +PERO5              =  0.460G1D400A + 0.270GDO4005 + 0.270GDK4003                 : ARR( 0.183E-11,   450., 0.0);
+{ 11686} G2D4008 +PERO6              =  0.300G1D400A + 0.350GDO4005 + 0.350GDK4003                 : ARR( 0.168E-13, -1300., 0.0);
+{ 11687} G2D4008 +PERO9              =  0.650G1D400A + 0.350GDK4003                                : ARR( 0.100E-10,     0., 0.0);
+{ 11688} G1D400A                     =       GD02000 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  3513., 0.0);
+{ 11689} GGK5000 +GHO                =       G2G500H                                               : ARR( 0.531E-12,     0., 0.0);
+{ 11690} GGK5000 +GHO                =       G2G500I                                               : ARR( 0.701E-12,     0., 0.0);
+{ 11691} GGK5000 +GHO                =       G2G500J                                               : ARR( 0.525E-12,     0., 0.0);
+{ 11692} GGK5000 +GHO                =       G3K5004                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 11693} GGK5000+HV               =       G3K3000 +      G2G2000                                :  0.100E+01*SUN;
+{ 11694} GGK5000+HV               =       G2K4000 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 11695} G2G500H +GNO                =       G1G500I +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 11696} G2G500H +GNO                =       GGN5009                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 11697} G2G500H +GHO2               =       GGH500P                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 11698} G2G500H +GNO3               =       G1G500I +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 11699} G2G500H +MEPERO             =  0.480G1G500I + 0.260GGK500C + 0.260GGD5004                 : ARR( 0.146E-12,  -445., 0.0);
+{ 11700} G2G500H +PERO1              =  0.600G1G500I + 0.200GGK500C + 0.200GGD5004                 : ARR( 0.112E-12,  -500., 0.0);
+{ 11701} G2G500H +PERO2              =  0.560G1G500I + 0.220GGK500C + 0.220GGD5004                 : ARR( 0.418E-13, -1000., 0.0);
+{ 11702} G2G500H +PERO3              =  0.600G1G500I + 0.200GGK500C + 0.200GGD5004                 : ARR( 0.126E-12,  -850., 0.0);
+{ 11703} G2G500H +PERO5              =  0.600G1G500I + 0.200GGK500C + 0.200GGD5004                 : ARR( 0.473E-11,   850., 0.0);
+{ 11704} G2G500H +PERO6              =  0.460G1G500I + 0.270GGK500C + 0.270GGD5004                 : ARR( 0.434E-13,  -900., 0.0);
+{ 11705} G2G500H +PERO9              =  0.800G1G500I + 0.200GGD5004                                : ARR( 0.100E-10,     0., 0.0);
+{ 11706} G2G500I +GNO                =       G1G500J +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 11707} G2G500I +GNO                =       GGN500U                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 11708} G2G500I +GHO2               =       GGH500Q                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 11709} G2G500I +GNO3               =       G1G500J +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 11710} G2G500I +MEPERO             =  0.340G1G500J + 0.330GGK5003 + 0.330GGK500D                 : ARR( 0.565E-13,  -845., 0.0);
+{ 11711} G2G500I +PERO1              =  0.460G1G500J + 0.270GGK5003 + 0.270GGK500D                 : ARR( 0.434E-13,  -900., 0.0);
+{ 11712} G2G500I +PERO2              =  0.400G1G500J + 0.300GGK5003 + 0.300GGK500D                 : ARR( 0.162E-13, -1400., 0.0);
+{ 11713} G2G500I +PERO3              =  0.460G1G500J + 0.270GGK5003 + 0.270GGK500D                 : ARR( 0.488E-13, -1250., 0.0);
+{ 11714} G2G500I +PERO5              =  0.460G1G500J + 0.270GGK5003 + 0.270GGK500D                 : ARR( 0.183E-11,   450., 0.0);
+{ 11715} G2G500I +PERO6              =  0.300G1G500J + 0.350GGK5003 + 0.350GGK500D                 : ARR( 0.168E-13, -1300., 0.0);
+{ 11716} G2G500I +PERO9              =  0.650G1G500J + 0.350GGK500D                                : ARR( 0.100E-10,     0., 0.0);
+{ 11717} G2G500J +GNO                =       G1G500K +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 11718} G2G500J +GNO                =       GGN500W                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 11719} G2G500J +GHO2               =       GGH500R                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 11720} G2G500J +GNO3               =       G1G500K +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 11721} G2G500J +MEPERO             =  0.340G1G500K + 0.330GGK500E + 0.330GGK500F                 : ARR( 0.565E-13,  -845., 0.0);
+{ 11722} G2G500J +PERO1              =  0.460G1G500K + 0.270GGK500E + 0.270GGK500F                 : ARR( 0.434E-13,  -900., 0.0);
+{ 11723} G2G500J +PERO2              =  0.400G1G500K + 0.300GGK500E + 0.300GGK500F                 : ARR( 0.162E-13, -1400., 0.0);
+{ 11724} G2G500J +PERO3              =  0.460G1G500K + 0.270GGK500E + 0.270GGK500F                 : ARR( 0.488E-13, -1250., 0.0);
+{ 11725} G2G500J +PERO5              =  0.460G1G500K + 0.270GGK500E + 0.270GGK500F                 : ARR( 0.183E-11,   450., 0.0);
+{ 11726} G2G500J +PERO6              =  0.300G1G500K + 0.350GGK500E + 0.350GGK500F                 : ARR( 0.168E-13, -1300., 0.0);
+{ 11727} G2G500J +PERO9              =  0.650G1G500K + 0.350GGK500F                                : ARR( 0.100E-10,     0., 0.0);
+{ 11728} G1G500I +OXYGEN             =       GGD5004 +      GHO2                                   : ARR( 0.600E-13,   398., 0.0);
+{ 11729} G1G500I                     =       G2G500K                                               : ARR( 0.160E+12,  5203., 0.0);
+{ 11730} G1G500J                     =       GD02000 +      G3G3000                                : ARR( 0.200E+15,  2726., 0.0);
+{ 11731} G1G500K                     =       G3K3000 +      GGD2000                                : ARR( 0.200E+15,  5332., 0.0);
+{ 11732} G2G500K +GNO                =       G1G500L +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 11733} G2G500K +GNO                =       GGN500X                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 11734} G2G500K +GHO2               =       GGH500S                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 11735} G2G500K +GNO3               =       G1G500L +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 11736} G2G500K +MEPERO             =  0.340G1G500L + 0.330GGK500G + 0.330GGK500H                 : ARR( 0.565E-13,  -845., 0.0);
+{ 11737} G2G500K +PERO1              =  0.460G1G500L + 0.270GGK500G + 0.270GGK500H                 : ARR( 0.434E-13,  -900., 0.0);
+{ 11738} G2G500K +PERO2              =  0.400G1G500L + 0.300GGK500G + 0.300GGK500H                 : ARR( 0.162E-13, -1400., 0.0);
+{ 11739} G2G500K +PERO3              =  0.460G1G500L + 0.270GGK500G + 0.270GGK500H                 : ARR( 0.488E-13, -1250., 0.0);
+{ 11740} G2G500K +PERO5              =  0.460G1G500L + 0.270GGK500G + 0.270GGK500H                 : ARR( 0.183E-11,   450., 0.0);
+{ 11741} G2G500K +PERO6              =  0.300G1G500L + 0.350GGK500G + 0.350GGK500H                 : ARR( 0.168E-13, -1300., 0.0);
+{ 11742} G2G500K +PERO9              =  0.650G1G500L + 0.350GGK500H                                : ARR( 0.100E-10,     0., 0.0);
+{ 11743} G3G3000 +GHO2               =  0.800GGG3000 + 0.200GAG3000 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 11744} G3G3000 +GNO                =       G2G2000 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 11745} G3G3000 +GNO2               =       GPG3000                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 11746} G3G3000 +GNO3               =       G2G2000 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 11747} G3G3000 +MEPERO             =  0.685G2G2000 + 0.315GAG3000 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 11748} G3G3000 +PERO1              =  0.800G2G2000 + 0.200GAG3000 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 11749} G3G3000 +PERO2              =  0.750G2G2000 + 0.250GAG3000 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 11750} G3G3000 +PERO3              =  0.800G2G2000 + 0.200GAG3000 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 11751} G3G3000 +PERO5              =  0.650G2G2000 + 0.350GAG3000 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 11752} G3G3000 +PERO6              =  0.650G2G2000 + 0.350GAG3000 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 11753} G3G3000 +PERO9              =       G2G2000 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 11754} G1G500L                     =       GGD5005 +      GHO2                                   : ARR( 0.160E+12,  3981., 0.0);
+{ 11755} G1G500L                     =       G3K3001 +      GGD2000                                : ARR( 0.200E+15,  5332., 0.0);
+{ 11756} GAK5000 +GHO                =       G2A500K                                               : ARR( 0.531E-12,     0., 0.0);
+{ 11757} GAK5000 +GHO                =       G2A500L                                               : ARR( 0.701E-12,     0., 0.0);
+{ 11758} GAK5000 +GHO                =       G2A500M                                               : ARR( 0.389E-12,     0., 0.0);
+{ 11759} GAK5000 +GHO                =       G2K4000 +      GCO2                                   : ARR( 0.520E-12,     0., 0.0);
+{ 11760} GAK5000+HV               =       G3K3000 +      G2A2000                                :  0.100E+01*SUN;
+{ 11761} G2A500K +GNO                =       G1A500L +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 11762} G2A500K +GNO                =       GAN5009                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 11763} G2A500K +GHO2               =       GAH500R                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 11764} G2A500K +GNO3               =       G1A500L +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 11765} G2A500K +MEPERO             =  0.480G1A500L + 0.260GAK500A + 0.260GAD5004                 : ARR( 0.146E-12,  -445., 0.0);
+{ 11766} G2A500K +PERO1              =  0.600G1A500L + 0.200GAK500A + 0.200GAD5004                 : ARR( 0.112E-12,  -500., 0.0);
+{ 11767} G2A500K +PERO2              =  0.560G1A500L + 0.220GAK500A + 0.220GAD5004                 : ARR( 0.418E-13, -1000., 0.0);
+{ 11768} G2A500K +PERO3              =  0.600G1A500L + 0.200GAK500A + 0.200GAD5004                 : ARR( 0.126E-12,  -850., 0.0);
+{ 11769} G2A500K +PERO5              =  0.600G1A500L + 0.200GAK500A + 0.200GAD5004                 : ARR( 0.473E-11,   850., 0.0);
+{ 11770} G2A500K +PERO6              =  0.460G1A500L + 0.270GAK500A + 0.270GAD5004                 : ARR( 0.434E-13,  -900., 0.0);
+{ 11771} G2A500K +PERO9              =  0.800G1A500L + 0.200GAD5004                                : ARR( 0.100E-10,     0., 0.0);
+{ 11772} G2A500L +GNO                =       G1A500M +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 11773} G2A500L +GNO                =       GAN500d                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 11774} G2A500L +GHO2               =       GAH500S                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 11775} G2A500L +GNO3               =       G1A500M +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 11776} G2A500L +MEPERO             =  0.340G1A500M + 0.330GAK5003 + 0.330GAK500B                 : ARR( 0.565E-13,  -845., 0.0);
+{ 11777} G2A500L +PERO1              =  0.460G1A500M + 0.270GAK5003 + 0.270GAK500B                 : ARR( 0.434E-13,  -900., 0.0);
+{ 11778} G2A500L +PERO2              =  0.400G1A500M + 0.300GAK5003 + 0.300GAK500B                 : ARR( 0.162E-13, -1400., 0.0);
+{ 11779} G2A500L +PERO3              =  0.460G1A500M + 0.270GAK5003 + 0.270GAK500B                 : ARR( 0.488E-13, -1250., 0.0);
+{ 11780} G2A500L +PERO5              =  0.460G1A500M + 0.270GAK5003 + 0.270GAK500B                 : ARR( 0.183E-11,   450., 0.0);
+{ 11781} G2A500L +PERO6              =  0.300G1A500M + 0.350GAK5003 + 0.350GAK500B                 : ARR( 0.168E-13, -1300., 0.0);
+{ 11782} G2A500L +PERO9              =  0.650G1A500M + 0.350GAK500B                                : ARR( 0.100E-10,     0., 0.0);
+{ 11783} G2A500M +GNO                =       G1A500N +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 11784} G2A500M +GNO                =       GAN500e                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 11785} G2A500M +GHO2               =       GAH500T                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 11786} G2A500M +GNO3               =       G1A500N +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 11787} G2A500M +MEPERO             =  0.340G1A500N + 0.330GAK500C + 0.330GAK500D                 : ARR( 0.565E-13,  -845., 0.0);
+{ 11788} G2A500M +PERO1              =  0.460G1A500N + 0.270GAK500C + 0.270GAK500D                 : ARR( 0.434E-13,  -900., 0.0);
+{ 11789} G2A500M +PERO2              =  0.400G1A500N + 0.300GAK500C + 0.300GAK500D                 : ARR( 0.162E-13, -1400., 0.0);
+{ 11790} G2A500M +PERO3              =  0.460G1A500N + 0.270GAK500C + 0.270GAK500D                 : ARR( 0.488E-13, -1250., 0.0);
+{ 11791} G2A500M +PERO5              =  0.460G1A500N + 0.270GAK500C + 0.270GAK500D                 : ARR( 0.183E-11,   450., 0.0);
+{ 11792} G2A500M +PERO6              =  0.300G1A500N + 0.350GAK500C + 0.350GAK500D                 : ARR( 0.168E-13, -1300., 0.0);
+{ 11793} G2A500M +PERO9              =  0.650G1A500N + 0.350GAK500D                                : ARR( 0.100E-10,     0., 0.0);
+{ 11794} G1A500L +OXYGEN             =       GAD5004 +      GHO2                                   : ARR( 0.600E-13,   398., 0.0);
+{ 11795} G1A500L                     =       G2A500N                                               : ARR( 0.160E+12,  5338., 0.0);
+{ 11796} G1A500M                     =       GD02000 +      G3A3000                                : ARR( 0.200E+15,  2726., 0.0);
+{ 11797} G1A500N                     =       G3K3000 +      GAD2000                                : ARR( 0.200E+15,  5332., 0.0);
+{ 11798} G2A500N +GNO                =       G1A500O +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 11799} G2A500N +GNO                =       GAN500f                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 11800} G2A500N +GHO2               =       GAH500U                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 11801} G2A500N +GNO3               =       G1A500O +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 11802} G2A500N +MEPERO             =  0.340G1A500O + 0.330GAK500E + 0.330GAK500F                 : ARR( 0.565E-13,  -845., 0.0);
+{ 11803} G2A500N +PERO1              =  0.460G1A500O + 0.270GAK500E + 0.270GAK500F                 : ARR( 0.434E-13,  -900., 0.0);
+{ 11804} G2A500N +PERO2              =  0.400G1A500O + 0.300GAK500E + 0.300GAK500F                 : ARR( 0.162E-13, -1400., 0.0);
+{ 11805} G2A500N +PERO3              =  0.460G1A500O + 0.270GAK500E + 0.270GAK500F                 : ARR( 0.488E-13, -1250., 0.0);
+{ 11806} G2A500N +PERO5              =  0.460G1A500O + 0.270GAK500E + 0.270GAK500F                 : ARR( 0.183E-11,   450., 0.0);
+{ 11807} G2A500N +PERO6              =  0.300G1A500O + 0.350GAK500E + 0.350GAK500F                 : ARR( 0.168E-13, -1300., 0.0);
+{ 11808} G2A500N +PERO9              =  0.650G1A500O + 0.350GAK500F                                : ARR( 0.100E-10,     0., 0.0);
+{ 11809} G3A3000 +GHO2               =  0.800GAG3000 + 0.200GAA3000 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 11810} G3A3000 +GNO                =       G2A2000 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 11811} G3A3000 +GNO2               =       GPA3000                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 11812} G3A3000 +GNO3               =       G2A2000 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 11813} G3A3000 +MEPERO             =  0.685G2A2000 + 0.315GAA3000 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 11814} G3A3000 +PERO1              =  0.800G2A2000 + 0.200GAA3000 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 11815} G3A3000 +PERO2              =  0.750G2A2000 + 0.250GAA3000 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 11816} G3A3000 +PERO3              =  0.800G2A2000 + 0.200GAA3000 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 11817} G3A3000 +PERO5              =  0.650G2A2000 + 0.350GAA3000 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 11818} G3A3000 +PERO6              =  0.650G2A2000 + 0.350GAA3000 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 11819} G3A3000 +PERO9              =       G2A2000 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 11820} G1A500O                     =       GAD5005 +      GHO2                                   : ARR( 0.160E+12,  3981., 0.0);
+{ 11821} G1A500O                     =       G3K3001 +      GAD2000                                : ARR( 0.200E+15,  5332., 0.0);
+{ 11822} GPK5000                     =       G3K5004 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 11823} GPK5000 +GHO                =       G2P500M                                               : ARR( 0.531E-12,     0., 0.0);
+{ 11824} GPK5000 +GHO                =       G2P500N                                               : ARR( 0.701E-12,     0., 0.0);
+{ 11825} GPK5000 +GHO                =       G2P500O                                               : ARR( 0.525E-12,     0., 0.0);
+{ 11826} GPK5000+HV               =       G3K3000 +      G2P2000                                :  0.100E+01*SUN;
+{ 11827} GPK5000+HV               =       G3K5004 +      GNO2                                   :  0.100E+01*SUN;
+{ 11828} G2P500M +GNO                =       G1P500N +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 11829} G2P500M +GNO                =       GPN5009                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 11830} G2P500M +GHO2               =       GPH500T                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 11831} G2P500M +GNO3               =       G1P500N +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 11832} G2P500M +MEPERO             =  0.480G1P500N + 0.260GPK500C + 0.260GPD5004                 : ARR( 0.146E-12,  -445., 0.0);
+{ 11833} G2P500M +PERO1              =  0.600G1P500N + 0.200GPK500C + 0.200GPD5004                 : ARR( 0.112E-12,  -500., 0.0);
+{ 11834} G2P500M +PERO2              =  0.560G1P500N + 0.220GPK500C + 0.220GPD5004                 : ARR( 0.418E-13, -1000., 0.0);
+{ 11835} G2P500M +PERO3              =  0.600G1P500N + 0.200GPK500C + 0.200GPD5004                 : ARR( 0.126E-12,  -850., 0.0);
+{ 11836} G2P500M +PERO5              =  0.600G1P500N + 0.200GPK500C + 0.200GPD5004                 : ARR( 0.473E-11,   850., 0.0);
+{ 11837} G2P500M +PERO6              =  0.460G1P500N + 0.270GPK500C + 0.270GPD5004                 : ARR( 0.434E-13,  -900., 0.0);
+{ 11838} G2P500M +PERO9              =  0.800G1P500N + 0.200GPD5004                                : ARR( 0.100E-10,     0., 0.0);
+{ 11839} G2P500N +GNO                =       G1P500O +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 11840} G2P500N +GNO                =       GPN500f                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 11841} G2P500N +GHO2               =       GPH500U                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 11842} G2P500N +GNO3               =       G1P500O +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 11843} G2P500N +MEPERO             =  0.340G1P500O + 0.330GPK5003 + 0.330GPK500D                 : ARR( 0.565E-13,  -845., 0.0);
+{ 11844} G2P500N +PERO1              =  0.460G1P500O + 0.270GPK5003 + 0.270GPK500D                 : ARR( 0.434E-13,  -900., 0.0);
+{ 11845} G2P500N +PERO2              =  0.400G1P500O + 0.300GPK5003 + 0.300GPK500D                 : ARR( 0.162E-13, -1400., 0.0);
+{ 11846} G2P500N +PERO3              =  0.460G1P500O + 0.270GPK5003 + 0.270GPK500D                 : ARR( 0.488E-13, -1250., 0.0);
+{ 11847} G2P500N +PERO5              =  0.460G1P500O + 0.270GPK5003 + 0.270GPK500D                 : ARR( 0.183E-11,   450., 0.0);
+{ 11848} G2P500N +PERO6              =  0.300G1P500O + 0.350GPK5003 + 0.350GPK500D                 : ARR( 0.168E-13, -1300., 0.0);
+{ 11849} G2P500N +PERO9              =  0.650G1P500O + 0.350GPK500D                                : ARR( 0.100E-10,     0., 0.0);
+{ 11850} G2P500O +GNO                =       G1P500P +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 11851} G2P500O +GNO                =       GPN500g                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 11852} G2P500O +GHO2               =       GPH500W                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 11853} G2P500O +GNO3               =       G1P500P +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 11854} G2P500O +MEPERO             =  0.340G1P500P + 0.330GPK500E + 0.330GPK500F                 : ARR( 0.565E-13,  -845., 0.0);
+{ 11855} G2P500O +PERO1              =  0.460G1P500P + 0.270GPK500E + 0.270GPK500F                 : ARR( 0.434E-13,  -900., 0.0);
+{ 11856} G2P500O +PERO2              =  0.400G1P500P + 0.300GPK500E + 0.300GPK500F                 : ARR( 0.162E-13, -1400., 0.0);
+{ 11857} G2P500O +PERO3              =  0.460G1P500P + 0.270GPK500E + 0.270GPK500F                 : ARR( 0.488E-13, -1250., 0.0);
+{ 11858} G2P500O +PERO5              =  0.460G1P500P + 0.270GPK500E + 0.270GPK500F                 : ARR( 0.183E-11,   450., 0.0);
+{ 11859} G2P500O +PERO6              =  0.300G1P500P + 0.350GPK500E + 0.350GPK500F                 : ARR( 0.168E-13, -1300., 0.0);
+{ 11860} G2P500O +PERO9              =  0.650G1P500P + 0.350GPK500F                                : ARR( 0.100E-10,     0., 0.0);
+{ 11861} G1P500N +OXYGEN             =       GPD5004 +      GHO2                                   : ARR( 0.600E-13,   398., 0.0);
+{ 11862} G1P500N                     =       G2P500P                                               : ARR( 0.160E+12,  5203., 0.0);
+{ 11863} G1P500O                     =       GD02000 +      G3P3000                                : ARR( 0.200E+15,  2726., 0.0);
+{ 11864} G1P500P                     =       G3K3000 +      GPD2000                                : ARR( 0.200E+15,  5332., 0.0);
+{ 11865} G2P500P +GNO                =       G1P500Q +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 11866} G2P500P +GNO                =       GPN500h                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 11867} G2P500P +GHO2               =       GPH500X                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 11868} G2P500P +GNO3               =       G1P500Q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 11869} G2P500P +MEPERO             =  0.340G1P500Q + 0.330GPK500G + 0.330GPK500H                 : ARR( 0.565E-13,  -845., 0.0);
+{ 11870} G2P500P +PERO1              =  0.460G1P500Q + 0.270GPK500G + 0.270GPK500H                 : ARR( 0.434E-13,  -900., 0.0);
+{ 11871} G2P500P +PERO2              =  0.400G1P500Q + 0.300GPK500G + 0.300GPK500H                 : ARR( 0.162E-13, -1400., 0.0);
+{ 11872} G2P500P +PERO3              =  0.460G1P500Q + 0.270GPK500G + 0.270GPK500H                 : ARR( 0.488E-13, -1250., 0.0);
+{ 11873} G2P500P +PERO5              =  0.460G1P500Q + 0.270GPK500G + 0.270GPK500H                 : ARR( 0.183E-11,   450., 0.0);
+{ 11874} G2P500P +PERO6              =  0.300G1P500Q + 0.350GPK500G + 0.350GPK500H                 : ARR( 0.168E-13, -1300., 0.0);
+{ 11875} G2P500P +PERO9              =  0.650G1P500Q + 0.350GPK500H                                : ARR( 0.100E-10,     0., 0.0);
+{ 11876} G3P3000 +GHO2               =  0.800GPG3000 + 0.200GPA3000 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 11877} G3P3000 +GNO                =       G2P2000 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 11878} G3P3000 +GNO2               =       GPP3000                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 11879} G3P3000 +GNO3               =       G2P2000 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 11880} G3P3000 +MEPERO             =  0.685G2P2000 + 0.315GPA3000 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 11881} G3P3000 +PERO1              =  0.800G2P2000 + 0.200GPA3000 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 11882} G3P3000 +PERO2              =  0.750G2P2000 + 0.250GPA3000 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 11883} G3P3000 +PERO3              =  0.800G2P2000 + 0.200GPA3000 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 11884} G3P3000 +PERO5              =  0.650G2P2000 + 0.350GPA3000 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 11885} G3P3000 +PERO6              =  0.650G2P2000 + 0.350GPA3000 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 11886} G3P3000 +PERO9              =       G2P2000 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 11887} G1P500Q                     =       GPD5005 +      GHO2                                   : ARR( 0.160E+12,  3981., 0.0);
+{ 11888} G1P500Q                     =       G3K3001 +      GPD2000                                : ARR( 0.200E+15,  5332., 0.0);
+{ 11889} GNK4000 +GHO                =       G2N400J                                               : ARR( 0.543E-12,     0., 0.0);
+{ 11890} GNK4000 +GHO                =       G2N400S                                               : ARR( 0.716E-12,     0., 0.0);
+{ 11891} GNK4000+HV               =       G3K3000 +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{ 11892} GNK4000+HV               =       G1K4000 +      GNO2                                   :  0.100E+01*SUN;
+{ 11893} G2N400S +GNO                =       G1N400T +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 11894} G2N400S +GNO                =       GNN400Q                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 11895} G2N400S +GHO2               =       GHN400j                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 11896} G2N400S +GNO3               =       G1N400T +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 11897} G2N400S +MEPERO             =  0.340G1N400T + 0.330GNK4003 + 0.330GNK400A                 : ARR( 0.565E-13,  -845., 0.0);
+{ 11898} G2N400S +PERO1              =  0.460G1N400T + 0.270GNK4003 + 0.270GNK400A                 : ARR( 0.434E-13,  -900., 0.0);
+{ 11899} G2N400S +PERO2              =  0.400G1N400T + 0.300GNK4003 + 0.300GNK400A                 : ARR( 0.162E-13, -1400., 0.0);
+{ 11900} G2N400S +PERO3              =  0.460G1N400T + 0.270GNK4003 + 0.270GNK400A                 : ARR( 0.488E-13, -1250., 0.0);
+{ 11901} G2N400S +PERO5              =  0.460G1N400T + 0.270GNK4003 + 0.270GNK400A                 : ARR( 0.183E-11,   450., 0.0);
+{ 11902} G2N400S +PERO6              =  0.300G1N400T + 0.350GNK4003 + 0.350GNK400A                 : ARR( 0.168E-13, -1300., 0.0);
+{ 11903} G2N400S +PERO9              =  0.650G1N400T + 0.350GNK400A                                : ARR( 0.100E-10,     0., 0.0);
+{ 11904} G1N400T                     =       GD02000 +      G3N2000                                : ARR( 0.200E+15,  2695., 0.0);
+{ 11905} GHK4000 +GHO                =       GDK4002 +      GHO                                    : ARR( 0.107E-10,     0., 0.0);
+{ 11906} GHK4000 +GHO                =       G2K4000                                               : ARR( 0.207E-11,  -190., 0.0);
+{ 11907} GHK4000+HV               =       G3K3000 +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 11908} GHK4000+HV               =       G1K4000 +      GHO                                    :  0.100E+01*SUN;
+{ 11909} GKO4000 +GHO                =       G2K4003                                               : ARR( 0.552E-12,     0., 0.0);
+{ 11910} GKO4000 +GHO                =       G2K4005                                               : ARR( 0.727E-12,     0., 0.0);
+{ 11911} GKO4000 +GHO                =       GDK4002 +      GHO2                                   : ARR( 0.255E-11,     0., 0.0);
+{ 11912} GKO4000+HV               =       G3K3000 +      GCH2O   +      GHO2                    :  0.100E+01*SUN;
+{ 11913} G2K4005 +GNO                =       G1K4005 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 11914} G2K4005 +GNO                =       GNK400B                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 11915} G2K4005 +GHO2               =       GHK4007                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 11916} G2K4005 +GNO3               =       G1K4005 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 11917} G2K4005 +MEPERO             =  0.340G1K4005 + 0.330GKO4003 + 0.330GKK4000                 : ARR( 0.565E-13,  -845., 0.0);
+{ 11918} G2K4005 +PERO1              =  0.460G1K4005 + 0.270GKO4003 + 0.270GKK4000                 : ARR( 0.434E-13,  -900., 0.0);
+{ 11919} G2K4005 +PERO2              =  0.400G1K4005 + 0.300GKO4003 + 0.300GKK4000                 : ARR( 0.162E-13, -1400., 0.0);
+{ 11920} G2K4005 +PERO3              =  0.460G1K4005 + 0.270GKO4003 + 0.270GKK4000                 : ARR( 0.488E-13, -1250., 0.0);
+{ 11921} G2K4005 +PERO5              =  0.460G1K4005 + 0.270GKO4003 + 0.270GKK4000                 : ARR( 0.183E-11,   450., 0.0);
+{ 11922} G2K4005 +PERO6              =  0.300G1K4005 + 0.350GKO4003 + 0.350GKK4000                 : ARR( 0.168E-13, -1300., 0.0);
+{ 11923} G2K4005 +PERO9              =  0.650G1K4005 + 0.350GKK4000                                : ARR( 0.100E-10,     0., 0.0);
+{ 11924} G1K4005                     =       GD02000 +      G3K2001                                : ARR( 0.200E+15,  2814., 0.0);
+{ 11925} GDK4002 +GHO                =       G2D4009                                               : ARR( 0.728E-12,     0., 0.0);
+{ 11926} GDK4002 +GHO                =       G3K3000 +      GCO                                    : ARR( 0.132E-10,     0., 0.0);
+{ 11927} GDK4002 +GNO3               =       G3K3000 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 11928} GDK4002+HV               =       G3K3000 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 11929} GDK4002+HV               =       GD03000 +      GCO                                    :  0.100E+01*SUN;
+{ 11930} GDK4002+HV               =       GC02000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 11931} G2D4009 +GNO                =       G1D400B +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 11932} G2D4009 +GNO                =       GND400I                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 11933} G2D4009 +GHO2               =       GHD400I                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 11934} G2D4009 +GNO3               =       G1D400B +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 11935} G2D4009 +MEPERO             =  0.340G1D400B + 0.330GDK4004 + 0.330GDK4008                 : ARR( 0.565E-13,  -845., 0.0);
+{ 11936} G2D4009 +PERO1              =  0.460G1D400B + 0.270GDK4004 + 0.270GDK4008                 : ARR( 0.434E-13,  -900., 0.0);
+{ 11937} G2D4009 +PERO2              =  0.400G1D400B + 0.300GDK4004 + 0.300GDK4008                 : ARR( 0.162E-13, -1400., 0.0);
+{ 11938} G2D4009 +PERO3              =  0.460G1D400B + 0.270GDK4004 + 0.270GDK4008                 : ARR( 0.488E-13, -1250., 0.0);
+{ 11939} G2D4009 +PERO5              =  0.460G1D400B + 0.270GDK4004 + 0.270GDK4008                 : ARR( 0.183E-11,   450., 0.0);
+{ 11940} G2D4009 +PERO6              =  0.300G1D400B + 0.350GDK4004 + 0.350GDK4008                 : ARR( 0.168E-13, -1300., 0.0);
+{ 11941} G2D4009 +PERO9              =  0.650G1D400B + 0.350GDK4008                                : ARR( 0.100E-10,     0., 0.0);
+{ 11942} G1D400B                     =       GD02000 +      G3D2000                                : ARR( 0.200E+15,  3038., 0.0);
+{ 11943} GGN5003 +GHO                =       G2G500L                                               : ARR( 0.290E-12,     0., 0.0);
+{ 11944} GGN5003 +GHO                =       G2G500M                                               : ARR( 0.885E-12,     0., 0.0);
+{ 11945} GGN5003 +GHO                =       G3N5003                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 11946} GGN5003+HV               =       G1G5000 +      GNO2                                   :  0.100E+01*SUN;
+{ 11947} GGN5003+HV               =       G2N4007 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 11948} G2G500L +GNO                =       G1G500M +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 11949} G2G500L +GNO                =       GGN500P                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 11950} G2G500L +GHO2               =       GGH500T                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 11951} G2G500L +GNO3               =       G1G500M +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 11952} G2G500L +MEPERO             =  0.340G1G500M + 0.330GGN500R + 0.330GGN500U                 : ARR( 0.565E-13,  -845., 0.0);
+{ 11953} G2G500L +PERO1              =  0.460G1G500M + 0.270GGN500R + 0.270GGN500U                 : ARR( 0.434E-13,  -900., 0.0);
+{ 11954} G2G500L +PERO2              =  0.400G1G500M + 0.300GGN500R + 0.300GGN500U                 : ARR( 0.162E-13, -1400., 0.0);
+{ 11955} G2G500L +PERO3              =  0.460G1G500M + 0.270GGN500R + 0.270GGN500U                 : ARR( 0.488E-13, -1250., 0.0);
+{ 11956} G2G500L +PERO5              =  0.460G1G500M + 0.270GGN500R + 0.270GGN500U                 : ARR( 0.183E-11,   450., 0.0);
+{ 11957} G2G500L +PERO6              =  0.300G1G500M + 0.350GGN500R + 0.350GGN500U                 : ARR( 0.168E-13, -1300., 0.0);
+{ 11958} G2G500L +PERO9              =  0.650G1G500M + 0.350GGN500U                                : ARR( 0.100E-10,     0., 0.0);
+{ 11959} G2G500M +GNO                =       G1G500N +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 11960} G2G500M +GNO                =       GGN500Y                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 11961} G2G500M +GHO2               =       GGH500U                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 11962} G2G500M +GNO3               =       G1G500N +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 11963} G2G500M +MEPERO             =  0.340G1G500N + 0.330GGN500Z + 0.330GGN500a                 : ARR( 0.565E-13,  -845., 0.0);
+{ 11964} G2G500M +PERO1              =  0.460G1G500N + 0.270GGN500Z + 0.270GGN500a                 : ARR( 0.434E-13,  -900., 0.0);
+{ 11965} G2G500M +PERO2              =  0.400G1G500N + 0.300GGN500Z + 0.300GGN500a                 : ARR( 0.162E-13, -1400., 0.0);
+{ 11966} G2G500M +PERO3              =  0.460G1G500N + 0.270GGN500Z + 0.270GGN500a                 : ARR( 0.488E-13, -1250., 0.0);
+{ 11967} G2G500M +PERO5              =  0.460G1G500N + 0.270GGN500Z + 0.270GGN500a                 : ARR( 0.183E-11,   450., 0.0);
+{ 11968} G2G500M +PERO6              =  0.300G1G500N + 0.350GGN500Z + 0.350GGN500a                 : ARR( 0.168E-13, -1300., 0.0);
+{ 11969} G2G500M +PERO9              =  0.650G1G500N + 0.350GGN500a                                : ARR( 0.100E-10,     0., 0.0);
+{ 11970} G1G500M                     =       GD02000 +      GGD3000 +      GNO2                    : ARR( 0.200E+15,  6072., 0.0);
+{ 11971} G1G500N                     =       GND4000 +      GCO     +      GHO2                    : ARR( 0.200E+15,  4949., 0.0);
+{ 11972} GGH5002 +GHO                =       GGK5001 +      GHO                                    : ARR( 0.355E-10,     0., 0.0);
+{ 11973} GGH5002 +GHO                =       G2G5000                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 11974} GGH5002 +GHO                =       G3H5002                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 11975} GGH5002+HV               =       G1G5000 +      GHO                                    :  0.100E+01*SUN;
+{ 11976} GGH5002+HV               =       G2H4007 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 11977} GGK5001 +GHO                =       G2G500N                                               : ARR( 0.874E-12,     0., 0.0);
+{ 11978} GGK5001 +GHO                =       G2G500O                                               : ARR( 0.277E-11,     0., 0.0);
+{ 11979} GGK5001 +GHO                =       G3K5007                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 11980} GGK5001+HV               =       G3K2000 +      G2G3000                                :  0.100E+01*SUN;
+{ 11981} GGK5001+HV               =       G2K4001 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 11982} G2G500N +GNO                =       G1G500O +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 11983} G2G500N +GNO                =       GGN500Q                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 11984} G2G500N +GHO2               =       GGH500W                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 11985} G2G500N +GNO3               =       G1G500O +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 11986} G2G500N +MEPERO             =  0.340G1G500O + 0.330GGK5009 + 0.330GGK500D                 : ARR( 0.565E-13,  -845., 0.0);
+{ 11987} G2G500N +PERO1              =  0.460G1G500O + 0.270GGK5009 + 0.270GGK500D                 : ARR( 0.434E-13,  -900., 0.0);
+{ 11988} G2G500N +PERO2              =  0.400G1G500O + 0.300GGK5009 + 0.300GGK500D                 : ARR( 0.162E-13, -1400., 0.0);
+{ 11989} G2G500N +PERO3              =  0.460G1G500O + 0.270GGK5009 + 0.270GGK500D                 : ARR( 0.488E-13, -1250., 0.0);
+{ 11990} G2G500N +PERO5              =  0.460G1G500O + 0.270GGK5009 + 0.270GGK500D                 : ARR( 0.183E-11,   450., 0.0);
+{ 11991} G2G500N +PERO6              =  0.300G1G500O + 0.350GGK5009 + 0.350GGK500D                 : ARR( 0.168E-13, -1300., 0.0);
+{ 11992} G2G500N +PERO9              =  0.650G1G500O + 0.350GGK500D                                : ARR( 0.100E-10,     0., 0.0);
+{ 11993} G2G500O +GNO                =       G1G500P +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 11994} G2G500O +GNO                =       GGN500b                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 11995} G2G500O +GHO2               =       GGH500X                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 11996} G2G500O +GNO3               =       G1G500P +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 11997} G2G500O +MEPERO             =  0.340G1G500P + 0.330GGK500I + 0.330GGK500J                 : ARR( 0.565E-13,  -845., 0.0);
+{ 11998} G2G500O +PERO1              =  0.460G1G500P + 0.270GGK500I + 0.270GGK500J                 : ARR( 0.434E-13,  -900., 0.0);
+{ 11999} G2G500O +PERO2              =  0.400G1G500P + 0.300GGK500I + 0.300GGK500J                 : ARR( 0.162E-13, -1400., 0.0);
+{ 12000} G2G500O +PERO3              =  0.460G1G500P + 0.270GGK500I + 0.270GGK500J                 : ARR( 0.488E-13, -1250., 0.0);
+{ 12001} G2G500O +PERO5              =  0.460G1G500P + 0.270GGK500I + 0.270GGK500J                 : ARR( 0.183E-11,   450., 0.0);
+{ 12002} G2G500O +PERO6              =  0.300G1G500P + 0.350GGK500I + 0.350GGK500J                 : ARR( 0.168E-13, -1300., 0.0);
+{ 12003} G2G500O +PERO9              =  0.650G1G500P + 0.350GGK500J                                : ARR( 0.100E-10,     0., 0.0);
+{ 12004} G1G500O                     =       G3K2000 +      GGD3000                                : ARR( 0.200E+15,  2285., 0.0);
+{ 12005} G1G500P                     =       GDK4000 +      GCO     +      GHO2                    : ARR( 0.200E+15,  4566., 0.0);
+{ 12006} GGN5004 +GHO                =       G2G500P                                               : ARR( 0.120E-11,     0., 0.0);
+{ 12007} GGN5004 +GHO                =       G2G500Q                                               : ARR( 0.296E-12,     0., 0.0);
+{ 12008} GGN5004 +GHO                =       G3N500I                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 12009} GGN5004+HV               =       G1G5002 +      GNO2                                   :  0.100E+01*SUN;
+{ 12010} GGN5004+HV               =       GD04000 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 12011} G2G500P +GNO                =       G1G500Q +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 12012} G2G500P +GNO                =       GGN500Y                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 12013} G2G500P +GHO2               =       GGH500Y                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 12014} G2G500P +GNO3               =       G1G500Q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 12015} G2G500P +MEPERO             =  0.480G1G500Q + 0.260GGN5005 + 0.260GGN500b                 : ARR( 0.616E-11,   905., 0.0);
+{ 12016} G2G500P +PERO1              =  0.600G1G500Q + 0.200GGN5005 + 0.200GGN500b                 : ARR( 0.473E-11,   850., 0.0);
+{ 12017} G2G500P +PERO2              =  0.560G1G500Q + 0.220GGN5005 + 0.220GGN500b                 : ARR( 0.177E-11,   350., 0.0);
+{ 12018} G2G500P +PERO3              =  0.600G1G500Q + 0.200GGN5005 + 0.200GGN500b                 : ARR( 0.533E-11,   500., 0.0);
+{ 12019} G2G500P +PERO5              =  0.600G1G500Q + 0.200GGN5005 + 0.200GGN500b                 : ARR( 0.200E-09,  2200., 0.0);
+{ 12020} G2G500P +PERO6              =  0.460G1G500Q + 0.270GGN5005 + 0.270GGN500b                 : ARR( 0.183E-11,   450., 0.0);
+{ 12021} G2G500P +PERO9              =  0.800G1G500Q + 0.200GGN500b                                : ARR( 0.100E-10,     0., 0.0);
+{ 12022} G2G500Q +GNO                =       G1G500R +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 12023} G2G500Q +GNO                =       GGN500c                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 12024} G2G500Q +GHO2               =       GGH500Z                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 12025} G2G500Q +GNO3               =       G1G500R +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 12026} G2G500Q +MEPERO             =  0.340G1G500R + 0.330GGN500S + 0.330GGN500W                 : ARR( 0.565E-13,  -845., 0.0);
+{ 12027} G2G500Q +PERO1              =  0.460G1G500R + 0.270GGN500S + 0.270GGN500W                 : ARR( 0.434E-13,  -900., 0.0);
+{ 12028} G2G500Q +PERO2              =  0.400G1G500R + 0.300GGN500S + 0.300GGN500W                 : ARR( 0.162E-13, -1400., 0.0);
+{ 12029} G2G500Q +PERO3              =  0.460G1G500R + 0.270GGN500S + 0.270GGN500W                 : ARR( 0.488E-13, -1250., 0.0);
+{ 12030} G2G500Q +PERO5              =  0.460G1G500R + 0.270GGN500S + 0.270GGN500W                 : ARR( 0.183E-11,   450., 0.0);
+{ 12031} G2G500Q +PERO6              =  0.300G1G500R + 0.350GGN500S + 0.350GGN500W                 : ARR( 0.168E-13, -1300., 0.0);
+{ 12032} G2G500Q +PERO9              =  0.650G1G500R + 0.350GGN500W                                : ARR( 0.100E-10,     0., 0.0);
+{ 12033} G1G500Q                     =       GD02000 +      G2G3003                                : ARR( 0.200E+15,  6864., 0.0);
+{ 12034} G1G500R                     =       G202000 +      GGN3005                                : ARR( 0.200E+15,  6631., 0.0);
+{ 12035} G1G500R                     =       GD03000 +      GGD2000 +      GNO2                    : ARR( 0.200E+15,  6422., 0.0);
+{ 12036} G2G3003 +GNO                =       G1G3003 +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{ 12037} G2G3003 +GNO                =       GGN3004                                               : ARR( 0.622E-13,  -360., 0.0);
+{ 12038} G2G3003 +GHO2               =       GGH3005                                               : ARR( 0.179E-12, -1250., 0.0);
+{ 12039} G2G3003 +GNO3               =       G1G3003 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 12040} G2G3003 +MEPERO             =  0.480G1G3003 + 0.260GGN3002 + 0.260GGN3005                 : ARR( 0.164E-12,  -795., 0.0);
+{ 12041} G2G3003 +PERO1              =  0.600G1G3003 + 0.200GGN3002 + 0.200GGN3005                 : ARR( 0.126E-12,  -850., 0.0);
+{ 12042} G2G3003 +PERO2              =  0.560G1G3003 + 0.220GGN3002 + 0.220GGN3005                 : ARR( 0.471E-13, -1350., 0.0);
+{ 12043} G2G3003 +PERO3              =  0.600G1G3003 + 0.200GGN3002 + 0.200GGN3005                 : ARR( 0.142E-12, -1200., 0.0);
+{ 12044} G2G3003 +PERO5              =  0.600G1G3003 + 0.200GGN3002 + 0.200GGN3005                 : ARR( 0.533E-11,   500., 0.0);
+{ 12045} G2G3003 +PERO6              =  0.460G1G3003 + 0.270GGN3002 + 0.270GGN3005                 : ARR( 0.488E-13, -1250., 0.0);
+{ 12046} G2G3003 +PERO9              =  0.800G1G3003 + 0.200GGN3005                                : ARR( 0.100E-10,     0., 0.0);
+{ 12047} G1G3003 +OXYGEN             =       GGN3005 +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 12048} GGH5003 +GHO                =       GGK5002 +      GHO                                    : ARR( 0.273E-10,     0., 0.0);
+{ 12049} GGH5003 +GHO                =       G2G5002                                               : ARR( 0.206E-11,  -190., 0.0);
+{ 12050} GGH5003 +GHO                =       G3H500B                                               : ARR( 0.206E-11,  -190., 0.0);
+{ 12051} GGH5003+HV               =       G1G5002 +      GHO                                    :  0.100E+01*SUN;
+{ 12052} GGH5003+HV               =       GD04000 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 12053} GGO5003 +GHO                =       G2G500R                                               : ARR( 0.118E-11,     0., 0.0);
+{ 12054} GGO5003 +GHO                =       G2G500S                                               : ARR( 0.145E-11,     0., 0.0);
+{ 12055} GGO5003 +GHO                =       GGK5002 +      GHO2                                   : ARR( 0.644E-11,     0., 0.0);
+{ 12056} GGO5003 +GHO                =       G3K500B                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 12057} GGO5003+HV               =       GD04000 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 12058} G2G500R +GNO                =       G1G500S +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 12059} G2G500R +GNO                =       GGN500Z                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 12060} G2G500R +GHO2               =       GGH500a                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 12061} G2G500R +GNO3               =       G1G500S +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 12062} G2G500R +MEPERO             =  0.480G1G500S + 0.260GGO5004 + 0.260GGK500I                 : ARR( 0.616E-11,   905., 0.0);
+{ 12063} G2G500R +PERO1              =  0.600G1G500S + 0.200GGO5004 + 0.200GGK500I                 : ARR( 0.473E-11,   850., 0.0);
+{ 12064} G2G500R +PERO2              =  0.560G1G500S + 0.220GGO5004 + 0.220GGK500I                 : ARR( 0.177E-11,   350., 0.0);
+{ 12065} G2G500R +PERO3              =  0.600G1G500S + 0.200GGO5004 + 0.200GGK500I                 : ARR( 0.533E-11,   500., 0.0);
+{ 12066} G2G500R +PERO5              =  0.600G1G500S + 0.200GGO5004 + 0.200GGK500I                 : ARR( 0.200E-09,  2200., 0.0);
+{ 12067} G2G500R +PERO6              =  0.460G1G500S + 0.270GGO5004 + 0.270GGK500I                 : ARR( 0.183E-11,   450., 0.0);
+{ 12068} G2G500R +PERO9              =  0.800G1G500S + 0.200GGK500I                                : ARR( 0.100E-10,     0., 0.0);
+{ 12069} G2G500S +GNO                =       G1G500T +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 12070} G2G500S +GNO                =       GGN500d                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 12071} G2G500S +GHO2               =       GGH500b                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 12072} G2G500S +GNO3               =       G1G500T +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 12073} G2G500S +MEPERO             =  0.340G1G500T + 0.330GGO5009 + 0.330GGK500E                 : ARR( 0.565E-13,  -845., 0.0);
+{ 12074} G2G500S +PERO1              =  0.460G1G500T + 0.270GGO5009 + 0.270GGK500E                 : ARR( 0.434E-13,  -900., 0.0);
+{ 12075} G2G500S +PERO2              =  0.400G1G500T + 0.300GGO5009 + 0.300GGK500E                 : ARR( 0.162E-13, -1400., 0.0);
+{ 12076} G2G500S +PERO3              =  0.460G1G500T + 0.270GGO5009 + 0.270GGK500E                 : ARR( 0.488E-13, -1250., 0.0);
+{ 12077} G2G500S +PERO5              =  0.460G1G500T + 0.270GGO5009 + 0.270GGK500E                 : ARR( 0.183E-11,   450., 0.0);
+{ 12078} G2G500S +PERO6              =  0.300G1G500T + 0.350GGO5009 + 0.350GGK500E                 : ARR( 0.168E-13, -1300., 0.0);
+{ 12079} G2G500S +PERO9              =  0.650G1G500T + 0.350GGK500E                                : ARR( 0.100E-10,     0., 0.0);
+{ 12080} G1G500S                     =       GD02000 +      G2G3004                                : ARR( 0.200E+15,  6864., 0.0);
+{ 12081} G1G500T                     =       GD03000 +      GGD2000 +      GHO2                    : ARR( 0.200E+15,  3675., 0.0);
+{ 12082} G2G3004 +GNO                =       G1G3004 +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{ 12083} G2G3004 +GNO                =       GGN3003                                               : ARR( 0.622E-13,  -360., 0.0);
+{ 12084} G2G3004 +GHO2               =       GGH3004                                               : ARR( 0.179E-12, -1250., 0.0);
+{ 12085} G2G3004 +GNO3               =       G1G3004 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 12086} G2G3004 +MEPERO             =  0.480G1G3004 + 0.260GGO3002 + 0.260GGD3001                 : ARR( 0.164E-12,  -795., 0.0);
+{ 12087} G2G3004 +PERO1              =  0.600G1G3004 + 0.200GGO3002 + 0.200GGD3001                 : ARR( 0.126E-12,  -850., 0.0);
+{ 12088} G2G3004 +PERO2              =  0.560G1G3004 + 0.220GGO3002 + 0.220GGD3001                 : ARR( 0.471E-13, -1350., 0.0);
+{ 12089} G2G3004 +PERO3              =  0.600G1G3004 + 0.200GGO3002 + 0.200GGD3001                 : ARR( 0.142E-12, -1200., 0.0);
+{ 12090} G2G3004 +PERO5              =  0.600G1G3004 + 0.200GGO3002 + 0.200GGD3001                 : ARR( 0.533E-11,   500., 0.0);
+{ 12091} G2G3004 +PERO6              =  0.460G1G3004 + 0.270GGO3002 + 0.270GGD3001                 : ARR( 0.488E-13, -1250., 0.0);
+{ 12092} G2G3004 +PERO9              =  0.800G1G3004 + 0.200GGD3001                                : ARR( 0.100E-10,     0., 0.0);
+{ 12093} G1G3004                     =       GGD2000 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4797., 0.0);
+{ 12094} GGK5002 +GHO                =       G2G500T                                               : ARR( 0.372E-11,     0., 0.0);
+{ 12095} GGK5002 +GHO                =       G2G500U                                               : ARR( 0.879E-12,     0., 0.0);
+{ 12096} GGK5002 +GHO                =       G3K500F                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 12097} GGK5002+HV               =       GA04000 +      GCO2                                   :  0.100E+01*SUN;
+{ 12098} G2G500T +GNO                =       G1G500U +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 12099} G2G500T +GNO                =       GGN500a                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 12100} G2G500T +GHO2               =       GGH500c                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 12101} G2G500T +GNO3               =       G1G500U +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 12102} G2G500T +MEPERO             =  0.480G1G500U + 0.260GGK5004 + 0.260GGK500J                 : ARR( 0.616E-11,   905., 0.0);
+{ 12103} G2G500T +PERO1              =  0.600G1G500U + 0.200GGK5004 + 0.200GGK500J                 : ARR( 0.473E-11,   850., 0.0);
+{ 12104} G2G500T +PERO2              =  0.560G1G500U + 0.220GGK5004 + 0.220GGK500J                 : ARR( 0.177E-11,   350., 0.0);
+{ 12105} G2G500T +PERO3              =  0.600G1G500U + 0.200GGK5004 + 0.200GGK500J                 : ARR( 0.533E-11,   500., 0.0);
+{ 12106} G2G500T +PERO5              =  0.600G1G500U + 0.200GGK5004 + 0.200GGK500J                 : ARR( 0.200E-09,  2200., 0.0);
+{ 12107} G2G500T +PERO6              =  0.460G1G500U + 0.270GGK5004 + 0.270GGK500J                 : ARR( 0.183E-11,   450., 0.0);
+{ 12108} G2G500T +PERO9              =  0.800G1G500U + 0.200GGK500J                                : ARR( 0.100E-10,     0., 0.0);
+{ 12109} G2G500U +GNO                =       G1G500W +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 12110} G2G500U +GNO                =       GGN500e                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 12111} G2G500U +GHO2               =       GGH500d                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 12112} G2G500U +GNO3               =       G1G500W +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 12113} G2G500U +MEPERO             =  0.340G1G500W + 0.330GGK500A + 0.330GGK500F                 : ARR( 0.565E-13,  -845., 0.0);
+{ 12114} G2G500U +PERO1              =  0.460G1G500W + 0.270GGK500A + 0.270GGK500F                 : ARR( 0.434E-13,  -900., 0.0);
+{ 12115} G2G500U +PERO2              =  0.400G1G500W + 0.300GGK500A + 0.300GGK500F                 : ARR( 0.162E-13, -1400., 0.0);
+{ 12116} G2G500U +PERO3              =  0.460G1G500W + 0.270GGK500A + 0.270GGK500F                 : ARR( 0.488E-13, -1250., 0.0);
+{ 12117} G2G500U +PERO5              =  0.460G1G500W + 0.270GGK500A + 0.270GGK500F                 : ARR( 0.183E-11,   450., 0.0);
+{ 12118} G2G500U +PERO6              =  0.300G1G500W + 0.350GGK500A + 0.350GGK500F                 : ARR( 0.168E-13, -1300., 0.0);
+{ 12119} G2G500U +PERO9              =  0.650G1G500W + 0.350GGK500F                                : ARR( 0.100E-10,     0., 0.0);
+{ 12120} G3K500F +GHO2               =  0.800GGK5002 + 0.200GAK5002 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 12121} G3K500F +GNO                =       G3K4001 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 12122} G3K500F +GNO2               =       GPK5002                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 12123} G3K500F +GNO3               =       G3K4001 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 12124} G3K500F +MEPERO             =  0.685G3K4001 + 0.315GAK5002 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 12125} G3K500F +PERO1              =  0.800G3K4001 + 0.200GAK5002 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 12126} G3K500F +PERO2              =  0.750G3K4001 + 0.250GAK5002 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 12127} G3K500F +PERO3              =  0.800G3K4001 + 0.200GAK5002 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 12128} G3K500F +PERO5              =  0.650G3K4001 + 0.350GAK5002 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 12129} G3K500F +PERO6              =  0.650G3K4001 + 0.350GAK5002 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 12130} G3K500F +PERO9              =       G3K4001 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 12131} G1G500U                     =       GD02000 +      G2G3005                                : ARR( 0.200E+15,  6613., 0.0);
+{ 12132} G1G500W                     =       GD03000 +      GCO     +      GHO2    +      GCO      : ARR( 0.200E+15,  3012., 0.0);
+{ 12133} G2G3005 +GNO                =       G1G3005 +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{ 12134} G2G3005 +GNO                =       GGN3006                                               : ARR( 0.622E-13,  -360., 0.0);
+{ 12135} G2G3005 +GHO2               =       GGH3006                                               : ARR( 0.179E-12, -1250., 0.0);
+{ 12136} G2G3005 +GNO3               =       G1G3005 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 12137} G2G3005 +MEPERO             =  0.480G1G3005 + 0.260GGK3001 + 0.260GGD3002                 : ARR( 0.164E-12,  -795., 0.0);
+{ 12138} G2G3005 +PERO1              =  0.600G1G3005 + 0.200GGK3001 + 0.200GGD3002                 : ARR( 0.126E-12,  -850., 0.0);
+{ 12139} G2G3005 +PERO2              =  0.560G1G3005 + 0.220GGK3001 + 0.220GGD3002                 : ARR( 0.471E-13, -1350., 0.0);
+{ 12140} G2G3005 +PERO3              =  0.600G1G3005 + 0.200GGK3001 + 0.200GGD3002                 : ARR( 0.142E-12, -1200., 0.0);
+{ 12141} G2G3005 +PERO5              =  0.600G1G3005 + 0.200GGK3001 + 0.200GGD3002                 : ARR( 0.533E-11,   500., 0.0);
+{ 12142} G2G3005 +PERO6              =  0.460G1G3005 + 0.270GGK3001 + 0.270GGD3002                 : ARR( 0.488E-13, -1250., 0.0);
+{ 12143} G2G3005 +PERO9              =  0.800G1G3005 + 0.200GGD3002                                : ARR( 0.100E-10,     0., 0.0);
+{ 12144} G1G3005                     =       GCO     +      GCH2O   +      GHO2    +      GCO      : ARR( 0.200E+15,  3897., 0.0);
+{ 12145} GGD3000 +GHO                =       G3G3000                                               : ARR( 0.212E-10,     0., 0.0);
+{ 12146} GGD3000 +GHO                =       G3D3000                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 12147} GGD3000 +GNO3               =       G3G3000 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 12148} GGD3000+HV               =       G2D2000 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 12149} GGD3000+HV               =       G2G2000 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 12150} GGD2000 +GHO                =       GCO     +      GHO2    +      GCO                     : ARR( 0.127E-10,     0., 0.0);
+{ 12151} GGD2000 +GHO                =       G3D2000                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 12152} GGD2000 +GNO3               =       GCO     +      GHNO3   +      GHO2    +      GCO      : ARR( 0.240E-14,     0., 0.0);
+{ 12153} GGD2000+HV               =       GHCOOH  +      GCO2                                   :  0.100E+01*SUN;
+{ 12154} GGD2000+HV               =       GCO     +      GCO2                                   :  0.100E+01*SUN;
+{ 12155} GAN5003 +GHO                =       GAK5001 +      GNO2                                   : ARR( 0.978E-13,     0., 0.0);
+{ 12156} GAN5003 +GHO                =       G2A500O                                               : ARR( 0.289E-12,     0., 0.0);
+{ 12157} GAN5003 +GHO                =       G2A500P                                               : ARR( 0.652E-12,     0., 0.0);
+{ 12158} GAN5003 +GHO                =       G2N4007 +      GCO2                                   : ARR( 0.531E-12,     0., 0.0);
+{ 12159} GAN5003+HV               =       G1A5000 +      GNO2                                   :  0.100E+01*SUN;
+{ 12160} G2A500O +GNO                =       G1A500P +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 12161} G2A500O +GNO                =       GAN500R                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 12162} G2A500O +GHO2               =       GAH500W                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 12163} G2A500O +GNO3               =       G1A500P +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 12164} G2A500O +MEPERO             =  0.340G1A500P + 0.330GAN500c + 0.330GAN500d                 : ARR( 0.565E-13,  -845., 0.0);
+{ 12165} G2A500O +PERO1              =  0.460G1A500P + 0.270GAN500c + 0.270GAN500d                 : ARR( 0.434E-13,  -900., 0.0);
+{ 12166} G2A500O +PERO2              =  0.400G1A500P + 0.300GAN500c + 0.300GAN500d                 : ARR( 0.162E-13, -1400., 0.0);
+{ 12167} G2A500O +PERO3              =  0.460G1A500P + 0.270GAN500c + 0.270GAN500d                 : ARR( 0.488E-13, -1250., 0.0);
+{ 12168} G2A500O +PERO5              =  0.460G1A500P + 0.270GAN500c + 0.270GAN500d                 : ARR( 0.183E-11,   450., 0.0);
+{ 12169} G2A500O +PERO6              =  0.300G1A500P + 0.350GAN500c + 0.350GAN500d                 : ARR( 0.168E-13, -1300., 0.0);
+{ 12170} G2A500O +PERO9              =  0.650G1A500P + 0.350GAN500d                                : ARR( 0.100E-10,     0., 0.0);
+{ 12171} G2A500P +GNO                =       G1A500Q +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 12172} G2A500P +GNO                =       GAN500g                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 12173} G2A500P +GHO2               =       GAH500X                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 12174} G2A500P +GNO3               =       G1A500Q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 12175} G2A500P +MEPERO             =  0.340G1A500Q + 0.330GAN500h + 0.330GAN500i                 : ARR( 0.565E-13,  -845., 0.0);
+{ 12176} G2A500P +PERO1              =  0.460G1A500Q + 0.270GAN500h + 0.270GAN500i                 : ARR( 0.434E-13,  -900., 0.0);
+{ 12177} G2A500P +PERO2              =  0.400G1A500Q + 0.300GAN500h + 0.300GAN500i                 : ARR( 0.162E-13, -1400., 0.0);
+{ 12178} G2A500P +PERO3              =  0.460G1A500Q + 0.270GAN500h + 0.270GAN500i                 : ARR( 0.488E-13, -1250., 0.0);
+{ 12179} G2A500P +PERO5              =  0.460G1A500Q + 0.270GAN500h + 0.270GAN500i                 : ARR( 0.183E-11,   450., 0.0);
+{ 12180} G2A500P +PERO6              =  0.300G1A500Q + 0.350GAN500h + 0.350GAN500i                 : ARR( 0.168E-13, -1300., 0.0);
+{ 12181} G2A500P +PERO9              =  0.650G1A500Q + 0.350GAN500i                                : ARR( 0.100E-10,     0., 0.0);
+{ 12182} G1A500P                     =       GD02000 +      GAD3000 +      GNO2                    : ARR( 0.200E+15,  6072., 0.0);
+{ 12183} G1A500Q                     =       GND4000 +      GCO     +      GHO                     : ARR( 0.200E+15,  4918., 0.0);
+{ 12184} GAH5002 +GHO                =       GAK5001 +      GHO                                    : ARR( 0.360E-10,     0., 0.0);
+{ 12185} GAH5002 +GHO                =       G2A5000                                               : ARR( 0.204E-11,  -190., 0.0);
+{ 12186} GAH5002+HV               =       G1A5000 +      GHO                                    :  0.100E+01*SUN;
+{ 12187} GAK5001 +GHO                =       G2A500Q                                               : ARR( 0.888E-12,     0., 0.0);
+{ 12188} GAK5001 +GHO                =       G2A500R                                               : ARR( 0.208E-11,     0., 0.0);
+{ 12189} GAK5001 +GHO                =       G2K4001 +      GCO2                                   : ARR( 0.536E-12,     0., 0.0);
+{ 12190} GAK5001+HV               =       G3K2000 +      G2A3000                                :  0.100E+01*SUN;
+{ 12191} G2A500Q +GNO                =       G1A500R +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 12192} G2A500Q +GNO                =       GAN500S                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 12193} G2A500Q +GHO2               =       GAH500Y                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 12194} G2A500Q +GNO3               =       G1A500R +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 12195} G2A500Q +MEPERO             =  0.340G1A500R + 0.330GAK5009 + 0.330GAK500B                 : ARR( 0.565E-13,  -845., 0.0);
+{ 12196} G2A500Q +PERO1              =  0.460G1A500R + 0.270GAK5009 + 0.270GAK500B                 : ARR( 0.434E-13,  -900., 0.0);
+{ 12197} G2A500Q +PERO2              =  0.400G1A500R + 0.300GAK5009 + 0.300GAK500B                 : ARR( 0.162E-13, -1400., 0.0);
+{ 12198} G2A500Q +PERO3              =  0.460G1A500R + 0.270GAK5009 + 0.270GAK500B                 : ARR( 0.488E-13, -1250., 0.0);
+{ 12199} G2A500Q +PERO5              =  0.460G1A500R + 0.270GAK5009 + 0.270GAK500B                 : ARR( 0.183E-11,   450., 0.0);
+{ 12200} G2A500Q +PERO6              =  0.300G1A500R + 0.350GAK5009 + 0.350GAK500B                 : ARR( 0.168E-13, -1300., 0.0);
+{ 12201} G2A500Q +PERO9              =  0.650G1A500R + 0.350GAK500B                                : ARR( 0.100E-10,     0., 0.0);
+{ 12202} G2A500R +GNO                =       G1A500S +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 12203} G2A500R +GNO                =       GAN500j                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 12204} G2A500R +GHO2               =       GAH500Z                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 12205} G2A500R +GNO3               =       G1A500S +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 12206} G2A500R +MEPERO             =  0.340G1A500S + 0.330GAK500G + 0.330GAK500H                 : ARR( 0.565E-13,  -845., 0.0);
+{ 12207} G2A500R +PERO1              =  0.460G1A500S + 0.270GAK500G + 0.270GAK500H                 : ARR( 0.434E-13,  -900., 0.0);
+{ 12208} G2A500R +PERO2              =  0.400G1A500S + 0.300GAK500G + 0.300GAK500H                 : ARR( 0.162E-13, -1400., 0.0);
+{ 12209} G2A500R +PERO3              =  0.460G1A500S + 0.270GAK500G + 0.270GAK500H                 : ARR( 0.488E-13, -1250., 0.0);
+{ 12210} G2A500R +PERO5              =  0.460G1A500S + 0.270GAK500G + 0.270GAK500H                 : ARR( 0.183E-11,   450., 0.0);
+{ 12211} G2A500R +PERO6              =  0.300G1A500S + 0.350GAK500G + 0.350GAK500H                 : ARR( 0.168E-13, -1300., 0.0);
+{ 12212} G2A500R +PERO9              =  0.650G1A500S + 0.350GAK500H                                : ARR( 0.100E-10,     0., 0.0);
+{ 12213} G1A500R                     =       G3K2000 +      GAD3000                                : ARR( 0.200E+15,  2285., 0.0);
+{ 12214} G1A500S                     =       GDK4000 +      GCO     +      GHO                     : ARR( 0.200E+15,  4535., 0.0);
+{ 12215} GAN5004 +GHO                =       G2A500S                                               : ARR( 0.172E-12,     0., 0.0);
+{ 12216} GAN5004 +GHO                =       G2A500T                                               : ARR( 0.118E-11,     0., 0.0);
+{ 12217} GAN5004 +GHO                =       G2A500U                                               : ARR( 0.290E-12,     0., 0.0);
+{ 12218} GAN5004 +GHO                =       GD04000 +      GNO2    +      GCO2                    : ARR( 0.533E-12,     0., 0.0);
+{ 12219} GAN5004+HV               =       G1A5002 +      GNO2                                   :  0.100E+01*SUN;
+{ 12220} G2A500S +GNO                =       G1A500T +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 12221} G2A500S +GNO                =       GAN500A                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 12222} G2A500S +GHO2               =       GAH500a                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 12223} G2A500S +GNO3               =       G1A500T +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 12224} G2A500S +MEPERO             =  0.480G1A500T + 0.260GAN500F + 0.260GAN500k                 : ARR( 0.146E-12,  -445., 0.0);
+{ 12225} G2A500S +PERO1              =  0.600G1A500T + 0.200GAN500F + 0.200GAN500k                 : ARR( 0.112E-12,  -500., 0.0);
+{ 12226} G2A500S +PERO2              =  0.560G1A500T + 0.220GAN500F + 0.220GAN500k                 : ARR( 0.418E-13, -1000., 0.0);
+{ 12227} G2A500S +PERO3              =  0.600G1A500T + 0.200GAN500F + 0.200GAN500k                 : ARR( 0.126E-12,  -850., 0.0);
+{ 12228} G2A500S +PERO5              =  0.600G1A500T + 0.200GAN500F + 0.200GAN500k                 : ARR( 0.473E-11,   850., 0.0);
+{ 12229} G2A500S +PERO6              =  0.460G1A500T + 0.270GAN500F + 0.270GAN500k                 : ARR( 0.434E-13,  -900., 0.0);
+{ 12230} G2A500S +PERO9              =  0.800G1A500T + 0.200GAN500k                                : ARR( 0.100E-10,     0., 0.0);
+{ 12231} G2A500T +GNO                =       G1A500U +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 12232} G2A500T +GNO                =       GAN500g                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 12233} G2A500T +GHO2               =       GAH500b                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 12234} G2A500T +GNO3               =       G1A500U +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 12235} G2A500T +MEPERO             =  0.480G1A500U + 0.260GAN5005 + 0.260GAN500j                 : ARR( 0.616E-11,   905., 0.0);
+{ 12236} G2A500T +PERO1              =  0.600G1A500U + 0.200GAN5005 + 0.200GAN500j                 : ARR( 0.473E-11,   850., 0.0);
+{ 12237} G2A500T +PERO2              =  0.560G1A500U + 0.220GAN5005 + 0.220GAN500j                 : ARR( 0.177E-11,   350., 0.0);
+{ 12238} G2A500T +PERO3              =  0.600G1A500U + 0.200GAN5005 + 0.200GAN500j                 : ARR( 0.533E-11,   500., 0.0);
+{ 12239} G2A500T +PERO5              =  0.600G1A500U + 0.200GAN5005 + 0.200GAN500j                 : ARR( 0.200E-09,  2200., 0.0);
+{ 12240} G2A500T +PERO6              =  0.460G1A500U + 0.270GAN5005 + 0.270GAN500j                 : ARR( 0.183E-11,   450., 0.0);
+{ 12241} G2A500T +PERO9              =  0.800G1A500U + 0.200GAN500j                                : ARR( 0.100E-10,     0., 0.0);
+{ 12242} G2A500U +GNO                =       G1A500W +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 12243} G2A500U +GNO                =       GAN500T                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 12244} G2A500U +GHO2               =       GAH500c                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 12245} G2A500U +GNO3               =       G1A500W +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 12246} G2A500U +MEPERO             =  0.340G1A500W + 0.330GAN500l + 0.330GAN500e                 : ARR( 0.565E-13,  -845., 0.0);
+{ 12247} G2A500U +PERO1              =  0.460G1A500W + 0.270GAN500l + 0.270GAN500e                 : ARR( 0.434E-13,  -900., 0.0);
+{ 12248} G2A500U +PERO2              =  0.400G1A500W + 0.300GAN500l + 0.300GAN500e                 : ARR( 0.162E-13, -1400., 0.0);
+{ 12249} G2A500U +PERO3              =  0.460G1A500W + 0.270GAN500l + 0.270GAN500e                 : ARR( 0.488E-13, -1250., 0.0);
+{ 12250} G2A500U +PERO5              =  0.460G1A500W + 0.270GAN500l + 0.270GAN500e                 : ARR( 0.183E-11,   450., 0.0);
+{ 12251} G2A500U +PERO6              =  0.300G1A500W + 0.350GAN500l + 0.350GAN500e                 : ARR( 0.168E-13, -1300., 0.0);
+{ 12252} G2A500U +PERO9              =  0.650G1A500W + 0.350GAN500e                                : ARR( 0.100E-10,     0., 0.0);
+{ 12253} G1A500T +OXYGEN             =       GAN500k +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{ 12254} G1A500T                     =       GAK5005 +      GNO2                                   : ARR( 0.800E+11,  4379., 0.0);
+{ 12255} G1A500U                     =       GD02000 +      G2A3004                                : ARR( 0.200E+15,  6864., 0.0);
+{ 12256} G1A500W                     =       G202000 +      GAN3006                                : ARR( 0.200E+15,  6631., 0.0);
+{ 12257} G1A500W                     =       GD03000 +      GAD2000 +      GNO2                    : ARR( 0.200E+15,  6422., 0.0);
+{ 12258} G2A3004 +GNO                =       G1A3004 +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{ 12259} G2A3004 +GNO                =       GAN3004                                               : ARR( 0.622E-13,  -360., 0.0);
+{ 12260} G2A3004 +GHO2               =       GAH3005                                               : ARR( 0.179E-12, -1250., 0.0);
+{ 12261} G2A3004 +GNO3               =       G1A3004 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 12262} G2A3004 +MEPERO             =  0.480G1A3004 + 0.260GAN3002 + 0.260GAN3006                 : ARR( 0.164E-12,  -795., 0.0);
+{ 12263} G2A3004 +PERO1              =  0.600G1A3004 + 0.200GAN3002 + 0.200GAN3006                 : ARR( 0.126E-12,  -850., 0.0);
+{ 12264} G2A3004 +PERO2              =  0.560G1A3004 + 0.220GAN3002 + 0.220GAN3006                 : ARR( 0.471E-13, -1350., 0.0);
+{ 12265} G2A3004 +PERO3              =  0.600G1A3004 + 0.200GAN3002 + 0.200GAN3006                 : ARR( 0.142E-12, -1200., 0.0);
+{ 12266} G2A3004 +PERO5              =  0.600G1A3004 + 0.200GAN3002 + 0.200GAN3006                 : ARR( 0.533E-11,   500., 0.0);
+{ 12267} G2A3004 +PERO6              =  0.460G1A3004 + 0.270GAN3002 + 0.270GAN3006                 : ARR( 0.488E-13, -1250., 0.0);
+{ 12268} G2A3004 +PERO9              =  0.800G1A3004 + 0.200GAN3006                                : ARR( 0.100E-10,     0., 0.0);
+{ 12269} G1A3004 +OXYGEN             =       GAN3006 +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 12270} GAH5003 +GHO                =       G2A500W                                               : ARR( 0.152E-11,     0., 0.0);
+{ 12271} GAH5003 +GHO                =       GAK5002 +      GHO                                    : ARR( 0.200E-10,     0., 0.0);
+{ 12272} GAH5003 +GHO                =       G2A5002                                               : ARR( 0.205E-11,  -190., 0.0);
+{ 12273} GAH5003+HV               =       G1A5002 +      GHO                                    :  0.100E+01*SUN;
+{ 12274} G2A500W +GNO                =       G1A500X +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 12275} G2A500W +GNO                =       GAH500N                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 12276} G2A500W +GHO2               =       GAH500d                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 12277} G2A500W +GNO3               =       G1A500X +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 12278} G2A500W +MEPERO             =  0.340G1A500X + 0.330GAH500e + 0.330GAH500T                 : ARR( 0.565E-13,  -845., 0.0);
+{ 12279} G2A500W +PERO1              =  0.460G1A500X + 0.270GAH500e + 0.270GAH500T                 : ARR( 0.434E-13,  -900., 0.0);
+{ 12280} G2A500W +PERO2              =  0.400G1A500X + 0.300GAH500e + 0.300GAH500T                 : ARR( 0.162E-13, -1400., 0.0);
+{ 12281} G2A500W +PERO3              =  0.460G1A500X + 0.270GAH500e + 0.270GAH500T                 : ARR( 0.488E-13, -1250., 0.0);
+{ 12282} G2A500W +PERO5              =  0.460G1A500X + 0.270GAH500e + 0.270GAH500T                 : ARR( 0.183E-11,   450., 0.0);
+{ 12283} G2A500W +PERO6              =  0.300G1A500X + 0.350GAH500e + 0.350GAH500T                 : ARR( 0.168E-13, -1300., 0.0);
+{ 12284} G2A500W +PERO9              =  0.650G1A500X + 0.350GAH500T                                : ARR( 0.100E-10,     0., 0.0);
+{ 12285} G1A500X                     =       GD03000 +      GAD2000 +      GHO                     : ARR( 0.200E+15,  4883., 0.0);
+{ 12286} GAO5003 +GHO                =       G2A500X                                               : ARR( 0.119E-11,     0., 0.0);
+{ 12287} GAO5003 +GHO                =       G2A500Y                                               : ARR( 0.147E-11,     0., 0.0);
+{ 12288} GAO5003 +GHO                =       GAK5002 +      GHO2                                   : ARR( 0.483E-11,     0., 0.0);
+{ 12289} GAO5003 +GHO                =       GD04000 +      GHO2    +      GCO2                    : ARR( 0.541E-12,     0., 0.0);
+{ 12290} G2A500X +GNO                =       G1A500Y +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 12291} G2A500X +GNO                =       GAN500h                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 12292} G2A500X +GHO2               =       GAH500f                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 12293} G2A500X +GNO3               =       G1A500Y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 12294} G2A500X +MEPERO             =  0.480G1A500Y + 0.260GAO5004 + 0.260GAK500G                 : ARR( 0.616E-11,   905., 0.0);
+{ 12295} G2A500X +PERO1              =  0.600G1A500Y + 0.200GAO5004 + 0.200GAK500G                 : ARR( 0.473E-11,   850., 0.0);
+{ 12296} G2A500X +PERO2              =  0.560G1A500Y + 0.220GAO5004 + 0.220GAK500G                 : ARR( 0.177E-11,   350., 0.0);
+{ 12297} G2A500X +PERO3              =  0.600G1A500Y + 0.200GAO5004 + 0.200GAK500G                 : ARR( 0.533E-11,   500., 0.0);
+{ 12298} G2A500X +PERO5              =  0.600G1A500Y + 0.200GAO5004 + 0.200GAK500G                 : ARR( 0.200E-09,  2200., 0.0);
+{ 12299} G2A500X +PERO6              =  0.460G1A500Y + 0.270GAO5004 + 0.270GAK500G                 : ARR( 0.183E-11,   450., 0.0);
+{ 12300} G2A500X +PERO9              =  0.800G1A500Y + 0.200GAK500G                                : ARR( 0.100E-10,     0., 0.0);
+{ 12301} G2A500Y +GNO                =       G1A500Z +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 12302} G2A500Y +GNO                =       GAN500U                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 12303} G2A500Y +GHO2               =       GAH500g                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 12304} G2A500Y +GNO3               =       G1A500Z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 12305} G2A500Y +MEPERO             =  0.340G1A500Z + 0.330GAO5009 + 0.330GAK500C                 : ARR( 0.565E-13,  -845., 0.0);
+{ 12306} G2A500Y +PERO1              =  0.460G1A500Z + 0.270GAO5009 + 0.270GAK500C                 : ARR( 0.434E-13,  -900., 0.0);
+{ 12307} G2A500Y +PERO2              =  0.400G1A500Z + 0.300GAO5009 + 0.300GAK500C                 : ARR( 0.162E-13, -1400., 0.0);
+{ 12308} G2A500Y +PERO3              =  0.460G1A500Z + 0.270GAO5009 + 0.270GAK500C                 : ARR( 0.488E-13, -1250., 0.0);
+{ 12309} G2A500Y +PERO5              =  0.460G1A500Z + 0.270GAO5009 + 0.270GAK500C                 : ARR( 0.183E-11,   450., 0.0);
+{ 12310} G2A500Y +PERO6              =  0.300G1A500Z + 0.350GAO5009 + 0.350GAK500C                 : ARR( 0.168E-13, -1300., 0.0);
+{ 12311} G2A500Y +PERO9              =  0.650G1A500Z + 0.350GAK500C                                : ARR( 0.100E-10,     0., 0.0);
+{ 12312} G1A500Y                     =       GD02000 +      G2A3005                                : ARR( 0.200E+15,  6864., 0.0);
+{ 12313} G1A500Z                     =       GD03000 +      GAD2000 +      GHO2                    : ARR( 0.200E+15,  3675., 0.0);
+{ 12314} G2A3005 +GNO                =       G1A3005 +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{ 12315} G2A3005 +GNO                =       GAN3003                                               : ARR( 0.622E-13,  -360., 0.0);
+{ 12316} G2A3005 +GHO2               =       GAH3004                                               : ARR( 0.179E-12, -1250., 0.0);
+{ 12317} G2A3005 +GNO3               =       G1A3005 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 12318} G2A3005 +MEPERO             =  0.480G1A3005 + 0.260GAO3002 + 0.260GAD3001                 : ARR( 0.164E-12,  -795., 0.0);
+{ 12319} G2A3005 +PERO1              =  0.600G1A3005 + 0.200GAO3002 + 0.200GAD3001                 : ARR( 0.126E-12,  -850., 0.0);
+{ 12320} G2A3005 +PERO2              =  0.560G1A3005 + 0.220GAO3002 + 0.220GAD3001                 : ARR( 0.471E-13, -1350., 0.0);
+{ 12321} G2A3005 +PERO3              =  0.600G1A3005 + 0.200GAO3002 + 0.200GAD3001                 : ARR( 0.142E-12, -1200., 0.0);
+{ 12322} G2A3005 +PERO5              =  0.600G1A3005 + 0.200GAO3002 + 0.200GAD3001                 : ARR( 0.533E-11,   500., 0.0);
+{ 12323} G2A3005 +PERO6              =  0.460G1A3005 + 0.270GAO3002 + 0.270GAD3001                 : ARR( 0.488E-13, -1250., 0.0);
+{ 12324} G2A3005 +PERO9              =  0.800G1A3005 + 0.200GAD3001                                : ARR( 0.100E-10,     0., 0.0);
+{ 12325} G1A3005                     =       GAD2000 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4797., 0.0);
+{ 12326} GAK5002 +GHO                =       G2A500Z                                               : ARR( 0.376E-11,     0., 0.0);
+{ 12327} GAK5002 +GHO                =       G2A500a                                               : ARR( 0.890E-12,     0., 0.0);
+{ 12328} GAK5002 +GHO                =       G3K4001 +      GCO2                                   : ARR( 0.537E-12,     0., 0.0);
+{ 12329} GAK5002+HV               =       GD04000 +      GCO2                                   :  0.100E+01*SUN;
+{ 12330} G2A500Z +GNO                =       G1A500a +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 12331} G2A500Z +GNO                =       GAN500i                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 12332} G2A500Z +GHO2               =       GAH500h                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 12333} G2A500Z +GNO3               =       G1A500a +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 12334} G2A500Z +MEPERO             =  0.480G1A500a + 0.260GAK5004 + 0.260GAK500H                 : ARR( 0.616E-11,   905., 0.0);
+{ 12335} G2A500Z +PERO1              =  0.600G1A500a + 0.200GAK5004 + 0.200GAK500H                 : ARR( 0.473E-11,   850., 0.0);
+{ 12336} G2A500Z +PERO2              =  0.560G1A500a + 0.220GAK5004 + 0.220GAK500H                 : ARR( 0.177E-11,   350., 0.0);
+{ 12337} G2A500Z +PERO3              =  0.600G1A500a + 0.200GAK5004 + 0.200GAK500H                 : ARR( 0.533E-11,   500., 0.0);
+{ 12338} G2A500Z +PERO5              =  0.600G1A500a + 0.200GAK5004 + 0.200GAK500H                 : ARR( 0.200E-09,  2200., 0.0);
+{ 12339} G2A500Z +PERO6              =  0.460G1A500a + 0.270GAK5004 + 0.270GAK500H                 : ARR( 0.183E-11,   450., 0.0);
+{ 12340} G2A500Z +PERO9              =  0.800G1A500a + 0.200GAK500H                                : ARR( 0.100E-10,     0., 0.0);
+{ 12341} G2A500a +GNO                =       G1A500b +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 12342} G2A500a +GNO                =       GAN500W                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 12343} G2A500a +GHO2               =       GAH500i                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 12344} G2A500a +GNO3               =       G1A500b +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 12345} G2A500a +MEPERO             =  0.340G1A500b + 0.330GAK500I + 0.330GAK500D                 : ARR( 0.565E-13,  -845., 0.0);
+{ 12346} G2A500a +PERO1              =  0.460G1A500b + 0.270GAK500I + 0.270GAK500D                 : ARR( 0.434E-13,  -900., 0.0);
+{ 12347} G2A500a +PERO2              =  0.400G1A500b + 0.300GAK500I + 0.300GAK500D                 : ARR( 0.162E-13, -1400., 0.0);
+{ 12348} G2A500a +PERO3              =  0.460G1A500b + 0.270GAK500I + 0.270GAK500D                 : ARR( 0.488E-13, -1250., 0.0);
+{ 12349} G2A500a +PERO5              =  0.460G1A500b + 0.270GAK500I + 0.270GAK500D                 : ARR( 0.183E-11,   450., 0.0);
+{ 12350} G2A500a +PERO6              =  0.300G1A500b + 0.350GAK500I + 0.350GAK500D                 : ARR( 0.168E-13, -1300., 0.0);
+{ 12351} G2A500a +PERO9              =  0.650G1A500b + 0.350GAK500D                                : ARR( 0.100E-10,     0., 0.0);
+{ 12352} G1A500a                     =       GD02000 +      G2A3006                                : ARR( 0.200E+15,  6613., 0.0);
+{ 12353} G1A500b                     =       GD03000 +      GCO     +      GHO     +      GCO      : ARR( 0.200E+15,  3012., 0.0);
+{ 12354} G2A3006 +GNO                =       G1A3006 +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{ 12355} G2A3006 +GNO                =       GAN3005                                               : ARR( 0.622E-13,  -360., 0.0);
+{ 12356} G2A3006 +GHO2               =       GAH3006                                               : ARR( 0.179E-12, -1250., 0.0);
+{ 12357} G2A3006 +GNO3               =       G1A3006 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 12358} G2A3006 +MEPERO             =  0.480G1A3006 + 0.260GAK3001 + 0.260GAD3002                 : ARR( 0.164E-12,  -795., 0.0);
+{ 12359} G2A3006 +PERO1              =  0.600G1A3006 + 0.200GAK3001 + 0.200GAD3002                 : ARR( 0.126E-12,  -850., 0.0);
+{ 12360} G2A3006 +PERO2              =  0.560G1A3006 + 0.220GAK3001 + 0.220GAD3002                 : ARR( 0.471E-13, -1350., 0.0);
+{ 12361} G2A3006 +PERO3              =  0.600G1A3006 + 0.200GAK3001 + 0.200GAD3002                 : ARR( 0.142E-12, -1200., 0.0);
+{ 12362} G2A3006 +PERO5              =  0.600G1A3006 + 0.200GAK3001 + 0.200GAD3002                 : ARR( 0.533E-11,   500., 0.0);
+{ 12363} G2A3006 +PERO6              =  0.460G1A3006 + 0.270GAK3001 + 0.270GAD3002                 : ARR( 0.488E-13, -1250., 0.0);
+{ 12364} G2A3006 +PERO9              =  0.800G1A3006 + 0.200GAD3002                                : ARR( 0.100E-10,     0., 0.0);
+{ 12365} G1A3006                     =       GCO     +      GCH2O   +      GHO     +      GCO      : ARR( 0.200E+15,  3897., 0.0);
+{ 12366} GAD3000 +GHO                =       G3A3000                                               : ARR( 0.217E-10,     0., 0.0);
+{ 12367} GAD3000 +GNO3               =       G3A3000 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 12368} GAD3000+HV               =       G2A2000 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 12369} GAD2000 +GHO                =       GCO     +      GHO     +      GCO                     : ARR( 0.937E-11,     0., 0.0);
+{ 12370} GAD2000 +GHO                =       GCO     +      GHO2    +      GCO2                    : ARR( 0.520E-12,     0., 0.0);
+{ 12371} GAD2000 +GNO3               =       GCO     +      GHNO3   +      GHO     +      GCO      : ARR( 0.240E-14,     0., 0.0);
+{ 12372} GAD2000+HV               =       GCO2    +      GCH2O                                  :  0.100E+01*SUN;
+{ 12373} GAD2000+HV               =  2.000GCO                                                   :  0.100E+01*SUN;
+{ 12374} GPN5003                     =       G3N5003 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 12375} GPN5003 +GHO                =       GPK5001 +      GNO2                                   : ARR( 0.983E-13,     0., 0.0);
+{ 12376} GPN5003 +GHO                =       G2P500Q                                               : ARR( 0.290E-12,     0., 0.0);
+{ 12377} GPN5003 +GHO                =       G2P500R                                               : ARR( 0.885E-12,     0., 0.0);
+{ 12378} GPN5003+HV               =       G1P5000 +      GNO2                                   :  0.100E+01*SUN;
+{ 12379} GPN5003+HV               =       G3N5003 +      GNO2                                   :  0.100E+01*SUN;
+{ 12380} G2P500Q +GNO                =       G1P500R +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 12381} G2P500Q +GNO                =       GPN500R                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 12382} G2P500Q +GHO2               =       GPH500Y                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 12383} G2P500Q +GNO3               =       G1P500R +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 12384} G2P500Q +MEPERO             =  0.340G1P500R + 0.330GPN500c + 0.330GPN500f                 : ARR( 0.565E-13,  -845., 0.0);
+{ 12385} G2P500Q +PERO1              =  0.460G1P500R + 0.270GPN500c + 0.270GPN500f                 : ARR( 0.434E-13,  -900., 0.0);
+{ 12386} G2P500Q +PERO2              =  0.400G1P500R + 0.300GPN500c + 0.300GPN500f                 : ARR( 0.162E-13, -1400., 0.0);
+{ 12387} G2P500Q +PERO3              =  0.460G1P500R + 0.270GPN500c + 0.270GPN500f                 : ARR( 0.488E-13, -1250., 0.0);
+{ 12388} G2P500Q +PERO5              =  0.460G1P500R + 0.270GPN500c + 0.270GPN500f                 : ARR( 0.183E-11,   450., 0.0);
+{ 12389} G2P500Q +PERO6              =  0.300G1P500R + 0.350GPN500c + 0.350GPN500f                 : ARR( 0.168E-13, -1300., 0.0);
+{ 12390} G2P500Q +PERO9              =  0.650G1P500R + 0.350GPN500f                                : ARR( 0.100E-10,     0., 0.0);
+{ 12391} G2P500R +GNO                =       G1P500S +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 12392} G2P500R +GNO                =       GPN500i                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 12393} G2P500R +GHO2               =       GPH500Z                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 12394} G2P500R +GNO3               =       G1P500S +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 12395} G2P500R +MEPERO             =  0.340G1P500S + 0.330GPN500j + 0.330GPN500k                 : ARR( 0.565E-13,  -845., 0.0);
+{ 12396} G2P500R +PERO1              =  0.460G1P500S + 0.270GPN500j + 0.270GPN500k                 : ARR( 0.434E-13,  -900., 0.0);
+{ 12397} G2P500R +PERO2              =  0.400G1P500S + 0.300GPN500j + 0.300GPN500k                 : ARR( 0.162E-13, -1400., 0.0);
+{ 12398} G2P500R +PERO3              =  0.460G1P500S + 0.270GPN500j + 0.270GPN500k                 : ARR( 0.488E-13, -1250., 0.0);
+{ 12399} G2P500R +PERO5              =  0.460G1P500S + 0.270GPN500j + 0.270GPN500k                 : ARR( 0.183E-11,   450., 0.0);
+{ 12400} G2P500R +PERO6              =  0.300G1P500S + 0.350GPN500j + 0.350GPN500k                 : ARR( 0.168E-13, -1300., 0.0);
+{ 12401} G2P500R +PERO9              =  0.650G1P500S + 0.350GPN500k                                : ARR( 0.100E-10,     0., 0.0);
+{ 12402} G1P500R                     =       GD02000 +      GPD3000 +      GNO2                    : ARR( 0.200E+15,  6072., 0.0);
+{ 12403} G1P500S                     =       GND4000 +      GCO     +      GNO2                    : ARR( 0.200E+15,  4949., 0.0);
+{ 12404} GPH5002                     =       G3H5002 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 12405} GPH5002 +GHO                =       GPK5001 +      GHO                                    : ARR( 0.357E-10,     0., 0.0);
+{ 12406} GPH5002 +GHO                =       G2P5000                                               : ARR( 0.203E-11,  -190., 0.0);
+{ 12407} GPH5002+HV               =       G1P5000 +      GHO                                    :  0.100E+01*SUN;
+{ 12408} GPH5002+HV               =       G3H5002 +      GNO2                                   :  0.100E+01*SUN;
+{ 12409} GPK5001                     =       G3K5007 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 12410} GPK5001 +GHO                =       G2P500S                                               : ARR( 0.886E-12,     0., 0.0);
+{ 12411} GPK5001 +GHO                =       G2P500T                                               : ARR( 0.281E-11,     0., 0.0);
+{ 12412} GPK5001+HV               =       G3K2000 +      G2P3000                                :  0.100E+01*SUN;
+{ 12413} GPK5001+HV               =       G3K5007 +      GNO2                                   :  0.100E+01*SUN;
+{ 12414} G2P500S +GNO                =       G1P500T +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 12415} G2P500S +GNO                =       GPN500S                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 12416} G2P500S +GHO2               =       GPH500a                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 12417} G2P500S +GNO3               =       G1P500T +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 12418} G2P500S +MEPERO             =  0.340G1P500T + 0.330GPK5009 + 0.330GPK500D                 : ARR( 0.565E-13,  -845., 0.0);
+{ 12419} G2P500S +PERO1              =  0.460G1P500T + 0.270GPK5009 + 0.270GPK500D                 : ARR( 0.434E-13,  -900., 0.0);
+{ 12420} G2P500S +PERO2              =  0.400G1P500T + 0.300GPK5009 + 0.300GPK500D                 : ARR( 0.162E-13, -1400., 0.0);
+{ 12421} G2P500S +PERO3              =  0.460G1P500T + 0.270GPK5009 + 0.270GPK500D                 : ARR( 0.488E-13, -1250., 0.0);
+{ 12422} G2P500S +PERO5              =  0.460G1P500T + 0.270GPK5009 + 0.270GPK500D                 : ARR( 0.183E-11,   450., 0.0);
+{ 12423} G2P500S +PERO6              =  0.300G1P500T + 0.350GPK5009 + 0.350GPK500D                 : ARR( 0.168E-13, -1300., 0.0);
+{ 12424} G2P500S +PERO9              =  0.650G1P500T + 0.350GPK500D                                : ARR( 0.100E-10,     0., 0.0);
+{ 12425} G2P500T +GNO                =       G1P500U +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 12426} G2P500T +GNO                =       GPN500l                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 12427} G2P500T +GHO2               =       GPH500b                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 12428} G2P500T +GNO3               =       G1P500U +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 12429} G2P500T +MEPERO             =  0.340G1P500U + 0.330GPK500I + 0.330GPK500J                 : ARR( 0.565E-13,  -845., 0.0);
+{ 12430} G2P500T +PERO1              =  0.460G1P500U + 0.270GPK500I + 0.270GPK500J                 : ARR( 0.434E-13,  -900., 0.0);
+{ 12431} G2P500T +PERO2              =  0.400G1P500U + 0.300GPK500I + 0.300GPK500J                 : ARR( 0.162E-13, -1400., 0.0);
+{ 12432} G2P500T +PERO3              =  0.460G1P500U + 0.270GPK500I + 0.270GPK500J                 : ARR( 0.488E-13, -1250., 0.0);
+{ 12433} G2P500T +PERO5              =  0.460G1P500U + 0.270GPK500I + 0.270GPK500J                 : ARR( 0.183E-11,   450., 0.0);
+{ 12434} G2P500T +PERO6              =  0.300G1P500U + 0.350GPK500I + 0.350GPK500J                 : ARR( 0.168E-13, -1300., 0.0);
+{ 12435} G2P500T +PERO9              =  0.650G1P500U + 0.350GPK500J                                : ARR( 0.100E-10,     0., 0.0);
+{ 12436} G1P500T                     =       G3K2000 +      GPD3000                                : ARR( 0.200E+15,  2285., 0.0);
+{ 12437} G1P500U                     =       GDK4000 +      GCO     +      GNO2                    : ARR( 0.200E+15,  4566., 0.0);
+{ 12438} GPN5004                     =       G3N500I +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 12439} GPN5004 +GHO                =       G2P500U                                               : ARR( 0.175E-12,     0., 0.0);
+{ 12440} GPN5004 +GHO                =       G2P500W                                               : ARR( 0.120E-11,     0., 0.0);
+{ 12441} GPN5004 +GHO                =       G2P500X                                               : ARR( 0.295E-12,     0., 0.0);
+{ 12442} GPN5004+HV               =       G1P5002 +      GNO2                                   :  0.100E+01*SUN;
+{ 12443} GPN5004+HV               =       G3N500I +      GNO2                                   :  0.100E+01*SUN;
+{ 12444} G2P500U +GNO                =       G1P500W +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 12445} G2P500U +GNO                =       GPN500C                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 12446} G2P500U +GHO2               =       GPH500c                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 12447} G2P500U +GNO3               =       G1P500W +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 12448} G2P500U +MEPERO             =  0.480G1P500W + 0.260GPN500F + 0.260GPN500m                 : ARR( 0.146E-12,  -445., 0.0);
+{ 12449} G2P500U +PERO1              =  0.600G1P500W + 0.200GPN500F + 0.200GPN500m                 : ARR( 0.112E-12,  -500., 0.0);
+{ 12450} G2P500U +PERO2              =  0.560G1P500W + 0.220GPN500F + 0.220GPN500m                 : ARR( 0.418E-13, -1000., 0.0);
+{ 12451} G2P500U +PERO3              =  0.600G1P500W + 0.200GPN500F + 0.200GPN500m                 : ARR( 0.126E-12,  -850., 0.0);
+{ 12452} G2P500U +PERO5              =  0.600G1P500W + 0.200GPN500F + 0.200GPN500m                 : ARR( 0.473E-11,   850., 0.0);
+{ 12453} G2P500U +PERO6              =  0.460G1P500W + 0.270GPN500F + 0.270GPN500m                 : ARR( 0.434E-13,  -900., 0.0);
+{ 12454} G2P500U +PERO9              =  0.800G1P500W + 0.200GPN500m                                : ARR( 0.100E-10,     0., 0.0);
+{ 12455} G2P500W +GNO                =       G1P500X +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 12456} G2P500W +GNO                =       GPN500i                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 12457} G2P500W +GHO2               =       GPH500d                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 12458} G2P500W +GNO3               =       G1P500X +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 12459} G2P500W +MEPERO             =  0.480G1P500X + 0.260GPN5005 + 0.260GPN500l                 : ARR( 0.616E-11,   905., 0.0);
+{ 12460} G2P500W +PERO1              =  0.600G1P500X + 0.200GPN5005 + 0.200GPN500l                 : ARR( 0.473E-11,   850., 0.0);
+{ 12461} G2P500W +PERO2              =  0.560G1P500X + 0.220GPN5005 + 0.220GPN500l                 : ARR( 0.177E-11,   350., 0.0);
+{ 12462} G2P500W +PERO3              =  0.600G1P500X + 0.200GPN5005 + 0.200GPN500l                 : ARR( 0.533E-11,   500., 0.0);
+{ 12463} G2P500W +PERO5              =  0.600G1P500X + 0.200GPN5005 + 0.200GPN500l                 : ARR( 0.200E-09,  2200., 0.0);
+{ 12464} G2P500W +PERO6              =  0.460G1P500X + 0.270GPN5005 + 0.270GPN500l                 : ARR( 0.183E-11,   450., 0.0);
+{ 12465} G2P500W +PERO9              =  0.800G1P500X + 0.200GPN500l                                : ARR( 0.100E-10,     0., 0.0);
+{ 12466} G2P500X +GNO                =       G1P500Y +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 12467} G2P500X +GNO                =       GPN500T                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 12468} G2P500X +GHO2               =       GPH500e                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 12469} G2P500X +GNO3               =       G1P500Y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 12470} G2P500X +MEPERO             =  0.340G1P500Y + 0.330GPN500d + 0.330GPN500g                 : ARR( 0.565E-13,  -845., 0.0);
+{ 12471} G2P500X +PERO1              =  0.460G1P500Y + 0.270GPN500d + 0.270GPN500g                 : ARR( 0.434E-13,  -900., 0.0);
+{ 12472} G2P500X +PERO2              =  0.400G1P500Y + 0.300GPN500d + 0.300GPN500g                 : ARR( 0.162E-13, -1400., 0.0);
+{ 12473} G2P500X +PERO3              =  0.460G1P500Y + 0.270GPN500d + 0.270GPN500g                 : ARR( 0.488E-13, -1250., 0.0);
+{ 12474} G2P500X +PERO5              =  0.460G1P500Y + 0.270GPN500d + 0.270GPN500g                 : ARR( 0.183E-11,   450., 0.0);
+{ 12475} G2P500X +PERO6              =  0.300G1P500Y + 0.350GPN500d + 0.350GPN500g                 : ARR( 0.168E-13, -1300., 0.0);
+{ 12476} G2P500X +PERO9              =  0.650G1P500Y + 0.350GPN500g                                : ARR( 0.100E-10,     0., 0.0);
+{ 12477} G1P500W +OXYGEN             =       GPN500m +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{ 12478} G1P500W                     =       GPK5005 +      GNO2                                   : ARR( 0.800E+11,  4245., 0.0);
+{ 12479} G1P500X                     =       GD02000 +      G2P3004                                : ARR( 0.200E+15,  6864., 0.0);
+{ 12480} G1P500Y                     =       G202000 +      GPN3006                                : ARR( 0.200E+15,  6631., 0.0);
+{ 12481} G1P500Y                     =       GD03000 +      GPD2000 +      GNO2                    : ARR( 0.200E+15,  6422., 0.0);
+{ 12482} G2P3004 +GNO                =       G1P3004 +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{ 12483} G2P3004 +GNO                =       GPN3004                                               : ARR( 0.622E-13,  -360., 0.0);
+{ 12484} G2P3004 +GHO2               =       GPH3005                                               : ARR( 0.179E-12, -1250., 0.0);
+{ 12485} G2P3004 +GNO3               =       G1P3004 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 12486} G2P3004 +MEPERO             =  0.480G1P3004 + 0.260GPN3002 + 0.260GPN3006                 : ARR( 0.164E-12,  -795., 0.0);
+{ 12487} G2P3004 +PERO1              =  0.600G1P3004 + 0.200GPN3002 + 0.200GPN3006                 : ARR( 0.126E-12,  -850., 0.0);
+{ 12488} G2P3004 +PERO2              =  0.560G1P3004 + 0.220GPN3002 + 0.220GPN3006                 : ARR( 0.471E-13, -1350., 0.0);
+{ 12489} G2P3004 +PERO3              =  0.600G1P3004 + 0.200GPN3002 + 0.200GPN3006                 : ARR( 0.142E-12, -1200., 0.0);
+{ 12490} G2P3004 +PERO5              =  0.600G1P3004 + 0.200GPN3002 + 0.200GPN3006                 : ARR( 0.533E-11,   500., 0.0);
+{ 12491} G2P3004 +PERO6              =  0.460G1P3004 + 0.270GPN3002 + 0.270GPN3006                 : ARR( 0.488E-13, -1250., 0.0);
+{ 12492} G2P3004 +PERO9              =  0.800G1P3004 + 0.200GPN3006                                : ARR( 0.100E-10,     0., 0.0);
+{ 12493} G1P3004 +OXYGEN             =       GPN3006 +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 12494} GPH5003                     =       G3H500B +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 12495} GPH5003 +GHO                =       GPK5002 +      GHO                                    : ARR( 0.275E-10,     0., 0.0);
+{ 12496} GPH5003 +GHO                =       G2P5002                                               : ARR( 0.208E-11,  -190., 0.0);
+{ 12497} GPH5003+HV               =       G1P5002 +      GHO                                    :  0.100E+01*SUN;
+{ 12498} GPH5003+HV               =       G3H500B +      GNO2                                   :  0.100E+01*SUN;
+{ 12499} GPO5003                     =       G3K500B +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 12500} GPO5003 +GHO                =       G2P500Y                                               : ARR( 0.119E-11,     0., 0.0);
+{ 12501} GPO5003 +GHO                =       G2P500Z                                               : ARR( 0.146E-11,     0., 0.0);
+{ 12502} GPO5003 +GHO                =       GPK5002 +      GHO2                                   : ARR( 0.650E-11,     0., 0.0);
+{ 12503} GPO5003+HV               =       G3K500B +      GNO2                                   :  0.100E+01*SUN;
+{ 12504} G2P500Y +GNO                =       G1P500Z +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 12505} G2P500Y +GNO                =       GPN500j                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 12506} G2P500Y +GHO2               =       GPH500f                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 12507} G2P500Y +GNO3               =       G1P500Z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 12508} G2P500Y +MEPERO             =  0.480G1P500Z + 0.260GPO5004 + 0.260GPK500I                 : ARR( 0.616E-11,   905., 0.0);
+{ 12509} G2P500Y +PERO1              =  0.600G1P500Z + 0.200GPO5004 + 0.200GPK500I                 : ARR( 0.473E-11,   850., 0.0);
+{ 12510} G2P500Y +PERO2              =  0.560G1P500Z + 0.220GPO5004 + 0.220GPK500I                 : ARR( 0.177E-11,   350., 0.0);
+{ 12511} G2P500Y +PERO3              =  0.600G1P500Z + 0.200GPO5004 + 0.200GPK500I                 : ARR( 0.533E-11,   500., 0.0);
+{ 12512} G2P500Y +PERO5              =  0.600G1P500Z + 0.200GPO5004 + 0.200GPK500I                 : ARR( 0.200E-09,  2200., 0.0);
+{ 12513} G2P500Y +PERO6              =  0.460G1P500Z + 0.270GPO5004 + 0.270GPK500I                 : ARR( 0.183E-11,   450., 0.0);
+{ 12514} G2P500Y +PERO9              =  0.800G1P500Z + 0.200GPK500I                                : ARR( 0.100E-10,     0., 0.0);
+{ 12515} G2P500Z +GNO                =       G1P500a +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 12516} G2P500Z +GNO                =       GPN500U                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 12517} G2P500Z +GHO2               =       GPH500g                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 12518} G2P500Z +GNO3               =       G1P500a +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 12519} G2P500Z +MEPERO             =  0.340G1P500a + 0.330GPO5009 + 0.330GPK500E                 : ARR( 0.565E-13,  -845., 0.0);
+{ 12520} G2P500Z +PERO1              =  0.460G1P500a + 0.270GPO5009 + 0.270GPK500E                 : ARR( 0.434E-13,  -900., 0.0);
+{ 12521} G2P500Z +PERO2              =  0.400G1P500a + 0.300GPO5009 + 0.300GPK500E                 : ARR( 0.162E-13, -1400., 0.0);
+{ 12522} G2P500Z +PERO3              =  0.460G1P500a + 0.270GPO5009 + 0.270GPK500E                 : ARR( 0.488E-13, -1250., 0.0);
+{ 12523} G2P500Z +PERO5              =  0.460G1P500a + 0.270GPO5009 + 0.270GPK500E                 : ARR( 0.183E-11,   450., 0.0);
+{ 12524} G2P500Z +PERO6              =  0.300G1P500a + 0.350GPO5009 + 0.350GPK500E                 : ARR( 0.168E-13, -1300., 0.0);
+{ 12525} G2P500Z +PERO9              =  0.650G1P500a + 0.350GPK500E                                : ARR( 0.100E-10,     0., 0.0);
+{ 12526} G1P500Z                     =       GD02000 +      G2P3005                                : ARR( 0.200E+15,  6864., 0.0);
+{ 12527} G1P500a                     =       GD03000 +      GPD2000 +      GHO2                    : ARR( 0.200E+15,  3675., 0.0);
+{ 12528} G2P3005 +GNO                =       G1P3005 +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{ 12529} G2P3005 +GNO                =       GPN3003                                               : ARR( 0.622E-13,  -360., 0.0);
+{ 12530} G2P3005 +GHO2               =       GPH3004                                               : ARR( 0.179E-12, -1250., 0.0);
+{ 12531} G2P3005 +GNO3               =       G1P3005 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 12532} G2P3005 +MEPERO             =  0.480G1P3005 + 0.260GPO3002 + 0.260GPD3001                 : ARR( 0.164E-12,  -795., 0.0);
+{ 12533} G2P3005 +PERO1              =  0.600G1P3005 + 0.200GPO3002 + 0.200GPD3001                 : ARR( 0.126E-12,  -850., 0.0);
+{ 12534} G2P3005 +PERO2              =  0.560G1P3005 + 0.220GPO3002 + 0.220GPD3001                 : ARR( 0.471E-13, -1350., 0.0);
+{ 12535} G2P3005 +PERO3              =  0.600G1P3005 + 0.200GPO3002 + 0.200GPD3001                 : ARR( 0.142E-12, -1200., 0.0);
+{ 12536} G2P3005 +PERO5              =  0.600G1P3005 + 0.200GPO3002 + 0.200GPD3001                 : ARR( 0.533E-11,   500., 0.0);
+{ 12537} G2P3005 +PERO6              =  0.460G1P3005 + 0.270GPO3002 + 0.270GPD3001                 : ARR( 0.488E-13, -1250., 0.0);
+{ 12538} G2P3005 +PERO9              =  0.800G1P3005 + 0.200GPD3001                                : ARR( 0.100E-10,     0., 0.0);
+{ 12539} G1P3005                     =       GPD2000 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4797., 0.0);
+{ 12540} GPK5002                     =       G3K500F +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 12541} GPK5002 +GHO                =       G2P500a                                               : ARR( 0.378E-11,     0., 0.0);
+{ 12542} GPK5002 +GHO                =       G2P500b                                               : ARR( 0.894E-12,     0., 0.0);
+{ 12543} GPK5002+HV               =       G3K4001 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 12544} G2P500a +GNO                =       G1P500b +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 12545} G2P500a +GNO                =       GPN500k                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 12546} G2P500a +GHO2               =       GPH500h                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 12547} G2P500a +GNO3               =       G1P500b +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 12548} G2P500a +MEPERO             =  0.480G1P500b + 0.260GPK5004 + 0.260GPK500J                 : ARR( 0.616E-11,   905., 0.0);
+{ 12549} G2P500a +PERO1              =  0.600G1P500b + 0.200GPK5004 + 0.200GPK500J                 : ARR( 0.473E-11,   850., 0.0);
+{ 12550} G2P500a +PERO2              =  0.560G1P500b + 0.220GPK5004 + 0.220GPK500J                 : ARR( 0.177E-11,   350., 0.0);
+{ 12551} G2P500a +PERO3              =  0.600G1P500b + 0.200GPK5004 + 0.200GPK500J                 : ARR( 0.533E-11,   500., 0.0);
+{ 12552} G2P500a +PERO5              =  0.600G1P500b + 0.200GPK5004 + 0.200GPK500J                 : ARR( 0.200E-09,  2200., 0.0);
+{ 12553} G2P500a +PERO6              =  0.460G1P500b + 0.270GPK5004 + 0.270GPK500J                 : ARR( 0.183E-11,   450., 0.0);
+{ 12554} G2P500a +PERO9              =  0.800G1P500b + 0.200GPK500J                                : ARR( 0.100E-10,     0., 0.0);
+{ 12555} G2P500b +GNO                =       G1P500c +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 12556} G2P500b +GNO                =       GPN500W                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 12557} G2P500b +GHO2               =       GPH500i                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 12558} G2P500b +GNO3               =       G1P500c +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 12559} G2P500b +MEPERO             =  0.340G1P500c + 0.330GPK500A + 0.330GPK500F                 : ARR( 0.565E-13,  -845., 0.0);
+{ 12560} G2P500b +PERO1              =  0.460G1P500c + 0.270GPK500A + 0.270GPK500F                 : ARR( 0.434E-13,  -900., 0.0);
+{ 12561} G2P500b +PERO2              =  0.400G1P500c + 0.300GPK500A + 0.300GPK500F                 : ARR( 0.162E-13, -1400., 0.0);
+{ 12562} G2P500b +PERO3              =  0.460G1P500c + 0.270GPK500A + 0.270GPK500F                 : ARR( 0.488E-13, -1250., 0.0);
+{ 12563} G2P500b +PERO5              =  0.460G1P500c + 0.270GPK500A + 0.270GPK500F                 : ARR( 0.183E-11,   450., 0.0);
+{ 12564} G2P500b +PERO6              =  0.300G1P500c + 0.350GPK500A + 0.350GPK500F                 : ARR( 0.168E-13, -1300., 0.0);
+{ 12565} G2P500b +PERO9              =  0.650G1P500c + 0.350GPK500F                                : ARR( 0.100E-10,     0., 0.0);
+{ 12566} G1P500b                     =       GD02000 +      G2P3006                                : ARR( 0.200E+15,  6613., 0.0);
+{ 12567} G1P500c                     =       GD03000 +      GCO     +      GNO2    +      GCO      : ARR( 0.200E+15,  3012., 0.0);
+{ 12568} G2P3006 +GNO                =       G1P3006 +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{ 12569} G2P3006 +GNO                =       GPN3005                                               : ARR( 0.622E-13,  -360., 0.0);
+{ 12570} G2P3006 +GHO2               =       GPH3006                                               : ARR( 0.179E-12, -1250., 0.0);
+{ 12571} G2P3006 +GNO3               =       G1P3006 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 12572} G2P3006 +MEPERO             =  0.480G1P3006 + 0.260GPK3001 + 0.260GPD3002                 : ARR( 0.164E-12,  -795., 0.0);
+{ 12573} G2P3006 +PERO1              =  0.600G1P3006 + 0.200GPK3001 + 0.200GPD3002                 : ARR( 0.126E-12,  -850., 0.0);
+{ 12574} G2P3006 +PERO2              =  0.560G1P3006 + 0.220GPK3001 + 0.220GPD3002                 : ARR( 0.471E-13, -1350., 0.0);
+{ 12575} G2P3006 +PERO3              =  0.600G1P3006 + 0.200GPK3001 + 0.200GPD3002                 : ARR( 0.142E-12, -1200., 0.0);
+{ 12576} G2P3006 +PERO5              =  0.600G1P3006 + 0.200GPK3001 + 0.200GPD3002                 : ARR( 0.533E-11,   500., 0.0);
+{ 12577} G2P3006 +PERO6              =  0.460G1P3006 + 0.270GPK3001 + 0.270GPD3002                 : ARR( 0.488E-13, -1250., 0.0);
+{ 12578} G2P3006 +PERO9              =  0.800G1P3006 + 0.200GPD3002                                : ARR( 0.100E-10,     0., 0.0);
+{ 12579} G1P3006                     =       GCO     +      GCH2O   +      GNO2    +      GCO      : ARR( 0.200E+15,  3897., 0.0);
+{ 12580} GPD3000                     =       G3D3000 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 12581} GPD3000 +GHO                =       G3P3000                                               : ARR( 0.213E-10,     0., 0.0);
+{ 12582} GPD3000 +GNO3               =       G3P3000 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 12583} GPD3000+HV               =       G3D3000 +      GNO2                                   :  0.100E+01*SUN;
+{ 12584} GPD3000+HV               =       G2P2000 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 12585}  GPD2000    +M                 =       G3D2000 +      GNO2            +M                     : FALL( 0.280E+17, 13580., 0.0, 0.190E-02, 12175., 0.0,0.60);
+{ 12586} GPD2000 +GHO                =       GCO     +      GNO2    +      GCO                     : ARR( 0.127E-10,     0., 0.0);
+{ 12587} GPD2000 +GNO3               =       GCO     +      GHNO3   +      GNO2    +      GCO      : ARR( 0.240E-14,     0., 0.0);
+{ 12588} GPD2000+HV               =  2.000GCO     +      GHO2    +      GNO2                    :  0.100E+01*SUN;
+{ 12589} GNN4005 +GHO                =       G2N400C                                               : ARR( 0.335E-13,     0., 0.0);
+{ 12590} GNN4005 +GHO                =       GNK4001 +      GNO2                                   : ARR( 0.957E-13,     0., 0.0);
+{ 12591} GNN4005 +GHO                =       G2N400T                                               : ARR( 0.565E-13,     0., 0.0);
+{ 12592} GNN4005 +GHO                =       GND4000 +      GNO2                                   : ARR( 0.460E-13,     0., 0.0);
+{ 12593} GNN4005+HV               =       G1N4004 +      GNO2                                   :  0.100E+01*SUN;
+{ 12594} GNN4005+HV               =       G1N4007 +      GNO2                                   :  0.100E+01*SUN;
+{ 12595} G2N400T +GNO                =       G1N400U +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 12596} G2N400T +GNO                =       GNN400L                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 12597} G2N400T +GHO2               =       GHN400f                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 12598} G2N400T +GNO3               =       G1N400U +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 12599} G2N400T +MEPERO             =  0.340G1N400U + 0.330GNN400P + 0.330GNN400Q                 : ARR( 0.565E-13,  -845., 0.0);
+{ 12600} G2N400T +PERO1              =  0.460G1N400U + 0.270GNN400P + 0.270GNN400Q                 : ARR( 0.434E-13,  -900., 0.0);
+{ 12601} G2N400T +PERO2              =  0.400G1N400U + 0.300GNN400P + 0.300GNN400Q                 : ARR( 0.162E-13, -1400., 0.0);
+{ 12602} G2N400T +PERO3              =  0.460G1N400U + 0.270GNN400P + 0.270GNN400Q                 : ARR( 0.488E-13, -1250., 0.0);
+{ 12603} G2N400T +PERO5              =  0.460G1N400U + 0.270GNN400P + 0.270GNN400Q                 : ARR( 0.183E-11,   450., 0.0);
+{ 12604} G2N400T +PERO6              =  0.300G1N400U + 0.350GNN400P + 0.350GNN400Q                 : ARR( 0.168E-13, -1300., 0.0);
+{ 12605} G2N400T +PERO9              =  0.650G1N400U + 0.350GNN400Q                                : ARR( 0.100E-10,     0., 0.0);
+{ 12606} G1N400U                     =       GD02000 +      GND2000 +      GNO2                    : ARR( 0.200E+15,  6768., 0.0);
+{ 12607} GHN4008 +GHO                =       GNK4001 +      GHO                                    : ARR( 0.340E-10,     0., 0.0);
+{ 12608} GHN4008 +GHO                =       G2N4004                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 12609} GHN4008+HV               =       G1N4004 +      GHO                                    :  0.100E+01*SUN;
+{ 12610} GHN4008+HV               =       G1H4007 +      GNO2                                   :  0.100E+01*SUN;
+{ 12611} GNK4001 +GHO                =       G2N400E                                               : ARR( 0.102E-12,     0., 0.0);
+{ 12612} GNK4001 +GHO                =       G2N400U                                               : ARR( 0.172E-12,     0., 0.0);
+{ 12613} GNK4001 +GHO                =       GDK4000 +      GNO2                                   : ARR( 0.146E-12,     0., 0.0);
+{ 12614} GNK4001+HV               =       G3K2000 +      G2N2000                                :  0.100E+01*SUN;
+{ 12615} GNK4001+HV               =       G1K4001 +      GNO2                                   :  0.100E+01*SUN;
+{ 12616} G2N400U +GNO                =       G1N400W +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 12617} G2N400U +GNO                =       GNN400M                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 12618} G2N400U +GHO2               =       GHN400g                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 12619} G2N400U +GNO3               =       G1N400W +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 12620} G2N400U +MEPERO             =  0.340G1N400W + 0.330GNK4009 + 0.330GNK400A                 : ARR( 0.565E-13,  -845., 0.0);
+{ 12621} G2N400U +PERO1              =  0.460G1N400W + 0.270GNK4009 + 0.270GNK400A                 : ARR( 0.434E-13,  -900., 0.0);
+{ 12622} G2N400U +PERO2              =  0.400G1N400W + 0.300GNK4009 + 0.300GNK400A                 : ARR( 0.162E-13, -1400., 0.0);
+{ 12623} G2N400U +PERO3              =  0.460G1N400W + 0.270GNK4009 + 0.270GNK400A                 : ARR( 0.488E-13, -1250., 0.0);
+{ 12624} G2N400U +PERO5              =  0.460G1N400W + 0.270GNK4009 + 0.270GNK400A                 : ARR( 0.183E-11,   450., 0.0);
+{ 12625} G2N400U +PERO6              =  0.300G1N400W + 0.350GNK4009 + 0.350GNK400A                 : ARR( 0.168E-13, -1300., 0.0);
+{ 12626} G2N400U +PERO9              =  0.650G1N400W + 0.350GNK400A                                : ARR( 0.100E-10,     0., 0.0);
+{ 12627} G1N400W                     =       G3K2000 +      GND2000                                : ARR( 0.200E+15,  2981., 0.0);
+{ 12628} GHN4009 +GHO                =       GND4000 +      GHO                                    : ARR( 0.164E-10,     0., 0.0);
+{ 12629} GHN4009 +GHO                =       G2N4007                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 12630} GHN4009+HV               =       G1H4003 +      GNO2                                   :  0.100E+01*SUN;
+{ 12631} GHN4009+HV               =       G1N4007 +      GHO                                    :  0.100E+01*SUN;
+{ 12632} GHH4003 +GHO                =       GHK4001 +      GHO                                    : ARR( 0.344E-10,     0., 0.0);
+{ 12633} GHH4003 +GHO                =       GHD4002 +      GHO                                    : ARR( 0.165E-10,     0., 0.0);
+{ 12634} GHH4003 +GHO                =       G2H4003                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 12635} GHH4003 +GHO                =       G2H4007                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 12636} GHH4003+HV               =       G1H4003 +      GHO                                    :  0.100E+01*SUN;
+{ 12637} GHH4003+HV               =       G1H4007 +      GHO                                    :  0.100E+01*SUN;
+{ 12638} GHK4001 +GHO                =       GDK4000 +      GHO                                    : ARR( 0.519E-10,     0., 0.0);
+{ 12639} GHK4001 +GHO                =       G2K4001                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 12640} GHK4001+HV               =       G3K2000 +      G2H2000                                :  0.100E+01*SUN;
+{ 12641} GHK4001+HV               =       G1K4001 +      GHO                                    :  0.100E+01*SUN;
+{ 12642} GNO4007 +GHO                =       G2N400W                                               : ARR( 0.300E-12,     0., 0.0);
+{ 12643} GNO4007 +GHO                =       GND4000 +      GHO2                                   : ARR( 0.427E-11,     0., 0.0);
+{ 12644} GNO4007+HV               =       G1O4005 +      GNO2                                   :  0.100E+01*SUN;
+{ 12645} G2N400W +GNO                =       G1N400X +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 12646} G2N400W +GNO                =       GNN400N                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 12647} G2N400W +GHO2               =       GHN400k                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 12648} G2N400W +GNO3               =       G1N400X +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 12649} G2N400W +MEPERO             =  0.340G1N400X + 0.330GNO400C + 0.330GNK400B                 : ARR( 0.565E-13,  -845., 0.0);
+{ 12650} G2N400W +PERO1              =  0.460G1N400X + 0.270GNO400C + 0.270GNK400B                 : ARR( 0.434E-13,  -900., 0.0);
+{ 12651} G2N400W +PERO2              =  0.400G1N400X + 0.300GNO400C + 0.300GNK400B                 : ARR( 0.162E-13, -1400., 0.0);
+{ 12652} G2N400W +PERO3              =  0.460G1N400X + 0.270GNO400C + 0.270GNK400B                 : ARR( 0.488E-13, -1250., 0.0);
+{ 12653} G2N400W +PERO5              =  0.460G1N400X + 0.270GNO400C + 0.270GNK400B                 : ARR( 0.183E-11,   450., 0.0);
+{ 12654} G2N400W +PERO6              =  0.300G1N400X + 0.350GNO400C + 0.350GNK400B                 : ARR( 0.168E-13, -1300., 0.0);
+{ 12655} G2N400W +PERO9              =  0.650G1N400X + 0.350GNK400B                                : ARR( 0.100E-10,     0., 0.0);
+{ 12656} G1N400X                     =       GND3001 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  5296., 0.0);
+{ 12657} GHO4007 +GHO                =       GKO4001 +      GHO                                    : ARR( 0.349E-10,     0., 0.0);
+{ 12658} GHO4007 +GHO                =       GHD4002 +      GHO2                                   : ARR( 0.419E-11,     0., 0.0);
+{ 12659} GHO4007 +GHO                =       G2O4005                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 12660} GHO4007+HV               =       G1O4005 +      GHO                                    :  0.100E+01*SUN;
+{ 12661} GKO4001 +GHO                =       G2K4006                                               : ARR( 0.877E-12,     0., 0.0);
+{ 12662} GKO4001 +GHO                =       GDK4000 +      GHO2                                   : ARR( 0.130E-10,     0., 0.0);
+{ 12663} GKO4001+HV               =       G3K2000 +      G2O2000                                :  0.100E+01*SUN;
+{ 12664} G2K4006 +GNO                =       G1K4006 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 12665} G2K4006 +GNO                =       GNK4007                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 12666} G2K4006 +GHO2               =       GHK4008                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 12667} G2K4006 +GNO3               =       G1K4006 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 12668} G2K4006 +MEPERO             =  0.340G1K4006 + 0.330GKO4005 + 0.330GKK4000                 : ARR( 0.565E-13,  -845., 0.0);
+{ 12669} G2K4006 +PERO1              =  0.460G1K4006 + 0.270GKO4005 + 0.270GKK4000                 : ARR( 0.434E-13,  -900., 0.0);
+{ 12670} G2K4006 +PERO2              =  0.400G1K4006 + 0.300GKO4005 + 0.300GKK4000                 : ARR( 0.162E-13, -1400., 0.0);
+{ 12671} G2K4006 +PERO3              =  0.460G1K4006 + 0.270GKO4005 + 0.270GKK4000                 : ARR( 0.488E-13, -1250., 0.0);
+{ 12672} G2K4006 +PERO5              =  0.460G1K4006 + 0.270GKO4005 + 0.270GKK4000                 : ARR( 0.183E-11,   450., 0.0);
+{ 12673} G2K4006 +PERO6              =  0.300G1K4006 + 0.350GKO4005 + 0.350GKK4000                 : ARR( 0.168E-13, -1300., 0.0);
+{ 12674} G2K4006 +PERO9              =  0.650G1K4006 + 0.350GKK4000                                : ARR( 0.100E-10,     0., 0.0);
+{ 12675} G1K4006                     =       G3K2000 +      GDO2000                                : ARR( 0.200E+15,  2983., 0.0);
+{ 12676} GNK4002 +GHO                =       GND400B +      GHO2                                   : ARR( 0.258E-11,     0., 0.0);
+{ 12677} GNK4002 +GHO                =       G2N400X                                               : ARR( 0.181E-12,     0., 0.0);
+{ 12678} GNK4002 +GHO                =       GDK4001 +      GNO2                                   : ARR( 0.153E-12,     0., 0.0);
+{ 12679} GNK4002+HV               =       G3K2001 +      G2N2000                                :  0.100E+01*SUN;
+{ 12680} GNK4002+HV               =       G1K4003 +      GNO2                                   :  0.100E+01*SUN;
+{ 12681} G2N400X +GNO                =       G1N400Y +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 12682} G2N400X +GNO                =       GNN400R                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 12683} G2N400X +GHO2               =       GHN400l                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 12684} G2N400X +GNO3               =       G1N400Y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 12685} G2N400X +MEPERO             =  0.340G1N400Y + 0.330GNK4005 + 0.330GNK400C                 : ARR( 0.565E-13,  -845., 0.0);
+{ 12686} G2N400X +PERO1              =  0.460G1N400Y + 0.270GNK4005 + 0.270GNK400C                 : ARR( 0.434E-13,  -900., 0.0);
+{ 12687} G2N400X +PERO2              =  0.400G1N400Y + 0.300GNK4005 + 0.300GNK400C                 : ARR( 0.162E-13, -1400., 0.0);
+{ 12688} G2N400X +PERO3              =  0.460G1N400Y + 0.270GNK4005 + 0.270GNK400C                 : ARR( 0.488E-13, -1250., 0.0);
+{ 12689} G2N400X +PERO5              =  0.460G1N400Y + 0.270GNK4005 + 0.270GNK400C                 : ARR( 0.183E-11,   450., 0.0);
+{ 12690} G2N400X +PERO6              =  0.300G1N400Y + 0.350GNK4005 + 0.350GNK400C                 : ARR( 0.168E-13, -1300., 0.0);
+{ 12691} G2N400X +PERO9              =  0.650G1N400Y + 0.350GNK400C                                : ARR( 0.100E-10,     0., 0.0);
+{ 12692} G1N400Y                     =       G3K2001 +      GND2000                                : ARR( 0.200E+15,  3067., 0.0);
+{ 12693} GHK4002 +GHO                =       GDK4001 +      GHO                                    : ARR( 0.542E-10,     0., 0.0);
+{ 12694} GHK4002 +GHO                =       G2K4003                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 12695} GHK4002+HV               =       G3K2001 +      G2H2000                                :  0.100E+01*SUN;
+{ 12696} GHK4002+HV               =       G1K4003 +      GHO                                    :  0.100E+01*SUN;
+{ 12697} GHN400A +GHO                =       GHN400G +      GHO2                                   : ARR( 0.422E-11,     0., 0.0);
+{ 12698} GHN400A +GHO                =       GND4006 +      GHO                                    : ARR( 0.338E-11,     0., 0.0);
+{ 12699} GHN400A +GHO                =       G2N4008                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 12700} GHN400A+HV               =       G1H4006 +      GNO2                                   :  0.100E+01*SUN;
+{ 12701} GHN400A+HV               =       G1N4008 +      GHO                                    :  0.100E+01*SUN;
+{ 12702} GHH4004 +GHO                =       GHH400B +      GHO2                                   : ARR( 0.411E-11,     0., 0.0);
+{ 12703} GHH4004 +GHO                =       GHK4003 +      GHO                                    : ARR( 0.421E-10,     0., 0.0);
+{ 12704} GHH4004 +GHO                =       GHD4006 +      GHO                                    : ARR( 0.164E-10,     0., 0.0);
+{ 12705} GHH4004 +GHO                =       G2H4006                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 12706} GHH4004 +GHO                =       G2H4008                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 12707} GHH4004+HV               =       G1H4006 +      GHO                                    :  0.100E+01*SUN;
+{ 12708} GHH4004+HV               =       G1H4008 +      GHO                                    :  0.100E+01*SUN;
+{ 12709} GHK4003 +GHO                =       GHD4004 +      GHO2                                   : ARR( 0.132E-10,     0., 0.0);
+{ 12710} GHK4003 +GHO                =       GDK4005 +      GHO                                    : ARR( 0.102E-10,     0., 0.0);
+{ 12711} GHK4003 +GHO                =       G2K4007                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 12712} GHK4003+HV               =       G3K3001 +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 12713} GHK4003+HV               =       G1K4007 +      GHO                                    :  0.100E+01*SUN;
+{ 12714} G2K4007 +GNO                =       G1K4007 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 12715} G2K4007 +GNO                =       GNK4004                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 12716} G2K4007 +GHO2               =       GHK4003                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 12717} G2K4007 +GNO3               =       G1K4007 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 12718} G2K4007 +MEPERO             =  0.480G1K4007 + 0.260GKO4002 + 0.260GDK4005                 : ARR( 0.164E-12,  -795., 0.0);
+{ 12719} G2K4007 +PERO1              =  0.600G1K4007 + 0.200GKO4002 + 0.200GDK4005                 : ARR( 0.126E-12,  -850., 0.0);
+{ 12720} G2K4007 +PERO2              =  0.560G1K4007 + 0.220GKO4002 + 0.220GDK4005                 : ARR( 0.471E-13, -1350., 0.0);
+{ 12721} G2K4007 +PERO3              =  0.600G1K4007 + 0.200GKO4002 + 0.200GDK4005                 : ARR( 0.142E-12, -1200., 0.0);
+{ 12722} G2K4007 +PERO5              =  0.600G1K4007 + 0.200GKO4002 + 0.200GDK4005                 : ARR( 0.533E-11,   500., 0.0);
+{ 12723} G2K4007 +PERO6              =  0.460G1K4007 + 0.270GKO4002 + 0.270GDK4005                 : ARR( 0.488E-13, -1250., 0.0);
+{ 12724} G2K4007 +PERO9              =  0.800G1K4007 + 0.200GDK4005                                : ARR( 0.100E-10,     0., 0.0);
+{ 12725} G1K4007                     =       G3K3001 +      GCH2O                                  : ARR( 0.200E+15,  3576., 0.0);
+{ 12726} GKO4002 +GHO                =       GDK4001 +      GHO2                                   : ARR( 0.130E-10,     0., 0.0);
+{ 12727} GKO4002 +GHO                =       G2K4008                                               : ARR( 0.877E-12,     0., 0.0);
+{ 12728} GKO4002 +GHO                =       GDK4005 +      GHO2                                   : ARR( 0.249E-11,     0., 0.0);
+{ 12729} GKO4002+HV               =       G3K3001 +      GCH2O   +      GHO2                    :  0.100E+01*SUN;
+{ 12730} G2K4008 +GNO                =       G1K4008 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 12731} G2K4008 +GNO                =       GNK4008                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 12732} G2K4008 +GHO2               =       GHK4009                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 12733} G2K4008 +GNO3               =       G1K4008 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 12734} G2K4008 +MEPERO             =  0.340G1K4008 + 0.330GKO4004 + 0.330GKK4001                 : ARR( 0.565E-13,  -845., 0.0);
+{ 12735} G2K4008 +PERO1              =  0.460G1K4008 + 0.270GKO4004 + 0.270GKK4001                 : ARR( 0.434E-13,  -900., 0.0);
+{ 12736} G2K4008 +PERO2              =  0.400G1K4008 + 0.300GKO4004 + 0.300GKK4001                 : ARR( 0.162E-13, -1400., 0.0);
+{ 12737} G2K4008 +PERO3              =  0.460G1K4008 + 0.270GKO4004 + 0.270GKK4001                 : ARR( 0.488E-13, -1250., 0.0);
+{ 12738} G2K4008 +PERO5              =  0.460G1K4008 + 0.270GKO4004 + 0.270GKK4001                 : ARR( 0.183E-11,   450., 0.0);
+{ 12739} G2K4008 +PERO6              =  0.300G1K4008 + 0.350GKO4004 + 0.350GKK4001                 : ARR( 0.168E-13, -1300., 0.0);
+{ 12740} G2K4008 +PERO9              =  0.650G1K4008 + 0.350GKK4001                                : ARR( 0.100E-10,     0., 0.0);
+{ 12741} G1K4008                     =       G3K2001 +      GDO2000                                : ARR( 0.200E+15,  3069., 0.0);
+{ 12742} GHH500L +GHO                =       GHN501F +      GHO                                    : ARR( 0.415E-10,     0., 0.0);
+{ 12743} GHH500L +GHO                =       GHN501q +      GHO                                    : ARR( 0.162E-10,     0., 0.0);
+{ 12744} GHH500L +GHO                =       G2H500N                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 12745} GHH500L +GHO                =       G2H501b                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 12746} GHH500L+HV               =       G1H502l +      GNO2                                   :  0.100E+01*SUN;
+{ 12747} GHH500L+HV               =       G1H500R +      GHO                                    :  0.100E+01*SUN;
+{ 12748} GHH500L+HV               =       G1H501B +      GHO                                    :  0.100E+01*SUN;
+{ 12749} G2H501b +GNO                =       G1H501B +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 12750} G2H501b +GNO                =       GHN500U                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 12751} G2H501b +GHO2               =       GHH500L                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 12752} G2H501b +GNO3               =       G1H501B +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 12753} G2H501b +MEPERO             =  0.480G1H501B + 0.260GHN500G + 0.260GHN501q                 : ARR( 0.164E-12,  -795., 0.0);
+{ 12754} G2H501b +PERO1              =  0.600G1H501B + 0.200GHN500G + 0.200GHN501q                 : ARR( 0.126E-12,  -850., 0.0);
+{ 12755} G2H501b +PERO2              =  0.560G1H501B + 0.220GHN500G + 0.220GHN501q                 : ARR( 0.471E-13, -1350., 0.0);
+{ 12756} G2H501b +PERO3              =  0.600G1H501B + 0.200GHN500G + 0.200GHN501q                 : ARR( 0.142E-12, -1200., 0.0);
+{ 12757} G2H501b +PERO5              =  0.600G1H501B + 0.200GHN500G + 0.200GHN501q                 : ARR( 0.533E-11,   500., 0.0);
+{ 12758} G2H501b +PERO6              =  0.460G1H501B + 0.270GHN500G + 0.270GHN501q                 : ARR( 0.488E-13, -1250., 0.0);
+{ 12759} G2H501b +PERO9              =  0.800G1H501B + 0.200GHN501q                                : ARR( 0.100E-10,     0., 0.0);
+{ 12760} G1H502l                     =       GHD5005 +      GHO                                    : ARR( 0.160E+12,  2186., 0.0);
+{ 12761} GHN501N +GHO                =       GHN501F +      GHO2                                   : ARR( 0.105E-10,     0., 0.0);
+{ 12762} GHN501N +GHO                =       GND500S +      GHO                                    : ARR( 0.164E-10,     0., 0.0);
+{ 12763} GHN501N +GHO                =       G2N503B                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 12764} GHN501N+HV               =       G1H502m +      GNO2                                   :  0.100E+01*SUN;
+{ 12765} GHN501N+HV               =       G1N5028 +      GHO                                    :  0.100E+01*SUN;
+{ 12766} G2N503B +GNO                =       G1N5028 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 12767} G2N503B +GNO                =       GNN500O                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 12768} G2N503B +GHO2               =       GHN501N                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 12769} G2N503B +GNO3               =       G1N5028 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 12770} G2N503B +MEPERO             =  0.480G1N5028 + 0.260GNO500F + 0.260GND500S                 : ARR( 0.164E-12,  -795., 0.0);
+{ 12771} G2N503B +PERO1              =  0.600G1N5028 + 0.200GNO500F + 0.200GND500S                 : ARR( 0.126E-12,  -850., 0.0);
+{ 12772} G2N503B +PERO2              =  0.560G1N5028 + 0.220GNO500F + 0.220GND500S                 : ARR( 0.471E-13, -1350., 0.0);
+{ 12773} G2N503B +PERO3              =  0.600G1N5028 + 0.200GNO500F + 0.200GND500S                 : ARR( 0.142E-12, -1200., 0.0);
+{ 12774} G2N503B +PERO5              =  0.600G1N5028 + 0.200GNO500F + 0.200GND500S                 : ARR( 0.533E-11,   500., 0.0);
+{ 12775} G2N503B +PERO6              =  0.460G1N5028 + 0.270GNO500F + 0.270GND500S                 : ARR( 0.488E-13, -1250., 0.0);
+{ 12776} G2N503B +PERO9              =  0.800G1N5028 + 0.200GND500S                                : ARR( 0.100E-10,     0., 0.0);
+{ 12777} G1H502m                     =       GDO5003 +      GHO                                    : ARR( 0.160E+12,  2186., 0.0);
+{ 12778} GHN501O +GHO                =       GHN502C +      GHO2                                   : ARR( 0.105E-10,     0., 0.0);
+{ 12779} GHN501O +GHO                =       GNN502N +      GHO                                    : ARR( 0.163E-10,     0., 0.0);
+{ 12780} GHN501O +GHO                =       G2N503C                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 12781} GHN501O+HV               =       G1H500S +      GNO2                                   :  0.100E+01*SUN;
+{ 12782} GHN501O+HV               =       G1H502n +      GNO2                                   :  0.100E+01*SUN;
+{ 12783} GHN501O+HV               =       G1N502C +      GHO                                    :  0.100E+01*SUN;
+{ 12784} G2N503C +GNO                =       G1N502C +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 12785} G2N503C +GNO                =       GNN500Q                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 12786} G2N503C +GHO2               =       GHN501O                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 12787} G2N503C +GNO3               =       G1N502C +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 12788} G2N503C +MEPERO             =  0.480G1N502C + 0.260GNN500k + 0.260GNN502N                 : ARR( 0.164E-12,  -795., 0.0);
+{ 12789} G2N503C +PERO1              =  0.600G1N502C + 0.200GNN500k + 0.200GNN502N                 : ARR( 0.126E-12,  -850., 0.0);
+{ 12790} G2N503C +PERO2              =  0.560G1N502C + 0.220GNN500k + 0.220GNN502N                 : ARR( 0.471E-13, -1350., 0.0);
+{ 12791} G2N503C +PERO3              =  0.600G1N502C + 0.200GNN500k + 0.200GNN502N                 : ARR( 0.142E-12, -1200., 0.0);
+{ 12792} G2N503C +PERO5              =  0.600G1N502C + 0.200GNN500k + 0.200GNN502N                 : ARR( 0.533E-11,   500., 0.0);
+{ 12793} G2N503C +PERO6              =  0.460G1N502C + 0.270GNN500k + 0.270GNN502N                 : ARR( 0.488E-13, -1250., 0.0);
+{ 12794} G2N503C +PERO9              =  0.800G1N502C + 0.200GNN502N                                : ARR( 0.100E-10,     0., 0.0);
+{ 12795} G1H502n                     =       GND500D +      GHO                                    : ARR( 0.160E+12,  2186., 0.0);
+{ 12796} GHH500M +GHO                =       GHN5041 +      GHO                                    : ARR( 0.163E-10,     0., 0.0);
+{ 12797} GHH500M +GHO                =       GHH501Q +      GHO2                                   : ARR( 0.105E-10,     0., 0.0);
+{ 12798} GHH500M +GHO                =       GHN501Q +      GHO                                    : ARR( 0.326E-11,     0., 0.0);
+{ 12799} GHH500M +GHO                =       G2H501c                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 12800} GHH500M +GHO                =       G2H500O                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 12801} GHH500M+HV               =       G1H501C +      GHO                                    :  0.100E+01*SUN;
+{ 12802} GHH500M+HV               =       G1H502o +      GNO2                                   :  0.100E+01*SUN;
+{ 12803} GHH500M+HV               =       G1H500S +      GHO                                    :  0.100E+01*SUN;
+{ 12804} G2H501c +GNO                =       G1H501C +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 12805} G2H501c +GNO                =       GHN500W                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 12806} G2H501c +GHO2               =       GHH500M                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 12807} G2H501c +GNO3               =       G1H501C +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 12808} G2H501c +MEPERO             =  0.480G1H501C + 0.260GHN501B + 0.260GHN5041                 : ARR( 0.164E-12,  -795., 0.0);
+{ 12809} G2H501c +PERO1              =  0.600G1H501C + 0.200GHN501B + 0.200GHN5041                 : ARR( 0.126E-12,  -850., 0.0);
+{ 12810} G2H501c +PERO2              =  0.560G1H501C + 0.220GHN501B + 0.220GHN5041                 : ARR( 0.471E-13, -1350., 0.0);
+{ 12811} G2H501c +PERO3              =  0.600G1H501C + 0.200GHN501B + 0.200GHN5041                 : ARR( 0.142E-12, -1200., 0.0);
+{ 12812} G2H501c +PERO5              =  0.600G1H501C + 0.200GHN501B + 0.200GHN5041                 : ARR( 0.533E-11,   500., 0.0);
+{ 12813} G2H501c +PERO6              =  0.460G1H501C + 0.270GHN501B + 0.270GHN5041                 : ARR( 0.488E-13, -1250., 0.0);
+{ 12814} G2H501c +PERO9              =  0.800G1H501C + 0.200GHN5041                                : ARR( 0.100E-10,     0., 0.0);
+{ 12815} G1H502o                     =       GHD5007 +      GHO                                    : ARR( 0.160E+12,  2186., 0.0);
+{ 12816} GHN501P +GHO                =       GHN501H +      GHO2                                   : ARR( 0.108E-10,     0., 0.0);
+{ 12817} GHN501P +GHO                =       GND500l +      GHO                                    : ARR( 0.169E-10,     0., 0.0);
+{ 12818} GHN501P +GHO                =       G2N503D                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 12819} GHN501P+HV               =       G1H502p +      GNO2                                   :  0.100E+01*SUN;
+{ 12820} GHN501P+HV               =       G1N502E +      GHO                                    :  0.100E+01*SUN;
+{ 12821} G2N503D +GNO                =       G1N502E +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 12822} G2N503D +GNO                =       GNN500R                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 12823} G2N503D +GHO2               =       GHN501P                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 12824} G2N503D +GNO3               =       G1N502E +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 12825} G2N503D +MEPERO             =  0.480G1N502E + 0.260GNO500M + 0.260GND500l                 : ARR( 0.164E-12,  -795., 0.0);
+{ 12826} G2N503D +PERO1              =  0.600G1N502E + 0.200GNO500M + 0.200GND500l                 : ARR( 0.126E-12,  -850., 0.0);
+{ 12827} G2N503D +PERO2              =  0.560G1N502E + 0.220GNO500M + 0.220GND500l                 : ARR( 0.471E-13, -1350., 0.0);
+{ 12828} G2N503D +PERO3              =  0.600G1N502E + 0.200GNO500M + 0.200GND500l                 : ARR( 0.142E-12, -1200., 0.0);
+{ 12829} G2N503D +PERO5              =  0.600G1N502E + 0.200GNO500M + 0.200GND500l                 : ARR( 0.533E-11,   500., 0.0);
+{ 12830} G2N503D +PERO6              =  0.460G1N502E + 0.270GNO500M + 0.270GND500l                 : ARR( 0.488E-13, -1250., 0.0);
+{ 12831} G2N503D +PERO9              =  0.800G1N502E + 0.200GND500l                                : ARR( 0.100E-10,     0., 0.0);
+{ 12832} G1H502p                     =       GDO5004 +      GHO                                    : ARR( 0.160E+12,  2186., 0.0);
+{ 12833} G1H502p                     =       GCH2O   +      GHD4003 +      GHO2                    : ARR( 0.200E+15,  5041., 0.0);
+{ 12834} GHN501Q +GHO                =       GND500m +      GHO                                    : ARR( 0.163E-10,     0., 0.0);
+{ 12835} GHN501Q +GHO                =       GHN5048 +      GHO2                                   : ARR( 0.105E-10,     0., 0.0);
+{ 12836} GHN501Q +GHO                =       G3H500J                                               : ARR( 0.422E-11,     0., 0.0);
+{ 12837} GHN501Q +GHO                =       G2N503E                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 12838} GHN501Q +GNO3               =       G3H500J +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 12839} GHN501Q+HV               =       G1N502G +      GHO                                    :  0.100E+01*SUN;
+{ 12840} GHN501Q+HV               =       G1H502q +      GNO2                                   :  0.100E+01*SUN;
+{ 12841} GHN501Q+HV               =       GHD4003 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 12842} GHN501Q+HV               =       GHK3000 +      GND2000                                :  0.100E+01*SUN;
+{ 12843} G3H500J +GHO2               =  0.800GGH500e + 0.200GAH500j + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 12844} G3H500J +GNO                =       GHD4003 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 12845} G3H500J +GNO2               =       GPH500j                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 12846} G3H500J +GNO3               =       GHD4003 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 12847} G3H500J +MEPERO             =  0.685GHD4003 + 0.315GAH500j + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 12848} G3H500J +PERO1              =  0.800GHD4003 + 0.200GAH500j + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 12849} G3H500J +PERO2              =  0.750GHD4003 + 0.250GAH500j + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 12850} G3H500J +PERO3              =  0.800GHD4003 + 0.200GAH500j + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 12851} G3H500J +PERO5              =  0.650GHD4003 + 0.350GAH500j + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 12852} G3H500J +PERO6              =  0.650GHD4003 + 0.350GAH500j + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 12853} G3H500J +PERO9              =       GHD4003 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 12854} G2N503E +GNO                =       G1N502G +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 12855} G2N503E +GNO                =       GNN500S                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 12856} G2N503E +GHO2               =       GHN501Q                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 12857} G2N503E +GNO3               =       G1N502G +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 12858} G2N503E +MEPERO             =  0.480G1N502G + 0.260GND500B + 0.260GND500m                 : ARR( 0.164E-12,  -795., 0.0);
+{ 12859} G2N503E +PERO1              =  0.600G1N502G + 0.200GND500B + 0.200GND500m                 : ARR( 0.126E-12,  -850., 0.0);
+{ 12860} G2N503E +PERO2              =  0.560G1N502G + 0.220GND500B + 0.220GND500m                 : ARR( 0.471E-13, -1350., 0.0);
+{ 12861} G2N503E +PERO3              =  0.600G1N502G + 0.200GND500B + 0.200GND500m                 : ARR( 0.142E-12, -1200., 0.0);
+{ 12862} G2N503E +PERO5              =  0.600G1N502G + 0.200GND500B + 0.200GND500m                 : ARR( 0.533E-11,   500., 0.0);
+{ 12863} G2N503E +PERO6              =  0.460G1N502G + 0.270GND500B + 0.270GND500m                 : ARR( 0.488E-13, -1250., 0.0);
+{ 12864} G2N503E +PERO9              =  0.800G1N502G + 0.200GND500m                                : ARR( 0.100E-10,     0., 0.0);
+{ 12865} G1H502q                     =       GDD5001 +      GHO                                    : ARR( 0.160E+12,  2186., 0.0);
+{ 12866} G1H502q                     =       GHD4003 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5437., 0.0);
+{ 12867} GNN4006 +GHO                =       GNN4001 +      GHO2                                   : ARR( 0.418E-11,     0., 0.0);
+{ 12868} GNN4006 +GHO                =       G2N400Y                                               : ARR( 0.294E-12,     0., 0.0);
+{ 12869} GNN4006+HV               =       G1N400Z +      GNO2                                   :  0.100E+01*SUN;
+{ 12870} GNN4006+HV               =       G1N4008 +      GNO2                                   :  0.100E+01*SUN;
+{ 12871} G2N400Y +GNO                =       G1N400a +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 12872} G2N400Y +GNO                =       GNN400S                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 12873} G2N400Y +GHO2               =       GHN400m                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 12874} G2N400Y +GNO3               =       G1N400a +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 12875} G2N400Y +MEPERO             =  0.340G1N400a + 0.330GNN400K + 0.330GNN400R                 : ARR( 0.565E-13,  -845., 0.0);
+{ 12876} G2N400Y +PERO1              =  0.460G1N400a + 0.270GNN400K + 0.270GNN400R                 : ARR( 0.434E-13,  -900., 0.0);
+{ 12877} G2N400Y +PERO2              =  0.400G1N400a + 0.300GNN400K + 0.300GNN400R                 : ARR( 0.162E-13, -1400., 0.0);
+{ 12878} G2N400Y +PERO3              =  0.460G1N400a + 0.270GNN400K + 0.270GNN400R                 : ARR( 0.488E-13, -1250., 0.0);
+{ 12879} G2N400Y +PERO5              =  0.460G1N400a + 0.270GNN400K + 0.270GNN400R                 : ARR( 0.183E-11,   450., 0.0);
+{ 12880} G2N400Y +PERO6              =  0.300G1N400a + 0.350GNN400K + 0.350GNN400R                 : ARR( 0.168E-13, -1300., 0.0);
+{ 12881} G2N400Y +PERO9              =  0.650G1N400a + 0.350GNN400R                                : ARR( 0.100E-10,     0., 0.0);
+{ 12882} G1N400Z                     =       G2O2000 +      GND2000                                : ARR( 0.200E+15,  7131., 0.0);
+{ 12883} G1N400a                     =       GCH2O   +      GNN3005 +      GHO2                    : ARR( 0.200E+15,  5296., 0.0);
+{ 12884} G1N400a                     =       GDO2000 +      GND2000 +      GNO2                    : ARR( 0.200E+15,  6382., 0.0);
+{ 12885} GNN500s +GHO                =       G3N500M                                               : ARR( 0.441E-11,     0., 0.0);
+{ 12886} GNN500s +GNO3               =       G3N500M +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 12887} GNN500s+HV               =       G1N503O +      GNO2                                   :  0.100E+01*SUN;
+{ 12888} GNN500s+HV               =       G1N503U +      GNO2                                   :  0.100E+01*SUN;
+{ 12889} GNN500s+HV               =       GND4000 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 12890} GNN500s+HV               =       G2K3000 +      GND2000 +      GNO2                    :  0.100E+01*SUN;
+{ 12891} G3N500M +GHO2               =  0.800GGN500Y + 0.200GAN500g + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 12892} G3N500M +GNO                =       GND4000 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 12893} G3N500M +GNO2               =       GPN500i                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 12894} G3N500M +GNO3               =       GND4000 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 12895} G3N500M +MEPERO             =  0.685GND4000 + 0.315GAN500g + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 12896} G3N500M +PERO1              =  0.800GND4000 + 0.200GAN500g + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 12897} G3N500M +PERO2              =  0.750GND4000 + 0.250GAN500g + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 12898} G3N500M +PERO3              =  0.800GND4000 + 0.200GAN500g + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 12899} G3N500M +PERO5              =  0.650GND4000 + 0.350GAN500g + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 12900} G3N500M +PERO6              =  0.650GND4000 + 0.350GAN500g + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 12901} G3N500M +PERO9              =       GND4000 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 12902} G1N503U                     =       GND4000 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5437., 0.0);
+{ 12903} GNN500t +GHO                =       G2N503F                                               : ARR( 0.700E-13,     0., 0.0);
+{ 12904} GNN500t +GHO                =       GNN500w +      GNO2                                   : ARR( 0.400E-13,     0., 0.0);
+{ 12905} GNN500t+HV               =       G1N5019 +      GNO2                                   :  0.200E+01*SUN;
+{ 12906} GNN500t+HV               =       G1N5014 +      GNO2                                   :  0.100E+01*SUN;
+{ 12907} G2N503F +GNO                =       G1N503W +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 12908} G2N503F +GNO                =       GNN501W                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 12909} G2N503F +GHO2               =       GHN504F                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 12910} G2N503F +GNO3               =       G1N503W +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 12911} G2N503F +MEPERO             =  0.480G1N503W + 0.260GNN5014 + 0.260GNN502T                 : ARR( 0.164E-12,  -795., 0.0);
+{ 12912} G2N503F +PERO1              =  0.600G1N503W + 0.200GNN5014 + 0.200GNN502T                 : ARR( 0.126E-12,  -850., 0.0);
+{ 12913} G2N503F +PERO2              =  0.560G1N503W + 0.220GNN5014 + 0.220GNN502T                 : ARR( 0.471E-13, -1350., 0.0);
+{ 12914} G2N503F +PERO3              =  0.600G1N503W + 0.200GNN5014 + 0.200GNN502T                 : ARR( 0.142E-12, -1200., 0.0);
+{ 12915} G2N503F +PERO5              =  0.600G1N503W + 0.200GNN5014 + 0.200GNN502T                 : ARR( 0.533E-11,   500., 0.0);
+{ 12916} G2N503F +PERO6              =  0.460G1N503W + 0.270GNN5014 + 0.270GNN502T                 : ARR( 0.488E-13, -1250., 0.0);
+{ 12917} G2N503F +PERO9              =  0.800G1N503W + 0.200GNN502T                                : ARR( 0.100E-10,     0., 0.0);
+{ 12918} G1N503W +OXYGEN             =       GNN502T +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 12919} G1N503W                     =       GNN5015 +      GNO2                                   : ARR( 0.800E+11,  4836., 0.0);
+{ 12920} G1N503W                     =       GNN4007 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7042., 0.0);
+{ 12921} GHN501R +GHO                =       GNN500v +      GHO                                    : ARR( 0.173E-11,     0., 0.0);
+{ 12922} GHN501R +GHO                =       G2N5013                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 12923} GHN501R+HV               =       G1H500X +      GNO2                                   :  0.200E+01*SUN;
+{ 12924} GHN501R+HV               =       G1N5014 +      GHO                                    :  0.100E+01*SUN;
+{ 12925} GNN500u +GHO                =       G2N503G                                               : ARR( 0.670E-13,     0., 0.0);
+{ 12926} GNN500u +GHO                =       GNK500Y +      GNO2                                   : ARR( 0.191E-12,     0., 0.0);
+{ 12927} GNN500u +GHO                =       GNN500v +      GHO2                                   : ARR( 0.412E-12,     0., 0.0);
+{ 12928} GNN500u +GHO                =       G1N5014                                               : ARR( 0.210E-17,    85., 2.0);
+{ 12929} GNN500u+HV               =       G1N501D +      GNO2                                   :  0.200E+01*SUN;
+{ 12930} G2N503G +GNO                =       G1N503X +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 12931} G2N503G +GNO                =       GNN501e                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 12932} G2N503G +GHO2               =       GHN504G                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 12933} G2N503G +GNO3               =       G1N503X +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 12934} G2N503G +MEPERO             =  0.480G1N503X + 0.260GNN502I + 0.260GNN502U                 : ARR( 0.164E-12,  -795., 0.0);
+{ 12935} G2N503G +PERO1              =  0.600G1N503X + 0.200GNN502I + 0.200GNN502U                 : ARR( 0.126E-12,  -850., 0.0);
+{ 12936} G2N503G +PERO2              =  0.560G1N503X + 0.220GNN502I + 0.220GNN502U                 : ARR( 0.471E-13, -1350., 0.0);
+{ 12937} G2N503G +PERO3              =  0.600G1N503X + 0.200GNN502I + 0.200GNN502U                 : ARR( 0.142E-12, -1200., 0.0);
+{ 12938} G2N503G +PERO5              =  0.600G1N503X + 0.200GNN502I + 0.200GNN502U                 : ARR( 0.533E-11,   500., 0.0);
+{ 12939} G2N503G +PERO6              =  0.460G1N503X + 0.270GNN502I + 0.270GNN502U                 : ARR( 0.488E-13, -1250., 0.0);
+{ 12940} G2N503G +PERO9              =  0.800G1N503X + 0.200GNN502U                                : ARR( 0.100E-10,     0., 0.0);
+{ 12941} G1N503X +OXYGEN             =       GNN502U +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 12942} G1N503X                     =       GNK500b +      GNO2                                   : ARR( 0.800E+11,  4116., 0.0);
+{ 12943} G1N503X                     =       GND400H +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7042., 0.0);
+{ 12944} GNN500v +GHO                =       G2N503H                                               : ARR( 0.670E-13,     0., 0.0);
+{ 12945} GNN500v +GHO                =       GNK500Z +      GNO2                                   : ARR( 0.117E-12,     0., 0.0);
+{ 12946} GNN500v+HV               =       G1N501F +      GNO2                                   :  0.200E+01*SUN;
+{ 12947} GNN500v+HV               =       G3N3001 +      GD02000 +      GNO2                    :  0.100E+01*SUN;
+{ 12948} G2N503H +GNO                =       G1N503Y +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 12949} G2N503H +GNO                =       GNN501i                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 12950} G2N503H +GHO2               =       GHN504H                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 12951} G2N503H +GNO3               =       G1N503Y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 12952} G2N503H +MEPERO             =  0.480G1N503Y + 0.260GNN501A + 0.260GNN502W                 : ARR( 0.164E-12,  -795., 0.0);
+{ 12953} G2N503H +PERO1              =  0.600G1N503Y + 0.200GNN501A + 0.200GNN502W                 : ARR( 0.126E-12,  -850., 0.0);
+{ 12954} G2N503H +PERO2              =  0.560G1N503Y + 0.220GNN501A + 0.220GNN502W                 : ARR( 0.471E-13, -1350., 0.0);
+{ 12955} G2N503H +PERO3              =  0.600G1N503Y + 0.200GNN501A + 0.200GNN502W                 : ARR( 0.142E-12, -1200., 0.0);
+{ 12956} G2N503H +PERO5              =  0.600G1N503Y + 0.200GNN501A + 0.200GNN502W                 : ARR( 0.533E-11,   500., 0.0);
+{ 12957} G2N503H +PERO6              =  0.460G1N503Y + 0.270GNN501A + 0.270GNN502W                 : ARR( 0.488E-13, -1250., 0.0);
+{ 12958} G2N503H +PERO9              =  0.800G1N503Y + 0.200GNN502W                                : ARR( 0.100E-10,     0., 0.0);
+{ 12959} G1N503Y +OXYGEN             =       GNN502W +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 12960} G1N503Y                     =       GND400I +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7323., 0.0);
+{ 12961} GHH500N +GHO                =       GHH500T +      GHO2                                   : ARR( 0.951E-11,     0., 0.0);
+{ 12962} GHH500N +GHO                =       GHK5005 +      GHO                                    : ARR( 0.468E-10,     0., 0.0);
+{ 12963} GHH500N +GHO                =       GHD5005 +      GHO                                    : ARR( 0.183E-10,     0., 0.0);
+{ 12964} GHH500N+HV               =       G1H500Y +      GHO                                    :  0.100E+01*SUN;
+{ 12965} GHH500N+HV               =       G1H500U +      GHO                                    :  0.100E+01*SUN;
+{ 12966} GND500K +GHO                =       G3N4002 +      GCO                                    : ARR( 0.132E-10,     0., 0.0);
+{ 12967} GND500K +GNO3               =       G3N4002 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 12968} GND500K+HV               =       G1D500W +      GNO2                                   :  0.100E+01*SUN;
+{ 12969} GND500K+HV               =       G3N4002 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 12970} GND500K+HV               =       GND4000 +      GCO                                    :  0.100E+01*SUN;
+{ 12971} GND500K+HV               =       GN03001 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 12972} GNN500w +GHO                =       G2N503I                                               : ARR( 0.102E-12,     0., 0.0);
+{ 12973} GNN500w +GHO                =       GNK500Z +      GNO2                                   : ARR( 0.144E-13,     0., 0.0);
+{ 12974} GNN500w +GHO                =       GNK500g +      GNO2                                   : ARR( 0.191E-13,     0., 0.0);
+{ 12975} GNN500w +GHO                =       G2N503J                                               : ARR( 0.335E-13,     0., 0.0);
+{ 12976} GNN500w+HV               =       G3K2000 +      GND3001 +      GNO2                    :  0.100E+01*SUN;
+{ 12977} GNN500w+HV               =       GNK3000 +      G2D2000 +      GNO2                    :  0.100E+01*SUN;
+{ 12978} GNN500w+HV               =       G1N5016 +      GNO2                                   :  0.100E+01*SUN;
+{ 12979} GNN500w+HV               =       G1N501P +      GNO2                                   :  0.100E+01*SUN;
+{ 12980} G2N503I +GNO                =       G1N503Z +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 12981} G2N503I +GNO                =       GNN501Y                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 12982} G2N503I +GHO2               =       GHN504I                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 12983} G2N503I +GNO3               =       G1N503Z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 12984} G2N503I +MEPERO             =  0.480G1N503Z + 0.260GNN5018 + 0.260GNN502X                 : ARR( 0.164E-12,  -795., 0.0);
+{ 12985} G2N503I +PERO1              =  0.600G1N503Z + 0.200GNN5018 + 0.200GNN502X                 : ARR( 0.126E-12,  -850., 0.0);
+{ 12986} G2N503I +PERO2              =  0.560G1N503Z + 0.220GNN5018 + 0.220GNN502X                 : ARR( 0.471E-13, -1350., 0.0);
+{ 12987} G2N503I +PERO3              =  0.600G1N503Z + 0.200GNN5018 + 0.200GNN502X                 : ARR( 0.142E-12, -1200., 0.0);
+{ 12988} G2N503I +PERO5              =  0.600G1N503Z + 0.200GNN5018 + 0.200GNN502X                 : ARR( 0.533E-11,   500., 0.0);
+{ 12989} G2N503I +PERO6              =  0.460G1N503Z + 0.270GNN5018 + 0.270GNN502X                 : ARR( 0.488E-13, -1250., 0.0);
+{ 12990} G2N503I +PERO9              =  0.800G1N503Z + 0.200GNN502X                                : ARR( 0.100E-10,     0., 0.0);
+{ 12991} G2N503J +GNO                =       G1N503a +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 12992} G2N503J +GNO                =       GNN501v                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 12993} G2N503J +GHO2               =       GHN504J                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 12994} G2N503J +GNO3               =       G1N503a +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 12995} G2N503J +MEPERO             =  0.480G1N503a + 0.260GNN5015 + 0.260GNN502Y                 : ARR( 0.164E-12,  -795., 0.0);
+{ 12996} G2N503J +PERO1              =  0.600G1N503a + 0.200GNN5015 + 0.200GNN502Y                 : ARR( 0.126E-12,  -850., 0.0);
+{ 12997} G2N503J +PERO2              =  0.560G1N503a + 0.220GNN5015 + 0.220GNN502Y                 : ARR( 0.471E-13, -1350., 0.0);
+{ 12998} G2N503J +PERO3              =  0.600G1N503a + 0.200GNN5015 + 0.200GNN502Y                 : ARR( 0.142E-12, -1200., 0.0);
+{ 12999} G2N503J +PERO5              =  0.600G1N503a + 0.200GNN5015 + 0.200GNN502Y                 : ARR( 0.533E-11,   500., 0.0);
+{ 13000} G2N503J +PERO6              =  0.460G1N503a + 0.270GNN5015 + 0.270GNN502Y                 : ARR( 0.488E-13, -1250., 0.0);
+{ 13001} G2N503J +PERO9              =  0.800G1N503a + 0.200GNN502Y                                : ARR( 0.100E-10,     0., 0.0);
+{ 13002} G1N503Z                     =       G3N4009 +      GCH2O                                  : ARR( 0.200E+15,  3640., 0.0);
+{ 13003} G1N503a +OXYGEN             =       GNN502Y +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 13004} G1N503a                     =       GND4008 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7175., 0.0);
+{ 13005} G3N4009 +GHO2               =  0.800GGN400F + 0.200GAN400F + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 13006} G3N4009 +GNO                =       GND3001 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 13007} G3N4009 +GNO2               =       GPN400F                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 13008} G3N4009 +GNO3               =       GND3001 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 13009} G3N4009 +MEPERO             =  0.685GND3001 + 0.315GAN400F + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13010} G3N4009 +PERO1              =  0.800GND3001 + 0.200GAN400F + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13011} G3N4009 +PERO2              =  0.750GND3001 + 0.250GAN400F + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13012} G3N4009 +PERO3              =  0.800GND3001 + 0.200GAN400F + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13013} G3N4009 +PERO5              =  0.650GND3001 + 0.350GAN400F + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13014} G3N4009 +PERO6              =  0.650GND3001 + 0.350GAN400F + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13015} G3N4009 +PERO9              =       GND3001 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 13016} GHN501S +GHO                =       GNK500Z +      GHO                                    : ARR( 0.528E-11,     0., 0.0);
+{ 13017} GHN501S +GHO                =       G2N5015                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 13018} GHN501S+HV               =       G1H500a +      GNO2                                   :  0.100E+01*SUN;
+{ 13019} GHN501S+HV               =       G1N5016 +      GHO                                    :  0.100E+01*SUN;
+{ 13020} GHN501S+HV               =       G3H4008 +      GCH3O2                                 :  0.100E+01*SUN;
+{ 13021} G3H4008 +GHO2               =  0.800GGH400B + 0.200GAH400B + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 13022} G3H4008 +GNO                =       GND3001 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 13023} G3H4008 +GNO2               =       GPH400B                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 13024} G3H4008 +GNO3               =       GND3001 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 13025} G3H4008 +MEPERO             =  0.685GND3001 + 0.315GAH400B + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13026} G3H4008 +PERO1              =  0.800GND3001 + 0.200GAH400B + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13027} G3H4008 +PERO2              =  0.750GND3001 + 0.250GAH400B + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13028} G3H4008 +PERO3              =  0.800GND3001 + 0.200GAH400B + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13029} G3H4008 +PERO5              =  0.650GND3001 + 0.350GAH400B + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13030} G3H4008 +PERO6              =  0.650GND3001 + 0.350GAH400B + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13031} G3H4008 +PERO9              =       GND3001 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 13032} GNK500Y +GHO                =       G2N503K                                               : ARR( 0.104E-12,     0., 0.0);
+{ 13033} GNK500Y +GHO                =       GNK500Z +      GHO2                                   : ARR( 0.128E-11,     0., 0.0);
+{ 13034} GNK500Y +GHO                =       GKK5008 +      GNO2                                   : ARR( 0.309E-12,     0., 0.0);
+{ 13035} GNK500Y +GHO                =       G1N5016                                               : ARR( 0.214E-17,    85., 2.0);
+{ 13036} GNK500Y+HV               =       G3K2000 +      GND3001 +      GHO2                    :  0.100E+01*SUN;
+{ 13037} GNK500Y+HV               =       G1K500L +      GNO2                                   :  0.100E+01*SUN;
+{ 13038} G2N503K +GNO                =       G1N503b +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 13039} G2N503K +GNO                =       GNN501g                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 13040} G2N503K +GHO2               =       GHN504K                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 13041} G2N503K +GNO3               =       G1N503b +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 13042} G2N503K +MEPERO             =  0.480G1N503b + 0.260GNK500k + 0.260GND500y                 : ARR( 0.164E-12,  -795., 0.0);
+{ 13043} G2N503K +PERO1              =  0.600G1N503b + 0.200GNK500k + 0.200GND500y                 : ARR( 0.126E-12,  -850., 0.0);
+{ 13044} G2N503K +PERO2              =  0.560G1N503b + 0.220GNK500k + 0.220GND500y                 : ARR( 0.471E-13, -1350., 0.0);
+{ 13045} G2N503K +PERO3              =  0.600G1N503b + 0.200GNK500k + 0.200GND500y                 : ARR( 0.142E-12, -1200., 0.0);
+{ 13046} G2N503K +PERO5              =  0.600G1N503b + 0.200GNK500k + 0.200GND500y                 : ARR( 0.533E-11,   500., 0.0);
+{ 13047} G2N503K +PERO6              =  0.460G1N503b + 0.270GNK500k + 0.270GND500y                 : ARR( 0.488E-13, -1250., 0.0);
+{ 13048} G2N503K +PERO9              =  0.800G1N503b + 0.200GND500y                                : ARR( 0.100E-10,     0., 0.0);
+{ 13049} G1N503b                     =       G3N400A +      GCH2O                                  : ARR( 0.200E+15,  3603., 0.0);
+{ 13050} G3N400A +GHO2               =  0.800GGN400G + 0.200GAN400G + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 13051} G3N400A +GNO                =       GND3001 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 13052} G3N400A +GNO2               =       GPN400G                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 13053} G3N400A +GNO3               =       GND3001 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 13054} G3N400A +MEPERO             =  0.685GND3001 + 0.315GAN400G + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13055} G3N400A +PERO1              =  0.800GND3001 + 0.200GAN400G + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13056} G3N400A +PERO2              =  0.750GND3001 + 0.250GAN400G + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13057} G3N400A +PERO3              =  0.800GND3001 + 0.200GAN400G + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13058} G3N400A +PERO5              =  0.650GND3001 + 0.350GAN400G + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13059} G3N400A +PERO6              =  0.650GND3001 + 0.350GAN400G + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13060} G3N400A +PERO9              =       GND3001 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 13061} GNK500Z +GHO                =       G2N503L                                               : ARR( 0.102E-12,     0., 0.0);
+{ 13062} GNK500Z +GHO                =       GKK5009 +      GNO2                                   : ARR( 0.584E-13,     0., 0.0);
+{ 13063} GNK500Z +GHO                =       G2N503M                                               : ARR( 0.335E-13,     0., 0.0);
+{ 13064} GNK500Z+HV               =       G3K2000 +      G3N3001                                :  0.100E+01*SUN;
+{ 13065} GNK500Z+HV               =       G1K500N +      GNO2                                   :  0.100E+01*SUN;
+{ 13066} G2N503L +GNO                =       G1N503c +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 13067} G2N503L +GNO                =       GNN501k                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 13068} G2N503L +GHO2               =       GHN504L                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 13069} G2N503L +GNO3               =       G1N503c +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 13070} G2N503L +MEPERO             =  0.480G1N503c + 0.260GNK500j + 0.260GND500z                 : ARR( 0.164E-12,  -795., 0.0);
+{ 13071} G2N503L +PERO1              =  0.600G1N503c + 0.200GNK500j + 0.200GND500z                 : ARR( 0.126E-12,  -850., 0.0);
+{ 13072} G2N503L +PERO2              =  0.560G1N503c + 0.220GNK500j + 0.220GND500z                 : ARR( 0.471E-13, -1350., 0.0);
+{ 13073} G2N503L +PERO3              =  0.600G1N503c + 0.200GNK500j + 0.200GND500z                 : ARR( 0.142E-12, -1200., 0.0);
+{ 13074} G2N503L +PERO5              =  0.600G1N503c + 0.200GNK500j + 0.200GND500z                 : ARR( 0.533E-11,   500., 0.0);
+{ 13075} G2N503L +PERO6              =  0.460G1N503c + 0.270GNK500j + 0.270GND500z                 : ARR( 0.488E-13, -1250., 0.0);
+{ 13076} G2N503L +PERO9              =  0.800G1N503c + 0.200GND500z                                : ARR( 0.100E-10,     0., 0.0);
+{ 13077} G2N503M +GNO                =       G1N503d +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 13078} G2N503M +GNO                =       GNN501z                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 13079} G2N503M +GHO2               =       GHN504M                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 13080} G2N503M +GNO3               =       G1N503d +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 13081} G2N503M +MEPERO             =  0.480G1N503d + 0.260GNK500c + 0.260GND5011                 : ARR( 0.164E-12,  -795., 0.0);
+{ 13082} G2N503M +PERO1              =  0.600G1N503d + 0.200GNK500c + 0.200GND5011                 : ARR( 0.126E-12,  -850., 0.0);
+{ 13083} G2N503M +PERO2              =  0.560G1N503d + 0.220GNK500c + 0.220GND5011                 : ARR( 0.471E-13, -1350., 0.0);
+{ 13084} G2N503M +PERO3              =  0.600G1N503d + 0.200GNK500c + 0.200GND5011                 : ARR( 0.142E-12, -1200., 0.0);
+{ 13085} G2N503M +PERO5              =  0.600G1N503d + 0.200GNK500c + 0.200GND5011                 : ARR( 0.533E-11,   500., 0.0);
+{ 13086} G2N503M +PERO6              =  0.460G1N503d + 0.270GNK500c + 0.270GND5011                 : ARR( 0.488E-13, -1250., 0.0);
+{ 13087} G2N503M +PERO9              =  0.800G1N503d + 0.200GND5011                                : ARR( 0.100E-10,     0., 0.0);
+{ 13088} G1N503c                     =       G3N3001 +      GCH2O   +      GCO                     : ARR( 0.200E+15,  3897., 0.0);
+{ 13089} G1N503d +OXYGEN             =       GND5011 +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 13090} G1N503d                     =       GDK4008 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  6903., 0.0);
+{ 13091} GND500L +GHO                =       G3N500N                                               : ARR( 0.466E-11,     0., 0.0);
+{ 13092} GND500L +GNO3               =       G3N500N +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 13093} GND500L+HV               =       G3K2000 +      G2N300A                                :  0.100E+01*SUN;
+{ 13094} GND500L+HV               =       G1D500D +      GNO2                                   :  0.100E+01*SUN;
+{ 13095} GND500L+HV               =       GDK4000 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 13096} G3N500N +GHO2               =  0.800GGN500b + 0.200GAN500j + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 13097} G3N500N +GNO                =       GDK4000 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 13098} G3N500N +GNO2               =       GPN500l                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 13099} G3N500N +GNO3               =       GDK4000 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 13100} G3N500N +MEPERO             =  0.685GDK4000 + 0.315GAN500j + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13101} G3N500N +PERO1              =  0.800GDK4000 + 0.200GAN500j + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13102} G3N500N +PERO2              =  0.750GDK4000 + 0.250GAN500j + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13103} G3N500N +PERO3              =  0.800GDK4000 + 0.200GAN500j + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13104} G3N500N +PERO5              =  0.650GDK4000 + 0.350GAN500j + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13105} G3N500N +PERO6              =  0.650GDK4000 + 0.350GAN500j + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13106} G3N500N +PERO9              =       GDK4000 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 13107} GGN4002 +GHO                =       G3N4002                                               : ARR( 0.206E-11,  -190., 0.0);
+{ 13108} GGN4002+HV               =       G1G4006 +      GNO2                                   :  0.100E+01*SUN;
+{ 13109} GGN4002+HV               =       G2N3001 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 13110} GAN4002 +GHO                =       GAK4000 +      GNO2                                   : ARR( 0.100E-12,     0., 0.0);
+{ 13111} GAN4002 +GHO                =       G2A4009                                               : ARR( 0.133E-12,     0., 0.0);
+{ 13112} GAN4002 +GHO                =       G2N3001 +      GCO2                                   : ARR( 0.543E-12,     0., 0.0);
+{ 13113} GAN4002+HV               =       G1A4006 +      GNO2                                   :  0.100E+01*SUN;
+{ 13114} G2A4009 +GNO                =       G1A400A +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 13115} G2A4009 +GNO                =       GAN400F                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 13116} G2A4009 +GHO2               =       GAH400B                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 13117} G2A4009 +GNO3               =       G1A400A +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 13118} G2A4009 +MEPERO             =  0.340G1A400A + 0.330GAN400G + 0.330GAN400H                 : ARR( 0.565E-13,  -845., 0.0);
+{ 13119} G2A4009 +PERO1              =  0.460G1A400A + 0.270GAN400G + 0.270GAN400H                 : ARR( 0.434E-13,  -900., 0.0);
+{ 13120} G2A4009 +PERO2              =  0.400G1A400A + 0.300GAN400G + 0.300GAN400H                 : ARR( 0.162E-13, -1400., 0.0);
+{ 13121} G2A4009 +PERO3              =  0.460G1A400A + 0.270GAN400G + 0.270GAN400H                 : ARR( 0.488E-13, -1250., 0.0);
+{ 13122} G2A4009 +PERO5              =  0.460G1A400A + 0.270GAN400G + 0.270GAN400H                 : ARR( 0.183E-11,   450., 0.0);
+{ 13123} G2A4009 +PERO6              =  0.300G1A400A + 0.350GAN400G + 0.350GAN400H                 : ARR( 0.168E-13, -1300., 0.0);
+{ 13124} G2A4009 +PERO9              =  0.650G1A400A + 0.350GAN400H                                : ARR( 0.100E-10,     0., 0.0);
+{ 13125} G1A400A                     =       GND3001 +      GCO     +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 13126} GPN4002                     =       G3N4002 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 13127} GPN4002 +GHO                =       G2P4009                                               : ARR( 0.335E-13,     0., 0.0);
+{ 13128} GPN4002 +GHO                =       GPK4000 +      GNO2                                   : ARR( 0.957E-13,     0., 0.0);
+{ 13129} GPN4002 +GHO                =       G2P400A                                               : ARR( 0.172E-12,     0., 0.0);
+{ 13130} GPN4002+HV               =       G1P4006 +      GNO2                                   :  0.100E+01*SUN;
+{ 13131} GPN4002+HV               =       G3N4002 +      GNO2                                   :  0.100E+01*SUN;
+{ 13132} G2P4009 +GNO                =       G1P400A +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 13133} G2P4009 +GNO                =       GPN4007                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 13134} G2P4009 +GHO2               =       GPH400C                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 13135} G2P4009 +GNO3               =       G1P400A +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 13136} G2P4009 +MEPERO             =  0.480G1P400A + 0.260GPN4003 + 0.260GPN400H                 : ARR( 0.164E-12,  -795., 0.0);
+{ 13137} G2P4009 +PERO1              =  0.600G1P400A + 0.200GPN4003 + 0.200GPN400H                 : ARR( 0.126E-12,  -850., 0.0);
+{ 13138} G2P4009 +PERO2              =  0.560G1P400A + 0.220GPN4003 + 0.220GPN400H                 : ARR( 0.471E-13, -1350., 0.0);
+{ 13139} G2P4009 +PERO3              =  0.600G1P400A + 0.200GPN4003 + 0.200GPN400H                 : ARR( 0.142E-12, -1200., 0.0);
+{ 13140} G2P4009 +PERO5              =  0.600G1P400A + 0.200GPN4003 + 0.200GPN400H                 : ARR( 0.533E-11,   500., 0.0);
+{ 13141} G2P4009 +PERO6              =  0.460G1P400A + 0.270GPN4003 + 0.270GPN400H                 : ARR( 0.488E-13, -1250., 0.0);
+{ 13142} G2P4009 +PERO9              =  0.800G1P400A + 0.200GPN400H                                : ARR( 0.100E-10,     0., 0.0);
+{ 13143} G2P400A +GNO                =       G1P400B +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 13144} G2P400A +GNO                =       GPN400F                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 13145} G2P400A +GHO2               =       GPH400B                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 13146} G2P400A +GNO3               =       G1P400B +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 13147} G2P400A +MEPERO             =  0.340G1P400B + 0.330GPN400G + 0.330GPN400I                 : ARR( 0.565E-13,  -845., 0.0);
+{ 13148} G2P400A +PERO1              =  0.460G1P400B + 0.270GPN400G + 0.270GPN400I                 : ARR( 0.434E-13,  -900., 0.0);
+{ 13149} G2P400A +PERO2              =  0.400G1P400B + 0.300GPN400G + 0.300GPN400I                 : ARR( 0.162E-13, -1400., 0.0);
+{ 13150} G2P400A +PERO3              =  0.460G1P400B + 0.270GPN400G + 0.270GPN400I                 : ARR( 0.488E-13, -1250., 0.0);
+{ 13151} G2P400A +PERO5              =  0.460G1P400B + 0.270GPN400G + 0.270GPN400I                 : ARR( 0.183E-11,   450., 0.0);
+{ 13152} G2P400A +PERO6              =  0.300G1P400B + 0.350GPN400G + 0.350GPN400I                 : ARR( 0.168E-13, -1300., 0.0);
+{ 13153} G2P400A +PERO9              =  0.650G1P400B + 0.350GPN400I                                : ARR( 0.100E-10,     0., 0.0);
+{ 13154} G1P400A +OXYGEN             =       GPN400H +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 13155} G1P400A                     =       GPD3000 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7175., 0.0);
+{ 13156} G1P400B                     =       GND3001 +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 13157} GHN501T +GHO                =       GNN500x +      GHO                                    : ARR( 0.164E-10,     0., 0.0);
+{ 13158} GHN501T +GHO                =       G2N5017                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 13159} GHN501T+HV               =       G1H502r +      GNO2                                   :  0.100E+01*SUN;
+{ 13160} GHN501T+HV               =       G1H502s +      GNO2                                   :  0.100E+01*SUN;
+{ 13161} GHN501T+HV               =       G1N5018 +      GHO                                    :  0.100E+01*SUN;
+{ 13162} G1H502r                     =       GND5005 +      GHO                                    : ARR( 0.160E+12,  2186., 0.0);
+{ 13163} G1H502s                     =       GD02000 +      GHD3000 +      GNO2                    : ARR( 0.200E+15,  6455., 0.0);
+{ 13164} G1H502s                     =       GND3001 +      G2H2000                                : ARR( 0.200E+15,  7074., 0.0);
+{ 13165} GNN500x +GHO                =       G3N500O                                               : ARR( 0.211E-10,     0., 0.0);
+{ 13166} GNN500x +GNO3               =       G3N500O +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 13167} GNN500x+HV               =       G1N503e +      GNO2                                   :  0.100E+01*SUN;
+{ 13168} GNN500x+HV               =       G1N503f +      GNO2                                   :  0.100E+01*SUN;
+{ 13169} GNN500x+HV               =       G2N400Z +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 13170} GNN500x+HV               =       GDK3000 +      GD02000 + 2.000GNO2                    :  0.100E+01*SUN;
+{ 13171} G3N500O +GHO2               =  0.800GGN500P + 0.200GAN500R + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 13172} G3N500O +GNO                =       G2N400Z +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 13173} G3N500O +GNO2               =       GPN500R                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 13174} G3N500O +GNO3               =       G2N400Z +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 13175} G3N500O +MEPERO             =  0.685G2N400Z + 0.315GAN500R + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 13176} G3N500O +PERO1              =  0.800G2N400Z + 0.200GAN500R + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 13177} G3N500O +PERO2              =  0.750G2N400Z + 0.250GAN500R + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 13178} G3N500O +PERO3              =  0.800G2N400Z + 0.200GAN500R + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 13179} G3N500O +PERO5              =  0.650G2N400Z + 0.350GAN500R + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 13180} G3N500O +PERO6              =  0.650G2N400Z + 0.350GAN500R + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 13181} G3N500O +PERO9              =       G2N400Z +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 13182} G1N503e                     =       G3N5005                                               : ARR( 0.800E+11,  4559., 0.0);
+{ 13183} G1N503e                     =       GD02000 +      GDD3000 +      GNO2                    : ARR( 0.200E+15,  6112., 0.0);
+{ 13184} G1N503f                     =       GD02000 +      GDD3000 +      GNO2                    : ARR( 0.200E+15,  6072., 0.0);
+{ 13185} G1N503f                     =       GND3001 +      G2D2000                                : ARR( 0.200E+15,  7229., 0.0);
+{ 13186} G2N400Z +GNO                =       G1N400b +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 13187} G2N400Z +GNO                =       GNN400L                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 13188} G2N400Z +GHO2               =       GHN400n                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 13189} G2N400Z +GNO3               =       G1N400b +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 13190} G2N400Z +MEPERO             =  0.480G1N400b + 0.260GNN400N + 0.260GNN4007                 : ARR( 0.164E-12,  -795., 0.0);
+{ 13191} G2N400Z +PERO1              =  0.600G1N400b + 0.200GNN400N + 0.200GNN4007                 : ARR( 0.126E-12,  -850., 0.0);
+{ 13192} G2N400Z +PERO2              =  0.560G1N400b + 0.220GNN400N + 0.220GNN4007                 : ARR( 0.471E-13, -1350., 0.0);
+{ 13193} G2N400Z +PERO3              =  0.600G1N400b + 0.200GNN400N + 0.200GNN4007                 : ARR( 0.142E-12, -1200., 0.0);
+{ 13194} G2N400Z +PERO5              =  0.600G1N400b + 0.200GNN400N + 0.200GNN4007                 : ARR( 0.533E-11,   500., 0.0);
+{ 13195} G2N400Z +PERO6              =  0.460G1N400b + 0.270GNN400N + 0.270GNN4007                 : ARR( 0.488E-13, -1250., 0.0);
+{ 13196} G2N400Z +PERO9              =  0.800G1N400b + 0.200GNN4007                                : ARR( 0.100E-10,     0., 0.0);
+{ 13197} G1N400b +OXYGEN             =       GNN4007 +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 13198} G1N400b                     =       G2N400a                                               : ARR( 0.240E+12,  4897., 0.0);
+{ 13199} G1N400b                     =       GND3001 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7042., 0.0);
+{ 13200} G2N400a +GNO                =       G1N400c +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 13201} G2N400a +GNO                =       GNN400S                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 13202} G2N400a +GHO2               =       GHN400o                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 13203} G2N400a +GNO3               =       G1N400c +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 13204} G2N400a +MEPERO             =  0.480G1N400c + 0.260GNN400O + 0.260GNN400E                 : ARR( 0.164E-12,  -795., 0.0);
+{ 13205} G2N400a +PERO1              =  0.600G1N400c + 0.200GNN400O + 0.200GNN400E                 : ARR( 0.126E-12,  -850., 0.0);
+{ 13206} G2N400a +PERO2              =  0.560G1N400c + 0.220GNN400O + 0.220GNN400E                 : ARR( 0.471E-13, -1350., 0.0);
+{ 13207} G2N400a +PERO3              =  0.600G1N400c + 0.200GNN400O + 0.200GNN400E                 : ARR( 0.142E-12, -1200., 0.0);
+{ 13208} G2N400a +PERO5              =  0.600G1N400c + 0.200GNN400O + 0.200GNN400E                 : ARR( 0.533E-11,   500., 0.0);
+{ 13209} G2N400a +PERO6              =  0.460G1N400c + 0.270GNN400O + 0.270GNN400E                 : ARR( 0.488E-13, -1250., 0.0);
+{ 13210} G2N400a +PERO9              =  0.800G1N400c + 0.200GNN400E                                : ARR( 0.100E-10,     0., 0.0);
+{ 13211} G1N400c                     =       GNN400E +      GHO2                                   : ARR( 0.160E+12,  3252., 0.0);
+{ 13212} GHN501U +GHO                =       GNN500w +      GHO                                    : ARR( 0.686E-11,     0., 0.0);
+{ 13213} GHN501U +GHO                =       G2N5018                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 13214} GHN501U+HV               =       G1H502t +      GNO2                                   :  0.100E+01*SUN;
+{ 13215} GHN501U+HV               =       G1H502u +      GNO2                                   :  0.100E+01*SUN;
+{ 13216} GHN501U+HV               =       G1N5019 +      GHO                                    :  0.100E+01*SUN;
+{ 13217} G1H502t                     =       G2H501d                                               : ARR( 0.240E+12,  4177., 0.0);
+{ 13218} G1H502t                     =       GHD3002 +      GD02000 +      GNO2                    : ARR( 0.200E+15,  5979., 0.0);
+{ 13219} G1H502u                     =       GND3001 +      GD02000 +      GHO                     : ARR( 0.200E+15,  5171., 0.0);
+{ 13220} G2H501d +GNO                =       G1H502v +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 13221} G2H501d +GNO                =       GHN503S                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 13222} G2H501d +GHO2               =       GHH501a                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 13223} G2H501d +GNO3               =       G1H502v +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 13224} G2H501d +MEPERO             =  0.480G1H502v + 0.260GHN502w + 0.260GHN502x                 : ARR( 0.164E-12,  -795., 0.0);
+{ 13225} G2H501d +PERO1              =  0.600G1H502v + 0.200GHN502w + 0.200GHN502x                 : ARR( 0.126E-12,  -850., 0.0);
+{ 13226} G2H501d +PERO2              =  0.560G1H502v + 0.220GHN502w + 0.220GHN502x                 : ARR( 0.471E-13, -1350., 0.0);
+{ 13227} G2H501d +PERO3              =  0.600G1H502v + 0.200GHN502w + 0.200GHN502x                 : ARR( 0.142E-12, -1200., 0.0);
+{ 13228} G2H501d +PERO5              =  0.600G1H502v + 0.200GHN502w + 0.200GHN502x                 : ARR( 0.533E-11,   500., 0.0);
+{ 13229} G2H501d +PERO6              =  0.460G1H502v + 0.270GHN502w + 0.270GHN502x                 : ARR( 0.488E-13, -1250., 0.0);
+{ 13230} G2H501d +PERO9              =  0.800G1H502v + 0.200GHN502x                                : ARR( 0.100E-10,     0., 0.0);
+{ 13231} G1H502v                     =       GHN501n +      GHO2                                   : ARR( 0.800E+11,  2837., 0.0);
+{ 13232} G1H502v                     =       GND4007 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{ 13233} GNN500y +GHO                =       G2N503N                                               : ARR( 0.174E-12,     0., 0.0);
+{ 13234} GNN500y +GHO                =       GNN500w +      GHO2                                   : ARR( 0.174E-11,     0., 0.0);
+{ 13235} GNN500y +GHO                =       G1N5019                                               : ARR( 0.218E-17,    85., 2.0);
+{ 13236} GNN500y+HV               =       G1N503g +      GNO2                                   :  0.100E+01*SUN;
+{ 13237} GNN500y+HV               =       G1N501L +      GNO2                                   :  0.100E+01*SUN;
+{ 13238} G2N503N +GNO                =       G1N503h +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 13239} G2N503N +GNO                =       GNN501X                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 13240} G2N503N +GHO2               =       GHN504N                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 13241} G2N503N +GNO3               =       G1N503h +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 13242} G2N503N +MEPERO             =  0.480G1N503h + 0.260GNN5017 + 0.260GNN502Z                 : ARR( 0.164E-12,  -795., 0.0);
+{ 13243} G2N503N +PERO1              =  0.600G1N503h + 0.200GNN5017 + 0.200GNN502Z                 : ARR( 0.126E-12,  -850., 0.0);
+{ 13244} G2N503N +PERO2              =  0.560G1N503h + 0.220GNN5017 + 0.220GNN502Z                 : ARR( 0.471E-13, -1350., 0.0);
+{ 13245} G2N503N +PERO3              =  0.600G1N503h + 0.200GNN5017 + 0.200GNN502Z                 : ARR( 0.142E-12, -1200., 0.0);
+{ 13246} G2N503N +PERO5              =  0.600G1N503h + 0.200GNN5017 + 0.200GNN502Z                 : ARR( 0.533E-11,   500., 0.0);
+{ 13247} G2N503N +PERO6              =  0.460G1N503h + 0.270GNN5017 + 0.270GNN502Z                 : ARR( 0.488E-13, -1250., 0.0);
+{ 13248} G2N503N +PERO9              =  0.800G1N503h + 0.200GNN502Z                                : ARR( 0.100E-10,     0., 0.0);
+{ 13249} G1N503g                     =       GND3001 +      GD02000 +      GHO2                    : ARR( 0.200E+15,  3962., 0.0);
+{ 13250} G1N503h                     =       GNN4007 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 13251} GHN501W +GHO                =       GNN500z +      GHO                                    : ARR( 0.343E-11,     0., 0.0);
+{ 13252} GHN501W +GHO                =       G2N5019                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 13253} GHN501W+HV               =       G1H502w +      GNO2                                   :  0.100E+01*SUN;
+{ 13254} GHN501W+HV               =       G1H502x +      GNO2                                   :  0.100E+01*SUN;
+{ 13255} GHN501W+HV               =       G1N501A +      GHO                                    :  0.100E+01*SUN;
+{ 13256} G1H502w                     =       GD03000 +      GHD2000 +      GNO2                    : ARR( 0.200E+15,  6068., 0.0);
+{ 13257} G1H502x                     =       G2H501e                                               : ARR( 0.240E+12,  4177., 0.0);
+{ 13258} G1H502x                     =       GD03000 +      GHD2000 +      GNO2                    : ARR( 0.200E+15,  6739., 0.0);
+{ 13259} G2H501e +GNO                =       G1H502y +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 13260} G2H501e +GNO                =       GHN501o                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 13261} G2H501e +GHO2               =       GHH501b                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 13262} G2H501e +GNO3               =       G1H502y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 13263} G2H501e +MEPERO             =  0.480G1H502y + 0.260GHN5027 + 0.260GHN501G                 : ARR( 0.146E-12,  -445., 0.0);
+{ 13264} G2H501e +PERO1              =  0.600G1H502y + 0.200GHN5027 + 0.200GHN501G                 : ARR( 0.112E-12,  -500., 0.0);
+{ 13265} G2H501e +PERO2              =  0.560G1H502y + 0.220GHN5027 + 0.220GHN501G                 : ARR( 0.418E-13, -1000., 0.0);
+{ 13266} G2H501e +PERO3              =  0.600G1H502y + 0.200GHN5027 + 0.200GHN501G                 : ARR( 0.126E-12,  -850., 0.0);
+{ 13267} G2H501e +PERO5              =  0.600G1H502y + 0.200GHN5027 + 0.200GHN501G                 : ARR( 0.473E-11,   850., 0.0);
+{ 13268} G2H501e +PERO6              =  0.460G1H502y + 0.270GHN5027 + 0.270GHN501G                 : ARR( 0.434E-13,  -900., 0.0);
+{ 13269} G2H501e +PERO9              =  0.800G1H502y + 0.200GHN501G                                : ARR( 0.100E-10,     0., 0.0);
+{ 13270} G1H502y                     =       GHN5028 +      GHO2                                   : ARR( 0.800E+11,  2744., 0.0);
+{ 13271} GNN500z +GHO                =       G2N503O                                               : ARR( 0.241E-12,     0., 0.0);
+{ 13272} GNN500z +GHO                =       G3N500P                                               : ARR( 0.435E-11,     0., 0.0);
+{ 13273} GNN500z +GNO3               =       G3N500P +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 13274} GNN500z+HV               =       G1N503i +      GNO2                                   :  0.100E+01*SUN;
+{ 13275} GNN500z+HV               =       G1N503j +      GNO2                                   :  0.100E+01*SUN;
+{ 13276} GNN500z+HV               =       GND4005 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 13277} GNN500z+HV               =       G2D3000 +      GND2000 +      GNO2                    :  0.100E+01*SUN;
+{ 13278} G2N503O +GNO                =       G1N503k +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 13279} G2N503O +GNO                =       GNN502T                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 13280} G2N503O +GHO2               =       GHN504O                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 13281} G2N503O +GNO3               =       G1N503k +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 13282} G2N503O +MEPERO             =  0.340G1N503k + 0.330GNN5013 + 0.330GNN502Y                 : ARR( 0.565E-13,  -845., 0.0);
+{ 13283} G2N503O +PERO1              =  0.460G1N503k + 0.270GNN5013 + 0.270GNN502Y                 : ARR( 0.434E-13,  -900., 0.0);
+{ 13284} G2N503O +PERO2              =  0.400G1N503k + 0.300GNN5013 + 0.300GNN502Y                 : ARR( 0.162E-13, -1400., 0.0);
+{ 13285} G2N503O +PERO3              =  0.460G1N503k + 0.270GNN5013 + 0.270GNN502Y                 : ARR( 0.488E-13, -1250., 0.0);
+{ 13286} G2N503O +PERO5              =  0.460G1N503k + 0.270GNN5013 + 0.270GNN502Y                 : ARR( 0.183E-11,   450., 0.0);
+{ 13287} G2N503O +PERO6              =  0.300G1N503k + 0.350GNN5013 + 0.350GNN502Y                 : ARR( 0.168E-13, -1300., 0.0);
+{ 13288} G2N503O +PERO9              =  0.650G1N503k + 0.350GNN502Y                                : ARR( 0.100E-10,     0., 0.0);
+{ 13289} G3N500P +GHO2               =  0.800GGN500c + 0.200GAN500T + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 13290} G3N500P +GNO                =       GND4005 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 13291} G3N500P +GNO2               =       GPN500T                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 13292} G3N500P +GNO3               =       GND4005 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 13293} G3N500P +MEPERO             =  0.685GND4005 + 0.315GAN500T + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13294} G3N500P +PERO1              =  0.800GND4005 + 0.200GAN500T + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13295} G3N500P +PERO2              =  0.750GND4005 + 0.250GAN500T + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13296} G3N500P +PERO3              =  0.800GND4005 + 0.200GAN500T + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13297} G3N500P +PERO5              =  0.650GND4005 + 0.350GAN500T + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13298} G3N500P +PERO6              =  0.650GND4005 + 0.350GAN500T + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13299} G3N500P +PERO9              =       GND4005 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 13300} G1N503i                     =       G202000 +      GND3005                                : ARR( 0.200E+15,  6631., 0.0);
+{ 13301} G1N503i                     =       GD03000 +      GDD2000 +      GNO2                    : ARR( 0.200E+15,  6201., 0.0);
+{ 13302} G1N503j                     =       G2N503P                                               : ARR( 0.240E+12,  4177., 0.0);
+{ 13303} G1N503j                     =       GND4005 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 13304} G1N503k                     =       GD02000 +      GND3005 +      GNO2                    : ARR( 0.200E+15,  6112., 0.0);
+{ 13305} G2N503P +GNO                =       G1N503l +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 13306} G2N503P +GNO                =       GNN5019                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 13307} G2N503P +GHO2               =       GHN5046                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 13308} G2N503P +GNO3               =       G1N503l +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 13309} G2N503P +MEPERO             =  0.480G1N503l + 0.260GND500Y + 0.260GND500a                 : ARR( 0.146E-12,  -445., 0.0);
+{ 13310} G2N503P +PERO1              =  0.600G1N503l + 0.200GND500Y + 0.200GND500a                 : ARR( 0.112E-12,  -500., 0.0);
+{ 13311} G2N503P +PERO2              =  0.560G1N503l + 0.220GND500Y + 0.220GND500a                 : ARR( 0.418E-13, -1000., 0.0);
+{ 13312} G2N503P +PERO3              =  0.600G1N503l + 0.200GND500Y + 0.200GND500a                 : ARR( 0.126E-12,  -850., 0.0);
+{ 13313} G2N503P +PERO5              =  0.600G1N503l + 0.200GND500Y + 0.200GND500a                 : ARR( 0.473E-11,   850., 0.0);
+{ 13314} G2N503P +PERO6              =  0.460G1N503l + 0.270GND500Y + 0.270GND500a                 : ARR( 0.434E-13,  -900., 0.0);
+{ 13315} G2N503P +PERO9              =  0.800G1N503l + 0.200GND500a                                : ARR( 0.100E-10,     0., 0.0);
+{ 13316} G1N503l                     =       GND500Z +      GHO2                                   : ARR( 0.800E+11,  2965., 0.0);
+{ 13317} GNN5011 +GHO                =       G2N503Q                                               : ARR( 0.171E-12,     0., 0.0);
+{ 13318} GNN5011 +GHO                =       GNN501v +      GHO2                                   : ARR( 0.171E-11,     0., 0.0);
+{ 13319} GNN5011 +GHO                =       G1N502a                                               : ARR( 0.214E-17,    85., 2.0);
+{ 13320} GNN5011+HV               =       G1N503m +      GNO2                                   :  0.100E+01*SUN;
+{ 13321} GNN5011+HV               =       G1N503n +      GNO2                                   :  0.100E+01*SUN;
+{ 13322} GNN5011+HV               =       G1N501B +      GNO2                                   :  0.100E+01*SUN;
+{ 13323} G2N503Q +GNO                =       G1N503o +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 13324} G2N503Q +GNO                =       GNN501c                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 13325} G2N503Q +GHO2               =       GHN504P                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 13326} G2N503Q +GNO3               =       G1N503o +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 13327} G2N503Q +MEPERO             =  0.480G1N503o + 0.260GNN5028 + 0.260GNN502a                 : ARR( 0.164E-12,  -795., 0.0);
+{ 13328} G2N503Q +PERO1              =  0.600G1N503o + 0.200GNN5028 + 0.200GNN502a                 : ARR( 0.126E-12,  -850., 0.0);
+{ 13329} G2N503Q +PERO2              =  0.560G1N503o + 0.220GNN5028 + 0.220GNN502a                 : ARR( 0.471E-13, -1350., 0.0);
+{ 13330} G2N503Q +PERO3              =  0.600G1N503o + 0.200GNN5028 + 0.200GNN502a                 : ARR( 0.142E-12, -1200., 0.0);
+{ 13331} G2N503Q +PERO5              =  0.600G1N503o + 0.200GNN5028 + 0.200GNN502a                 : ARR( 0.533E-11,   500., 0.0);
+{ 13332} G2N503Q +PERO6              =  0.460G1N503o + 0.270GNN5028 + 0.270GNN502a                 : ARR( 0.488E-13, -1250., 0.0);
+{ 13333} G2N503Q +PERO9              =  0.800G1N503o + 0.200GNN502a                                : ARR( 0.100E-10,     0., 0.0);
+{ 13334} G1N503m                     =       GD02000 +      GNN3005 +      GHO2                    : ARR( 0.200E+15,  3962., 0.0);
+{ 13335} G1N503n                     =       G2N503R                                               : ARR( 0.240E+12,  4177., 0.0);
+{ 13336} G1N503n                     =       GDO3001 +      GND2000 +      GNO2                    : ARR( 0.200E+15,  6232., 0.0);
+{ 13337} G1N503o                     =       GNN400D +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 13338} G2N503R +GNO                =       G1N503p +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 13339} G2N503R +GNO                =       GNN502G                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 13340} G2N503R +GHO2               =       GHN504Q                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 13341} G2N503R +GNO3               =       G1N503p +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 13342} G2N503R +MEPERO             =  0.480G1N503p + 0.260GNN501B + 0.260GNN502H                 : ARR( 0.164E-12,  -795., 0.0);
+{ 13343} G2N503R +PERO1              =  0.600G1N503p + 0.200GNN501B + 0.200GNN502H                 : ARR( 0.126E-12,  -850., 0.0);
+{ 13344} G2N503R +PERO2              =  0.560G1N503p + 0.220GNN501B + 0.220GNN502H                 : ARR( 0.471E-13, -1350., 0.0);
+{ 13345} G2N503R +PERO3              =  0.600G1N503p + 0.200GNN501B + 0.200GNN502H                 : ARR( 0.142E-12, -1200., 0.0);
+{ 13346} G2N503R +PERO5              =  0.600G1N503p + 0.200GNN501B + 0.200GNN502H                 : ARR( 0.533E-11,   500., 0.0);
+{ 13347} G2N503R +PERO6              =  0.460G1N503p + 0.270GNN501B + 0.270GNN502H                 : ARR( 0.488E-13, -1250., 0.0);
+{ 13348} G2N503R +PERO9              =  0.800G1N503p + 0.200GNN502H                                : ARR( 0.100E-10,     0., 0.0);
+{ 13349} G1N503p                     =       GNN400F +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 13350} GHN501X +GHO                =       GHN504J +      GHO2                                   : ARR( 0.175E-11,     0., 0.0);
+{ 13351} GHN501X +GHO                =       GNN5013 +      GHO                                    : ARR( 0.335E-11,     0., 0.0);
+{ 13352} GHN501X +GHO                =       G2N501A                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 13353} GHN501X+HV               =       G1H502z +      GNO2                                   :  0.100E+01*SUN;
+{ 13354} GHN501X+HV               =       G1H5031 +      GNO2                                   :  0.100E+01*SUN;
+{ 13355} GHN501X+HV               =       G1N501B +      GHO                                    :  0.100E+01*SUN;
+{ 13356} G1H502z                     =       GD02000 +      GHN300A +      GHO2                    : ARR( 0.200E+15,  3962., 0.0);
+{ 13357} G1H5031                     =       G2H501f                                               : ARR( 0.240E+12,  4177., 0.0);
+{ 13358} G1H5031                     =       GDO3001 +      GHD2000 +      GNO2                    : ARR( 0.200E+15,  6234., 0.0);
+{ 13359} G2H501f +GNO                =       G1H5032 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 13360} G2H501f +GNO                =       GHN504Q                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 13361} G2H501f +GHO2               =       GHH501c                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 13362} G2H501f +GNO3               =       G1H5032 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 13363} G2H501f +MEPERO             =  0.480G1H5032 + 0.260GHN504R + 0.260GHN503z                 : ARR( 0.164E-12,  -795., 0.0);
+{ 13364} G2H501f +PERO1              =  0.600G1H5032 + 0.200GHN504R + 0.200GHN503z                 : ARR( 0.126E-12,  -850., 0.0);
+{ 13365} G2H501f +PERO2              =  0.560G1H5032 + 0.220GHN504R + 0.220GHN503z                 : ARR( 0.471E-13, -1350., 0.0);
+{ 13366} G2H501f +PERO3              =  0.600G1H5032 + 0.200GHN504R + 0.200GHN503z                 : ARR( 0.142E-12, -1200., 0.0);
+{ 13367} G2H501f +PERO5              =  0.600G1H5032 + 0.200GHN504R + 0.200GHN503z                 : ARR( 0.533E-11,   500., 0.0);
+{ 13368} G2H501f +PERO6              =  0.460G1H5032 + 0.270GHN504R + 0.270GHN503z                 : ARR( 0.488E-13, -1250., 0.0);
+{ 13369} G2H501f +PERO9              =  0.800G1H5032 + 0.200GHN503z                                : ARR( 0.100E-10,     0., 0.0);
+{ 13370} G1H5032                     =       GHN504S +      GHO2                                   : ARR( 0.800E+11,  2744., 0.0);
+{ 13371} G1H5032                     =       GHN400Y +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 13372} GNN5012 +GHO                =       G2N503S                                               : ARR( 0.188E-12,     0., 0.0);
+{ 13373} GNN5012 +GHO                =       GNN5015 +      GHO2                                   : ARR( 0.188E-11,     0., 0.0);
+{ 13374} GNN5012 +GHO                =       GNN5013 +      GHO2                                   : ARR( 0.904E-12,     0., 0.0);
+{ 13375} GNN5012+HV               =       G1N503q +      GNO2                                   :  0.100E+01*SUN;
+{ 13376} GNN5012+HV               =       G1N503r +      GNO2                                   :  0.100E+01*SUN;
+{ 13377} G2N503S +GNO                =       G1N503s +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 13378} G2N503S +GNO                =       GNN501a                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 13379} G2N503S +GHO2               =       GHN504T                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 13380} G2N503S +GNO3               =       G1N503s +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 13381} G2N503S +MEPERO             =  0.480G1N503s + 0.260GNN502B + 0.260GNN502b                 : ARR( 0.164E-12,  -795., 0.0);
+{ 13382} G2N503S +PERO1              =  0.600G1N503s + 0.200GNN502B + 0.200GNN502b                 : ARR( 0.126E-12,  -850., 0.0);
+{ 13383} G2N503S +PERO2              =  0.560G1N503s + 0.220GNN502B + 0.220GNN502b                 : ARR( 0.471E-13, -1350., 0.0);
+{ 13384} G2N503S +PERO3              =  0.600G1N503s + 0.200GNN502B + 0.200GNN502b                 : ARR( 0.142E-12, -1200., 0.0);
+{ 13385} G2N503S +PERO5              =  0.600G1N503s + 0.200GNN502B + 0.200GNN502b                 : ARR( 0.533E-11,   500., 0.0);
+{ 13386} G2N503S +PERO6              =  0.460G1N503s + 0.270GNN502B + 0.270GNN502b                 : ARR( 0.488E-13, -1250., 0.0);
+{ 13387} G2N503S +PERO9              =  0.800G1N503s + 0.200GNN502b                                : ARR( 0.100E-10,     0., 0.0);
+{ 13388} G1N503q                     =       GD02000 +      GND3004 +      GHO2                    : ARR( 0.200E+15,  3962., 0.0);
+{ 13389} G1N503r                     =       G2N503T                                               : ARR( 0.240E+12,  4177., 0.0);
+{ 13390} G1N503r                     =       GDO3001 +      GDO2000 +      GNO2                    : ARR( 0.200E+15,  6234., 0.0);
+{ 13391} G1N503r                     =       GND4007 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  5296., 0.0);
+{ 13392} G1N503s                     =       GNN400E +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 13393} G2N503T +GNO                =       G1N503t +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 13394} G2N503T +GNO                =       GNN501B                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 13395} G2N503T +GHO2               =       GHN504R                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 13396} G2N503T +GNO3               =       G1N503t +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 13397} G2N503T +MEPERO             =  0.480G1N503t + 0.260GNO500c + 0.260GND500T                 : ARR( 0.164E-12,  -795., 0.0);
+{ 13398} G2N503T +PERO1              =  0.600G1N503t + 0.200GNO500c + 0.200GND500T                 : ARR( 0.126E-12,  -850., 0.0);
+{ 13399} G2N503T +PERO2              =  0.560G1N503t + 0.220GNO500c + 0.220GND500T                 : ARR( 0.471E-13, -1350., 0.0);
+{ 13400} G2N503T +PERO3              =  0.600G1N503t + 0.200GNO500c + 0.200GND500T                 : ARR( 0.142E-12, -1200., 0.0);
+{ 13401} G2N503T +PERO5              =  0.600G1N503t + 0.200GNO500c + 0.200GND500T                 : ARR( 0.533E-11,   500., 0.0);
+{ 13402} G2N503T +PERO6              =  0.460G1N503t + 0.270GNO500c + 0.270GND500T                 : ARR( 0.488E-13, -1250., 0.0);
+{ 13403} G2N503T +PERO9              =  0.800G1N503t + 0.200GND500T                                : ARR( 0.100E-10,     0., 0.0);
+{ 13404} G1N503t                     =       GNK5017 +      GHO2                                   : ARR( 0.800E+11,  2744., 0.0);
+{ 13405} G1N503t                     =       GND400A +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 13406} GNN5013 +GHO                =       GNN502Y +      GHO2                                   : ARR( 0.177E-11,     0., 0.0);
+{ 13407} GNN5013 +GHO                =       G3N500Q                                               : ARR( 0.440E-11,     0., 0.0);
+{ 13408} GNN5013 +GNO3               =       G3N500Q +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 13409} GNN5013+HV               =       G1N503u +      GNO2                                   :  0.100E+01*SUN;
+{ 13410} GNN5013+HV               =       G1N503v +      GNO2                                   :  0.100E+01*SUN;
+{ 13411} GNN5013+HV               =       GND4007 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 13412} GNN5013+HV               =       GNK3000 +      GND2000                                :  0.100E+01*SUN;
+{ 13413} G3N500Q +GHO2               =  0.800GGN500f + 0.200GAN500m + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 13414} G3N500Q +GNO                =       GND4007 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 13415} G3N500Q +GNO2               =       GPN500n                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 13416} G3N500Q +GNO3               =       GND4007 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 13417} G3N500Q +MEPERO             =  0.685GND4007 + 0.315GAN500m + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13418} G3N500Q +PERO1              =  0.800GND4007 + 0.200GAN500m + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13419} G3N500Q +PERO2              =  0.750GND4007 + 0.250GAN500m + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13420} G3N500Q +PERO3              =  0.800GND4007 + 0.200GAN500m + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13421} G3N500Q +PERO5              =  0.650GND4007 + 0.350GAN500m + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13422} G3N500Q +PERO6              =  0.650GND4007 + 0.350GAN500m + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13423} G3N500Q +PERO9              =       GND4007 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 13424} G1N503u                     =       GD02000 +      GND3005 +      GHO2                    : ARR( 0.200E+15,  3132., 0.0);
+{ 13425} G1N503v                     =       G2N503U                                               : ARR( 0.240E+12,  4177., 0.0);
+{ 13426} G1N503v                     =       GND4007 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 13427} G2N503U +GNO                =       G1N503w +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 13428} G2N503U +GNO                =       GNN502H                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 13429} G2N503U +GHO2               =       GHN503z                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 13430} G2N503U +GNO3               =       G1N503w +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 13431} G2N503U +MEPERO             =  0.480G1N503w + 0.260GND500T + 0.260GND500s                 : ARR( 0.164E-12,  -795., 0.0);
+{ 13432} G2N503U +PERO1              =  0.600G1N503w + 0.200GND500T + 0.200GND500s                 : ARR( 0.126E-12,  -850., 0.0);
+{ 13433} G2N503U +PERO2              =  0.560G1N503w + 0.220GND500T + 0.220GND500s                 : ARR( 0.471E-13, -1350., 0.0);
+{ 13434} G2N503U +PERO3              =  0.600G1N503w + 0.200GND500T + 0.200GND500s                 : ARR( 0.142E-12, -1200., 0.0);
+{ 13435} G2N503U +PERO5              =  0.600G1N503w + 0.200GND500T + 0.200GND500s                 : ARR( 0.533E-11,   500., 0.0);
+{ 13436} G2N503U +PERO6              =  0.460G1N503w + 0.270GND500T + 0.270GND500s                 : ARR( 0.488E-13, -1250., 0.0);
+{ 13437} G2N503U +PERO9              =  0.800G1N503w + 0.200GND500s                                : ARR( 0.100E-10,     0., 0.0);
+{ 13438} G1N503w                     =       GND5012 +      GHO2                                   : ARR( 0.800E+11,  2965., 0.0);
+{ 13439} G1N503w                     =       GND400J +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 13440} GNN5014 +GHO                =       GNN502T +      GHO2                                   : ARR( 0.873E-12,     0., 0.0);
+{ 13441} GNN5014 +GHO                =       G1N503W                                               : ARR( 0.228E-17,    85., 2.0);
+{ 13442} GNN5014+HV               =       G1N501C +      GNO2                                   :  0.100E+01*SUN;
+{ 13443} GNN5014+HV               =       G1N503x +      GNO2                                   :  0.100E+01*SUN;
+{ 13444} GNN5014+HV               =       G1N501S +      GNO2                                   :  0.100E+01*SUN;
+{ 13445} G1N503x                     =       GD02000 +      GND3004 +      GNO2                    : ARR( 0.200E+15,  6710., 0.0);
+{ 13446} G1N503x                     =       GND3001 +      GDO2000 +      GNO2                    : ARR( 0.200E+15,  6323., 0.0);
+{ 13447} GHN501Y +GHO                =       GNN5015 +      GHO                                    : ARR( 0.692E-11,     0., 0.0);
+{ 13448} GHN501Y +GHO                =       GHN504O +      GHO2                                   : ARR( 0.830E-12,     0., 0.0);
+{ 13449} GHN501Y +GHO                =       G2N501B                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 13450} GHN501Y+HV               =       G1N501C +      GHO                                    :  0.100E+01*SUN;
+{ 13451} GHN501Y+HV               =       G1H5033 +      GNO2                                   :  0.100E+01*SUN;
+{ 13452} GHN501Y+HV               =       G1H5034 +      GNO2                                   :  0.100E+01*SUN;
+{ 13453} G1H5033                     =       GD02000 +      GND3004 +      GHO                     : ARR( 0.200E+15,  5171., 0.0);
+{ 13454} G1H5033                     =       GHD3002 +      GDO2000 +      GNO2                    : ARR( 0.200E+15,  6323., 0.0);
+{ 13455} G1H5034                     =       G2H501g                                               : ARR( 0.240E+12,  4177., 0.0);
+{ 13456} G1H5034                     =       GHD3002 +      GDO2000 +      GNO2                    : ARR( 0.200E+15,  6234., 0.0);
+{ 13457} G1H5034                     =       GHN400p +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  5296., 0.0);
+{ 13458} G2H501g +GNO                =       G1H5035 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 13459} G2H501g +GNO                =       GHN503d                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 13460} G2H501g +GHO2               =       GHH501d                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 13461} G2H501g +GNO3               =       G1H5035 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 13462} G2H501g +MEPERO             =  0.480G1H5035 + 0.260GHN5035 + 0.260GHN5037                 : ARR( 0.164E-12,  -795., 0.0);
+{ 13463} G2H501g +PERO1              =  0.600G1H5035 + 0.200GHN5035 + 0.200GHN5037                 : ARR( 0.126E-12,  -850., 0.0);
+{ 13464} G2H501g +PERO2              =  0.560G1H5035 + 0.220GHN5035 + 0.220GHN5037                 : ARR( 0.471E-13, -1350., 0.0);
+{ 13465} G2H501g +PERO3              =  0.600G1H5035 + 0.200GHN5035 + 0.200GHN5037                 : ARR( 0.142E-12, -1200., 0.0);
+{ 13466} G2H501g +PERO5              =  0.600G1H5035 + 0.200GHN5035 + 0.200GHN5037                 : ARR( 0.533E-11,   500., 0.0);
+{ 13467} G2H501g +PERO6              =  0.460G1H5035 + 0.270GHN5035 + 0.270GHN5037                 : ARR( 0.488E-13, -1250., 0.0);
+{ 13468} G2H501g +PERO9              =  0.800G1H5035 + 0.200GHN5037                                : ARR( 0.100E-10,     0., 0.0);
+{ 13469} G1H5035                     =       GHN5036 +      GHO2                                   : ARR( 0.800E+11,  2744., 0.0);
+{ 13470} G1H5035                     =       GND400A +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{ 13471} GNN5015 +GHO                =       G2N503W                                               : ARR( 0.106E-12,     0., 0.0);
+{ 13472} GNN5015 +GHO                =       GNN502Y +      GHO2                                   : ARR( 0.833E-12,     0., 0.0);
+{ 13473} GNN5015 +GHO                =       G1N503a                                               : ARR( 0.218E-17,    85., 2.0);
+{ 13474} GNN5015+HV               =       G3K2000 +      GND3004 +      GNO2                    :  0.100E+01*SUN;
+{ 13475} GNN5015+HV               =       GNK3000 +      GND2000                                :  0.100E+01*SUN;
+{ 13476} GNN5015+HV               =       G1N501J +      GNO2                                   :  0.100E+01*SUN;
+{ 13477} GNN5015+HV               =       G1N501T +      GNO2                                   :  0.100E+01*SUN;
+{ 13478} G2N503W +GNO                =       G1N503y +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 13479} G2N503W +GNO                =       GNN501b                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 13480} G2N503W +GHO2               =       GHN504U                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 13481} G2N503W +GNO3               =       G1N503y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 13482} G2N503W +MEPERO             =  0.480G1N503y + 0.260GNN502C + 0.260GNN502c                 : ARR( 0.164E-12,  -795., 0.0);
+{ 13483} G2N503W +PERO1              =  0.600G1N503y + 0.200GNN502C + 0.200GNN502c                 : ARR( 0.126E-12,  -850., 0.0);
+{ 13484} G2N503W +PERO2              =  0.560G1N503y + 0.220GNN502C + 0.220GNN502c                 : ARR( 0.471E-13, -1350., 0.0);
+{ 13485} G2N503W +PERO3              =  0.600G1N503y + 0.200GNN502C + 0.200GNN502c                 : ARR( 0.142E-12, -1200., 0.0);
+{ 13486} G2N503W +PERO5              =  0.600G1N503y + 0.200GNN502C + 0.200GNN502c                 : ARR( 0.533E-11,   500., 0.0);
+{ 13487} G2N503W +PERO6              =  0.460G1N503y + 0.270GNN502C + 0.270GNN502c                 : ARR( 0.488E-13, -1250., 0.0);
+{ 13488} G2N503W +PERO9              =  0.800G1N503y + 0.200GNN502c                                : ARR( 0.100E-10,     0., 0.0);
+{ 13489} G1N503y                     =       G3N400B +      GCH2O                                  : ARR( 0.200E+15,  3640., 0.0);
+{ 13490} G3N400B +GHO2               =  0.800GGN400H + 0.200GAN400I + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 13491} G3N400B +GNO                =       GND3004 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 13492} G3N400B +GNO2               =       GPN400J                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 13493} G3N400B +GNO3               =       GND3004 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 13494} G3N400B +MEPERO             =  0.685GND3004 + 0.315GAN400I + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13495} G3N400B +PERO1              =  0.800GND3004 + 0.200GAN400I + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13496} G3N400B +PERO2              =  0.750GND3004 + 0.250GAN400I + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13497} G3N400B +PERO3              =  0.800GND3004 + 0.200GAN400I + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13498} G3N400B +PERO5              =  0.650GND3004 + 0.350GAN400I + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13499} G3N400B +PERO6              =  0.650GND3004 + 0.350GAN400I + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13500} G3N400B +PERO9              =       GND3004 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 13501} GND3004 +GHO                =       GND3005 +      GHO2                                   : ARR( 0.839E-12,     0., 0.0);
+{ 13502} GND3004 +GHO                =       G3N3004                                               : ARR( 0.433E-11,     0., 0.0);
+{ 13503} GND3004 +GNO3               =       G3N3004 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 13504} GND3004+HV               =       G1D3004 +      GNO2                                   :  0.100E+01*SUN;
+{ 13505} GND3004+HV               =       GDO2000 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 13506} G1D3004                     =       GCH2O   +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  6768., 0.0);
+{ 13507} G1D3004                     =       GDO2000 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5751., 0.0);
+{ 13508} GHH500O +GHO                =       GHN501c +      GHO                                    : ARR( 0.829E-11,     0., 0.0);
+{ 13509} GHH500O +GHO                =       GHN501S +      GHO                                    : ARR( 0.337E-10,     0., 0.0);
+{ 13510} GHH500O +GHO                =       G2H501h                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 13511} GHH500O +GHO                =       G2H500Q                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 13512} GHH500O+HV               =       G1H5036 +      GNO2                                   :  0.100E+01*SUN;
+{ 13513} GHH500O+HV               =       G1H502u +      GHO                                    :  0.100E+01*SUN;
+{ 13514} GHH500O+HV               =       G1H500X +      GHO                                    :  0.100E+01*SUN;
+{ 13515} G2H501h +GNO                =       G1H502u +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 13516} G2H501h +GNO                =       GHN501U                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 13517} G2H501h +GHO2               =       GHH500O                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 13518} G2H501h +GNO3               =       G1H502u +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 13519} G2H501h +MEPERO             =  0.340G1H502u + 0.330GHN501a + 0.330GHN501c                 : ARR( 0.565E-13,  -845., 0.0);
+{ 13520} G2H501h +PERO1              =  0.460G1H502u + 0.270GHN501a + 0.270GHN501c                 : ARR( 0.434E-13,  -900., 0.0);
+{ 13521} G2H501h +PERO2              =  0.400G1H502u + 0.300GHN501a + 0.300GHN501c                 : ARR( 0.162E-13, -1400., 0.0);
+{ 13522} G2H501h +PERO3              =  0.460G1H502u + 0.270GHN501a + 0.270GHN501c                 : ARR( 0.488E-13, -1250., 0.0);
+{ 13523} G2H501h +PERO5              =  0.460G1H502u + 0.270GHN501a + 0.270GHN501c                 : ARR( 0.183E-11,   450., 0.0);
+{ 13524} G2H501h +PERO6              =  0.300G1H502u + 0.350GHN501a + 0.350GHN501c                 : ARR( 0.168E-13, -1300., 0.0);
+{ 13525} G2H501h +PERO9              =  0.650G1H502u + 0.350GHN501c                                : ARR( 0.100E-10,     0., 0.0);
+{ 13526} G1H5036                     =       GHD3002 +      GD02000 +      GHO                     : ARR( 0.200E+15,  4440., 0.0);
+{ 13527} GHN501Z +GHO                =       GNK500a +      GHO                                    : ARR( 0.842E-11,     0., 0.0);
+{ 13528} GHN501Z +GHO                =       GHN501S +      GHO2                                   : ARR( 0.856E-11,     0., 0.0);
+{ 13529} GHN501Z +GHO                =       G2N503X                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 13530} GHN501Z+HV               =       G1H5037 +      GNO2                                   :  0.100E+01*SUN;
+{ 13531} GHN501Z+HV               =       G1N503g +      GHO                                    :  0.100E+01*SUN;
+{ 13532} G2N503X +GNO                =       G1N503g +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 13533} G2N503X +GNO                =       GNN500y                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 13534} G2N503X +GHO2               =       GHN501Z                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 13535} G2N503X +GNO3               =       G1N503g +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 13536} G2N503X +MEPERO             =  0.340G1N503g + 0.330GNO500S + 0.330GNK500a                 : ARR( 0.565E-13,  -845., 0.0);
+{ 13537} G2N503X +PERO1              =  0.460G1N503g + 0.270GNO500S + 0.270GNK500a                 : ARR( 0.434E-13,  -900., 0.0);
+{ 13538} G2N503X +PERO2              =  0.400G1N503g + 0.300GNO500S + 0.300GNK500a                 : ARR( 0.162E-13, -1400., 0.0);
+{ 13539} G2N503X +PERO3              =  0.460G1N503g + 0.270GNO500S + 0.270GNK500a                 : ARR( 0.488E-13, -1250., 0.0);
+{ 13540} G2N503X +PERO5              =  0.460G1N503g + 0.270GNO500S + 0.270GNK500a                 : ARR( 0.183E-11,   450., 0.0);
+{ 13541} G2N503X +PERO6              =  0.300G1N503g + 0.350GNO500S + 0.350GNK500a                 : ARR( 0.168E-13, -1300., 0.0);
+{ 13542} G2N503X +PERO9              =  0.650G1N503g + 0.350GNK500a                                : ARR( 0.100E-10,     0., 0.0);
+{ 13543} G1H5037                     =       GDO3001 +      GD02000 +      GHO                     : ARR( 0.200E+15,  4440., 0.0);
+{ 13544} GHN501a +GHO                =       GHN501c +      GHO2                                   : ARR( 0.208E-11,     0., 0.0);
+{ 13545} GHN501a +GHO                =       GNK500Y +      GHO                                    : ARR( 0.339E-10,     0., 0.0);
+{ 13546} GHN501a +GHO                =       G2N501C                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 13547} GHN501a+HV               =       G1H5038 +      GNO2                                   :  0.100E+01*SUN;
+{ 13548} GHN501a+HV               =       G1N501D +      GHO                                    :  0.100E+01*SUN;
+{ 13549} G1H5038                     =       GHD3002 +      GD02000 +      GHO2                    : ARR( 0.200E+15,  3232., 0.0);
+{ 13550} GNO500S +GHO                =       GNK500Y +      GHO2                                   : ARR( 0.884E-11,     0., 0.0);
+{ 13551} GNO500S +GHO                =       GNK500a +      GHO2                                   : ARR( 0.217E-11,     0., 0.0);
+{ 13552} GNO500S+HV               =       G1O500O +      GNO2                                   :  0.100E+01*SUN;
+{ 13553} GHN501b +GHO                =       GND500M +      GHO                                    : ARR( 0.519E-10,     0., 0.0);
+{ 13554} GHN501b +GHO                =       G2N501D                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 13555} GHN501b+HV               =       G1H5039 +      GNO2                                   :  0.100E+01*SUN;
+{ 13556} GHN501b+HV               =       G3N3001 +      G2H2000                                :  0.100E+01*SUN;
+{ 13557} GHN501b+HV               =       G1N501E +      GHO                                    :  0.100E+01*SUN;
+{ 13558} G1H5039                     =       GD02000 +      G3H3000                                : ARR( 0.200E+15,  2750., 0.0);
+{ 13559} GND500M +GHO                =       G3N500R                                               : ARR( 0.665E-10,     0., 0.0);
+{ 13560} GND500M +GNO3               =       G3N500R +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 13561} GND500M+HV               =       G1D500a +      GNO2                                   :  0.100E+01*SUN;
+{ 13562} GND500M+HV               =       G3N3001 +      G2D2000                                :  0.100E+01*SUN;
+{ 13563} GND500M+HV               =       G2N400b +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 13564} G3N500R +GHO2               =  0.800GGN500U + 0.200GAN500d + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 13565} G3N500R +GNO                =       G2N400b +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 13566} G3N500R +GNO2               =       GPN500f                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 13567} G3N500R +GNO3               =       G2N400b +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 13568} G3N500R +MEPERO             =  0.685G2N400b + 0.315GAN500d + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 13569} G3N500R +PERO1              =  0.800G2N400b + 0.200GAN500d + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 13570} G3N500R +PERO2              =  0.750G2N400b + 0.250GAN500d + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 13571} G3N500R +PERO3              =  0.800G2N400b + 0.200GAN500d + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 13572} G3N500R +PERO5              =  0.650G2N400b + 0.350GAN500d + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 13573} G3N500R +PERO6              =  0.650G2N400b + 0.350GAN500d + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 13574} G3N500R +PERO9              =       G2N400b +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 13575} G1D500a                     =       GD02000 +      G3D3000                                : ARR( 0.200E+15,  2726., 0.0);
+{ 13576} G2N400b +GNO                =       G1N400d +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 13577} G2N400b +GNO                =       GNN400Q                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 13578} G2N400b +GHO2               =       GHN400q                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 13579} G2N400b +GNO3               =       G1N400d +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 13580} G2N400b +MEPERO             =  0.480G1N400d + 0.260GNK400B + 0.260GND400I                 : ARR( 0.164E-12,  -795., 0.0);
+{ 13581} G2N400b +PERO1              =  0.600G1N400d + 0.200GNK400B + 0.200GND400I                 : ARR( 0.126E-12,  -850., 0.0);
+{ 13582} G2N400b +PERO2              =  0.560G1N400d + 0.220GNK400B + 0.220GND400I                 : ARR( 0.471E-13, -1350., 0.0);
+{ 13583} G2N400b +PERO3              =  0.600G1N400d + 0.200GNK400B + 0.200GND400I                 : ARR( 0.142E-12, -1200., 0.0);
+{ 13584} G2N400b +PERO5              =  0.600G1N400d + 0.200GNK400B + 0.200GND400I                 : ARR( 0.533E-11,   500., 0.0);
+{ 13585} G2N400b +PERO6              =  0.460G1N400d + 0.270GNK400B + 0.270GND400I                 : ARR( 0.488E-13, -1250., 0.0);
+{ 13586} G2N400b +PERO9              =  0.800G1N400d + 0.200GND400I                                : ARR( 0.100E-10,     0., 0.0);
+{ 13587} G1N400d                     =       G3N3001 +      GCH2O                                  : ARR( 0.200E+15,  3640., 0.0);
+{ 13588} GHN501c +GHO                =       GNK500Z +      GHO                                    : ARR( 0.210E-10,     0., 0.0);
+{ 13589} GHN501c +GHO                =       G2N501E                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 13590} GHN501c+HV               =       G1H503A +      GNO2                                   :  0.100E+01*SUN;
+{ 13591} GHN501c+HV               =       G3N3001 +      GD02000 +      GHO                     :  0.100E+01*SUN;
+{ 13592} GHN501c+HV               =       G1N501F +      GHO                                    :  0.100E+01*SUN;
+{ 13593} G1H503A                     =       G3H3001 +      GD02000                                : ARR( 0.200E+15,  2777., 0.0);
+{ 13594} GNK500a +GHO                =       G2N503Y                                               : ARR( 0.553E-12,     0., 0.0);
+{ 13595} GNK500a +GHO                =       GNK500Z +      GHO2                                   : ARR( 0.532E-11,     0., 0.0);
+{ 13596} GNK500a+HV               =       G3K3002 +      GD02000 +      GNO2                    :  0.100E+01*SUN;
+{ 13597} GNK500a+HV               =       G1K500H +      GNO2                                   :  0.100E+01*SUN;
+{ 13598} G2N503Y +GNO                =       G1N503z +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 13599} G2N503Y +GNO                =       GNN501j                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 13600} G2N503Y +GHO2               =       GHN504W                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 13601} G2N503Y +GNO3               =       G1N503z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 13602} G2N503Y +MEPERO             =  0.480G1N503z + 0.260GNK500i + 0.260GND5013                 : ARR( 0.164E-12,  -795., 0.0);
+{ 13603} G2N503Y +PERO1              =  0.600G1N503z + 0.200GNK500i + 0.200GND5013                 : ARR( 0.126E-12,  -850., 0.0);
+{ 13604} G2N503Y +PERO2              =  0.560G1N503z + 0.220GNK500i + 0.220GND5013                 : ARR( 0.471E-13, -1350., 0.0);
+{ 13605} G2N503Y +PERO3              =  0.600G1N503z + 0.200GNK500i + 0.200GND5013                 : ARR( 0.142E-12, -1200., 0.0);
+{ 13606} G2N503Y +PERO5              =  0.600G1N503z + 0.200GNK500i + 0.200GND5013                 : ARR( 0.533E-11,   500., 0.0);
+{ 13607} G2N503Y +PERO6              =  0.460G1N503z + 0.270GNK500i + 0.270GND5013                 : ARR( 0.488E-13, -1250., 0.0);
+{ 13608} G2N503Y +PERO9              =  0.800G1N503z + 0.200GND5013                                : ARR( 0.100E-10,     0., 0.0);
+{ 13609} G1N503z                     =       GND400I +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4576., 0.0);
+{ 13610} GGN3001 +GHO                =       G3N3001                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 13611} GGN3001+HV               =       G1G3001 +      GNO2                                   :  0.100E+01*SUN;
+{ 13612} GGN3001+HV               =       GD02000 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 13613} GAN3001 +GHO                =       G2A3004                                               : ARR( 0.335E-13,     0., 0.0);
+{ 13614} GAN3001 +GHO                =       GAK3000 +      GNO2                                   : ARR( 0.432E-13,     0., 0.0);
+{ 13615} GAN3001 +GHO                =       GD02000 +      GNO2    +      GCO2                    : ARR( 0.520E-12,     0., 0.0);
+{ 13616} GAN3001+HV               =       G1A3001 +      GNO2                                   :  0.100E+01*SUN;
+{ 13617} GPN3001                     =       G3N3001 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 13618} GPN3001 +GHO                =       G2P3004                                               : ARR( 0.335E-13,     0., 0.0);
+{ 13619} GPN3001 +GHO                =       GPK3000 +      GNO2                                   : ARR( 0.584E-13,     0., 0.0);
+{ 13620} GPN3001+HV               =       G1P3001 +      GNO2                                   :  0.100E+01*SUN;
+{ 13621} GPN3001+HV               =       G3N3001 +      GNO2                                   :  0.100E+01*SUN;
+{ 13622} GHH500P +GHO                =       GHD5007 +      GHO                                    : ARR( 0.331E-10,     0., 0.0);
+{ 13623} GHH500P +GHO                =       GHH501S +      GHO2                                   : ARR( 0.212E-10,     0., 0.0);
+{ 13624} GHH500P +GHO                =       G2H500R                                               : ARR( 0.391E-11,  -190., 0.0);
+{ 13625} GHH500P+HV               =       G1H500Z +      GHO                                    :  0.200E+01*SUN;
+{ 13626} GGN5005 +GHO                =       GGN500b +      GHO2                                   : ARR( 0.884E-11,     0., 0.0);
+{ 13627} GGN5005 +GHO                =       G3N5004                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 13628} GGN5005+HV               =       G1G5004 +      GNO2                                   :  0.100E+01*SUN;
+{ 13629} GGN5005+HV               =       GDO4001 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 13630} GAN5005 +GHO                =       GAN500j +      GHO2                                   : ARR( 0.898E-11,     0., 0.0);
+{ 13631} GAN5005 +GHO                =       GDO4001 +      GNO2    +      GCO2                    : ARR( 0.558E-12,     0., 0.0);
+{ 13632} GAN5005+HV               =       G1A5004 +      GNO2                                   :  0.100E+01*SUN;
+{ 13633} GPN5005                     =       G3N5004 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 13634} GPN5005 +GHO                =       GPN500l +      GHO2                                   : ARR( 0.904E-11,     0., 0.0);
+{ 13635} GPN5005+HV               =       G1P5004 +      GNO2                                   :  0.100E+01*SUN;
+{ 13636} GPN5005+HV               =       G3N5004 +      GNO2                                   :  0.100E+01*SUN;
+{ 13637} GDD4001 +GHO                =       G3D4001                                               : ARR( 0.217E-10,     0., 0.0);
+{ 13638} GDD4001 +GHO                =       GDD4002 +      GHO2                                   : ARR( 0.209E-10,     0., 0.0);
+{ 13639} GDD4001 +GHO                =       G3D4002                                               : ARR( 0.217E-10,     0., 0.0);
+{ 13640} GDD4001 +GNO3               =       G3D4001 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 13641} GDD4001 +GNO3               =       G3D4002 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 13642} GDD4001+HV               =       GCO     +      G2D3003 +      GHO2                    :  0.100E+01*SUN;
+{ 13643} GDD4001+HV               =       GDD3000 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 13644} G3D4001 +GHO2               =  0.800GGD4001 + 0.200GAD4001 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 13645} G3D4001 +GNO                =       G2D3003 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 13646} G3D4001 +GNO2               =       GPD4001                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 13647} G3D4001 +GNO3               =       G2D3003 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 13648} G3D4001 +MEPERO             =  0.685G2D3003 + 0.315GAD4001 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 13649} G3D4001 +PERO1              =  0.800G2D3003 + 0.200GAD4001 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 13650} G3D4001 +PERO2              =  0.750G2D3003 + 0.250GAD4001 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 13651} G3D4001 +PERO3              =  0.800G2D3003 + 0.200GAD4001 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 13652} G3D4001 +PERO5              =  0.650G2D3003 + 0.350GAD4001 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 13653} G3D4001 +PERO6              =  0.650G2D3003 + 0.350GAD4001 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 13654} G3D4001 +PERO9              =       G2D3003 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 13655} G3D4002 +GHO2               =  0.800GGD4002 + 0.200GAD4002 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 13656} G3D4002 +GNO                =       GDD3000 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 13657} G3D4002 +GNO2               =       GPD4002                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 13658} G3D4002 +GNO3               =       GDD3000 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 13659} G3D4002 +MEPERO             =  0.685GDD3000 + 0.315GAD4002 + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13660} G3D4002 +PERO1              =  0.800GDD3000 + 0.200GAD4002 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13661} G3D4002 +PERO2              =  0.750GDD3000 + 0.250GAD4002 + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13662} G3D4002 +PERO3              =  0.800GDD3000 + 0.200GAD4002 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13663} G3D4002 +PERO5              =  0.650GDD3000 + 0.350GAD4002 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13664} G3D4002 +PERO6              =  0.650GDD3000 + 0.350GAD4002 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13665} G3D4002 +PERO9              =       GDD3000 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 13666} G2D3003 +GNO                =       G1D3003 +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{ 13667} G2D3003 +GNO                =       GND3002                                               : ARR( 0.622E-13,  -360., 0.0);
+{ 13668} G2D3003 +GHO2               =       GHD3005                                               : ARR( 0.179E-12, -1250., 0.0);
+{ 13669} G2D3003 +GNO3               =       G1D3003 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 13670} G2D3003 +MEPERO             =  0.480G1D3003 + 0.260GDO3002 + 0.260GDD3001                 : ARR( 0.164E-12,  -795., 0.0);
+{ 13671} G2D3003 +PERO1              =  0.600G1D3003 + 0.200GDO3002 + 0.200GDD3001                 : ARR( 0.126E-12,  -850., 0.0);
+{ 13672} G2D3003 +PERO2              =  0.560G1D3003 + 0.220GDO3002 + 0.220GDD3001                 : ARR( 0.471E-13, -1350., 0.0);
+{ 13673} G2D3003 +PERO3              =  0.600G1D3003 + 0.200GDO3002 + 0.200GDD3001                 : ARR( 0.142E-12, -1200., 0.0);
+{ 13674} G2D3003 +PERO5              =  0.600G1D3003 + 0.200GDO3002 + 0.200GDD3001                 : ARR( 0.533E-11,   500., 0.0);
+{ 13675} G2D3003 +PERO6              =  0.460G1D3003 + 0.270GDO3002 + 0.270GDD3001                 : ARR( 0.488E-13, -1250., 0.0);
+{ 13676} G2D3003 +PERO9              =  0.800G1D3003 + 0.200GDD3001                                : ARR( 0.100E-10,     0., 0.0);
+{ 13677} GND500N +GHO                =       GND5014 +      GHO2                                   : ARR( 0.845E-12,     0., 0.0);
+{ 13678} GND500N +GHO                =       G3N4003 +      GCO                                    : ARR( 0.133E-10,     0., 0.0);
+{ 13679} GND500N +GNO3               =       G3N4003 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 13680} GND500N+HV               =       G1D500J +      GNO2                                   :  0.100E+01*SUN;
+{ 13681} GND500N+HV               =       G3N4003 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 13682} GND500N+HV               =       GND4002 +      GCO                                    :  0.100E+01*SUN;
+{ 13683} GND500N+HV               =       GNO3001 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 13684} GHN501d +GHO                =       GNK500c +      GHO                                    : ARR( 0.535E-11,     0., 0.0);
+{ 13685} GHN501d +GHO                =       GHN504X +      GHO2                                   : ARR( 0.857E-12,     0., 0.0);
+{ 13686} GHN501d +GHO                =       G2N501H                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 13687} GHN501d+HV               =       G3K2000 +      GND3004 +      GHO                     :  0.100E+01*SUN;
+{ 13688} GHN501d+HV               =       G1N501J +      GHO                                    :  0.100E+01*SUN;
+{ 13689} GHN501d+HV               =       G1H500f +      GNO2                                   :  0.100E+01*SUN;
+{ 13690} GNK500b +GHO                =       GNK500c +      GHO2                                   : ARR( 0.145E-11,     0., 0.0);
+{ 13691} GNK500b +GHO                =       GKK500C +      GNO2                                   : ARR( 0.432E-12,     0., 0.0);
+{ 13692} GNK500b +GHO                =       GND5015 +      GHO2                                   : ARR( 0.931E-12,     0., 0.0);
+{ 13693} GNK500b+HV               =       G3K2000 +      GND3004 +      GHO2                    :  0.100E+01*SUN;
+{ 13694} GNK500b+HV               =       G1K500Q +      GNO2                                   :  0.100E+01*SUN;
+{ 13695} GNK500c +GHO                =       G2N503Z                                               : ARR( 0.102E-12,     0., 0.0);
+{ 13696} GNK500c +GHO                =       GKK500B +      GNO2                                   : ARR( 0.718E-13,     0., 0.0);
+{ 13697} GNK500c +GHO                =       GND5011 +      GHO2                                   : ARR( 0.804E-12,     0., 0.0);
+{ 13698} GNK500c +GHO                =       G1N503d                                               : ARR( 0.210E-17,    85., 2.0);
+{ 13699} GNK500c+HV               =       G3K2000 +      G3N3004                                :  0.100E+01*SUN;
+{ 13700} GNK500c+HV               =       G1K500P +      GNO2                                   :  0.100E+01*SUN;
+{ 13701} G2N503Z +GNO                =       G1N5041 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 13702} G2N503Z +GNO                =       GNN501s                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 13703} G2N503Z +GHO2               =       GHN504Y                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 13704} G2N503Z +GNO3               =       G1N5041 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 13705} G2N503Z +MEPERO             =  0.480G1N5041 + 0.260GNK5016 + 0.260GND5016                 : ARR( 0.164E-12,  -795., 0.0);
+{ 13706} G2N503Z +PERO1              =  0.600G1N5041 + 0.200GNK5016 + 0.200GND5016                 : ARR( 0.126E-12,  -850., 0.0);
+{ 13707} G2N503Z +PERO2              =  0.560G1N5041 + 0.220GNK5016 + 0.220GND5016                 : ARR( 0.471E-13, -1350., 0.0);
+{ 13708} G2N503Z +PERO3              =  0.600G1N5041 + 0.200GNK5016 + 0.200GND5016                 : ARR( 0.142E-12, -1200., 0.0);
+{ 13709} G2N503Z +PERO5              =  0.600G1N5041 + 0.200GNK5016 + 0.200GND5016                 : ARR( 0.533E-11,   500., 0.0);
+{ 13710} G2N503Z +PERO6              =  0.460G1N5041 + 0.270GNK5016 + 0.270GND5016                 : ARR( 0.488E-13, -1250., 0.0);
+{ 13711} G2N503Z +PERO9              =  0.800G1N5041 + 0.200GND5016                                : ARR( 0.100E-10,     0., 0.0);
+{ 13712} G1N5041                     =       G3N3004 +      GCH2O   +      GCO                     : ARR( 0.200E+15,  3897., 0.0);
+{ 13713} GHN3009 +GHO                =       GHN300A +      GHO2                                   : ARR( 0.831E-12,     0., 0.0);
+{ 13714} GHN3009 +GHO                =       GND3004 +      GHO                                    : ARR( 0.333E-11,     0., 0.0);
+{ 13715} GHN3009 +GHO                =       G2N3008                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 13716} GHN3009+HV               =       G1H3006 +      GNO2                                   :  0.100E+01*SUN;
+{ 13717} GHN3009+HV               =       G1N3008 +      GHO                                    :  0.100E+01*SUN;
+{ 13718} GNO3004 +GHO                =       GND3004 +      GHO2                                   : ARR( 0.161E-11,     0., 0.0);
+{ 13719} GNO3004 +GHO                =       GKO3001 +      GNO2                                   : ARR( 0.118E-12,     0., 0.0);
+{ 13720} GNO3004 +GHO                =       G1N3008                                               : ARR( 0.420E-17,    85., 2.0);
+{ 13721} GNO3004+HV               =       G1O3004 +      GNO2                                   :  0.100E+01*SUN;
+{ 13722} GGN4003 +GHO                =       GGN400I +      GHO2                                   : ARR( 0.883E-12,     0., 0.0);
+{ 13723} GGN4003 +GHO                =       G3N4003                                               : ARR( 0.209E-11,  -190., 0.0);
+{ 13724} GGN4003+HV               =       G1G4008 +      GNO2                                   :  0.100E+01*SUN;
+{ 13725} GGN4003+HV               =       G2N3008 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 13726} GAN4003 +GHO                =       GAN400J +      GHO2                                   : ARR( 0.804E-12,     0., 0.0);
+{ 13727} GAN4003 +GHO                =       GAK4003 +      GNO2                                   : ARR( 0.118E-12,     0., 0.0);
+{ 13728} GAN4003 +GHO                =       G2A400A                                               : ARR( 0.128E-12,     0., 0.0);
+{ 13729} GAN4003 +GHO                =       G1A400B                                               : ARR( 0.210E-17,    85., 2.0);
+{ 13730} GAN4003 +GHO                =       G2N3008 +      GCO2                                   : ARR( 0.520E-12,     0., 0.0);
+{ 13731} GAN4003+HV               =       G1A4008 +      GNO2                                   :  0.100E+01*SUN;
+{ 13732} G2A400A +GNO                =       G1A400C +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 13733} G2A400A +GNO                =       GAN400I                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 13734} G2A400A +GHO2               =       GAH400C                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 13735} G2A400A +GNO3               =       G1A400C +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 13736} G2A400A +MEPERO             =  0.340G1A400C + 0.330GAN400K + 0.330GAN400L                 : ARR( 0.565E-13,  -845., 0.0);
+{ 13737} G2A400A +PERO1              =  0.460G1A400C + 0.270GAN400K + 0.270GAN400L                 : ARR( 0.434E-13,  -900., 0.0);
+{ 13738} G2A400A +PERO2              =  0.400G1A400C + 0.300GAN400K + 0.300GAN400L                 : ARR( 0.162E-13, -1400., 0.0);
+{ 13739} G2A400A +PERO3              =  0.460G1A400C + 0.270GAN400K + 0.270GAN400L                 : ARR( 0.488E-13, -1250., 0.0);
+{ 13740} G2A400A +PERO5              =  0.460G1A400C + 0.270GAN400K + 0.270GAN400L                 : ARR( 0.183E-11,   450., 0.0);
+{ 13741} G2A400A +PERO6              =  0.300G1A400C + 0.350GAN400K + 0.350GAN400L                 : ARR( 0.168E-13, -1300., 0.0);
+{ 13742} G2A400A +PERO9              =  0.650G1A400C + 0.350GAN400L                                : ARR( 0.100E-10,     0., 0.0);
+{ 13743} G1A400B +OXYGEN             =       GAN400J +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 13744} G1A400B                     =       GAD3000 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7175., 0.0);
+{ 13745} G1A400C                     =       GND3004 +      GCO     +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 13746} GPN4003                     =       G3N4003 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 13747} GPN4003 +GHO                =       GPN400H +      GHO2                                   : ARR( 0.804E-12,     0., 0.0);
+{ 13748} GPN4003 +GHO                =       GPK4003 +      GNO2                                   : ARR( 0.118E-12,     0., 0.0);
+{ 13749} GPN4003 +GHO                =       G2P400B                                               : ARR( 0.172E-12,     0., 0.0);
+{ 13750} GPN4003 +GHO                =       G1P400A                                               : ARR( 0.210E-17,    85., 2.0);
+{ 13751} GPN4003+HV               =       G1P4008 +      GNO2                                   :  0.100E+01*SUN;
+{ 13752} GPN4003+HV               =       G3N4003 +      GNO2                                   :  0.100E+01*SUN;
+{ 13753} G2P400B +GNO                =       G1P400C +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 13754} G2P400B +GNO                =       GPN400J                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 13755} G2P400B +GHO2               =       GPH400D                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 13756} G2P400B +GNO3               =       G1P400C +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 13757} G2P400B +MEPERO             =  0.340G1P400C + 0.330GPN400K + 0.330GPN400L                 : ARR( 0.565E-13,  -845., 0.0);
+{ 13758} G2P400B +PERO1              =  0.460G1P400C + 0.270GPN400K + 0.270GPN400L                 : ARR( 0.434E-13,  -900., 0.0);
+{ 13759} G2P400B +PERO2              =  0.400G1P400C + 0.300GPN400K + 0.300GPN400L                 : ARR( 0.162E-13, -1400., 0.0);
+{ 13760} G2P400B +PERO3              =  0.460G1P400C + 0.270GPN400K + 0.270GPN400L                 : ARR( 0.488E-13, -1250., 0.0);
+{ 13761} G2P400B +PERO5              =  0.460G1P400C + 0.270GPN400K + 0.270GPN400L                 : ARR( 0.183E-11,   450., 0.0);
+{ 13762} G2P400B +PERO6              =  0.300G1P400C + 0.350GPN400K + 0.350GPN400L                 : ARR( 0.168E-13, -1300., 0.0);
+{ 13763} G2P400B +PERO9              =  0.650G1P400C + 0.350GPN400L                                : ARR( 0.100E-10,     0., 0.0);
+{ 13764} G1P400C                     =       GND3004 +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 13765} GNO500T +GHO                =       G2N501K                                               : ARR( 0.345E-12,     0., 0.0);
+{ 13766} GNO500T +GHO                =       GNK500d +      GHO2                                   : ARR( 0.345E-11,     0., 0.0);
+{ 13767} GNO500T +GHO                =       G1N501L                                               : ARR( 0.432E-17,    85., 2.0);
+{ 13768} GNO500T+HV               =       G1O500N +      GNO2                                   :  0.100E+01*SUN;
+{ 13769} GHO500M +GHO                =       GHK500P +      GHO2                                   : ARR( 0.169E-10,     0., 0.0);
+{ 13770} GHO500M +GHO                =       GKO500G +      GHO                                    : ARR( 0.416E-10,     0., 0.0);
+{ 13771} GHO500M +GHO                =       G2O500M                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 13772} GHO500M+HV               =       G1O500N +      GHO                                    :  0.100E+01*SUN;
+{ 13773} GOO500B +GHO                =       GKO500H +      GHO2                                   : ARR( 0.172E-10,     0., 0.0);
+{ 13774} GOO500B +GHO                =       GKO500G +      GHO2                                   : ARR( 0.106E-10,     0., 0.0);
+{ 13775} GKO500G +GHO                =       G2K500d                                               : ARR( 0.109E-11,     0., 0.0);
+{ 13776} GKO500G +GHO                =       GKK5007 +      GHO2                                   : ARR( 0.105E-10,     0., 0.0);
+{ 13777} GKO500G+HV               =       G3K3002 +      GD02000 +      GHO2                    :  0.100E+01*SUN;
+{ 13778} G2K500d +GNO                =       G1K500m +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 13779} G2K500d +GNO                =       GNK500f                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 13780} G2K500d +GHO2               =       GHK500n                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 13781} G2K500d +GNO3               =       G1K500m +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 13782} G2K500d +MEPERO             =  0.480G1K500m + 0.260GKO500I + 0.260GDK500B                 : ARR( 0.164E-12,  -795., 0.0);
+{ 13783} G2K500d +PERO1              =  0.600G1K500m + 0.200GKO500I + 0.200GDK500B                 : ARR( 0.126E-12,  -850., 0.0);
+{ 13784} G2K500d +PERO2              =  0.560G1K500m + 0.220GKO500I + 0.220GDK500B                 : ARR( 0.471E-13, -1350., 0.0);
+{ 13785} G2K500d +PERO3              =  0.600G1K500m + 0.200GKO500I + 0.200GDK500B                 : ARR( 0.142E-12, -1200., 0.0);
+{ 13786} G2K500d +PERO5              =  0.600G1K500m + 0.200GKO500I + 0.200GDK500B                 : ARR( 0.533E-11,   500., 0.0);
+{ 13787} G2K500d +PERO6              =  0.460G1K500m + 0.270GKO500I + 0.270GDK500B                 : ARR( 0.488E-13, -1250., 0.0);
+{ 13788} G2K500d +PERO9              =  0.800G1K500m + 0.200GDK500B                                : ARR( 0.100E-10,     0., 0.0);
+{ 13789} G1K500m                     =       GDK4004 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4576., 0.0);
+{ 13790} GHN501e +GHO                =       GHN501k +      GHO2                                   : ARR( 0.212E-11,     0., 0.0);
+{ 13791} GHN501e +GHO                =       GND500O +      GHO                                    : ARR( 0.166E-10,     0., 0.0);
+{ 13792} GHN501e +GHO                =       G2N501I                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 13793} GHN501e+HV               =       G1H503B +      GNO2                                   :  0.100E+01*SUN;
+{ 13794} GHN501e+HV               =       G1N501K +      GHO                                    :  0.100E+01*SUN;
+{ 13795} G1H503B                     =       GD03000 +      GHD2000 +      GHO2                    : ARR( 0.200E+15,  3320., 0.0);
+{ 13796} GND500O +GHO                =       GND500R +      GHO2                                   : ARR( 0.131E-11,     0., 0.0);
+{ 13797} GND500O +GHO                =       G3N500S                                               : ARR( 0.216E-10,     0., 0.0);
+{ 13798} GND500O +GNO3               =       G3N500S +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 13799} GND500O+HV               =       G1D500U +      GNO2                                   :  0.100E+01*SUN;
+{ 13800} GND500O+HV               =       GND4005 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 13801} G3N500S +GHO2               =  0.800GGN500d + 0.200GAN500U + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 13802} G3N500S +GNO                =       GND4005 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 13803} G3N500S +GNO2               =       GPN500U                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 13804} G3N500S +GNO3               =       GND4005 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 13805} G3N500S +MEPERO             =  0.685GND4005 + 0.315GAN500U + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13806} G3N500S +PERO1              =  0.800GND4005 + 0.200GAN500U + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13807} G3N500S +PERO2              =  0.750GND4005 + 0.250GAN500U + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13808} G3N500S +PERO3              =  0.800GND4005 + 0.200GAN500U + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13809} G3N500S +PERO5              =  0.650GND4005 + 0.350GAN500U + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13810} G3N500S +PERO6              =  0.650GND4005 + 0.350GAN500U + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13811} G3N500S +PERO9              =       GND4005 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 13812} GHN501f +GHO                =       GHN501j +      GHO2                                   : ARR( 0.176E-11,     0., 0.0);
+{ 13813} GHN501f +GHO                =       GNK500d +      GHO                                    : ARR( 0.703E-11,     0., 0.0);
+{ 13814} GHN501f +GHO                =       G2N501J                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 13815} GHN501f+HV               =       G1H503C +      GNO2                                   :  0.100E+01*SUN;
+{ 13816} GHN501f+HV               =       G1N501L +      GHO                                    :  0.100E+01*SUN;
+{ 13817} G1H503C                     =       GHD3002 +      GD02000 +      GHO2                    : ARR( 0.200E+15,  3962., 0.0);
+{ 13818} GNK500d +GHO                =       G2N503a                                               : ARR( 0.182E-12,     0., 0.0);
+{ 13819} GNK500d +GHO                =       GNK500g +      GHO2                                   : ARR( 0.182E-11,     0., 0.0);
+{ 13820} GNK500d +GHO                =       G1N501P                                               : ARR( 0.228E-17,    85., 2.0);
+{ 13821} GNK500d+HV               =       G1K500n +      GNO2                                   :  0.100E+01*SUN;
+{ 13822} GNK500d+HV               =       G3N400C +      GCH3O2                                 :  0.100E+01*SUN;
+{ 13823} GNK500d+HV               =       GD02000 +      GNK3000                                :  0.100E+01*SUN;
+{ 13824} G2N503a +GNO                =       G1N5042 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 13825} G2N503a +GNO                =       GNN501w                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 13826} G2N503a +GHO2               =       GHN504Z                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 13827} G2N503a +GNO3               =       G1N5042 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 13828} G2N503a +MEPERO             =  0.480G1N5042 + 0.260GNK500e + 0.260GND5017                 : ARR( 0.164E-12,  -795., 0.0);
+{ 13829} G2N503a +PERO1              =  0.600G1N5042 + 0.200GNK500e + 0.200GND5017                 : ARR( 0.126E-12,  -850., 0.0);
+{ 13830} G2N503a +PERO2              =  0.560G1N5042 + 0.220GNK500e + 0.220GND5017                 : ARR( 0.471E-13, -1350., 0.0);
+{ 13831} G2N503a +PERO3              =  0.600G1N5042 + 0.200GNK500e + 0.200GND5017                 : ARR( 0.142E-12, -1200., 0.0);
+{ 13832} G2N503a +PERO5              =  0.600G1N5042 + 0.200GNK500e + 0.200GND5017                 : ARR( 0.533E-11,   500., 0.0);
+{ 13833} G2N503a +PERO6              =  0.460G1N5042 + 0.270GNK500e + 0.270GND5017                 : ARR( 0.488E-13, -1250., 0.0);
+{ 13834} G2N503a +PERO9              =  0.800G1N5042 + 0.200GND5017                                : ARR( 0.100E-10,     0., 0.0);
+{ 13835} G1K500n                     =       GDO3001 +      G3K2000                                : ARR( 0.200E+15,  2923., 0.0);
+{ 13836} G3N400C +GHO2               =  0.800GGN4005 + 0.200GAN4005 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 13837} G3N400C +GNO                =       GDO3001 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 13838} G3N400C +GNO2               =       GPN4005                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 13839} G3N400C +GNO3               =       GDO3001 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 13840} G3N400C +MEPERO             =  0.685GDO3001 + 0.315GAN4005 + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13841} G3N400C +PERO1              =  0.800GDO3001 + 0.200GAN4005 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13842} G3N400C +PERO2              =  0.750GDO3001 + 0.250GAN4005 + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13843} G3N400C +PERO3              =  0.800GDO3001 + 0.200GAN4005 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13844} G3N400C +PERO5              =  0.650GDO3001 + 0.350GAN4005 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13845} G3N400C +PERO6              =  0.650GDO3001 + 0.350GAN4005 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13846} G3N400C +PERO9              =       GDO3001 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 13847} G1N5042                     =       GND4008 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4427., 0.0);
+{ 13848} GNN5016 +GHO                =       G2N503R                                               : ARR( 0.178E-12,     0., 0.0);
+{ 13849} GNN5016 +GHO                =       GNN501w +      GHO2                                   : ARR( 0.178E-11,     0., 0.0);
+{ 13850} GNN5016 +GHO                =       GNN5027 +      GHO2                                   : ARR( 0.439E-12,     0., 0.0);
+{ 13851} GNN5016 +GHO                =       G1N502b                                               : ARR( 0.224E-17,    85., 2.0);
+{ 13852} GNN5016 +GHO                =       G1N503n                                               : ARR( 0.224E-17,    85., 2.0);
+{ 13853} GNN5016+HV               =       G1N501N +      GNO2                                   :  0.100E+01*SUN;
+{ 13854} GNN5016+HV               =       G1N501M +      GNO2                                   :  0.100E+01*SUN;
+{ 13855} GHN501g +GHO                =       GHN504Z +      GHO2                                   : ARR( 0.172E-11,     0., 0.0);
+{ 13856} GHN501g +GHO                =       GHN504a +      GHO2                                   : ARR( 0.211E-11,     0., 0.0);
+{ 13857} GHN501g +GHO                =       GND500P +      GHO                                    : ARR( 0.165E-10,     0., 0.0);
+{ 13858} GHN501g +GHO                =       G2N501K                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 13859} GHN501g+HV               =       G1H503D +      GNO2                                   :  0.100E+01*SUN;
+{ 13860} GHN501g+HV               =       G1N501M +      GHO                                    :  0.100E+01*SUN;
+{ 13861} G1H503D                     =       GD02000 +      GHD3005 +      GHO2                    : ARR( 0.200E+15,  3962., 0.0);
+{ 13862} G1H503D                     =       GDO3001 +      GHD2000 +      GHO2                    : ARR( 0.200E+15,  3575., 0.0);
+{ 13863} GNO500U +GHO                =       GNK500e +      GHO2                                   : ARR( 0.183E-11,     0., 0.0);
+{ 13864} GNO500U +GHO                =       GNK5013 +      GHO2                                   : ARR( 0.225E-11,     0., 0.0);
+{ 13865} GNO500U +GHO                =       GND500P +      GHO2                                   : ARR( 0.439E-11,     0., 0.0);
+{ 13866} GNO500U+HV               =       G1O500P +      GNO2                                   :  0.100E+01*SUN;
+{ 13867} GND500P +GHO                =       GND5017 +      GHO2                                   : ARR( 0.173E-11,     0., 0.0);
+{ 13868} GND500P +GHO                =       GND500v +      GHO2                                   : ARR( 0.130E-11,     0., 0.0);
+{ 13869} GND500P +GHO                =       G3N500T                                               : ARR( 0.215E-10,     0., 0.0);
+{ 13870} GND500P +GNO3               =       G3N500T +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 13871} GND500P+HV               =       G1D500A +      GNO2                                   :  0.100E+01*SUN;
+{ 13872} GND500P+HV               =       GND4007 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 13873} G3N500T +GHO2               =  0.800GGN500g + 0.200GAN500n + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 13874} G3N500T +GNO                =       GND4007 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 13875} G3N500T +GNO2               =       GPN500o                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 13876} G3N500T +GNO3               =       GND4007 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 13877} G3N500T +MEPERO             =  0.685GND4007 + 0.315GAN500n + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13878} G3N500T +PERO1              =  0.800GND4007 + 0.200GAN500n + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13879} G3N500T +PERO2              =  0.750GND4007 + 0.250GAN500n + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13880} G3N500T +PERO3              =  0.800GND4007 + 0.200GAN500n + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13881} G3N500T +PERO5              =  0.650GND4007 + 0.350GAN500n + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13882} G3N500T +PERO6              =  0.650GND4007 + 0.350GAN500n + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13883} G3N500T +PERO9              =       GND4007 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 13884} GNK500e +GHO                =       GNK500h +      GHO2                                   : ARR( 0.221E-11,     0., 0.0);
+{ 13885} GNK500e +GHO                =       GND5017 +      GHO2                                   : ARR( 0.432E-11,     0., 0.0);
+{ 13886} GNK500e+HV               =       G3K2000 +      GDO3002 +      GNO2                    :  0.100E+01*SUN;
+{ 13887} GNK500e+HV               =       GNK3000 +      GDO2000                                :  0.100E+01*SUN;
+{ 13888} GNK500e+HV               =       G1K500o +      GNO2                                   :  0.100E+01*SUN;
+{ 13889} G1K500o                     =       G3K2000 +      GDO3002                                : ARR( 0.200E+15,  2923., 0.0);
+{ 13890} GND4007 +GHO                =       GND4008 +      GHO2                                   : ARR( 0.178E-11,     0., 0.0);
+{ 13891} GND4007 +GHO                =       G3N400C                                               : ARR( 0.443E-11,     0., 0.0);
+{ 13892} GND4007 +GNO3               =       G3N400C +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 13893} GND4007+HV               =       G1D400C +      GNO2                                   :  0.100E+01*SUN;
+{ 13894} GND4007+HV               =       GDO3001 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 13895} GND4007+HV               =       GD02000 +      GND2000                                :  0.100E+01*SUN;
+{ 13896} G1D400C                     =       GD02000 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  5435., 0.0);
+{ 13897} G1D400C                     =       GDO3001 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 13898} GHO500N +GHO                =       GHK500Q +      GHO2                                   : ARR( 0.847E-11,     0., 0.0);
+{ 13899} GHO500N +GHO                =       GHK500L +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 13900} GHO500N +GHO                =       GKO500H +      GHO                                    : ARR( 0.339E-10,     0., 0.0);
+{ 13901} GHO500N +GHO                =       G2O500N                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 13902} GHO500N+HV               =       G1O500O +      GHO                                    :  0.100E+01*SUN;
+{ 13903} GKO500H +GHO                =       GKK5008 +      GHO2                                   : ARR( 0.270E-10,     0., 0.0);
+{ 13904} GKO500H +GHO                =       GKK5007 +      GHO2                                   : ARR( 0.639E-11,     0., 0.0);
+{ 13905} GKO500H+HV               =       G3K4008 +      GCH3O2                                 :  0.100E+01*SUN;
+{ 13906} G3K4008 +GHO2               =  0.800GGO4003 + 0.200GAO4003 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 13907} G3K4008 +GNO                =       GDO3001 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 13908} G3K4008 +GNO2               =       GPO4003                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 13909} G3K4008 +GNO3               =       GDO3001 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 13910} G3K4008 +MEPERO             =  0.685GDO3001 + 0.315GAO4003 + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13911} G3K4008 +PERO1              =  0.800GDO3001 + 0.200GAO4003 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13912} G3K4008 +PERO2              =  0.750GDO3001 + 0.250GAO4003 + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13913} G3K4008 +PERO3              =  0.800GDO3001 + 0.200GAO4003 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13914} G3K4008 +PERO5              =  0.650GDO3001 + 0.350GAO4003 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13915} G3K4008 +PERO6              =  0.650GDO3001 + 0.350GAO4003 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13916} G3K4008 +PERO9              =       GDO3001 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 13917} GHK500K +GHO                =       GHK500T +      GHO2                                   : ARR( 0.642E-11,     0., 0.0);
+{ 13918} GHK500K +GHO                =       GDK5009 +      GHO                                    : ARR( 0.521E-10,     0., 0.0);
+{ 13919} GHK500K +GHO                =       G2K500F                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 13920} GHK500K+HV               =       G3K3000 +      GHD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 13921} GHK500K+HV               =       G1K500G +      GHO                                    :  0.100E+01*SUN;
+{ 13922} GDK5009 +GHO                =       GDK500E +      GHO2                                   : ARR( 0.391E-11,     0., 0.0);
+{ 13923} GDK5009 +GHO                =       G3K500G                                               : ARR( 0.672E-10,     0., 0.0);
+{ 13924} GDK5009 +GNO3               =       G3K500G +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 13925} GDK5009+HV               =       G3K3000 +      GDD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 13926} GDK5009+HV               =       GDK4002 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 13927} G3K500G +GHO2               =  0.800GGK500E + 0.200GAK500C + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 13928} G3K500G +GNO                =       GDK4002 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 13929} G3K500G +GNO2               =       GPK500E                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 13930} G3K500G +GNO3               =       GDK4002 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 13931} G3K500G +MEPERO             =  0.685GDK4002 + 0.315GAK500C + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13932} G3K500G +PERO1              =  0.800GDK4002 + 0.200GAK500C + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13933} G3K500G +PERO2              =  0.750GDK4002 + 0.250GAK500C + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13934} G3K500G +PERO3              =  0.800GDK4002 + 0.200GAK500C + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13935} G3K500G +PERO5              =  0.650GDK4002 + 0.350GAK500C + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13936} G3K500G +PERO6              =  0.650GDK4002 + 0.350GAK500C + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 13937} G3K500G +PERO9              =       GDK4002 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 13938} GHK500L +GHO                =       GHK500S +      GHO2                                   : ARR( 0.532E-11,     0., 0.0);
+{ 13939} GHK500L +GHO                =       GKK5007 +      GHO                                    : ARR( 0.213E-10,     0., 0.0);
+{ 13940} GHK500L +GHO                =       G2K500G                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 13941} GHK500L+HV               =       G3K3002 +      GD02000 +      GHO                     :  0.100E+01*SUN;
+{ 13942} GHK500L+HV               =       G1K500H +      GHO                                    :  0.100E+01*SUN;
+{ 13943} GKK5007 +GHO                =       G2K500e                                               : ARR( 0.554E-12,     0., 0.0);
+{ 13944} GKK5007 +GHO                =       GKK5009 +      GHO2                                   : ARR( 0.533E-11,     0., 0.0);
+{ 13945} GKK5007+HV               =       G3K3002 +      G3K2000                                :  0.100E+01*SUN;
+{ 13946} G2K500e +GNO                =       G1K500p +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 13947} G2K500e +GNO                =       GNK500r                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 13948} G2K500e +GHO2               =       GHK500o                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 13949} G2K500e +GNO3               =       G1K500p +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 13950} G2K500e +MEPERO             =  0.480G1K500p + 0.260GKK500A + 0.260GDK500R                 : ARR( 0.164E-12,  -795., 0.0);
+{ 13951} G2K500e +PERO1              =  0.600G1K500p + 0.200GKK500A + 0.200GDK500R                 : ARR( 0.126E-12,  -850., 0.0);
+{ 13952} G2K500e +PERO2              =  0.560G1K500p + 0.220GKK500A + 0.220GDK500R                 : ARR( 0.471E-13, -1350., 0.0);
+{ 13953} G2K500e +PERO3              =  0.600G1K500p + 0.200GKK500A + 0.200GDK500R                 : ARR( 0.142E-12, -1200., 0.0);
+{ 13954} G2K500e +PERO5              =  0.600G1K500p + 0.200GKK500A + 0.200GDK500R                 : ARR( 0.533E-11,   500., 0.0);
+{ 13955} G2K500e +PERO6              =  0.460G1K500p + 0.270GKK500A + 0.270GDK500R                 : ARR( 0.488E-13, -1250., 0.0);
+{ 13956} G2K500e +PERO9              =  0.800G1K500p + 0.200GDK500R                                : ARR( 0.100E-10,     0., 0.0);
+{ 13957} G1K500p                     =       GDK4008 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4155., 0.0);
+{ 13958} GHK500M +GHO                =       GHK500R +      GHO2                                   : ARR( 0.524E-11,     0., 0.0);
+{ 13959} GHK500M +GHO                =       GDK5003 +      GHO                                    : ARR( 0.523E-10,     0., 0.0);
+{ 13960} GHK500M +GHO                =       G2K500H                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 13961} GHK500M+HV               =       G3K3002 +      G2H2000                                :  0.100E+01*SUN;
+{ 13962} GHK500M+HV               =       G1K500I +      GHO                                    :  0.100E+01*SUN;
+{ 13963} GGO3001 +GHO                =       GGK3000 +      GHO2                                   : ARR( 0.529E-11,     0., 0.0);
+{ 13964} GGO3001 +GHO                =       G3K3002                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 13965} GGO3001+HV               =       GD02000 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 13966} GAO3001 +GHO                =       GAK3000 +      GHO2                                   : ARR( 0.405E-11,     0., 0.0);
+{ 13967} GAO3001 +GHO                =       GD02000 +      GHO2    +      GCO2                    : ARR( 0.557E-12,     0., 0.0);
+{ 13968} GPO3001                     =       G3K3002 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 13969} GPO3001 +GHO                =       GPK3000 +      GHO2                                   : ARR( 0.542E-11,     0., 0.0);
+{ 13970} GPO3001+HV               =       G3K3002 +      GNO2                                   :  0.100E+01*SUN;
+{ 13971} GHN501h +GHO                =       GHN502q +      GHO2                                   : ARR( 0.878E-11,     0., 0.0);
+{ 13972} GHN501h +GHO                =       GNK500f +      GHO                                    : ARR( 0.432E-10,     0., 0.0);
+{ 13973} GHN501h +GHO                =       G2N501L                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 13974} GHN501h+HV               =       G1N501N +      GHO                                    :  0.100E+01*SUN;
+{ 13975} GHN501h+HV               =       G1H503E +      GNO2                                   :  0.100E+01*SUN;
+{ 13976} G1H503E                     =       GHK500X +      GHO2                                   : ARR( 0.800E+11,  2117., 0.0);
+{ 13977} G1H503E                     =       GHD4008 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 13978} GNO500W +GHO                =       GNK500p +      GHO2                                   : ARR( 0.863E-11,     0., 0.0);
+{ 13979} GNO500W +GHO                =       GNK500f +      GHO2                                   : ARR( 0.106E-10,     0., 0.0);
+{ 13980} GNO500W +GHO                =       GNK500x +      GHO2                                   : ARR( 0.212E-11,     0., 0.0);
+{ 13981} GNO500W+HV               =       G1O500a +      GNO2                                   :  0.100E+01*SUN;
+{ 13982} G1O500a                     =       GKO500K +      GHO2                                   : ARR( 0.800E+11,  2117., 0.0);
+{ 13983} G1O500a                     =       GDO4005 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 13984} GNK500f +GHO                =       G2N503b                                               : ARR( 0.564E-12,     0., 0.0);
+{ 13985} GNK500f +GHO                =       GNK500r +      GHO2                                   : ARR( 0.542E-11,     0., 0.0);
+{ 13986} GNK500f +GHO                =       GNK500w +      GHO2                                   : ARR( 0.133E-11,     0., 0.0);
+{ 13987} GNK500f+HV               =       G3K3002 +      GND2000 +      GHO2                    :  0.100E+01*SUN;
+{ 13988} GNK500f+HV               =       G1K500m +      GNO2                                   :  0.100E+01*SUN;
+{ 13989} G2N503b +GNO                =       G1N5043 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 13990} G2N503b +GNO                =       GNN502R                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 13991} G2N503b +GHO2               =       GHN504b                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 13992} G2N503b +GNO3               =       G1N5043 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 13993} G2N503b +MEPERO             =  0.480G1N5043 + 0.260GNK500l + 0.260GND500q                 : ARR( 0.164E-12,  -795., 0.0);
+{ 13994} G2N503b +PERO1              =  0.600G1N5043 + 0.200GNK500l + 0.200GND500q                 : ARR( 0.126E-12,  -850., 0.0);
+{ 13995} G2N503b +PERO2              =  0.560G1N5043 + 0.220GNK500l + 0.220GND500q                 : ARR( 0.471E-13, -1350., 0.0);
+{ 13996} G2N503b +PERO3              =  0.600G1N5043 + 0.200GNK500l + 0.200GND500q                 : ARR( 0.142E-12, -1200., 0.0);
+{ 13997} G2N503b +PERO5              =  0.600G1N5043 + 0.200GNK500l + 0.200GND500q                 : ARR( 0.533E-11,   500., 0.0);
+{ 13998} G2N503b +PERO6              =  0.460G1N5043 + 0.270GNK500l + 0.270GND500q                 : ARR( 0.488E-13, -1250., 0.0);
+{ 13999} G2N503b +PERO9              =  0.800G1N5043 + 0.200GND500q                                : ARR( 0.100E-10,     0., 0.0);
+{ 14000} G1N5043                     =       GND400G +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4576., 0.0);
+{ 14001} GHK500N +GHO                =       GHK500D +      GHO2                                   : ARR( 0.334E-10,     0., 0.0);
+{ 14002} GHK500N +GHO                =       GDK500A +      GHO                                    : ARR( 0.164E-10,     0., 0.0);
+{ 14003} GHK500N +GHO                =       G2K500f                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 14004} GHK500N+HV               =       G3K2000 +      G2H3009                                :  0.100E+01*SUN;
+{ 14005} GHK500N+HV               =       GK03000 +      GHD2000                                :  0.100E+01*SUN;
+{ 14006} GHK500N+HV               =       G1K500X +      GHO                                    :  0.100E+01*SUN;
+{ 14007} G2K500f +GNO                =       G1K500X +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 14008} G2K500f +GNO                =       GNK500H                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 14009} G2K500f +GHO2               =       GHK500N                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 14010} G2K500f +GNO3               =       G1K500X +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 14011} G2K500f +MEPERO             =  0.480G1K500X + 0.260GKO5006 + 0.260GDK500A                 : ARR( 0.164E-12,  -795., 0.0);
+{ 14012} G2K500f +PERO1              =  0.600G1K500X + 0.200GKO5006 + 0.200GDK500A                 : ARR( 0.126E-12,  -850., 0.0);
+{ 14013} G2K500f +PERO2              =  0.560G1K500X + 0.220GKO5006 + 0.220GDK500A                 : ARR( 0.471E-13, -1350., 0.0);
+{ 14014} G2K500f +PERO3              =  0.600G1K500X + 0.200GKO5006 + 0.200GDK500A                 : ARR( 0.142E-12, -1200., 0.0);
+{ 14015} G2K500f +PERO5              =  0.600G1K500X + 0.200GKO5006 + 0.200GDK500A                 : ARR( 0.533E-11,   500., 0.0);
+{ 14016} G2K500f +PERO6              =  0.460G1K500X + 0.270GKO5006 + 0.270GDK500A                 : ARR( 0.488E-13, -1250., 0.0);
+{ 14017} G2K500f +PERO9              =  0.800G1K500X + 0.200GDK500A                                : ARR( 0.100E-10,     0., 0.0);
+{ 14018} GHO500O +GHO                =       GHK500X +      GHO2                                   : ARR( 0.845E-11,     0., 0.0);
+{ 14019} GHO500O +GHO                =       GKO500I +      GHO                                    : ARR( 0.416E-10,     0., 0.0);
+{ 14020} GHO500O +GHO                =       GHK500k +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 14021} GHO500O +GHO                =       GHD500E +      GHO2                                   : ARR( 0.406E-11,     0., 0.0);
+{ 14022} GHO500O +GHO                =       G2O500O                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 14023} GHO500O+HV               =       G1O500P +      GHO                                    :  0.100E+01*SUN;
+{ 14024} GOO500C +GHO                =       GKO500K +      GHO2                                   : ARR( 0.856E-11,     0., 0.0);
+{ 14025} GOO500C +GHO                =       GKO500I +      GHO2                                   : ARR( 0.105E-10,     0., 0.0);
+{ 14026} GOO500C +GHO                =       GKO500J +      GHO2                                   : ARR( 0.105E-10,     0., 0.0);
+{ 14027} GOO500C +GHO                =       GDO5009 +      GHO2                                   : ARR( 0.411E-11,     0., 0.0);
+{ 14028} GKO500I +GHO                =       GKK500A +      GHO2                                   : ARR( 0.531E-11,     0., 0.0);
+{ 14029} GKO500I +GHO                =       GKK500D +      GHO2                                   : ARR( 0.653E-11,     0., 0.0);
+{ 14030} GKO500I +GHO                =       GDK500B +      GHO2                                   : ARR( 0.133E-10,     0., 0.0);
+{ 14031} GKO500I+HV               =       G3K3002 +      GDO2000 +      GHO2                    :  0.100E+01*SUN;
+{ 14032} GDO3002 +GHO                =       GDD3001 +      GHO2                                   : ARR( 0.128E-10,     0., 0.0);
+{ 14033} GDO3002 +GHO                =       GDK3001 +      GHO2                                   : ARR( 0.633E-11,     0., 0.0);
+{ 14034} GDO3002 +GHO                =       G3K3003                                               : ARR( 0.209E-10,     0., 0.0);
+{ 14035} GDO3002 +GNO3               =       G3K3003 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 14036} GDO3002+HV               =       GDO2000 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 14037} GDK500A +GHO                =       G2D500R                                               : ARR( 0.275E-11,     0., 0.0);
+{ 14038} GDK500A +GHO                =       GDK500C +      GHO2                                   : ARR( 0.200E-10,     0., 0.0);
+{ 14039} GDK500A +GHO                =       G3K500H                                               : ARR( 0.209E-10,     0., 0.0);
+{ 14040} GDK500A +GNO3               =       G3K500H +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 14041} GDK500A+HV               =       G3K2000 +      G2D3003                                :  0.100E+01*SUN;
+{ 14042} GDK500A+HV               =       GDK4000 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 14043} G2D500R +GNO                =       G1D500b +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 14044} G2D500R +GNO                =       GND5017                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 14045} G2D500R +GHO2               =       GHD500u                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 14046} G2D500R +GNO3               =       G1D500b +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 14047} G2D500R +MEPERO             =  0.340G1D500b + 0.330GDK500S + 0.330GDK500R                 : ARR( 0.565E-13,  -845., 0.0);
+{ 14048} G2D500R +PERO1              =  0.460G1D500b + 0.270GDK500S + 0.270GDK500R                 : ARR( 0.434E-13,  -900., 0.0);
+{ 14049} G2D500R +PERO2              =  0.400G1D500b + 0.300GDK500S + 0.300GDK500R                 : ARR( 0.162E-13, -1400., 0.0);
+{ 14050} G2D500R +PERO3              =  0.460G1D500b + 0.270GDK500S + 0.270GDK500R                 : ARR( 0.488E-13, -1250., 0.0);
+{ 14051} G2D500R +PERO5              =  0.460G1D500b + 0.270GDK500S + 0.270GDK500R                 : ARR( 0.183E-11,   450., 0.0);
+{ 14052} G2D500R +PERO6              =  0.300G1D500b + 0.350GDK500S + 0.350GDK500R                 : ARR( 0.168E-13, -1300., 0.0);
+{ 14053} G2D500R +PERO9              =  0.650G1D500b + 0.350GDK500R                                : ARR( 0.100E-10,     0., 0.0);
+{ 14054} G3K500H +GHO2               =  0.800GGK500I + 0.200GAK500G + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 14055} G3K500H +GNO                =       GDK4000 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 14056} G3K500H +GNO2               =       GPK500I                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 14057} G3K500H +GNO3               =       GDK4000 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 14058} G3K500H +MEPERO             =  0.685GDK4000 + 0.315GAK500G + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 14059} G3K500H +PERO1              =  0.800GDK4000 + 0.200GAK500G + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 14060} G3K500H +PERO2              =  0.750GDK4000 + 0.250GAK500G + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 14061} G3K500H +PERO3              =  0.800GDK4000 + 0.200GAK500G + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 14062} G3K500H +PERO5              =  0.650GDK4000 + 0.350GAK500G + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 14063} G3K500H +PERO6              =  0.650GDK4000 + 0.350GAK500G + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 14064} G3K500H +PERO9              =       GDK4000 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 14065} G1D500b                     =       G3K2000 +      GDD3001                                : ARR( 0.200E+15,  2093., 0.0);
+{ 14066} GHD500E +GHO                =       GDK500B +      GHO                                    : ARR( 0.147E-09,     0., 0.0);
+{ 14067} GHD500E +GHO                =       G3H500K                                               : ARR( 0.233E-10,     0., 0.0);
+{ 14068} GHD500E +GNO3               =       G3H500K +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 14069} GHD500E+HV               =       G1D500A +      GHO                                    :  0.100E+01*SUN;
+{ 14070} GHD500E+HV               =       GHD4008 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 14071} G3H500K +GHO2               =  0.800GGH500f + 0.200GAH500k + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 14072} G3H500K +GNO                =       GHD4008 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 14073} G3H500K +GNO2               =       GPH500k                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 14074} G3H500K +GNO3               =       GHD4008 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 14075} G3H500K +MEPERO             =  0.685GHD4008 + 0.315GAH500k + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 14076} G3H500K +PERO1              =  0.800GHD4008 + 0.200GAH500k + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 14077} G3H500K +PERO2              =  0.750GHD4008 + 0.250GAH500k + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 14078} G3H500K +PERO3              =  0.800GHD4008 + 0.200GAH500k + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 14079} G3H500K +PERO5              =  0.650GHD4008 + 0.350GAH500k + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 14080} G3H500K +PERO6              =  0.650GHD4008 + 0.350GAH500k + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 14081} G3H500K +PERO9              =       GHD4008 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 14082} GDO5009 +GHO                =       GDK500S +      GHO2                                   : ARR( 0.845E-11,     0., 0.0);
+{ 14083} GDO5009 +GHO                =       GDK500B +      GHO2                                   : ARR( 0.330E-10,     0., 0.0);
+{ 14084} GDO5009 +GHO                =       GDK500T +      GHO2                                   : ARR( 0.634E-11,     0., 0.0);
+{ 14085} GDO5009 +GHO                =       G3K500I                                               : ARR( 0.210E-10,     0., 0.0);
+{ 14086} GDO5009 +GNO3               =       G3K500I +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 14087} GDO5009+HV               =       GDO4005 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 14088} G3K500I +GHO2               =  0.800GGO500B + 0.200GAO500A + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 14089} G3K500I +GNO                =       GDO4005 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 14090} G3K500I +GNO2               =       GPO500B                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 14091} G3K500I +GNO3               =       GDO4005 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 14092} G3K500I +MEPERO             =  0.685GDO4005 + 0.315GAO500A + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 14093} G3K500I +PERO1              =  0.800GDO4005 + 0.200GAO500A + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 14094} G3K500I +PERO2              =  0.750GDO4005 + 0.250GAO500A + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 14095} G3K500I +PERO3              =  0.800GDO4005 + 0.200GAO500A + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 14096} G3K500I +PERO5              =  0.650GDO4005 + 0.350GAO500A + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 14097} G3K500I +PERO6              =  0.650GDO4005 + 0.350GAO500A + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 14098} G3K500I +PERO9              =       GDO4005 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 14099} GDK500B +GHO                =       GDK500R +      GHO2                                   : ARR( 0.516E-11,     0., 0.0);
+{ 14100} GDK500B +GHO                =       GDK500U +      GHO2                                   : ARR( 0.387E-11,     0., 0.0);
+{ 14101} GDK500B +GHO                =       G3K500J                                               : ARR( 0.666E-10,     0., 0.0);
+{ 14102} GDK500B +GNO3               =       G3K500J +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 14103} GDK500B+HV               =       G3K3002 +      GDD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 14104} GDK500B+HV               =       GDK4004 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 14105} G3K500J +GHO2               =  0.800GGK500K + 0.200GAK500J + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 14106} G3K500J +GNO                =       GDK4004 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 14107} G3K500J +GNO2               =       GPK500K                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 14108} G3K500J +GNO3               =       GDK4004 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 14109} G3K500J +MEPERO             =  0.685GDK4004 + 0.315GAK500J + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 14110} G3K500J +PERO1              =  0.800GDK4004 + 0.200GAK500J + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 14111} G3K500J +PERO2              =  0.750GDK4004 + 0.250GAK500J + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 14112} G3K500J +PERO3              =  0.800GDK4004 + 0.200GAK500J + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 14113} G3K500J +PERO5              =  0.650GDK4004 + 0.350GAK500J + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 14114} G3K500J +PERO6              =  0.650GDK4004 + 0.350GAK500J + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 14115} G3K500J +PERO9              =       GDK4004 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 14116} GGO5004 +GHO                =       GGK500I +      GHO2                                   : ARR( 0.857E-11,     0., 0.0);
+{ 14117} GGO5004 +GHO                =       G2G500W                                               : ARR( 0.145E-11,     0., 0.0);
+{ 14118} GGO5004 +GHO                =       GGK5004 +      GHO2                                   : ARR( 0.643E-11,     0., 0.0);
+{ 14119} GGO5004 +GHO                =       G3K5005                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 14120} GGO5004+HV               =       GDO4001 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 14121} G2G500W +GNO                =       G1G500X +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 14122} G2G500W +GNO                =       GGN500g                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 14123} G2G500W +GHO2               =       GGH500f                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 14124} G2G500W +GNO3               =       G1G500X +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 14125} G2G500W +MEPERO             =  0.340G1G500X + 0.330GGO500B + 0.330GGK500K                 : ARR( 0.565E-13,  -845., 0.0);
+{ 14126} G2G500W +PERO1              =  0.460G1G500X + 0.270GGO500B + 0.270GGK500K                 : ARR( 0.434E-13,  -900., 0.0);
+{ 14127} G2G500W +PERO2              =  0.400G1G500X + 0.300GGO500B + 0.300GGK500K                 : ARR( 0.162E-13, -1400., 0.0);
+{ 14128} G2G500W +PERO3              =  0.460G1G500X + 0.270GGO500B + 0.270GGK500K                 : ARR( 0.488E-13, -1250., 0.0);
+{ 14129} G2G500W +PERO5              =  0.460G1G500X + 0.270GGO500B + 0.270GGK500K                 : ARR( 0.183E-11,   450., 0.0);
+{ 14130} G2G500W +PERO6              =  0.300G1G500X + 0.350GGO500B + 0.350GGK500K                 : ARR( 0.168E-13, -1300., 0.0);
+{ 14131} G2G500W +PERO9              =  0.650G1G500X + 0.350GGK500K                                : ARR( 0.100E-10,     0., 0.0);
+{ 14132} G1G500X                     =       GD02000 +      GGD3001 +      GHO2                    : ARR( 0.200E+15,  3132., 0.0);
+{ 14133} G1G500X                     =       GDO3001 +      GGD2000 +      GHO2                    : ARR( 0.200E+15,  3929., 0.0);
+{ 14134} GAO5004 +GHO                =       GAK500G +      GHO2                                   : ARR( 0.894E-11,     0., 0.0);
+{ 14135} GAO5004 +GHO                =       G2A500b                                               : ARR( 0.151E-11,     0., 0.0);
+{ 14136} GAO5004 +GHO                =       GAK5004 +      GHO2                                   : ARR( 0.496E-11,     0., 0.0);
+{ 14137} G2A500b +GNO                =       G1A500c +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 14138} G2A500b +GNO                =       GAN500n                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 14139} G2A500b +GHO2               =       GAH500k                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 14140} G2A500b +GNO3               =       G1A500c +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 14141} G2A500b +MEPERO             =  0.340G1A500c + 0.330GAO500A + 0.330GAK500J                 : ARR( 0.565E-13,  -845., 0.0);
+{ 14142} G2A500b +PERO1              =  0.460G1A500c + 0.270GAO500A + 0.270GAK500J                 : ARR( 0.434E-13,  -900., 0.0);
+{ 14143} G2A500b +PERO2              =  0.400G1A500c + 0.300GAO500A + 0.300GAK500J                 : ARR( 0.162E-13, -1400., 0.0);
+{ 14144} G2A500b +PERO3              =  0.460G1A500c + 0.270GAO500A + 0.270GAK500J                 : ARR( 0.488E-13, -1250., 0.0);
+{ 14145} G2A500b +PERO5              =  0.460G1A500c + 0.270GAO500A + 0.270GAK500J                 : ARR( 0.183E-11,   450., 0.0);
+{ 14146} G2A500b +PERO6              =  0.300G1A500c + 0.350GAO500A + 0.350GAK500J                 : ARR( 0.168E-13, -1300., 0.0);
+{ 14147} G2A500b +PERO9              =  0.650G1A500c + 0.350GAK500J                                : ARR( 0.100E-10,     0., 0.0);
+{ 14148} G1A500c                     =       GD02000 +      GAD3001 +      GHO2                    : ARR( 0.200E+15,  3132., 0.0);
+{ 14149} G1A500c                     =       GDO3001 +      GAD2000 +      GHO2                    : ARR( 0.200E+15,  3929., 0.0);
+{ 14150} GPO5004                     =       G3K5005 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 14151} GPO5004 +GHO                =       GPK500I +      GHO2                                   : ARR( 0.861E-11,     0., 0.0);
+{ 14152} GPO5004 +GHO                =       G2P500c                                               : ARR( 0.145E-11,     0., 0.0);
+{ 14153} GPO5004 +GHO                =       GPK5004 +      GHO2                                   : ARR( 0.646E-11,     0., 0.0);
+{ 14154} GPO5004+HV               =       G3K5005 +      GNO2                                   :  0.100E+01*SUN;
+{ 14155} G2P500c +GNO                =       G1P500d +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 14156} G2P500c +GNO                =       GPN500o                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 14157} G2P500c +GHO2               =       GPH500k                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 14158} G2P500c +GNO3               =       G1P500d +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 14159} G2P500c +MEPERO             =  0.340G1P500d + 0.330GPO500B + 0.330GPK500K                 : ARR( 0.565E-13,  -845., 0.0);
+{ 14160} G2P500c +PERO1              =  0.460G1P500d + 0.270GPO500B + 0.270GPK500K                 : ARR( 0.434E-13,  -900., 0.0);
+{ 14161} G2P500c +PERO2              =  0.400G1P500d + 0.300GPO500B + 0.300GPK500K                 : ARR( 0.162E-13, -1400., 0.0);
+{ 14162} G2P500c +PERO3              =  0.460G1P500d + 0.270GPO500B + 0.270GPK500K                 : ARR( 0.488E-13, -1250., 0.0);
+{ 14163} G2P500c +PERO5              =  0.460G1P500d + 0.270GPO500B + 0.270GPK500K                 : ARR( 0.183E-11,   450., 0.0);
+{ 14164} G2P500c +PERO6              =  0.300G1P500d + 0.350GPO500B + 0.350GPK500K                 : ARR( 0.168E-13, -1300., 0.0);
+{ 14165} G2P500c +PERO9              =  0.650G1P500d + 0.350GPK500K                                : ARR( 0.100E-10,     0., 0.0);
+{ 14166} G1P500d                     =       GD02000 +      GPD3001 +      GHO2                    : ARR( 0.200E+15,  3132., 0.0);
+{ 14167} G1P500d                     =       GDO3001 +      GPD2000 +      GHO2                    : ARR( 0.200E+15,  3929., 0.0);
+{ 14168} GDD3001 +GHO                =       G3D3001                                               : ARR( 0.136E-09,     0., 0.0);
+{ 14169} GDD3001 +GNO3               =       G3D3001 +      GHNO3                                  : ARR( 0.240E-13,     0., 0.0);
+{ 14170} GDD3001+HV               =       GCO     +      GDD2000 + 2.000GHO2                    :  0.200E+01*SUN;
+{ 14171} G3D3001 +GHO2               =  0.800GGD3001 + 0.200GAD3001 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 14172} G3D3001 +GNO                =       GDD2000 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 14173} G3D3001 +GNO2               =       GPD3001                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 14174} G3D3001 +GNO3               =       GDD2000 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 14175} G3D3001 +MEPERO             =  0.685GDD2000 + 0.315GAD3001 + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 14176} G3D3001 +PERO1              =  0.800GDD2000 + 0.200GAD3001 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 14177} G3D3001 +PERO2              =  0.750GDD2000 + 0.250GAD3001 + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 14178} G3D3001 +PERO3              =  0.800GDD2000 + 0.200GAD3001 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 14179} G3D3001 +PERO5              =  0.650GDD2000 + 0.350GAD3001 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 14180} G3D3001 +PERO6              =  0.650GDD2000 + 0.350GAD3001 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 14181} G3D3001 +PERO9              =       GDD2000 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 14182} GHO3003 +GHO                =       GHD3005 +      GHO2                                   : ARR( 0.405E-11,     0., 0.0);
+{ 14183} GHO3003 +GHO                =       GHK3001 +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 14184} GHO3003 +GHO                =       GDO3002 +      GHO                                    : ARR( 0.162E-10,     0., 0.0);
+{ 14185} GHO3003 +GHO                =       G2O3003                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 14186} GHO3003+HV               =       G1O3003 +      GHO                                    :  0.100E+01*SUN;
+{ 14187} GOO3002 +GHO                =       GDO3002 +      GHO2                                   : ARR( 0.823E-11,     0., 0.0);
+{ 14188} GOO3002 +GHO                =       GKO3001 +      GHO2                                   : ARR( 0.105E-10,     0., 0.0);
+{ 14189} GDK500C +GHO                =       G3K4003 +      GCO                                    : ARR( 0.133E-10,     0., 0.0);
+{ 14190} GDK500C +GNO3               =       G3K4003 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 14191} GDK500C+HV               =       G3K2000 +      G2D3002                                :  0.100E+01*SUN;
+{ 14192} GDK500C+HV               =       G3K4003 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 14193} GDK500C+HV               =       GDK4000 +      GCO                                    :  0.100E+01*SUN;
+{ 14194} GDK500C+HV               =       GK03000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 14195} GNK500g +GHO                =       G2N503c                                               : ARR( 0.204E-12,     0., 0.0);
+{ 14196} GNK500g +GHO                =       GKK5009 +      GNO2                                   : ARR( 0.438E-13,     0., 0.0);
+{ 14197} GNK500g+HV               =       G3K2000 +      GDK3000 +      GNO2                    :  0.100E+01*SUN;
+{ 14198} GNK500g+HV               =       G1K500K +      GNO2                                   :  0.100E+01*SUN;
+{ 14199} GNK500g+HV               =       G3N400D +      GCH3O2                                 :  0.100E+01*SUN;
+{ 14200} G2N503c +GNO                =       G1N5044 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 14201} G2N503c +GNO                =       GNN501x                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 14202} G2N503c +GHO2               =       GHN504c                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 14203} G2N503c +GNO3               =       G1N5044 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 14204} G2N503c +MEPERO             =  0.480G1N5044 + 0.260GNK500h + 0.260GND5018                 : ARR( 0.164E-12,  -795., 0.0);
+{ 14205} G2N503c +PERO1              =  0.600G1N5044 + 0.200GNK500h + 0.200GND5018                 : ARR( 0.126E-12,  -850., 0.0);
+{ 14206} G2N503c +PERO2              =  0.560G1N5044 + 0.220GNK500h + 0.220GND5018                 : ARR( 0.471E-13, -1350., 0.0);
+{ 14207} G2N503c +PERO3              =  0.600G1N5044 + 0.200GNK500h + 0.200GND5018                 : ARR( 0.142E-12, -1200., 0.0);
+{ 14208} G2N503c +PERO5              =  0.600G1N5044 + 0.200GNK500h + 0.200GND5018                 : ARR( 0.533E-11,   500., 0.0);
+{ 14209} G2N503c +PERO6              =  0.460G1N5044 + 0.270GNK500h + 0.270GND5018                 : ARR( 0.488E-13, -1250., 0.0);
+{ 14210} G2N503c +PERO9              =  0.800G1N5044 + 0.200GND5018                                : ARR( 0.100E-10,     0., 0.0);
+{ 14211} G3N400D +GHO2               =  0.800GGN400J + 0.200GAN400M + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 14212} G3N400D +GNO                =       GDK3000 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 14213} G3N400D +GNO2               =       GPN400M                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 14214} G3N400D +GNO3               =       GDK3000 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 14215} G3N400D +MEPERO             =  0.685GDK3000 + 0.315GAN400M + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 14216} G3N400D +PERO1              =  0.800GDK3000 + 0.200GAN400M + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 14217} G3N400D +PERO2              =  0.750GDK3000 + 0.250GAN400M + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 14218} G3N400D +PERO3              =  0.800GDK3000 + 0.200GAN400M + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 14219} G3N400D +PERO5              =  0.650GDK3000 + 0.350GAN400M + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 14220} G3N400D +PERO6              =  0.650GDK3000 + 0.350GAN400M + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 14221} G3N400D +PERO9              =       GDK3000 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 14222} G1N5044                     =       G3N400D +      GCH2O                                  : ARR( 0.200E+15,  4694., 0.0);
+{ 14223} GHK500O +GHO                =       GKK5009 +      GHO                                    : ARR( 0.155E-10,     0., 0.0);
+{ 14224} GHK500O +GHO                =       G2K500J                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 14225} GHK500O+HV               =       G3K2000 +      GDK3000 +      GHO                     :  0.100E+01*SUN;
+{ 14226} GHK500O+HV               =       G1K500K +      GHO                                    :  0.100E+01*SUN;
+{ 14227} GHK500O+HV               =       G3H4009 +      GCH3O2                                 :  0.100E+01*SUN;
+{ 14228} G3H4009 +GHO2               =  0.800GGH400C + 0.200GAH400D + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 14229} G3H4009 +GNO                =       GDK3000 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 14230} G3H4009 +GNO2               =       GPH400E                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 14231} G3H4009 +GNO3               =       GDK3000 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 14232} G3H4009 +MEPERO             =  0.685GDK3000 + 0.315GAH400D + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 14233} G3H4009 +PERO1              =  0.800GDK3000 + 0.200GAH400D + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 14234} G3H4009 +PERO2              =  0.750GDK3000 + 0.250GAH400D + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 14235} G3H4009 +PERO3              =  0.800GDK3000 + 0.200GAH400D + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 14236} G3H4009 +PERO5              =  0.650GDK3000 + 0.350GAH400D + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 14237} G3H4009 +PERO6              =  0.650GDK3000 + 0.350GAH400D + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 14238} G3H4009 +PERO9              =       GDK3000 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 14239} GKK5008 +GHO                =       GKK5009 +      GHO2                                   : ARR( 0.418E-11,     0., 0.0);
+{ 14240} GKK5008+HV               =       G3K2000 +      GDK3000 +      GHO2                    :  0.100E+01*SUN;
+{ 14241} GKK5008+HV               =       G3K4009 +      GCH3O2                                 :  0.100E+01*SUN;
+{ 14242} G3K4009 +GHO2               =  0.800GGK4005 + 0.200GAK4005 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 14243} G3K4009 +GNO                =       GDK3000 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 14244} G3K4009 +GNO2               =       GPK4005                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 14245} G3K4009 +GNO3               =       GDK3000 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 14246} G3K4009 +MEPERO             =  0.685GDK3000 + 0.315GAK4005 + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 14247} G3K4009 +PERO1              =  0.800GDK3000 + 0.200GAK4005 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 14248} G3K4009 +PERO2              =  0.750GDK3000 + 0.250GAK4005 + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 14249} G3K4009 +PERO3              =  0.800GDK3000 + 0.200GAK4005 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 14250} G3K4009 +PERO5              =  0.650GDK3000 + 0.350GAK4005 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 14251} G3K4009 +PERO6              =  0.650GDK3000 + 0.350GAK4005 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 14252} G3K4009 +PERO9              =       GDK3000 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 14253} GKK5009 +GHO                =       G2K500g                                               : ARR( 0.204E-12,     0., 0.0);
+{ 14254} GKK5009+HV               =  2.000G3K2000 +      GCO                                    :  0.200E+01*SUN;
+{ 14255} G2K500g +GNO                =       G1K500q +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 14256} G2K500g +GNO                =       GNK500s                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 14257} G2K500g +GHO2               =       GHK500p                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 14258} G2K500g +GNO3               =       G1K500q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 14259} G2K500g +MEPERO             =  0.480G1K500q + 0.260GKK500B + 0.260GDK500W                 : ARR( 0.164E-12,  -795., 0.0);
+{ 14260} G2K500g +PERO1              =  0.600G1K500q + 0.200GKK500B + 0.200GDK500W                 : ARR( 0.126E-12,  -850., 0.0);
+{ 14261} G2K500g +PERO2              =  0.560G1K500q + 0.220GKK500B + 0.220GDK500W                 : ARR( 0.471E-13, -1350., 0.0);
+{ 14262} G2K500g +PERO3              =  0.600G1K500q + 0.200GKK500B + 0.200GDK500W                 : ARR( 0.142E-12, -1200., 0.0);
+{ 14263} G2K500g +PERO5              =  0.600G1K500q + 0.200GKK500B + 0.200GDK500W                 : ARR( 0.533E-11,   500., 0.0);
+{ 14264} G2K500g +PERO6              =  0.460G1K500q + 0.270GKK500B + 0.270GDK500W                 : ARR( 0.488E-13, -1250., 0.0);
+{ 14265} G2K500g +PERO9              =  0.800G1K500q + 0.200GDK500W                                : ARR( 0.100E-10,     0., 0.0);
+{ 14266} G1K500q                     =       G3K2000 +      GCH2O   + 2.000GCO                     : ARR( 0.200E+15,  3862., 0.0);
+{ 14267} GGK4000 +GHO                =       G2G4008                                               : ARR( 0.538E-12,     0., 0.0);
+{ 14268} GGK4000 +GHO                =       G3K4003                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 14269} GGK4000+HV               =       G3K2000 +      G2G2000                                :  0.100E+01*SUN;
+{ 14270} GGK4000+HV               =       G2K3000 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 14271} G2G4008 +GNO                =       G1G400A +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 14272} G2G4008 +GNO                =       GGN400J                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 14273} G2G4008 +GHO2               =       GGH400C                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 14274} G2G4008 +GNO3               =       G1G400A +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 14275} G2G4008 +MEPERO             =  0.340G1G400A + 0.330GGK4005 + 0.330GGK4006                 : ARR( 0.565E-13,  -845., 0.0);
+{ 14276} G2G4008 +PERO1              =  0.460G1G400A + 0.270GGK4005 + 0.270GGK4006                 : ARR( 0.434E-13,  -900., 0.0);
+{ 14277} G2G4008 +PERO2              =  0.400G1G400A + 0.300GGK4005 + 0.300GGK4006                 : ARR( 0.162E-13, -1400., 0.0);
+{ 14278} G2G4008 +PERO3              =  0.460G1G400A + 0.270GGK4005 + 0.270GGK4006                 : ARR( 0.488E-13, -1250., 0.0);
+{ 14279} G2G4008 +PERO5              =  0.460G1G400A + 0.270GGK4005 + 0.270GGK4006                 : ARR( 0.183E-11,   450., 0.0);
+{ 14280} G2G4008 +PERO6              =  0.300G1G400A + 0.350GGK4005 + 0.350GGK4006                 : ARR( 0.168E-13, -1300., 0.0);
+{ 14281} G2G4008 +PERO9              =  0.650G1G400A + 0.350GGK4006                                : ARR( 0.100E-10,     0., 0.0);
+{ 14282} G1G400A                     =       G3K2000 +      GGD2000                                : ARR( 0.200E+15,  5310., 0.0);
+{ 14283} GAK4000 +GHO                =       G2A400B                                               : ARR( 0.102E-12,     0., 0.0);
+{ 14284} GAK4000 +GHO                =       G2A400C                                               : ARR( 0.389E-12,     0., 0.0);
+{ 14285} GAK4000 +GHO                =       G2K3000 +      GCO2                                   : ARR( 0.520E-12,     0., 0.0);
+{ 14286} GAK4000+HV               =       G3K2000 +      G2A2000                                :  0.100E+01*SUN;
+{ 14287} G2A400B +GNO                =       G1A400D +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 14288} G2A400B +GNO                =       GAN4008                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 14289} G2A400B +GHO2               =       GAH400A                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 14290} G2A400B +GNO3               =       G1A400D +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 14291} G2A400B +MEPERO             =  0.480G1A400D + 0.260GAK4003 + 0.260GAD4003                 : ARR( 0.164E-12,  -795., 0.0);
+{ 14292} G2A400B +PERO1              =  0.600G1A400D + 0.200GAK4003 + 0.200GAD4003                 : ARR( 0.126E-12,  -850., 0.0);
+{ 14293} G2A400B +PERO2              =  0.560G1A400D + 0.220GAK4003 + 0.220GAD4003                 : ARR( 0.471E-13, -1350., 0.0);
+{ 14294} G2A400B +PERO3              =  0.600G1A400D + 0.200GAK4003 + 0.200GAD4003                 : ARR( 0.142E-12, -1200., 0.0);
+{ 14295} G2A400B +PERO5              =  0.600G1A400D + 0.200GAK4003 + 0.200GAD4003                 : ARR( 0.533E-11,   500., 0.0);
+{ 14296} G2A400B +PERO6              =  0.460G1A400D + 0.270GAK4003 + 0.270GAD4003                 : ARR( 0.488E-13, -1250., 0.0);
+{ 14297} G2A400B +PERO9              =  0.800G1A400D + 0.200GAD4003                                : ARR( 0.100E-10,     0., 0.0);
+{ 14298} G2A400C +GNO                =       G1A400E +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 14299} G2A400C +GNO                =       GAN400M                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 14300} G2A400C +GHO2               =       GAH400D                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 14301} G2A400C +GNO3               =       G1A400E +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 14302} G2A400C +MEPERO             =  0.340G1A400E + 0.330GAK4005 + 0.330GAK4006                 : ARR( 0.565E-13,  -845., 0.0);
+{ 14303} G2A400C +PERO1              =  0.460G1A400E + 0.270GAK4005 + 0.270GAK4006                 : ARR( 0.434E-13,  -900., 0.0);
+{ 14304} G2A400C +PERO2              =  0.400G1A400E + 0.300GAK4005 + 0.300GAK4006                 : ARR( 0.162E-13, -1400., 0.0);
+{ 14305} G2A400C +PERO3              =  0.460G1A400E + 0.270GAK4005 + 0.270GAK4006                 : ARR( 0.488E-13, -1250., 0.0);
+{ 14306} G2A400C +PERO5              =  0.460G1A400E + 0.270GAK4005 + 0.270GAK4006                 : ARR( 0.183E-11,   450., 0.0);
+{ 14307} G2A400C +PERO6              =  0.300G1A400E + 0.350GAK4005 + 0.350GAK4006                 : ARR( 0.168E-13, -1300., 0.0);
+{ 14308} G2A400C +PERO9              =  0.650G1A400E + 0.350GAK4006                                : ARR( 0.100E-10,     0., 0.0);
+{ 14309} G1A400D                     =       G3A3000 +      GCH2O                                  : ARR( 0.200E+15,  3552., 0.0);
+{ 14310} G1A400E                     =       G3K2000 +      GAD2000                                : ARR( 0.200E+15,  5310., 0.0);
+{ 14311} GPK4000                     =       G3K4003 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 14312} GPK4000 +GHO                =       G2P400C                                               : ARR( 0.102E-12,     0., 0.0);
+{ 14313} GPK4000 +GHO                =       G2P400D                                               : ARR( 0.525E-12,     0., 0.0);
+{ 14314} GPK4000+HV               =       G3K2000 +      G2P2000                                :  0.100E+01*SUN;
+{ 14315} GPK4000+HV               =       G3K4003 +      GNO2                                   :  0.100E+01*SUN;
+{ 14316} G2P400C +GNO                =       G1P400D +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 14317} G2P400C +GNO                =       GPN4008                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 14318} G2P400C +GHO2               =       GPH400A                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 14319} G2P400C +GNO3               =       G1P400D +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 14320} G2P400C +MEPERO             =  0.480G1P400D + 0.260GPK4003 + 0.260GPD4003                 : ARR( 0.164E-12,  -795., 0.0);
+{ 14321} G2P400C +PERO1              =  0.600G1P400D + 0.200GPK4003 + 0.200GPD4003                 : ARR( 0.126E-12,  -850., 0.0);
+{ 14322} G2P400C +PERO2              =  0.560G1P400D + 0.220GPK4003 + 0.220GPD4003                 : ARR( 0.471E-13, -1350., 0.0);
+{ 14323} G2P400C +PERO3              =  0.600G1P400D + 0.200GPK4003 + 0.200GPD4003                 : ARR( 0.142E-12, -1200., 0.0);
+{ 14324} G2P400C +PERO5              =  0.600G1P400D + 0.200GPK4003 + 0.200GPD4003                 : ARR( 0.533E-11,   500., 0.0);
+{ 14325} G2P400C +PERO6              =  0.460G1P400D + 0.270GPK4003 + 0.270GPD4003                 : ARR( 0.488E-13, -1250., 0.0);
+{ 14326} G2P400C +PERO9              =  0.800G1P400D + 0.200GPD4003                                : ARR( 0.100E-10,     0., 0.0);
+{ 14327} G2P400D +GNO                =       G1P400E +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 14328} G2P400D +GNO                =       GPN400M                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 14329} G2P400D +GHO2               =       GPH400E                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 14330} G2P400D +GNO3               =       G1P400E +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 14331} G2P400D +MEPERO             =  0.340G1P400E + 0.330GPK4005 + 0.330GPK4006                 : ARR( 0.565E-13,  -845., 0.0);
+{ 14332} G2P400D +PERO1              =  0.460G1P400E + 0.270GPK4005 + 0.270GPK4006                 : ARR( 0.434E-13,  -900., 0.0);
+{ 14333} G2P400D +PERO2              =  0.400G1P400E + 0.300GPK4005 + 0.300GPK4006                 : ARR( 0.162E-13, -1400., 0.0);
+{ 14334} G2P400D +PERO3              =  0.460G1P400E + 0.270GPK4005 + 0.270GPK4006                 : ARR( 0.488E-13, -1250., 0.0);
+{ 14335} G2P400D +PERO5              =  0.460G1P400E + 0.270GPK4005 + 0.270GPK4006                 : ARR( 0.183E-11,   450., 0.0);
+{ 14336} G2P400D +PERO6              =  0.300G1P400E + 0.350GPK4005 + 0.350GPK4006                 : ARR( 0.168E-13, -1300., 0.0);
+{ 14337} G2P400D +PERO9              =  0.650G1P400E + 0.350GPK4006                                : ARR( 0.100E-10,     0., 0.0);
+{ 14338} G1P400D                     =       G3P3000 +      GCH2O                                  : ARR( 0.200E+15,  3552., 0.0);
+{ 14339} G1P400E                     =       G3K2000 +      GPD2000                                : ARR( 0.200E+15,  5310., 0.0);
+{ 14340} GHN501i +GHO                =       GND500Q +      GHO                                    : ARR( 0.165E-10,     0., 0.0);
+{ 14341} GHN501i +GHO                =       G2N501M                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 14342} GHN501i+HV               =       G3K2000 +      GHD3000 +      GNO2                    :  0.100E+01*SUN;
+{ 14343} GHN501i+HV               =       GNK3000 +      G2D2000 +      GHO                     :  0.100E+01*SUN;
+{ 14344} GHN501i+HV               =       G1H503F +      GNO2                                   :  0.100E+01*SUN;
+{ 14345} GHN501i+HV               =       G1N501O +      GHO                                    :  0.100E+01*SUN;
+{ 14346} G1H503F                     =       G3K2000 +      GHD3000                                : ARR( 0.200E+15,  2668., 0.0);
+{ 14347} GND500Q +GHO                =       G3N500U                                               : ARR( 0.213E-10,     0., 0.0);
+{ 14348} GND500Q +GNO3               =       G3N500U +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 14349} GND500Q+HV               =       G3K2000 +      GDD3000 +      GNO2                    :  0.100E+01*SUN;
+{ 14350} GND500Q+HV               =       G1D500C +      GNO2                                   :  0.100E+01*SUN;
+{ 14351} GND500Q+HV               =       G2N400c +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 14352} G3N500U +GHO2               =  0.800GGN500Q + 0.200GAN500S + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 14353} G3N500U +GNO                =       G2N400c +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 14354} G3N500U +GNO2               =       GPN500S                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 14355} G3N500U +GNO3               =       G2N400c +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 14356} G3N500U +MEPERO             =  0.685G2N400c + 0.315GAN500S + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 14357} G3N500U +PERO1              =  0.800G2N400c + 0.200GAN500S + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 14358} G3N500U +PERO2              =  0.750G2N400c + 0.250GAN500S + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 14359} G3N500U +PERO3              =  0.800G2N400c + 0.200GAN500S + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 14360} G3N500U +PERO5              =  0.650G2N400c + 0.350GAN500S + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 14361} G3N500U +PERO6              =  0.650G2N400c + 0.350GAN500S + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 14362} G3N500U +PERO9              =       G2N400c +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 14363} G2N400c +GNO                =       G1N400e +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 14364} G2N400c +GNO                =       GNN400M                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 14365} G2N400c +GHO2               =       GHN400r                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 14366} G2N400c +GNO3               =       G1N400e +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 14367} G2N400c +MEPERO             =  0.480G1N400e + 0.260GNK4007 + 0.260GND4008                 : ARR( 0.164E-12,  -795., 0.0);
+{ 14368} G2N400c +PERO1              =  0.600G1N400e + 0.200GNK4007 + 0.200GND4008                 : ARR( 0.126E-12,  -850., 0.0);
+{ 14369} G2N400c +PERO2              =  0.560G1N400e + 0.220GNK4007 + 0.220GND4008                 : ARR( 0.471E-13, -1350., 0.0);
+{ 14370} G2N400c +PERO3              =  0.600G1N400e + 0.200GNK4007 + 0.200GND4008                 : ARR( 0.142E-12, -1200., 0.0);
+{ 14371} G2N400c +PERO5              =  0.600G1N400e + 0.200GNK4007 + 0.200GND4008                 : ARR( 0.533E-11,   500., 0.0);
+{ 14372} G2N400c +PERO6              =  0.460G1N400e + 0.270GNK4007 + 0.270GND4008                 : ARR( 0.488E-13, -1250., 0.0);
+{ 14373} G2N400c +PERO9              =  0.800G1N400e + 0.200GND4008                                : ARR( 0.100E-10,     0., 0.0);
+{ 14374} G1N400e +OXYGEN             =       GND4008 +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 14375} G1N400e                     =       GDK3000 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7323., 0.0);
+{ 14376} GHN501j +GHO                =       GNK500g +      GHO                                    : ARR( 0.692E-11,     0., 0.0);
+{ 14377} GHN501j +GHO                =       G2N501N                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 14378} GHN501j+HV               =       G3K2000 +      GHD3002 +      GNO2                    :  0.100E+01*SUN;
+{ 14379} GHN501j+HV               =       GNK3000 +      G2D2000 +      GHO                     :  0.100E+01*SUN;
+{ 14380} GHN501j+HV               =       G1H503G +      GNO2                                   :  0.100E+01*SUN;
+{ 14381} GHN501j+HV               =       G1N501P +      GHO                                    :  0.100E+01*SUN;
+{ 14382} G1H503G                     =       GHD3002 +      G3K2000                                : ARR( 0.200E+15,  2923., 0.0);
+{ 14383} GHN501k +GHO                =       GND500R +      GHO                                    : ARR( 0.102E-10,     0., 0.0);
+{ 14384} GHN501k +GHO                =       G2N501O                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 14385} GHN501k+HV               =       G1H503H +      GNO2                                   :  0.100E+01*SUN;
+{ 14386} GHN501k+HV               =       G3N4004 +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 14387} GHN501k+HV               =       GU02000 +      GHN3008                                :  0.100E+01*SUN;
+{ 14388} GHN501k+HV               =       G1N501Q +      GHO                                    :  0.100E+01*SUN;
+{ 14389} G1H503H                     =       GD03000 +      G3H2000                                : ARR( 0.200E+15,  2755., 0.0);
+{ 14390} GND500R +GHO                =       G3N4004 +      GCO                                    : ARR( 0.131E-10,     0., 0.0);
+{ 14391} GND500R +GNO3               =       G3N4004 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 14392} GND500R+HV               =       G1D500c +      GNO2                                   :  0.100E+01*SUN;
+{ 14393} GND500R+HV               =       G3N4004 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 14394} GND500R+HV               =       GND4005 +      GCO                                    :  0.100E+01*SUN;
+{ 14395} GND500R+HV               =       GN03000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 14396} G1D500c                     =       GD03000 +      G3D2000                                : ARR( 0.200E+15,  2978., 0.0);
+{ 14397} GGN4004 +GHO                =       G2G4009                                               : ARR( 0.244E-12,     0., 0.0);
+{ 14398} GGN4004 +GHO                =       G3N4004                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 14399} GGN4004+HV               =       G1G4007 +      GNO2                                   :  0.100E+01*SUN;
+{ 14400} GGN4004+HV               =       GD03000 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 14401} G2G4009 +GNO                =       G1G400B +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 14402} G2G4009 +GNO                =       GGN400F                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 14403} G2G4009 +GHO2               =       GGH400D                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 14404} G2G4009 +GNO3               =       G1G400B +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 14405} G2G4009 +MEPERO             =  0.340G1G400B + 0.330GGN4005 + 0.330GGN400J                 : ARR( 0.565E-13,  -845., 0.0);
+{ 14406} G2G4009 +PERO1              =  0.460G1G400B + 0.270GGN4005 + 0.270GGN400J                 : ARR( 0.434E-13,  -900., 0.0);
+{ 14407} G2G4009 +PERO2              =  0.400G1G400B + 0.300GGN4005 + 0.300GGN400J                 : ARR( 0.162E-13, -1400., 0.0);
+{ 14408} G2G4009 +PERO3              =  0.460G1G400B + 0.270GGN4005 + 0.270GGN400J                 : ARR( 0.488E-13, -1250., 0.0);
+{ 14409} G2G4009 +PERO5              =  0.460G1G400B + 0.270GGN4005 + 0.270GGN400J                 : ARR( 0.183E-11,   450., 0.0);
+{ 14410} G2G4009 +PERO6              =  0.300G1G400B + 0.350GGN4005 + 0.350GGN400J                 : ARR( 0.168E-13, -1300., 0.0);
+{ 14411} G2G4009 +PERO9              =  0.650G1G400B + 0.350GGN400J                                : ARR( 0.100E-10,     0., 0.0);
+{ 14412} G1G400B                     =       GD02000 +      GGD2000 +      GNO2                    : ARR( 0.200E+15,  6482., 0.0);
+{ 14413} GAN4004 +GHO                =       G2A400D                                               : ARR( 0.168E-12,     0., 0.0);
+{ 14414} GAN4004 +GHO                =       G2A400E                                               : ARR( 0.230E-12,     0., 0.0);
+{ 14415} GAN4004 +GHO                =       GAK4002 +      GNO2                                   : ARR( 0.531E-13,     0., 0.0);
+{ 14416} GAN4004 +GHO                =       GD03000 +      GNO2    +      GCO2                    : ARR( 0.520E-12,     0., 0.0);
+{ 14417} GAN4004+HV               =       G1A4007 +      GNO2                                   :  0.100E+01*SUN;
+{ 14418} G2A400D +GNO                =       G1A400F +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 14419} G2A400D +GNO                =       GAN4006                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 14420} G2A400D +GHO2               =       GAH400E                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 14421} G2A400D +GNO3               =       G1A400F +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 14422} G2A400D +MEPERO             =  0.480G1A400F + 0.260GAN400E + 0.260GAN400N                 : ARR( 0.146E-12,  -445., 0.0);
+{ 14423} G2A400D +PERO1              =  0.600G1A400F + 0.200GAN400E + 0.200GAN400N                 : ARR( 0.112E-12,  -500., 0.0);
+{ 14424} G2A400D +PERO2              =  0.560G1A400F + 0.220GAN400E + 0.220GAN400N                 : ARR( 0.418E-13, -1000., 0.0);
+{ 14425} G2A400D +PERO3              =  0.600G1A400F + 0.200GAN400E + 0.200GAN400N                 : ARR( 0.126E-12,  -850., 0.0);
+{ 14426} G2A400D +PERO5              =  0.600G1A400F + 0.200GAN400E + 0.200GAN400N                 : ARR( 0.473E-11,   850., 0.0);
+{ 14427} G2A400D +PERO6              =  0.460G1A400F + 0.270GAN400E + 0.270GAN400N                 : ARR( 0.434E-13,  -900., 0.0);
+{ 14428} G2A400D +PERO9              =  0.800G1A400F + 0.200GAN400N                                : ARR( 0.100E-10,     0., 0.0);
+{ 14429} G2A400E +GNO                =       G1A400G +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 14430} G2A400E +GNO                =       GAN400F                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 14431} G2A400E +GHO2               =       GAH400F                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 14432} G2A400E +GNO3               =       G1A400G +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 14433} G2A400E +MEPERO             =  0.340G1A400G + 0.330GAN4005 + 0.330GAN400M                 : ARR( 0.565E-13,  -845., 0.0);
+{ 14434} G2A400E +PERO1              =  0.460G1A400G + 0.270GAN4005 + 0.270GAN400M                 : ARR( 0.434E-13,  -900., 0.0);
+{ 14435} G2A400E +PERO2              =  0.400G1A400G + 0.300GAN4005 + 0.300GAN400M                 : ARR( 0.162E-13, -1400., 0.0);
+{ 14436} G2A400E +PERO3              =  0.460G1A400G + 0.270GAN4005 + 0.270GAN400M                 : ARR( 0.488E-13, -1250., 0.0);
+{ 14437} G2A400E +PERO5              =  0.460G1A400G + 0.270GAN4005 + 0.270GAN400M                 : ARR( 0.183E-11,   450., 0.0);
+{ 14438} G2A400E +PERO6              =  0.300G1A400G + 0.350GAN4005 + 0.350GAN400M                 : ARR( 0.168E-13, -1300., 0.0);
+{ 14439} G2A400E +PERO9              =  0.650G1A400G + 0.350GAN400M                                : ARR( 0.100E-10,     0., 0.0);
+{ 14440} G1A400F +OXYGEN             =       GAN400N +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{ 14441} G1A400G                     =       GD02000 +      GAD2000 +      GNO2                    : ARR( 0.200E+15,  6482., 0.0);
+{ 14442} GPN4004                     =       G3N4004 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 14443} GPN4004 +GHO                =       G2P400E                                               : ARR( 0.168E-12,     0., 0.0);
+{ 14444} GPN4004 +GHO                =       G2P400F                                               : ARR( 0.230E-12,     0., 0.0);
+{ 14445} GPN4004 +GHO                =       GPK4002 +      GNO2                                   : ARR( 0.718E-13,     0., 0.0);
+{ 14446} GPN4004+HV               =       G1P4007 +      GNO2                                   :  0.100E+01*SUN;
+{ 14447} GPN4004+HV               =       G3N4004 +      GNO2                                   :  0.100E+01*SUN;
+{ 14448} G2P400E +GNO                =       G1P400F +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 14449} G2P400E +GNO                =       GPN4006                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 14450} G2P400E +GHO2               =       GPH400F                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 14451} G2P400E +GNO3               =       G1P400F +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 14452} G2P400E +MEPERO             =  0.480G1P400F + 0.260GPN400E + 0.260GPN400N                 : ARR( 0.146E-12,  -445., 0.0);
+{ 14453} G2P400E +PERO1              =  0.600G1P400F + 0.200GPN400E + 0.200GPN400N                 : ARR( 0.112E-12,  -500., 0.0);
+{ 14454} G2P400E +PERO2              =  0.560G1P400F + 0.220GPN400E + 0.220GPN400N                 : ARR( 0.418E-13, -1000., 0.0);
+{ 14455} G2P400E +PERO3              =  0.600G1P400F + 0.200GPN400E + 0.200GPN400N                 : ARR( 0.126E-12,  -850., 0.0);
+{ 14456} G2P400E +PERO5              =  0.600G1P400F + 0.200GPN400E + 0.200GPN400N                 : ARR( 0.473E-11,   850., 0.0);
+{ 14457} G2P400E +PERO6              =  0.460G1P400F + 0.270GPN400E + 0.270GPN400N                 : ARR( 0.434E-13,  -900., 0.0);
+{ 14458} G2P400E +PERO9              =  0.800G1P400F + 0.200GPN400N                                : ARR( 0.100E-10,     0., 0.0);
+{ 14459} G2P400F +GNO                =       G1P400G +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 14460} G2P400F +GNO                =       GPN400F                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 14461} G2P400F +GHO2               =       GPH400G                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 14462} G2P400F +GNO3               =       G1P400G +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 14463} G2P400F +MEPERO             =  0.340G1P400G + 0.330GPN4005 + 0.330GPN400M                 : ARR( 0.565E-13,  -845., 0.0);
+{ 14464} G2P400F +PERO1              =  0.460G1P400G + 0.270GPN4005 + 0.270GPN400M                 : ARR( 0.434E-13,  -900., 0.0);
+{ 14465} G2P400F +PERO2              =  0.400G1P400G + 0.300GPN4005 + 0.300GPN400M                 : ARR( 0.162E-13, -1400., 0.0);
+{ 14466} G2P400F +PERO3              =  0.460G1P400G + 0.270GPN4005 + 0.270GPN400M                 : ARR( 0.488E-13, -1250., 0.0);
+{ 14467} G2P400F +PERO5              =  0.460G1P400G + 0.270GPN4005 + 0.270GPN400M                 : ARR( 0.183E-11,   450., 0.0);
+{ 14468} G2P400F +PERO6              =  0.300G1P400G + 0.350GPN4005 + 0.350GPN400M                 : ARR( 0.168E-13, -1300., 0.0);
+{ 14469} G2P400F +PERO9              =  0.650G1P400G + 0.350GPN400M                                : ARR( 0.100E-10,     0., 0.0);
+{ 14470} G1P400F +OXYGEN             =       GPN400N +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{ 14471} G1P400G                     =       GD02000 +      GPD2000 +      GNO2                    : ARR( 0.200E+15,  6482., 0.0);
+{ 14472} GHH500Q +GHO                =       GHK500S +      GHO                                    : ARR( 0.266E-10,     0., 0.0);
+{ 14473} GHH500Q +GHO                =       GHK500O +      GHO                                    : ARR( 0.112E-09,     0., 0.0);
+{ 14474} GHH500Q+HV               =       G3K2000 +      GHD3002 +      GHO                     :  0.100E+01*SUN;
+{ 14475} GHH500Q+HV               =       G1H503G +      GHO                                    :  0.100E+01*SUN;
+{ 14476} GHH500Q+HV               =       G1H500a +      GHO                                    :  0.100E+01*SUN;
+{ 14477} GHK500P +GHO                =       GHK500O +      GHO2                                   : ARR( 0.268E-10,     0., 0.0);
+{ 14478} GHK500P +GHO                =       GKK5007 +      GHO                                    : ARR( 0.253E-10,     0., 0.0);
+{ 14479} GHK500P +GHO                =       G2K500h                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 14480} GHK500P+HV               =       G1K500n +      GHO                                    :  0.100E+01*SUN;
+{ 14481} GHK500P+HV               =       G3H400A +      GCH3O2                                 :  0.100E+01*SUN;
+{ 14482} G2K500h +GNO                =       G1K500n +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 14483} G2K500h +GNO                =       GNK500d                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 14484} G2K500h +GHO2               =       GHK500P                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 14485} G2K500h +GNO3               =       G1K500n +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 14486} G2K500h +MEPERO             =  0.340G1K500n + 0.330GKO500H + 0.330GKK5007                 : ARR( 0.565E-13,  -845., 0.0);
+{ 14487} G2K500h +PERO1              =  0.460G1K500n + 0.270GKO500H + 0.270GKK5007                 : ARR( 0.434E-13,  -900., 0.0);
+{ 14488} G2K500h +PERO2              =  0.400G1K500n + 0.300GKO500H + 0.300GKK5007                 : ARR( 0.162E-13, -1400., 0.0);
+{ 14489} G2K500h +PERO3              =  0.460G1K500n + 0.270GKO500H + 0.270GKK5007                 : ARR( 0.488E-13, -1250., 0.0);
+{ 14490} G2K500h +PERO5              =  0.460G1K500n + 0.270GKO500H + 0.270GKK5007                 : ARR( 0.183E-11,   450., 0.0);
+{ 14491} G2K500h +PERO6              =  0.300G1K500n + 0.350GKO500H + 0.350GKK5007                 : ARR( 0.168E-13, -1300., 0.0);
+{ 14492} G2K500h +PERO9              =  0.650G1K500n + 0.350GKK5007                                : ARR( 0.100E-10,     0., 0.0);
+{ 14493} G3H400A +GHO2               =  0.800GGH4001 + 0.200GAH4001 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 14494} G3H400A +GNO                =       GDO3001 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 14495} G3H400A +GNO2               =       GPH4001                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 14496} G3H400A +GNO3               =       GDO3001 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 14497} G3H400A +MEPERO             =  0.685GDO3001 + 0.315GAH4001 + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 14498} G3H400A +PERO1              =  0.800GDO3001 + 0.200GAH4001 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 14499} G3H400A +PERO2              =  0.750GDO3001 + 0.250GAH4001 + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 14500} G3H400A +PERO3              =  0.800GDO3001 + 0.200GAH4001 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 14501} G3H400A +PERO5              =  0.650GDO3001 + 0.350GAH4001 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 14502} G3H400A +PERO6              =  0.650GDO3001 + 0.350GAH4001 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 14503} G3H400A +PERO9              =       GDO3001 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 14504} GGH4000 +GHO                =       GGK4002 +      GHO                                    : ARR( 0.262E-10,     0., 0.0);
+{ 14505} GGH4000 +GHO                =       G2G4005                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 14506} GGH4000 +GHO                =       G3H4000                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 14507} GGH4000+HV               =       G1G4007 +      GHO                                    :  0.100E+01*SUN;
+{ 14508} GGH4000+HV               =       GD03000 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 14509} GAH4000 +GHO                =       GAK4002 +      GHO                                    : ARR( 0.201E-10,     0., 0.0);
+{ 14510} GAH4000 +GHO                =       G2A4006                                               : ARR( 0.206E-11,  -190., 0.0);
+{ 14511} GAH4000+HV               =       G1A4007 +      GHO                                    :  0.100E+01*SUN;
+{ 14512} GPH4000                     =       G3H4000 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 14513} GPH4000 +GHO                =       GPK4002 +      GHO                                    : ARR( 0.263E-10,     0., 0.0);
+{ 14514} GPH4000 +GHO                =       G2P4006                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 14515} GPH4000+HV               =       G1P4007 +      GHO                                    :  0.100E+01*SUN;
+{ 14516} GPH4000+HV               =       G3H4000 +      GNO2                                   :  0.100E+01*SUN;
+{ 14517} GHK500Q +GHO                =       GHK500S +      GHO2                                   : ARR( 0.651E-11,     0., 0.0);
+{ 14518} GHK500Q +GHO                =       GKK5008 +      GHO                                    : ARR( 0.110E-09,     0., 0.0);
+{ 14519} GHK500Q+HV               =       G3K2000 +      GHD3002 +      GHO2                    :  0.100E+01*SUN;
+{ 14520} GHK500Q+HV               =       G1K500L +      GHO                                    :  0.100E+01*SUN;
+{ 14521} GGO4002 +GHO                =       G2G400A                                               : ARR( 0.118E-11,     0., 0.0);
+{ 14522} GGO4002 +GHO                =       GGK4002 +      GHO2                                   : ARR( 0.646E-11,     0., 0.0);
+{ 14523} GGO4002 +GHO                =       G3K4004                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 14524} GGO4002+HV               =       GD03000 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 14525} G2G400A +GNO                =       G1G400C +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 14526} G2G400A +GNO                =       GGN400G                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 14527} G2G400A +GHO2               =       GGH400E                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 14528} G2G400A +GNO3               =       G1G400C +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 14529} G2G400A +MEPERO             =  0.340G1G400C + 0.330GGO4003 + 0.330GGK4005                 : ARR( 0.565E-13,  -845., 0.0);
+{ 14530} G2G400A +PERO1              =  0.460G1G400C + 0.270GGO4003 + 0.270GGK4005                 : ARR( 0.434E-13,  -900., 0.0);
+{ 14531} G2G400A +PERO2              =  0.400G1G400C + 0.300GGO4003 + 0.300GGK4005                 : ARR( 0.162E-13, -1400., 0.0);
+{ 14532} G2G400A +PERO3              =  0.460G1G400C + 0.270GGO4003 + 0.270GGK4005                 : ARR( 0.488E-13, -1250., 0.0);
+{ 14533} G2G400A +PERO5              =  0.460G1G400C + 0.270GGO4003 + 0.270GGK4005                 : ARR( 0.183E-11,   450., 0.0);
+{ 14534} G2G400A +PERO6              =  0.300G1G400C + 0.350GGO4003 + 0.350GGK4005                 : ARR( 0.168E-13, -1300., 0.0);
+{ 14535} G2G400A +PERO9              =  0.650G1G400C + 0.350GGK4005                                : ARR( 0.100E-10,     0., 0.0);
+{ 14536} G1G400C                     =       GD02000 +      GGD2000 +      GHO2                    : ARR( 0.200E+15,  3734., 0.0);
+{ 14537} GAO4002 +GHO                =       G2A400F                                               : ARR( 0.120E-11,     0., 0.0);
+{ 14538} GAO4002 +GHO                =       GAK4002 +      GHO2                                   : ARR( 0.488E-11,     0., 0.0);
+{ 14539} GAO4002 +GHO                =       GD03000 +      GHO2    +      GCO2                    : ARR( 0.545E-12,     0., 0.0);
+{ 14540} G2A400F +GNO                =       G1A400H +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 14541} G2A400F +GNO                =       GAN400G                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 14542} G2A400F +GHO2               =       GAH400G                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 14543} G2A400F +GNO3               =       G1A400H +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 14544} G2A400F +MEPERO             =  0.340G1A400H + 0.330GAO4003 + 0.330GAK4005                 : ARR( 0.565E-13,  -845., 0.0);
+{ 14545} G2A400F +PERO1              =  0.460G1A400H + 0.270GAO4003 + 0.270GAK4005                 : ARR( 0.434E-13,  -900., 0.0);
+{ 14546} G2A400F +PERO2              =  0.400G1A400H + 0.300GAO4003 + 0.300GAK4005                 : ARR( 0.162E-13, -1400., 0.0);
+{ 14547} G2A400F +PERO3              =  0.460G1A400H + 0.270GAO4003 + 0.270GAK4005                 : ARR( 0.488E-13, -1250., 0.0);
+{ 14548} G2A400F +PERO5              =  0.460G1A400H + 0.270GAO4003 + 0.270GAK4005                 : ARR( 0.183E-11,   450., 0.0);
+{ 14549} G2A400F +PERO6              =  0.300G1A400H + 0.350GAO4003 + 0.350GAK4005                 : ARR( 0.168E-13, -1300., 0.0);
+{ 14550} G2A400F +PERO9              =  0.650G1A400H + 0.350GAK4005                                : ARR( 0.100E-10,     0., 0.0);
+{ 14551} G1A400H                     =       GD02000 +      GAD2000 +      GHO2                    : ARR( 0.200E+15,  3734., 0.0);
+{ 14552} GPO4002                     =       G3K4004 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 14553} GPO4002 +GHO                =       G2P400G                                               : ARR( 0.120E-11,     0., 0.0);
+{ 14554} GPO4002 +GHO                =       GPK4002 +      GHO2                                   : ARR( 0.654E-11,     0., 0.0);
+{ 14555} GPO4002+HV               =       G3K4004 +      GNO2                                   :  0.100E+01*SUN;
+{ 14556} G2P400G +GNO                =       G1P400H +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 14557} G2P400G +GNO                =       GPN400G                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 14558} G2P400G +GHO2               =       GPH400H                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 14559} G2P400G +GNO3               =       G1P400H +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 14560} G2P400G +MEPERO             =  0.340G1P400H + 0.330GPO4003 + 0.330GPK4005                 : ARR( 0.565E-13,  -845., 0.0);
+{ 14561} G2P400G +PERO1              =  0.460G1P400H + 0.270GPO4003 + 0.270GPK4005                 : ARR( 0.434E-13,  -900., 0.0);
+{ 14562} G2P400G +PERO2              =  0.400G1P400H + 0.300GPO4003 + 0.300GPK4005                 : ARR( 0.162E-13, -1400., 0.0);
+{ 14563} G2P400G +PERO3              =  0.460G1P400H + 0.270GPO4003 + 0.270GPK4005                 : ARR( 0.488E-13, -1250., 0.0);
+{ 14564} G2P400G +PERO5              =  0.460G1P400H + 0.270GPO4003 + 0.270GPK4005                 : ARR( 0.183E-11,   450., 0.0);
+{ 14565} G2P400G +PERO6              =  0.300G1P400H + 0.350GPO4003 + 0.350GPK4005                 : ARR( 0.168E-13, -1300., 0.0);
+{ 14566} G2P400G +PERO9              =  0.650G1P400H + 0.350GPK4005                                : ARR( 0.100E-10,     0., 0.0);
+{ 14567} G1P400H                     =       GD02000 +      GPD2000 +      GHO2                    : ARR( 0.200E+15,  3734., 0.0);
+{ 14568} GHK500R +GHO                =       GDK500D +      GHO                                    : ARR( 0.519E-10,     0., 0.0);
+{ 14569} GHK500R +GHO                =       G2K500L                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 14570} GHK500R+HV               =       G3K2000 +      G3H3000                                :  0.100E+01*SUN;
+{ 14571} GHK500R+HV               =       G1K500M +      GHO                                    :  0.100E+01*SUN;
+{ 14572} GDK500D +GHO                =       G3K500K                                               : ARR( 0.665E-10,     0., 0.0);
+{ 14573} GDK500D +GNO3               =       G3K500K +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 14574} GDK500D+HV               =       G3K2000 +      G3D3000                                :  0.100E+01*SUN;
+{ 14575} GDK500D+HV               =       G2K4009 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 14576} G3K500K +GHO2               =  0.800GGK500D + 0.200GAK500B + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 14577} G3K500K +GNO                =       G2K4009 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 14578} G3K500K +GNO2               =       GPK500D                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 14579} G3K500K +GNO3               =       G2K4009 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 14580} G3K500K +MEPERO             =  0.685G2K4009 + 0.315GAK500B + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 14581} G3K500K +PERO1              =  0.800G2K4009 + 0.200GAK500B + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 14582} G3K500K +PERO2              =  0.750G2K4009 + 0.250GAK500B + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 14583} G3K500K +PERO3              =  0.800G2K4009 + 0.200GAK500B + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 14584} G3K500K +PERO5              =  0.650G2K4009 + 0.350GAK500B + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 14585} G3K500K +PERO6              =  0.650G2K4009 + 0.350GAK500B + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 14586} G3K500K +PERO9              =       G2K4009 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 14587} G2K4009 +GNO                =       G1K4009 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 14588} G2K4009 +GNO                =       GNK400A                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 14589} G2K4009 +GHO2               =       GHK400A                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 14590} G2K4009 +GNO3               =       G1K4009 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 14591} G2K4009 +MEPERO             =  0.480G1K4009 + 0.260GKK4000 + 0.260GDK4008                 : ARR( 0.164E-12,  -795., 0.0);
+{ 14592} G2K4009 +PERO1              =  0.600G1K4009 + 0.200GKK4000 + 0.200GDK4008                 : ARR( 0.126E-12,  -850., 0.0);
+{ 14593} G2K4009 +PERO2              =  0.560G1K4009 + 0.220GKK4000 + 0.220GDK4008                 : ARR( 0.471E-13, -1350., 0.0);
+{ 14594} G2K4009 +PERO3              =  0.600G1K4009 + 0.200GKK4000 + 0.200GDK4008                 : ARR( 0.142E-12, -1200., 0.0);
+{ 14595} G2K4009 +PERO5              =  0.600G1K4009 + 0.200GKK4000 + 0.200GDK4008                 : ARR( 0.533E-11,   500., 0.0);
+{ 14596} G2K4009 +PERO6              =  0.460G1K4009 + 0.270GKK4000 + 0.270GDK4008                 : ARR( 0.488E-13, -1250., 0.0);
+{ 14597} G2K4009 +PERO9              =  0.800G1K4009 + 0.200GDK4008                                : ARR( 0.100E-10,     0., 0.0);
+{ 14598} G1K4009                     =       G3K2000 +      GCH2O   +      GCO                     : ARR( 0.200E+15,  3897., 0.0);
+{ 14599} GHK500S +GHO                =       GKK5009 +      GHO                                    : ARR( 0.210E-10,     0., 0.0);
+{ 14600} GHK500S +GHO                =       G2K500M                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 14601} GHK500S+HV               =       G3K2000 +      G3H3001                                :  0.100E+01*SUN;
+{ 14602} GHK500S+HV               =       G1K500N +      GHO                                    :  0.100E+01*SUN;
+{ 14603} GHK500T +GHO                =       GDK500E +      GHO                                    : ARR( 0.107E-10,     0., 0.0);
+{ 14604} GHK500T +GHO                =       G2K500N                                               : ARR( 0.207E-11,  -190., 0.0);
+{ 14605} GHK500T+HV               =       G3K3000 +      G3H2000                                :  0.100E+01*SUN;
+{ 14606} GHK500T+HV               =       G1K500O +      GHO                                    :  0.100E+01*SUN;
+{ 14607} GDK500E +GHO                =       G2D500S                                               : ARR( 0.728E-12,     0., 0.0);
+{ 14608} GDK500E +GHO                =       G3K3000 + 2.000GCO                                    : ARR( 0.132E-10,     0., 0.0);
+{ 14609} GDK500E +GNO3               =       G3K3000 +      GHNO3   + 2.000GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 14610} GDK500E+HV               =       G3K3000 +      G3D2000                                :  0.100E+01*SUN;
+{ 14611} GDK500E+HV               =       G3K3000 +      GCO     +      GCO     +      GHO2     :  0.100E+01*SUN;
+{ 14612} GDK500E+HV               =       GDK4002 +      GCO                                    :  0.100E+01*SUN;
+{ 14613} GDK500E+HV               =       GD03000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 14614} G2D500S +GNO                =       G1D500d +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 14615} G2D500S +GNO                =       GND500z                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 14616} G2D500S +GHO2               =       GHD500v                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 14617} G2D500S +GNO3               =       G1D500d +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 14618} G2D500S +MEPERO             =  0.340G1D500d + 0.330GDK500U + 0.330GDK500W                 : ARR( 0.565E-13,  -845., 0.0);
+{ 14619} G2D500S +PERO1              =  0.460G1D500d + 0.270GDK500U + 0.270GDK500W                 : ARR( 0.434E-13,  -900., 0.0);
+{ 14620} G2D500S +PERO2              =  0.400G1D500d + 0.300GDK500U + 0.300GDK500W                 : ARR( 0.162E-13, -1400., 0.0);
+{ 14621} G2D500S +PERO3              =  0.460G1D500d + 0.270GDK500U + 0.270GDK500W                 : ARR( 0.488E-13, -1250., 0.0);
+{ 14622} G2D500S +PERO5              =  0.460G1D500d + 0.270GDK500U + 0.270GDK500W                 : ARR( 0.183E-11,   450., 0.0);
+{ 14623} G2D500S +PERO6              =  0.300G1D500d + 0.350GDK500U + 0.350GDK500W                 : ARR( 0.168E-13, -1300., 0.0);
+{ 14624} G2D500S +PERO9              =  0.650G1D500d + 0.350GDK500W                                : ARR( 0.100E-10,     0., 0.0);
+{ 14625} G1D500d                     =       GD02000 +      G3D2000 +      GCO                     : ARR( 0.200E+15,  3036., 0.0);
+{ 14626} GO03001 +GHO                =       GK03000 +      GHO2                                   : ARR( 0.270E-11,  -190., 0.0);
+{ 14627} GGN4005 +GHO                =       GGN400J +      GHO2                                   : ARR( 0.180E-11,     0., 0.0);
+{ 14628} GGN4005 +GHO                =       G3N400C                                               : ARR( 0.204E-11,  -190., 0.0);
+{ 14629} GGN4005+HV               =       G1G4000 +      GNO2                                   :  0.100E+01*SUN;
+{ 14630} GGN4005+HV               =       GDO3001 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 14631} GGH4001 +GHO                =       GGH400C +      GHO2                                   : ARR( 0.844E-11,     0., 0.0);
+{ 14632} GGH4001 +GHO                =       GGK4001 +      GHO                                    : ARR( 0.253E-10,     0., 0.0);
+{ 14633} GGH4001 +GHO                =       G2G4000                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 14634} GGH4001 +GHO                =       G3H400A                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 14635} GGH4001+HV               =       G1G4000 +      GHO                                    :  0.100E+01*SUN;
+{ 14636} GGH4001+HV               =       GDO3001 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 14637} GGO4003 +GHO                =       GGK4005 +      GHO2                                   : ARR( 0.858E-11,     0., 0.0);
+{ 14638} GGO4003 +GHO                =       GGK4001 +      GHO2                                   : ARR( 0.644E-11,     0., 0.0);
+{ 14639} GGO4003 +GHO                =       G3K4008                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 14640} GGO4003+HV               =       GDO3001 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 14641} GGK4001 +GHO                =       G2G400B                                               : ARR( 0.539E-12,     0., 0.0);
+{ 14642} GGK4001 +GHO                =       GGK4006 +      GHO2                                   : ARR( 0.519E-11,     0., 0.0);
+{ 14643} GGK4001 +GHO                =       G3K400A                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 14644} GGK4001+HV               =       GAO3001 +      GCO2                                   :  0.100E+01*SUN;
+{ 14645} G2G400B +GNO                =       G1G400D +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 14646} G2G400B +GNO                =       GGN400D                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 14647} G2G400B +GHO2               =       GGH400F                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 14648} G2G400B +GNO3               =       G1G400D +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 14649} G2G400B +MEPERO             =  0.480G1G400D + 0.260GGK4007 + 0.260GGD4003                 : ARR( 0.164E-12,  -795., 0.0);
+{ 14650} G2G400B +PERO1              =  0.600G1G400D + 0.200GGK4007 + 0.200GGD4003                 : ARR( 0.126E-12,  -850., 0.0);
+{ 14651} G2G400B +PERO2              =  0.560G1G400D + 0.220GGK4007 + 0.220GGD4003                 : ARR( 0.471E-13, -1350., 0.0);
+{ 14652} G2G400B +PERO3              =  0.600G1G400D + 0.200GGK4007 + 0.200GGD4003                 : ARR( 0.142E-12, -1200., 0.0);
+{ 14653} G2G400B +PERO5              =  0.600G1G400D + 0.200GGK4007 + 0.200GGD4003                 : ARR( 0.533E-11,   500., 0.0);
+{ 14654} G2G400B +PERO6              =  0.460G1G400D + 0.270GGK4007 + 0.270GGD4003                 : ARR( 0.488E-13, -1250., 0.0);
+{ 14655} G2G400B +PERO9              =  0.800G1G400D + 0.200GGD4003                                : ARR( 0.100E-10,     0., 0.0);
+{ 14656} G3K400A +GHO2               =  0.800GGK4001 + 0.200GAK4001 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 14657} G3K400A +GNO                =       G3K3002 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 14658} G3K400A +GNO2               =       GPK4001                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 14659} G3K400A +GNO3               =       G3K3002 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 14660} G3K400A +MEPERO             =  0.685G3K3002 + 0.315GAK4001 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 14661} G3K400A +PERO1              =  0.800G3K3002 + 0.200GAK4001 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 14662} G3K400A +PERO2              =  0.750G3K3002 + 0.250GAK4001 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 14663} G3K400A +PERO3              =  0.800G3K3002 + 0.200GAK4001 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 14664} G3K400A +PERO5              =  0.650G3K3002 + 0.350GAK4001 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 14665} G3K400A +PERO6              =  0.650G3K3002 + 0.350GAK4001 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 14666} G3K400A +PERO9              =       G3K3002 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 14667} G1G400D                     =       GGD3002 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4155., 0.0);
+{ 14668} GAN4005 +GHO                =       G2A400G                                               : ARR( 0.171E-12,     0., 0.0);
+{ 14669} GAN4005 +GHO                =       GAN400M +      GHO2                                   : ARR( 0.171E-11,     0., 0.0);
+{ 14670} GAN4005 +GHO                =       G1A400G                                               : ARR( 0.214E-17,    85., 2.0);
+{ 14671} GAN4005 +GHO                =       GDO3001 +      GNO2    +      GCO2                    : ARR( 0.531E-12,     0., 0.0);
+{ 14672} GAN4005+HV               =       G1A4000 +      GNO2                                   :  0.100E+01*SUN;
+{ 14673} G2A400G +GNO                =       G1A400I +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 14674} G2A400G +GNO                =       GAN400B                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 14675} G2A400G +GHO2               =       GAH400H                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 14676} G2A400G +GNO3               =       G1A400I +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 14677} G2A400G +MEPERO             =  0.480G1A400I + 0.260GAN400O + 0.260GAN400P                 : ARR( 0.164E-12,  -795., 0.0);
+{ 14678} G2A400G +PERO1              =  0.600G1A400I + 0.200GAN400O + 0.200GAN400P                 : ARR( 0.126E-12,  -850., 0.0);
+{ 14679} G2A400G +PERO2              =  0.560G1A400I + 0.220GAN400O + 0.220GAN400P                 : ARR( 0.471E-13, -1350., 0.0);
+{ 14680} G2A400G +PERO3              =  0.600G1A400I + 0.200GAN400O + 0.200GAN400P                 : ARR( 0.142E-12, -1200., 0.0);
+{ 14681} G2A400G +PERO5              =  0.600G1A400I + 0.200GAN400O + 0.200GAN400P                 : ARR( 0.533E-11,   500., 0.0);
+{ 14682} G2A400G +PERO6              =  0.460G1A400I + 0.270GAN400O + 0.270GAN400P                 : ARR( 0.488E-13, -1250., 0.0);
+{ 14683} G2A400G +PERO9              =  0.800G1A400I + 0.200GAN400P                                : ARR( 0.100E-10,     0., 0.0);
+{ 14684} G1A400I                     =       GAN3006 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4427., 0.0);
+{ 14685} GAH4001 +GHO                =       GAH400D +      GHO2                                   : ARR( 0.860E-11,     0., 0.0);
+{ 14686} GAH4001 +GHO                =       GAK4001 +      GHO                                    : ARR( 0.191E-10,     0., 0.0);
+{ 14687} GAH4001 +GHO                =       G2A4000                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 14688} GAH4001+HV               =       G1A4000 +      GHO                                    :  0.100E+01*SUN;
+{ 14689} GAO4003 +GHO                =       GAK4005 +      GHO2                                   : ARR( 0.900E-11,     0., 0.0);
+{ 14690} GAO4003 +GHO                =       GAK4001 +      GHO2                                   : ARR( 0.499E-11,     0., 0.0);
+{ 14691} GAK4001 +GHO                =       G2A400H                                               : ARR( 0.543E-12,     0., 0.0);
+{ 14692} GAK4001 +GHO                =       GAK4006 +      GHO2                                   : ARR( 0.522E-11,     0., 0.0);
+{ 14693} GAK4001 +GHO                =       G3K3002 +      GCO2                                   : ARR( 0.532E-12,     0., 0.0);
+{ 14694} GAK4001+HV               =       GDO3001 +      GCO2                                   :  0.100E+01*SUN;
+{ 14695} G2A400H +GNO                =       G1A400J +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 14696} G2A400H +GNO                =       GAN400D                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 14697} G2A400H +GHO2               =       GAH400I                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 14698} G2A400H +GNO3               =       G1A400J +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 14699} G2A400H +MEPERO             =  0.480G1A400J + 0.260GAK4007 + 0.260GAD4004                 : ARR( 0.164E-12,  -795., 0.0);
+{ 14700} G2A400H +PERO1              =  0.600G1A400J + 0.200GAK4007 + 0.200GAD4004                 : ARR( 0.126E-12,  -850., 0.0);
+{ 14701} G2A400H +PERO2              =  0.560G1A400J + 0.220GAK4007 + 0.220GAD4004                 : ARR( 0.471E-13, -1350., 0.0);
+{ 14702} G2A400H +PERO3              =  0.600G1A400J + 0.200GAK4007 + 0.200GAD4004                 : ARR( 0.142E-12, -1200., 0.0);
+{ 14703} G2A400H +PERO5              =  0.600G1A400J + 0.200GAK4007 + 0.200GAD4004                 : ARR( 0.533E-11,   500., 0.0);
+{ 14704} G2A400H +PERO6              =  0.460G1A400J + 0.270GAK4007 + 0.270GAD4004                 : ARR( 0.488E-13, -1250., 0.0);
+{ 14705} G2A400H +PERO9              =  0.800G1A400J + 0.200GAD4004                                : ARR( 0.100E-10,     0., 0.0);
+{ 14706} G1A400J                     =       GAD3002 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4155., 0.0);
+{ 14707} GPN4005                     =       G3N400C +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 14708} GPN4005 +GHO                =       G2P400H                                               : ARR( 0.174E-12,     0., 0.0);
+{ 14709} GPN4005 +GHO                =       GPN400M +      GHO2                                   : ARR( 0.174E-11,     0., 0.0);
+{ 14710} GPN4005 +GHO                =       G1P400G                                               : ARR( 0.218E-17,    85., 2.0);
+{ 14711} GPN4005+HV               =       G1P4000 +      GNO2                                   :  0.100E+01*SUN;
+{ 14712} GPN4005+HV               =       G3N400C +      GNO2                                   :  0.100E+01*SUN;
+{ 14713} G2P400H +GNO                =       G1P400I +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 14714} G2P400H +GNO                =       GPN400B                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 14715} G2P400H +GHO2               =       GPH400I                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 14716} G2P400H +GNO3               =       G1P400I +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 14717} G2P400H +MEPERO             =  0.480G1P400I + 0.260GPN400O + 0.260GPN400P                 : ARR( 0.164E-12,  -795., 0.0);
+{ 14718} G2P400H +PERO1              =  0.600G1P400I + 0.200GPN400O + 0.200GPN400P                 : ARR( 0.126E-12,  -850., 0.0);
+{ 14719} G2P400H +PERO2              =  0.560G1P400I + 0.220GPN400O + 0.220GPN400P                 : ARR( 0.471E-13, -1350., 0.0);
+{ 14720} G2P400H +PERO3              =  0.600G1P400I + 0.200GPN400O + 0.200GPN400P                 : ARR( 0.142E-12, -1200., 0.0);
+{ 14721} G2P400H +PERO5              =  0.600G1P400I + 0.200GPN400O + 0.200GPN400P                 : ARR( 0.533E-11,   500., 0.0);
+{ 14722} G2P400H +PERO6              =  0.460G1P400I + 0.270GPN400O + 0.270GPN400P                 : ARR( 0.488E-13, -1250., 0.0);
+{ 14723} G2P400H +PERO9              =  0.800G1P400I + 0.200GPN400P                                : ARR( 0.100E-10,     0., 0.0);
+{ 14724} G1P400I                     =       GPN3006 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4427., 0.0);
+{ 14725} GPH4001                     =       G3H400A +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 14726} GPH4001 +GHO                =       GPH400E +      GHO2                                   : ARR( 0.845E-11,     0., 0.0);
+{ 14727} GPH4001 +GHO                =       GPK4001 +      GHO                                    : ARR( 0.253E-10,     0., 0.0);
+{ 14728} GPH4001 +GHO                =       G2P4000                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 14729} GPH4001+HV               =       G1P4000 +      GHO                                    :  0.100E+01*SUN;
+{ 14730} GPH4001+HV               =       G3H400A +      GNO2                                   :  0.100E+01*SUN;
+{ 14731} GPO4003                     =       G3K4008 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 14732} GPO4003 +GHO                =       GPK4005 +      GHO2                                   : ARR( 0.863E-11,     0., 0.0);
+{ 14733} GPO4003 +GHO                =       GPK4001 +      GHO2                                   : ARR( 0.647E-11,     0., 0.0);
+{ 14734} GPO4003+HV               =       G3K4008 +      GNO2                                   :  0.100E+01*SUN;
+{ 14735} GPK4001                     =       G3K400A +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 14736} GPK4001 +GHO                =       G2P400I                                               : ARR( 0.545E-12,     0., 0.0);
+{ 14737} GPK4001 +GHO                =       GPK4006 +      GHO2                                   : ARR( 0.523E-11,     0., 0.0);
+{ 14738} GPK4001+HV               =       G3K3002 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 14739} G2P400I +GNO                =       G1P400J +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 14740} G2P400I +GNO                =       GPN400D                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 14741} G2P400I +GHO2               =       GPH400J                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 14742} G2P400I +GNO3               =       G1P400J +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 14743} G2P400I +MEPERO             =  0.480G1P400J + 0.260GPK4007 + 0.260GPD4004                 : ARR( 0.164E-12,  -795., 0.0);
+{ 14744} G2P400I +PERO1              =  0.600G1P400J + 0.200GPK4007 + 0.200GPD4004                 : ARR( 0.126E-12,  -850., 0.0);
+{ 14745} G2P400I +PERO2              =  0.560G1P400J + 0.220GPK4007 + 0.220GPD4004                 : ARR( 0.471E-13, -1350., 0.0);
+{ 14746} G2P400I +PERO3              =  0.600G1P400J + 0.200GPK4007 + 0.200GPD4004                 : ARR( 0.142E-12, -1200., 0.0);
+{ 14747} G2P400I +PERO5              =  0.600G1P400J + 0.200GPK4007 + 0.200GPD4004                 : ARR( 0.533E-11,   500., 0.0);
+{ 14748} G2P400I +PERO6              =  0.460G1P400J + 0.270GPK4007 + 0.270GPD4004                 : ARR( 0.488E-13, -1250., 0.0);
+{ 14749} G2P400I +PERO9              =  0.800G1P400J + 0.200GPD4004                                : ARR( 0.100E-10,     0., 0.0);
+{ 14750} G1P400J                     =       GPD3002 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4155., 0.0);
+{ 14751} GHN501l +GHO                =       GNN5018 +      GHO                                    : ARR( 0.836E-11,     0., 0.0);
+{ 14752} GHN501l +GHO                =       GHN504d +      GHO2                                   : ARR( 0.408E-11,     0., 0.0);
+{ 14753} GHN501l +GHO                =       G2N501P                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 14754} GHN501l+HV               =       G1H501J +      GNO2                                   :  0.100E+01*SUN;
+{ 14755} GHN501l+HV               =       G1H503I +      GNO2                                   :  0.100E+01*SUN;
+{ 14756} GHN501l+HV               =       G1N501S +      GHO                                    :  0.100E+01*SUN;
+{ 14757} G1H503I                     =       GND3001 +      GDO2000 +      GHO                     : ARR( 0.200E+15,  4784., 0.0);
+{ 14758} GNN5017 +GHO                =       GNN5018 +      GHO2                                   : ARR( 0.218E-11,     0., 0.0);
+{ 14759} GNN5017 +GHO                =       GNN502Z +      GHO2                                   : ARR( 0.426E-11,     0., 0.0);
+{ 14760} GNN5017+HV               =       G1N5045 +      GNO2                                   :  0.100E+01*SUN;
+{ 14761} GNN5017+HV               =       G1N5046 +      GNO2                                   :  0.100E+01*SUN;
+{ 14762} G1N5045                     =       GND500P +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{ 14763} G1N5046                     =       GND3001 +      GDO2000 +      GHO2                    : ARR( 0.200E+15,  3575., 0.0);
+{ 14764} GNN5018 +GHO                =       GNN502X +      GHO2                                   : ARR( 0.252E-11,     0., 0.0);
+{ 14765} GNN5018 +GHO                =       G1N503Z                                               : ARR( 0.215E-17,    85., 2.0);
+{ 14766} GNN5018+HV               =       G1N503S +      GNO2                                   :  0.100E+01*SUN;
+{ 14767} GNN5018+HV               =       G1N501X +      GNO2                                   :  0.100E+01*SUN;
+{ 14768} GNN5018+HV               =       G3N4009 +      GCH2O   +      GHO2                    :  0.100E+01*SUN;
+{ 14769} GNN5018+HV               =       G2D2000 +      GNK3001 +      GNO2                    :  0.100E+01*SUN;
+{ 14770} GNN4007 +GHO                =       G3N4009                                               : ARR( 0.422E-11,     0., 0.0);
+{ 14771} GNN4007 +GNO3               =       G3N4009 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 14772} GNN4007+HV               =       G1N400f +      GNO2                                   :  0.100E+01*SUN;
+{ 14773} GNN4007+HV               =       G1N400g +      GNO2                                   :  0.100E+01*SUN;
+{ 14774} GNN4007+HV               =       GND3001 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 14775} GNN4007+HV               =       G2D2000 +      GND2000 +      GNO2                    :  0.100E+01*SUN;
+{ 14776} G1N400f                     =       GD02000 +      GDD2000 +      GNO2                    : ARR( 0.200E+15,  6261., 0.0);
+{ 14777} G1N400g                     =       GND3001 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 14778} GHN501m +GHO                =       GND500Q +      GHO                                    : ARR( 0.686E-11,     0., 0.0);
+{ 14779} GHN501m +GHO                =       G3H500L                                               : ARR( 0.213E-10,     0., 0.0);
+{ 14780} GHN501m +GHO                =       G2N503d                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 14781} GHN501m +GNO3               =       G3H500L +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 14782} GHN501m+HV               =       G1N503e +      GHO                                    :  0.100E+01*SUN;
+{ 14783} GHN501m+HV               =       G1H500e +      GNO2                                   :  0.100E+01*SUN;
+{ 14784} GHN501m+HV               =       G2H400R +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 14785} GHN501m+HV               =       GDK3000 +      GD02000 +      GNO2    +      GHO      :  0.100E+01*SUN;
+{ 14786} G3H500L +GHO2               =  0.800GGH500L + 0.200GAH500M + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 14787} G3H500L +GNO                =       G2H400R +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 14788} G3H500L +GNO2               =       GPH500M                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 14789} G3H500L +GNO3               =       G2H400R +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 14790} G3H500L +MEPERO             =  0.685G2H400R + 0.315GAH500M + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 14791} G3H500L +PERO1              =  0.800G2H400R + 0.200GAH500M + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 14792} G3H500L +PERO2              =  0.750G2H400R + 0.250GAH500M + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 14793} G3H500L +PERO3              =  0.800G2H400R + 0.200GAH500M + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 14794} G3H500L +PERO5              =  0.650G2H400R + 0.350GAH500M + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 14795} G3H500L +PERO6              =  0.650G2H400R + 0.350GAH500M + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 14796} G3H500L +PERO9              =       G2H400R +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 14797} G2N503d +GNO                =       G1N503e +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 14798} G2N503d +GNO                =       GNN500x                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 14799} G2N503d +GHO2               =       GHN501m                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 14800} G2N503d +GNO3               =       G1N503e +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 14801} G2N503d +MEPERO             =  0.340G1N503e + 0.330GND5005 + 0.330GND500Q                 : ARR( 0.565E-13,  -845., 0.0);
+{ 14802} G2N503d +PERO1              =  0.460G1N503e + 0.270GND5005 + 0.270GND500Q                 : ARR( 0.434E-13,  -900., 0.0);
+{ 14803} G2N503d +PERO2              =  0.400G1N503e + 0.300GND5005 + 0.300GND500Q                 : ARR( 0.162E-13, -1400., 0.0);
+{ 14804} G2N503d +PERO3              =  0.460G1N503e + 0.270GND5005 + 0.270GND500Q                 : ARR( 0.488E-13, -1250., 0.0);
+{ 14805} G2N503d +PERO5              =  0.460G1N503e + 0.270GND5005 + 0.270GND500Q                 : ARR( 0.183E-11,   450., 0.0);
+{ 14806} G2N503d +PERO6              =  0.300G1N503e + 0.350GND5005 + 0.350GND500Q                 : ARR( 0.168E-13, -1300., 0.0);
+{ 14807} G2N503d +PERO9              =  0.650G1N503e + 0.350GND500Q                                : ARR( 0.100E-10,     0., 0.0);
+{ 14808} G2H400R +GNO                =       G1H400T +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 14809} G2H400R +GNO                =       GHN400c                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 14810} G2H400R +GHO2               =       GHH400N                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 14811} G2H400R +GNO3               =       G1H400T +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 14812} G2H400R +MEPERO             =  0.480G1H400T + 0.260GHN400d + 0.260GHN400p                 : ARR( 0.164E-12,  -795., 0.0);
+{ 14813} G2H400R +PERO1              =  0.600G1H400T + 0.200GHN400d + 0.200GHN400p                 : ARR( 0.126E-12,  -850., 0.0);
+{ 14814} G2H400R +PERO2              =  0.560G1H400T + 0.220GHN400d + 0.220GHN400p                 : ARR( 0.471E-13, -1350., 0.0);
+{ 14815} G2H400R +PERO3              =  0.600G1H400T + 0.200GHN400d + 0.200GHN400p                 : ARR( 0.142E-12, -1200., 0.0);
+{ 14816} G2H400R +PERO5              =  0.600G1H400T + 0.200GHN400d + 0.200GHN400p                 : ARR( 0.533E-11,   500., 0.0);
+{ 14817} G2H400R +PERO6              =  0.460G1H400T + 0.270GHN400d + 0.270GHN400p                 : ARR( 0.488E-13, -1250., 0.0);
+{ 14818} G2H400R +PERO9              =  0.800G1H400T + 0.200GHN400p                                : ARR( 0.100E-10,     0., 0.0);
+{ 14819} G1H400T +OXYGEN             =       GHN400p +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 14820} G1H400T                     =       G2H400S                                               : ARR( 0.240E+12,  4177., 0.0);
+{ 14821} G1H400T                     =       GHD3002 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7042., 0.0);
+{ 14822} G2H400S +GNO                =       G1H400U +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 14823} G2H400S +GNO                =       GHN400s                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 14824} G2H400S +GHO2               =       GHH400O                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 14825} G2H400S +GNO3               =       G1H400U +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 14826} G2H400S +MEPERO             =  0.480G1H400U + 0.260GHN400e + 0.260GHN400h                 : ARR( 0.164E-12,  -795., 0.0);
+{ 14827} G2H400S +PERO1              =  0.600G1H400U + 0.200GHN400e + 0.200GHN400h                 : ARR( 0.126E-12,  -850., 0.0);
+{ 14828} G2H400S +PERO2              =  0.560G1H400U + 0.220GHN400e + 0.220GHN400h                 : ARR( 0.471E-13, -1350., 0.0);
+{ 14829} G2H400S +PERO3              =  0.600G1H400U + 0.200GHN400e + 0.200GHN400h                 : ARR( 0.142E-12, -1200., 0.0);
+{ 14830} G2H400S +PERO5              =  0.600G1H400U + 0.200GHN400e + 0.200GHN400h                 : ARR( 0.533E-11,   500., 0.0);
+{ 14831} G2H400S +PERO6              =  0.460G1H400U + 0.270GHN400e + 0.270GHN400h                 : ARR( 0.488E-13, -1250., 0.0);
+{ 14832} G2H400S +PERO9              =  0.800G1H400U + 0.200GHN400h                                : ARR( 0.100E-10,     0., 0.0);
+{ 14833} G1H400U                     =       GHN400L +      GHO2                                   : ARR( 0.160E+12,  3252., 0.0);
+{ 14834} G1H400U                     =       GND3004 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{ 14835} GHN501n +GHO                =       GNK500h +      GHO                                    : ARR( 0.841E-11,     0., 0.0);
+{ 14836} GHN501n +GHO                =       GHN504e +      GHO2                                   : ARR( 0.410E-11,     0., 0.0);
+{ 14837} GHN501n +GHO                =       G2N501Q                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 14838} GHN501n+HV               =       G3K2000 +      GHD3003 +      GNO2                    :  0.100E+01*SUN;
+{ 14839} GHN501n+HV               =       GNK3000 +      GHD2000                                :  0.100E+01*SUN;
+{ 14840} GHN501n+HV               =       G1H503J +      GNO2                                   :  0.100E+01*SUN;
+{ 14841} GHN501n+HV               =       G1N501T +      GHO                                    :  0.100E+01*SUN;
+{ 14842} G1H503J                     =       G3K2000 +      GHD3003                                : ARR( 0.200E+15,  2923., 0.0);
+{ 14843} GNK500h +GHO                =       GND5018 +      GHO2                                   : ARR( 0.259E-11,     0., 0.0);
+{ 14844} GNK500h +GHO                =       G1N5044                                               : ARR( 0.222E-17,    85., 2.0);
+{ 14845} GNK500h+HV               =       G3K2000 +      GDK3001 +      GNO2                    :  0.100E+01*SUN;
+{ 14846} GNK500h+HV               =       G1K500R +      GNO2                                   :  0.100E+01*SUN;
+{ 14847} GNK500h+HV               =       G3N400D +      GCH2O   +      GHO2                    :  0.100E+01*SUN;
+{ 14848} GND4008 +GHO                =       G3N400D                                               : ARR( 0.430E-11,     0., 0.0);
+{ 14849} GND4008 +GNO3               =       G3N400D +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 14850} GND4008+HV               =       G3K2000 +      GDD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 14851} GND4008+HV               =       G1D400D +      GNO2                                   :  0.100E+01*SUN;
+{ 14852} GND4008+HV               =       GDK3000 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 14853} G1D400D                     =       G3K2000 +      GDD2000                                : ARR( 0.200E+15,  4867., 0.0);
+{ 14854} GHN501o +GHO                =       GHN502E +      GHO2                                   : ARR( 0.209E-11,     0., 0.0);
+{ 14855} GHN501o +GHO                =       GNN5019 +      GHO                                    : ARR( 0.164E-10,     0., 0.0);
+{ 14856} GHN501o +GHO                =       G2N501R                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 14857} GHN501o+HV               =       G1H502y +      GNO2                                   :  0.100E+01*SUN;
+{ 14858} GHN501o+HV               =       G1H503K +      GNO2                                   :  0.100E+01*SUN;
+{ 14859} GHN501o+HV               =       G1N501U +      GHO                                    :  0.100E+01*SUN;
+{ 14860} G1H503K                     =       GND3000 +      GHD2000 +      GHO2                    : ARR( 0.200E+15,  3320., 0.0);
+{ 14861} GNN5019 +GHO                =       GNN501u +      GHO2                                   : ARR( 0.129E-11,     0., 0.0);
+{ 14862} GNN5019 +GHO                =       G3N500W                                               : ARR( 0.214E-10,     0., 0.0);
+{ 14863} GNN5019 +GNO3               =       G3N500W +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 14864} GNN5019+HV               =       G1N503l +      GNO2                                   :  0.100E+01*SUN;
+{ 14865} GNN5019+HV               =       G1N503P +      GNO2                                   :  0.100E+01*SUN;
+{ 14866} GNN5019+HV               =       GNN4008 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 14867} G3N500W +GHO2               =  0.800GGN500h + 0.200GAN500a + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 14868} G3N500W +GNO                =       GNN4008 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 14869} G3N500W +GNO2               =       GPN500a                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 14870} G3N500W +GNO3               =       GNN4008 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 14871} G3N500W +MEPERO             =  0.685GNN4008 + 0.315GAN500a + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 14872} G3N500W +PERO1              =  0.800GNN4008 + 0.200GAN500a + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 14873} G3N500W +PERO2              =  0.750GNN4008 + 0.250GAN500a + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 14874} G3N500W +PERO3              =  0.800GNN4008 + 0.200GAN500a + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 14875} G3N500W +PERO5              =  0.650GNN4008 + 0.350GAN500a + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 14876} G3N500W +PERO6              =  0.650GNN4008 + 0.350GAN500a + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 14877} G3N500W +PERO9              =       GNN4008 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 14878} GNN4008 +GHO                =       G3N4005                                               : ARR( 0.433E-11,     0., 0.0);
+{ 14879} GNN4008 +GNO3               =       G3N4005 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 14880} GNN4008+HV               =       G1N400h +      GNO2                                   :  0.100E+01*SUN;
+{ 14881} GNN4008+HV               =       G1N400i +      GNO2                                   :  0.100E+01*SUN;
+{ 14882} GNN4008+HV               =       GND3000 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 14883} GNN4008+HV               =       G2D2000 +      GND2000 +      GNO2                    :  0.100E+01*SUN;
+{ 14884} G1N400h +OXYGEN             =       GND400D +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{ 14885} G1N400h                     =       G3N4008                                               : ARR( 0.800E+11,  5278., 0.0);
+{ 14886} G1N400i                     =       GND3000 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5437., 0.0);
+{ 14887} GGN5006 +GHO                =       GGN500Q +      GHO2                                   : ARR( 0.187E-11,     0., 0.0);
+{ 14888} GGN5006 +GHO                =       G3N5005                                               : ARR( 0.212E-11,  -190., 0.0);
+{ 14889} GGN5006+HV               =       G1G5003 +      GNO2                                   :  0.100E+01*SUN;
+{ 14890} GGN5006+HV               =       G2N4009 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 14891} GAN5006 +GHO                =       G2A500c                                               : ARR( 0.184E-12,     0., 0.0);
+{ 14892} GAN5006 +GHO                =       GAN500S +      GHO2                                   : ARR( 0.184E-11,     0., 0.0);
+{ 14893} GAN5006 +GHO                =       G1A500G                                               : ARR( 0.231E-17,    85., 2.0);
+{ 14894} GAN5006 +GHO                =       G2N4009 +      GCO2                                   : ARR( 0.571E-12,     0., 0.0);
+{ 14895} GAN5006+HV               =       G1A5003 +      GNO2                                   :  0.100E+01*SUN;
+{ 14896} G2A500c +GNO                =       G1A500d +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 14897} G2A500c +GNO                =       GAN500H                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 14898} G2A500c +GHO2               =       GAH500G                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 14899} G2A500c +GNO3               =       G1A500d +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 14900} G2A500c +MEPERO             =  0.480G1A500d + 0.260GAN500N + 0.260GAN500o                 : ARR( 0.164E-12,  -795., 0.0);
+{ 14901} G2A500c +PERO1              =  0.600G1A500d + 0.200GAN500N + 0.200GAN500o                 : ARR( 0.126E-12,  -850., 0.0);
+{ 14902} G2A500c +PERO2              =  0.560G1A500d + 0.220GAN500N + 0.220GAN500o                 : ARR( 0.471E-13, -1350., 0.0);
+{ 14903} G2A500c +PERO3              =  0.600G1A500d + 0.200GAN500N + 0.200GAN500o                 : ARR( 0.142E-12, -1200., 0.0);
+{ 14904} G2A500c +PERO5              =  0.600G1A500d + 0.200GAN500N + 0.200GAN500o                 : ARR( 0.533E-11,   500., 0.0);
+{ 14905} G2A500c +PERO6              =  0.460G1A500d + 0.270GAN500N + 0.270GAN500o                 : ARR( 0.488E-13, -1250., 0.0);
+{ 14906} G2A500c +PERO9              =  0.800G1A500d + 0.200GAN500o                                : ARR( 0.100E-10,     0., 0.0);
+{ 14907} G1A500d                     =       GAN400J +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 14908} GPN5006                     =       G3N5005 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 14909} GPN5006 +GHO                =       G2P500d                                               : ARR( 0.168E-12,     0., 0.0);
+{ 14910} GPN5006 +GHO                =       GPN500S +      GHO2                                   : ARR( 0.168E-11,     0., 0.0);
+{ 14911} GPN5006 +GHO                =       GPK5003 +      GNO2                                   : ARR( 0.118E-12,     0., 0.0);
+{ 14912} GPN5006 +GHO                =       G2P500e                                               : ARR( 0.172E-12,     0., 0.0);
+{ 14913} GPN5006 +GHO                =       G1P500G                                               : ARR( 0.210E-17,    85., 2.0);
+{ 14914} GPN5006+HV               =       G1P5003 +      GNO2                                   :  0.100E+01*SUN;
+{ 14915} GPN5006+HV               =       G3N5005 +      GNO2                                   :  0.100E+01*SUN;
+{ 14916} G2P500d +GNO                =       G1P500e +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 14917} G2P500d +GNO                =       GPN500H                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 14918} G2P500d +GHO2               =       GPH500G                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 14919} G2P500d +GNO3               =       G1P500e +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 14920} G2P500d +MEPERO             =  0.480G1P500e + 0.260GPN500N + 0.260GPN500p                 : ARR( 0.164E-12,  -795., 0.0);
+{ 14921} G2P500d +PERO1              =  0.600G1P500e + 0.200GPN500N + 0.200GPN500p                 : ARR( 0.126E-12,  -850., 0.0);
+{ 14922} G2P500d +PERO2              =  0.560G1P500e + 0.220GPN500N + 0.220GPN500p                 : ARR( 0.471E-13, -1350., 0.0);
+{ 14923} G2P500d +PERO3              =  0.600G1P500e + 0.200GPN500N + 0.200GPN500p                 : ARR( 0.142E-12, -1200., 0.0);
+{ 14924} G2P500d +PERO5              =  0.600G1P500e + 0.200GPN500N + 0.200GPN500p                 : ARR( 0.533E-11,   500., 0.0);
+{ 14925} G2P500d +PERO6              =  0.460G1P500e + 0.270GPN500N + 0.270GPN500p                 : ARR( 0.488E-13, -1250., 0.0);
+{ 14926} G2P500d +PERO9              =  0.800G1P500e + 0.200GPN500p                                : ARR( 0.100E-10,     0., 0.0);
+{ 14927} G2P500e +GNO                =       G1P500f +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 14928} G2P500e +GNO                =       GPN500n                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 14929} G2P500e +GHO2               =       GPH500l                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 14930} G2P500e +GNO3               =       G1P500f +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 14931} G2P500e +MEPERO             =  0.340G1P500f + 0.330GPN500o + 0.330GPN500q                 : ARR( 0.565E-13,  -845., 0.0);
+{ 14932} G2P500e +PERO1              =  0.460G1P500f + 0.270GPN500o + 0.270GPN500q                 : ARR( 0.434E-13,  -900., 0.0);
+{ 14933} G2P500e +PERO2              =  0.400G1P500f + 0.300GPN500o + 0.300GPN500q                 : ARR( 0.162E-13, -1400., 0.0);
+{ 14934} G2P500e +PERO3              =  0.460G1P500f + 0.270GPN500o + 0.270GPN500q                 : ARR( 0.488E-13, -1250., 0.0);
+{ 14935} G2P500e +PERO5              =  0.460G1P500f + 0.270GPN500o + 0.270GPN500q                 : ARR( 0.183E-11,   450., 0.0);
+{ 14936} G2P500e +PERO6              =  0.300G1P500f + 0.350GPN500o + 0.350GPN500q                 : ARR( 0.168E-13, -1300., 0.0);
+{ 14937} G2P500e +PERO9              =  0.650G1P500f + 0.350GPN500q                                : ARR( 0.100E-10,     0., 0.0);
+{ 14938} G1P500e                     =       GPN400H +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 14939} G1P500f                     =       G2P500f                                               : ARR( 0.240E+12,  4177., 0.0);
+{ 14940} G1P500f                     =       GND4007 +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 14941} G2P500f +GNO                =       G1P500g +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 14942} G2P500f +GNO                =       GPN500r                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 14943} G2P500f +GHO2               =       GPH500m                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 14944} G2P500f +GNO3               =       G1P500g +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 14945} G2P500f +MEPERO             =  0.480G1P500g + 0.260GPN500s + 0.260GPN500t                 : ARR( 0.164E-12,  -795., 0.0);
+{ 14946} G2P500f +PERO1              =  0.600G1P500g + 0.200GPN500s + 0.200GPN500t                 : ARR( 0.126E-12,  -850., 0.0);
+{ 14947} G2P500f +PERO2              =  0.560G1P500g + 0.220GPN500s + 0.220GPN500t                 : ARR( 0.471E-13, -1350., 0.0);
+{ 14948} G2P500f +PERO3              =  0.600G1P500g + 0.200GPN500s + 0.200GPN500t                 : ARR( 0.142E-12, -1200., 0.0);
+{ 14949} G2P500f +PERO5              =  0.600G1P500g + 0.200GPN500s + 0.200GPN500t                 : ARR( 0.533E-11,   500., 0.0);
+{ 14950} G2P500f +PERO6              =  0.460G1P500g + 0.270GPN500s + 0.270GPN500t                 : ARR( 0.488E-13, -1250., 0.0);
+{ 14951} G2P500f +PERO9              =  0.800G1P500g + 0.200GPN500t                                : ARR( 0.100E-10,     0., 0.0);
+{ 14952} G1P500g                     =       GPN500u +      GHO2                                   : ARR( 0.800E+11,  2965., 0.0);
+{ 14953} G1P500g                     =       GPN400Q +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 14954} GNN4009 +GHO                =       G2N400d                                               : ARR( 0.170E-12,     0., 0.0);
+{ 14955} GNN4009 +GHO                =       GNN400M +      GHO2                                   : ARR( 0.170E-11,     0., 0.0);
+{ 14956} GNN4009 +GHO                =       G1N400P                                               : ARR( 0.213E-17,    85., 2.0);
+{ 14957} GNN4009+HV               =       G1N400j +      GNO2                                   :  0.100E+01*SUN;
+{ 14958} GNN4009+HV               =       G1N4009 +      GNO2                                   :  0.100E+01*SUN;
+{ 14959} G2N400d +GNO                =       G1N400k +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 14960} G2N400d +GNO                =       GNN400H                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 14961} G2N400d +GHO2               =       GHN400X                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 14962} G2N400d +GNO3               =       G1N400k +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 14963} G2N400d +MEPERO             =  0.480G1N400k + 0.260GNN400K + 0.260GNN400T                 : ARR( 0.164E-12,  -795., 0.0);
+{ 14964} G2N400d +PERO1              =  0.600G1N400k + 0.200GNN400K + 0.200GNN400T                 : ARR( 0.126E-12,  -850., 0.0);
+{ 14965} G2N400d +PERO2              =  0.560G1N400k + 0.220GNN400K + 0.220GNN400T                 : ARR( 0.471E-13, -1350., 0.0);
+{ 14966} G2N400d +PERO3              =  0.600G1N400k + 0.200GNN400K + 0.200GNN400T                 : ARR( 0.142E-12, -1200., 0.0);
+{ 14967} G2N400d +PERO5              =  0.600G1N400k + 0.200GNN400K + 0.200GNN400T                 : ARR( 0.533E-11,   500., 0.0);
+{ 14968} G2N400d +PERO6              =  0.460G1N400k + 0.270GNN400K + 0.270GNN400T                 : ARR( 0.488E-13, -1250., 0.0);
+{ 14969} G2N400d +PERO9              =  0.800G1N400k + 0.200GNN400T                                : ARR( 0.100E-10,     0., 0.0);
+{ 14970} G1N400j                     =       GD02000 +      GND2000 +      GHO2                    : ARR( 0.200E+15,  4020., 0.0);
+{ 14971} G1N400k                     =       GNN3005 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 14972} GHN400B +GHO                =       GHN400r +      GHO2                                   : ARR( 0.176E-11,     0., 0.0);
+{ 14973} GHN400B +GHO                =       GND4007 +      GHO                                    : ARR( 0.338E-11,     0., 0.0);
+{ 14974} GHN400B +GHO                =       G2N4009                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 14975} GHN400B+HV               =       G1H400W +      GNO2                                   :  0.100E+01*SUN;
+{ 14976} GHN400B+HV               =       G1N4009 +      GHO                                    :  0.100E+01*SUN;
+{ 14977} G1H400W                     =       GD02000 +      GHD2000 +      GHO2                    : ARR( 0.200E+15,  4022., 0.0);
+{ 14978} GNO4008 +GHO                =       G2N400A                                               : ARR( 0.193E-12,     0., 0.0);
+{ 14979} GNO4008 +GHO                =       GNK4007 +      GHO2                                   : ARR( 0.193E-11,     0., 0.0);
+{ 14980} GNO4008 +GHO                =       GND4007 +      GHO2                                   : ARR( 0.925E-12,     0., 0.0);
+{ 14981} GNO4008+HV               =       G1O4009 +      GNO2                                   :  0.100E+01*SUN;
+{ 14982} GNN400A +GHO                =       GNN400F +      GHO2                                   : ARR( 0.827E-12,     0., 0.0);
+{ 14983} GNN400A +GHO                =       GNK4005 +      GNO2                                   : ARR( 0.121E-12,     0., 0.0);
+{ 14984} GNN400A +GHO                =       GNN400U +      GHO2                                   : ARR( 0.424E-12,     0., 0.0);
+{ 14985} GNN400A +GHO                =       G1N400G                                               : ARR( 0.216E-17,    85., 2.0);
+{ 14986} GNN400A +GHO                =       G1N400l                                               : ARR( 0.216E-17,    85., 2.0);
+{ 14987} GNN400A+HV               =       G1N400B +      GNO2                                   :  0.100E+01*SUN;
+{ 14988} GNN400A+HV               =       G1N400A +      GNO2                                   :  0.100E+01*SUN;
+{ 14989} G1N400l                     =       GDO2000 +      GND2000 +      GNO2                    : ARR( 0.200E+15,  6380., 0.0);
+{ 14990} GHN400C +GHO                =       GHN400t +      GHO2                                   : ARR( 0.217E-11,     0., 0.0);
+{ 14991} GHN400C +GHO                =       GND4009 +      GHO                                    : ARR( 0.170E-10,     0., 0.0);
+{ 14992} GHN400C +GHO                =       G2N400A                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 14993} GHN400C+HV               =       G1H400X +      GNO2                                   :  0.100E+01*SUN;
+{ 14994} GHN400C+HV               =       G1N400A +      GHO                                    :  0.100E+01*SUN;
+{ 14995} G1H400X                     =       GDO2000 +      GHD2000 +      GHO2                    : ARR( 0.200E+15,  3635., 0.0);
+{ 14996} GNO4009 +GHO                =       GND4009 +      GHO2                                   : ARR( 0.434E-11,     0., 0.0);
+{ 14997} GNO4009 +GHO                =       GNK4008 +      GHO2                                   : ARR( 0.222E-11,     0., 0.0);
+{ 14998} GNO4009 +GHO                =       GND400A +      GHO2                                   : ARR( 0.867E-12,     0., 0.0);
+{ 14999} GNO4009+HV               =       G1O400A +      GNO2                                   :  0.100E+01*SUN;
+{ 15000} GND4009 +GHO                =       GND400K +      GHO2                                   : ARR( 0.134E-11,     0., 0.0);
+{ 15001} GND4009 +GHO                =       G3N400E                                               : ARR( 0.221E-10,     0., 0.0);
+{ 15002} GND4009 +GNO3               =       G3N400E +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 15003} GND4009+HV               =       G1D4002 +      GNO2                                   :  0.100E+01*SUN;
+{ 15004} GND4009+HV               =       GND3004 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 15005} G3N400E +GHO2               =  0.800GGN400K + 0.200GAN400K + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 15006} G3N400E +GNO                =       GND3004 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 15007} G3N400E +GNO2               =       GPN400K                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 15008} G3N400E +GNO3               =       GND3004 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 15009} G3N400E +MEPERO             =  0.685GND3004 + 0.315GAN400K + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15010} G3N400E +PERO1              =  0.800GND3004 + 0.200GAN400K + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15011} G3N400E +PERO2              =  0.750GND3004 + 0.250GAN400K + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15012} G3N400E +PERO3              =  0.800GND3004 + 0.200GAN400K + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15013} G3N400E +PERO5              =  0.650GND3004 + 0.350GAN400K + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15014} G3N400E +PERO6              =  0.650GND3004 + 0.350GAN400K + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15015} G3N400E +PERO9              =       GND3004 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 15016} GND400A +GHO                =       GND400J +      GHO2                                   : ARR( 0.416E-11,     0., 0.0);
+{ 15017} GND400A +GHO                =       GND400L +      GHO2                                   : ARR( 0.213E-11,     0., 0.0);
+{ 15018} GND400A +GHO                =       G3N400F                                               : ARR( 0.430E-11,     0., 0.0);
+{ 15019} GND400A +GNO3               =       G3N400F +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 15020} GND400A+HV               =       G1D400E +      GNO2                                   :  0.100E+01*SUN;
+{ 15021} GND400A+HV               =       GDO3002 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 15022} GND400A+HV               =       GDO2000 +      GND2000                                :  0.100E+01*SUN;
+{ 15023} G3N400F +GHO2               =  0.800GGN400L + 0.200GAN400O + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 15024} G3N400F +GNO                =       GDO3002 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 15025} G3N400F +GNO2               =       GPN400O                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 15026} G3N400F +GNO3               =       GDO3002 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 15027} G3N400F +MEPERO             =  0.685GDO3002 + 0.315GAN400O + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15028} G3N400F +PERO1              =  0.800GDO3002 + 0.200GAN400O + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15029} G3N400F +PERO2              =  0.750GDO3002 + 0.250GAN400O + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15030} G3N400F +PERO3              =  0.800GDO3002 + 0.200GAN400O + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15031} G3N400F +PERO5              =  0.650GDO3002 + 0.350GAN400O + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15032} G3N400F +PERO6              =  0.650GDO3002 + 0.350GAN400O + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15033} G3N400F +PERO9              =       GDO3002 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 15034} G1D400E                     =       GDO2000 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  5047., 0.0);
+{ 15035} G1D400E                     =       GDO3002 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 15036} GGH3001 +GHO                =       GGK3000 +      GHO                                    : ARR( 0.206E-10,     0., 0.0);
+{ 15037} GGH3001 +GHO                =       G2G3001                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 15038} GGH3001 +GHO                =       G3H3001                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 15039} GGH3001+HV               =       G1G3001 +      GHO                                    :  0.100E+01*SUN;
+{ 15040} GGH3001+HV               =       GD02000 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 15041} GGK3000 +GHO                =       G3K3004                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 15042} GGK3000+HV               =       GA02000 +      GCO2                                   :  0.100E+01*SUN;
+{ 15043} G3K3004 +GHO2               =  0.800GGK3000 + 0.200GAK3000 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 15044} G3K3004 +GNO                =       G3K2000 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 15045} G3K3004 +GNO2               =       GPK3000                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 15046} G3K3004 +GNO3               =       G3K2000 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 15047} G3K3004 +MEPERO             =  0.685G3K2000 + 0.315GAK3000 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 15048} G3K3004 +PERO1              =  0.800G3K2000 + 0.200GAK3000 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 15049} G3K3004 +PERO2              =  0.750G3K2000 + 0.250GAK3000 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 15050} G3K3004 +PERO3              =  0.800G3K2000 + 0.200GAK3000 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 15051} G3K3004 +PERO5              =  0.650G3K2000 + 0.350GAK3000 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 15052} G3K3004 +PERO6              =  0.650G3K2000 + 0.350GAK3000 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 15053} G3K3004 +PERO9              =       G3K2000 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 15054} GAH3001 +GHO                =       GAK3000 +      GHO                                    : ARR( 0.157E-10,     0., 0.0);
+{ 15055} GAH3001 +GHO                =       G2A3001                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 15056} GAH3001+HV               =       G1A3001 +      GHO                                    :  0.100E+01*SUN;
+{ 15057} GAK3000 +GHO                =       G2A3006                                               : ARR( 0.102E-12,     0., 0.0);
+{ 15058} GAK3000 +GHO                =       G3K2000 +      GCO2                                   : ARR( 0.520E-12,     0., 0.0);
+{ 15059} GAK3000+HV               =       GCO2    +      GD02000                                :  0.100E+01*SUN;
+{ 15060} GPH3001                     =       G3H3001 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 15061} GPH3001 +GHO                =       GPK3000 +      GHO                                    : ARR( 0.206E-10,     0., 0.0);
+{ 15062} GPH3001 +GHO                =       G2P3001                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 15063} GPH3001+HV               =       G1P3001 +      GHO                                    :  0.100E+01*SUN;
+{ 15064} GPH3001+HV               =       G3H3001 +      GNO2                                   :  0.100E+01*SUN;
+{ 15065} GPK3000                     =       G3K3004 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 15066} GPK3000 +GHO                =       G2P3006                                               : ARR( 0.102E-12,     0., 0.0);
+{ 15067} GPK3000+HV               =       G3K2000 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 15068} GNN501A +GHO                =       GNK500c +      GNO2                                   : ARR( 0.602E-13,     0., 0.0);
+{ 15069} GNN501A +GHO                =       GNK500j +      GNO2                                   : ARR( 0.740E-13,     0., 0.0);
+{ 15070} GNN501A +GHO                =       GNN502W +      GHO2                                   : ARR( 0.829E-12,     0., 0.0);
+{ 15071} GNN501A +GHO                =       G1N503Y                                               : ARR( 0.217E-17,    85., 2.0);
+{ 15072} GNN501A+HV               =       G1N502s +      GNO2                                   :  0.100E+01*SUN;
+{ 15073} GNN501A+HV               =       G3N3001 +      GDO2000 +      GNO2                    :  0.100E+01*SUN;
+{ 15074} GNN501A+HV               =       G1N501W +      GNO2                                   :  0.100E+01*SUN;
+{ 15075} GHN501p +GHO                =       GNK500j +      GHO                                    : ARR( 0.253E-10,     0., 0.0);
+{ 15076} GHN501p +GHO                =       GHN504f +      GHO2                                   : ARR( 0.128E-10,     0., 0.0);
+{ 15077} GHN501p +GHO                =       G2N501S                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 15078} GHN501p+HV               =       G1H503L +      GNO2                                   :  0.100E+01*SUN;
+{ 15079} GHN501p+HV               =       G3N3001 +      GDO2000 +      GHO                     :  0.100E+01*SUN;
+{ 15080} GHN501p+HV               =       G1N501W +      GHO                                    :  0.100E+01*SUN;
+{ 15081} G1H503L                     =       GD02000 +      G3H3004                                : ARR( 0.200E+15,  2777., 0.0);
+{ 15082} G3H3004 +GHO2               =  0.800GGH3002 + 0.200GAH3002 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 15083} G3H3004 +GNO                =       GDO2000 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 15084} G3H3004 +GNO2               =       GPH3002                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 15085} G3H3004 +GNO3               =       GDO2000 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 15086} G3H3004 +MEPERO             =  0.685GDO2000 + 0.315GAH3002 + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15087} G3H3004 +PERO1              =  0.800GDO2000 + 0.200GAH3002 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15088} G3H3004 +PERO2              =  0.750GDO2000 + 0.250GAH3002 + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15089} G3H3004 +PERO3              =  0.800GDO2000 + 0.200GAH3002 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15090} G3H3004 +PERO5              =  0.650GDO2000 + 0.350GAH3002 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15091} G3H3004 +PERO6              =  0.650GDO2000 + 0.350GAH3002 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15092} G3H3004 +PERO9              =       GDO2000 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 15093} GNK500i +GHO                =       GNK500j +      GHO2                                   : ARR( 0.641E-11,     0., 0.0);
+{ 15094} GNK500i +GHO                =       GND5013 +      GHO2                                   : ARR( 0.130E-10,     0., 0.0);
+{ 15095} GNK500i+HV               =       G1K500r +      GNO2                                   :  0.100E+01*SUN;
+{ 15096} GNK500i+HV               =       G3N3001 +      GDO2000 +      GHO2                    :  0.100E+01*SUN;
+{ 15097} G1K500r                     =       GD02000 +      G3K3003                                : ARR( 0.200E+15,  2777., 0.0);
+{ 15098} GNK500j +GHO                =       GND500z +      GHO2                                   : ARR( 0.254E-11,     0., 0.0);
+{ 15099} GNK500j +GHO                =       G1N503c                                               : ARR( 0.217E-17,    85., 2.0);
+{ 15100} GNK500j+HV               =       G1K500h +      GNO2                                   :  0.100E+01*SUN;
+{ 15101} GNK500j+HV               =       G3N3001 +      G3K2001                                :  0.100E+01*SUN;
+{ 15102} GHD500F +GHO                =       GDK500D +      GHO                                    : ARR( 0.215E-10,     0., 0.0);
+{ 15103} GHD500F +GHO                =       G3H500M                                               : ARR( 0.694E-10,     0., 0.0);
+{ 15104} GHD500F +GNO3               =       G3H500M +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 15105} GHD500F+HV               =       G1D500a +      GHO                                    :  0.100E+01*SUN;
+{ 15106} GHD500F+HV               =       G3H3001 +      G2D2000                                :  0.100E+01*SUN;
+{ 15107} GHD500F+HV               =       G2H400T +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 15108} G3H500M +GHO2               =  0.800GGH500Q + 0.200GAH500S + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 15109} G3H500M +GNO                =       G2H400T +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 15110} G3H500M +GNO2               =       GPH500U                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 15111} G3H500M +GNO3               =       G2H400T +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 15112} G3H500M +MEPERO             =  0.685G2H400T + 0.315GAH500S + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 15113} G3H500M +PERO1              =  0.800G2H400T + 0.200GAH500S + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 15114} G3H500M +PERO2              =  0.750G2H400T + 0.250GAH500S + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 15115} G3H500M +PERO3              =  0.800G2H400T + 0.200GAH500S + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 15116} G3H500M +PERO5              =  0.650G2H400T + 0.350GAH500S + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 15117} G3H500M +PERO6              =  0.650G2H400T + 0.350GAH500S + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 15118} G3H500M +PERO9              =       G2H400T +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 15119} G2H400T +GNO                =       G1H400Y +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 15120} G2H400T +GNO                =       GHN400j                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 15121} G2H400T +GHO2               =       GHH400P                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 15122} G2H400T +GNO3               =       G1H400Y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 15123} G2H400T +MEPERO             =  0.480G1H400Y + 0.260GHK4007 + 0.260GHD400I                 : ARR( 0.164E-12,  -795., 0.0);
+{ 15124} G2H400T +PERO1              =  0.600G1H400Y + 0.200GHK4007 + 0.200GHD400I                 : ARR( 0.126E-12,  -850., 0.0);
+{ 15125} G2H400T +PERO2              =  0.560G1H400Y + 0.220GHK4007 + 0.220GHD400I                 : ARR( 0.471E-13, -1350., 0.0);
+{ 15126} G2H400T +PERO3              =  0.600G1H400Y + 0.200GHK4007 + 0.200GHD400I                 : ARR( 0.142E-12, -1200., 0.0);
+{ 15127} G2H400T +PERO5              =  0.600G1H400Y + 0.200GHK4007 + 0.200GHD400I                 : ARR( 0.533E-11,   500., 0.0);
+{ 15128} G2H400T +PERO6              =  0.460G1H400Y + 0.270GHK4007 + 0.270GHD400I                 : ARR( 0.488E-13, -1250., 0.0);
+{ 15129} G2H400T +PERO9              =  0.800G1H400Y + 0.200GHD400I                                : ARR( 0.100E-10,     0., 0.0);
+{ 15130} G1H400Y                     =       G3H3001 +      GCH2O                                  : ARR( 0.200E+15,  3603., 0.0);
+{ 15131} GHK500U +GHO                =       GKK500B +      GHO                                    : ARR( 0.253E-10,     0., 0.0);
+{ 15132} GHK500U +GHO                =       GHD500w +      GHO2                                   : ARR( 0.128E-10,     0., 0.0);
+{ 15133} GHK500U +GHO                =       G2K500O                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 15134} GHK500U+HV               =       G3K2000 +      G3H3004                                :  0.100E+01*SUN;
+{ 15135} GHK500U+HV               =       G1K500P +      GHO                                    :  0.100E+01*SUN;
+{ 15136} GKK500A +GHO                =       GKK500B +      GHO2                                   : ARR( 0.641E-11,     0., 0.0);
+{ 15137} GKK500A +GHO                =       GDK500R +      GHO2                                   : ARR( 0.130E-10,     0., 0.0);
+{ 15138} GKK500A+HV               =       G3K2000 +      G3K3003                                :  0.100E+01*SUN;
+{ 15139} GKK500B +GHO                =       GDK500W +      GHO2                                   : ARR( 0.255E-11,     0., 0.0);
+{ 15140} GKK500B +GHO                =       G1K500q                                               : ARR( 0.218E-17,    85., 2.0);
+{ 15141} GKK500B+HV               =       G3K2000 +      G3K2001 +      GCO                     :  0.100E+01*SUN;
+{ 15142} GKK500B+HV               =       G3K2000 +      G3K2001 +      GCO                     :  0.100E+01*SUN;
+{ 15143} GGN3002 +GHO                =       GGN3005 +      GHO2                                   : ARR( 0.843E-12,     0., 0.0);
+{ 15144} GGN3002 +GHO                =       G3N3004                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 15145} GGN3002+HV               =       G1G3002 +      GNO2                                   :  0.100E+01*SUN;
+{ 15146} GGN3002+HV               =       GDO2000 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 15147} GGH3002 +GHO                =       GGH3007 +      GHO2                                   : ARR( 0.404E-11,     0., 0.0);
+{ 15148} GGH3002 +GHO                =       GGK3001 +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 15149} GGH3002 +GHO                =       G2G3002                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 15150} GGH3002 +GHO                =       G3H3004                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 15151} GGH3002+HV               =       G1G3002 +      GHO                                    :  0.100E+01*SUN;
+{ 15152} GGH3002+HV               =       GDO2000 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 15153} GGO3002 +GHO                =       GGD3001 +      GHO2                                   : ARR( 0.410E-11,     0., 0.0);
+{ 15154} GGO3002 +GHO                =       GGK3001 +      GHO2                                   : ARR( 0.641E-11,     0., 0.0);
+{ 15155} GGO3002 +GHO                =       G3K3003                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 15156} GGO3002+HV               =       GDO2000 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 15157} GGK3001 +GHO                =       GGD3002 +      GHO2                                   : ARR( 0.251E-11,     0., 0.0);
+{ 15158} GGK3001 +GHO                =       G3K3005                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 15159} GGK3001+HV               =       GAO2000 +      GCO2                                   :  0.100E+01*SUN;
+{ 15160} G3K3005 +GHO2               =  0.800GGK3001 + 0.200GAK3001 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 15161} G3K3005 +GNO                =       G3K2001 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 15162} G3K3005 +GNO2               =       GPK3001                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 15163} G3K3005 +GNO3               =       G3K2001 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 15164} G3K3005 +MEPERO             =  0.685G3K2001 + 0.315GAK3001 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 15165} G3K3005 +PERO1              =  0.800G3K2001 + 0.200GAK3001 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 15166} G3K3005 +PERO2              =  0.750G3K2001 + 0.250GAK3001 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 15167} G3K3005 +PERO3              =  0.800G3K2001 + 0.200GAK3001 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 15168} G3K3005 +PERO5              =  0.650G3K2001 + 0.350GAK3001 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 15169} G3K3005 +PERO6              =  0.650G3K2001 + 0.350GAK3001 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 15170} G3K3005 +PERO9              =       G3K2001 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 15171} GAN3002 +GHO                =       GAN3006 +      GHO2                                   : ARR( 0.833E-12,     0., 0.0);
+{ 15172} GAN3002 +GHO                =       G1A3004                                               : ARR( 0.218E-17,    85., 2.0);
+{ 15173} GAN3002 +GHO                =       GDO2000 +      GNO2    +      GCO2                    : ARR( 0.539E-12,     0., 0.0);
+{ 15174} GAN3002+HV               =       G1A3002 +      GNO2                                   :  0.100E+01*SUN;
+{ 15175} GAH3002 +GHO                =       GAH3007 +      GHO2                                   : ARR( 0.412E-11,     0., 0.0);
+{ 15176} GAH3002 +GHO                =       GAK3001 +      GHO                                    : ARR( 0.191E-10,     0., 0.0);
+{ 15177} GAH3002 +GHO                =       G2A3002                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 15178} GAH3002+HV               =       G1A3002 +      GHO                                    :  0.100E+01*SUN;
+{ 15179} GAO3002 +GHO                =       GAD3001 +      GHO2                                   : ARR( 0.414E-11,     0., 0.0);
+{ 15180} GAO3002 +GHO                =       GAK3001 +      GHO2                                   : ARR( 0.479E-11,     0., 0.0);
+{ 15181} GAO3002 +GHO                =       GDO2000 +      GHO2    +      GCO2                    : ARR( 0.536E-12,     0., 0.0);
+{ 15182} GAK3001 +GHO                =       GAD3002 +      GHO2                                   : ARR( 0.257E-11,     0., 0.0);
+{ 15183} GAK3001 +GHO                =       G3K2001 +      GCO2                                   : ARR( 0.545E-12,     0., 0.0);
+{ 15184} GAK3001+HV               =       GDO2000 +      GCO2                                   :  0.100E+01*SUN;
+{ 15185} GPN3002                     =       G3N3004 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 15186} GPN3002 +GHO                =       GPN3006 +      GHO2                                   : ARR( 0.804E-12,     0., 0.0);
+{ 15187} GPN3002 +GHO                =       GPK3001 +      GNO2                                   : ARR( 0.718E-13,     0., 0.0);
+{ 15188} GPN3002 +GHO                =       G1P3004                                               : ARR( 0.210E-17,    85., 2.0);
+{ 15189} GPN3002+HV               =       G1P3002 +      GNO2                                   :  0.100E+01*SUN;
+{ 15190} GPN3002+HV               =       G3N3004 +      GNO2                                   :  0.100E+01*SUN;
+{ 15191} GPH3002                     =       G3H3004 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 15192} GPH3002 +GHO                =       GPH3007 +      GHO2                                   : ARR( 0.404E-11,     0., 0.0);
+{ 15193} GPH3002 +GHO                =       GPK3001 +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 15194} GPH3002 +GHO                =       G2P3002                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 15195} GPH3002+HV               =       G1P3002 +      GHO                                    :  0.100E+01*SUN;
+{ 15196} GPH3002+HV               =       G3H3004 +      GNO2                                   :  0.100E+01*SUN;
+{ 15197} GPO3002                     =       G3K3003 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 15198} GPO3002 +GHO                =       GPD3001 +      GHO2                                   : ARR( 0.413E-11,     0., 0.0);
+{ 15199} GPO3002 +GHO                =       GPK3001 +      GHO2                                   : ARR( 0.645E-11,     0., 0.0);
+{ 15200} GPO3002+HV               =       G3K3003 +      GNO2                                   :  0.100E+01*SUN;
+{ 15201} GPK3001                     =       G3K3005 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 15202} GPK3001 +GHO                =       GPD3002 +      GHO2                                   : ARR( 0.245E-11,     0., 0.0);
+{ 15203} GPK3001 +GHO                =       G1P3006                                               : ARR( 0.210E-17,    85., 2.0);
+{ 15204} GPK3001+HV               =       G3K2001 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 15205} GHN501q +GHO                =       GND500K +      GHO                                    : ARR( 0.257E-10,     0., 0.0);
+{ 15206} GHN501q +GHO                =       G3H500N                                               : ARR( 0.212E-10,     0., 0.0);
+{ 15207} GHN501q +GHO                =       G2N503e                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 15208} GHN501q +GNO3               =       G3H500N +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 15209} GHN501q+HV               =       G1H503M +      GNO2                                   :  0.100E+01*SUN;
+{ 15210} GHN501q+HV               =       G1N503U +      GHO                                    :  0.100E+01*SUN;
+{ 15211} GHN501q+HV               =       GND4000 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 15212} G3H500N +GHO2               =  0.800GGH500U + 0.200GAH500X + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 15213} G3H500N +GNO                =       GND4000 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 15214} G3H500N +GNO2               =       GPH500Z                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 15215} G3H500N +GNO3               =       GND4000 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 15216} G3H500N +MEPERO             =  0.685GND4000 + 0.315GAH500X + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15217} G3H500N +PERO1              =  0.800GND4000 + 0.200GAH500X + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15218} G3H500N +PERO2              =  0.750GND4000 + 0.250GAH500X + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15219} G3H500N +PERO3              =  0.800GND4000 + 0.200GAH500X + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15220} G3H500N +PERO5              =  0.650GND4000 + 0.350GAH500X + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15221} G3H500N +PERO6              =  0.650GND4000 + 0.350GAH500X + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15222} G3H500N +PERO9              =       GND4000 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 15223} G2N503e +GNO                =       G1N503U +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 15224} G2N503e +GNO                =       GNN500s                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 15225} G2N503e +GHO2               =       GHN501q                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 15226} G2N503e +GNO3               =       G1N503U +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 15227} G2N503e +MEPERO             =  0.340G1N503U + 0.330GND500S + 0.330GND500K                 : ARR( 0.565E-13,  -845., 0.0);
+{ 15228} G2N503e +PERO1              =  0.460G1N503U + 0.270GND500S + 0.270GND500K                 : ARR( 0.434E-13,  -900., 0.0);
+{ 15229} G2N503e +PERO2              =  0.400G1N503U + 0.300GND500S + 0.300GND500K                 : ARR( 0.162E-13, -1400., 0.0);
+{ 15230} G2N503e +PERO3              =  0.460G1N503U + 0.270GND500S + 0.270GND500K                 : ARR( 0.488E-13, -1250., 0.0);
+{ 15231} G2N503e +PERO5              =  0.460G1N503U + 0.270GND500S + 0.270GND500K                 : ARR( 0.183E-11,   450., 0.0);
+{ 15232} G2N503e +PERO6              =  0.300G1N503U + 0.350GND500S + 0.350GND500K                 : ARR( 0.168E-13, -1300., 0.0);
+{ 15233} G2N503e +PERO9              =  0.650G1N503U + 0.350GND500K                                : ARR( 0.100E-10,     0., 0.0);
+{ 15234} G1H503M                     =       G3H5006                                               : ARR( 0.800E+11,  4559., 0.0);
+{ 15235} G1H503M                     =       GD02000 +      G2H300A                                : ARR( 0.200E+15,  6864., 0.0);
+{ 15236} G2H300A +GNO                =       G1H300B +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{ 15237} G2H300A +GNO                =       GHN3007                                               : ARR( 0.622E-13,  -360., 0.0);
+{ 15238} G2H300A +GHO2               =       GHH3005                                               : ARR( 0.179E-12, -1250., 0.0);
+{ 15239} G2H300A +GNO3               =       G1H300B +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 15240} G2H300A +MEPERO             =  0.480G1H300B + 0.260GHD3003 + 0.260GHD3004                 : ARR( 0.164E-12,  -795., 0.0);
+{ 15241} G2H300A +PERO1              =  0.600G1H300B + 0.200GHD3003 + 0.200GHD3004                 : ARR( 0.126E-12,  -850., 0.0);
+{ 15242} G2H300A +PERO2              =  0.560G1H300B + 0.220GHD3003 + 0.220GHD3004                 : ARR( 0.471E-13, -1350., 0.0);
+{ 15243} G2H300A +PERO3              =  0.600G1H300B + 0.200GHD3003 + 0.200GHD3004                 : ARR( 0.142E-12, -1200., 0.0);
+{ 15244} G2H300A +PERO5              =  0.600G1H300B + 0.200GHD3003 + 0.200GHD3004                 : ARR( 0.533E-11,   500., 0.0);
+{ 15245} G2H300A +PERO6              =  0.460G1H300B + 0.270GHD3003 + 0.270GHD3004                 : ARR( 0.488E-13, -1250., 0.0);
+{ 15246} G2H300A +PERO9              =  0.800G1H300B + 0.200GHD3004                                : ARR( 0.100E-10,     0., 0.0);
+{ 15247} GND500S +GHO                =       GND500K +      GHO2                                   : ARR( 0.655E-11,     0., 0.0);
+{ 15248} GND500S +GHO                =       G3N500X                                               : ARR( 0.217E-10,     0., 0.0);
+{ 15249} GND500S +GNO3               =       G3N500X +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 15250} GND500S+HV               =       G1D500e +      GNO2                                   :  0.100E+01*SUN;
+{ 15251} GND500S+HV               =       GND4000 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 15252} G3N500X +GHO2               =  0.800GGN500Z + 0.200GAN500h + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 15253} G3N500X +GNO                =       GND4000 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 15254} G3N500X +GNO2               =       GPN500j                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 15255} G3N500X +GNO3               =       GND4000 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 15256} G3N500X +MEPERO             =  0.685GND4000 + 0.315GAN500h + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15257} G3N500X +PERO1              =  0.800GND4000 + 0.200GAN500h + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15258} G3N500X +PERO2              =  0.750GND4000 + 0.250GAN500h + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15259} G3N500X +PERO3              =  0.800GND4000 + 0.200GAN500h + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15260} G3N500X +PERO5              =  0.650GND4000 + 0.350GAN500h + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15261} G3N500X +PERO6              =  0.650GND4000 + 0.350GAN500h + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15262} G3N500X +PERO9              =       GND4000 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 15263} G1D500e                     =       G3K5005                                               : ARR( 0.800E+11,  4559., 0.0);
+{ 15264} G1D500e                     =       GD02000 +      G2D3003                                : ARR( 0.200E+15,  6864., 0.0);
+{ 15265} GHN501r +GHO                =       GNK500j +      GHO                                    : ARR( 0.524E-11,     0., 0.0);
+{ 15266} GHN501r +GHO                =       GHN504g +      GHO2                                   : ARR( 0.256E-11,     0., 0.0);
+{ 15267} GHN501r +GHO                =       G2N501T                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 15268} GHN501r+HV               =       G1H502i +      GNO2                                   :  0.100E+01*SUN;
+{ 15269} GHN501r+HV               =       G1N501X +      GHO                                    :  0.100E+01*SUN;
+{ 15270} GHN501r+HV               =       G3H4008 +      GCH2O   +      GHO2                    :  0.100E+01*SUN;
+{ 15271} GNK500k +GHO                =       GKK500C +      GNO2                                   : ARR( 0.327E-12,     0., 0.0);
+{ 15272} GNK500k +GHO                =       GNK500j +      GHO2                                   : ARR( 0.135E-11,     0., 0.0);
+{ 15273} GNK500k +GHO                =       GND500y +      GHO2                                   : ARR( 0.264E-11,     0., 0.0);
+{ 15274} GNK500k+HV               =       G1K500f +      GNO2                                   :  0.100E+01*SUN;
+{ 15275} GNK500k+HV               =       G3N400A +      GCH2O   +      GHO2                    :  0.100E+01*SUN;
+{ 15276} GHH500R +GHO                =       GHD500I +      GHO                                    : ARR( 0.350E-10,     0., 0.0);
+{ 15277} GHH500R +GHO                =       GHD500F +      GHO                                    : ARR( 0.136E-09,     0., 0.0);
+{ 15278} GHH500R +GHO                =       G3H500O                                               : ARR( 0.217E-10,     0., 0.0);
+{ 15279} GHH500R +GNO3               =       G3H500O +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 15280} GHH500R+HV               =       G1H503N +      GHO                                    :  0.100E+01*SUN;
+{ 15281} GHH500R+HV               =       G1H500e +      GHO                                    :  0.100E+01*SUN;
+{ 15282} GHH500R+HV               =       G2H400U +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 15283} GHH500R+HV               =       GDK3000 +      GD02000 + 2.000GHO                     :  0.100E+01*SUN;
+{ 15284} G3H500O +GHO2               =  0.800GGH500g + 0.200GAH500l + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 15285} G3H500O +GNO                =       G2H400U +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 15286} G3H500O +GNO2               =       GPH500n                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 15287} G3H500O +GNO3               =       G2H400U +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 15288} G3H500O +MEPERO             =  0.685G2H400U + 0.315GAH500l + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 15289} G3H500O +PERO1              =  0.800G2H400U + 0.200GAH500l + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 15290} G3H500O +PERO2              =  0.750G2H400U + 0.250GAH500l + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 15291} G3H500O +PERO3              =  0.800G2H400U + 0.200GAH500l + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 15292} G3H500O +PERO5              =  0.650G2H400U + 0.350GAH500l + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 15293} G3H500O +PERO6              =  0.650G2H400U + 0.350GAH500l + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 15294} G3H500O +PERO9              =       G2H400U +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 15295} G1H503N                     =       GD02000 +      GDD3000 +      GHO                     : ARR( 0.200E+15,  4573., 0.0);
+{ 15296} G2H400U +GNO                =       G1H400Z +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 15297} G2H400U +GNO                =       GHH400L                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 15298} G2H400U +GHO2               =       GHH400Q                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 15299} G2H400U +GNO3               =       G1H400Z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 15300} G2H400U +MEPERO             =  0.480G1H400Z + 0.260GHH400R + 0.260GHH400M                 : ARR( 0.164E-12,  -795., 0.0);
+{ 15301} G2H400U +PERO1              =  0.600G1H400Z + 0.200GHH400R + 0.200GHH400M                 : ARR( 0.126E-12,  -850., 0.0);
+{ 15302} G2H400U +PERO2              =  0.560G1H400Z + 0.220GHH400R + 0.220GHH400M                 : ARR( 0.471E-13, -1350., 0.0);
+{ 15303} G2H400U +PERO3              =  0.600G1H400Z + 0.200GHH400R + 0.200GHH400M                 : ARR( 0.142E-12, -1200., 0.0);
+{ 15304} G2H400U +PERO5              =  0.600G1H400Z + 0.200GHH400R + 0.200GHH400M                 : ARR( 0.533E-11,   500., 0.0);
+{ 15305} G2H400U +PERO6              =  0.460G1H400Z + 0.270GHH400R + 0.270GHH400M                 : ARR( 0.488E-13, -1250., 0.0);
+{ 15306} G2H400U +PERO9              =  0.800G1H400Z + 0.200GHH400M                                : ARR( 0.100E-10,     0., 0.0);
+{ 15307} G1H400Z                     =       G2H400W                                               : ARR( 0.240E+12,  4177., 0.0);
+{ 15308} G1H400Z                     =       GHD3002 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{ 15309} G2H400W +GNO                =       G1H400a +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 15310} G2H400W +GNO                =       GHH400S                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 15311} G2H400W +GHO2               =       GHH400T                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 15312} G2H400W +GNO3               =       G1H400a +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 15313} G2H400W +MEPERO             =  0.480G1H400a + 0.260GHH400U + 0.260GHH4009                 : ARR( 0.164E-12,  -795., 0.0);
+{ 15314} G2H400W +PERO1              =  0.600G1H400a + 0.200GHH400U + 0.200GHH4009                 : ARR( 0.126E-12,  -850., 0.0);
+{ 15315} G2H400W +PERO2              =  0.560G1H400a + 0.220GHH400U + 0.220GHH4009                 : ARR( 0.471E-13, -1350., 0.0);
+{ 15316} G2H400W +PERO3              =  0.600G1H400a + 0.200GHH400U + 0.200GHH4009                 : ARR( 0.142E-12, -1200., 0.0);
+{ 15317} G2H400W +PERO5              =  0.600G1H400a + 0.200GHH400U + 0.200GHH4009                 : ARR( 0.533E-11,   500., 0.0);
+{ 15318} G2H400W +PERO6              =  0.460G1H400a + 0.270GHH400U + 0.270GHH4009                 : ARR( 0.488E-13, -1250., 0.0);
+{ 15319} G2H400W +PERO9              =  0.800G1H400a + 0.200GHH4009                                : ARR( 0.100E-10,     0., 0.0);
+{ 15320} G1H400a                     =       GHH4009 +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{ 15321} G1H400a                     =       GHD3003 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{ 15322} GHD500G +GHO                =       GDK500H +      GHO                                    : ARR( 0.353E-10,     0., 0.0);
+{ 15323} GHD500G +GHO                =       GHD500F +      GHO2                                   : ARR( 0.345E-10,     0., 0.0);
+{ 15324} GHD500G +GHO                =       G3H500P                                               : ARR( 0.219E-10,     0., 0.0);
+{ 15325} GHD500G +GNO3               =       G3H500P +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 15326} GHD500G+HV               =       G1D500f +      GHO                                    :  0.100E+01*SUN;
+{ 15327} GHD500G+HV               =       G2H400X +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 15328} GHD500G+HV               =       GDK3000 +      GD02000 +      GHO2    +      GHO      :  0.100E+01*SUN;
+{ 15329} G3H500P +GHO2               =  0.800GGH500M + 0.200GAH500Q + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 15330} G3H500P +GNO                =       G2H400X +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 15331} G3H500P +GNO2               =       GPH500Q                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 15332} G3H500P +GNO3               =       G2H400X +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 15333} G3H500P +MEPERO             =  0.685G2H400X + 0.315GAH500Q + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 15334} G3H500P +PERO1              =  0.800G2H400X + 0.200GAH500Q + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 15335} G3H500P +PERO2              =  0.750G2H400X + 0.250GAH500Q + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 15336} G3H500P +PERO3              =  0.800G2H400X + 0.200GAH500Q + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 15337} G3H500P +PERO5              =  0.650G2H400X + 0.350GAH500Q + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 15338} G3H500P +PERO6              =  0.650G2H400X + 0.350GAH500Q + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 15339} G3H500P +PERO9              =       G2H400X +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 15340} G1D500f                     =       GD02000 +      GDD3000 +      GHO2                    : ARR( 0.200E+15,  3365., 0.0);
+{ 15341} G2H400X +GNO                =       G1H400b +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 15342} G2H400X +GNO                =       GHN400i                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 15343} G2H400X +GHO2               =       GHH400W                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 15344} G2H400X +GNO3               =       G1H400b +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 15345} G2H400X +MEPERO             =  0.480G1H400b + 0.260GHO400C + 0.260GHD400H                 : ARR( 0.164E-12,  -795., 0.0);
+{ 15346} G2H400X +PERO1              =  0.600G1H400b + 0.200GHO400C + 0.200GHD400H                 : ARR( 0.126E-12,  -850., 0.0);
+{ 15347} G2H400X +PERO2              =  0.560G1H400b + 0.220GHO400C + 0.220GHD400H                 : ARR( 0.471E-13, -1350., 0.0);
+{ 15348} G2H400X +PERO3              =  0.600G1H400b + 0.200GHO400C + 0.200GHD400H                 : ARR( 0.142E-12, -1200., 0.0);
+{ 15349} G2H400X +PERO5              =  0.600G1H400b + 0.200GHO400C + 0.200GHD400H                 : ARR( 0.533E-11,   500., 0.0);
+{ 15350} G2H400X +PERO6              =  0.460G1H400b + 0.270GHO400C + 0.270GHD400H                 : ARR( 0.488E-13, -1250., 0.0);
+{ 15351} G2H400X +PERO9              =  0.800G1H400b + 0.200GHD400H                                : ARR( 0.100E-10,     0., 0.0);
+{ 15352} G1H400b                     =       GHD3002 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 15353} GHN400D +GHO                =       GHN4001 +      GHO2                                   : ARR( 0.406E-11,     0., 0.0);
+{ 15354} GHN400D +GHO                =       G2H400Y                                               : ARR( 0.143E-11,     0., 0.0);
+{ 15355} GHN400D +GHO                =       GNK4004 +      GHO                                    : ARR( 0.833E-11,     0., 0.0);
+{ 15356} GHN400D +GHO                =       G2N400e                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 15357} GHN400D+HV               =       G1N400Z +      GHO                                    :  0.100E+01*SUN;
+{ 15358} GHN400D+HV               =       G1H4008 +      GNO2                                   :  0.100E+01*SUN;
+{ 15359} G2H400Y +GNO                =       G1H400c +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 15360} G2H400Y +GNO                =       GHN400s                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 15361} G2H400Y +GHO2               =       GHH400S                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 15362} G2H400Y +GNO3               =       G1H400c +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 15363} G2H400Y +MEPERO             =  0.340G1H400c + 0.330GHN400b + 0.330GHN400l                 : ARR( 0.565E-13,  -845., 0.0);
+{ 15364} G2H400Y +PERO1              =  0.460G1H400c + 0.270GHN400b + 0.270GHN400l                 : ARR( 0.434E-13,  -900., 0.0);
+{ 15365} G2H400Y +PERO2              =  0.400G1H400c + 0.300GHN400b + 0.300GHN400l                 : ARR( 0.162E-13, -1400., 0.0);
+{ 15366} G2H400Y +PERO3              =  0.460G1H400c + 0.270GHN400b + 0.270GHN400l                 : ARR( 0.488E-13, -1250., 0.0);
+{ 15367} G2H400Y +PERO5              =  0.460G1H400c + 0.270GHN400b + 0.270GHN400l                 : ARR( 0.183E-11,   450., 0.0);
+{ 15368} G2H400Y +PERO6              =  0.300G1H400c + 0.350GHN400b + 0.350GHN400l                 : ARR( 0.168E-13, -1300., 0.0);
+{ 15369} G2H400Y +PERO9              =  0.650G1H400c + 0.350GHN400l                                : ARR( 0.100E-10,     0., 0.0);
+{ 15370} G2N400e +GNO                =       G1N400Z +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 15371} G2N400e +GNO                =       GNN4006                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 15372} G2N400e +GHO2               =       GHN400D                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 15373} G2N400e +GNO3               =       G1N400Z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 15374} G2N400e +MEPERO             =  0.340G1N400Z + 0.330GNO4002 + 0.330GNK4004                 : ARR( 0.565E-13,  -845., 0.0);
+{ 15375} G2N400e +PERO1              =  0.460G1N400Z + 0.270GNO4002 + 0.270GNK4004                 : ARR( 0.434E-13,  -900., 0.0);
+{ 15376} G2N400e +PERO2              =  0.400G1N400Z + 0.300GNO4002 + 0.300GNK4004                 : ARR( 0.162E-13, -1400., 0.0);
+{ 15377} G2N400e +PERO3              =  0.460G1N400Z + 0.270GNO4002 + 0.270GNK4004                 : ARR( 0.488E-13, -1250., 0.0);
+{ 15378} G2N400e +PERO5              =  0.460G1N400Z + 0.270GNO4002 + 0.270GNK4004                 : ARR( 0.183E-11,   450., 0.0);
+{ 15379} G2N400e +PERO6              =  0.300G1N400Z + 0.350GNO4002 + 0.350GNK4004                 : ARR( 0.168E-13, -1300., 0.0);
+{ 15380} G2N400e +PERO9              =  0.650G1N400Z + 0.350GNK4004                                : ARR( 0.100E-10,     0., 0.0);
+{ 15381} G1H400c                     =       GCH2O   +      GHN3007 +      GHO2                    : ARR( 0.200E+15,  5296., 0.0);
+{ 15382} G1H400c                     =       GDO2000 +      GND2000 +      GHO                     : ARR( 0.200E+15,  4843., 0.0);
+{ 15383} GNO500X +GHO                =       GNK500b +      GHO2                                   : ARR( 0.890E-11,     0., 0.0);
+{ 15384} GNO500X +GHO                =       GNK500v +      GHO2                                   : ARR( 0.219E-11,     0., 0.0);
+{ 15385} GNO500X +GHO                =       GND5019 +      GHO2                                   : ARR( 0.855E-12,     0., 0.0);
+{ 15386} GNO500X+HV               =       G1O500Q +      GNO2                                   :  0.100E+01*SUN;
+{ 15387} GHO500P +GHO                =       GHK500Z +      GHO2                                   : ARR( 0.845E-11,     0., 0.0);
+{ 15388} GHO500P +GHO                =       GHK500q +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 15389} GHO500P +GHO                =       GKO500J +      GHO                                    : ARR( 0.416E-10,     0., 0.0);
+{ 15390} GHO500P +GHO                =       GHD500U +      GHO2                                   : ARR( 0.406E-11,     0., 0.0);
+{ 15391} GHO500P +GHO                =       G2O500P                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 15392} GHO500P+HV               =       G1O500Q +      GHO                                    :  0.100E+01*SUN;
+{ 15393} GKO500J +GHO                =       GKK500C +      GHO2                                   : ARR( 0.270E-10,     0., 0.0);
+{ 15394} GKO500J +GHO                =       GKK500D +      GHO2                                   : ARR( 0.639E-11,     0., 0.0);
+{ 15395} GKO500J +GHO                =       GDK500T +      GHO2                                   : ARR( 0.249E-11,     0., 0.0);
+{ 15396} GKO500J+HV               =       G3K4008 +      GCH2O   +      GHO2                    :  0.100E+01*SUN;
+{ 15397} GNN501B +GHO                =       GNN502H +      GHO2                                   : ARR( 0.438E-11,     0., 0.0);
+{ 15398} GNN501B +GHO                =       GNN5024 +      GHO2                                   : ARR( 0.225E-11,     0., 0.0);
+{ 15399} GNN501B +GHO                =       GNN502E +      GHO2                                   : ARR( 0.449E-12,     0., 0.0);
+{ 15400} GNN501B+HV               =       G1N501Y +      GNO2                                   :  0.100E+01*SUN;
+{ 15401} GNN501B+HV               =       G1N503t +      GNO2                                   :  0.100E+01*SUN;
+{ 15402} GHN501s +GHO                =       GHN503v +      GHO2                                   : ARR( 0.419E-11,     0., 0.0);
+{ 15403} GHN501s +GHO                =       GHN502t +      GHO2                                   : ARR( 0.107E-10,     0., 0.0);
+{ 15404} GHN501s +GHO                =       GNK500l +      GHO                                    : ARR( 0.430E-10,     0., 0.0);
+{ 15405} GHN501s +GHO                =       G2N501U                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 15406} GHN501s+HV               =       G1N501Y +      GHO                                    :  0.100E+01*SUN;
+{ 15407} GHN501s+HV               =       G1H503O +      GNO2                                   :  0.100E+01*SUN;
+{ 15408} G1H503O                     =       GHK500f +      GHO2                                   : ARR( 0.800E+11,  2025., 0.0);
+{ 15409} G1H503O                     =       GHD400A +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 15410} GNO500Y +GHO                =       GND500p +      GHO2                                   : ARR( 0.411E-11,     0., 0.0);
+{ 15411} GNO500Y +GHO                =       GNK500t +      GHO2                                   : ARR( 0.105E-10,     0., 0.0);
+{ 15412} GNO500Y +GHO                =       GNK500l +      GHO2                                   : ARR( 0.105E-10,     0., 0.0);
+{ 15413} GNO500Y +GHO                =       GNK5011 +      GHO2                                   : ARR( 0.211E-11,     0., 0.0);
+{ 15414} GNO500Y+HV               =       G1O500b +      GNO2                                   :  0.100E+01*SUN;
+{ 15415} G1O500b                     =       GKO500L +      GHO2                                   : ARR( 0.800E+11,  2025., 0.0);
+{ 15416} G1O500b                     =       GDO4006 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 15417} GNK500l +GHO                =       GND500q +      GHO2                                   : ARR( 0.131E-10,     0., 0.0);
+{ 15418} GNK500l +GHO                =       GNK500u +      GHO2                                   : ARR( 0.646E-11,     0., 0.0);
+{ 15419} GNK500l +GHO                =       GNK5012 +      GHO2                                   : ARR( 0.129E-11,     0., 0.0);
+{ 15420} GNK500l+HV               =       G3K3003 +      GND2000 +      GHO2                    :  0.100E+01*SUN;
+{ 15421} GNK500l+HV               =       G1K500s +      GNO2                                   :  0.100E+01*SUN;
+{ 15422} G1K500s                     =       GDK4007 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4576., 0.0);
+{ 15423} GHK500W +GHO                =       GHK500E +      GHO2                                   : ARR( 0.349E-10,     0., 0.0);
+{ 15424} GHK500W +GHO                =       GDK500F +      GHO                                    : ARR( 0.172E-10,     0., 0.0);
+{ 15425} GHK500W +GHO                =       G2K500i                                               : ARR( 0.203E-11,  -190., 0.0);
+{ 15426} GHK500W+HV               =       G3K2001 +      G2H3009                                :  0.100E+01*SUN;
+{ 15427} GHK500W+HV               =       GKO3000 +      GHD2000                                :  0.100E+01*SUN;
+{ 15428} GHK500W+HV               =       G1K500Y +      GHO                                    :  0.100E+01*SUN;
+{ 15429} G2K500i +GNO                =       G1K500Y +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 15430} G2K500i +GNO                =       GNK500J                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 15431} G2K500i +GHO2               =       GHK500W                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 15432} G2K500i +GNO3               =       G1K500Y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 15433} G2K500i +MEPERO             =  0.480G1K500Y + 0.260GKO500A + 0.260GDK500F                 : ARR( 0.164E-12,  -795., 0.0);
+{ 15434} G2K500i +PERO1              =  0.600G1K500Y + 0.200GKO500A + 0.200GDK500F                 : ARR( 0.126E-12,  -850., 0.0);
+{ 15435} G2K500i +PERO2              =  0.560G1K500Y + 0.220GKO500A + 0.220GDK500F                 : ARR( 0.471E-13, -1350., 0.0);
+{ 15436} G2K500i +PERO3              =  0.600G1K500Y + 0.200GKO500A + 0.200GDK500F                 : ARR( 0.142E-12, -1200., 0.0);
+{ 15437} G2K500i +PERO5              =  0.600G1K500Y + 0.200GKO500A + 0.200GDK500F                 : ARR( 0.533E-11,   500., 0.0);
+{ 15438} G2K500i +PERO6              =  0.460G1K500Y + 0.270GKO500A + 0.270GDK500F                 : ARR( 0.488E-13, -1250., 0.0);
+{ 15439} G2K500i +PERO9              =  0.800G1K500Y + 0.200GDK500F                                : ARR( 0.100E-10,     0., 0.0);
+{ 15440} GDK500F +GHO                =       GDD5007 +      GHO2                                   : ARR( 0.247E-11,     0., 0.0);
+{ 15441} GDK500F +GHO                =       G2D500T                                               : ARR( 0.275E-11,     0., 0.0);
+{ 15442} GDK500F +GHO                =       GDK500M +      GHO2                                   : ARR( 0.200E-10,     0., 0.0);
+{ 15443} GDK500F +GHO                =       G3K500L                                               : ARR( 0.209E-10,     0., 0.0);
+{ 15444} GDK500F +GNO3               =       G3K500L +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 15445} GDK500F+HV               =       G3K2001 +      G2D3003                                :  0.100E+01*SUN;
+{ 15446} GDK500F+HV               =       GDK4001 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 15447} G2D500T +GNO                =       G1D500g +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 15448} G2D500T +GNO                =       GND501A                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 15449} G2D500T +GHO2               =       GHD500x                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 15450} G2D500T +GNO3               =       G1D500g +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 15451} G2D500T +MEPERO             =  0.340G1D500g + 0.330GDK500X + 0.330GDK500Y                 : ARR( 0.565E-13,  -845., 0.0);
+{ 15452} G2D500T +PERO1              =  0.460G1D500g + 0.270GDK500X + 0.270GDK500Y                 : ARR( 0.434E-13,  -900., 0.0);
+{ 15453} G2D500T +PERO2              =  0.400G1D500g + 0.300GDK500X + 0.300GDK500Y                 : ARR( 0.162E-13, -1400., 0.0);
+{ 15454} G2D500T +PERO3              =  0.460G1D500g + 0.270GDK500X + 0.270GDK500Y                 : ARR( 0.488E-13, -1250., 0.0);
+{ 15455} G2D500T +PERO5              =  0.460G1D500g + 0.270GDK500X + 0.270GDK500Y                 : ARR( 0.183E-11,   450., 0.0);
+{ 15456} G2D500T +PERO6              =  0.300G1D500g + 0.350GDK500X + 0.350GDK500Y                 : ARR( 0.168E-13, -1300., 0.0);
+{ 15457} G2D500T +PERO9              =  0.650G1D500g + 0.350GDK500Y                                : ARR( 0.100E-10,     0., 0.0);
+{ 15458} G3K500L +GHO2               =  0.800GGK500L + 0.200GAK500K + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 15459} G3K500L +GNO                =       GDK4001 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 15460} G3K500L +GNO2               =       GPK500L                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 15461} G3K500L +GNO3               =       GDK4001 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 15462} G3K500L +MEPERO             =  0.685GDK4001 + 0.315GAK500K + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15463} G3K500L +PERO1              =  0.800GDK4001 + 0.200GAK500K + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15464} G3K500L +PERO2              =  0.750GDK4001 + 0.250GAK500K + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15465} G3K500L +PERO3              =  0.800GDK4001 + 0.200GAK500K + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15466} G3K500L +PERO5              =  0.650GDK4001 + 0.350GAK500K + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15467} G3K500L +PERO6              =  0.650GDK4001 + 0.350GAK500K + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15468} G3K500L +PERO9              =       GDK4001 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 15469} G1D500g                     =       G3K2001 +      GDD3001                                : ARR( 0.200E+15,  2179., 0.0);
+{ 15470} GND500T +GHO                =       GND500s +      GHO2                                   : ARR( 0.433E-11,     0., 0.0);
+{ 15471} GND500T +GHO                =       GND501A +      GHO2                                   : ARR( 0.222E-11,     0., 0.0);
+{ 15472} GND500T +GHO                =       G3N500Y                                               : ARR( 0.224E-10,     0., 0.0);
+{ 15473} GND500T +GNO3               =       G3N500Y +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 15474} GND500T+HV               =       G1D500B +      GNO2                                   :  0.100E+01*SUN;
+{ 15475} GND500T+HV               =       GND400A +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 15476} G3N500Y +GHO2               =  0.800GGN500i + 0.200GAN500p + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 15477} G3N500Y +GNO                =       GND400A +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 15478} G3N500Y +GNO2               =       GPN500s                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 15479} G3N500Y +GNO3               =       GND400A +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 15480} G3N500Y +MEPERO             =  0.685GND400A + 0.315GAN500p + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15481} G3N500Y +PERO1              =  0.800GND400A + 0.200GAN500p + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15482} G3N500Y +PERO2              =  0.750GND400A + 0.250GAN500p + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15483} G3N500Y +PERO3              =  0.800GND400A + 0.200GAN500p + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15484} G3N500Y +PERO5              =  0.650GND400A + 0.350GAN500p + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15485} G3N500Y +PERO6              =  0.650GND400A + 0.350GAN500p + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15486} G3N500Y +PERO9              =       GND400A +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 15487} GHD500H +GHO                =       GHD500x +      GHO2                                   : ARR( 0.112E-10,     0., 0.0);
+{ 15488} GHD500H +GHO                =       GDK500G +      GHO                                    : ARR( 0.142E-09,     0., 0.0);
+{ 15489} GHD500H +GHO                =       G3H500Q                                               : ARR( 0.226E-10,     0., 0.0);
+{ 15490} GHD500H +GNO3               =       G3H500Q +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 15491} GHD500H+HV               =       G1D500B +      GHO                                    :  0.100E+01*SUN;
+{ 15492} GHD500H+HV               =       GHD400A +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 15493} G3H500Q +GHO2               =  0.800GGH500h + 0.200GAH500m + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 15494} G3H500Q +GNO                =       GHD400A +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 15495} G3H500Q +GNO2               =       GPH500o                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 15496} G3H500Q +GNO3               =       GHD400A +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 15497} G3H500Q +MEPERO             =  0.685GHD400A + 0.315GAH500m + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15498} G3H500Q +PERO1              =  0.800GHD400A + 0.200GAH500m + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15499} G3H500Q +PERO2              =  0.750GHD400A + 0.250GAH500m + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15500} G3H500Q +PERO3              =  0.800GHD400A + 0.200GAH500m + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15501} G3H500Q +PERO5              =  0.650GHD400A + 0.350GAH500m + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15502} G3H500Q +PERO6              =  0.650GHD400A + 0.350GAH500m + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15503} G3H500Q +PERO9              =       GHD400A +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 15504} GDO500A +GHO                =       GDD5006 +      GHO2                                   : ARR( 0.405E-11,     0., 0.0);
+{ 15505} GDO500A +GHO                =       GDK500X +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 15506} GDO500A +GHO                =       GDK500G +      GHO2                                   : ARR( 0.329E-10,     0., 0.0);
+{ 15507} GDO500A +GHO                =       GDK500N +      GHO2                                   : ARR( 0.633E-11,     0., 0.0);
+{ 15508} GDO500A +GHO                =       G3K500M                                               : ARR( 0.209E-10,     0., 0.0);
+{ 15509} GDO500A +GNO3               =       G3K500M +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 15510} GDO500A+HV               =       GDO4006 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 15511} G3K500M +GHO2               =  0.800GGO500C + 0.200GAO500B + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 15512} G3K500M +GNO                =       GDO4006 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 15513} G3K500M +GNO2               =       GPO500C                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 15514} G3K500M +GNO3               =       GDO4006 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 15515} G3K500M +MEPERO             =  0.685GDO4006 + 0.315GAO500B + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15516} G3K500M +PERO1              =  0.800GDO4006 + 0.200GAO500B + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15517} G3K500M +PERO2              =  0.750GDO4006 + 0.250GAO500B + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15518} G3K500M +PERO3              =  0.800GDO4006 + 0.200GAO500B + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15519} G3K500M +PERO5              =  0.650GDO4006 + 0.350GAO500B + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15520} G3K500M +PERO6              =  0.650GDO4006 + 0.350GAO500B + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15521} G3K500M +PERO9              =       GDO4006 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 15522} GDK500G +GHO                =       GDD5008 +      GHO2                                   : ARR( 0.134E-10,     0., 0.0);
+{ 15523} GDK500G +GHO                =       GDK500Y +      GHO2                                   : ARR( 0.660E-11,     0., 0.0);
+{ 15524} GDK500G +GHO                =       G3K500N                                               : ARR( 0.692E-10,     0., 0.0);
+{ 15525} GDK500G +GNO3               =       G3K500N +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 15526} GDK500G+HV               =       G3K3003 +      GDD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 15527} GDK500G+HV               =       GDK4007 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 15528} G3K500N +GHO2               =  0.800GGK500M + 0.200GAK500L + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 15529} G3K500N +GNO                =       GDK4007 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 15530} G3K500N +GNO2               =       GPK500M                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 15531} G3K500N +GNO3               =       GDK4007 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 15532} G3K500N +MEPERO             =  0.685GDK4007 + 0.315GAK500L + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15533} G3K500N +PERO1              =  0.800GDK4007 + 0.200GAK500L + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15534} G3K500N +PERO2              =  0.750GDK4007 + 0.250GAK500L + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15535} G3K500N +PERO3              =  0.800GDK4007 + 0.200GAK500L + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15536} G3K500N +PERO5              =  0.650GDK4007 + 0.350GAK500L + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15537} G3K500N +PERO6              =  0.650GDK4007 + 0.350GAK500L + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15538} G3K500N +PERO9              =       GDK4007 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 15539} GGO5005 +GHO                =       GGD5002 +      GHO2                                   : ARR( 0.409E-11,     0., 0.0);
+{ 15540} GGO5005 +GHO                =       GGK500L +      GHO2                                   : ARR( 0.105E-10,     0., 0.0);
+{ 15541} GGO5005 +GHO                =       G2G500X                                               : ARR( 0.144E-11,     0., 0.0);
+{ 15542} GGO5005 +GHO                =       GGK5006 +      GHO2                                   : ARR( 0.639E-11,     0., 0.0);
+{ 15543} GGO5005 +GHO                =       G3K5006                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 15544} GGO5005+HV               =       GDO4002 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 15545} G2G500X +GNO                =       G1G500Y +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 15546} G2G500X +GNO                =       GGN500i                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 15547} G2G500X +GHO2               =       GGH500h                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 15548} G2G500X +GNO3               =       G1G500Y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 15549} G2G500X +MEPERO             =  0.340G1G500Y + 0.330GGO500C + 0.330GGK500M                 : ARR( 0.565E-13,  -845., 0.0);
+{ 15550} G2G500X +PERO1              =  0.460G1G500Y + 0.270GGO500C + 0.270GGK500M                 : ARR( 0.434E-13,  -900., 0.0);
+{ 15551} G2G500X +PERO2              =  0.400G1G500Y + 0.300GGO500C + 0.300GGK500M                 : ARR( 0.162E-13, -1400., 0.0);
+{ 15552} G2G500X +PERO3              =  0.460G1G500Y + 0.270GGO500C + 0.270GGK500M                 : ARR( 0.488E-13, -1250., 0.0);
+{ 15553} G2G500X +PERO5              =  0.460G1G500Y + 0.270GGO500C + 0.270GGK500M                 : ARR( 0.183E-11,   450., 0.0);
+{ 15554} G2G500X +PERO6              =  0.300G1G500Y + 0.350GGO500C + 0.350GGK500M                 : ARR( 0.168E-13, -1300., 0.0);
+{ 15555} G2G500X +PERO9              =  0.650G1G500Y + 0.350GGK500M                                : ARR( 0.100E-10,     0., 0.0);
+{ 15556} G1G500Y                     =       GDO2000 +      GGD3001 +      GHO2                    : ARR( 0.200E+15,  2745., 0.0);
+{ 15557} GAO5005 +GHO                =       GAD5003 +      GHO2                                   : ARR( 0.421E-11,     0., 0.0);
+{ 15558} GAO5005 +GHO                =       GAK500K +      GHO2                                   : ARR( 0.108E-10,     0., 0.0);
+{ 15559} GAO5005 +GHO                =       G2A500d                                               : ARR( 0.148E-11,     0., 0.0);
+{ 15560} GAO5005 +GHO                =       GAK5006 +      GHO2                                   : ARR( 0.486E-11,     0., 0.0);
+{ 15561} G2A500d +GNO                =       G1A500e +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 15562} G2A500d +GNO                =       GAN500p                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 15563} G2A500d +GHO2               =       GAH500m                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 15564} G2A500d +GNO3               =       G1A500e +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 15565} G2A500d +MEPERO             =  0.340G1A500e + 0.330GAO500B + 0.330GAK500L                 : ARR( 0.565E-13,  -845., 0.0);
+{ 15566} G2A500d +PERO1              =  0.460G1A500e + 0.270GAO500B + 0.270GAK500L                 : ARR( 0.434E-13,  -900., 0.0);
+{ 15567} G2A500d +PERO2              =  0.400G1A500e + 0.300GAO500B + 0.300GAK500L                 : ARR( 0.162E-13, -1400., 0.0);
+{ 15568} G2A500d +PERO3              =  0.460G1A500e + 0.270GAO500B + 0.270GAK500L                 : ARR( 0.488E-13, -1250., 0.0);
+{ 15569} G2A500d +PERO5              =  0.460G1A500e + 0.270GAO500B + 0.270GAK500L                 : ARR( 0.183E-11,   450., 0.0);
+{ 15570} G2A500d +PERO6              =  0.300G1A500e + 0.350GAO500B + 0.350GAK500L                 : ARR( 0.168E-13, -1300., 0.0);
+{ 15571} G2A500d +PERO9              =  0.650G1A500e + 0.350GAK500L                                : ARR( 0.100E-10,     0., 0.0);
+{ 15572} G1A500e                     =       GDO2000 +      GAD3001 +      GHO2                    : ARR( 0.200E+15,  2745., 0.0);
+{ 15573} GPO5005                     =       G3K5006 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 15574} GPO5005 +GHO                =       GPD5002 +      GHO2                                   : ARR( 0.410E-11,     0., 0.0);
+{ 15575} GPO5005 +GHO                =       GPK500L +      GHO2                                   : ARR( 0.105E-10,     0., 0.0);
+{ 15576} GPO5005 +GHO                =       G2P500g                                               : ARR( 0.144E-11,     0., 0.0);
+{ 15577} GPO5005 +GHO                =       GPK5006 +      GHO2                                   : ARR( 0.640E-11,     0., 0.0);
+{ 15578} GPO5005+HV               =       G3K5006 +      GNO2                                   :  0.100E+01*SUN;
+{ 15579} G2P500g +GNO                =       G1P500h +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 15580} G2P500g +GNO                =       GPN500s                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 15581} G2P500g +GHO2               =       GPH500o                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 15582} G2P500g +GNO3               =       G1P500h +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 15583} G2P500g +MEPERO             =  0.340G1P500h + 0.330GPO500C + 0.330GPK500M                 : ARR( 0.565E-13,  -845., 0.0);
+{ 15584} G2P500g +PERO1              =  0.460G1P500h + 0.270GPO500C + 0.270GPK500M                 : ARR( 0.434E-13,  -900., 0.0);
+{ 15585} G2P500g +PERO2              =  0.400G1P500h + 0.300GPO500C + 0.300GPK500M                 : ARR( 0.162E-13, -1400., 0.0);
+{ 15586} G2P500g +PERO3              =  0.460G1P500h + 0.270GPO500C + 0.270GPK500M                 : ARR( 0.488E-13, -1250., 0.0);
+{ 15587} G2P500g +PERO5              =  0.460G1P500h + 0.270GPO500C + 0.270GPK500M                 : ARR( 0.183E-11,   450., 0.0);
+{ 15588} G2P500g +PERO6              =  0.300G1P500h + 0.350GPO500C + 0.350GPK500M                 : ARR( 0.168E-13, -1300., 0.0);
+{ 15589} G2P500g +PERO9              =  0.650G1P500h + 0.350GPK500M                                : ARR( 0.100E-10,     0., 0.0);
+{ 15590} G1P500h                     =       GDO2000 +      GPD3001 +      GHO2                    : ARR( 0.200E+15,  2745., 0.0);
+{ 15591} GGO4004 +GHO                =       GGD4001 +      GHO2                                   : ARR( 0.428E-11,     0., 0.0);
+{ 15592} GGO4004 +GHO                =       GGK4003 +      GHO2                                   : ARR( 0.110E-10,     0., 0.0);
+{ 15593} GGO4004 +GHO                =       G3K4005                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 15594} GGO4004+HV               =       G2O3003 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 15595} GAO4004 +GHO                =       GAD4001 +      GHO2                                   : ARR( 0.442E-11,     0., 0.0);
+{ 15596} GAO4004 +GHO                =       GAK4003 +      GHO2                                   : ARR( 0.113E-10,     0., 0.0);
+{ 15597} GPO4004                     =       G3K4005 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 15598} GPO4004 +GHO                =       GPD4001 +      GHO2                                   : ARR( 0.410E-11,     0., 0.0);
+{ 15599} GPO4004 +GHO                =       GPK4003 +      GHO2                                   : ARR( 0.105E-10,     0., 0.0);
+{ 15600} GPO4004 +GHO                =       G2P400J                                               : ARR( 0.878E-12,     0., 0.0);
+{ 15601} GPO4004+HV               =       G3K4005 +      GNO2                                   :  0.100E+01*SUN;
+{ 15602} G2P400J +GNO                =       G1P400K +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 15603} G2P400J +GNO                =       GPN400O                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 15604} G2P400J +GHO2               =       GPH400K                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 15605} G2P400J +GNO3               =       G1P400K +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 15606} G2P400J +MEPERO             =  0.340G1P400K + 0.330GPO4006 + 0.330GPK4007                 : ARR( 0.565E-13,  -845., 0.0);
+{ 15607} G2P400J +PERO1              =  0.460G1P400K + 0.270GPO4006 + 0.270GPK4007                 : ARR( 0.434E-13,  -900., 0.0);
+{ 15608} G2P400J +PERO2              =  0.400G1P400K + 0.300GPO4006 + 0.300GPK4007                 : ARR( 0.162E-13, -1400., 0.0);
+{ 15609} G2P400J +PERO3              =  0.460G1P400K + 0.270GPO4006 + 0.270GPK4007                 : ARR( 0.488E-13, -1250., 0.0);
+{ 15610} G2P400J +PERO5              =  0.460G1P400K + 0.270GPO4006 + 0.270GPK4007                 : ARR( 0.183E-11,   450., 0.0);
+{ 15611} G2P400J +PERO6              =  0.300G1P400K + 0.350GPO4006 + 0.350GPK4007                 : ARR( 0.168E-13, -1300., 0.0);
+{ 15612} G2P400J +PERO9              =  0.650G1P400K + 0.350GPK4007                                : ARR( 0.100E-10,     0., 0.0);
+{ 15613} G1P400K                     =       GDO2000 +      GPD2000 +      GHO2                    : ARR( 0.200E+15,  5490., 0.0);
+{ 15614} G1P400K                     =       GDO3002 +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 15615} GHD500I +GHO                =       GDK500D +      GHO                                    : ARR( 0.848E-10,     0., 0.0);
+{ 15616} GHD500I +GHO                =       G3H500R                                               : ARR( 0.221E-10,     0., 0.0);
+{ 15617} GHD500I +GNO3               =       G3H500R +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 15618} GHD500I+HV               =       G3K2000 +      GDD3000 +      GHO                     :  0.100E+01*SUN;
+{ 15619} GHD500I+HV               =       G1D500C +      GHO                                    :  0.100E+01*SUN;
+{ 15620} GHD500I+HV               =       G2H400Z +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 15621} G3H500R +GHO2               =  0.800GGH500W + 0.200GAH500Y + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 15622} G3H500R +GNO                =       G2H400Z +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 15623} G3H500R +GNO2               =       GPH500a                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 15624} G3H500R +GNO3               =       G2H400Z +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 15625} G3H500R +MEPERO             =  0.685G2H400Z + 0.315GAH500Y + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 15626} G3H500R +PERO1              =  0.800G2H400Z + 0.200GAH500Y + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 15627} G3H500R +PERO2              =  0.750G2H400Z + 0.250GAH500Y + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 15628} G3H500R +PERO3              =  0.800G2H400Z + 0.200GAH500Y + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 15629} G3H500R +PERO5              =  0.650G2H400Z + 0.350GAH500Y + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 15630} G3H500R +PERO6              =  0.650G2H400Z + 0.350GAH500Y + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 15631} G3H500R +PERO9              =       G2H400Z +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 15632} G2H400Z +GNO                =       G1H400d +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 15633} G2H400Z +GNO                =       GHN400g                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 15634} G2H400Z +GHO2               =       GHH400X                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 15635} G2H400Z +GNO3               =       G1H400d +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 15636} G2H400Z +MEPERO             =  0.480G1H400d + 0.260GHK4008 + 0.260GHD4007                 : ARR( 0.164E-12,  -795., 0.0);
+{ 15637} G2H400Z +PERO1              =  0.600G1H400d + 0.200GHK4008 + 0.200GHD4007                 : ARR( 0.126E-12,  -850., 0.0);
+{ 15638} G2H400Z +PERO2              =  0.560G1H400d + 0.220GHK4008 + 0.220GHD4007                 : ARR( 0.471E-13, -1350., 0.0);
+{ 15639} G2H400Z +PERO3              =  0.600G1H400d + 0.200GHK4008 + 0.200GHD4007                 : ARR( 0.142E-12, -1200., 0.0);
+{ 15640} G2H400Z +PERO5              =  0.600G1H400d + 0.200GHK4008 + 0.200GHD4007                 : ARR( 0.533E-11,   500., 0.0);
+{ 15641} G2H400Z +PERO6              =  0.460G1H400d + 0.270GHK4008 + 0.270GHD4007                 : ARR( 0.488E-13, -1250., 0.0);
+{ 15642} G2H400Z +PERO9              =  0.800G1H400d + 0.200GHD4007                                : ARR( 0.100E-10,     0., 0.0);
+{ 15643} G1H400d +OXYGEN             =       GHD4007 +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 15644} G1H400d                     =       GDK3000 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5784., 0.0);
+{ 15645} GDK500H +GHO                =       GDK500D +      GHO2                                   : ARR( 0.200E-10,     0., 0.0);
+{ 15646} GDK500H +GHO                =       G2D500U                                               : ARR( 0.275E-11,     0., 0.0);
+{ 15647} GDK500H +GHO                =       G3K500O                                               : ARR( 0.209E-10,     0., 0.0);
+{ 15648} GDK500H +GNO3               =       G3K500O +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 15649} GDK500H+HV               =       G3K2000 +      GDD3000 +      GHO2                    :  0.100E+01*SUN;
+{ 15650} GDK500H+HV               =       G2K400A +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 15651} G2D500U +GNO                =       G1D500h +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 15652} G2D500U +GNO                =       GND5015                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 15653} G2D500U +GHO2               =       GHD500y                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 15654} G2D500U +GNO3               =       G1D500h +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 15655} G2D500U +MEPERO             =  0.340G1D500h + 0.330GDK500S + 0.330GDK500Z                 : ARR( 0.565E-13,  -845., 0.0);
+{ 15656} G2D500U +PERO1              =  0.460G1D500h + 0.270GDK500S + 0.270GDK500Z                 : ARR( 0.434E-13,  -900., 0.0);
+{ 15657} G2D500U +PERO2              =  0.400G1D500h + 0.300GDK500S + 0.300GDK500Z                 : ARR( 0.162E-13, -1400., 0.0);
+{ 15658} G2D500U +PERO3              =  0.460G1D500h + 0.270GDK500S + 0.270GDK500Z                 : ARR( 0.488E-13, -1250., 0.0);
+{ 15659} G2D500U +PERO5              =  0.460G1D500h + 0.270GDK500S + 0.270GDK500Z                 : ARR( 0.183E-11,   450., 0.0);
+{ 15660} G2D500U +PERO6              =  0.300G1D500h + 0.350GDK500S + 0.350GDK500Z                 : ARR( 0.168E-13, -1300., 0.0);
+{ 15661} G2D500U +PERO9              =  0.650G1D500h + 0.350GDK500Z                                : ARR( 0.100E-10,     0., 0.0);
+{ 15662} G3K500O +GHO2               =  0.800GGK5009 + 0.200GAK5009 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 15663} G3K500O +GNO                =       G2K400A +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 15664} G3K500O +GNO2               =       GPK5009                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 15665} G3K500O +GNO3               =       G2K400A +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 15666} G3K500O +MEPERO             =  0.685G2K400A + 0.315GAK5009 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 15667} G3K500O +PERO1              =  0.800G2K400A + 0.200GAK5009 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 15668} G3K500O +PERO2              =  0.750G2K400A + 0.250GAK5009 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 15669} G3K500O +PERO3              =  0.800G2K400A + 0.200GAK5009 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 15670} G3K500O +PERO5              =  0.650G2K400A + 0.350GAK5009 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 15671} G3K500O +PERO6              =  0.650G2K400A + 0.350GAK5009 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 15672} G3K500O +PERO9              =       G2K400A +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 15673} G2K400A +GNO                =       G1K400A +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 15674} G2K400A +GNO                =       GNK4009                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 15675} G2K400A +GHO2               =       GHK400B                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 15676} G2K400A +GNO3               =       G1K400A +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 15677} G2K400A +MEPERO             =  0.480G1K400A + 0.260GKO4005 + 0.260GDK4003                 : ARR( 0.164E-12,  -795., 0.0);
+{ 15678} G2K400A +PERO1              =  0.600G1K400A + 0.200GKO4005 + 0.200GDK4003                 : ARR( 0.126E-12,  -850., 0.0);
+{ 15679} G2K400A +PERO2              =  0.560G1K400A + 0.220GKO4005 + 0.220GDK4003                 : ARR( 0.471E-13, -1350., 0.0);
+{ 15680} G2K400A +PERO3              =  0.600G1K400A + 0.200GKO4005 + 0.200GDK4003                 : ARR( 0.142E-12, -1200., 0.0);
+{ 15681} G2K400A +PERO5              =  0.600G1K400A + 0.200GKO4005 + 0.200GDK4003                 : ARR( 0.533E-11,   500., 0.0);
+{ 15682} G2K400A +PERO6              =  0.460G1K400A + 0.270GKO4005 + 0.270GDK4003                 : ARR( 0.488E-13, -1250., 0.0);
+{ 15683} G2K400A +PERO9              =  0.800G1K400A + 0.200GDK4003                                : ARR( 0.100E-10,     0., 0.0);
+{ 15684} G1D500h                     =       GDK3000 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  5180., 0.0);
+{ 15685} G1D500h                     =       GDK4003 +      GCO     +      GHO2                    : ARR( 0.200E+15,  4861., 0.0);
+{ 15686} G1K400A                     =       GDK3000 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4576., 0.0);
+{ 15687} GHD500J +GHO                =       GDK500C +      GHO                                    : ARR( 0.848E-10,     0., 0.0);
+{ 15688} GHD500J +GHO                =       G3H500S                                               : ARR( 0.221E-10,     0., 0.0);
+{ 15689} GHD500J +GNO3               =       G3H500S +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 15690} GHD500J+HV               =       G3K2000 +      G2H300A                                :  0.100E+01*SUN;
+{ 15691} GHD500J+HV               =       G1D500D +      GHO                                    :  0.100E+01*SUN;
+{ 15692} GHD500J+HV               =       GDK4000 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 15693} G3H500S +GHO2               =  0.800GGH500X + 0.200GAH500Z + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 15694} G3H500S +GNO                =       GDK4000 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 15695} G3H500S +GNO2               =       GPH500b                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 15696} G3H500S +GNO3               =       GDK4000 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 15697} G3H500S +MEPERO             =  0.685GDK4000 + 0.315GAH500Z + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15698} G3H500S +PERO1              =  0.800GDK4000 + 0.200GAH500Z + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15699} G3H500S +PERO2              =  0.750GDK4000 + 0.250GAH500Z + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15700} G3H500S +PERO3              =  0.800GDK4000 + 0.200GAH500Z + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15701} G3H500S +PERO5              =  0.650GDK4000 + 0.350GAH500Z + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15702} G3H500S +PERO6              =  0.650GDK4000 + 0.350GAH500Z + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15703} G3H500S +PERO9              =       GDK4000 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 15704} GHH500S +GHO                =       GHK500U +      GHO                                    : ARR( 0.270E-10,     0., 0.0);
+{ 15705} GHH500S +GHO                =       GHK500Y +      GHO                                    : ARR( 0.140E-09,     0., 0.0);
+{ 15706} GHH500S+HV               =       G3K2000 +      GHD3003 +      GHO                     :  0.100E+01*SUN;
+{ 15707} GHH500S+HV               =       G1H503J +      GHO                                    :  0.100E+01*SUN;
+{ 15708} GHH500S+HV               =       G1H500f +      GHO                                    :  0.100E+01*SUN;
+{ 15709} GHK500X +GHO                =       GKK500A +      GHO                                    : ARR( 0.253E-10,     0., 0.0);
+{ 15710} GHK500X +GHO                =       GHK500Y +      GHO2                                   : ARR( 0.329E-10,     0., 0.0);
+{ 15711} GHK500X +GHO                =       GHD500u +      GHO2                                   : ARR( 0.404E-11,     0., 0.0);
+{ 15712} GHK500X +GHO                =       G2K500j                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 15713} GHK500X+HV               =       G3K2000 +      GDO3002 +      GHO                     :  0.100E+01*SUN;
+{ 15714} GHK500X+HV               =       G1K500o +      GHO                                    :  0.100E+01*SUN;
+{ 15715} G2K500j +GNO                =       G1K500o +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 15716} G2K500j +GNO                =       GNK500e                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 15717} G2K500j +GHO2               =       GHK500X                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 15718} G2K500j +GNO3               =       G1K500o +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 15719} G2K500j +MEPERO             =  0.340G1K500o + 0.330GKO500K + 0.330GKK500A                 : ARR( 0.565E-13,  -845., 0.0);
+{ 15720} G2K500j +PERO1              =  0.460G1K500o + 0.270GKO500K + 0.270GKK500A                 : ARR( 0.434E-13,  -900., 0.0);
+{ 15721} G2K500j +PERO2              =  0.400G1K500o + 0.300GKO500K + 0.300GKK500A                 : ARR( 0.162E-13, -1400., 0.0);
+{ 15722} G2K500j +PERO3              =  0.460G1K500o + 0.270GKO500K + 0.270GKK500A                 : ARR( 0.488E-13, -1250., 0.0);
+{ 15723} G2K500j +PERO5              =  0.460G1K500o + 0.270GKO500K + 0.270GKK500A                 : ARR( 0.183E-11,   450., 0.0);
+{ 15724} G2K500j +PERO6              =  0.300G1K500o + 0.350GKO500K + 0.350GKK500A                 : ARR( 0.168E-13, -1300., 0.0);
+{ 15725} G2K500j +PERO9              =  0.650G1K500o + 0.350GKK500A                                : ARR( 0.100E-10,     0., 0.0);
+{ 15726} GHK500Y +GHO                =       GKK500B +      GHO                                    : ARR( 0.155E-10,     0., 0.0);
+{ 15727} GHK500Y +GHO                =       GHD500z +      GHO2                                   : ARR( 0.248E-11,     0., 0.0);
+{ 15728} GHK500Y +GHO                =       G2K500Q                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 15729} GHK500Y+HV               =       G3K2000 +      GDK3001 +      GHO                     :  0.100E+01*SUN;
+{ 15730} GHK500Y+HV               =       G1K500R +      GHO                                    :  0.100E+01*SUN;
+{ 15731} GHK500Y+HV               =       G3H4009 +      GCH2O   +      GHO2                    :  0.100E+01*SUN;
+{ 15732} GHD4007 +GHO                =       GDK4008 +      GHO                                    : ARR( 0.160E-10,     0., 0.0);
+{ 15733} GHD4007 +GHO                =       G3H4009                                               : ARR( 0.689E-10,     0., 0.0);
+{ 15734} GHD4007 +GNO3               =       G3H4009 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 15735} GHD4007+HV               =       G3K2000 +      GDD2000 +      GHO                     :  0.100E+01*SUN;
+{ 15736} GHD4007+HV               =       G1D400D +      GHO                                    :  0.100E+01*SUN;
+{ 15737} GHD4007+HV               =       GDK3000 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 15738} GHK500Z +GHO                =       GKK500C +      GHO                                    : ARR( 0.145E-09,     0., 0.0);
+{ 15739} GHK500Z+HV               =       G3K2000 +      GHD3003 +      GHO2                    :  0.100E+01*SUN;
+{ 15740} GHK500Z+HV               =       G1K500Q +      GHO                                    :  0.100E+01*SUN;
+{ 15741} GKO500K +GHO                =       GKK500A +      GHO2                                   : ARR( 0.636E-11,     0., 0.0);
+{ 15742} GKO500K +GHO                =       GKK500C +      GHO2                                   : ARR( 0.331E-10,     0., 0.0);
+{ 15743} GKO500K +GHO                =       GDK500S +      GHO2                                   : ARR( 0.407E-11,     0., 0.0);
+{ 15744} GKO500K+HV               =       G3K2000 +      GDO3002 +      GHO2                    :  0.100E+01*SUN;
+{ 15745} GKK500C +GHO                =       GKK500B +      GHO2                                   : ARR( 0.406E-11,     0., 0.0);
+{ 15746} GKK500C +GHO                =       GDK500Z +      GHO2                                   : ARR( 0.260E-11,     0., 0.0);
+{ 15747} GKK500C+HV               =       G3K2000 +      GDK3001 +      GHO2                    :  0.100E+01*SUN;
+{ 15748} GKK500C+HV               =       G3K4009 +      GCH2O   +      GHO2                    :  0.100E+01*SUN;
+{ 15749} GDK4003 +GHO                =       GDK4008 +      GHO2                                   : ARR( 0.384E-11,     0., 0.0);
+{ 15750} GDK4003 +GHO                =       G3K4009                                               : ARR( 0.661E-10,     0., 0.0);
+{ 15751} GDK4003 +GNO3               =       G3K4009 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 15752} GDK4003+HV               =       G3K2000 +      GDD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 15753} GDK4003+HV               =       GDK3000 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 15754} GHH3003 +GHO                =       GHH3005 +      GHO2                                   : ARR( 0.403E-11,     0., 0.0);
+{ 15755} GHH3003 +GHO                =       GHK3001 +      GHO                                    : ARR( 0.413E-10,     0., 0.0);
+{ 15756} GHH3003 +GHO                =       GHD3003 +      GHO                                    : ARR( 0.161E-10,     0., 0.0);
+{ 15757} GHH3003 +GHO                =       G2H3005                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 15758} GHH3003 +GHO                =       G2H3004                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 15759} GHH3003+HV               =       G1H3006 +      GHO                                    :  0.100E+01*SUN;
+{ 15760} GHH3003+HV               =       G1H3005 +      GHO                                    :  0.100E+01*SUN;
+{ 15761} GHO3004 +GHO                =       GHD3003 +      GHO2                                   : ARR( 0.808E-11,     0., 0.0);
+{ 15762} GHO3004 +GHO                =       GKO3001 +      GHO                                    : ARR( 0.414E-10,     0., 0.0);
+{ 15763} GHO3004 +GHO                =       G2O3004                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 15764} GHO3004+HV               =       G1O3004 +      GHO                                    :  0.100E+01*SUN;
+{ 15765} GHD3003 +GHO                =       GHD3004 +      GHO2                                   : ARR( 0.128E-10,     0., 0.0);
+{ 15766} GHD3003 +GHO                =       GDK3001 +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 15767} GHD3003 +GHO                =       G3H3004                                               : ARR( 0.208E-10,     0., 0.0);
+{ 15768} GHD3003 +GHO                =       G2D3004                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 15769} GHD3003 +GNO3               =       G3H3004 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 15770} GHD3003+HV               =       G1D3004 +      GHO                                    :  0.100E+01*SUN;
+{ 15771} GHD3003+HV               =       GDO2000 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 15772} G2D3004 +GNO                =       G1D3004 +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{ 15773} G2D3004 +GNO                =       GND3004                                               : ARR( 0.622E-13,  -360., 0.0);
+{ 15774} G2D3004 +GHO2               =       GHD3003                                               : ARR( 0.179E-12, -1250., 0.0);
+{ 15775} G2D3004 +GNO3               =       G1D3004 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 15776} G2D3004 +MEPERO             =  0.340G1D3004 + 0.330GDO3002 + 0.330GDK3001                 : ARR( 0.565E-13,  -845., 0.0);
+{ 15777} G2D3004 +PERO1              =  0.460G1D3004 + 0.270GDO3002 + 0.270GDK3001                 : ARR( 0.434E-13,  -900., 0.0);
+{ 15778} G2D3004 +PERO2              =  0.400G1D3004 + 0.300GDO3002 + 0.300GDK3001                 : ARR( 0.162E-13, -1400., 0.0);
+{ 15779} G2D3004 +PERO3              =  0.460G1D3004 + 0.270GDO3002 + 0.270GDK3001                 : ARR( 0.488E-13, -1250., 0.0);
+{ 15780} G2D3004 +PERO5              =  0.460G1D3004 + 0.270GDO3002 + 0.270GDK3001                 : ARR( 0.183E-11,   450., 0.0);
+{ 15781} G2D3004 +PERO6              =  0.300G1D3004 + 0.350GDO3002 + 0.350GDK3001                 : ARR( 0.168E-13, -1300., 0.0);
+{ 15782} G2D3004 +PERO9              =  0.650G1D3004 + 0.350GDK3001                                : ARR( 0.100E-10,     0., 0.0);
+{ 15783} GHN501t +GHO                =       GHN502G +      GHO2                                   : ARR( 0.633E-11,     0., 0.0);
+{ 15784} GHN501t +GHO                =       GND500U +      GHO                                    : ARR( 0.514E-10,     0., 0.0);
+{ 15785} GHN501t +GHO                =       G2N501W                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 15786} GHN501t+HV               =       G1H503P +      GNO2                                   :  0.100E+01*SUN;
+{ 15787} GHN501t+HV               =       G3N3000 +      GHD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 15788} GHN501t+HV               =       G1N501Z +      GHO                                    :  0.100E+01*SUN;
+{ 15789} G1H503P +OXYGEN             =       GHD500C +      GHO2                                   : ARR( 0.600E-13,   398., 0.0);
+{ 15790} G1H503P                     =       GHK500c +      GHO2                                   : ARR( 0.800E+11,  4007., 0.0);
+{ 15791} GND500U +GHO                =       GND500i +      GHO2                                   : ARR( 0.386E-11,     0., 0.0);
+{ 15792} GND500U +GHO                =       G3N500Z                                               : ARR( 0.663E-10,     0., 0.0);
+{ 15793} GND500U +GNO3               =       G3N500Z +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 15794} GND500U+HV               =       G1D500i +      GNO2                                   :  0.100E+01*SUN;
+{ 15795} GND500U+HV               =       G3N3000 +      GDD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 15796} GND500U+HV               =       GND400B +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 15797} G3N500Z +GHO2               =  0.800GGN500j + 0.200GAN500q + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 15798} G3N500Z +GNO                =       GND400B +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 15799} G3N500Z +GNO2               =       GPN500v                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 15800} G3N500Z +GNO3               =       GND400B +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 15801} G3N500Z +MEPERO             =  0.685GND400B + 0.315GAN500q + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15802} G3N500Z +PERO1              =  0.800GND400B + 0.200GAN500q + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15803} G3N500Z +PERO2              =  0.750GND400B + 0.250GAN500q + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15804} G3N500Z +PERO3              =  0.800GND400B + 0.200GAN500q + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15805} G3N500Z +PERO5              =  0.650GND400B + 0.350GAN500q + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15806} G3N500Z +PERO6              =  0.650GND400B + 0.350GAN500q + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15807} G3N500Z +PERO9              =       GND400B +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 15808} G1D500i +OXYGEN             =       GDD5005 +      GHO2                                   : ARR( 0.600E-13,   398., 0.0);
+{ 15809} G1D500i                     =       GDK500L +      GHO2                                   : ARR( 0.800E+11,  4228., 0.0);
+{ 15810} GND400B +GHO                =       G3N3000 +      GCO                                    : ARR( 0.130E-10,     0., 0.0);
+{ 15811} GND400B +GNO3               =       G3N3000 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 15812} GND400B+HV               =       G1D400F +      GNO2                                   :  0.100E+01*SUN;
+{ 15813} GND400B+HV               =       G3N3000 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 15814} GND400B+HV               =       GND3000 +      GCO                                    :  0.100E+01*SUN;
+{ 15815} GND400B+HV               =       GN02000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 15816} G1D400F +OXYGEN             =       GDD4002 +      GHO2                                   : ARR( 0.600E-13,   398., 0.0);
+{ 15817} G1D400F                     =       G3K3001 +      GCO                                    : ARR( 0.800E+11,  4780., 0.0);
+{ 15818} GHH500T +GHO                =       GHK500D +      GHO                                    : ARR( 0.138E-09,     0., 0.0);
+{ 15819} GHH500T +GHO                =       GHD500J +      GHO                                    : ARR( 0.170E-10,     0., 0.0);
+{ 15820} GHH500T+HV               =       G3K2000 +      G2H300B                                :  0.100E+01*SUN;
+{ 15821} GHH500T+HV               =       GK03000 +      GDD2000 + 2.000GHO                     :  0.100E+01*SUN;
+{ 15822} GHH500T+HV               =       G1H500h +      GHO                                    :  0.100E+01*SUN;
+{ 15823} GHH500T+HV               =       G1H501E +      GHO                                    :  0.100E+01*SUN;
+{ 15824} G2H300B +GNO                =       G1H300A +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{ 15825} G2H300B +GNO                =       GHH3001                                               : ARR( 0.622E-13,  -360., 0.0);
+{ 15826} G2H300B +GHO2               =       GHH3008                                               : ARR( 0.179E-12, -1250., 0.0);
+{ 15827} G2H300B +GNO3               =       G1H300A +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 15828} G2H300B +MEPERO             =  0.480G1H300A + 0.260GHH3003 + 0.260GHH3005                 : ARR( 0.164E-12,  -795., 0.0);
+{ 15829} G2H300B +PERO1              =  0.600G1H300A + 0.200GHH3003 + 0.200GHH3005                 : ARR( 0.126E-12,  -850., 0.0);
+{ 15830} G2H300B +PERO2              =  0.560G1H300A + 0.220GHH3003 + 0.220GHH3005                 : ARR( 0.471E-13, -1350., 0.0);
+{ 15831} G2H300B +PERO3              =  0.600G1H300A + 0.200GHH3003 + 0.200GHH3005                 : ARR( 0.142E-12, -1200., 0.0);
+{ 15832} G2H300B +PERO5              =  0.600G1H300A + 0.200GHH3003 + 0.200GHH3005                 : ARR( 0.533E-11,   500., 0.0);
+{ 15833} G2H300B +PERO6              =  0.460G1H300A + 0.270GHH3003 + 0.270GHH3005                 : ARR( 0.488E-13, -1250., 0.0);
+{ 15834} G2H300B +PERO9              =  0.800G1H300A + 0.200GHH3005                                : ARR( 0.100E-10,     0., 0.0);
+{ 15835} GHH3004 +GHO                =       GHD3000 +      GHO                                    : ARR( 0.333E-10,     0., 0.0);
+{ 15836} GHH3004 +GHO                =       G2H3006                                               : ARR( 0.394E-11,  -190., 0.0);
+{ 15837} GHH3004+HV               =       G1H3002 +      GHO                                    :  0.200E+01*SUN;
+{ 15838} GGH5004 +GHO                =       GGH500W +      GHO2                                   : ARR( 0.855E-11,     0., 0.0);
+{ 15839} GGH5004 +GHO                =       GGK5003 +      GHO                                    : ARR( 0.421E-10,     0., 0.0);
+{ 15840} GGH5004 +GHO                =       G2G5003                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 15841} GGH5004 +GHO                =       G3H5003                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 15842} GGH5004+HV               =       G1G5003 +      GHO                                    :  0.100E+01*SUN;
+{ 15843} GGH5004+HV               =       G2H4009 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 15844} GAH5004 +GHO                =       GAH500Y +      GHO2                                   : ARR( 0.861E-11,     0., 0.0);
+{ 15845} GAH5004 +GHO                =       GAK5003 +      GHO                                    : ARR( 0.423E-10,     0., 0.0);
+{ 15846} GAH5004 +GHO                =       G2A5003                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 15847} GAH5004+HV               =       G1A5003 +      GHO                                    :  0.100E+01*SUN;
+{ 15848} GPH5004                     =       G3H5003 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 15849} GPH5004 +GHO                =       GPH500a +      GHO2                                   : ARR( 0.856E-11,     0., 0.0);
+{ 15850} GPH5004 +GHO                =       GPK5003 +      GHO                                    : ARR( 0.421E-10,     0., 0.0);
+{ 15851} GPH5004 +GHO                =       G2P5003                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 15852} GPH5004+HV               =       G1P5003 +      GHO                                    :  0.100E+01*SUN;
+{ 15853} GPH5004+HV               =       G3H5003 +      GNO2                                   :  0.100E+01*SUN;
+{ 15854} GHN400E +GHO                =       GHN400g +      GHO2                                   : ARR( 0.852E-11,     0., 0.0);
+{ 15855} GHN400E +GHO                =       GNK4003 +      GHO                                    : ARR( 0.839E-11,     0., 0.0);
+{ 15856} GHN400E +GHO                =       G2N400f                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 15857} GHN400E+HV               =       G1N400j +      GHO                                    :  0.100E+01*SUN;
+{ 15858} GHN400E+HV               =       G1H4009 +      GNO2                                   :  0.100E+01*SUN;
+{ 15859} G2N400f +GNO                =       G1N400j +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 15860} G2N400f +GNO                =       GNN4009                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 15861} G2N400f +GHO2               =       GHN400E                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 15862} G2N400f +GNO3               =       G1N400j +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 15863} G2N400f +MEPERO             =  0.340G1N400j + 0.330GNO400A + 0.330GNK4003                 : ARR( 0.565E-13,  -845., 0.0);
+{ 15864} G2N400f +PERO1              =  0.460G1N400j + 0.270GNO400A + 0.270GNK4003                 : ARR( 0.434E-13,  -900., 0.0);
+{ 15865} G2N400f +PERO2              =  0.400G1N400j + 0.300GNO400A + 0.300GNK4003                 : ARR( 0.162E-13, -1400., 0.0);
+{ 15866} G2N400f +PERO3              =  0.460G1N400j + 0.270GNO400A + 0.270GNK4003                 : ARR( 0.488E-13, -1250., 0.0);
+{ 15867} G2N400f +PERO5              =  0.460G1N400j + 0.270GNO400A + 0.270GNK4003                 : ARR( 0.183E-11,   450., 0.0);
+{ 15868} G2N400f +PERO6              =  0.300G1N400j + 0.350GNO400A + 0.350GNK4003                 : ARR( 0.168E-13, -1300., 0.0);
+{ 15869} G2N400f +PERO9              =  0.650G1N400j + 0.350GNK4003                                : ARR( 0.100E-10,     0., 0.0);
+{ 15870} GHH4005 +GHO                =       GHH400X +      GHO2                                   : ARR( 0.933E-11,     0., 0.0);
+{ 15871} GHH4005 +GHO                =       GHK4004 +      GHO                                    : ARR( 0.459E-10,     0., 0.0);
+{ 15872} GHH4005 +GHO                =       GHD4008 +      GHO                                    : ARR( 0.179E-10,     0., 0.0);
+{ 15873} GHH4005+HV               =       G1H400W +      GHO                                    :  0.100E+01*SUN;
+{ 15874} GHH4005+HV               =       G1H4009 +      GHO                                    :  0.100E+01*SUN;
+{ 15875} GHO4008 +GHO                =       GHK4008 +      GHO2                                   : ARR( 0.844E-11,     0., 0.0);
+{ 15876} GHO4008 +GHO                =       GKO4003 +      GHO                                    : ARR( 0.415E-10,     0., 0.0);
+{ 15877} GHO4008 +GHO                =       GHD4008 +      GHO2                                   : ARR( 0.405E-11,     0., 0.0);
+{ 15878} GHO4008 +GHO                =       G2O4009                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 15879} GHO4008+HV               =       G1O4009 +      GHO                                    :  0.100E+01*SUN;
+{ 15880} GHD4008 +GHO                =       GHD4007 +      GHO2                                   : ARR( 0.280E-10,     0., 0.0);
+{ 15881} GHD4008 +GHO                =       GDK4004 +      GHO                                    : ARR( 0.265E-10,     0., 0.0);
+{ 15882} GHD4008 +GHO                =       G3H400A                                               : ARR( 0.219E-10,     0., 0.0);
+{ 15883} GHD4008 +GNO3               =       G3H400A +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 15884} GHD4008+HV               =       G1D400C +      GHO                                    :  0.100E+01*SUN;
+{ 15885} GHD4008+HV               =       GDO3001 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 15886} GHN400F +GHO                =       GHN400T +      GHO2                                   : ARR( 0.422E-11,     0., 0.0);
+{ 15887} GHN400F +GHO                =       GNK4005 +      GHO                                    : ARR( 0.432E-10,     0., 0.0);
+{ 15888} GHN400F +GHO                =       G2N400B                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 15889} GHN400F+HV               =       G1N400B +      GHO                                    :  0.100E+01*SUN;
+{ 15890} GHN400F+HV               =       G1H400A +      GNO2                                   :  0.100E+01*SUN;
+{ 15891} GHH4006 +GHO                =       GHH400H +      GHO2                                   : ARR( 0.444E-11,     0., 0.0);
+{ 15892} GHH4006 +GHO                =       GHK4005 +      GHO                                    : ARR( 0.455E-10,     0., 0.0);
+{ 15893} GHH4006 +GHO                =       GHH400Y +      GHO2                                   : ARR( 0.114E-10,     0., 0.0);
+{ 15894} GHH4006 +GHO                =       GHD4009 +      GHO                                    : ARR( 0.178E-10,     0., 0.0);
+{ 15895} GHH4006+HV               =       G1H400X +      GHO                                    :  0.100E+01*SUN;
+{ 15896} GHH4006+HV               =       G1H400A +      GHO                                    :  0.100E+01*SUN;
+{ 15897} GHO4009 +GHO                =       GHD4009 +      GHO2                                   : ARR( 0.405E-11,     0., 0.0);
+{ 15898} GHO4009 +GHO                =       GHK4009 +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 15899} GHO4009 +GHO                =       GKO4004 +      GHO                                    : ARR( 0.415E-10,     0., 0.0);
+{ 15900} GHO4009 +GHO                =       GHD400A +      GHO2                                   : ARR( 0.405E-11,     0., 0.0);
+{ 15901} GHO4009 +GHO                =       G2O400A                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 15902} GHO4009+HV               =       G1O400A +      GHO                                    :  0.100E+01*SUN;
+{ 15903} GHD4009 +GHO                =       GDK4006 +      GHO                                    : ARR( 0.143E-09,     0., 0.0);
+{ 15904} GHD4009 +GHO                =       G3H400B                                               : ARR( 0.227E-10,     0., 0.0);
+{ 15905} GHD4009 +GNO3               =       G3H400B +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 15906} GHD4009+HV               =       G1D4002 +      GHO                                    :  0.100E+01*SUN;
+{ 15907} GHD4009+HV               =       GHD3003 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 15908} G3H400B +GHO2               =  0.800GGH400G + 0.200GAH400J + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 15909} G3H400B +GNO                =       GHD3003 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 15910} G3H400B +GNO2               =       GPH400L                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 15911} G3H400B +GNO3               =       GHD3003 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 15912} G3H400B +MEPERO             =  0.685GHD3003 + 0.315GAH400J + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15913} G3H400B +PERO1              =  0.800GHD3003 + 0.200GAH400J + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15914} G3H400B +PERO2              =  0.750GHD3003 + 0.250GAH400J + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15915} G3H400B +PERO3              =  0.800GHD3003 + 0.200GAH400J + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15916} G3H400B +PERO5              =  0.650GHD3003 + 0.350GAH400J + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15917} G3H400B +PERO6              =  0.650GHD3003 + 0.350GAH400J + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15918} G3H400B +PERO9              =       GHD3003 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 15919} GHD400A +GHO                =       GHD400G +      GHO2                                   : ARR( 0.360E-10,     0., 0.0);
+{ 15920} GHD400A +GHO                =       GDK4007 +      GHO                                    : ARR( 0.277E-10,     0., 0.0);
+{ 15921} GHD400A +GHO                =       G3H400C                                               : ARR( 0.229E-10,     0., 0.0);
+{ 15922} GHD400A +GNO3               =       G3H400C +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 15923} GHD400A+HV               =       G1D400E +      GHO                                    :  0.100E+01*SUN;
+{ 15924} GHD400A+HV               =       GDO3002 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 15925} G3H400C +GHO2               =  0.800GGH400H + 0.200GAH400K + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 15926} G3H400C +GNO                =       GDO3002 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 15927} G3H400C +GNO2               =       GPH400K                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 15928} G3H400C +GNO3               =       GDO3002 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 15929} G3H400C +MEPERO             =  0.685GDO3002 + 0.315GAH400K + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15930} G3H400C +PERO1              =  0.800GDO3002 + 0.200GAH400K + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15931} G3H400C +PERO2              =  0.750GDO3002 + 0.250GAH400K + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15932} G3H400C +PERO3              =  0.800GDO3002 + 0.200GAH400K + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15933} G3H400C +PERO5              =  0.650GDO3002 + 0.350GAH400K + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15934} G3H400C +PERO6              =  0.650GDO3002 + 0.350GAH400K + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 15935} G3H400C +PERO9              =       GDO3002 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 15936} GGO5006 +GHO                =       GGK5009 +      GHO2                                   : ARR( 0.887E-11,     0., 0.0);
+{ 15937} GGO5006 +GHO                =       GGK5003 +      GHO2                                   : ARR( 0.109E-10,     0., 0.0);
+{ 15938} GGO5006 +GHO                =       G3K5008                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 15939} GGO5006+HV               =       G2O4008 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 15940} GAO5006 +GHO                =       GAK5009 +      GHO2                                   : ARR( 0.910E-11,     0., 0.0);
+{ 15941} GAO5006 +GHO                =       GAK5003 +      GHO2                                   : ARR( 0.112E-10,     0., 0.0);
+{ 15942} GPO5006                     =       G3K5008 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 15943} GPO5006 +GHO                =       GPK5009 +      GHO2                                   : ARR( 0.896E-11,     0., 0.0);
+{ 15944} GPO5006 +GHO                =       GPK5003 +      GHO2                                   : ARR( 0.110E-10,     0., 0.0);
+{ 15945} GPO5006+HV               =       G3K5008 +      GNO2                                   :  0.100E+01*SUN;
+{ 15946} GNO400A +GHO                =       GNK4009 +      GHO2                                   : ARR( 0.877E-11,     0., 0.0);
+{ 15947} GNO400A +GHO                =       GNK4003 +      GHO2                                   : ARR( 0.216E-11,     0., 0.0);
+{ 15948} GNO400A+HV               =       G1O4008 +      GNO2                                   :  0.100E+01*SUN;
+{ 15949} GHO400A +GHO                =       GHK400B +      GHO2                                   : ARR( 0.847E-11,     0., 0.0);
+{ 15950} GHO400A +GHO                =       GHK4004 +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 15951} GHO400A +GHO                =       GDO4005 +      GHO                                    : ARR( 0.163E-10,     0., 0.0);
+{ 15952} GHO400A +GHO                =       G2O4008                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 15953} GHO400A+HV               =       G1O4008 +      GHO                                    :  0.100E+01*SUN;
+{ 15954} GOO4004 +GHO                =       GKO4005 +      GHO2                                   : ARR( 0.859E-11,     0., 0.0);
+{ 15955} GOO4004 +GHO                =       GKO4003 +      GHO2                                   : ARR( 0.106E-10,     0., 0.0);
+{ 15956} GOO4004 +GHO                =       GDO4005 +      GHO2                                   : ARR( 0.413E-11,     0., 0.0);
+{ 15957} GDO4005 +GHO                =       GDK4003 +      GHO2                                   : ARR( 0.268E-10,     0., 0.0);
+{ 15958} GDO4005 +GHO                =       GDK4004 +      GHO2                                   : ARR( 0.633E-11,     0., 0.0);
+{ 15959} GDO4005 +GHO                =       G3K4008                                               : ARR( 0.209E-10,     0., 0.0);
+{ 15960} GDO4005 +GNO3               =       G3K4008 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 15961} GDO4005+HV               =       GDO3001 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 15962} GGK5003 +GHO                =       G2G500Y                                               : ARR( 0.539E-12,     0., 0.0);
+{ 15963} GGK5003 +GHO                =       GGK500D +      GHO2                                   : ARR( 0.518E-11,     0., 0.0);
+{ 15964} GGK5003 +GHO                =       G2G500Z                                               : ARR( 0.533E-12,     0., 0.0);
+{ 15965} GGK5003 +GHO                =       G3K5009                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 15966} GGK5003+HV               =       G3K3002 +      G2G2000                                :  0.100E+01*SUN;
+{ 15967} GGK5003+HV               =       G2K4002 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 15968} G2G500Y +GNO                =       G1G500Z +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 15969} G2G500Y +GNO                =       GGN500L                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 15970} G2G500Y +GHO2               =       GGH500J                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 15971} G2G500Y +GNO3               =       G1G500Z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 15972} G2G500Y +MEPERO             =  0.480G1G500Z + 0.260GGK5008 + 0.260GGD5006                 : ARR( 0.164E-12,  -795., 0.0);
+{ 15973} G2G500Y +PERO1              =  0.600G1G500Z + 0.200GGK5008 + 0.200GGD5006                 : ARR( 0.126E-12,  -850., 0.0);
+{ 15974} G2G500Y +PERO2              =  0.560G1G500Z + 0.220GGK5008 + 0.220GGD5006                 : ARR( 0.471E-13, -1350., 0.0);
+{ 15975} G2G500Y +PERO3              =  0.600G1G500Z + 0.200GGK5008 + 0.200GGD5006                 : ARR( 0.142E-12, -1200., 0.0);
+{ 15976} G2G500Y +PERO5              =  0.600G1G500Z + 0.200GGK5008 + 0.200GGD5006                 : ARR( 0.533E-11,   500., 0.0);
+{ 15977} G2G500Y +PERO6              =  0.460G1G500Z + 0.270GGK5008 + 0.270GGD5006                 : ARR( 0.488E-13, -1250., 0.0);
+{ 15978} G2G500Y +PERO9              =  0.800G1G500Z + 0.200GGD5006                                : ARR( 0.100E-10,     0., 0.0);
+{ 15979} G2G500Z +GNO                =       G1G500a +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 15980} G2G500Z +GNO                =       GGN500k                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 15981} G2G500Z +GHO2               =       GGH500i                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 15982} G2G500Z +GNO3               =       G1G500a +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 15983} G2G500Z +MEPERO             =  0.340G1G500a + 0.330GGK500K + 0.330GGK500N                 : ARR( 0.565E-13,  -845., 0.0);
+{ 15984} G2G500Z +PERO1              =  0.460G1G500a + 0.270GGK500K + 0.270GGK500N                 : ARR( 0.434E-13,  -900., 0.0);
+{ 15985} G2G500Z +PERO2              =  0.400G1G500a + 0.300GGK500K + 0.300GGK500N                 : ARR( 0.162E-13, -1400., 0.0);
+{ 15986} G2G500Z +PERO3              =  0.460G1G500a + 0.270GGK500K + 0.270GGK500N                 : ARR( 0.488E-13, -1250., 0.0);
+{ 15987} G2G500Z +PERO5              =  0.460G1G500a + 0.270GGK500K + 0.270GGK500N                 : ARR( 0.183E-11,   450., 0.0);
+{ 15988} G2G500Z +PERO6              =  0.300G1G500a + 0.350GGK500K + 0.350GGK500N                 : ARR( 0.168E-13, -1300., 0.0);
+{ 15989} G2G500Z +PERO9              =  0.650G1G500a + 0.350GGK500N                                : ARR( 0.100E-10,     0., 0.0);
+{ 15990} G1G500Z                     =       GGD4004 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4576., 0.0);
+{ 15991} G1G500a                     =       G3K3002 +      GGD2000                                : ARR( 0.200E+15,  5359., 0.0);
+{ 15992} GAK5003 +GHO                =       G2A500e                                               : ARR( 0.543E-12,     0., 0.0);
+{ 15993} GAK5003 +GHO                =       GAK500B +      GHO2                                   : ARR( 0.522E-11,     0., 0.0);
+{ 15994} GAK5003 +GHO                =       G2A500f                                               : ARR( 0.397E-12,     0., 0.0);
+{ 15995} GAK5003 +GHO                =       G2K4002 +      GCO2                                   : ARR( 0.531E-12,     0., 0.0);
+{ 15996} GAK5003+HV               =       G3K3002 +      G2A2000                                :  0.100E+01*SUN;
+{ 15997} G2A500e +GNO                =       G1A500f +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 15998} G2A500e +GNO                =       GAN500L                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 15999} G2A500e +GHO2               =       GAH500J                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 16000} G2A500e +GNO3               =       G1A500f +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 16001} G2A500e +MEPERO             =  0.480G1A500f + 0.260GAK5008 + 0.260GAD5006                 : ARR( 0.164E-12,  -795., 0.0);
+{ 16002} G2A500e +PERO1              =  0.600G1A500f + 0.200GAK5008 + 0.200GAD5006                 : ARR( 0.126E-12,  -850., 0.0);
+{ 16003} G2A500e +PERO2              =  0.560G1A500f + 0.220GAK5008 + 0.220GAD5006                 : ARR( 0.471E-13, -1350., 0.0);
+{ 16004} G2A500e +PERO3              =  0.600G1A500f + 0.200GAK5008 + 0.200GAD5006                 : ARR( 0.142E-12, -1200., 0.0);
+{ 16005} G2A500e +PERO5              =  0.600G1A500f + 0.200GAK5008 + 0.200GAD5006                 : ARR( 0.533E-11,   500., 0.0);
+{ 16006} G2A500e +PERO6              =  0.460G1A500f + 0.270GAK5008 + 0.270GAD5006                 : ARR( 0.488E-13, -1250., 0.0);
+{ 16007} G2A500e +PERO9              =  0.800G1A500f + 0.200GAD5006                                : ARR( 0.100E-10,     0., 0.0);
+{ 16008} G2A500f +GNO                =       G1A500g +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 16009} G2A500f +GNO                =       GAN500r                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 16010} G2A500f +GHO2               =       GAH500n                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 16011} G2A500f +GNO3               =       G1A500g +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 16012} G2A500f +MEPERO             =  0.340G1A500g + 0.330GAK500J + 0.330GAK500M                 : ARR( 0.565E-13,  -845., 0.0);
+{ 16013} G2A500f +PERO1              =  0.460G1A500g + 0.270GAK500J + 0.270GAK500M                 : ARR( 0.434E-13,  -900., 0.0);
+{ 16014} G2A500f +PERO2              =  0.400G1A500g + 0.300GAK500J + 0.300GAK500M                 : ARR( 0.162E-13, -1400., 0.0);
+{ 16015} G2A500f +PERO3              =  0.460G1A500g + 0.270GAK500J + 0.270GAK500M                 : ARR( 0.488E-13, -1250., 0.0);
+{ 16016} G2A500f +PERO5              =  0.460G1A500g + 0.270GAK500J + 0.270GAK500M                 : ARR( 0.183E-11,   450., 0.0);
+{ 16017} G2A500f +PERO6              =  0.300G1A500g + 0.350GAK500J + 0.350GAK500M                 : ARR( 0.168E-13, -1300., 0.0);
+{ 16018} G2A500f +PERO9              =  0.650G1A500g + 0.350GAK500M                                : ARR( 0.100E-10,     0., 0.0);
+{ 16019} G1A500f                     =       GAD4003 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4576., 0.0);
+{ 16020} G1A500g                     =       G3K3002 +      GAD2000                                : ARR( 0.200E+15,  5359., 0.0);
+{ 16021} GPK5003                     =       G3K5009 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 16022} GPK5003 +GHO                =       G2P500h                                               : ARR( 0.543E-12,     0., 0.0);
+{ 16023} GPK5003 +GHO                =       GPK500D +      GHO2                                   : ARR( 0.522E-11,     0., 0.0);
+{ 16024} GPK5003 +GHO                =       G2P500i                                               : ARR( 0.537E-12,     0., 0.0);
+{ 16025} GPK5003+HV               =       G3K3002 +      G2P2000                                :  0.100E+01*SUN;
+{ 16026} GPK5003+HV               =       G3K5009 +      GNO2                                   :  0.100E+01*SUN;
+{ 16027} G2P500h +GNO                =       G1P500i +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 16028} G2P500h +GNO                =       GPN500L                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 16029} G2P500h +GHO2               =       GPH500J                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 16030} G2P500h +GNO3               =       G1P500i +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 16031} G2P500h +MEPERO             =  0.480G1P500i + 0.260GPK5008 + 0.260GPD5006                 : ARR( 0.164E-12,  -795., 0.0);
+{ 16032} G2P500h +PERO1              =  0.600G1P500i + 0.200GPK5008 + 0.200GPD5006                 : ARR( 0.126E-12,  -850., 0.0);
+{ 16033} G2P500h +PERO2              =  0.560G1P500i + 0.220GPK5008 + 0.220GPD5006                 : ARR( 0.471E-13, -1350., 0.0);
+{ 16034} G2P500h +PERO3              =  0.600G1P500i + 0.200GPK5008 + 0.200GPD5006                 : ARR( 0.142E-12, -1200., 0.0);
+{ 16035} G2P500h +PERO5              =  0.600G1P500i + 0.200GPK5008 + 0.200GPD5006                 : ARR( 0.533E-11,   500., 0.0);
+{ 16036} G2P500h +PERO6              =  0.460G1P500i + 0.270GPK5008 + 0.270GPD5006                 : ARR( 0.488E-13, -1250., 0.0);
+{ 16037} G2P500h +PERO9              =  0.800G1P500i + 0.200GPD5006                                : ARR( 0.100E-10,     0., 0.0);
+{ 16038} G2P500i +GNO                =       G1P500j +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 16039} G2P500i +GNO                =       GPN500w                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 16040} G2P500i +GHO2               =       GPH500p                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 16041} G2P500i +GNO3               =       G1P500j +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 16042} G2P500i +MEPERO             =  0.340G1P500j + 0.330GPK500K + 0.330GPK500N                 : ARR( 0.565E-13,  -845., 0.0);
+{ 16043} G2P500i +PERO1              =  0.460G1P500j + 0.270GPK500K + 0.270GPK500N                 : ARR( 0.434E-13,  -900., 0.0);
+{ 16044} G2P500i +PERO2              =  0.400G1P500j + 0.300GPK500K + 0.300GPK500N                 : ARR( 0.162E-13, -1400., 0.0);
+{ 16045} G2P500i +PERO3              =  0.460G1P500j + 0.270GPK500K + 0.270GPK500N                 : ARR( 0.488E-13, -1250., 0.0);
+{ 16046} G2P500i +PERO5              =  0.460G1P500j + 0.270GPK500K + 0.270GPK500N                 : ARR( 0.183E-11,   450., 0.0);
+{ 16047} G2P500i +PERO6              =  0.300G1P500j + 0.350GPK500K + 0.350GPK500N                 : ARR( 0.168E-13, -1300., 0.0);
+{ 16048} G2P500i +PERO9              =  0.650G1P500j + 0.350GPK500N                                : ARR( 0.100E-10,     0., 0.0);
+{ 16049} G1P500i                     =       GPD4003 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4576., 0.0);
+{ 16050} G1P500j                     =       G3K3002 +      GPD2000                                : ARR( 0.200E+15,  5359., 0.0);
+{ 16051} GNK4003 +GHO                =       G2N400g                                               : ARR( 0.547E-12,     0., 0.0);
+{ 16052} GNK4003 +GHO                =       GNK400A +      GHO2                                   : ARR( 0.526E-11,     0., 0.0);
+{ 16053} GNK4003+HV               =       G3K3002 +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{ 16054} GNK4003+HV               =       G1K4002 +      GNO2                                   :  0.100E+01*SUN;
+{ 16055} G2N400g +GNO                =       G1N400m +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 16056} G2N400g +GNO                =       GNN400J                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 16057} G2N400g +GHO2               =       GHN400Z                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 16058} G2N400g +GNO3               =       G1N400m +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 16059} G2N400g +MEPERO             =  0.480G1N400m + 0.260GNK4006 + 0.260GND400E                 : ARR( 0.164E-12,  -795., 0.0);
+{ 16060} G2N400g +PERO1              =  0.600G1N400m + 0.200GNK4006 + 0.200GND400E                 : ARR( 0.126E-12,  -850., 0.0);
+{ 16061} G2N400g +PERO2              =  0.560G1N400m + 0.220GNK4006 + 0.220GND400E                 : ARR( 0.471E-13, -1350., 0.0);
+{ 16062} G2N400g +PERO3              =  0.600G1N400m + 0.200GNK4006 + 0.200GND400E                 : ARR( 0.142E-12, -1200., 0.0);
+{ 16063} G2N400g +PERO5              =  0.600G1N400m + 0.200GNK4006 + 0.200GND400E                 : ARR( 0.533E-11,   500., 0.0);
+{ 16064} G2N400g +PERO6              =  0.460G1N400m + 0.270GNK4006 + 0.270GND400E                 : ARR( 0.488E-13, -1250., 0.0);
+{ 16065} G2N400g +PERO9              =  0.800G1N400m + 0.200GND400E                                : ARR( 0.100E-10,     0., 0.0);
+{ 16066} G1N400m                     =       GND3003 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4576., 0.0);
+{ 16067} GHK4004 +GHO                =       GHK400A +      GHO2                                   : ARR( 0.529E-11,     0., 0.0);
+{ 16068} GHK4004 +GHO                =       GDK4004 +      GHO                                    : ARR( 0.102E-10,     0., 0.0);
+{ 16069} GHK4004 +GHO                =       G2K4002                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 16070} GHK4004+HV               =       G3K3002 +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 16071} GHK4004+HV               =       G1K4002 +      GHO                                    :  0.100E+01*SUN;
+{ 16072} GKO4003 +GHO                =       G2K400B                                               : ARR( 0.550E-12,     0., 0.0);
+{ 16073} GKO4003 +GHO                =       GKK4000 +      GHO2                                   : ARR( 0.528E-11,     0., 0.0);
+{ 16074} GKO4003 +GHO                =       GDK4004 +      GHO2                                   : ARR( 0.254E-11,     0., 0.0);
+{ 16075} GKO4003+HV               =       G3K3002 +      GCH2O   +      GHO2                    :  0.100E+01*SUN;
+{ 16076} G2K400B +GNO                =       G1K400B +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 16077} G2K400B +GNO                =       GNK4005                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 16078} G2K400B +GHO2               =       GHK4005                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 16079} G2K400B +GNO3               =       G1K400B +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 16080} G2K400B +MEPERO             =  0.480G1K400B + 0.260GKO4004 + 0.260GDK4006                 : ARR( 0.164E-12,  -795., 0.0);
+{ 16081} G2K400B +PERO1              =  0.600G1K400B + 0.200GKO4004 + 0.200GDK4006                 : ARR( 0.126E-12,  -850., 0.0);
+{ 16082} G2K400B +PERO2              =  0.560G1K400B + 0.220GKO4004 + 0.220GDK4006                 : ARR( 0.471E-13, -1350., 0.0);
+{ 16083} G2K400B +PERO3              =  0.600G1K400B + 0.200GKO4004 + 0.200GDK4006                 : ARR( 0.142E-12, -1200., 0.0);
+{ 16084} G2K400B +PERO5              =  0.600G1K400B + 0.200GKO4004 + 0.200GDK4006                 : ARR( 0.533E-11,   500., 0.0);
+{ 16085} G2K400B +PERO6              =  0.460G1K400B + 0.270GKO4004 + 0.270GDK4006                 : ARR( 0.488E-13, -1250., 0.0);
+{ 16086} G2K400B +PERO9              =  0.800G1K400B + 0.200GDK4006                                : ARR( 0.100E-10,     0., 0.0);
+{ 16087} G1K400B                     =       GDK3001 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4576., 0.0);
+{ 16088} GDK4004 +GHO                =       GDK4008 +      GHO2                                   : ARR( 0.530E-11,     0., 0.0);
+{ 16089} GDK4004 +GHO                =       G3K3002 +      GCO                                    : ARR( 0.131E-10,     0., 0.0);
+{ 16090} GDK4004 +GNO3               =       G3K3002 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 16091} GDK4004+HV               =       G3K3002 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 16092} GDK4004+HV               =       GDO3001 +      GCO                                    :  0.100E+01*SUN;
+{ 16093} GDK4004+HV               =       GO02000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 16094} GGH5005 +GHO                =       GGH500X +      GHO2                                   : ARR( 0.873E-11,     0., 0.0);
+{ 16095} GGH5005 +GHO                =       GGK5004 +      GHO                                    : ARR( 0.262E-10,     0., 0.0);
+{ 16096} GGH5005 +GHO                =       G2G5004                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 16097} GGH5005 +GHO                =       G3H5006                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 16098} GGH5005+HV               =       G1G5004 +      GHO                                    :  0.100E+01*SUN;
+{ 16099} GGH5005+HV               =       GDO4001 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 16100} GGK5004 +GHO                =       GGK500J +      GHO2                                   : ARR( 0.276E-10,     0., 0.0);
+{ 16101} GGK5004 +GHO                =       G3K500P                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 16102} GGK5004+HV               =       GAO4000 +      GCO2                                   :  0.100E+01*SUN;
+{ 16103} G3K500P +GHO2               =  0.800GGK5004 + 0.200GAK5004 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 16104} G3K500P +GNO                =       G3K4000 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 16105} G3K500P +GNO2               =       GPK5004                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 16106} G3K500P +GNO3               =       G3K4000 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 16107} G3K500P +MEPERO             =  0.685G3K4000 + 0.315GAK5004 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 16108} G3K500P +PERO1              =  0.800G3K4000 + 0.200GAK5004 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 16109} G3K500P +PERO2              =  0.750G3K4000 + 0.250GAK5004 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 16110} G3K500P +PERO3              =  0.800G3K4000 + 0.200GAK5004 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 16111} G3K500P +PERO5              =  0.650G3K4000 + 0.350GAK5004 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 16112} G3K500P +PERO6              =  0.650G3K4000 + 0.350GAK5004 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 16113} G3K500P +PERO9              =       G3K4000 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 16114} GAH5005 +GHO                =       GAH500Z +      GHO2                                   : ARR( 0.899E-11,     0., 0.0);
+{ 16115} GAH5005 +GHO                =       GAK5004 +      GHO                                    : ARR( 0.200E-10,     0., 0.0);
+{ 16116} GAH5005 +GHO                =       G2A5004                                               : ARR( 0.204E-11,  -190., 0.0);
+{ 16117} GAH5005+HV               =       G1A5004 +      GHO                                    :  0.100E+01*SUN;
+{ 16118} GAK5004 +GHO                =       GAK500H +      GHO2                                   : ARR( 0.282E-10,     0., 0.0);
+{ 16119} GAK5004+HV               =       GDO4001 +      GCO2                                   :  0.100E+01*SUN;
+{ 16120} GPH5005                     =       G3H5006 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 16121} GPH5005 +GHO                =       GPH500b +      GHO2                                   : ARR( 0.877E-11,     0., 0.0);
+{ 16122} GPH5005 +GHO                =       GPK5004 +      GHO                                    : ARR( 0.263E-10,     0., 0.0);
+{ 16123} GPH5005 +GHO                =       G2P5004                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 16124} GPH5005+HV               =       G1P5004 +      GHO                                    :  0.100E+01*SUN;
+{ 16125} GPH5005+HV               =       G3H5006 +      GNO2                                   :  0.100E+01*SUN;
+{ 16126} GPK5004                     =       G3K500P +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 16127} GPK5004 +GHO                =       GPK500J +      GHO2                                   : ARR( 0.277E-10,     0., 0.0);
+{ 16128} GPK5004+HV               =       G3K4000 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 16129} GNK4004 +GHO                =       GND4004 +      GHO2                                   : ARR( 0.129E-10,     0., 0.0);
+{ 16130} GNK4004 +GHO                =       G2N400h                                               : ARR( 0.872E-12,     0., 0.0);
+{ 16131} GNK4004+HV               =       G3K3001 +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{ 16132} GNK4004+HV               =       G1K4007 +      GNO2                                   :  0.100E+01*SUN;
+{ 16133} G2N400h +GNO                =       G1N400n +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 16134} G2N400h +GNO                =       GNN400U                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 16135} G2N400h +GHO2               =       GHN400u                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 16136} G2N400h +GNO3               =       G1N400n +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 16137} G2N400h +MEPERO             =  0.340G1N400n + 0.330GNK4006 + 0.330GNK400C                 : ARR( 0.565E-13,  -845., 0.0);
+{ 16138} G2N400h +PERO1              =  0.460G1N400n + 0.270GNK4006 + 0.270GNK400C                 : ARR( 0.434E-13,  -900., 0.0);
+{ 16139} G2N400h +PERO2              =  0.400G1N400n + 0.300GNK4006 + 0.300GNK400C                 : ARR( 0.162E-13, -1400., 0.0);
+{ 16140} G2N400h +PERO3              =  0.460G1N400n + 0.270GNK4006 + 0.270GNK400C                 : ARR( 0.488E-13, -1250., 0.0);
+{ 16141} G2N400h +PERO5              =  0.460G1N400n + 0.270GNK4006 + 0.270GNK400C                 : ARR( 0.183E-11,   450., 0.0);
+{ 16142} G2N400h +PERO6              =  0.300G1N400n + 0.350GNK4006 + 0.350GNK400C                 : ARR( 0.168E-13, -1300., 0.0);
+{ 16143} G2N400h +PERO9              =  0.650G1N400n + 0.350GNK400C                                : ARR( 0.100E-10,     0., 0.0);
+{ 16144} G1N400n                     =       GDO2000 +      G3N2000                                : ARR( 0.200E+15,  2950., 0.0);
+{ 16145} GNO400B +GHO                =       GND400F +      GHO2                                   : ARR( 0.414E-11,     0., 0.0);
+{ 16146} GNO400B +GHO                =       GNK4005 +      GHO2                                   : ARR( 0.106E-10,     0., 0.0);
+{ 16147} GNO400B +GHO                =       GNK4006 +      GHO2                                   : ARR( 0.212E-11,     0., 0.0);
+{ 16148} GNO400B+HV               =       G1O400B +      GNO2                                   :  0.100E+01*SUN;
+{ 16149} GNK4005 +GHO                =       GND400G +      GHO2                                   : ARR( 0.273E-11,     0., 0.0);
+{ 16150} GNK4005 +GHO                =       GNK400C +      GHO2                                   : ARR( 0.140E-11,     0., 0.0);
+{ 16151} GNK4005+HV               =       G3K2001 +      GND2000 +      GHO2                    :  0.100E+01*SUN;
+{ 16152} GNK4005+HV               =       G1K400B +      GNO2                                   :  0.100E+01*SUN;
+{ 16153} GOO4005 +GHO                =       GDO4006 +      GHO2                                   : ARR( 0.820E-11,     0., 0.0);
+{ 16154} GOO4005 +GHO                =       GKO4004 +      GHO2                                   : ARR( 0.210E-10,     0., 0.0);
+{ 16155} GKO4004 +GHO                =       GDK4006 +      GHO2                                   : ARR( 0.130E-10,     0., 0.0);
+{ 16156} GKO4004 +GHO                =       GKK4001 +      GHO2                                   : ARR( 0.641E-11,     0., 0.0);
+{ 16157} GKO4004 +GHO                =       GDK4007 +      GHO2                                   : ARR( 0.250E-11,     0., 0.0);
+{ 16158} GKO4004+HV               =       G3K3003 +      GCH2O   +      GHO2                    :  0.100E+01*SUN;
+{ 16159} GDK4005 +GHO                =       GDD4002 +      GHO2                                   : ARR( 0.133E-10,     0., 0.0);
+{ 16160} GDK4005 +GHO                =       G3K3001 +      GCO                                    : ARR( 0.132E-10,     0., 0.0);
+{ 16161} GDK4005 +GNO3               =       G3K3001 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 16162} GDK4005+HV               =       G3K3001 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 16163} GDK4005+HV               =       GDO3000 +      GCO                                    :  0.100E+01*SUN;
+{ 16164} GDK4005+HV               =       GO02000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 16165} GDO4006 +GHO                =       GDD4003 +      GHO2                                   : ARR( 0.405E-11,     0., 0.0);
+{ 16166} GDO4006 +GHO                =       GDK4006 +      GHO2                                   : ARR( 0.329E-10,     0., 0.0);
+{ 16167} GDO4006 +GHO                =       GDK4007 +      GHO2                                   : ARR( 0.632E-11,     0., 0.0);
+{ 16168} GDO4006 +GHO                =       G3K400B                                               : ARR( 0.209E-10,     0., 0.0);
+{ 16169} GDO4006 +GNO3               =       G3K400B +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 16170} GDO4006+HV               =       GDO3002 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 16171} G3K400B +GHO2               =  0.800GGO4006 + 0.200GAO4006 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 16172} G3K400B +GNO                =       GDO3002 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 16173} G3K400B +GNO2               =       GPO4006                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 16174} G3K400B +GNO3               =       GDO3002 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 16175} G3K400B +MEPERO             =  0.685GDO3002 + 0.315GAO4006 + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 16176} G3K400B +PERO1              =  0.800GDO3002 + 0.200GAO4006 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 16177} G3K400B +PERO2              =  0.750GDO3002 + 0.250GAO4006 + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 16178} G3K400B +PERO3              =  0.800GDO3002 + 0.200GAO4006 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 16179} G3K400B +PERO5              =  0.650GDO3002 + 0.350GAO4006 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 16180} G3K400B +PERO6              =  0.650GDO3002 + 0.350GAO4006 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 16181} G3K400B +PERO9              =       GDO3002 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 16182} GDK4006 +GHO                =       GDK4009 +      GHO2                                   : ARR( 0.398E-11,     0., 0.0);
+{ 16183} GDK4006 +GHO                =       G3K400C                                               : ARR( 0.685E-10,     0., 0.0);
+{ 16184} GDK4006 +GNO3               =       G3K400C +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 16185} GDK4006+HV               =       G3K2001 +      GDD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 16186} GDK4006+HV               =       GDK3001 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 16187} G3K400C +GHO2               =  0.800GGK4008 + 0.200GAK4008 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 16188} G3K400C +GNO                =       GDK3001 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 16189} G3K400C +GNO2               =       GPK4008                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 16190} G3K400C +GNO3               =       GDK3001 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 16191} G3K400C +MEPERO             =  0.685GDK3001 + 0.315GAK4008 + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 16192} G3K400C +PERO1              =  0.800GDK3001 + 0.200GAK4008 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 16193} G3K400C +PERO2              =  0.750GDK3001 + 0.250GAK4008 + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 16194} G3K400C +PERO3              =  0.800GDK3001 + 0.200GAK4008 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 16195} G3K400C +PERO5              =  0.650GDK3001 + 0.350GAK4008 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 16196} G3K400C +PERO6              =  0.650GDK3001 + 0.350GAK4008 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 16197} G3K400C +PERO9              =       GDK3001 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 16198} GGO4005 +GHO                =       GGD4002 +      GHO2                                   : ARR( 0.409E-11,     0., 0.0);
+{ 16199} GGO4005 +GHO                =       G2G400C                                               : ARR( 0.144E-11,     0., 0.0);
+{ 16200} GGO4005 +GHO                =       GGK4004 +      GHO2                                   : ARR( 0.640E-11,     0., 0.0);
+{ 16201} GGO4005 +GHO                =       G3K4006                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 16202} GGO4005+HV               =       GDO3000 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 16203} G2G400C +GNO                =       G1G400E +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 16204} G2G400C +GNO                =       GGN400K                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 16205} G2G400C +GHO2               =       GGH400G                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 16206} G2G400C +GNO3               =       G1G400E +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 16207} G2G400C +MEPERO             =  0.340G1G400E + 0.330GGO4006 + 0.330GGK4008                 : ARR( 0.565E-13,  -845., 0.0);
+{ 16208} G2G400C +PERO1              =  0.460G1G400E + 0.270GGO4006 + 0.270GGK4008                 : ARR( 0.434E-13,  -900., 0.0);
+{ 16209} G2G400C +PERO2              =  0.400G1G400E + 0.300GGO4006 + 0.300GGK4008                 : ARR( 0.162E-13, -1400., 0.0);
+{ 16210} G2G400C +PERO3              =  0.460G1G400E + 0.270GGO4006 + 0.270GGK4008                 : ARR( 0.488E-13, -1250., 0.0);
+{ 16211} G2G400C +PERO5              =  0.460G1G400E + 0.270GGO4006 + 0.270GGK4008                 : ARR( 0.183E-11,   450., 0.0);
+{ 16212} G2G400C +PERO6              =  0.300G1G400E + 0.350GGO4006 + 0.350GGK4008                 : ARR( 0.168E-13, -1300., 0.0);
+{ 16213} G2G400C +PERO9              =  0.650G1G400E + 0.350GGK4008                                : ARR( 0.100E-10,     0., 0.0);
+{ 16214} G1G400E                     =       GCH2O   +      GGD3001 +      GHO2                    : ARR( 0.200E+15,  4465., 0.0);
+{ 16215} G1G400E                     =       GDO2000 +      GGD2000 +      GHO2                    : ARR( 0.200E+15,  3989., 0.0);
+{ 16216} GAO4005 +GHO                =       GAD4002 +      GHO2                                   : ARR( 0.434E-11,     0., 0.0);
+{ 16217} GAO4005 +GHO                =       G2A400I                                               : ARR( 0.153E-11,     0., 0.0);
+{ 16218} GAO4005 +GHO                =       GAK4004 +      GHO2                                   : ARR( 0.502E-11,     0., 0.0);
+{ 16219} G2A400I +GNO                =       G1A400K +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 16220} G2A400I +GNO                =       GAN400K                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 16221} G2A400I +GHO2               =       GAH400J                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 16222} G2A400I +GNO3               =       G1A400K +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 16223} G2A400I +MEPERO             =  0.340G1A400K + 0.330GAO4006 + 0.330GAK4008                 : ARR( 0.565E-13,  -845., 0.0);
+{ 16224} G2A400I +PERO1              =  0.460G1A400K + 0.270GAO4006 + 0.270GAK4008                 : ARR( 0.434E-13,  -900., 0.0);
+{ 16225} G2A400I +PERO2              =  0.400G1A400K + 0.300GAO4006 + 0.300GAK4008                 : ARR( 0.162E-13, -1400., 0.0);
+{ 16226} G2A400I +PERO3              =  0.460G1A400K + 0.270GAO4006 + 0.270GAK4008                 : ARR( 0.488E-13, -1250., 0.0);
+{ 16227} G2A400I +PERO5              =  0.460G1A400K + 0.270GAO4006 + 0.270GAK4008                 : ARR( 0.183E-11,   450., 0.0);
+{ 16228} G2A400I +PERO6              =  0.300G1A400K + 0.350GAO4006 + 0.350GAK4008                 : ARR( 0.168E-13, -1300., 0.0);
+{ 16229} G2A400I +PERO9              =  0.650G1A400K + 0.350GAK4008                                : ARR( 0.100E-10,     0., 0.0);
+{ 16230} G1A400K                     =       GCH2O   +      GAD3001 +      GHO2                    : ARR( 0.200E+15,  4465., 0.0);
+{ 16231} G1A400K                     =       GDO2000 +      GAD2000 +      GHO2                    : ARR( 0.200E+15,  3989., 0.0);
+{ 16232} GPO4005                     =       G3K4006 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 16233} GPO4005 +GHO                =       GPD4002 +      GHO2                                   : ARR( 0.412E-11,     0., 0.0);
+{ 16234} GPO4005 +GHO                =       G2P400K                                               : ARR( 0.145E-11,     0., 0.0);
+{ 16235} GPO4005 +GHO                =       GPK4004 +      GHO2                                   : ARR( 0.643E-11,     0., 0.0);
+{ 16236} GPO4005+HV               =       G3K4006 +      GNO2                                   :  0.100E+01*SUN;
+{ 16237} G2P400K +GNO                =       G1P400L +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 16238} G2P400K +GNO                =       GPN400K                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 16239} G2P400K +GHO2               =       GPH400L                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 16240} G2P400K +GNO3               =       G1P400L +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 16241} G2P400K +MEPERO             =  0.340G1P400L + 0.330GPO4006 + 0.330GPK4008                 : ARR( 0.565E-13,  -845., 0.0);
+{ 16242} G2P400K +PERO1              =  0.460G1P400L + 0.270GPO4006 + 0.270GPK4008                 : ARR( 0.434E-13,  -900., 0.0);
+{ 16243} G2P400K +PERO2              =  0.400G1P400L + 0.300GPO4006 + 0.300GPK4008                 : ARR( 0.162E-13, -1400., 0.0);
+{ 16244} G2P400K +PERO3              =  0.460G1P400L + 0.270GPO4006 + 0.270GPK4008                 : ARR( 0.488E-13, -1250., 0.0);
+{ 16245} G2P400K +PERO5              =  0.460G1P400L + 0.270GPO4006 + 0.270GPK4008                 : ARR( 0.183E-11,   450., 0.0);
+{ 16246} G2P400K +PERO6              =  0.300G1P400L + 0.350GPO4006 + 0.350GPK4008                 : ARR( 0.168E-13, -1300., 0.0);
+{ 16247} G2P400K +PERO9              =  0.650G1P400L + 0.350GPK4008                                : ARR( 0.100E-10,     0., 0.0);
+{ 16248} G1P400L                     =       GCH2O   +      GPD3001 +      GHO2                    : ARR( 0.200E+15,  4465., 0.0);
+{ 16249} G1P400L                     =       GDO2000 +      GPD2000 +      GHO2                    : ARR( 0.200E+15,  3989., 0.0);
+{ 16250} GNN501C +GHO                =       GNN501l +      GNO2                                   : ARR( 0.184E-13,     0., 0.0);
+{ 16251} GNN501C +GHO                =       GNN501D +      GNO2                                   : ARR( 0.471E-13,     0., 0.0);
+{ 16252} GNN501C +GHO                =       G2N503f                                               : ARR( 0.565E-13,     0., 0.0);
+{ 16253} GNN501C+HV               =       G1N5026 +      GNO2                                   :  0.200E+01*SUN;
+{ 16254} GNN501C+HV               =       G1N501b +      GNO2                                   :  0.200E+01*SUN;
+{ 16255} G2N503f +GNO                =       G1N5047 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 16256} G2N503f +GNO                =       GNN502d                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 16257} G2N503f +GHO2               =       GHN504h                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 16258} G2N503f +GNO3               =       G1N5047 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 16259} G2N503f +MEPERO             =  0.340G1N5047 + 0.330GNN502e + 0.330GNN502f                 : ARR( 0.565E-13,  -845., 0.0);
+{ 16260} G2N503f +PERO1              =  0.460G1N5047 + 0.270GNN502e + 0.270GNN502f                 : ARR( 0.434E-13,  -900., 0.0);
+{ 16261} G2N503f +PERO2              =  0.400G1N5047 + 0.300GNN502e + 0.300GNN502f                 : ARR( 0.162E-13, -1400., 0.0);
+{ 16262} G2N503f +PERO3              =  0.460G1N5047 + 0.270GNN502e + 0.270GNN502f                 : ARR( 0.488E-13, -1250., 0.0);
+{ 16263} G2N503f +PERO5              =  0.460G1N5047 + 0.270GNN502e + 0.270GNN502f                 : ARR( 0.183E-11,   450., 0.0);
+{ 16264} G2N503f +PERO6              =  0.300G1N5047 + 0.350GNN502e + 0.350GNN502f                 : ARR( 0.168E-13, -1300., 0.0);
+{ 16265} G2N503f +PERO9              =  0.650G1N5047 + 0.350GNN502f                                : ARR( 0.100E-10,     0., 0.0);
+{ 16266} G1N5047                     =       GND2000 +      GNN3005 +      GNO2                    : ARR( 0.400E+15,  6323., 0.0);
+{ 16267} GHN501u +GHO                =       GNN501D +      GHO                                    : ARR( 0.849E-11,     0., 0.0);
+{ 16268} GHN501u +GHO                =       G2N501X                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 16269} GHN501u+HV               =       G1H503Q +      GNO2                                   :  0.100E+01*SUN;
+{ 16270} GHN501u+HV               =       G1H503R +      GNO2                                   :  0.100E+01*SUN;
+{ 16271} GHN501u+HV               =       G1N501b +      GHO                                    :  0.100E+01*SUN;
+{ 16272} GHN501u+HV               =       G1H503S +      GNO2                                   :  0.100E+01*SUN;
+{ 16273} G1H503Q                     =       GNN500T +      GHO                                    : ARR( 0.800E+11,  2398., 0.0);
+{ 16274} G1H503R                     =       GHN5021 +      GNO2                                   : ARR( 0.160E+12,  4531., 0.0);
+{ 16275} G1H503R                     =       G2H3001 +      GND2000                                : ARR( 0.200E+15,  6983., 0.0);
+{ 16276} G1H503S +OXYGEN             =       GHN503Y +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 16277} G1H503S                     =       GHN5013 +      GNO2                                   : ARR( 0.800E+11,  4743., 0.0);
+{ 16278} G1H503S                     =       GNN4001 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  6008., 0.0);
+{ 16279} GNN501D +GHO                =       GNN501t +      GNO2                                   : ARR( 0.290E-13,     0., 0.0);
+{ 16280} GNN501D +GHO                =       G2N503g                                               : ARR( 0.178E-12,     0., 0.0);
+{ 16281} GNN501D +GHO                =       GNN501I +      GNO2                                   : ARR( 0.772E-13,     0., 0.0);
+{ 16282} GNN501D+HV               =       G1N502Q +      GNO2                                   :  0.100E+01*SUN;
+{ 16283} GNN501D+HV               =       G3N2000 +      G2N3004                                :  0.100E+01*SUN;
+{ 16284} GNN501D+HV               =       GNK3000 +      GDD2000 + 2.000GNO2                    :  0.100E+01*SUN;
+{ 16285} GNN501D+HV               =       G1N501f +      GNO2                                   :  0.100E+01*SUN;
+{ 16286} GNN501D+HV               =       G1N502A +      GNO2                                   :  0.100E+01*SUN;
+{ 16287} G2N503g +GNO                =       G1N5048 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 16288} G2N503g +GNO                =       GNN502g                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 16289} G2N503g +GHO2               =       GHN504i                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 16290} G2N503g +GNO3               =       G1N5048 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 16291} G2N503g +MEPERO             =  0.340G1N5048 + 0.330GNN502h + 0.330GNN502i                 : ARR( 0.565E-13,  -845., 0.0);
+{ 16292} G2N503g +PERO1              =  0.460G1N5048 + 0.270GNN502h + 0.270GNN502i                 : ARR( 0.434E-13,  -900., 0.0);
+{ 16293} G2N503g +PERO2              =  0.400G1N5048 + 0.300GNN502h + 0.300GNN502i                 : ARR( 0.162E-13, -1400., 0.0);
+{ 16294} G2N503g +PERO3              =  0.460G1N5048 + 0.270GNN502h + 0.270GNN502i                 : ARR( 0.488E-13, -1250., 0.0);
+{ 16295} G2N503g +PERO5              =  0.460G1N5048 + 0.270GNN502h + 0.270GNN502i                 : ARR( 0.183E-11,   450., 0.0);
+{ 16296} G2N503g +PERO6              =  0.300G1N5048 + 0.350GNN502h + 0.350GNN502i                 : ARR( 0.168E-13, -1300., 0.0);
+{ 16297} G2N503g +PERO9              =  0.650G1N5048 + 0.350GNN502i                                : ARR( 0.100E-10,     0., 0.0);
+{ 16298} G1N5048                     =       GNN3005 +      G3N2000                                : ARR( 0.200E+15,  2890., 0.0);
+{ 16299} GNN501E +GHO                =       GNN5025 +      GNO2                                   : ARR( 0.476E-13,     0., 0.0);
+{ 16300} GNN501E +GHO                =       G2N503h                                               : ARR( 0.585E-13,     0., 0.0);
+{ 16301} GNN501E +GHO                =       GNN501G +      GNO2                                   : ARR( 0.244E-13,     0., 0.0);
+{ 16302} GNN501E +GHO                =       GNN501U +      GNO2                                   : ARR( 0.951E-14,     0., 0.0);
+{ 16303} GNN501E+HV               =       G1N502Z +      GNO2                                   :  0.100E+01*SUN;
+{ 16304} GNN501E+HV               =       G1N501c +      GNO2                                   :  0.100E+01*SUN;
+{ 16305} GNN501E+HV               =       G1N501h +      GNO2                                   :  0.100E+01*SUN;
+{ 16306} GNN501E+HV               =       G1N501x +      GNO2                                   :  0.100E+01*SUN;
+{ 16307} G2N503h +GNO                =       G1N5049 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 16308} G2N503h +GNO                =       GNN502d                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 16309} G2N503h +GHO2               =       GHN504j                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 16310} G2N503h +GNO3               =       G1N5049 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 16311} G2N503h +MEPERO             =  0.340G1N5049 + 0.330GNN501c + 0.330GNN502g                 : ARR( 0.565E-13,  -845., 0.0);
+{ 16312} G2N503h +PERO1              =  0.460G1N5049 + 0.270GNN501c + 0.270GNN502g                 : ARR( 0.434E-13,  -900., 0.0);
+{ 16313} G2N503h +PERO2              =  0.400G1N5049 + 0.300GNN501c + 0.300GNN502g                 : ARR( 0.162E-13, -1400., 0.0);
+{ 16314} G2N503h +PERO3              =  0.460G1N5049 + 0.270GNN501c + 0.270GNN502g                 : ARR( 0.488E-13, -1250., 0.0);
+{ 16315} G2N503h +PERO5              =  0.460G1N5049 + 0.270GNN501c + 0.270GNN502g                 : ARR( 0.183E-11,   450., 0.0);
+{ 16316} G2N503h +PERO6              =  0.300G1N5049 + 0.350GNN501c + 0.350GNN502g                 : ARR( 0.168E-13, -1300., 0.0);
+{ 16317} G2N503h +PERO9              =  0.650G1N5049 + 0.350GNN502g                                : ARR( 0.100E-10,     0., 0.0);
+{ 16318} G1N5049                     =       GNN501d +      GNO2                                   : ARR( 0.160E+12,  5251., 0.0);
+{ 16319} G1N5049                     =       GNN3005 +      GND2000 +      GNO2                    : ARR( 0.200E+15,  6232., 0.0);
+{ 16320} GHN501v +GHO                =       GNN501G +      GHO                                    : ARR( 0.849E-11,     0., 0.0);
+{ 16321} GHN501v +GHO                =       G2N501Y                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 16322} GHN501v+HV               =       G1H503T +      GNO2                                   :  0.100E+01*SUN;
+{ 16323} GHN501v+HV               =       G1H503U +      GNO2                                   :  0.100E+01*SUN;
+{ 16324} GHN501v+HV               =       G1N501c +      GHO                                    :  0.100E+01*SUN;
+{ 16325} GHN501v+HV               =       G1H503W +      GNO2                                   :  0.100E+01*SUN;
+{ 16326} G1H503T +OXYGEN             =       GHN504k +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 16327} G1H503T                     =       G2H501i                                               : ARR( 0.160E+12,  3719., 0.0);
+{ 16328} G1H503U                     =       GND3000 +      GND2000 +      GHO                     : ARR( 0.200E+15,  5198., 0.0);
+{ 16329} G1H503W +OXYGEN             =       GHN504l +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{ 16330} G1H503W                     =       GHN5014 +      GNO2                                   : ARR( 0.800E+11,  4743., 0.0);
+{ 16331} G2H501i +GNO                =       G1H503X +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 16332} G2H501i +GNO                =       GHN504m                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 16333} G2H501i +GHO2               =       GHH501e                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 16334} G2H501i +GNO3               =       G1H503X +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 16335} G2H501i +MEPERO             =  0.340G1H503X + 0.330GHN502i + 0.330GHN502j                 : ARR( 0.565E-13,  -845., 0.0);
+{ 16336} G2H501i +PERO1              =  0.460G1H503X + 0.270GHN502i + 0.270GHN502j                 : ARR( 0.434E-13,  -900., 0.0);
+{ 16337} G2H501i +PERO2              =  0.400G1H503X + 0.300GHN502i + 0.300GHN502j                 : ARR( 0.162E-13, -1400., 0.0);
+{ 16338} G2H501i +PERO3              =  0.460G1H503X + 0.270GHN502i + 0.270GHN502j                 : ARR( 0.488E-13, -1250., 0.0);
+{ 16339} G2H501i +PERO5              =  0.460G1H503X + 0.270GHN502i + 0.270GHN502j                 : ARR( 0.183E-11,   450., 0.0);
+{ 16340} G2H501i +PERO6              =  0.300G1H503X + 0.350GHN502i + 0.350GHN502j                 : ARR( 0.168E-13, -1300., 0.0);
+{ 16341} G2H501i +PERO9              =  0.650G1H503X + 0.350GHN502j                                : ARR( 0.100E-10,     0., 0.0);
+{ 16342} G1H503X                     =       GHN504n +      GHO2                                   : ARR( 0.160E+12,  3252., 0.0);
+{ 16343} G1H503X                     =       GND3004 +      GND2000 +      GHO                     : ARR( 0.200E+15,  4693., 0.0);
+{ 16344} GNN501F +GHO                =       G2N503i                                               : ARR( 0.292E-12,     0., 0.0);
+{ 16345} GNN501F +GHO                =       GNN501G +      GHO2                                   : ARR( 0.213E-11,     0., 0.0);
+{ 16346} GNN501F +GHO                =       G1N501c                                               : ARR( 0.217E-17,    85., 2.0);
+{ 16347} GNN501F+HV               =       G1N504A +      GNO2                                   :  0.100E+01*SUN;
+{ 16348} GNN501F+HV               =       G1N501j +      GNO2                                   :  0.100E+01*SUN;
+{ 16349} GNN501F+HV               =       G1N504B +      GNO2                                   :  0.100E+01*SUN;
+{ 16350} G2N503i +GNO                =       G1N504C +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 16351} G2N503i +GNO                =       GNN502e                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 16352} G2N503i +GHO2               =       GHN504o                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 16353} G2N503i +GNO3               =       G1N504C +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 16354} G2N503i +MEPERO             =  0.340G1N504C + 0.330GNN501n + 0.330GNN502h                 : ARR( 0.565E-13,  -845., 0.0);
+{ 16355} G2N503i +PERO1              =  0.460G1N504C + 0.270GNN501n + 0.270GNN502h                 : ARR( 0.434E-13,  -900., 0.0);
+{ 16356} G2N503i +PERO2              =  0.400G1N504C + 0.300GNN501n + 0.300GNN502h                 : ARR( 0.162E-13, -1400., 0.0);
+{ 16357} G2N503i +PERO3              =  0.460G1N504C + 0.270GNN501n + 0.270GNN502h                 : ARR( 0.488E-13, -1250., 0.0);
+{ 16358} G2N503i +PERO5              =  0.460G1N504C + 0.270GNN501n + 0.270GNN502h                 : ARR( 0.183E-11,   450., 0.0);
+{ 16359} G2N503i +PERO6              =  0.300G1N504C + 0.350GNN501n + 0.350GNN502h                 : ARR( 0.168E-13, -1300., 0.0);
+{ 16360} G2N503i +PERO9              =  0.650G1N504C + 0.350GNN502h                                : ARR( 0.100E-10,     0., 0.0);
+{ 16361} G1N504A +OXYGEN             =       GNN502j +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{ 16362} G1N504A                     =       GNK500R +      GNO2                                   : ARR( 0.800E+11,  4743., 0.0);
+{ 16363} G1N504B +OXYGEN             =       GNN502k +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 16364} G1N504B                     =       G2N503j                                               : ARR( 0.160E+12,  3719., 0.0);
+{ 16365} G1N504C                     =       GNN3005 +      GND2000 +      GHO2                    : ARR( 0.200E+15,  3484., 0.0);
+{ 16366} G2N503j +GNO                =       G1N504D +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 16367} G2N503j +GNO                =       GNN502l                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 16368} G2N503j +GHO2               =       GHN503g                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 16369} G2N503j +GNO3               =       G1N504D +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 16370} G2N503j +MEPERO             =  0.340G1N504D + 0.330GNN501p + 0.330GNN501r                 : ARR( 0.565E-13,  -845., 0.0);
+{ 16371} G2N503j +PERO1              =  0.460G1N504D + 0.270GNN501p + 0.270GNN501r                 : ARR( 0.434E-13,  -900., 0.0);
+{ 16372} G2N503j +PERO2              =  0.400G1N504D + 0.300GNN501p + 0.300GNN501r                 : ARR( 0.162E-13, -1400., 0.0);
+{ 16373} G2N503j +PERO3              =  0.460G1N504D + 0.270GNN501p + 0.270GNN501r                 : ARR( 0.488E-13, -1250., 0.0);
+{ 16374} G2N503j +PERO5              =  0.460G1N504D + 0.270GNN501p + 0.270GNN501r                 : ARR( 0.183E-11,   450., 0.0);
+{ 16375} G2N503j +PERO6              =  0.300G1N504D + 0.350GNN501p + 0.350GNN501r                 : ARR( 0.168E-13, -1300., 0.0);
+{ 16376} G2N503j +PERO9              =  0.650G1N504D + 0.350GNN501r                                : ARR( 0.100E-10,     0., 0.0);
+{ 16377} G1N504D                     =       GND3004 +      GND2000 +      GHO2                    : ARR( 0.200E+15,  3484., 0.0);
+{ 16378} GNN501G +GHO                =       GNN502K +      GNO2                                   : ARR( 0.156E-12,     0., 0.0);
+{ 16379} GNN501G +GHO                =       G2N503k                                               : ARR( 0.185E-12,     0., 0.0);
+{ 16380} GNN501G+HV               =       G1N502q +      GNO2                                   :  0.100E+01*SUN;
+{ 16381} GNN501G+HV               =       G3N3000 +      GND2000 +      GNO2                    :  0.100E+01*SUN;
+{ 16382} GNN501G+HV               =       G1N501l +      GNO2                                   :  0.100E+01*SUN;
+{ 16383} GNN501G+HV               =       G1N5024 +      GNO2                                   :  0.100E+01*SUN;
+{ 16384} G2N503k +GNO                =       G1N504E +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 16385} G2N503k +GNO                =       GNN502f                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 16386} G2N503k +GHO2               =       GHN504p                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 16387} G2N503k +GNO3               =       G1N504E +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 16388} G2N503k +MEPERO             =  0.340G1N504E + 0.330GNN501o + 0.330GNN502i                 : ARR( 0.565E-13,  -845., 0.0);
+{ 16389} G2N503k +PERO1              =  0.460G1N504E + 0.270GNN501o + 0.270GNN502i                 : ARR( 0.434E-13,  -900., 0.0);
+{ 16390} G2N503k +PERO2              =  0.400G1N504E + 0.300GNN501o + 0.300GNN502i                 : ARR( 0.162E-13, -1400., 0.0);
+{ 16391} G2N503k +PERO3              =  0.460G1N504E + 0.270GNN501o + 0.270GNN502i                 : ARR( 0.488E-13, -1250., 0.0);
+{ 16392} G2N503k +PERO5              =  0.460G1N504E + 0.270GNN501o + 0.270GNN502i                 : ARR( 0.183E-11,   450., 0.0);
+{ 16393} G2N503k +PERO6              =  0.300G1N504E + 0.350GNN501o + 0.350GNN502i                 : ARR( 0.168E-13, -1300., 0.0);
+{ 16394} G2N503k +PERO9              =  0.650G1N504E + 0.350GNN502i                                : ARR( 0.100E-10,     0., 0.0);
+{ 16395} G1N504E                     =       G3N3003 +      GND2000                                : ARR( 0.200E+15,  3067., 0.0);
+{ 16396} GNN501H +GHO                =       G2N503l                                               : ARR( 0.290E-12,     0., 0.0);
+{ 16397} GNN501H +GHO                =       G2N503m                                               : ARR( 0.290E-12,     0., 0.0);
+{ 16398} GNN501H +GHO                =       G3N500a                                               : ARR( 0.426E-11,     0., 0.0);
+{ 16399} GNN501H +GNO3               =       G3N500a +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 16400} GNN501H+HV               =       G1N504F +      GNO2                                   :  0.100E+01*SUN;
+{ 16401} GNN501H+HV               =       G1N504G +      GNO2                                   :  0.100E+01*SUN;
+{ 16402} GNN501H+HV               =       GND4001 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 16403} GNN501H+HV               =       GNU3000 +      GND2000                                :  0.100E+01*SUN;
+{ 16404} G2N503l +GNO                =       G1N504H +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 16405} G2N503l +GNO                =       GNN501l                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 16406} G2N503l +GHO2               =       GHN503b                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 16407} G2N503l +GNO3               =       G1N504H +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 16408} G2N503l +MEPERO             =  0.340G1N504H + 0.330GNN500S + 0.330GNN501m                 : ARR( 0.565E-13,  -845., 0.0);
+{ 16409} G2N503l +PERO1              =  0.460G1N504H + 0.270GNN500S + 0.270GNN501m                 : ARR( 0.434E-13,  -900., 0.0);
+{ 16410} G2N503l +PERO2              =  0.400G1N504H + 0.300GNN500S + 0.300GNN501m                 : ARR( 0.162E-13, -1400., 0.0);
+{ 16411} G2N503l +PERO3              =  0.460G1N504H + 0.270GNN500S + 0.270GNN501m                 : ARR( 0.488E-13, -1250., 0.0);
+{ 16412} G2N503l +PERO5              =  0.460G1N504H + 0.270GNN500S + 0.270GNN501m                 : ARR( 0.183E-11,   450., 0.0);
+{ 16413} G2N503l +PERO6              =  0.300G1N504H + 0.350GNN500S + 0.350GNN501m                 : ARR( 0.168E-13, -1300., 0.0);
+{ 16414} G2N503l +PERO9              =  0.650G1N504H + 0.350GNN501m                                : ARR( 0.100E-10,     0., 0.0);
+{ 16415} G2N503m +GNO                =       G1N504I +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 16416} G2N503m +GNO                =       GNN501U                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 16417} G2N503m +GHO2               =       GHN504k                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 16418} G2N503m +GNO3               =       G1N504I +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 16419} G2N503m +MEPERO             =  0.340G1N504I + 0.330GNN502k + 0.330GNN501h                 : ARR( 0.565E-13,  -845., 0.0);
+{ 16420} G2N503m +PERO1              =  0.460G1N504I + 0.270GNN502k + 0.270GNN501h                 : ARR( 0.434E-13,  -900., 0.0);
+{ 16421} G2N503m +PERO2              =  0.400G1N504I + 0.300GNN502k + 0.300GNN501h                 : ARR( 0.162E-13, -1400., 0.0);
+{ 16422} G2N503m +PERO3              =  0.460G1N504I + 0.270GNN502k + 0.270GNN501h                 : ARR( 0.488E-13, -1250., 0.0);
+{ 16423} G2N503m +PERO5              =  0.460G1N504I + 0.270GNN502k + 0.270GNN501h                 : ARR( 0.183E-11,   450., 0.0);
+{ 16424} G2N503m +PERO6              =  0.300G1N504I + 0.350GNN502k + 0.350GNN501h                 : ARR( 0.168E-13, -1300., 0.0);
+{ 16425} G2N503m +PERO9              =  0.650G1N504I + 0.350GNN501h                                : ARR( 0.100E-10,     0., 0.0);
+{ 16426} G3N500a +GHO2               =  0.800GGN500A + 0.200GAN500A + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 16427} G3N500a +GNO                =       GND4001 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 16428} G3N500a +GNO2               =       GPN500C                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 16429} G3N500a +GNO3               =       GND4001 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 16430} G3N500a +MEPERO             =  0.685GND4001 + 0.315GAN500A + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 16431} G3N500a +PERO1              =  0.800GND4001 + 0.200GAN500A + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 16432} G3N500a +PERO2              =  0.750GND4001 + 0.250GAN500A + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 16433} G3N500a +PERO3              =  0.800GND4001 + 0.200GAN500A + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 16434} G3N500a +PERO5              =  0.650GND4001 + 0.350GAN500A + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 16435} G3N500a +PERO6              =  0.650GND4001 + 0.350GAN500A + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 16436} G3N500a +PERO9              =       GND4001 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 16437} G1N504F +OXYGEN             =       GND500d +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{ 16438} G1N504F                     =       GDK5004 +      GNO2                                   : ARR( 0.800E+11,  4245., 0.0);
+{ 16439} G1N504G                     =       GND4001 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5437., 0.0);
+{ 16440} G1N504H                     =       G3N500A                                               : ARR( 0.800E+11,  5278., 0.0);
+{ 16441} G1N504H                     =       GND2000 +      G2N300A                                : ARR( 0.200E+15,  7116., 0.0);
+{ 16442} G1N504I                     =       G2N2000 +      GND3005                                : ARR( 0.200E+15,  6244., 0.0);
+{ 16443} G1N504I                     =       GND3000 +      GDD2000 +      GNO2                    : ARR( 0.200E+15,  6201., 0.0);
+{ 16444} GHN501w +GHO                =       GNN501J +      GHO                                    : ARR( 0.173E-11,     0., 0.0);
+{ 16445} GHN501w +GHO                =       G2N501c                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 16446} GHN501w+HV               =       G1H503Y +      GNO2                                   :  0.100E+01*SUN;
+{ 16447} GHN501w+HV               =       G1H500k +      GNO2                                   :  0.100E+01*SUN;
+{ 16448} GHN501w+HV               =       G1N501h +      GHO                                    :  0.100E+01*SUN;
+{ 16449} GHN501w+HV               =       G1H503Z +      GNO2                                   :  0.100E+01*SUN;
+{ 16450} G1H503Y +OXYGEN             =       GHN5034 +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{ 16451} G1H503Y                     =       GNN500d +      GHO                                    : ARR( 0.800E+11,  3117., 0.0);
+{ 16452} G1H503Z                     =       G2H501j                                               : ARR( 0.160E+12,  4439., 0.0);
+{ 16453} G1H503Z                     =       GNN4008 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{ 16454} G2H501j +GNO                =       G1H503a +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 16455} G2H501j +GNO                =       GHN5032                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 16456} G2H501j +GHO2               =       GHH501f                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 16457} G2H501j +GNO3               =       G1H503a +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 16458} G2H501j +MEPERO             =  0.340G1H503a + 0.330GHN5038 + 0.330GHN5039                 : ARR( 0.565E-13,  -845., 0.0);
+{ 16459} G2H501j +PERO1              =  0.460G1H503a + 0.270GHN5038 + 0.270GHN5039                 : ARR( 0.434E-13,  -900., 0.0);
+{ 16460} G2H501j +PERO2              =  0.400G1H503a + 0.300GHN5038 + 0.300GHN5039                 : ARR( 0.162E-13, -1400., 0.0);
+{ 16461} G2H501j +PERO3              =  0.460G1H503a + 0.270GHN5038 + 0.270GHN5039                 : ARR( 0.488E-13, -1250., 0.0);
+{ 16462} G2H501j +PERO5              =  0.460G1H503a + 0.270GHN5038 + 0.270GHN5039                 : ARR( 0.183E-11,   450., 0.0);
+{ 16463} G2H501j +PERO6              =  0.300G1H503a + 0.350GHN5038 + 0.350GHN5039                 : ARR( 0.168E-13, -1300., 0.0);
+{ 16464} G2H501j +PERO9              =  0.650G1H503a + 0.350GHN5039                                : ARR( 0.100E-10,     0., 0.0);
+{ 16465} G1H503a                     =       GHN504q +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{ 16466} GHH500U +GHO                =       GHN501y +      GHO                                    : ARR( 0.415E-10,     0., 0.0);
+{ 16467} GHH500U +GHO                =       GHN5023 +      GHO                                    : ARR( 0.830E-11,     0., 0.0);
+{ 16468} GHH500U +GHO                =       G2H500X                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 16469} GHH500U +GHO                =       G2H501k                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 16470} GHH500U+HV               =       G1H503b +      GNO2                                   :  0.100E+01*SUN;
+{ 16471} GHH500U+HV               =       G1H500k +      GHO                                    :  0.100E+01*SUN;
+{ 16472} GHH500U+HV               =       G1H503U +      GHO                                    :  0.100E+01*SUN;
+{ 16473} GHH500U+HV               =       G1H503c +      GNO2                                   :  0.100E+01*SUN;
+{ 16474} G2H501k +GNO                =       G1H503U +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 16475} G2H501k +GNO                =       GHN501v                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 16476} G2H501k +GHO2               =       GHH500U                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 16477} G2H501k +GNO3               =       G1H503U +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 16478} G2H501k +MEPERO             =  0.340G1H503U + 0.330GHN5016 + 0.330GHN5023                 : ARR( 0.565E-13,  -845., 0.0);
+{ 16479} G2H501k +PERO1              =  0.460G1H503U + 0.270GHN5016 + 0.270GHN5023                 : ARR( 0.434E-13,  -900., 0.0);
+{ 16480} G2H501k +PERO2              =  0.400G1H503U + 0.300GHN5016 + 0.300GHN5023                 : ARR( 0.162E-13, -1400., 0.0);
+{ 16481} G2H501k +PERO3              =  0.460G1H503U + 0.270GHN5016 + 0.270GHN5023                 : ARR( 0.488E-13, -1250., 0.0);
+{ 16482} G2H501k +PERO5              =  0.460G1H503U + 0.270GHN5016 + 0.270GHN5023                 : ARR( 0.183E-11,   450., 0.0);
+{ 16483} G2H501k +PERO6              =  0.300G1H503U + 0.350GHN5016 + 0.350GHN5023                 : ARR( 0.168E-13, -1300., 0.0);
+{ 16484} G2H501k +PERO9              =  0.650G1H503U + 0.350GHN5023                                : ARR( 0.100E-10,     0., 0.0);
+{ 16485} G1H503b                     =       GHN5014 +      GHO                                    : ARR( 0.800E+11,  2398., 0.0);
+{ 16486} G1H503c                     =       G2H501l                                               : ARR( 0.160E+12,  3719., 0.0);
+{ 16487} G1H503c                     =       GHN400J +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{ 16488} G2H501l +GNO                =       G1H503d +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 16489} G2H501l +GNO                =       GHH501g                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 16490} G2H501l +GHO2               =       GHH501h                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 16491} G2H501l +GNO3               =       G1H503d +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 16492} G2H501l +MEPERO             =  0.340G1H503d + 0.330GHH501i + 0.330GHH501B                 : ARR( 0.565E-13,  -845., 0.0);
+{ 16493} G2H501l +PERO1              =  0.460G1H503d + 0.270GHH501i + 0.270GHH501B                 : ARR( 0.434E-13,  -900., 0.0);
+{ 16494} G2H501l +PERO2              =  0.400G1H503d + 0.300GHH501i + 0.300GHH501B                 : ARR( 0.162E-13, -1400., 0.0);
+{ 16495} G2H501l +PERO3              =  0.460G1H503d + 0.270GHH501i + 0.270GHH501B                 : ARR( 0.488E-13, -1250., 0.0);
+{ 16496} G2H501l +PERO5              =  0.460G1H503d + 0.270GHH501i + 0.270GHH501B                 : ARR( 0.183E-11,   450., 0.0);
+{ 16497} G2H501l +PERO6              =  0.300G1H503d + 0.350GHH501i + 0.350GHH501B                 : ARR( 0.168E-13, -1300., 0.0);
+{ 16498} G2H501l +PERO9              =  0.650G1H503d + 0.350GHH501B                                : ARR( 0.100E-10,     0., 0.0);
+{ 16499} G1H503d                     =       GHH501j +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{ 16500} G1H503d                     =       GHD3003 +      GND2000 +      GHO                     : ARR( 0.200E+15,  4693., 0.0);
+{ 16501} GHN501x +GHO                =       GHN501y +      GHO2                                   : ARR( 0.105E-10,     0., 0.0);
+{ 16502} GHN501x +GHO                =       GNN501K +      GHO                                    : ARR( 0.843E-11,     0., 0.0);
+{ 16503} GHN501x +GHO                =       G2N501d                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 16504} GHN501x+HV               =       G1H503e +      GNO2                                   :  0.100E+01*SUN;
+{ 16505} GHN501x+HV               =       G1N501j +      GHO                                    :  0.100E+01*SUN;
+{ 16506} GHN501x+HV               =       G1H503f +      GNO2                                   :  0.100E+01*SUN;
+{ 16507} G1H503e                     =       GNK500R +      GHO                                    : ARR( 0.800E+11,  2398., 0.0);
+{ 16508} G1H503f                     =       G2H501m                                               : ARR( 0.160E+12,  3719., 0.0);
+{ 16509} G1H503f                     =       GND400C +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{ 16510} G2H501m +GNO                =       G1H503g +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 16511} G2H501m +GNO                =       GHN504r                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 16512} G2H501m +GHO2               =       GHH5019                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 16513} G2H501m +GNO3               =       G1H503g +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 16514} G2H501m +MEPERO             =  0.340G1H503g + 0.330GHN503k + 0.330GHN503q                 : ARR( 0.565E-13,  -845., 0.0);
+{ 16515} G2H501m +PERO1              =  0.460G1H503g + 0.270GHN503k + 0.270GHN503q                 : ARR( 0.434E-13,  -900., 0.0);
+{ 16516} G2H501m +PERO2              =  0.400G1H503g + 0.300GHN503k + 0.300GHN503q                 : ARR( 0.162E-13, -1400., 0.0);
+{ 16517} G2H501m +PERO3              =  0.460G1H503g + 0.270GHN503k + 0.270GHN503q                 : ARR( 0.488E-13, -1250., 0.0);
+{ 16518} G2H501m +PERO5              =  0.460G1H503g + 0.270GHN503k + 0.270GHN503q                 : ARR( 0.183E-11,   450., 0.0);
+{ 16519} G2H501m +PERO6              =  0.300G1H503g + 0.350GHN503k + 0.350GHN503q                 : ARR( 0.168E-13, -1300., 0.0);
+{ 16520} G2H501m +PERO9              =  0.650G1H503g + 0.350GHN503q                                : ARR( 0.100E-10,     0., 0.0);
+{ 16521} G1H503g                     =       GHD3003 +      GND2000 +      GHO2                    : ARR( 0.200E+15,  3484., 0.0);
+{ 16522} GHN501y +GHO                =       GNN501L +      GHO                                    : ARR( 0.530E-11,     0., 0.0);
+{ 16523} GHN501y +GHO                =       G2N501f                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 16524} GHN501y+HV               =       G1H501R +      GNO2                                   :  0.100E+01*SUN;
+{ 16525} GHN501y+HV               =       G3N3000 +      GND2000 +      GHO                     :  0.100E+01*SUN;
+{ 16526} GHN501y+HV               =       G1N501l +      GHO                                    :  0.100E+01*SUN;
+{ 16527} GHN501y+HV               =       G1H503h +      GNO2                                   :  0.100E+01*SUN;
+{ 16528} G1H503h +OXYGEN             =       GHN504s +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 16529} G1H503h                     =       GND400B +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5784., 0.0);
+{ 16530} GHN501z +GHO                =       G2H501n                                               : ARR( 0.451E-11,     0., 0.0);
+{ 16531} GHN501z +GHO                =       GND5009 +      GHO                                    : ARR( 0.253E-10,     0., 0.0);
+{ 16532} GHN501z +GHO                =       G3H500T                                               : ARR( 0.209E-10,     0., 0.0);
+{ 16533} GHN501z +GHO                =       G2N503n                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 16534} GHN501z +GNO3               =       G3H500T +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 16535} GHN501z+HV               =       G1H503i +      GNO2                                   :  0.100E+01*SUN;
+{ 16536} GHN501z+HV               =       G1N504G +      GHO                                    :  0.100E+01*SUN;
+{ 16537} GHN501z+HV               =       GND4001 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 16538} G2H501n +GNO                =       G1H503j +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 16539} G2H501n +GNO                =       GHN504t                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 16540} G2H501n +GHO2               =       GHH501k                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 16541} G2H501n +GNO3               =       G1H503j +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 16542} G2H501n +MEPERO             =  0.340G1H503j + 0.330GHN504u + 0.330GHN504s                 : ARR( 0.565E-13,  -845., 0.0);
+{ 16543} G2H501n +PERO1              =  0.460G1H503j + 0.270GHN504u + 0.270GHN504s                 : ARR( 0.434E-13,  -900., 0.0);
+{ 16544} G2H501n +PERO2              =  0.400G1H503j + 0.300GHN504u + 0.300GHN504s                 : ARR( 0.162E-13, -1400., 0.0);
+{ 16545} G2H501n +PERO3              =  0.460G1H503j + 0.270GHN504u + 0.270GHN504s                 : ARR( 0.488E-13, -1250., 0.0);
+{ 16546} G2H501n +PERO5              =  0.460G1H503j + 0.270GHN504u + 0.270GHN504s                 : ARR( 0.183E-11,   450., 0.0);
+{ 16547} G2H501n +PERO6              =  0.300G1H503j + 0.350GHN504u + 0.350GHN504s                 : ARR( 0.168E-13, -1300., 0.0);
+{ 16548} G2H501n +PERO9              =  0.650G1H503j + 0.350GHN504s                                : ARR( 0.100E-10,     0., 0.0);
+{ 16549} G3H500T +GHO2               =  0.800GGH5007 + 0.200GAH5007 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 16550} G3H500T +GNO                =       GND4001 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 16551} G3H500T +GNO2               =       GPH5008                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 16552} G3H500T +GNO3               =       GND4001 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 16553} G3H500T +MEPERO             =  0.685GND4001 + 0.315GAH5007 + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 16554} G3H500T +PERO1              =  0.800GND4001 + 0.200GAH5007 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 16555} G3H500T +PERO2              =  0.750GND4001 + 0.250GAH5007 + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 16556} G3H500T +PERO3              =  0.800GND4001 + 0.200GAH5007 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 16557} G3H500T +PERO5              =  0.650GND4001 + 0.350GAH5007 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 16558} G3H500T +PERO6              =  0.650GND4001 + 0.350GAH5007 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 16559} G3H500T +PERO9              =       GND4001 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 16560} G2N503n +GNO                =       G1N504G +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 16561} G2N503n +GNO                =       GNN501H                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 16562} G2N503n +GHO2               =       GHN501z                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 16563} G2N503n +GNO3               =       G1N504G +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 16564} G2N503n +MEPERO             =  0.340G1N504G + 0.330GND500H + 0.330GND5009                 : ARR( 0.565E-13,  -845., 0.0);
+{ 16565} G2N503n +PERO1              =  0.460G1N504G + 0.270GND500H + 0.270GND5009                 : ARR( 0.434E-13,  -900., 0.0);
+{ 16566} G2N503n +PERO2              =  0.400G1N504G + 0.300GND500H + 0.300GND5009                 : ARR( 0.162E-13, -1400., 0.0);
+{ 16567} G2N503n +PERO3              =  0.460G1N504G + 0.270GND500H + 0.270GND5009                 : ARR( 0.488E-13, -1250., 0.0);
+{ 16568} G2N503n +PERO5              =  0.460G1N504G + 0.270GND500H + 0.270GND5009                 : ARR( 0.183E-11,   450., 0.0);
+{ 16569} G2N503n +PERO6              =  0.300G1N504G + 0.350GND500H + 0.350GND5009                 : ARR( 0.168E-13, -1300., 0.0);
+{ 16570} G2N503n +PERO9              =  0.650G1N504G + 0.350GND5009                                : ARR( 0.100E-10,     0., 0.0);
+{ 16571} G1H503i                     =       GDK5004 +      GHO                                    : ARR( 0.800E+11,  1899., 0.0);
+{ 16572} G1H503j                     =       GND3000 +      GDD2000 +      GHO                     : ARR( 0.200E+15,  4662., 0.0);
+{ 16573} GHN5021 +GHO                =       G2H501o                                               : ARR( 0.467E-11,     0., 0.0);
+{ 16574} GHN5021 +GHO                =       GND500A +      GHO                                    : ARR( 0.262E-10,     0., 0.0);
+{ 16575} GHN5021 +GHO                =       G3H500U                                               : ARR( 0.216E-10,     0., 0.0);
+{ 16576} GHN5021 +GHO                =       G2N503o                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 16577} GHN5021 +GNO3               =       G3H500U +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 16578} GHN5021+HV               =       G1H503k +      GNO2                                   :  0.100E+01*SUN;
+{ 16579} GHN5021+HV               =       G1N502H +      GHO                                    :  0.100E+01*SUN;
+{ 16580} GHN5021+HV               =       GND4003 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 16581} G2H501o +GNO                =       G1H503l +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 16582} G2H501o +GNO                =       GHN504q                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 16583} G2H501o +GHO2               =       GHH501j                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 16584} G2H501o +GNO3               =       G1H503l +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 16585} G2H501o +MEPERO             =  0.340G1H503l + 0.330GHN504v + 0.330GHN504w                 : ARR( 0.565E-13,  -845., 0.0);
+{ 16586} G2H501o +PERO1              =  0.460G1H503l + 0.270GHN504v + 0.270GHN504w                 : ARR( 0.434E-13,  -900., 0.0);
+{ 16587} G2H501o +PERO2              =  0.400G1H503l + 0.300GHN504v + 0.300GHN504w                 : ARR( 0.162E-13, -1400., 0.0);
+{ 16588} G2H501o +PERO3              =  0.460G1H503l + 0.270GHN504v + 0.270GHN504w                 : ARR( 0.488E-13, -1250., 0.0);
+{ 16589} G2H501o +PERO5              =  0.460G1H503l + 0.270GHN504v + 0.270GHN504w                 : ARR( 0.183E-11,   450., 0.0);
+{ 16590} G2H501o +PERO6              =  0.300G1H503l + 0.350GHN504v + 0.350GHN504w                 : ARR( 0.168E-13, -1300., 0.0);
+{ 16591} G2H501o +PERO9              =  0.650G1H503l + 0.350GHN504w                                : ARR( 0.100E-10,     0., 0.0);
+{ 16592} G3H500U +GHO2               =  0.800GGH500D + 0.200GAH500D + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 16593} G3H500U +GNO                =       GND4003 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 16594} G3H500U +GNO2               =       GPH500D                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 16595} G3H500U +GNO3               =       GND4003 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 16596} G3H500U +MEPERO             =  0.685GND4003 + 0.315GAH500D + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 16597} G3H500U +PERO1              =  0.800GND4003 + 0.200GAH500D + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 16598} G3H500U +PERO2              =  0.750GND4003 + 0.250GAH500D + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 16599} G3H500U +PERO3              =  0.800GND4003 + 0.200GAH500D + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 16600} G3H500U +PERO5              =  0.650GND4003 + 0.350GAH500D + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 16601} G3H500U +PERO6              =  0.650GND4003 + 0.350GAH500D + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 16602} G3H500U +PERO9              =       GND4003 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 16603} G2N503o +GNO                =       G1N502H +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 16604} G2N503o +GNO                =       GNN500S                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 16605} G2N503o +GHO2               =       GHN5021                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 16606} G2N503o +GNO3               =       G1N502H +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 16607} G2N503o +MEPERO             =  0.340G1N502H + 0.330GND500D + 0.330GND500A                 : ARR( 0.565E-13,  -845., 0.0);
+{ 16608} G2N503o +PERO1              =  0.460G1N502H + 0.270GND500D + 0.270GND500A                 : ARR( 0.434E-13,  -900., 0.0);
+{ 16609} G2N503o +PERO2              =  0.400G1N502H + 0.300GND500D + 0.300GND500A                 : ARR( 0.162E-13, -1400., 0.0);
+{ 16610} G2N503o +PERO3              =  0.460G1N502H + 0.270GND500D + 0.270GND500A                 : ARR( 0.488E-13, -1250., 0.0);
+{ 16611} G2N503o +PERO5              =  0.460G1N502H + 0.270GND500D + 0.270GND500A                 : ARR( 0.183E-11,   450., 0.0);
+{ 16612} G2N503o +PERO6              =  0.300G1N502H + 0.350GND500D + 0.350GND500A                 : ARR( 0.168E-13, -1300., 0.0);
+{ 16613} G2N503o +PERO9              =  0.650G1N502H + 0.350GND500A                                : ARR( 0.100E-10,     0., 0.0);
+{ 16614} G1H503k                     =       GDK5005 +      GHO                                    : ARR( 0.800E+11,  1899., 0.0);
+{ 16615} G1H503k                     =       GHD400C +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4799., 0.0);
+{ 16616} G1H503l                     =       GND2000 +      GHD3004 +      GHO2                    : ARR( 0.200E+15,  2745., 0.0);
+{ 16617} GHN5022 +GHO                =       GNN501I +      GHO                                    : ARR( 0.270E-10,     0., 0.0);
+{ 16618} GHN5022 +GHO                =       G2N501a                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 16619} GHN5022+HV               =       G1H503m +      GNO2                                   :  0.100E+01*SUN;
+{ 16620} GHN5022+HV               =       G3N2000 +      G2H3001                                :  0.100E+01*SUN;
+{ 16621} GHN5022+HV               =       GNK3000 +      GDD2000 +      GHO     +      GNO2     :  0.100E+01*SUN;
+{ 16622} GHN5022+HV               =       G1N501f +      GHO                                    :  0.100E+01*SUN;
+{ 16623} GHN5022+HV               =       G1H503n +      GNO2                                   :  0.100E+01*SUN;
+{ 16624} G1H503m                     =       G3H4002 +      GCH2O                                  : ARR( 0.200E+15,  3576., 0.0);
+{ 16625} G1H503n +OXYGEN             =       GHN503n +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 16626} G1H503n                     =       GND4004 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5636., 0.0);
+{ 16627} GNN501I +GHO                =       GND500g +      GNO2                                   : ARR( 0.560E-13,     0., 0.0);
+{ 16628} GNN501I +GHO                =       G2N503p                                               : ARR( 0.525E-12,     0., 0.0);
+{ 16629} GNN501I+HV               =       G1N502T +      GNO2                                   :  0.200E+01*SUN;
+{ 16630} GNN501I+HV               =       G3N2000 +      G2N3005                                :  0.100E+01*SUN;
+{ 16631} GNN501I+HV               =       G3N4007 +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{ 16632} G2N503p +GNO                =       G1N504J +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 16633} G2N503p +GNO                =       GNN502m                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 16634} G2N503p +GHO2               =       GHN504x                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 16635} G2N503p +GNO3               =       G1N504J +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 16636} G2N503p +MEPERO             =  0.340G1N504J + 0.330GNN502n + 0.330GNN502o                 : ARR( 0.565E-13,  -845., 0.0);
+{ 16637} G2N503p +PERO1              =  0.460G1N504J + 0.270GNN502n + 0.270GNN502o                 : ARR( 0.434E-13,  -900., 0.0);
+{ 16638} G2N503p +PERO2              =  0.400G1N504J + 0.300GNN502n + 0.300GNN502o                 : ARR( 0.162E-13, -1400., 0.0);
+{ 16639} G2N503p +PERO3              =  0.460G1N504J + 0.270GNN502n + 0.270GNN502o                 : ARR( 0.488E-13, -1250., 0.0);
+{ 16640} G2N503p +PERO5              =  0.460G1N504J + 0.270GNN502n + 0.270GNN502o                 : ARR( 0.183E-11,   450., 0.0);
+{ 16641} G2N503p +PERO6              =  0.300G1N504J + 0.350GNN502n + 0.350GNN502o                 : ARR( 0.168E-13, -1300., 0.0);
+{ 16642} G2N503p +PERO9              =  0.650G1N504J + 0.350GNN502o                                : ARR( 0.100E-10,     0., 0.0);
+{ 16643} G1N504J                     =       G3N2000 +      GND3003                                : ARR( 0.400E+15,  4480., 0.0);
+{ 16644} GNN501J +GHO                =       GNN5026 +      GNO2                                   : ARR( 0.460E-13,     0., 0.0);
+{ 16645} GNN501J +GHO                =       G2N503q                                               : ARR( 0.565E-13,     0., 0.0);
+{ 16646} GNN501J +GHO                =       GNN501L +      GNO2                                   : ARR( 0.718E-13,     0., 0.0);
+{ 16647} GNN501J +GHO                =       GNN501u +      GNO2                                   : ARR( 0.280E-13,     0., 0.0);
+{ 16648} GNN501J+HV               =       G1N502c +      GNO2                                   :  0.100E+01*SUN;
+{ 16649} GNN501J+HV               =       G1N501g +      GNO2                                   :  0.100E+01*SUN;
+{ 16650} GNN501J+HV               =       G3N4005 +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{ 16651} GNN501J+HV               =       G2D2000 +      GNN3006 +      GNO2                    :  0.100E+01*SUN;
+{ 16652} GNN501J+HV               =       G1N502L +      GNO2                                   :  0.100E+01*SUN;
+{ 16653} G2N503q +GNO                =       G1N504K +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 16654} G2N503q +GNO                =       GNN502g                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 16655} G2N503q +GHO2               =       GHN504y                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 16656} G2N503q +GNO3               =       G1N504K +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 16657} G2N503q +MEPERO             =  0.340G1N504K + 0.330GNN5021 + 0.330GNN502m                 : ARR( 0.565E-13,  -845., 0.0);
+{ 16658} G2N503q +PERO1              =  0.460G1N504K + 0.270GNN5021 + 0.270GNN502m                 : ARR( 0.434E-13,  -900., 0.0);
+{ 16659} G2N503q +PERO2              =  0.400G1N504K + 0.300GNN5021 + 0.300GNN502m                 : ARR( 0.162E-13, -1400., 0.0);
+{ 16660} G2N503q +PERO3              =  0.460G1N504K + 0.270GNN5021 + 0.270GNN502m                 : ARR( 0.488E-13, -1250., 0.0);
+{ 16661} G2N503q +PERO5              =  0.460G1N504K + 0.270GNN5021 + 0.270GNN502m                 : ARR( 0.183E-11,   450., 0.0);
+{ 16662} G2N503q +PERO6              =  0.300G1N504K + 0.350GNN5021 + 0.350GNN502m                 : ARR( 0.168E-13, -1300., 0.0);
+{ 16663} G2N503q +PERO9              =  0.650G1N504K + 0.350GNN502m                                : ARR( 0.100E-10,     0., 0.0);
+{ 16664} G1N504K                     =       GND3003 +      GND2000 +      GNO2                    : ARR( 0.200E+15,  6513., 0.0);
+{ 16665} GHN5023 +GHO                =       GNN501L +      GHO                                    : ARR( 0.260E-10,     0., 0.0);
+{ 16666} GHN5023 +GHO                =       G2N501b                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 16667} GHN5023+HV               =       G1H503o +      GNO2                                   :  0.100E+01*SUN;
+{ 16668} GHN5023+HV               =       G1N501g +      GHO                                    :  0.100E+01*SUN;
+{ 16669} GHN5023+HV               =       G3H400D +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{ 16670} GHN5023+HV               =       G1H503p +      GNO2                                   :  0.100E+01*SUN;
+{ 16671} G1H503o +OXYGEN             =       GHN503m +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{ 16672} G3H400D +GHO2               =  0.800GGH4003 + 0.200GAH4002 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 16673} G3H400D +GNO                =       GND3000 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 16674} G3H400D +GNO2               =       GPH4003                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 16675} G3H400D +GNO3               =       GND3000 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 16676} G3H400D +MEPERO             =  0.685GND3000 + 0.315GAH4002 + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 16677} G3H400D +PERO1              =  0.800GND3000 + 0.200GAH4002 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 16678} G3H400D +PERO2              =  0.750GND3000 + 0.250GAH4002 + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 16679} G3H400D +PERO3              =  0.800GND3000 + 0.200GAH4002 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 16680} G3H400D +PERO5              =  0.650GND3000 + 0.350GAH4002 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 16681} G3H400D +PERO6              =  0.650GND3000 + 0.350GAH4002 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 16682} G3H400D +PERO9              =       GND3000 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 16683} G1H503p                     =       G3H400D +      GCH2O                                  : ARR( 0.200E+15,  3603., 0.0);
+{ 16684} GNN501K +GHO                =       G2N503r                                               : ARR( 0.923E-12,     0., 0.0);
+{ 16685} GNN501K +GHO                =       GNN501L +      GHO2                                   : ARR( 0.647E-11,     0., 0.0);
+{ 16686} GNN501K+HV               =       G1N504L +      GNO2                                   :  0.100E+01*SUN;
+{ 16687} GNN501K+HV               =       G3N400G +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{ 16688} GNN501K+HV               =       G1N504M +      GNO2                                   :  0.100E+01*SUN;
+{ 16689} G2N503r +GNO                =       G1N504N +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 16690} G2N503r +GNO                =       GNN502h                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 16691} G2N503r +GHO2               =       GHN504z                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 16692} G2N503r +GNO3               =       G1N504N +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 16693} G2N503r +MEPERO             =  0.340G1N504N + 0.330GNN5022 + 0.330GNN502n                 : ARR( 0.565E-13,  -845., 0.0);
+{ 16694} G2N503r +PERO1              =  0.460G1N504N + 0.270GNN5022 + 0.270GNN502n                 : ARR( 0.434E-13,  -900., 0.0);
+{ 16695} G2N503r +PERO2              =  0.400G1N504N + 0.300GNN5022 + 0.300GNN502n                 : ARR( 0.162E-13, -1400., 0.0);
+{ 16696} G2N503r +PERO3              =  0.460G1N504N + 0.270GNN5022 + 0.270GNN502n                 : ARR( 0.488E-13, -1250., 0.0);
+{ 16697} G2N503r +PERO5              =  0.460G1N504N + 0.270GNN5022 + 0.270GNN502n                 : ARR( 0.183E-11,   450., 0.0);
+{ 16698} G2N503r +PERO6              =  0.300G1N504N + 0.350GNN5022 + 0.350GNN502n                 : ARR( 0.168E-13, -1300., 0.0);
+{ 16699} G2N503r +PERO9              =  0.650G1N504N + 0.350GNN502n                                : ARR( 0.100E-10,     0., 0.0);
+{ 16700} G1N504L +OXYGEN             =       GND500n +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{ 16701} G3N400G +GHO2               =  0.800GGN4009 + 0.200GAN4009 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 16702} G3N400G +GNO                =       GND3000 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 16703} G3N400G +GNO2               =       GPN4009                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 16704} G3N400G +GNO3               =       GND3000 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 16705} G3N400G +MEPERO             =  0.685GND3000 + 0.315GAN4009 + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 16706} G3N400G +PERO1              =  0.800GND3000 + 0.200GAN4009 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 16707} G3N400G +PERO2              =  0.750GND3000 + 0.250GAN4009 + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 16708} G3N400G +PERO3              =  0.800GND3000 + 0.200GAN4009 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 16709} G3N400G +PERO5              =  0.650GND3000 + 0.350GAN4009 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 16710} G3N400G +PERO6              =  0.650GND3000 + 0.350GAN4009 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 16711} G3N400G +PERO9              =       GND3000 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 16712} G1N504M                     =       G3N400G +      GCH2O                                  : ARR( 0.200E+15,  3603., 0.0);
+{ 16713} G1N504N                     =       GND3003 +      GND2000 +      GHO2                    : ARR( 0.200E+15,  3765., 0.0);
+{ 16714} GNN501L +GHO                =       GND500k +      GNO2                                   : ARR( 0.146E-12,     0., 0.0);
+{ 16715} GNN501L +GHO                =       G2N503s                                               : ARR( 0.172E-12,     0., 0.0);
+{ 16716} GNN501L +GHO                =       GND500i +      GNO2                                   : ARR( 0.280E-13,     0., 0.0);
+{ 16717} GNN501L+HV               =       G1N502v +      GNO2                                   :  0.100E+01*SUN;
+{ 16718} GNN501L+HV               =       G3N3000 +      G3N2000                                :  0.100E+01*SUN;
+{ 16719} GNN501L+HV               =       G1N502O +      GNO2                                   :  0.100E+01*SUN;
+{ 16720} G2N503s +GNO                =       G1N504O +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 16721} G2N503s +GNO                =       GNN502i                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 16722} G2N503s +GHO2               =       GHN5051                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 16723} G2N503s +GNO3               =       G1N504O +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 16724} G2N503s +MEPERO             =  0.340G1N504O + 0.330GNN5023 + 0.330GNN502o                 : ARR( 0.565E-13,  -845., 0.0);
+{ 16725} G2N503s +PERO1              =  0.460G1N504O + 0.270GNN5023 + 0.270GNN502o                 : ARR( 0.434E-13,  -900., 0.0);
+{ 16726} G2N503s +PERO2              =  0.400G1N504O + 0.300GNN5023 + 0.300GNN502o                 : ARR( 0.162E-13, -1400., 0.0);
+{ 16727} G2N503s +PERO3              =  0.460G1N504O + 0.270GNN5023 + 0.270GNN502o                 : ARR( 0.488E-13, -1250., 0.0);
+{ 16728} G2N503s +PERO5              =  0.460G1N504O + 0.270GNN5023 + 0.270GNN502o                 : ARR( 0.183E-11,   450., 0.0);
+{ 16729} G2N503s +PERO6              =  0.300G1N504O + 0.350GNN5023 + 0.350GNN502o                 : ARR( 0.168E-13, -1300., 0.0);
+{ 16730} G2N503s +PERO9              =  0.650G1N504O + 0.350GNN502o                                : ARR( 0.100E-10,     0., 0.0);
+{ 16731} G1N504O                     =       G3N2000 +      GND2000 +      GCO                     : ARR( 0.200E+15,  3324., 0.0);
+{ 16732} GHN5024 +GHO                =       GHN504l +      GHO2                                   : ARR( 0.406E-11,     0., 0.0);
+{ 16733} GHN5024 +GHO                =       G2H501p                                               : ARR( 0.143E-11,     0., 0.0);
+{ 16734} GHN5024 +GHO                =       GNN502J +      GHO                                    : ARR( 0.833E-11,     0., 0.0);
+{ 16735} GHN5024 +GHO                =       G2N503t                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 16736} GHN5024+HV               =       G1N502e +      GHO                                    :  0.100E+01*SUN;
+{ 16737} GHN5024+HV               =       G1H500n +      GNO2                                   :  0.100E+01*SUN;
+{ 16738} GHN5024+HV               =       G1H503q +      GNO2                                   :  0.100E+01*SUN;
+{ 16739} G2H501p +GNO                =       G1H503r +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 16740} G2H501p +GNO                =       GHN504m                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 16741} G2H501p +GHO2               =       GHH501g                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 16742} G2H501p +GNO3               =       G1H503r +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 16743} G2H501p +MEPERO             =  0.340G1H503r + 0.330GHN5052 + 0.330GHN503Z                 : ARR( 0.565E-13,  -845., 0.0);
+{ 16744} G2H501p +PERO1              =  0.460G1H503r + 0.270GHN5052 + 0.270GHN503Z                 : ARR( 0.434E-13,  -900., 0.0);
+{ 16745} G2H501p +PERO2              =  0.400G1H503r + 0.300GHN5052 + 0.300GHN503Z                 : ARR( 0.162E-13, -1400., 0.0);
+{ 16746} G2H501p +PERO3              =  0.460G1H503r + 0.270GHN5052 + 0.270GHN503Z                 : ARR( 0.488E-13, -1250., 0.0);
+{ 16747} G2H501p +PERO5              =  0.460G1H503r + 0.270GHN5052 + 0.270GHN503Z                 : ARR( 0.183E-11,   450., 0.0);
+{ 16748} G2H501p +PERO6              =  0.300G1H503r + 0.350GHN5052 + 0.350GHN503Z                 : ARR( 0.168E-13, -1300., 0.0);
+{ 16749} G2H501p +PERO9              =  0.650G1H503r + 0.350GHN503Z                                : ARR( 0.100E-10,     0., 0.0);
+{ 16750} G2N503t +GNO                =       G1N502e +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 16751} G2N503t +GNO                =       GNN500b                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 16752} G2N503t +GHO2               =       GHN5024                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 16753} G2N503t +GNO3               =       G1N502e +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 16754} G2N503t +MEPERO             =  0.340G1N502e + 0.330GNN501M + 0.330GNN502J                 : ARR( 0.565E-13,  -845., 0.0);
+{ 16755} G2N503t +PERO1              =  0.460G1N502e + 0.270GNN501M + 0.270GNN502J                 : ARR( 0.434E-13,  -900., 0.0);
+{ 16756} G2N503t +PERO2              =  0.400G1N502e + 0.300GNN501M + 0.300GNN502J                 : ARR( 0.162E-13, -1400., 0.0);
+{ 16757} G2N503t +PERO3              =  0.460G1N502e + 0.270GNN501M + 0.270GNN502J                 : ARR( 0.488E-13, -1250., 0.0);
+{ 16758} G2N503t +PERO5              =  0.460G1N502e + 0.270GNN501M + 0.270GNN502J                 : ARR( 0.183E-11,   450., 0.0);
+{ 16759} G2N503t +PERO6              =  0.300G1N502e + 0.350GNN501M + 0.350GNN502J                 : ARR( 0.168E-13, -1300., 0.0);
+{ 16760} G2N503t +PERO9              =  0.650G1N502e + 0.350GNN502J                                : ARR( 0.100E-10,     0., 0.0);
+{ 16761} G1H503q                     =       G2H501q                                               : ARR( 0.160E+12,  3000., 0.0);
+{ 16762} G1H503r                     =       GCH2O   +      GHN400v +      GHO2                    : ARR( 0.200E+15,  5296., 0.0);
+{ 16763} G1H503r                     =       GDO2000 +      GNN3005 +      GHO                     : ARR( 0.200E+15,  4695., 0.0);
+{ 16764} G2H501q +GNO                =       G1H503s +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 16765} G2H501q +GNO                =       GHN5053                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 16766} G2H501q +GHO2               =       GHH5014                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 16767} G2H501q +GNO3               =       G1H503s +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 16768} G2H501q +MEPERO             =  0.340G1H503s + 0.330GHN503j + 0.330GHN504E                 : ARR( 0.565E-13,  -845., 0.0);
+{ 16769} G2H501q +PERO1              =  0.460G1H503s + 0.270GHN503j + 0.270GHN504E                 : ARR( 0.434E-13,  -900., 0.0);
+{ 16770} G2H501q +PERO2              =  0.400G1H503s + 0.300GHN503j + 0.300GHN504E                 : ARR( 0.162E-13, -1400., 0.0);
+{ 16771} G2H501q +PERO3              =  0.460G1H503s + 0.270GHN503j + 0.270GHN504E                 : ARR( 0.488E-13, -1250., 0.0);
+{ 16772} G2H501q +PERO5              =  0.460G1H503s + 0.270GHN503j + 0.270GHN504E                 : ARR( 0.183E-11,   450., 0.0);
+{ 16773} G2H501q +PERO6              =  0.300G1H503s + 0.350GHN503j + 0.350GHN504E                 : ARR( 0.168E-13, -1300., 0.0);
+{ 16774} G2H501q +PERO9              =  0.650G1H503s + 0.350GHN504E                                : ARR( 0.100E-10,     0., 0.0);
+{ 16775} G1H503s                     =       GHN5042 +      GHO2                                   : ARR( 0.160E+12,  3252., 0.0);
+{ 16776} G1H503s                     =       GND3004 +      GDO2000 +      GHO                     : ARR( 0.200E+15,  4695., 0.0);
+{ 16777} G1H503s                     =       GHN400h +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  5296., 0.0);
+{ 16778} GNN501M +GHO                =       GNN502j +      GHO2                                   : ARR( 0.419E-11,     0., 0.0);
+{ 16779} GNN501M +GHO                =       G2N503u                                               : ARR( 0.147E-11,     0., 0.0);
+{ 16780} GNN501M +GHO                =       GNN502J +      GHO2                                   : ARR( 0.215E-11,     0., 0.0);
+{ 16781} GNN501M+HV               =       G1N501k +      GNO2                                   :  0.100E+01*SUN;
+{ 16782} GNN501M+HV               =       G1N504P +      GNO2                                   :  0.100E+01*SUN;
+{ 16783} G2N503u +GNO                =       G1N504Q +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 16784} G2N503u +GNO                =       GNN502l                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 16785} G2N503u +GHO2               =       GHN504r                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 16786} G2N503u +GNO3               =       G1N504Q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 16787} G2N503u +MEPERO             =  0.340G1N504Q + 0.330GNN502p + 0.330GNN502O                 : ARR( 0.565E-13,  -845., 0.0);
+{ 16788} G2N503u +PERO1              =  0.460G1N504Q + 0.270GNN502p + 0.270GNN502O                 : ARR( 0.434E-13,  -900., 0.0);
+{ 16789} G2N503u +PERO2              =  0.400G1N504Q + 0.300GNN502p + 0.300GNN502O                 : ARR( 0.162E-13, -1400., 0.0);
+{ 16790} G2N503u +PERO3              =  0.460G1N504Q + 0.270GNN502p + 0.270GNN502O                 : ARR( 0.488E-13, -1250., 0.0);
+{ 16791} G2N503u +PERO5              =  0.460G1N504Q + 0.270GNN502p + 0.270GNN502O                 : ARR( 0.183E-11,   450., 0.0);
+{ 16792} G2N503u +PERO6              =  0.300G1N504Q + 0.350GNN502p + 0.350GNN502O                 : ARR( 0.168E-13, -1300., 0.0);
+{ 16793} G2N503u +PERO9              =  0.650G1N504Q + 0.350GNN502O                                : ARR( 0.100E-10,     0., 0.0);
+{ 16794} G1N504P                     =       G2N503v                                               : ARR( 0.160E+12,  3000., 0.0);
+{ 16795} G1N504Q                     =       GDO2000 +      GNN3005 +      GHO2                    : ARR( 0.200E+15,  3486., 0.0);
+{ 16796} G2N503v +GNO                =       G1N504R +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 16797} G2N503v +GNO                =       GNN502q                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 16798} G2N503v +GHO2               =       GHN503i                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 16799} G2N503v +GNO3               =       G1N504R +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 16800} G2N503v +MEPERO             =  0.340G1N504R + 0.330GNO500b + 0.330GNK5015                 : ARR( 0.565E-13,  -845., 0.0);
+{ 16801} G2N503v +PERO1              =  0.460G1N504R + 0.270GNO500b + 0.270GNK5015                 : ARR( 0.434E-13,  -900., 0.0);
+{ 16802} G2N503v +PERO2              =  0.400G1N504R + 0.300GNO500b + 0.300GNK5015                 : ARR( 0.162E-13, -1400., 0.0);
+{ 16803} G2N503v +PERO3              =  0.460G1N504R + 0.270GNO500b + 0.270GNK5015                 : ARR( 0.488E-13, -1250., 0.0);
+{ 16804} G2N503v +PERO5              =  0.460G1N504R + 0.270GNO500b + 0.270GNK5015                 : ARR( 0.183E-11,   450., 0.0);
+{ 16805} G2N503v +PERO6              =  0.300G1N504R + 0.350GNO500b + 0.350GNK5015                 : ARR( 0.168E-13, -1300., 0.0);
+{ 16806} G2N503v +PERO9              =  0.650G1N504R + 0.350GNK5015                                : ARR( 0.100E-10,     0., 0.0);
+{ 16807} G1N504R                     =       GND3004 +      GDO2000 +      GHO2                    : ARR( 0.200E+15,  3486., 0.0);
+{ 16808} GHN5025 +GHO                =       GND500X +      GHO                                    : ARR( 0.164E-10,     0., 0.0);
+{ 16809} GHN5025 +GHO                =       G3H500W                                               : ARR( 0.212E-10,     0., 0.0);
+{ 16810} GHN5025 +GHO                =       G2N503w                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 16811} GHN5025 +GNO3               =       G3H500W +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 16812} GHN5025+HV               =       G1N501u +      GHO                                    :  0.100E+01*SUN;
+{ 16813} GHN5025+HV               =       G1H503t +      GNO2                                   :  0.100E+01*SUN;
+{ 16814} GHN5025+HV               =       G2H400a +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 16815} GHN5025+HV               =       G2H300C +      GD02000 +      GNO2                    :  0.100E+01*SUN;
+{ 16816} G3H500W +GHO2               =  0.800GGH500j + 0.200GAH500L + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 16817} G3H500W +GNO                =       G2H400a +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 16818} G3H500W +GNO2               =       GPH500L                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 16819} G3H500W +GNO3               =       G2H400a +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 16820} G3H500W +MEPERO             =  0.685G2H400a + 0.315GAH500L + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 16821} G3H500W +PERO1              =  0.800G2H400a + 0.200GAH500L + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 16822} G3H500W +PERO2              =  0.750G2H400a + 0.250GAH500L + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 16823} G3H500W +PERO3              =  0.800G2H400a + 0.200GAH500L + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 16824} G3H500W +PERO5              =  0.650G2H400a + 0.350GAH500L + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 16825} G3H500W +PERO6              =  0.650G2H400a + 0.350GAH500L + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 16826} G3H500W +PERO9              =       G2H400a +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 16827} G2N503w +GNO                =       G1N501u +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 16828} G2N503w +GNO                =       GNN500J                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 16829} G2N503w +GHO2               =       GHN5025                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 16830} G2N503w +GNO3               =       G1N501u +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 16831} G2N503w +MEPERO             =  0.480G1N501u + 0.260GND500W + 0.260GND500X                 : ARR( 0.146E-12,  -445., 0.0);
+{ 16832} G2N503w +PERO1              =  0.600G1N501u + 0.200GND500W + 0.200GND500X                 : ARR( 0.112E-12,  -500., 0.0);
+{ 16833} G2N503w +PERO2              =  0.560G1N501u + 0.220GND500W + 0.220GND500X                 : ARR( 0.418E-13, -1000., 0.0);
+{ 16834} G2N503w +PERO3              =  0.600G1N501u + 0.200GND500W + 0.200GND500X                 : ARR( 0.126E-12,  -850., 0.0);
+{ 16835} G2N503w +PERO5              =  0.600G1N501u + 0.200GND500W + 0.200GND500X                 : ARR( 0.473E-11,   850., 0.0);
+{ 16836} G2N503w +PERO6              =  0.460G1N501u + 0.270GND500W + 0.270GND500X                 : ARR( 0.434E-13,  -900., 0.0);
+{ 16837} G2N503w +PERO9              =  0.800G1N501u + 0.200GND500X                                : ARR( 0.100E-10,     0., 0.0);
+{ 16838} G1H503t                     =       G2H2000 +      GDD3000                                : ARR( 0.200E+15,  6436., 0.0);
+{ 16839} G1H503t                     =       GHD3000 +      G2D2000                                : ARR( 0.200E+15,  6974., 0.0);
+{ 16840} G2H400a +GNO                =       G1H400e +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 16841} G2H400a +GNO                =       GHN400P                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 16842} G2H400a +GHO2               =       GHH400Z                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 16843} G2H400a +GNO3               =       G1H400e +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 16844} G2H400a +MEPERO             =  0.480G1H400e + 0.260GHN4005 + 0.260GHN400M                 : ARR( 0.164E-12,  -795., 0.0);
+{ 16845} G2H400a +PERO1              =  0.600G1H400e + 0.200GHN4005 + 0.200GHN400M                 : ARR( 0.126E-12,  -850., 0.0);
+{ 16846} G2H400a +PERO2              =  0.560G1H400e + 0.220GHN4005 + 0.220GHN400M                 : ARR( 0.471E-13, -1350., 0.0);
+{ 16847} G2H400a +PERO3              =  0.600G1H400e + 0.200GHN4005 + 0.200GHN400M                 : ARR( 0.142E-12, -1200., 0.0);
+{ 16848} G2H400a +PERO5              =  0.600G1H400e + 0.200GHN4005 + 0.200GHN400M                 : ARR( 0.533E-11,   500., 0.0);
+{ 16849} G2H400a +PERO6              =  0.460G1H400e + 0.270GHN4005 + 0.270GHN400M                 : ARR( 0.488E-13, -1250., 0.0);
+{ 16850} G2H400a +PERO9              =  0.800G1H400e + 0.200GHN400M                                : ARR( 0.100E-10,     0., 0.0);
+{ 16851} G2H300C +GNO                =       G1H300C +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{ 16852} G2H300C +GNO                =       GHN300A                                               : ARR( 0.622E-13,  -360., 0.0);
+{ 16853} G2H300C +GHO2               =       GHH3005                                               : ARR( 0.179E-12, -1250., 0.0);
+{ 16854} G2H300C +GNO3               =       G1H300C +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 16855} G2H300C +MEPERO             =  0.340G1H300C + 0.330GHD3005 + 0.330GHD3001                 : ARR( 0.565E-13,  -845., 0.0);
+{ 16856} G2H300C +PERO1              =  0.460G1H300C + 0.270GHD3005 + 0.270GHD3001                 : ARR( 0.434E-13,  -900., 0.0);
+{ 16857} G2H300C +PERO2              =  0.400G1H300C + 0.300GHD3005 + 0.300GHD3001                 : ARR( 0.162E-13, -1400., 0.0);
+{ 16858} G2H300C +PERO3              =  0.460G1H300C + 0.270GHD3005 + 0.270GHD3001                 : ARR( 0.488E-13, -1250., 0.0);
+{ 16859} G2H300C +PERO5              =  0.460G1H300C + 0.270GHD3005 + 0.270GHD3001                 : ARR( 0.183E-11,   450., 0.0);
+{ 16860} G2H300C +PERO6              =  0.300G1H300C + 0.350GHD3005 + 0.350GHD3001                 : ARR( 0.168E-13, -1300., 0.0);
+{ 16861} G2H300C +PERO9              =  0.650G1H300C + 0.350GHD3001                                : ARR( 0.100E-10,     0., 0.0);
+{ 16862} G1H400e                     =       GND4002 +      GHO                                    : ARR( 0.160E+12,  2186., 0.0);
+{ 16863} G1H300C                     =       GHD2000 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5751., 0.0);
+{ 16864} GHN5026 +GHO                =       GHN5054 +      GHO2                                   : ARR( 0.420E-11,     0., 0.0);
+{ 16865} GHN5026 +GHO                =       GNN501S +      GHO                                    : ARR( 0.336E-11,     0., 0.0);
+{ 16866} GHN5026 +GHO                =       G2N503x                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 16867} GHN5026+HV               =       G1H503u +      GNO2                                   :  0.100E+01*SUN;
+{ 16868} GHN5026+HV               =       G1H500p +      GNO2                                   :  0.100E+01*SUN;
+{ 16869} GHN5026+HV               =       G1N502f +      GHO                                    :  0.100E+01*SUN;
+{ 16870} G2N503x +GNO                =       G1N502f +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 16871} G2N503x +GNO                =       GNN500b                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 16872} G2N503x +GHO2               =       GHN5026                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 16873} G2N503x +GNO3               =       G1N502f +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 16874} G2N503x +MEPERO             =  0.480G1N502f + 0.260GNN501R + 0.260GNN501S                 : ARR( 0.164E-12,  -795., 0.0);
+{ 16875} G2N503x +PERO1              =  0.600G1N502f + 0.200GNN501R + 0.200GNN501S                 : ARR( 0.126E-12,  -850., 0.0);
+{ 16876} G2N503x +PERO2              =  0.560G1N502f + 0.220GNN501R + 0.220GNN501S                 : ARR( 0.471E-13, -1350., 0.0);
+{ 16877} G2N503x +PERO3              =  0.600G1N502f + 0.200GNN501R + 0.200GNN501S                 : ARR( 0.142E-12, -1200., 0.0);
+{ 16878} G2N503x +PERO5              =  0.600G1N502f + 0.200GNN501R + 0.200GNN501S                 : ARR( 0.533E-11,   500., 0.0);
+{ 16879} G2N503x +PERO6              =  0.460G1N502f + 0.270GNN501R + 0.270GNN501S                 : ARR( 0.488E-13, -1250., 0.0);
+{ 16880} G2N503x +PERO9              =  0.800G1N502f + 0.200GNN501S                                : ARR( 0.100E-10,     0., 0.0);
+{ 16881} G1H503u                     =       G2O2000 +      GHN300A                                : ARR( 0.200E+15,  7074., 0.0);
+{ 16882} G1H503u                     =       GDO3000 +      GHD2000 +      GNO2                    : ARR( 0.200E+15,  6068., 0.0);
+{ 16883} GHH500W +GHO                =       GHH501l +      GHO2                                   : ARR( 0.408E-11,     0., 0.0);
+{ 16884} GHH500W +GHO                =       GHN5028 +      GHO                                    : ARR( 0.837E-11,     0., 0.0);
+{ 16885} GHH500W +GHO                =       GHN502Q +      GHO                                    : ARR( 0.163E-10,     0., 0.0);
+{ 16886} GHH500W +GHO                =       G2H500a                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 16887} GHH500W +GHO                =       G2H501r                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 16888} GHH500W+HV               =       G1H503v +      GNO2                                   :  0.100E+01*SUN;
+{ 16889} GHH500W+HV               =       G1H500p +      GHO                                    :  0.100E+01*SUN;
+{ 16890} GHH500W+HV               =       G1H501K +      GHO                                    :  0.100E+01*SUN;
+{ 16891} G2H501r +GNO                =       G1H501K +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 16892} G2H501r +GNO                =       GHN500c                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 16893} G2H501r +GHO2               =       GHH500W                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 16894} G2H501r +GNO3               =       G1H501K +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 16895} G2H501r +MEPERO             =  0.480G1H501K + 0.260GHN502M + 0.260GHN502Q                 : ARR( 0.164E-12,  -795., 0.0);
+{ 16896} G2H501r +PERO1              =  0.600G1H501K + 0.200GHN502M + 0.200GHN502Q                 : ARR( 0.126E-12,  -850., 0.0);
+{ 16897} G2H501r +PERO2              =  0.560G1H501K + 0.220GHN502M + 0.220GHN502Q                 : ARR( 0.471E-13, -1350., 0.0);
+{ 16898} G2H501r +PERO3              =  0.600G1H501K + 0.200GHN502M + 0.200GHN502Q                 : ARR( 0.142E-12, -1200., 0.0);
+{ 16899} G2H501r +PERO5              =  0.600G1H501K + 0.200GHN502M + 0.200GHN502Q                 : ARR( 0.533E-11,   500., 0.0);
+{ 16900} G2H501r +PERO6              =  0.460G1H501K + 0.270GHN502M + 0.270GHN502Q                 : ARR( 0.488E-13, -1250., 0.0);
+{ 16901} G2H501r +PERO9              =  0.800G1H501K + 0.200GHN502Q                                : ARR( 0.100E-10,     0., 0.0);
+{ 16902} G1H503v                     =       GDO3000 +      GHD2000 +      GHO                     : ARR( 0.200E+15,  4529., 0.0);
+{ 16903} GHN5027 +GHO                =       GHN501G +      GHO2                                   : ARR( 0.413E-11,     0., 0.0);
+{ 16904} GHN5027 +GHO                =       GHN5028 +      GHO2                                   : ARR( 0.212E-11,     0., 0.0);
+{ 16905} GHN5027 +GHO                =       GND500Y +      GHO                                    : ARR( 0.165E-10,     0., 0.0);
+{ 16906} GHN5027 +GHO                =       G2N503y                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 16907} GHN5027+HV               =       G1H503w +      GNO2                                   :  0.100E+01*SUN;
+{ 16908} GHN5027+HV               =       G1N502i +      GHO                                    :  0.100E+01*SUN;
+{ 16909} G2N503y +GNO                =       G1N502i +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 16910} G2N503y +GNO                =       GNN500c                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 16911} G2N503y +GHO2               =       GHN5027                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 16912} G2N503y +GNO3               =       G1N502i +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 16913} G2N503y +MEPERO             =  0.480G1N502i + 0.260GNO500P + 0.260GND500Y                 : ARR( 0.164E-12,  -795., 0.0);
+{ 16914} G2N503y +PERO1              =  0.600G1N502i + 0.200GNO500P + 0.200GND500Y                 : ARR( 0.126E-12,  -850., 0.0);
+{ 16915} G2N503y +PERO2              =  0.560G1N502i + 0.220GNO500P + 0.220GND500Y                 : ARR( 0.471E-13, -1350., 0.0);
+{ 16916} G2N503y +PERO3              =  0.600G1N502i + 0.200GNO500P + 0.200GND500Y                 : ARR( 0.142E-12, -1200., 0.0);
+{ 16917} G2N503y +PERO5              =  0.600G1N502i + 0.200GNO500P + 0.200GND500Y                 : ARR( 0.533E-11,   500., 0.0);
+{ 16918} G2N503y +PERO6              =  0.460G1N502i + 0.270GNO500P + 0.270GND500Y                 : ARR( 0.488E-13, -1250., 0.0);
+{ 16919} G2N503y +PERO9              =  0.800G1N502i + 0.200GND500Y                                : ARR( 0.100E-10,     0., 0.0);
+{ 16920} G1H503w                     =       GDO3000 +      GHD2000 +      GHO2                    : ARR( 0.200E+15,  3320., 0.0);
+{ 16921} GHN5028 +GHO                =       GHN5047 +      GHO2                                   : ARR( 0.414E-11,     0., 0.0);
+{ 16922} GHN5028 +GHO                =       GND500Z +      GHO                                    : ARR( 0.101E-10,     0., 0.0);
+{ 16923} GHN5028 +GHO                =       G2N503z                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 16924} GHN5028+HV               =       G1H503x +      GNO2                                   :  0.100E+01*SUN;
+{ 16925} GHN5028+HV               =       G3N4008 +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 16926} GHN5028+HV               =       GD02000 +      GHN3008                                :  0.100E+01*SUN;
+{ 16927} GHN5028+HV               =       G1N502k +      GHO                                    :  0.100E+01*SUN;
+{ 16928} G2N503z +GNO                =       G1N502k +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 16929} G2N503z +GNO                =       GNN500d                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 16930} G2N503z +GHO2               =       GHN5028                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 16931} G2N503z +GNO3               =       G1N502k +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 16932} G2N503z +MEPERO             =  0.480G1N502k + 0.260GNK500U + 0.260GND500Z                 : ARR( 0.164E-12,  -795., 0.0);
+{ 16933} G2N503z +PERO1              =  0.600G1N502k + 0.200GNK500U + 0.200GND500Z                 : ARR( 0.126E-12,  -850., 0.0);
+{ 16934} G2N503z +PERO2              =  0.560G1N502k + 0.220GNK500U + 0.220GND500Z                 : ARR( 0.471E-13, -1350., 0.0);
+{ 16935} G2N503z +PERO3              =  0.600G1N502k + 0.200GNK500U + 0.200GND500Z                 : ARR( 0.142E-12, -1200., 0.0);
+{ 16936} G2N503z +PERO5              =  0.600G1N502k + 0.200GNK500U + 0.200GND500Z                 : ARR( 0.533E-11,   500., 0.0);
+{ 16937} G2N503z +PERO6              =  0.460G1N502k + 0.270GNK500U + 0.270GND500Z                 : ARR( 0.488E-13, -1250., 0.0);
+{ 16938} G2N503z +PERO9              =  0.800G1N502k + 0.200GND500Z                                : ARR( 0.100E-10,     0., 0.0);
+{ 16939} G1H503x                     =       GDO3000 +      G3H2000                                : ARR( 0.200E+15,  2755., 0.0);
+{ 16940} GHH500X +GHO                =       GHH501m +      GHO2                                   : ARR( 0.406E-11,     0., 0.0);
+{ 16941} GHH500X +GHO                =       G2H501s                                               : ARR( 0.143E-11,     0., 0.0);
+{ 16942} GHH500X +GHO                =       GHN502A +      GHO                                    : ARR( 0.833E-11,     0., 0.0);
+{ 16943} GHH500X +GHO                =       GHN502R +      GHO                                    : ARR( 0.325E-11,     0., 0.0);
+{ 16944} GHH500X +GHO                =       G2H501t                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 16945} GHH500X +GHO                =       G2H501u                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 16946} GHH500X+HV               =       G1H503u +      GHO                                    :  0.100E+01*SUN;
+{ 16947} GHH500X+HV               =       G1H500r +      GNO2                                   :  0.100E+01*SUN;
+{ 16948} GHH500X+HV               =       G1H503q +      GHO                                    :  0.100E+01*SUN;
+{ 16949} G2H501s +GNO                =       G1H503y +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 16950} G2H501s +GNO                =       GHH501n                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 16951} G2H501s +GHO2               =       GHH501o                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 16952} G2H501s +GNO3               =       G1H503y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 16953} G2H501s +MEPERO             =  0.340G1H503y + 0.330GHH501E + 0.330GHH501p                 : ARR( 0.565E-13,  -845., 0.0);
+{ 16954} G2H501s +PERO1              =  0.460G1H503y + 0.270GHH501E + 0.270GHH501p                 : ARR( 0.434E-13,  -900., 0.0);
+{ 16955} G2H501s +PERO2              =  0.400G1H503y + 0.300GHH501E + 0.300GHH501p                 : ARR( 0.162E-13, -1400., 0.0);
+{ 16956} G2H501s +PERO3              =  0.460G1H503y + 0.270GHH501E + 0.270GHH501p                 : ARR( 0.488E-13, -1250., 0.0);
+{ 16957} G2H501s +PERO5              =  0.460G1H503y + 0.270GHH501E + 0.270GHH501p                 : ARR( 0.183E-11,   450., 0.0);
+{ 16958} G2H501s +PERO6              =  0.300G1H503y + 0.350GHH501E + 0.350GHH501p                 : ARR( 0.168E-13, -1300., 0.0);
+{ 16959} G2H501s +PERO9              =  0.650G1H503y + 0.350GHH501p                                : ARR( 0.100E-10,     0., 0.0);
+{ 16960} G2H501t +GNO                =       G1H503u +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 16961} G2H501t +GNO                =       GHN5026                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 16962} G2H501t +GHO2               =       GHH500X                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 16963} G2H501t +GNO3               =       G1H503u +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 16964} G2H501t +MEPERO             =  0.340G1H503u + 0.330GHN5029 + 0.330GHN502A                 : ARR( 0.565E-13,  -845., 0.0);
+{ 16965} G2H501t +PERO1              =  0.460G1H503u + 0.270GHN5029 + 0.270GHN502A                 : ARR( 0.434E-13,  -900., 0.0);
+{ 16966} G2H501t +PERO2              =  0.400G1H503u + 0.300GHN5029 + 0.300GHN502A                 : ARR( 0.162E-13, -1400., 0.0);
+{ 16967} G2H501t +PERO3              =  0.460G1H503u + 0.270GHN5029 + 0.270GHN502A                 : ARR( 0.488E-13, -1250., 0.0);
+{ 16968} G2H501t +PERO5              =  0.460G1H503u + 0.270GHN5029 + 0.270GHN502A                 : ARR( 0.183E-11,   450., 0.0);
+{ 16969} G2H501t +PERO6              =  0.300G1H503u + 0.350GHN5029 + 0.350GHN502A                 : ARR( 0.168E-13, -1300., 0.0);
+{ 16970} G2H501t +PERO9              =  0.650G1H503u + 0.350GHN502A                                : ARR( 0.100E-10,     0., 0.0);
+{ 16971} G2H501u +GNO                =       G1H503q +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 16972} G2H501u +GNO                =       GHN5024                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 16973} G2H501u +GHO2               =       GHH500X                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 16974} G2H501u +GNO3               =       G1H503q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 16975} G2H501u +MEPERO             =  0.480G1H503q + 0.260GHN502N + 0.260GHN502R                 : ARR( 0.164E-12,  -795., 0.0);
+{ 16976} G2H501u +PERO1              =  0.600G1H503q + 0.200GHN502N + 0.200GHN502R                 : ARR( 0.126E-12,  -850., 0.0);
+{ 16977} G2H501u +PERO2              =  0.560G1H503q + 0.220GHN502N + 0.220GHN502R                 : ARR( 0.471E-13, -1350., 0.0);
+{ 16978} G2H501u +PERO3              =  0.600G1H503q + 0.200GHN502N + 0.200GHN502R                 : ARR( 0.142E-12, -1200., 0.0);
+{ 16979} G2H501u +PERO5              =  0.600G1H503q + 0.200GHN502N + 0.200GHN502R                 : ARR( 0.533E-11,   500., 0.0);
+{ 16980} G2H501u +PERO6              =  0.460G1H503q + 0.270GHN502N + 0.270GHN502R                 : ARR( 0.488E-13, -1250., 0.0);
+{ 16981} G2H501u +PERO9              =  0.800G1H503q + 0.200GHN502R                                : ARR( 0.100E-10,     0., 0.0);
+{ 16982} G1H503y                     =       GHN5042 +      GHO                                    : ARR( 0.160E+12,  2905., 0.0);
+{ 16983} G1H503y                     =       GCH2O   +      GHH400a +      GHO2                    : ARR( 0.200E+15,  5296., 0.0);
+{ 16984} G1H503y                     =       GDO2000 +      GHN300A +      GHO                     : ARR( 0.200E+15,  4695., 0.0);
+{ 16985} GHH500Y +GHO                =       GHH500c +      GHO                                    : ARR( 0.481E-10,     0., 0.0);
+{ 16986} GHH500Y +GHO                =       GHH500a +      GHO                                    : ARR( 0.481E-10,     0., 0.0);
+{ 16987} GHH500Y +GHO                =       GHH500i +      GHO                                    : ARR( 0.188E-10,     0., 0.0);
+{ 16988} GHH500Y+HV               =       G1H503v +      GHO                                    :  0.100E+01*SUN;
+{ 16989} GHH500Y+HV               =       G1H500r +      GHO                                    :  0.100E+01*SUN;
+{ 16990} GHH500Y+HV               =       G1H5024 +      GHO                                    :  0.100E+01*SUN;
+{ 16991} GHH500Z +GHO                =       GHK500b +      GHO                                    : ARR( 0.491E-10,     0., 0.0);
+{ 16992} GHH500Z +GHO                =       GHH500a +      GHO2                                   : ARR( 0.123E-10,     0., 0.0);
+{ 16993} GHH500Z +GHO                =       GHD500M +      GHO                                    : ARR( 0.192E-10,     0., 0.0);
+{ 16994} GHH500Z+HV               =       G1H503w +      GHO                                    :  0.100E+01*SUN;
+{ 16995} GHH500Z+HV               =       G1H502C +      GHO                                    :  0.100E+01*SUN;
+{ 16996} GHH500a +GHO                =       GHH501W +      GHO2                                   : ARR( 0.403E-11,     0., 0.0);
+{ 16997} GHH500a +GHO                =       G2H501v                                               : ARR( 0.449E-11,     0., 0.0);
+{ 16998} GHH500a +GHO                =       GHK500c +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 16999} GHH500a +GHO                =       GHD500N +      GHO                                    : ARR( 0.983E-11,     0., 0.0);
+{ 17000} GHH500a +GHO                =       G2H501w                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 17001} GHH500a +GHO                =       G2H501x                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 17002} GHH500a+HV               =       G1H503x +      GHO                                    :  0.100E+01*SUN;
+{ 17003} GHH500a+HV               =       G3H4004 +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 17004} GHH500a+HV               =       G1H502F +      GHO                                    :  0.100E+01*SUN;
+{ 17005} G2H501v +GNO                =       G1H503z +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 17006} G2H501v +GNO                =       GHH501q                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 17007} G2H501v +GHO2               =       GHH501r                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 17008} G2H501v +GNO3               =       G1H503z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 17009} G2H501v +MEPERO             =  0.340G1H503z + 0.330GHH501H + 0.330GHH501s                 : ARR( 0.565E-13,  -845., 0.0);
+{ 17010} G2H501v +PERO1              =  0.460G1H503z + 0.270GHH501H + 0.270GHH501s                 : ARR( 0.434E-13,  -900., 0.0);
+{ 17011} G2H501v +PERO2              =  0.400G1H503z + 0.300GHH501H + 0.300GHH501s                 : ARR( 0.162E-13, -1400., 0.0);
+{ 17012} G2H501v +PERO3              =  0.460G1H503z + 0.270GHH501H + 0.270GHH501s                 : ARR( 0.488E-13, -1250., 0.0);
+{ 17013} G2H501v +PERO5              =  0.460G1H503z + 0.270GHH501H + 0.270GHH501s                 : ARR( 0.183E-11,   450., 0.0);
+{ 17014} G2H501v +PERO6              =  0.300G1H503z + 0.350GHH501H + 0.350GHH501s                 : ARR( 0.168E-13, -1300., 0.0);
+{ 17015} G2H501v +PERO9              =  0.650G1H503z + 0.350GHH501s                                : ARR( 0.100E-10,     0., 0.0);
+{ 17016} G2H501w +GNO                =       G1H503x +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 17017} G2H501w +GNO                =       GHN5028                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 17018} G2H501w +GHO2               =       GHH500a                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 17019} G2H501w +GNO3               =       G1H503x +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 17020} G2H501w +MEPERO             =  0.340G1H503x + 0.330GHK500a + 0.330GHK500c                 : ARR( 0.565E-13,  -845., 0.0);
+{ 17021} G2H501w +PERO1              =  0.460G1H503x + 0.270GHK500a + 0.270GHK500c                 : ARR( 0.434E-13,  -900., 0.0);
+{ 17022} G2H501w +PERO2              =  0.400G1H503x + 0.300GHK500a + 0.300GHK500c                 : ARR( 0.162E-13, -1400., 0.0);
+{ 17023} G2H501w +PERO3              =  0.460G1H503x + 0.270GHK500a + 0.270GHK500c                 : ARR( 0.488E-13, -1250., 0.0);
+{ 17024} G2H501w +PERO5              =  0.460G1H503x + 0.270GHK500a + 0.270GHK500c                 : ARR( 0.183E-11,   450., 0.0);
+{ 17025} G2H501w +PERO6              =  0.300G1H503x + 0.350GHK500a + 0.350GHK500c                 : ARR( 0.168E-13, -1300., 0.0);
+{ 17026} G2H501w +PERO9              =  0.650G1H503x + 0.350GHK500c                                : ARR( 0.100E-10,     0., 0.0);
+{ 17027} G2H501x +GNO                =       G1H502F +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 17028} G2H501x +GNO                =       GHN5014                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 17029} G2H501x +GHO2               =       GHH500a                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 17030} G2H501x +GNO3               =       G1H502F +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 17031} G2H501x +MEPERO             =  0.480G1H502F + 0.260GHK500J + 0.260GHD500N                 : ARR( 0.164E-12,  -795., 0.0);
+{ 17032} G2H501x +PERO1              =  0.600G1H502F + 0.200GHK500J + 0.200GHD500N                 : ARR( 0.126E-12,  -850., 0.0);
+{ 17033} G2H501x +PERO2              =  0.560G1H502F + 0.220GHK500J + 0.220GHD500N                 : ARR( 0.471E-13, -1350., 0.0);
+{ 17034} G2H501x +PERO3              =  0.600G1H502F + 0.200GHK500J + 0.200GHD500N                 : ARR( 0.142E-12, -1200., 0.0);
+{ 17035} G2H501x +PERO5              =  0.600G1H502F + 0.200GHK500J + 0.200GHD500N                 : ARR( 0.533E-11,   500., 0.0);
+{ 17036} G2H501x +PERO6              =  0.460G1H502F + 0.270GHK500J + 0.270GHD500N                 : ARR( 0.488E-13, -1250., 0.0);
+{ 17037} G2H501x +PERO9              =  0.800G1H502F + 0.200GHD500N                                : ARR( 0.100E-10,     0., 0.0);
+{ 17038} G1H503z                     =       GCH2O   +      GHH400b +      GHO2                    : ARR( 0.200E+15,  4465., 0.0);
+{ 17039} G1H503z                     =       GDO2000 +      GHD3001 +      GHO                     : ARR( 0.200E+15,  4976., 0.0);
+{ 17040} GHN5029 +GHO                =       GHN5055 +      GHO2                                   : ARR( 0.413E-11,     0., 0.0);
+{ 17041} GHN5029 +GHO                =       G2H501y                                               : ARR( 0.145E-11,     0., 0.0);
+{ 17042} GHN5029 +GHO                =       GHN502A +      GHO2                                   : ARR( 0.212E-11,     0., 0.0);
+{ 17043} GHN5029 +GHO                =       GND500b +      GHO                                    : ARR( 0.331E-11,     0., 0.0);
+{ 17044} GHN5029 +GHO                =       G2N5041                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 17045} GHN5029+HV               =       G1H500t +      GNO2                                   :  0.100E+01*SUN;
+{ 17046} GHN5029+HV               =       G1N504P +      GHO                                    :  0.100E+01*SUN;
+{ 17047} G2H501y +GNO                =       G1H5041 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 17048} G2H501y +GNO                =       GHN5056                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 17049} G2H501y +GHO2               =       GHH501t                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 17050} G2H501y +GNO3               =       G1H5041 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 17051} G2H501y +MEPERO             =  0.340G1H5041 + 0.330GHN503y + 0.330GHN5057                 : ARR( 0.565E-13,  -845., 0.0);
+{ 17052} G2H501y +PERO1              =  0.460G1H5041 + 0.270GHN503y + 0.270GHN5057                 : ARR( 0.434E-13,  -900., 0.0);
+{ 17053} G2H501y +PERO2              =  0.400G1H5041 + 0.300GHN503y + 0.300GHN5057                 : ARR( 0.162E-13, -1400., 0.0);
+{ 17054} G2H501y +PERO3              =  0.460G1H5041 + 0.270GHN503y + 0.270GHN5057                 : ARR( 0.488E-13, -1250., 0.0);
+{ 17055} G2H501y +PERO5              =  0.460G1H5041 + 0.270GHN503y + 0.270GHN5057                 : ARR( 0.183E-11,   450., 0.0);
+{ 17056} G2H501y +PERO6              =  0.300G1H5041 + 0.350GHN503y + 0.350GHN5057                 : ARR( 0.168E-13, -1300., 0.0);
+{ 17057} G2H501y +PERO9              =  0.650G1H5041 + 0.350GHN5057                                : ARR( 0.100E-10,     0., 0.0);
+{ 17058} G2N5041 +GNO                =       G1N504P +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 17059} G2N5041 +GNO                =       GNN501M                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 17060} G2N5041 +GHO2               =       GHN5029                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 17061} G2N5041 +GNO3               =       G1N504P +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 17062} G2N5041 +MEPERO             =  0.480G1N504P + 0.260GNO500Z + 0.260GND500b                 : ARR( 0.164E-12,  -795., 0.0);
+{ 17063} G2N5041 +PERO1              =  0.600G1N504P + 0.200GNO500Z + 0.200GND500b                 : ARR( 0.126E-12,  -850., 0.0);
+{ 17064} G2N5041 +PERO2              =  0.560G1N504P + 0.220GNO500Z + 0.220GND500b                 : ARR( 0.471E-13, -1350., 0.0);
+{ 17065} G2N5041 +PERO3              =  0.600G1N504P + 0.200GNO500Z + 0.200GND500b                 : ARR( 0.142E-12, -1200., 0.0);
+{ 17066} G2N5041 +PERO5              =  0.600G1N504P + 0.200GNO500Z + 0.200GND500b                 : ARR( 0.533E-11,   500., 0.0);
+{ 17067} G2N5041 +PERO6              =  0.460G1N504P + 0.270GNO500Z + 0.270GND500b                 : ARR( 0.488E-13, -1250., 0.0);
+{ 17068} G2N5041 +PERO9              =  0.800G1N504P + 0.200GND500b                                : ARR( 0.100E-10,     0., 0.0);
+{ 17069} G1H5041                     =       GDO2000 +      GHN300A +      GHO2                    : ARR( 0.200E+15,  3486., 0.0);
+{ 17070} GHH500b +GHO                =       GHH500c +      GHO2                                   : ARR( 0.123E-10,     0., 0.0);
+{ 17071} GHH500b +GHO                =       GHK500a +      GHO                                    : ARR( 0.491E-10,     0., 0.0);
+{ 17072} GHH500b +GHO                =       GHD500P +      GHO                                    : ARR( 0.192E-10,     0., 0.0);
+{ 17073} GHH500b+HV               =       G1H500t +      GHO                                    :  0.100E+01*SUN;
+{ 17074} GHH500b+HV               =       G1H5026 +      GHO                                    :  0.100E+01*SUN;
+{ 17075} GHO500Q +GHO                =       GHD500B +      GHO2                                   : ARR( 0.419E-11,     0., 0.0);
+{ 17076} GHO500Q +GHO                =       GHK500b +      GHO2                                   : ARR( 0.107E-10,     0., 0.0);
+{ 17077} GHO500Q +GHO                =       GHK500a +      GHO2                                   : ARR( 0.107E-10,     0., 0.0);
+{ 17078} GHO500Q +GHO                =       GDO500B +      GHO                                    : ARR( 0.167E-10,     0., 0.0);
+{ 17079} GHO500Q +GHO                =       G2O500T                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 17080} GHO500Q+HV               =       G1O500X +      GHO                                    :  0.100E+01*SUN;
+{ 17081} G2O500T +GNO                =       G1O500X +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 17082} G2O500T +GNO                =       GNO500N                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 17083} G2O500T +GHO2               =       GHO500Q                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 17084} G2O500T +GNO3               =       G1O500X +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 17085} G2O500T +MEPERO             =  0.480G1O500X + 0.260GOO500A + 0.260GDO500B                 : ARR( 0.164E-12,  -795., 0.0);
+{ 17086} G2O500T +PERO1              =  0.600G1O500X + 0.200GOO500A + 0.200GDO500B                 : ARR( 0.126E-12,  -850., 0.0);
+{ 17087} G2O500T +PERO2              =  0.560G1O500X + 0.220GOO500A + 0.220GDO500B                 : ARR( 0.471E-13, -1350., 0.0);
+{ 17088} G2O500T +PERO3              =  0.600G1O500X + 0.200GOO500A + 0.200GDO500B                 : ARR( 0.142E-12, -1200., 0.0);
+{ 17089} G2O500T +PERO5              =  0.600G1O500X + 0.200GOO500A + 0.200GDO500B                 : ARR( 0.533E-11,   500., 0.0);
+{ 17090} G2O500T +PERO6              =  0.460G1O500X + 0.270GOO500A + 0.270GDO500B                 : ARR( 0.488E-13, -1250., 0.0);
+{ 17091} G2O500T +PERO9              =  0.800G1O500X + 0.200GDO500B                                : ARR( 0.100E-10,     0., 0.0);
+{ 17092} GHK500a +GHO                =       GHD500p +      GHO2                                   : ARR( 0.406E-11,     0., 0.0);
+{ 17093} GHK500a +GHO                =       G2H501z                                               : ARR( 0.453E-11,     0., 0.0);
+{ 17094} GHK500a +GHO                =       GHK500c +      GHO2                                   : ARR( 0.634E-11,     0., 0.0);
+{ 17095} GHK500a +GHO                =       GDK500J +      GHO                                    : ARR( 0.990E-11,     0., 0.0);
+{ 17096} GHK500a +GHO                =       G2K500k                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 17097} GHK500a+HV               =       G3K4006 +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 17098} GHK500a+HV               =       G1K500d +      GHO                                    :  0.100E+01*SUN;
+{ 17099} G2H501z +GNO                =       G1H5042 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 17100} G2H501z +GNO                =       GHN5058                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 17101} G2H501z +GHO2               =       GHH501u                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 17102} G2H501z +GNO3               =       G1H5042 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 17103} G2H501z +MEPERO             =  0.340G1H5042 + 0.330GHK500g + 0.330GHK500r                 : ARR( 0.565E-13,  -845., 0.0);
+{ 17104} G2H501z +PERO1              =  0.460G1H5042 + 0.270GHK500g + 0.270GHK500r                 : ARR( 0.434E-13,  -900., 0.0);
+{ 17105} G2H501z +PERO2              =  0.400G1H5042 + 0.300GHK500g + 0.300GHK500r                 : ARR( 0.162E-13, -1400., 0.0);
+{ 17106} G2H501z +PERO3              =  0.460G1H5042 + 0.270GHK500g + 0.270GHK500r                 : ARR( 0.488E-13, -1250., 0.0);
+{ 17107} G2H501z +PERO5              =  0.460G1H5042 + 0.270GHK500g + 0.270GHK500r                 : ARR( 0.183E-11,   450., 0.0);
+{ 17108} G2H501z +PERO6              =  0.300G1H5042 + 0.350GHK500g + 0.350GHK500r                 : ARR( 0.168E-13, -1300., 0.0);
+{ 17109} G2H501z +PERO9              =  0.650G1H5042 + 0.350GHK500r                                : ARR( 0.100E-10,     0., 0.0);
+{ 17110} G2K500k +GNO                =       G1K500d +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 17111} G2K500k +GNO                =       GNK500R                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 17112} G2K500k +GHO2               =       GHK500a                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 17113} G2K500k +GNO3               =       G1K500d +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 17114} G2K500k +MEPERO             =  0.480G1K500d + 0.260GKO500F + 0.260GDK500J                 : ARR( 0.164E-12,  -795., 0.0);
+{ 17115} G2K500k +PERO1              =  0.600G1K500d + 0.200GKO500F + 0.200GDK500J                 : ARR( 0.126E-12,  -850., 0.0);
+{ 17116} G2K500k +PERO2              =  0.560G1K500d + 0.220GKO500F + 0.220GDK500J                 : ARR( 0.471E-13, -1350., 0.0);
+{ 17117} G2K500k +PERO3              =  0.600G1K500d + 0.200GKO500F + 0.200GDK500J                 : ARR( 0.142E-12, -1200., 0.0);
+{ 17118} G2K500k +PERO5              =  0.600G1K500d + 0.200GKO500F + 0.200GDK500J                 : ARR( 0.533E-11,   500., 0.0);
+{ 17119} G2K500k +PERO6              =  0.460G1K500d + 0.270GKO500F + 0.270GDK500J                 : ARR( 0.488E-13, -1250., 0.0);
+{ 17120} G2K500k +PERO9              =  0.800G1K500d + 0.200GDK500J                                : ARR( 0.100E-10,     0., 0.0);
+{ 17121} G1H5042                     =       GCH2O   +      GHD400J +      GHO2                    : ARR( 0.200E+15,  4465., 0.0);
+{ 17122} G1H5042                     =       GDO2000 +      GHD3001 +      GHO2                    : ARR( 0.200E+15,  3768., 0.0);
+{ 17123} GHD500K +GHO                =       GDD5003 +      GHO                                    : ARR( 0.532E-10,     0., 0.0);
+{ 17124} GHD500K +GHO                =       G3H500X                                               : ARR( 0.687E-10,     0., 0.0);
+{ 17125} GHD500K +GNO3               =       G3H500X +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 17126} GHD500K+HV               =       G1D500G +      GHO                                    :  0.100E+01*SUN;
+{ 17127} GHD500K+HV               =       G3H3000 +      G2D2000                                :  0.100E+01*SUN;
+{ 17128} GHD500K+HV               =       G2H400b +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 17129} G3H500X +GHO2               =  0.800GGH500P + 0.200GAH500R + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 17130} G3H500X +GNO                =       G2H400b +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 17131} G3H500X +GNO2               =       GPH500T                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 17132} G3H500X +GNO3               =       G2H400b +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 17133} G3H500X +MEPERO             =  0.685G2H400b + 0.315GAH500R + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 17134} G3H500X +PERO1              =  0.800G2H400b + 0.200GAH500R + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 17135} G3H500X +PERO2              =  0.750G2H400b + 0.250GAH500R + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 17136} G3H500X +PERO3              =  0.800G2H400b + 0.200GAH500R + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 17137} G3H500X +PERO5              =  0.650G2H400b + 0.350GAH500R + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 17138} G3H500X +PERO6              =  0.650G2H400b + 0.350GAH500R + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 17139} G3H500X +PERO9              =       G2H400b +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 17140} G2H400b +GNO                =       G1H400f +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 17141} G2H400b +GNO                =       GHN400Q                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 17142} G2H400b +GHO2               =       GHH400D                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 17143} G2H400b +GNO3               =       G1H400f +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 17144} G2H400b +MEPERO             =  0.480G1H400f + 0.260GHK4002 + 0.260GHD400D                 : ARR( 0.164E-12,  -795., 0.0);
+{ 17145} G2H400b +PERO1              =  0.600G1H400f + 0.200GHK4002 + 0.200GHD400D                 : ARR( 0.126E-12,  -850., 0.0);
+{ 17146} G2H400b +PERO2              =  0.560G1H400f + 0.220GHK4002 + 0.220GHD400D                 : ARR( 0.471E-13, -1350., 0.0);
+{ 17147} G2H400b +PERO3              =  0.600G1H400f + 0.200GHK4002 + 0.200GHD400D                 : ARR( 0.142E-12, -1200., 0.0);
+{ 17148} G2H400b +PERO5              =  0.600G1H400f + 0.200GHK4002 + 0.200GHD400D                 : ARR( 0.533E-11,   500., 0.0);
+{ 17149} G2H400b +PERO6              =  0.460G1H400f + 0.270GHK4002 + 0.270GHD400D                 : ARR( 0.488E-13, -1250., 0.0);
+{ 17150} G2H400b +PERO9              =  0.800G1H400f + 0.200GHD400D                                : ARR( 0.100E-10,     0., 0.0);
+{ 17151} G1H400f                     =       G3H3000 +      GCH2O                                  : ARR( 0.200E+15,  3576., 0.0);
+{ 17152} GHN502A +GHO                =       GHN5059 +      GHO2                                   : ARR( 0.134E-10,     0., 0.0);
+{ 17153} GHN502A +GHO                =       GND500c +      GHO                                    : ARR( 0.339E-11,     0., 0.0);
+{ 17154} GHN502A +GHO                =       G2N5042                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 17155} GHN502A+HV               =       G3K3001 +      GHD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 17156} GHN502A+HV               =       G1H500v +      GNO2                                   :  0.100E+01*SUN;
+{ 17157} GHN502A+HV               =       G1N504S +      GHO                                    :  0.100E+01*SUN;
+{ 17158} G2N5042 +GNO                =       G1N504S +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 17159} G2N5042 +GNO                =       GNN502J                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 17160} G2N5042 +GHO2               =       GHN502A                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 17161} G2N5042 +GNO3               =       G1N504S +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 17162} G2N5042 +MEPERO             =  0.480G1N504S + 0.260GNK500o + 0.260GND500c                 : ARR( 0.164E-12,  -795., 0.0);
+{ 17163} G2N5042 +PERO1              =  0.600G1N504S + 0.200GNK500o + 0.200GND500c                 : ARR( 0.126E-12,  -850., 0.0);
+{ 17164} G2N5042 +PERO2              =  0.560G1N504S + 0.220GNK500o + 0.220GND500c                 : ARR( 0.471E-13, -1350., 0.0);
+{ 17165} G2N5042 +PERO3              =  0.600G1N504S + 0.200GNK500o + 0.200GND500c                 : ARR( 0.142E-12, -1200., 0.0);
+{ 17166} G2N5042 +PERO5              =  0.600G1N504S + 0.200GNK500o + 0.200GND500c                 : ARR( 0.533E-11,   500., 0.0);
+{ 17167} G2N5042 +PERO6              =  0.460G1N504S + 0.270GNK500o + 0.270GND500c                 : ARR( 0.488E-13, -1250., 0.0);
+{ 17168} G2N5042 +PERO9              =  0.800G1N504S + 0.200GND500c                                : ARR( 0.100E-10,     0., 0.0);
+{ 17169} G1N504S +OXYGEN             =       GND500c +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 17170} G1N504S                     =       G2N5043                                               : ARR( 0.160E+12,  4982., 0.0);
+{ 17171} G1N504S                     =       GDK4005 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7323., 0.0);
+{ 17172} G2N5043 +GNO                =       G1N504T +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 17173} G2N5043 +GNO                =       GNN502r                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 17174} G2N5043 +GHO2               =       GHN505A                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 17175} G2N5043 +GNO3               =       G1N504T +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 17176} G2N5043 +MEPERO             =  0.340G1N504T + 0.330GNK5018 + 0.330GNK5016                 : ARR( 0.565E-13,  -845., 0.0);
+{ 17177} G2N5043 +PERO1              =  0.460G1N504T + 0.270GNK5018 + 0.270GNK5016                 : ARR( 0.434E-13,  -900., 0.0);
+{ 17178} G2N5043 +PERO2              =  0.400G1N504T + 0.300GNK5018 + 0.300GNK5016                 : ARR( 0.162E-13, -1400., 0.0);
+{ 17179} G2N5043 +PERO3              =  0.460G1N504T + 0.270GNK5018 + 0.270GNK5016                 : ARR( 0.488E-13, -1250., 0.0);
+{ 17180} G2N5043 +PERO5              =  0.460G1N504T + 0.270GNK5018 + 0.270GNK5016                 : ARR( 0.183E-11,   450., 0.0);
+{ 17181} G2N5043 +PERO6              =  0.300G1N504T + 0.350GNK5018 + 0.350GNK5016                 : ARR( 0.168E-13, -1300., 0.0);
+{ 17182} G2N5043 +PERO9              =  0.650G1N504T + 0.350GNK5016                                : ARR( 0.100E-10,     0., 0.0);
+{ 17183} G1N504T                     =       G3N3004 +      GDO2000                                : ARR( 0.200E+15,  3069., 0.0);
+{ 17184} GHH500c +GHO                =       GHH501v +      GHO2                                   : ARR( 0.139E-10,     0., 0.0);
+{ 17185} GHH500c +GHO                =       GHK500c +      GHO                                    : ARR( 0.274E-10,     0., 0.0);
+{ 17186} GHH500c +GHO                =       GHD500Q +      GHO                                    : ARR( 0.557E-10,     0., 0.0);
+{ 17187} GHH500c+HV               =       G3K3001 +      GHD2000 +      GHO                     :  0.100E+01*SUN;
+{ 17188} GHH500c+HV               =       G1H500v +      GHO                                    :  0.100E+01*SUN;
+{ 17189} GHH500c+HV               =       G1H5029 +      GHO                                    :  0.100E+01*SUN;
+{ 17190} GHK500b +GHO                =       GHD500C +      GHO2                                   : ARR( 0.136E-10,     0., 0.0);
+{ 17191} GHK500b +GHO                =       GHK500c +      GHO2                                   : ARR( 0.671E-11,     0., 0.0);
+{ 17192} GHK500b +GHO                =       GDK500K +      GHO                                    : ARR( 0.544E-10,     0., 0.0);
+{ 17193} GHK500b+HV               =       G3K3001 +      GHD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 17194} GHK500b+HV               =       G1K500a +      GHO                                    :  0.100E+01*SUN;
+{ 17195} GHK500c +GHO                =       GHD500q +      GHO2                                   : ARR( 0.132E-10,     0., 0.0);
+{ 17196} GHK500c +GHO                =       GDK500L +      GHO                                    : ARR( 0.102E-10,     0., 0.0);
+{ 17197} GHK500c +GHO                =       G2K500l                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 17198} GHK500c+HV               =       G3K3001 +      G3H2000                                :  0.100E+01*SUN;
+{ 17199} GHK500c+HV               =       G1K500e +      GHO                                    :  0.100E+01*SUN;
+{ 17200} G2K500l +GNO                =       G1K500e +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 17201} G2K500l +GNO                =       GNK500S                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 17202} G2K500l +GHO2               =       GHK500c                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 17203} G2K500l +GNO3               =       G1K500e +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 17204} G2K500l +MEPERO             =  0.480G1K500e + 0.260GKK5006 + 0.260GDK500L                 : ARR( 0.164E-12,  -795., 0.0);
+{ 17205} G2K500l +PERO1              =  0.600G1K500e + 0.200GKK5006 + 0.200GDK500L                 : ARR( 0.126E-12,  -850., 0.0);
+{ 17206} G2K500l +PERO2              =  0.560G1K500e + 0.220GKK5006 + 0.220GDK500L                 : ARR( 0.471E-13, -1350., 0.0);
+{ 17207} G2K500l +PERO3              =  0.600G1K500e + 0.200GKK5006 + 0.200GDK500L                 : ARR( 0.142E-12, -1200., 0.0);
+{ 17208} G2K500l +PERO5              =  0.600G1K500e + 0.200GKK5006 + 0.200GDK500L                 : ARR( 0.533E-11,   500., 0.0);
+{ 17209} G2K500l +PERO6              =  0.460G1K500e + 0.270GKK5006 + 0.270GDK500L                 : ARR( 0.488E-13, -1250., 0.0);
+{ 17210} G2K500l +PERO9              =  0.800G1K500e + 0.200GDK500L                                : ARR( 0.100E-10,     0., 0.0);
+{ 17211} GHN502B +GHO                =       GND500d +      GHO                                    : ARR( 0.344E-11,     0., 0.0);
+{ 17212} GHN502B +GHO                =       G3H500Y                                               : ARR( 0.222E-10,     0., 0.0);
+{ 17213} GHN502B +GHO                =       G2N5044                                               : ARR( 0.203E-11,  -190., 0.0);
+{ 17214} GHN502B +GNO3               =       G3H500Y +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 17215} GHN502B+HV               =       G1N502x +      GHO                                    :  0.100E+01*SUN;
+{ 17216} GHN502B+HV               =       G1H5043 +      GNO2                                   :  0.100E+01*SUN;
+{ 17217} GHN502B+HV               =       G2H400c +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 17218} GHN502B+HV               =       G2H3002 +      GD02000 +      GNO2                    :  0.100E+01*SUN;
+{ 17219} G3H500Y +GHO2               =  0.800GGH500k + 0.200GAH500o + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 17220} G3H500Y +GNO                =       G2H400c +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 17221} G3H500Y +GNO2               =       GPH500q                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 17222} G3H500Y +GNO3               =       G2H400c +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 17223} G3H500Y +MEPERO             =  0.685G2H400c + 0.315GAH500o + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 17224} G3H500Y +PERO1              =  0.800G2H400c + 0.200GAH500o + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 17225} G3H500Y +PERO2              =  0.750G2H400c + 0.250GAH500o + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 17226} G3H500Y +PERO3              =  0.800G2H400c + 0.200GAH500o + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 17227} G3H500Y +PERO5              =  0.650G2H400c + 0.350GAH500o + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 17228} G3H500Y +PERO6              =  0.650G2H400c + 0.350GAH500o + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 17229} G3H500Y +PERO9              =       G2H400c +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 17230} G2N5044 +GNO                =       G1N502x +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 17231} G2N5044 +GNO                =       GNN500h                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 17232} G2N5044 +GHO2               =       GHN502B                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 17233} G2N5044 +GNO3               =       G1N502x +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 17234} G2N5044 +MEPERO             =  0.480G1N502x + 0.260GND500J + 0.260GND500d                 : ARR( 0.164E-12,  -795., 0.0);
+{ 17235} G2N5044 +PERO1              =  0.600G1N502x + 0.200GND500J + 0.200GND500d                 : ARR( 0.126E-12,  -850., 0.0);
+{ 17236} G2N5044 +PERO2              =  0.560G1N502x + 0.220GND500J + 0.220GND500d                 : ARR( 0.471E-13, -1350., 0.0);
+{ 17237} G2N5044 +PERO3              =  0.600G1N502x + 0.200GND500J + 0.200GND500d                 : ARR( 0.142E-12, -1200., 0.0);
+{ 17238} G2N5044 +PERO5              =  0.600G1N502x + 0.200GND500J + 0.200GND500d                 : ARR( 0.533E-11,   500., 0.0);
+{ 17239} G2N5044 +PERO6              =  0.460G1N502x + 0.270GND500J + 0.270GND500d                 : ARR( 0.488E-13, -1250., 0.0);
+{ 17240} G2N5044 +PERO9              =  0.800G1N502x + 0.200GND500d                                : ARR( 0.100E-10,     0., 0.0);
+{ 17241} G1H5043                     =       G3H5000                                               : ARR( 0.800E+11,  4559., 0.0);
+{ 17242} G1H5043                     =       GCH2O   +      GDD4000 +      GHO                     : ARR( 0.200E+15,  7140., 0.0);
+{ 17243} G1H5043                     =       GHD2000 +      G2D3001                                : ARR( 0.200E+15,  7118., 0.0);
+{ 17244} G2H400c +GNO                =       G1H400g +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 17245} G2H400c +GNO                =       GHN400H                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 17246} G2H400c +GHO2               =       GHH400Z                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 17247} G2H400c +GNO3               =       G1H400g +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 17248} G2H400c +MEPERO             =  0.480G1H400g + 0.260GHN400A + 0.260GHN400G                 : ARR( 0.146E-12,  -445., 0.0);
+{ 17249} G2H400c +PERO1              =  0.600G1H400g + 0.200GHN400A + 0.200GHN400G                 : ARR( 0.112E-12,  -500., 0.0);
+{ 17250} G2H400c +PERO2              =  0.560G1H400g + 0.220GHN400A + 0.220GHN400G                 : ARR( 0.418E-13, -1000., 0.0);
+{ 17251} G2H400c +PERO3              =  0.600G1H400g + 0.200GHN400A + 0.200GHN400G                 : ARR( 0.126E-12,  -850., 0.0);
+{ 17252} G2H400c +PERO5              =  0.600G1H400g + 0.200GHN400A + 0.200GHN400G                 : ARR( 0.473E-11,   850., 0.0);
+{ 17253} G2H400c +PERO6              =  0.460G1H400g + 0.270GHN400A + 0.270GHN400G                 : ARR( 0.434E-13,  -900., 0.0);
+{ 17254} G2H400c +PERO9              =  0.800G1H400g + 0.200GHN400G                                : ARR( 0.100E-10,     0., 0.0);
+{ 17255} G1H400g                     =       GND4006 +      GHO                                    : ARR( 0.160E+12,  2905., 0.0);
+{ 17256} GHN502C +GHO                =       GNN501t +      GHO                                    : ARR( 0.999E-11,     0., 0.0);
+{ 17257} GHN502C +GHO                =       G2N502F                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 17258} GHN502C+HV               =       G1H5044 +      GNO2                                   :  0.100E+01*SUN;
+{ 17259} GHN502C+HV               =       G1H500z +      GNO2                                   :  0.100E+01*SUN;
+{ 17260} GHN502C+HV               =       G3N4006 +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 17261} GHN502C+HV               =       GDD2000 +      GHK3000 + 2.000GNO2                    :  0.100E+01*SUN;
+{ 17262} GHN502C+HV               =       G1N502Q +      GHO                                    :  0.100E+01*SUN;
+{ 17263} G1H5044 +OXYGEN             =       GHN5048 +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 17264} G1H5044                     =       GHD4004 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7175., 0.0);
+{ 17265} GHH500d +GHO                =       GHN502D +      GHO                                    : ARR( 0.267E-10,     0., 0.0);
+{ 17266} GHH500d +GHO                =       GHN502k +      GHO                                    : ARR( 0.100E-10,     0., 0.0);
+{ 17267} GHH500d +GHO                =       G2H500g                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 17268} GHH500d +GHO                =       G2H5021                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 17269} GHH500d+HV               =       G1H5045 +      GNO2                                   :  0.100E+01*SUN;
+{ 17270} GHH500d+HV               =       G1H500z +      GHO                                    :  0.100E+01*SUN;
+{ 17271} GHH500d+HV               =       G3H4002 +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 17272} GHH500d+HV               =       GDD2000 +      GHK3000 +      GHO     +      GNO2     :  0.100E+01*SUN;
+{ 17273} GHH500d+HV               =       G1H503m +      GHO                                    :  0.100E+01*SUN;
+{ 17274} G2H5021 +GNO                =       G1H503m +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 17275} G2H5021 +GNO                =       GHN5022                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 17276} G2H5021 +GHO2               =       GHH500d                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 17277} G2H5021 +GNO3               =       G1H503m +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 17278} G2H5021 +MEPERO             =  0.480G1H503m + 0.260GHN500x + 0.260GHN502k                 : ARR( 0.164E-12,  -795., 0.0);
+{ 17279} G2H5021 +PERO1              =  0.600G1H503m + 0.200GHN500x + 0.200GHN502k                 : ARR( 0.126E-12,  -850., 0.0);
+{ 17280} G2H5021 +PERO2              =  0.560G1H503m + 0.220GHN500x + 0.220GHN502k                 : ARR( 0.471E-13, -1350., 0.0);
+{ 17281} G2H5021 +PERO3              =  0.600G1H503m + 0.200GHN500x + 0.200GHN502k                 : ARR( 0.142E-12, -1200., 0.0);
+{ 17282} G2H5021 +PERO5              =  0.600G1H503m + 0.200GHN500x + 0.200GHN502k                 : ARR( 0.533E-11,   500., 0.0);
+{ 17283} G2H5021 +PERO6              =  0.460G1H503m + 0.270GHN500x + 0.270GHN502k                 : ARR( 0.488E-13, -1250., 0.0);
+{ 17284} G2H5021 +PERO9              =  0.800G1H503m + 0.200GHN502k                                : ARR( 0.100E-10,     0., 0.0);
+{ 17285} G1H5045 +OXYGEN             =       GHH501X +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 17286} G1H5045                     =       GHD4004 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5636., 0.0);
+{ 17287} GHN502D +GHO                =       GND500g +      GHO                                    : ARR( 0.102E-10,     0., 0.0);
+{ 17288} GHN502D +GHO                =       G2N502I                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 17289} GHN502D+HV               =       G1H5046 +      GNO2                                   :  0.100E+01*SUN;
+{ 17290} GHN502D+HV               =       G3N2000 +      G2H3002                                :  0.100E+01*SUN;
+{ 17291} GHN502D+HV               =       G3N4007 +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 17292} GHN502D+HV               =       G1N502T +      GHO                                    :  0.100E+01*SUN;
+{ 17293} G1H5046                     =       G3H4007 +      GCH2O                                  : ARR( 0.200E+15,  3552., 0.0);
+{ 17294} GHN502E +GHO                =       GNN501u +      GHO                                    : ARR( 0.993E-11,     0., 0.0);
+{ 17295} GHN502E +GHO                =       G2N502A                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 17296} GHN502E+HV               =       G1H5047 +      GNO2                                   :  0.100E+01*SUN;
+{ 17297} GHN502E+HV               =       G1H5011 +      GNO2                                   :  0.100E+01*SUN;
+{ 17298} GHN502E+HV               =       G3N4005 +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 17299} GHN502E+HV               =       G2D2000 +      GHN3008 +      GNO2                    :  0.100E+01*SUN;
+{ 17300} GHN502E+HV               =       G1N502L +      GHO                                    :  0.100E+01*SUN;
+{ 17301} G1H5047 +OXYGEN             =       GHN5047 +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{ 17302} GHH500e +GHO                =       GHN502G +      GHO                                    : ARR( 0.257E-10,     0., 0.0);
+{ 17303} GHH500e +GHO                =       GHN502l +      GHO                                    : ARR( 0.100E-10,     0., 0.0);
+{ 17304} GHH500e +GHO                =       G2H500h                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 17305} GHH500e +GHO                =       G2H5022                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 17306} GHH500e+HV               =       G1H5048 +      GNO2                                   :  0.100E+01*SUN;
+{ 17307} GHH500e+HV               =       G1H5011 +      GHO                                    :  0.100E+01*SUN;
+{ 17308} GHH500e+HV               =       G3H400D +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 17309} GHH500e+HV               =       G1H503p +      GHO                                    :  0.100E+01*SUN;
+{ 17310} G2H5022 +GNO                =       G1H503p +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 17311} G2H5022 +GNO                =       GHN5023                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 17312} G2H5022 +GHO2               =       GHH500e                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 17313} G2H5022 +GNO3               =       G1H503p +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 17314} G2H5022 +MEPERO             =  0.480G1H503p + 0.260GHN502K + 0.260GHN502l                 : ARR( 0.164E-12,  -795., 0.0);
+{ 17315} G2H5022 +PERO1              =  0.600G1H503p + 0.200GHN502K + 0.200GHN502l                 : ARR( 0.126E-12,  -850., 0.0);
+{ 17316} G2H5022 +PERO2              =  0.560G1H503p + 0.220GHN502K + 0.220GHN502l                 : ARR( 0.471E-13, -1350., 0.0);
+{ 17317} G2H5022 +PERO3              =  0.600G1H503p + 0.200GHN502K + 0.200GHN502l                 : ARR( 0.142E-12, -1200., 0.0);
+{ 17318} G2H5022 +PERO5              =  0.600G1H503p + 0.200GHN502K + 0.200GHN502l                 : ARR( 0.533E-11,   500., 0.0);
+{ 17319} G2H5022 +PERO6              =  0.460G1H503p + 0.270GHN502K + 0.270GHN502l                 : ARR( 0.488E-13, -1250., 0.0);
+{ 17320} G2H5022 +PERO9              =  0.800G1H503p + 0.200GHN502l                                : ARR( 0.100E-10,     0., 0.0);
+{ 17321} G1H5048 +OXYGEN             =       GHH501W +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{ 17322} GHN502F +GHO                =       GHN502G +      GHO2                                   : ARR( 0.663E-11,     0., 0.0);
+{ 17323} GHN502F +GHO                =       GND500h +      GHO                                    : ARR( 0.103E-10,     0., 0.0);
+{ 17324} GHN502F +GHO                =       G2N5045                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 17325} GHN502F+HV               =       G1H5049 +      GNO2                                   :  0.100E+01*SUN;
+{ 17326} GHN502F+HV               =       G3N400G +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 17327} GHN502F+HV               =       G1N504M +      GHO                                    :  0.100E+01*SUN;
+{ 17328} G2N5045 +GNO                =       G1N504M +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 17329} G2N5045 +GNO                =       GNN501K                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 17330} G2N5045 +GHO2               =       GHN502F                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 17331} G2N5045 +GNO3               =       G1N504M +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 17332} G2N5045 +MEPERO             =  0.480G1N504M + 0.260GNK500m + 0.260GND500h                 : ARR( 0.164E-12,  -795., 0.0);
+{ 17333} G2N5045 +PERO1              =  0.600G1N504M + 0.200GNK500m + 0.200GND500h                 : ARR( 0.126E-12,  -850., 0.0);
+{ 17334} G2N5045 +PERO2              =  0.560G1N504M + 0.220GNK500m + 0.220GND500h                 : ARR( 0.471E-13, -1350., 0.0);
+{ 17335} G2N5045 +PERO3              =  0.600G1N504M + 0.200GNK500m + 0.200GND500h                 : ARR( 0.142E-12, -1200., 0.0);
+{ 17336} G2N5045 +PERO5              =  0.600G1N504M + 0.200GNK500m + 0.200GND500h                 : ARR( 0.533E-11,   500., 0.0);
+{ 17337} G2N5045 +PERO6              =  0.460G1N504M + 0.270GNK500m + 0.270GND500h                 : ARR( 0.488E-13, -1250., 0.0);
+{ 17338} G2N5045 +PERO9              =  0.800G1N504M + 0.200GND500h                                : ARR( 0.100E-10,     0., 0.0);
+{ 17339} G1H5049 +OXYGEN             =       GHD500p +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{ 17340} GHN502G +GHO                =       GND500i +      GHO                                    : ARR( 0.100E-10,     0., 0.0);
+{ 17341} GHN502G +GHO                =       G2N502D                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 17342} GHN502G+HV               =       G1H504A +      GNO2                                   :  0.100E+01*SUN;
+{ 17343} GHN502G+HV               =       G3N3000 +      G3H2000                                :  0.100E+01*SUN;
+{ 17344} GHN502G+HV               =       G1N502O +      GHO                                    :  0.100E+01*SUN;
+{ 17345} G1H504A +OXYGEN             =       GHD500q +      GHO2                                   : ARR( 0.600E-13,   398., 0.0);
+{ 17346} GHN502H +GHO                =       GHN505B +      GHO2                                   : ARR( 0.850E-12,     0., 0.0);
+{ 17347} GHN502H +GHO                =       GNN501T +      GHO                                    : ARR( 0.340E-11,     0., 0.0);
+{ 17348} GHN502H +GHO                =       G2N5046                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 17349} GHN502H+HV               =       G1H5012 +      GNO2                                   :  0.100E+01*SUN;
+{ 17350} GHN502H+HV               =       G1H501X +      GNO2                                   :  0.100E+01*SUN;
+{ 17351} GHN502H+HV               =       G1N5037 +      GHO                                    :  0.100E+01*SUN;
+{ 17352} G2N5046 +GNO                =       G1N5037 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 17353} G2N5046 +GNO                =       GNN500j                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 17354} G2N5046 +GHO2               =       GHN502H                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 17355} G2N5046 +GNO3               =       G1N5037 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 17356} G2N5046 +MEPERO             =  0.480G1N5037 + 0.260GNN500m + 0.260GNN501T                 : ARR( 0.164E-12,  -795., 0.0);
+{ 17357} G2N5046 +PERO1              =  0.600G1N5037 + 0.200GNN500m + 0.200GNN501T                 : ARR( 0.126E-12,  -850., 0.0);
+{ 17358} G2N5046 +PERO2              =  0.560G1N5037 + 0.220GNN500m + 0.220GNN501T                 : ARR( 0.471E-13, -1350., 0.0);
+{ 17359} G2N5046 +PERO3              =  0.600G1N5037 + 0.200GNN500m + 0.200GNN501T                 : ARR( 0.142E-12, -1200., 0.0);
+{ 17360} G2N5046 +PERO5              =  0.600G1N5037 + 0.200GNN500m + 0.200GNN501T                 : ARR( 0.533E-11,   500., 0.0);
+{ 17361} G2N5046 +PERO6              =  0.460G1N5037 + 0.270GNN500m + 0.270GNN501T                 : ARR( 0.488E-13, -1250., 0.0);
+{ 17362} G2N5046 +PERO9              =  0.800G1N5037 + 0.200GNN501T                                : ARR( 0.100E-10,     0., 0.0);
+{ 17363} GHH500f +GHO                =       GHH501w +      GHO2                                   : ARR( 0.406E-11,     0., 0.0);
+{ 17364} GHH500f +GHO                =       GHN502I +      GHO                                    : ARR( 0.416E-10,     0., 0.0);
+{ 17365} GHH500f +GHO                =       GHN502S +      GHO                                    : ARR( 0.325E-11,     0., 0.0);
+{ 17366} GHH500f +GHO                =       G2H500i                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 17367} GHH500f +GHO                =       G2H5023                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 17368} GHH500f+HV               =       G1H5012 +      GHO                                    :  0.100E+01*SUN;
+{ 17369} GHH500f+HV               =       G1H504B +      GNO2                                   :  0.100E+01*SUN;
+{ 17370} GHH500f+HV               =       G1H501v +      GHO                                    :  0.100E+01*SUN;
+{ 17371} G2H5023 +GNO                =       G1H501v +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 17372} G2H5023 +GNO                =       GHN500s                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 17373} G2H5023 +GHO2               =       GHH500f                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 17374} G2H5023 +GNO3               =       G1H501v +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 17375} G2H5023 +MEPERO             =  0.480G1H501v + 0.260GHN500t + 0.260GHN502S                 : ARR( 0.164E-12,  -795., 0.0);
+{ 17376} G2H5023 +PERO1              =  0.600G1H501v + 0.200GHN500t + 0.200GHN502S                 : ARR( 0.126E-12,  -850., 0.0);
+{ 17377} G2H5023 +PERO2              =  0.560G1H501v + 0.220GHN500t + 0.220GHN502S                 : ARR( 0.471E-13, -1350., 0.0);
+{ 17378} G2H5023 +PERO3              =  0.600G1H501v + 0.200GHN500t + 0.200GHN502S                 : ARR( 0.142E-12, -1200., 0.0);
+{ 17379} G2H5023 +PERO5              =  0.600G1H501v + 0.200GHN500t + 0.200GHN502S                 : ARR( 0.533E-11,   500., 0.0);
+{ 17380} G2H5023 +PERO6              =  0.460G1H501v + 0.270GHN500t + 0.270GHN502S                 : ARR( 0.488E-13, -1250., 0.0);
+{ 17381} G2H5023 +PERO9              =  0.800G1H501v + 0.200GHN502S                                : ARR( 0.100E-10,     0., 0.0);
+{ 17382} G1H504B                     =       GHH501O +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{ 17383} GHN502I +GHO                =       GHN505C +      GHO2                                   : ARR( 0.263E-11,     0., 0.0);
+{ 17384} GHN502I +GHO                =       GND500e +      GHO                                    : ARR( 0.345E-11,     0., 0.0);
+{ 17385} GHN502I +GHO                =       G2N5047                                               : ARR( 0.204E-11,  -190., 0.0);
+{ 17386} GHN502I+HV               =       G3K2001 +      G2H3008                                :  0.100E+01*SUN;
+{ 17387} GHN502I+HV               =       GKO3000 +      GDD2000 +      GHO     +      GNO2     :  0.100E+01*SUN;
+{ 17388} GHN502I+HV               =       G1H502j +      GNO2                                   :  0.100E+01*SUN;
+{ 17389} GHN502I+HV               =       G1N5039 +      GHO                                    :  0.100E+01*SUN;
+{ 17390} G2N5047 +GNO                =       G1N5039 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 17391} G2N5047 +GNO                =       GNN500l                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 17392} G2N5047 +GHO2               =       GHN502I                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 17393} G2N5047 +GNO3               =       G1N5039 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 17394} G2N5047 +MEPERO             =  0.480G1N5039 + 0.260GNK500N + 0.260GND500e                 : ARR( 0.164E-12,  -795., 0.0);
+{ 17395} G2N5047 +PERO1              =  0.600G1N5039 + 0.200GNK500N + 0.200GND500e                 : ARR( 0.126E-12,  -850., 0.0);
+{ 17396} G2N5047 +PERO2              =  0.560G1N5039 + 0.220GNK500N + 0.220GND500e                 : ARR( 0.471E-13, -1350., 0.0);
+{ 17397} G2N5047 +PERO3              =  0.600G1N5039 + 0.200GNK500N + 0.200GND500e                 : ARR( 0.142E-12, -1200., 0.0);
+{ 17398} G2N5047 +PERO5              =  0.600G1N5039 + 0.200GNK500N + 0.200GND500e                 : ARR( 0.533E-11,   500., 0.0);
+{ 17399} G2N5047 +PERO6              =  0.460G1N5039 + 0.270GNK500N + 0.270GND500e                 : ARR( 0.488E-13, -1250., 0.0);
+{ 17400} G2N5047 +PERO9              =  0.800G1N5039 + 0.200GND500e                                : ARR( 0.100E-10,     0., 0.0);
+{ 17401} GHN400G +GHO                =       GND400D +      GHO                                    : ARR( 0.328E-11,     0., 0.0);
+{ 17402} GHN400G +GHO                =       G3H400E                                               : ARR( 0.212E-10,     0., 0.0);
+{ 17403} GHN400G +GHO                =       G2N400i                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 17404} GHN400G +GNO3               =       G3H400E +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 17405} GHN400G+HV               =       G1N400I +      GHO                                    :  0.100E+01*SUN;
+{ 17406} GHN400G+HV               =       G1H400G +      GNO2                                   :  0.100E+01*SUN;
+{ 17407} GHN400G+HV               =       G2H3008 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 17408} GHN400G+HV               =       GDD2000 +      GD02000 +      GHO     +      GNO2     :  0.100E+01*SUN;
+{ 17409} G3H400E +GHO2               =  0.800GGH400I + 0.200GAH400L + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 17410} G3H400E +GNO                =       G2H3008 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 17411} G3H400E +GNO2               =       GPH400C                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 17412} G3H400E +GNO3               =       G2H3008 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 17413} G3H400E +MEPERO             =  0.685G2H3008 + 0.315GAH400L + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 17414} G3H400E +PERO1              =  0.800G2H3008 + 0.200GAH400L + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 17415} G3H400E +PERO2              =  0.750G2H3008 + 0.250GAH400L + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 17416} G3H400E +PERO3              =  0.800G2H3008 + 0.200GAH400L + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 17417} G3H400E +PERO5              =  0.650G2H3008 + 0.350GAH400L + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 17418} G3H400E +PERO6              =  0.650G2H3008 + 0.350GAH400L + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 17419} G3H400E +PERO9              =       G2H3008 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 17420} G2N400i +GNO                =       G1N400I +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 17421} G2N400i +GNO                =       GNN4001                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 17422} G2N400i +GHO2               =       GHN400G                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 17423} G2N400i +GNO3               =       G1N400I +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 17424} G2N400i +MEPERO             =  0.480G1N400I + 0.260GND4002 + 0.260GND400D                 : ARR( 0.164E-12,  -795., 0.0);
+{ 17425} G2N400i +PERO1              =  0.600G1N400I + 0.200GND4002 + 0.200GND400D                 : ARR( 0.126E-12,  -850., 0.0);
+{ 17426} G2N400i +PERO2              =  0.560G1N400I + 0.220GND4002 + 0.220GND400D                 : ARR( 0.471E-13, -1350., 0.0);
+{ 17427} G2N400i +PERO3              =  0.600G1N400I + 0.200GND4002 + 0.200GND400D                 : ARR( 0.142E-12, -1200., 0.0);
+{ 17428} G2N400i +PERO5              =  0.600G1N400I + 0.200GND4002 + 0.200GND400D                 : ARR( 0.533E-11,   500., 0.0);
+{ 17429} G2N400i +PERO6              =  0.460G1N400I + 0.270GND4002 + 0.270GND400D                 : ARR( 0.488E-13, -1250., 0.0);
+{ 17430} G2N400i +PERO9              =  0.800G1N400I + 0.200GND400D                                : ARR( 0.100E-10,     0., 0.0);
+{ 17431} GHH500g +GHO                =       GHD500R +      GHO                                    : ARR( 0.187E-10,     0., 0.0);
+{ 17432} GHH500g +GHO                =       GHD500A +      GHO                                    : ARR( 0.478E-10,     0., 0.0);
+{ 17433} GHH500g +GHO                =       G3H500Z                                               : ARR( 0.241E-10,     0., 0.0);
+{ 17434} GHH500g +GNO3               =       G3H500Z +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 17435} GHH500g+HV               =       G1H501w +      GHO                                    :  0.100E+01*SUN;
+{ 17436} GHH500g+HV               =       G1H5043 +      GHO                                    :  0.100E+01*SUN;
+{ 17437} GHH500g+HV               =       G2H400d +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 17438} GHH500g+HV               =       G2H3002 +      GD02000 +      GHO                     :  0.100E+01*SUN;
+{ 17439} G3H500Z +GHO2               =  0.800GGH500l + 0.200GAH500p + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 17440} G3H500Z +GNO                =       G2H400d +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 17441} G3H500Z +GNO2               =       GPH500r                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 17442} G3H500Z +GNO3               =       G2H400d +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 17443} G3H500Z +MEPERO             =  0.685G2H400d + 0.315GAH500p + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 17444} G3H500Z +PERO1              =  0.800G2H400d + 0.200GAH500p + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 17445} G3H500Z +PERO2              =  0.750G2H400d + 0.250GAH500p + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 17446} G3H500Z +PERO3              =  0.800G2H400d + 0.200GAH500p + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 17447} G3H500Z +PERO5              =  0.650G2H400d + 0.350GAH500p + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 17448} G3H500Z +PERO6              =  0.650G2H400d + 0.350GAH500p + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 17449} G3H500Z +PERO9              =       G2H400d +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 17450} G2H400d +GNO                =       G1H400h +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 17451} G2H400d +GNO                =       GHH4007                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 17452} G2H400d +GHO2               =       GHH400c                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 17453} G2H400d +GNO3               =       G1H400h +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 17454} G2H400d +MEPERO             =  0.480G1H400h + 0.260GHH4004 + 0.260GHH400B                 : ARR( 0.146E-12,  -445., 0.0);
+{ 17455} G2H400d +PERO1              =  0.600G1H400h + 0.200GHH4004 + 0.200GHH400B                 : ARR( 0.112E-12,  -500., 0.0);
+{ 17456} G2H400d +PERO2              =  0.560G1H400h + 0.220GHH4004 + 0.220GHH400B                 : ARR( 0.418E-13, -1000., 0.0);
+{ 17457} G2H400d +PERO3              =  0.600G1H400h + 0.200GHH4004 + 0.200GHH400B                 : ARR( 0.126E-12,  -850., 0.0);
+{ 17458} G2H400d +PERO5              =  0.600G1H400h + 0.200GHH4004 + 0.200GHH400B                 : ARR( 0.473E-11,   850., 0.0);
+{ 17459} G2H400d +PERO6              =  0.460G1H400h + 0.270GHH4004 + 0.270GHH400B                 : ARR( 0.434E-13,  -900., 0.0);
+{ 17460} G2H400d +PERO9              =  0.800G1H400h + 0.200GHH400B                                : ARR( 0.100E-10,     0., 0.0);
+{ 17461} G1H400h                     =       GHD4006 +      GHO                                    : ARR( 0.160E+12,  2186., 0.0);
+{ 17462} GNN501N +GHO                =       GNN501U +      GHO2                                   : ARR( 0.879E-12,     0., 0.0);
+{ 17463} GNN501N +GHO                =       G2N501u                                               : ARR( 0.618E-13,     0., 0.0);
+{ 17464} GNN501N +GHO                =       G1N501x                                               : ARR( 0.230E-17,    85., 2.0);
+{ 17465} GNN501N+HV               =       G1N501q +      GNO2                                   :  0.100E+01*SUN;
+{ 17466} GNN501N+HV               =       G1N501m +      GNO2                                   :  0.100E+01*SUN;
+{ 17467} GNN501N+HV               =       G1N503Q +      GNO2                                   :  0.100E+01*SUN;
+{ 17468} GHN502J +GHO                =       GHN504k +      GHO2                                   : ARR( 0.842E-12,     0., 0.0);
+{ 17469} GHN502J +GHO                =       GNN501P +      GHO                                    : ARR( 0.862E-11,     0., 0.0);
+{ 17470} GHN502J +GHO                =       G2N501j                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 17471} GHN502J+HV               =       G1H504C +      GNO2                                   :  0.100E+01*SUN;
+{ 17472} GHN502J+HV               =       G1N501m +      GHO                                    :  0.100E+01*SUN;
+{ 17473} GHN502J+HV               =       G1H504D +      GNO2                                   :  0.100E+01*SUN;
+{ 17474} G1H504C                     =       GCH2O   +      GHN400J +      GHO2                    : ARR( 0.200E+15,  5296., 0.0);
+{ 17475} G1H504C                     =       GDO2000 +      GND3000 +      GHO                     : ARR( 0.200E+15,  5200., 0.0);
+{ 17476} G1H504D +OXYGEN             =       GHN505D +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{ 17477} G1H504D                     =       GHK500J +      GNO2                                   : ARR( 0.800E+11,  4024., 0.0);
+{ 17478} GNN501O +GHO                =       GNN502k +      GHO2                                   : ARR( 0.918E-12,     0., 0.0);
+{ 17479} GNN501O +GHO                =       GNN501P +      GHO2                                   : ARR( 0.235E-11,     0., 0.0);
+{ 17480} GNN501O +GHO                =       G2N503j                                               : ARR( 0.323E-12,     0., 0.0);
+{ 17481} GNN501O+HV               =       G1N501s +      GNO2                                   :  0.100E+01*SUN;
+{ 17482} GNN501O+HV               =       G1N504U +      GNO2                                   :  0.100E+01*SUN;
+{ 17483} G1N504U +OXYGEN             =       GND501B +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{ 17484} G1N504U                     =       GKO500F +      GNO2                                   : ARR( 0.800E+11,  4024., 0.0);
+{ 17485} GNN501P +GHO                =       GNN501h +      GHO2                                   : ARR( 0.804E-12,     0., 0.0);
+{ 17486} GNN501P +GHO                =       GNK500n +      GNO2                                   : ARR( 0.718E-13,     0., 0.0);
+{ 17487} GNN501P +GHO                =       G2N5048                                               : ARR( 0.172E-12,     0., 0.0);
+{ 17488} GNN501P +GHO                =       GND500x +      GNO2                                   : ARR( 0.146E-12,     0., 0.0);
+{ 17489} GNN501P +GHO                =       G1N5024                                               : ARR( 0.210E-17,    85., 2.0);
+{ 17490} GNN501P+HV               =       G1N501t +      GNO2                                   :  0.100E+01*SUN;
+{ 17491} GNN501P+HV               =       G3N3004 +      G2N2000                                :  0.100E+01*SUN;
+{ 17492} GNN501P+HV               =       G1N503T +      GNO2                                   :  0.100E+01*SUN;
+{ 17493} G2N5048 +GNO                =       G1N504W +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 17494} G2N5048 +GNO                =       GNN502s                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 17495} G2N5048 +GHO2               =       GHN505E                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 17496} G2N5048 +GNO3               =       G1N504W +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 17497} G2N5048 +MEPERO             =  0.340G1N504W + 0.330GNN501q + 0.330GNN501s                 : ARR( 0.565E-13,  -845., 0.0);
+{ 17498} G2N5048 +PERO1              =  0.460G1N504W + 0.270GNN501q + 0.270GNN501s                 : ARR( 0.434E-13,  -900., 0.0);
+{ 17499} G2N5048 +PERO2              =  0.400G1N504W + 0.300GNN501q + 0.300GNN501s                 : ARR( 0.162E-13, -1400., 0.0);
+{ 17500} G2N5048 +PERO3              =  0.460G1N504W + 0.270GNN501q + 0.270GNN501s                 : ARR( 0.488E-13, -1250., 0.0);
+{ 17501} G2N5048 +PERO5              =  0.460G1N504W + 0.270GNN501q + 0.270GNN501s                 : ARR( 0.183E-11,   450., 0.0);
+{ 17502} G2N5048 +PERO6              =  0.300G1N504W + 0.350GNN501q + 0.350GNN501s                 : ARR( 0.168E-13, -1300., 0.0);
+{ 17503} G2N5048 +PERO9              =  0.650G1N504W + 0.350GNN501s                                : ARR( 0.100E-10,     0., 0.0);
+{ 17504} G1N504W                     =       G3N3004 +      GND2000                                : ARR( 0.200E+15,  3067., 0.0);
+{ 17505} GNN501Q +GHO                =       GNN501u +      GHO2                                   : ARR( 0.262E-11,     0., 0.0);
+{ 17506} GNN501Q +GHO                =       G1N502L                                               : ARR( 0.224E-17,    85., 2.0);
+{ 17507} GNN501Q+HV               =       G3K2001 +      GND3000 +      GNO2                    :  0.100E+01*SUN;
+{ 17508} GNN501Q+HV               =       GNK3001 +      G2D2000 +      GNO2                    :  0.100E+01*SUN;
+{ 17509} GNN501Q+HV               =       G1N501n +      GNO2                                   :  0.100E+01*SUN;
+{ 17510} GNN501Q+HV               =       G1N503R +      GNO2                                   :  0.100E+01*SUN;
+{ 17511} GHN502K +GHO                =       GHN502l +      GHO2                                   : ARR( 0.254E-11,     0., 0.0);
+{ 17512} GHN502K +GHO                =       GNK500n +      GHO                                    : ARR( 0.260E-10,     0., 0.0);
+{ 17513} GHN502K +GHO                =       G2N501k                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 17514} GHN502K+HV               =       G3K2001 +      GND3000 +      GHO                     :  0.100E+01*SUN;
+{ 17515} GHN502K+HV               =       G1N501n +      GHO                                    :  0.100E+01*SUN;
+{ 17516} GHN502K+HV               =       G1H504E +      GNO2                                   :  0.100E+01*SUN;
+{ 17517} G1H504E +OXYGEN             =       GHD500t +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{ 17518} GNK500m +GHO                =       GND500h +      GHO2                                   : ARR( 0.253E-11,     0., 0.0);
+{ 17519} GNK500m +GHO                =       GNK500n +      GHO2                                   : ARR( 0.650E-11,     0., 0.0);
+{ 17520} GNK500m +GHO                =       G2N5049                                               : ARR( 0.926E-12,     0., 0.0);
+{ 17521} GNK500m+HV               =       G3K2001 +      GND3000 +      GHO2                    :  0.100E+01*SUN;
+{ 17522} GNK500m+HV               =       G1K500t +      GNO2                                   :  0.100E+01*SUN;
+{ 17523} G2N5049 +GNO                =       G1N504X +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 17524} G2N5049 +GNO                =       GNN502O                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 17525} G2N5049 +GHO2               =       GHN503h                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 17526} G2N5049 +GNO3               =       G1N504X +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 17527} G2N5049 +MEPERO             =  0.340G1N504X + 0.330GNK500t + 0.330GNK500y                 : ARR( 0.565E-13,  -845., 0.0);
+{ 17528} G2N5049 +PERO1              =  0.460G1N504X + 0.270GNK500t + 0.270GNK500y                 : ARR( 0.434E-13,  -900., 0.0);
+{ 17529} G2N5049 +PERO2              =  0.400G1N504X + 0.300GNK500t + 0.300GNK500y                 : ARR( 0.162E-13, -1400., 0.0);
+{ 17530} G2N5049 +PERO3              =  0.460G1N504X + 0.270GNK500t + 0.270GNK500y                 : ARR( 0.488E-13, -1250., 0.0);
+{ 17531} G2N5049 +PERO5              =  0.460G1N504X + 0.270GNK500t + 0.270GNK500y                 : ARR( 0.183E-11,   450., 0.0);
+{ 17532} G2N5049 +PERO6              =  0.300G1N504X + 0.350GNK500t + 0.350GNK500y                 : ARR( 0.168E-13, -1300., 0.0);
+{ 17533} G2N5049 +PERO9              =  0.650G1N504X + 0.350GNK500y                                : ARR( 0.100E-10,     0., 0.0);
+{ 17534} G1K500t +OXYGEN             =       GDK500Q +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{ 17535} G1N504X                     =       GDK3001 +      GND2000 +      GHO2                    : ARR( 0.200E+15,  3765., 0.0);
+{ 17536} GNK500n +GHO                =       GND500i +      GHO2                                   : ARR( 0.258E-11,     0., 0.0);
+{ 17537} GNK500n +GHO                =       G2N504A                                               : ARR( 0.181E-12,     0., 0.0);
+{ 17538} GNK500n +GHO                =       GDK500P +      GNO2                                   : ARR( 0.153E-12,     0., 0.0);
+{ 17539} GNK500n+HV               =       G3K2001 +      G3N3000                                :  0.100E+01*SUN;
+{ 17540} GNK500n+HV               =       G1K500g +      GNO2                                   :  0.100E+01*SUN;
+{ 17541} G2N504A +GNO                =       G1N504Y +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 17542} G2N504A +GNO                =       GNN502P                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 17543} G2N504A +GHO2               =       GHN505F                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 17544} G2N504A +GNO3               =       G1N504Y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 17545} G2N504A +MEPERO             =  0.340G1N504Y + 0.330GNK500u + 0.330GNK500z                 : ARR( 0.565E-13,  -845., 0.0);
+{ 17546} G2N504A +PERO1              =  0.460G1N504Y + 0.270GNK500u + 0.270GNK500z                 : ARR( 0.434E-13,  -900., 0.0);
+{ 17547} G2N504A +PERO2              =  0.400G1N504Y + 0.300GNK500u + 0.300GNK500z                 : ARR( 0.162E-13, -1400., 0.0);
+{ 17548} G2N504A +PERO3              =  0.460G1N504Y + 0.270GNK500u + 0.270GNK500z                 : ARR( 0.488E-13, -1250., 0.0);
+{ 17549} G2N504A +PERO5              =  0.460G1N504Y + 0.270GNK500u + 0.270GNK500z                 : ARR( 0.183E-11,   450., 0.0);
+{ 17550} G2N504A +PERO6              =  0.300G1N504Y + 0.350GNK500u + 0.350GNK500z                 : ARR( 0.168E-13, -1300., 0.0);
+{ 17551} G2N504A +PERO9              =  0.650G1N504Y + 0.350GNK500z                                : ARR( 0.100E-10,     0., 0.0);
+{ 17552} G1N504Y                     =       G3K2001 +      GND2000 +      GCO                     : ARR( 0.200E+15,  3324., 0.0);
+{ 17553} GHN502L +GHO                =       GHN504t +      GHO2                                   : ARR( 0.411E-11,     0., 0.0);
+{ 17554} GHN502L +GHO                =       GNN501Q +      GHO                                    : ARR( 0.843E-11,     0., 0.0);
+{ 17555} GHN502L +GHO                =       G2N501m                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 17556} GHN502L+HV               =       G1N501q +      GHO                                    :  0.100E+01*SUN;
+{ 17557} GHN502L+HV               =       G1H504F +      GNO2                                   :  0.100E+01*SUN;
+{ 17558} GHN502L+HV               =       G1H504G +      GNO2                                   :  0.100E+01*SUN;
+{ 17559} G1H504F                     =       GDO2000 +      GND3000 +      GHO                     : ARR( 0.200E+15,  4529., 0.0);
+{ 17560} G1H504G                     =       GNK500U +      GHO                                    : ARR( 0.800E+11,  2398., 0.0);
+{ 17561} GND500W +GHO                =       GND500X +      GHO2                                   : ARR( 0.418E-11,     0., 0.0);
+{ 17562} GND500W +GHO                =       G3N500b                                               : ARR( 0.216E-10,     0., 0.0);
+{ 17563} GND500W +GNO3               =       G3N500b +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 17564} GND500W+HV               =       G1D500j +      GNO2                                   :  0.100E+01*SUN;
+{ 17565} GND500W+HV               =       G2N4008 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 17566} GND500W+HV               =       G2D3004 +      GD02000 +      GNO2                    :  0.100E+01*SUN;
+{ 17567} G3N500b +GHO2               =  0.800GGN500l + 0.200GAN500P + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 17568} G3N500b +GNO                =       G2N4008 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 17569} G3N500b +GNO2               =       GPN500P                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 17570} G3N500b +GNO3               =       G2N4008 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 17571} G3N500b +MEPERO             =  0.685G2N4008 + 0.315GAN500P + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 17572} G3N500b +PERO1              =  0.800G2N4008 + 0.200GAN500P + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 17573} G3N500b +PERO2              =  0.750G2N4008 + 0.250GAN500P + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 17574} G3N500b +PERO3              =  0.800G2N4008 + 0.200GAN500P + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 17575} G3N500b +PERO5              =  0.650G2N4008 + 0.350GAN500P + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 17576} G3N500b +PERO6              =  0.650G2N4008 + 0.350GAN500P + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 17577} G3N500b +PERO9              =       G2N4008 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 17578} G1D500j                     =       G2O2000 +      GDD3000                                : ARR( 0.200E+15,  6436., 0.0);
+{ 17579} G1D500j                     =       GDO3000 +      G2D2000                                : ARR( 0.200E+15,  6974., 0.0);
+{ 17580} GNN501R +GHO                =       GNN502S +      GHO2                                   : ARR( 0.428E-11,     0., 0.0);
+{ 17581} GNN501R +GHO                =       G2N502S                                               : ARR( 0.301E-12,     0., 0.0);
+{ 17582} GNN501R +GHO                =       GNN501S +      GHO2                                   : ARR( 0.856E-12,     0., 0.0);
+{ 17583} GNN501R+HV               =       G1N504Z +      GNO2                                   :  0.100E+01*SUN;
+{ 17584} GNN501R+HV               =       G1N501r +      GNO2                                   :  0.100E+01*SUN;
+{ 17585} G1N504Z                     =       GDO2000 +      GDO3000 +      GNO2                    : ARR( 0.200E+15,  6068., 0.0);
+{ 17586} G1N504Z                     =       GND3004 +      G2O2000                                : ARR( 0.200E+15,  7074., 0.0);
+{ 17587} GHN502M +GHO                =       GHN505G +      GHO2                                   : ARR( 0.416E-11,     0., 0.0);
+{ 17588} GHN502M +GHO                =       GNK500U +      GHO                                    : ARR( 0.852E-11,     0., 0.0);
+{ 17589} GHN502M +GHO                =       GHN502Q +      GHO2                                   : ARR( 0.416E-11,     0., 0.0);
+{ 17590} GHN502M +GHO                =       G2N501n                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 17591} GHN502M+HV               =       G1H504H +      GNO2                                   :  0.100E+01*SUN;
+{ 17592} GHN502M+HV               =       G1N501r +      GHO                                    :  0.100E+01*SUN;
+{ 17593} G1H504H                     =       GDO2000 +      GDO3000 +      GHO                     : ARR( 0.200E+15,  4529., 0.0);
+{ 17594} GHN502N +GHO                =       GNK500o +      GHO                                    : ARR( 0.882E-11,     0., 0.0);
+{ 17595} GHN502N +GHO                =       G2H501q                                               : ARR( 0.151E-11,     0., 0.0);
+{ 17596} GHN502N +GHO                =       GHN505D +      GHO2                                   : ARR( 0.430E-11,     0., 0.0);
+{ 17597} GHN502N +GHO                =       G2N504B                                               : ARR( 0.203E-11,  -190., 0.0);
+{ 17598} GHN502N+HV               =       G1H5015 +      GNO2                                   :  0.100E+01*SUN;
+{ 17599} GHN502N+HV               =       G1N504Z +      GHO                                    :  0.100E+01*SUN;
+{ 17600} G2N504B +GNO                =       G1N504Z +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 17601} G2N504B +GNO                =       GNN501R                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 17602} G2N504B +GHO2               =       GHN502N                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 17603} G2N504B +GNO3               =       G1N504Z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 17604} G2N504B +MEPERO             =  0.340G1N504Z + 0.330GNO500Z + 0.330GNK500o                 : ARR( 0.565E-13,  -845., 0.0);
+{ 17605} G2N504B +PERO1              =  0.460G1N504Z + 0.270GNO500Z + 0.270GNK500o                 : ARR( 0.434E-13,  -900., 0.0);
+{ 17606} G2N504B +PERO2              =  0.400G1N504Z + 0.300GNO500Z + 0.300GNK500o                 : ARR( 0.162E-13, -1400., 0.0);
+{ 17607} G2N504B +PERO3              =  0.460G1N504Z + 0.270GNO500Z + 0.270GNK500o                 : ARR( 0.488E-13, -1250., 0.0);
+{ 17608} G2N504B +PERO5              =  0.460G1N504Z + 0.270GNO500Z + 0.270GNK500o                 : ARR( 0.183E-11,   450., 0.0);
+{ 17609} G2N504B +PERO6              =  0.300G1N504Z + 0.350GNO500Z + 0.350GNK500o                 : ARR( 0.168E-13, -1300., 0.0);
+{ 17610} G2N504B +PERO9              =  0.650G1N504Z + 0.350GNK500o                                : ARR( 0.100E-10,     0., 0.0);
+{ 17611} GHH500h +GHO                =       GHK500d +      GHO                                    : ARR( 0.497E-10,     0., 0.0);
+{ 17612} GHH500h +GHO                =       GHK500J +      GHO                                    : ARR( 0.497E-10,     0., 0.0);
+{ 17613} GHH500h+HV               =       G1H504H +      GHO                                    :  0.100E+01*SUN;
+{ 17614} GHH500h+HV               =       G1H5015 +      GHO                                    :  0.100E+01*SUN;
+{ 17615} GHN502O +GHO                =       GHN504u +      GHO2                                   : ARR( 0.406E-11,     0., 0.0);
+{ 17616} GHN502O +GHO                =       GNK500m +      GHO                                    : ARR( 0.416E-10,     0., 0.0);
+{ 17617} GHN502O +GHO                =       GHN502P +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 17618} GHN502O +GHO                =       G2N501o                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 17619} GHN502O+HV               =       G1N501s +      GHO                                    :  0.100E+01*SUN;
+{ 17620} GHN502O+HV               =       G1H504I +      GNO2                                   :  0.100E+01*SUN;
+{ 17621} G1H504I                     =       GKO500F +      GHO                                    : ARR( 0.800E+11,  1678., 0.0);
+{ 17622} GNO500Z +GHO                =       GND501B +      GHO2                                   : ARR( 0.428E-11,     0., 0.0);
+{ 17623} GNO500Z +GHO                =       G2N503v                                               : ARR( 0.150E-11,     0., 0.0);
+{ 17624} GNO500Z +GHO                =       GNK500o +      GHO2                                   : ARR( 0.219E-11,     0., 0.0);
+{ 17625} GNO500Z +GHO                =       GND500b +      GHO2                                   : ARR( 0.856E-12,     0., 0.0);
+{ 17626} GNO500Z+HV               =       G1O500T +      GNO2                                   :  0.100E+01*SUN;
+{ 17627} GHO500R +GHO                =       GHD5011 +      GHO2                                   : ARR( 0.414E-11,     0., 0.0);
+{ 17628} GHO500R +GHO                =       GHK500d +      GHO2                                   : ARR( 0.106E-10,     0., 0.0);
+{ 17629} GHO500R +GHO                =       GKO500F +      GHO                                    : ARR( 0.424E-10,     0., 0.0);
+{ 17630} GHO500R +GHO                =       GHD500P +      GHO2                                   : ARR( 0.414E-11,     0., 0.0);
+{ 17631} GHO500R +GHO                =       G2O500Q                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 17632} GHO500R+HV               =       G1O500T +      GHO                                    :  0.100E+01*SUN;
+{ 17633} GHN502P +GHO                =       GHN504s +      GHO2                                   : ARR( 0.129E-10,     0., 0.0);
+{ 17634} GHN502P +GHO                =       GNK500n +      GHO                                    : ARR( 0.254E-10,     0., 0.0);
+{ 17635} GHN502P +GHO                =       G2N501p                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 17636} GHN502P+HV               =       G1N501t +      GHO                                    :  0.100E+01*SUN;
+{ 17637} GHN502P+HV               =       G3H3004 +      G2N2000                                :  0.100E+01*SUN;
+{ 17638} GHN502P+HV               =       G1H504J +      GNO2                                   :  0.100E+01*SUN;
+{ 17639} G1H504J +OXYGEN             =       GHD5012 +      GHO2                                   : ARR( 0.600E-13,   398., 0.0);
+{ 17640} G1H504J                     =       GKK5006 +      GHO                                    : ARR( 0.800E+11,  3661., 0.0);
+{ 17641} GDK500I +GHO                =       GDD5003 +      GHO2                                   : ARR( 0.130E-10,     0., 0.0);
+{ 17642} GDK500I +GHO                =       G3K500Q                                               : ARR( 0.672E-10,     0., 0.0);
+{ 17643} GDK500I +GNO3               =       G3K500Q +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 17644} GDK500I+HV               =       G3K3001 +      G2D2000                                :  0.100E+01*SUN;
+{ 17645} GDK500I+HV               =       G2K4007 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 17646} G3K500Q +GHO2               =  0.800GGK500C + 0.200GAK500A + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 17647} G3K500Q +GNO                =       G2K4007 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 17648} G3K500Q +GNO2               =       GPK500C                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 17649} G3K500Q +GNO3               =       G2K4007 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 17650} G3K500Q +MEPERO             =  0.685G2K4007 + 0.315GAK500A + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 17651} G3K500Q +PERO1              =  0.800G2K4007 + 0.200GAK500A + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 17652} G3K500Q +PERO2              =  0.750G2K4007 + 0.250GAK500A + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 17653} G3K500Q +PERO3              =  0.800G2K4007 + 0.200GAK500A + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 17654} G3K500Q +PERO5              =  0.650G2K4007 + 0.350GAK500A + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 17655} G3K500Q +PERO6              =  0.650G2K4007 + 0.350GAK500A + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 17656} G3K500Q +PERO9              =       G2K4007 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 17657} GNK500o +GHO                =       GND500x +      GHO2                                   : ARR( 0.131E-10,     0., 0.0);
+{ 17658} GNK500o +GHO                =       G2N5043                                               : ARR( 0.883E-12,     0., 0.0);
+{ 17659} GNK500o +GHO                =       GND500c +      GHO2                                   : ARR( 0.824E-12,     0., 0.0);
+{ 17660} GNK500o+HV               =       G3K3001 +      GDO2000 +      GNO2                    :  0.100E+01*SUN;
+{ 17661} GNK500o+HV               =       G1K500U +      GNO2                                   :  0.100E+01*SUN;
+{ 17662} GHK500d +GHO                =       GHD5012 +      GHO2                                   : ARR( 0.130E-10,     0., 0.0);
+{ 17663} GHK500d +GHO                =       GKK5006 +      GHO                                    : ARR( 0.257E-10,     0., 0.0);
+{ 17664} GHK500d +GHO                =       GHD500Q +      GHO2                                   : ARR( 0.130E-10,     0., 0.0);
+{ 17665} GHK500d +GHO                =       G2K500S                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 17666} GHK500d+HV               =       G3K3001 +      GDO2000 +      GHO                     :  0.100E+01*SUN;
+{ 17667} GHK500d+HV               =       G1K500U +      GHO                                    :  0.100E+01*SUN;
+{ 17668} GHD500L +GHO                =       GHD500R +      GHO2                                   : ARR( 0.428E-11,     0., 0.0);
+{ 17669} GHD500L +GHO                =       GDK5007 +      GHO                                    : ARR( 0.439E-10,     0., 0.0);
+{ 17670} GHD500L +GHO                =       G2H5024                                               : ARR( 0.477E-11,     0., 0.0);
+{ 17671} GHD500L +GHO                =       G3H500a                                               : ARR( 0.221E-10,     0., 0.0);
+{ 17672} GHD500L +GNO3               =       G3H500a +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 17673} GHD500L+HV               =       G1D500X +      GHO                                    :  0.100E+01*SUN;
+{ 17674} GHD500L+HV               =       G2H4002 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 17675} GHD500L+HV               =       G2K3001 +      GD02000 +      GHO                     :  0.100E+01*SUN;
+{ 17676} G2H5024 +GNO                =       G1H504K +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 17677} G2H5024 +GNO                =       GHN505G                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 17678} G2H5024 +GHO2               =       GHH501x                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 17679} G2H5024 +GNO3               =       G1H504K +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 17680} G2H5024 +MEPERO             =  0.340G1H504K + 0.330GHD5011 + 0.330GHD5012                 : ARR( 0.565E-13,  -845., 0.0);
+{ 17681} G2H5024 +PERO1              =  0.460G1H504K + 0.270GHD5011 + 0.270GHD5012                 : ARR( 0.434E-13,  -900., 0.0);
+{ 17682} G2H5024 +PERO2              =  0.400G1H504K + 0.300GHD5011 + 0.300GHD5012                 : ARR( 0.162E-13, -1400., 0.0);
+{ 17683} G2H5024 +PERO3              =  0.460G1H504K + 0.270GHD5011 + 0.270GHD5012                 : ARR( 0.488E-13, -1250., 0.0);
+{ 17684} G2H5024 +PERO5              =  0.460G1H504K + 0.270GHD5011 + 0.270GHD5012                 : ARR( 0.183E-11,   450., 0.0);
+{ 17685} G2H5024 +PERO6              =  0.300G1H504K + 0.350GHD5011 + 0.350GHD5012                 : ARR( 0.168E-13, -1300., 0.0);
+{ 17686} G2H5024 +PERO9              =  0.650G1H504K + 0.350GHD5012                                : ARR( 0.100E-10,     0., 0.0);
+{ 17687} G3H500a +GHO2               =  0.800GGH500m + 0.200GAH500q + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 17688} G3H500a +GNO                =       G2H4002 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 17689} G3H500a +GNO2               =       GPH500s                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 17690} G3H500a +GNO3               =       G2H4002 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 17691} G3H500a +MEPERO             =  0.685G2H4002 + 0.315GAH500q + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 17692} G3H500a +PERO1              =  0.800G2H4002 + 0.200GAH500q + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 17693} G3H500a +PERO2              =  0.750G2H4002 + 0.250GAH500q + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 17694} G3H500a +PERO3              =  0.800G2H4002 + 0.200GAH500q + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 17695} G3H500a +PERO5              =  0.650G2H4002 + 0.350GAH500q + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 17696} G3H500a +PERO6              =  0.650G2H4002 + 0.350GAH500q + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 17697} G3H500a +PERO9              =       G2H4002 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 17698} G1H504K                     =       GDO2000 +      GDD3000 +      GHO                     : ARR( 0.200E+15,  4146., 0.0);
+{ 17699} GUD3000 +GHO                =       G3U3000                                               : ARR( 0.428E-11,  -333., 0.0);
+{ 17700} GUD3000 +GHO                =       G2D3003                                               : ARR( 0.453E-12,  -333., 0.0);
+{ 17701} GUD3000 +GHO                =       G2D3004                                               : ARR( 0.181E-11,  -333., 0.0);
+{ 17702} GUD3000 +GO3                =  2.000GCH2O   + 3.000GCO     + 3.000GHO2    +      GHO      : ARR( 0.340E-16,  2519., 0.0);
+{ 17703} GUD3000 +GO3                =       GCO2                                                  : ARR( 0.340E-16,  2519., 0.0);
+{ 17704} GUD3000 +GO3                =  2.000GDD2000 + 0.740GHCOOH  + 0.260GCO2    + 0.260GH2      : ARR( 0.646E-15,  2519., 0.0);
+{ 17705} GUD3000 +GO3                =       GCO     + 0.760GH2O    + 0.240GHO2    + 0.240GHO      : ARR( 0.646E-15,  2519., 0.0);
+{ 17706} GUD3000 +GNO3               =       G3U3000 +      GHNO3                                  : ARR( 0.250E-14,     0., 0.0);
+{ 17707} GUD3000+HV               =       G3U3000 +      GHO2                                   :  0.100E+01*SUN;
+{ 17708} GUD3000+HV               =       G1D2000 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 17709} GUD3000+HV               =  0.680GA02000 + 0.280GCO2    + 0.280GCH4    + 1.040GCO      :  0.500E+00*SUN;
+{ 17710} GUD3000+HV               =  1.040GHO     + 1.040GCH3O2  + 2.000GCO                     :  0.500E+00*SUN;
+{ 17711} G3U3000 +GHO2               =  0.800GGU3000 + 0.200GAU3000 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 17712} G3U3000 +GNO                =       G1D2000 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 17713} G3U3000 +GNO2               =       GPU3000                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 17714} G3U3000 +GNO3               =       G1D2000 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 17715} G3U3000 +MEPERO             =  0.685G1D2000 + 0.315GAU3000 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 17716} G3U3000 +PERO1              =  0.800G1D2000 + 0.200GAU3000 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 17717} G3U3000 +PERO2              =  0.750G1D2000 + 0.250GAU3000 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 17718} G3U3000 +PERO3              =  0.800G1D2000 + 0.200GAU3000 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 17719} G3U3000 +PERO5              =  0.650G1D2000 + 0.350GAU3000 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 17720} G3U3000 +PERO6              =  0.650G1D2000 + 0.350GAU3000 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 17721} G3U3000 +PERO9              =       G1D2000 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 17722} GGN5007 +GHO                =       G3N5006                                               : ARR( 0.211E-11,  -190., 0.0);
+{ 17723} GGN5007+HV               =       G1G500b +      GNO2                                   :  0.100E+01*SUN;
+{ 17724} GGN5007+HV               =       G1G5006 +      GNO2                                   :  0.100E+01*SUN;
+{ 17725} GGN5007+HV               =       G2N400C +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 17726} G1G500b +OXYGEN             =       GGN500m +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{ 17727} G1G500b                     =       G2G500a                                               : ARR( 0.160E+12,  3940., 0.0);
+{ 17728} G2G500a +GNO                =       G1G500c +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 17729} G2G500a +GNO                =       GGN500n                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 17730} G2G500a +GHO2               =       GGH500n                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 17731} G2G500a +GNO3               =       G1G500c +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 17732} G2G500a +MEPERO             =  0.340G1G500c + 0.330GGN500o + 0.330GGN500p                 : ARR( 0.565E-13,  -845., 0.0);
+{ 17733} G2G500a +PERO1              =  0.460G1G500c + 0.270GGN500o + 0.270GGN500p                 : ARR( 0.434E-13,  -900., 0.0);
+{ 17734} G2G500a +PERO2              =  0.400G1G500c + 0.300GGN500o + 0.300GGN500p                 : ARR( 0.162E-13, -1400., 0.0);
+{ 17735} G2G500a +PERO3              =  0.460G1G500c + 0.270GGN500o + 0.270GGN500p                 : ARR( 0.488E-13, -1250., 0.0);
+{ 17736} G2G500a +PERO5              =  0.460G1G500c + 0.270GGN500o + 0.270GGN500p                 : ARR( 0.183E-11,   450., 0.0);
+{ 17737} G2G500a +PERO6              =  0.300G1G500c + 0.350GGN500o + 0.350GGN500p                 : ARR( 0.168E-13, -1300., 0.0);
+{ 17738} G2G500a +PERO9              =  0.650G1G500c + 0.350GGN500p                                : ARR( 0.100E-10,     0., 0.0);
+{ 17739} G1G500c                     =       GGN500q +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{ 17740} G1G500c                     =       GND4006 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 17741} GAN5007 +GHO                =       G2A500g                                               : ARR( 0.128E-12,     0., 0.0);
+{ 17742} GAN5007 +GHO                =       GAN5009 +      GNO2                                   : ARR( 0.118E-12,     0., 0.0);
+{ 17743} GAN5007 +GHO                =       G2A500h                                               : ARR( 0.565E-13,     0., 0.0);
+{ 17744} GAN5007 +GHO                =       GAN500Q +      GNO2                                   : ARR( 0.460E-13,     0., 0.0);
+{ 17745} GAN5007 +GHO                =       G2N400C +      GCO2                                   : ARR( 0.520E-12,     0., 0.0);
+{ 17746} GAN5007+HV               =       G1A5007 +      GNO2                                   :  0.100E+01*SUN;
+{ 17747} GAN5007+HV               =       G1A500F +      GNO2                                   :  0.100E+01*SUN;
+{ 17748} G2A500g +GNO                =       G1A500h +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 17749} G2A500g +GNO                =       GAN500s                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 17750} G2A500g +GHO2               =       GAH500r                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 17751} G2A500g +GNO3               =       G1A500h +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 17752} G2A500g +MEPERO             =  0.340G1A500h + 0.330GAN500a + 0.330GAN500t                 : ARR( 0.565E-13,  -845., 0.0);
+{ 17753} G2A500g +PERO1              =  0.460G1A500h + 0.270GAN500a + 0.270GAN500t                 : ARR( 0.434E-13,  -900., 0.0);
+{ 17754} G2A500g +PERO2              =  0.400G1A500h + 0.300GAN500a + 0.300GAN500t                 : ARR( 0.162E-13, -1400., 0.0);
+{ 17755} G2A500g +PERO3              =  0.460G1A500h + 0.270GAN500a + 0.270GAN500t                 : ARR( 0.488E-13, -1250., 0.0);
+{ 17756} G2A500g +PERO5              =  0.460G1A500h + 0.270GAN500a + 0.270GAN500t                 : ARR( 0.183E-11,   450., 0.0);
+{ 17757} G2A500g +PERO6              =  0.300G1A500h + 0.350GAN500a + 0.350GAN500t                 : ARR( 0.168E-13, -1300., 0.0);
+{ 17758} G2A500g +PERO9              =  0.650G1A500h + 0.350GAN500t                                : ARR( 0.100E-10,     0., 0.0);
+{ 17759} G2A500h +GNO                =       G1A500i +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 17760} G2A500h +GNO                =       GAN500u                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 17761} G2A500h +GHO2               =       GAH500s                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 17762} G2A500h +GNO3               =       G1A500i +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 17763} G2A500h +MEPERO             =  0.340G1A500i + 0.330GAN500H + 0.330GAN500v                 : ARR( 0.565E-13,  -845., 0.0);
+{ 17764} G2A500h +PERO1              =  0.460G1A500i + 0.270GAN500H + 0.270GAN500v                 : ARR( 0.434E-13,  -900., 0.0);
+{ 17765} G2A500h +PERO2              =  0.400G1A500i + 0.300GAN500H + 0.300GAN500v                 : ARR( 0.162E-13, -1400., 0.0);
+{ 17766} G2A500h +PERO3              =  0.460G1A500i + 0.270GAN500H + 0.270GAN500v                 : ARR( 0.488E-13, -1250., 0.0);
+{ 17767} G2A500h +PERO5              =  0.460G1A500i + 0.270GAN500H + 0.270GAN500v                 : ARR( 0.183E-11,   450., 0.0);
+{ 17768} G2A500h +PERO6              =  0.300G1A500i + 0.350GAN500H + 0.350GAN500v                 : ARR( 0.168E-13, -1300., 0.0);
+{ 17769} G2A500h +PERO9              =  0.650G1A500i + 0.350GAN500v                                : ARR( 0.100E-10,     0., 0.0);
+{ 17770} G1A500h                     =       GCO     +      GNN4008 +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 17771} G1A500i                     =       GAD3000 +      GND2000 +      GNO2                    : ARR( 0.200E+15,  6365., 0.0);
+{ 17772} GPN5007                     =       G3N5006 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 17773} GPN5007 +GHO                =       GPN500Q +      GNO2                                   : ARR( 0.460E-13,     0., 0.0);
+{ 17774} GPN5007 +GHO                =       G2P500j                                               : ARR( 0.565E-13,     0., 0.0);
+{ 17775} GPN5007 +GHO                =       GPN5009 +      GNO2                                   : ARR( 0.118E-12,     0., 0.0);
+{ 17776} GPN5007 +GHO                =       G2P500k                                               : ARR( 0.172E-12,     0., 0.0);
+{ 17777} GPN5007+HV               =       G1P500F +      GNO2                                   :  0.100E+01*SUN;
+{ 17778} GPN5007+HV               =       G1P5007 +      GNO2                                   :  0.100E+01*SUN;
+{ 17779} GPN5007+HV               =       G3N5006 +      GNO2                                   :  0.100E+01*SUN;
+{ 17780} G2P500j +GNO                =       G1P500k +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 17781} G2P500j +GNO                =       GPN500x                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 17782} G2P500j +GHO2               =       GPH500t                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 17783} G2P500j +GNO3               =       G1P500k +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 17784} G2P500j +MEPERO             =  0.340G1P500k + 0.330GPN500H + 0.330GPN500y                 : ARR( 0.565E-13,  -845., 0.0);
+{ 17785} G2P500j +PERO1              =  0.460G1P500k + 0.270GPN500H + 0.270GPN500y                 : ARR( 0.434E-13,  -900., 0.0);
+{ 17786} G2P500j +PERO2              =  0.400G1P500k + 0.300GPN500H + 0.300GPN500y                 : ARR( 0.162E-13, -1400., 0.0);
+{ 17787} G2P500j +PERO3              =  0.460G1P500k + 0.270GPN500H + 0.270GPN500y                 : ARR( 0.488E-13, -1250., 0.0);
+{ 17788} G2P500j +PERO5              =  0.460G1P500k + 0.270GPN500H + 0.270GPN500y                 : ARR( 0.183E-11,   450., 0.0);
+{ 17789} G2P500j +PERO6              =  0.300G1P500k + 0.350GPN500H + 0.350GPN500y                 : ARR( 0.168E-13, -1300., 0.0);
+{ 17790} G2P500j +PERO9              =  0.650G1P500k + 0.350GPN500y                                : ARR( 0.100E-10,     0., 0.0);
+{ 17791} G2P500k +GNO                =       G1P500l +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 17792} G2P500k +GNO                =       GPN500z                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 17793} G2P500k +GHO2               =       GPH500u                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 17794} G2P500k +GNO3               =       G1P500l +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 17795} G2P500k +MEPERO             =  0.340G1P500l + 0.330GPN500a + 0.330GPN5011                 : ARR( 0.565E-13,  -845., 0.0);
+{ 17796} G2P500k +PERO1              =  0.460G1P500l + 0.270GPN500a + 0.270GPN5011                 : ARR( 0.434E-13,  -900., 0.0);
+{ 17797} G2P500k +PERO2              =  0.400G1P500l + 0.300GPN500a + 0.300GPN5011                 : ARR( 0.162E-13, -1400., 0.0);
+{ 17798} G2P500k +PERO3              =  0.460G1P500l + 0.270GPN500a + 0.270GPN5011                 : ARR( 0.488E-13, -1250., 0.0);
+{ 17799} G2P500k +PERO5              =  0.460G1P500l + 0.270GPN500a + 0.270GPN5011                 : ARR( 0.183E-11,   450., 0.0);
+{ 17800} G2P500k +PERO6              =  0.300G1P500l + 0.350GPN500a + 0.350GPN5011                 : ARR( 0.168E-13, -1300., 0.0);
+{ 17801} G2P500k +PERO9              =  0.650G1P500l + 0.350GPN5011                                : ARR( 0.100E-10,     0., 0.0);
+{ 17802} G1P500k                     =       GND2000 +      GPD3000 +      GNO2                    : ARR( 0.200E+15,  6365., 0.0);
+{ 17803} G1P500l                     =       GNN4008 +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 17804} GND500X +GHO                =       G3N500c                                               : ARR( 0.431E-10,     0., 0.0);
+{ 17805} GND500X +GNO3               =       G3N500c +      GHNO3                                  : ARR( 0.240E-13,     0., 0.0);
+{ 17806} GND500X+HV               =       GCO     +      G2N400i +      GHO2                    :  0.200E+01*SUN;
+{ 17807} GND500X+HV               =       GD02000 +      G2D3005 +      GNO2                    :  0.200E+01*SUN;
+{ 17808} GND500X+HV               =       G1D500k +      GNO2                                   :  0.100E+01*SUN;
+{ 17809} G3N500c +GHO2               =  0.800GGN500m + 0.200GAN500Q + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 17810} G3N500c +GNO                =       G2N400i +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 17811} G3N500c +GNO2               =       GPN500Q                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 17812} G3N500c +GNO3               =       G2N400i +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 17813} G3N500c +MEPERO             =  0.685G2N400i + 0.315GAN500Q + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 17814} G3N500c +PERO1              =  0.800G2N400i + 0.200GAN500Q + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 17815} G3N500c +PERO2              =  0.750G2N400i + 0.250GAN500Q + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 17816} G3N500c +PERO3              =  0.800G2N400i + 0.200GAN500Q + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 17817} G3N500c +PERO5              =  0.650G2N400i + 0.350GAN500Q + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 17818} G3N500c +PERO6              =  0.650G2N400i + 0.350GAN500Q + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 17819} G3N500c +PERO9              =       G2N400i +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 17820} G2D3005 +GNO                =       G1D3005 +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{ 17821} G2D3005 +GNO                =       GND3005                                               : ARR( 0.622E-13,  -360., 0.0);
+{ 17822} G2D3005 +GHO2               =       GHD3004                                               : ARR( 0.179E-12, -1250., 0.0);
+{ 17823} G2D3005 +GNO3               =       G1D3005 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 17824} G2D3005 +MEPERO             =  0.340G1D3005 + 0.330GDD3001 + 0.330GDD3002                 : ARR( 0.565E-13,  -845., 0.0);
+{ 17825} G2D3005 +PERO1              =  0.460G1D3005 + 0.270GDD3001 + 0.270GDD3002                 : ARR( 0.434E-13,  -900., 0.0);
+{ 17826} G2D3005 +PERO2              =  0.400G1D3005 + 0.300GDD3001 + 0.300GDD3002                 : ARR( 0.162E-13, -1400., 0.0);
+{ 17827} G2D3005 +PERO3              =  0.460G1D3005 + 0.270GDD3001 + 0.270GDD3002                 : ARR( 0.488E-13, -1250., 0.0);
+{ 17828} G2D3005 +PERO5              =  0.460G1D3005 + 0.270GDD3001 + 0.270GDD3002                 : ARR( 0.183E-11,   450., 0.0);
+{ 17829} G2D3005 +PERO6              =  0.300G1D3005 + 0.350GDD3001 + 0.350GDD3002                 : ARR( 0.168E-13, -1300., 0.0);
+{ 17830} G2D3005 +PERO9              =  0.650G1D3005 + 0.350GDD3002                                : ARR( 0.100E-10,     0., 0.0);
+{ 17831} G1D500k                     =       G2D2000 +      GDD3000                                : ARR( 0.400E+15,  6591., 0.0);
+{ 17832} G1D3005                     =       GCO     +      GDD2000 +      GHO2                    : ARR( 0.400E+15,  7636., 0.0);
+{ 17833} GNN400B +GHO                =       GNN4001 +      GNO2                                   : ARR( 0.460E-13,     0., 0.0);
+{ 17834} GNN400B +GHO                =       G2N400j                                               : ARR( 0.565E-13,     0., 0.0);
+{ 17835} GNN400B +GHO                =       GNN400C +      GNO2                                   : ARR( 0.236E-13,     0., 0.0);
+{ 17836} GNN400B +GHO                =       GNN4008 +      GNO2                                   : ARR( 0.919E-14,     0., 0.0);
+{ 17837} GNN400B+HV               =       G1N400H +      GNO2                                   :  0.100E+01*SUN;
+{ 17838} GNN400B+HV               =       G1N400F +      GNO2                                   :  0.100E+01*SUN;
+{ 17839} GNN400B+HV               =       G1N400C +      GNO2                                   :  0.100E+01*SUN;
+{ 17840} G2N400j +GNO                =       G1N400o +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 17841} G2N400j +GNO                =       GNN400W                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 17842} G2N400j +GHO2               =       GHN400w                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 17843} G2N400j +GNO3               =       G1N400o +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 17844} G2N400j +MEPERO             =  0.340G1N400o + 0.330GNN400H + 0.330GNN400X                 : ARR( 0.565E-13,  -845., 0.0);
+{ 17845} G2N400j +PERO1              =  0.460G1N400o + 0.270GNN400H + 0.270GNN400X                 : ARR( 0.434E-13,  -900., 0.0);
+{ 17846} G2N400j +PERO2              =  0.400G1N400o + 0.300GNN400H + 0.300GNN400X                 : ARR( 0.162E-13, -1400., 0.0);
+{ 17847} G2N400j +PERO3              =  0.460G1N400o + 0.270GNN400H + 0.270GNN400X                 : ARR( 0.488E-13, -1250., 0.0);
+{ 17848} G2N400j +PERO5              =  0.460G1N400o + 0.270GNN400H + 0.270GNN400X                 : ARR( 0.183E-11,   450., 0.0);
+{ 17849} G2N400j +PERO6              =  0.300G1N400o + 0.350GNN400H + 0.350GNN400X                 : ARR( 0.168E-13, -1300., 0.0);
+{ 17850} G2N400j +PERO9              =  0.650G1N400o + 0.350GNN400X                                : ARR( 0.100E-10,     0., 0.0);
+{ 17851} G1N400o                     =  2.000GND2000 +      GNO2                                   : ARR( 0.200E+15,  6380., 0.0);
+{ 17852} GHN400H +GHO                =       GNN4008 +      GHO                                    : ARR( 0.332E-11,     0., 0.0);
+{ 17853} GHN400H +GHO                =       G2N400C                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 17854} GHN400H+HV               =       G1H400g +      GNO2                                   :  0.100E+01*SUN;
+{ 17855} GHN400H+HV               =       G1H400D +      GNO2                                   :  0.100E+01*SUN;
+{ 17856} GHN400H+HV               =       G1N400C +      GHO                                    :  0.100E+01*SUN;
+{ 17857} GNN501S +GHO                =       GNN502t +      GHO2                                   : ARR( 0.425E-11,     0., 0.0);
+{ 17858} GNN501S +GHO                =       G3N500d                                               : ARR( 0.439E-11,     0., 0.0);
+{ 17859} GNN501S +GNO3               =       G3N500d +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 17860} GNN501S+HV               =       G1N504a +      GNO2                                   :  0.100E+01*SUN;
+{ 17861} GNN501S+HV               =       G1N501v +      GNO2                                   :  0.100E+01*SUN;
+{ 17862} GNN501S+HV               =       GND4006 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 17863} GNN501S+HV               =       G2D3004 +      GND2000 +      GNO2                    :  0.100E+01*SUN;
+{ 17864} G3N500d +GHO2               =  0.800GGN500n + 0.200GAN500X + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 17865} G3N500d +GNO                =       GND4006 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 17866} G3N500d +GNO2               =       GPN500X                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 17867} G3N500d +GNO3               =       GND4006 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 17868} G3N500d +MEPERO             =  0.685GND4006 + 0.315GAN500X + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 17869} G3N500d +PERO1              =  0.800GND4006 + 0.200GAN500X + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 17870} G3N500d +PERO2              =  0.750GND4006 + 0.250GAN500X + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 17871} G3N500d +PERO3              =  0.800GND4006 + 0.200GAN500X + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 17872} G3N500d +PERO5              =  0.650GND4006 + 0.350GAN500X + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 17873} G3N500d +PERO6              =  0.650GND4006 + 0.350GAN500X + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 17874} G3N500d +PERO9              =       GND4006 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 17875} G1N504a                     =       G2O2000 +      GND3005                                : ARR( 0.200E+15,  6244., 0.0);
+{ 17876} G1N504a                     =       GDO3000 +      GDD2000 +      GNO2                    : ARR( 0.200E+15,  6201., 0.0);
+{ 17877} GHN502Q +GHO                =       GHN505H +      GHO2                                   : ARR( 0.412E-11,     0., 0.0);
+{ 17878} GHN502Q +GHO                =       GND500Z +      GHO                                    : ARR( 0.515E-11,     0., 0.0);
+{ 17879} GHN502Q +GHO                =       G3H500b                                               : ARR( 0.213E-10,     0., 0.0);
+{ 17880} GHN502Q +GHO                =       G2N501q                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 17881} GHN502Q +GNO3               =       G3H500b +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 17882} GHN502Q+HV               =       G1H5018 +      GNO2                                   :  0.100E+01*SUN;
+{ 17883} GHN502Q+HV               =       G1N501v +      GHO                                    :  0.100E+01*SUN;
+{ 17884} GHN502Q+HV               =       GND4006 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 17885} G3H500b +GHO2               =  0.800GGH500n + 0.200GAH500O + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 17886} G3H500b +GNO                =       GND4006 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 17887} G3H500b +GNO2               =       GPH500O                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 17888} G3H500b +GNO3               =       GND4006 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 17889} G3H500b +MEPERO             =  0.685GND4006 + 0.315GAH500O + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 17890} G3H500b +PERO1              =  0.800GND4006 + 0.200GAH500O + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 17891} G3H500b +PERO2              =  0.750GND4006 + 0.250GAH500O + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 17892} G3H500b +PERO3              =  0.800GND4006 + 0.200GAH500O + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 17893} G3H500b +PERO5              =  0.650GND4006 + 0.350GAH500O + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 17894} G3H500b +PERO6              =  0.650GND4006 + 0.350GAH500O + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 17895} G3H500b +PERO9              =       GND4006 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 17896} GND500Y +GHO                =       GND500a +      GHO2                                   : ARR( 0.438E-11,     0., 0.0);
+{ 17897} GND500Y +GHO                =       G3N500e                                               : ARR( 0.226E-10,     0., 0.0);
+{ 17898} GND500Y +GNO3               =       G3N500e +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 17899} GND500Y+HV               =       G1D500I +      GNO2                                   :  0.100E+01*SUN;
+{ 17900} GND500Y+HV               =       GND4006 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 17901} G3N500e +GHO2               =  0.800GGN500o + 0.200GAN500Y + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 17902} G3N500e +GNO                =       GND4006 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 17903} G3N500e +GNO2               =       GPN500Y                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 17904} G3N500e +GNO3               =       GND4006 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 17905} G3N500e +MEPERO             =  0.685GND4006 + 0.315GAN500Y + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 17906} G3N500e +PERO1              =  0.800GND4006 + 0.200GAN500Y + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 17907} G3N500e +PERO2              =  0.750GND4006 + 0.250GAN500Y + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 17908} G3N500e +PERO3              =  0.800GND4006 + 0.200GAN500Y + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 17909} G3N500e +PERO5              =  0.650GND4006 + 0.350GAN500Y + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 17910} G3N500e +PERO6              =  0.650GND4006 + 0.350GAN500Y + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 17911} G3N500e +PERO9              =       GND4006 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 17912} GND500Z +GHO                =       GND501C +      GHO2                                   : ARR( 0.414E-11,     0., 0.0);
+{ 17913} GND500Z +GHO                =       G3N4008 +      GCO                                    : ARR( 0.130E-10,     0., 0.0);
+{ 17914} GND500Z +GNO3               =       G3N4008 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 17915} GND500Z+HV               =       G1D500l +      GNO2                                   :  0.100E+01*SUN;
+{ 17916} GND500Z+HV               =       G3N4008 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 17917} GND500Z+HV               =       GND4006 +      GCO                                    :  0.100E+01*SUN;
+{ 17918} GND500Z+HV               =       GNO3000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 17919} G1D500l                     =       GDO3000 +      G3D2000                                : ARR( 0.200E+15,  2978., 0.0);
+{ 17920} GND500a +GHO                =       G3N500f                                               : ARR( 0.222E-10,     0., 0.0);
+{ 17921} GND500a +GHO                =       G3N500g                                               : ARR( 0.222E-10,     0., 0.0);
+{ 17922} GND500a +GNO3               =       G3N500f +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 17923} GND500a +GNO3               =       G3N500g +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 17924} GND500a+HV               =       GCO     +      GND400D + 2.000GHO2                    :  0.100E+01*SUN;
+{ 17925} GND500a+HV               =       G1D500K +      GNO2                                   :  0.100E+01*SUN;
+{ 17926} GND500a+HV               =       G2N400k +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 17927} GND500a+HV               =       GND3003 +      GD02000                                :  0.100E+01*SUN;
+{ 17928} G3N500f +GHO2               =  0.800GGN500q + 0.200GAN500b + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 17929} G3N500f +GNO                =       GND400D +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 17930} G3N500f +GNO2               =       GPN500b                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 17931} G3N500f +GNO3               =       GND400D +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 17932} G3N500f +MEPERO             =  0.685GND400D + 0.315GAN500b + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 17933} G3N500f +PERO1              =  0.800GND400D + 0.200GAN500b + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 17934} G3N500f +PERO2              =  0.750GND400D + 0.250GAN500b + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 17935} G3N500f +PERO3              =  0.800GND400D + 0.200GAN500b + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 17936} G3N500f +PERO5              =  0.650GND400D + 0.350GAN500b + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 17937} G3N500f +PERO6              =  0.650GND400D + 0.350GAN500b + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 17938} G3N500f +PERO9              =       GND400D +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 17939} G3N500g +GHO2               =  0.800GGN500r + 0.200GAN500o + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 17940} G3N500g +GNO                =       G2N400k +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 17941} G3N500g +GNO2               =       GPN500p                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 17942} G3N500g +GNO3               =       G2N400k +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 17943} G3N500g +MEPERO             =  0.685G2N400k + 0.315GAN500o + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 17944} G3N500g +PERO1              =  0.800G2N400k + 0.200GAN500o + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 17945} G3N500g +PERO2              =  0.750G2N400k + 0.250GAN500o + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 17946} G3N500g +PERO3              =  0.800G2N400k + 0.200GAN500o + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 17947} G3N500g +PERO5              =  0.650G2N400k + 0.350GAN500o + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 17948} G3N500g +PERO6              =  0.650G2N400k + 0.350GAN500o + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 17949} G3N500g +PERO9              =       G2N400k +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 17950} G2N400k +GNO                =       G1N400p +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 17951} G2N400k +GNO                =       GNN400T                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 17952} G2N400k +GHO2               =       GHN400x                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 17953} G2N400k +GNO3               =       G1N400p +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 17954} G2N400k +MEPERO             =  0.480G1N400p + 0.260GND4009 + 0.260GND400J                 : ARR( 0.164E-12,  -795., 0.0);
+{ 17955} G2N400k +PERO1              =  0.600G1N400p + 0.200GND4009 + 0.200GND400J                 : ARR( 0.126E-12,  -850., 0.0);
+{ 17956} G2N400k +PERO2              =  0.560G1N400p + 0.220GND4009 + 0.220GND400J                 : ARR( 0.471E-13, -1350., 0.0);
+{ 17957} G2N400k +PERO3              =  0.600G1N400p + 0.200GND4009 + 0.200GND400J                 : ARR( 0.142E-12, -1200., 0.0);
+{ 17958} G2N400k +PERO5              =  0.600G1N400p + 0.200GND4009 + 0.200GND400J                 : ARR( 0.533E-11,   500., 0.0);
+{ 17959} G2N400k +PERO6              =  0.460G1N400p + 0.270GND4009 + 0.270GND400J                 : ARR( 0.488E-13, -1250., 0.0);
+{ 17960} G2N400k +PERO9              =  0.800G1N400p + 0.200GND400J                                : ARR( 0.100E-10,     0., 0.0);
+{ 17961} G1N400p +OXYGEN             =       GND400J +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 17962} G1N400p                     =       G3N400E                                               : ARR( 0.800E+11,  4559., 0.0);
+{ 17963} G1N400p                     =       GDD3001 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7175., 0.0);
+{ 17964} GGH5006 +GHO                =       GGN5009 +      GHO                                    : ARR( 0.422E-10,     0., 0.0);
+{ 17965} GGH5006 +GHO                =       G2G5005                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 17966} GGH5006 +GHO                =       G3H5004                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 17967} GGH5006+HV               =       G1G500d +      GNO2                                   :  0.100E+01*SUN;
+{ 17968} GGH5006+HV               =       G1G5006 +      GHO                                    :  0.100E+01*SUN;
+{ 17969} GGH5006+HV               =       G2H400B +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 17970} G1G500d                     =       G2G500b                                               : ARR( 0.160E+12,  3221., 0.0);
+{ 17971} G2G500b +GNO                =       G1G500e +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 17972} G2G500b +GNO                =       GGH500o                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 17973} G2G500b +GHO2               =       GGH500p                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 17974} G2G500b +GNO3               =       G1G500e +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 17975} G2G500b +MEPERO             =  0.340G1G500e + 0.330GGH500q + 0.330GGH500r                 : ARR( 0.565E-13,  -845., 0.0);
+{ 17976} G2G500b +PERO1              =  0.460G1G500e + 0.270GGH500q + 0.270GGH500r                 : ARR( 0.434E-13,  -900., 0.0);
+{ 17977} G2G500b +PERO2              =  0.400G1G500e + 0.300GGH500q + 0.300GGH500r                 : ARR( 0.162E-13, -1400., 0.0);
+{ 17978} G2G500b +PERO3              =  0.460G1G500e + 0.270GGH500q + 0.270GGH500r                 : ARR( 0.488E-13, -1250., 0.0);
+{ 17979} G2G500b +PERO5              =  0.460G1G500e + 0.270GGH500q + 0.270GGH500r                 : ARR( 0.183E-11,   450., 0.0);
+{ 17980} G2G500b +PERO6              =  0.300G1G500e + 0.350GGH500q + 0.350GGH500r                 : ARR( 0.168E-13, -1300., 0.0);
+{ 17981} G2G500b +PERO9              =  0.650G1G500e + 0.350GGH500r                                : ARR( 0.100E-10,     0., 0.0);
+{ 17982} G1G500e                     =       GGH500s +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{ 17983} G1G500e                     =       GHD4006 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 17984} GAH5006 +GHO                =       GAN5009 +      GHO                                    : ARR( 0.426E-10,     0., 0.0);
+{ 17985} GAH5006 +GHO                =       G2A5006                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 17986} GAH5006+HV               =       G1A5007 +      GHO                                    :  0.100E+01*SUN;
+{ 17987} GAH5006+HV               =       G1A500j +      GNO2                                   :  0.100E+01*SUN;
+{ 17988} G1A500j +OXYGEN             =       GAH500t +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{ 17989} G1A500j                     =       G2A500i                                               : ARR( 0.160E+12,  3356., 0.0);
+{ 17990} G2A500i +GNO                =       G1A500k +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 17991} G2A500i +GNO                =       GAH500u                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 17992} G2A500i +GHO2               =       GAH500v                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 17993} G2A500i +GNO3               =       G1A500k +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 17994} G2A500i +MEPERO             =  0.340G1A500k + 0.330GAH500w + 0.330GAH500x                 : ARR( 0.565E-13,  -845., 0.0);
+{ 17995} G2A500i +PERO1              =  0.460G1A500k + 0.270GAH500w + 0.270GAH500x                 : ARR( 0.434E-13,  -900., 0.0);
+{ 17996} G2A500i +PERO2              =  0.400G1A500k + 0.300GAH500w + 0.300GAH500x                 : ARR( 0.162E-13, -1400., 0.0);
+{ 17997} G2A500i +PERO3              =  0.460G1A500k + 0.270GAH500w + 0.270GAH500x                 : ARR( 0.488E-13, -1250., 0.0);
+{ 17998} G2A500i +PERO5              =  0.460G1A500k + 0.270GAH500w + 0.270GAH500x                 : ARR( 0.183E-11,   450., 0.0);
+{ 17999} G2A500i +PERO6              =  0.300G1A500k + 0.350GAH500w + 0.350GAH500x                 : ARR( 0.168E-13, -1300., 0.0);
+{ 18000} G2A500i +PERO9              =  0.650G1A500k + 0.350GAH500x                                : ARR( 0.100E-10,     0., 0.0);
+{ 18001} G1A500k                     =       GAH500y +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{ 18002} G1A500k                     =       GHD4006 +      GCO     +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 18003} GPH5006                     =       G3H5004 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 18004} GPH5006 +GHO                =       GPN5009 +      GHO                                    : ARR( 0.423E-10,     0., 0.0);
+{ 18005} GPH5006 +GHO                =       G2P5006                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 18006} GPH5006+HV               =       G1P500m +      GNO2                                   :  0.100E+01*SUN;
+{ 18007} GPH5006+HV               =       G1P5007 +      GHO                                    :  0.100E+01*SUN;
+{ 18008} GPH5006+HV               =       G3H5004 +      GNO2                                   :  0.100E+01*SUN;
+{ 18009} G1P500m                     =       G2P500l                                               : ARR( 0.160E+12,  3221., 0.0);
+{ 18010} G2P500l +GNO                =       G1P500n +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 18011} G2P500l +GNO                =       GPH500v                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 18012} G2P500l +GHO2               =       GPH500w                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 18013} G2P500l +GNO3               =       G1P500n +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 18014} G2P500l +MEPERO             =  0.340G1P500n + 0.330GPH500x + 0.330GPH500y                 : ARR( 0.565E-13,  -845., 0.0);
+{ 18015} G2P500l +PERO1              =  0.460G1P500n + 0.270GPH500x + 0.270GPH500y                 : ARR( 0.434E-13,  -900., 0.0);
+{ 18016} G2P500l +PERO2              =  0.400G1P500n + 0.300GPH500x + 0.300GPH500y                 : ARR( 0.162E-13, -1400., 0.0);
+{ 18017} G2P500l +PERO3              =  0.460G1P500n + 0.270GPH500x + 0.270GPH500y                 : ARR( 0.488E-13, -1250., 0.0);
+{ 18018} G2P500l +PERO5              =  0.460G1P500n + 0.270GPH500x + 0.270GPH500y                 : ARR( 0.183E-11,   450., 0.0);
+{ 18019} G2P500l +PERO6              =  0.300G1P500n + 0.350GPH500x + 0.350GPH500y                 : ARR( 0.168E-13, -1300., 0.0);
+{ 18020} G2P500l +PERO9              =  0.650G1P500n + 0.350GPH500y                                : ARR( 0.100E-10,     0., 0.0);
+{ 18021} G1P500n                     =       GPH500z +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{ 18022} G1P500n                     =       GHD4006 +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 18023} GHN400I +GHO                =       GNN400C +      GHO                                    : ARR( 0.850E-11,     0., 0.0);
+{ 18024} GHN400I +GHO                =       G2N400F                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 18025} GHN400I+HV               =       G1H400E +      GNO2                                   :  0.100E+01*SUN;
+{ 18026} GHN400I+HV               =       G1N400F +      GHO                                    :  0.100E+01*SUN;
+{ 18027} GHN400I+HV               =       G1H400B +      GNO2                                   :  0.100E+01*SUN;
+{ 18028} GHH4007 +GHO                =       GHN400K +      GHO                                    : ARR( 0.414E-10,     0., 0.0);
+{ 18029} GHH4007 +GHO                =       GHN400J +      GHO                                    : ARR( 0.162E-10,     0., 0.0);
+{ 18030} GHH4007 +GHO                =       G2H400C                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 18031} GHH4007 +GHO                =       G2H400B                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 18032} GHH4007+HV               =       G1H400h +      GNO2                                   :  0.100E+01*SUN;
+{ 18033} GHH4007+HV               =       G1H400D +      GHO                                    :  0.100E+01*SUN;
+{ 18034} GHH4007+HV               =       G1H400B +      GHO                                    :  0.100E+01*SUN;
+{ 18035} GHN400J +GHO                =       GND400B +      GHO                                    : ARR( 0.256E-10,     0., 0.0);
+{ 18036} GHN400J +GHO                =       G3H400D                                               : ARR( 0.212E-10,     0., 0.0);
+{ 18037} GHN400J +GHO                =       G2N400l                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 18038} GHN400J +GNO3               =       G3H400D +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 18039} GHN400J+HV               =       G1H400i +      GNO2                                   :  0.100E+01*SUN;
+{ 18040} GHN400J+HV               =       G1N400i +      GHO                                    :  0.100E+01*SUN;
+{ 18041} GHN400J+HV               =       GND3000 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 18042} G2N400l +GNO                =       G1N400i +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 18043} G2N400l +GNO                =       GNN4008                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 18044} G2N400l +GHO2               =       GHN400J                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 18045} G2N400l +GNO3               =       G1N400i +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 18046} G2N400l +MEPERO             =  0.340G1N400i + 0.330GND400C + 0.330GND400B                 : ARR( 0.565E-13,  -845., 0.0);
+{ 18047} G2N400l +PERO1              =  0.460G1N400i + 0.270GND400C + 0.270GND400B                 : ARR( 0.434E-13,  -900., 0.0);
+{ 18048} G2N400l +PERO2              =  0.400G1N400i + 0.300GND400C + 0.300GND400B                 : ARR( 0.162E-13, -1400., 0.0);
+{ 18049} G2N400l +PERO3              =  0.460G1N400i + 0.270GND400C + 0.270GND400B                 : ARR( 0.488E-13, -1250., 0.0);
+{ 18050} G2N400l +PERO5              =  0.460G1N400i + 0.270GND400C + 0.270GND400B                 : ARR( 0.183E-11,   450., 0.0);
+{ 18051} G2N400l +PERO6              =  0.300G1N400i + 0.350GND400C + 0.350GND400B                 : ARR( 0.168E-13, -1300., 0.0);
+{ 18052} G2N400l +PERO9              =  0.650G1N400i + 0.350GND400B                                : ARR( 0.100E-10,     0., 0.0);
+{ 18053} G1H400i +OXYGEN             =       GHD400C +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{ 18054} G1H400i                     =       G3H4004                                               : ARR( 0.800E+11,  4559., 0.0);
+{ 18055} GHN502R +GHO                =       GHN505I +      GHO2                                   : ARR( 0.406E-11,     0., 0.0);
+{ 18056} GHN502R +GHO                =       G2H5025                                               : ARR( 0.143E-11,     0., 0.0);
+{ 18057} GHN502R +GHO                =       GND500c +      GHO                                    : ARR( 0.832E-11,     0., 0.0);
+{ 18058} GHN502R +GHO                =       G3H500c                                               : ARR( 0.420E-11,     0., 0.0);
+{ 18059} GHN502R +GHO                =       G2N504C                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 18060} GHN502R +GNO3               =       G3H500c +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 18061} GHN502R+HV               =       G1N504a +      GHO                                    :  0.100E+01*SUN;
+{ 18062} GHN502R+HV               =       G1H5017 +      GNO2                                   :  0.100E+01*SUN;
+{ 18063} GHN502R+HV               =       GHD4006 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 18064} GHN502R+HV               =       G2D3004 +      GND2000 +      GHO                     :  0.100E+01*SUN;
+{ 18065} G2H5025 +GNO                =       G1H504L +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 18066} G2H5025 +GNO                =       GHN505J                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 18067} G2H5025 +GHO2               =       GHH501y                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 18068} G2H5025 +GNO3               =       G1H504L +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 18069} G2H5025 +MEPERO             =  0.340G1H504L + 0.330GHN5042 + 0.330GHN505K                 : ARR( 0.565E-13,  -845., 0.0);
+{ 18070} G2H5025 +PERO1              =  0.460G1H504L + 0.270GHN5042 + 0.270GHN505K                 : ARR( 0.434E-13,  -900., 0.0);
+{ 18071} G2H5025 +PERO2              =  0.400G1H504L + 0.300GHN5042 + 0.300GHN505K                 : ARR( 0.162E-13, -1400., 0.0);
+{ 18072} G2H5025 +PERO3              =  0.460G1H504L + 0.270GHN5042 + 0.270GHN505K                 : ARR( 0.488E-13, -1250., 0.0);
+{ 18073} G2H5025 +PERO5              =  0.460G1H504L + 0.270GHN5042 + 0.270GHN505K                 : ARR( 0.183E-11,   450., 0.0);
+{ 18074} G2H5025 +PERO6              =  0.300G1H504L + 0.350GHN5042 + 0.350GHN505K                 : ARR( 0.168E-13, -1300., 0.0);
+{ 18075} G2H5025 +PERO9              =  0.650G1H504L + 0.350GHN505K                                : ARR( 0.100E-10,     0., 0.0);
+{ 18076} G3H500c +GHO2               =  0.800GGH500o + 0.200GAH500u + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 18077} G3H500c +GNO                =       GHD4006 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 18078} G3H500c +GNO2               =       GPH500v                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 18079} G3H500c +GNO3               =       GHD4006 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 18080} G3H500c +MEPERO             =  0.685GHD4006 + 0.315GAH500u + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 18081} G3H500c +PERO1              =  0.800GHD4006 + 0.200GAH500u + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 18082} G3H500c +PERO2              =  0.750GHD4006 + 0.250GAH500u + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 18083} G3H500c +PERO3              =  0.800GHD4006 + 0.200GAH500u + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 18084} G3H500c +PERO5              =  0.650GHD4006 + 0.350GAH500u + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 18085} G3H500c +PERO6              =  0.650GHD4006 + 0.350GAH500u + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 18086} G3H500c +PERO9              =       GHD4006 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 18087} G2N504C +GNO                =       G1N504a +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 18088} G2N504C +GNO                =       GNN501S                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 18089} G2N504C +GHO2               =       GHN502R                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 18090} G2N504C +GNO3               =       G1N504a +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 18091} G2N504C +MEPERO             =  0.340G1N504a + 0.330GND500b + 0.330GND500c                 : ARR( 0.565E-13,  -845., 0.0);
+{ 18092} G2N504C +PERO1              =  0.460G1N504a + 0.270GND500b + 0.270GND500c                 : ARR( 0.434E-13,  -900., 0.0);
+{ 18093} G2N504C +PERO2              =  0.400G1N504a + 0.300GND500b + 0.300GND500c                 : ARR( 0.162E-13, -1400., 0.0);
+{ 18094} G2N504C +PERO3              =  0.460G1N504a + 0.270GND500b + 0.270GND500c                 : ARR( 0.488E-13, -1250., 0.0);
+{ 18095} G2N504C +PERO5              =  0.460G1N504a + 0.270GND500b + 0.270GND500c                 : ARR( 0.183E-11,   450., 0.0);
+{ 18096} G2N504C +PERO6              =  0.300G1N504a + 0.350GND500b + 0.350GND500c                 : ARR( 0.168E-13, -1300., 0.0);
+{ 18097} G2N504C +PERO9              =  0.650G1N504a + 0.350GND500c                                : ARR( 0.100E-10,     0., 0.0);
+{ 18098} G1H504L                     =       GCH2O   +      GHN400y +      GHO2                    : ARR( 0.200E+15,  5296., 0.0);
+{ 18099} G1H504L                     =       GDO2000 +      GND3005 +      GHO                     : ARR( 0.200E+15,  4828., 0.0);
+{ 18100} GHH500i +GHO                =       GHD500Q +      GHO                                    : ARR( 0.140E-09,     0., 0.0);
+{ 18101} GHH500i +GHO                =       GHD500N +      GHO                                    : ARR( 0.269E-10,     0., 0.0);
+{ 18102} GHH500i +GHO                =       G3H500d                                               : ARR( 0.223E-10,     0., 0.0);
+{ 18103} GHH500i +GNO3               =       G3H500d +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 18104} GHH500i+HV               =       G1H5018 +      GHO                                    :  0.100E+01*SUN;
+{ 18105} GHH500i+HV               =       G1H5017 +      GHO                                    :  0.100E+01*SUN;
+{ 18106} GHH500i+HV               =       GHD4006 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 18107} G3H500d +GHO2               =  0.800GGH500p + 0.200GAH500v + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 18108} G3H500d +GNO                =       GHD4006 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 18109} G3H500d +GNO2               =       GPH500w                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 18110} G3H500d +GNO3               =       GHD4006 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 18111} G3H500d +MEPERO             =  0.685GHD4006 + 0.315GAH500v + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 18112} G3H500d +PERO1              =  0.800GHD4006 + 0.200GAH500v + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 18113} G3H500d +PERO2              =  0.750GHD4006 + 0.250GAH500v + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 18114} G3H500d +PERO3              =  0.800GHD4006 + 0.200GAH500v + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 18115} G3H500d +PERO5              =  0.650GHD4006 + 0.350GAH500v + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 18116} G3H500d +PERO6              =  0.650GHD4006 + 0.350GAH500v + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 18117} G3H500d +PERO9              =       GHD4006 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 18118} GHD500M +GHO                =       GDK500K +      GHO                                    : ARR( 0.144E-09,     0., 0.0);
+{ 18119} GHD500M +GHO                =       G3H500e                                               : ARR( 0.229E-10,     0., 0.0);
+{ 18120} GHD500M +GNO3               =       G3H500e +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 18121} GHD500M+HV               =       G1D500I +      GHO                                    :  0.100E+01*SUN;
+{ 18122} GHD500M+HV               =       GHD4006 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 18123} G3H500e +GHO2               =  0.800GGH500q + 0.200GAH500w + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 18124} G3H500e +GNO                =       GHD4006 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 18125} G3H500e +GNO2               =       GPH500x                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 18126} G3H500e +GNO3               =       GHD4006 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 18127} G3H500e +MEPERO             =  0.685GHD4006 + 0.315GAH500w + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 18128} G3H500e +PERO1              =  0.800GHD4006 + 0.200GAH500w + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 18129} G3H500e +PERO2              =  0.750GHD4006 + 0.250GAH500w + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 18130} G3H500e +PERO3              =  0.800GHD4006 + 0.200GAH500w + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 18131} G3H500e +PERO5              =  0.650GHD4006 + 0.350GAH500w + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 18132} G3H500e +PERO6              =  0.650GHD4006 + 0.350GAH500w + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 18133} G3H500e +PERO9              =       GHD4006 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 18134} GHD500N +GHO                =       GHD5013 +      GHO2                                   : ARR( 0.403E-11,     0., 0.0);
+{ 18135} GHD500N +GHO                =       G2H5026                                               : ARR( 0.449E-11,     0., 0.0);
+{ 18136} GHD500N +GHO                =       GDK500L +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 18137} GHD500N +GHO                =       G3H4004 +      GCO                                    : ARR( 0.127E-10,     0., 0.0);
+{ 18138} GHD500N +GHO                =       G2D500W                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 18139} GHD500N +GNO3               =       G3H4004 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 18140} GHD500N+HV               =       G1D500l +      GHO                                    :  0.100E+01*SUN;
+{ 18141} GHD500N+HV               =       G3H4004 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 18142} GHD500N+HV               =       GHD4006 +      GCO                                    :  0.100E+01*SUN;
+{ 18143} GHD500N+HV               =       GHO3001 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 18144} G2H5026 +GNO                =       G1H504M +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 18145} G2H5026 +GNO                =       GHN505L                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 18146} G2H5026 +GHO2               =       GHH501z                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 18147} G2H5026 +GNO3               =       G1H504M +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 18148} G2H5026 +MEPERO             =  0.340G1H504M + 0.330GHD500h + 0.330GHD5014                 : ARR( 0.565E-13,  -845., 0.0);
+{ 18149} G2H5026 +PERO1              =  0.460G1H504M + 0.270GHD500h + 0.270GHD5014                 : ARR( 0.434E-13,  -900., 0.0);
+{ 18150} G2H5026 +PERO2              =  0.400G1H504M + 0.300GHD500h + 0.300GHD5014                 : ARR( 0.162E-13, -1400., 0.0);
+{ 18151} G2H5026 +PERO3              =  0.460G1H504M + 0.270GHD500h + 0.270GHD5014                 : ARR( 0.488E-13, -1250., 0.0);
+{ 18152} G2H5026 +PERO5              =  0.460G1H504M + 0.270GHD500h + 0.270GHD5014                 : ARR( 0.183E-11,   450., 0.0);
+{ 18153} G2H5026 +PERO6              =  0.300G1H504M + 0.350GHD500h + 0.350GHD5014                 : ARR( 0.168E-13, -1300., 0.0);
+{ 18154} G2H5026 +PERO9              =  0.650G1H504M + 0.350GHD5014                                : ARR( 0.100E-10,     0., 0.0);
+{ 18155} G2D500W +GNO                =       G1D500l +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 18156} G2D500W +GNO                =       GND500Z                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 18157} G2D500W +GHO2               =       GHD500N                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 18158} G2D500W +GNO3               =       G1D500l +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 18159} G2D500W +MEPERO             =  0.340G1D500l + 0.330GDK500J + 0.330GDK500L                 : ARR( 0.565E-13,  -845., 0.0);
+{ 18160} G2D500W +PERO1              =  0.460G1D500l + 0.270GDK500J + 0.270GDK500L                 : ARR( 0.434E-13,  -900., 0.0);
+{ 18161} G2D500W +PERO2              =  0.400G1D500l + 0.300GDK500J + 0.300GDK500L                 : ARR( 0.162E-13, -1400., 0.0);
+{ 18162} G2D500W +PERO3              =  0.460G1D500l + 0.270GDK500J + 0.270GDK500L                 : ARR( 0.488E-13, -1250., 0.0);
+{ 18163} G2D500W +PERO5              =  0.460G1D500l + 0.270GDK500J + 0.270GDK500L                 : ARR( 0.183E-11,   450., 0.0);
+{ 18164} G2D500W +PERO6              =  0.300G1D500l + 0.350GDK500J + 0.350GDK500L                 : ARR( 0.168E-13, -1300., 0.0);
+{ 18165} G2D500W +PERO9              =  0.650G1D500l + 0.350GDK500L                                : ARR( 0.100E-10,     0., 0.0);
+{ 18166} G1H504M                     =       GCH2O   +      GHD400K +      GHO2                    : ARR( 0.200E+15,  4465., 0.0);
+{ 18167} G1H504M                     =       GDO2000 +      GDD3002 +      GHO                     : ARR( 0.200E+15,  4556., 0.0);
+{ 18168} GHD500O +GHO                =       G3H500f                                               : ARR( 0.217E-10,     0., 0.0);
+{ 18169} GHD500O +GHO                =       GDD5005 +      GHO                                    : ARR( 0.209E-09,     0., 0.0);
+{ 18170} GHD500O +GHO                =       G3H500g                                               : ARR( 0.217E-10,     0., 0.0);
+{ 18171} GHD500O +GNO3               =       G3H500f +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 18172} GHD500O +GNO3               =       G3H500g +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 18173} GHD500O+HV               =       GCO     +      GHD400C + 2.000GHO2                    :  0.100E+01*SUN;
+{ 18174} GHD500O+HV               =       G1D500K +      GHO                                    :  0.100E+01*SUN;
+{ 18175} GHD500O+HV               =       G2H400e +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 18176} GHD500O+HV               =       GHD3001 +      GD02000                                :  0.100E+01*SUN;
+{ 18177} G3H500f +GHO2               =  0.800GGH500s + 0.200GAH500y + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 18178} G3H500f +GNO                =       GHD400C +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 18179} G3H500f +GNO2               =       GPH500z                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 18180} G3H500f +GNO3               =       GHD400C +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 18181} G3H500f +MEPERO             =  0.685GHD400C + 0.315GAH500y + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 18182} G3H500f +PERO1              =  0.800GHD400C + 0.200GAH500y + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 18183} G3H500f +PERO2              =  0.750GHD400C + 0.250GAH500y + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 18184} G3H500f +PERO3              =  0.800GHD400C + 0.200GAH500y + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 18185} G3H500f +PERO5              =  0.650GHD400C + 0.350GAH500y + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 18186} G3H500f +PERO6              =  0.650GHD400C + 0.350GAH500y + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 18187} G3H500f +PERO9              =       GHD400C +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 18188} G3H500g +GHO2               =  0.800GGH500t + 0.200GAH500z + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 18189} G3H500g +GNO                =       G2H400e +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 18190} G3H500g +GNO2               =       GPH5011                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 18191} G3H500g +GNO3               =       G2H400e +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 18192} G3H500g +MEPERO             =  0.685G2H400e + 0.315GAH500z + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 18193} G3H500g +PERO1              =  0.800G2H400e + 0.200GAH500z + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 18194} G3H500g +PERO2              =  0.750G2H400e + 0.250GAH500z + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 18195} G3H500g +PERO3              =  0.800G2H400e + 0.200GAH500z + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 18196} G3H500g +PERO5              =  0.650G2H400e + 0.350GAH500z + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 18197} G3H500g +PERO6              =  0.650G2H400e + 0.350GAH500z + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 18198} G3H500g +PERO9              =       G2H400e +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 18199} G2H400e +GNO                =       G1H400j +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 18200} G2H400e +GNO                =       GHN400z                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 18201} G2H400e +GHO2               =       GHH400d                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 18202} G2H400e +GNO3               =       G1H400j +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 18203} G2H400e +MEPERO             =  0.480G1H400j + 0.260GHD4009 + 0.260GHD400L                 : ARR( 0.164E-12,  -795., 0.0);
+{ 18204} G2H400e +PERO1              =  0.600G1H400j + 0.200GHD4009 + 0.200GHD400L                 : ARR( 0.126E-12,  -850., 0.0);
+{ 18205} G2H400e +PERO2              =  0.560G1H400j + 0.220GHD4009 + 0.220GHD400L                 : ARR( 0.471E-13, -1350., 0.0);
+{ 18206} G2H400e +PERO3              =  0.600G1H400j + 0.200GHD4009 + 0.200GHD400L                 : ARR( 0.142E-12, -1200., 0.0);
+{ 18207} G2H400e +PERO5              =  0.600G1H400j + 0.200GHD4009 + 0.200GHD400L                 : ARR( 0.533E-11,   500., 0.0);
+{ 18208} G2H400e +PERO6              =  0.460G1H400j + 0.270GHD4009 + 0.270GHD400L                 : ARR( 0.488E-13, -1250., 0.0);
+{ 18209} G2H400e +PERO9              =  0.800G1H400j + 0.200GHD400L                                : ARR( 0.100E-10,     0., 0.0);
+{ 18210} G1H400j +OXYGEN             =       GHD400L +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 18211} G1H400j                     =       GDD3001 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5636., 0.0);
+{ 18212} GGN5008 +GHO                =       GGN5009 +      GHO2                                   : ARR( 0.106E-10,     0., 0.0);
+{ 18213} GGN5008 +GHO                =       G2G500c                                               : ARR( 0.889E-12,     0., 0.0);
+{ 18214} GGN5008 +GHO                =       G3N5007                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 18215} GGN5008+HV               =       G1G500f +      GNO2                                   :  0.100E+01*SUN;
+{ 18216} GGN5008+HV               =       G2N400D +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 18217} G2G500c +GNO                =       G1G500g +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 18218} G2G500c +GNO                =       GGN500s                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 18219} G2G500c +GHO2               =       GGH500u                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 18220} G2G500c +GNO3               =       G1G500g +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 18221} G2G500c +MEPERO             =  0.340G1G500g + 0.330GGN500T + 0.330GGN500t                 : ARR( 0.565E-13,  -845., 0.0);
+{ 18222} G2G500c +PERO1              =  0.460G1G500g + 0.270GGN500T + 0.270GGN500t                 : ARR( 0.434E-13,  -900., 0.0);
+{ 18223} G2G500c +PERO2              =  0.400G1G500g + 0.300GGN500T + 0.300GGN500t                 : ARR( 0.162E-13, -1400., 0.0);
+{ 18224} G2G500c +PERO3              =  0.460G1G500g + 0.270GGN500T + 0.270GGN500t                 : ARR( 0.488E-13, -1250., 0.0);
+{ 18225} G2G500c +PERO5              =  0.460G1G500g + 0.270GGN500T + 0.270GGN500t                 : ARR( 0.183E-11,   450., 0.0);
+{ 18226} G2G500c +PERO6              =  0.300G1G500g + 0.350GGN500T + 0.350GGN500t                 : ARR( 0.168E-13, -1300., 0.0);
+{ 18227} G2G500c +PERO9              =  0.650G1G500g + 0.350GGN500t                                : ARR( 0.100E-10,     0., 0.0);
+{ 18228} G1G500f                     =       G2G500d                                               : ARR( 0.160E+12,  3221., 0.0);
+{ 18229} G1G500g                     =       GND3000 +      GGD2000 +      GHO2                    : ARR( 0.200E+15,  5847., 0.0);
+{ 18230} G1G500g                     =       GND400C +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 18231} G2G500d +GNO                =       G1G500h +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 18232} G2G500d +GNO                =       GGN500u                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 18233} G2G500d +GHO2               =       GGH500v                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 18234} G2G500d +GNO3               =       G1G500h +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 18235} G2G500d +MEPERO             =  0.340G1G500h + 0.330GGO500A + 0.330GGK500B                 : ARR( 0.565E-13,  -845., 0.0);
+{ 18236} G2G500d +PERO1              =  0.460G1G500h + 0.270GGO500A + 0.270GGK500B                 : ARR( 0.434E-13,  -900., 0.0);
+{ 18237} G2G500d +PERO2              =  0.400G1G500h + 0.300GGO500A + 0.300GGK500B                 : ARR( 0.162E-13, -1400., 0.0);
+{ 18238} G2G500d +PERO3              =  0.460G1G500h + 0.270GGO500A + 0.270GGK500B                 : ARR( 0.488E-13, -1250., 0.0);
+{ 18239} G2G500d +PERO5              =  0.460G1G500h + 0.270GGO500A + 0.270GGK500B                 : ARR( 0.183E-11,   450., 0.0);
+{ 18240} G2G500d +PERO6              =  0.300G1G500h + 0.350GGO500A + 0.350GGK500B                 : ARR( 0.168E-13, -1300., 0.0);
+{ 18241} G2G500d +PERO9              =  0.650G1G500h + 0.350GGK500B                                : ARR( 0.100E-10,     0., 0.0);
+{ 18242} G1G500h                     =       GGD5003 +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{ 18243} G1G500h                     =       GDO4003 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 18244} GAN5008 +GHO                =       G2A500j                                               : ARR( 0.695E-12,     0., 0.0);
+{ 18245} GAN5008 +GHO                =       GAN5009 +      GHO2                                   : ARR( 0.112E-10,     0., 0.0);
+{ 18246} GAN5008+HV               =       G1A500l +      GNO2                                   :  0.100E+01*SUN;
+{ 18247} G2A500j +GNO                =       G1A500m +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 18248} G2A500j +GNO                =       GAN500w                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 18249} G2A500j +GHO2               =       GAH5011                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 18250} G2A500j +GNO3               =       G1A500m +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 18251} G2A500j +MEPERO             =  0.340G1A500m + 0.330GAN500x + 0.330GAN500y                 : ARR( 0.565E-13,  -845., 0.0);
+{ 18252} G2A500j +PERO1              =  0.460G1A500m + 0.270GAN500x + 0.270GAN500y                 : ARR( 0.434E-13,  -900., 0.0);
+{ 18253} G2A500j +PERO2              =  0.400G1A500m + 0.300GAN500x + 0.300GAN500y                 : ARR( 0.162E-13, -1400., 0.0);
+{ 18254} G2A500j +PERO3              =  0.460G1A500m + 0.270GAN500x + 0.270GAN500y                 : ARR( 0.488E-13, -1250., 0.0);
+{ 18255} G2A500j +PERO5              =  0.460G1A500m + 0.270GAN500x + 0.270GAN500y                 : ARR( 0.183E-11,   450., 0.0);
+{ 18256} G2A500j +PERO6              =  0.300G1A500m + 0.350GAN500x + 0.350GAN500y                 : ARR( 0.168E-13, -1300., 0.0);
+{ 18257} G2A500j +PERO9              =  0.650G1A500m + 0.350GAN500y                                : ARR( 0.100E-10,     0., 0.0);
+{ 18258} G1A500l +OXYGEN             =       GAD5007 +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{ 18259} G1A500l                     =       G2A500k                                               : ARR( 0.160E+12,  3356., 0.0);
+{ 18260} G1A500m                     =       GCO     +      GND400C +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 18261} G1A500m                     =       GAD2000 +      GND3000 +      GHO2                    : ARR( 0.200E+15,  5847., 0.0);
+{ 18262} G2A500k +GNO                =       G1A500n +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 18263} G2A500k +GNO                =       GAN500z                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 18264} G2A500k +GHO2               =       GAH5012                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 18265} G2A500k +GNO3               =       G1A500n +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 18266} G2A500k +MEPERO             =  0.340G1A500n + 0.330GAO500C + 0.330GAK500N                 : ARR( 0.565E-13,  -845., 0.0);
+{ 18267} G2A500k +PERO1              =  0.460G1A500n + 0.270GAO500C + 0.270GAK500N                 : ARR( 0.434E-13,  -900., 0.0);
+{ 18268} G2A500k +PERO2              =  0.400G1A500n + 0.300GAO500C + 0.300GAK500N                 : ARR( 0.162E-13, -1400., 0.0);
+{ 18269} G2A500k +PERO3              =  0.460G1A500n + 0.270GAO500C + 0.270GAK500N                 : ARR( 0.488E-13, -1250., 0.0);
+{ 18270} G2A500k +PERO5              =  0.460G1A500n + 0.270GAO500C + 0.270GAK500N                 : ARR( 0.183E-11,   450., 0.0);
+{ 18271} G2A500k +PERO6              =  0.300G1A500n + 0.350GAO500C + 0.350GAK500N                 : ARR( 0.168E-13, -1300., 0.0);
+{ 18272} G2A500k +PERO9              =  0.650G1A500n + 0.350GAK500N                                : ARR( 0.100E-10,     0., 0.0);
+{ 18273} G1A500n                     =       GAD5008 +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{ 18274} G1A500n                     =       GDO4003 +      GCO     +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 18275} GPN5008                     =       G3N5007 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 18276} GPN5008 +GHO                =       GPN5009 +      GHO2                                   : ARR( 0.107E-10,     0., 0.0);
+{ 18277} GPN5008 +GHO                =       G2P500m                                               : ARR( 0.898E-12,     0., 0.0);
+{ 18278} GPN5008+HV               =       G1P500o +      GNO2                                   :  0.100E+01*SUN;
+{ 18279} GPN5008+HV               =       G3N5007 +      GNO2                                   :  0.100E+01*SUN;
+{ 18280} G2P500m +GNO                =       G1P500p +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 18281} G2P500m +GNO                =       GPN5012                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 18282} G2P500m +GHO2               =       GPH5012                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 18283} G2P500m +GNO3               =       G1P500p +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 18284} G2P500m +MEPERO             =  0.340G1P500p + 0.330GPN500e + 0.330GPN5013                 : ARR( 0.565E-13,  -845., 0.0);
+{ 18285} G2P500m +PERO1              =  0.460G1P500p + 0.270GPN500e + 0.270GPN5013                 : ARR( 0.434E-13,  -900., 0.0);
+{ 18286} G2P500m +PERO2              =  0.400G1P500p + 0.300GPN500e + 0.300GPN5013                 : ARR( 0.162E-13, -1400., 0.0);
+{ 18287} G2P500m +PERO3              =  0.460G1P500p + 0.270GPN500e + 0.270GPN5013                 : ARR( 0.488E-13, -1250., 0.0);
+{ 18288} G2P500m +PERO5              =  0.460G1P500p + 0.270GPN500e + 0.270GPN5013                 : ARR( 0.183E-11,   450., 0.0);
+{ 18289} G2P500m +PERO6              =  0.300G1P500p + 0.350GPN500e + 0.350GPN5013                 : ARR( 0.168E-13, -1300., 0.0);
+{ 18290} G2P500m +PERO9              =  0.650G1P500p + 0.350GPN5013                                : ARR( 0.100E-10,     0., 0.0);
+{ 18291} G1P500o                     =       G2P500n                                               : ARR( 0.160E+12,  3221., 0.0);
+{ 18292} G1P500p                     =       GND3000 +      GPD2000 +      GHO2                    : ARR( 0.200E+15,  5847., 0.0);
+{ 18293} G1P500p                     =       GND400C +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 18294} G2P500n +GNO                =       G1P500q +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 18295} G2P500n +GNO                =       GPN5014                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 18296} G2P500n +GHO2               =       GPH5013                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 18297} G2P500n +GNO3               =       G1P500q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 18298} G2P500n +MEPERO             =  0.340G1P500q + 0.330GPO500A + 0.330GPK500B                 : ARR( 0.565E-13,  -845., 0.0);
+{ 18299} G2P500n +PERO1              =  0.460G1P500q + 0.270GPO500A + 0.270GPK500B                 : ARR( 0.434E-13,  -900., 0.0);
+{ 18300} G2P500n +PERO2              =  0.400G1P500q + 0.300GPO500A + 0.300GPK500B                 : ARR( 0.162E-13, -1400., 0.0);
+{ 18301} G2P500n +PERO3              =  0.460G1P500q + 0.270GPO500A + 0.270GPK500B                 : ARR( 0.488E-13, -1250., 0.0);
+{ 18302} G2P500n +PERO5              =  0.460G1P500q + 0.270GPO500A + 0.270GPK500B                 : ARR( 0.183E-11,   450., 0.0);
+{ 18303} G2P500n +PERO6              =  0.300G1P500q + 0.350GPO500A + 0.350GPK500B                 : ARR( 0.168E-13, -1300., 0.0);
+{ 18304} G2P500n +PERO9              =  0.650G1P500q + 0.350GPK500B                                : ARR( 0.100E-10,     0., 0.0);
+{ 18305} G1P500q                     =       GPD5003 +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{ 18306} G1P500q                     =       GDO4003 +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 18307} GND400C +GHO                =       GND400B +      GHO2                                   : ARR( 0.653E-11,     0., 0.0);
+{ 18308} GND400C +GHO                =       G3N400G                                               : ARR( 0.216E-10,     0., 0.0);
+{ 18309} GND400C +GNO3               =       G3N400G +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 18310} GND400C+HV               =       G1D4004 +      GNO2                                   :  0.100E+01*SUN;
+{ 18311} GND400C+HV               =       GND3000 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 18312} GND500b +GHO                =       GND501D +      GHO2                                   : ARR( 0.414E-11,     0., 0.0);
+{ 18313} GND500b +GHO                =       G2N504D                                               : ARR( 0.146E-11,     0., 0.0);
+{ 18314} GND500b +GHO                =       GND500c +      GHO2                                   : ARR( 0.212E-11,     0., 0.0);
+{ 18315} GND500b +GHO                =       G3N500h                                               : ARR( 0.428E-11,     0., 0.0);
+{ 18316} GND500b +GNO3               =       G3N500h +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 18317} GND500b+HV               =       G1D500F +      GNO2                                   :  0.100E+01*SUN;
+{ 18318} GND500b+HV               =       GDO4003 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 18319} GND500b+HV               =       GDO3000 +      GND2000                                :  0.100E+01*SUN;
+{ 18320} G2N504D +GNO                =       G1N504b +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 18321} G2N504D +GNO                =       GNN502u                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 18322} G2N504D +GHO2               =       GHN505M                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 18323} G2N504D +GNO3               =       G1N504b +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 18324} G2N504D +MEPERO             =  0.340G1N504b + 0.330GND500r + 0.330GND501E                 : ARR( 0.565E-13,  -845., 0.0);
+{ 18325} G2N504D +PERO1              =  0.460G1N504b + 0.270GND500r + 0.270GND501E                 : ARR( 0.434E-13,  -900., 0.0);
+{ 18326} G2N504D +PERO2              =  0.400G1N504b + 0.300GND500r + 0.300GND501E                 : ARR( 0.162E-13, -1400., 0.0);
+{ 18327} G2N504D +PERO3              =  0.460G1N504b + 0.270GND500r + 0.270GND501E                 : ARR( 0.488E-13, -1250., 0.0);
+{ 18328} G2N504D +PERO5              =  0.460G1N504b + 0.270GND500r + 0.270GND501E                 : ARR( 0.183E-11,   450., 0.0);
+{ 18329} G2N504D +PERO6              =  0.300G1N504b + 0.350GND500r + 0.350GND501E                 : ARR( 0.168E-13, -1300., 0.0);
+{ 18330} G2N504D +PERO9              =  0.650G1N504b + 0.350GND501E                                : ARR( 0.100E-10,     0., 0.0);
+{ 18331} G3N500h +GHO2               =  0.800GGN500u + 0.200GAN500z + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 18332} G3N500h +GNO                =       GDO4003 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 18333} G3N500h +GNO2               =       GPN5014                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 18334} G3N500h +GNO3               =       GDO4003 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 18335} G3N500h +MEPERO             =  0.685GDO4003 + 0.315GAN500z + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 18336} G3N500h +PERO1              =  0.800GDO4003 + 0.200GAN500z + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 18337} G3N500h +PERO2              =  0.750GDO4003 + 0.250GAN500z + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 18338} G3N500h +PERO3              =  0.800GDO4003 + 0.200GAN500z + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 18339} G3N500h +PERO5              =  0.650GDO4003 + 0.350GAN500z + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 18340} G3N500h +PERO6              =  0.650GDO4003 + 0.350GAN500z + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 18341} G3N500h +PERO9              =       GDO4003 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 18342} G1N504b                     =       GDO2000 +      GND3005 +      GHO2                    : ARR( 0.200E+15,  3619., 0.0);
+{ 18343} GHD500P +GHO                =       GHD500Q +      GHO2                                   : ARR( 0.365E-10,     0., 0.0);
+{ 18344} GHD500P +GHO                =       GDK500J +      GHO                                    : ARR( 0.281E-10,     0., 0.0);
+{ 18345} GHD500P +GHO                =       G3H500h                                               : ARR( 0.232E-10,     0., 0.0);
+{ 18346} GHD500P +GNO3               =       G3H500h +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 18347} GHD500P+HV               =       G1D500F +      GHO                                    :  0.100E+01*SUN;
+{ 18348} GHD500P+HV               =       GDO4003 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 18349} G3H500h +GHO2               =  0.800GGH500v + 0.200GAH5012 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 18350} G3H500h +GNO                =       GDO4003 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 18351} G3H500h +GNO2               =       GPH5013                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 18352} G3H500h +GNO3               =       GDO4003 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 18353} G3H500h +MEPERO             =  0.685GDO4003 + 0.315GAH5012 + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 18354} G3H500h +PERO1              =  0.800GDO4003 + 0.200GAH5012 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 18355} G3H500h +PERO2              =  0.750GDO4003 + 0.250GAH5012 + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 18356} G3H500h +PERO3              =  0.800GDO4003 + 0.200GAH5012 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 18357} G3H500h +PERO5              =  0.650GDO4003 + 0.350GAH5012 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 18358} G3H500h +PERO6              =  0.650GDO4003 + 0.350GAH5012 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 18359} G3H500h +PERO9              =       GDO4003 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 18360} GDO500B +GHO                =       GDD5002 +      GHO2                                   : ARR( 0.414E-11,     0., 0.0);
+{ 18361} GDO500B +GHO                =       GDK500K +      GHO2                                   : ARR( 0.336E-10,     0., 0.0);
+{ 18362} GDO500B +GHO                =       GDK500J +      GHO2                                   : ARR( 0.646E-11,     0., 0.0);
+{ 18363} GDO500B +GHO                =       G3K500R                                               : ARR( 0.214E-10,     0., 0.0);
+{ 18364} GDO500B +GNO3               =       G3K500R +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 18365} GDO500B+HV               =       GDO4003 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 18366} G3K500R +GHO2               =  0.800GGO500A + 0.200GAO500C + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 18367} G3K500R +GNO                =       GDO4003 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 18368} G3K500R +GNO2               =       GPO500A                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 18369} G3K500R +GNO3               =       GDO4003 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 18370} G3K500R +MEPERO             =  0.685GDO4003 + 0.315GAO500C + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 18371} G3K500R +PERO1              =  0.800GDO4003 + 0.200GAO500C + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 18372} G3K500R +PERO2              =  0.750GDO4003 + 0.250GAO500C + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 18373} G3K500R +PERO3              =  0.800GDO4003 + 0.200GAO500C + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 18374} G3K500R +PERO5              =  0.650GDO4003 + 0.350GAO500C + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 18375} G3K500R +PERO6              =  0.650GDO4003 + 0.350GAO500C + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 18376} G3K500R +PERO9              =       GDO4003 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 18377} GDK500J +GHO                =       GDD5009 +      GHO2                                   : ARR( 0.406E-11,     0., 0.0);
+{ 18378} GDK500J +GHO                =       G2D500X                                               : ARR( 0.453E-11,     0., 0.0);
+{ 18379} GDK500J +GHO                =       GDK500L +      GHO2                                   : ARR( 0.635E-11,     0., 0.0);
+{ 18380} GDK500J +GHO                =       G3K4006 +      GCO                                    : ARR( 0.128E-10,     0., 0.0);
+{ 18381} GDK500J +GNO3               =       G3K4006 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 18382} GDK500J+HV               =       G3K4006 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 18383} GDK500J+HV               =       GDO4003 +      GCO                                    :  0.100E+01*SUN;
+{ 18384} GDK500J+HV               =       GOO3001 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 18385} G2D500X +GNO                =       G1D500m +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 18386} G2D500X +GNO                =       GND501F                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 18387} G2D500X +GHO2               =       GHD5015                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 18388} G2D500X +GNO3               =       G1D500m +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 18389} G2D500X +MEPERO             =  0.340G1D500m + 0.330GDK500N + 0.330GDK500a                 : ARR( 0.565E-13,  -845., 0.0);
+{ 18390} G2D500X +PERO1              =  0.460G1D500m + 0.270GDK500N + 0.270GDK500a                 : ARR( 0.434E-13,  -900., 0.0);
+{ 18391} G2D500X +PERO2              =  0.400G1D500m + 0.300GDK500N + 0.300GDK500a                 : ARR( 0.162E-13, -1400., 0.0);
+{ 18392} G2D500X +PERO3              =  0.460G1D500m + 0.270GDK500N + 0.270GDK500a                 : ARR( 0.488E-13, -1250., 0.0);
+{ 18393} G2D500X +PERO5              =  0.460G1D500m + 0.270GDK500N + 0.270GDK500a                 : ARR( 0.183E-11,   450., 0.0);
+{ 18394} G2D500X +PERO6              =  0.300G1D500m + 0.350GDK500N + 0.350GDK500a                 : ARR( 0.168E-13, -1300., 0.0);
+{ 18395} G2D500X +PERO9              =  0.650G1D500m + 0.350GDK500a                                : ARR( 0.100E-10,     0., 0.0);
+{ 18396} G1D500m                     =       GCH2O   +      GDD4004 +      GHO2                    : ARR( 0.200E+15,  4465., 0.0);
+{ 18397} G1D500m                     =       GDO2000 +      GDD3002 +      GHO2                    : ARR( 0.200E+15,  3347., 0.0);
+{ 18398} GDD5002 +GHO                =       G3D5003                                               : ARR( 0.218E-10,     0., 0.0);
+{ 18399} GDD5002 +GHO                =       GDD5005 +      GHO2                                   : ARR( 0.109E-09,     0., 0.0);
+{ 18400} GDD5002 +GHO                =       G3D5004                                               : ARR( 0.218E-10,     0., 0.0);
+{ 18401} GDD5002 +GNO3               =       G3D5003 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 18402} GDD5002 +GNO3               =       G3D5004 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 18403} GDD5002+HV               =       GCO     +      G2D400A +      GHO2                    :  0.100E+01*SUN;
+{ 18404} GDD5002+HV               =       GD02000 +      GDK3001                                :  0.100E+01*SUN;
+{ 18405} GDD5002+HV               =       GDD4001 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 18406} G3D5003 +GHO2               =  0.800GGD5007 + 0.200GAD5009 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 18407} G3D5003 +GNO                =       G2D400A +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 18408} G3D5003 +GNO2               =       GPD5007                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 18409} G3D5003 +GNO3               =       G2D400A +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 18410} G3D5003 +MEPERO             =  0.685G2D400A + 0.315GAD5009 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 18411} G3D5003 +PERO1              =  0.800G2D400A + 0.200GAD5009 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 18412} G3D5003 +PERO2              =  0.750G2D400A + 0.250GAD5009 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 18413} G3D5003 +PERO3              =  0.800G2D400A + 0.200GAD5009 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 18414} G3D5003 +PERO5              =  0.650G2D400A + 0.350GAD5009 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 18415} G3D5003 +PERO6              =  0.650G2D400A + 0.350GAD5009 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 18416} G3D5003 +PERO9              =       G2D400A +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 18417} G3D5004 +GHO2               =  0.800GGD5003 + 0.200GAD5008 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 18418} G3D5004 +GNO                =       GDD4001 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 18419} G3D5004 +GNO2               =       GPD5003                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 18420} G3D5004 +GNO3               =       GDD4001 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 18421} G3D5004 +MEPERO             =  0.685GDD4001 + 0.315GAD5008 + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 18422} G3D5004 +PERO1              =  0.800GDD4001 + 0.200GAD5008 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 18423} G3D5004 +PERO2              =  0.750GDD4001 + 0.250GAD5008 + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 18424} G3D5004 +PERO3              =  0.800GDD4001 + 0.200GAD5008 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 18425} G3D5004 +PERO5              =  0.650GDD4001 + 0.350GAD5008 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 18426} G3D5004 +PERO6              =  0.650GDD4001 + 0.350GAD5008 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 18427} G3D5004 +PERO9              =       GDD4001 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 18428} G2D400A +GNO                =       G1D400G +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 18429} G2D400A +GNO                =       GND400F                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 18430} G2D400A +GHO2               =       GHD400E                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 18431} G2D400A +GNO3               =       G1D400G +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 18432} G2D400A +MEPERO             =  0.480G1D400G + 0.260GDO4006 + 0.260GDD4003                 : ARR( 0.164E-12,  -795., 0.0);
+{ 18433} G2D400A +PERO1              =  0.600G1D400G + 0.200GDO4006 + 0.200GDD4003                 : ARR( 0.126E-12,  -850., 0.0);
+{ 18434} G2D400A +PERO2              =  0.560G1D400G + 0.220GDO4006 + 0.220GDD4003                 : ARR( 0.471E-13, -1350., 0.0);
+{ 18435} G2D400A +PERO3              =  0.600G1D400G + 0.200GDO4006 + 0.200GDD4003                 : ARR( 0.142E-12, -1200., 0.0);
+{ 18436} G2D400A +PERO5              =  0.600G1D400G + 0.200GDO4006 + 0.200GDD4003                 : ARR( 0.533E-11,   500., 0.0);
+{ 18437} G2D400A +PERO6              =  0.460G1D400G + 0.270GDO4006 + 0.270GDD4003                 : ARR( 0.488E-13, -1250., 0.0);
+{ 18438} G2D400A +PERO9              =  0.800G1D400G + 0.200GDD4003                                : ARR( 0.100E-10,     0., 0.0);
+{ 18439} G1D400G                     =       GDD3001 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4427., 0.0);
+{ 18440} GGN5009 +GHO                =       G2G500e                                               : ARR( 0.566E-12,     0., 0.0);
+{ 18441} GGN5009 +GHO                =       G3N5008                                               : ARR( 0.205E-11,  -190., 0.0);
+{ 18442} GGN5009+HV               =       G1G500I +      GNO2                                   :  0.100E+01*SUN;
+{ 18443} GGN5009+HV               =       G3N3000 +      G2G2000                                :  0.100E+01*SUN;
+{ 18444} GGN5009+HV               =       G2N400E +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 18445} G2G500e +GNO                =       G1G500i +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 18446} G2G500e +GNO                =       GGN500v                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 18447} G2G500e +GHO2               =       GGH500w                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 18448} G2G500e +GNO3               =       G1G500i +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 18449} G2G500e +MEPERO             =  0.340G1G500i + 0.330GGN500j + 0.330GGN500w                 : ARR( 0.565E-13,  -845., 0.0);
+{ 18450} G2G500e +PERO1              =  0.460G1G500i + 0.270GGN500j + 0.270GGN500w                 : ARR( 0.434E-13,  -900., 0.0);
+{ 18451} G2G500e +PERO2              =  0.400G1G500i + 0.300GGN500j + 0.300GGN500w                 : ARR( 0.162E-13, -1400., 0.0);
+{ 18452} G2G500e +PERO3              =  0.460G1G500i + 0.270GGN500j + 0.270GGN500w                 : ARR( 0.488E-13, -1250., 0.0);
+{ 18453} G2G500e +PERO5              =  0.460G1G500i + 0.270GGN500j + 0.270GGN500w                 : ARR( 0.183E-11,   450., 0.0);
+{ 18454} G2G500e +PERO6              =  0.300G1G500i + 0.350GGN500j + 0.350GGN500w                 : ARR( 0.168E-13, -1300., 0.0);
+{ 18455} G2G500e +PERO9              =  0.650G1G500i + 0.350GGN500w                                : ARR( 0.100E-10,     0., 0.0);
+{ 18456} G1G500i                     =       G3N3000 +      GGD2000                                : ARR( 0.200E+15,  5332., 0.0);
+{ 18457} GAN5009 +GHO                =       G2A500l                                               : ARR( 0.389E-12,     0., 0.0);
+{ 18458} GAN5009 +GHO                =       G2A500m                                               : ARR( 0.172E-12,     0., 0.0);
+{ 18459} GAN5009 +GHO                =       GAD5004 +      GNO2                                   : ARR( 0.146E-12,     0., 0.0);
+{ 18460} GAN5009 +GHO                =       G2N400E +      GCO2                                   : ARR( 0.520E-12,     0., 0.0);
+{ 18461} GAN5009+HV               =       G3A3000 +      G2N2000                                :  0.100E+01*SUN;
+{ 18462} GAN5009+HV               =       G1A500L +      GNO2                                   :  0.100E+01*SUN;
+{ 18463} G2A500l +GNO                =       G1A500o +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 18464} G2A500l +GNO                =       GAN5011                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 18465} G2A500l +GHO2               =       GAH5013                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 18466} G2A500l +GNO3               =       G1A500o +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 18467} G2A500l +MEPERO             =  0.340G1A500o + 0.330GAN500q + 0.330GAN5012                 : ARR( 0.565E-13,  -845., 0.0);
+{ 18468} G2A500l +PERO1              =  0.460G1A500o + 0.270GAN500q + 0.270GAN5012                 : ARR( 0.434E-13,  -900., 0.0);
+{ 18469} G2A500l +PERO2              =  0.400G1A500o + 0.300GAN500q + 0.300GAN5012                 : ARR( 0.162E-13, -1400., 0.0);
+{ 18470} G2A500l +PERO3              =  0.460G1A500o + 0.270GAN500q + 0.270GAN5012                 : ARR( 0.488E-13, -1250., 0.0);
+{ 18471} G2A500l +PERO5              =  0.460G1A500o + 0.270GAN500q + 0.270GAN5012                 : ARR( 0.183E-11,   450., 0.0);
+{ 18472} G2A500l +PERO6              =  0.300G1A500o + 0.350GAN500q + 0.350GAN5012                 : ARR( 0.168E-13, -1300., 0.0);
+{ 18473} G2A500l +PERO9              =  0.650G1A500o + 0.350GAN5012                                : ARR( 0.100E-10,     0., 0.0);
+{ 18474} G2A500m +GNO                =       G1A500p +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 18475} G2A500m +GNO                =       GAN5013                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 18476} G2A500m +GHO2               =       GAH5014                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 18477} G2A500m +GNO3               =       G1A500p +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 18478} G2A500m +MEPERO             =  0.340G1A500p + 0.330GAN500L + 0.330GAN5014                 : ARR( 0.565E-13,  -845., 0.0);
+{ 18479} G2A500m +PERO1              =  0.460G1A500p + 0.270GAN500L + 0.270GAN5014                 : ARR( 0.434E-13,  -900., 0.0);
+{ 18480} G2A500m +PERO2              =  0.400G1A500p + 0.300GAN500L + 0.300GAN5014                 : ARR( 0.162E-13, -1400., 0.0);
+{ 18481} G2A500m +PERO3              =  0.460G1A500p + 0.270GAN500L + 0.270GAN5014                 : ARR( 0.488E-13, -1250., 0.0);
+{ 18482} G2A500m +PERO5              =  0.460G1A500p + 0.270GAN500L + 0.270GAN5014                 : ARR( 0.183E-11,   450., 0.0);
+{ 18483} G2A500m +PERO6              =  0.300G1A500p + 0.350GAN500L + 0.350GAN5014                 : ARR( 0.168E-13, -1300., 0.0);
+{ 18484} G2A500m +PERO9              =  0.650G1A500p + 0.350GAN5014                                : ARR( 0.100E-10,     0., 0.0);
+{ 18485} G1A500o                     =       GAD2000 +      G3N3000                                : ARR( 0.200E+15,  5332., 0.0);
+{ 18486} G1A500p                     =       G3A3000 +      GND2000                                : ARR( 0.200E+15,  2978., 0.0);
+{ 18487} GPN5009                     =       G3N5008 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 18488} GPN5009 +GHO                =       GPD5004 +      GNO2                                   : ARR( 0.146E-12,     0., 0.0);
+{ 18489} GPN5009 +GHO                =       G2P500o                                               : ARR( 0.172E-12,     0., 0.0);
+{ 18490} GPN5009 +GHO                =       G2P500p                                               : ARR( 0.525E-12,     0., 0.0);
+{ 18491} GPN5009+HV               =       G1P500N +      GNO2                                   :  0.100E+01*SUN;
+{ 18492} GPN5009+HV               =       G3N3000 +      G2P2000                                :  0.100E+01*SUN;
+{ 18493} GPN5009+HV               =       G3N5008 +      GNO2                                   :  0.100E+01*SUN;
+{ 18494} G2P500o +GNO                =       G1P500r +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 18495} G2P500o +GNO                =       GPN5015                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 18496} G2P500o +GHO2               =       GPH5014                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 18497} G2P500o +GNO3               =       G1P500r +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 18498} G2P500o +MEPERO             =  0.340G1P500r + 0.330GPN500L + 0.330GPN5016                 : ARR( 0.565E-13,  -845., 0.0);
+{ 18499} G2P500o +PERO1              =  0.460G1P500r + 0.270GPN500L + 0.270GPN5016                 : ARR( 0.434E-13,  -900., 0.0);
+{ 18500} G2P500o +PERO2              =  0.400G1P500r + 0.300GPN500L + 0.300GPN5016                 : ARR( 0.162E-13, -1400., 0.0);
+{ 18501} G2P500o +PERO3              =  0.460G1P500r + 0.270GPN500L + 0.270GPN5016                 : ARR( 0.488E-13, -1250., 0.0);
+{ 18502} G2P500o +PERO5              =  0.460G1P500r + 0.270GPN500L + 0.270GPN5016                 : ARR( 0.183E-11,   450., 0.0);
+{ 18503} G2P500o +PERO6              =  0.300G1P500r + 0.350GPN500L + 0.350GPN5016                 : ARR( 0.168E-13, -1300., 0.0);
+{ 18504} G2P500o +PERO9              =  0.650G1P500r + 0.350GPN5016                                : ARR( 0.100E-10,     0., 0.0);
+{ 18505} G2P500p +GNO                =       G1P500s +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 18506} G2P500p +GNO                =       GPN5017                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 18507} G2P500p +GHO2               =       GPH5015                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 18508} G2P500p +GNO3               =       G1P500s +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 18509} G2P500p +MEPERO             =  0.340G1P500s + 0.330GPN500v + 0.330GPN5018                 : ARR( 0.565E-13,  -845., 0.0);
+{ 18510} G2P500p +PERO1              =  0.460G1P500s + 0.270GPN500v + 0.270GPN5018                 : ARR( 0.434E-13,  -900., 0.0);
+{ 18511} G2P500p +PERO2              =  0.400G1P500s + 0.300GPN500v + 0.300GPN5018                 : ARR( 0.162E-13, -1400., 0.0);
+{ 18512} G2P500p +PERO3              =  0.460G1P500s + 0.270GPN500v + 0.270GPN5018                 : ARR( 0.488E-13, -1250., 0.0);
+{ 18513} G2P500p +PERO5              =  0.460G1P500s + 0.270GPN500v + 0.270GPN5018                 : ARR( 0.183E-11,   450., 0.0);
+{ 18514} G2P500p +PERO6              =  0.300G1P500s + 0.350GPN500v + 0.350GPN5018                 : ARR( 0.168E-13, -1300., 0.0);
+{ 18515} G2P500p +PERO9              =  0.650G1P500s + 0.350GPN5018                                : ARR( 0.100E-10,     0., 0.0);
+{ 18516} G1P500r                     =       GND2000 +      G3P3000                                : ARR( 0.200E+15,  2978., 0.0);
+{ 18517} G1P500s                     =       G3N3000 +      GPD2000                                : ARR( 0.200E+15,  5332., 0.0);
+{ 18518} GDD5003 +GHO                =       G3D5005                                               : ARR( 0.133E-09,     0., 0.0);
+{ 18519} GDD5003 +GNO3               =       G3D5005 +      GHNO3                                  : ARR( 0.240E-13,     0., 0.0);
+{ 18520} GDD5003+HV               =       GCO     +      G2D400B                                :  0.100E+01*SUN;
+{ 18521} GDD5003+HV               =       G3D3000 +      G2D2000                                :  0.100E+01*SUN;
+{ 18522} GDD5003+HV               =       G2D400B +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 18523} G3D5005 +GHO2               =  0.800GGD5004 + 0.200GAD5004 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 18524} G3D5005 +GNO                =       G2D400B +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 18525} G3D5005 +GNO2               =       GPD5004                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 18526} G3D5005 +GNO3               =       G2D400B +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 18527} G3D5005 +MEPERO             =  0.685G2D400B + 0.315GAD5004 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 18528} G3D5005 +PERO1              =  0.800G2D400B + 0.200GAD5004 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 18529} G3D5005 +PERO2              =  0.750G2D400B + 0.250GAD5004 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 18530} G3D5005 +PERO3              =  0.800G2D400B + 0.200GAD5004 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 18531} G3D5005 +PERO5              =  0.650G2D400B + 0.350GAD5004 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 18532} G3D5005 +PERO6              =  0.650G2D400B + 0.350GAD5004 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 18533} G3D5005 +PERO9              =       G2D400B +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 18534} G2D400B +GNO                =       G1D4006 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 18535} G2D400B +GNO                =       GND4004                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 18536} G2D400B +GHO2               =       GHD4004                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 18537} G2D400B +GNO3               =       G1D4006 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 18538} G2D400B +MEPERO             =  0.480G1D4006 + 0.260GDK4001 + 0.260GDD4002                 : ARR( 0.164E-12,  -795., 0.0);
+{ 18539} G2D400B +PERO1              =  0.600G1D4006 + 0.200GDK4001 + 0.200GDD4002                 : ARR( 0.126E-12,  -850., 0.0);
+{ 18540} G2D400B +PERO2              =  0.560G1D4006 + 0.220GDK4001 + 0.220GDD4002                 : ARR( 0.471E-13, -1350., 0.0);
+{ 18541} G2D400B +PERO3              =  0.600G1D4006 + 0.200GDK4001 + 0.200GDD4002                 : ARR( 0.142E-12, -1200., 0.0);
+{ 18542} G2D400B +PERO5              =  0.600G1D4006 + 0.200GDK4001 + 0.200GDD4002                 : ARR( 0.533E-11,   500., 0.0);
+{ 18543} G2D400B +PERO6              =  0.460G1D4006 + 0.270GDK4001 + 0.270GDD4002                 : ARR( 0.488E-13, -1250., 0.0);
+{ 18544} G2D400B +PERO9              =  0.800G1D4006 + 0.200GDD4002                                : ARR( 0.100E-10,     0., 0.0);
+{ 18545} GNN400C +GHO                =       GND4004 +      GNO2                                   : ARR( 0.146E-12,     0., 0.0);
+{ 18546} GNN400C +GHO                =       G2N400m                                               : ARR( 0.172E-12,     0., 0.0);
+{ 18547} GNN400C +GHO                =       GND400B +      GNO2                                   : ARR( 0.280E-13,     0., 0.0);
+{ 18548} GNN400C+HV               =       G1N400K +      GNO2                                   :  0.100E+01*SUN;
+{ 18549} GNN400C+HV               =       G3N3000 +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{ 18550} GNN400C+HV               =       G1N400E +      GNO2                                   :  0.100E+01*SUN;
+{ 18551} G2N400m +GNO                =       G1N400q +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 18552} G2N400m +GNO                =       GNN400X                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 18553} G2N400m +GHO2               =       GHN4011                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 18554} G2N400m +GNO3               =       G1N400q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 18555} G2N400m +MEPERO             =  0.340G1N400q + 0.330GNN400J + 0.330GNN400Y                 : ARR( 0.565E-13,  -845., 0.0);
+{ 18556} G2N400m +PERO1              =  0.460G1N400q + 0.270GNN400J + 0.270GNN400Y                 : ARR( 0.434E-13,  -900., 0.0);
+{ 18557} G2N400m +PERO2              =  0.400G1N400q + 0.300GNN400J + 0.300GNN400Y                 : ARR( 0.162E-13, -1400., 0.0);
+{ 18558} G2N400m +PERO3              =  0.460G1N400q + 0.270GNN400J + 0.270GNN400Y                 : ARR( 0.488E-13, -1250., 0.0);
+{ 18559} G2N400m +PERO5              =  0.460G1N400q + 0.270GNN400J + 0.270GNN400Y                 : ARR( 0.183E-11,   450., 0.0);
+{ 18560} G2N400m +PERO6              =  0.300G1N400q + 0.350GNN400J + 0.350GNN400Y                 : ARR( 0.168E-13, -1300., 0.0);
+{ 18561} G2N400m +PERO9              =  0.650G1N400q + 0.350GNN400Y                                : ARR( 0.100E-10,     0., 0.0);
+{ 18562} G1N400q                     =       G3N2000 +      GND2000                                : ARR( 0.200E+15,  2947., 0.0);
+{ 18563} GHN400K +GHO                =       GND400B +      GHO                                    : ARR( 0.100E-10,     0., 0.0);
+{ 18564} GHN400K +GHO                =       G2N400E                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 18565} GHN400K+HV               =       G1H400K +      GNO2                                   :  0.100E+01*SUN;
+{ 18566} GHN400K+HV               =       G3N3000 +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 18567} GHN400K+HV               =       G1N400E +      GHO                                    :  0.100E+01*SUN;
+{ 18568} GND500c +GHO                =       GND501G +      GHO2                                   : ARR( 0.135E-10,     0., 0.0);
+{ 18569} GND500c +GHO                =       G3N500i                                               : ARR( 0.441E-11,     0., 0.0);
+{ 18570} GND500c +GNO3               =       G3N500i +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 18571} GND500c+HV               =       G3K3001 +      GDD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 18572} GND500c+HV               =       G1D500H +      GNO2                                   :  0.100E+01*SUN;
+{ 18573} GND500c+HV               =       GDK4005 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 18574} G3N500i +GHO2               =  0.800GGN500X + 0.200GAN500f + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 18575} G3N500i +GNO                =       GDK4005 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 18576} G3N500i +GNO2               =       GPN500h                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 18577} G3N500i +GNO3               =       GDK4005 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 18578} G3N500i +MEPERO             =  0.685GDK4005 + 0.315GAN500f + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 18579} G3N500i +PERO1              =  0.800GDK4005 + 0.200GAN500f + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 18580} G3N500i +PERO2              =  0.750GDK4005 + 0.250GAN500f + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 18581} G3N500i +PERO3              =  0.800GDK4005 + 0.200GAN500f + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 18582} G3N500i +PERO5              =  0.650GDK4005 + 0.350GAN500f + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 18583} G3N500i +PERO6              =  0.650GDK4005 + 0.350GAN500f + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 18584} G3N500i +PERO9              =       GDK4005 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 18585} GHD500Q +GHO                =       GHD5016 +      GHO2                                   : ARR( 0.134E-10,     0., 0.0);
+{ 18586} GHD500Q +GHO                =       GDK500L +      GHO                                    : ARR( 0.161E-10,     0., 0.0);
+{ 18587} GHD500Q +GHO                =       G3H500i                                               : ARR( 0.691E-10,     0., 0.0);
+{ 18588} GHD500Q +GNO3               =       G3H500i +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 18589} GHD500Q+HV               =       G3K3001 +      GDD2000 +      GHO                     :  0.100E+01*SUN;
+{ 18590} GHD500Q+HV               =       G1D500H +      GHO                                    :  0.100E+01*SUN;
+{ 18591} GHD500Q+HV               =       GDK4005 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 18592} G3H500i +GHO2               =  0.800GGH500S + 0.200GAH500U + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 18593} G3H500i +GNO                =       GDK4005 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 18594} G3H500i +GNO2               =       GPH500X                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 18595} G3H500i +GNO3               =       GDK4005 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 18596} G3H500i +MEPERO             =  0.685GDK4005 + 0.315GAH500U + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 18597} G3H500i +PERO1              =  0.800GDK4005 + 0.200GAH500U + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 18598} G3H500i +PERO2              =  0.750GDK4005 + 0.250GAH500U + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 18599} G3H500i +PERO3              =  0.800GDK4005 + 0.200GAH500U + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 18600} G3H500i +PERO5              =  0.650GDK4005 + 0.350GAH500U + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 18601} G3H500i +PERO6              =  0.650GDK4005 + 0.350GAH500U + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 18602} G3H500i +PERO9              =       GDK4005 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 18603} GDK500K +GHO                =       GDD5005 +      GHO2                                   : ARR( 0.136E-10,     0., 0.0);
+{ 18604} GDK500K +GHO                =       G3K500S                                               : ARR( 0.700E-10,     0., 0.0);
+{ 18605} GDK500K +GNO3               =       G3K500S +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 18606} GDK500K+HV               =       G3K3001 +      GDD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 18607} GDK500K+HV               =       GDK4005 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 18608} G3K500S +GHO2               =  0.800GGK500G + 0.200GAK500E + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 18609} G3K500S +GNO                =       GDK4005 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 18610} G3K500S +GNO2               =       GPK500G                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 18611} G3K500S +GNO3               =       GDK4005 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 18612} G3K500S +MEPERO             =  0.685GDK4005 + 0.315GAK500E + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 18613} G3K500S +PERO1              =  0.800GDK4005 + 0.200GAK500E + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 18614} G3K500S +PERO2              =  0.750GDK4005 + 0.250GAK500E + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 18615} G3K500S +PERO3              =  0.800GDK4005 + 0.200GAK500E + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 18616} G3K500S +PERO5              =  0.650GDK4005 + 0.350GAK500E + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 18617} G3K500S +PERO6              =  0.650GDK4005 + 0.350GAK500E + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 18618} G3K500S +PERO9              =       GDK4005 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 18619} GDK500L +GHO                =       GDD500A +      GHO2                                   : ARR( 0.133E-10,     0., 0.0);
+{ 18620} GDK500L +GHO                =       G3K3001 + 2.000GCO                                    : ARR( 0.132E-10,     0., 0.0);
+{ 18621} GDK500L +GNO3               =       G3K3001 +      GHNO3   + 2.000GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 18622} GDK500L+HV               =       G3K3001 +      G3D2000                                :  0.100E+01*SUN;
+{ 18623} GDK500L+HV               =       G3K3001 +      GCO     +      GCO     +      GHO2     :  0.100E+01*SUN;
+{ 18624} GDK500L+HV               =       GDK4005 +      GCO                                    :  0.100E+01*SUN;
+{ 18625} GDK500L+HV               =       GDO3000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 18626} GGN500A +GHO                =       G2G500f                                               : ARR( 0.291E-12,     0., 0.0);
+{ 18627} GGN500A +GHO                =       G2G500g                                               : ARR( 0.291E-12,     0., 0.0);
+{ 18628} GGN500A +GHO                =       G3N500a                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 18629} GGN500A+HV               =       G1G500j +      GNO2                                   :  0.100E+01*SUN;
+{ 18630} GGN500A+HV               =       G1G5007 +      GNO2                                   :  0.100E+01*SUN;
+{ 18631} GGN500A+HV               =       GND4001 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 18632} G2G500f +GNO                =       G1G500k +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 18633} G2G500f +GNO                =       GGN500x                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 18634} G2G500f +GHO2               =       GGH500x                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 18635} G2G500f +GNO3               =       G1G500k +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 18636} G2G500f +MEPERO             =  0.340G1G500k + 0.330GGN500E + 0.330GGN500y                 : ARR( 0.565E-13,  -845., 0.0);
+{ 18637} G2G500f +PERO1              =  0.460G1G500k + 0.270GGN500E + 0.270GGN500y                 : ARR( 0.434E-13,  -900., 0.0);
+{ 18638} G2G500f +PERO2              =  0.400G1G500k + 0.300GGN500E + 0.300GGN500y                 : ARR( 0.162E-13, -1400., 0.0);
+{ 18639} G2G500f +PERO3              =  0.460G1G500k + 0.270GGN500E + 0.270GGN500y                 : ARR( 0.488E-13, -1250., 0.0);
+{ 18640} G2G500f +PERO5              =  0.460G1G500k + 0.270GGN500E + 0.270GGN500y                 : ARR( 0.183E-11,   450., 0.0);
+{ 18641} G2G500f +PERO6              =  0.300G1G500k + 0.350GGN500E + 0.350GGN500y                 : ARR( 0.168E-13, -1300., 0.0);
+{ 18642} G2G500f +PERO9              =  0.650G1G500k + 0.350GGN500y                                : ARR( 0.100E-10,     0., 0.0);
+{ 18643} G2G500g +GNO                =       G1G500l +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 18644} G2G500g +GNO                =       GGN500z                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 18645} G2G500g +GHO2               =       GGH500y                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 18646} G2G500g +GNO3               =       G1G500l +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 18647} G2G500g +MEPERO             =  0.340G1G500l + 0.330GGN500s + 0.330GGN500v                 : ARR( 0.565E-13,  -845., 0.0);
+{ 18648} G2G500g +PERO1              =  0.460G1G500l + 0.270GGN500s + 0.270GGN500v                 : ARR( 0.434E-13,  -900., 0.0);
+{ 18649} G2G500g +PERO2              =  0.400G1G500l + 0.300GGN500s + 0.300GGN500v                 : ARR( 0.162E-13, -1400., 0.0);
+{ 18650} G2G500g +PERO3              =  0.460G1G500l + 0.270GGN500s + 0.270GGN500v                 : ARR( 0.488E-13, -1250., 0.0);
+{ 18651} G2G500g +PERO5              =  0.460G1G500l + 0.270GGN500s + 0.270GGN500v                 : ARR( 0.183E-11,   450., 0.0);
+{ 18652} G2G500g +PERO6              =  0.300G1G500l + 0.350GGN500s + 0.350GGN500v                 : ARR( 0.168E-13, -1300., 0.0);
+{ 18653} G2G500g +PERO9              =  0.650G1G500l + 0.350GGN500v                                : ARR( 0.100E-10,     0., 0.0);
+{ 18654} G1G500j +OXYGEN             =       GGN5011 +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{ 18655} G1G500j                     =       GGK5005 +      GNO2                                   : ARR( 0.800E+11,  4245., 0.0);
+{ 18656} G1G500k                     =       GND2000 +      G2G3003                                : ARR( 0.200E+15,  7116., 0.0);
+{ 18657} G1G500l                     =       G2N2000 +      GGN3005                                : ARR( 0.200E+15,  6244., 0.0);
+{ 18658} G1G500l                     =       GND3000 +      GGD2000 +      GNO2                    : ARR( 0.200E+15,  6422., 0.0);
+{ 18659} GGH5007 +GHO                =       GGN500C +      GHO                                    : ARR( 0.265E-10,     0., 0.0);
+{ 18660} GGH5007 +GHO                =       G2G5006                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 18661} GGH5007 +GHO                =       G3H500T                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 18662} GGH5007+HV               =       G1G500m +      GNO2                                   :  0.100E+01*SUN;
+{ 18663} GGH5007+HV               =       G1G5007 +      GHO                                    :  0.100E+01*SUN;
+{ 18664} GGH5007+HV               =       GND4001 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 18665} G1G500m                     =       GGK5005 +      GHO                                    : ARR( 0.800E+11,  1899., 0.0);
+{ 18666} GGN500B +GHO                =       G2G500h                                               : ARR( 0.147E-11,     0., 0.0);
+{ 18667} GGN500B +GHO                =       GGN500C +      GHO2                                   : ARR( 0.654E-11,     0., 0.0);
+{ 18668} GGN500B +GHO                =       G3N500J                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 18669} GGN500B+HV               =       G1G500n +      GNO2                                   :  0.100E+01*SUN;
+{ 18670} GGN500B+HV               =       GND4001 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 18671} G2G500h +GNO                =       G1G500o +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 18672} G2G500h +GNO                =       GGN500h                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 18673} G2G500h +GHO2               =       GGH500z                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 18674} G2G500h +GNO3               =       G1G500o +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 18675} G2G500h +MEPERO             =  0.340G1G500o + 0.330GGN500T + 0.330GGN500j                 : ARR( 0.565E-13,  -845., 0.0);
+{ 18676} G2G500h +PERO1              =  0.460G1G500o + 0.270GGN500T + 0.270GGN500j                 : ARR( 0.434E-13,  -900., 0.0);
+{ 18677} G2G500h +PERO2              =  0.400G1G500o + 0.300GGN500T + 0.300GGN500j                 : ARR( 0.162E-13, -1400., 0.0);
+{ 18678} G2G500h +PERO3              =  0.460G1G500o + 0.270GGN500T + 0.270GGN500j                 : ARR( 0.488E-13, -1250., 0.0);
+{ 18679} G2G500h +PERO5              =  0.460G1G500o + 0.270GGN500T + 0.270GGN500j                 : ARR( 0.183E-11,   450., 0.0);
+{ 18680} G2G500h +PERO6              =  0.300G1G500o + 0.350GGN500T + 0.350GGN500j                 : ARR( 0.168E-13, -1300., 0.0);
+{ 18681} G2G500h +PERO9              =  0.650G1G500o + 0.350GGN500j                                : ARR( 0.100E-10,     0., 0.0);
+{ 18682} G1G500n                     =       GGK5005 +      GHO2                                   : ARR( 0.800E+11,  2246., 0.0);
+{ 18683} G1G500o                     =       GND3000 +      GGD2000 +      GHO2                    : ARR( 0.200E+15,  3675., 0.0);
+{ 18684} GGN500C +GHO                =       G2G500i                                               : ARR( 0.904E-12,     0., 0.0);
+{ 18685} GGN500C +GHO                =       G2G500j                                               : ARR( 0.869E-12,     0., 0.0);
+{ 18686} GGN500C +GHO                =       G3N500j                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 18687} GGN500C+HV               =       G1G500p +      GNO2                                   :  0.100E+01*SUN;
+{ 18688} GGN500C+HV               =       GAN4000 +      GCO2                                   :  0.100E+01*SUN;
+{ 18689} G2G500i +GNO                =       G1G500q +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 18690} G2G500i +GNO                =       GGN5012                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 18691} G2G500i +GHO2               =       GGH5011                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 18692} G2G500i +GNO3               =       G1G500q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 18693} G2G500i +MEPERO             =  0.340G1G500q + 0.330GGN500M + 0.330GGN5013                 : ARR( 0.565E-13,  -845., 0.0);
+{ 18694} G2G500i +PERO1              =  0.460G1G500q + 0.270GGN500M + 0.270GGN5013                 : ARR( 0.434E-13,  -900., 0.0);
+{ 18695} G2G500i +PERO2              =  0.400G1G500q + 0.300GGN500M + 0.300GGN5013                 : ARR( 0.162E-13, -1400., 0.0);
+{ 18696} G2G500i +PERO3              =  0.460G1G500q + 0.270GGN500M + 0.270GGN5013                 : ARR( 0.488E-13, -1250., 0.0);
+{ 18697} G2G500i +PERO5              =  0.460G1G500q + 0.270GGN500M + 0.270GGN5013                 : ARR( 0.183E-11,   450., 0.0);
+{ 18698} G2G500i +PERO6              =  0.300G1G500q + 0.350GGN500M + 0.350GGN5013                 : ARR( 0.168E-13, -1300., 0.0);
+{ 18699} G2G500i +PERO9              =  0.650G1G500q + 0.350GGN5013                                : ARR( 0.100E-10,     0., 0.0);
+{ 18700} G2G500j +GNO                =       G1G500r +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 18701} G2G500j +GNO                =       GGN5014                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 18702} G2G500j +GHO2               =       GGH5012                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 18703} G2G500j +GNO3               =       G1G500r +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 18704} G2G500j +MEPERO             =  0.340G1G500r + 0.330GGN500t + 0.330GGN500w                 : ARR( 0.565E-13,  -845., 0.0);
+{ 18705} G2G500j +PERO1              =  0.460G1G500r + 0.270GGN500t + 0.270GGN500w                 : ARR( 0.434E-13,  -900., 0.0);
+{ 18706} G2G500j +PERO2              =  0.400G1G500r + 0.300GGN500t + 0.300GGN500w                 : ARR( 0.162E-13, -1400., 0.0);
+{ 18707} G2G500j +PERO3              =  0.460G1G500r + 0.270GGN500t + 0.270GGN500w                 : ARR( 0.488E-13, -1250., 0.0);
+{ 18708} G2G500j +PERO5              =  0.460G1G500r + 0.270GGN500t + 0.270GGN500w                 : ARR( 0.183E-11,   450., 0.0);
+{ 18709} G2G500j +PERO6              =  0.300G1G500r + 0.350GGN500t + 0.350GGN500w                 : ARR( 0.168E-13, -1300., 0.0);
+{ 18710} G2G500j +PERO9              =  0.650G1G500r + 0.350GGN500w                                : ARR( 0.100E-10,     0., 0.0);
+{ 18711} G3N500j +GHO2               =  0.800GGN500C + 0.200GAN500C + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 18712} G3N500j +GNO                =       G3N4000 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 18713} G3N500j +GNO2               =       GPN500E                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 18714} G3N500j +GNO3               =       G3N4000 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 18715} G3N500j +MEPERO             =  0.685G3N4000 + 0.315GAN500C + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 18716} G3N500j +PERO1              =  0.800G3N4000 + 0.200GAN500C + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 18717} G3N500j +PERO2              =  0.750G3N4000 + 0.250GAN500C + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 18718} G3N500j +PERO3              =  0.800G3N4000 + 0.200GAN500C + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 18719} G3N500j +PERO5              =  0.650G3N4000 + 0.350GAN500C + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 18720} G3N500j +PERO6              =  0.650G3N4000 + 0.350GAN500C + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 18721} G3N500j +PERO9              =       G3N4000 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 18722} G1G500p +OXYGEN             =       GGD5008 +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{ 18723} G1G500q                     =       GND2000 +      G2G3005                                : ARR( 0.200E+15,  6866., 0.0);
+{ 18724} G1G500r                     =       GND3000 +      GCO     +      GHO2    +      GCO      : ARR( 0.200E+15,  3012., 0.0);
+{ 18725} GGN500D +GHO                =       GGN5011 +      GHO2                                   : ARR( 0.424E-11,     0., 0.0);
+{ 18726} GGN500D +GHO                =       G2G500k                                               : ARR( 0.149E-11,     0., 0.0);
+{ 18727} GGN500D +GHO                =       G3N5009                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 18728} GGN500D+HV               =       G1G5008 +      GNO2                                   :  0.100E+01*SUN;
+{ 18729} GGN500D+HV               =       GDO4000 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 18730} G2G500k +GNO                =       G1G500s +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 18731} G2G500k +GNO                =       GGN5015                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 18732} G2G500k +GHO2               =       GGH5013                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 18733} G2G500k +GNO3               =       G1G500s +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 18734} G2G500k +MEPERO             =  0.340G1G500s + 0.330GGN500H + 0.330GGN5016                 : ARR( 0.565E-13,  -845., 0.0);
+{ 18735} G2G500k +PERO1              =  0.460G1G500s + 0.270GGN500H + 0.270GGN5016                 : ARR( 0.434E-13,  -900., 0.0);
+{ 18736} G2G500k +PERO2              =  0.400G1G500s + 0.300GGN500H + 0.300GGN5016                 : ARR( 0.162E-13, -1400., 0.0);
+{ 18737} G2G500k +PERO3              =  0.460G1G500s + 0.270GGN500H + 0.270GGN5016                 : ARR( 0.488E-13, -1250., 0.0);
+{ 18738} G2G500k +PERO5              =  0.460G1G500s + 0.270GGN500H + 0.270GGN5016                 : ARR( 0.183E-11,   450., 0.0);
+{ 18739} G2G500k +PERO6              =  0.300G1G500s + 0.350GGN500H + 0.350GGN5016                 : ARR( 0.168E-13, -1300., 0.0);
+{ 18740} G2G500k +PERO9              =  0.650G1G500s + 0.350GGN5016                                : ARR( 0.100E-10,     0., 0.0);
+{ 18741} G1G500s                     =       GCH2O   +      GGN400M +      GHO2                    : ARR( 0.200E+15,  5041., 0.0);
+{ 18742} GGH5008 +GHO                =       GGH5014 +      GHO2                                   : ARR( 0.435E-11,     0., 0.0);
+{ 18743} GGH5008 +GHO                =       GGK5005 +      GHO                                    : ARR( 0.272E-10,     0., 0.0);
+{ 18744} GGH5008 +GHO                =       G2G5007                                               : ARR( 0.206E-11,  -190., 0.0);
+{ 18745} GGH5008 +GHO                =       G3H5005                                               : ARR( 0.206E-11,  -190., 0.0);
+{ 18746} GGH5008+HV               =       G1G5008 +      GHO                                    :  0.100E+01*SUN;
+{ 18747} GGH5008+HV               =       GDO4000 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 18748} GGO5007 +GHO                =       GGD5000 +      GHO2                                   : ARR( 0.409E-11,     0., 0.0);
+{ 18749} GGO5007 +GHO                =       G2G500l                                               : ARR( 0.144E-11,     0., 0.0);
+{ 18750} GGO5007 +GHO                =       G2G500m                                               : ARR( 0.144E-11,     0., 0.0);
+{ 18751} GGO5007 +GHO                =       GGK5005 +      GHO2                                   : ARR( 0.639E-11,     0., 0.0);
+{ 18752} GGO5007 +GHO                =       G3K500A                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 18753} GGO5007+HV               =       GDO4000 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 18754} G2G500l +GNO                =       G1G500t +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 18755} G2G500l +GNO                =       GGN5017                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 18756} G2G500l +GHO2               =       GGH5015                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 18757} G2G500l +GNO3               =       G1G500t +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 18758} G2G500l +MEPERO             =  0.340G1G500t + 0.330GGO5005 + 0.330GGK500L                 : ARR( 0.565E-13,  -845., 0.0);
+{ 18759} G2G500l +PERO1              =  0.460G1G500t + 0.270GGO5005 + 0.270GGK500L                 : ARR( 0.434E-13,  -900., 0.0);
+{ 18760} G2G500l +PERO2              =  0.400G1G500t + 0.300GGO5005 + 0.300GGK500L                 : ARR( 0.162E-13, -1400., 0.0);
+{ 18761} G2G500l +PERO3              =  0.460G1G500t + 0.270GGO5005 + 0.270GGK500L                 : ARR( 0.488E-13, -1250., 0.0);
+{ 18762} G2G500l +PERO5              =  0.460G1G500t + 0.270GGO5005 + 0.270GGK500L                 : ARR( 0.183E-11,   450., 0.0);
+{ 18763} G2G500l +PERO6              =  0.300G1G500t + 0.350GGO5005 + 0.350GGK500L                 : ARR( 0.168E-13, -1300., 0.0);
+{ 18764} G2G500l +PERO9              =  0.650G1G500t + 0.350GGK500L                                : ARR( 0.100E-10,     0., 0.0);
+{ 18765} G2G500m +GNO                =       G1G500u +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 18766} G2G500m +GNO                =       GGN500o                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 18767} G2G500m +GHO2               =       GGH500q                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 18768} G2G500m +GNO3               =       G1G500u +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 18769} G2G500m +MEPERO             =  0.340G1G500u + 0.330GGO500A + 0.330GGK500G                 : ARR( 0.565E-13,  -845., 0.0);
+{ 18770} G2G500m +PERO1              =  0.460G1G500u + 0.270GGO500A + 0.270GGK500G                 : ARR( 0.434E-13,  -900., 0.0);
+{ 18771} G2G500m +PERO2              =  0.400G1G500u + 0.300GGO500A + 0.300GGK500G                 : ARR( 0.162E-13, -1400., 0.0);
+{ 18772} G2G500m +PERO3              =  0.460G1G500u + 0.270GGO500A + 0.270GGK500G                 : ARR( 0.488E-13, -1250., 0.0);
+{ 18773} G2G500m +PERO5              =  0.460G1G500u + 0.270GGO500A + 0.270GGK500G                 : ARR( 0.183E-11,   450., 0.0);
+{ 18774} G2G500m +PERO6              =  0.300G1G500u + 0.350GGO500A + 0.350GGK500G                 : ARR( 0.168E-13, -1300., 0.0);
+{ 18775} G2G500m +PERO9              =  0.650G1G500u + 0.350GGK500G                                : ARR( 0.100E-10,     0., 0.0);
+{ 18776} G1G500t                     =       GCH2O   +      GGD4002 +      GHO2                    : ARR( 0.200E+15,  5041., 0.0);
+{ 18777} G1G500u                     =       GDO3000 +      GGD2000 +      GHO2                    : ARR( 0.200E+15,  3675., 0.0);
+{ 18778} GGK5005 +GHO                =       GGD5008 +      GHO2                                   : ARR( 0.406E-11,     0., 0.0);
+{ 18779} GGK5005 +GHO                =       G2G500n                                               : ARR( 0.453E-11,     0., 0.0);
+{ 18780} GGK5005 +GHO                =       G2G500o                                               : ARR( 0.871E-12,     0., 0.0);
+{ 18781} GGK5005 +GHO                =       G3K500T                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 18782} GGK5005+HV               =       GAO4001 +      GCO2                                   :  0.100E+01*SUN;
+{ 18783} G2G500n +GNO                =       G1G500v +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 18784} G2G500n +GNO                =       GGN5018                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 18785} G2G500n +GHO2               =       GGH5016                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 18786} G2G500n +GNO3               =       G1G500v +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 18787} G2G500n +MEPERO             =  0.340G1G500v + 0.330GGK5006 + 0.330GGK500O                 : ARR( 0.565E-13,  -845., 0.0);
+{ 18788} G2G500n +PERO1              =  0.460G1G500v + 0.270GGK5006 + 0.270GGK500O                 : ARR( 0.434E-13,  -900., 0.0);
+{ 18789} G2G500n +PERO2              =  0.400G1G500v + 0.300GGK5006 + 0.300GGK500O                 : ARR( 0.162E-13, -1400., 0.0);
+{ 18790} G2G500n +PERO3              =  0.460G1G500v + 0.270GGK5006 + 0.270GGK500O                 : ARR( 0.488E-13, -1250., 0.0);
+{ 18791} G2G500n +PERO5              =  0.460G1G500v + 0.270GGK5006 + 0.270GGK500O                 : ARR( 0.183E-11,   450., 0.0);
+{ 18792} G2G500n +PERO6              =  0.300G1G500v + 0.350GGK5006 + 0.350GGK500O                 : ARR( 0.168E-13, -1300., 0.0);
+{ 18793} G2G500n +PERO9              =  0.650G1G500v + 0.350GGK500O                                : ARR( 0.100E-10,     0., 0.0);
+{ 18794} G2G500o +GNO                =       G1G500w +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 18795} G2G500o +GNO                =       GGN500p                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 18796} G2G500o +GHO2               =       GGH500r                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 18797} G2G500o +GNO3               =       G1G500w +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 18798} G2G500o +MEPERO             =  0.340G1G500w + 0.330GGK500B + 0.330GGK500H                 : ARR( 0.565E-13,  -845., 0.0);
+{ 18799} G2G500o +PERO1              =  0.460G1G500w + 0.270GGK500B + 0.270GGK500H                 : ARR( 0.434E-13,  -900., 0.0);
+{ 18800} G2G500o +PERO2              =  0.400G1G500w + 0.300GGK500B + 0.300GGK500H                 : ARR( 0.162E-13, -1400., 0.0);
+{ 18801} G2G500o +PERO3              =  0.460G1G500w + 0.270GGK500B + 0.270GGK500H                 : ARR( 0.488E-13, -1250., 0.0);
+{ 18802} G2G500o +PERO5              =  0.460G1G500w + 0.270GGK500B + 0.270GGK500H                 : ARR( 0.183E-11,   450., 0.0);
+{ 18803} G2G500o +PERO6              =  0.300G1G500w + 0.350GGK500B + 0.350GGK500H                 : ARR( 0.168E-13, -1300., 0.0);
+{ 18804} G2G500o +PERO9              =  0.650G1G500w + 0.350GGK500H                                : ARR( 0.100E-10,     0., 0.0);
+{ 18805} G3K500T +GHO2               =  0.800GGK5005 + 0.200GAK5005 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 18806} G3K500T +GNO                =       G3K4002 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 18807} G3K500T +GNO2               =       GPK5005                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 18808} G3K500T +GNO3               =       G3K4002 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 18809} G3K500T +MEPERO             =  0.685G3K4002 + 0.315GAK5005 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 18810} G3K500T +PERO1              =  0.800G3K4002 + 0.200GAK5005 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 18811} G3K500T +PERO2              =  0.750G3K4002 + 0.250GAK5005 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 18812} G3K500T +PERO3              =  0.800G3K4002 + 0.200GAK5005 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 18813} G3K500T +PERO5              =  0.650G3K4002 + 0.350GAK5005 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 18814} G3K500T +PERO6              =  0.650G3K4002 + 0.350GAK5005 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 18815} G3K500T +PERO9              =       G3K4002 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 18816} G1G500v                     =       GCH2O   +      GGD4005 +      GHO2                    : ARR( 0.200E+15,  4658., 0.0);
+{ 18817} G1G500w                     =       GDO3000 +      GCO     +      GHO2    +      GCO      : ARR( 0.200E+15,  3012., 0.0);
+{ 18818} GGD5000 +GHO                =       GGD5008 +      GHO2                                   : ARR( 0.646E-11,     0., 0.0);
+{ 18819} GGD5000 +GHO                =       G2G500p                                               : ARR( 0.461E-11,     0., 0.0);
+{ 18820} GGD5000 +GHO                =       G3G5000                                               : ARR( 0.214E-10,     0., 0.0);
+{ 18821} GGD5000 +GHO                =       G3D5001                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 18822} GGD5000 +GNO3               =       G3G5000 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 18823} GGD5000+HV               =       GDD4000 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 18824} GGD5000+HV               =       G2G400D +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 18825} GGD5000+HV               =       GGK3000 +      GD02000                                :  0.100E+01*SUN;
+{ 18826} G2G500p +GNO                =       G1G500x +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 18827} G2G500p +GNO                =       GGN500q                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 18828} G2G500p +GHO2               =       GGH500s                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 18829} G2G500p +GNO3               =       G1G500x +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 18830} G2G500p +MEPERO             =  0.340G1G500x + 0.330GGD5003 + 0.330GGD5005                 : ARR( 0.565E-13,  -845., 0.0);
+{ 18831} G2G500p +PERO1              =  0.460G1G500x + 0.270GGD5003 + 0.270GGD5005                 : ARR( 0.434E-13,  -900., 0.0);
+{ 18832} G2G500p +PERO2              =  0.400G1G500x + 0.300GGD5003 + 0.300GGD5005                 : ARR( 0.162E-13, -1400., 0.0);
+{ 18833} G2G500p +PERO3              =  0.460G1G500x + 0.270GGD5003 + 0.270GGD5005                 : ARR( 0.488E-13, -1250., 0.0);
+{ 18834} G2G500p +PERO5              =  0.460G1G500x + 0.270GGD5003 + 0.270GGD5005                 : ARR( 0.183E-11,   450., 0.0);
+{ 18835} G2G500p +PERO6              =  0.300G1G500x + 0.350GGD5003 + 0.350GGD5005                 : ARR( 0.168E-13, -1300., 0.0);
+{ 18836} G2G500p +PERO9              =  0.650G1G500x + 0.350GGD5005                                : ARR( 0.100E-10,     0., 0.0);
+{ 18837} G3G5000 +GHO2               =  0.800GGG5000 + 0.200GAG5000 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 18838} G3G5000 +GNO                =       G2G400D +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 18839} G3G5000 +GNO2               =       GPG5000                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 18840} G3G5000 +GNO3               =       G2G400D +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 18841} G3G5000 +MEPERO             =  0.685G2G400D + 0.315GAG5000 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 18842} G3G5000 +PERO1              =  0.800G2G400D + 0.200GAG5000 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 18843} G3G5000 +PERO2              =  0.750G2G400D + 0.250GAG5000 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 18844} G3G5000 +PERO3              =  0.800G2G400D + 0.200GAG5000 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 18845} G3G5000 +PERO5              =  0.650G2G400D + 0.350GAG5000 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 18846} G3G5000 +PERO6              =  0.650G2G400D + 0.350GAG5000 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 18847} G3G5000 +PERO9              =       G2G400D +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 18848} G2G400D +GNO                =       G1G400F +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 18849} G2G400D +GNO                =       GGN4009                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 18850} G2G400D +GHO2               =       GGH400J                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 18851} G2G400D +GNO3               =       G1G400F +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 18852} G2G400D +MEPERO             =  0.480G1G400F + 0.260GGO4005 + 0.260GGD4002                 : ARR( 0.146E-12,  -445., 0.0);
+{ 18853} G2G400D +PERO1              =  0.600G1G400F + 0.200GGO4005 + 0.200GGD4002                 : ARR( 0.112E-12,  -500., 0.0);
+{ 18854} G2G400D +PERO2              =  0.560G1G400F + 0.220GGO4005 + 0.220GGD4002                 : ARR( 0.418E-13, -1000., 0.0);
+{ 18855} G2G400D +PERO3              =  0.600G1G400F + 0.200GGO4005 + 0.200GGD4002                 : ARR( 0.126E-12,  -850., 0.0);
+{ 18856} G2G400D +PERO5              =  0.600G1G400F + 0.200GGO4005 + 0.200GGD4002                 : ARR( 0.473E-11,   850., 0.0);
+{ 18857} G2G400D +PERO6              =  0.460G1G400F + 0.270GGO4005 + 0.270GGD4002                 : ARR( 0.434E-13,  -900., 0.0);
+{ 18858} G2G400D +PERO9              =  0.800G1G400F + 0.200GGD4002                                : ARR( 0.100E-10,     0., 0.0);
+{ 18859} G1G500x                     =       GGD2000 +      GDD3000 +      GHO2                    : ARR( 0.200E+15,  3292., 0.0);
+{ 18860} G1G400F +OXYGEN             =       GGD4002 +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{ 18861} GAN500A +GHO                =       G2A500n                                               : ARR( 0.308E-12,     0., 0.0);
+{ 18862} GAN500A +GHO                =       G2A500o                                               : ARR( 0.308E-12,     0., 0.0);
+{ 18863} GAN500A +GHO                =       GND4001 +      GNO2    +      GCO2                    : ARR( 0.567E-12,     0., 0.0);
+{ 18864} GAN500A+HV               =       G1A5006 +      GNO2                                   :  0.100E+01*SUN;
+{ 18865} GAN500A+HV               =       G1A500T +      GNO2                                   :  0.100E+01*SUN;
+{ 18866} G2A500n +GNO                =       G1A500q +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 18867} G2A500n +GNO                =       GAN500s                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 18868} G2A500n +GHO2               =       GAH5015                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 18869} G2A500n +GNO3               =       G1A500q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 18870} G2A500n +MEPERO             =  0.340G1A500q + 0.330GAN500w + 0.330GAN5011                 : ARR( 0.565E-13,  -845., 0.0);
+{ 18871} G2A500n +PERO1              =  0.460G1A500q + 0.270GAN500w + 0.270GAN5011                 : ARR( 0.434E-13,  -900., 0.0);
+{ 18872} G2A500n +PERO2              =  0.400G1A500q + 0.300GAN500w + 0.300GAN5011                 : ARR( 0.162E-13, -1400., 0.0);
+{ 18873} G2A500n +PERO3              =  0.460G1A500q + 0.270GAN500w + 0.270GAN5011                 : ARR( 0.488E-13, -1250., 0.0);
+{ 18874} G2A500n +PERO5              =  0.460G1A500q + 0.270GAN500w + 0.270GAN5011                 : ARR( 0.183E-11,   450., 0.0);
+{ 18875} G2A500n +PERO6              =  0.300G1A500q + 0.350GAN500w + 0.350GAN5011                 : ARR( 0.168E-13, -1300., 0.0);
+{ 18876} G2A500n +PERO9              =  0.650G1A500q + 0.350GAN5011                                : ARR( 0.100E-10,     0., 0.0);
+{ 18877} G2A500o +GNO                =       G1A500r +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 18878} G2A500o +GNO                =       GAN5015                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 18879} G2A500o +GHO2               =       GAH5016                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 18880} G2A500o +GNO3               =       G1A500r +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 18881} G2A500o +MEPERO             =  0.340G1A500r + 0.330GAN500G + 0.330GAN5016                 : ARR( 0.565E-13,  -845., 0.0);
+{ 18882} G2A500o +PERO1              =  0.460G1A500r + 0.270GAN500G + 0.270GAN5016                 : ARR( 0.434E-13,  -900., 0.0);
+{ 18883} G2A500o +PERO2              =  0.400G1A500r + 0.300GAN500G + 0.300GAN5016                 : ARR( 0.162E-13, -1400., 0.0);
+{ 18884} G2A500o +PERO3              =  0.460G1A500r + 0.270GAN500G + 0.270GAN5016                 : ARR( 0.488E-13, -1250., 0.0);
+{ 18885} G2A500o +PERO5              =  0.460G1A500r + 0.270GAN500G + 0.270GAN5016                 : ARR( 0.183E-11,   450., 0.0);
+{ 18886} G2A500o +PERO6              =  0.300G1A500r + 0.350GAN500G + 0.350GAN5016                 : ARR( 0.168E-13, -1300., 0.0);
+{ 18887} G2A500o +PERO9              =  0.650G1A500r + 0.350GAN5016                                : ARR( 0.100E-10,     0., 0.0);
+{ 18888} G1A500q                     =       GAD2000 +      GND3000 +      GNO2                    : ARR( 0.200E+15,  6422., 0.0);
+{ 18889} G1A500q                     =       GAN3006 +      G2N2000                                : ARR( 0.200E+15,  6244., 0.0);
+{ 18890} G1A500r                     =       G2A3004 +      GND2000                                : ARR( 0.200E+15,  7116., 0.0);
+{ 18891} GAH5007 +GHO                =       GAN500C +      GHO                                    : ARR( 0.193E-10,     0., 0.0);
+{ 18892} GAH5007 +GHO                =       G2A500p                                               : ARR( 0.146E-11,     0., 0.0);
+{ 18893} GAH5007 +GHO                =       G2A5005                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 18894} GAH5007+HV               =       G1A5006 +      GHO                                    :  0.100E+01*SUN;
+{ 18895} GAH5007+HV               =       G1A500s +      GNO2                                   :  0.100E+01*SUN;
+{ 18896} G2A500p +GNO                =       G1A500t +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 18897} G2A500p +GNO                =       GAH500r                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 18898} G2A500p +GHO2               =       GAH5017                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 18899} G2A500p +GNO3               =       G1A500t +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 18900} G2A500p +MEPERO             =  0.340G1A500t + 0.330GAH5011 + 0.330GAH5013                 : ARR( 0.565E-13,  -845., 0.0);
+{ 18901} G2A500p +PERO1              =  0.460G1A500t + 0.270GAH5011 + 0.270GAH5013                 : ARR( 0.434E-13,  -900., 0.0);
+{ 18902} G2A500p +PERO2              =  0.400G1A500t + 0.300GAH5011 + 0.300GAH5013                 : ARR( 0.162E-13, -1400., 0.0);
+{ 18903} G2A500p +PERO3              =  0.460G1A500t + 0.270GAH5011 + 0.270GAH5013                 : ARR( 0.488E-13, -1250., 0.0);
+{ 18904} G2A500p +PERO5              =  0.460G1A500t + 0.270GAH5011 + 0.270GAH5013                 : ARR( 0.183E-11,   450., 0.0);
+{ 18905} G2A500p +PERO6              =  0.300G1A500t + 0.350GAH5011 + 0.350GAH5013                 : ARR( 0.168E-13, -1300., 0.0);
+{ 18906} G2A500p +PERO9              =  0.650G1A500t + 0.350GAH5013                                : ARR( 0.100E-10,     0., 0.0);
+{ 18907} G1A500s                     =       GAK5005 +      GHO                                    : ARR( 0.800E+11,  2034., 0.0);
+{ 18908} G1A500t                     =       GAD2000 +      GND3000 +      GHO                     : ARR( 0.200E+15,  4883., 0.0);
+{ 18909} GAN500B +GHO                =       GAN500C +      GHO2                                   : ARR( 0.498E-11,     0., 0.0);
+{ 18910} GAN500B +GHO                =       G2A500q                                               : ARR( 0.151E-11,     0., 0.0);
+{ 18911} GAN500B +GHO                =       GND4001 +      GHO2    +      GCO2                    : ARR( 0.557E-12,     0., 0.0);
+{ 18912} GAN500B+HV               =       G1A500u +      GNO2                                   :  0.100E+01*SUN;
+{ 18913} G2A500q +GNO                =       G1A500v +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 18914} G2A500q +GNO                =       GAN500a                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 18915} G2A500q +GHO2               =       GAH5018                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 18916} G2A500q +GNO3               =       G1A500v +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 18917} G2A500q +MEPERO             =  0.340G1A500v + 0.330GAN500x + 0.330GAN500q                 : ARR( 0.565E-13,  -845., 0.0);
+{ 18918} G2A500q +PERO1              =  0.460G1A500v + 0.270GAN500x + 0.270GAN500q                 : ARR( 0.434E-13,  -900., 0.0);
+{ 18919} G2A500q +PERO2              =  0.400G1A500v + 0.300GAN500x + 0.300GAN500q                 : ARR( 0.162E-13, -1400., 0.0);
+{ 18920} G2A500q +PERO3              =  0.460G1A500v + 0.270GAN500x + 0.270GAN500q                 : ARR( 0.488E-13, -1250., 0.0);
+{ 18921} G2A500q +PERO5              =  0.460G1A500v + 0.270GAN500x + 0.270GAN500q                 : ARR( 0.183E-11,   450., 0.0);
+{ 18922} G2A500q +PERO6              =  0.300G1A500v + 0.350GAN500x + 0.350GAN500q                 : ARR( 0.168E-13, -1300., 0.0);
+{ 18923} G2A500q +PERO9              =  0.650G1A500v + 0.350GAN500q                                : ARR( 0.100E-10,     0., 0.0);
+{ 18924} G1A500u                     =       GAK5005 +      GHO2                                   : ARR( 0.800E+11,  2381., 0.0);
+{ 18925} G1A500v                     =       GAD2000 +      GND3000 +      GHO2                    : ARR( 0.200E+15,  3675., 0.0);
+{ 18926} GAN500C +GHO                =       G2A500r                                               : ARR( 0.879E-12,     0., 0.0);
+{ 18927} GAN500C +GHO                =       G2A500s                                               : ARR( 0.914E-12,     0., 0.0);
+{ 18928} GAN500C +GHO                =       G3N4000 +      GCO2                                   : ARR( 0.530E-12,     0., 0.0);
+{ 18929} GAN500C+HV               =       GND4001 +      GCO2                                   :  0.100E+01*SUN;
+{ 18930} GAN500C+HV               =       G1A500w +      GNO2                                   :  0.100E+01*SUN;
+{ 18931} G2A500r +GNO                =       G1A500x +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 18932} G2A500r +GNO                =       GAN500t                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 18933} G2A500r +GHO2               =       GAH5019                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 18934} G2A500r +GNO3               =       G1A500x +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 18935} G2A500r +MEPERO             =  0.340G1A500x + 0.330GAN500y + 0.330GAN5012                 : ARR( 0.565E-13,  -845., 0.0);
+{ 18936} G2A500r +PERO1              =  0.460G1A500x + 0.270GAN500y + 0.270GAN5012                 : ARR( 0.434E-13,  -900., 0.0);
+{ 18937} G2A500r +PERO2              =  0.400G1A500x + 0.300GAN500y + 0.300GAN5012                 : ARR( 0.162E-13, -1400., 0.0);
+{ 18938} G2A500r +PERO3              =  0.460G1A500x + 0.270GAN500y + 0.270GAN5012                 : ARR( 0.488E-13, -1250., 0.0);
+{ 18939} G2A500r +PERO5              =  0.460G1A500x + 0.270GAN500y + 0.270GAN5012                 : ARR( 0.183E-11,   450., 0.0);
+{ 18940} G2A500r +PERO6              =  0.300G1A500x + 0.350GAN500y + 0.350GAN5012                 : ARR( 0.168E-13, -1300., 0.0);
+{ 18941} G2A500r +PERO9              =  0.650G1A500x + 0.350GAN5012                                : ARR( 0.100E-10,     0., 0.0);
+{ 18942} G2A500s +GNO                =       G1A500y +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 18943} G2A500s +GNO                =       GAN5017                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 18944} G2A500s +GHO2               =       GAH501A                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 18945} G2A500s +GNO3               =       G1A500y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 18946} G2A500s +MEPERO             =  0.340G1A500y + 0.330GAN500M + 0.330GAN5018                 : ARR( 0.565E-13,  -845., 0.0);
+{ 18947} G2A500s +PERO1              =  0.460G1A500y + 0.270GAN500M + 0.270GAN5018                 : ARR( 0.434E-13,  -900., 0.0);
+{ 18948} G2A500s +PERO2              =  0.400G1A500y + 0.300GAN500M + 0.300GAN5018                 : ARR( 0.162E-13, -1400., 0.0);
+{ 18949} G2A500s +PERO3              =  0.460G1A500y + 0.270GAN500M + 0.270GAN5018                 : ARR( 0.488E-13, -1250., 0.0);
+{ 18950} G2A500s +PERO5              =  0.460G1A500y + 0.270GAN500M + 0.270GAN5018                 : ARR( 0.183E-11,   450., 0.0);
+{ 18951} G2A500s +PERO6              =  0.300G1A500y + 0.350GAN500M + 0.350GAN5018                 : ARR( 0.168E-13, -1300., 0.0);
+{ 18952} G2A500s +PERO9              =  0.650G1A500y + 0.350GAN5018                                : ARR( 0.100E-10,     0., 0.0);
+{ 18953} G1A500w +OXYGEN             =       GAD500A +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{ 18954} G1A500x                     =       GCO     +      GND3000 +      GHO     +      GCO      : ARR( 0.200E+15,  3012., 0.0);
+{ 18955} G1A500y                     =       G2A3006 +      GND2000                                : ARR( 0.200E+15,  6866., 0.0);
+{ 18956} GAN500D +GHO                =       G2A500t                                               : ARR( 0.652E-12,     0., 0.0);
+{ 18957} GAN500D +GHO                =       G2A500u                                               : ARR( 0.289E-12,     0., 0.0);
+{ 18958} GAN500D +GHO                =       G2N400H +      GCO2                                   : ARR( 0.532E-12,     0., 0.0);
+{ 18959} GAN500D+HV               =       G1A5008 +      GNO2                                   :  0.100E+01*SUN;
+{ 18960} GAN500D+HV               =       G1A500z +      GNO2                                   :  0.100E+01*SUN;
+{ 18961} G2A500t +GNO                =       G1A5011 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 18962} G2A500t +GNO                =       GAN5015                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 18963} G2A500t +GHO2               =       GAH501B                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 18964} G2A500t +GNO3               =       G1A5011 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 18965} G2A500t +MEPERO             =  0.340G1A5011 + 0.330GAN5019 + 0.330GAN5017                 : ARR( 0.565E-13,  -845., 0.0);
+{ 18966} G2A500t +PERO1              =  0.460G1A5011 + 0.270GAN5019 + 0.270GAN5017                 : ARR( 0.434E-13,  -900., 0.0);
+{ 18967} G2A500t +PERO2              =  0.400G1A5011 + 0.300GAN5019 + 0.300GAN5017                 : ARR( 0.162E-13, -1400., 0.0);
+{ 18968} G2A500t +PERO3              =  0.460G1A5011 + 0.270GAN5019 + 0.270GAN5017                 : ARR( 0.488E-13, -1250., 0.0);
+{ 18969} G2A500t +PERO5              =  0.460G1A5011 + 0.270GAN5019 + 0.270GAN5017                 : ARR( 0.183E-11,   450., 0.0);
+{ 18970} G2A500t +PERO6              =  0.300G1A5011 + 0.350GAN5019 + 0.350GAN5017                 : ARR( 0.168E-13, -1300., 0.0);
+{ 18971} G2A500t +PERO9              =  0.650G1A5011 + 0.350GAN5017                                : ARR( 0.100E-10,     0., 0.0);
+{ 18972} G2A500u +GNO                =       G1A5012 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 18973} G2A500u +GNO                =       GAN500u                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 18974} G2A500u +GHO2               =       GAH501C                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 18975} G2A500u +GNO3               =       G1A5012 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 18976} G2A500u +MEPERO             =  0.340G1A5012 + 0.330GAN501A + 0.330GAN5013                 : ARR( 0.565E-13,  -845., 0.0);
+{ 18977} G2A500u +PERO1              =  0.460G1A5012 + 0.270GAN501A + 0.270GAN5013                 : ARR( 0.434E-13,  -900., 0.0);
+{ 18978} G2A500u +PERO2              =  0.400G1A5012 + 0.300GAN501A + 0.300GAN5013                 : ARR( 0.162E-13, -1400., 0.0);
+{ 18979} G2A500u +PERO3              =  0.460G1A5012 + 0.270GAN501A + 0.270GAN5013                 : ARR( 0.488E-13, -1250., 0.0);
+{ 18980} G2A500u +PERO5              =  0.460G1A5012 + 0.270GAN501A + 0.270GAN5013                 : ARR( 0.183E-11,   450., 0.0);
+{ 18981} G2A500u +PERO6              =  0.300G1A5012 + 0.350GAN501A + 0.350GAN5013                 : ARR( 0.168E-13, -1300., 0.0);
+{ 18982} G2A500u +PERO9              =  0.650G1A5012 + 0.350GAN5013                                : ARR( 0.100E-10,     0., 0.0);
+{ 18983} G1A500z                     =       G2A500v                                               : ARR( 0.160E+12,  3356., 0.0);
+{ 18984} G1A5011                     =       GCO     +      GNN4001 +      GHO                     : ARR( 0.200E+15,  4918., 0.0);
+{ 18985} G1A5012                     =       GAD3000 +      GND2000 +      GNO2                    : ARR( 0.200E+15,  5685., 0.0);
+{ 18986} G2A500v +GNO                =       G1A5013 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 18987} G2A500v +GNO                =       GAN501B                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 18988} G2A500v +GHO2               =       GAH501D                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 18989} G2A500v +GNO3               =       G1A5013 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 18990} G2A500v +MEPERO             =  0.340G1A5013 + 0.330GAN501C + 0.330GAN501D                 : ARR( 0.565E-13,  -845., 0.0);
+{ 18991} G2A500v +PERO1              =  0.460G1A5013 + 0.270GAN501C + 0.270GAN501D                 : ARR( 0.434E-13,  -900., 0.0);
+{ 18992} G2A500v +PERO2              =  0.400G1A5013 + 0.300GAN501C + 0.300GAN501D                 : ARR( 0.162E-13, -1400., 0.0);
+{ 18993} G2A500v +PERO3              =  0.460G1A5013 + 0.270GAN501C + 0.270GAN501D                 : ARR( 0.488E-13, -1250., 0.0);
+{ 18994} G2A500v +PERO5              =  0.460G1A5013 + 0.270GAN501C + 0.270GAN501D                 : ARR( 0.183E-11,   450., 0.0);
+{ 18995} G2A500v +PERO6              =  0.300G1A5013 + 0.350GAN501C + 0.350GAN501D                 : ARR( 0.168E-13, -1300., 0.0);
+{ 18996} G2A500v +PERO9              =  0.650G1A5013 + 0.350GAN501D                                : ARR( 0.100E-10,     0., 0.0);
+{ 18997} G1A5013                     =       GAN501E +      GHO2                                   : ARR( 0.160E+12,  3252., 0.0);
+{ 18998} G1A5013                     =       GND4002 +      GCO     +      GHO                     : ARR( 0.200E+15,  4918., 0.0);
+{ 18999} GAH5008 +GHO                =       G2A500w                                               : ARR( 0.154E-11,     0., 0.0);
+{ 19000} GAH5008 +GHO                =       GAN500E +      GHO                                    : ARR( 0.899E-11,     0., 0.0);
+{ 19001} GAH5008 +GHO                =       G2A5007                                               : ARR( 0.207E-11,  -190., 0.0);
+{ 19002} GAH5008+HV               =       G1A5008 +      GHO                                    :  0.100E+01*SUN;
+{ 19003} GAH5008+HV               =       G1A5014 +      GNO2                                   :  0.100E+01*SUN;
+{ 19004} G2A500w +GNO                =       G1A5015 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 19005} G2A500w +GNO                =       GAH500s                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 19006} G2A500w +GHO2               =       GAH501E                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 19007} G2A500w +GNO3               =       G1A5015 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 19008} G2A500w +MEPERO             =  0.340G1A5015 + 0.330GAH501F + 0.330GAH5014                 : ARR( 0.565E-13,  -845., 0.0);
+{ 19009} G2A500w +PERO1              =  0.460G1A5015 + 0.270GAH501F + 0.270GAH5014                 : ARR( 0.434E-13,  -900., 0.0);
+{ 19010} G2A500w +PERO2              =  0.400G1A5015 + 0.300GAH501F + 0.300GAH5014                 : ARR( 0.162E-13, -1400., 0.0);
+{ 19011} G2A500w +PERO3              =  0.460G1A5015 + 0.270GAH501F + 0.270GAH5014                 : ARR( 0.488E-13, -1250., 0.0);
+{ 19012} G2A500w +PERO5              =  0.460G1A5015 + 0.270GAH501F + 0.270GAH5014                 : ARR( 0.183E-11,   450., 0.0);
+{ 19013} G2A500w +PERO6              =  0.300G1A5015 + 0.350GAH501F + 0.350GAH5014                 : ARR( 0.168E-13, -1300., 0.0);
+{ 19014} G2A500w +PERO9              =  0.650G1A5015 + 0.350GAH5014                                : ARR( 0.100E-10,     0., 0.0);
+{ 19015} G1A5014                     =       G2A500x                                               : ARR( 0.160E+12,  3356., 0.0);
+{ 19016} G1A5014                     =       GAD4000 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  6008., 0.0);
+{ 19017} G1A5015                     =       GAD3000 +      GND2000 +      GHO                     : ARR( 0.200E+15,  4146., 0.0);
+{ 19018} G2A500x +GNO                =       G1A5016 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 19019} G2A500x +GNO                =       GAH501G                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 19020} G2A500x +GHO2               =       GAH501H                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 19021} G2A500x +GNO3               =       G1A5016 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 19022} G2A500x +MEPERO             =  0.340G1A5016 + 0.330GAH501I + 0.330GAH501J                 : ARR( 0.565E-13,  -845., 0.0);
+{ 19023} G2A500x +PERO1              =  0.460G1A5016 + 0.270GAH501I + 0.270GAH501J                 : ARR( 0.434E-13,  -900., 0.0);
+{ 19024} G2A500x +PERO2              =  0.400G1A5016 + 0.300GAH501I + 0.300GAH501J                 : ARR( 0.162E-13, -1400., 0.0);
+{ 19025} G2A500x +PERO3              =  0.460G1A5016 + 0.270GAH501I + 0.270GAH501J                 : ARR( 0.488E-13, -1250., 0.0);
+{ 19026} G2A500x +PERO5              =  0.460G1A5016 + 0.270GAH501I + 0.270GAH501J                 : ARR( 0.183E-11,   450., 0.0);
+{ 19027} G2A500x +PERO6              =  0.300G1A5016 + 0.350GAH501I + 0.350GAH501J                 : ARR( 0.168E-13, -1300., 0.0);
+{ 19028} G2A500x +PERO9              =  0.650G1A5016 + 0.350GAH501J                                : ARR( 0.100E-10,     0., 0.0);
+{ 19029} G1A5016                     =       GAH501K +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{ 19030} G1A5016                     =       GHD4000 +      GCO     +      GHO                     : ARR( 0.200E+15,  4918., 0.0);
+{ 19031} GAN500E +GHO                =       G2A500y                                               : ARR( 0.204E-11,     0., 0.0);
+{ 19032} GAN500E +GHO                =       G2A500z                                               : ARR( 0.869E-12,     0., 0.0);
+{ 19033} GAN500E +GHO                =       G2N400J +      GCO2                                   : ARR( 0.524E-12,     0., 0.0);
+{ 19034} GAN500E+HV               =       G3A4000 +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{ 19035} GAN500E+HV               =       G1A5017 +      GNO2                                   :  0.100E+01*SUN;
+{ 19036} G2A500y +GNO                =       G1A5018 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 19037} G2A500y +GNO                =       GAN5016                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 19038} G2A500y +GHO2               =       GAH501L                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 19039} G2A500y +GNO3               =       G1A5018 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 19040} G2A500y +MEPERO             =  0.340G1A5018 + 0.330GAN501F + 0.330GAN5018                 : ARR( 0.565E-13,  -845., 0.0);
+{ 19041} G2A500y +PERO1              =  0.460G1A5018 + 0.270GAN501F + 0.270GAN5018                 : ARR( 0.434E-13,  -900., 0.0);
+{ 19042} G2A500y +PERO2              =  0.400G1A5018 + 0.300GAN501F + 0.300GAN5018                 : ARR( 0.162E-13, -1400., 0.0);
+{ 19043} G2A500y +PERO3              =  0.460G1A5018 + 0.270GAN501F + 0.270GAN5018                 : ARR( 0.488E-13, -1250., 0.0);
+{ 19044} G2A500y +PERO5              =  0.460G1A5018 + 0.270GAN501F + 0.270GAN5018                 : ARR( 0.183E-11,   450., 0.0);
+{ 19045} G2A500y +PERO6              =  0.300G1A5018 + 0.350GAN501F + 0.350GAN5018                 : ARR( 0.168E-13, -1300., 0.0);
+{ 19046} G2A500y +PERO9              =  0.650G1A5018 + 0.350GAN5018                                : ARR( 0.100E-10,     0., 0.0);
+{ 19047} G2A500z +GNO                =       G1A5019 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 19048} G2A500z +GNO                =       GAN500v                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 19049} G2A500z +GHO2               =       GAH501M                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 19050} G2A500z +GNO3               =       G1A5019 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 19051} G2A500z +MEPERO             =  0.340G1A5019 + 0.330GAN501G + 0.330GAN5014                 : ARR( 0.565E-13,  -845., 0.0);
+{ 19052} G2A500z +PERO1              =  0.460G1A5019 + 0.270GAN501G + 0.270GAN5014                 : ARR( 0.434E-13,  -900., 0.0);
+{ 19053} G2A500z +PERO2              =  0.400G1A5019 + 0.300GAN501G + 0.300GAN5014                 : ARR( 0.162E-13, -1400., 0.0);
+{ 19054} G2A500z +PERO3              =  0.460G1A5019 + 0.270GAN501G + 0.270GAN5014                 : ARR( 0.488E-13, -1250., 0.0);
+{ 19055} G2A500z +PERO5              =  0.460G1A5019 + 0.270GAN501G + 0.270GAN5014                 : ARR( 0.183E-11,   450., 0.0);
+{ 19056} G2A500z +PERO6              =  0.300G1A5019 + 0.350GAN501G + 0.350GAN5014                 : ARR( 0.168E-13, -1300., 0.0);
+{ 19057} G2A500z +PERO9              =  0.650G1A5019 + 0.350GAN5014                                : ARR( 0.100E-10,     0., 0.0);
+{ 19058} G3A4000 +GHO2               =  0.800GAG4000 + 0.200GAA4000 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 19059} G3A4000 +GNO                =       G2A3000 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 19060} G3A4000 +GNO2               =       GPA4000                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 19061} G3A4000 +GNO3               =       G2A3000 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 19062} G3A4000 +MEPERO             =  0.685G2A3000 + 0.315GAA4000 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 19063} G3A4000 +PERO1              =  0.800G2A3000 + 0.200GAA4000 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 19064} G3A4000 +PERO2              =  0.750G2A3000 + 0.250GAA4000 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 19065} G3A4000 +PERO3              =  0.800G2A3000 + 0.200GAA4000 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 19066} G3A4000 +PERO5              =  0.650G2A3000 + 0.350GAA4000 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 19067} G3A4000 +PERO6              =  0.650G2A3000 + 0.350GAA4000 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 19068} G3A4000 +PERO9              =       G2A3000 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 19069} G1A5017                     =       G3A4000 +      GCH2O                                  : ARR( 0.200E+15,  3576., 0.0);
+{ 19070} G1A5018                     =       GCO     +      GND4004 +      GHO                     : ARR( 0.200E+15,  4535., 0.0);
+{ 19071} G1A5019                     =       GAD3000 +      G3N2000                                : ARR( 0.200E+15,  2252., 0.0);
+{ 19072} GAD5000 +GHO                =       G2A5011                                               : ARR( 0.484E-11,     0., 0.0);
+{ 19073} GAD5000 +GHO                =       G3A5000                                               : ARR( 0.224E-10,     0., 0.0);
+{ 19074} GAD5000 +GNO3               =       G3A5000 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 19075} GAD5000+HV               =       G2A4004 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 19076} GAD5000+HV               =       GAU3000 +      GD02000                                :  0.100E+01*SUN;
+{ 19077} G2A5011 +GNO                =       G1A501A +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 19078} G2A5011 +GNO                =       GAN500Q                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 19079} G2A5011 +GHO2               =       GAH500t                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 19080} G2A5011 +GNO3               =       G1A501A +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 19081} G2A5011 +MEPERO             =  0.480G1A501A + 0.260GAD5007 + 0.260GAD5004                 : ARR( 0.616E-11,   905., 0.0);
+{ 19082} G2A5011 +PERO1              =  0.600G1A501A + 0.200GAD5007 + 0.200GAD5004                 : ARR( 0.473E-11,   850., 0.0);
+{ 19083} G2A5011 +PERO2              =  0.560G1A501A + 0.220GAD5007 + 0.220GAD5004                 : ARR( 0.177E-11,   350., 0.0);
+{ 19084} G2A5011 +PERO3              =  0.600G1A501A + 0.200GAD5007 + 0.200GAD5004                 : ARR( 0.533E-11,   500., 0.0);
+{ 19085} G2A5011 +PERO5              =  0.600G1A501A + 0.200GAD5007 + 0.200GAD5004                 : ARR( 0.200E-09,  2200., 0.0);
+{ 19086} G2A5011 +PERO6              =  0.460G1A501A + 0.270GAD5007 + 0.270GAD5004                 : ARR( 0.183E-11,   450., 0.0);
+{ 19087} G2A5011 +PERO9              =  0.800G1A501A + 0.200GAD5004                                : ARR( 0.100E-10,     0., 0.0);
+{ 19088} G3A5000 +GHO2               =  0.800GAG5001 + 0.200GAA5000 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 19089} G3A5000 +GNO                =       G2A4004 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 19090} G3A5000 +GNO2               =       GPA5000                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 19091} G3A5000 +GNO3               =       G2A4004 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 19092} G3A5000 +MEPERO             =  0.685G2A4004 + 0.315GAA5000 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 19093} G3A5000 +PERO1              =  0.800G2A4004 + 0.200GAA5000 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 19094} G3A5000 +PERO2              =  0.750G2A4004 + 0.250GAA5000 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 19095} G3A5000 +PERO3              =  0.800G2A4004 + 0.200GAA5000 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 19096} G3A5000 +PERO5              =  0.650G2A4004 + 0.350GAA5000 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 19097} G3A5000 +PERO6              =  0.650G2A4004 + 0.350GAA5000 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 19098} G3A5000 +PERO9              =       G2A4004 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 19099} G1A501A                     =       G2A2000 +      GDD3000                                : ARR( 0.200E+15,  6813., 0.0);
+{ 19100} G1A501A                     =       GAD3000 +      G2D2000                                : ARR( 0.200E+15,  6591., 0.0);
+{ 19101} GAN500F +GHO                =       GAN500k +      GHO2                                   : ARR( 0.434E-11,     0., 0.0);
+{ 19102} GAN500F +GHO                =       G2A5012                                               : ARR( 0.153E-11,     0., 0.0);
+{ 19103} GAN500F +GHO                =       GDO4000 +      GNO2    +      GCO2                    : ARR( 0.562E-12,     0., 0.0);
+{ 19104} GAN500F+HV               =       G1A5009 +      GNO2                                   :  0.100E+01*SUN;
+{ 19105} G2A5012 +GNO                =       G1A501B +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 19106} G2A5012 +GNO                =       GAN501B                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 19107} G2A5012 +GHO2               =       GAH501G                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 19108} G2A5012 +GNO3               =       G1A501B +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 19109} G2A5012 +MEPERO             =  0.340G1A501B + 0.330GAN500I + 0.330GAN501H                 : ARR( 0.565E-13,  -845., 0.0);
+{ 19110} G2A5012 +PERO1              =  0.460G1A501B + 0.270GAN500I + 0.270GAN501H                 : ARR( 0.434E-13,  -900., 0.0);
+{ 19111} G2A5012 +PERO2              =  0.400G1A501B + 0.300GAN500I + 0.300GAN501H                 : ARR( 0.162E-13, -1400., 0.0);
+{ 19112} G2A5012 +PERO3              =  0.460G1A501B + 0.270GAN500I + 0.270GAN501H                 : ARR( 0.488E-13, -1250., 0.0);
+{ 19113} G2A5012 +PERO5              =  0.460G1A501B + 0.270GAN500I + 0.270GAN501H                 : ARR( 0.183E-11,   450., 0.0);
+{ 19114} G2A5012 +PERO6              =  0.300G1A501B + 0.350GAN500I + 0.350GAN501H                 : ARR( 0.168E-13, -1300., 0.0);
+{ 19115} G2A5012 +PERO9              =  0.650G1A501B + 0.350GAN501H                                : ARR( 0.100E-10,     0., 0.0);
+{ 19116} G1A501B                     =       GCH2O   +      GAN400N +      GHO2                    : ARR( 0.200E+15,  5041., 0.0);
+{ 19117} GAH5009 +GHO                =       GAH501N +      GHO2                                   : ARR( 0.456E-11,     0., 0.0);
+{ 19118} GAH5009 +GHO                =       GAK5005 +      GHO                                    : ARR( 0.211E-10,     0., 0.0);
+{ 19119} GAH5009 +GHO                =       G2A5008                                               : ARR( 0.215E-11,  -190., 0.0);
+{ 19120} GAH5009+HV               =       G1A5009 +      GHO                                    :  0.100E+01*SUN;
+{ 19121} GAO5007 +GHO                =       GAD5001 +      GHO2                                   : ARR( 0.430E-11,     0., 0.0);
+{ 19122} GAO5007 +GHO                =       G2A5013                                               : ARR( 0.151E-11,     0., 0.0);
+{ 19123} GAO5007 +GHO                =       G2A5014                                               : ARR( 0.151E-11,     0., 0.0);
+{ 19124} GAO5007 +GHO                =       GAK5005 +      GHO2                                   : ARR( 0.497E-11,     0., 0.0);
+{ 19125} G2A5013 +GNO                =       G1A501C +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 19126} G2A5013 +GNO                =       GAN501C                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 19127} G2A5013 +GHO2               =       GAH501I                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 19128} G2A5013 +GNO3               =       G1A501C +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 19129} G2A5013 +MEPERO             =  0.340G1A501C + 0.330GAO5005 + 0.330GAK500K                 : ARR( 0.565E-13,  -845., 0.0);
+{ 19130} G2A5013 +PERO1              =  0.460G1A501C + 0.270GAO5005 + 0.270GAK500K                 : ARR( 0.434E-13,  -900., 0.0);
+{ 19131} G2A5013 +PERO2              =  0.400G1A501C + 0.300GAO5005 + 0.300GAK500K                 : ARR( 0.162E-13, -1400., 0.0);
+{ 19132} G2A5013 +PERO3              =  0.460G1A501C + 0.270GAO5005 + 0.270GAK500K                 : ARR( 0.488E-13, -1250., 0.0);
+{ 19133} G2A5013 +PERO5              =  0.460G1A501C + 0.270GAO5005 + 0.270GAK500K                 : ARR( 0.183E-11,   450., 0.0);
+{ 19134} G2A5013 +PERO6              =  0.300G1A501C + 0.350GAO5005 + 0.350GAK500K                 : ARR( 0.168E-13, -1300., 0.0);
+{ 19135} G2A5013 +PERO9              =  0.650G1A501C + 0.350GAK500K                                : ARR( 0.100E-10,     0., 0.0);
+{ 19136} G2A5014 +GNO                =       G1A501D +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 19137} G2A5014 +GNO                =       GAN500Y                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 19138} G2A5014 +GHO2               =       GAH500w                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 19139} G2A5014 +GNO3               =       G1A501D +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 19140} G2A5014 +MEPERO             =  0.340G1A501D + 0.330GAO500C + 0.330GAK500E                 : ARR( 0.565E-13,  -845., 0.0);
+{ 19141} G2A5014 +PERO1              =  0.460G1A501D + 0.270GAO500C + 0.270GAK500E                 : ARR( 0.434E-13,  -900., 0.0);
+{ 19142} G2A5014 +PERO2              =  0.400G1A501D + 0.300GAO500C + 0.300GAK500E                 : ARR( 0.162E-13, -1400., 0.0);
+{ 19143} G2A5014 +PERO3              =  0.460G1A501D + 0.270GAO500C + 0.270GAK500E                 : ARR( 0.488E-13, -1250., 0.0);
+{ 19144} G2A5014 +PERO5              =  0.460G1A501D + 0.270GAO500C + 0.270GAK500E                 : ARR( 0.183E-11,   450., 0.0);
+{ 19145} G2A5014 +PERO6              =  0.300G1A501D + 0.350GAO500C + 0.350GAK500E                 : ARR( 0.168E-13, -1300., 0.0);
+{ 19146} G2A5014 +PERO9              =  0.650G1A501D + 0.350GAK500E                                : ARR( 0.100E-10,     0., 0.0);
+{ 19147} G1A501C                     =       GCH2O   +      GAD4002 +      GHO2                    : ARR( 0.200E+15,  5041., 0.0);
+{ 19148} G1A501D                     =       GDO3000 +      GAD2000 +      GHO2                    : ARR( 0.200E+15,  3675., 0.0);
+{ 19149} GAK5005 +GHO                =       GAD500A +      GHO2                                   : ARR( 0.408E-11,     0., 0.0);
+{ 19150} GAK5005 +GHO                =       G2A5015                                               : ARR( 0.454E-11,     0., 0.0);
+{ 19151} GAK5005 +GHO                =       G2A5016                                               : ARR( 0.874E-12,     0., 0.0);
+{ 19152} GAK5005 +GHO                =       G3K4002 +      GCO2                                   : ARR( 0.527E-12,     0., 0.0);
+{ 19153} GAK5005+HV               =       GDO4000 +      GCO2                                   :  0.100E+01*SUN;
+{ 19154} G2A5015 +GNO                =       G1A501E +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 19155} G2A5015 +GNO                =       GAN501D                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 19156} G2A5015 +GHO2               =       GAH501J                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 19157} G2A5015 +GNO3               =       G1A501E +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 19158} G2A5015 +MEPERO             =  0.340G1A501E + 0.330GAK5006 + 0.330GAK500O                 : ARR( 0.565E-13,  -845., 0.0);
+{ 19159} G2A5015 +PERO1              =  0.460G1A501E + 0.270GAK5006 + 0.270GAK500O                 : ARR( 0.434E-13,  -900., 0.0);
+{ 19160} G2A5015 +PERO2              =  0.400G1A501E + 0.300GAK5006 + 0.300GAK500O                 : ARR( 0.162E-13, -1400., 0.0);
+{ 19161} G2A5015 +PERO3              =  0.460G1A501E + 0.270GAK5006 + 0.270GAK500O                 : ARR( 0.488E-13, -1250., 0.0);
+{ 19162} G2A5015 +PERO5              =  0.460G1A501E + 0.270GAK5006 + 0.270GAK500O                 : ARR( 0.183E-11,   450., 0.0);
+{ 19163} G2A5015 +PERO6              =  0.300G1A501E + 0.350GAK5006 + 0.350GAK500O                 : ARR( 0.168E-13, -1300., 0.0);
+{ 19164} G2A5015 +PERO9              =  0.650G1A501E + 0.350GAK500O                                : ARR( 0.100E-10,     0., 0.0);
+{ 19165} G2A5016 +GNO                =       G1A501F +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 19166} G2A5016 +GNO                =       GAN500Z                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 19167} G2A5016 +GHO2               =       GAH500x                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 19168} G2A5016 +GNO3               =       G1A501F +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 19169} G2A5016 +MEPERO             =  0.340G1A501F + 0.330GAK500N + 0.330GAK500F                 : ARR( 0.565E-13,  -845., 0.0);
+{ 19170} G2A5016 +PERO1              =  0.460G1A501F + 0.270GAK500N + 0.270GAK500F                 : ARR( 0.434E-13,  -900., 0.0);
+{ 19171} G2A5016 +PERO2              =  0.400G1A501F + 0.300GAK500N + 0.300GAK500F                 : ARR( 0.162E-13, -1400., 0.0);
+{ 19172} G2A5016 +PERO3              =  0.460G1A501F + 0.270GAK500N + 0.270GAK500F                 : ARR( 0.488E-13, -1250., 0.0);
+{ 19173} G2A5016 +PERO5              =  0.460G1A501F + 0.270GAK500N + 0.270GAK500F                 : ARR( 0.183E-11,   450., 0.0);
+{ 19174} G2A5016 +PERO6              =  0.300G1A501F + 0.350GAK500N + 0.350GAK500F                 : ARR( 0.168E-13, -1300., 0.0);
+{ 19175} G2A5016 +PERO9              =  0.650G1A501F + 0.350GAK500F                                : ARR( 0.100E-10,     0., 0.0);
+{ 19176} G1A501E                     =       GCH2O   +      GAD4005 +      GHO2                    : ARR( 0.200E+15,  4658., 0.0);
+{ 19177} G1A501F                     =       GDO3000 +      GCO     +      GHO     +      GCO      : ARR( 0.200E+15,  3012., 0.0);
+{ 19178} GAD5001 +GHO                =       GAD500A +      GHO2                                   : ARR( 0.489E-11,     0., 0.0);
+{ 19179} GAD5001 +GHO                =       G2A5017                                               : ARR( 0.471E-11,     0., 0.0);
+{ 19180} GAD5001 +GHO                =       G3A5001                                               : ARR( 0.218E-10,     0., 0.0);
+{ 19181} GAD5001 +GNO3               =       G3A5001 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 19182} GAD5001+HV               =       G2A400J +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 19183} GAD5001+HV               =       GAK3000 +      GD02000                                :  0.100E+01*SUN;
+{ 19184} G2A5017 +GNO                =       G1A501G +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 19185} G2A5017 +GNO                =       GAN500b                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 19186} G2A5017 +GHO2               =       GAH500y                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 19187} G2A5017 +GNO3               =       G1A501G +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 19188} G2A5017 +MEPERO             =  0.340G1A501G + 0.330GAD5008 + 0.330GAD5005                 : ARR( 0.565E-13,  -845., 0.0);
+{ 19189} G2A5017 +PERO1              =  0.460G1A501G + 0.270GAD5008 + 0.270GAD5005                 : ARR( 0.434E-13,  -900., 0.0);
+{ 19190} G2A5017 +PERO2              =  0.400G1A501G + 0.300GAD5008 + 0.300GAD5005                 : ARR( 0.162E-13, -1400., 0.0);
+{ 19191} G2A5017 +PERO3              =  0.460G1A501G + 0.270GAD5008 + 0.270GAD5005                 : ARR( 0.488E-13, -1250., 0.0);
+{ 19192} G2A5017 +PERO5              =  0.460G1A501G + 0.270GAD5008 + 0.270GAD5005                 : ARR( 0.183E-11,   450., 0.0);
+{ 19193} G2A5017 +PERO6              =  0.300G1A501G + 0.350GAD5008 + 0.350GAD5005                 : ARR( 0.168E-13, -1300., 0.0);
+{ 19194} G2A5017 +PERO9              =  0.650G1A501G + 0.350GAD5005                                : ARR( 0.100E-10,     0., 0.0);
+{ 19195} G3A5001 +GHO2               =  0.800GAG5002 + 0.200GAA5001 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 19196} G3A5001 +GNO                =       G2A400J +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 19197} G3A5001 +GNO2               =       GPA5001                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 19198} G3A5001 +GNO3               =       G2A400J +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 19199} G3A5001 +MEPERO             =  0.685G2A400J + 0.315GAA5001 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 19200} G3A5001 +PERO1              =  0.800G2A400J + 0.200GAA5001 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 19201} G3A5001 +PERO2              =  0.750G2A400J + 0.250GAA5001 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 19202} G3A5001 +PERO3              =  0.800G2A400J + 0.200GAA5001 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 19203} G3A5001 +PERO5              =  0.650G2A400J + 0.350GAA5001 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 19204} G3A5001 +PERO6              =  0.650G2A400J + 0.350GAA5001 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 19205} G3A5001 +PERO9              =       G2A400J +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 19206} G2A400J +GNO                =       G1A400L +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 19207} G2A400J +GNO                =       GAN4009                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 19208} G2A400J +GHO2               =       GAH400M                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 19209} G2A400J +GNO3               =       G1A400L +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 19210} G2A400J +MEPERO             =  0.480G1A400L + 0.260GAO4005 + 0.260GAD4002                 : ARR( 0.146E-12,  -445., 0.0);
+{ 19211} G2A400J +PERO1              =  0.600G1A400L + 0.200GAO4005 + 0.200GAD4002                 : ARR( 0.112E-12,  -500., 0.0);
+{ 19212} G2A400J +PERO2              =  0.560G1A400L + 0.220GAO4005 + 0.220GAD4002                 : ARR( 0.418E-13, -1000., 0.0);
+{ 19213} G2A400J +PERO3              =  0.600G1A400L + 0.200GAO4005 + 0.200GAD4002                 : ARR( 0.126E-12,  -850., 0.0);
+{ 19214} G2A400J +PERO5              =  0.600G1A400L + 0.200GAO4005 + 0.200GAD4002                 : ARR( 0.473E-11,   850., 0.0);
+{ 19215} G2A400J +PERO6              =  0.460G1A400L + 0.270GAO4005 + 0.270GAD4002                 : ARR( 0.434E-13,  -900., 0.0);
+{ 19216} G2A400J +PERO9              =  0.800G1A400L + 0.200GAD4002                                : ARR( 0.100E-10,     0., 0.0);
+{ 19217} G1A501G                     =       GAD2000 +      GDD3000 +      GHO2                    : ARR( 0.200E+15,  3292., 0.0);
+{ 19218} G1A400L +OXYGEN             =       GAD4002 +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{ 19219} GPN500A                     =       G3N500C +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 19220} GPN500A +GHO                =       G2P500q                                               : ARR( 0.291E-12,     0., 0.0);
+{ 19221} GPN500A +GHO                =       G2P500r                                               : ARR( 0.886E-12,     0., 0.0);
+{ 19222} GPN500A+HV               =       G1P500t +      GNO2                                   :  0.100E+01*SUN;
+{ 19223} GPN500A+HV               =       G1P5006 +      GNO2                                   :  0.100E+01*SUN;
+{ 19224} GPN500A+HV               =       G3N500C +      GNO2                                   :  0.100E+01*SUN;
+{ 19225} G2P500q +GNO                =       G1P500u +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 19226} G2P500q +GNO                =       GPN500x                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 19227} G2P500q +GHO2               =       GPH5016                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 19228} G2P500q +GNO3               =       G1P500u +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 19229} G2P500q +MEPERO             =  0.340G1P500u + 0.330GPN5019 + 0.330GPN5015                 : ARR( 0.565E-13,  -845., 0.0);
+{ 19230} G2P500q +PERO1              =  0.460G1P500u + 0.270GPN5019 + 0.270GPN5015                 : ARR( 0.434E-13,  -900., 0.0);
+{ 19231} G2P500q +PERO2              =  0.400G1P500u + 0.300GPN5019 + 0.300GPN5015                 : ARR( 0.162E-13, -1400., 0.0);
+{ 19232} G2P500q +PERO3              =  0.460G1P500u + 0.270GPN5019 + 0.270GPN5015                 : ARR( 0.488E-13, -1250., 0.0);
+{ 19233} G2P500q +PERO5              =  0.460G1P500u + 0.270GPN5019 + 0.270GPN5015                 : ARR( 0.183E-11,   450., 0.0);
+{ 19234} G2P500q +PERO6              =  0.300G1P500u + 0.350GPN5019 + 0.350GPN5015                 : ARR( 0.168E-13, -1300., 0.0);
+{ 19235} G2P500q +PERO9              =  0.650G1P500u + 0.350GPN5015                                : ARR( 0.100E-10,     0., 0.0);
+{ 19236} G2P500r +GNO                =       G1P500v +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 19237} G2P500r +GNO                =       GPN501A                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 19238} G2P500r +GHO2               =       GPH5017                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 19239} G2P500r +GNO3               =       G1P500v +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 19240} G2P500r +MEPERO             =  0.340G1P500v + 0.330GPN501B + 0.330GPN501C                 : ARR( 0.565E-13,  -845., 0.0);
+{ 19241} G2P500r +PERO1              =  0.460G1P500v + 0.270GPN501B + 0.270GPN501C                 : ARR( 0.434E-13,  -900., 0.0);
+{ 19242} G2P500r +PERO2              =  0.400G1P500v + 0.300GPN501B + 0.300GPN501C                 : ARR( 0.162E-13, -1400., 0.0);
+{ 19243} G2P500r +PERO3              =  0.460G1P500v + 0.270GPN501B + 0.270GPN501C                 : ARR( 0.488E-13, -1250., 0.0);
+{ 19244} G2P500r +PERO5              =  0.460G1P500v + 0.270GPN501B + 0.270GPN501C                 : ARR( 0.183E-11,   450., 0.0);
+{ 19245} G2P500r +PERO6              =  0.300G1P500v + 0.350GPN501B + 0.350GPN501C                 : ARR( 0.168E-13, -1300., 0.0);
+{ 19246} G2P500r +PERO9              =  0.650G1P500v + 0.350GPN501C                                : ARR( 0.100E-10,     0., 0.0);
+{ 19247} G1P500t                     =       G2P500s                                               : ARR( 0.160E+12,  3221., 0.0);
+{ 19248} G1P500u                     =       GND2000 +      GPD3000 +      GNO2                    : ARR( 0.200E+15,  5685., 0.0);
+{ 19249} G1P500v                     =       GNN4001 +      GCO     +      GNO2                    : ARR( 0.200E+15,  4949., 0.0);
+{ 19250} G2P500s +GNO                =       G1P500w +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 19251} G2P500s +GNO                =       GPN501D                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 19252} G2P500s +GHO2               =       GPH5018                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 19253} G2P500s +GNO3               =       G1P500w +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 19254} G2P500s +MEPERO             =  0.340G1P500w + 0.330GPN501E + 0.330GPN501F                 : ARR( 0.565E-13,  -845., 0.0);
+{ 19255} G2P500s +PERO1              =  0.460G1P500w + 0.270GPN501E + 0.270GPN501F                 : ARR( 0.434E-13,  -900., 0.0);
+{ 19256} G2P500s +PERO2              =  0.400G1P500w + 0.300GPN501E + 0.300GPN501F                 : ARR( 0.162E-13, -1400., 0.0);
+{ 19257} G2P500s +PERO3              =  0.460G1P500w + 0.270GPN501E + 0.270GPN501F                 : ARR( 0.488E-13, -1250., 0.0);
+{ 19258} G2P500s +PERO5              =  0.460G1P500w + 0.270GPN501E + 0.270GPN501F                 : ARR( 0.183E-11,   450., 0.0);
+{ 19259} G2P500s +PERO6              =  0.300G1P500w + 0.350GPN501E + 0.350GPN501F                 : ARR( 0.168E-13, -1300., 0.0);
+{ 19260} G2P500s +PERO9              =  0.650G1P500w + 0.350GPN501F                                : ARR( 0.100E-10,     0., 0.0);
+{ 19261} G1P500w                     =       GPN501G +      GHO2                                   : ARR( 0.160E+12,  3252., 0.0);
+{ 19262} G1P500w                     =       GND4002 +      GCO     +      GNO2                    : ARR( 0.200E+15,  4949., 0.0);
+{ 19263} GPH5007                     =       G3H5007 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 19264} GPH5007 +GHO                =       GPN500B +      GHO                                    : ARR( 0.827E-11,     0., 0.0);
+{ 19265} GPH5007 +GHO                =       G2P500t                                               : ARR( 0.142E-11,     0., 0.0);
+{ 19266} GPH5007 +GHO                =       G2P500u                                               : ARR( 0.864E-12,     0., 0.0);
+{ 19267} GPH5007 +GHO                =       G2P5005                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 19268} GPH5007+HV               =       G1P500x +      GNO2                                   :  0.100E+01*SUN;
+{ 19269} GPH5007+HV               =       G1P5006 +      GHO                                    :  0.100E+01*SUN;
+{ 19270} GPH5007+HV               =       G3H5007 +      GNO2                                   :  0.100E+01*SUN;
+{ 19271} G2P500t +GNO                =       G1P500y +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 19272} G2P500t +GNO                =       GPH500t                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 19273} G2P500t +GHO2               =       GPH5019                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 19274} G2P500t +GNO3               =       G1P500y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 19275} G2P500t +MEPERO             =  0.340G1P500y + 0.330GPH501A + 0.330GPH5014                 : ARR( 0.565E-13,  -845., 0.0);
+{ 19276} G2P500t +PERO1              =  0.460G1P500y + 0.270GPH501A + 0.270GPH5014                 : ARR( 0.434E-13,  -900., 0.0);
+{ 19277} G2P500t +PERO2              =  0.400G1P500y + 0.300GPH501A + 0.300GPH5014                 : ARR( 0.162E-13, -1400., 0.0);
+{ 19278} G2P500t +PERO3              =  0.460G1P500y + 0.270GPH501A + 0.270GPH5014                 : ARR( 0.488E-13, -1250., 0.0);
+{ 19279} G2P500t +PERO5              =  0.460G1P500y + 0.270GPH501A + 0.270GPH5014                 : ARR( 0.183E-11,   450., 0.0);
+{ 19280} G2P500t +PERO6              =  0.300G1P500y + 0.350GPH501A + 0.350GPH5014                 : ARR( 0.168E-13, -1300., 0.0);
+{ 19281} G2P500t +PERO9              =  0.650G1P500y + 0.350GPH5014                                : ARR( 0.100E-10,     0., 0.0);
+{ 19282} G2P500u +GNO                =       G1P500z +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 19283} G2P500u +GNO                =       GPH501B                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 19284} G2P500u +GHO2               =       GPH501C                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 19285} G2P500u +GNO3               =       G1P500z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 19286} G2P500u +MEPERO             =  0.340G1P500z + 0.330GPH501D + 0.330GPH501E                 : ARR( 0.565E-13,  -845., 0.0);
+{ 19287} G2P500u +PERO1              =  0.460G1P500z + 0.270GPH501D + 0.270GPH501E                 : ARR( 0.434E-13,  -900., 0.0);
+{ 19288} G2P500u +PERO2              =  0.400G1P500z + 0.300GPH501D + 0.300GPH501E                 : ARR( 0.162E-13, -1400., 0.0);
+{ 19289} G2P500u +PERO3              =  0.460G1P500z + 0.270GPH501D + 0.270GPH501E                 : ARR( 0.488E-13, -1250., 0.0);
+{ 19290} G2P500u +PERO5              =  0.460G1P500z + 0.270GPH501D + 0.270GPH501E                 : ARR( 0.183E-11,   450., 0.0);
+{ 19291} G2P500u +PERO6              =  0.300G1P500z + 0.350GPH501D + 0.350GPH501E                 : ARR( 0.168E-13, -1300., 0.0);
+{ 19292} G2P500u +PERO9              =  0.650G1P500z + 0.350GPH501E                                : ARR( 0.100E-10,     0., 0.0);
+{ 19293} G1P500x                     =       G2P500v                                               : ARR( 0.160E+12,  3221., 0.0);
+{ 19294} G1P500x                     =       GPD4000 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  6008., 0.0);
+{ 19295} G1P500y                     =       GND2000 +      GPD3000 +      GHO                     : ARR( 0.200E+15,  4146., 0.0);
+{ 19296} G1P500z                     =       GHN4001 +      GCO     +      GNO2                    : ARR( 0.200E+15,  4949., 0.0);
+{ 19297} G2P500v +GNO                =       G1P5011 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 19298} G2P500v +GNO                =       GPH501F                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 19299} G2P500v +GHO2               =       GPH501G                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 19300} G2P500v +GNO3               =       G1P5011 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 19301} G2P500v +MEPERO             =  0.340G1P5011 + 0.330GPH501H + 0.330GPH501I                 : ARR( 0.565E-13,  -845., 0.0);
+{ 19302} G2P500v +PERO1              =  0.460G1P5011 + 0.270GPH501H + 0.270GPH501I                 : ARR( 0.434E-13,  -900., 0.0);
+{ 19303} G2P500v +PERO2              =  0.400G1P5011 + 0.300GPH501H + 0.300GPH501I                 : ARR( 0.162E-13, -1400., 0.0);
+{ 19304} G2P500v +PERO3              =  0.460G1P5011 + 0.270GPH501H + 0.270GPH501I                 : ARR( 0.488E-13, -1250., 0.0);
+{ 19305} G2P500v +PERO5              =  0.460G1P5011 + 0.270GPH501H + 0.270GPH501I                 : ARR( 0.183E-11,   450., 0.0);
+{ 19306} G2P500v +PERO6              =  0.300G1P5011 + 0.350GPH501H + 0.350GPH501I                 : ARR( 0.168E-13, -1300., 0.0);
+{ 19307} G2P500v +PERO9              =  0.650G1P5011 + 0.350GPH501I                                : ARR( 0.100E-10,     0., 0.0);
+{ 19308} G1P5011                     =       GPH501J +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{ 19309} G1P5011                     =       GHD4000 +      GCO     +      GNO2                    : ARR( 0.200E+15,  4949., 0.0);
+{ 19310} GPN500B                     =       G3N500E +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 19311} GPN500B +GHO                =       G2P500w                                               : ARR( 0.868E-12,     0., 0.0);
+{ 19312} GPN500B +GHO                =       G2P500x                                               : ARR( 0.275E-11,     0., 0.0);
+{ 19313} GPN500B+HV               =       G1P5012 +      GNO2                                   :  0.100E+01*SUN;
+{ 19314} GPN500B+HV               =       G3N2000 +      G2P3000                                :  0.100E+01*SUN;
+{ 19315} GPN500B+HV               =       G3N500E +      GNO2                                   :  0.100E+01*SUN;
+{ 19316} G2P500w +GNO                =       G1P5013 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 19317} G2P500w +GNO                =       GPN500y                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 19318} G2P500w +GHO2               =       GPH501K                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 19319} G2P500w +GNO3               =       G1P5013 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 19320} G2P500w +MEPERO             =  0.340G1P5013 + 0.330GPN501H + 0.330GPN5016                 : ARR( 0.565E-13,  -845., 0.0);
+{ 19321} G2P500w +PERO1              =  0.460G1P5013 + 0.270GPN501H + 0.270GPN5016                 : ARR( 0.434E-13,  -900., 0.0);
+{ 19322} G2P500w +PERO2              =  0.400G1P5013 + 0.300GPN501H + 0.300GPN5016                 : ARR( 0.162E-13, -1400., 0.0);
+{ 19323} G2P500w +PERO3              =  0.460G1P5013 + 0.270GPN501H + 0.270GPN5016                 : ARR( 0.488E-13, -1250., 0.0);
+{ 19324} G2P500w +PERO5              =  0.460G1P5013 + 0.270GPN501H + 0.270GPN5016                 : ARR( 0.183E-11,   450., 0.0);
+{ 19325} G2P500w +PERO6              =  0.300G1P5013 + 0.350GPN501H + 0.350GPN5016                 : ARR( 0.168E-13, -1300., 0.0);
+{ 19326} G2P500w +PERO9              =  0.650G1P5013 + 0.350GPN5016                                : ARR( 0.100E-10,     0., 0.0);
+{ 19327} G2P500x +GNO                =       G1P5014 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 19328} G2P500x +GNO                =       GPN501I                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 19329} G2P500x +GHO2               =       GPH501L                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 19330} G2P500x +GNO3               =       G1P5014 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 19331} G2P500x +MEPERO             =  0.340G1P5014 + 0.330GPN501J + 0.330GPN501K                 : ARR( 0.565E-13,  -845., 0.0);
+{ 19332} G2P500x +PERO1              =  0.460G1P5014 + 0.270GPN501J + 0.270GPN501K                 : ARR( 0.434E-13,  -900., 0.0);
+{ 19333} G2P500x +PERO2              =  0.400G1P5014 + 0.300GPN501J + 0.300GPN501K                 : ARR( 0.162E-13, -1400., 0.0);
+{ 19334} G2P500x +PERO3              =  0.460G1P5014 + 0.270GPN501J + 0.270GPN501K                 : ARR( 0.488E-13, -1250., 0.0);
+{ 19335} G2P500x +PERO5              =  0.460G1P5014 + 0.270GPN501J + 0.270GPN501K                 : ARR( 0.183E-11,   450., 0.0);
+{ 19336} G2P500x +PERO6              =  0.300G1P5014 + 0.350GPN501J + 0.350GPN501K                 : ARR( 0.168E-13, -1300., 0.0);
+{ 19337} G2P500x +PERO9              =  0.650G1P5014 + 0.350GPN501K                                : ARR( 0.100E-10,     0., 0.0);
+{ 19338} G1P5012                     =       G3P4000 +      GCH2O                                  : ARR( 0.200E+15,  3576., 0.0);
+{ 19339} G1P5013                     =       G3N2000 +      GPD3000                                : ARR( 0.200E+15,  2252., 0.0);
+{ 19340} G1P5014                     =       GND4004 +      GCO     +      GNO2                    : ARR( 0.200E+15,  4566., 0.0);
+{ 19341} G3P4000 +GHO2               =  0.800GPG4000 + 0.200GPA4000 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 19342} G3P4000 +GNO                =       G2P3000 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 19343} G3P4000 +GNO2               =       GPP4000                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 19344} G3P4000 +GNO3               =       G2P3000 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 19345} G3P4000 +MEPERO             =  0.685G2P3000 + 0.315GPA4000 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 19346} G3P4000 +PERO1              =  0.800G2P3000 + 0.200GPA4000 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 19347} G3P4000 +PERO2              =  0.750G2P3000 + 0.250GPA4000 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 19348} G3P4000 +PERO3              =  0.800G2P3000 + 0.200GPA4000 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 19349} G3P4000 +PERO5              =  0.650G2P3000 + 0.350GPA4000 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 19350} G3P4000 +PERO6              =  0.650G2P3000 + 0.350GPA4000 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 19351} G3P4000 +PERO9              =       G2P3000 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 19352} GPN500C                     =       G3N500a +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 19353} GPN500C +GHO                =       GPN500m +      GNO2                                   : ARR( 0.460E-13,     0., 0.0);
+{ 19354} GPN500C +GHO                =       G2P500y                                               : ARR( 0.283E-12,     0., 0.0);
+{ 19355} GPN500C +GHO                =       G2P500z                                               : ARR( 0.283E-12,     0., 0.0);
+{ 19356} GPN500C +GHO                =       GPN500E +      GNO2                                   : ARR( 0.718E-13,     0., 0.0);
+{ 19357} GPN500C+HV               =       G1P500W +      GNO2                                   :  0.100E+01*SUN;
+{ 19358} GPN500C+HV               =       G1P5008 +      GNO2                                   :  0.100E+01*SUN;
+{ 19359} GPN500C+HV               =       G3N500a +      GNO2                                   :  0.100E+01*SUN;
+{ 19360} G2P500y +GNO                =       G1P5015 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 19361} G2P500y +GNO                =       GPN501A                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 19362} G2P500y +GHO2               =       GPH501B                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 19363} G2P500y +GNO3               =       G1P5015 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 19364} G2P500y +MEPERO             =  0.340G1P5015 + 0.330GPN500G + 0.330GPN501I                 : ARR( 0.565E-13,  -845., 0.0);
+{ 19365} G2P500y +PERO1              =  0.460G1P5015 + 0.270GPN500G + 0.270GPN501I                 : ARR( 0.434E-13,  -900., 0.0);
+{ 19366} G2P500y +PERO2              =  0.400G1P5015 + 0.300GPN500G + 0.300GPN501I                 : ARR( 0.162E-13, -1400., 0.0);
+{ 19367} G2P500y +PERO3              =  0.460G1P5015 + 0.270GPN500G + 0.270GPN501I                 : ARR( 0.488E-13, -1250., 0.0);
+{ 19368} G2P500y +PERO5              =  0.460G1P5015 + 0.270GPN500G + 0.270GPN501I                 : ARR( 0.183E-11,   450., 0.0);
+{ 19369} G2P500y +PERO6              =  0.300G1P5015 + 0.350GPN500G + 0.350GPN501I                 : ARR( 0.168E-13, -1300., 0.0);
+{ 19370} G2P500y +PERO9              =  0.650G1P5015 + 0.350GPN501I                                : ARR( 0.100E-10,     0., 0.0);
+{ 19371} G2P500z +GNO                =       G1P5016 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 19372} G2P500z +GNO                =       GPN500z                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 19373} G2P500z +GHO2               =       GPH501M                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 19374} G2P500z +GNO3               =       G1P5016 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 19375} G2P500z +MEPERO             =  0.340G1P5016 + 0.330GPN5012 + 0.330GPN5017                 : ARR( 0.565E-13,  -845., 0.0);
+{ 19376} G2P500z +PERO1              =  0.460G1P5016 + 0.270GPN5012 + 0.270GPN5017                 : ARR( 0.434E-13,  -900., 0.0);
+{ 19377} G2P500z +PERO2              =  0.400G1P5016 + 0.300GPN5012 + 0.300GPN5017                 : ARR( 0.162E-13, -1400., 0.0);
+{ 19378} G2P500z +PERO3              =  0.460G1P5016 + 0.270GPN5012 + 0.270GPN5017                 : ARR( 0.488E-13, -1250., 0.0);
+{ 19379} G2P500z +PERO5              =  0.460G1P5016 + 0.270GPN5012 + 0.270GPN5017                 : ARR( 0.183E-11,   450., 0.0);
+{ 19380} G2P500z +PERO6              =  0.300G1P5016 + 0.350GPN5012 + 0.350GPN5017                 : ARR( 0.168E-13, -1300., 0.0);
+{ 19381} G2P500z +PERO9              =  0.650G1P5016 + 0.350GPN5017                                : ARR( 0.100E-10,     0., 0.0);
+{ 19382} G1P5015                     =       GND2000 +      G2P3004                                : ARR( 0.200E+15,  7116., 0.0);
+{ 19383} G1P5016                     =       G2N2000 +      GPN3006                                : ARR( 0.200E+15,  6244., 0.0);
+{ 19384} G1P5016                     =       GND3000 +      GPD2000 +      GNO2                    : ARR( 0.200E+15,  6422., 0.0);
+{ 19385} GPH5008                     =       G3H500T +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 19386} GPH5008 +GHO                =       GPN500E +      GHO                                    : ARR( 0.267E-10,     0., 0.0);
+{ 19387} GPH5008 +GHO                =       G2P5007                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 19388} GPH5008+HV               =       G1P5017 +      GNO2                                   :  0.100E+01*SUN;
+{ 19389} GPH5008+HV               =       G1P5008 +      GHO                                    :  0.100E+01*SUN;
+{ 19390} GPH5008+HV               =       G3H500T +      GNO2                                   :  0.100E+01*SUN;
+{ 19391} G1P5017                     =       GPK5005 +      GHO                                    : ARR( 0.800E+11,  1899., 0.0);
+{ 19392} GPN500D                     =       G3N500J +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 19393} GPN500D +GHO                =       G2P5011                                               : ARR( 0.150E-11,     0., 0.0);
+{ 19394} GPN500D +GHO                =       GPN500E +      GHO2                                   : ARR( 0.667E-11,     0., 0.0);
+{ 19395} GPN500D+HV               =       G1P5018 +      GNO2                                   :  0.100E+01*SUN;
+{ 19396} GPN500D+HV               =       G3N500J +      GNO2                                   :  0.100E+01*SUN;
+{ 19397} G2P5011 +GNO                =       G1P5019 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 19398} G2P5011 +GNO                =       GPN500a                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 19399} G2P5011 +GHO2               =       GPH501N                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 19400} G2P5011 +GNO3               =       G1P5019 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 19401} G2P5011 +MEPERO             =  0.340G1P5019 + 0.330GPN500e + 0.330GPN500v                 : ARR( 0.565E-13,  -845., 0.0);
+{ 19402} G2P5011 +PERO1              =  0.460G1P5019 + 0.270GPN500e + 0.270GPN500v                 : ARR( 0.434E-13,  -900., 0.0);
+{ 19403} G2P5011 +PERO2              =  0.400G1P5019 + 0.300GPN500e + 0.300GPN500v                 : ARR( 0.162E-13, -1400., 0.0);
+{ 19404} G2P5011 +PERO3              =  0.460G1P5019 + 0.270GPN500e + 0.270GPN500v                 : ARR( 0.488E-13, -1250., 0.0);
+{ 19405} G2P5011 +PERO5              =  0.460G1P5019 + 0.270GPN500e + 0.270GPN500v                 : ARR( 0.183E-11,   450., 0.0);
+{ 19406} G2P5011 +PERO6              =  0.300G1P5019 + 0.350GPN500e + 0.350GPN500v                 : ARR( 0.168E-13, -1300., 0.0);
+{ 19407} G2P5011 +PERO9              =  0.650G1P5019 + 0.350GPN500v                                : ARR( 0.100E-10,     0., 0.0);
+{ 19408} G1P5018                     =       GPK5005 +      GHO2                                   : ARR( 0.800E+11,  2246., 0.0);
+{ 19409} G1P5019                     =       GND3000 +      GPD2000 +      GHO2                    : ARR( 0.200E+15,  3675., 0.0);
+{ 19410} GPN500E                     =       G3N500j +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 19411} GPN500E +GHO                =       G2P5012                                               : ARR( 0.920E-12,     0., 0.0);
+{ 19412} GPN500E +GHO                =       G2P5013                                               : ARR( 0.884E-12,     0., 0.0);
+{ 19413} GPN500E+HV               =       G1P501A +      GNO2                                   :  0.100E+01*SUN;
+{ 19414} GPN500E+HV               =       G3N4000 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 19415} G2P5012 +GNO                =       G1P501B +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 19416} G2P5012 +GNO                =       GPN501C                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 19417} G2P5012 +GHO2               =       GPH501E                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 19418} G2P5012 +GNO3               =       G1P501B +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 19419} G2P5012 +MEPERO             =  0.340G1P501B + 0.330GPN500M + 0.330GPN501K                 : ARR( 0.565E-13,  -845., 0.0);
+{ 19420} G2P5012 +PERO1              =  0.460G1P501B + 0.270GPN500M + 0.270GPN501K                 : ARR( 0.434E-13,  -900., 0.0);
+{ 19421} G2P5012 +PERO2              =  0.400G1P501B + 0.300GPN500M + 0.300GPN501K                 : ARR( 0.162E-13, -1400., 0.0);
+{ 19422} G2P5012 +PERO3              =  0.460G1P501B + 0.270GPN500M + 0.270GPN501K                 : ARR( 0.488E-13, -1250., 0.0);
+{ 19423} G2P5012 +PERO5              =  0.460G1P501B + 0.270GPN500M + 0.270GPN501K                 : ARR( 0.183E-11,   450., 0.0);
+{ 19424} G2P5012 +PERO6              =  0.300G1P501B + 0.350GPN500M + 0.350GPN501K                 : ARR( 0.168E-13, -1300., 0.0);
+{ 19425} G2P5012 +PERO9              =  0.650G1P501B + 0.350GPN501K                                : ARR( 0.100E-10,     0., 0.0);
+{ 19426} G2P5013 +GNO                =       G1P501C +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 19427} G2P5013 +GNO                =       GPN5011                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 19428} G2P5013 +GHO2               =       GPH501O                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 19429} G2P5013 +GNO3               =       G1P501C +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 19430} G2P5013 +MEPERO             =  0.340G1P501C + 0.330GPN5013 + 0.330GPN5018                 : ARR( 0.565E-13,  -845., 0.0);
+{ 19431} G2P5013 +PERO1              =  0.460G1P501C + 0.270GPN5013 + 0.270GPN5018                 : ARR( 0.434E-13,  -900., 0.0);
+{ 19432} G2P5013 +PERO2              =  0.400G1P501C + 0.300GPN5013 + 0.300GPN5018                 : ARR( 0.162E-13, -1400., 0.0);
+{ 19433} G2P5013 +PERO3              =  0.460G1P501C + 0.270GPN5013 + 0.270GPN5018                 : ARR( 0.488E-13, -1250., 0.0);
+{ 19434} G2P5013 +PERO5              =  0.460G1P501C + 0.270GPN5013 + 0.270GPN5018                 : ARR( 0.183E-11,   450., 0.0);
+{ 19435} G2P5013 +PERO6              =  0.300G1P501C + 0.350GPN5013 + 0.350GPN5018                 : ARR( 0.168E-13, -1300., 0.0);
+{ 19436} G2P5013 +PERO9              =  0.650G1P501C + 0.350GPN5018                                : ARR( 0.100E-10,     0., 0.0);
+{ 19437} G1P501A +OXYGEN             =       GPD5008 +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{ 19438} G1P501B                     =       GND2000 +      G2P3006                                : ARR( 0.200E+15,  6866., 0.0);
+{ 19439} G1P501C                     =       GND3000 +      GCO     +      GNO2    +      GCO      : ARR( 0.200E+15,  3012., 0.0);
+{ 19440} GPN500F                     =       G3N5009 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 19441} GPN500F +GHO                =       GPN500m +      GHO2                                   : ARR( 0.439E-11,     0., 0.0);
+{ 19442} GPN500F +GHO                =       G2P5014                                               : ARR( 0.154E-11,     0., 0.0);
+{ 19443} GPN500F+HV               =       G1P5009 +      GNO2                                   :  0.100E+01*SUN;
+{ 19444} GPN500F+HV               =       G3N5009 +      GNO2                                   :  0.100E+01*SUN;
+{ 19445} G2P5014 +GNO                =       G1P501D +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 19446} G2P5014 +GNO                =       GPN501D                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 19447} G2P5014 +GHO2               =       GPH501F                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 19448} G2P5014 +GNO3               =       G1P501D +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 19449} G2P5014 +MEPERO             =  0.340G1P501D + 0.330GPN500I + 0.330GPN501L                 : ARR( 0.565E-13,  -845., 0.0);
+{ 19450} G2P5014 +PERO1              =  0.460G1P501D + 0.270GPN500I + 0.270GPN501L                 : ARR( 0.434E-13,  -900., 0.0);
+{ 19451} G2P5014 +PERO2              =  0.400G1P501D + 0.300GPN500I + 0.300GPN501L                 : ARR( 0.162E-13, -1400., 0.0);
+{ 19452} G2P5014 +PERO3              =  0.460G1P501D + 0.270GPN500I + 0.270GPN501L                 : ARR( 0.488E-13, -1250., 0.0);
+{ 19453} G2P5014 +PERO5              =  0.460G1P501D + 0.270GPN500I + 0.270GPN501L                 : ARR( 0.183E-11,   450., 0.0);
+{ 19454} G2P5014 +PERO6              =  0.300G1P501D + 0.350GPN500I + 0.350GPN501L                 : ARR( 0.168E-13, -1300., 0.0);
+{ 19455} G2P5014 +PERO9              =  0.650G1P501D + 0.350GPN501L                                : ARR( 0.100E-10,     0., 0.0);
+{ 19456} G1P501D                     =       GCH2O   +      GPN400N +      GHO2                    : ARR( 0.200E+15,  5041., 0.0);
+{ 19457} GPH5009                     =       G3H5005 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 19458} GPH5009 +GHO                =       GPH501P +      GHO2                                   : ARR( 0.439E-11,     0., 0.0);
+{ 19459} GPH5009 +GHO                =       GPK5005 +      GHO                                    : ARR( 0.274E-10,     0., 0.0);
+{ 19460} GPH5009 +GHO                =       G2P5008                                               : ARR( 0.207E-11,  -190., 0.0);
+{ 19461} GPH5009+HV               =       G1P5009 +      GHO                                    :  0.100E+01*SUN;
+{ 19462} GPH5009+HV               =       G3H5005 +      GNO2                                   :  0.100E+01*SUN;
+{ 19463} GPO5007                     =       G3K500A +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 19464} GPO5007 +GHO                =       GPD5000 +      GHO2                                   : ARR( 0.411E-11,     0., 0.0);
+{ 19465} GPO5007 +GHO                =       G2P5015                                               : ARR( 0.144E-11,     0., 0.0);
+{ 19466} GPO5007 +GHO                =       G2P5016                                               : ARR( 0.144E-11,     0., 0.0);
+{ 19467} GPO5007 +GHO                =       GPK5005 +      GHO2                                   : ARR( 0.642E-11,     0., 0.0);
+{ 19468} GPO5007+HV               =       G3K500A +      GNO2                                   :  0.100E+01*SUN;
+{ 19469} G2P5015 +GNO                =       G1P501E +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 19470} G2P5015 +GNO                =       GPN501E                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 19471} G2P5015 +GHO2               =       GPH501H                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 19472} G2P5015 +GNO3               =       G1P501E +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 19473} G2P5015 +MEPERO             =  0.340G1P501E + 0.330GPO5005 + 0.330GPK500L                 : ARR( 0.565E-13,  -845., 0.0);
+{ 19474} G2P5015 +PERO1              =  0.460G1P501E + 0.270GPO5005 + 0.270GPK500L                 : ARR( 0.434E-13,  -900., 0.0);
+{ 19475} G2P5015 +PERO2              =  0.400G1P501E + 0.300GPO5005 + 0.300GPK500L                 : ARR( 0.162E-13, -1400., 0.0);
+{ 19476} G2P5015 +PERO3              =  0.460G1P501E + 0.270GPO5005 + 0.270GPK500L                 : ARR( 0.488E-13, -1250., 0.0);
+{ 19477} G2P5015 +PERO5              =  0.460G1P501E + 0.270GPO5005 + 0.270GPK500L                 : ARR( 0.183E-11,   450., 0.0);
+{ 19478} G2P5015 +PERO6              =  0.300G1P501E + 0.350GPO5005 + 0.350GPK500L                 : ARR( 0.168E-13, -1300., 0.0);
+{ 19479} G2P5015 +PERO9              =  0.650G1P501E + 0.350GPK500L                                : ARR( 0.100E-10,     0., 0.0);
+{ 19480} G2P5016 +GNO                =       G1P501F +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 19481} G2P5016 +GNO                =       GPN500Y                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 19482} G2P5016 +GHO2               =       GPH500x                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 19483} G2P5016 +GNO3               =       G1P501F +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 19484} G2P5016 +MEPERO             =  0.340G1P501F + 0.330GPO500A + 0.330GPK500G                 : ARR( 0.565E-13,  -845., 0.0);
+{ 19485} G2P5016 +PERO1              =  0.460G1P501F + 0.270GPO500A + 0.270GPK500G                 : ARR( 0.434E-13,  -900., 0.0);
+{ 19486} G2P5016 +PERO2              =  0.400G1P501F + 0.300GPO500A + 0.300GPK500G                 : ARR( 0.162E-13, -1400., 0.0);
+{ 19487} G2P5016 +PERO3              =  0.460G1P501F + 0.270GPO500A + 0.270GPK500G                 : ARR( 0.488E-13, -1250., 0.0);
+{ 19488} G2P5016 +PERO5              =  0.460G1P501F + 0.270GPO500A + 0.270GPK500G                 : ARR( 0.183E-11,   450., 0.0);
+{ 19489} G2P5016 +PERO6              =  0.300G1P501F + 0.350GPO500A + 0.350GPK500G                 : ARR( 0.168E-13, -1300., 0.0);
+{ 19490} G2P5016 +PERO9              =  0.650G1P501F + 0.350GPK500G                                : ARR( 0.100E-10,     0., 0.0);
+{ 19491} G1P501E                     =       GCH2O   +      GPD4002 +      GHO2                    : ARR( 0.200E+15,  5041., 0.0);
+{ 19492} G1P501F                     =       GDO3000 +      GPD2000 +      GHO2                    : ARR( 0.200E+15,  3675., 0.0);
+{ 19493} GPK5005                     =       G3K500T +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 19494} GPK5005 +GHO                =       GPD5008 +      GHO2                                   : ARR( 0.408E-11,     0., 0.0);
+{ 19495} GPK5005 +GHO                =       G2P5017                                               : ARR( 0.455E-11,     0., 0.0);
+{ 19496} GPK5005 +GHO                =       G2P5018                                               : ARR( 0.875E-12,     0., 0.0);
+{ 19497} GPK5005+HV               =       G3K4002 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 19498} G2P5017 +GNO                =       G1P501G +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 19499} G2P5017 +GNO                =       GPN501F                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 19500} G2P5017 +GHO2               =       GPH501I                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 19501} G2P5017 +GNO3               =       G1P501G +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 19502} G2P5017 +MEPERO             =  0.340G1P501G + 0.330GPK5006 + 0.330GPK500O                 : ARR( 0.565E-13,  -845., 0.0);
+{ 19503} G2P5017 +PERO1              =  0.460G1P501G + 0.270GPK5006 + 0.270GPK500O                 : ARR( 0.434E-13,  -900., 0.0);
+{ 19504} G2P5017 +PERO2              =  0.400G1P501G + 0.300GPK5006 + 0.300GPK500O                 : ARR( 0.162E-13, -1400., 0.0);
+{ 19505} G2P5017 +PERO3              =  0.460G1P501G + 0.270GPK5006 + 0.270GPK500O                 : ARR( 0.488E-13, -1250., 0.0);
+{ 19506} G2P5017 +PERO5              =  0.460G1P501G + 0.270GPK5006 + 0.270GPK500O                 : ARR( 0.183E-11,   450., 0.0);
+{ 19507} G2P5017 +PERO6              =  0.300G1P501G + 0.350GPK5006 + 0.350GPK500O                 : ARR( 0.168E-13, -1300., 0.0);
+{ 19508} G2P5017 +PERO9              =  0.650G1P501G + 0.350GPK500O                                : ARR( 0.100E-10,     0., 0.0);
+{ 19509} G2P5018 +GNO                =       G1P501H +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 19510} G2P5018 +GNO                =       GPN500Z                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 19511} G2P5018 +GHO2               =       GPH500y                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 19512} G2P5018 +GNO3               =       G1P501H +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 19513} G2P5018 +MEPERO             =  0.340G1P501H + 0.330GPK500B + 0.330GPK500H                 : ARR( 0.565E-13,  -845., 0.0);
+{ 19514} G2P5018 +PERO1              =  0.460G1P501H + 0.270GPK500B + 0.270GPK500H                 : ARR( 0.434E-13,  -900., 0.0);
+{ 19515} G2P5018 +PERO2              =  0.400G1P501H + 0.300GPK500B + 0.300GPK500H                 : ARR( 0.162E-13, -1400., 0.0);
+{ 19516} G2P5018 +PERO3              =  0.460G1P501H + 0.270GPK500B + 0.270GPK500H                 : ARR( 0.488E-13, -1250., 0.0);
+{ 19517} G2P5018 +PERO5              =  0.460G1P501H + 0.270GPK500B + 0.270GPK500H                 : ARR( 0.183E-11,   450., 0.0);
+{ 19518} G2P5018 +PERO6              =  0.300G1P501H + 0.350GPK500B + 0.350GPK500H                 : ARR( 0.168E-13, -1300., 0.0);
+{ 19519} G2P5018 +PERO9              =  0.650G1P501H + 0.350GPK500H                                : ARR( 0.100E-10,     0., 0.0);
+{ 19520} G1P501G                     =       GCH2O   +      GPD4005 +      GHO2                    : ARR( 0.200E+15,  4658., 0.0);
+{ 19521} G1P501H                     =       GDO3000 +      GCO     +      GNO2    +      GCO      : ARR( 0.200E+15,  3012., 0.0);
+{ 19522} GPD5000                     =       G3D5001 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 19523} GPD5000 +GHO                =       GPD5008 +      GHO2                                   : ARR( 0.648E-11,     0., 0.0);
+{ 19524} GPD5000 +GHO                =       G2P5019                                               : ARR( 0.462E-11,     0., 0.0);
+{ 19525} GPD5000 +GHO                =       G3P5000                                               : ARR( 0.214E-10,     0., 0.0);
+{ 19526} GPD5000 +GNO3               =       G3P5000 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 19527} GPD5000+HV               =       G3D5001 +      GNO2                                   :  0.100E+01*SUN;
+{ 19528} GPD5000+HV               =       G2P400L +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 19529} GPD5000+HV               =       GPK3000 +      GD02000                                :  0.100E+01*SUN;
+{ 19530} G2P5019 +GNO                =       G1P501I +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 19531} G2P5019 +GNO                =       GPN500b                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 19532} G2P5019 +GHO2               =       GPH500z                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 19533} G2P5019 +GNO3               =       G1P501I +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 19534} G2P5019 +MEPERO             =  0.340G1P501I + 0.330GPD5003 + 0.330GPD5005                 : ARR( 0.565E-13,  -845., 0.0);
+{ 19535} G2P5019 +PERO1              =  0.460G1P501I + 0.270GPD5003 + 0.270GPD5005                 : ARR( 0.434E-13,  -900., 0.0);
+{ 19536} G2P5019 +PERO2              =  0.400G1P501I + 0.300GPD5003 + 0.300GPD5005                 : ARR( 0.162E-13, -1400., 0.0);
+{ 19537} G2P5019 +PERO3              =  0.460G1P501I + 0.270GPD5003 + 0.270GPD5005                 : ARR( 0.488E-13, -1250., 0.0);
+{ 19538} G2P5019 +PERO5              =  0.460G1P501I + 0.270GPD5003 + 0.270GPD5005                 : ARR( 0.183E-11,   450., 0.0);
+{ 19539} G2P5019 +PERO6              =  0.300G1P501I + 0.350GPD5003 + 0.350GPD5005                 : ARR( 0.168E-13, -1300., 0.0);
+{ 19540} G2P5019 +PERO9              =  0.650G1P501I + 0.350GPD5005                                : ARR( 0.100E-10,     0., 0.0);
+{ 19541} G3P5000 +GHO2               =  0.800GPG5001 + 0.200GPA5002 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 19542} G3P5000 +GNO                =       G2P400L +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 19543} G3P5000 +GNO2               =       GPP5000                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 19544} G3P5000 +GNO3               =       G2P400L +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 19545} G3P5000 +MEPERO             =  0.685G2P400L + 0.315GPA5002 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 19546} G3P5000 +PERO1              =  0.800G2P400L + 0.200GPA5002 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 19547} G3P5000 +PERO2              =  0.750G2P400L + 0.250GPA5002 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 19548} G3P5000 +PERO3              =  0.800G2P400L + 0.200GPA5002 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 19549} G3P5000 +PERO5              =  0.650G2P400L + 0.350GPA5002 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 19550} G3P5000 +PERO6              =  0.650G2P400L + 0.350GPA5002 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 19551} G3P5000 +PERO9              =       G2P400L +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 19552} G2P400L +GNO                =       G1P400M +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 19553} G2P400L +GNO                =       GPN4009                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 19554} G2P400L +GHO2               =       GPH400M                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 19555} G2P400L +GNO3               =       G1P400M +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 19556} G2P400L +MEPERO             =  0.480G1P400M + 0.260GPO4005 + 0.260GPD4002                 : ARR( 0.146E-12,  -445., 0.0);
+{ 19557} G2P400L +PERO1              =  0.600G1P400M + 0.200GPO4005 + 0.200GPD4002                 : ARR( 0.112E-12,  -500., 0.0);
+{ 19558} G2P400L +PERO2              =  0.560G1P400M + 0.220GPO4005 + 0.220GPD4002                 : ARR( 0.418E-13, -1000., 0.0);
+{ 19559} G2P400L +PERO3              =  0.600G1P400M + 0.200GPO4005 + 0.200GPD4002                 : ARR( 0.126E-12,  -850., 0.0);
+{ 19560} G2P400L +PERO5              =  0.600G1P400M + 0.200GPO4005 + 0.200GPD4002                 : ARR( 0.473E-11,   850., 0.0);
+{ 19561} G2P400L +PERO6              =  0.460G1P400M + 0.270GPO4005 + 0.270GPD4002                 : ARR( 0.434E-13,  -900., 0.0);
+{ 19562} G2P400L +PERO9              =  0.800G1P400M + 0.200GPD4002                                : ARR( 0.100E-10,     0., 0.0);
+{ 19563} G1P501I                     =       GPD2000 +      GDD3000 +      GHO2                    : ARR( 0.200E+15,  3292., 0.0);
+{ 19564} G1P400M +OXYGEN             =       GPD4002 +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{ 19565} GND500d +GHO                =       G3N500k                                               : ARR( 0.223E-10,     0., 0.0);
+{ 19566} GND500d +GHO                =       G3N500l                                               : ARR( 0.446E-11,     0., 0.0);
+{ 19567} GND500d +GNO3               =       G3N500k +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 19568} GND500d +GNO3               =       G3N500l +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 19569} GND500d+HV               =       GCO     +      G2N400n +      GHO2                    :  0.100E+01*SUN;
+{ 19570} GND500d+HV               =       GD02000 +      G2D3002 +      GNO2                    :  0.100E+01*SUN;
+{ 19571} GND500d+HV               =       G1D500n +      GNO2                                   :  0.100E+01*SUN;
+{ 19572} GND500d+HV               =       GDD4000 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 19573} GND500d+HV               =       GUD3000 +      GND2000                                :  0.100E+01*SUN;
+{ 19574} G3N500k +GHO2               =  0.800GGN5019 + 0.200GAN501I + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 19575} G3N500k +GNO                =       G2N400n +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 19576} G3N500k +GNO2               =       GPN501M                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 19577} G3N500k +GNO3               =       G2N400n +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 19578} G3N500k +MEPERO             =  0.685G2N400n + 0.315GAN501I + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 19579} G3N500k +PERO1              =  0.800G2N400n + 0.200GAN501I + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 19580} G3N500k +PERO2              =  0.750G2N400n + 0.250GAN501I + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 19581} G3N500k +PERO3              =  0.800G2N400n + 0.200GAN501I + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 19582} G3N500k +PERO5              =  0.650G2N400n + 0.350GAN501I + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 19583} G3N500k +PERO6              =  0.650G2N400n + 0.350GAN501I + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 19584} G3N500k +PERO9              =       G2N400n +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 19585} G3N500l +GHO2               =  0.800GGN5011 + 0.200GAN500k + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 19586} G3N500l +GNO                =       GDD4000 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 19587} G3N500l +GNO2               =       GPN500m                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 19588} G3N500l +GNO3               =       GDD4000 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 19589} G3N500l +MEPERO             =  0.685GDD4000 + 0.315GAN500k + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 19590} G3N500l +PERO1              =  0.800GDD4000 + 0.200GAN500k + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 19591} G3N500l +PERO2              =  0.750GDD4000 + 0.250GAN500k + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 19592} G3N500l +PERO3              =  0.800GDD4000 + 0.200GAN500k + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 19593} G3N500l +PERO5              =  0.650GDD4000 + 0.350GAN500k + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 19594} G3N500l +PERO6              =  0.650GDD4000 + 0.350GAN500k + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 19595} G3N500l +PERO9              =       GDD4000 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 19596} G2N400n +GNO                =       G1N400h +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 19597} G2N400n +GNO                =       GNN4008                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 19598} G2N400n +GHO2               =       GHN400M                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 19599} G2N400n +GNO3               =       G1N400h +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 19600} G2N400n +MEPERO             =  0.480G1N400h + 0.260GND4006 + 0.260GND400D                 : ARR( 0.146E-12,  -445., 0.0);
+{ 19601} G2N400n +PERO1              =  0.600G1N400h + 0.200GND4006 + 0.200GND400D                 : ARR( 0.112E-12,  -500., 0.0);
+{ 19602} G2N400n +PERO2              =  0.560G1N400h + 0.220GND4006 + 0.220GND400D                 : ARR( 0.418E-13, -1000., 0.0);
+{ 19603} G2N400n +PERO3              =  0.600G1N400h + 0.200GND4006 + 0.200GND400D                 : ARR( 0.126E-12,  -850., 0.0);
+{ 19604} G2N400n +PERO5              =  0.600G1N400h + 0.200GND4006 + 0.200GND400D                 : ARR( 0.473E-11,   850., 0.0);
+{ 19605} G2N400n +PERO6              =  0.460G1N400h + 0.270GND4006 + 0.270GND400D                 : ARR( 0.434E-13,  -900., 0.0);
+{ 19606} G2N400n +PERO9              =  0.800G1N400h + 0.200GND400D                                : ARR( 0.100E-10,     0., 0.0);
+{ 19607} G1D500n                     =       GDD4000 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5437., 0.0);
+{ 19608} GUO3000 +GHO                =       GUD3000 +      GHO2                                   : ARR( 0.328E-11,     0., 0.0);
+{ 19609} GUO3000 +GHO                =       G2O3003                                               : ARR( 0.452E-11,     0., 0.0);
+{ 19610} GUO3000 +GHO                =       G2O3004                                               : ARR( 0.301E-10,     0., 0.0);
+{ 19611} GUO3000 +GO3                =  2.000GDO2000 + 0.740GHCOOH  + 0.260GCO2    + 0.260GH2      : ARR( 0.253E-17,     0., 0.0);
+{ 19612} GUO3000 +GO3                =       GCO     + 0.760GH2O    + 0.240GHO2    + 0.240GHO      : ARR( 0.253E-17,     0., 0.0);
+{ 19613} GUO3000 +GO3                =  3.040GCH2O   + 0.680GAO2000 + 0.280GCO2    + 0.280GCH3OH   : ARR( 0.253E-17,     0., 0.0);
+{ 19614} GUO3000 +GO3                =  1.040GCO     + 1.040GHO     + 1.040GHO2                    : ARR( 0.253E-17,     0., 0.0);
+{ 19615} GUO3000 +GNO3               =       G2N3007                                               : ARR( 0.135E-13,     0., 0.0);
+{ 19616} GNN501T +GHO                =       GNN502v +      GHO2                                   : ARR( 0.867E-12,     0., 0.0);
+{ 19617} GNN501T +GHO                =       G3N500m                                               : ARR( 0.448E-11,     0., 0.0);
+{ 19618} GNN501T +GNO3               =       G3N500m +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 19619} GNN501T+HV               =       G1N501w +      GNO2                                   :  0.100E+01*SUN;
+{ 19620} GNN501T+HV               =       G1N502z +      GNO2                                   :  0.100E+01*SUN;
+{ 19621} GNN501T+HV               =       GND4002 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 19622} GNN501T+HV               =       G2K3001 +      GND2000 +      GNO2                    :  0.100E+01*SUN;
+{ 19623} G3N500m +GHO2               =  0.800GGN5015 + 0.200GAN501B + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 19624} G3N500m +GNO                =       GND4002 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 19625} G3N500m +GNO2               =       GPN501D                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 19626} G3N500m +GNO3               =       GND4002 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 19627} G3N500m +MEPERO             =  0.685GND4002 + 0.315GAN501B + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 19628} G3N500m +PERO1              =  0.800GND4002 + 0.200GAN501B + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 19629} G3N500m +PERO2              =  0.750GND4002 + 0.250GAN501B + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 19630} G3N500m +PERO3              =  0.800GND4002 + 0.200GAN501B + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 19631} G3N500m +PERO5              =  0.650GND4002 + 0.350GAN501B + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 19632} G3N500m +PERO6              =  0.650GND4002 + 0.350GAN501B + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 19633} G3N500m +PERO9              =       GND4002 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 19634} GHN502S +GHO                =       GHN505N +      GHO2                                   : ARR( 0.406E-11,     0., 0.0);
+{ 19635} GHN502S +GHO                =       GND500e +      GHO                                    : ARR( 0.416E-10,     0., 0.0);
+{ 19636} GHN502S +GHO                =       G3H500j                                               : ARR( 0.419E-11,     0., 0.0);
+{ 19637} GHN502S +GHO                =       G2N501r                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 19638} GHN502S +GNO3               =       G3H500j +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 19639} GHN502S+HV               =       G1N501w +      GHO                                    :  0.100E+01*SUN;
+{ 19640} GHN502S+HV               =       G1H501y +      GNO2                                   :  0.100E+01*SUN;
+{ 19641} GHN502S+HV               =       GHD4000 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 19642} GHN502S+HV               =       G2K3001 +      GND2000 +      GHO                     :  0.100E+01*SUN;
+{ 19643} G3H500j +GHO2               =  0.800GGH5013 + 0.200GAH501G + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 19644} G3H500j +GNO                =       GHD4000 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 19645} G3H500j +GNO2               =       GPH501F                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 19646} G3H500j +GNO3               =       GHD4000 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 19647} G3H500j +MEPERO             =  0.685GHD4000 + 0.315GAH501G + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 19648} G3H500j +PERO1              =  0.800GHD4000 + 0.200GAH501G + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 19649} G3H500j +PERO2              =  0.750GHD4000 + 0.250GAH501G + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 19650} G3H500j +PERO3              =  0.800GHD4000 + 0.200GAH501G + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 19651} G3H500j +PERO5              =  0.650GHD4000 + 0.350GAH501G + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 19652} G3H500j +PERO6              =  0.650GHD4000 + 0.350GAH501G + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 19653} G3H500j +PERO9              =       GHD4000 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 19654} GND500e +GHO                =       GND5014 +      GHO2                                   : ARR( 0.265E-11,     0., 0.0);
+{ 19655} GND500e +GHO                =       G3N500n                                               : ARR( 0.449E-11,     0., 0.0);
+{ 19656} GND500e +GNO3               =       G3N500n +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 19657} GND500e+HV               =       G3K2001 +      G2N300A                                :  0.100E+01*SUN;
+{ 19658} GND500e+HV               =       G1D500Z +      GNO2                                   :  0.100E+01*SUN;
+{ 19659} GND500e+HV               =       GDK4001 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 19660} G3N500n +GHO2               =  0.800GGN5016 + 0.200GAN501H + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 19661} G3N500n +GNO                =       GDK4001 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 19662} G3N500n +GNO2               =       GPN501L                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 19663} G3N500n +GNO3               =       GDK4001 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 19664} G3N500n +MEPERO             =  0.685GDK4001 + 0.315GAN501H + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 19665} G3N500n +PERO1              =  0.800GDK4001 + 0.200GAN501H + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 19666} G3N500n +PERO2              =  0.750GDK4001 + 0.250GAN501H + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 19667} G3N500n +PERO3              =  0.800GDK4001 + 0.200GAN501H + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 19668} G3N500n +PERO5              =  0.650GDK4001 + 0.350GAN501H + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 19669} G3N500n +PERO6              =  0.650GDK4001 + 0.350GAN501H + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 19670} G3N500n +PERO9              =       GDK4001 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 19671} GND400D +GHO                =       G3N400H                                               : ARR( 0.211E-10,     0., 0.0);
+{ 19672} GND400D +GHO                =       G3N400I                                               : ARR( 0.422E-11,     0., 0.0);
+{ 19673} GND400D +GNO3               =       G3N400H +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 19674} GND400D +GNO3               =       G3N400I +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 19675} GND400D+HV               =       GCO     +      G2N300A +      GHO2                    :  0.100E+01*SUN;
+{ 19676} GND400D+HV               =       G1D4007 +      GNO2                                   :  0.100E+01*SUN;
+{ 19677} GND400D+HV               =       GDD3000 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 19678} G3N400H +GHO2               =  0.800GGN400I + 0.200GAN400J + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 19679} G3N400H +GNO                =       G2N300A +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 19680} G3N400H +GNO2               =       GPN400H                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 19681} G3N400H +GNO3               =       G2N300A +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 19682} G3N400H +MEPERO             =  0.685G2N300A + 0.315GAN400J + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 19683} G3N400H +PERO1              =  0.800G2N300A + 0.200GAN400J + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 19684} G3N400H +PERO2              =  0.750G2N300A + 0.250GAN400J + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 19685} G3N400H +PERO3              =  0.800G2N300A + 0.200GAN400J + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 19686} G3N400H +PERO5              =  0.650G2N300A + 0.350GAN400J + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 19687} G3N400H +PERO6              =  0.650G2N300A + 0.350GAN400J + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 19688} G3N400H +PERO9              =       G2N300A +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 19689} G3N400I +GHO2               =  0.800GGN400M + 0.200GAN400N + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 19690} G3N400I +GNO                =       GDD3000 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 19691} G3N400I +GNO2               =       GPN400N                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 19692} G3N400I +GNO3               =       GDD3000 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 19693} G3N400I +MEPERO             =  0.685GDD3000 + 0.315GAN400N + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 19694} G3N400I +PERO1              =  0.800GDD3000 + 0.200GAN400N + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 19695} G3N400I +PERO2              =  0.750GDD3000 + 0.250GAN400N + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 19696} G3N400I +PERO3              =  0.800GDD3000 + 0.200GAN400N + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 19697} G3N400I +PERO5              =  0.650GDD3000 + 0.350GAN400N + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 19698} G3N400I +PERO6              =  0.650GDD3000 + 0.350GAN400N + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 19699} G3N400I +PERO9              =       GDD3000 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 19700} GHD500R +GHO                =       G3H500k                                               : ARR( 0.219E-10,     0., 0.0);
+{ 19701} GHD500R +GHO                =       G2H5027                                               : ARR( 0.150E-10,     0., 0.0);
+{ 19702} GHD500R +GHO                =       GDD5004 +      GHO                                    : ARR( 0.265E-10,     0., 0.0);
+{ 19703} GHD500R +GHO                =       G3H500l                                               : ARR( 0.219E-10,     0., 0.0);
+{ 19704} GHD500R +GNO3               =       G3H500k +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 19705} GHD500R +GNO3               =       G3H500l +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 19706} GHD500R+HV               =       GCO     +      G2H400f +      GHO2                    :  0.100E+01*SUN;
+{ 19707} GHD500R+HV               =       GD02000 +      G2D3002 +      GHO                     :  0.100E+01*SUN;
+{ 19708} GHD500R+HV               =       G1D500n +      GHO                                    :  0.100E+01*SUN;
+{ 19709} GHD500R+HV               =       GDD4000 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 19710} G3H500k +GHO2               =  0.800GGH5017 + 0.200GAH501O + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 19711} G3H500k +GNO                =       G2H400f +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 19712} G3H500k +GNO2               =       GPH501Q                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 19713} G3H500k +GNO3               =       G2H400f +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 19714} G3H500k +MEPERO             =  0.685G2H400f + 0.315GAH501O + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 19715} G3H500k +PERO1              =  0.800G2H400f + 0.200GAH501O + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 19716} G3H500k +PERO2              =  0.750G2H400f + 0.250GAH501O + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 19717} G3H500k +PERO3              =  0.800G2H400f + 0.200GAH501O + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 19718} G3H500k +PERO5              =  0.650G2H400f + 0.350GAH501O + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 19719} G3H500k +PERO6              =  0.650G2H400f + 0.350GAH501O + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 19720} G3H500k +PERO9              =       G2H400f +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 19721} G2H5027 +GNO                =       G1H504N +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 19722} G2H5027 +GNO                =       GHN505H                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 19723} G2H5027 +GHO2               =       GHH5021                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 19724} G2H5027 +GNO3               =       G1H504N +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 19725} G2H5027 +MEPERO             =  0.340G1H504N + 0.330GHD5017 + 0.330GHD5016                 : ARR( 0.565E-13,  -845., 0.0);
+{ 19726} G2H5027 +PERO1              =  0.460G1H504N + 0.270GHD5017 + 0.270GHD5016                 : ARR( 0.434E-13,  -900., 0.0);
+{ 19727} G2H5027 +PERO2              =  0.400G1H504N + 0.300GHD5017 + 0.300GHD5016                 : ARR( 0.162E-13, -1400., 0.0);
+{ 19728} G2H5027 +PERO3              =  0.460G1H504N + 0.270GHD5017 + 0.270GHD5016                 : ARR( 0.488E-13, -1250., 0.0);
+{ 19729} G2H5027 +PERO5              =  0.460G1H504N + 0.270GHD5017 + 0.270GHD5016                 : ARR( 0.183E-11,   450., 0.0);
+{ 19730} G2H5027 +PERO6              =  0.300G1H504N + 0.350GHD5017 + 0.350GHD5016                 : ARR( 0.168E-13, -1300., 0.0);
+{ 19731} G2H5027 +PERO9              =  0.650G1H504N + 0.350GHD5016                                : ARR( 0.100E-10,     0., 0.0);
+{ 19732} G3H500l +GHO2               =  0.800GGH5014 + 0.200GAH501N + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 19733} G3H500l +GNO                =       GDD4000 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 19734} G3H500l +GNO2               =       GPH501P                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 19735} G3H500l +GNO3               =       GDD4000 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 19736} G3H500l +MEPERO             =  0.685GDD4000 + 0.315GAH501N + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 19737} G3H500l +PERO1              =  0.800GDD4000 + 0.200GAH501N + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 19738} G3H500l +PERO2              =  0.750GDD4000 + 0.250GAH501N + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 19739} G3H500l +PERO3              =  0.800GDD4000 + 0.200GAH501N + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 19740} G3H500l +PERO5              =  0.650GDD4000 + 0.350GAH501N + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 19741} G3H500l +PERO6              =  0.650GDD4000 + 0.350GAH501N + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 19742} G3H500l +PERO9              =       GDD4000 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 19743} G2H400f +GNO                =       G1H400i +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 19744} G2H400f +GNO                =       GHN400J                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 19745} G2H400f +GHO2               =       GHH400A                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 19746} G2H400f +GNO3               =       G1H400i +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 19747} G2H400f +MEPERO             =  0.480G1H400i + 0.260GHD4006 + 0.260GHD400C                 : ARR( 0.146E-12,  -445., 0.0);
+{ 19748} G2H400f +PERO1              =  0.600G1H400i + 0.200GHD4006 + 0.200GHD400C                 : ARR( 0.112E-12,  -500., 0.0);
+{ 19749} G2H400f +PERO2              =  0.560G1H400i + 0.220GHD4006 + 0.220GHD400C                 : ARR( 0.418E-13, -1000., 0.0);
+{ 19750} G2H400f +PERO3              =  0.600G1H400i + 0.200GHD4006 + 0.200GHD400C                 : ARR( 0.126E-12,  -850., 0.0);
+{ 19751} G2H400f +PERO5              =  0.600G1H400i + 0.200GHD4006 + 0.200GHD400C                 : ARR( 0.473E-11,   850., 0.0);
+{ 19752} G2H400f +PERO6              =  0.460G1H400i + 0.270GHD4006 + 0.270GHD400C                 : ARR( 0.434E-13,  -900., 0.0);
+{ 19753} G2H400f +PERO9              =  0.800G1H400i + 0.200GHD400C                                : ARR( 0.100E-10,     0., 0.0);
+{ 19754} G1H504N                     =       GDD2000 +      GDD3000 +      GHO                     : ARR( 0.200E+15,  4279., 0.0);
+{ 19755} GDD5004 +GHO                =       G3D5006                                               : ARR( 0.208E-10,     0., 0.0);
+{ 19756} GDD5004 +GHO                =       G2D500Y                                               : ARR( 0.273E-11,     0., 0.0);
+{ 19757} GDD5004 +GHO                =       G2D500Z                                               : ARR( 0.273E-11,     0., 0.0);
+{ 19758} GDD5004 +GHO                =       G3D4000 +      GCO                                    : ARR( 0.127E-10,     0., 0.0);
+{ 19759} GDD5004 +GNO3               =       G3D5006 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 19760} GDD5004 +GNO3               =       G3D4000 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 19761} GDD5004+HV               =       GCO     +      G2D400C +      GHO2                    :  0.100E+01*SUN;
+{ 19762} GDD5004+HV               =       G3D4000 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 19763} GDD5004+HV               =       GDD4000 +      GCO                                    :  0.100E+01*SUN;
+{ 19764} GDD5004+HV               =       GD03000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 19765} G3D5006 +GHO2               =  0.800GGD5009 + 0.200GAD500B + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 19766} G3D5006 +GNO                =       G2D400C +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 19767} G3D5006 +GNO2               =       GPD5009                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 19768} G3D5006 +GNO3               =       G2D400C +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 19769} G3D5006 +MEPERO             =  0.685G2D400C + 0.315GAD500B + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 19770} G3D5006 +PERO1              =  0.800G2D400C + 0.200GAD500B + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 19771} G3D5006 +PERO2              =  0.750G2D400C + 0.250GAD500B + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 19772} G3D5006 +PERO3              =  0.800G2D400C + 0.200GAD500B + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 19773} G3D5006 +PERO5              =  0.650G2D400C + 0.350GAD500B + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 19774} G3D5006 +PERO6              =  0.650G2D400C + 0.350GAD500B + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 19775} G3D5006 +PERO9              =       G2D400C +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 19776} G2D500Y +GNO                =       G1D500o +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 19777} G2D500Y +GNO                =       GND5014                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 19778} G2D500Y +GHO2               =       GHD5018                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 19779} G2D500Y +GNO3               =       G1D500o +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 19780} G2D500Y +MEPERO             =  0.340G1D500o + 0.330GDD5007 + 0.330GDD500B                 : ARR( 0.565E-13,  -845., 0.0);
+{ 19781} G2D500Y +PERO1              =  0.460G1D500o + 0.270GDD5007 + 0.270GDD500B                 : ARR( 0.434E-13,  -900., 0.0);
+{ 19782} G2D500Y +PERO2              =  0.400G1D500o + 0.300GDD5007 + 0.300GDD500B                 : ARR( 0.162E-13, -1400., 0.0);
+{ 19783} G2D500Y +PERO3              =  0.460G1D500o + 0.270GDD5007 + 0.270GDD500B                 : ARR( 0.488E-13, -1250., 0.0);
+{ 19784} G2D500Y +PERO5              =  0.460G1D500o + 0.270GDD5007 + 0.270GDD500B                 : ARR( 0.183E-11,   450., 0.0);
+{ 19785} G2D500Y +PERO6              =  0.300G1D500o + 0.350GDD5007 + 0.350GDD500B                 : ARR( 0.168E-13, -1300., 0.0);
+{ 19786} G2D500Y +PERO9              =  0.650G1D500o + 0.350GDD500B                                : ARR( 0.100E-10,     0., 0.0);
+{ 19787} G2D500Z +GNO                =       G1D500p +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 19788} G2D500Z +GNO                =       GND501C                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 19789} G2D500Z +GHO2               =       GHD5013                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 19790} G2D500Z +GNO3               =       G1D500p +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 19791} G2D500Z +MEPERO             =  0.340G1D500p + 0.330GDD5009 + 0.330GDD500A                 : ARR( 0.565E-13,  -845., 0.0);
+{ 19792} G2D500Z +PERO1              =  0.460G1D500p + 0.270GDD5009 + 0.270GDD500A                 : ARR( 0.434E-13,  -900., 0.0);
+{ 19793} G2D500Z +PERO2              =  0.400G1D500p + 0.300GDD5009 + 0.300GDD500A                 : ARR( 0.162E-13, -1400., 0.0);
+{ 19794} G2D500Z +PERO3              =  0.460G1D500p + 0.270GDD5009 + 0.270GDD500A                 : ARR( 0.488E-13, -1250., 0.0);
+{ 19795} G2D500Z +PERO5              =  0.460G1D500p + 0.270GDD5009 + 0.270GDD500A                 : ARR( 0.183E-11,   450., 0.0);
+{ 19796} G2D500Z +PERO6              =  0.300G1D500p + 0.350GDD5009 + 0.350GDD500A                 : ARR( 0.168E-13, -1300., 0.0);
+{ 19797} G2D500Z +PERO9              =  0.650G1D500p + 0.350GDD500A                                : ARR( 0.100E-10,     0., 0.0);
+{ 19798} G2D400C +GNO                =       G1D400F +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 19799} G2D400C +GNO                =       GND400B                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 19800} G2D400C +GHO2               =       GHD400D                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 19801} G2D400C +GNO3               =       G1D400F +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 19802} G2D400C +MEPERO             =  0.480G1D400F + 0.260GDK4005 + 0.260GDD4002                 : ARR( 0.146E-12,  -445., 0.0);
+{ 19803} G2D400C +PERO1              =  0.600G1D400F + 0.200GDK4005 + 0.200GDD4002                 : ARR( 0.112E-12,  -500., 0.0);
+{ 19804} G2D400C +PERO2              =  0.560G1D400F + 0.220GDK4005 + 0.220GDD4002                 : ARR( 0.418E-13, -1000., 0.0);
+{ 19805} G2D400C +PERO3              =  0.600G1D400F + 0.200GDK4005 + 0.200GDD4002                 : ARR( 0.126E-12,  -850., 0.0);
+{ 19806} G2D400C +PERO5              =  0.600G1D400F + 0.200GDK4005 + 0.200GDD4002                 : ARR( 0.473E-11,   850., 0.0);
+{ 19807} G2D400C +PERO6              =  0.460G1D400F + 0.270GDK4005 + 0.270GDD4002                 : ARR( 0.434E-13,  -900., 0.0);
+{ 19808} G2D400C +PERO9              =  0.800G1D400F + 0.200GDD4002                                : ARR( 0.100E-10,     0., 0.0);
+{ 19809} G1D500o                     =       GDD4002 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5054., 0.0);
+{ 19810} G1D500p                     =       GDD3000 +      G3D2000                                : ARR( 0.200E+15,  2595., 0.0);
+{ 19811} GHD500S +GHO                =       GDK500M +      GHO                                    : ARR( 0.139E-09,     0., 0.0);
+{ 19812} GHD500S +GHO                =       G3H4003 +      GCO                                    : ARR( 0.134E-10,     0., 0.0);
+{ 19813} GHD500S +GNO3               =       G3H4003 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 19814} GHD500S+HV               =       G1D500J +      GHO                                    :  0.100E+01*SUN;
+{ 19815} GHD500S+HV               =       G3H4003 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 19816} GHD500S+HV               =       GHD4000 +      GCO                                    :  0.100E+01*SUN;
+{ 19817} GHD500S+HV               =       GHO3002 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 19818} GDK500M +GHO                =       GDD500B +      GHO2                                   : ARR( 0.256E-11,     0., 0.0);
+{ 19819} GDK500M +GHO                =       G3K4007 +      GCO                                    : ARR( 0.132E-10,     0., 0.0);
+{ 19820} GDK500M +GNO3               =       G3K4007 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 19821} GDK500M+HV               =       G3K2001 +      G2D3002                                :  0.100E+01*SUN;
+{ 19822} GDK500M+HV               =       G3K4007 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 19823} GDK500M+HV               =       GDK4001 +      GCO                                    :  0.100E+01*SUN;
+{ 19824} GDK500M+HV               =       GKO3000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 19825} GDD4002 +GHO                =       G3D4003                                               : ARR( 0.663E-10,     0., 0.0);
+{ 19826} GDD4002 +GHO                =       G3D3000 +      GCO                                    : ARR( 0.128E-10,     0., 0.0);
+{ 19827} GDD4002 +GNO3               =       G3D4003 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 19828} GDD4002 +GNO3               =       G3D3000 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 19829} GDD4002+HV               =       GCO     +      G2D3002 +      GHO2                    :  0.100E+01*SUN;
+{ 19830} GDD4002+HV               =       G3D3000 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 19831} GDD4002+HV               =       GDD3000 +      GCO                                    :  0.100E+01*SUN;
+{ 19832} GDD4002+HV               =       GD02000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 19833} G3D4003 +GHO2               =  0.800GGD4004 + 0.200GAD4003 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 19834} G3D4003 +GNO                =       G2D3002 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 19835} G3D4003 +GNO2               =       GPD4003                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 19836} G3D4003 +GNO3               =       G2D3002 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 19837} G3D4003 +MEPERO             =  0.685G2D3002 + 0.315GAD4003 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 19838} G3D4003 +PERO1              =  0.800G2D3002 + 0.200GAD4003 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 19839} G3D4003 +PERO2              =  0.750G2D3002 + 0.250GAD4003 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 19840} G3D4003 +PERO3              =  0.800G2D3002 + 0.200GAD4003 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 19841} G3D4003 +PERO5              =  0.650G2D3002 + 0.350GAD4003 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 19842} G3D4003 +PERO6              =  0.650G2D3002 + 0.350GAD4003 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 19843} G3D4003 +PERO9              =       G2D3002 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 19844} GGD5001 +GHO                =       G2G500q                                               : ARR( 0.461E-11,     0., 0.0);
+{ 19845} GGD5001 +GHO                =       GGD5009 +      GHO2                                   : ARR( 0.646E-11,     0., 0.0);
+{ 19846} GGD5001 +GHO                =       G3G5001                                               : ARR( 0.214E-10,     0., 0.0);
+{ 19847} GGD5001 +GHO                =       G3D5000                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 19848} GGD5001 +GNO3               =       G3G5001 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 19849} GGD5001+HV               =       G2D4003 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 19850} GGD5001+HV               =       GGD4000 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 19851} G2G500q +GNO                =       G1G500y +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 19852} G2G500q +GNO                =       GGN500r                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 19853} G2G500q +GHO2               =       GGH500t                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 19854} G2G500q +GNO3               =       G1G500y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 19855} G2G500q +MEPERO             =  0.340G1G500y + 0.330GGD5007 + 0.330GGD5006                 : ARR( 0.565E-13,  -845., 0.0);
+{ 19856} G2G500q +PERO1              =  0.460G1G500y + 0.270GGD5007 + 0.270GGD5006                 : ARR( 0.434E-13,  -900., 0.0);
+{ 19857} G2G500q +PERO2              =  0.400G1G500y + 0.300GGD5007 + 0.300GGD5006                 : ARR( 0.162E-13, -1400., 0.0);
+{ 19858} G2G500q +PERO3              =  0.460G1G500y + 0.270GGD5007 + 0.270GGD5006                 : ARR( 0.488E-13, -1250., 0.0);
+{ 19859} G2G500q +PERO5              =  0.460G1G500y + 0.270GGD5007 + 0.270GGD5006                 : ARR( 0.183E-11,   450., 0.0);
+{ 19860} G2G500q +PERO6              =  0.300G1G500y + 0.350GGD5007 + 0.350GGD5006                 : ARR( 0.168E-13, -1300., 0.0);
+{ 19861} G2G500q +PERO9              =  0.650G1G500y + 0.350GGD5006                                : ARR( 0.100E-10,     0., 0.0);
+{ 19862} G3G5001 +GHO2               =  0.800GGG5000 + 0.200GAG5002 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 19863} G3G5001 +GNO                =       GGD4000 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 19864} G3G5001 +GNO2               =       GPG5001                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 19865} G3G5001 +GNO3               =       GGD4000 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 19866} G3G5001 +MEPERO             =  0.685GGD4000 + 0.315GAG5002 + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 19867} G3G5001 +PERO1              =  0.800GGD4000 + 0.200GAG5002 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 19868} G3G5001 +PERO2              =  0.750GGD4000 + 0.250GAG5002 + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 19869} G3G5001 +PERO3              =  0.800GGD4000 + 0.200GAG5002 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 19870} G3G5001 +PERO5              =  0.650GGD4000 + 0.350GAG5002 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 19871} G3G5001 +PERO6              =  0.650GGD4000 + 0.350GAG5002 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 19872} G3G5001 +PERO9              =       GGD4000 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 19873} G1G500y                     =       GGD3000 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  3070., 0.0);
+{ 19874} GAD5002 +GHO                =       G2A5018                                               : ARR( 0.466E-11,     0., 0.0);
+{ 19875} GAD5002 +GHO                =       GAD500B +      GHO2                                   : ARR( 0.654E-11,     0., 0.0);
+{ 19876} GAD5002 +GHO                =       G3A5002                                               : ARR( 0.216E-10,     0., 0.0);
+{ 19877} GAD5002 +GNO3               =       G3A5002 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 19878} GAD5002+HV               =       GAD4000 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 19879} G2A5018 +GNO                =       G1A501H +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 19880} G2A5018 +GNO                =       GAN500o                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 19881} G2A5018 +GHO2               =       GAH500z                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 19882} G2A5018 +GNO3               =       G1A501H +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 19883} G2A5018 +MEPERO             =  0.340G1A501H + 0.330GAD5009 + 0.330GAD5006                 : ARR( 0.565E-13,  -845., 0.0);
+{ 19884} G2A5018 +PERO1              =  0.460G1A501H + 0.270GAD5009 + 0.270GAD5006                 : ARR( 0.434E-13,  -900., 0.0);
+{ 19885} G2A5018 +PERO2              =  0.400G1A501H + 0.300GAD5009 + 0.300GAD5006                 : ARR( 0.162E-13, -1400., 0.0);
+{ 19886} G2A5018 +PERO3              =  0.460G1A501H + 0.270GAD5009 + 0.270GAD5006                 : ARR( 0.488E-13, -1250., 0.0);
+{ 19887} G2A5018 +PERO5              =  0.460G1A501H + 0.270GAD5009 + 0.270GAD5006                 : ARR( 0.183E-11,   450., 0.0);
+{ 19888} G2A5018 +PERO6              =  0.300G1A501H + 0.350GAD5009 + 0.350GAD5006                 : ARR( 0.168E-13, -1300., 0.0);
+{ 19889} G2A5018 +PERO9              =  0.650G1A501H + 0.350GAD5006                                : ARR( 0.100E-10,     0., 0.0);
+{ 19890} G3A5002 +GHO2               =  0.800GAG5000 + 0.200GAA5001 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 19891} G3A5002 +GNO                =       GAD4000 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 19892} G3A5002 +GNO2               =       GPA5002                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 19893} G3A5002 +GNO3               =       GAD4000 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 19894} G3A5002 +MEPERO             =  0.685GAD4000 + 0.315GAA5001 + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 19895} G3A5002 +PERO1              =  0.800GAD4000 + 0.200GAA5001 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 19896} G3A5002 +PERO2              =  0.750GAD4000 + 0.250GAA5001 + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 19897} G3A5002 +PERO3              =  0.800GAD4000 + 0.200GAA5001 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 19898} G3A5002 +PERO5              =  0.650GAD4000 + 0.350GAA5001 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 19899} G3A5002 +PERO6              =  0.650GAD4000 + 0.350GAA5001 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 19900} G3A5002 +PERO9              =       GAD4000 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 19901} G1A501H                     =       GAD3000 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  3070., 0.0);
+{ 19902} GPD5001                     =       G3D5000 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 19903} GPD5001 +GHO                =       G2P501A                                               : ARR( 0.462E-11,     0., 0.0);
+{ 19904} GPD5001 +GHO                =       GPD5009 +      GHO2                                   : ARR( 0.648E-11,     0., 0.0);
+{ 19905} GPD5001 +GHO                =       G3P5001                                               : ARR( 0.214E-10,     0., 0.0);
+{ 19906} GPD5001 +GNO3               =       G3P5001 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 19907} GPD5001+HV               =       G3D5000 +      GNO2                                   :  0.100E+01*SUN;
+{ 19908} GPD5001+HV               =       GPD4000 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 19909} G2P501A +GNO                =       G1P501J +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 19910} G2P501A +GNO                =       GPN500p                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 19911} G2P501A +GHO2               =       GPH5011                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 19912} G2P501A +GNO3               =       G1P501J +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 19913} G2P501A +MEPERO             =  0.340G1P501J + 0.330GPD5007 + 0.330GPD5006                 : ARR( 0.565E-13,  -845., 0.0);
+{ 19914} G2P501A +PERO1              =  0.460G1P501J + 0.270GPD5007 + 0.270GPD5006                 : ARR( 0.434E-13,  -900., 0.0);
+{ 19915} G2P501A +PERO2              =  0.400G1P501J + 0.300GPD5007 + 0.300GPD5006                 : ARR( 0.162E-13, -1400., 0.0);
+{ 19916} G2P501A +PERO3              =  0.460G1P501J + 0.270GPD5007 + 0.270GPD5006                 : ARR( 0.488E-13, -1250., 0.0);
+{ 19917} G2P501A +PERO5              =  0.460G1P501J + 0.270GPD5007 + 0.270GPD5006                 : ARR( 0.183E-11,   450., 0.0);
+{ 19918} G2P501A +PERO6              =  0.300G1P501J + 0.350GPD5007 + 0.350GPD5006                 : ARR( 0.168E-13, -1300., 0.0);
+{ 19919} G2P501A +PERO9              =  0.650G1P501J + 0.350GPD5006                                : ARR( 0.100E-10,     0., 0.0);
+{ 19920} G3P5001 +GHO2               =  0.800GPG5000 + 0.200GPA5001 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 19921} G3P5001 +GNO                =       GPD4000 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 19922} G3P5001 +GNO2               =       GPP5000                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 19923} G3P5001 +GNO3               =       GPD4000 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 19924} G3P5001 +MEPERO             =  0.685GPD4000 + 0.315GPA5001 + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 19925} G3P5001 +PERO1              =  0.800GPD4000 + 0.200GPA5001 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 19926} G3P5001 +PERO2              =  0.750GPD4000 + 0.250GPA5001 + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 19927} G3P5001 +PERO3              =  0.800GPD4000 + 0.200GPA5001 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 19928} G3P5001 +PERO5              =  0.650GPD4000 + 0.350GPA5001 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 19929} G3P5001 +PERO6              =  0.650GPD4000 + 0.350GPA5001 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 19930} G3P5001 +PERO9              =       GPD4000 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 19931} G1P501J                     =       GPD3000 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  3070., 0.0);
+{ 19932} GDD5005 +GHO                =       G3D5007                                               : ARR( 0.681E-10,     0., 0.0);
+{ 19933} GDD5005 +GHO                =       G3D5008                                               : ARR( 0.681E-10,     0., 0.0);
+{ 19934} GDD5005 +GNO3               =       G3D5007 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 19935} GDD5005 +GNO3               =       G3D5008 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 19936} GDD5005+HV               =       GCO     +      GDD4002 +      GHO2                    :  0.100E+01*SUN;
+{ 19937} GDD5005+HV               =       G3D3001 +      G2D2000                                :  0.100E+01*SUN;
+{ 19938} GDD5005+HV               =       G2D400D +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 19939} G3D5007 +GHO2               =  0.800GGD5005 + 0.200GAD5005 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 19940} G3D5007 +GNO                =       GDD4002 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 19941} G3D5007 +GNO2               =       GPD5005                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 19942} G3D5007 +GNO3               =       GDD4002 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 19943} G3D5007 +MEPERO             =  0.685GDD4002 + 0.315GAD5005 + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 19944} G3D5007 +PERO1              =  0.800GDD4002 + 0.200GAD5005 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 19945} G3D5007 +PERO2              =  0.750GDD4002 + 0.250GAD5005 + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 19946} G3D5007 +PERO3              =  0.800GDD4002 + 0.200GAD5005 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 19947} G3D5007 +PERO5              =  0.650GDD4002 + 0.350GAD5005 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 19948} G3D5007 +PERO6              =  0.650GDD4002 + 0.350GAD5005 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 19949} G3D5007 +PERO9              =       GDD4002 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 19950} G3D5008 +GHO2               =  0.800GGD5006 + 0.200GAD5006 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 19951} G3D5008 +GNO                =       G2D400D +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 19952} G3D5008 +GNO2               =       GPD5006                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 19953} G3D5008 +GNO3               =       G2D400D +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 19954} G3D5008 +MEPERO             =  0.685G2D400D + 0.315GAD5006 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 19955} G3D5008 +PERO1              =  0.800G2D400D + 0.200GAD5006 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 19956} G3D5008 +PERO2              =  0.750G2D400D + 0.250GAD5006 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 19957} G3D5008 +PERO3              =  0.800G2D400D + 0.200GAD5006 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 19958} G3D5008 +PERO5              =  0.650G2D400D + 0.350GAD5006 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 19959} G3D5008 +PERO6              =  0.650G2D400D + 0.350GAD5006 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 19960} G3D5008 +PERO9              =       G2D400D +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 19961} G2D400D +GNO                =       G1D400H +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 19962} G2D400D +GNO                =       GND400E                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 19963} G2D400D +GHO2               =       GHD400J                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 19964} G2D400D +GNO3               =       G1D400H +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 19965} G2D400D +MEPERO             =  0.480G1D400H + 0.260GDK4006 + 0.260GDD4004                 : ARR( 0.164E-12,  -795., 0.0);
+{ 19966} G2D400D +PERO1              =  0.600G1D400H + 0.200GDK4006 + 0.200GDD4004                 : ARR( 0.126E-12,  -850., 0.0);
+{ 19967} G2D400D +PERO2              =  0.560G1D400H + 0.220GDK4006 + 0.220GDD4004                 : ARR( 0.471E-13, -1350., 0.0);
+{ 19968} G2D400D +PERO3              =  0.600G1D400H + 0.200GDK4006 + 0.200GDD4004                 : ARR( 0.142E-12, -1200., 0.0);
+{ 19969} G2D400D +PERO5              =  0.600G1D400H + 0.200GDK4006 + 0.200GDD4004                 : ARR( 0.533E-11,   500., 0.0);
+{ 19970} G2D400D +PERO6              =  0.460G1D400H + 0.270GDK4006 + 0.270GDD4004                 : ARR( 0.488E-13, -1250., 0.0);
+{ 19971} G2D400D +PERO9              =  0.800G1D400H + 0.200GDD4004                                : ARR( 0.100E-10,     0., 0.0);
+{ 19972} G1D400H                     =       G3D3001 +      GCH2O                                  : ARR( 0.200E+15,  4349., 0.0);
+{ 19973} GHD400B +GHO                =       GDD4001 +      GHO                                    : ARR( 0.161E-10,     0., 0.0);
+{ 19974} GHD400B +GHO                =       G2H400g                                               : ARR( 0.449E-11,     0., 0.0);
+{ 19975} GHD400B +GHO                =       GHD400D +      GHO2                                   : ARR( 0.630E-11,     0., 0.0);
+{ 19976} GHD400B +GHO                =       G3H400F                                               : ARR( 0.208E-10,     0., 0.0);
+{ 19977} GHD400B +GHO                =       G2D4003                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 19978} GHD400B +GNO3               =       G3H400F +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 19979} GHD400B+HV               =       G1D4004 +      GHO                                    :  0.100E+01*SUN;
+{ 19980} GHD400B+HV               =       GHD3000 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 19981} G2H400g +GNO                =       G1H400k +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 19982} G2H400g +GNO                =       GHN400x                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 19983} G2H400g +GHO2               =       GHH400d                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 19984} G2H400g +GNO3               =       G1H400k +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 19985} G2H400g +MEPERO             =  0.340G1H400k + 0.330GHD400E + 0.330GHD400J                 : ARR( 0.565E-13,  -845., 0.0);
+{ 19986} G2H400g +PERO1              =  0.460G1H400k + 0.270GHD400E + 0.270GHD400J                 : ARR( 0.434E-13,  -900., 0.0);
+{ 19987} G2H400g +PERO2              =  0.400G1H400k + 0.300GHD400E + 0.300GHD400J                 : ARR( 0.162E-13, -1400., 0.0);
+{ 19988} G2H400g +PERO3              =  0.460G1H400k + 0.270GHD400E + 0.270GHD400J                 : ARR( 0.488E-13, -1250., 0.0);
+{ 19989} G2H400g +PERO5              =  0.460G1H400k + 0.270GHD400E + 0.270GHD400J                 : ARR( 0.183E-11,   450., 0.0);
+{ 19990} G2H400g +PERO6              =  0.300G1H400k + 0.350GHD400E + 0.350GHD400J                 : ARR( 0.168E-13, -1300., 0.0);
+{ 19991} G2H400g +PERO9              =  0.650G1H400k + 0.350GHD400J                                : ARR( 0.100E-10,     0., 0.0);
+{ 19992} G3H400F +GHO2               =  0.800GGH400J + 0.200GAH400M + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 19993} G3H400F +GNO                =       GHD3000 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 19994} G3H400F +GNO2               =       GPH400M                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 19995} G3H400F +GNO3               =       GHD3000 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 19996} G3H400F +MEPERO             =  0.685GHD3000 + 0.315GAH400M + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 19997} G3H400F +PERO1              =  0.800GHD3000 + 0.200GAH400M + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 19998} G3H400F +PERO2              =  0.750GHD3000 + 0.250GAH400M + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 19999} G3H400F +PERO3              =  0.800GHD3000 + 0.200GAH400M + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 20000} G3H400F +PERO5              =  0.650GHD3000 + 0.350GAH400M + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 20001} G3H400F +PERO6              =  0.650GHD3000 + 0.350GAH400M + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 20002} G3H400F +PERO9              =       GHD3000 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 20003} G1H400k                     =       GHD2000 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  3768., 0.0);
+{ 20004} GHN502T +GHO                =       GNN501U +      GHO                                    : ARR( 0.329E-11,     0., 0.0);
+{ 20005} GHN502T +GHO                =       G2N501s                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 20006} GHN502T+HV               =       G1H504O +      GNO2                                   :  0.100E+01*SUN;
+{ 20007} GHN502T+HV               =       G1H504P +      GNO2                                   :  0.100E+01*SUN;
+{ 20008} GHN502T+HV               =       G1H504Q +      GNO2                                   :  0.100E+01*SUN;
+{ 20009} GHN502T+HV               =       G1N501x +      GHO                                    :  0.100E+01*SUN;
+{ 20010} G1H504O +OXYGEN             =       GHN5054 +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{ 20011} G1H504O                     =       GHN5028 +      GNO2                                   : ARR( 0.800E+11,  4743., 0.0);
+{ 20012} G1H504P                     =       G2N2000 +      GHN300A                                : ARR( 0.200E+15,  7074., 0.0);
+{ 20013} G1H504P                     =       GND3000 +      GHD2000 +      GNO2                    : ARR( 0.200E+15,  6068., 0.0);
+{ 20014} G1H504Q                     =       GHN501G +      GNO2                                   : ARR( 0.160E+12,  4531., 0.0);
+{ 20015} G1H504Q                     =       GND3000 +      GHD2000 +      GNO2                    : ARR( 0.200E+15,  6739., 0.0);
+{ 20016} G1H504Q                     =       GNN4008 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  7395., 0.0);
+{ 20017} GNN501U +GHO                =       G3N500o                                               : ARR( 0.430E-11,     0., 0.0);
+{ 20018} GNN501U +GNO3               =       G3N500o +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 20019} GNN501U+HV               =       G1N504c +      GNO2                                   :  0.100E+01*SUN;
+{ 20020} GNN501U+HV               =       G1N504I +      GNO2                                   :  0.100E+01*SUN;
+{ 20021} GNN501U+HV               =       G1N504d +      GNO2                                   :  0.100E+01*SUN;
+{ 20022} GNN501U+HV               =       GNN4008 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 20023} GNN501U+HV               =       G2N3009 +      GND2000 +      GNO2                    :  0.100E+01*SUN;
+{ 20024} G3N500o +GHO2               =  0.800GGN500z + 0.200GAN500s + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 20025} G3N500o +GNO                =       GNN4008 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 20026} G3N500o +GNO2               =       GPN500z                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 20027} G3N500o +GNO3               =       GNN4008 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 20028} G3N500o +MEPERO             =  0.685GNN4008 + 0.315GAN500s + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 20029} G3N500o +PERO1              =  0.800GNN4008 + 0.200GAN500s + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 20030} G3N500o +PERO2              =  0.750GNN4008 + 0.250GAN500s + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 20031} G3N500o +PERO3              =  0.800GNN4008 + 0.200GAN500s + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 20032} G3N500o +PERO5              =  0.650GNN4008 + 0.350GAN500s + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 20033} G3N500o +PERO6              =  0.650GNN4008 + 0.350GAN500s + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 20034} G3N500o +PERO9              =       GNN4008 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 20035} G1N504c +OXYGEN             =       GNN502t +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{ 20036} G1N504c                     =       GND500Z +      GNO2                                   : ARR( 0.800E+11,  4964., 0.0);
+{ 20037} G1N504d                     =       GND500a +      GNO2                                   : ARR( 0.160E+12,  4531., 0.0);
+{ 20038} G1N504d                     =       GNN4008 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 20039} GNN501W +GHO                =       G2N504E                                               : ARR( 0.335E-13,     0., 0.0);
+{ 20040} GNN501W +GHO                =       GNN501v +      GNO2                                   : ARR( 0.191E-13,     0., 0.0);
+{ 20041} GNN501W +GHO                =       GNN501i +      GNO2                                   : ARR( 0.471E-14,     0., 0.0);
+{ 20042} GNN501W +GHO                =       GNN501Y +      GNO2                                   : ARR( 0.471E-14,     0., 0.0);
+{ 20043} GNN501W +GHO                =       GNN502T +      GNO2                                   : ARR( 0.919E-14,     0., 0.0);
+{ 20044} GNN501W+HV               =       G1N502a +      GNO2                                   :  0.100E+01*SUN;
+{ 20045} GNN501W+HV               =       G1N5027 +      GNO2                                   :  0.100E+01*SUN;
+{ 20046} GNN501W+HV               =       G1N501y +      GNO2                                   :  0.100E+01*SUN;
+{ 20047} GNN501W+HV               =       G1N503W +      GNO2                                   :  0.100E+01*SUN;
+{ 20048} G2N504E +GNO                =       G1N504e +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 20049} G2N504E +GNO                =       GNN502d                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 20050} G2N504E +GHO2               =       GHN505O                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 20051} G2N504E +GNO3               =       G1N504e +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 20052} G2N504E +MEPERO             =  0.480G1N504e + 0.260GNN501Z + 0.260GNN502w                 : ARR( 0.164E-12,  -795., 0.0);
+{ 20053} G2N504E +PERO1              =  0.600G1N504e + 0.200GNN501Z + 0.200GNN502w                 : ARR( 0.126E-12,  -850., 0.0);
+{ 20054} G2N504E +PERO2              =  0.560G1N504e + 0.220GNN501Z + 0.220GNN502w                 : ARR( 0.471E-13, -1350., 0.0);
+{ 20055} G2N504E +PERO3              =  0.600G1N504e + 0.200GNN501Z + 0.200GNN502w                 : ARR( 0.142E-12, -1200., 0.0);
+{ 20056} G2N504E +PERO5              =  0.600G1N504e + 0.200GNN501Z + 0.200GNN502w                 : ARR( 0.533E-11,   500., 0.0);
+{ 20057} G2N504E +PERO6              =  0.460G1N504e + 0.270GNN501Z + 0.270GNN502w                 : ARR( 0.488E-13, -1250., 0.0);
+{ 20058} G2N504E +PERO9              =  0.800G1N504e + 0.200GNN502w                                : ARR( 0.100E-10,     0., 0.0);
+{ 20059} G1N504e +OXYGEN             =       GNN502w +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 20060} G1N504e                     =       GNN400D +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7042., 0.0);
+{ 20061} GHN502U +GHO                =       GNN501Y +      GHO                                    : ARR( 0.169E-11,     0., 0.0);
+{ 20062} GHN502U +GHO                =       G2N501t                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 20063} GHN502U+HV               =       G1H504R +      GNO2                                   :  0.100E+01*SUN;
+{ 20064} GHN502U+HV               =       G1H504S +      GNO2                                   :  0.100E+01*SUN;
+{ 20065} GHN502U+HV               =       G1N501y +      GHO                                    :  0.100E+01*SUN;
+{ 20066} GHN502U+HV               =       G1H504T +      GNO2                                   :  0.100E+01*SUN;
+{ 20067} G1H504R                     =       GHN502x +      GNO2                                   : ARR( 0.160E+12,  4531., 0.0);
+{ 20068} G1H504R                     =       GD02000 +      GHN3007 +      GNO2                    : ARR( 0.200E+15,  5979., 0.0);
+{ 20069} G1H504S                     =       GND3001 +      GND2000 +      GHO                     : ARR( 0.200E+15,  4784., 0.0);
+{ 20070} G1H504T                     =       GNN4007 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{ 20071} GNN501X +GHO                =       GNN501Y +      GHO2                                   : ARR( 0.465E-12,     0., 0.0);
+{ 20072} GNN501X +GHO                =       GNN502Z +      GNO2                                   : ARR( 0.518E-13,     0., 0.0);
+{ 20073} GNN501X +GHO                =       G1N501y                                               : ARR( 0.237E-17,    85., 2.0);
+{ 20074} GNN501X+HV               =       G1N502b +      GNO2                                   :  0.100E+01*SUN;
+{ 20075} GNN501X+HV               =       G1N5029 +      GNO2                                   :  0.100E+01*SUN;
+{ 20076} GNN501X+HV               =       G1N503h +      GNO2                                   :  0.100E+01*SUN;
+{ 20077} GNN501Y +GHO                =       G2N504F                                               : ARR( 0.335E-13,     0., 0.0);
+{ 20078} GNN501Y +GHO                =       GNN501x +      GNO2                                   : ARR( 0.191E-13,     0., 0.0);
+{ 20079} GNN501Y +GHO                =       GNN501k +      GNO2                                   : ARR( 0.144E-13,     0., 0.0);
+{ 20080} GNN501Y +GHO                =       GNN502X +      GNO2                                   : ARR( 0.280E-13,     0., 0.0);
+{ 20081} GNN501Y+HV               =       G1N502d +      GNO2                                   :  0.100E+01*SUN;
+{ 20082} GNN501Y+HV               =       G1N502B +      GNO2                                   :  0.100E+01*SUN;
+{ 20083} GNN501Y+HV               =       G3N4009 +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{ 20084} GNN501Y+HV               =       G2D2000 +      GNN3006 +      GNO2                    :  0.100E+01*SUN;
+{ 20085} GNN501Y+HV               =       G1N503Z +      GNO2                                   :  0.100E+01*SUN;
+{ 20086} G2N504F +GNO                =       G1N504f +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 20087} G2N504F +GNO                =       GNN502g                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 20088} G2N504F +GHO2               =       GHN505P                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 20089} G2N504F +GNO3               =       G1N504f +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 20090} G2N504F +MEPERO             =  0.480G1N504f + 0.260GNN501b + 0.260GNN502x                 : ARR( 0.164E-12,  -795., 0.0);
+{ 20091} G2N504F +PERO1              =  0.600G1N504f + 0.200GNN501b + 0.200GNN502x                 : ARR( 0.126E-12,  -850., 0.0);
+{ 20092} G2N504F +PERO2              =  0.560G1N504f + 0.220GNN501b + 0.220GNN502x                 : ARR( 0.471E-13, -1350., 0.0);
+{ 20093} G2N504F +PERO3              =  0.600G1N504f + 0.200GNN501b + 0.200GNN502x                 : ARR( 0.142E-12, -1200., 0.0);
+{ 20094} G2N504F +PERO5              =  0.600G1N504f + 0.200GNN501b + 0.200GNN502x                 : ARR( 0.533E-11,   500., 0.0);
+{ 20095} G2N504F +PERO6              =  0.460G1N504f + 0.270GNN501b + 0.270GNN502x                 : ARR( 0.488E-13, -1250., 0.0);
+{ 20096} G2N504F +PERO9              =  0.800G1N504f + 0.200GNN502x                                : ARR( 0.100E-10,     0., 0.0);
+{ 20097} G1N504f +OXYGEN             =       GNN502x +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 20098} G1N504f                     =       GNN400G +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7175., 0.0);
+{ 20099} GNN501Z +GHO                =       GNN502w +      GHO2                                   : ARR( 0.840E-12,     0., 0.0);
+{ 20100} GNN501Z +GHO                =       G1N504e                                               : ARR( 0.219E-17,    85., 2.0);
+{ 20101} GNN501Z+HV               =       G1N502g +      GNO2                                   :  0.100E+01*SUN;
+{ 20102} GNN501Z+HV               =       G1N504g +      GNO2                                   :  0.100E+01*SUN;
+{ 20103} GNN501Z+HV               =       G1N501z +      GNO2                                   :  0.100E+01*SUN;
+{ 20104} GNN501Z+HV               =       G1N504h +      GNO2                                   :  0.100E+01*SUN;
+{ 20105} G1N504g                     =       GDO2000 +      GNN3005 +      GNO2                    : ARR( 0.200E+15,  6323., 0.0);
+{ 20106} G1N504g                     =       GND3004 +      GND2000 +      GNO2                    : ARR( 0.200E+15,  6323., 0.0);
+{ 20107} G1N504h +OXYGEN             =       GNN502y +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 20108} G1N504h                     =       GNN502C +      GNO2                                   : ARR( 0.800E+11,  4743., 0.0);
+{ 20109} G1N504h                     =       GNN400E +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7042., 0.0);
+{ 20110} GHN502W +GHO                =       GHN505Q +      GHO2                                   : ARR( 0.835E-12,     0., 0.0);
+{ 20111} GHN502W +GHO                =       GNN501b +      GHO                                    : ARR( 0.171E-11,     0., 0.0);
+{ 20112} GHN502W +GHO                =       G2N501u                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 20113} GHN502W+HV               =       G1H504U +      GNO2                                   :  0.100E+01*SUN;
+{ 20114} GHN502W+HV               =       G1H504W +      GNO2                                   :  0.100E+01*SUN;
+{ 20115} GHN502W+HV               =       G1N501z +      GHO                                    :  0.100E+01*SUN;
+{ 20116} GHN502W+HV               =       G1H504X +      GNO2                                   :  0.100E+01*SUN;
+{ 20117} G1H504U                     =       GCH2O   +      GHN4012 +      GHO2                    : ARR( 0.200E+15,  5296., 0.0);
+{ 20118} G1H504U                     =       GDO2000 +      GHN3007 +      GNO2                    : ARR( 0.200E+15,  6234., 0.0);
+{ 20119} G1H504W                     =       GND3004 +      GND2000 +      GHO                     : ARR( 0.200E+15,  4784., 0.0);
+{ 20120} G1H504X                     =       GNN400E +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{ 20121} GNN501a +GHO                =       GNN501d +      GHO2                                   : ARR( 0.854E-12,     0., 0.0);
+{ 20122} GNN501a +GHO                =       GNN501b +      GHO2                                   : ARR( 0.438E-12,     0., 0.0);
+{ 20123} GNN501a +GHO                =       G1N5021                                               : ARR( 0.223E-17,    85., 2.0);
+{ 20124} GNN501a +GHO                =       G1N501z                                               : ARR( 0.223E-17,    85., 2.0);
+{ 20125} GNN501a+HV               =       G1N502j +      GNO2                                   :  0.100E+01*SUN;
+{ 20126} GNN501a+HV               =       G1N502F +      GNO2                                   :  0.100E+01*SUN;
+{ 20127} GNN501a+HV               =       G1N503s +      GNO2                                   :  0.100E+01*SUN;
+{ 20128} GNN501b +GHO                =       GNN502x +      GHO2                                   : ARR( 0.860E-12,     0., 0.0);
+{ 20129} GNN501b +GHO                =       G1N504f                                               : ARR( 0.225E-17,    85., 2.0);
+{ 20130} GNN501b+HV               =       G1N502l +      GNO2                                   :  0.100E+01*SUN;
+{ 20131} GNN501b+HV               =       G1N502I +      GNO2                                   :  0.100E+01*SUN;
+{ 20132} GNN501b+HV               =       G3N400B +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{ 20133} GNN501b+HV               =       GND2000 +      GNN3006                                :  0.100E+01*SUN;
+{ 20134} GNN501b+HV               =       G1N503y +      GNO2                                   :  0.100E+01*SUN;
+{ 20135} GNN501c +GHO                =       GNN502a +      GNO2                                   : ARR( 0.488E-13,     0., 0.0);
+{ 20136} GNN501c +GHO                =       GNN502g +      GHO2                                   : ARR( 0.438E-12,     0., 0.0);
+{ 20137} GNN501c +GHO                =       G1N5049                                               : ARR( 0.223E-17,    85., 2.0);
+{ 20138} GNN501c+HV               =       G1N503o +      GNO2                                   :  0.100E+01*SUN;
+{ 20139} GNN501c+HV               =       G1N502D +      GNO2                                   :  0.100E+01*SUN;
+{ 20140} GNN501c+HV               =       G1N502m +      GNO2                                   :  0.100E+01*SUN;
+{ 20141} GNN501c+HV               =       G1N5021 +      GNO2                                   :  0.100E+01*SUN;
+{ 20142} GHN502X +GHO                =       GHN505P +      GHO2                                   : ARR( 0.425E-12,     0., 0.0);
+{ 20143} GHN502X +GHO                =       GNN501d +      GHO                                    : ARR( 0.332E-11,     0., 0.0);
+{ 20144} GHN502X +GHO                =       G2N501v                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 20145} GHN502X+HV               =       G1H504Y +      GNO2                                   :  0.100E+01*SUN;
+{ 20146} GHN502X+HV               =       G1H504Z +      GNO2                                   :  0.100E+01*SUN;
+{ 20147} GHN502X+HV               =       G1H504a +      GNO2                                   :  0.100E+01*SUN;
+{ 20148} GHN502X+HV               =       G1N5021 +      GHO                                    :  0.100E+01*SUN;
+{ 20149} G1H504Y                     =       GHN4013 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 20150} G1H504Z                     =       GND2000 +      GHN300A +      GHO2                    : ARR( 0.200E+15,  3575., 0.0);
+{ 20151} G1H504a                     =       GHN503z +      GNO2                                   : ARR( 0.160E+12,  4531., 0.0);
+{ 20152} G1H504a                     =       GND3002 +      GHD2000 +      GNO2                    : ARR( 0.200E+15,  6234., 0.0);
+{ 20153} GNN501d +GHO                =       GNN502x +      GHO2                                   : ARR( 0.432E-12,     0., 0.0);
+{ 20154} GNN501d +GHO                =       G3N500p                                               : ARR( 0.436E-11,     0., 0.0);
+{ 20155} GNN501d +GNO3               =       G3N500p +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 20156} GNN501d+HV               =       G1N504i +      GNO2                                   :  0.100E+01*SUN;
+{ 20157} GNN501d+HV               =       G1N504j +      GNO2                                   :  0.100E+01*SUN;
+{ 20158} GNN501d+HV               =       G1N504k +      GNO2                                   :  0.100E+01*SUN;
+{ 20159} GNN501d+HV               =       GNN400F +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 20160} GNN501d+HV               =       GNN3006 +      GND2000                                :  0.100E+01*SUN;
+{ 20161} G3N500p +GHO2               =  0.800GGN501A + 0.200GAN501J + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 20162} G3N500p +GNO                =       GNN400F + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 20163} G3N500p +GNO2               =       GPN501N                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 20164} G3N500p +GNO3               =       GNN400F + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 20165} G3N500p +MEPERO             =  0.685GNN400F + 0.315GAN501J + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 20166} G3N500p +PERO1              =  0.800GNN400F + 0.200GAN501J + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 20167} G3N500p +PERO2              =  0.750GNN400F + 0.250GAN501J + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 20168} G3N500p +PERO3              =  0.800GNN400F + 0.200GAN501J + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 20169} G3N500p +PERO5              =  0.650GNN400F + 0.350GAN501J + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 20170} G3N500p +PERO6              =  0.650GNN400F + 0.350GAN501J + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 20171} G3N500p +PERO9              =       GNN400F +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 20172} G1N504i                     =       GNN400Z +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 20173} G1N504j                     =       GND2000 +      GND3005 +      GHO2                    : ARR( 0.200E+15,  2745., 0.0);
+{ 20174} G1N504k                     =       GND500s +      GNO2                                   : ARR( 0.160E+12,  4531., 0.0);
+{ 20175} G1N504k                     =       GNN400F +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 20176} GHN502Y +GHO                =       GND500M +      GHO                                    : ARR( 0.266E-10,     0., 0.0);
+{ 20177} GHN502Y +GHO                =       G3H500m                                               : ARR( 0.212E-10,     0., 0.0);
+{ 20178} GHN502Y +GHO                =       G2N504G                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 20179} GHN502Y +GNO3               =       G3H500m +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 20180} GHN502Y+HV               =       G1H503N +      GNO2                                   :  0.100E+01*SUN;
+{ 20181} GHN502Y+HV               =       G1N503f +      GHO                                    :  0.100E+01*SUN;
+{ 20182} GHN502Y+HV               =       G2H400h +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 20183} GHN502Y+HV               =       GDK3000 +      GD02000 +      GHO     +      GNO2     :  0.100E+01*SUN;
+{ 20184} G3H500m +GHO2               =  0.800GGH500T + 0.200GAH500W + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 20185} G3H500m +GNO                =       G2H400h +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 20186} G3H500m +GNO2               =       GPH500Y                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 20187} G3H500m +GNO3               =       G2H400h +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 20188} G3H500m +MEPERO             =  0.685G2H400h + 0.315GAH500W + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 20189} G3H500m +PERO1              =  0.800G2H400h + 0.200GAH500W + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 20190} G3H500m +PERO2              =  0.750G2H400h + 0.250GAH500W + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 20191} G3H500m +PERO3              =  0.800G2H400h + 0.200GAH500W + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 20192} G3H500m +PERO5              =  0.650G2H400h + 0.350GAH500W + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 20193} G3H500m +PERO6              =  0.650G2H400h + 0.350GAH500W + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 20194} G3H500m +PERO9              =       G2H400h +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 20195} G2N504G +GNO                =       G1N503f +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 20196} G2N504G +GNO                =       GNN500x                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 20197} G2N504G +GHO2               =       GHN502Y                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 20198} G2N504G +GNO3               =       G1N503f +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 20199} G2N504G +MEPERO             =  0.340G1N503f + 0.330GND500f + 0.330GND500M                 : ARR( 0.565E-13,  -845., 0.0);
+{ 20200} G2N504G +PERO1              =  0.460G1N503f + 0.270GND500f + 0.270GND500M                 : ARR( 0.434E-13,  -900., 0.0);
+{ 20201} G2N504G +PERO2              =  0.400G1N503f + 0.300GND500f + 0.300GND500M                 : ARR( 0.162E-13, -1400., 0.0);
+{ 20202} G2N504G +PERO3              =  0.460G1N503f + 0.270GND500f + 0.270GND500M                 : ARR( 0.488E-13, -1250., 0.0);
+{ 20203} G2N504G +PERO5              =  0.460G1N503f + 0.270GND500f + 0.270GND500M                 : ARR( 0.183E-11,   450., 0.0);
+{ 20204} G2N504G +PERO6              =  0.300G1N503f + 0.350GND500f + 0.350GND500M                 : ARR( 0.168E-13, -1300., 0.0);
+{ 20205} G2N504G +PERO9              =  0.650G1N503f + 0.350GND500M                                : ARR( 0.100E-10,     0., 0.0);
+{ 20206} G2H400h +GNO                =       G1H400l +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 20207} G2H400h +GNO                =       GHN400f                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 20208} G2H400h +GHO2               =       GHH400e                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 20209} G2H400h +GNO3               =       G1H400l +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 20210} G2H400h +MEPERO             =  0.480G1H400l + 0.260GHN400k + 0.260GHN400O                 : ARR( 0.164E-12,  -795., 0.0);
+{ 20211} G2H400h +PERO1              =  0.600G1H400l + 0.200GHN400k + 0.200GHN400O                 : ARR( 0.126E-12,  -850., 0.0);
+{ 20212} G2H400h +PERO2              =  0.560G1H400l + 0.220GHN400k + 0.220GHN400O                 : ARR( 0.471E-13, -1350., 0.0);
+{ 20213} G2H400h +PERO3              =  0.600G1H400l + 0.200GHN400k + 0.200GHN400O                 : ARR( 0.142E-12, -1200., 0.0);
+{ 20214} G2H400h +PERO5              =  0.600G1H400l + 0.200GHN400k + 0.200GHN400O                 : ARR( 0.533E-11,   500., 0.0);
+{ 20215} G2H400h +PERO6              =  0.460G1H400l + 0.270GHN400k + 0.270GHN400O                 : ARR( 0.488E-13, -1250., 0.0);
+{ 20216} G2H400h +PERO9              =  0.800G1H400l + 0.200GHN400O                                : ARR( 0.100E-10,     0., 0.0);
+{ 20217} G1H400l                     =       GND3001 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{ 20218} GNN501e +GHO                =       GNN501y +      GNO2                                   : ARR( 0.106E-12,     0., 0.0);
+{ 20219} GNN501e +GHO                =       GNN501i +      GHO2                                   : ARR( 0.454E-12,     0., 0.0);
+{ 20220} GNN501e +GHO                =       G1N5027                                               : ARR( 0.231E-17,    85., 2.0);
+{ 20221} GNN501e+HV               =       G1N5033 +      GNO2                                   :  0.100E+01*SUN;
+{ 20222} GNN501e+HV               =       G1N5023 +      GNO2                                   :  0.100E+01*SUN;
+{ 20223} GNN501e+HV               =       G1N503X +      GNO2                                   :  0.100E+01*SUN;
+{ 20224} GHN502Z +GHO                =       GHN502b +      GHO2                                   : ARR( 0.211E-11,     0., 0.0);
+{ 20225} GHN502Z +GHO                =       GNN501g +      GHO                                    : ARR( 0.843E-11,     0., 0.0);
+{ 20226} GHN502Z +GHO                =       G2N501w                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 20227} GHN502Z+HV               =       G1H504b +      GNO2                                   :  0.100E+01*SUN;
+{ 20228} GHN502Z+HV               =       G1N5023 +      GHO                                    :  0.100E+01*SUN;
+{ 20229} GHN502Z+HV               =       G1H504c +      GNO2                                   :  0.100E+01*SUN;
+{ 20230} G1H504b                     =       GD02000 +      GHN3007 +      GHO2                    : ARR( 0.200E+15,  3232., 0.0);
+{ 20231} G1H504c                     =       GHK500Z +      GNO2                                   : ARR( 0.800E+11,  4116., 0.0);
+{ 20232} G1H504c                     =       GND400H +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{ 20233} GNN501f +GHO                =       GNN501j +      GHO2                                   : ARR( 0.229E-11,     0., 0.0);
+{ 20234} GNN501f +GHO                =       GNN501g +      GHO2                                   : ARR( 0.229E-11,     0., 0.0);
+{ 20235} GNN501f+HV               =       G1N5035 +      GNO2                                   :  0.100E+01*SUN;
+{ 20236} GNN501f+HV               =       G1N504l +      GNO2                                   :  0.100E+01*SUN;
+{ 20237} G1N504l                     =       GND400H +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 20238} GNN501g +GHO                =       GNK500q +      GNO2                                   : ARR( 0.315E-12,     0., 0.0);
+{ 20239} GNN501g +GHO                =       GNN501k +      GHO2                                   : ARR( 0.130E-11,     0., 0.0);
+{ 20240} GNN501g +GHO                =       G1N502B                                               : ARR( 0.218E-17,    85., 2.0);
+{ 20241} GNN501g+HV               =       G1N5036 +      GNO2                                   :  0.100E+01*SUN;
+{ 20242} GNN501g+HV               =       G3N400A +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{ 20243} GNN501g+HV               =       G1N503b +      GNO2                                   :  0.100E+01*SUN;
+{ 20244} GND500f +GHO                =       GND500M +      GHO2                                   : ARR( 0.680E-11,     0., 0.0);
+{ 20245} GND500f +GHO                =       G3N500q                                               : ARR( 0.216E-10,     0., 0.0);
+{ 20246} GND500f +GNO3               =       G3N500q +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 20247} GND500f+HV               =       G1D500f +      GNO2                                   :  0.100E+01*SUN;
+{ 20248} GND500f+HV               =       G2N400o +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 20249} GND500f+HV               =       GDK3000 +      GD02000 +      GHO2    +      GNO2     :  0.100E+01*SUN;
+{ 20250} G3N500q +GHO2               =  0.800GGN500R + 0.200GAN500c + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 20251} G3N500q +GNO                =       G2N400o +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 20252} G3N500q +GNO2               =       GPN500c                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 20253} G3N500q +GNO3               =       G2N400o +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 20254} G3N500q +MEPERO             =  0.685G2N400o + 0.315GAN500c + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 20255} G3N500q +PERO1              =  0.800G2N400o + 0.200GAN500c + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 20256} G3N500q +PERO2              =  0.750G2N400o + 0.250GAN500c + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 20257} G3N500q +PERO3              =  0.800G2N400o + 0.200GAN500c + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 20258} G3N500q +PERO5              =  0.650G2N400o + 0.350GAN500c + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 20259} G3N500q +PERO6              =  0.650G2N400o + 0.350GAN500c + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 20260} G3N500q +PERO9              =       G2N400o +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 20261} G2N400o +GNO                =       G1N400r +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 20262} G2N400o +GNO                =       GNN400P                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 20263} G2N400o +GHO2               =       GHN4014                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 20264} G2N400o +GNO3               =       G1N400r +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 20265} G2N400o +MEPERO             =  0.480G1N400r + 0.260GNO400C + 0.260GND400H                 : ARR( 0.164E-12,  -795., 0.0);
+{ 20266} G2N400o +PERO1              =  0.600G1N400r + 0.200GNO400C + 0.200GND400H                 : ARR( 0.126E-12,  -850., 0.0);
+{ 20267} G2N400o +PERO2              =  0.560G1N400r + 0.220GNO400C + 0.220GND400H                 : ARR( 0.471E-13, -1350., 0.0);
+{ 20268} G2N400o +PERO3              =  0.600G1N400r + 0.200GNO400C + 0.200GND400H                 : ARR( 0.142E-12, -1200., 0.0);
+{ 20269} G2N400o +PERO5              =  0.600G1N400r + 0.200GNO400C + 0.200GND400H                 : ARR( 0.533E-11,   500., 0.0);
+{ 20270} G2N400o +PERO6              =  0.460G1N400r + 0.270GNO400C + 0.270GND400H                 : ARR( 0.488E-13, -1250., 0.0);
+{ 20271} G2N400o +PERO9              =  0.800G1N400r + 0.200GND400H                                : ARR( 0.100E-10,     0., 0.0);
+{ 20272} G1N400r                     =       GND3001 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 20273} GHN502a +GHO                =       GNN501h +      GHO                                    : ARR( 0.340E-11,     0., 0.0);
+{ 20274} GHN502a +GHO                =       G2N501x                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 20275} GHN502a+HV               =       G1H504d +      GNO2                                   :  0.100E+01*SUN;
+{ 20276} GHN502a+HV               =       G3N3000 +      GHD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 20277} GHN502a+HV               =       G1H504e +      GNO2                                   :  0.100E+01*SUN;
+{ 20278} GHN502a+HV               =       G1N5024 +      GHO                                    :  0.100E+01*SUN;
+{ 20279} G1H504d +OXYGEN             =       GHN5059 +      GHO2                                   : ARR( 0.600E-13,   398., 0.0);
+{ 20280} G1H504e                     =       G3N3000 +      GHD2000                                : ARR( 0.200E+15,  3005., 0.0);
+{ 20281} GNN501h +GHO                =       G3N500r                                               : ARR( 0.452E-11,     0., 0.0);
+{ 20282} GNN501h +GNO3               =       G3N500r +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 20283} GNN501h+HV               =       G1N504m +      GNO2                                   :  0.100E+01*SUN;
+{ 20284} GNN501h+HV               =       G3N3000 +      GDD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 20285} GNN501h+HV               =       G1N504n +      GNO2                                   :  0.100E+01*SUN;
+{ 20286} GNN501h+HV               =       GND400B +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 20287} G3N500r +GHO2               =  0.800GGN500v + 0.200GAN5011 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 20288} G3N500r +GNO                =       GND400B + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 20289} G3N500r +GNO2               =       GPN5017                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 20290} G3N500r +GNO3               =       GND400B + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 20291} G3N500r +MEPERO             =  0.685GND400B + 0.315GAN5011 + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 20292} G3N500r +PERO1              =  0.800GND400B + 0.200GAN5011 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 20293} G3N500r +PERO2              =  0.750GND400B + 0.250GAN5011 + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 20294} G3N500r +PERO3              =  0.800GND400B + 0.200GAN5011 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 20295} G3N500r +PERO5              =  0.650GND400B + 0.350GAN5011 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 20296} G3N500r +PERO6              =  0.650GND400B + 0.350GAN5011 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 20297} G3N500r +PERO9              =       GND400B +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 20298} G1N504m +OXYGEN             =       GND501G +      GHO2                                   : ARR( 0.600E-13,   398., 0.0);
+{ 20299} G1N504n                     =       G3N3000 +      GDD2000                                : ARR( 0.200E+15,  4889., 0.0);
+{ 20300} GNN501i +GHO                =       G2N504H                                               : ARR( 0.335E-13,     0., 0.0);
+{ 20301} GNN501i +GHO                =       GNN501z +      GNO2                                   : ARR( 0.584E-13,     0., 0.0);
+{ 20302} GNN501i +GHO                =       GNN501k +      GNO2                                   : ARR( 0.144E-13,     0., 0.0);
+{ 20303} GNN501i +GHO                =       GNN502W +      GNO2                                   : ARR( 0.919E-14,     0., 0.0);
+{ 20304} GNN501i+HV               =       G1N502r +      GNO2                                   :  0.100E+01*SUN;
+{ 20305} GNN501i+HV               =       G3N3001 +      GND2000 +      GNO2                    :  0.100E+01*SUN;
+{ 20306} GNN501i+HV               =       G1N5025 +      GNO2                                   :  0.100E+01*SUN;
+{ 20307} GNN501i+HV               =       G1N503Y +      GNO2                                   :  0.100E+01*SUN;
+{ 20308} G2N504H +GNO                =       G1N504o +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 20309} G2N504H +GNO                =       GNN502f                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 20310} G2N504H +GHO2               =       GHN505R                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 20311} G2N504H +GNO3               =       G1N504o +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 20312} G2N504H +MEPERO             =  0.480G1N504o + 0.260GNN502s + 0.260GNN502z                 : ARR( 0.164E-12,  -795., 0.0);
+{ 20313} G2N504H +PERO1              =  0.600G1N504o + 0.200GNN502s + 0.200GNN502z                 : ARR( 0.126E-12,  -850., 0.0);
+{ 20314} G2N504H +PERO2              =  0.560G1N504o + 0.220GNN502s + 0.220GNN502z                 : ARR( 0.471E-13, -1350., 0.0);
+{ 20315} G2N504H +PERO3              =  0.600G1N504o + 0.200GNN502s + 0.200GNN502z                 : ARR( 0.142E-12, -1200., 0.0);
+{ 20316} G2N504H +PERO5              =  0.600G1N504o + 0.200GNN502s + 0.200GNN502z                 : ARR( 0.533E-11,   500., 0.0);
+{ 20317} G2N504H +PERO6              =  0.460G1N504o + 0.270GNN502s + 0.270GNN502z                 : ARR( 0.488E-13, -1250., 0.0);
+{ 20318} G2N504H +PERO9              =  0.800G1N504o + 0.200GNN502z                                : ARR( 0.100E-10,     0., 0.0);
+{ 20319} G1N504o +OXYGEN             =       GNN502z +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 20320} G1N504o                     =       GNN400a +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7323., 0.0);
+{ 20321} GHN502b +GHO                =       GNN501k +      GHO                                    : ARR( 0.516E-11,     0., 0.0);
+{ 20322} GHN502b +GHO                =       G2N501y                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 20323} GHN502b+HV               =       G1H501S +      GNO2                                   :  0.100E+01*SUN;
+{ 20324} GHN502b+HV               =       G3N3001 +      GND2000 +      GHO                     :  0.100E+01*SUN;
+{ 20325} GHN502b+HV               =       G1N5025 +      GHO                                    :  0.100E+01*SUN;
+{ 20326} GHN502b+HV               =       G1H504f +      GNO2                                   :  0.100E+01*SUN;
+{ 20327} G1H504f +OXYGEN             =       GHN504f +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 20328} G1H504f                     =       GND400I +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5784., 0.0);
+{ 20329} GNN501j +GHO                =       GNN501k +      GHO2                                   : ARR( 0.133E-11,     0., 0.0);
+{ 20330} GNN501j +GHO                =       GND5013 +      GNO2                                   : ARR( 0.154E-12,     0., 0.0);
+{ 20331} GNN501j +GHO                =       G1N5025                                               : ARR( 0.223E-17,    85., 2.0);
+{ 20332} GNN501j+HV               =       G1N502u +      GNO2                                   :  0.100E+01*SUN;
+{ 20333} GNN501j+HV               =       G3N3001 +      GND2000 +      GHO2                    :  0.100E+01*SUN;
+{ 20334} GNN501j+HV               =       G1N503z +      GNO2                                   :  0.100E+01*SUN;
+{ 20335} GNN501k +GHO                =       G2N504I                                               : ARR( 0.335E-13,     0., 0.0);
+{ 20336} GNN501k +GHO                =       GNK500s +      GNO2                                   : ARR( 0.584E-13,     0., 0.0);
+{ 20337} GNN501k +GHO                =       GND500z +      GNO2                                   : ARR( 0.280E-13,     0., 0.0);
+{ 20338} GNN501k+HV               =       G1N502w +      GNO2                                   :  0.100E+01*SUN;
+{ 20339} GNN501k+HV               =       G3N3001 +      G3N2000                                :  0.100E+01*SUN;
+{ 20340} GNN501k+HV               =       G1N503c +      GNO2                                   :  0.100E+01*SUN;
+{ 20341} G2N504I +GNO                =       G1N504p +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 20342} G2N504I +GNO                =       GNN502i                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 20343} G2N504I +GHO2               =       GHN505S                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 20344} G2N504I +GNO3               =       G1N504p +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 20345} G2N504I +MEPERO             =  0.480G1N504p + 0.260GNN501s + 0.260GNN5031                 : ARR( 0.164E-12,  -795., 0.0);
+{ 20346} G2N504I +PERO1              =  0.600G1N504p + 0.200GNN501s + 0.200GNN5031                 : ARR( 0.126E-12,  -850., 0.0);
+{ 20347} G2N504I +PERO2              =  0.560G1N504p + 0.220GNN501s + 0.220GNN5031                 : ARR( 0.471E-13, -1350., 0.0);
+{ 20348} G2N504I +PERO3              =  0.600G1N504p + 0.200GNN501s + 0.200GNN5031                 : ARR( 0.142E-12, -1200., 0.0);
+{ 20349} G2N504I +PERO5              =  0.600G1N504p + 0.200GNN501s + 0.200GNN5031                 : ARR( 0.533E-11,   500., 0.0);
+{ 20350} G2N504I +PERO6              =  0.460G1N504p + 0.270GNN501s + 0.270GNN5031                 : ARR( 0.488E-13, -1250., 0.0);
+{ 20351} G2N504I +PERO9              =  0.800G1N504p + 0.200GNN5031                                : ARR( 0.100E-10,     0., 0.0);
+{ 20352} G1N504p +OXYGEN             =       GNN5031 +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 20353} G1N504p                     =       GND400M +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  6903., 0.0);
+{ 20354} GHN502c +GHO                =       GNN501l +      GHO                                    : ARR( 0.331E-11,     0., 0.0);
+{ 20355} GHN502c +GHO                =       G2N501z                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 20356} GHN502c+HV               =       G1H504g +      GNO2                                   :  0.100E+01*SUN;
+{ 20357} GHN502c+HV               =       G1H504h +      GNO2                                   :  0.100E+01*SUN;
+{ 20358} GHN502c+HV               =       G1H501W +      GNO2                                   :  0.100E+01*SUN;
+{ 20359} GHN502c+HV               =       G1N5026 +      GHO                                    :  0.100E+01*SUN;
+{ 20360} G1H504g +OXYGEN             =       GHN505B +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 20361} G1H504g                     =       GHN501H +      GNO2                                   : ARR( 0.800E+11,  4024., 0.0);
+{ 20362} G1H504h                     =       GNN500S +      GHO                                    : ARR( 0.160E+12,  2905., 0.0);
+{ 20363} GNN501l +GHO                =       G3N500s                                               : ARR( 0.432E-11,     0., 0.0);
+{ 20364} GNN501l +GNO3               =       G3N500s +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 20365} GNN501l+HV               =       G1N504q +      GNO2                                   :  0.100E+01*SUN;
+{ 20366} GNN501l+HV               =       G1N504H +      GNO2                                   :  0.100E+01*SUN;
+{ 20367} GNN501l+HV               =       G1N504r +      GNO2                                   :  0.100E+01*SUN;
+{ 20368} GNN501l+HV               =       GNN4001 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 20369} GNN501l+HV               =       G2N3005 +      GND2000 +      GNO2                    :  0.100E+01*SUN;
+{ 20370} G3N500s +GHO2               =  0.800GGN500x + 0.200GAN5015 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 20371} G3N500s +GNO                =       GNN4001 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 20372} G3N500s +GNO2               =       GPN501A                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 20373} G3N500s +GNO3               =       GNN4001 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 20374} G3N500s +MEPERO             =  0.685GNN4001 + 0.315GAN5015 + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 20375} G3N500s +PERO1              =  0.800GNN4001 + 0.200GAN5015 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 20376} G3N500s +PERO2              =  0.750GNN4001 + 0.250GAN5015 + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 20377} G3N500s +PERO3              =  0.800GNN4001 + 0.200GAN5015 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 20378} G3N500s +PERO5              =  0.650GNN4001 + 0.350GAN5015 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 20379} G3N500s +PERO6              =  0.650GNN4001 + 0.350GAN5015 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 20380} G3N500s +PERO9              =       GNN4001 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 20381} G1N504q +OXYGEN             =       GNN502v +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 20382} G1N504q                     =       GND500N +      GNO2                                   : ARR( 0.800E+11,  4245., 0.0);
+{ 20383} G1N504q                     =       GND400D +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7547., 0.0);
+{ 20384} G1N504r                     =       GNN4001 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5437., 0.0);
+{ 20385} GHN502d +GHO                =       GNN501i +      GHO                                    : ARR( 0.170E-11,     0., 0.0);
+{ 20386} GHN502d +GHO                =       G2N5021                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 20387} GHN502d+HV               =       G1H501d +      GNO2                                   :  0.100E+01*SUN;
+{ 20388} GHN502d+HV               =       G1N5027 +      GHO                                    :  0.100E+01*SUN;
+{ 20389} GHN502d+HV               =       G1H504i +      GNO2                                   :  0.100E+01*SUN;
+{ 20390} GHN502d+HV               =       G1H504j +      GNO2                                   :  0.100E+01*SUN;
+{ 20391} G1H504i                     =       GND3001 +      GND2000 +      GHO                     : ARR( 0.200E+15,  4693., 0.0);
+{ 20392} G1H504j +OXYGEN             =       GHN505T +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 20393} G1H504j                     =       GHN501d +      GNO2                                   : ARR( 0.800E+11,  4116., 0.0);
+{ 20394} G1H504j                     =       GHN400O +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7042., 0.0);
+{ 20395} GHN502e +GHO                =       GNN501j +      GHO                                    : ARR( 0.843E-11,     0., 0.0);
+{ 20396} GHN502e +GHO                =       GHN502g +      GHO2                                   : ARR( 0.211E-11,     0., 0.0);
+{ 20397} GHN502e +GHO                =       G2N5022                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 20398} GHN502e+HV               =       G1H504k +      GNO2                                   :  0.100E+01*SUN;
+{ 20399} GHN502e+HV               =       G1N5029 +      GHO                                    :  0.100E+01*SUN;
+{ 20400} GHN502e+HV               =       G1H504l +      GNO2                                   :  0.100E+01*SUN;
+{ 20401} G1H504k                     =       GD02000 +      GND3002 +      GHO                     : ARR( 0.200E+15,  4440., 0.0);
+{ 20402} G1H504l                     =       GHN400O +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 20403} GHN502f +GHO                =       GHN502D +      GNO2                                   : ARR( 0.384E-12,     0., 0.0);
+{ 20404} GHN502f +GHO                =       GNN501m +      GHO                                    : ARR( 0.331E-11,     0., 0.0);
+{ 20405} GHN502f +GHO                =       G2N5023                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 20406} GHN502f+HV               =       G1H504m +      GNO2                                   :  0.100E+01*SUN;
+{ 20407} GHN502f+HV               =       G3N2000 +      G2H3008                                :  0.100E+01*SUN;
+{ 20408} GHN502f+HV               =       GNK3000 +      GDD2000 +      GHO     +      GNO2     :  0.100E+01*SUN;
+{ 20409} GHN502f+HV               =       G1H502L +      GNO2                                   :  0.100E+01*SUN;
+{ 20410} GHN502f+HV               =       G1N502A +      GHO                                    :  0.100E+01*SUN;
+{ 20411} G1H504m                     =       G3H400E +      GCH2O                                  : ARR( 0.200E+15,  3576., 0.0);
+{ 20412} GNN501m +GHO                =       G3N500t                                               : ARR( 0.458E-11,     0., 0.0);
+{ 20413} GNN501m +GNO3               =       G3N500t +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 20414} GNN501m+HV               =       G1N504s +      GNO2                                   :  0.100E+01*SUN;
+{ 20415} GNN501m+HV               =       G3N2000 +      G2N300A                                :  0.100E+01*SUN;
+{ 20416} GNN501m+HV               =       G1N503F +      GNO2                                   :  0.100E+01*SUN;
+{ 20417} GNN501m+HV               =       GND4004 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 20418} G3N500t +GHO2               =  0.800GGN500y + 0.200GAN5016 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 20419} G3N500t +GNO                =       GND4004 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 20420} G3N500t +GNO2               =       GPN501I                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 20421} G3N500t +GNO3               =       GND4004 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 20422} G3N500t +MEPERO             =  0.685GND4004 + 0.315GAN5016 + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 20423} G3N500t +PERO1              =  0.800GND4004 + 0.200GAN5016 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 20424} G3N500t +PERO2              =  0.750GND4004 + 0.250GAN5016 + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 20425} G3N500t +PERO3              =  0.800GND4004 + 0.200GAN5016 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 20426} G3N500t +PERO5              =  0.650GND4004 + 0.350GAN5016 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 20427} G3N500t +PERO6              =  0.650GND4004 + 0.350GAN5016 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 20428} G3N500t +PERO9              =       GND4004 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 20429} G1N504s                     =       G3N400H +      GCH2O                                  : ARR( 0.200E+15,  3576., 0.0);
+{ 20430} GHN502g +GHO                =       GNN501k +      GHO                                    : ARR( 0.524E-11,     0., 0.0);
+{ 20431} GHN502g +GHO                =       G2N5024                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 20432} GHN502g+HV               =       G1H501u +      GNO2                                   :  0.100E+01*SUN;
+{ 20433} GHN502g+HV               =       G1N502B +      GHO                                    :  0.100E+01*SUN;
+{ 20434} GHN502g+HV               =       G3H4008 +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{ 20435} GHN502g+HV               =       G1H504n +      GNO2                                   :  0.100E+01*SUN;
+{ 20436} G1H504n                     =       G3H4008 +      GCH2O                                  : ARR( 0.200E+15,  3603., 0.0);
+{ 20437} GHN502h +GHO                =       GNN501o +      GHO                                    : ARR( 0.837E-11,     0., 0.0);
+{ 20438} GHN502h +GHO                =       GHN504i +      GHO2                                   : ARR( 0.209E-11,     0., 0.0);
+{ 20439} GHN502h +GHO                =       G2N5025                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 20440} GHN502h+HV               =       G1H504o +      GNO2                                   :  0.100E+01*SUN;
+{ 20441} GHN502h+HV               =       G1H504p +      GNO2                                   :  0.100E+01*SUN;
+{ 20442} GHN502h+HV               =       G1N502D +      GHO                                    :  0.100E+01*SUN;
+{ 20443} GHN502h+HV               =       G1H504q +      GNO2                                   :  0.100E+01*SUN;
+{ 20444} G1H504o                     =       GHN502j +      GHO2                                   : ARR( 0.800E+11,  2744., 0.0);
+{ 20445} G1H504p                     =       GND3002 +      GND2000 +      GHO                     : ARR( 0.200E+15,  4693., 0.0);
+{ 20446} G1H504q                     =       GHN400v +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 20447} GNN501n +GHO                =       GNN502h +      GHO2                                   : ARR( 0.224E-11,     0., 0.0);
+{ 20448} GNN501n +GHO                =       GNN501o +      GHO2                                   : ARR( 0.224E-11,     0., 0.0);
+{ 20449} GNN501n+HV               =       G1N504t +      GNO2                                   :  0.100E+01*SUN;
+{ 20450} GNN501n+HV               =       G1N504u +      GNO2                                   :  0.100E+01*SUN;
+{ 20451} GNN501n+HV               =       G1N504v +      GNO2                                   :  0.100E+01*SUN;
+{ 20452} G1N504t                     =       GNN400T +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 20453} G1N504u                     =       GND3002 +      GND2000 +      GHO2                    : ARR( 0.200E+15,  3484., 0.0);
+{ 20454} G1N504v                     =       GNN501r +      GHO2                                   : ARR( 0.800E+11,  2744., 0.0);
+{ 20455} GNN501o +GHO                =       GNN5032 +      GNO2                                   : ARR( 0.148E-12,     0., 0.0);
+{ 20456} GNN501o +GHO                =       GNN502i +      GHO2                                   : ARR( 0.128E-11,     0., 0.0);
+{ 20457} GNN501o +GHO                =       G1N504E                                               : ARR( 0.213E-17,    85., 2.0);
+{ 20458} GNN501o+HV               =       G1N504w +      GNO2                                   :  0.100E+01*SUN;
+{ 20459} GNN501o+HV               =       G3N3002 +      GND2000 +      GNO2                    :  0.100E+01*SUN;
+{ 20460} GNN501o+HV               =       G1N503M +      GNO2                                   :  0.100E+01*SUN;
+{ 20461} GNN501o+HV               =       G1N504x +      GNO2                                   :  0.100E+01*SUN;
+{ 20462} G1N504w                     =       GNN400a +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4576., 0.0);
+{ 20463} G1N504x +OXYGEN             =       GNN5033 +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 20464} G1N504x                     =       GNN501s +      GHO2                                   : ARR( 0.800E+11,  4727., 0.0);
+{ 20465} G1N504x                     =       GND400G +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7323., 0.0);
+{ 20466} GHN502i +GHO                =       GHN504n +      GHO2                                   : ARR( 0.828E-12,     0., 0.0);
+{ 20467} GHN502i +GHO                =       GNN501q +      GHO                                    : ARR( 0.849E-11,     0., 0.0);
+{ 20468} GHN502i +GHO                =       GHN502j +      GHO2                                   : ARR( 0.212E-11,     0., 0.0);
+{ 20469} GHN502i +GHO                =       G2N5026                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 20470} GHN502i+HV               =       G1H504r +      GNO2                                   :  0.100E+01*SUN;
+{ 20471} GHN502i+HV               =       G1N502F +      GHO                                    :  0.100E+01*SUN;
+{ 20472} GHN502i+HV               =       G1H504s +      GNO2                                   :  0.100E+01*SUN;
+{ 20473} G1H504r                     =       GCH2O   +      GHN400T +      GHO2                    : ARR( 0.200E+15,  5296., 0.0);
+{ 20474} G1H504r                     =       GDO2000 +      GND3002 +      GHO                     : ARR( 0.200E+15,  4695., 0.0);
+{ 20475} G1H504s                     =       GHN400h +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 20476} GNN501p +GHO                =       GNN5034 +      GHO2                                   : ARR( 0.900E-12,     0., 0.0);
+{ 20477} GNN501p +GHO                =       GNN501q +      GHO2                                   : ARR( 0.231E-11,     0., 0.0);
+{ 20478} GNN501p +GHO                =       GNN501r +      GHO2                                   : ARR( 0.231E-11,     0., 0.0);
+{ 20479} GNN501p+HV               =       G1N503C +      GNO2                                   :  0.100E+01*SUN;
+{ 20480} GNN501p+HV               =       G1N504y +      GNO2                                   :  0.100E+01*SUN;
+{ 20481} G1N504y                     =       GND4009 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 20482} GNN501q +GHO                =       GNN5033 +      GHO2                                   : ARR( 0.827E-12,     0., 0.0);
+{ 20483} GNN501q +GHO                =       GNN501s +      GHO2                                   : ARR( 0.129E-11,     0., 0.0);
+{ 20484} GNN501q +GHO                =       GND501H +      GNO2                                   : ARR( 0.150E-12,     0., 0.0);
+{ 20485} GNN501q +GHO                =       G1N504x                                               : ARR( 0.216E-17,    85., 2.0);
+{ 20486} GNN501q +GHO                =       G1N504W                                               : ARR( 0.216E-17,    85., 2.0);
+{ 20487} GNN501q+HV               =       G1N503D +      GNO2                                   :  0.100E+01*SUN;
+{ 20488} GNN501q+HV               =       G3N3004 +      GND2000 +      GHO2                    :  0.100E+01*SUN;
+{ 20489} GNN501q+HV               =       G1N504z +      GNO2                                   :  0.100E+01*SUN;
+{ 20490} G1N504z                     =       GND400K +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4576., 0.0);
+{ 20491} GGN500E +GHO                =       GGN500y +      GHO2                                   : ARR( 0.226E-11,     0., 0.0);
+{ 20492} GGN500E +GHO                =       G3N500A                                               : ARR( 0.208E-11,  -190., 0.0);
+{ 20493} GGN500E+HV               =       G1G500z +      GNO2                                   :  0.100E+01*SUN;
+{ 20494} GGN500E+HV               =       G1G500B +      GNO2                                   :  0.100E+01*SUN;
+{ 20495} GGN500E+HV               =       GND4003 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 20496} G1G500z                     =       GGN400M +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4799., 0.0);
+{ 20497} GAN500G +GHO                =       G2A5019                                               : ARR( 0.306E-12,     0., 0.0);
+{ 20498} GAN500G +GHO                =       GAN5016 +      GHO2                                   : ARR( 0.223E-11,     0., 0.0);
+{ 20499} GAN500G +GHO                =       GND4003 +      GNO2    +      GCO2                    : ARR( 0.563E-12,     0., 0.0);
+{ 20500} GAN500G+HV               =       G1A500B +      GNO2                                   :  0.100E+01*SUN;
+{ 20501} GAN500G+HV               =       G1A501I +      GNO2                                   :  0.100E+01*SUN;
+{ 20502} G2A5019 +GNO                =       G1A501J +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 20503} G2A5019 +GNO                =       GAN501J                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 20504} G2A5019 +GHO2               =       GAH501P                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 20505} G2A5019 +GNO3               =       G1A501J +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 20506} G2A5019 +MEPERO             =  0.340G1A501J + 0.330GAN501K + 0.330GAN501L                 : ARR( 0.565E-13,  -845., 0.0);
+{ 20507} G2A5019 +PERO1              =  0.460G1A501J + 0.270GAN501K + 0.270GAN501L                 : ARR( 0.434E-13,  -900., 0.0);
+{ 20508} G2A5019 +PERO2              =  0.400G1A501J + 0.300GAN501K + 0.300GAN501L                 : ARR( 0.162E-13, -1400., 0.0);
+{ 20509} G2A5019 +PERO3              =  0.460G1A501J + 0.270GAN501K + 0.270GAN501L                 : ARR( 0.488E-13, -1250., 0.0);
+{ 20510} G2A5019 +PERO5              =  0.460G1A501J + 0.270GAN501K + 0.270GAN501L                 : ARR( 0.183E-11,   450., 0.0);
+{ 20511} G2A5019 +PERO6              =  0.300G1A501J + 0.350GAN501K + 0.350GAN501L                 : ARR( 0.168E-13, -1300., 0.0);
+{ 20512} G2A5019 +PERO9              =  0.650G1A501J + 0.350GAN501L                                : ARR( 0.100E-10,     0., 0.0);
+{ 20513} G1A501I                     =       GAN400N +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4799., 0.0);
+{ 20514} G1A501J                     =       GAN3006 +      GND2000 +      GHO2                    : ARR( 0.200E+15,  2745., 0.0);
+{ 20515} GPN500G                     =       G3N500A +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 20516} GPN500G +GHO                =       GPN501I +      GHO2                                   : ARR( 0.216E-11,     0., 0.0);
+{ 20517} GPN500G +GHO                =       G2P501B                                               : ARR( 0.296E-12,     0., 0.0);
+{ 20518} GPN500G +GHO                =       G1P5015                                               : ARR( 0.220E-17,    85., 2.0);
+{ 20519} GPN500G+HV               =       G1P501K +      GNO2                                   :  0.100E+01*SUN;
+{ 20520} GPN500G+HV               =       G1P500C +      GNO2                                   :  0.100E+01*SUN;
+{ 20521} GPN500G+HV               =       G3N500A +      GNO2                                   :  0.100E+01*SUN;
+{ 20522} G2P501B +GNO                =       G1P501L +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 20523} G2P501B +GNO                =       GPN501N                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 20524} G2P501B +GHO2               =       GPH501R                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 20525} G2P501B +GNO3               =       G1P501L +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 20526} G2P501B +MEPERO             =  0.340G1P501L + 0.330GPN501O + 0.330GPN501P                 : ARR( 0.565E-13,  -845., 0.0);
+{ 20527} G2P501B +PERO1              =  0.460G1P501L + 0.270GPN501O + 0.270GPN501P                 : ARR( 0.434E-13,  -900., 0.0);
+{ 20528} G2P501B +PERO2              =  0.400G1P501L + 0.300GPN501O + 0.300GPN501P                 : ARR( 0.162E-13, -1400., 0.0);
+{ 20529} G2P501B +PERO3              =  0.460G1P501L + 0.270GPN501O + 0.270GPN501P                 : ARR( 0.488E-13, -1250., 0.0);
+{ 20530} G2P501B +PERO5              =  0.460G1P501L + 0.270GPN501O + 0.270GPN501P                 : ARR( 0.183E-11,   450., 0.0);
+{ 20531} G2P501B +PERO6              =  0.300G1P501L + 0.350GPN501O + 0.350GPN501P                 : ARR( 0.168E-13, -1300., 0.0);
+{ 20532} G2P501B +PERO9              =  0.650G1P501L + 0.350GPN501P                                : ARR( 0.100E-10,     0., 0.0);
+{ 20533} G1P501K                     =       GPN400N +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4799., 0.0);
+{ 20534} G1P501L                     =       GND2000 +      GPN3006 +      GHO2                    : ARR( 0.200E+15,  2745., 0.0);
+{ 20535} GHN502j +GHO                =       GHN505U +      GHO2                                   : ARR( 0.850E-12,     0., 0.0);
+{ 20536} GHN502j +GHO                =       GNN501s +      GHO                                    : ARR( 0.531E-11,     0., 0.0);
+{ 20537} GHN502j +GHO                =       G2N5027                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 20538} GHN502j+HV               =       G1H502G +      GNO2                                   :  0.100E+01*SUN;
+{ 20539} GHN502j+HV               =       G1N502I +      GHO                                    :  0.100E+01*SUN;
+{ 20540} GHN502j+HV               =       G3H400G +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{ 20541} GHN502j+HV               =       G1H504t +      GNO2                                   :  0.100E+01*SUN;
+{ 20542} G3H400G +GHO2               =  0.800GGH400K + 0.200GAH400C + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 20543} G3H400G +GNO                =       GND3004 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 20544} G3H400G +GNO2               =       GPH400D                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 20545} G3H400G +GNO3               =       GND3004 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 20546} G3H400G +MEPERO             =  0.685GND3004 + 0.315GAH400C + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 20547} G3H400G +PERO1              =  0.800GND3004 + 0.200GAH400C + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 20548} G3H400G +PERO2              =  0.750GND3004 + 0.250GAH400C + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 20549} G3H400G +PERO3              =  0.800GND3004 + 0.200GAH400C + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 20550} G3H400G +PERO5              =  0.650GND3004 + 0.350GAH400C + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 20551} G3H400G +PERO6              =  0.650GND3004 + 0.350GAH400C + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 20552} G3H400G +PERO9              =       GND3004 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 20553} G1H504t                     =       G3H400G +      GCH2O                                  : ARR( 0.200E+15,  3603., 0.0);
+{ 20554} GNN501r +GHO                =       GNN5035 +      GHO2                                   : ARR( 0.812E-12,     0., 0.0);
+{ 20555} GNN501r +GHO                =       GNK500y +      GNO2                                   : ARR( 0.377E-12,     0., 0.0);
+{ 20556} GNN501r +GHO                =       GNN501s +      GHO2                                   : ARR( 0.127E-11,     0., 0.0);
+{ 20557} GNN501r +GHO                =       G1N5051                                               : ARR( 0.212E-17,    85., 2.0);
+{ 20558} GNN501r +GHO                =       G1N502I                                               : ARR( 0.212E-17,    85., 2.0);
+{ 20559} GNN501r+HV               =       G1N503H +      GNO2                                   :  0.100E+01*SUN;
+{ 20560} GNN501r+HV               =       G3N400E +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{ 20561} GNN501r+HV               =       G1N5052 +      GNO2                                   :  0.100E+01*SUN;
+{ 20562} G1N5051 +OXYGEN             =       GNN5035 +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 20563} G1N5051                     =       GND400E +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7175., 0.0);
+{ 20564} G1N5052                     =       G3N400E +      GCH2O                                  : ARR( 0.200E+15,  3603., 0.0);
+{ 20565} GNN501s +GHO                =       GNN5031 +      GHO2                                   : ARR( 0.826E-12,     0., 0.0);
+{ 20566} GNN501s +GHO                =       GNK500z +      GNO2                                   : ARR( 0.738E-13,     0., 0.0);
+{ 20567} GNN501s +GHO                =       G1N504p                                               : ARR( 0.216E-17,    85., 2.0);
+{ 20568} GNN501s+HV               =       G1N503I +      GNO2                                   :  0.100E+01*SUN;
+{ 20569} GNN501s+HV               =       G3N3004 +      G3N2000                                :  0.100E+01*SUN;
+{ 20570} GNN501s+HV               =       G1N5041 +      GNO2                                   :  0.100E+01*SUN;
+{ 20571} GNN501t +GHO                =       G3N4006 +      GCO                                    : ARR( 0.129E-10,     0., 0.0);
+{ 20572} GNN501t +GNO3               =       G3N4006 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 20573} GNN501t+HV               =       G1N5053 +      GNO2                                   :  0.100E+01*SUN;
+{ 20574} GNN501t+HV               =       G1N502J +      GNO2                                   :  0.100E+01*SUN;
+{ 20575} GNN501t+HV               =       G3N4006 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 20576} GNN501t+HV               =       GNN4001 +      GCO                                    :  0.100E+01*SUN;
+{ 20577} GNN501t+HV               =       GNN3001 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 20578} G1N5053 +OXYGEN             =       GND5014 +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 20579} G1N5053                     =       GDD4002 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7175., 0.0);
+{ 20580} GHN502k +GHO                =       GND500g +      GHO                                    : ARR( 0.267E-10,     0., 0.0);
+{ 20581} GHN502k +GHO                =       G3H4002 +      GCO                                    : ARR( 0.129E-10,     0., 0.0);
+{ 20582} GHN502k +GHO                =       G2N5028                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 20583} GHN502k +GNO3               =       G3H4002 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 20584} GHN502k+HV               =       G1H504u +      GNO2                                   :  0.100E+01*SUN;
+{ 20585} GHN502k+HV               =       G1N502J +      GHO                                    :  0.100E+01*SUN;
+{ 20586} GHN502k+HV               =       G3H4002 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 20587} GHN502k+HV               =       GHN4001 +      GCO                                    :  0.100E+01*SUN;
+{ 20588} GHN502k+HV               =       GHN3002 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 20589} G1H504u +OXYGEN             =       GHD5018 +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 20590} G1H504u                     =       GDD4002 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5636., 0.0);
+{ 20591} GND500g +GHO                =       G3N4007 +      GCO                                    : ARR( 0.132E-10,     0., 0.0);
+{ 20592} GND500g +GNO3               =       G3N4007 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 20593} GND500g+HV               =       G1D500q +      GNO2                                   :  0.100E+01*SUN;
+{ 20594} GND500g+HV               =       G3N2000 +      G2D3002                                :  0.100E+01*SUN;
+{ 20595} GND500g+HV               =       G3N4007 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 20596} GND500g+HV               =       GND4004 +      GCO                                    :  0.100E+01*SUN;
+{ 20597} GND500g+HV               =       GNK3000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 20598} G1D500q                     =       G3D4003 +      GCH2O                                  : ARR( 0.200E+15,  3552., 0.0);
+{ 20599} GNN501u +GHO                =       G3N4005 +      GCO                                    : ARR( 0.128E-10,     0., 0.0);
+{ 20600} GNN501u +GNO3               =       G3N4005 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 20601} GNN501u+HV               =       G1N5054 +      GNO2                                   :  0.100E+01*SUN;
+{ 20602} GNN501u+HV               =       G1N502K +      GNO2                                   :  0.100E+01*SUN;
+{ 20603} GNN501u+HV               =       G3N4005 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 20604} GNN501u+HV               =       GNN4008 +      GCO                                    :  0.100E+01*SUN;
+{ 20605} GNN501u+HV               =       GNN3000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 20606} G1N5054 +OXYGEN             =       GND501C +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{ 20607} GHN502l +GHO                =       GND500i +      GHO                                    : ARR( 0.257E-10,     0., 0.0);
+{ 20608} GHN502l +GHO                =       G3H400D +      GCO                                    : ARR( 0.130E-10,     0., 0.0);
+{ 20609} GHN502l +GHO                =       G2N5029                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 20610} GHN502l +GNO3               =       G3H400D +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 20611} GHN502l+HV               =       G1H504v +      GNO2                                   :  0.100E+01*SUN;
+{ 20612} GHN502l+HV               =       G1N502K +      GHO                                    :  0.100E+01*SUN;
+{ 20613} GHN502l+HV               =       G3H400D +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 20614} GHN502l+HV               =       GHN400J +      GCO                                    :  0.100E+01*SUN;
+{ 20615} GHN502l+HV               =       GHN3000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 20616} G1H504v +OXYGEN             =       GHD5013 +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{ 20617} GND500h +GHO                =       GND500i +      GHO2                                   : ARR( 0.664E-11,     0., 0.0);
+{ 20618} GND500h +GHO                =       G3N400G +      GCO                                    : ARR( 0.134E-10,     0., 0.0);
+{ 20619} GND500h +GNO3               =       G3N400G +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 20620} GND500h+HV               =       G1D500r +      GNO2                                   :  0.100E+01*SUN;
+{ 20621} GND500h+HV               =       G3N400G +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 20622} GND500h+HV               =       GND400C +      GCO                                    :  0.100E+01*SUN;
+{ 20623} GND500h+HV               =       GNO3000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 20624} G1D500r +OXYGEN             =       GDD5009 +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{ 20625} GND500i +GHO                =       G3N3000 + 2.000GCO                                    : ARR( 0.130E-10,     0., 0.0);
+{ 20626} GND500i +GNO3               =       G3N3000 +      GHNO3   + 2.000GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 20627} GND500i+HV               =       G1D500s +      GNO2                                   :  0.100E+01*SUN;
+{ 20628} GND500i+HV               =       G3N3000 +      G3D2000                                :  0.100E+01*SUN;
+{ 20629} GND500i+HV               =       G3N3000 +      GCO     +      GCO     +      GHO2     :  0.100E+01*SUN;
+{ 20630} GND500i+HV               =       GND400B +      GCO                                    :  0.100E+01*SUN;
+{ 20631} GND500i+HV               =       GND3000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 20632} G1D500s +OXYGEN             =       GDD500A +      GHO2                                   : ARR( 0.600E-13,   398., 0.0);
+{ 20633} GDD3002 +GHO                =       G3D2000 +      GCO                                    : ARR( 0.253E-10,     0., 0.0);
+{ 20634} GDD3002 +GNO3               =       G3D2000 +      GHNO3   +      GCO                     : ARR( 0.480E-14,     0., 0.0);
+{ 20635} GDD3002+HV               =       GCO     +      G3D2000 +      GHO2                    :  0.200E+01*SUN;
+{ 20636} GDD3002+HV               =       GDD2000 +      GCO                                    :  0.200E+01*SUN;
+{ 20637} GDD3002+HV               =       GCH2O   +      GCO     +      GCO                     :  0.200E+01*SUN;
+{ 20638} GNN501v +GHO                =       G2N504J                                               : ARR( 0.106E-12,     0., 0.0);
+{ 20639} GNN501v +GHO                =       GNN501z +      GNO2                                   : ARR( 0.149E-13,     0., 0.0);
+{ 20640} GNN501v +GHO                =       GNN502Y +      GNO2                                   : ARR( 0.954E-14,     0., 0.0);
+{ 20641} GNN501v+HV               =       G3K2000 +      GNN3005 +      GNO2                    :  0.100E+01*SUN;
+{ 20642} GNN501v+HV               =       GNK3000 +      GDD2000 + 2.000GNO2                    :  0.100E+01*SUN;
+{ 20643} GNN501v+HV               =       G1N502R +      GNO2                                   :  0.100E+01*SUN;
+{ 20644} GNN501v+HV               =       G1N502M +      GNO2                                   :  0.100E+01*SUN;
+{ 20645} GNN501v+HV               =       G1N503a +      GNO2                                   :  0.100E+01*SUN;
+{ 20646} G2N504J +GNO                =       G1N5055 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 20647} G2N504J +GNO                =       GNN502g                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 20648} G2N504J +GHO2               =       GHN505W                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 20649} G2N504J +GNO3               =       G1N5055 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 20650} G2N504J +MEPERO             =  0.480G1N5055 + 0.260GNN5029 + 0.260GNN5036                 : ARR( 0.164E-12,  -795., 0.0);
+{ 20651} G2N504J +PERO1              =  0.600G1N5055 + 0.200GNN5029 + 0.200GNN5036                 : ARR( 0.126E-12,  -850., 0.0);
+{ 20652} G2N504J +PERO2              =  0.560G1N5055 + 0.220GNN5029 + 0.220GNN5036                 : ARR( 0.471E-13, -1350., 0.0);
+{ 20653} G2N504J +PERO3              =  0.600G1N5055 + 0.200GNN5029 + 0.200GNN5036                 : ARR( 0.142E-12, -1200., 0.0);
+{ 20654} G2N504J +PERO5              =  0.600G1N5055 + 0.200GNN5029 + 0.200GNN5036                 : ARR( 0.533E-11,   500., 0.0);
+{ 20655} G2N504J +PERO6              =  0.460G1N5055 + 0.270GNN5029 + 0.270GNN5036                 : ARR( 0.488E-13, -1250., 0.0);
+{ 20656} G2N504J +PERO9              =  0.800G1N5055 + 0.200GNN5036                                : ARR( 0.100E-10,     0., 0.0);
+{ 20657} G1N5055                     =       G3N400J +      GCH2O                                  : ARR( 0.200E+15,  3640., 0.0);
+{ 20658} G3N400J +GHO2               =  0.800GGN400N + 0.200GAN400Q + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 20659} G3N400J +GNO                =       GNN3005 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 20660} G3N400J +GNO2               =       GPN400R                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 20661} G3N400J +GNO3               =       GNN3005 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 20662} G3N400J +MEPERO             =  0.685GNN3005 + 0.315GAN400Q + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 20663} G3N400J +PERO1              =  0.800GNN3005 + 0.200GAN400Q + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 20664} G3N400J +PERO2              =  0.750GNN3005 + 0.250GAN400Q + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 20665} G3N400J +PERO3              =  0.800GNN3005 + 0.200GAN400Q + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 20666} G3N400J +PERO5              =  0.650GNN3005 + 0.350GAN400Q + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 20667} G3N400J +PERO6              =  0.650GNN3005 + 0.350GAN400Q + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 20668} G3N400J +PERO9              =       GNN3005 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 20669} GHN502m +GHO                =       GNN501x +      GHO                                    : ARR( 0.172E-11,     0., 0.0);
+{ 20670} GHN502m +GHO                =       G2N502B                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 20671} GHN502m+HV               =       G3K2000 +      GHN3007 +      GNO2                    :  0.100E+01*SUN;
+{ 20672} GHN502m+HV               =       GNK3000 +      GDD2000 +      GHO     +      GNO2     :  0.100E+01*SUN;
+{ 20673} GHN502m+HV               =       G1H504w +      GNO2                                   :  0.100E+01*SUN;
+{ 20674} GHN502m+HV               =       G1N502M +      GHO                                    :  0.100E+01*SUN;
+{ 20675} GHN502m+HV               =       G1H504x +      GNO2                                   :  0.100E+01*SUN;
+{ 20676} G1H504w                     =       G3K2000 +      GHN3007                                : ARR( 0.200E+15,  2923., 0.0);
+{ 20677} G1H504x +OXYGEN             =       GHN504e +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 20678} G1H504x                     =       GND4008 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5636., 0.0);
+{ 20679} GNN501w +GHO                =       G2N504K                                               : ARR( 0.102E-12,     0., 0.0);
+{ 20680} GNN501w +GHO                =       GNK500r +      GNO2                                   : ARR( 0.718E-13,     0., 0.0);
+{ 20681} GNN501w +GHO                =       GNN501x +      GHO2                                   : ARR( 0.412E-12,     0., 0.0);
+{ 20682} GNN501w +GHO                =       GND5017 +      GNO2                                   : ARR( 0.460E-13,     0., 0.0);
+{ 20683} GNN501w +GHO                =       G1N502M                                               : ARR( 0.210E-17,    85., 2.0);
+{ 20684} GNN501w+HV               =       G3K2000 +      GND3002 +      GNO2                    :  0.100E+01*SUN;
+{ 20685} GNN501w+HV               =       GNK3000 +      GND2000                                :  0.100E+01*SUN;
+{ 20686} GNN501w+HV               =       G1N502S +      GNO2                                   :  0.100E+01*SUN;
+{ 20687} GNN501w+HV               =       G1N5042 +      GNO2                                   :  0.100E+01*SUN;
+{ 20688} G2N504K +GNO                =       G1N5056 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 20689} G2N504K +GNO                =       GNN5021                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 20690} G2N504K +GHO2               =       GHN505X                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 20691} G2N504K +GNO3               =       G1N5056 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 20692} G2N504K +MEPERO             =  0.480G1N5056 + 0.260GNN5024 + 0.260GNN5037                 : ARR( 0.164E-12,  -795., 0.0);
+{ 20693} G2N504K +PERO1              =  0.600G1N5056 + 0.200GNN5024 + 0.200GNN5037                 : ARR( 0.126E-12,  -850., 0.0);
+{ 20694} G2N504K +PERO2              =  0.560G1N5056 + 0.220GNN5024 + 0.220GNN5037                 : ARR( 0.471E-13, -1350., 0.0);
+{ 20695} G2N504K +PERO3              =  0.600G1N5056 + 0.200GNN5024 + 0.200GNN5037                 : ARR( 0.142E-12, -1200., 0.0);
+{ 20696} G2N504K +PERO5              =  0.600G1N5056 + 0.200GNN5024 + 0.200GNN5037                 : ARR( 0.533E-11,   500., 0.0);
+{ 20697} G2N504K +PERO6              =  0.460G1N5056 + 0.270GNN5024 + 0.270GNN5037                 : ARR( 0.488E-13, -1250., 0.0);
+{ 20698} G2N504K +PERO9              =  0.800G1N5056 + 0.200GNN5037                                : ARR( 0.100E-10,     0., 0.0);
+{ 20699} G1N5056                     =       G3N400K +      GCH2O                                  : ARR( 0.200E+15,  3640., 0.0);
+{ 20700} G3N400K +GHO2               =  0.800GGN400B + 0.200GAN400B + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 20701} G3N400K +GNO                =       GND3002 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 20702} G3N400K +GNO2               =       GPN400B                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 20703} G3N400K +GNO3               =       GND3002 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 20704} G3N400K +MEPERO             =  0.685GND3002 + 0.315GAN400B + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 20705} G3N400K +PERO1              =  0.800GND3002 + 0.200GAN400B + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 20706} G3N400K +PERO2              =  0.750GND3002 + 0.250GAN400B + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 20707} G3N400K +PERO3              =  0.800GND3002 + 0.200GAN400B + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 20708} G3N400K +PERO5              =  0.650GND3002 + 0.350GAN400B + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 20709} G3N400K +PERO6              =  0.650GND3002 + 0.350GAN400B + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 20710} G3N400K +PERO9              =       GND3002 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 20711} GNN501x +GHO                =       G2N504L                                               : ARR( 0.102E-12,     0., 0.0);
+{ 20712} GNN501x +GHO                =       GNK500s +      GNO2                                   : ARR( 0.438E-13,     0., 0.0);
+{ 20713} GNN501x +GHO                =       GND5018 +      GNO2                                   : ARR( 0.280E-13,     0., 0.0);
+{ 20714} GNN501x+HV               =       G3K2000 +      GND3003 +      GNO2                    :  0.100E+01*SUN;
+{ 20715} GNN501x+HV               =       G1N502U +      GNO2                                   :  0.100E+01*SUN;
+{ 20716} GNN501x+HV               =       G3N400D +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{ 20717} GNN501x+HV               =       G1N5044 +      GNO2                                   :  0.100E+01*SUN;
+{ 20718} G2N504L +GNO                =       G1N5057 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 20719} G2N504L +GNO                =       GNN502m                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 20720} G2N504L +GHO2               =       GHN505Y                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 20721} G2N504L +GNO3               =       G1N5057 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 20722} G2N504L +MEPERO             =  0.480G1N5057 + 0.260GNN502F + 0.260GNN5038                 : ARR( 0.164E-12,  -795., 0.0);
+{ 20723} G2N504L +PERO1              =  0.600G1N5057 + 0.200GNN502F + 0.200GNN5038                 : ARR( 0.126E-12,  -850., 0.0);
+{ 20724} G2N504L +PERO2              =  0.560G1N5057 + 0.220GNN502F + 0.220GNN5038                 : ARR( 0.471E-13, -1350., 0.0);
+{ 20725} G2N504L +PERO3              =  0.600G1N5057 + 0.200GNN502F + 0.200GNN5038                 : ARR( 0.142E-12, -1200., 0.0);
+{ 20726} G2N504L +PERO5              =  0.600G1N5057 + 0.200GNN502F + 0.200GNN5038                 : ARR( 0.533E-11,   500., 0.0);
+{ 20727} G2N504L +PERO6              =  0.460G1N5057 + 0.270GNN502F + 0.270GNN5038                 : ARR( 0.488E-13, -1250., 0.0);
+{ 20728} G2N504L +PERO9              =  0.800G1N5057 + 0.200GNN5038                                : ARR( 0.100E-10,     0., 0.0);
+{ 20729} G1N5057                     =       G3N400L +      GCH2O                                  : ARR( 0.200E+15,  4694., 0.0);
+{ 20730} G3N400L +GHO2               =  0.800GGN400O + 0.200GAN400R + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 20731} G3N400L +GNO                =       GND3003 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 20732} G3N400L +GNO2               =       GPN400S                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 20733} G3N400L +GNO3               =       GND3003 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 20734} G3N400L +MEPERO             =  0.685GND3003 + 0.315GAN400R + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 20735} G3N400L +PERO1              =  0.800GND3003 + 0.200GAN400R + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 20736} G3N400L +PERO2              =  0.750GND3003 + 0.250GAN400R + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 20737} G3N400L +PERO3              =  0.800GND3003 + 0.200GAN400R + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 20738} G3N400L +PERO5              =  0.650GND3003 + 0.350GAN400R + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 20739} G3N400L +PERO6              =  0.650GND3003 + 0.350GAN400R + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 20740} G3N400L +PERO9              =       GND3003 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 20741} GGN4006 +GHO                =       G3N4005                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 20742} GGN4006+HV               =       G1G400G +      GNO2                                   :  0.100E+01*SUN;
+{ 20743} GGN4006+HV               =       G1G4003 +      GNO2                                   :  0.100E+01*SUN;
+{ 20744} GGN4006+HV               =       GND3000 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 20745} G1G400G +OXYGEN             =       GGN400M +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{ 20746} GAN4006 +GHO                =       GAN400A +      GNO2                                   : ARR( 0.531E-13,     0., 0.0);
+{ 20747} GAN4006 +GHO                =       G2A400K                                               : ARR( 0.565E-13,     0., 0.0);
+{ 20748} GAN4006 +GHO                =       GAN400N +      GNO2                                   : ARR( 0.460E-13,     0., 0.0);
+{ 20749} GAN4006 +GHO                =       GND3000 +      GNO2    +      GCO2                    : ARR( 0.520E-12,     0., 0.0);
+{ 20750} GAN4006+HV               =       G1A4002 +      GNO2                                   :  0.100E+01*SUN;
+{ 20751} GAN4006+HV               =       G1A400F +      GNO2                                   :  0.100E+01*SUN;
+{ 20752} G2A400K +GNO                =       G1A400M +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 20753} G2A400K +GNO                =       GAN400Q                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 20754} G2A400K +GHO2               =       GAH400N                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 20755} G2A400K +GNO3               =       G1A400M +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 20756} G2A400K +MEPERO             =  0.340G1A400M + 0.330GAN400B + 0.330GAN400R                 : ARR( 0.565E-13,  -845., 0.0);
+{ 20757} G2A400K +PERO1              =  0.460G1A400M + 0.270GAN400B + 0.270GAN400R                 : ARR( 0.434E-13,  -900., 0.0);
+{ 20758} G2A400K +PERO2              =  0.400G1A400M + 0.300GAN400B + 0.300GAN400R                 : ARR( 0.162E-13, -1400., 0.0);
+{ 20759} G2A400K +PERO3              =  0.460G1A400M + 0.270GAN400B + 0.270GAN400R                 : ARR( 0.488E-13, -1250., 0.0);
+{ 20760} G2A400K +PERO5              =  0.460G1A400M + 0.270GAN400B + 0.270GAN400R                 : ARR( 0.183E-11,   450., 0.0);
+{ 20761} G2A400K +PERO6              =  0.300G1A400M + 0.350GAN400B + 0.350GAN400R                 : ARR( 0.168E-13, -1300., 0.0);
+{ 20762} G2A400K +PERO9              =  0.650G1A400M + 0.350GAN400R                                : ARR( 0.100E-10,     0., 0.0);
+{ 20763} G1A400M                     =       GAD2000 +      GND2000 +      GNO2                    : ARR( 0.200E+15,  6734., 0.0);
+{ 20764} GPN4006                     =       G3N4005 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 20765} GPN4006 +GHO                =       GPN400N +      GNO2                                   : ARR( 0.460E-13,     0., 0.0);
+{ 20766} GPN4006 +GHO                =       G2P400M                                               : ARR( 0.565E-13,     0., 0.0);
+{ 20767} GPN4006 +GHO                =       GPN400A +      GNO2                                   : ARR( 0.718E-13,     0., 0.0);
+{ 20768} GPN4006+HV               =       G1P400F +      GNO2                                   :  0.100E+01*SUN;
+{ 20769} GPN4006+HV               =       G1P4003 +      GNO2                                   :  0.100E+01*SUN;
+{ 20770} GPN4006+HV               =       G3N4005 +      GNO2                                   :  0.100E+01*SUN;
+{ 20771} G2P400M +GNO                =       G1P400N +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 20772} G2P400M +GNO                =       GPN400R                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 20773} G2P400M +GHO2               =       GPH400N                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 20774} G2P400M +GNO3               =       G1P400N +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 20775} G2P400M +MEPERO             =  0.340G1P400N + 0.330GPN400B + 0.330GPN400S                 : ARR( 0.565E-13,  -845., 0.0);
+{ 20776} G2P400M +PERO1              =  0.460G1P400N + 0.270GPN400B + 0.270GPN400S                 : ARR( 0.434E-13,  -900., 0.0);
+{ 20777} G2P400M +PERO2              =  0.400G1P400N + 0.300GPN400B + 0.300GPN400S                 : ARR( 0.162E-13, -1400., 0.0);
+{ 20778} G2P400M +PERO3              =  0.460G1P400N + 0.270GPN400B + 0.270GPN400S                 : ARR( 0.488E-13, -1250., 0.0);
+{ 20779} G2P400M +PERO5              =  0.460G1P400N + 0.270GPN400B + 0.270GPN400S                 : ARR( 0.183E-11,   450., 0.0);
+{ 20780} G2P400M +PERO6              =  0.300G1P400N + 0.350GPN400B + 0.350GPN400S                 : ARR( 0.168E-13, -1300., 0.0);
+{ 20781} G2P400M +PERO9              =  0.650G1P400N + 0.350GPN400S                                : ARR( 0.100E-10,     0., 0.0);
+{ 20782} G1P400N                     =       GND2000 +      GPD2000 +      GNO2                    : ARR( 0.200E+15,  6734., 0.0);
+{ 20783} GNN501y +GHO                =       G2N504M                                               : ARR( 0.108E-12,     0., 0.0);
+{ 20784} GNN501y +GHO                =       GNN501z +      GHO2                                   : ARR( 0.133E-11,     0., 0.0);
+{ 20785} GNN501y +GHO                =       G1N502R                                               : ARR( 0.222E-17,    85., 2.0);
+{ 20786} GNN501y+HV               =       G3K2000 +      GNN3005 +      GHO2                    :  0.100E+01*SUN;
+{ 20787} GNN501y+HV               =       G1N502N +      GNO2                                   :  0.100E+01*SUN;
+{ 20788} GNN501y+HV               =       G1N5058 +      GNO2                                   :  0.100E+01*SUN;
+{ 20789} G2N504M +GNO                =       G1N5059 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 20790} G2N504M +GNO                =       GNN502h                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 20791} G2N504M +GHO2               =       GHN505Z                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 20792} G2N504M +GNO3               =       G1N5059 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 20793} G2N504M +MEPERO             =  0.480G1N5059 + 0.260GNN502O + 0.260GNN5039                 : ARR( 0.164E-12,  -795., 0.0);
+{ 20794} G2N504M +PERO1              =  0.600G1N5059 + 0.200GNN502O + 0.200GNN5039                 : ARR( 0.126E-12,  -850., 0.0);
+{ 20795} G2N504M +PERO2              =  0.560G1N5059 + 0.220GNN502O + 0.220GNN5039                 : ARR( 0.471E-13, -1350., 0.0);
+{ 20796} G2N504M +PERO3              =  0.600G1N5059 + 0.200GNN502O + 0.200GNN5039                 : ARR( 0.142E-12, -1200., 0.0);
+{ 20797} G2N504M +PERO5              =  0.600G1N5059 + 0.200GNN502O + 0.200GNN5039                 : ARR( 0.533E-11,   500., 0.0);
+{ 20798} G2N504M +PERO6              =  0.460G1N5059 + 0.270GNN502O + 0.270GNN5039                 : ARR( 0.488E-13, -1250., 0.0);
+{ 20799} G2N504M +PERO9              =  0.800G1N5059 + 0.200GNN5039                                : ARR( 0.100E-10,     0., 0.0);
+{ 20800} G1N5058 +OXYGEN             =       GND5015 +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 20801} G1N5058                     =       GDK4003 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7175., 0.0);
+{ 20802} G1N5059                     =       G3N400M +      GCH2O                                  : ARR( 0.200E+15,  3603., 0.0);
+{ 20803} G3N400M +GHO2               =  0.800GGN400P + 0.200GAN400S + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 20804} G3N400M +GNO                =       GNN3005 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 20805} G3N400M +GNO2               =       GPN400T                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 20806} G3N400M +GNO3               =       GNN3005 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 20807} G3N400M +MEPERO             =  0.685GNN3005 + 0.315GAN400S + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 20808} G3N400M +PERO1              =  0.800GNN3005 + 0.200GAN400S + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 20809} G3N400M +PERO2              =  0.750GNN3005 + 0.250GAN400S + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 20810} G3N400M +PERO3              =  0.800GNN3005 + 0.200GAN400S + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 20811} G3N400M +PERO5              =  0.650GNN3005 + 0.350GAN400S + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 20812} G3N400M +PERO6              =  0.650GNN3005 + 0.350GAN400S + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 20813} G3N400M +PERO9              =       GNN3005 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 20814} GHN502n +GHO                =       GHN502o +      GHO2                                   : ARR( 0.633E-11,     0., 0.0);
+{ 20815} GHN502n +GHO                =       GNK500q +      GHO                                    : ARR( 0.263E-10,     0., 0.0);
+{ 20816} GHN502n +GHO                =       G2N502C                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 20817} GHN502n+HV               =       G3K2000 +      GHN3007 +      GHO2                    :  0.100E+01*SUN;
+{ 20818} GHN502n+HV               =       G1N502N +      GHO                                    :  0.100E+01*SUN;
+{ 20819} GHN502n+HV               =       G1H504y +      GNO2                                   :  0.100E+01*SUN;
+{ 20820} G1H504y +OXYGEN             =       GHD500y +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 20821} G1H504y                     =       GDK4003 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5636., 0.0);
+{ 20822} GNK500p +GHO                =       GNK500r +      GHO2                                   : ARR( 0.649E-11,     0., 0.0);
+{ 20823} GNK500p +GHO                =       GNK500q +      GHO2                                   : ARR( 0.675E-11,     0., 0.0);
+{ 20824} GNK500p+HV               =       G3K2000 +      GND3002 +      GHO2                    :  0.100E+01*SUN;
+{ 20825} GNK500p+HV               =       G1K500u +      GNO2                                   :  0.100E+01*SUN;
+{ 20826} G1K500u                     =       GDK4003 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4427., 0.0);
+{ 20827} GNK500q +GHO                =       GNK500s +      GHO2                                   : ARR( 0.410E-11,     0., 0.0);
+{ 20828} GNK500q+HV               =       G3K2000 +      GND3003 +      GHO2                    :  0.100E+01*SUN;
+{ 20829} GNK500q+HV               =       G3K4009 +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{ 20830} GNK500q+HV               =       G1K500v +      GNO2                                   :  0.100E+01*SUN;
+{ 20831} G1K500v                     =       G3K4009 +      GCH2O                                  : ARR( 0.200E+15,  4349., 0.0);
+{ 20832} GNN501z +GHO                =       G2N504N                                               : ARR( 0.102E-12,     0., 0.0);
+{ 20833} GNN501z +GHO                =       GNK500s +      GNO2                                   : ARR( 0.144E-13,     0., 0.0);
+{ 20834} GNN501z +GHO                =       GND5011 +      GNO2                                   : ARR( 0.919E-14,     0., 0.0);
+{ 20835} GNN501z+HV               =       G3K2000 +      G3N3003                                :  0.100E+01*SUN;
+{ 20836} GNN501z+HV               =       G1N502P +      GNO2                                   :  0.100E+01*SUN;
+{ 20837} GNN501z+HV               =       G1N503d +      GNO2                                   :  0.100E+01*SUN;
+{ 20838} G2N504N +GNO                =       G1N505A +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 20839} G2N504N +GNO                =       GNN502i                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 20840} G2N504N +GHO2               =       GHN505a                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 20841} G2N504N +GNO3               =       G1N505A +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 20842} G2N504N +MEPERO             =  0.480G1N505A + 0.260GNN502P + 0.260GNN503A                 : ARR( 0.164E-12,  -795., 0.0);
+{ 20843} G2N504N +PERO1              =  0.600G1N505A + 0.200GNN502P + 0.200GNN503A                 : ARR( 0.126E-12,  -850., 0.0);
+{ 20844} G2N504N +PERO2              =  0.560G1N505A + 0.220GNN502P + 0.220GNN503A                 : ARR( 0.471E-13, -1350., 0.0);
+{ 20845} G2N504N +PERO3              =  0.600G1N505A + 0.200GNN502P + 0.200GNN503A                 : ARR( 0.142E-12, -1200., 0.0);
+{ 20846} G2N504N +PERO5              =  0.600G1N505A + 0.200GNN502P + 0.200GNN503A                 : ARR( 0.533E-11,   500., 0.0);
+{ 20847} G2N504N +PERO6              =  0.460G1N505A + 0.270GNN502P + 0.270GNN503A                 : ARR( 0.488E-13, -1250., 0.0);
+{ 20848} G2N504N +PERO9              =  0.800G1N505A + 0.200GNN503A                                : ARR( 0.100E-10,     0., 0.0);
+{ 20849} G1N505A                     =       G3N3003 +      GCH2O   +      GCO                     : ARR( 0.200E+15,  3897., 0.0);
+{ 20850} GHN502o +GHO                =       GNK500s +      GHO                                    : ARR( 0.517E-11,     0., 0.0);
+{ 20851} GHN502o +GHO                =       G2N502E                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 20852} GHN502o+HV               =       G3K2000 +      G3H3002                                :  0.100E+01*SUN;
+{ 20853} GHN502o+HV               =       G1N502P +      GHO                                    :  0.100E+01*SUN;
+{ 20854} GHN502o+HV               =       G1H504z +      GNO2                                   :  0.100E+01*SUN;
+{ 20855} G1H504z +OXYGEN             =       GHD500w +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 20856} G1H504z                     =       GDK4008 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5364., 0.0);
+{ 20857} GNK500r +GHO                =       G2N504O                                               : ARR( 0.102E-12,     0., 0.0);
+{ 20858} GNK500r +GHO                =       GNK500s +      GHO2                                   : ARR( 0.126E-11,     0., 0.0);
+{ 20859} GNK500r +GHO                =       GDK500R +      GNO2                                   : ARR( 0.146E-12,     0., 0.0);
+{ 20860} GNK500r +GHO                =       G1N502P                                               : ARR( 0.210E-17,    85., 2.0);
+{ 20861} GNK500r+HV               =       G3K2000 +      G3N3002                                :  0.100E+01*SUN;
+{ 20862} GNK500r+HV               =       G1K500p +      GNO2                                   :  0.100E+01*SUN;
+{ 20863} G2N504O +GNO                =       G1N505B +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 20864} G2N504O +GNO                =       GNN5023                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 20865} G2N504O +GHO2               =       GHN505b                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 20866} G2N504O +GNO3               =       G1N505B +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 20867} G2N504O +MEPERO             =  0.480G1N505B + 0.260GNK500u + 0.260GND501I                 : ARR( 0.164E-12,  -795., 0.0);
+{ 20868} G2N504O +PERO1              =  0.600G1N505B + 0.200GNK500u + 0.200GND501I                 : ARR( 0.126E-12,  -850., 0.0);
+{ 20869} G2N504O +PERO2              =  0.560G1N505B + 0.220GNK500u + 0.220GND501I                 : ARR( 0.471E-13, -1350., 0.0);
+{ 20870} G2N504O +PERO3              =  0.600G1N505B + 0.200GNK500u + 0.200GND501I                 : ARR( 0.142E-12, -1200., 0.0);
+{ 20871} G2N504O +PERO5              =  0.600G1N505B + 0.200GNK500u + 0.200GND501I                 : ARR( 0.533E-11,   500., 0.0);
+{ 20872} G2N504O +PERO6              =  0.460G1N505B + 0.270GNK500u + 0.270GND501I                 : ARR( 0.488E-13, -1250., 0.0);
+{ 20873} G2N504O +PERO9              =  0.800G1N505B + 0.200GND501I                                : ARR( 0.100E-10,     0., 0.0);
+{ 20874} G1N505B                     =       G3N3002 +      GCH2O   +      GCO                     : ARR( 0.200E+15,  3897., 0.0);
+{ 20875} GNK500s +GHO                =       G2N504P                                               : ARR( 0.102E-12,     0., 0.0);
+{ 20876} GNK500s +GHO                =       GDK500W +      GNO2                                   : ARR( 0.280E-13,     0., 0.0);
+{ 20877} GNK500s+HV               =       G3K2000 +      G3N2000 +      GCO                     :  0.100E+01*SUN;
+{ 20878} GNK500s+HV               =       G3K2000 +      G3N2000 +      GCO                     :  0.100E+01*SUN;
+{ 20879} GNK500s+HV               =       G1K500q +      GNO2                                   :  0.100E+01*SUN;
+{ 20880} G2N504P +GNO                =       G1N505C +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 20881} G2N504P +GNO                =       GNN502o                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 20882} G2N504P +GHO2               =       GHN505c                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 20883} G2N504P +GNO3               =       G1N505C +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 20884} G2N504P +MEPERO             =  0.480G1N505C + 0.260GNK500z + 0.260GND501J                 : ARR( 0.164E-12,  -795., 0.0);
+{ 20885} G2N504P +PERO1              =  0.600G1N505C + 0.200GNK500z + 0.200GND501J                 : ARR( 0.126E-12,  -850., 0.0);
+{ 20886} G2N504P +PERO2              =  0.560G1N505C + 0.220GNK500z + 0.220GND501J                 : ARR( 0.471E-13, -1350., 0.0);
+{ 20887} G2N504P +PERO3              =  0.600G1N505C + 0.200GNK500z + 0.200GND501J                 : ARR( 0.142E-12, -1200., 0.0);
+{ 20888} G2N504P +PERO5              =  0.600G1N505C + 0.200GNK500z + 0.200GND501J                 : ARR( 0.533E-11,   500., 0.0);
+{ 20889} G2N504P +PERO6              =  0.460G1N505C + 0.270GNK500z + 0.270GND501J                 : ARR( 0.488E-13, -1250., 0.0);
+{ 20890} G2N504P +PERO9              =  0.800G1N505C + 0.200GND501J                                : ARR( 0.100E-10,     0., 0.0);
+{ 20891} G1N505C                     =       G3N2000 +      GCH2O   + 2.000GCO                     : ARR( 0.200E+15,  3862., 0.0);
+{ 20892} GHN502p +GHO                =       GNN501z +      GHO                                    : ARR( 0.513E-11,     0., 0.0);
+{ 20893} GHN502p +GHO                =       G2N502G                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 20894} GHN502p+HV               =       G3K2000 +      GNN3005 +      GHO                     :  0.100E+01*SUN;
+{ 20895} GHN502p+HV               =       G1N502R +      GHO                                    :  0.100E+01*SUN;
+{ 20896} GHN502p+HV               =       G1H5051 +      GNO2                                   :  0.100E+01*SUN;
+{ 20897} GHN502p+HV               =       G1H5052 +      GNO2                                   :  0.100E+01*SUN;
+{ 20898} G1H5051                     =       GDK3000 +      GND2000 +      GHO                     : ARR( 0.200E+15,  4974., 0.0);
+{ 20899} G1H5052 +OXYGEN             =       GHN504X +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 20900} G1H5052                     =       GHD4007 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7175., 0.0);
+{ 20901} GGN4007 +GHO                =       G3N4006                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 20902} GGN4007+HV               =       G1G400H +      GNO2                                   :  0.100E+01*SUN;
+{ 20903} GGN4007+HV               =       G1G4002 +      GNO2                                   :  0.100E+01*SUN;
+{ 20904} GGN4007+HV               =       G2N3004 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 20905} G1G400H +OXYGEN             =       GGN400I +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 20906} G1G400H                     =       GGD3000 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7175., 0.0);
+{ 20907} GAN4007 +GHO                =       G2A400L                                               : ARR( 0.134E-12,     0., 0.0);
+{ 20908} GAN4007 +GHO                =       G2N3004 +      GCO2                                   : ARR( 0.546E-12,     0., 0.0);
+{ 20909} GAN4007+HV               =       G1A4003 +      GNO2                                   :  0.100E+01*SUN;
+{ 20910} GAN4007+HV               =       G1A400B +      GNO2                                   :  0.100E+01*SUN;
+{ 20911} G2A400L +GNO                =       G1A400N +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 20912} G2A400L +GNO                =       GAN400Q                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 20913} G2A400L +GHO2               =       GAH400O                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 20914} G2A400L +GNO3               =       G1A400N +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 20915} G2A400L +MEPERO             =  0.340G1A400N + 0.330GAN400S + 0.330GAN400T                 : ARR( 0.565E-13,  -845., 0.0);
+{ 20916} G2A400L +PERO1              =  0.460G1A400N + 0.270GAN400S + 0.270GAN400T                 : ARR( 0.434E-13,  -900., 0.0);
+{ 20917} G2A400L +PERO2              =  0.400G1A400N + 0.300GAN400S + 0.300GAN400T                 : ARR( 0.162E-13, -1400., 0.0);
+{ 20918} G2A400L +PERO3              =  0.460G1A400N + 0.270GAN400S + 0.270GAN400T                 : ARR( 0.488E-13, -1250., 0.0);
+{ 20919} G2A400L +PERO5              =  0.460G1A400N + 0.270GAN400S + 0.270GAN400T                 : ARR( 0.183E-11,   450., 0.0);
+{ 20920} G2A400L +PERO6              =  0.300G1A400N + 0.350GAN400S + 0.350GAN400T                 : ARR( 0.168E-13, -1300., 0.0);
+{ 20921} G2A400L +PERO9              =  0.650G1A400N + 0.350GAN400T                                : ARR( 0.100E-10,     0., 0.0);
+{ 20922} G1A400N                     =       GCO     +      GNN3005 +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 20923} GPN4007                     =       G3N4006 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 20924} GPN4007 +GHO                =       GPN4008 +      GNO2                                   : ARR( 0.247E-13,     0., 0.0);
+{ 20925} GPN4007 +GHO                =       G2P400N                                               : ARR( 0.180E-12,     0., 0.0);
+{ 20926} GPN4007+HV               =       G1P400A +      GNO2                                   :  0.100E+01*SUN;
+{ 20927} GPN4007+HV               =       G1P4002 +      GNO2                                   :  0.100E+01*SUN;
+{ 20928} GPN4007+HV               =       G3N4006 +      GNO2                                   :  0.100E+01*SUN;
+{ 20929} G2P400N +GNO                =       G1P400O +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 20930} G2P400N +GNO                =       GPN400R                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 20931} G2P400N +GHO2               =       GPH400O                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 20932} G2P400N +GNO3               =       G1P400O +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 20933} G2P400N +MEPERO             =  0.340G1P400O + 0.330GPN400T + 0.330GPN400U                 : ARR( 0.565E-13,  -845., 0.0);
+{ 20934} G2P400N +PERO1              =  0.460G1P400O + 0.270GPN400T + 0.270GPN400U                 : ARR( 0.434E-13,  -900., 0.0);
+{ 20935} G2P400N +PERO2              =  0.400G1P400O + 0.300GPN400T + 0.300GPN400U                 : ARR( 0.162E-13, -1400., 0.0);
+{ 20936} G2P400N +PERO3              =  0.460G1P400O + 0.270GPN400T + 0.270GPN400U                 : ARR( 0.488E-13, -1250., 0.0);
+{ 20937} G2P400N +PERO5              =  0.460G1P400O + 0.270GPN400T + 0.270GPN400U                 : ARR( 0.183E-11,   450., 0.0);
+{ 20938} G2P400N +PERO6              =  0.300G1P400O + 0.350GPN400T + 0.350GPN400U                 : ARR( 0.168E-13, -1300., 0.0);
+{ 20939} G2P400N +PERO9              =  0.650G1P400O + 0.350GPN400U                                : ARR( 0.100E-10,     0., 0.0);
+{ 20940} G1P400O                     =       GNN3005 +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 20941} GHN502q +GHO                =       GNK500r +      GHO                                    : ARR( 0.253E-10,     0., 0.0);
+{ 20942} GHN502q +GHO                =       GHN502r +      GHO2                                   : ARR( 0.659E-11,     0., 0.0);
+{ 20943} GHN502q +GHO                =       G2N502H                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 20944} GHN502q+HV               =       G3K2000 +      GND3002 +      GHO                     :  0.100E+01*SUN;
+{ 20945} GHN502q+HV               =       G1N502S +      GHO                                    :  0.100E+01*SUN;
+{ 20946} GHN502q+HV               =       G1H5053 +      GNO2                                   :  0.100E+01*SUN;
+{ 20947} G1H5053                     =       GHD4007 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4427., 0.0);
+{ 20948} GHN502r +GHO                =       GNK500s +      GHO                                    : ARR( 0.154E-10,     0., 0.0);
+{ 20949} GHN502r +GHO                =       G2N502J                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 20950} GHN502r+HV               =       G3K2000 +      GND3003 +      GHO                     :  0.100E+01*SUN;
+{ 20951} GHN502r+HV               =       G1N502U +      GHO                                    :  0.100E+01*SUN;
+{ 20952} GHN502r+HV               =       G3H4009 +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{ 20953} GHN502r+HV               =       G1H5054 +      GNO2                                   :  0.100E+01*SUN;
+{ 20954} G1H5054                     =       G3H4009 +      GCH2O                                  : ARR( 0.200E+15,  4349., 0.0);
+{ 20955} GGN4008 +GHO                =       G2G400E                                               : ARR( 0.529E-12,     0., 0.0);
+{ 20956} GGN4008 +GHO                =       G3N4007                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 20957} GGN4008+HV               =       G1G400I +      GNO2                                   :  0.100E+01*SUN;
+{ 20958} GGN4008+HV               =       G3N2000 +      G2G2000                                :  0.100E+01*SUN;
+{ 20959} GGN4008+HV               =       G2N3005 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 20960} G2G400E +GNO                =       G1G400J +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 20961} G2G400E +GNO                =       GGN400O                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 20962} G2G400E +GHO2               =       GGH400L                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 20963} G2G400E +GNO3               =       G1G400J +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 20964} G2G400E +MEPERO             =  0.340G1G400J + 0.330GGN400Q + 0.330GGN400R                 : ARR( 0.565E-13,  -845., 0.0);
+{ 20965} G2G400E +PERO1              =  0.460G1G400J + 0.270GGN400Q + 0.270GGN400R                 : ARR( 0.434E-13,  -900., 0.0);
+{ 20966} G2G400E +PERO2              =  0.400G1G400J + 0.300GGN400Q + 0.300GGN400R                 : ARR( 0.162E-13, -1400., 0.0);
+{ 20967} G2G400E +PERO3              =  0.460G1G400J + 0.270GGN400Q + 0.270GGN400R                 : ARR( 0.488E-13, -1250., 0.0);
+{ 20968} G2G400E +PERO5              =  0.460G1G400J + 0.270GGN400Q + 0.270GGN400R                 : ARR( 0.183E-11,   450., 0.0);
+{ 20969} G2G400E +PERO6              =  0.300G1G400J + 0.350GGN400Q + 0.350GGN400R                 : ARR( 0.168E-13, -1300., 0.0);
+{ 20970} G2G400E +PERO9              =  0.650G1G400J + 0.350GGN400R                                : ARR( 0.100E-10,     0., 0.0);
+{ 20971} G1G400I                     =       G3G3000 +      GCH2O                                  : ARR( 0.200E+15,  3552., 0.0);
+{ 20972} G1G400J                     =       G3N2000 +      GGD2000                                : ARR( 0.200E+15,  5277., 0.0);
+{ 20973} GAN4008 +GHO                =       G2A400M                                               : ARR( 0.401E-12,     0., 0.0);
+{ 20974} GAN4008 +GHO                =       G2N3005 +      GCO2                                   : ARR( 0.536E-12,     0., 0.0);
+{ 20975} GAN4008+HV               =       G3A3000 +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{ 20976} GAN4008+HV               =       G1A400D +      GNO2                                   :  0.100E+01*SUN;
+{ 20977} G2A400M +GNO                =       G1A400O +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 20978} G2A400M +GNO                =       GAN400R                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 20979} G2A400M +GHO2               =       GAH400P                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 20980} G2A400M +GNO3               =       G1A400O +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 20981} G2A400M +MEPERO             =  0.340G1A400O + 0.330GAN400U + 0.330GAN400W                 : ARR( 0.565E-13,  -845., 0.0);
+{ 20982} G2A400M +PERO1              =  0.460G1A400O + 0.270GAN400U + 0.270GAN400W                 : ARR( 0.434E-13,  -900., 0.0);
+{ 20983} G2A400M +PERO2              =  0.400G1A400O + 0.300GAN400U + 0.300GAN400W                 : ARR( 0.162E-13, -1400., 0.0);
+{ 20984} G2A400M +PERO3              =  0.460G1A400O + 0.270GAN400U + 0.270GAN400W                 : ARR( 0.488E-13, -1250., 0.0);
+{ 20985} G2A400M +PERO5              =  0.460G1A400O + 0.270GAN400U + 0.270GAN400W                 : ARR( 0.183E-11,   450., 0.0);
+{ 20986} G2A400M +PERO6              =  0.300G1A400O + 0.350GAN400U + 0.350GAN400W                 : ARR( 0.168E-13, -1300., 0.0);
+{ 20987} G2A400M +PERO9              =  0.650G1A400O + 0.350GAN400W                                : ARR( 0.100E-10,     0., 0.0);
+{ 20988} G1A400O                     =       GAD2000 +      G3N2000                                : ARR( 0.200E+15,  5277., 0.0);
+{ 20989} GPN4008                     =       G3N4007 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 20990} GPN4008 +GHO                =       GPD4003 +      GNO2                                   : ARR( 0.280E-13,     0., 0.0);
+{ 20991} GPN4008 +GHO                =       G2P400O                                               : ARR( 0.525E-12,     0., 0.0);
+{ 20992} GPN4008+HV               =       G1P400D +      GNO2                                   :  0.100E+01*SUN;
+{ 20993} GPN4008+HV               =       G3N2000 +      G2P2000                                :  0.100E+01*SUN;
+{ 20994} GPN4008+HV               =       G3N4007 +      GNO2                                   :  0.100E+01*SUN;
+{ 20995} G2P400O +GNO                =       G1P400P +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 20996} G2P400O +GNO                =       GPN400S                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 20997} G2P400O +GHO2               =       GPH400P                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 20998} G2P400O +GNO3               =       G1P400P +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 20999} G2P400O +MEPERO             =  0.340G1P400P + 0.330GPN400W + 0.330GPN400X                 : ARR( 0.565E-13,  -845., 0.0);
+{ 21000} G2P400O +PERO1              =  0.460G1P400P + 0.270GPN400W + 0.270GPN400X                 : ARR( 0.434E-13,  -900., 0.0);
+{ 21001} G2P400O +PERO2              =  0.400G1P400P + 0.300GPN400W + 0.300GPN400X                 : ARR( 0.162E-13, -1400., 0.0);
+{ 21002} G2P400O +PERO3              =  0.460G1P400P + 0.270GPN400W + 0.270GPN400X                 : ARR( 0.488E-13, -1250., 0.0);
+{ 21003} G2P400O +PERO5              =  0.460G1P400P + 0.270GPN400W + 0.270GPN400X                 : ARR( 0.183E-11,   450., 0.0);
+{ 21004} G2P400O +PERO6              =  0.300G1P400P + 0.350GPN400W + 0.350GPN400X                 : ARR( 0.168E-13, -1300., 0.0);
+{ 21005} G2P400O +PERO9              =  0.650G1P400P + 0.350GPN400X                                : ARR( 0.100E-10,     0., 0.0);
+{ 21006} G1P400P                     =       G3N2000 +      GPD2000                                : ARR( 0.200E+15,  5277., 0.0);
+{ 21007} GGH4002 +GHO                =       GGN4008 +      GHO                                    : ARR( 0.827E-11,     0., 0.0);
+{ 21008} GGH4002 +GHO                =       G2G400F                                               : ARR( 0.864E-12,     0., 0.0);
+{ 21009} GGH4002 +GHO                =       G2G4001                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 21010} GGH4002 +GHO                =       G3H4002                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 21011} GGH4002+HV               =       G1G400K +      GNO2                                   :  0.100E+01*SUN;
+{ 21012} GGH4002+HV               =       G1G4002 +      GHO                                    :  0.100E+01*SUN;
+{ 21013} GGH4002+HV               =       G2H3001 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 21014} G2G400F +GNO                =       G1G400L +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 21015} G2G400F +GNO                =       GGH400M                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 21016} G2G400F +GHO2               =       GGH400N                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 21017} G2G400F +GNO3               =       G1G400L +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 21018} G2G400F +MEPERO             =  0.340G1G400L + 0.330GGH400O + 0.330GGH400P                 : ARR( 0.565E-13,  -845., 0.0);
+{ 21019} G2G400F +PERO1              =  0.460G1G400L + 0.270GGH400O + 0.270GGH400P                 : ARR( 0.434E-13,  -900., 0.0);
+{ 21020} G2G400F +PERO2              =  0.400G1G400L + 0.300GGH400O + 0.300GGH400P                 : ARR( 0.162E-13, -1400., 0.0);
+{ 21021} G2G400F +PERO3              =  0.460G1G400L + 0.270GGH400O + 0.270GGH400P                 : ARR( 0.488E-13, -1250., 0.0);
+{ 21022} G2G400F +PERO5              =  0.460G1G400L + 0.270GGH400O + 0.270GGH400P                 : ARR( 0.183E-11,   450., 0.0);
+{ 21023} G2G400F +PERO6              =  0.300G1G400L + 0.350GGH400O + 0.350GGH400P                 : ARR( 0.168E-13, -1300., 0.0);
+{ 21024} G2G400F +PERO9              =  0.650G1G400L + 0.350GGH400P                                : ARR( 0.100E-10,     0., 0.0);
+{ 21025} G1G400K +OXYGEN             =       GGH400Q +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 21026} G1G400K                     =       GGD3000 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5636., 0.0);
+{ 21027} G1G400L                     =       GHN3007 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 21028} GGH4003 +GHO                =       GGN400A +      GHO                                    : ARR( 0.254E-10,     0., 0.0);
+{ 21029} GGH4003 +GHO                =       G2G4002                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 21030} GGH4003 +GHO                =       G3H400D                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 21031} GGH4003+HV               =       G1G400M +      GNO2                                   :  0.100E+01*SUN;
+{ 21032} GGH4003+HV               =       G1G4003 +      GHO                                    :  0.100E+01*SUN;
+{ 21033} GGH4003+HV               =       GND3000 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 21034} G1G400M +OXYGEN             =       GGH400R +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{ 21035} GGN4009 +GHO                =       GGN400A +      GHO2                                   : ARR( 0.658E-11,     0., 0.0);
+{ 21036} GGN4009 +GHO                =       G3N400G                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 21037} GGN4009+HV               =       G1G400F +      GNO2                                   :  0.100E+01*SUN;
+{ 21038} GGN4009+HV               =       GND3000 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 21039} GGN400A +GHO                =       G3N400N                                               : ARR( 0.207E-11,  -190., 0.0);
+{ 21040} GGN400A+HV               =       G1G400N +      GNO2                                   :  0.100E+01*SUN;
+{ 21041} GGN400A+HV               =       GAN3000 +      GCO2                                   :  0.100E+01*SUN;
+{ 21042} G3N400N +GHO2               =  0.800GGN400A + 0.200GAN400A + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 21043} G3N400N +GNO                =       G3N3000 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 21044} G3N400N +GNO2               =       GPN400A                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 21045} G3N400N +GNO3               =       G3N3000 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 21046} G3N400N +MEPERO             =  0.685G3N3000 + 0.315GAN400A + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 21047} G3N400N +PERO1              =  0.800G3N3000 + 0.200GAN400A + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 21048} G3N400N +PERO2              =  0.750G3N3000 + 0.250GAN400A + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 21049} G3N400N +PERO3              =  0.800G3N3000 + 0.200GAN400A + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 21050} G3N400N +PERO5              =  0.650G3N3000 + 0.350GAN400A + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 21051} G3N400N +PERO6              =  0.650G3N3000 + 0.350GAN400A + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 21052} G3N400N +PERO9              =       G3N3000 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 21053} G1G400N +OXYGEN             =       GGD4005 +      GHO2                                   : ARR( 0.600E-13,   398., 0.0);
+{ 21054} GGD4000 +GHO                =       G2G400G                                               : ARR( 0.282E-11,     0., 0.0);
+{ 21055} GGD4000 +GHO                =       G3G4000                                               : ARR( 0.214E-10,     0., 0.0);
+{ 21056} GGD4000 +GHO                =       G3D4000                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 21057} GGD4000 +GNO3               =       G3G4000 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 21058} GGD4000+HV               =       G2D3001 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 21059} GGD4000+HV               =       G2G3000 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 21060} G2G400G +GNO                =       G1G400O +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 21061} G2G400G +GNO                =       GGN400M                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 21062} G2G400G +GHO2               =       GGH400R                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 21063} G2G400G +GNO3               =       G1G400O +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 21064} G2G400G +MEPERO             =  0.340G1G400O + 0.330GGD4002 + 0.330GGD4005                 : ARR( 0.565E-13,  -845., 0.0);
+{ 21065} G2G400G +PERO1              =  0.460G1G400O + 0.270GGD4002 + 0.270GGD4005                 : ARR( 0.434E-13,  -900., 0.0);
+{ 21066} G2G400G +PERO2              =  0.400G1G400O + 0.300GGD4002 + 0.300GGD4005                 : ARR( 0.162E-13, -1400., 0.0);
+{ 21067} G2G400G +PERO3              =  0.460G1G400O + 0.270GGD4002 + 0.270GGD4005                 : ARR( 0.488E-13, -1250., 0.0);
+{ 21068} G2G400G +PERO5              =  0.460G1G400O + 0.270GGD4002 + 0.270GGD4005                 : ARR( 0.183E-11,   450., 0.0);
+{ 21069} G2G400G +PERO6              =  0.300G1G400O + 0.350GGD4002 + 0.350GGD4005                 : ARR( 0.168E-13, -1300., 0.0);
+{ 21070} G2G400G +PERO9              =  0.650G1G400O + 0.350GGD4005                                : ARR( 0.100E-10,     0., 0.0);
+{ 21071} G3G4000 +GHO2               =  0.800GGG4000 + 0.200GAG4000 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 21072} G3G4000 +GNO                =       G2G3000 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 21073} G3G4000 +GNO2               =       GPG4000                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 21074} G3G4000 +GNO3               =       G2G3000 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 21075} G3G4000 +MEPERO             =  0.685G2G3000 + 0.315GAG4000 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 21076} G3G4000 +PERO1              =  0.800G2G3000 + 0.200GAG4000 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 21077} G3G4000 +PERO2              =  0.750G2G3000 + 0.250GAG4000 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 21078} G3G4000 +PERO3              =  0.800G2G3000 + 0.200GAG4000 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 21079} G3G4000 +PERO5              =  0.650G2G3000 + 0.350GAG4000 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 21080} G3G4000 +PERO6              =  0.650G2G3000 + 0.350GAG4000 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 21081} G3G4000 +PERO9              =       G2G3000 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 21082} G1G400O                     =       GCO     +      GDD3000 +      GHO2                    : ARR( 0.200E+15,  4566., 0.0);
+{ 21083} GAH4002 +GHO                =       GAN400A +      GHO                                    : ARR( 0.193E-10,     0., 0.0);
+{ 21084} GAH4002 +GHO                =       G2A4001                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 21085} GAH4002+HV               =       G1A4002 +      GHO                                    :  0.100E+01*SUN;
+{ 21086} GAH4002+HV               =       G1A400P +      GNO2                                   :  0.100E+01*SUN;
+{ 21087} G1A400P +OXYGEN             =       GAH400Q +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{ 21088} GAN4009 +GHO                =       GAN400A +      GHO2                                   : ARR( 0.481E-11,     0., 0.0);
+{ 21089} GAN4009 +GHO                =       G2A400N                                               : ARR( 0.292E-12,     0., 0.0);
+{ 21090} GAN4009 +GHO                =       GND3000 +      GHO2    +      GCO2                    : ARR( 0.538E-12,     0., 0.0);
+{ 21091} GAN4009+HV               =       G1A400L +      GNO2                                   :  0.100E+01*SUN;
+{ 21092} G2A400N +GNO                =       G1A400Q +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 21093} G2A400N +GNO                =       GAN400S                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 21094} G2A400N +GHO2               =       GAH400R                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 21095} G2A400N +GNO3               =       G1A400Q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 21096} G2A400N +MEPERO             =  0.340G1A400Q + 0.330GAN400C + 0.330GAN400U                 : ARR( 0.565E-13,  -845., 0.0);
+{ 21097} G2A400N +PERO1              =  0.460G1A400Q + 0.270GAN400C + 0.270GAN400U                 : ARR( 0.434E-13,  -900., 0.0);
+{ 21098} G2A400N +PERO2              =  0.400G1A400Q + 0.300GAN400C + 0.300GAN400U                 : ARR( 0.162E-13, -1400., 0.0);
+{ 21099} G2A400N +PERO3              =  0.460G1A400Q + 0.270GAN400C + 0.270GAN400U                 : ARR( 0.488E-13, -1250., 0.0);
+{ 21100} G2A400N +PERO5              =  0.460G1A400Q + 0.270GAN400C + 0.270GAN400U                 : ARR( 0.183E-11,   450., 0.0);
+{ 21101} G2A400N +PERO6              =  0.300G1A400Q + 0.350GAN400C + 0.350GAN400U                 : ARR( 0.168E-13, -1300., 0.0);
+{ 21102} G2A400N +PERO9              =  0.650G1A400Q + 0.350GAN400U                                : ARR( 0.100E-10,     0., 0.0);
+{ 21103} G1A400Q                     =       GAD2000 +      GND2000 +      GHO2                    : ARR( 0.200E+15,  3987., 0.0);
+{ 21104} GAN400A +GHO                =       G2A400O                                               : ARR( 0.172E-12,     0., 0.0);
+{ 21105} GAN400A +GHO                =       GAD4005 +      GNO2                                   : ARR( 0.146E-12,     0., 0.0);
+{ 21106} GAN400A +GHO                =       G3N3000 +      GCO2                                   : ARR( 0.520E-12,     0., 0.0);
+{ 21107} GAN400A+HV               =       GND3000 +      GCO2                                   :  0.100E+01*SUN;
+{ 21108} GAN400A+HV               =       G1A400R +      GNO2                                   :  0.100E+01*SUN;
+{ 21109} G2A400O +GNO                =       G1A400S +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 21110} G2A400O +GNO                =       GAN400T                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 21111} G2A400O +GHO2               =       GAH400S                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 21112} G2A400O +GNO3               =       G1A400S +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 21113} G2A400O +MEPERO             =  0.340G1A400S + 0.330GAN400D + 0.330GAN400W                 : ARR( 0.565E-13,  -845., 0.0);
+{ 21114} G2A400O +PERO1              =  0.460G1A400S + 0.270GAN400D + 0.270GAN400W                 : ARR( 0.434E-13,  -900., 0.0);
+{ 21115} G2A400O +PERO2              =  0.400G1A400S + 0.300GAN400D + 0.300GAN400W                 : ARR( 0.162E-13, -1400., 0.0);
+{ 21116} G2A400O +PERO3              =  0.460G1A400S + 0.270GAN400D + 0.270GAN400W                 : ARR( 0.488E-13, -1250., 0.0);
+{ 21117} G2A400O +PERO5              =  0.460G1A400S + 0.270GAN400D + 0.270GAN400W                 : ARR( 0.183E-11,   450., 0.0);
+{ 21118} G2A400O +PERO6              =  0.300G1A400S + 0.350GAN400D + 0.350GAN400W                 : ARR( 0.168E-13, -1300., 0.0);
+{ 21119} G2A400O +PERO9              =  0.650G1A400S + 0.350GAN400W                                : ARR( 0.100E-10,     0., 0.0);
+{ 21120} G1A400R +OXYGEN             =       GAD4005 +      GHO2                                   : ARR( 0.600E-13,   398., 0.0);
+{ 21121} G1A400S                     =       GCO     +      GND2000 +      GHO     +      GCO      : ARR( 0.200E+15,  3324., 0.0);
+{ 21122} GAH4003 +GHO                =       GAN4008 +      GHO                                    : ARR( 0.908E-11,     0., 0.0);
+{ 21123} GAH4003 +GHO                =       G2A4002                                               : ARR( 0.209E-11,  -190., 0.0);
+{ 21124} GAH4003+HV               =       G1A4003 +      GHO                                    :  0.100E+01*SUN;
+{ 21125} GAH4003+HV               =       G1A400T +      GNO2                                   :  0.100E+01*SUN;
+{ 21126} G1A400T +OXYGEN             =       GAH400T +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 21127} G1A400T                     =       GAD3000 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5636., 0.0);
+{ 21128} GAD4000 +GHO                =       G2A400P                                               : ARR( 0.214E-11,     0., 0.0);
+{ 21129} GAD4000 +GHO                =       G3A4000                                               : ARR( 0.220E-10,     0., 0.0);
+{ 21130} GAD4000 +GNO3               =       G3A4000 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 21131} GAD4000+HV               =       G2A3000 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 21132} G2A400P +GNO                =       G1A400U +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 21133} G2A400P +GNO                =       GAN400N                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 21134} G2A400P +GHO2               =       GAH400Q                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 21135} G2A400P +GNO3               =       G1A400U +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 21136} G2A400P +MEPERO             =  0.340G1A400U + 0.330GAD4002 + 0.330GAD4005                 : ARR( 0.565E-13,  -845., 0.0);
+{ 21137} G2A400P +PERO1              =  0.460G1A400U + 0.270GAD4002 + 0.270GAD4005                 : ARR( 0.434E-13,  -900., 0.0);
+{ 21138} G2A400P +PERO2              =  0.400G1A400U + 0.300GAD4002 + 0.300GAD4005                 : ARR( 0.162E-13, -1400., 0.0);
+{ 21139} G2A400P +PERO3              =  0.460G1A400U + 0.270GAD4002 + 0.270GAD4005                 : ARR( 0.488E-13, -1250., 0.0);
+{ 21140} G2A400P +PERO5              =  0.460G1A400U + 0.270GAD4002 + 0.270GAD4005                 : ARR( 0.183E-11,   450., 0.0);
+{ 21141} G2A400P +PERO6              =  0.300G1A400U + 0.350GAD4002 + 0.350GAD4005                 : ARR( 0.168E-13, -1300., 0.0);
+{ 21142} G2A400P +PERO9              =  0.650G1A400U + 0.350GAD4005                                : ARR( 0.100E-10,     0., 0.0);
+{ 21143} G1A400U                     =       GCO     +      GDD3000 +      GHO                     : ARR( 0.200E+15,  4535., 0.0);
+{ 21144} GPH4002                     =       G3H4002 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 21145} GPH4002 +GHO                =       GPN4008 +      GHO                                    : ARR( 0.827E-11,     0., 0.0);
+{ 21146} GPH4002 +GHO                =       G2P400P                                               : ARR( 0.865E-12,     0., 0.0);
+{ 21147} GPH4002 +GHO                =       G2P4001                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 21148} GPH4002+HV               =       G1P400Q +      GNO2                                   :  0.100E+01*SUN;
+{ 21149} GPH4002+HV               =       G1P4002 +      GHO                                    :  0.100E+01*SUN;
+{ 21150} GPH4002+HV               =       G3H4002 +      GNO2                                   :  0.100E+01*SUN;
+{ 21151} G2P400P +GNO                =       G1P400R +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 21152} G2P400P +GNO                =       GPH400N                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 21153} G2P400P +GHO2               =       GPH400Q                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 21154} G2P400P +GNO3               =       G1P400R +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 21155} G2P400P +MEPERO             =  0.340G1P400R + 0.330GPH400R + 0.330GPH400S                 : ARR( 0.565E-13,  -845., 0.0);
+{ 21156} G2P400P +PERO1              =  0.460G1P400R + 0.270GPH400R + 0.270GPH400S                 : ARR( 0.434E-13,  -900., 0.0);
+{ 21157} G2P400P +PERO2              =  0.400G1P400R + 0.300GPH400R + 0.300GPH400S                 : ARR( 0.162E-13, -1400., 0.0);
+{ 21158} G2P400P +PERO3              =  0.460G1P400R + 0.270GPH400R + 0.270GPH400S                 : ARR( 0.488E-13, -1250., 0.0);
+{ 21159} G2P400P +PERO5              =  0.460G1P400R + 0.270GPH400R + 0.270GPH400S                 : ARR( 0.183E-11,   450., 0.0);
+{ 21160} G2P400P +PERO6              =  0.300G1P400R + 0.350GPH400R + 0.350GPH400S                 : ARR( 0.168E-13, -1300., 0.0);
+{ 21161} G2P400P +PERO9              =  0.650G1P400R + 0.350GPH400S                                : ARR( 0.100E-10,     0., 0.0);
+{ 21162} G1P400Q +OXYGEN             =       GPH400T +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 21163} G1P400Q                     =       GPD3000 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5636., 0.0);
+{ 21164} G1P400R                     =       GHN3007 +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 21165} GPH4003                     =       G3H400D +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 21166} GPH4003 +GHO                =       GPN400A +      GHO                                    : ARR( 0.254E-10,     0., 0.0);
+{ 21167} GPH4003 +GHO                =       G2P4002                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 21168} GPH4003+HV               =       G1P400S +      GNO2                                   :  0.100E+01*SUN;
+{ 21169} GPH4003+HV               =       G1P4003 +      GHO                                    :  0.100E+01*SUN;
+{ 21170} GPH4003+HV               =       G3H400D +      GNO2                                   :  0.100E+01*SUN;
+{ 21171} G1P400S +OXYGEN             =       GPH400U +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{ 21172} GPN4009                     =       G3N400G +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 21173} GPN4009 +GHO                =       GPN400A +      GHO2                                   : ARR( 0.675E-11,     0., 0.0);
+{ 21174} GPN4009+HV               =       G1P400M +      GNO2                                   :  0.100E+01*SUN;
+{ 21175} GPN4009+HV               =       G3N400G +      GNO2                                   :  0.100E+01*SUN;
+{ 21176} GPN400A                     =       G3N400N +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 21177} GPN400A +GHO                =       GPD4005 +      GNO2                                   : ARR( 0.146E-12,     0., 0.0);
+{ 21178} GPN400A +GHO                =       G2P400Q                                               : ARR( 0.172E-12,     0., 0.0);
+{ 21179} GPN400A+HV               =       G1P400T +      GNO2                                   :  0.100E+01*SUN;
+{ 21180} GPN400A+HV               =       G3N3000 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 21181} G2P400Q +GNO                =       G1P400U +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 21182} G2P400Q +GNO                =       GPN400U                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 21183} G2P400Q +GHO2               =       GPH400S                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 21184} G2P400Q +GNO3               =       G1P400U +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 21185} G2P400Q +MEPERO             =  0.340G1P400U + 0.330GPN400D + 0.330GPN400X                 : ARR( 0.565E-13,  -845., 0.0);
+{ 21186} G2P400Q +PERO1              =  0.460G1P400U + 0.270GPN400D + 0.270GPN400X                 : ARR( 0.434E-13,  -900., 0.0);
+{ 21187} G2P400Q +PERO2              =  0.400G1P400U + 0.300GPN400D + 0.300GPN400X                 : ARR( 0.162E-13, -1400., 0.0);
+{ 21188} G2P400Q +PERO3              =  0.460G1P400U + 0.270GPN400D + 0.270GPN400X                 : ARR( 0.488E-13, -1250., 0.0);
+{ 21189} G2P400Q +PERO5              =  0.460G1P400U + 0.270GPN400D + 0.270GPN400X                 : ARR( 0.183E-11,   450., 0.0);
+{ 21190} G2P400Q +PERO6              =  0.300G1P400U + 0.350GPN400D + 0.350GPN400X                 : ARR( 0.168E-13, -1300., 0.0);
+{ 21191} G2P400Q +PERO9              =  0.650G1P400U + 0.350GPN400X                                : ARR( 0.100E-10,     0., 0.0);
+{ 21192} G1P400T +OXYGEN             =       GPD4005 +      GHO2                                   : ARR( 0.600E-13,   398., 0.0);
+{ 21193} G1P400U                     =       GND2000 +      GCO     +      GNO2    +      GCO      : ARR( 0.200E+15,  3324., 0.0);
+{ 21194} GPD4000                     =       G3D4000 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 21195} GPD4000 +GHO                =       G2P400R                                               : ARR( 0.283E-11,     0., 0.0);
+{ 21196} GPD4000 +GHO                =       G3P4000                                               : ARR( 0.215E-10,     0., 0.0);
+{ 21197} GPD4000 +GNO3               =       G3P4000 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 21198} GPD4000+HV               =       G3D4000 +      GNO2                                   :  0.100E+01*SUN;
+{ 21199} GPD4000+HV               =       G2P3000 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 21200} G2P400R +GNO                =       G1P400W +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 21201} G2P400R +GNO                =       GPN400N                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 21202} G2P400R +GHO2               =       GPH400U                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 21203} G2P400R +GNO3               =       G1P400W +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 21204} G2P400R +MEPERO             =  0.340G1P400W + 0.330GPD4002 + 0.330GPD4005                 : ARR( 0.565E-13,  -845., 0.0);
+{ 21205} G2P400R +PERO1              =  0.460G1P400W + 0.270GPD4002 + 0.270GPD4005                 : ARR( 0.434E-13,  -900., 0.0);
+{ 21206} G2P400R +PERO2              =  0.400G1P400W + 0.300GPD4002 + 0.300GPD4005                 : ARR( 0.162E-13, -1400., 0.0);
+{ 21207} G2P400R +PERO3              =  0.460G1P400W + 0.270GPD4002 + 0.270GPD4005                 : ARR( 0.488E-13, -1250., 0.0);
+{ 21208} G2P400R +PERO5              =  0.460G1P400W + 0.270GPD4002 + 0.270GPD4005                 : ARR( 0.183E-11,   450., 0.0);
+{ 21209} G2P400R +PERO6              =  0.300G1P400W + 0.350GPD4002 + 0.350GPD4005                 : ARR( 0.168E-13, -1300., 0.0);
+{ 21210} G2P400R +PERO9              =  0.650G1P400W + 0.350GPD4005                                : ARR( 0.100E-10,     0., 0.0);
+{ 21211} G1P400W                     =       GCO     +      GDD3000 +      GNO2                    : ARR( 0.200E+15,  4566., 0.0);
+{ 21212} GNN5021 +GHO                =       GNN503B +      GNO2                                   : ARR( 0.479E-13,     0., 0.0);
+{ 21213} GNN5021 +GHO                =       GNN502m +      GHO2                                   : ARR( 0.429E-12,     0., 0.0);
+{ 21214} GNN5021 +GHO                =       GNN5023 +      GNO2                                   : ARR( 0.748E-13,     0., 0.0);
+{ 21215} GNN5021 +GHO                =       G1N504K                                               : ARR( 0.219E-17,    85., 2.0);
+{ 21216} GNN5021+HV               =       G1N505D +      GNO2                                   :  0.100E+01*SUN;
+{ 21217} GNN5021+HV               =       G1N502X +      GNO2                                   :  0.100E+01*SUN;
+{ 21218} GNN5021+HV               =       G3N400K +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{ 21219} GNN5021+HV               =       GND2000 +      GNN3006                                :  0.100E+01*SUN;
+{ 21220} GNN5021+HV               =       G1N5056 +      GNO2                                   :  0.100E+01*SUN;
+{ 21221} G1N505D                     =       GNN400G +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4427., 0.0);
+{ 21222} GHN502s +GHO                =       GHN504x +      GHO2                                   : ARR( 0.657E-11,     0., 0.0);
+{ 21223} GHN502s +GHO                =       GNN5023 +      GHO                                    : ARR( 0.253E-10,     0., 0.0);
+{ 21224} GHN502s +GHO                =       G2N502K                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 21225} GHN502s+HV               =       G1H5055 +      GNO2                                   :  0.100E+01*SUN;
+{ 21226} GHN502s+HV               =       G1N502X +      GHO                                    :  0.100E+01*SUN;
+{ 21227} GHN502s+HV               =       G3H400H +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{ 21228} GHN502s+HV               =       G1H5056 +      GNO2                                   :  0.100E+01*SUN;
+{ 21229} G1H5055                     =       GHN400R +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4427., 0.0);
+{ 21230} G3H400H +GHO2               =  0.800GGH4004 + 0.200GAH4004 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 21231} G3H400H +GNO                =       GND3002 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 21232} G3H400H +GNO2               =       GPH4004                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 21233} G3H400H +GNO3               =       GND3002 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 21234} G3H400H +MEPERO             =  0.685GND3002 + 0.315GAH4004 + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 21235} G3H400H +PERO1              =  0.800GND3002 + 0.200GAH4004 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 21236} G3H400H +PERO2              =  0.750GND3002 + 0.250GAH4004 + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 21237} G3H400H +PERO3              =  0.800GND3002 + 0.200GAH4004 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 21238} G3H400H +PERO5              =  0.650GND3002 + 0.350GAH4004 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 21239} G3H400H +PERO6              =  0.650GND3002 + 0.350GAH4004 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 21240} G3H400H +PERO9              =       GND3002 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 21241} G1H5056                     =       G3H400H +      GCH2O                                  : ARR( 0.200E+15,  3603., 0.0);
+{ 21242} GNN5022 +GHO                =       GNN502n +      GHO2                                   : ARR( 0.671E-11,     0., 0.0);
+{ 21243} GNN5022 +GHO                =       GNN5023 +      GHO2                                   : ARR( 0.646E-11,     0., 0.0);
+{ 21244} GNN5022+HV               =       G1N505E +      GNO2                                   :  0.100E+01*SUN;
+{ 21245} GNN5022+HV               =       G3N400O +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{ 21246} GNN5022+HV               =       G1N505F +      GNO2                                   :  0.100E+01*SUN;
+{ 21247} G1N505E                     =       GND400E +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4427., 0.0);
+{ 21248} G3N400O +GHO2               =  0.800GGN400C + 0.200GAN400C + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 21249} G3N400O +GNO                =       GND3002 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 21250} G3N400O +GNO2               =       GPN400C                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 21251} G3N400O +GNO3               =       GND3002 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 21252} G3N400O +MEPERO             =  0.685GND3002 + 0.315GAN400C + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 21253} G3N400O +PERO1              =  0.800GND3002 + 0.200GAN400C + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 21254} G3N400O +PERO2              =  0.750GND3002 + 0.250GAN400C + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 21255} G3N400O +PERO3              =  0.800GND3002 + 0.200GAN400C + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 21256} G3N400O +PERO5              =  0.650GND3002 + 0.350GAN400C + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 21257} G3N400O +PERO6              =  0.650GND3002 + 0.350GAN400C + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 21258} G3N400O +PERO9              =       GND3002 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 21259} G1N505F                     =       G3N400O +      GCH2O                                  : ARR( 0.200E+15,  3603., 0.0);
+{ 21260} GNN5023 +GHO                =       GND501K +      GNO2                                   : ARR( 0.148E-12,     0., 0.0);
+{ 21261} GNN5023 +GHO                =       GNN502o +      GHO2                                   : ARR( 0.128E-11,     0., 0.0);
+{ 21262} GNN5023 +GHO                =       G1N504O                                               : ARR( 0.214E-17,    85., 2.0);
+{ 21263} GNN5023+HV               =       G1N505G +      GNO2                                   :  0.100E+01*SUN;
+{ 21264} GNN5023+HV               =       G3N3002 +      G3N2000                                :  0.100E+01*SUN;
+{ 21265} GNN5023+HV               =       G1N505B +      GNO2                                   :  0.100E+01*SUN;
+{ 21266} G1N505G                     =       GND400M +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4155., 0.0);
+{ 21267} GNN5024 +GHO                =       GNN5037 +      GHO2                                   : ARR( 0.279E-11,     0., 0.0);
+{ 21268} GNN5024 +GHO                =       GNN502F +      GHO2                                   : ARR( 0.469E-12,     0., 0.0);
+{ 21269} GNN5024+HV               =       G3K2001 +      GND3002 +      GNO2                    :  0.100E+01*SUN;
+{ 21270} GNN5024+HV               =       GNK3001 +      GND2000                                :  0.100E+01*SUN;
+{ 21271} GNN5024+HV               =       G1N502Y +      GNO2                                   :  0.100E+01*SUN;
+{ 21272} GNN5024+HV               =       G1N505H +      GNO2                                   :  0.100E+01*SUN;
+{ 21273} G1N505H                     =       GND400L +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4427., 0.0);
+{ 21274} GHN502t +GHO                =       GHN505d +      GHO2                                   : ARR( 0.247E-11,     0., 0.0);
+{ 21275} GHN502t +GHO                =       GNK500u +      GHO                                    : ARR( 0.253E-10,     0., 0.0);
+{ 21276} GHN502t +GHO                =       GHN503o +      GHO2                                   : ARR( 0.659E-11,     0., 0.0);
+{ 21277} GHN502t +GHO                =       G2N502L                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 21278} GHN502t+HV               =       G3K2001 +      GND3002 +      GHO                     :  0.100E+01*SUN;
+{ 21279} GHN502t+HV               =       G1N502Y +      GHO                                    :  0.100E+01*SUN;
+{ 21280} GHN502t+HV               =       G1H5057 +      GNO2                                   :  0.100E+01*SUN;
+{ 21281} G1H5057                     =       GHD400G +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4427., 0.0);
+{ 21282} GNK500t +GHO                =       GND501L +      GHO2                                   : ARR( 0.253E-11,     0., 0.0);
+{ 21283} GNK500t +GHO                =       GNK500u +      GHO2                                   : ARR( 0.647E-11,     0., 0.0);
+{ 21284} GNK500t +GHO                =       GNK500y +      GHO2                                   : ARR( 0.673E-11,     0., 0.0);
+{ 21285} GNK500t+HV               =       G3K2001 +      GND3002 +      GHO2                    :  0.100E+01*SUN;
+{ 21286} GNK500t+HV               =       G1K500w +      GNO2                                   :  0.100E+01*SUN;
+{ 21287} G1K500w                     =       GDK4006 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4427., 0.0);
+{ 21288} GNK500u +GHO                =       GND501I +      GHO2                                   : ARR( 0.273E-11,     0., 0.0);
+{ 21289} GNK500u +GHO                =       GNK500z +      GHO2                                   : ARR( 0.140E-11,     0., 0.0);
+{ 21290} GNK500u+HV               =       G3K2001 +      G3N3002                                :  0.100E+01*SUN;
+{ 21291} GNK500u+HV               =       G1K500x +      GNO2                                   :  0.100E+01*SUN;
+{ 21292} G1K500x                     =       GDK4009 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4155., 0.0);
+{ 21293} GGN400B +GHO                =       GGN400O +      GHO2                                   : ARR( 0.439E-12,     0., 0.0);
+{ 21294} GGN400B +GHO                =       G3N400K                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 21295} GGN400B+HV               =       G1G400P +      GNO2                                   :  0.100E+01*SUN;
+{ 21296} GGN400B+HV               =       G1G4005 +      GNO2                                   :  0.100E+01*SUN;
+{ 21297} GGN400B+HV               =       GND3002 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 21298} G1G400P                     =       GGN3005 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4427., 0.0);
+{ 21299} GGH4004 +GHO                =       GGH400L +      GHO2                                   : ARR( 0.207E-11,     0., 0.0);
+{ 21300} GGH4004 +GHO                =       GGN400D +      GHO                                    : ARR( 0.253E-10,     0., 0.0);
+{ 21301} GGH4004 +GHO                =       G2G4003                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 21302} GGH4004 +GHO                =       G3H400H                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 21303} GGH4004+HV               =       G1G400Q +      GNO2                                   :  0.100E+01*SUN;
+{ 21304} GGH4004+HV               =       G1G4005 +      GHO                                    :  0.100E+01*SUN;
+{ 21305} GGH4004+HV               =       GND3002 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 21306} G1G400Q                     =       GGH3007 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4427., 0.0);
+{ 21307} GGN400C +GHO                =       GGN400Q +      GHO2                                   : ARR( 0.212E-11,     0., 0.0);
+{ 21308} GGN400C +GHO                =       GGN400D +      GHO2                                   : ARR( 0.645E-11,     0., 0.0);
+{ 21309} GGN400C +GHO                =       G3N400O                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 21310} GGN400C+HV               =       G1G400R +      GNO2                                   :  0.100E+01*SUN;
+{ 21311} GGN400C+HV               =       GND3002 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 21312} G1G400R                     =       GGD3001 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4427., 0.0);
+{ 21313} GGN400D +GHO                =       GGN400R +      GHO2                                   : ARR( 0.133E-11,     0., 0.0);
+{ 21314} GGN400D +GHO                =       G3N400P                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 21315} GGN400D+HV               =       G1G400D +      GNO2                                   :  0.100E+01*SUN;
+{ 21316} GGN400D+HV               =       GAN3003 +      GCO2                                   :  0.100E+01*SUN;
+{ 21317} G3N400P +GHO2               =  0.800GGN400D + 0.200GAN400D + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 21318} G3N400P +GNO                =       G3N3002 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 21319} G3N400P +GNO2               =       GPN400D                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 21320} G3N400P +GNO3               =       G3N3002 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 21321} G3N400P +MEPERO             =  0.685G3N3002 + 0.315GAN400D + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 21322} G3N400P +PERO1              =  0.800G3N3002 + 0.200GAN400D + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 21323} G3N400P +PERO2              =  0.750G3N3002 + 0.250GAN400D + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 21324} G3N400P +PERO3              =  0.800G3N3002 + 0.200GAN400D + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 21325} G3N400P +PERO5              =  0.650G3N3002 + 0.350GAN400D + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 21326} G3N400P +PERO6              =  0.650G3N3002 + 0.350GAN400D + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 21327} G3N400P +PERO9              =       G3N3002 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 21328} GAN400B +GHO                =       GAN400R +      GHO2                                   : ARR( 0.450E-12,     0., 0.0);
+{ 21329} GAN400B +GHO                =       G1A400M                                               : ARR( 0.229E-17,    85., 2.0);
+{ 21330} GAN400B +GHO                =       GND3002 +      GNO2    +      GCO2                    : ARR( 0.568E-12,     0., 0.0);
+{ 21331} GAN400B+HV               =       G1A4005 +      GNO2                                   :  0.100E+01*SUN;
+{ 21332} GAN400B+HV               =       G1A400I +      GNO2                                   :  0.100E+01*SUN;
+{ 21333} GAH4004 +GHO                =       GAN400D +      GHO                                    : ARR( 0.191E-10,     0., 0.0);
+{ 21334} GAH4004 +GHO                =       GAH400P +      GHO2                                   : ARR( 0.212E-11,     0., 0.0);
+{ 21335} GAH4004 +GHO                =       G2A4003                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 21336} GAH4004+HV               =       G1A4005 +      GHO                                    :  0.100E+01*SUN;
+{ 21337} GAH4004+HV               =       G1A400W +      GNO2                                   :  0.100E+01*SUN;
+{ 21338} G1A400W                     =       GAH3007 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4427., 0.0);
+{ 21339} GAN400C +GHO                =       GAN400D +      GHO2                                   : ARR( 0.486E-11,     0., 0.0);
+{ 21340} GAN400C +GHO                =       GAN400U +      GHO2                                   : ARR( 0.215E-11,     0., 0.0);
+{ 21341} GAN400C +GHO                =       GND3002 +      GHO2    +      GCO2                    : ARR( 0.543E-12,     0., 0.0);
+{ 21342} GAN400C+HV               =       G1A400X +      GNO2                                   :  0.100E+01*SUN;
+{ 21343} G1A400X                     =       GAD3001 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4427., 0.0);
+{ 21344} GAN400D +GHO                =       GAN400W +      GHO2                                   : ARR( 0.126E-11,     0., 0.0);
+{ 21345} GAN400D +GHO                =       GAD4004 +      GNO2                                   : ARR( 0.146E-12,     0., 0.0);
+{ 21346} GAN400D +GHO                =       G1A400S                                               : ARR( 0.210E-17,    85., 2.0);
+{ 21347} GAN400D +GHO                =       G3N3002 +      GCO2                                   : ARR( 0.520E-12,     0., 0.0);
+{ 21348} GAN400D+HV               =       GND3002 +      GCO2                                   :  0.100E+01*SUN;
+{ 21349} GAN400D+HV               =       G1A400J +      GNO2                                   :  0.100E+01*SUN;
+{ 21350} GPN400B                     =       G3N400K +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 21351} GPN400B +GHO                =       GPN400P +      GNO2                                   : ARR( 0.460E-13,     0., 0.0);
+{ 21352} GPN400B +GHO                =       GPN400S +      GHO2                                   : ARR( 0.412E-12,     0., 0.0);
+{ 21353} GPN400B +GHO                =       GPN400D +      GNO2                                   : ARR( 0.718E-13,     0., 0.0);
+{ 21354} GPN400B +GHO                =       G1P400N                                               : ARR( 0.210E-17,    85., 2.0);
+{ 21355} GPN400B+HV               =       G1P400I +      GNO2                                   :  0.100E+01*SUN;
+{ 21356} GPN400B+HV               =       G1P4005 +      GNO2                                   :  0.100E+01*SUN;
+{ 21357} GPN400B+HV               =       G3N400K +      GNO2                                   :  0.100E+01*SUN;
+{ 21358} GPH4004                     =       G3H400H +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 21359} GPH4004 +GHO                =       GPH400P +      GHO2                                   : ARR( 0.207E-11,     0., 0.0);
+{ 21360} GPH4004 +GHO                =       GPN400D +      GHO                                    : ARR( 0.253E-10,     0., 0.0);
+{ 21361} GPH4004 +GHO                =       G2P4003                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 21362} GPH4004+HV               =       G1P400X +      GNO2                                   :  0.100E+01*SUN;
+{ 21363} GPH4004+HV               =       G1P4005 +      GHO                                    :  0.100E+01*SUN;
+{ 21364} GPH4004+HV               =       G3H400H +      GNO2                                   :  0.100E+01*SUN;
+{ 21365} G1P400X                     =       GPH3007 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4427., 0.0);
+{ 21366} GPN400C                     =       G3N400O +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 21367} GPN400C +GHO                =       GPN400W +      GHO2                                   : ARR( 0.214E-11,     0., 0.0);
+{ 21368} GPN400C +GHO                =       GPN400D +      GHO2                                   : ARR( 0.653E-11,     0., 0.0);
+{ 21369} GPN400C+HV               =       G1P400Y +      GNO2                                   :  0.100E+01*SUN;
+{ 21370} GPN400C+HV               =       G3N400O +      GNO2                                   :  0.100E+01*SUN;
+{ 21371} G1P400Y                     =       GPD3001 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4427., 0.0);
+{ 21372} GPN400D                     =       G3N400P +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 21373} GPN400D +GHO                =       GPD4004 +      GNO2                                   : ARR( 0.146E-12,     0., 0.0);
+{ 21374} GPN400D +GHO                =       GPN400X +      GHO2                                   : ARR( 0.126E-11,     0., 0.0);
+{ 21375} GPN400D +GHO                =       G1P400U                                               : ARR( 0.210E-17,    85., 2.0);
+{ 21376} GPN400D+HV               =       G1P400J +      GNO2                                   :  0.100E+01*SUN;
+{ 21377} GPN400D+HV               =       G3N3002 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 21378} GGN3003 +GHO                =       GGN3006 +      GHO2                                   : ARR( 0.130E-11,     0., 0.0);
+{ 21379} GGN3003 +GHO                =       G3N3002                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 21380} GGN3003+HV               =       G1G3004 +      GNO2                                   :  0.100E+01*SUN;
+{ 21381} GGN3003+HV               =       GND2000 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 21382} GAN3003 +GHO                =       GAN3005 +      GHO2                                   : ARR( 0.957E-12,     0., 0.0);
+{ 21383} GAN3003 +GHO                =       G1A3003                                               : ARR( 0.216E-17,    85., 2.0);
+{ 21384} GAN3003 +GHO                =       GND2000 +      GHO2    +      GCO2                    : ARR( 0.535E-12,     0., 0.0);
+{ 21385} GAN3003+HV               =       G1A3005 +      GNO2                                   :  0.100E+01*SUN;
+{ 21386} GPN3003                     =       G3N3002 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 21387} GPN3003 +GHO                =       GPN3005 +      GHO2                                   : ARR( 0.130E-11,     0., 0.0);
+{ 21388} GPN3003 +GHO                =       G1P3003                                               : ARR( 0.217E-17,    85., 2.0);
+{ 21389} GPN3003+HV               =       G1P3005 +      GNO2                                   :  0.100E+01*SUN;
+{ 21390} GPN3003+HV               =       G3N3002 +      GNO2                                   :  0.100E+01*SUN;
+{ 21391} GHN502u +GHO                =       GNN5025 +      GHO                                    : ARR( 0.163E-10,     0., 0.0);
+{ 21392} GHN502u +GHO                =       G2N502M                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 21393} GHN502u+HV               =       G1H5058 +      GNO2                                   :  0.100E+01*SUN;
+{ 21394} GHN502u+HV               =       G1H5059 +      GNO2                                   :  0.100E+01*SUN;
+{ 21395} GHN502u+HV               =       G1H505A +      GNO2                                   :  0.100E+01*SUN;
+{ 21396} GHN502u+HV               =       G1N502Z +      GHO                                    :  0.100E+01*SUN;
+{ 21397} G1H5058 +OXYGEN             =       GHN505e +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 21398} G1H5058                     =       G2H5028                                               : ARR( 0.160E+12,  3719., 0.0);
+{ 21399} G1H5059                     =       GNN500f +      GHO                                    : ARR( 0.160E+12,  2186., 0.0);
+{ 21400} G1H505A                     =       GND2000 +      GHD3000 +      GNO2                    : ARR( 0.200E+15,  6068., 0.0);
+{ 21401} G1H505A                     =       GNN3005 +      G2H2000                                : ARR( 0.200E+15,  7074., 0.0);
+{ 21402} G2H5028 +GNO                =       G1H505B +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 21403} G2H5028 +GNO                =       GHN505f                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 21404} G2H5028 +GHO2               =       GHH5022                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 21405} G2H5028 +GNO3               =       G1H505B +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 21406} G2H5028 +MEPERO             =  0.340G1H505B + 0.330GHN504T + 0.330GHN504U                 : ARR( 0.565E-13,  -845., 0.0);
+{ 21407} G2H5028 +PERO1              =  0.460G1H505B + 0.270GHN504T + 0.270GHN504U                 : ARR( 0.434E-13,  -900., 0.0);
+{ 21408} G2H5028 +PERO2              =  0.400G1H505B + 0.300GHN504T + 0.300GHN504U                 : ARR( 0.162E-13, -1400., 0.0);
+{ 21409} G2H5028 +PERO3              =  0.460G1H505B + 0.270GHN504T + 0.270GHN504U                 : ARR( 0.488E-13, -1250., 0.0);
+{ 21410} G2H5028 +PERO5              =  0.460G1H505B + 0.270GHN504T + 0.270GHN504U                 : ARR( 0.183E-11,   450., 0.0);
+{ 21411} G2H5028 +PERO6              =  0.300G1H505B + 0.350GHN504T + 0.350GHN504U                 : ARR( 0.168E-13, -1300., 0.0);
+{ 21412} G2H5028 +PERO9              =  0.650G1H505B + 0.350GHN504U                                : ARR( 0.100E-10,     0., 0.0);
+{ 21413} G1H505B                     =       GHN505g +      GHO2                                   : ARR( 0.160E+12,  3252., 0.0);
+{ 21414} G1H505B                     =       GND3004 +      GHD2000 +      GNO2                    : ARR( 0.200E+15,  6234., 0.0);
+{ 21415} GNN5025 +GHO                =       G3N500u                                               : ARR( 0.210E-10,     0., 0.0);
+{ 21416} GNN5025 +GNO3               =       G3N500u +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 21417} GNN5025+HV               =       G1N505I +      GNO2                                   :  0.100E+01*SUN;
+{ 21418} GNN5025+HV               =       G1N505J +      GNO2                                   :  0.100E+01*SUN;
+{ 21419} GNN5025+HV               =       G1N505K +      GNO2                                   :  0.100E+01*SUN;
+{ 21420} GNN5025+HV               =       G2N400p +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 21421} GNN5025+HV               =       GND3003 +      GD02000 + 2.000GNO2                    :  0.100E+01*SUN;
+{ 21422} G3N500u +GHO2               =  0.800GGN501B + 0.200GAN500u + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 21423} G3N500u +GNO                =       G2N400p +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 21424} G3N500u +GNO2               =       GPN500x                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 21425} G3N500u +GNO3               =       G2N400p +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 21426} G3N500u +MEPERO             =  0.685G2N400p + 0.315GAN500u + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 21427} G3N500u +PERO1              =  0.800G2N400p + 0.200GAN500u + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 21428} G3N500u +PERO2              =  0.750G2N400p + 0.250GAN500u + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 21429} G3N500u +PERO3              =  0.800G2N400p + 0.200GAN500u + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 21430} G3N500u +PERO5              =  0.650G2N400p + 0.350GAN500u + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 21431} G3N500u +PERO6              =  0.650G2N400p + 0.350GAN500u + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 21432} G3N500u +PERO9              =       G2N400p +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 21433} G1N505I +OXYGEN             =       GNN502t +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 21434} G1N505I                     =       G2N504Q                                               : ARR( 0.160E+12,  3940., 0.0);
+{ 21435} G1N505I                     =       GND400D +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7042., 0.0);
+{ 21436} G1N505J                     =       G3N500B                                               : ARR( 0.800E+11,  4559., 0.0);
+{ 21437} G1N505J                     =       GND2000 +      GDD3000 +      GNO2                    : ARR( 0.200E+15,  6365., 0.0);
+{ 21438} G1N505K                     =       GND2000 +      GDD3000 +      GNO2                    : ARR( 0.200E+15,  5685., 0.0);
+{ 21439} G2N400p +GNO                =       G1N400s +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 21440} G2N400p +GNO                =       GNN400W                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 21441} G2N400p +GHO2               =       GHN4015                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 21442} G2N400p +GNO3               =       G1N400s +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 21443} G2N400p +MEPERO             =  0.480G1N400s + 0.260GNN400S + 0.260GNN400D                 : ARR( 0.164E-12,  -795., 0.0);
+{ 21444} G2N400p +PERO1              =  0.600G1N400s + 0.200GNN400S + 0.200GNN400D                 : ARR( 0.126E-12,  -850., 0.0);
+{ 21445} G2N400p +PERO2              =  0.560G1N400s + 0.220GNN400S + 0.220GNN400D                 : ARR( 0.471E-13, -1350., 0.0);
+{ 21446} G2N400p +PERO3              =  0.600G1N400s + 0.200GNN400S + 0.200GNN400D                 : ARR( 0.142E-12, -1200., 0.0);
+{ 21447} G2N400p +PERO5              =  0.600G1N400s + 0.200GNN400S + 0.200GNN400D                 : ARR( 0.533E-11,   500., 0.0);
+{ 21448} G2N400p +PERO6              =  0.460G1N400s + 0.270GNN400S + 0.270GNN400D                 : ARR( 0.488E-13, -1250., 0.0);
+{ 21449} G2N400p +PERO9              =  0.800G1N400s + 0.200GNN400D                                : ARR( 0.100E-10,     0., 0.0);
+{ 21450} G2N504Q +GNO                =       G1N505L +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 21451} G2N504Q +GNO                =       GNN502y                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 21452} G2N504Q +GHO2               =       GHN505h                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 21453} G2N504Q +GNO3               =       G1N505L +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 21454} G2N504Q +MEPERO             =  0.340G1N505L + 0.330GNN502b + 0.330GNN502c                 : ARR( 0.565E-13,  -845., 0.0);
+{ 21455} G2N504Q +PERO1              =  0.460G1N505L + 0.270GNN502b + 0.270GNN502c                 : ARR( 0.434E-13,  -900., 0.0);
+{ 21456} G2N504Q +PERO2              =  0.400G1N505L + 0.300GNN502b + 0.300GNN502c                 : ARR( 0.162E-13, -1400., 0.0);
+{ 21457} G2N504Q +PERO3              =  0.460G1N505L + 0.270GNN502b + 0.270GNN502c                 : ARR( 0.488E-13, -1250., 0.0);
+{ 21458} G2N504Q +PERO5              =  0.460G1N505L + 0.270GNN502b + 0.270GNN502c                 : ARR( 0.183E-11,   450., 0.0);
+{ 21459} G2N504Q +PERO6              =  0.300G1N505L + 0.350GNN502b + 0.350GNN502c                 : ARR( 0.168E-13, -1300., 0.0);
+{ 21460} G2N504Q +PERO9              =  0.650G1N505L + 0.350GNN502c                                : ARR( 0.100E-10,     0., 0.0);
+{ 21461} G1N400s +OXYGEN             =       GNN400D +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 21462} G1N400s                     =       GNN400E +      GNO2                                   : ARR( 0.160E+12,  5251., 0.0);
+{ 21463} G1N400s                     =       GNN3005 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7042., 0.0);
+{ 21464} G1N505L                     =       GNN503C +      GHO2                                   : ARR( 0.160E+12,  3252., 0.0);
+{ 21465} G1N505L                     =       GNN400E +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 21466} GHN502v +GHO                =       GNN501v +      GHO                                    : ARR( 0.683E-11,     0., 0.0);
+{ 21467} GHN502v +GHO                =       G2N502N                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 21468} GHN502v+HV               =       G1N502a +      GHO                                    :  0.100E+01*SUN;
+{ 21469} GHN502v+HV               =       G1H505C +      GNO2                                   :  0.100E+01*SUN;
+{ 21470} GHN502v+HV               =       G1H505D +      GNO2                                   :  0.100E+01*SUN;
+{ 21471} GHN502v+HV               =       G1H505E +      GNO2                                   :  0.100E+01*SUN;
+{ 21472} G1H505C                     =       GD02000 +      GNN3005 +      GHO                     : ARR( 0.200E+15,  5171., 0.0);
+{ 21473} G1H505C                     =       GHD3002 +      GND2000 +      GNO2                    : ARR( 0.200E+15,  6323., 0.0);
+{ 21474} G1H505D                     =       G2H5029                                               : ARR( 0.240E+12,  4177., 0.0);
+{ 21475} G1H505D                     =       GHD3002 +      GND2000 +      GNO2                    : ARR( 0.200E+15,  6232., 0.0);
+{ 21476} G1H505E                     =       GNN5015 +      GHO                                    : ARR( 0.800E+11,  2490., 0.0);
+{ 21477} G2H5029 +GNO                =       G1H505F +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 21478} G2H5029 +GNO                =       GHN503A                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 21479} G2H5029 +GHO2               =       GHH5023                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 21480} G2H5029 +GNO3               =       G1H505F +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 21481} G2H5029 +MEPERO             =  0.480G1H505F + 0.260GHN5038 + 0.260GHN504q                 : ARR( 0.164E-12,  -795., 0.0);
+{ 21482} G2H5029 +PERO1              =  0.600G1H505F + 0.200GHN5038 + 0.200GHN504q                 : ARR( 0.126E-12,  -850., 0.0);
+{ 21483} G2H5029 +PERO2              =  0.560G1H505F + 0.220GHN5038 + 0.220GHN504q                 : ARR( 0.471E-13, -1350., 0.0);
+{ 21484} G2H5029 +PERO3              =  0.600G1H505F + 0.200GHN5038 + 0.200GHN504q                 : ARR( 0.142E-12, -1200., 0.0);
+{ 21485} G2H5029 +PERO5              =  0.600G1H505F + 0.200GHN5038 + 0.200GHN504q                 : ARR( 0.533E-11,   500., 0.0);
+{ 21486} G2H5029 +PERO6              =  0.460G1H505F + 0.270GHN5038 + 0.270GHN504q                 : ARR( 0.488E-13, -1250., 0.0);
+{ 21487} G2H5029 +PERO9              =  0.800G1H505F + 0.200GHN504q                                : ARR( 0.100E-10,     0., 0.0);
+{ 21488} G1H505F                     =       GHN5039 +      GHO2                                   : ARR( 0.800E+11,  3464., 0.0);
+{ 21489} G1H505F                     =       GNN400F +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{ 21490} GHH500j +GHO                =       GHN501n +      GHO                                    : ARR( 0.681E-11,     0., 0.0);
+{ 21491} GHH500j +GHO                =       GHN504B +      GHO                                    : ARR( 0.838E-11,     0., 0.0);
+{ 21492} GHH500j +GHO                =       GHH5024 +      GHO2                                   : ARR( 0.409E-11,     0., 0.0);
+{ 21493} GHH500j +GHO                =       G2H500n                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 21494} GHH500j +GHO                =       G2H502A                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 21495} GHH500j+HV               =       G1H501J +      GHO                                    :  0.100E+01*SUN;
+{ 21496} GHH500j+HV               =       G1H505G +      GNO2                                   :  0.100E+01*SUN;
+{ 21497} GHH500j+HV               =       G1H5034 +      GHO                                    :  0.100E+01*SUN;
+{ 21498} G2H502A +GNO                =       G1H5034 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 21499} G2H502A +GNO                =       GHN501Y                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 21500} G2H502A +GHO2               =       GHH500j                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 21501} G2H502A +GNO3               =       G1H5034 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 21502} G2H502A +MEPERO             =  0.340G1H5034 + 0.330GHN505i + 0.330GHN504B                 : ARR( 0.565E-13,  -845., 0.0);
+{ 21503} G2H502A +PERO1              =  0.460G1H5034 + 0.270GHN505i + 0.270GHN504B                 : ARR( 0.434E-13,  -900., 0.0);
+{ 21504} G2H502A +PERO2              =  0.400G1H5034 + 0.300GHN505i + 0.300GHN504B                 : ARR( 0.162E-13, -1400., 0.0);
+{ 21505} G2H502A +PERO3              =  0.460G1H5034 + 0.270GHN505i + 0.270GHN504B                 : ARR( 0.488E-13, -1250., 0.0);
+{ 21506} G2H502A +PERO5              =  0.460G1H5034 + 0.270GHN505i + 0.270GHN504B                 : ARR( 0.183E-11,   450., 0.0);
+{ 21507} G2H502A +PERO6              =  0.300G1H5034 + 0.350GHN505i + 0.350GHN504B                 : ARR( 0.168E-13, -1300., 0.0);
+{ 21508} G2H502A +PERO9              =  0.650G1H5034 + 0.350GHN504B                                : ARR( 0.100E-10,     0., 0.0);
+{ 21509} G1H505G                     =       GD02000 +      GHD3003 +      GHO                     : ARR( 0.200E+15,  5171., 0.0);
+{ 21510} G1H505G                     =       GHD3002 +      GDO2000 +      GHO                     : ARR( 0.200E+15,  4784., 0.0);
+{ 21511} GHN502w +GHO                =       GHN501n +      GHO2                                   : ARR( 0.173E-11,     0., 0.0);
+{ 21512} GHN502w +GHO                =       GNK5013 +      GHO                                    : ARR( 0.851E-11,     0., 0.0);
+{ 21513} GHN502w +GHO                =       GHN502x +      GHO2                                   : ARR( 0.415E-11,     0., 0.0);
+{ 21514} GHN502w +GHO                =       G2N504R                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 21515} GHN502w+HV               =       G1H505H +      GNO2                                   :  0.100E+01*SUN;
+{ 21516} GHN502w+HV               =       G1N503r +      GHO                                    :  0.100E+01*SUN;
+{ 21517} G2N504R +GNO                =       G1N503r +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 21518} G2N504R +GNO                =       GNN5012                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 21519} G2N504R +GHO2               =       GHN502w                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 21520} G2N504R +GNO3               =       G1N503r +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 21521} G2N504R +MEPERO             =  0.340G1N503r + 0.330GNO500U + 0.330GNK5013                 : ARR( 0.565E-13,  -845., 0.0);
+{ 21522} G2N504R +PERO1              =  0.460G1N503r + 0.270GNO500U + 0.270GNK5013                 : ARR( 0.434E-13,  -900., 0.0);
+{ 21523} G2N504R +PERO2              =  0.400G1N503r + 0.300GNO500U + 0.300GNK5013                 : ARR( 0.162E-13, -1400., 0.0);
+{ 21524} G2N504R +PERO3              =  0.460G1N503r + 0.270GNO500U + 0.270GNK5013                 : ARR( 0.488E-13, -1250., 0.0);
+{ 21525} G2N504R +PERO5              =  0.460G1N503r + 0.270GNO500U + 0.270GNK5013                 : ARR( 0.183E-11,   450., 0.0);
+{ 21526} G2N504R +PERO6              =  0.300G1N503r + 0.350GNO500U + 0.350GNK5013                 : ARR( 0.168E-13, -1300., 0.0);
+{ 21527} G2N504R +PERO9              =  0.650G1N503r + 0.350GNK5013                                : ARR( 0.100E-10,     0., 0.0);
+{ 21528} G1H505H                     =       GD02000 +      GHD3003 +      GHO2                    : ARR( 0.200E+15,  3962., 0.0);
+{ 21529} G1H505H                     =       GDO3001 +      GDO2000 +      GHO                     : ARR( 0.200E+15,  4784., 0.0);
+{ 21530} GHN502x +GHO                =       GHN504e +      GHO2                                   : ARR( 0.171E-11,     0., 0.0);
+{ 21531} GHN502x +GHO                =       GND500v +      GHO                                    : ARR( 0.514E-11,     0., 0.0);
+{ 21532} GHN502x +GHO                =       G3H500n                                               : ARR( 0.212E-10,     0., 0.0);
+{ 21533} GHN502x +GHO                =       G2N504S                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 21534} GHN502x +GNO3               =       G3H500n +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 21535} GHN502x+HV               =       G1H501o +      GNO2                                   :  0.100E+01*SUN;
+{ 21536} GHN502x+HV               =       G1N503v +      GHO                                    :  0.100E+01*SUN;
+{ 21537} GHN502x+HV               =       GND4007 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 21538} G3H500n +GHO2               =  0.800GGH5018 + 0.200GAH501Q + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 21539} G3H500n +GNO                =       GND4007 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 21540} G3H500n +GNO2               =       GPH500l                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 21541} G3H500n +GNO3               =       GND4007 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 21542} G3H500n +MEPERO             =  0.685GND4007 + 0.315GAH501Q + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 21543} G3H500n +PERO1              =  0.800GND4007 + 0.200GAH501Q + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 21544} G3H500n +PERO2              =  0.750GND4007 + 0.250GAH501Q + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 21545} G3H500n +PERO3              =  0.800GND4007 + 0.200GAH501Q + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 21546} G3H500n +PERO5              =  0.650GND4007 + 0.350GAH501Q + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 21547} G3H500n +PERO6              =  0.650GND4007 + 0.350GAH501Q + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 21548} G3H500n +PERO9              =       GND4007 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 21549} G2N504S +GNO                =       G1N503v +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 21550} G2N504S +GNO                =       GNN5013                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 21551} G2N504S +GHO2               =       GHN502x                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 21552} G2N504S +GNO3               =       G1N503v +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 21553} G2N504S +MEPERO             =  0.340G1N503v + 0.330GND500P + 0.330GND500v                 : ARR( 0.565E-13,  -845., 0.0);
+{ 21554} G2N504S +PERO1              =  0.460G1N503v + 0.270GND500P + 0.270GND500v                 : ARR( 0.434E-13,  -900., 0.0);
+{ 21555} G2N504S +PERO2              =  0.400G1N503v + 0.300GND500P + 0.300GND500v                 : ARR( 0.162E-13, -1400., 0.0);
+{ 21556} G2N504S +PERO3              =  0.460G1N503v + 0.270GND500P + 0.270GND500v                 : ARR( 0.488E-13, -1250., 0.0);
+{ 21557} G2N504S +PERO5              =  0.460G1N503v + 0.270GND500P + 0.270GND500v                 : ARR( 0.183E-11,   450., 0.0);
+{ 21558} G2N504S +PERO6              =  0.300G1N503v + 0.350GND500P + 0.350GND500v                 : ARR( 0.168E-13, -1300., 0.0);
+{ 21559} G2N504S +PERO9              =  0.650G1N503v + 0.350GND500v                                : ARR( 0.100E-10,     0., 0.0);
+{ 21560} GHN502y +GHO                =       GNN501w +      GHO                                    : ARR( 0.728E-11,     0., 0.0);
+{ 21561} GHN502y +GHO                =       G2N502O                                               : ARR( 0.206E-11,  -190., 0.0);
+{ 21562} GHN502y+HV               =       G1N502b +      GHO                                    :  0.100E+01*SUN;
+{ 21563} GHN502y+HV               =       G1H505I +      GNO2                                   :  0.100E+01*SUN;
+{ 21564} GHN502y+HV               =       G1H505J +      GNO2                                   :  0.100E+01*SUN;
+{ 21565} G1H505I                     =       GHD3002 +      GND2000 +      GHO2                    : ARR( 0.200E+15,  3575., 0.0);
+{ 21566} G1H505J                     =       GNK500e +      GHO                                    : ARR( 0.800E+11,  2490., 0.0);
+{ 21567} G1H505J                     =       GHN400p +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 21568} GHN502z +GHO                =       GNN5026 +      GHO                                    : ARR( 0.164E-10,     0., 0.0);
+{ 21569} GHN502z +GHO                =       G2N502P                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 21570} GHN502z+HV               =       G1H505K +      GNO2                                   :  0.100E+01*SUN;
+{ 21571} GHN502z+HV               =       G3N2000 +      GHD3000 +      GNO2                    :  0.100E+01*SUN;
+{ 21572} GHN502z+HV               =       GNN3006 +      G2D2000 +      GHO                     :  0.100E+01*SUN;
+{ 21573} GHN502z+HV               =       G1H505L +      GNO2                                   :  0.100E+01*SUN;
+{ 21574} GHN502z+HV               =       G1N502c +      GHO                                    :  0.100E+01*SUN;
+{ 21575} G1H505K                     =       G3H400I +      GCH2O                                  : ARR( 0.200E+15,  3640., 0.0);
+{ 21576} G1H505L                     =       G3N2000 +      GHD3000                                : ARR( 0.200E+15,  2635., 0.0);
+{ 21577} G3H400I +GHO2               =  0.800GGH400S + 0.200GAH400E + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 21578} G3H400I +GNO                =       GHD3000 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 21579} G3H400I +GNO2               =       GPH400F                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 21580} G3H400I +GNO3               =       GHD3000 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 21581} G3H400I +MEPERO             =  0.685GHD3000 + 0.315GAH400E + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 21582} G3H400I +PERO1              =  0.800GHD3000 + 0.200GAH400E + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 21583} G3H400I +PERO2              =  0.750GHD3000 + 0.250GAH400E + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 21584} G3H400I +PERO3              =  0.800GHD3000 + 0.200GAH400E + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 21585} G3H400I +PERO5              =  0.650GHD3000 + 0.350GAH400E + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 21586} G3H400I +PERO6              =  0.650GHD3000 + 0.350GAH400E + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 21587} G3H400I +PERO9              =       GHD3000 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 21588} GNN5026 +GHO                =       G3N500v                                               : ARR( 0.212E-10,     0., 0.0);
+{ 21589} GNN5026 +GNO3               =       G3N500v +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 21590} GNN5026+HV               =       G1N505M +      GNO2                                   :  0.100E+01*SUN;
+{ 21591} GNN5026+HV               =       G3N2000 +      GDD3000 +      GNO2                    :  0.100E+01*SUN;
+{ 21592} GNN5026+HV               =       G1N503E +      GNO2                                   :  0.100E+01*SUN;
+{ 21593} GNN5026+HV               =       G2N400q +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 21594} G3N500v +GHO2               =  0.800GGN501C + 0.200GAN500v + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 21595} G3N500v +GNO                =       G2N400q +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 21596} G3N500v +GNO2               =       GPN500y                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 21597} G3N500v +GNO3               =       G2N400q +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 21598} G3N500v +MEPERO             =  0.685G2N400q + 0.315GAN500v + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 21599} G3N500v +PERO1              =  0.800G2N400q + 0.200GAN500v + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 21600} G3N500v +PERO2              =  0.750G2N400q + 0.250GAN500v + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 21601} G3N500v +PERO3              =  0.800G2N400q + 0.200GAN500v + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 21602} G3N500v +PERO5              =  0.650G2N400q + 0.350GAN500v + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 21603} G3N500v +PERO6              =  0.650G2N400q + 0.350GAN500v + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 21604} G3N500v +PERO9              =       G2N400q +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 21605} G1N505M                     =       G3N400I +      GCH2O                                  : ARR( 0.200E+15,  3640., 0.0);
+{ 21606} G2N400q +GNO                =       G1N400t +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 21607} G2N400q +GNO                =       GNN400X                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 21608} G2N400q +GHO2               =       GHN4016                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 21609} G2N400q +GNO3               =       G1N400t +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 21610} G2N400q +MEPERO             =  0.480G1N400t + 0.260GNN400U + 0.260GNN400G                 : ARR( 0.164E-12,  -795., 0.0);
+{ 21611} G2N400q +PERO1              =  0.600G1N400t + 0.200GNN400U + 0.200GNN400G                 : ARR( 0.126E-12,  -850., 0.0);
+{ 21612} G2N400q +PERO2              =  0.560G1N400t + 0.220GNN400U + 0.220GNN400G                 : ARR( 0.471E-13, -1350., 0.0);
+{ 21613} G2N400q +PERO3              =  0.600G1N400t + 0.200GNN400U + 0.200GNN400G                 : ARR( 0.142E-12, -1200., 0.0);
+{ 21614} G2N400q +PERO5              =  0.600G1N400t + 0.200GNN400U + 0.200GNN400G                 : ARR( 0.533E-11,   500., 0.0);
+{ 21615} G2N400q +PERO6              =  0.460G1N400t + 0.270GNN400U + 0.270GNN400G                 : ARR( 0.488E-13, -1250., 0.0);
+{ 21616} G2N400q +PERO9              =  0.800G1N400t + 0.200GNN400G                                : ARR( 0.100E-10,     0., 0.0);
+{ 21617} G1N400t +OXYGEN             =       GNN400G +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 21618} G1N400t                     =       GND3003 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7323., 0.0);
+{ 21619} GHN5031 +GHO                =       GNN501x +      GHO                                    : ARR( 0.688E-11,     0., 0.0);
+{ 21620} GHN5031 +GHO                =       G2N502Q                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 21621} GHN5031+HV               =       G1N502d +      GHO                                    :  0.100E+01*SUN;
+{ 21622} GHN5031+HV               =       G1H505M +      GNO2                                   :  0.100E+01*SUN;
+{ 21623} GHN5031+HV               =       G3H400J +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{ 21624} GHN5031+HV               =       G2D2000 +      GNN3006 +      GHO                     :  0.100E+01*SUN;
+{ 21625} GHN5031+HV               =       G1H505N +      GNO2                                   :  0.100E+01*SUN;
+{ 21626} G1H505M                     =       GHD3002 +      G3N2000                                : ARR( 0.200E+15,  2890., 0.0);
+{ 21627} G3H400J +GHO2               =  0.800GGH400D + 0.200GAH400F + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 21628} G3H400J +GNO                =       GHD3002 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 21629} G3H400J +GNO2               =       GPH400G                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 21630} G3H400J +GNO3               =       GHD3002 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 21631} G3H400J +MEPERO             =  0.685GHD3002 + 0.315GAH400F + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 21632} G3H400J +PERO1              =  0.800GHD3002 + 0.200GAH400F + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 21633} G3H400J +PERO2              =  0.750GHD3002 + 0.250GAH400F + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 21634} G3H400J +PERO3              =  0.800GHD3002 + 0.200GAH400F + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 21635} G3H400J +PERO5              =  0.650GHD3002 + 0.350GAH400F + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 21636} G3H400J +PERO6              =  0.650GHD3002 + 0.350GAH400F + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 21637} G3H400J +PERO9              =       GHD3002 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 21638} G1H505N                     =       G3H400J +      GCH2O                                  : ARR( 0.200E+15,  3640., 0.0);
+{ 21639} GNN5027 +GHO                =       G2N504T                                               : ARR( 0.176E-12,     0., 0.0);
+{ 21640} GNN5027 +GHO                =       GNN501x +      GHO2                                   : ARR( 0.176E-11,     0., 0.0);
+{ 21641} GNN5027 +GHO                =       G1N502d                                               : ARR( 0.221E-17,    85., 2.0);
+{ 21642} GNN5027+HV               =       G1N505N +      GNO2                                   :  0.100E+01*SUN;
+{ 21643} GNN5027+HV               =       G3N400C +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{ 21644} GNN5027+HV               =       GD02000 +      GNN3006                                :  0.100E+01*SUN;
+{ 21645} GNN5027+HV               =       G1N505O +      GNO2                                   :  0.100E+01*SUN;
+{ 21646} G2N504T +GNO                =       G1N505D +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 21647} G2N504T +GNO                =       GNN5021                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 21648} G2N504T +GHO2               =       GHN505j                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 21649} G2N504T +GNO3               =       G1N505D +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 21650} G2N504T +MEPERO             =  0.480G1N505D + 0.260GNN502E + 0.260GNN503B                 : ARR( 0.164E-12,  -795., 0.0);
+{ 21651} G2N504T +PERO1              =  0.600G1N505D + 0.200GNN502E + 0.200GNN503B                 : ARR( 0.126E-12,  -850., 0.0);
+{ 21652} G2N504T +PERO2              =  0.560G1N505D + 0.220GNN502E + 0.220GNN503B                 : ARR( 0.471E-13, -1350., 0.0);
+{ 21653} G2N504T +PERO3              =  0.600G1N505D + 0.200GNN502E + 0.200GNN503B                 : ARR( 0.142E-12, -1200., 0.0);
+{ 21654} G2N504T +PERO5              =  0.600G1N505D + 0.200GNN502E + 0.200GNN503B                 : ARR( 0.533E-11,   500., 0.0);
+{ 21655} G2N504T +PERO6              =  0.460G1N505D + 0.270GNN502E + 0.270GNN503B                 : ARR( 0.488E-13, -1250., 0.0);
+{ 21656} G2N504T +PERO9              =  0.800G1N505D + 0.200GNN503B                                : ARR( 0.100E-10,     0., 0.0);
+{ 21657} G1N505N                     =       GDO3001 +      G3N2000                                : ARR( 0.200E+15,  2890., 0.0);
+{ 21658} G1N505O                     =       G3N400C +      GCH2O                                  : ARR( 0.200E+15,  3640., 0.0);
+{ 21659} GHN5032 +GHO                =       GHN505k +      GHO2                                   : ARR( 0.407E-11,     0., 0.0);
+{ 21660} GHN5032 +GHO                =       GNN5029 +      GHO                                    : ARR( 0.833E-11,     0., 0.0);
+{ 21661} GHN5032 +GHO                =       G2N502R                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 21662} GHN5032+HV               =       G1N502g +      GHO                                    :  0.100E+01*SUN;
+{ 21663} GHN5032+HV               =       G1H505O +      GNO2                                   :  0.100E+01*SUN;
+{ 21664} GHN5032+HV               =       G1H503a +      GNO2                                   :  0.100E+01*SUN;
+{ 21665} GHN5032+HV               =       G1H505P +      GNO2                                   :  0.100E+01*SUN;
+{ 21666} G1H505O                     =       GDO2000 +      GNN3005 +      GHO                     : ARR( 0.200E+15,  4784., 0.0);
+{ 21667} G1H505P                     =       GNN502C +      GHO                                    : ARR( 0.800E+11,  2398., 0.0);
+{ 21668} GNN5028 +GHO                =       GNN502a +      GHO2                                   : ARR( 0.423E-11,     0., 0.0);
+{ 21669} GNN5028 +GHO                =       GNN5029 +      GHO2                                   : ARR( 0.217E-11,     0., 0.0);
+{ 21670} GNN5028+HV               =       G1N505P +      GNO2                                   :  0.100E+01*SUN;
+{ 21671} GNN5028+HV               =       G1N505Q +      GNO2                                   :  0.100E+01*SUN;
+{ 21672} GNN5028+HV               =       G1N505R +      GNO2                                   :  0.100E+01*SUN;
+{ 21673} G1N505P                     =       GDO2000 +      GNN3005 +      GHO2                    : ARR( 0.200E+15,  3575., 0.0);
+{ 21674} G1N505Q                     =       GNN502H +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{ 21675} G1N505R                     =       GNN502C +      GHO2                                   : ARR( 0.800E+11,  2744., 0.0);
+{ 21676} GNN5029 +GHO                =       GNN5036 +      GHO2                                   : ARR( 0.248E-11,     0., 0.0);
+{ 21677} GNN5029 +GHO                =       G1N5055                                               : ARR( 0.212E-17,    85., 2.0);
+{ 21678} GNN5029+HV               =       G3K2001 +      GNN3005 +      GNO2                    :  0.100E+01*SUN;
+{ 21679} GNN5029+HV               =       GNK3001 +      GDD2000 + 2.000GNO2                    :  0.100E+01*SUN;
+{ 21680} GNN5029+HV               =       G1N503A +      GNO2                                   :  0.100E+01*SUN;
+{ 21681} GNN5029+HV               =       G1N505S +      GNO2                                   :  0.100E+01*SUN;
+{ 21682} GNN5029+HV               =       G1N505T +      GNO2                                   :  0.100E+01*SUN;
+{ 21683} G1N505S                     =       GNN5037 +      GHO2                                   : ARR( 0.160E+12,  4515., 0.0);
+{ 21684} G1N505S                     =       GDK3001 +      GND2000 +      GNO2                    : ARR( 0.200E+15,  6513., 0.0);
+{ 21685} G1N505T +OXYGEN             =       GNN503D +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 21686} G1N505T                     =       GND400L +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7175., 0.0);
+{ 21687} GNN400D +GHO                =       G3N400J                                               : ARR( 0.418E-11,     0., 0.0);
+{ 21688} GNN400D +GNO3               =       G3N400J +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 21689} GNN400D+HV               =       G1N400u +      GNO2                                   :  0.100E+01*SUN;
+{ 21690} GNN400D+HV               =       G1N400v +      GNO2                                   :  0.100E+01*SUN;
+{ 21691} GNN400D+HV               =       G1N400w +      GNO2                                   :  0.100E+01*SUN;
+{ 21692} GNN400D+HV               =       GNN3005 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 21693} GNN400D+HV               =       GDD2000 +      GND2000 + 2.000GNO2                    :  0.100E+01*SUN;
+{ 21694} G1N400u +OXYGEN             =       GNN400Z +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 21695} G1N400u                     =       G3N400B                                               : ARR( 0.800E+11,  5278., 0.0);
+{ 21696} G1N400u                     =       GND3005 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7175., 0.0);
+{ 21697} G1N400v                     =       GND2000 +      GDD2000 +      GNO2                    : ARR( 0.200E+15,  6513., 0.0);
+{ 21698} G1N400w                     =       GNN3005 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 21699} GNN502A +GHO                =       GNN502y +      GHO2                                   : ARR( 0.165E-11,     0., 0.0);
+{ 21700} GNN502A +GHO                =       G1N504h                                               : ARR( 0.432E-17,    85., 2.0);
+{ 21701} GNN502A+HV               =       G1N502h +      GNO2                                   :  0.200E+01*SUN;
+{ 21702} GNN502A+HV               =       G1N505U +      GNO2                                   :  0.100E+01*SUN;
+{ 21703} G1N505U                     =       GDO2000 +      GND3004 +      GNO2                    : ARR( 0.400E+15,  6323., 0.0);
+{ 21704} GHN5033 +GHO                =       GNN502C +      GHO                                    : ARR( 0.883E-11,     0., 0.0);
+{ 21705} GHN5033 +GHO                =       GHN505h +      GHO2                                   : ARR( 0.431E-11,     0., 0.0);
+{ 21706} GHN5033 +GHO                =       G2N502S                                               : ARR( 0.204E-11,  -190., 0.0);
+{ 21707} GHN5033+HV               =       G1H501L +      GNO2                                   :  0.100E+01*SUN;
+{ 21708} GHN5033+HV               =       G1H505Q +      GNO2                                   :  0.100E+01*SUN;
+{ 21709} GHN5033+HV               =       G1N502h +      GHO                                    :  0.100E+01*SUN;
+{ 21710} G1H505Q                     =       GND3004 +      GDO2000 +      GHO                     : ARR( 0.200E+15,  4784., 0.0);
+{ 21711} GNN502B +GHO                =       GNN502b +      GHO2                                   : ARR( 0.429E-11,     0., 0.0);
+{ 21712} GNN502B +GHO                =       GNN502C +      GHO2                                   : ARR( 0.220E-11,     0., 0.0);
+{ 21713} GNN502B +GHO                =       GNN502D +      GHO2                                   : ARR( 0.859E-12,     0., 0.0);
+{ 21714} GNN502B+HV               =       G1N505W +      GNO2                                   :  0.100E+01*SUN;
+{ 21715} GNN502B+HV               =       G1N505X +      GNO2                                   :  0.100E+01*SUN;
+{ 21716} G1N505W                     =       GND3004 +      GDO2000 +      GHO2                    : ARR( 0.200E+15,  3575., 0.0);
+{ 21717} G1N505X                     =       GND500T +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{ 21718} G1N505X                     =       GND400A +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  5296., 0.0);
+{ 21719} GNN502C +GHO                =       GNN502c +      GHO2                                   : ARR( 0.269E-11,     0., 0.0);
+{ 21720} GNN502C +GHO                =       GNN503D +      GHO2                                   : ARR( 0.883E-12,     0., 0.0);
+{ 21721} GNN502C+HV               =       G3K2001 +      GND3004 +      GNO2                    :  0.100E+01*SUN;
+{ 21722} GNN502C+HV               =       GNK3001 +      GND2000                                :  0.100E+01*SUN;
+{ 21723} GNN502C+HV               =       G1N505Y +      GNO2                                   :  0.100E+01*SUN;
+{ 21724} GNN502C+HV               =       G1N505Z +      GNO2                                   :  0.100E+01*SUN;
+{ 21725} G1N505Y                     =       GND3004 +      G3K2001                                : ARR( 0.200E+15,  3009., 0.0);
+{ 21726} G1N505Z                     =       GND400L +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4465., 0.0);
+{ 21727} GNN502D +GHO                =       GNN503C +      GHO2                                   : ARR( 0.415E-11,     0., 0.0);
+{ 21728} GNN502D +GHO                =       GNN503D +      GHO2                                   : ARR( 0.212E-11,     0., 0.0);
+{ 21729} GNN502D +GHO                =       G3N500w                                               : ARR( 0.428E-11,     0., 0.0);
+{ 21730} GNN502D +GNO3               =       G3N500w +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 21731} GNN502D+HV               =       G1N505a +      GNO2                                   :  0.100E+01*SUN;
+{ 21732} GNN502D+HV               =       G1N505b +      GNO2                                   :  0.100E+01*SUN;
+{ 21733} GNN502D+HV               =       GND400A +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 21734} GNN502D+HV               =       GNK3001 +      GND2000                                :  0.100E+01*SUN;
+{ 21735} G3N500w +GHO2               =  0.800GGN501D + 0.200GAN501M + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 21736} G3N500w +GNO                =       GND400A + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 21737} G3N500w +GNO2               =       GPN501Q                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 21738} G3N500w +GNO3               =       GND400A + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 21739} G3N500w +MEPERO             =  0.685GND400A + 0.315GAN501M + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 21740} G3N500w +PERO1              =  0.800GND400A + 0.200GAN501M + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 21741} G3N500w +PERO2              =  0.750GND400A + 0.250GAN501M + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 21742} G3N500w +PERO3              =  0.800GND400A + 0.200GAN501M + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 21743} G3N500w +PERO5              =  0.650GND400A + 0.350GAN501M + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 21744} G3N500w +PERO6              =  0.650GND400A + 0.350GAN501M + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 21745} G3N500w +PERO9              =       GND400A +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 21746} G1N505a                     =       GDO2000 +      GND3005 +      GHO2                    : ARR( 0.200E+15,  2745., 0.0);
+{ 21747} G1N505b                     =       GND500s +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{ 21748} G1N505b                     =       GND400A +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 21749} GNN400E +GHO                =       GNN400Z +      GHO2                                   : ARR( 0.833E-12,     0., 0.0);
+{ 21750} GNN400E +GHO                =       G3N400B                                               : ARR( 0.430E-11,     0., 0.0);
+{ 21751} GNN400E +GNO3               =       G3N400B +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 21752} GNN400E+HV               =       G1N400x +      GNO2                                   :  0.100E+01*SUN;
+{ 21753} GNN400E+HV               =       G1N400y +      GNO2                                   :  0.100E+01*SUN;
+{ 21754} GNN400E+HV               =       GND3004 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 21755} GNN400E+HV               =  2.000GND2000                                               :  0.100E+01*SUN;
+{ 21756} G1N400x                     =       GCH2O   +      GND3005 +      GHO2                    : ARR( 0.200E+15,  4465., 0.0);
+{ 21757} G1N400y                     =       GND3004 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 21758} GHN5034 +GHO                =       GNN5026 +      GHO                                    : ARR( 0.169E-11,     0., 0.0);
+{ 21759} GHN5034 +GHO                =       G3H500o                                               : ARR( 0.212E-10,     0., 0.0);
+{ 21760} GHN5034 +GHO                =       G2N504U                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 21761} GHN5034 +GNO3               =       G3H500o +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 21762} GHN5034+HV               =       G1H505R +      GNO2                                   :  0.100E+01*SUN;
+{ 21763} GHN5034+HV               =       G1N505J +      GHO                                    :  0.100E+01*SUN;
+{ 21764} GHN5034+HV               =       G1H501x +      GNO2                                   :  0.100E+01*SUN;
+{ 21765} GHN5034+HV               =       G2H400i +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 21766} GHN5034+HV               =       GND3003 +      GD02000 +      GNO2    +      GHO      :  0.100E+01*SUN;
+{ 21767} G3H500o +GHO2               =  0.800GGH5019 + 0.200GAH500s + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 21768} G3H500o +GNO                =       G2H400i +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 21769} G3H500o +GNO2               =       GPH500t                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 21770} G3H500o +GNO3               =       G2H400i +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 21771} G3H500o +MEPERO             =  0.685G2H400i + 0.315GAH500s + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 21772} G3H500o +PERO1              =  0.800G2H400i + 0.200GAH500s + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 21773} G3H500o +PERO2              =  0.750G2H400i + 0.250GAH500s + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 21774} G3H500o +PERO3              =  0.800G2H400i + 0.200GAH500s + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 21775} G3H500o +PERO5              =  0.650G2H400i + 0.350GAH500s + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 21776} G3H500o +PERO6              =  0.650G2H400i + 0.350GAH500s + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 21777} G3H500o +PERO9              =       G2H400i +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 21778} G2N504U +GNO                =       G1N505J +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 21779} G2N504U +GNO                =       GNN5025                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 21780} G2N504U +GHO2               =       GHN5034                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 21781} G2N504U +GNO3               =       G1N505J +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 21782} G2N504U +MEPERO             =  0.340G1N505J + 0.330GNN500f + 0.330GNN5026                 : ARR( 0.565E-13,  -845., 0.0);
+{ 21783} G2N504U +PERO1              =  0.460G1N505J + 0.270GNN500f + 0.270GNN5026                 : ARR( 0.434E-13,  -900., 0.0);
+{ 21784} G2N504U +PERO2              =  0.400G1N505J + 0.300GNN500f + 0.300GNN5026                 : ARR( 0.162E-13, -1400., 0.0);
+{ 21785} G2N504U +PERO3              =  0.460G1N505J + 0.270GNN500f + 0.270GNN5026                 : ARR( 0.488E-13, -1250., 0.0);
+{ 21786} G2N504U +PERO5              =  0.460G1N505J + 0.270GNN500f + 0.270GNN5026                 : ARR( 0.183E-11,   450., 0.0);
+{ 21787} G2N504U +PERO6              =  0.300G1N505J + 0.350GNN500f + 0.350GNN5026                 : ARR( 0.168E-13, -1300., 0.0);
+{ 21788} G2N504U +PERO9              =  0.650G1N505J + 0.350GNN5026                                : ARR( 0.100E-10,     0., 0.0);
+{ 21789} G1H505R                     =       G2H502B                                               : ARR( 0.160E+12,  3940., 0.0);
+{ 21790} G1H505R                     =       GND400D +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{ 21791} G2H400i +GNO                =       G1H400m +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 21792} G2H400i +GNO                =       GHN400w                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 21793} G2H400i +GHO2               =       GHH400f                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 21794} G2H400i +GNO3               =       G1H400m +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 21795} G2H400i +MEPERO             =  0.480G1H400m + 0.260GHN400s + 0.260GHN4012                 : ARR( 0.164E-12,  -795., 0.0);
+{ 21796} G2H400i +PERO1              =  0.600G1H400m + 0.200GHN400s + 0.200GHN4012                 : ARR( 0.126E-12,  -850., 0.0);
+{ 21797} G2H400i +PERO2              =  0.560G1H400m + 0.220GHN400s + 0.220GHN4012                 : ARR( 0.471E-13, -1350., 0.0);
+{ 21798} G2H400i +PERO3              =  0.600G1H400m + 0.200GHN400s + 0.200GHN4012                 : ARR( 0.142E-12, -1200., 0.0);
+{ 21799} G2H400i +PERO5              =  0.600G1H400m + 0.200GHN400s + 0.200GHN4012                 : ARR( 0.533E-11,   500., 0.0);
+{ 21800} G2H400i +PERO6              =  0.460G1H400m + 0.270GHN400s + 0.270GHN4012                 : ARR( 0.488E-13, -1250., 0.0);
+{ 21801} G2H400i +PERO9              =  0.800G1H400m + 0.200GHN4012                                : ARR( 0.100E-10,     0., 0.0);
+{ 21802} G2H502B +GNO                =       G1H505S +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 21803} G2H502B +GNO                =       GHN505l                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 21804} G2H502B +GHO2               =       GHH5025                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 21805} G2H502B +GNO3               =       G1H505S +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 21806} G2H502B +MEPERO             =  0.340G1H505S + 0.330GHN505m + 0.330GHN505n                 : ARR( 0.565E-13,  -845., 0.0);
+{ 21807} G2H502B +PERO1              =  0.460G1H505S + 0.270GHN505m + 0.270GHN505n                 : ARR( 0.434E-13,  -900., 0.0);
+{ 21808} G2H502B +PERO2              =  0.400G1H505S + 0.300GHN505m + 0.300GHN505n                 : ARR( 0.162E-13, -1400., 0.0);
+{ 21809} G2H502B +PERO3              =  0.460G1H505S + 0.270GHN505m + 0.270GHN505n                 : ARR( 0.488E-13, -1250., 0.0);
+{ 21810} G2H502B +PERO5              =  0.460G1H505S + 0.270GHN505m + 0.270GHN505n                 : ARR( 0.183E-11,   450., 0.0);
+{ 21811} G2H502B +PERO6              =  0.300G1H505S + 0.350GHN505m + 0.350GHN505n                 : ARR( 0.168E-13, -1300., 0.0);
+{ 21812} G2H502B +PERO9              =  0.650G1H505S + 0.350GHN505n                                : ARR( 0.100E-10,     0., 0.0);
+{ 21813} G1H400m +OXYGEN             =       GHN4012 +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 21814} G1H400m                     =       GHN400h +      GNO2                                   : ARR( 0.160E+12,  4531., 0.0);
+{ 21815} G1H400m                     =       GHN3007 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7042., 0.0);
+{ 21816} G1H505S                     =       GHN505o +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{ 21817} G1H505S                     =       GHN400L +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 21818} GHH500k +GHO                =       GHH5025 +      GHO2                                   : ARR( 0.814E-11,     0., 0.0);
+{ 21819} GHH500k +GHO                =       GHN5036 +      GHO                                    : ARR( 0.167E-10,     0., 0.0);
+{ 21820} GHH500k +GHO                =       G2H500o                                               : ARR( 0.385E-11,  -190., 0.0);
+{ 21821} GHH500k+HV               =       G1H501L +      GHO                                    :  0.200E+01*SUN;
+{ 21822} GHH500k+HV               =       G1H505T +      GNO2                                   :  0.100E+01*SUN;
+{ 21823} G1H505T                     =       GDO2000 +      GHD3003 +      GHO                     : ARR( 0.400E+15,  4784., 0.0);
+{ 21824} GHN5035 +GHO                =       GHN505m +      GHO2                                   : ARR( 0.412E-11,     0., 0.0);
+{ 21825} GHN5035 +GHO                =       GHN5036 +      GHO2                                   : ARR( 0.211E-11,     0., 0.0);
+{ 21826} GHN5035 +GHO                =       GNK5017 +      GHO                                    : ARR( 0.844E-11,     0., 0.0);
+{ 21827} GHN5035 +GHO                =       GHN5037 +      GHO2                                   : ARR( 0.412E-11,     0., 0.0);
+{ 21828} GHN5035 +GHO                =       G2N504W                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 21829} GHN5035+HV               =       G1H505U +      GNO2                                   :  0.100E+01*SUN;
+{ 21830} GHN5035+HV               =       G1N505X +      GHO                                    :  0.100E+01*SUN;
+{ 21831} G2N504W +GNO                =       G1N505X +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 21832} G2N504W +GNO                =       GNN502B                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 21833} G2N504W +GHO2               =       GHN5035                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 21834} G2N504W +GNO3               =       G1N505X +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 21835} G2N504W +MEPERO             =  0.340G1N505X + 0.330GNO500c + 0.330GNK5017                 : ARR( 0.565E-13,  -845., 0.0);
+{ 21836} G2N504W +PERO1              =  0.460G1N505X + 0.270GNO500c + 0.270GNK5017                 : ARR( 0.434E-13,  -900., 0.0);
+{ 21837} G2N504W +PERO2              =  0.400G1N505X + 0.300GNO500c + 0.300GNK5017                 : ARR( 0.162E-13, -1400., 0.0);
+{ 21838} G2N504W +PERO3              =  0.460G1N505X + 0.270GNO500c + 0.270GNK5017                 : ARR( 0.488E-13, -1250., 0.0);
+{ 21839} G2N504W +PERO5              =  0.460G1N505X + 0.270GNO500c + 0.270GNK5017                 : ARR( 0.183E-11,   450., 0.0);
+{ 21840} G2N504W +PERO6              =  0.300G1N505X + 0.350GNO500c + 0.350GNK5017                 : ARR( 0.168E-13, -1300., 0.0);
+{ 21841} G2N504W +PERO9              =  0.650G1N505X + 0.350GNK5017                                : ARR( 0.100E-10,     0., 0.0);
+{ 21842} G1H505U                     =       GHD3003 +      GDO2000 +      GHO2                    : ARR( 0.200E+15,  3575., 0.0);
+{ 21843} GHN5036 +GHO                =       GHN505n +      GHO2                                   : ARR( 0.250E-11,     0., 0.0);
+{ 21844} GHN5036 +GHO                =       GNK5014 +      GHO                                    : ARR( 0.840E-11,     0., 0.0);
+{ 21845} GHN5036 +GHO                =       GHN505p +      GHO2                                   : ARR( 0.410E-11,     0., 0.0);
+{ 21846} GHN5036 +GHO                =       G2N504X                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 21847} GHN5036+HV               =       G3K2001 +      GHD3003 +      GNO2                    :  0.100E+01*SUN;
+{ 21848} GHN5036+HV               =       GNK3001 +      GHD2000                                :  0.100E+01*SUN;
+{ 21849} GHN5036+HV               =       G1H505W +      GNO2                                   :  0.100E+01*SUN;
+{ 21850} GHN5036+HV               =       G1N505Z +      GHO                                    :  0.100E+01*SUN;
+{ 21851} G2N504X +GNO                =       G1N505Z +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 21852} G2N504X +GNO                =       GNN502C                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 21853} G2N504X +GHO2               =       GHN5036                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 21854} G2N504X +GNO3               =       G1N505Z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 21855} G2N504X +MEPERO             =  0.340G1N505Z + 0.330GNK5017 + 0.330GNK5014                 : ARR( 0.565E-13,  -845., 0.0);
+{ 21856} G2N504X +PERO1              =  0.460G1N505Z + 0.270GNK5017 + 0.270GNK5014                 : ARR( 0.434E-13,  -900., 0.0);
+{ 21857} G2N504X +PERO2              =  0.400G1N505Z + 0.300GNK5017 + 0.300GNK5014                 : ARR( 0.162E-13, -1400., 0.0);
+{ 21858} G2N504X +PERO3              =  0.460G1N505Z + 0.270GNK5017 + 0.270GNK5014                 : ARR( 0.488E-13, -1250., 0.0);
+{ 21859} G2N504X +PERO5              =  0.460G1N505Z + 0.270GNK5017 + 0.270GNK5014                 : ARR( 0.183E-11,   450., 0.0);
+{ 21860} G2N504X +PERO6              =  0.300G1N505Z + 0.350GNK5017 + 0.350GNK5014                 : ARR( 0.168E-13, -1300., 0.0);
+{ 21861} G2N504X +PERO9              =  0.650G1N505Z + 0.350GNK5014                                : ARR( 0.100E-10,     0., 0.0);
+{ 21862} G1H505W                     =       GHD3003 +      G3K2001                                : ARR( 0.200E+15,  3009., 0.0);
+{ 21863} GHN5037 +GHO                =       GHN505o +      GHO2                                   : ARR( 0.410E-11,     0., 0.0);
+{ 21864} GHN5037 +GHO                =       GHN505p +      GHO2                                   : ARR( 0.210E-11,     0., 0.0);
+{ 21865} GHN5037 +GHO                =       GND5012 +      GHO                                    : ARR( 0.512E-11,     0., 0.0);
+{ 21866} GHN5037 +GHO                =       G3H500p                                               : ARR( 0.212E-10,     0., 0.0);
+{ 21867} GHN5037 +GHO                =       G2N504Y                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 21868} GHN5037 +GNO3               =       G3H500p +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 21869} GHN5037+HV               =       G1H502A +      GNO2                                   :  0.100E+01*SUN;
+{ 21870} GHN5037+HV               =       G1N505b +      GHO                                    :  0.100E+01*SUN;
+{ 21871} GHN5037+HV               =       GND400A +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 21872} G3H500p +GHO2               =  0.800GGH501A + 0.200GAH501R + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 21873} G3H500p +GNO                =       GND400A +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 21874} G3H500p +GNO2               =       GPH501S                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 21875} G3H500p +GNO3               =       GND400A +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 21876} G3H500p +MEPERO             =  0.685GND400A + 0.315GAH501R + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 21877} G3H500p +PERO1              =  0.800GND400A + 0.200GAH501R + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 21878} G3H500p +PERO2              =  0.750GND400A + 0.250GAH501R + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 21879} G3H500p +PERO3              =  0.800GND400A + 0.200GAH501R + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 21880} G3H500p +PERO5              =  0.650GND400A + 0.350GAH501R + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 21881} G3H500p +PERO6              =  0.650GND400A + 0.350GAH501R + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 21882} G3H500p +PERO9              =       GND400A +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 21883} G2N504Y +GNO                =       G1N505b +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 21884} G2N504Y +GNO                =       GNN502D                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 21885} G2N504Y +GHO2               =       GHN5037                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 21886} G2N504Y +GNO3               =       G1N505b +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 21887} G2N504Y +MEPERO             =  0.340G1N505b + 0.330GND500T + 0.330GND5012                 : ARR( 0.565E-13,  -845., 0.0);
+{ 21888} G2N504Y +PERO1              =  0.460G1N505b + 0.270GND500T + 0.270GND5012                 : ARR( 0.434E-13,  -900., 0.0);
+{ 21889} G2N504Y +PERO2              =  0.400G1N505b + 0.300GND500T + 0.300GND5012                 : ARR( 0.162E-13, -1400., 0.0);
+{ 21890} G2N504Y +PERO3              =  0.460G1N505b + 0.270GND500T + 0.270GND5012                 : ARR( 0.488E-13, -1250., 0.0);
+{ 21891} G2N504Y +PERO5              =  0.460G1N505b + 0.270GND500T + 0.270GND5012                 : ARR( 0.183E-11,   450., 0.0);
+{ 21892} G2N504Y +PERO6              =  0.300G1N505b + 0.350GND500T + 0.350GND5012                 : ARR( 0.168E-13, -1300., 0.0);
+{ 21893} G2N504Y +PERO9              =  0.650G1N505b + 0.350GND5012                                : ARR( 0.100E-10,     0., 0.0);
+{ 21894} GHN400L +GHO                =       GHN400y +      GHO2                                   : ARR( 0.406E-11,     0., 0.0);
+{ 21895} GHN400L +GHO                =       GND400L +      GHO                                    : ARR( 0.833E-11,     0., 0.0);
+{ 21896} GHN400L +GHO                =       G3H400K                                               : ARR( 0.420E-11,     0., 0.0);
+{ 21897} GHN400L +GHO                =       G2N400r                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 21898} GHN400L +GNO3               =       G3H400K +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 21899} GHN400L+HV               =       G1N400x +      GHO                                    :  0.100E+01*SUN;
+{ 21900} GHN400L+HV               =       G1H400n +      GNO2                                   :  0.100E+01*SUN;
+{ 21901} GHN400L+HV               =       GHD3003 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 21902} GHN400L+HV               =       GHD2000 +      GND2000                                :  0.100E+01*SUN;
+{ 21903} G3H400K +GHO2               =  0.800GGH400T + 0.200GAH400U + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 21904} G3H400K +GNO                =       GHD3003 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 21905} G3H400K +GNO2               =       GPH400W                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 21906} G3H400K +GNO3               =       GHD3003 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 21907} G3H400K +MEPERO             =  0.685GHD3003 + 0.315GAH400U + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 21908} G3H400K +PERO1              =  0.800GHD3003 + 0.200GAH400U + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 21909} G3H400K +PERO2              =  0.750GHD3003 + 0.250GAH400U + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 21910} G3H400K +PERO3              =  0.800GHD3003 + 0.200GAH400U + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 21911} G3H400K +PERO5              =  0.650GHD3003 + 0.350GAH400U + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 21912} G3H400K +PERO6              =  0.650GHD3003 + 0.350GAH400U + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 21913} G3H400K +PERO9              =       GHD3003 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 21914} G2N400r +GNO                =       G1N400x +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 21915} G2N400r +GNO                =       GNN400E                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 21916} G2N400r +GHO2               =       GHN400L                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 21917} G2N400r +GNO3               =       G1N400x +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 21918} G2N400r +MEPERO             =  0.340G1N400x + 0.330GND400A + 0.330GND400L                 : ARR( 0.565E-13,  -845., 0.0);
+{ 21919} G2N400r +PERO1              =  0.460G1N400x + 0.270GND400A + 0.270GND400L                 : ARR( 0.434E-13,  -900., 0.0);
+{ 21920} G2N400r +PERO2              =  0.400G1N400x + 0.300GND400A + 0.300GND400L                 : ARR( 0.162E-13, -1400., 0.0);
+{ 21921} G2N400r +PERO3              =  0.460G1N400x + 0.270GND400A + 0.270GND400L                 : ARR( 0.488E-13, -1250., 0.0);
+{ 21922} G2N400r +PERO5              =  0.460G1N400x + 0.270GND400A + 0.270GND400L                 : ARR( 0.183E-11,   450., 0.0);
+{ 21923} G2N400r +PERO6              =  0.300G1N400x + 0.350GND400A + 0.350GND400L                 : ARR( 0.168E-13, -1300., 0.0);
+{ 21924} G2N400r +PERO9              =  0.650G1N400x + 0.350GND400L                                : ARR( 0.100E-10,     0., 0.0);
+{ 21925} G1H400n                     =       GDO2000 +      GDD2000 +      GHO                     : ARR( 0.200E+15,  6256., 0.0);
+{ 21926} G1H400n                     =       GHD3003 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 21927} GHN5038 +GHO                =       GHN504q +      GHO2                                   : ARR( 0.424E-11,     0., 0.0);
+{ 21928} GHN5038 +GHO                =       GNN5024 +      GHO                                    : ARR( 0.869E-11,     0., 0.0);
+{ 21929} GHN5038 +GHO                =       G2N502T                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 21930} GHN5038+HV               =       G1N502j +      GHO                                    :  0.100E+01*SUN;
+{ 21931} GHN5038+HV               =       G1H505X +      GNO2                                   :  0.100E+01*SUN;
+{ 21932} GHN5038+HV               =       G1H505Y +      GNO2                                   :  0.100E+01*SUN;
+{ 21933} G1H505X                     =       GHD3003 +      GND2000 +      GHO2                    : ARR( 0.200E+15,  3575., 0.0);
+{ 21934} G1H505Y                     =       GNK5017 +      GHO                                    : ARR( 0.800E+11,  2398., 0.0);
+{ 21935} G1H505Y                     =       GHN400L +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 21936} GNN400F +GHO                =       GNN400G +      GHO2                                   : ARR( 0.435E-12,     0., 0.0);
+{ 21937} GNN400F +GHO                =       G3N400K                                               : ARR( 0.439E-11,     0., 0.0);
+{ 21938} GNN400F +GNO3               =       G3N400K +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 21939} GNN400F+HV               =       G1N400z +      GNO2                                   :  0.100E+01*SUN;
+{ 21940} GNN400F+HV               =       G1N4011 +      GNO2                                   :  0.100E+01*SUN;
+{ 21941} GNN400F+HV               =       GND3002 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 21942} GNN400F+HV               =  2.000GND2000                                               :  0.100E+01*SUN;
+{ 21943} G1N400z                     =       GND3005 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4427., 0.0);
+{ 21944} G1N4011                     =       GND2000 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  5047., 0.0);
+{ 21945} G1N4011                     =       GND3002 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 21946} GHN5039 +GHO                =       GHN505q +      GHO2                                   : ARR( 0.408E-11,     0., 0.0);
+{ 21947} GHN5039 +GHO                =       GNN502F +      GHO                                    : ARR( 0.837E-11,     0., 0.0);
+{ 21948} GHN5039 +GHO                =       G2N502U                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 21949} GHN5039+HV               =       G1N502l +      GHO                                    :  0.100E+01*SUN;
+{ 21950} GHN5039+HV               =       G1H505Z +      GNO2                                   :  0.100E+01*SUN;
+{ 21951} GHN5039+HV               =       G3H400K +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{ 21952} GHN5039+HV               =       GHD2000 +      GNN3006                                :  0.100E+01*SUN;
+{ 21953} GHN5039+HV               =       G1H505a +      GNO2                                   :  0.100E+01*SUN;
+{ 21954} G1H505Z                     =       GHD3003 +      G3N2000                                : ARR( 0.200E+15,  2890., 0.0);
+{ 21955} G1H505a                     =       G3H400K +      GCH2O                                  : ARR( 0.200E+15,  3640., 0.0);
+{ 21956} GNN502E +GHO                =       GNN503B +      GHO2                                   : ARR( 0.427E-11,     0., 0.0);
+{ 21957} GNN502E +GHO                =       GNN502F +      GHO2                                   : ARR( 0.219E-11,     0., 0.0);
+{ 21958} GNN502E+HV               =       G1N505c +      GNO2                                   :  0.100E+01*SUN;
+{ 21959} GNN502E+HV               =       G3N400F +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{ 21960} GNN502E+HV               =       GDO2000 +      GNN3006                                :  0.100E+01*SUN;
+{ 21961} GNN502E+HV               =       G1N505d +      GNO2                                   :  0.100E+01*SUN;
+{ 21962} G1N505c                     =       GDO3002 +      G3N2000                                : ARR( 0.200E+15,  2890., 0.0);
+{ 21963} G1N505d                     =       G3N400F +      GCH2O                                  : ARR( 0.200E+15,  3640., 0.0);
+{ 21964} GNN502F +GHO                =       GNN5038 +      GHO2                                   : ARR( 0.252E-11,     0., 0.0);
+{ 21965} GNN502F +GHO                =       G1N5057                                               : ARR( 0.216E-17,    85., 2.0);
+{ 21966} GNN502F+HV               =       G3K2001 +      GND3003 +      GNO2                    :  0.100E+01*SUN;
+{ 21967} GNN502F+HV               =       G1N503G +      GNO2                                   :  0.100E+01*SUN;
+{ 21968} GNN502F+HV               =       G3N400Q +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{ 21969} GNN502F+HV               =       G1N505e +      GNO2                                   :  0.100E+01*SUN;
+{ 21970} G3N400Q +GHO2               =  0.800GGN400S + 0.200GAN400X + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 21971} G3N400Q +GNO                =       GDK3001 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 21972} G3N400Q +GNO2               =       GPN400Y                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 21973} G3N400Q +GNO3               =       GDK3001 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 21974} G3N400Q +MEPERO             =  0.685GDK3001 + 0.315GAN400X + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 21975} G3N400Q +PERO1              =  0.800GDK3001 + 0.200GAN400X + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 21976} G3N400Q +PERO2              =  0.750GDK3001 + 0.250GAN400X + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 21977} G3N400Q +PERO3              =  0.800GDK3001 + 0.200GAN400X + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 21978} G3N400Q +PERO5              =  0.650GDK3001 + 0.350GAN400X + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 21979} G3N400Q +PERO6              =  0.650GDK3001 + 0.350GAN400X + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 21980} G3N400Q +PERO9              =       GDK3001 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 21981} G1N505e                     =       G3N400Q +      GCH2O                                  : ARR( 0.200E+15,  4694., 0.0);
+{ 21982} GGN400E +GHO                =       GGN400M +      GHO2                                   : ARR( 0.428E-11,     0., 0.0);
+{ 21983} GGN400E +GHO                =       G3N4008                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 21984} GGN400E+HV               =       G1G4009 +      GNO2                                   :  0.100E+01*SUN;
+{ 21985} GGN400E+HV               =       GDO3000 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 21986} GAN400E +GHO                =       GAN400N +      GHO2                                   : ARR( 0.418E-11,     0., 0.0);
+{ 21987} GAN400E +GHO                =       G2A400Q                                               : ARR( 0.294E-12,     0., 0.0);
+{ 21988} GAN400E +GHO                =       GDO3000 +      GNO2    +      GCO2                    : ARR( 0.541E-12,     0., 0.0);
+{ 21989} GAN400E+HV               =       G1A4009 +      GNO2                                   :  0.100E+01*SUN;
+{ 21990} G2A400Q +GNO                =       G1A400Y +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 21991} G2A400Q +GNO                =       GAN400I                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 21992} G2A400Q +GHO2               =       GAH400U                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 21993} G2A400Q +GNO3               =       G1A400Y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 21994} G2A400Q +MEPERO             =  0.340G1A400Y + 0.330GAN400O + 0.330GAN400X                 : ARR( 0.565E-13,  -845., 0.0);
+{ 21995} G2A400Q +PERO1              =  0.460G1A400Y + 0.270GAN400O + 0.270GAN400X                 : ARR( 0.434E-13,  -900., 0.0);
+{ 21996} G2A400Q +PERO2              =  0.400G1A400Y + 0.300GAN400O + 0.300GAN400X                 : ARR( 0.162E-13, -1400., 0.0);
+{ 21997} G2A400Q +PERO3              =  0.460G1A400Y + 0.270GAN400O + 0.270GAN400X                 : ARR( 0.488E-13, -1250., 0.0);
+{ 21998} G2A400Q +PERO5              =  0.460G1A400Y + 0.270GAN400O + 0.270GAN400X                 : ARR( 0.183E-11,   450., 0.0);
+{ 21999} G2A400Q +PERO6              =  0.300G1A400Y + 0.350GAN400O + 0.350GAN400X                 : ARR( 0.168E-13, -1300., 0.0);
+{ 22000} G2A400Q +PERO9              =  0.650G1A400Y + 0.350GAN400X                                : ARR( 0.100E-10,     0., 0.0);
+{ 22001} G1A400Y                     =       GCH2O   +      GAN3006 +      GHO2                    : ARR( 0.200E+15,  4465., 0.0);
+{ 22002} GPN400E                     =       G3N4008 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 22003} GPN400E +GHO                =       GPN400N +      GHO2                                   : ARR( 0.422E-11,     0., 0.0);
+{ 22004} GPN400E +GHO                =       G2P400S                                               : ARR( 0.297E-12,     0., 0.0);
+{ 22005} GPN400E+HV               =       G1P4009 +      GNO2                                   :  0.100E+01*SUN;
+{ 22006} GPN400E+HV               =       G3N4008 +      GNO2                                   :  0.100E+01*SUN;
+{ 22007} G2P400S +GNO                =       G1P400Z +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 22008} G2P400S +GNO                =       GPN400J                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 22009} G2P400S +GHO2               =       GPH400W                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 22010} G2P400S +GNO3               =       G1P400Z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 22011} G2P400S +MEPERO             =  0.340G1P400Z + 0.330GPN400O + 0.330GPN400Y                 : ARR( 0.565E-13,  -845., 0.0);
+{ 22012} G2P400S +PERO1              =  0.460G1P400Z + 0.270GPN400O + 0.270GPN400Y                 : ARR( 0.434E-13,  -900., 0.0);
+{ 22013} G2P400S +PERO2              =  0.400G1P400Z + 0.300GPN400O + 0.300GPN400Y                 : ARR( 0.162E-13, -1400., 0.0);
+{ 22014} G2P400S +PERO3              =  0.460G1P400Z + 0.270GPN400O + 0.270GPN400Y                 : ARR( 0.488E-13, -1250., 0.0);
+{ 22015} G2P400S +PERO5              =  0.460G1P400Z + 0.270GPN400O + 0.270GPN400Y                 : ARR( 0.183E-11,   450., 0.0);
+{ 22016} G2P400S +PERO6              =  0.300G1P400Z + 0.350GPN400O + 0.350GPN400Y                 : ARR( 0.168E-13, -1300., 0.0);
+{ 22017} G2P400S +PERO9              =  0.650G1P400Z + 0.350GPN400Y                                : ARR( 0.100E-10,     0., 0.0);
+{ 22018} G1P400Z                     =       GCH2O   +      GPN3006 +      GHO2                    : ARR( 0.200E+15,  4465., 0.0);
+{ 22019} GNN400G +GHO                =       G3N400L                                               : ARR( 0.423E-11,     0., 0.0);
+{ 22020} GNN400G +GNO3               =       G3N400L +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 22021} GNN400G+HV               =       G1N4012 +      GNO2                                   :  0.100E+01*SUN;
+{ 22022} GNN400G+HV               =       G3N2000 +      GDD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 22023} GNN400G+HV               =       G1N4013 +      GNO2                                   :  0.100E+01*SUN;
+{ 22024} GNN400G+HV               =       GND3003 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 22025} G1N4012                     =       G3N3005 +      GCH2O                                  : ARR( 0.200E+15,  4694., 0.0);
+{ 22026} G1N4013                     =       G3N2000 +      GDD2000                                : ARR( 0.200E+15,  4834., 0.0);
+{ 22027} G3N3005 +GHO2               =  0.800GGN3005 + 0.200GAN3006 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 22028} G3N3005 +GNO                =       GDD2000 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 22029} G3N3005 +GNO2               =       GPN3006                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 22030} G3N3005 +GNO3               =       GDD2000 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 22031} G3N3005 +MEPERO             =  0.685GDD2000 + 0.315GAN3006 + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 22032} G3N3005 +PERO1              =  0.800GDD2000 + 0.200GAN3006 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 22033} G3N3005 +PERO2              =  0.750GDD2000 + 0.250GAN3006 + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 22034} G3N3005 +PERO3              =  0.800GDD2000 + 0.200GAN3006 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 22035} G3N3005 +PERO5              =  0.650GDD2000 + 0.350GAN3006 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 22036} G3N3005 +PERO6              =  0.650GDD2000 + 0.350GAN3006 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 22037} G3N3005 +PERO9              =       GDD2000 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 22038} GHN503A +GHO                =       GHN504y +      GHO2                                   : ARR( 0.438E-12,     0., 0.0);
+{ 22039} GHN503A +GHO                =       GNN5021 +      GHO                                    : ARR( 0.175E-11,     0., 0.0);
+{ 22040} GHN503A +GHO                =       G2N502W                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 22041} GHN503A+HV               =       G1H505b +      GNO2                                   :  0.100E+01*SUN;
+{ 22042} GHN503A+HV               =       G1H502I +      GNO2                                   :  0.100E+01*SUN;
+{ 22043} GHN503A+HV               =       G1N502m +      GHO                                    :  0.100E+01*SUN;
+{ 22044} GHN503A+HV               =       G1H505F +      GNO2                                   :  0.100E+01*SUN;
+{ 22045} G1H505b                     =       GNN502E +      GHO                                    : ARR( 0.800E+11,  3117., 0.0);
+{ 22046} G1H505b                     =       GHN4012 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 22047} GNN502G +GHO                =       GNN502H +      GNO2                                   : ARR( 0.919E-13,     0., 0.0);
+{ 22048} GNN502G +GHO                =       GNN5021 +      GHO2                                   : ARR( 0.824E-12,     0., 0.0);
+{ 22049} GNN502G +GHO                =       GNN502R +      GNO2                                   : ARR( 0.118E-12,     0., 0.0);
+{ 22050} GNN502G +GHO                =       G1N502m                                               : ARR( 0.420E-17,    85., 2.0);
+{ 22051} GNN502G+HV               =       G1N503p +      GNO2                                   :  0.200E+01*SUN;
+{ 22052} GNN502G+HV               =       G1N503J +      GNO2                                   :  0.100E+01*SUN;
+{ 22053} GNN502H +GHO                =       GNN5037 +      GHO2                                   : ARR( 0.132E-11,     0., 0.0);
+{ 22054} GNN502H +GHO                =       G3N500x                                               : ARR( 0.218E-10,     0., 0.0);
+{ 22055} GNN502H +GNO3               =       G3N500x +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 22056} GNN502H+HV               =       G1N503w +      GNO2                                   :  0.100E+01*SUN;
+{ 22057} GNN502H+HV               =       G1N503N +      GNO2                                   :  0.100E+01*SUN;
+{ 22058} GNN502H+HV               =       GNN400F +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 22059} G3N500x +GHO2               =  0.800GGN501E + 0.200GAN501N + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 22060} G3N500x +GNO                =       GNN400F +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 22061} G3N500x +GNO2               =       GPN500r                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 22062} G3N500x +GNO3               =       GNN400F +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 22063} G3N500x +MEPERO             =  0.685GNN400F + 0.315GAN501N + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 22064} G3N500x +PERO1              =  0.800GNN400F + 0.200GAN501N + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 22065} G3N500x +PERO2              =  0.750GNN400F + 0.250GAN501N + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 22066} G3N500x +PERO3              =  0.800GNN400F + 0.200GAN501N + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 22067} G3N500x +PERO5              =  0.650GNN400F + 0.350GAN501N + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 22068} G3N500x +PERO6              =  0.650GNN400F + 0.350GAN501N + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 22069} G3N500x +PERO9              =       GNN400F +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 22070} GHN400M +GHO                =       GND400D +      GHO                                    : ARR( 0.163E-10,     0., 0.0);
+{ 22071} GHN400M +GHO                =       G3H400I                                               : ARR( 0.422E-11,     0., 0.0);
+{ 22072} GHN400M +GHO                =       G2N400n                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 22073} GHN400M +GNO3               =       G3H400I +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 22074} GHN400M+HV               =       G1N400h +      GHO                                    :  0.100E+01*SUN;
+{ 22075} GHN400M+HV               =       G1H400o +      GNO2                                   :  0.100E+01*SUN;
+{ 22076} GHN400M+HV               =       GHD3000 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 22077} GHN400M+HV               =       G2D2000 +      GND2000 +      GHO                     :  0.100E+01*SUN;
+{ 22078} G1H400o                     =       GHD3000 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5437., 0.0);
+{ 22079} GGN500F +GHO                =       GGN501C +      GHO2                                   : ARR( 0.461E-12,     0., 0.0);
+{ 22080} GGN500F +GHO                =       G3N500B                                               : ARR( 0.213E-11,  -190., 0.0);
+{ 22081} GGN500F+HV               =       G1G5011 +      GNO2                                   :  0.100E+01*SUN;
+{ 22082} GGN500F+HV               =       G1G500A +      GNO2                                   :  0.100E+01*SUN;
+{ 22083} GGN500F+HV               =       G2N400G +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 22084} G1G5011                     =       GGN400I +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 22085} GAN500H +GHO                =       G2A501A                                               : ARR( 0.132E-12,     0., 0.0);
+{ 22086} GAN500H +GHO                =       GAN500L +      GNO2                                   : ARR( 0.122E-12,     0., 0.0);
+{ 22087} GAN500H +GHO                =       GAN500v +      GHO2                                   : ARR( 0.427E-12,     0., 0.0);
+{ 22088} GAN500H +GHO                =       G1A500i                                               : ARR( 0.217E-17,    85., 2.0);
+{ 22089} GAN500H +GHO                =       G2N400G +      GCO2                                   : ARR( 0.538E-12,     0., 0.0);
+{ 22090} GAN500H+HV               =       G1A500C +      GNO2                                   :  0.100E+01*SUN;
+{ 22091} GAN500H+HV               =       G1A500d +      GNO2                                   :  0.100E+01*SUN;
+{ 22092} G2A501A +GNO                =       G1A501K +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 22093} G2A501A +GNO                =       GAN501J                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 22094} G2A501A +GHO2               =       GAH501S                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 22095} G2A501A +GNO3               =       G1A501K +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 22096} G2A501A +MEPERO             =  0.340G1A501K + 0.330GAN501N + 0.330GAN501O                 : ARR( 0.565E-13,  -845., 0.0);
+{ 22097} G2A501A +PERO1              =  0.460G1A501K + 0.270GAN501N + 0.270GAN501O                 : ARR( 0.434E-13,  -900., 0.0);
+{ 22098} G2A501A +PERO2              =  0.400G1A501K + 0.300GAN501N + 0.300GAN501O                 : ARR( 0.162E-13, -1400., 0.0);
+{ 22099} G2A501A +PERO3              =  0.460G1A501K + 0.270GAN501N + 0.270GAN501O                 : ARR( 0.488E-13, -1250., 0.0);
+{ 22100} G2A501A +PERO5              =  0.460G1A501K + 0.270GAN501N + 0.270GAN501O                 : ARR( 0.183E-11,   450., 0.0);
+{ 22101} G2A501A +PERO6              =  0.300G1A501K + 0.350GAN501N + 0.350GAN501O                 : ARR( 0.168E-13, -1300., 0.0);
+{ 22102} G2A501A +PERO9              =  0.650G1A501K + 0.350GAN501O                                : ARR( 0.100E-10,     0., 0.0);
+{ 22103} G1A501K                     =       GCO     +      GNN400F +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 22104} GPN500H                     =       G3N500B +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 22105} GPN500H +GHO                =       GPN500p +      GNO2                                   : ARR( 0.460E-13,     0., 0.0);
+{ 22106} GPN500H +GHO                =       GPN500y +      GHO2                                   : ARR( 0.412E-12,     0., 0.0);
+{ 22107} GPN500H +GHO                =       GPN500L +      GNO2                                   : ARR( 0.118E-12,     0., 0.0);
+{ 22108} GPN500H +GHO                =       G2P501C                                               : ARR( 0.172E-12,     0., 0.0);
+{ 22109} GPN500H +GHO                =       G1P500k                                               : ARR( 0.210E-17,    85., 2.0);
+{ 22110} GPN500H+HV               =       G1P500e +      GNO2                                   :  0.100E+01*SUN;
+{ 22111} GPN500H+HV               =       G1P500B +      GNO2                                   :  0.100E+01*SUN;
+{ 22112} GPN500H+HV               =       G3N500B +      GNO2                                   :  0.100E+01*SUN;
+{ 22113} G2P501C +GNO                =       G1P501M +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 22114} G2P501C +GNO                =       GPN501N                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 22115} G2P501C +GHO2               =       GPH501T                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 22116} G2P501C +GNO3               =       G1P501M +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 22117} G2P501C +MEPERO             =  0.340G1P501M + 0.330GPN500r + 0.330GPN501R                 : ARR( 0.565E-13,  -845., 0.0);
+{ 22118} G2P501C +PERO1              =  0.460G1P501M + 0.270GPN500r + 0.270GPN501R                 : ARR( 0.434E-13,  -900., 0.0);
+{ 22119} G2P501C +PERO2              =  0.400G1P501M + 0.300GPN500r + 0.300GPN501R                 : ARR( 0.162E-13, -1400., 0.0);
+{ 22120} G2P501C +PERO3              =  0.460G1P501M + 0.270GPN500r + 0.270GPN501R                 : ARR( 0.488E-13, -1250., 0.0);
+{ 22121} G2P501C +PERO5              =  0.460G1P501M + 0.270GPN500r + 0.270GPN501R                 : ARR( 0.183E-11,   450., 0.0);
+{ 22122} G2P501C +PERO6              =  0.300G1P501M + 0.350GPN500r + 0.350GPN501R                 : ARR( 0.168E-13, -1300., 0.0);
+{ 22123} G2P501C +PERO9              =  0.650G1P501M + 0.350GPN501R                                : ARR( 0.100E-10,     0., 0.0);
+{ 22124} G1P501M                     =       GNN400F +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 22125} GNN400H +GHO                =       GNN400T +      GNO2                                   : ARR( 0.485E-13,     0., 0.0);
+{ 22126} GNN400H +GHO                =       GNN400X +      GHO2                                   : ARR( 0.435E-12,     0., 0.0);
+{ 22127} GNN400H +GHO                =       G1N400o                                               : ARR( 0.221E-17,    85., 2.0);
+{ 22128} GNN400H+HV               =       G1N400k +      GNO2                                   :  0.100E+01*SUN;
+{ 22129} GNN400H+HV               =       G1N400N +      GNO2                                   :  0.100E+01*SUN;
+{ 22130} GNN400H+HV               =       G1N400G +      GNO2                                   :  0.100E+01*SUN;
+{ 22131} GHN400N +GHO                =       GHN4016 +      GHO2                                   : ARR( 0.429E-12,     0., 0.0);
+{ 22132} GHN400N +GHO                =       GNN400F +      GHO                                    : ARR( 0.335E-11,     0., 0.0);
+{ 22133} GHN400N +GHO                =       G2N400G                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 22134} GHN400N+HV               =       G1H400p +      GNO2                                   :  0.100E+01*SUN;
+{ 22135} GHN400N+HV               =       G1H400J +      GNO2                                   :  0.100E+01*SUN;
+{ 22136} GHN400N+HV               =       G1N400G +      GHO                                    :  0.100E+01*SUN;
+{ 22137} G1H400p                     =       GND400A +      GHO                                    : ARR( 0.160E+12,  2905., 0.0);
+{ 22138} G1H400p                     =       GHN300A +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 22139} GHN503B +GHO                =       GNN501A +      GHO                                    : ARR( 0.175E-11,     0., 0.0);
+{ 22140} GHN503B +GHO                =       GHN505T +      GHO2                                   : ARR( 0.856E-12,     0., 0.0);
+{ 22141} GHN503B +GHO                =       G2N504Z                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 22142} GHN503B+HV               =       G1H501f +      GNO2                                   :  0.100E+01*SUN;
+{ 22143} GHN503B+HV               =       G1N503x +      GHO                                    :  0.100E+01*SUN;
+{ 22144} GHN503B+HV               =       G1H501N +      GNO2                                   :  0.100E+01*SUN;
+{ 22145} G2N504Z +GNO                =       G1N503x +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 22146} G2N504Z +GNO                =       GNN5014                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 22147} G2N504Z +GHO2               =       GHN503B                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 22148} G2N504Z +GNO3               =       G1N503x +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 22149} G2N504Z +MEPERO             =  0.340G1N503x + 0.330GNN502I + 0.330GNN501A                 : ARR( 0.565E-13,  -845., 0.0);
+{ 22150} G2N504Z +PERO1              =  0.460G1N503x + 0.270GNN502I + 0.270GNN501A                 : ARR( 0.434E-13,  -900., 0.0);
+{ 22151} G2N504Z +PERO2              =  0.400G1N503x + 0.300GNN502I + 0.300GNN501A                 : ARR( 0.162E-13, -1400., 0.0);
+{ 22152} G2N504Z +PERO3              =  0.460G1N503x + 0.270GNN502I + 0.270GNN501A                 : ARR( 0.488E-13, -1250., 0.0);
+{ 22153} G2N504Z +PERO5              =  0.460G1N503x + 0.270GNN502I + 0.270GNN501A                 : ARR( 0.183E-11,   450., 0.0);
+{ 22154} G2N504Z +PERO6              =  0.300G1N503x + 0.350GNN502I + 0.350GNN501A                 : ARR( 0.168E-13, -1300., 0.0);
+{ 22155} G2N504Z +PERO9              =  0.650G1N503x + 0.350GNN501A                                : ARR( 0.100E-10,     0., 0.0);
+{ 22156} GHH500l +GHO                =       GHN501p +      GHO                                    : ARR( 0.828E-11,     0., 0.0);
+{ 22157} GHH500l +GHO                =       GHN501r +      GHO                                    : ARR( 0.414E-10,     0., 0.0);
+{ 22158} GHH500l +GHO                =       GHH5026 +      GHO2                                   : ARR( 0.404E-11,     0., 0.0);
+{ 22159} GHH500l +GHO                =       G2H502C                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 22160} GHH500l +GHO                =       G2H500p                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 22161} GHH500l+HV               =       G1H501l +      GNO2                                   :  0.100E+01*SUN;
+{ 22162} GHH500l+HV               =       G1H503I +      GHO                                    :  0.100E+01*SUN;
+{ 22163} GHH500l+HV               =       G1H501N +      GHO                                    :  0.100E+01*SUN;
+{ 22164} G2H502C +GNO                =       G1H503I +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 22165} G2H502C +GNO                =       GHN501l                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 22166} G2H502C +GHO2               =       GHH500l                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 22167} G2H502C +GNO3               =       G1H503I +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 22168} G2H502C +MEPERO             =  0.340G1H503I + 0.330GHN503D + 0.330GHN501p                 : ARR( 0.565E-13,  -845., 0.0);
+{ 22169} G2H502C +PERO1              =  0.460G1H503I + 0.270GHN503D + 0.270GHN501p                 : ARR( 0.434E-13,  -900., 0.0);
+{ 22170} G2H502C +PERO2              =  0.400G1H503I + 0.300GHN503D + 0.300GHN501p                 : ARR( 0.162E-13, -1400., 0.0);
+{ 22171} G2H502C +PERO3              =  0.460G1H503I + 0.270GHN503D + 0.270GHN501p                 : ARR( 0.488E-13, -1250., 0.0);
+{ 22172} G2H502C +PERO5              =  0.460G1H503I + 0.270GHN503D + 0.270GHN501p                 : ARR( 0.183E-11,   450., 0.0);
+{ 22173} G2H502C +PERO6              =  0.300G1H503I + 0.350GHN503D + 0.350GHN501p                 : ARR( 0.168E-13, -1300., 0.0);
+{ 22174} G2H502C +PERO9              =  0.650G1H503I + 0.350GHN501p                                : ARR( 0.100E-10,     0., 0.0);
+{ 22175} GHN503C +GHO                =       GNK500i +      GHO                                    : ARR( 0.837E-11,     0., 0.0);
+{ 22176} GHN503C +GHO                =       GHN501r +      GHO2                                   : ARR( 0.105E-10,     0., 0.0);
+{ 22177} GHN503C +GHO                =       GHN505r +      GHO2                                   : ARR( 0.408E-11,     0., 0.0);
+{ 22178} GHN503C +GHO                =       G2N504a                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 22179} GHN503C+HV               =       G1H501r +      GNO2                                   :  0.100E+01*SUN;
+{ 22180} GHN503C+HV               =       G1N5046 +      GHO                                    :  0.100E+01*SUN;
+{ 22181} G2N504a +GNO                =       G1N5046 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 22182} G2N504a +GNO                =       GNN5017                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 22183} G2N504a +GHO2               =       GHN503C                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 22184} G2N504a +GNO3               =       G1N5046 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 22185} G2N504a +MEPERO             =  0.340G1N5046 + 0.330GNO500a + 0.330GNK500i                 : ARR( 0.565E-13,  -845., 0.0);
+{ 22186} G2N504a +PERO1              =  0.460G1N5046 + 0.270GNO500a + 0.270GNK500i                 : ARR( 0.434E-13,  -900., 0.0);
+{ 22187} G2N504a +PERO2              =  0.400G1N5046 + 0.300GNO500a + 0.300GNK500i                 : ARR( 0.162E-13, -1400., 0.0);
+{ 22188} G2N504a +PERO3              =  0.460G1N5046 + 0.270GNO500a + 0.270GNK500i                 : ARR( 0.488E-13, -1250., 0.0);
+{ 22189} G2N504a +PERO5              =  0.460G1N5046 + 0.270GNO500a + 0.270GNK500i                 : ARR( 0.183E-11,   450., 0.0);
+{ 22190} G2N504a +PERO6              =  0.300G1N5046 + 0.350GNO500a + 0.350GNK500i                 : ARR( 0.168E-13, -1300., 0.0);
+{ 22191} G2N504a +PERO9              =  0.650G1N5046 + 0.350GNK500i                                : ARR( 0.100E-10,     0., 0.0);
+{ 22192} GHN400O +GHO                =       GND400I +      GHO                                    : ARR( 0.508E-11,     0., 0.0);
+{ 22193} GHN400O +GHO                =       G3H4008                                               : ARR( 0.210E-10,     0., 0.0);
+{ 22194} GHN400O +GHO                =       G2N400s                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 22195} GHN400O +GNO3               =       G3H4008 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 22196} GHN400O+HV               =       G1H400R +      GNO2                                   :  0.100E+01*SUN;
+{ 22197} GHN400O+HV               =       G1N400g +      GHO                                    :  0.100E+01*SUN;
+{ 22198} GHN400O+HV               =       GND3001 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 22199} G2N400s +GNO                =       G1N400g +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 22200} G2N400s +GNO                =       GNN4007                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 22201} G2N400s +GHO2               =       GHN400O                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 22202} G2N400s +GNO3               =       G1N400g +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 22203} G2N400s +MEPERO             =  0.340G1N400g + 0.330GND400H + 0.330GND400I                 : ARR( 0.565E-13,  -845., 0.0);
+{ 22204} G2N400s +PERO1              =  0.460G1N400g + 0.270GND400H + 0.270GND400I                 : ARR( 0.434E-13,  -900., 0.0);
+{ 22205} G2N400s +PERO2              =  0.400G1N400g + 0.300GND400H + 0.300GND400I                 : ARR( 0.162E-13, -1400., 0.0);
+{ 22206} G2N400s +PERO3              =  0.460G1N400g + 0.270GND400H + 0.270GND400I                 : ARR( 0.488E-13, -1250., 0.0);
+{ 22207} G2N400s +PERO5              =  0.460G1N400g + 0.270GND400H + 0.270GND400I                 : ARR( 0.183E-11,   450., 0.0);
+{ 22208} G2N400s +PERO6              =  0.300G1N400g + 0.350GND400H + 0.350GND400I                 : ARR( 0.168E-13, -1300., 0.0);
+{ 22209} G2N400s +PERO9              =  0.650G1N400g + 0.350GND400I                                : ARR( 0.100E-10,     0., 0.0);
+{ 22210} GNN502I +GHO                =       GNK500b +      GNO2                                   : ARR( 0.976E-13,     0., 0.0);
+{ 22211} GNN502I +GHO                =       GNN501A +      GHO2                                   : ARR( 0.420E-12,     0., 0.0);
+{ 22212} GNN502I +GHO                =       GNK500k +      GNO2                                   : ARR( 0.120E-12,     0., 0.0);
+{ 22213} GNN502I +GHO                =       GNN502U +      GHO2                                   : ARR( 0.820E-12,     0., 0.0);
+{ 22214} GNN502I +GHO                =       G1N503x                                               : ARR( 0.214E-17,    85., 2.0);
+{ 22215} GNN502I +GHO                =       G1N503X                                               : ARR( 0.214E-17,    85., 2.0);
+{ 22216} GNN502I+HV               =       G1N5034 +      GNO2                                   :  0.100E+01*SUN;
+{ 22217} GNN502I+HV               =       G1N502o +      GNO2                                   :  0.100E+01*SUN;
+{ 22218} GHN503D +GHO                =       GNK500k +      GHO                                    : ARR( 0.433E-10,     0., 0.0);
+{ 22219} GHN503D +GHO                =       GHN505s +      GHO2                                   : ARR( 0.422E-11,     0., 0.0);
+{ 22220} GHN503D +GHO                =       G2N502Y                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 22221} GHN503D+HV               =       G1H501n +      GNO2                                   :  0.100E+01*SUN;
+{ 22222} GHN503D+HV               =       G1N502o +      GHO                                    :  0.100E+01*SUN;
+{ 22223} GNO500a +GHO                =       GNK500i +      GHO2                                   : ARR( 0.213E-11,     0., 0.0);
+{ 22224} GNO500a +GHO                =       GNK500k +      GHO2                                   : ARR( 0.106E-10,     0., 0.0);
+{ 22225} GNO500a +GHO                =       GND501M +      GHO2                                   : ARR( 0.416E-11,     0., 0.0);
+{ 22226} GNO500a+HV               =       G1O500W +      GNO2                                   :  0.100E+01*SUN;
+{ 22227} GHN503E +GHO                =       GNN502K +      GHO                                    : ARR( 0.518E-10,     0., 0.0);
+{ 22228} GHN503E +GHO                =       G2N502Z                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 22229} GHN503E+HV               =       G1H505c +      GNO2                                   :  0.100E+01*SUN;
+{ 22230} GHN503E+HV               =       G1H505d +      GNO2                                   :  0.100E+01*SUN;
+{ 22231} GHN503E+HV               =       G3N3003 +      G2H2000                                :  0.100E+01*SUN;
+{ 22232} GHN503E+HV               =       G1N502q +      GHO                                    :  0.100E+01*SUN;
+{ 22233} G1H505c +OXYGEN             =       GHN505t +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 22234} G1H505c                     =       G2H502D                                               : ARR( 0.160E+12,  4982., 0.0);
+{ 22235} G1H505c                     =       GHD400D +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7323., 0.0);
+{ 22236} G1H505d                     =       GND2000 +      G3H3000                                : ARR( 0.200E+15,  3003., 0.0);
+{ 22237} G2H502D +GNO                =       G1H505e +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 22238} G2H502D +GNO                =       GHN505u                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 22239} G2H502D +GHO2               =       GHH5027                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 22240} G2H502D +GNO3               =       G1H505e +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 22241} G2H502D +MEPERO             =  0.340G1H505e + 0.330GHN505v + 0.330GHN504Y                 : ARR( 0.565E-13,  -845., 0.0);
+{ 22242} G2H502D +PERO1              =  0.460G1H505e + 0.270GHN505v + 0.270GHN504Y                 : ARR( 0.434E-13,  -900., 0.0);
+{ 22243} G2H502D +PERO2              =  0.400G1H505e + 0.300GHN505v + 0.300GHN504Y                 : ARR( 0.162E-13, -1400., 0.0);
+{ 22244} G2H502D +PERO3              =  0.460G1H505e + 0.270GHN505v + 0.270GHN504Y                 : ARR( 0.488E-13, -1250., 0.0);
+{ 22245} G2H502D +PERO5              =  0.460G1H505e + 0.270GHN505v + 0.270GHN504Y                 : ARR( 0.183E-11,   450., 0.0);
+{ 22246} G2H502D +PERO6              =  0.300G1H505e + 0.350GHN505v + 0.350GHN504Y                 : ARR( 0.168E-13, -1300., 0.0);
+{ 22247} G2H502D +PERO9              =  0.650G1H505e + 0.350GHN504Y                                : ARR( 0.100E-10,     0., 0.0);
+{ 22248} G1H505e                     =       G3N3004 +      GHD2000                                : ARR( 0.200E+15,  3069., 0.0);
+{ 22249} GNN502J +GHO                =       GNN502K +      GHO2                                   : ARR( 0.129E-10,     0., 0.0);
+{ 22250} GNN502J +GHO                =       G2N504b                                               : ARR( 0.872E-12,     0., 0.0);
+{ 22251} GNN502J+HV               =       G3K3001 +      GND2000 +      GNO2                    :  0.100E+01*SUN;
+{ 22252} GNN502J+HV               =       G1N503B +      GNO2                                   :  0.100E+01*SUN;
+{ 22253} GNN502J+HV               =       G1N504S +      GNO2                                   :  0.100E+01*SUN;
+{ 22254} G2N504b +GNO                =       G1N505f +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 22255} G2N504b +GNO                =       GNN502s                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 22256} G2N504b +GHO2               =       GHN505w                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 22257} G2N504b +GNO3               =       G1N505f +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 22258} G2N504b +MEPERO             =  0.340G1N505f + 0.330GNN503E + 0.330GNN502P                 : ARR( 0.565E-13,  -845., 0.0);
+{ 22259} G2N504b +PERO1              =  0.460G1N505f + 0.270GNN503E + 0.270GNN502P                 : ARR( 0.434E-13,  -900., 0.0);
+{ 22260} G2N504b +PERO2              =  0.400G1N505f + 0.300GNN503E + 0.300GNN502P                 : ARR( 0.162E-13, -1400., 0.0);
+{ 22261} G2N504b +PERO3              =  0.460G1N505f + 0.270GNN503E + 0.270GNN502P                 : ARR( 0.488E-13, -1250., 0.0);
+{ 22262} G2N504b +PERO5              =  0.460G1N505f + 0.270GNN503E + 0.270GNN502P                 : ARR( 0.183E-11,   450., 0.0);
+{ 22263} G2N504b +PERO6              =  0.300G1N505f + 0.350GNN503E + 0.350GNN502P                 : ARR( 0.168E-13, -1300., 0.0);
+{ 22264} G2N504b +PERO9              =  0.650G1N505f + 0.350GNN502P                                : ARR( 0.100E-10,     0., 0.0);
+{ 22265} G1N505f                     =       GDO2000 +      G3N3003                                : ARR( 0.200E+15,  3069., 0.0);
+{ 22266} GNN502K +GHO                =       G3N500y                                               : ARR( 0.664E-10,     0., 0.0);
+{ 22267} GNN502K +GNO3               =       G3N500y +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 22268} GNN502K+HV               =       G1N505g +      GNO2                                   :  0.100E+01*SUN;
+{ 22269} GNN502K+HV               =       G1N505h +      GNO2                                   :  0.100E+01*SUN;
+{ 22270} GNN502K+HV               =       G3N3003 +      G2D2000                                :  0.100E+01*SUN;
+{ 22271} GNN502K+HV               =       G2N400t +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 22272} G3N500y +GHO2               =  0.800GGN501F + 0.200GAN5013 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 22273} G3N500y +GNO                =       G2N400t +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 22274} G3N500y +GNO2               =       GPN5015                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 22275} G3N500y +GNO3               =       G2N400t +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 22276} G3N500y +MEPERO             =  0.685G2N400t + 0.315GAN5013 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 22277} G3N500y +PERO1              =  0.800G2N400t + 0.200GAN5013 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 22278} G3N500y +PERO2              =  0.750G2N400t + 0.250GAN5013 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 22279} G3N500y +PERO3              =  0.800G2N400t + 0.200GAN5013 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 22280} G3N500y +PERO5              =  0.650G2N400t + 0.350GAN5013 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 22281} G3N500y +PERO6              =  0.650G2N400t + 0.350GAN5013 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 22282} G3N500y +PERO9              =       G2N400t +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 22283} G1N505g +OXYGEN             =       GND501G +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 22284} G1N505g                     =       G2N504c                                               : ARR( 0.160E+12,  5203., 0.0);
+{ 22285} G1N505g                     =       GDD4002 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7323., 0.0);
+{ 22286} G1N505h                     =       GND2000 +      G3D3000                                : ARR( 0.200E+15,  2978., 0.0);
+{ 22287} G2N400t +GNO                =       G1N4014 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 22288} G2N400t +GNO                =       GNN400X                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 22289} G2N400t +GHO2               =       GHN4017                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 22290} G2N400t +GNO3               =       G1N4014 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 22291} G2N400t +MEPERO             =  0.480G1N4014 + 0.260GNN400R + 0.260GNN400a                 : ARR( 0.164E-12,  -795., 0.0);
+{ 22292} G2N400t +PERO1              =  0.600G1N4014 + 0.200GNN400R + 0.200GNN400a                 : ARR( 0.126E-12,  -850., 0.0);
+{ 22293} G2N400t +PERO2              =  0.560G1N4014 + 0.220GNN400R + 0.220GNN400a                 : ARR( 0.471E-13, -1350., 0.0);
+{ 22294} G2N400t +PERO3              =  0.600G1N4014 + 0.200GNN400R + 0.200GNN400a                 : ARR( 0.142E-12, -1200., 0.0);
+{ 22295} G2N400t +PERO5              =  0.600G1N4014 + 0.200GNN400R + 0.200GNN400a                 : ARR( 0.533E-11,   500., 0.0);
+{ 22296} G2N400t +PERO6              =  0.460G1N4014 + 0.270GNN400R + 0.270GNN400a                 : ARR( 0.488E-13, -1250., 0.0);
+{ 22297} G2N400t +PERO9              =  0.800G1N4014 + 0.200GNN400a                                : ARR( 0.100E-10,     0., 0.0);
+{ 22298} G2N504c +GNO                =       G1N505i +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 22299} G2N504c +GNO                =       GNN503F                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 22300} G2N504c +GHO2               =       GHN505x                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 22301} G2N504c +GNO3               =       G1N505i +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 22302} G2N504c +MEPERO             =  0.340G1N505i + 0.330GND501H + 0.330GND5016                 : ARR( 0.565E-13,  -845., 0.0);
+{ 22303} G2N504c +PERO1              =  0.460G1N505i + 0.270GND501H + 0.270GND5016                 : ARR( 0.434E-13,  -900., 0.0);
+{ 22304} G2N504c +PERO2              =  0.400G1N505i + 0.300GND501H + 0.300GND5016                 : ARR( 0.162E-13, -1400., 0.0);
+{ 22305} G2N504c +PERO3              =  0.460G1N505i + 0.270GND501H + 0.270GND5016                 : ARR( 0.488E-13, -1250., 0.0);
+{ 22306} G2N504c +PERO5              =  0.460G1N505i + 0.270GND501H + 0.270GND5016                 : ARR( 0.183E-11,   450., 0.0);
+{ 22307} G2N504c +PERO6              =  0.300G1N505i + 0.350GND501H + 0.350GND5016                 : ARR( 0.168E-13, -1300., 0.0);
+{ 22308} G2N504c +PERO9              =  0.650G1N505i + 0.350GND5016                                : ARR( 0.100E-10,     0., 0.0);
+{ 22309} G1N4014                     =       G3N3003 +      GCH2O                                  : ARR( 0.200E+15,  3640., 0.0);
+{ 22310} G1N505i                     =       G3N3004 +      GDD2000                                : ARR( 0.200E+15,  4953., 0.0);
+{ 22311} GHN503F +GHO                =       GNN501z +      GHO                                    : ARR( 0.209E-10,     0., 0.0);
+{ 22312} GHN503F +GHO                =       G2N502a                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 22313} GHN503F+HV               =       G1N502r +      GHO                                    :  0.100E+01*SUN;
+{ 22314} GHN503F+HV               =       G3H3001 +      GND2000 +      GNO2                    :  0.100E+01*SUN;
+{ 22315} GHN503F+HV               =       G1H505f +      GNO2                                   :  0.100E+01*SUN;
+{ 22316} GHN503F+HV               =       G1H505g +      GNO2                                   :  0.100E+01*SUN;
+{ 22317} G1H505f                     =       G3H3001 +      GND2000                                : ARR( 0.200E+15,  3029., 0.0);
+{ 22318} G1H505g +OXYGEN             =       GHN505y +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 22319} G1H505g                     =       GNK500c +      GHO                                    : ARR( 0.800E+11,  3753., 0.0);
+{ 22320} GNN502L +GHO                =       G2N504d                                               : ARR( 0.547E-12,     0., 0.0);
+{ 22321} GNN502L +GHO                =       GNN501z +      GHO2                                   : ARR( 0.526E-11,     0., 0.0);
+{ 22322} GNN502L+HV               =       G3K3002 +      GND2000 +      GNO2                    :  0.100E+01*SUN;
+{ 22323} GNN502L+HV               =       G1N505j +      GNO2                                   :  0.100E+01*SUN;
+{ 22324} GNN502L+HV               =       G1N505k +      GNO2                                   :  0.100E+01*SUN;
+{ 22325} G2N504d +GNO                =       G1N504w +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 22326} G2N504d +GNO                =       GNN501o                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 22327} G2N504d +GHO2               =       GHN505z                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 22328} G2N504d +GNO3               =       G1N504w +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 22329} G2N504d +MEPERO             =  0.480G1N504w + 0.260GNN503E + 0.260GNN5032                 : ARR( 0.164E-12,  -795., 0.0);
+{ 22330} G2N504d +PERO1              =  0.600G1N504w + 0.200GNN503E + 0.200GNN5032                 : ARR( 0.126E-12,  -850., 0.0);
+{ 22331} G2N504d +PERO2              =  0.560G1N504w + 0.220GNN503E + 0.220GNN5032                 : ARR( 0.471E-13, -1350., 0.0);
+{ 22332} G2N504d +PERO3              =  0.600G1N504w + 0.200GNN503E + 0.200GNN5032                 : ARR( 0.142E-12, -1200., 0.0);
+{ 22333} G2N504d +PERO5              =  0.600G1N504w + 0.200GNN503E + 0.200GNN5032                 : ARR( 0.533E-11,   500., 0.0);
+{ 22334} G2N504d +PERO6              =  0.460G1N504w + 0.270GNN503E + 0.270GNN5032                 : ARR( 0.488E-13, -1250., 0.0);
+{ 22335} G2N504d +PERO9              =  0.800G1N504w + 0.200GNN5032                                : ARR( 0.100E-10,     0., 0.0);
+{ 22336} G1N505j                     =       G3K3002 +      GND2000                                : ARR( 0.200E+15,  3029., 0.0);
+{ 22337} G1N505k +OXYGEN             =       GND501N +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 22338} G1N505k                     =       GNK500c +      GHO2                                   : ARR( 0.800E+11,  4100., 0.0);
+{ 22339} G1N505k                     =       GDK4004 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7323., 0.0);
+{ 22340} GND500j +GHO                =       G2N504e                                               : ARR( 0.536E-12,     0., 0.0);
+{ 22341} GND500j +GHO                =       G2N504f                                               : ARR( 0.706E-12,     0., 0.0);
+{ 22342} GND500j +GHO                =       G3N500z                                               : ARR( 0.419E-11,     0., 0.0);
+{ 22343} GND500j +GNO3               =       G3N500z +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 22344} GND500j+HV               =       G3K3000 +      GDD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 22345} GND500j+HV               =       G1D500t +      GNO2                                   :  0.100E+01*SUN;
+{ 22346} GND500j+HV               =       GDK4002 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 22347} G2N504e +GNO                =       G1N504m +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 22348} G2N504e +GNO                =       GNN501h                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 22349} G2N504e +GHO2               =       GHN505t                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 22350} G2N504e +GNO3               =       G1N504m +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 22351} G2N504e +MEPERO             =  0.480G1N504m + 0.260GND500c + 0.260GND501G                 : ARR( 0.146E-12,  -445., 0.0);
+{ 22352} G2N504e +PERO1              =  0.600G1N504m + 0.200GND500c + 0.200GND501G                 : ARR( 0.112E-12,  -500., 0.0);
+{ 22353} G2N504e +PERO2              =  0.560G1N504m + 0.220GND500c + 0.220GND501G                 : ARR( 0.418E-13, -1000., 0.0);
+{ 22354} G2N504e +PERO3              =  0.600G1N504m + 0.200GND500c + 0.200GND501G                 : ARR( 0.126E-12,  -850., 0.0);
+{ 22355} G2N504e +PERO5              =  0.600G1N504m + 0.200GND500c + 0.200GND501G                 : ARR( 0.473E-11,   850., 0.0);
+{ 22356} G2N504e +PERO6              =  0.460G1N504m + 0.270GND500c + 0.270GND501G                 : ARR( 0.434E-13,  -900., 0.0);
+{ 22357} G2N504e +PERO9              =  0.800G1N504m + 0.200GND501G                                : ARR( 0.100E-10,     0., 0.0);
+{ 22358} G2N504f +GNO                =       G1N505l +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 22359} G2N504f +GNO                =       GNN502W                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 22360} G2N504f +GHO2               =       GHN505y                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 22361} G2N504f +GNO3               =       G1N505l +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 22362} G2N504f +MEPERO             =  0.340G1N505l + 0.330GND501N + 0.330GND5011                 : ARR( 0.565E-13,  -845., 0.0);
+{ 22363} G2N504f +PERO1              =  0.460G1N505l + 0.270GND501N + 0.270GND5011                 : ARR( 0.434E-13,  -900., 0.0);
+{ 22364} G2N504f +PERO2              =  0.400G1N505l + 0.300GND501N + 0.300GND5011                 : ARR( 0.162E-13, -1400., 0.0);
+{ 22365} G2N504f +PERO3              =  0.460G1N505l + 0.270GND501N + 0.270GND5011                 : ARR( 0.488E-13, -1250., 0.0);
+{ 22366} G2N504f +PERO5              =  0.460G1N505l + 0.270GND501N + 0.270GND5011                 : ARR( 0.183E-11,   450., 0.0);
+{ 22367} G2N504f +PERO6              =  0.300G1N505l + 0.350GND501N + 0.350GND5011                 : ARR( 0.168E-13, -1300., 0.0);
+{ 22368} G2N504f +PERO9              =  0.650G1N505l + 0.350GND5011                                : ARR( 0.100E-10,     0., 0.0);
+{ 22369} G3N500z +GHO2               =  0.800GGN500W + 0.200GAN500e + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 22370} G3N500z +GNO                =       GDK4002 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 22371} G3N500z +GNO2               =       GPN500g                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 22372} G3N500z +GNO3               =       GDK4002 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 22373} G3N500z +MEPERO             =  0.685GDK4002 + 0.315GAN500e + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 22374} G3N500z +PERO1              =  0.800GDK4002 + 0.200GAN500e + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 22375} G3N500z +PERO2              =  0.750GDK4002 + 0.250GAN500e + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 22376} G3N500z +PERO3              =  0.800GDK4002 + 0.200GAN500e + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 22377} G3N500z +PERO5              =  0.650GDK4002 + 0.350GAN500e + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 22378} G3N500z +PERO6              =  0.650GDK4002 + 0.350GAN500e + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 22379} G3N500z +PERO9              =       GDK4002 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 22380} G1D500t                     =       G3K3000 +      GDD2000                                : ARR( 0.200E+15,  4889., 0.0);
+{ 22381} G1N505l                     =       GD02000 +      G3N3005                                : ARR( 0.200E+15,  3868., 0.0);
+{ 22382} GHN503G +GHO                =       GNK500c +      GHO                                    : ARR( 0.217E-10,     0., 0.0);
+{ 22383} GHN503G +GHO                =       G2N502b                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 22384} GHN503G+HV               =       G1N502s +      GHO                                    :  0.100E+01*SUN;
+{ 22385} GHN503G+HV               =       G3H3001 +      GDO2000 +      GNO2                    :  0.100E+01*SUN;
+{ 22386} GHN503G+HV               =       G1H505h +      GNO2                                   :  0.100E+01*SUN;
+{ 22387} G1H505h                     =       G3H3001 +      GDO2000                                : ARR( 0.200E+15,  3031., 0.0);
+{ 22388} GNK500v +GHO                =       G2N504g                                               : ARR( 0.560E-12,     0., 0.0);
+{ 22389} GNK500v +GHO                =       GNK500c +      GHO2                                   : ARR( 0.539E-11,     0., 0.0);
+{ 22390} GNK500v +GHO                =       GND501N +      GHO2                                   : ARR( 0.848E-12,     0., 0.0);
+{ 22391} GNK500v+HV               =       G3K3002 +      GDO2000 +      GNO2                    :  0.100E+01*SUN;
+{ 22392} GNK500v+HV               =       G1K500y +      GNO2                                   :  0.100E+01*SUN;
+{ 22393} G2N504g +GNO                =       G1N504z +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 22394} G2N504g +GNO                =       GNN501q                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 22395} G2N504g +GHO2               =       GHN505v                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 22396} G2N504g +GNO3               =       G1N504z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 22397} G2N504g +MEPERO             =  0.480G1N504z + 0.260GNK5018 + 0.260GND501H                 : ARR( 0.164E-12,  -795., 0.0);
+{ 22398} G2N504g +PERO1              =  0.600G1N504z + 0.200GNK5018 + 0.200GND501H                 : ARR( 0.126E-12,  -850., 0.0);
+{ 22399} G2N504g +PERO2              =  0.560G1N504z + 0.220GNK5018 + 0.220GND501H                 : ARR( 0.471E-13, -1350., 0.0);
+{ 22400} G2N504g +PERO3              =  0.600G1N504z + 0.200GNK5018 + 0.200GND501H                 : ARR( 0.142E-12, -1200., 0.0);
+{ 22401} G2N504g +PERO5              =  0.600G1N504z + 0.200GNK5018 + 0.200GND501H                 : ARR( 0.533E-11,   500., 0.0);
+{ 22402} G2N504g +PERO6              =  0.460G1N504z + 0.270GNK5018 + 0.270GND501H                 : ARR( 0.488E-13, -1250., 0.0);
+{ 22403} G2N504g +PERO9              =  0.800G1N504z + 0.200GND501H                                : ARR( 0.100E-10,     0., 0.0);
+{ 22404} G1K500y                     =       G3K3002 +      GDO2000                                : ARR( 0.200E+15,  3031., 0.0);
+{ 22405} GGN3004 +GHO                =       G3N3003                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 22406} GGN3004+HV               =       G1G3003 +      GNO2                                   :  0.100E+01*SUN;
+{ 22407} GGN3004+HV               =       G1G3006 +      GNO2                                   :  0.100E+01*SUN;
+{ 22408} GGN3004+HV               =       GND2000 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 22409} G1G3006                     =       GND2000 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5261., 0.0);
+{ 22410} GAN3004 +GHO                =       GND2000 +      GNO2    +      GCO2                    : ARR( 0.540E-12,     0., 0.0);
+{ 22411} GAN3004+HV               =       G1A3003 +      GNO2                                   :  0.100E+01*SUN;
+{ 22412} GAN3004+HV               =       G1A3004 +      GNO2                                   :  0.100E+01*SUN;
+{ 22413} GPN3004                     =       G3N3003 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 22414} GPN3004 +GHO                =       GPN3006 +      GNO2                                   : ARR( 0.919E-14,     0., 0.0);
+{ 22415} GPN3004 +GHO                =       GPN3005 +      GNO2                                   : ARR( 0.144E-13,     0., 0.0);
+{ 22416} GPN3004+HV               =       G1P3004 +      GNO2                                   :  0.100E+01*SUN;
+{ 22417} GPN3004+HV               =       G1P3003 +      GNO2                                   :  0.100E+01*SUN;
+{ 22418} GPN3004+HV               =       G3N3003 +      GNO2                                   :  0.100E+01*SUN;
+{ 22419} GHH500m +GHO                =       GHN503K +      GHO                                    : ARR( 0.511E-11,     0., 0.0);
+{ 22420} GHH500m +GHO                =       GHN503H +      GHO                                    : ARR( 0.518E-10,     0., 0.0);
+{ 22421} GHH500m +GHO                =       G2H502E                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 22422} GHH500m +GHO                =       G2H500q                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 22423} GHH500m+HV               =       G1H505i +      GNO2                                   :  0.100E+01*SUN;
+{ 22424} GHH500m+HV               =       G1H505d +      GHO                                    :  0.100E+01*SUN;
+{ 22425} GHH500m+HV               =       G3H3002 +      G2H2000                                :  0.100E+01*SUN;
+{ 22426} GHH500m+HV               =       G1H501R +      GHO                                    :  0.100E+01*SUN;
+{ 22427} G2H502E +GNO                =       G1H505d +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 22428} G2H502E +GNO                =       GHN503E                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 22429} G2H502E +GHO2               =       GHH500m                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 22430} G2H502E +GNO3               =       G1H505d +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 22431} G2H502E +MEPERO             =  0.340G1H505d + 0.330GHN5019 + 0.330GHN503K                 : ARR( 0.565E-13,  -845., 0.0);
+{ 22432} G2H502E +PERO1              =  0.460G1H505d + 0.270GHN5019 + 0.270GHN503K                 : ARR( 0.434E-13,  -900., 0.0);
+{ 22433} G2H502E +PERO2              =  0.400G1H505d + 0.300GHN5019 + 0.300GHN503K                 : ARR( 0.162E-13, -1400., 0.0);
+{ 22434} G2H502E +PERO3              =  0.460G1H505d + 0.270GHN5019 + 0.270GHN503K                 : ARR( 0.488E-13, -1250., 0.0);
+{ 22435} G2H502E +PERO5              =  0.460G1H505d + 0.270GHN5019 + 0.270GHN503K                 : ARR( 0.183E-11,   450., 0.0);
+{ 22436} G2H502E +PERO6              =  0.300G1H505d + 0.350GHN5019 + 0.350GHN503K                 : ARR( 0.168E-13, -1300., 0.0);
+{ 22437} G2H502E +PERO9              =  0.650G1H505d + 0.350GHN503K                                : ARR( 0.100E-10,     0., 0.0);
+{ 22438} G1H505i +OXYGEN             =       GHH5028 +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 22439} G1H505i                     =       GHD400D +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5784., 0.0);
+{ 22440} GHN503H +GHO                =       GND500k +      GHO                                    : ARR( 0.533E-11,     0., 0.0);
+{ 22441} GHN503H +GHO                =       G3H500q                                               : ARR( 0.698E-10,     0., 0.0);
+{ 22442} GHN503H +GNO3               =       G3H500q +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 22443} GHN503H+HV               =       G1H505j +      GNO2                                   :  0.100E+01*SUN;
+{ 22444} GHN503H+HV               =       G1N505h +      GHO                                    :  0.100E+01*SUN;
+{ 22445} GHN503H+HV               =       G3H3002 +      G2D2000                                :  0.100E+01*SUN;
+{ 22446} GHN503H+HV               =       G2H400j +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 22447} G3H500q +GHO2               =  0.800GGH501B + 0.200GAH5014 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 22448} G3H500q +GNO                =       G2H400j +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 22449} G3H500q +GNO2               =       GPH5014                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 22450} G3H500q +GNO3               =       G2H400j +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 22451} G3H500q +MEPERO             =  0.685G2H400j + 0.315GAH5014 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 22452} G3H500q +PERO1              =  0.800G2H400j + 0.200GAH5014 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 22453} G3H500q +PERO2              =  0.750G2H400j + 0.250GAH5014 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 22454} G3H500q +PERO3              =  0.800G2H400j + 0.200GAH5014 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 22455} G3H500q +PERO5              =  0.650G2H400j + 0.350GAH5014 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 22456} G3H500q +PERO6              =  0.650G2H400j + 0.350GAH5014 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 22457} G3H500q +PERO9              =       G2H400j +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 22458} G1H505j +OXYGEN             =       GHD5016 +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 22459} G1H505j                     =       GDD4002 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5784., 0.0);
+{ 22460} G2H400j +GNO                =       G1H400q +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 22461} G2H400j +GNO                =       GHN4011                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 22462} G2H400j +GHO2               =       GHH400g                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 22463} G2H400j +GNO3               =       G1H400q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 22464} G2H400j +MEPERO             =  0.480G1H400q + 0.260GHN400l + 0.260GHN4018                 : ARR( 0.164E-12,  -795., 0.0);
+{ 22465} G2H400j +PERO1              =  0.600G1H400q + 0.200GHN400l + 0.200GHN4018                 : ARR( 0.126E-12,  -850., 0.0);
+{ 22466} G2H400j +PERO2              =  0.560G1H400q + 0.220GHN400l + 0.220GHN4018                 : ARR( 0.471E-13, -1350., 0.0);
+{ 22467} G2H400j +PERO3              =  0.600G1H400q + 0.200GHN400l + 0.200GHN4018                 : ARR( 0.142E-12, -1200., 0.0);
+{ 22468} G2H400j +PERO5              =  0.600G1H400q + 0.200GHN400l + 0.200GHN4018                 : ARR( 0.533E-11,   500., 0.0);
+{ 22469} G2H400j +PERO6              =  0.460G1H400q + 0.270GHN400l + 0.270GHN4018                 : ARR( 0.488E-13, -1250., 0.0);
+{ 22470} G2H400j +PERO9              =  0.800G1H400q + 0.200GHN4018                                : ARR( 0.100E-10,     0., 0.0);
+{ 22471} G1H400q                     =       G3H3002 +      GCH2O                                  : ARR( 0.200E+15,  3603., 0.0);
+{ 22472} GHH500n +GHO                =       GHN502o +      GHO                                    : ARR( 0.209E-10,     0., 0.0);
+{ 22473} GHH500n +GHO                =       GHN503L +      GHO                                    : ARR( 0.513E-11,     0., 0.0);
+{ 22474} GHH500n +GHO                =       G2H500r                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 22475} GHH500n +GHO                =       G2H502F                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 22476} GHH500n+HV               =       G1H501S +      GHO                                    :  0.100E+01*SUN;
+{ 22477} GHH500n+HV               =       G3H3001 +      GND2000 +      GHO                     :  0.100E+01*SUN;
+{ 22478} GHH500n+HV               =       G1H505f +      GHO                                    :  0.100E+01*SUN;
+{ 22479} GHH500n+HV               =       G1H505k +      GNO2                                   :  0.100E+01*SUN;
+{ 22480} G2H502F +GNO                =       G1H505f +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 22481} G2H502F +GNO                =       GHN503F                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 22482} G2H502F +GHO2               =       GHH500n                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 22483} G2H502F +GNO3               =       G1H505f +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 22484} G2H502F +MEPERO             =  0.340G1H505f + 0.330GHN503J + 0.330GHN503L                 : ARR( 0.565E-13,  -845., 0.0);
+{ 22485} G2H502F +PERO1              =  0.460G1H505f + 0.270GHN503J + 0.270GHN503L                 : ARR( 0.434E-13,  -900., 0.0);
+{ 22486} G2H502F +PERO2              =  0.400G1H505f + 0.300GHN503J + 0.300GHN503L                 : ARR( 0.162E-13, -1400., 0.0);
+{ 22487} G2H502F +PERO3              =  0.460G1H505f + 0.270GHN503J + 0.270GHN503L                 : ARR( 0.488E-13, -1250., 0.0);
+{ 22488} G2H502F +PERO5              =  0.460G1H505f + 0.270GHN503J + 0.270GHN503L                 : ARR( 0.183E-11,   450., 0.0);
+{ 22489} G2H502F +PERO6              =  0.300G1H505f + 0.350GHN503J + 0.350GHN503L                 : ARR( 0.168E-13, -1300., 0.0);
+{ 22490} G2H502F +PERO9              =  0.650G1H505f + 0.350GHN503L                                : ARR( 0.100E-10,     0., 0.0);
+{ 22491} G1H505k +OXYGEN             =       GHH5029 +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 22492} G1H505k                     =       GHK500U +      GHO                                    : ARR( 0.800E+11,  3753., 0.0);
+{ 22493} G1H505k                     =       GHD400I +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5784., 0.0);
+{ 22494} GHN503I +GHO                =       GHN502o +      GHO2                                   : ARR( 0.541E-11,     0., 0.0);
+{ 22495} GHN503I +GHO                =       GNK500w +      GHO                                    : ARR( 0.533E-11,     0., 0.0);
+{ 22496} GHN503I +GHO                =       G2N504h                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 22497} GHN503I+HV               =       G3K3002 +      GND2000 +      GHO                     :  0.100E+01*SUN;
+{ 22498} GHN503I+HV               =       G1N505j +      GHO                                    :  0.100E+01*SUN;
+{ 22499} GHN503I+HV               =       G1H505l +      GNO2                                   :  0.100E+01*SUN;
+{ 22500} G2N504h +GNO                =       G1N505j +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 22501} G2N504h +GNO                =       GNN502L                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 22502} G2N504h +GHO2               =       GHN503I                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 22503} G2N504h +GNO3               =       G1N505j +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 22504} G2N504h +MEPERO             =  0.340G1N505j + 0.330GNK500f + 0.330GNK500w                 : ARR( 0.565E-13,  -845., 0.0);
+{ 22505} G2N504h +PERO1              =  0.460G1N505j + 0.270GNK500f + 0.270GNK500w                 : ARR( 0.434E-13,  -900., 0.0);
+{ 22506} G2N504h +PERO2              =  0.400G1N505j + 0.300GNK500f + 0.300GNK500w                 : ARR( 0.162E-13, -1400., 0.0);
+{ 22507} G2N504h +PERO3              =  0.460G1N505j + 0.270GNK500f + 0.270GNK500w                 : ARR( 0.488E-13, -1250., 0.0);
+{ 22508} G2N504h +PERO5              =  0.460G1N505j + 0.270GNK500f + 0.270GNK500w                 : ARR( 0.183E-11,   450., 0.0);
+{ 22509} G2N504h +PERO6              =  0.300G1N505j + 0.350GNK500f + 0.350GNK500w                 : ARR( 0.168E-13, -1300., 0.0);
+{ 22510} G2N504h +PERO9              =  0.650G1N505j + 0.350GNK500w                                : ARR( 0.100E-10,     0., 0.0);
+{ 22511} G1H505l +OXYGEN             =       GHD500W +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 22512} G1H505l                     =       GHK500U +      GHO2                                   : ARR( 0.800E+11,  4100., 0.0);
+{ 22513} G1H505l                     =       GDK4004 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5784., 0.0);
+{ 22514} GHD500T +GHO                =       GDK500E +      GHO                                    : ARR( 0.162E-10,     0., 0.0);
+{ 22515} GHD500T +GHO                =       G3H500r                                               : ARR( 0.698E-10,     0., 0.0);
+{ 22516} GHD500T +GNO3               =       G3H500r +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 22517} GHD500T+HV               =       G3K3000 +      GDD2000 +      GHO                     :  0.100E+01*SUN;
+{ 22518} GHD500T+HV               =       G1D500t +      GHO                                    :  0.100E+01*SUN;
+{ 22519} GHD500T+HV               =       GDK4002 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 22520} G3H500r +GHO2               =  0.800GGH500R + 0.200GAH500T + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 22521} G3H500r +GNO                =       GDK4002 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 22522} G3H500r +GNO2               =       GPH500W                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 22523} G3H500r +GNO3               =       GDK4002 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 22524} G3H500r +MEPERO             =  0.685GDK4002 + 0.315GAH500T + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 22525} G3H500r +PERO1              =  0.800GDK4002 + 0.200GAH500T + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 22526} G3H500r +PERO2              =  0.750GDK4002 + 0.250GAH500T + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 22527} G3H500r +PERO3              =  0.800GDK4002 + 0.200GAH500T + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 22528} G3H500r +PERO5              =  0.650GDK4002 + 0.350GAH500T + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 22529} G3H500r +PERO6              =  0.650GDK4002 + 0.350GAH500T + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 22530} G3H500r +PERO9              =       GDK4002 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 22531} GGH3003 +GHO                =       GGN3006 +      GHO                                    : ARR( 0.504E-11,     0., 0.0);
+{ 22532} GGH3003 +GHO                =       G2G3006                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 22533} GGH3003 +GHO                =       G3H3002                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 22534} GGH3003+HV               =       G1G3007 +      GNO2                                   :  0.100E+01*SUN;
+{ 22535} GGH3003+HV               =       G1G3006 +      GHO                                    :  0.100E+01*SUN;
+{ 22536} GGH3003+HV               =       GND2000 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 22537} G2G3006 +GNO                =       G1G3006 +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{ 22538} G2G3006 +GNO                =       GGN3004                                               : ARR( 0.622E-13,  -360., 0.0);
+{ 22539} G2G3006 +GHO2               =       GGH3003                                               : ARR( 0.179E-12, -1250., 0.0);
+{ 22540} G2G3006 +GNO3               =       G1G3006 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 22541} G2G3006 +MEPERO             =  0.340G1G3006 + 0.330GGN3003 + 0.330GGN3006                 : ARR( 0.565E-13,  -845., 0.0);
+{ 22542} G2G3006 +PERO1              =  0.460G1G3006 + 0.270GGN3003 + 0.270GGN3006                 : ARR( 0.434E-13,  -900., 0.0);
+{ 22543} G2G3006 +PERO2              =  0.400G1G3006 + 0.300GGN3003 + 0.300GGN3006                 : ARR( 0.162E-13, -1400., 0.0);
+{ 22544} G2G3006 +PERO3              =  0.460G1G3006 + 0.270GGN3003 + 0.270GGN3006                 : ARR( 0.488E-13, -1250., 0.0);
+{ 22545} G2G3006 +PERO5              =  0.460G1G3006 + 0.270GGN3003 + 0.270GGN3006                 : ARR( 0.183E-11,   450., 0.0);
+{ 22546} G2G3006 +PERO6              =  0.300G1G3006 + 0.350GGN3003 + 0.350GGN3006                 : ARR( 0.168E-13, -1300., 0.0);
+{ 22547} G2G3006 +PERO9              =  0.650G1G3006 + 0.350GGN3006                                : ARR( 0.100E-10,     0., 0.0);
+{ 22548} G1G3007 +OXYGEN             =       GGH3007 +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 22549} G1G3007                     =       GGD2000 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  6006., 0.0);
+{ 22550} GAH3003 +GHO                =       GAN3005 +      GHO                                    : ARR( 0.374E-11,     0., 0.0);
+{ 22551} GAH3003 +GHO                =       G2A3003                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 22552} GAH3003 +GHO                =       GND2000 +      GHO     +      GCO2                    : ARR( 0.523E-12,     0., 0.0);
+{ 22553} GAH3003+HV               =       G1A3003 +      GHO                                    :  0.100E+01*SUN;
+{ 22554} GAH3003+HV               =       G1A3007 +      GNO2                                   :  0.100E+01*SUN;
+{ 22555} G1A3007 +OXYGEN             =       GAH3007 +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 22556} G1A3007                     =       GAD2000 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  6006., 0.0);
+{ 22557} GPH3003                     =       G3H3002 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 22558} GPH3003 +GHO                =       GPN3005 +      GHO                                    : ARR( 0.505E-11,     0., 0.0);
+{ 22559} GPH3003 +GHO                =       G2P3003                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 22560} GPH3003+HV               =       G1P3007 +      GNO2                                   :  0.100E+01*SUN;
+{ 22561} GPH3003+HV               =       G1P3003 +      GHO                                    :  0.100E+01*SUN;
+{ 22562} GPH3003+HV               =       G3H3002 +      GNO2                                   :  0.100E+01*SUN;
+{ 22563} G1P3007 +OXYGEN             =       GPH3007 +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 22564} G1P3007                     =       GPD2000 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  6006., 0.0);
+{ 22565} GHN503J +GHO                =       GNK500r +      GHO                                    : ARR( 0.222E-10,     0., 0.0);
+{ 22566} GHN503J +GHO                =       G2N502d                                               : ARR( 0.206E-11,  -190., 0.0);
+{ 22567} GHN503J+HV               =       G1N502u +      GHO                                    :  0.100E+01*SUN;
+{ 22568} GHN503J+HV               =       G3H3001 +      GND2000 +      GHO2                    :  0.100E+01*SUN;
+{ 22569} GHN503J+HV               =       G1H505m +      GNO2                                   :  0.100E+01*SUN;
+{ 22570} G1H505m                     =       GHD400I +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4576., 0.0);
+{ 22571} GHN503K +GHO                =       GND500k +      GHO                                    : ARR( 0.518E-10,     0., 0.0);
+{ 22572} GHN503K +GHO                =       G2N502e                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 22573} GHN503K+HV               =       G1H505n +      GNO2                                   :  0.100E+01*SUN;
+{ 22574} GHN503K+HV               =       G3N2000 +      G3H3000                                :  0.100E+01*SUN;
+{ 22575} GHN503K+HV               =       G1N502v +      GHO                                    :  0.100E+01*SUN;
+{ 22576} G1H505n                     =       G3H3000 +      GCH2O   +      GCO                     : ARR( 0.200E+15,  3897., 0.0);
+{ 22577} GND500k +GHO                =       G3N5011                                               : ARR( 0.664E-10,     0., 0.0);
+{ 22578} GND500k +GNO3               =       G3N5011 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 22579} GND500k+HV               =       G1D500u +      GNO2                                   :  0.100E+01*SUN;
+{ 22580} GND500k+HV               =       G3N2000 +      G3D3000                                :  0.100E+01*SUN;
+{ 22581} GND500k+HV               =       G2N400u +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 22582} G3N5011 +GHO2               =  0.800GGN501G + 0.200GAN5014 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 22583} G3N5011 +GNO                =       G2N400u +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 22584} G3N5011 +GNO2               =       GPN5016                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 22585} G3N5011 +GNO3               =       G2N400u +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 22586} G3N5011 +MEPERO             =  0.685G2N400u + 0.315GAN5014 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 22587} G3N5011 +PERO1              =  0.800G2N400u + 0.200GAN5014 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 22588} G3N5011 +PERO2              =  0.750G2N400u + 0.250GAN5014 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 22589} G3N5011 +PERO3              =  0.800G2N400u + 0.200GAN5014 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 22590} G3N5011 +PERO5              =  0.650G2N400u + 0.350GAN5014 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 22591} G3N5011 +PERO6              =  0.650G2N400u + 0.350GAN5014 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 22592} G3N5011 +PERO9              =       G2N400u +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 22593} G1D500u                     =       G3D3000 +      GCH2O   +      GCO                     : ARR( 0.200E+15,  3897., 0.0);
+{ 22594} G2N400u +GNO                =       G1N4015 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 22595} G2N400u +GNO                =       GNN400Y                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 22596} G2N400u +GHO2               =       GHN4019                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 22597} G2N400u +GNO3               =       G1N4015 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 22598} G2N400u +MEPERO             =  0.480G1N4015 + 0.260GNK400C + 0.260GND400M                 : ARR( 0.164E-12,  -795., 0.0);
+{ 22599} G2N400u +PERO1              =  0.600G1N4015 + 0.200GNK400C + 0.200GND400M                 : ARR( 0.126E-12,  -850., 0.0);
+{ 22600} G2N400u +PERO2              =  0.560G1N4015 + 0.220GNK400C + 0.220GND400M                 : ARR( 0.471E-13, -1350., 0.0);
+{ 22601} G2N400u +PERO3              =  0.600G1N4015 + 0.200GNK400C + 0.200GND400M                 : ARR( 0.142E-12, -1200., 0.0);
+{ 22602} G2N400u +PERO5              =  0.600G1N4015 + 0.200GNK400C + 0.200GND400M                 : ARR( 0.533E-11,   500., 0.0);
+{ 22603} G2N400u +PERO6              =  0.460G1N4015 + 0.270GNK400C + 0.270GND400M                 : ARR( 0.488E-13, -1250., 0.0);
+{ 22604} G2N400u +PERO9              =  0.800G1N4015 + 0.200GND400M                                : ARR( 0.100E-10,     0., 0.0);
+{ 22605} G1N4015                     =       G3N2000 +      GCH2O   +      GCO                     : ARR( 0.200E+15,  3897., 0.0);
+{ 22606} GHN503L +GHO                =       GNK500s +      GHO                                    : ARR( 0.209E-10,     0., 0.0);
+{ 22607} GHN503L +GHO                =       G2N502f                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 22608} GHN503L+HV               =       G1N502w +      GHO                                    :  0.100E+01*SUN;
+{ 22609} GHN503L+HV               =       G3H3001 +      G3N2000                                :  0.100E+01*SUN;
+{ 22610} GHN503L+HV               =       G1H505o +      GNO2                                   :  0.100E+01*SUN;
+{ 22611} G1H505o                     =       G3H3001 +      GCH2O   +      GCO                     : ARR( 0.200E+15,  3897., 0.0);
+{ 22612} GNK500w +GHO                =       G2N504i                                               : ARR( 0.547E-12,     0., 0.0);
+{ 22613} GNK500w +GHO                =       GNK500s +      GHO2                                   : ARR( 0.526E-11,     0., 0.0);
+{ 22614} GNK500w+HV               =       G3K3002 +      G3N2000                                :  0.100E+01*SUN;
+{ 22615} GNK500w+HV               =       G1K500z +      GNO2                                   :  0.100E+01*SUN;
+{ 22616} G2N504i +GNO                =       G1N505G +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 22617} G2N504i +GNO                =       GNN5023                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 22618} G2N504i +GHO2               =       GHN5061                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 22619} G2N504i +GNO3               =       G1N505G +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 22620} G2N504i +MEPERO             =  0.480G1N505G + 0.260GNK5012 + 0.260GND501K                 : ARR( 0.164E-12,  -795., 0.0);
+{ 22621} G2N504i +PERO1              =  0.600G1N505G + 0.200GNK5012 + 0.200GND501K                 : ARR( 0.126E-12,  -850., 0.0);
+{ 22622} G2N504i +PERO2              =  0.560G1N505G + 0.220GNK5012 + 0.220GND501K                 : ARR( 0.471E-13, -1350., 0.0);
+{ 22623} G2N504i +PERO3              =  0.600G1N505G + 0.200GNK5012 + 0.200GND501K                 : ARR( 0.142E-12, -1200., 0.0);
+{ 22624} G2N504i +PERO5              =  0.600G1N505G + 0.200GNK5012 + 0.200GND501K                 : ARR( 0.533E-11,   500., 0.0);
+{ 22625} G2N504i +PERO6              =  0.460G1N505G + 0.270GNK5012 + 0.270GND501K                 : ARR( 0.488E-13, -1250., 0.0);
+{ 22626} G2N504i +PERO9              =  0.800G1N505G + 0.200GND501K                                : ARR( 0.100E-10,     0., 0.0);
+{ 22627} G1K500z                     =       G3K3002 +      GCH2O   +      GCO                     : ARR( 0.200E+15,  3897., 0.0);
+{ 22628} GAN3005 +GHO                =       GAD3002 +      GNO2                                   : ARR( 0.280E-13,     0., 0.0);
+{ 22629} GAN3005 +GHO                =       G3N2000 +      GCO2                                   : ARR( 0.520E-12,     0., 0.0);
+{ 22630} GAN3005+HV               =       GND2000 +      GCO2                                   :  0.100E+01*SUN;
+{ 22631} GAN3005+HV               =       G1A3006 +      GNO2                                   :  0.100E+01*SUN;
+{ 22632} GPN3005                     =       G3N3006 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 22633} GPN3005 +GHO                =       GPD3002 +      GNO2                                   : ARR( 0.280E-13,     0., 0.0);
+{ 22634} GPN3005+HV               =       G1P3006 +      GNO2                                   :  0.100E+01*SUN;
+{ 22635} GPN3005+HV               =       G3N2000 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 22636} G3N3006 +GHO2               =  0.800GGN3006 + 0.200GAN3005 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 22637} G3N3006 +GNO                =       G3N2000 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 22638} G3N3006 +GNO2               =       GPN3005                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 22639} G3N3006 +GNO3               =       G3N2000 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 22640} G3N3006 +MEPERO             =  0.685G3N2000 + 0.315GAN3005 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 22641} G3N3006 +PERO1              =  0.800G3N2000 + 0.200GAN3005 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 22642} G3N3006 +PERO2              =  0.750G3N2000 + 0.250GAN3005 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 22643} G3N3006 +PERO3              =  0.800G3N2000 + 0.200GAN3005 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 22644} G3N3006 +PERO5              =  0.650G3N2000 + 0.350GAN3005 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 22645} G3N3006 +PERO6              =  0.650G3N2000 + 0.350GAN3005 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 22646} G3N3006 +PERO9              =       G3N2000 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 22647} GHH500o +GHO                =       GHN502C +      GHO                                    : ARR( 0.414E-10,     0., 0.0);
+{ 22648} GHH500o +GHO                =       GHN503Y +      GHO                                    : ARR( 0.162E-10,     0., 0.0);
+{ 22649} GHH500o +GHO                =       G2H500s                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 22650} GHH500o +GHO                =       G2H502G                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 22651} GHH500o+HV               =       G1H505p +      GNO2                                   :  0.100E+01*SUN;
+{ 22652} GHH500o+HV               =       G1H505q +      GNO2                                   :  0.100E+01*SUN;
+{ 22653} GHH500o+HV               =       G1H501W +      GHO                                    :  0.100E+01*SUN;
+{ 22654} GHH500o+HV               =       G1H503S +      GHO                                    :  0.100E+01*SUN;
+{ 22655} G2H502G +GNO                =       G1H503S +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 22656} G2H502G +GNO                =       GHN501u                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 22657} G2H502G +GHO2               =       GHH500o                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 22658} G2H502G +GNO3               =       G1H503S +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 22659} G2H502G +MEPERO             =  0.480G1H503S + 0.260GHN500s + 0.260GHN503Y                 : ARR( 0.164E-12,  -795., 0.0);
+{ 22660} G2H502G +PERO1              =  0.600G1H503S + 0.200GHN500s + 0.200GHN503Y                 : ARR( 0.126E-12,  -850., 0.0);
+{ 22661} G2H502G +PERO2              =  0.560G1H503S + 0.220GHN500s + 0.220GHN503Y                 : ARR( 0.471E-13, -1350., 0.0);
+{ 22662} G2H502G +PERO3              =  0.600G1H503S + 0.200GHN500s + 0.200GHN503Y                 : ARR( 0.142E-12, -1200., 0.0);
+{ 22663} G2H502G +PERO5              =  0.600G1H503S + 0.200GHN500s + 0.200GHN503Y                 : ARR( 0.533E-11,   500., 0.0);
+{ 22664} G2H502G +PERO6              =  0.460G1H503S + 0.270GHN500s + 0.270GHN503Y                 : ARR( 0.488E-13, -1250., 0.0);
+{ 22665} G2H502G +PERO9              =  0.800G1H503S + 0.200GHN503Y                                : ARR( 0.100E-10,     0., 0.0);
+{ 22666} G1H505p                     =       GHN501H +      GHO                                    : ARR( 0.800E+11,  1678., 0.0);
+{ 22667} G1H505q                     =       GHN5021 +      GHO                                    : ARR( 0.160E+12,  2186., 0.0);
+{ 22668} GHH500p +GHO                =       GHN501H +      GHO                                    : ARR( 0.421E-10,     0., 0.0);
+{ 22669} GHH500p +GHO                =       GHN503M +      GHO                                    : ARR( 0.164E-10,     0., 0.0);
+{ 22670} GHH500p +GHO                =       G2H500t                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 22671} GHH500p +GHO                =       G2H502H                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 22672} GHH500p+HV               =       G1H505r +      GNO2                                   :  0.100E+01*SUN;
+{ 22673} GHH500p+HV               =       G1H501X +      GHO                                    :  0.100E+01*SUN;
+{ 22674} GHH500p+HV               =       G1H501z +      GHO                                    :  0.100E+01*SUN;
+{ 22675} G2H502H +GNO                =       G1H501z +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 22676} G2H502H +GNO                =       GHN500v                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 22677} G2H502H +GHO2               =       GHH500p                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 22678} G2H502H +GNO3               =       G1H501z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 22679} G2H502H +MEPERO             =  0.480G1H501z + 0.260GHN500t + 0.260GHN503M                 : ARR( 0.164E-12,  -795., 0.0);
+{ 22680} G2H502H +PERO1              =  0.600G1H501z + 0.200GHN500t + 0.200GHN503M                 : ARR( 0.126E-12,  -850., 0.0);
+{ 22681} G2H502H +PERO2              =  0.560G1H501z + 0.220GHN500t + 0.220GHN503M                 : ARR( 0.471E-13, -1350., 0.0);
+{ 22682} G2H502H +PERO3              =  0.600G1H501z + 0.200GHN500t + 0.200GHN503M                 : ARR( 0.142E-12, -1200., 0.0);
+{ 22683} G2H502H +PERO5              =  0.600G1H501z + 0.200GHN500t + 0.200GHN503M                 : ARR( 0.533E-11,   500., 0.0);
+{ 22684} G2H502H +PERO6              =  0.460G1H501z + 0.270GHN500t + 0.270GHN503M                 : ARR( 0.488E-13, -1250., 0.0);
+{ 22685} G2H502H +PERO9              =  0.800G1H501z + 0.200GHN503M                                : ARR( 0.100E-10,     0., 0.0);
+{ 22686} G1H505r                     =       GHD5006 +      GHO                                    : ARR( 0.160E+12,  2186., 0.0);
+{ 22687} G1H505r                     =       GCH2O   +      GHH400B +      GHO2                    : ARR( 0.200E+15,  5041., 0.0);
+{ 22688} GGN500G +GHO                =       G2G500r                                               : ARR( 0.285E-12,     0., 0.0);
+{ 22689} GGN500G +GHO                =       G2G500s                                               : ARR( 0.868E-12,     0., 0.0);
+{ 22690} GGN500G +GHO                =       G3N500C                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 22691} GGN500G+HV               =       G1G5012 +      GNO2                                   :  0.100E+01*SUN;
+{ 22692} GGN500G+HV               =       G1G5013 +      GNO2                                   :  0.100E+01*SUN;
+{ 22693} GGN500G+HV               =       G2N400H +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 22694} G2G500r +GNO                =       G1G5014 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 22695} G2G500r +GNO                =       GGN501B                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 22696} G2G500r +GHO2               =       GGH501C                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 22697} G2G500r +GNO3               =       G1G5014 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 22698} G2G500r +MEPERO             =  0.340G1G5014 + 0.330GGN501H + 0.330GGN501F                 : ARR( 0.565E-13,  -845., 0.0);
+{ 22699} G2G500r +PERO1              =  0.460G1G5014 + 0.270GGN501H + 0.270GGN501F                 : ARR( 0.434E-13,  -900., 0.0);
+{ 22700} G2G500r +PERO2              =  0.400G1G5014 + 0.300GGN501H + 0.300GGN501F                 : ARR( 0.162E-13, -1400., 0.0);
+{ 22701} G2G500r +PERO3              =  0.460G1G5014 + 0.270GGN501H + 0.270GGN501F                 : ARR( 0.488E-13, -1250., 0.0);
+{ 22702} G2G500r +PERO5              =  0.460G1G5014 + 0.270GGN501H + 0.270GGN501F                 : ARR( 0.183E-11,   450., 0.0);
+{ 22703} G2G500r +PERO6              =  0.300G1G5014 + 0.350GGN501H + 0.350GGN501F                 : ARR( 0.168E-13, -1300., 0.0);
+{ 22704} G2G500r +PERO9              =  0.650G1G5014 + 0.350GGN501F                                : ARR( 0.100E-10,     0., 0.0);
+{ 22705} G2G500s +GNO                =       G1G5015 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 22706} G2G500s +GNO                =       GGN500x                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 22707} G2G500s +GHO2               =       GGH501D                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 22708} G2G500s +GNO3               =       G1G5015 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 22709} G2G500s +MEPERO             =  0.340G1G5015 + 0.330GGN501I + 0.330GGN5012                 : ARR( 0.565E-13,  -845., 0.0);
+{ 22710} G2G500s +PERO1              =  0.460G1G5015 + 0.270GGN501I + 0.270GGN5012                 : ARR( 0.434E-13,  -900., 0.0);
+{ 22711} G2G500s +PERO2              =  0.400G1G5015 + 0.300GGN501I + 0.300GGN5012                 : ARR( 0.162E-13, -1400., 0.0);
+{ 22712} G2G500s +PERO3              =  0.460G1G5015 + 0.270GGN501I + 0.270GGN5012                 : ARR( 0.488E-13, -1250., 0.0);
+{ 22713} G2G500s +PERO5              =  0.460G1G5015 + 0.270GGN501I + 0.270GGN5012                 : ARR( 0.183E-11,   450., 0.0);
+{ 22714} G2G500s +PERO6              =  0.300G1G5015 + 0.350GGN501I + 0.350GGN5012                 : ARR( 0.168E-13, -1300., 0.0);
+{ 22715} G2G500s +PERO9              =  0.650G1G5015 + 0.350GGN5012                                : ARR( 0.100E-10,     0., 0.0);
+{ 22716} G1G5012                     =       G2G500t                                               : ARR( 0.160E+12,  3221., 0.0);
+{ 22717} G1G5013                     =       GND2000 +      G2G3000                                : ARR( 0.200E+15,  7116., 0.0);
+{ 22718} G1G5014                     =       GND2000 +      GGD3000 +      GNO2                    : ARR( 0.200E+15,  5685., 0.0);
+{ 22719} G1G5015                     =       GNN4001 +      GCO     +      GHO2                    : ARR( 0.200E+15,  4949., 0.0);
+{ 22720} G2G500t +GNO                =       G1G5016 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 22721} G2G500t +GNO                =       GGN5015                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 22722} G2G500t +GHO2               =       GGH501E                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 22723} G2G500t +GNO3               =       G1G5016 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 22724} G2G500t +MEPERO             =  0.340G1G5016 + 0.330GGN5017 + 0.330GGN5018                 : ARR( 0.565E-13,  -845., 0.0);
+{ 22725} G2G500t +PERO1              =  0.460G1G5016 + 0.270GGN5017 + 0.270GGN5018                 : ARR( 0.434E-13,  -900., 0.0);
+{ 22726} G2G500t +PERO2              =  0.400G1G5016 + 0.300GGN5017 + 0.300GGN5018                 : ARR( 0.162E-13, -1400., 0.0);
+{ 22727} G2G500t +PERO3              =  0.460G1G5016 + 0.270GGN5017 + 0.270GGN5018                 : ARR( 0.488E-13, -1250., 0.0);
+{ 22728} G2G500t +PERO5              =  0.460G1G5016 + 0.270GGN5017 + 0.270GGN5018                 : ARR( 0.183E-11,   450., 0.0);
+{ 22729} G2G500t +PERO6              =  0.300G1G5016 + 0.350GGN5017 + 0.350GGN5018                 : ARR( 0.168E-13, -1300., 0.0);
+{ 22730} G2G500t +PERO9              =  0.650G1G5016 + 0.350GGN5018                                : ARR( 0.100E-10,     0., 0.0);
+{ 22731} G1G5016                     =       GGN501J +      GHO2                                   : ARR( 0.160E+12,  3252., 0.0);
+{ 22732} G1G5016                     =       GND4002 +      GCO     +      GHO2                    : ARR( 0.200E+15,  4949., 0.0);
+{ 22733} GHN400P +GHO                =       GNN4001 +      GHO                                    : ARR( 0.163E-10,     0., 0.0);
+{ 22734} GHN400P +GHO                =       G2N400H                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 22735} GHN400P+HV               =       G1H400e +      GNO2                                   :  0.100E+01*SUN;
+{ 22736} GHN400P+HV               =       G1H400r +      GNO2                                   :  0.100E+01*SUN;
+{ 22737} GHN400P+HV               =       G1N400H +      GHO                                    :  0.100E+01*SUN;
+{ 22738} G1H400r                     =       GND2000 +      G2H2000                                : ARR( 0.200E+15,  7131., 0.0);
+{ 22739} GHN503M +GHO                =       GND500N +      GHO                                    : ARR( 0.261E-10,     0., 0.0);
+{ 22740} GHN503M +GHO                =       G3H500s                                               : ARR( 0.216E-10,     0., 0.0);
+{ 22741} GHN503M +GHO                =       G2N502g                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 22742} GHN503M +GNO3               =       G3H500s +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 22743} GHN503M+HV               =       G1H505s +      GNO2                                   :  0.100E+01*SUN;
+{ 22744} GHN503M+HV               =       G1N502z +      GHO                                    :  0.100E+01*SUN;
+{ 22745} GHN503M+HV               =       GND4002 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 22746} G3H500s +GHO2               =  0.800GGH501E + 0.200GAH501D + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 22747} G3H500s +GNO                =       GND4002 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 22748} G3H500s +GNO2               =       GPH5018                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 22749} G3H500s +GNO3               =       GND4002 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 22750} G3H500s +MEPERO             =  0.685GND4002 + 0.315GAH501D + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 22751} G3H500s +PERO1              =  0.800GND4002 + 0.200GAH501D + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 22752} G3H500s +PERO2              =  0.750GND4002 + 0.250GAH501D + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 22753} G3H500s +PERO3              =  0.800GND4002 + 0.200GAH501D + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 22754} G3H500s +PERO5              =  0.650GND4002 + 0.350GAH501D + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 22755} G3H500s +PERO6              =  0.650GND4002 + 0.350GAH501D + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 22756} G3H500s +PERO9              =       GND4002 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 22757} G1H505s                     =       GCH2O   +      GHD400C +      GHO2                    : ARR( 0.200E+15,  5041., 0.0);
+{ 22758} GND500l +GHO                =       GND500N +      GHO2                                   : ARR( 0.677E-11,     0., 0.0);
+{ 22759} GND500l +GHO                =       G3N5012                                               : ARR( 0.224E-10,     0., 0.0);
+{ 22760} GND500l +GNO3               =       G3N5012 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 22761} GND500l+HV               =       G1D500v +      GNO2                                   :  0.100E+01*SUN;
+{ 22762} GND500l+HV               =       GND4002 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 22763} G3N5012 +GHO2               =  0.800GGN5017 + 0.200GAN501C + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 22764} G3N5012 +GNO                =       GND4002 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 22765} G3N5012 +GNO2               =       GPN501E                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 22766} G3N5012 +GNO3               =       GND4002 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 22767} G3N5012 +MEPERO             =  0.685GND4002 + 0.315GAN501C + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 22768} G3N5012 +PERO1              =  0.800GND4002 + 0.200GAN501C + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 22769} G3N5012 +PERO2              =  0.750GND4002 + 0.250GAN501C + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 22770} G3N5012 +PERO3              =  0.800GND4002 + 0.200GAN501C + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 22771} G3N5012 +PERO5              =  0.650GND4002 + 0.350GAN501C + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 22772} G3N5012 +PERO6              =  0.650GND4002 + 0.350GAN501C + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 22773} G3N5012 +PERO9              =       GND4002 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 22774} G1D500v                     =       GCH2O   +      GDD4001 +      GHO2                    : ARR( 0.200E+15,  5041., 0.0);
+{ 22775} GND500m +GHO                =       G3N5013                                               : ARR( 0.215E-10,     0., 0.0);
+{ 22776} GND500m +GHO                =       GND5014 +      GHO2                                   : ARR( 0.651E-11,     0., 0.0);
+{ 22777} GND500m +GHO                =       G3N5014                                               : ARR( 0.430E-11,     0., 0.0);
+{ 22778} GND500m +GNO3               =       G3N5013 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 22779} GND500m +GNO3               =       G3N5014 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 22780} GND500m+HV               =       GCO     +      GND400D + 2.000GHO2                    :  0.100E+01*SUN;
+{ 22781} GND500m+HV               =       G1D500w +      GNO2                                   :  0.100E+01*SUN;
+{ 22782} GND500m+HV               =       GDD4001 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 22783} GND500m+HV               =       GDK3000 +      GND2000                                :  0.100E+01*SUN;
+{ 22784} G3N5013 +GHO2               =  0.800GGN501J + 0.200GAN501E + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 22785} G3N5013 +GNO                =       GND400D +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 22786} G3N5013 +GNO2               =       GPN501G                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 22787} G3N5013 +GNO3               =       GND400D +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 22788} G3N5013 +MEPERO             =  0.685GND400D + 0.315GAN501E + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 22789} G3N5013 +PERO1              =  0.800GND400D + 0.200GAN501E + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 22790} G3N5013 +PERO2              =  0.750GND400D + 0.250GAN501E + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 22791} G3N5013 +PERO3              =  0.800GND400D + 0.200GAN501E + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 22792} G3N5013 +PERO5              =  0.650GND400D + 0.350GAN501E + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 22793} G3N5013 +PERO6              =  0.650GND400D + 0.350GAN501E + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 22794} G3N5013 +PERO9              =       GND400D +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 22795} G3N5014 +GHO2               =  0.800GGN501K + 0.200GAN501P + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 22796} G3N5014 +GNO                =       GDD4001 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 22797} G3N5014 +GNO2               =       GPN501S                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 22798} G3N5014 +GNO3               =       GDD4001 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 22799} G3N5014 +MEPERO             =  0.685GDD4001 + 0.315GAN501P + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 22800} G3N5014 +PERO1              =  0.800GDD4001 + 0.200GAN501P + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 22801} G3N5014 +PERO2              =  0.750GDD4001 + 0.250GAN501P + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 22802} G3N5014 +PERO3              =  0.800GDD4001 + 0.200GAN501P + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 22803} G3N5014 +PERO5              =  0.650GDD4001 + 0.350GAN501P + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 22804} G3N5014 +PERO6              =  0.650GDD4001 + 0.350GAN501P + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 22805} G3N5014 +PERO9              =       GDD4001 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 22806} G1D500w                     =       GDD4001 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5437., 0.0);
+{ 22807} GHH500q +GHO                =       GHN502p +      GHO                                    : ARR( 0.336E-10,     0., 0.0);
+{ 22808} GHH500q +GHO                =       GHN503F +      GHO                                    : ARR( 0.828E-11,     0., 0.0);
+{ 22809} GHH500q +GHO                =       G2H500v                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 22810} GHH500q +GHO                =       G2H502I                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 22811} GHH500q+HV               =       G1H501d +      GHO                                    :  0.100E+01*SUN;
+{ 22812} GHH500q+HV               =       G1H505C +      GHO                                    :  0.100E+01*SUN;
+{ 22813} GHH500q+HV               =       G1H505t +      GNO2                                   :  0.100E+01*SUN;
+{ 22814} GHH500q+HV               =       G1H505u +      GNO2                                   :  0.100E+01*SUN;
+{ 22815} G2H502I +GNO                =       G1H505C +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 22816} G2H502I +GNO                =       GHN502v                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 22817} G2H502I +GHO2               =       GHH500q                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 22818} G2H502I +GNO3               =       G1H505C +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 22819} G2H502I +MEPERO             =  0.340G1H505C + 0.330GHN503Q + 0.330GHN503F                 : ARR( 0.565E-13,  -845., 0.0);
+{ 22820} G2H502I +PERO1              =  0.460G1H505C + 0.270GHN503Q + 0.270GHN503F                 : ARR( 0.434E-13,  -900., 0.0);
+{ 22821} G2H502I +PERO2              =  0.400G1H505C + 0.300GHN503Q + 0.300GHN503F                 : ARR( 0.162E-13, -1400., 0.0);
+{ 22822} G2H502I +PERO3              =  0.460G1H505C + 0.270GHN503Q + 0.270GHN503F                 : ARR( 0.488E-13, -1250., 0.0);
+{ 22823} G2H502I +PERO5              =  0.460G1H505C + 0.270GHN503Q + 0.270GHN503F                 : ARR( 0.183E-11,   450., 0.0);
+{ 22824} G2H502I +PERO6              =  0.300G1H505C + 0.350GHN503Q + 0.350GHN503F                 : ARR( 0.168E-13, -1300., 0.0);
+{ 22825} G2H502I +PERO9              =  0.650G1H505C + 0.350GHN503F                                : ARR( 0.100E-10,     0., 0.0);
+{ 22826} G1H505t                     =       GHD3002 +      GND2000 +      GHO                     : ARR( 0.200E+15,  4693., 0.0);
+{ 22827} G1H505u                     =       GHN501d +      GHO                                    : ARR( 0.800E+11,  1771., 0.0);
+{ 22828} GHN503N +GHO                =       GHN502p +      GHO2                                   : ARR( 0.852E-11,     0., 0.0);
+{ 22829} GHN503N +GHO                =       GNN502L +      GHO                                    : ARR( 0.838E-11,     0., 0.0);
+{ 22830} GHN503N +GHO                =       G2N504j                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 22831} GHN503N+HV               =       G1N503m +      GHO                                    :  0.100E+01*SUN;
+{ 22832} GHN503N+HV               =       G1H505v +      GNO2                                   :  0.100E+01*SUN;
+{ 22833} GHN503N+HV               =       G1H505w +      GNO2                                   :  0.100E+01*SUN;
+{ 22834} G2N504j +GNO                =       G1N503m +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 22835} G2N504j +GNO                =       GNN5011                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 22836} G2N504j +GHO2               =       GHN503N                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 22837} G2N504j +GNO3               =       G1N503m +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 22838} G2N504j +MEPERO             =  0.340G1N503m + 0.330GNN502M + 0.330GNN502L                 : ARR( 0.565E-13,  -845., 0.0);
+{ 22839} G2N504j +PERO1              =  0.460G1N503m + 0.270GNN502M + 0.270GNN502L                 : ARR( 0.434E-13,  -900., 0.0);
+{ 22840} G2N504j +PERO2              =  0.400G1N503m + 0.300GNN502M + 0.300GNN502L                 : ARR( 0.162E-13, -1400., 0.0);
+{ 22841} G2N504j +PERO3              =  0.460G1N503m + 0.270GNN502M + 0.270GNN502L                 : ARR( 0.488E-13, -1250., 0.0);
+{ 22842} G2N504j +PERO5              =  0.460G1N503m + 0.270GNN502M + 0.270GNN502L                 : ARR( 0.183E-11,   450., 0.0);
+{ 22843} G2N504j +PERO6              =  0.300G1N503m + 0.350GNN502M + 0.350GNN502L                 : ARR( 0.168E-13, -1300., 0.0);
+{ 22844} G2N504j +PERO9              =  0.650G1N503m + 0.350GNN502L                                : ARR( 0.100E-10,     0., 0.0);
+{ 22845} G1H505v                     =       GDO3001 +      GND2000 +      GHO                     : ARR( 0.200E+15,  4693., 0.0);
+{ 22846} G1H505w                     =       GHN501d +      GHO2                                   : ARR( 0.800E+11,  2117., 0.0);
+{ 22847} GHH500r +GHO                =       GHN501d +      GHO                                    : ARR( 0.343E-10,     0., 0.0);
+{ 22848} GHH500r +GHO                =       GHN503G +      GHO                                    : ARR( 0.845E-11,     0., 0.0);
+{ 22849} GHH500r +GHO                =       G2H500x                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 22850} GHH500r +GHO                =       G2H502J                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 22851} GHH500r+HV               =       G1H501f +      GHO                                    :  0.100E+01*SUN;
+{ 22852} GHH500r+HV               =       G1H5033 +      GHO                                    :  0.100E+01*SUN;
+{ 22853} GHH500r+HV               =       G1H505x +      GNO2                                   :  0.100E+01*SUN;
+{ 22854} G2H502J +GNO                =       G1H5033 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 22855} G2H502J +GNO                =       GHN501Y                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 22856} G2H502J +GHO2               =       GHH500r                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 22857} G2H502J +GNO3               =       G1H5033 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 22858} G2H502J +MEPERO             =  0.340G1H5033 + 0.330GHN503R + 0.330GHN503G                 : ARR( 0.565E-13,  -845., 0.0);
+{ 22859} G2H502J +PERO1              =  0.460G1H5033 + 0.270GHN503R + 0.270GHN503G                 : ARR( 0.434E-13,  -900., 0.0);
+{ 22860} G2H502J +PERO2              =  0.400G1H5033 + 0.300GHN503R + 0.300GHN503G                 : ARR( 0.162E-13, -1400., 0.0);
+{ 22861} G2H502J +PERO3              =  0.460G1H5033 + 0.270GHN503R + 0.270GHN503G                 : ARR( 0.488E-13, -1250., 0.0);
+{ 22862} G2H502J +PERO5              =  0.460G1H5033 + 0.270GHN503R + 0.270GHN503G                 : ARR( 0.183E-11,   450., 0.0);
+{ 22863} G2H502J +PERO6              =  0.300G1H5033 + 0.350GHN503R + 0.350GHN503G                 : ARR( 0.168E-13, -1300., 0.0);
+{ 22864} G2H502J +PERO9              =  0.650G1H5033 + 0.350GHN503G                                : ARR( 0.100E-10,     0., 0.0);
+{ 22865} G1H505x                     =       GHD3002 +      GDO2000 +      GHO                     : ARR( 0.200E+15,  4695., 0.0);
+{ 22866} G1H505x                     =       GHH400M +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  5296., 0.0);
+{ 22867} GHN503O +GHO                =       GHN501d +      GHO2                                   : ARR( 0.894E-11,     0., 0.0);
+{ 22868} GHN503O +GHO                =       GNK500v +      GHO                                    : ARR( 0.880E-11,     0., 0.0);
+{ 22869} GHN503O +GHO                =       G2N504k                                               : ARR( 0.203E-11,  -190., 0.0);
+{ 22870} GHN503O+HV               =       G1N503q +      GHO                                    :  0.100E+01*SUN;
+{ 22871} GHN503O+HV               =       G1H505y +      GNO2                                   :  0.100E+01*SUN;
+{ 22872} G2N504k +GNO                =       G1N503q +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 22873} G2N504k +GNO                =       GNN5012                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 22874} G2N504k +GHO2               =       GHN503O                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 22875} G2N504k +GNO3               =       G1N503q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 22876} G2N504k +MEPERO             =  0.340G1N503q + 0.330GNO500X + 0.330GNK500v                 : ARR( 0.565E-13,  -845., 0.0);
+{ 22877} G2N504k +PERO1              =  0.460G1N503q + 0.270GNO500X + 0.270GNK500v                 : ARR( 0.434E-13,  -900., 0.0);
+{ 22878} G2N504k +PERO2              =  0.400G1N503q + 0.300GNO500X + 0.300GNK500v                 : ARR( 0.162E-13, -1400., 0.0);
+{ 22879} G2N504k +PERO3              =  0.460G1N503q + 0.270GNO500X + 0.270GNK500v                 : ARR( 0.488E-13, -1250., 0.0);
+{ 22880} G2N504k +PERO5              =  0.460G1N503q + 0.270GNO500X + 0.270GNK500v                 : ARR( 0.183E-11,   450., 0.0);
+{ 22881} G2N504k +PERO6              =  0.300G1N503q + 0.350GNO500X + 0.350GNK500v                 : ARR( 0.168E-13, -1300., 0.0);
+{ 22882} G2N504k +PERO9              =  0.650G1N503q + 0.350GNK500v                                : ARR( 0.100E-10,     0., 0.0);
+{ 22883} G1H505y                     =       GDO3001 +      GDO2000 +      GHO                     : ARR( 0.200E+15,  4695., 0.0);
+{ 22884} G1H505y                     =       GHD4008 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  5296., 0.0);
+{ 22885} GHN503P +GHO                =       GHN504X +      GHO2                                   : ARR( 0.851E-11,     0., 0.0);
+{ 22886} GHN503P +GHO                =       GND501N +      GHO                                    : ARR( 0.837E-11,     0., 0.0);
+{ 22887} GHN503P +GHO                =       G3H500t                                               : ARR( 0.422E-11,     0., 0.0);
+{ 22888} GHN503P +GHO                =       G2N504l                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 22889} GHN503P +GNO3               =       G3H500t +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 22890} GHN503P+HV               =       G1N503u +      GHO                                    :  0.100E+01*SUN;
+{ 22891} GHN503P+HV               =       G1H505z +      GNO2                                   :  0.100E+01*SUN;
+{ 22892} GHN503P+HV               =       GHD4008 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 22893} GHN503P+HV               =       GHK3000 +      GND2000                                :  0.100E+01*SUN;
+{ 22894} G3H500t +GHO2               =  0.800GGH501F + 0.200GAH501T + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 22895} G3H500t +GNO                =       GHD4008 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 22896} G3H500t +GNO2               =       GPH501U                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 22897} G3H500t +GNO3               =       GHD4008 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 22898} G3H500t +MEPERO             =  0.685GHD4008 + 0.315GAH501T + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 22899} G3H500t +PERO1              =  0.800GHD4008 + 0.200GAH501T + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 22900} G3H500t +PERO2              =  0.750GHD4008 + 0.250GAH501T + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 22901} G3H500t +PERO3              =  0.800GHD4008 + 0.200GAH501T + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 22902} G3H500t +PERO5              =  0.650GHD4008 + 0.350GAH501T + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 22903} G3H500t +PERO6              =  0.650GHD4008 + 0.350GAH501T + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 22904} G3H500t +PERO9              =       GHD4008 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 22905} G2N504l +GNO                =       G1N503u +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 22906} G2N504l +GNO                =       GNN5013                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 22907} G2N504l +GHO2               =       GHN503P                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 22908} G2N504l +GNO3               =       G1N503u +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 22909} G2N504l +MEPERO             =  0.340G1N503u + 0.330GND5019 + 0.330GND501N                 : ARR( 0.565E-13,  -845., 0.0);
+{ 22910} G2N504l +PERO1              =  0.460G1N503u + 0.270GND5019 + 0.270GND501N                 : ARR( 0.434E-13,  -900., 0.0);
+{ 22911} G2N504l +PERO2              =  0.400G1N503u + 0.300GND5019 + 0.300GND501N                 : ARR( 0.162E-13, -1400., 0.0);
+{ 22912} G2N504l +PERO3              =  0.460G1N503u + 0.270GND5019 + 0.270GND501N                 : ARR( 0.488E-13, -1250., 0.0);
+{ 22913} G2N504l +PERO5              =  0.460G1N503u + 0.270GND5019 + 0.270GND501N                 : ARR( 0.183E-11,   450., 0.0);
+{ 22914} G2N504l +PERO6              =  0.300G1N503u + 0.350GND5019 + 0.350GND501N                 : ARR( 0.168E-13, -1300., 0.0);
+{ 22915} G2N504l +PERO9              =  0.650G1N503u + 0.350GND501N                                : ARR( 0.100E-10,     0., 0.0);
+{ 22916} G1H505z                     =       G2H502K                                               : ARR( 0.240E+12,  4177., 0.0);
+{ 22917} G1H505z                     =       GDO3001 +      GDD2000 +      GHO                     : ARR( 0.200E+15,  6108., 0.0);
+{ 22918} G1H505z                     =       GHD4008 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 22919} G2H502K +GNO                =       G1H5061 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 22920} G2H502K +GNO                =       GHN503v                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 22921} G2H502K +GHO2               =       GHH501I                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 22922} G2H502K +GNO3               =       G1H5061 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 22923} G2H502K +MEPERO             =  0.480G1H5061 + 0.260GHD500H + 0.260GHD500i                 : ARR( 0.164E-12,  -795., 0.0);
+{ 22924} G2H502K +PERO1              =  0.600G1H5061 + 0.200GHD500H + 0.200GHD500i                 : ARR( 0.126E-12,  -850., 0.0);
+{ 22925} G2H502K +PERO2              =  0.560G1H5061 + 0.220GHD500H + 0.220GHD500i                 : ARR( 0.471E-13, -1350., 0.0);
+{ 22926} G2H502K +PERO3              =  0.600G1H5061 + 0.200GHD500H + 0.200GHD500i                 : ARR( 0.142E-12, -1200., 0.0);
+{ 22927} G2H502K +PERO5              =  0.600G1H5061 + 0.200GHD500H + 0.200GHD500i                 : ARR( 0.533E-11,   500., 0.0);
+{ 22928} G2H502K +PERO6              =  0.460G1H5061 + 0.270GHD500H + 0.270GHD500i                 : ARR( 0.488E-13, -1250., 0.0);
+{ 22929} G2H502K +PERO9              =  0.800G1H5061 + 0.200GHD500i                                : ARR( 0.100E-10,     0., 0.0);
+{ 22930} G1H5061                     =       GHD500h +      GHO2                                   : ARR( 0.800E+11,  2246., 0.0);
+{ 22931} G1H5061                     =       GHD400L +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 22932} GHN503Q +GHO                =       GNN501y +      GHO                                    : ARR( 0.338E-10,     0., 0.0);
+{ 22933} GHN503Q +GHO                =       GHN503F +      GHO2                                   : ARR( 0.208E-11,     0., 0.0);
+{ 22934} GHN503Q +GHO                =       G2N502h                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 22935} GHN503Q+HV               =       G1N5033 +      GHO                                    :  0.100E+01*SUN;
+{ 22936} GHN503Q+HV               =       G1H5062 +      GNO2                                   :  0.100E+01*SUN;
+{ 22937} GHN503Q+HV               =       G1H5063 +      GNO2                                   :  0.100E+01*SUN;
+{ 22938} G1H5062                     =       GHD3002 +      GND2000 +      GHO2                    : ARR( 0.200E+15,  3484., 0.0);
+{ 22939} G1H5063                     =       GNK500b +      GHO                                    : ARR( 0.800E+11,  1771., 0.0);
+{ 22940} GNN502M +GHO                =       GNN501y +      GHO2                                   : ARR( 0.876E-11,     0., 0.0);
+{ 22941} GNN502M +GHO                =       GNN502L +      GHO2                                   : ARR( 0.216E-11,     0., 0.0);
+{ 22942} GNN502M+HV               =       G1N505m +      GNO2                                   :  0.100E+01*SUN;
+{ 22943} GNN502M+HV               =       G1N505n +      GNO2                                   :  0.100E+01*SUN;
+{ 22944} G1N505m                     =       GDO3001 +      GND2000 +      GHO2                    : ARR( 0.200E+15,  3484., 0.0);
+{ 22945} G1N505n                     =       GNK500b +      GHO2                                   : ARR( 0.800E+11,  2117., 0.0);
+{ 22946} GHN503R +GHO                =       GNK500b +      GHO                                    : ARR( 0.347E-10,     0., 0.0);
+{ 22947} GHN503R +GHO                =       GHN503G +      GHO2                                   : ARR( 0.213E-11,     0., 0.0);
+{ 22948} GHN503R +GHO                =       G2N502i                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 22949} GHN503R+HV               =       G1N5034 +      GHO                                    :  0.100E+01*SUN;
+{ 22950} GHN503R+HV               =       G1H5064 +      GNO2                                   :  0.100E+01*SUN;
+{ 22951} G1H5064                     =       GHD3002 +      GDO2000 +      GHO2                    : ARR( 0.200E+15,  3486., 0.0);
+{ 22952} GHN300A +GHO                =       GND3005 +      GHO                                    : ARR( 0.324E-11,     0., 0.0);
+{ 22953} GHN300A +GHO                =       G3H3005                                               : ARR( 0.418E-11,     0., 0.0);
+{ 22954} GHN300A +GHO                =       G2N300A                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 22955} GHN300A +GNO3               =       G3H3005 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 22956} GHN300A+HV               =       G1N300A +      GHO                                    :  0.100E+01*SUN;
+{ 22957} GHN300A+HV               =       G1H300C +      GNO2                                   :  0.100E+01*SUN;
+{ 22958} GHN300A+HV               =       GHD2000 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 22959} G3H3005 +GHO2               =  0.800GGH3005 + 0.200GAH3005 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 22960} G3H3005 +GNO                =       GHD2000 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 22961} G3H3005 +GNO2               =       GPH3005                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 22962} G3H3005 +GNO3               =       GHD2000 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 22963} G3H3005 +MEPERO             =  0.685GHD2000 + 0.315GAH3005 + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 22964} G3H3005 +PERO1              =  0.800GHD2000 + 0.200GAH3005 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 22965} G3H3005 +PERO2              =  0.750GHD2000 + 0.250GAH3005 + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 22966} G3H3005 +PERO3              =  0.800GHD2000 + 0.200GAH3005 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 22967} G3H3005 +PERO5              =  0.650GHD2000 + 0.350GAH3005 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 22968} G3H3005 +PERO6              =  0.650GHD2000 + 0.350GAH3005 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 22969} G3H3005 +PERO9              =       GHD2000 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 22970} GND3005 +GHO                =       G3N3005                                               : ARR( 0.835E-11,     0., 0.0);
+{ 22971} GND3005 +GNO3               =       G3N3005 +      GHNO3                                  : ARR( 0.240E-13,     0., 0.0);
+{ 22972} GND3005+HV               =       GCO     +      GDD2000 +      GHO2    +      GNO2     :  0.200E+01*SUN;
+{ 22973} GND3005+HV               =       G1D3005 +      GNO2                                   :  0.100E+01*SUN;
+{ 22974} GHN503S +GHO                =       GHN502m +      GHO2                                   : ARR( 0.179E-11,     0., 0.0);
+{ 22975} GHN503S +GHO                =       GNN5027 +      GHO                                    : ARR( 0.176E-11,     0., 0.0);
+{ 22976} GHN503S +GHO                =       G2N504m                                               : ARR( 0.203E-11,  -190., 0.0);
+{ 22977} GHN503S+HV               =       G1H501j +      GNO2                                   :  0.100E+01*SUN;
+{ 22978} GHN503S+HV               =       G1N503n +      GHO                                    :  0.100E+01*SUN;
+{ 22979} GHN503S+HV               =       G1H502v +      GNO2                                   :  0.100E+01*SUN;
+{ 22980} G2N504m +GNO                =       G1N503n +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 22981} G2N504m +GNO                =       GNN5011                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 22982} G2N504m +GHO2               =       GHN503S                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 22983} G2N504m +GNO3               =       G1N503n +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 22984} G2N504m +MEPERO             =  0.340G1N503n + 0.330GNN5016 + 0.330GNN5027                 : ARR( 0.565E-13,  -845., 0.0);
+{ 22985} G2N504m +PERO1              =  0.460G1N503n + 0.270GNN5016 + 0.270GNN5027                 : ARR( 0.434E-13,  -900., 0.0);
+{ 22986} G2N504m +PERO2              =  0.400G1N503n + 0.300GNN5016 + 0.300GNN5027                 : ARR( 0.162E-13, -1400., 0.0);
+{ 22987} G2N504m +PERO3              =  0.460G1N503n + 0.270GNN5016 + 0.270GNN5027                 : ARR( 0.488E-13, -1250., 0.0);
+{ 22988} G2N504m +PERO5              =  0.460G1N503n + 0.270GNN5016 + 0.270GNN5027                 : ARR( 0.183E-11,   450., 0.0);
+{ 22989} G2N504m +PERO6              =  0.300G1N503n + 0.350GNN5016 + 0.350GNN5027                 : ARR( 0.168E-13, -1300., 0.0);
+{ 22990} G2N504m +PERO9              =  0.650G1N503n + 0.350GNN5027                                : ARR( 0.100E-10,     0., 0.0);
+{ 22991} GHH500s +GHO                =       GHH502A +      GHO2                                   : ARR( 0.842E-11,     0., 0.0);
+{ 22992} GHH500s +GHO                =       GHN503I +      GHO                                    : ARR( 0.414E-10,     0., 0.0);
+{ 22993} GHH500s +GHO                =       GHN503W +      GHO                                    : ARR( 0.829E-11,     0., 0.0);
+{ 22994} GHH500s +GHO                =       G2H5011                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 22995} GHH500s +GHO                =       G2H502L                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 22996} GHH500s+HV               =       G1H501j +      GHO                                    :  0.100E+01*SUN;
+{ 22997} GHH500s+HV               =       G1H505v +      GHO                                    :  0.100E+01*SUN;
+{ 22998} GHH500s+HV               =       G1H5065 +      GNO2                                   :  0.100E+01*SUN;
+{ 22999} G2H502L +GNO                =       G1H505v +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 23000} G2H502L +GNO                =       GHN503N                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 23001} G2H502L +GHO2               =       GHH500s                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 23002} G2H502L +GNO3               =       G1H505v +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 23003} G2H502L +MEPERO             =  0.340G1H505v + 0.330GHN501h + 0.330GHN503W                 : ARR( 0.565E-13,  -845., 0.0);
+{ 23004} G2H502L +PERO1              =  0.460G1H505v + 0.270GHN501h + 0.270GHN503W                 : ARR( 0.434E-13,  -900., 0.0);
+{ 23005} G2H502L +PERO2              =  0.400G1H505v + 0.300GHN501h + 0.300GHN503W                 : ARR( 0.162E-13, -1400., 0.0);
+{ 23006} G2H502L +PERO3              =  0.460G1H505v + 0.270GHN501h + 0.270GHN503W                 : ARR( 0.488E-13, -1250., 0.0);
+{ 23007} G2H502L +PERO5              =  0.460G1H505v + 0.270GHN501h + 0.270GHN503W                 : ARR( 0.183E-11,   450., 0.0);
+{ 23008} G2H502L +PERO6              =  0.300G1H505v + 0.350GHN501h + 0.350GHN503W                 : ARR( 0.168E-13, -1300., 0.0);
+{ 23009} G2H502L +PERO9              =  0.650G1H505v + 0.350GHN503W                                : ARR( 0.100E-10,     0., 0.0);
+{ 23010} G1H5065                     =       GHH500S +      GHO2                                   : ARR( 0.800E+11,  2117., 0.0);
+{ 23011} G1H5065                     =       GHD4008 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{ 23012} GHN503T +GHO                =       GHN502n +      GHO2                                   : ARR( 0.851E-11,     0., 0.0);
+{ 23013} GHN503T +GHO                =       GHN503I +      GHO2                                   : ARR( 0.105E-10,     0., 0.0);
+{ 23014} GHN503T +GHO                =       GNK500x +      GHO                                    : ARR( 0.838E-11,     0., 0.0);
+{ 23015} GHN503T +GHO                =       G2N504n                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 23016} GHN503T+HV               =       G1N505m +      GHO                                    :  0.100E+01*SUN;
+{ 23017} GHN503T+HV               =       G1H5066 +      GNO2                                   :  0.100E+01*SUN;
+{ 23018} G2N504n +GNO                =       G1N505m +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 23019} G2N504n +GNO                =       GNN502M                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 23020} G2N504n +GHO2               =       GHN503T                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 23021} G2N504n +GNO3               =       G1N505m +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 23022} G2N504n +MEPERO             =  0.340G1N505m + 0.330GNO500W + 0.330GNK500x                 : ARR( 0.565E-13,  -845., 0.0);
+{ 23023} G2N504n +PERO1              =  0.460G1N505m + 0.270GNO500W + 0.270GNK500x                 : ARR( 0.434E-13,  -900., 0.0);
+{ 23024} G2N504n +PERO2              =  0.400G1N505m + 0.300GNO500W + 0.300GNK500x                 : ARR( 0.162E-13, -1400., 0.0);
+{ 23025} G2N504n +PERO3              =  0.460G1N505m + 0.270GNO500W + 0.270GNK500x                 : ARR( 0.488E-13, -1250., 0.0);
+{ 23026} G2N504n +PERO5              =  0.460G1N505m + 0.270GNO500W + 0.270GNK500x                 : ARR( 0.183E-11,   450., 0.0);
+{ 23027} G2N504n +PERO6              =  0.300G1N505m + 0.350GNO500W + 0.350GNK500x                 : ARR( 0.168E-13, -1300., 0.0);
+{ 23028} G2N504n +PERO9              =  0.650G1N505m + 0.350GNK500x                                : ARR( 0.100E-10,     0., 0.0);
+{ 23029} G1H5066                     =       GHK500Z +      GHO2                                   : ARR( 0.800E+11,  2117., 0.0);
+{ 23030} G1H5066                     =       GDO4005 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{ 23031} GHH500t +GHO                =       GHH500S +      GHO                                    : ARR( 0.379E-10,     0., 0.0);
+{ 23032} GHH500t +GHO                =       GHH502B +      GHO                                    : ARR( 0.466E-10,     0., 0.0);
+{ 23033} GHH500t +GHO                =       GHH501Z +      GHO                                    : ARR( 0.466E-10,     0., 0.0);
+{ 23034} GHH500t+HV               =       G1H501l +      GHO                                    :  0.100E+01*SUN;
+{ 23035} GHH500t+HV               =       G1H505G +      GHO                                    :  0.100E+01*SUN;
+{ 23036} GHH500t+HV               =       G1H505x +      GHO                                    :  0.100E+01*SUN;
+{ 23037} GHH500u +GHO                =       GHH500S +      GHO2                                   : ARR( 0.945E-11,     0., 0.0);
+{ 23038} GHH500u +GHO                =       GHK500q +      GHO                                    : ARR( 0.465E-10,     0., 0.0);
+{ 23039} GHH500u +GHO                =       GHK500k +      GHO                                    : ARR( 0.465E-10,     0., 0.0);
+{ 23040} GHH500u+HV               =       G1H505H +      GHO                                    :  0.100E+01*SUN;
+{ 23041} GHH500u+HV               =       G1H505y +      GHO                                    :  0.100E+01*SUN;
+{ 23042} GHH500v +GHO                =       GHD500W +      GHO                                    : ARR( 0.142E-09,     0., 0.0);
+{ 23043} GHH500v +GHO                =       GHD5019 +      GHO                                    : ARR( 0.274E-10,     0., 0.0);
+{ 23044} GHH500v +GHO                =       G3H500u                                               : ARR( 0.226E-10,     0., 0.0);
+{ 23045} GHH500v +GNO3               =       G3H500u +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 23046} GHH500v+HV               =       G1H501o +      GHO                                    :  0.100E+01*SUN;
+{ 23047} GHH500v+HV               =       G1H505z +      GHO                                    :  0.100E+01*SUN;
+{ 23048} GHH500v+HV               =       GHD4008 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 23049} G3H500u +GHO2               =  0.800GGH501G + 0.200GAH501U + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 23050} G3H500u +GNO                =       GHD4008 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 23051} G3H500u +GNO2               =       GPH501W                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 23052} G3H500u +GNO3               =       GHD4008 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 23053} G3H500u +MEPERO             =  0.685GHD4008 + 0.315GAH501U + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23054} G3H500u +PERO1              =  0.800GHD4008 + 0.200GAH501U + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23055} G3H500u +PERO2              =  0.750GHD4008 + 0.250GAH501U + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23056} G3H500u +PERO3              =  0.800GHD4008 + 0.200GAH501U + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23057} G3H500u +PERO5              =  0.650GHD4008 + 0.350GAH501U + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23058} G3H500u +PERO6              =  0.650GHD4008 + 0.350GAH501U + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23059} G3H500u +PERO9              =       GHD4008 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 23060} GHH500w +GHO                =       GHK500Z +      GHO                                    : ARR( 0.381E-10,     0., 0.0);
+{ 23061} GHH500w +GHO                =       GHH502B +      GHO2                                   : ARR( 0.117E-10,     0., 0.0);
+{ 23062} GHH500w +GHO                =       GHK500h +      GHO                                    : ARR( 0.469E-10,     0., 0.0);
+{ 23063} GHH500w+HV               =       G1H501n +      GHO                                    :  0.100E+01*SUN;
+{ 23064} GHH500w+HV               =       G1H5064 +      GHO                                    :  0.100E+01*SUN;
+{ 23065} GHD500U +GHO                =       GHD500y +      GHO2                                   : ARR( 0.877E-11,     0., 0.0);
+{ 23066} GHD500U +GHO                =       GHD500W +      GHO2                                   : ARR( 0.342E-10,     0., 0.0);
+{ 23067} GHD500U +GHO                =       GDK500T +      GHO                                    : ARR( 0.263E-10,     0., 0.0);
+{ 23068} GHD500U +GHO                =       G3H500v                                               : ARR( 0.217E-10,     0., 0.0);
+{ 23069} GHD500U +GNO3               =       G3H500v +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 23070} GHD500U+HV               =       G1D500x +      GHO                                    :  0.100E+01*SUN;
+{ 23071} GHD500U+HV               =       GDO4005 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 23072} G3H500v +GHO2               =  0.800GGH501H + 0.200GAH501W + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 23073} G3H500v +GNO                =       GDO4005 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 23074} G3H500v +GNO2               =       GPH501X                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 23075} G3H500v +GNO3               =       GDO4005 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 23076} G3H500v +MEPERO             =  0.685GDO4005 + 0.315GAH501W + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23077} G3H500v +PERO1              =  0.800GDO4005 + 0.200GAH501W + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23078} G3H500v +PERO2              =  0.750GDO4005 + 0.250GAH501W + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23079} G3H500v +PERO3              =  0.800GDO4005 + 0.200GAH501W + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23080} G3H500v +PERO5              =  0.650GDO4005 + 0.350GAH501W + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23081} G3H500v +PERO6              =  0.650GDO4005 + 0.350GAH501W + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23082} G3H500v +PERO9              =       GDO4005 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 23083} G1D500x                     =       GDO3001 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  4899., 0.0);
+{ 23084} G1D500x                     =       GDO4005 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 23085} GHD500W +GHO                =       GHD500w +      GHO2                                   : ARR( 0.536E-11,     0., 0.0);
+{ 23086} GHD500W +GHO                =       GDK500U +      GHO                                    : ARR( 0.161E-10,     0., 0.0);
+{ 23087} GHD500W +GHO                =       G3H500w                                               : ARR( 0.691E-10,     0., 0.0);
+{ 23088} GHD500W +GNO3               =       G3H500w +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 23089} GHD500W+HV               =       G3K3002 +      GDD2000 +      GHO                     :  0.100E+01*SUN;
+{ 23090} GHD500W+HV               =       G1D500y +      GHO                                    :  0.100E+01*SUN;
+{ 23091} GHD500W+HV               =       GDK4004 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 23092} G3H500w +GHO2               =  0.800GGH500i + 0.200GAH500n + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 23093} G3H500w +GNO                =       GDK4004 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 23094} G3H500w +GNO2               =       GPH500p                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 23095} G3H500w +GNO3               =       GDK4004 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 23096} G3H500w +MEPERO             =  0.685GDK4004 + 0.315GAH500n + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23097} G3H500w +PERO1              =  0.800GDK4004 + 0.200GAH500n + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23098} G3H500w +PERO2              =  0.750GDK4004 + 0.250GAH500n + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23099} G3H500w +PERO3              =  0.800GDK4004 + 0.200GAH500n + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23100} G3H500w +PERO5              =  0.650GDK4004 + 0.350GAH500n + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23101} G3H500w +PERO6              =  0.650GDK4004 + 0.350GAH500n + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23102} G3H500w +PERO9              =       GDK4004 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 23103} G1D500y                     =       G3K3002 +      GDD2000                                : ARR( 0.200E+15,  4916., 0.0);
+{ 23104} GHD3004 +GHO                =       G3H3006                                               : ARR( 0.135E-09,     0., 0.0);
+{ 23105} GHD3004 +GHO                =       GDD3002 +      GHO                                    : ARR( 0.157E-10,     0., 0.0);
+{ 23106} GHD3004 +GNO3               =       G3H3006 +      GHNO3                                  : ARR( 0.240E-13,     0., 0.0);
+{ 23107} GHD3004+HV               =       GCO     +      GDD2000 +      GHO2    +      GHO      :  0.200E+01*SUN;
+{ 23108} GHD3004+HV               =       G1D3005 +      GHO                                    :  0.100E+01*SUN;
+{ 23109} G3H3006 +GHO2               =  0.800GGH3007 + 0.200GAH3007 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 23110} G3H3006 +GNO                =       GDD2000 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 23111} G3H3006 +GNO2               =       GPH3007                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 23112} G3H3006 +GNO3               =       GDD2000 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 23113} G3H3006 +MEPERO             =  0.685GDD2000 + 0.315GAH3007 + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23114} G3H3006 +PERO1              =  0.800GDD2000 + 0.200GAH3007 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23115} G3H3006 +PERO2              =  0.750GDD2000 + 0.250GAH3007 + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23116} G3H3006 +PERO3              =  0.800GDD2000 + 0.200GAH3007 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23117} G3H3006 +PERO5              =  0.650GDD2000 + 0.350GAH3007 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23118} G3H3006 +PERO6              =  0.650GDD2000 + 0.350GAH3007 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23119} G3H3006 +PERO9              =       GDD2000 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 23120} GHH3005 +GHO                =       GHD3004 +      GHO                                    : ARR( 0.548E-10,     0., 0.0);
+{ 23121} GHH3005 +GHO                =       GHD3001 +      GHO                                    : ARR( 0.270E-10,     0., 0.0);
+{ 23122} GHH3005 +GHO                =       G3H3007                                               : ARR( 0.223E-10,     0., 0.0);
+{ 23123} GHH3005 +GNO3               =       G3H3007 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 23124} GHH3005+HV               =       G1H300B +      GHO                                    :  0.100E+01*SUN;
+{ 23125} GHH3005+HV               =       G1H300C +      GHO                                    :  0.100E+01*SUN;
+{ 23126} GHH3005+HV               =       GHD2000 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 23127} G3H3007 +GHO2               =  0.800GGH3008 + 0.200GAH3008 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 23128} G3H3007 +GNO                =       GHD2000 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 23129} G3H3007 +GNO2               =       GPH3008                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 23130} G3H3007 +GNO3               =       GHD2000 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 23131} G3H3007 +MEPERO             =  0.685GHD2000 + 0.315GAH3008 + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23132} G3H3007 +PERO1              =  0.800GHD2000 + 0.200GAH3008 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23133} G3H3007 +PERO2              =  0.750GHD2000 + 0.250GAH3008 + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23134} G3H3007 +PERO3              =  0.800GHD2000 + 0.200GAH3008 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23135} G3H3007 +PERO5              =  0.650GHD2000 + 0.350GAH3008 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23136} G3H3007 +PERO6              =  0.650GHD2000 + 0.350GAH3008 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23137} G3H3007 +PERO9              =       GHD2000 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 23138} GHH500x +GHO                =       GHK500X +      GHO                                    : ARR( 0.381E-10,     0., 0.0);
+{ 23139} GHH500x +GHO                =       GHK500s +      GHO                                    : ARR( 0.469E-10,     0., 0.0);
+{ 23140} GHH500x +GHO                =       GHH501Z +      GHO2                                   : ARR( 0.117E-10,     0., 0.0);
+{ 23141} GHH500x+HV               =       G1H501r +      GHO                                    :  0.100E+01*SUN;
+{ 23142} GHH500x+HV               =       G1H5067 +      GHO                                    :  0.100E+01*SUN;
+{ 23143} G1H5067                     =       GHD3002 +      GDO2000 +      GHO2                    : ARR( 0.200E+15,  3575., 0.0);
+{ 23144} GHN503U +GHO                =       GNK500p +      GHO                                    : ARR( 0.353E-10,     0., 0.0);
+{ 23145} GHN503U +GHO                =       GHN503J +      GHO2                                   : ARR( 0.109E-10,     0., 0.0);
+{ 23146} GHN503U +GHO                =       G2N502l                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 23147} GHN503U+HV               =       G1N5035 +      GHO                                    :  0.100E+01*SUN;
+{ 23148} GHN503U+HV               =       G1H5068 +      GNO2                                   :  0.100E+01*SUN;
+{ 23149} G1H5068                     =       GKO500K +      GHO                                    : ARR( 0.800E+11,  1771., 0.0);
+{ 23150} G1H5068                     =       GHD400H +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 23151} GHO500S +GHO                =       GKO500K +      GHO                                    : ARR( 0.338E-10,     0., 0.0);
+{ 23152} GHO500S +GHO                =       GHK500s +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 23153} GHO500S +GHO                =       GHK500h +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 23154} GHO500S +GHO                =       GHD501A +      GHO2                                   : ARR( 0.406E-11,     0., 0.0);
+{ 23155} GHO500S +GHO                =       G2O500R                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 23156} GHO500S+HV               =       G1O500W +      GHO                                    :  0.100E+01*SUN;
+{ 23157} GHD500X +GHO                =       GDK500A +      GHO                                    : ARR( 0.337E-10,     0., 0.0);
+{ 23158} GHD500X +GHO                =       G2H502M                                               : ARR( 0.450E-11,     0., 0.0);
+{ 23159} GHD500X +GHO                =       GHD500l +      GHO2                                   : ARR( 0.631E-11,     0., 0.0);
+{ 23160} GHD500X +GHO                =       G3H500x                                               : ARR( 0.209E-10,     0., 0.0);
+{ 23161} GHD500X +GHO                =       G2D500a                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 23162} GHD500X +GNO3               =       G3H500x +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 23163} GHD500X+HV               =       G1D500e +      GHO                                    :  0.100E+01*SUN;
+{ 23164} GHD500X+HV               =       GHD4002 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 23165} G2H502M +GNO                =       G1H5069 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 23166} G2H502M +GNO                =       GHN5062                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 23167} G2H502M +GHO2               =       GHH502C                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 23168} G2H502M +GNO3               =       G1H5069 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 23169} G2H502M +MEPERO             =  0.340G1H5069 + 0.330GHD501A + 0.330GHD501B                 : ARR( 0.565E-13,  -845., 0.0);
+{ 23170} G2H502M +PERO1              =  0.460G1H5069 + 0.270GHD501A + 0.270GHD501B                 : ARR( 0.434E-13,  -900., 0.0);
+{ 23171} G2H502M +PERO2              =  0.400G1H5069 + 0.300GHD501A + 0.300GHD501B                 : ARR( 0.162E-13, -1400., 0.0);
+{ 23172} G2H502M +PERO3              =  0.460G1H5069 + 0.270GHD501A + 0.270GHD501B                 : ARR( 0.488E-13, -1250., 0.0);
+{ 23173} G2H502M +PERO5              =  0.460G1H5069 + 0.270GHD501A + 0.270GHD501B                 : ARR( 0.183E-11,   450., 0.0);
+{ 23174} G2H502M +PERO6              =  0.300G1H5069 + 0.350GHD501A + 0.350GHD501B                 : ARR( 0.168E-13, -1300., 0.0);
+{ 23175} G2H502M +PERO9              =  0.650G1H5069 + 0.350GHD501B                                : ARR( 0.100E-10,     0., 0.0);
+{ 23176} G3H500x +GHO2               =  0.800GGH500a + 0.200GAH500f + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 23177} G3H500x +GNO                =       GHD4002 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 23178} G3H500x +GNO2               =       GPH500f                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 23179} G3H500x +GNO3               =       GHD4002 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 23180} G3H500x +MEPERO             =  0.685GHD4002 + 0.315GAH500f + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23181} G3H500x +PERO1              =  0.800GHD4002 + 0.200GAH500f + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23182} G3H500x +PERO2              =  0.750GHD4002 + 0.250GAH500f + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23183} G3H500x +PERO3              =  0.800GHD4002 + 0.200GAH500f + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23184} G3H500x +PERO5              =  0.650GHD4002 + 0.350GAH500f + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23185} G3H500x +PERO6              =  0.650GHD4002 + 0.350GAH500f + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23186} G3H500x +PERO9              =       GHD4002 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 23187} G2D500a +GNO                =       G1D500e +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 23188} G2D500a +GNO                =       GND500S                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 23189} G2D500a +GHO2               =       GHD500X                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 23190} G2D500a +GNO3               =       G1D500e +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 23191} G2D500a +MEPERO             =  0.480G1D500e + 0.260GDO5003 + 0.260GDK500A                 : ARR( 0.616E-11,   905., 0.0);
+{ 23192} G2D500a +PERO1              =  0.600G1D500e + 0.200GDO5003 + 0.200GDK500A                 : ARR( 0.473E-11,   850., 0.0);
+{ 23193} G2D500a +PERO2              =  0.560G1D500e + 0.220GDO5003 + 0.220GDK500A                 : ARR( 0.177E-11,   350., 0.0);
+{ 23194} G2D500a +PERO3              =  0.600G1D500e + 0.200GDO5003 + 0.200GDK500A                 : ARR( 0.533E-11,   500., 0.0);
+{ 23195} G2D500a +PERO5              =  0.600G1D500e + 0.200GDO5003 + 0.200GDK500A                 : ARR( 0.200E-09,  2200., 0.0);
+{ 23196} G2D500a +PERO6              =  0.460G1D500e + 0.270GDO5003 + 0.270GDK500A                 : ARR( 0.183E-11,   450., 0.0);
+{ 23197} G2D500a +PERO9              =  0.800G1D500e + 0.200GDK500A                                : ARR( 0.100E-10,     0., 0.0);
+{ 23198} G1H5069                     =       GD02000 +      GDD3001 +      GHO                     : ARR( 0.200E+15,  4341., 0.0);
+{ 23199} G1H5069                     =       GHD3002 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  3708., 0.0);
+{ 23200} GGH4005 +GHO                =       GGK4000 +      GHO                                    : ARR( 0.344E-10,     0., 0.0);
+{ 23201} GGH4005 +GHO                =       G2G4004                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 23202} GGH4005 +GHO                =       G3H4001                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 23203} GGH4005+HV               =       G1G4006 +      GHO                                    :  0.100E+01*SUN;
+{ 23204} GGH4005+HV               =       G2H3003 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 23205} GAH4005 +GHO                =       GAK4000 +      GHO                                    : ARR( 0.347E-10,     0., 0.0);
+{ 23206} GAH4005 +GHO                =       G2A4005                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 23207} GAH4005+HV               =       G1A4006 +      GHO                                    :  0.100E+01*SUN;
+{ 23208} GPH4005                     =       G3H4001 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 23209} GPH4005 +GHO                =       GPK4000 +      GHO                                    : ARR( 0.344E-10,     0., 0.0);
+{ 23210} GPH4005 +GHO                =       G2P4005                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 23211} GPH4005+HV               =       G1P4006 +      GHO                                    :  0.100E+01*SUN;
+{ 23212} GPH4005+HV               =       G3H4001 +      GNO2                                   :  0.100E+01*SUN;
+{ 23213} GHH500y +GHO                =       GHN502r +      GHO                                    : ARR( 0.112E-09,     0., 0.0);
+{ 23214} GHH500y +GHO                =       GHN503L +      GHO                                    : ARR( 0.265E-10,     0., 0.0);
+{ 23215} GHH500y+HV               =       G1H501u +      GHO                                    :  0.100E+01*SUN;
+{ 23216} GHH500y+HV               =       G1H505M +      GHO                                    :  0.100E+01*SUN;
+{ 23217} GHH500y+HV               =       G3H400L +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{ 23218} GHH500y+HV               =       G1H506A +      GNO2                                   :  0.100E+01*SUN;
+{ 23219} G3H400L +GHO2               =  0.800GGH400U + 0.200GAH400W + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 23220} G3H400L +GNO                =       GHD3002 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 23221} G3H400L +GNO2               =       GPH400X                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 23222} G3H400L +GNO3               =       GHD3002 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 23223} G3H400L +MEPERO             =  0.685GHD3002 + 0.315GAH400W + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23224} G3H400L +PERO1              =  0.800GHD3002 + 0.200GAH400W + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23225} G3H400L +PERO2              =  0.750GHD3002 + 0.250GAH400W + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23226} G3H400L +PERO3              =  0.800GHD3002 + 0.200GAH400W + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23227} G3H400L +PERO5              =  0.650GHD3002 + 0.350GAH400W + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23228} G3H400L +PERO6              =  0.650GHD3002 + 0.350GAH400W + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23229} G3H400L +PERO9              =       GHD3002 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 23230} G1H506A                     =       G3H400L +      GCH2O                                  : ARR( 0.200E+15,  3603., 0.0);
+{ 23231} GHN503W +GHO                =       GHN502r +      GHO2                                   : ARR( 0.267E-10,     0., 0.0);
+{ 23232} GHN503W +GHO                =       GNK500w +      GHO                                    : ARR( 0.253E-10,     0., 0.0);
+{ 23233} GHN503W +GHO                =       G2N504o                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 23234} GHN503W+HV               =       G1N505N +      GHO                                    :  0.100E+01*SUN;
+{ 23235} GHN503W+HV               =       G3H400A +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{ 23236} GHN503W+HV               =       G1H506B +      GNO2                                   :  0.100E+01*SUN;
+{ 23237} G2N504o +GNO                =       G1N505N +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 23238} G2N504o +GNO                =       GNN5027                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 23239} G2N504o +GHO2               =       GHN503W                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 23240} G2N504o +GNO3               =       G1N505N +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 23241} G2N504o +MEPERO             =  0.340G1N505N + 0.330GNK500x + 0.330GNK500w                 : ARR( 0.565E-13,  -845., 0.0);
+{ 23242} G2N504o +PERO1              =  0.460G1N505N + 0.270GNK500x + 0.270GNK500w                 : ARR( 0.434E-13,  -900., 0.0);
+{ 23243} G2N504o +PERO2              =  0.400G1N505N + 0.300GNK500x + 0.300GNK500w                 : ARR( 0.162E-13, -1400., 0.0);
+{ 23244} G2N504o +PERO3              =  0.460G1N505N + 0.270GNK500x + 0.270GNK500w                 : ARR( 0.488E-13, -1250., 0.0);
+{ 23245} G2N504o +PERO5              =  0.460G1N505N + 0.270GNK500x + 0.270GNK500w                 : ARR( 0.183E-11,   450., 0.0);
+{ 23246} G2N504o +PERO6              =  0.300G1N505N + 0.350GNK500x + 0.350GNK500w                 : ARR( 0.168E-13, -1300., 0.0);
+{ 23247} G2N504o +PERO9              =  0.650G1N505N + 0.350GNK500w                                : ARR( 0.100E-10,     0., 0.0);
+{ 23248} G1H506B                     =       G3H400A +      GCH2O                                  : ARR( 0.200E+15,  3603., 0.0);
+{ 23249} GHN503X +GHO                =       GNK500q +      GHO                                    : ARR( 0.110E-09,     0., 0.0);
+{ 23250} GHN503X +GHO                =       GHN503L +      GHO2                                   : ARR( 0.650E-11,     0., 0.0);
+{ 23251} GHN503X+HV               =       G1N5036 +      GHO                                    :  0.100E+01*SUN;
+{ 23252} GHN503X+HV               =       G3H400M +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{ 23253} GHN503X+HV               =       G1H506C +      GNO2                                   :  0.100E+01*SUN;
+{ 23254} G3H400M +GHO2               =  0.800GGH400E + 0.200GAH400G + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 23255} G3H400M +GNO                =       GHD3002 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 23256} G3H400M +GNO2               =       GPH400H                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 23257} G3H400M +GNO3               =       GHD3002 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 23258} G3H400M +MEPERO             =  0.685GHD3002 + 0.315GAH400G + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23259} G3H400M +PERO1              =  0.800GHD3002 + 0.200GAH400G + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23260} G3H400M +PERO2              =  0.750GHD3002 + 0.250GAH400G + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23261} G3H400M +PERO3              =  0.800GHD3002 + 0.200GAH400G + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23262} G3H400M +PERO5              =  0.650GHD3002 + 0.350GAH400G + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23263} G3H400M +PERO6              =  0.650GHD3002 + 0.350GAH400G + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23264} G3H400M +PERO9              =       GHD3002 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 23265} G1H506C                     =       G3H400M +      GCH2O                                  : ARR( 0.200E+15,  3603., 0.0);
+{ 23266} GNK500x +GHO                =       GNK500q +      GHO2                                   : ARR( 0.269E-10,     0., 0.0);
+{ 23267} GNK500x +GHO                =       GNK500w +      GHO2                                   : ARR( 0.637E-11,     0., 0.0);
+{ 23268} GNK500x+HV               =       G3K4008 +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{ 23269} GNK500x+HV               =       G1K5011 +      GNO2                                   :  0.100E+01*SUN;
+{ 23270} G1K5011                     =       G3K4008 +      GCH2O                                  : ARR( 0.200E+15,  3603., 0.0);
+{ 23271} GGK4002 +GHO                =       G2G400H                                               : ARR( 0.531E-12,     0., 0.0);
+{ 23272} GGK4002 +GHO                =       G2G400I                                               : ARR( 0.701E-12,     0., 0.0);
+{ 23273} GGK4002 +GHO                =       G3K400D                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 23274} GGK4002+HV               =       GA03000 +      GCO2                                   :  0.100E+01*SUN;
+{ 23275} G2G400H +GNO                =       G1G400N +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 23276} G2G400H +GNO                =       GGN400A                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 23277} G2G400H +GHO2               =       GGH400W                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 23278} G2G400H +GNO3               =       G1G400N +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 23279} G2G400H +MEPERO             =  0.480G1G400N + 0.260GGK4004 + 0.260GGD4005                 : ARR( 0.146E-12,  -445., 0.0);
+{ 23280} G2G400H +PERO1              =  0.600G1G400N + 0.200GGK4004 + 0.200GGD4005                 : ARR( 0.112E-12,  -500., 0.0);
+{ 23281} G2G400H +PERO2              =  0.560G1G400N + 0.220GGK4004 + 0.220GGD4005                 : ARR( 0.418E-13, -1000., 0.0);
+{ 23282} G2G400H +PERO3              =  0.600G1G400N + 0.200GGK4004 + 0.200GGD4005                 : ARR( 0.126E-12,  -850., 0.0);
+{ 23283} G2G400H +PERO5              =  0.600G1G400N + 0.200GGK4004 + 0.200GGD4005                 : ARR( 0.473E-11,   850., 0.0);
+{ 23284} G2G400H +PERO6              =  0.460G1G400N + 0.270GGK4004 + 0.270GGD4005                 : ARR( 0.434E-13,  -900., 0.0);
+{ 23285} G2G400H +PERO9              =  0.800G1G400N + 0.200GGD4005                                : ARR( 0.100E-10,     0., 0.0);
+{ 23286} G2G400I +GNO                =       G1G400S +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 23287} G2G400I +GNO                =       GGN400T                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 23288} G2G400I +GHO2               =       GGH400X                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 23289} G2G400I +GNO3               =       G1G400S +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 23290} G2G400I +MEPERO             =  0.340G1G400S + 0.330GGK4001 + 0.330GGK4006                 : ARR( 0.565E-13,  -845., 0.0);
+{ 23291} G2G400I +PERO1              =  0.460G1G400S + 0.270GGK4001 + 0.270GGK4006                 : ARR( 0.434E-13,  -900., 0.0);
+{ 23292} G2G400I +PERO2              =  0.400G1G400S + 0.300GGK4001 + 0.300GGK4006                 : ARR( 0.162E-13, -1400., 0.0);
+{ 23293} G2G400I +PERO3              =  0.460G1G400S + 0.270GGK4001 + 0.270GGK4006                 : ARR( 0.488E-13, -1250., 0.0);
+{ 23294} G2G400I +PERO5              =  0.460G1G400S + 0.270GGK4001 + 0.270GGK4006                 : ARR( 0.183E-11,   450., 0.0);
+{ 23295} G2G400I +PERO6              =  0.300G1G400S + 0.350GGK4001 + 0.350GGK4006                 : ARR( 0.168E-13, -1300., 0.0);
+{ 23296} G2G400I +PERO9              =  0.650G1G400S + 0.350GGK4006                                : ARR( 0.100E-10,     0., 0.0);
+{ 23297} G3K400D +GHO2               =  0.800GGK4002 + 0.200GAK4002 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 23298} G3K400D +GNO                =       G3K3000 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 23299} G3K400D +GNO2               =       GPK4002                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 23300} G3K400D +GNO3               =       G3K3000 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 23301} G3K400D +MEPERO             =  0.685G3K3000 + 0.315GAK4002 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 23302} G3K400D +PERO1              =  0.800G3K3000 + 0.200GAK4002 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 23303} G3K400D +PERO2              =  0.750G3K3000 + 0.250GAK4002 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 23304} G3K400D +PERO3              =  0.800G3K3000 + 0.200GAK4002 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 23305} G3K400D +PERO5              =  0.650G3K3000 + 0.350GAK4002 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 23306} G3K400D +PERO6              =  0.650G3K3000 + 0.350GAK4002 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 23307} G3K400D +PERO9              =       G3K3000 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 23308} G1G400S                     =       GD02000 +      GCO     +      GHO2    +      GCO      : ARR( 0.200E+15,  3071., 0.0);
+{ 23309} GAH4006 +GHO                =       G2A400R                                               : ARR( 0.149E-11,     0., 0.0);
+{ 23310} GAH4006 +GHO                =       GAD4000 +      GHO                                    : ARR( 0.170E-10,     0., 0.0);
+{ 23311} GAH4006 +GHO                =       G2A4004                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 23312} GAH4006+HV               =       G1A4001 +      GHO                                    :  0.100E+01*SUN;
+{ 23313} G2A400R +GNO                =       G1A400Z +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 23314} G2A400R +GNO                =       GAH400L                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 23315} G2A400R +GHO2               =       GAH400X                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 23316} G2A400R +GNO3               =       G1A400Z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 23317} G2A400R +MEPERO             =  0.340G1A400Z + 0.330GAH4009 + 0.330GAH400A                 : ARR( 0.565E-13,  -845., 0.0);
+{ 23318} G2A400R +PERO1              =  0.460G1A400Z + 0.270GAH4009 + 0.270GAH400A                 : ARR( 0.434E-13,  -900., 0.0);
+{ 23319} G2A400R +PERO2              =  0.400G1A400Z + 0.300GAH4009 + 0.300GAH400A                 : ARR( 0.162E-13, -1400., 0.0);
+{ 23320} G2A400R +PERO3              =  0.460G1A400Z + 0.270GAH4009 + 0.270GAH400A                 : ARR( 0.488E-13, -1250., 0.0);
+{ 23321} G2A400R +PERO5              =  0.460G1A400Z + 0.270GAH4009 + 0.270GAH400A                 : ARR( 0.183E-11,   450., 0.0);
+{ 23322} G2A400R +PERO6              =  0.300G1A400Z + 0.350GAH4009 + 0.350GAH400A                 : ARR( 0.168E-13, -1300., 0.0);
+{ 23323} G2A400R +PERO9              =  0.650G1A400Z + 0.350GAH400A                                : ARR( 0.100E-10,     0., 0.0);
+{ 23324} G1A400Z                     =       G2A2000 +      GHD2000                                : ARR( 0.200E+15,  7510., 0.0);
+{ 23325} G1A400Z                     =       GAD3000 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  6757., 0.0);
+{ 23326} GAK4002 +GHO                =       G2A400S                                               : ARR( 0.531E-12,     0., 0.0);
+{ 23327} GAK4002 +GHO                =       G2A400T                                               : ARR( 0.701E-12,     0., 0.0);
+{ 23328} GAK4002 +GHO                =       G3K3000 +      GCO2                                   : ARR( 0.520E-12,     0., 0.0);
+{ 23329} GAK4002+HV               =       GD03000 +      GCO2                                   :  0.100E+01*SUN;
+{ 23330} G2A400S +GNO                =       G1A400R +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 23331} G2A400S +GNO                =       GAN400A                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 23332} G2A400S +GHO2               =       GAH400Y                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 23333} G2A400S +GNO3               =       G1A400R +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 23334} G2A400S +MEPERO             =  0.480G1A400R + 0.260GAK4004 + 0.260GAD4005                 : ARR( 0.146E-12,  -445., 0.0);
+{ 23335} G2A400S +PERO1              =  0.600G1A400R + 0.200GAK4004 + 0.200GAD4005                 : ARR( 0.112E-12,  -500., 0.0);
+{ 23336} G2A400S +PERO2              =  0.560G1A400R + 0.220GAK4004 + 0.220GAD4005                 : ARR( 0.418E-13, -1000., 0.0);
+{ 23337} G2A400S +PERO3              =  0.600G1A400R + 0.200GAK4004 + 0.200GAD4005                 : ARR( 0.126E-12,  -850., 0.0);
+{ 23338} G2A400S +PERO5              =  0.600G1A400R + 0.200GAK4004 + 0.200GAD4005                 : ARR( 0.473E-11,   850., 0.0);
+{ 23339} G2A400S +PERO6              =  0.460G1A400R + 0.270GAK4004 + 0.270GAD4005                 : ARR( 0.434E-13,  -900., 0.0);
+{ 23340} G2A400S +PERO9              =  0.800G1A400R + 0.200GAD4005                                : ARR( 0.100E-10,     0., 0.0);
+{ 23341} G2A400T +GNO                =       G1A400a +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 23342} G2A400T +GNO                =       GAN400H                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 23343} G2A400T +GHO2               =       GAH400Z                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 23344} G2A400T +GNO3               =       G1A400a +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 23345} G2A400T +MEPERO             =  0.340G1A400a + 0.330GAK4001 + 0.330GAK4006                 : ARR( 0.565E-13,  -845., 0.0);
+{ 23346} G2A400T +PERO1              =  0.460G1A400a + 0.270GAK4001 + 0.270GAK4006                 : ARR( 0.434E-13,  -900., 0.0);
+{ 23347} G2A400T +PERO2              =  0.400G1A400a + 0.300GAK4001 + 0.300GAK4006                 : ARR( 0.162E-13, -1400., 0.0);
+{ 23348} G2A400T +PERO3              =  0.460G1A400a + 0.270GAK4001 + 0.270GAK4006                 : ARR( 0.488E-13, -1250., 0.0);
+{ 23349} G2A400T +PERO5              =  0.460G1A400a + 0.270GAK4001 + 0.270GAK4006                 : ARR( 0.183E-11,   450., 0.0);
+{ 23350} G2A400T +PERO6              =  0.300G1A400a + 0.350GAK4001 + 0.350GAK4006                 : ARR( 0.168E-13, -1300., 0.0);
+{ 23351} G2A400T +PERO9              =  0.650G1A400a + 0.350GAK4006                                : ARR( 0.100E-10,     0., 0.0);
+{ 23352} G1A400a                     =       GD02000 +      GCO     +      GHO     +      GCO      : ARR( 0.200E+15,  3071., 0.0);
+{ 23353} GPH4006                     =       G3H4005 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 23354} GPH4006 +GHO                =       GPD4000 +      GHO                                    : ARR( 0.167E-10,     0., 0.0);
+{ 23355} GPH4006 +GHO                =       G2P400T                                               : ARR( 0.147E-11,     0., 0.0);
+{ 23356} GPH4006 +GHO                =       G2P4004                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 23357} GPH4006+HV               =       G1P4001 +      GHO                                    :  0.100E+01*SUN;
+{ 23358} GPH4006+HV               =       G3H4005 +      GNO2                                   :  0.100E+01*SUN;
+{ 23359} G2P400T +GNO                =       G1P400a +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 23360} G2P400T +GNO                =       GPH400C                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 23361} G2P400T +GHO2               =       GPH400Y                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 23362} G2P400T +GNO3               =       G1P400a +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 23363} G2P400T +MEPERO             =  0.340G1P400a + 0.330GPH4009 + 0.330GPH400A                 : ARR( 0.565E-13,  -845., 0.0);
+{ 23364} G2P400T +PERO1              =  0.460G1P400a + 0.270GPH4009 + 0.270GPH400A                 : ARR( 0.434E-13,  -900., 0.0);
+{ 23365} G2P400T +PERO2              =  0.400G1P400a + 0.300GPH4009 + 0.300GPH400A                 : ARR( 0.162E-13, -1400., 0.0);
+{ 23366} G2P400T +PERO3              =  0.460G1P400a + 0.270GPH4009 + 0.270GPH400A                 : ARR( 0.488E-13, -1250., 0.0);
+{ 23367} G2P400T +PERO5              =  0.460G1P400a + 0.270GPH4009 + 0.270GPH400A                 : ARR( 0.183E-11,   450., 0.0);
+{ 23368} G2P400T +PERO6              =  0.300G1P400a + 0.350GPH4009 + 0.350GPH400A                 : ARR( 0.168E-13, -1300., 0.0);
+{ 23369} G2P400T +PERO9              =  0.650G1P400a + 0.350GPH400A                                : ARR( 0.100E-10,     0., 0.0);
+{ 23370} G1P400a                     =       GCH2O   +      GPD3000 +      GHO                     : ARR( 0.200E+15,  6757., 0.0);
+{ 23371} G1P400a                     =       GHD2000 +      G2P2000                                : ARR( 0.200E+15,  7510., 0.0);
+{ 23372} GPK4002                     =       G3K400D +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 23373} GPK4002 +GHO                =       G2P400U                                               : ARR( 0.531E-12,     0., 0.0);
+{ 23374} GPK4002 +GHO                =       G2P400W                                               : ARR( 0.701E-12,     0., 0.0);
+{ 23375} GPK4002+HV               =       G3K3000 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 23376} G2P400U +GNO                =       G1P400T +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 23377} G2P400U +GNO                =       GPN400A                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 23378} G2P400U +GHO2               =       GPH400Z                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 23379} G2P400U +GNO3               =       G1P400T +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 23380} G2P400U +MEPERO             =  0.480G1P400T + 0.260GPK4004 + 0.260GPD4005                 : ARR( 0.146E-12,  -445., 0.0);
+{ 23381} G2P400U +PERO1              =  0.600G1P400T + 0.200GPK4004 + 0.200GPD4005                 : ARR( 0.112E-12,  -500., 0.0);
+{ 23382} G2P400U +PERO2              =  0.560G1P400T + 0.220GPK4004 + 0.220GPD4005                 : ARR( 0.418E-13, -1000., 0.0);
+{ 23383} G2P400U +PERO3              =  0.600G1P400T + 0.200GPK4004 + 0.200GPD4005                 : ARR( 0.126E-12,  -850., 0.0);
+{ 23384} G2P400U +PERO5              =  0.600G1P400T + 0.200GPK4004 + 0.200GPD4005                 : ARR( 0.473E-11,   850., 0.0);
+{ 23385} G2P400U +PERO6              =  0.460G1P400T + 0.270GPK4004 + 0.270GPD4005                 : ARR( 0.434E-13,  -900., 0.0);
+{ 23386} G2P400U +PERO9              =  0.800G1P400T + 0.200GPD4005                                : ARR( 0.100E-10,     0., 0.0);
+{ 23387} G2P400W +GNO                =       G1P400b +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 23388} G2P400W +GNO                =       GPN400I                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 23389} G2P400W +GHO2               =       GPH400a                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 23390} G2P400W +GNO3               =       G1P400b +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 23391} G2P400W +MEPERO             =  0.340G1P400b + 0.330GPK4001 + 0.330GPK4006                 : ARR( 0.565E-13,  -845., 0.0);
+{ 23392} G2P400W +PERO1              =  0.460G1P400b + 0.270GPK4001 + 0.270GPK4006                 : ARR( 0.434E-13,  -900., 0.0);
+{ 23393} G2P400W +PERO2              =  0.400G1P400b + 0.300GPK4001 + 0.300GPK4006                 : ARR( 0.162E-13, -1400., 0.0);
+{ 23394} G2P400W +PERO3              =  0.460G1P400b + 0.270GPK4001 + 0.270GPK4006                 : ARR( 0.488E-13, -1250., 0.0);
+{ 23395} G2P400W +PERO5              =  0.460G1P400b + 0.270GPK4001 + 0.270GPK4006                 : ARR( 0.183E-11,   450., 0.0);
+{ 23396} G2P400W +PERO6              =  0.300G1P400b + 0.350GPK4001 + 0.350GPK4006                 : ARR( 0.168E-13, -1300., 0.0);
+{ 23397} G2P400W +PERO9              =  0.650G1P400b + 0.350GPK4006                                : ARR( 0.100E-10,     0., 0.0);
+{ 23398} G1P400b                     =       GD02000 +      GCO     +      GNO2    +      GCO      : ARR( 0.200E+15,  3071., 0.0);
+{ 23399} GHN503Y +GHO                =       GNN501t +      GHO                                    : ARR( 0.256E-10,     0., 0.0);
+{ 23400} GHN503Y +GHO                =       G3H500y                                               : ARR( 0.212E-10,     0., 0.0);
+{ 23401} GHN503Y +GHO                =       G2N504p                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 23402} GHN503Y +GNO3               =       G3H500y +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 23403} GHN503Y+HV               =       G1H506D +      GNO2                                   :  0.100E+01*SUN;
+{ 23404} GHN503Y+HV               =       G1H506E +      GNO2                                   :  0.100E+01*SUN;
+{ 23405} GHN503Y+HV               =       G1N504r +      GHO                                    :  0.100E+01*SUN;
+{ 23406} GHN503Y+HV               =       GNN4001 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 23407} G3H500y +GHO2               =  0.800GGH501D + 0.200GAH501B + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 23408} G3H500y +GNO                =       GNN4001 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 23409} G3H500y +GNO2               =       GPH5017                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 23410} G3H500y +GNO3               =       GNN4001 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 23411} G3H500y +MEPERO             =  0.685GNN4001 + 0.315GAH501B + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23412} G3H500y +PERO1              =  0.800GNN4001 + 0.200GAH501B + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23413} G3H500y +PERO2              =  0.750GNN4001 + 0.250GAH501B + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23414} G3H500y +PERO3              =  0.800GNN4001 + 0.200GAH501B + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23415} G3H500y +PERO5              =  0.650GNN4001 + 0.350GAH501B + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23416} G3H500y +PERO6              =  0.650GNN4001 + 0.350GAH501B + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23417} G3H500y +PERO9              =       GNN4001 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 23418} G2N504p +GNO                =       G1N504r +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 23419} G2N504p +GNO                =       GNN501l                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 23420} G2N504p +GHO2               =       GHN503Y                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 23421} G2N504p +GNO3               =       G1N504r +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 23422} G2N504p +MEPERO             =  0.340G1N504r + 0.330GNN502N + 0.330GNN501t                 : ARR( 0.565E-13,  -845., 0.0);
+{ 23423} G2N504p +PERO1              =  0.460G1N504r + 0.270GNN502N + 0.270GNN501t                 : ARR( 0.434E-13,  -900., 0.0);
+{ 23424} G2N504p +PERO2              =  0.400G1N504r + 0.300GNN502N + 0.300GNN501t                 : ARR( 0.162E-13, -1400., 0.0);
+{ 23425} G2N504p +PERO3              =  0.460G1N504r + 0.270GNN502N + 0.270GNN501t                 : ARR( 0.488E-13, -1250., 0.0);
+{ 23426} G2N504p +PERO5              =  0.460G1N504r + 0.270GNN502N + 0.270GNN501t                 : ARR( 0.183E-11,   450., 0.0);
+{ 23427} G2N504p +PERO6              =  0.300G1N504r + 0.350GNN502N + 0.350GNN501t                 : ARR( 0.168E-13, -1300., 0.0);
+{ 23428} G2N504p +PERO9              =  0.650G1N504r + 0.350GNN501t                                : ARR( 0.100E-10,     0., 0.0);
+{ 23429} G1H506D                     =       GND500N +      GHO                                    : ARR( 0.800E+11,  1899., 0.0);
+{ 23430} G1H506E                     =       G3H500U                                               : ARR( 0.800E+11,  4559., 0.0);
+{ 23431} G1H506E                     =       GND2000 +      G2H300A                                : ARR( 0.200E+15,  7116., 0.0);
+{ 23432} GNN502N +GHO                =       GNN501t +      GHO2                                   : ARR( 0.653E-11,     0., 0.0);
+{ 23433} GNN502N +GHO                =       G3N5015                                               : ARR( 0.216E-10,     0., 0.0);
+{ 23434} GNN502N +GNO3               =       G3N5015 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 23435} GNN502N+HV               =       G1N505o +      GNO2                                   :  0.100E+01*SUN;
+{ 23436} GNN502N+HV               =       G1N505p +      GNO2                                   :  0.100E+01*SUN;
+{ 23437} GNN502N+HV               =       GNN4001 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 23438} G3N5015 +GHO2               =  0.800GGN501I + 0.200GAN5019 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 23439} G3N5015 +GNO                =       GNN4001 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 23440} G3N5015 +GNO2               =       GPN501B                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 23441} G3N5015 +GNO3               =       GNN4001 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 23442} G3N5015 +MEPERO             =  0.685GNN4001 + 0.315GAN5019 + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23443} G3N5015 +PERO1              =  0.800GNN4001 + 0.200GAN5019 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23444} G3N5015 +PERO2              =  0.750GNN4001 + 0.250GAN5019 + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23445} G3N5015 +PERO3              =  0.800GNN4001 + 0.200GAN5019 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23446} G3N5015 +PERO5              =  0.650GNN4001 + 0.350GAN5019 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23447} G3N5015 +PERO6              =  0.650GNN4001 + 0.350GAN5019 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23448} G3N5015 +PERO9              =       GNN4001 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 23449} G1N505o                     =       GND500N +      GHO2                                   : ARR( 0.800E+11,  2246., 0.0);
+{ 23450} G1N505p                     =       G3N500F                                               : ARR( 0.800E+11,  4559., 0.0);
+{ 23451} G1N505p                     =       GND2000 +      G2D3003                                : ARR( 0.200E+15,  7116., 0.0);
+{ 23452} GHN503Z +GHO                =       GHN5063 +      GHO2                                   : ARR( 0.250E-11,     0., 0.0);
+{ 23453} GHN503Z +GHO                =       GNN502P +      GHO                                    : ARR( 0.513E-11,     0., 0.0);
+{ 23454} GHN503Z +GHO                =       G2N502n                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 23455} GHN503Z+HV               =       G3K2001 +      GNN3005 +      GHO                     :  0.100E+01*SUN;
+{ 23456} GHN503Z+HV               =       G1N503A +      GHO                                    :  0.100E+01*SUN;
+{ 23457} GHN503Z+HV               =       G1H506F +      GNO2                                   :  0.100E+01*SUN;
+{ 23458} GHN503Z+HV               =       G1H506G +      GNO2                                   :  0.100E+01*SUN;
+{ 23459} G1H506F                     =       GDK3001 +      GND2000 +      GHO                     : ARR( 0.200E+15,  4974., 0.0);
+{ 23460} G1H506G +OXYGEN             =       GHN505K +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 23461} G1H506G                     =       GHD400G +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7175., 0.0);
+{ 23462} GNN502O +GHO                =       GNN5039 +      GHO2                                   : ARR( 0.269E-11,     0., 0.0);
+{ 23463} GNN502O +GHO                =       GNN502P +      GHO2                                   : ARR( 0.138E-11,     0., 0.0);
+{ 23464} GNN502O+HV               =       G3K2001 +      GNN3005 +      GHO2                    :  0.100E+01*SUN;
+{ 23465} GNN502O+HV               =       G1N504X +      GNO2                                   :  0.100E+01*SUN;
+{ 23466} GNN502O+HV               =       G1N505q +      GNO2                                   :  0.100E+01*SUN;
+{ 23467} G1N505q +OXYGEN             =       GND501E +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 23468} G1N505q                     =       GDK4006 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7175., 0.0);
+{ 23469} GNN502P +GHO                =       GNN503A +      GHO2                                   : ARR( 0.247E-11,     0., 0.0);
+{ 23470} GNN502P +GHO                =       G1N505A                                               : ARR( 0.212E-17,    85., 2.0);
+{ 23471} GNN502P+HV               =       G3K2001 +      G3N3003                                :  0.100E+01*SUN;
+{ 23472} GNN502P+HV               =       G1N504Y +      GNO2                                   :  0.100E+01*SUN;
+{ 23473} GNN502P+HV               =       G1N505r +      GNO2                                   :  0.100E+01*SUN;
+{ 23474} G1N505r +OXYGEN             =       GND501O +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 23475} G1N505r                     =       GDK4009 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  6903., 0.0);
+{ 23476} GGN500H +GHO                =       GGN501K +      GHO2                                   : ARR( 0.416E-11,     0., 0.0);
+{ 23477} GGN500H +GHO                =       GGN5016 +      GHO2                                   : ARR( 0.107E-10,     0., 0.0);
+{ 23478} GGN500H +GHO                =       G3N500D                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 23479} GGN500H+HV               =       G1G500C +      GNO2                                   :  0.100E+01*SUN;
+{ 23480} GGN500H+HV               =       GDO4002 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 23481} GAN500I +GHO                =       GAN501P +      GHO2                                   : ARR( 0.434E-11,     0., 0.0);
+{ 23482} GAN500I +GHO                =       GAN501H +      GHO2                                   : ARR( 0.111E-10,     0., 0.0);
+{ 23483} GAN500I+HV               =       G1A500D +      GNO2                                   :  0.100E+01*SUN;
+{ 23484} GPN500I                     =       G3N500D +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 23485} GPN500I +GHO                =       GPN501S +      GHO2                                   : ARR( 0.420E-11,     0., 0.0);
+{ 23486} GPN500I +GHO                =       GPN501L +      GHO2                                   : ARR( 0.108E-10,     0., 0.0);
+{ 23487} GPN500I+HV               =       G1P500D +      GNO2                                   :  0.100E+01*SUN;
+{ 23488} GPN500I+HV               =       G3N500D +      GNO2                                   :  0.100E+01*SUN;
+{ 23489} GHH500z +GHO                =       GHN503H +      GHO                                    : ARR( 0.145E-09,     0., 0.0);
+{ 23490} GHH500z +GHO                =       G3H500z                                               : ARR( 0.230E-10,     0., 0.0);
+{ 23491} GHH500z +GNO3               =       G3H500z +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 23492} GHH500z+HV               =       G1H506H +      GNO2                                   :  0.100E+01*SUN;
+{ 23493} GHH500z+HV               =       G1H506I +      GHO                                    :  0.100E+01*SUN;
+{ 23494} GHH500z+HV               =       G1H501x +      GHO                                    :  0.100E+01*SUN;
+{ 23495} GHH500z+HV               =       G2H400k +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 23496} GHH500z+HV               =       GND3003 +      GD02000 + 2.000GHO                     :  0.100E+01*SUN;
+{ 23497} G3H500z +GHO2               =  0.800GGH501I + 0.200GAH501E + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 23498} G3H500z +GNO                =       G2H400k +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 23499} G3H500z +GNO2               =       GPH5019                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 23500} G3H500z +GNO3               =       G2H400k +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 23501} G3H500z +MEPERO             =  0.685G2H400k + 0.315GAH501E + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 23502} G3H500z +PERO1              =  0.800G2H400k + 0.200GAH501E + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 23503} G3H500z +PERO2              =  0.750G2H400k + 0.250GAH501E + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 23504} G3H500z +PERO3              =  0.800G2H400k + 0.200GAH501E + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 23505} G3H500z +PERO5              =  0.650G2H400k + 0.350GAH501E + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 23506} G3H500z +PERO6              =  0.650G2H400k + 0.350GAH501E + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 23507} G3H500z +PERO9              =       G2H400k +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 23508} G1H506H                     =       G2H502N                                               : ARR( 0.160E+12,  3221., 0.0);
+{ 23509} G1H506H                     =       GHD400C +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{ 23510} G1H506I                     =       GND2000 +      GDD3000 +      GHO                     : ARR( 0.200E+15,  4826., 0.0);
+{ 23511} G2H400k +GNO                =       G1H400s +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 23512} G2H400k +GNO                =       GHH400h                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 23513} G2H400k +GHO2               =       GHH400i                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 23514} G2H400k +GNO3               =       G1H400s +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 23515} G2H400k +MEPERO             =  0.480G1H400s + 0.260GHH400S + 0.260GHH400j                 : ARR( 0.164E-12,  -795., 0.0);
+{ 23516} G2H400k +PERO1              =  0.600G1H400s + 0.200GHH400S + 0.200GHH400j                 : ARR( 0.126E-12,  -850., 0.0);
+{ 23517} G2H400k +PERO2              =  0.560G1H400s + 0.220GHH400S + 0.220GHH400j                 : ARR( 0.471E-13, -1350., 0.0);
+{ 23518} G2H400k +PERO3              =  0.600G1H400s + 0.200GHH400S + 0.200GHH400j                 : ARR( 0.142E-12, -1200., 0.0);
+{ 23519} G2H400k +PERO5              =  0.600G1H400s + 0.200GHH400S + 0.200GHH400j                 : ARR( 0.533E-11,   500., 0.0);
+{ 23520} G2H400k +PERO6              =  0.460G1H400s + 0.270GHH400S + 0.270GHH400j                 : ARR( 0.488E-13, -1250., 0.0);
+{ 23521} G2H400k +PERO9              =  0.800G1H400s + 0.200GHH400j                                : ARR( 0.100E-10,     0., 0.0);
+{ 23522} G2H502N +GNO                =       G1H506J +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 23523} G2H502N +GNO                =       GHH501y                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 23524} G2H502N +GHO2               =       GHH502D                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 23525} G2H502N +GNO3               =       G1H506J +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 23526} G2H502N +MEPERO             =  0.340G1H506J + 0.330GHH502E + 0.330GHH501z                 : ARR( 0.565E-13,  -845., 0.0);
+{ 23527} G2H502N +PERO1              =  0.460G1H506J + 0.270GHH502E + 0.270GHH501z                 : ARR( 0.434E-13,  -900., 0.0);
+{ 23528} G2H502N +PERO2              =  0.400G1H506J + 0.300GHH502E + 0.300GHH501z                 : ARR( 0.162E-13, -1400., 0.0);
+{ 23529} G2H502N +PERO3              =  0.460G1H506J + 0.270GHH502E + 0.270GHH501z                 : ARR( 0.488E-13, -1250., 0.0);
+{ 23530} G2H502N +PERO5              =  0.460G1H506J + 0.270GHH502E + 0.270GHH501z                 : ARR( 0.183E-11,   450., 0.0);
+{ 23531} G2H502N +PERO6              =  0.300G1H506J + 0.350GHH502E + 0.350GHH501z                 : ARR( 0.168E-13, -1300., 0.0);
+{ 23532} G2H502N +PERO9              =  0.650G1H506J + 0.350GHH501z                                : ARR( 0.100E-10,     0., 0.0);
+{ 23533} G1H400s                     =       GHH4009 +      GNO2                                   : ARR( 0.160E+12,  4531., 0.0);
+{ 23534} G1H400s                     =       GHN3007 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{ 23535} G1H506J                     =       GHH502F +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{ 23536} G1H506J                     =       GHH4009 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 23537} GHN503a +GHO                =       GND500n +      GHO                                    : ARR( 0.837E-11,     0., 0.0);
+{ 23538} GHN503a +GHO                =       GHN503H +      GHO2                                   : ARR( 0.332E-10,     0., 0.0);
+{ 23539} GHN503a +GHO                =       G3H5011                                               : ARR( 0.211E-10,     0., 0.0);
+{ 23540} GHN503a +GHO                =       G2N504q                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 23541} GHN503a +GNO3               =       G3H5011 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 23542} GHN503a+HV               =       G1H506K +      GNO2                                   :  0.100E+01*SUN;
+{ 23543} GHN503a+HV               =       G1N505s +      GHO                                    :  0.100E+01*SUN;
+{ 23544} GHN503a+HV               =       G2H400l +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 23545} GHN503a+HV               =       GND3003 +      GD02000 +      GHO2    +      GHO      :  0.100E+01*SUN;
+{ 23546} G3H5011 +GHO2               =  0.800GGH501J + 0.200GAH501F + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 23547} G3H5011 +GNO                =       G2H400l +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 23548} G3H5011 +GNO2               =       GPH501A                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 23549} G3H5011 +GNO3               =       G2H400l +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 23550} G3H5011 +MEPERO             =  0.685G2H400l + 0.315GAH501F + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 23551} G3H5011 +PERO1              =  0.800G2H400l + 0.200GAH501F + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 23552} G3H5011 +PERO2              =  0.750G2H400l + 0.250GAH501F + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 23553} G3H5011 +PERO3              =  0.800G2H400l + 0.200GAH501F + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 23554} G3H5011 +PERO5              =  0.650G2H400l + 0.350GAH501F + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 23555} G3H5011 +PERO6              =  0.650G2H400l + 0.350GAH501F + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 23556} G3H5011 +PERO9              =       G2H400l +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 23557} G2N504q +GNO                =       G1N505s +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 23558} G2N504q +GNO                =       GNN502j                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 23559} G2N504q +GHO2               =       GHN503a                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 23560} G2N504q +GNO3               =       G1N505s +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 23561} G2N504q +MEPERO             =  0.340G1N505s + 0.330GND500E + 0.330GND500n                 : ARR( 0.565E-13,  -845., 0.0);
+{ 23562} G2N504q +PERO1              =  0.460G1N505s + 0.270GND500E + 0.270GND500n                 : ARR( 0.434E-13,  -900., 0.0);
+{ 23563} G2N504q +PERO2              =  0.400G1N505s + 0.300GND500E + 0.300GND500n                 : ARR( 0.162E-13, -1400., 0.0);
+{ 23564} G2N504q +PERO3              =  0.460G1N505s + 0.270GND500E + 0.270GND500n                 : ARR( 0.488E-13, -1250., 0.0);
+{ 23565} G2N504q +PERO5              =  0.460G1N505s + 0.270GND500E + 0.270GND500n                 : ARR( 0.183E-11,   450., 0.0);
+{ 23566} G2N504q +PERO6              =  0.300G1N505s + 0.350GND500E + 0.350GND500n                 : ARR( 0.168E-13, -1300., 0.0);
+{ 23567} G2N504q +PERO9              =  0.650G1N505s + 0.350GND500n                                : ARR( 0.100E-10,     0., 0.0);
+{ 23568} G1H506K                     =       G2H502O                                               : ARR( 0.160E+12,  3221., 0.0);
+{ 23569} G1H506K                     =       GDD4001 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{ 23570} G1N505s                     =       GND2000 +      GDD3000 +      GHO2                    : ARR( 0.200E+15,  3617., 0.0);
+{ 23571} G2H400l +GNO                =       G1H400t +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 23572} G2H400l +GNO                =       GHN400S                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 23573} G2H400l +GHO2               =       GHH400F                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 23574} G2H400l +GNO3               =       G1H400t +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 23575} G2H400l +MEPERO             =  0.480G1H400t + 0.260GHN400b + 0.260GHN400z                 : ARR( 0.164E-12,  -795., 0.0);
+{ 23576} G2H400l +PERO1              =  0.600G1H400t + 0.200GHN400b + 0.200GHN400z                 : ARR( 0.126E-12,  -850., 0.0);
+{ 23577} G2H400l +PERO2              =  0.560G1H400t + 0.220GHN400b + 0.220GHN400z                 : ARR( 0.471E-13, -1350., 0.0);
+{ 23578} G2H400l +PERO3              =  0.600G1H400t + 0.200GHN400b + 0.200GHN400z                 : ARR( 0.142E-12, -1200., 0.0);
+{ 23579} G2H400l +PERO5              =  0.600G1H400t + 0.200GHN400b + 0.200GHN400z                 : ARR( 0.533E-11,   500., 0.0);
+{ 23580} G2H400l +PERO6              =  0.460G1H400t + 0.270GHN400b + 0.270GHN400z                 : ARR( 0.488E-13, -1250., 0.0);
+{ 23581} G2H400l +PERO9              =  0.800G1H400t + 0.200GHN400z                                : ARR( 0.100E-10,     0., 0.0);
+{ 23582} G2H502O +GNO                =       G1H506L +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 23583} G2H502O +GNO                =       GHN505M                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 23584} G2H502O +GHO2               =       GHH502G                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 23585} G2H502O +GNO3               =       G1H506L +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 23586} G2H502O +MEPERO             =  0.340G1H506L + 0.330GHD501C + 0.330GHD5015                 : ARR( 0.565E-13,  -845., 0.0);
+{ 23587} G2H502O +PERO1              =  0.460G1H506L + 0.270GHD501C + 0.270GHD5015                 : ARR( 0.434E-13,  -900., 0.0);
+{ 23588} G2H502O +PERO2              =  0.400G1H506L + 0.300GHD501C + 0.300GHD5015                 : ARR( 0.162E-13, -1400., 0.0);
+{ 23589} G2H502O +PERO3              =  0.460G1H506L + 0.270GHD501C + 0.270GHD5015                 : ARR( 0.488E-13, -1250., 0.0);
+{ 23590} G2H502O +PERO5              =  0.460G1H506L + 0.270GHD501C + 0.270GHD5015                 : ARR( 0.183E-11,   450., 0.0);
+{ 23591} G2H502O +PERO6              =  0.300G1H506L + 0.350GHD501C + 0.350GHD5015                 : ARR( 0.168E-13, -1300., 0.0);
+{ 23592} G2H502O +PERO9              =  0.650G1H506L + 0.350GHD5015                                : ARR( 0.100E-10,     0., 0.0);
+{ 23593} G1H400t                     =       GHN3007 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 23594} G1H506L                     =       GHD501D +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{ 23595} G1H506L                     =       GHD3003 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  4899., 0.0);
+{ 23596} G1H506L                     =       GHD4009 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 23597} GGH5009 +GHO                =       GGN500I +      GHO                                    : ARR( 0.869E-11,     0., 0.0);
+{ 23598} GGH5009 +GHO                =       G2G500u                                               : ARR( 0.149E-11,     0., 0.0);
+{ 23599} GGH5009 +GHO                =       G2G500v                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 23600} GGH5009 +GHO                =       G3H5007                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 23601} GGH5009+HV               =       G1G5017 +      GNO2                                   :  0.100E+01*SUN;
+{ 23602} GGH5009+HV               =       G1G5013 +      GHO                                    :  0.100E+01*SUN;
+{ 23603} GGH5009+HV               =       G2H400D +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 23604} G2G500u +GNO                =       G1G5018 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 23605} G2G500u +GNO                =       GGH5019                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 23606} G2G500u +GHO2               =       GGH501I                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 23607} G2G500u +GNO3               =       G1G5018 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 23608} G2G500u +MEPERO             =  0.340G1G5018 + 0.330GGH501J + 0.330GGH501B                 : ARR( 0.565E-13,  -845., 0.0);
+{ 23609} G2G500u +PERO1              =  0.460G1G5018 + 0.270GGH501J + 0.270GGH501B                 : ARR( 0.434E-13,  -900., 0.0);
+{ 23610} G2G500u +PERO2              =  0.400G1G5018 + 0.300GGH501J + 0.300GGH501B                 : ARR( 0.162E-13, -1400., 0.0);
+{ 23611} G2G500u +PERO3              =  0.460G1G5018 + 0.270GGH501J + 0.270GGH501B                 : ARR( 0.488E-13, -1250., 0.0);
+{ 23612} G2G500u +PERO5              =  0.460G1G5018 + 0.270GGH501J + 0.270GGH501B                 : ARR( 0.183E-11,   450., 0.0);
+{ 23613} G2G500u +PERO6              =  0.300G1G5018 + 0.350GGH501J + 0.350GGH501B                 : ARR( 0.168E-13, -1300., 0.0);
+{ 23614} G2G500u +PERO9              =  0.650G1G5018 + 0.350GGH501B                                : ARR( 0.100E-10,     0., 0.0);
+{ 23615} G2G500v +GNO                =       G1G5013 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 23616} G2G500v +GNO                =       GGN500G                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 23617} G2G500v +GHO2               =       GGH5009                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 23618} G2G500v +GNO3               =       G1G5013 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 23619} G2G500v +MEPERO             =  0.340G1G5013 + 0.330GGN5001 + 0.330GGN500I                 : ARR( 0.565E-13,  -845., 0.0);
+{ 23620} G2G500v +PERO1              =  0.460G1G5013 + 0.270GGN5001 + 0.270GGN500I                 : ARR( 0.434E-13,  -900., 0.0);
+{ 23621} G2G500v +PERO2              =  0.400G1G5013 + 0.300GGN5001 + 0.300GGN500I                 : ARR( 0.162E-13, -1400., 0.0);
+{ 23622} G2G500v +PERO3              =  0.460G1G5013 + 0.270GGN5001 + 0.270GGN500I                 : ARR( 0.488E-13, -1250., 0.0);
+{ 23623} G2G500v +PERO5              =  0.460G1G5013 + 0.270GGN5001 + 0.270GGN500I                 : ARR( 0.183E-11,   450., 0.0);
+{ 23624} G2G500v +PERO6              =  0.300G1G5013 + 0.350GGN5001 + 0.350GGN500I                 : ARR( 0.168E-13, -1300., 0.0);
+{ 23625} G2G500v +PERO9              =  0.650G1G5013 + 0.350GGN500I                                : ARR( 0.100E-10,     0., 0.0);
+{ 23626} G1G5017                     =       G2G500w                                               : ARR( 0.160E+12,  3221., 0.0);
+{ 23627} G1G5017                     =       GGD4000 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  6008., 0.0);
+{ 23628} G1G5018                     =       GND2000 +      GGD3000 +      GHO                     : ARR( 0.200E+15,  4146., 0.0);
+{ 23629} G2G500w +GNO                =       G1G5019 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 23630} G2G500w +GNO                =       GGH5013                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 23631} G2G500w +GHO2               =       GGH501K                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 23632} G2G500w +GNO3               =       G1G5019 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 23633} G2G500w +MEPERO             =  0.340G1G5019 + 0.330GGH5015 + 0.330GGH5016                 : ARR( 0.565E-13,  -845., 0.0);
+{ 23634} G2G500w +PERO1              =  0.460G1G5019 + 0.270GGH5015 + 0.270GGH5016                 : ARR( 0.434E-13,  -900., 0.0);
+{ 23635} G2G500w +PERO2              =  0.400G1G5019 + 0.300GGH5015 + 0.300GGH5016                 : ARR( 0.162E-13, -1400., 0.0);
+{ 23636} G2G500w +PERO3              =  0.460G1G5019 + 0.270GGH5015 + 0.270GGH5016                 : ARR( 0.488E-13, -1250., 0.0);
+{ 23637} G2G500w +PERO5              =  0.460G1G5019 + 0.270GGH5015 + 0.270GGH5016                 : ARR( 0.183E-11,   450., 0.0);
+{ 23638} G2G500w +PERO6              =  0.300G1G5019 + 0.350GGH5015 + 0.350GGH5016                 : ARR( 0.168E-13, -1300., 0.0);
+{ 23639} G2G500w +PERO9              =  0.650G1G5019 + 0.350GGH5016                                : ARR( 0.100E-10,     0., 0.0);
+{ 23640} G1G5019                     =       GGH501L +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{ 23641} G1G5019                     =       GHD4000 +      GCO     +      GHO2                    : ARR( 0.200E+15,  4949., 0.0);
+{ 23642} GHH4008 +GHO                =       GHN400Q +      GHO                                    : ARR( 0.862E-11,     0., 0.0);
+{ 23643} GHH4008 +GHO                =       GHN4001 +      GHO                                    : ARR( 0.168E-10,     0., 0.0);
+{ 23644} GHH4008 +GHO                =       G2H400m                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 23645} GHH4008 +GHO                =       G2H400D                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 23646} GHH4008+HV               =       G1H400u +      GNO2                                   :  0.100E+01*SUN;
+{ 23647} GHH4008+HV               =       G1H400r +      GHO                                    :  0.100E+01*SUN;
+{ 23648} GHH4008+HV               =       G1H400E +      GHO                                    :  0.100E+01*SUN;
+{ 23649} G2H400m +GNO                =       G1H400r +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 23650} G2H400m +GNO                =       GHN400P                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 23651} G2H400m +GHO2               =       GHH4008                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 23652} G2H400m +GNO3               =       G1H400r +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 23653} G2H400m +MEPERO             =  0.340G1H400r + 0.330GHN4002 + 0.330GHN400Q                 : ARR( 0.565E-13,  -845., 0.0);
+{ 23654} G2H400m +PERO1              =  0.460G1H400r + 0.270GHN4002 + 0.270GHN400Q                 : ARR( 0.434E-13,  -900., 0.0);
+{ 23655} G2H400m +PERO2              =  0.400G1H400r + 0.300GHN4002 + 0.300GHN400Q                 : ARR( 0.162E-13, -1400., 0.0);
+{ 23656} G2H400m +PERO3              =  0.460G1H400r + 0.270GHN4002 + 0.270GHN400Q                 : ARR( 0.488E-13, -1250., 0.0);
+{ 23657} G2H400m +PERO5              =  0.460G1H400r + 0.270GHN4002 + 0.270GHN400Q                 : ARR( 0.183E-11,   450., 0.0);
+{ 23658} G2H400m +PERO6              =  0.300G1H400r + 0.350GHN4002 + 0.350GHN400Q                 : ARR( 0.168E-13, -1300., 0.0);
+{ 23659} G2H400m +PERO9              =  0.650G1H400r + 0.350GHN400Q                                : ARR( 0.100E-10,     0., 0.0);
+{ 23660} G1H400u                     =       GHD4000 +      GHO                                    : ARR( 0.160E+12,  2186., 0.0);
+{ 23661} GHH5011 +GHO                =       GHD500a +      GHO                                    : ARR( 0.487E-10,     0., 0.0);
+{ 23662} GHH5011 +GHO                =       GHD500S +      GHO                                    : ARR( 0.297E-10,     0., 0.0);
+{ 23663} GHH5011 +GHO                =       G3H5012                                               : ARR( 0.246E-10,     0., 0.0);
+{ 23664} GHH5011 +GNO3               =       G3H5012 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 23665} GHH5011+HV               =       G1H505s +      GHO                                    :  0.100E+01*SUN;
+{ 23666} GHH5011+HV               =       G1H501y +      GHO                                    :  0.100E+01*SUN;
+{ 23667} GHH5011+HV               =       GHD4000 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 23668} G3H5012 +GHO2               =  0.800GGH501K + 0.200GAH501H + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 23669} G3H5012 +GNO                =       GHD4000 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 23670} G3H5012 +GNO2               =       GPH501G                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 23671} G3H5012 +GNO3               =       GHD4000 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 23672} G3H5012 +MEPERO             =  0.685GHD4000 + 0.315GAH501H + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23673} G3H5012 +PERO1              =  0.800GHD4000 + 0.200GAH501H + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23674} G3H5012 +PERO2              =  0.750GHD4000 + 0.250GAH501H + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23675} G3H5012 +PERO3              =  0.800GHD4000 + 0.200GAH501H + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23676} G3H5012 +PERO5              =  0.650GHD4000 + 0.350GAH501H + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23677} G3H5012 +PERO6              =  0.650GHD4000 + 0.350GAH501H + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23678} G3H5012 +PERO9              =       GHD4000 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 23679} GHD500Y +GHO                =       GDK500F +      GHO                                    : ARR( 0.457E-10,     0., 0.0);
+{ 23680} GHD500Y +GHO                =       G2H502P                                               : ARR( 0.497E-11,     0., 0.0);
+{ 23681} GHD500Y +GHO                =       GHD500S +      GHO2                                   : ARR( 0.696E-11,     0., 0.0);
+{ 23682} GHD500Y +GHO                =       G3H5013                                               : ARR( 0.230E-10,     0., 0.0);
+{ 23683} GHD500Y +GNO3               =       G3H5013 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 23684} GHD500Y+HV               =       G1D500v +      GHO                                    :  0.100E+01*SUN;
+{ 23685} GHD500Y+HV               =       GHD4000 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 23686} G2H502P +GNO                =       G1H506M +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 23687} G2H502P +GNO                =       GHN505m                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 23688} G2H502P +GHO2               =       GHH502E                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 23689} G2H502P +GNO3               =       G1H506M +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 23690} G2H502P +MEPERO             =  0.340G1H506M + 0.330GHD501C + 0.330GHD501E                 : ARR( 0.565E-13,  -845., 0.0);
+{ 23691} G2H502P +PERO1              =  0.460G1H506M + 0.270GHD501C + 0.270GHD501E                 : ARR( 0.434E-13,  -900., 0.0);
+{ 23692} G2H502P +PERO2              =  0.400G1H506M + 0.300GHD501C + 0.300GHD501E                 : ARR( 0.162E-13, -1400., 0.0);
+{ 23693} G2H502P +PERO3              =  0.460G1H506M + 0.270GHD501C + 0.270GHD501E                 : ARR( 0.488E-13, -1250., 0.0);
+{ 23694} G2H502P +PERO5              =  0.460G1H506M + 0.270GHD501C + 0.270GHD501E                 : ARR( 0.183E-11,   450., 0.0);
+{ 23695} G2H502P +PERO6              =  0.300G1H506M + 0.350GHD501C + 0.350GHD501E                 : ARR( 0.168E-13, -1300., 0.0);
+{ 23696} G2H502P +PERO9              =  0.650G1H506M + 0.350GHD501E                                : ARR( 0.100E-10,     0., 0.0);
+{ 23697} G3H5013 +GHO2               =  0.800GGH5015 + 0.200GAH501I + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 23698} G3H5013 +GNO                =       GHD4000 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 23699} G3H5013 +GNO2               =       GPH501H                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 23700} G3H5013 +GNO3               =       GHD4000 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 23701} G3H5013 +MEPERO             =  0.685GHD4000 + 0.315GAH501I + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23702} G3H5013 +PERO1              =  0.800GHD4000 + 0.200GAH501I + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23703} G3H5013 +PERO2              =  0.750GHD4000 + 0.250GAH501I + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23704} G3H5013 +PERO3              =  0.800GHD4000 + 0.200GAH501I + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23705} G3H5013 +PERO5              =  0.650GHD4000 + 0.350GAH501I + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23706} G3H5013 +PERO6              =  0.650GHD4000 + 0.350GAH501I + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23707} G3H5013 +PERO9              =       GHD4000 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 23708} G1H506M                     =       GDO2000 +      GDD3001 +      GHO                     : ARR( 0.200E+15,  3953., 0.0);
+{ 23709} G1H506M                     =       GHD3003 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  3708., 0.0);
+{ 23710} GHD500Z +GHO                =       G3H5014                                               : ARR( 0.217E-10,     0., 0.0);
+{ 23711} GHD500Z +GHO                =       GHD5018 +      GHO2                                   : ARR( 0.655E-11,     0., 0.0);
+{ 23712} GHD500Z +GHO                =       G2H502Q                                               : ARR( 0.148E-10,     0., 0.0);
+{ 23713} GHD500Z +GHO                =       GDD5007 +      GHO                                    : ARR( 0.262E-10,     0., 0.0);
+{ 23714} GHD500Z +GHO                =       G3H5015                                               : ARR( 0.217E-10,     0., 0.0);
+{ 23715} GHD500Z +GNO3               =       G3H5014 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 23716} GHD500Z +GNO3               =       G3H5015 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 23717} GHD500Z+HV               =       GCO     +      GHD400C + 2.000GHO2                    :  0.100E+01*SUN;
+{ 23718} GHD500Z+HV               =       G1D500w +      GHO                                    :  0.100E+01*SUN;
+{ 23719} GHD500Z+HV               =       GDD4001 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 23720} G3H5014 +GHO2               =  0.800GGH501L + 0.200GAH501K + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 23721} G3H5014 +GNO                =       GHD400C +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 23722} G3H5014 +GNO2               =       GPH501J                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 23723} G3H5014 +GNO3               =       GHD400C +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 23724} G3H5014 +MEPERO             =  0.685GHD400C + 0.315GAH501K + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23725} G3H5014 +PERO1              =  0.800GHD400C + 0.200GAH501K + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23726} G3H5014 +PERO2              =  0.750GHD400C + 0.250GAH501K + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23727} G3H5014 +PERO3              =  0.800GHD400C + 0.200GAH501K + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23728} G3H5014 +PERO5              =  0.650GHD400C + 0.350GAH501K + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23729} G3H5014 +PERO6              =  0.650GHD400C + 0.350GAH501K + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23730} G3H5014 +PERO9              =       GHD400C +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 23731} G2H502Q +GNO                =       G1H506N +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 23732} G2H502Q +GNO                =       GHN505o                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 23733} G2H502Q +GHO2               =       GHH502F                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 23734} G2H502Q +GNO3               =       G1H506N +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 23735} G2H502Q +MEPERO             =  0.340G1H506N + 0.330GHD501D + 0.330GHD501F                 : ARR( 0.565E-13,  -845., 0.0);
+{ 23736} G2H502Q +PERO1              =  0.460G1H506N + 0.270GHD501D + 0.270GHD501F                 : ARR( 0.434E-13,  -900., 0.0);
+{ 23737} G2H502Q +PERO2              =  0.400G1H506N + 0.300GHD501D + 0.300GHD501F                 : ARR( 0.162E-13, -1400., 0.0);
+{ 23738} G2H502Q +PERO3              =  0.460G1H506N + 0.270GHD501D + 0.270GHD501F                 : ARR( 0.488E-13, -1250., 0.0);
+{ 23739} G2H502Q +PERO5              =  0.460G1H506N + 0.270GHD501D + 0.270GHD501F                 : ARR( 0.183E-11,   450., 0.0);
+{ 23740} G2H502Q +PERO6              =  0.300G1H506N + 0.350GHD501D + 0.350GHD501F                 : ARR( 0.168E-13, -1300., 0.0);
+{ 23741} G2H502Q +PERO9              =  0.650G1H506N + 0.350GHD501F                                : ARR( 0.100E-10,     0., 0.0);
+{ 23742} G3H5015 +GHO2               =  0.800GGH501M + 0.200GAH501X + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 23743} G3H5015 +GNO                =       GDD4001 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 23744} G3H5015 +GNO2               =       GPH501Y                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 23745} G3H5015 +GNO3               =       GDD4001 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 23746} G3H5015 +MEPERO             =  0.685GDD4001 + 0.315GAH501X + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23747} G3H5015 +PERO1              =  0.800GDD4001 + 0.200GAH501X + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23748} G3H5015 +PERO2              =  0.750GDD4001 + 0.250GAH501X + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23749} G3H5015 +PERO3              =  0.800GDD4001 + 0.200GAH501X + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23750} G3H5015 +PERO5              =  0.650GDD4001 + 0.350GAH501X + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23751} G3H5015 +PERO6              =  0.650GDD4001 + 0.350GAH501X + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23752} G3H5015 +PERO9              =       GDD4001 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 23753} G1H506N                     =       GHD3004 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  2877., 0.0);
+{ 23754} GHN503b +GHO                =       GNN501m +      GHO                                    : ARR( 0.845E-11,     0., 0.0);
+{ 23755} GHN503b +GHO                =       G3H5016                                               : ARR( 0.426E-11,     0., 0.0);
+{ 23756} GHN503b +GHO                =       G2N503l                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 23757} GHN503b +GNO3               =       G3H5016 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 23758} GHN503b+HV               =       G1H506O +      GNO2                                   :  0.100E+01*SUN;
+{ 23759} GHN503b+HV               =       G1N504H +      GHO                                    :  0.100E+01*SUN;
+{ 23760} GHN503b+HV               =       G1H506P +      GNO2                                   :  0.100E+01*SUN;
+{ 23761} GHN503b+HV               =       GHN4001 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 23762} GHN503b+HV               =       G2N3005 +      GND2000 +      GHO                     :  0.100E+01*SUN;
+{ 23763} G3H5016 +GHO2               =  0.800GGH500x + 0.200GAH5016 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 23764} G3H5016 +GNO                =       GHN4001 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 23765} G3H5016 +GNO2               =       GPH501B                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 23766} G3H5016 +GNO3               =       GHN4001 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 23767} G3H5016 +MEPERO             =  0.685GHN4001 + 0.315GAH5016 + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23768} G3H5016 +PERO1              =  0.800GHN4001 + 0.200GAH5016 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23769} G3H5016 +PERO2              =  0.750GHN4001 + 0.250GAH5016 + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23770} G3H5016 +PERO3              =  0.800GHN4001 + 0.200GAH5016 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23771} G3H5016 +PERO5              =  0.650GHN4001 + 0.350GAH5016 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23772} G3H5016 +PERO6              =  0.650GHN4001 + 0.350GAH5016 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23773} G3H5016 +PERO9              =       GHN4001 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 23774} G1H506O +OXYGEN             =       GHN505N +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 23775} G1H506O                     =       GHD500S +      GNO2                                   : ARR( 0.800E+11,  4245., 0.0);
+{ 23776} G1H506O                     =       GND400D +      GCH2O   +      GHO                     : ARR( 0.200E+15,  6008., 0.0);
+{ 23777} G1H506P                     =       GHN4001 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5437., 0.0);
+{ 23778} GHH5012 +GHO                =       GHN503n +      GHO                                    : ARR( 0.825E-11,     0., 0.0);
+{ 23779} GHH5012 +GHO                =       G2H502R                                               : ARR( 0.448E-11,     0., 0.0);
+{ 23780} GHH5012 +GHO                =       GHN502k +      GHO                                    : ARR( 0.251E-10,     0., 0.0);
+{ 23781} GHH5012 +GHO                =       G3H5017                                               : ARR( 0.208E-10,     0., 0.0);
+{ 23782} GHH5012 +GHO                =       G2H502S                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 23783} GHH5012 +GHO                =       G2H502T                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 23784} GHH5012 +GNO3               =       G3H5017 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 23785} GHH5012+HV               =       G1H506Q +      GNO2                                   :  0.100E+01*SUN;
+{ 23786} GHH5012+HV               =       G1H506E +      GHO                                    :  0.100E+01*SUN;
+{ 23787} GHH5012+HV               =       G1H506P +      GHO                                    :  0.100E+01*SUN;
+{ 23788} GHH5012+HV               =       GHN4001 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 23789} G2H502R +GNO                =       G1H506R +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 23790} G2H502R +GNO                =       GHH502H                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 23791} G2H502R +GHO2               =       GHH502I                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 23792} G2H502R +GNO3               =       G1H506R +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 23793} G2H502R +MEPERO             =  0.340G1H506R + 0.330GHH502J + 0.330GHH502K                 : ARR( 0.565E-13,  -845., 0.0);
+{ 23794} G2H502R +PERO1              =  0.460G1H506R + 0.270GHH502J + 0.270GHH502K                 : ARR( 0.434E-13,  -900., 0.0);
+{ 23795} G2H502R +PERO2              =  0.400G1H506R + 0.300GHH502J + 0.300GHH502K                 : ARR( 0.162E-13, -1400., 0.0);
+{ 23796} G2H502R +PERO3              =  0.460G1H506R + 0.270GHH502J + 0.270GHH502K                 : ARR( 0.488E-13, -1250., 0.0);
+{ 23797} G2H502R +PERO5              =  0.460G1H506R + 0.270GHH502J + 0.270GHH502K                 : ARR( 0.183E-11,   450., 0.0);
+{ 23798} G2H502R +PERO6              =  0.300G1H506R + 0.350GHH502J + 0.350GHH502K                 : ARR( 0.168E-13, -1300., 0.0);
+{ 23799} G2H502R +PERO9              =  0.650G1H506R + 0.350GHH502K                                : ARR( 0.100E-10,     0., 0.0);
+{ 23800} G3H5017 +GHO2               =  0.800GGH501N + 0.200GAH501Y + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 23801} G3H5017 +GNO                =       GHN4001 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 23802} G3H5017 +GNO2               =       GPH501C                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 23803} G3H5017 +GNO3               =       GHN4001 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 23804} G3H5017 +MEPERO             =  0.685GHN4001 + 0.315GAH501Y + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23805} G3H5017 +PERO1              =  0.800GHN4001 + 0.200GAH501Y + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23806} G3H5017 +PERO2              =  0.750GHN4001 + 0.250GAH501Y + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23807} G3H5017 +PERO3              =  0.800GHN4001 + 0.200GAH501Y + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23808} G3H5017 +PERO5              =  0.650GHN4001 + 0.350GAH501Y + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23809} G3H5017 +PERO6              =  0.650GHN4001 + 0.350GAH501Y + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23810} G3H5017 +PERO9              =       GHN4001 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 23811} G2H502S +GNO                =       G1H506E +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 23812} G2H502S +GNO                =       GHN503Y                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 23813} G2H502S +GHO2               =       GHH5012                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 23814} G2H502S +GNO3               =       G1H506E +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 23815} G2H502S +MEPERO             =  0.340G1H506E + 0.330GHN5021 + 0.330GHN503n                 : ARR( 0.565E-13,  -845., 0.0);
+{ 23816} G2H502S +PERO1              =  0.460G1H506E + 0.270GHN5021 + 0.270GHN503n                 : ARR( 0.434E-13,  -900., 0.0);
+{ 23817} G2H502S +PERO2              =  0.400G1H506E + 0.300GHN5021 + 0.300GHN503n                 : ARR( 0.162E-13, -1400., 0.0);
+{ 23818} G2H502S +PERO3              =  0.460G1H506E + 0.270GHN5021 + 0.270GHN503n                 : ARR( 0.488E-13, -1250., 0.0);
+{ 23819} G2H502S +PERO5              =  0.460G1H506E + 0.270GHN5021 + 0.270GHN503n                 : ARR( 0.183E-11,   450., 0.0);
+{ 23820} G2H502S +PERO6              =  0.300G1H506E + 0.350GHN5021 + 0.350GHN503n                 : ARR( 0.168E-13, -1300., 0.0);
+{ 23821} G2H502S +PERO9              =  0.650G1H506E + 0.350GHN503n                                : ARR( 0.100E-10,     0., 0.0);
+{ 23822} G2H502T +GNO                =       G1H506P +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 23823} G2H502T +GNO                =       GHN503b                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 23824} G2H502T +GHO2               =       GHH5012                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 23825} G2H502T +GNO3               =       G1H506P +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 23826} G2H502T +MEPERO             =  0.340G1H506P + 0.330GHN503c + 0.330GHN502k                 : ARR( 0.565E-13,  -845., 0.0);
+{ 23827} G2H502T +PERO1              =  0.460G1H506P + 0.270GHN503c + 0.270GHN502k                 : ARR( 0.434E-13,  -900., 0.0);
+{ 23828} G2H502T +PERO2              =  0.400G1H506P + 0.300GHN503c + 0.300GHN502k                 : ARR( 0.162E-13, -1400., 0.0);
+{ 23829} G2H502T +PERO3              =  0.460G1H506P + 0.270GHN503c + 0.270GHN502k                 : ARR( 0.488E-13, -1250., 0.0);
+{ 23830} G2H502T +PERO5              =  0.460G1H506P + 0.270GHN503c + 0.270GHN502k                 : ARR( 0.183E-11,   450., 0.0);
+{ 23831} G2H502T +PERO6              =  0.300G1H506P + 0.350GHN503c + 0.350GHN502k                 : ARR( 0.168E-13, -1300., 0.0);
+{ 23832} G2H502T +PERO9              =  0.650G1H506P + 0.350GHN502k                                : ARR( 0.100E-10,     0., 0.0);
+{ 23833} G1H506Q                     =       GHD500S +      GHO                                    : ARR( 0.800E+11,  1899., 0.0);
+{ 23834} G1H506R                     =       GND2000 +      GHD3004 +      GHO                     : ARR( 0.200E+15,  3953., 0.0);
+{ 23835} G1H506R                     =       GHN3007 +      GDD2000 +      GHO                     : ARR( 0.200E+15,  4917., 0.0);
+{ 23836} GHN503c +GHO                =       GND500o +      GHO                                    : ARR( 0.828E-11,     0., 0.0);
+{ 23837} GHN503c +GHO                =       G2H502U                                               : ARR( 0.450E-11,     0., 0.0);
+{ 23838} GHN503c +GHO                =       GHN502k +      GHO2                                   : ARR( 0.631E-11,     0., 0.0);
+{ 23839} GHN503c +GHO                =       G3H5018                                               : ARR( 0.209E-10,     0., 0.0);
+{ 23840} GHN503c +GHO                =       G2N504r                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 23841} GHN503c +GNO3               =       G3H5018 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 23842} GHN503c+HV               =       G1H506S +      GNO2                                   :  0.100E+01*SUN;
+{ 23843} GHN503c+HV               =       G1N505p +      GHO                                    :  0.100E+01*SUN;
+{ 23844} GHN503c+HV               =       GHN4001 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 23845} G2H502U +GNO                =       G1H506T +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 23846} G2H502U +GNO                =       GHN5064                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 23847} G2H502U +GHO2               =       GHH502L                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 23848} G2H502U +GNO3               =       G1H506T +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 23849} G2H502U +MEPERO             =  0.340G1H506T + 0.330GHN5065 + 0.330GHN5066                 : ARR( 0.565E-13,  -845., 0.0);
+{ 23850} G2H502U +PERO1              =  0.460G1H506T + 0.270GHN5065 + 0.270GHN5066                 : ARR( 0.434E-13,  -900., 0.0);
+{ 23851} G2H502U +PERO2              =  0.400G1H506T + 0.300GHN5065 + 0.300GHN5066                 : ARR( 0.162E-13, -1400., 0.0);
+{ 23852} G2H502U +PERO3              =  0.460G1H506T + 0.270GHN5065 + 0.270GHN5066                 : ARR( 0.488E-13, -1250., 0.0);
+{ 23853} G2H502U +PERO5              =  0.460G1H506T + 0.270GHN5065 + 0.270GHN5066                 : ARR( 0.183E-11,   450., 0.0);
+{ 23854} G2H502U +PERO6              =  0.300G1H506T + 0.350GHN5065 + 0.350GHN5066                 : ARR( 0.168E-13, -1300., 0.0);
+{ 23855} G2H502U +PERO9              =  0.650G1H506T + 0.350GHN5066                                : ARR( 0.100E-10,     0., 0.0);
+{ 23856} G3H5018 +GHO2               =  0.800GGH501O + 0.200GAH501Z + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 23857} G3H5018 +GNO                =       GHN4001 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 23858} G3H5018 +GNO2               =       GPH501D                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 23859} G3H5018 +GNO3               =       GHN4001 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 23860} G3H5018 +MEPERO             =  0.685GHN4001 + 0.315GAH501Z + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23861} G3H5018 +PERO1              =  0.800GHN4001 + 0.200GAH501Z + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23862} G3H5018 +PERO2              =  0.750GHN4001 + 0.250GAH501Z + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23863} G3H5018 +PERO3              =  0.800GHN4001 + 0.200GAH501Z + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23864} G3H5018 +PERO5              =  0.650GHN4001 + 0.350GAH501Z + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23865} G3H5018 +PERO6              =  0.650GHN4001 + 0.350GAH501Z + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23866} G3H5018 +PERO9              =       GHN4001 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 23867} G2N504r +GNO                =       G1N505p +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 23868} G2N504r +GNO                =       GNN502N                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 23869} G2N504r +GHO2               =       GHN503c                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 23870} G2N504r +GNO3               =       G1N505p +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 23871} G2N504r +MEPERO             =  0.340G1N505p + 0.330GND500D + 0.330GND500o                 : ARR( 0.565E-13,  -845., 0.0);
+{ 23872} G2N504r +PERO1              =  0.460G1N505p + 0.270GND500D + 0.270GND500o                 : ARR( 0.434E-13,  -900., 0.0);
+{ 23873} G2N504r +PERO2              =  0.400G1N505p + 0.300GND500D + 0.300GND500o                 : ARR( 0.162E-13, -1400., 0.0);
+{ 23874} G2N504r +PERO3              =  0.460G1N505p + 0.270GND500D + 0.270GND500o                 : ARR( 0.488E-13, -1250., 0.0);
+{ 23875} G2N504r +PERO5              =  0.460G1N505p + 0.270GND500D + 0.270GND500o                 : ARR( 0.183E-11,   450., 0.0);
+{ 23876} G2N504r +PERO6              =  0.300G1N505p + 0.350GND500D + 0.350GND500o                 : ARR( 0.168E-13, -1300., 0.0);
+{ 23877} G2N504r +PERO9              =  0.650G1N505p + 0.350GND500o                                : ARR( 0.100E-10,     0., 0.0);
+{ 23878} G1H506S                     =       GHD500S +      GHO2                                   : ARR( 0.800E+11,  2246., 0.0);
+{ 23879} G1H506T                     =       GND2000 +      GDD3001 +      GHO                     : ARR( 0.200E+15,  3953., 0.0);
+{ 23880} G1H506T                     =       GHN3007 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  3708., 0.0);
+{ 23881} GHN503d +GHO                =       GHN5064 +      GHO2                                   : ARR( 0.418E-11,     0., 0.0);
+{ 23882} GHN503d +GHO                =       GHN5067 +      GHO2                                   : ARR( 0.214E-11,     0., 0.0);
+{ 23883} GHN503d +GHO                =       GNN502E +      GHO                                    : ARR( 0.171E-11,     0., 0.0);
+{ 23884} GHN503d +GHO                =       G2N504s                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 23885} GHN503d+HV               =       G1H5022 +      GNO2                                   :  0.100E+01*SUN;
+{ 23886} GHN503d+HV               =       G1N505Q +      GHO                                    :  0.100E+01*SUN;
+{ 23887} GHN503d+HV               =       G1H5035 +      GNO2                                   :  0.100E+01*SUN;
+{ 23888} G2N504s +GNO                =       G1N505Q +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 23889} G2N504s +GNO                =       GNN5028                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 23890} G2N504s +GHO2               =       GHN503d                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 23891} G2N504s +GNO3               =       G1N505Q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 23892} G2N504s +MEPERO             =  0.340G1N505Q + 0.330GNN501B + 0.330GNN502E                 : ARR( 0.565E-13,  -845., 0.0);
+{ 23893} G2N504s +PERO1              =  0.460G1N505Q + 0.270GNN501B + 0.270GNN502E                 : ARR( 0.434E-13,  -900., 0.0);
+{ 23894} G2N504s +PERO2              =  0.400G1N505Q + 0.300GNN501B + 0.300GNN502E                 : ARR( 0.162E-13, -1400., 0.0);
+{ 23895} G2N504s +PERO3              =  0.460G1N505Q + 0.270GNN501B + 0.270GNN502E                 : ARR( 0.488E-13, -1250., 0.0);
+{ 23896} G2N504s +PERO5              =  0.460G1N505Q + 0.270GNN501B + 0.270GNN502E                 : ARR( 0.183E-11,   450., 0.0);
+{ 23897} G2N504s +PERO6              =  0.300G1N505Q + 0.350GNN501B + 0.350GNN502E                 : ARR( 0.168E-13, -1300., 0.0);
+{ 23898} G2N504s +PERO9              =  0.650G1N505Q + 0.350GNN502E                                : ARR( 0.100E-10,     0., 0.0);
+{ 23899} GHH5013 +GHO                =       GHH502L +      GHO2                                   : ARR( 0.404E-11,     0., 0.0);
+{ 23900} GHH5013 +GHO                =       GHH502M +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 23901} GHH5013 +GHO                =       GHN503f +      GHO                                    : ARR( 0.414E-10,     0., 0.0);
+{ 23902} GHH5013 +GHO                =       GHN503p +      GHO                                    : ARR( 0.828E-11,     0., 0.0);
+{ 23903} GHH5013 +GHO                =       G2H501A                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 23904} GHH5013 +GHO                =       G2H502W                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 23905} GHH5013+HV               =       G1H5022 +      GHO                                    :  0.100E+01*SUN;
+{ 23906} GHH5013+HV               =       G1H506U +      GHO                                    :  0.100E+01*SUN;
+{ 23907} GHH5013+HV               =       G1H506W +      GNO2                                   :  0.100E+01*SUN;
+{ 23908} G2H502W +GNO                =       G1H506U +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 23909} G2H502W +GNO                =       GHN5052                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 23910} G2H502W +GHO2               =       GHH5013                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 23911} G2H502W +GNO3               =       G1H506U +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 23912} G2H502W +MEPERO             =  0.340G1H506U + 0.330GHN501s + 0.330GHN503p                 : ARR( 0.565E-13,  -845., 0.0);
+{ 23913} G2H502W +PERO1              =  0.460G1H506U + 0.270GHN501s + 0.270GHN503p                 : ARR( 0.434E-13,  -900., 0.0);
+{ 23914} G2H502W +PERO2              =  0.400G1H506U + 0.300GHN501s + 0.300GHN503p                 : ARR( 0.162E-13, -1400., 0.0);
+{ 23915} G2H502W +PERO3              =  0.460G1H506U + 0.270GHN501s + 0.270GHN503p                 : ARR( 0.488E-13, -1250., 0.0);
+{ 23916} G2H502W +PERO5              =  0.460G1H506U + 0.270GHN501s + 0.270GHN503p                 : ARR( 0.183E-11,   450., 0.0);
+{ 23917} G2H502W +PERO6              =  0.300G1H506U + 0.350GHN501s + 0.350GHN503p                 : ARR( 0.168E-13, -1300., 0.0);
+{ 23918} G2H502W +PERO9              =  0.650G1H506U + 0.350GHN503p                                : ARR( 0.100E-10,     0., 0.0);
+{ 23919} G1H506U                     =       GHN503v +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{ 23920} G1H506U                     =       GDO3002 +      GND2000 +      GHO                     : ARR( 0.200E+15,  4693., 0.0);
+{ 23921} G1H506W                     =       GHH5017 +      GHO2                                   : ARR( 0.800E+11,  2025., 0.0);
+{ 23922} G1H506W                     =       GHD400A +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{ 23923} GHN503e +GHO                =       GHN5065 +      GHO2                                   : ARR( 0.407E-11,     0., 0.0);
+{ 23924} GHN503e +GHO                =       GHN503h +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 23925} GHN503e +GHO                =       GHN503f +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 23926} GHN503e +GHO                =       GNK5011 +      GHO                                    : ARR( 0.835E-11,     0., 0.0);
+{ 23927} GHN503e +GHO                =       G2N504t                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 23928} GHN503e+HV               =       G1N505t +      GHO                                    :  0.100E+01*SUN;
+{ 23929} GHN503e+HV               =       G1H506X +      GNO2                                   :  0.100E+01*SUN;
+{ 23930} G2N504t +GNO                =       G1N505t +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 23931} G2N504t +GNO                =       GNN502p                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 23932} G2N504t +GHO2               =       GHN503e                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 23933} G2N504t +GNO3               =       G1N505t +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 23934} G2N504t +MEPERO             =  0.340G1N505t + 0.330GNO500Y + 0.330GNK5011                 : ARR( 0.565E-13,  -845., 0.0);
+{ 23935} G2N504t +PERO1              =  0.460G1N505t + 0.270GNO500Y + 0.270GNK5011                 : ARR( 0.434E-13,  -900., 0.0);
+{ 23936} G2N504t +PERO2              =  0.400G1N505t + 0.300GNO500Y + 0.300GNK5011                 : ARR( 0.162E-13, -1400., 0.0);
+{ 23937} G2N504t +PERO3              =  0.460G1N505t + 0.270GNO500Y + 0.270GNK5011                 : ARR( 0.488E-13, -1250., 0.0);
+{ 23938} G2N504t +PERO5              =  0.460G1N505t + 0.270GNO500Y + 0.270GNK5011                 : ARR( 0.183E-11,   450., 0.0);
+{ 23939} G2N504t +PERO6              =  0.300G1N505t + 0.350GNO500Y + 0.350GNK5011                 : ARR( 0.168E-13, -1300., 0.0);
+{ 23940} G2N504t +PERO9              =  0.650G1N505t + 0.350GNK5011                                : ARR( 0.100E-10,     0., 0.0);
+{ 23941} G1N505t                     =       GDO3002 +      GND2000 +      GHO2                    : ARR( 0.200E+15,  3484., 0.0);
+{ 23942} G1H506X                     =       GHK500e +      GHO2                                   : ARR( 0.800E+11,  2025., 0.0);
+{ 23943} G1H506X                     =       GDO4006 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{ 23944} GHN503f +GHO                =       GHN5066 +      GHO2                                   : ARR( 0.129E-10,     0., 0.0);
+{ 23945} GHN503f +GHO                =       GHN505F +      GHO2                                   : ARR( 0.638E-11,     0., 0.0);
+{ 23946} GHN503f +GHO                =       GNK5012 +      GHO                                    : ARR( 0.510E-11,     0., 0.0);
+{ 23947} GHN503f +GHO                =       G2N504u                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 23948} GHN503f+HV               =       G3K3003 +      GND2000 +      GHO                     :  0.100E+01*SUN;
+{ 23949} GHN503f+HV               =       G1N505u +      GHO                                    :  0.100E+01*SUN;
+{ 23950} GHN503f+HV               =       G1H506Y +      GNO2                                   :  0.100E+01*SUN;
+{ 23951} G2N504u +GNO                =       G1N505u +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 23952} G2N504u +GNO                =       GNN503E                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 23953} G2N504u +GHO2               =       GHN503f                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 23954} G2N504u +GNO3               =       G1N505u +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 23955} G2N504u +MEPERO             =  0.340G1N505u + 0.330GNK500l + 0.330GNK5012                 : ARR( 0.565E-13,  -845., 0.0);
+{ 23956} G2N504u +PERO1              =  0.460G1N505u + 0.270GNK500l + 0.270GNK5012                 : ARR( 0.434E-13,  -900., 0.0);
+{ 23957} G2N504u +PERO2              =  0.400G1N505u + 0.300GNK500l + 0.300GNK5012                 : ARR( 0.162E-13, -1400., 0.0);
+{ 23958} G2N504u +PERO3              =  0.460G1N505u + 0.270GNK500l + 0.270GNK5012                 : ARR( 0.488E-13, -1250., 0.0);
+{ 23959} G2N504u +PERO5              =  0.460G1N505u + 0.270GNK500l + 0.270GNK5012                 : ARR( 0.183E-11,   450., 0.0);
+{ 23960} G2N504u +PERO6              =  0.300G1N505u + 0.350GNK500l + 0.350GNK5012                 : ARR( 0.168E-13, -1300., 0.0);
+{ 23961} G2N504u +PERO9              =  0.650G1N505u + 0.350GNK5012                                : ARR( 0.100E-10,     0., 0.0);
+{ 23962} G1N505u                     =       G3K3003 +      GND2000                                : ARR( 0.200E+15,  3029., 0.0);
+{ 23963} G1H506Y +OXYGEN             =       GHD500c +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 23964} G1H506Y                     =       GHK500m +      GHO2                                   : ARR( 0.800E+11,  4007., 0.0);
+{ 23965} G1H506Y                     =       GDK4007 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5784., 0.0);
+{ 23966} GHD500a +GHO                =       GDK500M +      GHO                                    : ARR( 0.868E-10,     0., 0.0);
+{ 23967} GHD500a +GHO                =       G3H5019                                               : ARR( 0.226E-10,     0., 0.0);
+{ 23968} GHD500a +GNO3               =       G3H5019 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 23969} GHD500a+HV               =       G3K2001 +      G2H300A                                :  0.100E+01*SUN;
+{ 23970} GHD500a+HV               =       G1D500Z +      GHO                                    :  0.100E+01*SUN;
+{ 23971} GHD500a+HV               =       GDK4001 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 23972} G3H5019 +GHO2               =  0.800GGH501P + 0.200GAH501a + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 23973} G3H5019 +GNO                =       GDK4001 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 23974} G3H5019 +GNO2               =       GPH501Z                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 23975} G3H5019 +GNO3               =       GDK4001 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 23976} G3H5019 +MEPERO             =  0.685GDK4001 + 0.315GAH501a + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23977} G3H5019 +PERO1              =  0.800GDK4001 + 0.200GAH501a + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23978} G3H5019 +PERO2              =  0.750GDK4001 + 0.250GAH501a + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23979} G3H5019 +PERO3              =  0.800GDK4001 + 0.200GAH501a + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23980} G3H5019 +PERO5              =  0.650GDK4001 + 0.350GAH501a + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23981} G3H5019 +PERO6              =  0.650GDK4001 + 0.350GAH501a + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 23982} G3H5019 +PERO9              =       GDK4001 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 23983} GHH5014 +GHO                =       GHN505A +      GHO                                    : ARR( 0.841E-11,     0., 0.0);
+{ 23984} GHH5014 +GHO                =       GHN504E +      GHO                                    : ARR( 0.420E-10,     0., 0.0);
+{ 23985} GHH5014 +GHO                =       GHH502N +      GHO2                                   : ARR( 0.410E-11,     0., 0.0);
+{ 23986} GHH5014 +GHO                =       G2H502X                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 23987} GHH5014 +GHO                =       G2H501q                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 23988} GHH5014+HV               =       G1H5025 +      GNO2                                   :  0.100E+01*SUN;
+{ 23989} GHH5014+HV               =       G1H505Q +      GHO                                    :  0.100E+01*SUN;
+{ 23990} GHH5014+HV               =       G1H503s +      GHO                                    :  0.100E+01*SUN;
+{ 23991} G2H502X +GNO                =       G1H505Q +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 23992} G2H502X +GNO                =       GHN5033                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 23993} G2H502X +GHO2               =       GHH5014                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 23994} G2H502X +GNO3               =       G1H505Q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 23995} G2H502X +MEPERO             =  0.340G1H505Q + 0.330GHN503i + 0.330GHN505A                 : ARR( 0.565E-13,  -845., 0.0);
+{ 23996} G2H502X +PERO1              =  0.460G1H505Q + 0.270GHN503i + 0.270GHN505A                 : ARR( 0.434E-13,  -900., 0.0);
+{ 23997} G2H502X +PERO2              =  0.400G1H505Q + 0.300GHN503i + 0.300GHN505A                 : ARR( 0.162E-13, -1400., 0.0);
+{ 23998} G2H502X +PERO3              =  0.460G1H505Q + 0.270GHN503i + 0.270GHN505A                 : ARR( 0.488E-13, -1250., 0.0);
+{ 23999} G2H502X +PERO5              =  0.460G1H505Q + 0.270GHN503i + 0.270GHN505A                 : ARR( 0.183E-11,   450., 0.0);
+{ 24000} G2H502X +PERO6              =  0.300G1H505Q + 0.350GHN503i + 0.350GHN505A                 : ARR( 0.168E-13, -1300., 0.0);
+{ 24001} G2H502X +PERO9              =  0.650G1H505Q + 0.350GHN505A                                : ARR( 0.100E-10,     0., 0.0);
+{ 24002} GHH5015 +GHO                =       GHH502D +      GHO2                                   : ARR( 0.827E-11,     0., 0.0);
+{ 24003} GHH5015 +GHO                =       GHH5017 +      GHO                                    : ARR( 0.847E-10,     0., 0.0);
+{ 24004} GHH5015 +GHO                =       GHH502O +      GHO                                    : ARR( 0.424E-10,     0., 0.0);
+{ 24005} GHH5015 +GHO                =       G2H501B                                               : ARR( 0.391E-11,  -190., 0.0);
+{ 24006} GHH5015+HV               =       G1H5025 +      GHO                                    :  0.200E+01*SUN;
+{ 24007} GHH5015+HV               =       G1H505T +      GHO                                    :  0.100E+01*SUN;
+{ 24008} GHH5016 +GHO                =       GHH5017 +      GHO2                                   : ARR( 0.120E-10,     0., 0.0);
+{ 24009} GHH5016 +GHO                =       GHK500t +      GHO                                    : ARR( 0.482E-10,     0., 0.0);
+{ 24010} GHH5016 +GHO                =       GHK500f +      GHO                                    : ARR( 0.482E-10,     0., 0.0);
+{ 24011} GHH5016+HV               =       G1H505U +      GHO                                    :  0.100E+01*SUN;
+{ 24012} GHH5016+HV               =       G1H502D +      GHO                                    :  0.100E+01*SUN;
+{ 24013} GHH5017 +GHO                =       GHK500m +      GHO                                    : ARR( 0.274E-10,     0., 0.0);
+{ 24014} GHH5017 +GHO                =       GHK500l +      GHO                                    : ARR( 0.142E-09,     0., 0.0);
+{ 24015} GHH5017+HV               =       G3K2001 +      GHD3003 +      GHO                     :  0.100E+01*SUN;
+{ 24016} GHH5017+HV               =       G1H505W +      GHO                                    :  0.100E+01*SUN;
+{ 24017} GHH5017+HV               =       G1H502k +      GHO                                    :  0.100E+01*SUN;
+{ 24018} GHH5018 +GHO                =       GHH502P +      GHO2                                   : ARR( 0.109E-10,     0., 0.0);
+{ 24019} GHH5018 +GHO                =       GHD500c +      GHO                                    : ARR( 0.139E-09,     0., 0.0);
+{ 24020} GHH5018 +GHO                =       GHD500h +      GHO                                    : ARR( 0.267E-10,     0., 0.0);
+{ 24021} GHH5018 +GHO                =       G3H501A                                               : ARR( 0.221E-10,     0., 0.0);
+{ 24022} GHH5018 +GNO3               =       G3H501A +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 24023} GHH5018+HV               =       G1H502A +      GHO                                    :  0.100E+01*SUN;
+{ 24024} GHH5018+HV               =       G1H502U +      GHO                                    :  0.100E+01*SUN;
+{ 24025} GHH5018+HV               =       GHD400A +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 24026} G3H501A +GHO2               =  0.800GGH501Q + 0.200GAH501b + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 24027} G3H501A +GNO                =       GHD400A +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 24028} G3H501A +GNO2               =       GPH501a                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 24029} G3H501A +GNO3               =       GHD400A +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 24030} G3H501A +MEPERO             =  0.685GHD400A + 0.315GAH501b + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24031} G3H501A +PERO1              =  0.800GHD400A + 0.200GAH501b + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24032} G3H501A +PERO2              =  0.750GHD400A + 0.250GAH501b + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24033} G3H501A +PERO3              =  0.800GHD400A + 0.200GAH501b + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24034} G3H501A +PERO5              =  0.650GHD400A + 0.350GAH501b + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24035} G3H501A +PERO6              =  0.650GHD400A + 0.350GAH501b + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24036} G3H501A +PERO9              =       GHD400A +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 24037} GHH4009 +GHO                =       GHD400G +      GHO                                    : ARR( 0.139E-09,     0., 0.0);
+{ 24038} GHH4009 +GHO                =       GHD400M +      GHO                                    : ARR( 0.267E-10,     0., 0.0);
+{ 24039} GHH4009 +GHO                =       G3H400N                                               : ARR( 0.221E-10,     0., 0.0);
+{ 24040} GHH4009 +GNO3               =       G3H400N +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 24041} GHH4009+HV               =       G1H400S +      GHO                                    :  0.100E+01*SUN;
+{ 24042} GHH4009+HV               =       G1H400n +      GHO                                    :  0.100E+01*SUN;
+{ 24043} GHH4009+HV               =       GHD3003 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 24044} G3H400N +GHO2               =  0.800GGH400Y + 0.200GAH400a + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 24045} G3H400N +GNO                =       GHD3003 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 24046} G3H400N +GNO2               =       GPH400b                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 24047} G3H400N +GNO3               =       GHD3003 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 24048} G3H400N +MEPERO             =  0.685GHD3003 + 0.315GAH400a + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24049} G3H400N +PERO1              =  0.800GHD3003 + 0.200GAH400a + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24050} G3H400N +PERO2              =  0.750GHD3003 + 0.250GAH400a + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24051} G3H400N +PERO3              =  0.800GHD3003 + 0.200GAH400a + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24052} G3H400N +PERO5              =  0.650GHD3003 + 0.350GAH400a + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24053} G3H400N +PERO6              =  0.650GHD3003 + 0.350GAH400a + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24054} G3H400N +PERO9              =       GHD3003 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 24055} GHN503g +GHO                =       GHN5068 +      GHO2                                   : ARR( 0.828E-12,     0., 0.0);
+{ 24056} GHN503g +GHO                =       GHN505E +      GHO2                                   : ARR( 0.212E-11,     0., 0.0);
+{ 24057} GHN503g +GHO                =       GNN501r +      GHO                                    : ARR( 0.849E-11,     0., 0.0);
+{ 24058} GHN503g +GHO                =       G2N503j                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 24059} GHN503g+HV               =       G1H5027 +      GNO2                                   :  0.100E+01*SUN;
+{ 24060} GHN503g+HV               =       G1N504D +      GHO                                    :  0.100E+01*SUN;
+{ 24061} GHN503g+HV               =       G1H506Z +      GNO2                                   :  0.100E+01*SUN;
+{ 24062} G1H506Z                     =       GHK500e +      GNO2                                   : ARR( 0.800E+11,  4024., 0.0);
+{ 24063} G1H506Z                     =       GND4009 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{ 24064} GHH5019 +GHO                =       GHH502J +      GHO2                                   : ARR( 0.404E-11,     0., 0.0);
+{ 24065} GHH5019 +GHO                =       GHN503h +      GHO                                    : ARR( 0.414E-10,     0., 0.0);
+{ 24066} GHH5019 +GHO                =       GHH502Q +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 24067} GHH5019 +GHO                =       GHN503q +      GHO                                    : ARR( 0.828E-11,     0., 0.0);
+{ 24068} GHH5019 +GHO                =       G2H501C                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 24069} GHH5019 +GHO                =       G2H501m                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 24070} GHH5019+HV               =       G1H5027 +      GHO                                    :  0.100E+01*SUN;
+{ 24071} GHH5019+HV               =       G1H503g +      GHO                                    :  0.100E+01*SUN;
+{ 24072} GHH5019+HV               =       G1H506a +      GNO2                                   :  0.100E+01*SUN;
+{ 24073} G1H506a                     =       GHK500e +      GHO                                    : ARR( 0.800E+11,  1678., 0.0);
+{ 24074} GHN503h +GHO                =       GHN5069 +      GHO2                                   : ARR( 0.247E-11,     0., 0.0);
+{ 24075} GHN503h +GHO                =       GHN505F +      GHO2                                   : ARR( 0.634E-11,     0., 0.0);
+{ 24076} GHN503h +GHO                =       GNK500y +      GHO                                    : ARR( 0.264E-10,     0., 0.0);
+{ 24077} GHN503h +GHO                =       G2N5049                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 24078} GHN503h+HV               =       G3K2001 +      GHN3007 +      GHO2                    :  0.100E+01*SUN;
+{ 24079} GHN503h+HV               =       G1N504X +      GHO                                    :  0.100E+01*SUN;
+{ 24080} GHN503h+HV               =       G1H506b +      GNO2                                   :  0.100E+01*SUN;
+{ 24081} G1H506b +OXYGEN             =       GHD501G +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 24082} G1H506b                     =       GDK4006 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5636., 0.0);
+{ 24083} GHN503i +GHO                =       GNK5015 +      GHO                                    : ARR( 0.441E-10,     0., 0.0);
+{ 24084} GHN503i +GHO                =       GHN506A +      GHO2                                   : ARR( 0.430E-11,     0., 0.0);
+{ 24085} GHN503i +GHO                =       G2N503v                                               : ARR( 0.203E-11,  -190., 0.0);
+{ 24086} GHN503i+HV               =       G1H5028 +      GNO2                                   :  0.100E+01*SUN;
+{ 24087} GHN503i+HV               =       G1N504R +      GHO                                    :  0.100E+01*SUN;
+{ 24088} GHH501A +GHO                =       GHH502G +      GHO2                                   : ARR( 0.807E-11,     0., 0.0);
+{ 24089} GHH501A +GHO                =       GHK500e +      GHO                                    : ARR( 0.827E-10,     0., 0.0);
+{ 24090} GHH501A +GHO                =       GHH502O +      GHO2                                   : ARR( 0.103E-10,     0., 0.0);
+{ 24091} GHH501A +GHO                =       G2H501D                                               : ARR( 0.381E-11,  -190., 0.0);
+{ 24092} GHH501A+HV               =       G1H5028 +      GHO                                    :  0.200E+01*SUN;
+{ 24093} GHO500T +GHO                =       GHD501C +      GHO2                                   : ARR( 0.426E-11,     0., 0.0);
+{ 24094} GHO500T +GHO                =       GHK500e +      GHO2                                   : ARR( 0.109E-10,     0., 0.0);
+{ 24095} GHO500T +GHO                =       GHK500t +      GHO2                                   : ARR( 0.109E-10,     0., 0.0);
+{ 24096} GHO500T +GHO                =       GKO500L +      GHO                                    : ARR( 0.437E-10,     0., 0.0);
+{ 24097} GHO500T +GHO                =       GHD500b +      GHO2                                   : ARR( 0.426E-11,     0., 0.0);
+{ 24098} GHO500T+HV               =       G1O500Y +      GHO                                    :  0.100E+01*SUN;
+{ 24099} GHK500e +GHO                =       GKK500E +      GHO                                    : ARR( 0.147E-09,     0., 0.0);
+{ 24100} GHK500e+HV               =       G3K2001 +      GHD3003 +      GHO2                    :  0.100E+01*SUN;
+{ 24101} GHK500e+HV               =       G1K500k +      GHO                                    :  0.100E+01*SUN;
+{ 24102} GHD400C +GHO                =       G3H400O                                               : ARR( 0.219E-10,     0., 0.0);
+{ 24103} GHD400C +GHO                =       GDD4002 +      GHO                                    : ARR( 0.838E-10,     0., 0.0);
+{ 24104} GHD400C +GHO                =       G3H400P                                               : ARR( 0.219E-10,     0., 0.0);
+{ 24105} GHD400C +GNO3               =       G3H400O +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 24106} GHD400C +GNO3               =       G3H400P +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 24107} GHD400C+HV               =       GCO     +      G2H300A +      GHO2                    :  0.100E+01*SUN;
+{ 24108} GHD400C+HV               =       G1D4007 +      GHO                                    :  0.100E+01*SUN;
+{ 24109} GHD400C+HV               =       GDD3000 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 24110} G3H400O +GHO2               =  0.800GGH400Q + 0.200GAH400T + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 24111} G3H400O +GNO                =       G2H300A +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 24112} G3H400O +GNO2               =       GPH400T                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 24113} G3H400O +GNO3               =       G2H300A +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 24114} G3H400O +MEPERO             =  0.685G2H300A + 0.315GAH400T + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 24115} G3H400O +PERO1              =  0.800G2H300A + 0.200GAH400T + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 24116} G3H400O +PERO2              =  0.750G2H300A + 0.250GAH400T + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 24117} G3H400O +PERO3              =  0.800G2H300A + 0.200GAH400T + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 24118} G3H400O +PERO5              =  0.650G2H300A + 0.350GAH400T + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 24119} G3H400O +PERO6              =  0.650G2H300A + 0.350GAH400T + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 24120} G3H400O +PERO9              =       G2H300A +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 24121} G3H400P +GHO2               =  0.800GGH400R + 0.200GAH400Q + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 24122} G3H400P +GNO                =       GDD3000 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 24123} G3H400P +GNO2               =       GPH400U                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 24124} G3H400P +GNO3               =       GDD3000 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 24125} G3H400P +MEPERO             =  0.685GDD3000 + 0.315GAH400Q + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24126} G3H400P +PERO1              =  0.800GDD3000 + 0.200GAH400Q + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24127} G3H400P +PERO2              =  0.750GDD3000 + 0.250GAH400Q + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24128} G3H400P +PERO3              =  0.800GDD3000 + 0.200GAH400Q + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24129} G3H400P +PERO5              =  0.650GDD3000 + 0.350GAH400Q + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24130} G3H400P +PERO6              =  0.650GDD3000 + 0.350GAH400Q + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24131} G3H400P +PERO9              =       GDD3000 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 24132} GHD500b +GHO                =       GHD501G +      GHO2                                   : ARR( 0.112E-10,     0., 0.0);
+{ 24133} GHD500b +GHO                =       GHD500c +      GHO2                                   : ARR( 0.356E-10,     0., 0.0);
+{ 24134} GHD500b +GHO                =       GDK500N +      GHO                                    : ARR( 0.274E-10,     0., 0.0);
+{ 24135} GHD500b +GHO                =       G3H501B                                               : ARR( 0.227E-10,     0., 0.0);
+{ 24136} GHD500b +GNO3               =       G3H501B +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 24137} GHD500b+HV               =       G1D500P +      GHO                                    :  0.100E+01*SUN;
+{ 24138} GHD500b+HV               =       GDO4006 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 24139} G3H501B +GHO2               =  0.800GGH501R + 0.200GAH501c + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 24140} G3H501B +GNO                =       GDO4006 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 24141} G3H501B +GNO2               =       GPH501b                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 24142} G3H501B +GNO3               =       GDO4006 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 24143} G3H501B +MEPERO             =  0.685GDO4006 + 0.315GAH501c + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24144} G3H501B +PERO1              =  0.800GDO4006 + 0.200GAH501c + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24145} G3H501B +PERO2              =  0.750GDO4006 + 0.250GAH501c + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24146} G3H501B +PERO3              =  0.800GDO4006 + 0.200GAH501c + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24147} G3H501B +PERO5              =  0.650GDO4006 + 0.350GAH501c + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24148} G3H501B +PERO6              =  0.650GDO4006 + 0.350GAH501c + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24149} G3H501B +PERO9              =       GDO4006 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 24150} GHD500c +GHO                =       GHD501F +      GHO2                                   : ARR( 0.132E-10,     0., 0.0);
+{ 24151} GHD500c +GHO                =       GHD501H +      GHO2                                   : ARR( 0.653E-11,     0., 0.0);
+{ 24152} GHD500c +GHO                =       GDK500b +      GHO                                    : ARR( 0.159E-10,     0., 0.0);
+{ 24153} GHD500c +GHO                =       G3H501C                                               : ARR( 0.684E-10,     0., 0.0);
+{ 24154} GHD500c +GNO3               =       G3H501C +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 24155} GHD500c+HV               =       G3K3003 +      GDD2000 +      GHO                     :  0.100E+01*SUN;
+{ 24156} GHD500c+HV               =       G1D500z +      GHO                                    :  0.100E+01*SUN;
+{ 24157} GHD500c+HV               =       GDK4007 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 24158} G3H501C +GHO2               =  0.800GGH501S + 0.200GAH501d + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 24159} G3H501C +GNO                =       GDK4007 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 24160} G3H501C +GNO2               =       GPH501c                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 24161} G3H501C +GNO3               =       GDK4007 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 24162} G3H501C +MEPERO             =  0.685GDK4007 + 0.315GAH501d + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24163} G3H501C +PERO1              =  0.800GDK4007 + 0.200GAH501d + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24164} G3H501C +PERO2              =  0.750GDK4007 + 0.250GAH501d + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24165} G3H501C +PERO3              =  0.800GDK4007 + 0.200GAH501d + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24166} G3H501C +PERO5              =  0.650GDK4007 + 0.350GAH501d + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24167} G3H501C +PERO6              =  0.650GDK4007 + 0.350GAH501d + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24168} G3H501C +PERO9              =       GDK4007 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 24169} G1D500z                     =       G3K3003 +      GDD2000                                : ARR( 0.200E+15,  4916., 0.0);
+{ 24170} GGH500A +GHO                =       GGH501M +      GHO2                                   : ARR( 0.417E-11,     0., 0.0);
+{ 24171} GGH500A +GHO                =       GGH501P +      GHO2                                   : ARR( 0.107E-10,     0., 0.0);
+{ 24172} GGH500A +GHO                =       GGK5006 +      GHO                                    : ARR( 0.260E-10,     0., 0.0);
+{ 24173} GGH500A +GHO                =       G2G500A                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 24174} GGH500A +GHO                =       G3H5008                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 24175} GGH500A+HV               =       G1G500C +      GHO                                    :  0.100E+01*SUN;
+{ 24176} GGH500A+HV               =       GDO4002 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 24177} GAH500A +GHO                =       GAH501X +      GHO2                                   : ARR( 0.426E-11,     0., 0.0);
+{ 24178} GAH500A +GHO                =       GAH501a +      GHO2                                   : ARR( 0.109E-10,     0., 0.0);
+{ 24179} GAH500A +GHO                =       GAK5006 +      GHO                                    : ARR( 0.197E-10,     0., 0.0);
+{ 24180} GAH500A +GHO                =       G2A500B                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 24181} GAH500A+HV               =       G1A500D +      GHO                                    :  0.100E+01*SUN;
+{ 24182} GPH500A                     =       G3H5008 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 24183} GPH500A +GHO                =       GPH501Y +      GHO2                                   : ARR( 0.418E-11,     0., 0.0);
+{ 24184} GPH500A +GHO                =       GPH501Z +      GHO2                                   : ARR( 0.107E-10,     0., 0.0);
+{ 24185} GPH500A +GHO                =       GPK5006 +      GHO                                    : ARR( 0.261E-10,     0., 0.0);
+{ 24186} GPH500A +GHO                =       G2P500B                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 24187} GPH500A+HV               =       G1P500D +      GHO                                    :  0.100E+01*SUN;
+{ 24188} GPH500A+HV               =       G3H5008 +      GNO2                                   :  0.100E+01*SUN;
+{ 24189} GGH4006 +GHO                =       GGH400Q +      GHO2                                   : ARR( 0.410E-11,     0., 0.0);
+{ 24190} GGH4006 +GHO                =       GGK4003 +      GHO                                    : ARR( 0.420E-10,     0., 0.0);
+{ 24191} GGH4006 +GHO                =       G2G4006                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 24192} GGH4006 +GHO                =       G3H4003                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 24193} GGH4006+HV               =       G1G4008 +      GHO                                    :  0.100E+01*SUN;
+{ 24194} GGH4006+HV               =       G2H3004 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 24195} GAH4007 +GHO                =       GAH400T +      GHO2                                   : ARR( 0.413E-11,     0., 0.0);
+{ 24196} GAH4007 +GHO                =       GAK4003 +      GHO                                    : ARR( 0.423E-10,     0., 0.0);
+{ 24197} GAH4007 +GHO                =       G2A4007                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 24198} GAH4007+HV               =       G1A4008 +      GHO                                    :  0.100E+01*SUN;
+{ 24199} GPH4007                     =       G3H4003 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 24200} GPH4007 +GHO                =       GPH400T +      GHO2                                   : ARR( 0.410E-11,     0., 0.0);
+{ 24201} GPH4007 +GHO                =       GPK4003 +      GHO                                    : ARR( 0.421E-10,     0., 0.0);
+{ 24202} GPH4007 +GHO                =       G2P4007                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 24203} GPH4007+HV               =       G1P4008 +      GHO                                    :  0.100E+01*SUN;
+{ 24204} GPH4007+HV               =       G3H4003 +      GNO2                                   :  0.100E+01*SUN;
+{ 24205} GHN503j +GHO                =       GNK5018 +      GHO                                    : ARR( 0.867E-11,     0., 0.0);
+{ 24206} GHN503j +GHO                =       GHN504E +      GHO2                                   : ARR( 0.108E-10,     0., 0.0);
+{ 24207} GHN503j +GHO                =       GHN506B +      GHO2                                   : ARR( 0.423E-11,     0., 0.0);
+{ 24208} GHN503j +GHO                =       G2N504v                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 24209} GHN503j+HV               =       G1H502D +      GNO2                                   :  0.100E+01*SUN;
+{ 24210} GHN503j+HV               =       G1N505W +      GHO                                    :  0.100E+01*SUN;
+{ 24211} G2N504v +GNO                =       G1N505W +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 24212} G2N504v +GNO                =       GNN502B                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 24213} G2N504v +GHO2               =       GHN503j                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 24214} G2N504v +GNO3               =       G1N505W +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 24215} G2N504v +MEPERO             =  0.340G1N505W + 0.330GNO500b + 0.330GNK5018                 : ARR( 0.565E-13,  -845., 0.0);
+{ 24216} G2N504v +PERO1              =  0.460G1N505W + 0.270GNO500b + 0.270GNK5018                 : ARR( 0.434E-13,  -900., 0.0);
+{ 24217} G2N504v +PERO2              =  0.400G1N505W + 0.300GNO500b + 0.300GNK5018                 : ARR( 0.162E-13, -1400., 0.0);
+{ 24218} G2N504v +PERO3              =  0.460G1N505W + 0.270GNO500b + 0.270GNK5018                 : ARR( 0.488E-13, -1250., 0.0);
+{ 24219} G2N504v +PERO5              =  0.460G1N505W + 0.270GNO500b + 0.270GNK5018                 : ARR( 0.183E-11,   450., 0.0);
+{ 24220} G2N504v +PERO6              =  0.300G1N505W + 0.350GNO500b + 0.350GNK5018                 : ARR( 0.168E-13, -1300., 0.0);
+{ 24221} G2N504v +PERO9              =  0.650G1N505W + 0.350GNK5018                                : ARR( 0.100E-10,     0., 0.0);
+{ 24222} GHO500U +GHO                =       GHD500H +      GHO2                                   : ARR( 0.852E-11,     0., 0.0);
+{ 24223} GHO500U +GHO                =       GHK500f +      GHO2                                   : ARR( 0.218E-10,     0., 0.0);
+{ 24224} GHO500U +GHO                =       GKO500M +      GHO                                    : ARR( 0.437E-10,     0., 0.0);
+{ 24225} GHO500U+HV               =       G1O500c +      GHO                                    :  0.100E+01*SUN;
+{ 24226} G1O500c                     =       GDO2000 +      GDO3002 +      GHO2                    : ARR( 0.400E+15,  3575., 0.0);
+{ 24227} GHK500f +GHO                =       GHD500x +      GHO2                                   : ARR( 0.420E-11,     0., 0.0);
+{ 24228} GHK500f +GHO                =       GHK500l +      GHO2                                   : ARR( 0.341E-10,     0., 0.0);
+{ 24229} GHK500f +GHO                =       GKK500G +      GHO                                    : ARR( 0.262E-10,     0., 0.0);
+{ 24230} GHK500f +GHO                =       G2K500m                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 24231} GHK500f+HV               =       G1K5012 +      GHO                                    :  0.100E+01*SUN;
+{ 24232} GHK500f+HV               =       G3H400C +      GCH2O   +      GHO2                    :  0.100E+01*SUN;
+{ 24233} G2K500m +GNO                =       G1K5012 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 24234} G2K500m +GNO                =       GNK5017                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 24235} G2K500m +GHO2               =       GHK500f                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 24236} G2K500m +GNO3               =       G1K5012 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 24237} G2K500m +MEPERO             =  0.340G1K5012 + 0.330GKO500L + 0.330GKK500G                 : ARR( 0.565E-13,  -845., 0.0);
+{ 24238} G2K500m +PERO1              =  0.460G1K5012 + 0.270GKO500L + 0.270GKK500G                 : ARR( 0.434E-13,  -900., 0.0);
+{ 24239} G2K500m +PERO2              =  0.400G1K5012 + 0.300GKO500L + 0.300GKK500G                 : ARR( 0.162E-13, -1400., 0.0);
+{ 24240} G2K500m +PERO3              =  0.460G1K5012 + 0.270GKO500L + 0.270GKK500G                 : ARR( 0.488E-13, -1250., 0.0);
+{ 24241} G2K500m +PERO5              =  0.460G1K5012 + 0.270GKO500L + 0.270GKK500G                 : ARR( 0.183E-11,   450., 0.0);
+{ 24242} G2K500m +PERO6              =  0.300G1K5012 + 0.350GKO500L + 0.350GKK500G                 : ARR( 0.168E-13, -1300., 0.0);
+{ 24243} G2K500m +PERO9              =  0.650G1K5012 + 0.350GKK500G                                : ARR( 0.100E-10,     0., 0.0);
+{ 24244} G1K5012                     =       GDO3002 +      G3K2001                                : ARR( 0.200E+15,  3009., 0.0);
+{ 24245} GHN503k +GHO                =       GHN504v +      GHO2                                   : ARR( 0.419E-11,     0., 0.0);
+{ 24246} GHN503k +GHO                =       GNK500t +      GHO                                    : ARR( 0.430E-10,     0., 0.0);
+{ 24247} GHN503k +GHO                =       GHN503l +      GHO2                                   : ARR( 0.107E-10,     0., 0.0);
+{ 24248} GHN503k +GHO                =       G2N502q                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 24249} GHN503k+HV               =       G1N503C +      GHO                                    :  0.100E+01*SUN;
+{ 24250} GHN503k+HV               =       G1H506c +      GNO2                                   :  0.100E+01*SUN;
+{ 24251} G1H506c                     =       GKO500L +      GHO                                    : ARR( 0.800E+11,  1678., 0.0);
+{ 24252} G1H506c                     =       GHD4009 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 24253} GNO500b +GHO                =       GND501P +      GHO2                                   : ARR( 0.438E-11,     0., 0.0);
+{ 24254} GNO500b +GHO                =       GNK5015 +      GHO2                                   : ARR( 0.112E-10,     0., 0.0);
+{ 24255} GNO500b +GHO                =       GNK5018 +      GHO2                                   : ARR( 0.225E-11,     0., 0.0);
+{ 24256} GNO500b+HV               =       G1O500Y +      GNO2                                   :  0.100E+01*SUN;
+{ 24257} GOO500D +GHO                =       GDO500A +      GHO2                                   : ARR( 0.819E-11,     0., 0.0);
+{ 24258} GOO500D +GHO                =       GKO500L +      GHO2                                   : ARR( 0.210E-10,     0., 0.0);
+{ 24259} GOO500D +GHO                =       GKO500M +      GHO2                                   : ARR( 0.105E-10,     0., 0.0);
+{ 24260} GKO500L +GHO                =       GDK500X +      GHO2                                   : ARR( 0.407E-11,     0., 0.0);
+{ 24261} GKO500L +GHO                =       GKK500E +      GHO2                                   : ARR( 0.331E-10,     0., 0.0);
+{ 24262} GKO500L +GHO                =       GKK500G +      GHO2                                   : ARR( 0.636E-11,     0., 0.0);
+{ 24263} GKO500L +GHO                =       GDK500N +      GHO2                                   : ARR( 0.248E-11,     0., 0.0);
+{ 24264} GKO500L+HV               =       G3K400B +      GCH2O   +      GHO2                    :  0.100E+01*SUN;
+{ 24265} GHN503l +GHO                =       GHN504w +      GHO2                                   : ARR( 0.133E-10,     0., 0.0);
+{ 24266} GHN503l +GHO                =       GNK500u +      GHO                                    : ARR( 0.261E-10,     0., 0.0);
+{ 24267} GHN503l +GHO                =       G2N502r                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 24268} GHN503l+HV               =       G1N503D +      GHO                                    :  0.100E+01*SUN;
+{ 24269} GHN503l+HV               =       G3H3004 +      GND2000 +      GHO2                    :  0.100E+01*SUN;
+{ 24270} GHN503l+HV               =       G1H506d +      GNO2                                   :  0.100E+01*SUN;
+{ 24271} G1H506d                     =       GHD400M +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4576., 0.0);
+{ 24272} GHN503m +GHO                =       GND500k +      GHO                                    : ARR( 0.847E-10,     0., 0.0);
+{ 24273} GHN503m +GHO                =       G3H501D                                               : ARR( 0.221E-10,     0., 0.0);
+{ 24274} GHN503m +GNO3               =       G3H501D +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 24275} GHN503m+HV               =       G1H506e +      GNO2                                   :  0.100E+01*SUN;
+{ 24276} GHN503m+HV               =       G3N2000 +      GDD3000 +      GHO                     :  0.100E+01*SUN;
+{ 24277} GHN503m+HV               =       G1N503E +      GHO                                    :  0.100E+01*SUN;
+{ 24278} GHN503m+HV               =       G2H400n +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 24279} G3H501D +GHO2               =  0.800GGH501T + 0.200GAH501M + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 24280} G3H501D +GNO                =       G2H400n +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 24281} G3H501D +GNO2               =       GPH501K                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 24282} G3H501D +GNO3               =       G2H400n +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 24283} G3H501D +MEPERO             =  0.685G2H400n + 0.315GAH501M + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 24284} G3H501D +PERO1              =  0.800G2H400n + 0.200GAH501M + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 24285} G3H501D +PERO2              =  0.750G2H400n + 0.250GAH501M + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 24286} G3H501D +PERO3              =  0.800G2H400n + 0.200GAH501M + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 24287} G3H501D +PERO5              =  0.650G2H400n + 0.350GAH501M + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 24288} G3H501D +PERO6              =  0.650G2H400n + 0.350GAH501M + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 24289} G3H501D +PERO9              =       G2H400n +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 24290} G1H506e                     =       G3H400P +      GCH2O                                  : ARR( 0.200E+15,  3603., 0.0);
+{ 24291} G2H400n +GNO                =       G1H400v +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 24292} G2H400n +GNO                =       GHN4011                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 24293} G2H400n +GHO2               =       GHH400k                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 24294} G2H400n +GNO3               =       G1H400v +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 24295} G2H400n +MEPERO             =  0.480G1H400v + 0.260GHN400u + 0.260GHN400R                 : ARR( 0.164E-12,  -795., 0.0);
+{ 24296} G2H400n +PERO1              =  0.600G1H400v + 0.200GHN400u + 0.200GHN400R                 : ARR( 0.126E-12,  -850., 0.0);
+{ 24297} G2H400n +PERO2              =  0.560G1H400v + 0.220GHN400u + 0.220GHN400R                 : ARR( 0.471E-13, -1350., 0.0);
+{ 24298} G2H400n +PERO3              =  0.600G1H400v + 0.200GHN400u + 0.200GHN400R                 : ARR( 0.142E-12, -1200., 0.0);
+{ 24299} G2H400n +PERO5              =  0.600G1H400v + 0.200GHN400u + 0.200GHN400R                 : ARR( 0.533E-11,   500., 0.0);
+{ 24300} G2H400n +PERO6              =  0.460G1H400v + 0.270GHN400u + 0.270GHN400R                 : ARR( 0.488E-13, -1250., 0.0);
+{ 24301} G2H400n +PERO9              =  0.800G1H400v + 0.200GHN400R                                : ARR( 0.100E-10,     0., 0.0);
+{ 24302} G1H400v +OXYGEN             =       GHN400R +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 24303} G1H400v                     =       GND3003 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5784., 0.0);
+{ 24304} GND500n +GHO                =       GND500k +      GHO2                                   : ARR( 0.200E-10,     0., 0.0);
+{ 24305} GND500n +GHO                =       G2N504w                                               : ARR( 0.274E-11,     0., 0.0);
+{ 24306} GND500n +GHO                =       G3N5016                                               : ARR( 0.209E-10,     0., 0.0);
+{ 24307} GND500n +GNO3               =       G3N5016 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 24308} GND500n+HV               =       G1D5011 +      GNO2                                   :  0.100E+01*SUN;
+{ 24309} GND500n+HV               =       G3N2000 +      GDD3000 +      GHO2                    :  0.100E+01*SUN;
+{ 24310} GND500n+HV               =       G2N400g +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 24311} G2N504w +GNO                =       G1N505v +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 24312} G2N504w +GNO                =       GNN5035                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 24313} G2N504w +GHO2               =       GHN506C                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 24314} G2N504w +GNO3               =       G1N505v +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 24315} G2N504w +MEPERO             =  0.340G1N505v + 0.330GND501Q + 0.330GND501R                 : ARR( 0.565E-13,  -845., 0.0);
+{ 24316} G2N504w +PERO1              =  0.460G1N505v + 0.270GND501Q + 0.270GND501R                 : ARR( 0.434E-13,  -900., 0.0);
+{ 24317} G2N504w +PERO2              =  0.400G1N505v + 0.300GND501Q + 0.300GND501R                 : ARR( 0.162E-13, -1400., 0.0);
+{ 24318} G2N504w +PERO3              =  0.460G1N505v + 0.270GND501Q + 0.270GND501R                 : ARR( 0.488E-13, -1250., 0.0);
+{ 24319} G2N504w +PERO5              =  0.460G1N505v + 0.270GND501Q + 0.270GND501R                 : ARR( 0.183E-11,   450., 0.0);
+{ 24320} G2N504w +PERO6              =  0.300G1N505v + 0.350GND501Q + 0.350GND501R                 : ARR( 0.168E-13, -1300., 0.0);
+{ 24321} G2N504w +PERO9              =  0.650G1N505v + 0.350GND501R                                : ARR( 0.100E-10,     0., 0.0);
+{ 24322} G3N5016 +GHO2               =  0.800GGN501L + 0.200GAN501G + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 24323} G3N5016 +GNO                =       G2N400g +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 24324} G3N5016 +GNO2               =       GPN501H                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 24325} G3N5016 +GNO3               =       G2N400g +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 24326} G3N5016 +MEPERO             =  0.685G2N400g + 0.315GAN501G + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 24327} G3N5016 +PERO1              =  0.800G2N400g + 0.200GAN501G + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 24328} G3N5016 +PERO2              =  0.750G2N400g + 0.250GAN501G + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 24329} G3N5016 +PERO3              =  0.800G2N400g + 0.200GAN501G + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 24330} G3N5016 +PERO5              =  0.650G2N400g + 0.350GAN501G + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 24331} G3N5016 +PERO6              =  0.650G2N400g + 0.350GAN501G + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 24332} G3N5016 +PERO9              =       G2N400g +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 24333} G1D5011                     =       G3D4002 +      GCH2O                                  : ARR( 0.200E+15,  3603., 0.0);
+{ 24334} G1N505v                     =       GND3003 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  5180., 0.0);
+{ 24335} G1N505v                     =       GND400E +      GCO     +      GHO2                    : ARR( 0.200E+15,  4861., 0.0);
+{ 24336} GHN503n +GHO                =       GND500g +      GHO                                    : ARR( 0.847E-10,     0., 0.0);
+{ 24337} GHN503n +GHO                =       G3H501E                                               : ARR( 0.221E-10,     0., 0.0);
+{ 24338} GHN503n +GNO3               =       G3H501E +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 24339} GHN503n+HV               =       G1H506f +      GNO2                                   :  0.100E+01*SUN;
+{ 24340} GHN503n+HV               =       G3N2000 +      G2H300A                                :  0.100E+01*SUN;
+{ 24341} GHN503n+HV               =       G1N503F +      GHO                                    :  0.100E+01*SUN;
+{ 24342} GHN503n+HV               =       GND4004 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 24343} G3H501E +GHO2               =  0.800GGH501U + 0.200GAH501L + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 24344} G3H501E +GNO                =       GND4004 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 24345} G3H501E +GNO2               =       GPH501L                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 24346} G3H501E +GNO3               =       GND4004 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 24347} G3H501E +MEPERO             =  0.685GND4004 + 0.315GAH501L + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24348} G3H501E +PERO1              =  0.800GND4004 + 0.200GAH501L + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24349} G3H501E +PERO2              =  0.750GND4004 + 0.250GAH501L + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24350} G3H501E +PERO3              =  0.800GND4004 + 0.200GAH501L + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24351} G3H501E +PERO5              =  0.650GND4004 + 0.350GAH501L + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24352} G3H501E +PERO6              =  0.650GND4004 + 0.350GAH501L + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24353} G3H501E +PERO9              =       GND4004 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 24354} G1H506f                     =       G3H400O +      GCH2O                                  : ARR( 0.200E+15,  3576., 0.0);
+{ 24355} GND500o +GHO                =       G2N504x                                               : ARR( 0.274E-11,     0., 0.0);
+{ 24356} GND500o +GHO                =       GND500g +      GHO2                                   : ARR( 0.200E-10,     0., 0.0);
+{ 24357} GND500o +GHO                =       G3N5017                                               : ARR( 0.209E-10,     0., 0.0);
+{ 24358} GND500o +GNO3               =       G3N5017 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 24359} GND500o+HV               =       G1D5012 +      GNO2                                   :  0.100E+01*SUN;
+{ 24360} GND500o+HV               =       G3N2000 +      G2D3003                                :  0.100E+01*SUN;
+{ 24361} GND500o+HV               =       GND4004 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 24362} G2N504x +GNO                =       G1N505w +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 24363} G2N504x +GNO                =       GNN503B                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 24364} G2N504x +GHO2               =       GHN506D                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 24365} G2N504x +GNO3               =       G1N505w +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 24366} G2N504x +MEPERO             =  0.340G1N505w + 0.330GND501Q + 0.330GND501K                 : ARR( 0.565E-13,  -845., 0.0);
+{ 24367} G2N504x +PERO1              =  0.460G1N505w + 0.270GND501Q + 0.270GND501K                 : ARR( 0.434E-13,  -900., 0.0);
+{ 24368} G2N504x +PERO2              =  0.400G1N505w + 0.300GND501Q + 0.300GND501K                 : ARR( 0.162E-13, -1400., 0.0);
+{ 24369} G2N504x +PERO3              =  0.460G1N505w + 0.270GND501Q + 0.270GND501K                 : ARR( 0.488E-13, -1250., 0.0);
+{ 24370} G2N504x +PERO5              =  0.460G1N505w + 0.270GND501Q + 0.270GND501K                 : ARR( 0.183E-11,   450., 0.0);
+{ 24371} G2N504x +PERO6              =  0.300G1N505w + 0.350GND501Q + 0.350GND501K                 : ARR( 0.168E-13, -1300., 0.0);
+{ 24372} G2N504x +PERO9              =  0.650G1N505w + 0.350GND501K                                : ARR( 0.100E-10,     0., 0.0);
+{ 24373} G3N5017 +GHO2               =  0.800GGN501M + 0.200GAN501F + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 24374} G3N5017 +GNO                =       GND4004 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 24375} G3N5017 +GNO2               =       GPN501J                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 24376} G3N5017 +GNO3               =       GND4004 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 24377} G3N5017 +MEPERO             =  0.685GND4004 + 0.315GAN501F + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24378} G3N5017 +PERO1              =  0.800GND4004 + 0.200GAN501F + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24379} G3N5017 +PERO2              =  0.750GND4004 + 0.250GAN501F + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24380} G3N5017 +PERO3              =  0.800GND4004 + 0.200GAN501F + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24381} G3N5017 +PERO5              =  0.650GND4004 + 0.350GAN501F + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24382} G3N5017 +PERO6              =  0.650GND4004 + 0.350GAN501F + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24383} G3N5017 +PERO9              =       GND4004 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 24384} G1D5012                     =       G3D4001 +      GCH2O                                  : ARR( 0.200E+15,  3576., 0.0);
+{ 24385} G1N505w                     =       G3N2000 +      GDD3001                                : ARR( 0.200E+15,  2059., 0.0);
+{ 24386} GGN500I +GHO                =       G2G500x                                               : ARR( 0.865E-12,     0., 0.0);
+{ 24387} GGN500I +GHO                =       G2G500y                                               : ARR( 0.274E-11,     0., 0.0);
+{ 24388} GGN500I +GHO                =       G3N500E                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 24389} GGN500I+HV               =       G1G501A +      GNO2                                   :  0.100E+01*SUN;
+{ 24390} GGN500I+HV               =       G3N2000 +      G2G3000                                :  0.100E+01*SUN;
+{ 24391} GGN500I+HV               =       G2N400J +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 24392} G2G500x +GNO                =       G1G501B +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 24393} G2G500x +GNO                =       GGN501C                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 24394} G2G500x +GHO2               =       GGH501T                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 24395} G2G500x +GNO3               =       G1G501B +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 24396} G2G500x +MEPERO             =  0.340G1G501B + 0.330GGN501L + 0.330GGN501G                 : ARR( 0.565E-13,  -845., 0.0);
+{ 24397} G2G500x +PERO1              =  0.460G1G501B + 0.270GGN501L + 0.270GGN501G                 : ARR( 0.434E-13,  -900., 0.0);
+{ 24398} G2G500x +PERO2              =  0.400G1G501B + 0.300GGN501L + 0.300GGN501G                 : ARR( 0.162E-13, -1400., 0.0);
+{ 24399} G2G500x +PERO3              =  0.460G1G501B + 0.270GGN501L + 0.270GGN501G                 : ARR( 0.488E-13, -1250., 0.0);
+{ 24400} G2G500x +PERO5              =  0.460G1G501B + 0.270GGN501L + 0.270GGN501G                 : ARR( 0.183E-11,   450., 0.0);
+{ 24401} G2G500x +PERO6              =  0.300G1G501B + 0.350GGN501L + 0.350GGN501G                 : ARR( 0.168E-13, -1300., 0.0);
+{ 24402} G2G500x +PERO9              =  0.650G1G501B + 0.350GGN501G                                : ARR( 0.100E-10,     0., 0.0);
+{ 24403} G2G500y +GNO                =       G1G501C +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 24404} G2G500y +GNO                =       GGN500y                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 24405} G2G500y +GHO2               =       GGH501U                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 24406} G2G500y +GNO3               =       G1G501C +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 24407} G2G500y +MEPERO             =  0.340G1G501C + 0.330GGN501M + 0.330GGN5013                 : ARR( 0.565E-13,  -845., 0.0);
+{ 24408} G2G500y +PERO1              =  0.460G1G501C + 0.270GGN501M + 0.270GGN5013                 : ARR( 0.434E-13,  -900., 0.0);
+{ 24409} G2G500y +PERO2              =  0.400G1G501C + 0.300GGN501M + 0.300GGN5013                 : ARR( 0.162E-13, -1400., 0.0);
+{ 24410} G2G500y +PERO3              =  0.460G1G501C + 0.270GGN501M + 0.270GGN5013                 : ARR( 0.488E-13, -1250., 0.0);
+{ 24411} G2G500y +PERO5              =  0.460G1G501C + 0.270GGN501M + 0.270GGN5013                 : ARR( 0.183E-11,   450., 0.0);
+{ 24412} G2G500y +PERO6              =  0.300G1G501C + 0.350GGN501M + 0.350GGN5013                 : ARR( 0.168E-13, -1300., 0.0);
+{ 24413} G2G500y +PERO9              =  0.650G1G501C + 0.350GGN5013                                : ARR( 0.100E-10,     0., 0.0);
+{ 24414} G1G501A                     =       G3G4000 +      GCH2O                                  : ARR( 0.200E+15,  3576., 0.0);
+{ 24415} G1G501B                     =       G3N2000 +      GGD3000                                : ARR( 0.200E+15,  2252., 0.0);
+{ 24416} G1G501C                     =       GND4004 +      GCO     +      GHO2                    : ARR( 0.200E+15,  4566., 0.0);
+{ 24417} GHN400Q +GHO                =       GND4004 +      GHO                                    : ARR( 0.518E-10,     0., 0.0);
+{ 24418} GHN400Q +GHO                =       G2N400J                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 24419} GHN400Q+HV               =       G1H400f +      GNO2                                   :  0.100E+01*SUN;
+{ 24420} GHN400Q+HV               =       G3N2000 +      G2H2000                                :  0.100E+01*SUN;
+{ 24421} GHN400Q+HV               =       G1N400K +      GHO                                    :  0.100E+01*SUN;
+{ 24422} GHN503o +GHO                =       GHN506E +      GHO2                                   : ARR( 0.247E-11,     0., 0.0);
+{ 24423} GHN503o +GHO                =       GNK500z +      GHO                                    : ARR( 0.154E-10,     0., 0.0);
+{ 24424} GHN503o +GHO                =       G2N502u                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 24425} GHN503o+HV               =       G3K2001 +      GND3003 +      GHO                     :  0.100E+01*SUN;
+{ 24426} GHN503o+HV               =       G1N503G +      GHO                                    :  0.100E+01*SUN;
+{ 24427} GHN503o+HV               =       G3H400Q +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{ 24428} GHN503o+HV               =       G1H506g +      GNO2                                   :  0.100E+01*SUN;
+{ 24429} G3H400Q +GHO2               =  0.800GGH400Z + 0.200GAH400b + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 24430} G3H400Q +GNO                =       GDK3001 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 24431} G3H400Q +GNO2               =       GPH400c                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 24432} G3H400Q +GNO3               =       GDK3001 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 24433} G3H400Q +MEPERO             =  0.685GDK3001 + 0.315GAH400b + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24434} G3H400Q +PERO1              =  0.800GDK3001 + 0.200GAH400b + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24435} G3H400Q +PERO2              =  0.750GDK3001 + 0.250GAH400b + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24436} G3H400Q +PERO3              =  0.800GDK3001 + 0.200GAH400b + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24437} G3H400Q +PERO5              =  0.650GDK3001 + 0.350GAH400b + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24438} G3H400Q +PERO6              =  0.650GDK3001 + 0.350GAH400b + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24439} G3H400Q +PERO9              =       GDK3001 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 24440} G1H506g                     =       G3H400Q +      GCH2O                                  : ARR( 0.200E+15,  4349., 0.0);
+{ 24441} GNK500y +GHO                =       GND501R +      GHO2                                   : ARR( 0.257E-11,     0., 0.0);
+{ 24442} GNK500y +GHO                =       GNK500z +      GHO2                                   : ARR( 0.402E-11,     0., 0.0);
+{ 24443} GNK500y+HV               =       G3K2001 +      GND3003 +      GHO2                    :  0.100E+01*SUN;
+{ 24444} GNK500y+HV               =       G3K400C +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{ 24445} GNK500y+HV               =       G1K5013 +      GNO2                                   :  0.100E+01*SUN;
+{ 24446} G1K5013                     =       G3K400C +      GCH2O                                  : ARR( 0.200E+15,  4349., 0.0);
+{ 24447} GNK500z +GHO                =       GND501J +      GHO2                                   : ARR( 0.248E-11,     0., 0.0);
+{ 24448} GNK500z +GHO                =       G1N505C                                               : ARR( 0.212E-17,    85., 2.0);
+{ 24449} GNK500z+HV               =       G3K2001 +      G3N2000 +      GCO                     :  0.100E+01*SUN;
+{ 24450} GNK500z+HV               =       G3K2001 +      G3N2000 +      GCO                     :  0.100E+01*SUN;
+{ 24451} GNK500z+HV               =       G1K5014 +      GNO2                                   :  0.100E+01*SUN;
+{ 24452} G1K5014                     =       G3K2001 +      GCH2O   + 2.000GCO                     : ARR( 0.200E+15,  3862., 0.0);
+{ 24453} GGK4003 +GHO                =       GGD4004 +      GHO2                                   : ARR( 0.250E-11,     0., 0.0);
+{ 24454} GGK4003 +GHO                =       G2G400J                                               : ARR( 0.537E-12,     0., 0.0);
+{ 24455} GGK4003 +GHO                =       G3K4007                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 24456} GGK4003+HV               =       G3K2001 +      G2G2000                                :  0.100E+01*SUN;
+{ 24457} GGK4003+HV               =       G2K3001 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 24458} G2G400J +GNO                =       G1G400T +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 24459} G2G400J +GNO                =       GGN400S                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 24460} G2G400J +GHO2               =       GGH400Z                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 24461} G2G400J +GNO3               =       G1G400T +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 24462} G2G400J +MEPERO             =  0.340G1G400T + 0.330GGK4008 + 0.330GGK4009                 : ARR( 0.565E-13,  -845., 0.0);
+{ 24463} G2G400J +PERO1              =  0.460G1G400T + 0.270GGK4008 + 0.270GGK4009                 : ARR( 0.434E-13,  -900., 0.0);
+{ 24464} G2G400J +PERO2              =  0.400G1G400T + 0.300GGK4008 + 0.300GGK4009                 : ARR( 0.162E-13, -1400., 0.0);
+{ 24465} G2G400J +PERO3              =  0.460G1G400T + 0.270GGK4008 + 0.270GGK4009                 : ARR( 0.488E-13, -1250., 0.0);
+{ 24466} G2G400J +PERO5              =  0.460G1G400T + 0.270GGK4008 + 0.270GGK4009                 : ARR( 0.183E-11,   450., 0.0);
+{ 24467} G2G400J +PERO6              =  0.300G1G400T + 0.350GGK4008 + 0.350GGK4009                 : ARR( 0.168E-13, -1300., 0.0);
+{ 24468} G2G400J +PERO9              =  0.650G1G400T + 0.350GGK4009                                : ARR( 0.100E-10,     0., 0.0);
+{ 24469} G1G400T                     =       G3K2001 +      GGD2000                                : ARR( 0.200E+15,  5396., 0.0);
+{ 24470} GAK4003 +GHO                =       GAD4003 +      GHO2                                   : ARR( 0.255E-11,     0., 0.0);
+{ 24471} GAK4003 +GHO                =       G2A400U                                               : ARR( 0.405E-12,     0., 0.0);
+{ 24472} GAK4003 +GHO                =       G2K3001 +      GCO2                                   : ARR( 0.542E-12,     0., 0.0);
+{ 24473} GAK4003+HV               =       G3K2001 +      G2A2000                                :  0.100E+01*SUN;
+{ 24474} G2A400U +GNO                =       G1A400b +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 24475} G2A400U +GNO                =       GAN400X                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 24476} G2A400U +GHO2               =       GAH400b                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 24477} G2A400U +GNO3               =       G1A400b +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 24478} G2A400U +MEPERO             =  0.340G1A400b + 0.330GAK4008 + 0.330GAK4009                 : ARR( 0.565E-13,  -845., 0.0);
+{ 24479} G2A400U +PERO1              =  0.460G1A400b + 0.270GAK4008 + 0.270GAK4009                 : ARR( 0.434E-13,  -900., 0.0);
+{ 24480} G2A400U +PERO2              =  0.400G1A400b + 0.300GAK4008 + 0.300GAK4009                 : ARR( 0.162E-13, -1400., 0.0);
+{ 24481} G2A400U +PERO3              =  0.460G1A400b + 0.270GAK4008 + 0.270GAK4009                 : ARR( 0.488E-13, -1250., 0.0);
+{ 24482} G2A400U +PERO5              =  0.460G1A400b + 0.270GAK4008 + 0.270GAK4009                 : ARR( 0.183E-11,   450., 0.0);
+{ 24483} G2A400U +PERO6              =  0.300G1A400b + 0.350GAK4008 + 0.350GAK4009                 : ARR( 0.168E-13, -1300., 0.0);
+{ 24484} G2A400U +PERO9              =  0.650G1A400b + 0.350GAK4009                                : ARR( 0.100E-10,     0., 0.0);
+{ 24485} G1A400b                     =       G3K2001 +      GAD2000                                : ARR( 0.200E+15,  5396., 0.0);
+{ 24486} GPK4003                     =       G3K4007 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 24487} GPK4003 +GHO                =       GPD4003 +      GHO2                                   : ARR( 0.257E-11,     0., 0.0);
+{ 24488} GPK4003 +GHO                =       G2P400X                                               : ARR( 0.550E-12,     0., 0.0);
+{ 24489} GPK4003+HV               =       G3K2001 +      G2P2000                                :  0.100E+01*SUN;
+{ 24490} GPK4003+HV               =       G3K4007 +      GNO2                                   :  0.100E+01*SUN;
+{ 24491} G2P400X +GNO                =       G1P400c +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 24492} G2P400X +GNO                =       GPN400Y                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 24493} G2P400X +GHO2               =       GPH400c                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 24494} G2P400X +GNO3               =       G1P400c +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 24495} G2P400X +MEPERO             =  0.340G1P400c + 0.330GPK4008 + 0.330GPK4009                 : ARR( 0.565E-13,  -845., 0.0);
+{ 24496} G2P400X +PERO1              =  0.460G1P400c + 0.270GPK4008 + 0.270GPK4009                 : ARR( 0.434E-13,  -900., 0.0);
+{ 24497} G2P400X +PERO2              =  0.400G1P400c + 0.300GPK4008 + 0.300GPK4009                 : ARR( 0.162E-13, -1400., 0.0);
+{ 24498} G2P400X +PERO3              =  0.460G1P400c + 0.270GPK4008 + 0.270GPK4009                 : ARR( 0.488E-13, -1250., 0.0);
+{ 24499} G2P400X +PERO5              =  0.460G1P400c + 0.270GPK4008 + 0.270GPK4009                 : ARR( 0.183E-11,   450., 0.0);
+{ 24500} G2P400X +PERO6              =  0.300G1P400c + 0.350GPK4008 + 0.350GPK4009                 : ARR( 0.168E-13, -1300., 0.0);
+{ 24501} G2P400X +PERO9              =  0.650G1P400c + 0.350GPK4009                                : ARR( 0.100E-10,     0., 0.0);
+{ 24502} G1P400c                     =       G3K2001 +      GPD2000                                : ARR( 0.200E+15,  5396., 0.0);
+{ 24503} GHH501B +GHO                =       GHN503o +      GHO                                    : ARR( 0.140E-09,     0., 0.0);
+{ 24504} GHH501B +GHO                =       GHN503r +      GHO                                    : ARR( 0.270E-10,     0., 0.0);
+{ 24505} GHH501B+HV               =       G1H502G +      GHO                                    :  0.100E+01*SUN;
+{ 24506} GHH501B+HV               =       G1H505Z +      GHO                                    :  0.100E+01*SUN;
+{ 24507} GHH501B+HV               =       G3H400N +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{ 24508} GHH501B+HV               =       G1H506h +      GNO2                                   :  0.100E+01*SUN;
+{ 24509} G1H506h                     =       G3H400N +      GCH2O                                  : ARR( 0.200E+15,  3603., 0.0);
+{ 24510} GHN503p +GHO                =       GHN506D +      GHO2                                   : ARR( 0.404E-11,     0., 0.0);
+{ 24511} GHN503p +GHO                =       GHN503o +      GHO2                                   : ARR( 0.328E-10,     0., 0.0);
+{ 24512} GHN503p +GHO                =       GNK5012 +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 24513} GHN503p +GHO                =       G2N504y                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 24514} GHN503p+HV               =       G1N505c +      GHO                                    :  0.100E+01*SUN;
+{ 24515} GHN503p+HV               =       G3H400C +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{ 24516} GHN503p+HV               =       G1H506i +      GNO2                                   :  0.100E+01*SUN;
+{ 24517} G2N504y +GNO                =       G1N505c +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 24518} G2N504y +GNO                =       GNN502E                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 24519} G2N504y +GHO2               =       GHN503p                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 24520} G2N504y +GNO3               =       G1N505c +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 24521} G2N504y +MEPERO             =  0.340G1N505c + 0.330GNK5011 + 0.330GNK5012                 : ARR( 0.565E-13,  -845., 0.0);
+{ 24522} G2N504y +PERO1              =  0.460G1N505c + 0.270GNK5011 + 0.270GNK5012                 : ARR( 0.434E-13,  -900., 0.0);
+{ 24523} G2N504y +PERO2              =  0.400G1N505c + 0.300GNK5011 + 0.300GNK5012                 : ARR( 0.162E-13, -1400., 0.0);
+{ 24524} G2N504y +PERO3              =  0.460G1N505c + 0.270GNK5011 + 0.270GNK5012                 : ARR( 0.488E-13, -1250., 0.0);
+{ 24525} G2N504y +PERO5              =  0.460G1N505c + 0.270GNK5011 + 0.270GNK5012                 : ARR( 0.183E-11,   450., 0.0);
+{ 24526} G2N504y +PERO6              =  0.300G1N505c + 0.350GNK5011 + 0.350GNK5012                 : ARR( 0.168E-13, -1300., 0.0);
+{ 24527} G2N504y +PERO9              =  0.650G1N505c + 0.350GNK5012                                : ARR( 0.100E-10,     0., 0.0);
+{ 24528} G1H506i                     =       G3H400C +      GCH2O                                  : ARR( 0.200E+15,  3603., 0.0);
+{ 24529} GGH4007 +GHO                =       GGH400R +      GHO2                                   : ARR( 0.419E-11,     0., 0.0);
+{ 24530} GGH4007 +GHO                =       GGK4004 +      GHO                                    : ARR( 0.262E-10,     0., 0.0);
+{ 24531} GGH4007 +GHO                =       G2G4007                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 24532} GGH4007 +GHO                =       G3H4004                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 24533} GGH4007+HV               =       G1G4009 +      GHO                                    :  0.100E+01*SUN;
+{ 24534} GGH4007+HV               =       GDO3000 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 24535} GAH4008 +GHO                =       GAH400Q +      GHO2                                   : ARR( 0.434E-11,     0., 0.0);
+{ 24536} GAH4008 +GHO                =       GAK4004 +      GHO                                    : ARR( 0.201E-10,     0., 0.0);
+{ 24537} GAH4008 +GHO                =       G2A4008                                               : ARR( 0.205E-11,  -190., 0.0);
+{ 24538} GAH4008+HV               =       G1A4009 +      GHO                                    :  0.100E+01*SUN;
+{ 24539} GPH4008                     =       G3H4004 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 24540} GPH4008 +GHO                =       GPH400U +      GHO2                                   : ARR( 0.421E-11,     0., 0.0);
+{ 24541} GPH4008 +GHO                =       GPK4004 +      GHO                                    : ARR( 0.263E-10,     0., 0.0);
+{ 24542} GPH4008 +GHO                =       G2P4008                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 24543} GPH4008+HV               =       G1P4009 +      GHO                                    :  0.100E+01*SUN;
+{ 24544} GPH4008+HV               =       G3H4004 +      GNO2                                   :  0.100E+01*SUN;
+{ 24545} GHN400R +GHO                =       GND400M +      GHO                                    : ARR( 0.160E-10,     0., 0.0);
+{ 24546} GHN400R +GHO                =       G3H400R                                               : ARR( 0.688E-10,     0., 0.0);
+{ 24547} GHN400R +GNO3               =       G3H400R +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 24548} GHN400R+HV               =       G1H400w +      GNO2                                   :  0.100E+01*SUN;
+{ 24549} GHN400R+HV               =       G3N2000 +      GDD2000 +      GHO                     :  0.100E+01*SUN;
+{ 24550} GHN400R+HV               =       G1N4013 +      GHO                                    :  0.100E+01*SUN;
+{ 24551} GHN400R+HV               =       GND3003 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 24552} G3H400R +GHO2               =  0.800GGH400L + 0.200GAH400P + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 24553} G3H400R +GNO                =       GND3003 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 24554} G3H400R +GNO2               =       GPH400P                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 24555} G3H400R +GNO3               =       GND3003 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 24556} G3H400R +MEPERO             =  0.685GND3003 + 0.315GAH400P + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24557} G3H400R +PERO1              =  0.800GND3003 + 0.200GAH400P + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24558} G3H400R +PERO2              =  0.750GND3003 + 0.250GAH400P + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24559} G3H400R +PERO3              =  0.800GND3003 + 0.200GAH400P + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24560} G3H400R +PERO5              =  0.650GND3003 + 0.350GAH400P + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24561} G3H400R +PERO6              =  0.650GND3003 + 0.350GAH400P + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24562} G3H400R +PERO9              =       GND3003 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 24563} G1H400w                     =       G3H3006 +      GCH2O                                  : ARR( 0.200E+15,  4349., 0.0);
+{ 24564} GHN503q +GHO                =       GNK500y +      GHO                                    : ARR( 0.145E-09,     0., 0.0);
+{ 24565} GHN503q+HV               =       G1N503H +      GHO                                    :  0.100E+01*SUN;
+{ 24566} GHN503q+HV               =       G3H400B +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{ 24567} GHN503q+HV               =       G1H506j +      GNO2                                   :  0.100E+01*SUN;
+{ 24568} G1H506j                     =       G3H400B +      GCH2O                                  : ARR( 0.200E+15,  3603., 0.0);
+{ 24569} GNK5011 +GHO                =       GND501Q +      GHO2                                   : ARR( 0.406E-11,     0., 0.0);
+{ 24570} GNK5011 +GHO                =       GNK500y +      GHO2                                   : ARR( 0.330E-10,     0., 0.0);
+{ 24571} GNK5011 +GHO                =       GNK5012 +      GHO2                                   : ARR( 0.635E-11,     0., 0.0);
+{ 24572} GNK5011+HV               =       G3K400B +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{ 24573} GNK5011+HV               =       G1K5015 +      GNO2                                   :  0.100E+01*SUN;
+{ 24574} G1K5015                     =       G3K400B +      GCH2O                                  : ARR( 0.200E+15,  3603., 0.0);
+{ 24575} GND400E +GHO                =       GND400M +      GHO2                                   : ARR( 0.384E-11,     0., 0.0);
+{ 24576} GND400E +GHO                =       G3N400R                                               : ARR( 0.660E-10,     0., 0.0);
+{ 24577} GND400E +GNO3               =       G3N400R +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 24578} GND400E+HV               =       G1D400H +      GNO2                                   :  0.100E+01*SUN;
+{ 24579} GND400E+HV               =       G3N2000 +      GDD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 24580} GND400E+HV               =       GND3003 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 24581} G3N400R +GHO2               =  0.800GGN400Q + 0.200GAN400U + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 24582} G3N400R +GNO                =       GND3003 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 24583} G3N400R +GNO2               =       GPN400W                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 24584} G3N400R +GNO3               =       GND3003 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 24585} G3N400R +MEPERO             =  0.685GND3003 + 0.315GAN400U + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24586} G3N400R +PERO1              =  0.800GND3003 + 0.200GAN400U + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24587} G3N400R +PERO2              =  0.750GND3003 + 0.250GAN400U + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24588} G3N400R +PERO3              =  0.800GND3003 + 0.200GAN400U + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24589} G3N400R +PERO5              =  0.650GND3003 + 0.350GAN400U + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24590} G3N400R +PERO6              =  0.650GND3003 + 0.350GAN400U + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24591} G3N400R +PERO9              =       GND3003 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 24592} GHN503r +GHO                =       GHN506F +      GHO2                                   : ARR( 0.128E-10,     0., 0.0);
+{ 24593} GHN503r +GHO                =       GNK500z +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 24594} GHN503r +GHO                =       G2N502w                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 24595} GHN503r+HV               =       G1N503I +      GHO                                    :  0.100E+01*SUN;
+{ 24596} GHN503r+HV               =       G3H3004 +      G3N2000                                :  0.100E+01*SUN;
+{ 24597} GHN503r+HV               =       G1H506k +      GNO2                                   :  0.100E+01*SUN;
+{ 24598} G1H506k                     =       G3H3004 +      GCH2O   +      GCO                     : ARR( 0.200E+15,  3897., 0.0);
+{ 24599} GNK5012 +GHO                =       GND501K +      GHO2                                   : ARR( 0.130E-10,     0., 0.0);
+{ 24600} GNK5012 +GHO                =       GNK500z +      GHO2                                   : ARR( 0.638E-11,     0., 0.0);
+{ 24601} GNK5012+HV               =       G3K3003 +      G3N2000                                :  0.100E+01*SUN;
+{ 24602} GNK5012+HV               =       G1K5016 +      GNO2                                   :  0.100E+01*SUN;
+{ 24603} G1K5016                     =       G3K3003 +      GCH2O   +      GCO                     : ARR( 0.200E+15,  3897., 0.0);
+{ 24604} GGK4004 +GHO                =       GGD4005 +      GHO2                                   : ARR( 0.135E-10,     0., 0.0);
+{ 24605} GGK4004 +GHO                =       G3K400E                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 24606} GGK4004+HV               =       GAO3000 +      GCO2                                   :  0.100E+01*SUN;
+{ 24607} G3K400E +GHO2               =  0.800GGK4004 + 0.200GAK4004 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 24608} G3K400E +GNO                =       G3K3001 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 24609} G3K400E +GNO2               =       GPK4004                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 24610} G3K400E +GNO3               =       G3K3001 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 24611} G3K400E +MEPERO             =  0.685G3K3001 + 0.315GAK4004 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 24612} G3K400E +PERO1              =  0.800G3K3001 + 0.200GAK4004 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 24613} G3K400E +PERO2              =  0.750G3K3001 + 0.250GAK4004 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 24614} G3K400E +PERO3              =  0.800G3K3001 + 0.200GAK4004 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 24615} G3K400E +PERO5              =  0.650G3K3001 + 0.350GAK4004 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 24616} G3K400E +PERO6              =  0.650G3K3001 + 0.350GAK4004 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 24617} G3K400E +PERO9              =       G3K3001 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 24618} GAK4004 +GHO                =       GAD4005 +      GHO2                                   : ARR( 0.134E-10,     0., 0.0);
+{ 24619} GAK4004 +GHO                =       G2A400W                                               : ARR( 0.903E-12,     0., 0.0);
+{ 24620} GAK4004+HV               =       GDO3000 +      GCO2                                   :  0.100E+01*SUN;
+{ 24621} G2A400W +GNO                =       G1A400c +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 24622} G2A400W +GNO                =       GAN400L                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 24623} G2A400W +GHO2               =       GAH400c                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 24624} G2A400W +GNO3               =       G1A400c +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 24625} G2A400W +MEPERO             =  0.340G1A400c + 0.330GAK4007 + 0.330GAK4009                 : ARR( 0.565E-13,  -845., 0.0);
+{ 24626} G2A400W +PERO1              =  0.460G1A400c + 0.270GAK4007 + 0.270GAK4009                 : ARR( 0.434E-13,  -900., 0.0);
+{ 24627} G2A400W +PERO2              =  0.400G1A400c + 0.300GAK4007 + 0.300GAK4009                 : ARR( 0.162E-13, -1400., 0.0);
+{ 24628} G2A400W +PERO3              =  0.460G1A400c + 0.270GAK4007 + 0.270GAK4009                 : ARR( 0.488E-13, -1250., 0.0);
+{ 24629} G2A400W +PERO5              =  0.460G1A400c + 0.270GAK4007 + 0.270GAK4009                 : ARR( 0.183E-11,   450., 0.0);
+{ 24630} G2A400W +PERO6              =  0.300G1A400c + 0.350GAK4007 + 0.350GAK4009                 : ARR( 0.168E-13, -1300., 0.0);
+{ 24631} G2A400W +PERO9              =  0.650G1A400c + 0.350GAK4009                                : ARR( 0.100E-10,     0., 0.0);
+{ 24632} G1A400c                     =       GDO2000 +      GCO     +      GHO     +      GCO      : ARR( 0.200E+15,  3326., 0.0);
+{ 24633} GPK4004                     =       G3K400E +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 24634} GPK4004 +GHO                =       GPD4005 +      GHO2                                   : ARR( 0.129E-10,     0., 0.0);
+{ 24635} GPK4004 +GHO                =       G2P400Y                                               : ARR( 0.871E-12,     0., 0.0);
+{ 24636} GPK4004+HV               =       G3K3001 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 24637} G2P400Y +GNO                =       G1P400d +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 24638} G2P400Y +GNO                =       GPN400L                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 24639} G2P400Y +GHO2               =       GPH400d                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 24640} G2P400Y +GNO3               =       G1P400d +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 24641} G2P400Y +MEPERO             =  0.340G1P400d + 0.330GPK4007 + 0.330GPK4009                 : ARR( 0.565E-13,  -845., 0.0);
+{ 24642} G2P400Y +PERO1              =  0.460G1P400d + 0.270GPK4007 + 0.270GPK4009                 : ARR( 0.434E-13,  -900., 0.0);
+{ 24643} G2P400Y +PERO2              =  0.400G1P400d + 0.300GPK4007 + 0.300GPK4009                 : ARR( 0.162E-13, -1400., 0.0);
+{ 24644} G2P400Y +PERO3              =  0.460G1P400d + 0.270GPK4007 + 0.270GPK4009                 : ARR( 0.488E-13, -1250., 0.0);
+{ 24645} G2P400Y +PERO5              =  0.460G1P400d + 0.270GPK4007 + 0.270GPK4009                 : ARR( 0.183E-11,   450., 0.0);
+{ 24646} G2P400Y +PERO6              =  0.300G1P400d + 0.350GPK4007 + 0.350GPK4009                 : ARR( 0.168E-13, -1300., 0.0);
+{ 24647} G2P400Y +PERO9              =  0.650G1P400d + 0.350GPK4009                                : ARR( 0.100E-10,     0., 0.0);
+{ 24648} G1P400d                     =       GDO2000 +      GCO     +      GNO2    +      GCO      : ARR( 0.200E+15,  3326., 0.0);
+{ 24649} GHH501C +GHO                =       GHN503t +      GHO                                    : ARR( 0.429E-10,     0., 0.0);
+{ 24650} GHH501C +GHO                =       GHN502s +      GHO                                    : ARR( 0.858E-11,     0., 0.0);
+{ 24651} GHH501C +GHO                =       G2H501H                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 24652} GHH501C +GHO                =       G2H502Y                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 24653} GHH501C+HV               =       G1H506l +      GNO2                                   :  0.100E+01*SUN;
+{ 24654} GHH501C+HV               =       G1H502I +      GHO                                    :  0.100E+01*SUN;
+{ 24655} GHH501C+HV               =       G1H504p +      GHO                                    :  0.100E+01*SUN;
+{ 24656} GHH501C+HV               =       G1H506m +      GNO2                                   :  0.100E+01*SUN;
+{ 24657} G2H502Y +GNO                =       G1H504p +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 24658} G2H502Y +GNO                =       GHN502h                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 24659} G2H502Y +GHO2               =       GHH501C                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 24660} G2H502Y +GNO3               =       G1H504p +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 24661} G2H502Y +MEPERO             =  0.340G1H504p + 0.330GHN503u + 0.330GHN502s                 : ARR( 0.565E-13,  -845., 0.0);
+{ 24662} G2H502Y +PERO1              =  0.460G1H504p + 0.270GHN503u + 0.270GHN502s                 : ARR( 0.434E-13,  -900., 0.0);
+{ 24663} G2H502Y +PERO2              =  0.400G1H504p + 0.300GHN503u + 0.300GHN502s                 : ARR( 0.162E-13, -1400., 0.0);
+{ 24664} G2H502Y +PERO3              =  0.460G1H504p + 0.270GHN503u + 0.270GHN502s                 : ARR( 0.488E-13, -1250., 0.0);
+{ 24665} G2H502Y +PERO5              =  0.460G1H504p + 0.270GHN503u + 0.270GHN502s                 : ARR( 0.183E-11,   450., 0.0);
+{ 24666} G2H502Y +PERO6              =  0.300G1H504p + 0.350GHN503u + 0.350GHN502s                 : ARR( 0.168E-13, -1300., 0.0);
+{ 24667} G2H502Y +PERO9              =  0.650G1H504p + 0.350GHN502s                                : ARR( 0.100E-10,     0., 0.0);
+{ 24668} G1H506l                     =       GHN503p +      GHO                                    : ARR( 0.800E+11,  2398., 0.0);
+{ 24669} G1H506l                     =       GHH400j +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 24670} G1H506m                     =       GHH501B +      GHO2                                   : ARR( 0.800E+11,  2744., 0.0);
+{ 24671} G1H506m                     =       GHN400T +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{ 24672} GHN503s +GHO                =       GHN504z +      GHO2                                   : ARR( 0.209E-11,     0., 0.0);
+{ 24673} GHN503s +GHO                =       GHN503t +      GHO2                                   : ARR( 0.105E-10,     0., 0.0);
+{ 24674} GHN503s +GHO                =       GNN5022 +      GHO                                    : ARR( 0.837E-11,     0., 0.0);
+{ 24675} GHN503s +GHO                =       G2N504z                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 24676} GHN503s+HV               =       G1H506n +      GNO2                                   :  0.100E+01*SUN;
+{ 24677} GHN503s+HV               =       G1N504u +      GHO                                    :  0.100E+01*SUN;
+{ 24678} GHN503s+HV               =       G1H506o +      GNO2                                   :  0.100E+01*SUN;
+{ 24679} G2N504z +GNO                =       G1N504u +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 24680} G2N504z +GNO                =       GNN501n                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 24681} G2N504z +GHO2               =       GHN503s                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 24682} G2N504z +GNO3               =       G1N504u +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 24683} G2N504z +MEPERO             =  0.340G1N504u + 0.330GNN502Q + 0.330GNN5022                 : ARR( 0.565E-13,  -845., 0.0);
+{ 24684} G2N504z +PERO1              =  0.460G1N504u + 0.270GNN502Q + 0.270GNN5022                 : ARR( 0.434E-13,  -900., 0.0);
+{ 24685} G2N504z +PERO2              =  0.400G1N504u + 0.300GNN502Q + 0.300GNN5022                 : ARR( 0.162E-13, -1400., 0.0);
+{ 24686} G2N504z +PERO3              =  0.460G1N504u + 0.270GNN502Q + 0.270GNN5022                 : ARR( 0.488E-13, -1250., 0.0);
+{ 24687} G2N504z +PERO5              =  0.460G1N504u + 0.270GNN502Q + 0.270GNN5022                 : ARR( 0.183E-11,   450., 0.0);
+{ 24688} G2N504z +PERO6              =  0.300G1N504u + 0.350GNN502Q + 0.350GNN5022                 : ARR( 0.168E-13, -1300., 0.0);
+{ 24689} G2N504z +PERO9              =  0.650G1N504u + 0.350GNN5022                                : ARR( 0.100E-10,     0., 0.0);
+{ 24690} G1H506n                     =       GNK5011 +      GHO                                    : ARR( 0.800E+11,  2398., 0.0);
+{ 24691} G1H506n                     =       GHN400z +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 24692} G1H506o                     =       GHN503q +      GHO2                                   : ARR( 0.800E+11,  2744., 0.0);
+{ 24693} G1H506o                     =       GND400F +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{ 24694} GHN503t +GHO                =       GHN5051 +      GHO2                                   : ARR( 0.131E-11,     0., 0.0);
+{ 24695} GHN503t +GHO                =       GNN5023 +      GHO                                    : ARR( 0.525E-11,     0., 0.0);
+{ 24696} GHN503t +GHO                =       G2N502y                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 24697} GHN503t+HV               =       G1H506p +      GNO2                                   :  0.100E+01*SUN;
+{ 24698} GHN503t+HV               =       G3N3002 +      GND2000 +      GHO                     :  0.100E+01*SUN;
+{ 24699} GHN503t+HV               =       G1N503M +      GHO                                    :  0.100E+01*SUN;
+{ 24700} GHN503t+HV               =       G1H506q +      GNO2                                   :  0.100E+01*SUN;
+{ 24701} G1H506p                     =       GHN4018 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4576., 0.0);
+{ 24702} G1H506q +OXYGEN             =       GHN504w +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 24703} G1H506q                     =       GND400G +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5784., 0.0);
+{ 24704} GHN503u +GHO                =       GHN502s +      GHO2                                   : ARR( 0.415E-11,     0., 0.0);
+{ 24705} GHN503u +GHO                =       GNN502R +      GHO                                    : ARR( 0.415E-10,     0., 0.0);
+{ 24706} GHN503u +GHO                =       G2N502x                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 24707} GHN503u+HV               =       G1H506r +      GNO2                                   :  0.200E+01*SUN;
+{ 24708} GHN503u+HV               =       G1N503J +      GHO                                    :  0.100E+01*SUN;
+{ 24709} G1H506r                     =       GHN503p +      GHO2                                   : ARR( 0.800E+11,  2744., 0.0);
+{ 24710} G1H506r                     =       GHN400T +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 24711} GNN502Q +GHO                =       GNN5022 +      GHO2                                   : ARR( 0.427E-11,     0., 0.0);
+{ 24712} GNN502Q +GHO                =       GNN502R +      GHO2                                   : ARR( 0.107E-10,     0., 0.0);
+{ 24713} GNN502Q+HV               =       G1N505x +      GNO2                                   :  0.200E+01*SUN;
+{ 24714} G1N505x                     =       GNK5011 +      GHO2                                   : ARR( 0.800E+11,  2744., 0.0);
+{ 24715} G1N505x                     =       GND400F +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 24716} GNN502R +GHO                =       GND500q +      GNO2                                   : ARR( 0.291E-12,     0., 0.0);
+{ 24717} GNN502R +GHO                =       GNN5023 +      GHO2                                   : ARR( 0.251E-11,     0., 0.0);
+{ 24718} GNN502R +GHO                =       G1N503M                                               : ARR( 0.420E-17,    85., 2.0);
+{ 24719} GNN502R+HV               =       G1N5043 +      GNO2                                   :  0.200E+01*SUN;
+{ 24720} GNN502R+HV               =       G3N3002 +      GND2000 +      GHO2                    :  0.100E+01*SUN;
+{ 24721} GHN503v +GHO                =       GND500q +      GHO                                    : ARR( 0.141E-09,     0., 0.0);
+{ 24722} GHN503v +GHO                =       G3H501F                                               : ARR( 0.225E-10,     0., 0.0);
+{ 24723} GHN503v +GNO3               =       G3H501F +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 24724} GHN503v+HV               =       G1H5061 +      GNO2                                   :  0.100E+01*SUN;
+{ 24725} GHN503v+HV               =       G1N503N +      GHO                                    :  0.100E+01*SUN;
+{ 24726} GHN503v+HV               =       GHN400T +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 24727} G3H501F +GHO2               =  0.800GGH501W + 0.200GAH501e + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 24728} G3H501F +GNO                =       GHN400T +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 24729} G3H501F +GNO2               =       GPH501d                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 24730} G3H501F +GNO3               =       GHN400T +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 24731} G3H501F +MEPERO             =  0.685GHN400T + 0.315GAH501e + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24732} G3H501F +PERO1              =  0.800GHN400T + 0.200GAH501e + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24733} G3H501F +PERO2              =  0.750GHN400T + 0.250GAH501e + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24734} G3H501F +PERO3              =  0.800GHN400T + 0.200GAH501e + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24735} G3H501F +PERO5              =  0.650GHN400T + 0.350GAH501e + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24736} G3H501F +PERO6              =  0.650GHN400T + 0.350GAH501e + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24737} G3H501F +PERO9              =       GHN400T +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 24738} GND500p +GHO                =       GND500q +      GHO2                                   : ARR( 0.341E-10,     0., 0.0);
+{ 24739} GND500p +GHO                =       GND501L +      GHO2                                   : ARR( 0.655E-11,     0., 0.0);
+{ 24740} GND500p +GHO                =       G3N5018                                               : ARR( 0.217E-10,     0., 0.0);
+{ 24741} GND500p +GNO3               =       G3N5018 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 24742} GND500p+HV               =       G1D5013 +      GNO2                                   :  0.100E+01*SUN;
+{ 24743} GND500p+HV               =       GND400F +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 24744} G3N5018 +GHO2               =  0.800GGN501N + 0.200GAN501Q + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 24745} G3N5018 +GNO                =       GND400F +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 24746} G3N5018 +GNO2               =       GPN501T                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 24747} G3N5018 +GNO3               =       GND400F +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 24748} G3N5018 +MEPERO             =  0.685GND400F + 0.315GAN501Q + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24749} G3N5018 +PERO1              =  0.800GND400F + 0.200GAN501Q + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24750} G3N5018 +PERO2              =  0.750GND400F + 0.250GAN501Q + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24751} G3N5018 +PERO3              =  0.800GND400F + 0.200GAN501Q + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24752} G3N5018 +PERO5              =  0.650GND400F + 0.350GAN501Q + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24753} G3N5018 +PERO6              =  0.650GND400F + 0.350GAN501Q + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24754} G3N5018 +PERO9              =       GND400F +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 24755} G1D5013                     =       GDK500N +      GHO2                                   : ARR( 0.800E+11,  2246., 0.0);
+{ 24756} G1D5013                     =       GDD4003 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 24757} GND500q +GHO                =       GND501I +      GHO2                                   : ARR( 0.392E-11,     0., 0.0);
+{ 24758} GND500q +GHO                =       G3N5019                                               : ARR( 0.675E-10,     0., 0.0);
+{ 24759} GND500q +GNO3               =       G3N5019 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 24760} GND500q+HV               =       G1D5014 +      GNO2                                   :  0.100E+01*SUN;
+{ 24761} GND500q+HV               =       G3N3002 +      GDD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 24762} GND500q+HV               =       GND400G +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 24763} G3N5019 +GHO2               =  0.800GGN501O + 0.200GAN501R + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 24764} G3N5019 +GNO                =       GND400G +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 24765} G3N5019 +GNO2               =       GPN501U                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 24766} G3N5019 +GNO3               =       GND400G +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 24767} G3N5019 +MEPERO             =  0.685GND400G + 0.315GAN501R + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24768} G3N5019 +PERO1              =  0.800GND400G + 0.200GAN501R + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24769} G3N5019 +PERO2              =  0.750GND400G + 0.250GAN501R + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24770} G3N5019 +PERO3              =  0.800GND400G + 0.200GAN501R + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24771} G3N5019 +PERO5              =  0.650GND400G + 0.350GAN501R + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24772} G3N5019 +PERO6              =  0.650GND400G + 0.350GAN501R + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24773} G3N5019 +PERO9              =       GND400G +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 24774} G1D5014                     =       GDD4004 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4576., 0.0);
+{ 24775} GGN500J +GHO                =       GGN501M +      GHO2                                   : ARR( 0.211E-11,     0., 0.0);
+{ 24776} GGN500J +GHO                =       G2G500z                                               : ARR( 0.145E-11,     0., 0.0);
+{ 24777} GGN500J +GHO                =       GGN500M +      GHO2                                   : ARR( 0.644E-11,     0., 0.0);
+{ 24778} GGN500J +GHO                =       G3N500F                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 24779} GGN500J+HV               =       G1G501D +      GNO2                                   :  0.100E+01*SUN;
+{ 24780} GGN500J+HV               =       GND4003 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 24781} G2G500z +GNO                =       G1G501E +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 24782} G2G500z +GNO                =       GGN501E                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 24783} G2G500z +GHO2               =       GGH501W                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 24784} G2G500z +GNO3               =       G1G501E +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 24785} G2G500z +MEPERO             =  0.340G1G501E + 0.330GGN501N + 0.330GGN501O                 : ARR( 0.565E-13,  -845., 0.0);
+{ 24786} G2G500z +PERO1              =  0.460G1G501E + 0.270GGN501N + 0.270GGN501O                 : ARR( 0.434E-13,  -900., 0.0);
+{ 24787} G2G500z +PERO2              =  0.400G1G501E + 0.300GGN501N + 0.300GGN501O                 : ARR( 0.162E-13, -1400., 0.0);
+{ 24788} G2G500z +PERO3              =  0.460G1G501E + 0.270GGN501N + 0.270GGN501O                 : ARR( 0.488E-13, -1250., 0.0);
+{ 24789} G2G500z +PERO5              =  0.460G1G501E + 0.270GGN501N + 0.270GGN501O                 : ARR( 0.183E-11,   450., 0.0);
+{ 24790} G2G500z +PERO6              =  0.300G1G501E + 0.350GGN501N + 0.350GGN501O                 : ARR( 0.168E-13, -1300., 0.0);
+{ 24791} G2G500z +PERO9              =  0.650G1G501E + 0.350GGN501O                                : ARR( 0.100E-10,     0., 0.0);
+{ 24792} G1G501D                     =       GGK5006 +      GHO2                                   : ARR( 0.800E+11,  2246., 0.0);
+{ 24793} G1G501D                     =       GGD4002 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4799., 0.0);
+{ 24794} G1G501E                     =       GND2000 +      GGD3001 +      GHO2                    : ARR( 0.200E+15,  2745., 0.0);
+{ 24795} GAN500J +GHO                =       GAN500M +      GHO2                                   : ARR( 0.482E-11,     0., 0.0);
+{ 24796} GAN500J +GHO                =       G2A501B                                               : ARR( 0.147E-11,     0., 0.0);
+{ 24797} GAN500J +GHO                =       GAN501F +      GHO2                                   : ARR( 0.214E-11,     0., 0.0);
+{ 24798} GAN500J +GHO                =       GND4003 +      GHO2    +      GCO2                    : ARR( 0.540E-12,     0., 0.0);
+{ 24799} GAN500J+HV               =       G1A501L +      GNO2                                   :  0.100E+01*SUN;
+{ 24800} G2A501B +GNO                =       G1A501M +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 24801} G2A501B +GNO                =       GAN501N                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 24802} G2A501B +GHO2               =       GAH501e                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 24803} G2A501B +GNO3               =       G1A501M +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 24804} G2A501B +MEPERO             =  0.340G1A501M + 0.330GAN501Q + 0.330GAN501R                 : ARR( 0.565E-13,  -845., 0.0);
+{ 24805} G2A501B +PERO1              =  0.460G1A501M + 0.270GAN501Q + 0.270GAN501R                 : ARR( 0.434E-13,  -900., 0.0);
+{ 24806} G2A501B +PERO2              =  0.400G1A501M + 0.300GAN501Q + 0.300GAN501R                 : ARR( 0.162E-13, -1400., 0.0);
+{ 24807} G2A501B +PERO3              =  0.460G1A501M + 0.270GAN501Q + 0.270GAN501R                 : ARR( 0.488E-13, -1250., 0.0);
+{ 24808} G2A501B +PERO5              =  0.460G1A501M + 0.270GAN501Q + 0.270GAN501R                 : ARR( 0.183E-11,   450., 0.0);
+{ 24809} G2A501B +PERO6              =  0.300G1A501M + 0.350GAN501Q + 0.350GAN501R                 : ARR( 0.168E-13, -1300., 0.0);
+{ 24810} G2A501B +PERO9              =  0.650G1A501M + 0.350GAN501R                                : ARR( 0.100E-10,     0., 0.0);
+{ 24811} G1A501L                     =       GAK5006 +      GHO2                                   : ARR( 0.800E+11,  2381., 0.0);
+{ 24812} G1A501L                     =       GAD4002 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4799., 0.0);
+{ 24813} G1A501M                     =       GAD3001 +      GND2000 +      GHO2                    : ARR( 0.200E+15,  2745., 0.0);
+{ 24814} GPN500J                     =       G3N500F +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 24815} GPN500J +GHO                =       GPN501J +      GHO2                                   : ARR( 0.213E-11,     0., 0.0);
+{ 24816} GPN500J +GHO                =       G2P501D                                               : ARR( 0.146E-11,     0., 0.0);
+{ 24817} GPN500J +GHO                =       GPN500M +      GHO2                                   : ARR( 0.649E-11,     0., 0.0);
+{ 24818} GPN500J+HV               =       G1P501N +      GNO2                                   :  0.100E+01*SUN;
+{ 24819} GPN500J+HV               =       G3N500F +      GNO2                                   :  0.100E+01*SUN;
+{ 24820} G2P501D +GNO                =       G1P501O +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 24821} G2P501D +GNO                =       GPN500r                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 24822} G2P501D +GHO2               =       GPH501d                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 24823} G2P501D +GNO3               =       G1P501O +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 24824} G2P501D +MEPERO             =  0.340G1P501O + 0.330GPN501T + 0.330GPN501U                 : ARR( 0.565E-13,  -845., 0.0);
+{ 24825} G2P501D +PERO1              =  0.460G1P501O + 0.270GPN501T + 0.270GPN501U                 : ARR( 0.434E-13,  -900., 0.0);
+{ 24826} G2P501D +PERO2              =  0.400G1P501O + 0.300GPN501T + 0.300GPN501U                 : ARR( 0.162E-13, -1400., 0.0);
+{ 24827} G2P501D +PERO3              =  0.460G1P501O + 0.270GPN501T + 0.270GPN501U                 : ARR( 0.488E-13, -1250., 0.0);
+{ 24828} G2P501D +PERO5              =  0.460G1P501O + 0.270GPN501T + 0.270GPN501U                 : ARR( 0.183E-11,   450., 0.0);
+{ 24829} G2P501D +PERO6              =  0.300G1P501O + 0.350GPN501T + 0.350GPN501U                 : ARR( 0.168E-13, -1300., 0.0);
+{ 24830} G2P501D +PERO9              =  0.650G1P501O + 0.350GPN501U                                : ARR( 0.100E-10,     0., 0.0);
+{ 24831} G1P501N                     =       GPK5006 +      GHO2                                   : ARR( 0.800E+11,  2246., 0.0);
+{ 24832} G1P501N                     =       GPD4002 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4799., 0.0);
+{ 24833} G1P501O                     =       GND2000 +      GPD3001 +      GHO2                    : ARR( 0.200E+15,  2745., 0.0);
+{ 24834} GHH501D +GHO                =       GHN502D +      GHO                                    : ARR( 0.138E-09,     0., 0.0);
+{ 24835} GHH501D +GHO                =       GHN503n +      GHO                                    : ARR( 0.170E-10,     0., 0.0);
+{ 24836} GHH501D+HV               =       G1H506s +      GNO2                                   :  0.100E+01*SUN;
+{ 24837} GHH501D+HV               =       G3N2000 +      G2H300B                                :  0.100E+01*SUN;
+{ 24838} GHH501D+HV               =       GNK3000 +      GDD2000 + 2.000GHO                     :  0.100E+01*SUN;
+{ 24839} GHH501D+HV               =       G1H502L +      GHO                                    :  0.100E+01*SUN;
+{ 24840} GHH501D+HV               =       G1H503n +      GHO                                    :  0.100E+01*SUN;
+{ 24841} G1H506s                     =       G3H400S +      GCH2O                                  : ARR( 0.200E+15,  3576., 0.0);
+{ 24842} G3H400S +GHO2               =  0.800GGH400a + 0.200GAH400X + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 24843} G3H400S +GNO                =       G2H300B +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 24844} G3H400S +GNO2               =       GPH400Y                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 24845} G3H400S +GNO3               =       G2H300B +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 24846} G3H400S +MEPERO             =  0.685G2H300B + 0.315GAH400X + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 24847} G3H400S +PERO1              =  0.800G2H300B + 0.200GAH400X + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 24848} G3H400S +PERO2              =  0.750G2H300B + 0.250GAH400X + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 24849} G3H400S +PERO3              =  0.800G2H300B + 0.200GAH400X + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 24850} G3H400S +PERO5              =  0.650G2H300B + 0.350GAH400X + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 24851} G3H400S +PERO6              =  0.650G2H300B + 0.350GAH400X + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 24852} G3H400S +PERO9              =       G2H300B +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 24853} GHN503w +GHO                =       GHN502D +      GHO2                                   : ARR( 0.333E-10,     0., 0.0);
+{ 24854} GHN503w +GHO                =       GND500o +      GHO                                    : ARR( 0.164E-10,     0., 0.0);
+{ 24855} GHN503w +GHO                =       G2N5051                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 24856} GHN503w+HV               =       G1H506t +      GNO2                                   :  0.100E+01*SUN;
+{ 24857} GHN503w+HV               =       G3N2000 +      G2H3009                                :  0.100E+01*SUN;
+{ 24858} GHN503w+HV               =       GNK3000 +      GHD2000                                :  0.100E+01*SUN;
+{ 24859} GHN503w+HV               =       G1N502W +      GHO                                    :  0.100E+01*SUN;
+{ 24860} G2N5051 +GNO                =       G1N502W +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 24861} G2N5051 +GNO                =       GNN500X                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 24862} G2N5051 +GHO2               =       GHN503w                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 24863} G2N5051 +GNO3               =       G1N502W +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 24864} G2N5051 +MEPERO             =  0.480G1N502W + 0.260GNK500P + 0.260GND500o                 : ARR( 0.164E-12,  -795., 0.0);
+{ 24865} G2N5051 +PERO1              =  0.600G1N502W + 0.200GNK500P + 0.200GND500o                 : ARR( 0.126E-12,  -850., 0.0);
+{ 24866} G2N5051 +PERO2              =  0.560G1N502W + 0.220GNK500P + 0.220GND500o                 : ARR( 0.471E-13, -1350., 0.0);
+{ 24867} G2N5051 +PERO3              =  0.600G1N502W + 0.200GNK500P + 0.200GND500o                 : ARR( 0.142E-12, -1200., 0.0);
+{ 24868} G2N5051 +PERO5              =  0.600G1N502W + 0.200GNK500P + 0.200GND500o                 : ARR( 0.533E-11,   500., 0.0);
+{ 24869} G2N5051 +PERO6              =  0.460G1N502W + 0.270GNK500P + 0.270GND500o                 : ARR( 0.488E-13, -1250., 0.0);
+{ 24870} G2N5051 +PERO9              =  0.800G1N502W + 0.200GND500o                                : ARR( 0.100E-10,     0., 0.0);
+{ 24871} G1H506t                     =       G3H4006 +      GCH2O                                  : ARR( 0.200E+15,  3576., 0.0);
+{ 24872} GGH4008 +GHO                =       GGD4000 +      GHO                                    : ARR( 0.166E-10,     0., 0.0);
+{ 24873} GGH4008 +GHO                =       G2G400K                                               : ARR( 0.146E-11,     0., 0.0);
+{ 24874} GGH4008 +GHO                =       G2G400L                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 24875} GGH4008 +GHO                =       G3H4005                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 24876} GGH4008+HV               =       G1G4001 +      GHO                                    :  0.100E+01*SUN;
+{ 24877} GGH4008+HV               =       G2H3006 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 24878} G2G400K +GNO                =       G1G400U +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 24879} G2G400K +GNO                =       GGH400I                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 24880} G2G400K +GHO2               =       GGH400a                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 24881} G2G400K +GNO3               =       G1G400U +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 24882} G2G400K +MEPERO             =  0.340G1G400U + 0.330GGH4009 + 0.330GGH400A                 : ARR( 0.565E-13,  -845., 0.0);
+{ 24883} G2G400K +PERO1              =  0.460G1G400U + 0.270GGH4009 + 0.270GGH400A                 : ARR( 0.434E-13,  -900., 0.0);
+{ 24884} G2G400K +PERO2              =  0.400G1G400U + 0.300GGH4009 + 0.300GGH400A                 : ARR( 0.162E-13, -1400., 0.0);
+{ 24885} G2G400K +PERO3              =  0.460G1G400U + 0.270GGH4009 + 0.270GGH400A                 : ARR( 0.488E-13, -1250., 0.0);
+{ 24886} G2G400K +PERO5              =  0.460G1G400U + 0.270GGH4009 + 0.270GGH400A                 : ARR( 0.183E-11,   450., 0.0);
+{ 24887} G2G400K +PERO6              =  0.300G1G400U + 0.350GGH4009 + 0.350GGH400A                 : ARR( 0.168E-13, -1300., 0.0);
+{ 24888} G2G400K +PERO9              =  0.650G1G400U + 0.350GGH400A                                : ARR( 0.100E-10,     0., 0.0);
+{ 24889} G2G400L +GNO                =       G1G4001 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 24890} G2G400L +GNO                =       GGN4000                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 24891} G2G400L +GHO2               =       GGH4008                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 24892} G2G400L +GNO3               =       G1G4001 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 24893} G2G400L +MEPERO             =  0.480G1G4001 + 0.260GGO4001 + 0.260GGD4000                 : ARR( 0.146E-12,  -445., 0.0);
+{ 24894} G2G400L +PERO1              =  0.600G1G4001 + 0.200GGO4001 + 0.200GGD4000                 : ARR( 0.112E-12,  -500., 0.0);
+{ 24895} G2G400L +PERO2              =  0.560G1G4001 + 0.220GGO4001 + 0.220GGD4000                 : ARR( 0.418E-13, -1000., 0.0);
+{ 24896} G2G400L +PERO3              =  0.600G1G4001 + 0.200GGO4001 + 0.200GGD4000                 : ARR( 0.126E-12,  -850., 0.0);
+{ 24897} G2G400L +PERO5              =  0.600G1G4001 + 0.200GGO4001 + 0.200GGD4000                 : ARR( 0.473E-11,   850., 0.0);
+{ 24898} G2G400L +PERO6              =  0.460G1G4001 + 0.270GGO4001 + 0.270GGD4000                 : ARR( 0.434E-13,  -900., 0.0);
+{ 24899} G2G400L +PERO9              =  0.800G1G4001 + 0.200GGD4000                                : ARR( 0.100E-10,     0., 0.0);
+{ 24900} G1G400U                     =       GCH2O   +      GGD3000 +      GHO                     : ARR( 0.200E+15,  6757., 0.0);
+{ 24901} G1G400U                     =       GHD2000 +      G2G2000                                : ARR( 0.200E+15,  7510., 0.0);
+{ 24902} GHH400A +GHO                =       GHD400C +      GHO                                    : ARR( 0.178E-10,     0., 0.0);
+{ 24903} GHH400A +GHO                =       G2H400o                                               : ARR( 0.497E-11,     0., 0.0);
+{ 24904} GHH400A +GHO                =       GHD400D +      GHO                                    : ARR( 0.278E-10,     0., 0.0);
+{ 24905} GHH400A +GHO                =       G3H400T                                               : ARR( 0.230E-10,     0., 0.0);
+{ 24906} GHH400A +GNO3               =       G3H400T +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 24907} GHH400A+HV               =       G1H400i +      GHO                                    :  0.100E+01*SUN;
+{ 24908} GHH400A+HV               =       G1H400o +      GHO                                    :  0.100E+01*SUN;
+{ 24909} GHH400A+HV               =       GHD3000 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 24910} G2H400o +GNO                =       G1H400x +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 24911} G2H400o +GNO                =       GHH400a                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 24912} G2H400o +GHO2               =       GHH400l                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 24913} G2H400o +GNO3               =       G1H400x +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 24914} G2H400o +MEPERO             =  0.340G1H400x + 0.330GHH400H + 0.330GHH400b                 : ARR( 0.565E-13,  -845., 0.0);
+{ 24915} G2H400o +PERO1              =  0.460G1H400x + 0.270GHH400H + 0.270GHH400b                 : ARR( 0.434E-13,  -900., 0.0);
+{ 24916} G2H400o +PERO2              =  0.400G1H400x + 0.300GHH400H + 0.300GHH400b                 : ARR( 0.162E-13, -1400., 0.0);
+{ 24917} G2H400o +PERO3              =  0.460G1H400x + 0.270GHH400H + 0.270GHH400b                 : ARR( 0.488E-13, -1250., 0.0);
+{ 24918} G2H400o +PERO5              =  0.460G1H400x + 0.270GHH400H + 0.270GHH400b                 : ARR( 0.183E-11,   450., 0.0);
+{ 24919} G2H400o +PERO6              =  0.300G1H400x + 0.350GHH400H + 0.350GHH400b                 : ARR( 0.168E-13, -1300., 0.0);
+{ 24920} G2H400o +PERO9              =  0.650G1H400x + 0.350GHH400b                                : ARR( 0.100E-10,     0., 0.0);
+{ 24921} G3H400T +GHO2               =  0.800GGH400b + 0.200GAH400d + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 24922} G3H400T +GNO                =       GHD3000 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 24923} G3H400T +GNO2               =       GPH400e                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 24924} G3H400T +GNO3               =       GHD3000 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 24925} G3H400T +MEPERO             =  0.685GHD3000 + 0.315GAH400d + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24926} G3H400T +PERO1              =  0.800GHD3000 + 0.200GAH400d + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24927} G3H400T +PERO2              =  0.750GHD3000 + 0.250GAH400d + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24928} G3H400T +PERO3              =  0.800GHD3000 + 0.200GAH400d + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24929} G3H400T +PERO5              =  0.650GHD3000 + 0.350GAH400d + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24930} G3H400T +PERO6              =  0.650GHD3000 + 0.350GAH400d + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 24931} G3H400T +PERO9              =       GHD3000 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 24932} G1H400x                     =       GHD2000 +      GDD2000 +      GHO                     : ARR( 0.200E+15,  4976., 0.0);
+{ 24933} GHH501E +GHO                =       GHH502R +      GHO2                                   : ARR( 0.407E-11,     0., 0.0);
+{ 24934} GHH501E +GHO                =       GHH501p +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 24935} GHH501E +GHO                =       GHN506G +      GHO                                    : ARR( 0.834E-11,     0., 0.0);
+{ 24936} GHH501E +GHO                =       GHN5042 +      GHO                                    : ARR( 0.326E-11,     0., 0.0);
+{ 24937} GHH501E +GHO                =       G2H502Z                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 24938} GHH501E +GHO                =       G2H502a                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 24939} GHH501E+HV               =       G1H506u +      GHO                                    :  0.100E+01*SUN;
+{ 24940} GHH501E+HV               =       G1H502N +      GNO2                                   :  0.100E+01*SUN;
+{ 24941} GHH501E+HV               =       G1H506v +      GHO                                    :  0.100E+01*SUN;
+{ 24942} G2H502Z +GNO                =       G1H506u +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 24943} G2H502Z +GNO                =       GHN506H                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 24944} G2H502Z +GHO2               =       GHH501E                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 24945} G2H502Z +GNO3               =       G1H506u +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 24946} G2H502Z +MEPERO             =  0.340G1H506u + 0.330GHN503y + 0.330GHN506G                 : ARR( 0.565E-13,  -845., 0.0);
+{ 24947} G2H502Z +PERO1              =  0.460G1H506u + 0.270GHN503y + 0.270GHN506G                 : ARR( 0.434E-13,  -900., 0.0);
+{ 24948} G2H502Z +PERO2              =  0.400G1H506u + 0.300GHN503y + 0.300GHN506G                 : ARR( 0.162E-13, -1400., 0.0);
+{ 24949} G2H502Z +PERO3              =  0.460G1H506u + 0.270GHN503y + 0.270GHN506G                 : ARR( 0.488E-13, -1250., 0.0);
+{ 24950} G2H502Z +PERO5              =  0.460G1H506u + 0.270GHN503y + 0.270GHN506G                 : ARR( 0.183E-11,   450., 0.0);
+{ 24951} G2H502Z +PERO6              =  0.300G1H506u + 0.350GHN503y + 0.350GHN506G                 : ARR( 0.168E-13, -1300., 0.0);
+{ 24952} G2H502Z +PERO9              =  0.650G1H506u + 0.350GHN506G                                : ARR( 0.100E-10,     0., 0.0);
+{ 24953} G2H502a +GNO                =       G1H506v +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 24954} G2H502a +GNO                =       GHN5052                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 24955} G2H502a +GHO2               =       GHH501E                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 24956} G2H502a +GNO3               =       G1H506v +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 24957} G2H502a +MEPERO             =  0.480G1H506v + 0.260GHN503j + 0.260GHN5042                 : ARR( 0.164E-12,  -795., 0.0);
+{ 24958} G2H502a +PERO1              =  0.600G1H506v + 0.200GHN503j + 0.200GHN5042                 : ARR( 0.126E-12,  -850., 0.0);
+{ 24959} G2H502a +PERO2              =  0.560G1H506v + 0.220GHN503j + 0.220GHN5042                 : ARR( 0.471E-13, -1350., 0.0);
+{ 24960} G2H502a +PERO3              =  0.600G1H506v + 0.200GHN503j + 0.200GHN5042                 : ARR( 0.142E-12, -1200., 0.0);
+{ 24961} G2H502a +PERO5              =  0.600G1H506v + 0.200GHN503j + 0.200GHN5042                 : ARR( 0.533E-11,   500., 0.0);
+{ 24962} G2H502a +PERO6              =  0.460G1H506v + 0.270GHN503j + 0.270GHN5042                 : ARR( 0.488E-13, -1250., 0.0);
+{ 24963} G2H502a +PERO9              =  0.800G1H506v + 0.200GHN5042                                : ARR( 0.100E-10,     0., 0.0);
+{ 24964} G1H506u                     =       GDO2000 +      GHN300A +      GHO2                    : ARR( 0.200E+15,  3575., 0.0);
+{ 24965} G1H506v                     =       GHN504E +      GHO2                                   : ARR( 0.800E+11,  2025., 0.0);
+{ 24966} GHH501F +GHO                =       GHH502S +      GHO2                                   : ARR( 0.117E-10,     0., 0.0);
+{ 24967} GHH501F +GHO                =       GHH502T +      GHO                                    : ARR( 0.469E-10,     0., 0.0);
+{ 24968} GHH501F +GHO                =       GHH501H +      GHO                                    : ARR( 0.469E-10,     0., 0.0);
+{ 24969} GHH501F +GHO                =       GHH5018 +      GHO                                    : ARR( 0.183E-10,     0., 0.0);
+{ 24970} GHH501F+HV               =       G1H506w +      GHO                                    :  0.100E+01*SUN;
+{ 24971} GHH501F+HV               =       G1H502N +      GHO                                    :  0.100E+01*SUN;
+{ 24972} GHH501F+HV               =       G1H506W +      GHO                                    :  0.100E+01*SUN;
+{ 24973} G1H506w                     =       GDO2000 +      GHH3005 +      GHO2                    : ARR( 0.200E+15,  3575., 0.0);
+{ 24974} GHH501G +GHO                =       GHH502U +      GHO2                                   : ARR( 0.118E-10,     0., 0.0);
+{ 24975} GHH501G +GHO                =       GHK500u +      GHO                                    : ARR( 0.474E-10,     0., 0.0);
+{ 24976} GHH501G +GHO                =       GHH501H +      GHO2                                   : ARR( 0.118E-10,     0., 0.0);
+{ 24977} GHH501G +GHO                =       GHD500H +      GHO                                    : ARR( 0.185E-10,     0., 0.0);
+{ 24978} GHH501G+HV               =       G1H506x +      GHO                                    :  0.100E+01*SUN;
+{ 24979} GHH501G+HV               =       G1H503O +      GHO                                    :  0.100E+01*SUN;
+{ 24980} G1H506x                     =       GDO2000 +      GHD3005 +      GHO2                    : ARR( 0.200E+15,  3575., 0.0);
+{ 24981} G1H506x                     =       GDO3002 +      GHD2000 +      GHO2                    : ARR( 0.200E+15,  3575., 0.0);
+{ 24982} GHH501H +GHO                =       GHH502W +      GHO2                                   : ARR( 0.444E-11,     0., 0.0);
+{ 24983} GHH501H +GHO                =       GHH501s +      GHO2                                   : ARR( 0.361E-10,     0., 0.0);
+{ 24984} GHH501H +GHO                =       GHK500v +      GHO                                    : ARR( 0.278E-10,     0., 0.0);
+{ 24985} GHH501H +GHO                =       GHD500h +      GHO                                    : ARR( 0.108E-10,     0., 0.0);
+{ 24986} GHH501H+HV               =       G1H506y +      GHO                                    :  0.100E+01*SUN;
+{ 24987} GHH501H+HV               =       G3H400C +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 24988} GHH501H+HV               =       G1H506i +      GHO                                    :  0.100E+01*SUN;
+{ 24989} G1H506y                     =       GDO3002 +      G3H2000                                : ARR( 0.200E+15,  3009., 0.0);
+{ 24990} GHH501I +GHO                =       GHD500i +      GHO                                    : ARR( 0.173E-10,     0., 0.0);
+{ 24991} GHH501I +GHO                =       GHH502W +      GHO2                                   : ARR( 0.111E-10,     0., 0.0);
+{ 24992} GHH501I +GHO                =       GHD500g +      GHO                                    : ARR( 0.141E-09,     0., 0.0);
+{ 24993} GHH501I +GHO                =       G3H501G                                               : ARR( 0.224E-10,     0., 0.0);
+{ 24994} GHH501I +GNO3               =       G3H501G +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 24995} GHH501I+HV               =       G1H5061 +      GHO                                    :  0.100E+01*SUN;
+{ 24996} GHH501I+HV               =       G1H502S +      GHO                                    :  0.100E+01*SUN;
+{ 24997} GHH501I+HV               =       GHH400H +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 24998} G3H501G +GHO2               =  0.800GGH501X + 0.200GAH501f + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 24999} G3H501G +GNO                =       GHH400H +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 25000} G3H501G +GNO2               =       GPH501e                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 25001} G3H501G +GNO3               =       GHH400H +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 25002} G3H501G +MEPERO             =  0.685GHH400H + 0.315GAH501f + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25003} G3H501G +PERO1              =  0.800GHH400H + 0.200GAH501f + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25004} G3H501G +PERO2              =  0.750GHH400H + 0.250GAH501f + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25005} G3H501G +PERO3              =  0.800GHH400H + 0.200GAH501f + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25006} G3H501G +PERO5              =  0.650GHH400H + 0.350GAH501f + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25007} G3H501G +PERO6              =  0.650GHH400H + 0.350GAH501f + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25008} G3H501G +PERO9              =       GHH400H +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 25009} GHN503x +GHO                =       GHN503K +      GHO2                                   : ARR( 0.632E-11,     0., 0.0);
+{ 25010} GHN503x +GHO                =       G2H502b                                               : ARR( 0.451E-11,     0., 0.0);
+{ 25011} GHN503x +GHO                =       GND500n +      GHO                                    : ARR( 0.162E-10,     0., 0.0);
+{ 25012} GHN503x +GHO                =       G2N5052                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 25013} GHN503x+HV               =       G1H506z +      GNO2                                   :  0.100E+01*SUN;
+{ 25014} GHN503x+HV               =       G3N2000 +      GHD3000 +      GHO2                    :  0.100E+01*SUN;
+{ 25015} GHN503x+HV               =       G1N504L +      GHO                                    :  0.100E+01*SUN;
+{ 25016} G2H502b +GNO                =       G1H5071 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 25017} G2H502b +GNO                =       GHN506I                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 25018} G2H502b +GHO2               =       GHH502X                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 25019} G2H502b +GNO3               =       G1H5071 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 25020} G2H502b +MEPERO             =  0.340G1H5071 + 0.330GHN506J + 0.330GHN506K                 : ARR( 0.565E-13,  -845., 0.0);
+{ 25021} G2H502b +PERO1              =  0.460G1H5071 + 0.270GHN506J + 0.270GHN506K                 : ARR( 0.434E-13,  -900., 0.0);
+{ 25022} G2H502b +PERO2              =  0.400G1H5071 + 0.300GHN506J + 0.300GHN506K                 : ARR( 0.162E-13, -1400., 0.0);
+{ 25023} G2H502b +PERO3              =  0.460G1H5071 + 0.270GHN506J + 0.270GHN506K                 : ARR( 0.488E-13, -1250., 0.0);
+{ 25024} G2H502b +PERO5              =  0.460G1H5071 + 0.270GHN506J + 0.270GHN506K                 : ARR( 0.183E-11,   450., 0.0);
+{ 25025} G2H502b +PERO6              =  0.300G1H5071 + 0.350GHN506J + 0.350GHN506K                 : ARR( 0.168E-13, -1300., 0.0);
+{ 25026} G2H502b +PERO9              =  0.650G1H5071 + 0.350GHN506K                                : ARR( 0.100E-10,     0., 0.0);
+{ 25027} G2N5052 +GNO                =       G1N504L +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 25028} G2N5052 +GNO                =       GNN501K                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 25029} G2N5052 +GHO2               =       GHN503x                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 25030} G2N5052 +GNO3               =       G1N504L +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 25031} G2N5052 +MEPERO             =  0.480G1N504L + 0.260GNK500R + 0.260GND500n                 : ARR( 0.146E-12,  -445., 0.0);
+{ 25032} G2N5052 +PERO1              =  0.600G1N504L + 0.200GNK500R + 0.200GND500n                 : ARR( 0.112E-12,  -500., 0.0);
+{ 25033} G2N5052 +PERO2              =  0.560G1N504L + 0.220GNK500R + 0.220GND500n                 : ARR( 0.418E-13, -1000., 0.0);
+{ 25034} G2N5052 +PERO3              =  0.600G1N504L + 0.200GNK500R + 0.200GND500n                 : ARR( 0.126E-12,  -850., 0.0);
+{ 25035} G2N5052 +PERO5              =  0.600G1N504L + 0.200GNK500R + 0.200GND500n                 : ARR( 0.473E-11,   850., 0.0);
+{ 25036} G2N5052 +PERO6              =  0.460G1N504L + 0.270GNK500R + 0.270GND500n                 : ARR( 0.434E-13,  -900., 0.0);
+{ 25037} G2N5052 +PERO9              =  0.800G1N504L + 0.200GND500n                                : ARR( 0.100E-10,     0., 0.0);
+{ 25038} G1H506z                     =       G3H400F +      GCH2O                                  : ARR( 0.200E+15,  3603., 0.0);
+{ 25039} G1H5071                     =       GND3003 +      GHD2000 +      GHO2                    : ARR( 0.200E+15,  3768., 0.0);
+{ 25040} GHN503y +GHO                =       GHN506L +      GHO2                                   : ARR( 0.411E-11,     0., 0.0);
+{ 25041} GHN503y +GHO                =       GHN5057 +      GHO2                                   : ARR( 0.105E-10,     0., 0.0);
+{ 25042} GHN503y +GHO                =       GHN506G +      GHO2                                   : ARR( 0.211E-11,     0., 0.0);
+{ 25043} GHN503y +GHO                =       GND500r +      GHO                                    : ARR( 0.329E-11,     0., 0.0);
+{ 25044} GHN503y +GHO                =       G2N5053                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 25045} GHN503y+HV               =       G1H502P +      GNO2                                   :  0.100E+01*SUN;
+{ 25046} GHN503y+HV               =       G1N505y +      GHO                                    :  0.100E+01*SUN;
+{ 25047} G2N5053 +GNO                =       G1N505y +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 25048} G2N5053 +GNO                =       GNN502p                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 25049} G2N5053 +GHO2               =       GHN503y                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 25050} G2N5053 +GNO3               =       G1N505y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 25051} G2N5053 +MEPERO             =  0.480G1N505y + 0.260GNO500b + 0.260GND500r                 : ARR( 0.164E-12,  -795., 0.0);
+{ 25052} G2N5053 +PERO1              =  0.600G1N505y + 0.200GNO500b + 0.200GND500r                 : ARR( 0.126E-12,  -850., 0.0);
+{ 25053} G2N5053 +PERO2              =  0.560G1N505y + 0.220GNO500b + 0.220GND500r                 : ARR( 0.471E-13, -1350., 0.0);
+{ 25054} G2N5053 +PERO3              =  0.600G1N505y + 0.200GNO500b + 0.200GND500r                 : ARR( 0.142E-12, -1200., 0.0);
+{ 25055} G2N5053 +PERO5              =  0.600G1N505y + 0.200GNO500b + 0.200GND500r                 : ARR( 0.533E-11,   500., 0.0);
+{ 25056} G2N5053 +PERO6              =  0.460G1N505y + 0.270GNO500b + 0.270GND500r                 : ARR( 0.488E-13, -1250., 0.0);
+{ 25057} G2N5053 +PERO9              =  0.800G1N505y + 0.200GND500r                                : ARR( 0.100E-10,     0., 0.0);
+{ 25058} G1N505y                     =       GNK5015 +      GHO2                                   : ARR( 0.800E+11,  2025., 0.0);
+{ 25059} GHH501J +GHO                =       GHH502Y +      GHO2                                   : ARR( 0.118E-10,     0., 0.0);
+{ 25060} GHH501J +GHO                =       GHH502T +      GHO2                                   : ARR( 0.118E-10,     0., 0.0);
+{ 25061} GHH501J +GHO                =       GHK500g +      GHO                                    : ARR( 0.474E-10,     0., 0.0);
+{ 25062} GHH501J +GHO                =       GHD500b +      GHO                                    : ARR( 0.185E-10,     0., 0.0);
+{ 25063} GHH501J+HV               =       G1H502P +      GHO                                    :  0.100E+01*SUN;
+{ 25064} GHH501J+HV               =       G1H506X +      GHO                                    :  0.100E+01*SUN;
+{ 25065} GHO500W +GHO                =       GHD500f +      GHO2                                   : ARR( 0.406E-11,     0., 0.0);
+{ 25066} GHO500W +GHO                =       GHK500w +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 25067} GHO500W +GHO                =       GHK500u +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 25068} GHO500W +GHO                =       GHK500g +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 25069} GHO500W +GHO                =       GDO500A +      GHO                                    : ARR( 0.162E-10,     0., 0.0);
+{ 25070} GHO500W +GHO                =       G2O500U                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 25071} GHO500W+HV               =       G1O500b +      GHO                                    :  0.100E+01*SUN;
+{ 25072} G2O500U +GNO                =       G1O500b +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 25073} G2O500U +GNO                =       GNO500Y                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 25074} G2O500U +GHO2               =       GHO500W                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 25075} G2O500U +GNO3               =       G1O500b +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 25076} G2O500U +MEPERO             =  0.480G1O500b + 0.260GOO500D + 0.260GDO500A                 : ARR( 0.164E-12,  -795., 0.0);
+{ 25077} G2O500U +PERO1              =  0.600G1O500b + 0.200GOO500D + 0.200GDO500A                 : ARR( 0.126E-12,  -850., 0.0);
+{ 25078} G2O500U +PERO2              =  0.560G1O500b + 0.220GOO500D + 0.220GDO500A                 : ARR( 0.471E-13, -1350., 0.0);
+{ 25079} G2O500U +PERO3              =  0.600G1O500b + 0.200GOO500D + 0.200GDO500A                 : ARR( 0.142E-12, -1200., 0.0);
+{ 25080} G2O500U +PERO5              =  0.600G1O500b + 0.200GOO500D + 0.200GDO500A                 : ARR( 0.533E-11,   500., 0.0);
+{ 25081} G2O500U +PERO6              =  0.460G1O500b + 0.270GOO500D + 0.270GDO500A                 : ARR( 0.488E-13, -1250., 0.0);
+{ 25082} G2O500U +PERO9              =  0.800G1O500b + 0.200GDO500A                                : ARR( 0.100E-10,     0., 0.0);
+{ 25083} GHK500g +GHO                =       GHD501I +      GHO2                                   : ARR( 0.405E-11,     0., 0.0);
+{ 25084} GHK500g +GHO                =       GHK500r +      GHO2                                   : ARR( 0.329E-10,     0., 0.0);
+{ 25085} GHK500g +GHO                =       GHK500v +      GHO2                                   : ARR( 0.633E-11,     0., 0.0);
+{ 25086} GHK500g +GHO                =       GDK500N +      GHO                                    : ARR( 0.988E-11,     0., 0.0);
+{ 25087} GHK500g +GHO                =       G2K500n                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 25088} GHK500g+HV               =       G3K400B +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 25089} GHK500g+HV               =       G1K5015 +      GHO                                    :  0.100E+01*SUN;
+{ 25090} G2K500n +GNO                =       G1K5015 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 25091} G2K500n +GNO                =       GNK5011                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 25092} G2K500n +GHO2               =       GHK500g                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 25093} G2K500n +GNO3               =       G1K5015 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 25094} G2K500n +MEPERO             =  0.480G1K5015 + 0.260GKO500L + 0.260GDK500N                 : ARR( 0.164E-12,  -795., 0.0);
+{ 25095} G2K500n +PERO1              =  0.600G1K5015 + 0.200GKO500L + 0.200GDK500N                 : ARR( 0.126E-12,  -850., 0.0);
+{ 25096} G2K500n +PERO2              =  0.560G1K5015 + 0.220GKO500L + 0.220GDK500N                 : ARR( 0.471E-13, -1350., 0.0);
+{ 25097} G2K500n +PERO3              =  0.600G1K5015 + 0.200GKO500L + 0.200GDK500N                 : ARR( 0.142E-12, -1200., 0.0);
+{ 25098} G2K500n +PERO5              =  0.600G1K5015 + 0.200GKO500L + 0.200GDK500N                 : ARR( 0.533E-11,   500., 0.0);
+{ 25099} G2K500n +PERO6              =  0.460G1K5015 + 0.270GKO500L + 0.270GDK500N                 : ARR( 0.488E-13, -1250., 0.0);
+{ 25100} G2K500n +PERO9              =  0.800G1K5015 + 0.200GDK500N                                : ARR( 0.100E-10,     0., 0.0);
+{ 25101} GHD400D +GHO                =       GDD4002 +      GHO                                    : ARR( 0.517E-10,     0., 0.0);
+{ 25102} GHD400D +GHO                =       G3H3000 +      GCO                                    : ARR( 0.128E-10,     0., 0.0);
+{ 25103} GHD400D +GHO                =       G2D400C                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 25104} GHD400D +GNO3               =       G3H3000 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 25105} GHD400D+HV               =       G1D400F +      GHO                                    :  0.100E+01*SUN;
+{ 25106} GHD400D+HV               =       G3H3000 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 25107} GHD400D+HV               =       GHD3000 +      GCO                                    :  0.100E+01*SUN;
+{ 25108} GHD400D+HV               =       GH02000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 25109} GHH400B +GHO                =       GHD400C +      GHO                                    : ARR( 0.169E-10,     0., 0.0);
+{ 25110} GHH400B +GHO                =       GHD4004 +      GHO                                    : ARR( 0.137E-09,     0., 0.0);
+{ 25111} GHH400B +GHO                =       G3H400S                                               : ARR( 0.218E-10,     0., 0.0);
+{ 25112} GHH400B +GNO3               =       G3H400S +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 25113} GHH400B+HV               =       G1H400F +      GHO                                    :  0.100E+01*SUN;
+{ 25114} GHH400B+HV               =       G1H400G +      GHO                                    :  0.100E+01*SUN;
+{ 25115} GHH400B+HV               =       G2H300B +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 25116} GHH400B+HV               =       GDD2000 +      GD02000 + 2.000GHO                     :  0.100E+01*SUN;
+{ 25117} GHD500d +GHO                =       GDD5007 +      GHO                                    : ARR( 0.103E-10,     0., 0.0);
+{ 25118} GHD500d +GHO                =       GHD500r +      GHO2                                   : ARR( 0.210E-10,     0., 0.0);
+{ 25119} GHD500d +GHO                =       G3H501H                                               : ARR( 0.219E-10,     0., 0.0);
+{ 25120} GHD500d +GHO                =       G2D500b                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 25121} GHD500d +GNO3               =       G3H501H +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 25122} GHD500d+HV               =       G1D5012 +      GHO                                    :  0.100E+01*SUN;
+{ 25123} GHD500d+HV               =       G3H2000 +      G2D3003                                :  0.100E+01*SUN;
+{ 25124} GHD500d+HV               =       GHD4004 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 25125} G3H501H +GHO2               =  0.800GGH501Y + 0.200GAH501g + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 25126} G3H501H +GNO                =       GHD4004 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 25127} G3H501H +GNO2               =       GPH501f                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 25128} G3H501H +GNO3               =       GHD4004 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 25129} G3H501H +MEPERO             =  0.685GHD4004 + 0.315GAH501g + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25130} G3H501H +PERO1              =  0.800GHD4004 + 0.200GAH501g + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25131} G3H501H +PERO2              =  0.750GHD4004 + 0.250GAH501g + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25132} G3H501H +PERO3              =  0.800GHD4004 + 0.200GAH501g + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25133} G3H501H +PERO5              =  0.650GHD4004 + 0.350GAH501g + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25134} G3H501H +PERO6              =  0.650GHD4004 + 0.350GAH501g + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25135} G3H501H +PERO9              =       GHD4004 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 25136} G2D500b +GNO                =       G1D5012 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 25137} G2D500b +GNO                =       GND500o                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 25138} G2D500b +GHO2               =       GHD500d                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 25139} G2D500b +GNO3               =       G1D5012 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 25140} G2D500b +MEPERO             =  0.480G1D5012 + 0.260GDK500F + 0.260GDD5007                 : ARR( 0.164E-12,  -795., 0.0);
+{ 25141} G2D500b +PERO1              =  0.600G1D5012 + 0.200GDK500F + 0.200GDD5007                 : ARR( 0.126E-12,  -850., 0.0);
+{ 25142} G2D500b +PERO2              =  0.560G1D5012 + 0.220GDK500F + 0.220GDD5007                 : ARR( 0.471E-13, -1350., 0.0);
+{ 25143} G2D500b +PERO3              =  0.600G1D5012 + 0.200GDK500F + 0.200GDD5007                 : ARR( 0.142E-12, -1200., 0.0);
+{ 25144} G2D500b +PERO5              =  0.600G1D5012 + 0.200GDK500F + 0.200GDD5007                 : ARR( 0.533E-11,   500., 0.0);
+{ 25145} G2D500b +PERO6              =  0.460G1D5012 + 0.270GDK500F + 0.270GDD5007                 : ARR( 0.488E-13, -1250., 0.0);
+{ 25146} G2D500b +PERO9              =  0.800G1D5012 + 0.200GDD5007                                : ARR( 0.100E-10,     0., 0.0);
+{ 25147} GHD500e +GHO                =       GDD5007 +      GHO                                    : ARR( 0.163E-10,     0., 0.0);
+{ 25148} GHD500e +GHO                =       GHD500r +      GHO2                                   : ARR( 0.332E-10,     0., 0.0);
+{ 25149} GHD500e +GHO                =       G3H4006 +      GCO                                    : ARR( 0.129E-10,     0., 0.0);
+{ 25150} GHD500e +GHO                =       G2D500c                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 25151} GHD500e +GNO3               =       G3H4006 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 25152} GHD500e+HV               =       G1D500M +      GHO                                    :  0.100E+01*SUN;
+{ 25153} GHD500e+HV               =       G3H4006 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 25154} GHD500e+HV               =       GHD4003 +      GCO                                    :  0.100E+01*SUN;
+{ 25155} GHD500e+HV               =       GHO3000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 25156} G2D500c +GNO                =       G1D500M +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 25157} G2D500c +GNO                =       GND500A                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 25158} G2D500c +GHO2               =       GHD500e                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 25159} G2D500c +GNO3               =       G1D500M +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 25160} G2D500c +MEPERO             =  0.480G1D500M + 0.260GDK5005 + 0.260GDD5007                 : ARR( 0.164E-12,  -795., 0.0);
+{ 25161} G2D500c +PERO1              =  0.600G1D500M + 0.200GDK5005 + 0.200GDD5007                 : ARR( 0.126E-12,  -850., 0.0);
+{ 25162} G2D500c +PERO2              =  0.560G1D500M + 0.220GDK5005 + 0.220GDD5007                 : ARR( 0.471E-13, -1350., 0.0);
+{ 25163} G2D500c +PERO3              =  0.600G1D500M + 0.200GDK5005 + 0.200GDD5007                 : ARR( 0.142E-12, -1200., 0.0);
+{ 25164} G2D500c +PERO5              =  0.600G1D500M + 0.200GDK5005 + 0.200GDD5007                 : ARR( 0.533E-11,   500., 0.0);
+{ 25165} G2D500c +PERO6              =  0.460G1D500M + 0.270GDK5005 + 0.270GDD5007                 : ARR( 0.488E-13, -1250., 0.0);
+{ 25166} G2D500c +PERO9              =  0.800G1D500M + 0.200GDD5007                                : ARR( 0.100E-10,     0., 0.0);
+{ 25167} GHN503z +GHO                =       GND500s +      GHO                                    : ARR( 0.177E-10,     0., 0.0);
+{ 25168} GHN503z +GHO                =       G3H501I                                               : ARR( 0.228E-10,     0., 0.0);
+{ 25169} GHN503z +GHO                =       G2N503U                                               : ARR( 0.209E-11,  -190., 0.0);
+{ 25170} GHN503z +GNO3               =       G3H501I +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 25171} GHN503z+HV               =       G1N503w +      GHO                                    :  0.100E+01*SUN;
+{ 25172} GHN503z+HV               =       G1H502S +      GNO2                                   :  0.100E+01*SUN;
+{ 25173} GHN503z+HV               =       GHN400Y +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 25174} G3H501I +GHO2               =  0.800GGH501Z + 0.200GAH501h + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 25175} G3H501I +GNO                =       GHN400Y +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 25176} G3H501I +GNO2               =       GPH500m                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 25177} G3H501I +GNO3               =       GHN400Y +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 25178} G3H501I +MEPERO             =  0.685GHN400Y + 0.315GAH501h + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25179} G3H501I +PERO1              =  0.800GHN400Y + 0.200GAH501h + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25180} G3H501I +PERO2              =  0.750GHN400Y + 0.250GAH501h + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25181} G3H501I +PERO3              =  0.800GHN400Y + 0.200GAH501h + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25182} G3H501I +PERO5              =  0.650GHN400Y + 0.350GAH501h + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25183} G3H501I +PERO6              =  0.650GHN400Y + 0.350GAH501h + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25184} G3H501I +PERO9              =       GHN400Y +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 25185} GHD500f +GHO                =       GDD5006 +      GHO                                    : ARR( 0.168E-10,     0., 0.0);
+{ 25186} GHD500f +GHO                =       GHD501I +      GHO2                                   : ARR( 0.108E-10,     0., 0.0);
+{ 25187} GHD500f +GHO                =       GHD500g +      GHO2                                   : ARR( 0.342E-10,     0., 0.0);
+{ 25188} GHD500f +GHO                =       GHD501J +      GHO2                                   : ARR( 0.658E-11,     0., 0.0);
+{ 25189} GHD500f +GHO                =       G3H501J                                               : ARR( 0.217E-10,     0., 0.0);
+{ 25190} GHD500f +GNO3               =       G3H501J +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 25191} GHD500f+HV               =       G1D5013 +      GHO                                    :  0.100E+01*SUN;
+{ 25192} GHD500f+HV               =       GHD400E +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 25193} G3H501J +GHO2               =  0.800GGH501a + 0.200GAH501i + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 25194} G3H501J +GNO                =       GHD400E +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 25195} G3H501J +GNO2               =       GPH501g                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 25196} G3H501J +GNO3               =       GHD400E +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 25197} G3H501J +MEPERO             =  0.685GHD400E + 0.315GAH501i + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25198} G3H501J +PERO1              =  0.800GHD400E + 0.200GAH501i + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25199} G3H501J +PERO2              =  0.750GHD400E + 0.250GAH501i + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25200} G3H501J +PERO3              =  0.800GHD400E + 0.200GAH501i + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25201} G3H501J +PERO5              =  0.650GHD400E + 0.350GAH501i + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25202} G3H501J +PERO6              =  0.650GHD400E + 0.350GAH501i + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25203} G3H501J +PERO9              =       GHD400E +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 25204} GHD500g +GHO                =       GDD5008 +      GHO                                    : ARR( 0.571E-10,     0., 0.0);
+{ 25205} GHD500g +GHO                =       G3H501K                                               : ARR( 0.738E-10,     0., 0.0);
+{ 25206} GHD500g +GNO3               =       G3H501K +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 25207} GHD500g+HV               =       G1D5014 +      GHO                                    :  0.100E+01*SUN;
+{ 25208} GHD500g+HV               =       G3H3003 +      GDD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 25209} GHD500g+HV               =       GHD400F +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 25210} G3H501K +GHO2               =  0.800GGH501b + 0.200GAH501j + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 25211} G3H501K +GNO                =       GHD400F +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 25212} G3H501K +GNO2               =       GPH501h                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 25213} G3H501K +GNO3               =       GHD400F +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 25214} G3H501K +MEPERO             =  0.685GHD400F + 0.315GAH501j + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25215} G3H501K +PERO1              =  0.800GHD400F + 0.200GAH501j + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25216} G3H501K +PERO2              =  0.750GHD400F + 0.250GAH501j + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25217} G3H501K +PERO3              =  0.800GHD400F + 0.200GAH501j + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25218} G3H501K +PERO5              =  0.650GHD400F + 0.350GAH501j + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25219} G3H501K +PERO6              =  0.650GHD400F + 0.350GAH501j + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25220} G3H501K +PERO9              =       GHD400F +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 25221} GGH500B +GHO                =       GGD5002 +      GHO                                    : ARR( 0.168E-10,     0., 0.0);
+{ 25222} GGH500B +GHO                =       GGH501Y +      GHO2                                   : ARR( 0.107E-10,     0., 0.0);
+{ 25223} GGH500B +GHO                =       GGH501c +      GHO2                                   : ARR( 0.655E-11,     0., 0.0);
+{ 25224} GGH500B +GHO                =       G2G5011                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 25225} GGH500B +GHO                =       G3H5009                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 25226} GGH500B+HV               =       G1G501D +      GHO                                    :  0.100E+01*SUN;
+{ 25227} GGH500B+HV               =       GHD4003 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 25228} G2G5011 +GNO                =       G1G501D +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 25229} G2G5011 +GNO                =       GGN500J                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 25230} G2G5011 +GHO2               =       GGH500B                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 25231} G2G5011 +GNO3               =       G1G501D +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 25232} G2G5011 +MEPERO             =  0.480G1G501D + 0.260GGO5005 + 0.260GGD5002                 : ARR( 0.164E-12,  -795., 0.0);
+{ 25233} G2G5011 +PERO1              =  0.600G1G501D + 0.200GGO5005 + 0.200GGD5002                 : ARR( 0.126E-12,  -850., 0.0);
+{ 25234} G2G5011 +PERO2              =  0.560G1G501D + 0.220GGO5005 + 0.220GGD5002                 : ARR( 0.471E-13, -1350., 0.0);
+{ 25235} G2G5011 +PERO3              =  0.600G1G501D + 0.200GGO5005 + 0.200GGD5002                 : ARR( 0.142E-12, -1200., 0.0);
+{ 25236} G2G5011 +PERO5              =  0.600G1G501D + 0.200GGO5005 + 0.200GGD5002                 : ARR( 0.533E-11,   500., 0.0);
+{ 25237} G2G5011 +PERO6              =  0.460G1G501D + 0.270GGO5005 + 0.270GGD5002                 : ARR( 0.488E-13, -1250., 0.0);
+{ 25238} G2G5011 +PERO9              =  0.800G1G501D + 0.200GGD5002                                : ARR( 0.100E-10,     0., 0.0);
+{ 25239} GAH500B +GHO                =       GAH501k +      GHO2                                   : ARR( 0.495E-11,     0., 0.0);
+{ 25240} GAH500B +GHO                =       GAH501g +      GHO2                                   : ARR( 0.110E-10,     0., 0.0);
+{ 25241} GAH500B +GHO                =       GAD5003 +      GHO                                    : ARR( 0.171E-10,     0., 0.0);
+{ 25242} GAH500B +GHO                =       G2A501C                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 25243} GAH500B+HV               =       G1A501L +      GHO                                    :  0.100E+01*SUN;
+{ 25244} G2A501C +GNO                =       G1A501L +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 25245} G2A501C +GNO                =       GAN500J                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 25246} G2A501C +GHO2               =       GAH500B                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 25247} G2A501C +GNO3               =       G1A501L +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 25248} G2A501C +MEPERO             =  0.480G1A501L + 0.260GAO5005 + 0.260GAD5003                 : ARR( 0.164E-12,  -795., 0.0);
+{ 25249} G2A501C +PERO1              =  0.600G1A501L + 0.200GAO5005 + 0.200GAD5003                 : ARR( 0.126E-12,  -850., 0.0);
+{ 25250} G2A501C +PERO2              =  0.560G1A501L + 0.220GAO5005 + 0.220GAD5003                 : ARR( 0.471E-13, -1350., 0.0);
+{ 25251} G2A501C +PERO3              =  0.600G1A501L + 0.200GAO5005 + 0.200GAD5003                 : ARR( 0.142E-12, -1200., 0.0);
+{ 25252} G2A501C +PERO5              =  0.600G1A501L + 0.200GAO5005 + 0.200GAD5003                 : ARR( 0.533E-11,   500., 0.0);
+{ 25253} G2A501C +PERO6              =  0.460G1A501L + 0.270GAO5005 + 0.270GAD5003                 : ARR( 0.488E-13, -1250., 0.0);
+{ 25254} G2A501C +PERO9              =  0.800G1A501L + 0.200GAD5003                                : ARR( 0.100E-10,     0., 0.0);
+{ 25255} GPH500B                     =       G3H5009 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 25256} GPH500B +GHO                =       GPD5002 +      GHO                                    : ARR( 0.168E-10,     0., 0.0);
+{ 25257} GPH500B +GHO                =       GPH501f +      GHO2                                   : ARR( 0.108E-10,     0., 0.0);
+{ 25258} GPH500B +GHO                =       GPH501i +      GHO2                                   : ARR( 0.658E-11,     0., 0.0);
+{ 25259} GPH500B +GHO                =       G2P501E                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 25260} GPH500B+HV               =       G1P501N +      GHO                                    :  0.100E+01*SUN;
+{ 25261} GPH500B+HV               =       G3H5009 +      GNO2                                   :  0.100E+01*SUN;
+{ 25262} G2P501E +GNO                =       G1P501N +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 25263} G2P501E +GNO                =       GPN500J                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 25264} G2P501E +GHO2               =       GPH500B                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 25265} G2P501E +GNO3               =       G1P501N +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 25266} G2P501E +MEPERO             =  0.480G1P501N + 0.260GPO5005 + 0.260GPD5002                 : ARR( 0.164E-12,  -795., 0.0);
+{ 25267} G2P501E +PERO1              =  0.600G1P501N + 0.200GPO5005 + 0.200GPD5002                 : ARR( 0.126E-12,  -850., 0.0);
+{ 25268} G2P501E +PERO2              =  0.560G1P501N + 0.220GPO5005 + 0.220GPD5002                 : ARR( 0.471E-13, -1350., 0.0);
+{ 25269} G2P501E +PERO3              =  0.600G1P501N + 0.200GPO5005 + 0.200GPD5002                 : ARR( 0.142E-12, -1200., 0.0);
+{ 25270} G2P501E +PERO5              =  0.600G1P501N + 0.200GPO5005 + 0.200GPD5002                 : ARR( 0.533E-11,   500., 0.0);
+{ 25271} G2P501E +PERO6              =  0.460G1P501N + 0.270GPO5005 + 0.270GPD5002                 : ARR( 0.488E-13, -1250., 0.0);
+{ 25272} G2P501E +PERO9              =  0.800G1P501N + 0.200GPD5002                                : ARR( 0.100E-10,     0., 0.0);
+{ 25273} GHD3005 +GHO                =       GDD3001 +      GHO                                    : ARR( 0.534E-10,     0., 0.0);
+{ 25274} GHD3005 +GHO                =       GHD3001 +      GHO2                                   : ARR( 0.658E-11,     0., 0.0);
+{ 25275} GHD3005 +GHO                =       G3H3003                                               : ARR( 0.218E-10,     0., 0.0);
+{ 25276} GHD3005 +GNO3               =       G3H3003 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 25277} GHD3005+HV               =       G1D3003 +      GHO                                    :  0.100E+01*SUN;
+{ 25278} GHD3005+HV               =       GHD2000 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 25279} GHN5041 +GHO                =       GND500m +      GHO                                    : ARR( 0.333E-11,     0., 0.0);
+{ 25280} GHN5041 +GHO                =       GHN505C +      GHO2                                   : ARR( 0.650E-11,     0., 0.0);
+{ 25281} GHN5041 +GHO                =       G3H501L                                               : ARR( 0.215E-10,     0., 0.0);
+{ 25282} GHN5041 +GHO                =       G2N5054                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 25283} GHN5041 +GNO3               =       G3H501L +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 25284} GHN5041+HV               =       G1N505o +      GHO                                    :  0.100E+01*SUN;
+{ 25285} GHN5041+HV               =       G1H5072 +      GNO2                                   :  0.100E+01*SUN;
+{ 25286} GHN5041+HV               =       GHN400G +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 25287} G3H501L +GHO2               =  0.800GGH501d + 0.200GAH501l + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 25288} G3H501L +GNO                =       GHN400G +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 25289} G3H501L +GNO2               =       GPH501j                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 25290} G3H501L +GNO3               =       GHN400G +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 25291} G3H501L +MEPERO             =  0.685GHN400G + 0.315GAH501l + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25292} G3H501L +PERO1              =  0.800GHN400G + 0.200GAH501l + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25293} G3H501L +PERO2              =  0.750GHN400G + 0.250GAH501l + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25294} G3H501L +PERO3              =  0.800GHN400G + 0.200GAH501l + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25295} G3H501L +PERO5              =  0.650GHN400G + 0.350GAH501l + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25296} G3H501L +PERO6              =  0.650GHN400G + 0.350GAH501l + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25297} G3H501L +PERO9              =       GHN400G +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 25298} G2N5054 +GNO                =       G1N505o +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 25299} G2N5054 +GNO                =       GNN502N                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 25300} G2N5054 +GHO2               =       GHN5041                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 25301} G2N5054 +GNO3               =       G1N505o +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 25302} G2N5054 +MEPERO             =  0.480G1N505o + 0.260GND500l + 0.260GND500m                 : ARR( 0.164E-12,  -795., 0.0);
+{ 25303} G2N5054 +PERO1              =  0.600G1N505o + 0.200GND500l + 0.200GND500m                 : ARR( 0.126E-12,  -850., 0.0);
+{ 25304} G2N5054 +PERO2              =  0.560G1N505o + 0.220GND500l + 0.220GND500m                 : ARR( 0.471E-13, -1350., 0.0);
+{ 25305} G2N5054 +PERO3              =  0.600G1N505o + 0.200GND500l + 0.200GND500m                 : ARR( 0.142E-12, -1200., 0.0);
+{ 25306} G2N5054 +PERO5              =  0.600G1N505o + 0.200GND500l + 0.200GND500m                 : ARR( 0.533E-11,   500., 0.0);
+{ 25307} G2N5054 +PERO6              =  0.460G1N505o + 0.270GND500l + 0.270GND500m                 : ARR( 0.488E-13, -1250., 0.0);
+{ 25308} G2N5054 +PERO9              =  0.800G1N505o + 0.200GND500m                                : ARR( 0.100E-10,     0., 0.0);
+{ 25309} G1H5072                     =       G3H5009                                               : ARR( 0.800E+11,  4559., 0.0);
+{ 25310} G1H5072                     =       GCH2O   +      GDD4001 +      GHO                     : ARR( 0.200E+15,  7140., 0.0);
+{ 25311} G1H5072                     =       GHD2000 +      G2D3003                                : ARR( 0.200E+15,  7118., 0.0);
+{ 25312} GHH501K +GHO                =       GHK500E +      GHO                                    : ARR( 0.140E-09,     0., 0.0);
+{ 25313} GHH501K +GHO                =       GHD500a +      GHO                                    : ARR( 0.173E-10,     0., 0.0);
+{ 25314} GHH501K+HV               =       G3K2001 +      G2H300B                                :  0.100E+01*SUN;
+{ 25315} GHH501K+HV               =       GKO3000 +      GDD2000 + 2.000GHO                     :  0.100E+01*SUN;
+{ 25316} GHH501K+HV               =       G1H502j +      GHO                                    :  0.100E+01*SUN;
+{ 25317} GHH501K+HV               =       G1H5023 +      GHO                                    :  0.100E+01*SUN;
+{ 25318} GGH500C +GHO                =       GGN500L +      GHO                                    : ARR( 0.439E-10,     0., 0.0);
+{ 25319} GGH500C +GHO                =       G2G5008                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 25320} GGH500C +GHO                =       G3H500A                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 25321} GGH500C+HV               =       G1G501F +      GNO2                                   :  0.100E+01*SUN;
+{ 25322} GGH500C+HV               =       G1G500A +      GHO                                    :  0.100E+01*SUN;
+{ 25323} GGH500C+HV               =       G2H400F +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 25324} G1G501F                     =       G2G5012                                               : ARR( 0.160E+12,  3221., 0.0);
+{ 25325} G1G501F                     =       GGH400Q +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 25326} G2G5012 +GNO                =       G1G501G +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 25327} G2G5012 +GNO                =       GGH501e                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 25328} G2G5012 +GHO2               =       GGH501Q                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 25329} G2G5012 +GNO3               =       G1G501G +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 25330} G2G5012 +MEPERO             =  0.340G1G501G + 0.330GGH500h + 0.330GGH501f                 : ARR( 0.565E-13,  -845., 0.0);
+{ 25331} G2G5012 +PERO1              =  0.460G1G501G + 0.270GGH500h + 0.270GGH501f                 : ARR( 0.434E-13,  -900., 0.0);
+{ 25332} G2G5012 +PERO2              =  0.400G1G501G + 0.300GGH500h + 0.300GGH501f                 : ARR( 0.162E-13, -1400., 0.0);
+{ 25333} G2G5012 +PERO3              =  0.460G1G501G + 0.270GGH500h + 0.270GGH501f                 : ARR( 0.488E-13, -1250., 0.0);
+{ 25334} G2G5012 +PERO5              =  0.460G1G501G + 0.270GGH500h + 0.270GGH501f                 : ARR( 0.183E-11,   450., 0.0);
+{ 25335} G2G5012 +PERO6              =  0.300G1G501G + 0.350GGH500h + 0.350GGH501f                 : ARR( 0.168E-13, -1300., 0.0);
+{ 25336} G2G5012 +PERO9              =  0.650G1G501G + 0.350GGH501f                                : ARR( 0.100E-10,     0., 0.0);
+{ 25337} G1G501G                     =       GGH501g +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{ 25338} G1G501G                     =       GHD400A +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 25339} GAH500C +GHO                =       GAN500L +      GHO                                    : ARR( 0.443E-10,     0., 0.0);
+{ 25340} GAH500C +GHO                =       G2A500A                                               : ARR( 0.204E-11,  -190., 0.0);
+{ 25341} GAH500C+HV               =       G1A500C +      GHO                                    :  0.100E+01*SUN;
+{ 25342} GAH500C+HV               =       G1A501N +      GNO2                                   :  0.100E+01*SUN;
+{ 25343} G1A501N                     =       GAH400T +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 25344} GPH500C                     =       G3H500A +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 25345} GPH500C +GHO                =       GPN500L +      GHO                                    : ARR( 0.441E-10,     0., 0.0);
+{ 25346} GPH500C +GHO                =       G2P5009                                               : ARR( 0.203E-11,  -190., 0.0);
+{ 25347} GPH500C+HV               =       G1P501P +      GNO2                                   :  0.100E+01*SUN;
+{ 25348} GPH500C+HV               =       G1P500B +      GHO                                    :  0.100E+01*SUN;
+{ 25349} GPH500C+HV               =       G3H500A +      GNO2                                   :  0.100E+01*SUN;
+{ 25350} G1P501P                     =       G2P501F                                               : ARR( 0.160E+12,  3221., 0.0);
+{ 25351} G1P501P                     =       GPH400T +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 25352} G2P501F +GNO                =       G1P501Q +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 25353} G2P501F +GNO                =       GPH501k                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 25354} G2P501F +GHO2               =       GPH501a                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 25355} G2P501F +GNO3               =       G1P501Q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 25356} G2P501F +MEPERO             =  0.340G1P501Q + 0.330GPH500o + 0.330GPH501l                 : ARR( 0.565E-13,  -845., 0.0);
+{ 25357} G2P501F +PERO1              =  0.460G1P501Q + 0.270GPH500o + 0.270GPH501l                 : ARR( 0.434E-13,  -900., 0.0);
+{ 25358} G2P501F +PERO2              =  0.400G1P501Q + 0.300GPH500o + 0.300GPH501l                 : ARR( 0.162E-13, -1400., 0.0);
+{ 25359} G2P501F +PERO3              =  0.460G1P501Q + 0.270GPH500o + 0.270GPH501l                 : ARR( 0.488E-13, -1250., 0.0);
+{ 25360} G2P501F +PERO5              =  0.460G1P501Q + 0.270GPH500o + 0.270GPH501l                 : ARR( 0.183E-11,   450., 0.0);
+{ 25361} G2P501F +PERO6              =  0.300G1P501Q + 0.350GPH500o + 0.350GPH501l                 : ARR( 0.168E-13, -1300., 0.0);
+{ 25362} G2P501F +PERO9              =  0.650G1P501Q + 0.350GPH501l                                : ARR( 0.100E-10,     0., 0.0);
+{ 25363} G1P501Q                     =       GPH501m +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{ 25364} G1P501Q                     =       GHD400A +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 25365} GHN400S +GHO                =       GHN4011 +      GHO2                                   : ARR( 0.210E-11,     0., 0.0);
+{ 25366} GHN400S +GHO                =       GNN400J +      GHO                                    : ARR( 0.838E-11,     0., 0.0);
+{ 25367} GHN400S +GHO                =       G2N400M                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 25368} GHN400S+HV               =       G1H400t +      GNO2                                   :  0.100E+01*SUN;
+{ 25369} GHN400S+HV               =       G1N400N +      GHO                                    :  0.100E+01*SUN;
+{ 25370} GHN400S+HV               =       G1H400H +      GNO2                                   :  0.100E+01*SUN;
+{ 25371} GHH400C +GHO                =       GHN400W +      GHO                                    : ARR( 0.426E-10,     0., 0.0);
+{ 25372} GHH400C +GHO                =       GHN400T +      GHO                                    : ARR( 0.166E-10,     0., 0.0);
+{ 25373} GHH400C +GHO                =       G2H400G                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 25374} GHH400C +GHO                =       G2H400F                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 25375} GHH400C+HV               =       G1H400y +      GNO2                                   :  0.100E+01*SUN;
+{ 25376} GHH400C+HV               =       G1H400J +      GHO                                    :  0.100E+01*SUN;
+{ 25377} GHH400C+HV               =       G1H400H +      GHO                                    :  0.100E+01*SUN;
+{ 25378} G1H400y                     =       GHD400A +      GHO                                    : ARR( 0.160E+12,  2186., 0.0);
+{ 25379} G1H400y                     =       GHH3005 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 25380} GHN400T +GHO                =       GHN400R +      GHO2                                   : ARR( 0.656E-11,     0., 0.0);
+{ 25381} GHN400T +GHO                =       GND400G +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 25382} GHN400T +GHO                =       G3H400H                                               : ARR( 0.208E-10,     0., 0.0);
+{ 25383} GHN400T +GHO                =       G2N400v                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 25384} GHN400T +GNO3               =       G3H400H +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 25385} GHN400T+HV               =       G1H400z +      GNO2                                   :  0.100E+01*SUN;
+{ 25386} GHN400T+HV               =       G1N4011 +      GHO                                    :  0.100E+01*SUN;
+{ 25387} GHN400T+HV               =       GND3002 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 25388} G2N400v +GNO                =       G1N4011 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 25389} G2N400v +GNO                =       GNN400F                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 25390} G2N400v +GHO2               =       GHN400T                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 25391} G2N400v +GNO3               =       G1N4011 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 25392} G2N400v +MEPERO             =  0.340G1N4011 + 0.330GND400F + 0.330GND400G                 : ARR( 0.565E-13,  -845., 0.0);
+{ 25393} G2N400v +PERO1              =  0.460G1N4011 + 0.270GND400F + 0.270GND400G                 : ARR( 0.434E-13,  -900., 0.0);
+{ 25394} G2N400v +PERO2              =  0.400G1N4011 + 0.300GND400F + 0.300GND400G                 : ARR( 0.162E-13, -1400., 0.0);
+{ 25395} G2N400v +PERO3              =  0.460G1N4011 + 0.270GND400F + 0.270GND400G                 : ARR( 0.488E-13, -1250., 0.0);
+{ 25396} G2N400v +PERO5              =  0.460G1N4011 + 0.270GND400F + 0.270GND400G                 : ARR( 0.183E-11,   450., 0.0);
+{ 25397} G2N400v +PERO6              =  0.300G1N4011 + 0.350GND400F + 0.350GND400G                 : ARR( 0.168E-13, -1300., 0.0);
+{ 25398} G2N400v +PERO9              =  0.650G1N4011 + 0.350GND400G                                : ARR( 0.100E-10,     0., 0.0);
+{ 25399} G1H400z                     =       GHD3004 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4427., 0.0);
+{ 25400} GHN5042 +GHO                =       GHN506M +      GHO2                                   : ARR( 0.407E-11,     0., 0.0);
+{ 25401} GHN5042 +GHO                =       GHN505K +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 25402} GHN5042 +GHO                =       GND501S +      GHO                                    : ARR( 0.834E-11,     0., 0.0);
+{ 25403} GHN5042 +GHO                =       G3H501M                                               : ARR( 0.420E-11,     0., 0.0);
+{ 25404} GHN5042 +GHO                =       G2N5055                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 25405} GHN5042 +GNO3               =       G3H501M +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 25406} GHN5042+HV               =       G1N505a +      GHO                                    :  0.100E+01*SUN;
+{ 25407} GHN5042+HV               =       G1H502U +      GNO2                                   :  0.100E+01*SUN;
+{ 25408} GHN5042+HV               =       GHD400A +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 25409} GHN5042+HV               =       GHK3001 +      GND2000                                :  0.100E+01*SUN;
+{ 25410} G3H501M +GHO2               =  0.800GGH501e + 0.200GAH501m + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 25411} G3H501M +GNO                =       GHD400A + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 25412} G3H501M +GNO2               =       GPH501k                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 25413} G3H501M +GNO3               =       GHD400A + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 25414} G3H501M +MEPERO             =  0.685GHD400A + 0.315GAH501m + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25415} G3H501M +PERO1              =  0.800GHD400A + 0.200GAH501m + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25416} G3H501M +PERO2              =  0.750GHD400A + 0.250GAH501m + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25417} G3H501M +PERO3              =  0.800GHD400A + 0.200GAH501m + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25418} G3H501M +PERO5              =  0.650GHD400A + 0.350GAH501m + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25419} G3H501M +PERO6              =  0.650GHD400A + 0.350GAH501m + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25420} G3H501M +PERO9              =       GHD400A +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 25421} G2N5055 +GNO                =       G1N505a +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 25422} G2N5055 +GNO                =       GNN502D                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 25423} G2N5055 +GHO2               =       GHN5042                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 25424} G2N5055 +GNO3               =       G1N505a +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 25425} G2N5055 +MEPERO             =  0.340G1N505a + 0.330GND500r + 0.330GND501S                 : ARR( 0.565E-13,  -845., 0.0);
+{ 25426} G2N5055 +PERO1              =  0.460G1N505a + 0.270GND500r + 0.270GND501S                 : ARR( 0.434E-13,  -900., 0.0);
+{ 25427} G2N5055 +PERO2              =  0.400G1N505a + 0.300GND500r + 0.300GND501S                 : ARR( 0.162E-13, -1400., 0.0);
+{ 25428} G2N5055 +PERO3              =  0.460G1N505a + 0.270GND500r + 0.270GND501S                 : ARR( 0.488E-13, -1250., 0.0);
+{ 25429} G2N5055 +PERO5              =  0.460G1N505a + 0.270GND500r + 0.270GND501S                 : ARR( 0.183E-11,   450., 0.0);
+{ 25430} G2N5055 +PERO6              =  0.300G1N505a + 0.350GND500r + 0.350GND501S                 : ARR( 0.168E-13, -1300., 0.0);
+{ 25431} G2N5055 +PERO9              =  0.650G1N505a + 0.350GND501S                                : ARR( 0.100E-10,     0., 0.0);
+{ 25432} GHD500h +GHO                =       GHD501K +      GHO2                                   : ARR( 0.423E-11,     0., 0.0);
+{ 25433} GHD500h +GHO                =       GHD5014 +      GHO2                                   : ARR( 0.344E-10,     0., 0.0);
+{ 25434} GHD500h +GHO                =       GDK500b +      GHO                                    : ARR( 0.264E-10,     0., 0.0);
+{ 25435} GHD500h +GHO                =       G3H400C +      GCO                                    : ARR( 0.133E-10,     0., 0.0);
+{ 25436} GHD500h +GNO3               =       G3H400C +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 25437} GHD500h+HV               =       G1D5015 +      GHO                                    :  0.100E+01*SUN;
+{ 25438} GHD500h+HV               =       G3H400C +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 25439} GHD500h+HV               =       GHD400A +      GCO                                    :  0.100E+01*SUN;
+{ 25440} GHD500h+HV               =       GHO3003 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 25441} G1D5015                     =       GDO3002 +      G3D2000                                : ARR( 0.200E+15,  3233., 0.0);
+{ 25442} GHD500i +GHO                =       G3H501N                                               : ARR( 0.444E-10,     0., 0.0);
+{ 25443} GHD500i +GHO                =       GDD5008 +      GHO                                    : ARR( 0.214E-09,     0., 0.0);
+{ 25444} GHD500i +GNO3               =       G3H501N +      GHNO3                                  : ARR( 0.240E-13,     0., 0.0);
+{ 25445} GHD500i+HV               =       GCO     +      GHD400L + 2.000GHO2                    :  0.200E+01*SUN;
+{ 25446} GHD500i+HV               =       G1D500R +      GHO                                    :  0.100E+01*SUN;
+{ 25447} G3H501N +GHO2               =  0.800GGH501g + 0.200GAH501n + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 25448} G3H501N +GNO                =       GHD400L +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 25449} G3H501N +GNO2               =       GPH501m                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 25450} G3H501N +GNO3               =       GHD400L +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 25451} G3H501N +MEPERO             =  0.685GHD400L + 0.315GAH501n + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25452} G3H501N +PERO1              =  0.800GHD400L + 0.200GAH501n + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25453} G3H501N +PERO2              =  0.750GHD400L + 0.250GAH501n + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25454} G3H501N +PERO3              =  0.800GHD400L + 0.200GAH501n + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25455} G3H501N +PERO5              =  0.650GHD400L + 0.350GAH501n + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25456} G3H501N +PERO6              =  0.650GHD400L + 0.350GAH501n + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25457} G3H501N +PERO9              =       GHD400L +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 25458} GGN500K +GHO                =       GGN501L +      GHO2                                   : ARR( 0.210E-11,     0., 0.0);
+{ 25459} GGN500K +GHO                =       GGN500L +      GHO2                                   : ARR( 0.105E-10,     0., 0.0);
+{ 25460} GGN500K +GHO                =       G2G5013                                               : ARR( 0.878E-12,     0., 0.0);
+{ 25461} GGN500K +GHO                =       G3N500G                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 25462} GGN500K+HV               =       G1G501H +      GNO2                                   :  0.100E+01*SUN;
+{ 25463} GGN500K+HV               =       G2N400K +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 25464} G2G5013 +GNO                =       G1G501I +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 25465} G2G5013 +GNO                =       GGN501P                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 25466} G2G5013 +GHO2               =       GGH501h                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 25467} G2G5013 +GNO3               =       G1G501I +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 25468} G2G5013 +MEPERO             =  0.340G1G501I + 0.330GGN501N + 0.330GGN501Q                 : ARR( 0.565E-13,  -845., 0.0);
+{ 25469} G2G5013 +PERO1              =  0.460G1G501I + 0.270GGN501N + 0.270GGN501Q                 : ARR( 0.434E-13,  -900., 0.0);
+{ 25470} G2G5013 +PERO2              =  0.400G1G501I + 0.300GGN501N + 0.300GGN501Q                 : ARR( 0.162E-13, -1400., 0.0);
+{ 25471} G2G5013 +PERO3              =  0.460G1G501I + 0.270GGN501N + 0.270GGN501Q                 : ARR( 0.488E-13, -1250., 0.0);
+{ 25472} G2G5013 +PERO5              =  0.460G1G501I + 0.270GGN501N + 0.270GGN501Q                 : ARR( 0.183E-11,   450., 0.0);
+{ 25473} G2G5013 +PERO6              =  0.300G1G501I + 0.350GGN501N + 0.350GGN501Q                 : ARR( 0.168E-13, -1300., 0.0);
+{ 25474} G2G5013 +PERO9              =  0.650G1G501I + 0.350GGN501Q                                : ARR( 0.100E-10,     0., 0.0);
+{ 25475} G1G501H                     =       G2G5014                                               : ARR( 0.160E+12,  3221., 0.0);
+{ 25476} G1G501H                     =       GGD4001 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 25477} G1G501I                     =       GND3002 +      GGD2000 +      GHO2                    : ARR( 0.200E+15,  5342., 0.0);
+{ 25478} G1G501I                     =       GND400F +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 25479} G2G5014 +GNO                =       G1G501J +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 25480} G2G5014 +GNO                =       GGN501R                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 25481} G2G5014 +GHO2               =       GGH501R                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 25482} G2G5014 +GNO3               =       G1G501J +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 25483} G2G5014 +MEPERO             =  0.340G1G501J + 0.330GGO500C + 0.330GGK500P                 : ARR( 0.565E-13,  -845., 0.0);
+{ 25484} G2G5014 +PERO1              =  0.460G1G501J + 0.270GGO500C + 0.270GGK500P                 : ARR( 0.434E-13,  -900., 0.0);
+{ 25485} G2G5014 +PERO2              =  0.400G1G501J + 0.300GGO500C + 0.300GGK500P                 : ARR( 0.162E-13, -1400., 0.0);
+{ 25486} G2G5014 +PERO3              =  0.460G1G501J + 0.270GGO500C + 0.270GGK500P                 : ARR( 0.488E-13, -1250., 0.0);
+{ 25487} G2G5014 +PERO5              =  0.460G1G501J + 0.270GGO500C + 0.270GGK500P                 : ARR( 0.183E-11,   450., 0.0);
+{ 25488} G2G5014 +PERO6              =  0.300G1G501J + 0.350GGO500C + 0.350GGK500P                 : ARR( 0.168E-13, -1300., 0.0);
+{ 25489} G2G5014 +PERO9              =  0.650G1G501J + 0.350GGK500P                                : ARR( 0.100E-10,     0., 0.0);
+{ 25490} G1G501J                     =       GGD500A +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{ 25491} G1G501J                     =       GDO3002 +      GGD2000 +      GHO2                    : ARR( 0.200E+15,  5342., 0.0);
+{ 25492} G1G501J                     =       GDO4006 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 25493} GAN500K +GHO                =       GAN500L +      GHO2                                   : ARR( 0.115E-10,     0., 0.0);
+{ 25494} GAN500K +GHO                =       GAN501G +      GHO2                                   : ARR( 0.231E-11,     0., 0.0);
+{ 25495} GAN500K+HV               =       G1A501O +      GNO2                                   :  0.100E+01*SUN;
+{ 25496} G1A501O                     =       GAD4001 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 25497} GPN500K                     =       G3N500G +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 25498} GPN500K +GHO                =       GPN501H +      GHO2                                   : ARR( 0.211E-11,     0., 0.0);
+{ 25499} GPN500K +GHO                =       GPN500L +      GHO2                                   : ARR( 0.106E-10,     0., 0.0);
+{ 25500} GPN500K +GHO                =       G2P501G                                               : ARR( 0.883E-12,     0., 0.0);
+{ 25501} GPN500K+HV               =       G1P501R +      GNO2                                   :  0.100E+01*SUN;
+{ 25502} GPN500K+HV               =       G3N500G +      GNO2                                   :  0.100E+01*SUN;
+{ 25503} G2P501G +GNO                =       G1P501S +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 25504} G2P501G +GNO                =       GPN501O                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 25505} G2P501G +GHO2               =       GPH501n                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 25506} G2P501G +GNO3               =       G1P501S +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 25507} G2P501G +MEPERO             =  0.340G1P501S + 0.330GPN501T + 0.330GPN501W                 : ARR( 0.565E-13,  -845., 0.0);
+{ 25508} G2P501G +PERO1              =  0.460G1P501S + 0.270GPN501T + 0.270GPN501W                 : ARR( 0.434E-13,  -900., 0.0);
+{ 25509} G2P501G +PERO2              =  0.400G1P501S + 0.300GPN501T + 0.300GPN501W                 : ARR( 0.162E-13, -1400., 0.0);
+{ 25510} G2P501G +PERO3              =  0.460G1P501S + 0.270GPN501T + 0.270GPN501W                 : ARR( 0.488E-13, -1250., 0.0);
+{ 25511} G2P501G +PERO5              =  0.460G1P501S + 0.270GPN501T + 0.270GPN501W                 : ARR( 0.183E-11,   450., 0.0);
+{ 25512} G2P501G +PERO6              =  0.300G1P501S + 0.350GPN501T + 0.350GPN501W                 : ARR( 0.168E-13, -1300., 0.0);
+{ 25513} G2P501G +PERO9              =  0.650G1P501S + 0.350GPN501W                                : ARR( 0.100E-10,     0., 0.0);
+{ 25514} G1P501R                     =       G2P501H                                               : ARR( 0.160E+12,  3221., 0.0);
+{ 25515} G1P501R                     =       GPD4001 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 25516} G1P501S                     =       GND3002 +      GPD2000 +      GHO2                    : ARR( 0.200E+15,  5342., 0.0);
+{ 25517} G1P501S                     =       GND400F +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 25518} G2P501H +GNO                =       G1P501T +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 25519} G2P501H +GNO                =       GPN501X                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 25520} G2P501H +GHO2               =       GPH501b                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 25521} G2P501H +GNO3               =       G1P501T +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 25522} G2P501H +MEPERO             =  0.340G1P501T + 0.330GPO500C + 0.330GPK500P                 : ARR( 0.565E-13,  -845., 0.0);
+{ 25523} G2P501H +PERO1              =  0.460G1P501T + 0.270GPO500C + 0.270GPK500P                 : ARR( 0.434E-13,  -900., 0.0);
+{ 25524} G2P501H +PERO2              =  0.400G1P501T + 0.300GPO500C + 0.300GPK500P                 : ARR( 0.162E-13, -1400., 0.0);
+{ 25525} G2P501H +PERO3              =  0.460G1P501T + 0.270GPO500C + 0.270GPK500P                 : ARR( 0.488E-13, -1250., 0.0);
+{ 25526} G2P501H +PERO5              =  0.460G1P501T + 0.270GPO500C + 0.270GPK500P                 : ARR( 0.183E-11,   450., 0.0);
+{ 25527} G2P501H +PERO6              =  0.300G1P501T + 0.350GPO500C + 0.350GPK500P                 : ARR( 0.168E-13, -1300., 0.0);
+{ 25528} G2P501H +PERO9              =  0.650G1P501T + 0.350GPK500P                                : ARR( 0.100E-10,     0., 0.0);
+{ 25529} G1P501T                     =       GPD500A +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{ 25530} G1P501T                     =       GDO3002 +      GPD2000 +      GHO2                    : ARR( 0.200E+15,  5342., 0.0);
+{ 25531} G1P501T                     =       GDO4006 +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 25532} GNN400I +GHO                =       GNN400J +      GHO2                                   : ARR( 0.421E-11,     0., 0.0);
+{ 25533} GNN400I +GHO                =       G1N400N                                               : ARR( 0.429E-17,    85., 2.0);
+{ 25534} GNN400I+HV               =       G1N400L +      GNO2                                   :  0.200E+01*SUN;
+{ 25535} GHN400U +GHO                =       GHN400Z +      GHO2                                   : ARR( 0.208E-11,     0., 0.0);
+{ 25536} GHN400U +GHO                =       GHN400W +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 25537} GHN400U +GHO                =       GND400F +      GHO                                    : ARR( 0.162E-10,     0., 0.0);
+{ 25538} GHN400U +GHO                =       G2N400K                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 25539} GHN400U+HV               =       G1H400N +      GNO2                                   :  0.100E+01*SUN;
+{ 25540} GHN400U+HV               =       G1N400L +      GHO                                    :  0.100E+01*SUN;
+{ 25541} GND400F +GHO                =       GND400E +      GHO2                                   : ARR( 0.660E-11,     0., 0.0);
+{ 25542} GND400F +GHO                =       GND400G +      GHO2                                   : ARR( 0.634E-11,     0., 0.0);
+{ 25543} GND400F +GHO                =       G3N400O                                               : ARR( 0.210E-10,     0., 0.0);
+{ 25544} GND400F +GNO3               =       G3N400O +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 25545} GND400F+HV               =       G1D400G +      GNO2                                   :  0.100E+01*SUN;
+{ 25546} GND400F+HV               =       GND3002 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 25547} GND500r +GHO                =       GND501T +      GHO2                                   : ARR( 0.412E-11,     0., 0.0);
+{ 25548} GND500r +GHO                =       GND501E +      GHO2                                   : ARR( 0.106E-10,     0., 0.0);
+{ 25549} GND500r +GHO                =       GND501S +      GHO2                                   : ARR( 0.211E-11,     0., 0.0);
+{ 25550} GND500r +GHO                =       G3N501A                                               : ARR( 0.425E-11,     0., 0.0);
+{ 25551} GND500r +GNO3               =       G3N501A +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 25552} GND500r+HV               =       G1D500P +      GNO2                                   :  0.100E+01*SUN;
+{ 25553} GND500r+HV               =       GDO4006 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 25554} GND500r+HV               =       GKO3001 +      GND2000                                :  0.100E+01*SUN;
+{ 25555} G3N501A +GHO2               =  0.800GGN501R + 0.200GAN501S + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 25556} G3N501A +GNO                =       GDO4006 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 25557} G3N501A +GNO2               =       GPN501X                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 25558} G3N501A +GNO3               =       GDO4006 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 25559} G3N501A +MEPERO             =  0.685GDO4006 + 0.315GAN501S + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25560} G3N501A +PERO1              =  0.800GDO4006 + 0.200GAN501S + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25561} G3N501A +PERO2              =  0.750GDO4006 + 0.250GAN501S + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25562} G3N501A +PERO3              =  0.800GDO4006 + 0.200GAN501S + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25563} G3N501A +PERO5              =  0.650GDO4006 + 0.350GAN501S + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25564} G3N501A +PERO6              =  0.650GDO4006 + 0.350GAN501S + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25565} G3N501A +PERO9              =       GDO4006 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 25566} GDK500N +GHO                =       GDD500C +      GHO2                                   : ARR( 0.405E-11,     0., 0.0);
+{ 25567} GDK500N +GHO                =       GDK500a +      GHO2                                   : ARR( 0.329E-10,     0., 0.0);
+{ 25568} GDK500N +GHO                =       GDK500b +      GHO2                                   : ARR( 0.633E-11,     0., 0.0);
+{ 25569} GDK500N +GHO                =       G3K400B +      GCO                                    : ARR( 0.128E-10,     0., 0.0);
+{ 25570} GDK500N +GNO3               =       G3K400B +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 25571} GDK500N+HV               =       G3K400B +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 25572} GDK500N+HV               =       GDO4006 +      GCO                                    :  0.100E+01*SUN;
+{ 25573} GDK500N+HV               =       GOO3002 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 25574} GDD5006 +GHO                =       G3D5009                                               : ARR( 0.417E-10,     0., 0.0);
+{ 25575} GDD5006 +GHO                =       GDD500C +      GHO2                                   : ARR( 0.126E-10,     0., 0.0);
+{ 25576} GDD5006 +GHO                =       GDD5008 +      GHO2                                   : ARR( 0.104E-09,     0., 0.0);
+{ 25577} GDD5006 +GNO3               =       G3D5009 +      GHNO3                                  : ARR( 0.240E-13,     0., 0.0);
+{ 25578} GDD5006+HV               =       GCO     +      GDD4003 + 2.000GHO2                    :  0.200E+01*SUN;
+{ 25579} G3D5009 +GHO2               =  0.800GGD500A + 0.200GAD500C + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 25580} G3D5009 +GNO                =       GDD4003 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 25581} G3D5009 +GNO2               =       GPD500A                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 25582} G3D5009 +GNO3               =       GDD4003 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 25583} G3D5009 +MEPERO             =  0.685GDD4003 + 0.315GAD500C + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25584} G3D5009 +PERO1              =  0.800GDD4003 + 0.200GAD500C + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25585} G3D5009 +PERO2              =  0.750GDD4003 + 0.250GAD500C + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25586} G3D5009 +PERO3              =  0.800GDD4003 + 0.200GAD500C + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25587} G3D5009 +PERO5              =  0.650GDD4003 + 0.350GAD500C + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25588} G3D5009 +PERO6              =  0.650GDD4003 + 0.350GAD500C + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25589} G3D5009 +PERO9              =       GDD4003 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 25590} GGN500L +GHO                =       GGN501G +      GHO2                                   : ARR( 0.132E-11,     0., 0.0);
+{ 25591} GGN500L +GHO                =       G2G5015                                               : ARR( 0.553E-12,     0., 0.0);
+{ 25592} GGN500L +GHO                =       G3N500H                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 25593} GGN500L+HV               =       G1G500Z +      GNO2                                   :  0.100E+01*SUN;
+{ 25594} GGN500L+HV               =       G3N3002 +      G2G2000                                :  0.100E+01*SUN;
+{ 25595} GGN500L+HV               =       G2N400L +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 25596} G2G5015 +GNO                =       G1G501K +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 25597} G2G5015 +GNO                =       GGN501S                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 25598} G2G5015 +GHO2               =       GGH501i                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 25599} G2G5015 +GNO3               =       G1G501K +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 25600} G2G5015 +MEPERO             =  0.340G1G501K + 0.330GGN501O + 0.330GGN501T                 : ARR( 0.565E-13,  -845., 0.0);
+{ 25601} G2G5015 +PERO1              =  0.460G1G501K + 0.270GGN501O + 0.270GGN501T                 : ARR( 0.434E-13,  -900., 0.0);
+{ 25602} G2G5015 +PERO2              =  0.400G1G501K + 0.300GGN501O + 0.300GGN501T                 : ARR( 0.162E-13, -1400., 0.0);
+{ 25603} G2G5015 +PERO3              =  0.460G1G501K + 0.270GGN501O + 0.270GGN501T                 : ARR( 0.488E-13, -1250., 0.0);
+{ 25604} G2G5015 +PERO5              =  0.460G1G501K + 0.270GGN501O + 0.270GGN501T                 : ARR( 0.183E-11,   450., 0.0);
+{ 25605} G2G5015 +PERO6              =  0.300G1G501K + 0.350GGN501O + 0.350GGN501T                 : ARR( 0.168E-13, -1300., 0.0);
+{ 25606} G2G5015 +PERO9              =  0.650G1G501K + 0.350GGN501T                                : ARR( 0.100E-10,     0., 0.0);
+{ 25607} G1G501K                     =       G3N3002 +      GGD2000                                : ARR( 0.200E+15,  5359., 0.0);
+{ 25608} GAN500L +GHO                =       G2A501D                                               : ARR( 0.389E-12,     0., 0.0);
+{ 25609} GAN500L +GHO                =       GAN5014 +      GHO2                                   : ARR( 0.126E-11,     0., 0.0);
+{ 25610} GAN500L +GHO                =       GAD5006 +      GNO2                                   : ARR( 0.146E-12,     0., 0.0);
+{ 25611} GAN500L +GHO                =       G1A500p                                               : ARR( 0.210E-17,    85., 2.0);
+{ 25612} GAN500L +GHO                =       G2N400L +      GCO2                                   : ARR( 0.520E-12,     0., 0.0);
+{ 25613} GAN500L+HV               =       G3A3000 +      GND2000 +      GHO2                    :  0.100E+01*SUN;
+{ 25614} GAN500L+HV               =       G1A500f +      GNO2                                   :  0.100E+01*SUN;
+{ 25615} G2A501D +GNO                =       G1A501P +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 25616} G2A501D +GNO                =       GAN501L                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 25617} G2A501D +GHO2               =       GAH501o                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 25618} G2A501D +GNO3               =       G1A501P +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 25619} G2A501D +MEPERO             =  0.340G1A501P + 0.330GAN501R + 0.330GAN501T                 : ARR( 0.565E-13,  -845., 0.0);
+{ 25620} G2A501D +PERO1              =  0.460G1A501P + 0.270GAN501R + 0.270GAN501T                 : ARR( 0.434E-13,  -900., 0.0);
+{ 25621} G2A501D +PERO2              =  0.400G1A501P + 0.300GAN501R + 0.300GAN501T                 : ARR( 0.162E-13, -1400., 0.0);
+{ 25622} G2A501D +PERO3              =  0.460G1A501P + 0.270GAN501R + 0.270GAN501T                 : ARR( 0.488E-13, -1250., 0.0);
+{ 25623} G2A501D +PERO5              =  0.460G1A501P + 0.270GAN501R + 0.270GAN501T                 : ARR( 0.183E-11,   450., 0.0);
+{ 25624} G2A501D +PERO6              =  0.300G1A501P + 0.350GAN501R + 0.350GAN501T                 : ARR( 0.168E-13, -1300., 0.0);
+{ 25625} G2A501D +PERO9              =  0.650G1A501P + 0.350GAN501T                                : ARR( 0.100E-10,     0., 0.0);
+{ 25626} G1A501P                     =       GAD2000 +      G3N3002                                : ARR( 0.200E+15,  5359., 0.0);
+{ 25627} GPN500L                     =       G3N500H +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 25628} GPN500L +GHO                =       GPD5006 +      GNO2                                   : ARR( 0.146E-12,     0., 0.0);
+{ 25629} GPN500L +GHO                =       GPN5016 +      GHO2                                   : ARR( 0.126E-11,     0., 0.0);
+{ 25630} GPN500L +GHO                =       G2P501I                                               : ARR( 0.525E-12,     0., 0.0);
+{ 25631} GPN500L +GHO                =       G1P500r                                               : ARR( 0.210E-17,    85., 2.0);
+{ 25632} GPN500L+HV               =       G1P500i +      GNO2                                   :  0.100E+01*SUN;
+{ 25633} GPN500L+HV               =       G3N3002 +      G2P2000                                :  0.100E+01*SUN;
+{ 25634} GPN500L+HV               =       G3N500H +      GNO2                                   :  0.100E+01*SUN;
+{ 25635} G2P501I +GNO                =       G1P501U +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 25636} G2P501I +GNO                =       GPN501P                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 25637} G2P501I +GHO2               =       GPH501o                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 25638} G2P501I +GNO3               =       G1P501U +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 25639} G2P501I +MEPERO             =  0.340G1P501U + 0.330GPN501U + 0.330GPN501Y                 : ARR( 0.565E-13,  -845., 0.0);
+{ 25640} G2P501I +PERO1              =  0.460G1P501U + 0.270GPN501U + 0.270GPN501Y                 : ARR( 0.434E-13,  -900., 0.0);
+{ 25641} G2P501I +PERO2              =  0.400G1P501U + 0.300GPN501U + 0.300GPN501Y                 : ARR( 0.162E-13, -1400., 0.0);
+{ 25642} G2P501I +PERO3              =  0.460G1P501U + 0.270GPN501U + 0.270GPN501Y                 : ARR( 0.488E-13, -1250., 0.0);
+{ 25643} G2P501I +PERO5              =  0.460G1P501U + 0.270GPN501U + 0.270GPN501Y                 : ARR( 0.183E-11,   450., 0.0);
+{ 25644} G2P501I +PERO6              =  0.300G1P501U + 0.350GPN501U + 0.350GPN501Y                 : ARR( 0.168E-13, -1300., 0.0);
+{ 25645} G2P501I +PERO9              =  0.650G1P501U + 0.350GPN501Y                                : ARR( 0.100E-10,     0., 0.0);
+{ 25646} G1P501U                     =       G3N3002 +      GPD2000                                : ARR( 0.200E+15,  5359., 0.0);
+{ 25647} GNN400J +GHO                =       GND400E +      GNO2                                   : ARR( 0.148E-12,     0., 0.0);
+{ 25648} GNN400J +GHO                =       GNN400Y +      GHO2                                   : ARR( 0.128E-11,     0., 0.0);
+{ 25649} GNN400J +GHO                =       G1N400q                                               : ARR( 0.214E-17,    85., 2.0);
+{ 25650} GNN400J+HV               =       G1N400m +      GNO2                                   :  0.100E+01*SUN;
+{ 25651} GNN400J+HV               =       G3N3002 +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{ 25652} GNN400J+HV               =       G1N400M +      GNO2                                   :  0.100E+01*SUN;
+{ 25653} GHN400W +GHO                =       GHN4019 +      GHO2                                   : ARR( 0.128E-11,     0., 0.0);
+{ 25654} GHN400W +GHO                =       GND400G +      GHO                                    : ARR( 0.100E-10,     0., 0.0);
+{ 25655} GHN400W +GHO                =       G2N400L                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 25656} GHN400W+HV               =       G1H4011 +      GNO2                                   :  0.100E+01*SUN;
+{ 25657} GHN400W+HV               =       G3N3002 +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 25658} GHN400W+HV               =       G1N400M +      GHO                                    :  0.100E+01*SUN;
+{ 25659} G1H4011                     =       GHD3001 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4576., 0.0);
+{ 25660} GND400G +GHO                =       GND400M +      GHO2                                   : ARR( 0.128E-11,     0., 0.0);
+{ 25661} GND400G +GHO                =       G3N3002 +      GCO                                    : ARR( 0.129E-10,     0., 0.0);
+{ 25662} GND400G +GNO3               =       G3N3002 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 25663} GND400G+HV               =       G1D400I +      GNO2                                   :  0.100E+01*SUN;
+{ 25664} GND400G+HV               =       G3N3002 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 25665} GND400G+HV               =       GND3002 +      GCO                                    :  0.100E+01*SUN;
+{ 25666} GND400G+HV               =       GNO2000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 25667} G1D400I                     =       GDD3002 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4155., 0.0);
+{ 25668} GGH500D +GHO                =       GGH501U +      GHO2                                   : ARR( 0.216E-11,     0., 0.0);
+{ 25669} GGH500D +GHO                =       GGN500M +      GHO                                    : ARR( 0.263E-10,     0., 0.0);
+{ 25670} GGH500D +GHO                =       G2G5009                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 25671} GGH500D +GHO                =       G3H500U                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 25672} GGH500D+HV               =       G1G501L +      GNO2                                   :  0.100E+01*SUN;
+{ 25673} GGH500D+HV               =       G1G500B +      GHO                                    :  0.100E+01*SUN;
+{ 25674} GGH500D+HV               =       GND4003 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 25675} G1G501L                     =       GGK5006 +      GHO                                    : ARR( 0.800E+11,  1899., 0.0);
+{ 25676} G1G501L                     =       GGH400R +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4799., 0.0);
+{ 25677} GGN500M +GHO                =       GGN5013 +      GHO2                                   : ARR( 0.664E-11,     0., 0.0);
+{ 25678} GGN500M +GHO                =       G2G5016                                               : ARR( 0.876E-12,     0., 0.0);
+{ 25679} GGN500M +GHO                =       G3N501B                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 25680} GGN500M+HV               =       G1G501M +      GNO2                                   :  0.100E+01*SUN;
+{ 25681} GGN500M+HV               =       GAN4001 +      GCO2                                   :  0.100E+01*SUN;
+{ 25682} G2G5016 +GNO                =       G1G501N +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 25683} G2G5016 +GNO                =       GGN501U                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 25684} G2G5016 +GHO2               =       GGH501j                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 25685} G2G5016 +GNO3               =       G1G501N +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 25686} G2G5016 +MEPERO             =  0.340G1G501N + 0.330GGN501Q + 0.330GGN501T                 : ARR( 0.565E-13,  -845., 0.0);
+{ 25687} G2G5016 +PERO1              =  0.460G1G501N + 0.270GGN501Q + 0.270GGN501T                 : ARR( 0.434E-13,  -900., 0.0);
+{ 25688} G2G5016 +PERO2              =  0.400G1G501N + 0.300GGN501Q + 0.300GGN501T                 : ARR( 0.162E-13, -1400., 0.0);
+{ 25689} G2G5016 +PERO3              =  0.460G1G501N + 0.270GGN501Q + 0.270GGN501T                 : ARR( 0.488E-13, -1250., 0.0);
+{ 25690} G2G5016 +PERO5              =  0.460G1G501N + 0.270GGN501Q + 0.270GGN501T                 : ARR( 0.183E-11,   450., 0.0);
+{ 25691} G2G5016 +PERO6              =  0.300G1G501N + 0.350GGN501Q + 0.350GGN501T                 : ARR( 0.168E-13, -1300., 0.0);
+{ 25692} G2G5016 +PERO9              =  0.650G1G501N + 0.350GGN501T                                : ARR( 0.100E-10,     0., 0.0);
+{ 25693} G3N501B +GHO2               =  0.800GGN500M + 0.200GAN500M + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 25694} G3N501B +GNO                =       G3N4001 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 25695} G3N501B +GNO2               =       GPN500M                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 25696} G3N501B +GNO3               =       G3N4001 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 25697} G3N501B +MEPERO             =  0.685G3N4001 + 0.315GAN500M + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 25698} G3N501B +PERO1              =  0.800G3N4001 + 0.200GAN500M + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 25699} G3N501B +PERO2              =  0.750G3N4001 + 0.250GAN500M + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 25700} G3N501B +PERO3              =  0.800G3N4001 + 0.200GAN500M + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 25701} G3N501B +PERO5              =  0.650G3N4001 + 0.350GAN500M + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 25702} G3N501B +PERO6              =  0.650G3N4001 + 0.350GAN500M + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 25703} G3N501B +PERO9              =       G3N4001 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 25704} G1G501M                     =       GGD4005 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4427., 0.0);
+{ 25705} G1G501N                     =       GND3002 +      GCO     +      GHO2    +      GCO      : ARR( 0.200E+15,  3266., 0.0);
+{ 25706} GGK5006 +GHO                =       GGD500B +      GHO2                                   : ARR( 0.413E-11,     0., 0.0);
+{ 25707} GGK5006 +GHO                =       GGK500O +      GHO2                                   : ARR( 0.336E-10,     0., 0.0);
+{ 25708} GGK5006 +GHO                =       G3K500U                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 25709} GGK5006+HV               =       GAO4004 +      GCO2                                   :  0.100E+01*SUN;
+{ 25710} G3K500U +GHO2               =  0.800GGK5006 + 0.200GAK5006 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 25711} G3K500U +GNO                =       G3K4005 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 25712} G3K500U +GNO2               =       GPK5006                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 25713} G3K500U +GNO3               =       G3K4005 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 25714} G3K500U +MEPERO             =  0.685G3K4005 + 0.315GAK5006 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 25715} G3K500U +PERO1              =  0.800G3K4005 + 0.200GAK5006 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 25716} G3K500U +PERO2              =  0.750G3K4005 + 0.250GAK5006 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 25717} G3K500U +PERO3              =  0.800G3K4005 + 0.200GAK5006 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 25718} G3K500U +PERO5              =  0.650G3K4005 + 0.350GAK5006 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 25719} G3K500U +PERO6              =  0.650G3K4005 + 0.350GAK5006 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 25720} G3K500U +PERO9              =       G3K4005 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 25721} GGD5002 +GHO                =       GGD500B +      GHO2                                   : ARR( 0.632E-11,     0., 0.0);
+{ 25722} GGD5002 +GHO                =       G2G5017                                               : ARR( 0.451E-11,     0., 0.0);
+{ 25723} GGD5002 +GHO                =       GGD500C +      GHO2                                   : ARR( 0.632E-11,     0., 0.0);
+{ 25724} GGD5002 +GHO                =       G3G5002                                               : ARR( 0.209E-10,     0., 0.0);
+{ 25725} GGD5002 +GHO                =       G3D5002                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 25726} GGD5002 +GNO3               =       G3G5002 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 25727} GGD5002+HV               =       GDD4001 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 25728} GGD5002+HV               =       GGD4002 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 25729} G2G5017 +GNO                =       G1G501O +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 25730} G2G5017 +GNO                =       GGN501W                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 25731} G2G5017 +GHO2               =       GGH501g                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 25732} G2G5017 +GNO3               =       G1G501O +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 25733} G2G5017 +MEPERO             =  0.340G1G501O + 0.330GGD500A + 0.330GGD500D                 : ARR( 0.565E-13,  -845., 0.0);
+{ 25734} G2G5017 +PERO1              =  0.460G1G501O + 0.270GGD500A + 0.270GGD500D                 : ARR( 0.434E-13,  -900., 0.0);
+{ 25735} G2G5017 +PERO2              =  0.400G1G501O + 0.300GGD500A + 0.300GGD500D                 : ARR( 0.162E-13, -1400., 0.0);
+{ 25736} G2G5017 +PERO3              =  0.460G1G501O + 0.270GGD500A + 0.270GGD500D                 : ARR( 0.488E-13, -1250., 0.0);
+{ 25737} G2G5017 +PERO5              =  0.460G1G501O + 0.270GGD500A + 0.270GGD500D                 : ARR( 0.183E-11,   450., 0.0);
+{ 25738} G2G5017 +PERO6              =  0.300G1G501O + 0.350GGD500A + 0.350GGD500D                 : ARR( 0.168E-13, -1300., 0.0);
+{ 25739} G2G5017 +PERO9              =  0.650G1G501O + 0.350GGD500D                                : ARR( 0.100E-10,     0., 0.0);
+{ 25740} G3G5002 +GHO2               =  0.800GGG5001 + 0.200GAG5003 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 25741} G3G5002 +GNO                =       GGD4002 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 25742} G3G5002 +GNO2               =       GPG5002                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 25743} G3G5002 +GNO3               =       GGD4002 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 25744} G3G5002 +MEPERO             =  0.685GGD4002 + 0.315GAG5003 + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25745} G3G5002 +PERO1              =  0.800GGD4002 + 0.200GAG5003 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25746} G3G5002 +PERO2              =  0.750GGD4002 + 0.250GAG5003 + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25747} G3G5002 +PERO3              =  0.800GGD4002 + 0.200GAG5003 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25748} G3G5002 +PERO5              =  0.650GGD4002 + 0.350GAG5003 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25749} G3G5002 +PERO6              =  0.650GGD4002 + 0.350GAG5003 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25750} G3G5002 +PERO9              =       GGD4002 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 25751} G1G501O                     =       GGD2000 +      GDD3001 +      GHO2                    : ARR( 0.200E+15,  3099., 0.0);
+{ 25752} G1G501O                     =       GGD3001 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  2877., 0.0);
+{ 25753} GAH500D +GHO                =       GAN500M +      GHO                                    : ARR( 0.191E-10,     0., 0.0);
+{ 25754} GAH500D +GHO                =       G2A501E                                               : ARR( 0.145E-11,     0., 0.0);
+{ 25755} GAH500D +GHO                =       GAH501L +      GHO2                                   : ARR( 0.212E-11,     0., 0.0);
+{ 25756} GAH500D +GHO                =       G2A5009                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 25757} GAH500D+HV               =       G1A500B +      GHO                                    :  0.100E+01*SUN;
+{ 25758} GAH500D+HV               =       G1A501Q +      GNO2                                   :  0.100E+01*SUN;
+{ 25759} G2A501E +GNO                =       G1A501R +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 25760} G2A501E +GNO                =       GAH501S                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 25761} G2A501E +GHO2               =       GAH501p                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 25762} G2A501E +GNO3               =       G1A501R +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 25763} G2A501E +MEPERO             =  0.340G1A501R + 0.330GAH501q + 0.330GAH501o                 : ARR( 0.565E-13,  -845., 0.0);
+{ 25764} G2A501E +PERO1              =  0.460G1A501R + 0.270GAH501q + 0.270GAH501o                 : ARR( 0.434E-13,  -900., 0.0);
+{ 25765} G2A501E +PERO2              =  0.400G1A501R + 0.300GAH501q + 0.300GAH501o                 : ARR( 0.162E-13, -1400., 0.0);
+{ 25766} G2A501E +PERO3              =  0.460G1A501R + 0.270GAH501q + 0.270GAH501o                 : ARR( 0.488E-13, -1250., 0.0);
+{ 25767} G2A501E +PERO5              =  0.460G1A501R + 0.270GAH501q + 0.270GAH501o                 : ARR( 0.183E-11,   450., 0.0);
+{ 25768} G2A501E +PERO6              =  0.300G1A501R + 0.350GAH501q + 0.350GAH501o                 : ARR( 0.168E-13, -1300., 0.0);
+{ 25769} G2A501E +PERO9              =  0.650G1A501R + 0.350GAH501o                                : ARR( 0.100E-10,     0., 0.0);
+{ 25770} G1A501Q                     =       GAK5006 +      GHO                                    : ARR( 0.800E+11,  2034., 0.0);
+{ 25771} G1A501Q                     =       GAH400Q +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4799., 0.0);
+{ 25772} G1A501R                     =       GAH3007 +      GND2000 +      GHO2                    : ARR( 0.200E+15,  2745., 0.0);
+{ 25773} GAN500M +GHO                =       G2A501F                                               : ARR( 0.882E-12,     0., 0.0);
+{ 25774} GAN500M +GHO                =       GAN5018 +      GHO2                                   : ARR( 0.669E-11,     0., 0.0);
+{ 25775} GAN500M +GHO                =       G3N4001 +      GCO2                                   : ARR( 0.532E-12,     0., 0.0);
+{ 25776} GAN500M+HV               =       GND4003 +      GCO2                                   :  0.100E+01*SUN;
+{ 25777} GAN500M+HV               =       G1A501S +      GNO2                                   :  0.100E+01*SUN;
+{ 25778} G2A501F +GNO                =       G1A501T +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 25779} G2A501F +GNO                =       GAN501O                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 25780} G2A501F +GHO2               =       GAH501r                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 25781} G2A501F +GNO3               =       G1A501T +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 25782} G2A501F +MEPERO             =  0.340G1A501T + 0.330GAN501U + 0.330GAN501T                 : ARR( 0.565E-13,  -845., 0.0);
+{ 25783} G2A501F +PERO1              =  0.460G1A501T + 0.270GAN501U + 0.270GAN501T                 : ARR( 0.434E-13,  -900., 0.0);
+{ 25784} G2A501F +PERO2              =  0.400G1A501T + 0.300GAN501U + 0.300GAN501T                 : ARR( 0.162E-13, -1400., 0.0);
+{ 25785} G2A501F +PERO3              =  0.460G1A501T + 0.270GAN501U + 0.270GAN501T                 : ARR( 0.488E-13, -1250., 0.0);
+{ 25786} G2A501F +PERO5              =  0.460G1A501T + 0.270GAN501U + 0.270GAN501T                 : ARR( 0.183E-11,   450., 0.0);
+{ 25787} G2A501F +PERO6              =  0.300G1A501T + 0.350GAN501U + 0.350GAN501T                 : ARR( 0.168E-13, -1300., 0.0);
+{ 25788} G2A501F +PERO9              =  0.650G1A501T + 0.350GAN501T                                : ARR( 0.100E-10,     0., 0.0);
+{ 25789} G1A501S                     =       GAD4005 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4427., 0.0);
+{ 25790} G1A501T                     =       GCO     +      GND3002 +      GHO     +      GCO      : ARR( 0.200E+15,  3266., 0.0);
+{ 25791} GAK5006 +GHO                =       GAD500D +      GHO2                                   : ARR( 0.420E-11,     0., 0.0);
+{ 25792} GAK5006 +GHO                =       GAK500O +      GHO2                                   : ARR( 0.341E-10,     0., 0.0);
+{ 25793} GAK5006+HV               =       GDO4002 +      GCO2                                   :  0.100E+01*SUN;
+{ 25794} GAD5003 +GHO                =       GAD500D +      GHO2                                   : ARR( 0.475E-11,     0., 0.0);
+{ 25795} GAD5003 +GHO                =       G2A501G                                               : ARR( 0.458E-11,     0., 0.0);
+{ 25796} GAD5003 +GHO                =       GAD500E +      GHO2                                   : ARR( 0.642E-11,     0., 0.0);
+{ 25797} GAD5003 +GHO                =       G3A5003                                               : ARR( 0.212E-10,     0., 0.0);
+{ 25798} GAD5003 +GNO3               =       G3A5003 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 25799} GAD5003+HV               =       GAD4002 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 25800} G2A501G +GNO                =       G1A501U +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 25801} G2A501G +GNO                =       GAN501W                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 25802} G2A501G +GHO2               =       GAH501n                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 25803} G2A501G +GNO3               =       G1A501U +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 25804} G2A501G +MEPERO             =  0.340G1A501U + 0.330GAD500C + 0.330GAD500F                 : ARR( 0.565E-13,  -845., 0.0);
+{ 25805} G2A501G +PERO1              =  0.460G1A501U + 0.270GAD500C + 0.270GAD500F                 : ARR( 0.434E-13,  -900., 0.0);
+{ 25806} G2A501G +PERO2              =  0.400G1A501U + 0.300GAD500C + 0.300GAD500F                 : ARR( 0.162E-13, -1400., 0.0);
+{ 25807} G2A501G +PERO3              =  0.460G1A501U + 0.270GAD500C + 0.270GAD500F                 : ARR( 0.488E-13, -1250., 0.0);
+{ 25808} G2A501G +PERO5              =  0.460G1A501U + 0.270GAD500C + 0.270GAD500F                 : ARR( 0.183E-11,   450., 0.0);
+{ 25809} G2A501G +PERO6              =  0.300G1A501U + 0.350GAD500C + 0.350GAD500F                 : ARR( 0.168E-13, -1300., 0.0);
+{ 25810} G2A501G +PERO9              =  0.650G1A501U + 0.350GAD500F                                : ARR( 0.100E-10,     0., 0.0);
+{ 25811} G3A5003 +GHO2               =  0.800GAG5003 + 0.200GAA5002 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 25812} G3A5003 +GNO                =       GAD4002 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 25813} G3A5003 +GNO2               =       GPA5003                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 25814} G3A5003 +GNO3               =       GAD4002 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 25815} G3A5003 +MEPERO             =  0.685GAD4002 + 0.315GAA5002 + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25816} G3A5003 +PERO1              =  0.800GAD4002 + 0.200GAA5002 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25817} G3A5003 +PERO2              =  0.750GAD4002 + 0.250GAA5002 + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25818} G3A5003 +PERO3              =  0.800GAD4002 + 0.200GAA5002 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25819} G3A5003 +PERO5              =  0.650GAD4002 + 0.350GAA5002 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25820} G3A5003 +PERO6              =  0.650GAD4002 + 0.350GAA5002 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25821} G3A5003 +PERO9              =       GAD4002 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 25822} G1A501U                     =       GAD2000 +      GDD3001 +      GHO2                    : ARR( 0.200E+15,  3099., 0.0);
+{ 25823} G1A501U                     =       GAD3001 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  2877., 0.0);
+{ 25824} GPH500D                     =       G3H500U +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 25825} GPH500D +GHO                =       GPH501L +      GHO2                                   : ARR( 0.217E-11,     0., 0.0);
+{ 25826} GPH500D +GHO                =       GPN500M +      GHO                                    : ARR( 0.264E-10,     0., 0.0);
+{ 25827} GPH500D +GHO                =       G2P500A                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 25828} GPH500D+HV               =       G1P501W +      GNO2                                   :  0.100E+01*SUN;
+{ 25829} GPH500D+HV               =       G1P500C +      GHO                                    :  0.100E+01*SUN;
+{ 25830} GPH500D+HV               =       G3H500U +      GNO2                                   :  0.100E+01*SUN;
+{ 25831} G1P501W                     =       GPK5006 +      GHO                                    : ARR( 0.800E+11,  1899., 0.0);
+{ 25832} G1P501W                     =       GPH400U +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4799., 0.0);
+{ 25833} GPN500M                     =       G3N501B +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 25834} GPN500M +GHO                =       GPN501K +      GHO2                                   : ARR( 0.670E-11,     0., 0.0);
+{ 25835} GPN500M +GHO                =       G2P501J                                               : ARR( 0.883E-12,     0., 0.0);
+{ 25836} GPN500M+HV               =       G1P501X +      GNO2                                   :  0.100E+01*SUN;
+{ 25837} GPN500M+HV               =       G3N4001 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 25838} G2P501J +GNO                =       G1P501Y +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 25839} G2P501J +GNO                =       GPN501R                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 25840} G2P501J +GHO2               =       GPH501p                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 25841} G2P501J +GNO3               =       G1P501Y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 25842} G2P501J +MEPERO             =  0.340G1P501Y + 0.330GPN501W + 0.330GPN501Y                 : ARR( 0.565E-13,  -845., 0.0);
+{ 25843} G2P501J +PERO1              =  0.460G1P501Y + 0.270GPN501W + 0.270GPN501Y                 : ARR( 0.434E-13,  -900., 0.0);
+{ 25844} G2P501J +PERO2              =  0.400G1P501Y + 0.300GPN501W + 0.300GPN501Y                 : ARR( 0.162E-13, -1400., 0.0);
+{ 25845} G2P501J +PERO3              =  0.460G1P501Y + 0.270GPN501W + 0.270GPN501Y                 : ARR( 0.488E-13, -1250., 0.0);
+{ 25846} G2P501J +PERO5              =  0.460G1P501Y + 0.270GPN501W + 0.270GPN501Y                 : ARR( 0.183E-11,   450., 0.0);
+{ 25847} G2P501J +PERO6              =  0.300G1P501Y + 0.350GPN501W + 0.350GPN501Y                 : ARR( 0.168E-13, -1300., 0.0);
+{ 25848} G2P501J +PERO9              =  0.650G1P501Y + 0.350GPN501Y                                : ARR( 0.100E-10,     0., 0.0);
+{ 25849} G1P501X                     =       GPD4005 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4427., 0.0);
+{ 25850} G1P501Y                     =       GND3002 +      GCO     +      GNO2    +      GCO      : ARR( 0.200E+15,  3266., 0.0);
+{ 25851} GPK5006                     =       G3K500U +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 25852} GPK5006 +GHO                =       GPD500B +      GHO2                                   : ARR( 0.415E-11,     0., 0.0);
+{ 25853} GPK5006 +GHO                =       GPK500O +      GHO2                                   : ARR( 0.337E-10,     0., 0.0);
+{ 25854} GPK5006+HV               =       G3K4005 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 25855} GPD5002                     =       G3D5002 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 25856} GPD5002 +GHO                =       GPD500B +      GHO2                                   : ARR( 0.633E-11,     0., 0.0);
+{ 25857} GPD5002 +GHO                =       G2P501K                                               : ARR( 0.451E-11,     0., 0.0);
+{ 25858} GPD5002 +GHO                =       GPD500C +      GHO2                                   : ARR( 0.633E-11,     0., 0.0);
+{ 25859} GPD5002 +GHO                =       G3P5002                                               : ARR( 0.209E-10,     0., 0.0);
+{ 25860} GPD5002 +GNO3               =       G3P5002 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 25861} GPD5002+HV               =       G3D5002 +      GNO2                                   :  0.100E+01*SUN;
+{ 25862} GPD5002+HV               =       GPD4002 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 25863} G2P501K +GNO                =       G1P501Z +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 25864} G2P501K +GNO                =       GPN500t                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 25865} G2P501K +GHO2               =       GPH501m                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 25866} G2P501K +GNO3               =       G1P501Z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 25867} G2P501K +MEPERO             =  0.340G1P501Z + 0.330GPD500A + 0.330GPD500D                 : ARR( 0.565E-13,  -845., 0.0);
+{ 25868} G2P501K +PERO1              =  0.460G1P501Z + 0.270GPD500A + 0.270GPD500D                 : ARR( 0.434E-13,  -900., 0.0);
+{ 25869} G2P501K +PERO2              =  0.400G1P501Z + 0.300GPD500A + 0.300GPD500D                 : ARR( 0.162E-13, -1400., 0.0);
+{ 25870} G2P501K +PERO3              =  0.460G1P501Z + 0.270GPD500A + 0.270GPD500D                 : ARR( 0.488E-13, -1250., 0.0);
+{ 25871} G2P501K +PERO5              =  0.460G1P501Z + 0.270GPD500A + 0.270GPD500D                 : ARR( 0.183E-11,   450., 0.0);
+{ 25872} G2P501K +PERO6              =  0.300G1P501Z + 0.350GPD500A + 0.350GPD500D                 : ARR( 0.168E-13, -1300., 0.0);
+{ 25873} G2P501K +PERO9              =  0.650G1P501Z + 0.350GPD500D                                : ARR( 0.100E-10,     0., 0.0);
+{ 25874} G3P5002 +GHO2               =  0.800GPG5002 + 0.200GPA5003 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 25875} G3P5002 +GNO                =       GPD4002 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 25876} G3P5002 +GNO2               =       GPP5001                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 25877} G3P5002 +GNO3               =       GPD4002 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 25878} G3P5002 +MEPERO             =  0.685GPD4002 + 0.315GPA5003 + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25879} G3P5002 +PERO1              =  0.800GPD4002 + 0.200GPA5003 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25880} G3P5002 +PERO2              =  0.750GPD4002 + 0.250GPA5003 + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25881} G3P5002 +PERO3              =  0.800GPD4002 + 0.200GPA5003 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25882} G3P5002 +PERO5              =  0.650GPD4002 + 0.350GPA5003 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25883} G3P5002 +PERO6              =  0.650GPD4002 + 0.350GPA5003 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25884} G3P5002 +PERO9              =       GPD4002 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 25885} G1P501Z                     =       GPD2000 +      GDD3001 +      GHO2                    : ARR( 0.200E+15,  3099., 0.0);
+{ 25886} G1P501Z                     =       GPD3001 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  2877., 0.0);
+{ 25887} GDD5007 +GHO                =       G3D500A                                               : ARR( 0.219E-10,     0., 0.0);
+{ 25888} GDD5007 +GHO                =       GDD500B +      GHO2                                   : ARR( 0.210E-10,     0., 0.0);
+{ 25889} GDD5007 +GHO                =       G3D4001 +      GCO                                    : ARR( 0.133E-10,     0., 0.0);
+{ 25890} GDD5007 +GNO3               =       G3D500A +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 25891} GDD5007 +GNO3               =       G3D4001 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 25892} GDD5007+HV               =       GCO     +      GDD4002 + 2.000GHO2                    :  0.100E+01*SUN;
+{ 25893} GDD5007+HV               =       G3D4001 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 25894} GDD5007+HV               =       GDD4001 +      GCO                                    :  0.100E+01*SUN;
+{ 25895} GDD5007+HV               =       GDO3001 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 25896} G3D500A +GHO2               =  0.800GGD500C + 0.200GAD500E + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 25897} G3D500A +GNO                =       GDD4002 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 25898} G3D500A +GNO2               =       GPD500C                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 25899} G3D500A +GNO3               =       GDD4002 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 25900} G3D500A +MEPERO             =  0.685GDD4002 + 0.315GAD500E + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25901} G3D500A +PERO1              =  0.800GDD4002 + 0.200GAD500E + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25902} G3D500A +PERO2              =  0.750GDD4002 + 0.250GAD500E + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25903} G3D500A +PERO3              =  0.800GDD4002 + 0.200GAD500E + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25904} G3D500A +PERO5              =  0.650GDD4002 + 0.350GAD500E + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25905} G3D500A +PERO6              =  0.650GDD4002 + 0.350GAD500E + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25906} G3D500A +PERO9              =       GDD4002 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 25907} GND500s +GHO                =       G3N501C                                               : ARR( 0.429E-10,     0., 0.0);
+{ 25908} GND500s +GHO                =       GND501U +      GHO2                                   : ARR( 0.260E-11,     0., 0.0);
+{ 25909} GND500s +GNO3               =       G3N501C +      GHNO3                                  : ARR( 0.240E-13,     0., 0.0);
+{ 25910} GND500s+HV               =       GCO     +      GND400J + 2.000GHO2                    :  0.200E+01*SUN;
+{ 25911} GND500s+HV               =       G1D500R +      GNO2                                   :  0.100E+01*SUN;
+{ 25912} G3N501C +GHO2               =  0.800GGN501W + 0.200GAN501W + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 25913} G3N501C +GNO                =       GND400J +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 25914} G3N501C +GNO2               =       GPN500t                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 25915} G3N501C +GNO3               =       GND400J +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 25916} G3N501C +MEPERO             =  0.685GND400J + 0.315GAN501W + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25917} G3N501C +PERO1              =  0.800GND400J + 0.200GAN501W + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25918} G3N501C +PERO2              =  0.750GND400J + 0.250GAN501W + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25919} G3N501C +PERO3              =  0.800GND400J + 0.200GAN501W + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25920} G3N501C +PERO5              =  0.650GND400J + 0.350GAN501W + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25921} G3N501C +PERO6              =  0.650GND400J + 0.350GAN501W + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25922} G3N501C +PERO9              =       GND400J +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 25923} GDD5008 +GHO                =       G3D500B                                               : ARR( 0.132E-09,     0., 0.0);
+{ 25924} GDD5008 +GHO                =       GDD500D +      GHO2                                   : ARR( 0.768E-11,     0., 0.0);
+{ 25925} GDD5008 +GNO3               =       G3D500B +      GHNO3                                  : ARR( 0.240E-13,     0., 0.0);
+{ 25926} GDD5008+HV               =       GCO     +      GDD4004 +      GHO2                    :  0.100E+01*SUN;
+{ 25927} GDD5008+HV               =       G3D3001 +      GDD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 25928} GDD5008+HV               =       GDD4004 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 25929} G3D500B +GHO2               =  0.800GGD500D + 0.200GAD500F + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 25930} G3D500B +GNO                =       GDD4004 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 25931} G3D500B +GNO2               =       GPD500D                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 25932} G3D500B +GNO3               =       GDD4004 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 25933} G3D500B +MEPERO             =  0.685GDD4004 + 0.315GAD500F + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25934} G3D500B +PERO1              =  0.800GDD4004 + 0.200GAD500F + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25935} G3D500B +PERO2              =  0.750GDD4004 + 0.250GAD500F + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25936} G3D500B +PERO3              =  0.800GDD4004 + 0.200GAD500F + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25937} G3D500B +PERO5              =  0.650GDD4004 + 0.350GAD500F + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25938} G3D500B +PERO6              =  0.650GDD4004 + 0.350GAD500F + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25939} G3D500B +PERO9              =       GDD4004 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 25940} GHN5043 +GHO                =       GND500L +      GHO                                    : ARR( 0.339E-10,     0., 0.0);
+{ 25941} GHN5043 +GHO                =       G3H501O                                               : ARR( 0.421E-11,     0., 0.0);
+{ 25942} GHN5043 +GHO                =       G2N5034                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 25943} GHN5043 +GNO3               =       G3H501O +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 25944} GHN5043+HV               =       G1N503O +      GHO                                    :  0.100E+01*SUN;
+{ 25945} GHN5043+HV               =       G1H5073 +      GNO2                                   :  0.100E+01*SUN;
+{ 25946} GHN5043+HV               =       GHD4002 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 25947} GHN5043+HV               =       G2K3000 +      GND2000 +      GHO                     :  0.100E+01*SUN;
+{ 25948} G3H501O +GHO2               =  0.800GGH500Y + 0.200GAH500b + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 25949} G3H501O +GNO                =       GHD4002 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 25950} G3H501O +GNO2               =       GPH500d                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 25951} G3H501O +GNO3               =       GHD4002 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 25952} G3H501O +MEPERO             =  0.685GHD4002 + 0.315GAH500b + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25953} G3H501O +PERO1              =  0.800GHD4002 + 0.200GAH500b + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25954} G3H501O +PERO2              =  0.750GHD4002 + 0.250GAH500b + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25955} G3H501O +PERO3              =  0.800GHD4002 + 0.200GAH500b + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25956} G3H501O +PERO5              =  0.650GHD4002 + 0.350GAH500b + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25957} G3H501O +PERO6              =  0.650GHD4002 + 0.350GAH500b + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 25958} G3H501O +PERO9              =       GHD4002 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 25959} G1H5073                     =       G2H502c                                               : ARR( 0.240E+12,  4177., 0.0);
+{ 25960} G1H5073                     =       GHD4002 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5437., 0.0);
+{ 25961} G2H502c +GNO                =       G1H506S +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 25962} G2H502c +GNO                =       GHN503c                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 25963} G2H502c +GHO2               =       GHH502Z                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 25964} G2H502c +GNO3               =       G1H506S +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 25965} G2H502c +MEPERO             =  0.480G1H506S + 0.260GHD500Y + 0.260GHD500Z                 : ARR( 0.164E-12,  -795., 0.0);
+{ 25966} G2H502c +PERO1              =  0.600G1H506S + 0.200GHD500Y + 0.200GHD500Z                 : ARR( 0.126E-12,  -850., 0.0);
+{ 25967} G2H502c +PERO2              =  0.560G1H506S + 0.220GHD500Y + 0.220GHD500Z                 : ARR( 0.471E-13, -1350., 0.0);
+{ 25968} G2H502c +PERO3              =  0.600G1H506S + 0.200GHD500Y + 0.200GHD500Z                 : ARR( 0.142E-12, -1200., 0.0);
+{ 25969} G2H502c +PERO5              =  0.600G1H506S + 0.200GHD500Y + 0.200GHD500Z                 : ARR( 0.533E-11,   500., 0.0);
+{ 25970} G2H502c +PERO6              =  0.460G1H506S + 0.270GHD500Y + 0.270GHD500Z                 : ARR( 0.488E-13, -1250., 0.0);
+{ 25971} G2H502c +PERO9              =  0.800G1H506S + 0.200GHD500Z                                : ARR( 0.100E-10,     0., 0.0);
+{ 25972} GHH501L +GHO                =       GHN503w +      GHO                                    : ARR( 0.856E-11,     0., 0.0);
+{ 25973} GHH501L +GHO                =       GHH500d +      GHO2                                   : ARR( 0.107E-10,     0., 0.0);
+{ 25974} GHH501L +GHO                =       GHN503c +      GHO                                    : ARR( 0.167E-10,     0., 0.0);
+{ 25975} GHH501L +GHO                =       G2H502d                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 25976} GHH501L +GHO                =       G2H502e                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 25977} GHH501L+HV               =       G1H502X +      GNO2                                   :  0.100E+01*SUN;
+{ 25978} GHH501L+HV               =       G1H502n +      GHO                                    :  0.100E+01*SUN;
+{ 25979} GHH501L+HV               =       G1H502H +      GHO                                    :  0.100E+01*SUN;
+{ 25980} G2H502d +GNO                =       G1H502n +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 25981} G2H502d +GNO                =       GHN501O                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 25982} G2H502d +GHO2               =       GHH501L                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 25983} G2H502d +GNO3               =       G1H502n +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 25984} G2H502d +MEPERO             =  0.340G1H502n + 0.330GHN501A + 0.330GHN503w                 : ARR( 0.565E-13,  -845., 0.0);
+{ 25985} G2H502d +PERO1              =  0.460G1H502n + 0.270GHN501A + 0.270GHN503w                 : ARR( 0.434E-13,  -900., 0.0);
+{ 25986} G2H502d +PERO2              =  0.400G1H502n + 0.300GHN501A + 0.300GHN503w                 : ARR( 0.162E-13, -1400., 0.0);
+{ 25987} G2H502d +PERO3              =  0.460G1H502n + 0.270GHN501A + 0.270GHN503w                 : ARR( 0.488E-13, -1250., 0.0);
+{ 25988} G2H502d +PERO5              =  0.460G1H502n + 0.270GHN501A + 0.270GHN503w                 : ARR( 0.183E-11,   450., 0.0);
+{ 25989} G2H502d +PERO6              =  0.300G1H502n + 0.350GHN501A + 0.350GHN503w                 : ARR( 0.168E-13, -1300., 0.0);
+{ 25990} G2H502d +PERO9              =  0.650G1H502n + 0.350GHN503w                                : ARR( 0.100E-10,     0., 0.0);
+{ 25991} G2H502e +GNO                =       G1H502H +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 25992} G2H502e +GNO                =       GHN5015                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 25993} G2H502e +GHO2               =       GHH501L                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 25994} G2H502e +GNO3               =       G1H502H +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 25995} G2H502e +MEPERO             =  0.480G1H502H + 0.260GHN500w + 0.260GHN503c                 : ARR( 0.164E-12,  -795., 0.0);
+{ 25996} G2H502e +PERO1              =  0.600G1H502H + 0.200GHN500w + 0.200GHN503c                 : ARR( 0.126E-12,  -850., 0.0);
+{ 25997} G2H502e +PERO2              =  0.560G1H502H + 0.220GHN500w + 0.220GHN503c                 : ARR( 0.471E-13, -1350., 0.0);
+{ 25998} G2H502e +PERO3              =  0.600G1H502H + 0.200GHN500w + 0.200GHN503c                 : ARR( 0.142E-12, -1200., 0.0);
+{ 25999} G2H502e +PERO5              =  0.600G1H502H + 0.200GHN500w + 0.200GHN503c                 : ARR( 0.533E-11,   500., 0.0);
+{ 26000} G2H502e +PERO6              =  0.460G1H502H + 0.270GHN500w + 0.270GHN503c                 : ARR( 0.488E-13, -1250., 0.0);
+{ 26001} G2H502e +PERO9              =  0.800G1H502H + 0.200GHN503c                                : ARR( 0.100E-10,     0., 0.0);
+{ 26002} GHH501M +GHO                =       GHH502Z +      GHO                                    : ARR( 0.185E-10,     0., 0.0);
+{ 26003} GHH501M +GHO                =       GHH501R +      GHO2                                   : ARR( 0.118E-10,     0., 0.0);
+{ 26004} GHH501M +GHO                =       GHH501S +      GHO                                    : ARR( 0.473E-10,     0., 0.0);
+{ 26005} GHH501M +GHO                =       GHH501O +      GHO                                    : ARR( 0.185E-10,     0., 0.0);
+{ 26006} GHH501M+HV               =       G1H502R +      GHO                                    :  0.100E+01*SUN;
+{ 26007} GHH501M+HV               =       G1H502o +      GHO                                    :  0.100E+01*SUN;
+{ 26008} GHH501M+HV               =       G1H502X +      GHO                                    :  0.100E+01*SUN;
+{ 26009} GHH501N +GHO                =       GHK500W +      GHO                                    : ARR( 0.491E-10,     0., 0.0);
+{ 26010} GHH501N +GHO                =       GHH500K +      GHO2                                   : ARR( 0.123E-10,     0., 0.0);
+{ 26011} GHH501N +GHO                =       GHD500Y +      GHO                                    : ARR( 0.192E-10,     0., 0.0);
+{ 26012} GHH501N+HV               =       G1H502p +      GHO                                    :  0.100E+01*SUN;
+{ 26013} GHH501N+HV               =       G1H502B +      GHO                                    :  0.100E+01*SUN;
+{ 26014} GHH501O +GHO                =       GHD500Z +      GHO                                    : ARR( 0.176E-10,     0., 0.0);
+{ 26015} GHH501O +GHO                =       GHH501X +      GHO2                                   : ARR( 0.113E-10,     0., 0.0);
+{ 26016} GHH501O +GHO                =       G2H502f                                               : ARR( 0.491E-11,     0., 0.0);
+{ 26017} GHH501O +GHO                =       GHD500e +      GHO                                    : ARR( 0.275E-10,     0., 0.0);
+{ 26018} GHH501O +GHO                =       G3H501P                                               : ARR( 0.228E-10,     0., 0.0);
+{ 26019} GHH501O +GNO3               =       G3H501P +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 26020} GHH501O+HV               =       G1H503k +      GHO                                    :  0.100E+01*SUN;
+{ 26021} GHH501O+HV               =       G1H502q +      GHO                                    :  0.100E+01*SUN;
+{ 26022} GHH501O+HV               =       GHD4003 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 26023} G2H502f +GNO                =       G1H5074 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 26024} G2H502f +GNO                =       GHH502a                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 26025} G2H502f +GHO2               =       GHH502b                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 26026} G2H502f +GNO3               =       G1H5074 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 26027} G2H502f +MEPERO             =  0.340G1H5074 + 0.330GHH502c + 0.330GHH502d                 : ARR( 0.565E-13,  -845., 0.0);
+{ 26028} G2H502f +PERO1              =  0.460G1H5074 + 0.270GHH502c + 0.270GHH502d                 : ARR( 0.434E-13,  -900., 0.0);
+{ 26029} G2H502f +PERO2              =  0.400G1H5074 + 0.300GHH502c + 0.300GHH502d                 : ARR( 0.162E-13, -1400., 0.0);
+{ 26030} G2H502f +PERO3              =  0.460G1H5074 + 0.270GHH502c + 0.270GHH502d                 : ARR( 0.488E-13, -1250., 0.0);
+{ 26031} G2H502f +PERO5              =  0.460G1H5074 + 0.270GHH502c + 0.270GHH502d                 : ARR( 0.183E-11,   450., 0.0);
+{ 26032} G2H502f +PERO6              =  0.300G1H5074 + 0.350GHH502c + 0.350GHH502d                 : ARR( 0.168E-13, -1300., 0.0);
+{ 26033} G2H502f +PERO9              =  0.650G1H5074 + 0.350GHH502d                                : ARR( 0.100E-10,     0., 0.0);
+{ 26034} G3H501P +GHO2               =  0.800GGH501k + 0.200GAH501s + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 26035} G3H501P +GNO                =       GHD4003 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 26036} G3H501P +GNO2               =       GPH501q                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 26037} G3H501P +GNO3               =       GHD4003 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 26038} G3H501P +MEPERO             =  0.685GHD4003 + 0.315GAH501s + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26039} G3H501P +PERO1              =  0.800GHD4003 + 0.200GAH501s + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26040} G3H501P +PERO2              =  0.750GHD4003 + 0.250GAH501s + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26041} G3H501P +PERO3              =  0.800GHD4003 + 0.200GAH501s + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26042} G3H501P +PERO5              =  0.650GHD4003 + 0.350GAH501s + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26043} G3H501P +PERO6              =  0.650GHD4003 + 0.350GAH501s + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26044} G3H501P +PERO9              =       GHD4003 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 26045} G1H5074                     =       GHD2000 +      GHD3004 +      GHO2                    : ARR( 0.200E+15,  2745., 0.0);
+{ 26046} GHH3006 +GHO                =       GHN300A +      GHO                                    : ARR( 0.649E-11,     0., 0.0);
+{ 26047} GHH3006 +GHO                =       G2H3008                                               : ARR( 0.383E-11,  -190., 0.0);
+{ 26048} GHH3006+HV               =       G1H3008 +      GHO                                    :  0.200E+01*SUN;
+{ 26049} GHH3006+HV               =       G1H300D +      GNO2                                   :  0.100E+01*SUN;
+{ 26050} G1H300D                     =       GCH2O   +      GHD2000 +      GHO                     : ARR( 0.400E+15,  7455., 0.0);
+{ 26051} GHN5044 +GHO                =       GND500R +      GHO                                    : ARR( 0.516E-11,     0., 0.0);
+{ 26052} GHN5044 +GHO                =       G3H501Q                                               : ARR( 0.213E-10,     0., 0.0);
+{ 26053} GHN5044 +GHO                =       G2N5056                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 26054} GHN5044 +GNO3               =       G3H501Q +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 26055} GHN5044+HV               =       G1H502Y +      GNO2                                   :  0.100E+01*SUN;
+{ 26056} GHN5044+HV               =       G1N503j +      GHO                                    :  0.100E+01*SUN;
+{ 26057} GHN5044+HV               =       GND4005 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 26058} G3H501Q +GHO2               =  0.800GGH501l + 0.200GAH500N + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 26059} G3H501Q +GNO                =       GND4005 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 26060} G3H501Q +GNO2               =       GPH500N                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 26061} G3H501Q +GNO3               =       GND4005 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 26062} G3H501Q +MEPERO             =  0.685GND4005 + 0.315GAH500N + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26063} G3H501Q +PERO1              =  0.800GND4005 + 0.200GAH500N + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26064} G3H501Q +PERO2              =  0.750GND4005 + 0.250GAH500N + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26065} G3H501Q +PERO3              =  0.800GND4005 + 0.200GAH500N + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26066} G3H501Q +PERO5              =  0.650GND4005 + 0.350GAH500N + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26067} G3H501Q +PERO6              =  0.650GND4005 + 0.350GAH500N + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26068} G3H501Q +PERO9              =       GND4005 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 26069} G2N5056 +GNO                =       G1N503j +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 26070} G2N5056 +GNO                =       GNN500z                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 26071} G2N5056 +GHO2               =       GHN5044                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 26072} G2N5056 +GNO3               =       G1N503j +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 26073} G2N5056 +MEPERO             =  0.340G1N503j + 0.330GND500O + 0.330GND500R                 : ARR( 0.565E-13,  -845., 0.0);
+{ 26074} G2N5056 +PERO1              =  0.460G1N503j + 0.270GND500O + 0.270GND500R                 : ARR( 0.434E-13,  -900., 0.0);
+{ 26075} G2N5056 +PERO2              =  0.400G1N503j + 0.300GND500O + 0.300GND500R                 : ARR( 0.162E-13, -1400., 0.0);
+{ 26076} G2N5056 +PERO3              =  0.460G1N503j + 0.270GND500O + 0.270GND500R                 : ARR( 0.488E-13, -1250., 0.0);
+{ 26077} G2N5056 +PERO5              =  0.460G1N503j + 0.270GND500O + 0.270GND500R                 : ARR( 0.183E-11,   450., 0.0);
+{ 26078} G2N5056 +PERO6              =  0.300G1N503j + 0.350GND500O + 0.350GND500R                 : ARR( 0.168E-13, -1300., 0.0);
+{ 26079} G2N5056 +PERO9              =  0.650G1N503j + 0.350GND500R                                : ARR( 0.100E-10,     0., 0.0);
+{ 26080} GHH501P +GHO                =       GHD500T +      GHO                                    : ARR( 0.137E-09,     0., 0.0);
+{ 26081} GHH501P +GHO                =       GHD500s +      GHO                                    : ARR( 0.263E-10,     0., 0.0);
+{ 26082} GHH501P +GHO                =       G3H501R                                               : ARR( 0.218E-10,     0., 0.0);
+{ 26083} GHH501P +GNO3               =       G3H501R +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 26084} GHH501P+HV               =       G1H502Y +      GHO                                    :  0.100E+01*SUN;
+{ 26085} GHH501P+HV               =       G1H5075 +      GHO                                    :  0.100E+01*SUN;
+{ 26086} GHH501P+HV               =       GHD4005 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 26087} G3H501R +GHO2               =  0.800GGH501m + 0.200GAH500d + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 26088} G3H501R +GNO                =       GHD4005 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 26089} G3H501R +GNO2               =       GPH501r                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 26090} G3H501R +GNO3               =       GHD4005 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 26091} G3H501R +MEPERO             =  0.685GHD4005 + 0.315GAH500d + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26092} G3H501R +PERO1              =  0.800GHD4005 + 0.200GAH500d + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26093} G3H501R +PERO2              =  0.750GHD4005 + 0.250GAH500d + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26094} G3H501R +PERO3              =  0.800GHD4005 + 0.200GAH500d + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26095} G3H501R +PERO5              =  0.650GHD4005 + 0.350GAH500d + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26096} G3H501R +PERO6              =  0.650GHD4005 + 0.350GAH500d + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26097} G3H501R +PERO9              =       GHD4005 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 26098} G1H5075                     =       G2H502g                                               : ARR( 0.240E+12,  4177., 0.0);
+{ 26099} G1H5075                     =       GD03000 +      GDD2000 +      GHO                     : ARR( 0.200E+15,  6613., 0.0);
+{ 26100} G1H5075                     =       GHD4005 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 26101} G2H502g +GNO                =       G1H5076 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 26102} G2H502g +GNO                =       GHN5045                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 26103} G2H502g +GHO2               =       GHH501U                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 26104} G2H502g +GNO3               =       G1H5076 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 26105} G2H502g +MEPERO             =  0.480G1H5076 + 0.260GHD500M + 0.260GHD500O                 : ARR( 0.146E-12,  -445., 0.0);
+{ 26106} G2H502g +PERO1              =  0.600G1H5076 + 0.200GHD500M + 0.200GHD500O                 : ARR( 0.112E-12,  -500., 0.0);
+{ 26107} G2H502g +PERO2              =  0.560G1H5076 + 0.220GHD500M + 0.220GHD500O                 : ARR( 0.418E-13, -1000., 0.0);
+{ 26108} G2H502g +PERO3              =  0.600G1H5076 + 0.200GHD500M + 0.200GHD500O                 : ARR( 0.126E-12,  -850., 0.0);
+{ 26109} G2H502g +PERO5              =  0.600G1H5076 + 0.200GHD500M + 0.200GHD500O                 : ARR( 0.473E-11,   850., 0.0);
+{ 26110} G2H502g +PERO6              =  0.460G1H5076 + 0.270GHD500M + 0.270GHD500O                 : ARR( 0.434E-13,  -900., 0.0);
+{ 26111} G2H502g +PERO9              =  0.800G1H5076 + 0.200GHD500O                                : ARR( 0.100E-10,     0., 0.0);
+{ 26112} G1H5076                     =       GHD500N +      GHO2                                   : ARR( 0.800E+11,  2246., 0.0);
+{ 26113} GHD500j +GHO                =       GHD500T +      GHO2                                   : ARR( 0.348E-10,     0., 0.0);
+{ 26114} GHD500j +GHO                =       GDK500O +      GHO                                    : ARR( 0.267E-10,     0., 0.0);
+{ 26115} GHD500j +GHO                =       G3H501S                                               : ARR( 0.221E-10,     0., 0.0);
+{ 26116} GHD500j +GNO3               =       G3H501S +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 26117} GHD500j+HV               =       G1D5016 +      GHO                                    :  0.100E+01*SUN;
+{ 26118} GHD500j+HV               =       GDO4004 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 26119} G3H501S +GHO2               =  0.800GGH500N + 0.200GAH500e + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 26120} G3H501S +GNO                =       GDO4004 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 26121} G3H501S +GNO2               =       GPH500R                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 26122} G3H501S +GNO3               =       GDO4004 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 26123} G3H501S +MEPERO             =  0.685GDO4004 + 0.315GAH500e + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26124} G3H501S +PERO1              =  0.800GDO4004 + 0.200GAH500e + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26125} G3H501S +PERO2              =  0.750GDO4004 + 0.250GAH500e + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26126} G3H501S +PERO3              =  0.800GDO4004 + 0.200GAH500e + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26127} G3H501S +PERO5              =  0.650GDO4004 + 0.350GAH500e + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26128} G3H501S +PERO6              =  0.650GDO4004 + 0.350GAH500e + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26129} G3H501S +PERO9              =       GDO4004 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 26130} G1D5016                     =       G2D500d                                               : ARR( 0.240E+12,  4177., 0.0);
+{ 26131} G1D5016                     =       GD03000 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  5404., 0.0);
+{ 26132} G1D5016                     =       GDO4004 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 26133} G2D500d +GNO                =       G1D5017 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 26134} G2D500d +GNO                =       GND500t                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 26135} G2D500d +GHO2               =       GHD500n                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 26136} G2D500d +GNO3               =       G1D5017 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 26137} G2D500d +MEPERO             =  0.480G1D5017 + 0.260GDO500B + 0.260GDD5002                 : ARR( 0.146E-12,  -445., 0.0);
+{ 26138} G2D500d +PERO1              =  0.600G1D5017 + 0.200GDO500B + 0.200GDD5002                 : ARR( 0.112E-12,  -500., 0.0);
+{ 26139} G2D500d +PERO2              =  0.560G1D5017 + 0.220GDO500B + 0.220GDD5002                 : ARR( 0.418E-13, -1000., 0.0);
+{ 26140} G2D500d +PERO3              =  0.600G1D5017 + 0.200GDO500B + 0.200GDD5002                 : ARR( 0.126E-12,  -850., 0.0);
+{ 26141} G2D500d +PERO5              =  0.600G1D5017 + 0.200GDO500B + 0.200GDD5002                 : ARR( 0.473E-11,   850., 0.0);
+{ 26142} G2D500d +PERO6              =  0.460G1D5017 + 0.270GDO500B + 0.270GDD5002                 : ARR( 0.434E-13,  -900., 0.0);
+{ 26143} G2D500d +PERO9              =  0.800G1D5017 + 0.200GDD5002                                : ARR( 0.100E-10,     0., 0.0);
+{ 26144} G1D5017                     =       GDK500J +      GHO2                                   : ARR( 0.800E+11,  2246., 0.0);
+{ 26145} GHD500k +GHO                =       GDK5009 +      GHO                                    : ARR( 0.140E-09,     0., 0.0);
+{ 26146} GHD500k +GHO                =       G3H501T                                               : ARR( 0.223E-10,     0., 0.0);
+{ 26147} GHD500k +GNO3               =       G3H501T +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 26148} GHD500k+HV               =       G1D500U +      GHO                                    :  0.100E+01*SUN;
+{ 26149} GHD500k+HV               =       GHD4005 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 26150} G3H501T +GHO2               =  0.800GGH500b + 0.200GAH500g + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 26151} G3H501T +GNO                =       GHD4005 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 26152} G3H501T +GNO2               =       GPH500g                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 26153} G3H501T +GNO3               =       GHD4005 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 26154} G3H501T +MEPERO             =  0.685GHD4005 + 0.315GAH500g + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26155} G3H501T +PERO1              =  0.800GHD4005 + 0.200GAH500g + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26156} G3H501T +PERO2              =  0.750GHD4005 + 0.250GAH500g + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26157} G3H501T +PERO3              =  0.800GHD4005 + 0.200GAH500g + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26158} G3H501T +PERO5              =  0.650GHD4005 + 0.350GAH500g + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26159} G3H501T +PERO6              =  0.650GHD4005 + 0.350GAH500g + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26160} G3H501T +PERO9              =       GHD4005 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 26161} GDO500C +GHO                =       GDK5009 +      GHO2                                   : ARR( 0.335E-10,     0., 0.0);
+{ 26162} GDO500C +GHO                =       GDK500O +      GHO2                                   : ARR( 0.645E-11,     0., 0.0);
+{ 26163} GDO500C +GHO                =       G3K500W                                               : ARR( 0.213E-10,     0., 0.0);
+{ 26164} GDO500C +GNO3               =       G3K500W +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 26165} GDO500C+HV               =       GDO4004 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 26166} G3K500W +GHO2               =  0.800GGO5009 + 0.200GAO5009 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 26167} G3K500W +GNO                =       GDO4004 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 26168} G3K500W +GNO2               =       GPO5009                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 26169} G3K500W +GNO3               =       GDO4004 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 26170} G3K500W +MEPERO             =  0.685GDO4004 + 0.315GAO5009 + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26171} G3K500W +PERO1              =  0.800GDO4004 + 0.200GAO5009 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26172} G3K500W +PERO2              =  0.750GDO4004 + 0.250GAO5009 + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26173} G3K500W +PERO3              =  0.800GDO4004 + 0.200GAO5009 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26174} G3K500W +PERO5              =  0.650GDO4004 + 0.350GAO5009 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26175} G3K500W +PERO6              =  0.650GDO4004 + 0.350GAO5009 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26176} G3K500W +PERO9              =       GDO4004 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 26177} GC03000 +GHO                =       G203000                                               : ARR( 0.409E-17,    61., 2.0);
+{ 26178} GC03000 +GHO                =       G203001                                               : ARR( 0.114E-16,    61., 2.0);
+{ 26179} G203001 +GNO                =       G103001 +      GNO2                                   : ARR( 0.256E-11,  -360., 0.0);
+{ 26180} G203001 +GNO                =       GN03001                                               : ARR( 0.143E-12,  -360., 0.0);
+{ 26181} G203001 +GHO2               =       GH03001                                               : ARR( 0.179E-12, -1250., 0.0);
+{ 26182} G203001 +GNO3               =       G103001 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 26183} G103001                     =       GCH3O2  +      GD02000                                : ARR( 0.400E+15,  8886., 0.0);
+{ 26184} GHD500l +GHO                =       GDK500C +      GHO                                    : ARR( 0.110E-09,     0., 0.0);
+{ 26185} GHD500l +GHO                =       G3H4001 +      GCO                                    : ARR( 0.132E-10,     0., 0.0);
+{ 26186} GHD500l +GNO3               =       G3H4001 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 26187} GHD500l+HV               =       G1D500W +      GHO                                    :  0.100E+01*SUN;
+{ 26188} GHD500l+HV               =       G3H4001 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 26189} GHD500l+HV               =       GHD4002 +      GCO                                    :  0.100E+01*SUN;
+{ 26190} GHD500l+HV               =       GH03001 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 26191} GHN5045 +GHO                =       GND500U +      GHO                                    : ARR( 0.140E-09,     0., 0.0);
+{ 26192} GHN5045 +GHO                =       G3H501U                                               : ARR( 0.222E-10,     0., 0.0);
+{ 26193} GHN5045 +GNO3               =       G3H501U +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 26194} GHN5045+HV               =       G1H5076 +      GNO2                                   :  0.100E+01*SUN;
+{ 26195} GHN5045+HV               =       G1N503P +      GHO                                    :  0.100E+01*SUN;
+{ 26196} GHN5045+HV               =       GHN400J +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 26197} G3H501U +GHO2               =  0.800GGH500z + 0.200GAH5018 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 26198} G3H501U +GNO                =       GHN400J +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 26199} G3H501U +GNO2               =       GPH501N                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 26200} G3H501U +GNO3               =       GHN400J +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 26201} G3H501U +MEPERO             =  0.685GHN400J + 0.315GAH5018 + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26202} G3H501U +PERO1              =  0.800GHN400J + 0.200GAH5018 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26203} G3H501U +PERO2              =  0.750GHN400J + 0.250GAH5018 + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26204} G3H501U +PERO3              =  0.800GHN400J + 0.200GAH5018 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26205} G3H501U +PERO5              =  0.650GHN400J + 0.350GAH5018 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26206} G3H501U +PERO6              =  0.650GHN400J + 0.350GAH5018 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26207} G3H501U +PERO9              =       GHN400J +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 26208} GND500t +GHO                =       GND500U +      GHO2                                   : ARR( 0.330E-10,     0., 0.0);
+{ 26209} GND500t +GHO                =       GND500h +      GHO2                                   : ARR( 0.635E-11,     0., 0.0);
+{ 26210} GND500t +GHO                =       G3N501D                                               : ARR( 0.210E-10,     0., 0.0);
+{ 26211} GND500t +GNO3               =       G3N501D +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 26212} GND500t+HV               =       G1D5017 +      GNO2                                   :  0.100E+01*SUN;
+{ 26213} GND500t+HV               =       GND400C +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 26214} G3N501D +GHO2               =  0.800GGN500T + 0.200GAN500x + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 26215} G3N501D +GNO                =       GND400C +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 26216} G3N501D +GNO2               =       GPN500e                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 26217} G3N501D +GNO3               =       GND400C +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 26218} G3N501D +MEPERO             =  0.685GND400C + 0.315GAN500x + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26219} G3N501D +PERO1              =  0.800GND400C + 0.200GAN500x + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26220} G3N501D +PERO2              =  0.750GND400C + 0.250GAN500x + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26221} G3N501D +PERO3              =  0.800GND400C + 0.200GAN500x + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26222} G3N501D +PERO5              =  0.650GND400C + 0.350GAN500x + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26223} G3N501D +PERO6              =  0.650GND400C + 0.350GAN500x + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26224} G3N501D +PERO9              =       GND400C +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 26225} GHD500m +GHO                =       GDD5004 +      GHO                                    : ARR( 0.165E-10,     0., 0.0);
+{ 26226} GHD500m +GHO                =       G2H502h                                               : ARR( 0.459E-11,     0., 0.0);
+{ 26227} GHD500m +GHO                =       G3H4005 +      GCO                                    : ARR( 0.130E-10,     0., 0.0);
+{ 26228} GHD500m +GHO                =       G2D500e                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 26229} GHD500m +GNO3               =       G3H4005 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 26230} GHD500m+HV               =       G1D500L +      GHO                                    :  0.100E+01*SUN;
+{ 26231} GHD500m+HV               =       G3H4005 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 26232} GHD500m+HV               =       GHD4001 +      GCO                                    :  0.100E+01*SUN;
+{ 26233} GHD500m+HV               =       GH03000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 26234} G2H502h +GNO                =       G1H5077 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 26235} G2H502h +GNO                =       GHN505C                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 26236} G2H502h +GHO2               =       GHH502e                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 26237} G2H502h +GNO3               =       G1H5077 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 26238} G2H502h +MEPERO             =  0.340G1H5077 + 0.330GHD500e + 0.330GHD500r                 : ARR( 0.565E-13,  -845., 0.0);
+{ 26239} G2H502h +PERO1              =  0.460G1H5077 + 0.270GHD500e + 0.270GHD500r                 : ARR( 0.434E-13,  -900., 0.0);
+{ 26240} G2H502h +PERO2              =  0.400G1H5077 + 0.300GHD500e + 0.300GHD500r                 : ARR( 0.162E-13, -1400., 0.0);
+{ 26241} G2H502h +PERO3              =  0.460G1H5077 + 0.270GHD500e + 0.270GHD500r                 : ARR( 0.488E-13, -1250., 0.0);
+{ 26242} G2H502h +PERO5              =  0.460G1H5077 + 0.270GHD500e + 0.270GHD500r                 : ARR( 0.183E-11,   450., 0.0);
+{ 26243} G2H502h +PERO6              =  0.300G1H5077 + 0.350GHD500e + 0.350GHD500r                 : ARR( 0.168E-13, -1300., 0.0);
+{ 26244} G2H502h +PERO9              =  0.650G1H5077 + 0.350GHD500r                                : ARR( 0.100E-10,     0., 0.0);
+{ 26245} G2D500e +GNO                =       G1D500L +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 26246} G2D500e +GNO                =       GND5009                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 26247} G2D500e +GHO2               =       GHD500m                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 26248} G2D500e +GNO3               =       G1D500L +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 26249} G2D500e +MEPERO             =  0.480G1D500L + 0.260GDK5004 + 0.260GDD5004                 : ARR( 0.146E-12,  -445., 0.0);
+{ 26250} G2D500e +PERO1              =  0.600G1D500L + 0.200GDK5004 + 0.200GDD5004                 : ARR( 0.112E-12,  -500., 0.0);
+{ 26251} G2D500e +PERO2              =  0.560G1D500L + 0.220GDK5004 + 0.220GDD5004                 : ARR( 0.418E-13, -1000., 0.0);
+{ 26252} G2D500e +PERO3              =  0.600G1D500L + 0.200GDK5004 + 0.200GDD5004                 : ARR( 0.126E-12,  -850., 0.0);
+{ 26253} G2D500e +PERO5              =  0.600G1D500L + 0.200GDK5004 + 0.200GDD5004                 : ARR( 0.473E-11,   850., 0.0);
+{ 26254} G2D500e +PERO6              =  0.460G1D500L + 0.270GDK5004 + 0.270GDD5004                 : ARR( 0.434E-13,  -900., 0.0);
+{ 26255} G2D500e +PERO9              =  0.800G1D500L + 0.200GDD5004                                : ARR( 0.100E-10,     0., 0.0);
+{ 26256} G1H5077                     =       G3H4006 +      GCO                                    : ARR( 0.800E+11,  4780., 0.0);
+{ 26257} G1H5077                     =       GCH2O   +      GDD4002 +      GHO                     : ARR( 0.200E+15,  6757., 0.0);
+{ 26258} G1H5077                     =       GHD2000 +      G2D3002                                : ARR( 0.200E+15,  6868., 0.0);
+{ 26259} GHH501Q +GHO                =       GHN505C +      GHO                                    : ARR( 0.101E-10,     0., 0.0);
+{ 26260} GHH501Q +GHO                =       GHN5048 +      GHO                                    : ARR( 0.330E-11,     0., 0.0);
+{ 26261} GHH501Q +GHO                =       G2H502i                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 26262} GHH501Q +GHO                =       G2H502j                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 26263} GHH501Q+HV               =       G1H504m +      GHO                                    :  0.100E+01*SUN;
+{ 26264} GHH501Q+HV               =       G3H2000 +      G2H3008                                :  0.100E+01*SUN;
+{ 26265} GHH501Q+HV               =       GHK3000 +      GDD2000 +      GHO     +      GNO2     :  0.100E+01*SUN;
+{ 26266} GHH501Q+HV               =       G1H502Z +      GNO2                                   :  0.100E+01*SUN;
+{ 26267} GHH501Q+HV               =       G1H5044 +      GHO                                    :  0.100E+01*SUN;
+{ 26268} G2H502i +GNO                =       G1H504m +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 26269} G2H502i +GNO                =       GHN502f                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 26270} G2H502i +GHO2               =       GHH501Q                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 26271} G2H502i +GNO3               =       G1H504m +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 26272} G2H502i +MEPERO             =  0.480G1H504m + 0.260GHN502I + 0.260GHN505C                 : ARR( 0.164E-12,  -795., 0.0);
+{ 26273} G2H502i +PERO1              =  0.600G1H504m + 0.200GHN502I + 0.200GHN505C                 : ARR( 0.126E-12,  -850., 0.0);
+{ 26274} G2H502i +PERO2              =  0.560G1H504m + 0.220GHN502I + 0.220GHN505C                 : ARR( 0.471E-13, -1350., 0.0);
+{ 26275} G2H502i +PERO3              =  0.600G1H504m + 0.200GHN502I + 0.200GHN505C                 : ARR( 0.142E-12, -1200., 0.0);
+{ 26276} G2H502i +PERO5              =  0.600G1H504m + 0.200GHN502I + 0.200GHN505C                 : ARR( 0.533E-11,   500., 0.0);
+{ 26277} G2H502i +PERO6              =  0.460G1H504m + 0.270GHN502I + 0.270GHN505C                 : ARR( 0.488E-13, -1250., 0.0);
+{ 26278} G2H502i +PERO9              =  0.800G1H504m + 0.200GHN505C                                : ARR( 0.100E-10,     0., 0.0);
+{ 26279} G2H502j +GNO                =       G1H5044 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 26280} G2H502j +GNO                =       GHN502C                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 26281} G2H502j +GHO2               =       GHH501Q                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 26282} G2H502j +GNO3               =       G1H5044 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 26283} G2H502j +MEPERO             =  0.480G1H5044 + 0.260GHN501H + 0.260GHN5048                 : ARR( 0.164E-12,  -795., 0.0);
+{ 26284} G2H502j +PERO1              =  0.600G1H5044 + 0.200GHN501H + 0.200GHN5048                 : ARR( 0.126E-12,  -850., 0.0);
+{ 26285} G2H502j +PERO2              =  0.560G1H5044 + 0.220GHN501H + 0.220GHN5048                 : ARR( 0.471E-13, -1350., 0.0);
+{ 26286} G2H502j +PERO3              =  0.600G1H5044 + 0.200GHN501H + 0.200GHN5048                 : ARR( 0.142E-12, -1200., 0.0);
+{ 26287} G2H502j +PERO5              =  0.600G1H5044 + 0.200GHN501H + 0.200GHN5048                 : ARR( 0.533E-11,   500., 0.0);
+{ 26288} G2H502j +PERO6              =  0.460G1H5044 + 0.270GHN501H + 0.270GHN5048                 : ARR( 0.488E-13, -1250., 0.0);
+{ 26289} G2H502j +PERO9              =  0.800G1H5044 + 0.200GHN5048                                : ARR( 0.100E-10,     0., 0.0);
+{ 26290} GHH501R +GHO                =       GHH502e +      GHO                                    : ARR( 0.105E-10,     0., 0.0);
+{ 26291} GHH501R +GHO                =       GHH501T +      GHO                                    : ARR( 0.140E-09,     0., 0.0);
+{ 26292} GHH501R +GHO                =       GHH501X +      GHO                                    : ARR( 0.173E-10,     0., 0.0);
+{ 26293} GHH501R+HV               =       G1H506s +      GHO                                    :  0.100E+01*SUN;
+{ 26294} GHH501R+HV               =       G3H2000 +      G2H300B                                :  0.100E+01*SUN;
+{ 26295} GHH501R+HV               =       GHK3000 +      GDD2000 + 2.000GHO                     :  0.100E+01*SUN;
+{ 26296} GHH501R+HV               =       G1H502Z +      GHO                                    :  0.100E+01*SUN;
+{ 26297} GHH501R+HV               =       G1H5045 +      GHO                                    :  0.100E+01*SUN;
+{ 26298} GHH501S +GHO                =       GHD500d +      GHO                                    : ARR( 0.163E-10,     0., 0.0);
+{ 26299} GHH501S +GHO                =       GHH501T +      GHO2                                   : ARR( 0.332E-10,     0., 0.0);
+{ 26300} GHH501S +GHO                =       GHD500e +      GHO                                    : ARR( 0.996E-11,     0., 0.0);
+{ 26301} GHH501S +GHO                =       G2H502k                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 26302} GHH501S +GHO                =       G2H502l                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 26303} GHH501S+HV               =       G1H501F +      GHO                                    :  0.100E+01*SUN;
+{ 26304} GHH501S+HV               =       G3H4006 +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 26305} GHH501S+HV               =       GHD2000 +      GHK3000                                :  0.100E+01*SUN;
+{ 26306} GHH501S+HV               =       G1H506t +      GHO                                    :  0.100E+01*SUN;
+{ 26307} G2H502k +GNO                =       G1H501F +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 26308} G2H502k +GNO                =       GHN500Z                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 26309} G2H502k +GHO2               =       GHH501S                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 26310} G2H502k +GNO3               =       G1H501F +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 26311} G2H502k +MEPERO             =  0.480G1H501F + 0.260GHK500C + 0.260GHD500d                 : ARR( 0.164E-12,  -795., 0.0);
+{ 26312} G2H502k +PERO1              =  0.600G1H501F + 0.200GHK500C + 0.200GHD500d                 : ARR( 0.126E-12,  -850., 0.0);
+{ 26313} G2H502k +PERO2              =  0.560G1H501F + 0.220GHK500C + 0.220GHD500d                 : ARR( 0.471E-13, -1350., 0.0);
+{ 26314} G2H502k +PERO3              =  0.600G1H501F + 0.200GHK500C + 0.200GHD500d                 : ARR( 0.142E-12, -1200., 0.0);
+{ 26315} G2H502k +PERO5              =  0.600G1H501F + 0.200GHK500C + 0.200GHD500d                 : ARR( 0.533E-11,   500., 0.0);
+{ 26316} G2H502k +PERO6              =  0.460G1H501F + 0.270GHK500C + 0.270GHD500d                 : ARR( 0.488E-13, -1250., 0.0);
+{ 26317} G2H502k +PERO9              =  0.800G1H501F + 0.200GHD500d                                : ARR( 0.100E-10,     0., 0.0);
+{ 26318} G2H502l +GNO                =       G1H506t +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 26319} G2H502l +GNO                =       GHN503w                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 26320} G2H502l +GHO2               =       GHH501S                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 26321} G2H502l +GNO3               =       G1H506t +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 26322} G2H502l +MEPERO             =  0.480G1H506t + 0.260GHK500W + 0.260GHD500e                 : ARR( 0.164E-12,  -795., 0.0);
+{ 26323} G2H502l +PERO1              =  0.600G1H506t + 0.200GHK500W + 0.200GHD500e                 : ARR( 0.126E-12,  -850., 0.0);
+{ 26324} G2H502l +PERO2              =  0.560G1H506t + 0.220GHK500W + 0.220GHD500e                 : ARR( 0.471E-13, -1350., 0.0);
+{ 26325} G2H502l +PERO3              =  0.600G1H506t + 0.200GHK500W + 0.200GHD500e                 : ARR( 0.142E-12, -1200., 0.0);
+{ 26326} G2H502l +PERO5              =  0.600G1H506t + 0.200GHK500W + 0.200GHD500e                 : ARR( 0.533E-11,   500., 0.0);
+{ 26327} G2H502l +PERO6              =  0.460G1H506t + 0.270GHK500W + 0.270GHD500e                 : ARR( 0.488E-13, -1250., 0.0);
+{ 26328} G2H502l +PERO9              =  0.800G1H506t + 0.200GHD500e                                : ARR( 0.100E-10,     0., 0.0);
+{ 26329} GHH501T +GHO                =       GHD500r +      GHO                                    : ARR( 0.200E-10,     0., 0.0);
+{ 26330} GHH501T +GHO                =       G2H502m                                               : ARR( 0.387E-11,  -190., 0.0);
+{ 26331} GHH501T+HV               =       G1H5046 +      GHO                                    :  0.200E+01*SUN;
+{ 26332} GHH501T+HV               =       G3H2000 +      G2H3002                                :  0.100E+01*SUN;
+{ 26333} GHH501T+HV               =       G3H4007 +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 26334} G2H502m +GNO                =       G1H5046 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 26335} G2H502m +GNO                =       GHN502D                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 26336} G2H502m +GHO2               =       GHH501T                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 26337} G2H502m +GNO3               =       G1H5046 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 26338} G2H502m +MEPERO             =  0.480G1H5046 + 0.260GHK500E + 0.260GHD500r                 : ARR( 0.164E-12,  -795., 0.0);
+{ 26339} G2H502m +PERO1              =  0.600G1H5046 + 0.200GHK500E + 0.200GHD500r                 : ARR( 0.126E-12,  -850., 0.0);
+{ 26340} G2H502m +PERO2              =  0.560G1H5046 + 0.220GHK500E + 0.220GHD500r                 : ARR( 0.471E-13, -1350., 0.0);
+{ 26341} G2H502m +PERO3              =  0.600G1H5046 + 0.200GHK500E + 0.200GHD500r                 : ARR( 0.142E-12, -1200., 0.0);
+{ 26342} G2H502m +PERO5              =  0.600G1H5046 + 0.200GHK500E + 0.200GHD500r                 : ARR( 0.533E-11,   500., 0.0);
+{ 26343} G2H502m +PERO6              =  0.460G1H5046 + 0.270GHK500E + 0.270GHD500r                 : ARR( 0.488E-13, -1250., 0.0);
+{ 26344} G2H502m +PERO9              =  0.800G1H5046 + 0.200GHD500r                                : ARR( 0.100E-10,     0., 0.0);
+{ 26345} GHN5046 +GHO                =       GND500a +      GHO                                    : ARR( 0.169E-10,     0., 0.0);
+{ 26346} GHN5046 +GHO                =       G3H501W                                               : ARR( 0.218E-10,     0., 0.0);
+{ 26347} GHN5046 +GHO                =       G2N503P                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 26348} GHN5046 +GNO3               =       G3H501W +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 26349} GHN5046+HV               =       G1N503l +      GHO                                    :  0.100E+01*SUN;
+{ 26350} GHN5046+HV               =       G1H502a +      GNO2                                   :  0.100E+01*SUN;
+{ 26351} GHN5046+HV               =       GHN400M +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 26352} G3H501W +GHO2               =  0.800GGH501n + 0.200GAH500P + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 26353} G3H501W +GNO                =       GHN400M +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 26354} G3H501W +GNO2               =       GPH500P                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 26355} G3H501W +GNO3               =       GHN400M +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 26356} G3H501W +MEPERO             =  0.685GHN400M + 0.315GAH500P + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26357} G3H501W +PERO1              =  0.800GHN400M + 0.200GAH500P + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26358} G3H501W +PERO2              =  0.750GHN400M + 0.250GAH500P + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26359} G3H501W +PERO3              =  0.800GHN400M + 0.200GAH500P + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26360} G3H501W +PERO5              =  0.650GHN400M + 0.350GAH500P + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26361} G3H501W +PERO6              =  0.650GHN400M + 0.350GAH500P + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26362} G3H501W +PERO9              =       GHN400M +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 26363} GHH501U +GHO                =       GHD500O +      GHO                                    : ARR( 0.175E-10,     0., 0.0);
+{ 26364} GHH501U +GHO                =       GHD500o +      GHO                                    : ARR( 0.142E-09,     0., 0.0);
+{ 26365} GHH501U +GHO                =       G3H501X                                               : ARR( 0.226E-10,     0., 0.0);
+{ 26366} GHH501U +GNO3               =       G3H501X +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 26367} GHH501U+HV               =       G1H5076 +      GHO                                    :  0.100E+01*SUN;
+{ 26368} GHH501U+HV               =       G1H502a +      GHO                                    :  0.100E+01*SUN;
+{ 26369} GHH501U+HV               =       GHH400A +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 26370} G3H501X +GHO2               =  0.800GGH501o + 0.200GAH501t + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 26371} G3H501X +GNO                =       GHH400A +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 26372} G3H501X +GNO2               =       GPH501s                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 26373} G3H501X +GNO3               =       GHH400A +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 26374} G3H501X +MEPERO             =  0.685GHH400A + 0.315GAH501t + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26375} G3H501X +PERO1              =  0.800GHH400A + 0.200GAH501t + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26376} G3H501X +PERO2              =  0.750GHH400A + 0.250GAH501t + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26377} G3H501X +PERO3              =  0.800GHH400A + 0.200GAH501t + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26378} G3H501X +PERO5              =  0.650GHH400A + 0.350GAH501t + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26379} G3H501X +PERO6              =  0.650GHH400A + 0.350GAH501t + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26380} G3H501X +PERO9              =       GHH400A +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 26381} GHD500n +GHO                =       GDD5002 +      GHO                                    : ARR( 0.172E-10,     0., 0.0);
+{ 26382} GHD500n +GHO                =       GHD500o +      GHO2                                   : ARR( 0.349E-10,     0., 0.0);
+{ 26383} GHD500n +GHO                =       GHD501L +      GHO2                                   : ARR( 0.672E-11,     0., 0.0);
+{ 26384} GHD500n +GHO                =       G3H501Y                                               : ARR( 0.222E-10,     0., 0.0);
+{ 26385} GHD500n +GNO3               =       G3H501Y +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 26386} GHD500n+HV               =       G1D5017 +      GHO                                    :  0.100E+01*SUN;
+{ 26387} GHD500n+HV               =       GHD400B +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 26388} G3H501Y +GHO2               =  0.800GGH500O + 0.200GAH501u + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 26389} G3H501Y +GNO                =       GHD400B +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 26390} G3H501Y +GNO2               =       GPH500S                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 26391} G3H501Y +GNO3               =       GHD400B +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 26392} G3H501Y +MEPERO             =  0.685GHD400B + 0.315GAH501u + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26393} G3H501Y +PERO1              =  0.800GHD400B + 0.200GAH501u + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26394} G3H501Y +PERO2              =  0.750GHD400B + 0.250GAH501u + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26395} G3H501Y +PERO3              =  0.800GHD400B + 0.200GAH501u + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26396} G3H501Y +PERO5              =  0.650GHD400B + 0.350GAH501u + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26397} G3H501Y +PERO6              =  0.650GHD400B + 0.350GAH501u + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26398} G3H501Y +PERO9              =       GHD400B +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 26399} GHD500o +GHO                =       GDD5005 +      GHO                                    : ARR( 0.547E-10,     0., 0.0);
+{ 26400} GHD500o +GHO                =       G3H501Z                                               : ARR( 0.706E-10,     0., 0.0);
+{ 26401} GHD500o +GNO3               =       G3H501Z +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 26402} GHD500o+HV               =       G1D500i +      GHO                                    :  0.100E+01*SUN;
+{ 26403} GHD500o+HV               =       G3H3000 +      GDD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 26404} GHD500o+HV               =       GHD400D +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 26405} G3H501Z +GHO2               =  0.800GGH501p + 0.200GAH501v + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 26406} G3H501Z +GNO                =       GHD400D +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 26407} G3H501Z +GNO2               =       GPH501t                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 26408} G3H501Z +GNO3               =       GHD400D +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 26409} G3H501Z +MEPERO             =  0.685GHD400D + 0.315GAH501v + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26410} G3H501Z +PERO1              =  0.800GHD400D + 0.200GAH501v + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26411} G3H501Z +PERO2              =  0.750GHD400D + 0.250GAH501v + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26412} G3H501Z +PERO3              =  0.800GHD400D + 0.200GAH501v + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26413} G3H501Z +PERO5              =  0.650GHD400D + 0.350GAH501v + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26414} G3H501Z +PERO6              =  0.650GHD400D + 0.350GAH501v + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26415} G3H501Z +PERO9              =       GHD400D +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 26416} GGH500E +GHO                =       GGD5000 +      GHO                                    : ARR( 0.177E-10,     0., 0.0);
+{ 26417} GGH500E +GHO                =       GGH501q +      GHO2                                   : ARR( 0.691E-11,     0., 0.0);
+{ 26418} GGH500E +GHO                =       G2G5018                                               : ARR( 0.209E-11,  -190., 0.0);
+{ 26419} GGH500E +GHO                =       G3H500C                                               : ARR( 0.209E-11,  -190., 0.0);
+{ 26420} GGH500E+HV               =       G1G500n +      GHO                                    :  0.100E+01*SUN;
+{ 26421} GGH500E+HV               =       GHD4001 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 26422} G2G5018 +GNO                =       G1G500n +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 26423} G2G5018 +GNO                =       GGN500B                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 26424} G2G5018 +GHO2               =       GGH500E                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 26425} G2G5018 +GNO3               =       G1G500n +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 26426} G2G5018 +MEPERO             =  0.480G1G500n + 0.260GGO5007 + 0.260GGD5000                 : ARR( 0.146E-12,  -445., 0.0);
+{ 26427} G2G5018 +PERO1              =  0.600G1G500n + 0.200GGO5007 + 0.200GGD5000                 : ARR( 0.112E-12,  -500., 0.0);
+{ 26428} G2G5018 +PERO2              =  0.560G1G500n + 0.220GGO5007 + 0.220GGD5000                 : ARR( 0.418E-13, -1000., 0.0);
+{ 26429} G2G5018 +PERO3              =  0.600G1G500n + 0.200GGO5007 + 0.200GGD5000                 : ARR( 0.126E-12,  -850., 0.0);
+{ 26430} G2G5018 +PERO5              =  0.600G1G500n + 0.200GGO5007 + 0.200GGD5000                 : ARR( 0.473E-11,   850., 0.0);
+{ 26431} G2G5018 +PERO6              =  0.460G1G500n + 0.270GGO5007 + 0.270GGD5000                 : ARR( 0.434E-13,  -900., 0.0);
+{ 26432} G2G5018 +PERO9              =  0.800G1G500n + 0.200GGD5000                                : ARR( 0.100E-10,     0., 0.0);
+{ 26433} GAH500E +GHO                =       GAH501w +      GHO2                                   : ARR( 0.476E-11,     0., 0.0);
+{ 26434} GAH500E +GHO                =       G2A501H                                               : ARR( 0.145E-11,     0., 0.0);
+{ 26435} GAH500E +GHO                =       G2A501I                                               : ARR( 0.145E-11,     0., 0.0);
+{ 26436} GAH500E +GHO                =       GAD5001 +      GHO                                    : ARR( 0.165E-10,     0., 0.0);
+{ 26437} GAH500E +GHO                =       G2A501J                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 26438} GAH500E+HV               =       G1A500u +      GHO                                    :  0.100E+01*SUN;
+{ 26439} G2A501H +GNO                =       G1A501W +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 26440} G2A501H +GNO                =       GAH500P                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 26441} G2A501H +GHO2               =       GAH501t                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 26442} G2A501H +GNO3               =       G1A501W +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 26443} G2A501H +MEPERO             =  0.340G1A501W + 0.330GAH501u + 0.330GAH501v                 : ARR( 0.565E-13,  -845., 0.0);
+{ 26444} G2A501H +PERO1              =  0.460G1A501W + 0.270GAH501u + 0.270GAH501v                 : ARR( 0.434E-13,  -900., 0.0);
+{ 26445} G2A501H +PERO2              =  0.400G1A501W + 0.300GAH501u + 0.300GAH501v                 : ARR( 0.162E-13, -1400., 0.0);
+{ 26446} G2A501H +PERO3              =  0.460G1A501W + 0.270GAH501u + 0.270GAH501v                 : ARR( 0.488E-13, -1250., 0.0);
+{ 26447} G2A501H +PERO5              =  0.460G1A501W + 0.270GAH501u + 0.270GAH501v                 : ARR( 0.183E-11,   450., 0.0);
+{ 26448} G2A501H +PERO6              =  0.300G1A501W + 0.350GAH501u + 0.350GAH501v                 : ARR( 0.168E-13, -1300., 0.0);
+{ 26449} G2A501H +PERO9              =  0.650G1A501W + 0.350GAH501v                                : ARR( 0.100E-10,     0., 0.0);
+{ 26450} G2A501I +GNO                =       G1A501X +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 26451} G2A501I +GNO                =       GAH501l                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 26452} G2A501I +GHO2               =       GAH501x                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 26453} G2A501I +GNO3               =       G1A501X +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 26454} G2A501I +MEPERO             =  0.340G1A501X + 0.330GAH500B + 0.330GAH501g                 : ARR( 0.565E-13,  -845., 0.0);
+{ 26455} G2A501I +PERO1              =  0.460G1A501X + 0.270GAH500B + 0.270GAH501g                 : ARR( 0.434E-13,  -900., 0.0);
+{ 26456} G2A501I +PERO2              =  0.400G1A501X + 0.300GAH500B + 0.300GAH501g                 : ARR( 0.162E-13, -1400., 0.0);
+{ 26457} G2A501I +PERO3              =  0.460G1A501X + 0.270GAH500B + 0.270GAH501g                 : ARR( 0.488E-13, -1250., 0.0);
+{ 26458} G2A501I +PERO5              =  0.460G1A501X + 0.270GAH500B + 0.270GAH501g                 : ARR( 0.183E-11,   450., 0.0);
+{ 26459} G2A501I +PERO6              =  0.300G1A501X + 0.350GAH500B + 0.350GAH501g                 : ARR( 0.168E-13, -1300., 0.0);
+{ 26460} G2A501I +PERO9              =  0.650G1A501X + 0.350GAH501g                                : ARR( 0.100E-10,     0., 0.0);
+{ 26461} G2A501J +GNO                =       G1A500u +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 26462} G2A501J +GNO                =       GAN500B                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 26463} G2A501J +GHO2               =       GAH500E                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 26464} G2A501J +GNO3               =       G1A500u +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 26465} G2A501J +MEPERO             =  0.480G1A500u + 0.260GAO5007 + 0.260GAD5001                 : ARR( 0.146E-12,  -445., 0.0);
+{ 26466} G2A501J +PERO1              =  0.600G1A500u + 0.200GAO5007 + 0.200GAD5001                 : ARR( 0.112E-12,  -500., 0.0);
+{ 26467} G2A501J +PERO2              =  0.560G1A500u + 0.220GAO5007 + 0.220GAD5001                 : ARR( 0.418E-13, -1000., 0.0);
+{ 26468} G2A501J +PERO3              =  0.600G1A500u + 0.200GAO5007 + 0.200GAD5001                 : ARR( 0.126E-12,  -850., 0.0);
+{ 26469} G2A501J +PERO5              =  0.600G1A500u + 0.200GAO5007 + 0.200GAD5001                 : ARR( 0.473E-11,   850., 0.0);
+{ 26470} G2A501J +PERO6              =  0.460G1A500u + 0.270GAO5007 + 0.270GAD5001                 : ARR( 0.434E-13,  -900., 0.0);
+{ 26471} G2A501J +PERO9              =  0.800G1A500u + 0.200GAD5001                                : ARR( 0.100E-10,     0., 0.0);
+{ 26472} G1A501W                     =       GAD2000 +      GHD3000 +      GHO2                    : ARR( 0.200E+15,  3675., 0.0);
+{ 26473} G1A501X                     =       G2A3005 +      GHD2000                                : ARR( 0.200E+15,  7118., 0.0);
+{ 26474} G1A501X                     =       GAD4002 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  7140., 0.0);
+{ 26475} GPH500E                     =       G3H500C +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 26476} GPH500E +GHO                =       GPD5000 +      GHO                                    : ARR( 0.179E-10,     0., 0.0);
+{ 26477} GPH500E +GHO                =       GPH501u +      GHO2                                   : ARR( 0.700E-11,     0., 0.0);
+{ 26478} GPH500E +GHO                =       G2P501L                                               : ARR( 0.212E-11,  -190., 0.0);
+{ 26479} GPH500E+HV               =       G1P5018 +      GHO                                    :  0.100E+01*SUN;
+{ 26480} GPH500E+HV               =       G3H500C +      GNO2                                   :  0.100E+01*SUN;
+{ 26481} G2P501L +GNO                =       G1P5018 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 26482} G2P501L +GNO                =       GPN500D                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 26483} G2P501L +GHO2               =       GPH500E                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 26484} G2P501L +GNO3               =       G1P5018 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 26485} G2P501L +MEPERO             =  0.480G1P5018 + 0.260GPO5007 + 0.260GPD5000                 : ARR( 0.146E-12,  -445., 0.0);
+{ 26486} G2P501L +PERO1              =  0.600G1P5018 + 0.200GPO5007 + 0.200GPD5000                 : ARR( 0.112E-12,  -500., 0.0);
+{ 26487} G2P501L +PERO2              =  0.560G1P5018 + 0.220GPO5007 + 0.220GPD5000                 : ARR( 0.418E-13, -1000., 0.0);
+{ 26488} G2P501L +PERO3              =  0.600G1P5018 + 0.200GPO5007 + 0.200GPD5000                 : ARR( 0.126E-12,  -850., 0.0);
+{ 26489} G2P501L +PERO5              =  0.600G1P5018 + 0.200GPO5007 + 0.200GPD5000                 : ARR( 0.473E-11,   850., 0.0);
+{ 26490} G2P501L +PERO6              =  0.460G1P5018 + 0.270GPO5007 + 0.270GPD5000                 : ARR( 0.434E-13,  -900., 0.0);
+{ 26491} G2P501L +PERO9              =  0.800G1P5018 + 0.200GPD5000                                : ARR( 0.100E-10,     0., 0.0);
+{ 26492} GHN5047 +GHO                =       GND501C +      GHO                                    : ARR( 0.992E-11,     0., 0.0);
+{ 26493} GHN5047 +GHO                =       G3H501a                                               : ARR( 0.210E-10,     0., 0.0);
+{ 26494} GHN5047 +GHO                =       G2N5057                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 26495} GHN5047 +GNO3               =       G3H501a +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 26496} GHN5047+HV               =       G1N505M +      GHO                                    :  0.100E+01*SUN;
+{ 26497} GHN5047+HV               =       G3H2000 +      GDD3000 +      GNO2                    :  0.100E+01*SUN;
+{ 26498} GHN5047+HV               =       G1H502b +      GNO2                                   :  0.100E+01*SUN;
+{ 26499} GHN5047+HV               =       G2H400p +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 26500} G3H501a +GHO2               =  0.800GGH501r + 0.200GAH501y + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 26501} G3H501a +GNO                =       G2H400p +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 26502} G3H501a +GNO2               =       GPH501v                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 26503} G3H501a +GNO3               =       G2H400p +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 26504} G3H501a +MEPERO             =  0.685G2H400p + 0.315GAH501y + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 26505} G3H501a +PERO1              =  0.800G2H400p + 0.200GAH501y + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 26506} G3H501a +PERO2              =  0.750G2H400p + 0.250GAH501y + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 26507} G3H501a +PERO3              =  0.800G2H400p + 0.200GAH501y + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 26508} G3H501a +PERO5              =  0.650G2H400p + 0.350GAH501y + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 26509} G3H501a +PERO6              =  0.650G2H400p + 0.350GAH501y + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 26510} G3H501a +PERO9              =       G2H400p +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 26511} G2N5057 +GNO                =       G1N505M +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 26512} G2N5057 +GNO                =       GNN5026                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 26513} G2N5057 +GHO2               =       GHN5047                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 26514} G2N5057 +GNO3               =       G1N505M +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 26515} G2N5057 +MEPERO             =  0.480G1N505M + 0.260GND500u + 0.260GND501C                 : ARR( 0.164E-12,  -795., 0.0);
+{ 26516} G2N5057 +PERO1              =  0.600G1N505M + 0.200GND500u + 0.200GND501C                 : ARR( 0.126E-12,  -850., 0.0);
+{ 26517} G2N5057 +PERO2              =  0.560G1N505M + 0.220GND500u + 0.220GND501C                 : ARR( 0.471E-13, -1350., 0.0);
+{ 26518} G2N5057 +PERO3              =  0.600G1N505M + 0.200GND500u + 0.200GND501C                 : ARR( 0.142E-12, -1200., 0.0);
+{ 26519} G2N5057 +PERO5              =  0.600G1N505M + 0.200GND500u + 0.200GND501C                 : ARR( 0.533E-11,   500., 0.0);
+{ 26520} G2N5057 +PERO6              =  0.460G1N505M + 0.270GND500u + 0.270GND501C                 : ARR( 0.488E-13, -1250., 0.0);
+{ 26521} G2N5057 +PERO9              =  0.800G1N505M + 0.200GND501C                                : ARR( 0.100E-10,     0., 0.0);
+{ 26522} G2H400p +GNO                =       G1H4012 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 26523} G2H400p +GNO                =       GHN4017                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 26524} G2H400p +GHO2               =       GHH400m                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 26525} G2H400p +GNO3               =       G1H4012 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 26526} G2H400p +MEPERO             =  0.480G1H4012 + 0.260GHN400t + 0.260GHN401A                 : ARR( 0.164E-12,  -795., 0.0);
+{ 26527} G2H400p +PERO1              =  0.600G1H4012 + 0.200GHN400t + 0.200GHN401A                 : ARR( 0.126E-12,  -850., 0.0);
+{ 26528} G2H400p +PERO2              =  0.560G1H4012 + 0.220GHN400t + 0.220GHN401A                 : ARR( 0.471E-13, -1350., 0.0);
+{ 26529} G2H400p +PERO3              =  0.600G1H4012 + 0.200GHN400t + 0.200GHN401A                 : ARR( 0.142E-12, -1200., 0.0);
+{ 26530} G2H400p +PERO5              =  0.600G1H4012 + 0.200GHN400t + 0.200GHN401A                 : ARR( 0.533E-11,   500., 0.0);
+{ 26531} G2H400p +PERO6              =  0.460G1H4012 + 0.270GHN400t + 0.270GHN401A                 : ARR( 0.488E-13, -1250., 0.0);
+{ 26532} G2H400p +PERO9              =  0.800G1H4012 + 0.200GHN401A                                : ARR( 0.100E-10,     0., 0.0);
+{ 26533} G1H4012 +OXYGEN             =       GHN401A +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 26534} G1H4012                     =       GND400K +      GHO                                    : ARR( 0.160E+12,  4168., 0.0);
+{ 26535} GHH501W +GHO                =       GHD5013 +      GHO                                    : ARR( 0.107E-10,     0., 0.0);
+{ 26536} GHH501W +GHO                =       GHD500q +      GHO                                    : ARR( 0.868E-10,     0., 0.0);
+{ 26537} GHH501W +GHO                =       G3H501b                                               : ARR( 0.226E-10,     0., 0.0);
+{ 26538} GHH501W +GNO3               =       G3H501b +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 26539} GHH501W+HV               =       G1H506e +      GHO                                    :  0.100E+01*SUN;
+{ 26540} GHH501W+HV               =       G3H2000 +      GDD3000 +      GHO                     :  0.100E+01*SUN;
+{ 26541} GHH501W+HV               =       G1H502b +      GHO                                    :  0.100E+01*SUN;
+{ 26542} GHH501W+HV               =       G2H400q +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 26543} G3H501b +GHO2               =  0.800GGH501s + 0.200GAH501z + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 26544} G3H501b +GNO                =       G2H400q +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 26545} G3H501b +GNO2               =       GPH501w                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 26546} G3H501b +GNO3               =       G2H400q +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 26547} G3H501b +MEPERO             =  0.685G2H400q + 0.315GAH501z + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 26548} G3H501b +PERO1              =  0.800G2H400q + 0.200GAH501z + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 26549} G3H501b +PERO2              =  0.750G2H400q + 0.250GAH501z + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 26550} G3H501b +PERO3              =  0.800G2H400q + 0.200GAH501z + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 26551} G3H501b +PERO5              =  0.650G2H400q + 0.350GAH501z + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 26552} G3H501b +PERO6              =  0.650G2H400q + 0.350GAH501z + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 26553} G3H501b +PERO9              =       G2H400q +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 26554} G2H400q +GNO                =       G1H4013 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 26555} G2H400q +GNO                =       GHH400g                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 26556} G2H400q +GHO2               =       GHH400n                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 26557} G2H400q +GNO3               =       G1H4013 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 26558} G2H400q +MEPERO             =  0.480G1H4013 + 0.260GHH400Y + 0.260GHH400b                 : ARR( 0.164E-12,  -795., 0.0);
+{ 26559} G2H400q +PERO1              =  0.600G1H4013 + 0.200GHH400Y + 0.200GHH400b                 : ARR( 0.126E-12,  -850., 0.0);
+{ 26560} G2H400q +PERO2              =  0.560G1H4013 + 0.220GHH400Y + 0.220GHH400b                 : ARR( 0.471E-13, -1350., 0.0);
+{ 26561} G2H400q +PERO3              =  0.600G1H4013 + 0.200GHH400Y + 0.200GHH400b                 : ARR( 0.142E-12, -1200., 0.0);
+{ 26562} G2H400q +PERO5              =  0.600G1H4013 + 0.200GHH400Y + 0.200GHH400b                 : ARR( 0.533E-11,   500., 0.0);
+{ 26563} G2H400q +PERO6              =  0.460G1H4013 + 0.270GHH400Y + 0.270GHH400b                 : ARR( 0.488E-13, -1250., 0.0);
+{ 26564} G2H400q +PERO9              =  0.800G1H4013 + 0.200GHH400b                                : ARR( 0.100E-10,     0., 0.0);
+{ 26565} G1H4013 +OXYGEN             =       GHH400b +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 26566} G1H4013                     =       GHD400M +      GHO                                    : ARR( 0.160E+12,  4168., 0.0);
+{ 26567} G1H4013                     =       GHD3001 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5784., 0.0);
+{ 26568} GHD500p +GHO                =       GDD5009 +      GHO                                    : ARR( 0.103E-10,     0., 0.0);
+{ 26569} GHD500p +GHO                =       GHD500q +      GHO2                                   : ARR( 0.210E-10,     0., 0.0);
+{ 26570} GHD500p +GHO                =       G3H501c                                               : ARR( 0.219E-10,     0., 0.0);
+{ 26571} GHD500p +GHO                =       G2D500f                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 26572} GHD500p +GNO3               =       G3H501c +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 26573} GHD500p+HV               =       G1D5011 +      GHO                                    :  0.100E+01*SUN;
+{ 26574} GHD500p+HV               =       G3H2000 +      GDD3000 +      GHO2                    :  0.100E+01*SUN;
+{ 26575} GHD500p+HV               =       G2H400r +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 26576} G3H501c +GHO2               =  0.800GGH501t + 0.200GAH5021 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 26577} G3H501c +GNO                =       G2H400r +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 26578} G3H501c +GNO2               =       GPH501x                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 26579} G3H501c +GNO3               =       G2H400r +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 26580} G3H501c +MEPERO             =  0.685G2H400r + 0.315GAH5021 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 26581} G3H501c +PERO1              =  0.800G2H400r + 0.200GAH5021 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 26582} G3H501c +PERO2              =  0.750G2H400r + 0.250GAH5021 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 26583} G3H501c +PERO3              =  0.800G2H400r + 0.200GAH5021 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 26584} G3H501c +PERO5              =  0.650G2H400r + 0.350GAH5021 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 26585} G3H501c +PERO6              =  0.650G2H400r + 0.350GAH5021 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 26586} G3H501c +PERO9              =       G2H400r +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 26587} G2D500f +GNO                =       G1D5011 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 26588} G2D500f +GNO                =       GND500n                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 26589} G2D500f +GHO2               =       GHD500p                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 26590} G2D500f +GNO3               =       G1D5011 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 26591} G2D500f +MEPERO             =  0.480G1D5011 + 0.260GDK500Q + 0.260GDD5009                 : ARR( 0.164E-12,  -795., 0.0);
+{ 26592} G2D500f +PERO1              =  0.600G1D5011 + 0.200GDK500Q + 0.200GDD5009                 : ARR( 0.126E-12,  -850., 0.0);
+{ 26593} G2D500f +PERO2              =  0.560G1D5011 + 0.220GDK500Q + 0.220GDD5009                 : ARR( 0.471E-13, -1350., 0.0);
+{ 26594} G2D500f +PERO3              =  0.600G1D5011 + 0.200GDK500Q + 0.200GDD5009                 : ARR( 0.142E-12, -1200., 0.0);
+{ 26595} G2D500f +PERO5              =  0.600G1D5011 + 0.200GDK500Q + 0.200GDD5009                 : ARR( 0.533E-11,   500., 0.0);
+{ 26596} G2D500f +PERO6              =  0.460G1D5011 + 0.270GDK500Q + 0.270GDD5009                 : ARR( 0.488E-13, -1250., 0.0);
+{ 26597} G2D500f +PERO9              =  0.800G1D5011 + 0.200GDD5009                                : ARR( 0.100E-10,     0., 0.0);
+{ 26598} G2H400r +GNO                =       G1H4011 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 26599} G2H400r +GNO                =       GHN400W                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 26600} G2H400r +GHO2               =       GHH400J                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 26601} G2H400r +GNO3               =       G1H4011 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 26602} G2H400r +MEPERO             =  0.480G1H4011 + 0.260GHK4006 + 0.260GHD400J                 : ARR( 0.164E-12,  -795., 0.0);
+{ 26603} G2H400r +PERO1              =  0.600G1H4011 + 0.200GHK4006 + 0.200GHD400J                 : ARR( 0.126E-12,  -850., 0.0);
+{ 26604} G2H400r +PERO2              =  0.560G1H4011 + 0.220GHK4006 + 0.220GHD400J                 : ARR( 0.471E-13, -1350., 0.0);
+{ 26605} G2H400r +PERO3              =  0.600G1H4011 + 0.200GHK4006 + 0.200GHD400J                 : ARR( 0.142E-12, -1200., 0.0);
+{ 26606} G2H400r +PERO5              =  0.600G1H4011 + 0.200GHK4006 + 0.200GHD400J                 : ARR( 0.533E-11,   500., 0.0);
+{ 26607} G2H400r +PERO6              =  0.460G1H4011 + 0.270GHK4006 + 0.270GHD400J                 : ARR( 0.488E-13, -1250., 0.0);
+{ 26608} G2H400r +PERO9              =  0.800G1H4011 + 0.200GHD400J                                : ARR( 0.100E-10,     0., 0.0);
+{ 26609} GHD500q +GHO                =       GDD500A +      GHO                                    : ARR( 0.103E-10,     0., 0.0);
+{ 26610} GHD500q +GHO                =       G3H501d                                               : ARR( 0.695E-10,     0., 0.0);
+{ 26611} GHD500q +GNO3               =       G3H501d +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 26612} GHD500q+HV               =       G1D500u +      GHO                                    :  0.100E+01*SUN;
+{ 26613} GHD500q+HV               =       G3H2000 +      G3D3000                                :  0.100E+01*SUN;
+{ 26614} GHD500q+HV               =       G2H400s +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 26615} G3H501d +GHO2               =  0.800GGH501u + 0.200GAH5022 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 26616} G3H501d +GNO                =       G2H400s +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 26617} G3H501d +GNO2               =       GPH501y                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 26618} G3H501d +GNO3               =       G2H400s +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 26619} G3H501d +MEPERO             =  0.685G2H400s + 0.315GAH5022 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 26620} G3H501d +PERO1              =  0.800G2H400s + 0.200GAH5022 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 26621} G3H501d +PERO2              =  0.750G2H400s + 0.250GAH5022 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 26622} G3H501d +PERO3              =  0.800G2H400s + 0.200GAH5022 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 26623} G3H501d +PERO5              =  0.650G2H400s + 0.350GAH5022 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 26624} G3H501d +PERO6              =  0.650G2H400s + 0.350GAH5022 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 26625} G3H501d +PERO9              =       G2H400s +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 26626} G2H400s +GNO                =       G1H4014 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 26627} G2H400s +GNO                =       GHN4019                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 26628} G2H400s +GHO2               =       GHH400o                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 26629} G2H400s +GNO3               =       G1H4014 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 26630} G2H400s +MEPERO             =  0.480G1H4014 + 0.260GHK400C + 0.260GHD400N                 : ARR( 0.164E-12,  -795., 0.0);
+{ 26631} G2H400s +PERO1              =  0.600G1H4014 + 0.200GHK400C + 0.200GHD400N                 : ARR( 0.126E-12,  -850., 0.0);
+{ 26632} G2H400s +PERO2              =  0.560G1H4014 + 0.220GHK400C + 0.220GHD400N                 : ARR( 0.471E-13, -1350., 0.0);
+{ 26633} G2H400s +PERO3              =  0.600G1H4014 + 0.200GHK400C + 0.200GHD400N                 : ARR( 0.142E-12, -1200., 0.0);
+{ 26634} G2H400s +PERO5              =  0.600G1H4014 + 0.200GHK400C + 0.200GHD400N                 : ARR( 0.533E-11,   500., 0.0);
+{ 26635} G2H400s +PERO6              =  0.460G1H4014 + 0.270GHK400C + 0.270GHD400N                 : ARR( 0.488E-13, -1250., 0.0);
+{ 26636} G2H400s +PERO9              =  0.800G1H4014 + 0.200GHD400N                                : ARR( 0.100E-10,     0., 0.0);
+{ 26637} G1H4014                     =       G3H2000 +      GCH2O   +      GCO                     : ARR( 0.200E+15,  3897., 0.0);
+{ 26638} GHN5048 +GHO                =       GND5014 +      GHO                                    : ARR( 0.100E-10,     0., 0.0);
+{ 26639} GHN5048 +GHO                =       G3H501e                                               : ARR( 0.425E-11,     0., 0.0);
+{ 26640} GHN5048 +GHO                =       G2N5058                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 26641} GHN5048 +GNO3               =       G3H501e +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 26642} GHN5048+HV               =       G1N504s +      GHO                                    :  0.100E+01*SUN;
+{ 26643} GHN5048+HV               =       G3H2000 +      G2N300A                                :  0.100E+01*SUN;
+{ 26644} GHN5048+HV               =       G1H502c +      GNO2                                   :  0.100E+01*SUN;
+{ 26645} GHN5048+HV               =       GHD4004 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 26646} G3H501e +GHO2               =  0.800GGH501v + 0.200GAH5023 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 26647} G3H501e +GNO                =       GHD4004 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 26648} G3H501e +GNO2               =       GPH501z                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 26649} G3H501e +GNO3               =       GHD4004 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 26650} G3H501e +MEPERO             =  0.685GHD4004 + 0.315GAH5023 + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26651} G3H501e +PERO1              =  0.800GHD4004 + 0.200GAH5023 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26652} G3H501e +PERO2              =  0.750GHD4004 + 0.250GAH5023 + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26653} G3H501e +PERO3              =  0.800GHD4004 + 0.200GAH5023 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26654} G3H501e +PERO5              =  0.650GHD4004 + 0.350GAH5023 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26655} G3H501e +PERO6              =  0.650GHD4004 + 0.350GAH5023 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26656} G3H501e +PERO9              =       GHD4004 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 26657} G2N5058 +GNO                =       G1N504s +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 26658} G2N5058 +GNO                =       GNN501m                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 26659} G2N5058 +GHO2               =       GHN5048                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 26660} G2N5058 +GNO3               =       G1N504s +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 26661} G2N5058 +MEPERO             =  0.480G1N504s + 0.260GND500e + 0.260GND5014                 : ARR( 0.164E-12,  -795., 0.0);
+{ 26662} G2N5058 +PERO1              =  0.600G1N504s + 0.200GND500e + 0.200GND5014                 : ARR( 0.126E-12,  -850., 0.0);
+{ 26663} G2N5058 +PERO2              =  0.560G1N504s + 0.220GND500e + 0.220GND5014                 : ARR( 0.471E-13, -1350., 0.0);
+{ 26664} G2N5058 +PERO3              =  0.600G1N504s + 0.200GND500e + 0.200GND5014                 : ARR( 0.142E-12, -1200., 0.0);
+{ 26665} G2N5058 +PERO5              =  0.600G1N504s + 0.200GND500e + 0.200GND5014                 : ARR( 0.533E-11,   500., 0.0);
+{ 26666} G2N5058 +PERO6              =  0.460G1N504s + 0.270GND500e + 0.270GND5014                 : ARR( 0.488E-13, -1250., 0.0);
+{ 26667} G2N5058 +PERO9              =  0.800G1N504s + 0.200GND5014                                : ARR( 0.100E-10,     0., 0.0);
+{ 26668} GHH501X +GHO                =       GHD5018 +      GHO                                    : ARR( 0.107E-10,     0., 0.0);
+{ 26669} GHH501X +GHO                =       GHD500r +      GHO                                    : ARR( 0.868E-10,     0., 0.0);
+{ 26670} GHH501X +GHO                =       G3H501f                                               : ARR( 0.226E-10,     0., 0.0);
+{ 26671} GHH501X +GNO3               =       G3H501f +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 26672} GHH501X+HV               =       G1H506f +      GHO                                    :  0.100E+01*SUN;
+{ 26673} GHH501X+HV               =       G3H2000 +      G2H300A                                :  0.100E+01*SUN;
+{ 26674} GHH501X+HV               =       G1H502c +      GHO                                    :  0.100E+01*SUN;
+{ 26675} GHH501X+HV               =       GHD4004 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 26676} G3H501f +GHO2               =  0.800GGH501w + 0.200GAH5024 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 26677} G3H501f +GNO                =       GHD4004 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 26678} G3H501f +GNO2               =       GPH5021                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 26679} G3H501f +GNO3               =       GHD4004 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 26680} G3H501f +MEPERO             =  0.685GHD4004 + 0.315GAH5024 + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26681} G3H501f +PERO1              =  0.800GHD4004 + 0.200GAH5024 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26682} G3H501f +PERO2              =  0.750GHD4004 + 0.250GAH5024 + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26683} G3H501f +PERO3              =  0.800GHD4004 + 0.200GAH5024 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26684} G3H501f +PERO5              =  0.650GHD4004 + 0.350GAH5024 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26685} G3H501f +PERO6              =  0.650GHD4004 + 0.350GAH5024 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26686} G3H501f +PERO9              =       GHD4004 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 26687} GHD500r +GHO                =       GDD500B +      GHO                                    : ARR( 0.100E-10,     0., 0.0);
+{ 26688} GHD500r +GHO                =       G3H4007 +      GCO                                    : ARR( 0.129E-10,     0., 0.0);
+{ 26689} GHD500r +GHO                =       G2D500g                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 26690} GHD500r +GNO3               =       G3H4007 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 26691} GHD500r+HV               =       G1D500q +      GHO                                    :  0.100E+01*SUN;
+{ 26692} GHD500r+HV               =       G3H2000 +      G2D3002                                :  0.100E+01*SUN;
+{ 26693} GHD500r+HV               =       G3H4007 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 26694} GHD500r+HV               =       GHD4004 +      GCO                                    :  0.100E+01*SUN;
+{ 26695} GHD500r+HV               =       GHK3000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 26696} G2D500g +GNO                =       G1D500q +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 26697} G2D500g +GNO                =       GND500g                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 26698} G2D500g +GHO2               =       GHD500r                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 26699} G2D500g +GNO3               =       G1D500q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 26700} G2D500g +MEPERO             =  0.480G1D500q + 0.260GDK500M + 0.260GDD500B                 : ARR( 0.164E-12,  -795., 0.0);
+{ 26701} G2D500g +PERO1              =  0.600G1D500q + 0.200GDK500M + 0.200GDD500B                 : ARR( 0.126E-12,  -850., 0.0);
+{ 26702} G2D500g +PERO2              =  0.560G1D500q + 0.220GDK500M + 0.220GDD500B                 : ARR( 0.471E-13, -1350., 0.0);
+{ 26703} G2D500g +PERO3              =  0.600G1D500q + 0.200GDK500M + 0.200GDD500B                 : ARR( 0.142E-12, -1200., 0.0);
+{ 26704} G2D500g +PERO5              =  0.600G1D500q + 0.200GDK500M + 0.200GDD500B                 : ARR( 0.533E-11,   500., 0.0);
+{ 26705} G2D500g +PERO6              =  0.460G1D500q + 0.270GDK500M + 0.270GDD500B                 : ARR( 0.488E-13, -1250., 0.0);
+{ 26706} G2D500g +PERO9              =  0.800G1D500q + 0.200GDD500B                                : ARR( 0.100E-10,     0., 0.0);
+{ 26707} GGH500F +GHO                =       GGD5009 +      GHO                                    : ARR( 0.102E-10,     0., 0.0);
+{ 26708} GGH500F +GHO                =       G2G5019                                               : ARR( 0.285E-11,     0., 0.0);
+{ 26709} GGH500F +GHO                =       G2G501A                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 26710} GGH500F +GHO                =       G3H500D                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 26711} GGH500F+HV               =       G1G501A +      GHO                                    :  0.100E+01*SUN;
+{ 26712} GGH500F+HV               =       G3H2000 +      G2G3000                                :  0.100E+01*SUN;
+{ 26713} GGH500F+HV               =       G2H400H +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 26714} G2G5019 +GNO                =       G1G501P +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 26715} G2G5019 +GNO                =       GGH501v                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 26716} G2G5019 +GHO2               =       GGH501w                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 26717} G2G5019 +GNO3               =       G1G501P +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 26718} G2G5019 +MEPERO             =  0.340G1G501P + 0.330GGH501Y + 0.330GGH501x                 : ARR( 0.565E-13,  -845., 0.0);
+{ 26719} G2G5019 +PERO1              =  0.460G1G501P + 0.270GGH501Y + 0.270GGH501x                 : ARR( 0.434E-13,  -900., 0.0);
+{ 26720} G2G5019 +PERO2              =  0.400G1G501P + 0.300GGH501Y + 0.300GGH501x                 : ARR( 0.162E-13, -1400., 0.0);
+{ 26721} G2G5019 +PERO3              =  0.460G1G501P + 0.270GGH501Y + 0.270GGH501x                 : ARR( 0.488E-13, -1250., 0.0);
+{ 26722} G2G5019 +PERO5              =  0.460G1G501P + 0.270GGH501Y + 0.270GGH501x                 : ARR( 0.183E-11,   450., 0.0);
+{ 26723} G2G5019 +PERO6              =  0.300G1G501P + 0.350GGH501Y + 0.350GGH501x                 : ARR( 0.168E-13, -1300., 0.0);
+{ 26724} G2G5019 +PERO9              =  0.650G1G501P + 0.350GGH501x                                : ARR( 0.100E-10,     0., 0.0);
+{ 26725} G2G501A +GNO                =       G1G501A +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 26726} G2G501A +GNO                =       GGN500I                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 26727} G2G501A +GHO2               =       GGH500F                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 26728} G2G501A +GNO3               =       G1G501A +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 26729} G2G501A +MEPERO             =  0.480G1G501A + 0.260GGK5007 + 0.260GGD5009                 : ARR( 0.164E-12,  -795., 0.0);
+{ 26730} G2G501A +PERO1              =  0.600G1G501A + 0.200GGK5007 + 0.200GGD5009                 : ARR( 0.126E-12,  -850., 0.0);
+{ 26731} G2G501A +PERO2              =  0.560G1G501A + 0.220GGK5007 + 0.220GGD5009                 : ARR( 0.471E-13, -1350., 0.0);
+{ 26732} G2G501A +PERO3              =  0.600G1G501A + 0.200GGK5007 + 0.200GGD5009                 : ARR( 0.142E-12, -1200., 0.0);
+{ 26733} G2G501A +PERO5              =  0.600G1G501A + 0.200GGK5007 + 0.200GGD5009                 : ARR( 0.533E-11,   500., 0.0);
+{ 26734} G2G501A +PERO6              =  0.460G1G501A + 0.270GGK5007 + 0.270GGD5009                 : ARR( 0.488E-13, -1250., 0.0);
+{ 26735} G2G501A +PERO9              =  0.800G1G501A + 0.200GGD5009                                : ARR( 0.100E-10,     0., 0.0);
+{ 26736} G1G501P                     =       GHD4004 +      GCO     +      GHO2                    : ARR( 0.200E+15,  4566., 0.0);
+{ 26737} GAH500F +GHO                =       G2A501K                                               : ARR( 0.209E-11,     0., 0.0);
+{ 26738} GAH500F +GHO                =       G2A501L                                               : ARR( 0.889E-12,     0., 0.0);
+{ 26739} GAH500F +GHO                =       GAD500B +      GHO                                    : ARR( 0.101E-10,     0., 0.0);
+{ 26740} GAH500F +GHO                =       G2A501M                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 26741} GAH500F+HV               =       G3A4000 +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 26742} GAH500F+HV               =       G1A5017 +      GHO                                    :  0.100E+01*SUN;
+{ 26743} G2A501K +GNO                =       G1A501Y +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 26744} G2A501K +GNO                =       GAH5023                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 26745} G2A501K +GHO2               =       GAH5024                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 26746} G2A501K +GNO3               =       G1A501Y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 26747} G2A501K +MEPERO             =  0.340G1A501Y + 0.330GAH501g + 0.330GAH5025                 : ARR( 0.565E-13,  -845., 0.0);
+{ 26748} G2A501K +PERO1              =  0.460G1A501Y + 0.270GAH501g + 0.270GAH5025                 : ARR( 0.434E-13,  -900., 0.0);
+{ 26749} G2A501K +PERO2              =  0.400G1A501Y + 0.300GAH501g + 0.300GAH5025                 : ARR( 0.162E-13, -1400., 0.0);
+{ 26750} G2A501K +PERO3              =  0.460G1A501Y + 0.270GAH501g + 0.270GAH5025                 : ARR( 0.488E-13, -1250., 0.0);
+{ 26751} G2A501K +PERO5              =  0.460G1A501Y + 0.270GAH501g + 0.270GAH5025                 : ARR( 0.183E-11,   450., 0.0);
+{ 26752} G2A501K +PERO6              =  0.300G1A501Y + 0.350GAH501g + 0.350GAH5025                 : ARR( 0.168E-13, -1300., 0.0);
+{ 26753} G2A501K +PERO9              =  0.650G1A501Y + 0.350GAH5025                                : ARR( 0.100E-10,     0., 0.0);
+{ 26754} G2A501L +GNO                =       G1A501Z +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 26755} G2A501L +GNO                =       GAH501y                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 26756} G2A501L +GHO2               =       GAH501z                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 26757} G2A501L +GNO3               =       G1A501Z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 26758} G2A501L +MEPERO             =  0.340G1A501Z + 0.330GAH5021 + 0.330GAH5022                 : ARR( 0.565E-13,  -845., 0.0);
+{ 26759} G2A501L +PERO1              =  0.460G1A501Z + 0.270GAH5021 + 0.270GAH5022                 : ARR( 0.434E-13,  -900., 0.0);
+{ 26760} G2A501L +PERO2              =  0.400G1A501Z + 0.300GAH5021 + 0.300GAH5022                 : ARR( 0.162E-13, -1400., 0.0);
+{ 26761} G2A501L +PERO3              =  0.460G1A501Z + 0.270GAH5021 + 0.270GAH5022                 : ARR( 0.488E-13, -1250., 0.0);
+{ 26762} G2A501L +PERO5              =  0.460G1A501Z + 0.270GAH5021 + 0.270GAH5022                 : ARR( 0.183E-11,   450., 0.0);
+{ 26763} G2A501L +PERO6              =  0.300G1A501Z + 0.350GAH5021 + 0.350GAH5022                 : ARR( 0.168E-13, -1300., 0.0);
+{ 26764} G2A501L +PERO9              =  0.650G1A501Z + 0.350GAH5022                                : ARR( 0.100E-10,     0., 0.0);
+{ 26765} G2A501M +GNO                =       G1A5017 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 26766} G2A501M +GNO                =       GAN500E                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 26767} G2A501M +GHO2               =       GAH500F                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 26768} G2A501M +GNO3               =       G1A5017 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 26769} G2A501M +MEPERO             =  0.480G1A5017 + 0.260GAK5007 + 0.260GAD500B                 : ARR( 0.164E-12,  -795., 0.0);
+{ 26770} G2A501M +PERO1              =  0.600G1A5017 + 0.200GAK5007 + 0.200GAD500B                 : ARR( 0.126E-12,  -850., 0.0);
+{ 26771} G2A501M +PERO2              =  0.560G1A5017 + 0.220GAK5007 + 0.220GAD500B                 : ARR( 0.471E-13, -1350., 0.0);
+{ 26772} G2A501M +PERO3              =  0.600G1A5017 + 0.200GAK5007 + 0.200GAD500B                 : ARR( 0.142E-12, -1200., 0.0);
+{ 26773} G2A501M +PERO5              =  0.600G1A5017 + 0.200GAK5007 + 0.200GAD500B                 : ARR( 0.533E-11,   500., 0.0);
+{ 26774} G2A501M +PERO6              =  0.460G1A5017 + 0.270GAK5007 + 0.270GAD500B                 : ARR( 0.488E-13, -1250., 0.0);
+{ 26775} G2A501M +PERO9              =  0.800G1A5017 + 0.200GAD500B                                : ARR( 0.100E-10,     0., 0.0);
+{ 26776} G1A501Y                     =       GCO     +      GHD4004 +      GHO                     : ARR( 0.200E+15,  4535., 0.0);
+{ 26777} G1A501Z                     =       GAD3000 +      G3H2000                                : ARR( 0.200E+15,  2372., 0.0);
+{ 26778} GPH500F                     =       G3H500D +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 26779} GPH500F +GHO                =       GPD5009 +      GHO                                    : ARR( 0.981E-11,     0., 0.0);
+{ 26780} GPH500F +GHO                =       G2P501M                                               : ARR( 0.862E-12,     0., 0.0);
+{ 26781} GPH500F +GHO                =       G2P501N                                               : ARR( 0.273E-11,     0., 0.0);
+{ 26782} GPH500F +GHO                =       G2P501O                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 26783} GPH500F+HV               =       G1P5012 +      GHO                                    :  0.100E+01*SUN;
+{ 26784} GPH500F+HV               =       G3H2000 +      G2P3000                                :  0.100E+01*SUN;
+{ 26785} GPH500F+HV               =       G3H500D +      GNO2                                   :  0.100E+01*SUN;
+{ 26786} G2P501M +GNO                =       G1P501a +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 26787} G2P501M +GNO                =       GPH501v                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 26788} G2P501M +GHO2               =       GPH501w                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 26789} G2P501M +GNO3               =       G1P501a +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 26790} G2P501M +MEPERO             =  0.340G1P501a + 0.330GPH501x + 0.330GPH501y                 : ARR( 0.565E-13,  -845., 0.0);
+{ 26791} G2P501M +PERO1              =  0.460G1P501a + 0.270GPH501x + 0.270GPH501y                 : ARR( 0.434E-13,  -900., 0.0);
+{ 26792} G2P501M +PERO2              =  0.400G1P501a + 0.300GPH501x + 0.300GPH501y                 : ARR( 0.162E-13, -1400., 0.0);
+{ 26793} G2P501M +PERO3              =  0.460G1P501a + 0.270GPH501x + 0.270GPH501y                 : ARR( 0.488E-13, -1250., 0.0);
+{ 26794} G2P501M +PERO5              =  0.460G1P501a + 0.270GPH501x + 0.270GPH501y                 : ARR( 0.183E-11,   450., 0.0);
+{ 26795} G2P501M +PERO6              =  0.300G1P501a + 0.350GPH501x + 0.350GPH501y                 : ARR( 0.168E-13, -1300., 0.0);
+{ 26796} G2P501M +PERO9              =  0.650G1P501a + 0.350GPH501y                                : ARR( 0.100E-10,     0., 0.0);
+{ 26797} G2P501N +GNO                =       G1P501b +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 26798} G2P501N +GNO                =       GPH501z                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 26799} G2P501N +GHO2               =       GPH5021                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 26800} G2P501N +GNO3               =       G1P501b +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 26801} G2P501N +MEPERO             =  0.340G1P501b + 0.330GPH501f + 0.330GPH5022                 : ARR( 0.565E-13,  -845., 0.0);
+{ 26802} G2P501N +PERO1              =  0.460G1P501b + 0.270GPH501f + 0.270GPH5022                 : ARR( 0.434E-13,  -900., 0.0);
+{ 26803} G2P501N +PERO2              =  0.400G1P501b + 0.300GPH501f + 0.300GPH5022                 : ARR( 0.162E-13, -1400., 0.0);
+{ 26804} G2P501N +PERO3              =  0.460G1P501b + 0.270GPH501f + 0.270GPH5022                 : ARR( 0.488E-13, -1250., 0.0);
+{ 26805} G2P501N +PERO5              =  0.460G1P501b + 0.270GPH501f + 0.270GPH5022                 : ARR( 0.183E-11,   450., 0.0);
+{ 26806} G2P501N +PERO6              =  0.300G1P501b + 0.350GPH501f + 0.350GPH5022                 : ARR( 0.168E-13, -1300., 0.0);
+{ 26807} G2P501N +PERO9              =  0.650G1P501b + 0.350GPH5022                                : ARR( 0.100E-10,     0., 0.0);
+{ 26808} G2P501O +GNO                =       G1P5012 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 26809} G2P501O +GNO                =       GPN500B                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 26810} G2P501O +GHO2               =       GPH500F                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 26811} G2P501O +GNO3               =       G1P5012 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 26812} G2P501O +MEPERO             =  0.480G1P5012 + 0.260GPK5007 + 0.260GPD5009                 : ARR( 0.164E-12,  -795., 0.0);
+{ 26813} G2P501O +PERO1              =  0.600G1P5012 + 0.200GPK5007 + 0.200GPD5009                 : ARR( 0.126E-12,  -850., 0.0);
+{ 26814} G2P501O +PERO2              =  0.560G1P5012 + 0.220GPK5007 + 0.220GPD5009                 : ARR( 0.471E-13, -1350., 0.0);
+{ 26815} G2P501O +PERO3              =  0.600G1P5012 + 0.200GPK5007 + 0.200GPD5009                 : ARR( 0.142E-12, -1200., 0.0);
+{ 26816} G2P501O +PERO5              =  0.600G1P5012 + 0.200GPK5007 + 0.200GPD5009                 : ARR( 0.533E-11,   500., 0.0);
+{ 26817} G2P501O +PERO6              =  0.460G1P5012 + 0.270GPK5007 + 0.270GPD5009                 : ARR( 0.488E-13, -1250., 0.0);
+{ 26818} G2P501O +PERO9              =  0.800G1P5012 + 0.200GPD5009                                : ARR( 0.100E-10,     0., 0.0);
+{ 26819} G1P501a                     =       G3H2000 +      GPD3000                                : ARR( 0.200E+15,  2372., 0.0);
+{ 26820} G1P501b                     =       GHD4004 +      GCO     +      GNO2                    : ARR( 0.200E+15,  4566., 0.0);
+{ 26821} GHH400D +GHO                =       GHD4004 +      GHO                                    : ARR( 0.516E-10,     0., 0.0);
+{ 26822} GHH400D +GHO                =       GHD400D +      GHO                                    : ARR( 0.993E-11,     0., 0.0);
+{ 26823} GHH400D +GHO                =       G2H400H                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 26824} GHH400D +GHO                =       G2H400b                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 26825} GHH400D+HV               =       G1H400K +      GHO                                    :  0.100E+01*SUN;
+{ 26826} GHH400D+HV               =       G3H3000 +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 26827} GHH400D+HV               =       G1H400f +      GHO                                    :  0.100E+01*SUN;
+{ 26828} GGH500G +GHO                =       GGN500r +      GHO                                    : ARR( 0.164E-10,     0., 0.0);
+{ 26829} GGH500G +GHO                =       GGH501r +      GHO2                                   : ARR( 0.210E-11,     0., 0.0);
+{ 26830} GGH500G +GHO                =       G2G501B                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 26831} GGH500G +GHO                =       G3H500E                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 26832} GGH500G+HV               =       G1G5011 +      GHO                                    :  0.100E+01*SUN;
+{ 26833} GGH500G+HV               =       G1G501Q +      GNO2                                   :  0.100E+01*SUN;
+{ 26834} GGH500G+HV               =       G2H400I +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 26835} G2G501B +GNO                =       G1G5011 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 26836} G2G501B +GNO                =       GGN500F                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 26837} G2G501B +GHO2               =       GGH500G                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 26838} G2G501B +GNO3               =       G1G5011 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 26839} G2G501B +MEPERO             =  0.480G1G5011 + 0.260GGN500N + 0.260GGN500r                 : ARR( 0.164E-12,  -795., 0.0);
+{ 26840} G2G501B +PERO1              =  0.600G1G5011 + 0.200GGN500N + 0.200GGN500r                 : ARR( 0.126E-12,  -850., 0.0);
+{ 26841} G2G501B +PERO2              =  0.560G1G5011 + 0.220GGN500N + 0.220GGN500r                 : ARR( 0.471E-13, -1350., 0.0);
+{ 26842} G2G501B +PERO3              =  0.600G1G5011 + 0.200GGN500N + 0.200GGN500r                 : ARR( 0.142E-12, -1200., 0.0);
+{ 26843} G2G501B +PERO5              =  0.600G1G5011 + 0.200GGN500N + 0.200GGN500r                 : ARR( 0.533E-11,   500., 0.0);
+{ 26844} G2G501B +PERO6              =  0.460G1G5011 + 0.270GGN500N + 0.270GGN500r                 : ARR( 0.488E-13, -1250., 0.0);
+{ 26845} G2G501B +PERO9              =  0.800G1G5011 + 0.200GGN500r                                : ARR( 0.100E-10,     0., 0.0);
+{ 26846} G1G501Q                     =       GHD2000 +      GGD3000 +      GHO2                    : ARR( 0.200E+15,  2937., 0.0);
+{ 26847} GAH500G +GHO                =       GAH501y +      GHO2                                   : ARR( 0.215E-11,     0., 0.0);
+{ 26848} GAH500G +GHO                =       GAN500o +      GHO                                    : ARR( 0.168E-10,     0., 0.0);
+{ 26849} GAH500G +GHO                =       G2A500c                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 26850} GAH500G+HV               =       G1A501a +      GNO2                                   :  0.100E+01*SUN;
+{ 26851} GAH500G+HV               =       G1A500d +      GHO                                    :  0.100E+01*SUN;
+{ 26852} G1A501a                     =       GAD3000 +      GHD2000 +      GHO2                    : ARR( 0.200E+15,  2937., 0.0);
+{ 26853} GPH500G                     =       G3H500E +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 26854} GPH500G +GHO                =       GPN500p +      GHO                                    : ARR( 0.164E-10,     0., 0.0);
+{ 26855} GPH500G +GHO                =       GPH501v +      GHO2                                   : ARR( 0.210E-11,     0., 0.0);
+{ 26856} GPH500G +GHO                =       G2P500d                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 26857} GPH500G+HV               =       G1P500e +      GHO                                    :  0.100E+01*SUN;
+{ 26858} GPH500G+HV               =       G1P501c +      GNO2                                   :  0.100E+01*SUN;
+{ 26859} GPH500G+HV               =       G3H500E +      GNO2                                   :  0.100E+01*SUN;
+{ 26860} G1P501c                     =       GHD2000 +      GPD3000 +      GHO2                    : ARR( 0.200E+15,  2937., 0.0);
+{ 26861} GHN400X +GHO                =       GHN4017 +      GHO2                                   : ARR( 0.208E-11,     0., 0.0);
+{ 26862} GHN400X +GHO                =       GNN400T +      GHO                                    : ARR( 0.162E-10,     0., 0.0);
+{ 26863} GHN400X +GHO                =       G2N400d                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 26864} GHN400X+HV               =       G1H400L +      GNO2                                   :  0.100E+01*SUN;
+{ 26865} GHN400X+HV               =       G1H4015 +      GNO2                                   :  0.100E+01*SUN;
+{ 26866} GHN400X+HV               =       G1N400k +      GHO                                    :  0.100E+01*SUN;
+{ 26867} G1H4015                     =       GND2000 +      GHD2000 +      GHO2                    : ARR( 0.200E+15,  3632., 0.0);
+{ 26868} GHH400E +GHO                =       GHN400x +      GHO                                    : ARR( 0.162E-10,     0., 0.0);
+{ 26869} GHH400E +GHO                =       GHH400m +      GHO2                                   : ARR( 0.208E-11,     0., 0.0);
+{ 26870} GHH400E +GHO                =       GHN400Y +      GHO                                    : ARR( 0.325E-11,     0., 0.0);
+{ 26871} GHH400E +GHO                =       G2H400t                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 26872} GHH400E +GHO                =       G2H400I                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 26873} GHH400E+HV               =       G1H400p +      GHO                                    :  0.100E+01*SUN;
+{ 26874} GHH400E+HV               =       G1H4016 +      GNO2                                   :  0.100E+01*SUN;
+{ 26875} GHH400E+HV               =       G1H400L +      GHO                                    :  0.100E+01*SUN;
+{ 26876} G2H400t +GNO                =       G1H400p +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 26877} G2H400t +GNO                =       GHN400N                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 26878} G2H400t +GHO2               =       GHH400E                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 26879} G2H400t +GNO3               =       G1H400p +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 26880} G2H400t +MEPERO             =  0.480G1H400p + 0.260GHN400a + 0.260GHN400x                 : ARR( 0.164E-12,  -795., 0.0);
+{ 26881} G2H400t +PERO1              =  0.600G1H400p + 0.200GHN400a + 0.200GHN400x                 : ARR( 0.126E-12,  -850., 0.0);
+{ 26882} G2H400t +PERO2              =  0.560G1H400p + 0.220GHN400a + 0.220GHN400x                 : ARR( 0.471E-13, -1350., 0.0);
+{ 26883} G2H400t +PERO3              =  0.600G1H400p + 0.200GHN400a + 0.200GHN400x                 : ARR( 0.142E-12, -1200., 0.0);
+{ 26884} G2H400t +PERO5              =  0.600G1H400p + 0.200GHN400a + 0.200GHN400x                 : ARR( 0.533E-11,   500., 0.0);
+{ 26885} G2H400t +PERO6              =  0.460G1H400p + 0.270GHN400a + 0.270GHN400x                 : ARR( 0.488E-13, -1250., 0.0);
+{ 26886} G2H400t +PERO9              =  0.800G1H400p + 0.200GHN400x                                : ARR( 0.100E-10,     0., 0.0);
+{ 26887} G1H4016                     =  2.000GHD2000 +      GHO2                                   : ARR( 0.200E+15,  3635., 0.0);
+{ 26888} GHN400Y +GHO                =       GND400J +      GHO                                    : ARR( 0.162E-10,     0., 0.0);
+{ 26889} GHN400Y +GHO                =       GHN401A +      GHO2                                   : ARR( 0.208E-11,     0., 0.0);
+{ 26890} GHN400Y +GHO                =       G3H400U                                               : ARR( 0.419E-11,     0., 0.0);
+{ 26891} GHN400Y +GHO                =       G2N400w                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 26892} GHN400Y +GNO3               =       G3H400U +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 26893} GHN400Y+HV               =       G1N400z +      GHO                                    :  0.100E+01*SUN;
+{ 26894} GHN400Y+HV               =       G1H4017 +      GNO2                                   :  0.100E+01*SUN;
+{ 26895} GHN400Y+HV               =       GHD3005 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 26896} GHN400Y+HV               =       GHD2000 +      GND2000                                :  0.100E+01*SUN;
+{ 26897} G3H400U +GHO2               =  0.800GGH400c + 0.200GAH400H + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 26898} G3H400U +GNO                =       GHD3005 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 26899} G3H400U +GNO2               =       GPH400I                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 26900} G3H400U +GNO3               =       GHD3005 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 26901} G3H400U +MEPERO             =  0.685GHD3005 + 0.315GAH400H + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26902} G3H400U +PERO1              =  0.800GHD3005 + 0.200GAH400H + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26903} G3H400U +PERO2              =  0.750GHD3005 + 0.250GAH400H + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26904} G3H400U +PERO3              =  0.800GHD3005 + 0.200GAH400H + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26905} G3H400U +PERO5              =  0.650GHD3005 + 0.350GAH400H + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26906} G3H400U +PERO6              =  0.650GHD3005 + 0.350GAH400H + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26907} G3H400U +PERO9              =       GHD3005 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 26908} G2N400w +GNO                =       G1N400z +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 26909} G2N400w +GNO                =       GNN400F                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 26910} G2N400w +GHO2               =       GHN400Y                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 26911} G2N400w +GNO3               =       G1N400z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 26912} G2N400w +MEPERO             =  0.480G1N400z + 0.260GND400A + 0.260GND400J                 : ARR( 0.164E-12,  -795., 0.0);
+{ 26913} G2N400w +PERO1              =  0.600G1N400z + 0.200GND400A + 0.200GND400J                 : ARR( 0.126E-12,  -850., 0.0);
+{ 26914} G2N400w +PERO2              =  0.560G1N400z + 0.220GND400A + 0.220GND400J                 : ARR( 0.471E-13, -1350., 0.0);
+{ 26915} G2N400w +PERO3              =  0.600G1N400z + 0.200GND400A + 0.200GND400J                 : ARR( 0.142E-12, -1200., 0.0);
+{ 26916} G2N400w +PERO5              =  0.600G1N400z + 0.200GND400A + 0.200GND400J                 : ARR( 0.533E-11,   500., 0.0);
+{ 26917} G2N400w +PERO6              =  0.460G1N400z + 0.270GND400A + 0.270GND400J                 : ARR( 0.488E-13, -1250., 0.0);
+{ 26918} G2N400w +PERO9              =  0.800G1N400z + 0.200GND400J                                : ARR( 0.100E-10,     0., 0.0);
+{ 26919} G1H4017                     =       GHD2000 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  5047., 0.0);
+{ 26920} G1H4017                     =       GHD3005 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 26921} GGH500H +GHO                =       GGH500t +      GHO                                    : ARR( 0.189E-10,     0., 0.0);
+{ 26922} GGH500H +GHO                =       GGH501s +      GHO2                                   : ARR( 0.121E-10,     0., 0.0);
+{ 26923} GGH500H +GHO                =       GGH500J +      GHO                                    : ARR( 0.484E-10,     0., 0.0);
+{ 26924} GGH500H+HV               =       G1G501F +      GHO                                    :  0.100E+01*SUN;
+{ 26925} GGH500H+HV               =       G1G501Q +      GHO                                    :  0.100E+01*SUN;
+{ 26926} GGH500H+HV               =       G2H400J +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 26927} GAH500H +GHO                =       GAH500J +      GHO                                    : ARR( 0.464E-10,     0., 0.0);
+{ 26928} GAH500H +GHO                =       GAH501z +      GHO2                                   : ARR( 0.116E-10,     0., 0.0);
+{ 26929} GAH500H +GHO                =       GAH500z +      GHO                                    : ARR( 0.181E-10,     0., 0.0);
+{ 26930} GAH500H+HV               =       G1A501a +      GHO                                    :  0.100E+01*SUN;
+{ 26931} GAH500H+HV               =       G1A501N +      GHO                                    :  0.100E+01*SUN;
+{ 26932} GPH500H                     =       G3H500F +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 26933} GPH500H +GHO                =       GPH5011 +      GHO                                    : ARR( 0.180E-10,     0., 0.0);
+{ 26934} GPH500H +GHO                =       GPH501w +      GHO2                                   : ARR( 0.116E-10,     0., 0.0);
+{ 26935} GPH500H +GHO                =       GPH500J +      GHO                                    : ARR( 0.462E-10,     0., 0.0);
+{ 26936} GPH500H+HV               =       G1P501P +      GHO                                    :  0.100E+01*SUN;
+{ 26937} GPH500H+HV               =       G1P501c +      GHO                                    :  0.100E+01*SUN;
+{ 26938} GPH500H+HV               =       G3H500F +      GNO2                                   :  0.100E+01*SUN;
+{ 26939} GHH400F +GHO                =       GHN400Z +      GHO                                    : ARR( 0.828E-11,     0., 0.0);
+{ 26940} GHH400F +GHO                =       GHH400g +      GHO2                                   : ARR( 0.103E-10,     0., 0.0);
+{ 26941} GHH400F +GHO                =       GHN400z +      GHO                                    : ARR( 0.162E-10,     0., 0.0);
+{ 26942} GHH400F +GHO                =       G2H400u                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 26943} GHH400F +GHO                =       G2H400l                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 26944} GHH400F+HV               =       G1H400M +      GNO2                                   :  0.100E+01*SUN;
+{ 26945} GHH400F+HV               =       G1H4015 +      GHO                                    :  0.100E+01*SUN;
+{ 26946} GHH400F+HV               =       G1H400t +      GHO                                    :  0.100E+01*SUN;
+{ 26947} G2H400u +GNO                =       G1H4015 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 26948} G2H400u +GNO                =       GHN400X                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 26949} G2H400u +GHO2               =       GHH400F                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 26950} G2H400u +GNO3               =       G1H4015 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 26951} G2H400u +MEPERO             =  0.340G1H4015 + 0.330GHN400U + 0.330GHN400Z                 : ARR( 0.565E-13,  -845., 0.0);
+{ 26952} G2H400u +PERO1              =  0.460G1H4015 + 0.270GHN400U + 0.270GHN400Z                 : ARR( 0.434E-13,  -900., 0.0);
+{ 26953} G2H400u +PERO2              =  0.400G1H4015 + 0.300GHN400U + 0.300GHN400Z                 : ARR( 0.162E-13, -1400., 0.0);
+{ 26954} G2H400u +PERO3              =  0.460G1H4015 + 0.270GHN400U + 0.270GHN400Z                 : ARR( 0.488E-13, -1250., 0.0);
+{ 26955} G2H400u +PERO5              =  0.460G1H4015 + 0.270GHN400U + 0.270GHN400Z                 : ARR( 0.183E-11,   450., 0.0);
+{ 26956} G2H400u +PERO6              =  0.300G1H4015 + 0.350GHN400U + 0.350GHN400Z                 : ARR( 0.168E-13, -1300., 0.0);
+{ 26957} G2H400u +PERO9              =  0.650G1H4015 + 0.350GHN400Z                                : ARR( 0.100E-10,     0., 0.0);
+{ 26958} GHH400G +GHO                =       GHH400d +      GHO                                    : ARR( 0.182E-10,     0., 0.0);
+{ 26959} GHH400G +GHO                =       GHH400n +      GHO2                                   : ARR( 0.116E-10,     0., 0.0);
+{ 26960} GHH400G +GHO                =       GHH400J +      GHO                                    : ARR( 0.466E-10,     0., 0.0);
+{ 26961} GHH400G +GHO                =       GHH400H +      GHO                                    : ARR( 0.182E-10,     0., 0.0);
+{ 26962} GHH400G+HV               =       G1H400y +      GHO                                    :  0.100E+01*SUN;
+{ 26963} GHH400G+HV               =       G1H4016 +      GHO                                    :  0.100E+01*SUN;
+{ 26964} GHH400G+HV               =       G1H400M +      GHO                                    :  0.100E+01*SUN;
+{ 26965} GHH400H +GHO                =       GHD400L +      GHO                                    : ARR( 0.173E-10,     0., 0.0);
+{ 26966} GHH400H +GHO                =       GHH400b +      GHO2                                   : ARR( 0.352E-10,     0., 0.0);
+{ 26967} GHH400H +GHO                =       GHD400F +      GHO                                    : ARR( 0.271E-10,     0., 0.0);
+{ 26968} GHH400H +GHO                =       G3H400W                                               : ARR( 0.224E-10,     0., 0.0);
+{ 26969} GHH400H +GNO3               =       G3H400W +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 26970} GHH400H+HV               =       G1H400z +      GHO                                    :  0.100E+01*SUN;
+{ 26971} GHH400H+HV               =       G1H4017 +      GHO                                    :  0.100E+01*SUN;
+{ 26972} GHH400H+HV               =       GHD3005 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 26973} G3H400W +GHO2               =  0.800GGH400d + 0.200GAH400e + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 26974} G3H400W +GNO                =       GHD3005 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 26975} G3H400W +GNO2               =       GPH400f                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 26976} G3H400W +GNO3               =       GHD3005 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 26977} G3H400W +MEPERO             =  0.685GHD3005 + 0.315GAH400e + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26978} G3H400W +PERO1              =  0.800GHD3005 + 0.200GAH400e + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26979} G3H400W +PERO2              =  0.750GHD3005 + 0.250GAH400e + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26980} G3H400W +PERO3              =  0.800GHD3005 + 0.200GAH400e + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26981} G3H400W +PERO5              =  0.650GHD3005 + 0.350GAH400e + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26982} G3H400W +PERO6              =  0.650GHD3005 + 0.350GAH400e + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 26983} G3H400W +PERO9              =       GHD3005 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 26984} GGH500I +GHO                =       GGD5007 +      GHO                                    : ARR( 0.165E-10,     0., 0.0);
+{ 26985} GGH500I +GHO                =       GGH501t +      GHO2                                   : ARR( 0.106E-10,     0., 0.0);
+{ 26986} GGH500I +GHO                =       GGH500J +      GHO2                                   : ARR( 0.106E-10,     0., 0.0);
+{ 26987} GGH500I +GHO                =       G2G501C                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 26988} GGH500I +GHO                =       G3H500G                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 26989} GGH500I+HV               =       G1G501H +      GHO                                    :  0.100E+01*SUN;
+{ 26990} GGH500I+HV               =       G2H400K +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 26991} G2G501C +GNO                =       G1G501H +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 26992} G2G501C +GNO                =       GGN500K                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 26993} G2G501C +GHO2               =       GGH500I                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 26994} G2G501C +GNO3               =       G1G501H +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 26995} G2G501C +MEPERO             =  0.480G1G501H + 0.260GGO5008 + 0.260GGD5007                 : ARR( 0.164E-12,  -795., 0.0);
+{ 26996} G2G501C +PERO1              =  0.600G1G501H + 0.200GGO5008 + 0.200GGD5007                 : ARR( 0.126E-12,  -850., 0.0);
+{ 26997} G2G501C +PERO2              =  0.560G1G501H + 0.220GGO5008 + 0.220GGD5007                 : ARR( 0.471E-13, -1350., 0.0);
+{ 26998} G2G501C +PERO3              =  0.600G1G501H + 0.200GGO5008 + 0.200GGD5007                 : ARR( 0.142E-12, -1200., 0.0);
+{ 26999} G2G501C +PERO5              =  0.600G1G501H + 0.200GGO5008 + 0.200GGD5007                 : ARR( 0.533E-11,   500., 0.0);
+{ 27000} G2G501C +PERO6              =  0.460G1G501H + 0.270GGO5008 + 0.270GGD5007                 : ARR( 0.488E-13, -1250., 0.0);
+{ 27001} G2G501C +PERO9              =  0.800G1G501H + 0.200GGD5007                                : ARR( 0.100E-10,     0., 0.0);
+{ 27002} GAH500I +GHO                =       GAH500J +      GHO2                                   : ARR( 0.107E-10,     0., 0.0);
+{ 27003} GAH500I +GHO                =       GAH5021 +      GHO2                                   : ARR( 0.107E-10,     0., 0.0);
+{ 27004} GAH500I +GHO                =       GAD5009 +      GHO                                    : ARR( 0.167E-10,     0., 0.0);
+{ 27005} GAH500I +GHO                =       G2A501N                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 27006} GAH500I+HV               =       G1A501O +      GHO                                    :  0.100E+01*SUN;
+{ 27007} G2A501N +GNO                =       G1A501O +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 27008} G2A501N +GNO                =       GAN500K                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 27009} G2A501N +GHO2               =       GAH500I                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 27010} G2A501N +GNO3               =       G1A501O +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 27011} G2A501N +MEPERO             =  0.480G1A501O + 0.260GAO5008 + 0.260GAD5009                 : ARR( 0.164E-12,  -795., 0.0);
+{ 27012} G2A501N +PERO1              =  0.600G1A501O + 0.200GAO5008 + 0.200GAD5009                 : ARR( 0.126E-12,  -850., 0.0);
+{ 27013} G2A501N +PERO2              =  0.560G1A501O + 0.220GAO5008 + 0.220GAD5009                 : ARR( 0.471E-13, -1350., 0.0);
+{ 27014} G2A501N +PERO3              =  0.600G1A501O + 0.200GAO5008 + 0.200GAD5009                 : ARR( 0.142E-12, -1200., 0.0);
+{ 27015} G2A501N +PERO5              =  0.600G1A501O + 0.200GAO5008 + 0.200GAD5009                 : ARR( 0.533E-11,   500., 0.0);
+{ 27016} G2A501N +PERO6              =  0.460G1A501O + 0.270GAO5008 + 0.270GAD5009                 : ARR( 0.488E-13, -1250., 0.0);
+{ 27017} G2A501N +PERO9              =  0.800G1A501O + 0.200GAD5009                                : ARR( 0.100E-10,     0., 0.0);
+{ 27018} GPH500I                     =       G3H500G +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 27019} GPH500I +GHO                =       GPD5007 +      GHO                                    : ARR( 0.165E-10,     0., 0.0);
+{ 27020} GPH500I +GHO                =       GPH501x +      GHO2                                   : ARR( 0.106E-10,     0., 0.0);
+{ 27021} GPH500I +GHO                =       GPH500J +      GHO2                                   : ARR( 0.106E-10,     0., 0.0);
+{ 27022} GPH500I +GHO                =       G2P501P                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 27023} GPH500I+HV               =       G1P501R +      GHO                                    :  0.100E+01*SUN;
+{ 27024} GPH500I+HV               =       G3H500G +      GNO2                                   :  0.100E+01*SUN;
+{ 27025} G2P501P +GNO                =       G1P501R +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 27026} G2P501P +GNO                =       GPN500K                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 27027} G2P501P +GHO2               =       GPH500I                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 27028} G2P501P +GNO3               =       G1P501R +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 27029} G2P501P +MEPERO             =  0.480G1P501R + 0.260GPO5008 + 0.260GPD5007                 : ARR( 0.164E-12,  -795., 0.0);
+{ 27030} G2P501P +PERO1              =  0.600G1P501R + 0.200GPO5008 + 0.200GPD5007                 : ARR( 0.126E-12,  -850., 0.0);
+{ 27031} G2P501P +PERO2              =  0.560G1P501R + 0.220GPO5008 + 0.220GPD5007                 : ARR( 0.471E-13, -1350., 0.0);
+{ 27032} G2P501P +PERO3              =  0.600G1P501R + 0.200GPO5008 + 0.200GPD5007                 : ARR( 0.142E-12, -1200., 0.0);
+{ 27033} G2P501P +PERO5              =  0.600G1P501R + 0.200GPO5008 + 0.200GPD5007                 : ARR( 0.533E-11,   500., 0.0);
+{ 27034} G2P501P +PERO6              =  0.460G1P501R + 0.270GPO5008 + 0.270GPD5007                 : ARR( 0.488E-13, -1250., 0.0);
+{ 27035} G2P501P +PERO9              =  0.800G1P501R + 0.200GPD5007                                : ARR( 0.100E-10,     0., 0.0);
+{ 27036} GHH400I +GHO                =       GHD400E +      GHO                                    : ARR( 0.323E-10,     0., 0.0);
+{ 27037} GHH400I +GHO                =       GHH400J +      GHO2                                   : ARR( 0.207E-10,     0., 0.0);
+{ 27038} GHH400I +GHO                =       G2H400K                                               : ARR( 0.382E-11,  -190., 0.0);
+{ 27039} GHH400I+HV               =       G1H400N +      GHO                                    :  0.200E+01*SUN;
+{ 27040} GHO400B +GHO                =       GHD400E +      GHO2                                   : ARR( 0.406E-11,     0., 0.0);
+{ 27041} GHO400B +GHO                =       GHK4005 +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 27042} GHO400B +GHO                =       GHK4006 +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 27043} GHO400B +GHO                =       GDO4006 +      GHO                                    : ARR( 0.162E-10,     0., 0.0);
+{ 27044} GHO400B +GHO                =       G2O400B                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 27045} GHO400B+HV               =       G1O400B +      GHO                                    :  0.100E+01*SUN;
+{ 27046} GHD400E +GHO                =       GDD4003 +      GHO                                    : ARR( 0.169E-10,     0., 0.0);
+{ 27047} GHD400E +GHO                =       GHD400J +      GHO2                                   : ARR( 0.343E-10,     0., 0.0);
+{ 27048} GHD400E +GHO                =       GHD400F +      GHO2                                   : ARR( 0.660E-11,     0., 0.0);
+{ 27049} GHD400E +GHO                =       G3H400X                                               : ARR( 0.218E-10,     0., 0.0);
+{ 27050} GHD400E +GNO3               =       G3H400X +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 27051} GHD400E+HV               =       G1D400G +      GHO                                    :  0.100E+01*SUN;
+{ 27052} GHD400E+HV               =       GHD3005 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 27053} G3H400X +GHO2               =  0.800GGH400e + 0.200GAH400f + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 27054} G3H400X +GNO                =       GHD3005 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 27055} G3H400X +GNO2               =       GPH400g                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 27056} G3H400X +GNO3               =       GHD3005 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 27057} G3H400X +MEPERO             =  0.685GHD3005 + 0.315GAH400f + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 27058} G3H400X +PERO1              =  0.800GHD3005 + 0.200GAH400f + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 27059} G3H400X +PERO2              =  0.750GHD3005 + 0.250GAH400f + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 27060} G3H400X +PERO3              =  0.800GHD3005 + 0.200GAH400f + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 27061} G3H400X +PERO5              =  0.650GHD3005 + 0.350GAH400f + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 27062} G3H400X +PERO6              =  0.650GHD3005 + 0.350GAH400f + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 27063} G3H400X +PERO9              =       GHD3005 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 27064} GGH500J +GHO                =       GGD5006 +      GHO                                    : ARR( 0.515E-10,     0., 0.0);
+{ 27065} GGH500J +GHO                =       GGH501u +      GHO2                                   : ARR( 0.635E-11,     0., 0.0);
+{ 27066} GGH500J +GHO                =       G2G500Y                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 27067} GGH500J +GHO                =       G3H500H                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 27068} GGH500J+HV               =       G1G500Z +      GHO                                    :  0.100E+01*SUN;
+{ 27069} GGH500J+HV               =       G3H3003 +      G2G2000                                :  0.100E+01*SUN;
+{ 27070} GGH500J+HV               =       G2H400L +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 27071} GAH500J +GHO                =       GAH5022 +      GHO2                                   : ARR( 0.639E-11,     0., 0.0);
+{ 27072} GAH500J +GHO                =       GAD5006 +      GHO                                    : ARR( 0.519E-10,     0., 0.0);
+{ 27073} GAH500J +GHO                =       G2A500e                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 27074} GAH500J+HV               =       G3A3000 +      GHD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 27075} GAH500J+HV               =       G1A500f +      GHO                                    :  0.100E+01*SUN;
+{ 27076} GPH500J                     =       G3H500H +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 27077} GPH500J +GHO                =       GPD5006 +      GHO                                    : ARR( 0.516E-10,     0., 0.0);
+{ 27078} GPH500J +GHO                =       GPH501y +      GHO2                                   : ARR( 0.635E-11,     0., 0.0);
+{ 27079} GPH500J +GHO                =       G2P500h                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 27080} GPH500J+HV               =       G1P500i +      GHO                                    :  0.100E+01*SUN;
+{ 27081} GPH500J+HV               =       G3H3003 +      G2P2000                                :  0.100E+01*SUN;
+{ 27082} GPH500J+HV               =       G3H500H +      GNO2                                   :  0.100E+01*SUN;
+{ 27083} GGH3004 +GHO                =       GGD3001 +      GHO                                    : ARR( 0.162E-10,     0., 0.0);
+{ 27084} GGH3004 +GHO                =       GGH3006 +      GHO2                                   : ARR( 0.631E-11,     0., 0.0);
+{ 27085} GGH3004 +GHO                =       G2G3004                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 27086} GGH3004 +GHO                =       G3H3003                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 27087} GGH3004+HV               =       G1G3004 +      GHO                                    :  0.100E+01*SUN;
+{ 27088} GGH3004+HV               =       GHD2000 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 27089} GAH3004 +GHO                =       GAH3006 +      GHO2                                   : ARR( 0.478E-11,     0., 0.0);
+{ 27090} GAH3004 +GHO                =       GAD3001 +      GHO                                    : ARR( 0.165E-10,     0., 0.0);
+{ 27091} GAH3004 +GHO                =       G2A3005                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 27092} GAH3004+HV               =       G1A3005 +      GHO                                    :  0.100E+01*SUN;
+{ 27093} GPH3004                     =       G3H3003 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 27094} GPH3004 +GHO                =       GPD3001 +      GHO                                    : ARR( 0.162E-10,     0., 0.0);
+{ 27095} GPH3004 +GHO                =       GPH3006 +      GHO2                                   : ARR( 0.632E-11,     0., 0.0);
+{ 27096} GPH3004 +GHO                =       G2P3005                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 27097} GPH3004+HV               =       G1P3005 +      GHO                                    :  0.100E+01*SUN;
+{ 27098} GPH3004+HV               =       G3H3003 +      GNO2                                   :  0.100E+01*SUN;
+{ 27099} GHN400Z +GHO                =       GHN4019 +      GHO2                                   : ARR( 0.630E-11,     0., 0.0);
+{ 27100} GHN400Z +GHO                =       GND400E +      GHO                                    : ARR( 0.511E-10,     0., 0.0);
+{ 27101} GHN400Z +GHO                =       G2N400g                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 27102} GHN400Z+HV               =       G1H400O +      GNO2                                   :  0.100E+01*SUN;
+{ 27103} GHN400Z+HV               =       G3N2000 +      GHD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 27104} GHN400Z+HV               =       G1N400m +      GHO                                    :  0.100E+01*SUN;
+{ 27105} GHH400J +GHO                =       GHD400J +      GHO                                    : ARR( 0.566E-10,     0., 0.0);
+{ 27106} GHH400J +GHO                =       GHH400o +      GHO2                                   : ARR( 0.697E-11,     0., 0.0);
+{ 27107} GHH400J +GHO                =       GHD400F +      GHO                                    : ARR( 0.109E-10,     0., 0.0);
+{ 27108} GHH400J+HV               =       G1H4011 +      GHO                                    :  0.100E+01*SUN;
+{ 27109} GHH400J+HV               =       G3H3003 +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 27110} GHH400J+HV               =       G1H400O +      GHO                                    :  0.100E+01*SUN;
+{ 27111} GHK4005 +GHO                =       GHK400C +      GHO2                                   : ARR( 0.656E-11,     0., 0.0);
+{ 27112} GHK4005 +GHO                =       GDK4006 +      GHO                                    : ARR( 0.533E-10,     0., 0.0);
+{ 27113} GHK4005 +GHO                =       G2K400B                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 27114} GHK4005+HV               =       G3K2001 +      GHD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 27115} GHK4005+HV               =       G1K400B +      GHO                                    :  0.100E+01*SUN;
+{ 27116} GHD400F +GHO                =       GDD4004 +      GHO                                    : ARR( 0.537E-10,     0., 0.0);
+{ 27117} GHD400F +GHO                =       GHD400N +      GHO2                                   : ARR( 0.662E-11,     0., 0.0);
+{ 27118} GHD400F +GHO                =       G3H3003 +      GCO                                    : ARR( 0.133E-10,     0., 0.0);
+{ 27119} GHD400F +GNO3               =       G3H3003 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 27120} GHD400F+HV               =       G1D400I +      GHO                                    :  0.100E+01*SUN;
+{ 27121} GHD400F+HV               =       G3H3003 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 27122} GHD400F+HV               =       GHD3005 +      GCO                                    :  0.100E+01*SUN;
+{ 27123} GHD400F+HV               =       GHO2000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 27124} GGH4009 +GHO                =       GGD4001 +      GHO                                    : ARR( 0.166E-10,     0., 0.0);
+{ 27125} GGH4009 +GHO                =       GGH400A +      GHO2                                   : ARR( 0.106E-10,     0., 0.0);
+{ 27126} GGH4009 +GHO                =       G2G400M                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 27127} GGH4009 +GHO                =       G3H4006                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 27128} GGH4009+HV               =       G1G4004 +      GHO                                    :  0.100E+01*SUN;
+{ 27129} GGH4009+HV               =       G2H3009 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 27130} G2G400M +GNO                =       G1G4004 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 27131} G2G400M +GNO                =       GGN4001                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 27132} G2G400M +GHO2               =       GGH4009                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 27133} G2G400M +GNO3               =       G1G4004 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 27134} G2G400M +MEPERO             =  0.480G1G4004 + 0.260GGO4004 + 0.260GGD4001                 : ARR( 0.164E-12,  -795., 0.0);
+{ 27135} G2G400M +PERO1              =  0.600G1G4004 + 0.200GGO4004 + 0.200GGD4001                 : ARR( 0.126E-12,  -850., 0.0);
+{ 27136} G2G400M +PERO2              =  0.560G1G4004 + 0.220GGO4004 + 0.220GGD4001                 : ARR( 0.471E-13, -1350., 0.0);
+{ 27137} G2G400M +PERO3              =  0.600G1G4004 + 0.200GGO4004 + 0.200GGD4001                 : ARR( 0.142E-12, -1200., 0.0);
+{ 27138} G2G400M +PERO5              =  0.600G1G4004 + 0.200GGO4004 + 0.200GGD4001                 : ARR( 0.533E-11,   500., 0.0);
+{ 27139} G2G400M +PERO6              =  0.460G1G4004 + 0.270GGO4004 + 0.270GGD4001                 : ARR( 0.488E-13, -1250., 0.0);
+{ 27140} G2G400M +PERO9              =  0.800G1G4004 + 0.200GGD4001                                : ARR( 0.100E-10,     0., 0.0);
+{ 27141} GAH4009 +GHO                =       GAH400A +      GHO2                                   : ARR( 0.107E-10,     0., 0.0);
+{ 27142} GAH4009 +GHO                =       GAD4001 +      GHO                                    : ARR( 0.168E-10,     0., 0.0);
+{ 27143} GAH4009 +GHO                =       G2A400X                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 27144} GAH4009+HV               =       G1A4004 +      GHO                                    :  0.100E+01*SUN;
+{ 27145} G2A400X +GNO                =       G1A4004 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 27146} G2A400X +GNO                =       GAN4001                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 27147} G2A400X +GHO2               =       GAH4009                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 27148} G2A400X +GNO3               =       G1A4004 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 27149} G2A400X +MEPERO             =  0.480G1A4004 + 0.260GAO4004 + 0.260GAD4001                 : ARR( 0.164E-12,  -795., 0.0);
+{ 27150} G2A400X +PERO1              =  0.600G1A4004 + 0.200GAO4004 + 0.200GAD4001                 : ARR( 0.126E-12,  -850., 0.0);
+{ 27151} G2A400X +PERO2              =  0.560G1A4004 + 0.220GAO4004 + 0.220GAD4001                 : ARR( 0.471E-13, -1350., 0.0);
+{ 27152} G2A400X +PERO3              =  0.600G1A4004 + 0.200GAO4004 + 0.200GAD4001                 : ARR( 0.142E-12, -1200., 0.0);
+{ 27153} G2A400X +PERO5              =  0.600G1A4004 + 0.200GAO4004 + 0.200GAD4001                 : ARR( 0.533E-11,   500., 0.0);
+{ 27154} G2A400X +PERO6              =  0.460G1A4004 + 0.270GAO4004 + 0.270GAD4001                 : ARR( 0.488E-13, -1250., 0.0);
+{ 27155} G2A400X +PERO9              =  0.800G1A4004 + 0.200GAD4001                                : ARR( 0.100E-10,     0., 0.0);
+{ 27156} GPH4009                     =       G3H4006 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 27157} GPH4009 +GHO                =       GPD4001 +      GHO                                    : ARR( 0.166E-10,     0., 0.0);
+{ 27158} GPH4009 +GHO                =       GPH400A +      GHO2                                   : ARR( 0.106E-10,     0., 0.0);
+{ 27159} GPH4009 +GHO                =       G2P400Z                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 27160} GPH4009+HV               =       G1P4004 +      GHO                                    :  0.100E+01*SUN;
+{ 27161} GPH4009+HV               =       G3H4006 +      GNO2                                   :  0.100E+01*SUN;
+{ 27162} G2P400Z +GNO                =       G1P4004 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 27163} G2P400Z +GNO                =       GPN4001                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 27164} G2P400Z +GHO2               =       GPH4009                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 27165} G2P400Z +GNO3               =       G1P4004 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 27166} G2P400Z +MEPERO             =  0.480G1P4004 + 0.260GPO4004 + 0.260GPD4001                 : ARR( 0.164E-12,  -795., 0.0);
+{ 27167} G2P400Z +PERO1              =  0.600G1P4004 + 0.200GPO4004 + 0.200GPD4001                 : ARR( 0.126E-12,  -850., 0.0);
+{ 27168} G2P400Z +PERO2              =  0.560G1P4004 + 0.220GPO4004 + 0.220GPD4001                 : ARR( 0.471E-13, -1350., 0.0);
+{ 27169} G2P400Z +PERO3              =  0.600G1P4004 + 0.200GPO4004 + 0.200GPD4001                 : ARR( 0.142E-12, -1200., 0.0);
+{ 27170} G2P400Z +PERO5              =  0.600G1P4004 + 0.200GPO4004 + 0.200GPD4001                 : ARR( 0.533E-11,   500., 0.0);
+{ 27171} G2P400Z +PERO6              =  0.460G1P4004 + 0.270GPO4004 + 0.270GPD4001                 : ARR( 0.488E-13, -1250., 0.0);
+{ 27172} G2P400Z +PERO9              =  0.800G1P4004 + 0.200GPD4001                                : ARR( 0.100E-10,     0., 0.0);
+{ 27173} GHH3007 +GHO                =       GHD3005 +      GHO                                    : ARR( 0.323E-10,     0., 0.0);
+{ 27174} GHH3007 +GHO                =       GHH3002 +      GHO2                                   : ARR( 0.103E-10,     0., 0.0);
+{ 27175} GHH3007 +GHO                =       G2H3009                                               : ARR( 0.381E-11,  -190., 0.0);
+{ 27176} GHH3007+HV               =       G1H3007 +      GHO                                    :  0.200E+01*SUN;
+{ 27177} GGH400A +GHO                =       GGD4004 +      GHO                                    : ARR( 0.101E-10,     0., 0.0);
+{ 27178} GGH400A +GHO                =       G2G400N                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 27179} GGH400A +GHO                =       G3H4007                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 27180} GGH400A+HV               =       G1G400I +      GHO                                    :  0.100E+01*SUN;
+{ 27181} GGH400A+HV               =       G3H2000 +      G2G2000                                :  0.100E+01*SUN;
+{ 27182} GGH400A+HV               =       G2H3002 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 27183} G2G400N +GNO                =       G1G400I +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 27184} G2G400N +GNO                =       GGN4008                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 27185} G2G400N +GHO2               =       GGH400A                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 27186} G2G400N +GNO3               =       G1G400I +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 27187} G2G400N +MEPERO             =  0.480G1G400I + 0.260GGK4003 + 0.260GGD4004                 : ARR( 0.164E-12,  -795., 0.0);
+{ 27188} G2G400N +PERO1              =  0.600G1G400I + 0.200GGK4003 + 0.200GGD4004                 : ARR( 0.126E-12,  -850., 0.0);
+{ 27189} G2G400N +PERO2              =  0.560G1G400I + 0.220GGK4003 + 0.220GGD4004                 : ARR( 0.471E-13, -1350., 0.0);
+{ 27190} G2G400N +PERO3              =  0.600G1G400I + 0.200GGK4003 + 0.200GGD4004                 : ARR( 0.142E-12, -1200., 0.0);
+{ 27191} G2G400N +PERO5              =  0.600G1G400I + 0.200GGK4003 + 0.200GGD4004                 : ARR( 0.533E-11,   500., 0.0);
+{ 27192} G2G400N +PERO6              =  0.460G1G400I + 0.270GGK4003 + 0.270GGD4004                 : ARR( 0.488E-13, -1250., 0.0);
+{ 27193} G2G400N +PERO9              =  0.800G1G400I + 0.200GGD4004                                : ARR( 0.100E-10,     0., 0.0);
+{ 27194} GAH400A +GHO                =       GAD4003 +      GHO                                    : ARR( 0.105E-10,     0., 0.0);
+{ 27195} GAH400A +GHO                =       G2A400B                                               : ARR( 0.203E-11,  -190., 0.0);
+{ 27196} GAH400A+HV               =       G3A3000 +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 27197} GAH400A+HV               =       G1A400D +      GHO                                    :  0.100E+01*SUN;
+{ 27198} GPH400A                     =       G3H4007 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 27199} GPH400A +GHO                =       GPD4003 +      GHO                                    : ARR( 0.102E-10,     0., 0.0);
+{ 27200} GPH400A +GHO                =       G2P400C                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 27201} GPH400A+HV               =       G1P400D +      GHO                                    :  0.100E+01*SUN;
+{ 27202} GPH400A+HV               =       G3H2000 +      G2P2000                                :  0.100E+01*SUN;
+{ 27203} GPH400A+HV               =       G3H4007 +      GNO2                                   :  0.100E+01*SUN;
+{ 27204} GHN5049 +GHO                =       GNN502S +      GHO                                    : ARR( 0.171E-10,     0., 0.0);
+{ 27205} GHN5049 +GHO                =       G2N5037                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 27206} GHN5049+HV               =       G1H5078 +      GNO2                                   :  0.100E+01*SUN;
+{ 27207} GHN5049+HV               =       G1H5079 +      GNO2                                   :  0.100E+01*SUN;
+{ 27208} GHN5049+HV               =       G1N503Q +      GHO                                    :  0.100E+01*SUN;
+{ 27209} G1H5078                     =       GND500I +      GHO                                    : ARR( 0.160E+12,  2186., 0.0);
+{ 27210} G1H5078                     =       GCH2O   +      GHN400M +      GHO2                    : ARR( 0.200E+15,  5296., 0.0);
+{ 27211} G1H5079                     =       GDO2000 +      GHD3000 +      GNO2                    : ARR( 0.200E+15,  6068., 0.0);
+{ 27212} G1H5079                     =       GND3004 +      G2H2000                                : ARR( 0.200E+15,  7074., 0.0);
+{ 27213} GNN502S +GHO                =       G3N501E                                               : ARR( 0.220E-10,     0., 0.0);
+{ 27214} GNN502S +GNO3               =       G3N501E +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 27215} GNN502S+HV               =       G1N505z +      GNO2                                   :  0.100E+01*SUN;
+{ 27216} GNN502S+HV               =       G1N5061 +      GNO2                                   :  0.100E+01*SUN;
+{ 27217} GNN502S+HV               =       G2N400a +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 27218} GNN502S+HV               =       GDK3001 +      GD02000 + 2.000GNO2                    :  0.100E+01*SUN;
+{ 27219} G3N501E +GHO2               =  0.800GGN501X + 0.200GAN501X + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 27220} G3N501E +GNO                =       G2N400a +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 27221} G3N501E +GNO2               =       GPN501Z                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 27222} G3N501E +GNO3               =       G2N400a +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 27223} G3N501E +MEPERO             =  0.685G2N400a + 0.315GAN501X + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 27224} G3N501E +PERO1              =  0.800G2N400a + 0.200GAN501X + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 27225} G3N501E +PERO2              =  0.750G2N400a + 0.250GAN501X + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 27226} G3N501E +PERO3              =  0.800G2N400a + 0.200GAN501X + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 27227} G3N501E +PERO5              =  0.650G2N400a + 0.350GAN501X + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 27228} G3N501E +PERO6              =  0.650G2N400a + 0.350GAN501X + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 27229} G3N501E +PERO9              =       G2N400a +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 27230} G1N505z                     =       GCH2O   +      GND400D +      GHO2                    : ARR( 0.200E+15,  5296., 0.0);
+{ 27231} G1N505z                     =       GDO2000 +      GDD3000 +      GNO2                    : ARR( 0.200E+15,  6367., 0.0);
+{ 27232} G1N5061                     =       GDO2000 +      GDD3000 +      GNO2                    : ARR( 0.200E+15,  5685., 0.0);
+{ 27233} GHN504A +GHO                =       GHN506N +      GHO2                                   : ARR( 0.251E-11,     0., 0.0);
+{ 27234} GHN504A +GHO                =       GND500u +      GHO                                    : ARR( 0.164E-10,     0., 0.0);
+{ 27235} GHN504A +GHO                =       G2N5038                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 27236} GHN504A+HV               =       G3K2001 +      GHD3000 +      GNO2                    :  0.100E+01*SUN;
+{ 27237} GHN504A+HV               =       GNK3001 +      G2D2000 +      GHO                     :  0.100E+01*SUN;
+{ 27238} GHN504A+HV               =       G1H507A +      GNO2                                   :  0.100E+01*SUN;
+{ 27239} GHN504A+HV               =       G1N503R +      GHO                                    :  0.100E+01*SUN;
+{ 27240} G1H507A                     =       G3K2001 +      GHD3000                                : ARR( 0.200E+15,  2755., 0.0);
+{ 27241} GND500u +GHO                =       GND501C +      GHO2                                   : ARR( 0.251E-11,     0., 0.0);
+{ 27242} GND500u +GHO                =       G3N501F                                               : ARR( 0.213E-10,     0., 0.0);
+{ 27243} GND500u +GNO3               =       G3N501F +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 27244} GND500u+HV               =       G3K2001 +      GDD3000 +      GNO2                    :  0.100E+01*SUN;
+{ 27245} GND500u+HV               =       G1D500Y +      GNO2                                   :  0.100E+01*SUN;
+{ 27246} GND500u+HV               =       G2N400x +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 27247} G3N501F +GHO2               =  0.800GGN501Y + 0.200GAN501Y + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 27248} G3N501F +GNO                =       G2N400x +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 27249} G3N501F +GNO2               =       GPN501a                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 27250} G3N501F +GNO3               =       G2N400x +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 27251} G3N501F +MEPERO             =  0.685G2N400x + 0.315GAN501Y + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 27252} G3N501F +PERO1              =  0.800G2N400x + 0.200GAN501Y + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 27253} G3N501F +PERO2              =  0.750G2N400x + 0.250GAN501Y + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 27254} G3N501F +PERO3              =  0.800G2N400x + 0.200GAN501Y + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 27255} G3N501F +PERO5              =  0.650G2N400x + 0.350GAN501Y + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 27256} G3N501F +PERO6              =  0.650G2N400x + 0.350GAN501Y + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 27257} G3N501F +PERO9              =       G2N400x +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 27258} G2N400x +GNO                =       G1N4016 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 27259} G2N400x +GNO                =       GNN400R                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 27260} G2N400x +GHO2               =       GHN401B                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 27261} G2N400x +GNO3               =       G1N4016 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 27262} G2N400x +MEPERO             =  0.480G1N4016 + 0.260GNK4008 + 0.260GND400L                 : ARR( 0.164E-12,  -795., 0.0);
+{ 27263} G2N400x +PERO1              =  0.600G1N4016 + 0.200GNK4008 + 0.200GND400L                 : ARR( 0.126E-12,  -850., 0.0);
+{ 27264} G2N400x +PERO2              =  0.560G1N4016 + 0.220GNK4008 + 0.220GND400L                 : ARR( 0.471E-13, -1350., 0.0);
+{ 27265} G2N400x +PERO3              =  0.600G1N4016 + 0.200GNK4008 + 0.200GND400L                 : ARR( 0.142E-12, -1200., 0.0);
+{ 27266} G2N400x +PERO5              =  0.600G1N4016 + 0.200GNK4008 + 0.200GND400L                 : ARR( 0.533E-11,   500., 0.0);
+{ 27267} G2N400x +PERO6              =  0.460G1N4016 + 0.270GNK4008 + 0.270GND400L                 : ARR( 0.488E-13, -1250., 0.0);
+{ 27268} G2N400x +PERO9              =  0.800G1N4016 + 0.200GND400L                                : ARR( 0.100E-10,     0., 0.0);
+{ 27269} G1N4016 +OXYGEN             =       GND400L +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 27270} G1N4016                     =       GND400K +      GHO2                                   : ARR( 0.160E+12,  4515., 0.0);
+{ 27271} G1N4016                     =       GDK3001 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7323., 0.0);
+{ 27272} GHN504B +GHO                =       GNK500h +      GHO                                    : ARR( 0.690E-11,     0., 0.0);
+{ 27273} GHN504B +GHO                =       GHN506O +      GHO2                                   : ARR( 0.252E-11,     0., 0.0);
+{ 27274} GHN504B +GHO                =       G2N5039                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 27275} GHN504B+HV               =       G1N503S +      GHO                                    :  0.100E+01*SUN;
+{ 27276} GHN504B+HV               =       G1H507B +      GNO2                                   :  0.100E+01*SUN;
+{ 27277} GHN504B+HV               =       G3H400J +      GCH2O   +      GHO2                    :  0.100E+01*SUN;
+{ 27278} GHN504B+HV               =       G2D2000 +      GNK3001 +      GHO                     :  0.100E+01*SUN;
+{ 27279} G1H507B                     =       GHD3002 +      G3K2001                                : ARR( 0.200E+15,  3009., 0.0);
+{ 27280} GNK5013 +GHO                =       GNK500h +      GHO2                                   : ARR( 0.189E-11,     0., 0.0);
+{ 27281} GNK5013 +GHO                =       GND500v +      GHO2                                   : ARR( 0.276E-11,     0., 0.0);
+{ 27282} GNK5013+HV               =       G1K5017 +      GNO2                                   :  0.100E+01*SUN;
+{ 27283} GNK5013+HV               =       G3N400C +      GCH2O   +      GHO2                    :  0.100E+01*SUN;
+{ 27284} GNK5013+HV               =       GD02000 +      GNK3001                                :  0.100E+01*SUN;
+{ 27285} G1K5017                     =       GDO3001 +      G3K2001                                : ARR( 0.200E+15,  3009., 0.0);
+{ 27286} GND500v +GHO                =       GND5018 +      GHO2                                   : ARR( 0.172E-11,     0., 0.0);
+{ 27287} GND500v +GHO                =       G3N400C +      GCO                                    : ARR( 0.130E-10,     0., 0.0);
+{ 27288} GND500v +GNO3               =       G3N400C +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 27289} GND500v+HV               =       G1D5018 +      GNO2                                   :  0.100E+01*SUN;
+{ 27290} GND500v+HV               =       G3N400C +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 27291} GND500v+HV               =       GND4007 +      GCO                                    :  0.100E+01*SUN;
+{ 27292} GND500v+HV               =       GNO3002 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 27293} G1D5018                     =       GDO3001 +      G3D2000                                : ARR( 0.200E+15,  3233., 0.0);
+{ 27294} GGN500N +GHO                =       GGN500r +      GHO2                                   : ARR( 0.426E-11,     0., 0.0);
+{ 27295} GGN500N +GHO                =       GGN501Y +      GHO2                                   : ARR( 0.218E-11,     0., 0.0);
+{ 27296} GGN500N +GHO                =       G3N500K                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 27297} GGN500N+HV               =       G1G500D +      GNO2                                   :  0.100E+01*SUN;
+{ 27298} GGN500N+HV               =       G2N400N +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 27299} GAN500N +GHO                =       GAN500o +      GHO2                                   : ARR( 0.434E-11,     0., 0.0);
+{ 27300} GAN500N +GHO                =       GAN501Y +      GHO2                                   : ARR( 0.222E-11,     0., 0.0);
+{ 27301} GAN500N +GHO                =       G2N400N +      GCO2                                   : ARR( 0.561E-12,     0., 0.0);
+{ 27302} GAN500N+HV               =       G1A500E +      GNO2                                   :  0.100E+01*SUN;
+{ 27303} GPN500N                     =       G3N500K +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 27304} GPN500N +GHO                =       GPN500p +      GHO2                                   : ARR( 0.440E-11,     0., 0.0);
+{ 27305} GPN500N +GHO                =       GPN501a +      GHO2                                   : ARR( 0.225E-11,     0., 0.0);
+{ 27306} GPN500N+HV               =       G1P500E +      GNO2                                   :  0.100E+01*SUN;
+{ 27307} GPN500N+HV               =       G3N500K +      GNO2                                   :  0.100E+01*SUN;
+{ 27308} GNN400K +GHO                =       GNN400T +      GHO2                                   : ARR( 0.423E-11,     0., 0.0);
+{ 27309} GNN400K +GHO                =       GNN400R +      GHO2                                   : ARR( 0.217E-11,     0., 0.0);
+{ 27310} GNN400K+HV               =       G1N4017 +      GNO2                                   :  0.100E+01*SUN;
+{ 27311} GNN400K+HV               =       G1N400O +      GNO2                                   :  0.100E+01*SUN;
+{ 27312} G1N4017                     =       GDO2000 +      GND2000 +      GHO2                    : ARR( 0.200E+15,  3632., 0.0);
+{ 27313} GHN400a +GHO                =       GHN400x +      GHO2                                   : ARR( 0.415E-11,     0., 0.0);
+{ 27314} GHN400a +GHO                =       GHN401B +      GHO2                                   : ARR( 0.212E-11,     0., 0.0);
+{ 27315} GHN400a +GHO                =       GND400A +      GHO                                    : ARR( 0.332E-11,     0., 0.0);
+{ 27316} GHN400a +GHO                =       G2N400N                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 27317} GHN400a+HV               =       G1H4018 +      GNO2                                   :  0.100E+01*SUN;
+{ 27318} GHN400a+HV               =       G1N400O +      GHO                                    :  0.100E+01*SUN;
+{ 27319} G1H4018                     =       GDO2000 +      GHD2000 +      GHO2                    : ARR( 0.200E+15,  3635., 0.0);
+{ 27320} GND500w +GHO                =       G2N5059                                               : ARR( 0.121E-11,     0., 0.0);
+{ 27321} GND500w +GHO                =       GND500j +      GHO2                                   : ARR( 0.217E-11,     0., 0.0);
+{ 27322} GND500w +GHO                =       G3N501G                                               : ARR( 0.437E-11,     0., 0.0);
+{ 27323} GND500w +GNO3               =       G3N501G +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 27324} GND500w+HV               =       G1D5016 +      GNO2                                   :  0.100E+01*SUN;
+{ 27325} GND500w+HV               =       GDO4004 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 27326} GND500w+HV               =       GD03000 +      GND2000                                :  0.100E+01*SUN;
+{ 27327} G2N5059 +GNO                =       G1N5062 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 27328} G2N5059 +GNO                =       GNN502U                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 27329} G2N5059 +GHO2               =       GHN506P                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 27330} G2N5059 +GNO3               =       G1N5062 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 27331} G2N5059 +MEPERO             =  0.340G1N5062 + 0.330GND5019 + 0.330GND5015                 : ARR( 0.565E-13,  -845., 0.0);
+{ 27332} G2N5059 +PERO1              =  0.460G1N5062 + 0.270GND5019 + 0.270GND5015                 : ARR( 0.434E-13,  -900., 0.0);
+{ 27333} G2N5059 +PERO2              =  0.400G1N5062 + 0.300GND5019 + 0.300GND5015                 : ARR( 0.162E-13, -1400., 0.0);
+{ 27334} G2N5059 +PERO3              =  0.460G1N5062 + 0.270GND5019 + 0.270GND5015                 : ARR( 0.488E-13, -1250., 0.0);
+{ 27335} G2N5059 +PERO5              =  0.460G1N5062 + 0.270GND5019 + 0.270GND5015                 : ARR( 0.183E-11,   450., 0.0);
+{ 27336} G2N5059 +PERO6              =  0.300G1N5062 + 0.350GND5019 + 0.350GND5015                 : ARR( 0.168E-13, -1300., 0.0);
+{ 27337} G2N5059 +PERO9              =  0.650G1N5062 + 0.350GND5015                                : ARR( 0.100E-10,     0., 0.0);
+{ 27338} G3N501G +GHO2               =  0.800GGN500S + 0.200GAN500l + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 27339} G3N501G +GNO                =       GDO4004 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 27340} G3N501G +GNO2               =       GPN500d                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 27341} G3N501G +GNO3               =       GDO4004 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 27342} G3N501G +MEPERO             =  0.685GDO4004 + 0.315GAN500l + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 27343} G3N501G +PERO1              =  0.800GDO4004 + 0.200GAN500l + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 27344} G3N501G +PERO2              =  0.750GDO4004 + 0.250GAN500l + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 27345} G3N501G +PERO3              =  0.800GDO4004 + 0.200GAN500l + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 27346} G3N501G +PERO5              =  0.650GDO4004 + 0.350GAN500l + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 27347} G3N501G +PERO6              =  0.650GDO4004 + 0.350GAN500l + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 27348} G3N501G +PERO9              =       GDO4004 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 27349} G1N5062                     =       GD02000 +      GND3005 +      GHO2                    : ARR( 0.200E+15,  3365., 0.0);
+{ 27350} GDK500O +GHO                =       G2D500h                                               : ARR( 0.369E-11,     0., 0.0);
+{ 27351} GDK500O +GHO                =       GDK500E +      GHO2                                   : ARR( 0.637E-11,     0., 0.0);
+{ 27352} GDK500O +GHO                =       G3K4004 +      GCO                                    : ARR( 0.128E-10,     0., 0.0);
+{ 27353} GDK500O +GNO3               =       G3K4004 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 27354} GDK500O+HV               =       G3K4004 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 27355} GDK500O+HV               =       GDO4004 +      GCO                                    :  0.100E+01*SUN;
+{ 27356} GDK500O+HV               =       GO03000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 27357} G2D500h +GNO                =       G1D5019 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 27358} G2D500h +GNO                =       GND500y                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 27359} G2D500h +GHO2               =       GHD501M                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 27360} G2D500h +GNO3               =       G1D5019 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 27361} G2D500h +MEPERO             =  0.340G1D5019 + 0.330GDK500T + 0.330GDK500Z                 : ARR( 0.565E-13,  -845., 0.0);
+{ 27362} G2D500h +PERO1              =  0.460G1D5019 + 0.270GDK500T + 0.270GDK500Z                 : ARR( 0.434E-13,  -900., 0.0);
+{ 27363} G2D500h +PERO2              =  0.400G1D5019 + 0.300GDK500T + 0.300GDK500Z                 : ARR( 0.162E-13, -1400., 0.0);
+{ 27364} G2D500h +PERO3              =  0.460G1D5019 + 0.270GDK500T + 0.270GDK500Z                 : ARR( 0.488E-13, -1250., 0.0);
+{ 27365} G2D500h +PERO5              =  0.460G1D5019 + 0.270GDK500T + 0.270GDK500Z                 : ARR( 0.183E-11,   450., 0.0);
+{ 27366} G2D500h +PERO6              =  0.300G1D5019 + 0.350GDK500T + 0.350GDK500Z                 : ARR( 0.168E-13, -1300., 0.0);
+{ 27367} G2D500h +PERO9              =  0.650G1D5019 + 0.350GDK500Z                                : ARR( 0.100E-10,     0., 0.0);
+{ 27368} G1D5019                     =       GD02000 +      GDD3002 +      GHO2                    : ARR( 0.200E+15,  3092., 0.0);
+{ 27369} GHK500h +GHO                =       GKK500C +      GHO                                    : ARR( 0.112E-09,     0., 0.0);
+{ 27370} GHK500h +GHO                =       GHK500j +      GHO2                                   : ARR( 0.665E-11,     0., 0.0);
+{ 27371} GHK500h+HV               =       G1K500f +      GHO                                    :  0.100E+01*SUN;
+{ 27372} GHK500h+HV               =       G3H400M +      GCH2O   +      GHO2                    :  0.100E+01*SUN;
+{ 27373} GHN504C +GHO                =       GND500x +      GHO                                    : ARR( 0.528E-10,     0., 0.0);
+{ 27374} GHN504C +GHO                =       G2N503A                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 27375} GHN504C+HV               =       G1H507C +      GNO2                                   :  0.100E+01*SUN;
+{ 27376} GHN504C+HV               =       G3N3004 +      G2H2000                                :  0.100E+01*SUN;
+{ 27377} GHN504C+HV               =       G1N503T +      GHO                                    :  0.100E+01*SUN;
+{ 27378} G1H507C                     =       GDO2000 +      G3H3000                                : ARR( 0.200E+15,  3005., 0.0);
+{ 27379} GND500x +GHO                =       G3N501H                                               : ARR( 0.674E-10,     0., 0.0);
+{ 27380} GND500x +GNO3               =       G3N501H +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 27381} GND500x+HV               =       G1D501A +      GNO2                                   :  0.100E+01*SUN;
+{ 27382} GND500x+HV               =       G3N3004 +      G2D2000                                :  0.100E+01*SUN;
+{ 27383} GND500x+HV               =       G2N400y +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 27384} G3N501H +GHO2               =  0.800GGN501Z + 0.200GAN501Z + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 27385} G3N501H +GNO                =       G2N400y +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 27386} G3N501H +GNO2               =       GPN501b                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 27387} G3N501H +GNO3               =       G2N400y +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 27388} G3N501H +MEPERO             =  0.685G2N400y + 0.315GAN501Z + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 27389} G3N501H +PERO1              =  0.800G2N400y + 0.200GAN501Z + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 27390} G3N501H +PERO2              =  0.750G2N400y + 0.250GAN501Z + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 27391} G3N501H +PERO3              =  0.800G2N400y + 0.200GAN501Z + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 27392} G3N501H +PERO5              =  0.650G2N400y + 0.350GAN501Z + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 27393} G3N501H +PERO6              =  0.650G2N400y + 0.350GAN501Z + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 27394} G3N501H +PERO9              =       G2N400y +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 27395} G1D501A                     =       GDO2000 +      G3D3000                                : ARR( 0.200E+15,  2981., 0.0);
+{ 27396} G2N400y +GNO                =       G1N4018 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 27397} G2N400y +GNO                =       GNN400U                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 27398} G2N400y +GHO2               =       GHN400t                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 27399} G2N400y +GNO3               =       G1N4018 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 27400} G2N400y +MEPERO             =  0.480G1N4018 + 0.260GNK4008 + 0.260GND400K                 : ARR( 0.164E-12,  -795., 0.0);
+{ 27401} G2N400y +PERO1              =  0.600G1N4018 + 0.200GNK4008 + 0.200GND400K                 : ARR( 0.126E-12,  -850., 0.0);
+{ 27402} G2N400y +PERO2              =  0.560G1N4018 + 0.220GNK4008 + 0.220GND400K                 : ARR( 0.471E-13, -1350., 0.0);
+{ 27403} G2N400y +PERO3              =  0.600G1N4018 + 0.200GNK4008 + 0.200GND400K                 : ARR( 0.142E-12, -1200., 0.0);
+{ 27404} G2N400y +PERO5              =  0.600G1N4018 + 0.200GNK4008 + 0.200GND400K                 : ARR( 0.533E-11,   500., 0.0);
+{ 27405} G2N400y +PERO6              =  0.460G1N4018 + 0.270GNK4008 + 0.270GND400K                 : ARR( 0.488E-13, -1250., 0.0);
+{ 27406} G2N400y +PERO9              =  0.800G1N4018 + 0.200GND400K                                : ARR( 0.100E-10,     0., 0.0);
+{ 27407} G1N4018                     =       G3N3004 +      GCH2O                                  : ARR( 0.200E+15,  3640., 0.0);
+{ 27408} GHK500i +GHO                =       GDK500P +      GHO                                    : ARR( 0.542E-10,     0., 0.0);
+{ 27409} GHK500i +GHO                =       G2K500X                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 27410} GHK500i+HV               =       G3K2001 +      G3H3000                                :  0.100E+01*SUN;
+{ 27411} GHK500i+HV               =       G1K500g +      GHO                                    :  0.100E+01*SUN;
+{ 27412} GDK500P +GHO                =       G3K500X                                               : ARR( 0.690E-10,     0., 0.0);
+{ 27413} GDK500P +GNO3               =       G3K500X +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 27414} GDK500P+HV               =       G3K2001 +      G3D3000                                :  0.100E+01*SUN;
+{ 27415} GDK500P+HV               =       G2K400C +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 27416} G3K500X +GHO2               =  0.800GGK500Q + 0.200GAK500P + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 27417} G3K500X +GNO                =       G2K400C +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 27418} G3K500X +GNO2               =       GPK500Q                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 27419} G3K500X +GNO3               =       G2K400C +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 27420} G3K500X +MEPERO             =  0.685G2K400C + 0.315GAK500P + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 27421} G3K500X +PERO1              =  0.800G2K400C + 0.200GAK500P + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 27422} G3K500X +PERO2              =  0.750G2K400C + 0.250GAK500P + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 27423} G3K500X +PERO3              =  0.800G2K400C + 0.200GAK500P + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 27424} G3K500X +PERO5              =  0.650G2K400C + 0.350GAK500P + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 27425} G3K500X +PERO6              =  0.650G2K400C + 0.350GAK500P + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 27426} G3K500X +PERO9              =       G2K400C +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 27427} G2K400C +GNO                =       G1K400C +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 27428} G2K400C +GNO                =       GNK400C                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 27429} G2K400C +GHO2               =       GHK400C                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 27430} G2K400C +GNO3               =       G1K400C +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 27431} G2K400C +MEPERO             =  0.480G1K400C + 0.260GKK4001 + 0.260GDK4009                 : ARR( 0.164E-12,  -795., 0.0);
+{ 27432} G2K400C +PERO1              =  0.600G1K400C + 0.200GKK4001 + 0.200GDK4009                 : ARR( 0.126E-12,  -850., 0.0);
+{ 27433} G2K400C +PERO2              =  0.560G1K400C + 0.220GKK4001 + 0.220GDK4009                 : ARR( 0.471E-13, -1350., 0.0);
+{ 27434} G2K400C +PERO3              =  0.600G1K400C + 0.200GKK4001 + 0.200GDK4009                 : ARR( 0.142E-12, -1200., 0.0);
+{ 27435} G2K400C +PERO5              =  0.600G1K400C + 0.200GKK4001 + 0.200GDK4009                 : ARR( 0.533E-11,   500., 0.0);
+{ 27436} G2K400C +PERO6              =  0.460G1K400C + 0.270GKK4001 + 0.270GDK4009                 : ARR( 0.488E-13, -1250., 0.0);
+{ 27437} G2K400C +PERO9              =  0.800G1K400C + 0.200GDK4009                                : ARR( 0.100E-10,     0., 0.0);
+{ 27438} G1K400C                     =       G3K2001 +      GCH2O   +      GCO                     : ARR( 0.200E+15,  3897., 0.0);
+{ 27439} GHK500j +GHO                =       GKK500B +      GHO                                    : ARR( 0.209E-10,     0., 0.0);
+{ 27440} GHK500j +GHO                =       GHD500v +      GHO2                                   : ARR( 0.251E-11,     0., 0.0);
+{ 27441} GHK500j +GHO                =       G2K500Y                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 27442} GHK500j+HV               =       G1K500h +      GHO                                    :  0.100E+01*SUN;
+{ 27443} GHK500j+HV               =       G3H3001 +      G3K2001                                :  0.100E+01*SUN;
+{ 27444} GKK500D +GHO                =       G2K500o                                               : ARR( 0.550E-12,     0., 0.0);
+{ 27445} GKK500D +GHO                =       GKK500B +      GHO2                                   : ARR( 0.528E-11,     0., 0.0);
+{ 27446} GKK500D +GHO                =       GDK500U +      GHO2                                   : ARR( 0.254E-11,     0., 0.0);
+{ 27447} GKK500D+HV               =       G3K3002 +      G3K2001                                :  0.100E+01*SUN;
+{ 27448} G2K500o +GNO                =       G1K500x +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 27449} G2K500o +GNO                =       GNK500u                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 27450} G2K500o +GHO2               =       GHK500x                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 27451} G2K500o +GNO3               =       G1K500x +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 27452} G2K500o +MEPERO             =  0.480G1K500x + 0.260GKK500G + 0.260GDK500Y                 : ARR( 0.164E-12,  -795., 0.0);
+{ 27453} G2K500o +PERO1              =  0.600G1K500x + 0.200GKK500G + 0.200GDK500Y                 : ARR( 0.126E-12,  -850., 0.0);
+{ 27454} G2K500o +PERO2              =  0.560G1K500x + 0.220GKK500G + 0.220GDK500Y                 : ARR( 0.471E-13, -1350., 0.0);
+{ 27455} G2K500o +PERO3              =  0.600G1K500x + 0.200GKK500G + 0.200GDK500Y                 : ARR( 0.142E-12, -1200., 0.0);
+{ 27456} G2K500o +PERO5              =  0.600G1K500x + 0.200GKK500G + 0.200GDK500Y                 : ARR( 0.533E-11,   500., 0.0);
+{ 27457} G2K500o +PERO6              =  0.460G1K500x + 0.270GKK500G + 0.270GDK500Y                 : ARR( 0.488E-13, -1250., 0.0);
+{ 27458} G2K500o +PERO9              =  0.800G1K500x + 0.200GDK500Y                                : ARR( 0.100E-10,     0., 0.0);
+{ 27459} GGN500O +GHO                =       GGN5019 +      GHO2                                   : ARR( 0.887E-12,     0., 0.0);
+{ 27460} GGN500O +GHO                =       G2G500t                                               : ARR( 0.950E-12,     0., 0.0);
+{ 27461} GGN500O +GHO                =       G3N500L                                               : ARR( 0.210E-11,  -190., 0.0);
+{ 27462} GGN500O+HV               =       G1G501R +      GNO2                                   :  0.100E+01*SUN;
+{ 27463} GGN500O+HV               =       G2N4003 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 27464} G1G501R                     =       GCH2O   +      GGD4000 +      GHO2                    : ARR( 0.200E+15,  5041., 0.0);
+{ 27465} GAN500O +GHO                =       GAN501I +      GHO2                                   : ARR( 0.844E-12,     0., 0.0);
+{ 27466} GAN500O +GHO                =       G2A501O                                               : ARR( 0.297E-12,     0., 0.0);
+{ 27467} GAN500O +GHO                =       G2A500v                                               : ARR( 0.669E-12,     0., 0.0);
+{ 27468} GAN500O +GHO                =       G1A500z                                               : ARR( 0.220E-17,    85., 2.0);
+{ 27469} GAN500O +GHO                =       G2N4003 +      GCO2                                   : ARR( 0.546E-12,     0., 0.0);
+{ 27470} GAN500O+HV               =       G1A501b +      GNO2                                   :  0.100E+01*SUN;
+{ 27471} G2A501O +GNO                =       G1A501c +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 27472} G2A501O +GNO                =       GAN501X                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 27473} G2A501O +GHO2               =       GAH5026                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 27474} G2A501O +GNO3               =       G1A501c +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 27475} G2A501O +MEPERO             =  0.340G1A501c + 0.330GAN501a + 0.330GAN501Z                 : ARR( 0.565E-13,  -845., 0.0);
+{ 27476} G2A501O +PERO1              =  0.460G1A501c + 0.270GAN501a + 0.270GAN501Z                 : ARR( 0.434E-13,  -900., 0.0);
+{ 27477} G2A501O +PERO2              =  0.400G1A501c + 0.300GAN501a + 0.300GAN501Z                 : ARR( 0.162E-13, -1400., 0.0);
+{ 27478} G2A501O +PERO3              =  0.460G1A501c + 0.270GAN501a + 0.270GAN501Z                 : ARR( 0.488E-13, -1250., 0.0);
+{ 27479} G2A501O +PERO5              =  0.460G1A501c + 0.270GAN501a + 0.270GAN501Z                 : ARR( 0.183E-11,   450., 0.0);
+{ 27480} G2A501O +PERO6              =  0.300G1A501c + 0.350GAN501a + 0.350GAN501Z                 : ARR( 0.168E-13, -1300., 0.0);
+{ 27481} G2A501O +PERO9              =  0.650G1A501c + 0.350GAN501Z                                : ARR( 0.100E-10,     0., 0.0);
+{ 27482} G1A501b                     =       GCH2O   +      GAD4000 +      GHO2                    : ARR( 0.200E+15,  5041., 0.0);
+{ 27483} G1A501c                     =       GDO2000 +      GAD3000 +      GNO2                    : ARR( 0.200E+15,  5685., 0.0);
+{ 27484} GPN500O                     =       G3N500L +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 27485} GPN500O +GHO                =       GPN501M +      GHO2                                   : ARR( 0.804E-12,     0., 0.0);
+{ 27486} GPN500O +GHO                =       GPK5007 +      GNO2                                   : ARR( 0.118E-12,     0., 0.0);
+{ 27487} GPN500O +GHO                =       G2P501Q                                               : ARR( 0.283E-12,     0., 0.0);
+{ 27488} GPN500O +GHO                =       G2P500s                                               : ARR( 0.862E-12,     0., 0.0);
+{ 27489} GPN500O +GHO                =       G1P500t                                               : ARR( 0.210E-17,    85., 2.0);
+{ 27490} GPN500O+HV               =       G1P501d +      GNO2                                   :  0.100E+01*SUN;
+{ 27491} GPN500O+HV               =       G3N500L +      GNO2                                   :  0.100E+01*SUN;
+{ 27492} G2P501Q +GNO                =       G1P501e +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 27493} G2P501Q +GNO                =       GPN501Z                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 27494} G2P501Q +GHO2               =       GPH5023                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 27495} G2P501Q +GNO3               =       G1P501e +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 27496} G2P501Q +MEPERO             =  0.340G1P501e + 0.330GPN501c + 0.330GPN501b                 : ARR( 0.565E-13,  -845., 0.0);
+{ 27497} G2P501Q +PERO1              =  0.460G1P501e + 0.270GPN501c + 0.270GPN501b                 : ARR( 0.434E-13,  -900., 0.0);
+{ 27498} G2P501Q +PERO2              =  0.400G1P501e + 0.300GPN501c + 0.300GPN501b                 : ARR( 0.162E-13, -1400., 0.0);
+{ 27499} G2P501Q +PERO3              =  0.460G1P501e + 0.270GPN501c + 0.270GPN501b                 : ARR( 0.488E-13, -1250., 0.0);
+{ 27500} G2P501Q +PERO5              =  0.460G1P501e + 0.270GPN501c + 0.270GPN501b                 : ARR( 0.183E-11,   450., 0.0);
+{ 27501} G2P501Q +PERO6              =  0.300G1P501e + 0.350GPN501c + 0.350GPN501b                 : ARR( 0.168E-13, -1300., 0.0);
+{ 27502} G2P501Q +PERO9              =  0.650G1P501e + 0.350GPN501b                                : ARR( 0.100E-10,     0., 0.0);
+{ 27503} G1P501d                     =       GCH2O   +      GPD4000 +      GHO2                    : ARR( 0.200E+15,  5041., 0.0);
+{ 27504} G1P501e                     =       GDO2000 +      GPD3000 +      GNO2                    : ARR( 0.200E+15,  5685., 0.0);
+{ 27505} GHN504D +GHO                =       G2H502n                                               : ARR( 0.116E-11,     0., 0.0);
+{ 27506} GHN504D +GHO                =       GND500j +      GHO                                    : ARR( 0.836E-11,     0., 0.0);
+{ 27507} GHN504D +GHO                =       G3H501g                                               : ARR( 0.421E-11,     0., 0.0);
+{ 27508} GHN504D +GHO                =       G2N505A                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 27509} GHN504D +GNO3               =       G3H501g +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 27510} GHN504D+HV               =       G1N503i +      GHO                                    :  0.100E+01*SUN;
+{ 27511} GHN504D+HV               =       G1H5075 +      GNO2                                   :  0.100E+01*SUN;
+{ 27512} GHN504D+HV               =       GHD4005 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 27513} GHN504D+HV               =       G2D3000 +      GND2000 +      GHO                     :  0.100E+01*SUN;
+{ 27514} G2H502n +GNO                =       G1H507D +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 27515} G2H502n +GNO                =       GHN505T                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 27516} G2H502n +GHO2               =       GHH502f                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 27517} G2H502n +GNO3               =       G1H507D +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 27518} G2H502n +MEPERO             =  0.340G1H507D + 0.330GHN503P + 0.330GHN504X                 : ARR( 0.565E-13,  -845., 0.0);
+{ 27519} G2H502n +PERO1              =  0.460G1H507D + 0.270GHN503P + 0.270GHN504X                 : ARR( 0.434E-13,  -900., 0.0);
+{ 27520} G2H502n +PERO2              =  0.400G1H507D + 0.300GHN503P + 0.300GHN504X                 : ARR( 0.162E-13, -1400., 0.0);
+{ 27521} G2H502n +PERO3              =  0.460G1H507D + 0.270GHN503P + 0.270GHN504X                 : ARR( 0.488E-13, -1250., 0.0);
+{ 27522} G2H502n +PERO5              =  0.460G1H507D + 0.270GHN503P + 0.270GHN504X                 : ARR( 0.183E-11,   450., 0.0);
+{ 27523} G2H502n +PERO6              =  0.300G1H507D + 0.350GHN503P + 0.350GHN504X                 : ARR( 0.168E-13, -1300., 0.0);
+{ 27524} G2H502n +PERO9              =  0.650G1H507D + 0.350GHN504X                                : ARR( 0.100E-10,     0., 0.0);
+{ 27525} G3H501g +GHO2               =  0.800GGH500Z + 0.200GAH500c + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 27526} G3H501g +GNO                =       GHD4005 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 27527} G3H501g +GNO2               =       GPH500e                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 27528} G3H501g +GNO3               =       GHD4005 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 27529} G3H501g +MEPERO             =  0.685GHD4005 + 0.315GAH500c + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 27530} G3H501g +PERO1              =  0.800GHD4005 + 0.200GAH500c + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 27531} G3H501g +PERO2              =  0.750GHD4005 + 0.250GAH500c + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 27532} G3H501g +PERO3              =  0.800GHD4005 + 0.200GAH500c + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 27533} G3H501g +PERO5              =  0.650GHD4005 + 0.350GAH500c + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 27534} G3H501g +PERO6              =  0.650GHD4005 + 0.350GAH500c + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 27535} G3H501g +PERO9              =       GHD4005 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 27536} G2N505A +GNO                =       G1N503i +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 27537} G2N505A +GNO                =       GNN500z                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 27538} G2N505A +GHO2               =       GHN504D                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 27539} G2N505A +GNO3               =       G1N503i +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 27540} G2N505A +MEPERO             =  0.340G1N503i + 0.330GND500w + 0.330GND500j                 : ARR( 0.565E-13,  -845., 0.0);
+{ 27541} G2N505A +PERO1              =  0.460G1N503i + 0.270GND500w + 0.270GND500j                 : ARR( 0.434E-13,  -900., 0.0);
+{ 27542} G2N505A +PERO2              =  0.400G1N503i + 0.300GND500w + 0.300GND500j                 : ARR( 0.162E-13, -1400., 0.0);
+{ 27543} G2N505A +PERO3              =  0.460G1N503i + 0.270GND500w + 0.270GND500j                 : ARR( 0.488E-13, -1250., 0.0);
+{ 27544} G2N505A +PERO5              =  0.460G1N503i + 0.270GND500w + 0.270GND500j                 : ARR( 0.183E-11,   450., 0.0);
+{ 27545} G2N505A +PERO6              =  0.300G1N503i + 0.350GND500w + 0.350GND500j                 : ARR( 0.168E-13, -1300., 0.0);
+{ 27546} G2N505A +PERO9              =  0.650G1N503i + 0.350GND500j                                : ARR( 0.100E-10,     0., 0.0);
+{ 27547} G1H507D                     =       GD02000 +      GND3005 +      GHO                     : ARR( 0.200E+15,  4573., 0.0);
+{ 27548} GHH501Y +GHO                =       GHH502g +      GHO2                                   : ARR( 0.123E-10,     0., 0.0);
+{ 27549} GHH501Y +GHO                =       GHK500y +      GHO                                    : ARR( 0.491E-10,     0., 0.0);
+{ 27550} GHH501Y +GHO                =       GHD500D +      GHO                                    : ARR( 0.192E-10,     0., 0.0);
+{ 27551} GHH501Y+HV               =       G1H502e +      GHO                                    :  0.100E+01*SUN;
+{ 27552} GHH501Y+HV               =       G1H502h +      GHO                                    :  0.100E+01*SUN;
+{ 27553} GHD500s +GHO                =       G2H502o                                               : ARR( 0.366E-11,     0., 0.0);
+{ 27554} GHD500s +GHO                =       GDK500E +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 27555} GHD500s +GHO                =       G3H4000 +      GCO                                    : ARR( 0.127E-10,     0., 0.0);
+{ 27556} GHD500s +GHO                =       G2D500i                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 27557} GHD500s +GNO3               =       G3H4000 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 27558} GHD500s+HV               =       G1D500c +      GHO                                    :  0.100E+01*SUN;
+{ 27559} GHD500s+HV               =       G3H4000 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 27560} GHD500s+HV               =       GHD4005 +      GCO                                    :  0.100E+01*SUN;
+{ 27561} GHD500s+HV               =       GH03000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 27562} G2H502o +GNO                =       G1H507E +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 27563} G2H502o +GNO                =       GHN504g                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 27564} G2H502o +GHO2               =       GHH502h                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 27565} G2H502o +GNO3               =       G1H507E +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 27566} G2H502o +MEPERO             =  0.340G1H507E + 0.330GHD5019 + 0.330GHD500z                 : ARR( 0.565E-13,  -845., 0.0);
+{ 27567} G2H502o +PERO1              =  0.460G1H507E + 0.270GHD5019 + 0.270GHD500z                 : ARR( 0.434E-13,  -900., 0.0);
+{ 27568} G2H502o +PERO2              =  0.400G1H507E + 0.300GHD5019 + 0.300GHD500z                 : ARR( 0.162E-13, -1400., 0.0);
+{ 27569} G2H502o +PERO3              =  0.460G1H507E + 0.270GHD5019 + 0.270GHD500z                 : ARR( 0.488E-13, -1250., 0.0);
+{ 27570} G2H502o +PERO5              =  0.460G1H507E + 0.270GHD5019 + 0.270GHD500z                 : ARR( 0.183E-11,   450., 0.0);
+{ 27571} G2H502o +PERO6              =  0.300G1H507E + 0.350GHD5019 + 0.350GHD500z                 : ARR( 0.168E-13, -1300., 0.0);
+{ 27572} G2H502o +PERO9              =  0.650G1H507E + 0.350GHD500z                                : ARR( 0.100E-10,     0., 0.0);
+{ 27573} G2D500i +GNO                =       G1D500c +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 27574} G2D500i +GNO                =       GND500R                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 27575} G2D500i +GHO2               =       GHD500s                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 27576} G2D500i +GNO3               =       G1D500c +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 27577} G2D500i +MEPERO             =  0.340G1D500c + 0.330GDK500O + 0.330GDK500E                 : ARR( 0.565E-13,  -845., 0.0);
+{ 27578} G2D500i +PERO1              =  0.460G1D500c + 0.270GDK500O + 0.270GDK500E                 : ARR( 0.434E-13,  -900., 0.0);
+{ 27579} G2D500i +PERO2              =  0.400G1D500c + 0.300GDK500O + 0.300GDK500E                 : ARR( 0.162E-13, -1400., 0.0);
+{ 27580} G2D500i +PERO3              =  0.460G1D500c + 0.270GDK500O + 0.270GDK500E                 : ARR( 0.488E-13, -1250., 0.0);
+{ 27581} G2D500i +PERO5              =  0.460G1D500c + 0.270GDK500O + 0.270GDK500E                 : ARR( 0.183E-11,   450., 0.0);
+{ 27582} G2D500i +PERO6              =  0.300G1D500c + 0.350GDK500O + 0.350GDK500E                 : ARR( 0.168E-13, -1300., 0.0);
+{ 27583} G2D500i +PERO9              =  0.650G1D500c + 0.350GDK500E                                : ARR( 0.100E-10,     0., 0.0);
+{ 27584} G1H507E                     =       GD02000 +      GDD3002 +      GHO                     : ARR( 0.200E+15,  4301., 0.0);
+{ 27585} GHH501Z +GHO                =       GHK500Y +      GHO                                    : ARR( 0.114E-09,     0., 0.0);
+{ 27586} GHH501Z +GHO                =       GHK500j +      GHO                                    : ARR( 0.270E-10,     0., 0.0);
+{ 27587} GHH501Z+HV               =       G1H502i +      GHO                                    :  0.100E+01*SUN;
+{ 27588} GHH501Z+HV               =       G1H507B +      GHO                                    :  0.100E+01*SUN;
+{ 27589} GHH501Z+HV               =       G3H400L +      GCH2O   +      GHO2                    :  0.100E+01*SUN;
+{ 27590} GHK500k +GHO                =       GHK500Y +      GHO2                                   : ARR( 0.280E-10,     0., 0.0);
+{ 27591} GHK500k +GHO                =       GKK500D +      GHO                                    : ARR( 0.264E-10,     0., 0.0);
+{ 27592} GHK500k +GHO                =       G2K500p                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 27593} GHK500k+HV               =       G1K5017 +      GHO                                    :  0.100E+01*SUN;
+{ 27594} GHK500k+HV               =       G3H400A +      GCH2O   +      GHO2                    :  0.100E+01*SUN;
+{ 27595} G2K500p +GNO                =       G1K5017 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 27596} G2K500p +GNO                =       GNK5013                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 27597} G2K500p +GHO2               =       GHK500k                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 27598} G2K500p +GNO3               =       G1K5017 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 27599} G2K500p +MEPERO             =  0.340G1K5017 + 0.330GKO500J + 0.330GKK500D                 : ARR( 0.565E-13,  -845., 0.0);
+{ 27600} G2K500p +PERO1              =  0.460G1K5017 + 0.270GKO500J + 0.270GKK500D                 : ARR( 0.434E-13,  -900., 0.0);
+{ 27601} G2K500p +PERO2              =  0.400G1K5017 + 0.300GKO500J + 0.300GKK500D                 : ARR( 0.162E-13, -1400., 0.0);
+{ 27602} G2K500p +PERO3              =  0.460G1K5017 + 0.270GKO500J + 0.270GKK500D                 : ARR( 0.488E-13, -1250., 0.0);
+{ 27603} G2K500p +PERO5              =  0.460G1K5017 + 0.270GKO500J + 0.270GKK500D                 : ARR( 0.183E-11,   450., 0.0);
+{ 27604} G2K500p +PERO6              =  0.300G1K5017 + 0.350GKO500J + 0.350GKK500D                 : ARR( 0.168E-13, -1300., 0.0);
+{ 27605} G2K500p +PERO9              =  0.650G1K5017 + 0.350GKK500D                                : ARR( 0.100E-10,     0., 0.0);
+{ 27606} GHD500t +GHO                =       GDK500P +      GHO                                    : ARR( 0.868E-10,     0., 0.0);
+{ 27607} GHD500t +GHO                =       G3H501h                                               : ARR( 0.226E-10,     0., 0.0);
+{ 27608} GHD500t +GNO3               =       G3H501h +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 27609} GHD500t+HV               =       G3K2001 +      GDD3000 +      GHO                     :  0.100E+01*SUN;
+{ 27610} GHD500t+HV               =       G1D500Y +      GHO                                    :  0.100E+01*SUN;
+{ 27611} GHD500t+HV               =       G2H400v +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 27612} G3H501h +GHO2               =  0.800GGH501y + 0.200GAH5027 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 27613} G3H501h +GNO                =       G2H400v +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 27614} G3H501h +GNO2               =       GPH5024                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 27615} G3H501h +GNO3               =       G2H400v +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 27616} G3H501h +MEPERO             =  0.685G2H400v + 0.315GAH5027 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 27617} G3H501h +PERO1              =  0.800G2H400v + 0.200GAH5027 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 27618} G3H501h +PERO2              =  0.750G2H400v + 0.250GAH5027 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 27619} G3H501h +PERO3              =  0.800G2H400v + 0.200GAH5027 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 27620} G3H501h +PERO5              =  0.650G2H400v + 0.350GAH5027 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 27621} G3H501h +PERO6              =  0.650G2H400v + 0.350GAH5027 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 27622} G3H501h +PERO9              =       G2H400v +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 27623} G2H400v +GNO                =       G1H4019 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 27624} G2H400v +GNO                =       GHN400l                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 27625} G2H400v +GHO2               =       GHH400p                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 27626} G2H400v +GNO3               =       G1H4019 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 27627} G2H400v +MEPERO             =  0.480G1H4019 + 0.260GHK4009 + 0.260GHD400G                 : ARR( 0.164E-12,  -795., 0.0);
+{ 27628} G2H400v +PERO1              =  0.600G1H4019 + 0.200GHK4009 + 0.200GHD400G                 : ARR( 0.126E-12,  -850., 0.0);
+{ 27629} G2H400v +PERO2              =  0.560G1H4019 + 0.220GHK4009 + 0.220GHD400G                 : ARR( 0.471E-13, -1350., 0.0);
+{ 27630} G2H400v +PERO3              =  0.600G1H4019 + 0.200GHK4009 + 0.200GHD400G                 : ARR( 0.142E-12, -1200., 0.0);
+{ 27631} G2H400v +PERO5              =  0.600G1H4019 + 0.200GHK4009 + 0.200GHD400G                 : ARR( 0.533E-11,   500., 0.0);
+{ 27632} G2H400v +PERO6              =  0.460G1H4019 + 0.270GHK4009 + 0.270GHD400G                 : ARR( 0.488E-13, -1250., 0.0);
+{ 27633} G2H400v +PERO9              =  0.800G1H4019 + 0.200GHD400G                                : ARR( 0.100E-10,     0., 0.0);
+{ 27634} G1H4019 +OXYGEN             =       GHD400G +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 27635} G1H4019                     =       GHD400M +      GHO2                                   : ARR( 0.160E+12,  4515., 0.0);
+{ 27636} G1H4019                     =       GDK3001 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5784., 0.0);
+{ 27637} GDK500Q +GHO                =       GDD5009 +      GHO2                                   : ARR( 0.247E-11,     0., 0.0);
+{ 27638} GDK500Q +GHO                =       GDK500P +      GHO2                                   : ARR( 0.200E-10,     0., 0.0);
+{ 27639} GDK500Q +GHO                =       G2D500j                                               : ARR( 0.275E-11,     0., 0.0);
+{ 27640} GDK500Q +GHO                =       G3K500Y                                               : ARR( 0.209E-10,     0., 0.0);
+{ 27641} GDK500Q +GNO3               =       G3K500Y +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 27642} GDK500Q+HV               =       G3K2001 +      GDD3000 +      GHO2                    :  0.100E+01*SUN;
+{ 27643} GDK500Q+HV               =       G2K400B +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 27644} G2D500j +GNO                =       G1D501B +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 27645} G2D500j +GNO                =       GND501E                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 27646} G2D500j +GHO2               =       GHD501G                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 27647} G2D500j +GNO3               =       G1D501B +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 27648} G2D500j +MEPERO             =  0.340G1D501B + 0.330GDK500X + 0.330GDK500a                 : ARR( 0.565E-13,  -845., 0.0);
+{ 27649} G2D500j +PERO1              =  0.460G1D501B + 0.270GDK500X + 0.270GDK500a                 : ARR( 0.434E-13,  -900., 0.0);
+{ 27650} G2D500j +PERO2              =  0.400G1D501B + 0.300GDK500X + 0.300GDK500a                 : ARR( 0.162E-13, -1400., 0.0);
+{ 27651} G2D500j +PERO3              =  0.460G1D501B + 0.270GDK500X + 0.270GDK500a                 : ARR( 0.488E-13, -1250., 0.0);
+{ 27652} G2D500j +PERO5              =  0.460G1D501B + 0.270GDK500X + 0.270GDK500a                 : ARR( 0.183E-11,   450., 0.0);
+{ 27653} G2D500j +PERO6              =  0.300G1D501B + 0.350GDK500X + 0.350GDK500a                 : ARR( 0.168E-13, -1300., 0.0);
+{ 27654} G2D500j +PERO9              =  0.650G1D501B + 0.350GDK500a                                : ARR( 0.100E-10,     0., 0.0);
+{ 27655} G3K500Y +GHO2               =  0.800GGK500R + 0.200GAK500Q + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 27656} G3K500Y +GNO                =       G2K400B +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 27657} G3K500Y +GNO2               =       GPK500R                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 27658} G3K500Y +GNO3               =       G2K400B +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 27659} G3K500Y +MEPERO             =  0.685G2K400B + 0.315GAK500Q + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 27660} G3K500Y +PERO1              =  0.800G2K400B + 0.200GAK500Q + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 27661} G3K500Y +PERO2              =  0.750G2K400B + 0.250GAK500Q + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 27662} G3K500Y +PERO3              =  0.800G2K400B + 0.200GAK500Q + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 27663} G3K500Y +PERO5              =  0.650G2K400B + 0.350GAK500Q + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 27664} G3K500Y +PERO6              =  0.650G2K400B + 0.350GAK500Q + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 27665} G3K500Y +PERO9              =       G2K400B +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 27666} G1D501B                     =       GDK3001 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  5180., 0.0);
+{ 27667} G1D501B                     =       GDK4006 +      GCO     +      GHO2                    : ARR( 0.200E+15,  4861., 0.0);
+{ 27668} GGK5007 +GHO                =       GGD5009 +      GHO2                                   : ARR( 0.249E-11,     0., 0.0);
+{ 27669} GGK5007 +GHO                =       G2G501D                                               : ARR( 0.874E-12,     0., 0.0);
+{ 27670} GGK5007 +GHO                =       G2G501E                                               : ARR( 0.277E-11,     0., 0.0);
+{ 27671} GGK5007 +GHO                =       G3K500C                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 27672} GGK5007+HV               =       G3K2001 +      G2G3000                                :  0.100E+01*SUN;
+{ 27673} GGK5007+HV               =       G2K4003 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 27674} G2G501D +GNO                =       G1G501S +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 27675} G2G501D +GNO                =       GGN501Y                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 27676} G2G501D +GHO2               =       GGH501y                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 27677} G2G501D +GNO3               =       G1G501S +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 27678} G2G501D +MEPERO             =  0.340G1G501S + 0.330GGK500R + 0.330GGK500Q                 : ARR( 0.565E-13,  -845., 0.0);
+{ 27679} G2G501D +PERO1              =  0.460G1G501S + 0.270GGK500R + 0.270GGK500Q                 : ARR( 0.434E-13,  -900., 0.0);
+{ 27680} G2G501D +PERO2              =  0.400G1G501S + 0.300GGK500R + 0.300GGK500Q                 : ARR( 0.162E-13, -1400., 0.0);
+{ 27681} G2G501D +PERO3              =  0.460G1G501S + 0.270GGK500R + 0.270GGK500Q                 : ARR( 0.488E-13, -1250., 0.0);
+{ 27682} G2G501D +PERO5              =  0.460G1G501S + 0.270GGK500R + 0.270GGK500Q                 : ARR( 0.183E-11,   450., 0.0);
+{ 27683} G2G501D +PERO6              =  0.300G1G501S + 0.350GGK500R + 0.350GGK500Q                 : ARR( 0.168E-13, -1300., 0.0);
+{ 27684} G2G501D +PERO9              =  0.650G1G501S + 0.350GGK500Q                                : ARR( 0.100E-10,     0., 0.0);
+{ 27685} G2G501E +GNO                =       G1G501T +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 27686} G2G501E +GNO                =       GGN5016                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 27687} G2G501E +GHO2               =       GGH501P                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 27688} G2G501E +GNO3               =       G1G501T +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 27689} G2G501E +MEPERO             =  0.340G1G501T + 0.330GGK500L + 0.330GGK500O                 : ARR( 0.565E-13,  -845., 0.0);
+{ 27690} G2G501E +PERO1              =  0.460G1G501T + 0.270GGK500L + 0.270GGK500O                 : ARR( 0.434E-13,  -900., 0.0);
+{ 27691} G2G501E +PERO2              =  0.400G1G501T + 0.300GGK500L + 0.300GGK500O                 : ARR( 0.162E-13, -1400., 0.0);
+{ 27692} G2G501E +PERO3              =  0.460G1G501T + 0.270GGK500L + 0.270GGK500O                 : ARR( 0.488E-13, -1250., 0.0);
+{ 27693} G2G501E +PERO5              =  0.460G1G501T + 0.270GGK500L + 0.270GGK500O                 : ARR( 0.183E-11,   450., 0.0);
+{ 27694} G2G501E +PERO6              =  0.300G1G501T + 0.350GGK500L + 0.350GGK500O                 : ARR( 0.168E-13, -1300., 0.0);
+{ 27695} G2G501E +PERO9              =  0.650G1G501T + 0.350GGK500O                                : ARR( 0.100E-10,     0., 0.0);
+{ 27696} G1G501S                     =       G3K2001 +      GGD3000                                : ARR( 0.200E+15,  2372., 0.0);
+{ 27697} G1G501T                     =       GDK4001 +      GCO     +      GHO2                    : ARR( 0.200E+15,  4566., 0.0);
+{ 27698} GAK5007 +GHO                =       GAD500B +      GHO2                                   : ARR( 0.251E-11,     0., 0.0);
+{ 27699} GAK5007 +GHO                =       G2A501P                                               : ARR( 0.882E-12,     0., 0.0);
+{ 27700} GAK5007 +GHO                =       G2A501Q                                               : ARR( 0.207E-11,     0., 0.0);
+{ 27701} GAK5007 +GHO                =       G2K4003 +      GCO2                                   : ARR( 0.532E-12,     0., 0.0);
+{ 27702} GAK5007+HV               =       G3K2001 +      G2A3000                                :  0.100E+01*SUN;
+{ 27703} G2A501P +GNO                =       G1A501d +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 27704} G2A501P +GNO                =       GAN501Y                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 27705} G2A501P +GHO2               =       GAH5027                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 27706} G2A501P +GNO3               =       G1A501d +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 27707} G2A501P +MEPERO             =  0.340G1A501d + 0.330GAK500Q + 0.330GAK500P                 : ARR( 0.565E-13,  -845., 0.0);
+{ 27708} G2A501P +PERO1              =  0.460G1A501d + 0.270GAK500Q + 0.270GAK500P                 : ARR( 0.434E-13,  -900., 0.0);
+{ 27709} G2A501P +PERO2              =  0.400G1A501d + 0.300GAK500Q + 0.300GAK500P                 : ARR( 0.162E-13, -1400., 0.0);
+{ 27710} G2A501P +PERO3              =  0.460G1A501d + 0.270GAK500Q + 0.270GAK500P                 : ARR( 0.488E-13, -1250., 0.0);
+{ 27711} G2A501P +PERO5              =  0.460G1A501d + 0.270GAK500Q + 0.270GAK500P                 : ARR( 0.183E-11,   450., 0.0);
+{ 27712} G2A501P +PERO6              =  0.300G1A501d + 0.350GAK500Q + 0.350GAK500P                 : ARR( 0.168E-13, -1300., 0.0);
+{ 27713} G2A501P +PERO9              =  0.650G1A501d + 0.350GAK500P                                : ARR( 0.100E-10,     0., 0.0);
+{ 27714} G2A501Q +GNO                =       G1A501e +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 27715} G2A501Q +GNO                =       GAN501H                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 27716} G2A501Q +GHO2               =       GAH501a                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 27717} G2A501Q +GNO3               =       G1A501e +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 27718} G2A501Q +MEPERO             =  0.340G1A501e + 0.330GAK500K + 0.330GAK500O                 : ARR( 0.565E-13,  -845., 0.0);
+{ 27719} G2A501Q +PERO1              =  0.460G1A501e + 0.270GAK500K + 0.270GAK500O                 : ARR( 0.434E-13,  -900., 0.0);
+{ 27720} G2A501Q +PERO2              =  0.400G1A501e + 0.300GAK500K + 0.300GAK500O                 : ARR( 0.162E-13, -1400., 0.0);
+{ 27721} G2A501Q +PERO3              =  0.460G1A501e + 0.270GAK500K + 0.270GAK500O                 : ARR( 0.488E-13, -1250., 0.0);
+{ 27722} G2A501Q +PERO5              =  0.460G1A501e + 0.270GAK500K + 0.270GAK500O                 : ARR( 0.183E-11,   450., 0.0);
+{ 27723} G2A501Q +PERO6              =  0.300G1A501e + 0.350GAK500K + 0.350GAK500O                 : ARR( 0.168E-13, -1300., 0.0);
+{ 27724} G2A501Q +PERO9              =  0.650G1A501e + 0.350GAK500O                                : ARR( 0.100E-10,     0., 0.0);
+{ 27725} G1A501d                     =       G3K2001 +      GAD3000                                : ARR( 0.200E+15,  2372., 0.0);
+{ 27726} G1A501e                     =       GDK4001 +      GCO     +      GHO                     : ARR( 0.200E+15,  4535., 0.0);
+{ 27727} GPK5007                     =       G3K500C +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 27728} GPK5007 +GHO                =       GPD5009 +      GHO2                                   : ARR( 0.251E-11,     0., 0.0);
+{ 27729} GPK5007 +GHO                =       G2P501R                                               : ARR( 0.882E-12,     0., 0.0);
+{ 27730} GPK5007 +GHO                =       G2P501S                                               : ARR( 0.280E-11,     0., 0.0);
+{ 27731} GPK5007+HV               =       G3K2001 +      G2P3000                                :  0.100E+01*SUN;
+{ 27732} GPK5007+HV               =       G3K500C +      GNO2                                   :  0.100E+01*SUN;
+{ 27733} G2P501R +GNO                =       G1P501f +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 27734} G2P501R +GNO                =       GPN501a                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 27735} G2P501R +GHO2               =       GPH5024                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 27736} G2P501R +GNO3               =       G1P501f +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 27737} G2P501R +MEPERO             =  0.340G1P501f + 0.330GPK500R + 0.330GPK500Q                 : ARR( 0.565E-13,  -845., 0.0);
+{ 27738} G2P501R +PERO1              =  0.460G1P501f + 0.270GPK500R + 0.270GPK500Q                 : ARR( 0.434E-13,  -900., 0.0);
+{ 27739} G2P501R +PERO2              =  0.400G1P501f + 0.300GPK500R + 0.300GPK500Q                 : ARR( 0.162E-13, -1400., 0.0);
+{ 27740} G2P501R +PERO3              =  0.460G1P501f + 0.270GPK500R + 0.270GPK500Q                 : ARR( 0.488E-13, -1250., 0.0);
+{ 27741} G2P501R +PERO5              =  0.460G1P501f + 0.270GPK500R + 0.270GPK500Q                 : ARR( 0.183E-11,   450., 0.0);
+{ 27742} G2P501R +PERO6              =  0.300G1P501f + 0.350GPK500R + 0.350GPK500Q                 : ARR( 0.168E-13, -1300., 0.0);
+{ 27743} G2P501R +PERO9              =  0.650G1P501f + 0.350GPK500Q                                : ARR( 0.100E-10,     0., 0.0);
+{ 27744} G2P501S +GNO                =       G1P501g +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 27745} G2P501S +GNO                =       GPN501L                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 27746} G2P501S +GHO2               =       GPH501Z                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 27747} G2P501S +GNO3               =       G1P501g +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 27748} G2P501S +MEPERO             =  0.340G1P501g + 0.330GPK500L + 0.330GPK500O                 : ARR( 0.565E-13,  -845., 0.0);
+{ 27749} G2P501S +PERO1              =  0.460G1P501g + 0.270GPK500L + 0.270GPK500O                 : ARR( 0.434E-13,  -900., 0.0);
+{ 27750} G2P501S +PERO2              =  0.400G1P501g + 0.300GPK500L + 0.300GPK500O                 : ARR( 0.162E-13, -1400., 0.0);
+{ 27751} G2P501S +PERO3              =  0.460G1P501g + 0.270GPK500L + 0.270GPK500O                 : ARR( 0.488E-13, -1250., 0.0);
+{ 27752} G2P501S +PERO5              =  0.460G1P501g + 0.270GPK500L + 0.270GPK500O                 : ARR( 0.183E-11,   450., 0.0);
+{ 27753} G2P501S +PERO6              =  0.300G1P501g + 0.350GPK500L + 0.350GPK500O                 : ARR( 0.168E-13, -1300., 0.0);
+{ 27754} G2P501S +PERO9              =  0.650G1P501g + 0.350GPK500O                                : ARR( 0.100E-10,     0., 0.0);
+{ 27755} G1P501f                     =       G3K2001 +      GPD3000                                : ARR( 0.200E+15,  2372., 0.0);
+{ 27756} G1P501g                     =       GDK4001 +      GCO     +      GNO2                    : ARR( 0.200E+15,  4566., 0.0);
+{ 27757} GGH500K +GHO                =       GGH500t +      GHO2                                   : ARR( 0.409E-11,     0., 0.0);
+{ 27758} GGH500K +GHO                =       GGH501y +      GHO2                                   : ARR( 0.105E-10,     0., 0.0);
+{ 27759} GGH500K +GHO                =       GGK5008 +      GHO                                    : ARR( 0.420E-10,     0., 0.0);
+{ 27760} GGH500K +GHO                =       G2G500C                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 27761} GGH500K +GHO                =       G3H500I                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 27762} GGH500K+HV               =       G1G500D +      GHO                                    :  0.100E+01*SUN;
+{ 27763} GGH500K+HV               =       G2H400N +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 27764} GAH500K +GHO                =       GAH500z +      GHO2                                   : ARR( 0.412E-11,     0., 0.0);
+{ 27765} GAH500K +GHO                =       GAH5027 +      GHO2                                   : ARR( 0.106E-10,     0., 0.0);
+{ 27766} GAH500K +GHO                =       GAK5008 +      GHO                                    : ARR( 0.422E-10,     0., 0.0);
+{ 27767} GAH500K +GHO                =       G2A500D                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 27768} GAH500K+HV               =       G1A500E +      GHO                                    :  0.100E+01*SUN;
+{ 27769} GPH500K                     =       G3H500I +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 27770} GPH500K +GHO                =       GPH5011 +      GHO2                                   : ARR( 0.410E-11,     0., 0.0);
+{ 27771} GPH500K +GHO                =       GPH5024 +      GHO2                                   : ARR( 0.105E-10,     0., 0.0);
+{ 27772} GPH500K +GHO                =       GPK5008 +      GHO                                    : ARR( 0.420E-10,     0., 0.0);
+{ 27773} GPH500K +GHO                =       G2P500D                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 27774} GPH500K+HV               =       G1P500E +      GHO                                    :  0.100E+01*SUN;
+{ 27775} GPH500K+HV               =       G3H500I +      GNO2                                   :  0.100E+01*SUN;
+{ 27776} GHN400b +GHO                =       GHN400z +      GHO2                                   : ARR( 0.407E-11,     0., 0.0);
+{ 27777} GHN400b +GHO                =       GHN400l +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 27778} GHN400b +GHO                =       GNK4006 +      GHO                                    : ARR( 0.835E-11,     0., 0.0);
+{ 27779} GHN400b +GHO                =       G2N400z                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 27780} GHN400b+HV               =       G1N4017 +      GHO                                    :  0.100E+01*SUN;
+{ 27781} GHN400b+HV               =       G1H400P +      GNO2                                   :  0.100E+01*SUN;
+{ 27782} G2N400z +GNO                =       G1N4017 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 27783} G2N400z +GNO                =       GNN400K                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 27784} G2N400z +GHO2               =       GHN400b                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 27785} G2N400z +GNO3               =       G1N4017 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 27786} G2N400z +MEPERO             =  0.340G1N4017 + 0.330GNO400B + 0.330GNK4006                 : ARR( 0.565E-13,  -845., 0.0);
+{ 27787} G2N400z +PERO1              =  0.460G1N4017 + 0.270GNO400B + 0.270GNK4006                 : ARR( 0.434E-13,  -900., 0.0);
+{ 27788} G2N400z +PERO2              =  0.400G1N4017 + 0.300GNO400B + 0.300GNK4006                 : ARR( 0.162E-13, -1400., 0.0);
+{ 27789} G2N400z +PERO3              =  0.460G1N4017 + 0.270GNO400B + 0.270GNK4006                 : ARR( 0.488E-13, -1250., 0.0);
+{ 27790} G2N400z +PERO5              =  0.460G1N4017 + 0.270GNO400B + 0.270GNK4006                 : ARR( 0.183E-11,   450., 0.0);
+{ 27791} G2N400z +PERO6              =  0.300G1N4017 + 0.350GNO400B + 0.350GNK4006                 : ARR( 0.168E-13, -1300., 0.0);
+{ 27792} G2N400z +PERO9              =  0.650G1N4017 + 0.350GNK4006                                : ARR( 0.100E-10,     0., 0.0);
+{ 27793} GHH400K +GHO                =       GHH400d +      GHO2                                   : ARR( 0.444E-11,     0., 0.0);
+{ 27794} GHH400K +GHO                =       GHH400p +      GHO2                                   : ARR( 0.114E-10,     0., 0.0);
+{ 27795} GHH400K +GHO                =       GHK4006 +      GHO                                    : ARR( 0.455E-10,     0., 0.0);
+{ 27796} GHH400K +GHO                =       GHD400A +      GHO                                    : ARR( 0.178E-10,     0., 0.0);
+{ 27797} GHH400K+HV               =       G1H4018 +      GHO                                    :  0.100E+01*SUN;
+{ 27798} GHH400K+HV               =       G1H400P +      GHO                                    :  0.100E+01*SUN;
+{ 27799} GGO5008 +GHO                =       GGD5007 +      GHO2                                   : ARR( 0.420E-11,     0., 0.0);
+{ 27800} GGO5008 +GHO                =       GGK500R +      GHO2                                   : ARR( 0.108E-10,     0., 0.0);
+{ 27801} GGO5008 +GHO                =       GGK5008 +      GHO2                                   : ARR( 0.108E-10,     0., 0.0);
+{ 27802} GGO5008 +GHO                =       G3K500D                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 27803} GGO5008+HV               =       G2O400B +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 27804} GAO5008 +GHO                =       GAD5009 +      GHO2                                   : ARR( 0.428E-11,     0., 0.0);
+{ 27805} GAO5008 +GHO                =       GAK500Q +      GHO2                                   : ARR( 0.110E-10,     0., 0.0);
+{ 27806} GAO5008 +GHO                =       GAK5008 +      GHO2                                   : ARR( 0.110E-10,     0., 0.0);
+{ 27807} GPO5008                     =       G3K500D +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 27808} GPO5008 +GHO                =       GPD5007 +      GHO2                                   : ARR( 0.423E-11,     0., 0.0);
+{ 27809} GPO5008 +GHO                =       GPK500R +      GHO2                                   : ARR( 0.108E-10,     0., 0.0);
+{ 27810} GPO5008 +GHO                =       GPK5008 +      GHO2                                   : ARR( 0.108E-10,     0., 0.0);
+{ 27811} GPO5008+HV               =       G3K500D +      GNO2                                   :  0.100E+01*SUN;
+{ 27812} GGK5008 +GHO                =       GGD5006 +      GHO2                                   : ARR( 0.132E-10,     0., 0.0);
+{ 27813} GGK5008 +GHO                =       GGK500Q +      GHO2                                   : ARR( 0.651E-11,     0., 0.0);
+{ 27814} GGK5008 +GHO                =       G3K500E                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 27815} GGK5008+HV               =       G3K3003 +      G2G2000                                :  0.100E+01*SUN;
+{ 27816} GGK5008+HV               =       G2K4004 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 27817} GAK5008 +GHO                =       GAD5006 +      GHO2                                   : ARR( 0.135E-10,     0., 0.0);
+{ 27818} GAK5008 +GHO                =       GAK500P +      GHO2                                   : ARR( 0.668E-11,     0., 0.0);
+{ 27819} GAK5008+HV               =       G3K3003 +      G2A2000                                :  0.100E+01*SUN;
+{ 27820} GPK5008                     =       G3K500E +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 27821} GPK5008 +GHO                =       GPD5006 +      GHO2                                   : ARR( 0.133E-10,     0., 0.0);
+{ 27822} GPK5008 +GHO                =       GPK500Q +      GHO2                                   : ARR( 0.655E-11,     0., 0.0);
+{ 27823} GPK5008+HV               =       G3K3003 +      G2P2000                                :  0.100E+01*SUN;
+{ 27824} GPK5008+HV               =       G3K500E +      GNO2                                   :  0.100E+01*SUN;
+{ 27825} GNK4006 +GHO                =       GND400E +      GHO2                                   : ARR( 0.130E-10,     0., 0.0);
+{ 27826} GNK4006 +GHO                =       GNK400C +      GHO2                                   : ARR( 0.638E-11,     0., 0.0);
+{ 27827} GNK4006+HV               =       G3K3003 +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{ 27828} GNK4006+HV               =       G1K4004 +      GNO2                                   :  0.100E+01*SUN;
+{ 27829} GHK4006 +GHO                =       GHD400J +      GHO2                                   : ARR( 0.129E-10,     0., 0.0);
+{ 27830} GHK4006 +GHO                =       GHK400C +      GHO2                                   : ARR( 0.634E-11,     0., 0.0);
+{ 27831} GHK4006 +GHO                =       GDK4007 +      GHO                                    : ARR( 0.989E-11,     0., 0.0);
+{ 27832} GHK4006 +GHO                =       G2K4004                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 27833} GHK4006+HV               =       G3K3003 +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 27834} GHK4006+HV               =       G1K4004 +      GHO                                    :  0.100E+01*SUN;
+{ 27835} GDK4007 +GHO                =       GDD4004 +      GHO2                                   : ARR( 0.129E-10,     0., 0.0);
+{ 27836} GDK4007 +GHO                =       GDK4009 +      GHO2                                   : ARR( 0.634E-11,     0., 0.0);
+{ 27837} GDK4007 +GHO                =       G3K3003 +      GCO                                    : ARR( 0.128E-10,     0., 0.0);
+{ 27838} GDK4007 +GNO3               =       G3K3003 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 27839} GDK4007+HV               =       G3K3003 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 27840} GDK4007+HV               =       GDO3002 +      GCO                                    :  0.100E+01*SUN;
+{ 27841} GDK4007+HV               =       GOO2000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 27842} GNK5014 +GHO                =       GND501W +      GHO2                                   : ARR( 0.495E-11,     0., 0.0);
+{ 27843} GNK5014 +GHO                =       G1N505e                                               : ARR( 0.424E-17,    85., 2.0);
+{ 27844} GNK5014+HV               =       G3K2001 +      GDK3001 +      GNO2                    :  0.100E+01*SUN;
+{ 27845} GNK5014+HV               =       G1K500j +      GNO2                                   :  0.100E+01*SUN;
+{ 27846} GNK5014+HV               =       G3N400Q +      GCH2O   +      GHO2                    :  0.100E+01*SUN;
+{ 27847} GHK500l +GHO                =       GHD5014 +      GHO2                                   : ARR( 0.496E-11,     0., 0.0);
+{ 27848} GHK500l +GHO                =       GKK500F +      GHO                                    : ARR( 0.155E-10,     0., 0.0);
+{ 27849} GHK500l +GHO                =       G2K500a                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 27850} GHK500l+HV               =       G3K2001 +      GDK3001 +      GHO                     :  0.100E+01*SUN;
+{ 27851} GHK500l+HV               =       G1K500j +      GHO                                    :  0.100E+01*SUN;
+{ 27852} GHK500l+HV               =       G3H400Q +      GCH2O   +      GHO2                    :  0.100E+01*SUN;
+{ 27853} GKK500E +GHO                =       GDK500a +      GHO2                                   : ARR( 0.514E-11,     0., 0.0);
+{ 27854} GKK500E +GHO                =       GKK500F +      GHO2                                   : ARR( 0.402E-11,     0., 0.0);
+{ 27855} GKK500E+HV               =       G3K2001 +      GDK3001 +      GHO2                    :  0.100E+01*SUN;
+{ 27856} GKK500E+HV               =       G3K400C +      GCH2O   +      GHO2                    :  0.100E+01*SUN;
+{ 27857} GKK500F +GHO                =       GDK500c +      GHO2                                   : ARR( 0.490E-11,     0., 0.0);
+{ 27858} GKK500F +GHO                =       G1K5014                                               : ARR( 0.420E-17,    85., 2.0);
+{ 27859} GKK500F+HV               =  2.000G3K2001 +      GCO                                    :  0.200E+01*SUN;
+{ 27860} GHN504E +GHO                =       GHN505K +      GHO2                                   : ARR( 0.848E-12,     0., 0.0);
+{ 27861} GHN504E +GHO                =       GNK5016 +      GHO                                    : ARR( 0.530E-11,     0., 0.0);
+{ 27862} GHN504E +GHO                =       GHN505L +      GHO2                                   : ARR( 0.259E-11,     0., 0.0);
+{ 27863} GHN504E +GHO                =       G2N505B                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 27864} GHN504E+HV               =       G1H502k +      GNO2                                   :  0.100E+01*SUN;
+{ 27865} GHN504E+HV               =       G1N505Y +      GHO                                    :  0.100E+01*SUN;
+{ 27866} GHN504E+HV               =       G3H400G +      GCH2O   +      GHO2                    :  0.100E+01*SUN;
+{ 27867} G2N505B +GNO                =       G1N505Y +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 27868} G2N505B +GNO                =       GNN502C                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 27869} G2N505B +GHO2               =       GHN504E                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 27870} G2N505B +GNO3               =       G1N505Y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 27871} G2N505B +MEPERO             =  0.340G1N505Y + 0.330GNK5015 + 0.330GNK5016                 : ARR( 0.565E-13,  -845., 0.0);
+{ 27872} G2N505B +PERO1              =  0.460G1N505Y + 0.270GNK5015 + 0.270GNK5016                 : ARR( 0.434E-13,  -900., 0.0);
+{ 27873} G2N505B +PERO2              =  0.400G1N505Y + 0.300GNK5015 + 0.300GNK5016                 : ARR( 0.162E-13, -1400., 0.0);
+{ 27874} G2N505B +PERO3              =  0.460G1N505Y + 0.270GNK5015 + 0.270GNK5016                 : ARR( 0.488E-13, -1250., 0.0);
+{ 27875} G2N505B +PERO5              =  0.460G1N505Y + 0.270GNK5015 + 0.270GNK5016                 : ARR( 0.183E-11,   450., 0.0);
+{ 27876} G2N505B +PERO6              =  0.300G1N505Y + 0.350GNK5015 + 0.350GNK5016                 : ARR( 0.168E-13, -1300., 0.0);
+{ 27877} G2N505B +PERO9              =  0.650G1N505Y + 0.350GNK5016                                : ARR( 0.100E-10,     0., 0.0);
+{ 27878} GHD400G +GHO                =       GDK4009 +      GHO                                    : ARR( 0.165E-10,     0., 0.0);
+{ 27879} GHD400G +GHO                =       G3H400Q                                               : ARR( 0.709E-10,     0., 0.0);
+{ 27880} GHD400G +GNO3               =       G3H400Q +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 27881} GHD400G+HV               =       G3K2001 +      GDD2000 +      GHO                     :  0.100E+01*SUN;
+{ 27882} GHD400G+HV               =       G1D400J +      GHO                                    :  0.100E+01*SUN;
+{ 27883} GHD400G+HV               =       GDK3001 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 27884} G1D400J                     =       G3K2001 +      GDD2000                                : ARR( 0.200E+15,  4953., 0.0);
+{ 27885} GNK5015 +GHO                =       GND501F +      GHO2                                   : ARR( 0.266E-11,     0., 0.0);
+{ 27886} GNK5015 +GHO                =       GNK5016 +      GHO2                                   : ARR( 0.136E-11,     0., 0.0);
+{ 27887} GNK5015 +GHO                =       GKK500E +      GNO2                                   : ARR( 0.405E-12,     0., 0.0);
+{ 27888} GNK5015 +GHO                =       GND501E +      GHO2                                   : ARR( 0.873E-12,     0., 0.0);
+{ 27889} GNK5015+HV               =       G3K2001 +      GND3004 +      GHO2                    :  0.100E+01*SUN;
+{ 27890} GNK5015+HV               =       G1K500k +      GNO2                                   :  0.100E+01*SUN;
+{ 27891} GNK5016 +GHO                =       GND5016 +      GHO2                                   : ARR( 0.272E-11,     0., 0.0);
+{ 27892} GNK5016 +GHO                =       GND501O +      GHO2                                   : ARR( 0.891E-12,     0., 0.0);
+{ 27893} GNK5016+HV               =       G3K2001 +      G3N3004                                :  0.100E+01*SUN;
+{ 27894} GNK5016+HV               =       G1K500l +      GNO2                                   :  0.100E+01*SUN;
+{ 27895} GHK500m +GHO                =       GHD501N +      GHO2                                   : ARR( 0.247E-11,     0., 0.0);
+{ 27896} GHK500m +GHO                =       GKK500F +      GHO                                    : ARR( 0.253E-10,     0., 0.0);
+{ 27897} GHK500m +GHO                =       GHD501H +      GHO2                                   : ARR( 0.128E-10,     0., 0.0);
+{ 27898} GHK500m +GHO                =       G2K500c                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 27899} GHK500m+HV               =       G3K2001 +      G3H3004                                :  0.100E+01*SUN;
+{ 27900} GHK500m+HV               =       G1K500l +      GHO                                    :  0.100E+01*SUN;
+{ 27901} GKK500G +GHO                =       GDK500Y +      GHO2                                   : ARR( 0.130E-10,     0., 0.0);
+{ 27902} GKK500G +GHO                =       GKK500F +      GHO2                                   : ARR( 0.641E-11,     0., 0.0);
+{ 27903} GKK500G +GHO                =       GDK500b +      GHO2                                   : ARR( 0.250E-11,     0., 0.0);
+{ 27904} GKK500G+HV               =       G3K3003 +      G3K2001                                :  0.100E+01*SUN;
+{ 27905} GGN500P +GHO                =       G3N500O                                               : ARR( 0.203E-11,  -190., 0.0);
+{ 27906} GGN500P+HV               =       G1G500E +      GNO2                                   :  0.100E+01*SUN;
+{ 27907} GGN500P+HV               =       G1G500M +      GNO2                                   :  0.100E+01*SUN;
+{ 27908} GGN500P+HV               =       G2N400Z +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 27909} GGH500L +GHO                =       GGN500Q +      GHO                                    : ARR( 0.692E-11,     0., 0.0);
+{ 27910} GGH500L +GHO                =       G2G500D                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 27911} GGH500L +GHO                =       G3H500L                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 27912} GGH500L+HV               =       G1G500E +      GHO                                    :  0.100E+01*SUN;
+{ 27913} GGH500L+HV               =       G1G501U +      GNO2                                   :  0.100E+01*SUN;
+{ 27914} GGH500L+HV               =       G2H400R +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 27915} G1G501U                     =       GD02000 +      GGD3000 +      GHO                     : ARR( 0.200E+15,  4533., 0.0);
+{ 27916} GGN500Q +GHO                =       G3N500U                                               : ARR( 0.208E-11,  -190., 0.0);
+{ 27917} GGN500Q+HV               =       G3K2000 +      GGD3000 +      GNO2                    :  0.100E+01*SUN;
+{ 27918} GGN500Q+HV               =       G1G500O +      GNO2                                   :  0.100E+01*SUN;
+{ 27919} GGN500Q+HV               =       G2N400c +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 27920} GAH500L +GHO                =       GAN500Q +      GHO                                    : ARR( 0.169E-10,     0., 0.0);
+{ 27921} GAH500L +GHO                =       G2A500E                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 27922} GAH500L+HV               =       G1A501f +      GNO2                                   :  0.100E+01*SUN;
+{ 27923} GAH500L+HV               =       G1A500F +      GHO                                    :  0.100E+01*SUN;
+{ 27924} G1A501f                     =       G2A2000 +      GHD3000                                : ARR( 0.200E+15,  7196., 0.0);
+{ 27925} G1A501f                     =       GAD3000 +      G2H2000                                : ARR( 0.200E+15,  6436., 0.0);
+{ 27926} GAN500P +GHO                =       GAN500Q +      GHO2                                   : ARR( 0.434E-11,     0., 0.0);
+{ 27927} GAN500P +GHO                =       G2A501R                                               : ARR( 0.305E-12,     0., 0.0);
+{ 27928} GAN500P +GHO                =       G2N4008 +      GCO2                                   : ARR( 0.562E-12,     0., 0.0);
+{ 27929} GAN500P+HV               =       G1A501g +      GNO2                                   :  0.100E+01*SUN;
+{ 27930} G2A501R +GNO                =       G1A501h +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 27931} G2A501R +GNO                =       GAN501X                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 27932} G2A501R +GHO2               =       GAH5028                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 27933} G2A501R +GNO3               =       G1A501h +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 27934} G2A501R +MEPERO             =  0.340G1A501h + 0.330GAN500N + 0.330GAN501Y                 : ARR( 0.565E-13,  -845., 0.0);
+{ 27935} G2A501R +PERO1              =  0.460G1A501h + 0.270GAN500N + 0.270GAN501Y                 : ARR( 0.434E-13,  -900., 0.0);
+{ 27936} G2A501R +PERO2              =  0.400G1A501h + 0.300GAN500N + 0.300GAN501Y                 : ARR( 0.162E-13, -1400., 0.0);
+{ 27937} G2A501R +PERO3              =  0.460G1A501h + 0.270GAN500N + 0.270GAN501Y                 : ARR( 0.488E-13, -1250., 0.0);
+{ 27938} G2A501R +PERO5              =  0.460G1A501h + 0.270GAN500N + 0.270GAN501Y                 : ARR( 0.183E-11,   450., 0.0);
+{ 27939} G2A501R +PERO6              =  0.300G1A501h + 0.350GAN500N + 0.350GAN501Y                 : ARR( 0.168E-13, -1300., 0.0);
+{ 27940} G2A501R +PERO9              =  0.650G1A501h + 0.350GAN501Y                                : ARR( 0.100E-10,     0., 0.0);
+{ 27941} G1A501g                     =       G2O2000 +      GAD3000                                : ARR( 0.200E+15,  6436., 0.0);
+{ 27942} G1A501g                     =       GDO3000 +      G2A2000                                : ARR( 0.200E+15,  7196., 0.0);
+{ 27943} G1A501h                     =       GCH2O   +      GAN400J +      GHO2                    : ARR( 0.200E+15,  5296., 0.0);
+{ 27944} G1A501h                     =       GDO2000 +      GAD3000 +      GNO2                    : ARR( 0.200E+15,  6367., 0.0);
+{ 27945} GAN500Q +GHO                =       G3A5004                                               : ARR( 0.220E-10,     0., 0.0);
+{ 27946} GAN500Q +GNO3               =       G3A5004 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 27947} GAN500Q+HV               =       G1A501A +      GNO2                                   :  0.100E+01*SUN;
+{ 27948} GAN500Q+HV               =       G2A400Y +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 27949} GAN500Q+HV               =       G2A3007 +      GD02000 +      GNO2                    :  0.100E+01*SUN;
+{ 27950} G3A5004 +GHO2               =  0.800GAG5004 + 0.200GAA5003 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 27951} G3A5004 +GNO                =       G2A400Y +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 27952} G3A5004 +GNO2               =       GPA5004                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 27953} G3A5004 +GNO3               =       G2A400Y +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 27954} G3A5004 +MEPERO             =  0.685G2A400Y + 0.315GAA5003 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 27955} G3A5004 +PERO1              =  0.800G2A400Y + 0.200GAA5003 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 27956} G3A5004 +PERO2              =  0.750G2A400Y + 0.250GAA5003 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 27957} G3A5004 +PERO3              =  0.800G2A400Y + 0.200GAA5003 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 27958} G3A5004 +PERO5              =  0.650G2A400Y + 0.350GAA5003 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 27959} G3A5004 +PERO6              =  0.650G2A400Y + 0.350GAA5003 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 27960} G3A5004 +PERO9              =       G2A400Y +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 27961} G2A400Y +GNO                =       G1A400B +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 27962} G2A400Y +GNO                =       GAN4007                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 27963} G2A400Y +GHO2               =       GAH400L                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 27964} G2A400Y +GNO3               =       G1A400B +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 27965} G2A400Y +MEPERO             =  0.480G1A400B + 0.260GAN4003 + 0.260GAN400J                 : ARR( 0.164E-12,  -795., 0.0);
+{ 27966} G2A400Y +PERO1              =  0.600G1A400B + 0.200GAN4003 + 0.200GAN400J                 : ARR( 0.126E-12,  -850., 0.0);
+{ 27967} G2A400Y +PERO2              =  0.560G1A400B + 0.220GAN4003 + 0.220GAN400J                 : ARR( 0.471E-13, -1350., 0.0);
+{ 27968} G2A400Y +PERO3              =  0.600G1A400B + 0.200GAN4003 + 0.200GAN400J                 : ARR( 0.142E-12, -1200., 0.0);
+{ 27969} G2A400Y +PERO5              =  0.600G1A400B + 0.200GAN4003 + 0.200GAN400J                 : ARR( 0.533E-11,   500., 0.0);
+{ 27970} G2A400Y +PERO6              =  0.460G1A400B + 0.270GAN4003 + 0.270GAN400J                 : ARR( 0.488E-13, -1250., 0.0);
+{ 27971} G2A400Y +PERO9              =  0.800G1A400B + 0.200GAN400J                                : ARR( 0.100E-10,     0., 0.0);
+{ 27972} G2A3007 +GNO                =       G1A3008 +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{ 27973} G2A3007 +GNO                =       GAN3006                                               : ARR( 0.622E-13,  -360., 0.0);
+{ 27974} G2A3007 +GHO2               =       GAH3007                                               : ARR( 0.179E-12, -1250., 0.0);
+{ 27975} G2A3007 +GNO3               =       G1A3008 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 27976} G2A3007 +MEPERO             =  0.340G1A3008 + 0.330GAD3001 + 0.330GAD3002                 : ARR( 0.565E-13,  -845., 0.0);
+{ 27977} G2A3007 +PERO1              =  0.460G1A3008 + 0.270GAD3001 + 0.270GAD3002                 : ARR( 0.434E-13,  -900., 0.0);
+{ 27978} G2A3007 +PERO2              =  0.400G1A3008 + 0.300GAD3001 + 0.300GAD3002                 : ARR( 0.162E-13, -1400., 0.0);
+{ 27979} G2A3007 +PERO3              =  0.460G1A3008 + 0.270GAD3001 + 0.270GAD3002                 : ARR( 0.488E-13, -1250., 0.0);
+{ 27980} G2A3007 +PERO5              =  0.460G1A3008 + 0.270GAD3001 + 0.270GAD3002                 : ARR( 0.183E-11,   450., 0.0);
+{ 27981} G2A3007 +PERO6              =  0.300G1A3008 + 0.350GAD3001 + 0.350GAD3002                 : ARR( 0.168E-13, -1300., 0.0);
+{ 27982} G2A3007 +PERO9              =  0.650G1A3008 + 0.350GAD3002                                : ARR( 0.100E-10,     0., 0.0);
+{ 27983} G1A3008                     =       GCO     +      GDD2000 +      GHO                     : ARR( 0.200E+15,  7117., 0.0);
+{ 27984} G1A3008                     =       GAD2000 +      GCO     +      GHO2                    : ARR( 0.200E+15,  8078., 0.0);
+{ 27985} GAN500R +GHO                =       G2A501S                                               : ARR( 0.143E-12,     0., 0.0);
+{ 27986} GAN500R +GHO                =       G2N400Z +      GCO2                                   : ARR( 0.581E-12,     0., 0.0);
+{ 27987} GAN500R+HV               =       G1A500G +      GNO2                                   :  0.100E+01*SUN;
+{ 27988} GAN500R+HV               =       G1A500P +      GNO2                                   :  0.100E+01*SUN;
+{ 27989} G2A501S +GNO                =       G1A501i +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 27990} G2A501S +GNO                =       GAN501b                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 27991} G2A501S +GHO2               =       GAH5029                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 27992} G2A501S +GNO3               =       G1A501i +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 27993} G2A501S +MEPERO             =  0.340G1A501i + 0.330GAN501c + 0.330GAN501d                 : ARR( 0.565E-13,  -845., 0.0);
+{ 27994} G2A501S +PERO1              =  0.460G1A501i + 0.270GAN501c + 0.270GAN501d                 : ARR( 0.434E-13,  -900., 0.0);
+{ 27995} G2A501S +PERO2              =  0.400G1A501i + 0.300GAN501c + 0.300GAN501d                 : ARR( 0.162E-13, -1400., 0.0);
+{ 27996} G2A501S +PERO3              =  0.460G1A501i + 0.270GAN501c + 0.270GAN501d                 : ARR( 0.488E-13, -1250., 0.0);
+{ 27997} G2A501S +PERO5              =  0.460G1A501i + 0.270GAN501c + 0.270GAN501d                 : ARR( 0.183E-11,   450., 0.0);
+{ 27998} G2A501S +PERO6              =  0.300G1A501i + 0.350GAN501c + 0.350GAN501d                 : ARR( 0.168E-13, -1300., 0.0);
+{ 27999} G2A501S +PERO9              =  0.650G1A501i + 0.350GAN501d                                : ARR( 0.100E-10,     0., 0.0);
+{ 28000} G1A501i                     =       GNN4007 +      GCO     +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 28001} GAH500M +GHO                =       GAN500S +      GHO                                    : ARR( 0.731E-11,     0., 0.0);
+{ 28002} GAH500M +GHO                =       G2A500F                                               : ARR( 0.207E-11,  -190., 0.0);
+{ 28003} GAH500M+HV               =       G1A500G +      GHO                                    :  0.100E+01*SUN;
+{ 28004} GAH500M+HV               =       G1A501j +      GNO2                                   :  0.100E+01*SUN;
+{ 28005} G1A501j                     =       GD02000 +      GAD3000 +      GHO                     : ARR( 0.200E+15,  4533., 0.0);
+{ 28006} GAN500S +GHO                =       G2A501T                                               : ARR( 0.102E-12,     0., 0.0);
+{ 28007} GAN500S +GHO                =       GAK500B +      GNO2                                   : ARR( 0.718E-13,     0., 0.0);
+{ 28008} GAN500S +GHO                =       G2A501U                                               : ARR( 0.128E-12,     0., 0.0);
+{ 28009} GAN500S +GHO                =       G2N400c +      GCO2                                   : ARR( 0.520E-12,     0., 0.0);
+{ 28010} GAN500S+HV               =       G3K2000 +      GAD3000 +      GNO2                    :  0.100E+01*SUN;
+{ 28011} GAN500S+HV               =       G1A500R +      GNO2                                   :  0.100E+01*SUN;
+{ 28012} G2A501T +GNO                =       G1A501k +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 28013} G2A501T +GNO                =       GAN500v                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 28014} G2A501T +GHO2               =       GAH501y                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 28015} G2A501T +GNO3               =       G1A501k +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 28016} G2A501T +MEPERO             =  0.480G1A501k + 0.260GAN501Y + 0.260GAN501e                 : ARR( 0.164E-12,  -795., 0.0);
+{ 28017} G2A501T +PERO1              =  0.600G1A501k + 0.200GAN501Y + 0.200GAN501e                 : ARR( 0.126E-12,  -850., 0.0);
+{ 28018} G2A501T +PERO2              =  0.560G1A501k + 0.220GAN501Y + 0.220GAN501e                 : ARR( 0.471E-13, -1350., 0.0);
+{ 28019} G2A501T +PERO3              =  0.600G1A501k + 0.200GAN501Y + 0.200GAN501e                 : ARR( 0.142E-12, -1200., 0.0);
+{ 28020} G2A501T +PERO5              =  0.600G1A501k + 0.200GAN501Y + 0.200GAN501e                 : ARR( 0.533E-11,   500., 0.0);
+{ 28021} G2A501T +PERO6              =  0.460G1A501k + 0.270GAN501Y + 0.270GAN501e                 : ARR( 0.488E-13, -1250., 0.0);
+{ 28022} G2A501T +PERO9              =  0.800G1A501k + 0.200GAN501e                                : ARR( 0.100E-10,     0., 0.0);
+{ 28023} G2A501U +GNO                =       G1A501l +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 28024} G2A501U +GNO                =       GAN501f                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 28025} G2A501U +GHO2               =       GAH502A                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 28026} G2A501U +GNO3               =       G1A501l +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 28027} G2A501U +MEPERO             =  0.340G1A501l + 0.330GAN501g + 0.330GAN501h                 : ARR( 0.565E-13,  -845., 0.0);
+{ 28028} G2A501U +PERO1              =  0.460G1A501l + 0.270GAN501g + 0.270GAN501h                 : ARR( 0.434E-13,  -900., 0.0);
+{ 28029} G2A501U +PERO2              =  0.400G1A501l + 0.300GAN501g + 0.300GAN501h                 : ARR( 0.162E-13, -1400., 0.0);
+{ 28030} G2A501U +PERO3              =  0.460G1A501l + 0.270GAN501g + 0.270GAN501h                 : ARR( 0.488E-13, -1250., 0.0);
+{ 28031} G2A501U +PERO5              =  0.460G1A501l + 0.270GAN501g + 0.270GAN501h                 : ARR( 0.183E-11,   450., 0.0);
+{ 28032} G2A501U +PERO6              =  0.300G1A501l + 0.350GAN501g + 0.350GAN501h                 : ARR( 0.168E-13, -1300., 0.0);
+{ 28033} G2A501U +PERO9              =  0.650G1A501l + 0.350GAN501h                                : ARR( 0.100E-10,     0., 0.0);
+{ 28034} G1A501k                     =       G3A4001 +      GCH2O                                  : ARR( 0.200E+15,  3640., 0.0);
+{ 28035} G1A501l                     =       GND4008 +      GCO     +      GHO                     : ARR( 0.200E+15,  4342., 0.0);
+{ 28036} G3A4001 +GHO2               =  0.800GAG4001 + 0.200GAA4001 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 28037} G3A4001 +GNO                =       GAD3000 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 28038} G3A4001 +GNO2               =       GPA4001                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 28039} G3A4001 +GNO3               =       GAD3000 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 28040} G3A4001 +MEPERO             =  0.685GAD3000 + 0.315GAA4001 + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 28041} G3A4001 +PERO1              =  0.800GAD3000 + 0.200GAA4001 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 28042} G3A4001 +PERO2              =  0.750GAD3000 + 0.250GAA4001 + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 28043} G3A4001 +PERO3              =  0.800GAD3000 + 0.200GAA4001 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 28044} G3A4001 +PERO5              =  0.650GAD3000 + 0.350GAA4001 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 28045} G3A4001 +PERO6              =  0.650GAD3000 + 0.350GAA4001 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 28046} G3A4001 +PERO9              =       GAD3000 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 28047} GAN500T +GHO                =       G2A501W                                               : ARR( 0.174E-12,     0., 0.0);
+{ 28048} GAN500T +GHO                =       G2A501X                                               : ARR( 0.238E-12,     0., 0.0);
+{ 28049} GAN500T +GHO                =       GND4005 +      GNO2    +      GCO2                    : ARR( 0.539E-12,     0., 0.0);
+{ 28050} GAN500T+HV               =       G1A500W +      GNO2                                   :  0.100E+01*SUN;
+{ 28051} GAN500T+HV               =       G1A500H +      GNO2                                   :  0.100E+01*SUN;
+{ 28052} G2A501W +GNO                =       G1A501m +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 28053} G2A501W +GNO                =       GAN500s                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 28054} G2A501W +GHO2               =       GAH502B                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 28055} G2A501W +GNO3               =       G1A501m +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 28056} G2A501W +MEPERO             =  0.480G1A501m + 0.260GAN500X + 0.260GAN501i                 : ARR( 0.146E-12,  -445., 0.0);
+{ 28057} G2A501W +PERO1              =  0.600G1A501m + 0.200GAN500X + 0.200GAN501i                 : ARR( 0.112E-12,  -500., 0.0);
+{ 28058} G2A501W +PERO2              =  0.560G1A501m + 0.220GAN500X + 0.220GAN501i                 : ARR( 0.418E-13, -1000., 0.0);
+{ 28059} G2A501W +PERO3              =  0.600G1A501m + 0.200GAN500X + 0.200GAN501i                 : ARR( 0.126E-12,  -850., 0.0);
+{ 28060} G2A501W +PERO5              =  0.600G1A501m + 0.200GAN500X + 0.200GAN501i                 : ARR( 0.473E-11,   850., 0.0);
+{ 28061} G2A501W +PERO6              =  0.460G1A501m + 0.270GAN500X + 0.270GAN501i                 : ARR( 0.434E-13,  -900., 0.0);
+{ 28062} G2A501W +PERO9              =  0.800G1A501m + 0.200GAN501i                                : ARR( 0.100E-10,     0., 0.0);
+{ 28063} G2A501X +GNO                =       G1A501n +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 28064} G2A501X +GNO                =       GAN501b                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 28065} G2A501X +GHO2               =       GAH502C                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 28066} G2A501X +GNO3               =       G1A501n +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 28067} G2A501X +MEPERO             =  0.340G1A501n + 0.330GAN500m + 0.330GAN501f                 : ARR( 0.565E-13,  -845., 0.0);
+{ 28068} G2A501X +PERO1              =  0.460G1A501n + 0.270GAN500m + 0.270GAN501f                 : ARR( 0.434E-13,  -900., 0.0);
+{ 28069} G2A501X +PERO2              =  0.400G1A501n + 0.300GAN500m + 0.300GAN501f                 : ARR( 0.162E-13, -1400., 0.0);
+{ 28070} G2A501X +PERO3              =  0.460G1A501n + 0.270GAN500m + 0.270GAN501f                 : ARR( 0.488E-13, -1250., 0.0);
+{ 28071} G2A501X +PERO5              =  0.460G1A501n + 0.270GAN500m + 0.270GAN501f                 : ARR( 0.183E-11,   450., 0.0);
+{ 28072} G2A501X +PERO6              =  0.300G1A501n + 0.350GAN500m + 0.350GAN501f                 : ARR( 0.168E-13, -1300., 0.0);
+{ 28073} G2A501X +PERO9              =  0.650G1A501n + 0.350GAN501f                                : ARR( 0.100E-10,     0., 0.0);
+{ 28074} G1A501m +OXYGEN             =       GAN501i +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{ 28075} G1A501m                     =       GAN500Z +      GNO2                                   : ARR( 0.800E+11,  5099., 0.0);
+{ 28076} G1A501n                     =       GD02000 +      GAN3006 +      GNO2                    : ARR( 0.200E+15,  6112., 0.0);
+{ 28077} GAH500N +GHO                =       GAN500W +      GHO                                    : ARR( 0.396E-11,     0., 0.0);
+{ 28078} GAH500N +GHO                =       G2A500G                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 28079} GAH500N +GHO                =       GND4005 +      GHO     +      GCO2                    : ARR( 0.554E-12,     0., 0.0);
+{ 28080} GAH500N+HV               =       G1A500X +      GNO2                                   :  0.100E+01*SUN;
+{ 28081} GAH500N+HV               =       G1A500H +      GHO                                    :  0.100E+01*SUN;
+{ 28082} GAN500U +GHO                =       G2A500I                                               : ARR( 0.168E-12,     0., 0.0);
+{ 28083} GAN500U +GHO                =       G2A501Y                                               : ARR( 0.230E-12,     0., 0.0);
+{ 28084} GAN500U +GHO                =       GAK500C +      GNO2                                   : ARR( 0.118E-12,     0., 0.0);
+{ 28085} GAN500U +GHO                =       GAN500W +      GHO2                                   : ARR( 0.930E-12,     0., 0.0);
+{ 28086} GAN500U +GHO                =       G1A500H                                               : ARR( 0.210E-17,    85., 2.0);
+{ 28087} GAN500U +GHO                =       GND4005 +      GHO2    +      GCO2                    : ARR( 0.520E-12,     0., 0.0);
+{ 28088} GAN500U+HV               =       G1A500Z +      GNO2                                   :  0.100E+01*SUN;
+{ 28089} G2A501Y +GNO                =       G1A501o +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 28090} G2A501Y +GNO                =       GAN501c                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 28091} G2A501Y +GHO2               =       GAH502D                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 28092} G2A501Y +GNO3               =       G1A501o +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 28093} G2A501Y +MEPERO             =  0.340G1A501o + 0.330GAN500n + 0.330GAN501g                 : ARR( 0.565E-13,  -845., 0.0);
+{ 28094} G2A501Y +PERO1              =  0.460G1A501o + 0.270GAN500n + 0.270GAN501g                 : ARR( 0.434E-13,  -900., 0.0);
+{ 28095} G2A501Y +PERO2              =  0.400G1A501o + 0.300GAN500n + 0.300GAN501g                 : ARR( 0.162E-13, -1400., 0.0);
+{ 28096} G2A501Y +PERO3              =  0.460G1A501o + 0.270GAN500n + 0.270GAN501g                 : ARR( 0.488E-13, -1250., 0.0);
+{ 28097} G2A501Y +PERO5              =  0.460G1A501o + 0.270GAN500n + 0.270GAN501g                 : ARR( 0.183E-11,   450., 0.0);
+{ 28098} G2A501Y +PERO6              =  0.300G1A501o + 0.350GAN500n + 0.350GAN501g                 : ARR( 0.168E-13, -1300., 0.0);
+{ 28099} G2A501Y +PERO9              =  0.650G1A501o + 0.350GAN501g                                : ARR( 0.100E-10,     0., 0.0);
+{ 28100} G1A501o                     =       GD02000 +      GAD3001 +      GNO2                    : ARR( 0.200E+15,  6112., 0.0);
+{ 28101} GAN500W +GHO                =       G2A501Z                                               : ARR( 0.168E-12,     0., 0.0);
+{ 28102} GAN500W +GHO                =       G2A501a                                               : ARR( 0.230E-12,     0., 0.0);
+{ 28103} GAN500W +GHO                =       GAK500D +      GNO2                                   : ARR( 0.718E-13,     0., 0.0);
+{ 28104} GAN500W +GHO                =       G3N4004 +      GCO2                                   : ARR( 0.520E-12,     0., 0.0);
+{ 28105} GAN500W+HV               =       G1A500b +      GNO2                                   :  0.100E+01*SUN;
+{ 28106} GAN500W+HV               =       GND4005 +      GCO2                                   :  0.100E+01*SUN;
+{ 28107} G2A501Z +GNO                =       G1A501p +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 28108} G2A501Z +GNO                =       GAN500t                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 28109} G2A501Z +GHO2               =       GAH502E                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 28110} G2A501Z +GNO3               =       G1A501p +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 28111} G2A501Z +MEPERO             =  0.480G1A501p + 0.260GAN500Z + 0.260GAN501j                 : ARR( 0.146E-12,  -445., 0.0);
+{ 28112} G2A501Z +PERO1              =  0.600G1A501p + 0.200GAN500Z + 0.200GAN501j                 : ARR( 0.112E-12,  -500., 0.0);
+{ 28113} G2A501Z +PERO2              =  0.560G1A501p + 0.220GAN500Z + 0.220GAN501j                 : ARR( 0.418E-13, -1000., 0.0);
+{ 28114} G2A501Z +PERO3              =  0.600G1A501p + 0.200GAN500Z + 0.200GAN501j                 : ARR( 0.126E-12,  -850., 0.0);
+{ 28115} G2A501Z +PERO5              =  0.600G1A501p + 0.200GAN500Z + 0.200GAN501j                 : ARR( 0.473E-11,   850., 0.0);
+{ 28116} G2A501Z +PERO6              =  0.460G1A501p + 0.270GAN500Z + 0.270GAN501j                 : ARR( 0.434E-13,  -900., 0.0);
+{ 28117} G2A501Z +PERO9              =  0.800G1A501p + 0.200GAN501j                                : ARR( 0.100E-10,     0., 0.0);
+{ 28118} G2A501a +GNO                =       G1A501q +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 28119} G2A501a +GNO                =       GAN501d                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 28120} G2A501a +GHO2               =       GAH502F                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 28121} G2A501a +GNO3               =       G1A501q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 28122} G2A501a +MEPERO             =  0.340G1A501q + 0.330GAN501k + 0.330GAN501h                 : ARR( 0.565E-13,  -845., 0.0);
+{ 28123} G2A501a +PERO1              =  0.460G1A501q + 0.270GAN501k + 0.270GAN501h                 : ARR( 0.434E-13,  -900., 0.0);
+{ 28124} G2A501a +PERO2              =  0.400G1A501q + 0.300GAN501k + 0.300GAN501h                 : ARR( 0.162E-13, -1400., 0.0);
+{ 28125} G2A501a +PERO3              =  0.460G1A501q + 0.270GAN501k + 0.270GAN501h                 : ARR( 0.488E-13, -1250., 0.0);
+{ 28126} G2A501a +PERO5              =  0.460G1A501q + 0.270GAN501k + 0.270GAN501h                 : ARR( 0.183E-11,   450., 0.0);
+{ 28127} G2A501a +PERO6              =  0.300G1A501q + 0.350GAN501k + 0.350GAN501h                 : ARR( 0.168E-13, -1300., 0.0);
+{ 28128} G2A501a +PERO9              =  0.650G1A501q + 0.350GAN501h                                : ARR( 0.100E-10,     0., 0.0);
+{ 28129} G1A501p +OXYGEN             =       GAN501j +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{ 28130} G1A501q                     =       GD02000 +      GAD3002 +      GNO2                    : ARR( 0.200E+15,  5840., 0.0);
+{ 28131} GAN500X +GHO                =       GAN501i +      GHO2                                   : ARR( 0.417E-11,     0., 0.0);
+{ 28132} GAN500X +GHO                =       G2A501b                                               : ARR( 0.293E-12,     0., 0.0);
+{ 28133} GAN500X +GHO                =       GND4006 +      GNO2    +      GCO2                    : ARR( 0.539E-12,     0., 0.0);
+{ 28134} GAN500X+HV               =       G1A501r +      GNO2                                   :  0.100E+01*SUN;
+{ 28135} GAN500X+HV               =       G1A500I +      GNO2                                   :  0.100E+01*SUN;
+{ 28136} G2A501b +GNO                =       G1A501s +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 28137} G2A501b +GNO                =       GAN501l                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 28138} G2A501b +GHO2               =       GAH502G                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 28139} G2A501b +GNO3               =       G1A501s +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 28140} G2A501b +MEPERO             =  0.340G1A501s + 0.330GAN501M + 0.330GAN501m                 : ARR( 0.565E-13,  -845., 0.0);
+{ 28141} G2A501b +PERO1              =  0.460G1A501s + 0.270GAN501M + 0.270GAN501m                 : ARR( 0.434E-13,  -900., 0.0);
+{ 28142} G2A501b +PERO2              =  0.400G1A501s + 0.300GAN501M + 0.300GAN501m                 : ARR( 0.162E-13, -1400., 0.0);
+{ 28143} G2A501b +PERO3              =  0.460G1A501s + 0.270GAN501M + 0.270GAN501m                 : ARR( 0.488E-13, -1250., 0.0);
+{ 28144} G2A501b +PERO5              =  0.460G1A501s + 0.270GAN501M + 0.270GAN501m                 : ARR( 0.183E-11,   450., 0.0);
+{ 28145} G2A501b +PERO6              =  0.300G1A501s + 0.350GAN501M + 0.350GAN501m                 : ARR( 0.168E-13, -1300., 0.0);
+{ 28146} G2A501b +PERO9              =  0.650G1A501s + 0.350GAN501m                                : ARR( 0.100E-10,     0., 0.0);
+{ 28147} G1A501r                     =       G2O2000 +      GAN3006                                : ARR( 0.200E+15,  6244., 0.0);
+{ 28148} G1A501r                     =       GDO3000 +      GAD2000 +      GNO2                    : ARR( 0.200E+15,  6422., 0.0);
+{ 28149} G1A501s                     =       GCH2O   +      GAN400Y +      GHO2                    : ARR( 0.200E+15,  5296., 0.0);
+{ 28150} G1A501s                     =       GDO2000 +      GAN3006 +      GNO2                    : ARR( 0.200E+15,  6367., 0.0);
+{ 28151} GAH500O +GHO                =       GAH502H +      GHO2                                   : ARR( 0.440E-11,     0., 0.0);
+{ 28152} GAH500O +GHO                =       GAN500Z +      GHO                                    : ARR( 0.407E-11,     0., 0.0);
+{ 28153} GAH500O +GHO                =       G2A500H                                               : ARR( 0.208E-11,  -190., 0.0);
+{ 28154} GAH500O+HV               =       G1A501t +      GNO2                                   :  0.100E+01*SUN;
+{ 28155} GAH500O+HV               =       G1A500I +      GHO                                    :  0.100E+01*SUN;
+{ 28156} G1A501t                     =       GDO3000 +      GAD2000 +      GHO                     : ARR( 0.200E+15,  4883., 0.0);
+{ 28157} GAN500Y +GHO                =       GAN500b +      GHO2                                   : ARR( 0.452E-11,     0., 0.0);
+{ 28158} GAN500Y +GHO                =       GAN500Z +      GHO2                                   : ARR( 0.105E-11,     0., 0.0);
+{ 28159} GAN500Y +GHO                =       GND4006 +      GHO2    +      GCO2                    : ARR( 0.585E-12,     0., 0.0);
+{ 28160} GAN500Y+HV               =       G1A501D +      GNO2                                   :  0.100E+01*SUN;
+{ 28161} GAN500Z +GHO                =       GAN501j +      GHO2                                   : ARR( 0.420E-11,     0., 0.0);
+{ 28162} GAN500Z +GHO                =       G2A501c                                               : ARR( 0.295E-12,     0., 0.0);
+{ 28163} GAN500Z +GHO                =       G3N4008 +      GCO2                                   : ARR( 0.543E-12,     0., 0.0);
+{ 28164} GAN500Z+HV               =       G1A501F +      GNO2                                   :  0.100E+01*SUN;
+{ 28165} GAN500Z+HV               =       GND4006 +      GCO2                                   :  0.100E+01*SUN;
+{ 28166} G2A501c +GNO                =       G1A501u +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 28167} G2A501c +GNO                =       GAN501n                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 28168} G2A501c +GHO2               =       GAH502I                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 28169} G2A501c +GNO3               =       G1A501u +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 28170} G2A501c +MEPERO             =  0.340G1A501u + 0.330GAN501o + 0.330GAN501p                 : ARR( 0.565E-13,  -845., 0.0);
+{ 28171} G2A501c +PERO1              =  0.460G1A501u + 0.270GAN501o + 0.270GAN501p                 : ARR( 0.434E-13,  -900., 0.0);
+{ 28172} G2A501c +PERO2              =  0.400G1A501u + 0.300GAN501o + 0.300GAN501p                 : ARR( 0.162E-13, -1400., 0.0);
+{ 28173} G2A501c +PERO3              =  0.460G1A501u + 0.270GAN501o + 0.270GAN501p                 : ARR( 0.488E-13, -1250., 0.0);
+{ 28174} G2A501c +PERO5              =  0.460G1A501u + 0.270GAN501o + 0.270GAN501p                 : ARR( 0.183E-11,   450., 0.0);
+{ 28175} G2A501c +PERO6              =  0.300G1A501u + 0.350GAN501o + 0.350GAN501p                 : ARR( 0.168E-13, -1300., 0.0);
+{ 28176} G2A501c +PERO9              =  0.650G1A501u + 0.350GAN501p                                : ARR( 0.100E-10,     0., 0.0);
+{ 28177} G1A501u                     =       GCH2O   +      GAN400Z +      GHO2                    : ARR( 0.200E+15,  4465., 0.0);
+{ 28178} GAN500a +GHO                =       GAN500t +      GHO2                                   : ARR( 0.986E-12,     0., 0.0);
+{ 28179} GAN500a +GHO                =       GAN500q +      GNO2                                   : ARR( 0.125E-12,     0., 0.0);
+{ 28180} GAN500a +GHO                =       G1A500h                                               : ARR( 0.223E-17,    85., 2.0);
+{ 28181} GAN500a +GHO                =       GNN4008 +      GHO2    +      GCO2                    : ARR( 0.551E-12,     0., 0.0);
+{ 28182} GAN500a+HV               =       G1A500v +      GNO2                                   :  0.100E+01*SUN;
+{ 28183} GAN500a+HV               =       G1A500J +      GNO2                                   :  0.100E+01*SUN;
+{ 28184} GAH500P +GHO                =       GAN500b +      GHO                                    : ARR( 0.177E-10,     0., 0.0);
+{ 28185} GAH500P +GHO                =       G2A500I                                               : ARR( 0.209E-11,  -190., 0.0);
+{ 28186} GAH500P+HV               =       G1A501W +      GNO2                                   :  0.100E+01*SUN;
+{ 28187} GAH500P+HV               =       G1A500J +      GHO                                    :  0.100E+01*SUN;
+{ 28188} GAN500b +GHO                =       G3A5005                                               : ARR( 0.229E-10,     0., 0.0);
+{ 28189} GAN500b +GNO3               =       G3A5005 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 28190} GAN500b+HV               =       G1A501G +      GNO2                                   :  0.100E+01*SUN;
+{ 28191} GAN500b+HV               =       G2A400Z +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 28192} GAN500b+HV               =       GAN3005 +      GD02000                                :  0.100E+01*SUN;
+{ 28193} G3A5005 +GHO2               =  0.800GAG5005 + 0.200GAA5004 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 28194} G3A5005 +GNO                =       G2A400Z +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 28195} G3A5005 +GNO2               =       GPA5005                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 28196} G3A5005 +GNO3               =       G2A400Z +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 28197} G3A5005 +MEPERO             =  0.685G2A400Z + 0.315GAA5004 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 28198} G3A5005 +PERO1              =  0.800G2A400Z + 0.200GAA5004 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 28199} G3A5005 +PERO2              =  0.750G2A400Z + 0.250GAA5004 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 28200} G3A5005 +PERO3              =  0.800G2A400Z + 0.200GAA5004 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 28201} G3A5005 +PERO5              =  0.650G2A400Z + 0.350GAA5004 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 28202} G3A5005 +PERO6              =  0.650G2A400Z + 0.350GAA5004 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 28203} G3A5005 +PERO9              =       G2A400Z +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 28204} G2A400Z +GNO                =       G1A400d +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 28205} G2A400Z +GNO                =       GAN400S                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 28206} G2A400Z +GHO2               =       GAH400g                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 28207} G2A400Z +GNO3               =       G1A400d +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 28208} G2A400Z +MEPERO             =  0.480G1A400d + 0.260GAN400K + 0.260GAN400a                 : ARR( 0.164E-12,  -795., 0.0);
+{ 28209} G2A400Z +PERO1              =  0.600G1A400d + 0.200GAN400K + 0.200GAN400a                 : ARR( 0.126E-12,  -850., 0.0);
+{ 28210} G2A400Z +PERO2              =  0.560G1A400d + 0.220GAN400K + 0.220GAN400a                 : ARR( 0.471E-13, -1350., 0.0);
+{ 28211} G2A400Z +PERO3              =  0.600G1A400d + 0.200GAN400K + 0.200GAN400a                 : ARR( 0.142E-12, -1200., 0.0);
+{ 28212} G2A400Z +PERO5              =  0.600G1A400d + 0.200GAN400K + 0.200GAN400a                 : ARR( 0.533E-11,   500., 0.0);
+{ 28213} G2A400Z +PERO6              =  0.460G1A400d + 0.270GAN400K + 0.270GAN400a                 : ARR( 0.488E-13, -1250., 0.0);
+{ 28214} G2A400Z +PERO9              =  0.800G1A400d + 0.200GAN400a                                : ARR( 0.100E-10,     0., 0.0);
+{ 28215} G1A400d +OXYGEN             =       GAN400a +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 28216} G1A400d                     =       GAD3001 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7175., 0.0);
+{ 28217} GPH500L                     =       G3H500W +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 28218} GPH500L +GHO                =       GPN500Q +      GHO                                    : ARR( 0.166E-10,     0., 0.0);
+{ 28219} GPH500L +GHO                =       G2P500E                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 28220} GPH500L+HV               =       G1P500F +      GHO                                    :  0.100E+01*SUN;
+{ 28221} GPH500L+HV               =       G1P501h +      GNO2                                   :  0.100E+01*SUN;
+{ 28222} GPH500L+HV               =       G3H500W +      GNO2                                   :  0.100E+01*SUN;
+{ 28223} G1P501h                     =       G2H2000 +      GPD3000                                : ARR( 0.200E+15,  6436., 0.0);
+{ 28224} G1P501h                     =       GHD3000 +      G2P2000                                : ARR( 0.200E+15,  7196., 0.0);
+{ 28225} GPN500P                     =       G3N500b +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 28226} GPN500P +GHO                =       GPN500Q +      GHO2                                   : ARR( 0.442E-11,     0., 0.0);
+{ 28227} GPN500P +GHO                =       G2P501T                                               : ARR( 0.311E-12,     0., 0.0);
+{ 28228} GPN500P+HV               =       G1P501i +      GNO2                                   :  0.100E+01*SUN;
+{ 28229} GPN500P+HV               =       G3N500b +      GNO2                                   :  0.100E+01*SUN;
+{ 28230} G2P501T +GNO                =       G1P501j +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 28231} G2P501T +GNO                =       GPN501Z                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 28232} G2P501T +GHO2               =       GPH5025                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 28233} G2P501T +GNO3               =       G1P501j +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 28234} G2P501T +MEPERO             =  0.340G1P501j + 0.330GPN500N + 0.330GPN501a                 : ARR( 0.565E-13,  -845., 0.0);
+{ 28235} G2P501T +PERO1              =  0.460G1P501j + 0.270GPN500N + 0.270GPN501a                 : ARR( 0.434E-13,  -900., 0.0);
+{ 28236} G2P501T +PERO2              =  0.400G1P501j + 0.300GPN500N + 0.300GPN501a                 : ARR( 0.162E-13, -1400., 0.0);
+{ 28237} G2P501T +PERO3              =  0.460G1P501j + 0.270GPN500N + 0.270GPN501a                 : ARR( 0.488E-13, -1250., 0.0);
+{ 28238} G2P501T +PERO5              =  0.460G1P501j + 0.270GPN500N + 0.270GPN501a                 : ARR( 0.183E-11,   450., 0.0);
+{ 28239} G2P501T +PERO6              =  0.300G1P501j + 0.350GPN500N + 0.350GPN501a                 : ARR( 0.168E-13, -1300., 0.0);
+{ 28240} G2P501T +PERO9              =  0.650G1P501j + 0.350GPN501a                                : ARR( 0.100E-10,     0., 0.0);
+{ 28241} G1P501i                     =       G2O2000 +      GPD3000                                : ARR( 0.200E+15,  6436., 0.0);
+{ 28242} G1P501i                     =       GDO3000 +      G2P2000                                : ARR( 0.200E+15,  7196., 0.0);
+{ 28243} G1P501j                     =       GCH2O   +      GPN400H +      GHO2                    : ARR( 0.200E+15,  5296., 0.0);
+{ 28244} G1P501j                     =       GDO2000 +      GPD3000 +      GNO2                    : ARR( 0.200E+15,  6367., 0.0);
+{ 28245} GPN500Q                     =       G3N500c +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 28246} GPN500Q +GHO                =       G3P5003                                               : ARR( 0.215E-10,     0., 0.0);
+{ 28247} GPN500Q +GNO3               =       G3P5003 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 28248} GPN500Q+HV               =       G3N500c +      GNO2                                   :  0.100E+01*SUN;
+{ 28249} GPN500Q+HV               =       G1P501k +      GNO2                                   :  0.100E+01*SUN;
+{ 28250} GPN500Q+HV               =       G2P4009 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 28251} GPN500Q+HV               =       G2P3007 +      GD02000 +      GNO2                    :  0.100E+01*SUN;
+{ 28252} G3P5003 +GHO2               =  0.800GPG5003 + 0.200GPA5004 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 28253} G3P5003 +GNO                =       G2P4009 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 28254} G3P5003 +GNO2               =       GPP5002                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 28255} G3P5003 +GNO3               =       G2P4009 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 28256} G3P5003 +MEPERO             =  0.685G2P4009 + 0.315GPA5004 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 28257} G3P5003 +PERO1              =  0.800G2P4009 + 0.200GPA5004 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 28258} G3P5003 +PERO2              =  0.750G2P4009 + 0.250GPA5004 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 28259} G3P5003 +PERO3              =  0.800G2P4009 + 0.200GPA5004 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 28260} G3P5003 +PERO5              =  0.650G2P4009 + 0.350GPA5004 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 28261} G3P5003 +PERO6              =  0.650G2P4009 + 0.350GPA5004 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 28262} G3P5003 +PERO9              =       G2P4009 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 28263} G1P501k                     =       G2P2000 +      GDD3000                                : ARR( 0.200E+15,  6813., 0.0);
+{ 28264} G1P501k                     =       GPD3000 +      G2D2000                                : ARR( 0.200E+15,  6591., 0.0);
+{ 28265} G2P3007 +GNO                =       G1P3008 +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{ 28266} G2P3007 +GNO                =       GPN3006                                               : ARR( 0.622E-13,  -360., 0.0);
+{ 28267} G2P3007 +GHO2               =       GPH3007                                               : ARR( 0.179E-12, -1250., 0.0);
+{ 28268} G2P3007 +GNO3               =       G1P3008 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 28269} G2P3007 +MEPERO             =  0.340G1P3008 + 0.330GPD3001 + 0.330GPD3002                 : ARR( 0.565E-13,  -845., 0.0);
+{ 28270} G2P3007 +PERO1              =  0.460G1P3008 + 0.270GPD3001 + 0.270GPD3002                 : ARR( 0.434E-13,  -900., 0.0);
+{ 28271} G2P3007 +PERO2              =  0.400G1P3008 + 0.300GPD3001 + 0.300GPD3002                 : ARR( 0.162E-13, -1400., 0.0);
+{ 28272} G2P3007 +PERO3              =  0.460G1P3008 + 0.270GPD3001 + 0.270GPD3002                 : ARR( 0.488E-13, -1250., 0.0);
+{ 28273} G2P3007 +PERO5              =  0.460G1P3008 + 0.270GPD3001 + 0.270GPD3002                 : ARR( 0.183E-11,   450., 0.0);
+{ 28274} G2P3007 +PERO6              =  0.300G1P3008 + 0.350GPD3001 + 0.350GPD3002                 : ARR( 0.168E-13, -1300., 0.0);
+{ 28275} G2P3007 +PERO9              =  0.650G1P3008 + 0.350GPD3002                                : ARR( 0.100E-10,     0., 0.0);
+{ 28276} G1P3008                     =       GCO     +      GDD2000 +      GNO2                    : ARR( 0.200E+15,  7148., 0.0);
+{ 28277} G1P3008                     =       GPD2000 +      GCO     +      GHO2                    : ARR( 0.200E+15,  8078., 0.0);
+{ 28278} GPN500R                     =       G3N500O +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 28279} GPN500R +GHO                =       G2P501U                                               : ARR( 0.335E-13,     0., 0.0);
+{ 28280} GPN500R +GHO                =       GPN500S +      GNO2                                   : ARR( 0.191E-13,     0., 0.0);
+{ 28281} GPN500R +GHO                =       GPN500f +      GNO2                                   : ARR( 0.236E-13,     0., 0.0);
+{ 28282} GPN500R +GHO                =       G2P501W                                               : ARR( 0.172E-12,     0., 0.0);
+{ 28283} GPN500R+HV               =       G1P500G +      GNO2                                   :  0.100E+01*SUN;
+{ 28284} GPN500R+HV               =       G1P500R +      GNO2                                   :  0.100E+01*SUN;
+{ 28285} GPN500R+HV               =       G3N500O +      GNO2                                   :  0.100E+01*SUN;
+{ 28286} G2P501U +GNO                =       G1P501l +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 28287} G2P501U +GNO                =       GPN500x                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 28288} G2P501U +GHO2               =       GPH5026                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 28289} G2P501U +GNO3               =       G1P501l +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 28290} G2P501U +MEPERO             =  0.480G1P501l + 0.260GPN501Z + 0.260GPN501d                 : ARR( 0.164E-12,  -795., 0.0);
+{ 28291} G2P501U +PERO1              =  0.600G1P501l + 0.200GPN501Z + 0.200GPN501d                 : ARR( 0.126E-12,  -850., 0.0);
+{ 28292} G2P501U +PERO2              =  0.560G1P501l + 0.220GPN501Z + 0.220GPN501d                 : ARR( 0.471E-13, -1350., 0.0);
+{ 28293} G2P501U +PERO3              =  0.600G1P501l + 0.200GPN501Z + 0.200GPN501d                 : ARR( 0.142E-12, -1200., 0.0);
+{ 28294} G2P501U +PERO5              =  0.600G1P501l + 0.200GPN501Z + 0.200GPN501d                 : ARR( 0.533E-11,   500., 0.0);
+{ 28295} G2P501U +PERO6              =  0.460G1P501l + 0.270GPN501Z + 0.270GPN501d                 : ARR( 0.488E-13, -1250., 0.0);
+{ 28296} G2P501U +PERO9              =  0.800G1P501l + 0.200GPN501d                                : ARR( 0.100E-10,     0., 0.0);
+{ 28297} G2P501W +GNO                =       G1P501m +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 28298} G2P501W +GNO                =       GPN501e                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 28299} G2P501W +GHO2               =       GPH5027                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 28300} G2P501W +GNO3               =       G1P501m +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 28301} G2P501W +MEPERO             =  0.340G1P501m + 0.330GPN501f + 0.330GPN501g                 : ARR( 0.565E-13,  -845., 0.0);
+{ 28302} G2P501W +PERO1              =  0.460G1P501m + 0.270GPN501f + 0.270GPN501g                 : ARR( 0.434E-13,  -900., 0.0);
+{ 28303} G2P501W +PERO2              =  0.400G1P501m + 0.300GPN501f + 0.300GPN501g                 : ARR( 0.162E-13, -1400., 0.0);
+{ 28304} G2P501W +PERO3              =  0.460G1P501m + 0.270GPN501f + 0.270GPN501g                 : ARR( 0.488E-13, -1250., 0.0);
+{ 28305} G2P501W +PERO5              =  0.460G1P501m + 0.270GPN501f + 0.270GPN501g                 : ARR( 0.183E-11,   450., 0.0);
+{ 28306} G2P501W +PERO6              =  0.300G1P501m + 0.350GPN501f + 0.350GPN501g                 : ARR( 0.168E-13, -1300., 0.0);
+{ 28307} G2P501W +PERO9              =  0.650G1P501m + 0.350GPN501g                                : ARR( 0.100E-10,     0., 0.0);
+{ 28308} G1P501l +OXYGEN             =       GPN501d +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 28309} G1P501l                     =       G2P501X                                               : ARR( 0.160E+12,  3940., 0.0);
+{ 28310} G1P501l                     =       GPN400H +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7042., 0.0);
+{ 28311} G1P501m                     =       GNN4007 +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 28312} G2P501X +GNO                =       G1P501n +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 28313} G2P501X +GNO                =       GPN501h                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 28314} G2P501X +GHO2               =       GPH5028                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 28315} G2P501X +GNO3               =       G1P501n +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 28316} G2P501X +MEPERO             =  0.340G1P501n + 0.330GPN501i + 0.330GPN501j                 : ARR( 0.565E-13,  -845., 0.0);
+{ 28317} G2P501X +PERO1              =  0.460G1P501n + 0.270GPN501i + 0.270GPN501j                 : ARR( 0.434E-13,  -900., 0.0);
+{ 28318} G2P501X +PERO2              =  0.400G1P501n + 0.300GPN501i + 0.300GPN501j                 : ARR( 0.162E-13, -1400., 0.0);
+{ 28319} G2P501X +PERO3              =  0.460G1P501n + 0.270GPN501i + 0.270GPN501j                 : ARR( 0.488E-13, -1250., 0.0);
+{ 28320} G2P501X +PERO5              =  0.460G1P501n + 0.270GPN501i + 0.270GPN501j                 : ARR( 0.183E-11,   450., 0.0);
+{ 28321} G2P501X +PERO6              =  0.300G1P501n + 0.350GPN501i + 0.350GPN501j                 : ARR( 0.168E-13, -1300., 0.0);
+{ 28322} G2P501X +PERO9              =  0.650G1P501n + 0.350GPN501j                                : ARR( 0.100E-10,     0., 0.0);
+{ 28323} G1P501n                     =       GPN501k +      GHO2                                   : ARR( 0.160E+12,  3252., 0.0);
+{ 28324} G1P501n                     =       GNN400E +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 28325} GPH500M                     =       G3H500L +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 28326} GPH500M +GHO                =       GPN500S +      GHO                                    : ARR( 0.700E-11,     0., 0.0);
+{ 28327} GPH500M +GHO                =       G2P500F                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 28328} GPH500M+HV               =       G1P500G +      GHO                                    :  0.100E+01*SUN;
+{ 28329} GPH500M+HV               =       G1P501o +      GNO2                                   :  0.100E+01*SUN;
+{ 28330} GPH500M+HV               =       G3H500L +      GNO2                                   :  0.100E+01*SUN;
+{ 28331} G1P501o                     =       GD02000 +      GPD3000 +      GHO                     : ARR( 0.200E+15,  4533., 0.0);
+{ 28332} GPN500S                     =       G3N500U +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 28333} GPN500S +GHO                =       G2P501Y                                               : ARR( 0.102E-12,     0., 0.0);
+{ 28334} GPN500S +GHO                =       GPK500D +      GNO2                                   : ARR( 0.718E-13,     0., 0.0);
+{ 28335} GPN500S +GHO                =       G2P501Z                                               : ARR( 0.172E-12,     0., 0.0);
+{ 28336} GPN500S+HV               =       G3K2000 +      GPD3000 +      GNO2                    :  0.100E+01*SUN;
+{ 28337} GPN500S+HV               =       G1P500T +      GNO2                                   :  0.100E+01*SUN;
+{ 28338} GPN500S+HV               =       G3N500U +      GNO2                                   :  0.100E+01*SUN;
+{ 28339} G2P501Y +GNO                =       G1P501p +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 28340} G2P501Y +GNO                =       GPN500y                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 28341} G2P501Y +GHO2               =       GPH501v                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 28342} G2P501Y +GNO3               =       G1P501p +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 28343} G2P501Y +MEPERO             =  0.480G1P501p + 0.260GPN501a + 0.260GPN501l                 : ARR( 0.164E-12,  -795., 0.0);
+{ 28344} G2P501Y +PERO1              =  0.600G1P501p + 0.200GPN501a + 0.200GPN501l                 : ARR( 0.126E-12,  -850., 0.0);
+{ 28345} G2P501Y +PERO2              =  0.560G1P501p + 0.220GPN501a + 0.220GPN501l                 : ARR( 0.471E-13, -1350., 0.0);
+{ 28346} G2P501Y +PERO3              =  0.600G1P501p + 0.200GPN501a + 0.200GPN501l                 : ARR( 0.142E-12, -1200., 0.0);
+{ 28347} G2P501Y +PERO5              =  0.600G1P501p + 0.200GPN501a + 0.200GPN501l                 : ARR( 0.533E-11,   500., 0.0);
+{ 28348} G2P501Y +PERO6              =  0.460G1P501p + 0.270GPN501a + 0.270GPN501l                 : ARR( 0.488E-13, -1250., 0.0);
+{ 28349} G2P501Y +PERO9              =  0.800G1P501p + 0.200GPN501l                                : ARR( 0.100E-10,     0., 0.0);
+{ 28350} G2P501Z +GNO                =       G1P501q +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 28351} G2P501Z +GNO                =       GPN501m                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 28352} G2P501Z +GHO2               =       GPH5029                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 28353} G2P501Z +GNO3               =       G1P501q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 28354} G2P501Z +MEPERO             =  0.340G1P501q + 0.330GPN501n + 0.330GPN501o                 : ARR( 0.565E-13,  -845., 0.0);
+{ 28355} G2P501Z +PERO1              =  0.460G1P501q + 0.270GPN501n + 0.270GPN501o                 : ARR( 0.434E-13,  -900., 0.0);
+{ 28356} G2P501Z +PERO2              =  0.400G1P501q + 0.300GPN501n + 0.300GPN501o                 : ARR( 0.162E-13, -1400., 0.0);
+{ 28357} G2P501Z +PERO3              =  0.460G1P501q + 0.270GPN501n + 0.270GPN501o                 : ARR( 0.488E-13, -1250., 0.0);
+{ 28358} G2P501Z +PERO5              =  0.460G1P501q + 0.270GPN501n + 0.270GPN501o                 : ARR( 0.183E-11,   450., 0.0);
+{ 28359} G2P501Z +PERO6              =  0.300G1P501q + 0.350GPN501n + 0.350GPN501o                 : ARR( 0.168E-13, -1300., 0.0);
+{ 28360} G2P501Z +PERO9              =  0.650G1P501q + 0.350GPN501o                                : ARR( 0.100E-10,     0., 0.0);
+{ 28361} G1P501p                     =       G3P4001 +      GCH2O                                  : ARR( 0.200E+15,  3640., 0.0);
+{ 28362} G1P501q                     =       GND4008 +      GCO     +      GNO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 28363} G3P4001 +GHO2               =  0.800GPG4001 + 0.200GPA4002 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 28364} G3P4001 +GNO                =       GPD3000 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 28365} G3P4001 +GNO2               =       GPP4001                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 28366} G3P4001 +GNO3               =       GPD3000 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 28367} G3P4001 +MEPERO             =  0.685GPD3000 + 0.315GPA4002 + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 28368} G3P4001 +PERO1              =  0.800GPD3000 + 0.200GPA4002 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 28369} G3P4001 +PERO2              =  0.750GPD3000 + 0.250GPA4002 + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 28370} G3P4001 +PERO3              =  0.800GPD3000 + 0.200GPA4002 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 28371} G3P4001 +PERO5              =  0.650GPD3000 + 0.350GPA4002 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 28372} G3P4001 +PERO6              =  0.650GPD3000 + 0.350GPA4002 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 28373} G3P4001 +PERO9              =       GPD3000 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 28374} GPN500T                     =       G3N500P +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 28375} GPN500T +GHO                =       G2P501a                                               : ARR( 0.173E-12,     0., 0.0);
+{ 28376} GPN500T +GHO                =       G2P501b                                               : ARR( 0.238E-12,     0., 0.0);
+{ 28377} GPN500T +GHO                =       GPN500g +      GNO2                                   : ARR( 0.244E-13,     0., 0.0);
+{ 28378} GPN500T+HV               =       G1P500Y +      GNO2                                   :  0.100E+01*SUN;
+{ 28379} GPN500T+HV               =       G1P500H +      GNO2                                   :  0.100E+01*SUN;
+{ 28380} GPN500T+HV               =       G3N500P +      GNO2                                   :  0.100E+01*SUN;
+{ 28381} G2P501a +GNO                =       G1P501r +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 28382} G2P501a +GNO                =       GPN500z                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 28383} G2P501a +GHO2               =       GPH502A                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 28384} G2P501a +GNO3               =       G1P501r +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 28385} G2P501a +MEPERO             =  0.480G1P501r + 0.260GPN500X + 0.260GPN501p                 : ARR( 0.146E-12,  -445., 0.0);
+{ 28386} G2P501a +PERO1              =  0.600G1P501r + 0.200GPN500X + 0.200GPN501p                 : ARR( 0.112E-12,  -500., 0.0);
+{ 28387} G2P501a +PERO2              =  0.560G1P501r + 0.220GPN500X + 0.220GPN501p                 : ARR( 0.418E-13, -1000., 0.0);
+{ 28388} G2P501a +PERO3              =  0.600G1P501r + 0.200GPN500X + 0.200GPN501p                 : ARR( 0.126E-12,  -850., 0.0);
+{ 28389} G2P501a +PERO5              =  0.600G1P501r + 0.200GPN500X + 0.200GPN501p                 : ARR( 0.473E-11,   850., 0.0);
+{ 28390} G2P501a +PERO6              =  0.460G1P501r + 0.270GPN500X + 0.270GPN501p                 : ARR( 0.434E-13,  -900., 0.0);
+{ 28391} G2P501a +PERO9              =  0.800G1P501r + 0.200GPN501p                                : ARR( 0.100E-10,     0., 0.0);
+{ 28392} G2P501b +GNO                =       G1P501s +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 28393} G2P501b +GNO                =       GPN501e                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 28394} G2P501b +GHO2               =       GPH502B                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 28395} G2P501b +GNO3               =       G1P501s +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 28396} G2P501b +MEPERO             =  0.340G1P501s + 0.330GPN500n + 0.330GPN501m                 : ARR( 0.565E-13,  -845., 0.0);
+{ 28397} G2P501b +PERO1              =  0.460G1P501s + 0.270GPN500n + 0.270GPN501m                 : ARR( 0.434E-13,  -900., 0.0);
+{ 28398} G2P501b +PERO2              =  0.400G1P501s + 0.300GPN500n + 0.300GPN501m                 : ARR( 0.162E-13, -1400., 0.0);
+{ 28399} G2P501b +PERO3              =  0.460G1P501s + 0.270GPN500n + 0.270GPN501m                 : ARR( 0.488E-13, -1250., 0.0);
+{ 28400} G2P501b +PERO5              =  0.460G1P501s + 0.270GPN500n + 0.270GPN501m                 : ARR( 0.183E-11,   450., 0.0);
+{ 28401} G2P501b +PERO6              =  0.300G1P501s + 0.350GPN500n + 0.350GPN501m                 : ARR( 0.168E-13, -1300., 0.0);
+{ 28402} G2P501b +PERO9              =  0.650G1P501s + 0.350GPN501m                                : ARR( 0.100E-10,     0., 0.0);
+{ 28403} G1P501r +OXYGEN             =       GPN501p +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{ 28404} G1P501r                     =       GPN500Z +      GNO2                                   : ARR( 0.800E+11,  4964., 0.0);
+{ 28405} G1P501s                     =       GD02000 +      GPN3006 +      GNO2                    : ARR( 0.200E+15,  6112., 0.0);
+{ 28406} GPH500N                     =       G3H501Q +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 28407} GPH500N +GHO                =       GPN500W +      GHO                                    : ARR( 0.533E-11,     0., 0.0);
+{ 28408} GPH500N +GHO                =       G2P500G                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 28409} GPH500N+HV               =       G1P501t +      GNO2                                   :  0.100E+01*SUN;
+{ 28410} GPH500N+HV               =       G1P500H +      GHO                                    :  0.100E+01*SUN;
+{ 28411} GPH500N+HV               =       G3H501Q +      GNO2                                   :  0.100E+01*SUN;
+{ 28412} G1P501t                     =       GD03000 +      GPD2000 +      GHO                     : ARR( 0.200E+15,  4883., 0.0);
+{ 28413} GPN500U                     =       G3N500S +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 28414} GPN500U +GHO                =       G2P500I                                               : ARR( 0.168E-12,     0., 0.0);
+{ 28415} GPN500U +GHO                =       G2P501c                                               : ARR( 0.230E-12,     0., 0.0);
+{ 28416} GPN500U +GHO                =       GPK500E +      GNO2                                   : ARR( 0.118E-12,     0., 0.0);
+{ 28417} GPN500U +GHO                =       GPN500W +      GHO2                                   : ARR( 0.126E-11,     0., 0.0);
+{ 28418} GPN500U +GHO                =       G1P500H                                               : ARR( 0.210E-17,    85., 2.0);
+{ 28419} GPN500U+HV               =       G1P500a +      GNO2                                   :  0.100E+01*SUN;
+{ 28420} GPN500U+HV               =       G3N500S +      GNO2                                   :  0.100E+01*SUN;
+{ 28421} G2P501c +GNO                =       G1P501u +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 28422} G2P501c +GNO                =       GPN501f                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 28423} G2P501c +GHO2               =       GPH502C                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 28424} G2P501c +GNO3               =       G1P501u +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 28425} G2P501c +MEPERO             =  0.340G1P501u + 0.330GPN500o + 0.330GPN501n                 : ARR( 0.565E-13,  -845., 0.0);
+{ 28426} G2P501c +PERO1              =  0.460G1P501u + 0.270GPN500o + 0.270GPN501n                 : ARR( 0.434E-13,  -900., 0.0);
+{ 28427} G2P501c +PERO2              =  0.400G1P501u + 0.300GPN500o + 0.300GPN501n                 : ARR( 0.162E-13, -1400., 0.0);
+{ 28428} G2P501c +PERO3              =  0.460G1P501u + 0.270GPN500o + 0.270GPN501n                 : ARR( 0.488E-13, -1250., 0.0);
+{ 28429} G2P501c +PERO5              =  0.460G1P501u + 0.270GPN500o + 0.270GPN501n                 : ARR( 0.183E-11,   450., 0.0);
+{ 28430} G2P501c +PERO6              =  0.300G1P501u + 0.350GPN500o + 0.350GPN501n                 : ARR( 0.168E-13, -1300., 0.0);
+{ 28431} G2P501c +PERO9              =  0.650G1P501u + 0.350GPN501n                                : ARR( 0.100E-10,     0., 0.0);
+{ 28432} G1P501u                     =       GD02000 +      GPD3001 +      GNO2                    : ARR( 0.200E+15,  6112., 0.0);
+{ 28433} GPN500W                     =       G3N501I +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 28434} GPN500W +GHO                =       G2P501d                                               : ARR( 0.168E-12,     0., 0.0);
+{ 28435} GPN500W +GHO                =       G2P501e                                               : ARR( 0.230E-12,     0., 0.0);
+{ 28436} GPN500W +GHO                =       GPK500F +      GNO2                                   : ARR( 0.718E-13,     0., 0.0);
+{ 28437} GPN500W+HV               =       G1P500c +      GNO2                                   :  0.100E+01*SUN;
+{ 28438} GPN500W+HV               =       G3N4004 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 28439} G3N501I +GHO2               =  0.800GGN500e + 0.200GAN500W + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 28440} G3N501I +GNO                =       G3N4004 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 28441} G3N501I +GNO2               =       GPN500W                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 28442} G3N501I +GNO3               =       G3N4004 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 28443} G3N501I +MEPERO             =  0.685G3N4004 + 0.315GAN500W + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 28444} G3N501I +PERO1              =  0.800G3N4004 + 0.200GAN500W + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 28445} G3N501I +PERO2              =  0.750G3N4004 + 0.250GAN500W + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 28446} G3N501I +PERO3              =  0.800G3N4004 + 0.200GAN500W + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 28447} G3N501I +PERO5              =  0.650G3N4004 + 0.350GAN500W + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 28448} G3N501I +PERO6              =  0.650G3N4004 + 0.350GAN500W + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 28449} G3N501I +PERO9              =       G3N4004 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 28450} G2P501d +GNO                =       G1P501v +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 28451} G2P501d +GNO                =       GPN5011                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 28452} G2P501d +GHO2               =       GPH502D                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 28453} G2P501d +GNO3               =       G1P501v +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 28454} G2P501d +MEPERO             =  0.480G1P501v + 0.260GPN500Z + 0.260GPN501q                 : ARR( 0.146E-12,  -445., 0.0);
+{ 28455} G2P501d +PERO1              =  0.600G1P501v + 0.200GPN500Z + 0.200GPN501q                 : ARR( 0.112E-12,  -500., 0.0);
+{ 28456} G2P501d +PERO2              =  0.560G1P501v + 0.220GPN500Z + 0.220GPN501q                 : ARR( 0.418E-13, -1000., 0.0);
+{ 28457} G2P501d +PERO3              =  0.600G1P501v + 0.200GPN500Z + 0.200GPN501q                 : ARR( 0.126E-12,  -850., 0.0);
+{ 28458} G2P501d +PERO5              =  0.600G1P501v + 0.200GPN500Z + 0.200GPN501q                 : ARR( 0.473E-11,   850., 0.0);
+{ 28459} G2P501d +PERO6              =  0.460G1P501v + 0.270GPN500Z + 0.270GPN501q                 : ARR( 0.434E-13,  -900., 0.0);
+{ 28460} G2P501d +PERO9              =  0.800G1P501v + 0.200GPN501q                                : ARR( 0.100E-10,     0., 0.0);
+{ 28461} G2P501e +GNO                =       G1P501w +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 28462} G2P501e +GNO                =       GPN501g                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 28463} G2P501e +GHO2               =       GPH502E                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 28464} G2P501e +GNO3               =       G1P501w +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 28465} G2P501e +MEPERO             =  0.340G1P501w + 0.330GPN500q + 0.330GPN501o                 : ARR( 0.565E-13,  -845., 0.0);
+{ 28466} G2P501e +PERO1              =  0.460G1P501w + 0.270GPN500q + 0.270GPN501o                 : ARR( 0.434E-13,  -900., 0.0);
+{ 28467} G2P501e +PERO2              =  0.400G1P501w + 0.300GPN500q + 0.300GPN501o                 : ARR( 0.162E-13, -1400., 0.0);
+{ 28468} G2P501e +PERO3              =  0.460G1P501w + 0.270GPN500q + 0.270GPN501o                 : ARR( 0.488E-13, -1250., 0.0);
+{ 28469} G2P501e +PERO5              =  0.460G1P501w + 0.270GPN500q + 0.270GPN501o                 : ARR( 0.183E-11,   450., 0.0);
+{ 28470} G2P501e +PERO6              =  0.300G1P501w + 0.350GPN500q + 0.350GPN501o                 : ARR( 0.168E-13, -1300., 0.0);
+{ 28471} G2P501e +PERO9              =  0.650G1P501w + 0.350GPN501o                                : ARR( 0.100E-10,     0., 0.0);
+{ 28472} G1P501v +OXYGEN             =       GPN501q +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{ 28473} G1P501w                     =       GD02000 +      GPD3002 +      GNO2                    : ARR( 0.200E+15,  5840., 0.0);
+{ 28474} GPN500X                     =       G3N500d +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 28475} GPN500X +GHO                =       GPN501p +      GHO2                                   : ARR( 0.419E-11,     0., 0.0);
+{ 28476} GPN500X +GHO                =       G2P501f                                               : ARR( 0.294E-12,     0., 0.0);
+{ 28477} GPN500X+HV               =       G1P501x +      GNO2                                   :  0.100E+01*SUN;
+{ 28478} GPN500X+HV               =       G1P500I +      GNO2                                   :  0.100E+01*SUN;
+{ 28479} GPN500X+HV               =       G3N500d +      GNO2                                   :  0.100E+01*SUN;
+{ 28480} G2P501f +GNO                =       G1P501y +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 28481} G2P501f +GNO                =       GPN501h                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 28482} G2P501f +GHO2               =       GPH502F                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 28483} G2P501f +GNO3               =       G1P501y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 28484} G2P501f +MEPERO             =  0.340G1P501y + 0.330GPN501Q + 0.330GPN501r                 : ARR( 0.565E-13,  -845., 0.0);
+{ 28485} G2P501f +PERO1              =  0.460G1P501y + 0.270GPN501Q + 0.270GPN501r                 : ARR( 0.434E-13,  -900., 0.0);
+{ 28486} G2P501f +PERO2              =  0.400G1P501y + 0.300GPN501Q + 0.300GPN501r                 : ARR( 0.162E-13, -1400., 0.0);
+{ 28487} G2P501f +PERO3              =  0.460G1P501y + 0.270GPN501Q + 0.270GPN501r                 : ARR( 0.488E-13, -1250., 0.0);
+{ 28488} G2P501f +PERO5              =  0.460G1P501y + 0.270GPN501Q + 0.270GPN501r                 : ARR( 0.183E-11,   450., 0.0);
+{ 28489} G2P501f +PERO6              =  0.300G1P501y + 0.350GPN501Q + 0.350GPN501r                 : ARR( 0.168E-13, -1300., 0.0);
+{ 28490} G2P501f +PERO9              =  0.650G1P501y + 0.350GPN501r                                : ARR( 0.100E-10,     0., 0.0);
+{ 28491} G1P501x                     =       G2O2000 +      GPN3006                                : ARR( 0.200E+15,  6244., 0.0);
+{ 28492} G1P501x                     =       GDO3000 +      GPD2000 +      GNO2                    : ARR( 0.200E+15,  6422., 0.0);
+{ 28493} G1P501y                     =       GCH2O   +      GPN400Z +      GHO2                    : ARR( 0.200E+15,  5296., 0.0);
+{ 28494} G1P501y                     =       GDO2000 +      GPN3006 +      GNO2                    : ARR( 0.200E+15,  6367., 0.0);
+{ 28495} GPH500O                     =       G3H500b +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 28496} GPH500O +GHO                =       GPH502G +      GHO2                                   : ARR( 0.419E-11,     0., 0.0);
+{ 28497} GPH500O +GHO                =       GPN500Z +      GHO                                    : ARR( 0.524E-11,     0., 0.0);
+{ 28498} GPH500O +GHO                =       G2P500H                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 28499} GPH500O+HV               =       G1P501z +      GNO2                                   :  0.100E+01*SUN;
+{ 28500} GPH500O+HV               =       G1P500I +      GHO                                    :  0.100E+01*SUN;
+{ 28501} GPH500O+HV               =       G3H500b +      GNO2                                   :  0.100E+01*SUN;
+{ 28502} G1P501z                     =       GDO3000 +      GPD2000 +      GHO                     : ARR( 0.200E+15,  4883., 0.0);
+{ 28503} GPN500Y                     =       G3N500e +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 28504} GPN500Y +GHO                =       GPN500b +      GHO2                                   : ARR( 0.454E-11,     0., 0.0);
+{ 28505} GPN500Y +GHO                =       GPN500Z +      GHO2                                   : ARR( 0.142E-11,     0., 0.0);
+{ 28506} GPN500Y+HV               =       G1P501F +      GNO2                                   :  0.100E+01*SUN;
+{ 28507} GPN500Y+HV               =       G3N500e +      GNO2                                   :  0.100E+01*SUN;
+{ 28508} GPN500Z                     =       G3N501J +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 28509} GPN500Z +GHO                =       GPN501q +      GHO2                                   : ARR( 0.422E-11,     0., 0.0);
+{ 28510} GPN500Z +GHO                =       G2P501g                                               : ARR( 0.297E-12,     0., 0.0);
+{ 28511} GPN500Z+HV               =       G1P501H +      GNO2                                   :  0.100E+01*SUN;
+{ 28512} GPN500Z+HV               =       G3N4008 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 28513} G3N501J +GHO2               =  0.800GGN500p + 0.200GAN500Z + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 28514} G3N501J +GNO                =       G3N4008 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 28515} G3N501J +GNO2               =       GPN500Z                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 28516} G3N501J +GNO3               =       G3N4008 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 28517} G3N501J +MEPERO             =  0.685G3N4008 + 0.315GAN500Z + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 28518} G3N501J +PERO1              =  0.800G3N4008 + 0.200GAN500Z + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 28519} G3N501J +PERO2              =  0.750G3N4008 + 0.250GAN500Z + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 28520} G3N501J +PERO3              =  0.800G3N4008 + 0.200GAN500Z + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 28521} G3N501J +PERO5              =  0.650G3N4008 + 0.350GAN500Z + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 28522} G3N501J +PERO6              =  0.650G3N4008 + 0.350GAN500Z + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 28523} G3N501J +PERO9              =       G3N4008 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 28524} G2P501g +GNO                =       G1P5021 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 28525} G2P501g +GNO                =       GPN501j                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 28526} G2P501g +GHO2               =       GPH502H                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 28527} G2P501g +GNO3               =       G1P5021 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 28528} G2P501g +MEPERO             =  0.340G1P5021 + 0.330GPN500u + 0.330GPN501s                 : ARR( 0.565E-13,  -845., 0.0);
+{ 28529} G2P501g +PERO1              =  0.460G1P5021 + 0.270GPN500u + 0.270GPN501s                 : ARR( 0.434E-13,  -900., 0.0);
+{ 28530} G2P501g +PERO2              =  0.400G1P5021 + 0.300GPN500u + 0.300GPN501s                 : ARR( 0.162E-13, -1400., 0.0);
+{ 28531} G2P501g +PERO3              =  0.460G1P5021 + 0.270GPN500u + 0.270GPN501s                 : ARR( 0.488E-13, -1250., 0.0);
+{ 28532} G2P501g +PERO5              =  0.460G1P5021 + 0.270GPN500u + 0.270GPN501s                 : ARR( 0.183E-11,   450., 0.0);
+{ 28533} G2P501g +PERO6              =  0.300G1P5021 + 0.350GPN500u + 0.350GPN501s                 : ARR( 0.168E-13, -1300., 0.0);
+{ 28534} G2P501g +PERO9              =  0.650G1P5021 + 0.350GPN501s                                : ARR( 0.100E-10,     0., 0.0);
+{ 28535} G1P5021                     =       GCH2O   +      GPN400a +      GHO2                    : ARR( 0.200E+15,  4465., 0.0);
+{ 28536} GPN500a                     =       G3N500W +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 28537} GPN500a +GHO                =       GPN500v +      GNO2                                   : ARR( 0.126E-12,     0., 0.0);
+{ 28538} GPN500a +GHO                =       GPN5011 +      GHO2                                   : ARR( 0.134E-11,     0., 0.0);
+{ 28539} GPN500a +GHO                =       G1P500l                                               : ARR( 0.224E-17,    85., 2.0);
+{ 28540} GPN500a+HV               =       G1P500J +      GNO2                                   :  0.100E+01*SUN;
+{ 28541} GPN500a+HV               =       G1P5019 +      GNO2                                   :  0.100E+01*SUN;
+{ 28542} GPN500a+HV               =       G3N500W +      GNO2                                   :  0.100E+01*SUN;
+{ 28543} GPH500P                     =       G3H501W +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 28544} GPH500P +GHO                =       GPN500b +      GHO                                    : ARR( 0.165E-10,     0., 0.0);
+{ 28545} GPH500P +GHO                =       GPH502D +      GHO2                                   : ARR( 0.129E-11,     0., 0.0);
+{ 28546} GPH500P +GHO                =       G2P500I                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 28547} GPH500P+HV               =       G1P500J +      GHO                                    :  0.100E+01*SUN;
+{ 28548} GPH500P+HV               =       G1P5022 +      GNO2                                   :  0.100E+01*SUN;
+{ 28549} GPH500P+HV               =       G3H501W +      GNO2                                   :  0.100E+01*SUN;
+{ 28550} G1P5022                     =       GHD3000 +      GPD2000 +      GHO2                    : ARR( 0.200E+15,  3675., 0.0);
+{ 28551} GPN500b                     =       G3N500f +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 28552} GPN500b +GHO                =       GPN501q +      GHO2                                   : ARR( 0.130E-11,     0., 0.0);
+{ 28553} GPN500b +GHO                =       G3P5004                                               : ARR( 0.214E-10,     0., 0.0);
+{ 28554} GPN500b +GNO3               =       G3P5004 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 28555} GPN500b+HV               =       G3N500f +      GNO2                                   :  0.100E+01*SUN;
+{ 28556} GPN500b+HV               =       G1P501I +      GNO2                                   :  0.100E+01*SUN;
+{ 28557} GPN500b+HV               =       G2P400a +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 28558} GPN500b+HV               =       GPN3005 +      GD02000                                :  0.100E+01*SUN;
+{ 28559} G3P5004 +GHO2               =  0.800GPG5004 + 0.200GPA5006 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 28560} G3P5004 +GNO                =       G2P400a +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 28561} G3P5004 +GNO2               =       GPP5003                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 28562} G3P5004 +GNO3               =       G2P400a +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 28563} G3P5004 +MEPERO             =  0.685G2P400a + 0.315GPA5006 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 28564} G3P5004 +PERO1              =  0.800G2P400a + 0.200GPA5006 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 28565} G3P5004 +PERO2              =  0.750G2P400a + 0.250GPA5006 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 28566} G3P5004 +PERO3              =  0.800G2P400a + 0.200GPA5006 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 28567} G3P5004 +PERO5              =  0.650G2P400a + 0.350GPA5006 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 28568} G3P5004 +PERO6              =  0.650G2P400a + 0.350GPA5006 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 28569} G3P5004 +PERO9              =       G2P400a +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 28570} G2P400a +GNO                =       G1P400e +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 28571} G2P400a +GNO                =       GPN400T                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 28572} G2P400a +GHO2               =       GPH400h                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 28573} G2P400a +GNO3               =       G1P400e +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 28574} G2P400a +MEPERO             =  0.480G1P400e + 0.260GPN400K + 0.260GPN400Q                 : ARR( 0.164E-12,  -795., 0.0);
+{ 28575} G2P400a +PERO1              =  0.600G1P400e + 0.200GPN400K + 0.200GPN400Q                 : ARR( 0.126E-12,  -850., 0.0);
+{ 28576} G2P400a +PERO2              =  0.560G1P400e + 0.220GPN400K + 0.220GPN400Q                 : ARR( 0.471E-13, -1350., 0.0);
+{ 28577} G2P400a +PERO3              =  0.600G1P400e + 0.200GPN400K + 0.200GPN400Q                 : ARR( 0.142E-12, -1200., 0.0);
+{ 28578} G2P400a +PERO5              =  0.600G1P400e + 0.200GPN400K + 0.200GPN400Q                 : ARR( 0.533E-11,   500., 0.0);
+{ 28579} G2P400a +PERO6              =  0.460G1P400e + 0.270GPN400K + 0.270GPN400Q                 : ARR( 0.488E-13, -1250., 0.0);
+{ 28580} G2P400a +PERO9              =  0.800G1P400e + 0.200GPN400Q                                : ARR( 0.100E-10,     0., 0.0);
+{ 28581} G1P400e +OXYGEN             =       GPN400Q +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 28582} G1P400e                     =       GPD3001 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7175., 0.0);
+{ 28583} GNN400L +GHO                =       G2N400p                                               : ARR( 0.335E-13,     0., 0.0);
+{ 28584} GNN400L +GHO                =       GNN400M +      GNO2                                   : ARR( 0.191E-13,     0., 0.0);
+{ 28585} GNN400L +GHO                =       GNN400Q +      GNO2                                   : ARR( 0.471E-14,     0., 0.0);
+{ 28586} GNN400L +GHO                =       GNN4007 +      GNO2                                   : ARR( 0.919E-14,     0., 0.0);
+{ 28587} GNN400L+HV               =       G1N400P +      GNO2                                   :  0.100E+01*SUN;
+{ 28588} GNN400L+HV               =       G1N400U +      GNO2                                   :  0.100E+01*SUN;
+{ 28589} GNN400L+HV               =       G1N400b +      GNO2                                   :  0.100E+01*SUN;
+{ 28590} GHN400c +GHO                =       GNN400M +      GHO                                    : ARR( 0.683E-11,     0., 0.0);
+{ 28591} GHN400c +GHO                =       G2N400O                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 28592} GHN400c+HV               =       G1N400P +      GHO                                    :  0.100E+01*SUN;
+{ 28593} GHN400c+HV               =       G1H401A +      GNO2                                   :  0.100E+01*SUN;
+{ 28594} GHN400c+HV               =       G1H400T +      GNO2                                   :  0.100E+01*SUN;
+{ 28595} G1H401A                     =       GD02000 +      GND2000 +      GHO                     : ARR( 0.200E+15,  5229., 0.0);
+{ 28596} GNN400M +GHO                =       G2N400t                                               : ARR( 0.102E-12,     0., 0.0);
+{ 28597} GNN400M +GHO                =       GNK400A +      GNO2                                   : ARR( 0.144E-13,     0., 0.0);
+{ 28598} GNN400M +GHO                =       GND4008 +      GNO2                                   : ARR( 0.919E-14,     0., 0.0);
+{ 28599} GNN400M+HV               =       G3K2000 +      GND2000 +      GNO2                    :  0.100E+01*SUN;
+{ 28600} GNN400M+HV               =       G1N400W +      GNO2                                   :  0.100E+01*SUN;
+{ 28601} GNN400M+HV               =       G1N400e +      GNO2                                   :  0.100E+01*SUN;
+{ 28602} GNN400N +GHO                =       GNN4007 +      GHO2                                   : ARR( 0.869E-12,     0., 0.0);
+{ 28603} GNN400N +GHO                =       G1N400b                                               : ARR( 0.227E-17,    85., 2.0);
+{ 28604} GNN400N+HV               =       G1N400Q +      GNO2                                   :  0.100E+01*SUN;
+{ 28605} GNN400N+HV               =       G1N400X +      GNO2                                   :  0.100E+01*SUN;
+{ 28606} GHN400d +GHO                =       GNK4007 +      GHO                                    : ARR( 0.696E-11,     0., 0.0);
+{ 28607} GHN400d +GHO                =       GHN400p +      GHO2                                   : ARR( 0.835E-12,     0., 0.0);
+{ 28608} GHN400d +GHO                =       G2N400P                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 28609} GHN400d+HV               =       G1N400Q +      GHO                                    :  0.100E+01*SUN;
+{ 28610} GHN400d+HV               =       G1H401B +      GNO2                                   :  0.100E+01*SUN;
+{ 28611} G1H401B                     =       GD02000 +      GDO2000 +      GHO                     : ARR( 0.200E+15,  5231., 0.0);
+{ 28612} G1H401B                     =       GHD3002 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  5296., 0.0);
+{ 28613} GNK4007 +GHO                =       G2N400y                                               : ARR( 0.102E-12,     0., 0.0);
+{ 28614} GNK4007 +GHO                =       GKK4000 +      GNO2                                   : ARR( 0.718E-13,     0., 0.0);
+{ 28615} GNK4007 +GHO                =       GND4008 +      GHO2                                   : ARR( 0.804E-12,     0., 0.0);
+{ 28616} GNK4007 +GHO                =       G1N400e                                               : ARR( 0.210E-17,    85., 2.0);
+{ 28617} GNK4007+HV               =       G3K2000 +      GDO2000 +      GNO2                    :  0.100E+01*SUN;
+{ 28618} GNK4007+HV               =       G1K4006 +      GNO2                                   :  0.100E+01*SUN;
+{ 28619} GNN400O +GHO                =       GNN400E +      GHO2                                   : ARR( 0.165E-11,     0., 0.0);
+{ 28620} GNN400O +GHO                =       G1N400c                                               : ARR( 0.430E-17,    85., 2.0);
+{ 28621} GNN400O+HV               =       G1N400R +      GNO2                                   :  0.200E+01*SUN;
+{ 28622} GHN400e +GHO                =       GNK4008 +      GHO                                    : ARR( 0.887E-11,     0., 0.0);
+{ 28623} GHN400e +GHO                =       GHN400h +      GHO2                                   : ARR( 0.433E-11,     0., 0.0);
+{ 28624} GHN400e +GHO                =       G2N400Q                                               : ARR( 0.204E-11,  -190., 0.0);
+{ 28625} GHN400e+HV               =       G1H401C +      GNO2                                   :  0.100E+01*SUN;
+{ 28626} GHN400e+HV               =       G1N400R +      GHO                                    :  0.100E+01*SUN;
+{ 28627} G1H401C                     =  2.000GDO2000 +      GHO                                    : ARR( 0.200E+15,  4843., 0.0);
+{ 28628} G1H401C                     =       GHD3003 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  5296., 0.0);
+{ 28629} GNK4008 +GHO                =       GND400K +      GHO2                                   : ARR( 0.272E-11,     0., 0.0);
+{ 28630} GNK4008 +GHO                =       GND400L +      GHO2                                   : ARR( 0.891E-12,     0., 0.0);
+{ 28631} GNK4008+HV               =       G3K2001 +      GDO2000 +      GNO2                    :  0.100E+01*SUN;
+{ 28632} GNK4008+HV               =       G1K4008 +      GNO2                                   :  0.100E+01*SUN;
+{ 28633} GHN400f +GHO                =       GNN400Q +      GHO                                    : ARR( 0.170E-11,     0., 0.0);
+{ 28634} GHN400f +GHO                =       G2N400T                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 28635} GHN400f+HV               =       G1H400Q +      GNO2                                   :  0.100E+01*SUN;
+{ 28636} GHN400f+HV               =       G1N400U +      GHO                                    :  0.100E+01*SUN;
+{ 28637} GHN400f+HV               =       G1H400l +      GNO2                                   :  0.100E+01*SUN;
+{ 28638} GHH400L +GHO                =       GHN400g +      GHO                                    : ARR( 0.337E-10,     0., 0.0);
+{ 28639} GHH400L +GHO                =       GHN400j +      GHO                                    : ARR( 0.828E-11,     0., 0.0);
+{ 28640} GHH400L +GHO                =       G2H400O                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 28641} GHH400L +GHO                =       G2H400w                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 28642} GHH400L+HV               =       G1H400Q +      GHO                                    :  0.100E+01*SUN;
+{ 28643} GHH400L+HV               =       G1H401A +      GHO                                    :  0.100E+01*SUN;
+{ 28644} GHH400L+HV               =       G1H400Z +      GNO2                                   :  0.100E+01*SUN;
+{ 28645} G2H400w +GNO                =       G1H401A +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 28646} G2H400w +GNO                =       GHN400c                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 28647} G2H400w +GHO2               =       GHH400L                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 28648} G2H400w +GNO3               =       G1H401A +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 28649} G2H400w +MEPERO             =  0.340G1H401A + 0.330GHN400i + 0.330GHN400j                 : ARR( 0.565E-13,  -845., 0.0);
+{ 28650} G2H400w +PERO1              =  0.460G1H401A + 0.270GHN400i + 0.270GHN400j                 : ARR( 0.434E-13,  -900., 0.0);
+{ 28651} G2H400w +PERO2              =  0.400G1H401A + 0.300GHN400i + 0.300GHN400j                 : ARR( 0.162E-13, -1400., 0.0);
+{ 28652} G2H400w +PERO3              =  0.460G1H401A + 0.270GHN400i + 0.270GHN400j                 : ARR( 0.488E-13, -1250., 0.0);
+{ 28653} G2H400w +PERO5              =  0.460G1H401A + 0.270GHN400i + 0.270GHN400j                 : ARR( 0.183E-11,   450., 0.0);
+{ 28654} G2H400w +PERO6              =  0.300G1H401A + 0.350GHN400i + 0.350GHN400j                 : ARR( 0.168E-13, -1300., 0.0);
+{ 28655} G2H400w +PERO9              =  0.650G1H401A + 0.350GHN400j                                : ARR( 0.100E-10,     0., 0.0);
+{ 28656} GHN400g +GHO                =       GNK400A +      GHO                                    : ARR( 0.517E-11,     0., 0.0);
+{ 28657} GHN400g +GHO                =       G2N400U                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 28658} GHN400g+HV               =       G3K2000 +      GND2000 +      GHO                     :  0.100E+01*SUN;
+{ 28659} GHN400g+HV               =       G1N400W +      GHO                                    :  0.100E+01*SUN;
+{ 28660} GHN400g+HV               =       G1H400d +      GNO2                                   :  0.100E+01*SUN;
+{ 28661} GHH400M +GHO                =       GHD4007 +      GHO                                    : ARR( 0.111E-09,     0., 0.0);
+{ 28662} GHH400M +GHO                =       GHD400I +      GHO                                    : ARR( 0.263E-10,     0., 0.0);
+{ 28663} GHH400M +GHO                =       G3H400L                                               : ARR( 0.218E-10,     0., 0.0);
+{ 28664} GHH400M +GNO3               =       G3H400L +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 28665} GHH400M+HV               =       G1H400R +      GHO                                    :  0.100E+01*SUN;
+{ 28666} GHH400M+HV               =       G1H401D +      GHO                                    :  0.100E+01*SUN;
+{ 28667} GHH400M+HV               =       GHD3002 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 28668} G1H401D                     =       GD02000 +      GDD2000 +      GHO                     : ARR( 0.200E+15,  6644., 0.0);
+{ 28669} G1H401D                     =       GHD3002 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 28670} GHN400h +GHO                =       GND400K +      GHO                                    : ARR( 0.525E-11,     0., 0.0);
+{ 28671} GHN400h +GHO                =       G3H400G                                               : ARR( 0.217E-10,     0., 0.0);
+{ 28672} GHN400h +GHO                =       G2N4011                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 28673} GHN400h +GNO3               =       G3H400G +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 28674} GHN400h+HV               =       G1H400S +      GNO2                                   :  0.100E+01*SUN;
+{ 28675} GHN400h+HV               =       G1N400y +      GHO                                    :  0.100E+01*SUN;
+{ 28676} GHN400h+HV               =       GND3004 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 28677} G2N4011 +GNO                =       G1N400y +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 28678} G2N4011 +GNO                =       GNN400E                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 28679} G2N4011 +GHO2               =       GHN400h                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 28680} G2N4011 +GNO3               =       G1N400y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 28681} G2N4011 +MEPERO             =  0.340G1N400y + 0.330GND4009 + 0.330GND400K                 : ARR( 0.565E-13,  -845., 0.0);
+{ 28682} G2N4011 +PERO1              =  0.460G1N400y + 0.270GND4009 + 0.270GND400K                 : ARR( 0.434E-13,  -900., 0.0);
+{ 28683} G2N4011 +PERO2              =  0.400G1N400y + 0.300GND4009 + 0.300GND400K                 : ARR( 0.162E-13, -1400., 0.0);
+{ 28684} G2N4011 +PERO3              =  0.460G1N400y + 0.270GND4009 + 0.270GND400K                 : ARR( 0.488E-13, -1250., 0.0);
+{ 28685} G2N4011 +PERO5              =  0.460G1N400y + 0.270GND4009 + 0.270GND400K                 : ARR( 0.183E-11,   450., 0.0);
+{ 28686} G2N4011 +PERO6              =  0.300G1N400y + 0.350GND4009 + 0.350GND400K                 : ARR( 0.168E-13, -1300., 0.0);
+{ 28687} G2N4011 +PERO9              =  0.650G1N400y + 0.350GND400K                                : ARR( 0.100E-10,     0., 0.0);
+{ 28688} GGN500R +GHO                =       GGN500U +      GHO2                                   : ARR( 0.215E-11,     0., 0.0);
+{ 28689} GGN500R +GHO                =       G2G501F                                               : ARR( 0.897E-12,     0., 0.0);
+{ 28690} GGN500R +GHO                =       G3N500q                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 28691} GGN500R+HV               =       G1G500F +      GNO2                                   :  0.100E+01*SUN;
+{ 28692} GGN500R+HV               =       G2N400o +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 28693} G2G501F +GNO                =       G1G501W +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 28694} G2G501F +GNO                =       GGN501a                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 28695} G2G501F +GHO2               =       GGH501z                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 28696} G2G501F +GNO3               =       G1G501W +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 28697} G2G501F +MEPERO             =  0.340G1G501W + 0.330GGN501b + 0.330GGN501c                 : ARR( 0.565E-13,  -845., 0.0);
+{ 28698} G2G501F +PERO1              =  0.460G1G501W + 0.270GGN501b + 0.270GGN501c                 : ARR( 0.434E-13,  -900., 0.0);
+{ 28699} G2G501F +PERO2              =  0.400G1G501W + 0.300GGN501b + 0.300GGN501c                 : ARR( 0.162E-13, -1400., 0.0);
+{ 28700} G2G501F +PERO3              =  0.460G1G501W + 0.270GGN501b + 0.270GGN501c                 : ARR( 0.488E-13, -1250., 0.0);
+{ 28701} G2G501F +PERO5              =  0.460G1G501W + 0.270GGN501b + 0.270GGN501c                 : ARR( 0.183E-11,   450., 0.0);
+{ 28702} G2G501F +PERO6              =  0.300G1G501W + 0.350GGN501b + 0.350GGN501c                 : ARR( 0.168E-13, -1300., 0.0);
+{ 28703} G2G501F +PERO9              =  0.650G1G501W + 0.350GGN501c                                : ARR( 0.100E-10,     0., 0.0);
+{ 28704} G1G501W                     =       GND3001 +      GGD2000 +      GHO2                    : ARR( 0.200E+15,  5342., 0.0);
+{ 28705} G1G501W                     =       GND400H +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 28706} GGH500M +GHO                =       GGK5009 +      GHO                                    : ARR( 0.343E-10,     0., 0.0);
+{ 28707} GGH500M +GHO                =       GGH500Q +      GHO2                                   : ARR( 0.105E-10,     0., 0.0);
+{ 28708} GGH500M +GHO                =       G2G500E                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 28709} GGH500M +GHO                =       G3H500P                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 28710} GGH500M+HV               =       G1G500F +      GHO                                    :  0.100E+01*SUN;
+{ 28711} GGH500M+HV               =       G2H400X +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 28712} GGK5009 +GHO                =       GGK500D +      GHO2                                   : ARR( 0.640E-11,     0., 0.0);
+{ 28713} GGK5009 +GHO                =       G2G501G                                               : ARR( 0.278E-11,     0., 0.0);
+{ 28714} GGK5009 +GHO                =       G3K500O                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 28715} GGK5009+HV               =       G3K2000 +      GGD3000 +      GHO2                    :  0.100E+01*SUN;
+{ 28716} GGK5009+HV               =       G2K400A +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 28717} G2G501G +GNO                =       G1G501X +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 28718} G2G501G +GNO                =       GGN501d                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 28719} G2G501G +GHO2               =       GGH5021                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 28720} G2G501G +GNO3               =       G1G501X +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 28721} G2G501G +MEPERO             =  0.340G1G501X + 0.330GGK500S + 0.330GGK500T                 : ARR( 0.565E-13,  -845., 0.0);
+{ 28722} G2G501G +PERO1              =  0.460G1G501X + 0.270GGK500S + 0.270GGK500T                 : ARR( 0.434E-13,  -900., 0.0);
+{ 28723} G2G501G +PERO2              =  0.400G1G501X + 0.300GGK500S + 0.300GGK500T                 : ARR( 0.162E-13, -1400., 0.0);
+{ 28724} G2G501G +PERO3              =  0.460G1G501X + 0.270GGK500S + 0.270GGK500T                 : ARR( 0.488E-13, -1250., 0.0);
+{ 28725} G2G501G +PERO5              =  0.460G1G501X + 0.270GGK500S + 0.270GGK500T                 : ARR( 0.183E-11,   450., 0.0);
+{ 28726} G2G501G +PERO6              =  0.300G1G501X + 0.350GGK500S + 0.350GGK500T                 : ARR( 0.168E-13, -1300., 0.0);
+{ 28727} G2G501G +PERO9              =  0.650G1G501X + 0.350GGK500T                                : ARR( 0.100E-10,     0., 0.0);
+{ 28728} G1G501X                     =       GDK4003 +      GCO     +      GHO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 28729} GGN500S +GHO                =       G2G501H                                               : ARR( 0.121E-11,     0., 0.0);
+{ 28730} GGN500S +GHO                =       GGN500W +      GHO2                                   : ARR( 0.218E-11,     0., 0.0);
+{ 28731} GGN500S +GHO                =       G3N501G                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 28732} GGN500S+HV               =       G1G500G +      GNO2                                   :  0.100E+01*SUN;
+{ 28733} GGN500S+HV               =       GDO4004 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 28734} G2G501H +GNO                =       G1G501Y +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 28735} G2G501H +GNO                =       GGN501a                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 28736} G2G501H +GHO2               =       GGH5022                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 28737} G2G501H +GNO3               =       G1G501Y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 28738} G2G501H +MEPERO             =  0.340G1G501Y + 0.330GGN501e + 0.330GGN501d                 : ARR( 0.565E-13,  -845., 0.0);
+{ 28739} G2G501H +PERO1              =  0.460G1G501Y + 0.270GGN501e + 0.270GGN501d                 : ARR( 0.434E-13,  -900., 0.0);
+{ 28740} G2G501H +PERO2              =  0.400G1G501Y + 0.300GGN501e + 0.300GGN501d                 : ARR( 0.162E-13, -1400., 0.0);
+{ 28741} G2G501H +PERO3              =  0.460G1G501Y + 0.270GGN501e + 0.270GGN501d                 : ARR( 0.488E-13, -1250., 0.0);
+{ 28742} G2G501H +PERO5              =  0.460G1G501Y + 0.270GGN501e + 0.270GGN501d                 : ARR( 0.183E-11,   450., 0.0);
+{ 28743} G2G501H +PERO6              =  0.300G1G501Y + 0.350GGN501e + 0.350GGN501d                 : ARR( 0.168E-13, -1300., 0.0);
+{ 28744} G2G501H +PERO9              =  0.650G1G501Y + 0.350GGN501d                                : ARR( 0.100E-10,     0., 0.0);
+{ 28745} G1G501Y                     =       GD02000 +      GGN3005 +      GHO2                    : ARR( 0.200E+15,  3365., 0.0);
+{ 28746} GGH500N +GHO                =       GGH500R +      GHO2                                   : ARR( 0.107E-10,     0., 0.0);
+{ 28747} GGH500N +GHO                =       GGK500A +      GHO                                    : ARR( 0.260E-10,     0., 0.0);
+{ 28748} GGH500N +GHO                =       G2G500F                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 28749} GGH500N +GHO                =       G3H501S                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 28750} GGH500N+HV               =       G1G500G +      GHO                                    :  0.100E+01*SUN;
+{ 28751} GGH500N+HV               =       GDO4004 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 28752} GGO5009 +GHO                =       G2G501I                                               : ARR( 0.117E-11,     0., 0.0);
+{ 28753} GGO5009 +GHO                =       GGK500E +      GHO2                                   : ARR( 0.105E-10,     0., 0.0);
+{ 28754} GGO5009 +GHO                =       GGK500A +      GHO2                                   : ARR( 0.641E-11,     0., 0.0);
+{ 28755} GGO5009 +GHO                =       G3K500W                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 28756} GGO5009+HV               =       GDO4004 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 28757} G2G501I +GNO                =       G1G501Z +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 28758} G2G501I +GNO                =       GGN501b                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 28759} G2G501I +GHO2               =       GGH5023                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 28760} G2G501I +GNO3               =       G1G501Z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 28761} G2G501I +MEPERO             =  0.340G1G501Z + 0.330GGO500B + 0.330GGK500S                 : ARR( 0.565E-13,  -845., 0.0);
+{ 28762} G2G501I +PERO1              =  0.460G1G501Z + 0.270GGO500B + 0.270GGK500S                 : ARR( 0.434E-13,  -900., 0.0);
+{ 28763} G2G501I +PERO2              =  0.400G1G501Z + 0.300GGO500B + 0.300GGK500S                 : ARR( 0.162E-13, -1400., 0.0);
+{ 28764} G2G501I +PERO3              =  0.460G1G501Z + 0.270GGO500B + 0.270GGK500S                 : ARR( 0.488E-13, -1250., 0.0);
+{ 28765} G2G501I +PERO5              =  0.460G1G501Z + 0.270GGO500B + 0.270GGK500S                 : ARR( 0.183E-11,   450., 0.0);
+{ 28766} G2G501I +PERO6              =  0.300G1G501Z + 0.350GGO500B + 0.350GGK500S                 : ARR( 0.168E-13, -1300., 0.0);
+{ 28767} G2G501I +PERO9              =  0.650G1G501Z + 0.350GGK500S                                : ARR( 0.100E-10,     0., 0.0);
+{ 28768} G1G501Z                     =       GD02000 +      GGD3001 +      GHO2                    : ARR( 0.200E+15,  3365., 0.0);
+{ 28769} GGK500A +GHO                =       G2G501J                                               : ARR( 0.373E-11,     0., 0.0);
+{ 28770} GGK500A +GHO                =       GGK500F +      GHO2                                   : ARR( 0.643E-11,     0., 0.0);
+{ 28771} GGK500A +GHO                =       G3K500Z                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 28772} GGK500A+HV               =       GAO4002 +      GCO2                                   :  0.100E+01*SUN;
+{ 28773} G2G501J +GNO                =       G1G501a +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 28774} G2G501J +GNO                =       GGN501c                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 28775} G2G501J +GHO2               =       GGH5024                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 28776} G2G501J +GNO3               =       G1G501a +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 28777} G2G501J +MEPERO             =  0.340G1G501a + 0.330GGK500U + 0.330GGK500T                 : ARR( 0.565E-13,  -845., 0.0);
+{ 28778} G2G501J +PERO1              =  0.460G1G501a + 0.270GGK500U + 0.270GGK500T                 : ARR( 0.434E-13,  -900., 0.0);
+{ 28779} G2G501J +PERO2              =  0.400G1G501a + 0.300GGK500U + 0.300GGK500T                 : ARR( 0.162E-13, -1400., 0.0);
+{ 28780} G2G501J +PERO3              =  0.460G1G501a + 0.270GGK500U + 0.270GGK500T                 : ARR( 0.488E-13, -1250., 0.0);
+{ 28781} G2G501J +PERO5              =  0.460G1G501a + 0.270GGK500U + 0.270GGK500T                 : ARR( 0.183E-11,   450., 0.0);
+{ 28782} G2G501J +PERO6              =  0.300G1G501a + 0.350GGK500U + 0.350GGK500T                 : ARR( 0.168E-13, -1300., 0.0);
+{ 28783} G2G501J +PERO9              =  0.650G1G501a + 0.350GGK500T                                : ARR( 0.100E-10,     0., 0.0);
+{ 28784} G3K500Z +GHO2               =  0.800GGK500A + 0.200GAK500I + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 28785} G3K500Z +GNO                =       G3K4004 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 28786} G3K500Z +GNO2               =       GPK500A                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 28787} G3K500Z +GNO3               =       G3K4004 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 28788} G3K500Z +MEPERO             =  0.685G3K4004 + 0.315GAK500I + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 28789} G3K500Z +PERO1              =  0.800G3K4004 + 0.200GAK500I + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 28790} G3K500Z +PERO2              =  0.750G3K4004 + 0.250GAK500I + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 28791} G3K500Z +PERO3              =  0.800G3K4004 + 0.200GAK500I + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 28792} G3K500Z +PERO5              =  0.650G3K4004 + 0.350GAK500I + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 28793} G3K500Z +PERO6              =  0.650G3K4004 + 0.350GAK500I + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 28794} G3K500Z +PERO9              =       G3K4004 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 28795} G1G501a                     =       GD02000 +      GGD3002 +      GHO2                    : ARR( 0.200E+15,  3092., 0.0);
+{ 28796} GGN500T +GHO                =       GGN500j +      GHO2                                   : ARR( 0.106E-10,     0., 0.0);
+{ 28797} GGN500T +GHO                =       GGN500t +      GHO2                                   : ARR( 0.647E-11,     0., 0.0);
+{ 28798} GGN500T +GHO                =       G3N501D                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 28799} GGN500T+HV               =       G1G500H +      GNO2                                   :  0.100E+01*SUN;
+{ 28800} GGN500T+HV               =       GND400C +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 28801} GGH500O +GHO                =       GGD5003 +      GHO                                    : ARR( 0.168E-10,     0., 0.0);
+{ 28802} GGH500O +GHO                =       GGH501p +      GHO2                                   : ARR( 0.107E-10,     0., 0.0);
+{ 28803} GGH500O +GHO                =       GGH5025 +      GHO2                                   : ARR( 0.655E-11,     0., 0.0);
+{ 28804} GGH500O +GHO                =       G2G500G                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 28805} GGH500O +GHO                =       G3H501Y                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 28806} GGH500O+HV               =       G1G500H +      GHO                                    :  0.100E+01*SUN;
+{ 28807} GGH500O+HV               =       GHD400B +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 28808} GGO500A +GHO                =       GGD5003 +      GHO2                                   : ARR( 0.409E-11,     0., 0.0);
+{ 28809} GGO500A +GHO                =       G2G501K                                               : ARR( 0.144E-11,     0., 0.0);
+{ 28810} GGO500A +GHO                =       GGK500G +      GHO2                                   : ARR( 0.105E-10,     0., 0.0);
+{ 28811} GGO500A +GHO                =       GGK500B +      GHO2                                   : ARR( 0.639E-11,     0., 0.0);
+{ 28812} GGO500A +GHO                =       G3K500R                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 28813} GGO500A+HV               =       GDO4003 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 28814} G2G501K +GNO                =       G1G501b +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 28815} G2G501K +GNO                =       GGN501f                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 28816} G2G501K +GHO2               =       GGH5026                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 28817} G2G501K +GNO3               =       G1G501b +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 28818} G2G501K +MEPERO             =  0.340G1G501b + 0.330GGO500C + 0.330GGK500W                 : ARR( 0.565E-13,  -845., 0.0);
+{ 28819} G2G501K +PERO1              =  0.460G1G501b + 0.270GGO500C + 0.270GGK500W                 : ARR( 0.434E-13,  -900., 0.0);
+{ 28820} G2G501K +PERO2              =  0.400G1G501b + 0.300GGO500C + 0.300GGK500W                 : ARR( 0.162E-13, -1400., 0.0);
+{ 28821} G2G501K +PERO3              =  0.460G1G501b + 0.270GGO500C + 0.270GGK500W                 : ARR( 0.488E-13, -1250., 0.0);
+{ 28822} G2G501K +PERO5              =  0.460G1G501b + 0.270GGO500C + 0.270GGK500W                 : ARR( 0.183E-11,   450., 0.0);
+{ 28823} G2G501K +PERO6              =  0.300G1G501b + 0.350GGO500C + 0.350GGK500W                 : ARR( 0.168E-13, -1300., 0.0);
+{ 28824} G2G501K +PERO9              =  0.650G1G501b + 0.350GGK500W                                : ARR( 0.100E-10,     0., 0.0);
+{ 28825} G1G501b                     =       GDO2000 +      GGD3001 +      GHO2                    : ARR( 0.200E+15,  3619., 0.0);
+{ 28826} GGD5003 +GHO                =       GGD500E +      GHO2                                   : ARR( 0.640E-11,     0., 0.0);
+{ 28827} GGD5003 +GHO                =       GGD5005 +      GHO2                                   : ARR( 0.333E-10,     0., 0.0);
+{ 28828} GGD5003 +GHO                =       G3G5003                                               : ARR( 0.211E-10,     0., 0.0);
+{ 28829} GGD5003 +GHO                =       G3D5004                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 28830} GGD5003 +GNO3               =       G3G5003 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 28831} GGD5003+HV               =       GDD4001 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 28832} GGD5003+HV               =       G2G400O +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 28833} GGD5003+HV               =       GGK3001 +      GD02000                                :  0.100E+01*SUN;
+{ 28834} G3G5003 +GHO2               =  0.800GGG5002 + 0.200GAG5006 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 28835} G3G5003 +GNO                =       G2G400O +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 28836} G3G5003 +GNO2               =       GPG5005                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 28837} G3G5003 +GNO3               =       G2G400O +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 28838} G3G5003 +MEPERO             =  0.685G2G400O + 0.315GAG5006 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 28839} G3G5003 +PERO1              =  0.800G2G400O + 0.200GAG5006 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 28840} G3G5003 +PERO2              =  0.750G2G400O + 0.250GAG5006 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 28841} G3G5003 +PERO3              =  0.800G2G400O + 0.200GAG5006 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 28842} G3G5003 +PERO5              =  0.650G2G400O + 0.350GAG5006 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 28843} G3G5003 +PERO6              =  0.650G2G400O + 0.350GAG5006 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 28844} G3G5003 +PERO9              =       G2G400O +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 28845} G2G400O +GNO                =       G1G400R +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 28846} G2G400O +GNO                =       GGN400C                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 28847} G2G400O +GHO2               =       GGH400e                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 28848} G2G400O +GNO3               =       G1G400R +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 28849} G2G400O +MEPERO             =  0.480G1G400R + 0.260GGO4006 + 0.260GGD4006                 : ARR( 0.164E-12,  -795., 0.0);
+{ 28850} G2G400O +PERO1              =  0.600G1G400R + 0.200GGO4006 + 0.200GGD4006                 : ARR( 0.126E-12,  -850., 0.0);
+{ 28851} G2G400O +PERO2              =  0.560G1G400R + 0.220GGO4006 + 0.220GGD4006                 : ARR( 0.471E-13, -1350., 0.0);
+{ 28852} G2G400O +PERO3              =  0.600G1G400R + 0.200GGO4006 + 0.200GGD4006                 : ARR( 0.142E-12, -1200., 0.0);
+{ 28853} G2G400O +PERO5              =  0.600G1G400R + 0.200GGO4006 + 0.200GGD4006                 : ARR( 0.533E-11,   500., 0.0);
+{ 28854} G2G400O +PERO6              =  0.460G1G400R + 0.270GGO4006 + 0.270GGD4006                 : ARR( 0.488E-13, -1250., 0.0);
+{ 28855} G2G400O +PERO9              =  0.800G1G400R + 0.200GGD4006                                : ARR( 0.100E-10,     0., 0.0);
+{ 28856} GGK500B +GHO                =       GGD500E +      GHO2                                   : ARR( 0.408E-11,     0., 0.0);
+{ 28857} GGK500B +GHO                =       G2G501L                                               : ARR( 0.455E-11,     0., 0.0);
+{ 28858} GGK500B +GHO                =       GGK500H +      GHO2                                   : ARR( 0.638E-11,     0., 0.0);
+{ 28859} GGK500B +GHO                =       G3K500a                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 28860} GGK500B+HV               =       GAO4005 +      GCO2                                   :  0.100E+01*SUN;
+{ 28861} G2G501L +GNO                =       G1G501c +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 28862} G2G501L +GNO                =       GGN501g                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 28863} G2G501L +GHO2               =       GGH5027                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 28864} G2G501L +GNO3               =       G1G501c +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 28865} G2G501L +MEPERO             =  0.340G1G501c + 0.330GGK500P + 0.330GGK500X                 : ARR( 0.565E-13,  -845., 0.0);
+{ 28866} G2G501L +PERO1              =  0.460G1G501c + 0.270GGK500P + 0.270GGK500X                 : ARR( 0.434E-13,  -900., 0.0);
+{ 28867} G2G501L +PERO2              =  0.400G1G501c + 0.300GGK500P + 0.300GGK500X                 : ARR( 0.162E-13, -1400., 0.0);
+{ 28868} G2G501L +PERO3              =  0.460G1G501c + 0.270GGK500P + 0.270GGK500X                 : ARR( 0.488E-13, -1250., 0.0);
+{ 28869} G2G501L +PERO5              =  0.460G1G501c + 0.270GGK500P + 0.270GGK500X                 : ARR( 0.183E-11,   450., 0.0);
+{ 28870} G2G501L +PERO6              =  0.300G1G501c + 0.350GGK500P + 0.350GGK500X                 : ARR( 0.168E-13, -1300., 0.0);
+{ 28871} G2G501L +PERO9              =  0.650G1G501c + 0.350GGK500X                                : ARR( 0.100E-10,     0., 0.0);
+{ 28872} G3K500a +GHO2               =  0.800GGK500B + 0.200GAK500N + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 28873} G3K500a +GNO                =       G3K4006 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 28874} G3K500a +GNO2               =       GPK500B                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 28875} G3K500a +GNO3               =       G3K4006 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 28876} G3K500a +MEPERO             =  0.685G3K4006 + 0.315GAK500N + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 28877} G3K500a +PERO1              =  0.800G3K4006 + 0.200GAK500N + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 28878} G3K500a +PERO2              =  0.750G3K4006 + 0.250GAK500N + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 28879} G3K500a +PERO3              =  0.800G3K4006 + 0.200GAK500N + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 28880} G3K500a +PERO5              =  0.650G3K4006 + 0.350GAK500N + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 28881} G3K500a +PERO6              =  0.650G3K4006 + 0.350GAK500N + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 28882} G3K500a +PERO9              =       G3K4006 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 28883} G1G501c                     =       GCH2O   +      GGD4003 +      GHO2                    : ARR( 0.200E+15,  4465., 0.0);
+{ 28884} G1G501c                     =       GDO2000 +      GGD3002 +      GHO2                    : ARR( 0.200E+15,  3347., 0.0);
+{ 28885} GAN500c +GHO                =       GAN500d +      GHO2                                   : ARR( 0.223E-11,     0., 0.0);
+{ 28886} GAN500c +GHO                =       G2A501d                                               : ARR( 0.691E-12,     0., 0.0);
+{ 28887} GAN500c +GHO                =       G2N400o +      GCO2                                   : ARR( 0.564E-12,     0., 0.0);
+{ 28888} GAN500c+HV               =       G1A500K +      GNO2                                   :  0.100E+01*SUN;
+{ 28889} G2A501d +GNO                =       G1A501v +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 28890} G2A501d +GNO                =       GAN501q                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 28891} G2A501d +GHO2               =       GAH502J                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 28892} G2A501d +GNO3               =       G1A501v +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 28893} G2A501d +MEPERO             =  0.340G1A501v + 0.330GAN501r + 0.330GAN501s                 : ARR( 0.565E-13,  -845., 0.0);
+{ 28894} G2A501d +PERO1              =  0.460G1A501v + 0.270GAN501r + 0.270GAN501s                 : ARR( 0.434E-13,  -900., 0.0);
+{ 28895} G2A501d +PERO2              =  0.400G1A501v + 0.300GAN501r + 0.300GAN501s                 : ARR( 0.162E-13, -1400., 0.0);
+{ 28896} G2A501d +PERO3              =  0.460G1A501v + 0.270GAN501r + 0.270GAN501s                 : ARR( 0.488E-13, -1250., 0.0);
+{ 28897} G2A501d +PERO5              =  0.460G1A501v + 0.270GAN501r + 0.270GAN501s                 : ARR( 0.183E-11,   450., 0.0);
+{ 28898} G2A501d +PERO6              =  0.300G1A501v + 0.350GAN501r + 0.350GAN501s                 : ARR( 0.168E-13, -1300., 0.0);
+{ 28899} G2A501d +PERO9              =  0.650G1A501v + 0.350GAN501s                                : ARR( 0.100E-10,     0., 0.0);
+{ 28900} G1A501v                     =       GND3001 +      GAD2000 +      GHO2                    : ARR( 0.200E+15,  5342., 0.0);
+{ 28901} G1A501v                     =       GND400H +      GCO     +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 28902} GAH500Q +GHO                =       GAK5009 +      GHO                                    : ARR( 0.345E-10,     0., 0.0);
+{ 28903} GAH500Q +GHO                =       GAH500S +      GHO2                                   : ARR( 0.106E-10,     0., 0.0);
+{ 28904} GAH500Q +GHO                =       G2A500J                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 28905} GAH500Q+HV               =       G1A500K +      GHO                                    :  0.100E+01*SUN;
+{ 28906} GAK5009 +GHO                =       GAK500B +      GHO2                                   : ARR( 0.646E-11,     0., 0.0);
+{ 28907} GAK5009 +GHO                =       G2A501e                                               : ARR( 0.208E-11,     0., 0.0);
+{ 28908} GAK5009 +GHO                =       G2K400A +      GCO2                                   : ARR( 0.534E-12,     0., 0.0);
+{ 28909} GAK5009+HV               =       G3K2000 +      GAD3000 +      GHO2                    :  0.100E+01*SUN;
+{ 28910} G2A501e +GNO                =       G1A501w +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 28911} G2A501e +GNO                =       GAN501t                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 28912} G2A501e +GHO2               =       GAH502K                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 28913} G2A501e +GNO3               =       G1A501w +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 28914} G2A501e +MEPERO             =  0.340G1A501w + 0.330GAK500R + 0.330GAK500S                 : ARR( 0.565E-13,  -845., 0.0);
+{ 28915} G2A501e +PERO1              =  0.460G1A501w + 0.270GAK500R + 0.270GAK500S                 : ARR( 0.434E-13,  -900., 0.0);
+{ 28916} G2A501e +PERO2              =  0.400G1A501w + 0.300GAK500R + 0.300GAK500S                 : ARR( 0.162E-13, -1400., 0.0);
+{ 28917} G2A501e +PERO3              =  0.460G1A501w + 0.270GAK500R + 0.270GAK500S                 : ARR( 0.488E-13, -1250., 0.0);
+{ 28918} G2A501e +PERO5              =  0.460G1A501w + 0.270GAK500R + 0.270GAK500S                 : ARR( 0.183E-11,   450., 0.0);
+{ 28919} G2A501e +PERO6              =  0.300G1A501w + 0.350GAK500R + 0.350GAK500S                 : ARR( 0.168E-13, -1300., 0.0);
+{ 28920} G2A501e +PERO9              =  0.650G1A501w + 0.350GAK500S                                : ARR( 0.100E-10,     0., 0.0);
+{ 28921} G1A501w                     =       GDK4003 +      GCO     +      GHO                     : ARR( 0.200E+15,  4342., 0.0);
+{ 28922} GPN500c                     =       G3N500q +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 28923} GPN500c +GHO                =       GPN500f +      GHO2                                   : ARR( 0.225E-11,     0., 0.0);
+{ 28924} GPN500c +GHO                =       G2P501h                                               : ARR( 0.941E-12,     0., 0.0);
+{ 28925} GPN500c+HV               =       G1P500K +      GNO2                                   :  0.100E+01*SUN;
+{ 28926} GPN500c+HV               =       G3N500q +      GNO2                                   :  0.100E+01*SUN;
+{ 28927} G2P501h +GNO                =       G1P5023 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 28928} G2P501h +GNO                =       GPN501t                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 28929} G2P501h +GHO2               =       GPH502I                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 28930} G2P501h +GNO3               =       G1P5023 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 28931} G2P501h +MEPERO             =  0.340G1P5023 + 0.330GPN501u + 0.330GPN501v                 : ARR( 0.565E-13,  -845., 0.0);
+{ 28932} G2P501h +PERO1              =  0.460G1P5023 + 0.270GPN501u + 0.270GPN501v                 : ARR( 0.434E-13,  -900., 0.0);
+{ 28933} G2P501h +PERO2              =  0.400G1P5023 + 0.300GPN501u + 0.300GPN501v                 : ARR( 0.162E-13, -1400., 0.0);
+{ 28934} G2P501h +PERO3              =  0.460G1P5023 + 0.270GPN501u + 0.270GPN501v                 : ARR( 0.488E-13, -1250., 0.0);
+{ 28935} G2P501h +PERO5              =  0.460G1P5023 + 0.270GPN501u + 0.270GPN501v                 : ARR( 0.183E-11,   450., 0.0);
+{ 28936} G2P501h +PERO6              =  0.300G1P5023 + 0.350GPN501u + 0.350GPN501v                 : ARR( 0.168E-13, -1300., 0.0);
+{ 28937} G2P501h +PERO9              =  0.650G1P5023 + 0.350GPN501v                                : ARR( 0.100E-10,     0., 0.0);
+{ 28938} G1P5023                     =       GND3001 +      GPD2000 +      GHO2                    : ARR( 0.200E+15,  5342., 0.0);
+{ 28939} G1P5023                     =       GND400H +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 28940} GPH500Q                     =       G3H500P +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 28941} GPH500Q +GHO                =       GPK5009 +      GHO                                    : ARR( 0.343E-10,     0., 0.0);
+{ 28942} GPH500Q +GHO                =       GPH500U +      GHO2                                   : ARR( 0.106E-10,     0., 0.0);
+{ 28943} GPH500Q +GHO                =       G2P500J                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 28944} GPH500Q+HV               =       G1P500K +      GHO                                    :  0.100E+01*SUN;
+{ 28945} GPH500Q+HV               =       G3H500P +      GNO2                                   :  0.100E+01*SUN;
+{ 28946} GPK5009                     =       G3K500O +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 28947} GPK5009 +GHO                =       GPK500D +      GHO2                                   : ARR( 0.645E-11,     0., 0.0);
+{ 28948} GPK5009 +GHO                =       G2P501i                                               : ARR( 0.281E-11,     0., 0.0);
+{ 28949} GPK5009+HV               =       G3K2000 +      GPD3000 +      GHO2                    :  0.100E+01*SUN;
+{ 28950} GPK5009+HV               =       G3K500O +      GNO2                                   :  0.100E+01*SUN;
+{ 28951} G2P501i +GNO                =       G1P5024 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 28952} G2P501i +GNO                =       GPN501w                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 28953} G2P501i +GHO2               =       GPH502J                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 28954} G2P501i +GNO3               =       G1P5024 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 28955} G2P501i +MEPERO             =  0.340G1P5024 + 0.330GPK500S + 0.330GPK500T                 : ARR( 0.565E-13,  -845., 0.0);
+{ 28956} G2P501i +PERO1              =  0.460G1P5024 + 0.270GPK500S + 0.270GPK500T                 : ARR( 0.434E-13,  -900., 0.0);
+{ 28957} G2P501i +PERO2              =  0.400G1P5024 + 0.300GPK500S + 0.300GPK500T                 : ARR( 0.162E-13, -1400., 0.0);
+{ 28958} G2P501i +PERO3              =  0.460G1P5024 + 0.270GPK500S + 0.270GPK500T                 : ARR( 0.488E-13, -1250., 0.0);
+{ 28959} G2P501i +PERO5              =  0.460G1P5024 + 0.270GPK500S + 0.270GPK500T                 : ARR( 0.183E-11,   450., 0.0);
+{ 28960} G2P501i +PERO6              =  0.300G1P5024 + 0.350GPK500S + 0.350GPK500T                 : ARR( 0.168E-13, -1300., 0.0);
+{ 28961} G2P501i +PERO9              =  0.650G1P5024 + 0.350GPK500T                                : ARR( 0.100E-10,     0., 0.0);
+{ 28962} G1P5024                     =       GDK4003 +      GCO     +      GNO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 28963} GPN500d                     =       G3N501G +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 28964} GPN500d +GHO                =       G2P501j                                               : ARR( 0.128E-11,     0., 0.0);
+{ 28965} GPN500d +GHO                =       GPN500g +      GHO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 28966} GPN500d+HV               =       G1P500L +      GNO2                                   :  0.100E+01*SUN;
+{ 28967} GPN500d+HV               =       G3N501G +      GNO2                                   :  0.100E+01*SUN;
+{ 28968} G2P501j +GNO                =       G1P5025 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 28969} G2P501j +GNO                =       GPN501t                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 28970} G2P501j +GHO2               =       GPH502K                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 28971} G2P501j +GNO3               =       G1P5025 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 28972} G2P501j +MEPERO             =  0.340G1P5025 + 0.330GPN501x + 0.330GPN501w                 : ARR( 0.565E-13,  -845., 0.0);
+{ 28973} G2P501j +PERO1              =  0.460G1P5025 + 0.270GPN501x + 0.270GPN501w                 : ARR( 0.434E-13,  -900., 0.0);
+{ 28974} G2P501j +PERO2              =  0.400G1P5025 + 0.300GPN501x + 0.300GPN501w                 : ARR( 0.162E-13, -1400., 0.0);
+{ 28975} G2P501j +PERO3              =  0.460G1P5025 + 0.270GPN501x + 0.270GPN501w                 : ARR( 0.488E-13, -1250., 0.0);
+{ 28976} G2P501j +PERO5              =  0.460G1P5025 + 0.270GPN501x + 0.270GPN501w                 : ARR( 0.183E-11,   450., 0.0);
+{ 28977} G2P501j +PERO6              =  0.300G1P5025 + 0.350GPN501x + 0.350GPN501w                 : ARR( 0.168E-13, -1300., 0.0);
+{ 28978} G2P501j +PERO9              =  0.650G1P5025 + 0.350GPN501w                                : ARR( 0.100E-10,     0., 0.0);
+{ 28979} G1P5025                     =       GD02000 +      GPN3006 +      GHO2                    : ARR( 0.200E+15,  3365., 0.0);
+{ 28980} GPH500R                     =       G3H501S +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 28981} GPH500R +GHO                =       GPH500W +      GHO2                                   : ARR( 0.107E-10,     0., 0.0);
+{ 28982} GPH500R +GHO                =       GPK500A +      GHO                                    : ARR( 0.261E-10,     0., 0.0);
+{ 28983} GPH500R +GHO                =       G2P500K                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 28984} GPH500R+HV               =       G1P500L +      GHO                                    :  0.100E+01*SUN;
+{ 28985} GPH500R+HV               =       G3H501S +      GNO2                                   :  0.100E+01*SUN;
+{ 28986} GPO5009                     =       G3K500W +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 28987} GPO5009 +GHO                =       G2P501k                                               : ARR( 0.118E-11,     0., 0.0);
+{ 28988} GPO5009 +GHO                =       GPK500E +      GHO2                                   : ARR( 0.106E-10,     0., 0.0);
+{ 28989} GPO5009 +GHO                =       GPK500A +      GHO2                                   : ARR( 0.644E-11,     0., 0.0);
+{ 28990} GPO5009+HV               =       G3K500W +      GNO2                                   :  0.100E+01*SUN;
+{ 28991} G2P501k +GNO                =       G1P5026 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 28992} G2P501k +GNO                =       GPN501u                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 28993} G2P501k +GHO2               =       GPH502L                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 28994} G2P501k +GNO3               =       G1P5026 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 28995} G2P501k +MEPERO             =  0.340G1P5026 + 0.330GPO500B + 0.330GPK500S                 : ARR( 0.565E-13,  -845., 0.0);
+{ 28996} G2P501k +PERO1              =  0.460G1P5026 + 0.270GPO500B + 0.270GPK500S                 : ARR( 0.434E-13,  -900., 0.0);
+{ 28997} G2P501k +PERO2              =  0.400G1P5026 + 0.300GPO500B + 0.300GPK500S                 : ARR( 0.162E-13, -1400., 0.0);
+{ 28998} G2P501k +PERO3              =  0.460G1P5026 + 0.270GPO500B + 0.270GPK500S                 : ARR( 0.488E-13, -1250., 0.0);
+{ 28999} G2P501k +PERO5              =  0.460G1P5026 + 0.270GPO500B + 0.270GPK500S                 : ARR( 0.183E-11,   450., 0.0);
+{ 29000} G2P501k +PERO6              =  0.300G1P5026 + 0.350GPO500B + 0.350GPK500S                 : ARR( 0.168E-13, -1300., 0.0);
+{ 29001} G2P501k +PERO9              =  0.650G1P5026 + 0.350GPK500S                                : ARR( 0.100E-10,     0., 0.0);
+{ 29002} G1P5026                     =       GD02000 +      GPD3001 +      GHO2                    : ARR( 0.200E+15,  3365., 0.0);
+{ 29003} GPK500A                     =       G3K500Z +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 29004} GPK500A +GHO                =       G2P501l                                               : ARR( 0.376E-11,     0., 0.0);
+{ 29005} GPK500A +GHO                =       GPK500F +      GHO2                                   : ARR( 0.648E-11,     0., 0.0);
+{ 29006} GPK500A+HV               =       G3K4004 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 29007} G2P501l +GNO                =       G1P5027 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 29008} G2P501l +GNO                =       GPN501v                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 29009} G2P501l +GHO2               =       GPH502M                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 29010} G2P501l +GNO3               =       G1P5027 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 29011} G2P501l +MEPERO             =  0.340G1P5027 + 0.330GPK500U + 0.330GPK500T                 : ARR( 0.565E-13,  -845., 0.0);
+{ 29012} G2P501l +PERO1              =  0.460G1P5027 + 0.270GPK500U + 0.270GPK500T                 : ARR( 0.434E-13,  -900., 0.0);
+{ 29013} G2P501l +PERO2              =  0.400G1P5027 + 0.300GPK500U + 0.300GPK500T                 : ARR( 0.162E-13, -1400., 0.0);
+{ 29014} G2P501l +PERO3              =  0.460G1P5027 + 0.270GPK500U + 0.270GPK500T                 : ARR( 0.488E-13, -1250., 0.0);
+{ 29015} G2P501l +PERO5              =  0.460G1P5027 + 0.270GPK500U + 0.270GPK500T                 : ARR( 0.183E-11,   450., 0.0);
+{ 29016} G2P501l +PERO6              =  0.300G1P5027 + 0.350GPK500U + 0.350GPK500T                 : ARR( 0.168E-13, -1300., 0.0);
+{ 29017} G2P501l +PERO9              =  0.650G1P5027 + 0.350GPK500T                                : ARR( 0.100E-10,     0., 0.0);
+{ 29018} G1P5027                     =       GD02000 +      GPD3002 +      GHO2                    : ARR( 0.200E+15,  3092., 0.0);
+{ 29019} GPN500e                     =       G3N501D +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 29020} GPN500e +GHO                =       GPN500v +      GHO2                                   : ARR( 0.107E-10,     0., 0.0);
+{ 29021} GPN500e +GHO                =       GPN5013 +      GHO2                                   : ARR( 0.651E-11,     0., 0.0);
+{ 29022} GPN500e+HV               =       G1P500M +      GNO2                                   :  0.100E+01*SUN;
+{ 29023} GPN500e+HV               =       G3N501D +      GNO2                                   :  0.100E+01*SUN;
+{ 29024} GPH500S                     =       G3H501Y +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 29025} GPH500S +GHO                =       GPD5003 +      GHO                                    : ARR( 0.168E-10,     0., 0.0);
+{ 29026} GPH500S +GHO                =       GPH501t +      GHO2                                   : ARR( 0.108E-10,     0., 0.0);
+{ 29027} GPH500S +GHO                =       GPH502N +      GHO2                                   : ARR( 0.658E-11,     0., 0.0);
+{ 29028} GPH500S +GHO                =       G2P500L                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 29029} GPH500S+HV               =       G1P500M +      GHO                                    :  0.100E+01*SUN;
+{ 29030} GPH500S+HV               =       G3H501Y +      GNO2                                   :  0.100E+01*SUN;
+{ 29031} GPO500A                     =       G3K500R +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 29032} GPO500A +GHO                =       GPD5003 +      GHO2                                   : ARR( 0.410E-11,     0., 0.0);
+{ 29033} GPO500A +GHO                =       G2P501m                                               : ARR( 0.144E-11,     0., 0.0);
+{ 29034} GPO500A +GHO                =       GPK500G +      GHO2                                   : ARR( 0.105E-10,     0., 0.0);
+{ 29035} GPO500A +GHO                =       GPK500B +      GHO2                                   : ARR( 0.640E-11,     0., 0.0);
+{ 29036} GPO500A+HV               =       G3K500R +      GNO2                                   :  0.100E+01*SUN;
+{ 29037} G2P501m +GNO                =       G1P5028 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 29038} G2P501m +GNO                =       GPN501y                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 29039} G2P501m +GHO2               =       GPH502O                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 29040} G2P501m +GNO3               =       G1P5028 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 29041} G2P501m +MEPERO             =  0.340G1P5028 + 0.330GPO500C + 0.330GPK500W                 : ARR( 0.565E-13,  -845., 0.0);
+{ 29042} G2P501m +PERO1              =  0.460G1P5028 + 0.270GPO500C + 0.270GPK500W                 : ARR( 0.434E-13,  -900., 0.0);
+{ 29043} G2P501m +PERO2              =  0.400G1P5028 + 0.300GPO500C + 0.300GPK500W                 : ARR( 0.162E-13, -1400., 0.0);
+{ 29044} G2P501m +PERO3              =  0.460G1P5028 + 0.270GPO500C + 0.270GPK500W                 : ARR( 0.488E-13, -1250., 0.0);
+{ 29045} G2P501m +PERO5              =  0.460G1P5028 + 0.270GPO500C + 0.270GPK500W                 : ARR( 0.183E-11,   450., 0.0);
+{ 29046} G2P501m +PERO6              =  0.300G1P5028 + 0.350GPO500C + 0.350GPK500W                 : ARR( 0.168E-13, -1300., 0.0);
+{ 29047} G2P501m +PERO9              =  0.650G1P5028 + 0.350GPK500W                                : ARR( 0.100E-10,     0., 0.0);
+{ 29048} G1P5028                     =       GDO2000 +      GPD3001 +      GHO2                    : ARR( 0.200E+15,  3619., 0.0);
+{ 29049} GPD5003                     =       G3D5004 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 29050} GPD5003 +GHO                =       GPD500E +      GHO2                                   : ARR( 0.640E-11,     0., 0.0);
+{ 29051} GPD5003 +GHO                =       GPD5005 +      GHO2                                   : ARR( 0.333E-10,     0., 0.0);
+{ 29052} GPD5003 +GHO                =       G3P5005                                               : ARR( 0.212E-10,     0., 0.0);
+{ 29053} GPD5003 +GNO3               =       G3P5005 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 29054} GPD5003+HV               =       G3D5004 +      GNO2                                   :  0.100E+01*SUN;
+{ 29055} GPD5003+HV               =       G2P400b +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 29056} GPD5003+HV               =       GPK3001 +      GD02000                                :  0.100E+01*SUN;
+{ 29057} G3P5005 +GHO2               =  0.800GPG5006 + 0.200GPA5007 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 29058} G3P5005 +GNO                =       G2P400b +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 29059} G3P5005 +GNO2               =       GPP5004                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 29060} G3P5005 +GNO3               =       G2P400b +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 29061} G3P5005 +MEPERO             =  0.685G2P400b + 0.315GPA5007 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 29062} G3P5005 +PERO1              =  0.800G2P400b + 0.200GPA5007 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 29063} G3P5005 +PERO2              =  0.750G2P400b + 0.250GPA5007 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 29064} G3P5005 +PERO3              =  0.800G2P400b + 0.200GPA5007 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 29065} G3P5005 +PERO5              =  0.650G2P400b + 0.350GPA5007 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 29066} G3P5005 +PERO6              =  0.650G2P400b + 0.350GPA5007 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 29067} G3P5005 +PERO9              =       G2P400b +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 29068} G2P400b +GNO                =       G1P400Y +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 29069} G2P400b +GNO                =       GPN400C                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 29070} G2P400b +GHO2               =       GPH400g                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 29071} G2P400b +GNO3               =       G1P400Y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 29072} G2P400b +MEPERO             =  0.480G1P400Y + 0.260GPO4006 + 0.260GPD4006                 : ARR( 0.164E-12,  -795., 0.0);
+{ 29073} G2P400b +PERO1              =  0.600G1P400Y + 0.200GPO4006 + 0.200GPD4006                 : ARR( 0.126E-12,  -850., 0.0);
+{ 29074} G2P400b +PERO2              =  0.560G1P400Y + 0.220GPO4006 + 0.220GPD4006                 : ARR( 0.471E-13, -1350., 0.0);
+{ 29075} G2P400b +PERO3              =  0.600G1P400Y + 0.200GPO4006 + 0.200GPD4006                 : ARR( 0.142E-12, -1200., 0.0);
+{ 29076} G2P400b +PERO5              =  0.600G1P400Y + 0.200GPO4006 + 0.200GPD4006                 : ARR( 0.533E-11,   500., 0.0);
+{ 29077} G2P400b +PERO6              =  0.460G1P400Y + 0.270GPO4006 + 0.270GPD4006                 : ARR( 0.488E-13, -1250., 0.0);
+{ 29078} G2P400b +PERO9              =  0.800G1P400Y + 0.200GPD4006                                : ARR( 0.100E-10,     0., 0.0);
+{ 29079} GPK500B                     =       G3K500a +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 29080} GPK500B +GHO                =       GPD500E +      GHO2                                   : ARR( 0.410E-11,     0., 0.0);
+{ 29081} GPK500B +GHO                =       G2P501n                                               : ARR( 0.457E-11,     0., 0.0);
+{ 29082} GPK500B +GHO                =       GPK500H +      GHO2                                   : ARR( 0.640E-11,     0., 0.0);
+{ 29083} GPK500B+HV               =       G3K4006 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 29084} G2P501n +GNO                =       G1P5029 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 29085} G2P501n +GNO                =       GPN501z                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 29086} G2P501n +GHO2               =       GPH502P                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 29087} G2P501n +GNO3               =       G1P5029 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 29088} G2P501n +MEPERO             =  0.340G1P5029 + 0.330GPK500P + 0.330GPK500X                 : ARR( 0.565E-13,  -845., 0.0);
+{ 29089} G2P501n +PERO1              =  0.460G1P5029 + 0.270GPK500P + 0.270GPK500X                 : ARR( 0.434E-13,  -900., 0.0);
+{ 29090} G2P501n +PERO2              =  0.400G1P5029 + 0.300GPK500P + 0.300GPK500X                 : ARR( 0.162E-13, -1400., 0.0);
+{ 29091} G2P501n +PERO3              =  0.460G1P5029 + 0.270GPK500P + 0.270GPK500X                 : ARR( 0.488E-13, -1250., 0.0);
+{ 29092} G2P501n +PERO5              =  0.460G1P5029 + 0.270GPK500P + 0.270GPK500X                 : ARR( 0.183E-11,   450., 0.0);
+{ 29093} G2P501n +PERO6              =  0.300G1P5029 + 0.350GPK500P + 0.350GPK500X                 : ARR( 0.168E-13, -1300., 0.0);
+{ 29094} G2P501n +PERO9              =  0.650G1P5029 + 0.350GPK500X                                : ARR( 0.100E-10,     0., 0.0);
+{ 29095} G1P5029                     =       GCH2O   +      GPD4004 +      GHO2                    : ARR( 0.200E+15,  4465., 0.0);
+{ 29096} G1P5029                     =       GDO2000 +      GPD3002 +      GHO2                    : ARR( 0.200E+15,  3347., 0.0);
+{ 29097} GNN400P +GHO                =       GNK4009 +      GNO2                                   : ARR( 0.100E-12,     0., 0.0);
+{ 29098} GNN400P +GHO                =       GNN400Q +      GHO2                                   : ARR( 0.432E-12,     0., 0.0);
+{ 29099} GNN400P +GHO                =       GND400H +      GNO2                                   : ARR( 0.482E-13,     0., 0.0);
+{ 29100} GNN400P +GHO                =       G1N400U                                               : ARR( 0.220E-17,    85., 2.0);
+{ 29101} GNN400P+HV               =       G1N400S +      GNO2                                   :  0.100E+01*SUN;
+{ 29102} GNN400P+HV               =       G1N400r +      GNO2                                   :  0.100E+01*SUN;
+{ 29103} GHN400i +GHO                =       GNK4009 +      GHO                                    : ARR( 0.338E-10,     0., 0.0);
+{ 29104} GHN400i +GHO                =       GHN400j +      GHO2                                   : ARR( 0.208E-11,     0., 0.0);
+{ 29105} GHN400i +GHO                =       G2N400R                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 29106} GHN400i+HV               =       G1N400S +      GHO                                    :  0.100E+01*SUN;
+{ 29107} GHN400i+HV               =       G1H400b +      GNO2                                   :  0.100E+01*SUN;
+{ 29108} GNK4009 +GHO                =       G2N400L                                               : ARR( 0.102E-12,     0., 0.0);
+{ 29109} GNK4009 +GHO                =       GNK400A +      GHO2                                   : ARR( 0.126E-11,     0., 0.0);
+{ 29110} GNK4009 +GHO                =       GDK4003 +      GNO2                                   : ARR( 0.146E-12,     0., 0.0);
+{ 29111} GNK4009 +GHO                =       G1N400W                                               : ARR( 0.210E-17,    85., 2.0);
+{ 29112} GNK4009+HV               =       G3K2000 +      GND2000 +      GHO2                    :  0.100E+01*SUN;
+{ 29113} GNK4009+HV               =       G1K400A +      GNO2                                   :  0.100E+01*SUN;
+{ 29114} GNO400C +GHO                =       GNK400B +      GHO2                                   : ARR( 0.220E-11,     0., 0.0);
+{ 29115} GNO400C +GHO                =       GND400H +      GHO2                                   : ARR( 0.429E-11,     0., 0.0);
+{ 29116} GNO400C+HV               =       G1O400C +      GNO2                                   :  0.100E+01*SUN;
+{ 29117} GHO400C +GHO                =       GKO4005 +      GHO                                    : ARR( 0.338E-10,     0., 0.0);
+{ 29118} GHO400C +GHO                =       GHK4007 +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 29119} GHO400C +GHO                =       GHD400H +      GHO2                                   : ARR( 0.406E-11,     0., 0.0);
+{ 29120} GHO400C +GHO                =       G2O400C                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 29121} GHO400C+HV               =       G1O400C +      GHO                                    :  0.100E+01*SUN;
+{ 29122} GKO4005 +GHO                =       GKK4000 +      GHO2                                   : ARR( 0.641E-11,     0., 0.0);
+{ 29123} GKO4005 +GHO                =       GDK4003 +      GHO2                                   : ARR( 0.130E-10,     0., 0.0);
+{ 29124} GKO4005+HV               =       G3K2000 +      GDO2000 +      GHO2                    :  0.100E+01*SUN;
+{ 29125} GND400H +GHO                =       GND400I +      GHO2                                   : ARR( 0.128E-11,     0., 0.0);
+{ 29126} GND400H +GHO                =       G3N400A                                               : ARR( 0.212E-10,     0., 0.0);
+{ 29127} GND400H +GNO3               =       G3N400A +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 29128} GND400H+HV               =       G1D400A +      GNO2                                   :  0.100E+01*SUN;
+{ 29129} GND400H+HV               =       GND3001 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 29130} GHD400H +GHO                =       GDK4003 +      GHO                                    : ARR( 0.115E-09,     0., 0.0);
+{ 29131} GHD400H +GHO                =       G3H400M                                               : ARR( 0.224E-10,     0., 0.0);
+{ 29132} GHD400H +GNO3               =       G3H400M +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 29133} GHD400H+HV               =       G1D400A +      GHO                                    :  0.100E+01*SUN;
+{ 29134} GHD400H+HV               =       GHD3002 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 29135} GGH500P +GHO                =       GGD5004 +      GHO                                    : ARR( 0.522E-10,     0., 0.0);
+{ 29136} GGH500P +GHO                =       G2G500H                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 29137} GGH500P +GHO                =       G3H500X                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 29138} GGH500P+HV               =       G1G500I +      GHO                                    :  0.100E+01*SUN;
+{ 29139} GGH500P+HV               =       G3H3000 +      G2G2000                                :  0.100E+01*SUN;
+{ 29140} GGH500P+HV               =       G2H400b +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 29141} GGK500C +GHO                =       GGD5004 +      GHO2                                   : ARR( 0.139E-10,     0., 0.0);
+{ 29142} GGK500C +GHO                =       G3K500Q                                               : ARR( 0.208E-11,  -190., 0.0);
+{ 29143} GGK500C+HV               =       G3K3001 +      G2G2000                                :  0.100E+01*SUN;
+{ 29144} GGK500C+HV               =       G2K4007 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 29145} GGD5004 +GHO                =       G3G5004                                               : ARR( 0.669E-10,     0., 0.0);
+{ 29146} GGD5004 +GHO                =       G3D5005                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 29147} GGD5004 +GNO3               =       G3G5004 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 29148} GGD5004+HV               =  0.500G2D400B + 0.500GHO                                    :  0.100E+01*SUN;
+{ 29149} GGD5004+HV               =       G3G3000 +      G2D2000                                :  0.100E+01*SUN;
+{ 29150} GGD5004+HV               =       G2G400N +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 29151} G3G5004 +GHO2               =  0.800GGG5003 + 0.200GAG5007 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 29152} G3G5004 +GNO                =       G2G400N +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 29153} G3G5004 +GNO2               =       GPG5007                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 29154} G3G5004 +GNO3               =       G2G400N +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 29155} G3G5004 +MEPERO             =  0.685G2G400N + 0.315GAG5007 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 29156} G3G5004 +PERO1              =  0.800G2G400N + 0.200GAG5007 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 29157} G3G5004 +PERO2              =  0.750G2G400N + 0.250GAG5007 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 29158} G3G5004 +PERO3              =  0.800G2G400N + 0.200GAG5007 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 29159} G3G5004 +PERO5              =  0.650G2G400N + 0.350GAG5007 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 29160} G3G5004 +PERO6              =  0.650G2G400N + 0.350GAG5007 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 29161} G3G5004 +PERO9              =       G2G400N +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 29162} GGN500U +GHO                =       G2G501M                                               : ARR( 0.537E-12,     0., 0.0);
+{ 29163} GGN500U +GHO                =       G3N500R                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 29164} GGN500U+HV               =       G1G500J +      GNO2                                   :  0.100E+01*SUN;
+{ 29165} GGN500U+HV               =       G3N3001 +      G2G2000                                :  0.100E+01*SUN;
+{ 29166} GGN500U+HV               =       G2N400b +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 29167} G2G501M +GNO                =       G1G501d +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 29168} G2G501M +GNO                =       GGN501h                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 29169} G2G501M +GHO2               =       GGH5028                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 29170} G2G501M +GNO3               =       G1G501d +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 29171} G2G501M +MEPERO             =  0.340G1G501d + 0.330GGN501i + 0.330GGN501j                 : ARR( 0.565E-13,  -845., 0.0);
+{ 29172} G2G501M +PERO1              =  0.460G1G501d + 0.270GGN501i + 0.270GGN501j                 : ARR( 0.434E-13,  -900., 0.0);
+{ 29173} G2G501M +PERO2              =  0.400G1G501d + 0.300GGN501i + 0.300GGN501j                 : ARR( 0.162E-13, -1400., 0.0);
+{ 29174} G2G501M +PERO3              =  0.460G1G501d + 0.270GGN501i + 0.270GGN501j                 : ARR( 0.488E-13, -1250., 0.0);
+{ 29175} G2G501M +PERO5              =  0.460G1G501d + 0.270GGN501i + 0.270GGN501j                 : ARR( 0.183E-11,   450., 0.0);
+{ 29176} G2G501M +PERO6              =  0.300G1G501d + 0.350GGN501i + 0.350GGN501j                 : ARR( 0.168E-13, -1300., 0.0);
+{ 29177} G2G501M +PERO9              =  0.650G1G501d + 0.350GGN501j                                : ARR( 0.100E-10,     0., 0.0);
+{ 29178} G1G501d                     =       G3N3001 +      GGD2000                                : ARR( 0.200E+15,  5396., 0.0);
+{ 29179} GGH500Q +GHO                =       GGK500D +      GHO                                    : ARR( 0.212E-10,     0., 0.0);
+{ 29180} GGH500Q +GHO                =       G2G500I                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 29181} GGH500Q +GHO                =       G3H500M                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 29182} GGH500Q+HV               =       G1G500J +      GHO                                    :  0.100E+01*SUN;
+{ 29183} GGH500Q+HV               =       G3H3001 +      G2G2000                                :  0.100E+01*SUN;
+{ 29184} GGH500Q+HV               =       G2H400T +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 29185} GGK500D +GHO                =       G2G501N                                               : ARR( 0.538E-12,     0., 0.0);
+{ 29186} GGK500D +GHO                =       G3K500K                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 29187} GGK500D+HV               =       G3K2000 +      G3G3000                                :  0.100E+01*SUN;
+{ 29188} GGK500D+HV               =       G2K4009 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 29189} G2G501N +GNO                =       G1G501e +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 29190} G2G501N +GNO                =       GGN501k                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 29191} G2G501N +GHO2               =       GGH5029                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 29192} G2G501N +GNO3               =       G1G501e +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 29193} G2G501N +MEPERO             =  0.340G1G501e + 0.330GGK500Y + 0.330GGK500Z                 : ARR( 0.565E-13,  -845., 0.0);
+{ 29194} G2G501N +PERO1              =  0.460G1G501e + 0.270GGK500Y + 0.270GGK500Z                 : ARR( 0.434E-13,  -900., 0.0);
+{ 29195} G2G501N +PERO2              =  0.400G1G501e + 0.300GGK500Y + 0.300GGK500Z                 : ARR( 0.162E-13, -1400., 0.0);
+{ 29196} G2G501N +PERO3              =  0.460G1G501e + 0.270GGK500Y + 0.270GGK500Z                 : ARR( 0.488E-13, -1250., 0.0);
+{ 29197} G2G501N +PERO5              =  0.460G1G501e + 0.270GGK500Y + 0.270GGK500Z                 : ARR( 0.183E-11,   450., 0.0);
+{ 29198} G2G501N +PERO6              =  0.300G1G501e + 0.350GGK500Y + 0.350GGK500Z                 : ARR( 0.168E-13, -1300., 0.0);
+{ 29199} G2G501N +PERO9              =  0.650G1G501e + 0.350GGK500Z                                : ARR( 0.100E-10,     0., 0.0);
+{ 29200} G1G501e                     =       G3K2000 +      GGD2000 +      GCO                     : ARR( 0.200E+15,  5653., 0.0);
+{ 29201} GGN500W +GHO                =       G2G501O                                               : ARR( 0.536E-12,     0., 0.0);
+{ 29202} GGN500W +GHO                =       G2G501P                                               : ARR( 0.707E-12,     0., 0.0);
+{ 29203} GGN500W +GHO                =       G3N500z                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 29204} GGN500W+HV               =       G3K3000 +      GGD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 29205} GGN500W+HV               =       G1G500K +      GNO2                                   :  0.100E+01*SUN;
+{ 29206} GGN500W+HV               =       GDK4002 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 29207} G2G501O +GNO                =       G1G501f +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 29208} G2G501O +GNO                =       GGN500v                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 29209} G2G501O +GHO2               =       GGH502A                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 29210} G2G501O +GNO3               =       G1G501f +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 29211} G2G501O +MEPERO             =  0.480G1G501f + 0.260GGN500X + 0.260GGN501l                 : ARR( 0.146E-12,  -445., 0.0);
+{ 29212} G2G501O +PERO1              =  0.600G1G501f + 0.200GGN500X + 0.200GGN501l                 : ARR( 0.112E-12,  -500., 0.0);
+{ 29213} G2G501O +PERO2              =  0.560G1G501f + 0.220GGN500X + 0.220GGN501l                 : ARR( 0.418E-13, -1000., 0.0);
+{ 29214} G2G501O +PERO3              =  0.600G1G501f + 0.200GGN500X + 0.200GGN501l                 : ARR( 0.126E-12,  -850., 0.0);
+{ 29215} G2G501O +PERO5              =  0.600G1G501f + 0.200GGN500X + 0.200GGN501l                 : ARR( 0.473E-11,   850., 0.0);
+{ 29216} G2G501O +PERO6              =  0.460G1G501f + 0.270GGN500X + 0.270GGN501l                 : ARR( 0.434E-13,  -900., 0.0);
+{ 29217} G2G501O +PERO9              =  0.800G1G501f + 0.200GGN501l                                : ARR( 0.100E-10,     0., 0.0);
+{ 29218} G2G501P +GNO                =       G1G501g +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 29219} G2G501P +GNO                =       GGN501h                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 29220} G2G501P +GHO2               =       GGH502B                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 29221} G2G501P +GNO3               =       G1G501g +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 29222} G2G501P +MEPERO             =  0.340G1G501g + 0.330GGN500k + 0.330GGN501k                 : ARR( 0.565E-13,  -845., 0.0);
+{ 29223} G2G501P +PERO1              =  0.460G1G501g + 0.270GGN500k + 0.270GGN501k                 : ARR( 0.434E-13,  -900., 0.0);
+{ 29224} G2G501P +PERO2              =  0.400G1G501g + 0.300GGN500k + 0.300GGN501k                 : ARR( 0.162E-13, -1400., 0.0);
+{ 29225} G2G501P +PERO3              =  0.460G1G501g + 0.270GGN500k + 0.270GGN501k                 : ARR( 0.488E-13, -1250., 0.0);
+{ 29226} G2G501P +PERO5              =  0.460G1G501g + 0.270GGN500k + 0.270GGN501k                 : ARR( 0.183E-11,   450., 0.0);
+{ 29227} G2G501P +PERO6              =  0.300G1G501g + 0.350GGN500k + 0.350GGN501k                 : ARR( 0.168E-13, -1300., 0.0);
+{ 29228} G2G501P +PERO9              =  0.650G1G501g + 0.350GGN501k                                : ARR( 0.100E-10,     0., 0.0);
+{ 29229} G1G501f +OXYGEN             =       GGN501l +      GHO2                                   : ARR( 0.600E-13,   398., 0.0);
+{ 29230} G1G501g                     =       GD02000 +      G3G3001                                : ARR( 0.200E+15,  3868., 0.0);
+{ 29231} G3G3001 +GHO2               =  0.800GGG3001 + 0.200GAG3001 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 29232} G3G3001 +GNO                =       GGD2000 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 29233} G3G3001 +GNO2               =       GPG3001                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 29234} G3G3001 +GNO3               =       GGD2000 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 29235} G3G3001 +MEPERO             =  0.685GGD2000 + 0.315GAG3001 + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 29236} G3G3001 +PERO1              =  0.800GGD2000 + 0.200GAG3001 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 29237} G3G3001 +PERO2              =  0.750GGD2000 + 0.250GAG3001 + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 29238} G3G3001 +PERO3              =  0.800GGD2000 + 0.200GAG3001 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 29239} G3G3001 +PERO5              =  0.650GGD2000 + 0.350GAG3001 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 29240} G3G3001 +PERO6              =  0.650GGD2000 + 0.350GAG3001 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 29241} G3G3001 +PERO9              =       GGD2000 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 29242} GGH500R +GHO                =       GGK500F +      GHO                                    : ARR( 0.162E-10,     0., 0.0);
+{ 29243} GGH500R +GHO                =       G2G500J                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 29244} GGH500R +GHO                =       G3H500r                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 29245} GGH500R+HV               =       G3K3000 +      GGD2000 +      GHO                     :  0.100E+01*SUN;
+{ 29246} GGH500R+HV               =       G1G500K +      GHO                                    :  0.100E+01*SUN;
+{ 29247} GGH500R+HV               =       GDK4002 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 29248} GGK500E +GHO                =       G2G501Q                                               : ARR( 0.540E-12,     0., 0.0);
+{ 29249} GGK500E +GHO                =       G2G501R                                               : ARR( 0.712E-12,     0., 0.0);
+{ 29250} GGK500E +GHO                =       GGK500F +      GHO2                                   : ARR( 0.389E-11,     0., 0.0);
+{ 29251} GGK500E +GHO                =       G3K500G                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 29252} GGK500E+HV               =       G3K3000 +      GGD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 29253} GGK500E+HV               =       GDK4002 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 29254} G2G501Q +GNO                =       G1G501h +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 29255} G2G501Q +GNO                =       GGN500j                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 29256} G2G501Q +GHO2               =       GGH501p                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 29257} G2G501Q +GNO3               =       G1G501h +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 29258} G2G501Q +MEPERO             =  0.480G1G501h + 0.260GGK500G + 0.260GGD5005                 : ARR( 0.146E-12,  -445., 0.0);
+{ 29259} G2G501Q +PERO1              =  0.600G1G501h + 0.200GGK500G + 0.200GGD5005                 : ARR( 0.112E-12,  -500., 0.0);
+{ 29260} G2G501Q +PERO2              =  0.560G1G501h + 0.220GGK500G + 0.220GGD5005                 : ARR( 0.418E-13, -1000., 0.0);
+{ 29261} G2G501Q +PERO3              =  0.600G1G501h + 0.200GGK500G + 0.200GGD5005                 : ARR( 0.126E-12,  -850., 0.0);
+{ 29262} G2G501Q +PERO5              =  0.600G1G501h + 0.200GGK500G + 0.200GGD5005                 : ARR( 0.473E-11,   850., 0.0);
+{ 29263} G2G501Q +PERO6              =  0.460G1G501h + 0.270GGK500G + 0.270GGD5005                 : ARR( 0.434E-13,  -900., 0.0);
+{ 29264} G2G501Q +PERO9              =  0.800G1G501h + 0.200GGD5005                                : ARR( 0.100E-10,     0., 0.0);
+{ 29265} G2G501R +GNO                =       G1G501i +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 29266} G2G501R +GNO                =       GGN501i                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 29267} G2G501R +GHO2               =       GGH502C                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 29268} G2G501R +GNO3               =       G1G501i +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 29269} G2G501R +MEPERO             =  0.340G1G501i + 0.330GGK500K + 0.330GGK500Y                 : ARR( 0.565E-13,  -845., 0.0);
+{ 29270} G2G501R +PERO1              =  0.460G1G501i + 0.270GGK500K + 0.270GGK500Y                 : ARR( 0.434E-13,  -900., 0.0);
+{ 29271} G2G501R +PERO2              =  0.400G1G501i + 0.300GGK500K + 0.300GGK500Y                 : ARR( 0.162E-13, -1400., 0.0);
+{ 29272} G2G501R +PERO3              =  0.460G1G501i + 0.270GGK500K + 0.270GGK500Y                 : ARR( 0.488E-13, -1250., 0.0);
+{ 29273} G2G501R +PERO5              =  0.460G1G501i + 0.270GGK500K + 0.270GGK500Y                 : ARR( 0.183E-11,   450., 0.0);
+{ 29274} G2G501R +PERO6              =  0.300G1G501i + 0.350GGK500K + 0.350GGK500Y                 : ARR( 0.168E-13, -1300., 0.0);
+{ 29275} G2G501R +PERO9              =  0.650G1G501i + 0.350GGK500Y                                : ARR( 0.100E-10,     0., 0.0);
+{ 29276} G1G501h +OXYGEN             =       GGD5005 +      GHO2                                   : ARR( 0.600E-13,   398., 0.0);
+{ 29277} G1G501h                     =       GGK500H +      GHO2                                   : ARR( 0.800E+11,  4228., 0.0);
+{ 29278} G1G501i                     =       GD02000 +      G3G3002                                : ARR( 0.200E+15,  3523., 0.0);
+{ 29279} G3G3002 +GHO2               =  0.800GGG3002 + 0.200GAG3002 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 29280} G3G3002 +GNO                =       GGD2000 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 29281} G3G3002 +GNO2               =       GPG3002                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 29282} G3G3002 +GNO3               =       GGD2000 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 29283} G3G3002 +MEPERO             =  0.685GGD2000 + 0.315GAG3002 + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 29284} G3G3002 +PERO1              =  0.800GGD2000 + 0.200GAG3002 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 29285} G3G3002 +PERO2              =  0.750GGD2000 + 0.250GAG3002 + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 29286} G3G3002 +PERO3              =  0.800GGD2000 + 0.200GAG3002 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 29287} G3G3002 +PERO5              =  0.650GGD2000 + 0.350GAG3002 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 29288} G3G3002 +PERO6              =  0.650GGD2000 + 0.350GAG3002 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 29289} G3G3002 +PERO9              =       GGD2000 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 29290} GGK500F +GHO                =       G2G501S                                               : ARR( 0.531E-12,     0., 0.0);
+{ 29291} GGK500F +GHO                =       G2G501T                                               : ARR( 0.701E-12,     0., 0.0);
+{ 29292} GGK500F +GHO                =       G3K500b                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 29293} GGK500F+HV               =       G3K3000 +      GCO     +      GHO2    +      GCO      :  0.100E+01*SUN;
+{ 29294} GGK500F+HV               =       GAK4002 +      GCO2                                   :  0.100E+01*SUN;
+{ 29295} G2G501S +GNO                =       G1G501j +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 29296} G2G501S +GNO                =       GGN500w                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 29297} G2G501S +GHO2               =       GGH502D                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 29298} G2G501S +GNO3               =       G1G501j +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 29299} G2G501S +MEPERO             =  0.480G1G501j + 0.260GGK500H + 0.260GGD500F                 : ARR( 0.146E-12,  -445., 0.0);
+{ 29300} G2G501S +PERO1              =  0.600G1G501j + 0.200GGK500H + 0.200GGD500F                 : ARR( 0.112E-12,  -500., 0.0);
+{ 29301} G2G501S +PERO2              =  0.560G1G501j + 0.220GGK500H + 0.220GGD500F                 : ARR( 0.418E-13, -1000., 0.0);
+{ 29302} G2G501S +PERO3              =  0.600G1G501j + 0.200GGK500H + 0.200GGD500F                 : ARR( 0.126E-12,  -850., 0.0);
+{ 29303} G2G501S +PERO5              =  0.600G1G501j + 0.200GGK500H + 0.200GGD500F                 : ARR( 0.473E-11,   850., 0.0);
+{ 29304} G2G501S +PERO6              =  0.460G1G501j + 0.270GGK500H + 0.270GGD500F                 : ARR( 0.434E-13,  -900., 0.0);
+{ 29305} G2G501S +PERO9              =  0.800G1G501j + 0.200GGD500F                                : ARR( 0.100E-10,     0., 0.0);
+{ 29306} G2G501T +GNO                =       G1G501k +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 29307} G2G501T +GNO                =       GGN501j                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 29308} G2G501T +GHO2               =       GGH502E                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 29309} G2G501T +GNO3               =       G1G501k +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 29310} G2G501T +MEPERO             =  0.340G1G501k + 0.330GGK500N + 0.330GGK500Z                 : ARR( 0.565E-13,  -845., 0.0);
+{ 29311} G2G501T +PERO1              =  0.460G1G501k + 0.270GGK500N + 0.270GGK500Z                 : ARR( 0.434E-13,  -900., 0.0);
+{ 29312} G2G501T +PERO2              =  0.400G1G501k + 0.300GGK500N + 0.300GGK500Z                 : ARR( 0.162E-13, -1400., 0.0);
+{ 29313} G2G501T +PERO3              =  0.460G1G501k + 0.270GGK500N + 0.270GGK500Z                 : ARR( 0.488E-13, -1250., 0.0);
+{ 29314} G2G501T +PERO5              =  0.460G1G501k + 0.270GGK500N + 0.270GGK500Z                 : ARR( 0.183E-11,   450., 0.0);
+{ 29315} G2G501T +PERO6              =  0.300G1G501k + 0.350GGK500N + 0.350GGK500Z                 : ARR( 0.168E-13, -1300., 0.0);
+{ 29316} G2G501T +PERO9              =  0.650G1G501k + 0.350GGK500Z                                : ARR( 0.100E-10,     0., 0.0);
+{ 29317} G3K500b +GHO2               =  0.800GGK500F + 0.200GAK500D + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 29318} G3K500b +GNO                =       G3K3000 +      GNO2    +      GCO2    +      GCO      : ARR( 0.810E-11,  -270., 0.0);
+{ 29319} G3K500b +GNO2               =       GPK500F                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 29320} G3K500b +GNO3               =       G3K3000 +      GNO2    +      GCO2    +      GCO      : ARR( 0.500E-11,     0., 0.0);
+{ 29321} G3K500b +MEPERO             =  0.685G3K3000 + 0.315GAK500D + 0.685GCO2    + 0.685GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 29322} G3K500b +PERO1              =  0.800G3K3000 + 0.200GAK500D + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 29323} G3K500b +PERO2              =  0.750G3K3000 + 0.250GAK500D + 0.750GCO2    + 0.750GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 29324} G3K500b +PERO3              =  0.800G3K3000 + 0.200GAK500D + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 29325} G3K500b +PERO5              =  0.650G3K3000 + 0.350GAK500D + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 29326} G3K500b +PERO6              =  0.650G3K3000 + 0.350GAK500D + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 29327} G3K500b +PERO9              =       G3K3000 +      GCO2    +      GCO                     : ARR( 0.500E-11,  -500., 0.0);
+{ 29328} G1G501j +OXYGEN             =       GGD500F +      GHO2                                   : ARR( 0.600E-13,   398., 0.0);
+{ 29329} G1G501k                     =       GD02000 +      GCO     +      GHO2    + 2.000GCO      : ARR( 0.200E+15,  3036., 0.0);
+{ 29330} GGN500X +GHO                =       GGN501l +      GHO2                                   : ARR( 0.136E-10,     0., 0.0);
+{ 29331} GGN500X +GHO                =       G3N500i                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 29332} GGN500X+HV               =       G3K3001 +      GGD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 29333} GGN500X+HV               =       G1G500L +      GNO2                                   :  0.100E+01*SUN;
+{ 29334} GGN500X+HV               =       GDK4005 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 29335} GGH500S +GHO                =       GGH502F +      GHO2                                   : ARR( 0.131E-10,     0., 0.0);
+{ 29336} GGH500S +GHO                =       GGK500H +      GHO                                    : ARR( 0.158E-10,     0., 0.0);
+{ 29337} GGH500S +GHO                =       G2G500K                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 29338} GGH500S +GHO                =       G3H500i                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 29339} GGH500S+HV               =       G3K3001 +      GGD2000 +      GHO                     :  0.100E+01*SUN;
+{ 29340} GGH500S+HV               =       G1G500L +      GHO                                    :  0.100E+01*SUN;
+{ 29341} GGH500S+HV               =       GDK4005 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 29342} GGK500G +GHO                =       GGD5005 +      GHO2                                   : ARR( 0.135E-10,     0., 0.0);
+{ 29343} GGK500G +GHO                =       GGK500H +      GHO2                                   : ARR( 0.405E-11,     0., 0.0);
+{ 29344} GGK500G +GHO                =       G3K500S                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 29345} GGK500G+HV               =       G3K3001 +      GGD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 29346} GGK500G+HV               =       GDK4005 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 29347} GGK500H +GHO                =       GGD500F +      GHO2                                   : ARR( 0.135E-10,     0., 0.0);
+{ 29348} GGK500H +GHO                =       G3K500c                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 29349} GGK500H+HV               =       G3K3001 +      GCO     +      GHO2    +      GCO      :  0.100E+01*SUN;
+{ 29350} GGK500H+HV               =       GAK4004 +      GCO2                                   :  0.100E+01*SUN;
+{ 29351} G3K500c +GHO2               =  0.800GGK500H + 0.200GAK500F + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 29352} G3K500c +GNO                =       G3K3001 +      GNO2    +      GCO2    +      GCO      : ARR( 0.810E-11,  -270., 0.0);
+{ 29353} G3K500c +GNO2               =       GPK500H                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 29354} G3K500c +GNO3               =       G3K3001 +      GNO2    +      GCO2    +      GCO      : ARR( 0.500E-11,     0., 0.0);
+{ 29355} G3K500c +MEPERO             =  0.685G3K3001 + 0.315GAK500F + 0.685GCO2    + 0.685GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 29356} G3K500c +PERO1              =  0.800G3K3001 + 0.200GAK500F + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 29357} G3K500c +PERO2              =  0.750G3K3001 + 0.250GAK500F + 0.750GCO2    + 0.750GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 29358} G3K500c +PERO3              =  0.800G3K3001 + 0.200GAK500F + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 29359} G3K500c +PERO5              =  0.650G3K3001 + 0.350GAK500F + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 29360} G3K500c +PERO6              =  0.650G3K3001 + 0.350GAK500F + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 29361} G3K500c +PERO9              =       G3K3001 +      GCO2    +      GCO                     : ARR( 0.500E-11,  -500., 0.0);
+{ 29362} GGG3000 +GHO                =       G2G3007                                               : ARR( 0.525E-12,     0., 0.0);
+{ 29363} GGG3000 +GHO                =       G3G3000                                               : ARR( 0.380E-11,  -190., 0.0);
+{ 29364} GGG3000+HV               =       G2G2000 +      GHO     +      GCO2                    :  0.200E+01*SUN;
+{ 29365} G2G3007 +GNO                =       G1G3008 +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{ 29366} G2G3007 +GNO                =       GGG3001                                               : ARR( 0.622E-13,  -360., 0.0);
+{ 29367} G2G3007 +GHO2               =       GGG3003                                               : ARR( 0.179E-12, -1250., 0.0);
+{ 29368} G2G3007 +GNO3               =       G1G3008 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 29369} G2G3007 +MEPERO             =  0.340G1G3008 + 0.330GGG3002 + 0.330GGG3004                 : ARR( 0.565E-13,  -845., 0.0);
+{ 29370} G2G3007 +PERO1              =  0.460G1G3008 + 0.270GGG3002 + 0.270GGG3004                 : ARR( 0.434E-13,  -900., 0.0);
+{ 29371} G2G3007 +PERO2              =  0.400G1G3008 + 0.300GGG3002 + 0.300GGG3004                 : ARR( 0.162E-13, -1400., 0.0);
+{ 29372} G2G3007 +PERO3              =  0.460G1G3008 + 0.270GGG3002 + 0.270GGG3004                 : ARR( 0.488E-13, -1250., 0.0);
+{ 29373} G2G3007 +PERO5              =  0.460G1G3008 + 0.270GGG3002 + 0.270GGG3004                 : ARR( 0.183E-11,   450., 0.0);
+{ 29374} G2G3007 +PERO6              =  0.300G1G3008 + 0.350GGG3002 + 0.350GGG3004                 : ARR( 0.168E-13, -1300., 0.0);
+{ 29375} G2G3007 +PERO9              =  0.650G1G3008 + 0.350GGG3004                                : ARR( 0.100E-10,     0., 0.0);
+{ 29376} G1G3008                     =       GCO     +      GGD2000 +      GHO2                    : ARR( 0.400E+15,  7590., 0.0);
+{ 29377} GAG3000 +GHO                =       G2A3008                                               : ARR( 0.389E-12,     0., 0.0);
+{ 29378} GAG3000 +GHO                =       G3A3000                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 29379} GAG3000 +GHO                =       G2G2000 +      GCO2                                   : ARR( 0.520E-12,     0., 0.0);
+{ 29380} GAG3000+HV               =       G2A2000 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 29381} G2A3008 +GNO                =       G1A3009 +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{ 29382} G2A3008 +GNO                =       GAG3001                                               : ARR( 0.622E-13,  -360., 0.0);
+{ 29383} G2A3008 +GHO2               =       GAG3003                                               : ARR( 0.179E-12, -1250., 0.0);
+{ 29384} G2A3008 +GNO3               =       G1A3009 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 29385} G2A3008 +MEPERO             =  0.340G1A3009 + 0.330GAG3002 + 0.330GAG3004                 : ARR( 0.565E-13,  -845., 0.0);
+{ 29386} G2A3008 +PERO1              =  0.460G1A3009 + 0.270GAG3002 + 0.270GAG3004                 : ARR( 0.434E-13,  -900., 0.0);
+{ 29387} G2A3008 +PERO2              =  0.400G1A3009 + 0.300GAG3002 + 0.300GAG3004                 : ARR( 0.162E-13, -1400., 0.0);
+{ 29388} G2A3008 +PERO3              =  0.460G1A3009 + 0.270GAG3002 + 0.270GAG3004                 : ARR( 0.488E-13, -1250., 0.0);
+{ 29389} G2A3008 +PERO5              =  0.460G1A3009 + 0.270GAG3002 + 0.270GAG3004                 : ARR( 0.183E-11,   450., 0.0);
+{ 29390} G2A3008 +PERO6              =  0.300G1A3009 + 0.350GAG3002 + 0.350GAG3004                 : ARR( 0.168E-13, -1300., 0.0);
+{ 29391} G2A3008 +PERO9              =  0.650G1A3009 + 0.350GAG3004                                : ARR( 0.100E-10,     0., 0.0);
+{ 29392} G1A3009                     =       GCO     +      GGD2000 +      GHO                     : ARR( 0.200E+15,  7559., 0.0);
+{ 29393} G1A3009                     =       GAD2000 +      GCO     +      GHO2                    : ARR( 0.200E+15,  7590., 0.0);
+{ 29394} GPG3000                     =       G3G3000 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 29395} GPG3000 +GHO                =       G2P3008                                               : ARR( 0.525E-12,     0., 0.0);
+{ 29396} GPG3000 +GHO                =       G3P3000                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 29397} GPG3000+HV               =       G2P2000 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 29398} GPG3000+HV               =       G3G3000 +      GNO2                                   :  0.100E+01*SUN;
+{ 29399} G2P3008 +GNO                =       G1P3009 +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{ 29400} G2P3008 +GNO                =       GPG3001                                               : ARR( 0.622E-13,  -360., 0.0);
+{ 29401} G2P3008 +GHO2               =       GPG3003                                               : ARR( 0.179E-12, -1250., 0.0);
+{ 29402} G2P3008 +GNO3               =       G1P3009 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 29403} G2P3008 +MEPERO             =  0.340G1P3009 + 0.330GPG3002 + 0.330GPG3004                 : ARR( 0.565E-13,  -845., 0.0);
+{ 29404} G2P3008 +PERO1              =  0.460G1P3009 + 0.270GPG3002 + 0.270GPG3004                 : ARR( 0.434E-13,  -900., 0.0);
+{ 29405} G2P3008 +PERO2              =  0.400G1P3009 + 0.300GPG3002 + 0.300GPG3004                 : ARR( 0.162E-13, -1400., 0.0);
+{ 29406} G2P3008 +PERO3              =  0.460G1P3009 + 0.270GPG3002 + 0.270GPG3004                 : ARR( 0.488E-13, -1250., 0.0);
+{ 29407} G2P3008 +PERO5              =  0.460G1P3009 + 0.270GPG3002 + 0.270GPG3004                 : ARR( 0.183E-11,   450., 0.0);
+{ 29408} G2P3008 +PERO6              =  0.300G1P3009 + 0.350GPG3002 + 0.350GPG3004                 : ARR( 0.168E-13, -1300., 0.0);
+{ 29409} G2P3008 +PERO9              =  0.650G1P3009 + 0.350GPG3004                                : ARR( 0.100E-10,     0., 0.0);
+{ 29410} G1P3009                     =       GCO     +      GPD2000 +      GHO2                    : ARR( 0.200E+15,  7590., 0.0);
+{ 29411} G1P3009                     =       GGD2000 +      GCO     +      GNO2                    : ARR( 0.200E+15,  7590., 0.0);
+{ 29412} GGD5005 +GHO                =       GGD500F +      GHO2                                   : ARR( 0.406E-11,     0., 0.0);
+{ 29413} GGD5005 +GHO                =       G3G5005                                               : ARR( 0.699E-10,     0., 0.0);
+{ 29414} GGD5005 +GNO3               =       G3G5005 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 29415} GGD5005+HV               =  0.500GDD4002 + 0.500GHO                                    :  0.100E+01*SUN;
+{ 29416} GGD5005+HV               =       G3G3002 +      G2D2000                                :  0.100E+01*SUN;
+{ 29417} GGD5005+HV               =       G2G400P +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 29418} G3G5005 +GHO2               =  0.800GGG5004 + 0.200GAG5008 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 29419} G3G5005 +GNO                =       G2G400P +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 29420} G3G5005 +GNO2               =       GPG5008                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 29421} G3G5005 +GNO3               =       G2G400P +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 29422} G3G5005 +MEPERO             =  0.685G2G400P + 0.315GAG5008 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 29423} G3G5005 +PERO1              =  0.800G2G400P + 0.200GAG5008 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 29424} G3G5005 +PERO2              =  0.750G2G400P + 0.250GAG5008 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 29425} G3G5005 +PERO3              =  0.800G2G400P + 0.200GAG5008 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 29426} G3G5005 +PERO5              =  0.650G2G400P + 0.350GAG5008 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 29427} G3G5005 +PERO6              =  0.650G2G400P + 0.350GAG5008 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 29428} G3G5005 +PERO9              =       G2G400P +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 29429} G2G400P +GNO                =       G1G400W +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 29430} G2G400P +GNO                =       GGN400Q                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 29431} G2G400P +GHO2               =       GGH400f                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 29432} G2G400P +GNO3               =       G1G400W +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 29433} G2G400P +MEPERO             =  0.480G1G400W + 0.260GGK4008 + 0.260GGD4007                 : ARR( 0.164E-12,  -795., 0.0);
+{ 29434} G2G400P +PERO1              =  0.600G1G400W + 0.200GGK4008 + 0.200GGD4007                 : ARR( 0.126E-12,  -850., 0.0);
+{ 29435} G2G400P +PERO2              =  0.560G1G400W + 0.220GGK4008 + 0.220GGD4007                 : ARR( 0.471E-13, -1350., 0.0);
+{ 29436} G2G400P +PERO3              =  0.600G1G400W + 0.200GGK4008 + 0.200GGD4007                 : ARR( 0.142E-12, -1200., 0.0);
+{ 29437} G2G400P +PERO5              =  0.600G1G400W + 0.200GGK4008 + 0.200GGD4007                 : ARR( 0.533E-11,   500., 0.0);
+{ 29438} G2G400P +PERO6              =  0.460G1G400W + 0.270GGK4008 + 0.270GGD4007                 : ARR( 0.488E-13, -1250., 0.0);
+{ 29439} G2G400P +PERO9              =  0.800G1G400W + 0.200GGD4007                                : ARR( 0.100E-10,     0., 0.0);
+{ 29440} G1G400W                     =       G3G3002 +      GCH2O                                  : ARR( 0.200E+15,  4349., 0.0);
+{ 29441} GAH500R +GHO                =       GAD5004 +      GHO                                    : ARR( 0.527E-10,     0., 0.0);
+{ 29442} GAH500R +GHO                =       G2A500K                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 29443} GAH500R+HV               =       G3A3000 +      G2H2000                                :  0.100E+01*SUN;
+{ 29444} GAH500R+HV               =       G1A500L +      GHO                                    :  0.100E+01*SUN;
+{ 29445} GAK500A +GHO                =       GAD5004 +      GHO2                                   : ARR( 0.137E-10,     0., 0.0);
+{ 29446} GAK500A +GHO                =       G2A501f                                               : ARR( 0.928E-12,     0., 0.0);
+{ 29447} GAK500A+HV               =       G3K3001 +      G2A2000                                :  0.100E+01*SUN;
+{ 29448} G2A501f +GNO                =       G1A501x +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 29449} G2A501f +GNO                =       GAN501Z                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 29450} G2A501f +GHO2               =       GAH502L                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 29451} G2A501f +GNO3               =       G1A501x +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 29452} G2A501f +MEPERO             =  0.340G1A501x + 0.330GAK5008 + 0.330GAK500P                 : ARR( 0.565E-13,  -845., 0.0);
+{ 29453} G2A501f +PERO1              =  0.460G1A501x + 0.270GAK5008 + 0.270GAK500P                 : ARR( 0.434E-13,  -900., 0.0);
+{ 29454} G2A501f +PERO2              =  0.400G1A501x + 0.300GAK5008 + 0.300GAK500P                 : ARR( 0.162E-13, -1400., 0.0);
+{ 29455} G2A501f +PERO3              =  0.460G1A501x + 0.270GAK5008 + 0.270GAK500P                 : ARR( 0.488E-13, -1250., 0.0);
+{ 29456} G2A501f +PERO5              =  0.460G1A501x + 0.270GAK5008 + 0.270GAK500P                 : ARR( 0.183E-11,   450., 0.0);
+{ 29457} G2A501f +PERO6              =  0.300G1A501x + 0.350GAK5008 + 0.350GAK500P                 : ARR( 0.168E-13, -1300., 0.0);
+{ 29458} G2A501f +PERO9              =  0.650G1A501x + 0.350GAK500P                                : ARR( 0.100E-10,     0., 0.0);
+{ 29459} G1A501x                     =       GDO2000 +      G3A3000                                : ARR( 0.200E+15,  2981., 0.0);
+{ 29460} GAD5004 +GHO                =       G3A5006                                               : ARR( 0.673E-10,     0., 0.0);
+{ 29461} GAD5004 +GNO3               =       G3A5006 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 29462} GAD5004+HV               =       G3A3000 +      G2D2000                                :  0.100E+01*SUN;
+{ 29463} GAD5004+HV               =       G2A400B +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 29464} G3A5006 +GHO2               =  0.800GAG5007 + 0.200GAA5005 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 29465} G3A5006 +GNO                =       G2A400B +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 29466} G3A5006 +GNO2               =       GPA5008                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 29467} G3A5006 +GNO3               =       G2A400B +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 29468} G3A5006 +MEPERO             =  0.685G2A400B + 0.315GAA5005 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 29469} G3A5006 +PERO1              =  0.800G2A400B + 0.200GAA5005 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 29470} G3A5006 +PERO2              =  0.750G2A400B + 0.250GAA5005 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 29471} G3A5006 +PERO3              =  0.800G2A400B + 0.200GAA5005 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 29472} G3A5006 +PERO5              =  0.650G2A400B + 0.350GAA5005 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 29473} G3A5006 +PERO6              =  0.650G2A400B + 0.350GAA5005 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 29474} G3A5006 +PERO9              =       G2A400B +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 29475} GAN500d +GHO                =       GAK500B +      GNO2                                   : ARR( 0.604E-13,     0., 0.0);
+{ 29476} GAN500d +GHO                =       G2A501g                                               : ARR( 0.402E-12,     0., 0.0);
+{ 29477} GAN500d +GHO                =       G2N400b +      GCO2                                   : ARR( 0.538E-12,     0., 0.0);
+{ 29478} GAN500d+HV               =       G1A500M +      GNO2                                   :  0.100E+01*SUN;
+{ 29479} GAN500d+HV               =       G3N3001 +      G2A2000                                :  0.100E+01*SUN;
+{ 29480} G2A501g +GNO                =       G1A501y +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 29481} G2A501g +GNO                =       GAN501u                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 29482} G2A501g +GHO2               =       GAH502M                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 29483} G2A501g +GNO3               =       G1A501y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 29484} G2A501g +MEPERO             =  0.340G1A501y + 0.330GAN501v + 0.330GAN501w                 : ARR( 0.565E-13,  -845., 0.0);
+{ 29485} G2A501g +PERO1              =  0.460G1A501y + 0.270GAN501v + 0.270GAN501w                 : ARR( 0.434E-13,  -900., 0.0);
+{ 29486} G2A501g +PERO2              =  0.400G1A501y + 0.300GAN501v + 0.300GAN501w                 : ARR( 0.162E-13, -1400., 0.0);
+{ 29487} G2A501g +PERO3              =  0.460G1A501y + 0.270GAN501v + 0.270GAN501w                 : ARR( 0.488E-13, -1250., 0.0);
+{ 29488} G2A501g +PERO5              =  0.460G1A501y + 0.270GAN501v + 0.270GAN501w                 : ARR( 0.183E-11,   450., 0.0);
+{ 29489} G2A501g +PERO6              =  0.300G1A501y + 0.350GAN501v + 0.350GAN501w                 : ARR( 0.168E-13, -1300., 0.0);
+{ 29490} G2A501g +PERO9              =  0.650G1A501y + 0.350GAN501w                                : ARR( 0.100E-10,     0., 0.0);
+{ 29491} G1A501y                     =       G3N3001 +      GAD2000                                : ARR( 0.200E+15,  5396., 0.0);
+{ 29492} GAH500S +GHO                =       GAK500B +      GHO                                    : ARR( 0.217E-10,     0., 0.0);
+{ 29493} GAH500S +GHO                =       G2A500L                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 29494} GAH500S+HV               =       G1A500M +      GHO                                    :  0.100E+01*SUN;
+{ 29495} GAH500S+HV               =       G3H3001 +      G2A2000                                :  0.100E+01*SUN;
+{ 29496} GAK500B +GHO                =       G2A501h                                               : ARR( 0.102E-12,     0., 0.0);
+{ 29497} GAK500B +GHO                =       G2A501i                                               : ARR( 0.389E-12,     0., 0.0);
+{ 29498} GAK500B +GHO                =       G2K4009 +      GCO2                                   : ARR( 0.520E-12,     0., 0.0);
+{ 29499} GAK500B+HV               =       G3K2000 +      G3A3000                                :  0.100E+01*SUN;
+{ 29500} G2A501h +GNO                =       G1A501z +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 29501} G2A501h +GNO                =       GAN5014                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 29502} G2A501h +GHO2               =       GAH5022                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 29503} G2A501h +GNO3               =       G1A501z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 29504} G2A501h +MEPERO             =  0.480G1A501z + 0.260GAK500P + 0.260GAD500G                 : ARR( 0.164E-12,  -795., 0.0);
+{ 29505} G2A501h +PERO1              =  0.600G1A501z + 0.200GAK500P + 0.200GAD500G                 : ARR( 0.126E-12,  -850., 0.0);
+{ 29506} G2A501h +PERO2              =  0.560G1A501z + 0.220GAK500P + 0.220GAD500G                 : ARR( 0.471E-13, -1350., 0.0);
+{ 29507} G2A501h +PERO3              =  0.600G1A501z + 0.200GAK500P + 0.200GAD500G                 : ARR( 0.142E-12, -1200., 0.0);
+{ 29508} G2A501h +PERO5              =  0.600G1A501z + 0.200GAK500P + 0.200GAD500G                 : ARR( 0.533E-11,   500., 0.0);
+{ 29509} G2A501h +PERO6              =  0.460G1A501z + 0.270GAK500P + 0.270GAD500G                 : ARR( 0.488E-13, -1250., 0.0);
+{ 29510} G2A501h +PERO9              =  0.800G1A501z + 0.200GAD500G                                : ARR( 0.100E-10,     0., 0.0);
+{ 29511} G2A501i +GNO                =       G1A5021 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 29512} G2A501i +GNO                =       GAN501x                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 29513} G2A501i +GHO2               =       GAH502N                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 29514} G2A501i +GNO3               =       G1A5021 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 29515} G2A501i +MEPERO             =  0.340G1A5021 + 0.330GAK500T + 0.330GAK500U                 : ARR( 0.565E-13,  -845., 0.0);
+{ 29516} G2A501i +PERO1              =  0.460G1A5021 + 0.270GAK500T + 0.270GAK500U                 : ARR( 0.434E-13,  -900., 0.0);
+{ 29517} G2A501i +PERO2              =  0.400G1A5021 + 0.300GAK500T + 0.300GAK500U                 : ARR( 0.162E-13, -1400., 0.0);
+{ 29518} G2A501i +PERO3              =  0.460G1A5021 + 0.270GAK500T + 0.270GAK500U                 : ARR( 0.488E-13, -1250., 0.0);
+{ 29519} G2A501i +PERO5              =  0.460G1A5021 + 0.270GAK500T + 0.270GAK500U                 : ARR( 0.183E-11,   450., 0.0);
+{ 29520} G2A501i +PERO6              =  0.300G1A5021 + 0.350GAK500T + 0.350GAK500U                 : ARR( 0.168E-13, -1300., 0.0);
+{ 29521} G2A501i +PERO9              =  0.650G1A5021 + 0.350GAK500U                                : ARR( 0.100E-10,     0., 0.0);
+{ 29522} G1A501z                     =       G3A3000 +      GCH2O   +      GCO                     : ARR( 0.200E+15,  3897., 0.0);
+{ 29523} G1A5021                     =       G3K2000 +      GAD2000 +      GCO                     : ARR( 0.200E+15,  5653., 0.0);
+{ 29524} G1A5021                     =       GDK4008 +      GCO     +      GHO                     : ARR( 0.200E+15,  6787., 0.0);
+{ 29525} GAN500e +GHO                =       G2A501j                                               : ARR( 0.541E-12,     0., 0.0);
+{ 29526} GAN500e +GHO                =       G2A501k                                               : ARR( 0.713E-12,     0., 0.0);
+{ 29527} GAN500e +GHO                =       GDK4002 +      GNO2    +      GCO2                    : ARR( 0.530E-12,     0., 0.0);
+{ 29528} GAN500e+HV               =       G3K3000 +      GAD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 29529} GAN500e+HV               =       G1A500N +      GNO2                                   :  0.100E+01*SUN;
+{ 29530} G2A501j +GNO                =       G1A5022 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 29531} G2A501j +GNO                =       GAN5011                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 29532} G2A501j +GHO2               =       GAH502O                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 29533} G2A501j +GNO3               =       G1A5022 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 29534} G2A501j +MEPERO             =  0.480G1A5022 + 0.260GAN500f + 0.260GAN501y                 : ARR( 0.146E-12,  -445., 0.0);
+{ 29535} G2A501j +PERO1              =  0.600G1A5022 + 0.200GAN500f + 0.200GAN501y                 : ARR( 0.112E-12,  -500., 0.0);
+{ 29536} G2A501j +PERO2              =  0.560G1A5022 + 0.220GAN500f + 0.220GAN501y                 : ARR( 0.418E-13, -1000., 0.0);
+{ 29537} G2A501j +PERO3              =  0.600G1A5022 + 0.200GAN500f + 0.200GAN501y                 : ARR( 0.126E-12,  -850., 0.0);
+{ 29538} G2A501j +PERO5              =  0.600G1A5022 + 0.200GAN500f + 0.200GAN501y                 : ARR( 0.473E-11,   850., 0.0);
+{ 29539} G2A501j +PERO6              =  0.460G1A5022 + 0.270GAN500f + 0.270GAN501y                 : ARR( 0.434E-13,  -900., 0.0);
+{ 29540} G2A501j +PERO9              =  0.800G1A5022 + 0.200GAN501y                                : ARR( 0.100E-10,     0., 0.0);
+{ 29541} G2A501k +GNO                =       G1A5023 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 29542} G2A501k +GNO                =       GAN501u                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 29543} G2A501k +GHO2               =       GAH502P                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 29544} G2A501k +GNO3               =       G1A5023 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 29545} G2A501k +MEPERO             =  0.340G1A5023 + 0.330GAN500r + 0.330GAN501x                 : ARR( 0.565E-13,  -845., 0.0);
+{ 29546} G2A501k +PERO1              =  0.460G1A5023 + 0.270GAN500r + 0.270GAN501x                 : ARR( 0.434E-13,  -900., 0.0);
+{ 29547} G2A501k +PERO2              =  0.400G1A5023 + 0.300GAN500r + 0.300GAN501x                 : ARR( 0.162E-13, -1400., 0.0);
+{ 29548} G2A501k +PERO3              =  0.460G1A5023 + 0.270GAN500r + 0.270GAN501x                 : ARR( 0.488E-13, -1250., 0.0);
+{ 29549} G2A501k +PERO5              =  0.460G1A5023 + 0.270GAN500r + 0.270GAN501x                 : ARR( 0.183E-11,   450., 0.0);
+{ 29550} G2A501k +PERO6              =  0.300G1A5023 + 0.350GAN500r + 0.350GAN501x                 : ARR( 0.168E-13, -1300., 0.0);
+{ 29551} G2A501k +PERO9              =  0.650G1A5023 + 0.350GAN501x                                : ARR( 0.100E-10,     0., 0.0);
+{ 29552} G1A5022 +OXYGEN             =       GAN501y +      GHO2                                   : ARR( 0.600E-13,   398., 0.0);
+{ 29553} G1A5023                     =       GD02000 +      G3A3001                                : ARR( 0.200E+15,  3868., 0.0);
+{ 29554} G3A3001 +GHO2               =  0.800GAG3001 + 0.200GAA3001 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 29555} G3A3001 +GNO                =       GAD2000 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 29556} G3A3001 +GNO2               =       GPA3001                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 29557} G3A3001 +GNO3               =       GAD2000 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 29558} G3A3001 +MEPERO             =  0.685GAD2000 + 0.315GAA3001 + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 29559} G3A3001 +PERO1              =  0.800GAD2000 + 0.200GAA3001 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 29560} G3A3001 +PERO2              =  0.750GAD2000 + 0.250GAA3001 + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 29561} G3A3001 +PERO3              =  0.800GAD2000 + 0.200GAA3001 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 29562} G3A3001 +PERO5              =  0.650GAD2000 + 0.350GAA3001 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 29563} G3A3001 +PERO6              =  0.650GAD2000 + 0.350GAA3001 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 29564} G3A3001 +PERO9              =       GAD2000 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 29565} GAH500T +GHO                =       GAK500D +      GHO                                    : ARR( 0.127E-10,     0., 0.0);
+{ 29566} GAH500T +GHO                =       G2A500M                                               : ARR( 0.212E-11,  -190., 0.0);
+{ 29567} GAH500T+HV               =       G3K3000 +      GAD2000 +      GHO                     :  0.100E+01*SUN;
+{ 29568} GAH500T+HV               =       G1A500N +      GHO                                    :  0.100E+01*SUN;
+{ 29569} GAK500C +GHO                =       G2A501l                                               : ARR( 0.548E-12,     0., 0.0);
+{ 29570} GAK500C +GHO                =       G2A501m                                               : ARR( 0.722E-12,     0., 0.0);
+{ 29571} GAK500C +GHO                =       GAK500D +      GHO2                                   : ARR( 0.292E-11,     0., 0.0);
+{ 29572} GAK500C +GHO                =       GDK4002 +      GHO2    +      GCO2                    : ARR( 0.536E-12,     0., 0.0);
+{ 29573} GAK500C+HV               =       G3K3000 +      GAD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 29574} G2A501l +GNO                =       G1A5024 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 29575} G2A501l +GNO                =       GAN500q                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 29576} G2A501l +GHO2               =       GAH501v                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 29577} G2A501l +GNO3               =       G1A5024 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 29578} G2A501l +MEPERO             =  0.480G1A5024 + 0.260GAK500E + 0.260GAD5005                 : ARR( 0.146E-12,  -445., 0.0);
+{ 29579} G2A501l +PERO1              =  0.600G1A5024 + 0.200GAK500E + 0.200GAD5005                 : ARR( 0.112E-12,  -500., 0.0);
+{ 29580} G2A501l +PERO2              =  0.560G1A5024 + 0.220GAK500E + 0.220GAD5005                 : ARR( 0.418E-13, -1000., 0.0);
+{ 29581} G2A501l +PERO3              =  0.600G1A5024 + 0.200GAK500E + 0.200GAD5005                 : ARR( 0.126E-12,  -850., 0.0);
+{ 29582} G2A501l +PERO5              =  0.600G1A5024 + 0.200GAK500E + 0.200GAD5005                 : ARR( 0.473E-11,   850., 0.0);
+{ 29583} G2A501l +PERO6              =  0.460G1A5024 + 0.270GAK500E + 0.270GAD5005                 : ARR( 0.434E-13,  -900., 0.0);
+{ 29584} G2A501l +PERO9              =  0.800G1A5024 + 0.200GAD5005                                : ARR( 0.100E-10,     0., 0.0);
+{ 29585} G2A501m +GNO                =       G1A5025 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 29586} G2A501m +GNO                =       GAN501v                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 29587} G2A501m +GHO2               =       GAH502Q                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 29588} G2A501m +GNO3               =       G1A5025 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 29589} G2A501m +MEPERO             =  0.340G1A5025 + 0.330GAK500J + 0.330GAK500T                 : ARR( 0.565E-13,  -845., 0.0);
+{ 29590} G2A501m +PERO1              =  0.460G1A5025 + 0.270GAK500J + 0.270GAK500T                 : ARR( 0.434E-13,  -900., 0.0);
+{ 29591} G2A501m +PERO2              =  0.400G1A5025 + 0.300GAK500J + 0.300GAK500T                 : ARR( 0.162E-13, -1400., 0.0);
+{ 29592} G2A501m +PERO3              =  0.460G1A5025 + 0.270GAK500J + 0.270GAK500T                 : ARR( 0.488E-13, -1250., 0.0);
+{ 29593} G2A501m +PERO5              =  0.460G1A5025 + 0.270GAK500J + 0.270GAK500T                 : ARR( 0.183E-11,   450., 0.0);
+{ 29594} G2A501m +PERO6              =  0.300G1A5025 + 0.350GAK500J + 0.350GAK500T                 : ARR( 0.168E-13, -1300., 0.0);
+{ 29595} G2A501m +PERO9              =  0.650G1A5025 + 0.350GAK500T                                : ARR( 0.100E-10,     0., 0.0);
+{ 29596} G1A5024 +OXYGEN             =       GAD5005 +      GHO2                                   : ARR( 0.600E-13,   398., 0.0);
+{ 29597} G1A5024                     =       GAK500F +      GHO2                                   : ARR( 0.800E+11,  4363., 0.0);
+{ 29598} G1A5025                     =       GD02000 +      G3A3002                                : ARR( 0.200E+15,  3523., 0.0);
+{ 29599} G3A3002 +GHO2               =  0.800GAG3002 + 0.200GAA3002 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 29600} G3A3002 +GNO                =       GAD2000 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 29601} G3A3002 +GNO2               =       GPA3002                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 29602} G3A3002 +GNO3               =       GAD2000 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 29603} G3A3002 +MEPERO             =  0.685GAD2000 + 0.315GAA3002 + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 29604} G3A3002 +PERO1              =  0.800GAD2000 + 0.200GAA3002 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 29605} G3A3002 +PERO2              =  0.750GAD2000 + 0.250GAA3002 + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 29606} G3A3002 +PERO3              =  0.800GAD2000 + 0.200GAA3002 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 29607} G3A3002 +PERO5              =  0.650GAD2000 + 0.350GAA3002 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 29608} G3A3002 +PERO6              =  0.650GAD2000 + 0.350GAA3002 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 29609} G3A3002 +PERO9              =       GAD2000 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 29610} GAK500D +GHO                =       G2A501n                                               : ARR( 0.531E-12,     0., 0.0);
+{ 29611} GAK500D +GHO                =       G2A501o                                               : ARR( 0.701E-12,     0., 0.0);
+{ 29612} GAK500D +GHO                =       G3K3000 +      GCO2    +      GCO                     : ARR( 0.520E-12,     0., 0.0);
+{ 29613} GAK500D+HV               =       G3K3000 +      GCO     +      GHO     +      GCO      :  0.100E+01*SUN;
+{ 29614} G2A501n +GNO                =       G1A5026 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 29615} G2A501n +GNO                =       GAN5012                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 29616} G2A501n +GHO2               =       GAH502R                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 29617} G2A501n +GNO3               =       G1A5026 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 29618} G2A501n +MEPERO             =  0.480G1A5026 + 0.260GAK500F + 0.260GAD500H                 : ARR( 0.146E-12,  -445., 0.0);
+{ 29619} G2A501n +PERO1              =  0.600G1A5026 + 0.200GAK500F + 0.200GAD500H                 : ARR( 0.112E-12,  -500., 0.0);
+{ 29620} G2A501n +PERO2              =  0.560G1A5026 + 0.220GAK500F + 0.220GAD500H                 : ARR( 0.418E-13, -1000., 0.0);
+{ 29621} G2A501n +PERO3              =  0.600G1A5026 + 0.200GAK500F + 0.200GAD500H                 : ARR( 0.126E-12,  -850., 0.0);
+{ 29622} G2A501n +PERO5              =  0.600G1A5026 + 0.200GAK500F + 0.200GAD500H                 : ARR( 0.473E-11,   850., 0.0);
+{ 29623} G2A501n +PERO6              =  0.460G1A5026 + 0.270GAK500F + 0.270GAD500H                 : ARR( 0.434E-13,  -900., 0.0);
+{ 29624} G2A501n +PERO9              =  0.800G1A5026 + 0.200GAD500H                                : ARR( 0.100E-10,     0., 0.0);
+{ 29625} G2A501o +GNO                =       G1A5027 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 29626} G2A501o +GNO                =       GAN501w                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 29627} G2A501o +GHO2               =       GAH502S                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 29628} G2A501o +GNO3               =       G1A5027 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 29629} G2A501o +MEPERO             =  0.340G1A5027 + 0.330GAK500M + 0.330GAK500U                 : ARR( 0.565E-13,  -845., 0.0);
+{ 29630} G2A501o +PERO1              =  0.460G1A5027 + 0.270GAK500M + 0.270GAK500U                 : ARR( 0.434E-13,  -900., 0.0);
+{ 29631} G2A501o +PERO2              =  0.400G1A5027 + 0.300GAK500M + 0.300GAK500U                 : ARR( 0.162E-13, -1400., 0.0);
+{ 29632} G2A501o +PERO3              =  0.460G1A5027 + 0.270GAK500M + 0.270GAK500U                 : ARR( 0.488E-13, -1250., 0.0);
+{ 29633} G2A501o +PERO5              =  0.460G1A5027 + 0.270GAK500M + 0.270GAK500U                 : ARR( 0.183E-11,   450., 0.0);
+{ 29634} G2A501o +PERO6              =  0.300G1A5027 + 0.350GAK500M + 0.350GAK500U                 : ARR( 0.168E-13, -1300., 0.0);
+{ 29635} G2A501o +PERO9              =  0.650G1A5027 + 0.350GAK500U                                : ARR( 0.100E-10,     0., 0.0);
+{ 29636} G1A5026 +OXYGEN             =       GAD500H +      GHO2                                   : ARR( 0.600E-13,   398., 0.0);
+{ 29637} G1A5027                     =       GD02000 +      GCO     +      GHO     + 2.000GCO      : ARR( 0.200E+15,  3036., 0.0);
+{ 29638} GAN500f +GHO                =       GAN501y +      GHO2                                   : ARR( 0.134E-10,     0., 0.0);
+{ 29639} GAN500f +GHO                =       G2A501p                                               : ARR( 0.906E-12,     0., 0.0);
+{ 29640} GAN500f+HV               =       G3K3001 +      GAD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 29641} GAN500f+HV               =       G1A500O +      GNO2                                   :  0.100E+01*SUN;
+{ 29642} G2A501p +GNO                =       G1A5028 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 29643} G2A501p +GNO                =       GAN501z                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 29644} G2A501p +GHO2               =       GAH502T                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 29645} G2A501p +GNO3               =       G1A5028 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 29646} G2A501p +MEPERO             =  0.340G1A5028 + 0.330GAN5021 + 0.330GAN5022                 : ARR( 0.565E-13,  -845., 0.0);
+{ 29647} G2A501p +PERO1              =  0.460G1A5028 + 0.270GAN5021 + 0.270GAN5022                 : ARR( 0.434E-13,  -900., 0.0);
+{ 29648} G2A501p +PERO2              =  0.400G1A5028 + 0.300GAN5021 + 0.300GAN5022                 : ARR( 0.162E-13, -1400., 0.0);
+{ 29649} G2A501p +PERO3              =  0.460G1A5028 + 0.270GAN5021 + 0.270GAN5022                 : ARR( 0.488E-13, -1250., 0.0);
+{ 29650} G2A501p +PERO5              =  0.460G1A5028 + 0.270GAN5021 + 0.270GAN5022                 : ARR( 0.183E-11,   450., 0.0);
+{ 29651} G2A501p +PERO6              =  0.300G1A5028 + 0.350GAN5021 + 0.350GAN5022                 : ARR( 0.168E-13, -1300., 0.0);
+{ 29652} G2A501p +PERO9              =  0.650G1A5028 + 0.350GAN5022                                : ARR( 0.100E-10,     0., 0.0);
+{ 29653} G1A5028                     =       GDO2000 +      G3A3001                                : ARR( 0.200E+15,  4123., 0.0);
+{ 29654} GAH500U +GHO                =       GAH502U +      GHO2                                   : ARR( 0.135E-10,     0., 0.0);
+{ 29655} GAH500U +GHO                =       GAK500F +      GHO                                    : ARR( 0.120E-10,     0., 0.0);
+{ 29656} GAH500U +GHO                =       G2A500N                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 29657} GAH500U+HV               =       G3K3001 +      GAD2000 +      GHO                     :  0.100E+01*SUN;
+{ 29658} GAH500U+HV               =       G1A500O +      GHO                                    :  0.100E+01*SUN;
+{ 29659} GAK500E +GHO                =       GAD5005 +      GHO2                                   : ARR( 0.141E-10,     0., 0.0);
+{ 29660} GAK500E +GHO                =       GAK500F +      GHO2                                   : ARR( 0.314E-11,     0., 0.0);
+{ 29661} GAK500E+HV               =       G3K3001 +      GAD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 29662} GAK500F +GHO                =       GAD500H +      GHO2                                   : ARR( 0.134E-10,     0., 0.0);
+{ 29663} GAK500F +GHO                =       G2A501q                                               : ARR( 0.903E-12,     0., 0.0);
+{ 29664} GAK500F+HV               =       G3K3001 +      GCO     +      GHO     +      GCO      :  0.100E+01*SUN;
+{ 29665} G2A501q +GNO                =       G1A5029 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 29666} G2A501q +GNO                =       GAN5023                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 29667} G2A501q +GHO2               =       GAH502W                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 29668} G2A501q +GNO3               =       G1A5029 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 29669} G2A501q +MEPERO             =  0.340G1A5029 + 0.330GAK500W + 0.330GAK500X                 : ARR( 0.565E-13,  -845., 0.0);
+{ 29670} G2A501q +PERO1              =  0.460G1A5029 + 0.270GAK500W + 0.270GAK500X                 : ARR( 0.434E-13,  -900., 0.0);
+{ 29671} G2A501q +PERO2              =  0.400G1A5029 + 0.300GAK500W + 0.300GAK500X                 : ARR( 0.162E-13, -1400., 0.0);
+{ 29672} G2A501q +PERO3              =  0.460G1A5029 + 0.270GAK500W + 0.270GAK500X                 : ARR( 0.488E-13, -1250., 0.0);
+{ 29673} G2A501q +PERO5              =  0.460G1A5029 + 0.270GAK500W + 0.270GAK500X                 : ARR( 0.183E-11,   450., 0.0);
+{ 29674} G2A501q +PERO6              =  0.300G1A5029 + 0.350GAK500W + 0.350GAK500X                 : ARR( 0.168E-13, -1300., 0.0);
+{ 29675} G2A501q +PERO9              =  0.650G1A5029 + 0.350GAK500X                                : ARR( 0.100E-10,     0., 0.0);
+{ 29676} G1A5029                     =       GDO2000 +      GCO     +      GHO     + 2.000GCO      : ARR( 0.200E+15,  3291., 0.0);
+{ 29677} GAA3000 +GHO                =       G2A3009                                               : ARR( 0.288E-12,     0., 0.0);
+{ 29678} GAA3000 +GHO                =       G2A2000 +      GCO2                                   : ARR( 0.104E-11,     0., 0.0);
+{ 29679} G2A3009 +GNO                =       G1A300A +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{ 29680} G2A3009 +GNO                =       GAA3001                                               : ARR( 0.622E-13,  -360., 0.0);
+{ 29681} G2A3009 +GHO2               =       GAA3003                                               : ARR( 0.179E-12, -1250., 0.0);
+{ 29682} G2A3009 +GNO3               =       G1A300A +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 29683} G2A3009 +MEPERO             =  0.340G1A300A + 0.330GAA3002 + 0.330GAA3004                 : ARR( 0.565E-13,  -845., 0.0);
+{ 29684} G2A3009 +PERO1              =  0.460G1A300A + 0.270GAA3002 + 0.270GAA3004                 : ARR( 0.434E-13,  -900., 0.0);
+{ 29685} G2A3009 +PERO2              =  0.400G1A300A + 0.300GAA3002 + 0.300GAA3004                 : ARR( 0.162E-13, -1400., 0.0);
+{ 29686} G2A3009 +PERO3              =  0.460G1A300A + 0.270GAA3002 + 0.270GAA3004                 : ARR( 0.488E-13, -1250., 0.0);
+{ 29687} G2A3009 +PERO5              =  0.460G1A300A + 0.270GAA3002 + 0.270GAA3004                 : ARR( 0.183E-11,   450., 0.0);
+{ 29688} G2A3009 +PERO6              =  0.300G1A300A + 0.350GAA3002 + 0.350GAA3004                 : ARR( 0.168E-13, -1300., 0.0);
+{ 29689} G2A3009 +PERO9              =  0.650G1A300A + 0.350GAA3004                                : ARR( 0.100E-10,     0., 0.0);
+{ 29690} G1A300A                     =       GCO     +      GAD2000 +      GHO                     : ARR( 0.400E+15,  7559., 0.0);
+{ 29691} GPA3000                     =       G3A3000 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 29692} GPA3000 +GHO                =       G2P3009                                               : ARR( 0.389E-12,     0., 0.0);
+{ 29693} GPA3000 +GHO                =       G2P2000 +      GCO2                                   : ARR( 0.520E-12,     0., 0.0);
+{ 29694} GPA3000+HV               =       G3A3000 +      GNO2                                   :  0.100E+01*SUN;
+{ 29695} G2P3009 +GNO                =       G1P300A +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{ 29696} G2P3009 +GNO                =       GPA3001                                               : ARR( 0.622E-13,  -360., 0.0);
+{ 29697} G2P3009 +GHO2               =       GPA3003                                               : ARR( 0.179E-12, -1250., 0.0);
+{ 29698} G2P3009 +GNO3               =       G1P300A +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 29699} G2P3009 +MEPERO             =  0.340G1P300A + 0.330GPA3002 + 0.330GPA3004                 : ARR( 0.565E-13,  -845., 0.0);
+{ 29700} G2P3009 +PERO1              =  0.460G1P300A + 0.270GPA3002 + 0.270GPA3004                 : ARR( 0.434E-13,  -900., 0.0);
+{ 29701} G2P3009 +PERO2              =  0.400G1P300A + 0.300GPA3002 + 0.300GPA3004                 : ARR( 0.162E-13, -1400., 0.0);
+{ 29702} G2P3009 +PERO3              =  0.460G1P300A + 0.270GPA3002 + 0.270GPA3004                 : ARR( 0.488E-13, -1250., 0.0);
+{ 29703} G2P3009 +PERO5              =  0.460G1P300A + 0.270GPA3002 + 0.270GPA3004                 : ARR( 0.183E-11,   450., 0.0);
+{ 29704} G2P3009 +PERO6              =  0.300G1P300A + 0.350GPA3002 + 0.350GPA3004                 : ARR( 0.168E-13, -1300., 0.0);
+{ 29705} G2P3009 +PERO9              =  0.650G1P300A + 0.350GPA3004                                : ARR( 0.100E-10,     0., 0.0);
+{ 29706} G1P300A                     =       GCO     +      GPD2000 +      GHO                     : ARR( 0.200E+15,  7559., 0.0);
+{ 29707} G1P300A                     =       GAD2000 +      GCO     +      GNO2                    : ARR( 0.200E+15,  7590., 0.0);
+{ 29708} GAD5005 +GHO                =       G3A5007                                               : ARR( 0.699E-10,     0., 0.0);
+{ 29709} GAD5005 +GNO3               =       G3A5007 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 29710} GAD5005+HV               =       G3A3002 +      G2D2000                                :  0.100E+01*SUN;
+{ 29711} GAD5005+HV               =       G2A400a +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 29712} G3A5007 +GHO2               =  0.800GAG5009 + 0.200GAA5006 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 29713} G3A5007 +GNO                =       G2A400a +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 29714} G3A5007 +GNO2               =       GPA5009                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 29715} G3A5007 +GNO3               =       G2A400a +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 29716} G3A5007 +MEPERO             =  0.685G2A400a + 0.315GAA5006 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 29717} G3A5007 +PERO1              =  0.800G2A400a + 0.200GAA5006 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 29718} G3A5007 +PERO2              =  0.750G2A400a + 0.250GAA5006 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 29719} G3A5007 +PERO3              =  0.800G2A400a + 0.200GAA5006 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 29720} G3A5007 +PERO5              =  0.650G2A400a + 0.350GAA5006 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 29721} G3A5007 +PERO6              =  0.650G2A400a + 0.350GAA5006 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 29722} G3A5007 +PERO9              =       G2A400a +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 29723} G2A400a +GNO                =       G1A400e +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 29724} G2A400a +GNO                =       GAN400U                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 29725} G2A400a +GHO2               =       GAH400h                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 29726} G2A400a +GNO3               =       G1A400e +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 29727} G2A400a +MEPERO             =  0.480G1A400e + 0.260GAK4008 + 0.260GAD4006                 : ARR( 0.164E-12,  -795., 0.0);
+{ 29728} G2A400a +PERO1              =  0.600G1A400e + 0.200GAK4008 + 0.200GAD4006                 : ARR( 0.126E-12,  -850., 0.0);
+{ 29729} G2A400a +PERO2              =  0.560G1A400e + 0.220GAK4008 + 0.220GAD4006                 : ARR( 0.471E-13, -1350., 0.0);
+{ 29730} G2A400a +PERO3              =  0.600G1A400e + 0.200GAK4008 + 0.200GAD4006                 : ARR( 0.142E-12, -1200., 0.0);
+{ 29731} G2A400a +PERO5              =  0.600G1A400e + 0.200GAK4008 + 0.200GAD4006                 : ARR( 0.533E-11,   500., 0.0);
+{ 29732} G2A400a +PERO6              =  0.460G1A400e + 0.270GAK4008 + 0.270GAD4006                 : ARR( 0.488E-13, -1250., 0.0);
+{ 29733} G2A400a +PERO9              =  0.800G1A400e + 0.200GAD4006                                : ARR( 0.100E-10,     0., 0.0);
+{ 29734} G1A400e                     =       G3A3002 +      GCH2O                                  : ARR( 0.200E+15,  4349., 0.0);
+{ 29735} GPH500T                     =       G3H500X +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 29736} GPH500T +GHO                =       GPD5004 +      GHO                                    : ARR( 0.523E-10,     0., 0.0);
+{ 29737} GPH500T +GHO                =       G2P500M                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 29738} GPH500T+HV               =       G1P500N +      GHO                                    :  0.100E+01*SUN;
+{ 29739} GPH500T+HV               =       G3H3000 +      G2P2000                                :  0.100E+01*SUN;
+{ 29740} GPH500T+HV               =       G3H500X +      GNO2                                   :  0.100E+01*SUN;
+{ 29741} GPK500C                     =       G3K500Q +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 29742} GPK500C +GHO                =       GPD5004 +      GHO2                                   : ARR( 0.134E-10,     0., 0.0);
+{ 29743} GPK500C +GHO                =       G2P501o                                               : ARR( 0.904E-12,     0., 0.0);
+{ 29744} GPK500C+HV               =       G3K3001 +      G2P2000                                :  0.100E+01*SUN;
+{ 29745} GPK500C+HV               =       G3K500Q +      GNO2                                   :  0.100E+01*SUN;
+{ 29746} G2P501o +GNO                =       G1P502A +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 29747} G2P501o +GNO                =       GPN501b                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 29748} G2P501o +GHO2               =       GPH502Q                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 29749} G2P501o +GNO3               =       G1P502A +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 29750} G2P501o +MEPERO             =  0.340G1P502A + 0.330GPK5008 + 0.330GPK500Q                 : ARR( 0.565E-13,  -845., 0.0);
+{ 29751} G2P501o +PERO1              =  0.460G1P502A + 0.270GPK5008 + 0.270GPK500Q                 : ARR( 0.434E-13,  -900., 0.0);
+{ 29752} G2P501o +PERO2              =  0.400G1P502A + 0.300GPK5008 + 0.300GPK500Q                 : ARR( 0.162E-13, -1400., 0.0);
+{ 29753} G2P501o +PERO3              =  0.460G1P502A + 0.270GPK5008 + 0.270GPK500Q                 : ARR( 0.488E-13, -1250., 0.0);
+{ 29754} G2P501o +PERO5              =  0.460G1P502A + 0.270GPK5008 + 0.270GPK500Q                 : ARR( 0.183E-11,   450., 0.0);
+{ 29755} G2P501o +PERO6              =  0.300G1P502A + 0.350GPK5008 + 0.350GPK500Q                 : ARR( 0.168E-13, -1300., 0.0);
+{ 29756} G2P501o +PERO9              =  0.650G1P502A + 0.350GPK500Q                                : ARR( 0.100E-10,     0., 0.0);
+{ 29757} G1P502A                     =       GDO2000 +      G3P3000                                : ARR( 0.200E+15,  2981., 0.0);
+{ 29758} GPD5004                     =       G3D5005 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 29759} GPD5004 +GHO                =       G3P5006                                               : ARR( 0.669E-10,     0., 0.0);
+{ 29760} GPD5004 +GNO3               =       G3P5006 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 29761} GPD5004+HV               =       G3D5005 +      GNO2                                   :  0.100E+01*SUN;
+{ 29762} GPD5004+HV               =       G3P3000 +      G2D2000                                :  0.100E+01*SUN;
+{ 29763} GPD5004+HV               =       G2P400C +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 29764} G3P5006 +GHO2               =  0.800GPG5007 + 0.200GPA5008 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 29765} G3P5006 +GNO                =       G2P400C +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 29766} G3P5006 +GNO2               =       GPP5005                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 29767} G3P5006 +GNO3               =       G2P400C +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 29768} G3P5006 +MEPERO             =  0.685G2P400C + 0.315GPA5008 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 29769} G3P5006 +PERO1              =  0.800G2P400C + 0.200GPA5008 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 29770} G3P5006 +PERO2              =  0.750G2P400C + 0.250GPA5008 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 29771} G3P5006 +PERO3              =  0.800G2P400C + 0.200GPA5008 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 29772} G3P5006 +PERO5              =  0.650G2P400C + 0.350GPA5008 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 29773} G3P5006 +PERO6              =  0.650G2P400C + 0.350GPA5008 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 29774} G3P5006 +PERO9              =       G2P400C +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 29775} GPN500f                     =       G3N500R +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 29776} GPN500f +GHO                =       G2P501p                                               : ARR( 0.335E-13,     0., 0.0);
+{ 29777} GPN500f +GHO                =       GPK500D +      GNO2                                   : ARR( 0.584E-13,     0., 0.0);
+{ 29778} GPN500f +GHO                =       G2P501q                                               : ARR( 0.525E-12,     0., 0.0);
+{ 29779} GPN500f+HV               =       G1P500O +      GNO2                                   :  0.100E+01*SUN;
+{ 29780} GPN500f+HV               =       G3N3001 +      G2P2000                                :  0.100E+01*SUN;
+{ 29781} GPN500f+HV               =       G3N500R +      GNO2                                   :  0.100E+01*SUN;
+{ 29782} G2P501p +GNO                =       G1P502B +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 29783} G2P501p +GNO                =       GPN5015                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 29784} G2P501p +GHO2               =       GPH502R                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 29785} G2P501p +GNO3               =       G1P502B +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 29786} G2P501p +MEPERO             =  0.480G1P502B + 0.260GPN501b + 0.260GPN5021                 : ARR( 0.164E-12,  -795., 0.0);
+{ 29787} G2P501p +PERO1              =  0.600G1P502B + 0.200GPN501b + 0.200GPN5021                 : ARR( 0.126E-12,  -850., 0.0);
+{ 29788} G2P501p +PERO2              =  0.560G1P502B + 0.220GPN501b + 0.220GPN5021                 : ARR( 0.471E-13, -1350., 0.0);
+{ 29789} G2P501p +PERO3              =  0.600G1P502B + 0.200GPN501b + 0.200GPN5021                 : ARR( 0.142E-12, -1200., 0.0);
+{ 29790} G2P501p +PERO5              =  0.600G1P502B + 0.200GPN501b + 0.200GPN5021                 : ARR( 0.533E-11,   500., 0.0);
+{ 29791} G2P501p +PERO6              =  0.460G1P502B + 0.270GPN501b + 0.270GPN5021                 : ARR( 0.488E-13, -1250., 0.0);
+{ 29792} G2P501p +PERO9              =  0.800G1P502B + 0.200GPN5021                                : ARR( 0.100E-10,     0., 0.0);
+{ 29793} G2P501q +GNO                =       G1P502C +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 29794} G2P501q +GNO                =       GPN5022                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 29795} G2P501q +GHO2               =       GPH502S                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 29796} G2P501q +GNO3               =       G1P502C +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 29797} G2P501q +MEPERO             =  0.340G1P502C + 0.330GPN5023 + 0.330GPN5024                 : ARR( 0.565E-13,  -845., 0.0);
+{ 29798} G2P501q +PERO1              =  0.460G1P502C + 0.270GPN5023 + 0.270GPN5024                 : ARR( 0.434E-13,  -900., 0.0);
+{ 29799} G2P501q +PERO2              =  0.400G1P502C + 0.300GPN5023 + 0.300GPN5024                 : ARR( 0.162E-13, -1400., 0.0);
+{ 29800} G2P501q +PERO3              =  0.460G1P502C + 0.270GPN5023 + 0.270GPN5024                 : ARR( 0.488E-13, -1250., 0.0);
+{ 29801} G2P501q +PERO5              =  0.460G1P502C + 0.270GPN5023 + 0.270GPN5024                 : ARR( 0.183E-11,   450., 0.0);
+{ 29802} G2P501q +PERO6              =  0.300G1P502C + 0.350GPN5023 + 0.350GPN5024                 : ARR( 0.168E-13, -1300., 0.0);
+{ 29803} G2P501q +PERO9              =  0.650G1P502C + 0.350GPN5024                                : ARR( 0.100E-10,     0., 0.0);
+{ 29804} G1P502B +OXYGEN             =       GPN5021 +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 29805} G1P502B                     =       G2P501r                                               : ARR( 0.160E+12,  5203., 0.0);
+{ 29806} G1P502B                     =       GPD4003 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7323., 0.0);
+{ 29807} G1P502C                     =       G3N3001 +      GPD2000                                : ARR( 0.200E+15,  5396., 0.0);
+{ 29808} G2P501r +GNO                =       G1P502D +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 29809} G2P501r +GNO                =       GPN5025                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 29810} G2P501r +GHO2               =       GPH502T                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 29811} G2P501r +GNO3               =       G1P502D +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 29812} G2P501r +MEPERO             =  0.340G1P502D + 0.330GPN5026 + 0.330GPN5027                 : ARR( 0.565E-13,  -845., 0.0);
+{ 29813} G2P501r +PERO1              =  0.460G1P502D + 0.270GPN5026 + 0.270GPN5027                 : ARR( 0.434E-13,  -900., 0.0);
+{ 29814} G2P501r +PERO2              =  0.400G1P502D + 0.300GPN5026 + 0.300GPN5027                 : ARR( 0.162E-13, -1400., 0.0);
+{ 29815} G2P501r +PERO3              =  0.460G1P502D + 0.270GPN5026 + 0.270GPN5027                 : ARR( 0.488E-13, -1250., 0.0);
+{ 29816} G2P501r +PERO5              =  0.460G1P502D + 0.270GPN5026 + 0.270GPN5027                 : ARR( 0.183E-11,   450., 0.0);
+{ 29817} G2P501r +PERO6              =  0.300G1P502D + 0.350GPN5026 + 0.350GPN5027                 : ARR( 0.168E-13, -1300., 0.0);
+{ 29818} G2P501r +PERO9              =  0.650G1P502D + 0.350GPN5027                                : ARR( 0.100E-10,     0., 0.0);
+{ 29819} G1P502D                     =       G3N3004 +      GPD2000                                : ARR( 0.200E+15,  5396., 0.0);
+{ 29820} GPH500U                     =       G3H500M +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 29821} GPH500U +GHO                =       GPK500D +      GHO                                    : ARR( 0.213E-10,     0., 0.0);
+{ 29822} GPH500U +GHO                =       G2P500N                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 29823} GPH500U+HV               =       G1P500O +      GHO                                    :  0.100E+01*SUN;
+{ 29824} GPH500U+HV               =       G3H3001 +      G2P2000                                :  0.100E+01*SUN;
+{ 29825} GPH500U+HV               =       G3H500M +      GNO2                                   :  0.100E+01*SUN;
+{ 29826} GPK500D                     =       G3K500K +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 29827} GPK500D +GHO                =       G2P501s                                               : ARR( 0.102E-12,     0., 0.0);
+{ 29828} GPK500D +GHO                =       G2P501t                                               : ARR( 0.525E-12,     0., 0.0);
+{ 29829} GPK500D+HV               =       G3K2000 +      G3P3000                                :  0.100E+01*SUN;
+{ 29830} GPK500D+HV               =       G3K500K +      GNO2                                   :  0.100E+01*SUN;
+{ 29831} G2P501s +GNO                =       G1P502E +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 29832} G2P501s +GNO                =       GPN5016                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 29833} G2P501s +GHO2               =       GPH501y                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 29834} G2P501s +GNO3               =       G1P502E +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 29835} G2P501s +MEPERO             =  0.480G1P502E + 0.260GPK500Q + 0.260GPD500F                 : ARR( 0.164E-12,  -795., 0.0);
+{ 29836} G2P501s +PERO1              =  0.600G1P502E + 0.200GPK500Q + 0.200GPD500F                 : ARR( 0.126E-12,  -850., 0.0);
+{ 29837} G2P501s +PERO2              =  0.560G1P502E + 0.220GPK500Q + 0.220GPD500F                 : ARR( 0.471E-13, -1350., 0.0);
+{ 29838} G2P501s +PERO3              =  0.600G1P502E + 0.200GPK500Q + 0.200GPD500F                 : ARR( 0.142E-12, -1200., 0.0);
+{ 29839} G2P501s +PERO5              =  0.600G1P502E + 0.200GPK500Q + 0.200GPD500F                 : ARR( 0.533E-11,   500., 0.0);
+{ 29840} G2P501s +PERO6              =  0.460G1P502E + 0.270GPK500Q + 0.270GPD500F                 : ARR( 0.488E-13, -1250., 0.0);
+{ 29841} G2P501s +PERO9              =  0.800G1P502E + 0.200GPD500F                                : ARR( 0.100E-10,     0., 0.0);
+{ 29842} G2P501t +GNO                =       G1P502F +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 29843} G2P501t +GNO                =       GPN5028                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 29844} G2P501t +GHO2               =       GPH502U                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 29845} G2P501t +GNO3               =       G1P502F +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 29846} G2P501t +MEPERO             =  0.340G1P502F + 0.330GPK500Y + 0.330GPK500Z                 : ARR( 0.565E-13,  -845., 0.0);
+{ 29847} G2P501t +PERO1              =  0.460G1P502F + 0.270GPK500Y + 0.270GPK500Z                 : ARR( 0.434E-13,  -900., 0.0);
+{ 29848} G2P501t +PERO2              =  0.400G1P502F + 0.300GPK500Y + 0.300GPK500Z                 : ARR( 0.162E-13, -1400., 0.0);
+{ 29849} G2P501t +PERO3              =  0.460G1P502F + 0.270GPK500Y + 0.270GPK500Z                 : ARR( 0.488E-13, -1250., 0.0);
+{ 29850} G2P501t +PERO5              =  0.460G1P502F + 0.270GPK500Y + 0.270GPK500Z                 : ARR( 0.183E-11,   450., 0.0);
+{ 29851} G2P501t +PERO6              =  0.300G1P502F + 0.350GPK500Y + 0.350GPK500Z                 : ARR( 0.168E-13, -1300., 0.0);
+{ 29852} G2P501t +PERO9              =  0.650G1P502F + 0.350GPK500Z                                : ARR( 0.100E-10,     0., 0.0);
+{ 29853} G1P502E                     =       G3P3000 +      GCH2O   +      GCO                     : ARR( 0.200E+15,  3897., 0.0);
+{ 29854} G1P502F                     =       G3K2000 +      GPD2000 +      GCO                     : ARR( 0.200E+15,  5653., 0.0);
+{ 29855} GPN500g                     =       G3N500z +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 29856} GPN500g +GHO                =       G2P501u                                               : ARR( 0.550E-12,     0., 0.0);
+{ 29857} GPN500g +GHO                =       G2P501v                                               : ARR( 0.725E-12,     0., 0.0);
+{ 29858} GPN500g+HV               =       G3K3000 +      GPD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 29859} GPN500g+HV               =       G1P500P +      GNO2                                   :  0.100E+01*SUN;
+{ 29860} GPN500g+HV               =       G3N500z +      GNO2                                   :  0.100E+01*SUN;
+{ 29861} G2P501u +GNO                =       G1P502G +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 29862} G2P501u +GNO                =       GPN5017                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 29863} G2P501u +GHO2               =       GPH502W                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 29864} G2P501u +GNO3               =       G1P502G +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 29865} G2P501u +MEPERO             =  0.480G1P502G + 0.260GPN500h + 0.260GPN5029                 : ARR( 0.146E-12,  -445., 0.0);
+{ 29866} G2P501u +PERO1              =  0.600G1P502G + 0.200GPN500h + 0.200GPN5029                 : ARR( 0.112E-12,  -500., 0.0);
+{ 29867} G2P501u +PERO2              =  0.560G1P502G + 0.220GPN500h + 0.220GPN5029                 : ARR( 0.418E-13, -1000., 0.0);
+{ 29868} G2P501u +PERO3              =  0.600G1P502G + 0.200GPN500h + 0.200GPN5029                 : ARR( 0.126E-12,  -850., 0.0);
+{ 29869} G2P501u +PERO5              =  0.600G1P502G + 0.200GPN500h + 0.200GPN5029                 : ARR( 0.473E-11,   850., 0.0);
+{ 29870} G2P501u +PERO6              =  0.460G1P502G + 0.270GPN500h + 0.270GPN5029                 : ARR( 0.434E-13,  -900., 0.0);
+{ 29871} G2P501u +PERO9              =  0.800G1P502G + 0.200GPN5029                                : ARR( 0.100E-10,     0., 0.0);
+{ 29872} G2P501v +GNO                =       G1P502H +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 29873} G2P501v +GNO                =       GPN5022                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 29874} G2P501v +GHO2               =       GPH502X                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 29875} G2P501v +GNO3               =       G1P502H +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 29876} G2P501v +MEPERO             =  0.340G1P502H + 0.330GPN500w + 0.330GPN5028                 : ARR( 0.565E-13,  -845., 0.0);
+{ 29877} G2P501v +PERO1              =  0.460G1P502H + 0.270GPN500w + 0.270GPN5028                 : ARR( 0.434E-13,  -900., 0.0);
+{ 29878} G2P501v +PERO2              =  0.400G1P502H + 0.300GPN500w + 0.300GPN5028                 : ARR( 0.162E-13, -1400., 0.0);
+{ 29879} G2P501v +PERO3              =  0.460G1P502H + 0.270GPN500w + 0.270GPN5028                 : ARR( 0.488E-13, -1250., 0.0);
+{ 29880} G2P501v +PERO5              =  0.460G1P502H + 0.270GPN500w + 0.270GPN5028                 : ARR( 0.183E-11,   450., 0.0);
+{ 29881} G2P501v +PERO6              =  0.300G1P502H + 0.350GPN500w + 0.350GPN5028                 : ARR( 0.168E-13, -1300., 0.0);
+{ 29882} G2P501v +PERO9              =  0.650G1P502H + 0.350GPN5028                                : ARR( 0.100E-10,     0., 0.0);
+{ 29883} G1P502G +OXYGEN             =       GPN5029 +      GHO2                                   : ARR( 0.600E-13,   398., 0.0);
+{ 29884} G1P502H                     =       GD02000 +      G3P3001                                : ARR( 0.200E+15,  3868., 0.0);
+{ 29885} G3P3001 +GHO2               =  0.800GPG3001 + 0.200GPA3001 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 29886} G3P3001 +GNO                =       GPD2000 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 29887} G3P3001 +GNO2               =       GPP3001                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 29888} G3P3001 +GNO3               =       GPD2000 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 29889} G3P3001 +MEPERO             =  0.685GPD2000 + 0.315GPA3001 + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 29890} G3P3001 +PERO1              =  0.800GPD2000 + 0.200GPA3001 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 29891} G3P3001 +PERO2              =  0.750GPD2000 + 0.250GPA3001 + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 29892} G3P3001 +PERO3              =  0.800GPD2000 + 0.200GPA3001 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 29893} G3P3001 +PERO5              =  0.650GPD2000 + 0.350GPA3001 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 29894} G3P3001 +PERO6              =  0.650GPD2000 + 0.350GPA3001 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 29895} G3P3001 +PERO9              =       GPD2000 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 29896} GPH500W                     =       G3H500r +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 29897} GPH500W +GHO                =       GPK500F +      GHO                                    : ARR( 0.163E-10,     0., 0.0);
+{ 29898} GPH500W +GHO                =       G2P500O                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 29899} GPH500W+HV               =       G3K3000 +      GPD2000 +      GHO                     :  0.100E+01*SUN;
+{ 29900} GPH500W+HV               =       G1P500P +      GHO                                    :  0.100E+01*SUN;
+{ 29901} GPH500W+HV               =       G3H500r +      GNO2                                   :  0.100E+01*SUN;
+{ 29902} GPK500E                     =       G3K500G +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 29903} GPK500E +GHO                =       G2P501w                                               : ARR( 0.546E-12,     0., 0.0);
+{ 29904} GPK500E +GHO                =       G2P501x                                               : ARR( 0.720E-12,     0., 0.0);
+{ 29905} GPK500E +GHO                =       GPK500F +      GHO2                                   : ARR( 0.394E-11,     0., 0.0);
+{ 29906} GPK500E+HV               =       G3K3000 +      GPD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 29907} GPK500E+HV               =       G3K500G +      GNO2                                   :  0.100E+01*SUN;
+{ 29908} G2P501w +GNO                =       G1P502I +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 29909} G2P501w +GNO                =       GPN500v                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 29910} G2P501w +GHO2               =       GPH501t                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 29911} G2P501w +GNO3               =       G1P502I +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 29912} G2P501w +MEPERO             =  0.480G1P502I + 0.260GPK500G + 0.260GPD5005                 : ARR( 0.146E-12,  -445., 0.0);
+{ 29913} G2P501w +PERO1              =  0.600G1P502I + 0.200GPK500G + 0.200GPD5005                 : ARR( 0.112E-12,  -500., 0.0);
+{ 29914} G2P501w +PERO2              =  0.560G1P502I + 0.220GPK500G + 0.220GPD5005                 : ARR( 0.418E-13, -1000., 0.0);
+{ 29915} G2P501w +PERO3              =  0.600G1P502I + 0.200GPK500G + 0.200GPD5005                 : ARR( 0.126E-12,  -850., 0.0);
+{ 29916} G2P501w +PERO5              =  0.600G1P502I + 0.200GPK500G + 0.200GPD5005                 : ARR( 0.473E-11,   850., 0.0);
+{ 29917} G2P501w +PERO6              =  0.460G1P502I + 0.270GPK500G + 0.270GPD5005                 : ARR( 0.434E-13,  -900., 0.0);
+{ 29918} G2P501w +PERO9              =  0.800G1P502I + 0.200GPD5005                                : ARR( 0.100E-10,     0., 0.0);
+{ 29919} G2P501x +GNO                =       G1P502J +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 29920} G2P501x +GNO                =       GPN5023                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 29921} G2P501x +GHO2               =       GPH502Y                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 29922} G2P501x +GNO3               =       G1P502J +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 29923} G2P501x +MEPERO             =  0.340G1P502J + 0.330GPK500K + 0.330GPK500Y                 : ARR( 0.565E-13,  -845., 0.0);
+{ 29924} G2P501x +PERO1              =  0.460G1P502J + 0.270GPK500K + 0.270GPK500Y                 : ARR( 0.434E-13,  -900., 0.0);
+{ 29925} G2P501x +PERO2              =  0.400G1P502J + 0.300GPK500K + 0.300GPK500Y                 : ARR( 0.162E-13, -1400., 0.0);
+{ 29926} G2P501x +PERO3              =  0.460G1P502J + 0.270GPK500K + 0.270GPK500Y                 : ARR( 0.488E-13, -1250., 0.0);
+{ 29927} G2P501x +PERO5              =  0.460G1P502J + 0.270GPK500K + 0.270GPK500Y                 : ARR( 0.183E-11,   450., 0.0);
+{ 29928} G2P501x +PERO6              =  0.300G1P502J + 0.350GPK500K + 0.350GPK500Y                 : ARR( 0.168E-13, -1300., 0.0);
+{ 29929} G2P501x +PERO9              =  0.650G1P502J + 0.350GPK500Y                                : ARR( 0.100E-10,     0., 0.0);
+{ 29930} G1P502I +OXYGEN             =       GPD5005 +      GHO2                                   : ARR( 0.600E-13,   398., 0.0);
+{ 29931} G1P502I                     =       GPK500H +      GHO2                                   : ARR( 0.800E+11,  4228., 0.0);
+{ 29932} G1P502J                     =       GD02000 +      G3P3002                                : ARR( 0.200E+15,  3523., 0.0);
+{ 29933} G3P3002 +GHO2               =  0.800GPG3002 + 0.200GPA3002 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 29934} G3P3002 +GNO                =       GPD2000 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 29935} G3P3002 +GNO2               =       GPP3002                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 29936} G3P3002 +GNO3               =       GPD2000 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 29937} G3P3002 +MEPERO             =  0.685GPD2000 + 0.315GPA3002 + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 29938} G3P3002 +PERO1              =  0.800GPD2000 + 0.200GPA3002 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 29939} G3P3002 +PERO2              =  0.750GPD2000 + 0.250GPA3002 + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 29940} G3P3002 +PERO3              =  0.800GPD2000 + 0.200GPA3002 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 29941} G3P3002 +PERO5              =  0.650GPD2000 + 0.350GPA3002 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 29942} G3P3002 +PERO6              =  0.650GPD2000 + 0.350GPA3002 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 29943} G3P3002 +PERO9              =       GPD2000 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 29944} GPK500F                     =       G3K500b +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 29945} GPK500F +GHO                =       G2P501y                                               : ARR( 0.531E-12,     0., 0.0);
+{ 29946} GPK500F +GHO                =       G2P501z                                               : ARR( 0.701E-12,     0., 0.0);
+{ 29947} GPK500F+HV               =       G3K3000 +      GCO     +      GNO2    +      GCO      :  0.100E+01*SUN;
+{ 29948} GPK500F+HV               =       G3K3000 +      GCO     +      GCO     +      GNO2     :  0.100E+01*SUN;
+{ 29949} G2P501y +GNO                =       G1P502K +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 29950} G2P501y +GNO                =       GPN5018                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 29951} G2P501y +GHO2               =       GPH502Z                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 29952} G2P501y +GNO3               =       G1P502K +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 29953} G2P501y +MEPERO             =  0.480G1P502K + 0.260GPK500H + 0.260GPD500G                 : ARR( 0.146E-12,  -445., 0.0);
+{ 29954} G2P501y +PERO1              =  0.600G1P502K + 0.200GPK500H + 0.200GPD500G                 : ARR( 0.112E-12,  -500., 0.0);
+{ 29955} G2P501y +PERO2              =  0.560G1P502K + 0.220GPK500H + 0.220GPD500G                 : ARR( 0.418E-13, -1000., 0.0);
+{ 29956} G2P501y +PERO3              =  0.600G1P502K + 0.200GPK500H + 0.200GPD500G                 : ARR( 0.126E-12,  -850., 0.0);
+{ 29957} G2P501y +PERO5              =  0.600G1P502K + 0.200GPK500H + 0.200GPD500G                 : ARR( 0.473E-11,   850., 0.0);
+{ 29958} G2P501y +PERO6              =  0.460G1P502K + 0.270GPK500H + 0.270GPD500G                 : ARR( 0.434E-13,  -900., 0.0);
+{ 29959} G2P501y +PERO9              =  0.800G1P502K + 0.200GPD500G                                : ARR( 0.100E-10,     0., 0.0);
+{ 29960} G2P501z +GNO                =       G1P502L +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 29961} G2P501z +GNO                =       GPN5024                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 29962} G2P501z +GHO2               =       GPH502a                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 29963} G2P501z +GNO3               =       G1P502L +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 29964} G2P501z +MEPERO             =  0.340G1P502L + 0.330GPK500N + 0.330GPK500Z                 : ARR( 0.565E-13,  -845., 0.0);
+{ 29965} G2P501z +PERO1              =  0.460G1P502L + 0.270GPK500N + 0.270GPK500Z                 : ARR( 0.434E-13,  -900., 0.0);
+{ 29966} G2P501z +PERO2              =  0.400G1P502L + 0.300GPK500N + 0.300GPK500Z                 : ARR( 0.162E-13, -1400., 0.0);
+{ 29967} G2P501z +PERO3              =  0.460G1P502L + 0.270GPK500N + 0.270GPK500Z                 : ARR( 0.488E-13, -1250., 0.0);
+{ 29968} G2P501z +PERO5              =  0.460G1P502L + 0.270GPK500N + 0.270GPK500Z                 : ARR( 0.183E-11,   450., 0.0);
+{ 29969} G2P501z +PERO6              =  0.300G1P502L + 0.350GPK500N + 0.350GPK500Z                 : ARR( 0.168E-13, -1300., 0.0);
+{ 29970} G2P501z +PERO9              =  0.650G1P502L + 0.350GPK500Z                                : ARR( 0.100E-10,     0., 0.0);
+{ 29971} G1P502K +OXYGEN             =       GPD500G +      GHO2                                   : ARR( 0.600E-13,   398., 0.0);
+{ 29972} G1P502L                     =       GD02000 +      GCO     +      GNO2    + 2.000GCO      : ARR( 0.200E+15,  3036., 0.0);
+{ 29973} GPN500h                     =       G3N500i +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 29974} GPN500h +GHO                =       GPN5029 +      GHO2                                   : ARR( 0.129E-10,     0., 0.0);
+{ 29975} GPN500h +GHO                =       G2P5021                                               : ARR( 0.873E-12,     0., 0.0);
+{ 29976} GPN500h+HV               =       G3K3001 +      GPD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 29977} GPN500h+HV               =       G1P500Q +      GNO2                                   :  0.100E+01*SUN;
+{ 29978} GPN500h+HV               =       G3N500i +      GNO2                                   :  0.100E+01*SUN;
+{ 29979} G2P5021 +GNO                =       G1P502M +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 29980} G2P5021 +GNO                =       GPN5025                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 29981} G2P5021 +GHO2               =       GPH502b                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 29982} G2P5021 +GNO3               =       G1P502M +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 29983} G2P5021 +MEPERO             =  0.340G1P502M + 0.330GPN502A + 0.330GPN502B                 : ARR( 0.565E-13,  -845., 0.0);
+{ 29984} G2P5021 +PERO1              =  0.460G1P502M + 0.270GPN502A + 0.270GPN502B                 : ARR( 0.434E-13,  -900., 0.0);
+{ 29985} G2P5021 +PERO2              =  0.400G1P502M + 0.300GPN502A + 0.300GPN502B                 : ARR( 0.162E-13, -1400., 0.0);
+{ 29986} G2P5021 +PERO3              =  0.460G1P502M + 0.270GPN502A + 0.270GPN502B                 : ARR( 0.488E-13, -1250., 0.0);
+{ 29987} G2P5021 +PERO5              =  0.460G1P502M + 0.270GPN502A + 0.270GPN502B                 : ARR( 0.183E-11,   450., 0.0);
+{ 29988} G2P5021 +PERO6              =  0.300G1P502M + 0.350GPN502A + 0.350GPN502B                 : ARR( 0.168E-13, -1300., 0.0);
+{ 29989} G2P5021 +PERO9              =  0.650G1P502M + 0.350GPN502B                                : ARR( 0.100E-10,     0., 0.0);
+{ 29990} G1P502M                     =       GDO2000 +      G3P3001                                : ARR( 0.200E+15,  4123., 0.0);
+{ 29991} GPH500X                     =       G3H500i +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 29992} GPH500X +GHO                =       GPH502c +      GHO2                                   : ARR( 0.132E-10,     0., 0.0);
+{ 29993} GPH500X +GHO                =       GPK500H +      GHO                                    : ARR( 0.158E-10,     0., 0.0);
+{ 29994} GPH500X +GHO                =       G2P500P                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 29995} GPH500X+HV               =       G3K3001 +      GPD2000 +      GHO                     :  0.100E+01*SUN;
+{ 29996} GPH500X+HV               =       G1P500Q +      GHO                                    :  0.100E+01*SUN;
+{ 29997} GPH500X+HV               =       G3H500i +      GNO2                                   :  0.100E+01*SUN;
+{ 29998} GPK500G                     =       G3K500S +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 29999} GPK500G +GHO                =       GPD5005 +      GHO2                                   : ARR( 0.136E-10,     0., 0.0);
+{ 30000} GPK500G +GHO                =       GPK500H +      GHO2                                   : ARR( 0.409E-11,     0., 0.0);
+{ 30001} GPK500G+HV               =       G3K3001 +      GPD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 30002} GPK500G+HV               =       G3K500S +      GNO2                                   :  0.100E+01*SUN;
+{ 30003} GPK500H                     =       G3K500c +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 30004} GPK500H +GHO                =       GPD500G +      GHO2                                   : ARR( 0.129E-10,     0., 0.0);
+{ 30005} GPK500H +GHO                =       G2P5022                                               : ARR( 0.871E-12,     0., 0.0);
+{ 30006} GPK500H+HV               =       G3K3001 +      GCO     +      GNO2    +      GCO      :  0.100E+01*SUN;
+{ 30007} GPK500H+HV               =       G3K3001 +      GCO     +      GCO     +      GNO2     :  0.100E+01*SUN;
+{ 30008} G2P5022 +GNO                =       G1P502N +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 30009} G2P5022 +GNO                =       GPN5027                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 30010} G2P5022 +GHO2               =       GPH502d                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 30011} G2P5022 +GNO3               =       G1P502N +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 30012} G2P5022 +MEPERO             =  0.340G1P502N + 0.330GPK500a + 0.330GPK500b                 : ARR( 0.565E-13,  -845., 0.0);
+{ 30013} G2P5022 +PERO1              =  0.460G1P502N + 0.270GPK500a + 0.270GPK500b                 : ARR( 0.434E-13,  -900., 0.0);
+{ 30014} G2P5022 +PERO2              =  0.400G1P502N + 0.300GPK500a + 0.300GPK500b                 : ARR( 0.162E-13, -1400., 0.0);
+{ 30015} G2P5022 +PERO3              =  0.460G1P502N + 0.270GPK500a + 0.270GPK500b                 : ARR( 0.488E-13, -1250., 0.0);
+{ 30016} G2P5022 +PERO5              =  0.460G1P502N + 0.270GPK500a + 0.270GPK500b                 : ARR( 0.183E-11,   450., 0.0);
+{ 30017} G2P5022 +PERO6              =  0.300G1P502N + 0.350GPK500a + 0.350GPK500b                 : ARR( 0.168E-13, -1300., 0.0);
+{ 30018} G2P5022 +PERO9              =  0.650G1P502N + 0.350GPK500b                                : ARR( 0.100E-10,     0., 0.0);
+{ 30019} G1P502N                     =       GDO2000 +      GCO     +      GNO2    + 2.000GCO      : ARR( 0.200E+15,  3291., 0.0);
+{ 30020} GPP3000                     =       G3P3000 +      GNO2                                   : ARR( 0.400E+16, 12800., 0.0);
+{ 30021} GPP3000 +GHO                =       G2P300A                                               : ARR( 0.525E-12,     0., 0.0);
+{ 30022} GPP3000+HV               =       G3P3000 +      GNO2                                   :  0.200E+01*SUN;
+{ 30023} G2P300A +GNO                =       G1P300B +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{ 30024} G2P300A +GNO                =       GPP3001                                               : ARR( 0.622E-13,  -360., 0.0);
+{ 30025} G2P300A +GHO2               =       GPP3003                                               : ARR( 0.179E-12, -1250., 0.0);
+{ 30026} G2P300A +GNO3               =       G1P300B +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 30027} G2P300A +MEPERO             =  0.340G1P300B + 0.330GPP3002 + 0.330GPP3004                 : ARR( 0.565E-13,  -845., 0.0);
+{ 30028} G2P300A +PERO1              =  0.460G1P300B + 0.270GPP3002 + 0.270GPP3004                 : ARR( 0.434E-13,  -900., 0.0);
+{ 30029} G2P300A +PERO2              =  0.400G1P300B + 0.300GPP3002 + 0.300GPP3004                 : ARR( 0.162E-13, -1400., 0.0);
+{ 30030} G2P300A +PERO3              =  0.460G1P300B + 0.270GPP3002 + 0.270GPP3004                 : ARR( 0.488E-13, -1250., 0.0);
+{ 30031} G2P300A +PERO5              =  0.460G1P300B + 0.270GPP3002 + 0.270GPP3004                 : ARR( 0.183E-11,   450., 0.0);
+{ 30032} G2P300A +PERO6              =  0.300G1P300B + 0.350GPP3002 + 0.350GPP3004                 : ARR( 0.168E-13, -1300., 0.0);
+{ 30033} G2P300A +PERO9              =  0.650G1P300B + 0.350GPP3004                                : ARR( 0.100E-10,     0., 0.0);
+{ 30034} G1P300B                     =       GCO     +      GPD2000 +      GNO2                    : ARR( 0.400E+15,  7590., 0.0);
+{ 30035} GPD5005                     =       G3D5007 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 30036} GPD5005 +GHO                =       GPD500G +      GHO2                                   : ARR( 0.387E-11,     0., 0.0);
+{ 30037} GPD5005 +GHO                =       G3P5007                                               : ARR( 0.665E-10,     0., 0.0);
+{ 30038} GPD5005 +GNO3               =       G3P5007 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 30039} GPD5005+HV               =       G3D5007 +      GNO2                                   :  0.100E+01*SUN;
+{ 30040} GPD5005+HV               =       G3P3002 +      G2D2000                                :  0.100E+01*SUN;
+{ 30041} GPD5005+HV               =       G2P400c +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 30042} G3P5007 +GHO2               =  0.800GPG5009 + 0.200GPA500A + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 30043} G3P5007 +GNO                =       G2P400c +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 30044} G3P5007 +GNO2               =       GPP5006                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 30045} G3P5007 +GNO3               =       G2P400c +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 30046} G3P5007 +MEPERO             =  0.685G2P400c + 0.315GPA500A + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 30047} G3P5007 +PERO1              =  0.800G2P400c + 0.200GPA500A + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 30048} G3P5007 +PERO2              =  0.750G2P400c + 0.250GPA500A + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 30049} G3P5007 +PERO3              =  0.800G2P400c + 0.200GPA500A + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 30050} G3P5007 +PERO5              =  0.650G2P400c + 0.350GPA500A + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 30051} G3P5007 +PERO6              =  0.650G2P400c + 0.350GPA500A + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 30052} G3P5007 +PERO9              =       G2P400c +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 30053} G2P400c +GNO                =       G1P400f +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 30054} G2P400c +GNO                =       GPN400W                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 30055} G2P400c +GHO2               =       GPH400i                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 30056} G2P400c +GNO3               =       G1P400f +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 30057} G2P400c +MEPERO             =  0.480G1P400f + 0.260GPK4008 + 0.260GPD4007                 : ARR( 0.164E-12,  -795., 0.0);
+{ 30058} G2P400c +PERO1              =  0.600G1P400f + 0.200GPK4008 + 0.200GPD4007                 : ARR( 0.126E-12,  -850., 0.0);
+{ 30059} G2P400c +PERO2              =  0.560G1P400f + 0.220GPK4008 + 0.220GPD4007                 : ARR( 0.471E-13, -1350., 0.0);
+{ 30060} G2P400c +PERO3              =  0.600G1P400f + 0.200GPK4008 + 0.200GPD4007                 : ARR( 0.142E-12, -1200., 0.0);
+{ 30061} G2P400c +PERO5              =  0.600G1P400f + 0.200GPK4008 + 0.200GPD4007                 : ARR( 0.533E-11,   500., 0.0);
+{ 30062} G2P400c +PERO6              =  0.460G1P400f + 0.270GPK4008 + 0.270GPD4007                 : ARR( 0.488E-13, -1250., 0.0);
+{ 30063} G2P400c +PERO9              =  0.800G1P400f + 0.200GPD4007                                : ARR( 0.100E-10,     0., 0.0);
+{ 30064} G1P400f                     =       G3P3002 +      GCH2O                                  : ARR( 0.200E+15,  4349., 0.0);
+{ 30065} GNN400Q +GHO                =       G2N400q                                               : ARR( 0.335E-13,     0., 0.0);
+{ 30066} GNN400Q +GHO                =       GNK400A +      GNO2                                   : ARR( 0.584E-13,     0., 0.0);
+{ 30067} GNN400Q +GHO                =       GND400I +      GNO2                                   : ARR( 0.280E-13,     0., 0.0);
+{ 30068} GNN400Q+HV               =       G1N400T +      GNO2                                   :  0.100E+01*SUN;
+{ 30069} GNN400Q+HV               =       G3N3001 +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{ 30070} GNN400Q+HV               =       G1N400d +      GNO2                                   :  0.100E+01*SUN;
+{ 30071} GHN400j +GHO                =       GNK400A +      GHO                                    : ARR( 0.209E-10,     0., 0.0);
+{ 30072} GHN400j +GHO                =       G2N400S                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 30073} GHN400j+HV               =       G1N400T +      GHO                                    :  0.100E+01*SUN;
+{ 30074} GHN400j+HV               =       G3H3001 +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{ 30075} GHN400j+HV               =       G1H400Y +      GNO2                                   :  0.100E+01*SUN;
+{ 30076} GNK400A +GHO                =       G2N400u                                               : ARR( 0.102E-12,     0., 0.0);
+{ 30077} GNK400A +GHO                =       GDK4008 +      GNO2                                   : ARR( 0.280E-13,     0., 0.0);
+{ 30078} GNK400A+HV               =       G3K2000 +      G3N2000                                :  0.100E+01*SUN;
+{ 30079} GNK400A+HV               =       G1K4009 +      GNO2                                   :  0.100E+01*SUN;
+{ 30080} GNK400B +GHO                =       GND400I +      GHO2                                   : ARR( 0.254E-11,     0., 0.0);
+{ 30081} GNK400B +GHO                =       G1N400d                                               : ARR( 0.217E-17,    85., 2.0);
+{ 30082} GNK400B+HV               =       G1K4005 +      GNO2                                   :  0.100E+01*SUN;
+{ 30083} GNK400B+HV               =       G3N3001 +      GCH2O   +      GHO2                    :  0.100E+01*SUN;
+{ 30084} GHK4007 +GHO                =       GKK4000 +      GHO                                    : ARR( 0.209E-10,     0., 0.0);
+{ 30085} GHK4007 +GHO                =       GHD400I +      GHO2                                   : ARR( 0.251E-11,     0., 0.0);
+{ 30086} GHK4007 +GHO                =       G2K4005                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 30087} GHK4007+HV               =       G1K4005 +      GHO                                    :  0.100E+01*SUN;
+{ 30088} GHK4007+HV               =       G3H3001 +      GCH2O   +      GHO2                    :  0.100E+01*SUN;
+{ 30089} GKK4000 +GHO                =       GDK4008 +      GHO2                                   : ARR( 0.255E-11,     0., 0.0);
+{ 30090} GKK4000 +GHO                =       G1K4009                                               : ARR( 0.218E-17,    85., 2.0);
+{ 30091} GKK4000+HV               =       G3K2000 +      G3K2001                                :  0.100E+01*SUN;
+{ 30092} GC02000 +GHO                =       G202000                                               : ARR( 0.152E-16,   498., 2.0);
+{ 30093} GND400I +GHO                =       G3N3001 +      GCO                                    : ARR( 0.128E-10,     0., 0.0);
+{ 30094} GND400I +GNO3               =       G3N3001 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 30095} GND400I+HV               =       G1D400B +      GNO2                                   :  0.100E+01*SUN;
+{ 30096} GND400I+HV               =       G3N3001 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 30097} GND400I+HV               =       GND3001 +      GCO                                    :  0.100E+01*SUN;
+{ 30098} GND400I+HV               =       GN02000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 30099} GHD400I +GHO                =       GDK4008 +      GHO                                    : ARR( 0.207E-10,     0., 0.0);
+{ 30100} GHD400I +GHO                =       G3H3001 +      GCO                                    : ARR( 0.129E-10,     0., 0.0);
+{ 30101} GHD400I +GHO                =       G2D4009                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 30102} GHD400I +GNO3               =       G3H3001 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 30103} GHD400I+HV               =       G1D400B +      GHO                                    :  0.100E+01*SUN;
+{ 30104} GHD400I+HV               =       G3H3001 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 30105} GHD400I+HV               =       GHD3002 +      GCO                                    :  0.100E+01*SUN;
+{ 30106} GHD400I+HV               =       GH02000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 30107} GDK4008 +GHO                =       G3K2000 + 2.000GCO                                    : ARR( 0.128E-10,     0., 0.0);
+{ 30108} GDK4008 +GNO3               =       G3K2000 +      GHNO3   + 2.000GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 30109} GDK4008+HV               =       G3K2000 +      G3D2000                                :  0.100E+01*SUN;
+{ 30110} GDK4008+HV               =       G3K2000 +      GCO     +      GCO     +      GHO2     :  0.100E+01*SUN;
+{ 30111} GDK4008+HV               =       GDK3000 +      GCO                                    :  0.100E+01*SUN;
+{ 30112} GDK4008+HV               =       GD02000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 30113} GGH500T +GHO                =       GGN500U +      GHO                                    : ARR( 0.831E-11,     0., 0.0);
+{ 30114} GGH500T +GHO                =       G2G501U                                               : ARR( 0.868E-12,     0., 0.0);
+{ 30115} GGH500T +GHO                =       G2G500L                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 30116} GGH500T +GHO                =       G3H500m                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 30117} GGH500T+HV               =       G1G501l +      GNO2                                   :  0.100E+01*SUN;
+{ 30118} GGH500T+HV               =       G1G500M +      GHO                                    :  0.100E+01*SUN;
+{ 30119} GGH500T+HV               =       G2H400h +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 30120} G2G501U +GNO                =       G1G501m +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 30121} G2G501U +GNO                =       GGH502G                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 30122} G2G501U +GHO2               =       GGH502H                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 30123} G2G501U +GNO3               =       G1G501m +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 30124} G2G501U +MEPERO             =  0.340G1G501m + 0.330GGH502I + 0.330GGH502J                 : ARR( 0.565E-13,  -845., 0.0);
+{ 30125} G2G501U +PERO1              =  0.460G1G501m + 0.270GGH502I + 0.270GGH502J                 : ARR( 0.434E-13,  -900., 0.0);
+{ 30126} G2G501U +PERO2              =  0.400G1G501m + 0.300GGH502I + 0.300GGH502J                 : ARR( 0.162E-13, -1400., 0.0);
+{ 30127} G2G501U +PERO3              =  0.460G1G501m + 0.270GGH502I + 0.270GGH502J                 : ARR( 0.488E-13, -1250., 0.0);
+{ 30128} G2G501U +PERO5              =  0.460G1G501m + 0.270GGH502I + 0.270GGH502J                 : ARR( 0.183E-11,   450., 0.0);
+{ 30129} G2G501U +PERO6              =  0.300G1G501m + 0.350GGH502I + 0.350GGH502J                 : ARR( 0.168E-13, -1300., 0.0);
+{ 30130} G2G501U +PERO9              =  0.650G1G501m + 0.350GGH502J                                : ARR( 0.100E-10,     0., 0.0);
+{ 30131} G1G501l                     =       GD02000 +      GGD3000 +      GHO                     : ARR( 0.200E+15,  4573., 0.0);
+{ 30132} G1G501m                     =       GHN400O +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 30133} GGN500Y +GHO                =       G3N500M                                               : ARR( 0.204E-11,  -190., 0.0);
+{ 30134} GGN500Y+HV               =       G1G500Q +      GNO2                                   :  0.100E+01*SUN;
+{ 30135} GGN500Y+HV               =       G1G500N +      GNO2                                   :  0.100E+01*SUN;
+{ 30136} GGN500Y+HV               =       GND4000 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 30137} GGH500U +GHO                =       GGN500a +      GHO                                    : ARR( 0.254E-10,     0., 0.0);
+{ 30138} GGH500U +GHO                =       G2G500M                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 30139} GGH500U +GHO                =       G3H500N                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 30140} GGH500U+HV               =       G1G501n +      GNO2                                   :  0.100E+01*SUN;
+{ 30141} GGH500U+HV               =       G1G500N +      GHO                                    :  0.100E+01*SUN;
+{ 30142} GGH500U+HV               =       GND4000 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 30143} G1G501n                     =       GD02000 +      G2G3008                                : ARR( 0.200E+15,  6864., 0.0);
+{ 30144} G2G3008 +GNO                =       G1G3007 +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{ 30145} G2G3008 +GNO                =       GGH3003                                               : ARR( 0.622E-13,  -360., 0.0);
+{ 30146} G2G3008 +GHO2               =       GGH3008                                               : ARR( 0.179E-12, -1250., 0.0);
+{ 30147} G2G3008 +GNO3               =       G1G3007 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 30148} G2G3008 +MEPERO             =  0.480G1G3007 + 0.260GGH3002 + 0.260GGH3007                 : ARR( 0.164E-12,  -795., 0.0);
+{ 30149} G2G3008 +PERO1              =  0.600G1G3007 + 0.200GGH3002 + 0.200GGH3007                 : ARR( 0.126E-12,  -850., 0.0);
+{ 30150} G2G3008 +PERO2              =  0.560G1G3007 + 0.220GGH3002 + 0.220GGH3007                 : ARR( 0.471E-13, -1350., 0.0);
+{ 30151} G2G3008 +PERO3              =  0.600G1G3007 + 0.200GGH3002 + 0.200GGH3007                 : ARR( 0.142E-12, -1200., 0.0);
+{ 30152} G2G3008 +PERO5              =  0.600G1G3007 + 0.200GGH3002 + 0.200GGH3007                 : ARR( 0.533E-11,   500., 0.0);
+{ 30153} G2G3008 +PERO6              =  0.460G1G3007 + 0.270GGH3002 + 0.270GGH3007                 : ARR( 0.488E-13, -1250., 0.0);
+{ 30154} G2G3008 +PERO9              =  0.800G1G3007 + 0.200GGH3007                                : ARR( 0.100E-10,     0., 0.0);
+{ 30155} GGN500Z +GHO                =       GGN500a +      GHO2                                   : ARR( 0.663E-11,     0., 0.0);
+{ 30156} GGN500Z +GHO                =       G3N500X                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 30157} GGN500Z+HV               =       G1G500S +      GNO2                                   :  0.100E+01*SUN;
+{ 30158} GGN500Z+HV               =       GND4000 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 30159} GGN500a +GHO                =       GGK500J +      GNO2                                   : ARR( 0.320E-12,     0., 0.0);
+{ 30160} GGN500a +GHO                =       G3N501K                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 30161} GGN500a+HV               =       G1G500U +      GNO2                                   :  0.100E+01*SUN;
+{ 30162} GGN500a+HV               =       GAN4002 +      GCO2                                   :  0.100E+01*SUN;
+{ 30163} G3N501K +GHO2               =  0.800GGN500a + 0.200GAN500i + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 30164} G3N501K +GNO                =       G3N4002 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 30165} G3N501K +GNO2               =       GPN500k                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 30166} G3N501K +GNO3               =       G3N4002 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 30167} G3N501K +MEPERO             =  0.685G3N4002 + 0.315GAN500i + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 30168} G3N501K +PERO1              =  0.800G3N4002 + 0.200GAN500i + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 30169} G3N501K +PERO2              =  0.750G3N4002 + 0.250GAN500i + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 30170} G3N501K +PERO3              =  0.800G3N4002 + 0.200GAN500i + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 30171} G3N501K +PERO5              =  0.650G3N4002 + 0.350GAN500i + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 30172} G3N501K +PERO6              =  0.650G3N4002 + 0.350GAN500i + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 30173} G3N501K +PERO9              =       G3N4002 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 30174} GGH500W +GHO                =       GGK500D +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 30175} GGH500W +GHO                =       G2G501W                                               : ARR( 0.274E-11,     0., 0.0);
+{ 30176} GGH500W +GHO                =       G2G500N                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 30177} GGH500W +GHO                =       G3H500R                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 30178} GGH500W+HV               =       G3K2000 +      GGD3000 +      GHO                     :  0.100E+01*SUN;
+{ 30179} GGH500W+HV               =       G1G500O +      GHO                                    :  0.100E+01*SUN;
+{ 30180} GGH500W+HV               =       G2H400Z +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 30181} G2G501W +GNO                =       G1G501o +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 30182} G2G501W +GNO                =       GGH502K                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 30183} G2G501W +GHO2               =       GGH502L                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 30184} G2G501W +GNO3               =       G1G501o +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 30185} G2G501W +MEPERO             =  0.340G1G501o + 0.330GGH502M + 0.330GGH502N                 : ARR( 0.565E-13,  -845., 0.0);
+{ 30186} G2G501W +PERO1              =  0.460G1G501o + 0.270GGH502M + 0.270GGH502N                 : ARR( 0.434E-13,  -900., 0.0);
+{ 30187} G2G501W +PERO2              =  0.400G1G501o + 0.300GGH502M + 0.300GGH502N                 : ARR( 0.162E-13, -1400., 0.0);
+{ 30188} G2G501W +PERO3              =  0.460G1G501o + 0.270GGH502M + 0.270GGH502N                 : ARR( 0.488E-13, -1250., 0.0);
+{ 30189} G2G501W +PERO5              =  0.460G1G501o + 0.270GGH502M + 0.270GGH502N                 : ARR( 0.183E-11,   450., 0.0);
+{ 30190} G2G501W +PERO6              =  0.300G1G501o + 0.350GGH502M + 0.350GGH502N                 : ARR( 0.168E-13, -1300., 0.0);
+{ 30191} G2G501W +PERO9              =  0.650G1G501o + 0.350GGH502N                                : ARR( 0.100E-10,     0., 0.0);
+{ 30192} G1G501o                     =       GHD4007 +      GCO     +      GHO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 30193} GGN500b +GHO                =       GGK500J +      GNO2                                   : ARR( 0.244E-12,     0., 0.0);
+{ 30194} GGN500b +GHO                =       G3N500N                                               : ARR( 0.204E-11,  -190., 0.0);
+{ 30195} GGN500b+HV               =       G3K2000 +      G2G3003                                :  0.100E+01*SUN;
+{ 30196} GGN500b+HV               =       G1G500P +      GNO2                                   :  0.100E+01*SUN;
+{ 30197} GGN500b+HV               =       GDK4000 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 30198} GGH500X +GHO                =       GGK500J +      GHO                                    : ARR( 0.878E-10,     0., 0.0);
+{ 30199} GGH500X+HV               =       G3K2000 +      G2G3008                                :  0.100E+01*SUN;
+{ 30200} GGH500X+HV               =       G1G500P +      GHO                                    :  0.100E+01*SUN;
+{ 30201} GGH500X+HV               =       GDK4000 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 30202} GGK500I +GHO                =       GGK500J +      GHO2                                   : ARR( 0.209E-10,     0., 0.0);
+{ 30203} GGK500I +GHO                =       G3K500H                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 30204} GGK500I+HV               =       G3K2000 +      G2G3004                                :  0.100E+01*SUN;
+{ 30205} GGK500I+HV               =       GDK4000 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 30206} GGK500J +GHO                =       G2G501X                                               : ARR( 0.538E-12,     0., 0.0);
+{ 30207} GGK500J +GHO                =       G3K500d                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 30208} GGK500J+HV               =       G3K2000 +      G2G3005                                :  0.100E+01*SUN;
+{ 30209} GGK500J+HV               =       GAK4000 +      GCO2                                   :  0.100E+01*SUN;
+{ 30210} G2G501X +GNO                =       G1G501p +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 30211} G2G501X +GNO                =       GGN501m                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 30212} G2G501X +GHO2               =       GGH502N                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 30213} G2G501X +GNO3               =       G1G501p +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 30214} G2G501X +MEPERO             =  0.340G1G501p + 0.330GGK500T + 0.330GGK500Z                 : ARR( 0.565E-13,  -845., 0.0);
+{ 30215} G2G501X +PERO1              =  0.460G1G501p + 0.270GGK500T + 0.270GGK500Z                 : ARR( 0.434E-13,  -900., 0.0);
+{ 30216} G2G501X +PERO2              =  0.400G1G501p + 0.300GGK500T + 0.300GGK500Z                 : ARR( 0.162E-13, -1400., 0.0);
+{ 30217} G2G501X +PERO3              =  0.460G1G501p + 0.270GGK500T + 0.270GGK500Z                 : ARR( 0.488E-13, -1250., 0.0);
+{ 30218} G2G501X +PERO5              =  0.460G1G501p + 0.270GGK500T + 0.270GGK500Z                 : ARR( 0.183E-11,   450., 0.0);
+{ 30219} G2G501X +PERO6              =  0.300G1G501p + 0.350GGK500T + 0.350GGK500Z                 : ARR( 0.168E-13, -1300., 0.0);
+{ 30220} G2G501X +PERO9              =  0.650G1G501p + 0.350GGK500Z                                : ARR( 0.100E-10,     0., 0.0);
+{ 30221} G3K500d +GHO2               =  0.800GGK500J + 0.200GAK500H + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 30222} G3K500d +GNO                =       G3K4003 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 30223} G3K500d +GNO2               =       GPK500J                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 30224} G3K500d +GNO3               =       G3K4003 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 30225} G3K500d +MEPERO             =  0.685G3K4003 + 0.315GAK500H + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 30226} G3K500d +PERO1              =  0.800G3K4003 + 0.200GAK500H + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 30227} G3K500d +PERO2              =  0.750G3K4003 + 0.250GAK500H + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 30228} G3K500d +PERO3              =  0.800G3K4003 + 0.200GAK500H + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 30229} G3K500d +PERO5              =  0.650G3K4003 + 0.350GAK500H + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 30230} G3K500d +PERO6              =  0.650G3K4003 + 0.350GAK500H + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 30231} G3K500d +PERO9              =       G3K4003 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 30232} G1G501p                     =       G3K2000 +      GGD3002                                : ARR( 0.200E+15,  4537., 0.0);
+{ 30233} G1G501p                     =       GDK3000 +      GCO     +      GHO2    +      GCO      : ARR( 0.200E+15,  4856., 0.0);
+{ 30234} GGH500Y +GHO                =       GGN500b +      GHO                                    : ARR( 0.339E-10,     0., 0.0);
+{ 30235} GGH500Y +GHO                =       G2G500P                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 30236} GGH500Y +GHO                =       G3H501O                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 30237} GGH500Y+HV               =       G1G500Q +      GHO                                    :  0.100E+01*SUN;
+{ 30238} GGH500Y+HV               =       G1G501q +      GNO2                                   :  0.100E+01*SUN;
+{ 30239} GGH500Y+HV               =       GHD4002 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 30240} G1G501q                     =       GHD4002 +      GCO     +      GHO2                    : ARR( 0.200E+15,  4949., 0.0);
+{ 30241} GGN500c +GHO                =       G2G501Y                                               : ARR( 0.242E-12,     0., 0.0);
+{ 30242} GGN500c +GHO                =       G3N500P                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 30243} GGN500c+HV               =       G1G500R +      GNO2                                   :  0.100E+01*SUN;
+{ 30244} GGN500c+HV               =       G1G501r +      GNO2                                   :  0.100E+01*SUN;
+{ 30245} GGN500c+HV               =       GND4005 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 30246} G2G501Y +GNO                =       G1G501s +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 30247} G2G501Y +GNO                =       GGN501n                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 30248} G2G501Y +GHO2               =       GGH502O                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 30249} G2G501Y +GNO3               =       G1G501s +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 30250} G2G501Y +MEPERO             =  0.340G1G501s + 0.330GGN500f + 0.330GGN501o                 : ARR( 0.565E-13,  -845., 0.0);
+{ 30251} G2G501Y +PERO1              =  0.460G1G501s + 0.270GGN500f + 0.270GGN501o                 : ARR( 0.434E-13,  -900., 0.0);
+{ 30252} G2G501Y +PERO2              =  0.400G1G501s + 0.300GGN500f + 0.300GGN501o                 : ARR( 0.162E-13, -1400., 0.0);
+{ 30253} G2G501Y +PERO3              =  0.460G1G501s + 0.270GGN500f + 0.270GGN501o                 : ARR( 0.488E-13, -1250., 0.0);
+{ 30254} G2G501Y +PERO5              =  0.460G1G501s + 0.270GGN500f + 0.270GGN501o                 : ARR( 0.183E-11,   450., 0.0);
+{ 30255} G2G501Y +PERO6              =  0.300G1G501s + 0.350GGN500f + 0.350GGN501o                 : ARR( 0.168E-13, -1300., 0.0);
+{ 30256} G2G501Y +PERO9              =  0.650G1G501s + 0.350GGN501o                                : ARR( 0.100E-10,     0., 0.0);
+{ 30257} G1G501r                     =       G2G501Z                                               : ARR( 0.240E+12,  4177., 0.0);
+{ 30258} G1G501r                     =       GND4005 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 30259} G1G501s                     =       GD02000 +      GGN3005 +      GNO2                    : ARR( 0.200E+15,  6112., 0.0);
+{ 30260} G2G501Z +GNO                =       G1G501t +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 30261} G2G501Z +GNO                =       GGN500h                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 30262} G2G501Z +GHO2               =       GGH501n                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 30263} G2G501Z +GNO3               =       G1G501t +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 30264} G2G501Z +MEPERO             =  0.480G1G501t + 0.260GGN500o + 0.260GGN500q                 : ARR( 0.146E-12,  -445., 0.0);
+{ 30265} G2G501Z +PERO1              =  0.600G1G501t + 0.200GGN500o + 0.200GGN500q                 : ARR( 0.112E-12,  -500., 0.0);
+{ 30266} G2G501Z +PERO2              =  0.560G1G501t + 0.220GGN500o + 0.220GGN500q                 : ARR( 0.418E-13, -1000., 0.0);
+{ 30267} G2G501Z +PERO3              =  0.600G1G501t + 0.200GGN500o + 0.200GGN500q                 : ARR( 0.126E-12,  -850., 0.0);
+{ 30268} G2G501Z +PERO5              =  0.600G1G501t + 0.200GGN500o + 0.200GGN500q                 : ARR( 0.473E-11,   850., 0.0);
+{ 30269} G2G501Z +PERO6              =  0.460G1G501t + 0.270GGN500o + 0.270GGN500q                 : ARR( 0.434E-13,  -900., 0.0);
+{ 30270} G2G501Z +PERO9              =  0.800G1G501t + 0.200GGN500q                                : ARR( 0.100E-10,     0., 0.0);
+{ 30271} G1G501t                     =       GGN500p +      GHO2                                   : ARR( 0.800E+11,  2965., 0.0);
+{ 30272} GGH500Z +GHO                =       G2G501a                                               : ARR( 0.117E-11,     0., 0.0);
+{ 30273} GGH500Z +GHO                =       GGN500W +      GHO                                    : ARR( 0.836E-11,     0., 0.0);
+{ 30274} GGH500Z +GHO                =       G2G500Q                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 30275} GGH500Z +GHO                =       G3H501g                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 30276} GGH500Z+HV               =       G1G500R +      GHO                                    :  0.100E+01*SUN;
+{ 30277} GGH500Z+HV               =       G1G501u +      GNO2                                   :  0.100E+01*SUN;
+{ 30278} GGH500Z+HV               =       GHD4005 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 30279} G2G501a +GNO                =       G1G501v +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 30280} G2G501a +GNO                =       GGH502G                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 30281} G2G501a +GHO2               =       GGH502P                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 30282} G2G501a +GNO3               =       G1G501v +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 30283} G2G501a +MEPERO             =  0.340G1G501v + 0.330GGH501F + 0.330GGH502K                 : ARR( 0.565E-13,  -845., 0.0);
+{ 30284} G2G501a +PERO1              =  0.460G1G501v + 0.270GGH501F + 0.270GGH502K                 : ARR( 0.434E-13,  -900., 0.0);
+{ 30285} G2G501a +PERO2              =  0.400G1G501v + 0.300GGH501F + 0.300GGH502K                 : ARR( 0.162E-13, -1400., 0.0);
+{ 30286} G2G501a +PERO3              =  0.460G1G501v + 0.270GGH501F + 0.270GGH502K                 : ARR( 0.488E-13, -1250., 0.0);
+{ 30287} G2G501a +PERO5              =  0.460G1G501v + 0.270GGH501F + 0.270GGH502K                 : ARR( 0.183E-11,   450., 0.0);
+{ 30288} G2G501a +PERO6              =  0.300G1G501v + 0.350GGH501F + 0.350GGH502K                 : ARR( 0.168E-13, -1300., 0.0);
+{ 30289} G2G501a +PERO9              =  0.650G1G501v + 0.350GGH502K                                : ARR( 0.100E-10,     0., 0.0);
+{ 30290} G1G501u                     =       G2G501b                                               : ARR( 0.240E+12,  4177., 0.0);
+{ 30291} G1G501u                     =       GHD4005 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 30292} G1G501v                     =       GD02000 +      GGN3005 +      GHO                     : ARR( 0.200E+15,  4573., 0.0);
+{ 30293} G2G501b +GNO                =       G1G501w +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 30294} G2G501b +GNO                =       GGH500z                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 30295} G2G501b +GHO2               =       GGH501o                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 30296} G2G501b +GNO3               =       G1G501w +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 30297} G2G501b +MEPERO             =  0.480G1G501w + 0.260GGH500q + 0.260GGH500s                 : ARR( 0.146E-12,  -445., 0.0);
+{ 30298} G2G501b +PERO1              =  0.600G1G501w + 0.200GGH500q + 0.200GGH500s                 : ARR( 0.112E-12,  -500., 0.0);
+{ 30299} G2G501b +PERO2              =  0.560G1G501w + 0.220GGH500q + 0.220GGH500s                 : ARR( 0.418E-13, -1000., 0.0);
+{ 30300} G2G501b +PERO3              =  0.600G1G501w + 0.200GGH500q + 0.200GGH500s                 : ARR( 0.126E-12,  -850., 0.0);
+{ 30301} G2G501b +PERO5              =  0.600G1G501w + 0.200GGH500q + 0.200GGH500s                 : ARR( 0.473E-11,   850., 0.0);
+{ 30302} G2G501b +PERO6              =  0.460G1G501w + 0.270GGH500q + 0.270GGH500s                 : ARR( 0.434E-13,  -900., 0.0);
+{ 30303} G2G501b +PERO9              =  0.800G1G501w + 0.200GGH500s                                : ARR( 0.100E-10,     0., 0.0);
+{ 30304} G1G501w                     =       GGH500r +      GHO2                                   : ARR( 0.800E+11,  2246., 0.0);
+{ 30305} GGN3005 +GHO                =       G3G3001                                               : ARR( 0.418E-11,     0., 0.0);
+{ 30306} GGN3005 +GHO                =       G3N3005                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 30307} GGN3005 +GNO3               =       G3G3001 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 30308} GGN3005+HV               =       GDD2000 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 30309} GGN3005+HV               =       G1G3009 +      GNO2                                   :  0.100E+01*SUN;
+{ 30310} GGN3005+HV               =       GGD2000 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 30311} G1G3009                     =       GCO     +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  7148., 0.0);
+{ 30312} G1G3009                     =       GGD2000 +      GCO     +      GHO2                    : ARR( 0.200E+15,  8078., 0.0);
+{ 30313} GGH3005 +GHO                =       GGN3005 +      GHO                                    : ARR( 0.324E-11,     0., 0.0);
+{ 30314} GGH3005 +GHO                =       G2G3003                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 30315} GGH3005 +GHO                =       G3H3005                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 30316} GGH3005+HV               =       G1G3003 +      GHO                                    :  0.100E+01*SUN;
+{ 30317} GGH3005+HV               =       G1G300A +      GNO2                                   :  0.100E+01*SUN;
+{ 30318} GGH3005+HV               =       GHD2000 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 30319} G1G300A                     =       GHD2000 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5263., 0.0);
+{ 30320} GGH500a +GHO                =       GGK500I +      GHO                                    : ARR( 0.347E-10,     0., 0.0);
+{ 30321} GGH500a +GHO                =       GGH500c +      GHO2                                   : ARR( 0.651E-11,     0., 0.0);
+{ 30322} GGH500a +GHO                =       G2G500R                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 30323} GGH500a +GHO                =       G3H500x                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 30324} GGH500a+HV               =       G1G500S +      GHO                                    :  0.100E+01*SUN;
+{ 30325} GGH500a+HV               =       GHD4002 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 30326} GGN500d +GHO                =       GGN500e +      GHO2                                   : ARR( 0.143E-11,     0., 0.0);
+{ 30327} GGN500d +GHO                =       G3N500S                                               : ARR( 0.216E-11,  -190., 0.0);
+{ 30328} GGN500d+HV               =       G1G500T +      GNO2                                   :  0.100E+01*SUN;
+{ 30329} GGN500d+HV               =       GND4005 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 30330} GGH500b +GHO                =       GGK500E +      GHO                                    : ARR( 0.423E-10,     0., 0.0);
+{ 30331} GGH500b +GHO                =       GGH500d +      GHO2                                   : ARR( 0.645E-11,     0., 0.0);
+{ 30332} GGH500b +GHO                =       G2G500S                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 30333} GGH500b +GHO                =       G3H501T                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 30334} GGH500b+HV               =       G1G500T +      GHO                                    :  0.100E+01*SUN;
+{ 30335} GGH500b+HV               =       GHD4005 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 30336} GGD3001 +GHO                =       GGD3002 +      GHO2                                   : ARR( 0.385E-11,     0., 0.0);
+{ 30337} GGD3001 +GHO                =       G3G3002                                               : ARR( 0.209E-10,     0., 0.0);
+{ 30338} GGD3001 +GHO                =       G3D3001                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 30339} GGD3001 +GNO3               =       G3G3002 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 30340} GGD3001+HV               =       GDD2000 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 30341} GGD3001+HV               =       GGD2000 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 30342} GGH500c +GHO                =       GGK500J +      GHO                                    : ARR( 0.114E-09,     0., 0.0);
+{ 30343} GGH500c+HV               =       G1G500U +      GHO                                    :  0.100E+01*SUN;
+{ 30344} GGH500c+HV               =       GAH4005 +      GCO2                                   :  0.100E+01*SUN;
+{ 30345} GGN500e +GHO                =       G2G501c                                               : ARR( 0.244E-12,     0., 0.0);
+{ 30346} GGN500e +GHO                =       G3N501I                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 30347} GGN500e+HV               =       G1G500W +      GNO2                                   :  0.100E+01*SUN;
+{ 30348} GGN500e+HV               =       GAN4004 +      GCO2                                   :  0.100E+01*SUN;
+{ 30349} G2G501c +GNO                =       G1G501x +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 30350} G2G501c +GNO                =       GGN501p                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 30351} G2G501c +GHO2               =       GGH502Q                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 30352} G2G501c +GNO3               =       G1G501x +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 30353} G2G501c +MEPERO             =  0.340G1G501x + 0.330GGN501q + 0.330GGN501m                 : ARR( 0.565E-13,  -845., 0.0);
+{ 30354} G2G501c +PERO1              =  0.460G1G501x + 0.270GGN501q + 0.270GGN501m                 : ARR( 0.434E-13,  -900., 0.0);
+{ 30355} G2G501c +PERO2              =  0.400G1G501x + 0.300GGN501q + 0.300GGN501m                 : ARR( 0.162E-13, -1400., 0.0);
+{ 30356} G2G501c +PERO3              =  0.460G1G501x + 0.270GGN501q + 0.270GGN501m                 : ARR( 0.488E-13, -1250., 0.0);
+{ 30357} G2G501c +PERO5              =  0.460G1G501x + 0.270GGN501q + 0.270GGN501m                 : ARR( 0.183E-11,   450., 0.0);
+{ 30358} G2G501c +PERO6              =  0.300G1G501x + 0.350GGN501q + 0.350GGN501m                 : ARR( 0.168E-13, -1300., 0.0);
+{ 30359} G2G501c +PERO9              =  0.650G1G501x + 0.350GGN501m                                : ARR( 0.100E-10,     0., 0.0);
+{ 30360} G1G501x                     =       GD02000 +      GGD3002 +      GNO2                    : ARR( 0.200E+15,  5840., 0.0);
+{ 30361} GGH500d +GHO                =       G2G501d                                               : ARR( 0.366E-11,     0., 0.0);
+{ 30362} GGH500d +GHO                =       GGK500F +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 30363} GGH500d +GHO                =       G2G500U                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 30364} GGH500d +GHO                =       G3H501i                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 30365} GGH500d+HV               =       G1G500W +      GHO                                    :  0.100E+01*SUN;
+{ 30366} GGH500d+HV               =       GAH4000 +      GCO2                                   :  0.100E+01*SUN;
+{ 30367} G2G501d +GNO                =       G1G501y +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 30368} G2G501d +GNO                =       GGH502J                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 30369} G2G501d +GHO2               =       GGH502R                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 30370} G2G501d +GNO3               =       G1G501y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 30371} G2G501d +MEPERO             =  0.340G1G501y + 0.330GGH502S + 0.330GGH502N                 : ARR( 0.565E-13,  -845., 0.0);
+{ 30372} G2G501d +PERO1              =  0.460G1G501y + 0.270GGH502S + 0.270GGH502N                 : ARR( 0.434E-13,  -900., 0.0);
+{ 30373} G2G501d +PERO2              =  0.400G1G501y + 0.300GGH502S + 0.300GGH502N                 : ARR( 0.162E-13, -1400., 0.0);
+{ 30374} G2G501d +PERO3              =  0.460G1G501y + 0.270GGH502S + 0.270GGH502N                 : ARR( 0.488E-13, -1250., 0.0);
+{ 30375} G2G501d +PERO5              =  0.460G1G501y + 0.270GGH502S + 0.270GGH502N                 : ARR( 0.183E-11,   450., 0.0);
+{ 30376} G2G501d +PERO6              =  0.300G1G501y + 0.350GGH502S + 0.350GGH502N                 : ARR( 0.168E-13, -1300., 0.0);
+{ 30377} G2G501d +PERO9              =  0.650G1G501y + 0.350GGH502N                                : ARR( 0.100E-10,     0., 0.0);
+{ 30378} G3H501i +GHO2               =  0.800GGH500d + 0.200GAH500i + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 30379} G3H501i +GNO                =       G3H4000 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 30380} G3H501i +GNO2               =       GPH500i                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 30381} G3H501i +GNO3               =       G3H4000 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 30382} G3H501i +MEPERO             =  0.685G3H4000 + 0.315GAH500i + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 30383} G3H501i +PERO1              =  0.800G3H4000 + 0.200GAH500i + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 30384} G3H501i +PERO2              =  0.750G3H4000 + 0.250GAH500i + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 30385} G3H501i +PERO3              =  0.800G3H4000 + 0.200GAH500i + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 30386} G3H501i +PERO5              =  0.650G3H4000 + 0.350GAH500i + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 30387} G3H501i +PERO6              =  0.650G3H4000 + 0.350GAH500i + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 30388} G3H501i +PERO9              =       G3H4000 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 30389} G1G501y                     =       GD02000 +      GGD3002 +      GHO                     : ARR( 0.200E+15,  4301., 0.0);
+{ 30390} GGN3006 +GHO                =       G3N3006                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 30391} GGN3006+HV               =       G1G3005 +      GNO2                                   :  0.100E+01*SUN;
+{ 30392} GGN3006+HV               =       GAN2000 +      GCO2                                   :  0.100E+01*SUN;
+{ 30393} GGH3006 +GHO                =       GGD3002 +      GHO                                    : ARR( 0.981E-11,     0., 0.0);
+{ 30394} GGH3006 +GHO                =       G2G3005                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 30395} GGH3006 +GHO                =       G3H3008                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 30396} GGH3006+HV               =       G1G3005 +      GHO                                    :  0.100E+01*SUN;
+{ 30397} GGH3006+HV               =       GAH2000 +      GCO2                                   :  0.100E+01*SUN;
+{ 30398} G3H3008 +GHO2               =  0.800GGH3006 + 0.200GAH3006 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 30399} G3H3008 +GNO                =       G3H2000 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 30400} G3H3008 +GNO2               =       GPH3006                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 30401} G3H3008 +GNO3               =       G3H2000 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 30402} G3H3008 +MEPERO             =  0.685G3H2000 + 0.315GAH3006 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 30403} G3H3008 +PERO1              =  0.800G3H2000 + 0.200GAH3006 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 30404} G3H3008 +PERO2              =  0.750G3H2000 + 0.250GAH3006 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 30405} G3H3008 +PERO3              =  0.800G3H2000 + 0.200GAH3006 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 30406} G3H3008 +PERO5              =  0.650G3H2000 + 0.350GAH3006 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 30407} G3H3008 +PERO6              =  0.650G3H2000 + 0.350GAH3006 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 30408} G3H3008 +PERO9              =       G3H2000 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 30409} GGD3002 +GHO                =       GCO     +      GHO2    + 2.000GCO                     : ARR( 0.127E-10,     0., 0.0);
+{ 30410} GGD3002 +GHO                =       G3D3002                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 30411} GGD3002 +GNO3               =       GCO     +      GHNO3   +      GHO2    + 2.000GCO      : ARR( 0.240E-14,     0., 0.0);
+{ 30412} GGD3002+HV               =       GAD2000 +      GCO2                                   :  0.100E+01*SUN;
+{ 30413} GGD3002+HV               =  2.000GCO     + 2.000GHO2    +      GCO                     :  0.100E+01*SUN;
+{ 30414} GGD3002+HV               =       GGD2000 +      GCO                                    :  0.100E+01*SUN;
+{ 30415} GGD3002+HV               =       GGD2000 +      GCO                                    :  0.100E+01*SUN;
+{ 30416} G3D3002 +GHO2               =  0.800GGD3002 + 0.200GAD3002 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 30417} G3D3002 +GNO                =       G3D2000 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 30418} G3D3002 +GNO2               =       GPD3002                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 30419} G3D3002 +GNO3               =       G3D2000 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 30420} G3D3002 +MEPERO             =  0.685G3D2000 + 0.315GAD3002 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 30421} G3D3002 +PERO1              =  0.800G3D2000 + 0.200GAD3002 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 30422} G3D3002 +PERO2              =  0.750G3D2000 + 0.250GAD3002 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 30423} G3D3002 +PERO3              =  0.800G3D2000 + 0.200GAD3002 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 30424} G3D3002 +PERO5              =  0.650G3D2000 + 0.350GAD3002 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 30425} G3D3002 +PERO6              =  0.650G3D2000 + 0.350GAD3002 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 30426} G3D3002 +PERO9              =       G3D2000 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 30427} GAH500W +GHO                =       GAN500d +      GHO                                    : ARR( 0.914E-11,     0., 0.0);
+{ 30428} GAH500W +GHO                =       G2A500O                                               : ARR( 0.211E-11,  -190., 0.0);
+{ 30429} GAH500W+HV               =       G1A502A +      GNO2                                   :  0.100E+01*SUN;
+{ 30430} GAH500W+HV               =       G1A500P +      GHO                                    :  0.100E+01*SUN;
+{ 30431} G1A502A                     =       GD02000 +      GAD3000 +      GHO                     : ARR( 0.200E+15,  4573., 0.0);
+{ 30432} GAN500g +GHO                =       GAN500j +      GNO2                                   : ARR( 0.100E-12,     0., 0.0);
+{ 30433} GAN500g +GHO                =       G2A501r                                               : ARR( 0.591E-13,     0., 0.0);
+{ 30434} GAN500g +GHO                =       GAN500i +      GNO2                                   : ARR( 0.556E-13,     0., 0.0);
+{ 30435} GAN500g +GHO                =       GND4000 +      GNO2    +      GCO2                    : ARR( 0.544E-12,     0., 0.0);
+{ 30436} GAN500g+HV               =       G1A500U +      GNO2                                   :  0.100E+01*SUN;
+{ 30437} GAN500g+HV               =       G1A500Q +      GNO2                                   :  0.100E+01*SUN;
+{ 30438} G2A501r +GNO                =       G1A502B +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 30439} G2A501r +GNO                =       GAN501b                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 30440} G2A501r +GHO2               =       GAH502X                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 30441} G2A501r +GNO3               =       G1A502B +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 30442} G2A501r +MEPERO             =  0.340G1A502B + 0.330GAN501q + 0.330GAN501u                 : ARR( 0.565E-13,  -845., 0.0);
+{ 30443} G2A501r +PERO1              =  0.460G1A502B + 0.270GAN501q + 0.270GAN501u                 : ARR( 0.434E-13,  -900., 0.0);
+{ 30444} G2A501r +PERO2              =  0.400G1A502B + 0.300GAN501q + 0.300GAN501u                 : ARR( 0.162E-13, -1400., 0.0);
+{ 30445} G2A501r +PERO3              =  0.460G1A502B + 0.270GAN501q + 0.270GAN501u                 : ARR( 0.488E-13, -1250., 0.0);
+{ 30446} G2A501r +PERO5              =  0.460G1A502B + 0.270GAN501q + 0.270GAN501u                 : ARR( 0.183E-11,   450., 0.0);
+{ 30447} G2A501r +PERO6              =  0.300G1A502B + 0.350GAN501q + 0.350GAN501u                 : ARR( 0.168E-13, -1300., 0.0);
+{ 30448} G2A501r +PERO9              =  0.650G1A502B + 0.350GAN501u                                : ARR( 0.100E-10,     0., 0.0);
+{ 30449} G1A502B                     =       GD02000 +      GAN3006 +      GNO2                    : ARR( 0.200E+15,  5880., 0.0);
+{ 30450} G1A502B                     =       GND3001 +      GAD2000 +      GNO2                    : ARR( 0.200E+15,  6677., 0.0);
+{ 30451} GAH500X +GHO                =       GAN500i +      GHO                                    : ARR( 0.194E-10,     0., 0.0);
+{ 30452} GAH500X +GHO                =       G2A500P                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 30453} GAH500X+HV               =       G1A502C +      GNO2                                   :  0.100E+01*SUN;
+{ 30454} GAH500X+HV               =       G1A500Q +      GHO                                    :  0.100E+01*SUN;
+{ 30455} G1A502C                     =       GD02000 +      G2A300A                                : ARR( 0.200E+15,  6864., 0.0);
+{ 30456} G2A300A +GNO                =       G1A3007 +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{ 30457} G2A300A +GNO                =       GAH3003                                               : ARR( 0.622E-13,  -360., 0.0);
+{ 30458} G2A300A +GHO2               =       GAH3008                                               : ARR( 0.179E-12, -1250., 0.0);
+{ 30459} G2A300A +GNO3               =       G1A3007 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 30460} G2A300A +MEPERO             =  0.480G1A3007 + 0.260GAH3002 + 0.260GAH3007                 : ARR( 0.164E-12,  -795., 0.0);
+{ 30461} G2A300A +PERO1              =  0.600G1A3007 + 0.200GAH3002 + 0.200GAH3007                 : ARR( 0.126E-12,  -850., 0.0);
+{ 30462} G2A300A +PERO2              =  0.560G1A3007 + 0.220GAH3002 + 0.220GAH3007                 : ARR( 0.471E-13, -1350., 0.0);
+{ 30463} G2A300A +PERO3              =  0.600G1A3007 + 0.200GAH3002 + 0.200GAH3007                 : ARR( 0.142E-12, -1200., 0.0);
+{ 30464} G2A300A +PERO5              =  0.600G1A3007 + 0.200GAH3002 + 0.200GAH3007                 : ARR( 0.533E-11,   500., 0.0);
+{ 30465} G2A300A +PERO6              =  0.460G1A3007 + 0.270GAH3002 + 0.270GAH3007                 : ARR( 0.488E-13, -1250., 0.0);
+{ 30466} G2A300A +PERO9              =  0.800G1A3007 + 0.200GAH3007                                : ARR( 0.100E-10,     0., 0.0);
+{ 30467} GAN500h +GHO                =       GAN500i +      GHO2                                   : ARR( 0.515E-11,     0., 0.0);
+{ 30468} GAN500h +GHO                =       GND4000 +      GHO2    +      GCO2                    : ARR( 0.576E-12,     0., 0.0);
+{ 30469} GAN500h+HV               =       G1A500Y +      GNO2                                   :  0.100E+01*SUN;
+{ 30470} GAN500i +GHO                =       GAK500H +      GNO2                                   : ARR( 0.314E-12,     0., 0.0);
+{ 30471} GAN500i +GHO                =       G2A501s                                               : ARR( 0.178E-12,     0., 0.0);
+{ 30472} GAN500i +GHO                =       G3N4002 +      GCO2                                   : ARR( 0.538E-12,     0., 0.0);
+{ 30473} GAN500i+HV               =       G1A500a +      GNO2                                   :  0.100E+01*SUN;
+{ 30474} GAN500i+HV               =       GND4000 +      GCO2                                   :  0.100E+01*SUN;
+{ 30475} G2A501s +GNO                =       G1A502D +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 30476} G2A501s +GNO                =       GAN501d                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 30477} G2A501s +GHO2               =       GAH502Y                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 30478} G2A501s +GNO3               =       G1A502D +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 30479} G2A501s +MEPERO             =  0.340G1A502D + 0.330GAN501s + 0.330GAN501w                 : ARR( 0.565E-13,  -845., 0.0);
+{ 30480} G2A501s +PERO1              =  0.460G1A502D + 0.270GAN501s + 0.270GAN501w                 : ARR( 0.434E-13,  -900., 0.0);
+{ 30481} G2A501s +PERO2              =  0.400G1A502D + 0.300GAN501s + 0.300GAN501w                 : ARR( 0.162E-13, -1400., 0.0);
+{ 30482} G2A501s +PERO3              =  0.460G1A502D + 0.270GAN501s + 0.270GAN501w                 : ARR( 0.488E-13, -1250., 0.0);
+{ 30483} G2A501s +PERO5              =  0.460G1A502D + 0.270GAN501s + 0.270GAN501w                 : ARR( 0.183E-11,   450., 0.0);
+{ 30484} G2A501s +PERO6              =  0.300G1A502D + 0.350GAN501s + 0.350GAN501w                 : ARR( 0.168E-13, -1300., 0.0);
+{ 30485} G2A501s +PERO9              =  0.650G1A502D + 0.350GAN501w                                : ARR( 0.100E-10,     0., 0.0);
+{ 30486} G1A502D                     =       GND3001 +      GCO     +      GHO     +      GCO      : ARR( 0.200E+15,  3266., 0.0);
+{ 30487} GAH500Y +GHO                =       GAK500B +      GHO                                    : ARR( 0.256E-10,     0., 0.0);
+{ 30488} GAH500Y +GHO                =       G2A501t                                               : ARR( 0.206E-11,     0., 0.0);
+{ 30489} GAH500Y +GHO                =       G2A500Q                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 30490} GAH500Y+HV               =       G3K2000 +      GAD3000 +      GHO                     :  0.100E+01*SUN;
+{ 30491} GAH500Y+HV               =       G1A500R +      GHO                                    :  0.100E+01*SUN;
+{ 30492} G2A501t +GNO                =       G1A502E +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 30493} G2A501t +GNO                =       GAH502Z                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 30494} G2A501t +GHO2               =       GAH502a                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 30495} G2A501t +GNO3               =       G1A502E +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 30496} G2A501t +MEPERO             =  0.340G1A502E + 0.330GAH502b + 0.330GAH502c                 : ARR( 0.565E-13,  -845., 0.0);
+{ 30497} G2A501t +PERO1              =  0.460G1A502E + 0.270GAH502b + 0.270GAH502c                 : ARR( 0.434E-13,  -900., 0.0);
+{ 30498} G2A501t +PERO2              =  0.400G1A502E + 0.300GAH502b + 0.300GAH502c                 : ARR( 0.162E-13, -1400., 0.0);
+{ 30499} G2A501t +PERO3              =  0.460G1A502E + 0.270GAH502b + 0.270GAH502c                 : ARR( 0.488E-13, -1250., 0.0);
+{ 30500} G2A501t +PERO5              =  0.460G1A502E + 0.270GAH502b + 0.270GAH502c                 : ARR( 0.183E-11,   450., 0.0);
+{ 30501} G2A501t +PERO6              =  0.300G1A502E + 0.350GAH502b + 0.350GAH502c                 : ARR( 0.168E-13, -1300., 0.0);
+{ 30502} G2A501t +PERO9              =  0.650G1A502E + 0.350GAH502c                                : ARR( 0.100E-10,     0., 0.0);
+{ 30503} G1A502E                     =       GHD4007 +      GCO     +      GHO                     : ARR( 0.200E+15,  4342., 0.0);
+{ 30504} GAN500j +GHO                =       G2A501u                                               : ARR( 0.102E-12,     0., 0.0);
+{ 30505} GAN500j +GHO                =       G2A501v                                               : ARR( 0.172E-12,     0., 0.0);
+{ 30506} GAN500j +GHO                =       GAK500H +      GNO2                                   : ARR( 0.168E-12,     0., 0.0);
+{ 30507} GAN500j +GHO                =       GDK4000 +      GNO2    +      GCO2                    : ARR( 0.520E-12,     0., 0.0);
+{ 30508} GAN500j+HV               =       G3K2000 +      G2A3004                                :  0.100E+01*SUN;
+{ 30509} GAN500j+HV               =       G1A500S +      GNO2                                   :  0.100E+01*SUN;
+{ 30510} G2A501u +GNO                =       G1A502F +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 30511} G2A501u +GNO                =       GAN5016                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 30512} G2A501u +GHO2               =       GAH5023                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 30513} G2A501u +GNO3               =       G1A502F +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 30514} G2A501u +MEPERO             =  0.480G1A502F + 0.260GAN501H + 0.260GAN5024                 : ARR( 0.164E-12,  -795., 0.0);
+{ 30515} G2A501u +PERO1              =  0.600G1A502F + 0.200GAN501H + 0.200GAN5024                 : ARR( 0.126E-12,  -850., 0.0);
+{ 30516} G2A501u +PERO2              =  0.560G1A502F + 0.220GAN501H + 0.220GAN5024                 : ARR( 0.471E-13, -1350., 0.0);
+{ 30517} G2A501u +PERO3              =  0.600G1A502F + 0.200GAN501H + 0.200GAN5024                 : ARR( 0.142E-12, -1200., 0.0);
+{ 30518} G2A501u +PERO5              =  0.600G1A502F + 0.200GAN501H + 0.200GAN5024                 : ARR( 0.533E-11,   500., 0.0);
+{ 30519} G2A501u +PERO6              =  0.460G1A502F + 0.270GAN501H + 0.270GAN5024                 : ARR( 0.488E-13, -1250., 0.0);
+{ 30520} G2A501u +PERO9              =  0.800G1A502F + 0.200GAN5024                                : ARR( 0.100E-10,     0., 0.0);
+{ 30521} G2A501v +GNO                =       G1A502G +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 30522} G2A501v +GNO                =       GAN501f                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 30523} G2A501v +GHO2               =       GAH502Z                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 30524} G2A501v +GNO3               =       G1A502G +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 30525} G2A501v +MEPERO             =  0.340G1A502G + 0.330GAN501t + 0.330GAN501x                 : ARR( 0.565E-13,  -845., 0.0);
+{ 30526} G2A501v +PERO1              =  0.460G1A502G + 0.270GAN501t + 0.270GAN501x                 : ARR( 0.434E-13,  -900., 0.0);
+{ 30527} G2A501v +PERO2              =  0.400G1A502G + 0.300GAN501t + 0.300GAN501x                 : ARR( 0.162E-13, -1400., 0.0);
+{ 30528} G2A501v +PERO3              =  0.460G1A502G + 0.270GAN501t + 0.270GAN501x                 : ARR( 0.488E-13, -1250., 0.0);
+{ 30529} G2A501v +PERO5              =  0.460G1A502G + 0.270GAN501t + 0.270GAN501x                 : ARR( 0.183E-11,   450., 0.0);
+{ 30530} G2A501v +PERO6              =  0.300G1A502G + 0.350GAN501t + 0.350GAN501x                 : ARR( 0.168E-13, -1300., 0.0);
+{ 30531} G2A501v +PERO9              =  0.650G1A502G + 0.350GAN501x                                : ARR( 0.100E-10,     0., 0.0);
+{ 30532} G1A502F                     =       G3A4002 +      GCH2O                                  : ARR( 0.200E+15,  3576., 0.0);
+{ 30533} G1A502G                     =       G3K2000 +      GAN3006                                : ARR( 0.200E+15,  2093., 0.0);
+{ 30534} G3A4002 +GHO2               =  0.800GAG4002 + 0.200GAA4001 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 30535} G3A4002 +GNO                =       G2A3004 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 30536} G3A4002 +GNO2               =       GPA4002                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 30537} G3A4002 +GNO3               =       G2A3004 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 30538} G3A4002 +MEPERO             =  0.685G2A3004 + 0.315GAA4001 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 30539} G3A4002 +PERO1              =  0.800G2A3004 + 0.200GAA4001 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 30540} G3A4002 +PERO2              =  0.750G2A3004 + 0.250GAA4001 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 30541} G3A4002 +PERO3              =  0.800G2A3004 + 0.200GAA4001 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 30542} G3A4002 +PERO5              =  0.650G2A3004 + 0.350GAA4001 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 30543} G3A4002 +PERO6              =  0.650G2A3004 + 0.350GAA4001 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 30544} G3A4002 +PERO9              =       G2A3004 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 30545} GAH500Z +GHO                =       GAK500H +      GHO                                    : ARR( 0.604E-10,     0., 0.0);
+{ 30546} GAH500Z +GHO                =       G2A500R                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 30547} GAH500Z+HV               =       G3K2000 +      G2A300A                                :  0.100E+01*SUN;
+{ 30548} GAH500Z+HV               =       G1A500S +      GHO                                    :  0.100E+01*SUN;
+{ 30549} GAK500G +GHO                =       G2A501w                                               : ARR( 0.904E-12,     0., 0.0);
+{ 30550} GAK500G +GHO                =       GAK500H +      GHO2                                   : ARR( 0.155E-10,     0., 0.0);
+{ 30551} GAK500G+HV               =       G3K2000 +      G2A3005                                :  0.100E+01*SUN;
+{ 30552} G2A501w +GNO                =       G1A502H +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 30553} G2A501w +GNO                =       GAN501g                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 30554} G2A501w +GHO2               =       GAH502b                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 30555} G2A501w +GNO3               =       G1A502H +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 30556} G2A501w +MEPERO             =  0.340G1A502H + 0.330GAK500R + 0.330GAK500T                 : ARR( 0.565E-13,  -845., 0.0);
+{ 30557} G2A501w +PERO1              =  0.460G1A502H + 0.270GAK500R + 0.270GAK500T                 : ARR( 0.434E-13,  -900., 0.0);
+{ 30558} G2A501w +PERO2              =  0.400G1A502H + 0.300GAK500R + 0.300GAK500T                 : ARR( 0.162E-13, -1400., 0.0);
+{ 30559} G2A501w +PERO3              =  0.460G1A502H + 0.270GAK500R + 0.270GAK500T                 : ARR( 0.488E-13, -1250., 0.0);
+{ 30560} G2A501w +PERO5              =  0.460G1A502H + 0.270GAK500R + 0.270GAK500T                 : ARR( 0.183E-11,   450., 0.0);
+{ 30561} G2A501w +PERO6              =  0.300G1A502H + 0.350GAK500R + 0.350GAK500T                 : ARR( 0.168E-13, -1300., 0.0);
+{ 30562} G2A501w +PERO9              =  0.650G1A502H + 0.350GAK500T                                : ARR( 0.100E-10,     0., 0.0);
+{ 30563} G1A502H                     =       G3K2000 +      GAD3001                                : ARR( 0.200E+15,  2093., 0.0);
+{ 30564} GAK500H +GHO                =       G2A501x                                               : ARR( 0.102E-12,     0., 0.0);
+{ 30565} GAK500H +GHO                =       G2A501y                                               : ARR( 0.525E-12,     0., 0.0);
+{ 30566} GAK500H +GHO                =       G3K4003 +      GCO2                                   : ARR( 0.520E-12,     0., 0.0);
+{ 30567} GAK500H+HV               =       G3K2000 +      G2A3006                                :  0.100E+01*SUN;
+{ 30568} GAK500H+HV               =       GDK4000 +      GCO2                                   :  0.100E+01*SUN;
+{ 30569} G2A501x +GNO                =       G1A502I +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 30570} G2A501x +GNO                =       GAN5018                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 30571} G2A501x +GHO2               =       GAH5025                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 30572} G2A501x +GNO3               =       G1A502I +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 30573} G2A501x +MEPERO             =  0.480G1A502I + 0.260GAK500O + 0.260GAD500I                 : ARR( 0.164E-12,  -795., 0.0);
+{ 30574} G2A501x +PERO1              =  0.600G1A502I + 0.200GAK500O + 0.200GAD500I                 : ARR( 0.126E-12,  -850., 0.0);
+{ 30575} G2A501x +PERO2              =  0.560G1A502I + 0.220GAK500O + 0.220GAD500I                 : ARR( 0.471E-13, -1350., 0.0);
+{ 30576} G2A501x +PERO3              =  0.600G1A502I + 0.200GAK500O + 0.200GAD500I                 : ARR( 0.142E-12, -1200., 0.0);
+{ 30577} G2A501x +PERO5              =  0.600G1A502I + 0.200GAK500O + 0.200GAD500I                 : ARR( 0.533E-11,   500., 0.0);
+{ 30578} G2A501x +PERO6              =  0.460G1A502I + 0.270GAK500O + 0.270GAD500I                 : ARR( 0.488E-13, -1250., 0.0);
+{ 30579} G2A501x +PERO9              =  0.800G1A502I + 0.200GAD500I                                : ARR( 0.100E-10,     0., 0.0);
+{ 30580} G2A501y +GNO                =       G1A502J +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 30581} G2A501y +GNO                =       GAN501h                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 30582} G2A501y +GHO2               =       GAH502c                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 30583} G2A501y +GNO3               =       G1A502J +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 30584} G2A501y +MEPERO             =  0.340G1A502J + 0.330GAK500S + 0.330GAK500U                 : ARR( 0.565E-13,  -845., 0.0);
+{ 30585} G2A501y +PERO1              =  0.460G1A502J + 0.270GAK500S + 0.270GAK500U                 : ARR( 0.434E-13,  -900., 0.0);
+{ 30586} G2A501y +PERO2              =  0.400G1A502J + 0.300GAK500S + 0.300GAK500U                 : ARR( 0.162E-13, -1400., 0.0);
+{ 30587} G2A501y +PERO3              =  0.460G1A502J + 0.270GAK500S + 0.270GAK500U                 : ARR( 0.488E-13, -1250., 0.0);
+{ 30588} G2A501y +PERO5              =  0.460G1A502J + 0.270GAK500S + 0.270GAK500U                 : ARR( 0.183E-11,   450., 0.0);
+{ 30589} G2A501y +PERO6              =  0.300G1A502J + 0.350GAK500S + 0.350GAK500U                 : ARR( 0.168E-13, -1300., 0.0);
+{ 30590} G2A501y +PERO9              =  0.650G1A502J + 0.350GAK500U                                : ARR( 0.100E-10,     0., 0.0);
+{ 30591} G1A502I                     =       G3A4003 +      GCH2O                                  : ARR( 0.200E+15,  3552., 0.0);
+{ 30592} G1A502J                     =       G3K2000 +      GAD3002                                : ARR( 0.200E+15,  4537., 0.0);
+{ 30593} G1A502J                     =       GDK3000 +      GCO     +      GHO     +      GCO      : ARR( 0.200E+15,  4856., 0.0);
+{ 30594} G3A4003 +GHO2               =  0.800GAG4003 + 0.200GAA4002 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 30595} G3A4003 +GNO                =       G2A3006 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 30596} G3A4003 +GNO2               =       GPA4003                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 30597} G3A4003 +GNO3               =       G2A3006 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 30598} G3A4003 +MEPERO             =  0.685G2A3006 + 0.315GAA4002 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 30599} G3A4003 +PERO1              =  0.800G2A3006 + 0.200GAA4002 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 30600} G3A4003 +PERO2              =  0.750G2A3006 + 0.250GAA4002 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 30601} G3A4003 +PERO3              =  0.800G2A3006 + 0.200GAA4002 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 30602} G3A4003 +PERO5              =  0.650G2A3006 + 0.350GAA4002 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 30603} G3A4003 +PERO6              =  0.650G2A3006 + 0.350GAA4002 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 30604} G3A4003 +PERO9              =       G2A3006 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 30605} GAH500a +GHO                =       G2A501z                                               : ARR( 0.147E-11,     0., 0.0);
+{ 30606} GAH500a +GHO                =       GAN500k +      GHO                                    : ARR( 0.167E-10,     0., 0.0);
+{ 30607} GAH500a +GHO                =       G2A500S                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 30608} GAH500a+HV               =       G1A502K +      GNO2                                   :  0.100E+01*SUN;
+{ 30609} GAH500a+HV               =       G1A500T +      GHO                                    :  0.100E+01*SUN;
+{ 30610} G2A501z +GNO                =       G1A502L +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 30611} G2A501z +GNO                =       GAH502d                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 30612} G2A501z +GHO2               =       GAH502e                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 30613} G2A501z +GNO3               =       G1A502L +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 30614} G2A501z +MEPERO             =  0.340G1A502L + 0.330GAH500j + 0.330GAH5023                 : ARR( 0.565E-13,  -845., 0.0);
+{ 30615} G2A501z +PERO1              =  0.460G1A502L + 0.270GAH500j + 0.270GAH5023                 : ARR( 0.434E-13,  -900., 0.0);
+{ 30616} G2A501z +PERO2              =  0.400G1A502L + 0.300GAH500j + 0.300GAH5023                 : ARR( 0.162E-13, -1400., 0.0);
+{ 30617} G2A501z +PERO3              =  0.460G1A502L + 0.270GAH500j + 0.270GAH5023                 : ARR( 0.488E-13, -1250., 0.0);
+{ 30618} G2A501z +PERO5              =  0.460G1A502L + 0.270GAH500j + 0.270GAH5023                 : ARR( 0.183E-11,   450., 0.0);
+{ 30619} G2A501z +PERO6              =  0.300G1A502L + 0.350GAH500j + 0.350GAH5023                 : ARR( 0.168E-13, -1300., 0.0);
+{ 30620} G2A501z +PERO9              =  0.650G1A502L + 0.350GAH5023                                : ARR( 0.100E-10,     0., 0.0);
+{ 30621} G1A502K                     =       GAD5001 +      GHO                                    : ARR( 0.160E+12,  2186., 0.0);
+{ 30622} G1A502K                     =       GCO     +      GHD4001 +      GHO                     : ARR( 0.200E+15,  4918., 0.0);
+{ 30623} G1A502L                     =       G2A3004 +      GHD2000                                : ARR( 0.200E+15,  7118., 0.0);
+{ 30624} G1A502L                     =       GAN400N +      GCH2O   +      GHO                     : ARR( 0.200E+15,  7140., 0.0);
+{ 30625} GAN500k +GHO                =       G3A5008                                               : ARR( 0.231E-10,     0., 0.0);
+{ 30626} GAN500k +GNO3               =       G3A5008 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 30627} GAN500k+HV               =       G1A502M +      GNO2                                   :  0.100E+01*SUN;
+{ 30628} GAN500k+HV               =       G2A400D +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 30629} GAN500k+HV               =       G2A3006 +      GD02000 +      GNO2                    :  0.100E+01*SUN;
+{ 30630} G3A5008 +GHO2               =  0.800GAG500A + 0.200GAA5007 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 30631} G3A5008 +GNO                =       G2A400D +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 30632} G3A5008 +GNO2               =       GPA500B                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 30633} G3A5008 +GNO3               =       G2A400D +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 30634} G3A5008 +MEPERO             =  0.685G2A400D + 0.315GAA5007 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 30635} G3A5008 +PERO1              =  0.800G2A400D + 0.200GAA5007 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 30636} G3A5008 +PERO2              =  0.750G2A400D + 0.250GAA5007 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 30637} G3A5008 +PERO3              =  0.800G2A400D + 0.200GAA5007 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 30638} G3A5008 +PERO5              =  0.650G2A400D + 0.350GAA5007 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 30639} G3A5008 +PERO6              =  0.650G2A400D + 0.350GAA5007 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 30640} G3A5008 +PERO9              =       G2A400D +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 30641} G1A502M                     =       GCO     +      GDD4000 +      GHO                     : ARR( 0.200E+15,  4918., 0.0);
+{ 30642} GAH500b +GHO                =       GAN500j +      GHO                                    : ARR( 0.344E-10,     0., 0.0);
+{ 30643} GAH500b +GHO                =       G2A500T                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 30644} GAH500b+HV               =       G1A500U +      GHO                                    :  0.100E+01*SUN;
+{ 30645} GAH500b+HV               =       G1A502N +      GNO2                                   :  0.100E+01*SUN;
+{ 30646} G1A502N                     =       GHD4002 +      GCO     +      GHO                     : ARR( 0.200E+15,  4918., 0.0);
+{ 30647} GAH500c +GHO                =       G2A5021                                               : ARR( 0.121E-11,     0., 0.0);
+{ 30648} GAH500c +GHO                =       GAN500e +      GHO                                    : ARR( 0.871E-11,     0., 0.0);
+{ 30649} GAH500c +GHO                =       G2A500U                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 30650} GAH500c+HV               =       G1A500W +      GHO                                    :  0.100E+01*SUN;
+{ 30651} GAH500c+HV               =       G1A502O +      GNO2                                   :  0.100E+01*SUN;
+{ 30652} G2A5021 +GNO                =       G1A502P +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 30653} G2A5021 +GNO                =       GAH502X                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 30654} G2A5021 +GHO2               =       GAH502f                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 30655} G2A5021 +GNO3               =       G1A502P +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 30656} G2A5021 +MEPERO             =  0.340G1A502P + 0.330GAH501T + 0.330GAH502Z                 : ARR( 0.565E-13,  -845., 0.0);
+{ 30657} G2A5021 +PERO1              =  0.460G1A502P + 0.270GAH501T + 0.270GAH502Z                 : ARR( 0.434E-13,  -900., 0.0);
+{ 30658} G2A5021 +PERO2              =  0.400G1A502P + 0.300GAH501T + 0.300GAH502Z                 : ARR( 0.162E-13, -1400., 0.0);
+{ 30659} G2A5021 +PERO3              =  0.460G1A502P + 0.270GAH501T + 0.270GAH502Z                 : ARR( 0.488E-13, -1250., 0.0);
+{ 30660} G2A5021 +PERO5              =  0.460G1A502P + 0.270GAH501T + 0.270GAH502Z                 : ARR( 0.183E-11,   450., 0.0);
+{ 30661} G2A5021 +PERO6              =  0.300G1A502P + 0.350GAH501T + 0.350GAH502Z                 : ARR( 0.168E-13, -1300., 0.0);
+{ 30662} G2A5021 +PERO9              =  0.650G1A502P + 0.350GAH502Z                                : ARR( 0.100E-10,     0., 0.0);
+{ 30663} G1A502O                     =       G2A5022                                               : ARR( 0.240E+12,  4177., 0.0);
+{ 30664} G1A502O                     =       GHD4005 +      GCO     +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 30665} G1A502P                     =       GD02000 +      GAN3006 +      GHO                     : ARR( 0.200E+15,  4573., 0.0);
+{ 30666} G2A5022 +GNO                =       G1A502Q +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 30667} G2A5022 +GNO                =       GAH5018                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 30668} G2A5022 +GHO2               =       GAH501t                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 30669} G2A5022 +GNO3               =       G1A502Q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 30670} G2A5022 +MEPERO             =  0.480G1A502Q + 0.260GAH500w + 0.260GAH500y                 : ARR( 0.146E-12,  -445., 0.0);
+{ 30671} G2A5022 +PERO1              =  0.600G1A502Q + 0.200GAH500w + 0.200GAH500y                 : ARR( 0.112E-12,  -500., 0.0);
+{ 30672} G2A5022 +PERO2              =  0.560G1A502Q + 0.220GAH500w + 0.220GAH500y                 : ARR( 0.418E-13, -1000., 0.0);
+{ 30673} G2A5022 +PERO3              =  0.600G1A502Q + 0.200GAH500w + 0.200GAH500y                 : ARR( 0.126E-12,  -850., 0.0);
+{ 30674} G2A5022 +PERO5              =  0.600G1A502Q + 0.200GAH500w + 0.200GAH500y                 : ARR( 0.473E-11,   850., 0.0);
+{ 30675} G2A5022 +PERO6              =  0.460G1A502Q + 0.270GAH500w + 0.270GAH500y                 : ARR( 0.434E-13,  -900., 0.0);
+{ 30676} G2A5022 +PERO9              =  0.800G1A502Q + 0.200GAH500y                                : ARR( 0.100E-10,     0., 0.0);
+{ 30677} G1A502Q                     =       GAH500x +      GHO2                                   : ARR( 0.800E+11,  2381., 0.0);
+{ 30678} GAN500l +GHO                =       G2A5023                                               : ARR( 0.126E-11,     0., 0.0);
+{ 30679} GAN500l +GHO                =       GAN500e +      GHO2                                   : ARR( 0.226E-11,     0., 0.0);
+{ 30680} GAN500l +GHO                =       GDO4004 +      GNO2    +      GCO2                    : ARR( 0.570E-12,     0., 0.0);
+{ 30681} GAN500l+HV               =       G1A502R +      GNO2                                   :  0.100E+01*SUN;
+{ 30682} G2A5023 +GNO                =       G1A502S +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 30683} G2A5023 +GNO                =       GAN501q                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 30684} G2A5023 +GHO2               =       GAH502g                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 30685} G2A5023 +GNO3               =       G1A502S +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 30686} G2A5023 +MEPERO             =  0.340G1A502S + 0.330GAN5025 + 0.330GAN501t                 : ARR( 0.565E-13,  -845., 0.0);
+{ 30687} G2A5023 +PERO1              =  0.460G1A502S + 0.270GAN5025 + 0.270GAN501t                 : ARR( 0.434E-13,  -900., 0.0);
+{ 30688} G2A5023 +PERO2              =  0.400G1A502S + 0.300GAN5025 + 0.300GAN501t                 : ARR( 0.162E-13, -1400., 0.0);
+{ 30689} G2A5023 +PERO3              =  0.460G1A502S + 0.270GAN5025 + 0.270GAN501t                 : ARR( 0.488E-13, -1250., 0.0);
+{ 30690} G2A5023 +PERO5              =  0.460G1A502S + 0.270GAN5025 + 0.270GAN501t                 : ARR( 0.183E-11,   450., 0.0);
+{ 30691} G2A5023 +PERO6              =  0.300G1A502S + 0.350GAN5025 + 0.350GAN501t                 : ARR( 0.168E-13, -1300., 0.0);
+{ 30692} G2A5023 +PERO9              =  0.650G1A502S + 0.350GAN501t                                : ARR( 0.100E-10,     0., 0.0);
+{ 30693} G1A502R                     =       G2A5024                                               : ARR( 0.240E+12,  4177., 0.0);
+{ 30694} G1A502R                     =       GD03000 +      GAD2000 +      GHO2                    : ARR( 0.200E+15,  5847., 0.0);
+{ 30695} G1A502R                     =       GDO4004 +      GCO     +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 30696} G1A502S                     =       GD02000 +      GAN3006 +      GHO2                    : ARR( 0.200E+15,  3365., 0.0);
+{ 30697} G2A5024 +GNO                =       G1A502T +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 30698} G2A5024 +GNO                =       GAN500x                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 30699} G2A5024 +GHO2               =       GAH501u                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 30700} G2A5024 +GNO3               =       G1A502T +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 30701} G2A5024 +MEPERO             =  0.480G1A502T + 0.260GAO500C + 0.260GAD5008                 : ARR( 0.146E-12,  -445., 0.0);
+{ 30702} G2A5024 +PERO1              =  0.600G1A502T + 0.200GAO500C + 0.200GAD5008                 : ARR( 0.112E-12,  -500., 0.0);
+{ 30703} G2A5024 +PERO2              =  0.560G1A502T + 0.220GAO500C + 0.220GAD5008                 : ARR( 0.418E-13, -1000., 0.0);
+{ 30704} G2A5024 +PERO3              =  0.600G1A502T + 0.200GAO500C + 0.200GAD5008                 : ARR( 0.126E-12,  -850., 0.0);
+{ 30705} G2A5024 +PERO5              =  0.600G1A502T + 0.200GAO500C + 0.200GAD5008                 : ARR( 0.473E-11,   850., 0.0);
+{ 30706} G2A5024 +PERO6              =  0.460G1A502T + 0.270GAO500C + 0.270GAD5008                 : ARR( 0.434E-13,  -900., 0.0);
+{ 30707} G2A5024 +PERO9              =  0.800G1A502T + 0.200GAD5008                                : ARR( 0.100E-10,     0., 0.0);
+{ 30708} G1A502T                     =       GAK500N +      GHO2                                   : ARR( 0.800E+11,  2381., 0.0);
+{ 30709} GAN3006 +GHO                =       G3A3001                                               : ARR( 0.418E-11,     0., 0.0);
+{ 30710} GAN3006 +GHO                =       GDD2000 +      GNO2    +      GCO2                    : ARR( 0.524E-12,     0., 0.0);
+{ 30711} GAN3006 +GNO3               =       G3A3001 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 30712} GAN3006+HV               =       G1A3008 +      GNO2                                   :  0.100E+01*SUN;
+{ 30713} GAN3006+HV               =       GAD2000 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 30714} GAH3005 +GHO                =       GAN3006 +      GHO                                    : ARR( 0.324E-11,     0., 0.0);
+{ 30715} GAH3005 +GHO                =       G2A3004                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 30716} GAH3005 +GHO                =       GHD2000 +      GNO2    +      GCO2                    : ARR( 0.524E-12,     0., 0.0);
+{ 30717} GAH3005+HV               =       G1A300B +      GNO2                                   :  0.100E+01*SUN;
+{ 30718} GAH3005+HV               =       G1A3004 +      GHO                                    :  0.100E+01*SUN;
+{ 30719} G1A300B                     =       GCO     +      GHD2000 +      GHO                     : ARR( 0.200E+15,  5232., 0.0);
+{ 30720} GAH500d +GHO                =       GAH500T +      GHO                                    : ARR( 0.423E-10,     0., 0.0);
+{ 30721} GAH500d +GHO                =       GAH500i +      GHO                                    : ARR( 0.191E-10,     0., 0.0);
+{ 30722} GAH500d +GHO                =       G2A500W                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 30723} GAH500d +GHO                =       G2A5025                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 30724} GAH500d+HV               =       G1A500X +      GHO                                    :  0.100E+01*SUN;
+{ 30725} GAH500d+HV               =       G1A502O +      GHO                                    :  0.100E+01*SUN;
+{ 30726} G2A5025 +GNO                =       G1A502O +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 30727} G2A5025 +GNO                =       GAH500c                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 30728} G2A5025 +GHO2               =       GAH500d                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 30729} G2A5025 +GNO3               =       G1A502O +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 30730} G2A5025 +MEPERO             =  0.340G1A502O + 0.330GAH500g + 0.330GAH500i                 : ARR( 0.565E-13,  -845., 0.0);
+{ 30731} G2A5025 +PERO1              =  0.460G1A502O + 0.270GAH500g + 0.270GAH500i                 : ARR( 0.434E-13,  -900., 0.0);
+{ 30732} G2A5025 +PERO2              =  0.400G1A502O + 0.300GAH500g + 0.300GAH500i                 : ARR( 0.162E-13, -1400., 0.0);
+{ 30733} G2A5025 +PERO3              =  0.460G1A502O + 0.270GAH500g + 0.270GAH500i                 : ARR( 0.488E-13, -1250., 0.0);
+{ 30734} G2A5025 +PERO5              =  0.460G1A502O + 0.270GAH500g + 0.270GAH500i                 : ARR( 0.183E-11,   450., 0.0);
+{ 30735} G2A5025 +PERO6              =  0.300G1A502O + 0.350GAH500g + 0.350GAH500i                 : ARR( 0.168E-13, -1300., 0.0);
+{ 30736} G2A5025 +PERO9              =  0.650G1A502O + 0.350GAH500i                                : ARR( 0.100E-10,     0., 0.0);
+{ 30737} GAH500e +GHO                =       GAH500T +      GHO2                                   : ARR( 0.109E-10,     0., 0.0);
+{ 30738} GAH500e +GHO                =       GAK500I +      GHO                                    : ARR( 0.197E-10,     0., 0.0);
+{ 30739} GAH500e +GHO                =       G2A5026                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 30740} GAH500e+HV               =       G1A502R +      GHO                                    :  0.100E+01*SUN;
+{ 30741} G2A5026 +GNO                =       G1A502R +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 30742} G2A5026 +GNO                =       GAN500l                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 30743} G2A5026 +GHO2               =       GAH500e                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 30744} G2A5026 +GNO3               =       G1A502R +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 30745} G2A5026 +MEPERO             =  0.340G1A502R + 0.330GAO5009 + 0.330GAK500I                 : ARR( 0.565E-13,  -845., 0.0);
+{ 30746} G2A5026 +PERO1              =  0.460G1A502R + 0.270GAO5009 + 0.270GAK500I                 : ARR( 0.434E-13,  -900., 0.0);
+{ 30747} G2A5026 +PERO2              =  0.400G1A502R + 0.300GAO5009 + 0.300GAK500I                 : ARR( 0.162E-13, -1400., 0.0);
+{ 30748} G2A5026 +PERO3              =  0.460G1A502R + 0.270GAO5009 + 0.270GAK500I                 : ARR( 0.488E-13, -1250., 0.0);
+{ 30749} G2A5026 +PERO5              =  0.460G1A502R + 0.270GAO5009 + 0.270GAK500I                 : ARR( 0.183E-11,   450., 0.0);
+{ 30750} G2A5026 +PERO6              =  0.300G1A502R + 0.350GAO5009 + 0.350GAK500I                 : ARR( 0.168E-13, -1300., 0.0);
+{ 30751} G2A5026 +PERO9              =  0.650G1A502R + 0.350GAK500I                                : ARR( 0.100E-10,     0., 0.0);
+{ 30752} GAH500f +GHO                =       GAK500G +      GHO                                    : ARR( 0.353E-10,     0., 0.0);
+{ 30753} GAH500f +GHO                =       GAH500h +      GHO2                                   : ARR( 0.490E-11,     0., 0.0);
+{ 30754} GAH500f +GHO                =       G2A500X                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 30755} GAH500f+HV               =       G1A500Y +      GHO                                    :  0.100E+01*SUN;
+{ 30756} GAH500g +GHO                =       GAK500C +      GHO                                    : ARR( 0.429E-10,     0., 0.0);
+{ 30757} GAH500g +GHO                =       GAH500i +      GHO2                                   : ARR( 0.483E-11,     0., 0.0);
+{ 30758} GAH500g +GHO                =       G2A500Y                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 30759} GAH500g+HV               =       G1A500Z +      GHO                                    :  0.100E+01*SUN;
+{ 30760} GAO5009 +GHO                =       G2A5027                                               : ARR( 0.122E-11,     0., 0.0);
+{ 30761} GAO5009 +GHO                =       GAK500C +      GHO2                                   : ARR( 0.109E-10,     0., 0.0);
+{ 30762} GAO5009 +GHO                =       GAK500I +      GHO2                                   : ARR( 0.493E-11,     0., 0.0);
+{ 30763} G2A5027 +GNO                =       G1A502U +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 30764} G2A5027 +GNO                =       GAN501r                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 30765} G2A5027 +GHO2               =       GAH502h                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 30766} G2A5027 +GNO3               =       G1A502U +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 30767} G2A5027 +MEPERO             =  0.340G1A502U + 0.330GAO500A + 0.330GAK500R                 : ARR( 0.565E-13,  -845., 0.0);
+{ 30768} G2A5027 +PERO1              =  0.460G1A502U + 0.270GAO500A + 0.270GAK500R                 : ARR( 0.434E-13,  -900., 0.0);
+{ 30769} G2A5027 +PERO2              =  0.400G1A502U + 0.300GAO500A + 0.300GAK500R                 : ARR( 0.162E-13, -1400., 0.0);
+{ 30770} G2A5027 +PERO3              =  0.460G1A502U + 0.270GAO500A + 0.270GAK500R                 : ARR( 0.488E-13, -1250., 0.0);
+{ 30771} G2A5027 +PERO5              =  0.460G1A502U + 0.270GAO500A + 0.270GAK500R                 : ARR( 0.183E-11,   450., 0.0);
+{ 30772} G2A5027 +PERO6              =  0.300G1A502U + 0.350GAO500A + 0.350GAK500R                 : ARR( 0.168E-13, -1300., 0.0);
+{ 30773} G2A5027 +PERO9              =  0.650G1A502U + 0.350GAK500R                                : ARR( 0.100E-10,     0., 0.0);
+{ 30774} G1A502U                     =       GD02000 +      GAD3001 +      GHO2                    : ARR( 0.200E+15,  3365., 0.0);
+{ 30775} GAD3001 +GHO                =       GAD3002 +      GHO2                                   : ARR( 0.291E-11,     0., 0.0);
+{ 30776} GAD3001 +GHO                =       G3A3002                                               : ARR( 0.214E-10,     0., 0.0);
+{ 30777} GAD3001 +GNO3               =       G3A3002 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 30778} GAD3001+HV               =       GAD2000 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 30779} GAH500h +GHO                =       GAK500H +      GHO                                    : ARR( 0.111E-09,     0., 0.0);
+{ 30780} GAH500h+HV               =       G1A500a +      GHO                                    :  0.100E+01*SUN;
+{ 30781} GAH500h+HV               =       GHD4002 +      GCO2                                   :  0.100E+01*SUN;
+{ 30782} GAH500i +GHO                =       G2A5028                                               : ARR( 0.372E-11,     0., 0.0);
+{ 30783} GAH500i +GHO                =       GAK500D +      GHO                                    : ARR( 0.257E-10,     0., 0.0);
+{ 30784} GAH500i +GHO                =       G2A500a                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 30785} GAH500i+HV               =       G1A500b +      GHO                                    :  0.100E+01*SUN;
+{ 30786} GAH500i+HV               =       GHD4005 +      GCO2                                   :  0.100E+01*SUN;
+{ 30787} G2A5028 +GNO                =       G1A502W +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 30788} G2A5028 +GNO                =       GAH502Y                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 30789} G2A5028 +GHO2               =       GAH502i                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 30790} G2A5028 +GNO3               =       G1A502W +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 30791} G2A5028 +MEPERO             =  0.340G1A502W + 0.330GAH502j + 0.330GAH502c                 : ARR( 0.565E-13,  -845., 0.0);
+{ 30792} G2A5028 +PERO1              =  0.460G1A502W + 0.270GAH502j + 0.270GAH502c                 : ARR( 0.434E-13,  -900., 0.0);
+{ 30793} G2A5028 +PERO2              =  0.400G1A502W + 0.300GAH502j + 0.300GAH502c                 : ARR( 0.162E-13, -1400., 0.0);
+{ 30794} G2A5028 +PERO3              =  0.460G1A502W + 0.270GAH502j + 0.270GAH502c                 : ARR( 0.488E-13, -1250., 0.0);
+{ 30795} G2A5028 +PERO5              =  0.460G1A502W + 0.270GAH502j + 0.270GAH502c                 : ARR( 0.183E-11,   450., 0.0);
+{ 30796} G2A5028 +PERO6              =  0.300G1A502W + 0.350GAH502j + 0.350GAH502c                 : ARR( 0.168E-13, -1300., 0.0);
+{ 30797} G2A5028 +PERO9              =  0.650G1A502W + 0.350GAH502c                                : ARR( 0.100E-10,     0., 0.0);
+{ 30798} G1A502W                     =       GD02000 +      GAD3002 +      GHO                     : ARR( 0.200E+15,  4301., 0.0);
+{ 30799} GAK500I +GHO                =       G2A5029                                               : ARR( 0.395E-11,     0., 0.0);
+{ 30800} GAK500I +GHO                =       GAK500D +      GHO2                                   : ARR( 0.681E-11,     0., 0.0);
+{ 30801} GAK500I+HV               =       GDO4004 +      GCO2                                   :  0.100E+01*SUN;
+{ 30802} G2A5029 +GNO                =       G1A502X +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 30803} G2A5029 +GNO                =       GAN501s                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 30804} G2A5029 +GHO2               =       GAH502k                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 30805} G2A5029 +GNO3               =       G1A502X +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 30806} G2A5029 +MEPERO             =  0.340G1A502X + 0.330GAK500Y + 0.330GAK500S                 : ARR( 0.565E-13,  -845., 0.0);
+{ 30807} G2A5029 +PERO1              =  0.460G1A502X + 0.270GAK500Y + 0.270GAK500S                 : ARR( 0.434E-13,  -900., 0.0);
+{ 30808} G2A5029 +PERO2              =  0.400G1A502X + 0.300GAK500Y + 0.300GAK500S                 : ARR( 0.162E-13, -1400., 0.0);
+{ 30809} G2A5029 +PERO3              =  0.460G1A502X + 0.270GAK500Y + 0.270GAK500S                 : ARR( 0.488E-13, -1250., 0.0);
+{ 30810} G2A5029 +PERO5              =  0.460G1A502X + 0.270GAK500Y + 0.270GAK500S                 : ARR( 0.183E-11,   450., 0.0);
+{ 30811} G2A5029 +PERO6              =  0.300G1A502X + 0.350GAK500Y + 0.350GAK500S                 : ARR( 0.168E-13, -1300., 0.0);
+{ 30812} G2A5029 +PERO9              =  0.650G1A502X + 0.350GAK500S                                : ARR( 0.100E-10,     0., 0.0);
+{ 30813} G1A502X                     =       GD02000 +      GAD3002 +      GHO2                    : ARR( 0.200E+15,  3092., 0.0);
+{ 30814} GAH3006 +GHO                =       GAD3002 +      GHO                                    : ARR( 0.102E-10,     0., 0.0);
+{ 30815} GAH3006 +GHO                =       G2A3006                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 30816} GAH3006+HV               =       GHD2000 +      GCO2                                   :  0.100E+01*SUN;
+{ 30817} GAH3006+HV               =       G1A3006 +      GHO                                    :  0.100E+01*SUN;
+{ 30818} GAD3002 +GHO                =       GCO     +      GHO     + 2.000GCO                     : ARR( 0.132E-10,     0., 0.0);
+{ 30819} GAD3002 +GNO3               =       GCO     +      GHNO3   +      GHO     + 2.000GCO      : ARR( 0.240E-14,     0., 0.0);
+{ 30820} GAD3002+HV               =       GDD2000 +      GCO2                                   :  0.100E+01*SUN;
+{ 30821} GAD3002+HV               =  2.000GCO     +      GHO     +      GHO2    +      GCO      :  0.100E+01*SUN;
+{ 30822} GAD3002+HV               =       GAD2000 +      GCO                                    :  0.100E+01*SUN;
+{ 30823} GAD3002+HV               =       GAD2000 +      GCO                                    :  0.100E+01*SUN;
+{ 30824} GPH500Y                     =       G3H500m +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 30825} GPH500Y +GHO                =       GPN500f +      GHO                                    : ARR( 0.833E-11,     0., 0.0);
+{ 30826} GPH500Y +GHO                =       G2P5023                                               : ARR( 0.870E-12,     0., 0.0);
+{ 30827} GPH500Y +GHO                =       G2P500Q                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 30828} GPH500Y+HV               =       G1P502O +      GNO2                                   :  0.100E+01*SUN;
+{ 30829} GPH500Y+HV               =       G1P500R +      GHO                                    :  0.100E+01*SUN;
+{ 30830} GPH500Y+HV               =       G3H500m +      GNO2                                   :  0.100E+01*SUN;
+{ 30831} G2P5023 +GNO                =       G1P502P +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 30832} G2P5023 +GNO                =       GPH502e                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 30833} G2P5023 +GHO2               =       GPH502f                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 30834} G2P5023 +GNO3               =       G1P502P +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 30835} G2P5023 +MEPERO             =  0.340G1P502P + 0.330GPH502g + 0.330GPH502h                 : ARR( 0.565E-13,  -845., 0.0);
+{ 30836} G2P5023 +PERO1              =  0.460G1P502P + 0.270GPH502g + 0.270GPH502h                 : ARR( 0.434E-13,  -900., 0.0);
+{ 30837} G2P5023 +PERO2              =  0.400G1P502P + 0.300GPH502g + 0.300GPH502h                 : ARR( 0.162E-13, -1400., 0.0);
+{ 30838} G2P5023 +PERO3              =  0.460G1P502P + 0.270GPH502g + 0.270GPH502h                 : ARR( 0.488E-13, -1250., 0.0);
+{ 30839} G2P5023 +PERO5              =  0.460G1P502P + 0.270GPH502g + 0.270GPH502h                 : ARR( 0.183E-11,   450., 0.0);
+{ 30840} G2P5023 +PERO6              =  0.300G1P502P + 0.350GPH502g + 0.350GPH502h                 : ARR( 0.168E-13, -1300., 0.0);
+{ 30841} G2P5023 +PERO9              =  0.650G1P502P + 0.350GPH502h                                : ARR( 0.100E-10,     0., 0.0);
+{ 30842} G1P502O                     =       GD02000 +      GPD3000 +      GHO                     : ARR( 0.200E+15,  4573., 0.0);
+{ 30843} G1P502P                     =       GHN400O +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 30844} GPN500i                     =       G3N500M +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 30845} GPN500i +GHO                =       G2P5024                                               : ARR( 0.335E-13,     0., 0.0);
+{ 30846} GPN500i +GHO                =       GPN500l +      GNO2                                   : ARR( 0.957E-13,     0., 0.0);
+{ 30847} GPN500i +GHO                =       G2P5025                                               : ARR( 0.565E-13,     0., 0.0);
+{ 30848} GPN500i +GHO                =       GPN500k +      GNO2                                   : ARR( 0.718E-13,     0., 0.0);
+{ 30849} GPN500i+HV               =       G1P500X +      GNO2                                   :  0.100E+01*SUN;
+{ 30850} GPN500i+HV               =       G1P500S +      GNO2                                   :  0.100E+01*SUN;
+{ 30851} GPN500i+HV               =       G3N500M +      GNO2                                   :  0.100E+01*SUN;
+{ 30852} G2P5024 +GNO                =       G1P502Q +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 30853} G2P5024 +GNO                =       GPN501A                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 30854} G2P5024 +GHO2               =       GPH502i                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 30855} G2P5024 +GNO3               =       G1P502Q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 30856} G2P5024 +MEPERO             =  0.480G1P502Q + 0.260GPN501D + 0.260GPN502C                 : ARR( 0.164E-12,  -795., 0.0);
+{ 30857} G2P5024 +PERO1              =  0.600G1P502Q + 0.200GPN501D + 0.200GPN502C                 : ARR( 0.126E-12,  -850., 0.0);
+{ 30858} G2P5024 +PERO2              =  0.560G1P502Q + 0.220GPN501D + 0.220GPN502C                 : ARR( 0.471E-13, -1350., 0.0);
+{ 30859} G2P5024 +PERO3              =  0.600G1P502Q + 0.200GPN501D + 0.200GPN502C                 : ARR( 0.142E-12, -1200., 0.0);
+{ 30860} G2P5024 +PERO5              =  0.600G1P502Q + 0.200GPN501D + 0.200GPN502C                 : ARR( 0.533E-11,   500., 0.0);
+{ 30861} G2P5024 +PERO6              =  0.460G1P502Q + 0.270GPN501D + 0.270GPN502C                 : ARR( 0.488E-13, -1250., 0.0);
+{ 30862} G2P5024 +PERO9              =  0.800G1P502Q + 0.200GPN502C                                : ARR( 0.100E-10,     0., 0.0);
+{ 30863} G2P5025 +GNO                =       G1P502R +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 30864} G2P5025 +GNO                =       GPN501e                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 30865} G2P5025 +GHO2               =       GPH502e                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 30866} G2P5025 +GNO3               =       G1P502R +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 30867} G2P5025 +MEPERO             =  0.340G1P502R + 0.330GPN501t + 0.330GPN5022                 : ARR( 0.565E-13,  -845., 0.0);
+{ 30868} G2P5025 +PERO1              =  0.460G1P502R + 0.270GPN501t + 0.270GPN5022                 : ARR( 0.434E-13,  -900., 0.0);
+{ 30869} G2P5025 +PERO2              =  0.400G1P502R + 0.300GPN501t + 0.300GPN5022                 : ARR( 0.162E-13, -1400., 0.0);
+{ 30870} G2P5025 +PERO3              =  0.460G1P502R + 0.270GPN501t + 0.270GPN5022                 : ARR( 0.488E-13, -1250., 0.0);
+{ 30871} G2P5025 +PERO5              =  0.460G1P502R + 0.270GPN501t + 0.270GPN5022                 : ARR( 0.183E-11,   450., 0.0);
+{ 30872} G2P5025 +PERO6              =  0.300G1P502R + 0.350GPN501t + 0.350GPN5022                 : ARR( 0.168E-13, -1300., 0.0);
+{ 30873} G2P5025 +PERO9              =  0.650G1P502R + 0.350GPN5022                                : ARR( 0.100E-10,     0., 0.0);
+{ 30874} G1P502Q +OXYGEN             =       GPN502C +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 30875} G1P502Q                     =       GPN501F +      GNO2                                   : ARR( 0.800E+11,  4245., 0.0);
+{ 30876} G1P502Q                     =       GPN400N +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7547., 0.0);
+{ 30877} G1P502R                     =       GD02000 +      GPN3006 +      GNO2                    : ARR( 0.200E+15,  5880., 0.0);
+{ 30878} G1P502R                     =       GND3001 +      GPD2000 +      GNO2                    : ARR( 0.200E+15,  6677., 0.0);
+{ 30879} GPH500Z                     =       G3H500N +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 30880} GPH500Z +GHO                =       GPN500k +      GHO                                    : ARR( 0.255E-10,     0., 0.0);
+{ 30881} GPH500Z +GHO                =       G2P500R                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 30882} GPH500Z+HV               =       G1P502S +      GNO2                                   :  0.100E+01*SUN;
+{ 30883} GPH500Z+HV               =       G1P500S +      GHO                                    :  0.100E+01*SUN;
+{ 30884} GPH500Z+HV               =       G3H500N +      GNO2                                   :  0.100E+01*SUN;
+{ 30885} G1P502S                     =       GD02000 +      G2P300B                                : ARR( 0.200E+15,  6864., 0.0);
+{ 30886} G2P300B +GNO                =       G1P3007 +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{ 30887} G2P300B +GNO                =       GPH3003                                               : ARR( 0.622E-13,  -360., 0.0);
+{ 30888} G2P300B +GHO2               =       GPH3008                                               : ARR( 0.179E-12, -1250., 0.0);
+{ 30889} G2P300B +GNO3               =       G1P3007 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 30890} G2P300B +MEPERO             =  0.480G1P3007 + 0.260GPH3002 + 0.260GPH3007                 : ARR( 0.164E-12,  -795., 0.0);
+{ 30891} G2P300B +PERO1              =  0.600G1P3007 + 0.200GPH3002 + 0.200GPH3007                 : ARR( 0.126E-12,  -850., 0.0);
+{ 30892} G2P300B +PERO2              =  0.560G1P3007 + 0.220GPH3002 + 0.220GPH3007                 : ARR( 0.471E-13, -1350., 0.0);
+{ 30893} G2P300B +PERO3              =  0.600G1P3007 + 0.200GPH3002 + 0.200GPH3007                 : ARR( 0.142E-12, -1200., 0.0);
+{ 30894} G2P300B +PERO5              =  0.600G1P3007 + 0.200GPH3002 + 0.200GPH3007                 : ARR( 0.533E-11,   500., 0.0);
+{ 30895} G2P300B +PERO6              =  0.460G1P3007 + 0.270GPH3002 + 0.270GPH3007                 : ARR( 0.488E-13, -1250., 0.0);
+{ 30896} G2P300B +PERO9              =  0.800G1P3007 + 0.200GPH3007                                : ARR( 0.100E-10,     0., 0.0);
+{ 30897} GPN500j                     =       G3N500X +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 30898} GPN500j +GHO                =       GPN500k +      GHO2                                   : ARR( 0.683E-11,     0., 0.0);
+{ 30899} GPN500j+HV               =       G1P500Z +      GNO2                                   :  0.100E+01*SUN;
+{ 30900} GPN500j+HV               =       G3N500X +      GNO2                                   :  0.100E+01*SUN;
+{ 30901} GPN500k                     =       G3N501K +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 30902} GPN500k +GHO                =       G2P5026                                               : ARR( 0.335E-13,     0., 0.0);
+{ 30903} GPN500k +GHO                =       GPK500J +      GNO2                                   : ARR( 0.304E-12,     0., 0.0);
+{ 30904} GPN500k +GHO                =       G2P5027                                               : ARR( 0.172E-12,     0., 0.0);
+{ 30905} GPN500k+HV               =       G1P500b +      GNO2                                   :  0.100E+01*SUN;
+{ 30906} GPN500k+HV               =       G3N4002 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 30907} G2P5026 +GNO                =       G1P502T +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 30908} G2P5026 +GNO                =       GPN501C                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 30909} G2P5026 +GHO2               =       GPH502j                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 30910} G2P5026 +GNO3               =       G1P502T +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 30911} G2P5026 +MEPERO             =  0.480G1P502T + 0.260GPN501F + 0.260GPN502D                 : ARR( 0.164E-12,  -795., 0.0);
+{ 30912} G2P5026 +PERO1              =  0.600G1P502T + 0.200GPN501F + 0.200GPN502D                 : ARR( 0.126E-12,  -850., 0.0);
+{ 30913} G2P5026 +PERO2              =  0.560G1P502T + 0.220GPN501F + 0.220GPN502D                 : ARR( 0.471E-13, -1350., 0.0);
+{ 30914} G2P5026 +PERO3              =  0.600G1P502T + 0.200GPN501F + 0.200GPN502D                 : ARR( 0.142E-12, -1200., 0.0);
+{ 30915} G2P5026 +PERO5              =  0.600G1P502T + 0.200GPN501F + 0.200GPN502D                 : ARR( 0.533E-11,   500., 0.0);
+{ 30916} G2P5026 +PERO6              =  0.460G1P502T + 0.270GPN501F + 0.270GPN502D                 : ARR( 0.488E-13, -1250., 0.0);
+{ 30917} G2P5026 +PERO9              =  0.800G1P502T + 0.200GPN502D                                : ARR( 0.100E-10,     0., 0.0);
+{ 30918} G2P5027 +GNO                =       G1P502U +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 30919} G2P5027 +GNO                =       GPN501g                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 30920} G2P5027 +GHO2               =       GPH502h                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 30921} G2P5027 +GNO3               =       G1P502U +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 30922} G2P5027 +MEPERO             =  0.340G1P502U + 0.330GPN501v + 0.330GPN5024                 : ARR( 0.565E-13,  -845., 0.0);
+{ 30923} G2P5027 +PERO1              =  0.460G1P502U + 0.270GPN501v + 0.270GPN5024                 : ARR( 0.434E-13,  -900., 0.0);
+{ 30924} G2P5027 +PERO2              =  0.400G1P502U + 0.300GPN501v + 0.300GPN5024                 : ARR( 0.162E-13, -1400., 0.0);
+{ 30925} G2P5027 +PERO3              =  0.460G1P502U + 0.270GPN501v + 0.270GPN5024                 : ARR( 0.488E-13, -1250., 0.0);
+{ 30926} G2P5027 +PERO5              =  0.460G1P502U + 0.270GPN501v + 0.270GPN5024                 : ARR( 0.183E-11,   450., 0.0);
+{ 30927} G2P5027 +PERO6              =  0.300G1P502U + 0.350GPN501v + 0.350GPN5024                 : ARR( 0.168E-13, -1300., 0.0);
+{ 30928} G2P5027 +PERO9              =  0.650G1P502U + 0.350GPN5024                                : ARR( 0.100E-10,     0., 0.0);
+{ 30929} G1P502T +OXYGEN             =       GPN502D +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 30930} G1P502T                     =       GPD4005 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7175., 0.0);
+{ 30931} G1P502U                     =       GND3001 +      GCO     +      GNO2    +      GCO      : ARR( 0.200E+15,  3266., 0.0);
+{ 30932} GPH500a                     =       G3H500R +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 30933} GPH500a +GHO                =       GPK500D +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 30934} GPH500a +GHO                =       G2P5028                                               : ARR( 0.274E-11,     0., 0.0);
+{ 30935} GPH500a +GHO                =       G2P500S                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 30936} GPH500a+HV               =       G3K2000 +      GPD3000 +      GHO                     :  0.100E+01*SUN;
+{ 30937} GPH500a+HV               =       G1P500T +      GHO                                    :  0.100E+01*SUN;
+{ 30938} GPH500a+HV               =       G3H500R +      GNO2                                   :  0.100E+01*SUN;
+{ 30939} G2P5028 +GNO                =       G1P502W +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 30940} G2P5028 +GNO                =       GPH502k                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 30941} G2P5028 +GHO2               =       GPH502l                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 30942} G2P5028 +GNO3               =       G1P502W +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 30943} G2P5028 +MEPERO             =  0.340G1P502W + 0.330GPH502m + 0.330GPH502n                 : ARR( 0.565E-13,  -845., 0.0);
+{ 30944} G2P5028 +PERO1              =  0.460G1P502W + 0.270GPH502m + 0.270GPH502n                 : ARR( 0.434E-13,  -900., 0.0);
+{ 30945} G2P5028 +PERO2              =  0.400G1P502W + 0.300GPH502m + 0.300GPH502n                 : ARR( 0.162E-13, -1400., 0.0);
+{ 30946} G2P5028 +PERO3              =  0.460G1P502W + 0.270GPH502m + 0.270GPH502n                 : ARR( 0.488E-13, -1250., 0.0);
+{ 30947} G2P5028 +PERO5              =  0.460G1P502W + 0.270GPH502m + 0.270GPH502n                 : ARR( 0.183E-11,   450., 0.0);
+{ 30948} G2P5028 +PERO6              =  0.300G1P502W + 0.350GPH502m + 0.350GPH502n                 : ARR( 0.168E-13, -1300., 0.0);
+{ 30949} G2P5028 +PERO9              =  0.650G1P502W + 0.350GPH502n                                : ARR( 0.100E-10,     0., 0.0);
+{ 30950} G1P502W                     =       GHD4007 +      GCO     +      GNO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 30951} GPN500l                     =       G3N500N +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 30952} GPN500l +GHO                =       G2P5029                                               : ARR( 0.102E-12,     0., 0.0);
+{ 30953} GPN500l +GHO                =       G2P502A                                               : ARR( 0.172E-12,     0., 0.0);
+{ 30954} GPN500l +GHO                =       GPK500J +      GNO2                                   : ARR( 0.228E-12,     0., 0.0);
+{ 30955} GPN500l+HV               =       G3K2000 +      G2P3004                                :  0.100E+01*SUN;
+{ 30956} GPN500l+HV               =       G1P500U +      GNO2                                   :  0.100E+01*SUN;
+{ 30957} GPN500l+HV               =       G3N500N +      GNO2                                   :  0.100E+01*SUN;
+{ 30958} G2P5029 +GNO                =       G1P502X +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 30959} G2P5029 +GNO                =       GPN501I                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 30960} G2P5029 +GHO2               =       GPH501z                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 30961} G2P5029 +GNO3               =       G1P502X +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 30962} G2P5029 +MEPERO             =  0.480G1P502X + 0.260GPN501L + 0.260GPN502E                 : ARR( 0.164E-12,  -795., 0.0);
+{ 30963} G2P5029 +PERO1              =  0.600G1P502X + 0.200GPN501L + 0.200GPN502E                 : ARR( 0.126E-12,  -850., 0.0);
+{ 30964} G2P5029 +PERO2              =  0.560G1P502X + 0.220GPN501L + 0.220GPN502E                 : ARR( 0.471E-13, -1350., 0.0);
+{ 30965} G2P5029 +PERO3              =  0.600G1P502X + 0.200GPN501L + 0.200GPN502E                 : ARR( 0.142E-12, -1200., 0.0);
+{ 30966} G2P5029 +PERO5              =  0.600G1P502X + 0.200GPN501L + 0.200GPN502E                 : ARR( 0.533E-11,   500., 0.0);
+{ 30967} G2P5029 +PERO6              =  0.460G1P502X + 0.270GPN501L + 0.270GPN502E                 : ARR( 0.488E-13, -1250., 0.0);
+{ 30968} G2P5029 +PERO9              =  0.800G1P502X + 0.200GPN502E                                : ARR( 0.100E-10,     0., 0.0);
+{ 30969} G2P502A +GNO                =       G1P502Y +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 30970} G2P502A +GNO                =       GPN501m                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 30971} G2P502A +GHO2               =       GPH502k                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 30972} G2P502A +GNO3               =       G1P502Y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 30973} G2P502A +MEPERO             =  0.340G1P502Y + 0.330GPN501w + 0.330GPN5028                 : ARR( 0.565E-13,  -845., 0.0);
+{ 30974} G2P502A +PERO1              =  0.460G1P502Y + 0.270GPN501w + 0.270GPN5028                 : ARR( 0.434E-13,  -900., 0.0);
+{ 30975} G2P502A +PERO2              =  0.400G1P502Y + 0.300GPN501w + 0.300GPN5028                 : ARR( 0.162E-13, -1400., 0.0);
+{ 30976} G2P502A +PERO3              =  0.460G1P502Y + 0.270GPN501w + 0.270GPN5028                 : ARR( 0.488E-13, -1250., 0.0);
+{ 30977} G2P502A +PERO5              =  0.460G1P502Y + 0.270GPN501w + 0.270GPN5028                 : ARR( 0.183E-11,   450., 0.0);
+{ 30978} G2P502A +PERO6              =  0.300G1P502Y + 0.350GPN501w + 0.350GPN5028                 : ARR( 0.168E-13, -1300., 0.0);
+{ 30979} G2P502A +PERO9              =  0.650G1P502Y + 0.350GPN5028                                : ARR( 0.100E-10,     0., 0.0);
+{ 30980} G1P502X                     =       G3P4002 +      GCH2O                                  : ARR( 0.200E+15,  3576., 0.0);
+{ 30981} G1P502Y                     =       G3K2000 +      GPN3006                                : ARR( 0.200E+15,  2093., 0.0);
+{ 30982} G3P4002 +GHO2               =  0.800GPG4002 + 0.200GPA4001 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 30983} G3P4002 +GNO                =       G2P3004 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 30984} G3P4002 +GNO2               =       GPP4001                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 30985} G3P4002 +GNO3               =       G2P3004 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 30986} G3P4002 +MEPERO             =  0.685G2P3004 + 0.315GPA4001 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 30987} G3P4002 +PERO1              =  0.800G2P3004 + 0.200GPA4001 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 30988} G3P4002 +PERO2              =  0.750G2P3004 + 0.250GPA4001 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 30989} G3P4002 +PERO3              =  0.800G2P3004 + 0.200GPA4001 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 30990} G3P4002 +PERO5              =  0.650G2P3004 + 0.350GPA4001 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 30991} G3P4002 +PERO6              =  0.650G2P3004 + 0.350GPA4001 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 30992} G3P4002 +PERO9              =       G2P3004 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 30993} GPH500b                     =       G3H500S +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 30994} GPH500b +GHO                =       GPK500J +      GHO                                    : ARR( 0.842E-10,     0., 0.0);
+{ 30995} GPH500b+HV               =       G3K2000 +      G2P300B                                :  0.100E+01*SUN;
+{ 30996} GPH500b+HV               =       G1P500U +      GHO                                    :  0.100E+01*SUN;
+{ 30997} GPH500b+HV               =       G3H500S +      GNO2                                   :  0.100E+01*SUN;
+{ 30998} GPK500I                     =       G3K500H +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 30999} GPK500I +GHO                =       GPK500J +      GHO2                                   : ARR( 0.210E-10,     0., 0.0);
+{ 31000} GPK500I+HV               =       G3K2000 +      G2P3005                                :  0.100E+01*SUN;
+{ 31001} GPK500I+HV               =       G3K500H +      GNO2                                   :  0.100E+01*SUN;
+{ 31002} GPK500J                     =       G3K500d +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 31003} GPK500J +GHO                =       G2P502B                                               : ARR( 0.102E-12,     0., 0.0);
+{ 31004} GPK500J +GHO                =       G2P502C                                               : ARR( 0.525E-12,     0., 0.0);
+{ 31005} GPK500J+HV               =       G3K2000 +      G2P3006                                :  0.100E+01*SUN;
+{ 31006} GPK500J+HV               =       G3K4003 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 31007} G2P502B +GNO                =       G1P502Z +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 31008} G2P502B +GNO                =       GPN501K                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 31009} G2P502B +GHO2               =       GPH5022                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 31010} G2P502B +GNO3               =       G1P502Z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 31011} G2P502B +MEPERO             =  0.480G1P502Z + 0.260GPK500O + 0.260GPD500H                 : ARR( 0.164E-12,  -795., 0.0);
+{ 31012} G2P502B +PERO1              =  0.600G1P502Z + 0.200GPK500O + 0.200GPD500H                 : ARR( 0.126E-12,  -850., 0.0);
+{ 31013} G2P502B +PERO2              =  0.560G1P502Z + 0.220GPK500O + 0.220GPD500H                 : ARR( 0.471E-13, -1350., 0.0);
+{ 31014} G2P502B +PERO3              =  0.600G1P502Z + 0.200GPK500O + 0.200GPD500H                 : ARR( 0.142E-12, -1200., 0.0);
+{ 31015} G2P502B +PERO5              =  0.600G1P502Z + 0.200GPK500O + 0.200GPD500H                 : ARR( 0.533E-11,   500., 0.0);
+{ 31016} G2P502B +PERO6              =  0.460G1P502Z + 0.270GPK500O + 0.270GPD500H                 : ARR( 0.488E-13, -1250., 0.0);
+{ 31017} G2P502B +PERO9              =  0.800G1P502Z + 0.200GPD500H                                : ARR( 0.100E-10,     0., 0.0);
+{ 31018} G2P502C +GNO                =       G1P502a +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 31019} G2P502C +GNO                =       GPN501o                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 31020} G2P502C +GHO2               =       GPH502n                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 31021} G2P502C +GNO3               =       G1P502a +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 31022} G2P502C +MEPERO             =  0.340G1P502a + 0.330GPK500T + 0.330GPK500Z                 : ARR( 0.565E-13,  -845., 0.0);
+{ 31023} G2P502C +PERO1              =  0.460G1P502a + 0.270GPK500T + 0.270GPK500Z                 : ARR( 0.434E-13,  -900., 0.0);
+{ 31024} G2P502C +PERO2              =  0.400G1P502a + 0.300GPK500T + 0.300GPK500Z                 : ARR( 0.162E-13, -1400., 0.0);
+{ 31025} G2P502C +PERO3              =  0.460G1P502a + 0.270GPK500T + 0.270GPK500Z                 : ARR( 0.488E-13, -1250., 0.0);
+{ 31026} G2P502C +PERO5              =  0.460G1P502a + 0.270GPK500T + 0.270GPK500Z                 : ARR( 0.183E-11,   450., 0.0);
+{ 31027} G2P502C +PERO6              =  0.300G1P502a + 0.350GPK500T + 0.350GPK500Z                 : ARR( 0.168E-13, -1300., 0.0);
+{ 31028} G2P502C +PERO9              =  0.650G1P502a + 0.350GPK500Z                                : ARR( 0.100E-10,     0., 0.0);
+{ 31029} G1P502Z                     =       G3P4003 +      GCH2O                                  : ARR( 0.200E+15,  3552., 0.0);
+{ 31030} G1P502a                     =       G3K2000 +      GPD3002                                : ARR( 0.200E+15,  4537., 0.0);
+{ 31031} G1P502a                     =       GDK3000 +      GCO     +      GNO2    +      GCO      : ARR( 0.200E+15,  4856., 0.0);
+{ 31032} G3P4003 +GHO2               =  0.800GPG4003 + 0.200GPA4004 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 31033} G3P4003 +GNO                =       G2P3006 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 31034} G3P4003 +GNO2               =       GPP4002                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 31035} G3P4003 +GNO3               =       G2P3006 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 31036} G3P4003 +MEPERO             =  0.685G2P3006 + 0.315GPA4004 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 31037} G3P4003 +PERO1              =  0.800G2P3006 + 0.200GPA4004 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 31038} G3P4003 +PERO2              =  0.750G2P3006 + 0.250GPA4004 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 31039} G3P4003 +PERO3              =  0.800G2P3006 + 0.200GPA4004 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 31040} G3P4003 +PERO5              =  0.650G2P3006 + 0.350GPA4004 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 31041} G3P4003 +PERO6              =  0.650G2P3006 + 0.350GPA4004 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 31042} G3P4003 +PERO9              =       G2P3006 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 31043} GPH500c                     =       G3H501j +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 31044} GPH500c +GHO                =       GPN500m +      GHO                                    : ARR( 0.164E-10,     0., 0.0);
+{ 31045} GPH500c +GHO                =       G2P502D                                               : ARR( 0.144E-11,     0., 0.0);
+{ 31046} GPH500c +GHO                =       G2P500U                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 31047} GPH500c+HV               =       G1P500W +      GHO                                    :  0.100E+01*SUN;
+{ 31048} GPH500c+HV               =       G1P502b +      GNO2                                   :  0.100E+01*SUN;
+{ 31049} GPH500c+HV               =       G3H501j +      GNO2                                   :  0.100E+01*SUN;
+{ 31050} G3H501j +GHO2               =  0.800GGH502T + 0.200GAH500a + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 31051} G3H501j +GNO                =       GHD4001 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 31052} G3H501j +GNO2               =       GPH500c                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 31053} G3H501j +GNO3               =       GHD4001 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 31054} G3H501j +MEPERO             =  0.685GHD4001 + 0.315GAH500a + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 31055} G3H501j +PERO1              =  0.800GHD4001 + 0.200GAH500a + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 31056} G3H501j +PERO2              =  0.750GHD4001 + 0.250GAH500a + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 31057} G3H501j +PERO3              =  0.800GHD4001 + 0.200GAH500a + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 31058} G3H501j +PERO5              =  0.650GHD4001 + 0.350GAH500a + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 31059} G3H501j +PERO6              =  0.650GHD4001 + 0.350GAH500a + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 31060} G3H501j +PERO9              =       GHD4001 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 31061} G2P502D +GNO                =       G1P502c +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 31062} G2P502D +GNO                =       GPH502i                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 31063} G2P502D +GHO2               =       GPH502o                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 31064} G2P502D +GNO3               =       G1P502c +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 31065} G2P502D +MEPERO             =  0.340G1P502c + 0.330GPH500j + 0.330GPH501z                 : ARR( 0.565E-13,  -845., 0.0);
+{ 31066} G2P502D +PERO1              =  0.460G1P502c + 0.270GPH500j + 0.270GPH501z                 : ARR( 0.434E-13,  -900., 0.0);
+{ 31067} G2P502D +PERO2              =  0.400G1P502c + 0.300GPH500j + 0.300GPH501z                 : ARR( 0.162E-13, -1400., 0.0);
+{ 31068} G2P502D +PERO3              =  0.460G1P502c + 0.270GPH500j + 0.270GPH501z                 : ARR( 0.488E-13, -1250., 0.0);
+{ 31069} G2P502D +PERO5              =  0.460G1P502c + 0.270GPH500j + 0.270GPH501z                 : ARR( 0.183E-11,   450., 0.0);
+{ 31070} G2P502D +PERO6              =  0.300G1P502c + 0.350GPH500j + 0.350GPH501z                 : ARR( 0.168E-13, -1300., 0.0);
+{ 31071} G2P502D +PERO9              =  0.650G1P502c + 0.350GPH501z                                : ARR( 0.100E-10,     0., 0.0);
+{ 31072} G1P502b                     =       GPD5000 +      GHO                                    : ARR( 0.160E+12,  2186., 0.0);
+{ 31073} G1P502b                     =       GHD4001 +      GCO     +      GNO2                    : ARR( 0.200E+15,  4949., 0.0);
+{ 31074} G1P502c                     =       GCH2O   +      GPN400N +      GHO                     : ARR( 0.200E+15,  7140., 0.0);
+{ 31075} G1P502c                     =       GHD2000 +      G2P3004                                : ARR( 0.200E+15,  7118., 0.0);
+{ 31076} GPN500m                     =       G3N500l +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 31077} GPN500m +GHO                =       G3P5008                                               : ARR( 0.226E-10,     0., 0.0);
+{ 31078} GPN500m +GNO3               =       G3P5008 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 31079} GPN500m+HV               =       G3N500l +      GNO2                                   :  0.100E+01*SUN;
+{ 31080} GPN500m+HV               =       G1P502d +      GNO2                                   :  0.100E+01*SUN;
+{ 31081} GPN500m+HV               =       G2P400E +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 31082} GPN500m+HV               =       G2P3006 +      GD02000 +      GNO2                    :  0.100E+01*SUN;
+{ 31083} G3P5008 +GHO2               =  0.800GPG500A + 0.200GPA500C + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 31084} G3P5008 +GNO                =       G2P400E +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 31085} G3P5008 +GNO2               =       GPP5007                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 31086} G3P5008 +GNO3               =       G2P400E +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 31087} G3P5008 +MEPERO             =  0.685G2P400E + 0.315GPA500C + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 31088} G3P5008 +PERO1              =  0.800G2P400E + 0.200GPA500C + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 31089} G3P5008 +PERO2              =  0.750G2P400E + 0.250GPA500C + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 31090} G3P5008 +PERO3              =  0.800G2P400E + 0.200GPA500C + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 31091} G3P5008 +PERO5              =  0.650G2P400E + 0.350GPA500C + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 31092} G3P5008 +PERO6              =  0.650G2P400E + 0.350GPA500C + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 31093} G3P5008 +PERO9              =       G2P400E +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 31094} G1P502d                     =       GCO     +      GDD4000 +      GNO2                    : ARR( 0.200E+15,  4949., 0.0);
+{ 31095} GPH500d                     =       G3H501O +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 31096} GPH500d +GHO                =       GPN500l +      GHO                                    : ARR( 0.340E-10,     0., 0.0);
+{ 31097} GPH500d +GHO                =       G2P500W                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 31098} GPH500d+HV               =       G1P500X +      GHO                                    :  0.100E+01*SUN;
+{ 31099} GPH500d+HV               =       G1P502e +      GNO2                                   :  0.100E+01*SUN;
+{ 31100} GPH500d+HV               =       G3H501O +      GNO2                                   :  0.100E+01*SUN;
+{ 31101} G1P502e                     =       GHD4002 +      GCO     +      GNO2                    : ARR( 0.200E+15,  4949., 0.0);
+{ 31102} GPH500e                     =       G3H501g +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 31103} GPH500e +GHO                =       G2P502E                                               : ARR( 0.117E-11,     0., 0.0);
+{ 31104} GPH500e +GHO                =       GPN500g +      GHO                                    : ARR( 0.839E-11,     0., 0.0);
+{ 31105} GPH500e +GHO                =       G2P500X                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 31106} GPH500e+HV               =       G1P500Y +      GHO                                    :  0.100E+01*SUN;
+{ 31107} GPH500e+HV               =       G1P502f +      GNO2                                   :  0.100E+01*SUN;
+{ 31108} GPH500e+HV               =       G3H501g +      GNO2                                   :  0.100E+01*SUN;
+{ 31109} G2P502E +GNO                =       G1P502g +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 31110} G2P502E +GNO                =       GPH502e                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 31111} G2P502E +GHO2               =       GPH502p                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 31112} G2P502E +GNO3               =       G1P502g +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 31113} G2P502E +MEPERO             =  0.340G1P502g + 0.330GPH501U + 0.330GPH502k                 : ARR( 0.565E-13,  -845., 0.0);
+{ 31114} G2P502E +PERO1              =  0.460G1P502g + 0.270GPH501U + 0.270GPH502k                 : ARR( 0.434E-13,  -900., 0.0);
+{ 31115} G2P502E +PERO2              =  0.400G1P502g + 0.300GPH501U + 0.300GPH502k                 : ARR( 0.162E-13, -1400., 0.0);
+{ 31116} G2P502E +PERO3              =  0.460G1P502g + 0.270GPH501U + 0.270GPH502k                 : ARR( 0.488E-13, -1250., 0.0);
+{ 31117} G2P502E +PERO5              =  0.460G1P502g + 0.270GPH501U + 0.270GPH502k                 : ARR( 0.183E-11,   450., 0.0);
+{ 31118} G2P502E +PERO6              =  0.300G1P502g + 0.350GPH501U + 0.350GPH502k                 : ARR( 0.168E-13, -1300., 0.0);
+{ 31119} G2P502E +PERO9              =  0.650G1P502g + 0.350GPH502k                                : ARR( 0.100E-10,     0., 0.0);
+{ 31120} G1P502f                     =       G2P502F                                               : ARR( 0.240E+12,  4177., 0.0);
+{ 31121} G1P502f                     =       GHD4005 +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 31122} G1P502g                     =       GD02000 +      GPN3006 +      GHO                     : ARR( 0.200E+15,  4573., 0.0);
+{ 31123} G2P502F +GNO                =       G1P502h +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 31124} G2P502F +GNO                =       GPH501N                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 31125} G2P502F +GHO2               =       GPH501s                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 31126} G2P502F +GNO3               =       G1P502h +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 31127} G2P502F +MEPERO             =  0.480G1P502h + 0.260GPH500x + 0.260GPH500z                 : ARR( 0.146E-12,  -445., 0.0);
+{ 31128} G2P502F +PERO1              =  0.600G1P502h + 0.200GPH500x + 0.200GPH500z                 : ARR( 0.112E-12,  -500., 0.0);
+{ 31129} G2P502F +PERO2              =  0.560G1P502h + 0.220GPH500x + 0.220GPH500z                 : ARR( 0.418E-13, -1000., 0.0);
+{ 31130} G2P502F +PERO3              =  0.600G1P502h + 0.200GPH500x + 0.200GPH500z                 : ARR( 0.126E-12,  -850., 0.0);
+{ 31131} G2P502F +PERO5              =  0.600G1P502h + 0.200GPH500x + 0.200GPH500z                 : ARR( 0.473E-11,   850., 0.0);
+{ 31132} G2P502F +PERO6              =  0.460G1P502h + 0.270GPH500x + 0.270GPH500z                 : ARR( 0.434E-13,  -900., 0.0);
+{ 31133} G2P502F +PERO9              =  0.800G1P502h + 0.200GPH500z                                : ARR( 0.100E-10,     0., 0.0);
+{ 31134} G1P502h                     =       GPH500y +      GHO2                                   : ARR( 0.800E+11,  2246., 0.0);
+{ 31135} GPN3006                     =       G3N3005 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 31136} GPN3006 +GHO                =       G3P3001                                               : ARR( 0.420E-11,     0., 0.0);
+{ 31137} GPN3006 +GNO3               =       G3P3001 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 31138} GPN3006+HV               =       G3N3005 +      GNO2                                   :  0.100E+01*SUN;
+{ 31139} GPN3006+HV               =       G1P3008 +      GNO2                                   :  0.100E+01*SUN;
+{ 31140} GPN3006+HV               =       GPD2000 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 31141} GPH3005                     =       G3H3005 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 31142} GPH3005 +GHO                =       GPN3006 +      GHO                                    : ARR( 0.325E-11,     0., 0.0);
+{ 31143} GPH3005 +GHO                =       G2P3004                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 31144} GPH3005+HV               =       G1P3004 +      GHO                                    :  0.100E+01*SUN;
+{ 31145} GPH3005+HV               =       G1P300C +      GNO2                                   :  0.100E+01*SUN;
+{ 31146} GPH3005+HV               =       G3H3005 +      GNO2                                   :  0.100E+01*SUN;
+{ 31147} G1P300C                     =       GHD2000 +      GCO     +      GNO2                    : ARR( 0.200E+15,  5263., 0.0);
+{ 31148} GPH500f                     =       G3H500x +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 31149} GPH500f +GHO                =       GPK500I +      GHO                                    : ARR( 0.348E-10,     0., 0.0);
+{ 31150} GPH500f +GHO                =       GPH500h +      GHO2                                   : ARR( 0.653E-11,     0., 0.0);
+{ 31151} GPH500f +GHO                =       G2P500Y                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 31152} GPH500f+HV               =       G1P500Z +      GHO                                    :  0.100E+01*SUN;
+{ 31153} GPH500f+HV               =       G3H500x +      GNO2                                   :  0.100E+01*SUN;
+{ 31154} GPH500g                     =       G3H501T +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 31155} GPH500g +GHO                =       GPK500E +      GHO                                    : ARR( 0.424E-10,     0., 0.0);
+{ 31156} GPH500g +GHO                =       GPH500i +      GHO2                                   : ARR( 0.646E-11,     0., 0.0);
+{ 31157} GPH500g +GHO                =       G2P500Z                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 31158} GPH500g+HV               =       G1P500a +      GHO                                    :  0.100E+01*SUN;
+{ 31159} GPH500g+HV               =       G3H501T +      GNO2                                   :  0.100E+01*SUN;
+{ 31160} GPD3001                     =       G3D3001 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 31161} GPD3001 +GHO                =       GPD3002 +      GHO2                                   : ARR( 0.385E-11,     0., 0.0);
+{ 31162} GPD3001 +GHO                =       G3P3002                                               : ARR( 0.209E-10,     0., 0.0);
+{ 31163} GPD3001 +GNO3               =       G3P3002 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 31164} GPD3001+HV               =       G3D3001 +      GNO2                                   :  0.100E+01*SUN;
+{ 31165} GPD3001+HV               =       GPD2000 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 31166} GPH500h                     =       G3H501k +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 31167} GPH500h +GHO                =       GPK500J +      GHO                                    : ARR( 0.111E-09,     0., 0.0);
+{ 31168} GPH500h+HV               =       G1P500b +      GHO                                    :  0.100E+01*SUN;
+{ 31169} GPH500h+HV               =       G3H4001 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 31170} G3H501k +GHO2               =  0.800GGH500c + 0.200GAH500h + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 31171} G3H501k +GNO                =       G3H4001 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 31172} G3H501k +GNO2               =       GPH500h                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 31173} G3H501k +GNO3               =       G3H4001 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 31174} G3H501k +MEPERO             =  0.685G3H4001 + 0.315GAH500h + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 31175} G3H501k +PERO1              =  0.800G3H4001 + 0.200GAH500h + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 31176} G3H501k +PERO2              =  0.750G3H4001 + 0.250GAH500h + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 31177} G3H501k +PERO3              =  0.800G3H4001 + 0.200GAH500h + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 31178} G3H501k +PERO5              =  0.650G3H4001 + 0.350GAH500h + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 31179} G3H501k +PERO6              =  0.650G3H4001 + 0.350GAH500h + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 31180} G3H501k +PERO9              =       G3H4001 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 31181} GPH500i                     =       G3H501i +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 31182} GPH500i +GHO                =       G2P502G                                               : ARR( 0.366E-11,     0., 0.0);
+{ 31183} GPH500i +GHO                =       GPK500F +      GHO                                    : ARR( 0.253E-10,     0., 0.0);
+{ 31184} GPH500i +GHO                =       G2P500b                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 31185} GPH500i+HV               =       G1P500c +      GHO                                    :  0.100E+01*SUN;
+{ 31186} GPH500i+HV               =       G3H4000 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 31187} G2P502G +GNO                =       G1P502i +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 31188} G2P502G +GNO                =       GPH502h                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 31189} G2P502G +GHO2               =       GPH502q                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 31190} G2P502G +GNO3               =       G1P502i +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 31191} G2P502G +MEPERO             =  0.340G1P502i + 0.330GPH502r + 0.330GPH502n                 : ARR( 0.565E-13,  -845., 0.0);
+{ 31192} G2P502G +PERO1              =  0.460G1P502i + 0.270GPH502r + 0.270GPH502n                 : ARR( 0.434E-13,  -900., 0.0);
+{ 31193} G2P502G +PERO2              =  0.400G1P502i + 0.300GPH502r + 0.300GPH502n                 : ARR( 0.162E-13, -1400., 0.0);
+{ 31194} G2P502G +PERO3              =  0.460G1P502i + 0.270GPH502r + 0.270GPH502n                 : ARR( 0.488E-13, -1250., 0.0);
+{ 31195} G2P502G +PERO5              =  0.460G1P502i + 0.270GPH502r + 0.270GPH502n                 : ARR( 0.183E-11,   450., 0.0);
+{ 31196} G2P502G +PERO6              =  0.300G1P502i + 0.350GPH502r + 0.350GPH502n                 : ARR( 0.168E-13, -1300., 0.0);
+{ 31197} G2P502G +PERO9              =  0.650G1P502i + 0.350GPH502n                                : ARR( 0.100E-10,     0., 0.0);
+{ 31198} G1P502i                     =       GD02000 +      GPD3002 +      GHO                     : ARR( 0.200E+15,  4301., 0.0);
+{ 31199} GPH3006                     =       G3H3008 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 31200} GPH3006 +GHO                =       GPD3002 +      GHO                                    : ARR( 0.981E-11,     0., 0.0);
+{ 31201} GPH3006 +GHO                =       G2P3006                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 31202} GPH3006+HV               =       G1P3006 +      GHO                                    :  0.100E+01*SUN;
+{ 31203} GPH3006+HV               =       G3H2000 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 31204} GPD3002                     =       G3D3002 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 31205} GPD3002 +GHO                =       GCO     +      GNO2    + 2.000GCO                     : ARR( 0.127E-10,     0., 0.0);
+{ 31206} GPD3002 +GNO3               =       GCO     +      GHNO3   +      GNO2    + 2.000GCO      : ARR( 0.240E-14,     0., 0.0);
+{ 31207} GPD3002+HV               =       G3D2000 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 31208} GPD3002+HV               =  2.000GCO     +      GNO2    +      GHO2    +      GCO      :  0.100E+01*SUN;
+{ 31209} GPD3002+HV               =       GPD2000 +      GCO                                    :  0.100E+01*SUN;
+{ 31210} GPD3002+HV               =       GPD2000 +      GCO                                    :  0.100E+01*SUN;
+{ 31211} GHN400k +GHO                =       GNK400B +      GHO                                    : ARR( 0.838E-11,     0., 0.0);
+{ 31212} GHN400k +GHO                =       GHN400O +      GHO2                                   : ARR( 0.409E-11,     0., 0.0);
+{ 31213} GHN400k +GHO                =       G2N400W                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 31214} GHN400k+HV               =       G1H401E +      GNO2                                   :  0.100E+01*SUN;
+{ 31215} GHN400k+HV               =       G1N400X +      GHO                                    :  0.100E+01*SUN;
+{ 31216} G1H401E                     =       GD02000 +      GDO2000 +      GHO                     : ARR( 0.200E+15,  4589., 0.0);
+{ 31217} GHK4008 +GHO                =       GKK4000 +      GHO                                    : ARR( 0.253E-10,     0., 0.0);
+{ 31218} GHK4008 +GHO                =       GHD4007 +      GHO2                                   : ARR( 0.128E-10,     0., 0.0);
+{ 31219} GHK4008 +GHO                =       G2K4006                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 31220} GHK4008+HV               =       G3K2000 +      GDO2000 +      GHO                     :  0.100E+01*SUN;
+{ 31221} GHK4008+HV               =       G1K4006 +      GHO                                    :  0.100E+01*SUN;
+{ 31222} GNN400R +GHO                =       GNN400a +      GHO2                                   : ARR( 0.247E-11,     0., 0.0);
+{ 31223} GNN400R +GHO                =       G1N4014                                               : ARR( 0.212E-17,    85., 2.0);
+{ 31224} GNN400R+HV               =       G3K2001 +      GND2000 +      GNO2                    :  0.100E+01*SUN;
+{ 31225} GNN400R+HV               =       G1N400Y +      GNO2                                   :  0.100E+01*SUN;
+{ 31226} GNN400R+HV               =       G1N4016 +      GNO2                                   :  0.100E+01*SUN;
+{ 31227} GHN400l +GHO                =       GHN4018 +      GHO2                                   : ARR( 0.252E-11,     0., 0.0);
+{ 31228} GHN400l +GHO                =       GNK400C +      GHO                                    : ARR( 0.516E-11,     0., 0.0);
+{ 31229} GHN400l +GHO                =       G2N400X                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 31230} GHN400l+HV               =       G3K2001 +      GND2000 +      GHO                     :  0.100E+01*SUN;
+{ 31231} GHN400l+HV               =       G1N400Y +      GHO                                    :  0.100E+01*SUN;
+{ 31232} GHN400l+HV               =       G1H4019 +      GNO2                                   :  0.100E+01*SUN;
+{ 31233} GNK400C +GHO                =       GND400M +      GHO2                                   : ARR( 0.248E-11,     0., 0.0);
+{ 31234} GNK400C +GHO                =       G1N4015                                               : ARR( 0.212E-17,    85., 2.0);
+{ 31235} GNK400C+HV               =       G3K2001 +      G3N2000                                :  0.100E+01*SUN;
+{ 31236} GNK400C+HV               =       G1K400C +      GNO2                                   :  0.100E+01*SUN;
+{ 31237} GHK4009 +GHO                =       GHD400M +      GHO2                                   : ARR( 0.247E-11,     0., 0.0);
+{ 31238} GHK4009 +GHO                =       GKK4001 +      GHO                                    : ARR( 0.253E-10,     0., 0.0);
+{ 31239} GHK4009 +GHO                =       GHD400G +      GHO2                                   : ARR( 0.128E-10,     0., 0.0);
+{ 31240} GHK4009 +GHO                =       G2K4008                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 31241} GHK4009+HV               =       G3K2001 +      GDO2000 +      GHO                     :  0.100E+01*SUN;
+{ 31242} GHK4009+HV               =       G1K4008 +      GHO                                    :  0.100E+01*SUN;
+{ 31243} GKK4001 +GHO                =       GDK4009 +      GHO2                                   : ARR( 0.490E-11,     0., 0.0);
+{ 31244} GKK4001 +GHO                =       G1K400C                                               : ARR( 0.420E-17,    85., 2.0);
+{ 31245} GKK4001+HV               =  2.000G3K2001                                               :  0.100E+01*SUN;
+{ 31246} GGH500e +GHO                =       GGN501K +      GHO                                    : ARR( 0.163E-10,     0., 0.0);
+{ 31247} GGH500e +GHO                =       GGH501v +      GHO2                                   : ARR( 0.105E-10,     0., 0.0);
+{ 31248} GGH500e +GHO                =       G2G501e                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 31249} GGH500e +GHO                =       G3H500J                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 31250} GGH500e+HV               =       G1G500z +      GHO                                    :  0.100E+01*SUN;
+{ 31251} GGH500e+HV               =       G1G501z +      GNO2                                   :  0.100E+01*SUN;
+{ 31252} GGH500e+HV               =       GHD4003 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 31253} G2G501e +GNO                =       G1G500z +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 31254} G2G501e +GNO                =       GGN500E                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 31255} G2G501e +GHO2               =       GGH500e                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 31256} G2G501e +GNO3               =       G1G500z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 31257} G2G501e +MEPERO             =  0.480G1G500z + 0.260GGN500H + 0.260GGN501K                 : ARR( 0.164E-12,  -795., 0.0);
+{ 31258} G2G501e +PERO1              =  0.600G1G500z + 0.200GGN500H + 0.200GGN501K                 : ARR( 0.126E-12,  -850., 0.0);
+{ 31259} G2G501e +PERO2              =  0.560G1G500z + 0.220GGN500H + 0.220GGN501K                 : ARR( 0.471E-13, -1350., 0.0);
+{ 31260} G2G501e +PERO3              =  0.600G1G500z + 0.200GGN500H + 0.200GGN501K                 : ARR( 0.142E-12, -1200., 0.0);
+{ 31261} G2G501e +PERO5              =  0.600G1G500z + 0.200GGN500H + 0.200GGN501K                 : ARR( 0.533E-11,   500., 0.0);
+{ 31262} G2G501e +PERO6              =  0.460G1G500z + 0.270GGN500H + 0.270GGN501K                 : ARR( 0.488E-13, -1250., 0.0);
+{ 31263} G2G501e +PERO9              =  0.800G1G500z + 0.200GGN501K                                : ARR( 0.100E-10,     0., 0.0);
+{ 31264} G1G501z                     =       GGD5002 +      GHO                                    : ARR( 0.160E+12,  2186., 0.0);
+{ 31265} G1G501z                     =       GHD4003 +      GCO     +      GHO2                    : ARR( 0.200E+15,  4949., 0.0);
+{ 31266} GAH500j +GHO                =       GAH5023 +      GHO2                                   : ARR( 0.106E-10,     0., 0.0);
+{ 31267} GAH500j +GHO                =       GAN501P +      GHO                                    : ARR( 0.166E-10,     0., 0.0);
+{ 31268} GAH500j +GHO                =       G2A502A                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 31269} GAH500j+HV               =       G1A502Y +      GNO2                                   :  0.100E+01*SUN;
+{ 31270} GAH500j+HV               =       G1A501I +      GHO                                    :  0.100E+01*SUN;
+{ 31271} G2A502A +GNO                =       G1A501I +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 31272} G2A502A +GNO                =       GAN500G                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 31273} G2A502A +GHO2               =       GAH500j                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 31274} G2A502A +GNO3               =       G1A501I +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 31275} G2A502A +MEPERO             =  0.480G1A501I + 0.260GAN500I + 0.260GAN501P                 : ARR( 0.164E-12,  -795., 0.0);
+{ 31276} G2A502A +PERO1              =  0.600G1A501I + 0.200GAN500I + 0.200GAN501P                 : ARR( 0.126E-12,  -850., 0.0);
+{ 31277} G2A502A +PERO2              =  0.560G1A501I + 0.220GAN500I + 0.220GAN501P                 : ARR( 0.471E-13, -1350., 0.0);
+{ 31278} G2A502A +PERO3              =  0.600G1A501I + 0.200GAN500I + 0.200GAN501P                 : ARR( 0.142E-12, -1200., 0.0);
+{ 31279} G2A502A +PERO5              =  0.600G1A501I + 0.200GAN500I + 0.200GAN501P                 : ARR( 0.533E-11,   500., 0.0);
+{ 31280} G2A502A +PERO6              =  0.460G1A501I + 0.270GAN500I + 0.270GAN501P                 : ARR( 0.488E-13, -1250., 0.0);
+{ 31281} G2A502A +PERO9              =  0.800G1A501I + 0.200GAN501P                                : ARR( 0.100E-10,     0., 0.0);
+{ 31282} G1A502Y                     =       GAD5003 +      GHO                                    : ARR( 0.160E+12,  2186., 0.0);
+{ 31283} G1A502Y                     =       GCO     +      GHD4003 +      GHO                     : ARR( 0.200E+15,  4918., 0.0);
+{ 31284} GPH500j                     =       G3H500J +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 31285} GPH500j +GHO                =       GPN501S +      GHO                                    : ARR( 0.163E-10,     0., 0.0);
+{ 31286} GPH500j +GHO                =       GPH501z +      GHO2                                   : ARR( 0.105E-10,     0., 0.0);
+{ 31287} GPH500j +GHO                =       G2P502H                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 31288} GPH500j+HV               =       G1P501K +      GHO                                    :  0.100E+01*SUN;
+{ 31289} GPH500j+HV               =       G1P502j +      GNO2                                   :  0.100E+01*SUN;
+{ 31290} GPH500j+HV               =       G3H500J +      GNO2                                   :  0.100E+01*SUN;
+{ 31291} G2P502H +GNO                =       G1P501K +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 31292} G2P502H +GNO                =       GPN500G                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 31293} G2P502H +GHO2               =       GPH500j                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 31294} G2P502H +GNO3               =       G1P501K +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 31295} G2P502H +MEPERO             =  0.480G1P501K + 0.260GPN500I + 0.260GPN501S                 : ARR( 0.164E-12,  -795., 0.0);
+{ 31296} G2P502H +PERO1              =  0.600G1P501K + 0.200GPN500I + 0.200GPN501S                 : ARR( 0.126E-12,  -850., 0.0);
+{ 31297} G2P502H +PERO2              =  0.560G1P501K + 0.220GPN500I + 0.220GPN501S                 : ARR( 0.471E-13, -1350., 0.0);
+{ 31298} G2P502H +PERO3              =  0.600G1P501K + 0.200GPN500I + 0.200GPN501S                 : ARR( 0.142E-12, -1200., 0.0);
+{ 31299} G2P502H +PERO5              =  0.600G1P501K + 0.200GPN500I + 0.200GPN501S                 : ARR( 0.533E-11,   500., 0.0);
+{ 31300} G2P502H +PERO6              =  0.460G1P501K + 0.270GPN500I + 0.270GPN501S                 : ARR( 0.488E-13, -1250., 0.0);
+{ 31301} G2P502H +PERO9              =  0.800G1P501K + 0.200GPN501S                                : ARR( 0.100E-10,     0., 0.0);
+{ 31302} G1P502j                     =       GPD5002 +      GHO                                    : ARR( 0.160E+12,  2186., 0.0);
+{ 31303} G1P502j                     =       GHD4003 +      GCO     +      GNO2                    : ARR( 0.200E+15,  4949., 0.0);
+{ 31304} GNN400S +GHO                =       GNN400D +      GHO2                                   : ARR( 0.836E-12,     0., 0.0);
+{ 31305} GNN400S +GHO                =       G1N400s                                               : ARR( 0.218E-17,    85., 2.0);
+{ 31306} GNN400S+HV               =       G1N400a +      GNO2                                   :  0.100E+01*SUN;
+{ 31307} GNN400S+HV               =       G1N400l +      GNO2                                   :  0.100E+01*SUN;
+{ 31308} GNN400S+HV               =       G1N400c +      GNO2                                   :  0.100E+01*SUN;
+{ 31309} GHN400m +GHO                =       GHN400v +      GHO2                                   : ARR( 0.406E-11,     0., 0.0);
+{ 31310} GHN400m +GHO                =       GNN400R +      GHO                                    : ARR( 0.833E-11,     0., 0.0);
+{ 31311} GHN400m +GHO                =       G2N400Y                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 31312} GHN400m+HV               =       G1N400a +      GHO                                    :  0.100E+01*SUN;
+{ 31313} GHN400m+HV               =       G1H401F +      GNO2                                   :  0.100E+01*SUN;
+{ 31314} GHN400m+HV               =       G1H401G +      GNO2                                   :  0.100E+01*SUN;
+{ 31315} G1H401F                     =       GDO2000 +      GND2000 +      GHO                     : ARR( 0.200E+15,  4841., 0.0);
+{ 31316} G1H401G                     =       GHN400h +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{ 31317} GHN504F +GHO                =       GNN502T +      GHO                                    : ARR( 0.325E-11,     0., 0.0);
+{ 31318} GHN504F +GHO                =       G2N503F                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 31319} GHN504F+HV               =       G1H507F +      GNO2                                   :  0.100E+01*SUN;
+{ 31320} GHN504F+HV               =       G1H507G +      GNO2                                   :  0.100E+01*SUN;
+{ 31321} GHN504F+HV               =       G1H507H +      GNO2                                   :  0.100E+01*SUN;
+{ 31322} GHN504F+HV               =       G1N503W +      GHO                                    :  0.100E+01*SUN;
+{ 31323} G1H507F                     =       GNN5013 +      GHO                                    : ARR( 0.160E+12,  2905., 0.0);
+{ 31324} G1H507F                     =       GD02000 +      GHN300A +      GNO2                    : ARR( 0.200E+15,  5979., 0.0);
+{ 31325} G1H507G                     =       GD02000 +      GHN300A +      GNO2                    : ARR( 0.200E+15,  6710., 0.0);
+{ 31326} G1H507G                     =       GND3001 +      GHD2000 +      GNO2                    : ARR( 0.200E+15,  6323., 0.0);
+{ 31327} G1H507H                     =       G2H502p                                               : ARR( 0.240E+12,  4897., 0.0);
+{ 31328} G1H507H                     =       GND3001 +      GHD2000 +      GNO2                    : ARR( 0.200E+15,  6234., 0.0);
+{ 31329} G2H502p +GNO                =       G1H507I +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 31330} G2H502p +GNO                =       GHN504P                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 31331} G2H502p +GHO2               =       GHH502i                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 31332} G2H502p +GNO3               =       G1H507I +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 31333} G2H502p +MEPERO             =  0.480G1H507I + 0.260GHN504T + 0.260GHN505g                 : ARR( 0.164E-12,  -795., 0.0);
+{ 31334} G2H502p +PERO1              =  0.600G1H507I + 0.200GHN504T + 0.200GHN505g                 : ARR( 0.126E-12,  -850., 0.0);
+{ 31335} G2H502p +PERO2              =  0.560G1H507I + 0.220GHN504T + 0.220GHN505g                 : ARR( 0.471E-13, -1350., 0.0);
+{ 31336} G2H502p +PERO3              =  0.600G1H507I + 0.200GHN504T + 0.200GHN505g                 : ARR( 0.142E-12, -1200., 0.0);
+{ 31337} G2H502p +PERO5              =  0.600G1H507I + 0.200GHN504T + 0.200GHN505g                 : ARR( 0.533E-11,   500., 0.0);
+{ 31338} G2H502p +PERO6              =  0.460G1H507I + 0.270GHN504T + 0.270GHN505g                 : ARR( 0.488E-13, -1250., 0.0);
+{ 31339} G2H502p +PERO9              =  0.800G1H507I + 0.200GHN505g                                : ARR( 0.100E-10,     0., 0.0);
+{ 31340} G1H507I                     =       GHN504U +      GHO2                                   : ARR( 0.800E+11,  2744., 0.0);
+{ 31341} GNN502T +GHO                =       G3N501L                                               : ARR( 0.423E-11,     0., 0.0);
+{ 31342} GNN502T +GNO3               =       G3N501L +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 31343} GNN502T+HV               =       G1N503k +      GNO2                                   :  0.100E+01*SUN;
+{ 31344} GNN502T+HV               =       G1N5063 +      GNO2                                   :  0.100E+01*SUN;
+{ 31345} GNN502T+HV               =       G1N5064 +      GNO2                                   :  0.100E+01*SUN;
+{ 31346} GNN502T+HV               =       GNN4007 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 31347} GNN502T+HV               =       GDK3000 +      GND2000 + 2.000GNO2                    :  0.100E+01*SUN;
+{ 31348} G3N501L +GHO2               =  0.800GGN501n + 0.200GAN501b + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 31349} G3N501L +GNO                =       GNN4007 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 31350} G3N501L +GNO2               =       GPN501e                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 31351} G3N501L +GNO3               =       GNN4007 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 31352} G3N501L +MEPERO             =  0.685GNN4007 + 0.315GAN501b + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 31353} G3N501L +PERO1              =  0.800GNN4007 + 0.200GAN501b + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 31354} G3N501L +PERO2              =  0.750GNN4007 + 0.250GAN501b + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 31355} G3N501L +PERO3              =  0.800GNN4007 + 0.200GAN501b + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 31356} G3N501L +PERO5              =  0.650GNN4007 + 0.350GAN501b + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 31357} G3N501L +PERO6              =  0.650GNN4007 + 0.350GAN501b + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 31358} G3N501L +PERO9              =       GNN4007 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 31359} G1N5063                     =       GD02000 +      GND3005 +      GNO2                    : ARR( 0.200E+15,  5880., 0.0);
+{ 31360} G1N5063                     =       GND3001 +      GDD2000 +      GNO2                    : ARR( 0.200E+15,  6455., 0.0);
+{ 31361} G1N5064                     =       GNN4007 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 31362} GHN504G +GHO                =       GHN504H +      GHO2                                   : ARR( 0.434E-12,     0., 0.0);
+{ 31363} GHN504G +GHO                =       GNN502U +      GHO                                    : ARR( 0.339E-11,     0., 0.0);
+{ 31364} GHN504G +GHO                =       G2N503G                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 31365} GHN504G+HV               =       G1H507J +      GNO2                                   :  0.100E+01*SUN;
+{ 31366} GHN504G+HV               =       G1H507K +      GNO2                                   :  0.100E+01*SUN;
+{ 31367} GHN504G+HV               =       G1N503X +      GHO                                    :  0.100E+01*SUN;
+{ 31368} G1H507J                     =       GD02000 +      GHN300A +      GHO2                    : ARR( 0.200E+15,  3232., 0.0);
+{ 31369} G1H507K                     =       GND3001 +      GHD2000 +      GHO2                    : ARR( 0.200E+15,  3486., 0.0);
+{ 31370} GNN502U +GHO                =       GNN502W +      GHO2                                   : ARR( 0.443E-12,     0., 0.0);
+{ 31371} GNN502U +GHO                =       G3N501M                                               : ARR( 0.447E-11,     0., 0.0);
+{ 31372} GNN502U +GNO3               =       G3N501M +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 31373} GNN502U+HV               =       G1N5062 +      GNO2                                   :  0.100E+01*SUN;
+{ 31374} GNN502U+HV               =       G1N5065 +      GNO2                                   :  0.100E+01*SUN;
+{ 31375} GNN502U+HV               =       GND400H +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 31376} GNN502U+HV               =       GDK3000 +      GND2000 +      GHO2    +      GNO2     :  0.100E+01*SUN;
+{ 31377} G3N501M +GHO2               =  0.800GGN501a + 0.200GAN501q + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 31378} G3N501M +GNO                =       GND400H + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 31379} G3N501M +GNO2               =       GPN501t                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 31380} G3N501M +GNO3               =       GND400H + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 31381} G3N501M +MEPERO             =  0.685GND400H + 0.315GAN501q + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 31382} G3N501M +PERO1              =  0.800GND400H + 0.200GAN501q + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 31383} G3N501M +PERO2              =  0.750GND400H + 0.250GAN501q + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 31384} G3N501M +PERO3              =  0.800GND400H + 0.200GAN501q + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 31385} G3N501M +PERO5              =  0.650GND400H + 0.350GAN501q + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 31386} G3N501M +PERO6              =  0.650GND400H + 0.350GAN501q + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 31387} G3N501M +PERO9              =       GND400H +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 31388} G1N5065                     =       GND3001 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  4899., 0.0);
+{ 31389} G1N5065                     =       GND400H +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 31390} GHN504H +GHO                =       GNN502W +      GHO                                    : ARR( 0.329E-11,     0., 0.0);
+{ 31391} GHN504H +GHO                =       G2N503H                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 31392} GHN504H+HV               =       G1H507L +      GNO2                                   :  0.100E+01*SUN;
+{ 31393} GHN504H+HV               =       G3N3001 +      GHD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 31394} GHN504H+HV               =       G1H507M +      GNO2                                   :  0.100E+01*SUN;
+{ 31395} GHN504H+HV               =       G1N503Y +      GHO                                    :  0.100E+01*SUN;
+{ 31396} G1H507L                     =       GD02000 +      G3H3005                                : ARR( 0.200E+15,  2814., 0.0);
+{ 31397} G1H507M                     =       G3N3001 +      GHD2000                                : ARR( 0.200E+15,  3069., 0.0);
+{ 31398} GNN502W +GHO                =       G3N501N                                               : ARR( 0.429E-11,     0., 0.0);
+{ 31399} GNN502W +GNO3               =       G3N501N +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 31400} GNN502W+HV               =       G1N505l +      GNO2                                   :  0.100E+01*SUN;
+{ 31401} GNN502W+HV               =       G3N3001 +      GDD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 31402} GNN502W+HV               =       G1N5066 +      GNO2                                   :  0.100E+01*SUN;
+{ 31403} GNN502W+HV               =       GND400I +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 31404} G3N501N +GHO2               =  0.800GGN501h + 0.200GAN501u + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 31405} G3N501N +GNO                =       GND400I + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 31406} G3N501N +GNO2               =       GPN5022                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 31407} G3N501N +GNO3               =       GND400I + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 31408} G3N501N +MEPERO             =  0.685GND400I + 0.315GAN501u + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 31409} G3N501N +PERO1              =  0.800GND400I + 0.200GAN501u + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 31410} G3N501N +PERO2              =  0.750GND400I + 0.250GAN501u + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 31411} G3N501N +PERO3              =  0.800GND400I + 0.200GAN501u + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 31412} G3N501N +PERO5              =  0.650GND400I + 0.350GAN501u + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 31413} G3N501N +PERO6              =  0.650GND400I + 0.350GAN501u + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 31414} G3N501N +PERO9              =       GND400I +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 31415} G1N5066                     =       G3N3001 +      GDD2000                                : ARR( 0.200E+15,  4953., 0.0);
+{ 31416} GN03001 +GHO                =       G2N3001                                               : ARR( 0.287E-12,   230., 0.0);
+{ 31417} GN03001 +GHO                =       GK03000 +      GNO2                                   : ARR( 0.333E-12,   230., 0.0);
+{ 31418} GN03001+HV               =       G103001 +      GNO2                                   :  0.100E+01*SUN;
+{ 31419} GHN504I +GHO                =       GNN502X +      GHO                                    : ARR( 0.986E-11,     0., 0.0);
+{ 31420} GHN504I +GHO                =       G2N503I                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 31421} GHN504I+HV               =       G1H507N +      GNO2                                   :  0.100E+01*SUN;
+{ 31422} GHN504I+HV               =       G1H507O +      GNO2                                   :  0.100E+01*SUN;
+{ 31423} GHN504I+HV               =       G3N4009 +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 31424} GHN504I+HV               =       G2D2000 +      GHN3008 +      GNO2                    :  0.100E+01*SUN;
+{ 31425} GHN504I+HV               =       G1N503Z +      GHO                                    :  0.100E+01*SUN;
+{ 31426} G1H507N                     =       GND500v +      GHO                                    : ARR( 0.160E+12,  4168., 0.0);
+{ 31427} G1H507N                     =       GD02000 +      GHD3001 +      GNO2                    : ARR( 0.200E+15,  6261., 0.0);
+{ 31428} G1H507O                     =       GND3001 +      G3H2000                                : ARR( 0.200E+15,  3009., 0.0);
+{ 31429} GNN502X +GHO                =       G3N4009 +      GCO                                    : ARR( 0.127E-10,     0., 0.0);
+{ 31430} GNN502X +GNO3               =       G3N4009 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 31431} GNN502X+HV               =       G1N5067 +      GNO2                                   :  0.100E+01*SUN;
+{ 31432} GNN502X+HV               =       G1N5068 +      GNO2                                   :  0.100E+01*SUN;
+{ 31433} GNN502X+HV               =       G3N4009 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 31434} GNN502X+HV               =       GNN4007 +      GCO                                    :  0.100E+01*SUN;
+{ 31435} GNN502X+HV               =       GNN3001 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 31436} G1N5067                     =       GD02000 +      GDD3002 +      GNO2                    : ARR( 0.200E+15,  5840., 0.0);
+{ 31437} G1N5068                     =       GND3001 +      G3D2000                                : ARR( 0.200E+15,  3233., 0.0);
+{ 31438} GHN504J +GHO                =       GNN502Y +      GHO                                    : ARR( 0.328E-11,     0., 0.0);
+{ 31439} GHN504J +GHO                =       G2N503J                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 31440} GHN504J+HV               =       G3K2000 +      GHN300A +      GNO2                    :  0.100E+01*SUN;
+{ 31441} GHN504J+HV               =       GNK3000 +      GDD2000 +      GHO     +      GNO2     :  0.100E+01*SUN;
+{ 31442} GHN504J+HV               =       G1H507P +      GNO2                                   :  0.100E+01*SUN;
+{ 31443} GHN504J+HV               =       G1H507Q +      GNO2                                   :  0.100E+01*SUN;
+{ 31444} GHN504J+HV               =       G1N503a +      GHO                                    :  0.100E+01*SUN;
+{ 31445} G1H507P                     =       G3K2000 +      GHN300A                                : ARR( 0.200E+15,  2923., 0.0);
+{ 31446} G1H507Q                     =       GDK3000 +      GHD2000 +      GNO2                    : ARR( 0.200E+15,  6515., 0.0);
+{ 31447} G1H507Q                     =       GND4008 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  6565., 0.0);
+{ 31448} GNN502Y +GHO                =       G3N501O                                               : ARR( 0.429E-11,     0., 0.0);
+{ 31449} GNN502Y +GNO3               =       G3N501O +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 31450} GNN502Y+HV               =       G3K2000 +      GND3005 +      GNO2                    :  0.100E+01*SUN;
+{ 31451} GNN502Y+HV               =       G1N5069 +      GNO2                                   :  0.100E+01*SUN;
+{ 31452} GNN502Y+HV               =       G1N506A +      GNO2                                   :  0.100E+01*SUN;
+{ 31453} GNN502Y+HV               =       GND4008 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 31454} G3N501O +GHO2               =  0.800GGN501o + 0.200GAN501f + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 31455} G3N501O +GNO                =       GND4008 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 31456} G3N501O +GNO2               =       GPN501m                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 31457} G3N501O +GNO3               =       GND4008 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 31458} G3N501O +MEPERO             =  0.685GND4008 + 0.315GAN501f + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 31459} G3N501O +PERO1              =  0.800GND4008 + 0.200GAN501f + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 31460} G3N501O +PERO2              =  0.750GND4008 + 0.250GAN501f + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 31461} G3N501O +PERO3              =  0.800GND4008 + 0.200GAN501f + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 31462} G3N501O +PERO5              =  0.650GND4008 + 0.350GAN501f + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 31463} G3N501O +PERO6              =  0.650GND4008 + 0.350GAN501f + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 31464} G3N501O +PERO9              =       GND4008 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 31465} G1N5069                     =       G3K2000 +      GND3005                                : ARR( 0.200E+15,  2093., 0.0);
+{ 31466} G1N506A                     =       GND4008 +      GCO     +      GHO2                    : ARR( 0.200E+15,  4861., 0.0);
+{ 31467} GGN400F +GHO                =       G3N4009                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 31468} GGN400F+HV               =       G1G400B +      GNO2                                   :  0.100E+01*SUN;
+{ 31469} GGN400F+HV               =       G1G400X +      GNO2                                   :  0.100E+01*SUN;
+{ 31470} GGN400F+HV               =       GND3001 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 31471} G1G400X                     =       GND3001 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 31472} GAN400F +GHO                =       G2A400b                                               : ARR( 0.353E-13,     0., 0.0);
+{ 31473} GAN400F +GHO                =       GND3001 +      GNO2    +      GCO2                    : ARR( 0.548E-12,     0., 0.0);
+{ 31474} GAN400F+HV               =       G1A400G +      GNO2                                   :  0.100E+01*SUN;
+{ 31475} GAN400F+HV               =       G1A400A +      GNO2                                   :  0.100E+01*SUN;
+{ 31476} G2A400b +GNO                =       G1A400f +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 31477} G2A400b +GNO                =       GAN400Q                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 31478} G2A400b +GHO2               =       GAH400i                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 31479} G2A400b +GNO3               =       G1A400f +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 31480} G2A400b +MEPERO             =  0.480G1A400f + 0.260GAN400I + 0.260GAN400Y                 : ARR( 0.164E-12,  -795., 0.0);
+{ 31481} G2A400b +PERO1              =  0.600G1A400f + 0.200GAN400I + 0.200GAN400Y                 : ARR( 0.126E-12,  -850., 0.0);
+{ 31482} G2A400b +PERO2              =  0.560G1A400f + 0.220GAN400I + 0.220GAN400Y                 : ARR( 0.471E-13, -1350., 0.0);
+{ 31483} G2A400b +PERO3              =  0.600G1A400f + 0.200GAN400I + 0.200GAN400Y                 : ARR( 0.142E-12, -1200., 0.0);
+{ 31484} G2A400b +PERO5              =  0.600G1A400f + 0.200GAN400I + 0.200GAN400Y                 : ARR( 0.533E-11,   500., 0.0);
+{ 31485} G2A400b +PERO6              =  0.460G1A400f + 0.270GAN400I + 0.270GAN400Y                 : ARR( 0.488E-13, -1250., 0.0);
+{ 31486} G2A400b +PERO9              =  0.800G1A400f + 0.200GAN400Y                                : ARR( 0.100E-10,     0., 0.0);
+{ 31487} G1A400f +OXYGEN             =       GAN400Y +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 31488} G1A400f                     =       GAN3006 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7175., 0.0);
+{ 31489} GPN400F                     =       G3N4009 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 31490} GPN400F +GHO                =       G2P400d                                               : ARR( 0.335E-13,     0., 0.0);
+{ 31491} GPN400F +GHO                =       GPN400M +      GNO2                                   : ARR( 0.191E-13,     0., 0.0);
+{ 31492} GPN400F +GHO                =       GPN400I +      GNO2                                   : ARR( 0.144E-13,     0., 0.0);
+{ 31493} GPN400F+HV               =       G1P400G +      GNO2                                   :  0.100E+01*SUN;
+{ 31494} GPN400F+HV               =       G1P400B +      GNO2                                   :  0.100E+01*SUN;
+{ 31495} GPN400F+HV               =       G3N4009 +      GNO2                                   :  0.100E+01*SUN;
+{ 31496} G2P400d +GNO                =       G1P400g +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 31497} G2P400d +GNO                =       GPN400R                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 31498} G2P400d +GHO2               =       GPH400j                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 31499} G2P400d +GNO3               =       G1P400g +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 31500} G2P400d +MEPERO             =  0.480G1P400g + 0.260GPN400J + 0.260GPN400Z                 : ARR( 0.164E-12,  -795., 0.0);
+{ 31501} G2P400d +PERO1              =  0.600G1P400g + 0.200GPN400J + 0.200GPN400Z                 : ARR( 0.126E-12,  -850., 0.0);
+{ 31502} G2P400d +PERO2              =  0.560G1P400g + 0.220GPN400J + 0.220GPN400Z                 : ARR( 0.471E-13, -1350., 0.0);
+{ 31503} G2P400d +PERO3              =  0.600G1P400g + 0.200GPN400J + 0.200GPN400Z                 : ARR( 0.142E-12, -1200., 0.0);
+{ 31504} G2P400d +PERO5              =  0.600G1P400g + 0.200GPN400J + 0.200GPN400Z                 : ARR( 0.533E-11,   500., 0.0);
+{ 31505} G2P400d +PERO6              =  0.460G1P400g + 0.270GPN400J + 0.270GPN400Z                 : ARR( 0.488E-13, -1250., 0.0);
+{ 31506} G2P400d +PERO9              =  0.800G1P400g + 0.200GPN400Z                                : ARR( 0.100E-10,     0., 0.0);
+{ 31507} G1P400g +OXYGEN             =       GPN400Z +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 31508} G1P400g                     =       GPN3006 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7175., 0.0);
+{ 31509} GGH400B +GHO                =       GGN400T +      GHO                                    : ARR( 0.508E-11,     0., 0.0);
+{ 31510} GGH400B +GHO                =       G2G400Q                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 31511} GGH400B +GHO                =       G3H4008                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 31512} GGH400B+HV               =       G1G400Y +      GNO2                                   :  0.100E+01*SUN;
+{ 31513} GGH400B+HV               =       G1G400X +      GHO                                    :  0.100E+01*SUN;
+{ 31514} GGH400B+HV               =       GND3001 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 31515} G2G400Q +GNO                =       G1G400X +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 31516} G2G400Q +GNO                =       GGN400F                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 31517} G2G400Q +GHO2               =       GGH400B                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 31518} G2G400Q +GNO3               =       G1G400X +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 31519} G2G400Q +MEPERO             =  0.340G1G400X + 0.330GGN400G + 0.330GGN400T                 : ARR( 0.565E-13,  -845., 0.0);
+{ 31520} G2G400Q +PERO1              =  0.460G1G400X + 0.270GGN400G + 0.270GGN400T                 : ARR( 0.434E-13,  -900., 0.0);
+{ 31521} G2G400Q +PERO2              =  0.400G1G400X + 0.300GGN400G + 0.300GGN400T                 : ARR( 0.162E-13, -1400., 0.0);
+{ 31522} G2G400Q +PERO3              =  0.460G1G400X + 0.270GGN400G + 0.270GGN400T                 : ARR( 0.488E-13, -1250., 0.0);
+{ 31523} G2G400Q +PERO5              =  0.460G1G400X + 0.270GGN400G + 0.270GGN400T                 : ARR( 0.183E-11,   450., 0.0);
+{ 31524} G2G400Q +PERO6              =  0.300G1G400X + 0.350GGN400G + 0.350GGN400T                 : ARR( 0.168E-13, -1300., 0.0);
+{ 31525} G2G400Q +PERO9              =  0.650G1G400X + 0.350GGN400T                                : ARR( 0.100E-10,     0., 0.0);
+{ 31526} G1G400Y                     =       GD02000 +      GGD2000 +      GHO                     : ARR( 0.200E+15,  4943., 0.0);
+{ 31527} GAH400B +GHO                =       GAN400H +      GHO                                    : ARR( 0.378E-11,     0., 0.0);
+{ 31528} GAH400B +GHO                =       G2A4009                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 31529} GAH400B +GHO                =       GND3001 +      GHO     +      GCO2                    : ARR( 0.529E-12,     0., 0.0);
+{ 31530} GAH400B+HV               =       G1A400g +      GNO2                                   :  0.100E+01*SUN;
+{ 31531} GAH400B+HV               =       G1A400A +      GHO                                    :  0.100E+01*SUN;
+{ 31532} G1A400g                     =       GD02000 +      GAD2000 +      GHO                     : ARR( 0.200E+15,  4943., 0.0);
+{ 31533} GPH400B                     =       G3H4008 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 31534} GPH400B +GHO                =       GPN400I +      GHO                                    : ARR( 0.510E-11,     0., 0.0);
+{ 31535} GPH400B +GHO                =       G2P400A                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 31536} GPH400B+HV               =       G1P400h +      GNO2                                   :  0.100E+01*SUN;
+{ 31537} GPH400B+HV               =       G1P400B +      GHO                                    :  0.100E+01*SUN;
+{ 31538} GPH400B+HV               =       G3H4008 +      GNO2                                   :  0.100E+01*SUN;
+{ 31539} G1P400h                     =       GD02000 +      GPD2000 +      GHO                     : ARR( 0.200E+15,  4943., 0.0);
+{ 31540} GHN504K +GHO                =       GHN504L +      GHO2                                   : ARR( 0.130E-11,     0., 0.0);
+{ 31541} GHN504K +GHO                =       GND500y +      GHO                                    : ARR( 0.101E-10,     0., 0.0);
+{ 31542} GHN504K +GHO                =       G2N503K                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 31543} GHN504K+HV               =       G1H507R +      GNO2                                   :  0.100E+01*SUN;
+{ 31544} GHN504K+HV               =       G3N400A +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 31545} GHN504K+HV               =       G1N503b +      GHO                                    :  0.100E+01*SUN;
+{ 31546} G1H507R                     =       GD02000 +      GHD3001 +      GHO2                    : ARR( 0.200E+15,  3513., 0.0);
+{ 31547} GND500y +GHO                =       GND500z +      GHO2                                   : ARR( 0.130E-11,     0., 0.0);
+{ 31548} GND500y +GHO                =       G3N400A +      GCO                                    : ARR( 0.131E-10,     0., 0.0);
+{ 31549} GND500y +GNO3               =       G3N400A +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 31550} GND500y+HV               =       G1D5019 +      GNO2                                   :  0.100E+01*SUN;
+{ 31551} GND500y+HV               =       G3N400A +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 31552} GND500y+HV               =       GND400H +      GCO                                    :  0.100E+01*SUN;
+{ 31553} GND500y+HV               =       GNO3001 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 31554} GGN400G +GHO                =       GGN400T +      GHO2                                   : ARR( 0.133E-11,     0., 0.0);
+{ 31555} GGN400G +GHO                =       G3N400A                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 31556} GGN400G+HV               =       G1G400C +      GNO2                                   :  0.100E+01*SUN;
+{ 31557} GGN400G+HV               =       GND3001 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 31558} GAN400G +GHO                =       GAK4005 +      GNO2                                   : ARR( 0.976E-13,     0., 0.0);
+{ 31559} GAN400G +GHO                =       GAN400H +      GHO2                                   : ARR( 0.948E-12,     0., 0.0);
+{ 31560} GAN400G +GHO                =       G1A400A                                               : ARR( 0.214E-17,    85., 2.0);
+{ 31561} GAN400G +GHO                =       GND3001 +      GHO2    +      GCO2                    : ARR( 0.530E-12,     0., 0.0);
+{ 31562} GAN400G+HV               =       G1A400H +      GNO2                                   :  0.100E+01*SUN;
+{ 31563} GPN400G                     =       G3N400A +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 31564} GPN400G +GHO                =       GPK4005 +      GNO2                                   : ARR( 0.979E-13,     0., 0.0);
+{ 31565} GPN400G +GHO                =       GPN400I +      GHO2                                   : ARR( 0.128E-11,     0., 0.0);
+{ 31566} GPN400G +GHO                =       G1P400B                                               : ARR( 0.215E-17,    85., 2.0);
+{ 31567} GPN400G+HV               =       G1P400H +      GNO2                                   :  0.100E+01*SUN;
+{ 31568} GPN400G+HV               =       G3N400A +      GNO2                                   :  0.100E+01*SUN;
+{ 31569} GHN504L +GHO                =       GND500z +      GHO                                    : ARR( 0.987E-11,     0., 0.0);
+{ 31570} GHN504L +GHO                =       G2N503L                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 31571} GHN504L+HV               =       G1H507S +      GNO2                                   :  0.100E+01*SUN;
+{ 31572} GHN504L+HV               =       G3N3001 +      G3H2000                                :  0.100E+01*SUN;
+{ 31573} GHN504L+HV               =       G1N503c +      GHO                                    :  0.100E+01*SUN;
+{ 31574} G1H507S                     =       GD02000 +      G3H2000 +      GCO                     : ARR( 0.200E+15,  3071., 0.0);
+{ 31575} GND500z +GHO                =       G3N3001 + 2.000GCO                                    : ARR( 0.128E-10,     0., 0.0);
+{ 31576} GND500z +GNO3               =       G3N3001 +      GHNO3   + 2.000GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 31577} GND500z+HV               =       G1D500d +      GNO2                                   :  0.100E+01*SUN;
+{ 31578} GND500z+HV               =       G3N3001 +      G3D2000                                :  0.100E+01*SUN;
+{ 31579} GND500z+HV               =       G3N3001 +      GCO     +      GCO     +      GHO2     :  0.100E+01*SUN;
+{ 31580} GND500z+HV               =       GND400I +      GCO                                    :  0.100E+01*SUN;
+{ 31581} GND500z+HV               =       GND3001 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 31582} GHN504M +GHO                =       GND5011 +      GHO                                    : ARR( 0.330E-11,     0., 0.0);
+{ 31583} GHN504M +GHO                =       G2N503M                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 31584} GHN504M+HV               =       G3K2000 +      G3H3005                                :  0.100E+01*SUN;
+{ 31585} GHN504M+HV               =       G1H507T +      GNO2                                   :  0.100E+01*SUN;
+{ 31586} GHN504M+HV               =       G1N503d +      GHO                                    :  0.100E+01*SUN;
+{ 31587} G1H507T                     =       G3K2000 +      GHD2000 +      GCO                     : ARR( 0.200E+15,  3326., 0.0);
+{ 31588} GND5011 +GHO                =       G3N501P                                               : ARR( 0.430E-11,     0., 0.0);
+{ 31589} GND5011 +GNO3               =       G3N501P +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 31590} GND5011+HV               =       G3K2000 +      G3N3005                                :  0.100E+01*SUN;
+{ 31591} GND5011+HV               =       G1D501C +      GNO2                                   :  0.100E+01*SUN;
+{ 31592} GND5011+HV               =       GDK4008 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 31593} G3N501P +GHO2               =  0.800GGN501k + 0.200GAN501x + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 31594} G3N501P +GNO                =       GDK4008 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 31595} G3N501P +GNO2               =       GPN5028                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 31596} G3N501P +GNO3               =       GDK4008 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 31597} G3N501P +MEPERO             =  0.685GDK4008 + 0.315GAN501x + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 31598} G3N501P +PERO1              =  0.800GDK4008 + 0.200GAN501x + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 31599} G3N501P +PERO2              =  0.750GDK4008 + 0.250GAN501x + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 31600} G3N501P +PERO3              =  0.800GDK4008 + 0.200GAN501x + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 31601} G3N501P +PERO5              =  0.650GDK4008 + 0.350GAN501x + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 31602} G3N501P +PERO6              =  0.650GDK4008 + 0.350GAN501x + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 31603} G3N501P +PERO9              =       GDK4008 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 31604} G1D501C                     =       G3K2000 +      GDD2000 +      GCO                     : ARR( 0.200E+15,  5210., 0.0);
+{ 31605} GAN400H +GHO                =       G2A400c                                               : ARR( 0.335E-13,     0., 0.0);
+{ 31606} GAN400H +GHO                =       GAK4006 +      GNO2                                   : ARR( 0.584E-13,     0., 0.0);
+{ 31607} GAN400H +GHO                =       G3N3001 +      GCO2                                   : ARR( 0.520E-12,     0., 0.0);
+{ 31608} GAN400H+HV               =       G1A400a +      GNO2                                   :  0.100E+01*SUN;
+{ 31609} GAN400H+HV               =       GND3001 +      GCO2                                   :  0.100E+01*SUN;
+{ 31610} G2A400c +GNO                =       G1A400h +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 31611} G2A400c +GNO                =       GAN400T                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 31612} G2A400c +GHO2               =       GAH400j                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 31613} G2A400c +GNO3               =       G1A400h +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 31614} G2A400c +MEPERO             =  0.480G1A400h + 0.260GAN400L + 0.260GAN400Z                 : ARR( 0.164E-12,  -795., 0.0);
+{ 31615} G2A400c +PERO1              =  0.600G1A400h + 0.200GAN400L + 0.200GAN400Z                 : ARR( 0.126E-12,  -850., 0.0);
+{ 31616} G2A400c +PERO2              =  0.560G1A400h + 0.220GAN400L + 0.220GAN400Z                 : ARR( 0.471E-13, -1350., 0.0);
+{ 31617} G2A400c +PERO3              =  0.600G1A400h + 0.200GAN400L + 0.200GAN400Z                 : ARR( 0.142E-12, -1200., 0.0);
+{ 31618} G2A400c +PERO5              =  0.600G1A400h + 0.200GAN400L + 0.200GAN400Z                 : ARR( 0.533E-11,   500., 0.0);
+{ 31619} G2A400c +PERO6              =  0.460G1A400h + 0.270GAN400L + 0.270GAN400Z                 : ARR( 0.488E-13, -1250., 0.0);
+{ 31620} G2A400c +PERO9              =  0.800G1A400h + 0.200GAN400Z                                : ARR( 0.100E-10,     0., 0.0);
+{ 31621} G1A400h +OXYGEN             =       GAN400Z +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 31622} G1A400h                     =       GAD3002 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  6903., 0.0);
+{ 31623} GPH400C                     =       G3H400E +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 31624} GPH400C +GHO                =       GPN400H +      GHO                                    : ARR( 0.335E-11,     0., 0.0);
+{ 31625} GPH400C +GHO                =       G2P4009                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 31626} GPH400C+HV               =       G1P400A +      GHO                                    :  0.100E+01*SUN;
+{ 31627} GPH400C+HV               =       G1P400a +      GNO2                                   :  0.100E+01*SUN;
+{ 31628} GPH400C+HV               =       G3H400E +      GNO2                                   :  0.100E+01*SUN;
+{ 31629} GPN400H                     =       G3N400H +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 31630} GPN400H +GHO                =       G3P4001                                               : ARR( 0.440E-11,     0., 0.0);
+{ 31631} GPN400H +GNO3               =       G3P4001 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 31632} GPN400H+HV               =       G3N400H +      GNO2                                   :  0.100E+01*SUN;
+{ 31633} GPN400H+HV               =       G1P400i +      GNO2                                   :  0.100E+01*SUN;
+{ 31634} GPN400H+HV               =       GPD3000 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 31635} G1P400i                     =       GPD3000 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5054., 0.0);
+{ 31636} GPN400I                     =       G3N400S +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 31637} GPN400I +GHO                =       G2P400e                                               : ARR( 0.335E-13,     0., 0.0);
+{ 31638} GPN400I +GHO                =       GPK4006 +      GNO2                                   : ARR( 0.584E-13,     0., 0.0);
+{ 31639} GPN400I+HV               =       G1P400b +      GNO2                                   :  0.100E+01*SUN;
+{ 31640} GPN400I+HV               =       G3N3001 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 31641} G3N400S +GHO2               =  0.800GGN400T + 0.200GAN400H + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 31642} G3N400S +GNO                =       G3N3001 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 31643} G3N400S +GNO2               =       GPN400I                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 31644} G3N400S +GNO3               =       G3N3001 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 31645} G3N400S +MEPERO             =  0.685G3N3001 + 0.315GAN400H + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 31646} G3N400S +PERO1              =  0.800G3N3001 + 0.200GAN400H + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 31647} G3N400S +PERO2              =  0.750G3N3001 + 0.250GAN400H + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 31648} G3N400S +PERO3              =  0.800G3N3001 + 0.200GAN400H + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 31649} G3N400S +PERO5              =  0.650G3N3001 + 0.350GAN400H + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 31650} G3N400S +PERO6              =  0.650G3N3001 + 0.350GAN400H + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 31651} G3N400S +PERO9              =       G3N3001 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 31652} G2P400e +GNO                =       G1P400j +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 31653} G2P400e +GNO                =       GPN400U                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 31654} G2P400e +GHO2               =       GPH400k                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 31655} G2P400e +GNO3               =       G1P400j +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 31656} G2P400e +MEPERO             =  0.480G1P400j + 0.260GPN400L + 0.260GPN400a                 : ARR( 0.164E-12,  -795., 0.0);
+{ 31657} G2P400e +PERO1              =  0.600G1P400j + 0.200GPN400L + 0.200GPN400a                 : ARR( 0.126E-12,  -850., 0.0);
+{ 31658} G2P400e +PERO2              =  0.560G1P400j + 0.220GPN400L + 0.220GPN400a                 : ARR( 0.471E-13, -1350., 0.0);
+{ 31659} G2P400e +PERO3              =  0.600G1P400j + 0.200GPN400L + 0.200GPN400a                 : ARR( 0.142E-12, -1200., 0.0);
+{ 31660} G2P400e +PERO5              =  0.600G1P400j + 0.200GPN400L + 0.200GPN400a                 : ARR( 0.533E-11,   500., 0.0);
+{ 31661} G2P400e +PERO6              =  0.460G1P400j + 0.270GPN400L + 0.270GPN400a                 : ARR( 0.488E-13, -1250., 0.0);
+{ 31662} G2P400e +PERO9              =  0.800G1P400j + 0.200GPN400a                                : ARR( 0.100E-10,     0., 0.0);
+{ 31663} G1P400j +OXYGEN             =       GPN400a +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 31664} G1P400j                     =       GPD3002 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  6903., 0.0);
+{ 31665} GHN400n +GHO                =       GNN4007 +      GHO                                    : ARR( 0.325E-11,     0., 0.0);
+{ 31666} GHN400n +GHO                =       G2N400Z                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 31667} GHN400n+HV               =       G1H401H +      GNO2                                   :  0.100E+01*SUN;
+{ 31668} GHN400n+HV               =       G1H401I +      GNO2                                   :  0.100E+01*SUN;
+{ 31669} GHN400n+HV               =       G1N400b +      GHO                                    :  0.100E+01*SUN;
+{ 31670} G1H401H                     =       GD02000 +      GHD2000 +      GNO2                    : ARR( 0.200E+15,  6128., 0.0);
+{ 31671} G1H401I                     =       GD02000 +      GHD2000 +      GNO2                    : ARR( 0.200E+15,  6770., 0.0);
+{ 31672} G1H401I                     =       GND3001 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  7395., 0.0);
+{ 31673} GHN400o +GHO                =       GHN4013 +      GHO2                                   : ARR( 0.824E-12,     0., 0.0);
+{ 31674} GHN400o +GHO                =       GNN400E +      GHO                                    : ARR( 0.330E-11,     0., 0.0);
+{ 31675} GHN400o +GHO                =       G2N400a                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 31676} GHN400o+HV               =       G1H401J +      GNO2                                   :  0.100E+01*SUN;
+{ 31677} GHN400o+HV               =       G1H401K +      GNO2                                   :  0.100E+01*SUN;
+{ 31678} GHN400o+HV               =       G1N400c +      GHO                                    :  0.100E+01*SUN;
+{ 31679} G1H401J                     =       GCH2O   +      GHN300A +      GHO2                    : ARR( 0.200E+15,  5296., 0.0);
+{ 31680} G1H401J                     =       GDO2000 +      GHD2000 +      GNO2                    : ARR( 0.200E+15,  6382., 0.0);
+{ 31681} G1H401K                     =       GDO2000 +      GHD2000 +      GNO2                    : ARR( 0.200E+15,  6382., 0.0);
+{ 31682} G1H401K                     =       GND3004 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  7395., 0.0);
+{ 31683} GHH501a +GHO                =       GHN504a +      GHO                                    : ARR( 0.879E-11,     0., 0.0);
+{ 31684} GHH501a +GHO                =       GHN502x +      GHO                                    : ARR( 0.172E-10,     0., 0.0);
+{ 31685} GHH501a +GHO                =       G2H502q                                               : ARR( 0.203E-11,  -190., 0.0);
+{ 31686} GHH501a +GHO                =       G2H501d                                               : ARR( 0.203E-11,  -190., 0.0);
+{ 31687} GHH501a+HV               =       G1H507U +      GNO2                                   :  0.100E+01*SUN;
+{ 31688} GHH501a+HV               =       G1H5031 +      GHO                                    :  0.100E+01*SUN;
+{ 31689} GHH501a+HV               =       G1H502v +      GHO                                    :  0.100E+01*SUN;
+{ 31690} G2H502q +GNO                =       G1H5031 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 31691} G2H502q +GNO                =       GHN501X                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 31692} G2H502q +GHO2               =       GHH501a                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 31693} G2H502q +GNO3               =       G1H5031 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 31694} G2H502q +MEPERO             =  0.340G1H5031 + 0.330GHN501g + 0.330GHN504a                 : ARR( 0.565E-13,  -845., 0.0);
+{ 31695} G2H502q +PERO1              =  0.460G1H5031 + 0.270GHN501g + 0.270GHN504a                 : ARR( 0.434E-13,  -900., 0.0);
+{ 31696} G2H502q +PERO2              =  0.400G1H5031 + 0.300GHN501g + 0.300GHN504a                 : ARR( 0.162E-13, -1400., 0.0);
+{ 31697} G2H502q +PERO3              =  0.460G1H5031 + 0.270GHN501g + 0.270GHN504a                 : ARR( 0.488E-13, -1250., 0.0);
+{ 31698} G2H502q +PERO5              =  0.460G1H5031 + 0.270GHN501g + 0.270GHN504a                 : ARR( 0.183E-11,   450., 0.0);
+{ 31699} G2H502q +PERO6              =  0.300G1H5031 + 0.350GHN501g + 0.350GHN504a                 : ARR( 0.168E-13, -1300., 0.0);
+{ 31700} G2H502q +PERO9              =  0.650G1H5031 + 0.350GHN504a                                : ARR( 0.100E-10,     0., 0.0);
+{ 31701} G1H507U                     =       GD02000 +      GHH3005 +      GHO2                    : ARR( 0.200E+15,  3962., 0.0);
+{ 31702} G1H507U                     =       GDO3001 +      GHD2000 +      GHO                     : ARR( 0.200E+15,  4784., 0.0);
+{ 31703} GHN504N +GHO                =       GHN504I +      GHO2                                   : ARR( 0.208E-11,     0., 0.0);
+{ 31704} GHN504N +GHO                =       GNN502Z +      GHO                                    : ARR( 0.162E-10,     0., 0.0);
+{ 31705} GHN504N +GHO                =       G2N503N                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 31706} GHN504N+HV               =       G1H507W +      GNO2                                   :  0.100E+01*SUN;
+{ 31707} GHN504N+HV               =       G1H507X +      GNO2                                   :  0.100E+01*SUN;
+{ 31708} GHN504N+HV               =       G1N503h +      GHO                                    :  0.100E+01*SUN;
+{ 31709} G1H507W                     =       GND500P +      GHO                                    : ARR( 0.160E+12,  2186., 0.0);
+{ 31710} G1H507X                     =       GND3001 +      GHD2000 +      GHO2                    : ARR( 0.200E+15,  3575., 0.0);
+{ 31711} GNN502Z +GHO                =       GNN502X +      GHO2                                   : ARR( 0.127E-11,     0., 0.0);
+{ 31712} GNN502Z +GHO                =       G3N501Q                                               : ARR( 0.210E-10,     0., 0.0);
+{ 31713} GNN502Z +GNO3               =       G3N501Q +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 31714} GNN502Z+HV               =       G1N506B +      GNO2                                   :  0.100E+01*SUN;
+{ 31715} GNN502Z+HV               =       G1N506C +      GNO2                                   :  0.100E+01*SUN;
+{ 31716} GNN502Z+HV               =       GNN4007 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 31717} G3N501Q +GHO2               =  0.800GGN501r + 0.200GAN501c + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 31718} G3N501Q +GNO                =       GNN4007 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 31719} G3N501Q +GNO2               =       GPN501f                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 31720} G3N501Q +GNO3               =       GNN4007 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 31721} G3N501Q +MEPERO             =  0.685GNN4007 + 0.315GAN501c + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 31722} G3N501Q +PERO1              =  0.800GNN4007 + 0.200GAN501c + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 31723} G3N501Q +PERO2              =  0.750GNN4007 + 0.250GAN501c + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 31724} G3N501Q +PERO3              =  0.800GNN4007 + 0.200GAN501c + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 31725} G3N501Q +PERO5              =  0.650GNN4007 + 0.350GAN501c + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 31726} G3N501Q +PERO6              =  0.650GNN4007 + 0.350GAN501c + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 31727} G3N501Q +PERO9              =       GNN4007 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 31728} G1N506B                     =       G3N500T                                               : ARR( 0.800E+11,  4559., 0.0);
+{ 31729} G1N506B                     =       GD02000 +      GDD3001 +      GNO2                    : ARR( 0.200E+15,  6112., 0.0);
+{ 31730} G1N506C                     =       GND3001 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  3708., 0.0);
+{ 31731} GHH501b +GHO                =       GHN5046 +      GHO                                    : ARR( 0.171E-10,     0., 0.0);
+{ 31732} GHH501b +GHO                =       GHN501G +      GHO                                    : ARR( 0.171E-10,     0., 0.0);
+{ 31733} GHH501b +GHO                =       G2H502r                                               : ARR( 0.203E-11,  -190., 0.0);
+{ 31734} GHH501b +GHO                =       G2H501e                                               : ARR( 0.203E-11,  -190., 0.0);
+{ 31735} GHH501b+HV               =       G1H501M +      GHO                                    :  0.100E+01*SUN;
+{ 31736} GHH501b+HV               =       G1H507Y +      GNO2                                   :  0.100E+01*SUN;
+{ 31737} GHH501b+HV               =       G1H502y +      GHO                                    :  0.100E+01*SUN;
+{ 31738} G2H502r +GNO                =       G1H501M +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 31739} G2H502r +GNO                =       GHN500d                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 31740} G2H502r +GHO2               =       GHH501b                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 31741} G2H502r +GNO3               =       G1H501M +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 31742} G2H502r +MEPERO             =  0.480G1H501M + 0.260GHN501J + 0.260GHN5046                 : ARR( 0.164E-12,  -795., 0.0);
+{ 31743} G2H502r +PERO1              =  0.600G1H501M + 0.200GHN501J + 0.200GHN5046                 : ARR( 0.126E-12,  -850., 0.0);
+{ 31744} G2H502r +PERO2              =  0.560G1H501M + 0.220GHN501J + 0.220GHN5046                 : ARR( 0.471E-13, -1350., 0.0);
+{ 31745} G2H502r +PERO3              =  0.600G1H501M + 0.200GHN501J + 0.200GHN5046                 : ARR( 0.142E-12, -1200., 0.0);
+{ 31746} G2H502r +PERO5              =  0.600G1H501M + 0.200GHN501J + 0.200GHN5046                 : ARR( 0.533E-11,   500., 0.0);
+{ 31747} G2H502r +PERO6              =  0.460G1H501M + 0.270GHN501J + 0.270GHN5046                 : ARR( 0.488E-13, -1250., 0.0);
+{ 31748} G2H502r +PERO9              =  0.800G1H501M + 0.200GHN5046                                : ARR( 0.100E-10,     0., 0.0);
+{ 31749} G1H507Y                     =       GHD2000 +      GHD3000 +      GHO2                    : ARR( 0.200E+15,  3320., 0.0);
+{ 31750} GHN504O +GHO                =       GNN502Y +      GHO                                    : ARR( 0.680E-11,     0., 0.0);
+{ 31751} GHN504O +GHO                =       G3H501l                                               : ARR( 0.421E-11,     0., 0.0);
+{ 31752} GHN504O +GHO                =       G2N503O                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 31753} GHN504O +GNO3               =       G3H501l +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 31754} GHN504O+HV               =       G1N503k +      GHO                                    :  0.100E+01*SUN;
+{ 31755} GHN504O+HV               =       G1H507Z +      GNO2                                   :  0.100E+01*SUN;
+{ 31756} GHN504O+HV               =       G1H507a +      GNO2                                   :  0.100E+01*SUN;
+{ 31757} GHN504O+HV               =       GHN400p +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 31758} GHN504O+HV               =       GDK3000 +      GND2000 +      GNO2    +      GHO      :  0.100E+01*SUN;
+{ 31759} G3H501l +GHO2               =  0.800GGH502O + 0.200GAH502C + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 31760} G3H501l +GNO                =       GHN400p + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 31761} G3H501l +GNO2               =       GPH502B                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 31762} G3H501l +GNO3               =       GHN400p + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 31763} G3H501l +MEPERO             =  0.685GHN400p + 0.315GAH502C + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 31764} G3H501l +PERO1              =  0.800GHN400p + 0.200GAH502C + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 31765} G3H501l +PERO2              =  0.750GHN400p + 0.250GAH502C + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 31766} G3H501l +PERO3              =  0.800GHN400p + 0.200GAH502C + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 31767} G3H501l +PERO5              =  0.650GHN400p + 0.350GAH502C + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 31768} G3H501l +PERO6              =  0.650GHN400p + 0.350GAH502C + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 31769} G3H501l +PERO9              =       GHN400p +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 31770} G1H507Z                     =       GD02000 +      GND3005 +      GHO                     : ARR( 0.200E+15,  4341., 0.0);
+{ 31771} G1H507a                     =       G2H502s                                               : ARR( 0.240E+12,  4177., 0.0);
+{ 31772} G1H507a                     =       GHN400p +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 31773} G2H502s +GNO                =       G1H507b +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 31774} G2H502s +GNO                =       GHN5064                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 31775} G2H502s +GHO2               =       GHH502j                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 31776} G2H502s +GNO3               =       G1H507b +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 31777} G2H502s +MEPERO             =  0.480G1H507b + 0.260GHN505m + 0.260GHN505o                 : ARR( 0.164E-12,  -795., 0.0);
+{ 31778} G2H502s +PERO1              =  0.600G1H507b + 0.200GHN505m + 0.200GHN505o                 : ARR( 0.126E-12,  -850., 0.0);
+{ 31779} G2H502s +PERO2              =  0.560G1H507b + 0.220GHN505m + 0.220GHN505o                 : ARR( 0.471E-13, -1350., 0.0);
+{ 31780} G2H502s +PERO3              =  0.600G1H507b + 0.200GHN505m + 0.200GHN505o                 : ARR( 0.142E-12, -1200., 0.0);
+{ 31781} G2H502s +PERO5              =  0.600G1H507b + 0.200GHN505m + 0.200GHN505o                 : ARR( 0.533E-11,   500., 0.0);
+{ 31782} G2H502s +PERO6              =  0.460G1H507b + 0.270GHN505m + 0.270GHN505o                 : ARR( 0.488E-13, -1250., 0.0);
+{ 31783} G2H502s +PERO9              =  0.800G1H507b + 0.200GHN505o                                : ARR( 0.100E-10,     0., 0.0);
+{ 31784} G1H507b                     =       GHN505n +      GHO2                                   : ARR( 0.800E+11,  2965., 0.0);
+{ 31785} G1H507b                     =       GND400J +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{ 31786} GHN504P +GHO                =       GHN505W +      GHO2                                   : ARR( 0.208E-11,     0., 0.0);
+{ 31787} GHN504P +GHO                =       GNN502a +      GHO                                    : ARR( 0.162E-10,     0., 0.0);
+{ 31788} GHN504P +GHO                =       G2N503Q                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 31789} GHN504P+HV               =       G1H507I +      GNO2                                   :  0.100E+01*SUN;
+{ 31790} GHN504P+HV               =       G1H507c +      GNO2                                   :  0.100E+01*SUN;
+{ 31791} GHN504P+HV               =       G1H507d +      GNO2                                   :  0.100E+01*SUN;
+{ 31792} GHN504P+HV               =       G1N503o +      GHO                                    :  0.100E+01*SUN;
+{ 31793} G1H507c                     =       GNN502H +      GHO                                    : ARR( 0.160E+12,  2186., 0.0);
+{ 31794} G1H507d                     =       GNN3005 +      GHD2000 +      GHO2                    : ARR( 0.200E+15,  3575., 0.0);
+{ 31795} GNN502a +GHO                =       GNN5036 +      GHO2                                   : ARR( 0.127E-11,     0., 0.0);
+{ 31796} GNN502a +GHO                =       G3N501R                                               : ARR( 0.210E-10,     0., 0.0);
+{ 31797} GNN502a +GNO3               =       G3N501R +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 31798} GNN502a+HV               =       G1N506D +      GNO2                                   :  0.100E+01*SUN;
+{ 31799} GNN502a+HV               =       G1N506E +      GNO2                                   :  0.100E+01*SUN;
+{ 31800} GNN502a+HV               =       G1N506F +      GNO2                                   :  0.100E+01*SUN;
+{ 31801} GNN502a+HV               =       GNN400D +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 31802} G3N501R +GHO2               =  0.800GGN501s + 0.200GAN5026 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 31803} G3N501R +GNO                =       GNN400D +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 31804} G3N501R +GNO2               =       GPN502F                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 31805} G3N501R +GNO3               =       GNN400D +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 31806} G3N501R +MEPERO             =  0.685GNN400D + 0.315GAN5026 + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 31807} G3N501R +PERO1              =  0.800GNN400D + 0.200GAN5026 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 31808} G3N501R +PERO2              =  0.750GNN400D + 0.250GAN5026 + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 31809} G3N501R +PERO3              =  0.800GNN400D + 0.200GAN5026 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 31810} G3N501R +PERO5              =  0.650GNN400D + 0.350GAN5026 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 31811} G3N501R +PERO6              =  0.650GNN400D + 0.350GAN5026 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 31812} G3N501R +PERO9              =       GNN400D +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 31813} G1N506D                     =       GNN502c +      GHO2                                   : ARR( 0.800E+11,  2965., 0.0);
+{ 31814} G1N506E                     =       G3N500x                                               : ARR( 0.800E+11,  4559., 0.0);
+{ 31815} G1N506E                     =       GND2000 +      GDD3001 +      GNO2                    : ARR( 0.200E+15,  6365., 0.0);
+{ 31816} G1N506F                     =       GNN3005 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  3708., 0.0);
+{ 31817} GHN504Q +GHO                =       GHN505X +      GHO2                                   : ARR( 0.214E-11,     0., 0.0);
+{ 31818} GHN504Q +GHO                =       GNN502H +      GHO                                    : ARR( 0.167E-10,     0., 0.0);
+{ 31819} GHN504Q +GHO                =       G2N503R                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 31820} GHN504Q+HV               =       G1H5032 +      GNO2                                   :  0.100E+01*SUN;
+{ 31821} GHN504Q+HV               =       G1H507e +      GNO2                                   :  0.100E+01*SUN;
+{ 31822} GHN504Q+HV               =       G1N503p +      GHO                                    :  0.100E+01*SUN;
+{ 31823} G1H507e                     =       GND2000 +      GHD3005 +      GHO2                    : ARR( 0.200E+15,  3575., 0.0);
+{ 31824} G1H507e                     =       GND3002 +      GHD2000 +      GHO2                    : ARR( 0.200E+15,  3575., 0.0);
+{ 31825} GHH501c +GHO                =       GHN503z +      GHO                                    : ARR( 0.325E-10,     0., 0.0);
+{ 31826} GHH501c +GHO                =       GHH502k +      GHO2                                   : ARR( 0.416E-11,     0., 0.0);
+{ 31827} GHH501c +GHO                =       G2H501f                                               : ARR( 0.383E-11,  -190., 0.0);
+{ 31828} GHH501c+HV               =       G1H5032 +      GHO                                    :  0.200E+01*SUN;
+{ 31829} GHH501c+HV               =       G1H507f +      GNO2                                   :  0.100E+01*SUN;
+{ 31830} G1H507f                     =       GHD2000 +      GHD3005 +      GHO2                    : ARR( 0.400E+15,  3575., 0.0);
+{ 31831} GHN504R +GHO                =       GHN503z +      GHO2                                   : ARR( 0.410E-11,     0., 0.0);
+{ 31832} GHN504R +GHO                =       GHN506Q +      GHO2                                   : ARR( 0.210E-11,     0., 0.0);
+{ 31833} GHN504R +GHO                =       GHN504S +      GHO2                                   : ARR( 0.210E-11,     0., 0.0);
+{ 31834} GHN504R +GHO                =       GND500T +      GHO                                    : ARR( 0.164E-10,     0., 0.0);
+{ 31835} GHN504R +GHO                =       G2N503T                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 31836} GHN504R+HV               =       G1H506x +      GNO2                                   :  0.100E+01*SUN;
+{ 31837} GHN504R+HV               =       G1N503t +      GHO                                    :  0.100E+01*SUN;
+{ 31838} GHN504S +GHO                =       GHN506R +      GHO2                                   : ARR( 0.409E-11,     0., 0.0);
+{ 31839} GHN504S +GHO                =       GHN506S +      GHO2                                   : ARR( 0.210E-11,     0., 0.0);
+{ 31840} GHN504S +GHO                =       GND5012 +      GHO                                    : ARR( 0.998E-11,     0., 0.0);
+{ 31841} GHN504S +GHO                =       G2N505C                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 31842} GHN504S+HV               =       G1H506y +      GNO2                                   :  0.100E+01*SUN;
+{ 31843} GHN504S+HV               =       G3N400F +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 31844} GHN504S+HV               =       GDO2000 +      GHN3008                                :  0.100E+01*SUN;
+{ 31845} GHN504S+HV               =       G1N505d +      GHO                                    :  0.100E+01*SUN;
+{ 31846} G2N505C +GNO                =       G1N505d +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 31847} G2N505C +GNO                =       GNN502E                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 31848} G2N505C +GHO2               =       GHN504S                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 31849} G2N505C +GNO3               =       G1N505d +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 31850} G2N505C +MEPERO             =  0.480G1N505d + 0.260GNK5017 + 0.260GND5012                 : ARR( 0.164E-12,  -795., 0.0);
+{ 31851} G2N505C +PERO1              =  0.600G1N505d + 0.200GNK5017 + 0.200GND5012                 : ARR( 0.126E-12,  -850., 0.0);
+{ 31852} G2N505C +PERO2              =  0.560G1N505d + 0.220GNK5017 + 0.220GND5012                 : ARR( 0.471E-13, -1350., 0.0);
+{ 31853} G2N505C +PERO3              =  0.600G1N505d + 0.200GNK5017 + 0.200GND5012                 : ARR( 0.142E-12, -1200., 0.0);
+{ 31854} G2N505C +PERO5              =  0.600G1N505d + 0.200GNK5017 + 0.200GND5012                 : ARR( 0.533E-11,   500., 0.0);
+{ 31855} G2N505C +PERO6              =  0.460G1N505d + 0.270GNK5017 + 0.270GND5012                 : ARR( 0.488E-13, -1250., 0.0);
+{ 31856} G2N505C +PERO9              =  0.800G1N505d + 0.200GND5012                                : ARR( 0.100E-10,     0., 0.0);
+{ 31857} GHN504T +GHO                =       GHN504U +      GHO2                                   : ARR( 0.217E-11,     0., 0.0);
+{ 31858} GHN504T +GHO                =       GNN502b +      GHO                                    : ARR( 0.169E-10,     0., 0.0);
+{ 31859} GHN504T +GHO                =       G2N503S                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 31860} GHN504T+HV               =       G1H507g +      GNO2                                   :  0.100E+01*SUN;
+{ 31861} GHN504T+HV               =       G1H507h +      GNO2                                   :  0.100E+01*SUN;
+{ 31862} GHN504T+HV               =       G1N503s +      GHO                                    :  0.100E+01*SUN;
+{ 31863} G1H507g                     =       GND500T +      GHO                                    : ARR( 0.160E+12,  2186., 0.0);
+{ 31864} G1H507g                     =       GCH2O   +      GHN400Y +      GHO2                    : ARR( 0.200E+15,  5296., 0.0);
+{ 31865} G1H507h                     =       GND3004 +      GHD2000 +      GHO2                    : ARR( 0.200E+15,  3575., 0.0);
+{ 31866} GNN502b +GHO                =       GNN502c +      GHO2                                   : ARR( 0.132E-11,     0., 0.0);
+{ 31867} GNN502b +GHO                =       G3N501S                                               : ARR( 0.219E-10,     0., 0.0);
+{ 31868} GNN502b +GNO3               =       G3N501S +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 31869} GNN502b+HV               =       G1N506G +      GNO2                                   :  0.100E+01*SUN;
+{ 31870} GNN502b+HV               =       G1N506H +      GNO2                                   :  0.100E+01*SUN;
+{ 31871} GNN502b+HV               =       GNN400E +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 31872} G3N501S +GHO2               =  0.800GGN501t + 0.200GAN5027 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 31873} G3N501S +GNO                =       GNN400E +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 31874} G3N501S +GNO2               =       GPN501i                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 31875} G3N501S +GNO3               =       GNN400E +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 31876} G3N501S +MEPERO             =  0.685GNN400E + 0.315GAN5027 + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 31877} G3N501S +PERO1              =  0.800GNN400E + 0.200GAN5027 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 31878} G3N501S +PERO2              =  0.750GNN400E + 0.250GAN5027 + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 31879} G3N501S +PERO3              =  0.800GNN400E + 0.200GAN5027 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 31880} G3N501S +PERO5              =  0.650GNN400E + 0.350GAN5027 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 31881} G3N501S +PERO6              =  0.650GNN400E + 0.350GAN5027 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 31882} G3N501S +PERO9              =       GNN400E +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 31883} G1N506G                     =       GCH2O   +      GND400J +      GHO2                    : ARR( 0.200E+15,  5296., 0.0);
+{ 31884} G1N506G                     =       GDO2000 +      GDD3001 +      GNO2                    : ARR( 0.200E+15,  6367., 0.0);
+{ 31885} G1N506H                     =       GND3004 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  3708., 0.0);
+{ 31886} GNO500c +GHO                =       GND500T +      GHO2                                   : ARR( 0.849E-11,     0., 0.0);
+{ 31887} GNO500c +GHO                =       GNK5017 +      GHO2                                   : ARR( 0.435E-11,     0., 0.0);
+{ 31888} GNO500c+HV               =       G1O500c +      GNO2                                   :  0.100E+01*SUN;
+{ 31889} GNK5017 +GHO                =       GND501A +      GHO2                                   : ARR( 0.425E-11,     0., 0.0);
+{ 31890} GNK5017 +GHO                =       GNK5014 +      GHO2                                   : ARR( 0.218E-11,     0., 0.0);
+{ 31891} GNK5017 +GHO                =       GND5012 +      GHO2                                   : ARR( 0.259E-11,     0., 0.0);
+{ 31892} GNK5017+HV               =       G1K5012 +      GNO2                                   :  0.100E+01*SUN;
+{ 31893} GNK5017+HV               =       G3N400F +      GCH2O   +      GHO2                    :  0.100E+01*SUN;
+{ 31894} GNK5017+HV               =       GDO2000 +      GNK3001                                :  0.100E+01*SUN;
+{ 31895} GGN500f +GHO                =       GGN501o +      GHO2                                   : ARR( 0.179E-11,     0., 0.0);
+{ 31896} GGN500f +GHO                =       G3N500Q                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 31897} GGN500f+HV               =       G1G5021 +      GNO2                                   :  0.100E+01*SUN;
+{ 31898} GGN500f+HV               =       G1G5022 +      GNO2                                   :  0.100E+01*SUN;
+{ 31899} GGN500f+HV               =       GND4007 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 31900} G1G5021                     =       GD02000 +      GGN3005 +      GHO2                    : ARR( 0.200E+15,  3132., 0.0);
+{ 31901} G1G5022                     =       G2G501f                                               : ARR( 0.240E+12,  4177., 0.0);
+{ 31902} G1G5022                     =       GND4007 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 31903} G2G501f +GNO                =       G1G5023 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 31904} G2G501f +GNO                =       GGN501E                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 31905} G2G501f +GHO2               =       GGH501Z                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 31906} G2G501f +GNO3               =       G1G5023 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 31907} G2G501f +MEPERO             =  0.480G1G5023 + 0.260GGN500i + 0.260GGN501W                 : ARR( 0.164E-12,  -795., 0.0);
+{ 31908} G2G501f +PERO1              =  0.600G1G5023 + 0.200GGN500i + 0.200GGN501W                 : ARR( 0.126E-12,  -850., 0.0);
+{ 31909} G2G501f +PERO2              =  0.560G1G5023 + 0.220GGN500i + 0.220GGN501W                 : ARR( 0.471E-13, -1350., 0.0);
+{ 31910} G2G501f +PERO3              =  0.600G1G5023 + 0.200GGN500i + 0.200GGN501W                 : ARR( 0.142E-12, -1200., 0.0);
+{ 31911} G2G501f +PERO5              =  0.600G1G5023 + 0.200GGN500i + 0.200GGN501W                 : ARR( 0.533E-11,   500., 0.0);
+{ 31912} G2G501f +PERO6              =  0.460G1G5023 + 0.270GGN500i + 0.270GGN501W                 : ARR( 0.488E-13, -1250., 0.0);
+{ 31913} G2G501f +PERO9              =  0.800G1G5023 + 0.200GGN501W                                : ARR( 0.100E-10,     0., 0.0);
+{ 31914} G1G5023                     =       GGN501u +      GHO2                                   : ARR( 0.800E+11,  2965., 0.0);
+{ 31915} G1G5023                     =       GGN400U +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 31916} GAN500m +GHO                =       G2A502B                                               : ARR( 0.170E-12,     0., 0.0);
+{ 31917} GAN500m +GHO                =       GAN501f +      GHO2                                   : ARR( 0.170E-11,     0., 0.0);
+{ 31918} GAN500m +GHO                =       G1A501n                                               : ARR( 0.213E-17,    85., 2.0);
+{ 31919} GAN500m +GHO                =       GND4007 +      GNO2    +      GCO2                    : ARR( 0.527E-12,     0., 0.0);
+{ 31920} GAN500m+HV               =       G1A502Z +      GNO2                                   :  0.100E+01*SUN;
+{ 31921} GAN500m+HV               =       G1A502a +      GNO2                                   :  0.100E+01*SUN;
+{ 31922} G2A502B +GNO                =       G1A502b +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 31923} G2A502B +GNO                =       GAN501J                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 31924} G2A502B +GHO2               =       GAH502l                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 31925} G2A502B +GNO3               =       G1A502b +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 31926} G2A502B +MEPERO             =  0.480G1A502b + 0.260GAN501M + 0.260GAN5028                 : ARR( 0.164E-12,  -795., 0.0);
+{ 31927} G2A502B +PERO1              =  0.600G1A502b + 0.200GAN501M + 0.200GAN5028                 : ARR( 0.126E-12,  -850., 0.0);
+{ 31928} G2A502B +PERO2              =  0.560G1A502b + 0.220GAN501M + 0.220GAN5028                 : ARR( 0.471E-13, -1350., 0.0);
+{ 31929} G2A502B +PERO3              =  0.600G1A502b + 0.200GAN501M + 0.200GAN5028                 : ARR( 0.142E-12, -1200., 0.0);
+{ 31930} G2A502B +PERO5              =  0.600G1A502b + 0.200GAN501M + 0.200GAN5028                 : ARR( 0.533E-11,   500., 0.0);
+{ 31931} G2A502B +PERO6              =  0.460G1A502b + 0.270GAN501M + 0.270GAN5028                 : ARR( 0.488E-13, -1250., 0.0);
+{ 31932} G2A502B +PERO9              =  0.800G1A502b + 0.200GAN5028                                : ARR( 0.100E-10,     0., 0.0);
+{ 31933} G1A502Z                     =       GD02000 +      GAN3006 +      GHO2                    : ARR( 0.200E+15,  3132., 0.0);
+{ 31934} G1A502a                     =       G2A502C                                               : ARR( 0.240E+12,  4177., 0.0);
+{ 31935} G1A502a                     =       GND4007 +      GCO     +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 31936} G1A502b                     =       GAN400Y +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 31937} G2A502C +GNO                =       G1A502c +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 31938} G2A502C +GNO                =       GAN501N                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 31939} G2A502C +GHO2               =       GAH501h                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 31940} G2A502C +GNO3               =       G1A502c +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 31941} G2A502C +MEPERO             =  0.480G1A502c + 0.260GAN500p + 0.260GAN501W                 : ARR( 0.164E-12,  -795., 0.0);
+{ 31942} G2A502C +PERO1              =  0.600G1A502c + 0.200GAN500p + 0.200GAN501W                 : ARR( 0.126E-12,  -850., 0.0);
+{ 31943} G2A502C +PERO2              =  0.560G1A502c + 0.220GAN500p + 0.220GAN501W                 : ARR( 0.471E-13, -1350., 0.0);
+{ 31944} G2A502C +PERO3              =  0.600G1A502c + 0.200GAN500p + 0.200GAN501W                 : ARR( 0.142E-12, -1200., 0.0);
+{ 31945} G2A502C +PERO5              =  0.600G1A502c + 0.200GAN500p + 0.200GAN501W                 : ARR( 0.533E-11,   500., 0.0);
+{ 31946} G2A502C +PERO6              =  0.460G1A502c + 0.270GAN500p + 0.270GAN501W                 : ARR( 0.488E-13, -1250., 0.0);
+{ 31947} G2A502C +PERO9              =  0.800G1A502c + 0.200GAN501W                                : ARR( 0.100E-10,     0., 0.0);
+{ 31948} G1A502c                     =       GAN501o +      GHO2                                   : ARR( 0.800E+11,  3100., 0.0);
+{ 31949} G1A502c                     =       GAN400a +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 31950} GPN500n                     =       G3N500Q +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 31951} GPN500n +GHO                =       G2P502I                                               : ARR( 0.171E-12,     0., 0.0);
+{ 31952} GPN500n +GHO                =       GPN501m +      GHO2                                   : ARR( 0.171E-11,     0., 0.0);
+{ 31953} GPN500n +GHO                =       G1P501s                                               : ARR( 0.214E-17,    85., 2.0);
+{ 31954} GPN500n+HV               =       G1P502k +      GNO2                                   :  0.100E+01*SUN;
+{ 31955} GPN500n+HV               =       G1P500f +      GNO2                                   :  0.100E+01*SUN;
+{ 31956} GPN500n+HV               =       G3N500Q +      GNO2                                   :  0.100E+01*SUN;
+{ 31957} G2P502I +GNO                =       G1P502l +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 31958} G2P502I +GNO                =       GPN501N                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 31959} G2P502I +GHO2               =       GPH502s                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 31960} G2P502I +GNO3               =       G1P502l +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 31961} G2P502I +MEPERO             =  0.480G1P502l + 0.260GPN501Q + 0.260GPN502G                 : ARR( 0.164E-12,  -795., 0.0);
+{ 31962} G2P502I +PERO1              =  0.600G1P502l + 0.200GPN501Q + 0.200GPN502G                 : ARR( 0.126E-12,  -850., 0.0);
+{ 31963} G2P502I +PERO2              =  0.560G1P502l + 0.220GPN501Q + 0.220GPN502G                 : ARR( 0.471E-13, -1350., 0.0);
+{ 31964} G2P502I +PERO3              =  0.600G1P502l + 0.200GPN501Q + 0.200GPN502G                 : ARR( 0.142E-12, -1200., 0.0);
+{ 31965} G2P502I +PERO5              =  0.600G1P502l + 0.200GPN501Q + 0.200GPN502G                 : ARR( 0.533E-11,   500., 0.0);
+{ 31966} G2P502I +PERO6              =  0.460G1P502l + 0.270GPN501Q + 0.270GPN502G                 : ARR( 0.488E-13, -1250., 0.0);
+{ 31967} G2P502I +PERO9              =  0.800G1P502l + 0.200GPN502G                                : ARR( 0.100E-10,     0., 0.0);
+{ 31968} G1P502k                     =       GD02000 +      GPN3006 +      GHO2                    : ARR( 0.200E+15,  3132., 0.0);
+{ 31969} G1P502l                     =       GPN400Z +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 31970} GND5012 +GHO                =       GND501U +      GHO2                                   : ARR( 0.410E-11,     0., 0.0);
+{ 31971} GND5012 +GHO                =       GND501W +      GHO2                                   : ARR( 0.210E-11,     0., 0.0);
+{ 31972} GND5012 +GHO                =       G3N400F +      GCO                                    : ARR( 0.129E-10,     0., 0.0);
+{ 31973} GND5012 +GNO3               =       G3N400F +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 31974} GND5012+HV               =       G1D5015 +      GNO2                                   :  0.100E+01*SUN;
+{ 31975} GND5012+HV               =       G3N400F +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 31976} GND5012+HV               =       GND400A +      GCO                                    :  0.100E+01*SUN;
+{ 31977} GND5012+HV               =       GNO3003 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 31978} GND400J +GHO                =       G3N400T                                               : ARR( 0.221E-10,     0., 0.0);
+{ 31979} GND400J +GHO                =       G3N400U                                               : ARR( 0.443E-11,     0., 0.0);
+{ 31980} GND400J +GNO3               =       G3N400T +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 31981} GND400J +GNO3               =       G3N400U +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 31982} GND400J+HV               =       GCO     +      GND3005 + 2.000GHO2                    :  0.100E+01*SUN;
+{ 31983} GND400J+HV               =       G1D400K +      GNO2                                   :  0.100E+01*SUN;
+{ 31984} GND400J+HV               =       GDD3001 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 31985} G3N400T +GHO2               =  0.800GGN400U + 0.200GAN400a + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 31986} G3N400T +GNO                =       GND3005 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 31987} G3N400T +GNO2               =       GPN400Q                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 31988} G3N400T +GNO3               =       GND3005 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 31989} G3N400T +MEPERO             =  0.685GND3005 + 0.315GAN400a + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 31990} G3N400T +PERO1              =  0.800GND3005 + 0.200GAN400a + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 31991} G3N400T +PERO2              =  0.750GND3005 + 0.250GAN400a + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 31992} G3N400T +PERO3              =  0.800GND3005 + 0.200GAN400a + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 31993} G3N400T +PERO5              =  0.650GND3005 + 0.350GAN400a + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 31994} G3N400T +PERO6              =  0.650GND3005 + 0.350GAN400a + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 31995} G3N400T +PERO9              =       GND3005 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 31996} G3N400U +GHO2               =  0.800GGN400W + 0.200GAN400P + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 31997} G3N400U +GNO                =       GDD3001 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 31998} G3N400U +GNO2               =       GPN400P                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 31999} G3N400U +GNO3               =       GDD3001 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 32000} G3N400U +MEPERO             =  0.685GDD3001 + 0.315GAN400P + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32001} G3N400U +PERO1              =  0.800GDD3001 + 0.200GAN400P + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32002} G3N400U +PERO2              =  0.750GDD3001 + 0.250GAN400P + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32003} G3N400U +PERO3              =  0.800GDD3001 + 0.200GAN400P + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32004} G3N400U +PERO5              =  0.650GDD3001 + 0.350GAN400P + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32005} G3N400U +PERO6              =  0.650GDD3001 + 0.350GAN400P + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32006} G3N400U +PERO9              =       GDD3001 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 32007} G1D400K                     =  2.000GDD2000 +      GHO2                                   : ARR( 0.200E+15,  5180., 0.0);
+{ 32008} G1D400K                     =       GDD3001 +      GCO     +      GHO2                    : ARR( 0.200E+15,  4861., 0.0);
+{ 32009} GHN400p +GHO                =       GND4008 +      GHO                                    : ARR( 0.681E-11,     0., 0.0);
+{ 32010} GHN400p +GHO                =       G3H400J                                               : ARR( 0.422E-11,     0., 0.0);
+{ 32011} GHN400p +GHO                =       G2N4012                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 32012} GHN400p +GNO3               =       G3H400J +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 32013} GHN400p+HV               =       G1N400f +      GHO                                    :  0.100E+01*SUN;
+{ 32014} GHN400p+HV               =       G1H401D +      GNO2                                   :  0.100E+01*SUN;
+{ 32015} GHN400p+HV               =       GHD3002 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 32016} GHN400p+HV               =       G2D2000 +      GND2000 +      GHO                     :  0.100E+01*SUN;
+{ 32017} G2N4012 +GNO                =       G1N400f +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 32018} G2N4012 +GNO                =       GNN4007                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 32019} G2N4012 +GHO2               =       GHN400p                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 32020} G2N4012 +GNO3               =       G1N400f +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 32021} G2N4012 +MEPERO             =  0.340G1N400f + 0.330GND4007 + 0.330GND4008                 : ARR( 0.565E-13,  -845., 0.0);
+{ 32022} G2N4012 +PERO1              =  0.460G1N400f + 0.270GND4007 + 0.270GND4008                 : ARR( 0.434E-13,  -900., 0.0);
+{ 32023} G2N4012 +PERO2              =  0.400G1N400f + 0.300GND4007 + 0.300GND4008                 : ARR( 0.162E-13, -1400., 0.0);
+{ 32024} G2N4012 +PERO3              =  0.460G1N400f + 0.270GND4007 + 0.270GND4008                 : ARR( 0.488E-13, -1250., 0.0);
+{ 32025} G2N4012 +PERO5              =  0.460G1N400f + 0.270GND4007 + 0.270GND4008                 : ARR( 0.183E-11,   450., 0.0);
+{ 32026} G2N4012 +PERO6              =  0.300G1N400f + 0.350GND4007 + 0.350GND4008                 : ARR( 0.168E-13, -1300., 0.0);
+{ 32027} G2N4012 +PERO9              =  0.650G1N400f + 0.350GND4008                                : ARR( 0.100E-10,     0., 0.0);
+{ 32028} GHH501d +GHO                =       GHH502j +      GHO2                                   : ARR( 0.406E-11,     0., 0.0);
+{ 32029} GHH501d +GHO                =       GHH502l +      GHO2                                   : ARR( 0.208E-11,     0., 0.0);
+{ 32030} GHH501d +GHO                =       GHN504S +      GHO                                    : ARR( 0.833E-11,     0., 0.0);
+{ 32031} GHH501d +GHO                =       GHN5037 +      GHO                                    : ARR( 0.163E-10,     0., 0.0);
+{ 32032} GHH501d +GHO                =       G2H502t                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 32033} GHH501d +GHO                =       G2H501g                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 32034} GHH501d+HV               =       G1H506w +      GNO2                                   :  0.100E+01*SUN;
+{ 32035} GHH501d+HV               =       G1H507i +      GHO                                    :  0.100E+01*SUN;
+{ 32036} GHH501d+HV               =       G1H5035 +      GHO                                    :  0.100E+01*SUN;
+{ 32037} G2H502t +GNO                =       G1H507i +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 32038} G2H502t +GNO                =       GHN506H                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 32039} G2H502t +GHO2               =       GHH501d                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 32040} G2H502t +GNO3               =       G1H507i +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 32041} G2H502t +MEPERO             =  0.340G1H507i + 0.330GHN504R + 0.330GHN504S                 : ARR( 0.565E-13,  -845., 0.0);
+{ 32042} G2H502t +PERO1              =  0.460G1H507i + 0.270GHN504R + 0.270GHN504S                 : ARR( 0.434E-13,  -900., 0.0);
+{ 32043} G2H502t +PERO2              =  0.400G1H507i + 0.300GHN504R + 0.300GHN504S                 : ARR( 0.162E-13, -1400., 0.0);
+{ 32044} G2H502t +PERO3              =  0.460G1H507i + 0.270GHN504R + 0.270GHN504S                 : ARR( 0.488E-13, -1250., 0.0);
+{ 32045} G2H502t +PERO5              =  0.460G1H507i + 0.270GHN504R + 0.270GHN504S                 : ARR( 0.183E-11,   450., 0.0);
+{ 32046} G2H502t +PERO6              =  0.300G1H507i + 0.350GHN504R + 0.350GHN504S                 : ARR( 0.168E-13, -1300., 0.0);
+{ 32047} G2H502t +PERO9              =  0.650G1H507i + 0.350GHN504S                                : ARR( 0.100E-10,     0., 0.0);
+{ 32048} G1H507i                     =       GHN503z +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{ 32049} GHN504U +GHO                =       GHN506T +      GHO2                                   : ARR( 0.814E-12,     0., 0.0);
+{ 32050} GHN504U +GHO                =       GNN502c +      GHO                                    : ARR( 0.993E-11,     0., 0.0);
+{ 32051} GHN504U +GHO                =       G2N503W                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 32052} GHN504U+HV               =       G1H507j +      GNO2                                   :  0.100E+01*SUN;
+{ 32053} GHN504U+HV               =       G1H507k +      GNO2                                   :  0.100E+01*SUN;
+{ 32054} GHN504U+HV               =       G3N400B +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 32055} GHN504U+HV               =       GND2000 +      GHN3008                                :  0.100E+01*SUN;
+{ 32056} GHN504U+HV               =       G1N503y +      GHO                                    :  0.100E+01*SUN;
+{ 32057} G1H507j                     =       GCH2O   +      GHN401A +      GHO2                    : ARR( 0.200E+15,  4465., 0.0);
+{ 32058} G1H507k                     =       GND3004 +      G3H2000                                : ARR( 0.200E+15,  3009., 0.0);
+{ 32059} GNN502c +GHO                =       GNN503G +      GHO2                                   : ARR( 0.815E-12,     0., 0.0);
+{ 32060} GNN502c +GHO                =       G3N400B +      GCO                                    : ARR( 0.128E-10,     0., 0.0);
+{ 32061} GNN502c +GNO3               =       G3N400B +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 32062} GNN502c+HV               =       G1N506I +      GNO2                                   :  0.100E+01*SUN;
+{ 32063} GNN502c+HV               =       G1N506J +      GNO2                                   :  0.100E+01*SUN;
+{ 32064} GNN502c+HV               =       G3N400B +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 32065} GNN502c+HV               =       GNN400E +      GCO                                    :  0.100E+01*SUN;
+{ 32066} GNN502c+HV               =       GNN3004 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 32067} G1N506I                     =       GCH2O   +      GND400N +      GHO2                    : ARR( 0.200E+15,  4465., 0.0);
+{ 32068} G1N506J                     =       GND3004 +      G3D2000                                : ARR( 0.200E+15,  3233., 0.0);
+{ 32069} GGN400H +GHO                =       GGN400X +      GHO2                                   : ARR( 0.837E-12,     0., 0.0);
+{ 32070} GGN400H +GHO                =       G3N400B                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 32071} GGN400H+HV               =       G1G400Z +      GNO2                                   :  0.100E+01*SUN;
+{ 32072} GGN400H+HV               =       G1G400a +      GNO2                                   :  0.100E+01*SUN;
+{ 32073} GGN400H+HV               =       GND3004 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 32074} G1G400Z                     =       GCH2O   +      GGN3005 +      GHO2                    : ARR( 0.200E+15,  4465., 0.0);
+{ 32075} G1G400a                     =       GND3004 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 32076} GAN400I +GHO                =       GAN400Y +      GHO2                                   : ARR( 0.823E-12,     0., 0.0);
+{ 32077} GAN400I +GHO                =       G1A400f                                               : ARR( 0.215E-17,    85., 2.0);
+{ 32078} GAN400I +GHO                =       GND3004 +      GNO2    +      GCO2                    : ARR( 0.532E-12,     0., 0.0);
+{ 32079} GAN400I+HV               =       G1A400Y +      GNO2                                   :  0.100E+01*SUN;
+{ 32080} GAN400I+HV               =       G1A400C +      GNO2                                   :  0.100E+01*SUN;
+{ 32081} GPN400J                     =       G3N400B +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 32082} GPN400J +GHO                =       GPN400Z +      GHO2                                   : ARR( 0.836E-12,     0., 0.0);
+{ 32083} GPN400J +GHO                =       G1P400g                                               : ARR( 0.218E-17,    85., 2.0);
+{ 32084} GPN400J+HV               =       G1P400Z +      GNO2                                   :  0.100E+01*SUN;
+{ 32085} GPN400J+HV               =       G1P400C +      GNO2                                   :  0.100E+01*SUN;
+{ 32086} GPN400J+HV               =       G3N400B +      GNO2                                   :  0.100E+01*SUN;
+{ 32087} GHN400q +GHO                =       GND400I +      GHO                                    : ARR( 0.987E-11,     0., 0.0);
+{ 32088} GHN400q +GHO                =       G2N400b                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 32089} GHN400q+HV               =       G1H401L +      GNO2                                   :  0.100E+01*SUN;
+{ 32090} GHN400q+HV               =       G3N3001 +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 32091} GHN400q+HV               =       G1N400d +      GHO                                    :  0.100E+01*SUN;
+{ 32092} G1H401L                     =       GD02000 +      G3H2000                                : ARR( 0.200E+15,  2814., 0.0);
+{ 32093} GHN504W +GHO                =       GHN504L +      GHO2                                   : ARR( 0.631E-11,     0., 0.0);
+{ 32094} GHN504W +GHO                =       GND5013 +      GHO                                    : ARR( 0.512E-10,     0., 0.0);
+{ 32095} GHN504W +GHO                =       G2N503Y                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 32096} GHN504W+HV               =       G1H507l +      GNO2                                   :  0.100E+01*SUN;
+{ 32097} GHN504W+HV               =       G3N3001 +      GHD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 32098} GHN504W+HV               =       G1N503z +      GHO                                    :  0.100E+01*SUN;
+{ 32099} G1H507l                     =       GD02000 +      G3H3003                                : ARR( 0.200E+15,  2777., 0.0);
+{ 32100} GND5013 +GHO                =       GND500z +      GHO2                                   : ARR( 0.384E-11,     0., 0.0);
+{ 32101} GND5013 +GHO                =       G3N501T                                               : ARR( 0.661E-10,     0., 0.0);
+{ 32102} GND5013 +GNO3               =       G3N501T +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 32103} GND5013+HV               =       G1D501D +      GNO2                                   :  0.100E+01*SUN;
+{ 32104} GND5013+HV               =       G3N3001 +      GDD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 32105} GND5013+HV               =       GND400I +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 32106} G3N501T +GHO2               =  0.800GGN501i + 0.200GAN501v + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 32107} G3N501T +GNO                =       GND400I +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 32108} G3N501T +GNO2               =       GPN5023                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 32109} G3N501T +GNO3               =       GND400I +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 32110} G3N501T +MEPERO             =  0.685GND400I + 0.315GAN501v + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32111} G3N501T +PERO1              =  0.800GND400I + 0.200GAN501v + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32112} G3N501T +PERO2              =  0.750GND400I + 0.250GAN501v + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32113} G3N501T +PERO3              =  0.800GND400I + 0.200GAN501v + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32114} G3N501T +PERO5              =  0.650GND400I + 0.350GAN501v + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32115} G3N501T +PERO6              =  0.650GND400I + 0.350GAN501v + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32116} G3N501T +PERO9              =       GND400I +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 32117} G1D501D                     =       GD02000 +      G3D3001                                : ARR( 0.200E+15,  3523., 0.0);
+{ 32118} GGD4001 +GHO                =       G2G400R                                               : ARR( 0.274E-11,     0., 0.0);
+{ 32119} GGD4001 +GHO                =       GGD4004 +      GHO2                                   : ARR( 0.631E-11,     0., 0.0);
+{ 32120} GGD4001 +GHO                =       G3G4001                                               : ARR( 0.209E-10,     0., 0.0);
+{ 32121} GGD4001 +GHO                =       G3D4001                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 32122} GGD4001 +GNO3               =       G3G4001 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 32123} GGD4001+HV               =       G2D3003 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 32124} GGD4001+HV               =       GGD3000 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 32125} G2G400R +GNO                =       G1G400b +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 32126} G2G400R +GNO                =       GGN400W                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 32127} G2G400R +GHO2               =       GGH400g                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 32128} G2G400R +GNO3               =       G1G400b +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 32129} G2G400R +MEPERO             =  0.340G1G400b + 0.330GGD4006 + 0.330GGD4003                 : ARR( 0.565E-13,  -845., 0.0);
+{ 32130} G2G400R +PERO1              =  0.460G1G400b + 0.270GGD4006 + 0.270GGD4003                 : ARR( 0.434E-13,  -900., 0.0);
+{ 32131} G2G400R +PERO2              =  0.400G1G400b + 0.300GGD4006 + 0.300GGD4003                 : ARR( 0.162E-13, -1400., 0.0);
+{ 32132} G2G400R +PERO3              =  0.460G1G400b + 0.270GGD4006 + 0.270GGD4003                 : ARR( 0.488E-13, -1250., 0.0);
+{ 32133} G2G400R +PERO5              =  0.460G1G400b + 0.270GGD4006 + 0.270GGD4003                 : ARR( 0.183E-11,   450., 0.0);
+{ 32134} G2G400R +PERO6              =  0.300G1G400b + 0.350GGD4006 + 0.350GGD4003                 : ARR( 0.168E-13, -1300., 0.0);
+{ 32135} G2G400R +PERO9              =  0.650G1G400b + 0.350GGD4003                                : ARR( 0.100E-10,     0., 0.0);
+{ 32136} G3G4001 +GHO2               =  0.800GGG4001 + 0.200GAG4004 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 32137} G3G4001 +GNO                =       GGD3000 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 32138} G3G4001 +GNO2               =       GPG4004                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 32139} G3G4001 +GNO3               =       GGD3000 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 32140} G3G4001 +MEPERO             =  0.685GGD3000 + 0.315GAG4004 + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32141} G3G4001 +PERO1              =  0.800GGD3000 + 0.200GAG4004 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32142} G3G4001 +PERO2              =  0.750GGD3000 + 0.250GAG4004 + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32143} G3G4001 +PERO3              =  0.800GGD3000 + 0.200GAG4004 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32144} G3G4001 +PERO5              =  0.650GGD3000 + 0.350GAG4004 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32145} G3G4001 +PERO6              =  0.650GGD3000 + 0.350GAG4004 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32146} G3G4001 +PERO9              =       GGD3000 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 32147} G1G400b                     =       GCO     +      GDD3001 +      GHO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 32148} GAD4001 +GHO                =       G2A400d                                               : ARR( 0.207E-11,     0., 0.0);
+{ 32149} GAD4001 +GHO                =       GAD4003 +      GHO2                                   : ARR( 0.643E-11,     0., 0.0);
+{ 32150} GAD4001 +GHO                =       G3A4004                                               : ARR( 0.212E-10,     0., 0.0);
+{ 32151} GAD4001 +GNO3               =       G3A4004 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 32152} GAD4001+HV               =       GAD3000 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 32153} G2A400d +GNO                =       G1A400i +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 32154} G2A400d +GNO                =       GAN400P                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 32155} G2A400d +GHO2               =       GAH400k                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 32156} G2A400d +GNO3               =       G1A400i +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 32157} G2A400d +MEPERO             =  0.340G1A400i + 0.330GAD4007 + 0.330GAD4004                 : ARR( 0.565E-13,  -845., 0.0);
+{ 32158} G2A400d +PERO1              =  0.460G1A400i + 0.270GAD4007 + 0.270GAD4004                 : ARR( 0.434E-13,  -900., 0.0);
+{ 32159} G2A400d +PERO2              =  0.400G1A400i + 0.300GAD4007 + 0.300GAD4004                 : ARR( 0.162E-13, -1400., 0.0);
+{ 32160} G2A400d +PERO3              =  0.460G1A400i + 0.270GAD4007 + 0.270GAD4004                 : ARR( 0.488E-13, -1250., 0.0);
+{ 32161} G2A400d +PERO5              =  0.460G1A400i + 0.270GAD4007 + 0.270GAD4004                 : ARR( 0.183E-11,   450., 0.0);
+{ 32162} G2A400d +PERO6              =  0.300G1A400i + 0.350GAD4007 + 0.350GAD4004                 : ARR( 0.168E-13, -1300., 0.0);
+{ 32163} G2A400d +PERO9              =  0.650G1A400i + 0.350GAD4004                                : ARR( 0.100E-10,     0., 0.0);
+{ 32164} G3A4004 +GHO2               =  0.800GAG4005 + 0.200GAA4003 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 32165} G3A4004 +GNO                =       GAD3000 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 32166} G3A4004 +GNO2               =       GPA4005                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 32167} G3A4004 +GNO3               =       GAD3000 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 32168} G3A4004 +MEPERO             =  0.685GAD3000 + 0.315GAA4003 + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32169} G3A4004 +PERO1              =  0.800GAD3000 + 0.200GAA4003 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32170} G3A4004 +PERO2              =  0.750GAD3000 + 0.250GAA4003 + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32171} G3A4004 +PERO3              =  0.800GAD3000 + 0.200GAA4003 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32172} G3A4004 +PERO5              =  0.650GAD3000 + 0.350GAA4003 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32173} G3A4004 +PERO6              =  0.650GAD3000 + 0.350GAA4003 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32174} G3A4004 +PERO9              =       GAD3000 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 32175} G1A400i                     =       GCO     +      GDD3001 +      GHO                     : ARR( 0.200E+15,  4342., 0.0);
+{ 32176} GPD4001                     =       G3D4001 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 32177} GPD4001 +GHO                =       G2P400f                                               : ARR( 0.274E-11,     0., 0.0);
+{ 32178} GPD4001 +GHO                =       GPD4003 +      GHO2                                   : ARR( 0.631E-11,     0., 0.0);
+{ 32179} GPD4001 +GHO                =       G3P4004                                               : ARR( 0.209E-10,     0., 0.0);
+{ 32180} GPD4001 +GNO3               =       G3P4004 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 32181} GPD4001+HV               =       G3D4001 +      GNO2                                   :  0.100E+01*SUN;
+{ 32182} GPD4001+HV               =       GPD3000 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 32183} G2P400f +GNO                =       G1P400k +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 32184} G2P400f +GNO                =       GPN400P                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 32185} G2P400f +GHO2               =       GPH400l                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 32186} G2P400f +GNO3               =       G1P400k +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 32187} G2P400f +MEPERO             =  0.340G1P400k + 0.330GPD4006 + 0.330GPD4004                 : ARR( 0.565E-13,  -845., 0.0);
+{ 32188} G2P400f +PERO1              =  0.460G1P400k + 0.270GPD4006 + 0.270GPD4004                 : ARR( 0.434E-13,  -900., 0.0);
+{ 32189} G2P400f +PERO2              =  0.400G1P400k + 0.300GPD4006 + 0.300GPD4004                 : ARR( 0.162E-13, -1400., 0.0);
+{ 32190} G2P400f +PERO3              =  0.460G1P400k + 0.270GPD4006 + 0.270GPD4004                 : ARR( 0.488E-13, -1250., 0.0);
+{ 32191} G2P400f +PERO5              =  0.460G1P400k + 0.270GPD4006 + 0.270GPD4004                 : ARR( 0.183E-11,   450., 0.0);
+{ 32192} G2P400f +PERO6              =  0.300G1P400k + 0.350GPD4006 + 0.350GPD4004                 : ARR( 0.168E-13, -1300., 0.0);
+{ 32193} G2P400f +PERO9              =  0.650G1P400k + 0.350GPD4004                                : ARR( 0.100E-10,     0., 0.0);
+{ 32194} G3P4004 +GHO2               =  0.800GPG4005 + 0.200GPA4006 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 32195} G3P4004 +GNO                =       GPD3000 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 32196} G3P4004 +GNO2               =       GPP4003                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 32197} G3P4004 +GNO3               =       GPD3000 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 32198} G3P4004 +MEPERO             =  0.685GPD3000 + 0.315GPA4006 + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32199} G3P4004 +PERO1              =  0.800GPD3000 + 0.200GPA4006 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32200} G3P4004 +PERO2              =  0.750GPD3000 + 0.250GPA4006 + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32201} G3P4004 +PERO3              =  0.800GPD3000 + 0.200GPA4006 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32202} G3P4004 +PERO5              =  0.650GPD3000 + 0.350GPA4006 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32203} G3P4004 +PERO6              =  0.650GPD3000 + 0.350GPA4006 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32204} G3P4004 +PERO9              =       GPD3000 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 32205} G1P400k                     =       GCO     +      GDD3001 +      GNO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 32206} GGD4002 +GHO                =       GGD4005 +      GHO2                                   : ARR( 0.204E-10,     0., 0.0);
+{ 32207} GGD4002 +GHO                =       G3G4002                                               : ARR( 0.212E-10,     0., 0.0);
+{ 32208} GGD4002 +GHO                =       G3D4002                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 32209} GGD4002 +GNO3               =       G3G4002 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 32210} GGD4002+HV               =       GDD3000 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 32211} GGD4002+HV               =       G2G3004 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 32212} G3G4002 +GHO2               =  0.800GGG4001 + 0.200GAG4005 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 32213} G3G4002 +GNO                =       G2G3004 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 32214} G3G4002 +GNO2               =       GPG4005                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 32215} G3G4002 +GNO3               =       G2G3004 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 32216} G3G4002 +MEPERO             =  0.685G2G3004 + 0.315GAG4005 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 32217} G3G4002 +PERO1              =  0.800G2G3004 + 0.200GAG4005 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 32218} G3G4002 +PERO2              =  0.750G2G3004 + 0.250GAG4005 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 32219} G3G4002 +PERO3              =  0.800G2G3004 + 0.200GAG4005 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 32220} G3G4002 +PERO5              =  0.650G2G3004 + 0.350GAG4005 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 32221} G3G4002 +PERO6              =  0.650G2G3004 + 0.350GAG4005 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 32222} G3G4002 +PERO9              =       G2G3004 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 32223} GAD4002 +GHO                =       GAD4005 +      GHO2                                   : ARR( 0.154E-10,     0., 0.0);
+{ 32224} GAD4002 +GHO                =       G3A4005                                               : ARR( 0.217E-10,     0., 0.0);
+{ 32225} GAD4002 +GNO3               =       G3A4005 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 32226} GAD4002+HV               =       G2A3005 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 32227} G3A4005 +GHO2               =  0.800GAG4004 + 0.200GAA4003 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 32228} G3A4005 +GNO                =       G2A3005 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 32229} G3A4005 +GNO2               =       GPA4006                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 32230} G3A4005 +GNO3               =       G2A3005 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 32231} G3A4005 +MEPERO             =  0.685G2A3005 + 0.315GAA4003 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 32232} G3A4005 +PERO1              =  0.800G2A3005 + 0.200GAA4003 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 32233} G3A4005 +PERO2              =  0.750G2A3005 + 0.250GAA4003 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 32234} G3A4005 +PERO3              =  0.800G2A3005 + 0.200GAA4003 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 32235} G3A4005 +PERO5              =  0.650G2A3005 + 0.350GAA4003 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 32236} G3A4005 +PERO6              =  0.650G2A3005 + 0.350GAA4003 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 32237} G3A4005 +PERO9              =       G2A3005 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 32238} GPD4002                     =       G3D4002 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 32239} GPD4002 +GHO                =       GPD4005 +      GHO2                                   : ARR( 0.204E-10,     0., 0.0);
+{ 32240} GPD4002 +GHO                =       G3P4005                                               : ARR( 0.213E-10,     0., 0.0);
+{ 32241} GPD4002 +GNO3               =       G3P4005 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 32242} GPD4002+HV               =       G3D4002 +      GNO2                                   :  0.100E+01*SUN;
+{ 32243} GPD4002+HV               =       G2P3005 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 32244} G3P4005 +GHO2               =  0.800GPG4004 + 0.200GPA4005 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 32245} G3P4005 +GNO                =       G2P3005 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 32246} G3P4005 +GNO2               =       GPP4003                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 32247} G3P4005 +GNO3               =       G2P3005 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 32248} G3P4005 +MEPERO             =  0.685G2P3005 + 0.315GPA4005 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 32249} G3P4005 +PERO1              =  0.800G2P3005 + 0.200GPA4005 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 32250} G3P4005 +PERO2              =  0.750G2P3005 + 0.250GPA4005 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 32251} G3P4005 +PERO3              =  0.800G2P3005 + 0.200GPA4005 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 32252} G3P4005 +PERO5              =  0.650G2P3005 + 0.350GPA4005 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 32253} G3P4005 +PERO6              =  0.650G2P3005 + 0.350GPA4005 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 32254} G3P4005 +PERO9              =       G2P3005 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 32255} GND5014 +GHO                =       G3N400H +      GCO                                    : ARR( 0.130E-10,     0., 0.0);
+{ 32256} GND5014 +GHO                =       G3N501U                                               : ARR( 0.425E-11,     0., 0.0);
+{ 32257} GND5014 +GNO3               =       G3N400H +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 32258} GND5014 +GNO3               =       G3N501U +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 32259} GND5014+HV               =       GCO     +      G3N400H +      GHO2                    :  0.100E+01*SUN;
+{ 32260} GND5014+HV               =       GND400D +      GCO                                    :  0.100E+01*SUN;
+{ 32261} GND5014+HV               =       GND3001 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 32262} GND5014+HV               =       G1D500o +      GNO2                                   :  0.100E+01*SUN;
+{ 32263} GND5014+HV               =       GDD4002 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 32264} G3N501U +GHO2               =  0.800GGN501v + 0.200GAN5024 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 32265} G3N501U +GNO                =       GDD4002 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 32266} G3N501U +GNO2               =       GPN502E                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 32267} G3N501U +GNO3               =       GDD4002 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 32268} G3N501U +MEPERO             =  0.685GDD4002 + 0.315GAN5024 + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32269} G3N501U +PERO1              =  0.800GDD4002 + 0.200GAN5024 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32270} G3N501U +PERO2              =  0.750GDD4002 + 0.250GAN5024 + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32271} G3N501U +PERO3              =  0.800GDD4002 + 0.200GAN5024 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32272} G3N501U +PERO5              =  0.650GDD4002 + 0.350GAN5024 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32273} G3N501U +PERO6              =  0.650GDD4002 + 0.350GAN5024 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32274} G3N501U +PERO9              =       GDD4002 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 32275} GHN504X +GHO                =       GND5011 +      GHO                                    : ARR( 0.516E-11,     0., 0.0);
+{ 32276} GHN504X +GHO                =       G3H501m                                               : ARR( 0.426E-11,     0., 0.0);
+{ 32277} GHN504X +GHO                =       G2N505D                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 32278} GHN504X +GNO3               =       G3H501m +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 32279} GHN504X+HV               =       G3K2000 +      GND3005 +      GHO                     :  0.100E+01*SUN;
+{ 32280} GHN504X+HV               =       G1N5069 +      GHO                                    :  0.100E+01*SUN;
+{ 32281} GHN504X+HV               =       G1H507m +      GNO2                                   :  0.100E+01*SUN;
+{ 32282} GHN504X+HV               =       GHD4007 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 32283} G3H501m +GHO2               =  0.800GGH502K + 0.200GAH502Z + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 32284} G3H501m +GNO                =       GHD4007 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 32285} G3H501m +GNO2               =       GPH502k                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 32286} G3H501m +GNO3               =       GHD4007 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 32287} G3H501m +MEPERO             =  0.685GHD4007 + 0.315GAH502Z + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32288} G3H501m +PERO1              =  0.800GHD4007 + 0.200GAH502Z + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32289} G3H501m +PERO2              =  0.750GHD4007 + 0.250GAH502Z + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32290} G3H501m +PERO3              =  0.800GHD4007 + 0.200GAH502Z + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32291} G3H501m +PERO5              =  0.650GHD4007 + 0.350GAH502Z + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32292} G3H501m +PERO6              =  0.650GHD4007 + 0.350GAH502Z + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32293} G3H501m +PERO9              =       GHD4007 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 32294} G2N505D +GNO                =       G1N5069 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 32295} G2N505D +GNO                =       GNN502Y                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 32296} G2N505D +GHO2               =       GHN504X                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 32297} G2N505D +GNO3               =       G1N5069 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 32298} G2N505D +MEPERO             =  0.340G1N5069 + 0.330GND5015 + 0.330GND5011                 : ARR( 0.565E-13,  -845., 0.0);
+{ 32299} G2N505D +PERO1              =  0.460G1N5069 + 0.270GND5015 + 0.270GND5011                 : ARR( 0.434E-13,  -900., 0.0);
+{ 32300} G2N505D +PERO2              =  0.400G1N5069 + 0.300GND5015 + 0.300GND5011                 : ARR( 0.162E-13, -1400., 0.0);
+{ 32301} G2N505D +PERO3              =  0.460G1N5069 + 0.270GND5015 + 0.270GND5011                 : ARR( 0.488E-13, -1250., 0.0);
+{ 32302} G2N505D +PERO5              =  0.460G1N5069 + 0.270GND5015 + 0.270GND5011                 : ARR( 0.183E-11,   450., 0.0);
+{ 32303} G2N505D +PERO6              =  0.300G1N5069 + 0.350GND5015 + 0.350GND5011                 : ARR( 0.168E-13, -1300., 0.0);
+{ 32304} G2N505D +PERO9              =  0.650G1N5069 + 0.350GND5011                                : ARR( 0.100E-10,     0., 0.0);
+{ 32305} G1H507m                     =       GHD4007 +      GCO     +      GHO2                    : ARR( 0.200E+15,  4861., 0.0);
+{ 32306} GND5015 +GHO                =       GND5011 +      GHO2                                   : ARR( 0.137E-11,     0., 0.0);
+{ 32307} GND5015 +GHO                =       G3N501W                                               : ARR( 0.452E-11,     0., 0.0);
+{ 32308} GND5015 +GNO3               =       G3N501W +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 32309} GND5015+HV               =       G3K2000 +      GND3005 +      GHO2                    :  0.100E+01*SUN;
+{ 32310} GND5015+HV               =       G1D500h +      GNO2                                   :  0.100E+01*SUN;
+{ 32311} GND5015+HV               =       GDK4003 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 32312} G3N501W +GHO2               =  0.800GGN501d + 0.200GAN501t + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 32313} G3N501W +GNO                =       GDK4003 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 32314} G3N501W +GNO2               =       GPN501w                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 32315} G3N501W +GNO3               =       GDK4003 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 32316} G3N501W +MEPERO             =  0.685GDK4003 + 0.315GAN501t + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32317} G3N501W +PERO1              =  0.800GDK4003 + 0.200GAN501t + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32318} G3N501W +PERO2              =  0.750GDK4003 + 0.250GAN501t + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32319} G3N501W +PERO3              =  0.800GDK4003 + 0.200GAN501t + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32320} G3N501W +PERO5              =  0.650GDK4003 + 0.350GAN501t + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32321} G3N501W +PERO6              =  0.650GDK4003 + 0.350GAN501t + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32322} G3N501W +PERO9              =       GDK4003 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 32323} GHN504Y +GHO                =       GHN506U +      GHO2                                   : ARR( 0.816E-12,     0., 0.0);
+{ 32324} GHN504Y +GHO                =       GND5016 +      GHO                                    : ARR( 0.995E-11,     0., 0.0);
+{ 32325} GHN504Y +GHO                =       G2N503Z                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 32326} GHN504Y+HV               =       G1H507n +      GNO2                                   :  0.100E+01*SUN;
+{ 32327} GHN504Y+HV               =       G3N3004 +      G3H2000                                :  0.100E+01*SUN;
+{ 32328} GHN504Y+HV               =       G1N5041 +      GHO                                    :  0.100E+01*SUN;
+{ 32329} G1H507n                     =       GDO2000 +      G3H2000 +      GCO                     : ARR( 0.200E+15,  3326., 0.0);
+{ 32330} GND5016 +GHO                =       GND501X +      GHO2                                   : ARR( 0.817E-12,     0., 0.0);
+{ 32331} GND5016 +GHO                =       G3N3004 + 2.000GCO                                    : ARR( 0.129E-10,     0., 0.0);
+{ 32332} GND5016 +GNO3               =       G3N3004 +      GHNO3   + 2.000GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 32333} GND5016+HV               =       G1D501E +      GNO2                                   :  0.100E+01*SUN;
+{ 32334} GND5016+HV               =       G3N3004 +      G3D2000                                :  0.100E+01*SUN;
+{ 32335} GND5016+HV               =       G3N3004 +      GCO     +      GCO     +      GHO2     :  0.100E+01*SUN;
+{ 32336} GND5016+HV               =       GND400K +      GCO                                    :  0.100E+01*SUN;
+{ 32337} GND5016+HV               =       GND3004 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 32338} G1D501E                     =       GDO2000 +      G3D2000 +      GCO                     : ARR( 0.200E+15,  3291., 0.0);
+{ 32339} GGN400I +GHO                =       G3G4003                                               : ARR( 0.429E-11,     0., 0.0);
+{ 32340} GGN400I +GHO                =       G3N400H                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 32341} GGN400I +GNO3               =       G3G4003 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 32342} GGN400I+HV               =       G2N300A +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 32343} GGN400I+HV               =       G1G400c +      GNO2                                   :  0.100E+01*SUN;
+{ 32344} GGN400I+HV               =       GGD3000 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 32345} G3G4003 +GHO2               =  0.800GGG4002 + 0.200GAG4002 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 32346} G3G4003 +GNO                =       GGD3000 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 32347} G3G4003 +GNO2               =       GPG4002                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 32348} G3G4003 +GNO3               =       GGD3000 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 32349} G3G4003 +MEPERO             =  0.685GGD3000 + 0.315GAG4002 + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32350} G3G4003 +PERO1              =  0.800GGD3000 + 0.200GAG4002 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32351} G3G4003 +PERO2              =  0.750GGD3000 + 0.250GAG4002 + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32352} G3G4003 +PERO3              =  0.800GGD3000 + 0.200GAG4002 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32353} G3G4003 +PERO5              =  0.650GGD3000 + 0.350GAG4002 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32354} G3G4003 +PERO6              =  0.650GGD3000 + 0.350GAG4002 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32355} G3G4003 +PERO9              =       GGD3000 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 32356} G1G400c                     =       GGD3000 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5054., 0.0);
+{ 32357} GAN400J +GHO                =       G3A4001                                               : ARR( 0.433E-11,     0., 0.0);
+{ 32358} GAN400J +GHO                =       G2N300A +      GCO2                                   : ARR( 0.542E-12,     0., 0.0);
+{ 32359} GAN400J +GNO3               =       G3A4001 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 32360} GAN400J+HV               =       G1A400j +      GNO2                                   :  0.100E+01*SUN;
+{ 32361} GAN400J+HV               =       GAD3000 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 32362} G1A400j                     =       GAD3000 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5054., 0.0);
+{ 32363} GAH400C +GHO                =       GAH400l +      GHO2                                   : ARR( 0.828E-12,     0., 0.0);
+{ 32364} GAH400C +GHO                =       GAN400L +      GHO                                    : ARR( 0.383E-11,     0., 0.0);
+{ 32365} GAH400C +GHO                =       G2A400A                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 32366} GAH400C +GHO                =       GND3004 +      GHO     +      GCO2                    : ARR( 0.536E-12,     0., 0.0);
+{ 32367} GAH400C+HV               =       G1A400k +      GNO2                                   :  0.100E+01*SUN;
+{ 32368} GAH400C+HV               =       G1A400C +      GHO                                    :  0.100E+01*SUN;
+{ 32369} G1A400k                     =       GCH2O   +      GAH3007 +      GHO2                    : ARR( 0.200E+15,  4465., 0.0);
+{ 32370} G1A400k                     =       GDO2000 +      GAD2000 +      GHO                     : ARR( 0.200E+15,  5198., 0.0);
+{ 32371} GAN400K +GHO                =       GAN400a +      GHO2                                   : ARR( 0.842E-12,     0., 0.0);
+{ 32372} GAN400K +GHO                =       GAN400L +      GHO2                                   : ARR( 0.973E-12,     0., 0.0);
+{ 32373} GAN400K +GHO                =       G1A400d                                               : ARR( 0.220E-17,    85., 2.0);
+{ 32374} GAN400K +GHO                =       G1A400C                                               : ARR( 0.220E-17,    85., 2.0);
+{ 32375} GAN400K +GHO                =       GND3004 +      GHO2    +      GCO2                    : ARR( 0.544E-12,     0., 0.0);
+{ 32376} GAN400K+HV               =       G1A400K +      GNO2                                   :  0.100E+01*SUN;
+{ 32377} GAN400L +GHO                =       GAN400Z +      GHO2                                   : ARR( 0.844E-12,     0., 0.0);
+{ 32378} GAN400L +GHO                =       G1A400h                                               : ARR( 0.220E-17,    85., 2.0);
+{ 32379} GAN400L +GHO                =       G3N3004 +      GCO2                                   : ARR( 0.545E-12,     0., 0.0);
+{ 32380} GAN400L+HV               =       G1A400c +      GNO2                                   :  0.100E+01*SUN;
+{ 32381} GAN400L+HV               =       GND3004 +      GCO2                                   :  0.100E+01*SUN;
+{ 32382} GPH400D                     =       G3H400G +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 32383} GPH400D +GHO                =       GPH400m +      GHO2                                   : ARR( 0.826E-12,     0., 0.0);
+{ 32384} GPH400D +GHO                =       GPN400L +      GHO                                    : ARR( 0.516E-11,     0., 0.0);
+{ 32385} GPH400D +GHO                =       G2P400B                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 32386} GPH400D+HV               =       G1P400l +      GNO2                                   :  0.100E+01*SUN;
+{ 32387} GPH400D+HV               =       G1P400C +      GHO                                    :  0.100E+01*SUN;
+{ 32388} GPH400D+HV               =       G3H400G +      GNO2                                   :  0.100E+01*SUN;
+{ 32389} G1P400l                     =       GCH2O   +      GPH3007 +      GHO2                    : ARR( 0.200E+15,  4465., 0.0);
+{ 32390} G1P400l                     =       GDO2000 +      GPD2000 +      GHO                     : ARR( 0.200E+15,  5198., 0.0);
+{ 32391} GPN400K                     =       G3N400E +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 32392} GPN400K +GHO                =       GPN400Q +      GHO2                                   : ARR( 0.845E-12,     0., 0.0);
+{ 32393} GPN400K +GHO                =       GPN400L +      GHO2                                   : ARR( 0.132E-11,     0., 0.0);
+{ 32394} GPN400K +GHO                =       G1P400e                                               : ARR( 0.221E-17,    85., 2.0);
+{ 32395} GPN400K +GHO                =       G1P400C                                               : ARR( 0.221E-17,    85., 2.0);
+{ 32396} GPN400K+HV               =       G1P400L +      GNO2                                   :  0.100E+01*SUN;
+{ 32397} GPN400K+HV               =       G3N400E +      GNO2                                   :  0.100E+01*SUN;
+{ 32398} GPN400L                     =       G3N400W +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 32399} GPN400L +GHO                =       GPN400a +      GHO2                                   : ARR( 0.804E-12,     0., 0.0);
+{ 32400} GPN400L +GHO                =       GPK4009 +      GNO2                                   : ARR( 0.718E-13,     0., 0.0);
+{ 32401} GPN400L +GHO                =       G1P400j                                               : ARR( 0.210E-17,    85., 2.0);
+{ 32402} GPN400L+HV               =       G1P400d +      GNO2                                   :  0.100E+01*SUN;
+{ 32403} GPN400L+HV               =       G3N3004 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 32404} G3N400W +GHO2               =  0.800GGN400Y + 0.200GAN400L + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 32405} G3N400W +GNO                =       G3N3004 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 32406} G3N400W +GNO2               =       GPN400L                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 32407} G3N400W +GNO3               =       G3N3004 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 32408} G3N400W +MEPERO             =  0.685G3N3004 + 0.315GAN400L + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 32409} G3N400W +PERO1              =  0.800G3N3004 + 0.200GAN400L + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 32410} G3N400W +PERO2              =  0.750G3N3004 + 0.250GAN400L + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 32411} G3N400W +PERO3              =  0.800G3N3004 + 0.200GAN400L + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 32412} G3N400W +PERO5              =  0.650G3N3004 + 0.350GAN400L + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 32413} G3N400W +PERO6              =  0.650G3N3004 + 0.350GAN400L + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 32414} G3N400W +PERO9              =       G3N3004 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 32415} GHK500n +GHO                =       GHK500o +      GHO2                                   : ARR( 0.517E-11,     0., 0.0);
+{ 32416} GHK500n +GHO                =       GHK500z +      GHO2                                   : ARR( 0.636E-11,     0., 0.0);
+{ 32417} GHK500n +GHO                =       GDK500B +      GHO                                    : ARR( 0.516E-10,     0., 0.0);
+{ 32418} GHK500n +GHO                =       G2K500d                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 32419} GHK500n+HV               =       G3K3002 +      GHD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 32420} GHK500n+HV               =       G1K500m +      GHO                                    :  0.100E+01*SUN;
+{ 32421} GHN504Z +GHO                =       GHN504c +      GHO2                                   : ARR( 0.209E-11,     0., 0.0);
+{ 32422} GHN504Z +GHO                =       GND5017 +      GHO                                    : ARR( 0.163E-10,     0., 0.0);
+{ 32423} GHN504Z +GHO                =       G2N503a                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 32424} GHN504Z+HV               =       G3K2000 +      GHD3005 +      GNO2                    :  0.100E+01*SUN;
+{ 32425} GHN504Z+HV               =       GNK3000 +      GHD2000                                :  0.100E+01*SUN;
+{ 32426} GHN504Z+HV               =       G1H507o +      GNO2                                   :  0.100E+01*SUN;
+{ 32427} GHN504Z+HV               =       G1N5042 +      GHO                                    :  0.100E+01*SUN;
+{ 32428} G1H507o                     =       G3K2000 +      GHD3005                                : ARR( 0.200E+15,  2923., 0.0);
+{ 32429} GND5017 +GHO                =       GND5018 +      GHO2                                   : ARR( 0.128E-11,     0., 0.0);
+{ 32430} GND5017 +GHO                =       G3N501X                                               : ARR( 0.212E-10,     0., 0.0);
+{ 32431} GND5017 +GNO3               =       G3N501X +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 32432} GND5017+HV               =       G3K2000 +      GDD3001 +      GNO2                    :  0.100E+01*SUN;
+{ 32433} GND5017+HV               =       G1D500b +      GNO2                                   :  0.100E+01*SUN;
+{ 32434} GND5017+HV               =       GND4008 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 32435} G3N501X +GHO2               =  0.800GGN501w + 0.200GAN501g + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 32436} G3N501X +GNO                =       GND4008 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 32437} G3N501X +GNO2               =       GPN501n                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 32438} G3N501X +GNO3               =       GND4008 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 32439} G3N501X +MEPERO             =  0.685GND4008 + 0.315GAN501g + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32440} G3N501X +PERO1              =  0.800GND4008 + 0.200GAN501g + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32441} G3N501X +PERO2              =  0.750GND4008 + 0.250GAN501g + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32442} G3N501X +PERO3              =  0.800GND4008 + 0.200GAN501g + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32443} G3N501X +PERO5              =  0.650GND4008 + 0.350GAN501g + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32444} G3N501X +PERO6              =  0.650GND4008 + 0.350GAN501g + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32445} G3N501X +PERO9              =       GND4008 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 32446} GHN504a +GHO                =       GHN504c +      GHO2                                   : ARR( 0.172E-11,     0., 0.0);
+{ 32447} GHN504a +GHO                =       GND500v +      GHO                                    : ARR( 0.101E-10,     0., 0.0);
+{ 32448} GHN504a +GHO                =       G2N505E                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 32449} GHN504a+HV               =       G1H507p +      GNO2                                   :  0.100E+01*SUN;
+{ 32450} GHN504a+HV               =       G3N400C +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 32451} GHN504a+HV               =       GD02000 +      GHN3008                                :  0.100E+01*SUN;
+{ 32452} GHN504a+HV               =       G1N505O +      GHO                                    :  0.100E+01*SUN;
+{ 32453} G2N505E +GNO                =       G1N505O +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 32454} G2N505E +GNO                =       GNN5027                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 32455} G2N505E +GHO2               =       GHN504a                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 32456} G2N505E +GNO3               =       G1N505O +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 32457} G2N505E +MEPERO             =  0.480G1N505O + 0.260GNK5013 + 0.260GND500v                 : ARR( 0.164E-12,  -795., 0.0);
+{ 32458} G2N505E +PERO1              =  0.600G1N505O + 0.200GNK5013 + 0.200GND500v                 : ARR( 0.126E-12,  -850., 0.0);
+{ 32459} G2N505E +PERO2              =  0.560G1N505O + 0.220GNK5013 + 0.220GND500v                 : ARR( 0.471E-13, -1350., 0.0);
+{ 32460} G2N505E +PERO3              =  0.600G1N505O + 0.200GNK5013 + 0.200GND500v                 : ARR( 0.142E-12, -1200., 0.0);
+{ 32461} G2N505E +PERO5              =  0.600G1N505O + 0.200GNK5013 + 0.200GND500v                 : ARR( 0.533E-11,   500., 0.0);
+{ 32462} G2N505E +PERO6              =  0.460G1N505O + 0.270GNK5013 + 0.270GND500v                 : ARR( 0.488E-13, -1250., 0.0);
+{ 32463} G2N505E +PERO9              =  0.800G1N505O + 0.200GND500v                                : ARR( 0.100E-10,     0., 0.0);
+{ 32464} G1H507p                     =       GDO3001 +      G3H2000                                : ARR( 0.200E+15,  3009., 0.0);
+{ 32465} GGN500g +GHO                =       GGN501w +      GHO2                                   : ARR( 0.182E-11,     0., 0.0);
+{ 32466} GGN500g +GHO                =       GGN501q +      GHO2                                   : ARR( 0.137E-11,     0., 0.0);
+{ 32467} GGN500g +GHO                =       G3N500T                                               : ARR( 0.206E-11,  -190., 0.0);
+{ 32468} GGN500g+HV               =       G1G500X +      GNO2                                   :  0.100E+01*SUN;
+{ 32469} GGN500g+HV               =       GND4007 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 32470} GAN500n +GHO                =       GAN501g +      GHO2                                   : ARR( 0.198E-11,     0., 0.0);
+{ 32471} GAN500n +GHO                =       GAN501k +      GHO2                                   : ARR( 0.110E-11,     0., 0.0);
+{ 32472} GAN500n +GHO                =       GND4007 +      GHO2    +      GCO2                    : ARR( 0.614E-12,     0., 0.0);
+{ 32473} GAN500n+HV               =       G1A500c +      GNO2                                   :  0.100E+01*SUN;
+{ 32474} GPN500o                     =       G3N500T +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 32475} GPN500o +GHO                =       GPN501n +      GHO2                                   : ARR( 0.200E-11,     0., 0.0);
+{ 32476} GPN500o +GHO                =       GPN500q +      GHO2                                   : ARR( 0.150E-11,     0., 0.0);
+{ 32477} GPN500o+HV               =       G1P500d +      GNO2                                   :  0.100E+01*SUN;
+{ 32478} GPN500o+HV               =       G3N500T +      GNO2                                   :  0.100E+01*SUN;
+{ 32479} GHK500o +GHO                =       GHK500p +      GHO2                                   : ARR( 0.631E-11,     0., 0.0);
+{ 32480} GHK500o +GHO                =       GDK500R +      GHO                                    : ARR( 0.512E-10,     0., 0.0);
+{ 32481} GHK500o +GHO                =       G2K500e                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 32482} GHK500o+HV               =       G3K2000 +      G3H3003                                :  0.100E+01*SUN;
+{ 32483} GHK500o+HV               =       G1K500p +      GHO                                    :  0.100E+01*SUN;
+{ 32484} GDK500R +GHO                =       GDK500W +      GHO2                                   : ARR( 0.384E-11,     0., 0.0);
+{ 32485} GDK500R +GHO                =       G3K500e                                               : ARR( 0.661E-10,     0., 0.0);
+{ 32486} GDK500R +GNO3               =       G3K500e +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 32487} GDK500R+HV               =       G3K2000 +      G3D3001                                :  0.100E+01*SUN;
+{ 32488} GDK500R+HV               =       GDK4008 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 32489} G3K500e +GHO2               =  0.800GGK500Y + 0.200GAK500T + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 32490} G3K500e +GNO                =       GDK4008 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 32491} G3K500e +GNO2               =       GPK500Y                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 32492} G3K500e +GNO3               =       GDK4008 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 32493} G3K500e +MEPERO             =  0.685GDK4008 + 0.315GAK500T + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32494} G3K500e +PERO1              =  0.800GDK4008 + 0.200GAK500T + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32495} G3K500e +PERO2              =  0.750GDK4008 + 0.250GAK500T + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32496} G3K500e +PERO3              =  0.800GDK4008 + 0.200GAK500T + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32497} G3K500e +PERO5              =  0.650GDK4008 + 0.350GAK500T + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32498} G3K500e +PERO6              =  0.650GDK4008 + 0.350GAK500T + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32499} G3K500e +PERO9              =       GDK4008 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 32500} GHN504b +GHO                =       GHN505b +      GHO2                                   : ARR( 0.646E-11,     0., 0.0);
+{ 32501} GHN504b +GHO                =       GND500q +      GHO                                    : ARR( 0.524E-10,     0., 0.0);
+{ 32502} GHN504b +GHO                =       G2N503b                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 32503} GHN504b+HV               =       G1H507q +      GNO2                                   :  0.100E+01*SUN;
+{ 32504} GHN504b+HV               =       G3N3002 +      GHD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 32505} GHN504b+HV               =       G1N5043 +      GHO                                    :  0.100E+01*SUN;
+{ 32506} G1H507q                     =       GHD400F +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4576., 0.0);
+{ 32507} GHD500u +GHO                =       GDK500R +      GHO                                    : ARR( 0.822E-10,     0., 0.0);
+{ 32508} GHD500u +GHO                =       GHD500z +      GHO2                                   : ARR( 0.206E-10,     0., 0.0);
+{ 32509} GHD500u +GHO                =       G3H501n                                               : ARR( 0.214E-10,     0., 0.0);
+{ 32510} GHD500u +GNO3               =       G3H501n +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 32511} GHD500u+HV               =       G3K2000 +      GDD3001 +      GHO                     :  0.100E+01*SUN;
+{ 32512} GHD500u+HV               =       G1D500b +      GHO                                    :  0.100E+01*SUN;
+{ 32513} GHD500u+HV               =       GHD4007 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 32514} G3H501n +GHO2               =  0.800GGH502M + 0.200GAH502b + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 32515} G3H501n +GNO                =       GHD4007 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 32516} G3H501n +GNO2               =       GPH502m                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 32517} G3H501n +GNO3               =       GHD4007 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 32518} G3H501n +MEPERO             =  0.685GHD4007 + 0.315GAH502b + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32519} G3H501n +PERO1              =  0.800GHD4007 + 0.200GAH502b + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32520} G3H501n +PERO2              =  0.750GHD4007 + 0.250GAH502b + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32521} G3H501n +PERO3              =  0.800GHD4007 + 0.200GAH502b + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32522} G3H501n +PERO5              =  0.650GHD4007 + 0.350GAH502b + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32523} G3H501n +PERO6              =  0.650GHD4007 + 0.350GAH502b + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32524} G3H501n +PERO9              =       GHD4007 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 32525} GDK500S +GHO                =       GDK500R +      GHO2                                   : ARR( 0.200E-10,     0., 0.0);
+{ 32526} GDK500S +GHO                =       GDK500Z +      GHO2                                   : ARR( 0.200E-10,     0., 0.0);
+{ 32527} GDK500S +GHO                =       G3K500f                                               : ARR( 0.209E-10,     0., 0.0);
+{ 32528} GDK500S +GNO3               =       G3K500f +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 32529} GDK500S+HV               =       G3K2000 +      GDD3001 +      GHO2                    :  0.100E+01*SUN;
+{ 32530} GDK500S+HV               =       GDK4003 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 32531} G3K500f +GHO2               =  0.800GGK500S + 0.200GAK500R + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 32532} G3K500f +GNO                =       GDK4003 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 32533} G3K500f +GNO2               =       GPK500S                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 32534} G3K500f +GNO3               =       GDK4003 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 32535} G3K500f +MEPERO             =  0.685GDK4003 + 0.315GAK500R + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32536} G3K500f +PERO1              =  0.800GDK4003 + 0.200GAK500R + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32537} G3K500f +PERO2              =  0.750GDK4003 + 0.250GAK500R + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32538} G3K500f +PERO3              =  0.800GDK4003 + 0.200GAK500R + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32539} G3K500f +PERO5              =  0.650GDK4003 + 0.350GAK500R + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32540} G3K500f +PERO6              =  0.650GDK4003 + 0.350GAK500R + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32541} G3K500f +PERO9              =       GDK4003 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 32542} GGH500f +GHO                =       GGH502M +      GHO2                                   : ARR( 0.844E-11,     0., 0.0);
+{ 32543} GGH500f +GHO                =       GGK500K +      GHO                                    : ARR( 0.415E-10,     0., 0.0);
+{ 32544} GGH500f +GHO                =       GGH502S +      GHO2                                   : ARR( 0.633E-11,     0., 0.0);
+{ 32545} GGH500f +GHO                =       G2G500W                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 32546} GGH500f +GHO                =       G3H500K                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 32547} GGH500f+HV               =       G1G500X +      GHO                                    :  0.100E+01*SUN;
+{ 32548} GGH500f+HV               =       GHD4008 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 32549} GAH500k +GHO                =       GAH502b +      GHO2                                   : ARR( 0.852E-11,     0., 0.0);
+{ 32550} GAH500k +GHO                =       GAK500J +      GHO                                    : ARR( 0.419E-10,     0., 0.0);
+{ 32551} GAH500k +GHO                =       GAH502j +      GHO2                                   : ARR( 0.473E-11,     0., 0.0);
+{ 32552} GAH500k +GHO                =       G2A500b                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 32553} GAH500k+HV               =       G1A500c +      GHO                                    :  0.100E+01*SUN;
+{ 32554} GPH500k                     =       G3H500K +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 32555} GPH500k +GHO                =       GPH502m +      GHO2                                   : ARR( 0.844E-11,     0., 0.0);
+{ 32556} GPH500k +GHO                =       GPK500K +      GHO                                    : ARR( 0.415E-10,     0., 0.0);
+{ 32557} GPH500k +GHO                =       GPH502r +      GHO2                                   : ARR( 0.633E-11,     0., 0.0);
+{ 32558} GPH500k +GHO                =       G2P500c                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 32559} GPH500k+HV               =       G1P500d +      GHO                                    :  0.100E+01*SUN;
+{ 32560} GPH500k+HV               =       G3H500K +      GNO2                                   :  0.100E+01*SUN;
+{ 32561} GDK500T +GHO                =       GDK500Z +      GHO2                                   : ARR( 0.268E-10,     0., 0.0);
+{ 32562} GDK500T +GHO                =       GDK500U +      GHO2                                   : ARR( 0.634E-11,     0., 0.0);
+{ 32563} GDK500T +GHO                =       G3K4008 +      GCO                                    : ARR( 0.128E-10,     0., 0.0);
+{ 32564} GDK500T +GNO3               =       G3K4008 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 32565} GDK500T+HV               =       G3K4008 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 32566} GDK500T+HV               =       GDO4005 +      GCO                                    :  0.100E+01*SUN;
+{ 32567} GDK500T+HV               =       GOO3000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 32568} GGO500B +GHO                =       GGK500S +      GHO2                                   : ARR( 0.855E-11,     0., 0.0);
+{ 32569} GGO500B +GHO                =       GGK500K +      GHO2                                   : ARR( 0.105E-10,     0., 0.0);
+{ 32570} GGO500B +GHO                =       GGK500U +      GHO2                                   : ARR( 0.641E-11,     0., 0.0);
+{ 32571} GGO500B +GHO                =       G3K500I                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 32572} GGO500B+HV               =       GDO4005 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 32573} GAO500A +GHO                =       GAK500R +      GHO2                                   : ARR( 0.877E-11,     0., 0.0);
+{ 32574} GAO500A +GHO                =       GAK500J +      GHO2                                   : ARR( 0.108E-10,     0., 0.0);
+{ 32575} GAO500A +GHO                =       GAK500Y +      GHO2                                   : ARR( 0.487E-11,     0., 0.0);
+{ 32576} GPO500B                     =       G3K500I +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 32577} GPO500B +GHO                =       GPK500S +      GHO2                                   : ARR( 0.857E-11,     0., 0.0);
+{ 32578} GPO500B +GHO                =       GPK500K +      GHO2                                   : ARR( 0.105E-10,     0., 0.0);
+{ 32579} GPO500B +GHO                =       GPK500U +      GHO2                                   : ARR( 0.643E-11,     0., 0.0);
+{ 32580} GPO500B+HV               =       G3K500I +      GNO2                                   :  0.100E+01*SUN;
+{ 32581} GDK500U +GHO                =       GDK500W +      GHO2                                   : ARR( 0.530E-11,     0., 0.0);
+{ 32582} GDK500U +GHO                =       G3K3002 + 2.000GCO                                    : ARR( 0.131E-10,     0., 0.0);
+{ 32583} GDK500U +GNO3               =       G3K3002 +      GHNO3   + 2.000GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 32584} GDK500U+HV               =       G3K3002 +      G3D2000                                :  0.100E+01*SUN;
+{ 32585} GDK500U+HV               =       G3K3002 +      GCO     +      GCO     +      GHO2     :  0.100E+01*SUN;
+{ 32586} GDK500U+HV               =       GDK4004 +      GCO                                    :  0.100E+01*SUN;
+{ 32587} GDK500U+HV               =       GDO3001 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 32588} GGK500K +GHO                =       GGK500Y +      GHO2                                   : ARR( 0.544E-11,     0., 0.0);
+{ 32589} GGK500K +GHO                =       GGK500N +      GHO2                                   : ARR( 0.408E-11,     0., 0.0);
+{ 32590} GGK500K +GHO                =       G3K500J                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 32591} GGK500K+HV               =       G3K3002 +      GGD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 32592} GGK500K+HV               =       GDK4004 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 32593} GAK500J +GHO                =       G2A502D                                               : ARR( 0.548E-12,     0., 0.0);
+{ 32594} GAK500J +GHO                =       GAK500T +      GHO2                                   : ARR( 0.527E-11,     0., 0.0);
+{ 32595} GAK500J +GHO                =       GAK500M +      GHO2                                   : ARR( 0.292E-11,     0., 0.0);
+{ 32596} GAK500J +GHO                =       GDK4004 +      GHO2    +      GCO2                    : ARR( 0.536E-12,     0., 0.0);
+{ 32597} GAK500J+HV               =       G3K3002 +      GAD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 32598} G2A502D +GNO                =       G1A502d +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 32599} G2A502D +GNO                =       GAN501R                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 32600} G2A502D +GHO2               =       GAH501j                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 32601} G2A502D +GNO3               =       G1A502d +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 32602} G2A502D +MEPERO             =  0.480G1A502d + 0.260GAK500L + 0.260GAD500F                 : ARR( 0.164E-12,  -795., 0.0);
+{ 32603} G2A502D +PERO1              =  0.600G1A502d + 0.200GAK500L + 0.200GAD500F                 : ARR( 0.126E-12,  -850., 0.0);
+{ 32604} G2A502D +PERO2              =  0.560G1A502d + 0.220GAK500L + 0.220GAD500F                 : ARR( 0.471E-13, -1350., 0.0);
+{ 32605} G2A502D +PERO3              =  0.600G1A502d + 0.200GAK500L + 0.200GAD500F                 : ARR( 0.142E-12, -1200., 0.0);
+{ 32606} G2A502D +PERO5              =  0.600G1A502d + 0.200GAK500L + 0.200GAD500F                 : ARR( 0.533E-11,   500., 0.0);
+{ 32607} G2A502D +PERO6              =  0.460G1A502d + 0.270GAK500L + 0.270GAD500F                 : ARR( 0.488E-13, -1250., 0.0);
+{ 32608} G2A502D +PERO9              =  0.800G1A502d + 0.200GAD500F                                : ARR( 0.100E-10,     0., 0.0);
+{ 32609} G1A502d                     =       GAD4006 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4576., 0.0);
+{ 32610} GPK500K                     =       G3K500J +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 32611} GPK500K +GHO                =       G2P502J                                               : ARR( 0.547E-12,     0., 0.0);
+{ 32612} GPK500K +GHO                =       GPK500Y +      GHO2                                   : ARR( 0.526E-11,     0., 0.0);
+{ 32613} GPK500K +GHO                =       GPK500N +      GHO2                                   : ARR( 0.394E-11,     0., 0.0);
+{ 32614} GPK500K+HV               =       G3K3002 +      GPD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 32615} GPK500K+HV               =       G3K500J +      GNO2                                   :  0.100E+01*SUN;
+{ 32616} G2P502J +GNO                =       G1P502m +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 32617} G2P502J +GNO                =       GPN501U                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 32618} G2P502J +GHO2               =       GPH501h                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 32619} G2P502J +GNO3               =       G1P502m +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 32620} G2P502J +MEPERO             =  0.480G1P502m + 0.260GPK500M + 0.260GPD500D                 : ARR( 0.164E-12,  -795., 0.0);
+{ 32621} G2P502J +PERO1              =  0.600G1P502m + 0.200GPK500M + 0.200GPD500D                 : ARR( 0.126E-12,  -850., 0.0);
+{ 32622} G2P502J +PERO2              =  0.560G1P502m + 0.220GPK500M + 0.220GPD500D                 : ARR( 0.471E-13, -1350., 0.0);
+{ 32623} G2P502J +PERO3              =  0.600G1P502m + 0.200GPK500M + 0.200GPD500D                 : ARR( 0.142E-12, -1200., 0.0);
+{ 32624} G2P502J +PERO5              =  0.600G1P502m + 0.200GPK500M + 0.200GPD500D                 : ARR( 0.533E-11,   500., 0.0);
+{ 32625} G2P502J +PERO6              =  0.460G1P502m + 0.270GPK500M + 0.270GPD500D                 : ARR( 0.488E-13, -1250., 0.0);
+{ 32626} G2P502J +PERO9              =  0.800G1P502m + 0.200GPD500D                                : ARR( 0.100E-10,     0., 0.0);
+{ 32627} G1P502m                     =       GPD4007 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4576., 0.0);
+{ 32628} GHN504c +GHO                =       GND5018 +      GHO                                    : ARR( 0.991E-11,     0., 0.0);
+{ 32629} GHN504c +GHO                =       G2N503c                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 32630} GHN504c+HV               =       G3K2000 +      GHD3001 +      GNO2                    :  0.100E+01*SUN;
+{ 32631} GHN504c+HV               =       G1H507r +      GNO2                                   :  0.100E+01*SUN;
+{ 32632} GHN504c+HV               =       G3N400D +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 32633} GHN504c+HV               =       G1N5044 +      GHO                                    :  0.100E+01*SUN;
+{ 32634} G1H507r                     =       G3K2000 +      GHD3001                                : ARR( 0.200E+15,  4513., 0.0);
+{ 32635} G1H507r                     =       GDK3000 +      G3H2000                                : ARR( 0.200E+15,  4599., 0.0);
+{ 32636} GND5018 +GHO                =       G3N400D +      GCO                                    : ARR( 0.128E-10,     0., 0.0);
+{ 32637} GND5018 +GNO3               =       G3N400D +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 32638} GND5018+HV               =       G3K2000 +      GDD3002 +      GNO2                    :  0.100E+01*SUN;
+{ 32639} GND5018+HV               =       G1D501F +      GNO2                                   :  0.100E+01*SUN;
+{ 32640} GND5018+HV               =       G3N400D +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 32641} GND5018+HV               =       GND4008 +      GCO                                    :  0.100E+01*SUN;
+{ 32642} GND5018+HV               =       GNK3000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 32643} G1D501F                     =       G3K2000 +      GDD3002                                : ARR( 0.200E+15,  4537., 0.0);
+{ 32644} G1D501F                     =       GDK3000 +      G3D2000                                : ARR( 0.200E+15,  4823., 0.0);
+{ 32645} GGN400J +GHO                =       G3N400D                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 32646} GGN400J+HV               =       G3K2000 +      GGD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 32647} GGN400J+HV               =       G1G400A +      GNO2                                   :  0.100E+01*SUN;
+{ 32648} GGN400J+HV               =       GDK3000 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 32649} GAN400M +GHO                =       G2A400e                                               : ARR( 0.108E-12,     0., 0.0);
+{ 32650} GAN400M +GHO                =       GDK3000 +      GNO2    +      GCO2                    : ARR( 0.547E-12,     0., 0.0);
+{ 32651} GAN400M+HV               =       G3K2000 +      GAD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 32652} GAN400M+HV               =       G1A400E +      GNO2                                   :  0.100E+01*SUN;
+{ 32653} G2A400e +GNO                =       G1A400l +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 32654} G2A400e +GNO                =       GAN400R                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 32655} G2A400e +GHO2               =       GAH400m                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 32656} G2A400e +GNO3               =       G1A400l +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 32657} G2A400e +MEPERO             =  0.480G1A400l + 0.260GAN400X + 0.260GAN400b                 : ARR( 0.164E-12,  -795., 0.0);
+{ 32658} G2A400e +PERO1              =  0.600G1A400l + 0.200GAN400X + 0.200GAN400b                 : ARR( 0.126E-12,  -850., 0.0);
+{ 32659} G2A400e +PERO2              =  0.560G1A400l + 0.220GAN400X + 0.220GAN400b                 : ARR( 0.471E-13, -1350., 0.0);
+{ 32660} G2A400e +PERO3              =  0.600G1A400l + 0.200GAN400X + 0.200GAN400b                 : ARR( 0.142E-12, -1200., 0.0);
+{ 32661} G2A400e +PERO5              =  0.600G1A400l + 0.200GAN400X + 0.200GAN400b                 : ARR( 0.533E-11,   500., 0.0);
+{ 32662} G2A400e +PERO6              =  0.460G1A400l + 0.270GAN400X + 0.270GAN400b                 : ARR( 0.488E-13, -1250., 0.0);
+{ 32663} G2A400e +PERO9              =  0.800G1A400l + 0.200GAN400b                                : ARR( 0.100E-10,     0., 0.0);
+{ 32664} G1A400l                     =       G3A3001 +      GCH2O                                  : ARR( 0.200E+15,  4694., 0.0);
+{ 32665} GPN400M                     =       G3N400D +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 32666} GPN400M +GHO                =       G2P400g                                               : ARR( 0.102E-12,     0., 0.0);
+{ 32667} GPN400M +GHO                =       GPK4006 +      GNO2                                   : ARR( 0.438E-13,     0., 0.0);
+{ 32668} GPN400M+HV               =       G3K2000 +      GPD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 32669} GPN400M+HV               =       G1P400E +      GNO2                                   :  0.100E+01*SUN;
+{ 32670} GPN400M+HV               =       G3N400D +      GNO2                                   :  0.100E+01*SUN;
+{ 32671} G2P400g +GNO                =       G1P400m +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 32672} G2P400g +GNO                =       GPN400S                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 32673} G2P400g +GHO2               =       GPH400n                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 32674} G2P400g +GNO3               =       G1P400m +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 32675} G2P400g +MEPERO             =  0.480G1P400m + 0.260GPN400Y + 0.260GPN400b                 : ARR( 0.164E-12,  -795., 0.0);
+{ 32676} G2P400g +PERO1              =  0.600G1P400m + 0.200GPN400Y + 0.200GPN400b                 : ARR( 0.126E-12,  -850., 0.0);
+{ 32677} G2P400g +PERO2              =  0.560G1P400m + 0.220GPN400Y + 0.220GPN400b                 : ARR( 0.471E-13, -1350., 0.0);
+{ 32678} G2P400g +PERO3              =  0.600G1P400m + 0.200GPN400Y + 0.200GPN400b                 : ARR( 0.142E-12, -1200., 0.0);
+{ 32679} G2P400g +PERO5              =  0.600G1P400m + 0.200GPN400Y + 0.200GPN400b                 : ARR( 0.533E-11,   500., 0.0);
+{ 32680} G2P400g +PERO6              =  0.460G1P400m + 0.270GPN400Y + 0.270GPN400b                 : ARR( 0.488E-13, -1250., 0.0);
+{ 32681} G2P400g +PERO9              =  0.800G1P400m + 0.200GPN400b                                : ARR( 0.100E-10,     0., 0.0);
+{ 32682} G1P400m                     =       G3P3001 +      GCH2O                                  : ARR( 0.200E+15,  4694., 0.0);
+{ 32683} GGH400C +GHO                =       GGK4006 +      GHO                                    : ARR( 0.154E-10,     0., 0.0);
+{ 32684} GGH400C +GHO                =       G2G4008                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 32685} GGH400C +GHO                =       G3H4009                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 32686} GGH400C+HV               =       G3K2000 +      GGD2000 +      GHO                     :  0.100E+01*SUN;
+{ 32687} GGH400C+HV               =       G1G400A +      GHO                                    :  0.100E+01*SUN;
+{ 32688} GGH400C+HV               =       GDK3000 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 32689} GAH400D +GHO                =       GAK4006 +      GHO                                    : ARR( 0.118E-10,     0., 0.0);
+{ 32690} GAH400D +GHO                =       G2A400C                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 32691} GAH400D+HV               =       G3K2000 +      GAD2000 +      GHO                     :  0.100E+01*SUN;
+{ 32692} GAH400D+HV               =       G1A400E +      GHO                                    :  0.100E+01*SUN;
+{ 32693} GPH400E                     =       G3H4009 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 32694} GPH400E +GHO                =       GPK4006 +      GHO                                    : ARR( 0.154E-10,     0., 0.0);
+{ 32695} GPH400E +GHO                =       G2P400D                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 32696} GPH400E+HV               =       G3K2000 +      GPD2000 +      GHO                     :  0.100E+01*SUN;
+{ 32697} GPH400E+HV               =       G1P400E +      GHO                                    :  0.100E+01*SUN;
+{ 32698} GPH400E+HV               =       G3H4009 +      GNO2                                   :  0.100E+01*SUN;
+{ 32699} GGK4005 +GHO                =       GGK4006 +      GHO2                                   : ARR( 0.396E-11,     0., 0.0);
+{ 32700} GGK4005 +GHO                =       G3K4009                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 32701} GGK4005+HV               =       G3K2000 +      GGD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 32702} GGK4005+HV               =       GDK3000 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 32703} GAK4005 +GHO                =       GAK4006 +      GHO2                                   : ARR( 0.304E-11,     0., 0.0);
+{ 32704} GAK4005 +GHO                =       GDK3000 +      GHO2    +      GCO2                    : ARR( 0.558E-12,     0., 0.0);
+{ 32705} GAK4005+HV               =       G3K2000 +      GAD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 32706} GPK4005                     =       G3K4009 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 32707} GPK4005 +GHO                =       GPK4006 +      GHO2                                   : ARR( 0.407E-11,     0., 0.0);
+{ 32708} GPK4005+HV               =       G3K2000 +      GPD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 32709} GPK4005+HV               =       G3K4009 +      GNO2                                   :  0.100E+01*SUN;
+{ 32710} GHK500p +GHO                =       GDK500W +      GHO                                    : ARR( 0.988E-11,     0., 0.0);
+{ 32711} GHK500p +GHO                =       G2K500g                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 32712} GHK500p+HV               =       G3K2000 +      G3H2000 +      GCO                     :  0.100E+01*SUN;
+{ 32713} GHK500p+HV               =       G3K2000 +      G3H2000 +      GCO                     :  0.100E+01*SUN;
+{ 32714} GHK500p+HV               =       G1K500q +      GHO                                    :  0.100E+01*SUN;
+{ 32715} GDK500W +GHO                =       G3K2000 + 3.000GCO                                    : ARR( 0.128E-10,     0., 0.0);
+{ 32716} GDK500W +GNO3               =       G3K2000 +      GHNO3   + 3.000GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 32717} GDK500W+HV               =       G3K2000 +      G3D2000 +      GCO                     :  0.100E+01*SUN;
+{ 32718} GDK500W+HV               =       G3K2000 +      G3D2000 +      GCO                     :  0.100E+01*SUN;
+{ 32719} GDK500W+HV               =       G3K2000 +      GCO     + 2.000GCO     +      GHO2     :  0.100E+01*SUN;
+{ 32720} GDK500W+HV               =       GDK4008 +      GCO                                    :  0.100E+01*SUN;
+{ 32721} GDK500W+HV               =       GDK3000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 32722} GGK4006 +GHO                =       G3K400F                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 32723} GGK4006+HV               =       G3K2000 +      GCO     +      GHO2    +      GCO      :  0.100E+01*SUN;
+{ 32724} GGK4006+HV               =       GAK3000 +      GCO2                                   :  0.100E+01*SUN;
+{ 32725} G3K400F +GHO2               =  0.800GGK4006 + 0.200GAK4006 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 32726} G3K400F +GNO                =       G3K2000 +      GNO2    +      GCO2    +      GCO      : ARR( 0.810E-11,  -270., 0.0);
+{ 32727} G3K400F +GNO2               =       GPK4006                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 32728} G3K400F +GNO3               =       G3K2000 +      GNO2    +      GCO2    +      GCO      : ARR( 0.500E-11,     0., 0.0);
+{ 32729} G3K400F +MEPERO             =  0.685G3K2000 + 0.315GAK4006 + 0.685GCO2    + 0.685GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 32730} G3K400F +PERO1              =  0.800G3K2000 + 0.200GAK4006 + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 32731} G3K400F +PERO2              =  0.750G3K2000 + 0.250GAK4006 + 0.750GCO2    + 0.750GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 32732} G3K400F +PERO3              =  0.800G3K2000 + 0.200GAK4006 + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 32733} G3K400F +PERO5              =  0.650G3K2000 + 0.350GAK4006 + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 32734} G3K400F +PERO6              =  0.650G3K2000 + 0.350GAK4006 + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 32735} G3K400F +PERO9              =       G3K2000 +      GCO2    +      GCO                     : ARR( 0.500E-11,  -500., 0.0);
+{ 32736} GAD4003 +GHO                =       G3A3000 +      GCO                                    : ARR( 0.136E-10,     0., 0.0);
+{ 32737} GAD4003 +GNO3               =       G3A3000 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 32738} GAD4003+HV               =       G3A3000 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 32739} GAD4003+HV               =       GAD3000 +      GCO                                    :  0.100E+01*SUN;
+{ 32740} GAD4003+HV               =       GA02000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 32741} GAK4006 +GHO                =       G2A400f                                               : ARR( 0.102E-12,     0., 0.0);
+{ 32742} GAK4006 +GHO                =       G3K2000 +      GCO2    +      GCO                     : ARR( 0.520E-12,     0., 0.0);
+{ 32743} GAK4006+HV               =       G3K2000 +      GCO     +      GHO     +      GCO      :  0.100E+01*SUN;
+{ 32744} G2A400f +GNO                =       G1A400m +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 32745} G2A400f +GNO                =       GAN400W                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 32746} G2A400f +GHO2               =       GAH400n                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 32747} G2A400f +GNO3               =       G1A400m +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 32748} G2A400f +MEPERO             =  0.480G1A400m + 0.260GAK4009 + 0.260GAD4008                 : ARR( 0.164E-12,  -795., 0.0);
+{ 32749} G2A400f +PERO1              =  0.600G1A400m + 0.200GAK4009 + 0.200GAD4008                 : ARR( 0.126E-12,  -850., 0.0);
+{ 32750} G2A400f +PERO2              =  0.560G1A400m + 0.220GAK4009 + 0.220GAD4008                 : ARR( 0.471E-13, -1350., 0.0);
+{ 32751} G2A400f +PERO3              =  0.600G1A400m + 0.200GAK4009 + 0.200GAD4008                 : ARR( 0.142E-12, -1200., 0.0);
+{ 32752} G2A400f +PERO5              =  0.600G1A400m + 0.200GAK4009 + 0.200GAD4008                 : ARR( 0.533E-11,   500., 0.0);
+{ 32753} G2A400f +PERO6              =  0.460G1A400m + 0.270GAK4009 + 0.270GAD4008                 : ARR( 0.488E-13, -1250., 0.0);
+{ 32754} G2A400f +PERO9              =  0.800G1A400m + 0.200GAD4008                                : ARR( 0.100E-10,     0., 0.0);
+{ 32755} G1A400m                     =       GCO     +      GCH2O   +      GHO     + 2.000GCO      : ARR( 0.200E+15,  3862., 0.0);
+{ 32756} GPD4003                     =       G3D4003 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 32757} GPD4003 +GHO                =       G3P3000 +      GCO                                    : ARR( 0.132E-10,     0., 0.0);
+{ 32758} GPD4003 +GNO3               =       G3P3000 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 32759} GPD4003+HV               =       G3D4003 +      GNO2                                   :  0.100E+01*SUN;
+{ 32760} GPD4003+HV               =       G3P3000 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 32761} GPD4003+HV               =       GPD3000 +      GCO                                    :  0.100E+01*SUN;
+{ 32762} GPD4003+HV               =       GP02000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 32763} GPK4006                     =       G3K400F +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 32764} GPK4006 +GHO                =       G2P400h                                               : ARR( 0.102E-12,     0., 0.0);
+{ 32765} GPK4006+HV               =       G3K2000 +      GCO     +      GNO2    +      GCO      :  0.100E+01*SUN;
+{ 32766} GPK4006+HV               =       G3K2000 +      GCO     +      GCO     +      GNO2     :  0.100E+01*SUN;
+{ 32767} G2P400h +GNO                =       G1P400n +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 32768} G2P400h +GNO                =       GPN400X                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 32769} G2P400h +GHO2               =       GPH400o                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 32770} G2P400h +GNO3               =       G1P400n +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 32771} G2P400h +MEPERO             =  0.480G1P400n + 0.260GPK4009 + 0.260GPD4008                 : ARR( 0.164E-12,  -795., 0.0);
+{ 32772} G2P400h +PERO1              =  0.600G1P400n + 0.200GPK4009 + 0.200GPD4008                 : ARR( 0.126E-12,  -850., 0.0);
+{ 32773} G2P400h +PERO2              =  0.560G1P400n + 0.220GPK4009 + 0.220GPD4008                 : ARR( 0.471E-13, -1350., 0.0);
+{ 32774} G2P400h +PERO3              =  0.600G1P400n + 0.200GPK4009 + 0.200GPD4008                 : ARR( 0.142E-12, -1200., 0.0);
+{ 32775} G2P400h +PERO5              =  0.600G1P400n + 0.200GPK4009 + 0.200GPD4008                 : ARR( 0.533E-11,   500., 0.0);
+{ 32776} G2P400h +PERO6              =  0.460G1P400n + 0.270GPK4009 + 0.270GPD4008                 : ARR( 0.488E-13, -1250., 0.0);
+{ 32777} G2P400h +PERO9              =  0.800G1P400n + 0.200GPD4008                                : ARR( 0.100E-10,     0., 0.0);
+{ 32778} G1P400n                     =       GCO     +      GCH2O   +      GNO2    + 2.000GCO      : ARR( 0.200E+15,  3862., 0.0);
+{ 32779} GHN400r +GHO                =       GND4008 +      GHO                                    : ARR( 0.330E-11,     0., 0.0);
+{ 32780} GHN400r +GHO                =       G2N400c                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 32781} GHN400r+HV               =       G3K2000 +      GHD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 32782} GHN400r+HV               =       G1H401M +      GNO2                                   :  0.100E+01*SUN;
+{ 32783} GHN400r+HV               =       G1N400e +      GHO                                    :  0.100E+01*SUN;
+{ 32784} G1H401M                     =       G3K2000 +      GHD2000                                : ARR( 0.200E+15,  2983., 0.0);
+{ 32785} GGH400D +GHO                =       GGN400J +      GHO                                    : ARR( 0.682E-11,     0., 0.0);
+{ 32786} GGH400D +GHO                =       G2G4009                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 32787} GGH400D +GHO                =       G3H400J                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 32788} GGH400D+HV               =       G1G400B +      GHO                                    :  0.100E+01*SUN;
+{ 32789} GGH400D+HV               =       G1G400d +      GNO2                                   :  0.100E+01*SUN;
+{ 32790} GGH400D+HV               =       GHD3002 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 32791} G1G400d                     =       GHD3002 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 32792} GAH400E +GHO                =       GAN400N +      GHO                                    : ARR( 0.168E-10,     0., 0.0);
+{ 32793} GAH400E +GHO                =       G2A400D                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 32794} GAH400E+HV               =       G1A400n +      GNO2                                   :  0.100E+01*SUN;
+{ 32795} GAH400E+HV               =       G1A400F +      GHO                                    :  0.100E+01*SUN;
+{ 32796} G1A400n                     =       GCO     +      GHD3000 +      GHO                     : ARR( 0.200E+15,  4918., 0.0);
+{ 32797} GAN400N +GHO                =       G3A4002                                               : ARR( 0.216E-10,     0., 0.0);
+{ 32798} GAN400N +GNO3               =       G3A4002 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 32799} GAN400N+HV               =       G1A400U +      GNO2                                   :  0.100E+01*SUN;
+{ 32800} GAN400N+HV               =       G2A3004 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 32801} GAH400F +GHO                =       GAN400M +      GHO                                    : ARR( 0.718E-11,     0., 0.0);
+{ 32802} GAH400F +GHO                =       G2A400E                                               : ARR( 0.204E-11,  -190., 0.0);
+{ 32803} GAH400F+HV               =       G1A400G +      GHO                                    :  0.100E+01*SUN;
+{ 32804} GAH400F+HV               =       G1A400o +      GNO2                                   :  0.100E+01*SUN;
+{ 32805} G1A400o                     =       GHD3002 +      GCO     +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 32806} GPH400F                     =       G3H400I +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 32807} GPH400F +GHO                =       GPN400N +      GHO                                    : ARR( 0.164E-10,     0., 0.0);
+{ 32808} GPH400F +GHO                =       G2P400E                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 32809} GPH400F+HV               =       G1P400F +      GHO                                    :  0.100E+01*SUN;
+{ 32810} GPH400F+HV               =       G1P400o +      GNO2                                   :  0.100E+01*SUN;
+{ 32811} GPH400F+HV               =       G3H400I +      GNO2                                   :  0.100E+01*SUN;
+{ 32812} G1P400o                     =       GHD3000 +      GCO     +      GNO2                    : ARR( 0.200E+15,  4949., 0.0);
+{ 32813} GPN400N                     =       G3N400I +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 32814} GPN400N +GHO                =       G3P4002                                               : ARR( 0.212E-10,     0., 0.0);
+{ 32815} GPN400N +GNO3               =       G3P4002 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 32816} GPN400N+HV               =       G3N400I +      GNO2                                   :  0.100E+01*SUN;
+{ 32817} GPN400N+HV               =       G1P400W +      GNO2                                   :  0.100E+01*SUN;
+{ 32818} GPN400N+HV               =       G2P3004 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 32819} GPH400G                     =       G3H400J +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 32820} GPH400G +GHO                =       GPN400M +      GHO                                    : ARR( 0.686E-11,     0., 0.0);
+{ 32821} GPH400G +GHO                =       G2P400F                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 32822} GPH400G+HV               =       G1P400G +      GHO                                    :  0.100E+01*SUN;
+{ 32823} GPH400G+HV               =       G1P400p +      GNO2                                   :  0.100E+01*SUN;
+{ 32824} GPH400G+HV               =       G3H400J +      GNO2                                   :  0.100E+01*SUN;
+{ 32825} G1P400p                     =       GHD3002 +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 32826} GGH400E +GHO                =       GGK4005 +      GHO                                    : ARR( 0.337E-10,     0., 0.0);
+{ 32827} GGH400E +GHO                =       GGH400X +      GHO2                                   : ARR( 0.632E-11,     0., 0.0);
+{ 32828} GGH400E +GHO                =       G2G400A                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 32829} GGH400E +GHO                =       G3H400M                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 32830} GGH400E+HV               =       G1G400C +      GHO                                    :  0.100E+01*SUN;
+{ 32831} GGH400E+HV               =       GHD3002 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 32832} GAH400G +GHO                =       GAK4005 +      GHO                                    : ARR( 0.342E-10,     0., 0.0);
+{ 32833} GAH400G +GHO                =       GAH400Z +      GHO2                                   : ARR( 0.474E-11,     0., 0.0);
+{ 32834} GAH400G +GHO                =       G2A400F                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 32835} GAH400G+HV               =       G1A400H +      GHO                                    :  0.100E+01*SUN;
+{ 32836} GPH400H                     =       G3H400M +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 32837} GPH400H +GHO                =       GPK4005 +      GHO                                    : ARR( 0.337E-10,     0., 0.0);
+{ 32838} GPH400H +GHO                =       GPH400a +      GHO2                                   : ARR( 0.633E-11,     0., 0.0);
+{ 32839} GPH400H +GHO                =       G2P400G                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 32840} GPH400H+HV               =       G1P400H +      GHO                                    :  0.100E+01*SUN;
+{ 32841} GPH400H+HV               =       G3H400M +      GNO2                                   :  0.100E+01*SUN;
+{ 32842} GHK400A +GHO                =       GDK4008 +      GHO                                    : ARR( 0.988E-11,     0., 0.0);
+{ 32843} GHK400A +GHO                =       G2K4009                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 32844} GHK400A+HV               =       G3K2000 +      G3H2000                                :  0.100E+01*SUN;
+{ 32845} GHK400A+HV               =       G1K4009 +      GHO                                    :  0.100E+01*SUN;
+{ 32846} GHD500v +GHO                =       GDK500W +      GHO                                    : ARR( 0.207E-10,     0., 0.0);
+{ 32847} GHD500v +GHO                =       G3H3001 + 2.000GCO                                    : ARR( 0.129E-10,     0., 0.0);
+{ 32848} GHD500v +GHO                =       G2D500S                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 32849} GHD500v +GNO3               =       G3H3001 +      GHNO3   + 2.000GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 32850} GHD500v+HV               =       G1D500d +      GHO                                    :  0.100E+01*SUN;
+{ 32851} GHD500v+HV               =       G3H3001 +      G3D2000                                :  0.100E+01*SUN;
+{ 32852} GHD500v+HV               =       G3H3001 +      GCO     +      GCO     +      GHO2     :  0.100E+01*SUN;
+{ 32853} GHD500v+HV               =       GHD400I +      GCO                                    :  0.100E+01*SUN;
+{ 32854} GHD500v+HV               =       GHD3002 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 32855} GGH400F +GHO                =       GGD4003 +      GHO                                    : ARR( 0.511E-10,     0., 0.0);
+{ 32856} GGH400F +GHO                =       GGH400h +      GHO2                                   : ARR( 0.630E-11,     0., 0.0);
+{ 32857} GGH400F +GHO                =       G2G400B                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 32858} GGH400F +GHO                =       G3H400Y                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 32859} GGH400F+HV               =       G1G400D +      GHO                                    :  0.100E+01*SUN;
+{ 32860} GGH400F+HV               =       GAH3004 +      GCO2                                   :  0.100E+01*SUN;
+{ 32861} G3H400Y +GHO2               =  0.800GGH400F + 0.200GAH400I + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 32862} G3H400Y +GNO                =       G3H3003 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 32863} G3H400Y +GNO2               =       GPH400J                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 32864} G3H400Y +GNO3               =       G3H3003 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 32865} G3H400Y +MEPERO             =  0.685G3H3003 + 0.315GAH400I + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 32866} G3H400Y +PERO1              =  0.800G3H3003 + 0.200GAH400I + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 32867} G3H400Y +PERO2              =  0.750G3H3003 + 0.250GAH400I + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 32868} G3H400Y +PERO3              =  0.800G3H3003 + 0.200GAH400I + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 32869} G3H400Y +PERO5              =  0.650G3H3003 + 0.350GAH400I + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 32870} G3H400Y +PERO6              =  0.650G3H3003 + 0.350GAH400I + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 32871} G3H400Y +PERO9              =       G3H3003 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 32872} GGK4007 +GHO                =       GGD4003 +      GHO2                                   : ARR( 0.129E-10,     0., 0.0);
+{ 32873} GGK4007 +GHO                =       GGK4009 +      GHO2                                   : ARR( 0.636E-11,     0., 0.0);
+{ 32874} GGK4007 +GHO                =       G3K400G                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 32875} GGK4007+HV               =       GAO3002 +      GCO2                                   :  0.100E+01*SUN;
+{ 32876} G3K400G +GHO2               =  0.800GGK4007 + 0.200GAK4007 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 32877} G3K400G +GNO                =       G3K3003 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 32878} G3K400G +GNO2               =       GPK4007                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 32879} G3K400G +GNO3               =       G3K3003 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 32880} G3K400G +MEPERO             =  0.685G3K3003 + 0.315GAK4007 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 32881} G3K400G +PERO1              =  0.800G3K3003 + 0.200GAK4007 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 32882} G3K400G +PERO2              =  0.750G3K3003 + 0.250GAK4007 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 32883} G3K400G +PERO3              =  0.800G3K3003 + 0.200GAK4007 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 32884} G3K400G +PERO5              =  0.650G3K3003 + 0.350GAK4007 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 32885} G3K400G +PERO6              =  0.650G3K3003 + 0.350GAK4007 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 32886} G3K400G +PERO9              =       G3K3003 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 32887} GGD4003 +GHO                =       GGD4008 +      GHO2                                   : ARR( 0.404E-11,     0., 0.0);
+{ 32888} GGD4003 +GHO                =       G3G4004                                               : ARR( 0.694E-10,     0., 0.0);
+{ 32889} GGD4003 +GNO3               =       G3G4004 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 32890} GGD4003+HV               =       GAD3001 +      GCO2                                   :  0.100E+01*SUN;
+{ 32891} GGD4003+HV               =       GGD3002 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 32892} G3G4004 +GHO2               =  0.800GGG4003 + 0.200GAG4006 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 32893} G3G4004 +GNO                =       GGD3002 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 32894} G3G4004 +GNO2               =       GPG4006                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 32895} G3G4004 +GNO3               =       GGD3002 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 32896} G3G4004 +MEPERO             =  0.685GGD3002 + 0.315GAG4006 + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32897} G3G4004 +PERO1              =  0.800GGD3002 + 0.200GAG4006 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32898} G3G4004 +PERO2              =  0.750GGD3002 + 0.250GAG4006 + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32899} G3G4004 +PERO3              =  0.800GGD3002 + 0.200GAG4006 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32900} G3G4004 +PERO5              =  0.650GGD3002 + 0.350GAG4006 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32901} G3G4004 +PERO6              =  0.650GGD3002 + 0.350GAG4006 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32902} G3G4004 +PERO9              =       GGD3002 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 32903} GAH400H +GHO                =       GAH400m +      GHO2                                   : ARR( 0.213E-11,     0., 0.0);
+{ 32904} GAH400H +GHO                =       GAN400P +      GHO                                    : ARR( 0.166E-10,     0., 0.0);
+{ 32905} GAH400H +GHO                =       G2A400G                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 32906} GAH400H+HV               =       G1A400p +      GNO2                                   :  0.100E+01*SUN;
+{ 32907} GAH400H+HV               =       G1A400I +      GHO                                    :  0.100E+01*SUN;
+{ 32908} G1A400p                     =       GCO     +      GHD3005 +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 32909} G1A400p                     =       GAD2000 +      GHD2000 +      GHO2                    : ARR( 0.200E+15,  5490., 0.0);
+{ 32910} GAN400O +GHO                =       GAN400P +      GHO2                                   : ARR( 0.422E-11,     0., 0.0);
+{ 32911} GAN400O +GHO                =       GAN400X +      GHO2                                   : ARR( 0.216E-11,     0., 0.0);
+{ 32912} GAN400O +GHO                =       GDO3002 +      GNO2    +      GCO2                    : ARR( 0.546E-12,     0., 0.0);
+{ 32913} GAN400O+HV               =       G1A400q +      GNO2                                   :  0.100E+01*SUN;
+{ 32914} G1A400q                     =       GDO2000 +      GAD2000 +      GHO2                    : ARR( 0.200E+15,  5490., 0.0);
+{ 32915} G1A400q                     =       GDO3002 +      GCO     +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 32916} GAN400P +GHO                =       GAN400b +      GHO2                                   : ARR( 0.130E-11,     0., 0.0);
+{ 32917} GAN400P +GHO                =       G3A4006                                               : ARR( 0.216E-10,     0., 0.0);
+{ 32918} GAN400P +GNO3               =       G3A4006 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 32919} GAN400P+HV               =       G1A400i +      GNO2                                   :  0.100E+01*SUN;
+{ 32920} GAN400P+HV               =       GAN3006 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 32921} G3A4006 +GHO2               =  0.800GAG4007 + 0.200GAA4004 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 32922} G3A4006 +GNO                =       GAN3006 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 32923} G3A4006 +GNO2               =       GPA4007                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 32924} G3A4006 +GNO3               =       GAN3006 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 32925} G3A4006 +MEPERO             =  0.685GAN3006 + 0.315GAA4004 + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32926} G3A4006 +PERO1              =  0.800GAN3006 + 0.200GAA4004 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32927} G3A4006 +PERO2              =  0.750GAN3006 + 0.250GAA4004 + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32928} G3A4006 +PERO3              =  0.800GAN3006 + 0.200GAA4004 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32929} G3A4006 +PERO5              =  0.650GAN3006 + 0.350GAA4004 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32930} G3A4006 +PERO6              =  0.650GAN3006 + 0.350GAA4004 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32931} G3A4006 +PERO9              =       GAN3006 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 32932} GAH400I +GHO                =       GAH400n +      GHO2                                   : ARR( 0.635E-11,     0., 0.0);
+{ 32933} GAH400I +GHO                =       GAD4004 +      GHO                                    : ARR( 0.516E-10,     0., 0.0);
+{ 32934} GAH400I +GHO                =       G2A400H                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 32935} GAH400I+HV               =       GHD3005 +      GCO2                                   :  0.100E+01*SUN;
+{ 32936} GAH400I+HV               =       G1A400J +      GHO                                    :  0.100E+01*SUN;
+{ 32937} GAK4007 +GHO                =       GAD4004 +      GHO2                                   : ARR( 0.133E-10,     0., 0.0);
+{ 32938} GAK4007 +GHO                =       GAK4009 +      GHO2                                   : ARR( 0.655E-11,     0., 0.0);
+{ 32939} GAK4007+HV               =       GDO3002 +      GCO2                                   :  0.100E+01*SUN;
+{ 32940} GAD4004 +GHO                =       GAD4008 +      GHO2                                   : ARR( 0.387E-11,     0., 0.0);
+{ 32941} GAD4004 +GHO                =       G3A4007                                               : ARR( 0.665E-10,     0., 0.0);
+{ 32942} GAD4004 +GNO3               =       G3A4007 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 32943} GAD4004+HV               =       GDD3001 +      GCO2                                   :  0.100E+01*SUN;
+{ 32944} GAD4004+HV               =       GAD3002 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 32945} G3A4007 +GHO2               =  0.800GAG4008 + 0.200GAA4005 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 32946} G3A4007 +GNO                =       GAD3002 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 32947} G3A4007 +GNO2               =       GPA4008                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 32948} G3A4007 +GNO3               =       GAD3002 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 32949} G3A4007 +MEPERO             =  0.685GAD3002 + 0.315GAA4005 + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32950} G3A4007 +PERO1              =  0.800GAD3002 + 0.200GAA4005 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32951} G3A4007 +PERO2              =  0.750GAD3002 + 0.250GAA4005 + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32952} G3A4007 +PERO3              =  0.800GAD3002 + 0.200GAA4005 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32953} G3A4007 +PERO5              =  0.650GAD3002 + 0.350GAA4005 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32954} G3A4007 +PERO6              =  0.650GAD3002 + 0.350GAA4005 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32955} G3A4007 +PERO9              =       GAD3002 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 32956} GPH400I                     =       G3H400U +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 32957} GPH400I +GHO                =       GPN400P +      GHO                                    : ARR( 0.162E-10,     0., 0.0);
+{ 32958} GPH400I +GHO                =       GPH400n +      GHO2                                   : ARR( 0.208E-11,     0., 0.0);
+{ 32959} GPH400I +GHO                =       G2P400H                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 32960} GPH400I+HV               =       G1P400I +      GHO                                    :  0.100E+01*SUN;
+{ 32961} GPH400I+HV               =       G1P400q +      GNO2                                   :  0.100E+01*SUN;
+{ 32962} GPH400I+HV               =       G3H400U +      GNO2                                   :  0.100E+01*SUN;
+{ 32963} G1P400q                     =       GHD2000 +      GPD2000 +      GHO2                    : ARR( 0.200E+15,  5490., 0.0);
+{ 32964} G1P400q                     =       GHD3005 +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 32965} GPN400O                     =       G3N400F +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 32966} GPN400O +GHO                =       GPN400P +      GHO2                                   : ARR( 0.425E-11,     0., 0.0);
+{ 32967} GPN400O +GHO                =       GPN400Y +      GHO2                                   : ARR( 0.218E-11,     0., 0.0);
+{ 32968} GPN400O+HV               =       G1P400K +      GNO2                                   :  0.100E+01*SUN;
+{ 32969} GPN400O+HV               =       G3N400F +      GNO2                                   :  0.100E+01*SUN;
+{ 32970} GPN400P                     =       G3N400U +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 32971} GPN400P +GHO                =       GPN400b +      GHO2                                   : ARR( 0.128E-11,     0., 0.0);
+{ 32972} GPN400P +GHO                =       G3P4006                                               : ARR( 0.211E-10,     0., 0.0);
+{ 32973} GPN400P +GNO3               =       G3P4006 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 32974} GPN400P+HV               =       G3N400U +      GNO2                                   :  0.100E+01*SUN;
+{ 32975} GPN400P+HV               =       G1P400k +      GNO2                                   :  0.100E+01*SUN;
+{ 32976} GPN400P+HV               =       GPN3006 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 32977} G3P4006 +GHO2               =  0.800GPG4007 + 0.200GPA4009 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 32978} G3P4006 +GNO                =       GPN3006 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 32979} G3P4006 +GNO2               =       GPP4004                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 32980} G3P4006 +GNO3               =       GPN3006 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 32981} G3P4006 +MEPERO             =  0.685GPN3006 + 0.315GPA4009 + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32982} G3P4006 +PERO1              =  0.800GPN3006 + 0.200GPA4009 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32983} G3P4006 +PERO2              =  0.750GPN3006 + 0.250GPA4009 + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32984} G3P4006 +PERO3              =  0.800GPN3006 + 0.200GPA4009 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32985} G3P4006 +PERO5              =  0.650GPN3006 + 0.350GPA4009 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32986} G3P4006 +PERO6              =  0.650GPN3006 + 0.350GPA4009 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 32987} G3P4006 +PERO9              =       GPN3006 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 32988} GPH400J                     =       G3H400Y +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 32989} GPH400J +GHO                =       GPD4004 +      GHO                                    : ARR( 0.511E-10,     0., 0.0);
+{ 32990} GPH400J +GHO                =       GPH400o +      GHO2                                   : ARR( 0.630E-11,     0., 0.0);
+{ 32991} GPH400J +GHO                =       G2P400I                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 32992} GPH400J+HV               =       G1P400J +      GHO                                    :  0.100E+01*SUN;
+{ 32993} GPH400J+HV               =       G3H3003 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 32994} GPK4007                     =       G3K400G +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 32995} GPK4007 +GHO                =       GPD4004 +      GHO2                                   : ARR( 0.129E-10,     0., 0.0);
+{ 32996} GPK4007 +GHO                =       GPK4009 +      GHO2                                   : ARR( 0.638E-11,     0., 0.0);
+{ 32997} GPK4007+HV               =       G3K3003 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 32998} GPD4004                     =       G3D4004 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 32999} GPD4004 +GHO                =       GPD4008 +      GHO2                                   : ARR( 0.384E-11,     0., 0.0);
+{ 33000} GPD4004 +GHO                =       G3P4007                                               : ARR( 0.660E-10,     0., 0.0);
+{ 33001} GPD4004 +GNO3               =       G3P4007 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 33002} GPD4004+HV               =       G3D3001 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 33003} GPD4004+HV               =       GPD3002 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 33004} G3D4004 +GHO2               =  0.800GGD4003 + 0.200GAD4004 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 33005} G3D4004 +GNO                =       G3D3001 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 33006} G3D4004 +GNO2               =       GPD4004                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 33007} G3D4004 +GNO3               =       G3D3001 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 33008} G3D4004 +MEPERO             =  0.685G3D3001 + 0.315GAD4004 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 33009} G3D4004 +PERO1              =  0.800G3D3001 + 0.200GAD4004 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 33010} G3D4004 +PERO2              =  0.750G3D3001 + 0.250GAD4004 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 33011} G3D4004 +PERO3              =  0.800G3D3001 + 0.200GAD4004 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 33012} G3D4004 +PERO5              =  0.650G3D3001 + 0.350GAD4004 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 33013} G3D4004 +PERO6              =  0.650G3D3001 + 0.350GAD4004 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 33014} G3D4004 +PERO9              =       G3D3001 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 33015} G3P4007 +GHO2               =  0.800GPG4008 + 0.200GPA400A + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 33016} G3P4007 +GNO                =       GPD3002 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 33017} G3P4007 +GNO2               =       GPP4005                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 33018} G3P4007 +GNO3               =       GPD3002 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 33019} G3P4007 +MEPERO             =  0.685GPD3002 + 0.315GPA400A + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33020} G3P4007 +PERO1              =  0.800GPD3002 + 0.200GPA400A + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33021} G3P4007 +PERO2              =  0.750GPD3002 + 0.250GPA400A + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33022} G3P4007 +PERO3              =  0.800GPD3002 + 0.200GPA400A + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33023} G3P4007 +PERO5              =  0.650GPD3002 + 0.350GPA400A + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33024} G3P4007 +PERO6              =  0.650GPD3002 + 0.350GPA400A + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33025} G3P4007 +PERO9              =       GPD3002 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 33026} GHN504d +GHO                =       GNN502X +      GHO                                    : ARR( 0.505E-11,     0., 0.0);
+{ 33027} GHN504d +GHO                =       G3H501o                                               : ARR( 0.209E-10,     0., 0.0);
+{ 33028} GHN504d +GHO                =       G2N505F                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 33029} GHN504d +GNO3               =       G3H501o +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 33030} GHN504d+HV               =       G1H507s +      GNO2                                   :  0.100E+01*SUN;
+{ 33031} GHN504d+HV               =       G1H507t +      GNO2                                   :  0.100E+01*SUN;
+{ 33032} GHN504d+HV               =       G1N5064 +      GHO                                    :  0.100E+01*SUN;
+{ 33033} GHN504d+HV               =       GNN4007 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 33034} G3H501o +GHO2               =  0.800GGH502U + 0.200GAH5029 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 33035} G3H501o +GNO                =       GNN4007 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 33036} G3H501o +GNO2               =       GPH5027                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 33037} G3H501o +GNO3               =       GNN4007 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 33038} G3H501o +MEPERO             =  0.685GNN4007 + 0.315GAH5029 + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33039} G3H501o +PERO1              =  0.800GNN4007 + 0.200GAH5029 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33040} G3H501o +PERO2              =  0.750GNN4007 + 0.250GAH5029 + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33041} G3H501o +PERO3              =  0.800GNN4007 + 0.200GAH5029 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33042} G3H501o +PERO5              =  0.650GNN4007 + 0.350GAH5029 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33043} G3H501o +PERO6              =  0.650GNN4007 + 0.350GAH5029 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33044} G3H501o +PERO9              =       GNN4007 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 33045} G2N505F +GNO                =       G1N5064 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 33046} G2N505F +GNO                =       GNN502T                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 33047} G2N505F +GHO2               =       GHN504d                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 33048} G2N505F +GNO3               =       G1N5064 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 33049} G2N505F +MEPERO             =  0.340G1N5064 + 0.330GNN502Z + 0.330GNN502X                 : ARR( 0.565E-13,  -845., 0.0);
+{ 33050} G2N505F +PERO1              =  0.460G1N5064 + 0.270GNN502Z + 0.270GNN502X                 : ARR( 0.434E-13,  -900., 0.0);
+{ 33051} G2N505F +PERO2              =  0.400G1N5064 + 0.300GNN502Z + 0.300GNN502X                 : ARR( 0.162E-13, -1400., 0.0);
+{ 33052} G2N505F +PERO3              =  0.460G1N5064 + 0.270GNN502Z + 0.270GNN502X                 : ARR( 0.488E-13, -1250., 0.0);
+{ 33053} G2N505F +PERO5              =  0.460G1N5064 + 0.270GNN502Z + 0.270GNN502X                 : ARR( 0.183E-11,   450., 0.0);
+{ 33054} G2N505F +PERO6              =  0.300G1N5064 + 0.350GNN502Z + 0.350GNN502X                 : ARR( 0.168E-13, -1300., 0.0);
+{ 33055} G2N505F +PERO9              =  0.650G1N5064 + 0.350GNN502X                                : ARR( 0.100E-10,     0., 0.0);
+{ 33056} G1H507s                     =       G3H500n                                               : ARR( 0.800E+11,  4559., 0.0);
+{ 33057} G1H507s                     =       GD02000 +      GHD3004 +      GNO2                    : ARR( 0.200E+15,  6112., 0.0);
+{ 33058} G1H507t                     =       GD02000 +      GHD3004 +      GNO2                    : ARR( 0.200E+15,  5880., 0.0);
+{ 33059} G1H507t                     =       GND3001 +      GDD2000 +      GHO                     : ARR( 0.200E+15,  4917., 0.0);
+{ 33060} GHH400N +GHO                =       GHN400r +      GHO                                    : ARR( 0.681E-11,     0., 0.0);
+{ 33061} GHH400N +GHO                =       GHN400p +      GHO                                    : ARR( 0.327E-11,     0., 0.0);
+{ 33062} GHH400N +GHO                =       G2H400x                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 33063} GHH400N +GHO                =       G2H400R                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 33064} GHH400N+HV               =       G1H401H +      GHO                                    :  0.100E+01*SUN;
+{ 33065} GHH400N+HV               =       G1H401N +      GNO2                                   :  0.100E+01*SUN;
+{ 33066} GHH400N+HV               =       G1H400T +      GHO                                    :  0.100E+01*SUN;
+{ 33067} G2H400x +GNO                =       G1H401H +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 33068} G2H400x +GNO                =       GHN400n                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 33069} G2H400x +GHO2               =       GHH400N                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 33070} G2H400x +GNO3               =       G1H401H +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 33071} G2H400x +MEPERO             =  0.340G1H401H + 0.330GHN400B + 0.330GHN400r                 : ARR( 0.565E-13,  -845., 0.0);
+{ 33072} G2H400x +PERO1              =  0.460G1H401H + 0.270GHN400B + 0.270GHN400r                 : ARR( 0.434E-13,  -900., 0.0);
+{ 33073} G2H400x +PERO2              =  0.400G1H401H + 0.300GHN400B + 0.300GHN400r                 : ARR( 0.162E-13, -1400., 0.0);
+{ 33074} G2H400x +PERO3              =  0.460G1H401H + 0.270GHN400B + 0.270GHN400r                 : ARR( 0.488E-13, -1250., 0.0);
+{ 33075} G2H400x +PERO5              =  0.460G1H401H + 0.270GHN400B + 0.270GHN400r                 : ARR( 0.183E-11,   450., 0.0);
+{ 33076} G2H400x +PERO6              =  0.300G1H401H + 0.350GHN400B + 0.350GHN400r                 : ARR( 0.168E-13, -1300., 0.0);
+{ 33077} G2H400x +PERO9              =  0.650G1H401H + 0.350GHN400r                                : ARR( 0.100E-10,     0., 0.0);
+{ 33078} G1H401N                     =       GD02000 +      GHD2000 +      GHO                     : ARR( 0.200E+15,  5231., 0.0);
+{ 33079} GHN400s +GHO                =       GHN4012 +      GHO2                                   : ARR( 0.845E-12,     0., 0.0);
+{ 33080} GHN400s +GHO                =       GNN400U +      GHO                                    : ARR( 0.173E-11,     0., 0.0);
+{ 33081} GHN400s +GHO                =       G2N4013                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 33082} GHN400s+HV               =       G1H400c +      GNO2                                   :  0.100E+01*SUN;
+{ 33083} GHN400s+HV               =       G1N400l +      GHO                                    :  0.100E+01*SUN;
+{ 33084} GHN400s+HV               =       G1H400U +      GNO2                                   :  0.100E+01*SUN;
+{ 33085} G2N4013 +GNO                =       G1N400l +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 33086} G2N4013 +GNO                =       GNN400S                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 33087} G2N4013 +GHO2               =       GHN400s                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 33088} G2N4013 +GNO3               =       G1N400l +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 33089} G2N4013 +MEPERO             =  0.340G1N400l + 0.330GNN400A + 0.330GNN400U                 : ARR( 0.565E-13,  -845., 0.0);
+{ 33090} G2N4013 +PERO1              =  0.460G1N400l + 0.270GNN400A + 0.270GNN400U                 : ARR( 0.434E-13,  -900., 0.0);
+{ 33091} G2N4013 +PERO2              =  0.400G1N400l + 0.300GNN400A + 0.300GNN400U                 : ARR( 0.162E-13, -1400., 0.0);
+{ 33092} G2N4013 +PERO3              =  0.460G1N400l + 0.270GNN400A + 0.270GNN400U                 : ARR( 0.488E-13, -1250., 0.0);
+{ 33093} G2N4013 +PERO5              =  0.460G1N400l + 0.270GNN400A + 0.270GNN400U                 : ARR( 0.183E-11,   450., 0.0);
+{ 33094} G2N4013 +PERO6              =  0.300G1N400l + 0.350GNN400A + 0.350GNN400U                 : ARR( 0.168E-13, -1300., 0.0);
+{ 33095} G2N4013 +PERO9              =  0.650G1N400l + 0.350GNN400U                                : ARR( 0.100E-10,     0., 0.0);
+{ 33096} GHH400O +GHO                =       GHN400t +      GHO                                    : ARR( 0.852E-11,     0., 0.0);
+{ 33097} GHH400O +GHO                =       GHN400h +      GHO                                    : ARR( 0.166E-10,     0., 0.0);
+{ 33098} GHH400O +GHO                =       G2H400y                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 33099} GHH400O +GHO                =       G2H400S                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 33100} GHH400O+HV               =       G1H401O +      GNO2                                   :  0.100E+01*SUN;
+{ 33101} GHH400O+HV               =       G1H401K +      GHO                                    :  0.100E+01*SUN;
+{ 33102} GHH400O+HV               =       G1H400U +      GHO                                    :  0.100E+01*SUN;
+{ 33103} G2H400y +GNO                =       G1H401K +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 33104} G2H400y +GNO                =       GHN400o                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 33105} G2H400y +GHO2               =       GHH400O                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 33106} G2H400y +GNO3               =       G1H401K +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 33107} G2H400y +MEPERO             =  0.340G1H401K + 0.330GHN400C + 0.330GHN400t                 : ARR( 0.565E-13,  -845., 0.0);
+{ 33108} G2H400y +PERO1              =  0.460G1H401K + 0.270GHN400C + 0.270GHN400t                 : ARR( 0.434E-13,  -900., 0.0);
+{ 33109} G2H400y +PERO2              =  0.400G1H401K + 0.300GHN400C + 0.300GHN400t                 : ARR( 0.162E-13, -1400., 0.0);
+{ 33110} G2H400y +PERO3              =  0.460G1H401K + 0.270GHN400C + 0.270GHN400t                 : ARR( 0.488E-13, -1250., 0.0);
+{ 33111} G2H400y +PERO5              =  0.460G1H401K + 0.270GHN400C + 0.270GHN400t                 : ARR( 0.183E-11,   450., 0.0);
+{ 33112} G2H400y +PERO6              =  0.300G1H401K + 0.350GHN400C + 0.350GHN400t                 : ARR( 0.168E-13, -1300., 0.0);
+{ 33113} G2H400y +PERO9              =  0.650G1H401K + 0.350GHN400t                                : ARR( 0.100E-10,     0., 0.0);
+{ 33114} G1H401O                     =       GCH2O   +      GHH3005 +      GHO2                    : ARR( 0.200E+15,  5296., 0.0);
+{ 33115} G1H401O                     =       GDO2000 +      GHD2000 +      GHO                     : ARR( 0.200E+15,  4843., 0.0);
+{ 33116} GHN504e +GHO                =       GND5018 +      GHO                                    : ARR( 0.508E-11,     0., 0.0);
+{ 33117} GHN504e +GHO                =       G3H501p                                               : ARR( 0.210E-10,     0., 0.0);
+{ 33118} GHN504e +GHO                =       G2N505G                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 33119} GHN504e +GNO3               =       G3H501p +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 33120} GHN504e+HV               =       G3K2000 +      GHD3004 +      GNO2                    :  0.100E+01*SUN;
+{ 33121} GHN504e+HV               =       G1H507u +      GNO2                                   :  0.100E+01*SUN;
+{ 33122} GHN504e+HV               =       G1N506A +      GHO                                    :  0.100E+01*SUN;
+{ 33123} GHN504e+HV               =       GND4008 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 33124} G3H501p +GHO2               =  0.800GGH502W + 0.200GAH502A + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 33125} G3H501p +GNO                =       GND4008 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 33126} G3H501p +GNO2               =       GPH5029                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 33127} G3H501p +GNO3               =       GND4008 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 33128} G3H501p +MEPERO             =  0.685GND4008 + 0.315GAH502A + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33129} G3H501p +PERO1              =  0.800GND4008 + 0.200GAH502A + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33130} G3H501p +PERO2              =  0.750GND4008 + 0.250GAH502A + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33131} G3H501p +PERO3              =  0.800GND4008 + 0.200GAH502A + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33132} G3H501p +PERO5              =  0.650GND4008 + 0.350GAH502A + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33133} G3H501p +PERO6              =  0.650GND4008 + 0.350GAH502A + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33134} G3H501p +PERO9              =       GND4008 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 33135} G2N505G +GNO                =       G1N506A +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 33136} G2N505G +GNO                =       GNN502Y                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 33137} G2N505G +GHO2               =       GHN504e                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 33138} G2N505G +GNO3               =       G1N506A +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 33139} G2N505G +MEPERO             =  0.340G1N506A + 0.330GND5017 + 0.330GND5018                 : ARR( 0.565E-13,  -845., 0.0);
+{ 33140} G2N505G +PERO1              =  0.460G1N506A + 0.270GND5017 + 0.270GND5018                 : ARR( 0.434E-13,  -900., 0.0);
+{ 33141} G2N505G +PERO2              =  0.400G1N506A + 0.300GND5017 + 0.300GND5018                 : ARR( 0.162E-13, -1400., 0.0);
+{ 33142} G2N505G +PERO3              =  0.460G1N506A + 0.270GND5017 + 0.270GND5018                 : ARR( 0.488E-13, -1250., 0.0);
+{ 33143} G2N505G +PERO5              =  0.460G1N506A + 0.270GND5017 + 0.270GND5018                 : ARR( 0.183E-11,   450., 0.0);
+{ 33144} G2N505G +PERO6              =  0.300G1N506A + 0.350GND5017 + 0.350GND5018                 : ARR( 0.168E-13, -1300., 0.0);
+{ 33145} G2N505G +PERO9              =  0.650G1N506A + 0.350GND5018                                : ARR( 0.100E-10,     0., 0.0);
+{ 33146} G1H507u                     =       G3K2000 +      GHD3004                                : ARR( 0.200E+15,  2093., 0.0);
+{ 33147} GGN500h +GHO                =       GGN5014 +      GHO2                                   : ARR( 0.135E-11,     0., 0.0);
+{ 33148} GGN500h +GHO                =       G3N500W                                               : ARR( 0.204E-11,  -190., 0.0);
+{ 33149} GGN500h+HV               =       G1G501t +      GNO2                                   :  0.100E+01*SUN;
+{ 33150} GGN500h+HV               =       G1G500o +      GNO2                                   :  0.100E+01*SUN;
+{ 33151} GGN500h+HV               =       GNN4008 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 33152} GAN500o +GHO                =       GAN501e +      GHO2                                   : ARR( 0.132E-11,     0., 0.0);
+{ 33153} GAN500o +GHO                =       G3A5009                                               : ARR( 0.219E-10,     0., 0.0);
+{ 33154} GAN500o +GNO3               =       G3A5009 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 33155} GAN500o+HV               =       G1A501H +      GNO2                                   :  0.100E+01*SUN;
+{ 33156} GAN500o+HV               =       GAN400J +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 33157} G3A5009 +GHO2               =  0.800GAG500B + 0.200GAA5004 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 33158} G3A5009 +GNO                =       GAN400J +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 33159} G3A5009 +GNO2               =       GPA5006                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 33160} G3A5009 +GNO3               =       GAN400J +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 33161} G3A5009 +MEPERO             =  0.685GAN400J + 0.315GAA5004 + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33162} G3A5009 +PERO1              =  0.800GAN400J + 0.200GAA5004 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33163} G3A5009 +PERO2              =  0.750GAN400J + 0.250GAA5004 + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33164} G3A5009 +PERO3              =  0.800GAN400J + 0.200GAA5004 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33165} G3A5009 +PERO5              =  0.650GAN400J + 0.350GAA5004 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33166} G3A5009 +PERO6              =  0.650GAN400J + 0.350GAA5004 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33167} G3A5009 +PERO9              =       GAN400J +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 33168} GPN500p                     =       G3N500g +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 33169} GPN500p +GHO                =       GPN501l +      GHO2                                   : ARR( 0.130E-11,     0., 0.0);
+{ 33170} GPN500p +GHO                =       G3P5009                                               : ARR( 0.214E-10,     0., 0.0);
+{ 33171} GPN500p +GNO3               =       G3P5009 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 33172} GPN500p+HV               =       G3N500g +      GNO2                                   :  0.100E+01*SUN;
+{ 33173} GPN500p+HV               =       G1P501J +      GNO2                                   :  0.100E+01*SUN;
+{ 33174} GPN500p+HV               =       GPN400H +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 33175} G3P5009 +GHO2               =  0.800GPG500B + 0.200GPA5005 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 33176} G3P5009 +GNO                =       GPN400H +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 33177} G3P5009 +GNO2               =       GPP5003                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 33178} G3P5009 +GNO3               =       GPN400H +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 33179} G3P5009 +MEPERO             =  0.685GPN400H + 0.315GPA5005 + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33180} G3P5009 +PERO1              =  0.800GPN400H + 0.200GPA5005 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33181} G3P5009 +PERO2              =  0.750GPN400H + 0.250GPA5005 + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33182} G3P5009 +PERO3              =  0.800GPN400H + 0.200GPA5005 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33183} G3P5009 +PERO5              =  0.650GPN400H + 0.350GPA5005 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33184} G3P5009 +PERO6              =  0.650GPN400H + 0.350GPA5005 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33185} G3P5009 +PERO9              =       GPN400H +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 33186} GPH500l                     =       G3H500n +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 33187} GPH500l +GHO                =       GPH5029 +      GHO2                                   : ARR( 0.174E-11,     0., 0.0);
+{ 33188} GPH500l +GHO                =       GPN500q +      GHO                                    : ARR( 0.523E-11,     0., 0.0);
+{ 33189} GPH500l +GHO                =       G2P500e                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 33190} GPH500l+HV               =       G1P502n +      GNO2                                   :  0.100E+01*SUN;
+{ 33191} GPH500l+HV               =       G1P500f +      GHO                                    :  0.100E+01*SUN;
+{ 33192} GPH500l+HV               =       G3H500n +      GNO2                                   :  0.100E+01*SUN;
+{ 33193} G1P502n                     =       GD02000 +      GPH3007 +      GHO2                    : ARR( 0.200E+15,  3132., 0.0);
+{ 33194} GPN500q                     =       G3N501Y +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 33195} GPN500q +GHO                =       G2P502K                                               : ARR( 0.174E-12,     0., 0.0);
+{ 33196} GPN500q +GHO                =       GPN501o +      GHO2                                   : ARR( 0.174E-11,     0., 0.0);
+{ 33197} GPN500q +GHO                =       G1P501w                                               : ARR( 0.218E-17,    85., 2.0);
+{ 33198} GPN500q+HV               =       G1P502o +      GNO2                                   :  0.100E+01*SUN;
+{ 33199} GPN500q+HV               =       G3N400C +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 33200} G3N501Y +GHO2               =  0.800GGN501q + 0.200GAN501k + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 33201} G3N501Y +GNO                =       G3N400C +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 33202} G3N501Y +GNO2               =       GPN500q                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 33203} G3N501Y +GNO3               =       G3N400C +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 33204} G3N501Y +MEPERO             =  0.685G3N400C + 0.315GAN501k + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 33205} G3N501Y +PERO1              =  0.800G3N400C + 0.200GAN501k + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 33206} G3N501Y +PERO2              =  0.750G3N400C + 0.250GAN501k + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 33207} G3N501Y +PERO3              =  0.800G3N400C + 0.200GAN501k + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 33208} G3N501Y +PERO5              =  0.650G3N400C + 0.350GAN501k + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 33209} G3N501Y +PERO6              =  0.650G3N400C + 0.350GAN501k + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 33210} G3N501Y +PERO9              =       G3N400C +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 33211} G2P502K +GNO                =       G1P502p +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 33212} G2P502K +GNO                =       GPN501R                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 33213} G2P502K +GHO2               =       GPH502t                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 33214} G2P502K +GNO3               =       G1P502p +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 33215} G2P502K +MEPERO             =  0.480G1P502p + 0.260GPN500u + 0.260GPN502H                 : ARR( 0.164E-12,  -795., 0.0);
+{ 33216} G2P502K +PERO1              =  0.600G1P502p + 0.200GPN500u + 0.200GPN502H                 : ARR( 0.126E-12,  -850., 0.0);
+{ 33217} G2P502K +PERO2              =  0.560G1P502p + 0.220GPN500u + 0.220GPN502H                 : ARR( 0.471E-13, -1350., 0.0);
+{ 33218} G2P502K +PERO3              =  0.600G1P502p + 0.200GPN500u + 0.200GPN502H                 : ARR( 0.142E-12, -1200., 0.0);
+{ 33219} G2P502K +PERO5              =  0.600G1P502p + 0.200GPN500u + 0.200GPN502H                 : ARR( 0.533E-11,   500., 0.0);
+{ 33220} G2P502K +PERO6              =  0.460G1P502p + 0.270GPN500u + 0.270GPN502H                 : ARR( 0.488E-13, -1250., 0.0);
+{ 33221} G2P502K +PERO9              =  0.800G1P502p + 0.200GPN502H                                : ARR( 0.100E-10,     0., 0.0);
+{ 33222} G1P502o                     =       GDO3001 +      GCO     +      GNO2    +      GCO      : ARR( 0.200E+15,  3266., 0.0);
+{ 33223} G1P502p                     =       GPN400a +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4427., 0.0);
+{ 33224} GPN500r                     =       G3N500x +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 33225} GPN500r +GHO                =       GPN502I +      GHO2                                   : ARR( 0.421E-12,     0., 0.0);
+{ 33226} GPN500r +GHO                =       GPN501U +      GNO2                                   : ARR( 0.120E-12,     0., 0.0);
+{ 33227} GPN500r +GHO                =       GPN501R +      GHO2                                   : ARR( 0.128E-11,     0., 0.0);
+{ 33228} GPN500r +GHO                =       G1P502q                                               : ARR( 0.215E-17,    85., 2.0);
+{ 33229} GPN500r +GHO                =       G1P501M                                               : ARR( 0.215E-17,    85., 2.0);
+{ 33230} GPN500r+HV               =       G1P500g +      GNO2                                   :  0.100E+01*SUN;
+{ 33231} GPN500r+HV               =       G1P501O +      GNO2                                   :  0.100E+01*SUN;
+{ 33232} GPN500r+HV               =       G3N500x +      GNO2                                   :  0.100E+01*SUN;
+{ 33233} G1P502q                     =       GND2000 +      GPD3001 +      GNO2                    : ARR( 0.200E+15,  6365., 0.0);
+{ 33234} GPH500m                     =       G3H501I +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 33235} GPH500m +GHO                =       GPN500t +      GHO                                    : ARR( 0.164E-10,     0., 0.0);
+{ 33236} GPH500m +GHO                =       GPH502u +      GHO2                                   : ARR( 0.210E-11,     0., 0.0);
+{ 33237} GPH500m +GHO                =       GPH502t +      GHO2                                   : ARR( 0.128E-11,     0., 0.0);
+{ 33238} GPH500m +GHO                =       G2P500f                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 33239} GPH500m+HV               =       G1P500g +      GHO                                    :  0.100E+01*SUN;
+{ 33240} GPH500m+HV               =       G1P502r +      GNO2                                   :  0.100E+01*SUN;
+{ 33241} GPH500m+HV               =       G3H501I +      GNO2                                   :  0.100E+01*SUN;
+{ 33242} G1P502r                     =       GHD2000 +      GPD3001 +      GHO2                    : ARR( 0.200E+15,  2745., 0.0);
+{ 33243} GPN500s                     =       G3N500Y +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 33244} GPN500s +GHO                =       GPN500t +      GHO2                                   : ARR( 0.432E-11,     0., 0.0);
+{ 33245} GPN500s +GHO                =       GPN502J +      GHO2                                   : ARR( 0.221E-11,     0., 0.0);
+{ 33246} GPN500s +GHO                =       GPN500u +      GHO2                                   : ARR( 0.135E-11,     0., 0.0);
+{ 33247} GPN500s+HV               =       G1P500h +      GNO2                                   :  0.100E+01*SUN;
+{ 33248} GPN500s+HV               =       G3N500Y +      GNO2                                   :  0.100E+01*SUN;
+{ 33249} GPN500t                     =       G3N501C +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 33250} GPN500t +GHO                =       GPN502H +      GHO2                                   : ARR( 0.129E-11,     0., 0.0);
+{ 33251} GPN500t +GHO                =       GPN502K +      GHO2                                   : ARR( 0.129E-11,     0., 0.0);
+{ 33252} GPN500t +GHO                =       G3P500A                                               : ARR( 0.214E-10,     0., 0.0);
+{ 33253} GPN500t +GNO3               =       G3P500A +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 33254} GPN500t+HV               =       G3N501C +      GNO2                                   :  0.100E+01*SUN;
+{ 33255} GPN500t+HV               =       G1P501Z +      GNO2                                   :  0.100E+01*SUN;
+{ 33256} GPN500t+HV               =       GPN400Q +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 33257} G3P500A +GHO2               =  0.800GPG500C + 0.200GPA500D + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 33258} G3P500A +GNO                =       GPN400Q +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 33259} G3P500A +GNO2               =       GPP5008                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 33260} G3P500A +GNO3               =       GPN400Q +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 33261} G3P500A +MEPERO             =  0.685GPN400Q + 0.315GPA500D + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33262} G3P500A +PERO1              =  0.800GPN400Q + 0.200GPA500D + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33263} G3P500A +PERO2              =  0.750GPN400Q + 0.250GPA500D + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33264} G3P500A +PERO3              =  0.800GPN400Q + 0.200GPA500D + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33265} G3P500A +PERO5              =  0.650GPN400Q + 0.350GPA500D + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33266} G3P500A +PERO6              =  0.650GPN400Q + 0.350GPA500D + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33267} G3P500A +PERO9              =       GPN400Q +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 33268} GPN500u                     =       G3N501Z +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 33269} GPN500u +GHO                =       GPN502H +      GHO2                                   : ARR( 0.425E-11,     0., 0.0);
+{ 33270} GPN500u +GHO                =       GPN501s +      GHO2                                   : ARR( 0.218E-11,     0., 0.0);
+{ 33271} GPN500u+HV               =       G1P502s +      GNO2                                   :  0.100E+01*SUN;
+{ 33272} GPN500u+HV               =       G3N400F +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 33273} G3N501Z +GHO2               =  0.800GGN501u + 0.200GAN501o + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 33274} G3N501Z +GNO                =       G3N400F +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 33275} G3N501Z +GNO2               =       GPN500u                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 33276} G3N501Z +GNO3               =       G3N400F +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 33277} G3N501Z +MEPERO             =  0.685G3N400F + 0.315GAN501o + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 33278} G3N501Z +PERO1              =  0.800G3N400F + 0.200GAN501o + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 33279} G3N501Z +PERO2              =  0.750G3N400F + 0.250GAN501o + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 33280} G3N501Z +PERO3              =  0.800G3N400F + 0.200GAN501o + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 33281} G3N501Z +PERO5              =  0.650G3N400F + 0.350GAN501o + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 33282} G3N501Z +PERO6              =  0.650G3N400F + 0.350GAN501o + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 33283} G3N501Z +PERO9              =       G3N400F +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 33284} G1P502s                     =       GDO3002 +      GCO     +      GNO2    +      GCO      : ARR( 0.200E+15,  3266., 0.0);
+{ 33285} GPN400Q                     =       G3N400T +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 33286} GPN400Q +GHO                =       GPN400a +      GHO2                                   : ARR( 0.131E-11,     0., 0.0);
+{ 33287} GPN400Q +GHO                =       G3P4008                                               : ARR( 0.432E-11,     0., 0.0);
+{ 33288} GPN400Q +GNO3               =       G3P4008 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 33289} GPN400Q+HV               =       G3N400T +      GNO2                                   :  0.100E+01*SUN;
+{ 33290} GPN400Q+HV               =       G1P400r +      GNO2                                   :  0.100E+01*SUN;
+{ 33291} GPN400Q+HV               =       GPD3001 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 33292} G3P4008 +GHO2               =  0.800GPG4009 + 0.200GPA4007 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 33293} G3P4008 +GNO                =       GPD3001 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 33294} G3P4008 +GNO2               =       GPP4004                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 33295} G3P4008 +GNO3               =       GPD3001 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 33296} G3P4008 +MEPERO             =  0.685GPD3001 + 0.315GPA4007 + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33297} G3P4008 +PERO1              =  0.800GPD3001 + 0.200GPA4007 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33298} G3P4008 +PERO2              =  0.750GPD3001 + 0.250GPA4007 + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33299} G3P4008 +PERO3              =  0.800GPD3001 + 0.200GPA4007 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33300} G3P4008 +PERO5              =  0.650GPD3001 + 0.350GPA4007 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33301} G3P4008 +PERO6              =  0.650GPD3001 + 0.350GPA4007 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33302} G3P4008 +PERO9              =       GPD3001 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 33303} G1P400r                     =       GPD2000 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  5402., 0.0);
+{ 33304} G1P400r                     =       GPD3001 +      GCO     +      GHO2                    : ARR( 0.200E+15,  4861., 0.0);
+{ 33305} GNN400T +GHO                =       GNN400a +      GHO2                                   : ARR( 0.127E-11,     0., 0.0);
+{ 33306} GNN400T +GHO                =       G3N400M                                               : ARR( 0.210E-10,     0., 0.0);
+{ 33307} GNN400T +GNO3               =       G3N400M +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 33308} GNN400T+HV               =       G1N400p +      GNO2                                   :  0.100E+01*SUN;
+{ 33309} GNN400T+HV               =       G1N4019 +      GNO2                                   :  0.100E+01*SUN;
+{ 33310} GNN400T+HV               =       GNN3005 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 33311} G1N4019                     =       GND2000 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  3765., 0.0);
+{ 33312} GNN400U +GHO                =       GNN400G +      GHO2                                   : ARR( 0.826E-12,     0., 0.0);
+{ 33313} GNN400U +GHO                =       GNK400C +      GNO2                                   : ARR( 0.738E-13,     0., 0.0);
+{ 33314} GNN400U +GHO                =       G1N400t                                               : ARR( 0.216E-17,    85., 2.0);
+{ 33315} GNN400U+HV               =       G1N400n +      GNO2                                   :  0.100E+01*SUN;
+{ 33316} GNN400U+HV               =       G3N3004 +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{ 33317} GNN400U+HV               =       G1N4018 +      GNO2                                   :  0.100E+01*SUN;
+{ 33318} GHN400t +GHO                =       GHN401A +      GHO2                                   : ARR( 0.816E-12,     0., 0.0);
+{ 33319} GHN400t +GHO                =       GND400K +      GHO                                    : ARR( 0.995E-11,     0., 0.0);
+{ 33320} GHN400t +GHO                =       G2N400y                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 33321} GHN400t+HV               =       G1H401P +      GNO2                                   :  0.100E+01*SUN;
+{ 33322} GHN400t+HV               =       G3N3004 +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 33323} GHN400t+HV               =       G1N4018 +      GHO                                    :  0.100E+01*SUN;
+{ 33324} G1H401P                     =       GDO2000 +      G3H2000                                : ARR( 0.200E+15,  3069., 0.0);
+{ 33325} GND400K +GHO                =       GND400N +      GHO2                                   : ARR( 0.817E-12,     0., 0.0);
+{ 33326} GND400K +GHO                =       G3N3004 +      GCO                                    : ARR( 0.129E-10,     0., 0.0);
+{ 33327} GND400K +GNO3               =       G3N3004 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 33328} GND400K+HV               =       G1D400L +      GNO2                                   :  0.100E+01*SUN;
+{ 33329} GND400K+HV               =       G3N3004 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 33330} GND400K+HV               =       GND3004 +      GCO                                    :  0.100E+01*SUN;
+{ 33331} GND400K+HV               =       GNO2000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 33332} G1D400L                     =       GDO2000 +      G3D2000                                : ARR( 0.200E+15,  3293., 0.0);
+{ 33333} GGN400K +GHO                =       GGN400U +      GHO2                                   : ARR( 0.861E-12,     0., 0.0);
+{ 33334} GGN400K +GHO                =       GGN400Y +      GHO2                                   : ARR( 0.134E-11,     0., 0.0);
+{ 33335} GGN400K +GHO                =       G3N400E                                               : ARR( 0.203E-11,  -190., 0.0);
+{ 33336} GGN400K+HV               =       G1G400E +      GNO2                                   :  0.100E+01*SUN;
+{ 33337} GGN400K+HV               =       GND3004 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 33338} GND400L +GHO                =       GND400N +      GHO2                                   : ARR( 0.252E-11,     0., 0.0);
+{ 33339} GND400L +GHO                =       G3N400Q                                               : ARR( 0.427E-11,     0., 0.0);
+{ 33340} GND400L +GNO3               =       G3N400Q +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 33341} GND400L+HV               =       G3K2001 +      GDD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 33342} GND400L+HV               =       G1D400J +      GNO2                                   :  0.100E+01*SUN;
+{ 33343} GND400L+HV               =       GDK3001 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 33344} GGN400L +GHO                =       GGN400W +      GHO2                                   : ARR( 0.417E-11,     0., 0.0);
+{ 33345} GGN400L +GHO                =       GGN400S +      GHO2                                   : ARR( 0.214E-11,     0., 0.0);
+{ 33346} GGN400L +GHO                =       G3N400F                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 33347} GGN400L+HV               =       G1G400e +      GNO2                                   :  0.100E+01*SUN;
+{ 33348} GGN400L+HV               =       GDO3002 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 33349} G1G400e                     =       GDO2000 +      GGD2000 +      GHO2                    : ARR( 0.200E+15,  5490., 0.0);
+{ 33350} G1G400e                     =       GDO3002 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 33351} GHN504f +GHO                =       GND500z +      GHO                                    : ARR( 0.160E-10,     0., 0.0);
+{ 33352} GHN504f +GHO                =       G3H501q                                               : ARR( 0.689E-10,     0., 0.0);
+{ 33353} GHN504f +GNO3               =       G3H501q +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 33354} GHN504f+HV               =       G1H507v +      GNO2                                   :  0.100E+01*SUN;
+{ 33355} GHN504f+HV               =       G3N3001 +      GDD2000 +      GHO                     :  0.100E+01*SUN;
+{ 33356} GHN504f+HV               =       G1N5066 +      GHO                                    :  0.100E+01*SUN;
+{ 33357} GHN504f+HV               =       GND400I +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 33358} G3H501q +GHO2               =  0.800GGH5028 + 0.200GAH502M + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 33359} G3H501q +GNO                =       GND400I +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 33360} G3H501q +GNO2               =       GPH502S                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 33361} G3H501q +GNO3               =       GND400I +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 33362} G3H501q +MEPERO             =  0.685GND400I + 0.315GAH502M + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33363} G3H501q +PERO1              =  0.800GND400I + 0.200GAH502M + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33364} G3H501q +PERO2              =  0.750GND400I + 0.250GAH502M + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33365} G3H501q +PERO3              =  0.800GND400I + 0.200GAH502M + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33366} G3H501q +PERO5              =  0.650GND400I + 0.350GAH502M + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33367} G3H501q +PERO6              =  0.650GND400I + 0.350GAH502M + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33368} G3H501q +PERO9              =       GND400I +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 33369} G1H507v                     =       GD02000 +      G3H3006                                : ARR( 0.200E+15,  3523., 0.0);
+{ 33370} GHH400P +GHO                =       GHK400A +      GHO                                    : ARR( 0.207E-10,     0., 0.0);
+{ 33371} GHH400P +GHO                =       GHD400I +      GHO                                    : ARR( 0.995E-11,     0., 0.0);
+{ 33372} GHH400P +GHO                =       G2H400z                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 33373} GHH400P +GHO                =       G2H400T                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 33374} GHH400P+HV               =       G1H401L +      GHO                                    :  0.100E+01*SUN;
+{ 33375} GHH400P+HV               =       G3H3001 +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 33376} GHH400P+HV               =       G1H400Y +      GHO                                    :  0.100E+01*SUN;
+{ 33377} G2H400z +GNO                =       G1H401L +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 33378} G2H400z +GNO                =       GHN400q                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 33379} G2H400z +GHO2               =       GHH400P                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 33380} G2H400z +GNO3               =       G1H401L +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 33381} G2H400z +MEPERO             =  0.340G1H401L + 0.330GHK4004 + 0.330GHK400A                 : ARR( 0.565E-13,  -845., 0.0);
+{ 33382} G2H400z +PERO1              =  0.460G1H401L + 0.270GHK4004 + 0.270GHK400A                 : ARR( 0.434E-13,  -900., 0.0);
+{ 33383} G2H400z +PERO2              =  0.400G1H401L + 0.300GHK4004 + 0.300GHK400A                 : ARR( 0.162E-13, -1400., 0.0);
+{ 33384} G2H400z +PERO3              =  0.460G1H401L + 0.270GHK4004 + 0.270GHK400A                 : ARR( 0.488E-13, -1250., 0.0);
+{ 33385} G2H400z +PERO5              =  0.460G1H401L + 0.270GHK4004 + 0.270GHK400A                 : ARR( 0.183E-11,   450., 0.0);
+{ 33386} G2H400z +PERO6              =  0.300G1H401L + 0.350GHK4004 + 0.350GHK400A                 : ARR( 0.168E-13, -1300., 0.0);
+{ 33387} G2H400z +PERO9              =  0.650G1H401L + 0.350GHK400A                                : ARR( 0.100E-10,     0., 0.0);
+{ 33388} GHD500w +GHO                =       GDK500W +      GHO                                    : ARR( 0.160E-10,     0., 0.0);
+{ 33389} GHD500w +GHO                =       G3H501r                                               : ARR( 0.689E-10,     0., 0.0);
+{ 33390} GHD500w +GNO3               =       G3H501r +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 33391} GHD500w+HV               =       G3K2000 +      G3H3006                                :  0.100E+01*SUN;
+{ 33392} GHD500w+HV               =       G1D501C +      GHO                                    :  0.100E+01*SUN;
+{ 33393} GHD500w+HV               =       GDK4008 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 33394} G3H501r +GHO2               =  0.800GGH5029 + 0.200GAH502N + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 33395} G3H501r +GNO                =       GDK4008 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 33396} G3H501r +GNO2               =       GPH502U                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 33397} G3H501r +GNO3               =       GDK4008 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 33398} G3H501r +MEPERO             =  0.685GDK4008 + 0.315GAH502N + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33399} G3H501r +PERO1              =  0.800GDK4008 + 0.200GAH502N + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33400} G3H501r +PERO2              =  0.750GDK4008 + 0.250GAH502N + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33401} G3H501r +PERO3              =  0.800GDK4008 + 0.200GAH502N + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33402} G3H501r +PERO5              =  0.650GDK4008 + 0.350GAH502N + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33403} G3H501r +PERO6              =  0.650GDK4008 + 0.350GAH502N + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33404} G3H501r +PERO9              =       GDK4008 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 33405} GGH3007 +GHO                =       GGD3002 +      GHO                                    : ARR( 0.153E-10,     0., 0.0);
+{ 33406} GGH3007 +GHO                =       G3G3003                                               : ARR( 0.208E-10,     0., 0.0);
+{ 33407} GGH3007 +GHO                =       G3H3006                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 33408} GGH3007 +GHO                =       G2G3009                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 33409} GGH3007 +GNO3               =       G3G3003 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 33410} GGH3007+HV               =       GDD2000 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 33411} GGH3007+HV               =       G1G3009 +      GHO                                    :  0.100E+01*SUN;
+{ 33412} GGH3007+HV               =       GGD2000 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 33413} G3G3003 +GHO2               =  0.800GGG3003 + 0.200GAG3003 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 33414} G3G3003 +GNO                =       GGD2000 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 33415} G3G3003 +GNO2               =       GPG3003                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 33416} G3G3003 +GNO3               =       GGD2000 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 33417} G3G3003 +MEPERO             =  0.685GGD2000 + 0.315GAG3003 + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33418} G3G3003 +PERO1              =  0.800GGD2000 + 0.200GAG3003 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33419} G3G3003 +PERO2              =  0.750GGD2000 + 0.250GAG3003 + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33420} G3G3003 +PERO3              =  0.800GGD2000 + 0.200GAG3003 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33421} G3G3003 +PERO5              =  0.650GGD2000 + 0.350GAG3003 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33422} G3G3003 +PERO6              =  0.650GGD2000 + 0.350GAG3003 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33423} G3G3003 +PERO9              =       GGD2000 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 33424} G2G3009 +GNO                =       G1G3009 +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{ 33425} G2G3009 +GNO                =       GGN3005                                               : ARR( 0.622E-13,  -360., 0.0);
+{ 33426} G2G3009 +GHO2               =       GGH3007                                               : ARR( 0.179E-12, -1250., 0.0);
+{ 33427} G2G3009 +GNO3               =       G1G3009 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 33428} G2G3009 +MEPERO             =  0.340G1G3009 + 0.330GGD3001 + 0.330GGD3002                 : ARR( 0.565E-13,  -845., 0.0);
+{ 33429} G2G3009 +PERO1              =  0.460G1G3009 + 0.270GGD3001 + 0.270GGD3002                 : ARR( 0.434E-13,  -900., 0.0);
+{ 33430} G2G3009 +PERO2              =  0.400G1G3009 + 0.300GGD3001 + 0.300GGD3002                 : ARR( 0.162E-13, -1400., 0.0);
+{ 33431} G2G3009 +PERO3              =  0.460G1G3009 + 0.270GGD3001 + 0.270GGD3002                 : ARR( 0.488E-13, -1250., 0.0);
+{ 33432} G2G3009 +PERO5              =  0.460G1G3009 + 0.270GGD3001 + 0.270GGD3002                 : ARR( 0.183E-11,   450., 0.0);
+{ 33433} G2G3009 +PERO6              =  0.300G1G3009 + 0.350GGD3001 + 0.350GGD3002                 : ARR( 0.168E-13, -1300., 0.0);
+{ 33434} G2G3009 +PERO9              =  0.650G1G3009 + 0.350GGD3002                                : ARR( 0.100E-10,     0., 0.0);
+{ 33435} GAH3007 +GHO                =       GAD3002 +      GHO                                    : ARR( 0.115E-10,     0., 0.0);
+{ 33436} GAH3007 +GHO                =       G3A3003                                               : ARR( 0.211E-10,     0., 0.0);
+{ 33437} GAH3007 +GHO                =       G2A3007                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 33438} GAH3007 +GNO3               =       G3A3003 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 33439} GAH3007+HV               =       G1A3008 +      GHO                                    :  0.100E+01*SUN;
+{ 33440} GAH3007+HV               =       GAD2000 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 33441} G3A3003 +GHO2               =  0.800GAG3003 + 0.200GAA3003 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 33442} G3A3003 +GNO                =       GAD2000 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 33443} G3A3003 +GNO2               =       GPA3003                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 33444} G3A3003 +GNO3               =       GAD2000 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 33445} G3A3003 +MEPERO             =  0.685GAD2000 + 0.315GAA3003 + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33446} G3A3003 +PERO1              =  0.800GAD2000 + 0.200GAA3003 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33447} G3A3003 +PERO2              =  0.750GAD2000 + 0.250GAA3003 + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33448} G3A3003 +PERO3              =  0.800GAD2000 + 0.200GAA3003 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33449} G3A3003 +PERO5              =  0.650GAD2000 + 0.350GAA3003 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33450} G3A3003 +PERO6              =  0.650GAD2000 + 0.350GAA3003 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33451} G3A3003 +PERO9              =       GAD2000 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 33452} GPH3007                     =       G3H3006 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 33453} GPH3007 +GHO                =       GPD3002 +      GHO                                    : ARR( 0.153E-10,     0., 0.0);
+{ 33454} GPH3007 +GHO                =       G3P3003                                               : ARR( 0.208E-10,     0., 0.0);
+{ 33455} GPH3007 +GHO                =       G2P3007                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 33456} GPH3007 +GNO3               =       G3P3003 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 33457} GPH3007+HV               =       G3H3006 +      GNO2                                   :  0.100E+01*SUN;
+{ 33458} GPH3007+HV               =       G1P3008 +      GHO                                    :  0.100E+01*SUN;
+{ 33459} GPH3007+HV               =       GPD2000 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 33460} G3P3003 +GHO2               =  0.800GPG3003 + 0.200GPA3003 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 33461} G3P3003 +GNO                =       GPD2000 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 33462} G3P3003 +GNO2               =       GPP3003                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 33463} G3P3003 +GNO3               =       GPD2000 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 33464} G3P3003 +MEPERO             =  0.685GPD2000 + 0.315GPA3003 + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33465} G3P3003 +PERO1              =  0.800GPD2000 + 0.200GPA3003 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33466} G3P3003 +PERO2              =  0.750GPD2000 + 0.250GPA3003 + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33467} G3P3003 +PERO3              =  0.800GPD2000 + 0.200GPA3003 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33468} G3P3003 +PERO5              =  0.650GPD2000 + 0.350GPA3003 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33469} G3P3003 +PERO6              =  0.650GPD2000 + 0.350GPA3003 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33470} G3P3003 +PERO9              =       GPD2000 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 33471} GHN504g +GHO                =       GND500z +      GHO                                    : ARR( 0.511E-11,     0., 0.0);
+{ 33472} GHN504g +GHO                =       G3H4008 +      GCO                                    : ARR( 0.129E-10,     0., 0.0);
+{ 33473} GHN504g +GHO                =       G2N505H                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 33474} GHN504g +GNO3               =       G3H4008 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 33475} GHN504g+HV               =       G1H507E +      GNO2                                   :  0.100E+01*SUN;
+{ 33476} GHN504g+HV               =       G1N5068 +      GHO                                    :  0.100E+01*SUN;
+{ 33477} GHN504g+HV               =       G3H4008 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 33478} GHN504g+HV               =       GHN400O +      GCO                                    :  0.100E+01*SUN;
+{ 33479} GHN504g+HV               =       GHN3001 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 33480} G2N505H +GNO                =       G1N5068 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 33481} G2N505H +GNO                =       GNN502X                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 33482} G2N505H +GHO2               =       GHN504g                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 33483} G2N505H +GNO3               =       G1N5068 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 33484} G2N505H +MEPERO             =  0.340G1N5068 + 0.330GND500y + 0.330GND500z                 : ARR( 0.565E-13,  -845., 0.0);
+{ 33485} G2N505H +PERO1              =  0.460G1N5068 + 0.270GND500y + 0.270GND500z                 : ARR( 0.434E-13,  -900., 0.0);
+{ 33486} G2N505H +PERO2              =  0.400G1N5068 + 0.300GND500y + 0.300GND500z                 : ARR( 0.162E-13, -1400., 0.0);
+{ 33487} G2N505H +PERO3              =  0.460G1N5068 + 0.270GND500y + 0.270GND500z                 : ARR( 0.488E-13, -1250., 0.0);
+{ 33488} G2N505H +PERO5              =  0.460G1N5068 + 0.270GND500y + 0.270GND500z                 : ARR( 0.183E-11,   450., 0.0);
+{ 33489} G2N505H +PERO6              =  0.300G1N5068 + 0.350GND500y + 0.350GND500z                 : ARR( 0.168E-13, -1300., 0.0);
+{ 33490} G2N505H +PERO9              =  0.650G1N5068 + 0.350GND500z                                : ARR( 0.100E-10,     0., 0.0);
+{ 33491} GGH500g +GHO                =       GGH500W +      GHO                                    : ARR( 0.388E-10,     0., 0.0);
+{ 33492} GGH500g +GHO                =       GGH500Q +      GHO                                    : ARR( 0.477E-10,     0., 0.0);
+{ 33493} GGH500g+HV               =       G1G501l +      GHO                                    :  0.100E+01*SUN;
+{ 33494} GGH500g+HV               =       G1G501U +      GHO                                    :  0.100E+01*SUN;
+{ 33495} GGH500g+HV               =       G2H400U +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 33496} GAH500l +GHO                =       GAH500Y +      GHO                                    : ARR( 0.373E-10,     0., 0.0);
+{ 33497} GAH500l +GHO                =       GAH500S +      GHO                                    : ARR( 0.459E-10,     0., 0.0);
+{ 33498} GAH500l+HV               =       G1A502A +      GHO                                    :  0.100E+01*SUN;
+{ 33499} GAH500l+HV               =       G1A501j +      GHO                                    :  0.100E+01*SUN;
+{ 33500} GPH500n                     =       G3H500O +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 33501} GPH500n +GHO                =       GPH500a +      GHO                                    : ARR( 0.372E-10,     0., 0.0);
+{ 33502} GPH500n +GHO                =       GPH500U +      GHO                                    : ARR( 0.457E-10,     0., 0.0);
+{ 33503} GPH500n+HV               =       G1P502O +      GHO                                    :  0.100E+01*SUN;
+{ 33504} GPH500n+HV               =       G1P501o +      GHO                                    :  0.100E+01*SUN;
+{ 33505} GPH500n+HV               =       G3H500O +      GNO2                                   :  0.100E+01*SUN;
+{ 33506} GHH400Q +GHO                =       GHH400X +      GHO                                    : ARR( 0.375E-10,     0., 0.0);
+{ 33507} GHH400Q +GHO                =       GHH400P +      GHO                                    : ARR( 0.462E-10,     0., 0.0);
+{ 33508} GHH400Q +GHO                =       GHH400M +      GHO                                    : ARR( 0.180E-10,     0., 0.0);
+{ 33509} GHH400Q+HV               =       G1H401Q +      GHO                                    :  0.100E+01*SUN;
+{ 33510} GHH400Q+HV               =       G1H401N +      GHO                                    :  0.100E+01*SUN;
+{ 33511} GHH400Q+HV               =       G1H400Z +      GHO                                    :  0.100E+01*SUN;
+{ 33512} G1H401Q                     =       GD02000 +      GHD2000 +      GHO                     : ARR( 0.200E+15,  4589., 0.0);
+{ 33513} GHH400R +GHO                =       GHK4008 +      GHO                                    : ARR( 0.387E-10,     0., 0.0);
+{ 33514} GHH400R +GHO                =       GHK4007 +      GHO                                    : ARR( 0.476E-10,     0., 0.0);
+{ 33515} GHH400R+HV               =       G1H401E +      GHO                                    :  0.100E+01*SUN;
+{ 33516} GHH400R+HV               =       G1H401B +      GHO                                    :  0.100E+01*SUN;
+{ 33517} GHH400S +GHO                =       GHH400j +      GHO2                                   : ARR( 0.403E-11,     0., 0.0);
+{ 33518} GHH400S +GHO                =       GHN400l +      GHO                                    : ARR( 0.413E-10,     0., 0.0);
+{ 33519} GHH400S +GHO                =       GHN400u +      GHO                                    : ARR( 0.827E-11,     0., 0.0);
+{ 33520} GHH400S +GHO                =       G2H400Y                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 33521} GHH400S +GHO                =       G2H4011                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 33522} GHH400S+HV               =       G1H400c +      GHO                                    :  0.100E+01*SUN;
+{ 33523} GHH400S+HV               =       G1H401F +      GHO                                    :  0.100E+01*SUN;
+{ 33524} GHH400S+HV               =       G1H400a +      GNO2                                   :  0.100E+01*SUN;
+{ 33525} G2H4011 +GNO                =       G1H401F +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 33526} G2H4011 +GNO                =       GHN400m                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 33527} G2H4011 +GHO2               =       GHH400S                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 33528} G2H4011 +GNO3               =       G1H401F +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 33529} G2H4011 +MEPERO             =  0.340G1H401F + 0.330GHN400F + 0.330GHN400u                 : ARR( 0.565E-13,  -845., 0.0);
+{ 33530} G2H4011 +PERO1              =  0.460G1H401F + 0.270GHN400F + 0.270GHN400u                 : ARR( 0.434E-13,  -900., 0.0);
+{ 33531} G2H4011 +PERO2              =  0.400G1H401F + 0.300GHN400F + 0.300GHN400u                 : ARR( 0.162E-13, -1400., 0.0);
+{ 33532} G2H4011 +PERO3              =  0.460G1H401F + 0.270GHN400F + 0.270GHN400u                 : ARR( 0.488E-13, -1250., 0.0);
+{ 33533} G2H4011 +PERO5              =  0.460G1H401F + 0.270GHN400F + 0.270GHN400u                 : ARR( 0.183E-11,   450., 0.0);
+{ 33534} G2H4011 +PERO6              =  0.300G1H401F + 0.350GHN400F + 0.350GHN400u                 : ARR( 0.168E-13, -1300., 0.0);
+{ 33535} G2H4011 +PERO9              =  0.650G1H401F + 0.350GHN400u                                : ARR( 0.100E-10,     0., 0.0);
+{ 33536} GHH400T +GHO                =       GHH400p +      GHO                                    : ARR( 0.475E-10,     0., 0.0);
+{ 33537} GHH400T +GHO                =       GHH400Y +      GHO                                    : ARR( 0.475E-10,     0., 0.0);
+{ 33538} GHH400T +GHO                =       GHH4009 +      GHO                                    : ARR( 0.185E-10,     0., 0.0);
+{ 33539} GHH400T+HV               =       G1H401O +      GHO                                    :  0.100E+01*SUN;
+{ 33540} GHH400T+HV               =       G1H401R +      GHO                                    :  0.100E+01*SUN;
+{ 33541} GHH400T+HV               =       G1H400a +      GHO                                    :  0.100E+01*SUN;
+{ 33542} G1H401R                     =       GDO2000 +      GHD2000 +      GHO                     : ARR( 0.200E+15,  4843., 0.0);
+{ 33543} GHH400U +GHO                =       GHH4009 +      GHO2                                   : ARR( 0.807E-11,     0., 0.0);
+{ 33544} GHH400U +GHO                =       GHK4009 +      GHO                                    : ARR( 0.827E-10,     0., 0.0);
+{ 33545} GHH400U +GHO                =       G2H4012                                               : ARR( 0.381E-11,  -190., 0.0);
+{ 33546} GHH400U+HV               =       G1H401C +      GHO                                    :  0.200E+01*SUN;
+{ 33547} G2H4012 +GNO                =       G1H401C +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 33548} G2H4012 +GNO                =       GHN400e                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 33549} G2H4012 +GHO2               =       GHH400U                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 33550} G2H4012 +GNO3               =       G1H401C +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 33551} G2H4012 +MEPERO             =  0.340G1H401C + 0.330GHO4009 + 0.330GHK4009                 : ARR( 0.565E-13,  -845., 0.0);
+{ 33552} G2H4012 +PERO1              =  0.460G1H401C + 0.270GHO4009 + 0.270GHK4009                 : ARR( 0.434E-13,  -900., 0.0);
+{ 33553} G2H4012 +PERO2              =  0.400G1H401C + 0.300GHO4009 + 0.300GHK4009                 : ARR( 0.162E-13, -1400., 0.0);
+{ 33554} G2H4012 +PERO3              =  0.460G1H401C + 0.270GHO4009 + 0.270GHK4009                 : ARR( 0.488E-13, -1250., 0.0);
+{ 33555} G2H4012 +PERO5              =  0.460G1H401C + 0.270GHO4009 + 0.270GHK4009                 : ARR( 0.183E-11,   450., 0.0);
+{ 33556} G2H4012 +PERO6              =  0.300G1H401C + 0.350GHO4009 + 0.350GHK4009                 : ARR( 0.168E-13, -1300., 0.0);
+{ 33557} G2H4012 +PERO9              =  0.650G1H401C + 0.350GHK4009                                : ARR( 0.100E-10,     0., 0.0);
+{ 33558} GHH400W +GHO                =       GHK400B +      GHO                                    : ARR( 0.337E-10,     0., 0.0);
+{ 33559} GHH400W +GHO                =       GHH400P +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 33560} GHH400W +GHO                =       GHD400H +      GHO                                    : ARR( 0.162E-10,     0., 0.0);
+{ 33561} GHH400W +GHO                =       G2H4013                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 33562} GHH400W +GHO                =       G2H400X                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 33563} GHH400W+HV               =       G1H401S +      GHO                                    :  0.100E+01*SUN;
+{ 33564} GHH400W+HV               =       G1H400b +      GHO                                    :  0.100E+01*SUN;
+{ 33565} G2H4013 +GNO                =       G1H401S +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 33566} G2H4013 +GNO                =       GHN4014                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 33567} G2H4013 +GHO2               =       GHH400W                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 33568} G2H4013 +GNO3               =       G1H401S +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 33569} G2H4013 +MEPERO             =  0.340G1H401S + 0.330GHO400A + 0.330GHK400B                 : ARR( 0.565E-13,  -845., 0.0);
+{ 33570} G2H4013 +PERO1              =  0.460G1H401S + 0.270GHO400A + 0.270GHK400B                 : ARR( 0.434E-13,  -900., 0.0);
+{ 33571} G2H4013 +PERO2              =  0.400G1H401S + 0.300GHO400A + 0.300GHK400B                 : ARR( 0.162E-13, -1400., 0.0);
+{ 33572} G2H4013 +PERO3              =  0.460G1H401S + 0.270GHO400A + 0.270GHK400B                 : ARR( 0.488E-13, -1250., 0.0);
+{ 33573} G2H4013 +PERO5              =  0.460G1H401S + 0.270GHO400A + 0.270GHK400B                 : ARR( 0.183E-11,   450., 0.0);
+{ 33574} G2H4013 +PERO6              =  0.300G1H401S + 0.350GHO400A + 0.350GHK400B                 : ARR( 0.168E-13, -1300., 0.0);
+{ 33575} G2H4013 +PERO9              =  0.650G1H401S + 0.350GHK400B                                : ARR( 0.100E-10,     0., 0.0);
+{ 33576} G1H401S                     =       GD02000 +      GHD2000 +      GHO2                    : ARR( 0.200E+15,  3380., 0.0);
+{ 33577} GND5019 +GHO                =       GND5015 +      GHO2                                   : ARR( 0.867E-11,     0., 0.0);
+{ 33578} GND5019 +GHO                =       GND501N +      GHO2                                   : ARR( 0.213E-11,     0., 0.0);
+{ 33579} GND5019 +GHO                =       G3N501a                                               : ARR( 0.430E-11,     0., 0.0);
+{ 33580} GND5019 +GNO3               =       G3N501a +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 33581} GND5019+HV               =       G1D500x +      GNO2                                   :  0.100E+01*SUN;
+{ 33582} GND5019+HV               =       GDO4005 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 33583} GND5019+HV               =       GKO3000 +      GND2000                                :  0.100E+01*SUN;
+{ 33584} G3N501a +GHO2               =  0.800GGN501e + 0.200GAN5025 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 33585} G3N501a +GNO                =       GDO4005 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 33586} G3N501a +GNO2               =       GPN501x                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 33587} G3N501a +GNO3               =       GDO4005 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 33588} G3N501a +MEPERO             =  0.685GDO4005 + 0.315GAN5025 + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33589} G3N501a +PERO1              =  0.800GDO4005 + 0.200GAN5025 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33590} G3N501a +PERO2              =  0.750GDO4005 + 0.250GAN5025 + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33591} G3N501a +PERO3              =  0.800GDO4005 + 0.200GAN5025 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33592} G3N501a +PERO5              =  0.650GDO4005 + 0.350GAN5025 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33593} G3N501a +PERO6              =  0.650GDO4005 + 0.350GAN5025 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33594} G3N501a +PERO9              =       GDO4005 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 33595} GHK500q +GHO                =       GHK500U +      GHO2                                   : ARR( 0.520E-11,     0., 0.0);
+{ 33596} GHK500q +GHO                =       GKK500D +      GHO                                    : ARR( 0.256E-10,     0., 0.0);
+{ 33597} GHK500q +GHO                =       GHD500W +      GHO2                                   : ARR( 0.130E-10,     0., 0.0);
+{ 33598} GHK500q +GHO                =       G2K500q                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 33599} GHK500q+HV               =       G3K3002 +      GDO2000 +      GHO                     :  0.100E+01*SUN;
+{ 33600} GHK500q+HV               =       G1K500y +      GHO                                    :  0.100E+01*SUN;
+{ 33601} G2K500q +GNO                =       G1K500y +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 33602} G2K500q +GNO                =       GNK500v                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 33603} G2K500q +GHO2               =       GHK500q                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 33604} G2K500q +GNO3               =       G1K500y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 33605} G2K500q +MEPERO             =  0.340G1K500y + 0.330GKO500I + 0.330GKK500D                 : ARR( 0.565E-13,  -845., 0.0);
+{ 33606} G2K500q +PERO1              =  0.460G1K500y + 0.270GKO500I + 0.270GKK500D                 : ARR( 0.434E-13,  -900., 0.0);
+{ 33607} G2K500q +PERO2              =  0.400G1K500y + 0.300GKO500I + 0.300GKK500D                 : ARR( 0.162E-13, -1400., 0.0);
+{ 33608} G2K500q +PERO3              =  0.460G1K500y + 0.270GKO500I + 0.270GKK500D                 : ARR( 0.488E-13, -1250., 0.0);
+{ 33609} G2K500q +PERO5              =  0.460G1K500y + 0.270GKO500I + 0.270GKK500D                 : ARR( 0.183E-11,   450., 0.0);
+{ 33610} G2K500q +PERO6              =  0.300G1K500y + 0.350GKO500I + 0.350GKK500D                 : ARR( 0.168E-13, -1300., 0.0);
+{ 33611} G2K500q +PERO9              =  0.650G1K500y + 0.350GKK500D                                : ARR( 0.100E-10,     0., 0.0);
+{ 33612} GND501A +GHO                =       GND501U +      GHO2                                   : ARR( 0.250E-11,     0., 0.0);
+{ 33613} GND501A +GHO                =       GND501W +      GHO2                                   : ARR( 0.128E-11,     0., 0.0);
+{ 33614} GND501A +GHO                =       G3N501b                                               : ARR( 0.212E-10,     0., 0.0);
+{ 33615} GND501A +GNO3               =       G3N501b +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 33616} GND501A+HV               =       G3K2001 +      GDD3001 +      GNO2                    :  0.100E+01*SUN;
+{ 33617} GND501A+HV               =       G1D500g +      GNO2                                   :  0.100E+01*SUN;
+{ 33618} GND501A+HV               =       GND400L +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 33619} G3N501b +GHO2               =  0.800GGN501x + 0.200GAN5029 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 33620} G3N501b +GNO                =       GND400L +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 33621} G3N501b +GNO2               =       GPN502J                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 33622} G3N501b +GNO3               =       GND400L +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 33623} G3N501b +MEPERO             =  0.685GND400L + 0.315GAN5029 + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33624} G3N501b +PERO1              =  0.800GND400L + 0.200GAN5029 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33625} G3N501b +PERO2              =  0.750GND400L + 0.250GAN5029 + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33626} G3N501b +PERO3              =  0.800GND400L + 0.200GAN5029 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33627} G3N501b +PERO5              =  0.650GND400L + 0.350GAN5029 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33628} G3N501b +PERO6              =  0.650GND400L + 0.350GAN5029 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33629} G3N501b +PERO9              =       GND400L +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 33630} GHD500x +GHO                =       GDK500Y +      GHO                                    : ARR( 0.839E-10,     0., 0.0);
+{ 33631} GHD500x +GHO                =       GHD5014 +      GHO2                                   : ARR( 0.210E-10,     0., 0.0);
+{ 33632} GHD500x +GHO                =       G3H501s                                               : ARR( 0.219E-10,     0., 0.0);
+{ 33633} GHD500x +GNO3               =       G3H501s +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 33634} GHD500x+HV               =       G3K2001 +      GDD3001 +      GHO                     :  0.100E+01*SUN;
+{ 33635} GHD500x+HV               =       G1D500g +      GHO                                    :  0.100E+01*SUN;
+{ 33636} GHD500x+HV               =       GHD400G +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 33637} G3H501s +GHO2               =  0.800GGH502X + 0.200GAH502m + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 33638} G3H501s +GNO                =       GHD400G +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 33639} G3H501s +GNO2               =       GPH502v                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 33640} G3H501s +GNO3               =       GHD400G +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 33641} G3H501s +MEPERO             =  0.685GHD400G + 0.315GAH502m + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33642} G3H501s +PERO1              =  0.800GHD400G + 0.200GAH502m + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33643} G3H501s +PERO2              =  0.750GHD400G + 0.250GAH502m + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33644} G3H501s +PERO3              =  0.800GHD400G + 0.200GAH502m + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33645} G3H501s +PERO5              =  0.650GHD400G + 0.350GAH502m + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33646} G3H501s +PERO6              =  0.650GHD400G + 0.350GAH502m + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33647} G3H501s +PERO9              =       GHD400G +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 33648} GDK500X +GHO                =       GDK500Y +      GHO2                                   : ARR( 0.209E-10,     0., 0.0);
+{ 33649} GDK500X +GHO                =       GDK500a +      GHO2                                   : ARR( 0.209E-10,     0., 0.0);
+{ 33650} GDK500X +GHO                =       G3K500g                                               : ARR( 0.218E-10,     0., 0.0);
+{ 33651} GDK500X +GNO3               =       G3K500g +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 33652} GDK500X+HV               =       G3K2001 +      GDD3001 +      GHO2                    :  0.100E+01*SUN;
+{ 33653} GDK500X+HV               =       GDK4006 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 33654} G3K500g +GHO2               =  0.800GGK500W + 0.200GAK500Z + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 33655} G3K500g +GNO                =       GDK4006 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 33656} G3K500g +GNO2               =       GPK500W                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 33657} G3K500g +GNO3               =       GDK4006 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 33658} G3K500g +MEPERO             =  0.685GDK4006 + 0.315GAK500Z + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33659} G3K500g +PERO1              =  0.800GDK4006 + 0.200GAK500Z + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33660} G3K500g +PERO2              =  0.750GDK4006 + 0.250GAK500Z + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33661} G3K500g +PERO3              =  0.800GDK4006 + 0.200GAK500Z + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33662} G3K500g +PERO5              =  0.650GDK4006 + 0.350GAK500Z + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33663} G3K500g +PERO6              =  0.650GDK4006 + 0.350GAK500Z + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33664} G3K500g +PERO9              =       GDK4006 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 33665} GDK500Y +GHO                =       GDK500c +      GHO2                                   : ARR( 0.398E-11,     0., 0.0);
+{ 33666} GDK500Y +GHO                =       G3K500h                                               : ARR( 0.685E-10,     0., 0.0);
+{ 33667} GDK500Y +GNO3               =       G3K500h +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 33668} GDK500Y+HV               =       G3K2001 +      G3D3001                                :  0.100E+01*SUN;
+{ 33669} GDK500Y+HV               =       GDK4009 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 33670} G3K500h +GHO2               =  0.800GGK500a + 0.200GAK500a + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 33671} G3K500h +GNO                =       GDK4009 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 33672} G3K500h +GNO2               =       GPK500c                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 33673} G3K500h +GNO3               =       GDK4009 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 33674} G3K500h +MEPERO             =  0.685GDK4009 + 0.315GAK500a + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33675} G3K500h +PERO1              =  0.800GDK4009 + 0.200GAK500a + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33676} G3K500h +PERO2              =  0.750GDK4009 + 0.250GAK500a + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33677} G3K500h +PERO3              =  0.800GDK4009 + 0.200GAK500a + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33678} G3K500h +PERO5              =  0.650GDK4009 + 0.350GAK500a + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33679} G3K500h +PERO6              =  0.650GDK4009 + 0.350GAK500a + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33680} G3K500h +PERO9              =       GDK4009 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 33681} GGK500L +GHO                =       GGD500C +      GHO2                                   : ARR( 0.256E-11,     0., 0.0);
+{ 33682} GGK500L +GHO                =       GGK500O +      GHO2                                   : ARR( 0.208E-10,     0., 0.0);
+{ 33683} GGK500L +GHO                =       G3K500L                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 33684} GGK500L+HV               =       G3K2001 +      G2G3004                                :  0.100E+01*SUN;
+{ 33685} GGK500L+HV               =       GDK4001 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 33686} GAK500K +GHO                =       GAD500E +      GHO2                                   : ARR( 0.269E-11,     0., 0.0);
+{ 33687} GAK500K +GHO                =       GAK500O +      GHO2                                   : ARR( 0.162E-10,     0., 0.0);
+{ 33688} GAK500K+HV               =       G3K2001 +      G2A3005                                :  0.100E+01*SUN;
+{ 33689} GPK500L                     =       G3K500L +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 33690} GPK500L +GHO                =       GPD500C +      GHO2                                   : ARR( 0.258E-11,     0., 0.0);
+{ 33691} GPK500L +GHO                =       GPK500O +      GHO2                                   : ARR( 0.209E-10,     0., 0.0);
+{ 33692} GPK500L+HV               =       G3K2001 +      G2P3005                                :  0.100E+01*SUN;
+{ 33693} GPK500L+HV               =       G3K500L +      GNO2                                   :  0.100E+01*SUN;
+{ 33694} GGN500i +GHO                =       GGN501W +      GHO2                                   : ARR( 0.422E-11,     0., 0.0);
+{ 33695} GGN500i +GHO                =       GGN501x +      GHO2                                   : ARR( 0.216E-11,     0., 0.0);
+{ 33696} GGN500i +GHO                =       GGN501u +      GHO2                                   : ARR( 0.132E-11,     0., 0.0);
+{ 33697} GGN500i +GHO                =       G3N500Y                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 33698} GGN500i+HV               =       G1G500Y +      GNO2                                   :  0.100E+01*SUN;
+{ 33699} GGN500i+HV               =       GND400A +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 33700} GAN500p +GHO                =       GAN501W +      GHO2                                   : ARR( 0.431E-11,     0., 0.0);
+{ 33701} GAN500p +GHO                =       GAN5029 +      GHO2                                   : ARR( 0.221E-11,     0., 0.0);
+{ 33702} GAN500p +GHO                =       GAN501o +      GHO2                                   : ARR( 0.996E-12,     0., 0.0);
+{ 33703} GAN500p +GHO                =       GND400A +      GHO2    +      GCO2                    : ARR( 0.557E-12,     0., 0.0);
+{ 33704} GAN500p+HV               =       G1A500e +      GNO2                                   :  0.100E+01*SUN;
+{ 33705} GGH500h +GHO                =       GGH501g +      GHO2                                   : ARR( 0.405E-11,     0., 0.0);
+{ 33706} GGH500h +GHO                =       GGH502X +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 33707} GGH500h +GHO                =       GGK500M +      GHO                                    : ARR( 0.415E-10,     0., 0.0);
+{ 33708} GGH500h +GHO                =       GGH501f +      GHO2                                   : ARR( 0.632E-11,     0., 0.0);
+{ 33709} GGH500h +GHO                =       G2G500X                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 33710} GGH500h +GHO                =       G3H500Q                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 33711} GGH500h+HV               =       G1G500Y +      GHO                                    :  0.100E+01*SUN;
+{ 33712} GGH500h+HV               =       GHD400A +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 33713} GAH500m +GHO                =       GAH501n +      GHO2                                   : ARR( 0.408E-11,     0., 0.0);
+{ 33714} GAH500m +GHO                =       GAH502m +      GHO2                                   : ARR( 0.105E-10,     0., 0.0);
+{ 33715} GAH500m +GHO                =       GAK500L +      GHO                                    : ARR( 0.418E-10,     0., 0.0);
+{ 33716} GAH500m +GHO                =       GAH502n +      GHO2                                   : ARR( 0.472E-11,     0., 0.0);
+{ 33717} GAH500m +GHO                =       G2A500d                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 33718} GAH500m+HV               =       G1A500e +      GHO                                    :  0.100E+01*SUN;
+{ 33719} GPH500o                     =       G3H500Q +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 33720} GPH500o +GHO                =       GPH501m +      GHO2                                   : ARR( 0.405E-11,     0., 0.0);
+{ 33721} GPH500o +GHO                =       GPH502v +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 33722} GPH500o +GHO                =       GPK500M +      GHO                                    : ARR( 0.415E-10,     0., 0.0);
+{ 33723} GPH500o +GHO                =       GPH501l +      GHO2                                   : ARR( 0.632E-11,     0., 0.0);
+{ 33724} GPH500o +GHO                =       G2P500g                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 33725} GPH500o+HV               =       G1P500h +      GHO                                    :  0.100E+01*SUN;
+{ 33726} GPH500o+HV               =       G3H500Q +      GNO2                                   :  0.100E+01*SUN;
+{ 33727} GGO500C +GHO                =       GGD500A +      GHO2                                   : ARR( 0.409E-11,     0., 0.0);
+{ 33728} GGO500C +GHO                =       GGK500W +      GHO2                                   : ARR( 0.105E-10,     0., 0.0);
+{ 33729} GGO500C +GHO                =       GGK500M +      GHO2                                   : ARR( 0.105E-10,     0., 0.0);
+{ 33730} GGO500C +GHO                =       GGK500P +      GHO2                                   : ARR( 0.638E-11,     0., 0.0);
+{ 33731} GGO500C +GHO                =       G3K500M                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 33732} GGO500C+HV               =       GDO4006 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 33733} GAO500B +GHO                =       GAD500C +      GHO2                                   : ARR( 0.417E-11,     0., 0.0);
+{ 33734} GAO500B +GHO                =       GAK500Z +      GHO2                                   : ARR( 0.107E-10,     0., 0.0);
+{ 33735} GAO500B +GHO                =       GAK500L +      GHO2                                   : ARR( 0.107E-10,     0., 0.0);
+{ 33736} GAO500B +GHO                =       GAK500b +      GHO2                                   : ARR( 0.482E-11,     0., 0.0);
+{ 33737} GPO500C                     =       G3K500M +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 33738} GPO500C +GHO                =       GPD500A +      GHO2                                   : ARR( 0.409E-11,     0., 0.0);
+{ 33739} GPO500C +GHO                =       GPK500W +      GHO2                                   : ARR( 0.105E-10,     0., 0.0);
+{ 33740} GPO500C +GHO                =       GPK500M +      GHO2                                   : ARR( 0.105E-10,     0., 0.0);
+{ 33741} GPO500C +GHO                =       GPK500P +      GHO2                                   : ARR( 0.640E-11,     0., 0.0);
+{ 33742} GPO500C+HV               =       G3K500M +      GNO2                                   :  0.100E+01*SUN;
+{ 33743} GGK500M +GHO                =       GGD500D +      GHO2                                   : ARR( 0.130E-10,     0., 0.0);
+{ 33744} GGK500M +GHO                =       GGK500a +      GHO2                                   : ARR( 0.638E-11,     0., 0.0);
+{ 33745} GGK500M +GHO                =       GGK500b +      GHO2                                   : ARR( 0.389E-11,     0., 0.0);
+{ 33746} GGK500M +GHO                =       G3K500N                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 33747} GGK500M+HV               =       G3K3003 +      GGD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 33748} GGK500M+HV               =       GDK4007 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 33749} GAK500L +GHO                =       GAD500F +      GHO2                                   : ARR( 0.133E-10,     0., 0.0);
+{ 33750} GAK500L +GHO                =       GAK500a +      GHO2                                   : ARR( 0.655E-11,     0., 0.0);
+{ 33751} GAK500L +GHO                =       GAK500W +      GHO2                                   : ARR( 0.296E-11,     0., 0.0);
+{ 33752} GAK500L+HV               =       G3K3003 +      GAD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 33753} GPK500M                     =       G3K500N +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 33754} GPK500M +GHO                =       GPD500D +      GHO2                                   : ARR( 0.130E-10,     0., 0.0);
+{ 33755} GPK500M +GHO                =       GPK500c +      GHO2                                   : ARR( 0.640E-11,     0., 0.0);
+{ 33756} GPK500M +GHO                =       GPK500a +      GHO2                                   : ARR( 0.390E-11,     0., 0.0);
+{ 33757} GPK500M+HV               =       G3K3003 +      GPD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 33758} GPK500M+HV               =       G3K500N +      GNO2                                   :  0.100E+01*SUN;
+{ 33759} GPH400K                     =       G3H400C +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 33760} GPH400K +GHO                =       GPH400l +      GHO2                                   : ARR( 0.405E-11,     0., 0.0);
+{ 33761} GPH400K +GHO                =       GPH400c +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 33762} GPH400K +GHO                =       GPK4007 +      GHO                                    : ARR( 0.253E-10,     0., 0.0);
+{ 33763} GPH400K +GHO                =       G2P400J                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 33764} GPH400K+HV               =       G1P400K +      GHO                                    :  0.100E+01*SUN;
+{ 33765} GPH400K+HV               =       G3H400C +      GNO2                                   :  0.100E+01*SUN;
+{ 33766} GPO4006                     =       G3K400B +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 33767} GPO4006 +GHO                =       GPD4006 +      GHO2                                   : ARR( 0.410E-11,     0., 0.0);
+{ 33768} GPO4006 +GHO                =       GPK4008 +      GHO2                                   : ARR( 0.105E-10,     0., 0.0);
+{ 33769} GPO4006 +GHO                =       GPK4007 +      GHO2                                   : ARR( 0.641E-11,     0., 0.0);
+{ 33770} GPO4006+HV               =       G3K400B +      GNO2                                   :  0.100E+01*SUN;
+{ 33771} GHH400X +GHO                =       GHK400A +      GHO                                    : ARR( 0.275E-10,     0., 0.0);
+{ 33772} GHH400X +GHO                =       GHD4007 +      GHO                                    : ARR( 0.559E-10,     0., 0.0);
+{ 33773} GHH400X+HV               =       G3K2000 +      GHD2000 +      GHO                     :  0.100E+01*SUN;
+{ 33774} GHH400X+HV               =       G1H401M +      GHO                                    :  0.100E+01*SUN;
+{ 33775} GHH400X+HV               =       G1H400d +      GHO                                    :  0.100E+01*SUN;
+{ 33776} GHD500y +GHO                =       GHD500w +      GHO2                                   : ARR( 0.206E-10,     0., 0.0);
+{ 33777} GHD500y +GHO                =       GDK500Z +      GHO                                    : ARR( 0.822E-10,     0., 0.0);
+{ 33778} GHD500y +GHO                =       G3H501t                                               : ARR( 0.214E-10,     0., 0.0);
+{ 33779} GHD500y +GNO3               =       G3H501t +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 33780} GHD500y+HV               =       G3K2000 +      GHD3004 +      GHO2                    :  0.100E+01*SUN;
+{ 33781} GHD500y+HV               =       G1D500h +      GHO                                    :  0.100E+01*SUN;
+{ 33782} GHD500y+HV               =       GDK4003 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 33783} G3H501t +GHO2               =  0.800GGH5021 + 0.200GAH502K + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 33784} G3H501t +GNO                =       GDK4003 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 33785} G3H501t +GNO2               =       GPH502J                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 33786} G3H501t +GNO3               =       GDK4003 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 33787} G3H501t +MEPERO             =  0.685GDK4003 + 0.315GAH502K + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33788} G3H501t +PERO1              =  0.800GDK4003 + 0.200GAH502K + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33789} G3H501t +PERO2              =  0.750GDK4003 + 0.250GAH502K + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33790} G3H501t +PERO3              =  0.800GDK4003 + 0.200GAH502K + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33791} G3H501t +PERO5              =  0.650GDK4003 + 0.350GAH502K + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33792} G3H501t +PERO6              =  0.650GDK4003 + 0.350GAH502K + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33793} G3H501t +PERO9              =       GDK4003 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 33794} GDK500Z +GHO                =       GDK500W +      GHO2                                   : ARR( 0.389E-11,     0., 0.0);
+{ 33795} GDK500Z +GHO                =       G3K4009 +      GCO                                    : ARR( 0.129E-10,     0., 0.0);
+{ 33796} GDK500Z +GNO3               =       G3K4009 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 33797} GDK500Z+HV               =       G3K2000 +      GDD3002 +      GHO2                    :  0.100E+01*SUN;
+{ 33798} GDK500Z+HV               =       G3K4009 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 33799} GDK500Z+HV               =       GDK4003 +      GCO                                    :  0.100E+01*SUN;
+{ 33800} GDK500Z+HV               =       GKO3000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 33801} GHK400B +GHO                =       GHK400A +      GHO2                                   : ARR( 0.631E-11,     0., 0.0);
+{ 33802} GHK400B +GHO                =       GDK4003 +      GHO                                    : ARR( 0.512E-10,     0., 0.0);
+{ 33803} GHK400B +GHO                =       G2K400A                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 33804} GHK400B+HV               =       G3K2000 +      GHD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 33805} GHK400B+HV               =       G1K400A +      GHO                                    :  0.100E+01*SUN;
+{ 33806} GHD500z +GHO                =       GDK500W +      GHO                                    : ARR( 0.154E-10,     0., 0.0);
+{ 33807} GHD500z +GHO                =       G3H4009 +      GCO                                    : ARR( 0.127E-10,     0., 0.0);
+{ 33808} GHD500z +GHO                =       G2D500k                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 33809} GHD500z +GNO3               =       G3H4009 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 33810} GHD500z+HV               =       G3K2000 +      GDD3002 +      GHO                     :  0.100E+01*SUN;
+{ 33811} GHD500z+HV               =       G1D501F +      GHO                                    :  0.100E+01*SUN;
+{ 33812} GHD500z+HV               =       G3H4009 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 33813} GHD500z+HV               =       GHD4007 +      GCO                                    :  0.100E+01*SUN;
+{ 33814} GHD500z+HV               =       GHK3000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 33815} G2D500k +GNO                =       G1D501F +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 33816} G2D500k +GNO                =       GND5018                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 33817} G2D500k +GHO2               =       GHD500z                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 33818} G2D500k +GNO3               =       G1D501F +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 33819} G2D500k +MEPERO             =  0.340G1D501F + 0.330GDK500Z + 0.330GDK500W                 : ARR( 0.565E-13,  -845., 0.0);
+{ 33820} G2D500k +PERO1              =  0.460G1D501F + 0.270GDK500Z + 0.270GDK500W                 : ARR( 0.434E-13,  -900., 0.0);
+{ 33821} G2D500k +PERO2              =  0.400G1D501F + 0.300GDK500Z + 0.300GDK500W                 : ARR( 0.162E-13, -1400., 0.0);
+{ 33822} G2D500k +PERO3              =  0.460G1D501F + 0.270GDK500Z + 0.270GDK500W                 : ARR( 0.488E-13, -1250., 0.0);
+{ 33823} G2D500k +PERO5              =  0.460G1D501F + 0.270GDK500Z + 0.270GDK500W                 : ARR( 0.183E-11,   450., 0.0);
+{ 33824} G2D500k +PERO6              =  0.300G1D501F + 0.350GDK500Z + 0.350GDK500W                 : ARR( 0.168E-13, -1300., 0.0);
+{ 33825} G2D500k +PERO9              =  0.650G1D501F + 0.350GDK500W                                : ARR( 0.100E-10,     0., 0.0);
+{ 33826} GGN500j +GHO                =       GGN500w +      GHO2                                   : ARR( 0.407E-11,     0., 0.0);
+{ 33827} GGN500j +GHO                =       G3N500Z                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 33828} GGN500j+HV               =       G1G501h +      GNO2                                   :  0.100E+01*SUN;
+{ 33829} GGN500j+HV               =       G3N3000 +      GGD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 33830} GGN500j+HV               =       GND400B +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 33831} GAN500q +GHO                =       GAN5012 +      GHO2                                   : ARR( 0.322E-11,     0., 0.0);
+{ 33832} GAN500q +GHO                =       GND400B +      GHO2    +      GCO2                    : ARR( 0.591E-12,     0., 0.0);
+{ 33833} GAN500q+HV               =       G3A3002 +      G2N2000                                :  0.100E+01*SUN;
+{ 33834} GAN500q+HV               =       G1A5024 +      GNO2                                   :  0.100E+01*SUN;
+{ 33835} GPN500v                     =       G3N500Z +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 33836} GPN500v +GHO                =       GPN5018 +      GHO2                                   : ARR( 0.429E-11,     0., 0.0);
+{ 33837} GPN500v+HV               =       G1P502I +      GNO2                                   :  0.100E+01*SUN;
+{ 33838} GPN500v+HV               =       G3N3000 +      GPD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 33839} GPN500v+HV               =       G3N500Z +      GNO2                                   :  0.100E+01*SUN;
+{ 33840} GN02000 +GHO                =       G2N2000                                               : ARR( 0.317E-12,   395., 0.0);
+{ 33841} GN02000 +GHO                =       GD02000 +      GNO2                                   : ARR( 0.353E-12,   395., 0.0);
+{ 33842} GN02000+HV               =       G102000 +      GNO2                                   :  0.100E+01*SUN;
+{ 33843} GHH3008 +GHO                =       GHH3005 +      GHO                                    : ARR( 0.336E-10,     0., 0.0);
+{ 33844} GHH3008 +GHO                =       GHH3002 +      GHO                                    : ARR( 0.431E-10,     0., 0.0);
+{ 33845} GHH3008 +GHO                =       G2H300B                                               : ARR( 0.397E-11,  -190., 0.0);
+{ 33846} GHH3008+HV               =       G1H300A +      GHO                                    :  0.200E+01*SUN;
+{ 33847} GHH3008+HV               =       G1H300D +      GHO                                    :  0.100E+01*SUN;
+{ 33848} GHH400Y +GHO                =       GHH400b +      GHO2                                   : ARR( 0.128E-10,     0., 0.0);
+{ 33849} GHH400Y +GHO                =       GHK400C +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 33850} GHH400Y +GHO                =       GHD400M +      GHO                                    : ARR( 0.983E-11,     0., 0.0);
+{ 33851} GHH400Y +GHO                =       G2H4014                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 33852} GHH400Y +GHO                =       G2H4015                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 33853} GHH400Y+HV               =       G1H401P +      GHO                                    :  0.100E+01*SUN;
+{ 33854} GHH400Y+HV               =       G3H3004 +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 33855} GHH400Y+HV               =       G1H401T +      GHO                                    :  0.100E+01*SUN;
+{ 33856} G2H4014 +GNO                =       G1H401P +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 33857} G2H4014 +GNO                =       GHN400t                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 33858} G2H4014 +GHO2               =       GHH400Y                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 33859} G2H4014 +GNO3               =       G1H401P +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 33860} G2H4014 +MEPERO             =  0.340G1H401P + 0.330GHK4006 + 0.330GHK400C                 : ARR( 0.565E-13,  -845., 0.0);
+{ 33861} G2H4014 +PERO1              =  0.460G1H401P + 0.270GHK4006 + 0.270GHK400C                 : ARR( 0.434E-13,  -900., 0.0);
+{ 33862} G2H4014 +PERO2              =  0.400G1H401P + 0.300GHK4006 + 0.300GHK400C                 : ARR( 0.162E-13, -1400., 0.0);
+{ 33863} G2H4014 +PERO3              =  0.460G1H401P + 0.270GHK4006 + 0.270GHK400C                 : ARR( 0.488E-13, -1250., 0.0);
+{ 33864} G2H4014 +PERO5              =  0.460G1H401P + 0.270GHK4006 + 0.270GHK400C                 : ARR( 0.183E-11,   450., 0.0);
+{ 33865} G2H4014 +PERO6              =  0.300G1H401P + 0.350GHK4006 + 0.350GHK400C                 : ARR( 0.168E-13, -1300., 0.0);
+{ 33866} G2H4014 +PERO9              =  0.650G1H401P + 0.350GHK400C                                : ARR( 0.100E-10,     0., 0.0);
+{ 33867} G2H4015 +GNO                =       G1H401T +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 33868} G2H4015 +GNO                =       GHN400u                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 33869} G2H4015 +GHO2               =       GHH400Y                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 33870} G2H4015 +GNO3               =       G1H401T +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 33871} G2H4015 +MEPERO             =  0.480G1H401T + 0.260GHK4009 + 0.260GHD400M                 : ARR( 0.164E-12,  -795., 0.0);
+{ 33872} G2H4015 +PERO1              =  0.600G1H401T + 0.200GHK4009 + 0.200GHD400M                 : ARR( 0.126E-12,  -850., 0.0);
+{ 33873} G2H4015 +PERO2              =  0.560G1H401T + 0.220GHK4009 + 0.220GHD400M                 : ARR( 0.471E-13, -1350., 0.0);
+{ 33874} G2H4015 +PERO3              =  0.600G1H401T + 0.200GHK4009 + 0.200GHD400M                 : ARR( 0.142E-12, -1200., 0.0);
+{ 33875} G2H4015 +PERO5              =  0.600G1H401T + 0.200GHK4009 + 0.200GHD400M                 : ARR( 0.533E-11,   500., 0.0);
+{ 33876} G2H4015 +PERO6              =  0.460G1H401T + 0.270GHK4009 + 0.270GHD400M                 : ARR( 0.488E-13, -1250., 0.0);
+{ 33877} G2H4015 +PERO9              =  0.800G1H401T + 0.200GHD400M                                : ARR( 0.100E-10,     0., 0.0);
+{ 33878} G1H401T                     =       G3H3004 +      GCH2O                                  : ARR( 0.200E+15,  3603., 0.0);
+{ 33879} GGH400G +GHO                =       GGH400i +      GHO2                                   : ARR( 0.404E-11,     0., 0.0);
+{ 33880} GGH400G +GHO                =       GGK4008 +      GHO                                    : ARR( 0.414E-10,     0., 0.0);
+{ 33881} GGH400G +GHO                =       GGH400j +      GHO2                                   : ARR( 0.631E-11,     0., 0.0);
+{ 33882} GGH400G +GHO                =       G2G400C                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 33883} GGH400G +GHO                =       G3H400B                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 33884} GGH400G+HV               =       G1G400E +      GHO                                    :  0.100E+01*SUN;
+{ 33885} GGH400G+HV               =       GHD3003 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 33886} GAH400J +GHO                =       GAH400o +      GHO2                                   : ARR( 0.408E-11,     0., 0.0);
+{ 33887} GAH400J +GHO                =       GAK4008 +      GHO                                    : ARR( 0.418E-10,     0., 0.0);
+{ 33888} GAH400J +GHO                =       GAH400c +      GHO2                                   : ARR( 0.472E-11,     0., 0.0);
+{ 33889} GAH400J +GHO                =       G2A400I                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 33890} GAH400J+HV               =       G1A400K +      GHO                                    :  0.100E+01*SUN;
+{ 33891} GPH400L                     =       G3H400B +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 33892} GPH400L +GHO                =       GPH400p +      GHO2                                   : ARR( 0.404E-11,     0., 0.0);
+{ 33893} GPH400L +GHO                =       GPK4008 +      GHO                                    : ARR( 0.414E-10,     0., 0.0);
+{ 33894} GPH400L +GHO                =       GPH400d +      GHO2                                   : ARR( 0.631E-11,     0., 0.0);
+{ 33895} GPH400L +GHO                =       G2P400K                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 33896} GPH400L+HV               =       G1P400L +      GHO                                    :  0.100E+01*SUN;
+{ 33897} GPH400L+HV               =       G3H400B +      GNO2                                   :  0.100E+01*SUN;
+{ 33898} GGH400H +GHO                =       GGH400g +      GHO2                                   : ARR( 0.405E-11,     0., 0.0);
+{ 33899} GGH400H +GHO                =       GGH400Z +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 33900} GGH400H +GHO                =       GGK4007 +      GHO                                    : ARR( 0.253E-10,     0., 0.0);
+{ 33901} GGH400H +GHO                =       G2G400S                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 33902} GGH400H +GHO                =       G3H400C                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 33903} GGH400H+HV               =       G1G400e +      GHO                                    :  0.100E+01*SUN;
+{ 33904} GGH400H+HV               =       GDO3002 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 33905} G2G400S +GNO                =       G1G400e +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 33906} G2G400S +GNO                =       GGN400L                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 33907} G2G400S +GHO2               =       GGH400H                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 33908} G2G400S +GNO3               =       G1G400e +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 33909} G2G400S +MEPERO             =  0.340G1G400e + 0.330GGO4006 + 0.330GGK4007                 : ARR( 0.565E-13,  -845., 0.0);
+{ 33910} G2G400S +PERO1              =  0.460G1G400e + 0.270GGO4006 + 0.270GGK4007                 : ARR( 0.434E-13,  -900., 0.0);
+{ 33911} G2G400S +PERO2              =  0.400G1G400e + 0.300GGO4006 + 0.300GGK4007                 : ARR( 0.162E-13, -1400., 0.0);
+{ 33912} G2G400S +PERO3              =  0.460G1G400e + 0.270GGO4006 + 0.270GGK4007                 : ARR( 0.488E-13, -1250., 0.0);
+{ 33913} G2G400S +PERO5              =  0.460G1G400e + 0.270GGO4006 + 0.270GGK4007                 : ARR( 0.183E-11,   450., 0.0);
+{ 33914} G2G400S +PERO6              =  0.300G1G400e + 0.350GGO4006 + 0.350GGK4007                 : ARR( 0.168E-13, -1300., 0.0);
+{ 33915} G2G400S +PERO9              =  0.650G1G400e + 0.350GGK4007                                : ARR( 0.100E-10,     0., 0.0);
+{ 33916} GAH400K +GHO                =       GAH400k +      GHO2                                   : ARR( 0.411E-11,     0., 0.0);
+{ 33917} GAH400K +GHO                =       GAH400b +      GHO2                                   : ARR( 0.105E-10,     0., 0.0);
+{ 33918} GAH400K +GHO                =       GAK4007 +      GHO                                    : ARR( 0.190E-10,     0., 0.0);
+{ 33919} GAH400K +GHO                =       G2A400g                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 33920} GAH400K+HV               =       G1A400q +      GHO                                    :  0.100E+01*SUN;
+{ 33921} G2A400g +GNO                =       G1A400q +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 33922} G2A400g +GNO                =       GAN400O                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 33923} G2A400g +GHO2               =       GAH400K                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 33924} G2A400g +GNO3               =       G1A400q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 33925} G2A400g +MEPERO             =  0.340G1A400q + 0.330GAO4006 + 0.330GAK4007                 : ARR( 0.565E-13,  -845., 0.0);
+{ 33926} G2A400g +PERO1              =  0.460G1A400q + 0.270GAO4006 + 0.270GAK4007                 : ARR( 0.434E-13,  -900., 0.0);
+{ 33927} G2A400g +PERO2              =  0.400G1A400q + 0.300GAO4006 + 0.300GAK4007                 : ARR( 0.162E-13, -1400., 0.0);
+{ 33928} G2A400g +PERO3              =  0.460G1A400q + 0.270GAO4006 + 0.270GAK4007                 : ARR( 0.488E-13, -1250., 0.0);
+{ 33929} G2A400g +PERO5              =  0.460G1A400q + 0.270GAO4006 + 0.270GAK4007                 : ARR( 0.183E-11,   450., 0.0);
+{ 33930} G2A400g +PERO6              =  0.300G1A400q + 0.350GAO4006 + 0.350GAK4007                 : ARR( 0.168E-13, -1300., 0.0);
+{ 33931} G2A400g +PERO9              =  0.650G1A400q + 0.350GAK4007                                : ARR( 0.100E-10,     0., 0.0);
+{ 33932} GGD5006 +GHO                =       GGD500G +      GHO2                                   : ARR( 0.406E-11,     0., 0.0);
+{ 33933} GGD5006 +GHO                =       G3G5006                                               : ARR( 0.699E-10,     0., 0.0);
+{ 33934} GGD5006 +GNO3               =       G3G5006 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 33935} GGD5006+HV               =  0.500G2D400D + 0.500GHO                                    :  0.100E+01*SUN;
+{ 33936} GGD5006+HV               =       G3G3000 +      GDD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 33937} GGD5006+HV               =       GGD4004 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 33938} G3G5006 +GHO2               =  0.800GGG5004 + 0.200GAG5009 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 33939} G3G5006 +GNO                =       GGD4004 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 33940} G3G5006 +GNO2               =       GPG5009                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 33941} G3G5006 +GNO3               =       GGD4004 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 33942} G3G5006 +MEPERO             =  0.685GGD4004 + 0.315GAG5009 + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33943} G3G5006 +PERO1              =  0.800GGD4004 + 0.200GAG5009 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33944} G3G5006 +PERO2              =  0.750GGD4004 + 0.250GAG5009 + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33945} G3G5006 +PERO3              =  0.800GGD4004 + 0.200GAG5009 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33946} G3G5006 +PERO5              =  0.650GGD4004 + 0.350GAG5009 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33947} G3G5006 +PERO6              =  0.650GGD4004 + 0.350GAG5009 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33948} G3G5006 +PERO9              =       GGD4004 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 33949} GGN500k +GHO                =       G2G501g                                               : ARR( 0.542E-12,     0., 0.0);
+{ 33950} GGN500k +GHO                =       GGN501k +      GHO2                                   : ARR( 0.521E-11,     0., 0.0);
+{ 33951} GGN500k +GHO                =       G3N501c                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 33952} GGN500k+HV               =       G3K3002 +      GGD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 33953} GGN500k+HV               =       G1G500a +      GNO2                                   :  0.100E+01*SUN;
+{ 33954} GGN500k+HV               =       GDK4004 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 33955} G2G501g +GNO                =       G1G5024 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 33956} G2G501g +GNO                =       GGN501S                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 33957} G2G501g +GHO2               =       GGH502Y                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 33958} G2G501g +GNO3               =       G1G5024 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 33959} G2G501g +MEPERO             =  0.480G1G5024 + 0.260GGN501y + 0.260GGN501z                 : ARR( 0.164E-12,  -795., 0.0);
+{ 33960} G2G501g +PERO1              =  0.600G1G5024 + 0.200GGN501y + 0.200GGN501z                 : ARR( 0.126E-12,  -850., 0.0);
+{ 33961} G2G501g +PERO2              =  0.560G1G5024 + 0.220GGN501y + 0.220GGN501z                 : ARR( 0.471E-13, -1350., 0.0);
+{ 33962} G2G501g +PERO3              =  0.600G1G5024 + 0.200GGN501y + 0.200GGN501z                 : ARR( 0.142E-12, -1200., 0.0);
+{ 33963} G2G501g +PERO5              =  0.600G1G5024 + 0.200GGN501y + 0.200GGN501z                 : ARR( 0.533E-11,   500., 0.0);
+{ 33964} G2G501g +PERO6              =  0.460G1G5024 + 0.270GGN501y + 0.270GGN501z                 : ARR( 0.488E-13, -1250., 0.0);
+{ 33965} G2G501g +PERO9              =  0.800G1G5024 + 0.200GGN501z                                : ARR( 0.100E-10,     0., 0.0);
+{ 33966} G3N501c +GHO2               =  0.800GGN500k + 0.200GAN500r + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 33967} G3N501c +GNO                =       GDK4004 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 33968} G3N501c +GNO2               =       GPN500w                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 33969} G3N501c +GNO3               =       GDK4004 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 33970} G3N501c +MEPERO             =  0.685GDK4004 + 0.315GAN500r + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33971} G3N501c +PERO1              =  0.800GDK4004 + 0.200GAN500r + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33972} G3N501c +PERO2              =  0.750GDK4004 + 0.250GAN500r + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33973} G3N501c +PERO3              =  0.800GDK4004 + 0.200GAN500r + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33974} G3N501c +PERO5              =  0.650GDK4004 + 0.350GAN500r + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33975} G3N501c +PERO6              =  0.650GDK4004 + 0.350GAN500r + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 33976} G3N501c +PERO9              =       GDK4004 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 33977} G1G5024                     =       GGN400Z +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4576., 0.0);
+{ 33978} GGH500i +GHO                =       GGH5029 +      GHO2                                   : ARR( 0.523E-11,     0., 0.0);
+{ 33979} GGH500i +GHO                =       GGK500N +      GHO                                    : ARR( 0.157E-10,     0., 0.0);
+{ 33980} GGH500i +GHO                =       G2G500Z                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 33981} GGH500i +GHO                =       G3H500w                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 33982} GGH500i+HV               =       G3K3002 +      GGD2000 +      GHO                     :  0.100E+01*SUN;
+{ 33983} GGH500i+HV               =       G1G500a +      GHO                                    :  0.100E+01*SUN;
+{ 33984} GGH500i+HV               =       GDK4004 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 33985} GGK500N +GHO                =       G2G501h                                               : ARR( 0.539E-12,     0., 0.0);
+{ 33986} GGK500N +GHO                =       GGK500Z +      GHO2                                   : ARR( 0.519E-11,     0., 0.0);
+{ 33987} GGK500N +GHO                =       G3K500i                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 33988} GGK500N+HV               =       G3K3002 +      GCO     +      GHO2    +      GCO      :  0.100E+01*SUN;
+{ 33989} GGK500N+HV               =       GAK4001 +      GCO2                                   :  0.100E+01*SUN;
+{ 33990} G2G501h +GNO                =       G1G5025 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 33991} G2G501h +GNO                =       GGN501T                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 33992} G2G501h +GHO2               =       GGH502Z                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 33993} G2G501h +GNO3               =       G1G5025 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 33994} G2G501h +MEPERO             =  0.480G1G5025 + 0.260GGK500b + 0.260GGD500H                 : ARR( 0.164E-12,  -795., 0.0);
+{ 33995} G2G501h +PERO1              =  0.600G1G5025 + 0.200GGK500b + 0.200GGD500H                 : ARR( 0.126E-12,  -850., 0.0);
+{ 33996} G2G501h +PERO2              =  0.560G1G5025 + 0.220GGK500b + 0.220GGD500H                 : ARR( 0.471E-13, -1350., 0.0);
+{ 33997} G2G501h +PERO3              =  0.600G1G5025 + 0.200GGK500b + 0.200GGD500H                 : ARR( 0.142E-12, -1200., 0.0);
+{ 33998} G2G501h +PERO5              =  0.600G1G5025 + 0.200GGK500b + 0.200GGD500H                 : ARR( 0.533E-11,   500., 0.0);
+{ 33999} G2G501h +PERO6              =  0.460G1G5025 + 0.270GGK500b + 0.270GGD500H                 : ARR( 0.488E-13, -1250., 0.0);
+{ 34000} G2G501h +PERO9              =  0.800G1G5025 + 0.200GGD500H                                : ARR( 0.100E-10,     0., 0.0);
+{ 34001} G3K500i +GHO2               =  0.800GGK500N + 0.200GAK500M + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 34002} G3K500i +GNO                =       G3K3002 +      GNO2    +      GCO2    +      GCO      : ARR( 0.810E-11,  -270., 0.0);
+{ 34003} G3K500i +GNO2               =       GPK500N                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 34004} G3K500i +GNO3               =       G3K3002 +      GNO2    +      GCO2    +      GCO      : ARR( 0.500E-11,     0., 0.0);
+{ 34005} G3K500i +MEPERO             =  0.685G3K3002 + 0.315GAK500M + 0.685GCO2    + 0.685GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 34006} G3K500i +PERO1              =  0.800G3K3002 + 0.200GAK500M + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 34007} G3K500i +PERO2              =  0.750G3K3002 + 0.250GAK500M + 0.750GCO2    + 0.750GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 34008} G3K500i +PERO3              =  0.800G3K3002 + 0.200GAK500M + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 34009} G3K500i +PERO5              =  0.650G3K3002 + 0.350GAK500M + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 34010} G3K500i +PERO6              =  0.650G3K3002 + 0.350GAK500M + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 34011} G3K500i +PERO9              =       G3K3002 +      GCO2    +      GCO                     : ARR( 0.500E-11,  -500., 0.0);
+{ 34012} G1G5025                     =       GGD4008 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4155., 0.0);
+{ 34013} GGD4004 +GHO                =       G3G3000 +      GCO                                    : ARR( 0.131E-10,     0., 0.0);
+{ 34014} GGD4004 +GHO                =       G3D4003                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 34015} GGD4004 +GNO3               =       G3G3000 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 34016} GGD4004+HV               =       G2D3002 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 34017} GGD4004+HV               =       G3G3000 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 34018} GGD4004+HV               =       GGD3000 +      GCO                                    :  0.100E+01*SUN;
+{ 34019} GGD4004+HV               =       GG02000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 34020} GAD5006 +GHO                =       GAD500G +      GHO2                                   : ARR( 0.389E-11,     0., 0.0);
+{ 34021} GAD5006 +GHO                =       G3A500A                                               : ARR( 0.669E-10,     0., 0.0);
+{ 34022} GAD5006 +GNO3               =       G3A500A +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 34023} GAD5006+HV               =       G3A3000 +      GDD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 34024} GAD5006+HV               =       GAD4003 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 34025} G3A500A +GHO2               =  0.800GAG5008 + 0.200GAA5006 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 34026} G3A500A +GNO                =       GAD4003 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 34027} G3A500A +GNO2               =       GPA500A                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 34028} G3A500A +GNO3               =       GAD4003 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 34029} G3A500A +MEPERO             =  0.685GAD4003 + 0.315GAA5006 + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34030} G3A500A +PERO1              =  0.800GAD4003 + 0.200GAA5006 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34031} G3A500A +PERO2              =  0.750GAD4003 + 0.250GAA5006 + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34032} G3A500A +PERO3              =  0.800GAD4003 + 0.200GAA5006 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34033} G3A500A +PERO5              =  0.650GAD4003 + 0.350GAA5006 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34034} G3A500A +PERO6              =  0.650GAD4003 + 0.350GAA5006 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34035} G3A500A +PERO9              =       GAD4003 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 34036} GAN500r +GHO                =       G2A502E                                               : ARR( 0.546E-12,     0., 0.0);
+{ 34037} GAN500r +GHO                =       GAN501x +      GHO2                                   : ARR( 0.525E-11,     0., 0.0);
+{ 34038} GAN500r +GHO                =       GDK4004 +      GNO2    +      GCO2                    : ARR( 0.535E-12,     0., 0.0);
+{ 34039} GAN500r+HV               =       G3K3002 +      GAD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 34040} GAN500r+HV               =       G1A500g +      GNO2                                   :  0.100E+01*SUN;
+{ 34041} G2A502E +GNO                =       G1A502e +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 34042} G2A502E +GNO                =       GAN501L                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 34043} G2A502E +GHO2               =       GAH502o                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 34044} G2A502E +GNO3               =       G1A502e +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 34045} G2A502E +MEPERO             =  0.480G1A502e + 0.260GAN5021 + 0.260GAN502A                 : ARR( 0.164E-12,  -795., 0.0);
+{ 34046} G2A502E +PERO1              =  0.600G1A502e + 0.200GAN5021 + 0.200GAN502A                 : ARR( 0.126E-12,  -850., 0.0);
+{ 34047} G2A502E +PERO2              =  0.560G1A502e + 0.220GAN5021 + 0.220GAN502A                 : ARR( 0.471E-13, -1350., 0.0);
+{ 34048} G2A502E +PERO3              =  0.600G1A502e + 0.200GAN5021 + 0.200GAN502A                 : ARR( 0.142E-12, -1200., 0.0);
+{ 34049} G2A502E +PERO5              =  0.600G1A502e + 0.200GAN5021 + 0.200GAN502A                 : ARR( 0.533E-11,   500., 0.0);
+{ 34050} G2A502E +PERO6              =  0.460G1A502e + 0.270GAN5021 + 0.270GAN502A                 : ARR( 0.488E-13, -1250., 0.0);
+{ 34051} G2A502E +PERO9              =  0.800G1A502e + 0.200GAN502A                                : ARR( 0.100E-10,     0., 0.0);
+{ 34052} G1A502e                     =       GAN400b +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4576., 0.0);
+{ 34053} GAH500n +GHO                =       GAH502N +      GHO2                                   : ARR( 0.541E-11,     0., 0.0);
+{ 34054} GAH500n +GHO                =       GAK500M +      GHO                                    : ARR( 0.120E-10,     0., 0.0);
+{ 34055} GAH500n +GHO                =       G2A500f                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 34056} GAH500n+HV               =       G3K3002 +      GAD2000 +      GHO                     :  0.100E+01*SUN;
+{ 34057} GAH500n+HV               =       G1A500g +      GHO                                    :  0.100E+01*SUN;
+{ 34058} GAK500M +GHO                =       G2A502F                                               : ARR( 0.543E-12,     0., 0.0);
+{ 34059} GAK500M +GHO                =       GAK500U +      GHO2                                   : ARR( 0.522E-11,     0., 0.0);
+{ 34060} GAK500M +GHO                =       G3K3002 +      GCO2    +      GCO                     : ARR( 0.532E-12,     0., 0.0);
+{ 34061} GAK500M+HV               =       G3K3002 +      GCO     +      GHO     +      GCO      :  0.100E+01*SUN;
+{ 34062} G2A502F +GNO                =       G1A502f +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 34063} G2A502F +GNO                =       GAN501T                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 34064} G2A502F +GHO2               =       GAH502p                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 34065} G2A502F +GNO3               =       G1A502f +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 34066} G2A502F +MEPERO             =  0.480G1A502f + 0.260GAK500W + 0.260GAD500J                 : ARR( 0.164E-12,  -795., 0.0);
+{ 34067} G2A502F +PERO1              =  0.600G1A502f + 0.200GAK500W + 0.200GAD500J                 : ARR( 0.126E-12,  -850., 0.0);
+{ 34068} G2A502F +PERO2              =  0.560G1A502f + 0.220GAK500W + 0.220GAD500J                 : ARR( 0.471E-13, -1350., 0.0);
+{ 34069} G2A502F +PERO3              =  0.600G1A502f + 0.200GAK500W + 0.200GAD500J                 : ARR( 0.142E-12, -1200., 0.0);
+{ 34070} G2A502F +PERO5              =  0.600G1A502f + 0.200GAK500W + 0.200GAD500J                 : ARR( 0.533E-11,   500., 0.0);
+{ 34071} G2A502F +PERO6              =  0.460G1A502f + 0.270GAK500W + 0.270GAD500J                 : ARR( 0.488E-13, -1250., 0.0);
+{ 34072} G2A502F +PERO9              =  0.800G1A502f + 0.200GAD500J                                : ARR( 0.100E-10,     0., 0.0);
+{ 34073} G1A502f                     =       GAD4008 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4155., 0.0);
+{ 34074} GPD5006                     =       G3D5008 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 34075} GPD5006 +GHO                =       GPD500F +      GHO2                                   : ARR( 0.387E-11,     0., 0.0);
+{ 34076} GPD5006 +GHO                =       G3P500B                                               : ARR( 0.665E-10,     0., 0.0);
+{ 34077} GPD5006 +GNO3               =       G3P500B +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 34078} GPD5006+HV               =       G3D5008 +      GNO2                                   :  0.100E+01*SUN;
+{ 34079} GPD5006+HV               =       G3P3000 +      GDD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 34080} GPD5006+HV               =       GPD4003 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 34081} G3P500B +GHO2               =  0.800GPG5008 + 0.200GPA5009 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 34082} G3P500B +GNO                =       GPD4003 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 34083} G3P500B +GNO2               =       GPP5006                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 34084} G3P500B +GNO3               =       GPD4003 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 34085} G3P500B +MEPERO             =  0.685GPD4003 + 0.315GPA5009 + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34086} G3P500B +PERO1              =  0.800GPD4003 + 0.200GPA5009 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34087} G3P500B +PERO2              =  0.750GPD4003 + 0.250GPA5009 + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34088} G3P500B +PERO3              =  0.800GPD4003 + 0.200GPA5009 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34089} G3P500B +PERO5              =  0.650GPD4003 + 0.350GPA5009 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34090} G3P500B +PERO6              =  0.650GPD4003 + 0.350GPA5009 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34091} G3P500B +PERO9              =       GPD4003 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 34092} GPN500w                     =       G3N501c +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 34093} GPN500w +GHO                =       G2P502L                                               : ARR( 0.549E-12,     0., 0.0);
+{ 34094} GPN500w +GHO                =       GPN5028 +      GHO2                                   : ARR( 0.527E-11,     0., 0.0);
+{ 34095} GPN500w+HV               =       G3K3002 +      GPD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 34096} GPN500w+HV               =       G1P500j +      GNO2                                   :  0.100E+01*SUN;
+{ 34097} GPN500w+HV               =       G3N501c +      GNO2                                   :  0.100E+01*SUN;
+{ 34098} G2P502L +GNO                =       G1P502t +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 34099} G2P502L +GNO                =       GPN501P                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 34100} G2P502L +GHO2               =       GPH502w                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 34101} G2P502L +GNO3               =       G1P502t +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 34102} G2P502L +MEPERO             =  0.480G1P502t + 0.260GPN502A + 0.260GPN502L                 : ARR( 0.164E-12,  -795., 0.0);
+{ 34103} G2P502L +PERO1              =  0.600G1P502t + 0.200GPN502A + 0.200GPN502L                 : ARR( 0.126E-12,  -850., 0.0);
+{ 34104} G2P502L +PERO2              =  0.560G1P502t + 0.220GPN502A + 0.220GPN502L                 : ARR( 0.471E-13, -1350., 0.0);
+{ 34105} G2P502L +PERO3              =  0.600G1P502t + 0.200GPN502A + 0.200GPN502L                 : ARR( 0.142E-12, -1200., 0.0);
+{ 34106} G2P502L +PERO5              =  0.600G1P502t + 0.200GPN502A + 0.200GPN502L                 : ARR( 0.533E-11,   500., 0.0);
+{ 34107} G2P502L +PERO6              =  0.460G1P502t + 0.270GPN502A + 0.270GPN502L                 : ARR( 0.488E-13, -1250., 0.0);
+{ 34108} G2P502L +PERO9              =  0.800G1P502t + 0.200GPN502L                                : ARR( 0.100E-10,     0., 0.0);
+{ 34109} G1P502t                     =       GPN400b +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4576., 0.0);
+{ 34110} GPH500p                     =       G3H500w +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 34111} GPH500p +GHO                =       GPH502U +      GHO2                                   : ARR( 0.525E-11,     0., 0.0);
+{ 34112} GPH500p +GHO                =       GPK500N +      GHO                                    : ARR( 0.158E-10,     0., 0.0);
+{ 34113} GPH500p +GHO                =       G2P500i                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 34114} GPH500p+HV               =       G3K3002 +      GPD2000 +      GHO                     :  0.100E+01*SUN;
+{ 34115} GPH500p+HV               =       G1P500j +      GHO                                    :  0.100E+01*SUN;
+{ 34116} GPH500p+HV               =       G3H500w +      GNO2                                   :  0.100E+01*SUN;
+{ 34117} GPK500N                     =       G3K500i +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 34118} GPK500N +GHO                =       G2P502M                                               : ARR( 0.545E-12,     0., 0.0);
+{ 34119} GPK500N +GHO                =       GPK500Z +      GHO2                                   : ARR( 0.523E-11,     0., 0.0);
+{ 34120} GPK500N+HV               =       G3K3002 +      GCO     +      GNO2    +      GCO      :  0.100E+01*SUN;
+{ 34121} GPK500N+HV               =       G3K3002 +      GCO     +      GCO     +      GNO2     :  0.100E+01*SUN;
+{ 34122} G2P502M +GNO                =       G1P502u +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 34123} G2P502M +GNO                =       GPN501Y                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 34124} G2P502M +GHO2               =       GPH502x                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 34125} G2P502M +GNO3               =       G1P502u +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 34126} G2P502M +MEPERO             =  0.480G1P502u + 0.260GPK500a + 0.260GPD500I                 : ARR( 0.164E-12,  -795., 0.0);
+{ 34127} G2P502M +PERO1              =  0.600G1P502u + 0.200GPK500a + 0.200GPD500I                 : ARR( 0.126E-12,  -850., 0.0);
+{ 34128} G2P502M +PERO2              =  0.560G1P502u + 0.220GPK500a + 0.220GPD500I                 : ARR( 0.471E-13, -1350., 0.0);
+{ 34129} G2P502M +PERO3              =  0.600G1P502u + 0.200GPK500a + 0.200GPD500I                 : ARR( 0.142E-12, -1200., 0.0);
+{ 34130} G2P502M +PERO5              =  0.600G1P502u + 0.200GPK500a + 0.200GPD500I                 : ARR( 0.533E-11,   500., 0.0);
+{ 34131} G2P502M +PERO6              =  0.460G1P502u + 0.270GPK500a + 0.270GPD500I                 : ARR( 0.488E-13, -1250., 0.0);
+{ 34132} G2P502M +PERO9              =  0.800G1P502u + 0.200GPD500I                                : ARR( 0.100E-10,     0., 0.0);
+{ 34133} G1P502u                     =       GPD4008 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4155., 0.0);
+{ 34134} GHN400u +GHO                =       GHN400R +      GHO2                                   : ARR( 0.128E-10,     0., 0.0);
+{ 34135} GHN400u +GHO                =       GNK400C +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 34136} GHN400u +GHO                =       G2N400h                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 34137} GHN400u+HV               =       G1N400n +      GHO                                    :  0.100E+01*SUN;
+{ 34138} GHN400u+HV               =       G3H3004 +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{ 34139} GHN400u+HV               =       G1H401T +      GNO2                                   :  0.100E+01*SUN;
+{ 34140} GDD4003 +GHO                =       G3D4005                                               : ARR( 0.417E-10,     0., 0.0);
+{ 34141} GDD4003 +GHO                =       GDD4004 +      GHO2                                   : ARR( 0.400E-10,     0., 0.0);
+{ 34142} GDD4003 +GNO3               =       G3D4005 +      GHNO3                                  : ARR( 0.240E-13,     0., 0.0);
+{ 34143} GDD4003+HV               =       GCO     +      GDD3001 + 2.000GHO2                    :  0.200E+01*SUN;
+{ 34144} G3D4005 +GHO2               =  0.800GGD4006 + 0.200GAD4007 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 34145} G3D4005 +GNO                =       GDD3001 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 34146} G3D4005 +GNO2               =       GPD4006                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 34147} G3D4005 +GNO3               =       GDD3001 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 34148} G3D4005 +MEPERO             =  0.685GDD3001 + 0.315GAD4007 + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34149} G3D4005 +PERO1              =  0.800GDD3001 + 0.200GAD4007 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34150} G3D4005 +PERO2              =  0.750GDD3001 + 0.250GAD4007 + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34151} G3D4005 +PERO3              =  0.800GDD3001 + 0.200GAD4007 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34152} G3D4005 +PERO5              =  0.650GDD3001 + 0.350GAD4007 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34153} G3D4005 +PERO6              =  0.650GDD3001 + 0.350GAD4007 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34154} G3D4005 +PERO9              =       GDD3001 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 34155} GGO4006 +GHO                =       GGD4006 +      GHO2                                   : ARR( 0.409E-11,     0., 0.0);
+{ 34156} GGO4006 +GHO                =       GGK4008 +      GHO2                                   : ARR( 0.105E-10,     0., 0.0);
+{ 34157} GGO4006 +GHO                =       GGK4007 +      GHO2                                   : ARR( 0.639E-11,     0., 0.0);
+{ 34158} GGO4006 +GHO                =       G3K400B                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 34159} GGO4006+HV               =       GDO3002 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 34160} GAO4006 +GHO                =       GAD4007 +      GHO2                                   : ARR( 0.422E-11,     0., 0.0);
+{ 34161} GAO4006 +GHO                =       GAK4008 +      GHO2                                   : ARR( 0.108E-10,     0., 0.0);
+{ 34162} GAO4006 +GHO                =       GAK4007 +      GHO2                                   : ARR( 0.488E-11,     0., 0.0);
+{ 34163} GDK4009 +GHO                =       GDD4005 +      GHO2                                   : ARR( 0.247E-11,     0., 0.0);
+{ 34164} GDK4009 +GHO                =       G3K2001 + 2.000GCO                                    : ARR( 0.128E-10,     0., 0.0);
+{ 34165} GDK4009 +GNO3               =       G3K2001 +      GHNO3   + 2.000GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 34166} GDK4009+HV               =       G3K2001 +      G3D2000                                :  0.100E+01*SUN;
+{ 34167} GDK4009+HV               =       G3K2001 +      GCO     +      GCO     +      GHO2     :  0.100E+01*SUN;
+{ 34168} GDK4009+HV               =       GDK3001 +      GCO                                    :  0.100E+01*SUN;
+{ 34169} GDK4009+HV               =       GDO2000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 34170} GGK4008 +GHO                =       GGD4007 +      GHO2                                   : ARR( 0.252E-11,     0., 0.0);
+{ 34171} GGK4008 +GHO                =       GGK4009 +      GHO2                                   : ARR( 0.394E-11,     0., 0.0);
+{ 34172} GGK4008 +GHO                =       G3K400C                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 34173} GGK4008+HV               =       G3K2001 +      GGD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 34174} GGK4008+HV               =       GDK3001 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 34175} GAK4008 +GHO                =       GAD4006 +      GHO2                                   : ARR( 0.257E-11,     0., 0.0);
+{ 34176} GAK4008 +GHO                =       GAK4009 +      GHO2                                   : ARR( 0.297E-11,     0., 0.0);
+{ 34177} GAK4008 +GHO                =       GDK3001 +      GHO2    +      GCO2                    : ARR( 0.545E-12,     0., 0.0);
+{ 34178} GAK4008+HV               =       G3K2001 +      GAD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 34179} GPK4008                     =       G3K400C +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 34180} GPK4008 +GHO                =       GPD4007 +      GHO2                                   : ARR( 0.256E-11,     0., 0.0);
+{ 34181} GPK4008 +GHO                =       GPK4009 +      GHO2                                   : ARR( 0.400E-11,     0., 0.0);
+{ 34182} GPK4008+HV               =       G3K2001 +      GPD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 34183} GPK4008+HV               =       G3K400C +      GNO2                                   :  0.100E+01*SUN;
+{ 34184} GNN502d +GHO                =       GNN502w +      GNO2                                   : ARR( 0.184E-13,     0., 0.0);
+{ 34185} GNN502d +GHO                =       GNN502g +      GNO2                                   : ARR( 0.942E-14,     0., 0.0);
+{ 34186} GNN502d +GHO                =       GNN502f +      GNO2                                   : ARR( 0.471E-14,     0., 0.0);
+{ 34187} GNN502d+HV               =       G1N504e +      GNO2                                   :  0.200E+01*SUN;
+{ 34188} GNN502d+HV               =       G1N5049 +      GNO2                                   :  0.200E+01*SUN;
+{ 34189} GNN502d+HV               =       G1N5047 +      GNO2                                   :  0.100E+01*SUN;
+{ 34190} GHN504h +GHO                =       GNN502f +      GHO                                    : ARR( 0.167E-11,     0., 0.0);
+{ 34191} GHN504h +GHO                =       G2N503f                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 34192} GHN504h+HV               =       G1H507w +      GNO2                                   :  0.200E+01*SUN;
+{ 34193} GHN504h+HV               =       G1H507x +      GNO2                                   :  0.200E+01*SUN;
+{ 34194} GHN504h+HV               =       G1N5047 +      GHO                                    :  0.100E+01*SUN;
+{ 34195} G1H507w +OXYGEN             =       GHN506W +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 34196} G1H507w                     =       GHN502j +      GNO2                                   : ARR( 0.800E+11,  4743., 0.0);
+{ 34197} G1H507w                     =       GHN400v +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7042., 0.0);
+{ 34198} G1H507x                     =       GNN3005 +      GND2000 +      GHO                     : ARR( 0.200E+15,  4693., 0.0);
+{ 34199} GNN502e +GHO                =       GNN502h +      GNO2                                   : ARR( 0.485E-13,     0., 0.0);
+{ 34200} GNN502e +GHO                =       GNN502f +      GHO2                                   : ARR( 0.425E-12,     0., 0.0);
+{ 34201} GNN502e +GHO                =       G1N5047                                               : ARR( 0.216E-17,    85., 2.0);
+{ 34202} GNN502e+HV               =       G1N506K +      GNO2                                   :  0.200E+01*SUN;
+{ 34203} GNN502e+HV               =       G1N504C +      GNO2                                   :  0.200E+01*SUN;
+{ 34204} G1N506K +OXYGEN             =       GNN503H +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 34205} G1N506K                     =       GNN501r +      GNO2                                   : ARR( 0.800E+11,  4743., 0.0);
+{ 34206} G1N506K                     =       GNN400T +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7042., 0.0);
+{ 34207} GNN502f +GHO                =       GNN502z +      GNO2                                   : ARR( 0.184E-13,     0., 0.0);
+{ 34208} GNN502f +GHO                =       GNN502i +      GNO2                                   : ARR( 0.287E-13,     0., 0.0);
+{ 34209} GNN502f+HV               =       G1N504o +      GNO2                                   :  0.200E+01*SUN;
+{ 34210} GNN502f+HV               =       G1N504E +      GNO2                                   :  0.200E+01*SUN;
+{ 34211} GNN502f+HV               =       G3N3003 +      GND2000 +      GNO2                    :  0.100E+01*SUN;
+{ 34212} GNN502g +GHO                =       GNN5036 +      GNO2                                   : ARR( 0.280E-13,     0., 0.0);
+{ 34213} GNN502g +GHO                =       GNN502i +      GNO2                                   : ARR( 0.144E-13,     0., 0.0);
+{ 34214} GNN502g +GHO                =       GNN502m +      GNO2                                   : ARR( 0.471E-14,     0., 0.0);
+{ 34215} GNN502g +GHO                =       GNN502x +      GNO2                                   : ARR( 0.919E-14,     0., 0.0);
+{ 34216} GNN502g+HV               =       G1N5055 +      GNO2                                   :  0.100E+01*SUN;
+{ 34217} GNN502g+HV               =       G3N2000 +      GNN3005 +      GNO2                    :  0.100E+01*SUN;
+{ 34218} GNN502g+HV               =       GNN3006 +      GDD2000 + 2.000GNO2                    :  0.100E+01*SUN;
+{ 34219} GNN502g+HV               =       G1N5048 +      GNO2                                   :  0.100E+01*SUN;
+{ 34220} GNN502g+HV               =       G1N504K +      GNO2                                   :  0.100E+01*SUN;
+{ 34221} GNN502g+HV               =       G1N504f +      GNO2                                   :  0.100E+01*SUN;
+{ 34222} GHN504i +GHO                =       GNN502i +      GHO                                    : ARR( 0.509E-11,     0., 0.0);
+{ 34223} GHN504i +GHO                =       G2N503g                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 34224} GHN504i+HV               =       G1H507y +      GNO2                                   :  0.100E+01*SUN;
+{ 34225} GHN504i+HV               =       G1H507z +      GNO2                                   :  0.100E+01*SUN;
+{ 34226} GHN504i+HV               =       G1N5048 +      GHO                                    :  0.100E+01*SUN;
+{ 34227} GHN504i+HV               =       G3H400Z +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{ 34228} GHN504i+HV               =       G1H5081 +      GNO2                                   :  0.100E+01*SUN;
+{ 34229} G1H507y +OXYGEN             =       GHN505U +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 34230} G1H507y                     =       GHN400R +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7175., 0.0);
+{ 34231} G1H507z                     =       GND3003 +      GND2000 +      GHO                     : ARR( 0.200E+15,  4974., 0.0);
+{ 34232} G3H400Z +GHO2               =  0.800GGH400k + 0.200GAH400O + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 34233} G3H400Z +GNO                =       GNN3005 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 34234} G3H400Z +GNO2               =       GPH400O                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 34235} G3H400Z +GNO3               =       GNN3005 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 34236} G3H400Z +MEPERO             =  0.685GNN3005 + 0.315GAH400O + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34237} G3H400Z +PERO1              =  0.800GNN3005 + 0.200GAH400O + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34238} G3H400Z +PERO2              =  0.750GNN3005 + 0.250GAH400O + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34239} G3H400Z +PERO3              =  0.800GNN3005 + 0.200GAH400O + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34240} G3H400Z +PERO5              =  0.650GNN3005 + 0.350GAH400O + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34241} G3H400Z +PERO6              =  0.650GNN3005 + 0.350GAH400O + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34242} G3H400Z +PERO9              =       GNN3005 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 34243} G1H5081                     =       G3H400Z +      GCH2O                                  : ARR( 0.200E+15,  3603., 0.0);
+{ 34244} GNN502h +GHO                =       GNN502i +      GHO2                                   : ARR( 0.136E-11,     0., 0.0);
+{ 34245} GNN502h +GHO                =       G1N5048                                               : ARR( 0.227E-17,    85., 2.0);
+{ 34246} GNN502h+HV               =       G1N5059 +      GNO2                                   :  0.100E+01*SUN;
+{ 34247} GNN502h+HV               =       G3N2000 +      GNN3005 +      GHO2                    :  0.100E+01*SUN;
+{ 34248} GNN502h+HV               =       G1N504N +      GNO2                                   :  0.100E+01*SUN;
+{ 34249} GNN502h+HV               =       G1N5051 +      GNO2                                   :  0.100E+01*SUN;
+{ 34250} GNN502i +GHO                =       GNN503A +      GNO2                                   : ARR( 0.280E-13,     0., 0.0);
+{ 34251} GNN502i +GHO                =       GNN502o +      GNO2                                   : ARR( 0.144E-13,     0., 0.0);
+{ 34252} GNN502i +GHO                =       GNN5031 +      GNO2                                   : ARR( 0.919E-14,     0., 0.0);
+{ 34253} GNN502i+HV               =       G1N505A +      GNO2                                   :  0.100E+01*SUN;
+{ 34254} GNN502i+HV               =       G3N2000 +      G3N3003                                :  0.100E+01*SUN;
+{ 34255} GNN502i+HV               =       G1N504O +      GNO2                                   :  0.100E+01*SUN;
+{ 34256} GNN502i+HV               =       G1N504p +      GNO2                                   :  0.100E+01*SUN;
+{ 34257} GHN504j +GHO                =       GNN502g +      GHO                                    : ARR( 0.167E-11,     0., 0.0);
+{ 34258} GHN504j +GHO                =       G2N503h                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 34259} GHN504j+HV               =       G1H5082 +      GNO2                                   :  0.100E+01*SUN;
+{ 34260} GHN504j+HV               =       G1H5083 +      GNO2                                   :  0.100E+01*SUN;
+{ 34261} GHN504j+HV               =       G1H5084 +      GNO2                                   :  0.100E+01*SUN;
+{ 34262} GHN504j+HV               =       G1N5049 +      GHO                                    :  0.100E+01*SUN;
+{ 34263} GHN504j+HV               =       G1H5085 +      GNO2                                   :  0.100E+01*SUN;
+{ 34264} G1H5082                     =       GNN501b +      GHO                                    : ARR( 0.800E+11,  3117., 0.0);
+{ 34265} G1H5083                     =       GHN504q +      GNO2                                   : ARR( 0.160E+12,  4531., 0.0);
+{ 34266} G1H5083                     =       GHN3007 +      GND2000 +      GNO2                    : ARR( 0.200E+15,  6232., 0.0);
+{ 34267} G1H5084                     =       GNN3005 +      GND2000 +      GHO                     : ARR( 0.200E+15,  4784., 0.0);
+{ 34268} G1H5085                     =       GNN400D +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{ 34269} GHN504k +GHO                =       GNN501h +      GHO                                    : ARR( 0.845E-11,     0., 0.0);
+{ 34270} GHN504k +GHO                =       G3H501u                                               : ARR( 0.426E-11,     0., 0.0);
+{ 34271} GHN504k +GHO                =       G2N503m                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 34272} GHN504k +GNO3               =       G3H501u +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 34273} GHN504k+HV               =       G1H5086 +      GNO2                                   :  0.100E+01*SUN;
+{ 34274} GHN504k+HV               =       G1N504I +      GHO                                    :  0.100E+01*SUN;
+{ 34275} GHN504k+HV               =       G1H5087 +      GNO2                                   :  0.100E+01*SUN;
+{ 34276} GHN504k+HV               =       GHN400J +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 34277} GHN504k+HV               =       G2N3009 +      GND2000 +      GHO                     :  0.100E+01*SUN;
+{ 34278} G3H501u +GHO2               =  0.800GGH500y + 0.200GAH5015 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 34279} G3H501u +GNO                =       GHN400J + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 34280} G3H501u +GNO2               =       GPH501M                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 34281} G3H501u +GNO3               =       GHN400J + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 34282} G3H501u +MEPERO             =  0.685GHN400J + 0.315GAH5015 + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34283} G3H501u +PERO1              =  0.800GHN400J + 0.200GAH5015 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34284} G3H501u +PERO2              =  0.750GHN400J + 0.250GAH5015 + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34285} G3H501u +PERO3              =  0.800GHN400J + 0.200GAH5015 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34286} G3H501u +PERO5              =  0.650GHN400J + 0.350GAH5015 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34287} G3H501u +PERO6              =  0.650GHN400J + 0.350GAH5015 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34288} G3H501u +PERO9              =       GHN400J +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 34289} G1H5086 +OXYGEN             =       GHN505I +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{ 34290} G1H5086                     =       GHD500N +      GNO2                                   : ARR( 0.800E+11,  4245., 0.0);
+{ 34291} G1H5087                     =       GHD500O +      GNO2                                   : ARR( 0.160E+12,  4531., 0.0);
+{ 34292} G1H5087                     =       GND3000 +      GDD2000 +      GHO                     : ARR( 0.200E+15,  6613., 0.0);
+{ 34293} G1H5087                     =       GHN400J +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 34294} GHN504l +GHO                =       GNN502K +      GHO                                    : ARR( 0.266E-10,     0., 0.0);
+{ 34295} GHN504l +GHO                =       G3H501v                                               : ARR( 0.211E-10,     0., 0.0);
+{ 34296} GHN504l +GHO                =       G2N505I                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 34297} GHN504l +GNO3               =       G3H501v +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 34298} GHN504l+HV               =       G1H5088 +      GNO2                                   :  0.100E+01*SUN;
+{ 34299} GHN504l+HV               =       G1H506I +      GNO2                                   :  0.100E+01*SUN;
+{ 34300} GHN504l+HV               =       G1N505K +      GHO                                    :  0.100E+01*SUN;
+{ 34301} GHN504l+HV               =       G2H4016 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 34302} GHN504l+HV               =       GND3003 +      GD02000 +      GHO     +      GNO2     :  0.100E+01*SUN;
+{ 34303} G3H501v +GHO2               =  0.800GGH501C + 0.200GAH501C + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 34304} G3H501v +GNO                =       G2H4016 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 34305} G3H501v +GNO2               =       GPH5016                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 34306} G3H501v +GNO3               =       G2H4016 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 34307} G3H501v +MEPERO             =  0.685G2H4016 + 0.315GAH501C + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 34308} G3H501v +PERO1              =  0.800G2H4016 + 0.200GAH501C + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 34309} G3H501v +PERO2              =  0.750G2H4016 + 0.250GAH501C + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 34310} G3H501v +PERO3              =  0.800G2H4016 + 0.200GAH501C + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 34311} G3H501v +PERO5              =  0.650G2H4016 + 0.350GAH501C + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 34312} G3H501v +PERO6              =  0.650G2H4016 + 0.350GAH501C + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 34313} G3H501v +PERO9              =       G2H4016 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 34314} G2N505I +GNO                =       G1N505K +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 34315} G2N505I +GNO                =       GNN5025                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 34316} G2N505I +GHO2               =       GHN504l                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 34317} G2N505I +GNO3               =       G1N505K +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 34318} G2N505I +MEPERO             =  0.340G1N505K + 0.330GNN502j + 0.330GNN502K                 : ARR( 0.565E-13,  -845., 0.0);
+{ 34319} G2N505I +PERO1              =  0.460G1N505K + 0.270GNN502j + 0.270GNN502K                 : ARR( 0.434E-13,  -900., 0.0);
+{ 34320} G2N505I +PERO2              =  0.400G1N505K + 0.300GNN502j + 0.300GNN502K                 : ARR( 0.162E-13, -1400., 0.0);
+{ 34321} G2N505I +PERO3              =  0.460G1N505K + 0.270GNN502j + 0.270GNN502K                 : ARR( 0.488E-13, -1250., 0.0);
+{ 34322} G2N505I +PERO5              =  0.460G1N505K + 0.270GNN502j + 0.270GNN502K                 : ARR( 0.183E-11,   450., 0.0);
+{ 34323} G2N505I +PERO6              =  0.300G1N505K + 0.350GNN502j + 0.350GNN502K                 : ARR( 0.168E-13, -1300., 0.0);
+{ 34324} G2N505I +PERO9              =  0.650G1N505K + 0.350GNN502K                                : ARR( 0.100E-10,     0., 0.0);
+{ 34325} G1H5088                     =       G2H502u                                               : ARR( 0.160E+12,  3221., 0.0);
+{ 34326} G2H4016 +GNO                =       G1H401U +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 34327} G2H4016 +GNO                =       GHN400w                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 34328} G2H4016 +GHO2               =       GHH400q                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 34329} G2H4016 +GNO3               =       G1H401U +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 34330} G2H4016 +MEPERO             =  0.480G1H401U + 0.260GHN400m + 0.260GHN400v                 : ARR( 0.164E-12,  -795., 0.0);
+{ 34331} G2H4016 +PERO1              =  0.600G1H401U + 0.200GHN400m + 0.200GHN400v                 : ARR( 0.126E-12,  -850., 0.0);
+{ 34332} G2H4016 +PERO2              =  0.560G1H401U + 0.220GHN400m + 0.220GHN400v                 : ARR( 0.471E-13, -1350., 0.0);
+{ 34333} G2H4016 +PERO3              =  0.600G1H401U + 0.200GHN400m + 0.200GHN400v                 : ARR( 0.142E-12, -1200., 0.0);
+{ 34334} G2H4016 +PERO5              =  0.600G1H401U + 0.200GHN400m + 0.200GHN400v                 : ARR( 0.533E-11,   500., 0.0);
+{ 34335} G2H4016 +PERO6              =  0.460G1H401U + 0.270GHN400m + 0.270GHN400v                 : ARR( 0.488E-13, -1250., 0.0);
+{ 34336} G2H4016 +PERO9              =  0.800G1H401U + 0.200GHN400v                                : ARR( 0.100E-10,     0., 0.0);
+{ 34337} G2H502u +GNO                =       G1H5089 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 34338} G2H502u +GNO                =       GHN505J                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 34339} G2H502u +GHO2               =       GHH502N                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 34340} G2H502u +GNO3               =       G1H5089 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 34341} G2H502u +MEPERO             =  0.340G1H5089 + 0.330GHN506B + 0.330GHN505L                 : ARR( 0.565E-13,  -845., 0.0);
+{ 34342} G2H502u +PERO1              =  0.460G1H5089 + 0.270GHN506B + 0.270GHN505L                 : ARR( 0.434E-13,  -900., 0.0);
+{ 34343} G2H502u +PERO2              =  0.400G1H5089 + 0.300GHN506B + 0.300GHN505L                 : ARR( 0.162E-13, -1400., 0.0);
+{ 34344} G2H502u +PERO3              =  0.460G1H5089 + 0.270GHN506B + 0.270GHN505L                 : ARR( 0.488E-13, -1250., 0.0);
+{ 34345} G2H502u +PERO5              =  0.460G1H5089 + 0.270GHN506B + 0.270GHN505L                 : ARR( 0.183E-11,   450., 0.0);
+{ 34346} G2H502u +PERO6              =  0.300G1H5089 + 0.350GHN506B + 0.350GHN505L                 : ARR( 0.168E-13, -1300., 0.0);
+{ 34347} G2H502u +PERO9              =  0.650G1H5089 + 0.350GHN505L                                : ARR( 0.100E-10,     0., 0.0);
+{ 34348} G1H401U                     =       GNN3005 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{ 34349} G1H5089                     =       GHN506M +      GHO2                                   : ARR( 0.160E+12,  3252., 0.0);
+{ 34350} G1H5089                     =       GND3004 +      GDD2000 +      GHO                     : ARR( 0.200E+15,  6108., 0.0);
+{ 34351} G1H5089                     =       GHN400h +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 34352} GHN504m +GHO                =       GHN506W +      GHO2                                   : ARR( 0.843E-12,     0., 0.0);
+{ 34353} GHN504m +GHO                =       GNN502s +      GHO                                    : ARR( 0.173E-11,     0., 0.0);
+{ 34354} GHN504m +GHO                =       G2N505J                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 34355} GHN504m+HV               =       G1H503r +      GNO2                                   :  0.100E+01*SUN;
+{ 34356} GHN504m+HV               =       G1N504g +      GHO                                    :  0.100E+01*SUN;
+{ 34357} GHN504m+HV               =       G1H503X +      GNO2                                   :  0.100E+01*SUN;
+{ 34358} GHN504m+HV               =       G1H508A +      GNO2                                   :  0.100E+01*SUN;
+{ 34359} G2N505J +GNO                =       G1N504g +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 34360} G2N505J +GNO                =       GNN501Z                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 34361} G2N505J +GHO2               =       GHN504m                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 34362} G2N505J +GNO3               =       G1N504g +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 34363} G2N505J +MEPERO             =  0.340G1N504g + 0.330GNN502l + 0.330GNN502s                 : ARR( 0.565E-13,  -845., 0.0);
+{ 34364} G2N505J +PERO1              =  0.460G1N504g + 0.270GNN502l + 0.270GNN502s                 : ARR( 0.434E-13,  -900., 0.0);
+{ 34365} G2N505J +PERO2              =  0.400G1N504g + 0.300GNN502l + 0.300GNN502s                 : ARR( 0.162E-13, -1400., 0.0);
+{ 34366} G2N505J +PERO3              =  0.460G1N504g + 0.270GNN502l + 0.270GNN502s                 : ARR( 0.488E-13, -1250., 0.0);
+{ 34367} G2N505J +PERO5              =  0.460G1N504g + 0.270GNN502l + 0.270GNN502s                 : ARR( 0.183E-11,   450., 0.0);
+{ 34368} G2N505J +PERO6              =  0.300G1N504g + 0.350GNN502l + 0.350GNN502s                 : ARR( 0.168E-13, -1300., 0.0);
+{ 34369} G2N505J +PERO9              =  0.650G1N504g + 0.350GNN502s                                : ARR( 0.100E-10,     0., 0.0);
+{ 34370} G1H508A +OXYGEN             =       GHN505J +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 34371} G1H508A                     =       GHN504E +      GNO2                                   : ARR( 0.800E+11,  4024., 0.0);
+{ 34372} G1H508A                     =       GHN400h +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7042., 0.0);
+{ 34373} GHH501e +GHO                =       GHN505E +      GHO                                    : ARR( 0.863E-11,     0., 0.0);
+{ 34374} GHH501e +GHO                =       GHN502j +      GHO                                    : ARR( 0.863E-11,     0., 0.0);
+{ 34375} GHH501e +GHO                =       G2H502v                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 34376} GHH501e +GHO                =       G2H501i                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 34377} GHH501e+HV               =       G1H508B +      GNO2                                   :  0.100E+01*SUN;
+{ 34378} GHH501e+HV               =       G1H504W +      GHO                                    :  0.100E+01*SUN;
+{ 34379} GHH501e+HV               =       G1H503X +      GHO                                    :  0.100E+01*SUN;
+{ 34380} GHH501e+HV               =       G1H508C +      GNO2                                   :  0.100E+01*SUN;
+{ 34381} G2H502v +GNO                =       G1H504W +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 34382} G2H502v +GNO                =       GHN502W                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 34383} G2H502v +GHO2               =       GHH501e                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 34384} G2H502v +GNO3               =       G1H504W +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 34385} G2H502v +MEPERO             =  0.340G1H504W + 0.330GHN503g + 0.330GHN505E                 : ARR( 0.565E-13,  -845., 0.0);
+{ 34386} G2H502v +PERO1              =  0.460G1H504W + 0.270GHN503g + 0.270GHN505E                 : ARR( 0.434E-13,  -900., 0.0);
+{ 34387} G2H502v +PERO2              =  0.400G1H504W + 0.300GHN503g + 0.300GHN505E                 : ARR( 0.162E-13, -1400., 0.0);
+{ 34388} G2H502v +PERO3              =  0.460G1H504W + 0.270GHN503g + 0.270GHN505E                 : ARR( 0.488E-13, -1250., 0.0);
+{ 34389} G2H502v +PERO5              =  0.460G1H504W + 0.270GHN503g + 0.270GHN505E                 : ARR( 0.183E-11,   450., 0.0);
+{ 34390} G2H502v +PERO6              =  0.300G1H504W + 0.350GHN503g + 0.350GHN505E                 : ARR( 0.168E-13, -1300., 0.0);
+{ 34391} G2H502v +PERO9              =  0.650G1H504W + 0.350GHN505E                                : ARR( 0.100E-10,     0., 0.0);
+{ 34392} G1H508B                     =       GCH2O   +      GHH400j +      GHO2                    : ARR( 0.200E+15,  5296., 0.0);
+{ 34393} G1H508B                     =       GDO2000 +      GHN3007 +      GHO                     : ARR( 0.200E+15,  4695., 0.0);
+{ 34394} G1H508C                     =       GHH5017 +      GNO2                                   : ARR( 0.800E+11,  4024., 0.0);
+{ 34395} G1H508C                     =       GHN400h +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{ 34396} GHN504n +GHO                =       GHN505U +      GHO2                                   : ARR( 0.209E-11,     0., 0.0);
+{ 34397} GHN504n +GHO                =       GNN5033 +      GHO                                    : ARR( 0.836E-11,     0., 0.0);
+{ 34398} GHN504n +GHO                =       G3H501w                                               : ARR( 0.421E-11,     0., 0.0);
+{ 34399} GHN504n +GHO                =       G2N505K                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 34400} GHN504n +GNO3               =       G3H501w +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 34401} GHN504n+HV               =       G1H508D +      GNO2                                   :  0.100E+01*SUN;
+{ 34402} GHN504n+HV               =       G1N504j +      GHO                                    :  0.100E+01*SUN;
+{ 34403} GHN504n+HV               =       G1H508E +      GNO2                                   :  0.100E+01*SUN;
+{ 34404} GHN504n+HV               =       GHN400T +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 34405} GHN504n+HV               =       GHN3008 +      GND2000                                :  0.100E+01*SUN;
+{ 34406} G3H501w +GHO2               =  0.800GGH502a + 0.200GAH501P + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 34407} G3H501w +GNO                =       GHN400T + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 34408} G3H501w +GNO2               =       GPH501R                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 34409} G3H501w +GNO3               =       GHN400T + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 34410} G3H501w +MEPERO             =  0.685GHN400T + 0.315GAH501P + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34411} G3H501w +PERO1              =  0.800GHN400T + 0.200GAH501P + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34412} G3H501w +PERO2              =  0.750GHN400T + 0.250GAH501P + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34413} G3H501w +PERO3              =  0.800GHN400T + 0.200GAH501P + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34414} G3H501w +PERO5              =  0.650GHN400T + 0.350GAH501P + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34415} G3H501w +PERO6              =  0.650GHN400T + 0.350GAH501P + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34416} G3H501w +PERO9              =       GHN400T +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 34417} G2N505K +GNO                =       G1N504j +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 34418} G2N505K +GNO                =       GNN501d                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 34419} G2N505K +GHO2               =       GHN504n                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 34420} G2N505K +GNO3               =       G1N504j +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 34421} G2N505K +MEPERO             =  0.340G1N504j + 0.330GNN5034 + 0.330GNN5033                 : ARR( 0.565E-13,  -845., 0.0);
+{ 34422} G2N505K +PERO1              =  0.460G1N504j + 0.270GNN5034 + 0.270GNN5033                 : ARR( 0.434E-13,  -900., 0.0);
+{ 34423} G2N505K +PERO2              =  0.400G1N504j + 0.300GNN5034 + 0.300GNN5033                 : ARR( 0.162E-13, -1400., 0.0);
+{ 34424} G2N505K +PERO3              =  0.460G1N504j + 0.270GNN5034 + 0.270GNN5033                 : ARR( 0.488E-13, -1250., 0.0);
+{ 34425} G2N505K +PERO5              =  0.460G1N504j + 0.270GNN5034 + 0.270GNN5033                 : ARR( 0.183E-11,   450., 0.0);
+{ 34426} G2N505K +PERO6              =  0.300G1N504j + 0.350GNN5034 + 0.350GNN5033                 : ARR( 0.168E-13, -1300., 0.0);
+{ 34427} G2N505K +PERO9              =  0.650G1N504j + 0.350GNN5033                                : ARR( 0.100E-10,     0., 0.0);
+{ 34428} G1H508D                     =       GHN400y +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 34429} G1H508E                     =       GHD500i +      GNO2                                   : ARR( 0.160E+12,  4531., 0.0);
+{ 34430} G1H508E                     =       GND3002 +      GDD2000 +      GHO                     : ARR( 0.200E+15,  6108., 0.0);
+{ 34431} G1H508E                     =       GHN400T +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 34432} GHN504o +GHO                =       GHN504p +      GHO2                                   : ARR( 0.209E-11,     0., 0.0);
+{ 34433} GHN504o +GHO                =       GNN502h +      GHO                                    : ARR( 0.837E-11,     0., 0.0);
+{ 34434} GHN504o +GHO                =       G2N503i                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 34435} GHN504o+HV               =       G1H508F +      GNO2                                   :  0.100E+01*SUN;
+{ 34436} GHN504o+HV               =       G1H508G +      GNO2                                   :  0.100E+01*SUN;
+{ 34437} GHN504o+HV               =       G1N504C +      GHO                                    :  0.100E+01*SUN;
+{ 34438} GHN504o+HV               =       G1H508H +      GNO2                                   :  0.100E+01*SUN;
+{ 34439} G1H508F                     =       GNN501r +      GHO                                    : ARR( 0.800E+11,  2398., 0.0);
+{ 34440} G1H508G                     =       GHN3007 +      GND2000 +      GHO2                    : ARR( 0.200E+15,  3484., 0.0);
+{ 34441} G1H508H                     =       GNN400T +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{ 34442} GNN502j +GHO                =       GNN502K +      GHO2                                   : ARR( 0.678E-11,     0., 0.0);
+{ 34443} GNN502j +GHO                =       G3N501d                                               : ARR( 0.216E-10,     0., 0.0);
+{ 34444} GNN502j +GNO3               =       G3N501d +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 34445} GNN502j+HV               =       G1N506L +      GNO2                                   :  0.100E+01*SUN;
+{ 34446} GNN502j+HV               =       G1N505s +      GNO2                                   :  0.100E+01*SUN;
+{ 34447} GNN502j+HV               =       G2N400d +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 34448} GNN502j+HV               =       GND3003 +      GD02000 +      GHO2    +      GNO2     :  0.100E+01*SUN;
+{ 34449} G3N501d +GHO2               =  0.800GGN501H + 0.200GAN501A + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 34450} G3N501d +GNO                =       G2N400d +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 34451} G3N501d +GNO2               =       GPN5019                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 34452} G3N501d +GNO3               =       G2N400d +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 34453} G3N501d +MEPERO             =  0.685G2N400d + 0.315GAN501A + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 34454} G3N501d +PERO1              =  0.800G2N400d + 0.200GAN501A + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 34455} G3N501d +PERO2              =  0.750G2N400d + 0.250GAN501A + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 34456} G3N501d +PERO3              =  0.800G2N400d + 0.200GAN501A + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 34457} G3N501d +PERO5              =  0.650G2N400d + 0.350GAN501A + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 34458} G3N501d +PERO6              =  0.650G2N400d + 0.350GAN501A + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 34459} G3N501d +PERO9              =       G2N400d +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 34460} G1N506L                     =       G2N505L                                               : ARR( 0.160E+12,  3221., 0.0);
+{ 34461} G2N505L +GNO                =       G1N506M +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 34462} G2N505L +GNO                =       GNN502u                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 34463} G2N505L +GHO2               =       GHN506A                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 34464} G2N505L +GNO3               =       G1N506M +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 34465} G2N505L +MEPERO             =  0.340G1N506M + 0.330GND501P + 0.330GND501F                 : ARR( 0.565E-13,  -845., 0.0);
+{ 34466} G2N505L +PERO1              =  0.460G1N506M + 0.270GND501P + 0.270GND501F                 : ARR( 0.434E-13,  -900., 0.0);
+{ 34467} G2N505L +PERO2              =  0.400G1N506M + 0.300GND501P + 0.300GND501F                 : ARR( 0.162E-13, -1400., 0.0);
+{ 34468} G2N505L +PERO3              =  0.460G1N506M + 0.270GND501P + 0.270GND501F                 : ARR( 0.488E-13, -1250., 0.0);
+{ 34469} G2N505L +PERO5              =  0.460G1N506M + 0.270GND501P + 0.270GND501F                 : ARR( 0.183E-11,   450., 0.0);
+{ 34470} G2N505L +PERO6              =  0.300G1N506M + 0.350GND501P + 0.350GND501F                 : ARR( 0.168E-13, -1300., 0.0);
+{ 34471} G2N505L +PERO9              =  0.650G1N506M + 0.350GND501F                                : ARR( 0.100E-10,     0., 0.0);
+{ 34472} G1N506M                     =       GND501T +      GHO2                                   : ARR( 0.160E+12,  3252., 0.0);
+{ 34473} G1N506M                     =       GND3004 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  4899., 0.0);
+{ 34474} G1N506M                     =       GND4009 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 34475} GNN502k +GHO                =       GNN501h +      GHO2                                   : ARR( 0.224E-11,     0., 0.0);
+{ 34476} GNN502k +GHO                =       G3N501e                                               : ARR( 0.452E-11,     0., 0.0);
+{ 34477} GNN502k +GNO3               =       G3N501e +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 34478} GNN502k+HV               =       G1N506N +      GNO2                                   :  0.100E+01*SUN;
+{ 34479} GNN502k+HV               =       G1N506O +      GNO2                                   :  0.100E+01*SUN;
+{ 34480} GNN502k+HV               =       GND400C +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 34481} GNN502k+HV               =       GND3000 +      GND2000                                :  0.100E+01*SUN;
+{ 34482} G3N501e +GHO2               =  0.800GGN500s + 0.200GAN500w + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 34483} G3N501e +GNO                =       GND400C + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 34484} G3N501e +GNO2               =       GPN5012                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 34485} G3N501e +GNO3               =       GND400C + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 34486} G3N501e +MEPERO             =  0.685GND400C + 0.315GAN500w + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34487} G3N501e +PERO1              =  0.800GND400C + 0.200GAN500w + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34488} G3N501e +PERO2              =  0.750GND400C + 0.250GAN500w + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34489} G3N501e +PERO3              =  0.800GND400C + 0.200GAN500w + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34490} G3N501e +PERO5              =  0.650GND400C + 0.350GAN500w + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34491} G3N501e +PERO6              =  0.650GND400C + 0.350GAN500w + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34492} G3N501e +PERO9              =       GND400C +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 34493} G1N506N +OXYGEN             =       GND501D +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{ 34494} G1N506N                     =       GDK500J +      GNO2                                   : ARR( 0.800E+11,  4245., 0.0);
+{ 34495} G1N506O                     =       GND3000 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  5404., 0.0);
+{ 34496} G1N506O                     =       GND400C +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 34497} GNN502l +GHO                =       GNN503H +      GHO2                                   : ARR( 0.821E-12,     0., 0.0);
+{ 34498} GNN502l +GHO                =       GNN502O +      GNO2                                   : ARR( 0.120E-12,     0., 0.0);
+{ 34499} GNN502l +GHO                =       GNN502s +      GHO2                                   : ARR( 0.420E-12,     0., 0.0);
+{ 34500} GNN502l +GHO                =       G1N506K                                               : ARR( 0.214E-17,    85., 2.0);
+{ 34501} GNN502l +GHO                =       G1N504g                                               : ARR( 0.214E-17,    85., 2.0);
+{ 34502} GNN502l+HV               =       G1N504Q +      GNO2                                   :  0.100E+01*SUN;
+{ 34503} GNN502l+HV               =       G1N504D +      GNO2                                   :  0.100E+01*SUN;
+{ 34504} GNN502l+HV               =       G1N506P +      GNO2                                   :  0.100E+01*SUN;
+{ 34505} G1N506P +OXYGEN             =       GNN502u +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 34506} G1N506P                     =       GNK5015 +      GNO2                                   : ARR( 0.800E+11,  4024., 0.0);
+{ 34507} G1N506P                     =       GND4009 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7042., 0.0);
+{ 34508} GHN504p +GHO                =       GNN502i +      GHO                                    : ARR( 0.512E-11,     0., 0.0);
+{ 34509} GHN504p +GHO                =       G2N503k                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 34510} GHN504p+HV               =       G1H508I +      GNO2                                   :  0.100E+01*SUN;
+{ 34511} GHN504p+HV               =       G1H508J +      GNO2                                   :  0.100E+01*SUN;
+{ 34512} GHN504p+HV               =       G3N3003 +      GND2000 +      GHO                     :  0.100E+01*SUN;
+{ 34513} GHN504p+HV               =       G1N504E +      GHO                                    :  0.100E+01*SUN;
+{ 34514} GHN504p+HV               =       G1H508K +      GNO2                                   :  0.100E+01*SUN;
+{ 34515} G1H508I +OXYGEN             =       GHN506X +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 34516} G1H508I                     =       GNN501s +      GHO                                    : ARR( 0.800E+11,  4380., 0.0);
+{ 34517} G1H508I                     =       GHN4018 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7323., 0.0);
+{ 34518} G1H508J                     =       G3H3002 +      GND2000                                : ARR( 0.200E+15,  3029., 0.0);
+{ 34519} G1H508K +OXYGEN             =       GHN506Y +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 34520} G1H508K                     =       GNN400a +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5784., 0.0);
+{ 34521} GHH501f +GHO                =       GHH502H +      GHO2                                   : ARR( 0.408E-11,     0., 0.0);
+{ 34522} GHH501f +GHO                =       GHN5067 +      GHO                                    : ARR( 0.836E-11,     0., 0.0);
+{ 34523} GHH501f +GHO                =       GHN5039 +      GHO                                    : ARR( 0.167E-11,     0., 0.0);
+{ 34524} GHH501f +GHO                =       G2H502w                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 34525} GHH501f +GHO                =       G2H501j                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 34526} GHH501f+HV               =       G1H504U +      GHO                                    :  0.100E+01*SUN;
+{ 34527} GHH501f+HV               =       G1H508L +      GNO2                                   :  0.100E+01*SUN;
+{ 34528} GHH501f+HV               =       G1H503a +      GHO                                    :  0.100E+01*SUN;
+{ 34529} GHH501f+HV               =       G1H508M +      GNO2                                   :  0.100E+01*SUN;
+{ 34530} G2H502w +GNO                =       G1H504U +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 34531} G2H502w +GNO                =       GHN502W                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 34532} G2H502w +GHO2               =       GHH501f                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 34533} G2H502w +GNO3               =       G1H504U +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 34534} G2H502w +MEPERO             =  0.340G1H504U + 0.330GHN503d + 0.330GHN5067                 : ARR( 0.565E-13,  -845., 0.0);
+{ 34535} G2H502w +PERO1              =  0.460G1H504U + 0.270GHN503d + 0.270GHN5067                 : ARR( 0.434E-13,  -900., 0.0);
+{ 34536} G2H502w +PERO2              =  0.400G1H504U + 0.300GHN503d + 0.300GHN5067                 : ARR( 0.162E-13, -1400., 0.0);
+{ 34537} G2H502w +PERO3              =  0.460G1H504U + 0.270GHN503d + 0.270GHN5067                 : ARR( 0.488E-13, -1250., 0.0);
+{ 34538} G2H502w +PERO5              =  0.460G1H504U + 0.270GHN503d + 0.270GHN5067                 : ARR( 0.183E-11,   450., 0.0);
+{ 34539} G2H502w +PERO6              =  0.300G1H504U + 0.350GHN503d + 0.350GHN5067                 : ARR( 0.168E-13, -1300., 0.0);
+{ 34540} G2H502w +PERO9              =  0.650G1H504U + 0.350GHN5067                                : ARR( 0.100E-10,     0., 0.0);
+{ 34541} G1H508L                     =       GDO2000 +      GHN3007 +      GHO                     : ARR( 0.200E+15,  4784., 0.0);
+{ 34542} G1H508L                     =       GHD3003 +      GND2000 +      GHO                     : ARR( 0.200E+15,  4784., 0.0);
+{ 34543} G1H508M                     =       GHN5036 +      GHO                                    : ARR( 0.800E+11,  2398., 0.0);
+{ 34544} G1H508M                     =       GHN400L +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{ 34545} GHN504q +GHO                =       GNN5037 +      GHO                                    : ARR( 0.519E-11,     0., 0.0);
+{ 34546} GHN504q +GHO                =       G3H501x                                               : ARR( 0.215E-10,     0., 0.0);
+{ 34547} GHN504q +GHO                =       G2N505M                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 34548} GHN504q +GNO3               =       G3H501x +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 34549} GHN504q+HV               =       G1H508N +      GNO2                                   :  0.100E+01*SUN;
+{ 34550} GHN504q+HV               =       G1H503l +      GNO2                                   :  0.100E+01*SUN;
+{ 34551} GHN504q+HV               =       G1N504k +      GHO                                    :  0.100E+01*SUN;
+{ 34552} GHN504q+HV               =       GNN400F +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 34553} G3H501x +GHO2               =  0.800GGH502b + 0.200GAH501S + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 34554} G3H501x +GNO                =       GNN400F +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 34555} G3H501x +GNO2               =       GPH501T                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 34556} G3H501x +GNO3               =       GNN400F +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 34557} G3H501x +MEPERO             =  0.685GNN400F + 0.315GAH501S + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34558} G3H501x +PERO1              =  0.800GNN400F + 0.200GAH501S + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34559} G3H501x +PERO2              =  0.750GNN400F + 0.250GAH501S + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34560} G3H501x +PERO3              =  0.800GNN400F + 0.200GAH501S + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34561} G3H501x +PERO5              =  0.650GNN400F + 0.350GAH501S + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34562} G3H501x +PERO6              =  0.650GNN400F + 0.350GAH501S + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34563} G3H501x +PERO9              =       GNN400F +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 34564} G2N505M +GNO                =       G1N504k +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 34565} G2N505M +GNO                =       GNN501d                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 34566} G2N505M +GHO2               =       GHN504q                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 34567} G2N505M +GNO3               =       G1N504k +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 34568} G2N505M +MEPERO             =  0.340G1N504k + 0.330GNN502H + 0.330GNN5037                 : ARR( 0.565E-13,  -845., 0.0);
+{ 34569} G2N505M +PERO1              =  0.460G1N504k + 0.270GNN502H + 0.270GNN5037                 : ARR( 0.434E-13,  -900., 0.0);
+{ 34570} G2N505M +PERO2              =  0.400G1N504k + 0.300GNN502H + 0.300GNN5037                 : ARR( 0.162E-13, -1400., 0.0);
+{ 34571} G2N505M +PERO3              =  0.460G1N504k + 0.270GNN502H + 0.270GNN5037                 : ARR( 0.488E-13, -1250., 0.0);
+{ 34572} G2N505M +PERO5              =  0.460G1N504k + 0.270GNN502H + 0.270GNN5037                 : ARR( 0.183E-11,   450., 0.0);
+{ 34573} G2N505M +PERO6              =  0.300G1N504k + 0.350GNN502H + 0.350GNN5037                 : ARR( 0.168E-13, -1300., 0.0);
+{ 34574} G2N505M +PERO9              =  0.650G1N504k + 0.350GNN5037                                : ARR( 0.100E-10,     0., 0.0);
+{ 34575} G1H508N                     =       GND5012 +      GHO                                    : ARR( 0.800E+11,  2619., 0.0);
+{ 34576} G1H508N                     =       GHN400y +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 34577} GHH501g +GHO                =       GHH502m +      GHO2                                   : ARR( 0.403E-11,     0., 0.0);
+{ 34578} GHH501g +GHO                =       GHN503Z +      GHO                                    : ARR( 0.413E-10,     0., 0.0);
+{ 34579} GHH501g +GHO                =       GHN505w +      GHO                                    : ARR( 0.827E-11,     0., 0.0);
+{ 34580} GHH501g +GHO                =       G2H501p                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 34581} GHH501g +GHO                =       G2H502x                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 34582} GHH501g+HV               =       G1H503r +      GHO                                    :  0.100E+01*SUN;
+{ 34583} GHH501g+HV               =       G1H505O +      GHO                                    :  0.100E+01*SUN;
+{ 34584} GHH501g+HV               =       G1H503d +      GNO2                                   :  0.100E+01*SUN;
+{ 34585} GHH501g+HV               =       G1H508O +      GNO2                                   :  0.100E+01*SUN;
+{ 34586} G2H502x +GNO                =       G1H505O +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 34587} G2H502x +GNO                =       GHN5032                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 34588} G2H502x +GHO2               =       GHH501g                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 34589} G2H502x +GNO3               =       G1H505O +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 34590} G2H502x +MEPERO             =  0.340G1H505O + 0.330GHN504r + 0.330GHN505w                 : ARR( 0.565E-13,  -845., 0.0);
+{ 34591} G2H502x +PERO1              =  0.460G1H505O + 0.270GHN504r + 0.270GHN505w                 : ARR( 0.434E-13,  -900., 0.0);
+{ 34592} G2H502x +PERO2              =  0.400G1H505O + 0.300GHN504r + 0.300GHN505w                 : ARR( 0.162E-13, -1400., 0.0);
+{ 34593} G2H502x +PERO3              =  0.460G1H505O + 0.270GHN504r + 0.270GHN505w                 : ARR( 0.488E-13, -1250., 0.0);
+{ 34594} G2H502x +PERO5              =  0.460G1H505O + 0.270GHN504r + 0.270GHN505w                 : ARR( 0.183E-11,   450., 0.0);
+{ 34595} G2H502x +PERO6              =  0.300G1H505O + 0.350GHN504r + 0.350GHN505w                 : ARR( 0.168E-13, -1300., 0.0);
+{ 34596} G2H502x +PERO9              =  0.650G1H505O + 0.350GHN505w                                : ARR( 0.100E-10,     0., 0.0);
+{ 34597} G1H508O                     =       GHN504E +      GHO                                    : ARR( 0.800E+11,  1678., 0.0);
+{ 34598} GHH501h +GHO                =       GHH502M +      GHO                                    : ARR( 0.480E-10,     0., 0.0);
+{ 34599} GHH501h +GHO                =       GHH502Q +      GHO                                    : ARR( 0.480E-10,     0., 0.0);
+{ 34600} GHH501h +GHO                =       GHH501B +      GHO                                    : ARR( 0.961E-11,     0., 0.0);
+{ 34601} GHH501h+HV               =       G1H508B +      GHO                                    :  0.100E+01*SUN;
+{ 34602} GHH501h+HV               =       G1H508L +      GHO                                    :  0.100E+01*SUN;
+{ 34603} GHH501h+HV               =       G1H503d +      GHO                                    :  0.100E+01*SUN;
+{ 34604} GHH501h+HV               =       G1H508P +      GNO2                                   :  0.100E+01*SUN;
+{ 34605} G1H508P                     =       GHH5017 +      GHO                                    : ARR( 0.800E+11,  1678., 0.0);
+{ 34606} GHH501i +GHO                =       GHN502t +      GHO                                    : ARR( 0.480E-10,     0., 0.0);
+{ 34607} GHH501i +GHO                =       GHN503l +      GHO                                    : ARR( 0.480E-10,     0., 0.0);
+{ 34608} GHH501i+HV               =       G1H504r +      GHO                                    :  0.100E+01*SUN;
+{ 34609} GHH501i+HV               =       G1H505X +      GHO                                    :  0.100E+01*SUN;
+{ 34610} GHH501i+HV               =       G1H508Q +      GNO2                                   :  0.100E+01*SUN;
+{ 34611} G1H508Q                     =       GHK500f +      GHO                                    : ARR( 0.800E+11,  1678., 0.0);
+{ 34612} G1H508Q                     =       GHH4009 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 34613} GHH501j +GHO                =       GHN504w +      GHO                                    : ARR( 0.138E-09,     0., 0.0);
+{ 34614} GHH501j +GHO                =       GHN505d +      GHO                                    : ARR( 0.265E-10,     0., 0.0);
+{ 34615} GHH501j +GHO                =       G3H501y                                               : ARR( 0.219E-10,     0., 0.0);
+{ 34616} GHH501j +GNO3               =       G3H501y +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 34617} GHH501j+HV               =       G1H508R +      GNO2                                   :  0.100E+01*SUN;
+{ 34618} GHH501j+HV               =       G1H503l +      GHO                                    :  0.100E+01*SUN;
+{ 34619} GHH501j+HV               =       G1H508E +      GHO                                    :  0.100E+01*SUN;
+{ 34620} GHH501j+HV               =       GHN400T +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 34621} G3H501y +GHO2               =  0.800GGH502c + 0.200GAH501p + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 34622} G3H501y +GNO                =       GHN400T +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 34623} G3H501y +GNO2               =       GPH502y                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 34624} G3H501y +GNO3               =       GHN400T +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 34625} G3H501y +MEPERO             =  0.685GHN400T + 0.315GAH501p + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34626} G3H501y +PERO1              =  0.800GHN400T + 0.200GAH501p + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34627} G3H501y +PERO2              =  0.750GHN400T + 0.250GAH501p + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34628} G3H501y +PERO3              =  0.800GHN400T + 0.200GAH501p + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34629} G3H501y +PERO5              =  0.650GHN400T + 0.350GAH501p + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34630} G3H501y +PERO6              =  0.650GHN400T + 0.350GAH501p + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34631} G3H501y +PERO9              =       GHN400T +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 34632} G1H508R                     =       GHD500h +      GHO                                    : ARR( 0.800E+11,  1899., 0.0);
+{ 34633} G1H508R                     =       GHH400r +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 34634} GHN504r +GHO                =       GHN506Z +      GHO2                                   : ARR( 0.422E-11,     0., 0.0);
+{ 34635} GHN504r +GHO                =       GNN502O +      GHO                                    : ARR( 0.432E-10,     0., 0.0);
+{ 34636} GHN504r +GHO                =       G2N503u                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 34637} GHN504r+HV               =       G1N504Q +      GHO                                    :  0.100E+01*SUN;
+{ 34638} GHN504r+HV               =       G1H503g +      GNO2                                   :  0.100E+01*SUN;
+{ 34639} GHN504r+HV               =       G1H508S +      GNO2                                   :  0.100E+01*SUN;
+{ 34640} G1H508S                     =       GNK5015 +      GHO                                    : ARR( 0.800E+11,  1678., 0.0);
+{ 34641} GHN504s +GHO                =       GND500i +      GHO                                    : ARR( 0.161E-10,     0., 0.0);
+{ 34642} GHN504s +GHO                =       G3H501z                                               : ARR( 0.690E-10,     0., 0.0);
+{ 34643} GHN504s +GNO3               =       G3H501z +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 34644} GHN504s+HV               =       G1H508T +      GNO2                                   :  0.100E+01*SUN;
+{ 34645} GHN504s+HV               =       G3N3000 +      GDD2000 +      GHO                     :  0.100E+01*SUN;
+{ 34646} GHN504s+HV               =       G1N504n +      GHO                                    :  0.100E+01*SUN;
+{ 34647} GHN504s+HV               =       GND400B +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 34648} G3H501z +GHO2               =  0.800GGH500w + 0.200GAH5013 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 34649} G3H501z +GNO                =       GND400B +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 34650} G3H501z +GNO2               =       GPH5015                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 34651} G3H501z +GNO3               =       GND400B +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 34652} G3H501z +MEPERO             =  0.685GND400B + 0.315GAH5013 + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34653} G3H501z +PERO1              =  0.800GND400B + 0.200GAH5013 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34654} G3H501z +PERO2              =  0.750GND400B + 0.250GAH5013 + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34655} G3H501z +PERO3              =  0.800GND400B + 0.200GAH5013 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34656} G3H501z +PERO5              =  0.650GND400B + 0.350GAH5013 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34657} G3H501z +PERO6              =  0.650GND400B + 0.350GAH5013 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34658} G3H501z +PERO9              =       GND400B +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 34659} G1H508T +OXYGEN             =       GHD5016 +      GHO2                                   : ARR( 0.600E-13,   398., 0.0);
+{ 34660} G1H508T                     =       GDK500L +      GHO                                    : ARR( 0.800E+11,  3882., 0.0);
+{ 34661} GHN504t +GHO                =       GNN501u +      GHO                                    : ARR( 0.511E-11,     0., 0.0);
+{ 34662} GHN504t +GHO                =       G3H5021                                               : ARR( 0.211E-10,     0., 0.0);
+{ 34663} GHN504t +GHO                =       G2N505N                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 34664} GHN504t +GNO3               =       G3H5021 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 34665} GHN504t+HV               =       G1H508U +      GNO2                                   :  0.100E+01*SUN;
+{ 34666} GHN504t+HV               =       G1H503j +      GNO2                                   :  0.100E+01*SUN;
+{ 34667} GHN504t+HV               =       G1N504d +      GHO                                    :  0.100E+01*SUN;
+{ 34668} GHN504t+HV               =       GNN4008 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 34669} G3H5021 +GHO2               =  0.800GGH502d + 0.200GAH500r + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 34670} G3H5021 +GNO                =       GNN4008 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 34671} G3H5021 +GNO2               =       GPH500u                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 34672} G3H5021 +GNO3               =       GNN4008 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 34673} G3H5021 +MEPERO             =  0.685GNN4008 + 0.315GAH500r + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34674} G3H5021 +PERO1              =  0.800GNN4008 + 0.200GAH500r + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34675} G3H5021 +PERO2              =  0.750GNN4008 + 0.250GAH500r + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34676} G3H5021 +PERO3              =  0.800GNN4008 + 0.200GAH500r + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34677} G3H5021 +PERO5              =  0.650GNN4008 + 0.350GAH500r + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34678} G3H5021 +PERO6              =  0.650GNN4008 + 0.350GAH500r + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34679} G3H5021 +PERO9              =       GNN4008 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 34680} G2N505N +GNO                =       G1N504d +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 34681} G2N505N +GNO                =       GNN501U                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 34682} G2N505N +GHO2               =       GHN504t                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 34683} G2N505N +GNO3               =       G1N504d +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 34684} G2N505N +MEPERO             =  0.340G1N504d + 0.330GNN5019 + 0.330GNN501u                 : ARR( 0.565E-13,  -845., 0.0);
+{ 34685} G2N505N +PERO1              =  0.460G1N504d + 0.270GNN5019 + 0.270GNN501u                 : ARR( 0.434E-13,  -900., 0.0);
+{ 34686} G2N505N +PERO2              =  0.400G1N504d + 0.300GNN5019 + 0.300GNN501u                 : ARR( 0.162E-13, -1400., 0.0);
+{ 34687} G2N505N +PERO3              =  0.460G1N504d + 0.270GNN5019 + 0.270GNN501u                 : ARR( 0.488E-13, -1250., 0.0);
+{ 34688} G2N505N +PERO5              =  0.460G1N504d + 0.270GNN5019 + 0.270GNN501u                 : ARR( 0.183E-11,   450., 0.0);
+{ 34689} G2N505N +PERO6              =  0.300G1N504d + 0.350GNN5019 + 0.350GNN501u                 : ARR( 0.168E-13, -1300., 0.0);
+{ 34690} G2N505N +PERO9              =  0.650G1N504d + 0.350GNN501u                                : ARR( 0.100E-10,     0., 0.0);
+{ 34691} G1H508U                     =       GND500Z +      GHO                                    : ARR( 0.800E+11,  2619., 0.0);
+{ 34692} GHH501k +GHO                =       GHN504s +      GHO                                    : ARR( 0.136E-09,     0., 0.0);
+{ 34693} GHH501k +GHO                =       GHN502l +      GHO                                    : ARR( 0.262E-10,     0., 0.0);
+{ 34694} GHH501k +GHO                =       G3H5022                                               : ARR( 0.217E-10,     0., 0.0);
+{ 34695} GHH501k +GNO3               =       G3H5022 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 34696} GHH501k+HV               =       G1H508W +      GNO2                                   :  0.100E+01*SUN;
+{ 34697} GHH501k+HV               =       G1H503j +      GHO                                    :  0.100E+01*SUN;
+{ 34698} GHH501k+HV               =       G1H5087 +      GHO                                    :  0.100E+01*SUN;
+{ 34699} GHH501k+HV               =       GHN400J +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 34700} G3H5022 +GHO2               =  0.800GGH502e + 0.200GAH5017 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 34701} G3H5022 +GNO                =       GHN400J +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 34702} G3H5022 +GNO2               =       GPH502z                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 34703} G3H5022 +GNO3               =       GHN400J +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 34704} G3H5022 +MEPERO             =  0.685GHN400J + 0.315GAH5017 + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34705} G3H5022 +PERO1              =  0.800GHN400J + 0.200GAH5017 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34706} G3H5022 +PERO2              =  0.750GHN400J + 0.250GAH5017 + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34707} G3H5022 +PERO3              =  0.800GHN400J + 0.200GAH5017 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34708} G3H5022 +PERO5              =  0.650GHN400J + 0.350GAH5017 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34709} G3H5022 +PERO6              =  0.650GHN400J + 0.350GAH5017 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34710} G3H5022 +PERO9              =       GHN400J +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 34711} G1H508W                     =       GHD500N +      GHO                                    : ARR( 0.800E+11,  1899., 0.0);
+{ 34712} GHN504u +GHO                =       GHN504s +      GHO2                                   : ARR( 0.344E-10,     0., 0.0);
+{ 34713} GHN504u +GHO                =       GND500h +      GHO                                    : ARR( 0.264E-10,     0., 0.0);
+{ 34714} GHN504u +GHO                =       G3H5023                                               : ARR( 0.218E-10,     0., 0.0);
+{ 34715} GHN504u +GNO3               =       G3H5023 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 34716} GHN504u+HV               =       G1H508X +      GNO2                                   :  0.100E+01*SUN;
+{ 34717} GHN504u+HV               =       G1N506O +      GHO                                    :  0.100E+01*SUN;
+{ 34718} GHN504u+HV               =       GND400C +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 34719} G3H5023 +GHO2               =  0.800GGH500u + 0.200GAH5011 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 34720} G3H5023 +GNO                =       GND400C +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 34721} G3H5023 +GNO2               =       GPH5012                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 34722} G3H5023 +GNO3               =       GND400C +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 34723} G3H5023 +MEPERO             =  0.685GND400C + 0.315GAH5011 + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34724} G3H5023 +PERO1              =  0.800GND400C + 0.200GAH5011 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34725} G3H5023 +PERO2              =  0.750GND400C + 0.250GAH5011 + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34726} G3H5023 +PERO3              =  0.800GND400C + 0.200GAH5011 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34727} G3H5023 +PERO5              =  0.650GND400C + 0.350GAH5011 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34728} G3H5023 +PERO6              =  0.650GND400C + 0.350GAH5011 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34729} G3H5023 +PERO9              =       GND400C +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 34730} G1H508X                     =       GDK500J +      GHO                                    : ARR( 0.800E+11,  1899., 0.0);
+{ 34731} GHN504v +GHO                =       GHN504w +      GHO2                                   : ARR( 0.352E-10,     0., 0.0);
+{ 34732} GHN504v +GHO                =       GND501L +      GHO                                    : ARR( 0.270E-10,     0., 0.0);
+{ 34733} GHN504v +GHO                =       G3H5024                                               : ARR( 0.224E-10,     0., 0.0);
+{ 34734} GHN504v +GNO3               =       G3H5024 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 34735} GHN504v+HV               =       G1H508Y +      GNO2                                   :  0.100E+01*SUN;
+{ 34736} GHN504v+HV               =       G1N506Q +      GHO                                    :  0.100E+01*SUN;
+{ 34737} GHN504v+HV               =       GND400F +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 34738} G3H5024 +GHO2               =  0.800GGH501h + 0.200GAH501q + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 34739} G3H5024 +GNO                =       GND400F +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 34740} G3H5024 +GNO2               =       GPH501n                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 34741} G3H5024 +GNO3               =       GND400F +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 34742} G3H5024 +MEPERO             =  0.685GND400F + 0.315GAH501q + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34743} G3H5024 +PERO1              =  0.800GND400F + 0.200GAH501q + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34744} G3H5024 +PERO2              =  0.750GND400F + 0.250GAH501q + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34745} G3H5024 +PERO3              =  0.800GND400F + 0.200GAH501q + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34746} G3H5024 +PERO5              =  0.650GND400F + 0.350GAH501q + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34747} G3H5024 +PERO6              =  0.650GND400F + 0.350GAH501q + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34748} G3H5024 +PERO9              =       GND400F +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 34749} G1H508Y                     =       GDK500N +      GHO                                    : ARR( 0.800E+11,  1899., 0.0);
+{ 34750} G1H508Y                     =       GHD400L +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 34751} G1N506Q                     =       GND3002 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  4899., 0.0);
+{ 34752} G1N506Q                     =       GND400F +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 34753} GHN504w +GHO                =       GND501I +      GHO                                    : ARR( 0.163E-10,     0., 0.0);
+{ 34754} GHN504w +GHO                =       G3H5025                                               : ARR( 0.700E-10,     0., 0.0);
+{ 34755} GHN504w +GNO3               =       G3H5025 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 34756} GHN504w+HV               =       G1H508Z +      GNO2                                   :  0.100E+01*SUN;
+{ 34757} GHN504w+HV               =       G3N3002 +      GDD2000 +      GHO                     :  0.100E+01*SUN;
+{ 34758} GHN504w+HV               =       G1N506R +      GHO                                    :  0.100E+01*SUN;
+{ 34759} GHN504w+HV               =       GND400G +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 34760} G3H5025 +GHO2               =  0.800GGH501i + 0.200GAH501o + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 34761} G3H5025 +GNO                =       GND400G +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 34762} G3H5025 +GNO2               =       GPH501o                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 34763} G3H5025 +GNO3               =       GND400G +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 34764} G3H5025 +MEPERO             =  0.685GND400G + 0.315GAH501o + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34765} G3H5025 +PERO1              =  0.800GND400G + 0.200GAH501o + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34766} G3H5025 +PERO2              =  0.750GND400G + 0.250GAH501o + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34767} G3H5025 +PERO3              =  0.800GND400G + 0.200GAH501o + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34768} G3H5025 +PERO5              =  0.650GND400G + 0.350GAH501o + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34769} G3H5025 +PERO6              =  0.650GND400G + 0.350GAH501o + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34770} G3H5025 +PERO9              =       GND400G +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 34771} G1H508Z                     =       GHD400K +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4576., 0.0);
+{ 34772} G1N506R                     =       G3N3002 +      GDD2000                                : ARR( 0.200E+15,  4916., 0.0);
+{ 34773} GNN502m +GHO                =       GNN5038 +      GNO2                                   : ARR( 0.560E-13,     0., 0.0);
+{ 34774} GNN502m +GHO                =       GNN502o +      GNO2                                   : ARR( 0.438E-13,     0., 0.0);
+{ 34775} GNN502m+HV               =       G1N5057 +      GNO2                                   :  0.200E+01*SUN;
+{ 34776} GNN502m+HV               =       G3N2000 +      GND3003 +      GNO2                    :  0.100E+01*SUN;
+{ 34777} GNN502m+HV               =       G1N504J +      GNO2                                   :  0.100E+01*SUN;
+{ 34778} GNN502m+HV               =       G3N400L +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{ 34779} GHN504x +GHO                =       GNN502o +      GHO                                    : ARR( 0.154E-10,     0., 0.0);
+{ 34780} GHN504x +GHO                =       G2N503p                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 34781} GHN504x+HV               =       G1H508a +      GNO2                                   :  0.200E+01*SUN;
+{ 34782} GHN504x+HV               =       G3N2000 +      GND3003 +      GHO                     :  0.100E+01*SUN;
+{ 34783} GHN504x+HV               =       G1N504J +      GHO                                    :  0.100E+01*SUN;
+{ 34784} GHN504x+HV               =       G3H400R +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{ 34785} G1H508a                     =       G3H400R +      GCH2O                                  : ARR( 0.200E+15,  4349., 0.0);
+{ 34786} GNN502n +GHO                =       GNN502o +      GHO2                                   : ARR( 0.403E-11,     0., 0.0);
+{ 34787} GNN502n+HV               =       G1N506S +      GNO2                                   :  0.200E+01*SUN;
+{ 34788} GNN502n+HV               =       G3N2000 +      GND3003 +      GHO2                    :  0.100E+01*SUN;
+{ 34789} GNN502n+HV               =       G3N400R +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{ 34790} G1N506S                     =       G3N400R +      GCH2O                                  : ARR( 0.200E+15,  4349., 0.0);
+{ 34791} GNN502o +GHO                =       GND501J +      GNO2                                   : ARR( 0.560E-13,     0., 0.0);
+{ 34792} GNN502o+HV               =       G1N505C +      GNO2                                   :  0.200E+01*SUN;
+{ 34793} GNN502o+HV               =  2.000G3N2000 +      GCO                                    :  0.200E+01*SUN;
+{ 34794} GHN504y +GHO                =       GNN502m +      GHO                                    : ARR( 0.169E-11,     0., 0.0);
+{ 34795} GHN504y +GHO                =       G2N503q                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 34796} GHN504y+HV               =       G1H508b +      GNO2                                   :  0.100E+01*SUN;
+{ 34797} GHN504y+HV               =       G3N2000 +      GHN3007 +      GNO2                    :  0.100E+01*SUN;
+{ 34798} GHN504y+HV               =       GNN3006 +      GDD2000 +      GHO     +      GNO2     :  0.100E+01*SUN;
+{ 34799} GHN504y+HV               =       G1H508c +      GNO2                                   :  0.100E+01*SUN;
+{ 34800} GHN504y+HV               =       G1N504K +      GHO                                    :  0.100E+01*SUN;
+{ 34801} GHN504y+HV               =       G1H508d +      GNO2                                   :  0.100E+01*SUN;
+{ 34802} G1H508b                     =       G3H400a +      GCH2O                                  : ARR( 0.200E+15,  3640., 0.0);
+{ 34803} G1H508c                     =       GHN3007 +      G3N2000                                : ARR( 0.200E+15,  2890., 0.0);
+{ 34804} G1H508d +OXYGEN             =       GHN505q +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 34805} G1H508d                     =       GNN400G +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5636., 0.0);
+{ 34806} G3H400a +GHO2               =  0.800GGH400M + 0.200GAH400N + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 34807} G3H400a +GNO                =       GHN3007 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 34808} G3H400a +GNO2               =       GPH400N                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 34809} G3H400a +GNO3               =       GHN3007 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 34810} G3H400a +MEPERO             =  0.685GHN3007 + 0.315GAH400N + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34811} G3H400a +PERO1              =  0.800GHN3007 + 0.200GAH400N + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34812} G3H400a +PERO2              =  0.750GHN3007 + 0.250GAH400N + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34813} G3H400a +PERO3              =  0.800GHN3007 + 0.200GAH400N + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34814} G3H400a +PERO5              =  0.650GHN3007 + 0.350GAH400N + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34815} G3H400a +PERO6              =  0.650GHN3007 + 0.350GAH400N + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34816} G3H400a +PERO9              =       GHN3007 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 34817} GHN504z +GHO                =       GHN5051 +      GHO2                                   : ARR( 0.632E-11,     0., 0.0);
+{ 34818} GHN504z +GHO                =       GNN502n +      GHO                                    : ARR( 0.263E-10,     0., 0.0);
+{ 34819} GHN504z +GHO                =       G2N503r                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 34820} GHN504z+HV               =       G1H508e +      GNO2                                   :  0.100E+01*SUN;
+{ 34821} GHN504z+HV               =       G3N2000 +      GHN3007 +      GHO2                    :  0.100E+01*SUN;
+{ 34822} GHN504z+HV               =       G1N504N +      GHO                                    :  0.100E+01*SUN;
+{ 34823} GHN504z+HV               =       G1H508f +      GNO2                                   :  0.100E+01*SUN;
+{ 34824} G1H508e                     =       G3H400b +      GCH2O                                  : ARR( 0.200E+15,  3603., 0.0);
+{ 34825} G1H508f +OXYGEN             =       GHN506C +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 34826} G1H508f                     =       GND400E +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5636., 0.0);
+{ 34827} G3H400b +GHO2               =  0.800GGH400O + 0.200GAH400R + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 34828} G3H400b +GNO                =       GHN3007 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 34829} G3H400b +GNO2               =       GPH400R                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 34830} G3H400b +GNO3               =       GHN3007 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 34831} G3H400b +MEPERO             =  0.685GHN3007 + 0.315GAH400R + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34832} G3H400b +PERO1              =  0.800GHN3007 + 0.200GAH400R + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34833} G3H400b +PERO2              =  0.750GHN3007 + 0.250GAH400R + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34834} G3H400b +PERO3              =  0.800GHN3007 + 0.200GAH400R + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34835} G3H400b +PERO5              =  0.650GHN3007 + 0.350GAH400R + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34836} G3H400b +PERO6              =  0.650GHN3007 + 0.350GAH400R + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 34837} G3H400b +PERO9              =       GHN3007 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 34838} GHN5051 +GHO                =       GNN502o +      GHO                                    : ARR( 0.513E-11,     0., 0.0);
+{ 34839} GHN5051 +GHO                =       G2N503s                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 34840} GHN5051+HV               =       G1H508g +      GNO2                                   :  0.100E+01*SUN;
+{ 34841} GHN5051+HV               =       G3N2000 +      G3H3002                                :  0.100E+01*SUN;
+{ 34842} GHN5051+HV               =       G1N504O +      GHO                                    :  0.100E+01*SUN;
+{ 34843} GHN5051+HV               =       G1H508h +      GNO2                                   :  0.100E+01*SUN;
+{ 34844} G1H508g                     =       G3H3002 +      GCH2O   +      GCO                     : ARR( 0.200E+15,  3897., 0.0);
+{ 34845} G1H508h +OXYGEN             =       GHN506F +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 34846} G1H508h                     =       GND400M +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5364., 0.0);
+{ 34847} GHN5052 +GHO                =       GHN506a +      GHO2                                   : ARR( 0.407E-11,     0., 0.0);
+{ 34848} GHN5052 +GHO                =       GHN503Z +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 34849} GHN5052 +GHO                =       GNN503E +      GHO                                    : ARR( 0.834E-11,     0., 0.0);
+{ 34850} GHN5052 +GHO                =       G2N505O                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 34851} GHN5052+HV               =       G1N505P +      GHO                                    :  0.100E+01*SUN;
+{ 34852} GHN5052+HV               =       G1H506U +      GNO2                                   :  0.100E+01*SUN;
+{ 34853} GHN5052+HV               =       G1H506v +      GNO2                                   :  0.100E+01*SUN;
+{ 34854} G2N505O +GNO                =       G1N505P +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 34855} G2N505O +GNO                =       GNN5028                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 34856} G2N505O +GHO2               =       GHN5052                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 34857} G2N505O +GNO3               =       G1N505P +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 34858} G2N505O +MEPERO             =  0.340G1N505P + 0.330GNN502p + 0.330GNN503E                 : ARR( 0.565E-13,  -845., 0.0);
+{ 34859} G2N505O +PERO1              =  0.460G1N505P + 0.270GNN502p + 0.270GNN503E                 : ARR( 0.434E-13,  -900., 0.0);
+{ 34860} G2N505O +PERO2              =  0.400G1N505P + 0.300GNN502p + 0.300GNN503E                 : ARR( 0.162E-13, -1400., 0.0);
+{ 34861} G2N505O +PERO3              =  0.460G1N505P + 0.270GNN502p + 0.270GNN503E                 : ARR( 0.488E-13, -1250., 0.0);
+{ 34862} G2N505O +PERO5              =  0.460G1N505P + 0.270GNN502p + 0.270GNN503E                 : ARR( 0.183E-11,   450., 0.0);
+{ 34863} G2N505O +PERO6              =  0.300G1N505P + 0.350GNN502p + 0.350GNN503E                 : ARR( 0.168E-13, -1300., 0.0);
+{ 34864} G2N505O +PERO9              =  0.650G1N505P + 0.350GNN503E                                : ARR( 0.100E-10,     0., 0.0);
+{ 34865} GHN400v +GHO                =       GNN400a +      GHO                                    : ARR( 0.504E-11,     0., 0.0);
+{ 34866} GHN400v +GHO                =       G3H400Z                                               : ARR( 0.208E-10,     0., 0.0);
+{ 34867} GHN400v +GHO                =       G2N4014                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 34868} GHN400v +GNO3               =       G3H400Z +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 34869} GHN400v+HV               =       G1H401W +      GNO2                                   :  0.100E+01*SUN;
+{ 34870} GHN400v+HV               =       G1H401X +      GNO2                                   :  0.100E+01*SUN;
+{ 34871} GHN400v+HV               =       G1N400w +      GHO                                    :  0.100E+01*SUN;
+{ 34872} GHN400v+HV               =       GNN3005 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 34873} G2N4014 +GNO                =       G1N400w +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 34874} G2N4014 +GNO                =       GNN400D                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 34875} G2N4014 +GHO2               =       GHN400v                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 34876} G2N4014 +GNO3               =       G1N400w +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 34877} G2N4014 +MEPERO             =  0.340G1N400w + 0.330GNN400T + 0.330GNN400a                 : ARR( 0.565E-13,  -845., 0.0);
+{ 34878} G2N4014 +PERO1              =  0.460G1N400w + 0.270GNN400T + 0.270GNN400a                 : ARR( 0.434E-13,  -900., 0.0);
+{ 34879} G2N4014 +PERO2              =  0.400G1N400w + 0.300GNN400T + 0.300GNN400a                 : ARR( 0.162E-13, -1400., 0.0);
+{ 34880} G2N4014 +PERO3              =  0.460G1N400w + 0.270GNN400T + 0.270GNN400a                 : ARR( 0.488E-13, -1250., 0.0);
+{ 34881} G2N4014 +PERO5              =  0.460G1N400w + 0.270GNN400T + 0.270GNN400a                 : ARR( 0.183E-11,   450., 0.0);
+{ 34882} G2N4014 +PERO6              =  0.300G1N400w + 0.350GNN400T + 0.350GNN400a                 : ARR( 0.168E-13, -1300., 0.0);
+{ 34883} G2N4014 +PERO9              =  0.650G1N400w + 0.350GNN400a                                : ARR( 0.100E-10,     0., 0.0);
+{ 34884} G1H401W +OXYGEN             =       GHN400y +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 34885} G1H401W                     =       G3H400G                                               : ARR( 0.800E+11,  4559., 0.0);
+{ 34886} G1H401W                     =       GHD3004 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7175., 0.0);
+{ 34887} G1H401X                     =       GND2000 +      GDD2000 +      GHO                     : ARR( 0.200E+15,  4974., 0.0);
+{ 34888} GHN5053 +GHO                =       GHN505J +      GHO2                                   : ARR( 0.173E-11,     0., 0.0);
+{ 34889} GHN5053 +GHO                =       GNN502r +      GHO                                    : ARR( 0.177E-11,     0., 0.0);
+{ 34890} GHN5053 +GHO                =       G2N505P                                               : ARR( 0.204E-11,  -190., 0.0);
+{ 34891} GHN5053+HV               =       G1H503s +      GNO2                                   :  0.200E+01*SUN;
+{ 34892} GHN5053+HV               =       G1N505U +      GHO                                    :  0.100E+01*SUN;
+{ 34893} G2N505P +GNO                =       G1N505U +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 34894} G2N505P +GNO                =       GNN502A                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 34895} G2N505P +GHO2               =       GHN5053                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 34896} G2N505P +GNO3               =       G1N505U +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 34897} G2N505P +MEPERO             =  0.340G1N505U + 0.330GNN502q + 0.330GNN502r                 : ARR( 0.565E-13,  -845., 0.0);
+{ 34898} G2N505P +PERO1              =  0.460G1N505U + 0.270GNN502q + 0.270GNN502r                 : ARR( 0.434E-13,  -900., 0.0);
+{ 34899} G2N505P +PERO2              =  0.400G1N505U + 0.300GNN502q + 0.300GNN502r                 : ARR( 0.162E-13, -1400., 0.0);
+{ 34900} G2N505P +PERO3              =  0.460G1N505U + 0.270GNN502q + 0.270GNN502r                 : ARR( 0.488E-13, -1250., 0.0);
+{ 34901} G2N505P +PERO5              =  0.460G1N505U + 0.270GNN502q + 0.270GNN502r                 : ARR( 0.183E-11,   450., 0.0);
+{ 34902} G2N505P +PERO6              =  0.300G1N505U + 0.350GNN502q + 0.350GNN502r                 : ARR( 0.168E-13, -1300., 0.0);
+{ 34903} G2N505P +PERO9              =  0.650G1N505U + 0.350GNN502r                                : ARR( 0.100E-10,     0., 0.0);
+{ 34904} GNN502p +GHO                =       GNN503I +      GHO2                                   : ARR( 0.413E-11,     0., 0.0);
+{ 34905} GNN502p +GHO                =       GNN502O +      GHO2                                   : ARR( 0.106E-10,     0., 0.0);
+{ 34906} GNN502p +GHO                =       GNN503E +      GHO2                                   : ARR( 0.212E-11,     0., 0.0);
+{ 34907} GNN502p+HV               =       G1N505t +      GNO2                                   :  0.100E+01*SUN;
+{ 34908} GNN502p+HV               =       G1N505y +      GNO2                                   :  0.100E+01*SUN;
+{ 34909} GNN502q +GHO                =       GNN502u +      GHO2                                   : ARR( 0.161E-11,     0., 0.0);
+{ 34910} GNN502q +GHO                =       GNK5015 +      GNO2                                   : ARR( 0.236E-12,     0., 0.0);
+{ 34911} GNN502q +GHO                =       GNN502r +      GHO2                                   : ARR( 0.412E-12,     0., 0.0);
+{ 34912} GNN502q +GHO                =       G1N506P                                               : ARR( 0.420E-17,    85., 2.0);
+{ 34913} GNN502q +GHO                =       G1N505U                                               : ARR( 0.210E-17,    85., 2.0);
+{ 34914} GNN502q+HV               =       G1N504R +      GNO2                                   :  0.200E+01*SUN;
+{ 34915} GGH500j +GHO                =       GGN500m +      GHO                                    : ARR( 0.165E-10,     0., 0.0);
+{ 34916} GGH500j +GHO                =       G2G501i                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 34917} GGH500j +GHO                =       G3H500W                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 34918} GGH500j+HV               =       G1G500b +      GHO                                    :  0.100E+01*SUN;
+{ 34919} GGH500j+HV               =       G1G5026 +      GNO2                                   :  0.100E+01*SUN;
+{ 34920} GGH500j+HV               =       G2H400a +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 34921} G2G501i +GNO                =       G1G500b +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 34922} G2G501i +GNO                =       GGN5007                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 34923} G2G501i +GHO2               =       GGH500j                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 34924} G2G501i +GNO3               =       G1G500b +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 34925} G2G501i +MEPERO             =  0.480G1G500b + 0.260GGN500l + 0.260GGN500m                 : ARR( 0.146E-12,  -445., 0.0);
+{ 34926} G2G501i +PERO1              =  0.600G1G500b + 0.200GGN500l + 0.200GGN500m                 : ARR( 0.112E-12,  -500., 0.0);
+{ 34927} G2G501i +PERO2              =  0.560G1G500b + 0.220GGN500l + 0.220GGN500m                 : ARR( 0.418E-13, -1000., 0.0);
+{ 34928} G2G501i +PERO3              =  0.600G1G500b + 0.200GGN500l + 0.200GGN500m                 : ARR( 0.126E-12,  -850., 0.0);
+{ 34929} G2G501i +PERO5              =  0.600G1G500b + 0.200GGN500l + 0.200GGN500m                 : ARR( 0.473E-11,   850., 0.0);
+{ 34930} G2G501i +PERO6              =  0.460G1G500b + 0.270GGN500l + 0.270GGN500m                 : ARR( 0.434E-13,  -900., 0.0);
+{ 34931} G2G501i +PERO9              =  0.800G1G500b + 0.200GGN500m                                : ARR( 0.100E-10,     0., 0.0);
+{ 34932} G1G5026                     =       G2H2000 +      GGD3000                                : ARR( 0.200E+15,  6436., 0.0);
+{ 34933} G1G5026                     =       GHD3000 +      G2G2000                                : ARR( 0.200E+15,  7196., 0.0);
+{ 34934} GHH400Z +GHO                =       GHN400G +      GHO                                    : ARR( 0.163E-10,     0., 0.0);
+{ 34935} GHH400Z +GHO                =       GHN400M +      GHO                                    : ARR( 0.327E-11,     0., 0.0);
+{ 34936} GHH400Z +GHO                =       G2H400c                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 34937} GHH400Z +GHO                =       G2H400a                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 34938} GHH400Z+HV               =       G1H400g +      GHO                                    :  0.100E+01*SUN;
+{ 34939} GHH400Z+HV               =       G1H401Y +      GNO2                                   :  0.100E+01*SUN;
+{ 34940} GHH400Z+HV               =       G1H400e +      GHO                                    :  0.100E+01*SUN;
+{ 34941} G1H401Y                     =       G2H2000 +      GHD2000                                : ARR( 0.200E+15,  7134., 0.0);
+{ 34942} G1H401Y                     =       GHD3000 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  7140., 0.0);
+{ 34943} GHN5054 +GHO                =       GNN502t +      GHO                                    : ARR( 0.325E-11,     0., 0.0);
+{ 34944} GHN5054 +GHO                =       G3H5026                                               : ARR( 0.210E-10,     0., 0.0);
+{ 34945} GHN5054 +GHO                =       G2N505Q                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 34946} GHN5054 +GNO3               =       G3H5026 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 34947} GHN5054+HV               =       G1N505I +      GHO                                    :  0.100E+01*SUN;
+{ 34948} GHN5054+HV               =       G1H508i +      GNO2                                   :  0.100E+01*SUN;
+{ 34949} GHN5054+HV               =       G1H508j +      GNO2                                   :  0.100E+01*SUN;
+{ 34950} GHN5054+HV               =       G2H4017 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 34951} GHN5054+HV               =       GHD3001 +      GD02000 + 2.000GNO2                    :  0.100E+01*SUN;
+{ 34952} G3H5026 +GHO2               =  0.800GGH502f + 0.200GAH502q + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 34953} G3H5026 +GNO                =       G2H4017 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 34954} G3H5026 +GNO2               =       GPH5026                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 34955} G3H5026 +GNO3               =       G2H4017 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 34956} G3H5026 +MEPERO             =  0.685G2H4017 + 0.315GAH502q + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 34957} G3H5026 +PERO1              =  0.800G2H4017 + 0.200GAH502q + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 34958} G3H5026 +PERO2              =  0.750G2H4017 + 0.250GAH502q + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 34959} G3H5026 +PERO3              =  0.800G2H4017 + 0.200GAH502q + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 34960} G3H5026 +PERO5              =  0.650G2H4017 + 0.350GAH502q + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 34961} G3H5026 +PERO6              =  0.650G2H4017 + 0.350GAH502q + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 34962} G3H5026 +PERO9              =       G2H4017 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 34963} G2N505Q +GNO                =       G1N505I +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 34964} G2N505Q +GNO                =       GNN5025                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 34965} G2N505Q +GHO2               =       GHN5054                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 34966} G2N505Q +GNO3               =       G1N505I +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 34967} G2N505Q +MEPERO             =  0.480G1N505I + 0.260GNN502S + 0.260GNN502t                 : ARR( 0.164E-12,  -795., 0.0);
+{ 34968} G2N505Q +PERO1              =  0.600G1N505I + 0.200GNN502S + 0.200GNN502t                 : ARR( 0.126E-12,  -850., 0.0);
+{ 34969} G2N505Q +PERO2              =  0.560G1N505I + 0.220GNN502S + 0.220GNN502t                 : ARR( 0.471E-13, -1350., 0.0);
+{ 34970} G2N505Q +PERO3              =  0.600G1N505I + 0.200GNN502S + 0.200GNN502t                 : ARR( 0.142E-12, -1200., 0.0);
+{ 34971} G2N505Q +PERO5              =  0.600G1N505I + 0.200GNN502S + 0.200GNN502t                 : ARR( 0.533E-11,   500., 0.0);
+{ 34972} G2N505Q +PERO6              =  0.460G1N505I + 0.270GNN502S + 0.270GNN502t                 : ARR( 0.488E-13, -1250., 0.0);
+{ 34973} G2N505Q +PERO9              =  0.800G1N505I + 0.200GNN502t                                : ARR( 0.100E-10,     0., 0.0);
+{ 34974} G1H508i                     =       G3H500E                                               : ARR( 0.800E+11,  4559., 0.0);
+{ 34975} G1H508i                     =       GCH2O   +      GND400D +      GHO                     : ARR( 0.200E+15,  7395., 0.0);
+{ 34976} G1H508i                     =       GHD2000 +      GDD3000 +      GNO2                    : ARR( 0.200E+15,  6367., 0.0);
+{ 34977} G1H508j                     =       GHD2000 +      GDD3000 +      GNO2                    : ARR( 0.200E+15,  5685., 0.0);
+{ 34978} G2H4017 +GNO                =       G1H401Z +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 34979} G2H4017 +GNO                =       GHN4015                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 34980} G2H4017 +GHO2               =       GHH400s                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 34981} G2H4017 +GNO3               =       G1H401Z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 34982} G2H4017 +MEPERO             =  0.480G1H401Z + 0.260GHN400o + 0.260GHN4013                 : ARR( 0.164E-12,  -795., 0.0);
+{ 34983} G2H4017 +PERO1              =  0.600G1H401Z + 0.200GHN400o + 0.200GHN4013                 : ARR( 0.126E-12,  -850., 0.0);
+{ 34984} G2H4017 +PERO2              =  0.560G1H401Z + 0.220GHN400o + 0.220GHN4013                 : ARR( 0.471E-13, -1350., 0.0);
+{ 34985} G2H4017 +PERO3              =  0.600G1H401Z + 0.200GHN400o + 0.200GHN4013                 : ARR( 0.142E-12, -1200., 0.0);
+{ 34986} G2H4017 +PERO5              =  0.600G1H401Z + 0.200GHN400o + 0.200GHN4013                 : ARR( 0.533E-11,   500., 0.0);
+{ 34987} G2H4017 +PERO6              =  0.460G1H401Z + 0.270GHN400o + 0.270GHN4013                 : ARR( 0.488E-13, -1250., 0.0);
+{ 34988} G2H4017 +PERO9              =  0.800G1H401Z + 0.200GHN4013                                : ARR( 0.100E-10,     0., 0.0);
+{ 34989} G1H401Z                     =       GNN400E +      GHO                                    : ARR( 0.160E+12,  2905., 0.0);
+{ 34990} GHH501l +GHO                =       GHN505H +      GHO                                    : ARR( 0.163E-10,     0., 0.0);
+{ 34991} GHH501l +GHO                =       GHN5047 +      GHO                                    : ARR( 0.833E-11,     0., 0.0);
+{ 34992} GHH501l +GHO                =       G3H5027                                               : ARR( 0.210E-10,     0., 0.0);
+{ 34993} GHH501l +GHO                =       G2H502y                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 34994} GHH501l +GHO                =       G2H502z                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 34995} GHH501l +GNO3               =       G3H5027 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 34996} GHH501l+HV               =       G1H505R +      GHO                                    :  0.100E+01*SUN;
+{ 34997} GHH501l+HV               =       G1H508i +      GHO                                    :  0.100E+01*SUN;
+{ 34998} GHH501l+HV               =       G1H508k +      GNO2                                   :  0.100E+01*SUN;
+{ 34999} GHH501l+HV               =       G2H4018 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 35000} GHH501l+HV               =       GHD3001 +      GD02000 +      GNO2    +      GHO      :  0.100E+01*SUN;
+{ 35001} G3H5027 +GHO2               =  0.800GGH502g + 0.200GAH502r + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 35002} G3H5027 +GNO                =       G2H4018 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 35003} G3H5027 +GNO2               =       GPH5031                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 35004} G3H5027 +GNO3               =       G2H4018 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 35005} G3H5027 +MEPERO             =  0.685G2H4018 + 0.315GAH502r + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 35006} G3H5027 +PERO1              =  0.800G2H4018 + 0.200GAH502r + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 35007} G3H5027 +PERO2              =  0.750G2H4018 + 0.250GAH502r + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 35008} G3H5027 +PERO3              =  0.800G2H4018 + 0.200GAH502r + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 35009} G3H5027 +PERO5              =  0.650G2H4018 + 0.350GAH502r + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 35010} G3H5027 +PERO6              =  0.650G2H4018 + 0.350GAH502r + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 35011} G3H5027 +PERO9              =       G2H4018 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 35012} G2H502y +GNO                =       G1H505R +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 35013} G2H502y +GNO                =       GHN5034                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 35014} G2H502y +GHO2               =       GHH501l                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 35015} G2H502y +GNO3               =       G1H505R +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 35016} G2H502y +MEPERO             =  0.480G1H505R + 0.260GHN505G + 0.260GHN505H                 : ARR( 0.164E-12,  -795., 0.0);
+{ 35017} G2H502y +PERO1              =  0.600G1H505R + 0.200GHN505G + 0.200GHN505H                 : ARR( 0.126E-12,  -850., 0.0);
+{ 35018} G2H502y +PERO2              =  0.560G1H505R + 0.220GHN505G + 0.220GHN505H                 : ARR( 0.471E-13, -1350., 0.0);
+{ 35019} G2H502y +PERO3              =  0.600G1H505R + 0.200GHN505G + 0.200GHN505H                 : ARR( 0.142E-12, -1200., 0.0);
+{ 35020} G2H502y +PERO5              =  0.600G1H505R + 0.200GHN505G + 0.200GHN505H                 : ARR( 0.533E-11,   500., 0.0);
+{ 35021} G2H502y +PERO6              =  0.460G1H505R + 0.270GHN505G + 0.270GHN505H                 : ARR( 0.488E-13, -1250., 0.0);
+{ 35022} G2H502y +PERO9              =  0.800G1H505R + 0.200GHN505H                                : ARR( 0.100E-10,     0., 0.0);
+{ 35023} G2H502z +GNO                =       G1H508i +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 35024} G2H502z +GNO                =       GHN5054                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 35025} G2H502z +GHO2               =       GHH501l                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 35026} G2H502z +GNO3               =       G1H508i +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 35027} G2H502z +MEPERO             =  0.340G1H508i + 0.330GHN501G + 0.330GHN5047                 : ARR( 0.565E-13,  -845., 0.0);
+{ 35028} G2H502z +PERO1              =  0.460G1H508i + 0.270GHN501G + 0.270GHN5047                 : ARR( 0.434E-13,  -900., 0.0);
+{ 35029} G2H502z +PERO2              =  0.400G1H508i + 0.300GHN501G + 0.300GHN5047                 : ARR( 0.162E-13, -1400., 0.0);
+{ 35030} G2H502z +PERO3              =  0.460G1H508i + 0.270GHN501G + 0.270GHN5047                 : ARR( 0.488E-13, -1250., 0.0);
+{ 35031} G2H502z +PERO5              =  0.460G1H508i + 0.270GHN501G + 0.270GHN5047                 : ARR( 0.183E-11,   450., 0.0);
+{ 35032} G2H502z +PERO6              =  0.300G1H508i + 0.350GHN501G + 0.350GHN5047                 : ARR( 0.168E-13, -1300., 0.0);
+{ 35033} G2H502z +PERO9              =  0.650G1H508i + 0.350GHN5047                                : ARR( 0.100E-10,     0., 0.0);
+{ 35034} G1H508k                     =       GHD2000 +      GDD3000 +      GHO                     : ARR( 0.200E+15,  4146., 0.0);
+{ 35035} G2H4018 +GNO                =       G1H401a +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 35036} G2H4018 +GNO                =       GHH400q                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 35037} G2H4018 +GHO2               =       GHH400t                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 35038} G2H4018 +GNO3               =       G1H401a +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 35039} G2H4018 +MEPERO             =  0.480G1H401a + 0.260GHH400O + 0.260GHH400u                 : ARR( 0.164E-12,  -795., 0.0);
+{ 35040} G2H4018 +PERO1              =  0.600G1H401a + 0.200GHH400O + 0.200GHH400u                 : ARR( 0.126E-12,  -850., 0.0);
+{ 35041} G2H4018 +PERO2              =  0.560G1H401a + 0.220GHH400O + 0.220GHH400u                 : ARR( 0.471E-13, -1350., 0.0);
+{ 35042} G2H4018 +PERO3              =  0.600G1H401a + 0.200GHH400O + 0.200GHH400u                 : ARR( 0.142E-12, -1200., 0.0);
+{ 35043} G2H4018 +PERO5              =  0.600G1H401a + 0.200GHH400O + 0.200GHH400u                 : ARR( 0.533E-11,   500., 0.0);
+{ 35044} G2H4018 +PERO6              =  0.460G1H401a + 0.270GHH400O + 0.270GHH400u                 : ARR( 0.488E-13, -1250., 0.0);
+{ 35045} G2H4018 +PERO9              =  0.800G1H401a + 0.200GHH400u                                : ARR( 0.100E-10,     0., 0.0);
+{ 35046} G1H401a                     =       GHN400h +      GHO                                    : ARR( 0.160E+12,  2186., 0.0);
+{ 35047} GHH501m +GHO                =       GHN505I +      GHO                                    : ARR( 0.327E-11,     0., 0.0);
+{ 35048} GHH501m +GHO                =       GHN5059 +      GHO                                    : ARR( 0.266E-10,     0., 0.0);
+{ 35049} GHH501m +GHO                =       G3H5028                                               : ARR( 0.211E-10,     0., 0.0);
+{ 35050} GHH501m +GHO                =       G2H5031                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 35051} GHH501m +GHO                =       G2H5032                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 35052} GHH501m +GNO3               =       G3H5028 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 35053} GHH501m+HV               =       G1H5088 +      GHO                                    :  0.100E+01*SUN;
+{ 35054} GHH501m+HV               =       G1H508l +      GNO2                                   :  0.100E+01*SUN;
+{ 35055} GHH501m+HV               =       G1H508j +      GHO                                    :  0.100E+01*SUN;
+{ 35056} GHH501m+HV               =       G2H4019 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 35057} GHH501m+HV               =       GHD3001 +      GD02000 +      GHO     +      GNO2     :  0.100E+01*SUN;
+{ 35058} G3H5028 +GHO2               =  0.800GGH502h + 0.200GAH502s + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 35059} G3H5028 +GNO                =       G2H4019 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 35060} G3H5028 +GNO2               =       GPH5032                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 35061} G3H5028 +GNO3               =       G2H4019 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 35062} G3H5028 +MEPERO             =  0.685G2H4019 + 0.315GAH502s + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 35063} G3H5028 +PERO1              =  0.800G2H4019 + 0.200GAH502s + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 35064} G3H5028 +PERO2              =  0.750G2H4019 + 0.250GAH502s + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 35065} G3H5028 +PERO3              =  0.800G2H4019 + 0.200GAH502s + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 35066} G3H5028 +PERO5              =  0.650G2H4019 + 0.350GAH502s + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 35067} G3H5028 +PERO6              =  0.650G2H4019 + 0.350GAH502s + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 35068} G3H5028 +PERO9              =       G2H4019 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 35069} G2H5031 +GNO                =       G1H5088 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 35070} G2H5031 +GNO                =       GHN504l                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 35071} G2H5031 +GHO2               =       GHH501m                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 35072} G2H5031 +GNO3               =       G1H5088 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 35073} G2H5031 +MEPERO             =  0.480G1H5088 + 0.260GHN505D + 0.260GHN505I                 : ARR( 0.164E-12,  -795., 0.0);
+{ 35074} G2H5031 +PERO1              =  0.600G1H5088 + 0.200GHN505D + 0.200GHN505I                 : ARR( 0.126E-12,  -850., 0.0);
+{ 35075} G2H5031 +PERO2              =  0.560G1H5088 + 0.220GHN505D + 0.220GHN505I                 : ARR( 0.471E-13, -1350., 0.0);
+{ 35076} G2H5031 +PERO3              =  0.600G1H5088 + 0.200GHN505D + 0.200GHN505I                 : ARR( 0.142E-12, -1200., 0.0);
+{ 35077} G2H5031 +PERO5              =  0.600G1H5088 + 0.200GHN505D + 0.200GHN505I                 : ARR( 0.533E-11,   500., 0.0);
+{ 35078} G2H5031 +PERO6              =  0.460G1H5088 + 0.270GHN505D + 0.270GHN505I                 : ARR( 0.488E-13, -1250., 0.0);
+{ 35079} G2H5031 +PERO9              =  0.800G1H5088 + 0.200GHN505I                                : ARR( 0.100E-10,     0., 0.0);
+{ 35080} G2H5032 +GNO                =       G1H508j +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 35081} G2H5032 +GNO                =       GHN5054                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 35082} G2H5032 +GHO2               =       GHH501m                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 35083} G2H5032 +GNO3               =       G1H508j +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 35084} G2H5032 +MEPERO             =  0.340G1H508j + 0.330GHN5055 + 0.330GHN5059                 : ARR( 0.565E-13,  -845., 0.0);
+{ 35085} G2H5032 +PERO1              =  0.460G1H508j + 0.270GHN5055 + 0.270GHN5059                 : ARR( 0.434E-13,  -900., 0.0);
+{ 35086} G2H5032 +PERO2              =  0.400G1H508j + 0.300GHN5055 + 0.300GHN5059                 : ARR( 0.162E-13, -1400., 0.0);
+{ 35087} G2H5032 +PERO3              =  0.460G1H508j + 0.270GHN5055 + 0.270GHN5059                 : ARR( 0.488E-13, -1250., 0.0);
+{ 35088} G2H5032 +PERO5              =  0.460G1H508j + 0.270GHN5055 + 0.270GHN5059                 : ARR( 0.183E-11,   450., 0.0);
+{ 35089} G2H5032 +PERO6              =  0.300G1H508j + 0.350GHN5055 + 0.350GHN5059                 : ARR( 0.168E-13, -1300., 0.0);
+{ 35090} G2H5032 +PERO9              =  0.650G1H508j + 0.350GHN5059                                : ARR( 0.100E-10,     0., 0.0);
+{ 35091} G1H508l                     =       GHD2000 +      GDD3000 +      GHO                     : ARR( 0.200E+15,  4828., 0.0);
+{ 35092} G2H4019 +GNO                =       G1H401b +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 35093} G2H4019 +GNO                =       GHH400f                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 35094} G2H4019 +GHO2               =       GHH400t                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 35095} G2H4019 +GNO3               =       G1H401b +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 35096} G2H4019 +MEPERO             =  0.480G1H401b + 0.260GHH400v + 0.260GHH400a                 : ARR( 0.164E-12,  -795., 0.0);
+{ 35097} G2H4019 +PERO1              =  0.600G1H401b + 0.200GHH400v + 0.200GHH400a                 : ARR( 0.126E-12,  -850., 0.0);
+{ 35098} G2H4019 +PERO2              =  0.560G1H401b + 0.220GHH400v + 0.220GHH400a                 : ARR( 0.471E-13, -1350., 0.0);
+{ 35099} G2H4019 +PERO3              =  0.600G1H401b + 0.200GHH400v + 0.200GHH400a                 : ARR( 0.142E-12, -1200., 0.0);
+{ 35100} G2H4019 +PERO5              =  0.600G1H401b + 0.200GHH400v + 0.200GHH400a                 : ARR( 0.533E-11,   500., 0.0);
+{ 35101} G2H4019 +PERO6              =  0.460G1H401b + 0.270GHH400v + 0.270GHH400a                 : ARR( 0.488E-13, -1250., 0.0);
+{ 35102} G2H4019 +PERO9              =  0.800G1H401b + 0.200GHH400a                                : ARR( 0.100E-10,     0., 0.0);
+{ 35103} G1H401b                     =       GHN400L +      GHO                                    : ARR( 0.160E+12,  2905., 0.0);
+{ 35104} G1H401b                     =       GHN300A +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{ 35105} GHH501n +GHO                =       GHH502n +      GHO2                                   : ARR( 0.828E-12,     0., 0.0);
+{ 35106} GHH501n +GHO                =       GHN505u +      GHO                                    : ARR( 0.170E-11,     0., 0.0);
+{ 35107} GHH501n +GHO                =       GHN505J +      GHO                                    : ARR( 0.331E-11,     0., 0.0);
+{ 35108} GHH501n +GHO                =       G2H5033                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 35109} GHH501n +GHO                =       G2H5034                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 35110} GHH501n+HV               =       G1H503y +      GNO2                                   :  0.100E+01*SUN;
+{ 35111} GHH501n+HV               =       G1H508m +      GHO                                    :  0.100E+01*SUN;
+{ 35112} GHH501n+HV               =       G1H508n +      GNO2                                   :  0.100E+01*SUN;
+{ 35113} GHH501n+HV               =       G1H508A +      GHO                                    :  0.100E+01*SUN;
+{ 35114} G2H5033 +GNO                =       G1H508m +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 35115} G2H5033 +GNO                =       GHN505f                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 35116} G2H5033 +GHO2               =       GHH501n                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 35117} G2H5033 +GNO3               =       G1H508m +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 35118} G2H5033 +MEPERO             =  0.340G1H508m + 0.330GHN5056 + 0.330GHN505u                 : ARR( 0.565E-13,  -845., 0.0);
+{ 35119} G2H5033 +PERO1              =  0.460G1H508m + 0.270GHN5056 + 0.270GHN505u                 : ARR( 0.434E-13,  -900., 0.0);
+{ 35120} G2H5033 +PERO2              =  0.400G1H508m + 0.300GHN5056 + 0.300GHN505u                 : ARR( 0.162E-13, -1400., 0.0);
+{ 35121} G2H5033 +PERO3              =  0.460G1H508m + 0.270GHN5056 + 0.270GHN505u                 : ARR( 0.488E-13, -1250., 0.0);
+{ 35122} G2H5033 +PERO5              =  0.460G1H508m + 0.270GHN5056 + 0.270GHN505u                 : ARR( 0.183E-11,   450., 0.0);
+{ 35123} G2H5033 +PERO6              =  0.300G1H508m + 0.350GHN5056 + 0.350GHN505u                 : ARR( 0.168E-13, -1300., 0.0);
+{ 35124} G2H5033 +PERO9              =  0.650G1H508m + 0.350GHN505u                                : ARR( 0.100E-10,     0., 0.0);
+{ 35125} G2H5034 +GNO                =       G1H508A +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 35126} G2H5034 +GNO                =       GHN504m                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 35127} G2H5034 +GHO2               =       GHH501n                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 35128} G2H5034 +GNO3               =       G1H508A +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 35129} G2H5034 +MEPERO             =  0.480G1H508A + 0.260GHN5053 + 0.260GHN505J                 : ARR( 0.164E-12,  -795., 0.0);
+{ 35130} G2H5034 +PERO1              =  0.600G1H508A + 0.200GHN5053 + 0.200GHN505J                 : ARR( 0.126E-12,  -850., 0.0);
+{ 35131} G2H5034 +PERO2              =  0.560G1H508A + 0.220GHN5053 + 0.220GHN505J                 : ARR( 0.471E-13, -1350., 0.0);
+{ 35132} G2H5034 +PERO3              =  0.600G1H508A + 0.200GHN5053 + 0.200GHN505J                 : ARR( 0.142E-12, -1200., 0.0);
+{ 35133} G2H5034 +PERO5              =  0.600G1H508A + 0.200GHN5053 + 0.200GHN505J                 : ARR( 0.533E-11,   500., 0.0);
+{ 35134} G2H5034 +PERO6              =  0.460G1H508A + 0.270GHN5053 + 0.270GHN505J                 : ARR( 0.488E-13, -1250., 0.0);
+{ 35135} G2H5034 +PERO9              =  0.800G1H508A + 0.200GHN505J                                : ARR( 0.100E-10,     0., 0.0);
+{ 35136} G1H508m                     =       GDO2000 +      GHN300A +      GNO2                    : ARR( 0.200E+15,  6323., 0.0);
+{ 35137} G1H508m                     =       GND3004 +      GHD2000 +      GNO2                    : ARR( 0.200E+15,  6323., 0.0);
+{ 35138} G1H508n                     =       GHH502o +      GHO2                                   : ARR( 0.160E+12,  3252., 0.0);
+{ 35139} G1H508n                     =       GND3004 +      GHD2000 +      GHO                     : ARR( 0.200E+15,  4695., 0.0);
+{ 35140} GHH501o +GHO                =       GHH502p +      GHO2                                   : ARR( 0.424E-11,     0., 0.0);
+{ 35141} GHH501o +GHO                =       GHH501p +      GHO                                    : ARR( 0.434E-10,     0., 0.0);
+{ 35142} GHH501o +GHO                =       GHH502q +      GHO                                    : ARR( 0.869E-11,     0., 0.0);
+{ 35143} GHH501o +GHO                =       G2H501s                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 35144} GHH501o +GHO                =       G2H5035                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 35145} GHH501o +GHO                =       G2H5036                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 35146} GHH501o+HV               =       G1H503y +      GHO                                    :  0.100E+01*SUN;
+{ 35147} GHH501o+HV               =       G1H508o +      GHO                                    :  0.100E+01*SUN;
+{ 35148} GHH501o+HV               =       G1H508p +      GNO2                                   :  0.100E+01*SUN;
+{ 35149} GHH501o+HV               =       G1H508O +      GHO                                    :  0.100E+01*SUN;
+{ 35150} G2H5035 +GNO                =       G1H508o +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 35151} G2H5035 +GNO                =       GHH502r                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 35152} G2H5035 +GHO2               =       GHH501o                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 35153} G2H5035 +GNO3               =       G1H508o +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 35154} G2H5035 +MEPERO             =  0.340G1H508o + 0.330GHH501t + 0.330GHH502q                 : ARR( 0.565E-13,  -845., 0.0);
+{ 35155} G2H5035 +PERO1              =  0.460G1H508o + 0.270GHH501t + 0.270GHH502q                 : ARR( 0.434E-13,  -900., 0.0);
+{ 35156} G2H5035 +PERO2              =  0.400G1H508o + 0.300GHH501t + 0.300GHH502q                 : ARR( 0.162E-13, -1400., 0.0);
+{ 35157} G2H5035 +PERO3              =  0.460G1H508o + 0.270GHH501t + 0.270GHH502q                 : ARR( 0.488E-13, -1250., 0.0);
+{ 35158} G2H5035 +PERO5              =  0.460G1H508o + 0.270GHH501t + 0.270GHH502q                 : ARR( 0.183E-11,   450., 0.0);
+{ 35159} G2H5035 +PERO6              =  0.300G1H508o + 0.350GHH501t + 0.350GHH502q                 : ARR( 0.168E-13, -1300., 0.0);
+{ 35160} G2H5035 +PERO9              =  0.650G1H508o + 0.350GHH502q                                : ARR( 0.100E-10,     0., 0.0);
+{ 35161} G2H5036 +GNO                =       G1H508O +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 35162} G2H5036 +GNO                =       GHH501g                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 35163} G2H5036 +GHO2               =       GHH501o                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 35164} G2H5036 +GNO3               =       G1H508O +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 35165} G2H5036 +MEPERO             =  0.480G1H508O + 0.260GHH5014 + 0.260GHH501y                 : ARR( 0.164E-12,  -795., 0.0);
+{ 35166} G2H5036 +PERO1              =  0.600G1H508O + 0.200GHH5014 + 0.200GHH501y                 : ARR( 0.126E-12,  -850., 0.0);
+{ 35167} G2H5036 +PERO2              =  0.560G1H508O + 0.220GHH5014 + 0.220GHH501y                 : ARR( 0.471E-13, -1350., 0.0);
+{ 35168} G2H5036 +PERO3              =  0.600G1H508O + 0.200GHH5014 + 0.200GHH501y                 : ARR( 0.142E-12, -1200., 0.0);
+{ 35169} G2H5036 +PERO5              =  0.600G1H508O + 0.200GHH5014 + 0.200GHH501y                 : ARR( 0.533E-11,   500., 0.0);
+{ 35170} G2H5036 +PERO6              =  0.460G1H508O + 0.270GHH5014 + 0.270GHH501y                 : ARR( 0.488E-13, -1250., 0.0);
+{ 35171} G2H5036 +PERO9              =  0.800G1H508O + 0.200GHH501y                                : ARR( 0.100E-10,     0., 0.0);
+{ 35172} G1H508o                     =       GDO2000 +      GHN300A +      GHO                     : ARR( 0.200E+15,  4784., 0.0);
+{ 35173} G1H508p                     =       GHH502b +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{ 35174} G1H508p                     =       GHD3003 +      GHD2000 +      GHO                     : ARR( 0.200E+15,  4695., 0.0);
+{ 35175} GHH501p +GHO                =       GHH502s +      GHO2                                   : ARR( 0.252E-11,     0., 0.0);
+{ 35176} GHH501p +GHO                =       GHN506b +      GHO                                    : ARR( 0.517E-11,     0., 0.0);
+{ 35177} GHH501p +GHO                =       GHN505K +      GHO                                    : ARR( 0.331E-11,     0., 0.0);
+{ 35178} GHH501p +GHO                =       G2H5037                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 35179} GHH501p +GHO                =       G2H5038                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 35180} GHH501p+HV               =       G3K2001 +      GHN300A +      GHO                     :  0.100E+01*SUN;
+{ 35181} GHH501p+HV               =       G1H508q +      GHO                                    :  0.100E+01*SUN;
+{ 35182} GHH501p+HV               =       G1H508r +      GNO2                                   :  0.100E+01*SUN;
+{ 35183} GHH501p+HV               =       G1H506G +      GHO                                    :  0.100E+01*SUN;
+{ 35184} G2H5037 +GNO                =       G1H508q +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 35185} G2H5037 +GNO                =       GHN506c                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 35186} G2H5037 +GHO2               =       GHH501p                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 35187} G2H5037 +GNO3               =       G1H508q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 35188} G2H5037 +MEPERO             =  0.340G1H508q + 0.330GHN5057 + 0.330GHN506b                 : ARR( 0.565E-13,  -845., 0.0);
+{ 35189} G2H5037 +PERO1              =  0.460G1H508q + 0.270GHN5057 + 0.270GHN506b                 : ARR( 0.434E-13,  -900., 0.0);
+{ 35190} G2H5037 +PERO2              =  0.400G1H508q + 0.300GHN5057 + 0.300GHN506b                 : ARR( 0.162E-13, -1400., 0.0);
+{ 35191} G2H5037 +PERO3              =  0.460G1H508q + 0.270GHN5057 + 0.270GHN506b                 : ARR( 0.488E-13, -1250., 0.0);
+{ 35192} G2H5037 +PERO5              =  0.460G1H508q + 0.270GHN5057 + 0.270GHN506b                 : ARR( 0.183E-11,   450., 0.0);
+{ 35193} G2H5037 +PERO6              =  0.300G1H508q + 0.350GHN5057 + 0.350GHN506b                 : ARR( 0.168E-13, -1300., 0.0);
+{ 35194} G2H5037 +PERO9              =  0.650G1H508q + 0.350GHN506b                                : ARR( 0.100E-10,     0., 0.0);
+{ 35195} G2H5038 +GNO                =       G1H506G +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 35196} G2H5038 +GNO                =       GHN503Z                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 35197} G2H5038 +GHO2               =       GHH501p                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 35198} G2H5038 +GNO3               =       G1H506G +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 35199} G2H5038 +MEPERO             =  0.480G1H506G + 0.260GHN504E + 0.260GHN505K                 : ARR( 0.164E-12,  -795., 0.0);
+{ 35200} G2H5038 +PERO1              =  0.600G1H506G + 0.200GHN504E + 0.200GHN505K                 : ARR( 0.126E-12,  -850., 0.0);
+{ 35201} G2H5038 +PERO2              =  0.560G1H506G + 0.220GHN504E + 0.220GHN505K                 : ARR( 0.471E-13, -1350., 0.0);
+{ 35202} G2H5038 +PERO3              =  0.600G1H506G + 0.200GHN504E + 0.200GHN505K                 : ARR( 0.142E-12, -1200., 0.0);
+{ 35203} G2H5038 +PERO5              =  0.600G1H506G + 0.200GHN504E + 0.200GHN505K                 : ARR( 0.533E-11,   500., 0.0);
+{ 35204} G2H5038 +PERO6              =  0.460G1H506G + 0.270GHN504E + 0.270GHN505K                 : ARR( 0.488E-13, -1250., 0.0);
+{ 35205} G2H5038 +PERO9              =  0.800G1H506G + 0.200GHN505K                                : ARR( 0.100E-10,     0., 0.0);
+{ 35206} G1H508q                     =       G3K2001 +      GHN300A                                : ARR( 0.200E+15,  3009., 0.0);
+{ 35207} G1H508r                     =       GDK3001 +      GHD2000 +      GHO                     : ARR( 0.200E+15,  4976., 0.0);
+{ 35208} GHH400a +GHO                =       GHN400y +      GHO                                    : ARR( 0.325E-11,     0., 0.0);
+{ 35209} GHH400a +GHO                =       GHN401C +      GHO                                    : ARR( 0.508E-11,     0., 0.0);
+{ 35210} GHH400a +GHO                =       G3H400c                                               : ARR( 0.210E-10,     0., 0.0);
+{ 35211} GHH400a +GHO                =       G2H401A                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 35212} GHH400a +GHO                =       G2H401B                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 35213} GHH400a +GNO3               =       G3H400c +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 35214} GHH400a+HV               =       G1H401W +      GHO                                    :  0.100E+01*SUN;
+{ 35215} GHH400a+HV               =       G1H400x +      GNO2                                   :  0.100E+01*SUN;
+{ 35216} GHH400a+HV               =       G1H401c +      GHO                                    :  0.100E+01*SUN;
+{ 35217} GHH400a+HV               =       GHN300A +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 35218} G3H400c +GHO2               =  0.800GGH400l + 0.200GAH400p + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 35219} G3H400c +GNO                =       GHN300A +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 35220} G3H400c +GNO2               =       GPH400q                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 35221} G3H400c +GNO3               =       GHN300A +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 35222} G3H400c +MEPERO             =  0.685GHN300A + 0.315GAH400p + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 35223} G3H400c +PERO1              =  0.800GHN300A + 0.200GAH400p + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 35224} G3H400c +PERO2              =  0.750GHN300A + 0.250GAH400p + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 35225} G3H400c +PERO3              =  0.800GHN300A + 0.200GAH400p + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 35226} G3H400c +PERO5              =  0.650GHN300A + 0.350GAH400p + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 35227} G3H400c +PERO6              =  0.650GHN300A + 0.350GAH400p + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 35228} G3H400c +PERO9              =       GHN300A +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 35229} G2H401A +GNO                =       G1H401W +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 35230} G2H401A +GNO                =       GHN400v                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 35231} G2H401A +GHO2               =       GHH400a                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 35232} G2H401A +GNO3               =       G1H401W +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 35233} G2H401A +MEPERO             =  0.480G1H401W + 0.260GHN400h + 0.260GHN400y                 : ARR( 0.164E-12,  -795., 0.0);
+{ 35234} G2H401A +PERO1              =  0.600G1H401W + 0.200GHN400h + 0.200GHN400y                 : ARR( 0.126E-12,  -850., 0.0);
+{ 35235} G2H401A +PERO2              =  0.560G1H401W + 0.220GHN400h + 0.220GHN400y                 : ARR( 0.471E-13, -1350., 0.0);
+{ 35236} G2H401A +PERO3              =  0.600G1H401W + 0.200GHN400h + 0.200GHN400y                 : ARR( 0.142E-12, -1200., 0.0);
+{ 35237} G2H401A +PERO5              =  0.600G1H401W + 0.200GHN400h + 0.200GHN400y                 : ARR( 0.533E-11,   500., 0.0);
+{ 35238} G2H401A +PERO6              =  0.460G1H401W + 0.270GHN400h + 0.270GHN400y                 : ARR( 0.488E-13, -1250., 0.0);
+{ 35239} G2H401A +PERO9              =  0.800G1H401W + 0.200GHN400y                                : ARR( 0.100E-10,     0., 0.0);
+{ 35240} G2H401B +GNO                =       G1H401c +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 35241} G2H401B +GNO                =       GHN4013                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 35242} G2H401B +GHO2               =       GHH400a                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 35243} G2H401B +GNO3               =       G1H401c +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 35244} G2H401B +MEPERO             =  0.340G1H401c + 0.330GHN400x + 0.330GHN401C                 : ARR( 0.565E-13,  -845., 0.0);
+{ 35245} G2H401B +PERO1              =  0.460G1H401c + 0.270GHN400x + 0.270GHN401C                 : ARR( 0.434E-13,  -900., 0.0);
+{ 35246} G2H401B +PERO2              =  0.400G1H401c + 0.300GHN400x + 0.300GHN401C                 : ARR( 0.162E-13, -1400., 0.0);
+{ 35247} G2H401B +PERO3              =  0.460G1H401c + 0.270GHN400x + 0.270GHN401C                 : ARR( 0.488E-13, -1250., 0.0);
+{ 35248} G2H401B +PERO5              =  0.460G1H401c + 0.270GHN400x + 0.270GHN401C                 : ARR( 0.183E-11,   450., 0.0);
+{ 35249} G2H401B +PERO6              =  0.300G1H401c + 0.350GHN400x + 0.350GHN401C                 : ARR( 0.168E-13, -1300., 0.0);
+{ 35250} G2H401B +PERO9              =  0.650G1H401c + 0.350GHN401C                                : ARR( 0.100E-10,     0., 0.0);
+{ 35251} G1H401c                     =       GHN300A +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 35252} GHH501q +GHO                =       GHN504Y +      GHO                                    : ARR( 0.533E-11,     0., 0.0);
+{ 35253} GHH501q +GHO                =       GHN505L +      GHO                                    : ARR( 0.104E-10,     0., 0.0);
+{ 35254} GHH501q +GHO                =       G2H5039                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 35255} GHH501q +GHO                =       G2H503A                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 35256} GHH501q+HV               =       G1H503z +      GNO2                                   :  0.100E+01*SUN;
+{ 35257} GHH501q+HV               =       G1H507k +      GHO                                    :  0.100E+01*SUN;
+{ 35258} GHH501q+HV               =       G3H400G +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 35259} GHH501q+HV               =       G1H504t +      GHO                                    :  0.100E+01*SUN;
+{ 35260} G2H5039 +GNO                =       G1H507k +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 35261} G2H5039 +GNO                =       GHN504U                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 35262} G2H5039 +GHO2               =       GHH501q                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 35263} G2H5039 +GNO3               =       G1H507k +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 35264} G2H5039 +MEPERO             =  0.340G1H507k + 0.330GHN5058 + 0.330GHN504Y                 : ARR( 0.565E-13,  -845., 0.0);
+{ 35265} G2H5039 +PERO1              =  0.460G1H507k + 0.270GHN5058 + 0.270GHN504Y                 : ARR( 0.434E-13,  -900., 0.0);
+{ 35266} G2H5039 +PERO2              =  0.400G1H507k + 0.300GHN5058 + 0.300GHN504Y                 : ARR( 0.162E-13, -1400., 0.0);
+{ 35267} G2H5039 +PERO3              =  0.460G1H507k + 0.270GHN5058 + 0.270GHN504Y                 : ARR( 0.488E-13, -1250., 0.0);
+{ 35268} G2H5039 +PERO5              =  0.460G1H507k + 0.270GHN5058 + 0.270GHN504Y                 : ARR( 0.183E-11,   450., 0.0);
+{ 35269} G2H5039 +PERO6              =  0.300G1H507k + 0.350GHN5058 + 0.350GHN504Y                 : ARR( 0.168E-13, -1300., 0.0);
+{ 35270} G2H5039 +PERO9              =  0.650G1H507k + 0.350GHN504Y                                : ARR( 0.100E-10,     0., 0.0);
+{ 35271} G2H503A +GNO                =       G1H504t +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 35272} G2H503A +GNO                =       GHN502j                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 35273} G2H503A +GHO2               =       GHH501q                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 35274} G2H503A +GNO3               =       G1H504t +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 35275} G2H503A +MEPERO             =  0.480G1H504t + 0.260GHN504E + 0.260GHN505L                 : ARR( 0.164E-12,  -795., 0.0);
+{ 35276} G2H503A +PERO1              =  0.600G1H504t + 0.200GHN504E + 0.200GHN505L                 : ARR( 0.126E-12,  -850., 0.0);
+{ 35277} G2H503A +PERO2              =  0.560G1H504t + 0.220GHN504E + 0.220GHN505L                 : ARR( 0.471E-13, -1350., 0.0);
+{ 35278} G2H503A +PERO3              =  0.600G1H504t + 0.200GHN504E + 0.200GHN505L                 : ARR( 0.142E-12, -1200., 0.0);
+{ 35279} G2H503A +PERO5              =  0.600G1H504t + 0.200GHN504E + 0.200GHN505L                 : ARR( 0.533E-11,   500., 0.0);
+{ 35280} G2H503A +PERO6              =  0.460G1H504t + 0.270GHN504E + 0.270GHN505L                 : ARR( 0.488E-13, -1250., 0.0);
+{ 35281} G2H503A +PERO9              =  0.800G1H504t + 0.200GHN505L                                : ARR( 0.100E-10,     0., 0.0);
+{ 35282} GHH501r +GHO                =       GHH501s +      GHO                                    : ARR( 0.142E-09,     0., 0.0);
+{ 35283} GHH501r +GHO                =       GHH502t +      GHO                                    : ARR( 0.274E-10,     0., 0.0);
+{ 35284} GHH501r +GHO                =       GHH501z +      GHO                                    : ARR( 0.107E-10,     0., 0.0);
+{ 35285} GHH501r+HV               =       G1H503z +      GHO                                    :  0.100E+01*SUN;
+{ 35286} GHH501r+HV               =       G1H508s +      GHO                                    :  0.100E+01*SUN;
+{ 35287} GHH501r+HV               =       G3H400N +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 35288} GHH501r+HV               =       G1H506h +      GHO                                    :  0.100E+01*SUN;
+{ 35289} G1H508s                     =       GHD3003 +      G3H2000                                : ARR( 0.200E+15,  3009., 0.0);
+{ 35290} GHH501s +GHO                =       GHH502u +      GHO2                                   : ARR( 0.246E-11,     0., 0.0);
+{ 35291} GHH501s +GHO                =       GHK5011 +      GHO                                    : ARR( 0.154E-10,     0., 0.0);
+{ 35292} GHH501s +GHO                =       GHD5014 +      GHO                                    : ARR( 0.985E-11,     0., 0.0);
+{ 35293} GHH501s +GHO                =       G2H503B                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 35294} GHH501s +GHO                =       G2H503C                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 35295} GHH501s+HV               =       G3K2001 +      GHD3001 +      GHO                     :  0.100E+01*SUN;
+{ 35296} GHH501s+HV               =       G1H508t +      GHO                                    :  0.100E+01*SUN;
+{ 35297} GHH501s+HV               =       G3H400Q +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 35298} GHH501s+HV               =       G1H506g +      GHO                                    :  0.100E+01*SUN;
+{ 35299} G2H503B +GNO                =       G1H508t +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 35300} G2H503B +GNO                =       GHN506S                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 35301} G2H503B +GHO2               =       GHH501s                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 35302} G2H503B +GNO3               =       G1H508t +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 35303} G2H503B +MEPERO             =  0.340G1H508t + 0.330GHK500r + 0.330GHK5011                 : ARR( 0.565E-13,  -845., 0.0);
+{ 35304} G2H503B +PERO1              =  0.460G1H508t + 0.270GHK500r + 0.270GHK5011                 : ARR( 0.434E-13,  -900., 0.0);
+{ 35305} G2H503B +PERO2              =  0.400G1H508t + 0.300GHK500r + 0.300GHK5011                 : ARR( 0.162E-13, -1400., 0.0);
+{ 35306} G2H503B +PERO3              =  0.460G1H508t + 0.270GHK500r + 0.270GHK5011                 : ARR( 0.488E-13, -1250., 0.0);
+{ 35307} G2H503B +PERO5              =  0.460G1H508t + 0.270GHK500r + 0.270GHK5011                 : ARR( 0.183E-11,   450., 0.0);
+{ 35308} G2H503B +PERO6              =  0.300G1H508t + 0.350GHK500r + 0.350GHK5011                 : ARR( 0.168E-13, -1300., 0.0);
+{ 35309} G2H503B +PERO9              =  0.650G1H508t + 0.350GHK5011                                : ARR( 0.100E-10,     0., 0.0);
+{ 35310} G2H503C +GNO                =       G1H506g +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 35311} G2H503C +GNO                =       GHN503o                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 35312} G2H503C +GHO2               =       GHH501s                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 35313} G2H503C +GNO3               =       G1H506g +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 35314} G2H503C +MEPERO             =  0.480G1H506g + 0.260GHK500l + 0.260GHD5014                 : ARR( 0.164E-12,  -795., 0.0);
+{ 35315} G2H503C +PERO1              =  0.600G1H506g + 0.200GHK500l + 0.200GHD5014                 : ARR( 0.126E-12,  -850., 0.0);
+{ 35316} G2H503C +PERO2              =  0.560G1H506g + 0.220GHK500l + 0.220GHD5014                 : ARR( 0.471E-13, -1350., 0.0);
+{ 35317} G2H503C +PERO3              =  0.600G1H506g + 0.200GHK500l + 0.200GHD5014                 : ARR( 0.142E-12, -1200., 0.0);
+{ 35318} G2H503C +PERO5              =  0.600G1H506g + 0.200GHK500l + 0.200GHD5014                 : ARR( 0.533E-11,   500., 0.0);
+{ 35319} G2H503C +PERO6              =  0.460G1H506g + 0.270GHK500l + 0.270GHD5014                 : ARR( 0.488E-13, -1250., 0.0);
+{ 35320} G2H503C +PERO9              =  0.800G1H506g + 0.200GHD5014                                : ARR( 0.100E-10,     0., 0.0);
+{ 35321} G1H508t                     =       G3K2001 +      GHD3001                                : ARR( 0.200E+15,  4599., 0.0);
+{ 35322} G1H508t                     =       GDK3001 +      G3H2000                                : ARR( 0.200E+15,  4599., 0.0);
+{ 35323} GHH400b +GHO                =       GHD400K +      GHO                                    : ARR( 0.106E-10,     0., 0.0);
+{ 35324} GHH400b +GHO                =       GHD400N +      GHO                                    : ARR( 0.165E-10,     0., 0.0);
+{ 35325} GHH400b +GHO                =       G3H400d                                               : ARR( 0.711E-10,     0., 0.0);
+{ 35326} GHH400b +GNO3               =       G3H400d +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 35327} GHH400b+HV               =       G1H400w +      GHO                                    :  0.100E+01*SUN;
+{ 35328} GHH400b+HV               =       G3H2000 +      GDD2000 +      GHO                     :  0.100E+01*SUN;
+{ 35329} GHH400b+HV               =       G1H401d +      GHO                                    :  0.100E+01*SUN;
+{ 35330} GHH400b+HV               =       GHD3001 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 35331} G3H400d +GHO2               =  0.800GGH400m + 0.200GAH400q + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 35332} G3H400d +GNO                =       GHD3001 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 35333} G3H400d +GNO2               =       GPH400r                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 35334} G3H400d +GNO3               =       GHD3001 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 35335} G3H400d +MEPERO             =  0.685GHD3001 + 0.315GAH400q + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 35336} G3H400d +PERO1              =  0.800GHD3001 + 0.200GAH400q + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 35337} G3H400d +PERO2              =  0.750GHD3001 + 0.250GAH400q + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 35338} G3H400d +PERO3              =  0.800GHD3001 + 0.200GAH400q + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 35339} G3H400d +PERO5              =  0.650GHD3001 + 0.350GAH400q + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 35340} G3H400d +PERO6              =  0.650GHD3001 + 0.350GAH400q + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 35341} G3H400d +PERO9              =       GHD3001 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 35342} G1H401d                     =       G3H2000 +      GDD2000                                : ARR( 0.200E+15,  4953., 0.0);
+{ 35343} GHN5055 +GHO                =       GND501D +      GHO                                    : ARR( 0.332E-11,     0., 0.0);
+{ 35344} GHN5055 +GHO                =       GHN5059 +      GHO2                                   : ARR( 0.675E-11,     0., 0.0);
+{ 35345} GHN5055 +GHO                =       G3H5029                                               : ARR( 0.215E-10,     0., 0.0);
+{ 35346} GHN5055 +GHO                =       G2N505R                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 35347} GHN5055 +GNO3               =       G3H5029 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 35348} GHN5055+HV               =       G1N506L +      GHO                                    :  0.100E+01*SUN;
+{ 35349} GHN5055+HV               =       G1H508u +      GNO2                                   :  0.100E+01*SUN;
+{ 35350} GHN5055+HV               =       G2H400t +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 35351} GHN5055+HV               =       GHD3001 +      GD02000 +      GHO2    +      GNO2     :  0.100E+01*SUN;
+{ 35352} G3H5029 +GHO2               =  0.800GGH502i + 0.200GAH502t + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 35353} G3H5029 +GNO                =       G2H400t +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 35354} G3H5029 +GNO2               =       GPH5033                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 35355} G3H5029 +GNO3               =       G2H400t +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 35356} G3H5029 +MEPERO             =  0.685G2H400t + 0.315GAH502t + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 35357} G3H5029 +PERO1              =  0.800G2H400t + 0.200GAH502t + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 35358} G3H5029 +PERO2              =  0.750G2H400t + 0.250GAH502t + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 35359} G3H5029 +PERO3              =  0.800G2H400t + 0.200GAH502t + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 35360} G3H5029 +PERO5              =  0.650G2H400t + 0.350GAH502t + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 35361} G3H5029 +PERO6              =  0.650G2H400t + 0.350GAH502t + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 35362} G3H5029 +PERO9              =       G2H400t +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 35363} G2N505R +GNO                =       G1N506L +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 35364} G2N505R +GNO                =       GNN502j                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 35365} G2N505R +GHO2               =       GHN5055                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 35366} G2N505R +GNO3               =       G1N506L +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 35367} G2N505R +MEPERO             =  0.480G1N506L + 0.260GND501B + 0.260GND501D                 : ARR( 0.164E-12,  -795., 0.0);
+{ 35368} G2N505R +PERO1              =  0.600G1N506L + 0.200GND501B + 0.200GND501D                 : ARR( 0.126E-12,  -850., 0.0);
+{ 35369} G2N505R +PERO2              =  0.560G1N506L + 0.220GND501B + 0.220GND501D                 : ARR( 0.471E-13, -1350., 0.0);
+{ 35370} G2N505R +PERO3              =  0.600G1N506L + 0.200GND501B + 0.200GND501D                 : ARR( 0.142E-12, -1200., 0.0);
+{ 35371} G2N505R +PERO5              =  0.600G1N506L + 0.200GND501B + 0.200GND501D                 : ARR( 0.533E-11,   500., 0.0);
+{ 35372} G2N505R +PERO6              =  0.460G1N506L + 0.270GND501B + 0.270GND501D                 : ARR( 0.488E-13, -1250., 0.0);
+{ 35373} G2N505R +PERO9              =  0.800G1N506L + 0.200GND501D                                : ARR( 0.100E-10,     0., 0.0);
+{ 35374} G1H508u                     =       GHD2000 +      GDD3000 +      GHO2                    : ARR( 0.200E+15,  3619., 0.0);
+{ 35375} GHN5056 +GHO                =       GHN506d +      GHO2                                   : ARR( 0.902E-12,     0., 0.0);
+{ 35376} GHN5056 +GHO                =       GNN502u +      GHO                                    : ARR( 0.361E-11,     0., 0.0);
+{ 35377} GHN5056 +GHO                =       G2N505S                                               : ARR( 0.213E-11,  -190., 0.0);
+{ 35378} GHN5056+HV               =       G1H5041 +      GNO2                                   :  0.100E+01*SUN;
+{ 35379} GHN5056+HV               =       G1H508v +      GNO2                                   :  0.100E+01*SUN;
+{ 35380} GHN5056+HV               =       G1N506P +      GHO                                    :  0.100E+01*SUN;
+{ 35381} G2N505S +GNO                =       G1N506P +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 35382} G2N505S +GNO                =       GNN502l                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 35383} G2N505S +GHO2               =       GHN5056                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 35384} G2N505S +GNO3               =       G1N506P +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 35385} G2N505S +MEPERO             =  0.480G1N506P + 0.260GNN502q + 0.260GNN502u                 : ARR( 0.164E-12,  -795., 0.0);
+{ 35386} G2N505S +PERO1              =  0.600G1N506P + 0.200GNN502q + 0.200GNN502u                 : ARR( 0.126E-12,  -850., 0.0);
+{ 35387} G2N505S +PERO2              =  0.560G1N506P + 0.220GNN502q + 0.220GNN502u                 : ARR( 0.471E-13, -1350., 0.0);
+{ 35388} G2N505S +PERO3              =  0.600G1N506P + 0.200GNN502q + 0.200GNN502u                 : ARR( 0.142E-12, -1200., 0.0);
+{ 35389} G2N505S +PERO5              =  0.600G1N506P + 0.200GNN502q + 0.200GNN502u                 : ARR( 0.533E-11,   500., 0.0);
+{ 35390} G2N505S +PERO6              =  0.460G1N506P + 0.270GNN502q + 0.270GNN502u                 : ARR( 0.488E-13, -1250., 0.0);
+{ 35391} G2N505S +PERO9              =  0.800G1N506P + 0.200GNN502u                                : ARR( 0.100E-10,     0., 0.0);
+{ 35392} G1H508v                     =       GND3004 +      GHD2000 +      GHO2                    : ARR( 0.200E+15,  3486., 0.0);
+{ 35393} GHH501t +GHO                =       GHH502v +      GHO2                                   : ARR( 0.420E-11,     0., 0.0);
+{ 35394} GHH501t +GHO                =       GHN5057 +      GHO                                    : ARR( 0.430E-10,     0., 0.0);
+{ 35395} GHH501t +GHO                =       GHN505M +      GHO                                    : ARR( 0.336E-11,     0., 0.0);
+{ 35396} GHH501t +GHO                =       G2H501y                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 35397} GHH501t +GHO                =       G2H503D                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 35398} GHH501t+HV               =       G1H5041 +      GHO                                    :  0.100E+01*SUN;
+{ 35399} GHH501t+HV               =       G1H508w +      GNO2                                   :  0.100E+01*SUN;
+{ 35400} GHH501t+HV               =       G1H508S +      GHO                                    :  0.100E+01*SUN;
+{ 35401} G2H503D +GNO                =       G1H508S +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 35402} G2H503D +GNO                =       GHN504r                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 35403} G2H503D +GHO2               =       GHH501t                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 35404} G2H503D +GNO3               =       G1H508S +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 35405} G2H503D +MEPERO             =  0.480G1H508S + 0.260GHN503i + 0.260GHN505M                 : ARR( 0.164E-12,  -795., 0.0);
+{ 35406} G2H503D +PERO1              =  0.600G1H508S + 0.200GHN503i + 0.200GHN505M                 : ARR( 0.126E-12,  -850., 0.0);
+{ 35407} G2H503D +PERO2              =  0.560G1H508S + 0.220GHN503i + 0.220GHN505M                 : ARR( 0.471E-13, -1350., 0.0);
+{ 35408} G2H503D +PERO3              =  0.600G1H508S + 0.200GHN503i + 0.200GHN505M                 : ARR( 0.142E-12, -1200., 0.0);
+{ 35409} G2H503D +PERO5              =  0.600G1H508S + 0.200GHN503i + 0.200GHN505M                 : ARR( 0.533E-11,   500., 0.0);
+{ 35410} G2H503D +PERO6              =  0.460G1H508S + 0.270GHN503i + 0.270GHN505M                 : ARR( 0.488E-13, -1250., 0.0);
+{ 35411} G2H503D +PERO9              =  0.800G1H508S + 0.200GHN505M                                : ARR( 0.100E-10,     0., 0.0);
+{ 35412} G1H508w                     =       GHD3003 +      GHD2000 +      GHO2                    : ARR( 0.200E+15,  3486., 0.0);
+{ 35413} GHN5057 +GHO                =       GHN506e +      GHO2                                   : ARR( 0.260E-11,     0., 0.0);
+{ 35414} GHN5057 +GHO                =       GHN506b +      GHO2                                   : ARR( 0.133E-11,     0., 0.0);
+{ 35415} GHN5057 +GHO                =       GND501E +      GHO                                    : ARR( 0.342E-11,     0., 0.0);
+{ 35416} GHN5057 +GHO                =       G2N505T                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 35417} GHN5057+HV               =       G3K2001 +      GHN300A +      GHO2                    :  0.100E+01*SUN;
+{ 35418} GHN5057+HV               =       G1H508x +      GNO2                                   :  0.100E+01*SUN;
+{ 35419} GHN5057+HV               =       G1N505q +      GHO                                    :  0.100E+01*SUN;
+{ 35420} G2N505T +GNO                =       G1N505q +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 35421} G2N505T +GNO                =       GNN502O                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 35422} G2N505T +GHO2               =       GHN5057                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 35423} G2N505T +GNO3               =       G1N505q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 35424} G2N505T +MEPERO             =  0.480G1N505q + 0.260GNK5015 + 0.260GND501E                 : ARR( 0.164E-12,  -795., 0.0);
+{ 35425} G2N505T +PERO1              =  0.600G1N505q + 0.200GNK5015 + 0.200GND501E                 : ARR( 0.126E-12,  -850., 0.0);
+{ 35426} G2N505T +PERO2              =  0.560G1N505q + 0.220GNK5015 + 0.220GND501E                 : ARR( 0.471E-13, -1350., 0.0);
+{ 35427} G2N505T +PERO3              =  0.600G1N505q + 0.200GNK5015 + 0.200GND501E                 : ARR( 0.142E-12, -1200., 0.0);
+{ 35428} G2N505T +PERO5              =  0.600G1N505q + 0.200GNK5015 + 0.200GND501E                 : ARR( 0.533E-11,   500., 0.0);
+{ 35429} G2N505T +PERO6              =  0.460G1N505q + 0.270GNK5015 + 0.270GND501E                 : ARR( 0.488E-13, -1250., 0.0);
+{ 35430} G2N505T +PERO9              =  0.800G1N505q + 0.200GND501E                                : ARR( 0.100E-10,     0., 0.0);
+{ 35431} G1H508x                     =       GDK3001 +      GHD2000 +      GHO2                    : ARR( 0.200E+15,  3768., 0.0);
+{ 35432} GHN5058 +GHO                =       GHN504Y +      GHO2                                   : ARR( 0.138E-11,     0., 0.0);
+{ 35433} GHN5058 +GHO                =       GND501F +      GHO                                    : ARR( 0.108E-10,     0., 0.0);
+{ 35434} GHN5058 +GHO                =       G2N505U                                               : ARR( 0.209E-11,  -190., 0.0);
+{ 35435} GHN5058+HV               =       G1H5042 +      GNO2                                   :  0.100E+01*SUN;
+{ 35436} GHN5058+HV               =       G3N400E +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 35437} GHN5058+HV               =       G1N5052 +      GHO                                    :  0.100E+01*SUN;
+{ 35438} G2N505U +GNO                =       G1N5052 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 35439} G2N505U +GNO                =       GNN501r                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 35440} G2N505U +GHO2               =       GHN5058                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 35441} G2N505U +GNO3               =       G1N5052 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 35442} G2N505U +MEPERO             =  0.480G1N5052 + 0.260GNK5015 + 0.260GND501F                 : ARR( 0.164E-12,  -795., 0.0);
+{ 35443} G2N505U +PERO1              =  0.600G1N5052 + 0.200GNK5015 + 0.200GND501F                 : ARR( 0.126E-12,  -850., 0.0);
+{ 35444} G2N505U +PERO2              =  0.560G1N5052 + 0.220GNK5015 + 0.220GND501F                 : ARR( 0.471E-13, -1350., 0.0);
+{ 35445} G2N505U +PERO3              =  0.600G1N5052 + 0.200GNK5015 + 0.200GND501F                 : ARR( 0.142E-12, -1200., 0.0);
+{ 35446} G2N505U +PERO5              =  0.600G1N5052 + 0.200GNK5015 + 0.200GND501F                 : ARR( 0.533E-11,   500., 0.0);
+{ 35447} G2N505U +PERO6              =  0.460G1N5052 + 0.270GNK5015 + 0.270GND501F                 : ARR( 0.488E-13, -1250., 0.0);
+{ 35448} G2N505U +PERO9              =  0.800G1N5052 + 0.200GND501F                                : ARR( 0.100E-10,     0., 0.0);
+{ 35449} GHH501u +GHO                =       GHK500r +      GHO                                    : ARR( 0.147E-09,     0., 0.0);
+{ 35450} GHH501u +GHO                =       GHD5015 +      GHO                                    : ARR( 0.110E-10,     0., 0.0);
+{ 35451} GHH501u+HV               =       G1H5042 +      GHO                                    :  0.100E+01*SUN;
+{ 35452} GHH501u+HV               =       G3H400B +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 35453} GHH501u+HV               =       G1H506j +      GHO                                    :  0.100E+01*SUN;
+{ 35454} GHK500r +GHO                =       GHD501O +      GHO2                                   : ARR( 0.249E-11,     0., 0.0);
+{ 35455} GHK500r +GHO                =       GHK5011 +      GHO2                                   : ARR( 0.389E-11,     0., 0.0);
+{ 35456} GHK500r +GHO                =       GDK500a +      GHO                                    : ARR( 0.995E-11,     0., 0.0);
+{ 35457} GHK500r +GHO                =       G2K500r                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 35458} GHK500r+HV               =       G3K2001 +      GHD3001 +      GHO2                    :  0.100E+01*SUN;
+{ 35459} GHK500r+HV               =       G3K400C +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 35460} GHK500r+HV               =       G1K5013 +      GHO                                    :  0.100E+01*SUN;
+{ 35461} G2K500r +GNO                =       G1K5013 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 35462} G2K500r +GNO                =       GNK500y                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 35463} G2K500r +GHO2               =       GHK500r                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 35464} G2K500r +GNO3               =       G1K5013 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 35465} G2K500r +MEPERO             =  0.480G1K5013 + 0.260GKK500E + 0.260GDK500a                 : ARR( 0.164E-12,  -795., 0.0);
+{ 35466} G2K500r +PERO1              =  0.600G1K5013 + 0.200GKK500E + 0.200GDK500a                 : ARR( 0.126E-12,  -850., 0.0);
+{ 35467} G2K500r +PERO2              =  0.560G1K5013 + 0.220GKK500E + 0.220GDK500a                 : ARR( 0.471E-13, -1350., 0.0);
+{ 35468} G2K500r +PERO3              =  0.600G1K5013 + 0.200GKK500E + 0.200GDK500a                 : ARR( 0.142E-12, -1200., 0.0);
+{ 35469} G2K500r +PERO5              =  0.600G1K5013 + 0.200GKK500E + 0.200GDK500a                 : ARR( 0.533E-11,   500., 0.0);
+{ 35470} G2K500r +PERO6              =  0.460G1K5013 + 0.270GKK500E + 0.270GDK500a                 : ARR( 0.488E-13, -1250., 0.0);
+{ 35471} G2K500r +PERO9              =  0.800G1K5013 + 0.200GDK500a                                : ARR( 0.100E-10,     0., 0.0);
+{ 35472} GHD400J +GHO                =       GDD4004 +      GHO                                    : ARR( 0.108E-10,     0., 0.0);
+{ 35473} GHD400J +GHO                =       G3H400e                                               : ARR( 0.725E-10,     0., 0.0);
+{ 35474} GHD400J +GNO3               =       G3H400e +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 35475} GHD400J+HV               =       G1D400H +      GHO                                    :  0.100E+01*SUN;
+{ 35476} GHD400J+HV               =       G3H2000 +      GDD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 35477} GHD400J+HV               =       GHD3001 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 35478} G3H400e +GHO2               =  0.800GGH400f + 0.200GAH400h + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 35479} G3H400e +GNO                =       GHD3001 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 35480} G3H400e +GNO2               =       GPH400i                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 35481} G3H400e +GNO3               =       GHD3001 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 35482} G3H400e +MEPERO             =  0.685GHD3001 + 0.315GAH400h + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 35483} G3H400e +PERO1              =  0.800GHD3001 + 0.200GAH400h + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 35484} G3H400e +PERO2              =  0.750GHD3001 + 0.250GAH400h + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 35485} G3H400e +PERO3              =  0.800GHD3001 + 0.200GAH400h + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 35486} G3H400e +PERO5              =  0.650GHD3001 + 0.350GAH400h + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 35487} G3H400e +PERO6              =  0.650GHD3001 + 0.350GAH400h + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 35488} G3H400e +PERO9              =       GHD3001 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 35489} GHN5059 +GHO                =       G3H502A                                               : ARR( 0.733E-10,     0., 0.0);
+{ 35490} GHN5059 +GNO3               =       G3H502A +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 35491} GHN5059+HV               =       G1N505g +      GHO                                    :  0.100E+01*SUN;
+{ 35492} GHN5059+HV               =       G1H508y +      GNO2                                   :  0.100E+01*SUN;
+{ 35493} GHN5059+HV               =       G3H3005 +      G2D2000                                :  0.100E+01*SUN;
+{ 35494} GHN5059+HV               =       G2H401C +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 35495} G3H502A +GHO2               =  0.800GGH502j + 0.200GAH502u + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 35496} G3H502A +GNO                =       G2H401C +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 35497} G3H502A +GNO2               =       GPH502R                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 35498} G3H502A +GNO3               =       G2H401C +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 35499} G3H502A +MEPERO             =  0.685G2H401C + 0.315GAH502u + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 35500} G3H502A +PERO1              =  0.800G2H401C + 0.200GAH502u + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 35501} G3H502A +PERO2              =  0.750G2H401C + 0.250GAH502u + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 35502} G3H502A +PERO3              =  0.800G2H401C + 0.200GAH502u + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 35503} G3H502A +PERO5              =  0.650G2H401C + 0.350GAH502u + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 35504} G3H502A +PERO6              =  0.650G2H401C + 0.350GAH502u + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 35505} G3H502A +PERO9              =       G2H401C +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 35506} G1H508y                     =       GHD2000 +      G3D3000                                : ARR( 0.200E+15,  2981., 0.0);
+{ 35507} G2H401C +GNO                =       G1H401e +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 35508} G2H401C +GNO                =       GHN4016                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 35509} G2H401C +GHO2               =       GHH400m                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 35510} G2H401C +GNO3               =       G1H401e +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 35511} G2H401C +MEPERO             =  0.480G1H401e + 0.260GHN401B + 0.260GHN401C                 : ARR( 0.164E-12,  -795., 0.0);
+{ 35512} G2H401C +PERO1              =  0.600G1H401e + 0.200GHN401B + 0.200GHN401C                 : ARR( 0.126E-12,  -850., 0.0);
+{ 35513} G2H401C +PERO2              =  0.560G1H401e + 0.220GHN401B + 0.220GHN401C                 : ARR( 0.471E-13, -1350., 0.0);
+{ 35514} G2H401C +PERO3              =  0.600G1H401e + 0.200GHN401B + 0.200GHN401C                 : ARR( 0.142E-12, -1200., 0.0);
+{ 35515} G2H401C +PERO5              =  0.600G1H401e + 0.200GHN401B + 0.200GHN401C                 : ARR( 0.533E-11,   500., 0.0);
+{ 35516} G2H401C +PERO6              =  0.460G1H401e + 0.270GHN401B + 0.270GHN401C                 : ARR( 0.488E-13, -1250., 0.0);
+{ 35517} G2H401C +PERO9              =  0.800G1H401e + 0.200GHN401C                                : ARR( 0.100E-10,     0., 0.0);
+{ 35518} G1H401e                     =       G3H3005 +      GCH2O                                  : ARR( 0.200E+15,  3640., 0.0);
+{ 35519} GNN502r +GHO                =       GNN503F +      GHO2                                   : ARR( 0.161E-11,     0., 0.0);
+{ 35520} GNN502r +GHO                =       GNK5016 +      GNO2                                   : ARR( 0.144E-12,     0., 0.0);
+{ 35521} GNN502r +GHO                =       G1N506T                                               : ARR( 0.420E-17,    85., 2.0);
+{ 35522} GNN502r+HV               =       G1N504T +      GNO2                                   :  0.200E+01*SUN;
+{ 35523} GNN502r+HV               =       G3N3004 +      GDO2000 +      GNO2                    :  0.100E+01*SUN;
+{ 35524} G1N506T +OXYGEN             =       GNN503F +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 35525} G1N506T                     =       GND400K +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7323., 0.0);
+{ 35526} GHN505A +GHO                =       GNK5016 +      GHO                                    : ARR( 0.258E-10,     0., 0.0);
+{ 35527} GHN505A +GHO                =       GHN505x +      GHO2                                   : ARR( 0.131E-10,     0., 0.0);
+{ 35528} GHN505A +GHO                =       G2N5043                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 35529} GHN505A+HV               =       G1H508z +      GNO2                                   :  0.100E+01*SUN;
+{ 35530} GHN505A+HV               =       G3N3004 +      GDO2000 +      GHO                     :  0.100E+01*SUN;
+{ 35531} GHN505A+HV               =       G1N504T +      GHO                                    :  0.100E+01*SUN;
+{ 35532} G1H508z                     =       G3H3004 +      GDO2000                                : ARR( 0.200E+15,  3031., 0.0);
+{ 35533} GNK5018 +GHO                =       GND501H +      GHO2                                   : ARR( 0.136E-10,     0., 0.0);
+{ 35534} GNK5018 +GHO                =       GNK5016 +      GHO2                                   : ARR( 0.671E-11,     0., 0.0);
+{ 35535} GNK5018+HV               =       G3K3003 +      GDO2000 +      GNO2                    :  0.100E+01*SUN;
+{ 35536} GNK5018+HV               =       G1K5018 +      GNO2                                   :  0.100E+01*SUN;
+{ 35537} G1K5018                     =       G3K3003 +      GDO2000                                : ARR( 0.200E+15,  3031., 0.0);
+{ 35538} GHH501v +GHO                =       GHD5016 +      GHO                                    : ARR( 0.538E-10,     0., 0.0);
+{ 35539} GHH501v +GHO                =       GHD500q +      GHO                                    : ARR( 0.265E-10,     0., 0.0);
+{ 35540} GHH501v +GHO                =       G3H502B                                               : ARR( 0.695E-10,     0., 0.0);
+{ 35541} GHH501v +GNO3               =       G3H502B +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 35542} GHH501v+HV               =       G1H505j +      GHO                                    :  0.100E+01*SUN;
+{ 35543} GHH501v+HV               =       G1H508y +      GHO                                    :  0.100E+01*SUN;
+{ 35544} GHH501v+HV               =       G3H3007 +      G2D2000                                :  0.100E+01*SUN;
+{ 35545} GHH501v+HV               =       G2H401D +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 35546} G3H502B +GHO2               =  0.800GGH502k + 0.200GAH502v + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 35547} G3H502B +GNO                =       G2H401D +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 35548} G3H502B +GNO2               =       GPH5034                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 35549} G3H502B +GNO3               =       G2H401D +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 35550} G3H502B +MEPERO             =  0.685G2H401D + 0.315GAH502v + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 35551} G3H502B +PERO1              =  0.800G2H401D + 0.200GAH502v + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 35552} G3H502B +PERO2              =  0.750G2H401D + 0.250GAH502v + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 35553} G3H502B +PERO3              =  0.800G2H401D + 0.200GAH502v + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 35554} G3H502B +PERO5              =  0.650G2H401D + 0.350GAH502v + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 35555} G3H502B +PERO6              =  0.650G2H401D + 0.350GAH502v + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 35556} G3H502B +PERO9              =       G2H401D +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 35557} G2H401D +GNO                =       G1H401f +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 35558} G2H401D +GNO                =       GHH400k                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 35559} G2H401D +GHO2               =       GHH400n                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 35560} G2H401D +GNO3               =       G1H401f +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 35561} G2H401D +MEPERO             =  0.480G1H401f + 0.260GHH400p + 0.260GHH400w                 : ARR( 0.164E-12,  -795., 0.0);
+{ 35562} G2H401D +PERO1              =  0.600G1H401f + 0.200GHH400p + 0.200GHH400w                 : ARR( 0.126E-12,  -850., 0.0);
+{ 35563} G2H401D +PERO2              =  0.560G1H401f + 0.220GHH400p + 0.220GHH400w                 : ARR( 0.471E-13, -1350., 0.0);
+{ 35564} G2H401D +PERO3              =  0.600G1H401f + 0.200GHH400p + 0.200GHH400w                 : ARR( 0.142E-12, -1200., 0.0);
+{ 35565} G2H401D +PERO5              =  0.600G1H401f + 0.200GHH400p + 0.200GHH400w                 : ARR( 0.533E-11,   500., 0.0);
+{ 35566} G2H401D +PERO6              =  0.460G1H401f + 0.270GHH400p + 0.270GHH400w                 : ARR( 0.488E-13, -1250., 0.0);
+{ 35567} G2H401D +PERO9              =  0.800G1H401f + 0.200GHH400w                                : ARR( 0.100E-10,     0., 0.0);
+{ 35568} G1H401f                     =       G3H3007 +      GCH2O                                  : ARR( 0.200E+15,  3603., 0.0);
+{ 35569} GGH500k +GHO                =       GGN5019 +      GHO                                    : ARR( 0.333E-11,     0., 0.0);
+{ 35570} GGH500k +GHO                =       G2G501j                                               : ARR( 0.892E-12,     0., 0.0);
+{ 35571} GGH500k +GHO                =       G2G501k                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 35572} GGH500k +GHO                =       G3H500Y                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 35573} GGH500k+HV               =       G1G5012 +      GHO                                    :  0.100E+01*SUN;
+{ 35574} GGH500k+HV               =       G1G5027 +      GNO2                                   :  0.100E+01*SUN;
+{ 35575} GGH500k+HV               =       G2H400c +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 35576} G2G501j +GNO                =       G1G5028 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 35577} G2G501j +GNO                =       GGH502l                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 35578} G2G501j +GHO2               =       GGH502m                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 35579} G2G501j +GNO3               =       G1G5028 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 35580} G2G501j +MEPERO             =  0.340G1G5028 + 0.330GGH501d + 0.330GGH502n                 : ARR( 0.565E-13,  -845., 0.0);
+{ 35581} G2G501j +PERO1              =  0.460G1G5028 + 0.270GGH501d + 0.270GGH502n                 : ARR( 0.434E-13,  -900., 0.0);
+{ 35582} G2G501j +PERO2              =  0.400G1G5028 + 0.300GGH501d + 0.300GGH502n                 : ARR( 0.162E-13, -1400., 0.0);
+{ 35583} G2G501j +PERO3              =  0.460G1G5028 + 0.270GGH501d + 0.270GGH502n                 : ARR( 0.488E-13, -1250., 0.0);
+{ 35584} G2G501j +PERO5              =  0.460G1G5028 + 0.270GGH501d + 0.270GGH502n                 : ARR( 0.183E-11,   450., 0.0);
+{ 35585} G2G501j +PERO6              =  0.300G1G5028 + 0.350GGH501d + 0.350GGH502n                 : ARR( 0.168E-13, -1300., 0.0);
+{ 35586} G2G501j +PERO9              =  0.650G1G5028 + 0.350GGH502n                                : ARR( 0.100E-10,     0., 0.0);
+{ 35587} G2G501k +GNO                =       G1G5012 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 35588} G2G501k +GNO                =       GGN500G                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 35589} G2G501k +GHO2               =       GGH500k                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 35590} G2G501k +GNO3               =       G1G5012 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 35591} G2G501k +MEPERO             =  0.480G1G5012 + 0.260GGN500O + 0.260GGN5019                 : ARR( 0.164E-12,  -795., 0.0);
+{ 35592} G2G501k +PERO1              =  0.600G1G5012 + 0.200GGN500O + 0.200GGN5019                 : ARR( 0.126E-12,  -850., 0.0);
+{ 35593} G2G501k +PERO2              =  0.560G1G5012 + 0.220GGN500O + 0.220GGN5019                 : ARR( 0.471E-13, -1350., 0.0);
+{ 35594} G2G501k +PERO3              =  0.600G1G5012 + 0.200GGN500O + 0.200GGN5019                 : ARR( 0.142E-12, -1200., 0.0);
+{ 35595} G2G501k +PERO5              =  0.600G1G5012 + 0.200GGN500O + 0.200GGN5019                 : ARR( 0.533E-11,   500., 0.0);
+{ 35596} G2G501k +PERO6              =  0.460G1G5012 + 0.270GGN500O + 0.270GGN5019                 : ARR( 0.488E-13, -1250., 0.0);
+{ 35597} G2G501k +PERO9              =  0.800G1G5012 + 0.200GGN5019                                : ARR( 0.100E-10,     0., 0.0);
+{ 35598} G1G5027                     =       GCH2O   +      GGD4000 +      GHO                     : ARR( 0.200E+15,  7140., 0.0);
+{ 35599} G1G5027                     =       GHD2000 +      G2G3000                                : ARR( 0.200E+15,  7118., 0.0);
+{ 35600} G1G5028                     =       GGN501J +      GHO                                    : ARR( 0.160E+12,  2905., 0.0);
+{ 35601} G1G5028                     =       GHN400G +      GCO     +      GHO2                    : ARR( 0.200E+15,  4949., 0.0);
+{ 35602} GAH500o +GHO                =       G2A502G                                               : ARR( 0.670E-12,     0., 0.0);
+{ 35603} GAH500o +GHO                =       GAN501I +      GHO                                    : ARR( 0.338E-11,     0., 0.0);
+{ 35604} GAH500o +GHO                =       G2A502H                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 35605} GAH500o +GHO                =       G2H400c +      GCO2                                   : ARR( 0.546E-12,     0., 0.0);
+{ 35606} GAH500o+HV               =       G1A502g +      GNO2                                   :  0.100E+01*SUN;
+{ 35607} GAH500o+HV               =       G1A500z +      GHO                                    :  0.100E+01*SUN;
+{ 35608} G2A502G +GNO                =       G1A502h +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 35609} G2A502G +GNO                =       GAH502d                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 35610} G2A502G +GHO2               =       GAH502w                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 35611} G2A502G +GNO3               =       G1A502h +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 35612} G2A502G +MEPERO             =  0.340G1A502h + 0.330GAH501l + 0.330GAH502x                 : ARR( 0.565E-13,  -845., 0.0);
+{ 35613} G2A502G +PERO1              =  0.460G1A502h + 0.270GAH501l + 0.270GAH502x                 : ARR( 0.434E-13,  -900., 0.0);
+{ 35614} G2A502G +PERO2              =  0.400G1A502h + 0.300GAH501l + 0.300GAH502x                 : ARR( 0.162E-13, -1400., 0.0);
+{ 35615} G2A502G +PERO3              =  0.460G1A502h + 0.270GAH501l + 0.270GAH502x                 : ARR( 0.488E-13, -1250., 0.0);
+{ 35616} G2A502G +PERO5              =  0.460G1A502h + 0.270GAH501l + 0.270GAH502x                 : ARR( 0.183E-11,   450., 0.0);
+{ 35617} G2A502G +PERO6              =  0.300G1A502h + 0.350GAH501l + 0.350GAH502x                 : ARR( 0.168E-13, -1300., 0.0);
+{ 35618} G2A502G +PERO9              =  0.650G1A502h + 0.350GAH502x                                : ARR( 0.100E-10,     0., 0.0);
+{ 35619} G2A502H +GNO                =       G1A500z +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 35620} G2A502H +GNO                =       GAN500D                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 35621} G2A502H +GHO2               =       GAH500o                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 35622} G2A502H +GNO3               =       G1A500z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 35623} G2A502H +MEPERO             =  0.480G1A500z + 0.260GAN500O + 0.260GAN501I                 : ARR( 0.164E-12,  -795., 0.0);
+{ 35624} G2A502H +PERO1              =  0.600G1A500z + 0.200GAN500O + 0.200GAN501I                 : ARR( 0.126E-12,  -850., 0.0);
+{ 35625} G2A502H +PERO2              =  0.560G1A500z + 0.220GAN500O + 0.220GAN501I                 : ARR( 0.471E-13, -1350., 0.0);
+{ 35626} G2A502H +PERO3              =  0.600G1A500z + 0.200GAN500O + 0.200GAN501I                 : ARR( 0.142E-12, -1200., 0.0);
+{ 35627} G2A502H +PERO5              =  0.600G1A500z + 0.200GAN500O + 0.200GAN501I                 : ARR( 0.533E-11,   500., 0.0);
+{ 35628} G2A502H +PERO6              =  0.460G1A500z + 0.270GAN500O + 0.270GAN501I                 : ARR( 0.488E-13, -1250., 0.0);
+{ 35629} G2A502H +PERO9              =  0.800G1A500z + 0.200GAN501I                                : ARR( 0.100E-10,     0., 0.0);
+{ 35630} G1A502g                     =       G2A3000 +      GHD2000                                : ARR( 0.200E+15,  7118., 0.0);
+{ 35631} G1A502g                     =       GAD4000 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  7140., 0.0);
+{ 35632} G1A502h                     =       GAN501E +      GHO                                    : ARR( 0.160E+12,  2905., 0.0);
+{ 35633} G1A502h                     =       GCO     +      GHN400G +      GHO                     : ARR( 0.200E+15,  4918., 0.0);
+{ 35634} GPH500q                     =       G3H500Y +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 35635} GPH500q +GHO                =       GPN501M +      GHO                                    : ARR( 0.338E-11,     0., 0.0);
+{ 35636} GPH500q +GHO                =       G2P502N                                               : ARR( 0.907E-12,     0., 0.0);
+{ 35637} GPH500q +GHO                =       G2P502O                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 35638} GPH500q+HV               =       G1P500t +      GHO                                    :  0.100E+01*SUN;
+{ 35639} GPH500q+HV               =       G1P502v +      GNO2                                   :  0.100E+01*SUN;
+{ 35640} GPH500q+HV               =       G3H500Y +      GNO2                                   :  0.100E+01*SUN;
+{ 35641} G2P502N +GNO                =       G1P502w +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 35642} G2P502N +GNO                =       GPH502i                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 35643} G2P502N +GHO2               =       GPH5035                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 35644} G2P502N +GNO3               =       G1P502w +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 35645} G2P502N +MEPERO             =  0.340G1P502w + 0.330GPH501j + 0.330GPH502j                 : ARR( 0.565E-13,  -845., 0.0);
+{ 35646} G2P502N +PERO1              =  0.460G1P502w + 0.270GPH501j + 0.270GPH502j                 : ARR( 0.434E-13,  -900., 0.0);
+{ 35647} G2P502N +PERO2              =  0.400G1P502w + 0.300GPH501j + 0.300GPH502j                 : ARR( 0.162E-13, -1400., 0.0);
+{ 35648} G2P502N +PERO3              =  0.460G1P502w + 0.270GPH501j + 0.270GPH502j                 : ARR( 0.488E-13, -1250., 0.0);
+{ 35649} G2P502N +PERO5              =  0.460G1P502w + 0.270GPH501j + 0.270GPH502j                 : ARR( 0.183E-11,   450., 0.0);
+{ 35650} G2P502N +PERO6              =  0.300G1P502w + 0.350GPH501j + 0.350GPH502j                 : ARR( 0.168E-13, -1300., 0.0);
+{ 35651} G2P502N +PERO9              =  0.650G1P502w + 0.350GPH502j                                : ARR( 0.100E-10,     0., 0.0);
+{ 35652} G2P502O +GNO                =       G1P500t +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 35653} G2P502O +GNO                =       GPN500A                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 35654} G2P502O +GHO2               =       GPH500q                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 35655} G2P502O +GNO3               =       G1P500t +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 35656} G2P502O +MEPERO             =  0.480G1P500t + 0.260GPN500O + 0.260GPN501M                 : ARR( 0.164E-12,  -795., 0.0);
+{ 35657} G2P502O +PERO1              =  0.600G1P500t + 0.200GPN500O + 0.200GPN501M                 : ARR( 0.126E-12,  -850., 0.0);
+{ 35658} G2P502O +PERO2              =  0.560G1P500t + 0.220GPN500O + 0.220GPN501M                 : ARR( 0.471E-13, -1350., 0.0);
+{ 35659} G2P502O +PERO3              =  0.600G1P500t + 0.200GPN500O + 0.200GPN501M                 : ARR( 0.142E-12, -1200., 0.0);
+{ 35660} G2P502O +PERO5              =  0.600G1P500t + 0.200GPN500O + 0.200GPN501M                 : ARR( 0.533E-11,   500., 0.0);
+{ 35661} G2P502O +PERO6              =  0.460G1P500t + 0.270GPN500O + 0.270GPN501M                 : ARR( 0.488E-13, -1250., 0.0);
+{ 35662} G2P502O +PERO9              =  0.800G1P500t + 0.200GPN501M                                : ARR( 0.100E-10,     0., 0.0);
+{ 35663} G1P502v                     =       GCH2O   +      GPD4000 +      GHO                     : ARR( 0.200E+15,  7140., 0.0);
+{ 35664} G1P502v                     =       GHD2000 +      G2P3000                                : ARR( 0.200E+15,  7118., 0.0);
+{ 35665} G1P502w                     =       GPN501G +      GHO                                    : ARR( 0.160E+12,  2905., 0.0);
+{ 35666} G1P502w                     =       GHN400G +      GCO     +      GNO2                    : ARR( 0.200E+15,  4949., 0.0);
+{ 35667} GHN505B +GHO                =       GNN502v +      GHO                                    : ARR( 0.329E-11,     0., 0.0);
+{ 35668} GHN505B +GHO                =       G3H502C                                               : ARR( 0.425E-11,     0., 0.0);
+{ 35669} GHN505B +GHO                =       G2N505W                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 35670} GHN505B +GNO3               =       G3H502C +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 35671} GHN505B+HV               =       G1N504q +      GHO                                    :  0.100E+01*SUN;
+{ 35672} GHN505B+HV               =       G1H5091 +      GNO2                                   :  0.100E+01*SUN;
+{ 35673} GHN505B+HV               =       G1H5092 +      GNO2                                   :  0.100E+01*SUN;
+{ 35674} GHN505B+HV               =       GHN400G +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 35675} GHN505B+HV               =       G2H3002 +      GND2000 +      GNO2                    :  0.100E+01*SUN;
+{ 35676} G3H502C +GHO2               =  0.800GGH502l + 0.200GAH502d + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 35677} G3H502C +GNO                =       GHN400G + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 35678} G3H502C +GNO2               =       GPH502i                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 35679} G3H502C +GNO3               =       GHN400G + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 35680} G3H502C +MEPERO             =  0.685GHN400G + 0.315GAH502d + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 35681} G3H502C +PERO1              =  0.800GHN400G + 0.200GAH502d + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 35682} G3H502C +PERO2              =  0.750GHN400G + 0.250GAH502d + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 35683} G3H502C +PERO3              =  0.800GHN400G + 0.200GAH502d + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 35684} G3H502C +PERO5              =  0.650GHN400G + 0.350GAH502d + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 35685} G3H502C +PERO6              =  0.650GHN400G + 0.350GAH502d + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 35686} G3H502C +PERO9              =       GHN400G +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 35687} G2N505W +GNO                =       G1N504q +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 35688} G2N505W +GNO                =       GNN501l                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 35689} G2N505W +GHO2               =       GHN505B                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 35690} G2N505W +GNO3               =       G1N504q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 35691} G2N505W +MEPERO             =  0.480G1N504q + 0.260GNN501T + 0.260GNN502v                 : ARR( 0.164E-12,  -795., 0.0);
+{ 35692} G2N505W +PERO1              =  0.600G1N504q + 0.200GNN501T + 0.200GNN502v                 : ARR( 0.126E-12,  -850., 0.0);
+{ 35693} G2N505W +PERO2              =  0.560G1N504q + 0.220GNN501T + 0.220GNN502v                 : ARR( 0.471E-13, -1350., 0.0);
+{ 35694} G2N505W +PERO3              =  0.600G1N504q + 0.200GNN501T + 0.200GNN502v                 : ARR( 0.142E-12, -1200., 0.0);
+{ 35695} G2N505W +PERO5              =  0.600G1N504q + 0.200GNN501T + 0.200GNN502v                 : ARR( 0.533E-11,   500., 0.0);
+{ 35696} G2N505W +PERO6              =  0.460G1N504q + 0.270GNN501T + 0.270GNN502v                 : ARR( 0.488E-13, -1250., 0.0);
+{ 35697} G2N505W +PERO9              =  0.800G1N504q + 0.200GNN502v                                : ARR( 0.100E-10,     0., 0.0);
+{ 35698} G1H5091                     =       G3H500J                                               : ARR( 0.800E+11,  5278., 0.0);
+{ 35699} G1H5091                     =       GCH2O   +      GND400D +      GHO                     : ARR( 0.200E+15,  7140., 0.0);
+{ 35700} G1H5091                     =       GHD2000 +      G2N300A                                : ARR( 0.200E+15,  7118., 0.0);
+{ 35701} G1H5092                     =       GND500m +      GHO                                    : ARR( 0.160E+12,  2905., 0.0);
+{ 35702} G1H5092                     =       GHN400G +      GCO     +      GHO2                    : ARR( 0.200E+15,  5437., 0.0);
+{ 35703} GHH501w +GHO                =       GHN505N +      GHO                                    : ARR( 0.327E-11,     0., 0.0);
+{ 35704} GHH501w +GHO                =       GHN505C +      GHO                                    : ARR( 0.256E-10,     0., 0.0);
+{ 35705} GHH501w +GHO                =       G3H502D                                               : ARR( 0.211E-10,     0., 0.0);
+{ 35706} GHH501w +GHO                =       G2H503E                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 35707} GHH501w +GHO                =       G2H503F                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 35708} GHH501w +GNO3               =       G3H502D +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 35709} GHH501w+HV               =       G1H506D +      GHO                                    :  0.100E+01*SUN;
+{ 35710} GHH501w+HV               =       G1H5093 +      GNO2                                   :  0.100E+01*SUN;
+{ 35711} GHH501w+HV               =       G1H5092 +      GHO                                    :  0.100E+01*SUN;
+{ 35712} GHH501w+HV               =       GHN400G +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 35713} G3H502D +GHO2               =  0.800GGH502m + 0.200GAH502w + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 35714} G3H502D +GNO                =       GHN400G +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 35715} G3H502D +GNO2               =       GPH5035                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 35716} G3H502D +GNO3               =       GHN400G +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 35717} G3H502D +MEPERO             =  0.685GHN400G + 0.315GAH502w + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 35718} G3H502D +PERO1              =  0.800GHN400G + 0.200GAH502w + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 35719} G3H502D +PERO2              =  0.750GHN400G + 0.250GAH502w + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 35720} G3H502D +PERO3              =  0.800GHN400G + 0.200GAH502w + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 35721} G3H502D +PERO5              =  0.650GHN400G + 0.350GAH502w + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 35722} G3H502D +PERO6              =  0.650GHN400G + 0.350GAH502w + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 35723} G3H502D +PERO9              =       GHN400G +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 35724} G2H503E +GNO                =       G1H506D +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 35725} G2H503E +GNO                =       GHN503Y                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 35726} G2H503E +GHO2               =       GHH501w                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 35727} G2H503E +GNO3               =       G1H506D +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 35728} G2H503E +MEPERO             =  0.480G1H506D + 0.260GHN503M + 0.260GHN505N                 : ARR( 0.164E-12,  -795., 0.0);
+{ 35729} G2H503E +PERO1              =  0.600G1H506D + 0.200GHN503M + 0.200GHN505N                 : ARR( 0.126E-12,  -850., 0.0);
+{ 35730} G2H503E +PERO2              =  0.560G1H506D + 0.220GHN503M + 0.220GHN505N                 : ARR( 0.471E-13, -1350., 0.0);
+{ 35731} G2H503E +PERO3              =  0.600G1H506D + 0.200GHN503M + 0.200GHN505N                 : ARR( 0.142E-12, -1200., 0.0);
+{ 35732} G2H503E +PERO5              =  0.600G1H506D + 0.200GHN503M + 0.200GHN505N                 : ARR( 0.533E-11,   500., 0.0);
+{ 35733} G2H503E +PERO6              =  0.460G1H506D + 0.270GHN503M + 0.270GHN505N                 : ARR( 0.488E-13, -1250., 0.0);
+{ 35734} G2H503E +PERO9              =  0.800G1H506D + 0.200GHN505N                                : ARR( 0.100E-10,     0., 0.0);
+{ 35735} G2H503F +GNO                =       G1H5092 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 35736} G2H503F +GNO                =       GHN505B                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 35737} G2H503F +GHO2               =       GHH501w                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 35738} G2H503F +GNO3               =       G1H5092 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 35739} G2H503F +MEPERO             =  0.340G1H5092 + 0.330GHN5041 + 0.330GHN505C                 : ARR( 0.565E-13,  -845., 0.0);
+{ 35740} G2H503F +PERO1              =  0.460G1H5092 + 0.270GHN5041 + 0.270GHN505C                 : ARR( 0.434E-13,  -900., 0.0);
+{ 35741} G2H503F +PERO2              =  0.400G1H5092 + 0.300GHN5041 + 0.300GHN505C                 : ARR( 0.162E-13, -1400., 0.0);
+{ 35742} G2H503F +PERO3              =  0.460G1H5092 + 0.270GHN5041 + 0.270GHN505C                 : ARR( 0.488E-13, -1250., 0.0);
+{ 35743} G2H503F +PERO5              =  0.460G1H5092 + 0.270GHN5041 + 0.270GHN505C                 : ARR( 0.183E-11,   450., 0.0);
+{ 35744} G2H503F +PERO6              =  0.300G1H5092 + 0.350GHN5041 + 0.350GHN505C                 : ARR( 0.168E-13, -1300., 0.0);
+{ 35745} G2H503F +PERO9              =  0.650G1H5092 + 0.350GHN505C                                : ARR( 0.100E-10,     0., 0.0);
+{ 35746} G1H5093                     =       G3H501P                                               : ARR( 0.800E+11,  4559., 0.0);
+{ 35747} G1H5093                     =       GCH2O   +      GHD400C +      GHO                     : ARR( 0.200E+15,  7140., 0.0);
+{ 35748} G1H5093                     =       GHD2000 +      G2H300A                                : ARR( 0.200E+15,  7118., 0.0);
+{ 35749} GHN505C +GHO                =       GND5014 +      GHO                                    : ARR( 0.331E-11,     0., 0.0);
+{ 35750} GHN505C +GHO                =       G3H400E +      GCO                                    : ARR( 0.130E-10,     0., 0.0);
+{ 35751} GHN505C +GHO                =       G2N505X                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 35752} GHN505C +GNO3               =       G3H400E +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 35753} GHN505C+HV               =       G1N5053 +      GHO                                    :  0.100E+01*SUN;
+{ 35754} GHN505C+HV               =       G1H5077 +      GNO2                                   :  0.100E+01*SUN;
+{ 35755} GHN505C+HV               =       G3H400E +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 35756} GHN505C+HV               =       GHN400G +      GCO                                    :  0.100E+01*SUN;
+{ 35757} GHN505C+HV               =       GHN3001 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 35758} G2N505X +GNO                =       G1N5053 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 35759} G2N505X +GNO                =       GNN501t                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 35760} G2N505X +GHO2               =       GHN505C                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 35761} G2N505X +GNO3               =       G1N5053 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 35762} G2N505X +MEPERO             =  0.480G1N5053 + 0.260GND500N + 0.260GND5014                 : ARR( 0.164E-12,  -795., 0.0);
+{ 35763} G2N505X +PERO1              =  0.600G1N5053 + 0.200GND500N + 0.200GND5014                 : ARR( 0.126E-12,  -850., 0.0);
+{ 35764} G2N505X +PERO2              =  0.560G1N5053 + 0.220GND500N + 0.220GND5014                 : ARR( 0.471E-13, -1350., 0.0);
+{ 35765} G2N505X +PERO3              =  0.600G1N5053 + 0.200GND500N + 0.200GND5014                 : ARR( 0.142E-12, -1200., 0.0);
+{ 35766} G2N505X +PERO5              =  0.600G1N5053 + 0.200GND500N + 0.200GND5014                 : ARR( 0.533E-11,   500., 0.0);
+{ 35767} G2N505X +PERO6              =  0.460G1N5053 + 0.270GND500N + 0.270GND5014                 : ARR( 0.488E-13, -1250., 0.0);
+{ 35768} G2N505X +PERO9              =  0.800G1N5053 + 0.200GND5014                                : ARR( 0.100E-10,     0., 0.0);
+{ 35769} GGH400I +GHO                =       GGN400I +      GHO                                    : ARR( 0.331E-11,     0., 0.0);
+{ 35770} GGH400I +GHO                =       G2G400T                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 35771} GGH400I +GHO                =       G3H400E                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 35772} GGH400I+HV               =       G1G400H +      GHO                                    :  0.100E+01*SUN;
+{ 35773} GGH400I+HV               =       G1G400U +      GNO2                                   :  0.100E+01*SUN;
+{ 35774} GGH400I+HV               =       G2H3008 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 35775} G2G400T +GNO                =       G1G400H +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 35776} G2G400T +GNO                =       GGN4007                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 35777} G2G400T +GHO2               =       GGH400I                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 35778} G2G400T +GNO3               =       G1G400H +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 35779} G2G400T +MEPERO             =  0.480G1G400H + 0.260GGN4003 + 0.260GGN400I                 : ARR( 0.164E-12,  -795., 0.0);
+{ 35780} G2G400T +PERO1              =  0.600G1G400H + 0.200GGN4003 + 0.200GGN400I                 : ARR( 0.126E-12,  -850., 0.0);
+{ 35781} G2G400T +PERO2              =  0.560G1G400H + 0.220GGN4003 + 0.220GGN400I                 : ARR( 0.471E-13, -1350., 0.0);
+{ 35782} G2G400T +PERO3              =  0.600G1G400H + 0.200GGN4003 + 0.200GGN400I                 : ARR( 0.142E-12, -1200., 0.0);
+{ 35783} G2G400T +PERO5              =  0.600G1G400H + 0.200GGN4003 + 0.200GGN400I                 : ARR( 0.533E-11,   500., 0.0);
+{ 35784} G2G400T +PERO6              =  0.460G1G400H + 0.270GGN4003 + 0.270GGN400I                 : ARR( 0.488E-13, -1250., 0.0);
+{ 35785} G2G400T +PERO9              =  0.800G1G400H + 0.200GGN400I                                : ARR( 0.100E-10,     0., 0.0);
+{ 35786} GAH400L +GHO                =       GAN400J +      GHO                                    : ARR( 0.332E-11,     0., 0.0);
+{ 35787} GAH400L +GHO                =       G2A400Y                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 35788} GAH400L +GHO                =       G2H3008 +      GCO2                                   : ARR( 0.537E-12,     0., 0.0);
+{ 35789} GAH400L+HV               =       G1A400Z +      GNO2                                   :  0.100E+01*SUN;
+{ 35790} GAH400L+HV               =       G1A400B +      GHO                                    :  0.100E+01*SUN;
+{ 35791} GGH500l +GHO                =       GGH5017 +      GHO                                    : ARR( 0.166E-10,     0., 0.0);
+{ 35792} GGH500l +GHO                =       GGH500F +      GHO                                    : ARR( 0.426E-10,     0., 0.0);
+{ 35793} GGH500l +GHO                =       G2G501l                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 35794} GGH500l +GHO                =       G2G501m                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 35795} GGH500l +GHO                =       G3H500Z                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 35796} GGH500l+HV               =       G1G5017 +      GHO                                    :  0.100E+01*SUN;
+{ 35797} GGH500l+HV               =       G1G5027 +      GHO                                    :  0.100E+01*SUN;
+{ 35798} GGH500l+HV               =       G2H400d +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 35799} G2G501l +GNO                =       G1G5017 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 35800} G2G501l +GNO                =       GGH5009                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 35801} G2G501l +GHO2               =       GGH500l                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 35802} G2G501l +GNO3               =       G1G5017 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 35803} G2G501l +MEPERO             =  0.480G1G5017 + 0.260GGH500m + 0.260GGH5017                 : ARR( 0.164E-12,  -795., 0.0);
+{ 35804} G2G501l +PERO1              =  0.600G1G5017 + 0.200GGH500m + 0.200GGH5017                 : ARR( 0.126E-12,  -850., 0.0);
+{ 35805} G2G501l +PERO2              =  0.560G1G5017 + 0.220GGH500m + 0.220GGH5017                 : ARR( 0.471E-13, -1350., 0.0);
+{ 35806} G2G501l +PERO3              =  0.600G1G5017 + 0.200GGH500m + 0.200GGH5017                 : ARR( 0.142E-12, -1200., 0.0);
+{ 35807} G2G501l +PERO5              =  0.600G1G5017 + 0.200GGH500m + 0.200GGH5017                 : ARR( 0.533E-11,   500., 0.0);
+{ 35808} G2G501l +PERO6              =  0.460G1G5017 + 0.270GGH500m + 0.270GGH5017                 : ARR( 0.488E-13, -1250., 0.0);
+{ 35809} G2G501l +PERO9              =  0.800G1G5017 + 0.200GGH5017                                : ARR( 0.100E-10,     0., 0.0);
+{ 35810} G2G501m +GNO                =       G1G5027 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 35811} G2G501m +GNO                =       GGH500k                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 35812} G2G501m +GHO2               =       GGH500l                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 35813} G2G501m +GNO3               =       G1G5027 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 35814} G2G501m +MEPERO             =  0.340G1G5027 + 0.330GGH5000 + 0.330GGH500F                 : ARR( 0.565E-13,  -845., 0.0);
+{ 35815} G2G501m +PERO1              =  0.460G1G5027 + 0.270GGH5000 + 0.270GGH500F                 : ARR( 0.434E-13,  -900., 0.0);
+{ 35816} G2G501m +PERO2              =  0.400G1G5027 + 0.300GGH5000 + 0.300GGH500F                 : ARR( 0.162E-13, -1400., 0.0);
+{ 35817} G2G501m +PERO3              =  0.460G1G5027 + 0.270GGH5000 + 0.270GGH500F                 : ARR( 0.488E-13, -1250., 0.0);
+{ 35818} G2G501m +PERO5              =  0.460G1G5027 + 0.270GGH5000 + 0.270GGH500F                 : ARR( 0.183E-11,   450., 0.0);
+{ 35819} G2G501m +PERO6              =  0.300G1G5027 + 0.350GGH5000 + 0.350GGH500F                 : ARR( 0.168E-13, -1300., 0.0);
+{ 35820} G2G501m +PERO9              =  0.650G1G5027 + 0.350GGH500F                                : ARR( 0.100E-10,     0., 0.0);
+{ 35821} GAH500p +GHO                =       GAH500F +      GHO                                    : ARR( 0.429E-10,     0., 0.0);
+{ 35822} GAH500p +GHO                =       GAH501O +      GHO                                    : ARR( 0.167E-10,     0., 0.0);
+{ 35823} GAH500p +GHO                =       G2A502I                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 35824} GAH500p +GHO                =       G2A502J                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 35825} GAH500p+HV               =       G1A502g +      GHO                                    :  0.100E+01*SUN;
+{ 35826} GAH500p+HV               =       G1A5014 +      GHO                                    :  0.100E+01*SUN;
+{ 35827} G2A502I +GNO                =       G1A502g +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 35828} G2A502I +GNO                =       GAH500o                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 35829} G2A502I +GHO2               =       GAH500p                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 35830} G2A502I +GNO3               =       G1A502g +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 35831} G2A502I +MEPERO             =  0.340G1A502g + 0.330GAH5000 + 0.330GAH500F                 : ARR( 0.565E-13,  -845., 0.0);
+{ 35832} G2A502I +PERO1              =  0.460G1A502g + 0.270GAH5000 + 0.270GAH500F                 : ARR( 0.434E-13,  -900., 0.0);
+{ 35833} G2A502I +PERO2              =  0.400G1A502g + 0.300GAH5000 + 0.300GAH500F                 : ARR( 0.162E-13, -1400., 0.0);
+{ 35834} G2A502I +PERO3              =  0.460G1A502g + 0.270GAH5000 + 0.270GAH500F                 : ARR( 0.488E-13, -1250., 0.0);
+{ 35835} G2A502I +PERO5              =  0.460G1A502g + 0.270GAH5000 + 0.270GAH500F                 : ARR( 0.183E-11,   450., 0.0);
+{ 35836} G2A502I +PERO6              =  0.300G1A502g + 0.350GAH5000 + 0.350GAH500F                 : ARR( 0.168E-13, -1300., 0.0);
+{ 35837} G2A502I +PERO9              =  0.650G1A502g + 0.350GAH500F                                : ARR( 0.100E-10,     0., 0.0);
+{ 35838} G2A502J +GNO                =       G1A5014 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 35839} G2A502J +GNO                =       GAH5008                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 35840} G2A502J +GHO2               =       GAH500p                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 35841} G2A502J +GNO3               =       G1A5014 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 35842} G2A502J +MEPERO             =  0.480G1A5014 + 0.260GAH500q + 0.260GAH501O                 : ARR( 0.164E-12,  -795., 0.0);
+{ 35843} G2A502J +PERO1              =  0.600G1A5014 + 0.200GAH500q + 0.200GAH501O                 : ARR( 0.126E-12,  -850., 0.0);
+{ 35844} G2A502J +PERO2              =  0.560G1A5014 + 0.220GAH500q + 0.220GAH501O                 : ARR( 0.471E-13, -1350., 0.0);
+{ 35845} G2A502J +PERO3              =  0.600G1A5014 + 0.200GAH500q + 0.200GAH501O                 : ARR( 0.142E-12, -1200., 0.0);
+{ 35846} G2A502J +PERO5              =  0.600G1A5014 + 0.200GAH500q + 0.200GAH501O                 : ARR( 0.533E-11,   500., 0.0);
+{ 35847} G2A502J +PERO6              =  0.460G1A5014 + 0.270GAH500q + 0.270GAH501O                 : ARR( 0.488E-13, -1250., 0.0);
+{ 35848} G2A502J +PERO9              =  0.800G1A5014 + 0.200GAH501O                                : ARR( 0.100E-10,     0., 0.0);
+{ 35849} GPH500r                     =       G3H500Z +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 35850} GPH500r +GHO                =       GPH501Q +      GHO                                    : ARR( 0.167E-10,     0., 0.0);
+{ 35851} GPH500r +GHO                =       GPH500F +      GHO                                    : ARR( 0.427E-10,     0., 0.0);
+{ 35852} GPH500r +GHO                =       G2P502P                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 35853} GPH500r +GHO                =       G2P502Q                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 35854} GPH500r+HV               =       G1P500x +      GHO                                    :  0.100E+01*SUN;
+{ 35855} GPH500r+HV               =       G1P502v +      GHO                                    :  0.100E+01*SUN;
+{ 35856} GPH500r+HV               =       G3H500Z +      GNO2                                   :  0.100E+01*SUN;
+{ 35857} G2P502P +GNO                =       G1P500x +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 35858} G2P502P +GNO                =       GPH5007                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 35859} G2P502P +GHO2               =       GPH500r                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 35860} G2P502P +GNO3               =       G1P500x +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 35861} G2P502P +MEPERO             =  0.480G1P500x + 0.260GPH500s + 0.260GPH501Q                 : ARR( 0.164E-12,  -795., 0.0);
+{ 35862} G2P502P +PERO1              =  0.600G1P500x + 0.200GPH500s + 0.200GPH501Q                 : ARR( 0.126E-12,  -850., 0.0);
+{ 35863} G2P502P +PERO2              =  0.560G1P500x + 0.220GPH500s + 0.220GPH501Q                 : ARR( 0.471E-13, -1350., 0.0);
+{ 35864} G2P502P +PERO3              =  0.600G1P500x + 0.200GPH500s + 0.200GPH501Q                 : ARR( 0.142E-12, -1200., 0.0);
+{ 35865} G2P502P +PERO5              =  0.600G1P500x + 0.200GPH500s + 0.200GPH501Q                 : ARR( 0.533E-11,   500., 0.0);
+{ 35866} G2P502P +PERO6              =  0.460G1P500x + 0.270GPH500s + 0.270GPH501Q                 : ARR( 0.488E-13, -1250., 0.0);
+{ 35867} G2P502P +PERO9              =  0.800G1P500x + 0.200GPH501Q                                : ARR( 0.100E-10,     0., 0.0);
+{ 35868} G2P502Q +GNO                =       G1P502v +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 35869} G2P502Q +GNO                =       GPH500q                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 35870} G2P502Q +GHO2               =       GPH500r                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 35871} G2P502Q +GNO3               =       G1P502v +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 35872} G2P502Q +MEPERO             =  0.340G1P502v + 0.330GPH5000 + 0.330GPH500F                 : ARR( 0.565E-13,  -845., 0.0);
+{ 35873} G2P502Q +PERO1              =  0.460G1P502v + 0.270GPH5000 + 0.270GPH500F                 : ARR( 0.434E-13,  -900., 0.0);
+{ 35874} G2P502Q +PERO2              =  0.400G1P502v + 0.300GPH5000 + 0.300GPH500F                 : ARR( 0.162E-13, -1400., 0.0);
+{ 35875} G2P502Q +PERO3              =  0.460G1P502v + 0.270GPH5000 + 0.270GPH500F                 : ARR( 0.488E-13, -1250., 0.0);
+{ 35876} G2P502Q +PERO5              =  0.460G1P502v + 0.270GPH5000 + 0.270GPH500F                 : ARR( 0.183E-11,   450., 0.0);
+{ 35877} G2P502Q +PERO6              =  0.300G1P502v + 0.350GPH5000 + 0.350GPH500F                 : ARR( 0.168E-13, -1300., 0.0);
+{ 35878} G2P502Q +PERO9              =  0.650G1P502v + 0.350GPH500F                                : ARR( 0.100E-10,     0., 0.0);
+{ 35879} GHH400c +GHO                =       GHH400B +      GHO                                    : ARR( 0.188E-10,     0., 0.0);
+{ 35880} GHH400c +GHO                =       GHH400D +      GHO                                    : ARR( 0.481E-10,     0., 0.0);
+{ 35881} GHH400c +GHO                =       GHH400A +      GHO                                    : ARR( 0.188E-10,     0., 0.0);
+{ 35882} GHH400c+HV               =       G1H400h +      GHO                                    :  0.100E+01*SUN;
+{ 35883} GHH400c+HV               =       G1H401Y +      GHO                                    :  0.100E+01*SUN;
+{ 35884} GHH400c+HV               =       G1H400u +      GHO                                    :  0.100E+01*SUN;
+{ 35885} GHN505D +GHO                =       GND500x +      GHO                                    : ARR( 0.271E-10,     0., 0.0);
+{ 35886} GHN505D +GHO                =       G3H502E                                               : ARR( 0.216E-10,     0., 0.0);
+{ 35887} GHN505D +GHO                =       G2N505Y                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 35888} GHN505D +GNO3               =       G3H502E +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 35889} GHN505D+HV               =       G1H5094 +      GNO2                                   :  0.100E+01*SUN;
+{ 35890} GHN505D+HV               =       G1N5061 +      GHO                                    :  0.100E+01*SUN;
+{ 35891} GHN505D+HV               =       G2H400S +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 35892} GHN505D+HV               =       GDK3001 +      GD02000 +      GHO     +      GNO2     :  0.100E+01*SUN;
+{ 35893} G3H502E +GHO2               =  0.800GGH502o + 0.200GAH5026 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 35894} G3H502E +GNO                =       G2H400S +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 35895} G3H502E +GNO2               =       GPH5023                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 35896} G3H502E +GNO3               =       G2H400S +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 35897} G3H502E +MEPERO             =  0.685G2H400S + 0.315GAH5026 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 35898} G3H502E +PERO1              =  0.800G2H400S + 0.200GAH5026 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 35899} G3H502E +PERO2              =  0.750G2H400S + 0.250GAH5026 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 35900} G3H502E +PERO3              =  0.800G2H400S + 0.200GAH5026 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 35901} G3H502E +PERO5              =  0.650G2H400S + 0.350GAH5026 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 35902} G3H502E +PERO6              =  0.650G2H400S + 0.350GAH5026 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 35903} G3H502E +PERO9              =       G2H400S +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 35904} G2N505Y +GNO                =       G1N5061 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 35905} G2N505Y +GNO                =       GNN502S                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 35906} G2N505Y +GHO2               =       GHN505D                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 35907} G2N505Y +GNO3               =       G1N5061 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 35908} G2N505Y +MEPERO             =  0.340G1N5061 + 0.330GND501B + 0.330GND500x                 : ARR( 0.565E-13,  -845., 0.0);
+{ 35909} G2N505Y +PERO1              =  0.460G1N5061 + 0.270GND501B + 0.270GND500x                 : ARR( 0.434E-13,  -900., 0.0);
+{ 35910} G2N505Y +PERO2              =  0.400G1N5061 + 0.300GND501B + 0.300GND500x                 : ARR( 0.162E-13, -1400., 0.0);
+{ 35911} G2N505Y +PERO3              =  0.460G1N5061 + 0.270GND501B + 0.270GND500x                 : ARR( 0.488E-13, -1250., 0.0);
+{ 35912} G2N505Y +PERO5              =  0.460G1N5061 + 0.270GND501B + 0.270GND500x                 : ARR( 0.183E-11,   450., 0.0);
+{ 35913} G2N505Y +PERO6              =  0.300G1N5061 + 0.350GND501B + 0.350GND500x                 : ARR( 0.168E-13, -1300., 0.0);
+{ 35914} G2N505Y +PERO9              =  0.650G1N5061 + 0.350GND500x                                : ARR( 0.100E-10,     0., 0.0);
+{ 35915} G1H5094                     =       GCH2O   +      GHD400C +      GHO2                    : ARR( 0.200E+15,  5296., 0.0);
+{ 35916} G1H5094                     =       GDO2000 +      GDD3000 +      GHO                     : ARR( 0.200E+15,  4828., 0.0);
+{ 35917} GND501B +GHO                =       GND500x +      GHO2                                   : ARR( 0.703E-11,     0., 0.0);
+{ 35918} GND501B +GHO                =       G3N501f                                               : ARR( 0.223E-10,     0., 0.0);
+{ 35919} GND501B +GNO3               =       G3N501f +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 35920} GND501B+HV               =       G1D501G +      GNO2                                   :  0.100E+01*SUN;
+{ 35921} GND501B+HV               =       G2N400A +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 35922} GND501B+HV               =       GDK3001 +      GD02000 +      GHO2    +      GNO2     :  0.100E+01*SUN;
+{ 35923} G3N501f +GHO2               =  0.800GGN5021 + 0.200GAN501a + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 35924} G3N501f +GNO                =       G2N400A +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 35925} G3N501f +GNO2               =       GPN501c                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 35926} G3N501f +GNO3               =       G2N400A +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 35927} G3N501f +MEPERO             =  0.685G2N400A + 0.315GAN501a + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 35928} G3N501f +PERO1              =  0.800G2N400A + 0.200GAN501a + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 35929} G3N501f +PERO2              =  0.750G2N400A + 0.250GAN501a + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 35930} G3N501f +PERO3              =  0.800G2N400A + 0.200GAN501a + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 35931} G3N501f +PERO5              =  0.650G2N400A + 0.350GAN501a + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 35932} G3N501f +PERO6              =  0.650G2N400A + 0.350GAN501a + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 35933} G3N501f +PERO9              =       G2N400A +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 35934} G1D501G                     =       GDO2000 +      GDD3000 +      GHO2                    : ARR( 0.200E+15,  3619., 0.0);
+{ 35935} GNN502s +GHO                =       GNN502z +      GHO2                                   : ARR( 0.823E-12,     0., 0.0);
+{ 35936} GNN502s +GHO                =       GNN502P +      GNO2                                   : ARR( 0.735E-13,     0., 0.0);
+{ 35937} GNN502s +GHO                =       G1N504o                                               : ARR( 0.215E-17,    85., 2.0);
+{ 35938} GNN502s+HV               =       G1N505f +      GNO2                                   :  0.100E+01*SUN;
+{ 35939} GNN502s+HV               =       G3N3004 +      GND2000 +      GNO2                    :  0.100E+01*SUN;
+{ 35940} GNN502s+HV               =       G1N504W +      GNO2                                   :  0.100E+01*SUN;
+{ 35941} GNN502s+HV               =       G1N506T +      GNO2                                   :  0.100E+01*SUN;
+{ 35942} GHN505E +GHO                =       GHN506X +      GHO2                                   : ARR( 0.835E-12,     0., 0.0);
+{ 35943} GHN505E +GHO                =       GNN501s +      GHO                                    : ARR( 0.522E-11,     0., 0.0);
+{ 35944} GHN505E +GHO                =       G2N5048                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 35945} GHN505E+HV               =       G1H5095 +      GNO2                                   :  0.100E+01*SUN;
+{ 35946} GHN505E+HV               =       G3N3004 +      GND2000 +      GHO                     :  0.100E+01*SUN;
+{ 35947} GHN505E+HV               =       G1N504W +      GHO                                    :  0.100E+01*SUN;
+{ 35948} GHN505E+HV               =       G1H5096 +      GNO2                                   :  0.100E+01*SUN;
+{ 35949} G1H5095                     =       GDO2000 +      G3H3002                                : ARR( 0.200E+15,  3031., 0.0);
+{ 35950} G1H5096 +OXYGEN             =       GHN505x +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 35951} G1H5096                     =       GND400K +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5784., 0.0);
+{ 35952} GHN505F +GHO                =       GHN506f +      GHO2                                   : ARR( 0.252E-11,     0., 0.0);
+{ 35953} GHN505F +GHO                =       GNK500z +      GHO                                    : ARR( 0.516E-11,     0., 0.0);
+{ 35954} GHN505F +GHO                =       G2N504A                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 35955} GHN505F+HV               =       G3K2001 +      G3H3002                                :  0.100E+01*SUN;
+{ 35956} GHN505F+HV               =       G1N504Y +      GHO                                    :  0.100E+01*SUN;
+{ 35957} GHN505F+HV               =       G1H5097 +      GNO2                                   :  0.100E+01*SUN;
+{ 35958} G1H5097 +OXYGEN             =       GHD501H +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 35959} G1H5097                     =       GDK4009 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5364., 0.0);
+{ 35960} GGN500l +GHO                =       GGN500m +      GHO2                                   : ARR( 0.440E-11,     0., 0.0);
+{ 35961} GGN500l +GHO                =       G3N500b                                               : ARR( 0.208E-11,  -190., 0.0);
+{ 35962} GGN500l+HV               =       G1G5029 +      GNO2                                   :  0.100E+01*SUN;
+{ 35963} GGN500l+HV               =       G2N4008 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 35964} G1G5029                     =       G2O2000 +      GGD3000                                : ARR( 0.200E+15,  6436., 0.0);
+{ 35965} G1G5029                     =       GDO3000 +      G2G2000                                : ARR( 0.200E+15,  7196., 0.0);
+{ 35966} GHN505G +GHO                =       GHN505H +      GHO2                                   : ARR( 0.410E-11,     0., 0.0);
+{ 35967} GHN505G +GHO                =       GND500u +      GHO                                    : ARR( 0.840E-11,     0., 0.0);
+{ 35968} GHN505G +GHO                =       G3H502F                                               : ARR( 0.212E-10,     0., 0.0);
+{ 35969} GHN505G +GHO                =       G2N505Z                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 35970} GHN505G +GNO3               =       G3H502F +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 35971} GHN505G+HV               =       G1N505z +      GHO                                    :  0.100E+01*SUN;
+{ 35972} GHN505G+HV               =       G1H504K +      GNO2                                   :  0.100E+01*SUN;
+{ 35973} GHN505G+HV               =       G2H401E +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 35974} GHN505G+HV               =       GDK3001 +      GD02000 +      GNO2    +      GHO      :  0.100E+01*SUN;
+{ 35975} G3H502F +GHO2               =  0.800GGH502p + 0.200GAH5028 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 35976} G3H502F +GNO                =       G2H401E +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 35977} G3H502F +GNO2               =       GPH5025                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 35978} G3H502F +GNO3               =       G2H401E +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 35979} G3H502F +MEPERO             =  0.685G2H401E + 0.315GAH5028 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 35980} G3H502F +PERO1              =  0.800G2H401E + 0.200GAH5028 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 35981} G3H502F +PERO2              =  0.750G2H401E + 0.250GAH5028 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 35982} G3H502F +PERO3              =  0.800G2H401E + 0.200GAH5028 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 35983} G3H502F +PERO5              =  0.650G2H401E + 0.350GAH5028 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 35984} G3H502F +PERO6              =  0.650G2H401E + 0.350GAH5028 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 35985} G3H502F +PERO9              =       G2H401E +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 35986} G2N505Z +GNO                =       G1N505z +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 35987} G2N505Z +GNO                =       GNN502S                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 35988} G2N505Z +GHO2               =       GHN505G                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 35989} G2N505Z +GNO3               =       G1N505z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 35990} G2N505Z +MEPERO             =  0.340G1N505z + 0.330GND500I + 0.330GND500u                 : ARR( 0.565E-13,  -845., 0.0);
+{ 35991} G2N505Z +PERO1              =  0.460G1N505z + 0.270GND500I + 0.270GND500u                 : ARR( 0.434E-13,  -900., 0.0);
+{ 35992} G2N505Z +PERO2              =  0.400G1N505z + 0.300GND500I + 0.300GND500u                 : ARR( 0.162E-13, -1400., 0.0);
+{ 35993} G2N505Z +PERO3              =  0.460G1N505z + 0.270GND500I + 0.270GND500u                 : ARR( 0.488E-13, -1250., 0.0);
+{ 35994} G2N505Z +PERO5              =  0.460G1N505z + 0.270GND500I + 0.270GND500u                 : ARR( 0.183E-11,   450., 0.0);
+{ 35995} G2N505Z +PERO6              =  0.300G1N505z + 0.350GND500I + 0.350GND500u                 : ARR( 0.168E-13, -1300., 0.0);
+{ 35996} G2N505Z +PERO9              =  0.650G1N505z + 0.350GND500u                                : ARR( 0.100E-10,     0., 0.0);
+{ 35997} G2H401E +GNO                =       G1H401G +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 35998} G2H401E +GNO                =       GHN400m                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 35999} G2H401E +GHO2               =       GHH400v                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 36000} G2H401E +GNO3               =       G1H401G +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 36001} G2H401E +MEPERO             =  0.480G1H401G + 0.260GHN400e + 0.260GHN400L                 : ARR( 0.164E-12,  -795., 0.0);
+{ 36002} G2H401E +PERO1              =  0.600G1H401G + 0.200GHN400e + 0.200GHN400L                 : ARR( 0.126E-12,  -850., 0.0);
+{ 36003} G2H401E +PERO2              =  0.560G1H401G + 0.220GHN400e + 0.220GHN400L                 : ARR( 0.471E-13, -1350., 0.0);
+{ 36004} G2H401E +PERO3              =  0.600G1H401G + 0.200GHN400e + 0.200GHN400L                 : ARR( 0.142E-12, -1200., 0.0);
+{ 36005} G2H401E +PERO5              =  0.600G1H401G + 0.200GHN400e + 0.200GHN400L                 : ARR( 0.533E-11,   500., 0.0);
+{ 36006} G2H401E +PERO6              =  0.460G1H401G + 0.270GHN400e + 0.270GHN400L                 : ARR( 0.488E-13, -1250., 0.0);
+{ 36007} G2H401E +PERO9              =  0.800G1H401G + 0.200GHN400L                                : ARR( 0.100E-10,     0., 0.0);
+{ 36008} GHD5011 +GHO                =       GDK500Q +      GHO                                    : ARR( 0.450E-10,     0., 0.0);
+{ 36009} GHD5011 +GHO                =       GHD5012 +      GHO2                                   : ARR( 0.357E-10,     0., 0.0);
+{ 36010} GHD5011 +GHO                =       G3H502G                                               : ARR( 0.227E-10,     0., 0.0);
+{ 36011} GHD5011 +GNO3               =       G3H502G +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 36012} GHD5011+HV               =       G1D501G +      GHO                                    :  0.100E+01*SUN;
+{ 36013} GHD5011+HV               =       G2H400A +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 36014} GHD5011+HV               =       GDK3001 +      GD02000 +      GHO2    +      GHO      :  0.100E+01*SUN;
+{ 36015} G3H502G +GHO2               =  0.800GGH502q + 0.200GAH502y + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 36016} G3H502G +GNO                =       G2H400A +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 36017} G3H502G +GNO2               =       GPH5036                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 36018} G3H502G +GNO3               =       G2H400A +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 36019} G3H502G +MEPERO             =  0.685G2H400A + 0.315GAH502y + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36020} G3H502G +PERO1              =  0.800G2H400A + 0.200GAH502y + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36021} G3H502G +PERO2              =  0.750G2H400A + 0.250GAH502y + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36022} G3H502G +PERO3              =  0.800G2H400A + 0.200GAH502y + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36023} G3H502G +PERO5              =  0.650G2H400A + 0.350GAH502y + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36024} G3H502G +PERO6              =  0.650G2H400A + 0.350GAH502y + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36025} G3H502G +PERO9              =       G2H400A +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 36026} GHD5012 +GHO                =       GHD5016 +      GHO2                                   : ARR( 0.133E-10,     0., 0.0);
+{ 36027} GHD5012 +GHO                =       GDK500P +      GHO                                    : ARR( 0.262E-10,     0., 0.0);
+{ 36028} GHD5012 +GHO                =       G3H502H                                               : ARR( 0.686E-10,     0., 0.0);
+{ 36029} GHD5012 +GNO3               =       G3H502H +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 36030} GHD5012+HV               =       G1D501A +      GHO                                    :  0.100E+01*SUN;
+{ 36031} GHD5012+HV               =       G3H3004 +      G2D2000                                :  0.100E+01*SUN;
+{ 36032} GHD5012+HV               =       G2H4015 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 36033} G3H502H +GHO2               =  0.800GGH502r + 0.200GAH502L + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 36034} G3H502H +GNO                =       G2H4015 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 36035} G3H502H +GNO2               =       GPH502Q                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 36036} G3H502H +GNO3               =       G2H4015 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 36037} G3H502H +MEPERO             =  0.685G2H4015 + 0.315GAH502L + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36038} G3H502H +PERO1              =  0.800G2H4015 + 0.200GAH502L + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36039} G3H502H +PERO2              =  0.750G2H4015 + 0.250GAH502L + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36040} G3H502H +PERO3              =  0.800G2H4015 + 0.200GAH502L + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36041} G3H502H +PERO5              =  0.650G2H4015 + 0.350GAH502L + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36042} G3H502H +PERO6              =  0.650G2H4015 + 0.350GAH502L + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36043} G3H502H +PERO9              =       G2H4015 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 36044} GHH501x +GHO                =       GHD500t +      GHO                                    : ARR( 0.438E-10,     0., 0.0);
+{ 36045} GHH501x +GHO                =       GHD5012 +      GHO                                    : ARR( 0.139E-09,     0., 0.0);
+{ 36046} GHH501x +GHO                =       G3H502I                                               : ARR( 0.221E-10,     0., 0.0);
+{ 36047} GHH501x +GNO3               =       G3H502I +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 36048} GHH501x+HV               =       G1H5094 +      GHO                                    :  0.100E+01*SUN;
+{ 36049} GHH501x+HV               =       G1H504K +      GHO                                    :  0.100E+01*SUN;
+{ 36050} GHH501x+HV               =       G2H400W +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 36051} GHH501x+HV               =       GDK3001 +      GD02000 + 2.000GHO                     :  0.100E+01*SUN;
+{ 36052} G3H502I +GHO2               =  0.800GGH502s + 0.200GAH502z + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 36053} G3H502I +GNO                =       G2H400W +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 36054} G3H502I +GNO2               =       GPH5037                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 36055} G3H502I +GNO3               =       G2H400W +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 36056} G3H502I +MEPERO             =  0.685G2H400W + 0.315GAH502z + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36057} G3H502I +PERO1              =  0.800G2H400W + 0.200GAH502z + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36058} G3H502I +PERO2              =  0.750G2H400W + 0.250GAH502z + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36059} G3H502I +PERO3              =  0.800G2H400W + 0.200GAH502z + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36060} G3H502I +PERO5              =  0.650G2H400W + 0.350GAH502z + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36061} G3H502I +PERO6              =  0.650G2H400W + 0.350GAH502z + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36062} G3H502I +PERO9              =       G2H400W +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 36063} GGH500m +GHO                =       GGH5017 +      GHO2                                   : ARR( 0.421E-11,     0., 0.0);
+{ 36064} GGH500m +GHO                =       GGK5007 +      GHO                                    : ARR( 0.431E-10,     0., 0.0);
+{ 36065} GGH500m +GHO                =       G2G501n                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 36066} GGH500m +GHO                =       G3H500a                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 36067} GGH500m+HV               =       G1G501R +      GHO                                    :  0.100E+01*SUN;
+{ 36068} GGH500m+HV               =       G2H4002 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 36069} G2G501n +GNO                =       G1G501R +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 36070} G2G501n +GNO                =       GGN500O                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 36071} G2G501n +GHO2               =       GGH500m                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 36072} G2G501n +GNO3               =       G1G501R +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 36073} G2G501n +MEPERO             =  0.340G1G501R + 0.330GGO5001 + 0.330GGK5007                 : ARR( 0.565E-13,  -845., 0.0);
+{ 36074} G2G501n +PERO1              =  0.460G1G501R + 0.270GGO5001 + 0.270GGK5007                 : ARR( 0.434E-13,  -900., 0.0);
+{ 36075} G2G501n +PERO2              =  0.400G1G501R + 0.300GGO5001 + 0.300GGK5007                 : ARR( 0.162E-13, -1400., 0.0);
+{ 36076} G2G501n +PERO3              =  0.460G1G501R + 0.270GGO5001 + 0.270GGK5007                 : ARR( 0.488E-13, -1250., 0.0);
+{ 36077} G2G501n +PERO5              =  0.460G1G501R + 0.270GGO5001 + 0.270GGK5007                 : ARR( 0.183E-11,   450., 0.0);
+{ 36078} G2G501n +PERO6              =  0.300G1G501R + 0.350GGO5001 + 0.350GGK5007                 : ARR( 0.168E-13, -1300., 0.0);
+{ 36079} G2G501n +PERO9              =  0.650G1G501R + 0.350GGK5007                                : ARR( 0.100E-10,     0., 0.0);
+{ 36080} GAH500q +GHO                =       GAH501O +      GHO2                                   : ARR( 0.424E-11,     0., 0.0);
+{ 36081} GAH500q +GHO                =       GAK5007 +      GHO                                    : ARR( 0.435E-10,     0., 0.0);
+{ 36082} GAH500q +GHO                =       G2A502K                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 36083} GAH500q+HV               =       G1A501b +      GHO                                    :  0.100E+01*SUN;
+{ 36084} G2A502K +GNO                =       G1A501b +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 36085} G2A502K +GNO                =       GAN500O                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 36086} G2A502K +GHO2               =       GAH500q                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 36087} G2A502K +GNO3               =       G1A501b +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 36088} G2A502K +MEPERO             =  0.340G1A501b + 0.330GAO5001 + 0.330GAK5007                 : ARR( 0.565E-13,  -845., 0.0);
+{ 36089} G2A502K +PERO1              =  0.460G1A501b + 0.270GAO5001 + 0.270GAK5007                 : ARR( 0.434E-13,  -900., 0.0);
+{ 36090} G2A502K +PERO2              =  0.400G1A501b + 0.300GAO5001 + 0.300GAK5007                 : ARR( 0.162E-13, -1400., 0.0);
+{ 36091} G2A502K +PERO3              =  0.460G1A501b + 0.270GAO5001 + 0.270GAK5007                 : ARR( 0.488E-13, -1250., 0.0);
+{ 36092} G2A502K +PERO5              =  0.460G1A501b + 0.270GAO5001 + 0.270GAK5007                 : ARR( 0.183E-11,   450., 0.0);
+{ 36093} G2A502K +PERO6              =  0.300G1A501b + 0.350GAO5001 + 0.350GAK5007                 : ARR( 0.168E-13, -1300., 0.0);
+{ 36094} G2A502K +PERO9              =  0.650G1A501b + 0.350GAK5007                                : ARR( 0.100E-10,     0., 0.0);
+{ 36095} GPH500s                     =       G3H500a +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 36096} GPH500s +GHO                =       GPH501Q +      GHO2                                   : ARR( 0.422E-11,     0., 0.0);
+{ 36097} GPH500s +GHO                =       GPK5007 +      GHO                                    : ARR( 0.433E-10,     0., 0.0);
+{ 36098} GPH500s +GHO                =       G2P502R                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 36099} GPH500s+HV               =       G1P501d +      GHO                                    :  0.100E+01*SUN;
+{ 36100} GPH500s+HV               =       G3H500a +      GNO2                                   :  0.100E+01*SUN;
+{ 36101} G2P502R +GNO                =       G1P501d +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 36102} G2P502R +GNO                =       GPN500O                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 36103} G2P502R +GHO2               =       GPH500s                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 36104} G2P502R +GNO3               =       G1P501d +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 36105} G2P502R +MEPERO             =  0.340G1P501d + 0.330GPO5001 + 0.330GPK5007                 : ARR( 0.565E-13,  -845., 0.0);
+{ 36106} G2P502R +PERO1              =  0.460G1P501d + 0.270GPO5001 + 0.270GPK5007                 : ARR( 0.434E-13,  -900., 0.0);
+{ 36107} G2P502R +PERO2              =  0.400G1P501d + 0.300GPO5001 + 0.300GPK5007                 : ARR( 0.162E-13, -1400., 0.0);
+{ 36108} G2P502R +PERO3              =  0.460G1P501d + 0.270GPO5001 + 0.270GPK5007                 : ARR( 0.488E-13, -1250., 0.0);
+{ 36109} G2P502R +PERO5              =  0.460G1P501d + 0.270GPO5001 + 0.270GPK5007                 : ARR( 0.183E-11,   450., 0.0);
+{ 36110} G2P502R +PERO6              =  0.300G1P501d + 0.350GPO5001 + 0.350GPK5007                 : ARR( 0.168E-13, -1300., 0.0);
+{ 36111} G2P502R +PERO9              =  0.650G1P501d + 0.350GPK5007                                : ARR( 0.100E-10,     0., 0.0);
+{ 36112} GGU3000 +GHO                =       G3U3000                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 36113} GGU3000 +GHO                =       G2G3004                                               : ARR( 0.132E-11,     0., 0.0);
+{ 36114} GGU3000 +GHO                =       G2G3002                                               : ARR( 0.526E-11,     0., 0.0);
+{ 36115} GGU3000 +GO3                =  2.000GCH2O   + 0.680GAG2000 + 0.280GCO2    + 0.280GHCOO2H  : ARR( 0.135E-18,     0., 0.0);
+{ 36116} GGU3000 +GO3                =  1.040GCO     + 1.040GHO     + 1.040GCO     + 1.040GHO2     : ARR( 0.135E-18,     0., 0.0);
+{ 36117} GGU3000 +GO3                =  2.000GGD2000 + 0.740GHCOOH  + 0.260GCO2    + 0.260GH2      : ARR( 0.256E-17,     0., 0.0);
+{ 36118} GGU3000 +GO3                =       GCO     + 0.760GH2O    + 0.240GHO2    + 0.240GHO      : ARR( 0.256E-17,     0., 0.0);
+{ 36119} GGU3000 +GNO3               =       G2G3006                                               : ARR( 0.120E-15,     0., 0.0);
+{ 36120} GGU3000+HV               =       G1D2000 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 36121} GAU3000 +GHO                =       G1D2000 +      GCO2                                   : ARR( 0.520E-12,     0., 0.0);
+{ 36122} GAU3000 +GHO                =       G2A3005                                               : ARR( 0.132E-11,     0., 0.0);
+{ 36123} GAU3000 +GHO                =       G2A3002                                               : ARR( 0.526E-11,     0., 0.0);
+{ 36124} GAU3000 +GO3                =  2.000GCH2O   + 0.680GAA2000 + 0.280GCO2    + 0.280GHCOOH   : ARR( 0.135E-18,     0., 0.0);
+{ 36125} GAU3000 +GO3                =  1.040GCO     + 2.080GHO     + 1.040GCO                     : ARR( 0.135E-18,     0., 0.0);
+{ 36126} GAU3000 +GO3                =  2.000GAD2000 + 0.740GHCOOH  + 0.260GCO2    + 0.260GH2      : ARR( 0.256E-17,     0., 0.0);
+{ 36127} GAU3000 +GO3                =       GCO     + 0.760GH2O    + 0.240GHO2    + 0.240GHO      : ARR( 0.256E-17,     0., 0.0);
+{ 36128} GAU3000 +GNO3               =       G2A3003                                               : ARR( 0.120E-15,     0., 0.0);
+{ 36129} GPU3000                     =       G3U3000 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 36130} GPU3000 +GHO                =       G2P3005                                               : ARR( 0.132E-11,     0., 0.0);
+{ 36131} GPU3000 +GHO                =       G2P3002                                               : ARR( 0.526E-11,     0., 0.0);
+{ 36132} GPU3000 +GO3                =  2.000GCH2O   + 0.680GPA2000 + 0.280GCO2    + 0.280GP01001  : ARR( 0.135E-18,     0., 0.0);
+{ 36133} GPU3000 +GO3                =  1.040GCO     + 1.040GHO     + 1.040GCO     + 1.040GNO2     : ARR( 0.135E-18,     0., 0.0);
+{ 36134} GPU3000 +GO3                =  2.000GPD2000 + 0.740GHCOOH  + 0.260GCO2    + 0.260GH2      : ARR( 0.256E-17,     0., 0.0);
+{ 36135} GPU3000 +GO3                =       GCO     + 0.760GH2O    + 0.240GHO2    + 0.240GHO      : ARR( 0.256E-17,     0., 0.0);
+{ 36136} GPU3000 +GNO3               =       G2P3003                                               : ARR( 0.120E-15,     0., 0.0);
+{ 36137} GPU3000+HV               =       G3U3000 +      GNO2                                   :  0.100E+01*SUN;
+{ 36138} GGN500m +GHO                =       G3G5007                                               : ARR( 0.214E-10,     0., 0.0);
+{ 36139} GGN500m +GHO                =       G3N500c                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 36140} GGN500m +GNO3               =       G3G5007 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 36141} GGN500m+HV               =       G2N400i +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 36142} GGN500m+HV               =       G1G502A +      GNO2                                   :  0.100E+01*SUN;
+{ 36143} GGN500m+HV               =       G2G400T +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 36144} GGN500m+HV               =       G2G3009 +      GD02000 +      GNO2                    :  0.100E+01*SUN;
+{ 36145} G3G5007 +GHO2               =  0.800GGG5005 + 0.200GAG5004 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 36146} G3G5007 +GNO                =       G2G400T +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 36147} G3G5007 +GNO2               =       GPG5003                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 36148} G3G5007 +GNO3               =       G2G400T +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 36149} G3G5007 +MEPERO             =  0.685G2G400T + 0.315GAG5004 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36150} G3G5007 +PERO1              =  0.800G2G400T + 0.200GAG5004 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36151} G3G5007 +PERO2              =  0.750G2G400T + 0.250GAG5004 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36152} G3G5007 +PERO3              =  0.800G2G400T + 0.200GAG5004 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36153} G3G5007 +PERO5              =  0.650G2G400T + 0.350GAG5004 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36154} G3G5007 +PERO6              =  0.650G2G400T + 0.350GAG5004 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36155} G3G5007 +PERO9              =       G2G400T +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 36156} G1G502A                     =       G2G2000 +      GDD3000                                : ARR( 0.200E+15,  6813., 0.0);
+{ 36157} G1G502A                     =       GGD3000 +      G2D2000                                : ARR( 0.200E+15,  6591., 0.0);
+{ 36158} GGN500n +GHO                =       GGN5022 +      GHO2                                   : ARR( 0.426E-11,     0., 0.0);
+{ 36159} GGN500n +GHO                =       G3N500d                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 36160} GGN500n+HV               =       G1G502B +      GNO2                                   :  0.100E+01*SUN;
+{ 36161} GGN500n+HV               =       G1G500c +      GNO2                                   :  0.100E+01*SUN;
+{ 36162} GGN500n+HV               =       GND4006 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 36163} G1G502B                     =       G2O2000 +      GGN3005                                : ARR( 0.200E+15,  6244., 0.0);
+{ 36164} G1G502B                     =       GDO3000 +      GGD2000 +      GNO2                    : ARR( 0.200E+15,  6422., 0.0);
+{ 36165} GGH500n +GHO                =       GGH502t +      GHO2                                   : ARR( 0.415E-11,     0., 0.0);
+{ 36166} GGH500n +GHO                =       GGN500p +      GHO                                    : ARR( 0.519E-11,     0., 0.0);
+{ 36167} GGH500n +GHO                =       G2G500a                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 36168} GGH500n +GHO                =       G3H500b                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 36169} GGH500n+HV               =       G1G502C +      GNO2                                   :  0.100E+01*SUN;
+{ 36170} GGH500n+HV               =       G1G500c +      GHO                                    :  0.100E+01*SUN;
+{ 36171} GGH500n+HV               =       GND4006 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 36172} G1G502C                     =       GDO3000 +      GGD2000 +      GHO                     : ARR( 0.200E+15,  4883., 0.0);
+{ 36173} GGN500o +GHO                =       GGN500q +      GHO2                                   : ARR( 0.433E-11,     0., 0.0);
+{ 36174} GGN500o +GHO                =       GGN500p +      GHO2                                   : ARR( 0.135E-11,     0., 0.0);
+{ 36175} GGN500o +GHO                =       G3N500e                                               : ARR( 0.205E-11,  -190., 0.0);
+{ 36176} GGN500o+HV               =       G1G500u +      GNO2                                   :  0.100E+01*SUN;
+{ 36177} GGN500o+HV               =       GND4006 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 36178} GGN500p +GHO                =       GGN5023 +      GHO2                                   : ARR( 0.428E-11,     0., 0.0);
+{ 36179} GGN500p +GHO                =       G3N501J                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 36180} GGN500p+HV               =       G1G500w +      GNO2                                   :  0.100E+01*SUN;
+{ 36181} GGN500p+HV               =       GAN400E +      GCO2                                   :  0.100E+01*SUN;
+{ 36182} GGN500q +GHO                =       G3G5008                                               : ARR( 0.224E-10,     0., 0.0);
+{ 36183} GGN500q +GHO                =       G3N500f                                               : ARR( 0.205E-11,  -190., 0.0);
+{ 36184} GGN500q +GNO3               =       G3G5008 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 36185} GGN500q+HV               =       GND400D +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 36186} GGN500q+HV               =       G1G500x +      GNO2                                   :  0.100E+01*SUN;
+{ 36187} GGN500q+HV               =       G2G400U +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 36188} GGN500q+HV               =       GGN3006 +      GD02000                                :  0.100E+01*SUN;
+{ 36189} G3G5008 +GHO2               =  0.800GGG5006 + 0.200GAG500B + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 36190} G3G5008 +GNO                =       G2G400U +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 36191} G3G5008 +GNO2               =       GPG500B                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 36192} G3G5008 +GNO3               =       G2G400U +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 36193} G3G5008 +MEPERO             =  0.685G2G400U + 0.315GAG500B + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36194} G3G5008 +PERO1              =  0.800G2G400U + 0.200GAG500B + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36195} G3G5008 +PERO2              =  0.750G2G400U + 0.250GAG500B + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36196} G3G5008 +PERO3              =  0.800G2G400U + 0.200GAG500B + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36197} G3G5008 +PERO5              =  0.650G2G400U + 0.350GAG500B + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36198} G3G5008 +PERO6              =  0.650G2G400U + 0.350GAG500B + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36199} G3G5008 +PERO9              =       G2G400U +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 36200} G2G400U +GNO                =       G1G400f +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 36201} G2G400U +GNO                =       GGN400P                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 36202} G2G400U +GHO2               =       GGH400n                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 36203} G2G400U +GNO3               =       G1G400f +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 36204} G2G400U +MEPERO             =  0.480G1G400f + 0.260GGN400K + 0.260GGN400U                 : ARR( 0.164E-12,  -795., 0.0);
+{ 36205} G2G400U +PERO1              =  0.600G1G400f + 0.200GGN400K + 0.200GGN400U                 : ARR( 0.126E-12,  -850., 0.0);
+{ 36206} G2G400U +PERO2              =  0.560G1G400f + 0.220GGN400K + 0.220GGN400U                 : ARR( 0.471E-13, -1350., 0.0);
+{ 36207} G2G400U +PERO3              =  0.600G1G400f + 0.200GGN400K + 0.200GGN400U                 : ARR( 0.142E-12, -1200., 0.0);
+{ 36208} G2G400U +PERO5              =  0.600G1G400f + 0.200GGN400K + 0.200GGN400U                 : ARR( 0.533E-11,   500., 0.0);
+{ 36209} G2G400U +PERO6              =  0.460G1G400f + 0.270GGN400K + 0.270GGN400U                 : ARR( 0.488E-13, -1250., 0.0);
+{ 36210} G2G400U +PERO9              =  0.800G1G400f + 0.200GGN400U                                : ARR( 0.100E-10,     0., 0.0);
+{ 36211} G1G400f +OXYGEN             =       GGN400U +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 36212} G1G400f                     =       GGD3001 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7175., 0.0);
+{ 36213} GAN500s +GHO                =       G2A502L                                               : ARR( 0.596E-13,     0., 0.0);
+{ 36214} GAN500s +GHO                =       GAN501i +      GNO2                                   : ARR( 0.485E-13,     0., 0.0);
+{ 36215} GAN500s +GHO                =       GNN4008 +      GNO2    +      GCO2                    : ARR( 0.549E-12,     0., 0.0);
+{ 36216} GAN500s+HV               =       G1A500h +      GNO2                                   :  0.100E+01*SUN;
+{ 36217} GAN500s+HV               =       G1A500q +      GNO2                                   :  0.100E+01*SUN;
+{ 36218} GAN500s+HV               =       G1A501m +      GNO2                                   :  0.100E+01*SUN;
+{ 36219} G2A502L +GNO                =       G1A502i +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 36220} G2A502L +GNO                =       GAN502B                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 36221} G2A502L +GHO2               =       GAH5031                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 36222} G2A502L +GNO3               =       G1A502i +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 36223} G2A502L +MEPERO             =  0.340G1A502i + 0.330GAN501J + 0.330GAN502C                 : ARR( 0.565E-13,  -845., 0.0);
+{ 36224} G2A502L +PERO1              =  0.460G1A502i + 0.270GAN501J + 0.270GAN502C                 : ARR( 0.434E-13,  -900., 0.0);
+{ 36225} G2A502L +PERO2              =  0.400G1A502i + 0.300GAN501J + 0.300GAN502C                 : ARR( 0.162E-13, -1400., 0.0);
+{ 36226} G2A502L +PERO3              =  0.460G1A502i + 0.270GAN501J + 0.270GAN502C                 : ARR( 0.488E-13, -1250., 0.0);
+{ 36227} G2A502L +PERO5              =  0.460G1A502i + 0.270GAN501J + 0.270GAN502C                 : ARR( 0.183E-11,   450., 0.0);
+{ 36228} G2A502L +PERO6              =  0.300G1A502i + 0.350GAN501J + 0.350GAN502C                 : ARR( 0.168E-13, -1300., 0.0);
+{ 36229} G2A502L +PERO9              =  0.650G1A502i + 0.350GAN502C                                : ARR( 0.100E-10,     0., 0.0);
+{ 36230} G1A502i                     =       GAN3006 +      GND2000 +      GNO2                    : ARR( 0.200E+15,  6365., 0.0);
+{ 36231} GAH500r +GHO                =       GAN500t +      GHO                                    : ARR( 0.382E-11,     0., 0.0);
+{ 36232} GAH500r +GHO                =       G2A500g                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 36233} GAH500r +GHO                =       GNN4008 +      GHO     +      GCO2                    : ARR( 0.535E-12,     0., 0.0);
+{ 36234} GAH500r+HV               =       G1A500h +      GHO                                    :  0.100E+01*SUN;
+{ 36235} GAH500r+HV               =       G1A500t +      GNO2                                   :  0.100E+01*SUN;
+{ 36236} GAH500r+HV               =       G1A502j +      GNO2                                   :  0.100E+01*SUN;
+{ 36237} G1A502j                     =       GAN500Z +      GHO                                    : ARR( 0.800E+11,  2753., 0.0);
+{ 36238} GAN500t +GHO                =       GAN5012 +      GNO2                                   : ARR( 0.718E-13,     0., 0.0);
+{ 36239} GAN500t +GHO                =       G2A502M                                               : ARR( 0.565E-13,     0., 0.0);
+{ 36240} GAN500t +GHO                =       GAN501j +      GNO2                                   : ARR( 0.460E-13,     0., 0.0);
+{ 36241} GAN500t +GHO                =       G3N4005 +      GCO2                                   : ARR( 0.520E-12,     0., 0.0);
+{ 36242} GAN500t+HV               =       GNN4008 +      GCO2                                   :  0.100E+01*SUN;
+{ 36243} GAN500t+HV               =       G1A500x +      GNO2                                   :  0.100E+01*SUN;
+{ 36244} GAN500t+HV               =       G1A501p +      GNO2                                   :  0.100E+01*SUN;
+{ 36245} G2A502M +GNO                =       G1A502k +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 36246} G2A502M +GNO                =       GAN502D                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 36247} G2A502M +GHO2               =       GAH5032                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 36248} G2A502M +GNO3               =       G1A502k +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 36249} G2A502M +MEPERO             =  0.340G1A502k + 0.330GAN501O + 0.330GAN502E                 : ARR( 0.565E-13,  -845., 0.0);
+{ 36250} G2A502M +PERO1              =  0.460G1A502k + 0.270GAN501O + 0.270GAN502E                 : ARR( 0.434E-13,  -900., 0.0);
+{ 36251} G2A502M +PERO2              =  0.400G1A502k + 0.300GAN501O + 0.300GAN502E                 : ARR( 0.162E-13, -1400., 0.0);
+{ 36252} G2A502M +PERO3              =  0.460G1A502k + 0.270GAN501O + 0.270GAN502E                 : ARR( 0.488E-13, -1250., 0.0);
+{ 36253} G2A502M +PERO5              =  0.460G1A502k + 0.270GAN501O + 0.270GAN502E                 : ARR( 0.183E-11,   450., 0.0);
+{ 36254} G2A502M +PERO6              =  0.300G1A502k + 0.350GAN501O + 0.350GAN502E                 : ARR( 0.168E-13, -1300., 0.0);
+{ 36255} G2A502M +PERO9              =  0.650G1A502k + 0.350GAN502E                                : ARR( 0.100E-10,     0., 0.0);
+{ 36256} G1A502k                     =       GAD3002 +      GND2000 +      GNO2                    : ARR( 0.200E+15,  6092., 0.0);
+{ 36257} GAN500u +GHO                =       G2A502N                                               : ARR( 0.135E-12,     0., 0.0);
+{ 36258} GAN500u +GHO                =       G2N400p +      GCO2                                   : ARR( 0.550E-12,     0., 0.0);
+{ 36259} GAN500u+HV               =       G1A5012 +      GNO2                                   :  0.100E+01*SUN;
+{ 36260} GAN500u+HV               =       G1A500i +      GNO2                                   :  0.100E+01*SUN;
+{ 36261} GAN500u+HV               =       G1A502l +      GNO2                                   :  0.100E+01*SUN;
+{ 36262} G2A502N +GNO                =       G1A502m +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 36263} G2A502N +GNO                =       GAN502B                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 36264} G2A502N +GHO2               =       GAH5033                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 36265} G2A502N +GNO3               =       G1A502m +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 36266} G2A502N +MEPERO             =  0.340G1A502m + 0.330GAN5026 + 0.330GAN502D                 : ARR( 0.565E-13,  -845., 0.0);
+{ 36267} G2A502N +PERO1              =  0.460G1A502m + 0.270GAN5026 + 0.270GAN502D                 : ARR( 0.434E-13,  -900., 0.0);
+{ 36268} G2A502N +PERO2              =  0.400G1A502m + 0.300GAN5026 + 0.300GAN502D                 : ARR( 0.162E-13, -1400., 0.0);
+{ 36269} G2A502N +PERO3              =  0.460G1A502m + 0.270GAN5026 + 0.270GAN502D                 : ARR( 0.488E-13, -1250., 0.0);
+{ 36270} G2A502N +PERO5              =  0.460G1A502m + 0.270GAN5026 + 0.270GAN502D                 : ARR( 0.183E-11,   450., 0.0);
+{ 36271} G2A502N +PERO6              =  0.300G1A502m + 0.350GAN5026 + 0.350GAN502D                 : ARR( 0.168E-13, -1300., 0.0);
+{ 36272} G2A502N +PERO9              =  0.650G1A502m + 0.350GAN502D                                : ARR( 0.100E-10,     0., 0.0);
+{ 36273} G1A502l +OXYGEN             =       GAN502F +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 36274} G1A502l                     =       G2A502O                                               : ARR( 0.160E+12,  4075., 0.0);
+{ 36275} G1A502l                     =       GAN400J +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7042., 0.0);
+{ 36276} G1A502m                     =       GCO     +      GNN400D +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 36277} G2A502O +GNO                =       G1A502n +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 36278} G2A502O +GNO                =       GAN501l                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 36279} G2A502O +GHO2               =       GAH5034                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 36280} G2A502O +GNO3               =       G1A502n +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 36281} G2A502O +MEPERO             =  0.340G1A502n + 0.330GAN5027 + 0.330GAN501n                 : ARR( 0.565E-13,  -845., 0.0);
+{ 36282} G2A502O +PERO1              =  0.460G1A502n + 0.270GAN5027 + 0.270GAN501n                 : ARR( 0.434E-13,  -900., 0.0);
+{ 36283} G2A502O +PERO2              =  0.400G1A502n + 0.300GAN5027 + 0.300GAN501n                 : ARR( 0.162E-13, -1400., 0.0);
+{ 36284} G2A502O +PERO3              =  0.460G1A502n + 0.270GAN5027 + 0.270GAN501n                 : ARR( 0.488E-13, -1250., 0.0);
+{ 36285} G2A502O +PERO5              =  0.460G1A502n + 0.270GAN5027 + 0.270GAN501n                 : ARR( 0.183E-11,   450., 0.0);
+{ 36286} G2A502O +PERO6              =  0.300G1A502n + 0.350GAN5027 + 0.350GAN501n                 : ARR( 0.168E-13, -1300., 0.0);
+{ 36287} G2A502O +PERO9              =  0.650G1A502n + 0.350GAN501n                                : ARR( 0.100E-10,     0., 0.0);
+{ 36288} G1A502n                     =       GAN502G +      GHO2                                   : ARR( 0.160E+12,  3252., 0.0);
+{ 36289} G1A502n                     =       GNN400E +      GCO     +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 36290} GAH500s +GHO                =       GAN500v +      GHO                                    : ARR( 0.173E-11,     0., 0.0);
+{ 36291} GAH500s +GHO                =       G2A500h                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 36292} GAH500s +GHO                =       G2H400i +      GCO2                                   : ARR( 0.546E-12,     0., 0.0);
+{ 36293} GAH500s+HV               =       G1A5015 +      GNO2                                   :  0.100E+01*SUN;
+{ 36294} GAH500s+HV               =       G1A500i +      GHO                                    :  0.100E+01*SUN;
+{ 36295} GAH500s+HV               =       G1A502o +      GNO2                                   :  0.100E+01*SUN;
+{ 36296} G1A502o                     =       G2A502P                                               : ARR( 0.160E+12,  4075., 0.0);
+{ 36297} G1A502o                     =       GAN400J +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{ 36298} G2A502P +GNO                =       G1A502p +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 36299} G2A502P +GNO                =       GAH502G                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 36300} G2A502P +GHO2               =       GAH5035                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 36301} G2A502P +GNO3               =       G1A502p +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 36302} G2A502P +MEPERO             =  0.340G1A502p + 0.330GAH5036 + 0.330GAH502I                 : ARR( 0.565E-13,  -845., 0.0);
+{ 36303} G2A502P +PERO1              =  0.460G1A502p + 0.270GAH5036 + 0.270GAH502I                 : ARR( 0.434E-13,  -900., 0.0);
+{ 36304} G2A502P +PERO2              =  0.400G1A502p + 0.300GAH5036 + 0.300GAH502I                 : ARR( 0.162E-13, -1400., 0.0);
+{ 36305} G2A502P +PERO3              =  0.460G1A502p + 0.270GAH5036 + 0.270GAH502I                 : ARR( 0.488E-13, -1250., 0.0);
+{ 36306} G2A502P +PERO5              =  0.460G1A502p + 0.270GAH5036 + 0.270GAH502I                 : ARR( 0.183E-11,   450., 0.0);
+{ 36307} G2A502P +PERO6              =  0.300G1A502p + 0.350GAH5036 + 0.350GAH502I                 : ARR( 0.168E-13, -1300., 0.0);
+{ 36308} G2A502P +PERO9              =  0.650G1A502p + 0.350GAH502I                                : ARR( 0.100E-10,     0., 0.0);
+{ 36309} G1A502p                     =       GAH5037 +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{ 36310} G1A502p                     =       GHN400L +      GCO     +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 36311} GAN500v +GHO                =       G2A502Q                                               : ARR( 0.132E-12,     0., 0.0);
+{ 36312} GAN500v +GHO                =       GAN5014 +      GNO2                                   : ARR( 0.746E-13,     0., 0.0);
+{ 36313} GAN500v +GHO                =       G2N400q +      GCO2                                   : ARR( 0.540E-12,     0., 0.0);
+{ 36314} GAN500v+HV               =       G1A5019 +      GNO2                                   :  0.100E+01*SUN;
+{ 36315} GAN500v+HV               =       G3A4001 +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{ 36316} GAN500v+HV               =       G1A501k +      GNO2                                   :  0.100E+01*SUN;
+{ 36317} G2A502Q +GNO                =       G1A502q +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 36318} G2A502Q +GNO                =       GAN502C                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 36319} G2A502Q +GHO2               =       GAH5038                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 36320} G2A502Q +GNO3               =       G1A502q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 36321} G2A502Q +MEPERO             =  0.340G1A502q + 0.330GAN502H + 0.330GAN502E                 : ARR( 0.565E-13,  -845., 0.0);
+{ 36322} G2A502Q +PERO1              =  0.460G1A502q + 0.270GAN502H + 0.270GAN502E                 : ARR( 0.434E-13,  -900., 0.0);
+{ 36323} G2A502Q +PERO2              =  0.400G1A502q + 0.300GAN502H + 0.300GAN502E                 : ARR( 0.162E-13, -1400., 0.0);
+{ 36324} G2A502Q +PERO3              =  0.460G1A502q + 0.270GAN502H + 0.270GAN502E                 : ARR( 0.488E-13, -1250., 0.0);
+{ 36325} G2A502Q +PERO5              =  0.460G1A502q + 0.270GAN502H + 0.270GAN502E                 : ARR( 0.183E-11,   450., 0.0);
+{ 36326} G2A502Q +PERO6              =  0.300G1A502q + 0.350GAN502H + 0.350GAN502E                 : ARR( 0.168E-13, -1300., 0.0);
+{ 36327} G2A502Q +PERO9              =  0.650G1A502q + 0.350GAN502E                                : ARR( 0.100E-10,     0., 0.0);
+{ 36328} G1A502q                     =       GCO     +      GNN400G +      GHO                     : ARR( 0.200E+15,  4342., 0.0);
+{ 36329} GPN500x                     =       G3N500u +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 36330} GPN500x +GHO                =       GPN5015 +      GNO2                                   : ARR( 0.252E-13,     0., 0.0);
+{ 36331} GPN500x +GHO                =       G2P502S                                               : ARR( 0.185E-12,     0., 0.0);
+{ 36332} GPN500x+HV               =       G1P501l +      GNO2                                   :  0.100E+01*SUN;
+{ 36333} GPN500x+HV               =       G1P500k +      GNO2                                   :  0.100E+01*SUN;
+{ 36334} GPN500x+HV               =       G1P500u +      GNO2                                   :  0.100E+01*SUN;
+{ 36335} GPN500x+HV               =       G3N500u +      GNO2                                   :  0.100E+01*SUN;
+{ 36336} G2P502S +GNO                =       G1P502x +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 36337} G2P502S +GNO                =       GPN502M                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 36338} G2P502S +GHO2               =       GPH5038                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 36339} G2P502S +GNO3               =       G1P502x +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 36340} G2P502S +MEPERO             =  0.340G1P502x + 0.330GPN502F + 0.330GPN502N                 : ARR( 0.565E-13,  -845., 0.0);
+{ 36341} G2P502S +PERO1              =  0.460G1P502x + 0.270GPN502F + 0.270GPN502N                 : ARR( 0.434E-13,  -900., 0.0);
+{ 36342} G2P502S +PERO2              =  0.400G1P502x + 0.300GPN502F + 0.300GPN502N                 : ARR( 0.162E-13, -1400., 0.0);
+{ 36343} G2P502S +PERO3              =  0.460G1P502x + 0.270GPN502F + 0.270GPN502N                 : ARR( 0.488E-13, -1250., 0.0);
+{ 36344} G2P502S +PERO5              =  0.460G1P502x + 0.270GPN502F + 0.270GPN502N                 : ARR( 0.183E-11,   450., 0.0);
+{ 36345} G2P502S +PERO6              =  0.300G1P502x + 0.350GPN502F + 0.350GPN502N                 : ARR( 0.168E-13, -1300., 0.0);
+{ 36346} G2P502S +PERO9              =  0.650G1P502x + 0.350GPN502N                                : ARR( 0.100E-10,     0., 0.0);
+{ 36347} G1P502x                     =       GNN400D +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 36348} GPH500t                     =       G3H500o +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 36349} GPH500t +GHO                =       GPN500y +      GHO                                    : ARR( 0.175E-11,     0., 0.0);
+{ 36350} GPH500t +GHO                =       G2P500j                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 36351} GPH500t+HV               =       G1P502y +      GNO2                                   :  0.100E+01*SUN;
+{ 36352} GPH500t+HV               =       G1P500k +      GHO                                    :  0.100E+01*SUN;
+{ 36353} GPH500t+HV               =       G1P500y +      GNO2                                   :  0.100E+01*SUN;
+{ 36354} GPH500t+HV               =       G3H500o +      GNO2                                   :  0.100E+01*SUN;
+{ 36355} G1P502y                     =       G2P502T                                               : ARR( 0.160E+12,  3940., 0.0);
+{ 36356} G1P502y                     =       GPN400H +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{ 36357} G2P502T +GNO                =       G1P502z +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 36358} G2P502T +GNO                =       GPH502F                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 36359} G2P502T +GHO2               =       GPH5039                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 36360} G2P502T +GNO3               =       G1P502z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 36361} G2P502T +MEPERO             =  0.340G1P502z + 0.330GPH503A + 0.330GPH502H                 : ARR( 0.565E-13,  -845., 0.0);
+{ 36362} G2P502T +PERO1              =  0.460G1P502z + 0.270GPH503A + 0.270GPH502H                 : ARR( 0.434E-13,  -900., 0.0);
+{ 36363} G2P502T +PERO2              =  0.400G1P502z + 0.300GPH503A + 0.300GPH502H                 : ARR( 0.162E-13, -1400., 0.0);
+{ 36364} G2P502T +PERO3              =  0.460G1P502z + 0.270GPH503A + 0.270GPH502H                 : ARR( 0.488E-13, -1250., 0.0);
+{ 36365} G2P502T +PERO5              =  0.460G1P502z + 0.270GPH503A + 0.270GPH502H                 : ARR( 0.183E-11,   450., 0.0);
+{ 36366} G2P502T +PERO6              =  0.300G1P502z + 0.350GPH503A + 0.350GPH502H                 : ARR( 0.168E-13, -1300., 0.0);
+{ 36367} G2P502T +PERO9              =  0.650G1P502z + 0.350GPH502H                                : ARR( 0.100E-10,     0., 0.0);
+{ 36368} G1P502z                     =       GPH503B +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{ 36369} G1P502z                     =       GHN400L +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 36370} GPN500y                     =       G3N500v +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 36371} GPN500y +GHO                =       GPN501l +      GNO2                                   : ARR( 0.280E-13,     0., 0.0);
+{ 36372} GPN500y +GHO                =       GPN5016 +      GNO2                                   : ARR( 0.718E-13,     0., 0.0);
+{ 36373} GPN500y +GHO                =       G2P502U                                               : ARR( 0.172E-12,     0., 0.0);
+{ 36374} GPN500y+HV               =       G1P501p +      GNO2                                   :  0.100E+01*SUN;
+{ 36375} GPN500y+HV               =       G3N2000 +      GPD3000 +      GNO2                    :  0.100E+01*SUN;
+{ 36376} GPN500y+HV               =       G1P5013 +      GNO2                                   :  0.100E+01*SUN;
+{ 36377} GPN500y+HV               =       G3N500v +      GNO2                                   :  0.100E+01*SUN;
+{ 36378} G2P502U +GNO                =       G1P5031 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 36379} G2P502U +GNO                =       GPN502O                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 36380} G2P502U +GHO2               =       GPH503C                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 36381} G2P502U +GNO3               =       G1P5031 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 36382} G2P502U +MEPERO             =  0.340G1P5031 + 0.330GPN502I + 0.330GPN502P                 : ARR( 0.565E-13,  -845., 0.0);
+{ 36383} G2P502U +PERO1              =  0.460G1P5031 + 0.270GPN502I + 0.270GPN502P                 : ARR( 0.434E-13,  -900., 0.0);
+{ 36384} G2P502U +PERO2              =  0.400G1P5031 + 0.300GPN502I + 0.300GPN502P                 : ARR( 0.162E-13, -1400., 0.0);
+{ 36385} G2P502U +PERO3              =  0.460G1P5031 + 0.270GPN502I + 0.270GPN502P                 : ARR( 0.488E-13, -1250., 0.0);
+{ 36386} G2P502U +PERO5              =  0.460G1P5031 + 0.270GPN502I + 0.270GPN502P                 : ARR( 0.183E-11,   450., 0.0);
+{ 36387} G2P502U +PERO6              =  0.300G1P5031 + 0.350GPN502I + 0.350GPN502P                 : ARR( 0.168E-13, -1300., 0.0);
+{ 36388} G2P502U +PERO9              =  0.650G1P5031 + 0.350GPN502P                                : ARR( 0.100E-10,     0., 0.0);
+{ 36389} G1P5031                     =       GNN400G +      GCO     +      GNO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 36390} GPN500z                     =       G3N500o +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 36391} GPN500z +GHO                =       GPN501p +      GNO2                                   : ARR( 0.460E-13,     0., 0.0);
+{ 36392} GPN500z +GHO                =       G2P502W                                               : ARR( 0.565E-13,     0., 0.0);
+{ 36393} GPN500z +GHO                =       GPN5017 +      GNO2                                   : ARR( 0.236E-13,     0., 0.0);
+{ 36394} GPN500z +GHO                =       GPN5011 +      GNO2                                   : ARR( 0.144E-13,     0., 0.0);
+{ 36395} GPN500z+HV               =       G1P501r +      GNO2                                   :  0.100E+01*SUN;
+{ 36396} GPN500z+HV               =       G1P5016 +      GNO2                                   :  0.100E+01*SUN;
+{ 36397} GPN500z+HV               =       G1P500l +      GNO2                                   :  0.100E+01*SUN;
+{ 36398} GPN500z+HV               =       G3N500o +      GNO2                                   :  0.100E+01*SUN;
+{ 36399} G2P502W +GNO                =       G1P5032 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 36400} G2P502W +GNO                =       GPN502M                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 36401} G2P502W +GHO2               =       GPH503D                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 36402} G2P502W +GNO3               =       G1P5032 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 36403} G2P502W +MEPERO             =  0.340G1P5032 + 0.330GPN501N + 0.330GPN502O                 : ARR( 0.565E-13,  -845., 0.0);
+{ 36404} G2P502W +PERO1              =  0.460G1P5032 + 0.270GPN501N + 0.270GPN502O                 : ARR( 0.434E-13,  -900., 0.0);
+{ 36405} G2P502W +PERO2              =  0.400G1P5032 + 0.300GPN501N + 0.300GPN502O                 : ARR( 0.162E-13, -1400., 0.0);
+{ 36406} G2P502W +PERO3              =  0.460G1P5032 + 0.270GPN501N + 0.270GPN502O                 : ARR( 0.488E-13, -1250., 0.0);
+{ 36407} G2P502W +PERO5              =  0.460G1P5032 + 0.270GPN501N + 0.270GPN502O                 : ARR( 0.183E-11,   450., 0.0);
+{ 36408} G2P502W +PERO6              =  0.300G1P5032 + 0.350GPN501N + 0.350GPN502O                 : ARR( 0.168E-13, -1300., 0.0);
+{ 36409} G2P502W +PERO9              =  0.650G1P5032 + 0.350GPN502O                                : ARR( 0.100E-10,     0., 0.0);
+{ 36410} G1P5032                     =       GND2000 +      GPN3006 +      GNO2                    : ARR( 0.200E+15,  6365., 0.0);
+{ 36411} GPH500u                     =       G3H5021 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 36412} GPH500u +GHO                =       GPN5011 +      GHO                                    : ARR( 0.515E-11,     0., 0.0);
+{ 36413} GPH500u +GHO                =       G2P500k                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 36414} GPH500u+HV               =       G1P5033 +      GNO2                                   :  0.100E+01*SUN;
+{ 36415} GPH500u+HV               =       G1P5034 +      GNO2                                   :  0.100E+01*SUN;
+{ 36416} GPH500u+HV               =       G1P500l +      GHO                                    :  0.100E+01*SUN;
+{ 36417} GPH500u+HV               =       G3H5021 +      GNO2                                   :  0.100E+01*SUN;
+{ 36418} G1P5033                     =       GPN500Z +      GHO                                    : ARR( 0.800E+11,  2619., 0.0);
+{ 36419} G1P5034                     =       GND3000 +      GPD2000 +      GHO                     : ARR( 0.200E+15,  4883., 0.0);
+{ 36420} GPN5011                     =       G3N501g +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 36421} GPN5011 +GHO                =       GPN501q +      GNO2                                   : ARR( 0.460E-13,     0., 0.0);
+{ 36422} GPN5011 +GHO                =       G2P502X                                               : ARR( 0.565E-13,     0., 0.0);
+{ 36423} GPN5011 +GHO                =       GPN5018 +      GNO2                                   : ARR( 0.718E-13,     0., 0.0);
+{ 36424} GPN5011+HV               =       G1P501v +      GNO2                                   :  0.100E+01*SUN;
+{ 36425} GPN5011+HV               =       G1P501C +      GNO2                                   :  0.100E+01*SUN;
+{ 36426} GPN5011+HV               =       G3N4005 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 36427} G3N501g +GHO2               =  0.800GGN5014 + 0.200GAN500t + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 36428} G3N501g +GNO                =       G3N4005 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 36429} G3N501g +GNO2               =       GPN5011                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 36430} G3N501g +GNO3               =       G3N4005 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 36431} G3N501g +MEPERO             =  0.685G3N4005 + 0.315GAN500t + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36432} G3N501g +PERO1              =  0.800G3N4005 + 0.200GAN500t + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36433} G3N501g +PERO2              =  0.750G3N4005 + 0.250GAN500t + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36434} G3N501g +PERO3              =  0.800G3N4005 + 0.200GAN500t + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36435} G3N501g +PERO5              =  0.650G3N4005 + 0.350GAN500t + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36436} G3N501g +PERO6              =  0.650G3N4005 + 0.350GAN500t + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36437} G3N501g +PERO9              =       G3N4005 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 36438} G2P502X +GNO                =       G1P5035 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 36439} G2P502X +GNO                =       GPN502N                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 36440} G2P502X +GHO2               =       GPH503E                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 36441} G2P502X +GNO3               =       G1P5035 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 36442} G2P502X +MEPERO             =  0.340G1P5035 + 0.330GPN501R + 0.330GPN502P                 : ARR( 0.565E-13,  -845., 0.0);
+{ 36443} G2P502X +PERO1              =  0.460G1P5035 + 0.270GPN501R + 0.270GPN502P                 : ARR( 0.434E-13,  -900., 0.0);
+{ 36444} G2P502X +PERO2              =  0.400G1P5035 + 0.300GPN501R + 0.300GPN502P                 : ARR( 0.162E-13, -1400., 0.0);
+{ 36445} G2P502X +PERO3              =  0.460G1P5035 + 0.270GPN501R + 0.270GPN502P                 : ARR( 0.488E-13, -1250., 0.0);
+{ 36446} G2P502X +PERO5              =  0.460G1P5035 + 0.270GPN501R + 0.270GPN502P                 : ARR( 0.183E-11,   450., 0.0);
+{ 36447} G2P502X +PERO6              =  0.300G1P5035 + 0.350GPN501R + 0.350GPN502P                 : ARR( 0.168E-13, -1300., 0.0);
+{ 36448} G2P502X +PERO9              =  0.650G1P5035 + 0.350GPN502P                                : ARR( 0.100E-10,     0., 0.0);
+{ 36449} G1P5035                     =       GND2000 +      GPD3002 +      GNO2                    : ARR( 0.200E+15,  6092., 0.0);
+{ 36450} GNN400W +GHO                =       GNN400D +      GNO2                                   : ARR( 0.184E-13,     0., 0.0);
+{ 36451} GNN400W +GHO                =       GNN400X +      GNO2                                   : ARR( 0.942E-14,     0., 0.0);
+{ 36452} GNN400W+HV               =       G1N400s +      GNO2                                   :  0.200E+01*SUN;
+{ 36453} GNN400W+HV               =       G1N400o +      GNO2                                   :  0.200E+01*SUN;
+{ 36454} GHN400w +GHO                =       GNN400X +      GHO                                    : ARR( 0.167E-11,     0., 0.0);
+{ 36455} GHN400w +GHO                =       G2N400j                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 36456} GHN400w+HV               =       G1H400m +      GNO2                                   :  0.100E+01*SUN;
+{ 36457} GHN400w+HV               =       G1H401g +      GNO2                                   :  0.100E+01*SUN;
+{ 36458} GHN400w+HV               =       G1N400o +      GHO                                    :  0.100E+01*SUN;
+{ 36459} GHN400w+HV               =       G1H401U +      GNO2                                   :  0.100E+01*SUN;
+{ 36460} G1H401g                     =  2.000GND2000 +      GHO                                    : ARR( 0.200E+15,  4841., 0.0);
+{ 36461} GNN400X +GHO                =       GNN400a +      GNO2                                   : ARR( 0.280E-13,     0., 0.0);
+{ 36462} GNN400X +GHO                =       GNN400Y +      GNO2                                   : ARR( 0.144E-13,     0., 0.0);
+{ 36463} GNN400X +GHO                =       GNN400G +      GNO2                                   : ARR( 0.919E-14,     0., 0.0);
+{ 36464} GNN400X+HV               =       G1N4014 +      GNO2                                   :  0.100E+01*SUN;
+{ 36465} GNN400X+HV               =       G3N2000 +      GND2000 +      GNO2                    :  0.100E+01*SUN;
+{ 36466} GNN400X+HV               =       G1N400q +      GNO2                                   :  0.100E+01*SUN;
+{ 36467} GNN400X+HV               =       G1N400t +      GNO2                                   :  0.100E+01*SUN;
+{ 36468} GNN502t +GHO                =       G3N501h                                               : ARR( 0.210E-10,     0., 0.0);
+{ 36469} GNN502t +GHO                =       G3N501i                                               : ARR( 0.420E-11,     0., 0.0);
+{ 36470} GNN502t +GNO3               =       G3N501h +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 36471} GNN502t +GNO3               =       G3N501i +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 36472} GNN502t+HV               =       GCO     +      G2N4015 +      GHO2                    :  0.100E+01*SUN;
+{ 36473} GNN502t+HV               =       GD02000 +      GDD3002 + 2.000GNO2                    :  0.100E+01*SUN;
+{ 36474} GNN502t+HV               =       G1N506U +      GNO2                                   :  0.100E+01*SUN;
+{ 36475} GNN502t+HV               =       G1N506W +      GNO2                                   :  0.100E+01*SUN;
+{ 36476} GNN502t+HV               =       GND400D +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 36477} GNN502t+HV               =       G2D3005 +      GND2000 +      GNO2                    :  0.100E+01*SUN;
+{ 36478} G3N501h +GHO2               =  0.800GGN5024 + 0.200GAN502F + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 36479} G3N501h +GNO                =       G2N4015 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 36480} G3N501h +GNO2               =       GPN501d                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 36481} G3N501h +GNO3               =       G2N4015 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 36482} G3N501h +MEPERO             =  0.685G2N4015 + 0.315GAN502F + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36483} G3N501h +PERO1              =  0.800G2N4015 + 0.200GAN502F + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36484} G3N501h +PERO2              =  0.750G2N4015 + 0.250GAN502F + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36485} G3N501h +PERO3              =  0.800G2N4015 + 0.200GAN502F + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36486} G3N501h +PERO5              =  0.650G2N4015 + 0.350GAN502F + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36487} G3N501h +PERO6              =  0.650G2N4015 + 0.350GAN502F + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36488} G3N501h +PERO9              =       G2N4015 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 36489} G3N501i +GHO2               =  0.800GGN5022 + 0.200GAN501i + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 36490} G3N501i +GNO                =       GND400D + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 36491} G3N501i +GNO2               =       GPN501p                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 36492} G3N501i +GNO3               =       GND400D + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 36493} G3N501i +MEPERO             =  0.685GND400D + 0.315GAN501i + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 36494} G3N501i +PERO1              =  0.800GND400D + 0.200GAN501i + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 36495} G3N501i +PERO2              =  0.750GND400D + 0.250GAN501i + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 36496} G3N501i +PERO3              =  0.800GND400D + 0.200GAN501i + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 36497} G3N501i +PERO5              =  0.650GND400D + 0.350GAN501i + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 36498} G3N501i +PERO6              =  0.650GND400D + 0.350GAN501i + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 36499} G3N501i +PERO9              =       GND400D +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 36500} G2N4015 +GNO                =       G1N400u +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 36501} G2N4015 +GNO                =       GNN400D                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 36502} G2N4015 +GHO2               =       GHN4013                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 36503} G2N4015 +GNO3               =       G1N400u +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 36504} G2N4015 +MEPERO             =  0.480G1N400u + 0.260GNN400E + 0.260GNN400Z                 : ARR( 0.164E-12,  -795., 0.0);
+{ 36505} G2N4015 +PERO1              =  0.600G1N400u + 0.200GNN400E + 0.200GNN400Z                 : ARR( 0.126E-12,  -850., 0.0);
+{ 36506} G2N4015 +PERO2              =  0.560G1N400u + 0.220GNN400E + 0.220GNN400Z                 : ARR( 0.471E-13, -1350., 0.0);
+{ 36507} G2N4015 +PERO3              =  0.600G1N400u + 0.200GNN400E + 0.200GNN400Z                 : ARR( 0.142E-12, -1200., 0.0);
+{ 36508} G2N4015 +PERO5              =  0.600G1N400u + 0.200GNN400E + 0.200GNN400Z                 : ARR( 0.533E-11,   500., 0.0);
+{ 36509} G2N4015 +PERO6              =  0.460G1N400u + 0.270GNN400E + 0.270GNN400Z                 : ARR( 0.488E-13, -1250., 0.0);
+{ 36510} G2N4015 +PERO9              =  0.800G1N400u + 0.200GNN400Z                                : ARR( 0.100E-10,     0., 0.0);
+{ 36511} G1N506U                     =       GDD2000 +      GDD3000 +      GNO2                    : ARR( 0.200E+15,  5818., 0.0);
+{ 36512} G1N506U                     =       GND3005 +      G2D2000                                : ARR( 0.200E+15,  6399., 0.0);
+{ 36513} G1N506W                     =       GND400D +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 36514} GHN505H +GHO                =       G3H502J                                               : ARR( 0.213E-10,     0., 0.0);
+{ 36515} GHN505H +GHO                =       GND501C +      GHO                                    : ARR( 0.516E-11,     0., 0.0);
+{ 36516} GHN505H +GHO                =       G3H502K                                               : ARR( 0.213E-10,     0., 0.0);
+{ 36517} GHN505H +GHO                =       G2N505a                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 36518} GHN505H +GNO3               =       G3H502J +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 36519} GHN505H +GNO3               =       G3H502K +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 36520} GHN505H+HV               =       GCO     +      G2H401A +      GHO2                    :  0.100E+01*SUN;
+{ 36521} GHN505H+HV               =       GD02000 +      GDD3002 +      GNO2    +      GHO      :  0.100E+01*SUN;
+{ 36522} GHN505H+HV               =       G1H504N +      GNO2                                   :  0.100E+01*SUN;
+{ 36523} GHN505H+HV               =       G1N506W +      GHO                                    :  0.100E+01*SUN;
+{ 36524} GHN505H+HV               =       GND400D +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 36525} G3H502J +GHO2               =  0.800GGH502u + 0.200GAH5039 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 36526} G3H502J +GNO                =       G2H401A +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 36527} G3H502J +GNO2               =       GPH503F                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 36528} G3H502J +GNO3               =       G2H401A +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 36529} G3H502J +MEPERO             =  0.685G2H401A + 0.315GAH5039 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36530} G3H502J +PERO1              =  0.800G2H401A + 0.200GAH5039 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36531} G3H502J +PERO2              =  0.750G2H401A + 0.250GAH5039 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36532} G3H502J +PERO3              =  0.800G2H401A + 0.200GAH5039 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36533} G3H502J +PERO5              =  0.650G2H401A + 0.350GAH5039 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36534} G3H502J +PERO6              =  0.650G2H401A + 0.350GAH5039 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36535} G3H502J +PERO9              =       G2H401A +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 36536} G3H502K +GHO2               =  0.800GGH502t + 0.200GAH502H + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 36537} G3H502K +GNO                =       GND400D +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 36538} G3H502K +GNO2               =       GPH502G                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 36539} G3H502K +GNO3               =       GND400D +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 36540} G3H502K +MEPERO             =  0.685GND400D + 0.315GAH502H + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 36541} G3H502K +PERO1              =  0.800GND400D + 0.200GAH502H + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 36542} G3H502K +PERO2              =  0.750GND400D + 0.250GAH502H + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 36543} G3H502K +PERO3              =  0.800GND400D + 0.200GAH502H + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 36544} G3H502K +PERO5              =  0.650GND400D + 0.350GAH502H + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 36545} G3H502K +PERO6              =  0.650GND400D + 0.350GAH502H + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 36546} G3H502K +PERO9              =       GND400D +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 36547} G2N505a +GNO                =       G1N506W +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 36548} G2N505a +GNO                =       GNN502t                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 36549} G2N505a +GHO2               =       GHN505H                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 36550} G2N505a +GNO3               =       G1N506W +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 36551} G2N505a +MEPERO             =  0.340G1N506W + 0.330GND500a + 0.330GND501C                 : ARR( 0.565E-13,  -845., 0.0);
+{ 36552} G2N505a +PERO1              =  0.460G1N506W + 0.270GND500a + 0.270GND501C                 : ARR( 0.434E-13,  -900., 0.0);
+{ 36553} G2N505a +PERO2              =  0.400G1N506W + 0.300GND500a + 0.300GND501C                 : ARR( 0.162E-13, -1400., 0.0);
+{ 36554} G2N505a +PERO3              =  0.460G1N506W + 0.270GND500a + 0.270GND501C                 : ARR( 0.488E-13, -1250., 0.0);
+{ 36555} G2N505a +PERO5              =  0.460G1N506W + 0.270GND500a + 0.270GND501C                 : ARR( 0.183E-11,   450., 0.0);
+{ 36556} G2N505a +PERO6              =  0.300G1N506W + 0.350GND500a + 0.350GND501C                 : ARR( 0.168E-13, -1300., 0.0);
+{ 36557} G2N505a +PERO9              =  0.650G1N506W + 0.350GND501C                                : ARR( 0.100E-10,     0., 0.0);
+{ 36558} GND501C +GHO                =       G3N501j                                               : ARR( 0.210E-10,     0., 0.0);
+{ 36559} GND501C +GHO                =       G3N400I +      GCO                                    : ARR( 0.128E-10,     0., 0.0);
+{ 36560} GND501C +GNO3               =       G3N501j +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 36561} GND501C +GNO3               =       G3N400I +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 36562} GND501C+HV               =       GCO     +      G2N4016 +      GHO2                    :  0.100E+01*SUN;
+{ 36563} GND501C+HV               =       G1D500p +      GNO2                                   :  0.100E+01*SUN;
+{ 36564} GND501C+HV               =       G3N400I +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 36565} GND501C+HV               =       GND400D +      GCO                                    :  0.100E+01*SUN;
+{ 36566} GND501C+HV               =       GND3000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 36567} G3N501j +GHO2               =  0.800GGN5025 + 0.200GAN501e + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 36568} G3N501j +GNO                =       G2N4016 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 36569} G3N501j +GNO2               =       GPN501l                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 36570} G3N501j +GNO3               =       G2N4016 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 36571} G3N501j +MEPERO             =  0.685G2N4016 + 0.315GAN501e + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36572} G3N501j +PERO1              =  0.800G2N4016 + 0.200GAN501e + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36573} G3N501j +PERO2              =  0.750G2N4016 + 0.250GAN501e + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36574} G3N501j +PERO3              =  0.800G2N4016 + 0.200GAN501e + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36575} G3N501j +PERO5              =  0.650G2N4016 + 0.350GAN501e + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36576} G3N501j +PERO6              =  0.650G2N4016 + 0.350GAN501e + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36577} G3N501j +PERO9              =       G2N4016 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 36578} G2N4016 +GNO                =       G1N401A +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 36579} G2N4016 +GNO                =       GNN400a                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 36580} G2N4016 +GHO2               =       GHN401C                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 36581} G2N4016 +GNO3               =       G1N401A +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 36582} G2N4016 +MEPERO             =  0.480G1N401A + 0.260GND400K + 0.260GND400N                 : ARR( 0.164E-12,  -795., 0.0);
+{ 36583} G2N4016 +PERO1              =  0.600G1N401A + 0.200GND400K + 0.200GND400N                 : ARR( 0.126E-12,  -850., 0.0);
+{ 36584} G2N4016 +PERO2              =  0.560G1N401A + 0.220GND400K + 0.220GND400N                 : ARR( 0.471E-13, -1350., 0.0);
+{ 36585} G2N4016 +PERO3              =  0.600G1N401A + 0.200GND400K + 0.200GND400N                 : ARR( 0.142E-12, -1200., 0.0);
+{ 36586} G2N4016 +PERO5              =  0.600G1N401A + 0.200GND400K + 0.200GND400N                 : ARR( 0.533E-11,   500., 0.0);
+{ 36587} G2N4016 +PERO6              =  0.460G1N401A + 0.270GND400K + 0.270GND400N                 : ARR( 0.488E-13, -1250., 0.0);
+{ 36588} G2N4016 +PERO9              =  0.800G1N401A + 0.200GND400N                                : ARR( 0.100E-10,     0., 0.0);
+{ 36589} G1N401A +OXYGEN             =       GND400N +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 36590} G1N401A                     =       G3N3004 +      GCO                                    : ARR( 0.800E+11,  4780., 0.0);
+{ 36591} G1N401A                     =       GDD3002 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  6903., 0.0);
+{ 36592} GGN500r +GHO                =       G3G5009                                               : ARR( 0.224E-10,     0., 0.0);
+{ 36593} GGN500r +GHO                =       G3N500g                                               : ARR( 0.205E-11,  -190., 0.0);
+{ 36594} GGN500r +GNO3               =       G3G5009 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 36595} GGN500r+HV               =       G2N400k +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 36596} GGN500r+HV               =       G1G500y +      GNO2                                   :  0.100E+01*SUN;
+{ 36597} GGN500r+HV               =       GGN400I +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 36598} G3G5009 +GHO2               =  0.800GGG5006 + 0.200GAG5005 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 36599} G3G5009 +GNO                =       GGN400I +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 36600} G3G5009 +GNO2               =       GPG5004                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 36601} G3G5009 +GNO3               =       GGN400I +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 36602} G3G5009 +MEPERO             =  0.685GGN400I + 0.315GAG5005 + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 36603} G3G5009 +PERO1              =  0.800GGN400I + 0.200GAG5005 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 36604} G3G5009 +PERO2              =  0.750GGN400I + 0.250GAG5005 + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 36605} G3G5009 +PERO3              =  0.800GGN400I + 0.200GAG5005 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 36606} G3G5009 +PERO5              =  0.650GGN400I + 0.350GAG5005 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 36607} G3G5009 +PERO6              =  0.650GGN400I + 0.350GAG5005 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 36608} G3G5009 +PERO9              =       GGN400I +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 36609} GHN400x +GHO                =       GND400J +      GHO                                    : ARR( 0.342E-11,     0., 0.0);
+{ 36610} GHN400x +GHO                =       G3H400f                                               : ARR( 0.221E-10,     0., 0.0);
+{ 36611} GHN400x +GHO                =       G2N400k                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 36612} GHN400x +GNO3               =       G3H400f +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 36613} GHN400x+HV               =       G1N400p +      GHO                                    :  0.100E+01*SUN;
+{ 36614} GHN400x+HV               =       G1H400k +      GNO2                                   :  0.100E+01*SUN;
+{ 36615} GHN400x+HV               =       GHN300A +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 36616} G3H400f +GHO2               =  0.800GGH400n + 0.200GAH400g + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 36617} G3H400f +GNO                =       GHN300A +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 36618} G3H400f +GNO2               =       GPH400h                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 36619} G3H400f +GNO3               =       GHN300A +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 36620} G3H400f +MEPERO             =  0.685GHN300A + 0.315GAH400g + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 36621} G3H400f +PERO1              =  0.800GHN300A + 0.200GAH400g + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 36622} G3H400f +PERO2              =  0.750GHN300A + 0.250GAH400g + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 36623} G3H400f +PERO3              =  0.800GHN300A + 0.200GAH400g + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 36624} G3H400f +PERO5              =  0.650GHN300A + 0.350GAH400g + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 36625} G3H400f +PERO6              =  0.650GHN300A + 0.350GAH400g + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 36626} G3H400f +PERO9              =       GHN300A +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 36627} GGH500o +GHO                =       GGH502v +      GHO2                                   : ARR( 0.406E-11,     0., 0.0);
+{ 36628} GGH500o +GHO                =       G2G501o                                               : ARR( 0.143E-11,     0., 0.0);
+{ 36629} GGH500o +GHO                =       GGN500X +      GHO                                    : ARR( 0.833E-11,     0., 0.0);
+{ 36630} GGH500o +GHO                =       G2G501p                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 36631} GGH500o +GHO                =       G3H500c                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 36632} GGH500o+HV               =       G1G502B +      GHO                                    :  0.100E+01*SUN;
+{ 36633} GGH500o+HV               =       G1G500e +      GNO2                                   :  0.100E+01*SUN;
+{ 36634} GGH500o+HV               =       GHD4006 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 36635} G2G501o +GNO                =       G1G502D +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 36636} G2G501o +GNO                =       GGH502w                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 36637} G2G501o +GHO2               =       GGH502x                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 36638} G2G501o +GNO3               =       G1G502D +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 36639} G2G501o +MEPERO             =  0.340G1G502D + 0.330GGH501e + 0.330GGH502y                 : ARR( 0.565E-13,  -845., 0.0);
+{ 36640} G2G501o +PERO1              =  0.460G1G502D + 0.270GGH501e + 0.270GGH502y                 : ARR( 0.434E-13,  -900., 0.0);
+{ 36641} G2G501o +PERO2              =  0.400G1G502D + 0.300GGH501e + 0.300GGH502y                 : ARR( 0.162E-13, -1400., 0.0);
+{ 36642} G2G501o +PERO3              =  0.460G1G502D + 0.270GGH501e + 0.270GGH502y                 : ARR( 0.488E-13, -1250., 0.0);
+{ 36643} G2G501o +PERO5              =  0.460G1G502D + 0.270GGH501e + 0.270GGH502y                 : ARR( 0.183E-11,   450., 0.0);
+{ 36644} G2G501o +PERO6              =  0.300G1G502D + 0.350GGH501e + 0.350GGH502y                 : ARR( 0.168E-13, -1300., 0.0);
+{ 36645} G2G501o +PERO9              =  0.650G1G502D + 0.350GGH502y                                : ARR( 0.100E-10,     0., 0.0);
+{ 36646} G2G501p +GNO                =       G1G502B +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 36647} G2G501p +GNO                =       GGN500n                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 36648} G2G501p +GHO2               =       GGH500o                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 36649} G2G501p +GNO3               =       G1G502B +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 36650} G2G501p +MEPERO             =  0.340G1G502B + 0.330GGN500u + 0.330GGN500X                 : ARR( 0.565E-13,  -845., 0.0);
+{ 36651} G2G501p +PERO1              =  0.460G1G502B + 0.270GGN500u + 0.270GGN500X                 : ARR( 0.434E-13,  -900., 0.0);
+{ 36652} G2G501p +PERO2              =  0.400G1G502B + 0.300GGN500u + 0.300GGN500X                 : ARR( 0.162E-13, -1400., 0.0);
+{ 36653} G2G501p +PERO3              =  0.460G1G502B + 0.270GGN500u + 0.270GGN500X                 : ARR( 0.488E-13, -1250., 0.0);
+{ 36654} G2G501p +PERO5              =  0.460G1G502B + 0.270GGN500u + 0.270GGN500X                 : ARR( 0.183E-11,   450., 0.0);
+{ 36655} G2G501p +PERO6              =  0.300G1G502B + 0.350GGN500u + 0.350GGN500X                 : ARR( 0.168E-13, -1300., 0.0);
+{ 36656} G2G501p +PERO9              =  0.650G1G502B + 0.350GGN500X                                : ARR( 0.100E-10,     0., 0.0);
+{ 36657} G1G502D                     =       GCH2O   +      GGH400o +      GHO2                    : ARR( 0.200E+15,  5296., 0.0);
+{ 36658} G1G502D                     =       GDO2000 +      GGN3005 +      GHO                     : ARR( 0.200E+15,  4828., 0.0);
+{ 36659} GGH500p +GHO                =       GGH500S +      GHO                                    : ARR( 0.514E-10,     0., 0.0);
+{ 36660} GGH500p +GHO                =       GGH500r +      GHO                                    : ARR( 0.313E-10,     0., 0.0);
+{ 36661} GGH500p+HV               =       G1G502C +      GHO                                    :  0.100E+01*SUN;
+{ 36662} GGH500p+HV               =       G1G500e +      GHO                                    :  0.100E+01*SUN;
+{ 36663} GGH500p+HV               =       GHD4006 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 36664} GGH500q +GHO                =       GGH500s +      GHO2                                   : ARR( 0.414E-11,     0., 0.0);
+{ 36665} GGH500q +GHO                =       GGK500G +      GHO                                    : ARR( 0.424E-10,     0., 0.0);
+{ 36666} GGH500q +GHO                =       GGH500r +      GHO2                                   : ARR( 0.646E-11,     0., 0.0);
+{ 36667} GGH500q +GHO                =       G2G500m                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 36668} GGH500q +GHO                =       G3H500e                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 36669} GGH500q+HV               =       G1G500u +      GHO                                    :  0.100E+01*SUN;
+{ 36670} GGH500q+HV               =       GHD4006 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 36671} GGH500r +GHO                =       GGH502z +      GHO2                                   : ARR( 0.403E-11,     0., 0.0);
+{ 36672} GGH500r +GHO                =       G2G501q                                               : ARR( 0.450E-11,     0., 0.0);
+{ 36673} GGH500r +GHO                =       GGK500H +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 36674} GGH500r +GHO                =       G2G500o                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 36675} GGH500r +GHO                =       G3H502L                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 36676} GGH500r+HV               =       G1G500w +      GHO                                    :  0.100E+01*SUN;
+{ 36677} GGH500r+HV               =       GAH4008 +      GCO2                                   :  0.100E+01*SUN;
+{ 36678} G2G501q +GNO                =       G1G502E +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 36679} G2G501q +GNO                =       GGH5031                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 36680} G2G501q +GHO2               =       GGH5032                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 36681} G2G501q +GNO3               =       G1G502E +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 36682} G2G501q +MEPERO             =  0.340G1G502E + 0.330GGH501f + 0.330GGH5033                 : ARR( 0.565E-13,  -845., 0.0);
+{ 36683} G2G501q +PERO1              =  0.460G1G502E + 0.270GGH501f + 0.270GGH5033                 : ARR( 0.434E-13,  -900., 0.0);
+{ 36684} G2G501q +PERO2              =  0.400G1G502E + 0.300GGH501f + 0.300GGH5033                 : ARR( 0.162E-13, -1400., 0.0);
+{ 36685} G2G501q +PERO3              =  0.460G1G502E + 0.270GGH501f + 0.270GGH5033                 : ARR( 0.488E-13, -1250., 0.0);
+{ 36686} G2G501q +PERO5              =  0.460G1G502E + 0.270GGH501f + 0.270GGH5033                 : ARR( 0.183E-11,   450., 0.0);
+{ 36687} G2G501q +PERO6              =  0.300G1G502E + 0.350GGH501f + 0.350GGH5033                 : ARR( 0.168E-13, -1300., 0.0);
+{ 36688} G2G501q +PERO9              =  0.650G1G502E + 0.350GGH5033                                : ARR( 0.100E-10,     0., 0.0);
+{ 36689} G3H502L +GHO2               =  0.800GGH500r + 0.200GAH500x + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 36690} G3H502L +GNO                =       G3H4004 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 36691} G3H502L +GNO2               =       GPH500y                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 36692} G3H502L +GNO3               =       G3H4004 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 36693} G3H502L +MEPERO             =  0.685G3H4004 + 0.315GAH500x + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36694} G3H502L +PERO1              =  0.800G3H4004 + 0.200GAH500x + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36695} G3H502L +PERO2              =  0.750G3H4004 + 0.250GAH500x + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36696} G3H502L +PERO3              =  0.800G3H4004 + 0.200GAH500x + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36697} G3H502L +PERO5              =  0.650G3H4004 + 0.350GAH500x + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36698} G3H502L +PERO6              =  0.650G3H4004 + 0.350GAH500x + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36699} G3H502L +PERO9              =       G3H4004 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 36700} G1G502E                     =       GCH2O   +      GGH400p +      GHO2                    : ARR( 0.200E+15,  4465., 0.0);
+{ 36701} G1G502E                     =       GDO2000 +      GGD3002 +      GHO                     : ARR( 0.200E+15,  4556., 0.0);
+{ 36702} GGH500s +GHO                =       GGD5005 +      GHO                                    : ARR( 0.143E-09,     0., 0.0);
+{ 36703} GGH500s +GHO                =       G3G500A                                               : ARR( 0.228E-10,     0., 0.0);
+{ 36704} GGH500s +GNO3               =       G3G500A +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 36705} GGH500s+HV               =       GHD400C +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 36706} GGH500s+HV               =       G1G500x +      GHO                                    :  0.100E+01*SUN;
+{ 36707} GGH500s+HV               =       G2G400W +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 36708} GGH500s+HV               =       GGH3006 +      GD02000                                :  0.100E+01*SUN;
+{ 36709} G3G500A +GHO2               =  0.800GGG5007 + 0.200GAG500C + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 36710} G3G500A +GNO                =       G2G400W +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 36711} G3G500A +GNO2               =       GPG500D                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 36712} G3G500A +GNO3               =       G2G400W +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 36713} G3G500A +MEPERO             =  0.685G2G400W + 0.315GAG500C + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36714} G3G500A +PERO1              =  0.800G2G400W + 0.200GAG500C + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36715} G3G500A +PERO2              =  0.750G2G400W + 0.250GAG500C + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36716} G3G500A +PERO3              =  0.800G2G400W + 0.200GAG500C + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36717} G3G500A +PERO5              =  0.650G2G400W + 0.350GAG500C + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36718} G3G500A +PERO6              =  0.650G2G400W + 0.350GAG500C + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36719} G3G500A +PERO9              =       G2G400W +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 36720} G2G400W +GNO                =       G1G400g +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 36721} G2G400W +GNO                =       GGH400O                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 36722} G2G400W +GHO2               =       GGH400q                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 36723} G2G400W +GNO3               =       G1G400g +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 36724} G2G400W +MEPERO             =  0.480G1G400g + 0.260GGH400G + 0.260GGH400i                 : ARR( 0.164E-12,  -795., 0.0);
+{ 36725} G2G400W +PERO1              =  0.600G1G400g + 0.200GGH400G + 0.200GGH400i                 : ARR( 0.126E-12,  -850., 0.0);
+{ 36726} G2G400W +PERO2              =  0.560G1G400g + 0.220GGH400G + 0.220GGH400i                 : ARR( 0.471E-13, -1350., 0.0);
+{ 36727} G2G400W +PERO3              =  0.600G1G400g + 0.200GGH400G + 0.200GGH400i                 : ARR( 0.142E-12, -1200., 0.0);
+{ 36728} G2G400W +PERO5              =  0.600G1G400g + 0.200GGH400G + 0.200GGH400i                 : ARR( 0.533E-11,   500., 0.0);
+{ 36729} G2G400W +PERO6              =  0.460G1G400g + 0.270GGH400G + 0.270GGH400i                 : ARR( 0.488E-13, -1250., 0.0);
+{ 36730} G2G400W +PERO9              =  0.800G1G400g + 0.200GGH400i                                : ARR( 0.100E-10,     0., 0.0);
+{ 36731} G1G400g +OXYGEN             =       GGH400i +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 36732} G1G400g                     =       GGD3001 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5636., 0.0);
+{ 36733} GAH500t +GHO                =       GAD5004 +      GHO                                    : ARR( 0.136E-09,     0., 0.0);
+{ 36734} GAH500t +GHO                =       G3A500B                                               : ARR( 0.215E-10,     0., 0.0);
+{ 36735} GAH500t +GNO3               =       G3A500B +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 36736} GAH500t+HV               =       G1A501A +      GHO                                    :  0.100E+01*SUN;
+{ 36737} GAH500t+HV               =       G2A400h +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 36738} GAH500t+HV               =       G2A3007 +      GD02000 +      GHO                     :  0.100E+01*SUN;
+{ 36739} G3A500B +GHO2               =  0.800GAG500D + 0.200GAA5008 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 36740} G3A500B +GNO                =       G2A400h +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 36741} G3A500B +GNO2               =       GPA500E                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 36742} G3A500B +GNO3               =       G2A400h +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 36743} G3A500B +MEPERO             =  0.685G2A400h + 0.315GAA5008 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36744} G3A500B +PERO1              =  0.800G2A400h + 0.200GAA5008 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36745} G3A500B +PERO2              =  0.750G2A400h + 0.250GAA5008 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36746} G3A500B +PERO3              =  0.800G2A400h + 0.200GAA5008 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36747} G3A500B +PERO5              =  0.650G2A400h + 0.350GAA5008 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36748} G3A500B +PERO6              =  0.650G2A400h + 0.350GAA5008 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36749} G3A500B +PERO9              =       G2A400h +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 36750} G2A400h +GNO                =       G1A400T +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 36751} G2A400h +GNO                =       GAH4003                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 36752} G2A400h +GHO2               =       GAH400X                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 36753} G2A400h +GNO3               =       G1A400T +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 36754} G2A400h +MEPERO             =  0.480G1A400T + 0.260GAH4007 + 0.260GAH400T                 : ARR( 0.164E-12,  -795., 0.0);
+{ 36755} G2A400h +PERO1              =  0.600G1A400T + 0.200GAH4007 + 0.200GAH400T                 : ARR( 0.126E-12,  -850., 0.0);
+{ 36756} G2A400h +PERO2              =  0.560G1A400T + 0.220GAH4007 + 0.220GAH400T                 : ARR( 0.471E-13, -1350., 0.0);
+{ 36757} G2A400h +PERO3              =  0.600G1A400T + 0.200GAH4007 + 0.200GAH400T                 : ARR( 0.142E-12, -1200., 0.0);
+{ 36758} G2A400h +PERO5              =  0.600G1A400T + 0.200GAH4007 + 0.200GAH400T                 : ARR( 0.533E-11,   500., 0.0);
+{ 36759} G2A400h +PERO6              =  0.460G1A400T + 0.270GAH4007 + 0.270GAH400T                 : ARR( 0.488E-13, -1250., 0.0);
+{ 36760} G2A400h +PERO9              =  0.800G1A400T + 0.200GAH400T                                : ARR( 0.100E-10,     0., 0.0);
+{ 36761} GAH500u +GHO                =       GAH503A +      GHO2                                   : ARR( 0.419E-11,     0., 0.0);
+{ 36762} GAH500u +GHO                =       G2A502R                                               : ARR( 0.147E-11,     0., 0.0);
+{ 36763} GAH500u +GHO                =       GAN500f +      GHO                                    : ARR( 0.858E-11,     0., 0.0);
+{ 36764} GAH500u +GHO                =       G2A502S                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 36765} GAH500u+HV               =       G1A501r +      GHO                                    :  0.100E+01*SUN;
+{ 36766} GAH500u+HV               =       G1A500k +      GNO2                                   :  0.100E+01*SUN;
+{ 36767} G2A502R +GNO                =       G1A502r +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 36768} G2A502R +GNO                =       GAH503B                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 36769} G2A502R +GHO2               =       GAH503C                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 36770} G2A502R +GNO3               =       G1A502r +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 36771} G2A502R +MEPERO             =  0.340G1A502r + 0.330GAH501m + 0.330GAH503D                 : ARR( 0.565E-13,  -845., 0.0);
+{ 36772} G2A502R +PERO1              =  0.460G1A502r + 0.270GAH501m + 0.270GAH503D                 : ARR( 0.434E-13,  -900., 0.0);
+{ 36773} G2A502R +PERO2              =  0.400G1A502r + 0.300GAH501m + 0.300GAH503D                 : ARR( 0.162E-13, -1400., 0.0);
+{ 36774} G2A502R +PERO3              =  0.460G1A502r + 0.270GAH501m + 0.270GAH503D                 : ARR( 0.488E-13, -1250., 0.0);
+{ 36775} G2A502R +PERO5              =  0.460G1A502r + 0.270GAH501m + 0.270GAH503D                 : ARR( 0.183E-11,   450., 0.0);
+{ 36776} G2A502R +PERO6              =  0.300G1A502r + 0.350GAH501m + 0.350GAH503D                 : ARR( 0.168E-13, -1300., 0.0);
+{ 36777} G2A502R +PERO9              =  0.650G1A502r + 0.350GAH503D                                : ARR( 0.100E-10,     0., 0.0);
+{ 36778} G2A502S +GNO                =       G1A501r +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 36779} G2A502S +GNO                =       GAN500X                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 36780} G2A502S +GHO2               =       GAH500u                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 36781} G2A502S +GNO3               =       G1A501r +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 36782} G2A502S +MEPERO             =  0.340G1A501r + 0.330GAN500z + 0.330GAN500f                 : ARR( 0.565E-13,  -845., 0.0);
+{ 36783} G2A502S +PERO1              =  0.460G1A501r + 0.270GAN500z + 0.270GAN500f                 : ARR( 0.434E-13,  -900., 0.0);
+{ 36784} G2A502S +PERO2              =  0.400G1A501r + 0.300GAN500z + 0.300GAN500f                 : ARR( 0.162E-13, -1400., 0.0);
+{ 36785} G2A502S +PERO3              =  0.460G1A501r + 0.270GAN500z + 0.270GAN500f                 : ARR( 0.488E-13, -1250., 0.0);
+{ 36786} G2A502S +PERO5              =  0.460G1A501r + 0.270GAN500z + 0.270GAN500f                 : ARR( 0.183E-11,   450., 0.0);
+{ 36787} G2A502S +PERO6              =  0.300G1A501r + 0.350GAN500z + 0.350GAN500f                 : ARR( 0.168E-13, -1300., 0.0);
+{ 36788} G2A502S +PERO9              =  0.650G1A501r + 0.350GAN500f                                : ARR( 0.100E-10,     0., 0.0);
+{ 36789} G1A502r                     =       GCH2O   +      GAH400r +      GHO2                    : ARR( 0.200E+15,  5296., 0.0);
+{ 36790} G1A502r                     =       GDO2000 +      GAN3006 +      GHO                     : ARR( 0.200E+15,  4828., 0.0);
+{ 36791} GAH500v +GHO                =       GAH503E +      GHO2                                   : ARR( 0.460E-11,     0., 0.0);
+{ 36792} GAH500v +GHO                =       GAH500U +      GHO                                    : ARR( 0.472E-10,     0., 0.0);
+{ 36793} GAH500v +GHO                =       GAH500x +      GHO                                    : ARR( 0.213E-10,     0., 0.0);
+{ 36794} GAH500v+HV               =       G1A501t +      GHO                                    :  0.100E+01*SUN;
+{ 36795} GAH500v+HV               =       G1A500k +      GHO                                    :  0.100E+01*SUN;
+{ 36796} GAH500w +GHO                =       GAH500y +      GHO2                                   : ARR( 0.419E-11,     0., 0.0);
+{ 36797} GAH500w +GHO                =       GAK500E +      GHO                                    : ARR( 0.429E-10,     0., 0.0);
+{ 36798} GAH500w +GHO                =       GAH500x +      GHO2                                   : ARR( 0.484E-11,     0., 0.0);
+{ 36799} GAH500w +GHO                =       G2A5014                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 36800} GAH500w+HV               =       G1A501D +      GHO                                    :  0.100E+01*SUN;
+{ 36801} GAH500x +GHO                =       GAH503F +      GHO2                                   : ARR( 0.409E-11,     0., 0.0);
+{ 36802} GAH500x +GHO                =       G2A502T                                               : ARR( 0.456E-11,     0., 0.0);
+{ 36803} GAH500x +GHO                =       GAK500F +      GHO                                    : ARR( 0.256E-10,     0., 0.0);
+{ 36804} GAH500x +GHO                =       G2A5016                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 36805} GAH500x+HV               =       G1A501F +      GHO                                    :  0.100E+01*SUN;
+{ 36806} GAH500x+HV               =       GHD4006 +      GCO2                                   :  0.100E+01*SUN;
+{ 36807} G2A502T +GNO                =       G1A502s +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 36808} G2A502T +GNO                =       GAH503G                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 36809} G2A502T +GHO2               =       GAH503H                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 36810} G2A502T +GNO3               =       G1A502s +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 36811} G2A502T +MEPERO             =  0.340G1A502s + 0.330GAH502n + 0.330GAH503I                 : ARR( 0.565E-13,  -845., 0.0);
+{ 36812} G2A502T +PERO1              =  0.460G1A502s + 0.270GAH502n + 0.270GAH503I                 : ARR( 0.434E-13,  -900., 0.0);
+{ 36813} G2A502T +PERO2              =  0.400G1A502s + 0.300GAH502n + 0.300GAH503I                 : ARR( 0.162E-13, -1400., 0.0);
+{ 36814} G2A502T +PERO3              =  0.460G1A502s + 0.270GAH502n + 0.270GAH503I                 : ARR( 0.488E-13, -1250., 0.0);
+{ 36815} G2A502T +PERO5              =  0.460G1A502s + 0.270GAH502n + 0.270GAH503I                 : ARR( 0.183E-11,   450., 0.0);
+{ 36816} G2A502T +PERO6              =  0.300G1A502s + 0.350GAH502n + 0.350GAH503I                 : ARR( 0.168E-13, -1300., 0.0);
+{ 36817} G2A502T +PERO9              =  0.650G1A502s + 0.350GAH503I                                : ARR( 0.100E-10,     0., 0.0);
+{ 36818} G1A502s                     =       GCH2O   +      GAH400s +      GHO2                    : ARR( 0.200E+15,  4465., 0.0);
+{ 36819} G1A502s                     =       GDO2000 +      GAD3002 +      GHO                     : ARR( 0.200E+15,  4556., 0.0);
+{ 36820} GAH500y +GHO                =       GAD5005 +      GHO                                    : ARR( 0.139E-09,     0., 0.0);
+{ 36821} GAH500y +GHO                =       G3A500C                                               : ARR( 0.221E-10,     0., 0.0);
+{ 36822} GAH500y +GNO3               =       G3A500C +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 36823} GAH500y+HV               =       G1A501G +      GHO                                    :  0.100E+01*SUN;
+{ 36824} GAH500y+HV               =       G2A400i +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 36825} GAH500y+HV               =       GAH3006 +      GD02000                                :  0.100E+01*SUN;
+{ 36826} G3A500C +GHO2               =  0.800GAG500E + 0.200GAA5009 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 36827} G3A500C +GNO                =       G2A400i +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 36828} G3A500C +GNO2               =       GPA500F                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 36829} G3A500C +GNO3               =       G2A400i +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 36830} G3A500C +MEPERO             =  0.685G2A400i + 0.315GAA5009 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36831} G3A500C +PERO1              =  0.800G2A400i + 0.200GAA5009 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36832} G3A500C +PERO2              =  0.750G2A400i + 0.250GAA5009 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36833} G3A500C +PERO3              =  0.800G2A400i + 0.200GAA5009 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36834} G3A500C +PERO5              =  0.650G2A400i + 0.350GAA5009 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36835} G3A500C +PERO6              =  0.650G2A400i + 0.350GAA5009 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36836} G3A500C +PERO9              =       G2A400i +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 36837} G2A400i +GNO                =       G1A400r +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 36838} G2A400i +GNO                =       GAH400R                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 36839} G2A400i +GHO2               =       GAH400t                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 36840} G2A400i +GNO3               =       G1A400r +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 36841} G2A400i +MEPERO             =  0.480G1A400r + 0.260GAH400J + 0.260GAH400o                 : ARR( 0.164E-12,  -795., 0.0);
+{ 36842} G2A400i +PERO1              =  0.600G1A400r + 0.200GAH400J + 0.200GAH400o                 : ARR( 0.126E-12,  -850., 0.0);
+{ 36843} G2A400i +PERO2              =  0.560G1A400r + 0.220GAH400J + 0.220GAH400o                 : ARR( 0.471E-13, -1350., 0.0);
+{ 36844} G2A400i +PERO3              =  0.600G1A400r + 0.200GAH400J + 0.200GAH400o                 : ARR( 0.142E-12, -1200., 0.0);
+{ 36845} G2A400i +PERO5              =  0.600G1A400r + 0.200GAH400J + 0.200GAH400o                 : ARR( 0.533E-11,   500., 0.0);
+{ 36846} G2A400i +PERO6              =  0.460G1A400r + 0.270GAH400J + 0.270GAH400o                 : ARR( 0.488E-13, -1250., 0.0);
+{ 36847} G2A400i +PERO9              =  0.800G1A400r + 0.200GAH400o                                : ARR( 0.100E-10,     0., 0.0);
+{ 36848} G1A400r +OXYGEN             =       GAH400o +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 36849} G1A400r                     =       GAD3001 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5636., 0.0);
+{ 36850} GPH500v                     =       G3H500c +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 36851} GPH500v +GHO                =       GPH503G +      GHO2                                   : ARR( 0.407E-11,     0., 0.0);
+{ 36852} GPH500v +GHO                =       G2P502Y                                               : ARR( 0.143E-11,     0., 0.0);
+{ 36853} GPH500v +GHO                =       GPN500h +      GHO                                    : ARR( 0.834E-11,     0., 0.0);
+{ 36854} GPH500v +GHO                =       G2P502Z                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 36855} GPH500v+HV               =       G1P501x +      GHO                                    :  0.100E+01*SUN;
+{ 36856} GPH500v+HV               =       G1P500n +      GNO2                                   :  0.100E+01*SUN;
+{ 36857} GPH500v+HV               =       G3H500c +      GNO2                                   :  0.100E+01*SUN;
+{ 36858} G2P502Y +GNO                =       G1P5036 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 36859} G2P502Y +GNO                =       GPH503H                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 36860} G2P502Y +GHO2               =       GPH503I                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 36861} G2P502Y +GNO3               =       G1P5036 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 36862} G2P502Y +MEPERO             =  0.340G1P5036 + 0.330GPH501k + 0.330GPH503J                 : ARR( 0.565E-13,  -845., 0.0);
+{ 36863} G2P502Y +PERO1              =  0.460G1P5036 + 0.270GPH501k + 0.270GPH503J                 : ARR( 0.434E-13,  -900., 0.0);
+{ 36864} G2P502Y +PERO2              =  0.400G1P5036 + 0.300GPH501k + 0.300GPH503J                 : ARR( 0.162E-13, -1400., 0.0);
+{ 36865} G2P502Y +PERO3              =  0.460G1P5036 + 0.270GPH501k + 0.270GPH503J                 : ARR( 0.488E-13, -1250., 0.0);
+{ 36866} G2P502Y +PERO5              =  0.460G1P5036 + 0.270GPH501k + 0.270GPH503J                 : ARR( 0.183E-11,   450., 0.0);
+{ 36867} G2P502Y +PERO6              =  0.300G1P5036 + 0.350GPH501k + 0.350GPH503J                 : ARR( 0.168E-13, -1300., 0.0);
+{ 36868} G2P502Y +PERO9              =  0.650G1P5036 + 0.350GPH503J                                : ARR( 0.100E-10,     0., 0.0);
+{ 36869} G2P502Z +GNO                =       G1P501x +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 36870} G2P502Z +GNO                =       GPN500X                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 36871} G2P502Z +GHO2               =       GPH500v                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 36872} G2P502Z +GNO3               =       G1P501x +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 36873} G2P502Z +MEPERO             =  0.340G1P501x + 0.330GPN5014 + 0.330GPN500h                 : ARR( 0.565E-13,  -845., 0.0);
+{ 36874} G2P502Z +PERO1              =  0.460G1P501x + 0.270GPN5014 + 0.270GPN500h                 : ARR( 0.434E-13,  -900., 0.0);
+{ 36875} G2P502Z +PERO2              =  0.400G1P501x + 0.300GPN5014 + 0.300GPN500h                 : ARR( 0.162E-13, -1400., 0.0);
+{ 36876} G2P502Z +PERO3              =  0.460G1P501x + 0.270GPN5014 + 0.270GPN500h                 : ARR( 0.488E-13, -1250., 0.0);
+{ 36877} G2P502Z +PERO5              =  0.460G1P501x + 0.270GPN5014 + 0.270GPN500h                 : ARR( 0.183E-11,   450., 0.0);
+{ 36878} G2P502Z +PERO6              =  0.300G1P501x + 0.350GPN5014 + 0.350GPN500h                 : ARR( 0.168E-13, -1300., 0.0);
+{ 36879} G2P502Z +PERO9              =  0.650G1P501x + 0.350GPN500h                                : ARR( 0.100E-10,     0., 0.0);
+{ 36880} G1P5036                     =       GCH2O   +      GPH400s +      GHO2                    : ARR( 0.200E+15,  5296., 0.0);
+{ 36881} G1P5036                     =       GDO2000 +      GPN3006 +      GHO                     : ARR( 0.200E+15,  4828., 0.0);
+{ 36882} GPH500w                     =       G3H500d +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 36883} GPH500w +GHO                =       GPH503K +      GHO2                                   : ARR( 0.452E-11,     0., 0.0);
+{ 36884} GPH500w +GHO                =       GPH500X +      GHO                                    : ARR( 0.463E-10,     0., 0.0);
+{ 36885} GPH500w +GHO                =       GPH500y +      GHO                                    : ARR( 0.283E-10,     0., 0.0);
+{ 36886} GPH500w+HV               =       G1P501z +      GHO                                    :  0.100E+01*SUN;
+{ 36887} GPH500w+HV               =       G1P500n +      GHO                                    :  0.100E+01*SUN;
+{ 36888} GPH500w+HV               =       G3H500d +      GNO2                                   :  0.100E+01*SUN;
+{ 36889} GPH500x                     =       G3H500e +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 36890} GPH500x +GHO                =       GPH500z +      GHO2                                   : ARR( 0.414E-11,     0., 0.0);
+{ 36891} GPH500x +GHO                =       GPK500G +      GHO                                    : ARR( 0.425E-10,     0., 0.0);
+{ 36892} GPH500x +GHO                =       GPH500y +      GHO2                                   : ARR( 0.648E-11,     0., 0.0);
+{ 36893} GPH500x +GHO                =       G2P5016                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 36894} GPH500x+HV               =       G1P501F +      GHO                                    :  0.100E+01*SUN;
+{ 36895} GPH500x+HV               =       G3H500e +      GNO2                                   :  0.100E+01*SUN;
+{ 36896} GPH500y                     =       G3H502L +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 36897} GPH500y +GHO                =       GPH503L +      GHO2                                   : ARR( 0.404E-11,     0., 0.0);
+{ 36898} GPH500y +GHO                =       G2P502a                                               : ARR( 0.450E-11,     0., 0.0);
+{ 36899} GPH500y +GHO                =       GPK500H +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 36900} GPH500y +GHO                =       G2P5018                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 36901} GPH500y+HV               =       G1P501H +      GHO                                    :  0.100E+01*SUN;
+{ 36902} GPH500y+HV               =       G3H4004 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 36903} G2P502a +GNO                =       G1P5037 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 36904} G2P502a +GNO                =       GPH503M                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 36905} G2P502a +GHO2               =       GPH503N                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 36906} G2P502a +GNO3               =       G1P5037 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 36907} G2P502a +MEPERO             =  0.340G1P5037 + 0.330GPH501l + 0.330GPH503O                 : ARR( 0.565E-13,  -845., 0.0);
+{ 36908} G2P502a +PERO1              =  0.460G1P5037 + 0.270GPH501l + 0.270GPH503O                 : ARR( 0.434E-13,  -900., 0.0);
+{ 36909} G2P502a +PERO2              =  0.400G1P5037 + 0.300GPH501l + 0.300GPH503O                 : ARR( 0.162E-13, -1400., 0.0);
+{ 36910} G2P502a +PERO3              =  0.460G1P5037 + 0.270GPH501l + 0.270GPH503O                 : ARR( 0.488E-13, -1250., 0.0);
+{ 36911} G2P502a +PERO5              =  0.460G1P5037 + 0.270GPH501l + 0.270GPH503O                 : ARR( 0.183E-11,   450., 0.0);
+{ 36912} G2P502a +PERO6              =  0.300G1P5037 + 0.350GPH501l + 0.350GPH503O                 : ARR( 0.168E-13, -1300., 0.0);
+{ 36913} G2P502a +PERO9              =  0.650G1P5037 + 0.350GPH503O                                : ARR( 0.100E-10,     0., 0.0);
+{ 36914} G1P5037                     =       GCH2O   +      GPH400t +      GHO2                    : ARR( 0.200E+15,  4465., 0.0);
+{ 36915} G1P5037                     =       GDO2000 +      GPD3002 +      GHO                     : ARR( 0.200E+15,  4556., 0.0);
+{ 36916} GPH500z                     =       G3H500f +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 36917} GPH500z +GHO                =       GPD5005 +      GHO                                    : ARR( 0.140E-09,     0., 0.0);
+{ 36918} GPH500z +GHO                =       G3P500C                                               : ARR( 0.223E-10,     0., 0.0);
+{ 36919} GPH500z +GNO3               =       G3P500C +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 36920} GPH500z+HV               =       G3H500f +      GNO2                                   :  0.100E+01*SUN;
+{ 36921} GPH500z+HV               =       G1P501I +      GHO                                    :  0.100E+01*SUN;
+{ 36922} GPH500z+HV               =       G2P400i +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 36923} GPH500z+HV               =       GPH3006 +      GD02000                                :  0.100E+01*SUN;
+{ 36924} G3P500C +GHO2               =  0.800GPG500E + 0.200GPA500G + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 36925} G3P500C +GNO                =       G2P400i +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 36926} G3P500C +GNO2               =       GPP5009                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 36927} G3P500C +GNO3               =       G2P400i +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 36928} G3P500C +MEPERO             =  0.685G2P400i + 0.315GPA500G + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36929} G3P500C +PERO1              =  0.800G2P400i + 0.200GPA500G + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36930} G3P500C +PERO2              =  0.750G2P400i + 0.250GPA500G + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36931} G3P500C +PERO3              =  0.800G2P400i + 0.200GPA500G + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36932} G3P500C +PERO5              =  0.650G2P400i + 0.350GPA500G + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36933} G3P500C +PERO6              =  0.650G2P400i + 0.350GPA500G + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36934} G3P500C +PERO9              =       G2P400i +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 36935} G2P400i +GNO                =       G1P400s +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 36936} G2P400i +GNO                =       GPH400R                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 36937} G2P400i +GHO2               =       GPH400u                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 36938} G2P400i +GNO3               =       G1P400s +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 36939} G2P400i +MEPERO             =  0.480G1P400s + 0.260GPH400L + 0.260GPH400p                 : ARR( 0.164E-12,  -795., 0.0);
+{ 36940} G2P400i +PERO1              =  0.600G1P400s + 0.200GPH400L + 0.200GPH400p                 : ARR( 0.126E-12,  -850., 0.0);
+{ 36941} G2P400i +PERO2              =  0.560G1P400s + 0.220GPH400L + 0.220GPH400p                 : ARR( 0.471E-13, -1350., 0.0);
+{ 36942} G2P400i +PERO3              =  0.600G1P400s + 0.200GPH400L + 0.200GPH400p                 : ARR( 0.142E-12, -1200., 0.0);
+{ 36943} G2P400i +PERO5              =  0.600G1P400s + 0.200GPH400L + 0.200GPH400p                 : ARR( 0.533E-11,   500., 0.0);
+{ 36944} G2P400i +PERO6              =  0.460G1P400s + 0.270GPH400L + 0.270GPH400p                 : ARR( 0.488E-13, -1250., 0.0);
+{ 36945} G2P400i +PERO9              =  0.800G1P400s + 0.200GPH400p                                : ARR( 0.100E-10,     0., 0.0);
+{ 36946} G1P400s +OXYGEN             =       GPH400p +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 36947} G1P400s                     =       GPD3001 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5636., 0.0);
+{ 36948} GHN505I +GHO                =       G3H502M                                               : ARR( 0.423E-11,     0., 0.0);
+{ 36949} GHN505I +GHO                =       GND501G +      GHO                                    : ARR( 0.266E-10,     0., 0.0);
+{ 36950} GHN505I +GHO                =       G3H502N                                               : ARR( 0.211E-10,     0., 0.0);
+{ 36951} GHN505I +GHO                =       G2N505b                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 36952} GHN505I +GNO3               =       G3H502M +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 36953} GHN505I +GNO3               =       G3H502N +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 36954} GHN505I+HV               =       GCO     +      GHD400C +      GHO2    +      GNO2     :  0.100E+01*SUN;
+{ 36955} GHN505I+HV               =       GND2000 +      G2D3005 +      GHO                     :  0.100E+01*SUN;
+{ 36956} GHN505I+HV               =       G1H5098 +      GNO2                                   :  0.100E+01*SUN;
+{ 36957} GHN505I+HV               =       G1N506U +      GHO                                    :  0.100E+01*SUN;
+{ 36958} GHN505I+HV               =       G2H401F +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 36959} GHN505I+HV               =       GDD3002 +      GD02000 +      GHO     +      GNO2     :  0.100E+01*SUN;
+{ 36960} G3H502M +GHO2               =  0.800GGH502v + 0.200GAH503A + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 36961} G3H502M +GNO                =       GHD400C + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 36962} G3H502M +GNO2               =       GPH503G                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 36963} G3H502M +GNO3               =       GHD400C + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 36964} G3H502M +MEPERO             =  0.685GHD400C + 0.315GAH503A + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 36965} G3H502M +PERO1              =  0.800GHD400C + 0.200GAH503A + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 36966} G3H502M +PERO2              =  0.750GHD400C + 0.250GAH503A + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 36967} G3H502M +PERO3              =  0.800GHD400C + 0.200GAH503A + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 36968} G3H502M +PERO5              =  0.650GHD400C + 0.350GAH503A + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 36969} G3H502M +PERO6              =  0.650GHD400C + 0.350GAH503A + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 36970} G3H502M +PERO9              =       GHD400C +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 36971} G3H502N +GHO2               =  0.800GGH5034 + 0.200GAH503J + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 36972} G3H502N +GNO                =       G2H401F +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 36973} G3H502N +GNO2               =       GPH503P                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 36974} G3H502N +GNO3               =       G2H401F +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 36975} G3H502N +MEPERO             =  0.685G2H401F + 0.315GAH503J + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36976} G3H502N +PERO1              =  0.800G2H401F + 0.200GAH503J + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36977} G3H502N +PERO2              =  0.750G2H401F + 0.250GAH503J + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36978} G3H502N +PERO3              =  0.800G2H401F + 0.200GAH503J + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36979} G3H502N +PERO5              =  0.650G2H401F + 0.350GAH503J + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36980} G3H502N +PERO6              =  0.650G2H401F + 0.350GAH503J + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 36981} G3H502N +PERO9              =       G2H401F +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 36982} G2N505b +GNO                =       G1N506U +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 36983} G2N505b +GNO                =       GNN502t                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 36984} G2N505b +GHO2               =       GHN505I                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 36985} G2N505b +GNO3               =       G1N506U +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 36986} G2N505b +MEPERO             =  0.340G1N506U + 0.330GND501D + 0.330GND501G                 : ARR( 0.565E-13,  -845., 0.0);
+{ 36987} G2N505b +PERO1              =  0.460G1N506U + 0.270GND501D + 0.270GND501G                 : ARR( 0.434E-13,  -900., 0.0);
+{ 36988} G2N505b +PERO2              =  0.400G1N506U + 0.300GND501D + 0.300GND501G                 : ARR( 0.162E-13, -1400., 0.0);
+{ 36989} G2N505b +PERO3              =  0.460G1N506U + 0.270GND501D + 0.270GND501G                 : ARR( 0.488E-13, -1250., 0.0);
+{ 36990} G2N505b +PERO5              =  0.460G1N506U + 0.270GND501D + 0.270GND501G                 : ARR( 0.183E-11,   450., 0.0);
+{ 36991} G2N505b +PERO6              =  0.300G1N506U + 0.350GND501D + 0.350GND501G                 : ARR( 0.168E-13, -1300., 0.0);
+{ 36992} G2N505b +PERO9              =  0.650G1N506U + 0.350GND501G                                : ARR( 0.100E-10,     0., 0.0);
+{ 36993} G1H5098                     =       GDD3000 +      GDD2000 +      GHO                     : ARR( 0.200E+15,  6241., 0.0);
+{ 36994} G1H5098                     =       GHD400C +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 36995} G2H401F +GNO                =       G1H401h +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 36996} G2H401F +GNO                =       GHN4012                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 36997} G2H401F +GHO2               =       GHH400u                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 36998} G2H401F +GNO3               =       G1H401h +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 36999} G2H401F +MEPERO             =  0.480G1H401h + 0.260GHN400L + 0.260GHN400y                 : ARR( 0.164E-12,  -795., 0.0);
+{ 37000} G2H401F +PERO1              =  0.600G1H401h + 0.200GHN400L + 0.200GHN400y                 : ARR( 0.126E-12,  -850., 0.0);
+{ 37001} G2H401F +PERO2              =  0.560G1H401h + 0.220GHN400L + 0.220GHN400y                 : ARR( 0.471E-13, -1350., 0.0);
+{ 37002} G2H401F +PERO3              =  0.600G1H401h + 0.200GHN400L + 0.200GHN400y                 : ARR( 0.142E-12, -1200., 0.0);
+{ 37003} G2H401F +PERO5              =  0.600G1H401h + 0.200GHN400L + 0.200GHN400y                 : ARR( 0.533E-11,   500., 0.0);
+{ 37004} G2H401F +PERO6              =  0.460G1H401h + 0.270GHN400L + 0.270GHN400y                 : ARR( 0.488E-13, -1250., 0.0);
+{ 37005} G2H401F +PERO9              =  0.800G1H401h + 0.200GHN400y                                : ARR( 0.100E-10,     0., 0.0);
+{ 37006} G1H401h +OXYGEN             =       GHN400y +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 37007} G1H401h                     =       GND3005 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5636., 0.0);
+{ 37008} GHN505J +GHO                =       GHN506g +      GHO2                                   : ARR( 0.830E-12,     0., 0.0);
+{ 37009} GHN505J +GHO                =       GNN503F +      GHO                                    : ARR( 0.170E-11,     0., 0.0);
+{ 37010} GHN505J +GHO                =       G3H502O                                               : ARR( 0.429E-11,     0., 0.0);
+{ 37011} GHN505J +GHO                =       G2N505c                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 37012} GHN505J +GNO3               =       G3H502O +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 37013} GHN505J+HV               =       G1H504L +      GNO2                                   :  0.100E+01*SUN;
+{ 37014} GHN505J+HV               =       G1N506X +      GHO                                    :  0.100E+01*SUN;
+{ 37015} GHN505J+HV               =       G1H5089 +      GNO2                                   :  0.100E+01*SUN;
+{ 37016} GHN505J+HV               =       GHN400h +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 37017} GHN505J+HV               =       GDK3001 +      GND2000 +      GHO     +      GNO2     :  0.100E+01*SUN;
+{ 37018} G3H502O +GHO2               =  0.800GGH502w + 0.200GAH503B + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 37019} G3H502O +GNO                =       GHN400h + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 37020} G3H502O +GNO2               =       GPH503H                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 37021} G3H502O +GNO3               =       GHN400h + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 37022} G3H502O +MEPERO             =  0.685GHN400h + 0.315GAH503B + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37023} G3H502O +PERO1              =  0.800GHN400h + 0.200GAH503B + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37024} G3H502O +PERO2              =  0.750GHN400h + 0.250GAH503B + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37025} G3H502O +PERO3              =  0.800GHN400h + 0.200GAH503B + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37026} G3H502O +PERO5              =  0.650GHN400h + 0.350GAH503B + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37027} G3H502O +PERO6              =  0.650GHN400h + 0.350GAH503B + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37028} G3H502O +PERO9              =       GHN400h +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 37029} G2N505c +GNO                =       G1N506X +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 37030} G2N505c +GNO                =       GNN502y                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 37031} G2N505c +GHO2               =       GHN505J                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 37032} G2N505c +GNO3               =       G1N506X +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 37033} G2N505c +MEPERO             =  0.340G1N506X + 0.330GNN502u + 0.330GNN503F                 : ARR( 0.565E-13,  -845., 0.0);
+{ 37034} G2N505c +PERO1              =  0.460G1N506X + 0.270GNN502u + 0.270GNN503F                 : ARR( 0.434E-13,  -900., 0.0);
+{ 37035} G2N505c +PERO2              =  0.400G1N506X + 0.300GNN502u + 0.300GNN503F                 : ARR( 0.162E-13, -1400., 0.0);
+{ 37036} G2N505c +PERO3              =  0.460G1N506X + 0.270GNN502u + 0.270GNN503F                 : ARR( 0.488E-13, -1250., 0.0);
+{ 37037} G2N505c +PERO5              =  0.460G1N506X + 0.270GNN502u + 0.270GNN503F                 : ARR( 0.183E-11,   450., 0.0);
+{ 37038} G2N505c +PERO6              =  0.300G1N506X + 0.350GNN502u + 0.350GNN503F                 : ARR( 0.168E-13, -1300., 0.0);
+{ 37039} G2N505c +PERO9              =  0.650G1N506X + 0.350GNN503F                                : ARR( 0.100E-10,     0., 0.0);
+{ 37040} G1N506X                     =       GDO2000 +      GND3005 +      GNO2                    : ARR( 0.200E+15,  5492., 0.0);
+{ 37041} G1N506X                     =       GND3004 +      GDD2000 +      GNO2                    : ARR( 0.200E+15,  6455., 0.0);
+{ 37042} GHH501y +GHO                =       GHH502w +      GHO2                                   : ARR( 0.403E-11,     0., 0.0);
+{ 37043} GHH501y +GHO                =       GHN505K +      GHO                                    : ARR( 0.413E-10,     0., 0.0);
+{ 37044} GHH501y +GHO                =       GHN506h +      GHO                                    : ARR( 0.827E-11,     0., 0.0);
+{ 37045} GHH501y +GHO                =       G3H502P                                               : ARR( 0.417E-11,     0., 0.0);
+{ 37046} GHH501y +GHO                =       G2H5025                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 37047} GHH501y +GHO                =       G2H503G                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 37048} GHH501y +GNO3               =       G3H502P +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 37049} GHH501y+HV               =       G1H504L +      GHO                                    :  0.100E+01*SUN;
+{ 37050} GHH501y+HV               =       G1H5099 +      GHO                                    :  0.100E+01*SUN;
+{ 37051} GHH501y+HV               =       G1H506J +      GNO2                                   :  0.100E+01*SUN;
+{ 37052} GHH501y+HV               =       GHH4009 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 37053} GHH501y+HV               =       GDK3001 +      GND2000 + 2.000GHO                     :  0.100E+01*SUN;
+{ 37054} G3H502P +GHO2               =  0.800GGH502x + 0.200GAH503C + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 37055} G3H502P +GNO                =       GHH4009 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 37056} G3H502P +GNO2               =       GPH503I                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 37057} G3H502P +GNO3               =       GHH4009 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 37058} G3H502P +MEPERO             =  0.685GHH4009 + 0.315GAH503C + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37059} G3H502P +PERO1              =  0.800GHH4009 + 0.200GAH503C + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37060} G3H502P +PERO2              =  0.750GHH4009 + 0.250GAH503C + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37061} G3H502P +PERO3              =  0.800GHH4009 + 0.200GAH503C + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37062} G3H502P +PERO5              =  0.650GHH4009 + 0.350GAH503C + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37063} G3H502P +PERO6              =  0.650GHH4009 + 0.350GAH503C + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37064} G3H502P +PERO9              =       GHH4009 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 37065} G2H503G +GNO                =       G1H5099 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 37066} G2H503G +GNO                =       GHN505l                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 37067} G2H503G +GHO2               =       GHH501y                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 37068} G2H503G +GNO3               =       G1H5099 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 37069} G2H503G +MEPERO             =  0.340G1H5099 + 0.330GHN505M + 0.330GHN506h                 : ARR( 0.565E-13,  -845., 0.0);
+{ 37070} G2H503G +PERO1              =  0.460G1H5099 + 0.270GHN505M + 0.270GHN506h                 : ARR( 0.434E-13,  -900., 0.0);
+{ 37071} G2H503G +PERO2              =  0.400G1H5099 + 0.300GHN505M + 0.300GHN506h                 : ARR( 0.162E-13, -1400., 0.0);
+{ 37072} G2H503G +PERO3              =  0.460G1H5099 + 0.270GHN505M + 0.270GHN506h                 : ARR( 0.488E-13, -1250., 0.0);
+{ 37073} G2H503G +PERO5              =  0.460G1H5099 + 0.270GHN505M + 0.270GHN506h                 : ARR( 0.183E-11,   450., 0.0);
+{ 37074} G2H503G +PERO6              =  0.300G1H5099 + 0.350GHN505M + 0.350GHN506h                 : ARR( 0.168E-13, -1300., 0.0);
+{ 37075} G2H503G +PERO9              =  0.650G1H5099 + 0.350GHN506h                                : ARR( 0.100E-10,     0., 0.0);
+{ 37076} G1H5099                     =       GDO2000 +      GND3005 +      GHO                     : ARR( 0.200E+15,  3953., 0.0);
+{ 37077} GHN505K +GHO                =       GHN506i +      GHO2                                   : ARR( 0.251E-11,     0., 0.0);
+{ 37078} GHN505K +GHO                =       GND501O +      GHO                                    : ARR( 0.515E-11,     0., 0.0);
+{ 37079} GHN505K +GHO                =       G3H502Q                                               : ARR( 0.426E-11,     0., 0.0);
+{ 37080} GHN505K +GHO                =       G2N505d                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 37081} GHN505K +GNO3               =       G3H502Q +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 37082} GHN505K+HV               =       G3K2001 +      GND3005 +      GHO                     :  0.100E+01*SUN;
+{ 37083} GHN505K+HV               =       G1N506Y +      GHO                                    :  0.100E+01*SUN;
+{ 37084} GHN505K+HV               =       G1H509A +      GNO2                                   :  0.100E+01*SUN;
+{ 37085} GHN505K+HV               =       GHD400G +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 37086} G3H502Q +GHO2               =  0.800GGH502y + 0.200GAH503D + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 37087} G3H502Q +GNO                =       GHD400G + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 37088} G3H502Q +GNO2               =       GPH503J                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 37089} G3H502Q +GNO3               =       GHD400G + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 37090} G3H502Q +MEPERO             =  0.685GHD400G + 0.315GAH503D + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37091} G3H502Q +PERO1              =  0.800GHD400G + 0.200GAH503D + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37092} G3H502Q +PERO2              =  0.750GHD400G + 0.250GAH503D + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37093} G3H502Q +PERO3              =  0.800GHD400G + 0.200GAH503D + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37094} G3H502Q +PERO5              =  0.650GHD400G + 0.350GAH503D + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37095} G3H502Q +PERO6              =  0.650GHD400G + 0.350GAH503D + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37096} G3H502Q +PERO9              =       GHD400G +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 37097} G2N505d +GNO                =       G1N506Y +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 37098} G2N505d +GNO                =       GNN503D                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 37099} G2N505d +GHO2               =       GHN505K                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 37100} G2N505d +GNO3               =       G1N506Y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 37101} G2N505d +MEPERO             =  0.340G1N506Y + 0.330GND501E + 0.330GND501O                 : ARR( 0.565E-13,  -845., 0.0);
+{ 37102} G2N505d +PERO1              =  0.460G1N506Y + 0.270GND501E + 0.270GND501O                 : ARR( 0.434E-13,  -900., 0.0);
+{ 37103} G2N505d +PERO2              =  0.400G1N506Y + 0.300GND501E + 0.300GND501O                 : ARR( 0.162E-13, -1400., 0.0);
+{ 37104} G2N505d +PERO3              =  0.460G1N506Y + 0.270GND501E + 0.270GND501O                 : ARR( 0.488E-13, -1250., 0.0);
+{ 37105} G2N505d +PERO5              =  0.460G1N506Y + 0.270GND501E + 0.270GND501O                 : ARR( 0.183E-11,   450., 0.0);
+{ 37106} G2N505d +PERO6              =  0.300G1N506Y + 0.350GND501E + 0.350GND501O                 : ARR( 0.168E-13, -1300., 0.0);
+{ 37107} G2N505d +PERO9              =  0.650G1N506Y + 0.350GND501O                                : ARR( 0.100E-10,     0., 0.0);
+{ 37108} G1N506Y                     =       G3K2001 +      GND3005                                : ARR( 0.200E+15,  2179., 0.0);
+{ 37109} G1H509A                     =       GHD400G +      GCO     +      GHO2                    : ARR( 0.200E+15,  4861., 0.0);
+{ 37110} GHN400y +GHO                =       G3H400g                                               : ARR( 0.418E-11,     0., 0.0);
+{ 37111} GHN400y +GHO                =       GND400N +      GHO                                    : ARR( 0.506E-11,     0., 0.0);
+{ 37112} GHN400y +GHO                =       G3H400h                                               : ARR( 0.209E-10,     0., 0.0);
+{ 37113} GHN400y +GHO                =       G2N4017                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 37114} GHN400y +GNO3               =       G3H400g +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 37115} GHN400y +GNO3               =       G3H400h +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 37116} GHN400y+HV               =       GCO     +      GHD3004 +      GHO2    +      GNO2     :  0.100E+01*SUN;
+{ 37117} GHN400y+HV               =       G1H401i +      GNO2                                   :  0.100E+01*SUN;
+{ 37118} GHN400y+HV               =       G1N401B +      GHO                                    :  0.100E+01*SUN;
+{ 37119} GHN400y+HV               =       GND3005 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 37120} G3H400g +GHO2               =  0.800GGH400o + 0.200GAH400r + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 37121} G3H400g +GNO                =       GHD3004 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 37122} G3H400g +GNO2               =       GPH400s                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 37123} G3H400g +GNO3               =       GHD3004 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 37124} G3H400g +MEPERO             =  0.685GHD3004 + 0.315GAH400r + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37125} G3H400g +PERO1              =  0.800GHD3004 + 0.200GAH400r + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37126} G3H400g +PERO2              =  0.750GHD3004 + 0.250GAH400r + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37127} G3H400g +PERO3              =  0.800GHD3004 + 0.200GAH400r + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37128} G3H400g +PERO5              =  0.650GHD3004 + 0.350GAH400r + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37129} G3H400g +PERO6              =  0.650GHD3004 + 0.350GAH400r + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37130} G3H400g +PERO9              =       GHD3004 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 37131} G3H400h +GHO2               =  0.800GGH400r + 0.200GAH400l + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 37132} G3H400h +GNO                =       GND3005 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 37133} G3H400h +GNO2               =       GPH400m                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 37134} G3H400h +GNO3               =       GND3005 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 37135} G3H400h +MEPERO             =  0.685GND3005 + 0.315GAH400l + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37136} G3H400h +PERO1              =  0.800GND3005 + 0.200GAH400l + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37137} G3H400h +PERO2              =  0.750GND3005 + 0.250GAH400l + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37138} G3H400h +PERO3              =  0.800GND3005 + 0.200GAH400l + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37139} G3H400h +PERO5              =  0.650GND3005 + 0.350GAH400l + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37140} G3H400h +PERO6              =  0.650GND3005 + 0.350GAH400l + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37141} G3H400h +PERO9              =       GND3005 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 37142} G2N4017 +GNO                =       G1N401B +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 37143} G2N4017 +GNO                =       GNN400Z                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 37144} G2N4017 +GHO2               =       GHN400y                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 37145} G2N4017 +GNO3               =       G1N401B +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 37146} G2N4017 +MEPERO             =  0.340G1N401B + 0.330GND400J + 0.330GND400N                 : ARR( 0.565E-13,  -845., 0.0);
+{ 37147} G2N4017 +PERO1              =  0.460G1N401B + 0.270GND400J + 0.270GND400N                 : ARR( 0.434E-13,  -900., 0.0);
+{ 37148} G2N4017 +PERO2              =  0.400G1N401B + 0.300GND400J + 0.300GND400N                 : ARR( 0.162E-13, -1400., 0.0);
+{ 37149} G2N4017 +PERO3              =  0.460G1N401B + 0.270GND400J + 0.270GND400N                 : ARR( 0.488E-13, -1250., 0.0);
+{ 37150} G2N4017 +PERO5              =  0.460G1N401B + 0.270GND400J + 0.270GND400N                 : ARR( 0.183E-11,   450., 0.0);
+{ 37151} G2N4017 +PERO6              =  0.300G1N401B + 0.350GND400J + 0.350GND400N                 : ARR( 0.168E-13, -1300., 0.0);
+{ 37152} G2N4017 +PERO9              =  0.650G1N401B + 0.350GND400N                                : ARR( 0.100E-10,     0., 0.0);
+{ 37153} G1H401i                     =       GHD3004 +      GCO     +      GHO2                    : ARR( 0.200E+15,  4861., 0.0);
+{ 37154} G1N401B                     =       GND3005 +      GCO     +      GHO2                    : ARR( 0.200E+15,  4861., 0.0);
+{ 37155} GHD5013 +GHO                =       G3H502R                                               : ARR( 0.219E-10,     0., 0.0);
+{ 37156} GHD5013 +GHO                =       GDD500A +      GHO                                    : ARR( 0.841E-10,     0., 0.0);
+{ 37157} GHD5013 +GHO                =       G3H400P +      GCO                                    : ARR( 0.134E-10,     0., 0.0);
+{ 37158} GHD5013 +GNO3               =       G3H502R +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 37159} GHD5013 +GNO3               =       G3H400P +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 37160} GHD5013+HV               =       GCO     +      G2H401G +      GHO2                    :  0.100E+01*SUN;
+{ 37161} GHD5013+HV               =       G1D500p +      GHO                                    :  0.100E+01*SUN;
+{ 37162} GHD5013+HV               =       G3H400P +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 37163} GHD5013+HV               =       GHD400C +      GCO                                    :  0.100E+01*SUN;
+{ 37164} GHD5013+HV               =       GHD3000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 37165} G3H502R +GHO2               =  0.800GGH5035 + 0.200GAH503K + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 37166} G3H502R +GNO                =       G2H401G +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 37167} G3H502R +GNO2               =       GPH503Q                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 37168} G3H502R +GNO3               =       G2H401G +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 37169} G3H502R +MEPERO             =  0.685G2H401G + 0.315GAH503K + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 37170} G3H502R +PERO1              =  0.800G2H401G + 0.200GAH503K + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 37171} G3H502R +PERO2              =  0.750G2H401G + 0.250GAH503K + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 37172} G3H502R +PERO3              =  0.800G2H401G + 0.200GAH503K + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 37173} G3H502R +PERO5              =  0.650G2H401G + 0.350GAH503K + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 37174} G3H502R +PERO6              =  0.650G2H401G + 0.350GAH503K + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 37175} G3H502R +PERO9              =       G2H401G +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 37176} G2H401G +GNO                =       G1H401j +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 37177} G2H401G +GNO                =       GHN4018                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 37178} G2H401G +GHO2               =       GHH400w                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 37179} G2H401G +GNO3               =       G1H401j +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 37180} G2H401G +MEPERO             =  0.480G1H401j + 0.260GHD400M + 0.260GHD400K                 : ARR( 0.164E-12,  -795., 0.0);
+{ 37181} G2H401G +PERO1              =  0.600G1H401j + 0.200GHD400M + 0.200GHD400K                 : ARR( 0.126E-12,  -850., 0.0);
+{ 37182} G2H401G +PERO2              =  0.560G1H401j + 0.220GHD400M + 0.220GHD400K                 : ARR( 0.471E-13, -1350., 0.0);
+{ 37183} G2H401G +PERO3              =  0.600G1H401j + 0.200GHD400M + 0.200GHD400K                 : ARR( 0.142E-12, -1200., 0.0);
+{ 37184} G2H401G +PERO5              =  0.600G1H401j + 0.200GHD400M + 0.200GHD400K                 : ARR( 0.533E-11,   500., 0.0);
+{ 37185} G2H401G +PERO6              =  0.460G1H401j + 0.270GHD400M + 0.270GHD400K                 : ARR( 0.488E-13, -1250., 0.0);
+{ 37186} G2H401G +PERO9              =  0.800G1H401j + 0.200GHD400K                                : ARR( 0.100E-10,     0., 0.0);
+{ 37187} G1H401j +OXYGEN             =       GHD400K +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 37188} G1H401j                     =       GDD3002 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5364., 0.0);
+{ 37189} GHN505L +GHO                =       GND5016 +      GHO                                    : ARR( 0.534E-11,     0., 0.0);
+{ 37190} GHN505L +GHO                =       G3H400G +      GCO                                    : ARR( 0.135E-10,     0., 0.0);
+{ 37191} GHN505L +GHO                =       G2N505e                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 37192} GHN505L +GNO3               =       G3H400G +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 37193} GHN505L+HV               =       G1H504M +      GNO2                                   :  0.100E+01*SUN;
+{ 37194} GHN505L+HV               =       G1N506J +      GHO                                    :  0.100E+01*SUN;
+{ 37195} GHN505L+HV               =       G3H400G +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 37196} GHN505L+HV               =       GHN400h +      GCO                                    :  0.100E+01*SUN;
+{ 37197} GHN505L+HV               =       GHN3009 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 37198} G2N505e +GNO                =       G1N506J +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 37199} G2N505e +GNO                =       GNN502c                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 37200} G2N505e +GHO2               =       GHN505L                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 37201} G2N505e +GNO3               =       G1N506J +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 37202} G2N505e +MEPERO             =  0.340G1N506J + 0.330GND501F + 0.330GND5016                 : ARR( 0.565E-13,  -845., 0.0);
+{ 37203} G2N505e +PERO1              =  0.460G1N506J + 0.270GND501F + 0.270GND5016                 : ARR( 0.434E-13,  -900., 0.0);
+{ 37204} G2N505e +PERO2              =  0.400G1N506J + 0.300GND501F + 0.300GND5016                 : ARR( 0.162E-13, -1400., 0.0);
+{ 37205} G2N505e +PERO3              =  0.460G1N506J + 0.270GND501F + 0.270GND5016                 : ARR( 0.488E-13, -1250., 0.0);
+{ 37206} G2N505e +PERO5              =  0.460G1N506J + 0.270GND501F + 0.270GND5016                 : ARR( 0.183E-11,   450., 0.0);
+{ 37207} G2N505e +PERO6              =  0.300G1N506J + 0.350GND501F + 0.350GND5016                 : ARR( 0.168E-13, -1300., 0.0);
+{ 37208} G2N505e +PERO9              =  0.650G1N506J + 0.350GND5016                                : ARR( 0.100E-10,     0., 0.0);
+{ 37209} GHH501z +GHO                =       GHD5014 +      GHO                                    : ARR( 0.139E-09,     0., 0.0);
+{ 37210} GHH501z +GHO                =       GHD501N +      GHO                                    : ARR( 0.268E-10,     0., 0.0);
+{ 37211} GHH501z +GHO                =       G3H400N +      GCO                                    : ARR( 0.135E-10,     0., 0.0);
+{ 37212} GHH501z +GNO3               =       G3H400N +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 37213} GHH501z+HV               =       G1H504M +      GHO                                    :  0.100E+01*SUN;
+{ 37214} GHH501z+HV               =       G1H509B +      GHO                                    :  0.100E+01*SUN;
+{ 37215} GHH501z+HV               =       G3H400N +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 37216} GHH501z+HV               =       GHH4009 +      GCO                                    :  0.100E+01*SUN;
+{ 37217} GHH501z+HV               =       GHH3003 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 37218} G1H509B                     =       GHD3003 +      G3D2000                                : ARR( 0.200E+15,  3233., 0.0);
+{ 37219} GHD5014 +GHO                =       GHD501P +      GHO2                                   : ARR( 0.246E-11,     0., 0.0);
+{ 37220} GHD5014 +GHO                =       GDK500c +      GHO                                    : ARR( 0.154E-10,     0., 0.0);
+{ 37221} GHD5014 +GHO                =       G3H400Q +      GCO                                    : ARR( 0.127E-10,     0., 0.0);
+{ 37222} GHD5014 +GHO                =       G2D500l                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 37223} GHD5014 +GNO3               =       G3H400Q +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 37224} GHD5014+HV               =       G3K2001 +      GDD3002 +      GHO                     :  0.100E+01*SUN;
+{ 37225} GHD5014+HV               =       G1D501H +      GHO                                    :  0.100E+01*SUN;
+{ 37226} GHD5014+HV               =       G3H400Q +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 37227} GHD5014+HV               =       GHD400G +      GCO                                    :  0.100E+01*SUN;
+{ 37228} GHD5014+HV               =       GHK3001 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 37229} G2D500l +GNO                =       G1D501H +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 37230} G2D500l +GNO                =       GND501W                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 37231} G2D500l +GHO2               =       GHD5014                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 37232} G2D500l +GNO3               =       G1D501H +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 37233} G2D500l +MEPERO             =  0.340G1D501H + 0.330GDK500a + 0.330GDK500c                 : ARR( 0.565E-13,  -845., 0.0);
+{ 37234} G2D500l +PERO1              =  0.460G1D501H + 0.270GDK500a + 0.270GDK500c                 : ARR( 0.434E-13,  -900., 0.0);
+{ 37235} G2D500l +PERO2              =  0.400G1D501H + 0.300GDK500a + 0.300GDK500c                 : ARR( 0.162E-13, -1400., 0.0);
+{ 37236} G2D500l +PERO3              =  0.460G1D501H + 0.270GDK500a + 0.270GDK500c                 : ARR( 0.488E-13, -1250., 0.0);
+{ 37237} G2D500l +PERO5              =  0.460G1D501H + 0.270GDK500a + 0.270GDK500c                 : ARR( 0.183E-11,   450., 0.0);
+{ 37238} G2D500l +PERO6              =  0.300G1D501H + 0.350GDK500a + 0.350GDK500c                 : ARR( 0.168E-13, -1300., 0.0);
+{ 37239} G2D500l +PERO9              =  0.650G1D501H + 0.350GDK500c                                : ARR( 0.100E-10,     0., 0.0);
+{ 37240} G1D501H                     =       G3K2001 +      GDD3002                                : ARR( 0.200E+15,  4623., 0.0);
+{ 37241} G1D501H                     =       GDK3001 +      G3D2000                                : ARR( 0.200E+15,  4823., 0.0);
+{ 37242} GHD400K +GHO                =       G3H3006 +      GCO                                    : ARR( 0.132E-10,     0., 0.0);
+{ 37243} GHD400K +GHO                =       GDD4005 +      GHO                                    : ARR( 0.159E-10,     0., 0.0);
+{ 37244} GHD400K +GHO                =       G3H400i                                               : ARR( 0.684E-10,     0., 0.0);
+{ 37245} GHD400K +GNO3               =       G3H3006 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 37246} GHD400K +GNO3               =       G3H400i +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 37247} GHD400K+HV               =       GCO     +      G3H3006 +      GHO2                    :  0.100E+01*SUN;
+{ 37248} GHD400K+HV               =       GHD3004 +      GCO                                    :  0.100E+01*SUN;
+{ 37249} GHD400K+HV               =       GHD2000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 37250} GHD400K+HV               =       G1D400M +      GHO                                    :  0.100E+01*SUN;
+{ 37251} GHD400K+HV               =       GDD3002 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 37252} G3H400i +GHO2               =  0.800GGH400s + 0.200GAH400u + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 37253} G3H400i +GNO                =       GDD3002 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 37254} G3H400i +GNO2               =       GPH400v                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 37255} G3H400i +GNO3               =       GDD3002 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 37256} G3H400i +MEPERO             =  0.685GDD3002 + 0.315GAH400u + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37257} G3H400i +PERO1              =  0.800GDD3002 + 0.200GAH400u + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37258} G3H400i +PERO2              =  0.750GDD3002 + 0.250GAH400u + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37259} G3H400i +PERO3              =  0.800GDD3002 + 0.200GAH400u + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37260} G3H400i +PERO5              =  0.650GDD3002 + 0.350GAH400u + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37261} G3H400i +PERO6              =  0.650GDD3002 + 0.350GAH400u + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37262} G3H400i +PERO9              =       GDD3002 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 37263} G1D400M                     =       G3D2000 +      GDD2000                                : ARR( 0.200E+15,  5177., 0.0);
+{ 37264} GGH500t +GHO                =       GGD5006 +      GHO                                    : ARR( 0.143E-09,     0., 0.0);
+{ 37265} GGH500t +GHO                =       G3G500B                                               : ARR( 0.228E-10,     0., 0.0);
+{ 37266} GGH500t +GNO3               =       G3G500B +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 37267} GGH500t+HV               =       G2H400e +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 37268} GGH500t+HV               =       G1G500y +      GHO                                    :  0.100E+01*SUN;
+{ 37269} GGH500t+HV               =       GGH400Q +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 37270} G3G500B +GHO2               =  0.800GGG5007 + 0.200GAG500E + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 37271} G3G500B +GNO                =       GGH400Q +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 37272} G3G500B +GNO2               =       GPG500E                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 37273} G3G500B +GNO3               =       GGH400Q +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 37274} G3G500B +MEPERO             =  0.685GGH400Q + 0.315GAG500E + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37275} G3G500B +PERO1              =  0.800GGH400Q + 0.200GAG500E + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37276} G3G500B +PERO2              =  0.750GGH400Q + 0.250GAG500E + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37277} G3G500B +PERO3              =  0.800GGH400Q + 0.200GAG500E + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37278} G3G500B +PERO5              =  0.650GGH400Q + 0.350GAG500E + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37279} G3G500B +PERO6              =  0.650GGH400Q + 0.350GAG500E + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37280} G3G500B +PERO9              =       GGH400Q +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 37281} GAH500z +GHO                =       GAD5006 +      GHO                                    : ARR( 0.140E-09,     0., 0.0);
+{ 37282} GAH500z +GHO                =       G3A500D                                               : ARR( 0.223E-10,     0., 0.0);
+{ 37283} GAH500z +GNO3               =       G3A500D +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 37284} GAH500z+HV               =       G1A501H +      GHO                                    :  0.100E+01*SUN;
+{ 37285} GAH500z+HV               =       GAH400T +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 37286} G3A500D +GHO2               =  0.800GAG500C + 0.200GAA5009 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 37287} G3A500D +GNO                =       GAH400T +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 37288} G3A500D +GNO2               =       GPA500G                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 37289} G3A500D +GNO3               =       GAH400T +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 37290} G3A500D +MEPERO             =  0.685GAH400T + 0.315GAA5009 + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37291} G3A500D +PERO1              =  0.800GAH400T + 0.200GAA5009 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37292} G3A500D +PERO2              =  0.750GAH400T + 0.250GAA5009 + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37293} G3A500D +PERO3              =  0.800GAH400T + 0.200GAA5009 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37294} G3A500D +PERO5              =  0.650GAH400T + 0.350GAA5009 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37295} G3A500D +PERO6              =  0.650GAH400T + 0.350GAA5009 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37296} G3A500D +PERO9              =       GAH400T +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 37297} GPH5011                     =       G3H500g +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 37298} GPH5011 +GHO                =       GPD5006 +      GHO                                    : ARR( 0.140E-09,     0., 0.0);
+{ 37299} GPH5011 +GHO                =       G3P500D                                               : ARR( 0.223E-10,     0., 0.0);
+{ 37300} GPH5011 +GNO3               =       G3P500D +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 37301} GPH5011+HV               =       G3H500g +      GNO2                                   :  0.100E+01*SUN;
+{ 37302} GPH5011+HV               =       G1P501J +      GHO                                    :  0.100E+01*SUN;
+{ 37303} GPH5011+HV               =       GPH400T +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 37304} G3P500D +GHO2               =  0.800GPG500D + 0.200GPA500F + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 37305} G3P500D +GNO                =       GPH400T +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 37306} G3P500D +GNO2               =       GPP5009                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 37307} G3P500D +GNO3               =       GPH400T +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 37308} G3P500D +MEPERO             =  0.685GPH400T + 0.315GPA500F + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37309} G3P500D +PERO1              =  0.800GPH400T + 0.200GPA500F + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37310} G3P500D +PERO2              =  0.750GPH400T + 0.250GPA500F + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37311} G3P500D +PERO3              =  0.800GPH400T + 0.200GPA500F + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37312} G3P500D +PERO5              =  0.650GPH400T + 0.350GPA500F + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37313} G3P500D +PERO6              =  0.650GPH400T + 0.350GPA500F + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37314} G3P500D +PERO9              =       GPH400T +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 37315} GHN400z +GHO                =       GND400E +      GHO                                    : ARR( 0.262E-10,     0., 0.0);
+{ 37316} GHN400z +GHO                =       GHN4018 +      GHO2                                   : ARR( 0.630E-11,     0., 0.0);
+{ 37317} GHN400z +GHO                =       G3H400b                                               : ARR( 0.208E-10,     0., 0.0);
+{ 37318} GHN400z +GHO                =       G2N4018                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 37319} GHN400z +GNO3               =       G3H400b +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 37320} GHN400z+HV               =       G1H400j +      GNO2                                   :  0.100E+01*SUN;
+{ 37321} GHN400z+HV               =       G1N4019 +      GHO                                    :  0.100E+01*SUN;
+{ 37322} GHN400z+HV               =       GHN3007 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 37323} G2N4018 +GNO                =       G1N4019 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 37324} G2N4018 +GNO                =       GNN400T                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 37325} G2N4018 +GHO2               =       GHN400z                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 37326} G2N4018 +GNO3               =       G1N4019 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 37327} G2N4018 +MEPERO             =  0.340G1N4019 + 0.330GND400F + 0.330GND400E                 : ARR( 0.565E-13,  -845., 0.0);
+{ 37328} G2N4018 +PERO1              =  0.460G1N4019 + 0.270GND400F + 0.270GND400E                 : ARR( 0.434E-13,  -900., 0.0);
+{ 37329} G2N4018 +PERO2              =  0.400G1N4019 + 0.300GND400F + 0.300GND400E                 : ARR( 0.162E-13, -1400., 0.0);
+{ 37330} G2N4018 +PERO3              =  0.460G1N4019 + 0.270GND400F + 0.270GND400E                 : ARR( 0.488E-13, -1250., 0.0);
+{ 37331} G2N4018 +PERO5              =  0.460G1N4019 + 0.270GND400F + 0.270GND400E                 : ARR( 0.183E-11,   450., 0.0);
+{ 37332} G2N4018 +PERO6              =  0.300G1N4019 + 0.350GND400F + 0.350GND400E                 : ARR( 0.168E-13, -1300., 0.0);
+{ 37333} G2N4018 +PERO9              =  0.650G1N4019 + 0.350GND400E                                : ARR( 0.100E-10,     0., 0.0);
+{ 37334} GHH400d +GHO                =       GHD400L +      GHO                                    : ARR( 0.174E-10,     0., 0.0);
+{ 37335} GHH400d +GHO                =       GHD400J +      GHO                                    : ARR( 0.141E-09,     0., 0.0);
+{ 37336} GHH400d +GHO                =       G3H400j                                               : ARR( 0.225E-10,     0., 0.0);
+{ 37337} GHH400d +GNO3               =       G3H400j +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 37338} GHH400d+HV               =       G1H400j +      GHO                                    :  0.100E+01*SUN;
+{ 37339} GHH400d+HV               =       G1H400k +      GHO                                    :  0.100E+01*SUN;
+{ 37340} GHH400d+HV               =       GHH3005 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 37341} G3H400j +GHO2               =  0.800GGH400q + 0.200GAH400t + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 37342} G3H400j +GNO                =       GHH3005 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 37343} G3H400j +GNO2               =       GPH400u                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 37344} G3H400j +GNO3               =       GHH3005 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 37345} G3H400j +MEPERO             =  0.685GHH3005 + 0.315GAH400t + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37346} G3H400j +PERO1              =  0.800GHH3005 + 0.200GAH400t + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37347} G3H400j +PERO2              =  0.750GHH3005 + 0.250GAH400t + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37348} G3H400j +PERO3              =  0.800GHH3005 + 0.200GAH400t + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37349} G3H400j +PERO5              =  0.650GHH3005 + 0.350GAH400t + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37350} G3H400j +PERO6              =  0.650GHH3005 + 0.350GAH400t + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37351} G3H400j +PERO9              =       GHH3005 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 37352} GHD400L +GHO                =       G3H400k                                               : ARR( 0.213E-10,     0., 0.0);
+{ 37353} GHD400L +GHO                =       GHD400K +      GHO2                                   : ARR( 0.204E-10,     0., 0.0);
+{ 37354} GHD400L +GHO                =       GDD4004 +      GHO                                    : ARR( 0.818E-10,     0., 0.0);
+{ 37355} GHD400L +GHO                =       G3H400l                                               : ARR( 0.213E-10,     0., 0.0);
+{ 37356} GHD400L +GNO3               =       G3H400k +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 37357} GHD400L +GNO3               =       G3H400l +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 37358} GHD400L+HV               =       GCO     +      GHD3004 + 2.000GHO2                    :  0.100E+01*SUN;
+{ 37359} GHD400L+HV               =       G1D400K +      GHO                                    :  0.100E+01*SUN;
+{ 37360} GHD400L+HV               =       GDD3001 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 37361} G3H400k +GHO2               =  0.800GGH400i + 0.200GAH400o + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 37362} G3H400k +GNO                =       GHD3004 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 37363} G3H400k +GNO2               =       GPH400p                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 37364} G3H400k +GNO3               =       GHD3004 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 37365} G3H400k +MEPERO             =  0.685GHD3004 + 0.315GAH400o + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37366} G3H400k +PERO1              =  0.800GHD3004 + 0.200GAH400o + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37367} G3H400k +PERO2              =  0.750GHD3004 + 0.250GAH400o + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37368} G3H400k +PERO3              =  0.800GHD3004 + 0.200GAH400o + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37369} G3H400k +PERO5              =  0.650GHD3004 + 0.350GAH400o + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37370} G3H400k +PERO6              =  0.650GHD3004 + 0.350GAH400o + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37371} G3H400k +PERO9              =       GHD3004 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 37372} G3H400l +GHO2               =  0.800GGH400g + 0.200GAH400k + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 37373} G3H400l +GNO                =       GDD3001 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 37374} G3H400l +GNO2               =       GPH400l                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 37375} G3H400l +GNO3               =       GDD3001 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 37376} G3H400l +MEPERO             =  0.685GDD3001 + 0.315GAH400k + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37377} G3H400l +PERO1              =  0.800GDD3001 + 0.200GAH400k + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37378} G3H400l +PERO2              =  0.750GDD3001 + 0.250GAH400k + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37379} G3H400l +PERO3              =  0.800GDD3001 + 0.200GAH400k + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37380} G3H400l +PERO5              =  0.650GDD3001 + 0.350GAH400k + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37381} G3H400l +PERO6              =  0.650GDD3001 + 0.350GAH400k + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37382} G3H400l +PERO9              =       GDD3001 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 37383} GGN500s +GHO                =       GGN500v +      GHO2                                   : ARR( 0.226E-11,     0., 0.0);
+{ 37384} GGN500s +GHO                =       G3N501e                                               : ARR( 0.208E-11,  -190., 0.0);
+{ 37385} GGN500s+HV               =       G1G502F +      GNO2                                   :  0.100E+01*SUN;
+{ 37386} GGN500s+HV               =       G1G500g +      GNO2                                   :  0.100E+01*SUN;
+{ 37387} GGN500s+HV               =       GND400C +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 37388} G1G502F +OXYGEN             =       GGN5026 +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{ 37389} G1G502F                     =       GGK500B +      GNO2                                   : ARR( 0.800E+11,  4245., 0.0);
+{ 37390} GGH500u +GHO                =       GGH500w +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 37391} GGH500u +GHO                =       GGN500t +      GHO                                    : ARR( 0.254E-10,     0., 0.0);
+{ 37392} GGH500u +GHO                =       G2G500c                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 37393} GGH500u +GHO                =       G3H5023                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 37394} GGH500u+HV               =       G1G502G +      GNO2                                   :  0.100E+01*SUN;
+{ 37395} GGH500u+HV               =       G1G500g +      GHO                                    :  0.100E+01*SUN;
+{ 37396} GGH500u+HV               =       GND400C +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 37397} G1G502G                     =       GGK500B +      GHO                                    : ARR( 0.800E+11,  1899., 0.0);
+{ 37398} GGN500t +GHO                =       G2G501r                                               : ARR( 0.912E-12,     0., 0.0);
+{ 37399} GGN500t +GHO                =       GGN500w +      GHO2                                   : ARR( 0.639E-11,     0., 0.0);
+{ 37400} GGN500t +GHO                =       G3N501k                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 37401} GGN500t+HV               =       G1G502H +      GNO2                                   :  0.100E+01*SUN;
+{ 37402} GGN500t+HV               =       GAN4009 +      GCO2                                   :  0.100E+01*SUN;
+{ 37403} G2G501r +GNO                =       G1G502I +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 37404} G2G501r +GNO                =       GGN5027                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 37405} G2G501r +GHO2               =       GGH5036                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 37406} G2G501r +GNO3               =       G1G502I +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 37407} G2G501r +MEPERO             =  0.340G1G502I + 0.330GGN501Q + 0.330GGN5028                 : ARR( 0.565E-13,  -845., 0.0);
+{ 37408} G2G501r +PERO1              =  0.460G1G502I + 0.270GGN501Q + 0.270GGN5028                 : ARR( 0.434E-13,  -900., 0.0);
+{ 37409} G2G501r +PERO2              =  0.400G1G502I + 0.300GGN501Q + 0.300GGN5028                 : ARR( 0.162E-13, -1400., 0.0);
+{ 37410} G2G501r +PERO3              =  0.460G1G502I + 0.270GGN501Q + 0.270GGN5028                 : ARR( 0.488E-13, -1250., 0.0);
+{ 37411} G2G501r +PERO5              =  0.460G1G502I + 0.270GGN501Q + 0.270GGN5028                 : ARR( 0.183E-11,   450., 0.0);
+{ 37412} G2G501r +PERO6              =  0.300G1G502I + 0.350GGN501Q + 0.350GGN5028                 : ARR( 0.168E-13, -1300., 0.0);
+{ 37413} G2G501r +PERO9              =  0.650G1G502I + 0.350GGN5028                                : ARR( 0.100E-10,     0., 0.0);
+{ 37414} G3N501k +GHO2               =  0.800GGN500t + 0.200GAN500y + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 37415} G3N501k +GNO                =       G3N400G +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 37416} G3N501k +GNO2               =       GPN5013                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 37417} G3N501k +GNO3               =       G3N400G +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 37418} G3N501k +MEPERO             =  0.685G3N400G + 0.315GAN500y + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 37419} G3N501k +PERO1              =  0.800G3N400G + 0.200GAN500y + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 37420} G3N501k +PERO2              =  0.750G3N400G + 0.250GAN500y + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 37421} G3N501k +PERO3              =  0.800G3N400G + 0.200GAN500y + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 37422} G3N501k +PERO5              =  0.650G3N400G + 0.350GAN500y + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 37423} G3N501k +PERO6              =  0.650G3N400G + 0.350GAN500y + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 37424} G3N501k +PERO9              =       G3N400G +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 37425} G1G502H +OXYGEN             =       GGD500E +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{ 37426} G1G502I                     =       GND2000 +      GGD3002 +      GHO2                    : ARR( 0.200E+15,  3345., 0.0);
+{ 37427} GGN500u +GHO                =       GGN5026 +      GHO2                                   : ARR( 0.415E-11,     0., 0.0);
+{ 37428} GGN500u +GHO                =       G2G501s                                               : ARR( 0.146E-11,     0., 0.0);
+{ 37429} GGN500u +GHO                =       GGN500X +      GHO2                                   : ARR( 0.213E-11,     0., 0.0);
+{ 37430} GGN500u +GHO                =       G3N500h                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 37431} GGN500u+HV               =       G1G500h +      GNO2                                   :  0.100E+01*SUN;
+{ 37432} GGN500u+HV               =       GDO4003 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 37433} G2G501s +GNO                =       G1G502J +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 37434} G2G501s +GNO                =       GGN5029                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 37435} G2G501s +GHO2               =       GGH5037                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 37436} G2G501s +GNO3               =       G1G502J +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 37437} G2G501s +MEPERO             =  0.340G1G502J + 0.330GGN501R + 0.330GGN502A                 : ARR( 0.565E-13,  -845., 0.0);
+{ 37438} G2G501s +PERO1              =  0.460G1G502J + 0.270GGN501R + 0.270GGN502A                 : ARR( 0.434E-13,  -900., 0.0);
+{ 37439} G2G501s +PERO2              =  0.400G1G502J + 0.300GGN501R + 0.300GGN502A                 : ARR( 0.162E-13, -1400., 0.0);
+{ 37440} G2G501s +PERO3              =  0.460G1G502J + 0.270GGN501R + 0.270GGN502A                 : ARR( 0.488E-13, -1250., 0.0);
+{ 37441} G2G501s +PERO5              =  0.460G1G502J + 0.270GGN501R + 0.270GGN502A                 : ARR( 0.183E-11,   450., 0.0);
+{ 37442} G2G501s +PERO6              =  0.300G1G502J + 0.350GGN501R + 0.350GGN502A                 : ARR( 0.168E-13, -1300., 0.0);
+{ 37443} G2G501s +PERO9              =  0.650G1G502J + 0.350GGN502A                                : ARR( 0.100E-10,     0., 0.0);
+{ 37444} G1G502J                     =       GDO2000 +      GGN3005 +      GHO2                    : ARR( 0.200E+15,  3619., 0.0);
+{ 37445} GGH500v +GHO                =       GGH5038 +      GHO2                                   : ARR( 0.417E-11,     0., 0.0);
+{ 37446} GGH500v +GHO                =       GGH500S +      GHO2                                   : ARR( 0.107E-10,     0., 0.0);
+{ 37447} GGH500v +GHO                =       GGK500B +      GHO                                    : ARR( 0.260E-10,     0., 0.0);
+{ 37448} GGH500v +GHO                =       G2G500d                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 37449} GGH500v +GHO                =       G3H500h                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 37450} GGH500v+HV               =       G1G500h +      GHO                                    :  0.100E+01*SUN;
+{ 37451} GGH500v+HV               =       GDO4003 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 37452} GAN500w +GHO                =       GAN5011 +      GHO2                                   : ARR( 0.223E-11,     0., 0.0);
+{ 37453} GAN500w +GHO                =       G2A502U                                               : ARR( 0.306E-12,     0., 0.0);
+{ 37454} GAN500w +GHO                =       GND400C +      GNO2    +      GCO2                    : ARR( 0.563E-12,     0., 0.0);
+{ 37455} GAN500w+HV               =       G1A500m +      GNO2                                   :  0.100E+01*SUN;
+{ 37456} GAN500w+HV               =       G1A502t +      GNO2                                   :  0.100E+01*SUN;
+{ 37457} G2A502U +GNO                =       G1A502u +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 37458} G2A502U +GNO                =       GAN502I                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 37459} G2A502U +GHO2               =       GAH503L                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 37460} G2A502U +GNO3               =       G1A502u +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 37461} G2A502U +MEPERO             =  0.340G1A502u + 0.330GAN501K + 0.330GAN502J                 : ARR( 0.565E-13,  -845., 0.0);
+{ 37462} G2A502U +PERO1              =  0.460G1A502u + 0.270GAN501K + 0.270GAN502J                 : ARR( 0.434E-13,  -900., 0.0);
+{ 37463} G2A502U +PERO2              =  0.400G1A502u + 0.300GAN501K + 0.300GAN502J                 : ARR( 0.162E-13, -1400., 0.0);
+{ 37464} G2A502U +PERO3              =  0.460G1A502u + 0.270GAN501K + 0.270GAN502J                 : ARR( 0.488E-13, -1250., 0.0);
+{ 37465} G2A502U +PERO5              =  0.460G1A502u + 0.270GAN501K + 0.270GAN502J                 : ARR( 0.183E-11,   450., 0.0);
+{ 37466} G2A502U +PERO6              =  0.300G1A502u + 0.350GAN501K + 0.350GAN502J                 : ARR( 0.168E-13, -1300., 0.0);
+{ 37467} G2A502U +PERO9              =  0.650G1A502u + 0.350GAN502J                                : ARR( 0.100E-10,     0., 0.0);
+{ 37468} G1A502t +OXYGEN             =       GAN502K +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{ 37469} G1A502t                     =       GAK500N +      GNO2                                   : ARR( 0.800E+11,  4379., 0.0);
+{ 37470} G1A502u                     =       GAN3006 +      GND2000 +      GHO2                    : ARR( 0.200E+15,  3617., 0.0);
+{ 37471} GAH5011 +GHO                =       GAN500y +      GHO                                    : ARR( 0.192E-10,     0., 0.0);
+{ 37472} GAH5011 +GHO                =       GAH5013 +      GHO2                                   : ARR( 0.106E-10,     0., 0.0);
+{ 37473} GAH5011 +GHO                =       G2A500j                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 37474} GAH5011+HV               =       G1A500m +      GHO                                    :  0.100E+01*SUN;
+{ 37475} GAH5011+HV               =       G1A502v +      GNO2                                   :  0.100E+01*SUN;
+{ 37476} G1A502v                     =       GAK500N +      GHO                                    : ARR( 0.800E+11,  2034., 0.0);
+{ 37477} GAN500x +GHO                =       GAN500y +      GHO2                                   : ARR( 0.500E-11,     0., 0.0);
+{ 37478} GAN500x +GHO                =       GAN500q +      GHO2                                   : ARR( 0.111E-10,     0., 0.0);
+{ 37479} GAN500x+HV               =       G1A502T +      GNO2                                   :  0.100E+01*SUN;
+{ 37480} GAN500y +GHO                =       GAN5012 +      GHO2                                   : ARR( 0.643E-11,     0., 0.0);
+{ 37481} GAN500y +GHO                =       G2A502W                                               : ARR( 0.918E-12,     0., 0.0);
+{ 37482} GAN500y +GHO                =       G3N400G +      GCO2                                   : ARR( 0.533E-12,     0., 0.0);
+{ 37483} GAN500y+HV               =       GND400C +      GCO2                                   :  0.100E+01*SUN;
+{ 37484} GAN500y+HV               =       G1A502w +      GNO2                                   :  0.100E+01*SUN;
+{ 37485} G2A502W +GNO                =       G1A502x +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 37486} G2A502W +GNO                =       GAN502L                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 37487} G2A502W +GHO2               =       GAH503M                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 37488} G2A502W +GNO3               =       G1A502x +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 37489} G2A502W +MEPERO             =  0.340G1A502x + 0.330GAN501U + 0.330GAN502M                 : ARR( 0.565E-13,  -845., 0.0);
+{ 37490} G2A502W +PERO1              =  0.460G1A502x + 0.270GAN501U + 0.270GAN502M                 : ARR( 0.434E-13,  -900., 0.0);
+{ 37491} G2A502W +PERO2              =  0.400G1A502x + 0.300GAN501U + 0.300GAN502M                 : ARR( 0.162E-13, -1400., 0.0);
+{ 37492} G2A502W +PERO3              =  0.460G1A502x + 0.270GAN501U + 0.270GAN502M                 : ARR( 0.488E-13, -1250., 0.0);
+{ 37493} G2A502W +PERO5              =  0.460G1A502x + 0.270GAN501U + 0.270GAN502M                 : ARR( 0.183E-11,   450., 0.0);
+{ 37494} G2A502W +PERO6              =  0.300G1A502x + 0.350GAN501U + 0.350GAN502M                 : ARR( 0.168E-13, -1300., 0.0);
+{ 37495} G2A502W +PERO9              =  0.650G1A502x + 0.350GAN502M                                : ARR( 0.100E-10,     0., 0.0);
+{ 37496} G1A502w +OXYGEN             =       GAD500K +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{ 37497} G1A502x                     =       GAD3002 +      GND2000 +      GHO2                    : ARR( 0.200E+15,  3345., 0.0);
+{ 37498} GAD5007 +GHO                =       GAD5004 +      GHO2                                   : ARR( 0.340E-10,     0., 0.0);
+{ 37499} GAD5007 +GHO                =       G3A500E                                               : ARR( 0.216E-10,     0., 0.0);
+{ 37500} GAD5007 +GNO3               =       G3A500E +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 37501} GAD5007+HV               =       G2A400X +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 37502} GAD5007+HV               =       GAD3000 +      GD02000                                :  0.100E+01*SUN;
+{ 37503} G3A500E +GHO2               =  0.800GAG500F + 0.200GAA500A + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 37504} G3A500E +GNO                =       G2A400X +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 37505} G3A500E +GNO2               =       GPA500H                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 37506} G3A500E +GNO3               =       G2A400X +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 37507} G3A500E +MEPERO             =  0.685G2A400X + 0.315GAA500A + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 37508} G3A500E +PERO1              =  0.800G2A400X + 0.200GAA500A + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 37509} G3A500E +PERO2              =  0.750G2A400X + 0.250GAA500A + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 37510} G3A500E +PERO3              =  0.800G2A400X + 0.200GAA500A + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 37511} G3A500E +PERO5              =  0.650G2A400X + 0.350GAA500A + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 37512} G3A500E +PERO6              =  0.650G2A400X + 0.350GAA500A + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 37513} G3A500E +PERO9              =       G2A400X +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 37514} GAN500z +GHO                =       GAN502K +      GHO2                                   : ARR( 0.419E-11,     0., 0.0);
+{ 37515} GAN500z +GHO                =       G2A502X                                               : ARR( 0.147E-11,     0., 0.0);
+{ 37516} GAN500z +GHO                =       GAN500f +      GHO2                                   : ARR( 0.215E-11,     0., 0.0);
+{ 37517} GAN500z +GHO                =       GDO4003 +      GNO2    +      GCO2                    : ARR( 0.542E-12,     0., 0.0);
+{ 37518} GAN500z+HV               =       G1A500n +      GNO2                                   :  0.100E+01*SUN;
+{ 37519} G2A502X +GNO                =       G1A502y +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 37520} G2A502X +GNO                =       GAN502N                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 37521} G2A502X +GHO2               =       GAH503N                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 37522} G2A502X +GNO3               =       G1A502y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 37523} G2A502X +MEPERO             =  0.340G1A502y + 0.330GAN501S + 0.330GAN502O                 : ARR( 0.565E-13,  -845., 0.0);
+{ 37524} G2A502X +PERO1              =  0.460G1A502y + 0.270GAN501S + 0.270GAN502O                 : ARR( 0.434E-13,  -900., 0.0);
+{ 37525} G2A502X +PERO2              =  0.400G1A502y + 0.300GAN501S + 0.300GAN502O                 : ARR( 0.162E-13, -1400., 0.0);
+{ 37526} G2A502X +PERO3              =  0.460G1A502y + 0.270GAN501S + 0.270GAN502O                 : ARR( 0.488E-13, -1250., 0.0);
+{ 37527} G2A502X +PERO5              =  0.460G1A502y + 0.270GAN501S + 0.270GAN502O                 : ARR( 0.183E-11,   450., 0.0);
+{ 37528} G2A502X +PERO6              =  0.300G1A502y + 0.350GAN501S + 0.350GAN502O                 : ARR( 0.168E-13, -1300., 0.0);
+{ 37529} G2A502X +PERO9              =  0.650G1A502y + 0.350GAN502O                                : ARR( 0.100E-10,     0., 0.0);
+{ 37530} G1A502y                     =       GDO2000 +      GAN3006 +      GHO2                    : ARR( 0.200E+15,  3619., 0.0);
+{ 37531} GAH5012 +GHO                =       GAH503O +      GHO2                                   : ARR( 0.426E-11,     0., 0.0);
+{ 37532} GAH5012 +GHO                =       GAH500U +      GHO2                                   : ARR( 0.109E-10,     0., 0.0);
+{ 37533} GAH5012 +GHO                =       GAK500N +      GHO                                    : ARR( 0.197E-10,     0., 0.0);
+{ 37534} GAH5012 +GHO                =       G2A500k                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 37535} GAH5012+HV               =       G1A500n +      GHO                                    :  0.100E+01*SUN;
+{ 37536} GAO500C +GHO                =       GAD5008 +      GHO2                                   : ARR( 0.421E-11,     0., 0.0);
+{ 37537} GAO500C +GHO                =       G2A502Y                                               : ARR( 0.148E-11,     0., 0.0);
+{ 37538} GAO500C +GHO                =       GAK500E +      GHO2                                   : ARR( 0.108E-10,     0., 0.0);
+{ 37539} GAO500C +GHO                =       GAK500N +      GHO2                                   : ARR( 0.486E-11,     0., 0.0);
+{ 37540} G2A502Y +GNO                =       G1A502z +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 37541} G2A502Y +GNO                =       GAN502P                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 37542} G2A502Y +GHO2               =       GAH503P                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 37543} G2A502Y +GNO3               =       G1A502z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 37544} G2A502Y +MEPERO             =  0.340G1A502z + 0.330GAO500B + 0.330GAK500Z                 : ARR( 0.565E-13,  -845., 0.0);
+{ 37545} G2A502Y +PERO1              =  0.460G1A502z + 0.270GAO500B + 0.270GAK500Z                 : ARR( 0.434E-13,  -900., 0.0);
+{ 37546} G2A502Y +PERO2              =  0.400G1A502z + 0.300GAO500B + 0.300GAK500Z                 : ARR( 0.162E-13, -1400., 0.0);
+{ 37547} G2A502Y +PERO3              =  0.460G1A502z + 0.270GAO500B + 0.270GAK500Z                 : ARR( 0.488E-13, -1250., 0.0);
+{ 37548} G2A502Y +PERO5              =  0.460G1A502z + 0.270GAO500B + 0.270GAK500Z                 : ARR( 0.183E-11,   450., 0.0);
+{ 37549} G2A502Y +PERO6              =  0.300G1A502z + 0.350GAO500B + 0.350GAK500Z                 : ARR( 0.168E-13, -1300., 0.0);
+{ 37550} G2A502Y +PERO9              =  0.650G1A502z + 0.350GAK500Z                                : ARR( 0.100E-10,     0., 0.0);
+{ 37551} G1A502z                     =       GDO2000 +      GAD3001 +      GHO2                    : ARR( 0.200E+15,  3619., 0.0);
+{ 37552} GAK500N +GHO                =       GAD500K +      GHO2                                   : ARR( 0.424E-11,     0., 0.0);
+{ 37553} GAK500N +GHO                =       G2A502Z                                               : ARR( 0.472E-11,     0., 0.0);
+{ 37554} GAK500N +GHO                =       GAK500F +      GHO2                                   : ARR( 0.662E-11,     0., 0.0);
+{ 37555} GAK500N+HV               =       GDO4003 +      GCO2                                   :  0.100E+01*SUN;
+{ 37556} G2A502Z +GNO                =       G1A5031 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 37557} G2A502Z +GNO                =       GAN502Q                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 37558} G2A502Z +GHO2               =       GAH503Q                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 37559} G2A502Z +GNO3               =       G1A5031 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 37560} G2A502Z +MEPERO             =  0.340G1A5031 + 0.330GAK500b + 0.330GAK500c                 : ARR( 0.565E-13,  -845., 0.0);
+{ 37561} G2A502Z +PERO1              =  0.460G1A5031 + 0.270GAK500b + 0.270GAK500c                 : ARR( 0.434E-13,  -900., 0.0);
+{ 37562} G2A502Z +PERO2              =  0.400G1A5031 + 0.300GAK500b + 0.300GAK500c                 : ARR( 0.162E-13, -1400., 0.0);
+{ 37563} G2A502Z +PERO3              =  0.460G1A5031 + 0.270GAK500b + 0.270GAK500c                 : ARR( 0.488E-13, -1250., 0.0);
+{ 37564} G2A502Z +PERO5              =  0.460G1A5031 + 0.270GAK500b + 0.270GAK500c                 : ARR( 0.183E-11,   450., 0.0);
+{ 37565} G2A502Z +PERO6              =  0.300G1A5031 + 0.350GAK500b + 0.350GAK500c                 : ARR( 0.168E-13, -1300., 0.0);
+{ 37566} G2A502Z +PERO9              =  0.650G1A5031 + 0.350GAK500c                                : ARR( 0.100E-10,     0., 0.0);
+{ 37567} G1A5031                     =       GCH2O   +      GAD4004 +      GHO2                    : ARR( 0.200E+15,  4465., 0.0);
+{ 37568} G1A5031                     =       GDO2000 +      GAD3002 +      GHO2                    : ARR( 0.200E+15,  3347., 0.0);
+{ 37569} GAD5008 +GHO                =       GAD500K +      GHO2                                   : ARR( 0.478E-11,     0., 0.0);
+{ 37570} GAD5008 +GHO                =       GAD5005 +      GHO2                                   : ARR( 0.336E-10,     0., 0.0);
+{ 37571} GAD5008 +GHO                =       G3A500F                                               : ARR( 0.214E-10,     0., 0.0);
+{ 37572} GAD5008 +GNO3               =       G3A500F +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 37573} GAD5008+HV               =       G2A400j +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 37574} GAD5008+HV               =       GAK3001 +      GD02000                                :  0.100E+01*SUN;
+{ 37575} G3A500F +GHO2               =  0.800GAG500G + 0.200GAA500B + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 37576} G3A500F +GNO                =       G2A400j +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 37577} G3A500F +GNO2               =       GPA500I                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 37578} G3A500F +GNO3               =       G2A400j +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 37579} G3A500F +MEPERO             =  0.685G2A400j + 0.315GAA500B + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 37580} G3A500F +PERO1              =  0.800G2A400j + 0.200GAA500B + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 37581} G3A500F +PERO2              =  0.750G2A400j + 0.250GAA500B + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 37582} G3A500F +PERO3              =  0.800G2A400j + 0.200GAA500B + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 37583} G3A500F +PERO5              =  0.650G2A400j + 0.350GAA500B + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 37584} G3A500F +PERO6              =  0.650G2A400j + 0.350GAA500B + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 37585} G3A500F +PERO9              =       G2A400j +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 37586} G2A400j +GNO                =       G1A400X +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 37587} G2A400j +GNO                =       GAN400C                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 37588} G2A400j +GHO2               =       GAH400f                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 37589} G2A400j +GNO3               =       G1A400X +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 37590} G2A400j +MEPERO             =  0.480G1A400X + 0.260GAO4006 + 0.260GAD4007                 : ARR( 0.164E-12,  -795., 0.0);
+{ 37591} G2A400j +PERO1              =  0.600G1A400X + 0.200GAO4006 + 0.200GAD4007                 : ARR( 0.126E-12,  -850., 0.0);
+{ 37592} G2A400j +PERO2              =  0.560G1A400X + 0.220GAO4006 + 0.220GAD4007                 : ARR( 0.471E-13, -1350., 0.0);
+{ 37593} G2A400j +PERO3              =  0.600G1A400X + 0.200GAO4006 + 0.200GAD4007                 : ARR( 0.142E-12, -1200., 0.0);
+{ 37594} G2A400j +PERO5              =  0.600G1A400X + 0.200GAO4006 + 0.200GAD4007                 : ARR( 0.533E-11,   500., 0.0);
+{ 37595} G2A400j +PERO6              =  0.460G1A400X + 0.270GAO4006 + 0.270GAD4007                 : ARR( 0.488E-13, -1250., 0.0);
+{ 37596} G2A400j +PERO9              =  0.800G1A400X + 0.200GAD4007                                : ARR( 0.100E-10,     0., 0.0);
+{ 37597} GPN5012                     =       G3N501e +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 37598} GPN5012 +GHO                =       G2P502b                                               : ARR( 0.296E-12,     0., 0.0);
+{ 37599} GPN5012 +GHO                =       GPN5017 +      GHO2                                   : ARR( 0.216E-11,     0., 0.0);
+{ 37600} GPN5012 +GHO                =       G1P5016                                               : ARR( 0.220E-17,    85., 2.0);
+{ 37601} GPN5012+HV               =       G1P5038 +      GNO2                                   :  0.100E+01*SUN;
+{ 37602} GPN5012+HV               =       G1P500p +      GNO2                                   :  0.100E+01*SUN;
+{ 37603} GPN5012+HV               =       G3N501e +      GNO2                                   :  0.100E+01*SUN;
+{ 37604} G2P502b +GNO                =       G1P5039 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 37605} G2P502b +GNO                =       GPN502Q                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 37606} G2P502b +GHO2               =       GPH503R                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 37607} G2P502b +GNO3               =       G1P5039 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 37608} G2P502b +MEPERO             =  0.340G1P5039 + 0.330GPN501O + 0.330GPN502R                 : ARR( 0.565E-13,  -845., 0.0);
+{ 37609} G2P502b +PERO1              =  0.460G1P5039 + 0.270GPN501O + 0.270GPN502R                 : ARR( 0.434E-13,  -900., 0.0);
+{ 37610} G2P502b +PERO2              =  0.400G1P5039 + 0.300GPN501O + 0.300GPN502R                 : ARR( 0.162E-13, -1400., 0.0);
+{ 37611} G2P502b +PERO3              =  0.460G1P5039 + 0.270GPN501O + 0.270GPN502R                 : ARR( 0.488E-13, -1250., 0.0);
+{ 37612} G2P502b +PERO5              =  0.460G1P5039 + 0.270GPN501O + 0.270GPN502R                 : ARR( 0.183E-11,   450., 0.0);
+{ 37613} G2P502b +PERO6              =  0.300G1P5039 + 0.350GPN501O + 0.350GPN502R                 : ARR( 0.168E-13, -1300., 0.0);
+{ 37614} G2P502b +PERO9              =  0.650G1P5039 + 0.350GPN502R                                : ARR( 0.100E-10,     0., 0.0);
+{ 37615} G1P5038 +OXYGEN             =       GPN502S +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{ 37616} G1P5038                     =       GPK500B +      GNO2                                   : ARR( 0.800E+11,  4245., 0.0);
+{ 37617} G1P5039                     =       GND2000 +      GPN3006 +      GHO2                    : ARR( 0.200E+15,  3617., 0.0);
+{ 37618} GPH5012                     =       G3H5023 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 37619} GPH5012 +GHO                =       GPH5015 +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 37620} GPH5012 +GHO                =       GPN5013 +      GHO                                    : ARR( 0.254E-10,     0., 0.0);
+{ 37621} GPH5012 +GHO                =       G2P500m                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 37622} GPH5012+HV               =       G1P503A +      GNO2                                   :  0.100E+01*SUN;
+{ 37623} GPH5012+HV               =       G1P500p +      GHO                                    :  0.100E+01*SUN;
+{ 37624} GPH5012+HV               =       G3H5023 +      GNO2                                   :  0.100E+01*SUN;
+{ 37625} G1P503A                     =       GPK500B +      GHO                                    : ARR( 0.800E+11,  1899., 0.0);
+{ 37626} GPN5013                     =       G3N501k +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 37627} GPN5013 +GHO                =       G2P502c                                               : ARR( 0.919E-12,     0., 0.0);
+{ 37628} GPN5013 +GHO                =       GPN5018 +      GHO2                                   : ARR( 0.645E-11,     0., 0.0);
+{ 37629} GPN5013+HV               =       G1P503B +      GNO2                                   :  0.100E+01*SUN;
+{ 37630} GPN5013+HV               =       G3N400G +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 37631} G2P502c +GNO                =       G1P503C +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 37632} G2P502c +GNO                =       GPN502T                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 37633} G2P502c +GHO2               =       GPH503S                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 37634} G2P502c +GNO3               =       G1P503C +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 37635} G2P502c +MEPERO             =  0.340G1P503C + 0.330GPN501W + 0.330GPN502U                 : ARR( 0.565E-13,  -845., 0.0);
+{ 37636} G2P502c +PERO1              =  0.460G1P503C + 0.270GPN501W + 0.270GPN502U                 : ARR( 0.434E-13,  -900., 0.0);
+{ 37637} G2P502c +PERO2              =  0.400G1P503C + 0.300GPN501W + 0.300GPN502U                 : ARR( 0.162E-13, -1400., 0.0);
+{ 37638} G2P502c +PERO3              =  0.460G1P503C + 0.270GPN501W + 0.270GPN502U                 : ARR( 0.488E-13, -1250., 0.0);
+{ 37639} G2P502c +PERO5              =  0.460G1P503C + 0.270GPN501W + 0.270GPN502U                 : ARR( 0.183E-11,   450., 0.0);
+{ 37640} G2P502c +PERO6              =  0.300G1P503C + 0.350GPN501W + 0.350GPN502U                 : ARR( 0.168E-13, -1300., 0.0);
+{ 37641} G2P502c +PERO9              =  0.650G1P503C + 0.350GPN502U                                : ARR( 0.100E-10,     0., 0.0);
+{ 37642} G1P503B +OXYGEN             =       GPD500E +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{ 37643} G1P503C                     =       GND2000 +      GPD3002 +      GHO2                    : ARR( 0.200E+15,  3345., 0.0);
+{ 37644} GPN5014                     =       G3N500h +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 37645} GPN5014 +GHO                =       GPN502S +      GHO2                                   : ARR( 0.421E-11,     0., 0.0);
+{ 37646} GPN5014 +GHO                =       G2P502d                                               : ARR( 0.148E-11,     0., 0.0);
+{ 37647} GPN5014 +GHO                =       GPN500h +      GHO2                                   : ARR( 0.216E-11,     0., 0.0);
+{ 37648} GPN5014+HV               =       G1P500q +      GNO2                                   :  0.100E+01*SUN;
+{ 37649} GPN5014+HV               =       G3N500h +      GNO2                                   :  0.100E+01*SUN;
+{ 37650} G2P502d +GNO                =       G1P503D +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 37651} G2P502d +GNO                =       GPN502W                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 37652} G2P502d +GHO2               =       GPH503T                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 37653} G2P502d +GNO3               =       G1P503D +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 37654} G2P502d +MEPERO             =  0.340G1P503D + 0.330GPN501X + 0.330GPN502X                 : ARR( 0.565E-13,  -845., 0.0);
+{ 37655} G2P502d +PERO1              =  0.460G1P503D + 0.270GPN501X + 0.270GPN502X                 : ARR( 0.434E-13,  -900., 0.0);
+{ 37656} G2P502d +PERO2              =  0.400G1P503D + 0.300GPN501X + 0.300GPN502X                 : ARR( 0.162E-13, -1400., 0.0);
+{ 37657} G2P502d +PERO3              =  0.460G1P503D + 0.270GPN501X + 0.270GPN502X                 : ARR( 0.488E-13, -1250., 0.0);
+{ 37658} G2P502d +PERO5              =  0.460G1P503D + 0.270GPN501X + 0.270GPN502X                 : ARR( 0.183E-11,   450., 0.0);
+{ 37659} G2P502d +PERO6              =  0.300G1P503D + 0.350GPN501X + 0.350GPN502X                 : ARR( 0.168E-13, -1300., 0.0);
+{ 37660} G2P502d +PERO9              =  0.650G1P503D + 0.350GPN502X                                : ARR( 0.100E-10,     0., 0.0);
+{ 37661} G1P503D                     =       GDO2000 +      GPN3006 +      GHO2                    : ARR( 0.200E+15,  3619., 0.0);
+{ 37662} GPH5013                     =       G3H500h +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 37663} GPH5013 +GHO                =       GPH503U +      GHO2                                   : ARR( 0.418E-11,     0., 0.0);
+{ 37664} GPH5013 +GHO                =       GPH500X +      GHO2                                   : ARR( 0.107E-10,     0., 0.0);
+{ 37665} GPH5013 +GHO                =       GPK500B +      GHO                                    : ARR( 0.261E-10,     0., 0.0);
+{ 37666} GPH5013 +GHO                =       G2P500n                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 37667} GPH5013+HV               =       G1P500q +      GHO                                    :  0.100E+01*SUN;
+{ 37668} GPH5013+HV               =       G3H500h +      GNO2                                   :  0.100E+01*SUN;
+{ 37669} GND501D +GHO                =       G3N501l                                               : ARR( 0.215E-10,     0., 0.0);
+{ 37670} GND501D +GHO                =       GND501G +      GHO2                                   : ARR( 0.676E-11,     0., 0.0);
+{ 37671} GND501D +GHO                =       G3N501m                                               : ARR( 0.430E-11,     0., 0.0);
+{ 37672} GND501D +GNO3               =       G3N501l +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 37673} GND501D +GNO3               =       G3N501m +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 37674} GND501D+HV               =       GCO     +      G2N400w +      GHO2                    :  0.100E+01*SUN;
+{ 37675} GND501D+HV               =       GD02000 +      GDD3002 +      GHO2    +      GNO2     :  0.100E+01*SUN;
+{ 37676} GND501D+HV               =       G1D501I +      GNO2                                   :  0.100E+01*SUN;
+{ 37677} GND501D+HV               =       GDD4001 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 37678} GND501D+HV               =       GDD3000 +      GND2000                                :  0.100E+01*SUN;
+{ 37679} G3N501l +GHO2               =  0.800GGN502B + 0.200GAN502R + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 37680} G3N501l +GNO                =       G2N400w +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 37681} G3N501l +GNO2               =       GPN502Y                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 37682} G3N501l +GNO3               =       G2N400w +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 37683} G3N501l +MEPERO             =  0.685G2N400w + 0.315GAN502R + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 37684} G3N501l +PERO1              =  0.800G2N400w + 0.200GAN502R + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 37685} G3N501l +PERO2              =  0.750G2N400w + 0.250GAN502R + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 37686} G3N501l +PERO3              =  0.800G2N400w + 0.200GAN502R + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 37687} G3N501l +PERO5              =  0.650G2N400w + 0.350GAN502R + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 37688} G3N501l +PERO6              =  0.650G2N400w + 0.350GAN502R + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 37689} G3N501l +PERO9              =       G2N400w +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 37690} G3N501m +GHO2               =  0.800GGN5026 + 0.200GAN502K + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 37691} G3N501m +GNO                =       GDD4001 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 37692} G3N501m +GNO2               =       GPN502S                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 37693} G3N501m +GNO3               =       GDD4001 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 37694} G3N501m +MEPERO             =  0.685GDD4001 + 0.315GAN502K + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37695} G3N501m +PERO1              =  0.800GDD4001 + 0.200GAN502K + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37696} G3N501m +PERO2              =  0.750GDD4001 + 0.250GAN502K + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37697} G3N501m +PERO3              =  0.800GDD4001 + 0.200GAN502K + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37698} G3N501m +PERO5              =  0.650GDD4001 + 0.350GAN502K + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37699} G3N501m +PERO6              =  0.650GDD4001 + 0.350GAN502K + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37700} G3N501m +PERO9              =       GDD4001 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 37701} G1D501I                     =       GDD3000 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  5032., 0.0);
+{ 37702} G1D501I                     =       GDD4001 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 37703} GNN502u +GHO                =       GNN503J +      GHO2                                   : ARR( 0.875E-12,     0., 0.0);
+{ 37704} GNN502u +GHO                =       GNN503F +      GHO2                                   : ARR( 0.448E-12,     0., 0.0);
+{ 37705} GNN502u +GHO                =       G3N501n                                               : ARR( 0.452E-11,     0., 0.0);
+{ 37706} GNN502u +GNO3               =       G3N501n +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 37707} GNN502u+HV               =       G1N504b +      GNO2                                   :  0.100E+01*SUN;
+{ 37708} GNN502u+HV               =       G1N506M +      GNO2                                   :  0.100E+01*SUN;
+{ 37709} GNN502u+HV               =       GND4009 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 37710} GNN502u+HV               =       GDK3001 +      GND2000 +      GHO2    +      GNO2     :  0.100E+01*SUN;
+{ 37711} G3N501n +GHO2               =  0.800GGN5029 + 0.200GAN502N + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 37712} G3N501n +GNO                =       GND4009 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 37713} G3N501n +GNO2               =       GPN502W                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 37714} G3N501n +GNO3               =       GND4009 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 37715} G3N501n +MEPERO             =  0.685GND4009 + 0.315GAN502N + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37716} G3N501n +PERO1              =  0.800GND4009 + 0.200GAN502N + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37717} G3N501n +PERO2              =  0.750GND4009 + 0.250GAN502N + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37718} G3N501n +PERO3              =  0.800GND4009 + 0.200GAN502N + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37719} G3N501n +PERO5              =  0.650GND4009 + 0.350GAN502N + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37720} G3N501n +PERO6              =  0.650GND4009 + 0.350GAN502N + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37721} G3N501n +PERO9              =       GND4009 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 37722} GHN505M +GHO                =       GHN506j +      GHO2                                   : ARR( 0.420E-11,     0., 0.0);
+{ 37723} GHN505M +GHO                =       GND501E +      GHO                                    : ARR( 0.431E-10,     0., 0.0);
+{ 37724} GHN505M +GHO                =       G3H502S                                               : ARR( 0.434E-11,     0., 0.0);
+{ 37725} GHN505M +GHO                =       G2N504D                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 37726} GHN505M +GNO3               =       G3H502S +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 37727} GHN505M+HV               =       G1N504b +      GHO                                    :  0.100E+01*SUN;
+{ 37728} GHN505M+HV               =       G1H506L +      GNO2                                   :  0.100E+01*SUN;
+{ 37729} GHN505M+HV               =       GHD4009 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 37730} GHN505M+HV               =       GDK3001 +      GND2000 +      GHO2    +      GHO      :  0.100E+01*SUN;
+{ 37731} G3H502S +GHO2               =  0.800GGH5037 + 0.200GAH503N + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 37732} G3H502S +GNO                =       GHD4009 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 37733} G3H502S +GNO2               =       GPH503T                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 37734} G3H502S +GNO3               =       GHD4009 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 37735} G3H502S +MEPERO             =  0.685GHD4009 + 0.315GAH503N + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37736} G3H502S +PERO1              =  0.800GHD4009 + 0.200GAH503N + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37737} G3H502S +PERO2              =  0.750GHD4009 + 0.250GAH503N + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37738} G3H502S +PERO3              =  0.800GHD4009 + 0.200GAH503N + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37739} G3H502S +PERO5              =  0.650GHD4009 + 0.350GAH503N + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37740} G3H502S +PERO6              =  0.650GHD4009 + 0.350GAH503N + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37741} G3H502S +PERO9              =       GHD4009 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 37742} GND501E +GHO                =       GND501Y +      GHO2                                   : ARR( 0.261E-11,     0., 0.0);
+{ 37743} GND501E +GHO                =       GND501O +      GHO2                                   : ARR( 0.134E-11,     0., 0.0);
+{ 37744} GND501E +GHO                =       G3N501o                                               : ARR( 0.442E-11,     0., 0.0);
+{ 37745} GND501E +GNO3               =       G3N501o +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 37746} GND501E+HV               =       G3K2001 +      GND3005 +      GHO2                    :  0.100E+01*SUN;
+{ 37747} GND501E+HV               =       G1D501B +      GNO2                                   :  0.100E+01*SUN;
+{ 37748} GND501E+HV               =       GDK4006 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 37749} G3N501o +GHO2               =  0.800GGN502A + 0.200GAN502O + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 37750} G3N501o +GNO                =       GDK4006 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 37751} G3N501o +GNO2               =       GPN502X                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 37752} G3N501o +GNO3               =       GDK4006 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 37753} G3N501o +MEPERO             =  0.685GDK4006 + 0.315GAN502O + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37754} G3N501o +PERO1              =  0.800GDK4006 + 0.200GAN502O + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37755} G3N501o +PERO2              =  0.750GDK4006 + 0.250GAN502O + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37756} G3N501o +PERO3              =  0.800GDK4006 + 0.200GAN502O + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37757} G3N501o +PERO5              =  0.650GDK4006 + 0.350GAN502O + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37758} G3N501o +PERO6              =  0.650GDK4006 + 0.350GAN502O + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37759} G3N501o +PERO9              =       GDK4006 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 37760} GDD5009 +GHO                =       G3D500C                                               : ARR( 0.219E-10,     0., 0.0);
+{ 37761} GDD5009 +GHO                =       GDD500A +      GHO2                                   : ARR( 0.210E-10,     0., 0.0);
+{ 37762} GDD5009 +GHO                =       G3D4002 +      GCO                                    : ARR( 0.133E-10,     0., 0.0);
+{ 37763} GDD5009 +GNO3               =       G3D500C +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 37764} GDD5009 +GNO3               =       G3D4002 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 37765} GDD5009+HV               =       GCO     +      G2D400E +      GHO2                    :  0.100E+01*SUN;
+{ 37766} GDD5009+HV               =       G3D4002 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 37767} GDD5009+HV               =       GDD4001 +      GCO                                    :  0.100E+01*SUN;
+{ 37768} GDD5009+HV               =       GDO3000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 37769} G3D500C +GHO2               =  0.800GGD500I + 0.200GAD500L + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 37770} G3D500C +GNO                =       G2D400E +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 37771} G3D500C +GNO2               =       GPD500J                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 37772} G3D500C +GNO3               =       G2D400E +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 37773} G3D500C +MEPERO             =  0.685G2D400E + 0.315GAD500L + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 37774} G3D500C +PERO1              =  0.800G2D400E + 0.200GAD500L + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 37775} G3D500C +PERO2              =  0.750G2D400E + 0.250GAD500L + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 37776} G3D500C +PERO3              =  0.800G2D400E + 0.200GAD500L + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 37777} G3D500C +PERO5              =  0.650G2D400E + 0.350GAD500L + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 37778} G3D500C +PERO6              =  0.650G2D400E + 0.350GAD500L + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 37779} G3D500C +PERO9              =       G2D400E +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 37780} G2D400E +GNO                =       G1D400I +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 37781} G2D400E +GNO                =       GND400G                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 37782} G2D400E +GHO2               =       GHD400F                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 37783} G2D400E +GNO3               =       G1D400I +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 37784} G2D400E +MEPERO             =  0.480G1D400I + 0.260GDK4007 + 0.260GDD4004                 : ARR( 0.164E-12,  -795., 0.0);
+{ 37785} G2D400E +PERO1              =  0.600G1D400I + 0.200GDK4007 + 0.200GDD4004                 : ARR( 0.126E-12,  -850., 0.0);
+{ 37786} G2D400E +PERO2              =  0.560G1D400I + 0.220GDK4007 + 0.220GDD4004                 : ARR( 0.471E-13, -1350., 0.0);
+{ 37787} G2D400E +PERO3              =  0.600G1D400I + 0.200GDK4007 + 0.200GDD4004                 : ARR( 0.142E-12, -1200., 0.0);
+{ 37788} G2D400E +PERO5              =  0.600G1D400I + 0.200GDK4007 + 0.200GDD4004                 : ARR( 0.533E-11,   500., 0.0);
+{ 37789} G2D400E +PERO6              =  0.460G1D400I + 0.270GDK4007 + 0.270GDD4004                 : ARR( 0.488E-13, -1250., 0.0);
+{ 37790} G2D400E +PERO9              =  0.800G1D400I + 0.200GDD4004                                : ARR( 0.100E-10,     0., 0.0);
+{ 37791} GND501F +GHO                =       GND501Y +      GHO2                                   : ARR( 0.840E-12,     0., 0.0);
+{ 37792} GND501F +GHO                =       GND5016 +      GHO2                                   : ARR( 0.131E-11,     0., 0.0);
+{ 37793} GND501F +GHO                =       G3N400E +      GCO                                    : ARR( 0.132E-10,     0., 0.0);
+{ 37794} GND501F +GNO3               =       G3N400E +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 37795} GND501F+HV               =       G1D500m +      GNO2                                   :  0.100E+01*SUN;
+{ 37796} GND501F+HV               =       G3N400E +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 37797} GND501F+HV               =       GND4009 +      GCO                                    :  0.100E+01*SUN;
+{ 37798} GND501F+HV               =       GNO3004 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 37799} GHD5015 +GHO                =       GDK500a +      GHO                                    : ARR( 0.144E-09,     0., 0.0);
+{ 37800} GHD5015 +GHO                =       G3H400B +      GCO                                    : ARR( 0.139E-10,     0., 0.0);
+{ 37801} GHD5015 +GNO3               =       G3H400B +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 37802} GHD5015+HV               =       G1D500m +      GHO                                    :  0.100E+01*SUN;
+{ 37803} GHD5015+HV               =       G3H400B +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 37804} GHD5015+HV               =       GHD4009 +      GCO                                    :  0.100E+01*SUN;
+{ 37805} GHD5015+HV               =       GHO3004 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 37806} GDK500a +GHO                =       GDD500E +      GHO2                                   : ARR( 0.249E-11,     0., 0.0);
+{ 37807} GDK500a +GHO                =       GDK500c +      GHO2                                   : ARR( 0.389E-11,     0., 0.0);
+{ 37808} GDK500a +GHO                =       G3K400C +      GCO                                    : ARR( 0.129E-10,     0., 0.0);
+{ 37809} GDK500a +GNO3               =       G3K400C +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 37810} GDK500a+HV               =       G3K2001 +      GDD3002 +      GHO2                    :  0.100E+01*SUN;
+{ 37811} GDK500a+HV               =       G3K400C +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 37812} GDK500a+HV               =       GDK4006 +      GCO                                    :  0.100E+01*SUN;
+{ 37813} GDK500a+HV               =       GKO3001 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 37814} GDD4004 +GHO                =       G3D4006                                               : ARR( 0.692E-10,     0., 0.0);
+{ 37815} GDD4004 +GHO                =       G3D3001 +      GCO                                    : ARR( 0.133E-10,     0., 0.0);
+{ 37816} GDD4004 +GNO3               =       G3D4006 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 37817} GDD4004 +GNO3               =       G3D3001 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 37818} GDD4004+HV               =       GCO     +      GDD3002 + 2.000GHO2                    :  0.100E+01*SUN;
+{ 37819} GDD4004+HV               =       G3D3001 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 37820} GDD4004+HV               =       GDD3001 +      GCO                                    :  0.100E+01*SUN;
+{ 37821} GDD4004+HV               =       GDO2000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 37822} G3D4006 +GHO2               =  0.800GGD4007 + 0.200GAD4006 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 37823} G3D4006 +GNO                =       GDD3002 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 37824} G3D4006 +GNO2               =       GPD4007                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 37825} G3D4006 +GNO3               =       GDD3002 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 37826} G3D4006 +MEPERO             =  0.685GDD3002 + 0.315GAD4006 + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37827} G3D4006 +PERO1              =  0.800GDD3002 + 0.200GAD4006 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37828} G3D4006 +PERO2              =  0.750GDD3002 + 0.250GAD4006 + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37829} G3D4006 +PERO3              =  0.800GDD3002 + 0.200GAD4006 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37830} G3D4006 +PERO5              =  0.650GDD3002 + 0.350GAD4006 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37831} G3D4006 +PERO6              =  0.650GDD3002 + 0.350GAD4006 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37832} G3D4006 +PERO9              =       GDD3002 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 37833} GGD5007 +GHO                =       GGD5006 +      GHO2                                   : ARR( 0.333E-10,     0., 0.0);
+{ 37834} GGD5007 +GHO                =       GGD500I +      GHO2                                   : ARR( 0.640E-11,     0., 0.0);
+{ 37835} GGD5007 +GHO                =       G3G500C                                               : ARR( 0.211E-10,     0., 0.0);
+{ 37836} GGD5007 +GHO                =       G3D5003                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 37837} GGD5007 +GNO3               =       G3G500C +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 37838} GGD5007+HV               =       G2D400A +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 37839} GGD5007+HV               =       GGD4001 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 37840} G3G500C +GHO2               =  0.800GGG5002 + 0.200GAG500G + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 37841} G3G500C +GNO                =       GGD4001 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 37842} G3G500C +GNO2               =       GPG5006                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 37843} G3G500C +GNO3               =       GGD4001 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 37844} G3G500C +MEPERO             =  0.685GGD4001 + 0.315GAG500G + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37845} G3G500C +PERO1              =  0.800GGD4001 + 0.200GAG500G + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37846} G3G500C +PERO2              =  0.750GGD4001 + 0.250GAG500G + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37847} G3G500C +PERO3              =  0.800GGD4001 + 0.200GAG500G + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37848} G3G500C +PERO5              =  0.650GGD4001 + 0.350GAG500G + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37849} G3G500C +PERO6              =  0.650GGD4001 + 0.350GAG500G + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37850} G3G500C +PERO9              =       GGD4001 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 37851} GAD5009 +GHO                =       GAD5006 +      GHO2                                   : ARR( 0.335E-10,     0., 0.0);
+{ 37852} GAD5009 +GHO                =       GAD500L +      GHO2                                   : ARR( 0.643E-11,     0., 0.0);
+{ 37853} GAD5009 +GHO                =       G3A500G                                               : ARR( 0.213E-10,     0., 0.0);
+{ 37854} GAD5009 +GNO3               =       G3A500G +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 37855} GAD5009+HV               =       GAD4001 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 37856} G3A500G +GHO2               =  0.800GAG5006 + 0.200GAA500B + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 37857} G3A500G +GNO                =       GAD4001 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 37858} G3A500G +GNO2               =       GPA5007                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 37859} G3A500G +GNO3               =       GAD4001 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 37860} G3A500G +MEPERO             =  0.685GAD4001 + 0.315GAA500B + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37861} G3A500G +PERO1              =  0.800GAD4001 + 0.200GAA500B + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37862} G3A500G +PERO2              =  0.750GAD4001 + 0.250GAA500B + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37863} G3A500G +PERO3              =  0.800GAD4001 + 0.200GAA500B + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37864} G3A500G +PERO5              =  0.650GAD4001 + 0.350GAA500B + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37865} G3A500G +PERO6              =  0.650GAD4001 + 0.350GAA500B + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37866} G3A500G +PERO9              =       GAD4001 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 37867} GPD5007                     =       G3D5003 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 37868} GPD5007 +GHO                =       GPD5006 +      GHO2                                   : ARR( 0.333E-10,     0., 0.0);
+{ 37869} GPD5007 +GHO                =       GPD500J +      GHO2                                   : ARR( 0.640E-11,     0., 0.0);
+{ 37870} GPD5007 +GHO                =       G3P500E                                               : ARR( 0.212E-10,     0., 0.0);
+{ 37871} GPD5007 +GNO3               =       G3P500E +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 37872} GPD5007+HV               =       G3D5003 +      GNO2                                   :  0.100E+01*SUN;
+{ 37873} GPD5007+HV               =       GPD4001 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 37874} G3P500E +GHO2               =  0.800GPG5005 + 0.200GPA500I + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 37875} G3P500E +GNO                =       GPD4001 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 37876} G3P500E +GNO2               =       GPP5004                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 37877} G3P500E +GNO3               =       GPD4001 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 37878} G3P500E +MEPERO             =  0.685GPD4001 + 0.315GPA500I + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37879} G3P500E +PERO1              =  0.800GPD4001 + 0.200GPA500I + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37880} G3P500E +PERO2              =  0.750GPD4001 + 0.250GPA500I + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37881} G3P500E +PERO3              =  0.800GPD4001 + 0.200GPA500I + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37882} G3P500E +PERO5              =  0.650GPD4001 + 0.350GPA500I + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37883} G3P500E +PERO6              =  0.650GPD4001 + 0.350GPA500I + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 37884} G3P500E +PERO9              =       GPD4001 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 37885} GGN500v +GHO                =       G3N500r                                               : ARR( 0.209E-11,  -190., 0.0);
+{ 37886} GGN500v+HV               =       G1G501f +      GNO2                                   :  0.100E+01*SUN;
+{ 37887} GGN500v+HV               =       G3N3000 +      GGD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 37888} GGN500v+HV               =       G1G500i +      GNO2                                   :  0.100E+01*SUN;
+{ 37889} GGN500v+HV               =       GND400B +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 37890} GGH500w +GHO                =       GGN500w +      GHO                                    : ARR( 0.155E-10,     0., 0.0);
+{ 37891} GGH500w +GHO                =       G2G500e                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 37892} GGH500w +GHO                =       G3H501z                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 37893} GGH500w+HV               =       G1G502K +      GNO2                                   :  0.100E+01*SUN;
+{ 37894} GGH500w+HV               =       G3N3000 +      GGD2000 +      GHO                     :  0.100E+01*SUN;
+{ 37895} GGH500w+HV               =       G1G500i +      GHO                                    :  0.100E+01*SUN;
+{ 37896} GGH500w+HV               =       GND400B +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 37897} G1G502K +OXYGEN             =       GGH502F +      GHO2                                   : ARR( 0.600E-13,   398., 0.0);
+{ 37898} G1G502K                     =       GGK500H +      GHO                                    : ARR( 0.800E+11,  3882., 0.0);
+{ 37899} GGN500w +GHO                =       G3N501p                                               : ARR( 0.207E-11,  -190., 0.0);
+{ 37900} GGN500w+HV               =       G1G501j +      GNO2                                   :  0.100E+01*SUN;
+{ 37901} GGN500w+HV               =       G3N3000 +      GCO     +      GHO2    +      GCO      :  0.100E+01*SUN;
+{ 37902} GGN500w+HV               =       GAN400A +      GCO2                                   :  0.100E+01*SUN;
+{ 37903} G3N501p +GHO2               =  0.800GGN500w + 0.200GAN5012 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 37904} G3N501p +GNO                =       G3N3000 +      GNO2    +      GCO2    +      GCO      : ARR( 0.810E-11,  -270., 0.0);
+{ 37905} G3N501p +GNO2               =       GPN5018                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 37906} G3N501p +GNO3               =       G3N3000 +      GNO2    +      GCO2    +      GCO      : ARR( 0.500E-11,     0., 0.0);
+{ 37907} G3N501p +MEPERO             =  0.685G3N3000 + 0.315GAN5012 + 0.685GCO2    + 0.685GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 37908} G3N501p +PERO1              =  0.800G3N3000 + 0.200GAN5012 + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 37909} G3N501p +PERO2              =  0.750G3N3000 + 0.250GAN5012 + 0.750GCO2    + 0.750GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 37910} G3N501p +PERO3              =  0.800G3N3000 + 0.200GAN5012 + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 37911} G3N501p +PERO5              =  0.650G3N3000 + 0.350GAN5012 + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 37912} G3N501p +PERO6              =  0.650G3N3000 + 0.350GAN5012 + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 37913} G3N501p +PERO9              =       G3N3000 +      GCO2    +      GCO                     : ARR( 0.500E-11,  -500., 0.0);
+{ 37914} GAN5011 +GHO                =       G2A502a                                               : ARR( 0.179E-12,     0., 0.0);
+{ 37915} GAN5011 +GHO                =       GAN501y +      GNO2                                   : ARR( 0.151E-12,     0., 0.0);
+{ 37916} GAN5011 +GHO                =       GND400B +      GNO2    +      GCO2                    : ARR( 0.540E-12,     0., 0.0);
+{ 37917} GAN5011+HV               =       G1A500o +      GNO2                                   :  0.100E+01*SUN;
+{ 37918} GAN5011+HV               =       G3A3001 +      G2N2000                                :  0.100E+01*SUN;
+{ 37919} GAN5011+HV               =       G1A5022 +      GNO2                                   :  0.100E+01*SUN;
+{ 37920} G2A502a +GNO                =       G1A5032 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 37921} G2A502a +GNO                =       GAN502S                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 37922} G2A502a +GHO2               =       GAH503R                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 37923} G2A502a +GNO3               =       G1A5032 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 37924} G2A502a +MEPERO             =  0.340G1A5032 + 0.330GAN501L + 0.330GAN502T                 : ARR( 0.565E-13,  -845., 0.0);
+{ 37925} G2A502a +PERO1              =  0.460G1A5032 + 0.270GAN501L + 0.270GAN502T                 : ARR( 0.434E-13,  -900., 0.0);
+{ 37926} G2A502a +PERO2              =  0.400G1A5032 + 0.300GAN501L + 0.300GAN502T                 : ARR( 0.162E-13, -1400., 0.0);
+{ 37927} G2A502a +PERO3              =  0.460G1A5032 + 0.270GAN501L + 0.270GAN502T                 : ARR( 0.488E-13, -1250., 0.0);
+{ 37928} G2A502a +PERO5              =  0.460G1A5032 + 0.270GAN501L + 0.270GAN502T                 : ARR( 0.183E-11,   450., 0.0);
+{ 37929} G2A502a +PERO6              =  0.300G1A5032 + 0.350GAN501L + 0.350GAN502T                 : ARR( 0.168E-13, -1300., 0.0);
+{ 37930} G2A502a +PERO9              =  0.650G1A5032 + 0.350GAN502T                                : ARR( 0.100E-10,     0., 0.0);
+{ 37931} G1A5032                     =       G3A3001 +      GND2000                                : ARR( 0.200E+15,  4121., 0.0);
+{ 37932} GAH5013 +GHO                =       GAN5012 +      GHO                                    : ARR( 0.120E-10,     0., 0.0);
+{ 37933} GAH5013 +GHO                =       G2A500l                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 37934} GAH5013+HV               =       G1A500o +      GHO                                    :  0.100E+01*SUN;
+{ 37935} GAH5013+HV               =       G3A3003 +      G2N2000                                :  0.100E+01*SUN;
+{ 37936} GAH5013+HV               =       G1A5033 +      GNO2                                   :  0.100E+01*SUN;
+{ 37937} G1A5033 +OXYGEN             =       GAH502U +      GHO2                                   : ARR( 0.600E-13,   398., 0.0);
+{ 37938} G1A5033                     =       GAK500F +      GHO                                    : ARR( 0.800E+11,  4016., 0.0);
+{ 37939} GAN5012 +GHO                =       G2A502b                                               : ARR( 0.172E-12,     0., 0.0);
+{ 37940} GAN5012 +GHO                =       GAD500H +      GNO2                                   : ARR( 0.146E-12,     0., 0.0);
+{ 37941} GAN5012 +GHO                =       G3N3000 +      GCO2    +      GCO                     : ARR( 0.520E-12,     0., 0.0);
+{ 37942} GAN5012+HV               =       GND400B +      GCO2                                   :  0.100E+01*SUN;
+{ 37943} GAN5012+HV               =       GCO     +      G3N3000 +      GHO     +      GCO      :  0.100E+01*SUN;
+{ 37944} GAN5012+HV               =       G1A5026 +      GNO2                                   :  0.100E+01*SUN;
+{ 37945} G2A502b +GNO                =       G1A5034 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 37946} G2A502b +GNO                =       GAN502U                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 37947} G2A502b +GHO2               =       GAH503S                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 37948} G2A502b +GNO3               =       G1A5034 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 37949} G2A502b +MEPERO             =  0.340G1A5034 + 0.330GAN501T + 0.330GAN502W                 : ARR( 0.565E-13,  -845., 0.0);
+{ 37950} G2A502b +PERO1              =  0.460G1A5034 + 0.270GAN501T + 0.270GAN502W                 : ARR( 0.434E-13,  -900., 0.0);
+{ 37951} G2A502b +PERO2              =  0.400G1A5034 + 0.300GAN501T + 0.300GAN502W                 : ARR( 0.162E-13, -1400., 0.0);
+{ 37952} G2A502b +PERO3              =  0.460G1A5034 + 0.270GAN501T + 0.270GAN502W                 : ARR( 0.488E-13, -1250., 0.0);
+{ 37953} G2A502b +PERO5              =  0.460G1A5034 + 0.270GAN501T + 0.270GAN502W                 : ARR( 0.183E-11,   450., 0.0);
+{ 37954} G2A502b +PERO6              =  0.300G1A5034 + 0.350GAN501T + 0.350GAN502W                 : ARR( 0.168E-13, -1300., 0.0);
+{ 37955} G2A502b +PERO9              =  0.650G1A5034 + 0.350GAN502W                                : ARR( 0.100E-10,     0., 0.0);
+{ 37956} G1A5034                     =       GCO     +      GND2000 +      GHO     + 2.000GCO      : ARR( 0.200E+15,  3288., 0.0);
+{ 37957} GAN5013 +GHO                =       G2A502c                                               : ARR( 0.399E-12,     0., 0.0);
+{ 37958} GAN5013 +GHO                =       G2N400t +      GCO2                                   : ARR( 0.533E-12,     0., 0.0);
+{ 37959} GAN5013+HV               =       G3A3000 +      GND2000 +      GNO2                    :  0.100E+01*SUN;
+{ 37960} GAN5013+HV               =       G1A500p +      GNO2                                   :  0.100E+01*SUN;
+{ 37961} GAN5013+HV               =       G1A5035 +      GNO2                                   :  0.100E+01*SUN;
+{ 37962} G2A502c +GNO                =       G1A5036 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 37963} G2A502c +GNO                =       GAN502S                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 37964} G2A502c +GHO2               =       GAH503T                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 37965} G2A502c +GNO3               =       G1A5036 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 37966} G2A502c +MEPERO             =  0.340G1A5036 + 0.330GAN502X + 0.330GAN502U                 : ARR( 0.565E-13,  -845., 0.0);
+{ 37967} G2A502c +PERO1              =  0.460G1A5036 + 0.270GAN502X + 0.270GAN502U                 : ARR( 0.434E-13,  -900., 0.0);
+{ 37968} G2A502c +PERO2              =  0.400G1A5036 + 0.300GAN502X + 0.300GAN502U                 : ARR( 0.162E-13, -1400., 0.0);
+{ 37969} G2A502c +PERO3              =  0.460G1A5036 + 0.270GAN502X + 0.270GAN502U                 : ARR( 0.488E-13, -1250., 0.0);
+{ 37970} G2A502c +PERO5              =  0.460G1A5036 + 0.270GAN502X + 0.270GAN502U                 : ARR( 0.183E-11,   450., 0.0);
+{ 37971} G2A502c +PERO6              =  0.300G1A5036 + 0.350GAN502X + 0.350GAN502U                 : ARR( 0.168E-13, -1300., 0.0);
+{ 37972} G2A502c +PERO9              =  0.650G1A5036 + 0.350GAN502U                                : ARR( 0.100E-10,     0., 0.0);
+{ 37973} G1A5035 +OXYGEN             =       GAN502Y +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 37974} G1A5035                     =       G2A502d                                               : ARR( 0.160E+12,  5338., 0.0);
+{ 37975} G1A5035                     =       GAD4003 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7323., 0.0);
+{ 37976} G1A5036                     =       GAD2000 +      G3N3003                                : ARR( 0.200E+15,  5396., 0.0);
+{ 37977} G2A502d +GNO                =       G1A5037 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 37978} G2A502d +GNO                =       GAN501z                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 37979} G2A502d +GHO2               =       GAH503U                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 37980} G2A502d +GNO3               =       G1A5037 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 37981} G2A502d +MEPERO             =  0.340G1A5037 + 0.330GAN502Z + 0.330GAN5023                 : ARR( 0.565E-13,  -845., 0.0);
+{ 37982} G2A502d +PERO1              =  0.460G1A5037 + 0.270GAN502Z + 0.270GAN5023                 : ARR( 0.434E-13,  -900., 0.0);
+{ 37983} G2A502d +PERO2              =  0.400G1A5037 + 0.300GAN502Z + 0.300GAN5023                 : ARR( 0.162E-13, -1400., 0.0);
+{ 37984} G2A502d +PERO3              =  0.460G1A5037 + 0.270GAN502Z + 0.270GAN5023                 : ARR( 0.488E-13, -1250., 0.0);
+{ 37985} G2A502d +PERO5              =  0.460G1A5037 + 0.270GAN502Z + 0.270GAN5023                 : ARR( 0.183E-11,   450., 0.0);
+{ 37986} G2A502d +PERO6              =  0.300G1A5037 + 0.350GAN502Z + 0.350GAN5023                 : ARR( 0.168E-13, -1300., 0.0);
+{ 37987} G2A502d +PERO9              =  0.650G1A5037 + 0.350GAN5023                                : ARR( 0.100E-10,     0., 0.0);
+{ 37988} G1A5037                     =       G3N3004 +      GAD2000                                : ARR( 0.200E+15,  5396., 0.0);
+{ 37989} GAH5014 +GHO                =       GAN5014 +      GHO                                    : ARR( 0.532E-11,     0., 0.0);
+{ 37990} GAH5014 +GHO                =       G2A500m                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 37991} GAH5014 +GHO                =       G2H400j +      GCO2                                   : ARR( 0.550E-12,     0., 0.0);
+{ 37992} GAH5014+HV               =       G3A3000 +      GND2000 +      GHO                     :  0.100E+01*SUN;
+{ 37993} GAH5014+HV               =       G1A500p +      GHO                                    :  0.100E+01*SUN;
+{ 37994} GAH5014+HV               =       G1A5038 +      GNO2                                   :  0.100E+01*SUN;
+{ 37995} G1A5038 +OXYGEN             =       GAH503W +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 37996} G1A5038                     =       GAD4003 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5784., 0.0);
+{ 37997} GAN5014 +GHO                =       G2A502e                                               : ARR( 0.401E-12,     0., 0.0);
+{ 37998} GAN5014 +GHO                =       G2N400u +      GCO2                                   : ARR( 0.536E-12,     0., 0.0);
+{ 37999} GAN5014+HV               =       G3A3000 +      G3N2000                                :  0.100E+01*SUN;
+{ 38000} GAN5014+HV               =       G1A501z +      GNO2                                   :  0.100E+01*SUN;
+{ 38001} G2A502e +GNO                =       G1A5039 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 38002} G2A502e +GNO                =       GAN502T                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 38003} G2A502e +GHO2               =       GAH503X                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 38004} G2A502e +GNO3               =       G1A5039 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 38005} G2A502e +MEPERO             =  0.340G1A5039 + 0.330GAN502a + 0.330GAN502W                 : ARR( 0.565E-13,  -845., 0.0);
+{ 38006} G2A502e +PERO1              =  0.460G1A5039 + 0.270GAN502a + 0.270GAN502W                 : ARR( 0.434E-13,  -900., 0.0);
+{ 38007} G2A502e +PERO2              =  0.400G1A5039 + 0.300GAN502a + 0.300GAN502W                 : ARR( 0.162E-13, -1400., 0.0);
+{ 38008} G2A502e +PERO3              =  0.460G1A5039 + 0.270GAN502a + 0.270GAN502W                 : ARR( 0.488E-13, -1250., 0.0);
+{ 38009} G2A502e +PERO5              =  0.460G1A5039 + 0.270GAN502a + 0.270GAN502W                 : ARR( 0.183E-11,   450., 0.0);
+{ 38010} G2A502e +PERO6              =  0.300G1A5039 + 0.350GAN502a + 0.350GAN502W                 : ARR( 0.168E-13, -1300., 0.0);
+{ 38011} G2A502e +PERO9              =  0.650G1A5039 + 0.350GAN502W                                : ARR( 0.100E-10,     0., 0.0);
+{ 38012} G1A5039                     =       GCO     +      GND400M +      GHO                     : ARR( 0.200E+15,  6787., 0.0);
+{ 38013} G1A5039                     =       GAD2000 +      G3N2000 +      GCO                     : ARR( 0.200E+15,  5653., 0.0);
+{ 38014} GPN5015                     =       G3N500y +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 38015} GPN5015 +GHO                =       G2P502e                                               : ARR( 0.549E-12,     0., 0.0);
+{ 38016} GPN5015+HV               =       G1P502B +      GNO2                                   :  0.100E+01*SUN;
+{ 38017} GPN5015+HV               =       G1P500r +      GNO2                                   :  0.100E+01*SUN;
+{ 38018} GPN5015+HV               =       G3N3003 +      G2P2000                                :  0.100E+01*SUN;
+{ 38019} GPN5015+HV               =       G3N500y +      GNO2                                   :  0.100E+01*SUN;
+{ 38020} G2P502e +GNO                =       G1P503E +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 38021} G2P502e +GNO                =       GPN502Z                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 38022} G2P502e +GHO2               =       GPH503W                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 38023} G2P502e +GNO3               =       G1P503E +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 38024} G2P502e +MEPERO             =  0.340G1P503E + 0.330GPN502a + 0.330GPN502b                 : ARR( 0.565E-13,  -845., 0.0);
+{ 38025} G2P502e +PERO1              =  0.460G1P503E + 0.270GPN502a + 0.270GPN502b                 : ARR( 0.434E-13,  -900., 0.0);
+{ 38026} G2P502e +PERO2              =  0.400G1P503E + 0.300GPN502a + 0.300GPN502b                 : ARR( 0.162E-13, -1400., 0.0);
+{ 38027} G2P502e +PERO3              =  0.460G1P503E + 0.270GPN502a + 0.270GPN502b                 : ARR( 0.488E-13, -1250., 0.0);
+{ 38028} G2P502e +PERO5              =  0.460G1P503E + 0.270GPN502a + 0.270GPN502b                 : ARR( 0.183E-11,   450., 0.0);
+{ 38029} G2P502e +PERO6              =  0.300G1P503E + 0.350GPN502a + 0.350GPN502b                 : ARR( 0.168E-13, -1300., 0.0);
+{ 38030} G2P502e +PERO9              =  0.650G1P503E + 0.350GPN502b                                : ARR( 0.100E-10,     0., 0.0);
+{ 38031} G1P503E                     =       G3N3003 +      GPD2000                                : ARR( 0.200E+15,  5396., 0.0);
+{ 38032} GPH5014                     =       G3H500q +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 38033} GPH5014 +GHO                =       GPN5016 +      GHO                                    : ARR( 0.511E-11,     0., 0.0);
+{ 38034} GPH5014 +GHO                =       G2P502f                                               : ARR( 0.534E-12,     0., 0.0);
+{ 38035} GPH5014 +GHO                =       G2P500o                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 38036} GPH5014+HV               =       G1P503F +      GNO2                                   :  0.100E+01*SUN;
+{ 38037} GPH5014+HV               =       G1P500r +      GHO                                    :  0.100E+01*SUN;
+{ 38038} GPH5014+HV               =       G3H3002 +      G2P2000                                :  0.100E+01*SUN;
+{ 38039} GPH5014+HV               =       G3H500q +      GNO2                                   :  0.100E+01*SUN;
+{ 38040} G2P502f +GNO                =       G1P503G +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 38041} G2P502f +GNO                =       GPH503X                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 38042} G2P502f +GHO2               =       GPH503Y                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 38043} G2P502f +GNO3               =       G1P503G +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 38044} G2P502f +MEPERO             =  0.340G1P503G + 0.330GPH503Z + 0.330GPH503a                 : ARR( 0.565E-13,  -845., 0.0);
+{ 38045} G2P502f +PERO1              =  0.460G1P503G + 0.270GPH503Z + 0.270GPH503a                 : ARR( 0.434E-13,  -900., 0.0);
+{ 38046} G2P502f +PERO2              =  0.400G1P503G + 0.300GPH503Z + 0.300GPH503a                 : ARR( 0.162E-13, -1400., 0.0);
+{ 38047} G2P502f +PERO3              =  0.460G1P503G + 0.270GPH503Z + 0.270GPH503a                 : ARR( 0.488E-13, -1250., 0.0);
+{ 38048} G2P502f +PERO5              =  0.460G1P503G + 0.270GPH503Z + 0.270GPH503a                 : ARR( 0.183E-11,   450., 0.0);
+{ 38049} G2P502f +PERO6              =  0.300G1P503G + 0.350GPH503Z + 0.350GPH503a                 : ARR( 0.168E-13, -1300., 0.0);
+{ 38050} G2P502f +PERO9              =  0.650G1P503G + 0.350GPH503a                                : ARR( 0.100E-10,     0., 0.0);
+{ 38051} G1P503F +OXYGEN             =       GPH503b +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 38052} G1P503F                     =       GPD4003 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5784., 0.0);
+{ 38053} G1P503G                     =       G3H3002 +      GPD2000                                : ARR( 0.200E+15,  5359., 0.0);
+{ 38054} GPN5016                     =       G3N5011 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 38055} GPN5016 +GHO                =       GPD500F +      GNO2                                   : ARR( 0.280E-13,     0., 0.0);
+{ 38056} GPN5016 +GHO                =       G2P502g                                               : ARR( 0.525E-12,     0., 0.0);
+{ 38057} GPN5016+HV               =       G1P502E +      GNO2                                   :  0.100E+01*SUN;
+{ 38058} GPN5016+HV               =       G3N2000 +      G3P3000                                :  0.100E+01*SUN;
+{ 38059} GPN5016+HV               =       G3N5011 +      GNO2                                   :  0.100E+01*SUN;
+{ 38060} G2P502g +GNO                =       G1P503H +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 38061} G2P502g +GNO                =       GPN502c                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 38062} G2P502g +GHO2               =       GPH503c                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 38063} G2P502g +GNO3               =       G1P503H +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 38064} G2P502g +MEPERO             =  0.340G1P503H + 0.330GPN502d + 0.330GPN502e                 : ARR( 0.565E-13,  -845., 0.0);
+{ 38065} G2P502g +PERO1              =  0.460G1P503H + 0.270GPN502d + 0.270GPN502e                 : ARR( 0.434E-13,  -900., 0.0);
+{ 38066} G2P502g +PERO2              =  0.400G1P503H + 0.300GPN502d + 0.300GPN502e                 : ARR( 0.162E-13, -1400., 0.0);
+{ 38067} G2P502g +PERO3              =  0.460G1P503H + 0.270GPN502d + 0.270GPN502e                 : ARR( 0.488E-13, -1250., 0.0);
+{ 38068} G2P502g +PERO5              =  0.460G1P503H + 0.270GPN502d + 0.270GPN502e                 : ARR( 0.183E-11,   450., 0.0);
+{ 38069} G2P502g +PERO6              =  0.300G1P503H + 0.350GPN502d + 0.350GPN502e                 : ARR( 0.168E-13, -1300., 0.0);
+{ 38070} G2P502g +PERO9              =  0.650G1P503H + 0.350GPN502e                                : ARR( 0.100E-10,     0., 0.0);
+{ 38071} G1P503H                     =       G3N2000 +      GPD2000 +      GCO                     : ARR( 0.200E+15,  5653., 0.0);
+{ 38072} GPN5017                     =       G3N500r +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 38073} GPN5017 +GHO                =       GPN5029 +      GNO2                                   : ARR( 0.146E-12,     0., 0.0);
+{ 38074} GPN5017 +GHO                =       G2P502h                                               : ARR( 0.172E-12,     0., 0.0);
+{ 38075} GPN5017 +GHO                =       GPN5018 +      GNO2                                   : ARR( 0.438E-13,     0., 0.0);
+{ 38076} GPN5017+HV               =       G1P502G +      GNO2                                   :  0.100E+01*SUN;
+{ 38077} GPN5017+HV               =       G3N3000 +      GPD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 38078} GPN5017+HV               =       G1P500s +      GNO2                                   :  0.100E+01*SUN;
+{ 38079} GPN5017+HV               =       G3N500r +      GNO2                                   :  0.100E+01*SUN;
+{ 38080} G2P502h +GNO                =       G1P503I +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 38081} G2P502h +GNO                =       GPN502Z                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 38082} G2P502h +GHO2               =       GPH503X                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 38083} G2P502h +GNO3               =       G1P503I +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 38084} G2P502h +MEPERO             =  0.340G1P503I + 0.330GPN501P + 0.330GPN502c                 : ARR( 0.565E-13,  -845., 0.0);
+{ 38085} G2P502h +PERO1              =  0.460G1P503I + 0.270GPN501P + 0.270GPN502c                 : ARR( 0.434E-13,  -900., 0.0);
+{ 38086} G2P502h +PERO2              =  0.400G1P503I + 0.300GPN501P + 0.300GPN502c                 : ARR( 0.162E-13, -1400., 0.0);
+{ 38087} G2P502h +PERO3              =  0.460G1P503I + 0.270GPN501P + 0.270GPN502c                 : ARR( 0.488E-13, -1250., 0.0);
+{ 38088} G2P502h +PERO5              =  0.460G1P503I + 0.270GPN501P + 0.270GPN502c                 : ARR( 0.183E-11,   450., 0.0);
+{ 38089} G2P502h +PERO6              =  0.300G1P503I + 0.350GPN501P + 0.350GPN502c                 : ARR( 0.168E-13, -1300., 0.0);
+{ 38090} G2P502h +PERO9              =  0.650G1P503I + 0.350GPN502c                                : ARR( 0.100E-10,     0., 0.0);
+{ 38091} G1P503I                     =       GND2000 +      G3P3001                                : ARR( 0.200E+15,  4121., 0.0);
+{ 38092} GPH5015                     =       G3H501z +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 38093} GPH5015 +GHO                =       GPN5018 +      GHO                                    : ARR( 0.156E-10,     0., 0.0);
+{ 38094} GPH5015 +GHO                =       G2P500p                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 38095} GPH5015+HV               =       G1P503J +      GNO2                                   :  0.100E+01*SUN;
+{ 38096} GPH5015+HV               =       G3N3000 +      GPD2000 +      GHO                     :  0.100E+01*SUN;
+{ 38097} GPH5015+HV               =       G1P500s +      GHO                                    :  0.100E+01*SUN;
+{ 38098} GPH5015+HV               =       G3H501z +      GNO2                                   :  0.100E+01*SUN;
+{ 38099} G1P503J +OXYGEN             =       GPH502c +      GHO2                                   : ARR( 0.600E-13,   398., 0.0);
+{ 38100} G1P503J                     =       GPK500H +      GHO                                    : ARR( 0.800E+11,  3882., 0.0);
+{ 38101} GPN5018                     =       G3N501p +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 38102} GPN5018 +GHO                =       GPD500G +      GNO2                                   : ARR( 0.146E-12,     0., 0.0);
+{ 38103} GPN5018 +GHO                =       G2P502i                                               : ARR( 0.172E-12,     0., 0.0);
+{ 38104} GPN5018+HV               =       G1P502K +      GNO2                                   :  0.100E+01*SUN;
+{ 38105} GPN5018+HV               =       G3N3000 +      GCO     +      GNO2    +      GCO      :  0.100E+01*SUN;
+{ 38106} GPN5018+HV               =       G3N3000 +      GCO     +      GCO     +      GNO2     :  0.100E+01*SUN;
+{ 38107} G2P502i +GNO                =       G1P503K +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 38108} G2P502i +GNO                =       GPN502b                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 38109} G2P502i +GHO2               =       GPH503a                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 38110} G2P502i +GNO3               =       G1P503K +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 38111} G2P502i +MEPERO             =  0.340G1P503K + 0.330GPN501Y + 0.330GPN502e                 : ARR( 0.565E-13,  -845., 0.0);
+{ 38112} G2P502i +PERO1              =  0.460G1P503K + 0.270GPN501Y + 0.270GPN502e                 : ARR( 0.434E-13,  -900., 0.0);
+{ 38113} G2P502i +PERO2              =  0.400G1P503K + 0.300GPN501Y + 0.300GPN502e                 : ARR( 0.162E-13, -1400., 0.0);
+{ 38114} G2P502i +PERO3              =  0.460G1P503K + 0.270GPN501Y + 0.270GPN502e                 : ARR( 0.488E-13, -1250., 0.0);
+{ 38115} G2P502i +PERO5              =  0.460G1P503K + 0.270GPN501Y + 0.270GPN502e                 : ARR( 0.183E-11,   450., 0.0);
+{ 38116} G2P502i +PERO6              =  0.300G1P503K + 0.350GPN501Y + 0.350GPN502e                 : ARR( 0.168E-13, -1300., 0.0);
+{ 38117} G2P502i +PERO9              =  0.650G1P503K + 0.350GPN502e                                : ARR( 0.100E-10,     0., 0.0);
+{ 38118} G1P503K                     =       GND2000 +      GCO     +      GNO2    + 2.000GCO      : ARR( 0.200E+15,  3288., 0.0);
+{ 38119} GHN4011 +GHO                =       GNN400Y +      GHO                                    : ARR( 0.513E-11,     0., 0.0);
+{ 38120} GHN4011 +GHO                =       G2N400m                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 38121} GHN4011+HV               =       G1H400q +      GNO2                                   :  0.100E+01*SUN;
+{ 38122} GHN4011+HV               =       G3N2000 +      GND2000 +      GHO                     :  0.100E+01*SUN;
+{ 38123} GHN4011+HV               =       G1N400q +      GHO                                    :  0.100E+01*SUN;
+{ 38124} GHN4011+HV               =       G1H400v +      GNO2                                   :  0.100E+01*SUN;
+{ 38125} GNN400Y +GHO                =       GND400M +      GNO2                                   : ARR( 0.560E-13,     0., 0.0);
+{ 38126} GNN400Y+HV               =       G1N4015 +      GNO2                                   :  0.200E+01*SUN;
+{ 38127} GNN400Y+HV               =  2.000G3N2000                                               :  0.100E+01*SUN;
+{ 38128} GND501G +GHO                =       G3N501q                                               : ARR( 0.664E-10,     0., 0.0);
+{ 38129} GND501G +GHO                =       G3N501r                                               : ARR( 0.419E-11,     0., 0.0);
+{ 38130} GND501G +GNO3               =       G3N501q +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 38131} GND501G +GNO3               =       G3N501r +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 38132} GND501G+HV               =       GCO     +      G2N4019                                :  0.100E+01*SUN;
+{ 38133} GND501G+HV               =       G3D3000 +      GDD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 38134} GND501G+HV               =       G1D501J +      GNO2                                   :  0.100E+01*SUN;
+{ 38135} GND501G+HV               =       GDD4002 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 38136} G3N501q +GHO2               =  0.800GGN502C + 0.200GAN502Y + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 38137} G3N501q +GNO                =       G2N4019 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 38138} G3N501q +GNO2               =       GPN5021                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 38139} G3N501q +GNO3               =       G2N4019 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 38140} G3N501q +MEPERO             =  0.685G2N4019 + 0.315GAN502Y + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38141} G3N501q +PERO1              =  0.800G2N4019 + 0.200GAN502Y + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38142} G3N501q +PERO2              =  0.750G2N4019 + 0.250GAN502Y + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38143} G3N501q +PERO3              =  0.800G2N4019 + 0.200GAN502Y + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38144} G3N501q +PERO5              =  0.650G2N4019 + 0.350GAN502Y + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38145} G3N501q +PERO6              =  0.650G2N4019 + 0.350GAN502Y + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38146} G3N501q +PERO9              =       G2N4019 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 38147} G3N501r +GHO2               =  0.800GGN501l + 0.200GAN501y + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 38148} G3N501r +GNO                =       GDD4002 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 38149} G3N501r +GNO2               =       GPN5029                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 38150} G3N501r +GNO3               =       GDD4002 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 38151} G3N501r +MEPERO             =  0.685GDD4002 + 0.315GAN501y + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 38152} G3N501r +PERO1              =  0.800GDD4002 + 0.200GAN501y + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 38153} G3N501r +PERO2              =  0.750GDD4002 + 0.250GAN501y + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 38154} G3N501r +PERO3              =  0.800GDD4002 + 0.200GAN501y + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 38155} G3N501r +PERO5              =  0.650GDD4002 + 0.350GAN501y + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 38156} G3N501r +PERO6              =  0.650GDD4002 + 0.350GAN501y + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 38157} G3N501r +PERO9              =       GDD4002 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 38158} G2N4019 +GNO                =       G1N4012 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 38159} G2N4019 +GNO                =       GNN400G                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 38160} G2N4019 +GHO2               =       GHN401A                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 38161} G2N4019 +GNO3               =       G1N4012 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 38162} G2N4019 +MEPERO             =  0.480G1N4012 + 0.260GND400L + 0.260GND400N                 : ARR( 0.164E-12,  -795., 0.0);
+{ 38163} G2N4019 +PERO1              =  0.600G1N4012 + 0.200GND400L + 0.200GND400N                 : ARR( 0.126E-12,  -850., 0.0);
+{ 38164} G2N4019 +PERO2              =  0.560G1N4012 + 0.220GND400L + 0.220GND400N                 : ARR( 0.471E-13, -1350., 0.0);
+{ 38165} G2N4019 +PERO3              =  0.600G1N4012 + 0.200GND400L + 0.200GND400N                 : ARR( 0.142E-12, -1200., 0.0);
+{ 38166} G2N4019 +PERO5              =  0.600G1N4012 + 0.200GND400L + 0.200GND400N                 : ARR( 0.533E-11,   500., 0.0);
+{ 38167} G2N4019 +PERO6              =  0.460G1N4012 + 0.270GND400L + 0.270GND400N                 : ARR( 0.488E-13, -1250., 0.0);
+{ 38168} G2N4019 +PERO9              =  0.800G1N4012 + 0.200GND400N                                : ARR( 0.100E-10,     0., 0.0);
+{ 38169} G1D501J                     =       G3D3000 +      GDD2000                                : ARR( 0.200E+15,  4865., 0.0);
+{ 38170} GHD5016 +GHO                =       G3H502T                                               : ARR( 0.677E-10,     0., 0.0);
+{ 38171} GHD5016 +GHO                =       GDD500A +      GHO                                    : ARR( 0.158E-10,     0., 0.0);
+{ 38172} GHD5016 +GHO                =       G3H502U                                               : ARR( 0.677E-10,     0., 0.0);
+{ 38173} GHD5016 +GNO3               =       G3H502T +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 38174} GHD5016 +GNO3               =       G3H502U +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 38175} GHD5016+HV               =       GCO     +      G2H401H                                :  0.100E+01*SUN;
+{ 38176} GHD5016+HV               =       G3D3000 +      GDD2000 +      GHO                     :  0.100E+01*SUN;
+{ 38177} GHD5016+HV               =       G1D501J +      GHO                                    :  0.100E+01*SUN;
+{ 38178} GHD5016+HV               =       GDD4002 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 38179} G3H502T +GHO2               =  0.800GGH5039 + 0.200GAH503W + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 38180} G3H502T +GNO                =       G2H401H +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 38181} G3H502T +GNO2               =       GPH503b                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 38182} G3H502T +GNO3               =       G2H401H +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 38183} G3H502T +MEPERO             =  0.685G2H401H + 0.315GAH503W + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38184} G3H502T +PERO1              =  0.800G2H401H + 0.200GAH503W + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38185} G3H502T +PERO2              =  0.750G2H401H + 0.250GAH503W + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38186} G3H502T +PERO3              =  0.800G2H401H + 0.200GAH503W + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38187} G3H502T +PERO5              =  0.650G2H401H + 0.350GAH503W + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38188} G3H502T +PERO6              =  0.650G2H401H + 0.350GAH503W + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38189} G3H502T +PERO9              =       G2H401H +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 38190} G3H502U +GHO2               =  0.800GGH502F + 0.200GAH502U + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 38191} G3H502U +GNO                =       GDD4002 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 38192} G3H502U +GNO2               =       GPH502c                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 38193} G3H502U +GNO3               =       GDD4002 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 38194} G3H502U +MEPERO             =  0.685GDD4002 + 0.315GAH502U + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 38195} G3H502U +PERO1              =  0.800GDD4002 + 0.200GAH502U + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 38196} G3H502U +PERO2              =  0.750GDD4002 + 0.250GAH502U + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 38197} G3H502U +PERO3              =  0.800GDD4002 + 0.200GAH502U + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 38198} G3H502U +PERO5              =  0.650GDD4002 + 0.350GAH502U + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 38199} G3H502U +PERO6              =  0.650GDD4002 + 0.350GAH502U + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 38200} G3H502U +PERO9              =       GDD4002 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 38201} G2H401H +GNO                =       G1H400w +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 38202} G2H401H +GNO                =       GHN400R                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 38203} G2H401H +GHO2               =       GHH400b                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 38204} G2H401H +GNO3               =       G1H400w +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 38205} G2H401H +MEPERO             =  0.480G1H400w + 0.260GHD400G + 0.260GHD400K                 : ARR( 0.164E-12,  -795., 0.0);
+{ 38206} G2H401H +PERO1              =  0.600G1H400w + 0.200GHD400G + 0.200GHD400K                 : ARR( 0.126E-12,  -850., 0.0);
+{ 38207} G2H401H +PERO2              =  0.560G1H400w + 0.220GHD400G + 0.220GHD400K                 : ARR( 0.471E-13, -1350., 0.0);
+{ 38208} G2H401H +PERO3              =  0.600G1H400w + 0.200GHD400G + 0.200GHD400K                 : ARR( 0.142E-12, -1200., 0.0);
+{ 38209} G2H401H +PERO5              =  0.600G1H400w + 0.200GHD400G + 0.200GHD400K                 : ARR( 0.533E-11,   500., 0.0);
+{ 38210} G2H401H +PERO6              =  0.460G1H400w + 0.270GHD400G + 0.270GHD400K                 : ARR( 0.488E-13, -1250., 0.0);
+{ 38211} G2H401H +PERO9              =  0.800G1H400w + 0.200GHD400K                                : ARR( 0.100E-10,     0., 0.0);
+{ 38212} GDD500A +GHO                =       G3D500D                                               : ARR( 0.663E-10,     0., 0.0);
+{ 38213} GDD500A +GHO                =       G3D3000 + 2.000GCO                                    : ARR( 0.128E-10,     0., 0.0);
+{ 38214} GDD500A +GNO3               =       G3D500D +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 38215} GDD500A +GNO3               =       G3D3000 +      GHNO3   + 2.000GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 38216} GDD500A+HV               =       GCO     +      G2D400F +      GHO2                    :  0.100E+01*SUN;
+{ 38217} GDD500A+HV               =       G3D3000 +      G3D2000                                :  0.100E+01*SUN;
+{ 38218} GDD500A+HV               =       G3D3000 +      GCO     +      GCO     +      GHO2     :  0.100E+01*SUN;
+{ 38219} GDD500A+HV               =       GDD4002 +      GCO                                    :  0.100E+01*SUN;
+{ 38220} GDD500A+HV               =       GDD3000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 38221} G3D500D +GHO2               =  0.800GGD500G + 0.200GAD500G + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 38222} G3D500D +GNO                =       G2D400F +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 38223} G3D500D +GNO2               =       GPD500F                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 38224} G3D500D +GNO3               =       G2D400F +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 38225} G3D500D +MEPERO             =  0.685G2D400F + 0.315GAD500G + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38226} G3D500D +PERO1              =  0.800G2D400F + 0.200GAD500G + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38227} G3D500D +PERO2              =  0.750G2D400F + 0.250GAD500G + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38228} G3D500D +PERO3              =  0.800G2D400F + 0.200GAD500G + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38229} G3D500D +PERO5              =  0.650G2D400F + 0.350GAD500G + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38230} G3D500D +PERO6              =  0.650G2D400F + 0.350GAD500G + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38231} G3D500D +PERO9              =       G2D400F +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 38232} G2D400F +GNO                =       G1D400N +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 38233} G2D400F +GNO                =       GND400M                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 38234} G2D400F +GHO2               =       GHD400N                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 38235} G2D400F +GNO3               =       G1D400N +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 38236} G2D400F +MEPERO             =  0.480G1D400N + 0.260GDK4009 + 0.260GDD4005                 : ARR( 0.164E-12,  -795., 0.0);
+{ 38237} G2D400F +PERO1              =  0.600G1D400N + 0.200GDK4009 + 0.200GDD4005                 : ARR( 0.126E-12,  -850., 0.0);
+{ 38238} G2D400F +PERO2              =  0.560G1D400N + 0.220GDK4009 + 0.220GDD4005                 : ARR( 0.471E-13, -1350., 0.0);
+{ 38239} G2D400F +PERO3              =  0.600G1D400N + 0.200GDK4009 + 0.200GDD4005                 : ARR( 0.142E-12, -1200., 0.0);
+{ 38240} G2D400F +PERO5              =  0.600G1D400N + 0.200GDK4009 + 0.200GDD4005                 : ARR( 0.533E-11,   500., 0.0);
+{ 38241} G2D400F +PERO6              =  0.460G1D400N + 0.270GDK4009 + 0.270GDD4005                 : ARR( 0.488E-13, -1250., 0.0);
+{ 38242} G2D400F +PERO9              =  0.800G1D400N + 0.200GDD4005                                : ARR( 0.100E-10,     0., 0.0);
+{ 38243} G1D400N                     =       G3D2000 +      GCH2O   +      GCO                     : ARR( 0.200E+15,  3862., 0.0);
+{ 38244} GGN500x +GHO                =       G3N500s                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 38245} GGN500x+HV               =       G1G502L +      GNO2                                   :  0.100E+01*SUN;
+{ 38246} GGN500x+HV               =       G1G500k +      GNO2                                   :  0.100E+01*SUN;
+{ 38247} GGN500x+HV               =       G1G5015 +      GNO2                                   :  0.100E+01*SUN;
+{ 38248} GGN500x+HV               =       GNN4001 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 38249} G1G502L +OXYGEN             =       GGN502D +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 38250} G1G502L                     =       GGN5018 +      GNO2                                   : ARR( 0.800E+11,  4245., 0.0);
+{ 38251} G1G502L                     =       GGN400M +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7547., 0.0);
+{ 38252} GGH500x +GHO                =       GGN500y +      GHO                                    : ARR( 0.846E-11,     0., 0.0);
+{ 38253} GGH500x +GHO                =       G2G500f                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 38254} GGH500x +GHO                =       G3H5016                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 38255} GGH500x+HV               =       G1G502M +      GNO2                                   :  0.100E+01*SUN;
+{ 38256} GGH500x+HV               =       G1G500k +      GHO                                    :  0.100E+01*SUN;
+{ 38257} GGH500x+HV               =       G1G502N +      GNO2                                   :  0.100E+01*SUN;
+{ 38258} GGH500x+HV               =       GHN4001 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 38259} G1G502M +OXYGEN             =       GGH503A +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 38260} G1G502M                     =       GGH5016 +      GNO2                                   : ARR( 0.800E+11,  4245., 0.0);
+{ 38261} G1G502M                     =       GGN400M +      GCH2O   +      GHO                     : ARR( 0.200E+15,  6008., 0.0);
+{ 38262} G1G502N                     =       GHN4001 +      GCO     +      GHO2                    : ARR( 0.200E+15,  4949., 0.0);
+{ 38263} GGN500y +GHO                =       GGN5013 +      GNO2                                   : ARR( 0.240E-12,     0., 0.0);
+{ 38264} GGN500y +GHO                =       G3N500t                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 38265} GGN500y+HV               =       G1G502O +      GNO2                                   :  0.100E+01*SUN;
+{ 38266} GGN500y+HV               =       G3N2000 +      G2G3003                                :  0.100E+01*SUN;
+{ 38267} GGN500y+HV               =       G1G501C +      GNO2                                   :  0.100E+01*SUN;
+{ 38268} GGN500y+HV               =       GND4004 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 38269} G1G502O                     =       G3G4005 +      GCH2O                                  : ARR( 0.200E+15,  3576., 0.0);
+{ 38270} G3G4005 +GHO2               =  0.800GGG4002 + 0.200GAG4001 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 38271} G3G4005 +GNO                =       G2G3003 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 38272} G3G4005 +GNO2               =       GPG4001                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 38273} G3G4005 +GNO3               =       G2G3003 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 38274} G3G4005 +MEPERO             =  0.685G2G3003 + 0.315GAG4001 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38275} G3G4005 +PERO1              =  0.800G2G3003 + 0.200GAG4001 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38276} G3G4005 +PERO2              =  0.750G2G3003 + 0.250GAG4001 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38277} G3G4005 +PERO3              =  0.800G2G3003 + 0.200GAG4001 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38278} G3G4005 +PERO5              =  0.650G2G3003 + 0.350GAG4001 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38279} G3G4005 +PERO6              =  0.650G2G3003 + 0.350GAG4001 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38280} G3G4005 +PERO9              =       G2G3003 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 38281} GGN500z +GHO                =       G3N500o                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 38282} GGN500z+HV               =       G1G502P +      GNO2                                   :  0.100E+01*SUN;
+{ 38283} GGN500z+HV               =       G1G500l +      GNO2                                   :  0.100E+01*SUN;
+{ 38284} GGN500z+HV               =       G1G502Q +      GNO2                                   :  0.100E+01*SUN;
+{ 38285} GGN500z+HV               =       GNN4008 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 38286} G1G502P +OXYGEN             =       GGN5022 +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{ 38287} G1G502P                     =       GGN500p +      GNO2                                   : ARR( 0.800E+11,  4964., 0.0);
+{ 38288} G1G502Q                     =       GNN4008 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 38289} GGH500y +GHO                =       GGN500v +      GHO                                    : ARR( 0.846E-11,     0., 0.0);
+{ 38290} GGH500y +GHO                =       G2G500g                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 38291} GGH500y +GHO                =       G3H501u                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 38292} GGH500y+HV               =       G1G502R +      GNO2                                   :  0.100E+01*SUN;
+{ 38293} GGH500y+HV               =       G1G500l +      GHO                                    :  0.100E+01*SUN;
+{ 38294} GGH500y+HV               =       G1G502S +      GNO2                                   :  0.100E+01*SUN;
+{ 38295} GGH500y+HV               =       GHN400J +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 38296} G1G502R +OXYGEN             =       GGH502v +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{ 38297} G1G502R                     =       GGH500r +      GNO2                                   : ARR( 0.800E+11,  4245., 0.0);
+{ 38298} G1G502S                     =       GHN400J +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 38299} GGN5011 +GHO                =       G3G500D                                               : ARR( 0.223E-10,     0., 0.0);
+{ 38300} GGN5011 +GHO                =       G3N500l                                               : ARR( 0.204E-11,  -190., 0.0);
+{ 38301} GGN5011 +GNO3               =       G3G500D +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 38302} GGN5011+HV               =       GDD4000 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 38303} GGN5011+HV               =       G1G502T +      GNO2                                   :  0.100E+01*SUN;
+{ 38304} GGN5011+HV               =       G2G400X +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 38305} GGN5011+HV               =       G2G3005 +      GD02000 +      GNO2                    :  0.100E+01*SUN;
+{ 38306} G3G500D +GHO2               =  0.800GGG5008 + 0.200GAG500H + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 38307} G3G500D +GNO                =       G2G400X +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 38308} G3G500D +GNO2               =       GPG500F                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 38309} G3G500D +GNO3               =       G2G400X +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 38310} G3G500D +MEPERO             =  0.685G2G400X + 0.315GAG500H + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38311} G3G500D +PERO1              =  0.800G2G400X + 0.200GAG500H + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38312} G3G500D +PERO2              =  0.750G2G400X + 0.250GAG500H + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38313} G3G500D +PERO3              =  0.800G2G400X + 0.200GAG500H + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38314} G3G500D +PERO5              =  0.650G2G400X + 0.350GAG500H + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38315} G3G500D +PERO6              =  0.650G2G400X + 0.350GAG500H + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38316} G3G500D +PERO9              =       G2G400X +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 38317} G1G502T                     =       GCO     +      GDD4000 +      GHO2                    : ARR( 0.200E+15,  4949., 0.0);
+{ 38318} G2G400X +GNO                =       G1G400G +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 38319} G2G400X +GNO                =       GGN4006                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 38320} G2G400X +GHO2               =       GGH400S                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 38321} G2G400X +GNO3               =       G1G400G +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 38322} G2G400X +MEPERO             =  0.480G1G400G + 0.260GGN400E + 0.260GGN400M                 : ARR( 0.146E-12,  -445., 0.0);
+{ 38323} G2G400X +PERO1              =  0.600G1G400G + 0.200GGN400E + 0.200GGN400M                 : ARR( 0.112E-12,  -500., 0.0);
+{ 38324} G2G400X +PERO2              =  0.560G1G400G + 0.220GGN400E + 0.220GGN400M                 : ARR( 0.418E-13, -1000., 0.0);
+{ 38325} G2G400X +PERO3              =  0.600G1G400G + 0.200GGN400E + 0.200GGN400M                 : ARR( 0.126E-12,  -850., 0.0);
+{ 38326} G2G400X +PERO5              =  0.600G1G400G + 0.200GGN400E + 0.200GGN400M                 : ARR( 0.473E-11,   850., 0.0);
+{ 38327} G2G400X +PERO6              =  0.460G1G400G + 0.270GGN400E + 0.270GGN400M                 : ARR( 0.434E-13,  -900., 0.0);
+{ 38328} G2G400X +PERO9              =  0.800G1G400G + 0.200GGN400M                                : ARR( 0.100E-10,     0., 0.0);
+{ 38329} GGH500z +GHO                =       GGN500j +      GHO                                    : ARR( 0.416E-10,     0., 0.0);
+{ 38330} GGH500z +GHO                =       GGH5012 +      GHO2                                   : ARR( 0.634E-11,     0., 0.0);
+{ 38331} GGH500z +GHO                =       G2G500h                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 38332} GGH500z +GHO                =       G3H501U                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 38333} GGH500z+HV               =       G1G501w +      GNO2                                   :  0.100E+01*SUN;
+{ 38334} GGH500z+HV               =       G1G500o +      GHO                                    :  0.100E+01*SUN;
+{ 38335} GGH500z+HV               =       GHN400J +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 38336} GGN5012 +GHO                =       G3N501s                                               : ARR( 0.204E-11,  -190., 0.0);
+{ 38337} GGN5012+HV               =       G1G502U +      GNO2                                   :  0.100E+01*SUN;
+{ 38338} GGN5012+HV               =       G1G500q +      GNO2                                   :  0.100E+01*SUN;
+{ 38339} GGN5012+HV               =       GAN4007 +      GCO2                                   :  0.100E+01*SUN;
+{ 38340} G3N501s +GHO2               =  0.800GGN5012 + 0.200GAN5017 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 38341} G3N501s +GNO                =       G3N4006 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 38342} G3N501s +GNO2               =       GPN501C                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 38343} G3N501s +GNO3               =       G3N4006 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 38344} G3N501s +MEPERO             =  0.685G3N4006 + 0.315GAN5017 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38345} G3N501s +PERO1              =  0.800G3N4006 + 0.200GAN5017 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38346} G3N501s +PERO2              =  0.750G3N4006 + 0.250GAN5017 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38347} G3N501s +PERO3              =  0.800G3N4006 + 0.200GAN5017 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38348} G3N501s +PERO5              =  0.650G3N4006 + 0.350GAN5017 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38349} G3N501s +PERO6              =  0.650G3N4006 + 0.350GAN5017 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38350} G3N501s +PERO9              =       G3N4006 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 38351} G1G502U +OXYGEN             =       GGN502E +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 38352} G1G502U                     =       GGD4005 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7175., 0.0);
+{ 38353} GGH5011 +GHO                =       GGN5013 +      GHO                                    : ARR( 0.268E-10,     0., 0.0);
+{ 38354} GGH5011 +GHO                =       G2G500i                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 38355} GGH5011 +GHO                =       G3H502W                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 38356} GGH5011+HV               =       G1G502W +      GNO2                                   :  0.100E+01*SUN;
+{ 38357} GGH5011+HV               =       G1G500q +      GHO                                    :  0.100E+01*SUN;
+{ 38358} GGH5011+HV               =       GAH4003 +      GCO2                                   :  0.100E+01*SUN;
+{ 38359} G3H502W +GHO2               =  0.800GGH5011 + 0.200GAH501A + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 38360} G3H502W +GNO                =       G3H4002 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 38361} G3H502W +GNO2               =       GPH501E                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 38362} G3H502W +GNO3               =       G3H4002 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 38363} G3H502W +MEPERO             =  0.685G3H4002 + 0.315GAH501A + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38364} G3H502W +PERO1              =  0.800G3H4002 + 0.200GAH501A + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38365} G3H502W +PERO2              =  0.750G3H4002 + 0.250GAH501A + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38366} G3H502W +PERO3              =  0.800G3H4002 + 0.200GAH501A + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38367} G3H502W +PERO5              =  0.650G3H4002 + 0.350GAH501A + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38368} G3H502W +PERO6              =  0.650G3H4002 + 0.350GAH501A + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38369} G3H502W +PERO9              =       G3H4002 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 38370} G1G502W +OXYGEN             =       GGH503B +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 38371} G1G502W                     =       GGD4005 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5636., 0.0);
+{ 38372} GGN5013 +GHO                =       G2G501t                                               : ARR( 0.529E-12,     0., 0.0);
+{ 38373} GGN5013 +GHO                =       G3N501t                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 38374} GGN5013+HV               =       G1G502X +      GNO2                                   :  0.100E+01*SUN;
+{ 38375} GGN5013+HV               =       G3N2000 +      G2G3005                                :  0.100E+01*SUN;
+{ 38376} GGN5013+HV               =       GAN4008 +      GCO2                                   :  0.100E+01*SUN;
+{ 38377} G2G501t +GNO                =       G1G502Y +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 38378} G2G501t +GNO                =       GGN502F                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 38379} G2G501t +GHO2               =       GGH503C                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 38380} G2G501t +GNO3               =       G1G502Y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 38381} G2G501t +MEPERO             =  0.340G1G502Y + 0.330GGN5028 + 0.330GGN502G                 : ARR( 0.565E-13,  -845., 0.0);
+{ 38382} G2G501t +PERO1              =  0.460G1G502Y + 0.270GGN5028 + 0.270GGN502G                 : ARR( 0.434E-13,  -900., 0.0);
+{ 38383} G2G501t +PERO2              =  0.400G1G502Y + 0.300GGN5028 + 0.300GGN502G                 : ARR( 0.162E-13, -1400., 0.0);
+{ 38384} G2G501t +PERO3              =  0.460G1G502Y + 0.270GGN5028 + 0.270GGN502G                 : ARR( 0.488E-13, -1250., 0.0);
+{ 38385} G2G501t +PERO5              =  0.460G1G502Y + 0.270GGN5028 + 0.270GGN502G                 : ARR( 0.183E-11,   450., 0.0);
+{ 38386} G2G501t +PERO6              =  0.300G1G502Y + 0.350GGN5028 + 0.350GGN502G                 : ARR( 0.168E-13, -1300., 0.0);
+{ 38387} G2G501t +PERO9              =  0.650G1G502Y + 0.350GGN502G                                : ARR( 0.100E-10,     0., 0.0);
+{ 38388} G3N501t +GHO2               =  0.800GGN5013 + 0.200GAN5018 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 38389} G3N501t +GNO                =       G3N4007 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 38390} G3N501t +GNO2               =       GPN501K                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 38391} G3N501t +GNO3               =       G3N4007 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 38392} G3N501t +MEPERO             =  0.685G3N4007 + 0.315GAN5018 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38393} G3N501t +PERO1              =  0.800G3N4007 + 0.200GAN5018 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38394} G3N501t +PERO2              =  0.750G3N4007 + 0.250GAN5018 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38395} G3N501t +PERO3              =  0.800G3N4007 + 0.200GAN5018 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38396} G3N501t +PERO5              =  0.650G3N4007 + 0.350GAN5018 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38397} G3N501t +PERO6              =  0.650G3N4007 + 0.350GAN5018 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38398} G3N501t +PERO9              =       G3N4007 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 38399} G1G502X                     =       G3G4006 +      GCH2O                                  : ARR( 0.200E+15,  3552., 0.0);
+{ 38400} G1G502Y                     =       G3N2000 +      GGD3002                                : ARR( 0.200E+15,  4504., 0.0);
+{ 38401} G1G502Y                     =       GND3003 +      GCO     +      GHO2    +      GCO      : ARR( 0.200E+15,  4856., 0.0);
+{ 38402} G3G4006 +GHO2               =  0.800GGG4004 + 0.200GAG4009 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 38403} G3G4006 +GNO                =       G2G3005 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 38404} G3G4006 +GNO2               =       GPG400A                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 38405} G3G4006 +GNO3               =       G2G3005 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 38406} G3G4006 +MEPERO             =  0.685G2G3005 + 0.315GAG4009 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38407} G3G4006 +PERO1              =  0.800G2G3005 + 0.200GAG4009 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38408} G3G4006 +PERO2              =  0.750G2G3005 + 0.250GAG4009 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38409} G3G4006 +PERO3              =  0.800G2G3005 + 0.200GAG4009 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38410} G3G4006 +PERO5              =  0.650G2G3005 + 0.350GAG4009 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38411} G3G4006 +PERO6              =  0.650G2G3005 + 0.350GAG4009 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38412} G3G4006 +PERO9              =       G2G3005 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 38413} GGN5014 +GHO                =       G3N501g                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 38414} GGN5014+HV               =       G1G502Z +      GNO2                                   :  0.100E+01*SUN;
+{ 38415} GGN5014+HV               =       G1G500r +      GNO2                                   :  0.100E+01*SUN;
+{ 38416} GGN5014+HV               =       GAN4006 +      GCO2                                   :  0.100E+01*SUN;
+{ 38417} G1G502Z +OXYGEN             =       GGN5023 +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{ 38418} GGH5012 +GHO                =       GGN500w +      GHO                                    : ARR( 0.259E-10,     0., 0.0);
+{ 38419} GGH5012 +GHO                =       G2G500j                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 38420} GGH5012 +GHO                =       G3H502X                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 38421} GGH5012+HV               =       G1G502a +      GNO2                                   :  0.100E+01*SUN;
+{ 38422} GGH5012+HV               =       G1G500r +      GHO                                    :  0.100E+01*SUN;
+{ 38423} GGH5012+HV               =       GAH4002 +      GCO2                                   :  0.100E+01*SUN;
+{ 38424} G3H502X +GHO2               =  0.800GGH5012 + 0.200GAH5019 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 38425} G3H502X +GNO                =       G3H400D +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 38426} G3H502X +GNO2               =       GPH501O                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 38427} G3H502X +GNO3               =       G3H400D +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 38428} G3H502X +MEPERO             =  0.685G3H400D + 0.315GAH5019 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38429} G3H502X +PERO1              =  0.800G3H400D + 0.200GAH5019 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38430} G3H502X +PERO2              =  0.750G3H400D + 0.250GAH5019 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38431} G3H502X +PERO3              =  0.800G3H400D + 0.200GAH5019 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38432} G3H502X +PERO5              =  0.650G3H400D + 0.350GAH5019 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38433} G3H502X +PERO6              =  0.650G3H400D + 0.350GAH5019 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38434} G3H502X +PERO9              =       G3H400D +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 38435} G1G502a +OXYGEN             =       GGH502z +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{ 38436} GGD5008 +GHO                =       G2G501u                                               : ARR( 0.273E-11,     0., 0.0);
+{ 38437} GGD5008 +GHO                =       G2G501v                                               : ARR( 0.273E-11,     0., 0.0);
+{ 38438} GGD5008 +GHO                =       G3G500E                                               : ARR( 0.208E-10,     0., 0.0);
+{ 38439} GGD5008 +GHO                =       G3D500E                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 38440} GGD5008 +GNO3               =       G3G500E +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 38441} GGD5008+HV               =       GAD4000 +      GCO2                                   :  0.100E+01*SUN;
+{ 38442} GGD5008+HV               =       G2G400H +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 38443} G2G501u +GNO                =       G1G502b +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 38444} G2G501u +GNO                =       GGN5023                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 38445} G2G501u +GHO2               =       GGH502z                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 38446} G2G501u +GNO3               =       G1G502b +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 38447} G2G501u +MEPERO             =  0.340G1G502b + 0.330GGD500E + 0.330GGD500F                 : ARR( 0.565E-13,  -845., 0.0);
+{ 38448} G2G501u +PERO1              =  0.460G1G502b + 0.270GGD500E + 0.270GGD500F                 : ARR( 0.434E-13,  -900., 0.0);
+{ 38449} G2G501u +PERO2              =  0.400G1G502b + 0.300GGD500E + 0.300GGD500F                 : ARR( 0.162E-13, -1400., 0.0);
+{ 38450} G2G501u +PERO3              =  0.460G1G502b + 0.270GGD500E + 0.270GGD500F                 : ARR( 0.488E-13, -1250., 0.0);
+{ 38451} G2G501u +PERO5              =  0.460G1G502b + 0.270GGD500E + 0.270GGD500F                 : ARR( 0.183E-11,   450., 0.0);
+{ 38452} G2G501u +PERO6              =  0.300G1G502b + 0.350GGD500E + 0.350GGD500F                 : ARR( 0.168E-13, -1300., 0.0);
+{ 38453} G2G501u +PERO9              =  0.650G1G502b + 0.350GGD500F                                : ARR( 0.100E-10,     0., 0.0);
+{ 38454} G2G501v +GNO                =       G1G502c +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 38455} G2G501v +GNO                =       GGN502E                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 38456} G2G501v +GHO2               =       GGH503B                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 38457} G2G501v +GNO3               =       G1G502c +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 38458} G2G501v +MEPERO             =  0.340G1G502c + 0.330GGD500B + 0.330GGD500J                 : ARR( 0.565E-13,  -845., 0.0);
+{ 38459} G2G501v +PERO1              =  0.460G1G502c + 0.270GGD500B + 0.270GGD500J                 : ARR( 0.434E-13,  -900., 0.0);
+{ 38460} G2G501v +PERO2              =  0.400G1G502c + 0.300GGD500B + 0.300GGD500J                 : ARR( 0.162E-13, -1400., 0.0);
+{ 38461} G2G501v +PERO3              =  0.460G1G502c + 0.270GGD500B + 0.270GGD500J                 : ARR( 0.488E-13, -1250., 0.0);
+{ 38462} G2G501v +PERO5              =  0.460G1G502c + 0.270GGD500B + 0.270GGD500J                 : ARR( 0.183E-11,   450., 0.0);
+{ 38463} G2G501v +PERO6              =  0.300G1G502c + 0.350GGD500B + 0.350GGD500J                 : ARR( 0.168E-13, -1300., 0.0);
+{ 38464} G2G501v +PERO9              =  0.650G1G502c + 0.350GGD500J                                : ARR( 0.100E-10,     0., 0.0);
+{ 38465} G3G500E +GHO2               =  0.800GGG5009 + 0.200GAG500I + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 38466} G3G500E +GNO                =       G2G400H +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 38467} G3G500E +GNO2               =       GPG500G                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 38468} G3G500E +GNO3               =       G2G400H +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 38469} G3G500E +MEPERO             =  0.685G2G400H + 0.315GAG500I + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38470} G3G500E +PERO1              =  0.800G2G400H + 0.200GAG500I + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38471} G3G500E +PERO2              =  0.750G2G400H + 0.250GAG500I + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38472} G3G500E +PERO3              =  0.800G2G400H + 0.200GAG500I + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38473} G3G500E +PERO5              =  0.650G2G400H + 0.350GAG500I + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38474} G3G500E +PERO6              =  0.650G2G400H + 0.350GAG500I + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38475} G3G500E +PERO9              =       G2G400H +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 38476} G3D500E +GHO2               =  0.800GGD5008 + 0.200GAD500A + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 38477} G3D500E +GNO                =       G3D4000 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 38478} G3D500E +GNO2               =       GPD5008                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 38479} G3D500E +GNO3               =       G3D4000 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 38480} G3D500E +MEPERO             =  0.685G3D4000 + 0.315GAD500A + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38481} G3D500E +PERO1              =  0.800G3D4000 + 0.200GAD500A + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38482} G3D500E +PERO2              =  0.750G3D4000 + 0.250GAD500A + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38483} G3D500E +PERO3              =  0.800G3D4000 + 0.200GAD500A + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38484} G3D500E +PERO5              =  0.650G3D4000 + 0.350GAD500A + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38485} G3D500E +PERO6              =  0.650G3D4000 + 0.350GAD500A + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38486} G3D500E +PERO9              =       G3D4000 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 38487} G1G502b                     =       GCO     +      GDD3000 +      GHO2    +      GCO      : ARR( 0.200E+15,  2628., 0.0);
+{ 38488} G1G502c                     =       GGD4005 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5054., 0.0);
+{ 38489} GGN5015 +GHO                =       GGN502D +      GHO2                                   : ARR( 0.875E-12,     0., 0.0);
+{ 38490} GGN5015 +GHO                =       G3N500m                                               : ARR( 0.207E-11,  -190., 0.0);
+{ 38491} GGN5015+HV               =       G1G500s +      GNO2                                   :  0.100E+01*SUN;
+{ 38492} GGN5015+HV               =       G1G5016 +      GNO2                                   :  0.100E+01*SUN;
+{ 38493} GGN5015+HV               =       GND4002 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 38494} GGH5013 +GHO                =       GGH503A +      GHO2                                   : ARR( 0.406E-11,     0., 0.0);
+{ 38495} GGH5013 +GHO                =       GGN5016 +      GHO                                    : ARR( 0.416E-10,     0., 0.0);
+{ 38496} GGH5013 +GHO                =       G2G500k                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 38497} GGH5013 +GHO                =       G3H500j                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 38498} GGH5013+HV               =       G1G500s +      GHO                                    :  0.100E+01*SUN;
+{ 38499} GGH5013+HV               =       G1G5019 +      GNO2                                   :  0.100E+01*SUN;
+{ 38500} GGH5013+HV               =       GHD4000 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 38501} GGN5016 +GHO                =       GGN501v +      GHO2                                   : ARR( 0.267E-11,     0., 0.0);
+{ 38502} GGN5016 +GHO                =       G3N500n                                               : ARR( 0.207E-11,  -190., 0.0);
+{ 38503} GGN5016+HV               =       G3K2001 +      G2G3003                                :  0.100E+01*SUN;
+{ 38504} GGN5016+HV               =       G1G501T +      GNO2                                   :  0.100E+01*SUN;
+{ 38505} GGN5016+HV               =       GDK4001 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 38506} GGN400M +GHO                =       G3G4005                                               : ARR( 0.211E-10,     0., 0.0);
+{ 38507} GGN400M +GHO                =       G3N400I                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 38508} GGN400M +GNO3               =       G3G4005 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 38509} GGN400M+HV               =       GDD3000 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 38510} GGN400M+HV               =       G1G400O +      GNO2                                   :  0.100E+01*SUN;
+{ 38511} GGN400M+HV               =       G2G3003 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 38512} GGH5014 +GHO                =       GGD5008 +      GHO                                    : ARR( 0.255E-10,     0., 0.0);
+{ 38513} GGH5014 +GHO                =       G2G501w                                               : ARR( 0.455E-11,     0., 0.0);
+{ 38514} GGH5014 +GHO                =       G3G500F                                               : ARR( 0.211E-10,     0., 0.0);
+{ 38515} GGH5014 +GHO                =       G3H500l                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 38516} GGH5014 +GHO                =       G2G501x                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 38517} GGH5014 +GNO3               =       G3G500F +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 38518} GGH5014+HV               =       GDD4000 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 38519} GGH5014+HV               =       G1G502T +      GHO                                    :  0.100E+01*SUN;
+{ 38520} GGH5014+HV               =       G2G400Y +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 38521} GGH5014+HV               =       G2G3005 +      GD02000 +      GHO                     :  0.100E+01*SUN;
+{ 38522} G2G501w +GNO                =       G1G502d +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 38523} G2G501w +GNO                =       GGH502t                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 38524} G2G501w +GHO2               =       GGH503D                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 38525} G2G501w +GNO3               =       G1G502d +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 38526} G2G501w +MEPERO             =  0.340G1G502d + 0.330GGH5038 + 0.330GGH502F                 : ARR( 0.565E-13,  -845., 0.0);
+{ 38527} G2G501w +PERO1              =  0.460G1G502d + 0.270GGH5038 + 0.270GGH502F                 : ARR( 0.434E-13,  -900., 0.0);
+{ 38528} G2G501w +PERO2              =  0.400G1G502d + 0.300GGH5038 + 0.300GGH502F                 : ARR( 0.162E-13, -1400., 0.0);
+{ 38529} G2G501w +PERO3              =  0.460G1G502d + 0.270GGH5038 + 0.270GGH502F                 : ARR( 0.488E-13, -1250., 0.0);
+{ 38530} G2G501w +PERO5              =  0.460G1G502d + 0.270GGH5038 + 0.270GGH502F                 : ARR( 0.183E-11,   450., 0.0);
+{ 38531} G2G501w +PERO6              =  0.300G1G502d + 0.350GGH5038 + 0.350GGH502F                 : ARR( 0.168E-13, -1300., 0.0);
+{ 38532} G2G501w +PERO9              =  0.650G1G502d + 0.350GGH502F                                : ARR( 0.100E-10,     0., 0.0);
+{ 38533} G3G500F +GHO2               =  0.800GGG500A + 0.200GAG500J + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 38534} G3G500F +GNO                =       G2G400Y +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 38535} G3G500F +GNO2               =       GPG500H                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 38536} G3G500F +GNO3               =       G2G400Y +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 38537} G3G500F +MEPERO             =  0.685G2G400Y + 0.315GAG500J + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38538} G3G500F +PERO1              =  0.800G2G400Y + 0.200GAG500J + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38539} G3G500F +PERO2              =  0.750G2G400Y + 0.250GAG500J + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38540} G3G500F +PERO3              =  0.800G2G400Y + 0.200GAG500J + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38541} G3G500F +PERO5              =  0.650G2G400Y + 0.350GAG500J + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38542} G3G500F +PERO6              =  0.650G2G400Y + 0.350GAG500J + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38543} G3G500F +PERO9              =       G2G400Y +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 38544} G2G501x +GNO                =       G1G502T +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 38545} G2G501x +GNO                =       GGN5011                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 38546} G2G501x +GHO2               =       GGH5014                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 38547} G2G501x +GNO3               =       G1G502T +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 38548} G2G501x +MEPERO             =  0.340G1G502T + 0.330GGD5000 + 0.330GGD5008                 : ARR( 0.565E-13,  -845., 0.0);
+{ 38549} G2G501x +PERO1              =  0.460G1G502T + 0.270GGD5000 + 0.270GGD5008                 : ARR( 0.434E-13,  -900., 0.0);
+{ 38550} G2G501x +PERO2              =  0.400G1G502T + 0.300GGD5000 + 0.300GGD5008                 : ARR( 0.162E-13, -1400., 0.0);
+{ 38551} G2G501x +PERO3              =  0.460G1G502T + 0.270GGD5000 + 0.270GGD5008                 : ARR( 0.488E-13, -1250., 0.0);
+{ 38552} G2G501x +PERO5              =  0.460G1G502T + 0.270GGD5000 + 0.270GGD5008                 : ARR( 0.183E-11,   450., 0.0);
+{ 38553} G2G501x +PERO6              =  0.300G1G502T + 0.350GGD5000 + 0.350GGD5008                 : ARR( 0.168E-13, -1300., 0.0);
+{ 38554} G2G501x +PERO9              =  0.650G1G502T + 0.350GGD5008                                : ARR( 0.100E-10,     0., 0.0);
+{ 38555} G2G400Y +GNO                =       G1G400M +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 38556} G2G400Y +GNO                =       GGH4003                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 38557} G2G400Y +GHO2               =       GGH400b                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 38558} G2G400Y +GNO3               =       G1G400M +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 38559} G2G400Y +MEPERO             =  0.480G1G400M + 0.260GGH4007 + 0.260GGH400R                 : ARR( 0.146E-12,  -445., 0.0);
+{ 38560} G2G400Y +PERO1              =  0.600G1G400M + 0.200GGH4007 + 0.200GGH400R                 : ARR( 0.112E-12,  -500., 0.0);
+{ 38561} G2G400Y +PERO2              =  0.560G1G400M + 0.220GGH4007 + 0.220GGH400R                 : ARR( 0.418E-13, -1000., 0.0);
+{ 38562} G2G400Y +PERO3              =  0.600G1G400M + 0.200GGH4007 + 0.200GGH400R                 : ARR( 0.126E-12,  -850., 0.0);
+{ 38563} G2G400Y +PERO5              =  0.600G1G400M + 0.200GGH4007 + 0.200GGH400R                 : ARR( 0.473E-11,   850., 0.0);
+{ 38564} G2G400Y +PERO6              =  0.460G1G400M + 0.270GGH4007 + 0.270GGH400R                 : ARR( 0.434E-13,  -900., 0.0);
+{ 38565} G2G400Y +PERO9              =  0.800G1G400M + 0.200GGH400R                                : ARR( 0.100E-10,     0., 0.0);
+{ 38566} G1G502d                     =       GGD2000 +      GDD3000 +      GHO                     : ARR( 0.200E+15,  4500., 0.0);
+{ 38567} GGN5017 +GHO                =       GGN501J +      GHO2                                   : ARR( 0.855E-12,     0., 0.0);
+{ 38568} GGN5017 +GHO                =       GGN5018 +      GHO2                                   : ARR( 0.668E-11,     0., 0.0);
+{ 38569} GGN5017 +GHO                =       G3N5012                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 38570} GGN5017+HV               =       G1G500t +      GNO2                                   :  0.100E+01*SUN;
+{ 38571} GGN5017+HV               =       GND4002 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 38572} GGH5015 +GHO                =       GGH501L +      GHO2                                   : ARR( 0.414E-11,     0., 0.0);
+{ 38573} GGH5015 +GHO                =       GGK500L +      GHO                                    : ARR( 0.424E-10,     0., 0.0);
+{ 38574} GGH5015 +GHO                =       GGH5016 +      GHO2                                   : ARR( 0.646E-11,     0., 0.0);
+{ 38575} GGH5015 +GHO                =       G2G500l                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 38576} GGH5015 +GHO                =       G3H5013                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 38577} GGH5015+HV               =       G1G500t +      GHO                                    :  0.100E+01*SUN;
+{ 38578} GGH5015+HV               =       GHD4000 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 38579} GGN5018 +GHO                =       GGN502E +      GHO2                                   : ARR( 0.857E-12,     0., 0.0);
+{ 38580} GGN5018 +GHO                =       GGK500O +      GNO2                                   : ARR( 0.398E-12,     0., 0.0);
+{ 38581} GGN5018 +GHO                =       G3N501u                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 38582} GGN5018+HV               =       G1G500v +      GNO2                                   :  0.100E+01*SUN;
+{ 38583} GGN5018+HV               =       GAN4003 +      GCO2                                   :  0.100E+01*SUN;
+{ 38584} G3N501u +GHO2               =  0.800GGN5018 + 0.200GAN501D + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 38585} G3N501u +GNO                =       G3N4003 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 38586} G3N501u +GNO2               =       GPN501F                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 38587} G3N501u +GNO3               =       G3N4003 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 38588} G3N501u +MEPERO             =  0.685G3N4003 + 0.315GAN501D + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38589} G3N501u +PERO1              =  0.800G3N4003 + 0.200GAN501D + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38590} G3N501u +PERO2              =  0.750G3N4003 + 0.250GAN501D + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38591} G3N501u +PERO3              =  0.800G3N4003 + 0.200GAN501D + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38592} G3N501u +PERO5              =  0.650G3N4003 + 0.350GAN501D + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38593} G3N501u +PERO6              =  0.650G3N4003 + 0.350GAN501D + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38594} G3N501u +PERO9              =       G3N4003 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 38595} GGH5016 +GHO                =       GGK500O +      GHO                                    : ARR( 0.143E-09,     0., 0.0);
+{ 38596} GGH5016+HV               =       G1G500v +      GHO                                    :  0.100E+01*SUN;
+{ 38597} GGH5016+HV               =       GAH4007 +      GCO2                                   :  0.100E+01*SUN;
+{ 38598} GGK500O +GHO                =       GGD500J +      GHO2                                   : ARR( 0.250E-11,     0., 0.0);
+{ 38599} GGK500O +GHO                =       G2G501y                                               : ARR( 0.537E-12,     0., 0.0);
+{ 38600} GGK500O +GHO                =       G3K500j                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 38601} GGK500O+HV               =       G3K2001 +      G2G3005                                :  0.100E+01*SUN;
+{ 38602} GGK500O+HV               =       GAK4003 +      GCO2                                   :  0.100E+01*SUN;
+{ 38603} G2G501y +GNO                =       G1G502e +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 38604} G2G501y +GNO                =       GGN502H                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 38605} G2G501y +GHO2               =       GGH5033                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 38606} G2G501y +GNO3               =       G1G502e +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 38607} G2G501y +MEPERO             =  0.340G1G502e + 0.330GGK500X + 0.330GGK500c                 : ARR( 0.565E-13,  -845., 0.0);
+{ 38608} G2G501y +PERO1              =  0.460G1G502e + 0.270GGK500X + 0.270GGK500c                 : ARR( 0.434E-13,  -900., 0.0);
+{ 38609} G2G501y +PERO2              =  0.400G1G502e + 0.300GGK500X + 0.300GGK500c                 : ARR( 0.162E-13, -1400., 0.0);
+{ 38610} G2G501y +PERO3              =  0.460G1G502e + 0.270GGK500X + 0.270GGK500c                 : ARR( 0.488E-13, -1250., 0.0);
+{ 38611} G2G501y +PERO5              =  0.460G1G502e + 0.270GGK500X + 0.270GGK500c                 : ARR( 0.183E-11,   450., 0.0);
+{ 38612} G2G501y +PERO6              =  0.300G1G502e + 0.350GGK500X + 0.350GGK500c                 : ARR( 0.168E-13, -1300., 0.0);
+{ 38613} G2G501y +PERO9              =  0.650G1G502e + 0.350GGK500c                                : ARR( 0.100E-10,     0., 0.0);
+{ 38614} G3K500j +GHO2               =  0.800GGK500O + 0.200GAK500O + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 38615} G3K500j +GNO                =       G3K4007 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 38616} G3K500j +GNO2               =       GPK500O                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 38617} G3K500j +GNO3               =       G3K4007 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 38618} G3K500j +MEPERO             =  0.685G3K4007 + 0.315GAK500O + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38619} G3K500j +PERO1              =  0.800G3K4007 + 0.200GAK500O + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38620} G3K500j +PERO2              =  0.750G3K4007 + 0.250GAK500O + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38621} G3K500j +PERO3              =  0.800G3K4007 + 0.200GAK500O + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38622} G3K500j +PERO5              =  0.650G3K4007 + 0.350GAK500O + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38623} G3K500j +PERO6              =  0.650G3K4007 + 0.350GAK500O + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38624} G3K500j +PERO9              =       G3K4007 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 38625} G1G502e                     =       G3K2001 +      GGD3002                                : ARR( 0.200E+15,  4623., 0.0);
+{ 38626} G1G502e                     =       GDK3001 +      GCO     +      GHO2    +      GCO      : ARR( 0.200E+15,  4856., 0.0);
+{ 38627} GGD4005 +GHO                =       G3G4006                                               : ARR( 0.664E-10,     0., 0.0);
+{ 38628} GGD4005 +GHO                =       G3D4007                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 38629} GGD4005 +GNO3               =       G3G4006 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 38630} GGD4005+HV               =       GAD3000 +      GCO2                                   :  0.100E+01*SUN;
+{ 38631} GGD4005+HV               =       G2G3005 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 38632} G3D4007 +GHO2               =  0.800GGD4005 + 0.200GAD4005 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 38633} G3D4007 +GNO                =       G3D3000 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 38634} G3D4007 +GNO2               =       GPD4005                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 38635} G3D4007 +GNO3               =       G3D3000 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 38636} G3D4007 +MEPERO             =  0.685G3D3000 + 0.315GAD4005 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38637} G3D4007 +PERO1              =  0.800G3D3000 + 0.200GAD4005 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38638} G3D4007 +PERO2              =  0.750G3D3000 + 0.250GAD4005 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38639} G3D4007 +PERO3              =  0.800G3D3000 + 0.200GAD4005 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38640} G3D4007 +PERO5              =  0.650G3D3000 + 0.350GAD4005 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38641} G3D4007 +PERO6              =  0.650G3D3000 + 0.350GAD4005 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38642} G3D4007 +PERO9              =       G3D3000 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 38643} GGG5000 +GHO                =       G2G501z                                               : ARR( 0.869E-12,     0., 0.0);
+{ 38644} GGG5000 +GHO                =       G2G5021                                               : ARR( 0.143E-11,     0., 0.0);
+{ 38645} GGG5000 +GHO                =       GGG5009 +      GHO2                                   : ARR( 0.634E-11,     0., 0.0);
+{ 38646} GGG5000 +GHO                =       G3G5000                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 38647} GGG5000 +GHO                =       G3G5001                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 38648} GGG5000+HV               =       G2G400D +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 38649} GGG5000+HV               =       GGD4000 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 38650} G2G501z +GNO                =       G1G502f +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 38651} G2G501z +GNO                =       GGG500B                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 38652} G2G501z +GHO2               =       GGG500C                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 38653} G2G501z +GNO3               =       G1G502f +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 38654} G2G501z +MEPERO             =  0.340G1G502f + 0.330GGG5001 + 0.330GGG500D                 : ARR( 0.565E-13,  -845., 0.0);
+{ 38655} G2G501z +PERO1              =  0.460G1G502f + 0.270GGG5001 + 0.270GGG500D                 : ARR( 0.434E-13,  -900., 0.0);
+{ 38656} G2G501z +PERO2              =  0.400G1G502f + 0.300GGG5001 + 0.300GGG500D                 : ARR( 0.162E-13, -1400., 0.0);
+{ 38657} G2G501z +PERO3              =  0.460G1G502f + 0.270GGG5001 + 0.270GGG500D                 : ARR( 0.488E-13, -1250., 0.0);
+{ 38658} G2G501z +PERO5              =  0.460G1G502f + 0.270GGG5001 + 0.270GGG500D                 : ARR( 0.183E-11,   450., 0.0);
+{ 38659} G2G501z +PERO6              =  0.300G1G502f + 0.350GGG5001 + 0.350GGG500D                 : ARR( 0.168E-13, -1300., 0.0);
+{ 38660} G2G501z +PERO9              =  0.650G1G502f + 0.350GGG500D                                : ARR( 0.100E-10,     0., 0.0);
+{ 38661} G2G5021 +GNO                =       G1G502g +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 38662} G2G5021 +GNO                =       GGG5006                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 38663} G2G5021 +GHO2               =       GGG5007                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 38664} G2G5021 +GNO3               =       G1G502g +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 38665} G2G5021 +MEPERO             =  0.340G1G502g + 0.330GGG5002 + 0.330GGG5004                 : ARR( 0.565E-13,  -845., 0.0);
+{ 38666} G2G5021 +PERO1              =  0.460G1G502g + 0.270GGG5002 + 0.270GGG5004                 : ARR( 0.434E-13,  -900., 0.0);
+{ 38667} G2G5021 +PERO2              =  0.400G1G502g + 0.300GGG5002 + 0.300GGG5004                 : ARR( 0.162E-13, -1400., 0.0);
+{ 38668} G2G5021 +PERO3              =  0.460G1G502g + 0.270GGG5002 + 0.270GGG5004                 : ARR( 0.488E-13, -1250., 0.0);
+{ 38669} G2G5021 +PERO5              =  0.460G1G502g + 0.270GGG5002 + 0.270GGG5004                 : ARR( 0.183E-11,   450., 0.0);
+{ 38670} G2G5021 +PERO6              =  0.300G1G502g + 0.350GGG5002 + 0.350GGG5004                 : ARR( 0.168E-13, -1300., 0.0);
+{ 38671} G2G5021 +PERO9              =  0.650G1G502g + 0.350GGG5004                                : ARR( 0.100E-10,     0., 0.0);
+{ 38672} G1G502f                     =       GGD4002 +      GCO     +      GHO2                    : ARR( 0.200E+15,  4949., 0.0);
+{ 38673} G1G502g                     =       GGD2000 +      GGD3000 +      GHO2                    : ARR( 0.200E+15,  3292., 0.0);
+{ 38674} GAG5000 +GHO                =       G2A502f                                               : ARR( 0.673E-12,     0., 0.0);
+{ 38675} GAG5000 +GHO                =       G2A502g                                               : ARR( 0.149E-11,     0., 0.0);
+{ 38676} GAG5000 +GHO                =       GAG500I +      GHO2                                   : ARR( 0.663E-11,     0., 0.0);
+{ 38677} GAG5000 +GHO                =       G3A5002                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 38678} GAG5000+HV               =       GAD4000 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 38679} G2A502f +GNO                =       G1A503A +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 38680} G2A502f +GNO                =       GAG500K                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 38681} G2A502f +GHO2               =       GAG500L                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 38682} G2A502f +GNO3               =       G1A503A +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 38683} G2A502f +MEPERO             =  0.340G1A503A + 0.330GAG5003 + 0.330GAG500M                 : ARR( 0.565E-13,  -845., 0.0);
+{ 38684} G2A502f +PERO1              =  0.460G1A503A + 0.270GAG5003 + 0.270GAG500M                 : ARR( 0.434E-13,  -900., 0.0);
+{ 38685} G2A502f +PERO2              =  0.400G1A503A + 0.300GAG5003 + 0.300GAG500M                 : ARR( 0.162E-13, -1400., 0.0);
+{ 38686} G2A502f +PERO3              =  0.460G1A503A + 0.270GAG5003 + 0.270GAG500M                 : ARR( 0.488E-13, -1250., 0.0);
+{ 38687} G2A502f +PERO5              =  0.460G1A503A + 0.270GAG5003 + 0.270GAG500M                 : ARR( 0.183E-11,   450., 0.0);
+{ 38688} G2A502f +PERO6              =  0.300G1A503A + 0.350GAG5003 + 0.350GAG500M                 : ARR( 0.168E-13, -1300., 0.0);
+{ 38689} G2A502f +PERO9              =  0.650G1A503A + 0.350GAG500M                                : ARR( 0.100E-10,     0., 0.0);
+{ 38690} G2A502g +GNO                =       G1A503B +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 38691} G2A502g +GNO                =       GAG500B                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 38692} G2A502g +GHO2               =       GAG500C                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 38693} G2A502g +GNO3               =       G1A503B +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 38694} G2A502g +MEPERO             =  0.340G1A503B + 0.330GAG5006 + 0.330GAG5008                 : ARR( 0.565E-13,  -845., 0.0);
+{ 38695} G2A502g +PERO1              =  0.460G1A503B + 0.270GAG5006 + 0.270GAG5008                 : ARR( 0.434E-13,  -900., 0.0);
+{ 38696} G2A502g +PERO2              =  0.400G1A503B + 0.300GAG5006 + 0.300GAG5008                 : ARR( 0.162E-13, -1400., 0.0);
+{ 38697} G2A502g +PERO3              =  0.460G1A503B + 0.270GAG5006 + 0.270GAG5008                 : ARR( 0.488E-13, -1250., 0.0);
+{ 38698} G2A502g +PERO5              =  0.460G1A503B + 0.270GAG5006 + 0.270GAG5008                 : ARR( 0.183E-11,   450., 0.0);
+{ 38699} G2A502g +PERO6              =  0.300G1A503B + 0.350GAG5006 + 0.350GAG5008                 : ARR( 0.168E-13, -1300., 0.0);
+{ 38700} G2A502g +PERO9              =  0.650G1A503B + 0.350GAG5008                                : ARR( 0.100E-10,     0., 0.0);
+{ 38701} G1A503A                     =       GCO     +      GGD4002 +      GHO                     : ARR( 0.200E+15,  4918., 0.0);
+{ 38702} G1A503B                     =       GAD3000 +      GGD2000 +      GHO2                    : ARR( 0.200E+15,  3292., 0.0);
+{ 38703} GPG5000                     =       G3G5000 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 38704} GPG5000 +GHO                =       GPG500G +      GHO2                                   : ARR( 0.635E-11,     0., 0.0);
+{ 38705} GPG5000 +GHO                =       G2P502j                                               : ARR( 0.143E-11,     0., 0.0);
+{ 38706} GPG5000 +GHO                =       G2P502k                                               : ARR( 0.872E-12,     0., 0.0);
+{ 38707} GPG5000 +GHO                =       G3P5001                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 38708} GPG5000+HV               =       GPD4000 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 38709} GPG5000+HV               =       G3G5000 +      GNO2                                   :  0.100E+01*SUN;
+{ 38710} G2P502j +GNO                =       G1P503L +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 38711} G2P502j +GNO                =       GPG500B                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 38712} G2P502j +GHO2               =       GPG500D                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 38713} G2P502j +GNO3               =       G1P503L +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 38714} G2P502j +MEPERO             =  0.340G1P503L + 0.330GPG5005 + 0.330GPG5008                 : ARR( 0.565E-13,  -845., 0.0);
+{ 38715} G2P502j +PERO1              =  0.460G1P503L + 0.270GPG5005 + 0.270GPG5008                 : ARR( 0.434E-13,  -900., 0.0);
+{ 38716} G2P502j +PERO2              =  0.400G1P503L + 0.300GPG5005 + 0.300GPG5008                 : ARR( 0.162E-13, -1400., 0.0);
+{ 38717} G2P502j +PERO3              =  0.460G1P503L + 0.270GPG5005 + 0.270GPG5008                 : ARR( 0.488E-13, -1250., 0.0);
+{ 38718} G2P502j +PERO5              =  0.460G1P503L + 0.270GPG5005 + 0.270GPG5008                 : ARR( 0.183E-11,   450., 0.0);
+{ 38719} G2P502j +PERO6              =  0.300G1P503L + 0.350GPG5005 + 0.350GPG5008                 : ARR( 0.168E-13, -1300., 0.0);
+{ 38720} G2P502j +PERO9              =  0.650G1P503L + 0.350GPG5008                                : ARR( 0.100E-10,     0., 0.0);
+{ 38721} G2P502k +GNO                =       G1P503M +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 38722} G2P502k +GNO                =       GPG500I                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 38723} G2P502k +GHO2               =       GPG500J                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 38724} G2P502k +GNO3               =       G1P503M +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 38725} G2P502k +MEPERO             =  0.340G1P503M + 0.330GPG5002 + 0.330GPG500K                 : ARR( 0.565E-13,  -845., 0.0);
+{ 38726} G2P502k +PERO1              =  0.460G1P503M + 0.270GPG5002 + 0.270GPG500K                 : ARR( 0.434E-13,  -900., 0.0);
+{ 38727} G2P502k +PERO2              =  0.400G1P503M + 0.300GPG5002 + 0.300GPG500K                 : ARR( 0.162E-13, -1400., 0.0);
+{ 38728} G2P502k +PERO3              =  0.460G1P503M + 0.270GPG5002 + 0.270GPG500K                 : ARR( 0.488E-13, -1250., 0.0);
+{ 38729} G2P502k +PERO5              =  0.460G1P503M + 0.270GPG5002 + 0.270GPG500K                 : ARR( 0.183E-11,   450., 0.0);
+{ 38730} G2P502k +PERO6              =  0.300G1P503M + 0.350GPG5002 + 0.350GPG500K                 : ARR( 0.168E-13, -1300., 0.0);
+{ 38731} G2P502k +PERO9              =  0.650G1P503M + 0.350GPG500K                                : ARR( 0.100E-10,     0., 0.0);
+{ 38732} G1P503L                     =       GGD2000 +      GPD3000 +      GHO2                    : ARR( 0.200E+15,  3292., 0.0);
+{ 38733} G1P503M                     =       GGD4002 +      GCO     +      GNO2                    : ARR( 0.200E+15,  4949., 0.0);
+{ 38734} GGH400J +GHO                =       GGD4002 +      GHO                                    : ARR( 0.169E-10,     0., 0.0);
+{ 38735} GGH400J +GHO                =       GGH400W +      GHO2                                   : ARR( 0.661E-11,     0., 0.0);
+{ 38736} GGH400J +GHO                =       G2G400D                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 38737} GGH400J +GHO                =       G3H400F                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 38738} GGH400J+HV               =       G1G400F +      GHO                                    :  0.100E+01*SUN;
+{ 38739} GGH400J+HV               =       GHD3000 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 38740} GAH5015 +GHO                =       GAN5011 +      GHO                                    : ARR( 0.887E-11,     0., 0.0);
+{ 38741} GAH5015 +GHO                =       G2A500n                                               : ARR( 0.204E-11,  -190., 0.0);
+{ 38742} GAH5015+HV               =       G1A503C +      GNO2                                   :  0.100E+01*SUN;
+{ 38743} GAH5015+HV               =       G1A500q +      GHO                                    :  0.100E+01*SUN;
+{ 38744} GAH5015+HV               =       G1A503D +      GNO2                                   :  0.100E+01*SUN;
+{ 38745} G1A503C                     =       GCO     +      GHN400J +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 38746} G1A503D +OXYGEN             =       GAH503A +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{ 38747} G1A503D                     =       GAH500x +      GNO2                                   : ARR( 0.800E+11,  4379., 0.0);
+{ 38748} GAN5015 +GHO                =       GAN5017 +      GNO2                                   : ARR( 0.559E-13,     0., 0.0);
+{ 38749} GAN5015 +GHO                =       G2A502h                                               : ARR( 0.595E-13,     0., 0.0);
+{ 38750} GAN5015 +GHO                =       GNN4001 +      GNO2    +      GCO2                    : ARR( 0.547E-12,     0., 0.0);
+{ 38751} GAN5015+HV               =       G1A5011 +      GNO2                                   :  0.100E+01*SUN;
+{ 38752} GAN5015+HV               =       G1A500r +      GNO2                                   :  0.100E+01*SUN;
+{ 38753} GAN5015+HV               =       G1A503E +      GNO2                                   :  0.100E+01*SUN;
+{ 38754} G2A502h +GNO                =       G1A503F +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 38755} G2A502h +GNO                =       GAN502B                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 38756} G2A502h +GHO2               =       GAH503Y                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 38757} G2A502h +GNO3               =       G1A503F +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 38758} G2A502h +MEPERO             =  0.340G1A503F + 0.330GAN502I + 0.330GAN502S                 : ARR( 0.565E-13,  -845., 0.0);
+{ 38759} G2A502h +PERO1              =  0.460G1A503F + 0.270GAN502I + 0.270GAN502S                 : ARR( 0.434E-13,  -900., 0.0);
+{ 38760} G2A502h +PERO2              =  0.400G1A503F + 0.300GAN502I + 0.300GAN502S                 : ARR( 0.162E-13, -1400., 0.0);
+{ 38761} G2A502h +PERO3              =  0.460G1A503F + 0.270GAN502I + 0.270GAN502S                 : ARR( 0.488E-13, -1250., 0.0);
+{ 38762} G2A502h +PERO5              =  0.460G1A503F + 0.270GAN502I + 0.270GAN502S                 : ARR( 0.183E-11,   450., 0.0);
+{ 38763} G2A502h +PERO6              =  0.300G1A503F + 0.350GAN502I + 0.350GAN502S                 : ARR( 0.168E-13, -1300., 0.0);
+{ 38764} G2A502h +PERO9              =  0.650G1A503F + 0.350GAN502S                                : ARR( 0.100E-10,     0., 0.0);
+{ 38765} G1A503E +OXYGEN             =       GAN502b +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 38766} G1A503E                     =       GAN501D +      GNO2                                   : ARR( 0.800E+11,  4379., 0.0);
+{ 38767} G1A503E                     =       GAN400N +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7547., 0.0);
+{ 38768} G1A503F                     =       GAN3006 +      GND2000 +      GNO2                    : ARR( 0.200E+15,  5492., 0.0);
+{ 38769} GAH5016 +GHO                =       GAN5016 +      GHO                                    : ARR( 0.887E-11,     0., 0.0);
+{ 38770} GAH5016 +GHO                =       G2A500o                                               : ARR( 0.204E-11,  -190., 0.0);
+{ 38771} GAH5016+HV               =       G1A503G +      GNO2                                   :  0.100E+01*SUN;
+{ 38772} GAH5016+HV               =       G1A500r +      GHO                                    :  0.100E+01*SUN;
+{ 38773} GAH5016+HV               =       G1A503H +      GNO2                                   :  0.100E+01*SUN;
+{ 38774} G1A503G                     =       GCO     +      GHN4001 +      GHO                     : ARR( 0.200E+15,  4918., 0.0);
+{ 38775} G1A503H +OXYGEN             =       GAH503Z +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 38776} G1A503H                     =       GAH501J +      GNO2                                   : ARR( 0.800E+11,  4379., 0.0);
+{ 38777} G1A503H                     =       GAN400N +      GCH2O   +      GHO                     : ARR( 0.200E+15,  6008., 0.0);
+{ 38778} GAN5016 +GHO                =       GAN5018 +      GNO2                                   : ARR( 0.174E-12,     0., 0.0);
+{ 38779} GAN5016 +GHO                =       G2A502i                                               : ARR( 0.178E-12,     0., 0.0);
+{ 38780} GAN5016 +GHO                =       GND4004 +      GNO2    +      GCO2                    : ARR( 0.537E-12,     0., 0.0);
+{ 38781} GAN5016+HV               =       G1A5018 +      GNO2                                   :  0.100E+01*SUN;
+{ 38782} GAN5016+HV               =       G3A4002 +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{ 38783} GAN5016+HV               =       G1A502F +      GNO2                                   :  0.100E+01*SUN;
+{ 38784} G2A502i +GNO                =       G1A503I +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 38785} G2A502i +GNO                =       GAN502C                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 38786} G2A502i +GHO2               =       GAH503a                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 38787} G2A502i +GNO3               =       G1A503I +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 38788} G2A502i +MEPERO             =  0.340G1A503I + 0.330GAN502J + 0.330GAN502T                 : ARR( 0.565E-13,  -845., 0.0);
+{ 38789} G2A502i +PERO1              =  0.460G1A503I + 0.270GAN502J + 0.270GAN502T                 : ARR( 0.434E-13,  -900., 0.0);
+{ 38790} G2A502i +PERO2              =  0.400G1A503I + 0.300GAN502J + 0.300GAN502T                 : ARR( 0.162E-13, -1400., 0.0);
+{ 38791} G2A502i +PERO3              =  0.460G1A503I + 0.270GAN502J + 0.270GAN502T                 : ARR( 0.488E-13, -1250., 0.0);
+{ 38792} G2A502i +PERO5              =  0.460G1A503I + 0.270GAN502J + 0.270GAN502T                 : ARR( 0.183E-11,   450., 0.0);
+{ 38793} G2A502i +PERO6              =  0.300G1A503I + 0.350GAN502J + 0.350GAN502T                 : ARR( 0.168E-13, -1300., 0.0);
+{ 38794} G2A502i +PERO9              =  0.650G1A503I + 0.350GAN502T                                : ARR( 0.100E-10,     0., 0.0);
+{ 38795} G1A503I                     =       GAN3006 +      G3N2000                                : ARR( 0.200E+15,  2059., 0.0);
+{ 38796} GAH5017 +GHO                =       GAH5019 +      GHO                                    : ARR( 0.188E-10,     0., 0.0);
+{ 38797} GAH5017 +GHO                =       GAH5013 +      GHO                                    : ARR( 0.417E-10,     0., 0.0);
+{ 38798} GAH5017 +GHO                =       G2A502j                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 38799} GAH5017 +GHO                =       G2A500p                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 38800} GAH5017+HV               =       G1A503C +      GHO                                    :  0.100E+01*SUN;
+{ 38801} GAH5017+HV               =       G1A500t +      GHO                                    :  0.100E+01*SUN;
+{ 38802} GAH5017+HV               =       G1A503J +      GNO2                                   :  0.100E+01*SUN;
+{ 38803} G2A502j +GNO                =       G1A503C +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 38804} G2A502j +GNO                =       GAH5015                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 38805} G2A502j +GHO2               =       GAH5017                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 38806} G2A502j +GNO3               =       G1A503C +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 38807} G2A502j +MEPERO             =  0.340G1A503C + 0.330GAH5018 + 0.330GAH5019                 : ARR( 0.565E-13,  -845., 0.0);
+{ 38808} G2A502j +PERO1              =  0.460G1A503C + 0.270GAH5018 + 0.270GAH5019                 : ARR( 0.434E-13,  -900., 0.0);
+{ 38809} G2A502j +PERO2              =  0.400G1A503C + 0.300GAH5018 + 0.300GAH5019                 : ARR( 0.162E-13, -1400., 0.0);
+{ 38810} G2A502j +PERO3              =  0.460G1A503C + 0.270GAH5018 + 0.270GAH5019                 : ARR( 0.488E-13, -1250., 0.0);
+{ 38811} G2A502j +PERO5              =  0.460G1A503C + 0.270GAH5018 + 0.270GAH5019                 : ARR( 0.183E-11,   450., 0.0);
+{ 38812} G2A502j +PERO6              =  0.300G1A503C + 0.350GAH5018 + 0.350GAH5019                 : ARR( 0.168E-13, -1300., 0.0);
+{ 38813} G2A502j +PERO9              =  0.650G1A503C + 0.350GAH5019                                : ARR( 0.100E-10,     0., 0.0);
+{ 38814} G1A503J                     =       GAH500x +      GHO                                    : ARR( 0.800E+11,  2034., 0.0);
+{ 38815} GAH5018 +GHO                =       GAH5019 +      GHO2                                   : ARR( 0.474E-11,     0., 0.0);
+{ 38816} GAH5018 +GHO                =       GAN500q +      GHO                                    : ARR( 0.420E-10,     0., 0.0);
+{ 38817} GAH5018 +GHO                =       G2A500q                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 38818} GAH5018+HV               =       G1A500v +      GHO                                    :  0.100E+01*SUN;
+{ 38819} GAH5018+HV               =       G1A502Q +      GNO2                                   :  0.100E+01*SUN;
+{ 38820} GAH5019 +GHO                =       GAN5012 +      GHO                                    : ARR( 0.264E-10,     0., 0.0);
+{ 38821} GAH5019 +GHO                =       G2A500r                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 38822} GAH5019+HV               =       GHN400J +      GCO2                                   :  0.100E+01*SUN;
+{ 38823} GAH5019+HV               =       G1A500x +      GHO                                    :  0.100E+01*SUN;
+{ 38824} GAH5019+HV               =       G1A503K +      GNO2                                   :  0.100E+01*SUN;
+{ 38825} G1A503K +OXYGEN             =       GAH503F +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{ 38826} GAN5017 +GHO                =       G2A502k                                               : ARR( 0.174E-12,     0., 0.0);
+{ 38827} GAN5017 +GHO                =       GAN5018 +      GNO2                                   : ARR( 0.756E-13,     0., 0.0);
+{ 38828} GAN5017 +GHO                =       G3N4006 +      GCO2                                   : ARR( 0.526E-12,     0., 0.0);
+{ 38829} GAN5017+HV               =       GNN4001 +      GCO2                                   :  0.100E+01*SUN;
+{ 38830} GAN5017+HV               =       G1A500y +      GNO2                                   :  0.100E+01*SUN;
+{ 38831} GAN5017+HV               =       G1A503L +      GNO2                                   :  0.100E+01*SUN;
+{ 38832} G2A502k +GNO                =       G1A503M +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 38833} G2A502k +GNO                =       GAN502D                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 38834} G2A502k +GHO2               =       GAH503b                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 38835} G2A502k +GNO3               =       G1A503M +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 38836} G2A502k +MEPERO             =  0.340G1A503M + 0.330GAN502L + 0.330GAN502U                 : ARR( 0.565E-13,  -845., 0.0);
+{ 38837} G2A502k +PERO1              =  0.460G1A503M + 0.270GAN502L + 0.270GAN502U                 : ARR( 0.434E-13,  -900., 0.0);
+{ 38838} G2A502k +PERO2              =  0.400G1A503M + 0.300GAN502L + 0.300GAN502U                 : ARR( 0.162E-13, -1400., 0.0);
+{ 38839} G2A502k +PERO3              =  0.460G1A503M + 0.270GAN502L + 0.270GAN502U                 : ARR( 0.488E-13, -1250., 0.0);
+{ 38840} G2A502k +PERO5              =  0.460G1A503M + 0.270GAN502L + 0.270GAN502U                 : ARR( 0.183E-11,   450., 0.0);
+{ 38841} G2A502k +PERO6              =  0.300G1A503M + 0.350GAN502L + 0.350GAN502U                 : ARR( 0.168E-13, -1300., 0.0);
+{ 38842} G2A502k +PERO9              =  0.650G1A503M + 0.350GAN502U                                : ARR( 0.100E-10,     0., 0.0);
+{ 38843} G1A503L +OXYGEN             =       GAN502c +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 38844} G1A503L                     =       GAD4005 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7175., 0.0);
+{ 38845} G1A503M                     =       GCO     +      GNN3005 +      GHO     +      GCO      : ARR( 0.200E+15,  3266., 0.0);
+{ 38846} GAH501A +GHO                =       GAN5018 +      GHO                                    : ARR( 0.274E-10,     0., 0.0);
+{ 38847} GAH501A +GHO                =       G2A500s                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 38848} GAH501A+HV               =       GHN4001 +      GCO2                                   :  0.100E+01*SUN;
+{ 38849} GAH501A+HV               =       G1A500y +      GHO                                    :  0.100E+01*SUN;
+{ 38850} GAH501A+HV               =       G1A503N +      GNO2                                   :  0.100E+01*SUN;
+{ 38851} G1A503N +OXYGEN             =       GAH503c +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 38852} G1A503N                     =       GAD4005 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5636., 0.0);
+{ 38853} GAN5018 +GHO                =       G2A502l                                               : ARR( 0.539E-12,     0., 0.0);
+{ 38854} GAN5018 +GHO                =       G3N4007 +      GCO2                                   : ARR( 0.534E-12,     0., 0.0);
+{ 38855} GAN5018+HV               =       GND4004 +      GCO2                                   :  0.100E+01*SUN;
+{ 38856} GAN5018+HV               =       G3A4003 +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{ 38857} GAN5018+HV               =       G1A502I +      GNO2                                   :  0.100E+01*SUN;
+{ 38858} G2A502l +GNO                =       G1A503O +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 38859} G2A502l +GNO                =       GAN502E                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 38860} G2A502l +GHO2               =       GAH503d                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 38861} G2A502l +GNO3               =       G1A503O +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 38862} G2A502l +MEPERO             =  0.340G1A503O + 0.330GAN502M + 0.330GAN502W                 : ARR( 0.565E-13,  -845., 0.0);
+{ 38863} G2A502l +PERO1              =  0.460G1A503O + 0.270GAN502M + 0.270GAN502W                 : ARR( 0.434E-13,  -900., 0.0);
+{ 38864} G2A502l +PERO2              =  0.400G1A503O + 0.300GAN502M + 0.300GAN502W                 : ARR( 0.162E-13, -1400., 0.0);
+{ 38865} G2A502l +PERO3              =  0.460G1A503O + 0.270GAN502M + 0.270GAN502W                 : ARR( 0.488E-13, -1250., 0.0);
+{ 38866} G2A502l +PERO5              =  0.460G1A503O + 0.270GAN502M + 0.270GAN502W                 : ARR( 0.183E-11,   450., 0.0);
+{ 38867} G2A502l +PERO6              =  0.300G1A503O + 0.350GAN502M + 0.350GAN502W                 : ARR( 0.168E-13, -1300., 0.0);
+{ 38868} G2A502l +PERO9              =  0.650G1A503O + 0.350GAN502W                                : ARR( 0.100E-10,     0., 0.0);
+{ 38869} G1A503O                     =       GCO     +      GND3003 +      GHO     +      GCO      : ARR( 0.200E+15,  4856., 0.0);
+{ 38870} G1A503O                     =       GAD3002 +      G3N2000                                : ARR( 0.200E+15,  4504., 0.0);
+{ 38871} GAD500A +GHO                =       G2A502m                                               : ARR( 0.279E-11,     0., 0.0);
+{ 38872} GAD500A +GHO                =       G2A502n                                               : ARR( 0.279E-11,     0., 0.0);
+{ 38873} GAD500A +GHO                =       G3A500H                                               : ARR( 0.212E-10,     0., 0.0);
+{ 38874} GAD500A +GNO3               =       G3A500H +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 38875} GAD500A+HV               =       GDD4000 +      GCO2                                   :  0.100E+01*SUN;
+{ 38876} GAD500A+HV               =       G2A400S +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 38877} G2A502m +GNO                =       G1A503P +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 38878} G2A502m +GNO                =       GAN501j                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 38879} G2A502m +GHO2               =       GAH503F                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 38880} G2A502m +GNO3               =       G1A503P +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 38881} G2A502m +MEPERO             =  0.340G1A503P + 0.330GAD500K + 0.330GAD500H                 : ARR( 0.565E-13,  -845., 0.0);
+{ 38882} G2A502m +PERO1              =  0.460G1A503P + 0.270GAD500K + 0.270GAD500H                 : ARR( 0.434E-13,  -900., 0.0);
+{ 38883} G2A502m +PERO2              =  0.400G1A503P + 0.300GAD500K + 0.300GAD500H                 : ARR( 0.162E-13, -1400., 0.0);
+{ 38884} G2A502m +PERO3              =  0.460G1A503P + 0.270GAD500K + 0.270GAD500H                 : ARR( 0.488E-13, -1250., 0.0);
+{ 38885} G2A502m +PERO5              =  0.460G1A503P + 0.270GAD500K + 0.270GAD500H                 : ARR( 0.183E-11,   450., 0.0);
+{ 38886} G2A502m +PERO6              =  0.300G1A503P + 0.350GAD500K + 0.350GAD500H                 : ARR( 0.168E-13, -1300., 0.0);
+{ 38887} G2A502m +PERO9              =  0.650G1A503P + 0.350GAD500H                                : ARR( 0.100E-10,     0., 0.0);
+{ 38888} G2A502n +GNO                =       G1A503Q +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 38889} G2A502n +GNO                =       GAN502c                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 38890} G2A502n +GHO2               =       GAH503c                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 38891} G2A502n +GNO3               =       G1A503Q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 38892} G2A502n +MEPERO             =  0.340G1A503Q + 0.330GAD500D + 0.330GAD500I                 : ARR( 0.565E-13,  -845., 0.0);
+{ 38893} G2A502n +PERO1              =  0.460G1A503Q + 0.270GAD500D + 0.270GAD500I                 : ARR( 0.434E-13,  -900., 0.0);
+{ 38894} G2A502n +PERO2              =  0.400G1A503Q + 0.300GAD500D + 0.300GAD500I                 : ARR( 0.162E-13, -1400., 0.0);
+{ 38895} G2A502n +PERO3              =  0.460G1A503Q + 0.270GAD500D + 0.270GAD500I                 : ARR( 0.488E-13, -1250., 0.0);
+{ 38896} G2A502n +PERO5              =  0.460G1A503Q + 0.270GAD500D + 0.270GAD500I                 : ARR( 0.183E-11,   450., 0.0);
+{ 38897} G2A502n +PERO6              =  0.300G1A503Q + 0.350GAD500D + 0.350GAD500I                 : ARR( 0.168E-13, -1300., 0.0);
+{ 38898} G2A502n +PERO9              =  0.650G1A503Q + 0.350GAD500I                                : ARR( 0.100E-10,     0., 0.0);
+{ 38899} G3A500H +GHO2               =  0.800GAG500N + 0.200GAA500C + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 38900} G3A500H +GNO                =       G2A400S +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 38901} G3A500H +GNO2               =       GPA500J                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 38902} G3A500H +GNO3               =       G2A400S +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 38903} G3A500H +MEPERO             =  0.685G2A400S + 0.315GAA500C + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38904} G3A500H +PERO1              =  0.800G2A400S + 0.200GAA500C + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38905} G3A500H +PERO2              =  0.750G2A400S + 0.250GAA500C + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38906} G3A500H +PERO3              =  0.800G2A400S + 0.200GAA500C + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38907} G3A500H +PERO5              =  0.650G2A400S + 0.350GAA500C + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38908} G3A500H +PERO6              =  0.650G2A400S + 0.350GAA500C + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 38909} G3A500H +PERO9              =       G2A400S +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 38910} G1A503P                     =       GCO     +      GDD3000 +      GHO     +      GCO      : ARR( 0.200E+15,  2628., 0.0);
+{ 38911} G1A503Q                     =       GAD4005 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5054., 0.0);
+{ 38912} GAH501B +GHO                =       GAN5017 +      GHO                                    : ARR( 0.193E-10,     0., 0.0);
+{ 38913} GAH501B +GHO                =       G2A500t                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 38914} GAH501B+HV               =       G1A5011 +      GHO                                    :  0.100E+01*SUN;
+{ 38915} GAH501B+HV               =       G1A503R +      GNO2                                   :  0.100E+01*SUN;
+{ 38916} GAH501B+HV               =       G1A503S +      GNO2                                   :  0.100E+01*SUN;
+{ 38917} G1A503R                     =       G2A300A +      GND2000                                : ARR( 0.200E+15,  7116., 0.0);
+{ 38918} G1A503S                     =       GAN501D +      GHO                                    : ARR( 0.800E+11,  2034., 0.0);
+{ 38919} GAN5019 +GHO                =       GAN5017 +      GHO2                                   : ARR( 0.480E-11,     0., 0.0);
+{ 38920} GAN5019 +GHO                =       G2A502o                                               : ARR( 0.292E-12,     0., 0.0);
+{ 38921} GAN5019 +GHO                =       GNN4001 +      GHO2    +      GCO2                    : ARR( 0.536E-12,     0., 0.0);
+{ 38922} GAN5019+HV               =       G1A503T +      GNO2                                   :  0.100E+01*SUN;
+{ 38923} GAN5019+HV               =       G1A503U +      GNO2                                   :  0.100E+01*SUN;
+{ 38924} G2A502o +GNO                =       G1A503W +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 38925} G2A502o +GNO                =       GAN5026                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 38926} G2A502o +GHO2               =       GAH503e                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 38927} G2A502o +GNO3               =       G1A503W +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 38928} G2A502o +MEPERO             =  0.340G1A503W + 0.330GAN502d + 0.330GAN502X                 : ARR( 0.565E-13,  -845., 0.0);
+{ 38929} G2A502o +PERO1              =  0.460G1A503W + 0.270GAN502d + 0.270GAN502X                 : ARR( 0.434E-13,  -900., 0.0);
+{ 38930} G2A502o +PERO2              =  0.400G1A503W + 0.300GAN502d + 0.300GAN502X                 : ARR( 0.162E-13, -1400., 0.0);
+{ 38931} G2A502o +PERO3              =  0.460G1A503W + 0.270GAN502d + 0.270GAN502X                 : ARR( 0.488E-13, -1250., 0.0);
+{ 38932} G2A502o +PERO5              =  0.460G1A503W + 0.270GAN502d + 0.270GAN502X                 : ARR( 0.183E-11,   450., 0.0);
+{ 38933} G2A502o +PERO6              =  0.300G1A503W + 0.350GAN502d + 0.350GAN502X                 : ARR( 0.168E-13, -1300., 0.0);
+{ 38934} G2A502o +PERO9              =  0.650G1A503W + 0.350GAN502X                                : ARR( 0.100E-10,     0., 0.0);
+{ 38935} G1A503T                     =       G2A3005 +      GND2000                                : ARR( 0.200E+15,  7116., 0.0);
+{ 38936} G1A503U                     =       GAN501D +      GHO2                                   : ARR( 0.800E+11,  2381., 0.0);
+{ 38937} G1A503W                     =       GAD2000 +      GNN3005 +      GHO2                    : ARR( 0.200E+15,  3929., 0.0);
+{ 38938} GAH501C +GHO                =       GAN5013 +      GHO                                    : ARR( 0.907E-11,     0., 0.0);
+{ 38939} GAH501C +GHO                =       G2A500u                                               : ARR( 0.209E-11,  -190., 0.0);
+{ 38940} GAH501C+HV               =       G1A5012 +      GHO                                    :  0.100E+01*SUN;
+{ 38941} GAH501C+HV               =       G1A503X +      GNO2                                   :  0.100E+01*SUN;
+{ 38942} GAH501C+HV               =       G1A503Y +      GNO2                                   :  0.100E+01*SUN;
+{ 38943} G1A503X                     =       GAD3000 +      GND2000 +      GHO                     : ARR( 0.200E+15,  4826., 0.0);
+{ 38944} G1A503Y                     =       G2A502p                                               : ARR( 0.160E+12,  3356., 0.0);
+{ 38945} G2A502p +GNO                =       G1A503Z +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 38946} G2A502p +GNO                =       GAH503B                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 38947} G2A502p +GHO2               =       GAH503f                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 38948} G2A502p +GNO3               =       G1A503Z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 38949} G2A502p +MEPERO             =  0.340G1A503Z + 0.330GAH503g + 0.330GAH503G                 : ARR( 0.565E-13,  -845., 0.0);
+{ 38950} G2A502p +PERO1              =  0.460G1A503Z + 0.270GAH503g + 0.270GAH503G                 : ARR( 0.434E-13,  -900., 0.0);
+{ 38951} G2A502p +PERO2              =  0.400G1A503Z + 0.300GAH503g + 0.300GAH503G                 : ARR( 0.162E-13, -1400., 0.0);
+{ 38952} G2A502p +PERO3              =  0.460G1A503Z + 0.270GAH503g + 0.270GAH503G                 : ARR( 0.488E-13, -1250., 0.0);
+{ 38953} G2A502p +PERO5              =  0.460G1A503Z + 0.270GAH503g + 0.270GAH503G                 : ARR( 0.183E-11,   450., 0.0);
+{ 38954} G2A502p +PERO6              =  0.300G1A503Z + 0.350GAH503g + 0.350GAH503G                 : ARR( 0.168E-13, -1300., 0.0);
+{ 38955} G2A502p +PERO9              =  0.650G1A503Z + 0.350GAH503G                                : ARR( 0.100E-10,     0., 0.0);
+{ 38956} G1A503Z                     =       GAH503h +      GHO2                                   : ARR( 0.160E+12,  3252., 0.0);
+{ 38957} G1A503Z                     =       GHN400h +      GCO     +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 38958} GAN501A +GHO                =       G2A502q                                               : ARR( 0.672E-12,     0., 0.0);
+{ 38959} GAN501A +GHO                =       GAN5013 +      GHO2                                   : ARR( 0.217E-11,     0., 0.0);
+{ 38960} GAN501A +GHO                =       G2N400d +      GCO2                                   : ARR( 0.548E-12,     0., 0.0);
+{ 38961} GAN501A+HV               =       G1A503a +      GNO2                                   :  0.100E+01*SUN;
+{ 38962} GAN501A+HV               =       G1A503b +      GNO2                                   :  0.100E+01*SUN;
+{ 38963} G2A502q +GNO                =       G1A503c +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 38964} G2A502q +GNO                =       GAN502I                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 38965} G2A502q +GHO2               =       GAH503i                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 38966} G2A502q +GNO3               =       G1A503c +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 38967} G2A502q +MEPERO             =  0.340G1A503c + 0.330GAN502d + 0.330GAN502L                 : ARR( 0.565E-13,  -845., 0.0);
+{ 38968} G2A502q +PERO1              =  0.460G1A503c + 0.270GAN502d + 0.270GAN502L                 : ARR( 0.434E-13,  -900., 0.0);
+{ 38969} G2A502q +PERO2              =  0.400G1A503c + 0.300GAN502d + 0.300GAN502L                 : ARR( 0.162E-13, -1400., 0.0);
+{ 38970} G2A502q +PERO3              =  0.460G1A503c + 0.270GAN502d + 0.270GAN502L                 : ARR( 0.488E-13, -1250., 0.0);
+{ 38971} G2A502q +PERO5              =  0.460G1A503c + 0.270GAN502d + 0.270GAN502L                 : ARR( 0.183E-11,   450., 0.0);
+{ 38972} G2A502q +PERO6              =  0.300G1A503c + 0.350GAN502d + 0.350GAN502L                 : ARR( 0.168E-13, -1300., 0.0);
+{ 38973} G2A502q +PERO9              =  0.650G1A503c + 0.350GAN502L                                : ARR( 0.100E-10,     0., 0.0);
+{ 38974} G1A503a                     =       GAD3000 +      GND2000 +      GHO2                    : ARR( 0.200E+15,  3617., 0.0);
+{ 38975} G1A503b                     =       G2A502r                                               : ARR( 0.160E+12,  3356., 0.0);
+{ 38976} G1A503c                     =       GCO     +      GNN400T +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 38977} G1A503c                     =       GAD2000 +      GNN3005 +      GHO2                    : ARR( 0.200E+15,  5342., 0.0);
+{ 38978} G2A502r +GNO                =       G1A503d +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 38979} G2A502r +GNO                =       GAN502N                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 38980} G2A502r +GHO2               =       GAH503j                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 38981} G2A502r +GNO3               =       G1A503d +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 38982} G2A502r +MEPERO             =  0.340G1A503d + 0.330GAN502P + 0.330GAN502Q                 : ARR( 0.565E-13,  -845., 0.0);
+{ 38983} G2A502r +PERO1              =  0.460G1A503d + 0.270GAN502P + 0.270GAN502Q                 : ARR( 0.434E-13,  -900., 0.0);
+{ 38984} G2A502r +PERO2              =  0.400G1A503d + 0.300GAN502P + 0.300GAN502Q                 : ARR( 0.162E-13, -1400., 0.0);
+{ 38985} G2A502r +PERO3              =  0.460G1A503d + 0.270GAN502P + 0.270GAN502Q                 : ARR( 0.488E-13, -1250., 0.0);
+{ 38986} G2A502r +PERO5              =  0.460G1A503d + 0.270GAN502P + 0.270GAN502Q                 : ARR( 0.183E-11,   450., 0.0);
+{ 38987} G2A502r +PERO6              =  0.300G1A503d + 0.350GAN502P + 0.350GAN502Q                 : ARR( 0.168E-13, -1300., 0.0);
+{ 38988} G2A502r +PERO9              =  0.650G1A503d + 0.350GAN502Q                                : ARR( 0.100E-10,     0., 0.0);
+{ 38989} G1A503d                     =       GAN502e +      GHO2                                   : ARR( 0.160E+12,  3252., 0.0);
+{ 38990} G1A503d                     =       GND3004 +      GAD2000 +      GHO2                    : ARR( 0.200E+15,  5342., 0.0);
+{ 38991} G1A503d                     =       GND4009 +      GCO     +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 38992} GAN501B +GHO                =       GAN502b +      GHO2                                   : ARR( 0.860E-12,     0., 0.0);
+{ 38993} GAN501B +GHO                =       GAN501H +      GNO2                                   : ARR( 0.126E-12,     0., 0.0);
+{ 38994} GAN501B +GHO                =       G1A503E                                               : ARR( 0.225E-17,    85., 2.0);
+{ 38995} GAN501B +GHO                =       GND4002 +      GNO2    +      GCO2                    : ARR( 0.556E-12,     0., 0.0);
+{ 38996} GAN501B+HV               =       G1A501B +      GNO2                                   :  0.100E+01*SUN;
+{ 38997} GAN501B+HV               =       G1A5013 +      GNO2                                   :  0.100E+01*SUN;
+{ 38998} GAH501D +GHO                =       GAN501D +      GHO                                    : ARR( 0.202E-10,     0., 0.0);
+{ 38999} GAH501D +GHO                =       G2A500v                                               : ARR( 0.206E-11,  -190., 0.0);
+{ 39000} GAH501D+HV               =       G1A503e +      GNO2                                   :  0.100E+01*SUN;
+{ 39001} GAH501D+HV               =       G1A5013 +      GHO                                    :  0.100E+01*SUN;
+{ 39002} G1A503e                     =       GCH2O   +      GAH400Q +      GHO2                    : ARR( 0.200E+15,  5041., 0.0);
+{ 39003} GAN501C +GHO                =       GAN501E +      GHO2                                   : ARR( 0.896E-12,     0., 0.0);
+{ 39004} GAN501C +GHO                =       GAN501D +      GHO2                                   : ARR( 0.518E-11,     0., 0.0);
+{ 39005} GAN501C +GHO                =       GND4002 +      GHO2    +      GCO2                    : ARR( 0.579E-12,     0., 0.0);
+{ 39006} GAN501C+HV               =       G1A501C +      GNO2                                   :  0.100E+01*SUN;
+{ 39007} GAN501D +GHO                =       GAN502c +      GHO2                                   : ARR( 0.804E-12,     0., 0.0);
+{ 39008} GAN501D +GHO                =       GAK500O +      GNO2                                   : ARR( 0.373E-12,     0., 0.0);
+{ 39009} GAN501D +GHO                =       G2A502s                                               : ARR( 0.172E-12,     0., 0.0);
+{ 39010} GAN501D +GHO                =       G1A503L                                               : ARR( 0.210E-17,    85., 2.0);
+{ 39011} GAN501D +GHO                =       G3N4003 +      GCO2                                   : ARR( 0.520E-12,     0., 0.0);
+{ 39012} GAN501D+HV               =       G1A501E +      GNO2                                   :  0.100E+01*SUN;
+{ 39013} GAN501D+HV               =       GND4002 +      GCO2                                   :  0.100E+01*SUN;
+{ 39014} G2A502s +GNO                =       G1A503f +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 39015} G2A502s +GNO                =       GAN501n                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 39016} G2A502s +GHO2               =       GAH503G                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 39017} G2A502s +GNO3               =       G1A503f +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 39018} G2A502s +MEPERO             =  0.340G1A503f + 0.330GAN502Q + 0.330GAN5023                 : ARR( 0.565E-13,  -845., 0.0);
+{ 39019} G2A502s +PERO1              =  0.460G1A503f + 0.270GAN502Q + 0.270GAN5023                 : ARR( 0.434E-13,  -900., 0.0);
+{ 39020} G2A502s +PERO2              =  0.400G1A503f + 0.300GAN502Q + 0.300GAN5023                 : ARR( 0.162E-13, -1400., 0.0);
+{ 39021} G2A502s +PERO3              =  0.460G1A503f + 0.270GAN502Q + 0.270GAN5023                 : ARR( 0.488E-13, -1250., 0.0);
+{ 39022} G2A502s +PERO5              =  0.460G1A503f + 0.270GAN502Q + 0.270GAN5023                 : ARR( 0.183E-11,   450., 0.0);
+{ 39023} G2A502s +PERO6              =  0.300G1A503f + 0.350GAN502Q + 0.350GAN5023                 : ARR( 0.168E-13, -1300., 0.0);
+{ 39024} G2A502s +PERO9              =  0.650G1A503f + 0.350GAN5023                                : ARR( 0.100E-10,     0., 0.0);
+{ 39025} G1A503f                     =       GND3004 +      GCO     +      GHO     +      GCO      : ARR( 0.200E+15,  3266., 0.0);
+{ 39026} GAN501E +GHO                =       GAN502c +      GHO2                                   : ARR( 0.490E-11,     0., 0.0);
+{ 39027} GAN501E +GHO                =       G3A500I                                               : ARR( 0.438E-11,     0., 0.0);
+{ 39028} GAN501E +GHO                =       GND400D +      GHO2    +      GCO2                    : ARR( 0.548E-12,     0., 0.0);
+{ 39029} GAN501E +GNO3               =       G3A500I +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 39030} GAN501E+HV               =       G1A503g +      GNO2                                   :  0.100E+01*SUN;
+{ 39031} GAN501E+HV               =       GAD4002 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 39032} GAN501E+HV               =       GAK3000 +      GND2000                                :  0.100E+01*SUN;
+{ 39033} G3A500I +GHO2               =  0.800GAG500O + 0.200GAA500D + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 39034} G3A500I +GNO                =       GAD4002 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 39035} G3A500I +GNO2               =       GPA500K                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 39036} G3A500I +GNO3               =       GAD4002 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 39037} G3A500I +MEPERO             =  0.685GAD4002 + 0.315GAA500D + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 39038} G3A500I +PERO1              =  0.800GAD4002 + 0.200GAA500D + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 39039} G3A500I +PERO2              =  0.750GAD4002 + 0.250GAA500D + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 39040} G3A500I +PERO3              =  0.800GAD4002 + 0.200GAA500D + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 39041} G3A500I +PERO5              =  0.650GAD4002 + 0.350GAA500D + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 39042} G3A500I +PERO6              =  0.650GAD4002 + 0.350GAA500D + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 39043} G3A500I +PERO9              =       GAD4002 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 39044} G1A503g                     =       GAD4002 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5437., 0.0);
+{ 39045} GAH501E +GHO                =       GAH5014 +      GHO                                    : ARR( 0.421E-10,     0., 0.0);
+{ 39046} GAH501E +GHO                =       GAH501M +      GHO                                    : ARR( 0.842E-11,     0., 0.0);
+{ 39047} GAH501E +GHO                =       G2A500w                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 39048} GAH501E +GHO                =       G2A502t                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 39049} GAH501E+HV               =       G1A5015 +      GHO                                    :  0.100E+01*SUN;
+{ 39050} GAH501E+HV               =       G1A503X +      GHO                                    :  0.100E+01*SUN;
+{ 39051} GAH501E+HV               =       G1A503h +      GNO2                                   :  0.100E+01*SUN;
+{ 39052} G2A502t +GNO                =       G1A503X +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 39053} G2A502t +GNO                =       GAH501C                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 39054} G2A502t +GHO2               =       GAH501E                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 39055} G2A502t +GNO3               =       G1A503X +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 39056} G2A502t +MEPERO             =  0.340G1A503X + 0.330GAH500C + 0.330GAH501M                 : ARR( 0.565E-13,  -845., 0.0);
+{ 39057} G2A502t +PERO1              =  0.460G1A503X + 0.270GAH500C + 0.270GAH501M                 : ARR( 0.434E-13,  -900., 0.0);
+{ 39058} G2A502t +PERO2              =  0.400G1A503X + 0.300GAH500C + 0.300GAH501M                 : ARR( 0.162E-13, -1400., 0.0);
+{ 39059} G2A502t +PERO3              =  0.460G1A503X + 0.270GAH500C + 0.270GAH501M                 : ARR( 0.488E-13, -1250., 0.0);
+{ 39060} G2A502t +PERO5              =  0.460G1A503X + 0.270GAH500C + 0.270GAH501M                 : ARR( 0.183E-11,   450., 0.0);
+{ 39061} G2A502t +PERO6              =  0.300G1A503X + 0.350GAH500C + 0.350GAH501M                 : ARR( 0.168E-13, -1300., 0.0);
+{ 39062} G2A502t +PERO9              =  0.650G1A503X + 0.350GAH501M                                : ARR( 0.100E-10,     0., 0.0);
+{ 39063} G1A503h                     =       G2A502u                                               : ARR( 0.160E+12,  3356., 0.0);
+{ 39064} G1A503h                     =       GAH400T +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{ 39065} G2A502u +GNO                =       G1A503i +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 39066} G2A502u +GNO                =       GAH503C                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 39067} G2A502u +GHO2               =       GAH503k                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 39068} G2A502u +GNO3               =       G1A503i +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 39069} G2A502u +MEPERO             =  0.340G1A503i + 0.330GAH503l + 0.330GAH503H                 : ARR( 0.565E-13,  -845., 0.0);
+{ 39070} G2A502u +PERO1              =  0.460G1A503i + 0.270GAH503l + 0.270GAH503H                 : ARR( 0.434E-13,  -900., 0.0);
+{ 39071} G2A502u +PERO2              =  0.400G1A503i + 0.300GAH503l + 0.300GAH503H                 : ARR( 0.162E-13, -1400., 0.0);
+{ 39072} G2A502u +PERO3              =  0.460G1A503i + 0.270GAH503l + 0.270GAH503H                 : ARR( 0.488E-13, -1250., 0.0);
+{ 39073} G2A502u +PERO5              =  0.460G1A503i + 0.270GAH503l + 0.270GAH503H                 : ARR( 0.183E-11,   450., 0.0);
+{ 39074} G2A502u +PERO6              =  0.300G1A503i + 0.350GAH503l + 0.350GAH503H                 : ARR( 0.168E-13, -1300., 0.0);
+{ 39075} G2A502u +PERO9              =  0.650G1A503i + 0.350GAH503H                                : ARR( 0.100E-10,     0., 0.0);
+{ 39076} G1A503i                     =       GAH503m +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{ 39077} G1A503i                     =       GHH4009 +      GCO     +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 39078} GAH501F +GHO                =       GAH5014 +      GHO2                                   : ARR( 0.109E-10,     0., 0.0);
+{ 39079} GAH501F +GHO                =       GAN501G +      GHO                                    : ARR( 0.874E-11,     0., 0.0);
+{ 39080} GAH501F +GHO                =       G2A502v                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 39081} GAH501F+HV               =       G1A503a +      GHO                                    :  0.100E+01*SUN;
+{ 39082} GAH501F+HV               =       G1A503j +      GNO2                                   :  0.100E+01*SUN;
+{ 39083} G2A502v +GNO                =       G1A503a +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 39084} G2A502v +GNO                =       GAN501A                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 39085} G2A502v +GHO2               =       GAH501F                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 39086} G2A502v +GNO3               =       G1A503a +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 39087} G2A502v +MEPERO             =  0.340G1A503a + 0.330GAN500K + 0.330GAN501G                 : ARR( 0.565E-13,  -845., 0.0);
+{ 39088} G2A502v +PERO1              =  0.460G1A503a + 0.270GAN500K + 0.270GAN501G                 : ARR( 0.434E-13,  -900., 0.0);
+{ 39089} G2A502v +PERO2              =  0.400G1A503a + 0.300GAN500K + 0.300GAN501G                 : ARR( 0.162E-13, -1400., 0.0);
+{ 39090} G2A502v +PERO3              =  0.460G1A503a + 0.270GAN500K + 0.270GAN501G                 : ARR( 0.488E-13, -1250., 0.0);
+{ 39091} G2A502v +PERO5              =  0.460G1A503a + 0.270GAN500K + 0.270GAN501G                 : ARR( 0.183E-11,   450., 0.0);
+{ 39092} G2A502v +PERO6              =  0.300G1A503a + 0.350GAN500K + 0.350GAN501G                 : ARR( 0.168E-13, -1300., 0.0);
+{ 39093} G2A502v +PERO9              =  0.650G1A503a + 0.350GAN501G                                : ARR( 0.100E-10,     0., 0.0);
+{ 39094} G1A503j                     =       G2A502w                                               : ARR( 0.160E+12,  3356., 0.0);
+{ 39095} G1A503j                     =       GAD4001 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{ 39096} G2A502w +GNO                =       G1A503k +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 39097} G2A502w +GNO                =       GAH503N                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 39098} G2A502w +GHO2               =       GAH503n                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 39099} G2A502w +GNO3               =       G1A503k +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 39100} G2A502w +MEPERO             =  0.340G1A503k + 0.330GAH503P + 0.330GAH503Q                 : ARR( 0.565E-13,  -845., 0.0);
+{ 39101} G2A502w +PERO1              =  0.460G1A503k + 0.270GAH503P + 0.270GAH503Q                 : ARR( 0.434E-13,  -900., 0.0);
+{ 39102} G2A502w +PERO2              =  0.400G1A503k + 0.300GAH503P + 0.300GAH503Q                 : ARR( 0.162E-13, -1400., 0.0);
+{ 39103} G2A502w +PERO3              =  0.460G1A503k + 0.270GAH503P + 0.270GAH503Q                 : ARR( 0.488E-13, -1250., 0.0);
+{ 39104} G2A502w +PERO5              =  0.460G1A503k + 0.270GAH503P + 0.270GAH503Q                 : ARR( 0.183E-11,   450., 0.0);
+{ 39105} G2A502w +PERO6              =  0.300G1A503k + 0.350GAH503P + 0.350GAH503Q                 : ARR( 0.168E-13, -1300., 0.0);
+{ 39106} G2A502w +PERO9              =  0.650G1A503k + 0.350GAH503Q                                : ARR( 0.100E-10,     0., 0.0);
+{ 39107} G1A503k                     =       GAH503o +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{ 39108} G1A503k                     =       GHD3003 +      GAD2000 +      GHO2                    : ARR( 0.200E+15,  5342., 0.0);
+{ 39109} G1A503k                     =       GHD4009 +      GCO     +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 39110} GAH501G +GHO                =       GAH503Z +      GHO2                                   : ARR( 0.410E-11,     0., 0.0);
+{ 39111} GAH501G +GHO                =       GAN501H +      GHO                                    : ARR( 0.421E-10,     0., 0.0);
+{ 39112} GAH501G +GHO                =       G2A5012                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 39113} GAH501G+HV               =       G1A501B +      GHO                                    :  0.100E+01*SUN;
+{ 39114} GAH501G+HV               =       G1A5016 +      GNO2                                   :  0.100E+01*SUN;
+{ 39115} GAH501H +GHO                =       GAH503p +      GHO2                                   : ARR( 0.460E-11,     0., 0.0);
+{ 39116} GAH501H +GHO                =       GAH501a +      GHO                                    : ARR( 0.472E-10,     0., 0.0);
+{ 39117} GAH501H +GHO                =       GAH501J +      GHO                                    : ARR( 0.213E-10,     0., 0.0);
+{ 39118} GAH501H+HV               =       G1A503e +      GHO                                    :  0.100E+01*SUN;
+{ 39119} GAH501H+HV               =       G1A5016 +      GHO                                    :  0.100E+01*SUN;
+{ 39120} GAH501I +GHO                =       GAH501K +      GHO2                                   : ARR( 0.419E-11,     0., 0.0);
+{ 39121} GAH501I +GHO                =       GAK500K +      GHO                                    : ARR( 0.429E-10,     0., 0.0);
+{ 39122} GAH501I +GHO                =       GAH501J +      GHO2                                   : ARR( 0.484E-11,     0., 0.0);
+{ 39123} GAH501I +GHO                =       G2A5013                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 39124} GAH501I+HV               =       G1A501C +      GHO                                    :  0.100E+01*SUN;
+{ 39125} GAH501J +GHO                =       GAK500O +      GHO                                    : ARR( 0.140E-09,     0., 0.0);
+{ 39126} GAH501J+HV               =       G1A501E +      GHO                                    :  0.100E+01*SUN;
+{ 39127} GAH501J+HV               =       GHD4000 +      GCO2                                   :  0.100E+01*SUN;
+{ 39128} GAH501K +GHO                =       GAH503c +      GHO2                                   : ARR( 0.470E-11,     0., 0.0);
+{ 39129} GAH501K +GHO                =       G2A502x                                               : ARR( 0.453E-11,     0., 0.0);
+{ 39130} GAH501K +GHO                =       GAD500E +      GHO                                    : ARR( 0.254E-10,     0., 0.0);
+{ 39131} GAH501K +GHO                =       G3A500J                                               : ARR( 0.210E-10,     0., 0.0);
+{ 39132} GAH501K +GHO                =       G2A502y                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 39133} GAH501K +GNO3               =       G3A500J +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 39134} GAH501K+HV               =       G1A503g +      GHO                                    :  0.100E+01*SUN;
+{ 39135} GAH501K+HV               =       GAD4002 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 39136} G2A502x +GNO                =       G1A503l +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 39137} G2A502x +GNO                =       GAH5037                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 39138} G2A502x +GHO2               =       GAH503m                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 39139} G2A502x +GNO3               =       G1A503l +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 39140} G2A502x +MEPERO             =  0.340G1A503l + 0.330GAH503o + 0.330GAH503q                 : ARR( 0.565E-13,  -845., 0.0);
+{ 39141} G2A502x +PERO1              =  0.460G1A503l + 0.270GAH503o + 0.270GAH503q                 : ARR( 0.434E-13,  -900., 0.0);
+{ 39142} G2A502x +PERO2              =  0.400G1A503l + 0.300GAH503o + 0.300GAH503q                 : ARR( 0.162E-13, -1400., 0.0);
+{ 39143} G2A502x +PERO3              =  0.460G1A503l + 0.270GAH503o + 0.270GAH503q                 : ARR( 0.488E-13, -1250., 0.0);
+{ 39144} G2A502x +PERO5              =  0.460G1A503l + 0.270GAH503o + 0.270GAH503q                 : ARR( 0.183E-11,   450., 0.0);
+{ 39145} G2A502x +PERO6              =  0.300G1A503l + 0.350GAH503o + 0.350GAH503q                 : ARR( 0.168E-13, -1300., 0.0);
+{ 39146} G2A502x +PERO9              =  0.650G1A503l + 0.350GAH503q                                : ARR( 0.100E-10,     0., 0.0);
+{ 39147} G3A500J +GHO2               =  0.800GAG500P + 0.200GAA500E + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 39148} G3A500J +GNO                =       GAD4002 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 39149} G3A500J +GNO2               =       GPA500L                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 39150} G3A500J +GNO3               =       GAD4002 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 39151} G3A500J +MEPERO             =  0.685GAD4002 + 0.315GAA500E + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 39152} G3A500J +PERO1              =  0.800GAD4002 + 0.200GAA500E + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 39153} G3A500J +PERO2              =  0.750GAD4002 + 0.250GAA500E + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 39154} G3A500J +PERO3              =  0.800GAD4002 + 0.200GAA500E + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 39155} G3A500J +PERO5              =  0.650GAD4002 + 0.350GAA500E + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 39156} G3A500J +PERO6              =  0.650GAD4002 + 0.350GAA500E + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 39157} G3A500J +PERO9              =       GAD4002 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 39158} G2A502y +GNO                =       G1A503g +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 39159} G2A502y +GNO                =       GAN501E                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 39160} G2A502y +GHO2               =       GAH501K                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 39161} G2A502y +GNO3               =       G1A503g +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 39162} G2A502y +MEPERO             =  0.340G1A503g + 0.330GAD5003 + 0.330GAD500E                 : ARR( 0.565E-13,  -845., 0.0);
+{ 39163} G2A502y +PERO1              =  0.460G1A503g + 0.270GAD5003 + 0.270GAD500E                 : ARR( 0.434E-13,  -900., 0.0);
+{ 39164} G2A502y +PERO2              =  0.400G1A503g + 0.300GAD5003 + 0.300GAD500E                 : ARR( 0.162E-13, -1400., 0.0);
+{ 39165} G2A502y +PERO3              =  0.460G1A503g + 0.270GAD5003 + 0.270GAD500E                 : ARR( 0.488E-13, -1250., 0.0);
+{ 39166} G2A502y +PERO5              =  0.460G1A503g + 0.270GAD5003 + 0.270GAD500E                 : ARR( 0.183E-11,   450., 0.0);
+{ 39167} G2A502y +PERO6              =  0.300G1A503g + 0.350GAD5003 + 0.350GAD500E                 : ARR( 0.168E-13, -1300., 0.0);
+{ 39168} G2A502y +PERO9              =  0.650G1A503g + 0.350GAD500E                                : ARR( 0.100E-10,     0., 0.0);
+{ 39169} G1A503l                     =       GAD2000 +      GHD3004 +      GHO2                    : ARR( 0.200E+15,  3099., 0.0);
+{ 39170} G1A503l                     =       GAD3001 +      GDD2000 +      GHO                     : ARR( 0.200E+15,  4086., 0.0);
+{ 39171} GAH501L +GHO                =       GAN5018 +      GHO                                    : ARR( 0.603E-10,     0., 0.0);
+{ 39172} GAH501L +GHO                =       G2A500y                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 39173} GAH501L+HV               =       G1A5018 +      GHO                                    :  0.100E+01*SUN;
+{ 39174} GAH501L+HV               =       G3A4008 +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{ 39175} GAH501L+HV               =       G1A503m +      GNO2                                   :  0.100E+01*SUN;
+{ 39176} G3A4008 +GHO2               =  0.800GAG400A + 0.200GAA4006 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 39177} G3A4008 +GNO                =       G2A300A +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 39178} G3A4008 +GNO2               =       GPA400B                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 39179} G3A4008 +GNO3               =       G2A300A +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 39180} G3A4008 +MEPERO             =  0.685G2A300A + 0.315GAA4006 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 39181} G3A4008 +PERO1              =  0.800G2A300A + 0.200GAA4006 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 39182} G3A4008 +PERO2              =  0.750G2A300A + 0.250GAA4006 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 39183} G3A4008 +PERO3              =  0.800G2A300A + 0.200GAA4006 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 39184} G3A4008 +PERO5              =  0.650G2A300A + 0.350GAA4006 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 39185} G3A4008 +PERO6              =  0.650G2A300A + 0.350GAA4006 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 39186} G3A4008 +PERO9              =       G2A300A +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 39187} G1A503m                     =       G3A4008 +      GCH2O                                  : ARR( 0.200E+15,  3576., 0.0);
+{ 39188} GAN501F +GHO                =       GAN5018 +      GHO2                                   : ARR( 0.154E-10,     0., 0.0);
+{ 39189} GAN501F +GHO                =       G2A502z                                               : ARR( 0.900E-12,     0., 0.0);
+{ 39190} GAN501F+HV               =       G3A4005 +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{ 39191} GAN501F+HV               =       G1A503n +      GNO2                                   :  0.100E+01*SUN;
+{ 39192} G2A502z +GNO                =       G1A503o +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 39193} G2A502z +GNO                =       GAN502H                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 39194} G2A502z +GHO2               =       GAH503r                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 39195} G2A502z +GNO3               =       G1A503o +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 39196} G2A502z +MEPERO             =  0.340G1A503o + 0.330GAN502f + 0.330GAN502a                 : ARR( 0.565E-13,  -845., 0.0);
+{ 39197} G2A502z +PERO1              =  0.460G1A503o + 0.270GAN502f + 0.270GAN502a                 : ARR( 0.434E-13,  -900., 0.0);
+{ 39198} G2A502z +PERO2              =  0.400G1A503o + 0.300GAN502f + 0.300GAN502a                 : ARR( 0.162E-13, -1400., 0.0);
+{ 39199} G2A502z +PERO3              =  0.460G1A503o + 0.270GAN502f + 0.270GAN502a                 : ARR( 0.488E-13, -1250., 0.0);
+{ 39200} G2A502z +PERO5              =  0.460G1A503o + 0.270GAN502f + 0.270GAN502a                 : ARR( 0.183E-11,   450., 0.0);
+{ 39201} G2A502z +PERO6              =  0.300G1A503o + 0.350GAN502f + 0.350GAN502a                 : ARR( 0.168E-13, -1300., 0.0);
+{ 39202} G2A502z +PERO9              =  0.650G1A503o + 0.350GAN502a                                : ARR( 0.100E-10,     0., 0.0);
+{ 39203} G1A503n                     =       G3A4005 +      GCH2O                                  : ARR( 0.200E+15,  3576., 0.0);
+{ 39204} G1A503o                     =       GAD3001 +      G3N2000                                : ARR( 0.200E+15,  2059., 0.0);
+{ 39205} GAH501M +GHO                =       G2A5031                                               : ARR( 0.206E-11,     0., 0.0);
+{ 39206} GAH501M +GHO                =       GAN5014 +      GHO                                    : ARR( 0.256E-10,     0., 0.0);
+{ 39207} GAH501M +GHO                =       G2A500z                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 39208} GAH501M+HV               =       G1A5019 +      GHO                                    :  0.100E+01*SUN;
+{ 39209} GAH501M+HV               =       G3A4009 +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{ 39210} GAH501M+HV               =       G1A503p +      GNO2                                   :  0.100E+01*SUN;
+{ 39211} G2A5031 +GNO                =       G1A503q +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 39212} G2A5031 +GNO                =       GAH503a                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 39213} G2A5031 +GHO2               =       GAH503s                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 39214} G2A5031 +GNO3               =       G1A503q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 39215} G2A5031 +MEPERO             =  0.340G1A503q + 0.330GAH503r + 0.330GAH503d                 : ARR( 0.565E-13,  -845., 0.0);
+{ 39216} G2A5031 +PERO1              =  0.460G1A503q + 0.270GAH503r + 0.270GAH503d                 : ARR( 0.434E-13,  -900., 0.0);
+{ 39217} G2A5031 +PERO2              =  0.400G1A503q + 0.300GAH503r + 0.300GAH503d                 : ARR( 0.162E-13, -1400., 0.0);
+{ 39218} G2A5031 +PERO3              =  0.460G1A503q + 0.270GAH503r + 0.270GAH503d                 : ARR( 0.488E-13, -1250., 0.0);
+{ 39219} G2A5031 +PERO5              =  0.460G1A503q + 0.270GAH503r + 0.270GAH503d                 : ARR( 0.183E-11,   450., 0.0);
+{ 39220} G2A5031 +PERO6              =  0.300G1A503q + 0.350GAH503r + 0.350GAH503d                 : ARR( 0.168E-13, -1300., 0.0);
+{ 39221} G2A5031 +PERO9              =  0.650G1A503q + 0.350GAH503d                                : ARR( 0.100E-10,     0., 0.0);
+{ 39222} G3A4009 +GHO2               =  0.800GAG400B + 0.200GAA4006 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 39223} G3A4009 +GNO                =       GAD3000 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 39224} G3A4009 +GNO2               =       GPA400C                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 39225} G3A4009 +GNO3               =       GAD3000 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 39226} G3A4009 +MEPERO             =  0.685GAD3000 + 0.315GAA4006 + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 39227} G3A4009 +PERO1              =  0.800GAD3000 + 0.200GAA4006 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 39228} G3A4009 +PERO2              =  0.750GAD3000 + 0.250GAA4006 + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 39229} G3A4009 +PERO3              =  0.800GAD3000 + 0.200GAA4006 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 39230} G3A4009 +PERO5              =  0.650GAD3000 + 0.350GAA4006 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 39231} G3A4009 +PERO6              =  0.650GAD3000 + 0.350GAA4006 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 39232} G3A4009 +PERO9              =       GAD3000 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 39233} G1A503p                     =       G3A4009 +      GCH2O                                  : ARR( 0.200E+15,  3603., 0.0);
+{ 39234} G1A503q                     =       GCO     +      GHN400R +      GHO                     : ARR( 0.200E+15,  4342., 0.0);
+{ 39235} GAN501G +GHO                =       G2A5032                                               : ARR( 0.206E-11,     0., 0.0);
+{ 39236} GAN501G +GHO                =       GAN5014 +      GHO2                                   : ARR( 0.640E-11,     0., 0.0);
+{ 39237} GAN501G +GHO                =       G2N400g +      GCO2                                   : ARR( 0.530E-12,     0., 0.0);
+{ 39238} GAN501G+HV               =       G3A4004 +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{ 39239} GAN501G+HV               =       G1A503r +      GNO2                                   :  0.100E+01*SUN;
+{ 39240} G2A5032 +GNO                =       G1A503s +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 39241} G2A5032 +GNO                =       GAN502J                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 39242} G2A5032 +GHO2               =       GAH503t                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 39243} G2A5032 +GNO3               =       G1A503s +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 39244} G2A5032 +MEPERO             =  0.340G1A503s + 0.330GAN502f + 0.330GAN502M                 : ARR( 0.565E-13,  -845., 0.0);
+{ 39245} G2A5032 +PERO1              =  0.460G1A503s + 0.270GAN502f + 0.270GAN502M                 : ARR( 0.434E-13,  -900., 0.0);
+{ 39246} G2A5032 +PERO2              =  0.400G1A503s + 0.300GAN502f + 0.300GAN502M                 : ARR( 0.162E-13, -1400., 0.0);
+{ 39247} G2A5032 +PERO3              =  0.460G1A503s + 0.270GAN502f + 0.270GAN502M                 : ARR( 0.488E-13, -1250., 0.0);
+{ 39248} G2A5032 +PERO5              =  0.460G1A503s + 0.270GAN502f + 0.270GAN502M                 : ARR( 0.183E-11,   450., 0.0);
+{ 39249} G2A5032 +PERO6              =  0.300G1A503s + 0.350GAN502f + 0.350GAN502M                 : ARR( 0.168E-13, -1300., 0.0);
+{ 39250} G2A5032 +PERO9              =  0.650G1A503s + 0.350GAN502M                                : ARR( 0.100E-10,     0., 0.0);
+{ 39251} G1A503r                     =       G3A4004 +      GCH2O                                  : ARR( 0.200E+15,  3603., 0.0);
+{ 39252} G1A503s                     =       GCO     +      GND400E +      GHO                     : ARR( 0.200E+15,  4342., 0.0);
+{ 39253} GAG4000 +GHO                =       G2A400k                                               : ARR( 0.638E-12,     0., 0.0);
+{ 39254} GAG4000 +GHO                =       G2A400l                                               : ARR( 0.862E-12,     0., 0.0);
+{ 39255} GAG4000 +GHO                =       G3A4000                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 39256} GAG4000 +GHO                =       G2G3000 +      GCO2                                   : ARR( 0.520E-12,     0., 0.0);
+{ 39257} GAG4000+HV               =       G2A3000 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 39258} G2A400k +GNO                =       G1A400s +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 39259} G2A400k +GNO                =       GAG4002                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 39260} G2A400k +GHO2               =       GAG400A                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 39261} G2A400k +GNO3               =       G1A400s +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 39262} G2A400k +MEPERO             =  0.340G1A400s + 0.330GAG4004 + 0.330GAG4003                 : ARR( 0.565E-13,  -845., 0.0);
+{ 39263} G2A400k +PERO1              =  0.460G1A400s + 0.270GAG4004 + 0.270GAG4003                 : ARR( 0.434E-13,  -900., 0.0);
+{ 39264} G2A400k +PERO2              =  0.400G1A400s + 0.300GAG4004 + 0.300GAG4003                 : ARR( 0.162E-13, -1400., 0.0);
+{ 39265} G2A400k +PERO3              =  0.460G1A400s + 0.270GAG4004 + 0.270GAG4003                 : ARR( 0.488E-13, -1250., 0.0);
+{ 39266} G2A400k +PERO5              =  0.460G1A400s + 0.270GAG4004 + 0.270GAG4003                 : ARR( 0.183E-11,   450., 0.0);
+{ 39267} G2A400k +PERO6              =  0.300G1A400s + 0.350GAG4004 + 0.350GAG4003                 : ARR( 0.168E-13, -1300., 0.0);
+{ 39268} G2A400k +PERO9              =  0.650G1A400s + 0.350GAG4003                                : ARR( 0.100E-10,     0., 0.0);
+{ 39269} G2A400l +GNO                =       G1A400t +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 39270} G2A400l +GNO                =       GAG4001                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 39271} G2A400l +GHO2               =       GAG400B                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 39272} G2A400l +GNO3               =       G1A400t +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 39273} G2A400l +MEPERO             =  0.340G1A400t + 0.330GAG4005 + 0.330GAG4009                 : ARR( 0.565E-13,  -845., 0.0);
+{ 39274} G2A400l +PERO1              =  0.460G1A400t + 0.270GAG4005 + 0.270GAG4009                 : ARR( 0.434E-13,  -900., 0.0);
+{ 39275} G2A400l +PERO2              =  0.400G1A400t + 0.300GAG4005 + 0.300GAG4009                 : ARR( 0.162E-13, -1400., 0.0);
+{ 39276} G2A400l +PERO3              =  0.460G1A400t + 0.270GAG4005 + 0.270GAG4009                 : ARR( 0.488E-13, -1250., 0.0);
+{ 39277} G2A400l +PERO5              =  0.460G1A400t + 0.270GAG4005 + 0.270GAG4009                 : ARR( 0.183E-11,   450., 0.0);
+{ 39278} G2A400l +PERO6              =  0.300G1A400t + 0.350GAG4005 + 0.350GAG4009                 : ARR( 0.168E-13, -1300., 0.0);
+{ 39279} G2A400l +PERO9              =  0.650G1A400t + 0.350GAG4009                                : ARR( 0.100E-10,     0., 0.0);
+{ 39280} G1A400s                     =       GCO     +      GGD3000 +      GHO                     : ARR( 0.200E+15,  4535., 0.0);
+{ 39281} G1A400t                     =       GAD3000 +      GCO     +      GHO2                    : ARR( 0.200E+15,  4566., 0.0);
+{ 39282} GAA4000 +GHO                =       G2A400m                                               : ARR( 0.128E-11,     0., 0.0);
+{ 39283} GAA4000 +GHO                =       G2A3000 +      GCO2                                   : ARR( 0.104E-11,     0., 0.0);
+{ 39284} G2A400m +GNO                =       G1A400u +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 39285} G2A400m +GNO                =       GAA4001                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 39286} G2A400m +GHO2               =       GAA4006                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 39287} G2A400m +GNO3               =       G1A400u +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 39288} G2A400m +MEPERO             =  0.340G1A400u + 0.330GAA4003 + 0.330GAA4002                 : ARR( 0.565E-13,  -845., 0.0);
+{ 39289} G2A400m +PERO1              =  0.460G1A400u + 0.270GAA4003 + 0.270GAA4002                 : ARR( 0.434E-13,  -900., 0.0);
+{ 39290} G2A400m +PERO2              =  0.400G1A400u + 0.300GAA4003 + 0.300GAA4002                 : ARR( 0.162E-13, -1400., 0.0);
+{ 39291} G2A400m +PERO3              =  0.460G1A400u + 0.270GAA4003 + 0.270GAA4002                 : ARR( 0.488E-13, -1250., 0.0);
+{ 39292} G2A400m +PERO5              =  0.460G1A400u + 0.270GAA4003 + 0.270GAA4002                 : ARR( 0.183E-11,   450., 0.0);
+{ 39293} G2A400m +PERO6              =  0.300G1A400u + 0.350GAA4003 + 0.350GAA4002                 : ARR( 0.168E-13, -1300., 0.0);
+{ 39294} G2A400m +PERO9              =  0.650G1A400u + 0.350GAA4002                                : ARR( 0.100E-10,     0., 0.0);
+{ 39295} G1A400u                     =       GAD3000 +      GCO     +      GHO                     : ARR( 0.200E+15,  4535., 0.0);
+{ 39296} GPA4000                     =       G3A4000 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 39297} GPA4000 +GHO                =       G2P400j                                               : ARR( 0.638E-12,     0., 0.0);
+{ 39298} GPA4000 +GHO                =       G2P400k                                               : ARR( 0.862E-12,     0., 0.0);
+{ 39299} GPA4000 +GHO                =       G2P3000 +      GCO2                                   : ARR( 0.520E-12,     0., 0.0);
+{ 39300} GPA4000+HV               =       G3A4000 +      GNO2                                   :  0.100E+01*SUN;
+{ 39301} G2P400j +GNO                =       G1P400t +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 39302} G2P400j +GNO                =       GPA4002                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 39303} G2P400j +GHO2               =       GPA400B                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 39304} G2P400j +GNO3               =       G1P400t +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 39305} G2P400j +MEPERO             =  0.340G1P400t + 0.330GPA4006 + 0.330GPA4003                 : ARR( 0.565E-13,  -845., 0.0);
+{ 39306} G2P400j +PERO1              =  0.460G1P400t + 0.270GPA4006 + 0.270GPA4003                 : ARR( 0.434E-13,  -900., 0.0);
+{ 39307} G2P400j +PERO2              =  0.400G1P400t + 0.300GPA4006 + 0.300GPA4003                 : ARR( 0.162E-13, -1400., 0.0);
+{ 39308} G2P400j +PERO3              =  0.460G1P400t + 0.270GPA4006 + 0.270GPA4003                 : ARR( 0.488E-13, -1250., 0.0);
+{ 39309} G2P400j +PERO5              =  0.460G1P400t + 0.270GPA4006 + 0.270GPA4003                 : ARR( 0.183E-11,   450., 0.0);
+{ 39310} G2P400j +PERO6              =  0.300G1P400t + 0.350GPA4006 + 0.350GPA4003                 : ARR( 0.168E-13, -1300., 0.0);
+{ 39311} G2P400j +PERO9              =  0.650G1P400t + 0.350GPA4003                                : ARR( 0.100E-10,     0., 0.0);
+{ 39312} G2P400k +GNO                =       G1P400u +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 39313} G2P400k +GNO                =       GPA4001                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 39314} G2P400k +GHO2               =       GPA400C                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 39315} G2P400k +GNO3               =       G1P400u +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 39316} G2P400k +MEPERO             =  0.340G1P400u + 0.330GPA4005 + 0.330GPA4004                 : ARR( 0.565E-13,  -845., 0.0);
+{ 39317} G2P400k +PERO1              =  0.460G1P400u + 0.270GPA4005 + 0.270GPA4004                 : ARR( 0.434E-13,  -900., 0.0);
+{ 39318} G2P400k +PERO2              =  0.400G1P400u + 0.300GPA4005 + 0.300GPA4004                 : ARR( 0.162E-13, -1400., 0.0);
+{ 39319} G2P400k +PERO3              =  0.460G1P400u + 0.270GPA4005 + 0.270GPA4004                 : ARR( 0.488E-13, -1250., 0.0);
+{ 39320} G2P400k +PERO5              =  0.460G1P400u + 0.270GPA4005 + 0.270GPA4004                 : ARR( 0.183E-11,   450., 0.0);
+{ 39321} G2P400k +PERO6              =  0.300G1P400u + 0.350GPA4005 + 0.350GPA4004                 : ARR( 0.168E-13, -1300., 0.0);
+{ 39322} G2P400k +PERO9              =  0.650G1P400u + 0.350GPA4004                                : ARR( 0.100E-10,     0., 0.0);
+{ 39323} G1P400t                     =       GCO     +      GPD3000 +      GHO                     : ARR( 0.200E+15,  4535., 0.0);
+{ 39324} G1P400u                     =       GAD3000 +      GCO     +      GNO2                    : ARR( 0.200E+15,  4566., 0.0);
+{ 39325} GAG5001 +GHO                =       G2A5033                                               : ARR( 0.638E-12,     0., 0.0);
+{ 39326} GAG5001 +GHO                =       G2A5034                                               : ARR( 0.141E-11,     0., 0.0);
+{ 39327} GAG5001 +GHO                =       G2A5035                                               : ARR( 0.862E-12,     0., 0.0);
+{ 39328} GAG5001 +GHO                =       G3A5000                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 39329} GAG5001 +GHO                =       G2G400L +      GCO2                                   : ARR( 0.520E-12,     0., 0.0);
+{ 39330} GAG5001+HV               =       G2A4004 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 39331} G2A5033 +GNO                =       G1A503t +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 39332} G2A5033 +GNO                =       GAG500A                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 39333} G2A5033 +GHO2               =       GAG500Q                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 39334} G2A5033 +GNO3               =       G1A503t +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 39335} G2A5033 +MEPERO             =  0.340G1A503t + 0.330GAG5002 + 0.330GAG500N                 : ARR( 0.565E-13,  -845., 0.0);
+{ 39336} G2A5033 +PERO1              =  0.460G1A503t + 0.270GAG5002 + 0.270GAG500N                 : ARR( 0.434E-13,  -900., 0.0);
+{ 39337} G2A5033 +PERO2              =  0.400G1A503t + 0.300GAG5002 + 0.300GAG500N                 : ARR( 0.162E-13, -1400., 0.0);
+{ 39338} G2A5033 +PERO3              =  0.460G1A503t + 0.270GAG5002 + 0.270GAG500N                 : ARR( 0.488E-13, -1250., 0.0);
+{ 39339} G2A5033 +PERO5              =  0.460G1A503t + 0.270GAG5002 + 0.270GAG500N                 : ARR( 0.183E-11,   450., 0.0);
+{ 39340} G2A5033 +PERO6              =  0.300G1A503t + 0.350GAG5002 + 0.350GAG500N                 : ARR( 0.168E-13, -1300., 0.0);
+{ 39341} G2A5033 +PERO9              =  0.650G1A503t + 0.350GAG500N                                : ARR( 0.100E-10,     0., 0.0);
+{ 39342} G2A5034 +GNO                =       G1A503u +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 39343} G2A5034 +GNO                =       GAG5004                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 39344} G2A5034 +GHO2               =       GAG500D                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 39345} G2A5034 +GNO3               =       G1A503u +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 39346} G2A5034 +MEPERO             =  0.480G1A503u + 0.260GAG500F + 0.260GAG5007                 : ARR( 0.616E-11,   905., 0.0);
+{ 39347} G2A5034 +PERO1              =  0.600G1A503u + 0.200GAG500F + 0.200GAG5007                 : ARR( 0.473E-11,   850., 0.0);
+{ 39348} G2A5034 +PERO2              =  0.560G1A503u + 0.220GAG500F + 0.220GAG5007                 : ARR( 0.177E-11,   350., 0.0);
+{ 39349} G2A5034 +PERO3              =  0.600G1A503u + 0.200GAG500F + 0.200GAG5007                 : ARR( 0.533E-11,   500., 0.0);
+{ 39350} G2A5034 +PERO5              =  0.600G1A503u + 0.200GAG500F + 0.200GAG5007                 : ARR( 0.200E-09,  2200., 0.0);
+{ 39351} G2A5034 +PERO6              =  0.460G1A503u + 0.270GAG500F + 0.270GAG5007                 : ARR( 0.183E-11,   450., 0.0);
+{ 39352} G2A5034 +PERO9              =  0.800G1A503u + 0.200GAG5007                                : ARR( 0.100E-10,     0., 0.0);
+{ 39353} G2A5035 +GNO                =       G1A503v +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 39354} G2A5035 +GNO                =       GAG500H                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 39355} G2A5035 +GHO2               =       GAG500J                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 39356} G2A5035 +GNO3               =       G1A503v +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 39357} G2A5035 +MEPERO             =  0.340G1A503v + 0.330GAG5000 + 0.330GAG500I                 : ARR( 0.565E-13,  -845., 0.0);
+{ 39358} G2A5035 +PERO1              =  0.460G1A503v + 0.270GAG5000 + 0.270GAG500I                 : ARR( 0.434E-13,  -900., 0.0);
+{ 39359} G2A5035 +PERO2              =  0.400G1A503v + 0.300GAG5000 + 0.300GAG500I                 : ARR( 0.162E-13, -1400., 0.0);
+{ 39360} G2A5035 +PERO3              =  0.460G1A503v + 0.270GAG5000 + 0.270GAG500I                 : ARR( 0.488E-13, -1250., 0.0);
+{ 39361} G2A5035 +PERO5              =  0.460G1A503v + 0.270GAG5000 + 0.270GAG500I                 : ARR( 0.183E-11,   450., 0.0);
+{ 39362} G2A5035 +PERO6              =  0.300G1A503v + 0.350GAG5000 + 0.350GAG500I                 : ARR( 0.168E-13, -1300., 0.0);
+{ 39363} G2A5035 +PERO9              =  0.650G1A503v + 0.350GAG500I                                : ARR( 0.100E-10,     0., 0.0);
+{ 39364} G1A503t                     =       GCO     +      GGD4000 +      GHO                     : ARR( 0.200E+15,  4918., 0.0);
+{ 39365} G1A503u                     =       G2A2000 +      GGD3000                                : ARR( 0.200E+15,  6813., 0.0);
+{ 39366} G1A503u                     =       GAD3000 +      G2G2000                                : ARR( 0.200E+15,  6813., 0.0);
+{ 39367} G1A503v                     =       GAD4000 +      GCO     +      GHO2                    : ARR( 0.200E+15,  4949., 0.0);
+{ 39368} GAA5000 +GHO                =       G2A5036                                               : ARR( 0.128E-11,     0., 0.0);
+{ 39369} GAA5000 +GHO                =       G2A5037                                               : ARR( 0.141E-11,     0., 0.0);
+{ 39370} GAA5000 +GHO                =       G2A4004 +      GCO2                                   : ARR( 0.104E-11,     0., 0.0);
+{ 39371} G2A5036 +GNO                =       G1A503w +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 39372} G2A5036 +GNO                =       GAA5007                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 39373} G2A5036 +GHO2               =       GAA500F                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 39374} G2A5036 +GNO3               =       G1A503w +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 39375} G2A5036 +MEPERO             =  0.340G1A503w + 0.330GAA5001 + 0.330GAA500C                 : ARR( 0.565E-13,  -845., 0.0);
+{ 39376} G2A5036 +PERO1              =  0.460G1A503w + 0.270GAA5001 + 0.270GAA500C                 : ARR( 0.434E-13,  -900., 0.0);
+{ 39377} G2A5036 +PERO2              =  0.400G1A503w + 0.300GAA5001 + 0.300GAA500C                 : ARR( 0.162E-13, -1400., 0.0);
+{ 39378} G2A5036 +PERO3              =  0.460G1A503w + 0.270GAA5001 + 0.270GAA500C                 : ARR( 0.488E-13, -1250., 0.0);
+{ 39379} G2A5036 +PERO5              =  0.460G1A503w + 0.270GAA5001 + 0.270GAA500C                 : ARR( 0.183E-11,   450., 0.0);
+{ 39380} G2A5036 +PERO6              =  0.300G1A503w + 0.350GAA5001 + 0.350GAA500C                 : ARR( 0.168E-13, -1300., 0.0);
+{ 39381} G2A5036 +PERO9              =  0.650G1A503w + 0.350GAA500C                                : ARR( 0.100E-10,     0., 0.0);
+{ 39382} G2A5037 +GNO                =       G1A503x +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 39383} G2A5037 +GNO                =       GAA5003                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 39384} G2A5037 +GHO2               =       GAA5008                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 39385} G2A5037 +GNO3               =       G1A503x +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 39386} G2A5037 +MEPERO             =  0.480G1A503x + 0.260GAA500A + 0.260GAA5005                 : ARR( 0.616E-11,   905., 0.0);
+{ 39387} G2A5037 +PERO1              =  0.600G1A503x + 0.200GAA500A + 0.200GAA5005                 : ARR( 0.473E-11,   850., 0.0);
+{ 39388} G2A5037 +PERO2              =  0.560G1A503x + 0.220GAA500A + 0.220GAA5005                 : ARR( 0.177E-11,   350., 0.0);
+{ 39389} G2A5037 +PERO3              =  0.600G1A503x + 0.200GAA500A + 0.200GAA5005                 : ARR( 0.533E-11,   500., 0.0);
+{ 39390} G2A5037 +PERO5              =  0.600G1A503x + 0.200GAA500A + 0.200GAA5005                 : ARR( 0.200E-09,  2200., 0.0);
+{ 39391} G2A5037 +PERO6              =  0.460G1A503x + 0.270GAA500A + 0.270GAA5005                 : ARR( 0.183E-11,   450., 0.0);
+{ 39392} G2A5037 +PERO9              =  0.800G1A503x + 0.200GAA5005                                : ARR( 0.100E-10,     0., 0.0);
+{ 39393} G1A503w                     =       GAD4000 +      GCO     +      GHO                     : ARR( 0.200E+15,  4918., 0.0);
+{ 39394} G1A503x                     =       G2A2000 +      GAD3000                                : ARR( 0.400E+15,  6813., 0.0);
+{ 39395} GPA5000                     =       G3A5000 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 39396} GPA5000 +GHO                =       G2P502l                                               : ARR( 0.638E-12,     0., 0.0);
+{ 39397} GPA5000 +GHO                =       G2P502m                                               : ARR( 0.141E-11,     0., 0.0);
+{ 39398} GPA5000 +GHO                =       G2P502n                                               : ARR( 0.862E-12,     0., 0.0);
+{ 39399} GPA5000 +GHO                =       G2P4004 +      GCO2                                   : ARR( 0.520E-12,     0., 0.0);
+{ 39400} GPA5000+HV               =       G3A5000 +      GNO2                                   :  0.100E+01*SUN;
+{ 39401} G2P502l +GNO                =       G1P503N +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 39402} G2P502l +GNO                =       GPA500B                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 39403} G2P502l +GHO2               =       GPA500M                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 39404} G2P502l +GNO3               =       G1P503N +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 39405} G2P502l +MEPERO             =  0.340G1P503N + 0.330GPA5001 + 0.330GPA500J                 : ARR( 0.565E-13,  -845., 0.0);
+{ 39406} G2P502l +PERO1              =  0.460G1P503N + 0.270GPA5001 + 0.270GPA500J                 : ARR( 0.434E-13,  -900., 0.0);
+{ 39407} G2P502l +PERO2              =  0.400G1P503N + 0.300GPA5001 + 0.300GPA500J                 : ARR( 0.162E-13, -1400., 0.0);
+{ 39408} G2P502l +PERO3              =  0.460G1P503N + 0.270GPA5001 + 0.270GPA500J                 : ARR( 0.488E-13, -1250., 0.0);
+{ 39409} G2P502l +PERO5              =  0.460G1P503N + 0.270GPA5001 + 0.270GPA500J                 : ARR( 0.183E-11,   450., 0.0);
+{ 39410} G2P502l +PERO6              =  0.300G1P503N + 0.350GPA5001 + 0.350GPA500J                 : ARR( 0.168E-13, -1300., 0.0);
+{ 39411} G2P502l +PERO9              =  0.650G1P503N + 0.350GPA500J                                : ARR( 0.100E-10,     0., 0.0);
+{ 39412} G2P502m +GNO                =       G1P503O +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 39413} G2P502m +GNO                =       GPA5004                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 39414} G2P502m +GHO2               =       GPA500E                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 39415} G2P502m +GNO3               =       G1P503O +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 39416} G2P502m +MEPERO             =  0.480G1P503O + 0.260GPA500H + 0.260GPA5008                 : ARR( 0.616E-11,   905., 0.0);
+{ 39417} G2P502m +PERO1              =  0.600G1P503O + 0.200GPA500H + 0.200GPA5008                 : ARR( 0.473E-11,   850., 0.0);
+{ 39418} G2P502m +PERO2              =  0.560G1P503O + 0.220GPA500H + 0.220GPA5008                 : ARR( 0.177E-11,   350., 0.0);
+{ 39419} G2P502m +PERO3              =  0.600G1P503O + 0.200GPA500H + 0.200GPA5008                 : ARR( 0.533E-11,   500., 0.0);
+{ 39420} G2P502m +PERO5              =  0.600G1P503O + 0.200GPA500H + 0.200GPA5008                 : ARR( 0.200E-09,  2200., 0.0);
+{ 39421} G2P502m +PERO6              =  0.460G1P503O + 0.270GPA500H + 0.270GPA5008                 : ARR( 0.183E-11,   450., 0.0);
+{ 39422} G2P502m +PERO9              =  0.800G1P503O + 0.200GPA5008                                : ARR( 0.100E-10,     0., 0.0);
+{ 39423} G2P502n +GNO                =       G1P503P +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 39424} G2P502n +GNO                =       GPA500C                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 39425} G2P502n +GHO2               =       GPA500N                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 39426} G2P502n +GNO3               =       G1P503P +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 39427} G2P502n +MEPERO             =  0.340G1P503P + 0.330GPA5002 + 0.330GPA500O                 : ARR( 0.565E-13,  -845., 0.0);
+{ 39428} G2P502n +PERO1              =  0.460G1P503P + 0.270GPA5002 + 0.270GPA500O                 : ARR( 0.434E-13,  -900., 0.0);
+{ 39429} G2P502n +PERO2              =  0.400G1P503P + 0.300GPA5002 + 0.300GPA500O                 : ARR( 0.162E-13, -1400., 0.0);
+{ 39430} G2P502n +PERO3              =  0.460G1P503P + 0.270GPA5002 + 0.270GPA500O                 : ARR( 0.488E-13, -1250., 0.0);
+{ 39431} G2P502n +PERO5              =  0.460G1P503P + 0.270GPA5002 + 0.270GPA500O                 : ARR( 0.183E-11,   450., 0.0);
+{ 39432} G2P502n +PERO6              =  0.300G1P503P + 0.350GPA5002 + 0.350GPA500O                 : ARR( 0.168E-13, -1300., 0.0);
+{ 39433} G2P502n +PERO9              =  0.650G1P503P + 0.350GPA500O                                : ARR( 0.100E-10,     0., 0.0);
+{ 39434} G1P503N                     =       GCO     +      GPD4000 +      GHO                     : ARR( 0.200E+15,  4918., 0.0);
+{ 39435} G1P503O                     =       G2A2000 +      GPD3000                                : ARR( 0.200E+15,  6813., 0.0);
+{ 39436} G1P503O                     =       GAD3000 +      G2P2000                                : ARR( 0.200E+15,  6813., 0.0);
+{ 39437} G1P503P                     =       GAD4000 +      GCO     +      GNO2                    : ARR( 0.200E+15,  4949., 0.0);
+{ 39438} GAN501H +GHO                =       GAN5024 +      GHO2                                   : ARR( 0.285E-11,     0., 0.0);
+{ 39439} GAN501H +GHO                =       GDK4001 +      GNO2    +      GCO2                    : ARR( 0.604E-12,     0., 0.0);
+{ 39440} GAN501H+HV               =       G3K2001 +      G2A3004                                :  0.100E+01*SUN;
+{ 39441} GAN501H+HV               =       G1A501e +      GNO2                                   :  0.100E+01*SUN;
+{ 39442} GAH501N +GHO                =       GAD500A +      GHO                                    : ARR( 0.191E-10,     0., 0.0);
+{ 39443} GAH501N +GHO                =       G2A5038                                               : ARR( 0.461E-11,     0., 0.0);
+{ 39444} GAH501N +GHO                =       G3A500K                                               : ARR( 0.214E-10,     0., 0.0);
+{ 39445} GAH501N +GHO                =       G2A5039                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 39446} GAH501N +GNO3               =       G3A500K +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 39447} GAH501N+HV               =       G1A502M +      GHO                                    :  0.100E+01*SUN;
+{ 39448} GAH501N+HV               =       G2A400n +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 39449} GAH501N+HV               =       G2A3006 +      GD02000 +      GHO                     :  0.100E+01*SUN;
+{ 39450} G2A5038 +GNO                =       G1A503y +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 39451} G2A5038 +GNO                =       GAH502H                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 39452} G2A5038 +GHO2               =       GAH503E                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 39453} G2A5038 +GNO3               =       G1A503y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 39454} G2A5038 +MEPERO             =  0.340G1A503y + 0.330GAH503O + 0.330GAH502U                 : ARR( 0.565E-13,  -845., 0.0);
+{ 39455} G2A5038 +PERO1              =  0.460G1A503y + 0.270GAH503O + 0.270GAH502U                 : ARR( 0.434E-13,  -900., 0.0);
+{ 39456} G2A5038 +PERO2              =  0.400G1A503y + 0.300GAH503O + 0.300GAH502U                 : ARR( 0.162E-13, -1400., 0.0);
+{ 39457} G2A5038 +PERO3              =  0.460G1A503y + 0.270GAH503O + 0.270GAH502U                 : ARR( 0.488E-13, -1250., 0.0);
+{ 39458} G2A5038 +PERO5              =  0.460G1A503y + 0.270GAH503O + 0.270GAH502U                 : ARR( 0.183E-11,   450., 0.0);
+{ 39459} G2A5038 +PERO6              =  0.300G1A503y + 0.350GAH503O + 0.350GAH502U                 : ARR( 0.168E-13, -1300., 0.0);
+{ 39460} G2A5038 +PERO9              =  0.650G1A503y + 0.350GAH502U                                : ARR( 0.100E-10,     0., 0.0);
+{ 39461} G3A500K +GHO2               =  0.800GAG500Q + 0.200GAA500F + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 39462} G3A500K +GNO                =       G2A400n +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 39463} G3A500K +GNO2               =       GPA500M                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 39464} G3A500K +GNO3               =       G2A400n +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 39465} G3A500K +MEPERO             =  0.685G2A400n + 0.315GAA500F + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 39466} G3A500K +PERO1              =  0.800G2A400n + 0.200GAA500F + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 39467} G3A500K +PERO2              =  0.750G2A400n + 0.250GAA500F + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 39468} G3A500K +PERO3              =  0.800G2A400n + 0.200GAA500F + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 39469} G3A500K +PERO5              =  0.650G2A400n + 0.350GAA500F + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 39470} G3A500K +PERO6              =  0.650G2A400n + 0.350GAA500F + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 39471} G3A500K +PERO9              =       G2A400n +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 39472} G2A5039 +GNO                =       G1A502M +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 39473} G2A5039 +GNO                =       GAN500k                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 39474} G2A5039 +GHO2               =       GAH501N                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 39475} G2A5039 +GNO3               =       G1A502M +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 39476} G2A5039 +MEPERO             =  0.340G1A502M + 0.330GAD5001 + 0.330GAD500A                 : ARR( 0.565E-13,  -845., 0.0);
+{ 39477} G2A5039 +PERO1              =  0.460G1A502M + 0.270GAD5001 + 0.270GAD500A                 : ARR( 0.434E-13,  -900., 0.0);
+{ 39478} G2A5039 +PERO2              =  0.400G1A502M + 0.300GAD5001 + 0.300GAD500A                 : ARR( 0.162E-13, -1400., 0.0);
+{ 39479} G2A5039 +PERO3              =  0.460G1A502M + 0.270GAD5001 + 0.270GAD500A                 : ARR( 0.488E-13, -1250., 0.0);
+{ 39480} G2A5039 +PERO5              =  0.460G1A502M + 0.270GAD5001 + 0.270GAD500A                 : ARR( 0.183E-11,   450., 0.0);
+{ 39481} G2A5039 +PERO6              =  0.300G1A502M + 0.350GAD5001 + 0.350GAD500A                 : ARR( 0.168E-13, -1300., 0.0);
+{ 39482} G2A5039 +PERO9              =  0.650G1A502M + 0.350GAD500A                                : ARR( 0.100E-10,     0., 0.0);
+{ 39483} G2A400n +GNO                =       G1A400P +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 39484} G2A400n +GNO                =       GAH4002                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 39485} G2A400n +GHO2               =       GAH400d                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 39486} G2A400n +GNO3               =       G1A400P +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 39487} G2A400n +MEPERO             =  0.480G1A400P + 0.260GAH4008 + 0.260GAH400Q                 : ARR( 0.146E-12,  -445., 0.0);
+{ 39488} G2A400n +PERO1              =  0.600G1A400P + 0.200GAH4008 + 0.200GAH400Q                 : ARR( 0.112E-12,  -500., 0.0);
+{ 39489} G2A400n +PERO2              =  0.560G1A400P + 0.220GAH4008 + 0.220GAH400Q                 : ARR( 0.418E-13, -1000., 0.0);
+{ 39490} G2A400n +PERO3              =  0.600G1A400P + 0.200GAH4008 + 0.200GAH400Q                 : ARR( 0.126E-12,  -850., 0.0);
+{ 39491} G2A400n +PERO5              =  0.600G1A400P + 0.200GAH4008 + 0.200GAH400Q                 : ARR( 0.473E-11,   850., 0.0);
+{ 39492} G2A400n +PERO6              =  0.460G1A400P + 0.270GAH4008 + 0.270GAH400Q                 : ARR( 0.434E-13,  -900., 0.0);
+{ 39493} G2A400n +PERO9              =  0.800G1A400P + 0.200GAH400Q                                : ARR( 0.100E-10,     0., 0.0);
+{ 39494} G1A503y                     =       GAD2000 +      GDD3000 +      GHO                     : ARR( 0.200E+15,  4500., 0.0);
+{ 39495} GAK500O +GHO                =       GAD500I +      GHO2                                   : ARR( 0.255E-11,     0., 0.0);
+{ 39496} GAK500O +GHO                =       G2A503A                                               : ARR( 0.546E-12,     0., 0.0);
+{ 39497} GAK500O +GHO                =       G3K4007 +      GCO2                                   : ARR( 0.541E-12,     0., 0.0);
+{ 39498} GAK500O+HV               =       G3K2001 +      G2A3006                                :  0.100E+01*SUN;
+{ 39499} GAK500O+HV               =       GDK4001 +      GCO2                                   :  0.100E+01*SUN;
+{ 39500} G2A503A +GNO                =       G1A503z +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 39501} G2A503A +GNO                =       GAN501p                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 39502} G2A503A +GHO2               =       GAH503I                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 39503} G2A503A +GNO3               =       G1A503z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 39504} G2A503A +MEPERO             =  0.340G1A503z + 0.330GAK500c + 0.330GAK500X                 : ARR( 0.565E-13,  -845., 0.0);
+{ 39505} G2A503A +PERO1              =  0.460G1A503z + 0.270GAK500c + 0.270GAK500X                 : ARR( 0.434E-13,  -900., 0.0);
+{ 39506} G2A503A +PERO2              =  0.400G1A503z + 0.300GAK500c + 0.300GAK500X                 : ARR( 0.162E-13, -1400., 0.0);
+{ 39507} G2A503A +PERO3              =  0.460G1A503z + 0.270GAK500c + 0.270GAK500X                 : ARR( 0.488E-13, -1250., 0.0);
+{ 39508} G2A503A +PERO5              =  0.460G1A503z + 0.270GAK500c + 0.270GAK500X                 : ARR( 0.183E-11,   450., 0.0);
+{ 39509} G2A503A +PERO6              =  0.300G1A503z + 0.350GAK500c + 0.350GAK500X                 : ARR( 0.168E-13, -1300., 0.0);
+{ 39510} G2A503A +PERO9              =  0.650G1A503z + 0.350GAK500X                                : ARR( 0.100E-10,     0., 0.0);
+{ 39511} G1A503z                     =       G3K2001 +      GAD3002                                : ARR( 0.200E+15,  4623., 0.0);
+{ 39512} G1A503z                     =       GDK3001 +      GCO     +      GHO     +      GCO      : ARR( 0.200E+15,  4856., 0.0);
+{ 39513} GAD4005 +GHO                =       G3A4003                                               : ARR( 0.669E-10,     0., 0.0);
+{ 39514} GAD4005 +GNO3               =       G3A4003 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 39515} GAD4005+HV               =       GDD3000 +      GCO2                                   :  0.100E+01*SUN;
+{ 39516} GAD4005+HV               =       G2A3006 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 39517} GAG5002 +GHO                =       GAG500N +      GHO2                                   : ARR( 0.494E-11,     0., 0.0);
+{ 39518} GAG5002 +GHO                =       G2A503B                                               : ARR( 0.150E-11,     0., 0.0);
+{ 39519} GAG5002 +GHO                =       G2A503C                                               : ARR( 0.916E-12,     0., 0.0);
+{ 39520} GAG5002 +GHO                =       G3A5001                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 39521} GAG5002+HV               =       G2A400J +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 39522} G2A503B +GNO                =       G1A5041 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 39523} G2A503B +GNO                =       GAG5005                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 39524} G2A503B +GHO2               =       GAG500E                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 39525} G2A503B +GNO3               =       G1A5041 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 39526} G2A503B +MEPERO             =  0.340G1A5041 + 0.330GAG500G + 0.330GAG5009                 : ARR( 0.565E-13,  -845., 0.0);
+{ 39527} G2A503B +PERO1              =  0.460G1A5041 + 0.270GAG500G + 0.270GAG5009                 : ARR( 0.434E-13,  -900., 0.0);
+{ 39528} G2A503B +PERO2              =  0.400G1A5041 + 0.300GAG500G + 0.300GAG5009                 : ARR( 0.162E-13, -1400., 0.0);
+{ 39529} G2A503B +PERO3              =  0.460G1A5041 + 0.270GAG500G + 0.270GAG5009                 : ARR( 0.488E-13, -1250., 0.0);
+{ 39530} G2A503B +PERO5              =  0.460G1A5041 + 0.270GAG500G + 0.270GAG5009                 : ARR( 0.183E-11,   450., 0.0);
+{ 39531} G2A503B +PERO6              =  0.300G1A5041 + 0.350GAG500G + 0.350GAG5009                 : ARR( 0.168E-13, -1300., 0.0);
+{ 39532} G2A503B +PERO9              =  0.650G1A5041 + 0.350GAG5009                                : ARR( 0.100E-10,     0., 0.0);
+{ 39533} G2A503C +GNO                =       G1A5042 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 39534} G2A503C +GNO                =       GAG500O                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 39535} G2A503C +GHO2               =       GAG500P                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 39536} G2A503C +GNO3               =       G1A5042 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 39537} G2A503C +MEPERO             =  0.340G1A5042 + 0.330GAG5003 + 0.330GAG500R                 : ARR( 0.565E-13,  -845., 0.0);
+{ 39538} G2A503C +PERO1              =  0.460G1A5042 + 0.270GAG5003 + 0.270GAG500R                 : ARR( 0.434E-13,  -900., 0.0);
+{ 39539} G2A503C +PERO2              =  0.400G1A5042 + 0.300GAG5003 + 0.300GAG500R                 : ARR( 0.162E-13, -1400., 0.0);
+{ 39540} G2A503C +PERO3              =  0.460G1A5042 + 0.270GAG5003 + 0.270GAG500R                 : ARR( 0.488E-13, -1250., 0.0);
+{ 39541} G2A503C +PERO5              =  0.460G1A5042 + 0.270GAG5003 + 0.270GAG500R                 : ARR( 0.183E-11,   450., 0.0);
+{ 39542} G2A503C +PERO6              =  0.300G1A5042 + 0.350GAG5003 + 0.350GAG500R                 : ARR( 0.168E-13, -1300., 0.0);
+{ 39543} G2A503C +PERO9              =  0.650G1A5042 + 0.350GAG500R                                : ARR( 0.100E-10,     0., 0.0);
+{ 39544} G1A5041                     =       GAD2000 +      GGD3000 +      GHO2                    : ARR( 0.200E+15,  3292., 0.0);
+{ 39545} G1A5042                     =       GAD4002 +      GCO     +      GHO2                    : ARR( 0.200E+15,  4949., 0.0);
+{ 39546} GAA5001 +GHO                =       G2A503D                                               : ARR( 0.649E-12,     0., 0.0);
+{ 39547} GAA5001 +GHO                =       G2A503E                                               : ARR( 0.144E-11,     0., 0.0);
+{ 39548} GAA5001 +GHO                =       GAA500C +      GHO2                                   : ARR( 0.473E-11,     0., 0.0);
+{ 39549} GAA5001 +GHO                =       G2A400J +      GCO2                                   : ARR( 0.529E-12,     0., 0.0);
+{ 39550} GAA5001 +GHO                =       GAD4000 +      GHO2    +      GCO2                    : ARR( 0.529E-12,     0., 0.0);
+{ 39551} G2A503D +GNO                =       G1A5043 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 39552} G2A503D +GNO                =       GAA500D                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 39553} G2A503D +GHO2               =       GAA500E                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 39554} G2A503D +GNO3               =       G1A5043 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 39555} G2A503D +MEPERO             =  0.340G1A5043 + 0.330GAA5002 + 0.330GAA500G                 : ARR( 0.565E-13,  -845., 0.0);
+{ 39556} G2A503D +PERO1              =  0.460G1A5043 + 0.270GAA5002 + 0.270GAA500G                 : ARR( 0.434E-13,  -900., 0.0);
+{ 39557} G2A503D +PERO2              =  0.400G1A5043 + 0.300GAA5002 + 0.300GAA500G                 : ARR( 0.162E-13, -1400., 0.0);
+{ 39558} G2A503D +PERO3              =  0.460G1A5043 + 0.270GAA5002 + 0.270GAA500G                 : ARR( 0.488E-13, -1250., 0.0);
+{ 39559} G2A503D +PERO5              =  0.460G1A5043 + 0.270GAA5002 + 0.270GAA500G                 : ARR( 0.183E-11,   450., 0.0);
+{ 39560} G2A503D +PERO6              =  0.300G1A5043 + 0.350GAA5002 + 0.350GAA500G                 : ARR( 0.168E-13, -1300., 0.0);
+{ 39561} G2A503D +PERO9              =  0.650G1A5043 + 0.350GAA500G                                : ARR( 0.100E-10,     0., 0.0);
+{ 39562} G2A503E +GNO                =       G1A5044 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 39563} G2A503E +GNO                =       GAA5004                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 39564} G2A503E +GHO2               =       GAA5009                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 39565} G2A503E +GNO3               =       G1A5044 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 39566} G2A503E +MEPERO             =  0.340G1A5044 + 0.330GAA500B + 0.330GAA5006                 : ARR( 0.565E-13,  -845., 0.0);
+{ 39567} G2A503E +PERO1              =  0.460G1A5044 + 0.270GAA500B + 0.270GAA5006                 : ARR( 0.434E-13,  -900., 0.0);
+{ 39568} G2A503E +PERO2              =  0.400G1A5044 + 0.300GAA500B + 0.300GAA5006                 : ARR( 0.162E-13, -1400., 0.0);
+{ 39569} G2A503E +PERO3              =  0.460G1A5044 + 0.270GAA500B + 0.270GAA5006                 : ARR( 0.488E-13, -1250., 0.0);
+{ 39570} G2A503E +PERO5              =  0.460G1A5044 + 0.270GAA500B + 0.270GAA5006                 : ARR( 0.183E-11,   450., 0.0);
+{ 39571} G2A503E +PERO6              =  0.300G1A5044 + 0.350GAA500B + 0.350GAA5006                 : ARR( 0.168E-13, -1300., 0.0);
+{ 39572} G2A503E +PERO9              =  0.650G1A5044 + 0.350GAA5006                                : ARR( 0.100E-10,     0., 0.0);
+{ 39573} G1A5043                     =       GAD4002 +      GCO     +      GHO                     : ARR( 0.200E+15,  4918., 0.0);
+{ 39574} G1A5044                     =       GAD2000 +      GAD3000 +      GHO2                    : ARR( 0.200E+15,  3292., 0.0);
+{ 39575} GPA5001                     =       G3A5001 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 39576} GPA5001 +GHO                =       GPA500J +      GHO2                                   : ARR( 0.474E-11,     0., 0.0);
+{ 39577} GPA5001 +GHO                =       G2P502o                                               : ARR( 0.144E-11,     0., 0.0);
+{ 39578} GPA5001 +GHO                =       G2P502p                                               : ARR( 0.878E-12,     0., 0.0);
+{ 39579} GPA5001 +GHO                =       GPD4000 +      GHO2    +      GCO2                    : ARR( 0.530E-12,     0., 0.0);
+{ 39580} GPA5001+HV               =       G3A5001 +      GNO2                                   :  0.100E+01*SUN;
+{ 39581} G2P502o +GNO                =       G1P503Q +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 39582} G2P502o +GNO                =       GPA5005                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 39583} G2P502o +GHO2               =       GPA500F                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 39584} G2P502o +GNO3               =       G1P503Q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 39585} G2P502o +MEPERO             =  0.340G1P503Q + 0.330GPA500I + 0.330GPA5009                 : ARR( 0.565E-13,  -845., 0.0);
+{ 39586} G2P502o +PERO1              =  0.460G1P503Q + 0.270GPA500I + 0.270GPA5009                 : ARR( 0.434E-13,  -900., 0.0);
+{ 39587} G2P502o +PERO2              =  0.400G1P503Q + 0.300GPA500I + 0.300GPA5009                 : ARR( 0.162E-13, -1400., 0.0);
+{ 39588} G2P502o +PERO3              =  0.460G1P503Q + 0.270GPA500I + 0.270GPA5009                 : ARR( 0.488E-13, -1250., 0.0);
+{ 39589} G2P502o +PERO5              =  0.460G1P503Q + 0.270GPA500I + 0.270GPA5009                 : ARR( 0.183E-11,   450., 0.0);
+{ 39590} G2P502o +PERO6              =  0.300G1P503Q + 0.350GPA500I + 0.350GPA5009                 : ARR( 0.168E-13, -1300., 0.0);
+{ 39591} G2P502o +PERO9              =  0.650G1P503Q + 0.350GPA5009                                : ARR( 0.100E-10,     0., 0.0);
+{ 39592} G2P502p +GNO                =       G1P503R +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 39593} G2P502p +GNO                =       GPA500K                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 39594} G2P502p +GHO2               =       GPA500L                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 39595} G2P502p +GNO3               =       G1P503R +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 39596} G2P502p +MEPERO             =  0.340G1P503R + 0.330GPA5003 + 0.330GPA500P                 : ARR( 0.565E-13,  -845., 0.0);
+{ 39597} G2P502p +PERO1              =  0.460G1P503R + 0.270GPA5003 + 0.270GPA500P                 : ARR( 0.434E-13,  -900., 0.0);
+{ 39598} G2P502p +PERO2              =  0.400G1P503R + 0.300GPA5003 + 0.300GPA500P                 : ARR( 0.162E-13, -1400., 0.0);
+{ 39599} G2P502p +PERO3              =  0.460G1P503R + 0.270GPA5003 + 0.270GPA500P                 : ARR( 0.488E-13, -1250., 0.0);
+{ 39600} G2P502p +PERO5              =  0.460G1P503R + 0.270GPA5003 + 0.270GPA500P                 : ARR( 0.183E-11,   450., 0.0);
+{ 39601} G2P502p +PERO6              =  0.300G1P503R + 0.350GPA5003 + 0.350GPA500P                 : ARR( 0.168E-13, -1300., 0.0);
+{ 39602} G2P502p +PERO9              =  0.650G1P503R + 0.350GPA500P                                : ARR( 0.100E-10,     0., 0.0);
+{ 39603} G1P503Q                     =       GAD2000 +      GPD3000 +      GHO2                    : ARR( 0.200E+15,  3292., 0.0);
+{ 39604} G1P503R                     =       GAD4002 +      GCO     +      GNO2                    : ARR( 0.200E+15,  4949., 0.0);
+{ 39605} GAH400M +GHO                =       GAH400Y +      GHO2                                   : ARR( 0.477E-11,     0., 0.0);
+{ 39606} GAH400M +GHO                =       G2A400o                                               : ARR( 0.145E-11,     0., 0.0);
+{ 39607} GAH400M +GHO                =       GAD4002 +      GHO                                    : ARR( 0.165E-10,     0., 0.0);
+{ 39608} GAH400M +GHO                =       G2A400J                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 39609} GAH400M+HV               =       G1A400L +      GHO                                    :  0.100E+01*SUN;
+{ 39610} G2A400o +GNO                =       G1A400v +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 39611} G2A400o +GNO                =       GAH400g                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 39612} G2A400o +GHO2               =       GAH400t                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 39613} G2A400o +GNO3               =       G1A400v +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 39614} G2A400o +MEPERO             =  0.340G1A400v + 0.330GAH400f + 0.330GAH400h                 : ARR( 0.565E-13,  -845., 0.0);
+{ 39615} G2A400o +PERO1              =  0.460G1A400v + 0.270GAH400f + 0.270GAH400h                 : ARR( 0.434E-13,  -900., 0.0);
+{ 39616} G2A400o +PERO2              =  0.400G1A400v + 0.300GAH400f + 0.300GAH400h                 : ARR( 0.162E-13, -1400., 0.0);
+{ 39617} G2A400o +PERO3              =  0.460G1A400v + 0.270GAH400f + 0.270GAH400h                 : ARR( 0.488E-13, -1250., 0.0);
+{ 39618} G2A400o +PERO5              =  0.460G1A400v + 0.270GAH400f + 0.270GAH400h                 : ARR( 0.183E-11,   450., 0.0);
+{ 39619} G2A400o +PERO6              =  0.300G1A400v + 0.350GAH400f + 0.350GAH400h                 : ARR( 0.168E-13, -1300., 0.0);
+{ 39620} G2A400o +PERO9              =  0.650G1A400v + 0.350GAH400h                                : ARR( 0.100E-10,     0., 0.0);
+{ 39621} G1A400v                     =       GAD2000 +      GHD2000 +      GHO2                    : ARR( 0.200E+15,  3989., 0.0);
+{ 39622} GPH5016                     =       G3H501v +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 39623} GPH5016 +GHO                =       GPN5015 +      GHO                                    : ARR( 0.826E-11,     0., 0.0);
+{ 39624} GPH5016 +GHO                =       G2P502q                                               : ARR( 0.864E-12,     0., 0.0);
+{ 39625} GPH5016 +GHO                =       G2P500q                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 39626} GPH5016+HV               =       G1P503S +      GNO2                                   :  0.100E+01*SUN;
+{ 39627} GPH5016+HV               =       G1P503T +      GNO2                                   :  0.100E+01*SUN;
+{ 39628} GPH5016+HV               =       G1P500u +      GHO                                    :  0.100E+01*SUN;
+{ 39629} GPH5016+HV               =       G3H501v +      GNO2                                   :  0.100E+01*SUN;
+{ 39630} G2P502q +GNO                =       G1P503U +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 39631} G2P502q +GNO                =       GPH503d                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 39632} G2P502q +GHO2               =       GPH503e                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 39633} G2P502q +GNO3               =       G1P503U +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 39634} G2P502q +MEPERO             =  0.340G1P503U + 0.330GPH503f + 0.330GPH503g                 : ARR( 0.565E-13,  -845., 0.0);
+{ 39635} G2P502q +PERO1              =  0.460G1P503U + 0.270GPH503f + 0.270GPH503g                 : ARR( 0.434E-13,  -900., 0.0);
+{ 39636} G2P502q +PERO2              =  0.400G1P503U + 0.300GPH503f + 0.300GPH503g                 : ARR( 0.162E-13, -1400., 0.0);
+{ 39637} G2P502q +PERO3              =  0.460G1P503U + 0.270GPH503f + 0.270GPH503g                 : ARR( 0.488E-13, -1250., 0.0);
+{ 39638} G2P502q +PERO5              =  0.460G1P503U + 0.270GPH503f + 0.270GPH503g                 : ARR( 0.183E-11,   450., 0.0);
+{ 39639} G2P502q +PERO6              =  0.300G1P503U + 0.350GPH503f + 0.350GPH503g                 : ARR( 0.168E-13, -1300., 0.0);
+{ 39640} G2P502q +PERO9              =  0.650G1P503U + 0.350GPH503g                                : ARR( 0.100E-10,     0., 0.0);
+{ 39641} G1P503S                     =       G2P502r                                               : ARR( 0.160E+12,  3221., 0.0);
+{ 39642} G1P503T                     =       GND2000 +      GPD3000 +      GHO                     : ARR( 0.200E+15,  4826., 0.0);
+{ 39643} G1P503U                     =       GHN400v +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 39644} G2P502r +GNO                =       G1P503W +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 39645} G2P502r +GNO                =       GPH503H                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 39646} G2P502r +GHO2               =       GPH503h                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 39647} G2P502r +GNO3               =       G1P503W +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 39648} G2P502r +MEPERO             =  0.340G1P503W + 0.330GPH503i + 0.330GPH503M                 : ARR( 0.565E-13,  -845., 0.0);
+{ 39649} G2P502r +PERO1              =  0.460G1P503W + 0.270GPH503i + 0.270GPH503M                 : ARR( 0.434E-13,  -900., 0.0);
+{ 39650} G2P502r +PERO2              =  0.400G1P503W + 0.300GPH503i + 0.300GPH503M                 : ARR( 0.162E-13, -1400., 0.0);
+{ 39651} G2P502r +PERO3              =  0.460G1P503W + 0.270GPH503i + 0.270GPH503M                 : ARR( 0.488E-13, -1250., 0.0);
+{ 39652} G2P502r +PERO5              =  0.460G1P503W + 0.270GPH503i + 0.270GPH503M                 : ARR( 0.183E-11,   450., 0.0);
+{ 39653} G2P502r +PERO6              =  0.300G1P503W + 0.350GPH503i + 0.350GPH503M                 : ARR( 0.168E-13, -1300., 0.0);
+{ 39654} G2P502r +PERO9              =  0.650G1P503W + 0.350GPH503M                                : ARR( 0.100E-10,     0., 0.0);
+{ 39655} G1P503W                     =       GPH503j +      GHO2                                   : ARR( 0.160E+12,  3252., 0.0);
+{ 39656} G1P503W                     =       GHN400h +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 39657} GPN5019                     =       G3N501d +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 39658} GPN5019 +GHO                =       GPN5015 +      GHO2                                   : ARR( 0.218E-11,     0., 0.0);
+{ 39659} GPN5019 +GHO                =       G2P502s                                               : ARR( 0.913E-12,     0., 0.0);
+{ 39660} GPN5019+HV               =       G1P503X +      GNO2                                   :  0.100E+01*SUN;
+{ 39661} GPN5019+HV               =       G1P503Y +      GNO2                                   :  0.100E+01*SUN;
+{ 39662} GPN5019+HV               =       G3N501d +      GNO2                                   :  0.100E+01*SUN;
+{ 39663} G2P502s +GNO                =       G1P503Z +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 39664} G2P502s +GNO                =       GPN502Q                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 39665} G2P502s +GHO2               =       GPH503k                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 39666} G2P502s +GNO3               =       G1P503Z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 39667} G2P502s +MEPERO             =  0.340G1P503Z + 0.330GPN502f + 0.330GPN502T                 : ARR( 0.565E-13,  -845., 0.0);
+{ 39668} G2P502s +PERO1              =  0.460G1P503Z + 0.270GPN502f + 0.270GPN502T                 : ARR( 0.434E-13,  -900., 0.0);
+{ 39669} G2P502s +PERO2              =  0.400G1P503Z + 0.300GPN502f + 0.300GPN502T                 : ARR( 0.162E-13, -1400., 0.0);
+{ 39670} G2P502s +PERO3              =  0.460G1P503Z + 0.270GPN502f + 0.270GPN502T                 : ARR( 0.488E-13, -1250., 0.0);
+{ 39671} G2P502s +PERO5              =  0.460G1P503Z + 0.270GPN502f + 0.270GPN502T                 : ARR( 0.183E-11,   450., 0.0);
+{ 39672} G2P502s +PERO6              =  0.300G1P503Z + 0.350GPN502f + 0.350GPN502T                 : ARR( 0.168E-13, -1300., 0.0);
+{ 39673} G2P502s +PERO9              =  0.650G1P503Z + 0.350GPN502T                                : ARR( 0.100E-10,     0., 0.0);
+{ 39674} G1P503X                     =       G2P502t                                               : ARR( 0.160E+12,  3221., 0.0);
+{ 39675} G1P503Y                     =       GND2000 +      GPD3000 +      GHO2                    : ARR( 0.200E+15,  3617., 0.0);
+{ 39676} G1P503Z                     =       GNN3005 +      GPD2000 +      GHO2                    : ARR( 0.200E+15,  5342., 0.0);
+{ 39677} G1P503Z                     =       GNN400T +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 39678} G2P502t +GNO                =       G1P503a +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 39679} G2P502t +GNO                =       GPN502W                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 39680} G2P502t +GHO2               =       GPH503l                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 39681} G2P502t +GNO3               =       G1P503a +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 39682} G2P502t +MEPERO             =  0.340G1P503a + 0.330GPN501y + 0.330GPN501z                 : ARR( 0.565E-13,  -845., 0.0);
+{ 39683} G2P502t +PERO1              =  0.460G1P503a + 0.270GPN501y + 0.270GPN501z                 : ARR( 0.434E-13,  -900., 0.0);
+{ 39684} G2P502t +PERO2              =  0.400G1P503a + 0.300GPN501y + 0.300GPN501z                 : ARR( 0.162E-13, -1400., 0.0);
+{ 39685} G2P502t +PERO3              =  0.460G1P503a + 0.270GPN501y + 0.270GPN501z                 : ARR( 0.488E-13, -1250., 0.0);
+{ 39686} G2P502t +PERO5              =  0.460G1P503a + 0.270GPN501y + 0.270GPN501z                 : ARR( 0.183E-11,   450., 0.0);
+{ 39687} G2P502t +PERO6              =  0.300G1P503a + 0.350GPN501y + 0.350GPN501z                 : ARR( 0.168E-13, -1300., 0.0);
+{ 39688} G2P502t +PERO9              =  0.650G1P503a + 0.350GPN501z                                : ARR( 0.100E-10,     0., 0.0);
+{ 39689} G1P503a                     =       GPN502g +      GHO2                                   : ARR( 0.160E+12,  3252., 0.0);
+{ 39690} G1P503a                     =       GND3004 +      GPD2000 +      GHO2                    : ARR( 0.200E+15,  5342., 0.0);
+{ 39691} G1P503a                     =       GND4009 +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 39692} GPN501A                     =       G3N500s +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 39693} GPN501A +GHO                =       GPN502C +      GNO2                                   : ARR( 0.919E-14,     0., 0.0);
+{ 39694} GPN501A +GHO                =       GPN501I +      GNO2                                   : ARR( 0.236E-13,     0., 0.0);
+{ 39695} GPN501A +GHO                =       G2P502u                                               : ARR( 0.565E-13,     0., 0.0);
+{ 39696} GPN501A +GHO                =       GPN501C +      GNO2                                   : ARR( 0.718E-13,     0., 0.0);
+{ 39697} GPN501A+HV               =       G1P502Q +      GNO2                                   :  0.100E+01*SUN;
+{ 39698} GPN501A+HV               =       G1P5015 +      GNO2                                   :  0.100E+01*SUN;
+{ 39699} GPN501A+HV               =       G1P500v +      GNO2                                   :  0.100E+01*SUN;
+{ 39700} GPN501A+HV               =       G3N500s +      GNO2                                   :  0.100E+01*SUN;
+{ 39701} G2P502u +GNO                =       G1P503b +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 39702} G2P502u +GNO                =       GPN502M                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 39703} G2P502u +GHO2               =       GPH503d                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 39704} G2P502u +GNO3               =       G1P503b +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 39705} G2P502u +MEPERO             =  0.340G1P503b + 0.330GPN502Q + 0.330GPN502Z                 : ARR( 0.565E-13,  -845., 0.0);
+{ 39706} G2P502u +PERO1              =  0.460G1P503b + 0.270GPN502Q + 0.270GPN502Z                 : ARR( 0.434E-13,  -900., 0.0);
+{ 39707} G2P502u +PERO2              =  0.400G1P503b + 0.300GPN502Q + 0.300GPN502Z                 : ARR( 0.162E-13, -1400., 0.0);
+{ 39708} G2P502u +PERO3              =  0.460G1P503b + 0.270GPN502Q + 0.270GPN502Z                 : ARR( 0.488E-13, -1250., 0.0);
+{ 39709} G2P502u +PERO5              =  0.460G1P503b + 0.270GPN502Q + 0.270GPN502Z                 : ARR( 0.183E-11,   450., 0.0);
+{ 39710} G2P502u +PERO6              =  0.300G1P503b + 0.350GPN502Q + 0.350GPN502Z                 : ARR( 0.168E-13, -1300., 0.0);
+{ 39711} G2P502u +PERO9              =  0.650G1P503b + 0.350GPN502Z                                : ARR( 0.100E-10,     0., 0.0);
+{ 39712} G1P503b                     =       GND2000 +      GPN3006 +      GNO2                    : ARR( 0.200E+15,  5492., 0.0);
+{ 39713} GPH5017                     =       G3H500y +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 39714} GPH5017 +GHO                =       GPN501C +      GHO                                    : ARR( 0.254E-10,     0., 0.0);
+{ 39715} GPH5017 +GHO                =       G2P500r                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 39716} GPH5017+HV               =       G1P503c +      GNO2                                   :  0.100E+01*SUN;
+{ 39717} GPH5017+HV               =       G1P503d +      GNO2                                   :  0.100E+01*SUN;
+{ 39718} GPH5017+HV               =       G1P500v +      GHO                                    :  0.100E+01*SUN;
+{ 39719} GPH5017+HV               =       G3H500y +      GNO2                                   :  0.100E+01*SUN;
+{ 39720} G1P503c                     =       GPN501F +      GHO                                    : ARR( 0.800E+11,  1899., 0.0);
+{ 39721} G1P503d                     =       GND2000 +      G2P300B                                : ARR( 0.200E+15,  7116., 0.0);
+{ 39722} GPN501B                     =       G3N5015 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 39723} GPN501B +GHO                =       GPN501C +      GHO2                                   : ARR( 0.674E-11,     0., 0.0);
+{ 39724} GPN501B+HV               =       G1P503e +      GNO2                                   :  0.100E+01*SUN;
+{ 39725} GPN501B+HV               =       G1P503f +      GNO2                                   :  0.100E+01*SUN;
+{ 39726} GPN501B+HV               =       G3N5015 +      GNO2                                   :  0.100E+01*SUN;
+{ 39727} G1P503e                     =       GPN501F +      GHO2                                   : ARR( 0.800E+11,  2246., 0.0);
+{ 39728} G1P503f                     =       GND2000 +      G2P3005                                : ARR( 0.200E+15,  7116., 0.0);
+{ 39729} GPN501C                     =       G3N501s +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 39730} GPN501C +GHO                =       GPN501K +      GNO2                                   : ARR( 0.774E-13,     0., 0.0);
+{ 39731} GPN501C +GHO                =       G2P502v                                               : ARR( 0.179E-12,     0., 0.0);
+{ 39732} GPN501C+HV               =       G1P502T +      GNO2                                   :  0.100E+01*SUN;
+{ 39733} GPN501C+HV               =       G1P501B +      GNO2                                   :  0.100E+01*SUN;
+{ 39734} GPN501C+HV               =       G3N4006 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 39735} G2P502v +GNO                =       G1P503g +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 39736} G2P502v +GNO                =       GPN502N                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 39737} G2P502v +GHO2               =       GPH503g                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 39738} G2P502v +GNO3               =       G1P503g +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 39739} G2P502v +MEPERO             =  0.340G1P503g + 0.330GPN502T + 0.330GPN502b                 : ARR( 0.565E-13,  -845., 0.0);
+{ 39740} G2P502v +PERO1              =  0.460G1P503g + 0.270GPN502T + 0.270GPN502b                 : ARR( 0.434E-13,  -900., 0.0);
+{ 39741} G2P502v +PERO2              =  0.400G1P503g + 0.300GPN502T + 0.300GPN502b                 : ARR( 0.162E-13, -1400., 0.0);
+{ 39742} G2P502v +PERO3              =  0.460G1P503g + 0.270GPN502T + 0.270GPN502b                 : ARR( 0.488E-13, -1250., 0.0);
+{ 39743} G2P502v +PERO5              =  0.460G1P503g + 0.270GPN502T + 0.270GPN502b                 : ARR( 0.183E-11,   450., 0.0);
+{ 39744} G2P502v +PERO6              =  0.300G1P503g + 0.350GPN502T + 0.350GPN502b                 : ARR( 0.168E-13, -1300., 0.0);
+{ 39745} G2P502v +PERO9              =  0.650G1P503g + 0.350GPN502b                                : ARR( 0.100E-10,     0., 0.0);
+{ 39746} G1P503g                     =       GNN3005 +      GCO     +      GNO2    +      GCO      : ARR( 0.200E+15,  3266., 0.0);
+{ 39747} GPN501D                     =       G3N500m +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 39748} GPN501D +GHO                =       GPN502C +      GHO2                                   : ARR( 0.844E-12,     0., 0.0);
+{ 39749} GPN501D +GHO                =       GPN501L +      GNO2                                   : ARR( 0.124E-12,     0., 0.0);
+{ 39750} GPN501D +GHO                =       GPN501F +      GNO2                                   : ARR( 0.754E-13,     0., 0.0);
+{ 39751} GPN501D +GHO                =       G1P502Q                                               : ARR( 0.220E-17,    85., 2.0);
+{ 39752} GPN501D+HV               =       G1P501D +      GNO2                                   :  0.100E+01*SUN;
+{ 39753} GPN501D+HV               =       G1P500w +      GNO2                                   :  0.100E+01*SUN;
+{ 39754} GPN501D+HV               =       G3N500m +      GNO2                                   :  0.100E+01*SUN;
+{ 39755} GPH5018                     =       G3H500s +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 39756} GPH5018 +GHO                =       GPN501F +      GHO                                    : ARR( 0.263E-10,     0., 0.0);
+{ 39757} GPH5018 +GHO                =       G2P500s                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 39758} GPH5018+HV               =       G1P503h +      GNO2                                   :  0.100E+01*SUN;
+{ 39759} GPH5018+HV               =       G1P500w +      GHO                                    :  0.100E+01*SUN;
+{ 39760} GPH5018+HV               =       G3H500s +      GNO2                                   :  0.100E+01*SUN;
+{ 39761} G1P503h                     =       GCH2O   +      GPH400U +      GHO2                    : ARR( 0.200E+15,  5041., 0.0);
+{ 39762} GPN501E                     =       G3N5012 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 39763} GPN501E +GHO                =       GPN501G +      GHO2                                   : ARR( 0.881E-12,     0., 0.0);
+{ 39764} GPN501E +GHO                =       GPN501F +      GHO2                                   : ARR( 0.689E-11,     0., 0.0);
+{ 39765} GPN501E+HV               =       G1P501E +      GNO2                                   :  0.100E+01*SUN;
+{ 39766} GPN501E+HV               =       G3N5012 +      GNO2                                   :  0.100E+01*SUN;
+{ 39767} GPN501F                     =       G3N501u +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 39768} GPN501F +GHO                =       GPN502D +      GHO2                                   : ARR( 0.804E-12,     0., 0.0);
+{ 39769} GPN501F +GHO                =       GPK500O +      GNO2                                   : ARR( 0.373E-12,     0., 0.0);
+{ 39770} GPN501F +GHO                =       G2P502w                                               : ARR( 0.172E-12,     0., 0.0);
+{ 39771} GPN501F +GHO                =       G1P502T                                               : ARR( 0.210E-17,    85., 2.0);
+{ 39772} GPN501F+HV               =       G1P501G +      GNO2                                   :  0.100E+01*SUN;
+{ 39773} GPN501F+HV               =       G3N4003 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 39774} G2P502w +GNO                =       G1P503i +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 39775} G2P502w +GNO                =       GPN501j                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 39776} G2P502w +GHO2               =       GPH503M                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 39777} G2P502w +GNO3               =       G1P503i +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 39778} G2P502w +MEPERO             =  0.340G1P503i + 0.330GPN501z + 0.330GPN5027                 : ARR( 0.565E-13,  -845., 0.0);
+{ 39779} G2P502w +PERO1              =  0.460G1P503i + 0.270GPN501z + 0.270GPN5027                 : ARR( 0.434E-13,  -900., 0.0);
+{ 39780} G2P502w +PERO2              =  0.400G1P503i + 0.300GPN501z + 0.300GPN5027                 : ARR( 0.162E-13, -1400., 0.0);
+{ 39781} G2P502w +PERO3              =  0.460G1P503i + 0.270GPN501z + 0.270GPN5027                 : ARR( 0.488E-13, -1250., 0.0);
+{ 39782} G2P502w +PERO5              =  0.460G1P503i + 0.270GPN501z + 0.270GPN5027                 : ARR( 0.183E-11,   450., 0.0);
+{ 39783} G2P502w +PERO6              =  0.300G1P503i + 0.350GPN501z + 0.350GPN5027                 : ARR( 0.168E-13, -1300., 0.0);
+{ 39784} G2P502w +PERO9              =  0.650G1P503i + 0.350GPN5027                                : ARR( 0.100E-10,     0., 0.0);
+{ 39785} G1P503i                     =       GND3004 +      GCO     +      GNO2    +      GCO      : ARR( 0.200E+15,  3266., 0.0);
+{ 39786} GPN501G                     =       G3N5013 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 39787} GPN501G +GHO                =       GPN502D +      GHO2                                   : ARR( 0.658E-11,     0., 0.0);
+{ 39788} GPN501G +GHO                =       G3P500F                                               : ARR( 0.435E-11,     0., 0.0);
+{ 39789} GPN501G +GNO3               =       G3P500F +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 39790} GPN501G+HV               =       G3N5013 +      GNO2                                   :  0.100E+01*SUN;
+{ 39791} GPN501G+HV               =       G1P503j +      GNO2                                   :  0.100E+01*SUN;
+{ 39792} GPN501G+HV               =       GPD4002 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 39793} GPN501G+HV               =       GPK3000 +      GND2000                                :  0.100E+01*SUN;
+{ 39794} G3P500F +GHO2               =  0.800GPG500L + 0.200GPA500Q + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 39795} G3P500F +GNO                =       GPD4002 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 39796} G3P500F +GNO2               =       GPP500A                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 39797} G3P500F +GNO3               =       GPD4002 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 39798} G3P500F +MEPERO             =  0.685GPD4002 + 0.315GPA500Q + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 39799} G3P500F +PERO1              =  0.800GPD4002 + 0.200GPA500Q + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 39800} G3P500F +PERO2              =  0.750GPD4002 + 0.250GPA500Q + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 39801} G3P500F +PERO3              =  0.800GPD4002 + 0.200GPA500Q + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 39802} G3P500F +PERO5              =  0.650GPD4002 + 0.350GPA500Q + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 39803} G3P500F +PERO6              =  0.650GPD4002 + 0.350GPA500Q + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 39804} G3P500F +PERO9              =       GPD4002 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 39805} G1P503j                     =       GPD4002 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5437., 0.0);
+{ 39806} GPH5019                     =       G3H500z +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 39807} GPH5019 +GHO                =       GPH501K +      GHO                                    : ARR( 0.837E-11,     0., 0.0);
+{ 39808} GPH5019 +GHO                =       GPH5014 +      GHO                                    : ARR( 0.419E-10,     0., 0.0);
+{ 39809} GPH5019 +GHO                =       G2P502x                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 39810} GPH5019 +GHO                =       G2P500t                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 39811} GPH5019+HV               =       G1P503k +      GNO2                                   :  0.100E+01*SUN;
+{ 39812} GPH5019+HV               =       G1P503T +      GHO                                    :  0.100E+01*SUN;
+{ 39813} GPH5019+HV               =       G1P500y +      GHO                                    :  0.100E+01*SUN;
+{ 39814} GPH5019+HV               =       G3H500z +      GNO2                                   :  0.100E+01*SUN;
+{ 39815} G2P502x +GNO                =       G1P503T +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 39816} G2P502x +GNO                =       GPH5016                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 39817} G2P502x +GHO2               =       GPH5019                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 39818} G2P502x +GNO3               =       G1P503T +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 39819} G2P502x +MEPERO             =  0.340G1P503T + 0.330GPH500C + 0.330GPH501K                 : ARR( 0.565E-13,  -845., 0.0);
+{ 39820} G2P502x +PERO1              =  0.460G1P503T + 0.270GPH500C + 0.270GPH501K                 : ARR( 0.434E-13,  -900., 0.0);
+{ 39821} G2P502x +PERO2              =  0.400G1P503T + 0.300GPH500C + 0.300GPH501K                 : ARR( 0.162E-13, -1400., 0.0);
+{ 39822} G2P502x +PERO3              =  0.460G1P503T + 0.270GPH500C + 0.270GPH501K                 : ARR( 0.488E-13, -1250., 0.0);
+{ 39823} G2P502x +PERO5              =  0.460G1P503T + 0.270GPH500C + 0.270GPH501K                 : ARR( 0.183E-11,   450., 0.0);
+{ 39824} G2P502x +PERO6              =  0.300G1P503T + 0.350GPH500C + 0.350GPH501K                 : ARR( 0.168E-13, -1300., 0.0);
+{ 39825} G2P502x +PERO9              =  0.650G1P503T + 0.350GPH501K                                : ARR( 0.100E-10,     0., 0.0);
+{ 39826} G1P503k                     =       G2P502y                                               : ARR( 0.160E+12,  3221., 0.0);
+{ 39827} G1P503k                     =       GPH400T +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{ 39828} G2P502y +GNO                =       G1P503l +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 39829} G2P502y +GNO                =       GPH503I                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 39830} G2P502y +GHO2               =       GPH503m                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 39831} G2P502y +GNO3               =       G1P503l +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 39832} G2P502y +MEPERO             =  0.340G1P503l + 0.330GPH503n + 0.330GPH503N                 : ARR( 0.565E-13,  -845., 0.0);
+{ 39833} G2P502y +PERO1              =  0.460G1P503l + 0.270GPH503n + 0.270GPH503N                 : ARR( 0.434E-13,  -900., 0.0);
+{ 39834} G2P502y +PERO2              =  0.400G1P503l + 0.300GPH503n + 0.300GPH503N                 : ARR( 0.162E-13, -1400., 0.0);
+{ 39835} G2P502y +PERO3              =  0.460G1P503l + 0.270GPH503n + 0.270GPH503N                 : ARR( 0.488E-13, -1250., 0.0);
+{ 39836} G2P502y +PERO5              =  0.460G1P503l + 0.270GPH503n + 0.270GPH503N                 : ARR( 0.183E-11,   450., 0.0);
+{ 39837} G2P502y +PERO6              =  0.300G1P503l + 0.350GPH503n + 0.350GPH503N                 : ARR( 0.168E-13, -1300., 0.0);
+{ 39838} G2P502y +PERO9              =  0.650G1P503l + 0.350GPH503N                                : ARR( 0.100E-10,     0., 0.0);
+{ 39839} G1P503l                     =       GPH503o +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{ 39840} G1P503l                     =       GHH4009 +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 39841} GPH501A                     =       G3H5011 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 39842} GPH501A +GHO                =       GPN501H +      GHO                                    : ARR( 0.863E-11,     0., 0.0);
+{ 39843} GPH501A +GHO                =       GPH5014 +      GHO2                                   : ARR( 0.108E-10,     0., 0.0);
+{ 39844} GPH501A +GHO                =       G2P502z                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 39845} GPH501A+HV               =       G1P503m +      GNO2                                   :  0.100E+01*SUN;
+{ 39846} GPH501A+HV               =       G1P503Y +      GHO                                    :  0.100E+01*SUN;
+{ 39847} GPH501A+HV               =       G3H5011 +      GNO2                                   :  0.100E+01*SUN;
+{ 39848} G2P502z +GNO                =       G1P503Y +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 39849} G2P502z +GNO                =       GPN5019                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 39850} G2P502z +GHO2               =       GPH501A                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 39851} G2P502z +GNO3               =       G1P503Y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 39852} G2P502z +MEPERO             =  0.340G1P503Y + 0.330GPN500K + 0.330GPN501H                 : ARR( 0.565E-13,  -845., 0.0);
+{ 39853} G2P502z +PERO1              =  0.460G1P503Y + 0.270GPN500K + 0.270GPN501H                 : ARR( 0.434E-13,  -900., 0.0);
+{ 39854} G2P502z +PERO2              =  0.400G1P503Y + 0.300GPN500K + 0.300GPN501H                 : ARR( 0.162E-13, -1400., 0.0);
+{ 39855} G2P502z +PERO3              =  0.460G1P503Y + 0.270GPN500K + 0.270GPN501H                 : ARR( 0.488E-13, -1250., 0.0);
+{ 39856} G2P502z +PERO5              =  0.460G1P503Y + 0.270GPN500K + 0.270GPN501H                 : ARR( 0.183E-11,   450., 0.0);
+{ 39857} G2P502z +PERO6              =  0.300G1P503Y + 0.350GPN500K + 0.350GPN501H                 : ARR( 0.168E-13, -1300., 0.0);
+{ 39858} G2P502z +PERO9              =  0.650G1P503Y + 0.350GPN501H                                : ARR( 0.100E-10,     0., 0.0);
+{ 39859} G1P503m                     =       G2P5031                                               : ARR( 0.160E+12,  3221., 0.0);
+{ 39860} G1P503m                     =       GPD4001 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{ 39861} G2P5031 +GNO                =       G1P503n +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 39862} G2P5031 +GNO                =       GPH503T                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 39863} G2P5031 +GHO2               =       GPH503p                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 39864} G2P5031 +GNO3               =       G1P503n +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 39865} G2P5031 +MEPERO             =  0.340G1P503n + 0.330GPH502O + 0.330GPH502P                 : ARR( 0.565E-13,  -845., 0.0);
+{ 39866} G2P5031 +PERO1              =  0.460G1P503n + 0.270GPH502O + 0.270GPH502P                 : ARR( 0.434E-13,  -900., 0.0);
+{ 39867} G2P5031 +PERO2              =  0.400G1P503n + 0.300GPH502O + 0.300GPH502P                 : ARR( 0.162E-13, -1400., 0.0);
+{ 39868} G2P5031 +PERO3              =  0.460G1P503n + 0.270GPH502O + 0.270GPH502P                 : ARR( 0.488E-13, -1250., 0.0);
+{ 39869} G2P5031 +PERO5              =  0.460G1P503n + 0.270GPH502O + 0.270GPH502P                 : ARR( 0.183E-11,   450., 0.0);
+{ 39870} G2P5031 +PERO6              =  0.300G1P503n + 0.350GPH502O + 0.350GPH502P                 : ARR( 0.168E-13, -1300., 0.0);
+{ 39871} G2P5031 +PERO9              =  0.650G1P503n + 0.350GPH502P                                : ARR( 0.100E-10,     0., 0.0);
+{ 39872} G1P503n                     =       GPH503q +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{ 39873} G1P503n                     =       GHD3003 +      GPD2000 +      GHO2                    : ARR( 0.200E+15,  5342., 0.0);
+{ 39874} G1P503n                     =       GHD4009 +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 39875} GPH501B                     =       G3H5016 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 39876} GPH501B +GHO                =       GPN501I +      GHO                                    : ARR( 0.852E-11,     0., 0.0);
+{ 39877} GPH501B +GHO                =       G2P500y                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 39878} GPH501B+HV               =       G1P503o +      GNO2                                   :  0.100E+01*SUN;
+{ 39879} GPH501B+HV               =       G1P5015 +      GHO                                    :  0.100E+01*SUN;
+{ 39880} GPH501B+HV               =       G1P500z +      GNO2                                   :  0.100E+01*SUN;
+{ 39881} GPH501B+HV               =       G3H5016 +      GNO2                                   :  0.100E+01*SUN;
+{ 39882} G1P503o +OXYGEN             =       GPH503r +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 39883} G1P503o                     =       GPH501I +      GNO2                                   : ARR( 0.800E+11,  4245., 0.0);
+{ 39884} G1P503o                     =       GPN400N +      GCH2O   +      GHO                     : ARR( 0.200E+15,  6008., 0.0);
+{ 39885} GPH501C                     =       G3H5017 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 39886} GPH501C +GHO                =       GPH501L +      GHO                                    : ARR( 0.854E-11,     0., 0.0);
+{ 39887} GPH501C +GHO                =       GPH501E +      GHO                                    : ARR( 0.260E-10,     0., 0.0);
+{ 39888} GPH501C +GHO                =       G2P5032                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 39889} GPH501C +GHO                =       G2P500u                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 39890} GPH501C+HV               =       G1P503p +      GNO2                                   :  0.100E+01*SUN;
+{ 39891} GPH501C+HV               =       G1P503d +      GHO                                    :  0.100E+01*SUN;
+{ 39892} GPH501C+HV               =       G1P500z +      GHO                                    :  0.100E+01*SUN;
+{ 39893} GPH501C+HV               =       G3H5017 +      GNO2                                   :  0.100E+01*SUN;
+{ 39894} G2P5032 +GNO                =       G1P503d +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 39895} G2P5032 +GNO                =       GPH5017                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 39896} G2P5032 +GHO2               =       GPH501C                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 39897} G2P5032 +GNO3               =       G1P503d +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 39898} G2P5032 +MEPERO             =  0.340G1P503d + 0.330GPH500D + 0.330GPH501L                 : ARR( 0.565E-13,  -845., 0.0);
+{ 39899} G2P5032 +PERO1              =  0.460G1P503d + 0.270GPH500D + 0.270GPH501L                 : ARR( 0.434E-13,  -900., 0.0);
+{ 39900} G2P5032 +PERO2              =  0.400G1P503d + 0.300GPH500D + 0.300GPH501L                 : ARR( 0.162E-13, -1400., 0.0);
+{ 39901} G2P5032 +PERO3              =  0.460G1P503d + 0.270GPH500D + 0.270GPH501L                 : ARR( 0.488E-13, -1250., 0.0);
+{ 39902} G2P5032 +PERO5              =  0.460G1P503d + 0.270GPH500D + 0.270GPH501L                 : ARR( 0.183E-11,   450., 0.0);
+{ 39903} G2P5032 +PERO6              =  0.300G1P503d + 0.350GPH500D + 0.350GPH501L                 : ARR( 0.168E-13, -1300., 0.0);
+{ 39904} G2P5032 +PERO9              =  0.650G1P503d + 0.350GPH501L                                : ARR( 0.100E-10,     0., 0.0);
+{ 39905} G1P503p                     =       GPH501I +      GHO                                    : ARR( 0.800E+11,  1899., 0.0);
+{ 39906} GPH501D                     =       G3H5018 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 39907} GPH501D +GHO                =       GPN501J +      GHO                                    : ARR( 0.832E-11,     0., 0.0);
+{ 39908} GPH501D +GHO                =       G2P5033                                               : ARR( 0.143E-11,     0., 0.0);
+{ 39909} GPH501D +GHO                =       GPH501E +      GHO2                                   : ARR( 0.634E-11,     0., 0.0);
+{ 39910} GPH501D +GHO                =       G2P5034                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 39911} GPH501D+HV               =       G1P503q +      GNO2                                   :  0.100E+01*SUN;
+{ 39912} GPH501D+HV               =       G1P503f +      GHO                                    :  0.100E+01*SUN;
+{ 39913} GPH501D+HV               =       G3H5018 +      GNO2                                   :  0.100E+01*SUN;
+{ 39914} G2P5033 +GNO                =       G1P503r +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 39915} G2P5033 +GNO                =       GPH503s                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 39916} G2P5033 +GHO2               =       GPH503t                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 39917} G2P5033 +GNO3               =       G1P503r +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 39918} G2P5033 +MEPERO             =  0.340G1P503r + 0.330GPH503u + 0.330GPH503Z                 : ARR( 0.565E-13,  -845., 0.0);
+{ 39919} G2P5033 +PERO1              =  0.460G1P503r + 0.270GPH503u + 0.270GPH503Z                 : ARR( 0.434E-13,  -900., 0.0);
+{ 39920} G2P5033 +PERO2              =  0.400G1P503r + 0.300GPH503u + 0.300GPH503Z                 : ARR( 0.162E-13, -1400., 0.0);
+{ 39921} G2P5033 +PERO3              =  0.460G1P503r + 0.270GPH503u + 0.270GPH503Z                 : ARR( 0.488E-13, -1250., 0.0);
+{ 39922} G2P5033 +PERO5              =  0.460G1P503r + 0.270GPH503u + 0.270GPH503Z                 : ARR( 0.183E-11,   450., 0.0);
+{ 39923} G2P5033 +PERO6              =  0.300G1P503r + 0.350GPH503u + 0.350GPH503Z                 : ARR( 0.168E-13, -1300., 0.0);
+{ 39924} G2P5033 +PERO9              =  0.650G1P503r + 0.350GPH503Z                                : ARR( 0.100E-10,     0., 0.0);
+{ 39925} G2P5034 +GNO                =       G1P503f +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 39926} G2P5034 +GNO                =       GPN501B                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 39927} G2P5034 +GHO2               =       GPH501D                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 39928} G2P5034 +GNO3               =       G1P503f +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 39929} G2P5034 +MEPERO             =  0.340G1P503f + 0.330GPN500J + 0.330GPN501J                 : ARR( 0.565E-13,  -845., 0.0);
+{ 39930} G2P5034 +PERO1              =  0.460G1P503f + 0.270GPN500J + 0.270GPN501J                 : ARR( 0.434E-13,  -900., 0.0);
+{ 39931} G2P5034 +PERO2              =  0.400G1P503f + 0.300GPN500J + 0.300GPN501J                 : ARR( 0.162E-13, -1400., 0.0);
+{ 39932} G2P5034 +PERO3              =  0.460G1P503f + 0.270GPN500J + 0.270GPN501J                 : ARR( 0.488E-13, -1250., 0.0);
+{ 39933} G2P5034 +PERO5              =  0.460G1P503f + 0.270GPN500J + 0.270GPN501J                 : ARR( 0.183E-11,   450., 0.0);
+{ 39934} G2P5034 +PERO6              =  0.300G1P503f + 0.350GPN500J + 0.350GPN501J                 : ARR( 0.168E-13, -1300., 0.0);
+{ 39935} G2P5034 +PERO9              =  0.650G1P503f + 0.350GPN501J                                : ARR( 0.100E-10,     0., 0.0);
+{ 39936} G1P503q                     =       GPH501I +      GHO2                                   : ARR( 0.800E+11,  2246., 0.0);
+{ 39937} G1P503r                     =       GND2000 +      GPD3001 +      GHO                     : ARR( 0.200E+15,  3953., 0.0);
+{ 39938} G1P503r                     =       GHN3007 +      GPD2000 +      GHO2                    : ARR( 0.200E+15,  3929., 0.0);
+{ 39939} GPH501E                     =       G3H502W +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 39940} GPH501E +GHO                =       GPN501K +      GHO                                    : ARR( 0.269E-10,     0., 0.0);
+{ 39941} GPH501E +GHO                =       G2P5012                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 39942} GPH501E+HV               =       G1P503s +      GNO2                                   :  0.100E+01*SUN;
+{ 39943} GPH501E+HV               =       G1P501B +      GHO                                    :  0.100E+01*SUN;
+{ 39944} GPH501E+HV               =       G3H4002 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 39945} G1P503s +OXYGEN             =       GPH503v +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 39946} G1P503s                     =       GPD4005 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5636., 0.0);
+{ 39947} GPH501F                     =       G3H500j +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 39948} GPH501F +GHO                =       GPH503r +      GHO2                                   : ARR( 0.406E-11,     0., 0.0);
+{ 39949} GPH501F +GHO                =       GPN501L +      GHO                                    : ARR( 0.416E-10,     0., 0.0);
+{ 39950} GPH501F +GHO                =       G2P5014                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 39951} GPH501F+HV               =       G1P501D +      GHO                                    :  0.100E+01*SUN;
+{ 39952} GPH501F+HV               =       G1P5011 +      GNO2                                   :  0.100E+01*SUN;
+{ 39953} GPH501F+HV               =       G3H500j +      GNO2                                   :  0.100E+01*SUN;
+{ 39954} GPH501G                     =       G3H5012 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 39955} GPH501G +GHO                =       GPH503w +      GHO2                                   : ARR( 0.452E-11,     0., 0.0);
+{ 39956} GPH501G +GHO                =       GPH501Z +      GHO                                    : ARR( 0.463E-10,     0., 0.0);
+{ 39957} GPH501G +GHO                =       GPH501I +      GHO                                    : ARR( 0.283E-10,     0., 0.0);
+{ 39958} GPH501G+HV               =       G1P503h +      GHO                                    :  0.100E+01*SUN;
+{ 39959} GPH501G+HV               =       G1P5011 +      GHO                                    :  0.100E+01*SUN;
+{ 39960} GPH501G+HV               =       G3H5012 +      GNO2                                   :  0.100E+01*SUN;
+{ 39961} GPH501H                     =       G3H5013 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 39962} GPH501H +GHO                =       GPH501J +      GHO2                                   : ARR( 0.414E-11,     0., 0.0);
+{ 39963} GPH501H +GHO                =       GPK500L +      GHO                                    : ARR( 0.425E-10,     0., 0.0);
+{ 39964} GPH501H +GHO                =       GPH501I +      GHO2                                   : ARR( 0.648E-11,     0., 0.0);
+{ 39965} GPH501H +GHO                =       G2P5015                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 39966} GPH501H+HV               =       G1P501E +      GHO                                    :  0.100E+01*SUN;
+{ 39967} GPH501H+HV               =       G3H5013 +      GNO2                                   :  0.100E+01*SUN;
+{ 39968} GPH501I                     =       G3H502Y +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 39969} GPH501I +GHO                =       GPK500O +      GHO                                    : ARR( 0.139E-09,     0., 0.0);
+{ 39970} GPH501I+HV               =       G1P501G +      GHO                                    :  0.100E+01*SUN;
+{ 39971} GPH501I+HV               =       G3H4003 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 39972} G3H502Y +GHO2               =  0.800GGH5016 + 0.200GAH501J + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 39973} G3H502Y +GNO                =       G3H4003 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 39974} G3H502Y +GNO2               =       GPH501I                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 39975} G3H502Y +GNO3               =       G3H4003 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 39976} G3H502Y +MEPERO             =  0.685G3H4003 + 0.315GAH501J + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 39977} G3H502Y +PERO1              =  0.800G3H4003 + 0.200GAH501J + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 39978} G3H502Y +PERO2              =  0.750G3H4003 + 0.250GAH501J + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 39979} G3H502Y +PERO3              =  0.800G3H4003 + 0.200GAH501J + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 39980} G3H502Y +PERO5              =  0.650G3H4003 + 0.350GAH501J + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 39981} G3H502Y +PERO6              =  0.650G3H4003 + 0.350GAH501J + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 39982} G3H502Y +PERO9              =       G3H4003 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 39983} GPH501J                     =       G3H5014 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 39984} GPH501J +GHO                =       GPH503v +      GHO2                                   : ARR( 0.630E-11,     0., 0.0);
+{ 39985} GPH501J +GHO                =       G2P5035                                               : ARR( 0.449E-11,     0., 0.0);
+{ 39986} GPH501J +GHO                =       GPD500C +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 39987} GPH501J +GHO                =       G3P500G                                               : ARR( 0.208E-10,     0., 0.0);
+{ 39988} GPH501J +GHO                =       G2P5036                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 39989} GPH501J +GNO3               =       G3P500G +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 39990} GPH501J+HV               =       G3H5014 +      GNO2                                   :  0.100E+01*SUN;
+{ 39991} GPH501J+HV               =       G1P503j +      GHO                                    :  0.100E+01*SUN;
+{ 39992} GPH501J+HV               =       GPD4002 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 39993} G2P5035 +GNO                =       G1P503t +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 39994} G2P5035 +GNO                =       GPH503B                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 39995} G2P5035 +GHO2               =       GPH503o                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 39996} G2P5035 +GNO3               =       G1P503t +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 39997} G2P5035 +MEPERO             =  0.340G1P503t + 0.330GPH503q + 0.330GPH503x                 : ARR( 0.565E-13,  -845., 0.0);
+{ 39998} G2P5035 +PERO1              =  0.460G1P503t + 0.270GPH503q + 0.270GPH503x                 : ARR( 0.434E-13,  -900., 0.0);
+{ 39999} G2P5035 +PERO2              =  0.400G1P503t + 0.300GPH503q + 0.300GPH503x                 : ARR( 0.162E-13, -1400., 0.0);
+{ 40000} G2P5035 +PERO3              =  0.460G1P503t + 0.270GPH503q + 0.270GPH503x                 : ARR( 0.488E-13, -1250., 0.0);
+{ 40001} G2P5035 +PERO5              =  0.460G1P503t + 0.270GPH503q + 0.270GPH503x                 : ARR( 0.183E-11,   450., 0.0);
+{ 40002} G2P5035 +PERO6              =  0.300G1P503t + 0.350GPH503q + 0.350GPH503x                 : ARR( 0.168E-13, -1300., 0.0);
+{ 40003} G2P5035 +PERO9              =  0.650G1P503t + 0.350GPH503x                                : ARR( 0.100E-10,     0., 0.0);
+{ 40004} G3P500G +GHO2               =  0.800GPG500M + 0.200GPA500R + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 40005} G3P500G +GNO                =       GPD4002 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 40006} G3P500G +GNO2               =       GPP500B                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 40007} G3P500G +GNO3               =       GPD4002 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 40008} G3P500G +MEPERO             =  0.685GPD4002 + 0.315GPA500R + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40009} G3P500G +PERO1              =  0.800GPD4002 + 0.200GPA500R + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40010} G3P500G +PERO2              =  0.750GPD4002 + 0.250GPA500R + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40011} G3P500G +PERO3              =  0.800GPD4002 + 0.200GPA500R + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40012} G3P500G +PERO5              =  0.650GPD4002 + 0.350GPA500R + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40013} G3P500G +PERO6              =  0.650GPD4002 + 0.350GPA500R + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40014} G3P500G +PERO9              =       GPD4002 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 40015} G2P5036 +GNO                =       G1P503j +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 40016} G2P5036 +GNO                =       GPN501G                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 40017} G2P5036 +GHO2               =       GPH501J                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 40018} G2P5036 +GNO3               =       G1P503j +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 40019} G2P5036 +MEPERO             =  0.340G1P503j + 0.330GPD5002 + 0.330GPD500C                 : ARR( 0.565E-13,  -845., 0.0);
+{ 40020} G2P5036 +PERO1              =  0.460G1P503j + 0.270GPD5002 + 0.270GPD500C                 : ARR( 0.434E-13,  -900., 0.0);
+{ 40021} G2P5036 +PERO2              =  0.400G1P503j + 0.300GPD5002 + 0.300GPD500C                 : ARR( 0.162E-13, -1400., 0.0);
+{ 40022} G2P5036 +PERO3              =  0.460G1P503j + 0.270GPD5002 + 0.270GPD500C                 : ARR( 0.488E-13, -1250., 0.0);
+{ 40023} G2P5036 +PERO5              =  0.460G1P503j + 0.270GPD5002 + 0.270GPD500C                 : ARR( 0.183E-11,   450., 0.0);
+{ 40024} G2P5036 +PERO6              =  0.300G1P503j + 0.350GPD5002 + 0.350GPD500C                 : ARR( 0.168E-13, -1300., 0.0);
+{ 40025} G2P5036 +PERO9              =  0.650G1P503j + 0.350GPD500C                                : ARR( 0.100E-10,     0., 0.0);
+{ 40026} G1P503t                     =       GPD2000 +      GHD3004 +      GHO2                    : ARR( 0.200E+15,  3099., 0.0);
+{ 40027} G1P503t                     =       GPD3001 +      GDD2000 +      GHO                     : ARR( 0.200E+15,  4086., 0.0);
+{ 40028} GPH501K                     =       G3H501D +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 40029} GPH501K +GHO                =       GPN5016 +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 40030} GPH501K +GHO                =       G2P5037                                               : ARR( 0.273E-11,     0., 0.0);
+{ 40031} GPH501K +GHO                =       G2P500w                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 40032} GPH501K+HV               =       G1P503u +      GNO2                                   :  0.100E+01*SUN;
+{ 40033} GPH501K+HV               =       G3N2000 +      GPD3000 +      GHO                     :  0.100E+01*SUN;
+{ 40034} GPH501K+HV               =       G1P5013 +      GHO                                    :  0.100E+01*SUN;
+{ 40035} GPH501K+HV               =       G3H501D +      GNO2                                   :  0.100E+01*SUN;
+{ 40036} G2P5037 +GNO                =       G1P503v +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 40037} G2P5037 +GNO                =       GPH503y                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 40038} G2P5037 +GHO2               =       GPH503z                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 40039} G2P5037 +GNO3               =       G1P503v +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 40040} G2P5037 +MEPERO             =  0.340G1P503v + 0.330GPH5041 + 0.330GPH5042                 : ARR( 0.565E-13,  -845., 0.0);
+{ 40041} G2P5037 +PERO1              =  0.460G1P503v + 0.270GPH5041 + 0.270GPH5042                 : ARR( 0.434E-13,  -900., 0.0);
+{ 40042} G2P5037 +PERO2              =  0.400G1P503v + 0.300GPH5041 + 0.300GPH5042                 : ARR( 0.162E-13, -1400., 0.0);
+{ 40043} G2P5037 +PERO3              =  0.460G1P503v + 0.270GPH5041 + 0.270GPH5042                 : ARR( 0.488E-13, -1250., 0.0);
+{ 40044} G2P5037 +PERO5              =  0.460G1P503v + 0.270GPH5041 + 0.270GPH5042                 : ARR( 0.183E-11,   450., 0.0);
+{ 40045} G2P5037 +PERO6              =  0.300G1P503v + 0.350GPH5041 + 0.350GPH5042                 : ARR( 0.168E-13, -1300., 0.0);
+{ 40046} G2P5037 +PERO9              =  0.650G1P503v + 0.350GPH5042                                : ARR( 0.100E-10,     0., 0.0);
+{ 40047} G1P503u                     =       G3P4009 +      GCH2O                                  : ARR( 0.200E+15,  3603., 0.0);
+{ 40048} G1P503v                     =       GHN400R +      GCO     +      GNO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 40049} G3P4009 +GHO2               =  0.800GPG400B + 0.200GPA400B + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 40050} G3P4009 +GNO                =       GPD3000 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 40051} G3P4009 +GNO2               =       GPP4006                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 40052} G3P4009 +GNO3               =       GPD3000 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 40053} G3P4009 +MEPERO             =  0.685GPD3000 + 0.315GPA400B + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40054} G3P4009 +PERO1              =  0.800GPD3000 + 0.200GPA400B + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40055} G3P4009 +PERO2              =  0.750GPD3000 + 0.250GPA400B + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40056} G3P4009 +PERO3              =  0.800GPD3000 + 0.200GPA400B + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40057} G3P4009 +PERO5              =  0.650GPD3000 + 0.350GPA400B + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40058} G3P4009 +PERO6              =  0.650GPD3000 + 0.350GPA400B + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40059} G3P4009 +PERO9              =       GPD3000 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 40060} GPN501H                     =       G3N5016 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 40061} GPN501H +GHO                =       GPN5016 +      GHO2                                   : ARR( 0.640E-11,     0., 0.0);
+{ 40062} GPN501H +GHO                =       G2P5038                                               : ARR( 0.278E-11,     0., 0.0);
+{ 40063} GPN501H+HV               =       G1P503w +      GNO2                                   :  0.100E+01*SUN;
+{ 40064} GPN501H+HV               =       G3N2000 +      GPD3000 +      GHO2                    :  0.100E+01*SUN;
+{ 40065} GPN501H+HV               =       G3N5016 +      GNO2                                   :  0.100E+01*SUN;
+{ 40066} G2P5038 +GNO                =       G1P503x +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 40067} G2P5038 +GNO                =       GPN502R                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 40068} G2P5038 +GHO2               =       GPH5043                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 40069} G2P5038 +GNO3               =       G1P503x +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 40070} G2P5038 +MEPERO             =  0.340G1P503x + 0.330GPN502h + 0.330GPN502U                 : ARR( 0.565E-13,  -845., 0.0);
+{ 40071} G2P5038 +PERO1              =  0.460G1P503x + 0.270GPN502h + 0.270GPN502U                 : ARR( 0.434E-13,  -900., 0.0);
+{ 40072} G2P5038 +PERO2              =  0.400G1P503x + 0.300GPN502h + 0.300GPN502U                 : ARR( 0.162E-13, -1400., 0.0);
+{ 40073} G2P5038 +PERO3              =  0.460G1P503x + 0.270GPN502h + 0.270GPN502U                 : ARR( 0.488E-13, -1250., 0.0);
+{ 40074} G2P5038 +PERO5              =  0.460G1P503x + 0.270GPN502h + 0.270GPN502U                 : ARR( 0.183E-11,   450., 0.0);
+{ 40075} G2P5038 +PERO6              =  0.300G1P503x + 0.350GPN502h + 0.350GPN502U                 : ARR( 0.168E-13, -1300., 0.0);
+{ 40076} G2P5038 +PERO9              =  0.650G1P503x + 0.350GPN502U                                : ARR( 0.100E-10,     0., 0.0);
+{ 40077} G1P503w                     =       G3P4004 +      GCH2O                                  : ARR( 0.200E+15,  3603., 0.0);
+{ 40078} G1P503x                     =       GND400E +      GCO     +      GNO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 40079} GPN501I                     =       G3N500t +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 40080} GPN501I +GHO                =       GPN502E +      GNO2                                   : ARR( 0.280E-13,     0., 0.0);
+{ 40081} GPN501I +GHO                =       G2P5039                                               : ARR( 0.172E-12,     0., 0.0);
+{ 40082} GPN501I +GHO                =       GPN501K +      GNO2                                   : ARR( 0.228E-12,     0., 0.0);
+{ 40083} GPN501I+HV               =       G1P502X +      GNO2                                   :  0.100E+01*SUN;
+{ 40084} GPN501I+HV               =       G3N2000 +      G2P3004                                :  0.100E+01*SUN;
+{ 40085} GPN501I+HV               =       G1P5014 +      GNO2                                   :  0.100E+01*SUN;
+{ 40086} GPN501I+HV               =       G3N500t +      GNO2                                   :  0.100E+01*SUN;
+{ 40087} G2P5039 +GNO                =       G1P503y +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 40088} G2P5039 +GNO                =       GPN502O                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 40089} G2P5039 +GHO2               =       GPH503y                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 40090} G2P5039 +GNO3               =       G1P503y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 40091} G2P5039 +MEPERO             =  0.340G1P503y + 0.330GPN502R + 0.330GPN502c                 : ARR( 0.565E-13,  -845., 0.0);
+{ 40092} G2P5039 +PERO1              =  0.460G1P503y + 0.270GPN502R + 0.270GPN502c                 : ARR( 0.434E-13,  -900., 0.0);
+{ 40093} G2P5039 +PERO2              =  0.400G1P503y + 0.300GPN502R + 0.300GPN502c                 : ARR( 0.162E-13, -1400., 0.0);
+{ 40094} G2P5039 +PERO3              =  0.460G1P503y + 0.270GPN502R + 0.270GPN502c                 : ARR( 0.488E-13, -1250., 0.0);
+{ 40095} G2P5039 +PERO5              =  0.460G1P503y + 0.270GPN502R + 0.270GPN502c                 : ARR( 0.183E-11,   450., 0.0);
+{ 40096} G2P5039 +PERO6              =  0.300G1P503y + 0.350GPN502R + 0.350GPN502c                 : ARR( 0.168E-13, -1300., 0.0);
+{ 40097} G2P5039 +PERO9              =  0.650G1P503y + 0.350GPN502c                                : ARR( 0.100E-10,     0., 0.0);
+{ 40098} G1P503y                     =       G3N2000 +      GPN3006                                : ARR( 0.200E+15,  2059., 0.0);
+{ 40099} GPH501L                     =       G3H501E +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 40100} GPH501L +GHO                =       GPN501K +      GHO                                    : ARR( 0.842E-10,     0., 0.0);
+{ 40101} GPH501L+HV               =       G1P503z +      GNO2                                   :  0.100E+01*SUN;
+{ 40102} GPH501L+HV               =       G3N2000 +      G2P300B                                :  0.100E+01*SUN;
+{ 40103} GPH501L+HV               =       G1P5014 +      GHO                                    :  0.100E+01*SUN;
+{ 40104} GPH501L+HV               =       G3H501E +      GNO2                                   :  0.100E+01*SUN;
+{ 40105} G1P503z                     =       G3P400A +      GCH2O                                  : ARR( 0.200E+15,  3576., 0.0);
+{ 40106} G3P400A +GHO2               =  0.800GPG400C + 0.200GPA400C + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 40107} G3P400A +GNO                =       G2P300B +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 40108} G3P400A +GNO2               =       GPP4006                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 40109} G3P400A +GNO3               =       G2P300B +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 40110} G3P400A +MEPERO             =  0.685G2P300B + 0.315GPA400C + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 40111} G3P400A +PERO1              =  0.800G2P300B + 0.200GPA400C + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 40112} G3P400A +PERO2              =  0.750G2P300B + 0.250GPA400C + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 40113} G3P400A +PERO3              =  0.800G2P300B + 0.200GPA400C + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 40114} G3P400A +PERO5              =  0.650G2P300B + 0.350GPA400C + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 40115} G3P400A +PERO6              =  0.650G2P300B + 0.350GPA400C + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 40116} G3P400A +PERO9              =       G2P300B +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 40117} GPN501J                     =       G3N5017 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 40118} GPN501J +GHO                =       GPN501K +      GHO2                                   : ARR( 0.209E-10,     0., 0.0);
+{ 40119} GPN501J+HV               =       G1P5041 +      GNO2                                   :  0.100E+01*SUN;
+{ 40120} GPN501J+HV               =       G3N2000 +      G2P3005                                :  0.100E+01*SUN;
+{ 40121} GPN501J+HV               =       G3N5017 +      GNO2                                   :  0.100E+01*SUN;
+{ 40122} G1P5041                     =       G3P4005 +      GCH2O                                  : ARR( 0.200E+15,  3576., 0.0);
+{ 40123} GPN501K                     =       G3N501t +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 40124} GPN501K +GHO                =       GPD500H +      GNO2                                   : ARR( 0.280E-13,     0., 0.0);
+{ 40125} GPN501K +GHO                =       G2P503A                                               : ARR( 0.525E-12,     0., 0.0);
+{ 40126} GPN501K+HV               =       G1P502Z +      GNO2                                   :  0.100E+01*SUN;
+{ 40127} GPN501K+HV               =       G3N2000 +      G2P3006                                :  0.100E+01*SUN;
+{ 40128} GPN501K+HV               =       G3N4007 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 40129} G2P503A +GNO                =       G1P5042 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 40130} G2P503A +GNO                =       GPN502P                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 40131} G2P503A +GHO2               =       GPH5042                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 40132} G2P503A +GNO3               =       G1P5042 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 40133} G2P503A +MEPERO             =  0.340G1P5042 + 0.330GPN502U + 0.330GPN502e                 : ARR( 0.565E-13,  -845., 0.0);
+{ 40134} G2P503A +PERO1              =  0.460G1P5042 + 0.270GPN502U + 0.270GPN502e                 : ARR( 0.434E-13,  -900., 0.0);
+{ 40135} G2P503A +PERO2              =  0.400G1P5042 + 0.300GPN502U + 0.300GPN502e                 : ARR( 0.162E-13, -1400., 0.0);
+{ 40136} G2P503A +PERO3              =  0.460G1P5042 + 0.270GPN502U + 0.270GPN502e                 : ARR( 0.488E-13, -1250., 0.0);
+{ 40137} G2P503A +PERO5              =  0.460G1P5042 + 0.270GPN502U + 0.270GPN502e                 : ARR( 0.183E-11,   450., 0.0);
+{ 40138} G2P503A +PERO6              =  0.300G1P5042 + 0.350GPN502U + 0.350GPN502e                 : ARR( 0.168E-13, -1300., 0.0);
+{ 40139} G2P503A +PERO9              =  0.650G1P5042 + 0.350GPN502e                                : ARR( 0.100E-10,     0., 0.0);
+{ 40140} G1P5042                     =       G3N2000 +      GPD3002                                : ARR( 0.200E+15,  4504., 0.0);
+{ 40141} G1P5042                     =       GND3003 +      GCO     +      GNO2    +      GCO      : ARR( 0.200E+15,  4856., 0.0);
+{ 40142} GPG4000                     =       G3G4000 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 40143} GPG4000 +GHO                =       G2P400l                                               : ARR( 0.862E-12,     0., 0.0);
+{ 40144} GPG4000 +GHO                =       G2P400m                                               : ARR( 0.862E-12,     0., 0.0);
+{ 40145} GPG4000 +GHO                =       G3P4000                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 40146} GPG4000+HV               =       G2P3000 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 40147} GPG4000+HV               =       G3G4000 +      GNO2                                   :  0.100E+01*SUN;
+{ 40148} G2P400l +GNO                =       G1P400v +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 40149} G2P400l +GNO                =       GPG4001                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 40150} G2P400l +GHO2               =       GPG400B                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 40151} G2P400l +GNO3               =       G1P400v +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 40152} G2P400l +MEPERO             =  0.340G1P400v + 0.330GPG4005 + 0.330GPG400A                 : ARR( 0.565E-13,  -845., 0.0);
+{ 40153} G2P400l +PERO1              =  0.460G1P400v + 0.270GPG4005 + 0.270GPG400A                 : ARR( 0.434E-13,  -900., 0.0);
+{ 40154} G2P400l +PERO2              =  0.400G1P400v + 0.300GPG4005 + 0.300GPG400A                 : ARR( 0.162E-13, -1400., 0.0);
+{ 40155} G2P400l +PERO3              =  0.460G1P400v + 0.270GPG4005 + 0.270GPG400A                 : ARR( 0.488E-13, -1250., 0.0);
+{ 40156} G2P400l +PERO5              =  0.460G1P400v + 0.270GPG4005 + 0.270GPG400A                 : ARR( 0.183E-11,   450., 0.0);
+{ 40157} G2P400l +PERO6              =  0.300G1P400v + 0.350GPG4005 + 0.350GPG400A                 : ARR( 0.168E-13, -1300., 0.0);
+{ 40158} G2P400l +PERO9              =  0.650G1P400v + 0.350GPG400A                                : ARR( 0.100E-10,     0., 0.0);
+{ 40159} G2P400m +GNO                =       G1P400w +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 40160} G2P400m +GNO                =       GPG4002                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 40161} G2P400m +GHO2               =       GPG400C                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 40162} G2P400m +GNO3               =       G1P400w +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 40163} G2P400m +MEPERO             =  0.340G1P400w + 0.330GPG4004 + 0.330GPG4003                 : ARR( 0.565E-13,  -845., 0.0);
+{ 40164} G2P400m +PERO1              =  0.460G1P400w + 0.270GPG4004 + 0.270GPG4003                 : ARR( 0.434E-13,  -900., 0.0);
+{ 40165} G2P400m +PERO2              =  0.400G1P400w + 0.300GPG4004 + 0.300GPG4003                 : ARR( 0.162E-13, -1400., 0.0);
+{ 40166} G2P400m +PERO3              =  0.460G1P400w + 0.270GPG4004 + 0.270GPG4003                 : ARR( 0.488E-13, -1250., 0.0);
+{ 40167} G2P400m +PERO5              =  0.460G1P400w + 0.270GPG4004 + 0.270GPG4003                 : ARR( 0.183E-11,   450., 0.0);
+{ 40168} G2P400m +PERO6              =  0.300G1P400w + 0.350GPG4004 + 0.350GPG4003                 : ARR( 0.168E-13, -1300., 0.0);
+{ 40169} G2P400m +PERO9              =  0.650G1P400w + 0.350GPG4003                                : ARR( 0.100E-10,     0., 0.0);
+{ 40170} G1P400v                     =       GCO     +      GPD3000 +      GHO2                    : ARR( 0.200E+15,  4566., 0.0);
+{ 40171} G1P400w                     =       GGD3000 +      GCO     +      GNO2                    : ARR( 0.200E+15,  4566., 0.0);
+{ 40172} GPP4000                     =       G3P4000 +      GNO2                                   : ARR( 0.400E+16, 12800., 0.0);
+{ 40173} GPP4000 +GHO                =       G2P400n                                               : ARR( 0.172E-11,     0., 0.0);
+{ 40174} GPP4000+HV               =       G3P4000 +      GNO2                                   :  0.200E+01*SUN;
+{ 40175} G2P400n +GNO                =       G1P400x +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 40176} G2P400n +GNO                =       GPP4001                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 40177} G2P400n +GHO2               =       GPP4006                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 40178} G2P400n +GNO3               =       G1P400x +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 40179} G2P400n +MEPERO             =  0.340G1P400x + 0.330GPP4003 + 0.330GPP4002                 : ARR( 0.565E-13,  -845., 0.0);
+{ 40180} G2P400n +PERO1              =  0.460G1P400x + 0.270GPP4003 + 0.270GPP4002                 : ARR( 0.434E-13,  -900., 0.0);
+{ 40181} G2P400n +PERO2              =  0.400G1P400x + 0.300GPP4003 + 0.300GPP4002                 : ARR( 0.162E-13, -1400., 0.0);
+{ 40182} G2P400n +PERO3              =  0.460G1P400x + 0.270GPP4003 + 0.270GPP4002                 : ARR( 0.488E-13, -1250., 0.0);
+{ 40183} G2P400n +PERO5              =  0.460G1P400x + 0.270GPP4003 + 0.270GPP4002                 : ARR( 0.183E-11,   450., 0.0);
+{ 40184} G2P400n +PERO6              =  0.300G1P400x + 0.350GPP4003 + 0.350GPP4002                 : ARR( 0.168E-13, -1300., 0.0);
+{ 40185} G2P400n +PERO9              =  0.650G1P400x + 0.350GPP4002                                : ARR( 0.100E-10,     0., 0.0);
+{ 40186} G1P400x                     =       GPD3000 +      GCO     +      GNO2                    : ARR( 0.200E+15,  4566., 0.0);
+{ 40187} GPH501M                     =       G3H501u +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 40188} GPH501M +GHO                =       GPN5017 +      GHO                                    : ARR( 0.852E-11,     0., 0.0);
+{ 40189} GPH501M +GHO                =       G2P500z                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 40190} GPH501M+HV               =       G1P5043 +      GNO2                                   :  0.100E+01*SUN;
+{ 40191} GPH501M+HV               =       G1P5016 +      GHO                                    :  0.100E+01*SUN;
+{ 40192} GPH501M+HV               =       G1P5044 +      GNO2                                   :  0.100E+01*SUN;
+{ 40193} GPH501M+HV               =       G3H501u +      GNO2                                   :  0.100E+01*SUN;
+{ 40194} G1P5043 +OXYGEN             =       GPH503G +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{ 40195} G1P5043                     =       GPH500y +      GNO2                                   : ARR( 0.800E+11,  4245., 0.0);
+{ 40196} G1P5044                     =       GHN400J +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 40197} GPH501N                     =       G3H501U +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 40198} GPH501N +GHO                =       GPN500v +      GHO                                    : ARR( 0.416E-10,     0., 0.0);
+{ 40199} GPH501N +GHO                =       GPH501O +      GHO2                                   : ARR( 0.634E-11,     0., 0.0);
+{ 40200} GPH501N +GHO                =       G2P5011                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 40201} GPH501N+HV               =       G1P502h +      GNO2                                   :  0.100E+01*SUN;
+{ 40202} GPH501N+HV               =       G1P5019 +      GHO                                    :  0.100E+01*SUN;
+{ 40203} GPH501N+HV               =       G3H501U +      GNO2                                   :  0.100E+01*SUN;
+{ 40204} GPH501O                     =       G3H502X +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 40205} GPH501O +GHO                =       GPN5018 +      GHO                                    : ARR( 0.260E-10,     0., 0.0);
+{ 40206} GPH501O +GHO                =       G2P5013                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 40207} GPH501O+HV               =       G1P5045 +      GNO2                                   :  0.100E+01*SUN;
+{ 40208} GPH501O+HV               =       G1P501C +      GHO                                    :  0.100E+01*SUN;
+{ 40209} GPH501O+HV               =       G3H400D +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 40210} G1P5045 +OXYGEN             =       GPH503L +      GHO2                                   : ARR( 0.600E-13,   557., 0.0);
+{ 40211} GPD5008                     =       G3D500E +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 40212} GPD5008 +GHO                =       G2P503B                                               : ARR( 0.273E-11,     0., 0.0);
+{ 40213} GPD5008 +GHO                =       G2P503C                                               : ARR( 0.273E-11,     0., 0.0);
+{ 40214} GPD5008 +GHO                =       G3P500H                                               : ARR( 0.208E-10,     0., 0.0);
+{ 40215} GPD5008 +GNO3               =       G3P500H +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 40216} GPD5008+HV               =       G3D4000 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 40217} GPD5008+HV               =       G2P400U +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 40218} G2P503B +GNO                =       G1P5046 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 40219} G2P503B +GNO                =       GPN501q                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 40220} G2P503B +GHO2               =       GPH503L                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 40221} G2P503B +GNO3               =       G1P5046 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 40222} G2P503B +MEPERO             =  0.340G1P5046 + 0.330GPD500E + 0.330GPD500G                 : ARR( 0.565E-13,  -845., 0.0);
+{ 40223} G2P503B +PERO1              =  0.460G1P5046 + 0.270GPD500E + 0.270GPD500G                 : ARR( 0.434E-13,  -900., 0.0);
+{ 40224} G2P503B +PERO2              =  0.400G1P5046 + 0.300GPD500E + 0.300GPD500G                 : ARR( 0.162E-13, -1400., 0.0);
+{ 40225} G2P503B +PERO3              =  0.460G1P5046 + 0.270GPD500E + 0.270GPD500G                 : ARR( 0.488E-13, -1250., 0.0);
+{ 40226} G2P503B +PERO5              =  0.460G1P5046 + 0.270GPD500E + 0.270GPD500G                 : ARR( 0.183E-11,   450., 0.0);
+{ 40227} G2P503B +PERO6              =  0.300G1P5046 + 0.350GPD500E + 0.350GPD500G                 : ARR( 0.168E-13, -1300., 0.0);
+{ 40228} G2P503B +PERO9              =  0.650G1P5046 + 0.350GPD500G                                : ARR( 0.100E-10,     0., 0.0);
+{ 40229} G2P503C +GNO                =       G1P5047 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 40230} G2P503C +GNO                =       GPN502D                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 40231} G2P503C +GHO2               =       GPH503v                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 40232} G2P503C +GNO3               =       G1P5047 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 40233} G2P503C +MEPERO             =  0.340G1P5047 + 0.330GPD500B + 0.330GPD500H                 : ARR( 0.565E-13,  -845., 0.0);
+{ 40234} G2P503C +PERO1              =  0.460G1P5047 + 0.270GPD500B + 0.270GPD500H                 : ARR( 0.434E-13,  -900., 0.0);
+{ 40235} G2P503C +PERO2              =  0.400G1P5047 + 0.300GPD500B + 0.300GPD500H                 : ARR( 0.162E-13, -1400., 0.0);
+{ 40236} G2P503C +PERO3              =  0.460G1P5047 + 0.270GPD500B + 0.270GPD500H                 : ARR( 0.488E-13, -1250., 0.0);
+{ 40237} G2P503C +PERO5              =  0.460G1P5047 + 0.270GPD500B + 0.270GPD500H                 : ARR( 0.183E-11,   450., 0.0);
+{ 40238} G2P503C +PERO6              =  0.300G1P5047 + 0.350GPD500B + 0.350GPD500H                 : ARR( 0.168E-13, -1300., 0.0);
+{ 40239} G2P503C +PERO9              =  0.650G1P5047 + 0.350GPD500H                                : ARR( 0.100E-10,     0., 0.0);
+{ 40240} G3P500H +GHO2               =  0.800GPG500N + 0.200GPA500O + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 40241} G3P500H +GNO                =       G2P400U +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 40242} G3P500H +GNO2               =       GPP500C                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 40243} G3P500H +GNO3               =       G2P400U +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 40244} G3P500H +MEPERO             =  0.685G2P400U + 0.315GPA500O + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 40245} G3P500H +PERO1              =  0.800G2P400U + 0.200GPA500O + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 40246} G3P500H +PERO2              =  0.750G2P400U + 0.250GPA500O + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 40247} G3P500H +PERO3              =  0.800G2P400U + 0.200GPA500O + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 40248} G3P500H +PERO5              =  0.650G2P400U + 0.350GPA500O + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 40249} G3P500H +PERO6              =  0.650G2P400U + 0.350GPA500O + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 40250} G3P500H +PERO9              =       G2P400U +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 40251} G1P5046                     =       GCO     +      GDD3000 +      GNO2    +      GCO      : ARR( 0.200E+15,  2628., 0.0);
+{ 40252} G1P5047                     =       GPD4005 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5054., 0.0);
+{ 40253} GPN501L                     =       G3N500n +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 40254} GPN501L +GHO                =       GPN502E +      GHO2                                   : ARR( 0.257E-11,     0., 0.0);
+{ 40255} GPN501L +GHO                =       G2P503D                                               : ARR( 0.181E-12,     0., 0.0);
+{ 40256} GPN501L +GHO                =       GPK500O +      GNO2                                   : ARR( 0.239E-12,     0., 0.0);
+{ 40257} GPN501L+HV               =       G3K2001 +      G2P3004                                :  0.100E+01*SUN;
+{ 40258} GPN501L+HV               =       G1P501g +      GNO2                                   :  0.100E+01*SUN;
+{ 40259} GPN501L+HV               =       G3N500n +      GNO2                                   :  0.100E+01*SUN;
+{ 40260} G2P503D +GNO                =       G1P5048 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 40261} G2P503D +GNO                =       GPN501r                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 40262} G2P503D +GHO2               =       GPH503J                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 40263} G2P503D +GNO3               =       G1P5048 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 40264} G2P503D +MEPERO             =  0.340G1P5048 + 0.330GPN502X + 0.330GPN502B                 : ARR( 0.565E-13,  -845., 0.0);
+{ 40265} G2P503D +PERO1              =  0.460G1P5048 + 0.270GPN502X + 0.270GPN502B                 : ARR( 0.434E-13,  -900., 0.0);
+{ 40266} G2P503D +PERO2              =  0.400G1P5048 + 0.300GPN502X + 0.300GPN502B                 : ARR( 0.162E-13, -1400., 0.0);
+{ 40267} G2P503D +PERO3              =  0.460G1P5048 + 0.270GPN502X + 0.270GPN502B                 : ARR( 0.488E-13, -1250., 0.0);
+{ 40268} G2P503D +PERO5              =  0.460G1P5048 + 0.270GPN502X + 0.270GPN502B                 : ARR( 0.183E-11,   450., 0.0);
+{ 40269} G2P503D +PERO6              =  0.300G1P5048 + 0.350GPN502X + 0.350GPN502B                 : ARR( 0.168E-13, -1300., 0.0);
+{ 40270} G2P503D +PERO9              =  0.650G1P5048 + 0.350GPN502B                                : ARR( 0.100E-10,     0., 0.0);
+{ 40271} G1P5048                     =       G3K2001 +      GPN3006                                : ARR( 0.200E+15,  2179., 0.0);
+{ 40272} GPH501P                     =       G3H500l +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 40273} GPH501P +GHO                =       GPD5008 +      GHO                                    : ARR( 0.255E-10,     0., 0.0);
+{ 40274} GPH501P +GHO                =       G2P503E                                               : ARR( 0.455E-11,     0., 0.0);
+{ 40275} GPH501P +GHO                =       G3P500I                                               : ARR( 0.211E-10,     0., 0.0);
+{ 40276} GPH501P +GHO                =       G2P503F                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 40277} GPH501P +GNO3               =       G3P500I +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 40278} GPH501P+HV               =       G3H500l +      GNO2                                   :  0.100E+01*SUN;
+{ 40279} GPH501P+HV               =       G1P502d +      GHO                                    :  0.100E+01*SUN;
+{ 40280} GPH501P+HV               =       G2P400o +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 40281} GPH501P+HV               =       G2P3006 +      GD02000 +      GHO                     :  0.100E+01*SUN;
+{ 40282} G2P503E +GNO                =       G1P5049 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 40283} G2P503E +GNO                =       GPH502G                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 40284} G2P503E +GHO2               =       GPH503K                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 40285} G2P503E +GNO3               =       G1P5049 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 40286} G2P503E +MEPERO             =  0.340G1P5049 + 0.330GPH503U + 0.330GPH502c                 : ARR( 0.565E-13,  -845., 0.0);
+{ 40287} G2P503E +PERO1              =  0.460G1P5049 + 0.270GPH503U + 0.270GPH502c                 : ARR( 0.434E-13,  -900., 0.0);
+{ 40288} G2P503E +PERO2              =  0.400G1P5049 + 0.300GPH503U + 0.300GPH502c                 : ARR( 0.162E-13, -1400., 0.0);
+{ 40289} G2P503E +PERO3              =  0.460G1P5049 + 0.270GPH503U + 0.270GPH502c                 : ARR( 0.488E-13, -1250., 0.0);
+{ 40290} G2P503E +PERO5              =  0.460G1P5049 + 0.270GPH503U + 0.270GPH502c                 : ARR( 0.183E-11,   450., 0.0);
+{ 40291} G2P503E +PERO6              =  0.300G1P5049 + 0.350GPH503U + 0.350GPH502c                 : ARR( 0.168E-13, -1300., 0.0);
+{ 40292} G2P503E +PERO9              =  0.650G1P5049 + 0.350GPH502c                                : ARR( 0.100E-10,     0., 0.0);
+{ 40293} G3P500I +GHO2               =  0.800GPG500O + 0.200GPA500N + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 40294} G3P500I +GNO                =       G2P400o +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 40295} G3P500I +GNO2               =       GPP500D                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 40296} G3P500I +GNO3               =       G2P400o +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 40297} G3P500I +MEPERO             =  0.685G2P400o + 0.315GPA500N + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 40298} G3P500I +PERO1              =  0.800G2P400o + 0.200GPA500N + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 40299} G3P500I +PERO2              =  0.750G2P400o + 0.250GPA500N + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 40300} G3P500I +PERO3              =  0.800G2P400o + 0.200GPA500N + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 40301} G3P500I +PERO5              =  0.650G2P400o + 0.350GPA500N + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 40302} G3P500I +PERO6              =  0.650G2P400o + 0.350GPA500N + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 40303} G3P500I +PERO9              =       G2P400o +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 40304} G2P503F +GNO                =       G1P502d +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 40305} G2P503F +GNO                =       GPN500m                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 40306} G2P503F +GHO2               =       GPH501P                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 40307} G2P503F +GNO3               =       G1P502d +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 40308} G2P503F +MEPERO             =  0.340G1P502d + 0.330GPD5000 + 0.330GPD5008                 : ARR( 0.565E-13,  -845., 0.0);
+{ 40309} G2P503F +PERO1              =  0.460G1P502d + 0.270GPD5000 + 0.270GPD5008                 : ARR( 0.434E-13,  -900., 0.0);
+{ 40310} G2P503F +PERO2              =  0.400G1P502d + 0.300GPD5000 + 0.300GPD5008                 : ARR( 0.162E-13, -1400., 0.0);
+{ 40311} G2P503F +PERO3              =  0.460G1P502d + 0.270GPD5000 + 0.270GPD5008                 : ARR( 0.488E-13, -1250., 0.0);
+{ 40312} G2P503F +PERO5              =  0.460G1P502d + 0.270GPD5000 + 0.270GPD5008                 : ARR( 0.183E-11,   450., 0.0);
+{ 40313} G2P503F +PERO6              =  0.300G1P502d + 0.350GPD5000 + 0.350GPD5008                 : ARR( 0.168E-13, -1300., 0.0);
+{ 40314} G2P503F +PERO9              =  0.650G1P502d + 0.350GPD5008                                : ARR( 0.100E-10,     0., 0.0);
+{ 40315} G2P400o +GNO                =       G1P400S +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 40316} G2P400o +GNO                =       GPH4003                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 40317} G2P400o +GHO2               =       GPH400e                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 40318} G2P400o +GNO3               =       G1P400S +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 40319} G2P400o +MEPERO             =  0.480G1P400S + 0.260GPH4008 + 0.260GPH400U                 : ARR( 0.146E-12,  -445., 0.0);
+{ 40320} G2P400o +PERO1              =  0.600G1P400S + 0.200GPH4008 + 0.200GPH400U                 : ARR( 0.112E-12,  -500., 0.0);
+{ 40321} G2P400o +PERO2              =  0.560G1P400S + 0.220GPH4008 + 0.220GPH400U                 : ARR( 0.418E-13, -1000., 0.0);
+{ 40322} G2P400o +PERO3              =  0.600G1P400S + 0.200GPH4008 + 0.200GPH400U                 : ARR( 0.126E-12,  -850., 0.0);
+{ 40323} G2P400o +PERO5              =  0.600G1P400S + 0.200GPH4008 + 0.200GPH400U                 : ARR( 0.473E-11,   850., 0.0);
+{ 40324} G2P400o +PERO6              =  0.460G1P400S + 0.270GPH4008 + 0.270GPH400U                 : ARR( 0.434E-13,  -900., 0.0);
+{ 40325} G2P400o +PERO9              =  0.800G1P400S + 0.200GPH400U                                : ARR( 0.100E-10,     0., 0.0);
+{ 40326} G1P5049                     =       GPD2000 +      GDD3000 +      GHO                     : ARR( 0.200E+15,  4500., 0.0);
+{ 40327} GPK500O                     =       G3K500j +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 40328} GPK500O +GHO                =       GPD500H +      GHO2                                   : ARR( 0.257E-11,     0., 0.0);
+{ 40329} GPK500O +GHO                =       G2P503G                                               : ARR( 0.550E-12,     0., 0.0);
+{ 40330} GPK500O+HV               =       G3K2001 +      G2P3006                                :  0.100E+01*SUN;
+{ 40331} GPK500O+HV               =       G3K4007 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 40332} G2P503G +GNO                =       G1P504A +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 40333} G2P503G +GNO                =       GPN501s                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 40334} G2P503G +GHO2               =       GPH503O                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 40335} G2P503G +GNO3               =       G1P504A +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 40336} G2P503G +MEPERO             =  0.340G1P504A + 0.330GPK500X + 0.330GPK500b                 : ARR( 0.565E-13,  -845., 0.0);
+{ 40337} G2P503G +PERO1              =  0.460G1P504A + 0.270GPK500X + 0.270GPK500b                 : ARR( 0.434E-13,  -900., 0.0);
+{ 40338} G2P503G +PERO2              =  0.400G1P504A + 0.300GPK500X + 0.300GPK500b                 : ARR( 0.162E-13, -1400., 0.0);
+{ 40339} G2P503G +PERO3              =  0.460G1P504A + 0.270GPK500X + 0.270GPK500b                 : ARR( 0.488E-13, -1250., 0.0);
+{ 40340} G2P503G +PERO5              =  0.460G1P504A + 0.270GPK500X + 0.270GPK500b                 : ARR( 0.183E-11,   450., 0.0);
+{ 40341} G2P503G +PERO6              =  0.300G1P504A + 0.350GPK500X + 0.350GPK500b                 : ARR( 0.168E-13, -1300., 0.0);
+{ 40342} G2P503G +PERO9              =  0.650G1P504A + 0.350GPK500b                                : ARR( 0.100E-10,     0., 0.0);
+{ 40343} G1P504A                     =       G3K2001 +      GPD3002                                : ARR( 0.200E+15,  4623., 0.0);
+{ 40344} G1P504A                     =       GDK3001 +      GCO     +      GNO2    +      GCO      : ARR( 0.200E+15,  4856., 0.0);
+{ 40345} GPD4005                     =       G3D4007 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 40346} GPD4005 +GHO                =       G3P4003                                               : ARR( 0.664E-10,     0., 0.0);
+{ 40347} GPD4005 +GNO3               =       G3P4003 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 40348} GPD4005+HV               =       G3D3000 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 40349} GPD4005+HV               =       G2P3006 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 40350} GPG5001                     =       G3G5001 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 40351} GPG5001 +GHO                =       G2P503H                                               : ARR( 0.872E-12,     0., 0.0);
+{ 40352} GPG5001 +GHO                =       G2P503I                                               : ARR( 0.143E-11,     0., 0.0);
+{ 40353} GPG5001 +GHO                =       GPG500N +      GHO2                                   : ARR( 0.635E-11,     0., 0.0);
+{ 40354} GPG5001 +GHO                =       G3P5000                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 40355} GPG5001+HV               =       G2P400L +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 40356} GPG5001+HV               =       G3G5001 +      GNO2                                   :  0.100E+01*SUN;
+{ 40357} G2P503H +GNO                =       G1P504B +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 40358} G2P503H +GNO                =       GPG500L                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 40359} G2P503H +GHO2               =       GPG500M                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 40360} G2P503H +GNO3               =       G1P504B +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 40361} G2P503H +MEPERO             =  0.340G1P504B + 0.330GPG5002 + 0.330GPG500P                 : ARR( 0.565E-13,  -845., 0.0);
+{ 40362} G2P503H +PERO1              =  0.460G1P504B + 0.270GPG5002 + 0.270GPG500P                 : ARR( 0.434E-13,  -900., 0.0);
+{ 40363} G2P503H +PERO2              =  0.400G1P504B + 0.300GPG5002 + 0.300GPG500P                 : ARR( 0.162E-13, -1400., 0.0);
+{ 40364} G2P503H +PERO3              =  0.460G1P504B + 0.270GPG5002 + 0.270GPG500P                 : ARR( 0.488E-13, -1250., 0.0);
+{ 40365} G2P503H +PERO5              =  0.460G1P504B + 0.270GPG5002 + 0.270GPG500P                 : ARR( 0.183E-11,   450., 0.0);
+{ 40366} G2P503H +PERO6              =  0.300G1P504B + 0.350GPG5002 + 0.350GPG500P                 : ARR( 0.168E-13, -1300., 0.0);
+{ 40367} G2P503H +PERO9              =  0.650G1P504B + 0.350GPG500P                                : ARR( 0.100E-10,     0., 0.0);
+{ 40368} G2P503I +GNO                =       G1P504C +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 40369} G2P503I +GNO                =       GPG5004                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 40370} G2P503I +GHO2               =       GPG500E                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 40371} G2P503I +GNO3               =       G1P504C +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 40372} G2P503I +MEPERO             =  0.340G1P504C + 0.330GPG5006 + 0.330GPG5009                 : ARR( 0.565E-13,  -845., 0.0);
+{ 40373} G2P503I +PERO1              =  0.460G1P504C + 0.270GPG5006 + 0.270GPG5009                 : ARR( 0.434E-13,  -900., 0.0);
+{ 40374} G2P503I +PERO2              =  0.400G1P504C + 0.300GPG5006 + 0.300GPG5009                 : ARR( 0.162E-13, -1400., 0.0);
+{ 40375} G2P503I +PERO3              =  0.460G1P504C + 0.270GPG5006 + 0.270GPG5009                 : ARR( 0.488E-13, -1250., 0.0);
+{ 40376} G2P503I +PERO5              =  0.460G1P504C + 0.270GPG5006 + 0.270GPG5009                 : ARR( 0.183E-11,   450., 0.0);
+{ 40377} G2P503I +PERO6              =  0.300G1P504C + 0.350GPG5006 + 0.350GPG5009                 : ARR( 0.168E-13, -1300., 0.0);
+{ 40378} G2P503I +PERO9              =  0.650G1P504C + 0.350GPG5009                                : ARR( 0.100E-10,     0., 0.0);
+{ 40379} G1P504B                     =       GCO     +      GPD4002 +      GHO2                    : ARR( 0.200E+15,  4949., 0.0);
+{ 40380} G1P504C                     =       GGD3000 +      GPD2000 +      GHO2                    : ARR( 0.200E+15,  3292., 0.0);
+{ 40381} GPA5002                     =       G3A5002 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 40382} GPA5002 +GHO                =       G2P503J                                               : ARR( 0.648E-12,     0., 0.0);
+{ 40383} GPA5002 +GHO                =       G2P503K                                               : ARR( 0.144E-11,     0., 0.0);
+{ 40384} GPA5002 +GHO                =       GPA500O +      GHO2                                   : ARR( 0.638E-11,     0., 0.0);
+{ 40385} GPA5002 +GHO                =       G2P400L +      GCO2                                   : ARR( 0.528E-12,     0., 0.0);
+{ 40386} GPA5002+HV               =       G3A5002 +      GNO2                                   :  0.100E+01*SUN;
+{ 40387} G2P503J +GNO                =       G1P504D +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 40388} G2P503J +GNO                =       GPA500Q                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 40389} G2P503J +GHO2               =       GPA500R                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 40390} G2P503J +GNO3               =       G1P504D +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 40391} G2P503J +MEPERO             =  0.340G1P504D + 0.330GPA5003 + 0.330GPA500S                 : ARR( 0.565E-13,  -845., 0.0);
+{ 40392} G2P503J +PERO1              =  0.460G1P504D + 0.270GPA5003 + 0.270GPA500S                 : ARR( 0.434E-13,  -900., 0.0);
+{ 40393} G2P503J +PERO2              =  0.400G1P504D + 0.300GPA5003 + 0.300GPA500S                 : ARR( 0.162E-13, -1400., 0.0);
+{ 40394} G2P503J +PERO3              =  0.460G1P504D + 0.270GPA5003 + 0.270GPA500S                 : ARR( 0.488E-13, -1250., 0.0);
+{ 40395} G2P503J +PERO5              =  0.460G1P504D + 0.270GPA5003 + 0.270GPA500S                 : ARR( 0.183E-11,   450., 0.0);
+{ 40396} G2P503J +PERO6              =  0.300G1P504D + 0.350GPA5003 + 0.350GPA500S                 : ARR( 0.168E-13, -1300., 0.0);
+{ 40397} G2P503J +PERO9              =  0.650G1P504D + 0.350GPA500S                                : ARR( 0.100E-10,     0., 0.0);
+{ 40398} G2P503K +GNO                =       G1P504E +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 40399} G2P503K +GNO                =       GPA5006                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 40400} G2P503K +GHO2               =       GPA500G                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 40401} G2P503K +GNO3               =       G1P504E +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 40402} G2P503K +MEPERO             =  0.340G1P504E + 0.330GPA5007 + 0.330GPA500A                 : ARR( 0.565E-13,  -845., 0.0);
+{ 40403} G2P503K +PERO1              =  0.460G1P504E + 0.270GPA5007 + 0.270GPA500A                 : ARR( 0.434E-13,  -900., 0.0);
+{ 40404} G2P503K +PERO2              =  0.400G1P504E + 0.300GPA5007 + 0.300GPA500A                 : ARR( 0.162E-13, -1400., 0.0);
+{ 40405} G2P503K +PERO3              =  0.460G1P504E + 0.270GPA5007 + 0.270GPA500A                 : ARR( 0.488E-13, -1250., 0.0);
+{ 40406} G2P503K +PERO5              =  0.460G1P504E + 0.270GPA5007 + 0.270GPA500A                 : ARR( 0.183E-11,   450., 0.0);
+{ 40407} G2P503K +PERO6              =  0.300G1P504E + 0.350GPA5007 + 0.350GPA500A                 : ARR( 0.168E-13, -1300., 0.0);
+{ 40408} G2P503K +PERO9              =  0.650G1P504E + 0.350GPA500A                                : ARR( 0.100E-10,     0., 0.0);
+{ 40409} G1P504D                     =       GCO     +      GPD4002 +      GHO                     : ARR( 0.200E+15,  4918., 0.0);
+{ 40410} G1P504E                     =       GAD3000 +      GPD2000 +      GHO2                    : ARR( 0.200E+15,  3292., 0.0);
+{ 40411} GPP5000                     =       G3P5000 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 40412} GPP5000                     =       G3P5001 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 40413} GPP5000 +GHO                =       G2P503L                                               : ARR( 0.876E-12,     0., 0.0);
+{ 40414} GPP5000 +GHO                =       G2P503M                                               : ARR( 0.144E-11,     0., 0.0);
+{ 40415} GPP5000 +GHO                =       GPP500C +      GHO2                                   : ARR( 0.639E-11,     0., 0.0);
+{ 40416} GPP5000+HV               =       G3P5000 +      GNO2                                   :  0.100E+01*SUN;
+{ 40417} GPP5000+HV               =       G3P5001 +      GNO2                                   :  0.100E+01*SUN;
+{ 40418} G2P503L +GNO                =       G1P504F +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 40419} G2P503L +GNO                =       GPP500A                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 40420} G2P503L +GHO2               =       GPP500B                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 40421} G2P503L +GNO3               =       G1P504F +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 40422} G2P503L +MEPERO             =  0.340G1P504F + 0.330GPP5001 + 0.330GPP500E                 : ARR( 0.565E-13,  -845., 0.0);
+{ 40423} G2P503L +PERO1              =  0.460G1P504F + 0.270GPP5001 + 0.270GPP500E                 : ARR( 0.434E-13,  -900., 0.0);
+{ 40424} G2P503L +PERO2              =  0.400G1P504F + 0.300GPP5001 + 0.300GPP500E                 : ARR( 0.162E-13, -1400., 0.0);
+{ 40425} G2P503L +PERO3              =  0.460G1P504F + 0.270GPP5001 + 0.270GPP500E                 : ARR( 0.488E-13, -1250., 0.0);
+{ 40426} G2P503L +PERO5              =  0.460G1P504F + 0.270GPP5001 + 0.270GPP500E                 : ARR( 0.183E-11,   450., 0.0);
+{ 40427} G2P503L +PERO6              =  0.300G1P504F + 0.350GPP5001 + 0.350GPP500E                 : ARR( 0.168E-13, -1300., 0.0);
+{ 40428} G2P503L +PERO9              =  0.650G1P504F + 0.350GPP500E                                : ARR( 0.100E-10,     0., 0.0);
+{ 40429} G2P503M +GNO                =       G1P504G +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 40430} G2P503M +GNO                =       GPP5003                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 40431} G2P503M +GHO2               =       GPP5009                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 40432} G2P503M +GNO3               =       G1P504G +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 40433} G2P503M +MEPERO             =  0.340G1P504G + 0.330GPP5004 + 0.330GPP5006                 : ARR( 0.565E-13,  -845., 0.0);
+{ 40434} G2P503M +PERO1              =  0.460G1P504G + 0.270GPP5004 + 0.270GPP5006                 : ARR( 0.434E-13,  -900., 0.0);
+{ 40435} G2P503M +PERO2              =  0.400G1P504G + 0.300GPP5004 + 0.300GPP5006                 : ARR( 0.162E-13, -1400., 0.0);
+{ 40436} G2P503M +PERO3              =  0.460G1P504G + 0.270GPP5004 + 0.270GPP5006                 : ARR( 0.488E-13, -1250., 0.0);
+{ 40437} G2P503M +PERO5              =  0.460G1P504G + 0.270GPP5004 + 0.270GPP5006                 : ARR( 0.183E-11,   450., 0.0);
+{ 40438} G2P503M +PERO6              =  0.300G1P504G + 0.350GPP5004 + 0.350GPP5006                 : ARR( 0.168E-13, -1300., 0.0);
+{ 40439} G2P503M +PERO9              =  0.650G1P504G + 0.350GPP5006                                : ARR( 0.100E-10,     0., 0.0);
+{ 40440} G1P504F                     =       GPD4002 +      GCO     +      GNO2                    : ARR( 0.200E+15,  4949., 0.0);
+{ 40441} G1P504G                     =       GPD2000 +      GPD3000 +      GHO2                    : ARR( 0.200E+15,  3292., 0.0);
+{ 40442} GPH400M                     =       G3H400F +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 40443} GPH400M +GHO                =       GPD4002 +      GHO                                    : ARR( 0.162E-10,     0., 0.0);
+{ 40444} GPH400M +GHO                =       G2P400p                                               : ARR( 0.142E-11,     0., 0.0);
+{ 40445} GPH400M +GHO                =       GPH400Z +      GHO2                                   : ARR( 0.631E-11,     0., 0.0);
+{ 40446} GPH400M +GHO                =       G2P400L                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 40447} GPH400M+HV               =       G1P400M +      GHO                                    :  0.100E+01*SUN;
+{ 40448} GPH400M+HV               =       G3H400F +      GNO2                                   :  0.100E+01*SUN;
+{ 40449} G2P400p +GNO                =       G1P400y +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 40450} G2P400p +GNO                =       GPH400h                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 40451} G2P400p +GHO2               =       GPH400u                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 40452} G2P400p +GNO3               =       G1P400y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 40453} G2P400p +MEPERO             =  0.340G1P400y + 0.330GPH400g + 0.330GPH400i                 : ARR( 0.565E-13,  -845., 0.0);
+{ 40454} G2P400p +PERO1              =  0.460G1P400y + 0.270GPH400g + 0.270GPH400i                 : ARR( 0.434E-13,  -900., 0.0);
+{ 40455} G2P400p +PERO2              =  0.400G1P400y + 0.300GPH400g + 0.300GPH400i                 : ARR( 0.162E-13, -1400., 0.0);
+{ 40456} G2P400p +PERO3              =  0.460G1P400y + 0.270GPH400g + 0.270GPH400i                 : ARR( 0.488E-13, -1250., 0.0);
+{ 40457} G2P400p +PERO5              =  0.460G1P400y + 0.270GPH400g + 0.270GPH400i                 : ARR( 0.183E-11,   450., 0.0);
+{ 40458} G2P400p +PERO6              =  0.300G1P400y + 0.350GPH400g + 0.350GPH400i                 : ARR( 0.168E-13, -1300., 0.0);
+{ 40459} G2P400p +PERO9              =  0.650G1P400y + 0.350GPH400i                                : ARR( 0.100E-10,     0., 0.0);
+{ 40460} G1P400y                     =       GHD2000 +      GPD2000 +      GHO2                    : ARR( 0.200E+15,  3989., 0.0);
+{ 40461} GGN5019 +GHO                =       G2G5022                                               : ARR( 0.897E-12,     0., 0.0);
+{ 40462} GGN5019 +GHO                =       G3G500G                                               : ARR( 0.433E-11,     0., 0.0);
+{ 40463} GGN5019 +GHO                =       G3N500k                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 40464} GGN5019 +GNO3               =       G3G500G +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 40465} GGN5019+HV               =       G2N400n +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 40466} GGN5019+HV               =       G1G502h +      GNO2                                   :  0.100E+01*SUN;
+{ 40467} GGN5019+HV               =       GGD4000 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 40468} GGN5019+HV               =       GGU3000 +      GND2000                                :  0.100E+01*SUN;
+{ 40469} G2G5022 +GNO                =       G1G502i +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 40470} G2G5022 +GNO                =       GGN502D                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 40471} G2G5022 +GHO2               =       GGH503E                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 40472} G2G5022 +GNO3               =       G1G502i +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 40473} G2G5022 +MEPERO             =  0.340G1G502i + 0.330GGN501J + 0.330GGN502E                 : ARR( 0.565E-13,  -845., 0.0);
+{ 40474} G2G5022 +PERO1              =  0.460G1G502i + 0.270GGN501J + 0.270GGN502E                 : ARR( 0.434E-13,  -900., 0.0);
+{ 40475} G2G5022 +PERO2              =  0.400G1G502i + 0.300GGN501J + 0.300GGN502E                 : ARR( 0.162E-13, -1400., 0.0);
+{ 40476} G2G5022 +PERO3              =  0.460G1G502i + 0.270GGN501J + 0.270GGN502E                 : ARR( 0.488E-13, -1250., 0.0);
+{ 40477} G2G5022 +PERO5              =  0.460G1G502i + 0.270GGN501J + 0.270GGN502E                 : ARR( 0.183E-11,   450., 0.0);
+{ 40478} G2G5022 +PERO6              =  0.300G1G502i + 0.350GGN501J + 0.350GGN502E                 : ARR( 0.168E-13, -1300., 0.0);
+{ 40479} G2G5022 +PERO9              =  0.650G1G502i + 0.350GGN502E                                : ARR( 0.100E-10,     0., 0.0);
+{ 40480} G3G500G +GHO2               =  0.800GGG5008 + 0.200GAG500A + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 40481} G3G500G +GNO                =       GGD4000 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 40482} G3G500G +GNO2               =       GPG500A                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 40483} G3G500G +GNO3               =       GGD4000 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 40484} G3G500G +MEPERO             =  0.685GGD4000 + 0.315GAG500A + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40485} G3G500G +PERO1              =  0.800GGD4000 + 0.200GAG500A + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40486} G3G500G +PERO2              =  0.750GGD4000 + 0.250GAG500A + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40487} G3G500G +PERO3              =  0.800GGD4000 + 0.200GAG500A + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40488} G3G500G +PERO5              =  0.650GGD4000 + 0.350GAG500A + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40489} G3G500G +PERO6              =  0.650GGD4000 + 0.350GAG500A + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40490} G3G500G +PERO9              =       GGD4000 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 40491} G1G502h                     =       GGD4000 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5437., 0.0);
+{ 40492} G1G502i                     =       GCO     +      GND400D +      GHO2                    : ARR( 0.200E+15,  4949., 0.0);
+{ 40493} GAN501I +GHO                =       G2A503F                                               : ARR( 0.680E-12,     0., 0.0);
+{ 40494} GAN501I +GHO                =       G3A500L                                               : ARR( 0.443E-11,     0., 0.0);
+{ 40495} GAN501I +GHO                =       G2N400n +      GCO2                                   : ARR( 0.555E-12,     0., 0.0);
+{ 40496} GAN501I +GNO3               =       G3A500L +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 40497} GAN501I+HV               =       G1A5045 +      GNO2                                   :  0.100E+01*SUN;
+{ 40498} GAN501I+HV               =       GAD4000 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 40499} GAN501I+HV               =       GAU3000 +      GND2000                                :  0.100E+01*SUN;
+{ 40500} G2A503F +GNO                =       G1A5046 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 40501} G2A503F +GNO                =       GAN502b                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 40502} G2A503F +GHO2               =       GAH503u                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 40503} G2A503F +GNO3               =       G1A5046 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 40504} G2A503F +MEPERO             =  0.340G1A5046 + 0.330GAN501E + 0.330GAN502c                 : ARR( 0.565E-13,  -845., 0.0);
+{ 40505} G2A503F +PERO1              =  0.460G1A5046 + 0.270GAN501E + 0.270GAN502c                 : ARR( 0.434E-13,  -900., 0.0);
+{ 40506} G2A503F +PERO2              =  0.400G1A5046 + 0.300GAN501E + 0.300GAN502c                 : ARR( 0.162E-13, -1400., 0.0);
+{ 40507} G2A503F +PERO3              =  0.460G1A5046 + 0.270GAN501E + 0.270GAN502c                 : ARR( 0.488E-13, -1250., 0.0);
+{ 40508} G2A503F +PERO5              =  0.460G1A5046 + 0.270GAN501E + 0.270GAN502c                 : ARR( 0.183E-11,   450., 0.0);
+{ 40509} G2A503F +PERO6              =  0.300G1A5046 + 0.350GAN501E + 0.350GAN502c                 : ARR( 0.168E-13, -1300., 0.0);
+{ 40510} G2A503F +PERO9              =  0.650G1A5046 + 0.350GAN502c                                : ARR( 0.100E-10,     0., 0.0);
+{ 40511} G3A500L +GHO2               =  0.800GAG500H + 0.200GAA5007 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 40512} G3A500L +GNO                =       GAD4000 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 40513} G3A500L +GNO2               =       GPA500C                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 40514} G3A500L +GNO3               =       GAD4000 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 40515} G3A500L +MEPERO             =  0.685GAD4000 + 0.315GAA5007 + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40516} G3A500L +PERO1              =  0.800GAD4000 + 0.200GAA5007 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40517} G3A500L +PERO2              =  0.750GAD4000 + 0.250GAA5007 + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40518} G3A500L +PERO3              =  0.800GAD4000 + 0.200GAA5007 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40519} G3A500L +PERO5              =  0.650GAD4000 + 0.350GAA5007 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40520} G3A500L +PERO6              =  0.650GAD4000 + 0.350GAA5007 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40521} G3A500L +PERO9              =       GAD4000 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 40522} G1A5045                     =       GAD4000 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5437., 0.0);
+{ 40523} G1A5046                     =       GCO     +      GND400D +      GHO                     : ARR( 0.200E+15,  4918., 0.0);
+{ 40524} GPN501M                     =       G3N500k +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 40525} GPN501M +GHO                =       G2P503N                                               : ARR( 0.873E-12,     0., 0.0);
+{ 40526} GPN501M +GHO                =       G2P503O                                               : ARR( 0.286E-12,     0., 0.0);
+{ 40527} GPN501M +GHO                =       G3P500J                                               : ARR( 0.421E-11,     0., 0.0);
+{ 40528} GPN501M +GNO3               =       G3P500J +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 40529} GPN501M+HV               =       G3N500k +      GNO2                                   :  0.100E+01*SUN;
+{ 40530} GPN501M+HV               =       G1P504H +      GNO2                                   :  0.100E+01*SUN;
+{ 40531} GPN501M+HV               =       GPD4000 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 40532} GPN501M+HV               =       GPU3000 +      GND2000                                :  0.100E+01*SUN;
+{ 40533} G2P503N +GNO                =       G1P504I +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 40534} G2P503N +GNO                =       GPN502C                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 40535} G2P503N +GHO2               =       GPH5044                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 40536} G2P503N +GNO3               =       G1P504I +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 40537} G2P503N +MEPERO             =  0.340G1P504I + 0.330GPN501G + 0.330GPN502D                 : ARR( 0.565E-13,  -845., 0.0);
+{ 40538} G2P503N +PERO1              =  0.460G1P504I + 0.270GPN501G + 0.270GPN502D                 : ARR( 0.434E-13,  -900., 0.0);
+{ 40539} G2P503N +PERO2              =  0.400G1P504I + 0.300GPN501G + 0.300GPN502D                 : ARR( 0.162E-13, -1400., 0.0);
+{ 40540} G2P503N +PERO3              =  0.460G1P504I + 0.270GPN501G + 0.270GPN502D                 : ARR( 0.488E-13, -1250., 0.0);
+{ 40541} G2P503N +PERO5              =  0.460G1P504I + 0.270GPN501G + 0.270GPN502D                 : ARR( 0.183E-11,   450., 0.0);
+{ 40542} G2P503N +PERO6              =  0.300G1P504I + 0.350GPN501G + 0.350GPN502D                 : ARR( 0.168E-13, -1300., 0.0);
+{ 40543} G2P503N +PERO9              =  0.650G1P504I + 0.350GPN502D                                : ARR( 0.100E-10,     0., 0.0);
+{ 40544} G2P503O +GNO                =       G1P504J +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 40545} G2P503O +GNO                =       GPN501d                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 40546} G2P503O +GHO2               =       GPH503P                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 40547} G2P503O +GNO3               =       G1P504J +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 40548} G2P503O +MEPERO             =  0.340G1P504J + 0.330GPN502Y + 0.330GPN5021                 : ARR( 0.565E-13,  -845., 0.0);
+{ 40549} G2P503O +PERO1              =  0.460G1P504J + 0.270GPN502Y + 0.270GPN5021                 : ARR( 0.434E-13,  -900., 0.0);
+{ 40550} G2P503O +PERO2              =  0.400G1P504J + 0.300GPN502Y + 0.300GPN5021                 : ARR( 0.162E-13, -1400., 0.0);
+{ 40551} G2P503O +PERO3              =  0.460G1P504J + 0.270GPN502Y + 0.270GPN5021                 : ARR( 0.488E-13, -1250., 0.0);
+{ 40552} G2P503O +PERO5              =  0.460G1P504J + 0.270GPN502Y + 0.270GPN5021                 : ARR( 0.183E-11,   450., 0.0);
+{ 40553} G2P503O +PERO6              =  0.300G1P504J + 0.350GPN502Y + 0.350GPN5021                 : ARR( 0.168E-13, -1300., 0.0);
+{ 40554} G2P503O +PERO9              =  0.650G1P504J + 0.350GPN5021                                : ARR( 0.100E-10,     0., 0.0);
+{ 40555} G3P500J +GHO2               =  0.800GPG500F + 0.200GPA500B + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 40556} G3P500J +GNO                =       GPD4000 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 40557} G3P500J +GNO2               =       GPP5007                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 40558} G3P500J +GNO3               =       GPD4000 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 40559} G3P500J +MEPERO             =  0.685GPD4000 + 0.315GPA500B + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40560} G3P500J +PERO1              =  0.800GPD4000 + 0.200GPA500B + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40561} G3P500J +PERO2              =  0.750GPD4000 + 0.250GPA500B + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40562} G3P500J +PERO3              =  0.800GPD4000 + 0.200GPA500B + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40563} G3P500J +PERO5              =  0.650GPD4000 + 0.350GPA500B + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40564} G3P500J +PERO6              =  0.650GPD4000 + 0.350GPA500B + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40565} G3P500J +PERO9              =       GPD4000 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 40566} G1P504H                     =       GPD4000 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5437., 0.0);
+{ 40567} G1P504I                     =       GCO     +      GND400D +      GNO2                    : ARR( 0.200E+15,  4949., 0.0);
+{ 40568} G1P504J                     =       G2P2000 +      GND3005                                : ARR( 0.200E+15,  6620., 0.0);
+{ 40569} G1P504J                     =       GPD3000 +      GDD2000 +      GNO2                    : ARR( 0.200E+15,  5818., 0.0);
+{ 40570} GNN502v +GHO                =       G3N501v                                               : ARR( 0.851E-11,     0., 0.0);
+{ 40571} GNN502v +GNO3               =       G3N501v +      GHNO3                                  : ARR( 0.240E-13,     0., 0.0);
+{ 40572} GNN502v+HV               =       GCO     +      GND400D +      GHO2    +      GNO2     :  0.200E+01*SUN;
+{ 40573} GNN502v+HV               =       GND2000 +      G2D3002 +      GNO2                    :  0.200E+01*SUN;
+{ 40574} GNN502v+HV               =       G1N506Z +      GNO2                                   :  0.200E+01*SUN;
+{ 40575} G3N501v +GHO2               =  0.800GGN502D + 0.200GAN502b + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 40576} G3N501v +GNO                =       GND400D + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 40577} G3N501v +GNO2               =       GPN502C                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 40578} G3N501v +GNO3               =       GND400D + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 40579} G3N501v +MEPERO             =  0.685GND400D + 0.315GAN502b + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40580} G3N501v +PERO1              =  0.800GND400D + 0.200GAN502b + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40581} G3N501v +PERO2              =  0.750GND400D + 0.250GAN502b + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40582} G3N501v +PERO3              =  0.800GND400D + 0.200GAN502b + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40583} G3N501v +PERO5              =  0.650GND400D + 0.350GAN502b + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40584} G3N501v +PERO6              =  0.650GND400D + 0.350GAN502b + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40585} G3N501v +PERO9              =       GND400D +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 40586} G1N506Z                     =       GND400D +      GCO     +      GHO2                    : ARR( 0.200E+15,  5437., 0.0);
+{ 40587} GHN505N +GHO                =       G3H502Z                                               : ARR( 0.423E-11,     0., 0.0);
+{ 40588} GHN505N +GHO                =       GND5014 +      GHO                                    : ARR( 0.256E-10,     0., 0.0);
+{ 40589} GHN505N +GHO                =       G3H502a                                               : ARR( 0.211E-10,     0., 0.0);
+{ 40590} GHN505N +GHO                =       G2N505f                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 40591} GHN505N +GNO3               =       G3H502Z +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 40592} GHN505N +GNO3               =       G3H502a +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 40593} GHN505N+HV               =       GCO     +      GHD400C +      GHO2    +      GNO2     :  0.100E+01*SUN;
+{ 40594} GHN505N+HV               =       GND2000 +      G2D3002 +      GHO                     :  0.100E+01*SUN;
+{ 40595} GHN505N+HV               =       G1H509C +      GNO2                                   :  0.100E+01*SUN;
+{ 40596} GHN505N+HV               =       G1N506Z +      GHO                                    :  0.100E+01*SUN;
+{ 40597} GHN505N+HV               =       GND400D +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 40598} G3H502Z +GHO2               =  0.800GGH503A + 0.200GAH503Z + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 40599} G3H502Z +GNO                =       GHD400C + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 40600} G3H502Z +GNO2               =       GPH503r                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 40601} G3H502Z +GNO3               =       GHD400C + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 40602} G3H502Z +MEPERO             =  0.685GHD400C + 0.315GAH503Z + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40603} G3H502Z +PERO1              =  0.800GHD400C + 0.200GAH503Z + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40604} G3H502Z +PERO2              =  0.750GHD400C + 0.250GAH503Z + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40605} G3H502Z +PERO3              =  0.800GHD400C + 0.200GAH503Z + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40606} G3H502Z +PERO5              =  0.650GHD400C + 0.350GAH503Z + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40607} G3H502Z +PERO6              =  0.650GHD400C + 0.350GAH503Z + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40608} G3H502Z +PERO9              =       GHD400C +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 40609} G3H502a +GHO2               =  0.800GGH503E + 0.200GAH503u + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 40610} G3H502a +GNO                =       GND400D +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 40611} G3H502a +GNO2               =       GPH5044                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 40612} G3H502a +GNO3               =       GND400D +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 40613} G3H502a +MEPERO             =  0.685GND400D + 0.315GAH503u + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40614} G3H502a +PERO1              =  0.800GND400D + 0.200GAH503u + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40615} G3H502a +PERO2              =  0.750GND400D + 0.250GAH503u + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40616} G3H502a +PERO3              =  0.800GND400D + 0.200GAH503u + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40617} G3H502a +PERO5              =  0.650GND400D + 0.350GAH503u + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40618} G3H502a +PERO6              =  0.650GND400D + 0.350GAH503u + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40619} G3H502a +PERO9              =       GND400D +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 40620} G2N505f +GNO                =       G1N506Z +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 40621} G2N505f +GNO                =       GNN502v                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 40622} G2N505f +GHO2               =       GHN505N                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 40623} G2N505f +GNO3               =       G1N506Z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 40624} G2N505f +MEPERO             =  0.340G1N506Z + 0.330GND500m + 0.330GND5014                 : ARR( 0.565E-13,  -845., 0.0);
+{ 40625} G2N505f +PERO1              =  0.460G1N506Z + 0.270GND500m + 0.270GND5014                 : ARR( 0.434E-13,  -900., 0.0);
+{ 40626} G2N505f +PERO2              =  0.400G1N506Z + 0.300GND500m + 0.300GND5014                 : ARR( 0.162E-13, -1400., 0.0);
+{ 40627} G2N505f +PERO3              =  0.460G1N506Z + 0.270GND500m + 0.270GND5014                 : ARR( 0.488E-13, -1250., 0.0);
+{ 40628} G2N505f +PERO5              =  0.460G1N506Z + 0.270GND500m + 0.270GND5014                 : ARR( 0.183E-11,   450., 0.0);
+{ 40629} G2N505f +PERO6              =  0.300G1N506Z + 0.350GND500m + 0.350GND5014                 : ARR( 0.168E-13, -1300., 0.0);
+{ 40630} G2N505f +PERO9              =  0.650G1N506Z + 0.350GND5014                                : ARR( 0.100E-10,     0., 0.0);
+{ 40631} G1H509C                     =       GHD400C +      GCO     +      GHO2                    : ARR( 0.200E+15,  5437., 0.0);
+{ 40632} GGH5017 +GHO                =       G2G5023                                               : ARR( 0.455E-11,     0., 0.0);
+{ 40633} GGH5017 +GHO                =       GGD5009 +      GHO                                    : ARR( 0.255E-10,     0., 0.0);
+{ 40634} GGH5017 +GHO                =       G3G500H                                               : ARR( 0.211E-10,     0., 0.0);
+{ 40635} GGH5017 +GHO                =       G3H500k                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 40636} GGH5017 +GHO                =       G2G5024                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 40637} GGH5017 +GNO3               =       G3G500H +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 40638} GGH5017+HV               =       G2H400f +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 40639} GGH5017+HV               =       G1G502h +      GHO                                    :  0.100E+01*SUN;
+{ 40640} GGH5017+HV               =       GGD4000 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 40641} G2G5023 +GNO                =       G1G502j +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 40642} G2G5023 +GNO                =       GGH502u                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 40643} G2G5023 +GHO2               =       GGH503F                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 40644} G2G5023 +GNO3               =       G1G502j +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 40645} G2G5023 +MEPERO             =  0.340G1G502j + 0.330GGH503G + 0.330GGH5039                 : ARR( 0.565E-13,  -845., 0.0);
+{ 40646} G2G5023 +PERO1              =  0.460G1G502j + 0.270GGH503G + 0.270GGH5039                 : ARR( 0.434E-13,  -900., 0.0);
+{ 40647} G2G5023 +PERO2              =  0.400G1G502j + 0.300GGH503G + 0.300GGH5039                 : ARR( 0.162E-13, -1400., 0.0);
+{ 40648} G2G5023 +PERO3              =  0.460G1G502j + 0.270GGH503G + 0.270GGH5039                 : ARR( 0.488E-13, -1250., 0.0);
+{ 40649} G2G5023 +PERO5              =  0.460G1G502j + 0.270GGH503G + 0.270GGH5039                 : ARR( 0.183E-11,   450., 0.0);
+{ 40650} G2G5023 +PERO6              =  0.300G1G502j + 0.350GGH503G + 0.350GGH5039                 : ARR( 0.168E-13, -1300., 0.0);
+{ 40651} G2G5023 +PERO9              =  0.650G1G502j + 0.350GGH5039                                : ARR( 0.100E-10,     0., 0.0);
+{ 40652} G3G500H +GHO2               =  0.800GGG500A + 0.200GAG500Q + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 40653} G3G500H +GNO                =       GGD4000 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 40654} G3G500H +GNO2               =       GPG500O                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 40655} G3G500H +GNO3               =       GGD4000 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 40656} G3G500H +MEPERO             =  0.685GGD4000 + 0.315GAG500Q + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40657} G3G500H +PERO1              =  0.800GGD4000 + 0.200GAG500Q + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40658} G3G500H +PERO2              =  0.750GGD4000 + 0.250GAG500Q + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40659} G3G500H +PERO3              =  0.800GGD4000 + 0.200GAG500Q + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40660} G3G500H +PERO5              =  0.650GGD4000 + 0.350GAG500Q + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40661} G3G500H +PERO6              =  0.650GGD4000 + 0.350GAG500Q + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40662} G3G500H +PERO9              =       GGD4000 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 40663} G2G5024 +GNO                =       G1G502h +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 40664} G2G5024 +GNO                =       GGN5019                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 40665} G2G5024 +GHO2               =       GGH5017                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 40666} G2G5024 +GNO3               =       G1G502h +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 40667} G2G5024 +MEPERO             =  0.340G1G502h + 0.330GGD5001 + 0.330GGD5009                 : ARR( 0.565E-13,  -845., 0.0);
+{ 40668} G2G5024 +PERO1              =  0.460G1G502h + 0.270GGD5001 + 0.270GGD5009                 : ARR( 0.434E-13,  -900., 0.0);
+{ 40669} G2G5024 +PERO2              =  0.400G1G502h + 0.300GGD5001 + 0.300GGD5009                 : ARR( 0.162E-13, -1400., 0.0);
+{ 40670} G2G5024 +PERO3              =  0.460G1G502h + 0.270GGD5001 + 0.270GGD5009                 : ARR( 0.488E-13, -1250., 0.0);
+{ 40671} G2G5024 +PERO5              =  0.460G1G502h + 0.270GGD5001 + 0.270GGD5009                 : ARR( 0.183E-11,   450., 0.0);
+{ 40672} G2G5024 +PERO6              =  0.300G1G502h + 0.350GGD5001 + 0.350GGD5009                 : ARR( 0.168E-13, -1300., 0.0);
+{ 40673} G2G5024 +PERO9              =  0.650G1G502h + 0.350GGD5009                                : ARR( 0.100E-10,     0., 0.0);
+{ 40674} G1G502j                     =       GGD3000 +      GDD2000 +      GHO                     : ARR( 0.200E+15,  4279., 0.0);
+{ 40675} GAH501O +GHO                =       G2A503G                                               : ARR( 0.458E-11,     0., 0.0);
+{ 40676} GAH501O +GHO                =       GAD500B +      GHO                                    : ARR( 0.257E-10,     0., 0.0);
+{ 40677} GAH501O +GHO                =       G3A500M                                               : ARR( 0.212E-10,     0., 0.0);
+{ 40678} GAH501O +GHO                =       G2A503H                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 40679} GAH501O +GNO3               =       G3A500M +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 40680} GAH501O+HV               =       G1A5045 +      GHO                                    :  0.100E+01*SUN;
+{ 40681} GAH501O+HV               =       GAD4000 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 40682} G2A503G +GNO                =       G1A5047 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 40683} G2A503G +GNO                =       GAH5039                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 40684} G2A503G +GHO2               =       GAH503v                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 40685} G2A503G +GNO3               =       G1A5047 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 40686} G2A503G +MEPERO             =  0.340G1A5047 + 0.330GAH503w + 0.330GAH503W                 : ARR( 0.565E-13,  -845., 0.0);
+{ 40687} G2A503G +PERO1              =  0.460G1A5047 + 0.270GAH503w + 0.270GAH503W                 : ARR( 0.434E-13,  -900., 0.0);
+{ 40688} G2A503G +PERO2              =  0.400G1A5047 + 0.300GAH503w + 0.300GAH503W                 : ARR( 0.162E-13, -1400., 0.0);
+{ 40689} G2A503G +PERO3              =  0.460G1A5047 + 0.270GAH503w + 0.270GAH503W                 : ARR( 0.488E-13, -1250., 0.0);
+{ 40690} G2A503G +PERO5              =  0.460G1A5047 + 0.270GAH503w + 0.270GAH503W                 : ARR( 0.183E-11,   450., 0.0);
+{ 40691} G2A503G +PERO6              =  0.300G1A5047 + 0.350GAH503w + 0.350GAH503W                 : ARR( 0.168E-13, -1300., 0.0);
+{ 40692} G2A503G +PERO9              =  0.650G1A5047 + 0.350GAH503W                                : ARR( 0.100E-10,     0., 0.0);
+{ 40693} G3A500M +GHO2               =  0.800GAG500J + 0.200GAA500F + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 40694} G3A500M +GNO                =       GAD4000 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 40695} G3A500M +GNO2               =       GPA500N                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 40696} G3A500M +GNO3               =       GAD4000 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 40697} G3A500M +MEPERO             =  0.685GAD4000 + 0.315GAA500F + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40698} G3A500M +PERO1              =  0.800GAD4000 + 0.200GAA500F + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40699} G3A500M +PERO2              =  0.750GAD4000 + 0.250GAA500F + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40700} G3A500M +PERO3              =  0.800GAD4000 + 0.200GAA500F + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40701} G3A500M +PERO5              =  0.650GAD4000 + 0.350GAA500F + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40702} G3A500M +PERO6              =  0.650GAD4000 + 0.350GAA500F + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40703} G3A500M +PERO9              =       GAD4000 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 40704} G2A503H +GNO                =       G1A5045 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 40705} G2A503H +GNO                =       GAN501I                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 40706} G2A503H +GHO2               =       GAH501O                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 40707} G2A503H +GNO3               =       G1A5045 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 40708} G2A503H +MEPERO             =  0.340G1A5045 + 0.330GAD5002 + 0.330GAD500B                 : ARR( 0.565E-13,  -845., 0.0);
+{ 40709} G2A503H +PERO1              =  0.460G1A5045 + 0.270GAD5002 + 0.270GAD500B                 : ARR( 0.434E-13,  -900., 0.0);
+{ 40710} G2A503H +PERO2              =  0.400G1A5045 + 0.300GAD5002 + 0.300GAD500B                 : ARR( 0.162E-13, -1400., 0.0);
+{ 40711} G2A503H +PERO3              =  0.460G1A5045 + 0.270GAD5002 + 0.270GAD500B                 : ARR( 0.488E-13, -1250., 0.0);
+{ 40712} G2A503H +PERO5              =  0.460G1A5045 + 0.270GAD5002 + 0.270GAD500B                 : ARR( 0.183E-11,   450., 0.0);
+{ 40713} G2A503H +PERO6              =  0.300G1A5045 + 0.350GAD5002 + 0.350GAD500B                 : ARR( 0.168E-13, -1300., 0.0);
+{ 40714} G2A503H +PERO9              =  0.650G1A5045 + 0.350GAD500B                                : ARR( 0.100E-10,     0., 0.0);
+{ 40715} G1A5047                     =       GAD3000 +      GDD2000 +      GHO                     : ARR( 0.200E+15,  4279., 0.0);
+{ 40716} GPH501Q                     =       G3H500k +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 40717} GPH501Q +GHO                =       G2P503P                                               : ARR( 0.455E-11,     0., 0.0);
+{ 40718} GPH501Q +GHO                =       GPD5009 +      GHO                                    : ARR( 0.255E-10,     0., 0.0);
+{ 40719} GPH501Q +GHO                =       G3P500K                                               : ARR( 0.211E-10,     0., 0.0);
+{ 40720} GPH501Q +GHO                =       G2P503Q                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 40721} GPH501Q +GNO3               =       G3P500K +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 40722} GPH501Q+HV               =       G3H500k +      GNO2                                   :  0.100E+01*SUN;
+{ 40723} GPH501Q+HV               =       G1P504H +      GHO                                    :  0.100E+01*SUN;
+{ 40724} GPH501Q+HV               =       GPD4000 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 40725} G2P503P +GNO                =       G1P504K +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 40726} G2P503P +GNO                =       GPH503F                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 40727} G2P503P +GHO2               =       GPH5045                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 40728} G2P503P +GNO3               =       G1P504K +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 40729} G2P503P +MEPERO             =  0.340G1P504K + 0.330GPH5046 + 0.330GPH503b                 : ARR( 0.565E-13,  -845., 0.0);
+{ 40730} G2P503P +PERO1              =  0.460G1P504K + 0.270GPH5046 + 0.270GPH503b                 : ARR( 0.434E-13,  -900., 0.0);
+{ 40731} G2P503P +PERO2              =  0.400G1P504K + 0.300GPH5046 + 0.300GPH503b                 : ARR( 0.162E-13, -1400., 0.0);
+{ 40732} G2P503P +PERO3              =  0.460G1P504K + 0.270GPH5046 + 0.270GPH503b                 : ARR( 0.488E-13, -1250., 0.0);
+{ 40733} G2P503P +PERO5              =  0.460G1P504K + 0.270GPH5046 + 0.270GPH503b                 : ARR( 0.183E-11,   450., 0.0);
+{ 40734} G2P503P +PERO6              =  0.300G1P504K + 0.350GPH5046 + 0.350GPH503b                 : ARR( 0.168E-13, -1300., 0.0);
+{ 40735} G2P503P +PERO9              =  0.650G1P504K + 0.350GPH503b                                : ARR( 0.100E-10,     0., 0.0);
+{ 40736} G3P500K +GHO2               =  0.800GPG500H + 0.200GPA500M + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 40737} G3P500K +GNO                =       GPD4000 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 40738} G3P500K +GNO2               =       GPP500D                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 40739} G3P500K +GNO3               =       GPD4000 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 40740} G3P500K +MEPERO             =  0.685GPD4000 + 0.315GPA500M + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40741} G3P500K +PERO1              =  0.800GPD4000 + 0.200GPA500M + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40742} G3P500K +PERO2              =  0.750GPD4000 + 0.250GPA500M + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40743} G3P500K +PERO3              =  0.800GPD4000 + 0.200GPA500M + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40744} G3P500K +PERO5              =  0.650GPD4000 + 0.350GPA500M + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40745} G3P500K +PERO6              =  0.650GPD4000 + 0.350GPA500M + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40746} G3P500K +PERO9              =       GPD4000 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 40747} G2P503Q +GNO                =       G1P504H +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 40748} G2P503Q +GNO                =       GPN501M                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 40749} G2P503Q +GHO2               =       GPH501Q                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 40750} G2P503Q +GNO3               =       G1P504H +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 40751} G2P503Q +MEPERO             =  0.340G1P504H + 0.330GPD5001 + 0.330GPD5009                 : ARR( 0.565E-13,  -845., 0.0);
+{ 40752} G2P503Q +PERO1              =  0.460G1P504H + 0.270GPD5001 + 0.270GPD5009                 : ARR( 0.434E-13,  -900., 0.0);
+{ 40753} G2P503Q +PERO2              =  0.400G1P504H + 0.300GPD5001 + 0.300GPD5009                 : ARR( 0.162E-13, -1400., 0.0);
+{ 40754} G2P503Q +PERO3              =  0.460G1P504H + 0.270GPD5001 + 0.270GPD5009                 : ARR( 0.488E-13, -1250., 0.0);
+{ 40755} G2P503Q +PERO5              =  0.460G1P504H + 0.270GPD5001 + 0.270GPD5009                 : ARR( 0.183E-11,   450., 0.0);
+{ 40756} G2P503Q +PERO6              =  0.300G1P504H + 0.350GPD5001 + 0.350GPD5009                 : ARR( 0.168E-13, -1300., 0.0);
+{ 40757} G2P503Q +PERO9              =  0.650G1P504H + 0.350GPD5009                                : ARR( 0.100E-10,     0., 0.0);
+{ 40758} G1P504K                     =       GPD3000 +      GDD2000 +      GHO                     : ARR( 0.200E+15,  4279., 0.0);
+{ 40759} GHH5021 +GHO                =       G3H502b                                               : ARR( 0.214E-10,     0., 0.0);
+{ 40760} GHH5021 +GHO                =       GHD5016 +      GHO                                    : ARR( 0.206E-09,     0., 0.0);
+{ 40761} GHH5021 +GHO                =       GHD5013 +      GHO                                    : ARR( 0.259E-10,     0., 0.0);
+{ 40762} GHH5021 +GHO                =       G3H502c                                               : ARR( 0.214E-10,     0., 0.0);
+{ 40763} GHH5021 +GNO3               =       G3H502b +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 40764} GHH5021 +GNO3               =       G3H502c +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 40765} GHH5021+HV               =       GCO     +      G2H401I +      GHO2                    :  0.100E+01*SUN;
+{ 40766} GHH5021+HV               =       GD02000 +      GDD3002 + 2.000GHO                     :  0.100E+01*SUN;
+{ 40767} GHH5021+HV               =       G1H504N +      GHO                                    :  0.100E+01*SUN;
+{ 40768} GHH5021+HV               =       G1H5098 +      GHO                                    :  0.100E+01*SUN;
+{ 40769} GHH5021+HV               =       GHD400C +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 40770} G3H502b +GHO2               =  0.800GGH503F + 0.200GAH503v + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 40771} G3H502b +GNO                =       G2H401I +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 40772} G3H502b +GNO2               =       GPH5045                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 40773} G3H502b +GNO3               =       G2H401I +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 40774} G3H502b +MEPERO             =  0.685G2H401I + 0.315GAH503v + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 40775} G3H502b +PERO1              =  0.800G2H401I + 0.200GAH503v + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 40776} G3H502b +PERO2              =  0.750G2H401I + 0.250GAH503v + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 40777} G3H502b +PERO3              =  0.800G2H401I + 0.200GAH503v + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 40778} G3H502b +PERO5              =  0.650G2H401I + 0.350GAH503v + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 40779} G3H502b +PERO6              =  0.650G2H401I + 0.350GAH503v + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 40780} G3H502b +PERO9              =       G2H401I +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 40781} G3H502c +GHO2               =  0.800GGH503D + 0.200GAH503E + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 40782} G3H502c +GNO                =       GHD400C +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 40783} G3H502c +GNO2               =       GPH503K                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 40784} G3H502c +GNO3               =       GHD400C +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 40785} G3H502c +MEPERO             =  0.685GHD400C + 0.315GAH503E + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40786} G3H502c +PERO1              =  0.800GHD400C + 0.200GAH503E + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40787} G3H502c +PERO2              =  0.750GHD400C + 0.250GAH503E + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40788} G3H502c +PERO3              =  0.800GHD400C + 0.200GAH503E + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40789} G3H502c +PERO5              =  0.650GHD400C + 0.350GAH503E + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40790} G3H502c +PERO6              =  0.650GHD400C + 0.350GAH503E + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40791} G3H502c +PERO9              =       GHD400C +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 40792} G2H401I +GNO                =       G1H401k +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 40793} G2H401I +GNO                =       GHH400j                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 40794} G2H401I +GHO2               =       GHH400l                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 40795} G2H401I +GNO3               =       G1H401k +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 40796} G2H401I +MEPERO             =  0.480G1H401k + 0.260GHH4009 + 0.260GHH400r                 : ARR( 0.164E-12,  -795., 0.0);
+{ 40797} G2H401I +PERO1              =  0.600G1H401k + 0.200GHH4009 + 0.200GHH400r                 : ARR( 0.126E-12,  -850., 0.0);
+{ 40798} G2H401I +PERO2              =  0.560G1H401k + 0.220GHH4009 + 0.220GHH400r                 : ARR( 0.471E-13, -1350., 0.0);
+{ 40799} G2H401I +PERO3              =  0.600G1H401k + 0.200GHH4009 + 0.200GHH400r                 : ARR( 0.142E-12, -1200., 0.0);
+{ 40800} G2H401I +PERO5              =  0.600G1H401k + 0.200GHH4009 + 0.200GHH400r                 : ARR( 0.533E-11,   500., 0.0);
+{ 40801} G2H401I +PERO6              =  0.460G1H401k + 0.270GHH4009 + 0.270GHH400r                 : ARR( 0.488E-13, -1250., 0.0);
+{ 40802} G2H401I +PERO9              =  0.800G1H401k + 0.200GHH400r                                : ARR( 0.100E-10,     0., 0.0);
+{ 40803} G1H401k +OXYGEN             =       GHH400r +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 40804} G1H401k                     =       GHD3004 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5636., 0.0);
+{ 40805} GHD5017 +GHO                =       G3H502d                                               : ARR( 0.213E-10,     0., 0.0);
+{ 40806} GHD5017 +GHO                =       GHD5016 +      GHO2                                   : ARR( 0.106E-09,     0., 0.0);
+{ 40807} GHD5017 +GHO                =       GDD5009 +      GHO                                    : ARR( 0.258E-10,     0., 0.0);
+{ 40808} GHD5017 +GHO                =       G3H502e                                               : ARR( 0.213E-10,     0., 0.0);
+{ 40809} GHD5017 +GNO3               =       G3H502d +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 40810} GHD5017 +GNO3               =       G3H502e +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 40811} GHD5017+HV               =       GCO     +      G2H401J +      GHO2                    :  0.100E+01*SUN;
+{ 40812} GHD5017+HV               =       GD02000 +      GDD3002 +      GHO2    +      GHO      :  0.100E+01*SUN;
+{ 40813} GHD5017+HV               =       G1D501I +      GHO                                    :  0.100E+01*SUN;
+{ 40814} GHD5017+HV               =       GDD4001 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 40815} G3H502d +GHO2               =  0.800GGH503G + 0.200GAH503w + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 40816} G3H502d +GNO                =       G2H401J +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 40817} G3H502d +GNO2               =       GPH5046                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 40818} G3H502d +GNO3               =       G2H401J +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 40819} G3H502d +MEPERO             =  0.685G2H401J + 0.315GAH503w + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 40820} G3H502d +PERO1              =  0.800G2H401J + 0.200GAH503w + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 40821} G3H502d +PERO2              =  0.750G2H401J + 0.250GAH503w + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 40822} G3H502d +PERO3              =  0.800G2H401J + 0.200GAH503w + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 40823} G3H502d +PERO5              =  0.650G2H401J + 0.350GAH503w + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 40824} G3H502d +PERO6              =  0.650G2H401J + 0.350GAH503w + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 40825} G3H502d +PERO9              =       G2H401J +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 40826} G3H502e +GHO2               =  0.800GGH5038 + 0.200GAH503O + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 40827} G3H502e +GNO                =       GDD4001 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 40828} G3H502e +GNO2               =       GPH503U                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 40829} G3H502e +GNO3               =       GDD4001 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 40830} G3H502e +MEPERO             =  0.685GDD4001 + 0.315GAH503O + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40831} G3H502e +PERO1              =  0.800GDD4001 + 0.200GAH503O + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40832} G3H502e +PERO2              =  0.750GDD4001 + 0.250GAH503O + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40833} G3H502e +PERO3              =  0.800GDD4001 + 0.200GAH503O + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40834} G3H502e +PERO5              =  0.650GDD4001 + 0.350GAH503O + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40835} G3H502e +PERO6              =  0.650GDD4001 + 0.350GAH503O + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40836} G3H502e +PERO9              =       GDD4001 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 40837} G2H401J +GNO                =       G1H400z +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 40838} G2H401J +GNO                =       GHN400T                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 40839} G2H401J +GHO2               =       GHH400H                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 40840} G2H401J +GNO3               =       G1H400z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 40841} G2H401J +MEPERO             =  0.480G1H400z + 0.260GHD400A + 0.260GHD400L                 : ARR( 0.164E-12,  -795., 0.0);
+{ 40842} G2H401J +PERO1              =  0.600G1H400z + 0.200GHD400A + 0.200GHD400L                 : ARR( 0.126E-12,  -850., 0.0);
+{ 40843} G2H401J +PERO2              =  0.560G1H400z + 0.220GHD400A + 0.220GHD400L                 : ARR( 0.471E-13, -1350., 0.0);
+{ 40844} G2H401J +PERO3              =  0.600G1H400z + 0.200GHD400A + 0.200GHD400L                 : ARR( 0.142E-12, -1200., 0.0);
+{ 40845} G2H401J +PERO5              =  0.600G1H400z + 0.200GHD400A + 0.200GHD400L                 : ARR( 0.533E-11,   500., 0.0);
+{ 40846} G2H401J +PERO6              =  0.460G1H400z + 0.270GHD400A + 0.270GHD400L                 : ARR( 0.488E-13, -1250., 0.0);
+{ 40847} G2H401J +PERO9              =  0.800G1H400z + 0.200GHD400L                                : ARR( 0.100E-10,     0., 0.0);
+{ 40848} GGD5009 +GHO                =       G2G5025                                               : ARR( 0.286E-11,     0., 0.0);
+{ 40849} GGD5009 +GHO                =       G3G4000 +      GCO                                    : ARR( 0.132E-10,     0., 0.0);
+{ 40850} GGD5009 +GHO                =       G3D5006                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 40851} GGD5009 +GNO3               =       G3G4000 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 40852} GGD5009+HV               =       G2D400C +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 40853} GGD5009+HV               =       G3G4000 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 40854} GGD5009+HV               =       GGD4000 +      GCO                                    :  0.100E+01*SUN;
+{ 40855} GGD5009+HV               =       GG03000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 40856} G2G5025 +GNO                =       G1G502k +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 40857} G2G5025 +GNO                =       GGN501v                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 40858} G2G5025 +GHO2               =       GGH503H                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 40859} G2G5025 +GNO3               =       G1G502k +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 40860} G2G5025 +MEPERO             =  0.340G1G502k + 0.330GGD500C + 0.330GGD500J                 : ARR( 0.565E-13,  -845., 0.0);
+{ 40861} G2G5025 +PERO1              =  0.460G1G502k + 0.270GGD500C + 0.270GGD500J                 : ARR( 0.434E-13,  -900., 0.0);
+{ 40862} G2G5025 +PERO2              =  0.400G1G502k + 0.300GGD500C + 0.300GGD500J                 : ARR( 0.162E-13, -1400., 0.0);
+{ 40863} G2G5025 +PERO3              =  0.460G1G502k + 0.270GGD500C + 0.270GGD500J                 : ARR( 0.488E-13, -1250., 0.0);
+{ 40864} G2G5025 +PERO5              =  0.460G1G502k + 0.270GGD500C + 0.270GGD500J                 : ARR( 0.183E-11,   450., 0.0);
+{ 40865} G2G5025 +PERO6              =  0.300G1G502k + 0.350GGD500C + 0.350GGD500J                 : ARR( 0.168E-13, -1300., 0.0);
+{ 40866} G2G5025 +PERO9              =  0.650G1G502k + 0.350GGD500J                                : ARR( 0.100E-10,     0., 0.0);
+{ 40867} G1G502k                     =       GCO     +      GDD4002 +      GHO2                    : ARR( 0.200E+15,  4566., 0.0);
+{ 40868} GAD500B +GHO                =       G2A503I                                               : ARR( 0.209E-11,     0., 0.0);
+{ 40869} GAD500B +GHO                =       G2A503J                                               : ARR( 0.890E-12,     0., 0.0);
+{ 40870} GAD500B +GHO                =       G3A4000 +      GCO                                    : ARR( 0.131E-10,     0., 0.0);
+{ 40871} GAD500B +GNO3               =       G3A4000 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 40872} GAD500B+HV               =       G3A4000 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 40873} GAD500B+HV               =       GAD4000 +      GCO                                    :  0.100E+01*SUN;
+{ 40874} GAD500B+HV               =       GA03000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 40875} G2A503I +GNO                =       G1A5048 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 40876} G2A503I +GNO                =       GAN5024                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 40877} G2A503I +GHO2               =       GAH503x                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 40878} G2A503I +GNO3               =       G1A5048 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 40879} G2A503I +MEPERO             =  0.340G1A5048 + 0.330GAD500E + 0.330GAD500I                 : ARR( 0.565E-13,  -845., 0.0);
+{ 40880} G2A503I +PERO1              =  0.460G1A5048 + 0.270GAD500E + 0.270GAD500I                 : ARR( 0.434E-13,  -900., 0.0);
+{ 40881} G2A503I +PERO2              =  0.400G1A5048 + 0.300GAD500E + 0.300GAD500I                 : ARR( 0.162E-13, -1400., 0.0);
+{ 40882} G2A503I +PERO3              =  0.460G1A5048 + 0.270GAD500E + 0.270GAD500I                 : ARR( 0.488E-13, -1250., 0.0);
+{ 40883} G2A503I +PERO5              =  0.460G1A5048 + 0.270GAD500E + 0.270GAD500I                 : ARR( 0.183E-11,   450., 0.0);
+{ 40884} G2A503I +PERO6              =  0.300G1A5048 + 0.350GAD500E + 0.350GAD500I                 : ARR( 0.168E-13, -1300., 0.0);
+{ 40885} G2A503I +PERO9              =  0.650G1A5048 + 0.350GAD500I                                : ARR( 0.100E-10,     0., 0.0);
+{ 40886} G2A503J +GNO                =       G1A5049 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 40887} G2A503J +GNO                =       GAN501e                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 40888} G2A503J +GHO2               =       GAH503K                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 40889} G2A503J +GNO3               =       G1A5049 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 40890} G2A503J +MEPERO             =  0.340G1A5049 + 0.330GAD500L + 0.330GAD500G                 : ARR( 0.565E-13,  -845., 0.0);
+{ 40891} G2A503J +PERO1              =  0.460G1A5049 + 0.270GAD500L + 0.270GAD500G                 : ARR( 0.434E-13,  -900., 0.0);
+{ 40892} G2A503J +PERO2              =  0.400G1A5049 + 0.300GAD500L + 0.300GAD500G                 : ARR( 0.162E-13, -1400., 0.0);
+{ 40893} G2A503J +PERO3              =  0.460G1A5049 + 0.270GAD500L + 0.270GAD500G                 : ARR( 0.488E-13, -1250., 0.0);
+{ 40894} G2A503J +PERO5              =  0.460G1A5049 + 0.270GAD500L + 0.270GAD500G                 : ARR( 0.183E-11,   450., 0.0);
+{ 40895} G2A503J +PERO6              =  0.300G1A5049 + 0.350GAD500L + 0.350GAD500G                 : ARR( 0.168E-13, -1300., 0.0);
+{ 40896} G2A503J +PERO9              =  0.650G1A5049 + 0.350GAD500G                                : ARR( 0.100E-10,     0., 0.0);
+{ 40897} G1A5048                     =       GCO     +      GDD4002 +      GHO                     : ARR( 0.200E+15,  4535., 0.0);
+{ 40898} G1A5049                     =       GAD3000 +      G3D2000                                : ARR( 0.200E+15,  2595., 0.0);
+{ 40899} GPD5009                     =       G3D5006 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 40900} GPD5009 +GHO                =       G2P503R                                               : ARR( 0.273E-11,     0., 0.0);
+{ 40901} GPD5009 +GHO                =       G2P503S                                               : ARR( 0.862E-12,     0., 0.0);
+{ 40902} GPD5009 +GHO                =       G3P4000 +      GCO                                    : ARR( 0.127E-10,     0., 0.0);
+{ 40903} GPD5009 +GNO3               =       G3P4000 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 40904} GPD5009+HV               =       G3D5006 +      GNO2                                   :  0.100E+01*SUN;
+{ 40905} GPD5009+HV               =       G3P4000 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 40906} GPD5009+HV               =       GPD4000 +      GCO                                    :  0.100E+01*SUN;
+{ 40907} GPD5009+HV               =       GP03000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 40908} G2P503R +GNO                =       G1P504L +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 40909} G2P503R +GNO                =       GPN502E                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 40910} G2P503R +GHO2               =       GPH5047                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 40911} G2P503R +GNO3               =       G1P504L +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 40912} G2P503R +MEPERO             =  0.340G1P504L + 0.330GPD500C + 0.330GPD500H                 : ARR( 0.565E-13,  -845., 0.0);
+{ 40913} G2P503R +PERO1              =  0.460G1P504L + 0.270GPD500C + 0.270GPD500H                 : ARR( 0.434E-13,  -900., 0.0);
+{ 40914} G2P503R +PERO2              =  0.400G1P504L + 0.300GPD500C + 0.300GPD500H                 : ARR( 0.162E-13, -1400., 0.0);
+{ 40915} G2P503R +PERO3              =  0.460G1P504L + 0.270GPD500C + 0.270GPD500H                 : ARR( 0.488E-13, -1250., 0.0);
+{ 40916} G2P503R +PERO5              =  0.460G1P504L + 0.270GPD500C + 0.270GPD500H                 : ARR( 0.183E-11,   450., 0.0);
+{ 40917} G2P503R +PERO6              =  0.300G1P504L + 0.350GPD500C + 0.350GPD500H                 : ARR( 0.168E-13, -1300., 0.0);
+{ 40918} G2P503R +PERO9              =  0.650G1P504L + 0.350GPD500H                                : ARR( 0.100E-10,     0., 0.0);
+{ 40919} G2P503S +GNO                =       G1P504M +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 40920} G2P503S +GNO                =       GPN501l                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 40921} G2P503S +GHO2               =       GPH503Q                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 40922} G2P503S +GNO3               =       G1P504M +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 40923} G2P503S +MEPERO             =  0.340G1P504M + 0.330GPD500J + 0.330GPD500F                 : ARR( 0.565E-13,  -845., 0.0);
+{ 40924} G2P503S +PERO1              =  0.460G1P504M + 0.270GPD500J + 0.270GPD500F                 : ARR( 0.434E-13,  -900., 0.0);
+{ 40925} G2P503S +PERO2              =  0.400G1P504M + 0.300GPD500J + 0.300GPD500F                 : ARR( 0.162E-13, -1400., 0.0);
+{ 40926} G2P503S +PERO3              =  0.460G1P504M + 0.270GPD500J + 0.270GPD500F                 : ARR( 0.488E-13, -1250., 0.0);
+{ 40927} G2P503S +PERO5              =  0.460G1P504M + 0.270GPD500J + 0.270GPD500F                 : ARR( 0.183E-11,   450., 0.0);
+{ 40928} G2P503S +PERO6              =  0.300G1P504M + 0.350GPD500J + 0.350GPD500F                 : ARR( 0.168E-13, -1300., 0.0);
+{ 40929} G2P503S +PERO9              =  0.650G1P504M + 0.350GPD500F                                : ARR( 0.100E-10,     0., 0.0);
+{ 40930} G1P504L                     =       GCO     +      GDD4002 +      GNO2                    : ARR( 0.200E+15,  4566., 0.0);
+{ 40931} G1P504M                     =       GPD3000 +      G3D2000                                : ARR( 0.200E+15,  2595., 0.0);
+{ 40932} GHD5018 +GHO                =       G3H400O +      GCO                                    : ARR( 0.134E-10,     0., 0.0);
+{ 40933} GHD5018 +GHO                =       GDD500B +      GHO                                    : ARR( 0.841E-10,     0., 0.0);
+{ 40934} GHD5018 +GHO                =       G3H502f                                               : ARR( 0.219E-10,     0., 0.0);
+{ 40935} GHD5018 +GNO3               =       G3H400O +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 40936} GHD5018 +GNO3               =       G3H502f +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 40937} GHD5018+HV               =       GCO     +      G3H400O +      GHO2                    :  0.100E+01*SUN;
+{ 40938} GHD5018+HV               =       GHD400C +      GCO                                    :  0.100E+01*SUN;
+{ 40939} GHD5018+HV               =       GHD3002 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 40940} GHD5018+HV               =       G1D500o +      GHO                                    :  0.100E+01*SUN;
+{ 40941} GHD5018+HV               =       GDD4002 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 40942} G3H502f +GHO2               =  0.800GGH503H + 0.200GAH503x + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 40943} G3H502f +GNO                =       GDD4002 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 40944} G3H502f +GNO2               =       GPH5047                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 40945} G3H502f +GNO3               =       GDD4002 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 40946} G3H502f +MEPERO             =  0.685GDD4002 + 0.315GAH503x + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40947} G3H502f +PERO1              =  0.800GDD4002 + 0.200GAH503x + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40948} G3H502f +PERO2              =  0.750GDD4002 + 0.250GAH503x + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40949} G3H502f +PERO3              =  0.800GDD4002 + 0.200GAH503x + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40950} G3H502f +PERO5              =  0.650GDD4002 + 0.350GAH503x + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40951} G3H502f +PERO6              =  0.650GDD4002 + 0.350GAH503x + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40952} G3H502f +PERO9              =       GDD4002 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 40953} GDD500B +GHO                =       G3D4003 +      GCO                                    : ARR( 0.259E-10,     0., 0.0);
+{ 40954} GDD500B +GNO3               =       G3D4003 +      GHNO3   +      GCO                     : ARR( 0.480E-14,     0., 0.0);
+{ 40955} GDD500B+HV               =       GCO     +      G3D4003 +      GHO2                    :  0.200E+01*SUN;
+{ 40956} GDD500B+HV               =       GDD4002 +      GCO                                    :  0.200E+01*SUN;
+{ 40957} GDD500B+HV               =       GDK3000 +      GCO     +      GCO                     :  0.200E+01*SUN;
+{ 40958} GHN505O +GHO                =       GNN502w +      GHO                                    : ARR( 0.324E-11,     0., 0.0);
+{ 40959} GHN505O +GHO                =       G2N504E                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 40960} GHN505O+HV               =       G1H509D +      GNO2                                   :  0.100E+01*SUN;
+{ 40961} GHN505O+HV               =       G1H509E +      GNO2                                   :  0.100E+01*SUN;
+{ 40962} GHN505O+HV               =       G1H509F +      GNO2                                   :  0.100E+01*SUN;
+{ 40963} GHN505O+HV               =       G1H509G +      GNO2                                   :  0.100E+01*SUN;
+{ 40964} GHN505O+HV               =       G1N504e +      GHO                                    :  0.100E+01*SUN;
+{ 40965} G1H509D +OXYGEN             =       GHN506k +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 40966} G1H509D                     =       GHN504U +      GNO2                                   : ARR( 0.800E+11,  4743., 0.0);
+{ 40967} G1H509D                     =       GHN4013 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7042., 0.0);
+{ 40968} G1H509E                     =       GNN501d +      GHO                                    : ARR( 0.160E+12,  2905., 0.0);
+{ 40969} G1H509F                     =       GND2000 +      GHN300A +      GNO2                    : ARR( 0.200E+15,  6323., 0.0);
+{ 40970} G1H509F                     =       GNN3005 +      GHD2000 +      GNO2                    : ARR( 0.200E+15,  6323., 0.0);
+{ 40971} G1H509G                     =       GHN505g +      GNO2                                   : ARR( 0.160E+12,  5251., 0.0);
+{ 40972} G1H509G                     =       GNN3005 +      GHD2000 +      GNO2                    : ARR( 0.200E+15,  6234., 0.0);
+{ 40973} GNN502w +GHO                =       G3N501w                                               : ARR( 0.419E-11,     0., 0.0);
+{ 40974} GNN502w +GNO3               =       G3N501w +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 40975} GNN502w+HV               =       G1N506a +      GNO2                                   :  0.100E+01*SUN;
+{ 40976} GNN502w+HV               =       G1N506b +      GNO2                                   :  0.100E+01*SUN;
+{ 40977} GNN502w+HV               =       G1N506c +      GNO2                                   :  0.100E+01*SUN;
+{ 40978} GNN502w+HV               =       G1N506d +      GNO2                                   :  0.100E+01*SUN;
+{ 40979} GNN502w+HV               =       GNN400D +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 40980} GNN502w+HV               =       GND3003 +      GND2000 + 2.000GNO2                    :  0.100E+01*SUN;
+{ 40981} G3N501w +GHO2               =  0.800GGN502I + 0.200GAN502B + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 40982} G3N501w +GNO                =       GNN400D + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 40983} G3N501w +GNO2               =       GPN502M                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 40984} G3N501w +GNO3               =       GNN400D + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 40985} G3N501w +MEPERO             =  0.685GNN400D + 0.315GAN502B + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40986} G3N501w +PERO1              =  0.800GNN400D + 0.200GAN502B + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40987} G3N501w +PERO2              =  0.750GNN400D + 0.250GAN502B + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40988} G3N501w +PERO3              =  0.800GNN400D + 0.200GAN502B + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40989} G3N501w +PERO5              =  0.650GNN400D + 0.350GAN502B + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40990} G3N501w +PERO6              =  0.650GNN400D + 0.350GAN502B + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 40991} G3N501w +PERO9              =       GNN400D +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 40992} G1N506a +OXYGEN             =       GNN503K +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 40993} G1N506a                     =       GNN502c +      GNO2                                   : ARR( 0.800E+11,  4964., 0.0);
+{ 40994} G1N506a                     =       GNN400Z +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7042., 0.0);
+{ 40995} G1N506b                     =       GND2000 +      GND3005 +      GNO2                    : ARR( 0.200E+15,  6365., 0.0);
+{ 40996} G1N506c                     =       GND2000 +      GND3005 +      GNO2                    : ARR( 0.200E+15,  5492., 0.0);
+{ 40997} G1N506c                     =       GNN3005 +      GDD2000 +      GNO2                    : ARR( 0.200E+15,  6455., 0.0);
+{ 40998} G1N506d                     =       GNN400D +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 40999} GHN505P +GHO                =       GNN502x +      GHO                                    : ARR( 0.325E-11,     0., 0.0);
+{ 41000} GHN505P +GHO                =       G2N504F                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 41001} GHN505P+HV               =       G1H509H +      GNO2                                   :  0.100E+01*SUN;
+{ 41002} GHN505P+HV               =       G3N2000 +      GHN300A +      GNO2                    :  0.100E+01*SUN;
+{ 41003} GHN505P+HV               =       GNN3006 +      GDD2000 +      GHO     +      GNO2     :  0.100E+01*SUN;
+{ 41004} GHN505P+HV               =       G1H509I +      GNO2                                   :  0.100E+01*SUN;
+{ 41005} GHN505P+HV               =       G1H509J +      GNO2                                   :  0.100E+01*SUN;
+{ 41006} GHN505P+HV               =       G1N504f +      GHO                                    :  0.100E+01*SUN;
+{ 41007} G1H509H                     =       G3H400m +      GCH2O                                  : ARR( 0.200E+15,  3640., 0.0);
+{ 41008} G1H509I                     =       G3N2000 +      GHN300A                                : ARR( 0.200E+15,  2890., 0.0);
+{ 41009} G1H509J                     =       GND3003 +      GHD2000 +      GNO2                    : ARR( 0.200E+15,  6515., 0.0);
+{ 41010} G1H509J                     =       GNN400G +      GCH2O   +      GHO                     : ARR( 0.200E+15,  6565., 0.0);
+{ 41011} G3H400m +GHO2               =  0.800GGH400t + 0.200GAH400i + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 41012} G3H400m +GNO                =       GHN300A + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 41013} G3H400m +GNO2               =       GPH400j                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 41014} G3H400m +GNO3               =       GHN300A + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 41015} G3H400m +MEPERO             =  0.685GHN300A + 0.315GAH400i + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41016} G3H400m +PERO1              =  0.800GHN300A + 0.200GAH400i + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41017} G3H400m +PERO2              =  0.750GHN300A + 0.250GAH400i + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41018} G3H400m +PERO3              =  0.800GHN300A + 0.200GAH400i + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41019} G3H400m +PERO5              =  0.650GHN300A + 0.350GAH400i + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41020} G3H400m +PERO6              =  0.650GHN300A + 0.350GAH400i + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41021} G3H400m +PERO9              =       GHN300A +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 41022} GNN502x +GHO                =       G3N501x                                               : ARR( 0.421E-11,     0., 0.0);
+{ 41023} GNN502x +GNO3               =       G3N501x +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 41024} GNN502x+HV               =       G1N506e +      GNO2                                   :  0.100E+01*SUN;
+{ 41025} GNN502x+HV               =       G3N2000 +      GND3005 +      GNO2                    :  0.100E+01*SUN;
+{ 41026} GNN502x+HV               =       G1N506f +      GNO2                                   :  0.100E+01*SUN;
+{ 41027} GNN502x+HV               =       G1N506g +      GNO2                                   :  0.100E+01*SUN;
+{ 41028} GNN502x+HV               =       GNN400G +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 41029} G3N501x +GHO2               =  0.800GGN502J + 0.200GAN502C + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 41030} G3N501x +GNO                =       GNN400G + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 41031} G3N501x +GNO2               =       GPN502O                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 41032} G3N501x +GNO3               =       GNN400G + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 41033} G3N501x +MEPERO             =  0.685GNN400G + 0.315GAN502C + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41034} G3N501x +PERO1              =  0.800GNN400G + 0.200GAN502C + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41035} G3N501x +PERO2              =  0.750GNN400G + 0.250GAN502C + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41036} G3N501x +PERO3              =  0.800GNN400G + 0.200GAN502C + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41037} G3N501x +PERO5              =  0.650GNN400G + 0.350GAN502C + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41038} G3N501x +PERO6              =  0.650GNN400G + 0.350GAN502C + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41039} G3N501x +PERO9              =       GNN400G +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 41040} G1N506e                     =       G3N400X +      GCH2O                                  : ARR( 0.200E+15,  3640., 0.0);
+{ 41041} G1N506f                     =       G3N2000 +      GND3005                                : ARR( 0.200E+15,  2059., 0.0);
+{ 41042} G1N506g                     =       GNN400G +      GCO     +      GHO2                    : ARR( 0.200E+15,  4861., 0.0);
+{ 41043} G3N400X +GHO2               =  0.800GGN400X + 0.200GAN400Y + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 41044} G3N400X +GNO                =       GND3005 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 41045} G3N400X +GNO2               =       GPN400Z                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 41046} G3N400X +GNO3               =       GND3005 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 41047} G3N400X +MEPERO             =  0.685GND3005 + 0.315GAN400Y + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41048} G3N400X +PERO1              =  0.800GND3005 + 0.200GAN400Y + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41049} G3N400X +PERO2              =  0.750GND3005 + 0.250GAN400Y + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41050} G3N400X +PERO3              =  0.800GND3005 + 0.200GAN400Y + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41051} G3N400X +PERO5              =  0.650GND3005 + 0.350GAN400Y + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41052} G3N400X +PERO6              =  0.650GND3005 + 0.350GAN400Y + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41053} G3N400X +PERO9              =       GND3005 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 41054} GNN502y +GHO                =       GNN503K +      GHO2                                   : ARR( 0.834E-12,     0., 0.0);
+{ 41055} GNN502y +GHO                =       G3N501y                                               : ARR( 0.431E-11,     0., 0.0);
+{ 41056} GNN502y +GNO3               =       G3N501y +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 41057} GNN502y+HV               =       G1N506h +      GNO2                                   :  0.100E+01*SUN;
+{ 41058} GNN502y+HV               =       G1N506X +      GNO2                                   :  0.100E+01*SUN;
+{ 41059} GNN502y+HV               =       G1N505L +      GNO2                                   :  0.100E+01*SUN;
+{ 41060} GNN502y+HV               =       GNN400E +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 41061} GNN502y+HV               =       GDK3001 +      GND2000 + 2.000GNO2                    :  0.100E+01*SUN;
+{ 41062} G3N501y +GHO2               =  0.800GGN502K + 0.200GAN501l + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 41063} G3N501y +GNO                =       GNN400E + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 41064} G3N501y +GNO2               =       GPN501h                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 41065} G3N501y +GNO3               =       GNN400E + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 41066} G3N501y +MEPERO             =  0.685GNN400E + 0.315GAN501l + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41067} G3N501y +PERO1              =  0.800GNN400E + 0.200GAN501l + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41068} G3N501y +PERO2              =  0.750GNN400E + 0.250GAN501l + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41069} G3N501y +PERO3              =  0.800GNN400E + 0.200GAN501l + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41070} G3N501y +PERO5              =  0.650GNN400E + 0.350GAN501l + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41071} G3N501y +PERO6              =  0.650GNN400E + 0.350GAN501l + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41072} G3N501y +PERO9              =       GNN400E +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 41073} G1N506h                     =       GCH2O   +      GNN400Z +      GHO2                    : ARR( 0.200E+15,  5296., 0.0);
+{ 41074} G1N506h                     =       GDO2000 +      GND3005 +      GNO2                    : ARR( 0.200E+15,  6367., 0.0);
+{ 41075} GHN505Q +GHO                =       GNN502x +      GHO                                    : ARR( 0.166E-11,     0., 0.0);
+{ 41076} GHN505Q +GHO                =       G3H502g                                               : ARR( 0.419E-11,     0., 0.0);
+{ 41077} GHN505Q +GHO                =       G2N505g                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 41078} GHN505Q +GNO3               =       G3H502g +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 41079} GHN505Q+HV               =       G1H509K +      GNO2                                   :  0.100E+01*SUN;
+{ 41080} GHN505Q+HV               =       G1N506b +      GHO                                    :  0.100E+01*SUN;
+{ 41081} GHN505Q+HV               =       G1H509L +      GNO2                                   :  0.100E+01*SUN;
+{ 41082} GHN505Q+HV               =       G1H509M +      GNO2                                   :  0.100E+01*SUN;
+{ 41083} GHN505Q+HV               =       GHN4012 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 41084} GHN505Q+HV               =       GND3003 +      GND2000 +      GNO2    +      GHO      :  0.100E+01*SUN;
+{ 41085} G3H502g +GHO2               =  0.800GGH503I + 0.200GAH5031 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 41086} G3H502g +GNO                =       GHN4012 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 41087} G3H502g +GNO2               =       GPH503D                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 41088} G3H502g +GNO3               =       GHN4012 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 41089} G3H502g +MEPERO             =  0.685GHN4012 + 0.315GAH5031 + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41090} G3H502g +PERO1              =  0.800GHN4012 + 0.200GAH5031 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41091} G3H502g +PERO2              =  0.750GHN4012 + 0.250GAH5031 + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41092} G3H502g +PERO3              =  0.800GHN4012 + 0.200GAH5031 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41093} G3H502g +PERO5              =  0.650GHN4012 + 0.350GAH5031 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41094} G3H502g +PERO6              =  0.650GHN4012 + 0.350GAH5031 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41095} G3H502g +PERO9              =       GHN4012 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 41096} G2N505g +GNO                =       G1N506b +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 41097} G2N505g +GNO                =       GNN502w                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 41098} G2N505g +GHO2               =       GHN505Q                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 41099} G2N505g +GNO3               =       G1N506b +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 41100} G2N505g +MEPERO             =  0.340G1N506b + 0.330GNN501d + 0.330GNN502x                 : ARR( 0.565E-13,  -845., 0.0);
+{ 41101} G2N505g +PERO1              =  0.460G1N506b + 0.270GNN501d + 0.270GNN502x                 : ARR( 0.434E-13,  -900., 0.0);
+{ 41102} G2N505g +PERO2              =  0.400G1N506b + 0.300GNN501d + 0.300GNN502x                 : ARR( 0.162E-13, -1400., 0.0);
+{ 41103} G2N505g +PERO3              =  0.460G1N506b + 0.270GNN501d + 0.270GNN502x                 : ARR( 0.488E-13, -1250., 0.0);
+{ 41104} G2N505g +PERO5              =  0.460G1N506b + 0.270GNN501d + 0.270GNN502x                 : ARR( 0.183E-11,   450., 0.0);
+{ 41105} G2N505g +PERO6              =  0.300G1N506b + 0.350GNN501d + 0.350GNN502x                 : ARR( 0.168E-13, -1300., 0.0);
+{ 41106} G2N505g +PERO9              =  0.650G1N506b + 0.350GNN502x                                : ARR( 0.100E-10,     0., 0.0);
+{ 41107} G1H509K                     =       GNN400Z +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{ 41108} G1H509L                     =       GND2000 +      GND3005 +      GHO                     : ARR( 0.200E+15,  3953., 0.0);
+{ 41109} G1H509M                     =       GHN505o +      GNO2                                   : ARR( 0.160E+12,  4531., 0.0);
+{ 41110} G1H509M                     =       GHN4012 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 41111} GHN4012 +GHO                =       GNN400G +      GHO                                    : ARR( 0.167E-11,     0., 0.0);
+{ 41112} GHN4012 +GHO                =       G3H400a                                               : ARR( 0.421E-11,     0., 0.0);
+{ 41113} GHN4012 +GHO                =       G2N401A                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 41114} GHN4012 +GNO3               =       G3H400a +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 41115} GHN4012+HV               =       G1H401h +      GNO2                                   :  0.100E+01*SUN;
+{ 41116} GHN4012+HV               =       G1N400v +      GHO                                    :  0.100E+01*SUN;
+{ 41117} GHN4012+HV               =       G1H401l +      GNO2                                   :  0.100E+01*SUN;
+{ 41118} GHN4012+HV               =       GHN3007 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 41119} GHN4012+HV               =       GDD2000 +      GND2000 +      GHO     +      GNO2     :  0.100E+01*SUN;
+{ 41120} G2N401A +GNO                =       G1N400v +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 41121} G2N401A +GNO                =       GNN400D                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 41122} G2N401A +GHO2               =       GHN4012                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 41123} G2N401A +GNO3               =       G1N400v +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 41124} G2N401A +MEPERO             =  0.340G1N400v + 0.330GNN400F + 0.330GNN400G                 : ARR( 0.565E-13,  -845., 0.0);
+{ 41125} G2N401A +PERO1              =  0.460G1N400v + 0.270GNN400F + 0.270GNN400G                 : ARR( 0.434E-13,  -900., 0.0);
+{ 41126} G2N401A +PERO2              =  0.400G1N400v + 0.300GNN400F + 0.300GNN400G                 : ARR( 0.162E-13, -1400., 0.0);
+{ 41127} G2N401A +PERO3              =  0.460G1N400v + 0.270GNN400F + 0.270GNN400G                 : ARR( 0.488E-13, -1250., 0.0);
+{ 41128} G2N401A +PERO5              =  0.460G1N400v + 0.270GNN400F + 0.270GNN400G                 : ARR( 0.183E-11,   450., 0.0);
+{ 41129} G2N401A +PERO6              =  0.300G1N400v + 0.350GNN400F + 0.350GNN400G                 : ARR( 0.168E-13, -1300., 0.0);
+{ 41130} G2N401A +PERO9              =  0.650G1N400v + 0.350GNN400G                                : ARR( 0.100E-10,     0., 0.0);
+{ 41131} G1H401l                     =       GND2000 +      GDD2000 +      GHO                     : ARR( 0.200E+15,  6256., 0.0);
+{ 41132} G1H401l                     =       GHN3007 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 41133} GHN4013 +GHO                =       GNN400Z +      GHO                                    : ARR( 0.323E-11,     0., 0.0);
+{ 41134} GHN4013 +GHO                =       G3H400m                                               : ARR( 0.417E-11,     0., 0.0);
+{ 41135} GHN4013 +GHO                =       G2N4015                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 41136} GHN4013 +GNO3               =       G3H400m +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 41137} GHN4013+HV               =       G1N400u +      GHO                                    :  0.100E+01*SUN;
+{ 41138} GHN4013+HV               =       G1H401m +      GNO2                                   :  0.100E+01*SUN;
+{ 41139} GHN4013+HV               =       G1H401c +      GNO2                                   :  0.100E+01*SUN;
+{ 41140} GHN4013+HV               =       GHN300A +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 41141} GHN4013+HV               =       GDD2000 +      GND2000 +      GHO     +      GNO2     :  0.100E+01*SUN;
+{ 41142} G1H401m                     =       GCH2O   +      GND3005 +      GHO                     : ARR( 0.200E+15,  6565., 0.0);
+{ 41143} G1H401m                     =       GHD2000 +      GDD2000 +      GNO2                    : ARR( 0.200E+15,  6515., 0.0);
+{ 41144} GGN501A +GHO                =       GGN502J +      GHO2                                   : ARR( 0.435E-12,     0., 0.0);
+{ 41145} GGN501A +GHO                =       G3N500p                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 41146} GGN501A+HV               =       G1G502l +      GNO2                                   :  0.100E+01*SUN;
+{ 41147} GGN501A+HV               =       G1G502m +      GNO2                                   :  0.100E+01*SUN;
+{ 41148} GGN501A+HV               =       G1G502n +      GNO2                                   :  0.100E+01*SUN;
+{ 41149} GGN501A+HV               =       GNN400F +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 41150} G1G502l                     =       GGN400X +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 41151} G1G502m                     =       GND2000 +      GGN3005 +      GHO2                    : ARR( 0.200E+15,  2745., 0.0);
+{ 41152} G1G502n                     =       GNN400F +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 41153} GAN501J +GHO                =       GAN502C +      GHO2                                   : ARR( 0.443E-12,     0., 0.0);
+{ 41154} GAN501J +GHO                =       G1A502i                                               : ARR( 0.226E-17,    85., 2.0);
+{ 41155} GAN501J +GHO                =       GNN400F +      GNO2    +      GCO2                    : ARR( 0.559E-12,     0., 0.0);
+{ 41156} GAN501J+HV               =       G1A501K +      GNO2                                   :  0.100E+01*SUN;
+{ 41157} GAN501J+HV               =       G1A501J +      GNO2                                   :  0.100E+01*SUN;
+{ 41158} GAN501J+HV               =       G1A502b +      GNO2                                   :  0.100E+01*SUN;
+{ 41159} GPN501N                     =       G3N500p +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 41160} GPN501N +GHO                =       GPN502G +      GNO2                                   : ARR( 0.489E-13,     0., 0.0);
+{ 41161} GPN501N +GHO                =       GPN502O +      GHO2                                   : ARR( 0.438E-12,     0., 0.0);
+{ 41162} GPN501N +GHO                =       G1P5032                                               : ARR( 0.223E-17,    85., 2.0);
+{ 41163} GPN501N+HV               =       G1P502l +      GNO2                                   :  0.100E+01*SUN;
+{ 41164} GPN501N+HV               =       G1P501L +      GNO2                                   :  0.100E+01*SUN;
+{ 41165} GPN501N+HV               =       G1P501M +      GNO2                                   :  0.100E+01*SUN;
+{ 41166} GPN501N+HV               =       G3N500p +      GNO2                                   :  0.100E+01*SUN;
+{ 41167} GNN400Z +GHO                =       G3N400X                                               : ARR( 0.834E-11,     0., 0.0);
+{ 41168} GNN400Z +GNO3               =       G3N400X +      GHNO3                                  : ARR( 0.240E-13,     0., 0.0);
+{ 41169} GNN400Z+HV               =       GCO     +      GND3005 +      GHO2    +      GNO2     :  0.200E+01*SUN;
+{ 41170} GNN400Z+HV               =       G1N401B +      GNO2                                   :  0.200E+01*SUN;
+{ 41171} GHH400e +GHO                =       GHN400q +      GHO                                    : ARR( 0.828E-11,     0., 0.0);
+{ 41172} GHH400e +GHO                =       GHN400O +      GHO                                    : ARR( 0.161E-10,     0., 0.0);
+{ 41173} GHH400e +GHO                =       G2H401K                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 41174} GHH400e +GHO                =       G2H400h                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 41175} GHH400e+HV               =       G1H401Q +      GNO2                                   :  0.100E+01*SUN;
+{ 41176} GHH400e+HV               =       G1H401I +      GHO                                    :  0.100E+01*SUN;
+{ 41177} GHH400e+HV               =       G1H400l +      GHO                                    :  0.100E+01*SUN;
+{ 41178} G2H401K +GNO                =       G1H401I +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 41179} G2H401K +GNO                =       GHN400n                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 41180} G2H401K +GHO2               =       GHH400e                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 41181} G2H401K +GNO3               =       G1H401I +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 41182} G2H401K +MEPERO             =  0.340G1H401I + 0.330GHN4014 + 0.330GHN400q                 : ARR( 0.565E-13,  -845., 0.0);
+{ 41183} G2H401K +PERO1              =  0.460G1H401I + 0.270GHN4014 + 0.270GHN400q                 : ARR( 0.434E-13,  -900., 0.0);
+{ 41184} G2H401K +PERO2              =  0.400G1H401I + 0.300GHN4014 + 0.300GHN400q                 : ARR( 0.162E-13, -1400., 0.0);
+{ 41185} G2H401K +PERO3              =  0.460G1H401I + 0.270GHN4014 + 0.270GHN400q                 : ARR( 0.488E-13, -1250., 0.0);
+{ 41186} G2H401K +PERO5              =  0.460G1H401I + 0.270GHN4014 + 0.270GHN400q                 : ARR( 0.183E-11,   450., 0.0);
+{ 41187} G2H401K +PERO6              =  0.300G1H401I + 0.350GHN4014 + 0.350GHN400q                 : ARR( 0.168E-13, -1300., 0.0);
+{ 41188} G2H401K +PERO9              =  0.650G1H401I + 0.350GHN400q                                : ARR( 0.100E-10,     0., 0.0);
+{ 41189} GHN4014 +GHO                =       GHN400q +      GHO2                                   : ARR( 0.209E-11,     0., 0.0);
+{ 41190} GHN4014 +GHO                =       GND400H +      GHO                                    : ARR( 0.163E-10,     0., 0.0);
+{ 41191} GHN4014 +GHO                =       G2N400o                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 41192} GHN4014+HV               =       G1H401S +      GNO2                                   :  0.100E+01*SUN;
+{ 41193} GHN4014+HV               =       G1N400r +      GHO                                    :  0.100E+01*SUN;
+{ 41194} GHN505R +GHO                =       GNN502z +      GHO                                    : ARR( 0.326E-11,     0., 0.0);
+{ 41195} GHN505R +GHO                =       G2N504H                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 41196} GHN505R+HV               =       G1H509N +      GNO2                                   :  0.100E+01*SUN;
+{ 41197} GHN505R+HV               =       G1H509O +      GNO2                                   :  0.100E+01*SUN;
+{ 41198} GHN505R+HV               =       G3N3003 +      GHD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 41199} GHN505R+HV               =       G1H509P +      GNO2                                   :  0.100E+01*SUN;
+{ 41200} GHN505R+HV               =       G1N504o +      GHO                                    :  0.100E+01*SUN;
+{ 41201} G1H509N +OXYGEN             =       GHN506l +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 41202} G1H509N                     =       GHN401C +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7323., 0.0);
+{ 41203} G1H509O                     =       GND2000 +      G3H3005                                : ARR( 0.200E+15,  3067., 0.0);
+{ 41204} G1H509P                     =       G3N3003 +      GHD2000                                : ARR( 0.200E+15,  3069., 0.0);
+{ 41205} GNN502z +GHO                =       G3N501z                                               : ARR( 0.422E-11,     0., 0.0);
+{ 41206} GNN502z +GNO3               =       G3N501z +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 41207} GNN502z+HV               =       G1N506i +      GNO2                                   :  0.100E+01*SUN;
+{ 41208} GNN502z+HV               =       G1N506j +      GNO2                                   :  0.100E+01*SUN;
+{ 41209} GNN502z+HV               =       G3N3003 +      GDD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 41210} GNN502z+HV               =       G1N506k +      GNO2                                   :  0.100E+01*SUN;
+{ 41211} GNN502z+HV               =       GNN400a +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 41212} G3N501z +GHO2               =  0.800GGN502L + 0.200GAN502S + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 41213} G3N501z +GNO                =       GNN400a + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 41214} G3N501z +GNO2               =       GPN502Z                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 41215} G3N501z +GNO3               =       GNN400a + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 41216} G3N501z +MEPERO             =  0.685GNN400a + 0.315GAN502S + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41217} G3N501z +PERO1              =  0.800GNN400a + 0.200GAN502S + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41218} G3N501z +PERO2              =  0.750GNN400a + 0.250GAN502S + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41219} G3N501z +PERO3              =  0.800GNN400a + 0.200GAN502S + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41220} G3N501z +PERO5              =  0.650GNN400a + 0.350GAN502S + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41221} G3N501z +PERO6              =  0.650GNN400a + 0.350GAN502S + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41222} G3N501z +PERO9              =       GNN400a +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 41223} G1N506i +OXYGEN             =       GNN503L +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 41224} G1N506i                     =       GND400N +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7323., 0.0);
+{ 41225} G1N506j                     =       GND2000 +      G3N3005                                : ARR( 0.200E+15,  4121., 0.0);
+{ 41226} G1N506k                     =       G3N3003 +      GDD2000                                : ARR( 0.200E+15,  4953., 0.0);
+{ 41227} GNN400a +GHO                =       G3N3003 +      GCO                                    : ARR( 0.127E-10,     0., 0.0);
+{ 41228} GNN400a +GNO3               =       G3N3003 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 41229} GNN400a+HV               =       G1N401A +      GNO2                                   :  0.100E+01*SUN;
+{ 41230} GNN400a+HV               =       G1N401C +      GNO2                                   :  0.100E+01*SUN;
+{ 41231} GNN400a+HV               =       G3N3003 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 41232} GNN400a+HV               =       GNN3005 +      GCO                                    :  0.100E+01*SUN;
+{ 41233} GNN400a+HV               =       GNN2000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 41234} G1N401C                     =       GND2000 +      G3D2000                                : ARR( 0.200E+15,  3291., 0.0);
+{ 41235} GHN505S +GHO                =       GNN5031 +      GHO                                    : ARR( 0.326E-11,     0., 0.0);
+{ 41236} GHN505S +GHO                =       G2N504I                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 41237} GHN505S+HV               =       G1H509Q +      GNO2                                   :  0.100E+01*SUN;
+{ 41238} GHN505S+HV               =       G3N2000 +      G3H3005                                :  0.100E+01*SUN;
+{ 41239} GHN505S+HV               =       G1H509R +      GNO2                                   :  0.100E+01*SUN;
+{ 41240} GHN505S+HV               =       G1N504p +      GHO                                    :  0.100E+01*SUN;
+{ 41241} G1H509Q                     =       G3H3005 +      GCH2O   +      GCO                     : ARR( 0.200E+15,  3897., 0.0);
+{ 41242} G1H509R                     =       G3N2000 +      GHD2000 +      GCO                     : ARR( 0.200E+15,  3326., 0.0);
+{ 41243} GNN5031 +GHO                =       G3N5021                                               : ARR( 0.423E-11,     0., 0.0);
+{ 41244} GNN5031 +GNO3               =       G3N5021 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 41245} GNN5031+HV               =       G1N506l +      GNO2                                   :  0.100E+01*SUN;
+{ 41246} GNN5031+HV               =       G3N2000 +      G3N3005                                :  0.100E+01*SUN;
+{ 41247} GNN5031+HV               =       G1N506m +      GNO2                                   :  0.100E+01*SUN;
+{ 41248} GNN5031+HV               =       GND400M +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 41249} G3N5021 +GHO2               =  0.800GGN502M + 0.200GAN502T + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 41250} G3N5021 +GNO                =       GND400M + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 41251} G3N5021 +GNO2               =       GPN502c                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 41252} G3N5021 +GNO3               =       GND400M + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 41253} G3N5021 +MEPERO             =  0.685GND400M + 0.315GAN502T + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41254} G3N5021 +PERO1              =  0.800GND400M + 0.200GAN502T + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41255} G3N5021 +PERO2              =  0.750GND400M + 0.250GAN502T + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41256} G3N5021 +PERO3              =  0.800GND400M + 0.200GAN502T + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41257} G3N5021 +PERO5              =  0.650GND400M + 0.350GAN502T + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41258} G3N5021 +PERO6              =  0.650GND400M + 0.350GAN502T + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41259} G3N5021 +PERO9              =       GND400M +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 41260} G1N506l                     =       G3N3005 +      GCH2O   +      GCO                     : ARR( 0.200E+15,  3897., 0.0);
+{ 41261} G1N506m                     =       G3N2000 +      GDD2000 +      GCO                     : ARR( 0.200E+15,  5210., 0.0);
+{ 41262} GND400M +GHO                =       G3N2000 + 2.000GCO                                    : ARR( 0.127E-10,     0., 0.0);
+{ 41263} GND400M +GNO3               =       G3N2000 +      GHNO3   + 2.000GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 41264} GND400M+HV               =       G1D400N +      GNO2                                   :  0.100E+01*SUN;
+{ 41265} GND400M+HV               =       G3N2000 +      G3D2000                                :  0.100E+01*SUN;
+{ 41266} GND400M+HV               =       G3N2000 +      GCO     +      GCO     +      GHO2     :  0.100E+01*SUN;
+{ 41267} GND400M+HV               =       GND3003 +      GCO                                    :  0.100E+01*SUN;
+{ 41268} GND400M+HV               =       GND2000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 41269} GHN505T +GHO                =       GNN502W +      GHO                                    : ARR( 0.168E-11,     0., 0.0);
+{ 41270} GHN505T +GHO                =       G3H502h                                               : ARR( 0.424E-11,     0., 0.0);
+{ 41271} GHN505T +GHO                =       G2N505h                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 41272} GHN505T +GNO3               =       G3H502h +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 41273} GHN505T+HV               =       G1H507D +      GNO2                                   :  0.100E+01*SUN;
+{ 41274} GHN505T+HV               =       G1N5063 +      GHO                                    :  0.100E+01*SUN;
+{ 41275} GHN505T+HV               =       G1H509S +      GNO2                                   :  0.100E+01*SUN;
+{ 41276} GHN505T+HV               =       GHN400O +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 41277} GHN505T+HV               =       GDK3000 +      GND2000 +      GHO     +      GNO2     :  0.100E+01*SUN;
+{ 41278} G3H502h +GHO2               =  0.800GGH502G + 0.200GAH502X + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 41279} G3H502h +GNO                =       GHN400O + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 41280} G3H502h +GNO2               =       GPH502e                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 41281} G3H502h +GNO3               =       GHN400O + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 41282} G3H502h +MEPERO             =  0.685GHN400O + 0.315GAH502X + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41283} G3H502h +PERO1              =  0.800GHN400O + 0.200GAH502X + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41284} G3H502h +PERO2              =  0.750GHN400O + 0.250GAH502X + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41285} G3H502h +PERO3              =  0.800GHN400O + 0.200GAH502X + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41286} G3H502h +PERO5              =  0.650GHN400O + 0.350GAH502X + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41287} G3H502h +PERO6              =  0.650GHN400O + 0.350GAH502X + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41288} G3H502h +PERO9              =       GHN400O +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 41289} G2N505h +GNO                =       G1N5063 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 41290} G2N505h +GNO                =       GNN502T                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 41291} G2N505h +GHO2               =       GHN505T                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 41292} G2N505h +GNO3               =       G1N5063 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 41293} G2N505h +MEPERO             =  0.340G1N5063 + 0.330GNN502U + 0.330GNN502W                 : ARR( 0.565E-13,  -845., 0.0);
+{ 41294} G2N505h +PERO1              =  0.460G1N5063 + 0.270GNN502U + 0.270GNN502W                 : ARR( 0.434E-13,  -900., 0.0);
+{ 41295} G2N505h +PERO2              =  0.400G1N5063 + 0.300GNN502U + 0.300GNN502W                 : ARR( 0.162E-13, -1400., 0.0);
+{ 41296} G2N505h +PERO3              =  0.460G1N5063 + 0.270GNN502U + 0.270GNN502W                 : ARR( 0.488E-13, -1250., 0.0);
+{ 41297} G2N505h +PERO5              =  0.460G1N5063 + 0.270GNN502U + 0.270GNN502W                 : ARR( 0.183E-11,   450., 0.0);
+{ 41298} G2N505h +PERO6              =  0.300G1N5063 + 0.350GNN502U + 0.350GNN502W                 : ARR( 0.168E-13, -1300., 0.0);
+{ 41299} G2N505h +PERO9              =  0.650G1N5063 + 0.350GNN502W                                : ARR( 0.100E-10,     0., 0.0);
+{ 41300} G1H509S                     =       GND3001 +      GDD2000 +      GHO                     : ARR( 0.200E+15,  6108., 0.0);
+{ 41301} G1H509S                     =       GHN400O +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 41302} GNN5032 +GHO                =       GNN503A +      GHO2                                   : ARR( 0.384E-11,     0., 0.0);
+{ 41303} GNN5032 +GHO                =       G3N5022                                               : ARR( 0.660E-10,     0., 0.0);
+{ 41304} GNN5032 +GNO3               =       G3N5022 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 41305} GNN5032+HV               =       G1N506n +      GNO2                                   :  0.100E+01*SUN;
+{ 41306} GNN5032+HV               =       G1N506o +      GNO2                                   :  0.100E+01*SUN;
+{ 41307} GNN5032+HV               =       G3N3003 +      GDD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 41308} GNN5032+HV               =       GNN400a +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 41309} G3N5022 +GHO2               =  0.800GGN502N + 0.200GAN502X + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 41310} G3N5022 +GNO                =       GNN400a +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 41311} G3N5022 +GNO2               =       GPN502a                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 41312} G3N5022 +GNO3               =       GNN400a +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 41313} G3N5022 +MEPERO             =  0.685GNN400a + 0.315GAN502X + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41314} G3N5022 +PERO1              =  0.800GNN400a + 0.200GAN502X + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41315} G3N5022 +PERO2              =  0.750GNN400a + 0.250GAN502X + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41316} G3N5022 +PERO3              =  0.800GNN400a + 0.200GAN502X + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41317} G3N5022 +PERO5              =  0.650GNN400a + 0.350GAN502X + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41318} G3N5022 +PERO6              =  0.650GNN400a + 0.350GAN502X + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41319} G3N5022 +PERO9              =       GNN400a +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 41320} G1N506n +OXYGEN             =       GND501Z +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 41321} G1N506n                     =       GND5016 +      GHO2                                   : ARR( 0.800E+11,  4228., 0.0);
+{ 41322} G1N506n                     =       GDD4004 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7323., 0.0);
+{ 41323} G1N506o                     =       GND2000 +      G3D3001                                : ARR( 0.200E+15,  3775., 0.0);
+{ 41324} GNN5033 +GHO                =       GNN5031 +      GHO2                                   : ARR( 0.133E-11,     0., 0.0);
+{ 41325} GNN5033 +GHO                =       G3N5023                                               : ARR( 0.441E-11,     0., 0.0);
+{ 41326} GNN5033 +GNO3               =       G3N5023 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 41327} GNN5033+HV               =       G1N506p +      GNO2                                   :  0.100E+01*SUN;
+{ 41328} GNN5033+HV               =       G3N3002 +      GDD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 41329} GNN5033+HV               =       G1N506R +      GNO2                                   :  0.100E+01*SUN;
+{ 41330} GNN5033+HV               =       GND400G +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 41331} G3N5023 +GHO2               =  0.800GGN501S + 0.200GAN501L + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 41332} G3N5023 +GNO                =       GND400G + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 41333} G3N5023 +GNO2               =       GPN501P                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 41334} G3N5023 +GNO3               =       GND400G + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 41335} G3N5023 +MEPERO             =  0.685GND400G + 0.315GAN501L + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41336} G3N5023 +PERO1              =  0.800GND400G + 0.200GAN501L + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41337} G3N5023 +PERO2              =  0.750GND400G + 0.250GAN501L + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41338} G3N5023 +PERO3              =  0.800GND400G + 0.200GAN501L + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41339} G3N5023 +PERO5              =  0.650GND400G + 0.350GAN501L + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41340} G3N5023 +PERO6              =  0.650GND400G + 0.350GAN501L + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41341} G3N5023 +PERO9              =       GND400G +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 41342} G1N506p                     =       GND400N +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4576., 0.0);
+{ 41343} GNN5034 +GHO                =       GNN5035 +      GHO2                                   : ARR( 0.216E-11,     0., 0.0);
+{ 41344} GNN5034 +GHO                =       GNN5033 +      GHO2                                   : ARR( 0.216E-11,     0., 0.0);
+{ 41345} GNN5034 +GHO                =       G3N5024                                               : ARR( 0.435E-11,     0., 0.0);
+{ 41346} GNN5034 +GNO3               =       G3N5024 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 41347} GNN5034+HV               =       G1N506q +      GNO2                                   :  0.100E+01*SUN;
+{ 41348} GNN5034+HV               =       G1N506Q +      GNO2                                   :  0.100E+01*SUN;
+{ 41349} GNN5034+HV               =       GND400F +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 41350} GNN5034+HV               =       GNK3001 +      GND2000                                :  0.100E+01*SUN;
+{ 41351} G3N5024 +GHO2               =  0.800GGN501P + 0.200GAN501K + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 41352} G3N5024 +GNO                =       GND400F + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 41353} G3N5024 +GNO2               =       GPN501O                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 41354} G3N5024 +GNO3               =       GND400F + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 41355} G3N5024 +MEPERO             =  0.685GND400F + 0.315GAN501K + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41356} G3N5024 +PERO1              =  0.800GND400F + 0.200GAN501K + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41357} G3N5024 +PERO2              =  0.750GND400F + 0.250GAN501K + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41358} G3N5024 +PERO3              =  0.800GND400F + 0.200GAN501K + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41359} G3N5024 +PERO5              =  0.650GND400F + 0.350GAN501K + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41360} G3N5024 +PERO6              =  0.650GND400F + 0.350GAN501K + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41361} G3N5024 +PERO9              =       GND400F +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 41362} G1N506q                     =       GND400J +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 41363} GND501H +GHO                =       GND5016 +      GHO2                                   : ARR( 0.389E-11,     0., 0.0);
+{ 41364} GND501H +GHO                =       G3N5025                                               : ARR( 0.670E-10,     0., 0.0);
+{ 41365} GND501H +GNO3               =       G3N5025 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 41366} GND501H+HV               =       G1D501K +      GNO2                                   :  0.100E+01*SUN;
+{ 41367} GND501H+HV               =       G3N3004 +      GDD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 41368} GND501H+HV               =       GND400K +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 41369} G3N5025 +GHO2               =  0.800GGN502O + 0.200GAN502Z + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 41370} G3N5025 +GNO                =       GND400K +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 41371} G3N5025 +GNO2               =       GPN5026                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 41372} G3N5025 +GNO3               =       GND400K +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 41373} G3N5025 +MEPERO             =  0.685GND400K + 0.315GAN502Z + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41374} G3N5025 +PERO1              =  0.800GND400K + 0.200GAN502Z + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41375} G3N5025 +PERO2              =  0.750GND400K + 0.250GAN502Z + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41376} G3N5025 +PERO3              =  0.800GND400K + 0.200GAN502Z + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41377} G3N5025 +PERO5              =  0.650GND400K + 0.350GAN502Z + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41378} G3N5025 +PERO6              =  0.650GND400K + 0.350GAN502Z + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41379} G3N5025 +PERO9              =       GND400K +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 41380} G1D501K                     =       GDO2000 +      G3D3001                                : ARR( 0.200E+15,  3778., 0.0);
+{ 41381} GAH501P +GHO                =       GAN501L +      GHO                                    : ARR( 0.869E-11,     0., 0.0);
+{ 41382} GAH501P +GHO                =       GAH503a +      GHO2                                   : ARR( 0.217E-11,     0., 0.0);
+{ 41383} GAH501P +GHO                =       G2A5019                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 41384} GAH501P+HV               =       G1A504A +      GNO2                                   :  0.100E+01*SUN;
+{ 41385} GAH501P+HV               =       G1A501J +      GHO                                    :  0.100E+01*SUN;
+{ 41386} GAH501P+HV               =       G1A504B +      GNO2                                   :  0.100E+01*SUN;
+{ 41387} G1A504A                     =       GCO     +      GHN400T +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 41388} G1A504B                     =       GAH400r +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 41389} GAN501K +GHO                =       GAN501L +      GHO2                                   : ARR( 0.223E-11,     0., 0.0);
+{ 41390} GAN501K +GHO                =       GAN502J +      GHO2                                   : ARR( 0.223E-11,     0., 0.0);
+{ 41391} GAN501K +GHO                =       GND400F +      GNO2    +      GCO2                    : ARR( 0.563E-12,     0., 0.0);
+{ 41392} GAN501K+HV               =       G1A504C +      GNO2                                   :  0.100E+01*SUN;
+{ 41393} GAN501K+HV               =       G1A504D +      GNO2                                   :  0.100E+01*SUN;
+{ 41394} G1A504C                     =       GCO     +      GND400F +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 41395} G1A504C                     =       GAD2000 +      GND3002 +      GHO2                    : ARR( 0.200E+15,  5342., 0.0);
+{ 41396} G1A504D                     =       GAN400P +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 41397} GAN501L +GHO                =       GAN502T +      GHO2                                   : ARR( 0.128E-11,     0., 0.0);
+{ 41398} GAN501L +GHO                =       GAN502A +      GNO2                                   : ARR( 0.148E-12,     0., 0.0);
+{ 41399} GAN501L +GHO                =       G1A5032                                               : ARR( 0.213E-17,    85., 2.0);
+{ 41400} GAN501L +GHO                =       GND400G +      GNO2    +      GCO2                    : ARR( 0.528E-12,     0., 0.0);
+{ 41401} GAN501L+HV               =       G1A501P +      GNO2                                   :  0.100E+01*SUN;
+{ 41402} GAN501L+HV               =       G3A3001 +      GND2000 +      GHO2                    :  0.100E+01*SUN;
+{ 41403} GAN501L+HV               =       G1A502e +      GNO2                                   :  0.100E+01*SUN;
+{ 41404} GPH501R                     =       G3H501w +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 41405} GPH501R +GHO                =       GPH503y +      GHO2                                   : ARR( 0.210E-11,     0., 0.0);
+{ 41406} GPH501R +GHO                =       GPN501P +      GHO                                    : ARR( 0.840E-11,     0., 0.0);
+{ 41407} GPH501R +GHO                =       G2P501B                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 41408} GPH501R+HV               =       G1P504N +      GNO2                                   :  0.100E+01*SUN;
+{ 41409} GPH501R+HV               =       G1P501L +      GHO                                    :  0.100E+01*SUN;
+{ 41410} GPH501R+HV               =       G1P504O +      GNO2                                   :  0.100E+01*SUN;
+{ 41411} GPH501R+HV               =       G3H501w +      GNO2                                   :  0.100E+01*SUN;
+{ 41412} G1P504N                     =       GPH400s +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 41413} G1P504O                     =       GHN400T +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 41414} GPN501O                     =       G3N5024 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 41415} GPN501O +GHO                =       GPN502R +      GHO2                                   : ARR( 0.226E-11,     0., 0.0);
+{ 41416} GPN501O +GHO                =       GPN501P +      GHO2                                   : ARR( 0.226E-11,     0., 0.0);
+{ 41417} GPN501O+HV               =       G1P504P +      GNO2                                   :  0.100E+01*SUN;
+{ 41418} GPN501O+HV               =       G1P501S +      GNO2                                   :  0.100E+01*SUN;
+{ 41419} GPN501O+HV               =       G3N5024 +      GNO2                                   :  0.100E+01*SUN;
+{ 41420} G1P504P                     =       GPN400P +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 41421} GPN501P                     =       G3N5023 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 41422} GPN501P +GHO                =       GPN502L +      GNO2                                   : ARR( 0.150E-12,     0., 0.0);
+{ 41423} GPN501P +GHO                =       GPN502c +      GHO2                                   : ARR( 0.129E-11,     0., 0.0);
+{ 41424} GPN501P +GHO                =       G1P503I                                               : ARR( 0.216E-17,    85., 2.0);
+{ 41425} GPN501P+HV               =       G1P502t +      GNO2                                   :  0.100E+01*SUN;
+{ 41426} GPN501P+HV               =       G3N3002 +      GPD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 41427} GPN501P+HV               =       G1P501U +      GNO2                                   :  0.100E+01*SUN;
+{ 41428} GPN501P+HV               =       G3N5023 +      GNO2                                   :  0.100E+01*SUN;
+{ 41429} GHN505U +GHO                =       GNN5031 +      GHO                                    : ARR( 0.513E-11,     0., 0.0);
+{ 41430} GHN505U +GHO                =       G3H502i                                               : ARR( 0.424E-11,     0., 0.0);
+{ 41431} GHN505U +GHO                =       G2N505i                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 41432} GHN505U +GNO3               =       G3H502i +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 41433} GHN505U+HV               =       G1H509T +      GNO2                                   :  0.100E+01*SUN;
+{ 41434} GHN505U+HV               =       G3N2000 +      GND3005 +      GHO                     :  0.100E+01*SUN;
+{ 41435} GHN505U+HV               =       G1N506f +      GHO                                    :  0.100E+01*SUN;
+{ 41436} GHN505U+HV               =       G1H509U +      GNO2                                   :  0.100E+01*SUN;
+{ 41437} GHN505U+HV               =       GHN400R +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 41438} G3H502i +GHO2               =  0.800GGH503J + 0.200GAH503a + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 41439} G3H502i +GNO                =       GHN400R + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 41440} G3H502i +GNO2               =       GPH503y                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 41441} G3H502i +GNO3               =       GHN400R + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 41442} G3H502i +MEPERO             =  0.685GHN400R + 0.315GAH503a + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41443} G3H502i +PERO1              =  0.800GHN400R + 0.200GAH503a + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41444} G3H502i +PERO2              =  0.750GHN400R + 0.250GAH503a + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41445} G3H502i +PERO3              =  0.800GHN400R + 0.200GAH503a + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41446} G3H502i +PERO5              =  0.650GHN400R + 0.350GAH503a + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41447} G3H502i +PERO6              =  0.650GHN400R + 0.350GAH503a + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41448} G3H502i +PERO9              =       GHN400R +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 41449} G2N505i +GNO                =       G1N506f +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 41450} G2N505i +GNO                =       GNN502x                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 41451} G2N505i +GHO2               =       GHN505U                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 41452} G2N505i +GNO3               =       G1N506f +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 41453} G2N505i +MEPERO             =  0.340G1N506f + 0.330GNN5035 + 0.330GNN5031                 : ARR( 0.565E-13,  -845., 0.0);
+{ 41454} G2N505i +PERO1              =  0.460G1N506f + 0.270GNN5035 + 0.270GNN5031                 : ARR( 0.434E-13,  -900., 0.0);
+{ 41455} G2N505i +PERO2              =  0.400G1N506f + 0.300GNN5035 + 0.300GNN5031                 : ARR( 0.162E-13, -1400., 0.0);
+{ 41456} G2N505i +PERO3              =  0.460G1N506f + 0.270GNN5035 + 0.270GNN5031                 : ARR( 0.488E-13, -1250., 0.0);
+{ 41457} G2N505i +PERO5              =  0.460G1N506f + 0.270GNN5035 + 0.270GNN5031                 : ARR( 0.183E-11,   450., 0.0);
+{ 41458} G2N505i +PERO6              =  0.300G1N506f + 0.350GNN5035 + 0.350GNN5031                 : ARR( 0.168E-13, -1300., 0.0);
+{ 41459} G2N505i +PERO9              =  0.650G1N506f + 0.350GNN5031                                : ARR( 0.100E-10,     0., 0.0);
+{ 41460} G1H509T                     =       G3H400h +      GCH2O                                  : ARR( 0.200E+15,  3603., 0.0);
+{ 41461} G1H509U                     =       GHN400R +      GCO     +      GHO2                    : ARR( 0.200E+15,  4861., 0.0);
+{ 41462} GGH400K +GHO                =       GGH400r +      GHO2                                   : ARR( 0.820E-12,     0., 0.0);
+{ 41463} GGH400K +GHO                =       GGN400Y +      GHO                                    : ARR( 0.513E-11,     0., 0.0);
+{ 41464} GGH400K +GHO                =       G2G400Z                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 41465} GGH400K +GHO                =       G3H400G                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 41466} GGH400K+HV               =       G1G400h +      GNO2                                   :  0.100E+01*SUN;
+{ 41467} GGH400K+HV               =       G1G400a +      GHO                                    :  0.100E+01*SUN;
+{ 41468} GGH400K+HV               =       GND3004 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 41469} G2G400Z +GNO                =       G1G400a +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 41470} G2G400Z +GNO                =       GGN400H                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 41471} G2G400Z +GHO2               =       GGH400K                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 41472} G2G400Z +GNO3               =       G1G400a +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 41473} G2G400Z +MEPERO             =  0.340G1G400a + 0.330GGN400K + 0.330GGN400Y                 : ARR( 0.565E-13,  -845., 0.0);
+{ 41474} G2G400Z +PERO1              =  0.460G1G400a + 0.270GGN400K + 0.270GGN400Y                 : ARR( 0.434E-13,  -900., 0.0);
+{ 41475} G2G400Z +PERO2              =  0.400G1G400a + 0.300GGN400K + 0.300GGN400Y                 : ARR( 0.162E-13, -1400., 0.0);
+{ 41476} G2G400Z +PERO3              =  0.460G1G400a + 0.270GGN400K + 0.270GGN400Y                 : ARR( 0.488E-13, -1250., 0.0);
+{ 41477} G2G400Z +PERO5              =  0.460G1G400a + 0.270GGN400K + 0.270GGN400Y                 : ARR( 0.183E-11,   450., 0.0);
+{ 41478} G2G400Z +PERO6              =  0.300G1G400a + 0.350GGN400K + 0.350GGN400Y                 : ARR( 0.168E-13, -1300., 0.0);
+{ 41479} G2G400Z +PERO9              =  0.650G1G400a + 0.350GGN400Y                                : ARR( 0.100E-10,     0., 0.0);
+{ 41480} G1G400h                     =       GCH2O   +      GGH3007 +      GHO2                    : ARR( 0.200E+15,  4465., 0.0);
+{ 41481} G1G400h                     =       GDO2000 +      GGD2000 +      GHO                     : ARR( 0.200E+15,  5198., 0.0);
+{ 41482} GNN5035 +GHO                =       GNN5031 +      GHO2                                   : ARR( 0.135E-11,     0., 0.0);
+{ 41483} GNN5035 +GHO                =       G3N5026                                               : ARR( 0.446E-11,     0., 0.0);
+{ 41484} GNN5035 +GNO3               =       G3N5026 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 41485} GNN5035+HV               =       G1N506r +      GNO2                                   :  0.100E+01*SUN;
+{ 41486} GNN5035+HV               =       G3N2000 +      GND3005 +      GHO2                    :  0.100E+01*SUN;
+{ 41487} GNN5035+HV               =       G1N505v +      GNO2                                   :  0.100E+01*SUN;
+{ 41488} GNN5035+HV               =       GND400E +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 41489} G3N5026 +GHO2               =  0.800GGN502P + 0.200GAN502J + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 41490} G3N5026 +GNO                =       GND400E + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 41491} G3N5026 +GNO2               =       GPN502R                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 41492} G3N5026 +GNO3               =       GND400E + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 41493} G3N5026 +MEPERO             =  0.685GND400E + 0.315GAN502J + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41494} G3N5026 +PERO1              =  0.800GND400E + 0.200GAN502J + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41495} G3N5026 +PERO2              =  0.750GND400E + 0.250GAN502J + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41496} G3N5026 +PERO3              =  0.800GND400E + 0.200GAN502J + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41497} G3N5026 +PERO5              =  0.650GND400E + 0.350GAN502J + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41498} G3N5026 +PERO6              =  0.650GND400E + 0.350GAN502J + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41499} G3N5026 +PERO9              =       GND400E +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 41500} G1N506r                     =       G3N400T +      GCH2O                                  : ARR( 0.200E+15,  3603., 0.0);
+{ 41501} GHN505W +GHO                =       GNN5036 +      GHO                                    : ARR( 0.983E-11,     0., 0.0);
+{ 41502} GHN505W +GHO                =       G2N504J                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 41503} GHN505W+HV               =       G1H509W +      GNO2                                   :  0.100E+01*SUN;
+{ 41504} GHN505W+HV               =       G1H509X +      GNO2                                   :  0.100E+01*SUN;
+{ 41505} GHN505W+HV               =       G1H509Y +      GNO2                                   :  0.100E+01*SUN;
+{ 41506} GHN505W+HV               =       G3N400J +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 41507} GHN505W+HV               =       GDD2000 +      GHN3008 + 2.000GNO2                    :  0.100E+01*SUN;
+{ 41508} GHN505W+HV               =       G1N5055 +      GHO                                    :  0.100E+01*SUN;
+{ 41509} G1H509W +OXYGEN             =       GHN506T +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 41510} G1H509W                     =       GHN401A +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7175., 0.0);
+{ 41511} G1H509X                     =       GNN5037 +      GHO                                    : ARR( 0.160E+12,  4168., 0.0);
+{ 41512} G1H509X                     =       GND2000 +      GHD3001 +      GNO2                    : ARR( 0.200E+15,  6513., 0.0);
+{ 41513} G1H509Y                     =       GNN3005 +      G3H2000                                : ARR( 0.200E+15,  3009., 0.0);
+{ 41514} GNN5036 +GHO                =       G3N400J +      GCO                                    : ARR( 0.127E-10,     0., 0.0);
+{ 41515} GNN5036 +GNO3               =       G3N400J +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 41516} GNN5036+HV               =       G1N506s +      GNO2                                   :  0.100E+01*SUN;
+{ 41517} GNN5036+HV               =       G1N506t +      GNO2                                   :  0.100E+01*SUN;
+{ 41518} GNN5036+HV               =       G1N506u +      GNO2                                   :  0.100E+01*SUN;
+{ 41519} GNN5036+HV               =       G3N400J +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 41520} GNN5036+HV               =       GNN400D +      GCO                                    :  0.100E+01*SUN;
+{ 41521} GNN5036+HV               =       GNN3003 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 41522} G1N506s +OXYGEN             =       GNN503G +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 41523} G1N506s                     =       GND400N +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7175., 0.0);
+{ 41524} G1N506t                     =       G3N400K +      GCO                                    : ARR( 0.800E+11,  4780., 0.0);
+{ 41525} G1N506t                     =       GND2000 +      GDD3002 +      GNO2                    : ARR( 0.200E+15,  6092., 0.0);
+{ 41526} G1N506u                     =       GNN3005 +      G3D2000                                : ARR( 0.200E+15,  3233., 0.0);
+{ 41527} GGN400N +GHO                =       G3N400J                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 41528} GGN400N+HV               =       G1G400i +      GNO2                                   :  0.100E+01*SUN;
+{ 41529} GGN400N+HV               =       G1G400j +      GNO2                                   :  0.100E+01*SUN;
+{ 41530} GGN400N+HV               =       G1G400k +      GNO2                                   :  0.100E+01*SUN;
+{ 41531} GGN400N+HV               =       GNN3005 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 41532} G1G400i +OXYGEN             =       GGN400X +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 41533} G1G400i                     =       GGN3005 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7175., 0.0);
+{ 41534} G1G400j                     =       GND2000 +      GGD2000 +      GNO2                    : ARR( 0.200E+15,  6734., 0.0);
+{ 41535} G1G400k                     =       GNN3005 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 41536} GAN400Q +GHO                =       GNN3005 +      GNO2    +      GCO2                    : ARR( 0.545E-12,     0., 0.0);
+{ 41537} GAN400Q+HV               =       G1A400N +      GNO2                                   :  0.100E+01*SUN;
+{ 41538} GAN400Q+HV               =       G1A400M +      GNO2                                   :  0.100E+01*SUN;
+{ 41539} GAN400Q+HV               =       G1A400f +      GNO2                                   :  0.100E+01*SUN;
+{ 41540} GPN400R                     =       G3N400J +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 41541} GPN400R +GHO                =       GPN400Z +      GNO2                                   : ARR( 0.919E-14,     0., 0.0);
+{ 41542} GPN400R +GHO                =       GPN400S +      GNO2                                   : ARR( 0.471E-14,     0., 0.0);
+{ 41543} GPN400R +GHO                =       GPN400U +      GNO2                                   : ARR( 0.144E-13,     0., 0.0);
+{ 41544} GPN400R+HV               =       G1P400g +      GNO2                                   :  0.100E+01*SUN;
+{ 41545} GPN400R+HV               =       G1P400N +      GNO2                                   :  0.100E+01*SUN;
+{ 41546} GPN400R+HV               =       G1P400O +      GNO2                                   :  0.100E+01*SUN;
+{ 41547} GPN400R+HV               =       G3N400J +      GNO2                                   :  0.100E+01*SUN;
+{ 41548} GHN505X +GHO                =       GNN5037 +      GHO                                    : ARR( 0.103E-10,     0., 0.0);
+{ 41549} GHN505X +GHO                =       G2N504K                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 41550} GHN505X+HV               =       G1H509Z +      GNO2                                   :  0.100E+01*SUN;
+{ 41551} GHN505X+HV               =       G1H509a +      GNO2                                   :  0.100E+01*SUN;
+{ 41552} GHN505X+HV               =       G3N400K +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 41553} GHN505X+HV               =       GND2000 +      GHN3008                                :  0.100E+01*SUN;
+{ 41554} GHN505X+HV               =       G1N5056 +      GHO                                    :  0.100E+01*SUN;
+{ 41555} G1H509Z                     =       GHN401A +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4427., 0.0);
+{ 41556} G1H509a                     =       GND3002 +      G3H2000                                : ARR( 0.200E+15,  3009., 0.0);
+{ 41557} GNN5037 +GHO                =       G3N400K +      GCO                                    : ARR( 0.133E-10,     0., 0.0);
+{ 41558} GNN5037 +GNO3               =       G3N400K +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 41559} GNN5037+HV               =       G1N506v +      GNO2                                   :  0.100E+01*SUN;
+{ 41560} GNN5037+HV               =       G1N506w +      GNO2                                   :  0.100E+01*SUN;
+{ 41561} GNN5037+HV               =       G3N400K +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 41562} GNN5037+HV               =       GNN400F +      GCO                                    :  0.100E+01*SUN;
+{ 41563} GNN5037+HV               =       GNN3002 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 41564} G1N506v                     =       GND400N +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4427., 0.0);
+{ 41565} G1N506w                     =       GND3002 +      G3D2000                                : ARR( 0.200E+15,  3233., 0.0);
+{ 41566} GHN505Y +GHO                =       GNN5038 +      GHO                                    : ARR( 0.986E-11,     0., 0.0);
+{ 41567} GHN505Y +GHO                =       G2N504L                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 41568} GHN505Y+HV               =       G1H509b +      GNO2                                   :  0.100E+01*SUN;
+{ 41569} GHN505Y+HV               =       G3N2000 +      GHD3001 +      GNO2                    :  0.100E+01*SUN;
+{ 41570} GHN505Y+HV               =       G1H509c +      GNO2                                   :  0.100E+01*SUN;
+{ 41571} GHN505Y+HV               =       G3N400L +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 41572} GHN505Y+HV               =       G1N5057 +      GHO                                    :  0.100E+01*SUN;
+{ 41573} G1H509b                     =       G3H400n +      GCH2O                                  : ARR( 0.200E+15,  4694., 0.0);
+{ 41574} G1H509c                     =       G3N2000 +      GHD3001                                : ARR( 0.200E+15,  4480., 0.0);
+{ 41575} G1H509c                     =       GND3003 +      G3H2000                                : ARR( 0.200E+15,  4599., 0.0);
+{ 41576} G3H400n +GHO2               =  0.800GGH400u + 0.200GAH400m + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 41577} G3H400n +GNO                =       GHD3001 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 41578} G3H400n +GNO2               =       GPH400n                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 41579} G3H400n +GNO3               =       GHD3001 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 41580} G3H400n +MEPERO             =  0.685GHD3001 + 0.315GAH400m + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41581} G3H400n +PERO1              =  0.800GHD3001 + 0.200GAH400m + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41582} G3H400n +PERO2              =  0.750GHD3001 + 0.250GAH400m + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41583} G3H400n +PERO3              =  0.800GHD3001 + 0.200GAH400m + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41584} G3H400n +PERO5              =  0.650GHD3001 + 0.350GAH400m + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41585} G3H400n +PERO6              =  0.650GHD3001 + 0.350GAH400m + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41586} G3H400n +PERO9              =       GHD3001 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 41587} GNN5038 +GHO                =       G3N400L +      GCO                                    : ARR( 0.127E-10,     0., 0.0);
+{ 41588} GNN5038 +GNO3               =       G3N400L +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 41589} GNN5038+HV               =       G1N506x +      GNO2                                   :  0.100E+01*SUN;
+{ 41590} GNN5038+HV               =       G3N2000 +      GDD3002 +      GNO2                    :  0.100E+01*SUN;
+{ 41591} GNN5038+HV               =       G1N506y +      GNO2                                   :  0.100E+01*SUN;
+{ 41592} GNN5038+HV               =       G3N400L +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 41593} GNN5038+HV               =       GNN400G +      GCO                                    :  0.100E+01*SUN;
+{ 41594} GNN5038+HV               =       GNN3006 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 41595} G1N506x                     =       G3N400Y +      GCH2O                                  : ARR( 0.200E+15,  4694., 0.0);
+{ 41596} G1N506y                     =       G3N2000 +      GDD3002                                : ARR( 0.200E+15,  4504., 0.0);
+{ 41597} G1N506y                     =       GND3003 +      G3D2000                                : ARR( 0.200E+15,  4823., 0.0);
+{ 41598} G3N400Y +GHO2               =  0.800GGN400Z + 0.200GAN400b + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 41599} G3N400Y +GNO                =       GDD3002 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 41600} G3N400Y +GNO2               =       GPN400b                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 41601} G3N400Y +GNO3               =       GDD3002 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 41602} G3N400Y +MEPERO             =  0.685GDD3002 + 0.315GAN400b + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41603} G3N400Y +PERO1              =  0.800GDD3002 + 0.200GAN400b + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41604} G3N400Y +PERO2              =  0.750GDD3002 + 0.250GAN400b + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41605} G3N400Y +PERO3              =  0.800GDD3002 + 0.200GAN400b + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41606} G3N400Y +PERO5              =  0.650GDD3002 + 0.350GAN400b + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41607} G3N400Y +PERO6              =  0.650GDD3002 + 0.350GAN400b + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41608} G3N400Y +PERO9              =       GDD3002 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 41609} GGN400O +GHO                =       G3N400L                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 41610} GGN400O+HV               =       G1G400l +      GNO2                                   :  0.100E+01*SUN;
+{ 41611} GGN400O+HV               =       G3N2000 +      GGD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 41612} GGN400O+HV               =       G1G400J +      GNO2                                   :  0.100E+01*SUN;
+{ 41613} GGN400O+HV               =       GND3003 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 41614} G1G400l                     =       G3G3001 +      GCH2O                                  : ARR( 0.200E+15,  4694., 0.0);
+{ 41615} GAN400R +GHO                =       GAN400W +      GNO2                                   : ARR( 0.340E-13,     0., 0.0);
+{ 41616} GAN400R +GHO                =       GND3003 +      GNO2    +      GCO2                    : ARR( 0.546E-12,     0., 0.0);
+{ 41617} GAN400R+HV               =       G1A400O +      GNO2                                   :  0.100E+01*SUN;
+{ 41618} GAN400R+HV               =       G3A3001 +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{ 41619} GAN400R+HV               =       G1A400l +      GNO2                                   :  0.100E+01*SUN;
+{ 41620} GPN400S                     =       G3N400L +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 41621} GPN400S +GHO                =       GPN400b +      GNO2                                   : ARR( 0.280E-13,     0., 0.0);
+{ 41622} GPN400S +GHO                =       GPN400X +      GNO2                                   : ARR( 0.438E-13,     0., 0.0);
+{ 41623} GPN400S+HV               =       G1P400m +      GNO2                                   :  0.100E+01*SUN;
+{ 41624} GPN400S+HV               =       G3N2000 +      GPD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 41625} GPN400S+HV               =       G1P400P +      GNO2                                   :  0.100E+01*SUN;
+{ 41626} GPN400S+HV               =       G3N400L +      GNO2                                   :  0.100E+01*SUN;
+{ 41627} GAH400N +GHO                =       GAN400R +      GHO                                    : ARR( 0.168E-11,     0., 0.0);
+{ 41628} GAH400N +GHO                =       G2A400K                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 41629} GAH400N +GHO                =       GHN3007 +      GNO2    +      GCO2                    : ARR( 0.529E-12,     0., 0.0);
+{ 41630} GAH400N+HV               =       G1A400w +      GNO2                                   :  0.100E+01*SUN;
+{ 41631} GAH400N+HV               =       G1A400M +      GHO                                    :  0.100E+01*SUN;
+{ 41632} GAH400N+HV               =       G1A400x +      GNO2                                   :  0.100E+01*SUN;
+{ 41633} G1A400w                     =       GCO     +      GHN3007 +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 41634} G1A400x +OXYGEN             =       GAH400r +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 41635} G1A400x                     =       GAN3006 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5636., 0.0);
+{ 41636} GPH400N                     =       G3H400a +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 41637} GPH400N +GHO                =       GPN400S +      GHO                                    : ARR( 0.169E-11,     0., 0.0);
+{ 41638} GPH400N +GHO                =       G2P400M                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 41639} GPH400N+HV               =       G1P400z +      GNO2                                   :  0.100E+01*SUN;
+{ 41640} GPH400N+HV               =       G1P400N +      GHO                                    :  0.100E+01*SUN;
+{ 41641} GPH400N+HV               =       G1P400R +      GNO2                                   :  0.100E+01*SUN;
+{ 41642} GPH400N+HV               =       G3H400a +      GNO2                                   :  0.100E+01*SUN;
+{ 41643} G1P400z +OXYGEN             =       GPH400s +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 41644} G1P400z                     =       GPN3006 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5636., 0.0);
+{ 41645} GHN505Z +GHO                =       GHN505a +      GHO2                                   : ARR( 0.128E-11,     0., 0.0);
+{ 41646} GHN505Z +GHO                =       GNN5039 +      GHO                                    : ARR( 0.996E-11,     0., 0.0);
+{ 41647} GHN505Z +GHO                =       G2N504M                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 41648} GHN505Z+HV               =       G1H509d +      GNO2                                   :  0.100E+01*SUN;
+{ 41649} GHN505Z+HV               =       G1H509e +      GNO2                                   :  0.100E+01*SUN;
+{ 41650} GHN505Z+HV               =       G3N400M +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 41651} GHN505Z+HV               =       G1N5059 +      GHO                                    :  0.100E+01*SUN;
+{ 41652} G1H509d +OXYGEN             =       GHN506m +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 41653} G1H509d                     =       GHD400J +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7175., 0.0);
+{ 41654} G1H509e                     =       GND2000 +      GHD3001 +      GHO2                    : ARR( 0.200E+15,  3765., 0.0);
+{ 41655} GNN5039 +GHO                =       GNN503A +      GHO2                                   : ARR( 0.128E-11,     0., 0.0);
+{ 41656} GNN5039 +GHO                =       G3N400M +      GCO                                    : ARR( 0.129E-10,     0., 0.0);
+{ 41657} GNN5039 +GNO3               =       G3N400M +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 41658} GNN5039+HV               =       G1N506z +      GNO2                                   :  0.100E+01*SUN;
+{ 41659} GNN5039+HV               =       G1N5071 +      GNO2                                   :  0.100E+01*SUN;
+{ 41660} GNN5039+HV               =       G3N400M +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 41661} GNN5039+HV               =       GNN400T +      GCO                                    :  0.100E+01*SUN;
+{ 41662} GNN5039+HV               =       GNN3004 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 41663} G1N506z +OXYGEN             =       GND501Y +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 41664} G1N506z                     =       GDD4004 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7175., 0.0);
+{ 41665} G1N5071                     =       GND2000 +      GDD3002 +      GHO2                    : ARR( 0.200E+15,  3345., 0.0);
+{ 41666} GGN400P +GHO                =       GGN400a +      GHO2                                   : ARR( 0.130E-11,     0., 0.0);
+{ 41667} GGN400P +GHO                =       G3N400M                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 41668} GGN400P+HV               =       G1G400f +      GNO2                                   :  0.100E+01*SUN;
+{ 41669} GGN400P+HV               =       G1G400m +      GNO2                                   :  0.100E+01*SUN;
+{ 41670} GGN400P+HV               =       GNN3005 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 41671} G1G400m                     =       GND2000 +      GGD2000 +      GHO2                    : ARR( 0.200E+15,  3987., 0.0);
+{ 41672} GAN400S +GHO                =       GAN400T +      GHO2                                   : ARR( 0.949E-12,     0., 0.0);
+{ 41673} GAN400S +GHO                =       G1A400N                                               : ARR( 0.214E-17,    85., 2.0);
+{ 41674} GAN400S +GHO                =       GNN3005 +      GHO2    +      GCO2                    : ARR( 0.531E-12,     0., 0.0);
+{ 41675} GAN400S+HV               =       G1A400Q +      GNO2                                   :  0.100E+01*SUN;
+{ 41676} GAN400S+HV               =       G1A400d +      GNO2                                   :  0.100E+01*SUN;
+{ 41677} GPN400T                     =       G3N400M +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 41678} GPN400T +GHO                =       GPN400U +      GHO2                                   : ARR( 0.129E-11,     0., 0.0);
+{ 41679} GPN400T +GHO                =       G1P400O                                               : ARR( 0.215E-17,    85., 2.0);
+{ 41680} GPN400T+HV               =       G1P400e +      GNO2                                   :  0.100E+01*SUN;
+{ 41681} GPN400T+HV               =       G1P4011 +      GNO2                                   :  0.100E+01*SUN;
+{ 41682} GPN400T+HV               =       G3N400M +      GNO2                                   :  0.100E+01*SUN;
+{ 41683} G1P4011                     =       GND2000 +      GPD2000 +      GHO2                    : ARR( 0.200E+15,  3987., 0.0);
+{ 41684} GHN505a +GHO                =       GNN503A +      GHO                                    : ARR( 0.982E-11,     0., 0.0);
+{ 41685} GHN505a +GHO                =       G2N504N                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 41686} GHN505a+HV               =       G1H509f +      GNO2                                   :  0.100E+01*SUN;
+{ 41687} GHN505a+HV               =       G1H509g +      GNO2                                   :  0.100E+01*SUN;
+{ 41688} GHN505a+HV               =       G3N3003 +      G3H2000                                :  0.100E+01*SUN;
+{ 41689} GHN505a+HV               =       G1N505A +      GHO                                    :  0.100E+01*SUN;
+{ 41690} G1H509f +OXYGEN             =       GHN506U +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 41691} G1H509f                     =       GHD400N +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  6903., 0.0);
+{ 41692} G1H509g                     =       GND2000 +      G3H2000 +      GCO                     : ARR( 0.200E+15,  3324., 0.0);
+{ 41693} GNN503A +GHO                =       G3N3003 + 2.000GCO                                    : ARR( 0.127E-10,     0., 0.0);
+{ 41694} GNN503A +GNO3               =       G3N3003 +      GHNO3   + 2.000GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 41695} GNN503A+HV               =       G1N5072 +      GNO2                                   :  0.100E+01*SUN;
+{ 41696} GNN503A+HV               =       G1N5073 +      GNO2                                   :  0.100E+01*SUN;
+{ 41697} GNN503A+HV               =       G3N3003 +      G3D2000                                :  0.100E+01*SUN;
+{ 41698} GNN503A+HV               =       G3N3003 +      GCO     +      GCO     +      GHO2     :  0.100E+01*SUN;
+{ 41699} GNN503A+HV               =       GNN400a +      GCO                                    :  0.100E+01*SUN;
+{ 41700} GNN503A+HV               =       GNN3005 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 41701} G1N5072 +OXYGEN             =       GND501X +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 41702} G1N5072                     =       GDD4005 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  6903., 0.0);
+{ 41703} G1N5073                     =       GND2000 +      G3D2000 +      GCO                     : ARR( 0.200E+15,  3288., 0.0);
+{ 41704} GHN505b +GHO                =       GHN505c +      GHO2                                   : ARR( 0.128E-11,     0., 0.0);
+{ 41705} GHN505b +GHO                =       GND501I +      GHO                                    : ARR( 0.100E-10,     0., 0.0);
+{ 41706} GHN505b +GHO                =       G2N504O                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 41707} GHN505b+HV               =       G1H509h +      GNO2                                   :  0.100E+01*SUN;
+{ 41708} GHN505b+HV               =       G3N3002 +      G3H2000                                :  0.100E+01*SUN;
+{ 41709} GHN505b+HV               =       G1N505B +      GHO                                    :  0.100E+01*SUN;
+{ 41710} G1H509h                     =       GHD400N +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4155., 0.0);
+{ 41711} GND501I +GHO                =       GND501J +      GHO2                                   : ARR( 0.128E-11,     0., 0.0);
+{ 41712} GND501I +GHO                =       G3N3002 + 2.000GCO                                    : ARR( 0.129E-10,     0., 0.0);
+{ 41713} GND501I +GNO3               =       G3N3002 +      GHNO3   + 2.000GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 41714} GND501I+HV               =       G1D501L +      GNO2                                   :  0.100E+01*SUN;
+{ 41715} GND501I+HV               =       G3N3002 +      G3D2000                                :  0.100E+01*SUN;
+{ 41716} GND501I+HV               =       G3N3002 +      GCO     +      GCO     +      GHO2     :  0.100E+01*SUN;
+{ 41717} GND501I+HV               =       GND400G +      GCO                                    :  0.100E+01*SUN;
+{ 41718} GND501I+HV               =       GND3002 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 41719} G1D501L                     =       GDD4005 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4155., 0.0);
+{ 41720} GHN505c +GHO                =       GND501J +      GHO                                    : ARR( 0.983E-11,     0., 0.0);
+{ 41721} GHN505c +GHO                =       G2N504P                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 41722} GHN505c+HV               =       G1H509i +      GNO2                                   :  0.100E+01*SUN;
+{ 41723} GHN505c+HV               =       G3N2000 +      G3H2000 +      GCO                     :  0.100E+01*SUN;
+{ 41724} GHN505c+HV               =       G3N2000 +      G3H2000 +      GCO                     :  0.100E+01*SUN;
+{ 41725} GHN505c+HV               =       G1N505C +      GHO                                    :  0.100E+01*SUN;
+{ 41726} G1H509i                     =       G3H2000 +      GCH2O   + 2.000GCO                     : ARR( 0.200E+15,  3862., 0.0);
+{ 41727} GND501J +GHO                =       G3N2000 + 3.000GCO                                    : ARR( 0.127E-10,     0., 0.0);
+{ 41728} GND501J +GNO3               =       G3N2000 +      GHNO3   + 3.000GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 41729} GND501J+HV               =       G1D501M +      GNO2                                   :  0.100E+01*SUN;
+{ 41730} GND501J+HV               =       G3N2000 +      G3D2000 +      GCO                     :  0.100E+01*SUN;
+{ 41731} GND501J+HV               =       G3N2000 +      G3D2000 +      GCO                     :  0.100E+01*SUN;
+{ 41732} GND501J+HV               =       G3N2000 +      GCO     + 2.000GCO     +      GHO2     :  0.100E+01*SUN;
+{ 41733} GND501J+HV               =       GND400M +      GCO                                    :  0.100E+01*SUN;
+{ 41734} GND501J+HV               =       GND3003 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 41735} G1D501M                     =       G3D2000 +      GCH2O   + 2.000GCO                     : ARR( 0.200E+15,  3862., 0.0);
+{ 41736} GAH400O +GHO                =       GAN400T +      GHO                                    : ARR( 0.373E-11,     0., 0.0);
+{ 41737} GAH400O +GHO                =       G2A400L                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 41738} GAH400O +GHO                =       GNN3005 +      GHO     +      GCO2                    : ARR( 0.522E-12,     0., 0.0);
+{ 41739} GAH400O+HV               =       G1A400N +      GHO                                    :  0.100E+01*SUN;
+{ 41740} GAH400O+HV               =       G1A400y +      GNO2                                   :  0.100E+01*SUN;
+{ 41741} GAH400O+HV               =       G1A400z +      GNO2                                   :  0.100E+01*SUN;
+{ 41742} G1A400y                     =       GAD2000 +      GND2000 +      GHO                     : ARR( 0.200E+15,  5196., 0.0);
+{ 41743} G1A400z +OXYGEN             =       GAH400l +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 41744} G1A400z                     =       GAH3007 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7175., 0.0);
+{ 41745} GAN400T +GHO                =       G3N3003 +      GCO2                                   : ARR( 0.544E-12,     0., 0.0);
+{ 41746} GAN400T+HV               =       GNN3005 +      GCO2                                   :  0.100E+01*SUN;
+{ 41747} GAN400T+HV               =       G1A400S +      GNO2                                   :  0.100E+01*SUN;
+{ 41748} GAN400T+HV               =       G1A400h +      GNO2                                   :  0.100E+01*SUN;
+{ 41749} GPH400O                     =       G3H400Z +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 41750} GPH400O +GHO                =       GPN400U +      GHO                                    : ARR( 0.505E-11,     0., 0.0);
+{ 41751} GPH400O +GHO                =       G2P400N                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 41752} GPH400O+HV               =       G1P4012 +      GNO2                                   :  0.100E+01*SUN;
+{ 41753} GPH400O+HV               =       G1P4013 +      GNO2                                   :  0.100E+01*SUN;
+{ 41754} GPH400O+HV               =       G1P400O +      GHO                                    :  0.100E+01*SUN;
+{ 41755} GPH400O+HV               =       G3H400Z +      GNO2                                   :  0.100E+01*SUN;
+{ 41756} G1P4012 +OXYGEN             =       GPH400m +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 41757} G1P4012                     =       GPH3007 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7175., 0.0);
+{ 41758} G1P4013                     =       GND2000 +      GPD2000 +      GHO                     : ARR( 0.200E+15,  5196., 0.0);
+{ 41759} GPN400U                     =       G3N400Z +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 41760} GPN400U +GHO                =       GPN400a +      GNO2                                   : ARR( 0.919E-14,     0., 0.0);
+{ 41761} GPN400U +GHO                =       GPN400X +      GNO2                                   : ARR( 0.144E-13,     0., 0.0);
+{ 41762} GPN400U+HV               =       G1P400j +      GNO2                                   :  0.100E+01*SUN;
+{ 41763} GPN400U+HV               =       G1P400U +      GNO2                                   :  0.100E+01*SUN;
+{ 41764} GPN400U+HV               =       G3N3003 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 41765} G3N400Z +GHO2               =  0.800GGN400a + 0.200GAN400T + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 41766} G3N400Z +GNO                =       G3N3003 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 41767} G3N400Z +GNO2               =       GPN400U                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 41768} G3N400Z +GNO3               =       G3N3003 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 41769} G3N400Z +MEPERO             =  0.685G3N3003 + 0.315GAN400T + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 41770} G3N400Z +PERO1              =  0.800G3N3003 + 0.200GAN400T + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 41771} G3N400Z +PERO2              =  0.750G3N3003 + 0.250GAN400T + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 41772} G3N400Z +PERO3              =  0.800G3N3003 + 0.200GAN400T + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 41773} G3N400Z +PERO5              =  0.650G3N3003 + 0.350GAN400T + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 41774} G3N400Z +PERO6              =  0.650G3N3003 + 0.350GAN400T + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 41775} G3N400Z +PERO9              =       G3N3003 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 41776} GGH400L +GHO                =       GGN400R +      GHO                                    : ARR( 0.153E-10,     0., 0.0);
+{ 41777} GGH400L +GHO                =       G2G400E                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 41778} GGH400L +GHO                =       G3H400R                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 41779} GGH400L+HV               =       G1G400n +      GNO2                                   :  0.100E+01*SUN;
+{ 41780} GGH400L+HV               =       G3N2000 +      GGD2000 +      GHO                     :  0.100E+01*SUN;
+{ 41781} GGH400L+HV               =       G1G400J +      GHO                                    :  0.100E+01*SUN;
+{ 41782} GGH400L+HV               =       GND3003 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 41783} G1G400n                     =       G3G3003 +      GCH2O                                  : ARR( 0.200E+15,  4349., 0.0);
+{ 41784} GGN400Q +GHO                =       GGN400R +      GHO2                                   : ARR( 0.392E-11,     0., 0.0);
+{ 41785} GGN400Q +GHO                =       G3N400R                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 41786} GGN400Q+HV               =       G1G400W +      GNO2                                   :  0.100E+01*SUN;
+{ 41787} GGN400Q+HV               =       G3N2000 +      GGD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 41788} GGN400Q+HV               =       GND3003 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 41789} GGN400R +GHO                =       G3N400a                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 41790} GGN400R+HV               =       G1G400o +      GNO2                                   :  0.100E+01*SUN;
+{ 41791} GGN400R+HV               =       G3N2000 +      GCO     +      GHO2    +      GCO      :  0.100E+01*SUN;
+{ 41792} GGN400R+HV               =       GAN3005 +      GCO2                                   :  0.100E+01*SUN;
+{ 41793} G3N400a +GHO2               =  0.800GGN400R + 0.200GAN400W + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 41794} G3N400a +GNO                =       G3N2000 +      GNO2    +      GCO2    +      GCO      : ARR( 0.810E-11,  -270., 0.0);
+{ 41795} G3N400a +GNO2               =       GPN400X                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 41796} G3N400a +GNO3               =       G3N2000 +      GNO2    +      GCO2    +      GCO      : ARR( 0.500E-11,     0., 0.0);
+{ 41797} G3N400a +MEPERO             =  0.685G3N2000 + 0.315GAN400W + 0.685GCO2    + 0.685GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 41798} G3N400a +PERO1              =  0.800G3N2000 + 0.200GAN400W + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 41799} G3N400a +PERO2              =  0.750G3N2000 + 0.250GAN400W + 0.750GCO2    + 0.750GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 41800} G3N400a +PERO3              =  0.800G3N2000 + 0.200GAN400W + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 41801} G3N400a +PERO5              =  0.650G3N2000 + 0.350GAN400W + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 41802} G3N400a +PERO6              =  0.650G3N2000 + 0.350GAN400W + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 41803} G3N400a +PERO9              =       G3N2000 +      GCO2    +      GCO                     : ARR( 0.500E-11,  -500., 0.0);
+{ 41804} G1G400o                     =       GCO     +      GCH2O   +      GHO2    + 2.000GCO      : ARR( 0.200E+15,  3862., 0.0);
+{ 41805} GAH400P +GHO                =       GAN400W +      GHO                                    : ARR( 0.118E-10,     0., 0.0);
+{ 41806} GAH400P +GHO                =       G2A400M                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 41807} GAH400P+HV               =       G1A400O +      GHO                                    :  0.100E+01*SUN;
+{ 41808} GAH400P+HV               =       G3A3003 +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{ 41809} GAH400P+HV               =       G1A4011 +      GNO2                                   :  0.100E+01*SUN;
+{ 41810} G1A4011                     =       G3A3003 +      GCH2O                                  : ARR( 0.200E+15,  4349., 0.0);
+{ 41811} GAN400U +GHO                =       GAN400W +      GHO2                                   : ARR( 0.298E-11,     0., 0.0);
+{ 41812} GAN400U +GHO                =       GND3003 +      GHO2    +      GCO2                    : ARR( 0.546E-12,     0., 0.0);
+{ 41813} GAN400U+HV               =       G3A3002 +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{ 41814} GAN400U+HV               =       G1A400e +      GNO2                                   :  0.100E+01*SUN;
+{ 41815} GAN400W +GHO                =       GAD4008 +      GNO2                                   : ARR( 0.280E-13,     0., 0.0);
+{ 41816} GAN400W +GHO                =       G3N2000 +      GCO2    +      GCO                     : ARR( 0.520E-12,     0., 0.0);
+{ 41817} GAN400W+HV               =       GND3003 +      GCO2                                   :  0.100E+01*SUN;
+{ 41818} GAN400W+HV               =       GCO     +      G3N2000 +      GHO     +      GCO      :  0.100E+01*SUN;
+{ 41819} GAN400W+HV               =       G1A400m +      GNO2                                   :  0.100E+01*SUN;
+{ 41820} GPH400P                     =       G3H400R +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 41821} GPH400P +GHO                =       GPN400X +      GHO                                    : ARR( 0.153E-10,     0., 0.0);
+{ 41822} GPH400P +GHO                =       G2P400O                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 41823} GPH400P+HV               =       G1P4014 +      GNO2                                   :  0.100E+01*SUN;
+{ 41824} GPH400P+HV               =       G3N2000 +      GPD2000 +      GHO                     :  0.100E+01*SUN;
+{ 41825} GPH400P+HV               =       G1P400P +      GHO                                    :  0.100E+01*SUN;
+{ 41826} GPH400P+HV               =       G3H400R +      GNO2                                   :  0.100E+01*SUN;
+{ 41827} G1P4014                     =       G3P3003 +      GCH2O                                  : ARR( 0.200E+15,  4349., 0.0);
+{ 41828} GPN400W                     =       G3N400R +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 41829} GPN400W +GHO                =       GPN400X +      GHO2                                   : ARR( 0.400E-11,     0., 0.0);
+{ 41830} GPN400W+HV               =       G1P400f +      GNO2                                   :  0.100E+01*SUN;
+{ 41831} GPN400W+HV               =       G3N2000 +      GPD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 41832} GPN400W+HV               =       G3N400R +      GNO2                                   :  0.100E+01*SUN;
+{ 41833} GPN400X                     =       G3N400a +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 41834} GPN400X +GHO                =       GPD4008 +      GNO2                                   : ARR( 0.280E-13,     0., 0.0);
+{ 41835} GPN400X+HV               =       G1P400n +      GNO2                                   :  0.100E+01*SUN;
+{ 41836} GPN400X+HV               =       G3N2000 +      GCO     +      GNO2    +      GCO      :  0.100E+01*SUN;
+{ 41837} GPN400X+HV               =       G3N2000 +      GCO     +      GCO     +      GNO2     :  0.100E+01*SUN;
+{ 41838} GGH400M +GHO                =       GGN400O +      GHO                                    : ARR( 0.167E-11,     0., 0.0);
+{ 41839} GGH400M +GHO                =       G2G400a                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 41840} GGH400M +GHO                =       G3H400a                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 41841} GGH400M+HV               =       G1G400p +      GNO2                                   :  0.100E+01*SUN;
+{ 41842} GGH400M+HV               =       G1G400j +      GHO                                    :  0.100E+01*SUN;
+{ 41843} GGH400M+HV               =       G1G400L +      GNO2                                   :  0.100E+01*SUN;
+{ 41844} GGH400M+HV               =       GHN3007 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 41845} G2G400a +GNO                =       G1G400j +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 41846} G2G400a +GNO                =       GGN400N                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 41847} G2G400a +GHO2               =       GGH400M                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 41848} G2G400a +GNO3               =       G1G400j +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 41849} G2G400a +MEPERO             =  0.340G1G400j + 0.330GGN400B + 0.330GGN400O                 : ARR( 0.565E-13,  -845., 0.0);
+{ 41850} G2G400a +PERO1              =  0.460G1G400j + 0.270GGN400B + 0.270GGN400O                 : ARR( 0.434E-13,  -900., 0.0);
+{ 41851} G2G400a +PERO2              =  0.400G1G400j + 0.300GGN400B + 0.300GGN400O                 : ARR( 0.162E-13, -1400., 0.0);
+{ 41852} G2G400a +PERO3              =  0.460G1G400j + 0.270GGN400B + 0.270GGN400O                 : ARR( 0.488E-13, -1250., 0.0);
+{ 41853} G2G400a +PERO5              =  0.460G1G400j + 0.270GGN400B + 0.270GGN400O                 : ARR( 0.183E-11,   450., 0.0);
+{ 41854} G2G400a +PERO6              =  0.300G1G400j + 0.350GGN400B + 0.350GGN400O                 : ARR( 0.168E-13, -1300., 0.0);
+{ 41855} G2G400a +PERO9              =  0.650G1G400j + 0.350GGN400O                                : ARR( 0.100E-10,     0., 0.0);
+{ 41856} G1G400p +OXYGEN             =       GGH400o +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 41857} G1G400p                     =       GGN3005 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5636., 0.0);
+{ 41858} GGH400N +GHO                =       GGH400L +      GHO                                    : ARR( 0.825E-11,     0., 0.0);
+{ 41859} GGH400N +GHO                =       GGH400P +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 41860} GGH400N +GHO                =       G2G400b                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 41861} GGH400N +GHO                =       G2G400F                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 41862} GGH400N +GHO                =       G3H400o                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 41863} GGH400N+HV               =       G1G400q +      GNO2                                   :  0.100E+01*SUN;
+{ 41864} GGH400N+HV               =       G1G400r +      GHO                                    :  0.100E+01*SUN;
+{ 41865} GGH400N+HV               =       G1G400L +      GHO                                    :  0.100E+01*SUN;
+{ 41866} GGH400N+HV               =       GHN3007 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 41867} G2G400b +GNO                =       G1G400r +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 41868} G2G400b +GNO                =       GGH400k                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 41869} G2G400b +GHO2               =       GGH400N                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 41870} G2G400b +GNO3               =       G1G400r +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 41871} G2G400b +MEPERO             =  0.340G1G400r + 0.330GGH4004 + 0.330GGH400L                 : ARR( 0.565E-13,  -845., 0.0);
+{ 41872} G2G400b +PERO1              =  0.460G1G400r + 0.270GGH4004 + 0.270GGH400L                 : ARR( 0.434E-13,  -900., 0.0);
+{ 41873} G2G400b +PERO2              =  0.400G1G400r + 0.300GGH4004 + 0.300GGH400L                 : ARR( 0.162E-13, -1400., 0.0);
+{ 41874} G2G400b +PERO3              =  0.460G1G400r + 0.270GGH4004 + 0.270GGH400L                 : ARR( 0.488E-13, -1250., 0.0);
+{ 41875} G2G400b +PERO5              =  0.460G1G400r + 0.270GGH4004 + 0.270GGH400L                 : ARR( 0.183E-11,   450., 0.0);
+{ 41876} G2G400b +PERO6              =  0.300G1G400r + 0.350GGH4004 + 0.350GGH400L                 : ARR( 0.168E-13, -1300., 0.0);
+{ 41877} G2G400b +PERO9              =  0.650G1G400r + 0.350GGH400L                                : ARR( 0.100E-10,     0., 0.0);
+{ 41878} G3H400o +GHO2               =  0.800GGH400N + 0.200GAH400v + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 41879} G3H400o +GNO                =       GHN3007 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 41880} G3H400o +GNO2               =       GPH400Q                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 41881} G3H400o +GNO3               =       GHN3007 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 41882} G3H400o +MEPERO             =  0.685GHN3007 + 0.315GAH400v + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41883} G3H400o +PERO1              =  0.800GHN3007 + 0.200GAH400v + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41884} G3H400o +PERO2              =  0.750GHN3007 + 0.250GAH400v + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41885} G3H400o +PERO3              =  0.800GHN3007 + 0.200GAH400v + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41886} G3H400o +PERO5              =  0.650GHN3007 + 0.350GAH400v + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41887} G3H400o +PERO6              =  0.650GHN3007 + 0.350GAH400v + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41888} G3H400o +PERO9              =       GHN3007 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 41889} G1G400q +OXYGEN             =       GGH400v +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 41890} G1G400q                     =       GGH3007 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5636., 0.0);
+{ 41891} G1G400r                     =       GND2000 +      GGD2000 +      GHO                     : ARR( 0.200E+15,  5196., 0.0);
+{ 41892} GGH400O +GHO                =       GGN400Q +      GHO                                    : ARR( 0.831E-11,     0., 0.0);
+{ 41893} GGH400O +GHO                =       GGH400P +      GHO2                                   : ARR( 0.634E-11,     0., 0.0);
+{ 41894} GGH400O +GHO                =       G2G400c                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 41895} GGH400O +GHO                =       G3H400b                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 41896} GGH400O+HV               =       G1G400g +      GNO2                                   :  0.100E+01*SUN;
+{ 41897} GGH400O+HV               =       G1G400m +      GHO                                    :  0.100E+01*SUN;
+{ 41898} GGH400O+HV               =       GHN3007 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 41899} G2G400c +GNO                =       G1G400m +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 41900} G2G400c +GNO                =       GGN400P                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 41901} G2G400c +GHO2               =       GGH400O                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 41902} G2G400c +GNO3               =       G1G400m +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 41903} G2G400c +MEPERO             =  0.340G1G400m + 0.330GGN400C + 0.330GGN400Q                 : ARR( 0.565E-13,  -845., 0.0);
+{ 41904} G2G400c +PERO1              =  0.460G1G400m + 0.270GGN400C + 0.270GGN400Q                 : ARR( 0.434E-13,  -900., 0.0);
+{ 41905} G2G400c +PERO2              =  0.400G1G400m + 0.300GGN400C + 0.300GGN400Q                 : ARR( 0.162E-13, -1400., 0.0);
+{ 41906} G2G400c +PERO3              =  0.460G1G400m + 0.270GGN400C + 0.270GGN400Q                 : ARR( 0.488E-13, -1250., 0.0);
+{ 41907} G2G400c +PERO5              =  0.460G1G400m + 0.270GGN400C + 0.270GGN400Q                 : ARR( 0.183E-11,   450., 0.0);
+{ 41908} G2G400c +PERO6              =  0.300G1G400m + 0.350GGN400C + 0.350GGN400Q                 : ARR( 0.168E-13, -1300., 0.0);
+{ 41909} G2G400c +PERO9              =  0.650G1G400m + 0.350GGN400Q                                : ARR( 0.100E-10,     0., 0.0);
+{ 41910} GGH400P +GHO                =       GGN400R +      GHO                                    : ARR( 0.509E-11,     0., 0.0);
+{ 41911} GGH400P +GHO                =       G2G400d                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 41912} GGH400P +GHO                =       G3H400p                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 41913} GGH400P+HV               =       G1G400s +      GNO2                                   :  0.100E+01*SUN;
+{ 41914} GGH400P+HV               =       G1G400t +      GHO                                    :  0.100E+01*SUN;
+{ 41915} GGH400P+HV               =       GAH3003 +      GCO2                                   :  0.100E+01*SUN;
+{ 41916} G2G400d +GNO                =       G1G400t +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 41917} G2G400d +GNO                =       GGN400a                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 41918} G2G400d +GHO2               =       GGH400P                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 41919} G2G400d +GNO3               =       G1G400t +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 41920} G2G400d +MEPERO             =  0.340G1G400t + 0.330GGN400D + 0.330GGN400R                 : ARR( 0.565E-13,  -845., 0.0);
+{ 41921} G2G400d +PERO1              =  0.460G1G400t + 0.270GGN400D + 0.270GGN400R                 : ARR( 0.434E-13,  -900., 0.0);
+{ 41922} G2G400d +PERO2              =  0.400G1G400t + 0.300GGN400D + 0.300GGN400R                 : ARR( 0.162E-13, -1400., 0.0);
+{ 41923} G2G400d +PERO3              =  0.460G1G400t + 0.270GGN400D + 0.270GGN400R                 : ARR( 0.488E-13, -1250., 0.0);
+{ 41924} G2G400d +PERO5              =  0.460G1G400t + 0.270GGN400D + 0.270GGN400R                 : ARR( 0.183E-11,   450., 0.0);
+{ 41925} G2G400d +PERO6              =  0.300G1G400t + 0.350GGN400D + 0.350GGN400R                 : ARR( 0.168E-13, -1300., 0.0);
+{ 41926} G2G400d +PERO9              =  0.650G1G400t + 0.350GGN400R                                : ARR( 0.100E-10,     0., 0.0);
+{ 41927} G3H400p +GHO2               =  0.800GGH400P + 0.200GAH400S + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 41928} G3H400p +GNO                =       G3H3002 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 41929} G3H400p +GNO2               =       GPH400S                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 41930} G3H400p +GNO3               =       G3H3002 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 41931} G3H400p +MEPERO             =  0.685G3H3002 + 0.315GAH400S + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 41932} G3H400p +PERO1              =  0.800G3H3002 + 0.200GAH400S + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 41933} G3H400p +PERO2              =  0.750G3H3002 + 0.250GAH400S + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 41934} G3H400p +PERO3              =  0.800G3H3002 + 0.200GAH400S + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 41935} G3H400p +PERO5              =  0.650G3H3002 + 0.350GAH400S + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 41936} G3H400p +PERO6              =  0.650G3H3002 + 0.350GAH400S + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 41937} G3H400p +PERO9              =       G3H3002 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 41938} G1G400s +OXYGEN             =       GGH400p +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 41939} G1G400s                     =       GGD3002 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5364., 0.0);
+{ 41940} G1G400t                     =       GND2000 +      GCO     +      GHO2    +      GCO      : ARR( 0.200E+15,  3324., 0.0);
+{ 41941} GGH400Q +GHO                =       GGD4004 +      GHO                                    : ARR( 0.264E-10,     0., 0.0);
+{ 41942} GGH400Q +GHO                =       G3G4007                                               : ARR( 0.218E-10,     0., 0.0);
+{ 41943} GGH400Q +GHO                =       G3H400O                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 41944} GGH400Q +GHO                =       G2G400e                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 41945} GGH400Q +GNO3               =       G3G4007 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 41946} GGH400Q+HV               =       G2H300A +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 41947} GGH400Q+HV               =       G1G400c +      GHO                                    :  0.100E+01*SUN;
+{ 41948} GGH400Q+HV               =       GGD3000 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 41949} G3G4007 +GHO2               =  0.800GGG4005 + 0.200GAG400A + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 41950} G3G4007 +GNO                =       GGD3000 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 41951} G3G4007 +GNO2               =       GPG400C                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 41952} G3G4007 +GNO3               =       GGD3000 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 41953} G3G4007 +MEPERO             =  0.685GGD3000 + 0.315GAG400A + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41954} G3G4007 +PERO1              =  0.800GGD3000 + 0.200GAG400A + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41955} G3G4007 +PERO2              =  0.750GGD3000 + 0.250GAG400A + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41956} G3G4007 +PERO3              =  0.800GGD3000 + 0.200GAG400A + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41957} G3G4007 +PERO5              =  0.650GGD3000 + 0.350GAG400A + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41958} G3G4007 +PERO6              =  0.650GGD3000 + 0.350GAG400A + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 41959} G3G4007 +PERO9              =       GGD3000 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 41960} G2G400e +GNO                =       G1G400c +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 41961} G2G400e +GNO                =       GGN400I                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 41962} G2G400e +GHO2               =       GGH400Q                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 41963} G2G400e +GNO3               =       G1G400c +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 41964} G2G400e +MEPERO             =  0.340G1G400c + 0.330GGD4001 + 0.330GGD4004                 : ARR( 0.565E-13,  -845., 0.0);
+{ 41965} G2G400e +PERO1              =  0.460G1G400c + 0.270GGD4001 + 0.270GGD4004                 : ARR( 0.434E-13,  -900., 0.0);
+{ 41966} G2G400e +PERO2              =  0.400G1G400c + 0.300GGD4001 + 0.300GGD4004                 : ARR( 0.162E-13, -1400., 0.0);
+{ 41967} G2G400e +PERO3              =  0.460G1G400c + 0.270GGD4001 + 0.270GGD4004                 : ARR( 0.488E-13, -1250., 0.0);
+{ 41968} G2G400e +PERO5              =  0.460G1G400c + 0.270GGD4001 + 0.270GGD4004                 : ARR( 0.183E-11,   450., 0.0);
+{ 41969} G2G400e +PERO6              =  0.300G1G400c + 0.350GGD4001 + 0.350GGD4004                 : ARR( 0.168E-13, -1300., 0.0);
+{ 41970} G2G400e +PERO9              =  0.650G1G400c + 0.350GGD4004                                : ARR( 0.100E-10,     0., 0.0);
+{ 41971} GGH400R +GHO                =       GGD4005 +      GHO                                    : ARR( 0.861E-10,     0., 0.0);
+{ 41972} GGH400R +GHO                =       G3G4008                                               : ARR( 0.224E-10,     0., 0.0);
+{ 41973} GGH400R +GNO3               =       G3G4008 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 41974} GGH400R+HV               =       GDD3000 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 41975} GGH400R+HV               =       G1G400O +      GHO                                    :  0.100E+01*SUN;
+{ 41976} GGH400R+HV               =       G2G3008 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 41977} G3G4008 +GHO2               =  0.800GGG4005 + 0.200GAG400B + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 41978} G3G4008 +GNO                =       G2G3008 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 41979} G3G4008 +GNO2               =       GPG400B                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 41980} G3G4008 +GNO3               =       G2G3008 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 41981} G3G4008 +MEPERO             =  0.685G2G3008 + 0.315GAG400B + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 41982} G3G4008 +PERO1              =  0.800G2G3008 + 0.200GAG400B + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 41983} G3G4008 +PERO2              =  0.750G2G3008 + 0.250GAG400B + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 41984} G3G4008 +PERO3              =  0.800G2G3008 + 0.200GAG400B + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 41985} G3G4008 +PERO5              =  0.650G2G3008 + 0.350GAG400B + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 41986} G3G4008 +PERO6              =  0.650G2G3008 + 0.350GAG400B + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 41987} G3G4008 +PERO9              =       G2G3008 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 41988} GGG4000 +GHO                =       G2G400f                                               : ARR( 0.172E-11,     0., 0.0);
+{ 41989} GGG4000 +GHO                =       G3G4000                                               : ARR( 0.380E-11,  -190., 0.0);
+{ 41990} GGG4000+HV               =       G2G3000 +      GHO     +      GCO2                    :  0.200E+01*SUN;
+{ 41991} G2G400f +GNO                =       G1G400u +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 41992} G2G400f +GNO                =       GGG4002                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 41993} G2G400f +GHO2               =       GGG4005                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 41994} G2G400f +GNO3               =       G1G400u +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 41995} G2G400f +MEPERO             =  0.340G1G400u + 0.330GGG4001 + 0.330GGG4004                 : ARR( 0.565E-13,  -845., 0.0);
+{ 41996} G2G400f +PERO1              =  0.460G1G400u + 0.270GGG4001 + 0.270GGG4004                 : ARR( 0.434E-13,  -900., 0.0);
+{ 41997} G2G400f +PERO2              =  0.400G1G400u + 0.300GGG4001 + 0.300GGG4004                 : ARR( 0.162E-13, -1400., 0.0);
+{ 41998} G2G400f +PERO3              =  0.460G1G400u + 0.270GGG4001 + 0.270GGG4004                 : ARR( 0.488E-13, -1250., 0.0);
+{ 41999} G2G400f +PERO5              =  0.460G1G400u + 0.270GGG4001 + 0.270GGG4004                 : ARR( 0.183E-11,   450., 0.0);
+{ 42000} G2G400f +PERO6              =  0.300G1G400u + 0.350GGG4001 + 0.350GGG4004                 : ARR( 0.168E-13, -1300., 0.0);
+{ 42001} G2G400f +PERO9              =  0.650G1G400u + 0.350GGG4004                                : ARR( 0.100E-10,     0., 0.0);
+{ 42002} G1G400u                     =       GGD3000 +      GCO     +      GHO2                    : ARR( 0.200E+15,  4566., 0.0);
+{ 42003} GAH400Q +GHO                =       GAD4005 +      GHO                                    : ARR( 0.626E-10,     0., 0.0);
+{ 42004} GAH400Q +GHO                =       G3A4008                                               : ARR( 0.221E-10,     0., 0.0);
+{ 42005} GAH400Q +GNO3               =       G3A4008 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 42006} GAH400Q+HV               =       G1A400U +      GHO                                    :  0.100E+01*SUN;
+{ 42007} GAH400Q+HV               =       G2A300A +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 42008} GAH400R +GHO                =       GAH400S +      GHO2                                   : ARR( 0.485E-11,     0., 0.0);
+{ 42009} GAH400R +GHO                =       GAN400U +      GHO                                    : ARR( 0.860E-11,     0., 0.0);
+{ 42010} GAH400R +GHO                =       G2A400N                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 42011} GAH400R+HV               =       G1A400Q +      GHO                                    :  0.100E+01*SUN;
+{ 42012} GAH400R+HV               =       G1A400r +      GNO2                                   :  0.100E+01*SUN;
+{ 42013} GAH400S +GHO                =       GAN400W +      GHO                                    : ARR( 0.511E-11,     0., 0.0);
+{ 42014} GAH400S +GHO                =       G2A400O                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 42015} GAH400S +GHO                =       G3H3002 +      GCO2                                   : ARR( 0.528E-12,     0., 0.0);
+{ 42016} GAH400S+HV               =       GHN3007 +      GCO2                                   :  0.100E+01*SUN;
+{ 42017} GAH400S+HV               =       G1A400S +      GHO                                    :  0.100E+01*SUN;
+{ 42018} GAH400S+HV               =       G1A4012 +      GNO2                                   :  0.100E+01*SUN;
+{ 42019} G1A4012 +OXYGEN             =       GAH400s +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 42020} G1A4012                     =       GAD3002 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5364., 0.0);
+{ 42021} GAH400T +GHO                =       GAD4003 +      GHO                                    : ARR( 0.264E-10,     0., 0.0);
+{ 42022} GAH400T +GHO                =       G3A4009                                               : ARR( 0.218E-10,     0., 0.0);
+{ 42023} GAH400T +GHO                =       G2A400p                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 42024} GAH400T +GNO3               =       G3A4009 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 42025} GAH400T+HV               =       G1A400j +      GHO                                    :  0.100E+01*SUN;
+{ 42026} GAH400T+HV               =       GAD3000 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 42027} G2A400p +GNO                =       G1A400j +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 42028} G2A400p +GNO                =       GAN400J                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 42029} G2A400p +GHO2               =       GAH400T                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 42030} G2A400p +GNO3               =       G1A400j +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 42031} G2A400p +MEPERO             =  0.340G1A400j + 0.330GAD4001 + 0.330GAD4003                 : ARR( 0.565E-13,  -845., 0.0);
+{ 42032} G2A400p +PERO1              =  0.460G1A400j + 0.270GAD4001 + 0.270GAD4003                 : ARR( 0.434E-13,  -900., 0.0);
+{ 42033} G2A400p +PERO2              =  0.400G1A400j + 0.300GAD4001 + 0.300GAD4003                 : ARR( 0.162E-13, -1400., 0.0);
+{ 42034} G2A400p +PERO3              =  0.460G1A400j + 0.270GAD4001 + 0.270GAD4003                 : ARR( 0.488E-13, -1250., 0.0);
+{ 42035} G2A400p +PERO5              =  0.460G1A400j + 0.270GAD4001 + 0.270GAD4003                 : ARR( 0.183E-11,   450., 0.0);
+{ 42036} G2A400p +PERO6              =  0.300G1A400j + 0.350GAD4001 + 0.350GAD4003                 : ARR( 0.168E-13, -1300., 0.0);
+{ 42037} G2A400p +PERO9              =  0.650G1A400j + 0.350GAD4003                                : ARR( 0.100E-10,     0., 0.0);
+{ 42038} GPH400Q                     =       G3H400o +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 42039} GPH400Q +GHO                =       GPH400P +      GHO                                    : ARR( 0.825E-11,     0., 0.0);
+{ 42040} GPH400Q +GHO                =       GPH400S +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 42041} GPH400Q +GHO                =       G2P400q                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 42042} GPH400Q +GHO                =       G2P400P                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 42043} GPH400Q+HV               =       G1P4015 +      GNO2                                   :  0.100E+01*SUN;
+{ 42044} GPH400Q+HV               =       G1P4013 +      GHO                                    :  0.100E+01*SUN;
+{ 42045} GPH400Q+HV               =       G1P400R +      GHO                                    :  0.100E+01*SUN;
+{ 42046} GPH400Q+HV               =       G3H400o +      GNO2                                   :  0.100E+01*SUN;
+{ 42047} G2P400q +GNO                =       G1P4013 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 42048} G2P400q +GNO                =       GPH400O                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 42049} G2P400q +GHO2               =       GPH400Q                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 42050} G2P400q +GNO3               =       G1P4013 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 42051} G2P400q +MEPERO             =  0.340G1P4013 + 0.330GPH4004 + 0.330GPH400P                 : ARR( 0.565E-13,  -845., 0.0);
+{ 42052} G2P400q +PERO1              =  0.460G1P4013 + 0.270GPH4004 + 0.270GPH400P                 : ARR( 0.434E-13,  -900., 0.0);
+{ 42053} G2P400q +PERO2              =  0.400G1P4013 + 0.300GPH4004 + 0.300GPH400P                 : ARR( 0.162E-13, -1400., 0.0);
+{ 42054} G2P400q +PERO3              =  0.460G1P4013 + 0.270GPH4004 + 0.270GPH400P                 : ARR( 0.488E-13, -1250., 0.0);
+{ 42055} G2P400q +PERO5              =  0.460G1P4013 + 0.270GPH4004 + 0.270GPH400P                 : ARR( 0.183E-11,   450., 0.0);
+{ 42056} G2P400q +PERO6              =  0.300G1P4013 + 0.350GPH4004 + 0.350GPH400P                 : ARR( 0.168E-13, -1300., 0.0);
+{ 42057} G2P400q +PERO9              =  0.650G1P4013 + 0.350GPH400P                                : ARR( 0.100E-10,     0., 0.0);
+{ 42058} G1P4015 +OXYGEN             =       GPH400w +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 42059} G1P4015                     =       GPH3007 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5636., 0.0);
+{ 42060} GPH400R                     =       G3H400b +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 42061} GPH400R +GHO                =       GPN400W +      GHO                                    : ARR( 0.833E-11,     0., 0.0);
+{ 42062} GPH400R +GHO                =       GPH400S +      GHO2                                   : ARR( 0.635E-11,     0., 0.0);
+{ 42063} GPH400R +GHO                =       G2P400r                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 42064} GPH400R+HV               =       G1P400s +      GNO2                                   :  0.100E+01*SUN;
+{ 42065} GPH400R+HV               =       G1P4011 +      GHO                                    :  0.100E+01*SUN;
+{ 42066} GPH400R+HV               =       G3H400b +      GNO2                                   :  0.100E+01*SUN;
+{ 42067} G2P400r +GNO                =       G1P4011 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 42068} G2P400r +GNO                =       GPN400T                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 42069} G2P400r +GHO2               =       GPH400R                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 42070} G2P400r +GNO3               =       G1P4011 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 42071} G2P400r +MEPERO             =  0.340G1P4011 + 0.330GPN400C + 0.330GPN400W                 : ARR( 0.565E-13,  -845., 0.0);
+{ 42072} G2P400r +PERO1              =  0.460G1P4011 + 0.270GPN400C + 0.270GPN400W                 : ARR( 0.434E-13,  -900., 0.0);
+{ 42073} G2P400r +PERO2              =  0.400G1P4011 + 0.300GPN400C + 0.300GPN400W                 : ARR( 0.162E-13, -1400., 0.0);
+{ 42074} G2P400r +PERO3              =  0.460G1P4011 + 0.270GPN400C + 0.270GPN400W                 : ARR( 0.488E-13, -1250., 0.0);
+{ 42075} G2P400r +PERO5              =  0.460G1P4011 + 0.270GPN400C + 0.270GPN400W                 : ARR( 0.183E-11,   450., 0.0);
+{ 42076} G2P400r +PERO6              =  0.300G1P4011 + 0.350GPN400C + 0.350GPN400W                 : ARR( 0.168E-13, -1300., 0.0);
+{ 42077} G2P400r +PERO9              =  0.650G1P4011 + 0.350GPN400W                                : ARR( 0.100E-10,     0., 0.0);
+{ 42078} GPH400S                     =       G3H400p +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 42079} GPH400S +GHO                =       GPN400X +      GHO                                    : ARR( 0.511E-11,     0., 0.0);
+{ 42080} GPH400S +GHO                =       G2P400Q                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 42081} GPH400S+HV               =       G1P4016 +      GNO2                                   :  0.100E+01*SUN;
+{ 42082} GPH400S+HV               =       G1P400U +      GHO                                    :  0.100E+01*SUN;
+{ 42083} GPH400S+HV               =       G3H3002 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 42084} G1P4016 +OXYGEN             =       GPH400t +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 42085} G1P4016                     =       GPD3002 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5364., 0.0);
+{ 42086} GPH400T                     =       G3H400O +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 42087} GPH400T +GHO                =       G2P400s                                               : ARR( 0.273E-11,     0., 0.0);
+{ 42088} GPH400T +GHO                =       GPD4003 +      GHO                                    : ARR( 0.251E-10,     0., 0.0);
+{ 42089} GPH400T +GHO                =       G3P4009                                               : ARR( 0.208E-10,     0., 0.0);
+{ 42090} GPH400T +GHO                =       G2P400t                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 42091} GPH400T +GNO3               =       G3P4009 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 42092} GPH400T+HV               =       G3H400O +      GNO2                                   :  0.100E+01*SUN;
+{ 42093} GPH400T+HV               =       G1P400i +      GHO                                    :  0.100E+01*SUN;
+{ 42094} GPH400T+HV               =       GPD3000 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 42095} G2P400s +GNO                =       G1P4017 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 42096} G2P400s +GNO                =       GPH400s                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 42097} G2P400s +GHO2               =       GPH400w                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 42098} G2P400s +GNO3               =       G1P4017 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 42099} G2P400s +MEPERO             =  0.340G1P4017 + 0.330GPH400p + 0.330GPH400t                 : ARR( 0.565E-13,  -845., 0.0);
+{ 42100} G2P400s +PERO1              =  0.460G1P4017 + 0.270GPH400p + 0.270GPH400t                 : ARR( 0.434E-13,  -900., 0.0);
+{ 42101} G2P400s +PERO2              =  0.400G1P4017 + 0.300GPH400p + 0.300GPH400t                 : ARR( 0.162E-13, -1400., 0.0);
+{ 42102} G2P400s +PERO3              =  0.460G1P4017 + 0.270GPH400p + 0.270GPH400t                 : ARR( 0.488E-13, -1250., 0.0);
+{ 42103} G2P400s +PERO5              =  0.460G1P4017 + 0.270GPH400p + 0.270GPH400t                 : ARR( 0.183E-11,   450., 0.0);
+{ 42104} G2P400s +PERO6              =  0.300G1P4017 + 0.350GPH400p + 0.350GPH400t                 : ARR( 0.168E-13, -1300., 0.0);
+{ 42105} G2P400s +PERO9              =  0.650G1P4017 + 0.350GPH400t                                : ARR( 0.100E-10,     0., 0.0);
+{ 42106} G2P400t +GNO                =       G1P400i +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 42107} G2P400t +GNO                =       GPN400H                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 42108} G2P400t +GHO2               =       GPH400T                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 42109} G2P400t +GNO3               =       G1P400i +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 42110} G2P400t +MEPERO             =  0.340G1P400i + 0.330GPD4001 + 0.330GPD4003                 : ARR( 0.565E-13,  -845., 0.0);
+{ 42111} G2P400t +PERO1              =  0.460G1P400i + 0.270GPD4001 + 0.270GPD4003                 : ARR( 0.434E-13,  -900., 0.0);
+{ 42112} G2P400t +PERO2              =  0.400G1P400i + 0.300GPD4001 + 0.300GPD4003                 : ARR( 0.162E-13, -1400., 0.0);
+{ 42113} G2P400t +PERO3              =  0.460G1P400i + 0.270GPD4001 + 0.270GPD4003                 : ARR( 0.488E-13, -1250., 0.0);
+{ 42114} G2P400t +PERO5              =  0.460G1P400i + 0.270GPD4001 + 0.270GPD4003                 : ARR( 0.183E-11,   450., 0.0);
+{ 42115} G2P400t +PERO6              =  0.300G1P400i + 0.350GPD4001 + 0.350GPD4003                 : ARR( 0.168E-13, -1300., 0.0);
+{ 42116} G2P400t +PERO9              =  0.650G1P400i + 0.350GPD4003                                : ARR( 0.100E-10,     0., 0.0);
+{ 42117} G1P4017                     =       GCO     +      GHD3004 +      GNO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 42118} GPH400U                     =       G3H400P +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 42119} GPH400U +GHO                =       GPD4005 +      GHO                                    : ARR( 0.832E-10,     0., 0.0);
+{ 42120} GPH400U +GHO                =       G3P400A                                               : ARR( 0.217E-10,     0., 0.0);
+{ 42121} GPH400U +GNO3               =       G3P400A +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 42122} GPH400U+HV               =       G3H400P +      GNO2                                   :  0.100E+01*SUN;
+{ 42123} GPH400U+HV               =       G1P400W +      GHO                                    :  0.100E+01*SUN;
+{ 42124} GPH400U+HV               =       G2P300B +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 42125} GNN503B +GHO                =       GNN5038 +      GHO2                                   : ARR( 0.128E-11,     0., 0.0);
+{ 42126} GNN503B +GHO                =       G3N5027                                               : ARR( 0.211E-10,     0., 0.0);
+{ 42127} GNN503B +GNO3               =       G3N5027 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 42128} GNN503B+HV               =       G1N5074 +      GNO2                                   :  0.100E+01*SUN;
+{ 42129} GNN503B+HV               =       G3N2000 +      GDD3001 +      GNO2                    :  0.100E+01*SUN;
+{ 42130} GNN503B+HV               =       G1N505w +      GNO2                                   :  0.100E+01*SUN;
+{ 42131} GNN503B+HV               =       GNN400G +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 42132} G3N5027 +GHO2               =  0.800GGN502Q + 0.200GAN502H + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 42133} G3N5027 +GNO                =       GNN400G +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 42134} G3N5027 +GNO2               =       GPN502I                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 42135} G3N5027 +GNO3               =       GNN400G +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 42136} G3N5027 +MEPERO             =  0.685GNN400G + 0.315GAN502H + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42137} G3N5027 +PERO1              =  0.800GNN400G + 0.200GAN502H + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42138} G3N5027 +PERO2              =  0.750GNN400G + 0.250GAN502H + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42139} G3N5027 +PERO3              =  0.800GNN400G + 0.200GAN502H + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42140} G3N5027 +PERO5              =  0.650GNN400G + 0.350GAN502H + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42141} G3N5027 +PERO6              =  0.650GNN400G + 0.350GAN502H + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42142} G3N5027 +PERO9              =       GNN400G +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 42143} G1N5074                     =       G3N400U +      GCH2O                                  : ARR( 0.200E+15,  3640., 0.0);
+{ 42144} GND501K +GHO                =       GND501J +      GHO2                                   : ARR( 0.384E-11,     0., 0.0);
+{ 42145} GND501K +GHO                =       G3N5028                                               : ARR( 0.660E-10,     0., 0.0);
+{ 42146} GND501K +GNO3               =       G3N5028 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 42147} GND501K+HV               =       G1D501N +      GNO2                                   :  0.100E+01*SUN;
+{ 42148} GND501K+HV               =       G3N2000 +      G3D3001                                :  0.100E+01*SUN;
+{ 42149} GND501K+HV               =       GND400M +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 42150} G3N5028 +GHO2               =  0.800GGN502R + 0.200GAN502a + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 42151} G3N5028 +GNO                =       GND400M +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 42152} G3N5028 +GNO2               =       GPN502d                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 42153} G3N5028 +GNO3               =       GND400M +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 42154} G3N5028 +MEPERO             =  0.685GND400M + 0.315GAN502a + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42155} G3N5028 +PERO1              =  0.800GND400M + 0.200GAN502a + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42156} G3N5028 +PERO2              =  0.750GND400M + 0.250GAN502a + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42157} G3N5028 +PERO3              =  0.800GND400M + 0.200GAN502a + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42158} G3N5028 +PERO5              =  0.650GND400M + 0.350GAN502a + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42159} G3N5028 +PERO6              =  0.650GND400M + 0.350GAN502a + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42160} G3N5028 +PERO9              =       GND400M +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 42161} G1D501N                     =       G3D3001 +      GCH2O   +      GCO                     : ARR( 0.200E+15,  3897., 0.0);
+{ 42162} GHN505d +GHO                =       GHN506E +      GHO2                                   : ARR( 0.656E-11,     0., 0.0);
+{ 42163} GHN505d +GHO                =       GND501I +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 42164} GHN505d +GHO                =       G3H400H +      GCO                                    : ARR( 0.127E-10,     0., 0.0);
+{ 42165} GHN505d +GHO                =       G2N505j                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 42166} GHN505d +GNO3               =       G3H400H +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 42167} GHN505d+HV               =       G1H509j +      GNO2                                   :  0.100E+01*SUN;
+{ 42168} GHN505d+HV               =       G1N506w +      GHO                                    :  0.100E+01*SUN;
+{ 42169} GHN505d+HV               =       G3H400H +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 42170} GHN505d+HV               =       GHN400T +      GCO                                    :  0.100E+01*SUN;
+{ 42171} GHN505d+HV               =       GHN3003 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 42172} G2N505j +GNO                =       G1N506w +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 42173} G2N505j +GNO                =       GNN5037                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 42174} G2N505j +GHO2               =       GHN505d                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 42175} G2N505j +GNO3               =       G1N506w +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 42176} G2N505j +MEPERO             =  0.340G1N506w + 0.330GND501L + 0.330GND501I                 : ARR( 0.565E-13,  -845., 0.0);
+{ 42177} G2N505j +PERO1              =  0.460G1N506w + 0.270GND501L + 0.270GND501I                 : ARR( 0.434E-13,  -900., 0.0);
+{ 42178} G2N505j +PERO2              =  0.400G1N506w + 0.300GND501L + 0.300GND501I                 : ARR( 0.162E-13, -1400., 0.0);
+{ 42179} G2N505j +PERO3              =  0.460G1N506w + 0.270GND501L + 0.270GND501I                 : ARR( 0.488E-13, -1250., 0.0);
+{ 42180} G2N505j +PERO5              =  0.460G1N506w + 0.270GND501L + 0.270GND501I                 : ARR( 0.183E-11,   450., 0.0);
+{ 42181} G2N505j +PERO6              =  0.300G1N506w + 0.350GND501L + 0.350GND501I                 : ARR( 0.168E-13, -1300., 0.0);
+{ 42182} G2N505j +PERO9              =  0.650G1N506w + 0.350GND501I                                : ARR( 0.100E-10,     0., 0.0);
+{ 42183} G1H509j                     =       GHD400K +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4427., 0.0);
+{ 42184} GND501L +GHO                =       GND501R +      GHO2                                   : ARR( 0.662E-11,     0., 0.0);
+{ 42185} GND501L +GHO                =       GND501I +      GHO2                                   : ARR( 0.636E-11,     0., 0.0);
+{ 42186} GND501L +GHO                =       G3N400O +      GCO                                    : ARR( 0.128E-10,     0., 0.0);
+{ 42187} GND501L +GNO3               =       G3N400O +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 42188} GND501L+HV               =       G1D501O +      GNO2                                   :  0.100E+01*SUN;
+{ 42189} GND501L+HV               =       G3N400O +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 42190} GND501L+HV               =       GND400F +      GCO                                    :  0.100E+01*SUN;
+{ 42191} GND501L+HV               =       GNO3003 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 42192} G1D501O                     =       GDD4004 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4427., 0.0);
+{ 42193} GHN505e +GHO                =       GNN502t +      GHO                                    : ARR( 0.163E-10,     0., 0.0);
+{ 42194} GHN505e +GHO                =       G3H502j                                               : ARR( 0.421E-11,     0., 0.0);
+{ 42195} GHN505e +GHO                =       G2N505k                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 42196} GHN505e +GNO3               =       G3H502j +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 42197} GHN505e+HV               =       G1N504c +      GHO                                    :  0.100E+01*SUN;
+{ 42198} GHN505e+HV               =       G1H509k +      GNO2                                   :  0.100E+01*SUN;
+{ 42199} GHN505e+HV               =       G1H509l +      GNO2                                   :  0.100E+01*SUN;
+{ 42200} GHN505e+HV               =       GHN400M +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 42201} GHN505e+HV               =       G2H300C +      GND2000 +      GNO2                    :  0.100E+01*SUN;
+{ 42202} G3H502j +GHO2               =  0.800GGH503K + 0.200GAH502B + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 42203} G3H502j +GNO                =       GHN400M + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 42204} G3H502j +GNO2               =       GPH502A                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 42205} G3H502j +GNO3               =       GHN400M + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 42206} G3H502j +MEPERO             =  0.685GHN400M + 0.315GAH502B + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42207} G3H502j +PERO1              =  0.800GHN400M + 0.200GAH502B + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42208} G3H502j +PERO2              =  0.750GHN400M + 0.250GAH502B + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42209} G3H502j +PERO3              =  0.800GHN400M + 0.200GAH502B + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42210} G3H502j +PERO5              =  0.650GHN400M + 0.350GAH502B + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42211} G3H502j +PERO6              =  0.650GHN400M + 0.350GAH502B + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42212} G3H502j +PERO9              =       GHN400M +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 42213} G2N505k +GNO                =       G1N504c +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 42214} G2N505k +GNO                =       GNN501U                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 42215} G2N505k +GHO2               =       GHN505e                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 42216} G2N505k +GNO3               =       G1N504c +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 42217} G2N505k +MEPERO             =  0.480G1N504c + 0.260GNN501S + 0.260GNN502t                 : ARR( 0.146E-12,  -445., 0.0);
+{ 42218} G2N505k +PERO1              =  0.600G1N504c + 0.200GNN501S + 0.200GNN502t                 : ARR( 0.112E-12,  -500., 0.0);
+{ 42219} G2N505k +PERO2              =  0.560G1N504c + 0.220GNN501S + 0.220GNN502t                 : ARR( 0.418E-13, -1000., 0.0);
+{ 42220} G2N505k +PERO3              =  0.600G1N504c + 0.200GNN501S + 0.200GNN502t                 : ARR( 0.126E-12,  -850., 0.0);
+{ 42221} G2N505k +PERO5              =  0.600G1N504c + 0.200GNN501S + 0.200GNN502t                 : ARR( 0.473E-11,   850., 0.0);
+{ 42222} G2N505k +PERO6              =  0.460G1N504c + 0.270GNN501S + 0.270GNN502t                 : ARR( 0.434E-13,  -900., 0.0);
+{ 42223} G2N505k +PERO9              =  0.800G1N504c + 0.200GNN502t                                : ARR( 0.100E-10,     0., 0.0);
+{ 42224} G1H509k                     =       G2H2000 +      GND3005                                : ARR( 0.200E+15,  6244., 0.0);
+{ 42225} G1H509k                     =       GHD3000 +      GDD2000 +      GNO2                    : ARR( 0.200E+15,  6201., 0.0);
+{ 42226} G1H509l                     =       GND500a +      GHO                                    : ARR( 0.160E+12,  2186., 0.0);
+{ 42227} GHN505f +GHO                =       GHN506k +      GHO2                                   : ARR( 0.824E-12,     0., 0.0);
+{ 42228} GHN505f +GHO                =       GNN502y +      GHO                                    : ARR( 0.330E-11,     0., 0.0);
+{ 42229} GHN505f +GHO                =       G2N505l                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 42230} GHN505f+HV               =       G1H509m +      GNO2                                   :  0.100E+01*SUN;
+{ 42231} GHN505f+HV               =       G1H508m +      GNO2                                   :  0.100E+01*SUN;
+{ 42232} GHN505f+HV               =       G1H505B +      GNO2                                   :  0.100E+01*SUN;
+{ 42233} GHN505f+HV               =       G1N504h +      GHO                                    :  0.100E+01*SUN;
+{ 42234} G2N505l +GNO                =       G1N504h +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 42235} G2N505l +GNO                =       GNN501Z                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 42236} G2N505l +GHO2               =       GHN505f                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 42237} G2N505l +GNO3               =       G1N504h +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 42238} G2N505l +MEPERO             =  0.480G1N504h + 0.260GNN502A + 0.260GNN502y                 : ARR( 0.164E-12,  -795., 0.0);
+{ 42239} G2N505l +PERO1              =  0.600G1N504h + 0.200GNN502A + 0.200GNN502y                 : ARR( 0.126E-12,  -850., 0.0);
+{ 42240} G2N505l +PERO2              =  0.560G1N504h + 0.220GNN502A + 0.220GNN502y                 : ARR( 0.471E-13, -1350., 0.0);
+{ 42241} G2N505l +PERO3              =  0.600G1N504h + 0.200GNN502A + 0.200GNN502y                 : ARR( 0.142E-12, -1200., 0.0);
+{ 42242} G2N505l +PERO5              =  0.600G1N504h + 0.200GNN502A + 0.200GNN502y                 : ARR( 0.533E-11,   500., 0.0);
+{ 42243} G2N505l +PERO6              =  0.460G1N504h + 0.270GNN502A + 0.270GNN502y                 : ARR( 0.488E-13, -1250., 0.0);
+{ 42244} G2N505l +PERO9              =  0.800G1N504h + 0.200GNN502y                                : ARR( 0.100E-10,     0., 0.0);
+{ 42245} G1H509m                     =       GNN502D +      GHO                                    : ARR( 0.160E+12,  2905., 0.0);
+{ 42246} G1H509m                     =       GCH2O   +      GHN4013 +      GHO2                    : ARR( 0.200E+15,  5296., 0.0);
+{ 42247} GHH5022 +GHO                =       GHN504U +      GHO                                    : ARR( 0.850E-11,     0., 0.0);
+{ 42248} GHH5022 +GHO                =       GHN505h +      GHO                                    : ARR( 0.166E-10,     0., 0.0);
+{ 42249} GHH5022 +GHO                =       G2H5028                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 42250} GHH5022 +GHO                =       G2H503H                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 42251} GHH5022+HV               =       G1H509n +      GNO2                                   :  0.100E+01*SUN;
+{ 42252} GHH5022+HV               =       G1H509o +      GNO2                                   :  0.100E+01*SUN;
+{ 42253} GHH5022+HV               =       G1H505B +      GHO                                    :  0.100E+01*SUN;
+{ 42254} GHH5022+HV               =       G1H504X +      GHO                                    :  0.100E+01*SUN;
+{ 42255} G2H503H +GNO                =       G1H504X +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 42256} G2H503H +GNO                =       GHN502W                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 42257} G2H503H +GHO2               =       GHH5022                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 42258} G2H503H +GNO3               =       G1H504X +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 42259} G2H503H +MEPERO             =  0.480G1H504X + 0.260GHN5033 + 0.260GHN505h                 : ARR( 0.164E-12,  -795., 0.0);
+{ 42260} G2H503H +PERO1              =  0.600G1H504X + 0.200GHN5033 + 0.200GHN505h                 : ARR( 0.126E-12,  -850., 0.0);
+{ 42261} G2H503H +PERO2              =  0.560G1H504X + 0.220GHN5033 + 0.220GHN505h                 : ARR( 0.471E-13, -1350., 0.0);
+{ 42262} G2H503H +PERO3              =  0.600G1H504X + 0.200GHN5033 + 0.200GHN505h                 : ARR( 0.142E-12, -1200., 0.0);
+{ 42263} G2H503H +PERO5              =  0.600G1H504X + 0.200GHN5033 + 0.200GHN505h                 : ARR( 0.533E-11,   500., 0.0);
+{ 42264} G2H503H +PERO6              =  0.460G1H504X + 0.270GHN5033 + 0.270GHN505h                 : ARR( 0.488E-13, -1250., 0.0);
+{ 42265} G2H503H +PERO9              =  0.800G1H504X + 0.200GHN505h                                : ARR( 0.100E-10,     0., 0.0);
+{ 42266} G1H509n                     =       GHN5037 +      GHO                                    : ARR( 0.160E+12,  2186., 0.0);
+{ 42267} G1H509n                     =       GCH2O   +      GHH400u +      GHO2                    : ARR( 0.200E+15,  5296., 0.0);
+{ 42268} G1H509o                     =       GND3004 +      GHD2000 +      GHO                     : ARR( 0.200E+15,  4784., 0.0);
+{ 42269} GHN505g +GHO                =       GNN503C +      GHO                                    : ARR( 0.162E-10,     0., 0.0);
+{ 42270} GHN505g +GHO                =       GHN506T +      GHO2                                   : ARR( 0.207E-11,     0., 0.0);
+{ 42271} GHN505g +GHO                =       G3H502k                                               : ARR( 0.418E-11,     0., 0.0);
+{ 42272} GHN505g +GHO                =       G2N505m                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 42273} GHN505g +GNO3               =       G3H502k +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 42274} GHN505g+HV               =       G1N504i +      GHO                                    :  0.100E+01*SUN;
+{ 42275} GHN505g+HV               =       G1H509p +      GNO2                                   :  0.100E+01*SUN;
+{ 42276} GHN505g+HV               =       G1H509q +      GNO2                                   :  0.100E+01*SUN;
+{ 42277} GHN505g+HV               =       GHN400Y +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 42278} GHN505g+HV               =       GHN3008 +      GND2000                                :  0.100E+01*SUN;
+{ 42279} G3H502k +GHO2               =  0.800GGH503L + 0.200GAH502l + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 42280} G3H502k +GNO                =       GHN400Y + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 42281} G3H502k +GNO2               =       GPH502s                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 42282} G3H502k +GNO3               =       GHN400Y + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 42283} G3H502k +MEPERO             =  0.685GHN400Y + 0.315GAH502l + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42284} G3H502k +PERO1              =  0.800GHN400Y + 0.200GAH502l + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42285} G3H502k +PERO2              =  0.750GHN400Y + 0.250GAH502l + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42286} G3H502k +PERO3              =  0.800GHN400Y + 0.200GAH502l + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42287} G3H502k +PERO5              =  0.650GHN400Y + 0.350GAH502l + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42288} G3H502k +PERO6              =  0.650GHN400Y + 0.350GAH502l + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42289} G3H502k +PERO9              =       GHN400Y +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 42290} G2N505m +GNO                =       G1N504i +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 42291} G2N505m +GNO                =       GNN501d                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 42292} G2N505m +GHO2               =       GHN505g                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 42293} G2N505m +GNO3               =       G1N504i +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 42294} G2N505m +MEPERO             =  0.480G1N504i + 0.260GNN502D + 0.260GNN503C                 : ARR( 0.164E-12,  -795., 0.0);
+{ 42295} G2N505m +PERO1              =  0.600G1N504i + 0.200GNN502D + 0.200GNN503C                 : ARR( 0.126E-12,  -850., 0.0);
+{ 42296} G2N505m +PERO2              =  0.560G1N504i + 0.220GNN502D + 0.220GNN503C                 : ARR( 0.471E-13, -1350., 0.0);
+{ 42297} G2N505m +PERO3              =  0.600G1N504i + 0.200GNN502D + 0.200GNN503C                 : ARR( 0.142E-12, -1200., 0.0);
+{ 42298} G2N505m +PERO5              =  0.600G1N504i + 0.200GNN502D + 0.200GNN503C                 : ARR( 0.533E-11,   500., 0.0);
+{ 42299} G2N505m +PERO6              =  0.460G1N504i + 0.270GNN502D + 0.270GNN503C                 : ARR( 0.488E-13, -1250., 0.0);
+{ 42300} G2N505m +PERO9              =  0.800G1N504i + 0.200GNN503C                                : ARR( 0.100E-10,     0., 0.0);
+{ 42301} G1H509p                     =       GHD2000 +      GND3005 +      GHO2                    : ARR( 0.200E+15,  2745., 0.0);
+{ 42302} G1H509q                     =       GND500s +      GHO                                    : ARR( 0.160E+12,  2186., 0.0);
+{ 42303} GGN501B +GHO                =       G3N500u                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 42304} GGN501B+HV               =       G1G502o +      GNO2                                   :  0.100E+01*SUN;
+{ 42305} GGN501B+HV               =       G1G502p +      GNO2                                   :  0.100E+01*SUN;
+{ 42306} GGN501B+HV               =       G1G5014 +      GNO2                                   :  0.100E+01*SUN;
+{ 42307} GGN501B+HV               =       G2N400p +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 42308} G1G502o +OXYGEN             =       GGN5024 +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 42309} G1G502o                     =       G2G5026                                               : ARR( 0.160E+12,  3940., 0.0);
+{ 42310} G1G502o                     =       GGN400I +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7042., 0.0);
+{ 42311} G1G502p                     =       GND2000 +      GGD3000 +      GNO2                    : ARR( 0.200E+15,  6365., 0.0);
+{ 42312} G2G5026 +GNO                =       G1G502q +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 42313} G2G5026 +GNO                =       GGN502K                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 42314} G2G5026 +GHO2               =       GGH503M                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 42315} G2G5026 +GNO3               =       G1G502q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 42316} G2G5026 +MEPERO             =  0.340G1G502q + 0.330GGN501t + 0.330GGN502S                 : ARR( 0.565E-13,  -845., 0.0);
+{ 42317} G2G5026 +PERO1              =  0.460G1G502q + 0.270GGN501t + 0.270GGN502S                 : ARR( 0.434E-13,  -900., 0.0);
+{ 42318} G2G5026 +PERO2              =  0.400G1G502q + 0.300GGN501t + 0.300GGN502S                 : ARR( 0.162E-13, -1400., 0.0);
+{ 42319} G2G5026 +PERO3              =  0.460G1G502q + 0.270GGN501t + 0.270GGN502S                 : ARR( 0.488E-13, -1250., 0.0);
+{ 42320} G2G5026 +PERO5              =  0.460G1G502q + 0.270GGN501t + 0.270GGN502S                 : ARR( 0.183E-11,   450., 0.0);
+{ 42321} G2G5026 +PERO6              =  0.300G1G502q + 0.350GGN501t + 0.350GGN502S                 : ARR( 0.168E-13, -1300., 0.0);
+{ 42322} G2G5026 +PERO9              =  0.650G1G502q + 0.350GGN502S                                : ARR( 0.100E-10,     0., 0.0);
+{ 42323} G1G502q                     =       GGN502T +      GHO2                                   : ARR( 0.160E+12,  3252., 0.0);
+{ 42324} G1G502q                     =       GNN400E +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 42325} GHN4015 +GHO                =       GNN400D +      GHO                                    : ARR( 0.323E-11,     0., 0.0);
+{ 42326} GHN4015 +GHO                =       G2N400p                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 42327} GHN4015+HV               =       G1H401Z +      GNO2                                   :  0.100E+01*SUN;
+{ 42328} GHN4015+HV               =       G1H401n +      GNO2                                   :  0.100E+01*SUN;
+{ 42329} GHN4015+HV               =       G1H401o +      GNO2                                   :  0.100E+01*SUN;
+{ 42330} GHN4015+HV               =       G1N400s +      GHO                                    :  0.100E+01*SUN;
+{ 42331} G1H401n                     =       GND2000 +      GHD2000 +      GNO2                    : ARR( 0.200E+15,  6380., 0.0);
+{ 42332} G1H401o                     =       GND2000 +      GHD2000 +      GNO2                    : ARR( 0.200E+15,  6382., 0.0);
+{ 42333} G1H401o                     =       GNN3005 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  7395., 0.0);
+{ 42334} GHN505h +GHO                =       GNN502c +      GHO                                    : ARR( 0.520E-11,     0., 0.0);
+{ 42335} GHN505h +GHO                =       G3H502l                                               : ARR( 0.215E-10,     0., 0.0);
+{ 42336} GHN505h +GHO                =       G2N504Q                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 42337} GHN505h +GNO3               =       G3H502l +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 42338} GHN505h+HV               =       G1H509r +      GNO2                                   :  0.100E+01*SUN;
+{ 42339} GHN505h+HV               =       G1H509s +      GNO2                                   :  0.100E+01*SUN;
+{ 42340} GHN505h+HV               =       G1N505L +      GHO                                    :  0.100E+01*SUN;
+{ 42341} GHN505h+HV               =       GNN400E +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 42342} G3H502l +GHO2               =  0.800GGH503M + 0.200GAH5034 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 42343} G3H502l +GNO                =       GNN400E +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 42344} G3H502l +GNO2               =       GPH5028                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 42345} G3H502l +GNO3               =       GNN400E +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 42346} G3H502l +MEPERO             =  0.685GNN400E + 0.315GAH5034 + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42347} G3H502l +PERO1              =  0.800GNN400E + 0.200GAH5034 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42348} G3H502l +PERO2              =  0.750GNN400E + 0.250GAH5034 + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42349} G3H502l +PERO3              =  0.800GNN400E + 0.200GAH5034 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42350} G3H502l +PERO5              =  0.650GNN400E + 0.350GAH5034 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42351} G3H502l +PERO6              =  0.650GNN400E + 0.350GAH5034 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42352} G3H502l +PERO9              =       GNN400E +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 42353} G1H509r                     =       GCH2O   +      GHN400y +      GHO2                    : ARR( 0.200E+15,  5296., 0.0);
+{ 42354} G1H509r                     =       GDO2000 +      GHD3004 +      GNO2                    : ARR( 0.200E+15,  6367., 0.0);
+{ 42355} G1H509s                     =       GDO2000 +      GHD3004 +      GNO2                    : ARR( 0.200E+15,  5492., 0.0);
+{ 42356} G1H509s                     =       GND3004 +      GDD2000 +      GHO                     : ARR( 0.200E+15,  4917., 0.0);
+{ 42357} GNN503C +GHO                =       G3N5029                                               : ARR( 0.220E-10,     0., 0.0);
+{ 42358} GNN503C +GHO                =       G3N502A                                               : ARR( 0.440E-11,     0., 0.0);
+{ 42359} GNN503C +GNO3               =       G3N5029 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 42360} GNN503C +GNO3               =       G3N502A +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 42361} GNN503C+HV               =       GCO     +      GNN400Z + 2.000GHO2                    :  0.100E+01*SUN;
+{ 42362} GNN503C+HV               =       G1N5075 +      GNO2                                   :  0.100E+01*SUN;
+{ 42363} GNN503C+HV               =       G1N5076 +      GNO2                                   :  0.100E+01*SUN;
+{ 42364} GNN503C+HV               =       GND400J +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 42365} GNN503C+HV               =       GND3003 +      GND2000                                :  0.100E+01*SUN;
+{ 42366} G3N5029 +GHO2               =  0.800GGN502T + 0.200GAN502G + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 42367} G3N5029 +GNO                =       GNN400Z +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 42368} G3N5029 +GNO2               =       GPN501k                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 42369} G3N5029 +GNO3               =       GNN400Z +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 42370} G3N5029 +MEPERO             =  0.685GNN400Z + 0.315GAN502G + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42371} G3N5029 +PERO1              =  0.800GNN400Z + 0.200GAN502G + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42372} G3N5029 +PERO2              =  0.750GNN400Z + 0.250GAN502G + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42373} G3N5029 +PERO3              =  0.800GNN400Z + 0.200GAN502G + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42374} G3N5029 +PERO5              =  0.650GNN400Z + 0.350GAN502G + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42375} G3N5029 +PERO6              =  0.650GNN400Z + 0.350GAN502G + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42376} G3N5029 +PERO9              =       GNN400Z +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 42377} G3N502A +GHO2               =  0.800GGN502U + 0.200GAN5028 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 42378} G3N502A +GNO                =       GND400J + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 42379} G3N502A +GNO2               =       GPN502G                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 42380} G3N502A +GNO3               =       GND400J + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 42381} G3N502A +MEPERO             =  0.685GND400J + 0.315GAN5028 + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42382} G3N502A +PERO1              =  0.800GND400J + 0.200GAN5028 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42383} G3N502A +PERO2              =  0.750GND400J + 0.250GAN5028 + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42384} G3N502A +PERO3              =  0.800GND400J + 0.200GAN5028 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42385} G3N502A +PERO5              =  0.650GND400J + 0.350GAN5028 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42386} G3N502A +PERO6              =  0.650GND400J + 0.350GAN5028 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42387} G3N502A +PERO9              =       GND400J +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 42388} G1N5075                     =       GND3005 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  2877., 0.0);
+{ 42389} G1N5076                     =       GND400J +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 42390} GHH5023 +GHO                =       GHN505X +      GHO                                    : ARR( 0.843E-11,     0., 0.0);
+{ 42391} GHH5023 +GHO                =       GHN504q +      GHO                                    : ARR( 0.164E-10,     0., 0.0);
+{ 42392} GHH5023 +GHO                =       G2H503I                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 42393} GHH5023 +GHO                =       G2H5029                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 42394} GHH5023+HV               =       G1H509t +      GNO2                                   :  0.100E+01*SUN;
+{ 42395} GHH5023+HV               =       G1H509u +      GNO2                                   :  0.100E+01*SUN;
+{ 42396} GHH5023+HV               =       G1H504a +      GHO                                    :  0.100E+01*SUN;
+{ 42397} GHH5023+HV               =       G1H505F +      GHO                                    :  0.100E+01*SUN;
+{ 42398} G2H503I +GNO                =       G1H504a +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 42399} G2H503I +GNO                =       GHN502X                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 42400} G2H503I +GHO2               =       GHH5023                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 42401} G2H503I +GNO3               =       G1H504a +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 42402} G2H503I +MEPERO             =  0.340G1H504a + 0.330GHN504Q + 0.330GHN505X                 : ARR( 0.565E-13,  -845., 0.0);
+{ 42403} G2H503I +PERO1              =  0.460G1H504a + 0.270GHN504Q + 0.270GHN505X                 : ARR( 0.434E-13,  -900., 0.0);
+{ 42404} G2H503I +PERO2              =  0.400G1H504a + 0.300GHN504Q + 0.300GHN505X                 : ARR( 0.162E-13, -1400., 0.0);
+{ 42405} G2H503I +PERO3              =  0.460G1H504a + 0.270GHN504Q + 0.270GHN505X                 : ARR( 0.488E-13, -1250., 0.0);
+{ 42406} G2H503I +PERO5              =  0.460G1H504a + 0.270GHN504Q + 0.270GHN505X                 : ARR( 0.183E-11,   450., 0.0);
+{ 42407} G2H503I +PERO6              =  0.300G1H504a + 0.350GHN504Q + 0.350GHN505X                 : ARR( 0.168E-13, -1300., 0.0);
+{ 42408} G2H503I +PERO9              =  0.650G1H504a + 0.350GHN505X                                : ARR( 0.100E-10,     0., 0.0);
+{ 42409} G1H509t                     =       GHN504S +      GHO                                    : ARR( 0.800E+11,  2398., 0.0);
+{ 42410} G1H509t                     =       GHH400u +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 42411} G1H509u                     =       GND2000 +      GHH3005 +      GHO2                    : ARR( 0.200E+15,  3575., 0.0);
+{ 42412} GHH5024 +GHO                =       GHN504e +      GHO                                    : ARR( 0.679E-11,     0., 0.0);
+{ 42413} GHH5024 +GHO                =       GHN506O +      GHO                                    : ARR( 0.509E-11,     0., 0.0);
+{ 42414} GHH5024 +GHO                =       G3H502m                                               : ARR( 0.211E-10,     0., 0.0);
+{ 42415} GHH5024 +GHO                =       G2H503J                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 42416} GHH5024 +GHO                =       G2H503K                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 42417} GHH5024 +GNO3               =       G3H502m +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 42418} GHH5024+HV               =       G1H507s +      GHO                                    :  0.100E+01*SUN;
+{ 42419} GHH5024+HV               =       G1H509v +      GNO2                                   :  0.100E+01*SUN;
+{ 42420} GHH5024+HV               =       G1H507a +      GHO                                    :  0.100E+01*SUN;
+{ 42421} GHH5024+HV               =       GHN400p +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 42422} G3H502m +GHO2               =  0.800GGH503N + 0.200GAH503y + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 42423} G3H502m +GNO                =       GHN400p +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 42424} G3H502m +GNO2               =       GPH5048                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 42425} G3H502m +GNO3               =       GHN400p +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 42426} G3H502m +MEPERO             =  0.685GHN400p + 0.315GAH503y + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42427} G3H502m +PERO1              =  0.800GHN400p + 0.200GAH503y + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42428} G3H502m +PERO2              =  0.750GHN400p + 0.250GAH503y + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42429} G3H502m +PERO3              =  0.800GHN400p + 0.200GAH503y + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42430} G3H502m +PERO5              =  0.650GHN400p + 0.350GAH503y + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42431} G3H502m +PERO6              =  0.650GHN400p + 0.350GAH503y + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42432} G3H502m +PERO9              =       GHN400p +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 42433} G2H503J +GNO                =       G1H507s +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 42434} G2H503J +GNO                =       GHN504d                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 42435} G2H503J +GHO2               =       GHH5024                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 42436} G2H503J +GNO3               =       G1H507s +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 42437} G2H503J +MEPERO             =  0.340G1H507s + 0.330GHN502x + 0.330GHN504e                 : ARR( 0.565E-13,  -845., 0.0);
+{ 42438} G2H503J +PERO1              =  0.460G1H507s + 0.270GHN502x + 0.270GHN504e                 : ARR( 0.434E-13,  -900., 0.0);
+{ 42439} G2H503J +PERO2              =  0.400G1H507s + 0.300GHN502x + 0.300GHN504e                 : ARR( 0.162E-13, -1400., 0.0);
+{ 42440} G2H503J +PERO3              =  0.460G1H507s + 0.270GHN502x + 0.270GHN504e                 : ARR( 0.488E-13, -1250., 0.0);
+{ 42441} G2H503J +PERO5              =  0.460G1H507s + 0.270GHN502x + 0.270GHN504e                 : ARR( 0.183E-11,   450., 0.0);
+{ 42442} G2H503J +PERO6              =  0.300G1H507s + 0.350GHN502x + 0.350GHN504e                 : ARR( 0.168E-13, -1300., 0.0);
+{ 42443} G2H503J +PERO9              =  0.650G1H507s + 0.350GHN504e                                : ARR( 0.100E-10,     0., 0.0);
+{ 42444} G2H503K +GNO                =       G1H507a +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 42445} G2H503K +GNO                =       GHN504O                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 42446} G2H503K +GHO2               =       GHH5024                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 42447} G2H503K +GNO3               =       G1H507a +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 42448} G2H503K +MEPERO             =  0.340G1H507a + 0.330GHN5062 + 0.330GHN506O                 : ARR( 0.565E-13,  -845., 0.0);
+{ 42449} G2H503K +PERO1              =  0.460G1H507a + 0.270GHN5062 + 0.270GHN506O                 : ARR( 0.434E-13,  -900., 0.0);
+{ 42450} G2H503K +PERO2              =  0.400G1H507a + 0.300GHN5062 + 0.300GHN506O                 : ARR( 0.162E-13, -1400., 0.0);
+{ 42451} G2H503K +PERO3              =  0.460G1H507a + 0.270GHN5062 + 0.270GHN506O                 : ARR( 0.488E-13, -1250., 0.0);
+{ 42452} G2H503K +PERO5              =  0.460G1H507a + 0.270GHN5062 + 0.270GHN506O                 : ARR( 0.183E-11,   450., 0.0);
+{ 42453} G2H503K +PERO6              =  0.300G1H507a + 0.350GHN5062 + 0.350GHN506O                 : ARR( 0.168E-13, -1300., 0.0);
+{ 42454} G2H503K +PERO9              =  0.650G1H507a + 0.350GHN506O                                : ARR( 0.100E-10,     0., 0.0);
+{ 42455} G1H509v                     =       GD02000 +      GHD3004 +      GHO                     : ARR( 0.200E+15,  4341., 0.0);
+{ 42456} G1H509v                     =       GHD3002 +      GDD2000 +      GHO                     : ARR( 0.200E+15,  4917., 0.0);
+{ 42457} GHN505i +GHO                =       GNK500e +      GHO                                    : ARR( 0.693E-11,     0., 0.0);
+{ 42458} GHN505i +GHO                =       GHN504B +      GHO2                                   : ARR( 0.213E-11,     0., 0.0);
+{ 42459} GHN505i +GHO                =       GHN5062 +      GHO2                                   : ARR( 0.416E-11,     0., 0.0);
+{ 42460} GHN505i +GHO                =       G2N505n                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 42461} GHN505i+HV               =       G1N5045 +      GHO                                    :  0.100E+01*SUN;
+{ 42462} GHN505i+HV               =       G1H5067 +      GNO2                                   :  0.100E+01*SUN;
+{ 42463} G2N505n +GNO                =       G1N5045 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 42464} G2N505n +GNO                =       GNN5017                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 42465} G2N505n +GHO2               =       GHN505i                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 42466} G2N505n +GNO3               =       G1N5045 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 42467} G2N505n +MEPERO             =  0.340G1N5045 + 0.330GNO500U + 0.330GNK500e                 : ARR( 0.565E-13,  -845., 0.0);
+{ 42468} G2N505n +PERO1              =  0.460G1N5045 + 0.270GNO500U + 0.270GNK500e                 : ARR( 0.434E-13,  -900., 0.0);
+{ 42469} G2N505n +PERO2              =  0.400G1N5045 + 0.300GNO500U + 0.300GNK500e                 : ARR( 0.162E-13, -1400., 0.0);
+{ 42470} G2N505n +PERO3              =  0.460G1N5045 + 0.270GNO500U + 0.270GNK500e                 : ARR( 0.488E-13, -1250., 0.0);
+{ 42471} G2N505n +PERO5              =  0.460G1N5045 + 0.270GNO500U + 0.270GNK500e                 : ARR( 0.183E-11,   450., 0.0);
+{ 42472} G2N505n +PERO6              =  0.300G1N5045 + 0.350GNO500U + 0.350GNK500e                 : ARR( 0.168E-13, -1300., 0.0);
+{ 42473} G2N505n +PERO9              =  0.650G1N5045 + 0.350GNK500e                                : ARR( 0.100E-10,     0., 0.0);
+{ 42474} GGH5018 +GHO                =       GGH502W +      GHO2                                   : ARR( 0.173E-11,     0., 0.0);
+{ 42475} GGH5018 +GHO                =       GGN501q +      GHO                                    : ARR( 0.518E-11,     0., 0.0);
+{ 42476} GGH5018 +GHO                =       G2G5027                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 42477} GGH5018 +GHO                =       G3H500n                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 42478} GGH5018+HV               =       G1G502r +      GNO2                                   :  0.100E+01*SUN;
+{ 42479} GGH5018+HV               =       G1G5022 +      GHO                                    :  0.100E+01*SUN;
+{ 42480} GGH5018+HV               =       GND4007 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 42481} G2G5027 +GNO                =       G1G5022 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 42482} G2G5027 +GNO                =       GGN500f                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 42483} G2G5027 +GHO2               =       GGH5018                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 42484} G2G5027 +GNO3               =       G1G5022 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 42485} G2G5027 +MEPERO             =  0.340G1G5022 + 0.330GGN500g + 0.330GGN501q                 : ARR( 0.565E-13,  -845., 0.0);
+{ 42486} G2G5027 +PERO1              =  0.460G1G5022 + 0.270GGN500g + 0.270GGN501q                 : ARR( 0.434E-13,  -900., 0.0);
+{ 42487} G2G5027 +PERO2              =  0.400G1G5022 + 0.300GGN500g + 0.300GGN501q                 : ARR( 0.162E-13, -1400., 0.0);
+{ 42488} G2G5027 +PERO3              =  0.460G1G5022 + 0.270GGN500g + 0.270GGN501q                 : ARR( 0.488E-13, -1250., 0.0);
+{ 42489} G2G5027 +PERO5              =  0.460G1G5022 + 0.270GGN500g + 0.270GGN501q                 : ARR( 0.183E-11,   450., 0.0);
+{ 42490} G2G5027 +PERO6              =  0.300G1G5022 + 0.350GGN500g + 0.350GGN501q                 : ARR( 0.168E-13, -1300., 0.0);
+{ 42491} G2G5027 +PERO9              =  0.650G1G5022 + 0.350GGN501q                                : ARR( 0.100E-10,     0., 0.0);
+{ 42492} G1G502r                     =       GD02000 +      GGH3007 +      GHO2                    : ARR( 0.200E+15,  3132., 0.0);
+{ 42493} GAH501Q +GHO                =       GAH502A +      GHO2                                   : ARR( 0.175E-11,     0., 0.0);
+{ 42494} GAH501Q +GHO                =       GAN501k +      GHO                                    : ARR( 0.389E-11,     0., 0.0);
+{ 42495} GAH501Q +GHO                =       G2A503K                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 42496} GAH501Q +GHO                =       GND4007 +      GHO     +      GCO2                    : ARR( 0.543E-12,     0., 0.0);
+{ 42497} GAH501Q+HV               =       G1A504E +      GNO2                                   :  0.100E+01*SUN;
+{ 42498} GAH501Q+HV               =       G1A502a +      GHO                                    :  0.100E+01*SUN;
+{ 42499} G2A503K +GNO                =       G1A502a +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 42500} G2A503K +GNO                =       GAN500m                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 42501} G2A503K +GHO2               =       GAH501Q                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 42502} G2A503K +GNO3               =       G1A502a +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 42503} G2A503K +MEPERO             =  0.340G1A502a + 0.330GAN500n + 0.330GAN501k                 : ARR( 0.565E-13,  -845., 0.0);
+{ 42504} G2A503K +PERO1              =  0.460G1A502a + 0.270GAN500n + 0.270GAN501k                 : ARR( 0.434E-13,  -900., 0.0);
+{ 42505} G2A503K +PERO2              =  0.400G1A502a + 0.300GAN500n + 0.300GAN501k                 : ARR( 0.162E-13, -1400., 0.0);
+{ 42506} G2A503K +PERO3              =  0.460G1A502a + 0.270GAN500n + 0.270GAN501k                 : ARR( 0.488E-13, -1250., 0.0);
+{ 42507} G2A503K +PERO5              =  0.460G1A502a + 0.270GAN500n + 0.270GAN501k                 : ARR( 0.183E-11,   450., 0.0);
+{ 42508} G2A503K +PERO6              =  0.300G1A502a + 0.350GAN500n + 0.350GAN501k                 : ARR( 0.168E-13, -1300., 0.0);
+{ 42509} G2A503K +PERO9              =  0.650G1A502a + 0.350GAN501k                                : ARR( 0.100E-10,     0., 0.0);
+{ 42510} G1A504E                     =       GD02000 +      GAH3007 +      GHO2                    : ARR( 0.200E+15,  3132., 0.0);
+{ 42511} GGH400S +GHO                =       GGN400M +      GHO                                    : ARR( 0.163E-10,     0., 0.0);
+{ 42512} GGH400S +GHO                =       G2G400X                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 42513} GGH400S +GHO                =       G3H400I                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 42514} GGH400S+HV               =       G1G400G +      GHO                                    :  0.100E+01*SUN;
+{ 42515} GGH400S+HV               =       G1G400v +      GNO2                                   :  0.100E+01*SUN;
+{ 42516} GGH400S+HV               =       GHD3000 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 42517} G1G400v                     =       GHD3000 +      GCO     +      GHO2                    : ARR( 0.200E+15,  4949., 0.0);
+{ 42518} GGN501C +GHO                =       G3N500v                                               : ARR( 0.204E-11,  -190., 0.0);
+{ 42519} GGN501C+HV               =       G1G502s +      GNO2                                   :  0.100E+01*SUN;
+{ 42520} GGN501C+HV               =       G3N2000 +      GGD3000 +      GNO2                    :  0.100E+01*SUN;
+{ 42521} GGN501C+HV               =       G1G501B +      GNO2                                   :  0.100E+01*SUN;
+{ 42522} GGN501C+HV               =       G2N400q +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 42523} G1G502s                     =       G3G4003 +      GCH2O                                  : ARR( 0.200E+15,  3640., 0.0);
+{ 42524} GHN4016 +GHO                =       GNN400G +      GHO                                    : ARR( 0.326E-11,     0., 0.0);
+{ 42525} GHN4016 +GHO                =       G2N400q                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 42526} GHN4016+HV               =       G1H401e +      GNO2                                   :  0.100E+01*SUN;
+{ 42527} GHN4016+HV               =       G3N2000 +      GHD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 42528} GHN4016+HV               =       G1H401p +      GNO2                                   :  0.100E+01*SUN;
+{ 42529} GHN4016+HV               =       G1N400t +      GHO                                    :  0.100E+01*SUN;
+{ 42530} G1H401p                     =       G3N2000 +      GHD2000                                : ARR( 0.200E+15,  2950., 0.0);
+{ 42531} GHN505j +GHO                =       GHN505Y +      GHO2                                   : ARR( 0.208E-11,     0., 0.0);
+{ 42532} GHN505j +GHO                =       GNN503B +      GHO                                    : ARR( 0.163E-10,     0., 0.0);
+{ 42533} GHN505j +GHO                =       G2N504T                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 42534} GHN505j+HV               =       G1H509w +      GNO2                                   :  0.100E+01*SUN;
+{ 42535} GHN505j+HV               =       G3N2000 +      GHD3005 +      GNO2                    :  0.100E+01*SUN;
+{ 42536} GHN505j+HV               =       GNN3006 +      GHD2000                                :  0.100E+01*SUN;
+{ 42537} GHN505j+HV               =       G1H509x +      GNO2                                   :  0.100E+01*SUN;
+{ 42538} GHN505j+HV               =       G1N505D +      GHO                                    :  0.100E+01*SUN;
+{ 42539} G1H509w                     =       G3H400U +      GCH2O                                  : ARR( 0.200E+15,  3640., 0.0);
+{ 42540} G1H509x                     =       G3N2000 +      GHD3005                                : ARR( 0.200E+15,  2890., 0.0);
+{ 42541} GHN505k +GHO                =       GNN5036 +      GHO                                    : ARR( 0.504E-11,     0., 0.0);
+{ 42542} GHN505k +GHO                =       G3H502n                                               : ARR( 0.208E-10,     0., 0.0);
+{ 42543} GHN505k +GHO                =       G2N505o                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 42544} GHN505k +GNO3               =       G3H502n +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 42545} GHN505k+HV               =       G1H509y +      GNO2                                   :  0.100E+01*SUN;
+{ 42546} GHN505k+HV               =       G1H509z +      GNO2                                   :  0.100E+01*SUN;
+{ 42547} GHN505k+HV               =       G1H50A1 +      GNO2                                   :  0.100E+01*SUN;
+{ 42548} GHN505k+HV               =       G1N506d +      GHO                                    :  0.100E+01*SUN;
+{ 42549} GHN505k+HV               =       GNN400D +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 42550} G3H502n +GHO2               =  0.800GGH503O + 0.200GAH5033 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 42551} G3H502n +GNO                =       GNN400D +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 42552} G3H502n +GNO2               =       GPH5038                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 42553} G3H502n +GNO3               =       GNN400D +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 42554} G3H502n +MEPERO             =  0.685GNN400D + 0.315GAH5033 + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42555} G3H502n +PERO1              =  0.800GNN400D + 0.200GAH5033 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42556} G3H502n +PERO2              =  0.750GNN400D + 0.250GAH5033 + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42557} G3H502n +PERO3              =  0.800GNN400D + 0.200GAH5033 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42558} G3H502n +PERO5              =  0.650GNN400D + 0.350GAH5033 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42559} G3H502n +PERO6              =  0.650GNN400D + 0.350GAH5033 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42560} G3H502n +PERO9              =       GNN400D +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 42561} G2N505o +GNO                =       G1N506d +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 42562} G2N505o +GNO                =       GNN502w                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 42563} G2N505o +GHO2               =       GHN505k                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 42564} G2N505o +GNO3               =       G1N506d +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 42565} G2N505o +MEPERO             =  0.340G1N506d + 0.330GNN502a + 0.330GNN5036                 : ARR( 0.565E-13,  -845., 0.0);
+{ 42566} G2N505o +PERO1              =  0.460G1N506d + 0.270GNN502a + 0.270GNN5036                 : ARR( 0.434E-13,  -900., 0.0);
+{ 42567} G2N505o +PERO2              =  0.400G1N506d + 0.300GNN502a + 0.300GNN5036                 : ARR( 0.162E-13, -1400., 0.0);
+{ 42568} G2N505o +PERO3              =  0.460G1N506d + 0.270GNN502a + 0.270GNN5036                 : ARR( 0.488E-13, -1250., 0.0);
+{ 42569} G2N505o +PERO5              =  0.460G1N506d + 0.270GNN502a + 0.270GNN5036                 : ARR( 0.183E-11,   450., 0.0);
+{ 42570} G2N505o +PERO6              =  0.300G1N506d + 0.350GNN502a + 0.350GNN5036                 : ARR( 0.168E-13, -1300., 0.0);
+{ 42571} G2N505o +PERO9              =  0.650G1N506d + 0.350GNN5036                                : ARR( 0.100E-10,     0., 0.0);
+{ 42572} G1H509y                     =       GNN502c +      GHO                                    : ARR( 0.800E+11,  2619., 0.0);
+{ 42573} G1H509z                     =       G3H501x                                               : ARR( 0.800E+11,  4559., 0.0);
+{ 42574} G1H509z                     =       GND2000 +      GHD3004 +      GNO2                    : ARR( 0.200E+15,  6365., 0.0);
+{ 42575} G1H50A1                     =       GND2000 +      GHD3004 +      GNO2                    : ARR( 0.200E+15,  5492., 0.0);
+{ 42576} G1H50A1                     =       GNN3005 +      GDD2000 +      GHO                     : ARR( 0.200E+15,  4917., 0.0);
+{ 42577} GNN503D +GHO                =       GNN503G +      GHO2                                   : ARR( 0.251E-11,     0., 0.0);
+{ 42578} GNN503D +GHO                =       G3N502B                                               : ARR( 0.426E-11,     0., 0.0);
+{ 42579} GNN503D +GNO3               =       G3N502B +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 42580} GNN503D+HV               =       G3K2001 +      GND3005 +      GNO2                    :  0.100E+01*SUN;
+{ 42581} GNN503D+HV               =       G1N506Y +      GNO2                                   :  0.100E+01*SUN;
+{ 42582} GNN503D+HV               =       G1N5077 +      GNO2                                   :  0.100E+01*SUN;
+{ 42583} GNN503D+HV               =       GND400L +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 42584} G3N502B +GHO2               =  0.800GGN502W + 0.200GAN501m + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 42585} G3N502B +GNO                =       GND400L + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 42586} G3N502B +GNO2               =       GPN501r                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 42587} G3N502B +GNO3               =       GND400L + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 42588} G3N502B +MEPERO             =  0.685GND400L + 0.315GAN501m + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42589} G3N502B +PERO1              =  0.800GND400L + 0.200GAN501m + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42590} G3N502B +PERO2              =  0.750GND400L + 0.250GAN501m + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42591} G3N502B +PERO3              =  0.800GND400L + 0.200GAN501m + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42592} G3N502B +PERO5              =  0.650GND400L + 0.350GAN501m + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42593} G3N502B +PERO6              =  0.650GND400L + 0.350GAN501m + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42594} G3N502B +PERO9              =       GND400L +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 42595} G1N5077                     =       GND400L +      GCO     +      GHO2                    : ARR( 0.200E+15,  4861., 0.0);
+{ 42596} GGN501D +GHO                =       GGN502U +      GHO2                                   : ARR( 0.415E-11,     0., 0.0);
+{ 42597} GGN501D +GHO                =       GGN502W +      GHO2                                   : ARR( 0.213E-11,     0., 0.0);
+{ 42598} GGN501D +GHO                =       G3N500w                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 42599} GGN501D+HV               =       G1G502t +      GNO2                                   :  0.100E+01*SUN;
+{ 42600} GGN501D+HV               =       G1G502u +      GNO2                                   :  0.100E+01*SUN;
+{ 42601} GGN501D+HV               =       GND400A +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 42602} G1G502t                     =       GDO2000 +      GGN3005 +      GHO2                    : ARR( 0.200E+15,  2745., 0.0);
+{ 42603} G1G502u                     =       GGN501W +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{ 42604} G1G502u                     =       GND400A +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 42605} GAN501M +GHO                =       GAN5028 +      GHO2                                   : ARR( 0.421E-11,     0., 0.0);
+{ 42606} GAN501M +GHO                =       GAN501m +      GHO2                                   : ARR( 0.216E-11,     0., 0.0);
+{ 42607} GAN501M +GHO                =       GND400A +      GNO2    +      GCO2                    : ARR( 0.545E-12,     0., 0.0);
+{ 42608} GAN501M+HV               =       G1A504F +      GNO2                                   :  0.100E+01*SUN;
+{ 42609} GAN501M+HV               =       G1A504G +      GNO2                                   :  0.100E+01*SUN;
+{ 42610} G1A504F                     =       GDO2000 +      GAN3006 +      GHO2                    : ARR( 0.200E+15,  2745., 0.0);
+{ 42611} G1A504G                     =       GAN501W +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{ 42612} G1A504G                     =       GND400A +      GCO     +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 42613} GPN501Q                     =       G3N500w +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 42614} GPN501Q +GHO                =       GPN502G +      GHO2                                   : ARR( 0.423E-11,     0., 0.0);
+{ 42615} GPN501Q +GHO                =       GPN501r +      GHO2                                   : ARR( 0.217E-11,     0., 0.0);
+{ 42616} GPN501Q+HV               =       G1P504Q +      GNO2                                   :  0.100E+01*SUN;
+{ 42617} GPN501Q+HV               =       G1P504R +      GNO2                                   :  0.100E+01*SUN;
+{ 42618} GPN501Q+HV               =       G3N500w +      GNO2                                   :  0.100E+01*SUN;
+{ 42619} G1P504Q                     =       GDO2000 +      GPN3006 +      GHO2                    : ARR( 0.200E+15,  2745., 0.0);
+{ 42620} G1P504R                     =       GPN500t +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{ 42621} G1P504R                     =       GND400A +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 42622} GGH5019 +GHO                =       GGN501C +      GHO                                    : ARR( 0.171E-11,     0., 0.0);
+{ 42623} GGH5019 +GHO                =       G2G5028                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 42624} GGH5019 +GHO                =       G3H500o                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 42625} GGH5019+HV               =       G1G502v +      GNO2                                   :  0.100E+01*SUN;
+{ 42626} GGH5019+HV               =       G1G502p +      GHO                                    :  0.100E+01*SUN;
+{ 42627} GGH5019+HV               =       G1G5018 +      GNO2                                   :  0.100E+01*SUN;
+{ 42628} GGH5019+HV               =       G2H400i +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 42629} G2G5028 +GNO                =       G1G502p +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 42630} G2G5028 +GNO                =       GGN501B                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 42631} G2G5028 +GHO2               =       GGH5019                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 42632} G2G5028 +GNO3               =       G1G502p +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 42633} G2G5028 +MEPERO             =  0.340G1G502p + 0.330GGN500F + 0.330GGN501C                 : ARR( 0.565E-13,  -845., 0.0);
+{ 42634} G2G5028 +PERO1              =  0.460G1G502p + 0.270GGN500F + 0.270GGN501C                 : ARR( 0.434E-13,  -900., 0.0);
+{ 42635} G2G5028 +PERO2              =  0.400G1G502p + 0.300GGN500F + 0.300GGN501C                 : ARR( 0.162E-13, -1400., 0.0);
+{ 42636} G2G5028 +PERO3              =  0.460G1G502p + 0.270GGN500F + 0.270GGN501C                 : ARR( 0.488E-13, -1250., 0.0);
+{ 42637} G2G5028 +PERO5              =  0.460G1G502p + 0.270GGN500F + 0.270GGN501C                 : ARR( 0.183E-11,   450., 0.0);
+{ 42638} G2G5028 +PERO6              =  0.300G1G502p + 0.350GGN500F + 0.350GGN501C                 : ARR( 0.168E-13, -1300., 0.0);
+{ 42639} G2G5028 +PERO9              =  0.650G1G502p + 0.350GGN501C                                : ARR( 0.100E-10,     0., 0.0);
+{ 42640} G1G502v                     =       G2G5029                                               : ARR( 0.160E+12,  3940., 0.0);
+{ 42641} G1G502v                     =       GGN400I +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{ 42642} G2G5029 +GNO                =       G1G502w +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 42643} G2G5029 +GNO                =       GGH503P                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 42644} G2G5029 +GHO2               =       GGH503Q                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 42645} G2G5029 +GNO3               =       G1G502w +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 42646} G2G5029 +MEPERO             =  0.340G1G502w + 0.330GGH503R + 0.330GGH503S                 : ARR( 0.565E-13,  -845., 0.0);
+{ 42647} G2G5029 +PERO1              =  0.460G1G502w + 0.270GGH503R + 0.270GGH503S                 : ARR( 0.434E-13,  -900., 0.0);
+{ 42648} G2G5029 +PERO2              =  0.400G1G502w + 0.300GGH503R + 0.300GGH503S                 : ARR( 0.162E-13, -1400., 0.0);
+{ 42649} G2G5029 +PERO3              =  0.460G1G502w + 0.270GGH503R + 0.270GGH503S                 : ARR( 0.488E-13, -1250., 0.0);
+{ 42650} G2G5029 +PERO5              =  0.460G1G502w + 0.270GGH503R + 0.270GGH503S                 : ARR( 0.183E-11,   450., 0.0);
+{ 42651} G2G5029 +PERO6              =  0.300G1G502w + 0.350GGH503R + 0.350GGH503S                 : ARR( 0.168E-13, -1300., 0.0);
+{ 42652} G2G5029 +PERO9              =  0.650G1G502w + 0.350GGH503S                                : ARR( 0.100E-10,     0., 0.0);
+{ 42653} G1G502w                     =       GGH503T +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{ 42654} G1G502w                     =       GHN400L +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 42655} GHH400f +GHO                =       GHN4016 +      GHO                                    : ARR( 0.167E-11,     0., 0.0);
+{ 42656} GHH400f +GHO                =       GHN4012 +      GHO                                    : ARR( 0.326E-11,     0., 0.0);
+{ 42657} GHH400f +GHO                =       G2H401L                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 42658} GHH400f +GHO                =       G2H400i                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 42659} GHH400f+HV               =       G1H401b +      GNO2                                   :  0.100E+01*SUN;
+{ 42660} GHH400f+HV               =       G1H401n +      GHO                                    :  0.100E+01*SUN;
+{ 42661} GHH400f+HV               =       G1H401q +      GNO2                                   :  0.100E+01*SUN;
+{ 42662} GHH400f+HV               =       G1H400m +      GHO                                    :  0.100E+01*SUN;
+{ 42663} G2H401L +GNO                =       G1H401n +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 42664} G2H401L +GNO                =       GHN4015                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 42665} G2H401L +GHO2               =       GHH400f                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 42666} G2H401L +GNO3               =       G1H401n +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 42667} G2H401L +MEPERO             =  0.340G1H401n + 0.330GHN400N + 0.330GHN4016                 : ARR( 0.565E-13,  -845., 0.0);
+{ 42668} G2H401L +PERO1              =  0.460G1H401n + 0.270GHN400N + 0.270GHN4016                 : ARR( 0.434E-13,  -900., 0.0);
+{ 42669} G2H401L +PERO2              =  0.400G1H401n + 0.300GHN400N + 0.300GHN4016                 : ARR( 0.162E-13, -1400., 0.0);
+{ 42670} G2H401L +PERO3              =  0.460G1H401n + 0.270GHN400N + 0.270GHN4016                 : ARR( 0.488E-13, -1250., 0.0);
+{ 42671} G2H401L +PERO5              =  0.460G1H401n + 0.270GHN400N + 0.270GHN4016                 : ARR( 0.183E-11,   450., 0.0);
+{ 42672} G2H401L +PERO6              =  0.300G1H401n + 0.350GHN400N + 0.350GHN4016                 : ARR( 0.168E-13, -1300., 0.0);
+{ 42673} G2H401L +PERO9              =  0.650G1H401n + 0.350GHN4016                                : ARR( 0.100E-10,     0., 0.0);
+{ 42674} G1H401q                     =       GND2000 +      GHD2000 +      GHO                     : ARR( 0.200E+15,  4843., 0.0);
+{ 42675} GHN505l +GHO                =       GHN506n +      GHO2                                   : ARR( 0.406E-11,     0., 0.0);
+{ 42676} GHN505l +GHO                =       GNN503D +      GHO                                    : ARR( 0.832E-11,     0., 0.0);
+{ 42677} GHN505l +GHO                =       G3H502o                                               : ARR( 0.419E-11,     0., 0.0);
+{ 42678} GHN505l +GHO                =       G2N505p                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 42679} GHN505l +GNO3               =       G3H502o +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 42680} GHN505l+HV               =       G1N506h +      GHO                                    :  0.100E+01*SUN;
+{ 42681} GHN505l+HV               =       G1H5099 +      GNO2                                   :  0.100E+01*SUN;
+{ 42682} GHN505l+HV               =       G1H505S +      GNO2                                   :  0.100E+01*SUN;
+{ 42683} GHN505l+HV               =       GHN400L +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 42684} GHN505l+HV               =       GDK3001 +      GND2000 +      GNO2    +      GHO      :  0.100E+01*SUN;
+{ 42685} G3H502o +GHO2               =  0.800GGH503P + 0.200GAH502G + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 42686} G3H502o +GNO                =       GHN400L + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 42687} G3H502o +GNO2               =       GPH502F                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 42688} G3H502o +GNO3               =       GHN400L + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 42689} G3H502o +MEPERO             =  0.685GHN400L + 0.315GAH502G + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42690} G3H502o +PERO1              =  0.800GHN400L + 0.200GAH502G + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42691} G3H502o +PERO2              =  0.750GHN400L + 0.250GAH502G + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42692} G3H502o +PERO3              =  0.800GHN400L + 0.200GAH502G + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42693} G3H502o +PERO5              =  0.650GHN400L + 0.350GAH502G + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42694} G3H502o +PERO6              =  0.650GHN400L + 0.350GAH502G + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42695} G3H502o +PERO9              =       GHN400L +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 42696} G2N505p +GNO                =       G1N506h +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 42697} G2N505p +GNO                =       GNN502y                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 42698} G2N505p +GHO2               =       GHN505l                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 42699} G2N505p +GNO3               =       G1N506h +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 42700} G2N505p +MEPERO             =  0.340G1N506h + 0.330GNN502D + 0.330GNN503D                 : ARR( 0.565E-13,  -845., 0.0);
+{ 42701} G2N505p +PERO1              =  0.460G1N506h + 0.270GNN502D + 0.270GNN503D                 : ARR( 0.434E-13,  -900., 0.0);
+{ 42702} G2N505p +PERO2              =  0.400G1N506h + 0.300GNN502D + 0.300GNN503D                 : ARR( 0.162E-13, -1400., 0.0);
+{ 42703} G2N505p +PERO3              =  0.460G1N506h + 0.270GNN502D + 0.270GNN503D                 : ARR( 0.488E-13, -1250., 0.0);
+{ 42704} G2N505p +PERO5              =  0.460G1N506h + 0.270GNN502D + 0.270GNN503D                 : ARR( 0.183E-11,   450., 0.0);
+{ 42705} G2N505p +PERO6              =  0.300G1N506h + 0.350GNN502D + 0.350GNN503D                 : ARR( 0.168E-13, -1300., 0.0);
+{ 42706} G2N505p +PERO9              =  0.650G1N506h + 0.350GNN503D                                : ARR( 0.100E-10,     0., 0.0);
+{ 42707} GHH5025 +GHO                =       GHH502x +      GHO2                                   : ARR( 0.407E-11,     0., 0.0);
+{ 42708} GHH5025 +GHO                =       GHN505p +      GHO                                    : ARR( 0.834E-11,     0., 0.0);
+{ 42709} GHH5025 +GHO                =       GHN505n +      GHO                                    : ARR( 0.508E-11,     0., 0.0);
+{ 42710} GHH5025 +GHO                =       G3H502p                                               : ARR( 0.210E-10,     0., 0.0);
+{ 42711} GHH5025 +GHO                =       G2H503L                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 42712} GHH5025 +GHO                =       G2H502B                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 42713} GHH5025 +GNO3               =       G3H502p +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 42714} GHH5025+HV               =       G1H509r +      GHO                                    :  0.100E+01*SUN;
+{ 42715} GHH5025+HV               =       G1H50A2 +      GNO2                                   :  0.100E+01*SUN;
+{ 42716} GHH5025+HV               =       G1H505S +      GHO                                    :  0.100E+01*SUN;
+{ 42717} GHH5025+HV               =       GHN400L +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 42718} G3H502p +GHO2               =  0.800GGH503Q + 0.200GAH5035 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 42719} G3H502p +GNO                =       GHN400L +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 42720} G3H502p +GNO2               =       GPH5039                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 42721} G3H502p +GNO3               =       GHN400L +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 42722} G3H502p +MEPERO             =  0.685GHN400L + 0.315GAH5035 + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42723} G3H502p +PERO1              =  0.800GHN400L + 0.200GAH5035 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42724} G3H502p +PERO2              =  0.750GHN400L + 0.250GAH5035 + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42725} G3H502p +PERO3              =  0.800GHN400L + 0.200GAH5035 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42726} G3H502p +PERO5              =  0.650GHN400L + 0.350GAH5035 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42727} G3H502p +PERO6              =  0.650GHN400L + 0.350GAH5035 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42728} G3H502p +PERO9              =       GHN400L +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 42729} G2H503L +GNO                =       G1H509r +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 42730} G2H503L +GNO                =       GHN505h                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 42731} G2H503L +GHO2               =       GHH5025                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 42732} G2H503L +GNO3               =       G1H509r +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 42733} G2H503L +MEPERO             =  0.340G1H509r + 0.330GHN5037 + 0.330GHN505p                 : ARR( 0.565E-13,  -845., 0.0);
+{ 42734} G2H503L +PERO1              =  0.460G1H509r + 0.270GHN5037 + 0.270GHN505p                 : ARR( 0.434E-13,  -900., 0.0);
+{ 42735} G2H503L +PERO2              =  0.400G1H509r + 0.300GHN5037 + 0.300GHN505p                 : ARR( 0.162E-13, -1400., 0.0);
+{ 42736} G2H503L +PERO3              =  0.460G1H509r + 0.270GHN5037 + 0.270GHN505p                 : ARR( 0.488E-13, -1250., 0.0);
+{ 42737} G2H503L +PERO5              =  0.460G1H509r + 0.270GHN5037 + 0.270GHN505p                 : ARR( 0.183E-11,   450., 0.0);
+{ 42738} G2H503L +PERO6              =  0.300G1H509r + 0.350GHN5037 + 0.350GHN505p                 : ARR( 0.168E-13, -1300., 0.0);
+{ 42739} G2H503L +PERO9              =  0.650G1H509r + 0.350GHN505p                                : ARR( 0.100E-10,     0., 0.0);
+{ 42740} G1H50A2                     =       GDO2000 +      GHD3004 +      GHO                     : ARR( 0.200E+15,  3953., 0.0);
+{ 42741} G1H50A2                     =       GHD3003 +      GDD2000 +      GHO                     : ARR( 0.200E+15,  4917., 0.0);
+{ 42742} GHN505m +GHO                =       GHN505o +      GHO2                                   : ARR( 0.423E-11,     0., 0.0);
+{ 42743} GHN505m +GHO                =       GND501A +      GHO                                    : ARR( 0.867E-11,     0., 0.0);
+{ 42744} GHN505m +GHO                =       G3H502q                                               : ARR( 0.219E-10,     0., 0.0);
+{ 42745} GHN505m +GHO                =       G2N505q                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 42746} GHN505m +GNO3               =       G3H502q +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 42747} GHN505m+HV               =       G1N506G +      GHO                                    :  0.100E+01*SUN;
+{ 42748} GHN505m+HV               =       G1H506M +      GNO2                                   :  0.100E+01*SUN;
+{ 42749} GHN505m+HV               =       GHN400L +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 42750} G3H502q +GHO2               =  0.800GGH503R + 0.200GAH5036 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 42751} G3H502q +GNO                =       GHN400L +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 42752} G3H502q +GNO2               =       GPH503A                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 42753} G3H502q +GNO3               =       GHN400L +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 42754} G3H502q +MEPERO             =  0.685GHN400L + 0.315GAH5036 + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42755} G3H502q +PERO1              =  0.800GHN400L + 0.200GAH5036 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42756} G3H502q +PERO2              =  0.750GHN400L + 0.250GAH5036 + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42757} G3H502q +PERO3              =  0.800GHN400L + 0.200GAH5036 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42758} G3H502q +PERO5              =  0.650GHN400L + 0.350GAH5036 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42759} G3H502q +PERO6              =  0.650GHN400L + 0.350GAH5036 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42760} G3H502q +PERO9              =       GHN400L +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 42761} G2N505q +GNO                =       G1N506G +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 42762} G2N505q +GNO                =       GNN502b                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 42763} G2N505q +GHO2               =       GHN505m                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 42764} G2N505q +GNO3               =       G1N506G +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 42765} G2N505q +MEPERO             =  0.340G1N506G + 0.330GND500T + 0.330GND501A                 : ARR( 0.565E-13,  -845., 0.0);
+{ 42766} G2N505q +PERO1              =  0.460G1N506G + 0.270GND500T + 0.270GND501A                 : ARR( 0.434E-13,  -900., 0.0);
+{ 42767} G2N505q +PERO2              =  0.400G1N506G + 0.300GND500T + 0.300GND501A                 : ARR( 0.162E-13, -1400., 0.0);
+{ 42768} G2N505q +PERO3              =  0.460G1N506G + 0.270GND500T + 0.270GND501A                 : ARR( 0.488E-13, -1250., 0.0);
+{ 42769} G2N505q +PERO5              =  0.460G1N506G + 0.270GND500T + 0.270GND501A                 : ARR( 0.183E-11,   450., 0.0);
+{ 42770} G2N505q +PERO6              =  0.300G1N506G + 0.350GND500T + 0.350GND501A                 : ARR( 0.168E-13, -1300., 0.0);
+{ 42771} G2N505q +PERO9              =  0.650G1N506G + 0.350GND501A                                : ARR( 0.100E-10,     0., 0.0);
+{ 42772} GHN505n +GHO                =       GHN506o +      GHO2                                   : ARR( 0.405E-11,     0., 0.0);
+{ 42773} GHN505n +GHO                =       GND501W +      GHO                                    : ARR( 0.830E-11,     0., 0.0);
+{ 42774} GHN505n +GHO                =       G3H400K +      GCO                                    : ARR( 0.128E-10,     0., 0.0);
+{ 42775} GHN505n +GHO                =       G2N505r                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 42776} GHN505n +GNO3               =       G3H400K +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 42777} GHN505n+HV               =       G1N506I +      GHO                                    :  0.100E+01*SUN;
+{ 42778} GHN505n+HV               =       G1H509B +      GNO2                                   :  0.100E+01*SUN;
+{ 42779} GHN505n+HV               =       G3H400K +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 42780} GHN505n+HV               =       GHN400L +      GCO                                    :  0.100E+01*SUN;
+{ 42781} GHN505n+HV               =       GHN3006 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 42782} G2N505r +GNO                =       G1N506I +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 42783} G2N505r +GNO                =       GNN502c                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 42784} G2N505r +GHO2               =       GHN505n                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 42785} G2N505r +GNO3               =       G1N506I +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 42786} G2N505r +MEPERO             =  0.340G1N506I + 0.330GND5012 + 0.330GND501W                 : ARR( 0.565E-13,  -845., 0.0);
+{ 42787} G2N505r +PERO1              =  0.460G1N506I + 0.270GND5012 + 0.270GND501W                 : ARR( 0.434E-13,  -900., 0.0);
+{ 42788} G2N505r +PERO2              =  0.400G1N506I + 0.300GND5012 + 0.300GND501W                 : ARR( 0.162E-13, -1400., 0.0);
+{ 42789} G2N505r +PERO3              =  0.460G1N506I + 0.270GND5012 + 0.270GND501W                 : ARR( 0.488E-13, -1250., 0.0);
+{ 42790} G2N505r +PERO5              =  0.460G1N506I + 0.270GND5012 + 0.270GND501W                 : ARR( 0.183E-11,   450., 0.0);
+{ 42791} G2N505r +PERO6              =  0.300G1N506I + 0.350GND5012 + 0.350GND501W                 : ARR( 0.168E-13, -1300., 0.0);
+{ 42792} G2N505r +PERO9              =  0.650G1N506I + 0.350GND501W                                : ARR( 0.100E-10,     0., 0.0);
+{ 42793} GHN505o +GHO                =       G3H502r                                               : ARR( 0.218E-10,     0., 0.0);
+{ 42794} GHN505o +GHO                =       GND501U +      GHO                                    : ARR( 0.528E-11,     0., 0.0);
+{ 42795} GHN505o +GHO                =       G3H502s                                               : ARR( 0.218E-10,     0., 0.0);
+{ 42796} GHN505o +GHO                =       G2N505s                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 42797} GHN505o +GNO3               =       G3H502r +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 42798} GHN505o +GNO3               =       G3H502s +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 42799} GHN505o+HV               =       GCO     +      GHN400y + 2.000GHO2                    :  0.100E+01*SUN;
+{ 42800} GHN505o+HV               =       G1H506N +      GNO2                                   :  0.100E+01*SUN;
+{ 42801} GHN505o+HV               =       G1N5076 +      GHO                                    :  0.100E+01*SUN;
+{ 42802} GHN505o+HV               =       GND400J +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 42803} G3H502r +GHO2               =  0.800GGH503T + 0.200GAH5037 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 42804} G3H502r +GNO                =       GHN400y +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 42805} G3H502r +GNO2               =       GPH503B                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 42806} G3H502r +GNO3               =       GHN400y +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 42807} G3H502r +MEPERO             =  0.685GHN400y + 0.315GAH5037 + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42808} G3H502r +PERO1              =  0.800GHN400y + 0.200GAH5037 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42809} G3H502r +PERO2              =  0.750GHN400y + 0.250GAH5037 + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42810} G3H502r +PERO3              =  0.800GHN400y + 0.200GAH5037 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42811} G3H502r +PERO5              =  0.650GHN400y + 0.350GAH5037 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42812} G3H502r +PERO6              =  0.650GHN400y + 0.350GAH5037 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42813} G3H502r +PERO9              =       GHN400y +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 42814} G3H502s +GHO2               =  0.800GGH503U + 0.200GAH503z + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 42815} G3H502s +GNO                =       GND400J +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 42816} G3H502s +GNO2               =       GPH5049                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 42817} G3H502s +GNO3               =       GND400J +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 42818} G3H502s +MEPERO             =  0.685GND400J + 0.315GAH503z + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42819} G3H502s +PERO1              =  0.800GND400J + 0.200GAH503z + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42820} G3H502s +PERO2              =  0.750GND400J + 0.250GAH503z + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42821} G3H502s +PERO3              =  0.800GND400J + 0.200GAH503z + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42822} G3H502s +PERO5              =  0.650GND400J + 0.350GAH503z + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42823} G3H502s +PERO6              =  0.650GND400J + 0.350GAH503z + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42824} G3H502s +PERO9              =       GND400J +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 42825} G2N505s +GNO                =       G1N5076 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 42826} G2N505s +GNO                =       GNN503C                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 42827} G2N505s +GHO2               =       GHN505o                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 42828} G2N505s +GNO3               =       G1N5076 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 42829} G2N505s +MEPERO             =  0.340G1N5076 + 0.330GND500s + 0.330GND501U                 : ARR( 0.565E-13,  -845., 0.0);
+{ 42830} G2N505s +PERO1              =  0.460G1N5076 + 0.270GND500s + 0.270GND501U                 : ARR( 0.434E-13,  -900., 0.0);
+{ 42831} G2N505s +PERO2              =  0.400G1N5076 + 0.300GND500s + 0.300GND501U                 : ARR( 0.162E-13, -1400., 0.0);
+{ 42832} G2N505s +PERO3              =  0.460G1N5076 + 0.270GND500s + 0.270GND501U                 : ARR( 0.488E-13, -1250., 0.0);
+{ 42833} G2N505s +PERO5              =  0.460G1N5076 + 0.270GND500s + 0.270GND501U                 : ARR( 0.183E-11,   450., 0.0);
+{ 42834} G2N505s +PERO6              =  0.300G1N5076 + 0.350GND500s + 0.350GND501U                 : ARR( 0.168E-13, -1300., 0.0);
+{ 42835} G2N505s +PERO9              =  0.650G1N5076 + 0.350GND501U                                : ARR( 0.100E-10,     0., 0.0);
+{ 42836} GHN505p +GHO                =       GHN506o +      GHO2                                   : ARR( 0.248E-11,     0., 0.0);
+{ 42837} GHN505p +GHO                =       GND501W +      GHO                                    : ARR( 0.508E-11,     0., 0.0);
+{ 42838} GHN505p +GHO                =       G3H502t                                               : ARR( 0.210E-10,     0., 0.0);
+{ 42839} GHN505p +GHO                =       G2N505t                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 42840} GHN505p +GNO3               =       G3H502t +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 42841} GHN505p+HV               =       G3K2001 +      GHD3004 +      GNO2                    :  0.100E+01*SUN;
+{ 42842} GHN505p+HV               =       G1H50A3 +      GNO2                                   :  0.100E+01*SUN;
+{ 42843} GHN505p+HV               =       G1N5077 +      GHO                                    :  0.100E+01*SUN;
+{ 42844} GHN505p+HV               =       GND400L +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 42845} G3H502t +GHO2               =  0.800GGH503W + 0.200GAH5041 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 42846} G3H502t +GNO                =       GND400L +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 42847} G3H502t +GNO2               =       GPH504A                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 42848} G3H502t +GNO3               =       GND400L +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 42849} G3H502t +MEPERO             =  0.685GND400L + 0.315GAH5041 + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42850} G3H502t +PERO1              =  0.800GND400L + 0.200GAH5041 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42851} G3H502t +PERO2              =  0.750GND400L + 0.250GAH5041 + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42852} G3H502t +PERO3              =  0.800GND400L + 0.200GAH5041 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42853} G3H502t +PERO5              =  0.650GND400L + 0.350GAH5041 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42854} G3H502t +PERO6              =  0.650GND400L + 0.350GAH5041 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42855} G3H502t +PERO9              =       GND400L +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 42856} G2N505t +GNO                =       G1N5077 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 42857} G2N505t +GNO                =       GNN503D                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 42858} G2N505t +GHO2               =       GHN505p                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 42859} G2N505t +GNO3               =       G1N5077 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 42860} G2N505t +MEPERO             =  0.340G1N5077 + 0.330GND501A + 0.330GND501W                 : ARR( 0.565E-13,  -845., 0.0);
+{ 42861} G2N505t +PERO1              =  0.460G1N5077 + 0.270GND501A + 0.270GND501W                 : ARR( 0.434E-13,  -900., 0.0);
+{ 42862} G2N505t +PERO2              =  0.400G1N5077 + 0.300GND501A + 0.300GND501W                 : ARR( 0.162E-13, -1400., 0.0);
+{ 42863} G2N505t +PERO3              =  0.460G1N5077 + 0.270GND501A + 0.270GND501W                 : ARR( 0.488E-13, -1250., 0.0);
+{ 42864} G2N505t +PERO5              =  0.460G1N5077 + 0.270GND501A + 0.270GND501W                 : ARR( 0.183E-11,   450., 0.0);
+{ 42865} G2N505t +PERO6              =  0.300G1N5077 + 0.350GND501A + 0.350GND501W                 : ARR( 0.168E-13, -1300., 0.0);
+{ 42866} G2N505t +PERO9              =  0.650G1N5077 + 0.350GND501W                                : ARR( 0.100E-10,     0., 0.0);
+{ 42867} G1H50A3                     =       G3K2001 +      GHD3004                                : ARR( 0.200E+15,  2179., 0.0);
+{ 42868} GGH501A +GHO                =       GGH503U +      GHO2                                   : ARR( 0.411E-11,     0., 0.0);
+{ 42869} GGH501A +GHO                =       GGH503W +      GHO2                                   : ARR( 0.211E-11,     0., 0.0);
+{ 42870} GGH501A +GHO                =       GGN501u +      GHO                                    : ARR( 0.514E-11,     0., 0.0);
+{ 42871} GGH501A +GHO                =       G2G502A                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 42872} GGH501A +GHO                =       G3H500p                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 42873} GGH501A+HV               =       G1G502x +      GNO2                                   :  0.100E+01*SUN;
+{ 42874} GGH501A+HV               =       G1G502u +      GHO                                    :  0.100E+01*SUN;
+{ 42875} GGH501A+HV               =       GND400A +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 42876} G2G502A +GNO                =       G1G502u +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 42877} G2G502A +GNO                =       GGN501D                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 42878} G2G502A +GHO2               =       GGH501A                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 42879} G2G502A +GNO3               =       G1G502u +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 42880} G2G502A +MEPERO             =  0.340G1G502u + 0.330GGN500i + 0.330GGN501u                 : ARR( 0.565E-13,  -845., 0.0);
+{ 42881} G2G502A +PERO1              =  0.460G1G502u + 0.270GGN500i + 0.270GGN501u                 : ARR( 0.434E-13,  -900., 0.0);
+{ 42882} G2G502A +PERO2              =  0.400G1G502u + 0.300GGN500i + 0.300GGN501u                 : ARR( 0.162E-13, -1400., 0.0);
+{ 42883} G2G502A +PERO3              =  0.460G1G502u + 0.270GGN500i + 0.270GGN501u                 : ARR( 0.488E-13, -1250., 0.0);
+{ 42884} G2G502A +PERO5              =  0.460G1G502u + 0.270GGN500i + 0.270GGN501u                 : ARR( 0.183E-11,   450., 0.0);
+{ 42885} G2G502A +PERO6              =  0.300G1G502u + 0.350GGN500i + 0.350GGN501u                 : ARR( 0.168E-13, -1300., 0.0);
+{ 42886} G2G502A +PERO9              =  0.650G1G502u + 0.350GGN501u                                : ARR( 0.100E-10,     0., 0.0);
+{ 42887} G1G502x                     =       GDO2000 +      GGH3007 +      GHO2                    : ARR( 0.200E+15,  2745., 0.0);
+{ 42888} GAH501R +GHO                =       GAH503z +      GHO2                                   : ARR( 0.430E-11,     0., 0.0);
+{ 42889} GAH501R +GHO                =       GAH5041 +      GHO2                                   : ARR( 0.220E-11,     0., 0.0);
+{ 42890} GAH501R +GHO                =       GAN501o +      GHO                                    : ARR( 0.397E-11,     0., 0.0);
+{ 42891} GAH501R +GHO                =       G2A503L                                               : ARR( 0.203E-11,  -190., 0.0);
+{ 42892} GAH501R+HV               =       G1A504H +      GNO2                                   :  0.100E+01*SUN;
+{ 42893} GAH501R+HV               =       G1A504G +      GHO                                    :  0.100E+01*SUN;
+{ 42894} G2A503L +GNO                =       G1A504G +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 42895} G2A503L +GNO                =       GAN501M                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 42896} G2A503L +GHO2               =       GAH501R                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 42897} G2A503L +GNO3               =       G1A504G +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 42898} G2A503L +MEPERO             =  0.340G1A504G + 0.330GAN500p + 0.330GAN501o                 : ARR( 0.565E-13,  -845., 0.0);
+{ 42899} G2A503L +PERO1              =  0.460G1A504G + 0.270GAN500p + 0.270GAN501o                 : ARR( 0.434E-13,  -900., 0.0);
+{ 42900} G2A503L +PERO2              =  0.400G1A504G + 0.300GAN500p + 0.300GAN501o                 : ARR( 0.162E-13, -1400., 0.0);
+{ 42901} G2A503L +PERO3              =  0.460G1A504G + 0.270GAN500p + 0.270GAN501o                 : ARR( 0.488E-13, -1250., 0.0);
+{ 42902} G2A503L +PERO5              =  0.460G1A504G + 0.270GAN500p + 0.270GAN501o                 : ARR( 0.183E-11,   450., 0.0);
+{ 42903} G2A503L +PERO6              =  0.300G1A504G + 0.350GAN500p + 0.350GAN501o                 : ARR( 0.168E-13, -1300., 0.0);
+{ 42904} G2A503L +PERO9              =  0.650G1A504G + 0.350GAN501o                                : ARR( 0.100E-10,     0., 0.0);
+{ 42905} G1A504H                     =       GDO2000 +      GAH3007 +      GHO2                    : ARR( 0.200E+15,  2745., 0.0);
+{ 42906} GPH501S                     =       G3H500p +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 42907} GPH501S +GHO                =       GPH5049 +      GHO2                                   : ARR( 0.413E-11,     0., 0.0);
+{ 42908} GPH501S +GHO                =       GPH504A +      GHO2                                   : ARR( 0.212E-11,     0., 0.0);
+{ 42909} GPH501S +GHO                =       GPN500u +      GHO                                    : ARR( 0.516E-11,     0., 0.0);
+{ 42910} GPH501S +GHO                =       G2P503T                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 42911} GPH501S+HV               =       G1P504S +      GNO2                                   :  0.100E+01*SUN;
+{ 42912} GPH501S+HV               =       G1P504R +      GHO                                    :  0.100E+01*SUN;
+{ 42913} GPH501S+HV               =       G3H500p +      GNO2                                   :  0.100E+01*SUN;
+{ 42914} G2P503T +GNO                =       G1P504R +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 42915} G2P503T +GNO                =       GPN501Q                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 42916} G2P503T +GHO2               =       GPH501S                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 42917} G2P503T +GNO3               =       G1P504R +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 42918} G2P503T +MEPERO             =  0.340G1P504R + 0.330GPN500s + 0.330GPN500u                 : ARR( 0.565E-13,  -845., 0.0);
+{ 42919} G2P503T +PERO1              =  0.460G1P504R + 0.270GPN500s + 0.270GPN500u                 : ARR( 0.434E-13,  -900., 0.0);
+{ 42920} G2P503T +PERO2              =  0.400G1P504R + 0.300GPN500s + 0.300GPN500u                 : ARR( 0.162E-13, -1400., 0.0);
+{ 42921} G2P503T +PERO3              =  0.460G1P504R + 0.270GPN500s + 0.270GPN500u                 : ARR( 0.488E-13, -1250., 0.0);
+{ 42922} G2P503T +PERO5              =  0.460G1P504R + 0.270GPN500s + 0.270GPN500u                 : ARR( 0.183E-11,   450., 0.0);
+{ 42923} G2P503T +PERO6              =  0.300G1P504R + 0.350GPN500s + 0.350GPN500u                 : ARR( 0.168E-13, -1300., 0.0);
+{ 42924} G2P503T +PERO9              =  0.650G1P504R + 0.350GPN500u                                : ARR( 0.100E-10,     0., 0.0);
+{ 42925} G1P504S                     =       GDO2000 +      GPH3007 +      GHO2                    : ARR( 0.200E+15,  2745., 0.0);
+{ 42926} GGH400T +GHO                =       GGH400o +      GHO2                                   : ARR( 0.406E-11,     0., 0.0);
+{ 42927} GGH400T +GHO                =       GGN400S +      GHO                                    : ARR( 0.833E-11,     0., 0.0);
+{ 42928} GGH400T +GHO                =       G2G400g                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 42929} GGH400T +GHO                =       G3H400K                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 42930} GGH400T+HV               =       G1G400Z +      GHO                                    :  0.100E+01*SUN;
+{ 42931} GGH400T+HV               =       G1G400w +      GNO2                                   :  0.100E+01*SUN;
+{ 42932} GGH400T+HV               =       GHD3003 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 42933} G2G400g +GNO                =       G1G400Z +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 42934} G2G400g +GNO                =       GGN400H                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 42935} G2G400g +GHO2               =       GGH400T                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 42936} G2G400g +GNO3               =       G1G400Z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 42937} G2G400g +MEPERO             =  0.340G1G400Z + 0.330GGN400L + 0.330GGN400S                 : ARR( 0.565E-13,  -845., 0.0);
+{ 42938} G2G400g +PERO1              =  0.460G1G400Z + 0.270GGN400L + 0.270GGN400S                 : ARR( 0.434E-13,  -900., 0.0);
+{ 42939} G2G400g +PERO2              =  0.400G1G400Z + 0.300GGN400L + 0.300GGN400S                 : ARR( 0.162E-13, -1400., 0.0);
+{ 42940} G2G400g +PERO3              =  0.460G1G400Z + 0.270GGN400L + 0.270GGN400S                 : ARR( 0.488E-13, -1250., 0.0);
+{ 42941} G2G400g +PERO5              =  0.460G1G400Z + 0.270GGN400L + 0.270GGN400S                 : ARR( 0.183E-11,   450., 0.0);
+{ 42942} G2G400g +PERO6              =  0.300G1G400Z + 0.350GGN400L + 0.350GGN400S                 : ARR( 0.168E-13, -1300., 0.0);
+{ 42943} G2G400g +PERO9              =  0.650G1G400Z + 0.350GGN400S                                : ARR( 0.100E-10,     0., 0.0);
+{ 42944} G1G400w                     =       GHD3003 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 42945} GAH400U +GHO                =       GAH400r +      GHO2                                   : ARR( 0.420E-11,     0., 0.0);
+{ 42946} GAH400U +GHO                =       GAN400X +      GHO                                    : ARR( 0.861E-11,     0., 0.0);
+{ 42947} GAH400U +GHO                =       G2A400Q                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 42948} GAH400U+HV               =       G1A400Y +      GHO                                    :  0.100E+01*SUN;
+{ 42949} GAH400U+HV               =       G1A4013 +      GNO2                                   :  0.100E+01*SUN;
+{ 42950} G1A4013                     =       GHD3003 +      GCO     +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 42951} GPH400W                     =       G3H400K +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 42952} GPH400W +GHO                =       GPH400s +      GHO2                                   : ARR( 0.407E-11,     0., 0.0);
+{ 42953} GPH400W +GHO                =       GPN400Y +      GHO                                    : ARR( 0.835E-11,     0., 0.0);
+{ 42954} GPH400W +GHO                =       G2P400S                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 42955} GPH400W+HV               =       G1P400Z +      GHO                                    :  0.100E+01*SUN;
+{ 42956} GPH400W+HV               =       G1P4018 +      GNO2                                   :  0.100E+01*SUN;
+{ 42957} GPH400W+HV               =       G3H400K +      GNO2                                   :  0.100E+01*SUN;
+{ 42958} G1P4018                     =       GHD3003 +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 42959} GHN505q +GHO                =       GNN5038 +      GHO                                    : ARR( 0.507E-11,     0., 0.0);
+{ 42960} GHN505q +GHO                =       G3H502u                                               : ARR( 0.210E-10,     0., 0.0);
+{ 42961} GHN505q +GHO                =       G2N505u                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 42962} GHN505q +GNO3               =       G3H502u +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 42963} GHN505q+HV               =       G1H50A4 +      GNO2                                   :  0.100E+01*SUN;
+{ 42964} GHN505q+HV               =       G3N2000 +      GHD3004 +      GNO2                    :  0.100E+01*SUN;
+{ 42965} GHN505q+HV               =       G1H50A5 +      GNO2                                   :  0.100E+01*SUN;
+{ 42966} GHN505q+HV               =       G1N506g +      GHO                                    :  0.100E+01*SUN;
+{ 42967} GHN505q+HV               =       GNN400G +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 42968} G3H502u +GHO2               =  0.800GGH503X + 0.200GAH5038 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 42969} G3H502u +GNO                =       GNN400G +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 42970} G3H502u +GNO2               =       GPH503C                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 42971} G3H502u +GNO3               =       GNN400G +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 42972} G3H502u +MEPERO             =  0.685GNN400G + 0.315GAH5038 + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42973} G3H502u +PERO1              =  0.800GNN400G + 0.200GAH5038 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42974} G3H502u +PERO2              =  0.750GNN400G + 0.250GAH5038 + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42975} G3H502u +PERO3              =  0.800GNN400G + 0.200GAH5038 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42976} G3H502u +PERO5              =  0.650GNN400G + 0.350GAH5038 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42977} G3H502u +PERO6              =  0.650GNN400G + 0.350GAH5038 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 42978} G3H502u +PERO9              =       GNN400G +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 42979} G2N505u +GNO                =       G1N506g +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 42980} G2N505u +GNO                =       GNN502x                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 42981} G2N505u +GHO2               =       GHN505q                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 42982} G2N505u +GNO3               =       G1N506g +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 42983} G2N505u +MEPERO             =  0.340G1N506g + 0.330GNN503B + 0.330GNN5038                 : ARR( 0.565E-13,  -845., 0.0);
+{ 42984} G2N505u +PERO1              =  0.460G1N506g + 0.270GNN503B + 0.270GNN5038                 : ARR( 0.434E-13,  -900., 0.0);
+{ 42985} G2N505u +PERO2              =  0.400G1N506g + 0.300GNN503B + 0.300GNN5038                 : ARR( 0.162E-13, -1400., 0.0);
+{ 42986} G2N505u +PERO3              =  0.460G1N506g + 0.270GNN503B + 0.270GNN5038                 : ARR( 0.488E-13, -1250., 0.0);
+{ 42987} G2N505u +PERO5              =  0.460G1N506g + 0.270GNN503B + 0.270GNN5038                 : ARR( 0.183E-11,   450., 0.0);
+{ 42988} G2N505u +PERO6              =  0.300G1N506g + 0.350GNN503B + 0.350GNN5038                 : ARR( 0.168E-13, -1300., 0.0);
+{ 42989} G2N505u +PERO9              =  0.650G1N506g + 0.350GNN5038                                : ARR( 0.100E-10,     0., 0.0);
+{ 42990} G1H50A4                     =       G3H400g +      GCH2O                                  : ARR( 0.200E+15,  3640., 0.0);
+{ 42991} G1H50A5                     =       G3N2000 +      GHD3004                                : ARR( 0.200E+15,  2059., 0.0);
+{ 42992} GGN400S +GHO                =       GGN400Z +      GHO2                                   : ARR( 0.253E-11,     0., 0.0);
+{ 42993} GGN400S +GHO                =       G3N400Q                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 42994} GGN400S+HV               =       G3K2001 +      GGD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 42995} GGN400S+HV               =       G1G400T +      GNO2                                   :  0.100E+01*SUN;
+{ 42996} GGN400S+HV               =       GDK3001 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 42997} GAN400X +GHO                =       GAN400b +      GHO2                                   : ARR( 0.259E-11,     0., 0.0);
+{ 42998} GAN400X +GHO                =       GDK3001 +      GNO2    +      GCO2                    : ARR( 0.550E-12,     0., 0.0);
+{ 42999} GAN400X+HV               =       G3K2001 +      GAD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 43000} GAN400X+HV               =       G1A400b +      GNO2                                   :  0.100E+01*SUN;
+{ 43001} GPN400Y                     =       G3N400Q +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 43002} GPN400Y +GHO                =       GPN400b +      GHO2                                   : ARR( 0.249E-11,     0., 0.0);
+{ 43003} GPN400Y +GHO                =       G1P400m                                               : ARR( 0.214E-17,    85., 2.0);
+{ 43004} GPN400Y+HV               =       G3K2001 +      GPD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 43005} GPN400Y+HV               =       G1P400c +      GNO2                                   :  0.100E+01*SUN;
+{ 43006} GPN400Y+HV               =       G3N400Q +      GNO2                                   :  0.100E+01*SUN;
+{ 43007} GGN501E +GHO                =       GGN502Q +      GHO2                                   : ARR( 0.447E-12,     0., 0.0);
+{ 43008} GGN501E +GHO                =       GGN501U +      GHO2                                   : ARR( 0.136E-11,     0., 0.0);
+{ 43009} GGN501E +GHO                =       G3N500x                                               : ARR( 0.206E-11,  -190., 0.0);
+{ 43010} GGN501E+HV               =       G1G5023 +      GNO2                                   :  0.100E+01*SUN;
+{ 43011} GGN501E+HV               =       G1G501E +      GNO2                                   :  0.100E+01*SUN;
+{ 43012} GGN501E+HV               =       GNN400F +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 43013} GAN501N +GHO                =       GAN501O +      GHO2                                   : ARR( 0.949E-12,     0., 0.0);
+{ 43014} GAN501N +GHO                =       GAN501R +      GNO2                                   : ARR( 0.120E-12,     0., 0.0);
+{ 43015} GAN501N +GHO                =       GAN502H +      GHO2                                   : ARR( 0.421E-12,     0., 0.0);
+{ 43016} GAN501N +GHO                =       G1A501K                                               : ARR( 0.214E-17,    85., 2.0);
+{ 43017} GAN501N +GHO                =       G1A504I                                               : ARR( 0.214E-17,    85., 2.0);
+{ 43018} GAN501N +GHO                =       GNN400F +      GHO2    +      GCO2                    : ARR( 0.531E-12,     0., 0.0);
+{ 43019} GAN501N+HV               =       G1A501M +      GNO2                                   :  0.100E+01*SUN;
+{ 43020} GAN501N+HV               =       G1A502c +      GNO2                                   :  0.100E+01*SUN;
+{ 43021} G1A504I                     =       GAD3001 +      GND2000 +      GNO2                    : ARR( 0.200E+15,  6365., 0.0);
+{ 43022} GAH501S +GHO                =       GAN501O +      GHO                                    : ARR( 0.406E-11,     0., 0.0);
+{ 43023} GAH501S +GHO                =       G2A501A                                               : ARR( 0.207E-11,  -190., 0.0);
+{ 43024} GAH501S +GHO                =       GNN400F +      GHO     +      GCO2                    : ARR( 0.568E-12,     0., 0.0);
+{ 43025} GAH501S+HV               =       G1A501K +      GHO                                    :  0.100E+01*SUN;
+{ 43026} GAH501S+HV               =       G1A501R +      GNO2                                   :  0.100E+01*SUN;
+{ 43027} GAH501S+HV               =       G1A504J +      GNO2                                   :  0.100E+01*SUN;
+{ 43028} G1A504J                     =       GAN501o +      GHO                                    : ARR( 0.800E+11,  2753., 0.0);
+{ 43029} G1A504J                     =       GAH400l +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 43030} GAN501O +GHO                =       GAN501T +      GNO2                                   : ARR( 0.747E-13,     0., 0.0);
+{ 43031} GAN501O +GHO                =       GAN502E +      GHO2                                   : ARR( 0.429E-12,     0., 0.0);
+{ 43032} GAN501O +GHO                =       G1A502k                                               : ARR( 0.218E-17,    85., 2.0);
+{ 43033} GAN501O +GHO                =       G3N400K +      GCO2                                   : ARR( 0.541E-12,     0., 0.0);
+{ 43034} GAN501O+HV               =       GNN400F +      GCO2                                   :  0.100E+01*SUN;
+{ 43035} GAN501O+HV               =       G1A501T +      GNO2                                   :  0.100E+01*SUN;
+{ 43036} GAN501O+HV               =       G1A504K +      GNO2                                   :  0.100E+01*SUN;
+{ 43037} G1A504K                     =       GAN400Z +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4427., 0.0);
+{ 43038} GPH501T                     =       G3H501x +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 43039} GPH501T +GHO                =       GPN501R +      GHO                                    : ARR( 0.544E-11,     0., 0.0);
+{ 43040} GPH501T +GHO                =       G2P501C                                               : ARR( 0.206E-11,  -190., 0.0);
+{ 43041} GPH501T+HV               =       G1P504T +      GNO2                                   :  0.100E+01*SUN;
+{ 43042} GPH501T+HV               =       G1P504U +      GNO2                                   :  0.100E+01*SUN;
+{ 43043} GPH501T+HV               =       G1P501M +      GHO                                    :  0.100E+01*SUN;
+{ 43044} GPH501T+HV               =       G3H501x +      GNO2                                   :  0.100E+01*SUN;
+{ 43045} G1P504T                     =       GPN500u +      GHO                                    : ARR( 0.800E+11,  2619., 0.0);
+{ 43046} G1P504T                     =       GPH400m +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 43047} G1P504U                     =       GND2000 +      GPH3007 +      GHO2                    : ARR( 0.200E+15,  2745., 0.0);
+{ 43048} GPN501R                     =       G3N502C +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 43049} GPN501R +GHO                =       GPN502H +      GNO2                                   : ARR( 0.460E-13,     0., 0.0);
+{ 43050} GPN501R +GHO                =       GPN502P +      GHO2                                   : ARR( 0.412E-12,     0., 0.0);
+{ 43051} GPN501R +GHO                =       GPN501Y +      GNO2                                   : ARR( 0.718E-13,     0., 0.0);
+{ 43052} GPN501R +GHO                =       G1P5035                                               : ARR( 0.210E-17,    85., 2.0);
+{ 43053} GPN501R+HV               =       G1P502p +      GNO2                                   :  0.100E+01*SUN;
+{ 43054} GPN501R+HV               =       G1P501Y +      GNO2                                   :  0.100E+01*SUN;
+{ 43055} GPN501R+HV               =       G3N400K +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 43056} G3N502C +GHO2               =  0.800GGN501U + 0.200GAN501O + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 43057} G3N502C +GNO                =       G3N400K +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 43058} G3N502C +GNO2               =       GPN501R                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 43059} G3N502C +GNO3               =       G3N400K +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 43060} G3N502C +MEPERO             =  0.685G3N400K + 0.315GAN501O + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 43061} G3N502C +PERO1              =  0.800G3N400K + 0.200GAN501O + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 43062} G3N502C +PERO2              =  0.750G3N400K + 0.250GAN501O + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 43063} G3N502C +PERO3              =  0.800G3N400K + 0.200GAN501O + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 43064} G3N502C +PERO5              =  0.650G3N400K + 0.350GAN501O + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 43065} G3N502C +PERO6              =  0.650G3N400K + 0.350GAN501O + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 43066} G3N502C +PERO9              =       G3N400K +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 43067} GHH5026 +GHO                =       GHN504f +      GHO                                    : ARR( 0.288E-10,     0., 0.0);
+{ 43068} GHH5026 +GHO                =       GHN504g +      GHO                                    : ARR( 0.277E-10,     0., 0.0);
+{ 43069} GHH5026 +GHO                =       G3H502v                                               : ARR( 0.229E-10,     0., 0.0);
+{ 43070} GHH5026 +GNO3               =       G3H502v +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 43071} GHH5026+HV               =       G1H50A6 +      GNO2                                   :  0.100E+01*SUN;
+{ 43072} GHH5026+HV               =       G1H507t +      GHO                                    :  0.100E+01*SUN;
+{ 43073} GHH5026+HV               =       G1H509S +      GHO                                    :  0.100E+01*SUN;
+{ 43074} GHH5026+HV               =       GHN400O +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 43075} G3H502v +GHO2               =  0.800GGH502H + 0.200GAH5042 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 43076} G3H502v +GNO                =       GHN400O +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 43077} G3H502v +GNO2               =       GPH502f                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 43078} G3H502v +GNO3               =       GHN400O +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 43079} G3H502v +MEPERO             =  0.685GHN400O + 0.315GAH5042 + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43080} G3H502v +PERO1              =  0.800GHN400O + 0.200GAH5042 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43081} G3H502v +PERO2              =  0.750GHN400O + 0.250GAH5042 + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43082} G3H502v +PERO3              =  0.800GHN400O + 0.200GAH5042 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43083} G3H502v +PERO5              =  0.650GHN400O + 0.350GAH5042 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43084} G3H502v +PERO6              =  0.650GHN400O + 0.350GAH5042 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43085} G3H502v +PERO9              =       GHN400O +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 43086} G1H50A6                     =       GD02000 +      GHD3004 +      GHO                     : ARR( 0.200E+15,  4573., 0.0);
+{ 43087} GHN505r +GHO                =       GND5013 +      GHO                                    : ARR( 0.263E-10,     0., 0.0);
+{ 43088} GHN505r +GHO                =       GHN504g +      GHO2                                   : ARR( 0.631E-11,     0., 0.0);
+{ 43089} GHN505r +GHO                =       G3H502w                                               : ARR( 0.209E-10,     0., 0.0);
+{ 43090} GHN505r +GHO                =       G2N505v                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 43091} GHN505r +GNO3               =       G3H502w +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 43092} GHN505r+HV               =       G1H50A7 +      GNO2                                   :  0.100E+01*SUN;
+{ 43093} GHN505r+HV               =       G1N506C +      GHO                                    :  0.100E+01*SUN;
+{ 43094} GHN505r+HV               =       GHN400O +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 43095} G3H502w +GHO2               =  0.800GGH502I + 0.200GAH5043 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 43096} G3H502w +GNO                =       GHN400O +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 43097} G3H502w +GNO2               =       GPH502g                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 43098} G3H502w +GNO3               =       GHN400O +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 43099} G3H502w +MEPERO             =  0.685GHN400O + 0.315GAH5043 + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43100} G3H502w +PERO1              =  0.800GHN400O + 0.200GAH5043 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43101} G3H502w +PERO2              =  0.750GHN400O + 0.250GAH5043 + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43102} G3H502w +PERO3              =  0.800GHN400O + 0.200GAH5043 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43103} G3H502w +PERO5              =  0.650GHN400O + 0.350GAH5043 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43104} G3H502w +PERO6              =  0.650GHN400O + 0.350GAH5043 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43105} G3H502w +PERO9              =       GHN400O +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 43106} G2N505v +GNO                =       G1N506C +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 43107} G2N505v +GNO                =       GNN502Z                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 43108} G2N505v +GHO2               =       GHN505r                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 43109} G2N505v +GNO3               =       G1N506C +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 43110} G2N505v +MEPERO             =  0.340G1N506C + 0.330GND501M + 0.330GND5013                 : ARR( 0.565E-13,  -845., 0.0);
+{ 43111} G2N505v +PERO1              =  0.460G1N506C + 0.270GND501M + 0.270GND5013                 : ARR( 0.434E-13,  -900., 0.0);
+{ 43112} G2N505v +PERO2              =  0.400G1N506C + 0.300GND501M + 0.300GND5013                 : ARR( 0.162E-13, -1400., 0.0);
+{ 43113} G2N505v +PERO3              =  0.460G1N506C + 0.270GND501M + 0.270GND5013                 : ARR( 0.488E-13, -1250., 0.0);
+{ 43114} G2N505v +PERO5              =  0.460G1N506C + 0.270GND501M + 0.270GND5013                 : ARR( 0.183E-11,   450., 0.0);
+{ 43115} G2N505v +PERO6              =  0.300G1N506C + 0.350GND501M + 0.350GND5013                 : ARR( 0.168E-13, -1300., 0.0);
+{ 43116} G2N505v +PERO9              =  0.650G1N506C + 0.350GND5013                                : ARR( 0.100E-10,     0., 0.0);
+{ 43117} G1H50A7                     =       GD02000 +      GDD3001 +      GHO                     : ARR( 0.200E+15,  4573., 0.0);
+{ 43118} GHN505s +GHO                =       GHN504f +      GHO2                                   : ARR( 0.657E-11,     0., 0.0);
+{ 43119} GHN505s +GHO                =       GND500y +      GHO                                    : ARR( 0.253E-10,     0., 0.0);
+{ 43120} GHN505s +GHO                =       G3H502x                                               : ARR( 0.209E-10,     0., 0.0);
+{ 43121} GHN505s +GHO                =       G2N505w                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 43122} GHN505s +GNO3               =       G3H502x +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 43123} GHN505s+HV               =       G1H50A8 +      GNO2                                   :  0.100E+01*SUN;
+{ 43124} GHN505s+HV               =       G1N5065 +      GHO                                    :  0.100E+01*SUN;
+{ 43125} GHN505s+HV               =       GND400H +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 43126} G3H502x +GHO2               =  0.800GGH501z + 0.200GAH502J + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 43127} G3H502x +GNO                =       GND400H +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 43128} G3H502x +GNO2               =       GPH502I                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 43129} G3H502x +GNO3               =       GND400H +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 43130} G3H502x +MEPERO             =  0.685GND400H + 0.315GAH502J + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43131} G3H502x +PERO1              =  0.800GND400H + 0.200GAH502J + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43132} G3H502x +PERO2              =  0.750GND400H + 0.250GAH502J + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43133} G3H502x +PERO3              =  0.800GND400H + 0.200GAH502J + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43134} G3H502x +PERO5              =  0.650GND400H + 0.350GAH502J + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43135} G3H502x +PERO6              =  0.650GND400H + 0.350GAH502J + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43136} G3H502x +PERO9              =       GND400H +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 43137} G2N505w +GNO                =       G1N5065 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 43138} G2N505w +GNO                =       GNN502U                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 43139} G2N505w +GHO2               =       GHN505s                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 43140} G2N505w +GNO3               =       G1N5065 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 43141} G2N505w +MEPERO             =  0.340G1N5065 + 0.330GND501M + 0.330GND500y                 : ARR( 0.565E-13,  -845., 0.0);
+{ 43142} G2N505w +PERO1              =  0.460G1N5065 + 0.270GND501M + 0.270GND500y                 : ARR( 0.434E-13,  -900., 0.0);
+{ 43143} G2N505w +PERO2              =  0.400G1N5065 + 0.300GND501M + 0.300GND500y                 : ARR( 0.162E-13, -1400., 0.0);
+{ 43144} G2N505w +PERO3              =  0.460G1N5065 + 0.270GND501M + 0.270GND500y                 : ARR( 0.488E-13, -1250., 0.0);
+{ 43145} G2N505w +PERO5              =  0.460G1N5065 + 0.270GND501M + 0.270GND500y                 : ARR( 0.183E-11,   450., 0.0);
+{ 43146} G2N505w +PERO6              =  0.300G1N5065 + 0.350GND501M + 0.350GND500y                 : ARR( 0.168E-13, -1300., 0.0);
+{ 43147} G2N505w +PERO9              =  0.650G1N5065 + 0.350GND500y                                : ARR( 0.100E-10,     0., 0.0);
+{ 43148} G1H50A8                     =       GD02000 +      GHD3004 +      GHO2                    : ARR( 0.200E+15,  3365., 0.0);
+{ 43149} GND501M +GHO                =       GND5013 +      GHO2                                   : ARR( 0.661E-11,     0., 0.0);
+{ 43150} GND501M +GHO                =       GND500y +      GHO2                                   : ARR( 0.636E-11,     0., 0.0);
+{ 43151} GND501M +GHO                =       G3N502D                                               : ARR( 0.210E-10,     0., 0.0);
+{ 43152} GND501M +GNO3               =       G3N502D +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 43153} GND501M+HV               =       G1D501P +      GNO2                                   :  0.100E+01*SUN;
+{ 43154} GND501M+HV               =       GND400H +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 43155} G3N502D +GHO2               =  0.800GGN501b + 0.200GAN501r + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 43156} G3N502D +GNO                =       GND400H +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 43157} G3N502D +GNO2               =       GPN501u                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 43158} G3N502D +GNO3               =       GND400H +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 43159} G3N502D +MEPERO             =  0.685GND400H + 0.315GAN501r + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43160} G3N502D +PERO1              =  0.800GND400H + 0.200GAN501r + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43161} G3N502D +PERO2              =  0.750GND400H + 0.250GAN501r + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43162} G3N502D +PERO3              =  0.800GND400H + 0.200GAN501r + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43163} G3N502D +PERO5              =  0.650GND400H + 0.350GAN501r + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43164} G3N502D +PERO6              =  0.650GND400H + 0.350GAN501r + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43165} G3N502D +PERO9              =       GND400H +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 43166} G1D501P                     =       GD02000 +      GDD3001 +      GHO2                    : ARR( 0.200E+15,  3365., 0.0);
+{ 43167} GHN505t +GHO                =       GND501G +      GHO                                    : ARR( 0.518E-10,     0., 0.0);
+{ 43168} GHN505t +GHO                =       G3H502y                                               : ARR( 0.422E-11,     0., 0.0);
+{ 43169} GHN505t +GHO                =       G2N504e                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 43170} GHN505t +GNO3               =       G3H502y +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 43171} GHN505t+HV               =       G1N504m +      GHO                                    :  0.100E+01*SUN;
+{ 43172} GHN505t+HV               =       G3H3000 +      GDD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 43173} GHN505t+HV               =       G1H50A9 +      GNO2                                   :  0.100E+01*SUN;
+{ 43174} GHN505t+HV               =       GHD400D +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 43175} G3H502y +GHO2               =  0.800GGH502A + 0.200GAH502O + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 43176} G3H502y +GNO                =       GHD400D + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 43177} G3H502y +GNO2               =       GPH502W                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 43178} G3H502y +GNO3               =       GHD400D + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 43179} G3H502y +MEPERO             =  0.685GHD400D + 0.315GAH502O + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43180} G3H502y +PERO1              =  0.800GHD400D + 0.200GAH502O + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43181} G3H502y +PERO2              =  0.750GHD400D + 0.250GAH502O + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43182} G3H502y +PERO3              =  0.800GHD400D + 0.200GAH502O + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43183} G3H502y +PERO5              =  0.650GHD400D + 0.350GAH502O + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43184} G3H502y +PERO6              =  0.650GHD400D + 0.350GAH502O + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43185} G3H502y +PERO9              =       GHD400D +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 43186} G1H50A9                     =       GDD5005 +      GHO                                    : ARR( 0.160E+12,  3634., 0.0);
+{ 43187} G1H50A9                     =       G3H3000 +      GDD2000                                : ARR( 0.200E+15,  4889., 0.0);
+{ 43188} GHN505u +GHO                =       GHN506l +      GHO2                                   : ARR( 0.834E-12,     0., 0.0);
+{ 43189} GHN505u +GHO                =       GNN503F +      GHO                                    : ARR( 0.334E-11,     0., 0.0);
+{ 43190} GHN505u +GHO                =       G2N505x                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 43191} GHN505u+HV               =       G1H50AA +      GNO2                                   :  0.100E+01*SUN;
+{ 43192} GHN505u+HV               =       G3N3004 +      GHD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 43193} GHN505u+HV               =       G1H505e +      GNO2                                   :  0.100E+01*SUN;
+{ 43194} GHN505u+HV               =       G1N506T +      GHO                                    :  0.100E+01*SUN;
+{ 43195} G2N505x +GNO                =       G1N506T +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 43196} G2N505x +GNO                =       GNN502s                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 43197} G2N505x +GHO2               =       GHN505u                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 43198} G2N505x +GNO3               =       G1N506T +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 43199} G2N505x +MEPERO             =  0.480G1N506T + 0.260GNN502r + 0.260GNN503F                 : ARR( 0.164E-12,  -795., 0.0);
+{ 43200} G2N505x +PERO1              =  0.600G1N506T + 0.200GNN502r + 0.200GNN503F                 : ARR( 0.126E-12,  -850., 0.0);
+{ 43201} G2N505x +PERO2              =  0.560G1N506T + 0.220GNN502r + 0.220GNN503F                 : ARR( 0.471E-13, -1350., 0.0);
+{ 43202} G2N505x +PERO3              =  0.600G1N506T + 0.200GNN502r + 0.200GNN503F                 : ARR( 0.142E-12, -1200., 0.0);
+{ 43203} G2N505x +PERO5              =  0.600G1N506T + 0.200GNN502r + 0.200GNN503F                 : ARR( 0.533E-11,   500., 0.0);
+{ 43204} G2N505x +PERO6              =  0.460G1N506T + 0.270GNN502r + 0.270GNN503F                 : ARR( 0.488E-13, -1250., 0.0);
+{ 43205} G2N505x +PERO9              =  0.800G1N506T + 0.200GNN503F                                : ARR( 0.100E-10,     0., 0.0);
+{ 43206} G1H50AA                     =       GDO2000 +      G3H3005                                : ARR( 0.200E+15,  3069., 0.0);
+{ 43207} GHH5027 +GHO                =       GHN504Y +      GHO                                    : ARR( 0.278E-10,     0., 0.0);
+{ 43208} GHH5027 +GHO                =       GHN505x +      GHO                                    : ARR( 0.565E-10,     0., 0.0);
+{ 43209} GHH5027+HV               =       G1H50AB +      GNO2                                   :  0.100E+01*SUN;
+{ 43210} GHH5027+HV               =       G3N3004 +      GHD2000 +      GHO                     :  0.100E+01*SUN;
+{ 43211} GHH5027+HV               =       G1H505e +      GHO                                    :  0.100E+01*SUN;
+{ 43212} GHH5027+HV               =       G1H5096 +      GHO                                    :  0.100E+01*SUN;
+{ 43213} G1H50AB                     =       GDO2000 +      G3H3007                                : ARR( 0.200E+15,  3031., 0.0);
+{ 43214} GHN505v +GHO                =       GHN504Y +      GHO2                                   : ARR( 0.640E-11,     0., 0.0);
+{ 43215} GHN505v +GHO                =       GND501H +      GHO                                    : ARR( 0.520E-10,     0., 0.0);
+{ 43216} GHN505v +GHO                =       G2N504g                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 43217} GHN505v+HV               =       G1H50AC +      GNO2                                   :  0.100E+01*SUN;
+{ 43218} GHN505v+HV               =       G3N3004 +      GHD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 43219} GHN505v+HV               =       G1N504z +      GHO                                    :  0.100E+01*SUN;
+{ 43220} G1H50AC                     =       GDO2000 +      G3H3003                                : ARR( 0.200E+15,  3031., 0.0);
+{ 43221} GHN505w +GHO                =       GHN506Y +      GHO2                                   : ARR( 0.128E-10,     0., 0.0);
+{ 43222} GHN505w +GHO                =       GNN502P +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 43223} GHN505w +GHO                =       G2N504b                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 43224} GHN505w+HV               =       G1N505f +      GHO                                    :  0.100E+01*SUN;
+{ 43225} GHN505w+HV               =       G3H3004 +      GND2000 +      GNO2                    :  0.100E+01*SUN;
+{ 43226} GHN505w+HV               =       G1H50AD +      GNO2                                   :  0.100E+01*SUN;
+{ 43227} GHN505w+HV               =       G1H50AE +      GNO2                                   :  0.100E+01*SUN;
+{ 43228} G1H50AD                     =       G3H3004 +      GND2000                                : ARR( 0.200E+15,  3029., 0.0);
+{ 43229} G1H50AE +OXYGEN             =       GHN506h +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 43230} G1H50AE                     =       GNK5016 +      GHO                                    : ARR( 0.800E+11,  3661., 0.0);
+{ 43231} GNN503E +GHO                =       GNN5032 +      GHO2                                   : ARR( 0.130E-10,     0., 0.0);
+{ 43232} GNN503E +GHO                =       GNN502P +      GHO2                                   : ARR( 0.638E-11,     0., 0.0);
+{ 43233} GNN503E+HV               =       G3K3003 +      GND2000 +      GNO2                    :  0.100E+01*SUN;
+{ 43234} GNN503E+HV               =       G1N505u +      GNO2                                   :  0.100E+01*SUN;
+{ 43235} GNN503E+HV               =       G1N5078 +      GNO2                                   :  0.100E+01*SUN;
+{ 43236} G1N5078 +OXYGEN             =       GND501S +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 43237} G1N5078                     =       GNK5016 +      GHO2                                   : ARR( 0.800E+11,  4007., 0.0);
+{ 43238} GGN501F +GHO                =       G2G502B                                               : ARR( 0.528E-12,     0., 0.0);
+{ 43239} GGN501F +GHO                =       G3N500y                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 43240} GGN501F+HV               =       G1G502y +      GNO2                                   :  0.100E+01*SUN;
+{ 43241} GGN501F+HV               =       G1G502z +      GNO2                                   :  0.100E+01*SUN;
+{ 43242} GGN501F+HV               =       G3N3003 +      G2G2000                                :  0.100E+01*SUN;
+{ 43243} GGN501F+HV               =       G2N400t +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 43244} G2G502B +GNO                =       G1G5031 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 43245} G2G502B +GNO                =       GGN502L                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 43246} G2G502B +GHO2               =       GGH503Y                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 43247} G2G502B +GNO3               =       G1G5031 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 43248} G2G502B +MEPERO             =  0.340G1G5031 + 0.330GGN502N + 0.330GGN502X                 : ARR( 0.565E-13,  -845., 0.0);
+{ 43249} G2G502B +PERO1              =  0.460G1G5031 + 0.270GGN502N + 0.270GGN502X                 : ARR( 0.434E-13,  -900., 0.0);
+{ 43250} G2G502B +PERO2              =  0.400G1G5031 + 0.300GGN502N + 0.300GGN502X                 : ARR( 0.162E-13, -1400., 0.0);
+{ 43251} G2G502B +PERO3              =  0.460G1G5031 + 0.270GGN502N + 0.270GGN502X                 : ARR( 0.488E-13, -1250., 0.0);
+{ 43252} G2G502B +PERO5              =  0.460G1G5031 + 0.270GGN502N + 0.270GGN502X                 : ARR( 0.183E-11,   450., 0.0);
+{ 43253} G2G502B +PERO6              =  0.300G1G5031 + 0.350GGN502N + 0.350GGN502X                 : ARR( 0.168E-13, -1300., 0.0);
+{ 43254} G2G502B +PERO9              =  0.650G1G5031 + 0.350GGN502X                                : ARR( 0.100E-10,     0., 0.0);
+{ 43255} G1G502y +OXYGEN             =       GGN502C +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 43256} G1G502y                     =       G2G502C                                               : ARR( 0.160E+12,  5203., 0.0);
+{ 43257} G1G502y                     =       GGD4004 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7323., 0.0);
+{ 43258} G1G502z                     =       GND2000 +      G3G3000                                : ARR( 0.200E+15,  2978., 0.0);
+{ 43259} G1G5031                     =       G3N3003 +      GGD2000                                : ARR( 0.200E+15,  5396., 0.0);
+{ 43260} G2G502C +GNO                =       G1G5032 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 43261} G2G502C +GNO                =       GGN502Y                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 43262} G2G502C +GHO2               =       GGH503Z                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 43263} G2G502C +GNO3               =       G1G5032 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 43264} G2G502C +MEPERO             =  0.340G1G5032 + 0.330GGN502O + 0.330GGN502Z                 : ARR( 0.565E-13,  -845., 0.0);
+{ 43265} G2G502C +PERO1              =  0.460G1G5032 + 0.270GGN502O + 0.270GGN502Z                 : ARR( 0.434E-13,  -900., 0.0);
+{ 43266} G2G502C +PERO2              =  0.400G1G5032 + 0.300GGN502O + 0.300GGN502Z                 : ARR( 0.162E-13, -1400., 0.0);
+{ 43267} G2G502C +PERO3              =  0.460G1G5032 + 0.270GGN502O + 0.270GGN502Z                 : ARR( 0.488E-13, -1250., 0.0);
+{ 43268} G2G502C +PERO5              =  0.460G1G5032 + 0.270GGN502O + 0.270GGN502Z                 : ARR( 0.183E-11,   450., 0.0);
+{ 43269} G2G502C +PERO6              =  0.300G1G5032 + 0.350GGN502O + 0.350GGN502Z                 : ARR( 0.168E-13, -1300., 0.0);
+{ 43270} G2G502C +PERO9              =  0.650G1G5032 + 0.350GGN502Z                                : ARR( 0.100E-10,     0., 0.0);
+{ 43271} G1G5032                     =       G3N3004 +      GGD2000                                : ARR( 0.200E+15,  5396., 0.0);
+{ 43272} GHN4017 +GHO                =       GNN400a +      GHO                                    : ARR( 0.982E-11,     0., 0.0);
+{ 43273} GHN4017 +GHO                =       G2N400t                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 43274} GHN4017+HV               =       G1H4012 +      GNO2                                   :  0.100E+01*SUN;
+{ 43275} GHN4017+HV               =       G1H401r +      GNO2                                   :  0.100E+01*SUN;
+{ 43276} GHN4017+HV               =       G3N3003 +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 43277} GHN4017+HV               =       G1N4014 +      GHO                                    :  0.100E+01*SUN;
+{ 43278} G1H401r                     =       GND2000 +      G3H2000                                : ARR( 0.200E+15,  3067., 0.0);
+{ 43279} GNN503F +GHO                =       GNN503L +      GHO2                                   : ARR( 0.846E-12,     0., 0.0);
+{ 43280} GNN503F +GHO                =       G3N502E                                               : ARR( 0.437E-11,     0., 0.0);
+{ 43281} GNN503F +GNO3               =       G3N502E +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 43282} GNN503F+HV               =       G1N5079 +      GNO2                                   :  0.100E+01*SUN;
+{ 43283} GNN503F+HV               =       G3N3004 +      GDD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 43284} GNN503F+HV               =       G1N505i +      GNO2                                   :  0.100E+01*SUN;
+{ 43285} GNN503F+HV               =       GND400K +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 43286} G3N502E +GHO2               =  0.800GGN502Y + 0.200GAN501z + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 43287} G3N502E +GNO                =       GND400K + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 43288} G3N502E +GNO2               =       GPN5025                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 43289} G3N502E +GNO3               =       GND400K + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 43290} G3N502E +MEPERO             =  0.685GND400K + 0.315GAN501z + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43291} G3N502E +PERO1              =  0.800GND400K + 0.200GAN501z + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43292} G3N502E +PERO2              =  0.750GND400K + 0.250GAN501z + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43293} G3N502E +PERO3              =  0.800GND400K + 0.200GAN501z + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43294} G3N502E +PERO5              =  0.650GND400K + 0.350GAN501z + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43295} G3N502E +PERO6              =  0.650GND400K + 0.350GAN501z + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43296} G3N502E +PERO9              =       GND400K +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 43297} G1N5079                     =       GDO2000 +      G3N3005                                : ARR( 0.200E+15,  4123., 0.0);
+{ 43298} GHN505x +GHO                =       GND5016 +      GHO                                    : ARR( 0.162E-10,     0., 0.0);
+{ 43299} GHN505x +GHO                =       G3H502z                                               : ARR( 0.696E-10,     0., 0.0);
+{ 43300} GHN505x +GNO3               =       G3H502z +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 43301} GHN505x+HV               =       G1H50AF +      GNO2                                   :  0.100E+01*SUN;
+{ 43302} GHN505x+HV               =       G3N3004 +      GDD2000 +      GHO                     :  0.100E+01*SUN;
+{ 43303} GHN505x+HV               =       G1N505i +      GHO                                    :  0.100E+01*SUN;
+{ 43304} GHN505x+HV               =       GND400K +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 43305} G3H502z +GHO2               =  0.800GGH503Z + 0.200GAH503U + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 43306} G3H502z +GNO                =       GND400K +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 43307} G3H502z +GNO2               =       GPH502T                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 43308} G3H502z +GNO3               =       GND400K +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 43309} G3H502z +MEPERO             =  0.685GND400K + 0.315GAH503U + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43310} G3H502z +PERO1              =  0.800GND400K + 0.200GAH503U + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43311} G3H502z +PERO2              =  0.750GND400K + 0.250GAH503U + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43312} G3H502z +PERO3              =  0.800GND400K + 0.200GAH503U + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43313} G3H502z +PERO5              =  0.650GND400K + 0.350GAH503U + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43314} G3H502z +PERO6              =  0.650GND400K + 0.350GAH503U + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43315} G3H502z +PERO9              =       GND400K +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 43316} G1H50AF                     =       GDO2000 +      G3H3006                                : ARR( 0.200E+15,  3778., 0.0);
+{ 43317} GHN505y +GHO                =       GND5011 +      GHO                                    : ARR( 0.208E-10,     0., 0.0);
+{ 43318} GHN505y +GHO                =       G3H5031                                               : ARR( 0.424E-11,     0., 0.0);
+{ 43319} GHN505y +GHO                =       G2N504f                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 43320} GHN505y +GNO3               =       G3H5031 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 43321} GHN505y+HV               =       G1N505l +      GHO                                    :  0.100E+01*SUN;
+{ 43322} GHN505y+HV               =       G3H3001 +      GDD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 43323} GHN505y+HV               =       G1H50AG +      GNO2                                   :  0.100E+01*SUN;
+{ 43324} GHN505y+HV               =       GHD400I +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 43325} G3H5031 +GHO2               =  0.800GGH502B + 0.200GAH502P + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 43326} G3H5031 +GNO                =       GHD400I + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 43327} G3H5031 +GNO2               =       GPH502X                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 43328} G3H5031 +GNO3               =       GHD400I + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 43329} G3H5031 +MEPERO             =  0.685GHD400I + 0.315GAH502P + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43330} G3H5031 +PERO1              =  0.800GHD400I + 0.200GAH502P + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43331} G3H5031 +PERO2              =  0.750GHD400I + 0.250GAH502P + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43332} G3H5031 +PERO3              =  0.800GHD400I + 0.200GAH502P + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43333} G3H5031 +PERO5              =  0.650GHD400I + 0.350GAH502P + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43334} G3H5031 +PERO6              =  0.650GHD400I + 0.350GAH502P + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43335} G3H5031 +PERO9              =       GHD400I +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 43336} G1H50AG                     =       G3H3001 +      GDD2000                                : ARR( 0.200E+15,  4916., 0.0);
+{ 43337} GHN505z +GHO                =       GHN505a +      GHO2                                   : ARR( 0.630E-11,     0., 0.0);
+{ 43338} GHN505z +GHO                =       GNN5032 +      GHO                                    : ARR( 0.511E-10,     0., 0.0);
+{ 43339} GHN505z +GHO                =       G2N504d                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 43340} GHN505z+HV               =       G1H50AH +      GNO2                                   :  0.100E+01*SUN;
+{ 43341} GHN505z+HV               =       G1H50AI +      GNO2                                   :  0.100E+01*SUN;
+{ 43342} GHN505z+HV               =       G3N3003 +      GHD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 43343} GHN505z+HV               =       G1N504w +      GHO                                    :  0.100E+01*SUN;
+{ 43344} G1H50AH +OXYGEN             =       GHN506p +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 43345} G1H50AH                     =       GHN504Y +      GHO2                                   : ARR( 0.800E+11,  4007., 0.0);
+{ 43346} G1H50AI                     =       GND2000 +      G3H3003                                : ARR( 0.200E+15,  3029., 0.0);
+{ 43347} GND501N +GHO                =       G2N505y                                               : ARR( 0.541E-12,     0., 0.0);
+{ 43348} GND501N +GHO                =       GND5011 +      GHO2                                   : ARR( 0.520E-11,     0., 0.0);
+{ 43349} GND501N +GHO                =       G3N501c                                               : ARR( 0.423E-11,     0., 0.0);
+{ 43350} GND501N +GNO3               =       G3N501c +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 43351} GND501N+HV               =       G3K3002 +      GDD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 43352} GND501N+HV               =       G1D500y +      GNO2                                   :  0.100E+01*SUN;
+{ 43353} GND501N+HV               =       GDK4004 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 43354} G2N505y +GNO                =       G1N506p +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 43355} G2N505y +GNO                =       GNN5033                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 43356} G2N505y +GHO2               =       GHN506p                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 43357} G2N505y +GNO3               =       G1N506p +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 43358} G2N505y +MEPERO             =  0.480G1N506p + 0.260GND501S + 0.260GND501Z                 : ARR( 0.164E-12,  -795., 0.0);
+{ 43359} G2N505y +PERO1              =  0.600G1N506p + 0.200GND501S + 0.200GND501Z                 : ARR( 0.126E-12,  -850., 0.0);
+{ 43360} G2N505y +PERO2              =  0.560G1N506p + 0.220GND501S + 0.220GND501Z                 : ARR( 0.471E-13, -1350., 0.0);
+{ 43361} G2N505y +PERO3              =  0.600G1N506p + 0.200GND501S + 0.200GND501Z                 : ARR( 0.142E-12, -1200., 0.0);
+{ 43362} G2N505y +PERO5              =  0.600G1N506p + 0.200GND501S + 0.200GND501Z                 : ARR( 0.533E-11,   500., 0.0);
+{ 43363} G2N505y +PERO6              =  0.460G1N506p + 0.270GND501S + 0.270GND501Z                 : ARR( 0.488E-13, -1250., 0.0);
+{ 43364} G2N505y +PERO9              =  0.800G1N506p + 0.200GND501Z                                : ARR( 0.100E-10,     0., 0.0);
+{ 43365} GHH5028 +GHO                =       GHD5016 +      GHO                                    : ARR( 0.541E-10,     0., 0.0);
+{ 43366} GHH5028 +GHO                =       GHD501Q +      GHO                                    : ARR( 0.163E-10,     0., 0.0);
+{ 43367} GHH5028 +GHO                =       G3H5032                                               : ARR( 0.699E-10,     0., 0.0);
+{ 43368} GHH5028 +GNO3               =       G3H5032 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 43369} GHH5028+HV               =       G1H508T +      GHO                                    :  0.100E+01*SUN;
+{ 43370} GHH5028+HV               =       G3H3000 +      GDD2000 +      GHO                     :  0.100E+01*SUN;
+{ 43371} GHH5028+HV               =       G1H50A9 +      GHO                                    :  0.100E+01*SUN;
+{ 43372} GHH5028+HV               =       GHD400D +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 43373} G3H5032 +GHO2               =  0.800GGH503a + 0.200GAH5044 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 43374} G3H5032 +GNO                =       GHD400D +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 43375} G3H5032 +GNO2               =       GPH504B                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 43376} G3H5032 +GNO3               =       GHD400D +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 43377} G3H5032 +MEPERO             =  0.685GHD400D + 0.315GAH5044 + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43378} G3H5032 +PERO1              =  0.800GHD400D + 0.200GAH5044 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43379} G3H5032 +PERO2              =  0.750GHD400D + 0.250GAH5044 + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43380} G3H5032 +PERO3              =  0.800GHD400D + 0.200GAH5044 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43381} G3H5032 +PERO5              =  0.650GHD400D + 0.350GAH5044 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43382} G3H5032 +PERO6              =  0.650GHD400D + 0.350GAH5044 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43383} G3H5032 +PERO9              =       GHD400D +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 43384} GGH501B +GHO                =       GGN501G +      GHO                                    : ARR( 0.530E-11,     0., 0.0);
+{ 43385} GGH501B +GHO                =       G2G502D                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 43386} GGH501B +GHO                =       G3H500q                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 43387} GGH501B+HV               =       G1G5033 +      GNO2                                   :  0.100E+01*SUN;
+{ 43388} GGH501B+HV               =       G1G502z +      GHO                                    :  0.100E+01*SUN;
+{ 43389} GGH501B+HV               =       G3H3002 +      G2G2000                                :  0.100E+01*SUN;
+{ 43390} GGH501B+HV               =       G2H400j +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 43391} G2G502D +GNO                =       G1G502z +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 43392} G2G502D +GNO                =       GGN501F                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 43393} G2G502D +GHO2               =       GGH501B                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 43394} G2G502D +GNO3               =       G1G502z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 43395} G2G502D +MEPERO             =  0.340G1G502z + 0.330GGN500L + 0.330GGN501G                 : ARR( 0.565E-13,  -845., 0.0);
+{ 43396} G2G502D +PERO1              =  0.460G1G502z + 0.270GGN500L + 0.270GGN501G                 : ARR( 0.434E-13,  -900., 0.0);
+{ 43397} G2G502D +PERO2              =  0.400G1G502z + 0.300GGN500L + 0.300GGN501G                 : ARR( 0.162E-13, -1400., 0.0);
+{ 43398} G2G502D +PERO3              =  0.460G1G502z + 0.270GGN500L + 0.270GGN501G                 : ARR( 0.488E-13, -1250., 0.0);
+{ 43399} G2G502D +PERO5              =  0.460G1G502z + 0.270GGN500L + 0.270GGN501G                 : ARR( 0.183E-11,   450., 0.0);
+{ 43400} G2G502D +PERO6              =  0.300G1G502z + 0.350GGN500L + 0.350GGN501G                 : ARR( 0.168E-13, -1300., 0.0);
+{ 43401} G2G502D +PERO9              =  0.650G1G502z + 0.350GGN501G                                : ARR( 0.100E-10,     0., 0.0);
+{ 43402} G1G5033 +OXYGEN             =       GGH5039 +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 43403} G1G5033                     =       GGD4004 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5784., 0.0);
+{ 43404} GHH400g +GHO                =       GHN4019 +      GHO                                    : ARR( 0.506E-11,     0., 0.0);
+{ 43405} GHH400g +GHO                =       GHN4018 +      GHO                                    : ARR( 0.987E-11,     0., 0.0);
+{ 43406} GHH400g +GHO                =       G2H401M                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 43407} GHH400g +GHO                =       G2H400j                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 43408} GHH400g+HV               =       G1H4013 +      GNO2                                   :  0.100E+01*SUN;
+{ 43409} GHH400g+HV               =       G1H401r +      GHO                                    :  0.100E+01*SUN;
+{ 43410} GHH400g+HV               =       G3H3002 +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 43411} GHH400g+HV               =       G1H400q +      GHO                                    :  0.100E+01*SUN;
+{ 43412} G2H401M +GNO                =       G1H401r +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 43413} G2H401M +GNO                =       GHN4017                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 43414} G2H401M +GHO2               =       GHH400g                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 43415} G2H401M +GNO3               =       G1H401r +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 43416} G2H401M +MEPERO             =  0.340G1H401r + 0.330GHN400W + 0.330GHN4019                 : ARR( 0.565E-13,  -845., 0.0);
+{ 43417} G2H401M +PERO1              =  0.460G1H401r + 0.270GHN400W + 0.270GHN4019                 : ARR( 0.434E-13,  -900., 0.0);
+{ 43418} G2H401M +PERO2              =  0.400G1H401r + 0.300GHN400W + 0.300GHN4019                 : ARR( 0.162E-13, -1400., 0.0);
+{ 43419} G2H401M +PERO3              =  0.460G1H401r + 0.270GHN400W + 0.270GHN4019                 : ARR( 0.488E-13, -1250., 0.0);
+{ 43420} G2H401M +PERO5              =  0.460G1H401r + 0.270GHN400W + 0.270GHN4019                 : ARR( 0.183E-11,   450., 0.0);
+{ 43421} G2H401M +PERO6              =  0.300G1H401r + 0.350GHN400W + 0.350GHN4019                 : ARR( 0.168E-13, -1300., 0.0);
+{ 43422} G2H401M +PERO9              =  0.650G1H401r + 0.350GHN4019                                : ARR( 0.100E-10,     0., 0.0);
+{ 43423} GHN4018 +GHO                =       GND400M +      GHO                                    : ARR( 0.506E-11,     0., 0.0);
+{ 43424} GHN4018 +GHO                =       G3H3002 +      GCO                                    : ARR( 0.128E-10,     0., 0.0);
+{ 43425} GHN4018 +GHO                =       G2N401B                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 43426} GHN4018 +GNO3               =       G3H3002 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 43427} GHN4018+HV               =       G1H401j +      GNO2                                   :  0.100E+01*SUN;
+{ 43428} GHN4018+HV               =       G1N401C +      GHO                                    :  0.100E+01*SUN;
+{ 43429} GHN4018+HV               =       G3H3002 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 43430} GHN4018+HV               =       GHN3007 +      GCO                                    :  0.100E+01*SUN;
+{ 43431} GHN4018+HV               =       GHN2000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 43432} G2N401B +GNO                =       G1N401C +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 43433} G2N401B +GNO                =       GNN400a                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 43434} G2N401B +GHO2               =       GHN4018                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 43435} G2N401B +GNO3               =       G1N401C +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 43436} G2N401B +MEPERO             =  0.340G1N401C + 0.330GND400G + 0.330GND400M                 : ARR( 0.565E-13,  -845., 0.0);
+{ 43437} G2N401B +PERO1              =  0.460G1N401C + 0.270GND400G + 0.270GND400M                 : ARR( 0.434E-13,  -900., 0.0);
+{ 43438} G2N401B +PERO2              =  0.400G1N401C + 0.300GND400G + 0.300GND400M                 : ARR( 0.162E-13, -1400., 0.0);
+{ 43439} G2N401B +PERO3              =  0.460G1N401C + 0.270GND400G + 0.270GND400M                 : ARR( 0.488E-13, -1250., 0.0);
+{ 43440} G2N401B +PERO5              =  0.460G1N401C + 0.270GND400G + 0.270GND400M                 : ARR( 0.183E-11,   450., 0.0);
+{ 43441} G2N401B +PERO6              =  0.300G1N401C + 0.350GND400G + 0.350GND400M                 : ARR( 0.168E-13, -1300., 0.0);
+{ 43442} G2N401B +PERO9              =  0.650G1N401C + 0.350GND400M                                : ARR( 0.100E-10,     0., 0.0);
+{ 43443} GHH5029 +GHO                =       GHD500w +      GHO                                    : ARR( 0.220E-10,     0., 0.0);
+{ 43444} GHH5029 +GHO                =       GHD500v +      GHO                                    : ARR( 0.165E-10,     0., 0.0);
+{ 43445} GHH5029 +GHO                =       G3H5033                                               : ARR( 0.709E-10,     0., 0.0);
+{ 43446} GHH5029 +GNO3               =       G3H5033 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 43447} GHH5029+HV               =       G1H507v +      GHO                                    :  0.100E+01*SUN;
+{ 43448} GHH5029+HV               =       G3H3001 +      GDD2000 +      GHO                     :  0.100E+01*SUN;
+{ 43449} GHH5029+HV               =       G1H50AG +      GHO                                    :  0.100E+01*SUN;
+{ 43450} GHH5029+HV               =       GHD400I +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 43451} G3H5033 +GHO2               =  0.800GGH503b + 0.200GAH5045 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 43452} G3H5033 +GNO                =       GHD400I +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 43453} G3H5033 +GNO2               =       GPH504C                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 43454} G3H5033 +GNO3               =       GHD400I +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 43455} G3H5033 +MEPERO             =  0.685GHD400I + 0.315GAH5045 + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43456} G3H5033 +PERO1              =  0.800GHD400I + 0.200GAH5045 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43457} G3H5033 +PERO2              =  0.750GHD400I + 0.250GAH5045 + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43458} G3H5033 +PERO3              =  0.800GHD400I + 0.200GAH5045 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43459} G3H5033 +PERO5              =  0.650GHD400I + 0.350GAH5045 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43460} G3H5033 +PERO6              =  0.650GHD400I + 0.350GAH5045 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43461} G3H5033 +PERO9              =       GHD400I +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 43462} GGN501G +GHO                =       G2G502E                                               : ARR( 0.529E-12,     0., 0.0);
+{ 43463} GGN501G +GHO                =       G3N5011                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 43464} GGN501G+HV               =       G1G5034 +      GNO2                                   :  0.100E+01*SUN;
+{ 43465} GGN501G+HV               =       G3N2000 +      G3G3000                                :  0.100E+01*SUN;
+{ 43466} GGN501G+HV               =       G2N400u +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 43467} G2G502E +GNO                =       G1G5035 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 43468} G2G502E +GNO                =       GGN502M                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 43469} G2G502E +GHO2               =       GGH503c                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 43470} G2G502E +GNO3               =       G1G5035 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 43471} G2G502E +MEPERO             =  0.340G1G5035 + 0.330GGN502R + 0.330GGN502G                 : ARR( 0.565E-13,  -845., 0.0);
+{ 43472} G2G502E +PERO1              =  0.460G1G5035 + 0.270GGN502R + 0.270GGN502G                 : ARR( 0.434E-13,  -900., 0.0);
+{ 43473} G2G502E +PERO2              =  0.400G1G5035 + 0.300GGN502R + 0.300GGN502G                 : ARR( 0.162E-13, -1400., 0.0);
+{ 43474} G2G502E +PERO3              =  0.460G1G5035 + 0.270GGN502R + 0.270GGN502G                 : ARR( 0.488E-13, -1250., 0.0);
+{ 43475} G2G502E +PERO5              =  0.460G1G5035 + 0.270GGN502R + 0.270GGN502G                 : ARR( 0.183E-11,   450., 0.0);
+{ 43476} G2G502E +PERO6              =  0.300G1G5035 + 0.350GGN502R + 0.350GGN502G                 : ARR( 0.168E-13, -1300., 0.0);
+{ 43477} G2G502E +PERO9              =  0.650G1G5035 + 0.350GGN502G                                : ARR( 0.100E-10,     0., 0.0);
+{ 43478} G1G5034                     =       G3G3000 +      GCH2O   +      GCO                     : ARR( 0.200E+15,  3897., 0.0);
+{ 43479} G1G5035                     =       G3N2000 +      GGD2000 +      GCO                     : ARR( 0.200E+15,  5653., 0.0);
+{ 43480} GHN4019 +GHO                =       GND400M +      GHO                                    : ARR( 0.983E-11,     0., 0.0);
+{ 43481} GHN4019 +GHO                =       G2N400u                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 43482} GHN4019+HV               =       G1H4014 +      GNO2                                   :  0.100E+01*SUN;
+{ 43483} GHN4019+HV               =       G3N2000 +      G3H2000                                :  0.100E+01*SUN;
+{ 43484} GHN4019+HV               =       G1N4015 +      GHO                                    :  0.100E+01*SUN;
+{ 43485} GHN5061 +GHO                =       GHN505c +      GHO2                                   : ARR( 0.630E-11,     0., 0.0);
+{ 43486} GHN5061 +GHO                =       GND501K +      GHO                                    : ARR( 0.511E-10,     0., 0.0);
+{ 43487} GHN5061 +GHO                =       G2N504i                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 43488} GHN5061+HV               =       G1H50AJ +      GNO2                                   :  0.100E+01*SUN;
+{ 43489} GHN5061+HV               =       G3N2000 +      G3H3003                                :  0.100E+01*SUN;
+{ 43490} GHN5061+HV               =       G1N505G +      GHO                                    :  0.100E+01*SUN;
+{ 43491} G1H50AJ                     =       G3H3003 +      GCH2O   +      GCO                     : ARR( 0.200E+15,  3897., 0.0);
+{ 43492} GGH501C +GHO                =       GGN501F +      GHO                                    : ARR( 0.826E-11,     0., 0.0);
+{ 43493} GGH501C +GHO                =       G2G502F                                               : ARR( 0.863E-12,     0., 0.0);
+{ 43494} GGH501C +GHO                =       G2G500r                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 43495} GGH501C +GHO                =       G3H501v                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 43496} GGH501C+HV               =       G1G5036 +      GNO2                                   :  0.100E+01*SUN;
+{ 43497} GGH501C+HV               =       G1G5037 +      GNO2                                   :  0.100E+01*SUN;
+{ 43498} GGH501C+HV               =       G1G5014 +      GHO                                    :  0.100E+01*SUN;
+{ 43499} GGH501C+HV               =       G2H4016 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 43500} G2G502F +GNO                =       G1G5038 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 43501} G2G502F +GNO                =       GGH503d                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 43502} G2G502F +GHO2               =       GGH503e                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 43503} G2G502F +GNO3               =       G1G5038 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 43504} G2G502F +MEPERO             =  0.340G1G5038 + 0.330GGH503f + 0.330GGH503g                 : ARR( 0.565E-13,  -845., 0.0);
+{ 43505} G2G502F +PERO1              =  0.460G1G5038 + 0.270GGH503f + 0.270GGH503g                 : ARR( 0.434E-13,  -900., 0.0);
+{ 43506} G2G502F +PERO2              =  0.400G1G5038 + 0.300GGH503f + 0.300GGH503g                 : ARR( 0.162E-13, -1400., 0.0);
+{ 43507} G2G502F +PERO3              =  0.460G1G5038 + 0.270GGH503f + 0.270GGH503g                 : ARR( 0.488E-13, -1250., 0.0);
+{ 43508} G2G502F +PERO5              =  0.460G1G5038 + 0.270GGH503f + 0.270GGH503g                 : ARR( 0.183E-11,   450., 0.0);
+{ 43509} G2G502F +PERO6              =  0.300G1G5038 + 0.350GGH503f + 0.350GGH503g                 : ARR( 0.168E-13, -1300., 0.0);
+{ 43510} G2G502F +PERO9              =  0.650G1G5038 + 0.350GGH503g                                : ARR( 0.100E-10,     0., 0.0);
+{ 43511} G1G5036                     =       G2G502G                                               : ARR( 0.160E+12,  3221., 0.0);
+{ 43512} G1G5037                     =       GND2000 +      GGD3000 +      GHO                     : ARR( 0.200E+15,  4826., 0.0);
+{ 43513} G1G5038                     =       GHN400v +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 43514} G2G502G +GNO                =       G1G5039 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 43515} G2G502G +GNO                =       GGH502w                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 43516} G2G502G +GHO2               =       GGH503h                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 43517} G2G502G +GNO3               =       G1G5039 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 43518} G2G502G +MEPERO             =  0.340G1G5039 + 0.330GGH503i + 0.330GGH5031                 : ARR( 0.565E-13,  -845., 0.0);
+{ 43519} G2G502G +PERO1              =  0.460G1G5039 + 0.270GGH503i + 0.270GGH5031                 : ARR( 0.434E-13,  -900., 0.0);
+{ 43520} G2G502G +PERO2              =  0.400G1G5039 + 0.300GGH503i + 0.300GGH5031                 : ARR( 0.162E-13, -1400., 0.0);
+{ 43521} G2G502G +PERO3              =  0.460G1G5039 + 0.270GGH503i + 0.270GGH5031                 : ARR( 0.488E-13, -1250., 0.0);
+{ 43522} G2G502G +PERO5              =  0.460G1G5039 + 0.270GGH503i + 0.270GGH5031                 : ARR( 0.183E-11,   450., 0.0);
+{ 43523} G2G502G +PERO6              =  0.300G1G5039 + 0.350GGH503i + 0.350GGH5031                 : ARR( 0.168E-13, -1300., 0.0);
+{ 43524} G2G502G +PERO9              =  0.650G1G5039 + 0.350GGH5031                                : ARR( 0.100E-10,     0., 0.0);
+{ 43525} G1G5039                     =       GGH503j +      GHO2                                   : ARR( 0.160E+12,  3252., 0.0);
+{ 43526} G1G5039                     =       GHN400h +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 43527} GGN501H +GHO                =       GGN501F +      GHO2                                   : ARR( 0.212E-11,     0., 0.0);
+{ 43528} GGN501H +GHO                =       G2G502H                                               : ARR( 0.885E-12,     0., 0.0);
+{ 43529} GGN501H +GHO                =       G3N501d                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 43530} GGN501H+HV               =       G1G503A +      GNO2                                   :  0.100E+01*SUN;
+{ 43531} GGN501H+HV               =       G1G503B +      GNO2                                   :  0.100E+01*SUN;
+{ 43532} GGN501H+HV               =       G2N400d +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 43533} G2G502H +GNO                =       G1G503C +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 43534} G2G502H +GNO                =       GGN502a                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 43535} G2G502H +GHO2               =       GGH503k                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 43536} G2G502H +GNO3               =       G1G503C +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 43537} G2G502H +MEPERO             =  0.340G1G503C + 0.330GGN502b + 0.330GGN5027                 : ARR( 0.565E-13,  -845., 0.0);
+{ 43538} G2G502H +PERO1              =  0.460G1G503C + 0.270GGN502b + 0.270GGN5027                 : ARR( 0.434E-13,  -900., 0.0);
+{ 43539} G2G502H +PERO2              =  0.400G1G503C + 0.300GGN502b + 0.300GGN5027                 : ARR( 0.162E-13, -1400., 0.0);
+{ 43540} G2G502H +PERO3              =  0.460G1G503C + 0.270GGN502b + 0.270GGN5027                 : ARR( 0.488E-13, -1250., 0.0);
+{ 43541} G2G502H +PERO5              =  0.460G1G503C + 0.270GGN502b + 0.270GGN5027                 : ARR( 0.183E-11,   450., 0.0);
+{ 43542} G2G502H +PERO6              =  0.300G1G503C + 0.350GGN502b + 0.350GGN5027                 : ARR( 0.168E-13, -1300., 0.0);
+{ 43543} G2G502H +PERO9              =  0.650G1G503C + 0.350GGN5027                                : ARR( 0.100E-10,     0., 0.0);
+{ 43544} G1G503A                     =       G2G502I                                               : ARR( 0.160E+12,  3221., 0.0);
+{ 43545} G1G503B                     =       GND2000 +      GGD3000 +      GHO2                    : ARR( 0.200E+15,  3617., 0.0);
+{ 43546} G1G503C                     =       GNN3005 +      GGD2000 +      GHO2                    : ARR( 0.200E+15,  5342., 0.0);
+{ 43547} G1G503C                     =       GNN400T +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 43548} G2G502I +GNO                =       G1G503D +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 43549} G2G502I +GNO                =       GGN5029                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 43550} G2G502I +GHO2               =       GGH503l                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 43551} G2G502I +GNO3               =       G1G503D +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 43552} G2G502I +MEPERO             =  0.340G1G503D + 0.330GGN501f + 0.330GGN501g                 : ARR( 0.565E-13,  -845., 0.0);
+{ 43553} G2G502I +PERO1              =  0.460G1G503D + 0.270GGN501f + 0.270GGN501g                 : ARR( 0.434E-13,  -900., 0.0);
+{ 43554} G2G502I +PERO2              =  0.400G1G503D + 0.300GGN501f + 0.300GGN501g                 : ARR( 0.162E-13, -1400., 0.0);
+{ 43555} G2G502I +PERO3              =  0.460G1G503D + 0.270GGN501f + 0.270GGN501g                 : ARR( 0.488E-13, -1250., 0.0);
+{ 43556} G2G502I +PERO5              =  0.460G1G503D + 0.270GGN501f + 0.270GGN501g                 : ARR( 0.183E-11,   450., 0.0);
+{ 43557} G2G502I +PERO6              =  0.300G1G503D + 0.350GGN501f + 0.350GGN501g                 : ARR( 0.168E-13, -1300., 0.0);
+{ 43558} G2G502I +PERO9              =  0.650G1G503D + 0.350GGN501g                                : ARR( 0.100E-10,     0., 0.0);
+{ 43559} G1G503D                     =       GGN502c +      GHO2                                   : ARR( 0.160E+12,  3252., 0.0);
+{ 43560} G1G503D                     =       GND3004 +      GGD2000 +      GHO2                    : ARR( 0.200E+15,  5342., 0.0);
+{ 43561} G1G503D                     =       GND4009 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 43562} GGH501D +GHO                =       GGN5012 +      GHO                                    : ARR( 0.254E-10,     0., 0.0);
+{ 43563} GGH501D +GHO                =       G2G500s                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 43564} GGH501D +GHO                =       G3H500y                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 43565} GGH501D+HV               =       G1G503E +      GNO2                                   :  0.100E+01*SUN;
+{ 43566} GGH501D+HV               =       G1G503F +      GNO2                                   :  0.100E+01*SUN;
+{ 43567} GGH501D+HV               =       G1G5015 +      GHO                                    :  0.100E+01*SUN;
+{ 43568} GGH501D+HV               =       GNN4001 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 43569} G1G503E                     =       GGN5018 +      GHO                                    : ARR( 0.800E+11,  1899., 0.0);
+{ 43570} G1G503F                     =       GND2000 +      G2G3008                                : ARR( 0.200E+15,  7116., 0.0);
+{ 43571} GGN501I +GHO                =       GGN5012 +      GHO2                                   : ARR( 0.657E-11,     0., 0.0);
+{ 43572} GGN501I +GHO                =       G3N5015                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 43573} GGN501I+HV               =       G1G503G +      GNO2                                   :  0.100E+01*SUN;
+{ 43574} GGN501I+HV               =       G1G503H +      GNO2                                   :  0.100E+01*SUN;
+{ 43575} GGN501I+HV               =       GNN4001 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 43576} G1G503G                     =       GGN5018 +      GHO2                                   : ARR( 0.800E+11,  2246., 0.0);
+{ 43577} G1G503H                     =       GND2000 +      G2G3004                                : ARR( 0.200E+15,  7116., 0.0);
+{ 43578} GGH501E +GHO                =       GGN5018 +      GHO                                    : ARR( 0.262E-10,     0., 0.0);
+{ 43579} GGH501E +GHO                =       G2G500t                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 43580} GGH501E +GHO                =       G3H500s                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 43581} GGH501E+HV               =       G1G503I +      GNO2                                   :  0.100E+01*SUN;
+{ 43582} GGH501E+HV               =       G1G5016 +      GHO                                    :  0.100E+01*SUN;
+{ 43583} GGH501E+HV               =       GND4002 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 43584} G1G503I                     =       GCH2O   +      GGH400R +      GHO2                    : ARR( 0.200E+15,  5041., 0.0);
+{ 43585} GGN501J +GHO                =       GGN502E +      GHO2                                   : ARR( 0.650E-11,     0., 0.0);
+{ 43586} GGN501J +GHO                =       G3G500I                                               : ARR( 0.430E-11,     0., 0.0);
+{ 43587} GGN501J +GHO                =       G3N5013                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 43588} GGN501J +GNO3               =       G3G500I +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 43589} GGN501J+HV               =       GND400D +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 43590} GGN501J+HV               =       G1G503J +      GNO2                                   :  0.100E+01*SUN;
+{ 43591} GGN501J+HV               =       GGD4002 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 43592} GGN501J+HV               =       GGK3000 +      GND2000                                :  0.100E+01*SUN;
+{ 43593} G3G500I +GHO2               =  0.800GGG500B + 0.200GAG500K + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 43594} G3G500I +GNO                =       GGD4002 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 43595} G3G500I +GNO2               =       GPG500I                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 43596} G3G500I +GNO3               =       GGD4002 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 43597} G3G500I +MEPERO             =  0.685GGD4002 + 0.315GAG500K + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43598} G3G500I +PERO1              =  0.800GGD4002 + 0.200GAG500K + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43599} G3G500I +PERO2              =  0.750GGD4002 + 0.250GAG500K + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43600} G3G500I +PERO3              =  0.800GGD4002 + 0.200GAG500K + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43601} G3G500I +PERO5              =  0.650GGD4002 + 0.350GAG500K + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43602} G3G500I +PERO6              =  0.650GGD4002 + 0.350GAG500K + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43603} G3G500I +PERO9              =       GGD4002 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 43604} G1G503J                     =       GGD4002 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5437., 0.0);
+{ 43605} GGN501K +GHO                =       GGN501v +      GHO2                                   : ARR( 0.651E-11,     0., 0.0);
+{ 43606} GGN501K +GHO                =       G3G500J                                               : ARR( 0.215E-10,     0., 0.0);
+{ 43607} GGN501K +GHO                =       G3N5014                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 43608} GGN501K +GNO3               =       G3G500J +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 43609} GGN501K+HV               =       GDD4001 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 43610} GGN501K+HV               =       G1G503K +      GNO2                                   :  0.100E+01*SUN;
+{ 43611} GGN501K+HV               =       GGN400M +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 43612} G3G500J +GHO2               =  0.800GGG500B + 0.200GAG500O + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 43613} G3G500J +GNO                =       GGN400M +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 43614} G3G500J +GNO2               =       GPG500L                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 43615} G3G500J +GNO3               =       GGN400M +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 43616} G3G500J +MEPERO             =  0.685GGN400M + 0.315GAG500O + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43617} G3G500J +PERO1              =  0.800GGN400M + 0.200GAG500O + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43618} G3G500J +PERO2              =  0.750GGN400M + 0.250GAG500O + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43619} G3G500J +PERO3              =  0.800GGN400M + 0.200GAG500O + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43620} G3G500J +PERO5              =  0.650GGN400M + 0.350GAG500O + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43621} G3G500J +PERO6              =  0.650GGN400M + 0.350GAG500O + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43622} G3G500J +PERO9              =       GGN400M +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 43623} G1G503K                     =       GCO     +      GDD4001 +      GHO2                    : ARR( 0.200E+15,  4949., 0.0);
+{ 43624} GAN501P +GHO                =       GAN5024 +      GHO2                                   : ARR( 0.666E-11,     0., 0.0);
+{ 43625} GAN501P +GHO                =       G3A500N                                               : ARR( 0.220E-10,     0., 0.0);
+{ 43626} GAN501P +GNO3               =       G3A500N +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 43627} GAN501P+HV               =       G1A504L +      GNO2                                   :  0.100E+01*SUN;
+{ 43628} GAN501P+HV               =       GAN400N +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 43629} G3A500N +GHO2               =  0.800GAG500K + 0.200GAA500D + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 43630} G3A500N +GNO                =       GAN400N +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 43631} G3A500N +GNO2               =       GPA500Q                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 43632} G3A500N +GNO3               =       GAN400N +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 43633} G3A500N +MEPERO             =  0.685GAN400N + 0.315GAA500D + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43634} G3A500N +PERO1              =  0.800GAN400N + 0.200GAA500D + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43635} G3A500N +PERO2              =  0.750GAN400N + 0.250GAA500D + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43636} G3A500N +PERO3              =  0.800GAN400N + 0.200GAA500D + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43637} G3A500N +PERO5              =  0.650GAN400N + 0.350GAA500D + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43638} G3A500N +PERO6              =  0.650GAN400N + 0.350GAA500D + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43639} G3A500N +PERO9              =       GAN400N +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 43640} G1A504L                     =       GCO     +      GDD4001 +      GHO                     : ARR( 0.200E+15,  4918., 0.0);
+{ 43641} GPN501S                     =       G3N5014 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 43642} GPN501S +GHO                =       GPN502E +      GHO2                                   : ARR( 0.654E-11,     0., 0.0);
+{ 43643} GPN501S +GHO                =       G3P500L                                               : ARR( 0.216E-10,     0., 0.0);
+{ 43644} GPN501S +GNO3               =       G3P500L +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 43645} GPN501S+HV               =       G3N5014 +      GNO2                                   :  0.100E+01*SUN;
+{ 43646} GPN501S+HV               =       G1P504W +      GNO2                                   :  0.100E+01*SUN;
+{ 43647} GPN501S+HV               =       GPN400N +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 43648} G3P500L +GHO2               =  0.800GPG500I + 0.200GPA500K + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 43649} G3P500L +GNO                =       GPN400N +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 43650} G3P500L +GNO2               =       GPP500A                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 43651} G3P500L +GNO3               =       GPN400N +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 43652} G3P500L +MEPERO             =  0.685GPN400N + 0.315GPA500K + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43653} G3P500L +PERO1              =  0.800GPN400N + 0.200GPA500K + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43654} G3P500L +PERO2              =  0.750GPN400N + 0.250GPA500K + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43655} G3P500L +PERO3              =  0.800GPN400N + 0.200GPA500K + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43656} G3P500L +PERO5              =  0.650GPN400N + 0.350GPA500K + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43657} G3P500L +PERO6              =  0.650GPN400N + 0.350GPA500K + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 43658} G3P500L +PERO9              =       GPN400N +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 43659} G1P504W                     =       GCO     +      GDD4001 +      GNO2                    : ARR( 0.200E+15,  4949., 0.0);
+{ 43660} GGH501F +GHO                =       GGH502K +      GHO2                                   : ARR( 0.851E-11,     0., 0.0);
+{ 43661} GGH501F +GHO                =       GGN500k +      GHO                                    : ARR( 0.837E-11,     0., 0.0);
+{ 43662} GGH501F +GHO                =       G2G502J                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 43663} GGH501F +GHO                =       G3H500t                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 43664} GGH501F+HV               =       G1G5021 +      GHO                                    :  0.100E+01*SUN;
+{ 43665} GGH501F+HV               =       G1G503L +      GNO2                                   :  0.100E+01*SUN;
+{ 43666} GGH501F+HV               =       GHD4008 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 43667} G2G502J +GNO                =       G1G5021 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 43668} G2G502J +GNO                =       GGN500f                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 43669} G2G502J +GHO2               =       GGH501F                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 43670} G2G502J +GNO3               =       G1G5021 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 43671} G2G502J +MEPERO             =  0.340G1G5021 + 0.330GGN501e + 0.330GGN500k                 : ARR( 0.565E-13,  -845., 0.0);
+{ 43672} G2G502J +PERO1              =  0.460G1G5021 + 0.270GGN501e + 0.270GGN500k                 : ARR( 0.434E-13,  -900., 0.0);
+{ 43673} G2G502J +PERO2              =  0.400G1G5021 + 0.300GGN501e + 0.300GGN500k                 : ARR( 0.162E-13, -1400., 0.0);
+{ 43674} G2G502J +PERO3              =  0.460G1G5021 + 0.270GGN501e + 0.270GGN500k                 : ARR( 0.488E-13, -1250., 0.0);
+{ 43675} G2G502J +PERO5              =  0.460G1G5021 + 0.270GGN501e + 0.270GGN500k                 : ARR( 0.183E-11,   450., 0.0);
+{ 43676} G2G502J +PERO6              =  0.300G1G5021 + 0.350GGN501e + 0.350GGN500k                 : ARR( 0.168E-13, -1300., 0.0);
+{ 43677} G2G502J +PERO9              =  0.650G1G5021 + 0.350GGN500k                                : ARR( 0.100E-10,     0., 0.0);
+{ 43678} G1G503L                     =       G2G502K                                               : ARR( 0.240E+12,  4177., 0.0);
+{ 43679} G1G503L                     =       GHD4008 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 43680} G2G502K +GNO                =       G1G503M +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 43681} G2G502K +GNO                =       GGH501W                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 43682} G2G502K +GHO2               =       GGH501X                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 43683} G2G502K +GNO3               =       G1G503M +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 43684} G2G502K +MEPERO             =  0.480G1G503M + 0.260GGH500h + 0.260GGH501g                 : ARR( 0.164E-12,  -795., 0.0);
+{ 43685} G2G502K +PERO1              =  0.600G1G503M + 0.200GGH500h + 0.200GGH501g                 : ARR( 0.126E-12,  -850., 0.0);
+{ 43686} G2G502K +PERO2              =  0.560G1G503M + 0.220GGH500h + 0.220GGH501g                 : ARR( 0.471E-13, -1350., 0.0);
+{ 43687} G2G502K +PERO3              =  0.600G1G503M + 0.200GGH500h + 0.200GGH501g                 : ARR( 0.142E-12, -1200., 0.0);
+{ 43688} G2G502K +PERO5              =  0.600G1G503M + 0.200GGH500h + 0.200GGH501g                 : ARR( 0.533E-11,   500., 0.0);
+{ 43689} G2G502K +PERO6              =  0.460G1G503M + 0.270GGH500h + 0.270GGH501g                 : ARR( 0.488E-13, -1250., 0.0);
+{ 43690} G2G502K +PERO9              =  0.800G1G503M + 0.200GGH501g                                : ARR( 0.100E-10,     0., 0.0);
+{ 43691} G1G503M                     =       GGH501f +      GHO2                                   : ARR( 0.800E+11,  2246., 0.0);
+{ 43692} G1G503M                     =       GGH400i +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 43693} GAH501T +GHO                =       GAH502Z +      GHO2                                   : ARR( 0.874E-11,     0., 0.0);
+{ 43694} GAH501T +GHO                =       GAN500r +      GHO                                    : ARR( 0.860E-11,     0., 0.0);
+{ 43695} GAH501T +GHO                =       G2A503M                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 43696} GAH501T+HV               =       G1A502Z +      GHO                                    :  0.100E+01*SUN;
+{ 43697} GAH501T+HV               =       G1A504M +      GNO2                                   :  0.100E+01*SUN;
+{ 43698} G2A503M +GNO                =       G1A502Z +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 43699} G2A503M +GNO                =       GAN500m                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 43700} G2A503M +GHO2               =       GAH501T                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 43701} G2A503M +GNO3               =       G1A502Z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 43702} G2A503M +MEPERO             =  0.340G1A502Z + 0.330GAN5025 + 0.330GAN500r                 : ARR( 0.565E-13,  -845., 0.0);
+{ 43703} G2A503M +PERO1              =  0.460G1A502Z + 0.270GAN5025 + 0.270GAN500r                 : ARR( 0.434E-13,  -900., 0.0);
+{ 43704} G2A503M +PERO2              =  0.400G1A502Z + 0.300GAN5025 + 0.300GAN500r                 : ARR( 0.162E-13, -1400., 0.0);
+{ 43705} G2A503M +PERO3              =  0.460G1A502Z + 0.270GAN5025 + 0.270GAN500r                 : ARR( 0.488E-13, -1250., 0.0);
+{ 43706} G2A503M +PERO5              =  0.460G1A502Z + 0.270GAN5025 + 0.270GAN500r                 : ARR( 0.183E-11,   450., 0.0);
+{ 43707} G2A503M +PERO6              =  0.300G1A502Z + 0.350GAN5025 + 0.350GAN500r                 : ARR( 0.168E-13, -1300., 0.0);
+{ 43708} G2A503M +PERO9              =  0.650G1A502Z + 0.350GAN500r                                : ARR( 0.100E-10,     0., 0.0);
+{ 43709} G1A504M                     =       G2A503N                                               : ARR( 0.240E+12,  4177., 0.0);
+{ 43710} G1A504M                     =       GHD4008 +      GCO     +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 43711} G2A503N +GNO                =       G1A504N +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 43712} G2A503N +GNO                =       GAH501e                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 43713} G2A503N +GHO2               =       GAH501f                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 43714} G2A503N +GNO3               =       G1A504N +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 43715} G2A503N +MEPERO             =  0.480G1A504N + 0.260GAH500m + 0.260GAH501n                 : ARR( 0.164E-12,  -795., 0.0);
+{ 43716} G2A503N +PERO1              =  0.600G1A504N + 0.200GAH500m + 0.200GAH501n                 : ARR( 0.126E-12,  -850., 0.0);
+{ 43717} G2A503N +PERO2              =  0.560G1A504N + 0.220GAH500m + 0.220GAH501n                 : ARR( 0.471E-13, -1350., 0.0);
+{ 43718} G2A503N +PERO3              =  0.600G1A504N + 0.200GAH500m + 0.200GAH501n                 : ARR( 0.142E-12, -1200., 0.0);
+{ 43719} G2A503N +PERO5              =  0.600G1A504N + 0.200GAH500m + 0.200GAH501n                 : ARR( 0.533E-11,   500., 0.0);
+{ 43720} G2A503N +PERO6              =  0.460G1A504N + 0.270GAH500m + 0.270GAH501n                 : ARR( 0.488E-13, -1250., 0.0);
+{ 43721} G2A503N +PERO9              =  0.800G1A504N + 0.200GAH501n                                : ARR( 0.100E-10,     0., 0.0);
+{ 43722} G1A504N                     =       GAH502n +      GHO2                                   : ARR( 0.800E+11,  2381., 0.0);
+{ 43723} G1A504N                     =       GAH400o +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 43724} GPH501U                     =       G3H500t +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 43725} GPH501U +GHO                =       GPH502k +      GHO2                                   : ARR( 0.853E-11,     0., 0.0);
+{ 43726} GPH501U +GHO                =       GPN500w +      GHO                                    : ARR( 0.840E-11,     0., 0.0);
+{ 43727} GPH501U +GHO                =       G2P503U                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 43728} GPH501U+HV               =       G1P502k +      GHO                                    :  0.100E+01*SUN;
+{ 43729} GPH501U+HV               =       G1P504X +      GNO2                                   :  0.100E+01*SUN;
+{ 43730} GPH501U+HV               =       G3H500t +      GNO2                                   :  0.100E+01*SUN;
+{ 43731} G2P503U +GNO                =       G1P502k +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 43732} G2P503U +GNO                =       GPN500n                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 43733} G2P503U +GHO2               =       GPH501U                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 43734} G2P503U +GNO3               =       G1P502k +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 43735} G2P503U +MEPERO             =  0.340G1P502k + 0.330GPN501x + 0.330GPN500w                 : ARR( 0.565E-13,  -845., 0.0);
+{ 43736} G2P503U +PERO1              =  0.460G1P502k + 0.270GPN501x + 0.270GPN500w                 : ARR( 0.434E-13,  -900., 0.0);
+{ 43737} G2P503U +PERO2              =  0.400G1P502k + 0.300GPN501x + 0.300GPN500w                 : ARR( 0.162E-13, -1400., 0.0);
+{ 43738} G2P503U +PERO3              =  0.460G1P502k + 0.270GPN501x + 0.270GPN500w                 : ARR( 0.488E-13, -1250., 0.0);
+{ 43739} G2P503U +PERO5              =  0.460G1P502k + 0.270GPN501x + 0.270GPN500w                 : ARR( 0.183E-11,   450., 0.0);
+{ 43740} G2P503U +PERO6              =  0.300G1P502k + 0.350GPN501x + 0.350GPN500w                 : ARR( 0.168E-13, -1300., 0.0);
+{ 43741} G2P503U +PERO9              =  0.650G1P502k + 0.350GPN500w                                : ARR( 0.100E-10,     0., 0.0);
+{ 43742} G1P504X                     =       G2P503W                                               : ARR( 0.240E+12,  4177., 0.0);
+{ 43743} G1P504X                     =       GHD4008 +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 43744} G2P503W +GNO                =       G1P504Y +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 43745} G2P503W +GNO                =       GPH501d                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 43746} G2P503W +GHO2               =       GPH501e                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 43747} G2P503W +GNO3               =       G1P504Y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 43748} G2P503W +MEPERO             =  0.480G1P504Y + 0.260GPH500o + 0.260GPH501m                 : ARR( 0.164E-12,  -795., 0.0);
+{ 43749} G2P503W +PERO1              =  0.600G1P504Y + 0.200GPH500o + 0.200GPH501m                 : ARR( 0.126E-12,  -850., 0.0);
+{ 43750} G2P503W +PERO2              =  0.560G1P504Y + 0.220GPH500o + 0.220GPH501m                 : ARR( 0.471E-13, -1350., 0.0);
+{ 43751} G2P503W +PERO3              =  0.600G1P504Y + 0.200GPH500o + 0.200GPH501m                 : ARR( 0.142E-12, -1200., 0.0);
+{ 43752} G2P503W +PERO5              =  0.600G1P504Y + 0.200GPH500o + 0.200GPH501m                 : ARR( 0.533E-11,   500., 0.0);
+{ 43753} G2P503W +PERO6              =  0.460G1P504Y + 0.270GPH500o + 0.270GPH501m                 : ARR( 0.488E-13, -1250., 0.0);
+{ 43754} G2P503W +PERO9              =  0.800G1P504Y + 0.200GPH501m                                : ARR( 0.100E-10,     0., 0.0);
+{ 43755} G1P504Y                     =       GPH501l +      GHO2                                   : ARR( 0.800E+11,  2246., 0.0);
+{ 43756} G1P504Y                     =       GPH400p +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 43757} GHH502A +GHO                =       GHN502o +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 43758} GHH502A +GHO                =       GHN502r +      GHO                                    : ARR( 0.262E-10,     0., 0.0);
+{ 43759} GHH502A +GHO                =       G2H503M                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 43760} GHH502A +GHO                =       G2H503N                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 43761} GHH502A+HV               =       G3K2000 +      GHN3007 +      GHO                     :  0.100E+01*SUN;
+{ 43762} GHH502A+HV               =       G1H504w +      GHO                                    :  0.100E+01*SUN;
+{ 43763} GHH502A+HV               =       G1H5051 +      GHO                                    :  0.100E+01*SUN;
+{ 43764} GHH502A+HV               =       G1H50AK +      GNO2                                   :  0.100E+01*SUN;
+{ 43765} G2H503M +GNO                =       G1H504w +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 43766} G2H503M +GNO                =       GHN502m                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 43767} G2H503M +GHO2               =       GHH502A                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 43768} G2H503M +GNO3               =       G1H504w +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 43769} G2H503M +MEPERO             =  0.340G1H504w + 0.330GHN502n + 0.330GHN502o                 : ARR( 0.565E-13,  -845., 0.0);
+{ 43770} G2H503M +PERO1              =  0.460G1H504w + 0.270GHN502n + 0.270GHN502o                 : ARR( 0.434E-13,  -900., 0.0);
+{ 43771} G2H503M +PERO2              =  0.400G1H504w + 0.300GHN502n + 0.300GHN502o                 : ARR( 0.162E-13, -1400., 0.0);
+{ 43772} G2H503M +PERO3              =  0.460G1H504w + 0.270GHN502n + 0.270GHN502o                 : ARR( 0.488E-13, -1250., 0.0);
+{ 43773} G2H503M +PERO5              =  0.460G1H504w + 0.270GHN502n + 0.270GHN502o                 : ARR( 0.183E-11,   450., 0.0);
+{ 43774} G2H503M +PERO6              =  0.300G1H504w + 0.350GHN502n + 0.350GHN502o                 : ARR( 0.168E-13, -1300., 0.0);
+{ 43775} G2H503M +PERO9              =  0.650G1H504w + 0.350GHN502o                                : ARR( 0.100E-10,     0., 0.0);
+{ 43776} G2H503N +GNO                =       G1H5051 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 43777} G2H503N +GNO                =       GHN502p                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 43778} G2H503N +GHO2               =       GHH502A                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 43779} G2H503N +GNO3               =       G1H5051 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 43780} G2H503N +MEPERO             =  0.340G1H5051 + 0.330GHN502q + 0.330GHN502r                 : ARR( 0.565E-13,  -845., 0.0);
+{ 43781} G2H503N +PERO1              =  0.460G1H5051 + 0.270GHN502q + 0.270GHN502r                 : ARR( 0.434E-13,  -900., 0.0);
+{ 43782} G2H503N +PERO2              =  0.400G1H5051 + 0.300GHN502q + 0.300GHN502r                 : ARR( 0.162E-13, -1400., 0.0);
+{ 43783} G2H503N +PERO3              =  0.460G1H5051 + 0.270GHN502q + 0.270GHN502r                 : ARR( 0.488E-13, -1250., 0.0);
+{ 43784} G2H503N +PERO5              =  0.460G1H5051 + 0.270GHN502q + 0.270GHN502r                 : ARR( 0.183E-11,   450., 0.0);
+{ 43785} G2H503N +PERO6              =  0.300G1H5051 + 0.350GHN502q + 0.350GHN502r                 : ARR( 0.168E-13, -1300., 0.0);
+{ 43786} G2H503N +PERO9              =  0.650G1H5051 + 0.350GHN502r                                : ARR( 0.100E-10,     0., 0.0);
+{ 43787} G1H50AK +OXYGEN             =       GHH502y +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 43788} G1H50AK                     =       GHD4007 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5636., 0.0);
+{ 43789} GHH502B +GHO                =       GHK500U +      GHO                                    : ARR( 0.206E-10,     0., 0.0);
+{ 43790} GHH502B +GHO                =       GHK500j +      GHO                                    : ARR( 0.254E-10,     0., 0.0);
+{ 43791} GHH502B +GHO                =       GHH5029 +      GHO2                                   : ARR( 0.129E-10,     0., 0.0);
+{ 43792} GHH502B +GHO                =       G2H503O                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 43793} GHH502B +GHO                =       G2H503P                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 43794} GHH502B+HV               =       G1H503L +      GHO                                    :  0.100E+01*SUN;
+{ 43795} GHH502B+HV               =       G3H3001 +      GDO2000 +      GHO                     :  0.100E+01*SUN;
+{ 43796} GHH502B+HV               =       G1H505h +      GHO                                    :  0.100E+01*SUN;
+{ 43797} G2H503O +GNO                =       G1H503L +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 43798} G2H503O +GNO                =       GHN501p                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 43799} G2H503O +GHO2               =       GHH502B                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 43800} G2H503O +GNO3               =       G1H503L +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 43801} G2H503O +MEPERO             =  0.340G1H503L + 0.330GHK500q + 0.330GHK500U                 : ARR( 0.565E-13,  -845., 0.0);
+{ 43802} G2H503O +PERO1              =  0.460G1H503L + 0.270GHK500q + 0.270GHK500U                 : ARR( 0.434E-13,  -900., 0.0);
+{ 43803} G2H503O +PERO2              =  0.400G1H503L + 0.300GHK500q + 0.300GHK500U                 : ARR( 0.162E-13, -1400., 0.0);
+{ 43804} G2H503O +PERO3              =  0.460G1H503L + 0.270GHK500q + 0.270GHK500U                 : ARR( 0.488E-13, -1250., 0.0);
+{ 43805} G2H503O +PERO5              =  0.460G1H503L + 0.270GHK500q + 0.270GHK500U                 : ARR( 0.183E-11,   450., 0.0);
+{ 43806} G2H503O +PERO6              =  0.300G1H503L + 0.350GHK500q + 0.350GHK500U                 : ARR( 0.168E-13, -1300., 0.0);
+{ 43807} G2H503O +PERO9              =  0.650G1H503L + 0.350GHK500U                                : ARR( 0.100E-10,     0., 0.0);
+{ 43808} G2H503P +GNO                =       G1H505h +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 43809} G2H503P +GNO                =       GHN503G                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 43810} G2H503P +GHO2               =       GHH502B                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 43811} G2H503P +GNO3               =       G1H505h +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 43812} G2H503P +MEPERO             =  0.340G1H505h + 0.330GHK500s + 0.330GHK500j                 : ARR( 0.565E-13,  -845., 0.0);
+{ 43813} G2H503P +PERO1              =  0.460G1H505h + 0.270GHK500s + 0.270GHK500j                 : ARR( 0.434E-13,  -900., 0.0);
+{ 43814} G2H503P +PERO2              =  0.400G1H505h + 0.300GHK500s + 0.300GHK500j                 : ARR( 0.162E-13, -1400., 0.0);
+{ 43815} G2H503P +PERO3              =  0.460G1H505h + 0.270GHK500s + 0.270GHK500j                 : ARR( 0.488E-13, -1250., 0.0);
+{ 43816} G2H503P +PERO5              =  0.460G1H505h + 0.270GHK500s + 0.270GHK500j                 : ARR( 0.183E-11,   450., 0.0);
+{ 43817} G2H503P +PERO6              =  0.300G1H505h + 0.350GHK500s + 0.350GHK500j                 : ARR( 0.168E-13, -1300., 0.0);
+{ 43818} G2H503P +PERO9              =  0.650G1H505h + 0.350GHK500j                                : ARR( 0.100E-10,     0., 0.0);
+{ 43819} GHD5019 +GHO                =       GHD500z +      GHO2                                   : ARR( 0.267E-10,     0., 0.0);
+{ 43820} GHD5019 +GHO                =       GDK500U +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 43821} GHD5019 +GHO                =       G3H400A +      GCO                                    : ARR( 0.127E-10,     0., 0.0);
+{ 43822} GHD5019 +GHO                =       G2D500m                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 43823} GHD5019 +GNO3               =       G3H400A +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 43824} GHD5019+HV               =       G1D5018 +      GHO                                    :  0.100E+01*SUN;
+{ 43825} GHD5019+HV               =       G3H400A +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 43826} GHD5019+HV               =       GHD4008 +      GCO                                    :  0.100E+01*SUN;
+{ 43827} GHD5019+HV               =       GHO3000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 43828} G2D500m +GNO                =       G1D5018 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 43829} G2D500m +GNO                =       GND500v                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 43830} G2D500m +GHO2               =       GHD5019                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 43831} G2D500m +GNO3               =       G1D5018 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 43832} G2D500m +MEPERO             =  0.340G1D5018 + 0.330GDK500T + 0.330GDK500U                 : ARR( 0.565E-13,  -845., 0.0);
+{ 43833} G2D500m +PERO1              =  0.460G1D5018 + 0.270GDK500T + 0.270GDK500U                 : ARR( 0.434E-13,  -900., 0.0);
+{ 43834} G2D500m +PERO2              =  0.400G1D5018 + 0.300GDK500T + 0.300GDK500U                 : ARR( 0.162E-13, -1400., 0.0);
+{ 43835} G2D500m +PERO3              =  0.460G1D5018 + 0.270GDK500T + 0.270GDK500U                 : ARR( 0.488E-13, -1250., 0.0);
+{ 43836} G2D500m +PERO5              =  0.460G1D5018 + 0.270GDK500T + 0.270GDK500U                 : ARR( 0.183E-11,   450., 0.0);
+{ 43837} G2D500m +PERO6              =  0.300G1D5018 + 0.350GDK500T + 0.350GDK500U                 : ARR( 0.168E-13, -1300., 0.0);
+{ 43838} G2D500m +PERO9              =  0.650G1D5018 + 0.350GDK500U                                : ARR( 0.100E-10,     0., 0.0);
+{ 43839} GGH501G +GHO                =       GGH502L +      GHO2                                   : ARR( 0.962E-11,     0., 0.0);
+{ 43840} GGH501G +GHO                =       GGH500i +      GHO                                    : ARR( 0.473E-10,     0., 0.0);
+{ 43841} GGH501G +GHO                =       GGH502S +      GHO                                    : ARR( 0.289E-10,     0., 0.0);
+{ 43842} GGH501G+HV               =       G1G502r +      GHO                                    :  0.100E+01*SUN;
+{ 43843} GGH501G+HV               =       G1G503L +      GHO                                    :  0.100E+01*SUN;
+{ 43844} GGH501G+HV               =       GHD4008 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 43845} GAH501U +GHO                =       GAH502a +      GHO2                                   : ARR( 0.936E-11,     0., 0.0);
+{ 43846} GAH501U +GHO                =       GAH500n +      GHO                                    : ARR( 0.461E-10,     0., 0.0);
+{ 43847} GAH501U +GHO                =       GAH502j +      GHO                                    : ARR( 0.208E-10,     0., 0.0);
+{ 43848} GAH501U+HV               =       G1A504E +      GHO                                    :  0.100E+01*SUN;
+{ 43849} GAH501U+HV               =       G1A504M +      GHO                                    :  0.100E+01*SUN;
+{ 43850} GPH501W                     =       G3H500u +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 43851} GPH501W +GHO                =       GPH502l +      GHO2                                   : ARR( 0.922E-11,     0., 0.0);
+{ 43852} GPH501W +GHO                =       GPH500p +      GHO                                    : ARR( 0.453E-10,     0., 0.0);
+{ 43853} GPH501W +GHO                =       GPH502r +      GHO                                    : ARR( 0.277E-10,     0., 0.0);
+{ 43854} GPH501W+HV               =       G1P502n +      GHO                                    :  0.100E+01*SUN;
+{ 43855} GPH501W+HV               =       G1P504X +      GHO                                    :  0.100E+01*SUN;
+{ 43856} GPH501W+HV               =       G3H500u +      GNO2                                   :  0.100E+01*SUN;
+{ 43857} GGH501H +GHO                =       GGH5021 +      GHO2                                   : ARR( 0.845E-11,     0., 0.0);
+{ 43858} GGH501H +GHO                =       GGH500i +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 43859} GGH501H +GHO                =       GGK500U +      GHO                                    : ARR( 0.254E-10,     0., 0.0);
+{ 43860} GGH501H +GHO                =       G2G502L                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 43861} GGH501H +GHO                =       G3H500v                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 43862} GGH501H+HV               =       G1G503N +      GHO                                    :  0.100E+01*SUN;
+{ 43863} GGH501H+HV               =       GDO4005 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 43864} G2G502L +GNO                =       G1G503N +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 43865} G2G502L +GNO                =       GGN501e                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 43866} G2G502L +GHO2               =       GGH501H                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 43867} G2G502L +GNO3               =       G1G503N +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 43868} G2G502L +MEPERO             =  0.340G1G503N + 0.330GGO500B + 0.330GGK500U                 : ARR( 0.565E-13,  -845., 0.0);
+{ 43869} G2G502L +PERO1              =  0.460G1G503N + 0.270GGO500B + 0.270GGK500U                 : ARR( 0.434E-13,  -900., 0.0);
+{ 43870} G2G502L +PERO2              =  0.400G1G503N + 0.300GGO500B + 0.300GGK500U                 : ARR( 0.162E-13, -1400., 0.0);
+{ 43871} G2G502L +PERO3              =  0.460G1G503N + 0.270GGO500B + 0.270GGK500U                 : ARR( 0.488E-13, -1250., 0.0);
+{ 43872} G2G502L +PERO5              =  0.460G1G503N + 0.270GGO500B + 0.270GGK500U                 : ARR( 0.183E-11,   450., 0.0);
+{ 43873} G2G502L +PERO6              =  0.300G1G503N + 0.350GGO500B + 0.350GGK500U                 : ARR( 0.168E-13, -1300., 0.0);
+{ 43874} G2G502L +PERO9              =  0.650G1G503N + 0.350GGK500U                                : ARR( 0.100E-10,     0., 0.0);
+{ 43875} G1G503N                     =       G2G502M                                               : ARR( 0.240E+12,  4177., 0.0);
+{ 43876} G1G503N                     =       GDO3001 +      GGD2000 +      GHO2                    : ARR( 0.200E+15,  5342., 0.0);
+{ 43877} G1G503N                     =       GDO4005 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 43878} G2G502M +GNO                =       G1G503O +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 43879} G2G502M +GNO                =       GGN501N                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 43880} G2G502M +GHO2               =       GGH501a                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 43881} G2G502M +GNO3               =       G1G503O +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 43882} G2G502M +MEPERO             =  0.480G1G503O + 0.260GGO500C + 0.260GGD500A                 : ARR( 0.164E-12,  -795., 0.0);
+{ 43883} G2G502M +PERO1              =  0.600G1G503O + 0.200GGO500C + 0.200GGD500A                 : ARR( 0.126E-12,  -850., 0.0);
+{ 43884} G2G502M +PERO2              =  0.560G1G503O + 0.220GGO500C + 0.220GGD500A                 : ARR( 0.471E-13, -1350., 0.0);
+{ 43885} G2G502M +PERO3              =  0.600G1G503O + 0.200GGO500C + 0.200GGD500A                 : ARR( 0.142E-12, -1200., 0.0);
+{ 43886} G2G502M +PERO5              =  0.600G1G503O + 0.200GGO500C + 0.200GGD500A                 : ARR( 0.533E-11,   500., 0.0);
+{ 43887} G2G502M +PERO6              =  0.460G1G503O + 0.270GGO500C + 0.270GGD500A                 : ARR( 0.488E-13, -1250., 0.0);
+{ 43888} G2G502M +PERO9              =  0.800G1G503O + 0.200GGD500A                                : ARR( 0.100E-10,     0., 0.0);
+{ 43889} G1G503O                     =       GGK500P +      GHO2                                   : ARR( 0.800E+11,  2246., 0.0);
+{ 43890} G1G503O                     =       GGD4006 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 43891} GAH501W +GHO                =       GAH502K +      GHO2                                   : ARR( 0.858E-11,     0., 0.0);
+{ 43892} GAH501W +GHO                =       GAH500n +      GHO2                                   : ARR( 0.105E-10,     0., 0.0);
+{ 43893} GAH501W +GHO                =       GAK500Y +      GHO                                    : ARR( 0.190E-10,     0., 0.0);
+{ 43894} GAH501W +GHO                =       G2A503O                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 43895} GAH501W+HV               =       G1A504O +      GHO                                    :  0.100E+01*SUN;
+{ 43896} G2A503O +GNO                =       G1A504O +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 43897} G2A503O +GNO                =       GAN5025                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 43898} G2A503O +GHO2               =       GAH501W                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 43899} G2A503O +GNO3               =       G1A504O +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 43900} G2A503O +MEPERO             =  0.340G1A504O + 0.330GAO500A + 0.330GAK500Y                 : ARR( 0.565E-13,  -845., 0.0);
+{ 43901} G2A503O +PERO1              =  0.460G1A504O + 0.270GAO500A + 0.270GAK500Y                 : ARR( 0.434E-13,  -900., 0.0);
+{ 43902} G2A503O +PERO2              =  0.400G1A504O + 0.300GAO500A + 0.300GAK500Y                 : ARR( 0.162E-13, -1400., 0.0);
+{ 43903} G2A503O +PERO3              =  0.460G1A504O + 0.270GAO500A + 0.270GAK500Y                 : ARR( 0.488E-13, -1250., 0.0);
+{ 43904} G2A503O +PERO5              =  0.460G1A504O + 0.270GAO500A + 0.270GAK500Y                 : ARR( 0.183E-11,   450., 0.0);
+{ 43905} G2A503O +PERO6              =  0.300G1A504O + 0.350GAO500A + 0.350GAK500Y                 : ARR( 0.168E-13, -1300., 0.0);
+{ 43906} G2A503O +PERO9              =  0.650G1A504O + 0.350GAK500Y                                : ARR( 0.100E-10,     0., 0.0);
+{ 43907} G1A504O                     =       G2A503P                                               : ARR( 0.240E+12,  4177., 0.0);
+{ 43908} G1A504O                     =       GDO3001 +      GAD2000 +      GHO2                    : ARR( 0.200E+15,  5342., 0.0);
+{ 43909} G1A504O                     =       GDO4005 +      GCO     +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 43910} G2A503P +GNO                =       G1A504P +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 43911} G2A503P +GNO                =       GAN501Q                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 43912} G2A503P +GHO2               =       GAH501i                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 43913} G2A503P +GNO3               =       G1A504P +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 43914} G2A503P +MEPERO             =  0.480G1A504P + 0.260GAO500B + 0.260GAD500C                 : ARR( 0.164E-12,  -795., 0.0);
+{ 43915} G2A503P +PERO1              =  0.600G1A504P + 0.200GAO500B + 0.200GAD500C                 : ARR( 0.126E-12,  -850., 0.0);
+{ 43916} G2A503P +PERO2              =  0.560G1A504P + 0.220GAO500B + 0.220GAD500C                 : ARR( 0.471E-13, -1350., 0.0);
+{ 43917} G2A503P +PERO3              =  0.600G1A504P + 0.200GAO500B + 0.200GAD500C                 : ARR( 0.142E-12, -1200., 0.0);
+{ 43918} G2A503P +PERO5              =  0.600G1A504P + 0.200GAO500B + 0.200GAD500C                 : ARR( 0.533E-11,   500., 0.0);
+{ 43919} G2A503P +PERO6              =  0.460G1A504P + 0.270GAO500B + 0.270GAD500C                 : ARR( 0.488E-13, -1250., 0.0);
+{ 43920} G2A503P +PERO9              =  0.800G1A504P + 0.200GAD500C                                : ARR( 0.100E-10,     0., 0.0);
+{ 43921} G1A504P                     =       GAK500b +      GHO2                                   : ARR( 0.800E+11,  2381., 0.0);
+{ 43922} G1A504P                     =       GAD4007 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 43923} GPH501X                     =       G3H500v +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 43924} GPH501X +GHO                =       GPH502J +      GHO2                                   : ARR( 0.846E-11,     0., 0.0);
+{ 43925} GPH501X +GHO                =       GPH500p +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 43926} GPH501X +GHO                =       GPK500U +      GHO                                    : ARR( 0.254E-10,     0., 0.0);
+{ 43927} GPH501X +GHO                =       G2P503X                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 43928} GPH501X+HV               =       G1P504Z +      GHO                                    :  0.100E+01*SUN;
+{ 43929} GPH501X+HV               =       G3H500v +      GNO2                                   :  0.100E+01*SUN;
+{ 43930} G2P503X +GNO                =       G1P504Z +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 43931} G2P503X +GNO                =       GPN501x                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 43932} G2P503X +GHO2               =       GPH501X                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 43933} G2P503X +GNO3               =       G1P504Z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 43934} G2P503X +MEPERO             =  0.340G1P504Z + 0.330GPO500B + 0.330GPK500U                 : ARR( 0.565E-13,  -845., 0.0);
+{ 43935} G2P503X +PERO1              =  0.460G1P504Z + 0.270GPO500B + 0.270GPK500U                 : ARR( 0.434E-13,  -900., 0.0);
+{ 43936} G2P503X +PERO2              =  0.400G1P504Z + 0.300GPO500B + 0.300GPK500U                 : ARR( 0.162E-13, -1400., 0.0);
+{ 43937} G2P503X +PERO3              =  0.460G1P504Z + 0.270GPO500B + 0.270GPK500U                 : ARR( 0.488E-13, -1250., 0.0);
+{ 43938} G2P503X +PERO5              =  0.460G1P504Z + 0.270GPO500B + 0.270GPK500U                 : ARR( 0.183E-11,   450., 0.0);
+{ 43939} G2P503X +PERO6              =  0.300G1P504Z + 0.350GPO500B + 0.350GPK500U                 : ARR( 0.168E-13, -1300., 0.0);
+{ 43940} G2P503X +PERO9              =  0.650G1P504Z + 0.350GPK500U                                : ARR( 0.100E-10,     0., 0.0);
+{ 43941} G1P504Z                     =       G2P503Y                                               : ARR( 0.240E+12,  4177., 0.0);
+{ 43942} G1P504Z                     =       GDO3001 +      GPD2000 +      GHO2                    : ARR( 0.200E+15,  5342., 0.0);
+{ 43943} G1P504Z                     =       GDO4005 +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 43944} G2P503Y +GNO                =       G1P504a +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 43945} G2P503Y +GNO                =       GPN501T                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 43946} G2P503Y +GHO2               =       GPH501g                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 43947} G2P503Y +GNO3               =       G1P504a +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 43948} G2P503Y +MEPERO             =  0.480G1P504a + 0.260GPO500C + 0.260GPD500A                 : ARR( 0.164E-12,  -795., 0.0);
+{ 43949} G2P503Y +PERO1              =  0.600G1P504a + 0.200GPO500C + 0.200GPD500A                 : ARR( 0.126E-12,  -850., 0.0);
+{ 43950} G2P503Y +PERO2              =  0.560G1P504a + 0.220GPO500C + 0.220GPD500A                 : ARR( 0.471E-13, -1350., 0.0);
+{ 43951} G2P503Y +PERO3              =  0.600G1P504a + 0.200GPO500C + 0.200GPD500A                 : ARR( 0.142E-12, -1200., 0.0);
+{ 43952} G2P503Y +PERO5              =  0.600G1P504a + 0.200GPO500C + 0.200GPD500A                 : ARR( 0.533E-11,   500., 0.0);
+{ 43953} G2P503Y +PERO6              =  0.460G1P504a + 0.270GPO500C + 0.270GPD500A                 : ARR( 0.488E-13, -1250., 0.0);
+{ 43954} G2P503Y +PERO9              =  0.800G1P504a + 0.200GPD500A                                : ARR( 0.100E-10,     0., 0.0);
+{ 43955} G1P504a                     =       GPK500P +      GHO2                                   : ARR( 0.800E+11,  2246., 0.0);
+{ 43956} G1P504a                     =       GPD4006 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 43957} GGH3008 +GHO                =       GGH3007 +      GHO                                    : ARR( 0.161E-10,     0., 0.0);
+{ 43958} GGH3008 +GHO                =       GGH3006 +      GHO                                    : ARR( 0.251E-10,     0., 0.0);
+{ 43959} GGH3008 +GHO                =       G2G3008                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 43960} GGH3008 +GHO                =       G2G300A                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 43961} GGH3008 +GHO                =       G3H3007                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 43962} GGH3008+HV               =       G1G3007 +      GHO                                    :  0.100E+01*SUN;
+{ 43963} GGH3008+HV               =       G1G300A +      GHO                                    :  0.100E+01*SUN;
+{ 43964} GGH3008+HV               =       GHD2000 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 43965} G2G300A +GNO                =       G1G300A +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{ 43966} G2G300A +GNO                =       GGH3005                                               : ARR( 0.622E-13,  -360., 0.0);
+{ 43967} G2G300A +GHO2               =       GGH3008                                               : ARR( 0.179E-12, -1250., 0.0);
+{ 43968} G2G300A +GNO3               =       G1G300A +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 43969} G2G300A +MEPERO             =  0.340G1G300A + 0.330GGH3004 + 0.330GGH3006                 : ARR( 0.565E-13,  -845., 0.0);
+{ 43970} G2G300A +PERO1              =  0.460G1G300A + 0.270GGH3004 + 0.270GGH3006                 : ARR( 0.434E-13,  -900., 0.0);
+{ 43971} G2G300A +PERO2              =  0.400G1G300A + 0.300GGH3004 + 0.300GGH3006                 : ARR( 0.162E-13, -1400., 0.0);
+{ 43972} G2G300A +PERO3              =  0.460G1G300A + 0.270GGH3004 + 0.270GGH3006                 : ARR( 0.488E-13, -1250., 0.0);
+{ 43973} G2G300A +PERO5              =  0.460G1G300A + 0.270GGH3004 + 0.270GGH3006                 : ARR( 0.183E-11,   450., 0.0);
+{ 43974} G2G300A +PERO6              =  0.300G1G300A + 0.350GGH3004 + 0.350GGH3006                 : ARR( 0.168E-13, -1300., 0.0);
+{ 43975} G2G300A +PERO9              =  0.650G1G300A + 0.350GGH3006                                : ARR( 0.100E-10,     0., 0.0);
+{ 43976} GAH3008 +GHO                =       GAH3006 +      GHO                                    : ARR( 0.188E-10,     0., 0.0);
+{ 43977} GAH3008 +GHO                =       GAH3007 +      GHO                                    : ARR( 0.163E-10,     0., 0.0);
+{ 43978} GAH3008 +GHO                =       G2A300B                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 43979} GAH3008 +GHO                =       G2A300A                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 43980} GAH3008+HV               =       G1A300B +      GHO                                    :  0.100E+01*SUN;
+{ 43981} GAH3008+HV               =       G1A3007 +      GHO                                    :  0.100E+01*SUN;
+{ 43982} G2A300B +GNO                =       G1A300B +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{ 43983} G2A300B +GNO                =       GAH3005                                               : ARR( 0.622E-13,  -360., 0.0);
+{ 43984} G2A300B +GHO2               =       GAH3008                                               : ARR( 0.179E-12, -1250., 0.0);
+{ 43985} G2A300B +GNO3               =       G1A300B +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 43986} G2A300B +MEPERO             =  0.340G1A300B + 0.330GAH3004 + 0.330GAH3006                 : ARR( 0.565E-13,  -845., 0.0);
+{ 43987} G2A300B +PERO1              =  0.460G1A300B + 0.270GAH3004 + 0.270GAH3006                 : ARR( 0.434E-13,  -900., 0.0);
+{ 43988} G2A300B +PERO2              =  0.400G1A300B + 0.300GAH3004 + 0.300GAH3006                 : ARR( 0.162E-13, -1400., 0.0);
+{ 43989} G2A300B +PERO3              =  0.460G1A300B + 0.270GAH3004 + 0.270GAH3006                 : ARR( 0.488E-13, -1250., 0.0);
+{ 43990} G2A300B +PERO5              =  0.460G1A300B + 0.270GAH3004 + 0.270GAH3006                 : ARR( 0.183E-11,   450., 0.0);
+{ 43991} G2A300B +PERO6              =  0.300G1A300B + 0.350GAH3004 + 0.350GAH3006                 : ARR( 0.168E-13, -1300., 0.0);
+{ 43992} G2A300B +PERO9              =  0.650G1A300B + 0.350GAH3006                                : ARR( 0.100E-10,     0., 0.0);
+{ 43993} GPH3008                     =       G3H3007 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 43994} GPH3008 +GHO                =       GPH3007 +      GHO                                    : ARR( 0.161E-10,     0., 0.0);
+{ 43995} GPH3008 +GHO                =       GPH3006 +      GHO                                    : ARR( 0.251E-10,     0., 0.0);
+{ 43996} GPH3008 +GHO                =       G2P300B                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 43997} GPH3008 +GHO                =       G2P300C                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 43998} GPH3008+HV               =       G1P3007 +      GHO                                    :  0.100E+01*SUN;
+{ 43999} GPH3008+HV               =       G1P300C +      GHO                                    :  0.100E+01*SUN;
+{ 44000} GPH3008+HV               =       G3H3007 +      GNO2                                   :  0.100E+01*SUN;
+{ 44001} G2P300C +GNO                =       G1P300C +      GNO2                                   : ARR( 0.264E-11,  -360., 0.0);
+{ 44002} G2P300C +GNO                =       GPH3005                                               : ARR( 0.622E-13,  -360., 0.0);
+{ 44003} G2P300C +GHO2               =       GPH3008                                               : ARR( 0.179E-12, -1250., 0.0);
+{ 44004} G2P300C +GNO3               =       G1P300C +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 44005} G2P300C +MEPERO             =  0.340G1P300C + 0.330GPH3004 + 0.330GPH3006                 : ARR( 0.565E-13,  -845., 0.0);
+{ 44006} G2P300C +PERO1              =  0.460G1P300C + 0.270GPH3004 + 0.270GPH3006                 : ARR( 0.434E-13,  -900., 0.0);
+{ 44007} G2P300C +PERO2              =  0.400G1P300C + 0.300GPH3004 + 0.300GPH3006                 : ARR( 0.162E-13, -1400., 0.0);
+{ 44008} G2P300C +PERO3              =  0.460G1P300C + 0.270GPH3004 + 0.270GPH3006                 : ARR( 0.488E-13, -1250., 0.0);
+{ 44009} G2P300C +PERO5              =  0.460G1P300C + 0.270GPH3004 + 0.270GPH3006                 : ARR( 0.183E-11,   450., 0.0);
+{ 44010} G2P300C +PERO6              =  0.300G1P300C + 0.350GPH3004 + 0.350GPH3006                 : ARR( 0.168E-13, -1300., 0.0);
+{ 44011} G2P300C +PERO9              =  0.650G1P300C + 0.350GPH3006                                : ARR( 0.100E-10,     0., 0.0);
+{ 44012} GHK500s +GHO                =       GKK500A +      GHO                                    : ARR( 0.208E-10,     0., 0.0);
+{ 44013} GHK500s +GHO                =       GHK500j +      GHO2                                   : ARR( 0.640E-11,     0., 0.0);
+{ 44014} GHK500s +GHO                =       GHD501B +      GHO2                                   : ARR( 0.130E-10,     0., 0.0);
+{ 44015} GHK500s +GHO                =       G2K500s                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 44016} GHK500s+HV               =       G1K500r +      GHO                                    :  0.100E+01*SUN;
+{ 44017} GHK500s+HV               =       G3H3001 +      GDO2000 +      GHO2                    :  0.100E+01*SUN;
+{ 44018} G2K500s +GNO                =       G1K500r +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 44019} G2K500s +GNO                =       GNK500i                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 44020} G2K500s +GHO2               =       GHK500s                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 44021} G2K500s +GNO3               =       G1K500r +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 44022} G2K500s +MEPERO             =  0.340G1K500r + 0.330GKO500I + 0.330GKK500A                 : ARR( 0.565E-13,  -845., 0.0);
+{ 44023} G2K500s +PERO1              =  0.460G1K500r + 0.270GKO500I + 0.270GKK500A                 : ARR( 0.434E-13,  -900., 0.0);
+{ 44024} G2K500s +PERO2              =  0.400G1K500r + 0.300GKO500I + 0.300GKK500A                 : ARR( 0.162E-13, -1400., 0.0);
+{ 44025} G2K500s +PERO3              =  0.460G1K500r + 0.270GKO500I + 0.270GKK500A                 : ARR( 0.488E-13, -1250., 0.0);
+{ 44026} G2K500s +PERO5              =  0.460G1K500r + 0.270GKO500I + 0.270GKK500A                 : ARR( 0.183E-11,   450., 0.0);
+{ 44027} G2K500s +PERO6              =  0.300G1K500r + 0.350GKO500I + 0.350GKK500A                 : ARR( 0.168E-13, -1300., 0.0);
+{ 44028} G2K500s +PERO9              =  0.650G1K500r + 0.350GKK500A                                : ARR( 0.100E-10,     0., 0.0);
+{ 44029} GHD501A +GHO                =       GDK500S +      GHO                                    : ARR( 0.350E-10,     0., 0.0);
+{ 44030} GHD501A +GHO                =       GHD501B +      GHO2                                   : ARR( 0.341E-10,     0., 0.0);
+{ 44031} GHD501A +GHO                =       GHD501M +      GHO2                                   : ARR( 0.655E-11,     0., 0.0);
+{ 44032} GHD501A +GHO                =       G3H5034                                               : ARR( 0.217E-10,     0., 0.0);
+{ 44033} GHD501A +GNO3               =       G3H5034 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 44034} GHD501A+HV               =       G1D501P +      GHO                                    :  0.100E+01*SUN;
+{ 44035} GHD501A+HV               =       GHD400H +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 44036} G3H5034 +GHO2               =  0.800GGH5023 + 0.200GAH502h + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 44037} G3H5034 +GNO                =       GHD400H +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 44038} G3H5034 +GNO2               =       GPH502L                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 44039} G3H5034 +GNO3               =       GHD400H +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 44040} G3H5034 +MEPERO             =  0.685GHD400H + 0.315GAH502h + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44041} G3H5034 +PERO1              =  0.800GHD400H + 0.200GAH502h + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44042} G3H5034 +PERO2              =  0.750GHD400H + 0.250GAH502h + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44043} G3H5034 +PERO3              =  0.800GHD400H + 0.200GAH502h + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44044} G3H5034 +PERO5              =  0.650GHD400H + 0.350GAH502h + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44045} G3H5034 +PERO6              =  0.650GHD400H + 0.350GAH502h + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44046} G3H5034 +PERO9              =       GHD400H +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 44047} GHN5062 +GHO                =       GND5017 +      GHO                                    : ARR( 0.712E-11,     0., 0.0);
+{ 44048} GHN5062 +GHO                =       G3H5035                                               : ARR( 0.221E-10,     0., 0.0);
+{ 44049} GHN5062 +GHO                =       G2N505z                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 44050} GHN5062 +GNO3               =       G3H5035 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 44051} GHN5062+HV               =       G1N506B +      GHO                                    :  0.100E+01*SUN;
+{ 44052} GHN5062+HV               =       G1H5069 +      GNO2                                   :  0.100E+01*SUN;
+{ 44053} GHN5062+HV               =       GHN400p +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 44054} G3H5035 +GHO2               =  0.800GGH503m + 0.200GAH502D + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 44055} G3H5035 +GNO                =       GHN400p +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 44056} G3H5035 +GNO2               =       GPH502C                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 44057} G3H5035 +GNO3               =       GHN400p +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 44058} G3H5035 +MEPERO             =  0.685GHN400p + 0.315GAH502D + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44059} G3H5035 +PERO1              =  0.800GHN400p + 0.200GAH502D + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44060} G3H5035 +PERO2              =  0.750GHN400p + 0.250GAH502D + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44061} G3H5035 +PERO3              =  0.800GHN400p + 0.200GAH502D + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44062} G3H5035 +PERO5              =  0.650GHN400p + 0.350GAH502D + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44063} G3H5035 +PERO6              =  0.650GHN400p + 0.350GAH502D + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44064} G3H5035 +PERO9              =       GHN400p +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 44065} G2N505z +GNO                =       G1N506B +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 44066} G2N505z +GNO                =       GNN502Z                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 44067} G2N505z +GHO2               =       GHN5062                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 44068} G2N505z +GNO3               =       G1N506B +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 44069} G2N505z +MEPERO             =  0.340G1N506B + 0.330GND500P + 0.330GND5017                 : ARR( 0.565E-13,  -845., 0.0);
+{ 44070} G2N505z +PERO1              =  0.460G1N506B + 0.270GND500P + 0.270GND5017                 : ARR( 0.434E-13,  -900., 0.0);
+{ 44071} G2N505z +PERO2              =  0.400G1N506B + 0.300GND500P + 0.300GND5017                 : ARR( 0.162E-13, -1400., 0.0);
+{ 44072} G2N505z +PERO3              =  0.460G1N506B + 0.270GND500P + 0.270GND5017                 : ARR( 0.488E-13, -1250., 0.0);
+{ 44073} G2N505z +PERO5              =  0.460G1N506B + 0.270GND500P + 0.270GND5017                 : ARR( 0.183E-11,   450., 0.0);
+{ 44074} G2N505z +PERO6              =  0.300G1N506B + 0.350GND500P + 0.350GND5017                 : ARR( 0.168E-13, -1300., 0.0);
+{ 44075} G2N505z +PERO9              =  0.650G1N506B + 0.350GND5017                                : ARR( 0.100E-10,     0., 0.0);
+{ 44076} GHH502C +GHO                =       GHD500u +      GHO                                    : ARR( 0.360E-10,     0., 0.0);
+{ 44077} GHH502C +GHO                =       GHD501B +      GHO                                    : ARR( 0.140E-09,     0., 0.0);
+{ 44078} GHH502C +GHO                =       G3H5036                                               : ARR( 0.223E-10,     0., 0.0);
+{ 44079} GHH502C +GNO3               =       G3H5036 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 44080} GHH502C+HV               =       G1H50A7 +      GHO                                    :  0.100E+01*SUN;
+{ 44081} GHH502C+HV               =       G1H5069 +      GHO                                    :  0.100E+01*SUN;
+{ 44082} GHH502C+HV               =       GHH400M +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 44083} G3H5036 +GHO2               =  0.800GGH503n + 0.200GAH5046 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 44084} G3H5036 +GNO                =       GHH400M +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 44085} G3H5036 +GNO2               =       GPH504D                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 44086} G3H5036 +GNO3               =       GHH400M +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 44087} G3H5036 +MEPERO             =  0.685GHH400M + 0.315GAH5046 + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44088} G3H5036 +PERO1              =  0.800GHH400M + 0.200GAH5046 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44089} G3H5036 +PERO2              =  0.750GHH400M + 0.250GAH5046 + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44090} G3H5036 +PERO3              =  0.800GHH400M + 0.200GAH5046 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44091} G3H5036 +PERO5              =  0.650GHH400M + 0.350GAH5046 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44092} G3H5036 +PERO6              =  0.650GHH400M + 0.350GAH5046 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44093} G3H5036 +PERO9              =       GHH400M +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 44094} GHD501B +GHO                =       GDK500R +      GHO                                    : ARR( 0.223E-10,     0., 0.0);
+{ 44095} GHD501B +GHO                =       G3H5037                                               : ARR( 0.721E-10,     0., 0.0);
+{ 44096} GHD501B +GNO3               =       G3H5037 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 44097} GHD501B+HV               =       G1D501D +      GHO                                    :  0.100E+01*SUN;
+{ 44098} GHD501B+HV               =       G3H3001 +      GDD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 44099} GHD501B+HV               =       GHD400I +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 44100} G3H5037 +GHO2               =  0.800GGH502C + 0.200GAH502Q + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 44101} G3H5037 +GNO                =       GHD400I +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 44102} G3H5037 +GNO2               =       GPH502Y                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 44103} G3H5037 +GNO3               =       GHD400I +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 44104} G3H5037 +MEPERO             =  0.685GHD400I + 0.315GAH502Q + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44105} G3H5037 +PERO1              =  0.800GHD400I + 0.200GAH502Q + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44106} G3H5037 +PERO2              =  0.750GHD400I + 0.250GAH502Q + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44107} G3H5037 +PERO3              =  0.800GHD400I + 0.200GAH502Q + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44108} G3H5037 +PERO5              =  0.650GHD400I + 0.350GAH502Q + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44109} G3H5037 +PERO6              =  0.650GHD400I + 0.350GAH502Q + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44110} G3H5037 +PERO9              =       GHD400I +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 44111} GGH400U +GHO                =       GGH400C +      GHO                                    : ARR( 0.336E-10,     0., 0.0);
+{ 44112} GGH400U +GHO                =       GGH400X +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 44113} GGH400U +GHO                =       G2G400h                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 44114} GGH400U +GHO                =       G2G400i                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 44115} GGH400U +GHO                =       G3H400L                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 44116} GGH400U+HV               =       G1G400Y +      GHO                                    :  0.100E+01*SUN;
+{ 44117} GGH400U+HV               =       G1G400d +      GHO                                    :  0.100E+01*SUN;
+{ 44118} GGH400U+HV               =       GHD3002 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 44119} G2G400h +GNO                =       G1G400Y +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 44120} G2G400h +GNO                =       GGH400B                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 44121} G2G400h +GHO2               =       GGH400U                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 44122} G2G400h +GNO3               =       G1G400Y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 44123} G2G400h +MEPERO             =  0.340G1G400Y + 0.330GGH4001 + 0.330GGH400C                 : ARR( 0.565E-13,  -845., 0.0);
+{ 44124} G2G400h +PERO1              =  0.460G1G400Y + 0.270GGH4001 + 0.270GGH400C                 : ARR( 0.434E-13,  -900., 0.0);
+{ 44125} G2G400h +PERO2              =  0.400G1G400Y + 0.300GGH4001 + 0.300GGH400C                 : ARR( 0.162E-13, -1400., 0.0);
+{ 44126} G2G400h +PERO3              =  0.460G1G400Y + 0.270GGH4001 + 0.270GGH400C                 : ARR( 0.488E-13, -1250., 0.0);
+{ 44127} G2G400h +PERO5              =  0.460G1G400Y + 0.270GGH4001 + 0.270GGH400C                 : ARR( 0.183E-11,   450., 0.0);
+{ 44128} G2G400h +PERO6              =  0.300G1G400Y + 0.350GGH4001 + 0.350GGH400C                 : ARR( 0.168E-13, -1300., 0.0);
+{ 44129} G2G400h +PERO9              =  0.650G1G400Y + 0.350GGH400C                                : ARR( 0.100E-10,     0., 0.0);
+{ 44130} G2G400i +GNO                =       G1G400d +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 44131} G2G400i +GNO                =       GGH400D                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 44132} G2G400i +GHO2               =       GGH400U                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 44133} G2G400i +GNO3               =       G1G400d +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 44134} G2G400i +MEPERO             =  0.340G1G400d + 0.330GGH400E + 0.330GGH400X                 : ARR( 0.565E-13,  -845., 0.0);
+{ 44135} G2G400i +PERO1              =  0.460G1G400d + 0.270GGH400E + 0.270GGH400X                 : ARR( 0.434E-13,  -900., 0.0);
+{ 44136} G2G400i +PERO2              =  0.400G1G400d + 0.300GGH400E + 0.300GGH400X                 : ARR( 0.162E-13, -1400., 0.0);
+{ 44137} G2G400i +PERO3              =  0.460G1G400d + 0.270GGH400E + 0.270GGH400X                 : ARR( 0.488E-13, -1250., 0.0);
+{ 44138} G2G400i +PERO5              =  0.460G1G400d + 0.270GGH400E + 0.270GGH400X                 : ARR( 0.183E-11,   450., 0.0);
+{ 44139} G2G400i +PERO6              =  0.300G1G400d + 0.350GGH400E + 0.350GGH400X                 : ARR( 0.168E-13, -1300., 0.0);
+{ 44140} G2G400i +PERO9              =  0.650G1G400d + 0.350GGH400X                                : ARR( 0.100E-10,     0., 0.0);
+{ 44141} GAH400W +GHO                =       GAH400D +      GHO                                    : ARR( 0.339E-10,     0., 0.0);
+{ 44142} GAH400W +GHO                =       GAH400Z +      GHO                                    : ARR( 0.188E-10,     0., 0.0);
+{ 44143} GAH400W +GHO                =       G2A400q                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 44144} GAH400W +GHO                =       G2A400r                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 44145} GAH400W+HV               =       G1A400g +      GHO                                    :  0.100E+01*SUN;
+{ 44146} GAH400W+HV               =       G1A400o +      GHO                                    :  0.100E+01*SUN;
+{ 44147} G2A400q +GNO                =       G1A400g +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 44148} G2A400q +GNO                =       GAH400B                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 44149} G2A400q +GHO2               =       GAH400W                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 44150} G2A400q +GNO3               =       G1A400g +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 44151} G2A400q +MEPERO             =  0.340G1A400g + 0.330GAH4001 + 0.330GAH400D                 : ARR( 0.565E-13,  -845., 0.0);
+{ 44152} G2A400q +PERO1              =  0.460G1A400g + 0.270GAH4001 + 0.270GAH400D                 : ARR( 0.434E-13,  -900., 0.0);
+{ 44153} G2A400q +PERO2              =  0.400G1A400g + 0.300GAH4001 + 0.300GAH400D                 : ARR( 0.162E-13, -1400., 0.0);
+{ 44154} G2A400q +PERO3              =  0.460G1A400g + 0.270GAH4001 + 0.270GAH400D                 : ARR( 0.488E-13, -1250., 0.0);
+{ 44155} G2A400q +PERO5              =  0.460G1A400g + 0.270GAH4001 + 0.270GAH400D                 : ARR( 0.183E-11,   450., 0.0);
+{ 44156} G2A400q +PERO6              =  0.300G1A400g + 0.350GAH4001 + 0.350GAH400D                 : ARR( 0.168E-13, -1300., 0.0);
+{ 44157} G2A400q +PERO9              =  0.650G1A400g + 0.350GAH400D                                : ARR( 0.100E-10,     0., 0.0);
+{ 44158} G2A400r +GNO                =       G1A400o +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 44159} G2A400r +GNO                =       GAH400F                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 44160} G2A400r +GHO2               =       GAH400W                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 44161} G2A400r +GNO3               =       G1A400o +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 44162} G2A400r +MEPERO             =  0.340G1A400o + 0.330GAH400G + 0.330GAH400Z                 : ARR( 0.565E-13,  -845., 0.0);
+{ 44163} G2A400r +PERO1              =  0.460G1A400o + 0.270GAH400G + 0.270GAH400Z                 : ARR( 0.434E-13,  -900., 0.0);
+{ 44164} G2A400r +PERO2              =  0.400G1A400o + 0.300GAH400G + 0.300GAH400Z                 : ARR( 0.162E-13, -1400., 0.0);
+{ 44165} G2A400r +PERO3              =  0.460G1A400o + 0.270GAH400G + 0.270GAH400Z                 : ARR( 0.488E-13, -1250., 0.0);
+{ 44166} G2A400r +PERO5              =  0.460G1A400o + 0.270GAH400G + 0.270GAH400Z                 : ARR( 0.183E-11,   450., 0.0);
+{ 44167} G2A400r +PERO6              =  0.300G1A400o + 0.350GAH400G + 0.350GAH400Z                 : ARR( 0.168E-13, -1300., 0.0);
+{ 44168} G2A400r +PERO9              =  0.650G1A400o + 0.350GAH400Z                                : ARR( 0.100E-10,     0., 0.0);
+{ 44169} GPH400X                     =       G3H400L +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 44170} GPH400X +GHO                =       GPH400E +      GHO                                    : ARR( 0.336E-10,     0., 0.0);
+{ 44171} GPH400X +GHO                =       GPH400a +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 44172} GPH400X +GHO                =       G2P400u                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 44173} GPH400X +GHO                =       G2P400v                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 44174} GPH400X+HV               =       G1P400h +      GHO                                    :  0.100E+01*SUN;
+{ 44175} GPH400X+HV               =       G1P400p +      GHO                                    :  0.100E+01*SUN;
+{ 44176} GPH400X+HV               =       G3H400L +      GNO2                                   :  0.100E+01*SUN;
+{ 44177} G2P400u +GNO                =       G1P400h +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 44178} G2P400u +GNO                =       GPH400B                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 44179} G2P400u +GHO2               =       GPH400X                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 44180} G2P400u +GNO3               =       G1P400h +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 44181} G2P400u +MEPERO             =  0.340G1P400h + 0.330GPH4001 + 0.330GPH400E                 : ARR( 0.565E-13,  -845., 0.0);
+{ 44182} G2P400u +PERO1              =  0.460G1P400h + 0.270GPH4001 + 0.270GPH400E                 : ARR( 0.434E-13,  -900., 0.0);
+{ 44183} G2P400u +PERO2              =  0.400G1P400h + 0.300GPH4001 + 0.300GPH400E                 : ARR( 0.162E-13, -1400., 0.0);
+{ 44184} G2P400u +PERO3              =  0.460G1P400h + 0.270GPH4001 + 0.270GPH400E                 : ARR( 0.488E-13, -1250., 0.0);
+{ 44185} G2P400u +PERO5              =  0.460G1P400h + 0.270GPH4001 + 0.270GPH400E                 : ARR( 0.183E-11,   450., 0.0);
+{ 44186} G2P400u +PERO6              =  0.300G1P400h + 0.350GPH4001 + 0.350GPH400E                 : ARR( 0.168E-13, -1300., 0.0);
+{ 44187} G2P400u +PERO9              =  0.650G1P400h + 0.350GPH400E                                : ARR( 0.100E-10,     0., 0.0);
+{ 44188} G2P400v +GNO                =       G1P400p +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 44189} G2P400v +GNO                =       GPH400G                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 44190} G2P400v +GHO2               =       GPH400X                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 44191} G2P400v +GNO3               =       G1P400p +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 44192} G2P400v +MEPERO             =  0.340G1P400p + 0.330GPH400H + 0.330GPH400a                 : ARR( 0.565E-13,  -845., 0.0);
+{ 44193} G2P400v +PERO1              =  0.460G1P400p + 0.270GPH400H + 0.270GPH400a                 : ARR( 0.434E-13,  -900., 0.0);
+{ 44194} G2P400v +PERO2              =  0.400G1P400p + 0.300GPH400H + 0.300GPH400a                 : ARR( 0.162E-13, -1400., 0.0);
+{ 44195} G2P400v +PERO3              =  0.460G1P400p + 0.270GPH400H + 0.270GPH400a                 : ARR( 0.488E-13, -1250., 0.0);
+{ 44196} G2P400v +PERO5              =  0.460G1P400p + 0.270GPH400H + 0.270GPH400a                 : ARR( 0.183E-11,   450., 0.0);
+{ 44197} G2P400v +PERO6              =  0.300G1P400p + 0.350GPH400H + 0.350GPH400a                 : ARR( 0.168E-13, -1300., 0.0);
+{ 44198} G2P400v +PERO9              =  0.650G1P400p + 0.350GPH400a                                : ARR( 0.100E-10,     0., 0.0);
+{ 44199} GGH400W +GHO                =       GGD4005 +      GHO                                    : ARR( 0.518E-10,     0., 0.0);
+{ 44200} GGH400W +GHO                =       G2G400H                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 44201} GGH400W +GHO                =       G3H400q                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 44202} GGH400W+HV               =       G1G400N +      GHO                                    :  0.100E+01*SUN;
+{ 44203} GGH400W+HV               =       GAH3000 +      GCO2                                   :  0.100E+01*SUN;
+{ 44204} G3H400q +GHO2               =  0.800GGH400W + 0.200GAH400Y + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 44205} G3H400q +GNO                =       G3H3000 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 44206} G3H400q +GNO2               =       GPH400Z                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 44207} G3H400q +GNO3               =       G3H3000 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 44208} G3H400q +MEPERO             =  0.685G3H3000 + 0.315GAH400Y + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 44209} G3H400q +PERO1              =  0.800G3H3000 + 0.200GAH400Y + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 44210} G3H400q +PERO2              =  0.750G3H3000 + 0.250GAH400Y + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 44211} G3H400q +PERO3              =  0.800G3H3000 + 0.200GAH400Y + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 44212} G3H400q +PERO5              =  0.650G3H3000 + 0.350GAH400Y + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 44213} G3H400q +PERO6              =  0.650G3H3000 + 0.350GAH400Y + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 44214} G3H400q +PERO9              =       G3H3000 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 44215} GGN400T +GHO                =       G3N400S                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 44216} GGN400T+HV               =       G1G400S +      GNO2                                   :  0.100E+01*SUN;
+{ 44217} GGN400T+HV               =       GAN3001 +      GCO2                                   :  0.100E+01*SUN;
+{ 44218} GGH400X +GHO                =       GGK4006 +      GHO                                    : ARR( 0.208E-10,     0., 0.0);
+{ 44219} GGH400X +GHO                =       G2G400I                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 44220} GGH400X +GHO                =       G3H400r                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 44221} GGH400X+HV               =       G1G400S +      GHO                                    :  0.100E+01*SUN;
+{ 44222} GGH400X+HV               =       GAH3001 +      GCO2                                   :  0.100E+01*SUN;
+{ 44223} G3H400r +GHO2               =  0.800GGH400X + 0.200GAH400Z + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 44224} G3H400r +GNO                =       G3H3001 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 44225} G3H400r +GNO2               =       GPH400a                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 44226} G3H400r +GNO3               =       G3H3001 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 44227} G3H400r +MEPERO             =  0.685G3H3001 + 0.315GAH400Z + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 44228} G3H400r +PERO1              =  0.800G3H3001 + 0.200GAH400Z + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 44229} G3H400r +PERO2              =  0.750G3H3001 + 0.250GAH400Z + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 44230} G3H400r +PERO3              =  0.800G3H3001 + 0.200GAH400Z + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 44231} G3H400r +PERO5              =  0.650G3H3001 + 0.350GAH400Z + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 44232} G3H400r +PERO6              =  0.650G3H3001 + 0.350GAH400Z + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 44233} G3H400r +PERO9              =       G3H3001 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 44234} GAH400X +GHO                =       GAH400A +      GHO                                    : ARR( 0.420E-10,     0., 0.0);
+{ 44235} GAH400X +GHO                =       GAH400T +      GHO                                    : ARR( 0.164E-10,     0., 0.0);
+{ 44236} GAH400X +GHO                =       G2A400R                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 44237} GAH400X +GHO                =       G2A400h                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 44238} GAH400X+HV               =       G1A400Z +      GHO                                    :  0.100E+01*SUN;
+{ 44239} GAH400X+HV               =       G1A400T +      GHO                                    :  0.100E+01*SUN;
+{ 44240} GAH400Y +GHO                =       GAD4005 +      GHO                                    : ARR( 0.523E-10,     0., 0.0);
+{ 44241} GAH400Y +GHO                =       G2A400S                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 44242} GAH400Y+HV               =       GHD3000 +      GCO2                                   :  0.100E+01*SUN;
+{ 44243} GAH400Y+HV               =       G1A400R +      GHO                                    :  0.100E+01*SUN;
+{ 44244} GAH400Z +GHO                =       GAK4006 +      GHO                                    : ARR( 0.213E-10,     0., 0.0);
+{ 44245} GAH400Z +GHO                =       G2A400T                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 44246} GAH400Z+HV               =       G1A400a +      GHO                                    :  0.100E+01*SUN;
+{ 44247} GAH400Z+HV               =       GHD3002 +      GCO2                                   :  0.100E+01*SUN;
+{ 44248} GPH400Y                     =       G3H400S +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 44249} GPH400Y +GHO                =       GPH400T +      GHO                                    : ARR( 0.163E-10,     0., 0.0);
+{ 44250} GPH400Y +GHO                =       GPH400A +      GHO                                    : ARR( 0.418E-10,     0., 0.0);
+{ 44251} GPH400Y +GHO                =       G2P400w                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 44252} GPH400Y +GHO                =       G2P400T                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 44253} GPH400Y+HV               =       G1P400Q +      GHO                                    :  0.100E+01*SUN;
+{ 44254} GPH400Y+HV               =       G1P400a +      GHO                                    :  0.100E+01*SUN;
+{ 44255} GPH400Y+HV               =       G3H400S +      GNO2                                   :  0.100E+01*SUN;
+{ 44256} G2P400w +GNO                =       G1P400Q +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 44257} G2P400w +GNO                =       GPH4002                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 44258} G2P400w +GHO2               =       GPH400Y                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 44259} G2P400w +GNO3               =       G1P400Q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 44260} G2P400w +MEPERO             =  0.480G1P400Q + 0.260GPH4007 + 0.260GPH400T                 : ARR( 0.164E-12,  -795., 0.0);
+{ 44261} G2P400w +PERO1              =  0.600G1P400Q + 0.200GPH4007 + 0.200GPH400T                 : ARR( 0.126E-12,  -850., 0.0);
+{ 44262} G2P400w +PERO2              =  0.560G1P400Q + 0.220GPH4007 + 0.220GPH400T                 : ARR( 0.471E-13, -1350., 0.0);
+{ 44263} G2P400w +PERO3              =  0.600G1P400Q + 0.200GPH4007 + 0.200GPH400T                 : ARR( 0.142E-12, -1200., 0.0);
+{ 44264} G2P400w +PERO5              =  0.600G1P400Q + 0.200GPH4007 + 0.200GPH400T                 : ARR( 0.533E-11,   500., 0.0);
+{ 44265} G2P400w +PERO6              =  0.460G1P400Q + 0.270GPH4007 + 0.270GPH400T                 : ARR( 0.488E-13, -1250., 0.0);
+{ 44266} G2P400w +PERO9              =  0.800G1P400Q + 0.200GPH400T                                : ARR( 0.100E-10,     0., 0.0);
+{ 44267} GPH400Z                     =       G3H400q +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 44268} GPH400Z +GHO                =       GPD4005 +      GHO                                    : ARR( 0.518E-10,     0., 0.0);
+{ 44269} GPH400Z +GHO                =       G2P400U                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 44270} GPH400Z+HV               =       G1P400T +      GHO                                    :  0.100E+01*SUN;
+{ 44271} GPH400Z+HV               =       G3H3000 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 44272} GPH400a                     =       G3H400r +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 44273} GPH400a +GHO                =       GPK4006 +      GHO                                    : ARR( 0.209E-10,     0., 0.0);
+{ 44274} GPH400a +GHO                =       G2P400W                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 44275} GPH400a+HV               =       G1P400b +      GHO                                    :  0.100E+01*SUN;
+{ 44276} GPH400a+HV               =       G3H3001 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 44277} GHN5063 +GHO                =       GNN503A +      GHO                                    : ARR( 0.505E-11,     0., 0.0);
+{ 44278} GHN5063 +GHO                =       G3H400Z +      GCO                                    : ARR( 0.127E-10,     0., 0.0);
+{ 44279} GHN5063 +GHO                =       G2N5061                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 44280} GHN5063 +GNO3               =       G3H400Z +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 44281} GHN5063+HV               =       G1H50AL +      GNO2                                   :  0.100E+01*SUN;
+{ 44282} GHN5063+HV               =       G1H50AM +      GNO2                                   :  0.100E+01*SUN;
+{ 44283} GHN5063+HV               =       G1N506u +      GHO                                    :  0.100E+01*SUN;
+{ 44284} GHN5063+HV               =       G3H400Z +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 44285} GHN5063+HV               =       GHN400v +      GCO                                    :  0.100E+01*SUN;
+{ 44286} GHN5063+HV               =       GHN3004 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 44287} G2N5061 +GNO                =       G1N506u +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 44288} G2N5061 +GNO                =       GNN5036                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 44289} G2N5061 +GHO2               =       GHN5063                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 44290} G2N5061 +GNO3               =       G1N506u +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 44291} G2N5061 +MEPERO             =  0.340G1N506u + 0.330GNN5039 + 0.330GNN503A                 : ARR( 0.565E-13,  -845., 0.0);
+{ 44292} G2N5061 +PERO1              =  0.460G1N506u + 0.270GNN5039 + 0.270GNN503A                 : ARR( 0.434E-13,  -900., 0.0);
+{ 44293} G2N5061 +PERO2              =  0.400G1N506u + 0.300GNN5039 + 0.300GNN503A                 : ARR( 0.162E-13, -1400., 0.0);
+{ 44294} G2N5061 +PERO3              =  0.460G1N506u + 0.270GNN5039 + 0.270GNN503A                 : ARR( 0.488E-13, -1250., 0.0);
+{ 44295} G2N5061 +PERO5              =  0.460G1N506u + 0.270GNN5039 + 0.270GNN503A                 : ARR( 0.183E-11,   450., 0.0);
+{ 44296} G2N5061 +PERO6              =  0.300G1N506u + 0.350GNN5039 + 0.350GNN503A                 : ARR( 0.168E-13, -1300., 0.0);
+{ 44297} G2N5061 +PERO9              =  0.650G1N506u + 0.350GNN503A                                : ARR( 0.100E-10,     0., 0.0);
+{ 44298} G1H50AL +OXYGEN             =       GHN506i +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 44299} G1H50AL                     =       GHD400K +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7175., 0.0);
+{ 44300} G1H50AM                     =       GND2000 +      GDD3002 +      GHO                     : ARR( 0.200E+15,  4553., 0.0);
+{ 44301} GND501O +GHO                =       GND501X +      GHO2                                   : ARR( 0.252E-11,     0., 0.0);
+{ 44302} GND501O +GHO                =       G3N502F                                               : ARR( 0.427E-11,     0., 0.0);
+{ 44303} GND501O +GNO3               =       G3N502F +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 44304} GND501O+HV               =       G3K2001 +      G3N3005                                :  0.100E+01*SUN;
+{ 44305} GND501O+HV               =       G1D501Q +      GNO2                                   :  0.100E+01*SUN;
+{ 44306} GND501O+HV               =       GDK4009 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 44307} G3N502F +GHO2               =  0.800GGN502d + 0.200GAN5022 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 44308} G3N502F +GNO                =       GDK4009 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 44309} G3N502F +GNO2               =       GPN502B                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 44310} G3N502F +GNO3               =       GDK4009 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 44311} G3N502F +MEPERO             =  0.685GDK4009 + 0.315GAN5022 + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44312} G3N502F +PERO1              =  0.800GDK4009 + 0.200GAN5022 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44313} G3N502F +PERO2              =  0.750GDK4009 + 0.250GAN5022 + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44314} G3N502F +PERO3              =  0.800GDK4009 + 0.200GAN5022 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44315} G3N502F +PERO5              =  0.650GDK4009 + 0.350GAN5022 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44316} G3N502F +PERO6              =  0.650GDK4009 + 0.350GAN5022 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44317} G3N502F +PERO9              =       GDK4009 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 44318} G1D501Q                     =       G3K2001 +      GDD2000 +      GCO                     : ARR( 0.200E+15,  5210., 0.0);
+{ 44319} GGH501I +GHO                =       GGH501T +      GHO                                    : ARR( 0.837E-11,     0., 0.0);
+{ 44320} GGH501I +GHO                =       GGH501B +      GHO                                    : ARR( 0.418E-10,     0., 0.0);
+{ 44321} GGH501I +GHO                =       G2G502N                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 44322} GGH501I +GHO                =       G2G500u                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 44323} GGH501I +GHO                =       G3H500z                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 44324} GGH501I+HV               =       G1G503P +      GNO2                                   :  0.100E+01*SUN;
+{ 44325} GGH501I+HV               =       G1G5037 +      GHO                                    :  0.100E+01*SUN;
+{ 44326} GGH501I+HV               =       G1G5018 +      GHO                                    :  0.100E+01*SUN;
+{ 44327} GGH501I+HV               =       G2H400k +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 44328} G2G502N +GNO                =       G1G5037 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 44329} G2G502N +GNO                =       GGH501C                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 44330} G2G502N +GHO2               =       GGH501I                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 44331} G2G502N +GNO3               =       G1G5037 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 44332} G2G502N +MEPERO             =  0.340G1G5037 + 0.330GGH500C + 0.330GGH501T                 : ARR( 0.565E-13,  -845., 0.0);
+{ 44333} G2G502N +PERO1              =  0.460G1G5037 + 0.270GGH500C + 0.270GGH501T                 : ARR( 0.434E-13,  -900., 0.0);
+{ 44334} G2G502N +PERO2              =  0.400G1G5037 + 0.300GGH500C + 0.300GGH501T                 : ARR( 0.162E-13, -1400., 0.0);
+{ 44335} G2G502N +PERO3              =  0.460G1G5037 + 0.270GGH500C + 0.270GGH501T                 : ARR( 0.488E-13, -1250., 0.0);
+{ 44336} G2G502N +PERO5              =  0.460G1G5037 + 0.270GGH500C + 0.270GGH501T                 : ARR( 0.183E-11,   450., 0.0);
+{ 44337} G2G502N +PERO6              =  0.300G1G5037 + 0.350GGH500C + 0.350GGH501T                 : ARR( 0.168E-13, -1300., 0.0);
+{ 44338} G2G502N +PERO9              =  0.650G1G5037 + 0.350GGH501T                                : ARR( 0.100E-10,     0., 0.0);
+{ 44339} G1G503P                     =       G2G502O                                               : ARR( 0.160E+12,  3221., 0.0);
+{ 44340} G1G503P                     =       GGH400Q +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{ 44341} G2G502O +GNO                =       G1G503Q +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 44342} G2G502O +GNO                =       GGH502x                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 44343} G2G502O +GHO2               =       GGH503o                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 44344} G2G502O +GNO3               =       G1G503Q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 44345} G2G502O +MEPERO             =  0.340G1G503Q + 0.330GGH503p + 0.330GGH5032                 : ARR( 0.565E-13,  -845., 0.0);
+{ 44346} G2G502O +PERO1              =  0.460G1G503Q + 0.270GGH503p + 0.270GGH5032                 : ARR( 0.434E-13,  -900., 0.0);
+{ 44347} G2G502O +PERO2              =  0.400G1G503Q + 0.300GGH503p + 0.300GGH5032                 : ARR( 0.162E-13, -1400., 0.0);
+{ 44348} G2G502O +PERO3              =  0.460G1G503Q + 0.270GGH503p + 0.270GGH5032                 : ARR( 0.488E-13, -1250., 0.0);
+{ 44349} G2G502O +PERO5              =  0.460G1G503Q + 0.270GGH503p + 0.270GGH5032                 : ARR( 0.183E-11,   450., 0.0);
+{ 44350} G2G502O +PERO6              =  0.300G1G503Q + 0.350GGH503p + 0.350GGH5032                 : ARR( 0.168E-13, -1300., 0.0);
+{ 44351} G2G502O +PERO9              =  0.650G1G503Q + 0.350GGH5032                                : ARR( 0.100E-10,     0., 0.0);
+{ 44352} G1G503Q                     =       GGH503q +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{ 44353} G1G503Q                     =       GHH4009 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 44354} GHH400h +GHO                =       GHN4011 +      GHO                                    : ARR( 0.165E-10,     0., 0.0);
+{ 44355} GHH400h +GHO                =       G2H401N                                               : ARR( 0.381E-11,  -190., 0.0);
+{ 44356} GHH400h+HV               =       G1H400s +      GNO2                                   :  0.200E+01*SUN;
+{ 44357} GHH400h+HV               =       G1H401g +      GHO                                    :  0.200E+01*SUN;
+{ 44358} G2H401N +GNO                =       G1H401g +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 44359} G2H401N +GNO                =       GHN400w                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 44360} G2H401N +GHO2               =       GHH400h                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 44361} G2H401N +GNO3               =       G1H401g +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 44362} G2H401N +MEPERO             =  0.340G1H401g + 0.330GHN400S + 0.330GHN4011                 : ARR( 0.565E-13,  -845., 0.0);
+{ 44363} G2H401N +PERO1              =  0.460G1H401g + 0.270GHN400S + 0.270GHN4011                 : ARR( 0.434E-13,  -900., 0.0);
+{ 44364} G2H401N +PERO2              =  0.400G1H401g + 0.300GHN400S + 0.300GHN4011                 : ARR( 0.162E-13, -1400., 0.0);
+{ 44365} G2H401N +PERO3              =  0.460G1H401g + 0.270GHN400S + 0.270GHN4011                 : ARR( 0.488E-13, -1250., 0.0);
+{ 44366} G2H401N +PERO5              =  0.460G1H401g + 0.270GHN400S + 0.270GHN4011                 : ARR( 0.183E-11,   450., 0.0);
+{ 44367} G2H401N +PERO6              =  0.300G1H401g + 0.350GHN400S + 0.350GHN4011                 : ARR( 0.168E-13, -1300., 0.0);
+{ 44368} G2H401N +PERO9              =  0.650G1H401g + 0.350GHN4011                                : ARR( 0.100E-10,     0., 0.0);
+{ 44369} GHH400i +GHO                =       GHH400k +      GHO                                    : ARR( 0.960E-11,     0., 0.0);
+{ 44370} GHH400i +GHO                =       GHH400g +      GHO                                    : ARR( 0.480E-10,     0., 0.0);
+{ 44371} GHH400i +GHO                =       GHH400j +      GHO                                    : ARR( 0.187E-10,     0., 0.0);
+{ 44372} GHH400i+HV               =       G1H401s +      GNO2                                   :  0.100E+01*SUN;
+{ 44373} GHH400i+HV               =       G1H401t +      GHO                                    :  0.100E+01*SUN;
+{ 44374} GHH400i+HV               =       G1H401q +      GHO                                    :  0.100E+01*SUN;
+{ 44375} GHH400i+HV               =       G1H400s +      GHO                                    :  0.100E+01*SUN;
+{ 44376} G1H401s                     =       GHH4009 +      GHO                                    : ARR( 0.160E+12,  2186., 0.0);
+{ 44377} G1H401t                     =       GND2000 +      GHD2000 +      GHO                     : ARR( 0.200E+15,  4841., 0.0);
+{ 44378} GHH400j +GHO                =       GHN400R +      GHO                                    : ARR( 0.288E-10,     0., 0.0);
+{ 44379} GHH400j +GHO                =       GHN4018 +      GHO                                    : ARR( 0.277E-10,     0., 0.0);
+{ 44380} GHH400j +GHO                =       G3H400o                                               : ARR( 0.229E-10,     0., 0.0);
+{ 44381} GHH400j +GNO3               =       G3H400o +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 44382} GHH400j+HV               =       G1H401k +      GNO2                                   :  0.100E+01*SUN;
+{ 44383} GHH400j+HV               =       G1H401X +      GHO                                    :  0.100E+01*SUN;
+{ 44384} GHH400j+HV               =       G1H401l +      GHO                                    :  0.100E+01*SUN;
+{ 44385} GHH400j+HV               =       GHN3007 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 44386} GHH502D +GHO                =       GHH502P +      GHO                                    : ARR( 0.440E-10,     0., 0.0);
+{ 44387} GHH502D +GHO                =       GHH502z +      GHO                                    : ARR( 0.140E-09,     0., 0.0);
+{ 44388} GHH502D +GHO                =       GHH501z +      GHO                                    : ARR( 0.269E-10,     0., 0.0);
+{ 44389} GHH502D +GHO                =       G3H5038                                               : ARR( 0.222E-10,     0., 0.0);
+{ 44390} GHH502D +GNO3               =       G3H5038 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 44391} GHH502D+HV               =       G1H50AN +      GHO                                    :  0.100E+01*SUN;
+{ 44392} GHH502D+HV               =       G1H50A2 +      GHO                                    :  0.100E+01*SUN;
+{ 44393} GHH502D+HV               =       G1H506J +      GHO                                    :  0.100E+01*SUN;
+{ 44394} GHH502D+HV               =       GHH4009 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 44395} G3H5038 +GHO2               =  0.800GGH503o + 0.200GAH503k + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 44396} G3H5038 +GNO                =       GHH4009 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 44397} G3H5038 +GNO2               =       GPH503m                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 44398} G3H5038 +GNO3               =       GHH4009 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 44399} G3H5038 +MEPERO             =  0.685GHH4009 + 0.315GAH503k + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44400} G3H5038 +PERO1              =  0.800GHH4009 + 0.200GAH503k + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44401} G3H5038 +PERO2              =  0.750GHH4009 + 0.250GAH503k + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44402} G3H5038 +PERO3              =  0.800GHH4009 + 0.200GAH503k + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44403} G3H5038 +PERO5              =  0.650GHH4009 + 0.350GAH503k + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44404} G3H5038 +PERO6              =  0.650GHH4009 + 0.350GAH503k + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44405} G3H5038 +PERO9              =       GHH4009 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 44406} G1H50AN                     =       GCH2O   +      GHH400r +      GHO2                    : ARR( 0.200E+15,  5296., 0.0);
+{ 44407} G1H50AN                     =       GDO2000 +      GHD3004 +      GHO                     : ARR( 0.200E+15,  4828., 0.0);
+{ 44408} GHH502E +GHO                =       GHD500x +      GHO                                    : ARR( 0.450E-10,     0., 0.0);
+{ 44409} GHH502E +GHO                =       GHD501E +      GHO                                    : ARR( 0.143E-09,     0., 0.0);
+{ 44410} GHH502E +GHO                =       G3H5039                                               : ARR( 0.227E-10,     0., 0.0);
+{ 44411} GHH502E +GNO3               =       G3H5039 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 44412} GHH502E+HV               =       G1H50AO +      GHO                                    :  0.100E+01*SUN;
+{ 44413} GHH502E+HV               =       G1H506M +      GHO                                    :  0.100E+01*SUN;
+{ 44414} GHH502E+HV               =       GHH4009 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 44415} G3H5039 +GHO2               =  0.800GGH503p + 0.200GAH503l + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 44416} G3H5039 +GNO                =       GHH4009 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 44417} G3H5039 +GNO2               =       GPH503n                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 44418} G3H5039 +GNO3               =       GHH4009 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 44419} G3H5039 +MEPERO             =  0.685GHH4009 + 0.315GAH503l + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44420} G3H5039 +PERO1              =  0.800GHH4009 + 0.200GAH503l + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44421} G3H5039 +PERO2              =  0.750GHH4009 + 0.250GAH503l + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44422} G3H5039 +PERO3              =  0.800GHH4009 + 0.200GAH503l + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44423} G3H5039 +PERO5              =  0.650GHH4009 + 0.350GAH503l + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44424} G3H5039 +PERO6              =  0.650GHH4009 + 0.350GAH503l + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44425} G3H5039 +PERO9              =       GHH4009 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 44426} G1H50AO                     =       GCH2O   +      GHD400L +      GHO2                    : ARR( 0.200E+15,  5296., 0.0);
+{ 44427} G1H50AO                     =       GDO2000 +      GDD3001 +      GHO                     : ARR( 0.200E+15,  4828., 0.0);
+{ 44428} GHH502F +GHO                =       G3H503A                                               : ARR( 0.218E-10,     0., 0.0);
+{ 44429} GHH502F +GHO                =       GHD501F +      GHO                                    : ARR( 0.210E-09,     0., 0.0);
+{ 44430} GHH502F +GHO                =       GHD501K +      GHO                                    : ARR( 0.264E-10,     0., 0.0);
+{ 44431} GHH502F +GHO                =       G3H503B                                               : ARR( 0.218E-10,     0., 0.0);
+{ 44432} GHH502F +GNO3               =       G3H503A +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 44433} GHH502F +GNO3               =       G3H503B +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 44434} GHH502F+HV               =       GCO     +      GHH400r + 2.000GHO2                    :  0.100E+01*SUN;
+{ 44435} GHH502F+HV               =       G1H506N +      GHO                                    :  0.100E+01*SUN;
+{ 44436} GHH502F+HV               =       G1H50AP +      GHO                                    :  0.100E+01*SUN;
+{ 44437} GHH502F+HV               =       GHD400L +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 44438} G3H503A +GHO2               =  0.800GGH503q + 0.200GAH503m + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 44439} G3H503A +GNO                =       GHH400r +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 44440} G3H503A +GNO2               =       GPH503o                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 44441} G3H503A +GNO3               =       GHH400r +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 44442} G3H503A +MEPERO             =  0.685GHH400r + 0.315GAH503m + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44443} G3H503A +PERO1              =  0.800GHH400r + 0.200GAH503m + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44444} G3H503A +PERO2              =  0.750GHH400r + 0.250GAH503m + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44445} G3H503A +PERO3              =  0.800GHH400r + 0.200GAH503m + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44446} G3H503A +PERO5              =  0.650GHH400r + 0.350GAH503m + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44447} G3H503A +PERO6              =  0.650GHH400r + 0.350GAH503m + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44448} G3H503A +PERO9              =       GHH400r +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 44449} G3H503B +GHO2               =  0.800GGH503r + 0.200GAH5047 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 44450} G3H503B +GNO                =       GHD400L +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 44451} G3H503B +GNO2               =       GPH504E                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 44452} G3H503B +GNO3               =       GHD400L +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 44453} G3H503B +MEPERO             =  0.685GHD400L + 0.315GAH5047 + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44454} G3H503B +PERO1              =  0.800GHD400L + 0.200GAH5047 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44455} G3H503B +PERO2              =  0.750GHD400L + 0.250GAH5047 + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44456} G3H503B +PERO3              =  0.800GHD400L + 0.200GAH5047 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44457} G3H503B +PERO5              =  0.650GHD400L + 0.350GAH5047 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44458} G3H503B +PERO6              =  0.650GHD400L + 0.350GAH5047 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44459} G3H503B +PERO9              =       GHD400L +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 44460} G1H50AP                     =       GDD3001 +      GDD2000 +      GHO                     : ARR( 0.200E+15,  6241., 0.0);
+{ 44461} G1H50AP                     =       GHD400L +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 44462} GGH501J +GHO                =       GGN501L +      GHO                                    : ARR( 0.858E-11,     0., 0.0);
+{ 44463} GGH501J +GHO                =       GGH501B +      GHO2                                   : ARR( 0.107E-10,     0., 0.0);
+{ 44464} GGH501J +GHO                =       G2G502P                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 44465} GGH501J +GHO                =       G3H5011                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 44466} GGH501J+HV               =       G1G503R +      GNO2                                   :  0.100E+01*SUN;
+{ 44467} GGH501J+HV               =       G1G503B +      GHO                                    :  0.100E+01*SUN;
+{ 44468} GGH501J+HV               =       G2H400l +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 44469} G2G502P +GNO                =       G1G503B +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 44470} G2G502P +GNO                =       GGN501H                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 44471} G2G502P +GHO2               =       GGH501J                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 44472} G2G502P +GNO3               =       G1G503B +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 44473} G2G502P +MEPERO             =  0.340G1G503B + 0.330GGN500K + 0.330GGN501L                 : ARR( 0.565E-13,  -845., 0.0);
+{ 44474} G2G502P +PERO1              =  0.460G1G503B + 0.270GGN500K + 0.270GGN501L                 : ARR( 0.434E-13,  -900., 0.0);
+{ 44475} G2G502P +PERO2              =  0.400G1G503B + 0.300GGN500K + 0.300GGN501L                 : ARR( 0.162E-13, -1400., 0.0);
+{ 44476} G2G502P +PERO3              =  0.460G1G503B + 0.270GGN500K + 0.270GGN501L                 : ARR( 0.488E-13, -1250., 0.0);
+{ 44477} G2G502P +PERO5              =  0.460G1G503B + 0.270GGN500K + 0.270GGN501L                 : ARR( 0.183E-11,   450., 0.0);
+{ 44478} G2G502P +PERO6              =  0.300G1G503B + 0.350GGN500K + 0.350GGN501L                 : ARR( 0.168E-13, -1300., 0.0);
+{ 44479} G2G502P +PERO9              =  0.650G1G503B + 0.350GGN501L                                : ARR( 0.100E-10,     0., 0.0);
+{ 44480} G1G503R                     =       G2G502Q                                               : ARR( 0.160E+12,  3221., 0.0);
+{ 44481} G1G503R                     =       GGD4001 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{ 44482} G2G502Q +GNO                =       G1G503S +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 44483} G2G502Q +GNO                =       GGH5037                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 44484} G2G502Q +GHO2               =       GGH503s                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 44485} G2G502Q +GNO3               =       G1G503S +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 44486} G2G502Q +MEPERO             =  0.340G1G503S + 0.330GGH5026 + 0.330GGH5027                 : ARR( 0.565E-13,  -845., 0.0);
+{ 44487} G2G502Q +PERO1              =  0.460G1G503S + 0.270GGH5026 + 0.270GGH5027                 : ARR( 0.434E-13,  -900., 0.0);
+{ 44488} G2G502Q +PERO2              =  0.400G1G503S + 0.300GGH5026 + 0.300GGH5027                 : ARR( 0.162E-13, -1400., 0.0);
+{ 44489} G2G502Q +PERO3              =  0.460G1G503S + 0.270GGH5026 + 0.270GGH5027                 : ARR( 0.488E-13, -1250., 0.0);
+{ 44490} G2G502Q +PERO5              =  0.460G1G503S + 0.270GGH5026 + 0.270GGH5027                 : ARR( 0.183E-11,   450., 0.0);
+{ 44491} G2G502Q +PERO6              =  0.300G1G503S + 0.350GGH5026 + 0.350GGH5027                 : ARR( 0.168E-13, -1300., 0.0);
+{ 44492} G2G502Q +PERO9              =  0.650G1G503S + 0.350GGH5027                                : ARR( 0.100E-10,     0., 0.0);
+{ 44493} G1G503S                     =       GGH503t +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{ 44494} G1G503S                     =       GHD3003 +      GGD2000 +      GHO2                    : ARR( 0.200E+15,  5342., 0.0);
+{ 44495} G1G503S                     =       GHD4009 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 44496} GHH502G +GHO                =       GHD501G +      GHO                                    : ARR( 0.452E-10,     0., 0.0);
+{ 44497} GHH502G +GHO                =       GHH502z +      GHO2                                   : ARR( 0.358E-10,     0., 0.0);
+{ 44498} GHH502G +GHO                =       GHD5015 +      GHO                                    : ARR( 0.275E-10,     0., 0.0);
+{ 44499} GHH502G +GHO                =       G3H503C                                               : ARR( 0.228E-10,     0., 0.0);
+{ 44500} GHH502G +GNO3               =       G3H503C +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 44501} GHH502G+HV               =       G1H50AQ +      GHO                                    :  0.100E+01*SUN;
+{ 44502} GHH502G+HV               =       G1H506L +      GHO                                    :  0.100E+01*SUN;
+{ 44503} GHH502G+HV               =       GHD4009 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 44504} G3H503C +GHO2               =  0.800GGH503s + 0.200GAH503n + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 44505} G3H503C +GNO                =       GHD4009 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 44506} G3H503C +GNO2               =       GPH503p                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 44507} G3H503C +GNO3               =       GHD4009 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 44508} G3H503C +MEPERO             =  0.685GHD4009 + 0.315GAH503n + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44509} G3H503C +PERO1              =  0.800GHD4009 + 0.200GAH503n + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44510} G3H503C +PERO2              =  0.750GHD4009 + 0.250GAH503n + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44511} G3H503C +PERO3              =  0.800GHD4009 + 0.200GAH503n + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44512} G3H503C +PERO5              =  0.650GHD4009 + 0.350GAH503n + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44513} G3H503C +PERO6              =  0.650GHD4009 + 0.350GAH503n + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44514} G3H503C +PERO9              =       GHD4009 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 44515} G1H50AQ                     =       GDO2000 +      GHD3004 +      GHO2                    : ARR( 0.200E+15,  3619., 0.0);
+{ 44516} GHD501C +GHO                =       GDK500X +      GHO                                    : ARR( 0.445E-10,     0., 0.0);
+{ 44517} GHD501C +GHO                =       GHD501E +      GHO2                                   : ARR( 0.353E-10,     0., 0.0);
+{ 44518} GHD501C +GHO                =       GHD5015 +      GHO2                                   : ARR( 0.678E-11,     0., 0.0);
+{ 44519} GHD501C +GHO                =       G3H503D                                               : ARR( 0.224E-10,     0., 0.0);
+{ 44520} GHD501C +GNO3               =       G3H503D +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 44521} GHD501C+HV               =       G1D501R +      GHO                                    :  0.100E+01*SUN;
+{ 44522} GHD501C+HV               =       GHD4009 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 44523} G3H503D +GHO2               =  0.800GGH5026 + 0.200GAH503P + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 44524} G3H503D +GNO                =       GHD4009 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 44525} G3H503D +GNO2               =       GPH502O                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 44526} G3H503D +GNO3               =       GHD4009 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 44527} G3H503D +MEPERO             =  0.685GHD4009 + 0.315GAH503P + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44528} G3H503D +PERO1              =  0.800GHD4009 + 0.200GAH503P + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44529} G3H503D +PERO2              =  0.750GHD4009 + 0.250GAH503P + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44530} G3H503D +PERO3              =  0.800GHD4009 + 0.200GAH503P + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44531} G3H503D +PERO5              =  0.650GHD4009 + 0.350GAH503P + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44532} G3H503D +PERO6              =  0.650GHD4009 + 0.350GAH503P + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44533} G3H503D +PERO9              =       GHD4009 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 44534} G1D501R                     =       GDO2000 +      GDD3001 +      GHO2                    : ARR( 0.200E+15,  3619., 0.0);
+{ 44535} GHD501D +GHO                =       G3H503E                                               : ARR( 0.220E-10,     0., 0.0);
+{ 44536} GHD501D +GHO                =       GHD501F +      GHO2                                   : ARR( 0.110E-09,     0., 0.0);
+{ 44537} GHD501D +GHO                =       GDD500C +      GHO                                    : ARR( 0.266E-10,     0., 0.0);
+{ 44538} GHD501D +GHO                =       G3H503F                                               : ARR( 0.220E-10,     0., 0.0);
+{ 44539} GHD501D +GNO3               =       G3H503E +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 44540} GHD501D +GNO3               =       G3H503F +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 44541} GHD501D+HV               =       GCO     +      GHD400L + 2.000GHO2                    :  0.100E+01*SUN;
+{ 44542} GHD501D+HV               =       G1D501S +      GHO                                    :  0.100E+01*SUN;
+{ 44543} GHD501D+HV               =       GDD4003 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 44544} G3H503E +GHO2               =  0.800GGH503t + 0.200GAH503o + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 44545} G3H503E +GNO                =       GHD400L +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 44546} G3H503E +GNO2               =       GPH503q                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 44547} G3H503E +GNO3               =       GHD400L +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 44548} G3H503E +MEPERO             =  0.685GHD400L + 0.315GAH503o + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44549} G3H503E +PERO1              =  0.800GHD400L + 0.200GAH503o + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44550} G3H503E +PERO2              =  0.750GHD400L + 0.250GAH503o + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44551} G3H503E +PERO3              =  0.800GHD400L + 0.200GAH503o + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44552} G3H503E +PERO5              =  0.650GHD400L + 0.350GAH503o + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44553} G3H503E +PERO6              =  0.650GHD400L + 0.350GAH503o + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44554} G3H503E +PERO9              =       GHD400L +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 44555} G3H503F +GHO2               =  0.800GGH503u + 0.200GAH5048 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 44556} G3H503F +GNO                =       GDD4003 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 44557} G3H503F +GNO2               =       GPH504F                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 44558} G3H503F +GNO3               =       GDD4003 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 44559} G3H503F +MEPERO             =  0.685GDD4003 + 0.315GAH5048 + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44560} G3H503F +PERO1              =  0.800GDD4003 + 0.200GAH5048 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44561} G3H503F +PERO2              =  0.750GDD4003 + 0.250GAH5048 + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44562} G3H503F +PERO3              =  0.800GDD4003 + 0.200GAH5048 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44563} G3H503F +PERO5              =  0.650GDD4003 + 0.350GAH5048 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44564} G3H503F +PERO6              =  0.650GDD4003 + 0.350GAH5048 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44565} G3H503F +PERO9              =       GDD4003 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 44566} G1D501S                     =       GDD3001 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  5032., 0.0);
+{ 44567} G1D501S                     =       GDD4003 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 44568} GGH501K +GHO                =       GGH501P +      GHO                                    : ARR( 0.514E-10,     0., 0.0);
+{ 44569} GGH501K +GHO                =       GGH5016 +      GHO                                    : ARR( 0.313E-10,     0., 0.0);
+{ 44570} GGH501K+HV               =       G1G503I +      GHO                                    :  0.100E+01*SUN;
+{ 44571} GGH501K+HV               =       G1G5019 +      GHO                                    :  0.100E+01*SUN;
+{ 44572} GGH501K+HV               =       GHD4000 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 44573} GGH501L +GHO                =       GGH503B +      GHO2                                   : ARR( 0.630E-11,     0., 0.0);
+{ 44574} GGH501L +GHO                =       G2G502R                                               : ARR( 0.449E-11,     0., 0.0);
+{ 44575} GGH501L +GHO                =       GGD500C +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 44576} GGH501L +GHO                =       G3G500K                                               : ARR( 0.208E-10,     0., 0.0);
+{ 44577} GGH501L +GHO                =       G3H5014                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 44578} GGH501L +GHO                =       G2G502S                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 44579} GGH501L +GNO3               =       G3G500K +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 44580} GGH501L+HV               =       GHD400C +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 44581} GGH501L+HV               =       G1G503J +      GHO                                    :  0.100E+01*SUN;
+{ 44582} GGH501L+HV               =       GGD4002 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 44583} G2G502R +GNO                =       G1G503T +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 44584} G2G502R +GNO                =       GGH503T                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 44585} G2G502R +GHO2               =       GGH503q                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 44586} G2G502R +GNO3               =       G1G503T +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 44587} G2G502R +MEPERO             =  0.340G1G503T + 0.330GGH503t + 0.330GGH503v                 : ARR( 0.565E-13,  -845., 0.0);
+{ 44588} G2G502R +PERO1              =  0.460G1G503T + 0.270GGH503t + 0.270GGH503v                 : ARR( 0.434E-13,  -900., 0.0);
+{ 44589} G2G502R +PERO2              =  0.400G1G503T + 0.300GGH503t + 0.300GGH503v                 : ARR( 0.162E-13, -1400., 0.0);
+{ 44590} G2G502R +PERO3              =  0.460G1G503T + 0.270GGH503t + 0.270GGH503v                 : ARR( 0.488E-13, -1250., 0.0);
+{ 44591} G2G502R +PERO5              =  0.460G1G503T + 0.270GGH503t + 0.270GGH503v                 : ARR( 0.183E-11,   450., 0.0);
+{ 44592} G2G502R +PERO6              =  0.300G1G503T + 0.350GGH503t + 0.350GGH503v                 : ARR( 0.168E-13, -1300., 0.0);
+{ 44593} G2G502R +PERO9              =  0.650G1G503T + 0.350GGH503v                                : ARR( 0.100E-10,     0., 0.0);
+{ 44594} G3G500K +GHO2               =  0.800GGG500C + 0.200GAG500L + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 44595} G3G500K +GNO                =       GGD4002 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 44596} G3G500K +GNO2               =       GPG500J                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 44597} G3G500K +GNO3               =       GGD4002 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 44598} G3G500K +MEPERO             =  0.685GGD4002 + 0.315GAG500L + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44599} G3G500K +PERO1              =  0.800GGD4002 + 0.200GAG500L + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44600} G3G500K +PERO2              =  0.750GGD4002 + 0.250GAG500L + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44601} G3G500K +PERO3              =  0.800GGD4002 + 0.200GAG500L + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44602} G3G500K +PERO5              =  0.650GGD4002 + 0.350GAG500L + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44603} G3G500K +PERO6              =  0.650GGD4002 + 0.350GAG500L + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44604} G3G500K +PERO9              =       GGD4002 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 44605} G2G502S +GNO                =       G1G503J +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 44606} G2G502S +GNO                =       GGN501J                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 44607} G2G502S +GHO2               =       GGH501L                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 44608} G2G502S +GNO3               =       G1G503J +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 44609} G2G502S +MEPERO             =  0.340G1G503J + 0.330GGD5002 + 0.330GGD500C                 : ARR( 0.565E-13,  -845., 0.0);
+{ 44610} G2G502S +PERO1              =  0.460G1G503J + 0.270GGD5002 + 0.270GGD500C                 : ARR( 0.434E-13,  -900., 0.0);
+{ 44611} G2G502S +PERO2              =  0.400G1G503J + 0.300GGD5002 + 0.300GGD500C                 : ARR( 0.162E-13, -1400., 0.0);
+{ 44612} G2G502S +PERO3              =  0.460G1G503J + 0.270GGD5002 + 0.270GGD500C                 : ARR( 0.488E-13, -1250., 0.0);
+{ 44613} G2G502S +PERO5              =  0.460G1G503J + 0.270GGD5002 + 0.270GGD500C                 : ARR( 0.183E-11,   450., 0.0);
+{ 44614} G2G502S +PERO6              =  0.300G1G503J + 0.350GGD5002 + 0.350GGD500C                 : ARR( 0.168E-13, -1300., 0.0);
+{ 44615} G2G502S +PERO9              =  0.650G1G503J + 0.350GGD500C                                : ARR( 0.100E-10,     0., 0.0);
+{ 44616} G1G503T                     =       GGD2000 +      GHD3004 +      GHO2                    : ARR( 0.200E+15,  3099., 0.0);
+{ 44617} G1G503T                     =       GGD3001 +      GDD2000 +      GHO                     : ARR( 0.200E+15,  4086., 0.0);
+{ 44618} GHD501E +GHO                =       GHD501F +      GHO2                                   : ARR( 0.137E-10,     0., 0.0);
+{ 44619} GHD501E +GHO                =       GDK500Y +      GHO                                    : ARR( 0.270E-10,     0., 0.0);
+{ 44620} GHD501E +GHO                =       G3H503G                                               : ARR( 0.708E-10,     0., 0.0);
+{ 44621} GHD501E +GNO3               =       G3H503G +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 44622} GHD501E+HV               =       G1D501K +      GHO                                    :  0.100E+01*SUN;
+{ 44623} GHD501E+HV               =       G3H3004 +      GDD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 44624} GHD501E+HV               =       GHD400M +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 44625} G3H503G +GHO2               =  0.800GGH503w + 0.200GAH5049 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 44626} G3H503G +GNO                =       GHD400M +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 44627} G3H503G +GNO2               =       GPH504G                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 44628} G3H503G +GNO3               =       GHD400M +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 44629} G3H503G +MEPERO             =  0.685GHD400M + 0.315GAH5049 + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44630} G3H503G +PERO1              =  0.800GHD400M + 0.200GAH5049 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44631} G3H503G +PERO2              =  0.750GHD400M + 0.250GAH5049 + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44632} G3H503G +PERO3              =  0.800GHD400M + 0.200GAH5049 + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44633} G3H503G +PERO5              =  0.650GHD400M + 0.350GAH5049 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44634} G3H503G +PERO6              =  0.650GHD400M + 0.350GAH5049 + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44635} G3H503G +PERO9              =       GHD400M +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 44636} GHD501F +GHO                =       G3H503H                                               : ARR( 0.693E-10,     0., 0.0);
+{ 44637} GHD501F +GHO                =       GDD500D +      GHO                                    : ARR( 0.161E-10,     0., 0.0);
+{ 44638} GHD501F +GHO                =       G3H503I                                               : ARR( 0.693E-10,     0., 0.0);
+{ 44639} GHD501F +GNO3               =       G3H503H +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 44640} GHD501F +GNO3               =       G3H503I +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 44641} GHD501F+HV               =       GCO     +      GHD400K +      GHO2                    :  0.100E+01*SUN;
+{ 44642} GHD501F+HV               =       G3D3001 +      GDD2000 +      GHO                     :  0.100E+01*SUN;
+{ 44643} GHD501F+HV               =       G1D501T +      GHO                                    :  0.100E+01*SUN;
+{ 44644} GHD501F+HV               =       GDD4004 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 44645} G3H503H +GHO2               =  0.800GGH503v + 0.200GAH503q + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 44646} G3H503H +GNO                =       GHD400K +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 44647} G3H503H +GNO2               =       GPH503x                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 44648} G3H503H +GNO3               =       GHD400K +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 44649} G3H503H +MEPERO             =  0.685GHD400K + 0.315GAH503q + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44650} G3H503H +PERO1              =  0.800GHD400K + 0.200GAH503q + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44651} G3H503H +PERO2              =  0.750GHD400K + 0.250GAH503q + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44652} G3H503H +PERO3              =  0.800GHD400K + 0.200GAH503q + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44653} G3H503H +PERO5              =  0.650GHD400K + 0.350GAH503q + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44654} G3H503H +PERO6              =  0.650GHD400K + 0.350GAH503q + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44655} G3H503H +PERO9              =       GHD400K +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 44656} G3H503I +GHO2               =  0.800GGH503x + 0.200GAH504A + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 44657} G3H503I +GNO                =       GDD4004 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 44658} G3H503I +GNO2               =       GPH504H                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 44659} G3H503I +GNO3               =       GDD4004 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 44660} G3H503I +MEPERO             =  0.685GDD4004 + 0.315GAH504A + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44661} G3H503I +PERO1              =  0.800GDD4004 + 0.200GAH504A + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44662} G3H503I +PERO2              =  0.750GDD4004 + 0.250GAH504A + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44663} G3H503I +PERO3              =  0.800GDD4004 + 0.200GAH504A + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44664} G3H503I +PERO5              =  0.650GDD4004 + 0.350GAH504A + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44665} G3H503I +PERO6              =  0.650GDD4004 + 0.350GAH504A + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44666} G3H503I +PERO9              =       GDD4004 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 44667} G1D501T                     =       G3D500B                                               : ARR( 0.800E+11,  4246., 0.0);
+{ 44668} G1D501T                     =       G3D3001 +      GDD2000                                : ARR( 0.200E+15,  5662., 0.0);
+{ 44669} GGH501M +GHO                =       GGD500B +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 44670} GGH501M +GHO                =       G2G502T                                               : ARR( 0.449E-11,     0., 0.0);
+{ 44671} GGH501M +GHO                =       GGH503H +      GHO2                                   : ARR( 0.630E-11,     0., 0.0);
+{ 44672} GGH501M +GHO                =       G3G500L                                               : ARR( 0.208E-10,     0., 0.0);
+{ 44673} GGH501M +GHO                =       G3H5015                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 44674} GGH501M +GHO                =       G2G502U                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 44675} GGH501M +GNO3               =       G3G500L +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 44676} GGH501M+HV               =       GDD4001 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 44677} GGH501M+HV               =       G1G503K +      GHO                                    :  0.100E+01*SUN;
+{ 44678} GGH501M+HV               =       GGH400R +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 44679} G2G502T +GNO                =       G1G503U +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 44680} G2G502T +GNO                =       GGH503U                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 44681} G2G502T +GHO2               =       GGH503r                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 44682} G2G502T +GNO3               =       G1G503U +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 44683} G2G502T +MEPERO             =  0.340G1G503U + 0.330GGH503u + 0.330GGH503x                 : ARR( 0.565E-13,  -845., 0.0);
+{ 44684} G2G502T +PERO1              =  0.460G1G503U + 0.270GGH503u + 0.270GGH503x                 : ARR( 0.434E-13,  -900., 0.0);
+{ 44685} G2G502T +PERO2              =  0.400G1G503U + 0.300GGH503u + 0.300GGH503x                 : ARR( 0.162E-13, -1400., 0.0);
+{ 44686} G2G502T +PERO3              =  0.460G1G503U + 0.270GGH503u + 0.270GGH503x                 : ARR( 0.488E-13, -1250., 0.0);
+{ 44687} G2G502T +PERO5              =  0.460G1G503U + 0.270GGH503u + 0.270GGH503x                 : ARR( 0.183E-11,   450., 0.0);
+{ 44688} G2G502T +PERO6              =  0.300G1G503U + 0.350GGH503u + 0.350GGH503x                 : ARR( 0.168E-13, -1300., 0.0);
+{ 44689} G2G502T +PERO9              =  0.650G1G503U + 0.350GGH503x                                : ARR( 0.100E-10,     0., 0.0);
+{ 44690} G3G500L +GHO2               =  0.800GGG500C + 0.200GAG500P + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 44691} G3G500L +GNO                =       GGH400R +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 44692} G3G500L +GNO2               =       GPG500M                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 44693} G3G500L +GNO3               =       GGH400R +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 44694} G3G500L +MEPERO             =  0.685GGH400R + 0.315GAG500P + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44695} G3G500L +PERO1              =  0.800GGH400R + 0.200GAG500P + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44696} G3G500L +PERO2              =  0.750GGH400R + 0.250GAG500P + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44697} G3G500L +PERO3              =  0.800GGH400R + 0.200GAG500P + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44698} G3G500L +PERO5              =  0.650GGH400R + 0.350GAG500P + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44699} G3G500L +PERO6              =  0.650GGH400R + 0.350GAG500P + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44700} G3G500L +PERO9              =       GGH400R +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 44701} G2G502U +GNO                =       G1G503K +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 44702} G2G502U +GNO                =       GGN501K                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 44703} G2G502U +GHO2               =       GGH501M                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 44704} G2G502U +GNO3               =       G1G503K +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 44705} G2G502U +MEPERO             =  0.340G1G503K + 0.330GGD5002 + 0.330GGD500B                 : ARR( 0.565E-13,  -845., 0.0);
+{ 44706} G2G502U +PERO1              =  0.460G1G503K + 0.270GGD5002 + 0.270GGD500B                 : ARR( 0.434E-13,  -900., 0.0);
+{ 44707} G2G502U +PERO2              =  0.400G1G503K + 0.300GGD5002 + 0.300GGD500B                 : ARR( 0.162E-13, -1400., 0.0);
+{ 44708} G2G502U +PERO3              =  0.460G1G503K + 0.270GGD5002 + 0.270GGD500B                 : ARR( 0.488E-13, -1250., 0.0);
+{ 44709} G2G502U +PERO5              =  0.460G1G503K + 0.270GGD5002 + 0.270GGD500B                 : ARR( 0.183E-11,   450., 0.0);
+{ 44710} G2G502U +PERO6              =  0.300G1G503K + 0.350GGD5002 + 0.350GGD500B                 : ARR( 0.168E-13, -1300., 0.0);
+{ 44711} G2G502U +PERO9              =  0.650G1G503K + 0.350GGD500B                                : ARR( 0.100E-10,     0., 0.0);
+{ 44712} G1G503U                     =       GGH3007 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  2877., 0.0);
+{ 44713} GAH501X +GHO                =       GAD500D +      GHO                                    : ARR( 0.188E-10,     0., 0.0);
+{ 44714} GAH501X +GHO                =       G2A503Q                                               : ARR( 0.454E-11,     0., 0.0);
+{ 44715} GAH501X +GHO                =       GAH503x +      GHO2                                   : ARR( 0.636E-11,     0., 0.0);
+{ 44716} GAH501X +GHO                =       G3A500O                                               : ARR( 0.210E-10,     0., 0.0);
+{ 44717} GAH501X +GHO                =       G2A503R                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 44718} GAH501X +GNO3               =       G3A500O +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 44719} GAH501X+HV               =       G1A504L +      GHO                                    :  0.100E+01*SUN;
+{ 44720} GAH501X+HV               =       GAH400Q +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 44721} G2A503Q +GNO                =       G1A504Q +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 44722} G2A503Q +GNO                =       GAH503z                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 44723} G2A503Q +GHO2               =       GAH5047                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 44724} G2A503Q +GNO3               =       G1A504Q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 44725} G2A503Q +MEPERO             =  0.340G1A504Q + 0.330GAH5048 + 0.330GAH504A                 : ARR( 0.565E-13,  -845., 0.0);
+{ 44726} G2A503Q +PERO1              =  0.460G1A504Q + 0.270GAH5048 + 0.270GAH504A                 : ARR( 0.434E-13,  -900., 0.0);
+{ 44727} G2A503Q +PERO2              =  0.400G1A504Q + 0.300GAH5048 + 0.300GAH504A                 : ARR( 0.162E-13, -1400., 0.0);
+{ 44728} G2A503Q +PERO3              =  0.460G1A504Q + 0.270GAH5048 + 0.270GAH504A                 : ARR( 0.488E-13, -1250., 0.0);
+{ 44729} G2A503Q +PERO5              =  0.460G1A504Q + 0.270GAH5048 + 0.270GAH504A                 : ARR( 0.183E-11,   450., 0.0);
+{ 44730} G2A503Q +PERO6              =  0.300G1A504Q + 0.350GAH5048 + 0.350GAH504A                 : ARR( 0.168E-13, -1300., 0.0);
+{ 44731} G2A503Q +PERO9              =  0.650G1A504Q + 0.350GAH504A                                : ARR( 0.100E-10,     0., 0.0);
+{ 44732} G3A500O +GHO2               =  0.800GAG500L + 0.200GAA500E + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 44733} G3A500O +GNO                =       GAH400Q +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 44734} G3A500O +GNO2               =       GPA500R                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 44735} G3A500O +GNO3               =       GAH400Q +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 44736} G3A500O +MEPERO             =  0.685GAH400Q + 0.315GAA500E + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44737} G3A500O +PERO1              =  0.800GAH400Q + 0.200GAA500E + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44738} G3A500O +PERO2              =  0.750GAH400Q + 0.250GAA500E + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44739} G3A500O +PERO3              =  0.800GAH400Q + 0.200GAA500E + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44740} G3A500O +PERO5              =  0.650GAH400Q + 0.350GAA500E + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44741} G3A500O +PERO6              =  0.650GAH400Q + 0.350GAA500E + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44742} G3A500O +PERO9              =       GAH400Q +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 44743} G2A503R +GNO                =       G1A504L +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 44744} G2A503R +GNO                =       GAN501P                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 44745} G2A503R +GHO2               =       GAH501X                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 44746} G2A503R +GNO3               =       G1A504L +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 44747} G2A503R +MEPERO             =  0.340G1A504L + 0.330GAD5003 + 0.330GAD500D                 : ARR( 0.565E-13,  -845., 0.0);
+{ 44748} G2A503R +PERO1              =  0.460G1A504L + 0.270GAD5003 + 0.270GAD500D                 : ARR( 0.434E-13,  -900., 0.0);
+{ 44749} G2A503R +PERO2              =  0.400G1A504L + 0.300GAD5003 + 0.300GAD500D                 : ARR( 0.162E-13, -1400., 0.0);
+{ 44750} G2A503R +PERO3              =  0.460G1A504L + 0.270GAD5003 + 0.270GAD500D                 : ARR( 0.488E-13, -1250., 0.0);
+{ 44751} G2A503R +PERO5              =  0.460G1A504L + 0.270GAD5003 + 0.270GAD500D                 : ARR( 0.183E-11,   450., 0.0);
+{ 44752} G2A503R +PERO6              =  0.300G1A504L + 0.350GAD5003 + 0.350GAD500D                 : ARR( 0.168E-13, -1300., 0.0);
+{ 44753} G2A503R +PERO9              =  0.650G1A504L + 0.350GAD500D                                : ARR( 0.100E-10,     0., 0.0);
+{ 44754} G1A504Q                     =       GAH3007 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  2877., 0.0);
+{ 44755} GPH501Y                     =       G3H5015 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 44756} GPH501Y +GHO                =       GPD500B +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 44757} GPH501Y +GHO                =       G2P503Z                                               : ARR( 0.449E-11,     0., 0.0);
+{ 44758} GPH501Y +GHO                =       GPH5047 +      GHO2                                   : ARR( 0.630E-11,     0., 0.0);
+{ 44759} GPH501Y +GHO                =       G3P500M                                               : ARR( 0.208E-10,     0., 0.0);
+{ 44760} GPH501Y +GHO                =       G2P503a                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 44761} GPH501Y +GNO3               =       G3P500M +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 44762} GPH501Y+HV               =       G3H5015 +      GNO2                                   :  0.100E+01*SUN;
+{ 44763} GPH501Y+HV               =       G1P504W +      GHO                                    :  0.100E+01*SUN;
+{ 44764} GPH501Y+HV               =       GPH400U +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 44765} G2P503Z +GNO                =       G1P504b +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 44766} G2P503Z +GNO                =       GPH5049                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 44767} G2P503Z +GHO2               =       GPH504E                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 44768} G2P503Z +GNO3               =       G1P504b +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 44769} G2P503Z +MEPERO             =  0.340G1P504b + 0.330GPH504F + 0.330GPH504H                 : ARR( 0.565E-13,  -845., 0.0);
+{ 44770} G2P503Z +PERO1              =  0.460G1P504b + 0.270GPH504F + 0.270GPH504H                 : ARR( 0.434E-13,  -900., 0.0);
+{ 44771} G2P503Z +PERO2              =  0.400G1P504b + 0.300GPH504F + 0.300GPH504H                 : ARR( 0.162E-13, -1400., 0.0);
+{ 44772} G2P503Z +PERO3              =  0.460G1P504b + 0.270GPH504F + 0.270GPH504H                 : ARR( 0.488E-13, -1250., 0.0);
+{ 44773} G2P503Z +PERO5              =  0.460G1P504b + 0.270GPH504F + 0.270GPH504H                 : ARR( 0.183E-11,   450., 0.0);
+{ 44774} G2P503Z +PERO6              =  0.300G1P504b + 0.350GPH504F + 0.350GPH504H                 : ARR( 0.168E-13, -1300., 0.0);
+{ 44775} G2P503Z +PERO9              =  0.650G1P504b + 0.350GPH504H                                : ARR( 0.100E-10,     0., 0.0);
+{ 44776} G3P500M +GHO2               =  0.800GPG500J + 0.200GPA500L + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 44777} G3P500M +GNO                =       GPH400U +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 44778} G3P500M +GNO2               =       GPP500B                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 44779} G3P500M +GNO3               =       GPH400U +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 44780} G3P500M +MEPERO             =  0.685GPH400U + 0.315GPA500L + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44781} G3P500M +PERO1              =  0.800GPH400U + 0.200GPA500L + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44782} G3P500M +PERO2              =  0.750GPH400U + 0.250GPA500L + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44783} G3P500M +PERO3              =  0.800GPH400U + 0.200GPA500L + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44784} G3P500M +PERO5              =  0.650GPH400U + 0.350GPA500L + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44785} G3P500M +PERO6              =  0.650GPH400U + 0.350GPA500L + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44786} G3P500M +PERO9              =       GPH400U +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 44787} G2P503a +GNO                =       G1P504W +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 44788} G2P503a +GNO                =       GPN501S                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 44789} G2P503a +GHO2               =       GPH501Y                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 44790} G2P503a +GNO3               =       G1P504W +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 44791} G2P503a +MEPERO             =  0.340G1P504W + 0.330GPD5002 + 0.330GPD500B                 : ARR( 0.565E-13,  -845., 0.0);
+{ 44792} G2P503a +PERO1              =  0.460G1P504W + 0.270GPD5002 + 0.270GPD500B                 : ARR( 0.434E-13,  -900., 0.0);
+{ 44793} G2P503a +PERO2              =  0.400G1P504W + 0.300GPD5002 + 0.300GPD500B                 : ARR( 0.162E-13, -1400., 0.0);
+{ 44794} G2P503a +PERO3              =  0.460G1P504W + 0.270GPD5002 + 0.270GPD500B                 : ARR( 0.488E-13, -1250., 0.0);
+{ 44795} G2P503a +PERO5              =  0.460G1P504W + 0.270GPD5002 + 0.270GPD500B                 : ARR( 0.183E-11,   450., 0.0);
+{ 44796} G2P503a +PERO6              =  0.300G1P504W + 0.350GPD5002 + 0.350GPD500B                 : ARR( 0.168E-13, -1300., 0.0);
+{ 44797} G2P503a +PERO9              =  0.650G1P504W + 0.350GPD500B                                : ARR( 0.100E-10,     0., 0.0);
+{ 44798} G1P504b                     =       GPH3007 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  2877., 0.0);
+{ 44799} GHH502H +GHO                =       GHN506q +      GHO                                    : ARR( 0.534E-11,     0., 0.0);
+{ 44800} GHH502H +GHO                =       G3H503J                                               : ARR( 0.221E-10,     0., 0.0);
+{ 44801} GHH502H +GHO                =       G2H503Q                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 44802} GHH502H +GHO                =       G2H503R                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 44803} GHH502H +GNO3               =       G3H503J +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 44804} GHH502H+HV               =       G1H50AR +      GNO2                                   :  0.100E+01*SUN;
+{ 44805} GHH502H+HV               =       G1H509z +      GHO                                    :  0.100E+01*SUN;
+{ 44806} GHH502H+HV               =       G1H506R +      GNO2                                   :  0.100E+01*SUN;
+{ 44807} GHH502H+HV               =       G1H509M +      GHO                                    :  0.100E+01*SUN;
+{ 44808} GHH502H+HV               =       GHN4012 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 44809} G3H503J +GHO2               =  0.800GGH503y + 0.200GAH504B + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 44810} G3H503J +GNO                =       GHN4012 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 44811} G3H503J +GNO2               =       GPH504I                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 44812} G3H503J +GNO3               =       GHN4012 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 44813} G3H503J +MEPERO             =  0.685GHN4012 + 0.315GAH504B + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44814} G3H503J +PERO1              =  0.800GHN4012 + 0.200GAH504B + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44815} G3H503J +PERO2              =  0.750GHN4012 + 0.250GAH504B + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44816} G3H503J +PERO3              =  0.800GHN4012 + 0.200GAH504B + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44817} G3H503J +PERO5              =  0.650GHN4012 + 0.350GAH504B + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44818} G3H503J +PERO6              =  0.650GHN4012 + 0.350GAH504B + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44819} G3H503J +PERO9              =       GHN4012 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 44820} G2H503Q +GNO                =       G1H509z +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 44821} G2H503Q +GNO                =       GHN505k                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 44822} G2H503Q +GHO2               =       GHH502H                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 44823} G2H503Q +GNO3               =       G1H509z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 44824} G2H503Q +MEPERO             =  0.340G1H509z + 0.330GHN504q + 0.330GHN505q                 : ARR( 0.565E-13,  -845., 0.0);
+{ 44825} G2H503Q +PERO1              =  0.460G1H509z + 0.270GHN504q + 0.270GHN505q                 : ARR( 0.434E-13,  -900., 0.0);
+{ 44826} G2H503Q +PERO2              =  0.400G1H509z + 0.300GHN504q + 0.300GHN505q                 : ARR( 0.162E-13, -1400., 0.0);
+{ 44827} G2H503Q +PERO3              =  0.460G1H509z + 0.270GHN504q + 0.270GHN505q                 : ARR( 0.488E-13, -1250., 0.0);
+{ 44828} G2H503Q +PERO5              =  0.460G1H509z + 0.270GHN504q + 0.270GHN505q                 : ARR( 0.183E-11,   450., 0.0);
+{ 44829} G2H503Q +PERO6              =  0.300G1H509z + 0.350GHN504q + 0.350GHN505q                 : ARR( 0.168E-13, -1300., 0.0);
+{ 44830} G2H503Q +PERO9              =  0.650G1H509z + 0.350GHN505q                                : ARR( 0.100E-10,     0., 0.0);
+{ 44831} G2H503R +GNO                =       G1H509M +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 44832} G2H503R +GNO                =       GHN505Q                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 44833} G2H503R +GHO2               =       GHH502H                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 44834} G2H503R +GNO3               =       G1H509M +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 44835} G2H503R +MEPERO             =  0.340G1H509M + 0.330GHN5064 + 0.330GHN506q                 : ARR( 0.565E-13,  -845., 0.0);
+{ 44836} G2H503R +PERO1              =  0.460G1H509M + 0.270GHN5064 + 0.270GHN506q                 : ARR( 0.434E-13,  -900., 0.0);
+{ 44837} G2H503R +PERO2              =  0.400G1H509M + 0.300GHN5064 + 0.300GHN506q                 : ARR( 0.162E-13, -1400., 0.0);
+{ 44838} G2H503R +PERO3              =  0.460G1H509M + 0.270GHN5064 + 0.270GHN506q                 : ARR( 0.488E-13, -1250., 0.0);
+{ 44839} G2H503R +PERO5              =  0.460G1H509M + 0.270GHN5064 + 0.270GHN506q                 : ARR( 0.183E-11,   450., 0.0);
+{ 44840} G2H503R +PERO6              =  0.300G1H509M + 0.350GHN5064 + 0.350GHN506q                 : ARR( 0.168E-13, -1300., 0.0);
+{ 44841} G2H503R +PERO9              =  0.650G1H509M + 0.350GHN506q                                : ARR( 0.100E-10,     0., 0.0);
+{ 44842} G1H50AR                     =       GHN505n +      GHO                                    : ARR( 0.800E+11,  2619., 0.0);
+{ 44843} G1H50AR                     =       GHN400y +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{ 44844} GHH502I +GHO                =       GHH502K +      GHO                                    : ARR( 0.145E-09,     0., 0.0);
+{ 44845} GHH502I +GHO                =       GHH5031 +      GHO                                    : ARR( 0.278E-10,     0., 0.0);
+{ 44846} GHH502I +GHO                =       G3H503K                                               : ARR( 0.230E-10,     0., 0.0);
+{ 44847} GHH502I +GNO3               =       G3H503K +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 44848} GHH502I+HV               =       G1H50AS +      GNO2                                   :  0.100E+01*SUN;
+{ 44849} GHH502I+HV               =       G1H50AT +      GHO                                    :  0.100E+01*SUN;
+{ 44850} GHH502I+HV               =       G1H506R +      GHO                                    :  0.100E+01*SUN;
+{ 44851} GHH502I+HV               =       G1H50AU +      GHO                                    :  0.100E+01*SUN;
+{ 44852} GHH502I+HV               =       GHH400j +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 44853} G3H503K +GHO2               =  0.800GGH503z + 0.200GAH504C + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 44854} G3H503K +GNO                =       GHH400j +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 44855} G3H503K +GNO2               =       GPH504J                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 44856} G3H503K +GNO3               =       GHH400j +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 44857} G3H503K +MEPERO             =  0.685GHH400j + 0.315GAH504C + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44858} G3H503K +PERO1              =  0.800GHH400j + 0.200GAH504C + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44859} G3H503K +PERO2              =  0.750GHH400j + 0.250GAH504C + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44860} G3H503K +PERO3              =  0.800GHH400j + 0.200GAH504C + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44861} G3H503K +PERO5              =  0.650GHH400j + 0.350GAH504C + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44862} G3H503K +PERO6              =  0.650GHH400j + 0.350GAH504C + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44863} G3H503K +PERO9              =       GHH400j +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 44864} G1H50AS                     =       GHH501z +      GHO                                    : ARR( 0.800E+11,  1899., 0.0);
+{ 44865} G1H50AT                     =       GND2000 +      GHD3004 +      GHO                     : ARR( 0.200E+15,  4826., 0.0);
+{ 44866} G1H50AU                     =       GHH502F +      GNO2                                   : ARR( 0.160E+12,  4531., 0.0);
+{ 44867} G1H50AU                     =       GHN3007 +      GDD2000 +      GHO                     : ARR( 0.200E+15,  6108., 0.0);
+{ 44868} G1H50AU                     =       GHH400j +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 44869} GHH502J +GHO                =       GHN506C +      GHO                                    : ARR( 0.894E-11,     0., 0.0);
+{ 44870} GHH502J +GHO                =       GHH502K +      GHO2                                   : ARR( 0.354E-10,     0., 0.0);
+{ 44871} GHH502J +GHO                =       GHN5069 +      GHO                                    : ARR( 0.273E-10,     0., 0.0);
+{ 44872} GHH502J +GHO                =       G3H503L                                               : ARR( 0.225E-10,     0., 0.0);
+{ 44873} GHH502J +GNO3               =       G3H503L +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 44874} GHH502J+HV               =       G1H50AW +      GNO2                                   :  0.100E+01*SUN;
+{ 44875} GHH502J+HV               =       G1H50AX +      GHO                                    :  0.100E+01*SUN;
+{ 44876} GHH502J+HV               =       G1H50AY +      GHO                                    :  0.100E+01*SUN;
+{ 44877} GHH502J+HV               =       GHN400z +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 44878} G3H503L +GHO2               =  0.800GGH5041 + 0.200GAH504D + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 44879} G3H503L +GNO                =       GHN400z +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 44880} G3H503L +GNO2               =       GPH504K                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 44881} G3H503L +GNO3               =       GHN400z +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 44882} G3H503L +MEPERO             =  0.685GHN400z + 0.315GAH504D + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44883} G3H503L +PERO1              =  0.800GHN400z + 0.200GAH504D + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44884} G3H503L +PERO2              =  0.750GHN400z + 0.250GAH504D + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44885} G3H503L +PERO3              =  0.800GHN400z + 0.200GAH504D + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44886} G3H503L +PERO5              =  0.650GHN400z + 0.350GAH504D + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44887} G3H503L +PERO6              =  0.650GHN400z + 0.350GAH504D + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44888} G3H503L +PERO9              =       GHN400z +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 44889} G1H50AW                     =       GHD5015 +      GHO                                    : ARR( 0.800E+11,  1899., 0.0);
+{ 44890} G1H50AX                     =       GND2000 +      GHD3004 +      GHO2                    : ARR( 0.200E+15,  3617., 0.0);
+{ 44891} G1H50AY                     =       GHN3007 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  4899., 0.0);
+{ 44892} G1H50AY                     =       GHN400z +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 44893} GHH502K +GHO                =       GHN506F +      GHO                                    : ARR( 0.545E-11,     0., 0.0);
+{ 44894} GHH502K +GHO                =       GHN506f +      GHO                                    : ARR( 0.166E-10,     0., 0.0);
+{ 44895} GHH502K +GHO                =       G3H503M                                               : ARR( 0.715E-10,     0., 0.0);
+{ 44896} GHH502K +GNO3               =       G3H503M +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 44897} GHH502K+HV               =       G1H50AZ +      GNO2                                   :  0.100E+01*SUN;
+{ 44898} GHH502K+HV               =       G1H50Aa +      GHO                                    :  0.100E+01*SUN;
+{ 44899} GHH502K+HV               =       G3H3002 +      GDD2000 +      GHO                     :  0.100E+01*SUN;
+{ 44900} GHH502K+HV               =       G1H50Ab +      GHO                                    :  0.100E+01*SUN;
+{ 44901} GHH502K+HV               =       GHN4018 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 44902} G3H503M +GHO2               =  0.800GGH5042 + 0.200GAH504E + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 44903} G3H503M +GNO                =       GHN4018 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 44904} G3H503M +GNO2               =       GPH503Y                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 44905} G3H503M +GNO3               =       GHN4018 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 44906} G3H503M +MEPERO             =  0.685GHN4018 + 0.315GAH504E + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44907} G3H503M +PERO1              =  0.800GHN4018 + 0.200GAH504E + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44908} G3H503M +PERO2              =  0.750GHN4018 + 0.250GAH504E + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44909} G3H503M +PERO3              =  0.800GHN4018 + 0.200GAH504E + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44910} G3H503M +PERO5              =  0.650GHN4018 + 0.350GAH504E + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44911} G3H503M +PERO6              =  0.650GHN4018 + 0.350GAH504E + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44912} G3H503M +PERO9              =       GHN4018 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 44913} G1H50AZ +OXYGEN             =       GHH5032 +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 44914} G1H50AZ                     =       GHD501N +      GHO                                    : ARR( 0.800E+11,  3882., 0.0);
+{ 44915} G1H50AZ                     =       GHD400K +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5784., 0.0);
+{ 44916} G1H50Aa                     =       GND2000 +      G3H3006                                : ARR( 0.200E+15,  3775., 0.0);
+{ 44917} G1H50Ab                     =       G3H3002 +      GDD2000                                : ARR( 0.200E+15,  4916., 0.0);
+{ 44918} GGH501N +GHO                =       GGH501U +      GHO                                    : ARR( 0.851E-11,     0., 0.0);
+{ 44919} GGH501N +GHO                =       GGH5011 +      GHO                                    : ARR( 0.260E-10,     0., 0.0);
+{ 44920} GGH501N +GHO                =       G2G502W                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 44921} GGH501N +GHO                =       G2G502X                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 44922} GGH501N +GHO                =       G3H5017                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 44923} GGH501N+HV               =       G1G503W +      GNO2                                   :  0.100E+01*SUN;
+{ 44924} GGH501N+HV               =       G1G503F +      GHO                                    :  0.100E+01*SUN;
+{ 44925} GGH501N+HV               =       G1G502N +      GHO                                    :  0.100E+01*SUN;
+{ 44926} GGH501N+HV               =       GHN4001 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 44927} G2G502W +GNO                =       G1G503F +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 44928} G2G502W +GNO                =       GGH501D                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 44929} G2G502W +GHO2               =       GGH501N                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 44930} G2G502W +GNO3               =       G1G503F +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 44931} G2G502W +MEPERO             =  0.340G1G503F + 0.330GGH500D + 0.330GGH501U                 : ARR( 0.565E-13,  -845., 0.0);
+{ 44932} G2G502W +PERO1              =  0.460G1G503F + 0.270GGH500D + 0.270GGH501U                 : ARR( 0.434E-13,  -900., 0.0);
+{ 44933} G2G502W +PERO2              =  0.400G1G503F + 0.300GGH500D + 0.300GGH501U                 : ARR( 0.162E-13, -1400., 0.0);
+{ 44934} G2G502W +PERO3              =  0.460G1G503F + 0.270GGH500D + 0.270GGH501U                 : ARR( 0.488E-13, -1250., 0.0);
+{ 44935} G2G502W +PERO5              =  0.460G1G503F + 0.270GGH500D + 0.270GGH501U                 : ARR( 0.183E-11,   450., 0.0);
+{ 44936} G2G502W +PERO6              =  0.300G1G503F + 0.350GGH500D + 0.350GGH501U                 : ARR( 0.168E-13, -1300., 0.0);
+{ 44937} G2G502W +PERO9              =  0.650G1G503F + 0.350GGH501U                                : ARR( 0.100E-10,     0., 0.0);
+{ 44938} G2G502X +GNO                =       G1G502N +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 44939} G2G502X +GNO                =       GGH500x                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 44940} G2G502X +GHO2               =       GGH501N                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 44941} G2G502X +GNO3               =       G1G502N +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 44942} G2G502X +MEPERO             =  0.340G1G502N + 0.330GGH501O + 0.330GGH5011                 : ARR( 0.565E-13,  -845., 0.0);
+{ 44943} G2G502X +PERO1              =  0.460G1G502N + 0.270GGH501O + 0.270GGH5011                 : ARR( 0.434E-13,  -900., 0.0);
+{ 44944} G2G502X +PERO2              =  0.400G1G502N + 0.300GGH501O + 0.300GGH5011                 : ARR( 0.162E-13, -1400., 0.0);
+{ 44945} G2G502X +PERO3              =  0.460G1G502N + 0.270GGH501O + 0.270GGH5011                 : ARR( 0.488E-13, -1250., 0.0);
+{ 44946} G2G502X +PERO5              =  0.460G1G502N + 0.270GGH501O + 0.270GGH5011                 : ARR( 0.183E-11,   450., 0.0);
+{ 44947} G2G502X +PERO6              =  0.300G1G502N + 0.350GGH501O + 0.350GGH5011                 : ARR( 0.168E-13, -1300., 0.0);
+{ 44948} G2G502X +PERO9              =  0.650G1G502N + 0.350GGH5011                                : ARR( 0.100E-10,     0., 0.0);
+{ 44949} G1G503W                     =       GGH5016 +      GHO                                    : ARR( 0.800E+11,  1899., 0.0);
+{ 44950} GAH501Y +GHO                =       GAH501A +      GHO                                    : ARR( 0.197E-10,     0., 0.0);
+{ 44951} GAH501Y +GHO                =       GAH501L +      GHO                                    : ARR( 0.872E-11,     0., 0.0);
+{ 44952} GAH501Y +GHO                =       G2A503S                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 44953} GAH501Y +GHO                =       G2A503T                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 44954} GAH501Y+HV               =       G1A503G +      GHO                                    :  0.100E+01*SUN;
+{ 44955} GAH501Y+HV               =       G1A503R +      GHO                                    :  0.100E+01*SUN;
+{ 44956} GAH501Y+HV               =       G1A504R +      GNO2                                   :  0.100E+01*SUN;
+{ 44957} G2A503S +GNO                =       G1A503G +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 44958} G2A503S +GNO                =       GAH5016                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 44959} G2A503S +GHO2               =       GAH501Y                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 44960} G2A503S +GNO3               =       G1A503G +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 44961} G2A503S +MEPERO             =  0.340G1A503G + 0.330GAH501Z + 0.330GAH501A                 : ARR( 0.565E-13,  -845., 0.0);
+{ 44962} G2A503S +PERO1              =  0.460G1A503G + 0.270GAH501Z + 0.270GAH501A                 : ARR( 0.434E-13,  -900., 0.0);
+{ 44963} G2A503S +PERO2              =  0.400G1A503G + 0.300GAH501Z + 0.300GAH501A                 : ARR( 0.162E-13, -1400., 0.0);
+{ 44964} G2A503S +PERO3              =  0.460G1A503G + 0.270GAH501Z + 0.270GAH501A                 : ARR( 0.488E-13, -1250., 0.0);
+{ 44965} G2A503S +PERO5              =  0.460G1A503G + 0.270GAH501Z + 0.270GAH501A                 : ARR( 0.183E-11,   450., 0.0);
+{ 44966} G2A503S +PERO6              =  0.300G1A503G + 0.350GAH501Z + 0.350GAH501A                 : ARR( 0.168E-13, -1300., 0.0);
+{ 44967} G2A503S +PERO9              =  0.650G1A503G + 0.350GAH501A                                : ARR( 0.100E-10,     0., 0.0);
+{ 44968} G2A503T +GNO                =       G1A503R +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 44969} G2A503T +GNO                =       GAH501B                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 44970} G2A503T +GHO2               =       GAH501Y                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 44971} G2A503T +GNO3               =       G1A503R +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 44972} G2A503T +MEPERO             =  0.340G1A503R + 0.330GAH500D + 0.330GAH501L                 : ARR( 0.565E-13,  -845., 0.0);
+{ 44973} G2A503T +PERO1              =  0.460G1A503R + 0.270GAH500D + 0.270GAH501L                 : ARR( 0.434E-13,  -900., 0.0);
+{ 44974} G2A503T +PERO2              =  0.400G1A503R + 0.300GAH500D + 0.300GAH501L                 : ARR( 0.162E-13, -1400., 0.0);
+{ 44975} G2A503T +PERO3              =  0.460G1A503R + 0.270GAH500D + 0.270GAH501L                 : ARR( 0.488E-13, -1250., 0.0);
+{ 44976} G2A503T +PERO5              =  0.460G1A503R + 0.270GAH500D + 0.270GAH501L                 : ARR( 0.183E-11,   450., 0.0);
+{ 44977} G2A503T +PERO6              =  0.300G1A503R + 0.350GAH500D + 0.350GAH501L                 : ARR( 0.168E-13, -1300., 0.0);
+{ 44978} G2A503T +PERO9              =  0.650G1A503R + 0.350GAH501L                                : ARR( 0.100E-10,     0., 0.0);
+{ 44979} G1A504R                     =       GAH501J +      GHO                                    : ARR( 0.800E+11,  2034., 0.0);
+{ 44980} GHN5064 +GHO                =       GNN503B +      GHO                                    : ARR( 0.176E-11,     0., 0.0);
+{ 44981} GHN5064 +GHO                =       G3H503N                                               : ARR( 0.222E-10,     0., 0.0);
+{ 44982} GHN5064 +GHO                =       G2N5062                                               : ARR( 0.203E-11,  -190., 0.0);
+{ 44983} GHN5064 +GNO3               =       G3H503N +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 44984} GHN5064+HV               =       G1H507b +      GNO2                                   :  0.100E+01*SUN;
+{ 44985} GHN5064+HV               =       G1N506E +      GHO                                    :  0.100E+01*SUN;
+{ 44986} GHN5064+HV               =       G1H506T +      GNO2                                   :  0.100E+01*SUN;
+{ 44987} GHN5064+HV               =       GHN4012 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 44988} G3H503N +GHO2               =  0.800GGH5043 + 0.200GAH504F + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 44989} G3H503N +GNO                =       GHN4012 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 44990} G3H503N +GNO2               =       GPH503s                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 44991} G3H503N +GNO3               =       GHN4012 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 44992} G3H503N +MEPERO             =  0.685GHN4012 + 0.315GAH504F + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44993} G3H503N +PERO1              =  0.800GHN4012 + 0.200GAH504F + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44994} G3H503N +PERO2              =  0.750GHN4012 + 0.250GAH504F + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44995} G3H503N +PERO3              =  0.800GHN4012 + 0.200GAH504F + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44996} G3H503N +PERO5              =  0.650GHN4012 + 0.350GAH504F + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44997} G3H503N +PERO6              =  0.650GHN4012 + 0.350GAH504F + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 44998} G3H503N +PERO9              =       GHN4012 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 44999} G2N5062 +GNO                =       G1N506E +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 45000} G2N5062 +GNO                =       GNN502a                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 45001} G2N5062 +GHO2               =       GHN5064                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 45002} G2N5062 +GNO3               =       G1N506E +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 45003} G2N5062 +MEPERO             =  0.340G1N506E + 0.330GNN502H + 0.330GNN503B                 : ARR( 0.565E-13,  -845., 0.0);
+{ 45004} G2N5062 +PERO1              =  0.460G1N506E + 0.270GNN502H + 0.270GNN503B                 : ARR( 0.434E-13,  -900., 0.0);
+{ 45005} G2N5062 +PERO2              =  0.400G1N506E + 0.300GNN502H + 0.300GNN503B                 : ARR( 0.162E-13, -1400., 0.0);
+{ 45006} G2N5062 +PERO3              =  0.460G1N506E + 0.270GNN502H + 0.270GNN503B                 : ARR( 0.488E-13, -1250., 0.0);
+{ 45007} G2N5062 +PERO5              =  0.460G1N506E + 0.270GNN502H + 0.270GNN503B                 : ARR( 0.183E-11,   450., 0.0);
+{ 45008} G2N5062 +PERO6              =  0.300G1N506E + 0.350GNN502H + 0.350GNN503B                 : ARR( 0.168E-13, -1300., 0.0);
+{ 45009} G2N5062 +PERO9              =  0.650G1N506E + 0.350GNN503B                                : ARR( 0.100E-10,     0., 0.0);
+{ 45010} GHH502L +GHO                =       GHN5066 +      GHO                                    : ARR( 0.150E-09,     0., 0.0);
+{ 45011} GHH502L +GHO                =       G3H503O                                               : ARR( 0.238E-10,     0., 0.0);
+{ 45012} GHH502L +GNO3               =       G3H503O +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 45013} GHH502L+HV               =       G1H50Ac +      GNO2                                   :  0.100E+01*SUN;
+{ 45014} GHH502L+HV               =       G1H50Ad +      GHO                                    :  0.100E+01*SUN;
+{ 45015} GHH502L+HV               =       G1H506T +      GHO                                    :  0.100E+01*SUN;
+{ 45016} GHH502L+HV               =       GHH400j +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 45017} G3H503O +GHO2               =  0.800GGH5044 + 0.200GAH504G + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 45018} G3H503O +GNO                =       GHH400j +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 45019} G3H503O +GNO2               =       GPH503t                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 45020} G3H503O +GNO3               =       GHH400j +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 45021} G3H503O +MEPERO             =  0.685GHH400j + 0.315GAH504G + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45022} G3H503O +PERO1              =  0.800GHH400j + 0.200GAH504G + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45023} G3H503O +PERO2              =  0.750GHH400j + 0.250GAH504G + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45024} G3H503O +PERO3              =  0.800GHH400j + 0.200GAH504G + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45025} G3H503O +PERO5              =  0.650GHH400j + 0.350GAH504G + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45026} G3H503O +PERO6              =  0.650GHH400j + 0.350GAH504G + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45027} G3H503O +PERO9              =       GHH400j +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 45028} G1H50Ac                     =       GHH501z +      GHO2                                   : ARR( 0.800E+11,  2246., 0.0);
+{ 45029} G1H50Ac                     =       GHD400L +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{ 45030} G1H50Ad                     =       GND2000 +      GDD3001 +      GHO                     : ARR( 0.200E+15,  4826., 0.0);
+{ 45031} GHN5065 +GHO                =       GND501Q +      GHO                                    : ARR( 0.828E-11,     0., 0.0);
+{ 45032} GHN5065 +GHO                =       GHN5066 +      GHO2                                   : ARR( 0.328E-10,     0., 0.0);
+{ 45033} GHN5065 +GHO                =       GHN5069 +      GHO2                                   : ARR( 0.631E-11,     0., 0.0);
+{ 45034} GHN5065 +GHO                =       G3H503P                                               : ARR( 0.209E-10,     0., 0.0);
+{ 45035} GHN5065 +GHO                =       G2N5063                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 45036} GHN5065 +GNO3               =       G3H503P +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 45037} GHN5065+HV               =       G1H50Ae +      GNO2                                   :  0.100E+01*SUN;
+{ 45038} GHN5065+HV               =       G1N507A +      GHO                                    :  0.100E+01*SUN;
+{ 45039} GHN5065+HV               =       GHN400z +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 45040} G3H503P +GHO2               =  0.800GGH5045 + 0.200GAH504H + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 45041} G3H503P +GNO                =       GHN400z +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 45042} G3H503P +GNO2               =       GPH503u                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 45043} G3H503P +GNO3               =       GHN400z +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 45044} G3H503P +MEPERO             =  0.685GHN400z + 0.315GAH504H + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45045} G3H503P +PERO1              =  0.800GHN400z + 0.200GAH504H + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45046} G3H503P +PERO2              =  0.750GHN400z + 0.250GAH504H + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45047} G3H503P +PERO3              =  0.800GHN400z + 0.200GAH504H + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45048} G3H503P +PERO5              =  0.650GHN400z + 0.350GAH504H + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45049} G3H503P +PERO6              =  0.650GHN400z + 0.350GAH504H + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45050} G3H503P +PERO9              =       GHN400z +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 45051} G2N5063 +GNO                =       G1N507A +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 45052} G2N5063 +GNO                =       GNN503I                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 45053} G2N5063 +GHO2               =       GHN5065                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 45054} G2N5063 +GNO3               =       G1N507A +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 45055} G2N5063 +MEPERO             =  0.340G1N507A + 0.330GND500p + 0.330GND501Q                 : ARR( 0.565E-13,  -845., 0.0);
+{ 45056} G2N5063 +PERO1              =  0.460G1N507A + 0.270GND500p + 0.270GND501Q                 : ARR( 0.434E-13,  -900., 0.0);
+{ 45057} G2N5063 +PERO2              =  0.400G1N507A + 0.300GND500p + 0.300GND501Q                 : ARR( 0.162E-13, -1400., 0.0);
+{ 45058} G2N5063 +PERO3              =  0.460G1N507A + 0.270GND500p + 0.270GND501Q                 : ARR( 0.488E-13, -1250., 0.0);
+{ 45059} G2N5063 +PERO5              =  0.460G1N507A + 0.270GND500p + 0.270GND501Q                 : ARR( 0.183E-11,   450., 0.0);
+{ 45060} G2N5063 +PERO6              =  0.300G1N507A + 0.350GND500p + 0.350GND501Q                 : ARR( 0.168E-13, -1300., 0.0);
+{ 45061} G2N5063 +PERO9              =  0.650G1N507A + 0.350GND501Q                                : ARR( 0.100E-10,     0., 0.0);
+{ 45062} G1H50Ae                     =       GHD5015 +      GHO2                                   : ARR( 0.800E+11,  2246., 0.0);
+{ 45063} G1H50Ae                     =       GDD4003 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{ 45064} G1N507A                     =       GND2000 +      GDD3001 +      GHO2                    : ARR( 0.200E+15,  3617., 0.0);
+{ 45065} GHN5066 +GHO                =       GND501K +      GHO                                    : ARR( 0.557E-11,     0., 0.0);
+{ 45066} GHN5066 +GHO                =       G3H503Q                                               : ARR( 0.730E-10,     0., 0.0);
+{ 45067} GHN5066 +GNO3               =       G3H503Q +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 45068} GHN5066+HV               =       G1H50Af +      GNO2                                   :  0.100E+01*SUN;
+{ 45069} GHN5066+HV               =       G1N506o +      GHO                                    :  0.100E+01*SUN;
+{ 45070} GHN5066+HV               =       G3H3002 +      GDD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 45071} GHN5066+HV               =       GHN4018 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 45072} G3H503Q +GHO2               =  0.800GGH5046 + 0.200GAH504I + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 45073} G3H503Q +GNO                =       GHN4018 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 45074} G3H503Q +GNO2               =       GPH503Z                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 45075} G3H503Q +GNO3               =       GHN4018 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 45076} G3H503Q +MEPERO             =  0.685GHN4018 + 0.315GAH504I + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45077} G3H503Q +PERO1              =  0.800GHN4018 + 0.200GAH504I + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45078} G3H503Q +PERO2              =  0.750GHN4018 + 0.250GAH504I + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45079} G3H503Q +PERO3              =  0.800GHN4018 + 0.200GAH504I + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45080} G3H503Q +PERO5              =  0.650GHN4018 + 0.350GAH504I + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45081} G3H503Q +PERO6              =  0.650GHN4018 + 0.350GAH504I + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45082} G3H503Q +PERO9              =       GHN4018 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 45083} G1H50Af +OXYGEN             =       GHD501F +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 45084} G1H50Af                     =       GHD501N +      GHO2                                   : ARR( 0.800E+11,  4228., 0.0);
+{ 45085} G1H50Af                     =       GDD4004 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5784., 0.0);
+{ 45086} GGH501O +GHO                =       GGN501M +      GHO                                    : ARR( 0.831E-11,     0., 0.0);
+{ 45087} GGH501O +GHO                =       G2G502Y                                               : ARR( 0.142E-11,     0., 0.0);
+{ 45088} GGH501O +GHO                =       GGH5011 +      GHO2                                   : ARR( 0.633E-11,     0., 0.0);
+{ 45089} GGH501O +GHO                =       G2G502Z                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 45090} GGH501O +GHO                =       G3H5018                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 45091} GGH501O+HV               =       G1G503X +      GNO2                                   :  0.100E+01*SUN;
+{ 45092} GGH501O+HV               =       G1G503H +      GHO                                    :  0.100E+01*SUN;
+{ 45093} GGH501O+HV               =       GHN4001 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 45094} G2G502Y +GNO                =       G1G503Y +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 45095} G2G502Y +GNO                =       GGH5043                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 45096} G2G502Y +GHO2               =       GGH5044                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 45097} G2G502Y +GNO3               =       G1G503Y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 45098} G2G502Y +MEPERO             =  0.340G1G503Y + 0.330GGH5045 + 0.330GGH5046                 : ARR( 0.565E-13,  -845., 0.0);
+{ 45099} G2G502Y +PERO1              =  0.460G1G503Y + 0.270GGH5045 + 0.270GGH5046                 : ARR( 0.434E-13,  -900., 0.0);
+{ 45100} G2G502Y +PERO2              =  0.400G1G503Y + 0.300GGH5045 + 0.300GGH5046                 : ARR( 0.162E-13, -1400., 0.0);
+{ 45101} G2G502Y +PERO3              =  0.460G1G503Y + 0.270GGH5045 + 0.270GGH5046                 : ARR( 0.488E-13, -1250., 0.0);
+{ 45102} G2G502Y +PERO5              =  0.460G1G503Y + 0.270GGH5045 + 0.270GGH5046                 : ARR( 0.183E-11,   450., 0.0);
+{ 45103} G2G502Y +PERO6              =  0.300G1G503Y + 0.350GGH5045 + 0.350GGH5046                 : ARR( 0.168E-13, -1300., 0.0);
+{ 45104} G2G502Y +PERO9              =  0.650G1G503Y + 0.350GGH5046                                : ARR( 0.100E-10,     0., 0.0);
+{ 45105} G2G502Z +GNO                =       G1G503H +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 45106} G2G502Z +GNO                =       GGN501I                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 45107} G2G502Z +GHO2               =       GGH501O                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 45108} G2G502Z +GNO3               =       G1G503H +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 45109} G2G502Z +MEPERO             =  0.340G1G503H + 0.330GGN500J + 0.330GGN501M                 : ARR( 0.565E-13,  -845., 0.0);
+{ 45110} G2G502Z +PERO1              =  0.460G1G503H + 0.270GGN500J + 0.270GGN501M                 : ARR( 0.434E-13,  -900., 0.0);
+{ 45111} G2G502Z +PERO2              =  0.400G1G503H + 0.300GGN500J + 0.300GGN501M                 : ARR( 0.162E-13, -1400., 0.0);
+{ 45112} G2G502Z +PERO3              =  0.460G1G503H + 0.270GGN500J + 0.270GGN501M                 : ARR( 0.488E-13, -1250., 0.0);
+{ 45113} G2G502Z +PERO5              =  0.460G1G503H + 0.270GGN500J + 0.270GGN501M                 : ARR( 0.183E-11,   450., 0.0);
+{ 45114} G2G502Z +PERO6              =  0.300G1G503H + 0.350GGN500J + 0.350GGN501M                 : ARR( 0.168E-13, -1300., 0.0);
+{ 45115} G2G502Z +PERO9              =  0.650G1G503H + 0.350GGN501M                                : ARR( 0.100E-10,     0., 0.0);
+{ 45116} G1G503X                     =       GGH5016 +      GHO2                                   : ARR( 0.800E+11,  2246., 0.0);
+{ 45117} G1G503Y                     =       GND2000 +      GGD3001 +      GHO                     : ARR( 0.200E+15,  3953., 0.0);
+{ 45118} G1G503Y                     =       GHN3007 +      GGD2000 +      GHO2                    : ARR( 0.200E+15,  3929., 0.0);
+{ 45119} GAH501Z +GHO                =       GAH501A +      GHO2                                   : ARR( 0.483E-11,     0., 0.0);
+{ 45120} GAH501Z +GHO                =       G2A503U                                               : ARR( 0.147E-11,     0., 0.0);
+{ 45121} GAH501Z +GHO                =       GAN501F +      GHO                                    : ARR( 0.857E-11,     0., 0.0);
+{ 45122} GAH501Z +GHO                =       G2A503W                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 45123} GAH501Z+HV               =       G1A503T +      GHO                                    :  0.100E+01*SUN;
+{ 45124} GAH501Z+HV               =       G1A504S +      GNO2                                   :  0.100E+01*SUN;
+{ 45125} G2A503U +GNO                =       G1A504T +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 45126} G2A503U +GNO                =       GAH504F                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 45127} G2A503U +GHO2               =       GAH504G                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 45128} G2A503U +GNO3               =       G1A504T +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 45129} G2A503U +MEPERO             =  0.340G1A504T + 0.330GAH504H + 0.330GAH504I                 : ARR( 0.565E-13,  -845., 0.0);
+{ 45130} G2A503U +PERO1              =  0.460G1A504T + 0.270GAH504H + 0.270GAH504I                 : ARR( 0.434E-13,  -900., 0.0);
+{ 45131} G2A503U +PERO2              =  0.400G1A504T + 0.300GAH504H + 0.300GAH504I                 : ARR( 0.162E-13, -1400., 0.0);
+{ 45132} G2A503U +PERO3              =  0.460G1A504T + 0.270GAH504H + 0.270GAH504I                 : ARR( 0.488E-13, -1250., 0.0);
+{ 45133} G2A503U +PERO5              =  0.460G1A504T + 0.270GAH504H + 0.270GAH504I                 : ARR( 0.183E-11,   450., 0.0);
+{ 45134} G2A503U +PERO6              =  0.300G1A504T + 0.350GAH504H + 0.350GAH504I                 : ARR( 0.168E-13, -1300., 0.0);
+{ 45135} G2A503U +PERO9              =  0.650G1A504T + 0.350GAH504I                                : ARR( 0.100E-10,     0., 0.0);
+{ 45136} G2A503W +GNO                =       G1A503T +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 45137} G2A503W +GNO                =       GAN5019                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 45138} G2A503W +GHO2               =       GAH501Z                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 45139} G2A503W +GNO3               =       G1A503T +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 45140} G2A503W +MEPERO             =  0.340G1A503T + 0.330GAN500J + 0.330GAN501F                 : ARR( 0.565E-13,  -845., 0.0);
+{ 45141} G2A503W +PERO1              =  0.460G1A503T + 0.270GAN500J + 0.270GAN501F                 : ARR( 0.434E-13,  -900., 0.0);
+{ 45142} G2A503W +PERO2              =  0.400G1A503T + 0.300GAN500J + 0.300GAN501F                 : ARR( 0.162E-13, -1400., 0.0);
+{ 45143} G2A503W +PERO3              =  0.460G1A503T + 0.270GAN500J + 0.270GAN501F                 : ARR( 0.488E-13, -1250., 0.0);
+{ 45144} G2A503W +PERO5              =  0.460G1A503T + 0.270GAN500J + 0.270GAN501F                 : ARR( 0.183E-11,   450., 0.0);
+{ 45145} G2A503W +PERO6              =  0.300G1A503T + 0.350GAN500J + 0.350GAN501F                 : ARR( 0.168E-13, -1300., 0.0);
+{ 45146} G2A503W +PERO9              =  0.650G1A503T + 0.350GAN501F                                : ARR( 0.100E-10,     0., 0.0);
+{ 45147} G1A504S                     =       GAH501J +      GHO2                                   : ARR( 0.800E+11,  2381., 0.0);
+{ 45148} G1A504T                     =       GAD2000 +      GHN3007 +      GHO2                    : ARR( 0.200E+15,  3929., 0.0);
+{ 45149} G1A504T                     =       GAD3001 +      GND2000 +      GHO                     : ARR( 0.200E+15,  3953., 0.0);
+{ 45150} GHN5067 +GHO                =       GHN506q +      GHO2                                   : ARR( 0.253E-11,     0., 0.0);
+{ 45151} GHN5067 +GHO                =       GNN502F +      GHO                                    : ARR( 0.170E-11,     0., 0.0);
+{ 45152} GHN5067 +GHO                =       G2N5064                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 45153} GHN5067+HV               =       G3K2001 +      GHN3007 +      GNO2                    :  0.100E+01*SUN;
+{ 45154} GHN5067+HV               =       GNK3001 +      GDD2000 +      GHO     +      GNO2     :  0.100E+01*SUN;
+{ 45155} GHN5067+HV               =       G1H50Ag +      GNO2                                   :  0.100E+01*SUN;
+{ 45156} GHN5067+HV               =       G1N505S +      GHO                                    :  0.100E+01*SUN;
+{ 45157} GHN5067+HV               =       G1H50Ah +      GNO2                                   :  0.100E+01*SUN;
+{ 45158} G2N5064 +GNO                =       G1N505S +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 45159} G2N5064 +GNO                =       GNN5029                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 45160} G2N5064 +GHO2               =       GHN5067                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 45161} G2N5064 +GNO3               =       G1N505S +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 45162} G2N5064 +MEPERO             =  0.340G1N505S + 0.330GNN5024 + 0.330GNN502F                 : ARR( 0.565E-13,  -845., 0.0);
+{ 45163} G2N5064 +PERO1              =  0.460G1N505S + 0.270GNN5024 + 0.270GNN502F                 : ARR( 0.434E-13,  -900., 0.0);
+{ 45164} G2N5064 +PERO2              =  0.400G1N505S + 0.300GNN5024 + 0.300GNN502F                 : ARR( 0.162E-13, -1400., 0.0);
+{ 45165} G2N5064 +PERO3              =  0.460G1N505S + 0.270GNN5024 + 0.270GNN502F                 : ARR( 0.488E-13, -1250., 0.0);
+{ 45166} G2N5064 +PERO5              =  0.460G1N505S + 0.270GNN5024 + 0.270GNN502F                 : ARR( 0.183E-11,   450., 0.0);
+{ 45167} G2N5064 +PERO6              =  0.300G1N505S + 0.350GNN5024 + 0.350GNN502F                 : ARR( 0.168E-13, -1300., 0.0);
+{ 45168} G2N5064 +PERO9              =  0.650G1N505S + 0.350GNN502F                                : ARR( 0.100E-10,     0., 0.0);
+{ 45169} G1H50Ag                     =       G3K2001 +      GHN3007                                : ARR( 0.200E+15,  3009., 0.0);
+{ 45170} G1H50Ah +OXYGEN             =       GHN505p +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 45171} G1H50Ah                     =       GND400L +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5636., 0.0);
+{ 45172} GHH502M +GHO                =       GHN505F +      GHO                                    : ARR( 0.263E-10,     0., 0.0);
+{ 45173} GHH502M +GHO                =       GHN503o +      GHO                                    : ARR( 0.273E-10,     0., 0.0);
+{ 45174} GHH502M +GHO                =       G2H503S                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 45175} GHH502M +GHO                =       G2H503T                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 45176} GHH502M+HV               =       G3K2001 +      GHN3007 +      GHO                     :  0.100E+01*SUN;
+{ 45177} GHH502M+HV               =       G1H50Ag +      GHO                                    :  0.100E+01*SUN;
+{ 45178} GHH502M+HV               =       G1H506F +      GHO                                    :  0.100E+01*SUN;
+{ 45179} GHH502M+HV               =       G1H50Ai +      GNO2                                   :  0.100E+01*SUN;
+{ 45180} G2H503S +GNO                =       G1H50Ag +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 45181} G2H503S +GNO                =       GHN5067                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 45182} G2H503S +GHO2               =       GHH502M                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 45183} G2H503S +GNO3               =       G1H50Ag +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 45184} G2H503S +MEPERO             =  0.340G1H50Ag + 0.330GHN503h + 0.330GHN505F                 : ARR( 0.565E-13,  -845., 0.0);
+{ 45185} G2H503S +PERO1              =  0.460G1H50Ag + 0.270GHN503h + 0.270GHN505F                 : ARR( 0.434E-13,  -900., 0.0);
+{ 45186} G2H503S +PERO2              =  0.400G1H50Ag + 0.300GHN503h + 0.300GHN505F                 : ARR( 0.162E-13, -1400., 0.0);
+{ 45187} G2H503S +PERO3              =  0.460G1H50Ag + 0.270GHN503h + 0.270GHN505F                 : ARR( 0.488E-13, -1250., 0.0);
+{ 45188} G2H503S +PERO5              =  0.460G1H50Ag + 0.270GHN503h + 0.270GHN505F                 : ARR( 0.183E-11,   450., 0.0);
+{ 45189} G2H503S +PERO6              =  0.300G1H50Ag + 0.350GHN503h + 0.350GHN505F                 : ARR( 0.168E-13, -1300., 0.0);
+{ 45190} G2H503S +PERO9              =  0.650G1H50Ag + 0.350GHN505F                                : ARR( 0.100E-10,     0., 0.0);
+{ 45191} G2H503T +GNO                =       G1H506F +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 45192} G2H503T +GNO                =       GHN503Z                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 45193} G2H503T +GHO2               =       GHH502M                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 45194} G2H503T +GNO3               =       G1H506F +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 45195} G2H503T +MEPERO             =  0.340G1H506F + 0.330GHN502t + 0.330GHN503o                 : ARR( 0.565E-13,  -845., 0.0);
+{ 45196} G2H503T +PERO1              =  0.460G1H506F + 0.270GHN502t + 0.270GHN503o                 : ARR( 0.434E-13,  -900., 0.0);
+{ 45197} G2H503T +PERO2              =  0.400G1H506F + 0.300GHN502t + 0.300GHN503o                 : ARR( 0.162E-13, -1400., 0.0);
+{ 45198} G2H503T +PERO3              =  0.460G1H506F + 0.270GHN502t + 0.270GHN503o                 : ARR( 0.488E-13, -1250., 0.0);
+{ 45199} G2H503T +PERO5              =  0.460G1H506F + 0.270GHN502t + 0.270GHN503o                 : ARR( 0.183E-11,   450., 0.0);
+{ 45200} G2H503T +PERO6              =  0.300G1H506F + 0.350GHN502t + 0.350GHN503o                 : ARR( 0.168E-13, -1300., 0.0);
+{ 45201} G2H503T +PERO9              =  0.650G1H506F + 0.350GHN503o                                : ARR( 0.100E-10,     0., 0.0);
+{ 45202} G1H50Ai +OXYGEN             =       GHH502P +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 45203} G1H50Ai                     =       GHD400G +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5636., 0.0);
+{ 45204} GGH501P +GHO                =       GGK500O +      GHO                                    : ARR( 0.903E-10,     0., 0.0);
+{ 45205} GGH501P+HV               =       G3K2001 +      G2G3008                                :  0.100E+01*SUN;
+{ 45206} GGH501P+HV               =       G1G501T +      GHO                                    :  0.100E+01*SUN;
+{ 45207} GGH501P+HV               =       GDK4001 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 45208} GAH501a +GHO                =       GAK500O +      GHO                                    : ARR( 0.627E-10,     0., 0.0);
+{ 45209} GAH501a +GHO                =       G2A501Q                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 45210} GAH501a+HV               =       G3K2001 +      G2A300A                                :  0.100E+01*SUN;
+{ 45211} GAH501a+HV               =       G1A501e +      GHO                                    :  0.100E+01*SUN;
+{ 45212} GPH501Z                     =       G3H5019 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 45213} GPH501Z +GHO                =       GPK500O +      GHO                                    : ARR( 0.867E-10,     0., 0.0);
+{ 45214} GPH501Z+HV               =       G3K2001 +      G2P300B                                :  0.100E+01*SUN;
+{ 45215} GPH501Z+HV               =       G1P501g +      GHO                                    :  0.100E+01*SUN;
+{ 45216} GPH501Z+HV               =       G3H5019 +      GNO2                                   :  0.100E+01*SUN;
+{ 45217} GHH502N +GHO                =       GHN505x +      GHO                                    : ARR( 0.291E-10,     0., 0.0);
+{ 45218} GHH502N +GHO                =       GHN505L +      GHO                                    : ARR( 0.280E-10,     0., 0.0);
+{ 45219} GHH502N +GHO                =       G3H503R                                               : ARR( 0.232E-10,     0., 0.0);
+{ 45220} GHH502N +GNO3               =       G3H503R +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 45221} GHH502N+HV               =       G1H50AN +      GNO2                                   :  0.100E+01*SUN;
+{ 45222} GHH502N+HV               =       G1H509s +      GHO                                    :  0.100E+01*SUN;
+{ 45223} GHH502N+HV               =       G1H5089 +      GHO                                    :  0.100E+01*SUN;
+{ 45224} GHH502N+HV               =       GHN400h +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 45225} G3H503R +GHO2               =  0.800GGH503h + 0.200GAH503f + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 45226} G3H503R +GNO                =       GHN400h +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 45227} G3H503R +GNO2               =       GPH503h                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 45228} G3H503R +GNO3               =       GHN400h +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 45229} G3H503R +MEPERO             =  0.685GHN400h + 0.315GAH503f + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45230} G3H503R +PERO1              =  0.800GHN400h + 0.200GAH503f + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45231} G3H503R +PERO2              =  0.750GHN400h + 0.250GAH503f + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45232} G3H503R +PERO3              =  0.800GHN400h + 0.200GAH503f + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45233} G3H503R +PERO5              =  0.650GHN400h + 0.350GAH503f + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45234} G3H503R +PERO6              =  0.650GHN400h + 0.350GAH503f + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45235} G3H503R +PERO9              =       GHN400h +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 45236} GHH502O +GHO                =       GHH502z +      GHO2                                   : ARR( 0.256E-10,     0., 0.0);
+{ 45237} GHH502O +GHO                =       GHK500m +      GHO                                    : ARR( 0.504E-10,     0., 0.0);
+{ 45238} GHH502O +GHO                =       G2H503U                                               : ARR( 0.381E-11,  -190., 0.0);
+{ 45239} GHH502O+HV               =       G1H508z +      GHO                                    :  0.200E+01*SUN;
+{ 45240} GHH502O+HV               =       G3H3004 +      GDO2000 +      GHO                     :  0.100E+01*SUN;
+{ 45241} G2H503U +GNO                =       G1H508z +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 45242} G2H503U +GNO                =       GHN505A                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 45243} G2H503U +GHO2               =       GHH502O                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 45244} G2H503U +GNO3               =       G1H508z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 45245} G2H503U +MEPERO             =  0.340G1H508z + 0.330GHK500t + 0.330GHK500m                 : ARR( 0.565E-13,  -845., 0.0);
+{ 45246} G2H503U +PERO1              =  0.460G1H508z + 0.270GHK500t + 0.270GHK500m                 : ARR( 0.434E-13,  -900., 0.0);
+{ 45247} G2H503U +PERO2              =  0.400G1H508z + 0.300GHK500t + 0.300GHK500m                 : ARR( 0.162E-13, -1400., 0.0);
+{ 45248} G2H503U +PERO3              =  0.460G1H508z + 0.270GHK500t + 0.270GHK500m                 : ARR( 0.488E-13, -1250., 0.0);
+{ 45249} G2H503U +PERO5              =  0.460G1H508z + 0.270GHK500t + 0.270GHK500m                 : ARR( 0.183E-11,   450., 0.0);
+{ 45250} G2H503U +PERO6              =  0.300G1H508z + 0.350GHK500t + 0.350GHK500m                 : ARR( 0.168E-13, -1300., 0.0);
+{ 45251} G2H503U +PERO9              =  0.650G1H508z + 0.350GHK500m                                : ARR( 0.100E-10,     0., 0.0);
+{ 45252} GHK500t +GHO                =       GHD501E +      GHO2                                   : ARR( 0.128E-10,     0., 0.0);
+{ 45253} GHK500t +GHO                =       GHK500m +      GHO2                                   : ARR( 0.633E-11,     0., 0.0);
+{ 45254} GHK500t +GHO                =       GKK500G +      GHO                                    : ARR( 0.253E-10,     0., 0.0);
+{ 45255} GHK500t +GHO                =       GHD500c +      GHO2                                   : ARR( 0.128E-10,     0., 0.0);
+{ 45256} GHK500t +GHO                =       G2K500t                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 45257} GHK500t+HV               =       G3K3003 +      GDO2000 +      GHO                     :  0.100E+01*SUN;
+{ 45258} GHK500t+HV               =       G1K5018 +      GHO                                    :  0.100E+01*SUN;
+{ 45259} G2K500t +GNO                =       G1K5018 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 45260} G2K500t +GNO                =       GNK5018                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 45261} G2K500t +GHO2               =       GHK500t                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 45262} G2K500t +GNO3               =       G1K5018 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 45263} G2K500t +MEPERO             =  0.340G1K5018 + 0.330GKO500M + 0.330GKK500G                 : ARR( 0.565E-13,  -845., 0.0);
+{ 45264} G2K500t +PERO1              =  0.460G1K5018 + 0.270GKO500M + 0.270GKK500G                 : ARR( 0.434E-13,  -900., 0.0);
+{ 45265} G2K500t +PERO2              =  0.400G1K5018 + 0.300GKO500M + 0.300GKK500G                 : ARR( 0.162E-13, -1400., 0.0);
+{ 45266} G2K500t +PERO3              =  0.460G1K5018 + 0.270GKO500M + 0.270GKK500G                 : ARR( 0.488E-13, -1250., 0.0);
+{ 45267} G2K500t +PERO5              =  0.460G1K5018 + 0.270GKO500M + 0.270GKK500G                 : ARR( 0.183E-11,   450., 0.0);
+{ 45268} G2K500t +PERO6              =  0.300G1K5018 + 0.350GKO500M + 0.350GKK500G                 : ARR( 0.168E-13, -1300., 0.0);
+{ 45269} G2K500t +PERO9              =  0.650G1K5018 + 0.350GKK500G                                : ARR( 0.100E-10,     0., 0.0);
+{ 45270} GHH502P +GHO                =       GHD501H +      GHO                                    : ARR( 0.840E-10,     0., 0.0);
+{ 45271} GHH502P +GHO                =       GHD5014 +      GHO                                    : ARR( 0.840E-10,     0., 0.0);
+{ 45272} GHH502P +GHO                =       G3H503S                                               : ARR( 0.219E-10,     0., 0.0);
+{ 45273} GHH502P +GNO3               =       G3H503S +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 45274} GHH502P+HV               =       G3K2001 +      GHD3004 +      GHO                     :  0.100E+01*SUN;
+{ 45275} GHH502P+HV               =       G1H50A3 +      GHO                                    :  0.100E+01*SUN;
+{ 45276} GHH502P+HV               =       G1H509A +      GHO                                    :  0.100E+01*SUN;
+{ 45277} GHH502P+HV               =       GHD400G +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 45278} G3H503S +GHO2               =  0.800GGH5047 + 0.200GAH504J + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 45279} G3H503S +GNO                =       GHD400G +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 45280} G3H503S +GNO2               =       GPH504L                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 45281} G3H503S +GNO3               =       GHD400G +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 45282} G3H503S +MEPERO             =  0.685GHD400G + 0.315GAH504J + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45283} G3H503S +PERO1              =  0.800GHD400G + 0.200GAH504J + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45284} G3H503S +PERO2              =  0.750GHD400G + 0.250GAH504J + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45285} G3H503S +PERO3              =  0.800GHD400G + 0.200GAH504J + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45286} G3H503S +PERO5              =  0.650GHD400G + 0.350GAH504J + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45287} G3H503S +PERO6              =  0.650GHD400G + 0.350GAH504J + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45288} G3H503S +PERO9              =       GHD400G +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 45289} GGH501Q +GHO                =       GGH5047 +      GHO2                                   : ARR( 0.123E-10,     0., 0.0);
+{ 45290} GGH501Q +GHO                =       GGH501S +      GHO                                    : ARR( 0.493E-10,     0., 0.0);
+{ 45291} GGH501Q +GHO                =       GGH501f +      GHO                                    : ARR( 0.301E-10,     0., 0.0);
+{ 45292} GGH501Q+HV               =       G1G502x +      GHO                                    :  0.100E+01*SUN;
+{ 45293} GGH501Q+HV               =       G1G501G +      GHO                                    :  0.100E+01*SUN;
+{ 45294} GGH501Q+HV               =       GHD400A +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 45295} GAH501b +GHO                =       GAH504J +      GHO2                                   : ARR( 0.121E-10,     0., 0.0);
+{ 45296} GAH501b +GHO                =       GAH501d +      GHO                                    : ARR( 0.483E-10,     0., 0.0);
+{ 45297} GAH501b +GHO                =       GAH502n +      GHO                                    : ARR( 0.218E-10,     0., 0.0);
+{ 45298} GAH501b+HV               =       G1A504H +      GHO                                    :  0.100E+01*SUN;
+{ 45299} GAH501b+HV               =       G1A504U +      GHO                                    :  0.100E+01*SUN;
+{ 45300} G1A504U                     =       GAH501n +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{ 45301} G1A504U                     =       GHD400A +      GCO     +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 45302} GPH501a                     =       G3H501A +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 45303} GPH501a +GHO                =       GPH504L +      GHO2                                   : ARR( 0.118E-10,     0., 0.0);
+{ 45304} GPH501a +GHO                =       GPH501c +      GHO                                    : ARR( 0.474E-10,     0., 0.0);
+{ 45305} GPH501a +GHO                =       GPH501l +      GHO                                    : ARR( 0.289E-10,     0., 0.0);
+{ 45306} GPH501a+HV               =       G1P504S +      GHO                                    :  0.100E+01*SUN;
+{ 45307} GPH501a+HV               =       G1P501Q +      GHO                                    :  0.100E+01*SUN;
+{ 45308} GPH501a+HV               =       G3H501A +      GNO2                                   :  0.100E+01*SUN;
+{ 45309} GHD400M +GHO                =       GHD400K +      GHO2                                   : ARR( 0.128E-10,     0., 0.0);
+{ 45310} GHD400M +GHO                =       GDK4009 +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 45311} GHD400M +GHO                =       G3H3004 +      GCO                                    : ARR( 0.127E-10,     0., 0.0);
+{ 45312} GHD400M +GHO                =       G2D400G                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 45313} GHD400M +GNO3               =       G3H3004 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 45314} GHD400M+HV               =       G1D400L +      GHO                                    :  0.100E+01*SUN;
+{ 45315} GHD400M+HV               =       G3H3004 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 45316} GHD400M+HV               =       GHD3003 +      GCO                                    :  0.100E+01*SUN;
+{ 45317} GHD400M+HV               =       GHO2000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 45318} G2D400G +GNO                =       G1D400L +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 45319} G2D400G +GNO                =       GND400K                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 45320} G2D400G +GHO2               =       GHD400M                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 45321} G2D400G +GNO3               =       G1D400L +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 45322} G2D400G +MEPERO             =  0.340G1D400L + 0.330GDK4007 + 0.330GDK4009                 : ARR( 0.565E-13,  -845., 0.0);
+{ 45323} G2D400G +PERO1              =  0.460G1D400L + 0.270GDK4007 + 0.270GDK4009                 : ARR( 0.434E-13,  -900., 0.0);
+{ 45324} G2D400G +PERO2              =  0.400G1D400L + 0.300GDK4007 + 0.300GDK4009                 : ARR( 0.162E-13, -1400., 0.0);
+{ 45325} G2D400G +PERO3              =  0.460G1D400L + 0.270GDK4007 + 0.270GDK4009                 : ARR( 0.488E-13, -1250., 0.0);
+{ 45326} G2D400G +PERO5              =  0.460G1D400L + 0.270GDK4007 + 0.270GDK4009                 : ARR( 0.183E-11,   450., 0.0);
+{ 45327} G2D400G +PERO6              =  0.300G1D400L + 0.350GDK4007 + 0.350GDK4009                 : ARR( 0.168E-13, -1300., 0.0);
+{ 45328} G2D400G +PERO9              =  0.650G1D400L + 0.350GDK4009                                : ARR( 0.100E-10,     0., 0.0);
+{ 45329} GGH400Y +GHO                =       GGH400Z +      GHO                                    : ARR( 0.505E-10,     0., 0.0);
+{ 45330} GGH400Y +GHO                =       GGH400j +      GHO                                    : ARR( 0.308E-10,     0., 0.0);
+{ 45331} GGH400Y+HV               =       G1G400h +      GHO                                    :  0.100E+01*SUN;
+{ 45332} GGH400Y+HV               =       G1G400w +      GHO                                    :  0.100E+01*SUN;
+{ 45333} GGH400Y+HV               =       GHD3003 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 45334} GAH400a +GHO                =       GAH400w +      GHO2                                   : ARR( 0.406E-11,     0., 0.0);
+{ 45335} GAH400a +GHO                =       GAH400b +      GHO                                    : ARR( 0.416E-10,     0., 0.0);
+{ 45336} GAH400a +GHO                =       GAH400c +      GHO                                    : ARR( 0.188E-10,     0., 0.0);
+{ 45337} GAH400a +GHO                =       G2A400s                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 45338} GAH400a +GHO                =       G2A400t                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 45339} GAH400a+HV               =       G1A400k +      GHO                                    :  0.100E+01*SUN;
+{ 45340} GAH400a+HV               =       G1A4013 +      GHO                                    :  0.100E+01*SUN;
+{ 45341} G2A400s +GNO                =       G1A400k +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 45342} G2A400s +GNO                =       GAH400C                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 45343} G2A400s +GHO2               =       GAH400a                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 45344} G2A400s +GNO3               =       G1A400k +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 45345} G2A400s +MEPERO             =  0.340G1A400k + 0.330GAH400K + 0.330GAH400b                 : ARR( 0.565E-13,  -845., 0.0);
+{ 45346} G2A400s +PERO1              =  0.460G1A400k + 0.270GAH400K + 0.270GAH400b                 : ARR( 0.434E-13,  -900., 0.0);
+{ 45347} G2A400s +PERO2              =  0.400G1A400k + 0.300GAH400K + 0.300GAH400b                 : ARR( 0.162E-13, -1400., 0.0);
+{ 45348} G2A400s +PERO3              =  0.460G1A400k + 0.270GAH400K + 0.270GAH400b                 : ARR( 0.488E-13, -1250., 0.0);
+{ 45349} G2A400s +PERO5              =  0.460G1A400k + 0.270GAH400K + 0.270GAH400b                 : ARR( 0.183E-11,   450., 0.0);
+{ 45350} G2A400s +PERO6              =  0.300G1A400k + 0.350GAH400K + 0.350GAH400b                 : ARR( 0.168E-13, -1300., 0.0);
+{ 45351} G2A400s +PERO9              =  0.650G1A400k + 0.350GAH400b                                : ARR( 0.100E-10,     0., 0.0);
+{ 45352} G2A400t +GNO                =       G1A4013 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 45353} G2A400t +GNO                =       GAH400U                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 45354} G2A400t +GHO2               =       GAH400a                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 45355} G2A400t +GNO3               =       G1A4013 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 45356} G2A400t +MEPERO             =  0.340G1A4013 + 0.330GAH400J + 0.330GAH400c                 : ARR( 0.565E-13,  -845., 0.0);
+{ 45357} G2A400t +PERO1              =  0.460G1A4013 + 0.270GAH400J + 0.270GAH400c                 : ARR( 0.434E-13,  -900., 0.0);
+{ 45358} G2A400t +PERO2              =  0.400G1A4013 + 0.300GAH400J + 0.300GAH400c                 : ARR( 0.162E-13, -1400., 0.0);
+{ 45359} G2A400t +PERO3              =  0.460G1A4013 + 0.270GAH400J + 0.270GAH400c                 : ARR( 0.488E-13, -1250., 0.0);
+{ 45360} G2A400t +PERO5              =  0.460G1A4013 + 0.270GAH400J + 0.270GAH400c                 : ARR( 0.183E-11,   450., 0.0);
+{ 45361} G2A400t +PERO6              =  0.300G1A4013 + 0.350GAH400J + 0.350GAH400c                 : ARR( 0.168E-13, -1300., 0.0);
+{ 45362} G2A400t +PERO9              =  0.650G1A4013 + 0.350GAH400c                                : ARR( 0.100E-10,     0., 0.0);
+{ 45363} GPH400b                     =       G3H400N +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 45364} GPH400b +GHO                =       GPH400w +      GHO2                                   : ARR( 0.444E-11,     0., 0.0);
+{ 45365} GPH400b +GHO                =       GPH400c +      GHO                                    : ARR( 0.455E-10,     0., 0.0);
+{ 45366} GPH400b +GHO                =       GPH400d +      GHO                                    : ARR( 0.277E-10,     0., 0.0);
+{ 45367} GPH400b+HV               =       G1P400l +      GHO                                    :  0.100E+01*SUN;
+{ 45368} GPH400b+HV               =       G1P4018 +      GHO                                    :  0.100E+01*SUN;
+{ 45369} GPH400b+HV               =       G3H400N +      GNO2                                   :  0.100E+01*SUN;
+{ 45370} GHN5068 +GHO                =       GNN5035 +      GHO                                    : ARR( 0.836E-11,     0., 0.0);
+{ 45371} GHN5068 +GHO                =       GHN506X +      GHO2                                   : ARR( 0.209E-11,     0., 0.0);
+{ 45372} GHN5068 +GHO                =       G3H503T                                               : ARR( 0.421E-11,     0., 0.0);
+{ 45373} GHN5068 +GHO                =       G2N5065                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 45374} GHN5068 +GNO3               =       G3H503T +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 45375} GHN5068+HV               =       G1H50Aj +      GNO2                                   :  0.100E+01*SUN;
+{ 45376} GHN5068+HV               =       G1N507B +      GHO                                    :  0.100E+01*SUN;
+{ 45377} GHN5068+HV               =       G1H50AY +      GNO2                                   :  0.100E+01*SUN;
+{ 45378} GHN5068+HV               =       GHN400z +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 45379} GHN5068+HV               =       GND3003 +      GND2000 +      GHO2    +      GHO      :  0.100E+01*SUN;
+{ 45380} G3H503T +GHO2               =  0.800GGH5048 + 0.200GAH503L + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 45381} G3H503T +GNO                =       GHN400z + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 45382} G3H503T +GNO2               =       GPH503R                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 45383} G3H503T +GNO3               =       GHN400z + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 45384} G3H503T +MEPERO             =  0.685GHN400z + 0.315GAH503L + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45385} G3H503T +PERO1              =  0.800GHN400z + 0.200GAH503L + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45386} G3H503T +PERO2              =  0.750GHN400z + 0.250GAH503L + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45387} G3H503T +PERO3              =  0.800GHN400z + 0.200GAH503L + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45388} G3H503T +PERO5              =  0.650GHN400z + 0.350GAH503L + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45389} G3H503T +PERO6              =  0.650GHN400z + 0.350GAH503L + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45390} G3H503T +PERO9              =       GHN400z +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 45391} G2N5065 +GNO                =       G1N507B +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 45392} G2N5065 +GNO                =       GNN503H                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 45393} G2N5065 +GHO2               =       GHN5068                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 45394} G2N5065 +GNO3               =       G1N507B +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 45395} G2N5065 +MEPERO             =  0.340G1N507B + 0.330GNN5034 + 0.330GNN5035                 : ARR( 0.565E-13,  -845., 0.0);
+{ 45396} G2N5065 +PERO1              =  0.460G1N507B + 0.270GNN5034 + 0.270GNN5035                 : ARR( 0.434E-13,  -900., 0.0);
+{ 45397} G2N5065 +PERO2              =  0.400G1N507B + 0.300GNN5034 + 0.300GNN5035                 : ARR( 0.162E-13, -1400., 0.0);
+{ 45398} G2N5065 +PERO3              =  0.460G1N507B + 0.270GNN5034 + 0.270GNN5035                 : ARR( 0.488E-13, -1250., 0.0);
+{ 45399} G2N5065 +PERO5              =  0.460G1N507B + 0.270GNN5034 + 0.270GNN5035                 : ARR( 0.183E-11,   450., 0.0);
+{ 45400} G2N5065 +PERO6              =  0.300G1N507B + 0.350GNN5034 + 0.350GNN5035                 : ARR( 0.168E-13, -1300., 0.0);
+{ 45401} G2N5065 +PERO9              =  0.650G1N507B + 0.350GNN5035                                : ARR( 0.100E-10,     0., 0.0);
+{ 45402} G1H50Aj                     =       GHD5015 +      GNO2                                   : ARR( 0.800E+11,  4245., 0.0);
+{ 45403} G1H50Aj                     =       GND400J +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{ 45404} G1N507B                     =       GND2000 +      GND3005 +      GHO2                    : ARR( 0.200E+15,  3617., 0.0);
+{ 45405} GHH502Q +GHO                =       GHH502K +      GHO2                                   : ARR( 0.128E-10,     0., 0.0);
+{ 45406} GHH502Q +GHO                =       GHN505F +      GHO                                    : ARR( 0.253E-10,     0., 0.0);
+{ 45407} GHH502Q +GHO                =       GHN503r +      GHO                                    : ARR( 0.505E-11,     0., 0.0);
+{ 45408} GHH502Q +GHO                =       G2H503W                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 45409} GHH502Q +GHO                =       G2H503X                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 45410} GHH502Q+HV               =       G1H5095 +      GHO                                    :  0.100E+01*SUN;
+{ 45411} GHH502Q+HV               =       G3H3004 +      GND2000 +      GHO                     :  0.100E+01*SUN;
+{ 45412} GHH502Q+HV               =       G1H50AD +      GHO                                    :  0.100E+01*SUN;
+{ 45413} GHH502Q+HV               =       G1H50Ak +      GNO2                                   :  0.100E+01*SUN;
+{ 45414} G2H503W +GNO                =       G1H5095 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 45415} G2H503W +GNO                =       GHN505E                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 45416} G2H503W +GHO2               =       GHH502Q                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 45417} G2H503W +GNO3               =       G1H5095 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 45418} G2H503W +MEPERO             =  0.340G1H5095 + 0.330GHN503f + 0.330GHN505F                 : ARR( 0.565E-13,  -845., 0.0);
+{ 45419} G2H503W +PERO1              =  0.460G1H5095 + 0.270GHN503f + 0.270GHN505F                 : ARR( 0.434E-13,  -900., 0.0);
+{ 45420} G2H503W +PERO2              =  0.400G1H5095 + 0.300GHN503f + 0.300GHN505F                 : ARR( 0.162E-13, -1400., 0.0);
+{ 45421} G2H503W +PERO3              =  0.460G1H5095 + 0.270GHN503f + 0.270GHN505F                 : ARR( 0.488E-13, -1250., 0.0);
+{ 45422} G2H503W +PERO5              =  0.460G1H5095 + 0.270GHN503f + 0.270GHN505F                 : ARR( 0.183E-11,   450., 0.0);
+{ 45423} G2H503W +PERO6              =  0.300G1H5095 + 0.350GHN503f + 0.350GHN505F                 : ARR( 0.168E-13, -1300., 0.0);
+{ 45424} G2H503W +PERO9              =  0.650G1H5095 + 0.350GHN505F                                : ARR( 0.100E-10,     0., 0.0);
+{ 45425} G2H503X +GNO                =       G1H50AD +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 45426} G2H503X +GNO                =       GHN505w                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 45427} G2H503X +GHO2               =       GHH502Q                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 45428} G2H503X +GNO3               =       G1H50AD +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 45429} G2H503X +MEPERO             =  0.340G1H50AD + 0.330GHN503l + 0.330GHN503r                 : ARR( 0.565E-13,  -845., 0.0);
+{ 45430} G2H503X +PERO1              =  0.460G1H50AD + 0.270GHN503l + 0.270GHN503r                 : ARR( 0.434E-13,  -900., 0.0);
+{ 45431} G2H503X +PERO2              =  0.400G1H50AD + 0.300GHN503l + 0.300GHN503r                 : ARR( 0.162E-13, -1400., 0.0);
+{ 45432} G2H503X +PERO3              =  0.460G1H50AD + 0.270GHN503l + 0.270GHN503r                 : ARR( 0.488E-13, -1250., 0.0);
+{ 45433} G2H503X +PERO5              =  0.460G1H50AD + 0.270GHN503l + 0.270GHN503r                 : ARR( 0.183E-11,   450., 0.0);
+{ 45434} G2H503X +PERO6              =  0.300G1H50AD + 0.350GHN503l + 0.350GHN503r                 : ARR( 0.168E-13, -1300., 0.0);
+{ 45435} G2H503X +PERO9              =  0.650G1H50AD + 0.350GHN503r                                : ARR( 0.100E-10,     0., 0.0);
+{ 45436} G1H50Ak +OXYGEN             =       GHH502z +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 45437} G1H50Ak                     =       GHK500m +      GHO                                    : ARR( 0.800E+11,  3661., 0.0);
+{ 45438} G1H50Ak                     =       GHD400M +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5784., 0.0);
+{ 45439} GHN5069 +GHO                =       GND501R +      GHO                                    : ARR( 0.262E-10,     0., 0.0);
+{ 45440} GHN5069 +GHO                =       GHN506f +      GHO2                                   : ARR( 0.631E-11,     0., 0.0);
+{ 45441} GHN5069 +GHO                =       G3H400b +      GCO                                    : ARR( 0.127E-10,     0., 0.0);
+{ 45442} GHN5069 +GHO                =       G2N5066                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 45443} GHN5069 +GNO3               =       G3H400b +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 45444} GHN5069+HV               =       G1H50Al +      GNO2                                   :  0.100E+01*SUN;
+{ 45445} GHN5069+HV               =       G1N5071 +      GHO                                    :  0.100E+01*SUN;
+{ 45446} GHN5069+HV               =       G3H400b +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 45447} GHN5069+HV               =       GHN400z +      GCO                                    :  0.100E+01*SUN;
+{ 45448} GHN5069+HV               =       GHN3006 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 45449} G2N5066 +GNO                =       G1N5071 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 45450} G2N5066 +GNO                =       GNN5039                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 45451} G2N5066 +GHO2               =       GHN5069                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 45452} G2N5066 +GNO3               =       G1N5071 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 45453} G2N5066 +MEPERO             =  0.340G1N5071 + 0.330GND501L + 0.330GND501R                 : ARR( 0.565E-13,  -845., 0.0);
+{ 45454} G2N5066 +PERO1              =  0.460G1N5071 + 0.270GND501L + 0.270GND501R                 : ARR( 0.434E-13,  -900., 0.0);
+{ 45455} G2N5066 +PERO2              =  0.400G1N5071 + 0.300GND501L + 0.300GND501R                 : ARR( 0.162E-13, -1400., 0.0);
+{ 45456} G2N5066 +PERO3              =  0.460G1N5071 + 0.270GND501L + 0.270GND501R                 : ARR( 0.488E-13, -1250., 0.0);
+{ 45457} G2N5066 +PERO5              =  0.460G1N5071 + 0.270GND501L + 0.270GND501R                 : ARR( 0.183E-11,   450., 0.0);
+{ 45458} G2N5066 +PERO6              =  0.300G1N5071 + 0.350GND501L + 0.350GND501R                 : ARR( 0.168E-13, -1300., 0.0);
+{ 45459} G2N5066 +PERO9              =  0.650G1N5071 + 0.350GND501R                                : ARR( 0.100E-10,     0., 0.0);
+{ 45460} G1H50Al +OXYGEN             =       GHD501R +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 45461} G1H50Al                     =       GDD4004 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5636., 0.0);
+{ 45462} GHD501G +GHO                =       GHD501H +      GHO2                                   : ARR( 0.210E-10,     0., 0.0);
+{ 45463} GHD501G +GHO                =       GDK500a +      GHO                                    : ARR( 0.839E-10,     0., 0.0);
+{ 45464} GHD501G +GHO                =       G3H503U                                               : ARR( 0.219E-10,     0., 0.0);
+{ 45465} GHD501G +GNO3               =       G3H503U +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 45466} GHD501G+HV               =       G3K2001 +      GHD3004 +      GHO2                    :  0.100E+01*SUN;
+{ 45467} GHD501G+HV               =       G1D501B +      GHO                                    :  0.100E+01*SUN;
+{ 45468} GHD501G+HV               =       GDK4006 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 45469} G3H503U +GHO2               =  0.800GGH5049 + 0.200GAH504K + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 45470} G3H503U +GNO                =       GDK4006 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 45471} G3H503U +GNO2               =       GPH504M                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 45472} G3H503U +GNO3               =       GDK4006 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 45473} G3H503U +MEPERO             =  0.685GDK4006 + 0.315GAH504K + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45474} G3H503U +PERO1              =  0.800GDK4006 + 0.200GAH504K + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45475} G3H503U +PERO2              =  0.750GDK4006 + 0.250GAH504K + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45476} G3H503U +PERO3              =  0.800GDK4006 + 0.200GAH504K + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45477} G3H503U +PERO5              =  0.650GDK4006 + 0.350GAH504K + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45478} G3H503U +PERO6              =  0.650GDK4006 + 0.350GAH504K + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45479} G3H503U +PERO9              =       GDK4006 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 45480} GHN506A +GHO                =       GHN505x +      GHO2                                   : ARR( 0.667E-11,     0., 0.0);
+{ 45481} GHN506A +GHO                =       GND501F +      GHO                                    : ARR( 0.257E-10,     0., 0.0);
+{ 45482} GHN506A +GHO                =       G3H503W                                               : ARR( 0.212E-10,     0., 0.0);
+{ 45483} GHN506A +GHO                =       G2N505L                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 45484} GHN506A +GNO3               =       G3H503W +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 45485} GHN506A+HV               =       G1H50AQ +      GNO2                                   :  0.100E+01*SUN;
+{ 45486} GHN506A+HV               =       G1N506M +      GHO                                    :  0.100E+01*SUN;
+{ 45487} GHN506A+HV               =       GND4009 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 45488} G3H503W +GHO2               =  0.800GGH503l + 0.200GAH503j + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 45489} G3H503W +GNO                =       GND4009 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 45490} G3H503W +GNO2               =       GPH503l                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 45491} G3H503W +GNO3               =       GND4009 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 45492} G3H503W +MEPERO             =  0.685GND4009 + 0.315GAH503j + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45493} G3H503W +PERO1              =  0.800GND4009 + 0.200GAH503j + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45494} G3H503W +PERO2              =  0.750GND4009 + 0.250GAH503j + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45495} G3H503W +PERO3              =  0.800GND4009 + 0.200GAH503j + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45496} G3H503W +PERO5              =  0.650GND4009 + 0.350GAH503j + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45497} G3H503W +PERO6              =  0.650GND4009 + 0.350GAH503j + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45498} G3H503W +PERO9              =       GND4009 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 45499} GGH501R +GHO                =       GGH503u +      GHO2                                   : ARR( 0.405E-11,     0., 0.0);
+{ 45500} GGH501R +GHO                =       GGH5049 +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 45501} GGH501R +GHO                =       GGH501S +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 45502} GGH501R +GHO                =       GGK500P +      GHO                                    : ARR( 0.253E-10,     0., 0.0);
+{ 45503} GGH501R +GHO                =       G2G5014                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 45504} GGH501R +GHO                =       G3H501B                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 45505} GGH501R+HV               =       G1G501J +      GHO                                    :  0.100E+01*SUN;
+{ 45506} GGH501R+HV               =       GDO4006 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 45507} GAH501c +GHO                =       GAH5048 +      GHO2                                   : ARR( 0.410E-11,     0., 0.0);
+{ 45508} GAH501c +GHO                =       GAH504K +      GHO2                                   : ARR( 0.105E-10,     0., 0.0);
+{ 45509} GAH501c +GHO                =       GAH501d +      GHO2                                   : ARR( 0.105E-10,     0., 0.0);
+{ 45510} GAH501c +GHO                =       GAK500b +      GHO                                    : ARR( 0.190E-10,     0., 0.0);
+{ 45511} GAH501c +GHO                =       G2A503X                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 45512} GAH501c+HV               =       G1A504W +      GHO                                    :  0.100E+01*SUN;
+{ 45513} G2A503X +GNO                =       G1A504W +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 45514} G2A503X +GNO                =       GAN501S                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 45515} G2A503X +GHO2               =       GAH501c                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 45516} G2A503X +GNO3               =       G1A504W +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 45517} G2A503X +MEPERO             =  0.340G1A504W + 0.330GAO500B + 0.330GAK500b                 : ARR( 0.565E-13,  -845., 0.0);
+{ 45518} G2A503X +PERO1              =  0.460G1A504W + 0.270GAO500B + 0.270GAK500b                 : ARR( 0.434E-13,  -900., 0.0);
+{ 45519} G2A503X +PERO2              =  0.400G1A504W + 0.300GAO500B + 0.300GAK500b                 : ARR( 0.162E-13, -1400., 0.0);
+{ 45520} G2A503X +PERO3              =  0.460G1A504W + 0.270GAO500B + 0.270GAK500b                 : ARR( 0.488E-13, -1250., 0.0);
+{ 45521} G2A503X +PERO5              =  0.460G1A504W + 0.270GAO500B + 0.270GAK500b                 : ARR( 0.183E-11,   450., 0.0);
+{ 45522} G2A503X +PERO6              =  0.300G1A504W + 0.350GAO500B + 0.350GAK500b                 : ARR( 0.168E-13, -1300., 0.0);
+{ 45523} G2A503X +PERO9              =  0.650G1A504W + 0.350GAK500b                                : ARR( 0.100E-10,     0., 0.0);
+{ 45524} G1A504W                     =       GAD500C +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{ 45525} G1A504W                     =       GDO3002 +      GAD2000 +      GHO2                    : ARR( 0.200E+15,  5342., 0.0);
+{ 45526} G1A504W                     =       GDO4006 +      GCO     +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 45527} GPH501b                     =       G3H501B +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 45528} GPH501b +GHO                =       GPH504F +      GHO2                                   : ARR( 0.405E-11,     0., 0.0);
+{ 45529} GPH501b +GHO                =       GPH504M +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 45530} GPH501b +GHO                =       GPH501c +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 45531} GPH501b +GHO                =       GPK500P +      GHO                                    : ARR( 0.253E-10,     0., 0.0);
+{ 45532} GPH501b +GHO                =       G2P501H                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 45533} GPH501b+HV               =       G1P501T +      GHO                                    :  0.100E+01*SUN;
+{ 45534} GPH501b+HV               =       G3H501B +      GNO2                                   :  0.100E+01*SUN;
+{ 45535} GHD501H +GHO                =       GDK500c +      GHO                                    : ARR( 0.165E-10,     0., 0.0);
+{ 45536} GHD501H +GHO                =       G3H503X                                               : ARR( 0.709E-10,     0., 0.0);
+{ 45537} GHD501H +GNO3               =       G3H503X +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 45538} GHD501H+HV               =       G3K2001 +      G3H3006                                :  0.100E+01*SUN;
+{ 45539} GHD501H+HV               =       G1D501Q +      GHO                                    :  0.100E+01*SUN;
+{ 45540} GHD501H+HV               =       GDK4009 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 45541} G3H503X +GHO2               =  0.800GGH504A + 0.200GAH504L + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 45542} G3H503X +GNO                =       GDK4009 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 45543} G3H503X +GNO2               =       GPH504N                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 45544} G3H503X +GNO3               =       GDK4009 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 45545} G3H503X +MEPERO             =  0.685GDK4009 + 0.315GAH504L + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45546} G3H503X +PERO1              =  0.800GDK4009 + 0.200GAH504L + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45547} G3H503X +PERO2              =  0.750GDK4009 + 0.250GAH504L + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45548} G3H503X +PERO3              =  0.800GDK4009 + 0.200GAH504L + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45549} G3H503X +PERO5              =  0.650GDK4009 + 0.350GAH504L + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45550} G3H503X +PERO6              =  0.650GDK4009 + 0.350GAH504L + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45551} G3H503X +PERO9              =       GDK4009 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 45552} GDK500b +GHO                =       GDD500D +      GHO2                                   : ARR( 0.129E-10,     0., 0.0);
+{ 45553} GDK500b +GHO                =       GDK500c +      GHO2                                   : ARR( 0.634E-11,     0., 0.0);
+{ 45554} GDK500b +GHO                =       G3K3003 + 2.000GCO                                    : ARR( 0.128E-10,     0., 0.0);
+{ 45555} GDK500b +GNO3               =       G3K3003 +      GHNO3   + 2.000GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 45556} GDK500b+HV               =       G3K3003 +      G3D2000                                :  0.100E+01*SUN;
+{ 45557} GDK500b+HV               =       G3K3003 +      GCO     +      GCO     +      GHO2     :  0.100E+01*SUN;
+{ 45558} GDK500b+HV               =       GDK4007 +      GCO                                    :  0.100E+01*SUN;
+{ 45559} GDK500b+HV               =       GDO3002 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 45560} GGH501S +GHO                =       GGH503x +      GHO2                                   : ARR( 0.128E-10,     0., 0.0);
+{ 45561} GGH501S +GHO                =       GGH504A +      GHO2                                   : ARR( 0.632E-11,     0., 0.0);
+{ 45562} GGH501S +GHO                =       GGK500b +      GHO                                    : ARR( 0.154E-10,     0., 0.0);
+{ 45563} GGH501S +GHO                =       G2G502a                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 45564} GGH501S +GHO                =       G3H501C                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 45565} GGH501S+HV               =       G3K3003 +      GGD2000 +      GHO                     :  0.100E+01*SUN;
+{ 45566} GGH501S+HV               =       G1G503Z +      GHO                                    :  0.100E+01*SUN;
+{ 45567} GGH501S+HV               =       GDK4007 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 45568} G2G502a +GNO                =       G1G503Z +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 45569} G2G502a +GNO                =       GGN501y                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 45570} G2G502a +GHO2               =       GGH501S                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 45571} G2G502a +GNO3               =       G1G503Z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 45572} G2G502a +MEPERO             =  0.340G1G503Z + 0.330GGK500M + 0.330GGK500b                 : ARR( 0.565E-13,  -845., 0.0);
+{ 45573} G2G502a +PERO1              =  0.460G1G503Z + 0.270GGK500M + 0.270GGK500b                 : ARR( 0.434E-13,  -900., 0.0);
+{ 45574} G2G502a +PERO2              =  0.400G1G503Z + 0.300GGK500M + 0.300GGK500b                 : ARR( 0.162E-13, -1400., 0.0);
+{ 45575} G2G502a +PERO3              =  0.460G1G503Z + 0.270GGK500M + 0.270GGK500b                 : ARR( 0.488E-13, -1250., 0.0);
+{ 45576} G2G502a +PERO5              =  0.460G1G503Z + 0.270GGK500M + 0.270GGK500b                 : ARR( 0.183E-11,   450., 0.0);
+{ 45577} G2G502a +PERO6              =  0.300G1G503Z + 0.350GGK500M + 0.350GGK500b                 : ARR( 0.168E-13, -1300., 0.0);
+{ 45578} G2G502a +PERO9              =  0.650G1G503Z + 0.350GGK500b                                : ARR( 0.100E-10,     0., 0.0);
+{ 45579} G1G503Z                     =       GGD500D +      GHO2                                   : ARR( 0.160E+12,  3981., 0.0);
+{ 45580} G1G503Z                     =       G3K3003 +      GGD2000                                : ARR( 0.200E+15,  5359., 0.0);
+{ 45581} GAH501d +GHO                =       GAH504A +      GHO2                                   : ARR( 0.131E-10,     0., 0.0);
+{ 45582} GAH501d +GHO                =       GAH504L +      GHO2                                   : ARR( 0.643E-11,     0., 0.0);
+{ 45583} GAH501d +GHO                =       GAK500W +      GHO                                    : ARR( 0.116E-10,     0., 0.0);
+{ 45584} GAH501d +GHO                =       G2A503Y                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 45585} GAH501d+HV               =       G3K3003 +      GAD2000 +      GHO                     :  0.100E+01*SUN;
+{ 45586} GAH501d+HV               =       G1A504X +      GHO                                    :  0.100E+01*SUN;
+{ 45587} G2A503Y +GNO                =       G1A504X +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 45588} G2A503Y +GNO                =       GAN5021                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 45589} G2A503Y +GHO2               =       GAH501d                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 45590} G2A503Y +GNO3               =       G1A504X +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 45591} G2A503Y +MEPERO             =  0.340G1A504X + 0.330GAK500L + 0.330GAK500W                 : ARR( 0.565E-13,  -845., 0.0);
+{ 45592} G2A503Y +PERO1              =  0.460G1A504X + 0.270GAK500L + 0.270GAK500W                 : ARR( 0.434E-13,  -900., 0.0);
+{ 45593} G2A503Y +PERO2              =  0.400G1A504X + 0.300GAK500L + 0.300GAK500W                 : ARR( 0.162E-13, -1400., 0.0);
+{ 45594} G2A503Y +PERO3              =  0.460G1A504X + 0.270GAK500L + 0.270GAK500W                 : ARR( 0.488E-13, -1250., 0.0);
+{ 45595} G2A503Y +PERO5              =  0.460G1A504X + 0.270GAK500L + 0.270GAK500W                 : ARR( 0.183E-11,   450., 0.0);
+{ 45596} G2A503Y +PERO6              =  0.300G1A504X + 0.350GAK500L + 0.350GAK500W                 : ARR( 0.168E-13, -1300., 0.0);
+{ 45597} G2A503Y +PERO9              =  0.650G1A504X + 0.350GAK500W                                : ARR( 0.100E-10,     0., 0.0);
+{ 45598} G1A504X                     =       GAD500F +      GHO2                                   : ARR( 0.160E+12,  3981., 0.0);
+{ 45599} G1A504X                     =       G3K3003 +      GAD2000                                : ARR( 0.200E+15,  5359., 0.0);
+{ 45600} GPH501c                     =       G3H501C +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 45601} GPH501c +GHO                =       GPH504H +      GHO2                                   : ARR( 0.128E-10,     0., 0.0);
+{ 45602} GPH501c +GHO                =       GPH504N +      GHO2                                   : ARR( 0.633E-11,     0., 0.0);
+{ 45603} GPH501c +GHO                =       GPK500a +      GHO                                    : ARR( 0.154E-10,     0., 0.0);
+{ 45604} GPH501c +GHO                =       G2P503b                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 45605} GPH501c+HV               =       G3K3003 +      GPD2000 +      GHO                     :  0.100E+01*SUN;
+{ 45606} GPH501c+HV               =       G1P504c +      GHO                                    :  0.100E+01*SUN;
+{ 45607} GPH501c+HV               =       G3H501C +      GNO2                                   :  0.100E+01*SUN;
+{ 45608} G2P503b +GNO                =       G1P504c +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 45609} G2P503b +GNO                =       GPN502A                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 45610} G2P503b +GHO2               =       GPH501c                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 45611} G2P503b +GNO3               =       G1P504c +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 45612} G2P503b +MEPERO             =  0.340G1P504c + 0.330GPK500M + 0.330GPK500a                 : ARR( 0.565E-13,  -845., 0.0);
+{ 45613} G2P503b +PERO1              =  0.460G1P504c + 0.270GPK500M + 0.270GPK500a                 : ARR( 0.434E-13,  -900., 0.0);
+{ 45614} G2P503b +PERO2              =  0.400G1P504c + 0.300GPK500M + 0.300GPK500a                 : ARR( 0.162E-13, -1400., 0.0);
+{ 45615} G2P503b +PERO3              =  0.460G1P504c + 0.270GPK500M + 0.270GPK500a                 : ARR( 0.488E-13, -1250., 0.0);
+{ 45616} G2P503b +PERO5              =  0.460G1P504c + 0.270GPK500M + 0.270GPK500a                 : ARR( 0.183E-11,   450., 0.0);
+{ 45617} G2P503b +PERO6              =  0.300G1P504c + 0.350GPK500M + 0.350GPK500a                 : ARR( 0.168E-13, -1300., 0.0);
+{ 45618} G2P503b +PERO9              =  0.650G1P504c + 0.350GPK500a                                : ARR( 0.100E-10,     0., 0.0);
+{ 45619} G1P504c                     =       GPD500D +      GHO2                                   : ARR( 0.160E+12,  3981., 0.0);
+{ 45620} G1P504c                     =       G3K3003 +      GPD2000                                : ARR( 0.200E+15,  5359., 0.0);
+{ 45621} GHN506B +GHO                =       GND501H +      GHO                                    : ARR( 0.267E-10,     0., 0.0);
+{ 45622} GHN506B +GHO                =       GHN505L +      GHO2                                   : ARR( 0.642E-11,     0., 0.0);
+{ 45623} GHN506B +GHO                =       G3H503Y                                               : ARR( 0.212E-10,     0., 0.0);
+{ 45624} GHN506B +GHO                =       G2N5067                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 45625} GHN506B +GNO3               =       G3H503Y +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 45626} GHN506B+HV               =       G1H50AO +      GNO2                                   :  0.100E+01*SUN;
+{ 45627} GHN506B+HV               =       G1N506H +      GHO                                    :  0.100E+01*SUN;
+{ 45628} GHN506B+HV               =       GHN400h +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 45629} G3H503Y +GHO2               =  0.800GGH503i + 0.200GAH503g + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 45630} G3H503Y +GNO                =       GHN400h +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 45631} G3H503Y +GNO2               =       GPH503i                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 45632} G3H503Y +GNO3               =       GHN400h +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 45633} G3H503Y +MEPERO             =  0.685GHN400h + 0.315GAH503g + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45634} G3H503Y +PERO1              =  0.800GHN400h + 0.200GAH503g + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45635} G3H503Y +PERO2              =  0.750GHN400h + 0.250GAH503g + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45636} G3H503Y +PERO3              =  0.800GHN400h + 0.200GAH503g + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45637} G3H503Y +PERO5              =  0.650GHN400h + 0.350GAH503g + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45638} G3H503Y +PERO6              =  0.650GHN400h + 0.350GAH503g + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45639} G3H503Y +PERO9              =       GHN400h +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 45640} G2N5067 +GNO                =       G1N506H +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 45641} G2N5067 +GNO                =       GNN502b                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 45642} G2N5067 +GHO2               =       GHN506B                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 45643} G2N5067 +GNO3               =       G1N506H +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 45644} G2N5067 +MEPERO             =  0.340G1N506H + 0.330GND501P + 0.330GND501H                 : ARR( 0.565E-13,  -845., 0.0);
+{ 45645} G2N5067 +PERO1              =  0.460G1N506H + 0.270GND501P + 0.270GND501H                 : ARR( 0.434E-13,  -900., 0.0);
+{ 45646} G2N5067 +PERO2              =  0.400G1N506H + 0.300GND501P + 0.300GND501H                 : ARR( 0.162E-13, -1400., 0.0);
+{ 45647} G2N5067 +PERO3              =  0.460G1N506H + 0.270GND501P + 0.270GND501H                 : ARR( 0.488E-13, -1250., 0.0);
+{ 45648} G2N5067 +PERO5              =  0.460G1N506H + 0.270GND501P + 0.270GND501H                 : ARR( 0.183E-11,   450., 0.0);
+{ 45649} G2N5067 +PERO6              =  0.300G1N506H + 0.350GND501P + 0.350GND501H                 : ARR( 0.168E-13, -1300., 0.0);
+{ 45650} G2N5067 +PERO9              =  0.650G1N506H + 0.350GND501H                                : ARR( 0.100E-10,     0., 0.0);
+{ 45651} GKO500M +GHO                =       GDK500G +      GHO2                                   : ARR( 0.259E-10,     0., 0.0);
+{ 45652} GKO500M +GHO                =       GKK500G +      GHO2                                   : ARR( 0.128E-10,     0., 0.0);
+{ 45653} GKO500M+HV               =       G3K3003 +      GDO2000 +      GHO2                    :  0.100E+01*SUN;
+{ 45654} GND501P +GHO                =       GND501H +      GHO2                                   : ARR( 0.679E-11,     0., 0.0);
+{ 45655} GND501P +GHO                =       GND501F +      GHO2                                   : ARR( 0.653E-11,     0., 0.0);
+{ 45656} GND501P +GHO                =       G3N502G                                               : ARR( 0.216E-10,     0., 0.0);
+{ 45657} GND501P +GNO3               =       G3N502G +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 45658} GND501P+HV               =       G1D501R +      GNO2                                   :  0.100E+01*SUN;
+{ 45659} GND501P+HV               =       GND4009 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 45660} G3N502G +GHO2               =  0.800GGN501f + 0.200GAN502P + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 45661} G3N502G +GNO                =       GND4009 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 45662} G3N502G +GNO2               =       GPN501y                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 45663} G3N502G +GNO3               =       GND4009 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 45664} G3N502G +MEPERO             =  0.685GND4009 + 0.315GAN502P + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45665} G3N502G +PERO1              =  0.800GND4009 + 0.200GAN502P + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45666} G3N502G +PERO2              =  0.750GND4009 + 0.250GAN502P + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45667} G3N502G +PERO3              =  0.800GND4009 + 0.200GAN502P + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45668} G3N502G +PERO5              =  0.650GND4009 + 0.350GAN502P + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45669} G3N502G +PERO6              =  0.650GND4009 + 0.350GAN502P + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45670} G3N502G +PERO9              =       GND4009 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 45671} GGH501T +GHO                =       GGN501G +      GHO                                    : ARR( 0.251E-10,     0., 0.0);
+{ 45672} GGH501T +GHO                =       G2G502b                                               : ARR( 0.273E-11,     0., 0.0);
+{ 45673} GGH501T +GHO                =       G2G500x                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 45674} GGH501T +GHO                =       G3H501D                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 45675} GGH501T+HV               =       G1G503a +      GNO2                                   :  0.100E+01*SUN;
+{ 45676} GGH501T+HV               =       G3N2000 +      GGD3000 +      GHO                     :  0.100E+01*SUN;
+{ 45677} GGH501T+HV               =       G1G501B +      GHO                                    :  0.100E+01*SUN;
+{ 45678} GGH501T+HV               =       G2H400n +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 45679} G2G502b +GNO                =       G1G503b +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 45680} G2G502b +GNO                =       GGH503J                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 45681} G2G502b +GHO2               =       GGH504B                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 45682} G2G502b +GNO3               =       G1G503b +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 45683} G2G502b +MEPERO             =  0.340G1G503b + 0.330GGH504C + 0.330GGH503C                 : ARR( 0.565E-13,  -845., 0.0);
+{ 45684} G2G502b +PERO1              =  0.460G1G503b + 0.270GGH504C + 0.270GGH503C                 : ARR( 0.434E-13,  -900., 0.0);
+{ 45685} G2G502b +PERO2              =  0.400G1G503b + 0.300GGH504C + 0.300GGH503C                 : ARR( 0.162E-13, -1400., 0.0);
+{ 45686} G2G502b +PERO3              =  0.460G1G503b + 0.270GGH504C + 0.270GGH503C                 : ARR( 0.488E-13, -1250., 0.0);
+{ 45687} G2G502b +PERO5              =  0.460G1G503b + 0.270GGH504C + 0.270GGH503C                 : ARR( 0.183E-11,   450., 0.0);
+{ 45688} G2G502b +PERO6              =  0.300G1G503b + 0.350GGH504C + 0.350GGH503C                 : ARR( 0.168E-13, -1300., 0.0);
+{ 45689} G2G502b +PERO9              =  0.650G1G503b + 0.350GGH503C                                : ARR( 0.100E-10,     0., 0.0);
+{ 45690} G1G503a                     =       G3G4007 +      GCH2O                                  : ARR( 0.200E+15,  3603., 0.0);
+{ 45691} G1G503b                     =       GHN400R +      GCO     +      GHO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 45692} GHH400k +GHO                =       GHN4019 +      GHO                                    : ARR( 0.275E-10,     0., 0.0);
+{ 45693} GHH400k +GHO                =       GHN400R +      GHO                                    : ARR( 0.558E-10,     0., 0.0);
+{ 45694} GHH400k+HV               =       G1H401f +      GNO2                                   :  0.100E+01*SUN;
+{ 45695} GHH400k+HV               =       G3N2000 +      GHD2000 +      GHO                     :  0.100E+01*SUN;
+{ 45696} GHH400k+HV               =       G1H401p +      GHO                                    :  0.100E+01*SUN;
+{ 45697} GHH400k+HV               =       G1H400v +      GHO                                    :  0.100E+01*SUN;
+{ 45698} GHN506C +GHO                =       GHN506F +      GHO2                                   : ARR( 0.205E-10,     0., 0.0);
+{ 45699} GHN506C +GHO                =       GND501R +      GHO                                    : ARR( 0.822E-10,     0., 0.0);
+{ 45700} GHN506C +GHO                =       G3H503Z                                               : ARR( 0.214E-10,     0., 0.0);
+{ 45701} GHN506C +GNO3               =       G3H503Z +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 45702} GHN506C+HV               =       G1H50Am +      GNO2                                   :  0.100E+01*SUN;
+{ 45703} GHN506C+HV               =       G3N2000 +      GHD3004 +      GHO2                    :  0.100E+01*SUN;
+{ 45704} GHN506C+HV               =       G1N505v +      GHO                                    :  0.100E+01*SUN;
+{ 45705} GHN506C+HV               =       GND400E +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 45706} G3H503Z +GHO2               =  0.800GGH504D + 0.200GAH503t + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 45707} G3H503Z +GNO                =       GND400E +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 45708} G3H503Z +GNO2               =       GPH5043                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 45709} G3H503Z +GNO3               =       GND400E +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 45710} G3H503Z +MEPERO             =  0.685GND400E + 0.315GAH503t + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45711} G3H503Z +PERO1              =  0.800GND400E + 0.200GAH503t + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45712} G3H503Z +PERO2              =  0.750GND400E + 0.250GAH503t + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45713} G3H503Z +PERO3              =  0.800GND400E + 0.200GAH503t + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45714} G3H503Z +PERO5              =  0.650GND400E + 0.350GAH503t + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45715} G3H503Z +PERO6              =  0.650GND400E + 0.350GAH503t + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45716} G3H503Z +PERO9              =       GND400E +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 45717} G1H50Am                     =       G3H400k +      GCH2O                                  : ARR( 0.200E+15,  3603., 0.0);
+{ 45718} GND501Q +GHO                =       GND501K +      GHO2                                   : ARR( 0.200E-10,     0., 0.0);
+{ 45719} GND501Q +GHO                =       GND501R +      GHO2                                   : ARR( 0.200E-10,     0., 0.0);
+{ 45720} GND501Q +GHO                =       G3N502H                                               : ARR( 0.209E-10,     0., 0.0);
+{ 45721} GND501Q +GNO3               =       G3N502H +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 45722} GND501Q+HV               =       G1D501U +      GNO2                                   :  0.100E+01*SUN;
+{ 45723} GND501Q+HV               =       G3N2000 +      GDD3001 +      GHO2                    :  0.100E+01*SUN;
+{ 45724} GND501Q+HV               =       GND400E +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 45725} G3N502H +GHO2               =  0.800GGN502e + 0.200GAN502f + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 45726} G3N502H +GNO                =       GND400E +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 45727} G3N502H +GNO2               =       GPN502h                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 45728} G3N502H +GNO3               =       GND400E +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 45729} G3N502H +MEPERO             =  0.685GND400E + 0.315GAN502f + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45730} G3N502H +PERO1              =  0.800GND400E + 0.200GAN502f + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45731} G3N502H +PERO2              =  0.750GND400E + 0.250GAN502f + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45732} G3N502H +PERO3              =  0.800GND400E + 0.200GAN502f + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45733} G3N502H +PERO5              =  0.650GND400E + 0.350GAN502f + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45734} G3N502H +PERO6              =  0.650GND400E + 0.350GAN502f + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45735} G3N502H +PERO9              =       GND400E +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 45736} G1D501U                     =       G3D4005 +      GCH2O                                  : ARR( 0.200E+15,  3603., 0.0);
+{ 45737} GND501R +GHO                =       GND501J +      GHO2                                   : ARR( 0.387E-11,     0., 0.0);
+{ 45738} GND501R +GHO                =       G3N400R +      GCO                                    : ARR( 0.128E-10,     0., 0.0);
+{ 45739} GND501R +GNO3               =       G3N400R +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 45740} GND501R+HV               =       G1D501W +      GNO2                                   :  0.100E+01*SUN;
+{ 45741} GND501R+HV               =       G3N2000 +      GDD3002 +      GHO2                    :  0.100E+01*SUN;
+{ 45742} GND501R+HV               =       G3N400R +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 45743} GND501R+HV               =       GND400E +      GCO                                    :  0.100E+01*SUN;
+{ 45744} GND501R+HV               =       GNK3001 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 45745} G1D501W                     =       G3D4006 +      GCH2O                                  : ARR( 0.200E+15,  4349., 0.0);
+{ 45746} GGN501L +GHO                =       GGN501G +      GHO2                                   : ARR( 0.637E-11,     0., 0.0);
+{ 45747} GGN501L +GHO                =       G2G502c                                               : ARR( 0.277E-11,     0., 0.0);
+{ 45748} GGN501L +GHO                =       G3N5016                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 45749} GGN501L+HV               =       G1G503c +      GNO2                                   :  0.100E+01*SUN;
+{ 45750} GGN501L+HV               =       G3N2000 +      GGD3000 +      GHO2                    :  0.100E+01*SUN;
+{ 45751} GGN501L+HV               =       G2N400g +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 45752} G2G502c +GNO                =       G1G503d +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 45753} G2G502c +GNO                =       GGN502P                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 45754} G2G502c +GHO2               =       GGH504D                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 45755} G2G502c +GNO3               =       G1G503d +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 45756} G2G502c +MEPERO             =  0.340G1G503d + 0.330GGN502e + 0.330GGN5028                 : ARR( 0.565E-13,  -845., 0.0);
+{ 45757} G2G502c +PERO1              =  0.460G1G503d + 0.270GGN502e + 0.270GGN5028                 : ARR( 0.434E-13,  -900., 0.0);
+{ 45758} G2G502c +PERO2              =  0.400G1G503d + 0.300GGN502e + 0.300GGN5028                 : ARR( 0.162E-13, -1400., 0.0);
+{ 45759} G2G502c +PERO3              =  0.460G1G503d + 0.270GGN502e + 0.270GGN5028                 : ARR( 0.488E-13, -1250., 0.0);
+{ 45760} G2G502c +PERO5              =  0.460G1G503d + 0.270GGN502e + 0.270GGN5028                 : ARR( 0.183E-11,   450., 0.0);
+{ 45761} G2G502c +PERO6              =  0.300G1G503d + 0.350GGN502e + 0.350GGN5028                 : ARR( 0.168E-13, -1300., 0.0);
+{ 45762} G2G502c +PERO9              =  0.650G1G503d + 0.350GGN5028                                : ARR( 0.100E-10,     0., 0.0);
+{ 45763} G1G503c                     =       G3G4001 +      GCH2O                                  : ARR( 0.200E+15,  3603., 0.0);
+{ 45764} G1G503d                     =       GND400E +      GCO     +      GHO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 45765} GGH501U +GHO                =       GGN5013 +      GHO                                    : ARR( 0.878E-10,     0., 0.0);
+{ 45766} GGH501U+HV               =       G1G503e +      GNO2                                   :  0.100E+01*SUN;
+{ 45767} GGH501U+HV               =       G3N2000 +      G2G3008                                :  0.100E+01*SUN;
+{ 45768} GGH501U+HV               =       G1G501C +      GHO                                    :  0.100E+01*SUN;
+{ 45769} GGH501U+HV               =       GND4004 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 45770} G1G503e                     =       G3G4008 +      GCH2O                                  : ARR( 0.200E+15,  3576., 0.0);
+{ 45771} GHN506D +GHO                =       GND501K +      GHO                                    : ARR( 0.822E-10,     0., 0.0);
+{ 45772} GHN506D +GHO                =       GHN506E +      GHO2                                   : ARR( 0.205E-10,     0., 0.0);
+{ 45773} GHN506D +GHO                =       G3H503a                                               : ARR( 0.214E-10,     0., 0.0);
+{ 45774} GHN506D +GNO3               =       G3H503a +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 45775} GHN506D+HV               =       G1H50An +      GNO2                                   :  0.100E+01*SUN;
+{ 45776} GHN506D+HV               =       G3N2000 +      GDD3001 +      GHO                     :  0.100E+01*SUN;
+{ 45777} GHN506D+HV               =       G1N505w +      GHO                                    :  0.100E+01*SUN;
+{ 45778} GHN506D+HV               =       GHN400R +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 45779} G3H503a +GHO2               =  0.800GGH504C + 0.200GAH503r + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 45780} G3H503a +GNO                =       GHN400R +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 45781} G3H503a +GNO2               =       GPH5041                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 45782} G3H503a +GNO3               =       GHN400R +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 45783} G3H503a +MEPERO             =  0.685GHN400R + 0.315GAH503r + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45784} G3H503a +PERO1              =  0.800GHN400R + 0.200GAH503r + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45785} G3H503a +PERO2              =  0.750GHN400R + 0.250GAH503r + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45786} G3H503a +PERO3              =  0.800GHN400R + 0.200GAH503r + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45787} G3H503a +PERO5              =  0.650GHN400R + 0.350GAH503r + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45788} G3H503a +PERO6              =  0.650GHN400R + 0.350GAH503r + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45789} G3H503a +PERO9              =       GHN400R +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 45790} G1H50An                     =       G3H400l +      GCH2O                                  : ARR( 0.200E+15,  3603., 0.0);
+{ 45791} GGN501M +GHO                =       GGN5013 +      GHO2                                   : ARR( 0.208E-10,     0., 0.0);
+{ 45792} GGN501M +GHO                =       G3N5017                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 45793} GGN501M+HV               =       G1G503f +      GNO2                                   :  0.100E+01*SUN;
+{ 45794} GGN501M+HV               =       G3N2000 +      G2G3004                                :  0.100E+01*SUN;
+{ 45795} GGN501M+HV               =       GND4004 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 45796} G1G503f                     =       G3G4002 +      GCH2O                                  : ARR( 0.200E+15,  3576., 0.0);
+{ 45797} GHN506E +GHO                =       GND501J +      GHO                                    : ARR( 0.153E-10,     0., 0.0);
+{ 45798} GHN506E +GHO                =       G3H400R +      GCO                                    : ARR( 0.127E-10,     0., 0.0);
+{ 45799} GHN506E +GHO                =       G2N5068                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 45800} GHN506E +GNO3               =       G3H400R +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 45801} GHN506E+HV               =       G1H50Ao +      GNO2                                   :  0.100E+01*SUN;
+{ 45802} GHN506E+HV               =       G3N2000 +      GDD3002 +      GHO                     :  0.100E+01*SUN;
+{ 45803} GHN506E+HV               =       G1N506y +      GHO                                    :  0.100E+01*SUN;
+{ 45804} GHN506E+HV               =       G3H400R +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 45805} GHN506E+HV               =       GHN400R +      GCO                                    :  0.100E+01*SUN;
+{ 45806} GHN506E+HV               =       GHN3008 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 45807} G2N5068 +GNO                =       G1N506y +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 45808} G2N5068 +GNO                =       GNN5038                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 45809} G2N5068 +GHO2               =       GHN506E                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 45810} G2N5068 +GNO3               =       G1N506y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 45811} G2N5068 +MEPERO             =  0.340G1N506y + 0.330GND501R + 0.330GND501J                 : ARR( 0.565E-13,  -845., 0.0);
+{ 45812} G2N5068 +PERO1              =  0.460G1N506y + 0.270GND501R + 0.270GND501J                 : ARR( 0.434E-13,  -900., 0.0);
+{ 45813} G2N5068 +PERO2              =  0.400G1N506y + 0.300GND501R + 0.300GND501J                 : ARR( 0.162E-13, -1400., 0.0);
+{ 45814} G2N5068 +PERO3              =  0.460G1N506y + 0.270GND501R + 0.270GND501J                 : ARR( 0.488E-13, -1250., 0.0);
+{ 45815} G2N5068 +PERO5              =  0.460G1N506y + 0.270GND501R + 0.270GND501J                 : ARR( 0.183E-11,   450., 0.0);
+{ 45816} G2N5068 +PERO6              =  0.300G1N506y + 0.350GND501R + 0.350GND501J                 : ARR( 0.168E-13, -1300., 0.0);
+{ 45817} G2N5068 +PERO9              =  0.650G1N506y + 0.350GND501J                                : ARR( 0.100E-10,     0., 0.0);
+{ 45818} G1H50Ao                     =       G3H400i +      GCH2O                                  : ARR( 0.200E+15,  4349., 0.0);
+{ 45819} GGH400Z +GHO                =       GGH400s +      GHO2                                   : ARR( 0.247E-11,     0., 0.0);
+{ 45820} GGH400Z +GHO                =       GGK4009 +      GHO                                    : ARR( 0.154E-10,     0., 0.0);
+{ 45821} GGH400Z +GHO                =       G2G400J                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 45822} GGH400Z +GHO                =       G3H400Q                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 45823} GGH400Z+HV               =       G3K2001 +      GGD2000 +      GHO                     :  0.100E+01*SUN;
+{ 45824} GGH400Z+HV               =       G1G400T +      GHO                                    :  0.100E+01*SUN;
+{ 45825} GGH400Z+HV               =       GDK3001 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 45826} GAH400b +GHO                =       GAH400u +      GHO2                                   : ARR( 0.254E-11,     0., 0.0);
+{ 45827} GAH400b +GHO                =       GAK4009 +      GHO                                    : ARR( 0.118E-10,     0., 0.0);
+{ 45828} GAH400b +GHO                =       G2A400U                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 45829} GAH400b+HV               =       G3K2001 +      GAD2000 +      GHO                     :  0.100E+01*SUN;
+{ 45830} GAH400b+HV               =       G1A400b +      GHO                                    :  0.100E+01*SUN;
+{ 45831} GPH400c                     =       G3H400Q +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 45832} GPH400c +GHO                =       GPH400v +      GHO2                                   : ARR( 0.247E-11,     0., 0.0);
+{ 45833} GPH400c +GHO                =       GPK4009 +      GHO                                    : ARR( 0.154E-10,     0., 0.0);
+{ 45834} GPH400c +GHO                =       G2P400X                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 45835} GPH400c+HV               =       G3K2001 +      GPD2000 +      GHO                     :  0.100E+01*SUN;
+{ 45836} GPH400c+HV               =       G1P400c +      GHO                                    :  0.100E+01*SUN;
+{ 45837} GPH400c+HV               =       G3H400Q +      GNO2                                   :  0.100E+01*SUN;
+{ 45838} GGK4009 +GHO                =       GGD4008 +      GHO2                                   : ARR( 0.251E-11,     0., 0.0);
+{ 45839} GGK4009 +GHO                =       G3K400H                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 45840} GGK4009+HV               =       G3K2001 +      GCO     +      GHO2    +      GCO      :  0.100E+01*SUN;
+{ 45841} GGK4009+HV               =       GAK3001 +      GCO2                                   :  0.100E+01*SUN;
+{ 45842} G3K400H +GHO2               =  0.800GGK4009 + 0.200GAK4009 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 45843} G3K400H +GNO                =       G3K2001 +      GNO2    +      GCO2    +      GCO      : ARR( 0.810E-11,  -270., 0.0);
+{ 45844} G3K400H +GNO2               =       GPK4009                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 45845} G3K400H +GNO3               =       G3K2001 +      GNO2    +      GCO2    +      GCO      : ARR( 0.500E-11,     0., 0.0);
+{ 45846} G3K400H +MEPERO             =  0.685G3K2001 + 0.315GAK4009 + 0.685GCO2    + 0.685GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 45847} G3K400H +PERO1              =  0.800G3K2001 + 0.200GAK4009 + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 45848} G3K400H +PERO2              =  0.750G3K2001 + 0.250GAK4009 + 0.750GCO2    + 0.750GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 45849} G3K400H +PERO3              =  0.800G3K2001 + 0.200GAK4009 + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 45850} G3K400H +PERO5              =  0.650G3K2001 + 0.350GAK4009 + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 45851} G3K400H +PERO6              =  0.650G3K2001 + 0.350GAK4009 + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 45852} G3K400H +PERO9              =       G3K2001 +      GCO2    +      GCO                     : ARR( 0.500E-11,  -500., 0.0);
+{ 45853} GAK4009 +GHO                =       GAD4008 +      GHO2                                   : ARR( 0.257E-11,     0., 0.0);
+{ 45854} GAK4009 +GHO                =       G3K2001 +      GCO2    +      GCO                     : ARR( 0.545E-12,     0., 0.0);
+{ 45855} GAK4009+HV               =       G3K2001 +      GCO     +      GHO     +      GCO      :  0.100E+01*SUN;
+{ 45856} GPK4009                     =       G3K400H +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 45857} GPK4009 +GHO                =       GPD4008 +      GHO2                                   : ARR( 0.245E-11,     0., 0.0);
+{ 45858} GPK4009 +GHO                =       G1P400n                                               : ARR( 0.210E-17,    85., 2.0);
+{ 45859} GPK4009+HV               =       G3K2001 +      GCO     +      GNO2    +      GCO      :  0.100E+01*SUN;
+{ 45860} GPK4009+HV               =       G3K2001 +      GCO     +      GCO     +      GNO2     :  0.100E+01*SUN;
+{ 45861} GHN506F +GHO                =       GND501J +      GHO                                    : ARR( 0.160E-10,     0., 0.0);
+{ 45862} GHN506F +GHO                =       G3H503b                                               : ARR( 0.688E-10,     0., 0.0);
+{ 45863} GHN506F +GNO3               =       G3H503b +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 45864} GHN506F+HV               =       G1H50Ap +      GNO2                                   :  0.100E+01*SUN;
+{ 45865} GHN506F+HV               =       G3N2000 +      G3H3006                                :  0.100E+01*SUN;
+{ 45866} GHN506F+HV               =       G1N506m +      GHO                                    :  0.100E+01*SUN;
+{ 45867} GHN506F+HV               =       GND400M +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 45868} G3H503b +GHO2               =  0.800GGH503c + 0.200GAH503X + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 45869} G3H503b +GNO                =       GND400M +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 45870} G3H503b +GNO2               =       GPH503c                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 45871} G3H503b +GNO3               =       GND400M +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 45872} G3H503b +MEPERO             =  0.685GND400M + 0.315GAH503X + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45873} G3H503b +PERO1              =  0.800GND400M + 0.200GAH503X + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45874} G3H503b +PERO2              =  0.750GND400M + 0.250GAH503X + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45875} G3H503b +PERO3              =  0.800GND400M + 0.200GAH503X + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45876} G3H503b +PERO5              =  0.650GND400M + 0.350GAH503X + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45877} G3H503b +PERO6              =  0.650GND400M + 0.350GAH503X + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45878} G3H503b +PERO9              =       GND400M +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 45879} G1H50Ap                     =       G3H3006 +      GCH2O   +      GCO                     : ARR( 0.200E+15,  3897., 0.0);
+{ 45880} GAH400c +GHO                =       GAH400s +      GHO2                                   : ARR( 0.130E-10,     0., 0.0);
+{ 45881} GAH400c +GHO                =       GAK4009 +      GHO                                    : ARR( 0.255E-10,     0., 0.0);
+{ 45882} GAH400c +GHO                =       G2A400W                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 45883} GAH400c+HV               =       G1A400c +      GHO                                    :  0.100E+01*SUN;
+{ 45884} GAH400c+HV               =       GHD3003 +      GCO2                                   :  0.100E+01*SUN;
+{ 45885} GPH400d                     =       G3H400s +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 45886} GPH400d +GHO                =       GPH400t +      GHO2                                   : ARR( 0.128E-10,     0., 0.0);
+{ 45887} GPH400d +GHO                =       GPK4009 +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 45888} GPH400d +GHO                =       G2P400Y                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 45889} GPH400d+HV               =       G1P400d +      GHO                                    :  0.100E+01*SUN;
+{ 45890} GPH400d+HV               =       G3H3004 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 45891} G3H400s +GHO2               =  0.800GGH400j + 0.200GAH400c + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 45892} G3H400s +GNO                =       G3H3004 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 45893} G3H400s +GNO2               =       GPH400d                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 45894} G3H400s +GNO3               =       G3H3004 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 45895} G3H400s +MEPERO             =  0.685G3H3004 + 0.315GAH400c + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 45896} G3H400s +PERO1              =  0.800G3H3004 + 0.200GAH400c + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 45897} G3H400s +PERO2              =  0.750G3H3004 + 0.250GAH400c + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 45898} G3H400s +PERO3              =  0.800G3H3004 + 0.200GAH400c + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 45899} G3H400s +PERO5              =  0.650G3H3004 + 0.350GAH400c + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 45900} G3H400s +PERO6              =  0.650G3H3004 + 0.350GAH400c + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 45901} G3H400s +PERO9              =       G3H3004 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 45902} GGH501W +GHO                =       GGN501O +      GHO                                    : ARR( 0.430E-10,     0., 0.0);
+{ 45903} GGH501W +GHO                =       GGH501j +      GHO2                                   : ARR( 0.656E-11,     0., 0.0);
+{ 45904} GGH501W +GHO                =       G2G500z                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 45905} GGH501W +GHO                =       G3H501F                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 45906} GGH501W+HV               =       G1G503M +      GNO2                                   :  0.100E+01*SUN;
+{ 45907} GGH501W+HV               =       G1G501E +      GHO                                    :  0.100E+01*SUN;
+{ 45908} GGH501W+HV               =       GHN400T +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 45909} GAH501e +GHO                =       GAH501r +      GHO2                                   : ARR( 0.492E-11,     0., 0.0);
+{ 45910} GAH501e +GHO                =       GAN501R +      GHO                                    : ARR( 0.436E-10,     0., 0.0);
+{ 45911} GAH501e +GHO                =       G2A501B                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 45912} GAH501e+HV               =       G1A501M +      GHO                                    :  0.100E+01*SUN;
+{ 45913} GAH501e+HV               =       G1A504N +      GNO2                                   :  0.100E+01*SUN;
+{ 45914} GPH501d                     =       G3H501F +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 45915} GPH501d +GHO                =       GPN501U +      GHO                                    : ARR( 0.431E-10,     0., 0.0);
+{ 45916} GPH501d +GHO                =       GPH501p +      GHO2                                   : ARR( 0.658E-11,     0., 0.0);
+{ 45917} GPH501d +GHO                =       G2P501D                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 45918} GPH501d+HV               =       G1P504Y +      GNO2                                   :  0.100E+01*SUN;
+{ 45919} GPH501d+HV               =       G1P501O +      GHO                                    :  0.100E+01*SUN;
+{ 45920} GPH501d+HV               =       G3H501F +      GNO2                                   :  0.100E+01*SUN;
+{ 45921} GGN501N +GHO                =       GGN502e +      GHO2                                   : ARR( 0.210E-11,     0., 0.0);
+{ 45922} GGN501N +GHO                =       GGN501O +      GHO2                                   : ARR( 0.105E-10,     0., 0.0);
+{ 45923} GGN501N +GHO                =       GGN501Q +      GHO2                                   : ARR( 0.641E-11,     0., 0.0);
+{ 45924} GGN501N +GHO                =       G3N5018                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 45925} GGN501N+HV               =       G1G503O +      GNO2                                   :  0.100E+01*SUN;
+{ 45926} GGN501N+HV               =       GND400F +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 45927} GAN501Q +GHO                =       GAN501U +      GHO2                                   : ARR( 0.492E-11,     0., 0.0);
+{ 45928} GAN501Q +GHO                =       GAN501R +      GHO2                                   : ARR( 0.109E-10,     0., 0.0);
+{ 45929} GAN501Q +GHO                =       GAN502f +      GHO2                                   : ARR( 0.218E-11,     0., 0.0);
+{ 45930} GAN501Q+HV               =       G1A504P +      GNO2                                   :  0.100E+01*SUN;
+{ 45931} GPN501T                     =       G3N5018 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 45932} GPN501T +GHO                =       GPN502h +      GHO2                                   : ARR( 0.211E-11,     0., 0.0);
+{ 45933} GPN501T +GHO                =       GPN501U +      GHO2                                   : ARR( 0.106E-10,     0., 0.0);
+{ 45934} GPN501T +GHO                =       GPN501W +      GHO2                                   : ARR( 0.644E-11,     0., 0.0);
+{ 45935} GPN501T+HV               =       G1P504a +      GNO2                                   :  0.100E+01*SUN;
+{ 45936} GPN501T+HV               =       G3N5018 +      GNO2                                   :  0.100E+01*SUN;
+{ 45937} GGN501O +GHO                =       GGN502R +      GHO2                                   : ARR( 0.132E-11,     0., 0.0);
+{ 45938} GGN501O +GHO                =       GGN501T +      GHO2                                   : ARR( 0.402E-11,     0., 0.0);
+{ 45939} GGN501O +GHO                =       G3N5019                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 45940} GGN501O+HV               =       G1G503g +      GNO2                                   :  0.100E+01*SUN;
+{ 45941} GGN501O+HV               =       G3N3002 +      GGD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 45942} GGN501O+HV               =       GND400G +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 45943} G1G503g                     =       GGD4007 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4576., 0.0);
+{ 45944} GAN501R +GHO                =       GAN501T +      GHO2                                   : ARR( 0.310E-11,     0., 0.0);
+{ 45945} GAN501R +GHO                =       GAN502a +      GHO2                                   : ARR( 0.137E-11,     0., 0.0);
+{ 45946} GAN501R +GHO                =       GND400G +      GHO2    +      GCO2                    : ARR( 0.568E-12,     0., 0.0);
+{ 45947} GAN501R+HV               =       G3A3002 +      GND2000 +      GHO2                    :  0.100E+01*SUN;
+{ 45948} GAN501R+HV               =       G1A502d +      GNO2                                   :  0.100E+01*SUN;
+{ 45949} GPN501U                     =       G3N5019 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 45950} GPN501U +GHO                =       GPN502d +      GHO2                                   : ARR( 0.136E-11,     0., 0.0);
+{ 45951} GPN501U +GHO                =       GPN501Y +      GHO2                                   : ARR( 0.415E-11,     0., 0.0);
+{ 45952} GPN501U+HV               =       G1P502m +      GNO2                                   :  0.100E+01*SUN;
+{ 45953} GPN501U+HV               =       G3N3002 +      GPD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 45954} GPN501U+HV               =       G3N5019 +      GNO2                                   :  0.100E+01*SUN;
+{ 45955} GGH400a +GHO                =       GGH400Q +      GHO                                    : ARR( 0.163E-10,     0., 0.0);
+{ 45956} GGH400a +GHO                =       GGH400A +      GHO                                    : ARR( 0.417E-10,     0., 0.0);
+{ 45957} GGH400a +GHO                =       G2G400j                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 45958} GGH400a +GHO                =       G2G400K                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 45959} GGH400a +GHO                =       G3H400S                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 45960} GGH400a+HV               =       G1G400K +      GHO                                    :  0.100E+01*SUN;
+{ 45961} GGH400a+HV               =       G1G400U +      GHO                                    :  0.100E+01*SUN;
+{ 45962} GGH400a+HV               =       G2H300B +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 45963} G2G400j +GNO                =       G1G400K +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 45964} G2G400j +GNO                =       GGH4002                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 45965} G2G400j +GHO2               =       GGH400a                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 45966} G2G400j +GNO3               =       G1G400K +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 45967} G2G400j +MEPERO             =  0.480G1G400K + 0.260GGH4006 + 0.260GGH400Q                 : ARR( 0.164E-12,  -795., 0.0);
+{ 45968} G2G400j +PERO1              =  0.600G1G400K + 0.200GGH4006 + 0.200GGH400Q                 : ARR( 0.126E-12,  -850., 0.0);
+{ 45969} G2G400j +PERO2              =  0.560G1G400K + 0.220GGH4006 + 0.220GGH400Q                 : ARR( 0.471E-13, -1350., 0.0);
+{ 45970} G2G400j +PERO3              =  0.600G1G400K + 0.200GGH4006 + 0.200GGH400Q                 : ARR( 0.142E-12, -1200., 0.0);
+{ 45971} G2G400j +PERO5              =  0.600G1G400K + 0.200GGH4006 + 0.200GGH400Q                 : ARR( 0.533E-11,   500., 0.0);
+{ 45972} G2G400j +PERO6              =  0.460G1G400K + 0.270GGH4006 + 0.270GGH400Q                 : ARR( 0.488E-13, -1250., 0.0);
+{ 45973} G2G400j +PERO9              =  0.800G1G400K + 0.200GGH400Q                                : ARR( 0.100E-10,     0., 0.0);
+{ 45974} GHH400l +GHO                =       GHH400r +      GHO                                    : ARR( 0.170E-10,     0., 0.0);
+{ 45975} GHH400l +GHO                =       GHH400b +      GHO                                    : ARR( 0.138E-09,     0., 0.0);
+{ 45976} GHH400l +GHO                =       GHH400w +      GHO                                    : ARR( 0.265E-10,     0., 0.0);
+{ 45977} GHH400l +GHO                =       G3H400t                                               : ARR( 0.219E-10,     0., 0.0);
+{ 45978} GHH400l +GNO3               =       G3H400t +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 45979} GHH400l+HV               =       G1H401k +      GHO                                    :  0.100E+01*SUN;
+{ 45980} GHH400l+HV               =       G1H400x +      GHO                                    :  0.100E+01*SUN;
+{ 45981} GHH400l+HV               =       G1H401u +      GHO                                    :  0.100E+01*SUN;
+{ 45982} GHH400l+HV               =       GHH3005 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 45983} G3H400t +GHO2               =  0.800GGH400w + 0.200GAH400x + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 45984} G3H400t +GNO                =       GHH3005 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 45985} G3H400t +GNO2               =       GPH400x                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 45986} G3H400t +GNO3               =       GHH3005 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 45987} G3H400t +MEPERO             =  0.685GHH3005 + 0.315GAH400x + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45988} G3H400t +PERO1              =  0.800GHH3005 + 0.200GAH400x + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45989} G3H400t +PERO2              =  0.750GHH3005 + 0.250GAH400x + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45990} G3H400t +PERO3              =  0.800GHH3005 + 0.200GAH400x + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45991} G3H400t +PERO5              =  0.650GHH3005 + 0.350GAH400x + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45992} G3H400t +PERO6              =  0.650GHH3005 + 0.350GAH400x + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 45993} G3H400t +PERO9              =       GHH3005 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 45994} G1H401u                     =       GHD2000 +      GDD2000 +      GHO                     : ARR( 0.200E+15,  6256., 0.0);
+{ 45995} G1H401u                     =       GHH3005 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 45996} GGH400b +GHO                =       GGH400R +      GHO                                    : ARR( 0.165E-10,     0., 0.0);
+{ 45997} GGH400b +GHO                =       GGH400W +      GHO                                    : ARR( 0.258E-10,     0., 0.0);
+{ 45998} GGH400b +GHO                =       G2G400Y                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 45999} GGH400b +GHO                =       G2G400k                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 46000} GGH400b +GHO                =       G3H400T                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 46001} GGH400b+HV               =       G1G400M +      GHO                                    :  0.100E+01*SUN;
+{ 46002} GGH400b+HV               =       G1G400v +      GHO                                    :  0.100E+01*SUN;
+{ 46003} GGH400b+HV               =       GHD3000 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 46004} G2G400k +GNO                =       G1G400v +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 46005} G2G400k +GNO                =       GGH400S                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 46006} G2G400k +GHO2               =       GGH400b                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 46007} G2G400k +GNO3               =       G1G400v +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 46008} G2G400k +MEPERO             =  0.340G1G400v + 0.330GGH400J + 0.330GGH400W                 : ARR( 0.565E-13,  -845., 0.0);
+{ 46009} G2G400k +PERO1              =  0.460G1G400v + 0.270GGH400J + 0.270GGH400W                 : ARR( 0.434E-13,  -900., 0.0);
+{ 46010} G2G400k +PERO2              =  0.400G1G400v + 0.300GGH400J + 0.300GGH400W                 : ARR( 0.162E-13, -1400., 0.0);
+{ 46011} G2G400k +PERO3              =  0.460G1G400v + 0.270GGH400J + 0.270GGH400W                 : ARR( 0.488E-13, -1250., 0.0);
+{ 46012} G2G400k +PERO5              =  0.460G1G400v + 0.270GGH400J + 0.270GGH400W                 : ARR( 0.183E-11,   450., 0.0);
+{ 46013} G2G400k +PERO6              =  0.300G1G400v + 0.350GGH400J + 0.350GGH400W                 : ARR( 0.168E-13, -1300., 0.0);
+{ 46014} G2G400k +PERO9              =  0.650G1G400v + 0.350GGH400W                                : ARR( 0.100E-10,     0., 0.0);
+{ 46015} GAH400d +GHO                =       GAH400Y +      GHO                                    : ARR( 0.195E-10,     0., 0.0);
+{ 46016} GAH400d +GHO                =       GAH400Q +      GHO                                    : ARR( 0.168E-10,     0., 0.0);
+{ 46017} GAH400d +GHO                =       G2A400u                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 46018} GAH400d +GHO                =       G2A400n                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 46019} GAH400d+HV               =       G1A400n +      GHO                                    :  0.100E+01*SUN;
+{ 46020} GAH400d+HV               =       G1A400P +      GHO                                    :  0.100E+01*SUN;
+{ 46021} G2A400u +GNO                =       G1A400n +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 46022} G2A400u +GNO                =       GAH400E                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 46023} G2A400u +GHO2               =       GAH400d                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 46024} G2A400u +GNO3               =       G1A400n +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 46025} G2A400u +MEPERO             =  0.340G1A400n + 0.330GAH400M + 0.330GAH400Y                 : ARR( 0.565E-13,  -845., 0.0);
+{ 46026} G2A400u +PERO1              =  0.460G1A400n + 0.270GAH400M + 0.270GAH400Y                 : ARR( 0.434E-13,  -900., 0.0);
+{ 46027} G2A400u +PERO2              =  0.400G1A400n + 0.300GAH400M + 0.300GAH400Y                 : ARR( 0.162E-13, -1400., 0.0);
+{ 46028} G2A400u +PERO3              =  0.460G1A400n + 0.270GAH400M + 0.270GAH400Y                 : ARR( 0.488E-13, -1250., 0.0);
+{ 46029} G2A400u +PERO5              =  0.460G1A400n + 0.270GAH400M + 0.270GAH400Y                 : ARR( 0.183E-11,   450., 0.0);
+{ 46030} G2A400u +PERO6              =  0.300G1A400n + 0.350GAH400M + 0.350GAH400Y                 : ARR( 0.168E-13, -1300., 0.0);
+{ 46031} G2A400u +PERO9              =  0.650G1A400n + 0.350GAH400Y                                : ARR( 0.100E-10,     0., 0.0);
+{ 46032} GPH400e                     =       G3H400T +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 46033} GPH400e +GHO                =       GPH400U +      GHO                                    : ARR( 0.166E-10,     0., 0.0);
+{ 46034} GPH400e +GHO                =       GPH400Z +      GHO                                    : ARR( 0.259E-10,     0., 0.0);
+{ 46035} GPH400e +GHO                =       G2P400o                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 46036} GPH400e +GHO                =       G2P400x                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 46037} GPH400e+HV               =       G1P400S +      GHO                                    :  0.100E+01*SUN;
+{ 46038} GPH400e+HV               =       G1P400o +      GHO                                    :  0.100E+01*SUN;
+{ 46039} GPH400e+HV               =       G3H400T +      GNO2                                   :  0.100E+01*SUN;
+{ 46040} G2P400x +GNO                =       G1P400o +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 46041} G2P400x +GNO                =       GPH400F                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 46042} G2P400x +GHO2               =       GPH400e                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 46043} G2P400x +GNO3               =       G1P400o +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 46044} G2P400x +MEPERO             =  0.340G1P400o + 0.330GPH400M + 0.330GPH400Z                 : ARR( 0.565E-13,  -845., 0.0);
+{ 46045} G2P400x +PERO1              =  0.460G1P400o + 0.270GPH400M + 0.270GPH400Z                 : ARR( 0.434E-13,  -900., 0.0);
+{ 46046} G2P400x +PERO2              =  0.400G1P400o + 0.300GPH400M + 0.300GPH400Z                 : ARR( 0.162E-13, -1400., 0.0);
+{ 46047} G2P400x +PERO3              =  0.460G1P400o + 0.270GPH400M + 0.270GPH400Z                 : ARR( 0.488E-13, -1250., 0.0);
+{ 46048} G2P400x +PERO5              =  0.460G1P400o + 0.270GPH400M + 0.270GPH400Z                 : ARR( 0.183E-11,   450., 0.0);
+{ 46049} G2P400x +PERO6              =  0.300G1P400o + 0.350GPH400M + 0.350GPH400Z                 : ARR( 0.168E-13, -1300., 0.0);
+{ 46050} G2P400x +PERO9              =  0.650G1P400o + 0.350GPH400Z                                : ARR( 0.100E-10,     0., 0.0);
+{ 46051} GHH502R +GHO                =       GHN506M +      GHO                                    : ARR( 0.323E-11,     0., 0.0);
+{ 46052} GHH502R +GHO                =       GHN506r +      GHO                                    : ARR( 0.262E-10,     0., 0.0);
+{ 46053} GHH502R +GHO                =       GHH502s +      GHO2                                   : ARR( 0.631E-11,     0., 0.0);
+{ 46054} GHH502R +GHO                =       G3H503c                                               : ARR( 0.209E-10,     0., 0.0);
+{ 46055} GHH502R +GHO                =       G2H503Y                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 46056} GHH502R +GHO                =       G2H503Z                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 46057} GHH502R +GNO3               =       G3H503c +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 46058} GHH502R+HV               =       G1H50Aq +      GHO                                    :  0.100E+01*SUN;
+{ 46059} GHH502R+HV               =       G1H50Ar +      GNO2                                   :  0.100E+01*SUN;
+{ 46060} GHH502R+HV               =       G1H50As +      GHO                                    :  0.100E+01*SUN;
+{ 46061} GHH502R+HV               =       GHH400a +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 46062} G3H503c +GHO2               =  0.800GGH504E + 0.200GAH504M + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 46063} G3H503c +GNO                =       GHH400a +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 46064} G3H503c +GNO2               =       GPH504O                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 46065} G3H503c +GNO3               =       GHH400a +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 46066} G3H503c +MEPERO             =  0.685GHH400a + 0.315GAH504M + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46067} G3H503c +PERO1              =  0.800GHH400a + 0.200GAH504M + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46068} G3H503c +PERO2              =  0.750GHH400a + 0.250GAH504M + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46069} G3H503c +PERO3              =  0.800GHH400a + 0.200GAH504M + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46070} G3H503c +PERO5              =  0.650GHH400a + 0.350GAH504M + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46071} G3H503c +PERO6              =  0.650GHH400a + 0.350GAH504M + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46072} G3H503c +PERO9              =       GHH400a +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 46073} G2H503Y +GNO                =       G1H50Aq +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 46074} G2H503Y +GNO                =       GHN506a                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 46075} G2H503Y +GHO2               =       GHH502R                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 46076} G2H503Y +GNO3               =       G1H50Aq +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 46077} G2H503Y +MEPERO             =  0.480G1H50Aq + 0.260GHN506B + 0.260GHN506M                 : ARR( 0.164E-12,  -795., 0.0);
+{ 46078} G2H503Y +PERO1              =  0.600G1H50Aq + 0.200GHN506B + 0.200GHN506M                 : ARR( 0.126E-12,  -850., 0.0);
+{ 46079} G2H503Y +PERO2              =  0.560G1H50Aq + 0.220GHN506B + 0.220GHN506M                 : ARR( 0.471E-13, -1350., 0.0);
+{ 46080} G2H503Y +PERO3              =  0.600G1H50Aq + 0.200GHN506B + 0.200GHN506M                 : ARR( 0.142E-12, -1200., 0.0);
+{ 46081} G2H503Y +PERO5              =  0.600G1H50Aq + 0.200GHN506B + 0.200GHN506M                 : ARR( 0.533E-11,   500., 0.0);
+{ 46082} G2H503Y +PERO6              =  0.460G1H50Aq + 0.270GHN506B + 0.270GHN506M                 : ARR( 0.488E-13, -1250., 0.0);
+{ 46083} G2H503Y +PERO9              =  0.800G1H50Aq + 0.200GHN506M                                : ARR( 0.100E-10,     0., 0.0);
+{ 46084} G2H503Z +GNO                =       G1H50As +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 46085} G2H503Z +GNO                =       GHN506s                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 46086} G2H503Z +GHO2               =       GHH502R                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 46087} G2H503Z +GNO3               =       G1H50As +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 46088} G2H503Z +MEPERO             =  0.340G1H50As + 0.330GHN506L + 0.330GHN506r                 : ARR( 0.565E-13,  -845., 0.0);
+{ 46089} G2H503Z +PERO1              =  0.460G1H50As + 0.270GHN506L + 0.270GHN506r                 : ARR( 0.434E-13,  -900., 0.0);
+{ 46090} G2H503Z +PERO2              =  0.400G1H50As + 0.300GHN506L + 0.300GHN506r                 : ARR( 0.162E-13, -1400., 0.0);
+{ 46091} G2H503Z +PERO3              =  0.460G1H50As + 0.270GHN506L + 0.270GHN506r                 : ARR( 0.488E-13, -1250., 0.0);
+{ 46092} G2H503Z +PERO5              =  0.460G1H50As + 0.270GHN506L + 0.270GHN506r                 : ARR( 0.183E-11,   450., 0.0);
+{ 46093} G2H503Z +PERO6              =  0.300G1H50As + 0.350GHN506L + 0.350GHN506r                 : ARR( 0.168E-13, -1300., 0.0);
+{ 46094} G2H503Z +PERO9              =  0.650G1H50As + 0.350GHN506r                                : ARR( 0.100E-10,     0., 0.0);
+{ 46095} G1H50Aq                     =       GHN505L +      GHO2                                   : ARR( 0.800E+11,  2246., 0.0);
+{ 46096} G1H50Ar                     =       GHD2000 +      GDD3001 +      GHO                     : ARR( 0.200E+15,  4828., 0.0);
+{ 46097} G1H50As                     =       GHN300A +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  3708., 0.0);
+{ 46098} GHN506G +GHO                =       GHN506r +      GHO2                                   : ARR( 0.129E-10,     0., 0.0);
+{ 46099} GHN506G +GHO                =       GHN506b +      GHO2                                   : ARR( 0.637E-11,     0., 0.0);
+{ 46100} GHN506G +GHO                =       GND501S +      GHO                                    : ARR( 0.326E-11,     0., 0.0);
+{ 46101} GHN506G +GHO                =       G2N5069                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 46102} GHN506G+HV               =       G3K3003 +      GHD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 46103} GHN506G+HV               =       G1H50At +      GNO2                                   :  0.100E+01*SUN;
+{ 46104} GHN506G+HV               =       G1N5078 +      GHO                                    :  0.100E+01*SUN;
+{ 46105} G2N5069 +GNO                =       G1N5078 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 46106} G2N5069 +GNO                =       GNN503E                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 46107} G2N5069 +GHO2               =       GHN506G                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 46108} G2N5069 +GNO3               =       G1N5078 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 46109} G2N5069 +MEPERO             =  0.480G1N5078 + 0.260GNK5018 + 0.260GND501S                 : ARR( 0.164E-12,  -795., 0.0);
+{ 46110} G2N5069 +PERO1              =  0.600G1N5078 + 0.200GNK5018 + 0.200GND501S                 : ARR( 0.126E-12,  -850., 0.0);
+{ 46111} G2N5069 +PERO2              =  0.560G1N5078 + 0.220GNK5018 + 0.220GND501S                 : ARR( 0.471E-13, -1350., 0.0);
+{ 46112} G2N5069 +PERO3              =  0.600G1N5078 + 0.200GNK5018 + 0.200GND501S                 : ARR( 0.142E-12, -1200., 0.0);
+{ 46113} G2N5069 +PERO5              =  0.600G1N5078 + 0.200GNK5018 + 0.200GND501S                 : ARR( 0.533E-11,   500., 0.0);
+{ 46114} G2N5069 +PERO6              =  0.460G1N5078 + 0.270GNK5018 + 0.270GND501S                 : ARR( 0.488E-13, -1250., 0.0);
+{ 46115} G2N5069 +PERO9              =  0.800G1N5078 + 0.200GND501S                                : ARR( 0.100E-10,     0., 0.0);
+{ 46116} G1H50At                     =       G3K3003 +      GHD2000                                : ARR( 0.200E+15,  3031., 0.0);
+{ 46117} GHN506H +GHO                =       GHN506s +      GHO2                                   : ARR( 0.412E-11,     0., 0.0);
+{ 46118} GHN506H +GHO                =       GHN506c +      GHO2                                   : ARR( 0.211E-11,     0., 0.0);
+{ 46119} GHN506H +GHO                =       GNN502D +      GHO                                    : ARR( 0.330E-11,     0., 0.0);
+{ 46120} GHN506H +GHO                =       G2N506A                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 46121} GHN506H+HV               =       G1H506u +      GNO2                                   :  0.100E+01*SUN;
+{ 46122} GHN506H+HV               =       G1H507i +      GNO2                                   :  0.100E+01*SUN;
+{ 46123} GHN506H+HV               =       G1N505R +      GHO                                    :  0.100E+01*SUN;
+{ 46124} G2N506A +GNO                =       G1N505R +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 46125} G2N506A +GNO                =       GNN5028                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 46126} G2N506A +GHO2               =       GHN506H                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 46127} G2N506A +GNO3               =       G1N505R +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 46128} G2N506A +MEPERO             =  0.480G1N505R + 0.260GNN502B + 0.260GNN502D                 : ARR( 0.164E-12,  -795., 0.0);
+{ 46129} G2N506A +PERO1              =  0.600G1N505R + 0.200GNN502B + 0.200GNN502D                 : ARR( 0.126E-12,  -850., 0.0);
+{ 46130} G2N506A +PERO2              =  0.560G1N505R + 0.220GNN502B + 0.220GNN502D                 : ARR( 0.471E-13, -1350., 0.0);
+{ 46131} G2N506A +PERO3              =  0.600G1N505R + 0.200GNN502B + 0.200GNN502D                 : ARR( 0.142E-12, -1200., 0.0);
+{ 46132} G2N506A +PERO5              =  0.600G1N505R + 0.200GNN502B + 0.200GNN502D                 : ARR( 0.533E-11,   500., 0.0);
+{ 46133} G2N506A +PERO6              =  0.460G1N505R + 0.270GNN502B + 0.270GNN502D                 : ARR( 0.488E-13, -1250., 0.0);
+{ 46134} G2N506A +PERO9              =  0.800G1N505R + 0.200GNN502D                                : ARR( 0.100E-10,     0., 0.0);
+{ 46135} GHH502S +GHO                =       GHH5033 +      GHO                                    : ARR( 0.271E-10,     0., 0.0);
+{ 46136} GHH502S +GHO                =       GHH501s +      GHO                                    : ARR( 0.141E-09,     0., 0.0);
+{ 46137} GHH502S +GHO                =       GHH502P +      GHO                                    : ARR( 0.173E-10,     0., 0.0);
+{ 46138} GHH502S+HV               =       G3K2001 +      GHH3005 +      GHO                     :  0.100E+01*SUN;
+{ 46139} GHH502S+HV               =       G1H50Au +      GHO                                    :  0.100E+01*SUN;
+{ 46140} GHH502S+HV               =       G1H508r +      GHO                                    :  0.100E+01*SUN;
+{ 46141} GHH502S+HV               =       G1H50Ai +      GHO                                    :  0.100E+01*SUN;
+{ 46142} G1H50Au                     =       G3K2001 +      GHH3005                                : ARR( 0.200E+15,  3009., 0.0);
+{ 46143} GHH502T +GHO                =       GHH5034 +      GHO2                                   : ARR( 0.138E-10,     0., 0.0);
+{ 46144} GHH502T +GHO                =       GHH5033 +      GHO2                                   : ARR( 0.678E-11,     0., 0.0);
+{ 46145} GHH502T +GHO                =       GHK500v +      GHO                                    : ARR( 0.271E-10,     0., 0.0);
+{ 46146} GHH502T +GHO                =       GHD500c +      GHO                                    : ARR( 0.550E-10,     0., 0.0);
+{ 46147} GHH502T+HV               =       G3K3003 +      GHD2000 +      GHO                     :  0.100E+01*SUN;
+{ 46148} GHH502T+HV               =       G1H50At +      GHO                                    :  0.100E+01*SUN;
+{ 46149} GHH502T+HV               =       G1H506Y +      GHO                                    :  0.100E+01*SUN;
+{ 46150} GHH502U +GHO                =       GHK500x +      GHO                                    : ARR( 0.285E-10,     0., 0.0);
+{ 46151} GHH502U +GHO                =       GHH501s +      GHO2                                   : ARR( 0.371E-10,     0., 0.0);
+{ 46152} GHH502U +GHO                =       GHD500x +      GHO                                    : ARR( 0.182E-10,     0., 0.0);
+{ 46153} GHH502U+HV               =       G3K2001 +      GHD3005 +      GHO                     :  0.100E+01*SUN;
+{ 46154} GHH502U+HV               =       G1H50Av +      GHO                                    :  0.100E+01*SUN;
+{ 46155} GHH502U+HV               =       G1H5057 +      GHO                                    :  0.100E+01*SUN;
+{ 46156} G1H50Av                     =       G3K2001 +      GHD3005                                : ARR( 0.200E+15,  3009., 0.0);
+{ 46157} GHK500u +GHO                =       GHD500g +      GHO2                                   : ARR( 0.134E-10,     0., 0.0);
+{ 46158} GHK500u +GHO                =       GHK500x +      GHO2                                   : ARR( 0.661E-11,     0., 0.0);
+{ 46159} GHK500u +GHO                =       GHK500v +      GHO2                                   : ARR( 0.661E-11,     0., 0.0);
+{ 46160} GHK500u +GHO                =       GDK500G +      GHO                                    : ARR( 0.537E-10,     0., 0.0);
+{ 46161} GHK500u+HV               =       G3K3003 +      GHD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 46162} GHK500u+HV               =       G1K500s +      GHO                                    :  0.100E+01*SUN;
+{ 46163} GHH502W +GHO                =       GHD501K +      GHO                                    : ARR( 0.104E-10,     0., 0.0);
+{ 46164} GHH502W +GHO                =       GHD501S +      GHO                                    : ARR( 0.842E-10,     0., 0.0);
+{ 46165} GHH502W +GHO                =       GHH502u +      GHO2                                   : ARR( 0.210E-10,     0., 0.0);
+{ 46166} GHH502W +GHO                =       G3H503d                                               : ARR( 0.219E-10,     0., 0.0);
+{ 46167} GHH502W +GNO3               =       G3H503d +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 46168} GHH502W+HV               =       G1H50An +      GHO                                    :  0.100E+01*SUN;
+{ 46169} GHH502W+HV               =       G3H2000 +      GDD3001 +      GHO                     :  0.100E+01*SUN;
+{ 46170} GHH502W+HV               =       G1H50Aw +      GHO                                    :  0.100E+01*SUN;
+{ 46171} GHH502W+HV               =       GHH400b +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 46172} G3H503d +GHO2               =  0.800GGH504F + 0.200GAH504N + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 46173} G3H503d +GNO                =       GHH400b +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 46174} G3H503d +GNO2               =       GPH504P                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 46175} G3H503d +GNO3               =       GHH400b +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 46176} G3H503d +MEPERO             =  0.685GHH400b + 0.315GAH504N + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46177} G3H503d +PERO1              =  0.800GHH400b + 0.200GAH504N + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46178} G3H503d +PERO2              =  0.750GHH400b + 0.250GAH504N + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46179} G3H503d +PERO3              =  0.800GHH400b + 0.200GAH504N + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46180} G3H503d +PERO5              =  0.650GHH400b + 0.350GAH504N + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46181} G3H503d +PERO6              =  0.650GHH400b + 0.350GAH504N + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46182} G3H503d +PERO9              =       GHH400b +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 46183} G1H50Aw                     =       G3H2000 +      GDD3001                                : ARR( 0.200E+15,  2179., 0.0);
+{ 46184} GHK500v +GHO                =       GHD501S +      GHO2                                   : ARR( 0.129E-10,     0., 0.0);
+{ 46185} GHK500v +GHO                =       GHK5011 +      GHO2                                   : ARR( 0.634E-11,     0., 0.0);
+{ 46186} GHK500v +GHO                =       GDK500b +      GHO                                    : ARR( 0.989E-11,     0., 0.0);
+{ 46187} GHK500v +GHO                =       G2K500u                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 46188} GHK500v+HV               =       G3K3003 +      G3H2000                                :  0.100E+01*SUN;
+{ 46189} GHK500v+HV               =       G1K5016 +      GHO                                    :  0.100E+01*SUN;
+{ 46190} G2K500u +GNO                =       G1K5016 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 46191} G2K500u +GNO                =       GNK5012                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 46192} G2K500u +GHO2               =       GHK500v                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 46193} G2K500u +GNO3               =       G1K5016 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 46194} G2K500u +MEPERO             =  0.480G1K5016 + 0.260GKK500G + 0.260GDK500b                 : ARR( 0.164E-12,  -795., 0.0);
+{ 46195} G2K500u +PERO1              =  0.600G1K5016 + 0.200GKK500G + 0.200GDK500b                 : ARR( 0.126E-12,  -850., 0.0);
+{ 46196} G2K500u +PERO2              =  0.560G1K5016 + 0.220GKK500G + 0.220GDK500b                 : ARR( 0.471E-13, -1350., 0.0);
+{ 46197} G2K500u +PERO3              =  0.600G1K5016 + 0.200GKK500G + 0.200GDK500b                 : ARR( 0.142E-12, -1200., 0.0);
+{ 46198} G2K500u +PERO5              =  0.600G1K5016 + 0.200GKK500G + 0.200GDK500b                 : ARR( 0.533E-11,   500., 0.0);
+{ 46199} G2K500u +PERO6              =  0.460G1K5016 + 0.270GKK500G + 0.270GDK500b                 : ARR( 0.488E-13, -1250., 0.0);
+{ 46200} G2K500u +PERO9              =  0.800G1K5016 + 0.200GDK500b                                : ARR( 0.100E-10,     0., 0.0);
+{ 46201} GGH501X +GHO                =       GGH501g +      GHO                                    : ARR( 0.185E-10,     0., 0.0);
+{ 46202} GGH501X +GHO                =       GGH504F +      GHO2                                   : ARR( 0.118E-10,     0., 0.0);
+{ 46203} GGH501X +GHO                =       GGH501b +      GHO                                    : ARR( 0.474E-10,     0., 0.0);
+{ 46204} GGH501X +GHO                =       GGH504G +      GHO2                                   : ARR( 0.722E-11,     0., 0.0);
+{ 46205} GGH501X+HV               =       G1G503M +      GHO                                    :  0.100E+01*SUN;
+{ 46206} GGH501X+HV               =       G1G503h +      GHO                                    :  0.100E+01*SUN;
+{ 46207} GGH501X+HV               =       GHH400H +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 46208} G1G503h                     =       GHD2000 +      GGD3001 +      GHO2                    : ARR( 0.200E+15,  2745., 0.0);
+{ 46209} GAH501f +GHO                =       GAH504O +      GHO2                                   : ARR( 0.516E-11,     0., 0.0);
+{ 46210} GAH501f +GHO                =       GAH501j +      GHO                                    : ARR( 0.458E-10,     0., 0.0);
+{ 46211} GAH501f +GHO                =       GAH504N +      GHO2                                   : ARR( 0.114E-10,     0., 0.0);
+{ 46212} GAH501f +GHO                =       GAH501n +      GHO                                    : ARR( 0.179E-10,     0., 0.0);
+{ 46213} GAH501f+HV               =       G1A504Y +      GHO                                    :  0.100E+01*SUN;
+{ 46214} GAH501f+HV               =       G1A504N +      GHO                                    :  0.100E+01*SUN;
+{ 46215} G1A504Y                     =       GAD3001 +      GHD2000 +      GHO2                    : ARR( 0.200E+15,  2745., 0.0);
+{ 46216} GPH501e                     =       G3H501G +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 46217} GPH501e +GHO                =       GPH501m +      GHO                                    : ARR( 0.177E-10,     0., 0.0);
+{ 46218} GPH501e +GHO                =       GPH504P +      GHO2                                   : ARR( 0.113E-10,     0., 0.0);
+{ 46219} GPH501e +GHO                =       GPH501h +      GHO                                    : ARR( 0.454E-10,     0., 0.0);
+{ 46220} GPH501e +GHO                =       GPH504Q +      GHO2                                   : ARR( 0.692E-11,     0., 0.0);
+{ 46221} GPH501e+HV               =       G1P504Y +      GHO                                    :  0.100E+01*SUN;
+{ 46222} GPH501e+HV               =       G1P502r +      GHO                                    :  0.100E+01*SUN;
+{ 46223} GPH501e+HV               =       G3H501G +      GNO2                                   :  0.100E+01*SUN;
+{ 46224} GHN506I +GHO                =       GHN505S +      GHO2                                   : ARR( 0.134E-11,     0., 0.0);
+{ 46225} GHN506I +GHO                =       GNN5035 +      GHO                                    : ARR( 0.343E-11,     0., 0.0);
+{ 46226} GHN506I +GHO                =       G2N506B                                               : ARR( 0.203E-11,  -190., 0.0);
+{ 46227} GHN506I+HV               =       G1H50Ax +      GNO2                                   :  0.100E+01*SUN;
+{ 46228} GHN506I+HV               =       G3N2000 +      GHN300A +      GHO2                    :  0.100E+01*SUN;
+{ 46229} GHN506I+HV               =       G1H5071 +      GNO2                                   :  0.100E+01*SUN;
+{ 46230} GHN506I+HV               =       G1N5051 +      GHO                                    :  0.100E+01*SUN;
+{ 46231} G2N506B +GNO                =       G1N5051 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 46232} G2N506B +GNO                =       GNN502h                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 46233} G2N506B +GHO2               =       GHN506I                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 46234} G2N506B +GNO3               =       G1N5051 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 46235} G2N506B +MEPERO             =  0.480G1N5051 + 0.260GNN501r + 0.260GNN5035                 : ARR( 0.164E-12,  -795., 0.0);
+{ 46236} G2N506B +PERO1              =  0.600G1N5051 + 0.200GNN501r + 0.200GNN5035                 : ARR( 0.126E-12,  -850., 0.0);
+{ 46237} G2N506B +PERO2              =  0.560G1N5051 + 0.220GNN501r + 0.220GNN5035                 : ARR( 0.471E-13, -1350., 0.0);
+{ 46238} G2N506B +PERO3              =  0.600G1N5051 + 0.200GNN501r + 0.200GNN5035                 : ARR( 0.142E-12, -1200., 0.0);
+{ 46239} G2N506B +PERO5              =  0.600G1N5051 + 0.200GNN501r + 0.200GNN5035                 : ARR( 0.533E-11,   500., 0.0);
+{ 46240} G2N506B +PERO6              =  0.460G1N5051 + 0.270GNN501r + 0.270GNN5035                 : ARR( 0.488E-13, -1250., 0.0);
+{ 46241} G2N506B +PERO9              =  0.800G1N5051 + 0.200GNN5035                                : ARR( 0.100E-10,     0., 0.0);
+{ 46242} G1H50Ax                     =       G3H400f +      GCH2O                                  : ARR( 0.200E+15,  3603., 0.0);
+{ 46243} GHH502X +GHO                =       GHN506K +      GHO                                    : ARR( 0.143E-09,     0., 0.0);
+{ 46244} GHH502X +GHO                =       GHN506C +      GHO                                    : ARR( 0.176E-10,     0., 0.0);
+{ 46245} GHH502X+HV               =       G1H50Ay +      GNO2                                   :  0.100E+01*SUN;
+{ 46246} GHH502X+HV               =       G3N2000 +      GHH3005 +      GHO2                    :  0.100E+01*SUN;
+{ 46247} GHH502X+HV               =       G1H5071 +      GHO                                    :  0.100E+01*SUN;
+{ 46248} GHH502X+HV               =       G1H508f +      GHO                                    :  0.100E+01*SUN;
+{ 46249} G1H50Ay                     =       G3H400j +      GCH2O                                  : ARR( 0.200E+15,  3603., 0.0);
+{ 46250} GHN506J +GHO                =       GHN5061 +      GHO2                                   : ARR( 0.632E-11,     0., 0.0);
+{ 46251} GHN506J +GHO                =       GHN506K +      GHO2                                   : ARR( 0.328E-10,     0., 0.0);
+{ 46252} GHN506J +GHO                =       GND501Q +      GHO                                    : ARR( 0.162E-10,     0., 0.0);
+{ 46253} GHN506J +GHO                =       G2N506C                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 46254} GHN506J+HV               =       G1H50Az +      GNO2                                   :  0.100E+01*SUN;
+{ 46255} GHN506J+HV               =       G3N2000 +      GHD3005 +      GHO2                    :  0.100E+01*SUN;
+{ 46256} GHN506J+HV               =       G1N505E +      GHO                                    :  0.100E+01*SUN;
+{ 46257} G2N506C +GNO                =       G1N505E +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 46258} G2N506C +GNO                =       GNN5022                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 46259} G2N506C +GHO2               =       GHN506J                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 46260} G2N506C +GNO3               =       G1N505E +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 46261} G2N506C +MEPERO             =  0.480G1N505E + 0.260GNK5011 + 0.260GND501Q                 : ARR( 0.164E-12,  -795., 0.0);
+{ 46262} G2N506C +PERO1              =  0.600G1N505E + 0.200GNK5011 + 0.200GND501Q                 : ARR( 0.126E-12,  -850., 0.0);
+{ 46263} G2N506C +PERO2              =  0.560G1N505E + 0.220GNK5011 + 0.220GND501Q                 : ARR( 0.471E-13, -1350., 0.0);
+{ 46264} G2N506C +PERO3              =  0.600G1N505E + 0.200GNK5011 + 0.200GND501Q                 : ARR( 0.142E-12, -1200., 0.0);
+{ 46265} G2N506C +PERO5              =  0.600G1N505E + 0.200GNK5011 + 0.200GND501Q                 : ARR( 0.533E-11,   500., 0.0);
+{ 46266} G2N506C +PERO6              =  0.460G1N505E + 0.270GNK5011 + 0.270GND501Q                 : ARR( 0.488E-13, -1250., 0.0);
+{ 46267} G2N506C +PERO9              =  0.800G1N505E + 0.200GND501Q                                : ARR( 0.100E-10,     0., 0.0);
+{ 46268} G1H50Az                     =       G3H400X +      GCH2O                                  : ARR( 0.200E+15,  3603., 0.0);
+{ 46269} GHN506K +GHO                =       GHN505c +      GHO2                                   : ARR( 0.387E-11,     0., 0.0);
+{ 46270} GHN506K +GHO                =       GND501R +      GHO                                    : ARR( 0.990E-11,     0., 0.0);
+{ 46271} GHN506K +GHO                =       G2N506D                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 46272} GHN506K+HV               =       G1H50B1 +      GNO2                                   :  0.100E+01*SUN;
+{ 46273} GHN506K+HV               =       G3N2000 +      GHD3001 +      GHO2                    :  0.100E+01*SUN;
+{ 46274} GHN506K+HV               =       G3N400R +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 46275} GHN506K+HV               =       G1N506S +      GHO                                    :  0.100E+01*SUN;
+{ 46276} G2N506D +GNO                =       G1N506S +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 46277} G2N506D +GNO                =       GNN502n                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 46278} G2N506D +GHO2               =       GHN506K                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 46279} G2N506D +GNO3               =       G1N506S +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 46280} G2N506D +MEPERO             =  0.480G1N506S + 0.260GNK500y + 0.260GND501R                 : ARR( 0.164E-12,  -795., 0.0);
+{ 46281} G2N506D +PERO1              =  0.600G1N506S + 0.200GNK500y + 0.200GND501R                 : ARR( 0.126E-12,  -850., 0.0);
+{ 46282} G2N506D +PERO2              =  0.560G1N506S + 0.220GNK500y + 0.220GND501R                 : ARR( 0.471E-13, -1350., 0.0);
+{ 46283} G2N506D +PERO3              =  0.600G1N506S + 0.200GNK500y + 0.200GND501R                 : ARR( 0.142E-12, -1200., 0.0);
+{ 46284} G2N506D +PERO5              =  0.600G1N506S + 0.200GNK500y + 0.200GND501R                 : ARR( 0.533E-11,   500., 0.0);
+{ 46285} G2N506D +PERO6              =  0.460G1N506S + 0.270GNK500y + 0.270GND501R                 : ARR( 0.488E-13, -1250., 0.0);
+{ 46286} G2N506D +PERO9              =  0.800G1N506S + 0.200GND501R                                : ARR( 0.100E-10,     0., 0.0);
+{ 46287} G1H50B1                     =       G3H400e +      GCH2O                                  : ARR( 0.200E+15,  4349., 0.0);
+{ 46288} GHN506L +GHO                =       GND501T +      GHO                                    : ARR( 0.325E-11,     0., 0.0);
+{ 46289} GHN506L +GHO                =       GHN506r +      GHO2                                   : ARR( 0.660E-11,     0., 0.0);
+{ 46290} GHN506L +GHO                =       GHN506e +      GHO2                                   : ARR( 0.634E-11,     0., 0.0);
+{ 46291} GHN506L +GHO                =       G3H503e                                               : ARR( 0.210E-10,     0., 0.0);
+{ 46292} GHN506L +GHO                =       G2N506E                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 46293} GHN506L +GNO3               =       G3H503e +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 46294} GHN506L+HV               =       G1N507C +      GHO                                    :  0.100E+01*SUN;
+{ 46295} GHN506L+HV               =       G1H50B2 +      GNO2                                   :  0.100E+01*SUN;
+{ 46296} GHN506L+HV               =       GHN400x +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 46297} G3H503e +GHO2               =  0.800GGH504H + 0.200GAH504P + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 46298} G3H503e +GNO                =       GHN400x +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 46299} G3H503e +GNO2               =       GPH504R                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 46300} G3H503e +GNO3               =       GHN400x +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 46301} G3H503e +MEPERO             =  0.685GHN400x + 0.315GAH504P + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46302} G3H503e +PERO1              =  0.800GHN400x + 0.200GAH504P + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46303} G3H503e +PERO2              =  0.750GHN400x + 0.250GAH504P + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46304} G3H503e +PERO3              =  0.800GHN400x + 0.200GAH504P + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46305} G3H503e +PERO5              =  0.650GHN400x + 0.350GAH504P + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46306} G3H503e +PERO6              =  0.650GHN400x + 0.350GAH504P + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46307} G3H503e +PERO9              =       GHN400x +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 46308} G2N506E +GNO                =       G1N507C +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 46309} G2N506E +GNO                =       GNN503I                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 46310} G2N506E +GHO2               =       GHN506L                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 46311} G2N506E +GNO3               =       G1N507C +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 46312} G2N506E +MEPERO             =  0.480G1N507C + 0.260GND501P + 0.260GND501T                 : ARR( 0.164E-12,  -795., 0.0);
+{ 46313} G2N506E +PERO1              =  0.600G1N507C + 0.200GND501P + 0.200GND501T                 : ARR( 0.126E-12,  -850., 0.0);
+{ 46314} G2N506E +PERO2              =  0.560G1N507C + 0.220GND501P + 0.220GND501T                 : ARR( 0.471E-13, -1350., 0.0);
+{ 46315} G2N506E +PERO3              =  0.600G1N507C + 0.200GND501P + 0.200GND501T                 : ARR( 0.142E-12, -1200., 0.0);
+{ 46316} G2N506E +PERO5              =  0.600G1N507C + 0.200GND501P + 0.200GND501T                 : ARR( 0.533E-11,   500., 0.0);
+{ 46317} G2N506E +PERO6              =  0.460G1N507C + 0.270GND501P + 0.270GND501T                 : ARR( 0.488E-13, -1250., 0.0);
+{ 46318} G2N506E +PERO9              =  0.800G1N507C + 0.200GND501T                                : ARR( 0.100E-10,     0., 0.0);
+{ 46319} G1N507C                     =       GND501F +      GHO2                                   : ARR( 0.800E+11,  2246., 0.0);
+{ 46320} G1H50B2                     =       GHD2000 +      GDD3001 +      GHO2                    : ARR( 0.200E+15,  3619., 0.0);
+{ 46321} GHH502Y +GHO                =       GHK500r +      GHO                                    : ARR( 0.145E-09,     0., 0.0);
+{ 46322} GHH502Y +GHO                =       GHD501G +      GHO                                    : ARR( 0.179E-10,     0., 0.0);
+{ 46323} GHH502Y+HV               =       G3K2001 +      GHH3005 +      GHO2                    :  0.100E+01*SUN;
+{ 46324} GHH502Y+HV               =       G1H508x +      GHO                                    :  0.100E+01*SUN;
+{ 46325} GHH502Y+HV               =       G1H506b +      GHO                                    :  0.100E+01*SUN;
+{ 46326} GHK500w +GHO                =       GHK500x +      GHO2                                   : ARR( 0.659E-11,     0., 0.0);
+{ 46327} GHK500w +GHO                =       GHK500r +      GHO2                                   : ARR( 0.343E-10,     0., 0.0);
+{ 46328} GHK500w +GHO                =       GDK500X +      GHO                                    : ARR( 0.169E-10,     0., 0.0);
+{ 46329} GHK500w +GHO                =       G2K500v                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 46330} GHK500w+HV               =       G3K2001 +      GHD3005 +      GHO2                    :  0.100E+01*SUN;
+{ 46331} GHK500w+HV               =       G1K500w +      GHO                                    :  0.100E+01*SUN;
+{ 46332} G2K500v +GNO                =       G1K500w +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 46333} G2K500v +GNO                =       GNK500t                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 46334} G2K500v +GHO2               =       GHK500w                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 46335} G2K500v +GNO3               =       G1K500w +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 46336} G2K500v +MEPERO             =  0.480G1K500w + 0.260GKO500L + 0.260GDK500X                 : ARR( 0.164E-12,  -795., 0.0);
+{ 46337} G2K500v +PERO1              =  0.600G1K500w + 0.200GKO500L + 0.200GDK500X                 : ARR( 0.126E-12,  -850., 0.0);
+{ 46338} G2K500v +PERO2              =  0.560G1K500w + 0.220GKO500L + 0.220GDK500X                 : ARR( 0.471E-13, -1350., 0.0);
+{ 46339} G2K500v +PERO3              =  0.600G1K500w + 0.200GKO500L + 0.200GDK500X                 : ARR( 0.142E-12, -1200., 0.0);
+{ 46340} G2K500v +PERO5              =  0.600G1K500w + 0.200GKO500L + 0.200GDK500X                 : ARR( 0.533E-11,   500., 0.0);
+{ 46341} G2K500v +PERO6              =  0.460G1K500w + 0.270GKO500L + 0.270GDK500X                 : ARR( 0.488E-13, -1250., 0.0);
+{ 46342} G2K500v +PERO9              =  0.800G1K500w + 0.200GDK500X                                : ARR( 0.100E-10,     0., 0.0);
+{ 46343} GHD501I +GHO                =       GDD500C +      GHO                                    : ARR( 0.103E-10,     0., 0.0);
+{ 46344} GHD501I +GHO                =       GHD501S +      GHO2                                   : ARR( 0.210E-10,     0., 0.0);
+{ 46345} GHD501I +GHO                =       GHD501O +      GHO2                                   : ARR( 0.210E-10,     0., 0.0);
+{ 46346} GHD501I +GHO                =       G3H503f                                               : ARR( 0.219E-10,     0., 0.0);
+{ 46347} GHD501I +GNO3               =       G3H503f +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 46348} GHD501I+HV               =       G1D501U +      GHO                                    :  0.100E+01*SUN;
+{ 46349} GHD501I+HV               =       G3H2000 +      GDD3001 +      GHO2                    :  0.100E+01*SUN;
+{ 46350} GHD501I+HV               =       GHD400J +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 46351} G3H503f +GHO2               =  0.800GGH504I + 0.200GAH504Q + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 46352} G3H503f +GNO                =       GHD400J +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 46353} G3H503f +GNO2               =       GPH504S                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 46354} G3H503f +GNO3               =       GHD400J +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 46355} G3H503f +MEPERO             =  0.685GHD400J + 0.315GAH504Q + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46356} G3H503f +PERO1              =  0.800GHD400J + 0.200GAH504Q + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46357} G3H503f +PERO2              =  0.750GHD400J + 0.250GAH504Q + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46358} G3H503f +PERO3              =  0.800GHD400J + 0.200GAH504Q + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46359} G3H503f +PERO5              =  0.650GHD400J + 0.350GAH504Q + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46360} G3H503f +PERO6              =  0.650GHD400J + 0.350GAH504Q + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46361} G3H503f +PERO9              =       GHD400J +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 46362} GGH501Y +GHO                =       GGD500C +      GHO                                    : ARR( 0.101E-10,     0., 0.0);
+{ 46363} GGH501Y +GHO                =       GGH501x +      GHO2                                   : ARR( 0.205E-10,     0., 0.0);
+{ 46364} GGH501Y +GHO                =       G2G502d                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 46365} GGH501Y +GHO                =       G3H501H                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 46366} GGH501Y+HV               =       G1G503f +      GHO                                    :  0.100E+01*SUN;
+{ 46367} GGH501Y+HV               =       G3H2000 +      G2G3004                                :  0.100E+01*SUN;
+{ 46368} GGH501Y+HV               =       GHD4004 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 46369} G2G502d +GNO                =       G1G503f +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 46370} G2G502d +GNO                =       GGN501M                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 46371} G2G502d +GHO2               =       GGH501Y                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 46372} G2G502d +GNO3               =       G1G503f +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 46373} G2G502d +MEPERO             =  0.480G1G503f + 0.260GGK500L + 0.260GGD500C                 : ARR( 0.164E-12,  -795., 0.0);
+{ 46374} G2G502d +PERO1              =  0.600G1G503f + 0.200GGK500L + 0.200GGD500C                 : ARR( 0.126E-12,  -850., 0.0);
+{ 46375} G2G502d +PERO2              =  0.560G1G503f + 0.220GGK500L + 0.220GGD500C                 : ARR( 0.471E-13, -1350., 0.0);
+{ 46376} G2G502d +PERO3              =  0.600G1G503f + 0.200GGK500L + 0.200GGD500C                 : ARR( 0.142E-12, -1200., 0.0);
+{ 46377} G2G502d +PERO5              =  0.600G1G503f + 0.200GGK500L + 0.200GGD500C                 : ARR( 0.533E-11,   500., 0.0);
+{ 46378} G2G502d +PERO6              =  0.460G1G503f + 0.270GGK500L + 0.270GGD500C                 : ARR( 0.488E-13, -1250., 0.0);
+{ 46379} G2G502d +PERO9              =  0.800G1G503f + 0.200GGD500C                                : ARR( 0.100E-10,     0., 0.0);
+{ 46380} GAH501g +GHO                =       GAH5025 +      GHO2                                   : ARR( 0.155E-10,     0., 0.0);
+{ 46381} GAH501g +GHO                =       GAD500E +      GHO                                    : ARR( 0.103E-10,     0., 0.0);
+{ 46382} GAH501g +GHO                =       G2A503Z                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 46383} GAH501g+HV               =       G3A4005 +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 46384} GAH501g+HV               =       G1A503n +      GHO                                    :  0.100E+01*SUN;
+{ 46385} G2A503Z +GNO                =       G1A503n +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 46386} G2A503Z +GNO                =       GAN501F                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 46387} G2A503Z +GHO2               =       GAH501g                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 46388} G2A503Z +GNO3               =       G1A503n +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 46389} G2A503Z +MEPERO             =  0.480G1A503n + 0.260GAK500K + 0.260GAD500E                 : ARR( 0.164E-12,  -795., 0.0);
+{ 46390} G2A503Z +PERO1              =  0.600G1A503n + 0.200GAK500K + 0.200GAD500E                 : ARR( 0.126E-12,  -850., 0.0);
+{ 46391} G2A503Z +PERO2              =  0.560G1A503n + 0.220GAK500K + 0.220GAD500E                 : ARR( 0.471E-13, -1350., 0.0);
+{ 46392} G2A503Z +PERO3              =  0.600G1A503n + 0.200GAK500K + 0.200GAD500E                 : ARR( 0.142E-12, -1200., 0.0);
+{ 46393} G2A503Z +PERO5              =  0.600G1A503n + 0.200GAK500K + 0.200GAD500E                 : ARR( 0.533E-11,   500., 0.0);
+{ 46394} G2A503Z +PERO6              =  0.460G1A503n + 0.270GAK500K + 0.270GAD500E                 : ARR( 0.488E-13, -1250., 0.0);
+{ 46395} G2A503Z +PERO9              =  0.800G1A503n + 0.200GAD500E                                : ARR( 0.100E-10,     0., 0.0);
+{ 46396} GPH501f                     =       G3H501H +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 46397} GPH501f +GHO                =       GPD500C +      GHO                                    : ARR( 0.101E-10,     0., 0.0);
+{ 46398} GPH501f +GHO                =       GPH5022 +      GHO2                                   : ARR( 0.205E-10,     0., 0.0);
+{ 46399} GPH501f +GHO                =       G2P503c                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 46400} GPH501f+HV               =       G1P5041 +      GHO                                    :  0.100E+01*SUN;
+{ 46401} GPH501f+HV               =       G3H2000 +      G2P3005                                :  0.100E+01*SUN;
+{ 46402} GPH501f+HV               =       G3H501H +      GNO2                                   :  0.100E+01*SUN;
+{ 46403} G2P503c +GNO                =       G1P5041 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 46404} G2P503c +GNO                =       GPN501J                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 46405} G2P503c +GHO2               =       GPH501f                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 46406} G2P503c +GNO3               =       G1P5041 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 46407} G2P503c +MEPERO             =  0.480G1P5041 + 0.260GPK500L + 0.260GPD500C                 : ARR( 0.164E-12,  -795., 0.0);
+{ 46408} G2P503c +PERO1              =  0.600G1P5041 + 0.200GPK500L + 0.200GPD500C                 : ARR( 0.126E-12,  -850., 0.0);
+{ 46409} G2P503c +PERO2              =  0.560G1P5041 + 0.220GPK500L + 0.220GPD500C                 : ARR( 0.471E-13, -1350., 0.0);
+{ 46410} G2P503c +PERO3              =  0.600G1P5041 + 0.200GPK500L + 0.200GPD500C                 : ARR( 0.142E-12, -1200., 0.0);
+{ 46411} G2P503c +PERO5              =  0.600G1P5041 + 0.200GPK500L + 0.200GPD500C                 : ARR( 0.533E-11,   500., 0.0);
+{ 46412} G2P503c +PERO6              =  0.460G1P5041 + 0.270GPK500L + 0.270GPD500C                 : ARR( 0.488E-13, -1250., 0.0);
+{ 46413} G2P503c +PERO9              =  0.800G1P5041 + 0.200GPD500C                                : ARR( 0.100E-10,     0., 0.0);
+{ 46414} GGH501Z +GHO                =       GGN501W +      GHO                                    : ARR( 0.171E-10,     0., 0.0);
+{ 46415} GGH501Z +GHO                =       GGH504J +      GHO2                                   : ARR( 0.220E-11,     0., 0.0);
+{ 46416} GGH501Z +GHO                =       G2G501f                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 46417} GGH501Z +GHO                =       G3H501I                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 46418} GGH501Z+HV               =       G1G5023 +      GHO                                    :  0.100E+01*SUN;
+{ 46419} GGH501Z+HV               =       G1G503h +      GNO2                                   :  0.100E+01*SUN;
+{ 46420} GGH501Z+HV               =       GHN400Y +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 46421} GAH501h +GHO                =       GAH504R +      GHO2                                   : ARR( 0.224E-11,     0., 0.0);
+{ 46422} GAH501h +GHO                =       GAN501W +      GHO                                    : ARR( 0.175E-10,     0., 0.0);
+{ 46423} GAH501h +GHO                =       G2A502C                                               : ARR( 0.206E-11,  -190., 0.0);
+{ 46424} GAH501h+HV               =       G1A504Y +      GNO2                                   :  0.100E+01*SUN;
+{ 46425} GAH501h+HV               =       G1A502c +      GHO                                    :  0.100E+01*SUN;
+{ 46426} GHD501J +GHO                =       GDD500C +      GHO                                    : ARR( 0.161E-10,     0., 0.0);
+{ 46427} GHD501J +GHO                =       GHD501O +      GHO2                                   : ARR( 0.328E-10,     0., 0.0);
+{ 46428} GHD501J +GHO                =       GHD501T +      GHO2                                   : ARR( 0.631E-11,     0., 0.0);
+{ 46429} GHD501J +GHO                =       G3H400X +      GCO                                    : ARR( 0.127E-10,     0., 0.0);
+{ 46430} GHD501J +GHO                =       G2D500n                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 46431} GHD501J +GNO3               =       G3H400X +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 46432} GHD501J+HV               =       G1D501O +      GHO                                    :  0.100E+01*SUN;
+{ 46433} GHD501J+HV               =       G3H400X +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 46434} GHD501J+HV               =       GHD400E +      GCO                                    :  0.100E+01*SUN;
+{ 46435} GHD501J+HV               =       GHO3003 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 46436} G2D500n +GNO                =       G1D501O +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 46437} G2D500n +GNO                =       GND501L                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 46438} G2D500n +GHO2               =       GHD501J                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 46439} G2D500n +GNO3               =       G1D501O +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 46440} G2D500n +MEPERO             =  0.480G1D501O + 0.260GDK500N + 0.260GDD500C                 : ARR( 0.164E-12,  -795., 0.0);
+{ 46441} G2D500n +PERO1              =  0.600G1D501O + 0.200GDK500N + 0.200GDD500C                 : ARR( 0.126E-12,  -850., 0.0);
+{ 46442} G2D500n +PERO2              =  0.560G1D501O + 0.220GDK500N + 0.220GDD500C                 : ARR( 0.471E-13, -1350., 0.0);
+{ 46443} G2D500n +PERO3              =  0.600G1D501O + 0.200GDK500N + 0.200GDD500C                 : ARR( 0.142E-12, -1200., 0.0);
+{ 46444} G2D500n +PERO5              =  0.600G1D501O + 0.200GDK500N + 0.200GDD500C                 : ARR( 0.533E-11,   500., 0.0);
+{ 46445} G2D500n +PERO6              =  0.460G1D501O + 0.270GDK500N + 0.270GDD500C                 : ARR( 0.488E-13, -1250., 0.0);
+{ 46446} G2D500n +PERO9              =  0.800G1D501O + 0.200GDD500C                                : ARR( 0.100E-10,     0., 0.0);
+{ 46447} GGH501a +GHO                =       GGD500A +      GHO                                    : ARR( 0.162E-10,     0., 0.0);
+{ 46448} GGH501a +GHO                =       GGH504I +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 46449} GGH501a +GHO                =       GGH501b +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 46450} GGH501a +GHO                =       GGH504K +      GHO2                                   : ARR( 0.634E-11,     0., 0.0);
+{ 46451} GGH501a +GHO                =       G2G502M                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 46452} GGH501a +GHO                =       G3H501J                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 46453} GGH501a+HV               =       G1G503O +      GHO                                    :  0.100E+01*SUN;
+{ 46454} GGH501a+HV               =       GHD400E +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 46455} GAH501i +GHO                =       GAH504S +      GHO2                                   : ARR( 0.475E-11,     0., 0.0);
+{ 46456} GAH501i +GHO                =       GAH501j +      GHO2                                   : ARR( 0.105E-10,     0., 0.0);
+{ 46457} GAH501i +GHO                =       GAH504Q +      GHO2                                   : ARR( 0.105E-10,     0., 0.0);
+{ 46458} GAH501i +GHO                =       GAD500C +      GHO                                    : ARR( 0.164E-10,     0., 0.0);
+{ 46459} GAH501i +GHO                =       G2A503P                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 46460} GAH501i+HV               =       G1A504P +      GHO                                    :  0.100E+01*SUN;
+{ 46461} GPH501g                     =       G3H501J +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 46462} GPH501g +GHO                =       GPD500A +      GHO                                    : ARR( 0.162E-10,     0., 0.0);
+{ 46463} GPH501g +GHO                =       GPH504S +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 46464} GPH501g +GHO                =       GPH501h +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 46465} GPH501g +GHO                =       GPH504T +      GHO2                                   : ARR( 0.634E-11,     0., 0.0);
+{ 46466} GPH501g +GHO                =       G2P503Y                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 46467} GPH501g+HV               =       G1P504a +      GHO                                    :  0.100E+01*SUN;
+{ 46468} GPH501g+HV               =       G3H501J +      GNO2                                   :  0.100E+01*SUN;
+{ 46469} GGH501b +GHO                =       GGD500D +      GHO                                    : ARR( 0.512E-10,     0., 0.0);
+{ 46470} GGH501b +GHO                =       GGH504L +      GHO2                                   : ARR( 0.631E-11,     0., 0.0);
+{ 46471} GGH501b +GHO                =       GGH502Z +      GHO2                                   : ARR( 0.385E-11,     0., 0.0);
+{ 46472} GGH501b +GHO                =       G2G502e                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 46473} GGH501b +GHO                =       G3H501K                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 46474} GGH501b+HV               =       G1G503g +      GHO                                    :  0.100E+01*SUN;
+{ 46475} GGH501b+HV               =       G3H3003 +      GGD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 46476} GGH501b+HV               =       GHD400F +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 46477} G2G502e +GNO                =       G1G503g +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 46478} G2G502e +GNO                =       GGN501O                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 46479} G2G502e +GHO2               =       GGH501b                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 46480} G2G502e +GNO3               =       G1G503g +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 46481} G2G502e +MEPERO             =  0.480G1G503g + 0.260GGK500M + 0.260GGD500D                 : ARR( 0.164E-12,  -795., 0.0);
+{ 46482} G2G502e +PERO1              =  0.600G1G503g + 0.200GGK500M + 0.200GGD500D                 : ARR( 0.126E-12,  -850., 0.0);
+{ 46483} G2G502e +PERO2              =  0.560G1G503g + 0.220GGK500M + 0.220GGD500D                 : ARR( 0.471E-13, -1350., 0.0);
+{ 46484} G2G502e +PERO3              =  0.600G1G503g + 0.200GGK500M + 0.200GGD500D                 : ARR( 0.142E-12, -1200., 0.0);
+{ 46485} G2G502e +PERO5              =  0.600G1G503g + 0.200GGK500M + 0.200GGD500D                 : ARR( 0.533E-11,   500., 0.0);
+{ 46486} G2G502e +PERO6              =  0.460G1G503g + 0.270GGK500M + 0.270GGD500D                 : ARR( 0.488E-13, -1250., 0.0);
+{ 46487} G2G502e +PERO9              =  0.800G1G503g + 0.200GGD500D                                : ARR( 0.100E-10,     0., 0.0);
+{ 46488} GAH501j +GHO                =       GAH504T +      GHO2                                   : ARR( 0.666E-11,     0., 0.0);
+{ 46489} GAH501j +GHO                =       GAD500F +      GHO                                    : ARR( 0.540E-10,     0., 0.0);
+{ 46490} GAH501j +GHO                =       G2A502D                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 46491} GAH501j+HV               =       G3A3002 +      GHD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 46492} GAH501j+HV               =       G1A502d +      GHO                                    :  0.100E+01*SUN;
+{ 46493} GPH501h                     =       G3H501K +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 46494} GPH501h +GHO                =       GPD500D +      GHO                                    : ARR( 0.512E-10,     0., 0.0);
+{ 46495} GPH501h +GHO                =       GPH504U +      GHO2                                   : ARR( 0.631E-11,     0., 0.0);
+{ 46496} GPH501h +GHO                =       GPH502x +      GHO2                                   : ARR( 0.385E-11,     0., 0.0);
+{ 46497} GPH501h +GHO                =       G2P502J                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 46498} GPH501h+HV               =       G1P502m +      GHO                                    :  0.100E+01*SUN;
+{ 46499} GPH501h+HV               =       G3H3003 +      GPD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 46500} GPH501h+HV               =       G3H501K +      GNO2                                   :  0.100E+01*SUN;
+{ 46501} GGH501c +GHO                =       GGD500B +      GHO                                    : ARR( 0.164E-10,     0., 0.0);
+{ 46502} GGH501c +GHO                =       GGH501x +      GHO2                                   : ARR( 0.333E-10,     0., 0.0);
+{ 46503} GGH501c +GHO                =       G2G502f                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 46504} GGH501c +GHO                =       G3H503g                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 46505} GGH501c+HV               =       G1G501M +      GHO                                    :  0.100E+01*SUN;
+{ 46506} GGH501c+HV               =       GAH4009 +      GCO2                                   :  0.100E+01*SUN;
+{ 46507} G2G502f +GNO                =       G1G501M +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 46508} G2G502f +GNO                =       GGN500M                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 46509} G2G502f +GHO2               =       GGH501c                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 46510} G2G502f +GNO3               =       G1G501M +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 46511} G2G502f +MEPERO             =  0.480G1G501M + 0.260GGK5006 + 0.260GGD500B                 : ARR( 0.164E-12,  -795., 0.0);
+{ 46512} G2G502f +PERO1              =  0.600G1G501M + 0.200GGK5006 + 0.200GGD500B                 : ARR( 0.126E-12,  -850., 0.0);
+{ 46513} G2G502f +PERO2              =  0.560G1G501M + 0.220GGK5006 + 0.220GGD500B                 : ARR( 0.471E-13, -1350., 0.0);
+{ 46514} G2G502f +PERO3              =  0.600G1G501M + 0.200GGK5006 + 0.200GGD500B                 : ARR( 0.142E-12, -1200., 0.0);
+{ 46515} G2G502f +PERO5              =  0.600G1G501M + 0.200GGK5006 + 0.200GGD500B                 : ARR( 0.533E-11,   500., 0.0);
+{ 46516} G2G502f +PERO6              =  0.460G1G501M + 0.270GGK5006 + 0.270GGD500B                 : ARR( 0.488E-13, -1250., 0.0);
+{ 46517} G2G502f +PERO9              =  0.800G1G501M + 0.200GGD500B                                : ARR( 0.100E-10,     0., 0.0);
+{ 46518} G3H503g +GHO2               =  0.800GGH501c + 0.200GAH501k + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 46519} G3H503g +GNO                =       G3H4006 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 46520} G3H503g +GNO2               =       GPH501i                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 46521} G3H503g +GNO3               =       G3H4006 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 46522} G3H503g +MEPERO             =  0.685G3H4006 + 0.315GAH501k + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 46523} G3H503g +PERO1              =  0.800G3H4006 + 0.200GAH501k + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 46524} G3H503g +PERO2              =  0.750G3H4006 + 0.250GAH501k + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 46525} G3H503g +PERO3              =  0.800G3H4006 + 0.200GAH501k + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 46526} G3H503g +PERO5              =  0.650G3H4006 + 0.350GAH501k + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 46527} G3H503g +PERO6              =  0.650G3H4006 + 0.350GAH501k + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 46528} G3H503g +PERO9              =       G3H4006 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 46529} GAH501k +GHO                =       GAH5025 +      GHO2                                   : ARR( 0.336E-10,     0., 0.0);
+{ 46530} GAH501k +GHO                =       GAD500D +      GHO                                    : ARR( 0.166E-10,     0., 0.0);
+{ 46531} GAH501k +GHO                =       G2A503a                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 46532} GAH501k+HV               =       GHD4003 +      GCO2                                   :  0.100E+01*SUN;
+{ 46533} GAH501k+HV               =       G1A501S +      GHO                                    :  0.100E+01*SUN;
+{ 46534} G2A503a +GNO                =       G1A501S +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 46535} G2A503a +GNO                =       GAN500M                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 46536} G2A503a +GHO2               =       GAH501k                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 46537} G2A503a +GNO3               =       G1A501S +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 46538} G2A503a +MEPERO             =  0.480G1A501S + 0.260GAK5006 + 0.260GAD500D                 : ARR( 0.164E-12,  -795., 0.0);
+{ 46539} G2A503a +PERO1              =  0.600G1A501S + 0.200GAK5006 + 0.200GAD500D                 : ARR( 0.126E-12,  -850., 0.0);
+{ 46540} G2A503a +PERO2              =  0.560G1A501S + 0.220GAK5006 + 0.220GAD500D                 : ARR( 0.471E-13, -1350., 0.0);
+{ 46541} G2A503a +PERO3              =  0.600G1A501S + 0.200GAK5006 + 0.200GAD500D                 : ARR( 0.142E-12, -1200., 0.0);
+{ 46542} G2A503a +PERO5              =  0.600G1A501S + 0.200GAK5006 + 0.200GAD500D                 : ARR( 0.533E-11,   500., 0.0);
+{ 46543} G2A503a +PERO6              =  0.460G1A501S + 0.270GAK5006 + 0.270GAD500D                 : ARR( 0.488E-13, -1250., 0.0);
+{ 46544} G2A503a +PERO9              =  0.800G1A501S + 0.200GAD500D                                : ARR( 0.100E-10,     0., 0.0);
+{ 46545} GPH501i                     =       G3H503g +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 46546} GPH501i +GHO                =       GPD500B +      GHO                                    : ARR( 0.164E-10,     0., 0.0);
+{ 46547} GPH501i +GHO                =       GPH5022 +      GHO2                                   : ARR( 0.333E-10,     0., 0.0);
+{ 46548} GPH501i +GHO                =       G2P503d                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 46549} GPH501i+HV               =       G1P501X +      GHO                                    :  0.100E+01*SUN;
+{ 46550} GPH501i+HV               =       G3H4006 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 46551} G2P503d +GNO                =       G1P501X +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 46552} G2P503d +GNO                =       GPN500M                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 46553} G2P503d +GHO2               =       GPH501i                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 46554} G2P503d +GNO3               =       G1P501X +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 46555} G2P503d +MEPERO             =  0.480G1P501X + 0.260GPK5006 + 0.260GPD500B                 : ARR( 0.164E-12,  -795., 0.0);
+{ 46556} G2P503d +PERO1              =  0.600G1P501X + 0.200GPK5006 + 0.200GPD500B                 : ARR( 0.126E-12,  -850., 0.0);
+{ 46557} G2P503d +PERO2              =  0.560G1P501X + 0.220GPK5006 + 0.220GPD500B                 : ARR( 0.471E-13, -1350., 0.0);
+{ 46558} G2P503d +PERO3              =  0.600G1P501X + 0.200GPK5006 + 0.200GPD500B                 : ARR( 0.142E-12, -1200., 0.0);
+{ 46559} G2P503d +PERO5              =  0.600G1P501X + 0.200GPK5006 + 0.200GPD500B                 : ARR( 0.533E-11,   500., 0.0);
+{ 46560} G2P503d +PERO6              =  0.460G1P501X + 0.270GPK5006 + 0.270GPD500B                 : ARR( 0.488E-13, -1250., 0.0);
+{ 46561} G2P503d +PERO9              =  0.800G1P501X + 0.200GPD500B                                : ARR( 0.100E-10,     0., 0.0);
+{ 46562} GGH501d +GHO                =       GGN501J +      GHO                                    : ARR( 0.332E-11,     0., 0.0);
+{ 46563} GGH501d +GHO                =       GGH502n +      GHO2                                   : ARR( 0.649E-11,     0., 0.0);
+{ 46564} GGH501d +GHO                =       G2G502g                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 46565} GGH501d +GHO                =       G3H501L                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 46566} GGH501d+HV               =       G1G503G +      GHO                                    :  0.100E+01*SUN;
+{ 46567} GGH501d+HV               =       G1G503i +      GNO2                                   :  0.100E+01*SUN;
+{ 46568} GGH501d+HV               =       GHN400G +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 46569} G2G502g +GNO                =       G1G503G +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 46570} G2G502g +GNO                =       GGN501I                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 46571} G2G502g +GHO2               =       GGH501d                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 46572} G2G502g +GNO3               =       G1G503G +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 46573} G2G502g +MEPERO             =  0.480G1G503G + 0.260GGN5017 + 0.260GGN501J                 : ARR( 0.164E-12,  -795., 0.0);
+{ 46574} G2G502g +PERO1              =  0.600G1G503G + 0.200GGN5017 + 0.200GGN501J                 : ARR( 0.126E-12,  -850., 0.0);
+{ 46575} G2G502g +PERO2              =  0.560G1G503G + 0.220GGN5017 + 0.220GGN501J                 : ARR( 0.471E-13, -1350., 0.0);
+{ 46576} G2G502g +PERO3              =  0.600G1G503G + 0.200GGN5017 + 0.200GGN501J                 : ARR( 0.142E-12, -1200., 0.0);
+{ 46577} G2G502g +PERO5              =  0.600G1G503G + 0.200GGN5017 + 0.200GGN501J                 : ARR( 0.533E-11,   500., 0.0);
+{ 46578} G2G502g +PERO6              =  0.460G1G503G + 0.270GGN5017 + 0.270GGN501J                 : ARR( 0.488E-13, -1250., 0.0);
+{ 46579} G2G502g +PERO9              =  0.800G1G503G + 0.200GGN501J                                : ARR( 0.100E-10,     0., 0.0);
+{ 46580} G1G503i                     =       GCH2O   +      GGD4002 +      GHO                     : ARR( 0.200E+15,  7140., 0.0);
+{ 46581} G1G503i                     =       GHD2000 +      G2G3004                                : ARR( 0.200E+15,  7118., 0.0);
+{ 46582} GAH501l +GHO                =       GAH502x +      GHO2                                   : ARR( 0.508E-11,     0., 0.0);
+{ 46583} GAH501l +GHO                =       GAN501E +      GHO                                    : ARR( 0.351E-11,     0., 0.0);
+{ 46584} GAH501l +GHO                =       G2A503b                                               : ARR( 0.208E-11,  -190., 0.0);
+{ 46585} GAH501l+HV               =       G1A501X +      GNO2                                   :  0.100E+01*SUN;
+{ 46586} GAH501l+HV               =       G1A503U +      GHO                                    :  0.100E+01*SUN;
+{ 46587} G2A503b +GNO                =       G1A503U +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 46588} G2A503b +GNO                =       GAN5019                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 46589} G2A503b +GHO2               =       GAH501l                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 46590} G2A503b +GNO3               =       G1A503U +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 46591} G2A503b +MEPERO             =  0.480G1A503U + 0.260GAN501C + 0.260GAN501E                 : ARR( 0.164E-12,  -795., 0.0);
+{ 46592} G2A503b +PERO1              =  0.600G1A503U + 0.200GAN501C + 0.200GAN501E                 : ARR( 0.126E-12,  -850., 0.0);
+{ 46593} G2A503b +PERO2              =  0.560G1A503U + 0.220GAN501C + 0.220GAN501E                 : ARR( 0.471E-13, -1350., 0.0);
+{ 46594} G2A503b +PERO3              =  0.600G1A503U + 0.200GAN501C + 0.200GAN501E                 : ARR( 0.142E-12, -1200., 0.0);
+{ 46595} G2A503b +PERO5              =  0.600G1A503U + 0.200GAN501C + 0.200GAN501E                 : ARR( 0.533E-11,   500., 0.0);
+{ 46596} G2A503b +PERO6              =  0.460G1A503U + 0.270GAN501C + 0.270GAN501E                 : ARR( 0.488E-13, -1250., 0.0);
+{ 46597} G2A503b +PERO9              =  0.800G1A503U + 0.200GAN501E                                : ARR( 0.100E-10,     0., 0.0);
+{ 46598} GPH501j                     =       G3H501L +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 46599} GPH501j +GHO                =       GPN501G +      GHO                                    : ARR( 0.335E-11,     0., 0.0);
+{ 46600} GPH501j +GHO                =       GPH502j +      GHO2                                   : ARR( 0.654E-11,     0., 0.0);
+{ 46601} GPH501j +GHO                =       G2P503e                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 46602} GPH501j+HV               =       G1P503e +      GHO                                    :  0.100E+01*SUN;
+{ 46603} GPH501j+HV               =       G1P504d +      GNO2                                   :  0.100E+01*SUN;
+{ 46604} GPH501j+HV               =       G3H501L +      GNO2                                   :  0.100E+01*SUN;
+{ 46605} G2P503e +GNO                =       G1P503e +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 46606} G2P503e +GNO                =       GPN501B                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 46607} G2P503e +GHO2               =       GPH501j                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 46608} G2P503e +GNO3               =       G1P503e +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 46609} G2P503e +MEPERO             =  0.480G1P503e + 0.260GPN501E + 0.260GPN501G                 : ARR( 0.164E-12,  -795., 0.0);
+{ 46610} G2P503e +PERO1              =  0.600G1P503e + 0.200GPN501E + 0.200GPN501G                 : ARR( 0.126E-12,  -850., 0.0);
+{ 46611} G2P503e +PERO2              =  0.560G1P503e + 0.220GPN501E + 0.220GPN501G                 : ARR( 0.471E-13, -1350., 0.0);
+{ 46612} G2P503e +PERO3              =  0.600G1P503e + 0.200GPN501E + 0.200GPN501G                 : ARR( 0.142E-12, -1200., 0.0);
+{ 46613} G2P503e +PERO5              =  0.600G1P503e + 0.200GPN501E + 0.200GPN501G                 : ARR( 0.533E-11,   500., 0.0);
+{ 46614} G2P503e +PERO6              =  0.460G1P503e + 0.270GPN501E + 0.270GPN501G                 : ARR( 0.488E-13, -1250., 0.0);
+{ 46615} G2P503e +PERO9              =  0.800G1P503e + 0.200GPN501G                                : ARR( 0.100E-10,     0., 0.0);
+{ 46616} G1P504d                     =       GCH2O   +      GPD4002 +      GHO                     : ARR( 0.200E+15,  7140., 0.0);
+{ 46617} G1P504d                     =       GHD2000 +      G2P3005                                : ARR( 0.200E+15,  7118., 0.0);
+{ 46618} GGH501e +GHO                =       GGH504M +      GHO2                                   : ARR( 0.407E-11,     0., 0.0);
+{ 46619} GGH501e +GHO                =       GGH502y +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 46620} GGH501e +GHO                =       GGN501y +      GHO                                    : ARR( 0.834E-11,     0., 0.0);
+{ 46621} GGH501e +GHO                =       G2G502h                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 46622} GGH501e +GHO                =       G3H501M                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 46623} GGH501e+HV               =       G1G502t +      GHO                                    :  0.100E+01*SUN;
+{ 46624} GGH501e+HV               =       G1G501G +      GNO2                                   :  0.100E+01*SUN;
+{ 46625} GGH501e+HV               =       GHD400A +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 46626} G2G502h +GNO                =       G1G502t +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 46627} G2G502h +GNO                =       GGN501D                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 46628} G2G502h +GHO2               =       GGH501e                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 46629} G2G502h +GNO3               =       G1G502t +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 46630} G2G502h +MEPERO             =  0.340G1G502t + 0.330GGN501R + 0.330GGN501y                 : ARR( 0.565E-13,  -845., 0.0);
+{ 46631} G2G502h +PERO1              =  0.460G1G502t + 0.270GGN501R + 0.270GGN501y                 : ARR( 0.434E-13,  -900., 0.0);
+{ 46632} G2G502h +PERO2              =  0.400G1G502t + 0.300GGN501R + 0.300GGN501y                 : ARR( 0.162E-13, -1400., 0.0);
+{ 46633} G2G502h +PERO3              =  0.460G1G502t + 0.270GGN501R + 0.270GGN501y                 : ARR( 0.488E-13, -1250., 0.0);
+{ 46634} G2G502h +PERO5              =  0.460G1G502t + 0.270GGN501R + 0.270GGN501y                 : ARR( 0.183E-11,   450., 0.0);
+{ 46635} G2G502h +PERO6              =  0.300G1G502t + 0.350GGN501R + 0.350GGN501y                 : ARR( 0.168E-13, -1300., 0.0);
+{ 46636} G2G502h +PERO9              =  0.650G1G502t + 0.350GGN501y                                : ARR( 0.100E-10,     0., 0.0);
+{ 46637} GGH501f +GHO                =       GGH504N +      GHO2                                   : ARR( 0.404E-11,     0., 0.0);
+{ 46638} GGH501f +GHO                =       GGH5033 +      GHO2                                   : ARR( 0.328E-10,     0., 0.0);
+{ 46639} GGH501f +GHO                =       GGK500b +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 46640} GGH501f +GHO                =       G2G502i                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 46641} GGH501f +GHO                =       G3H503h                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 46642} GGH501f+HV               =       G1G503j +      GHO                                    :  0.100E+01*SUN;
+{ 46643} GGH501f+HV               =       GAH400K +      GCO2                                   :  0.100E+01*SUN;
+{ 46644} G2G502i +GNO                =       G1G503j +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 46645} G2G502i +GNO                =       GGN501u                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 46646} G2G502i +GHO2               =       GGH501f                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 46647} G2G502i +GNO3               =       G1G503j +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 46648} G2G502i +MEPERO             =  0.340G1G503j + 0.330GGK500P + 0.330GGK500b                 : ARR( 0.565E-13,  -845., 0.0);
+{ 46649} G2G502i +PERO1              =  0.460G1G503j + 0.270GGK500P + 0.270GGK500b                 : ARR( 0.434E-13,  -900., 0.0);
+{ 46650} G2G502i +PERO2              =  0.400G1G503j + 0.300GGK500P + 0.300GGK500b                 : ARR( 0.162E-13, -1400., 0.0);
+{ 46651} G2G502i +PERO3              =  0.460G1G503j + 0.270GGK500P + 0.270GGK500b                 : ARR( 0.488E-13, -1250., 0.0);
+{ 46652} G2G502i +PERO5              =  0.460G1G503j + 0.270GGK500P + 0.270GGK500b                 : ARR( 0.183E-11,   450., 0.0);
+{ 46653} G2G502i +PERO6              =  0.300G1G503j + 0.350GGK500P + 0.350GGK500b                 : ARR( 0.168E-13, -1300., 0.0);
+{ 46654} G2G502i +PERO9              =  0.650G1G503j + 0.350GGK500b                                : ARR( 0.100E-10,     0., 0.0);
+{ 46655} G3H503h +GHO2               =  0.800GGH501f + 0.200GAH502n + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 46656} G3H503h +GNO                =       G3H400C +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 46657} G3H503h +GNO2               =       GPH501l                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 46658} G3H503h +GNO3               =       G3H400C +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 46659} G3H503h +MEPERO             =  0.685G3H400C + 0.315GAH502n + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 46660} G3H503h +PERO1              =  0.800G3H400C + 0.200GAH502n + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 46661} G3H503h +PERO2              =  0.750G3H400C + 0.250GAH502n + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 46662} G3H503h +PERO3              =  0.800G3H400C + 0.200GAH502n + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 46663} G3H503h +PERO5              =  0.650G3H400C + 0.350GAH502n + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 46664} G3H503h +PERO6              =  0.650G3H400C + 0.350GAH502n + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 46665} G3H503h +PERO9              =       G3H400C +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 46666} G1G503j                     =       GDO3002 +      GCO     +      GHO2    +      GCO      : ARR( 0.200E+15,  3266., 0.0);
+{ 46667} GGH501g +GHO                =       GGD500D +      GHO                                    : ARR( 0.148E-09,     0., 0.0);
+{ 46668} GGH501g +GHO                =       G3G500M                                               : ARR( 0.235E-10,     0., 0.0);
+{ 46669} GGH501g +GNO3               =       G3G500M +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 46670} GGH501g+HV               =       GHD400L +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 46671} GGH501g+HV               =       G1G501O +      GHO                                    :  0.100E+01*SUN;
+{ 46672} GGH501g+HV               =       GGH400i +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 46673} G3G500M +GHO2               =  0.800GGG500E + 0.200GAG500S + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 46674} G3G500M +GNO                =       GGH400i +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 46675} G3G500M +GNO2               =       GPG500Q                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 46676} G3G500M +GNO3               =       GGH400i +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 46677} G3G500M +MEPERO             =  0.685GGH400i + 0.315GAG500S + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46678} G3G500M +PERO1              =  0.800GGH400i + 0.200GAG500S + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46679} G3G500M +PERO2              =  0.750GGH400i + 0.250GAG500S + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46680} G3G500M +PERO3              =  0.800GGH400i + 0.200GAG500S + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46681} G3G500M +PERO5              =  0.650GGH400i + 0.350GAG500S + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46682} G3G500M +PERO6              =  0.650GGH400i + 0.350GAG500S + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46683} G3G500M +PERO9              =       GGH400i +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 46684} GPH501k                     =       G3H501M +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 46685} GPH501k +GHO                =       GPH504W +      GHO2                                   : ARR( 0.408E-11,     0., 0.0);
+{ 46686} GPH501k +GHO                =       GPH503J +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 46687} GPH501k +GHO                =       GPN502A +      GHO                                    : ARR( 0.835E-11,     0., 0.0);
+{ 46688} GPH501k +GHO                =       G2P503f                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 46689} GPH501k+HV               =       G1P504Q +      GHO                                    :  0.100E+01*SUN;
+{ 46690} GPH501k+HV               =       G1P501Q +      GNO2                                   :  0.100E+01*SUN;
+{ 46691} GPH501k+HV               =       G3H501M +      GNO2                                   :  0.100E+01*SUN;
+{ 46692} G2P503f +GNO                =       G1P504Q +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 46693} G2P503f +GNO                =       GPN501Q                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 46694} G2P503f +GHO2               =       GPH501k                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 46695} G2P503f +GNO3               =       G1P504Q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 46696} G2P503f +MEPERO             =  0.340G1P504Q + 0.330GPN501X + 0.330GPN502A                 : ARR( 0.565E-13,  -845., 0.0);
+{ 46697} G2P503f +PERO1              =  0.460G1P504Q + 0.270GPN501X + 0.270GPN502A                 : ARR( 0.434E-13,  -900., 0.0);
+{ 46698} G2P503f +PERO2              =  0.400G1P504Q + 0.300GPN501X + 0.300GPN502A                 : ARR( 0.162E-13, -1400., 0.0);
+{ 46699} G2P503f +PERO3              =  0.460G1P504Q + 0.270GPN501X + 0.270GPN502A                 : ARR( 0.488E-13, -1250., 0.0);
+{ 46700} G2P503f +PERO5              =  0.460G1P504Q + 0.270GPN501X + 0.270GPN502A                 : ARR( 0.183E-11,   450., 0.0);
+{ 46701} G2P503f +PERO6              =  0.300G1P504Q + 0.350GPN501X + 0.350GPN502A                 : ARR( 0.168E-13, -1300., 0.0);
+{ 46702} G2P503f +PERO9              =  0.650G1P504Q + 0.350GPN502A                                : ARR( 0.100E-10,     0., 0.0);
+{ 46703} GPH501l                     =       G3H503h +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 46704} GPH501l +GHO                =       GPH504X +      GHO2                                   : ARR( 0.404E-11,     0., 0.0);
+{ 46705} GPH501l +GHO                =       GPH503O +      GHO2                                   : ARR( 0.328E-10,     0., 0.0);
+{ 46706} GPH501l +GHO                =       GPK500a +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 46707} GPH501l +GHO                =       G2P503g                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 46708} GPH501l+HV               =       G1P502s +      GHO                                    :  0.100E+01*SUN;
+{ 46709} GPH501l+HV               =       G3H400C +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 46710} G2P503g +GNO                =       G1P502s +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 46711} G2P503g +GNO                =       GPN500u                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 46712} G2P503g +GHO2               =       GPH501l                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 46713} G2P503g +GNO3               =       G1P502s +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 46714} G2P503g +MEPERO             =  0.340G1P502s + 0.330GPK500P + 0.330GPK500a                 : ARR( 0.565E-13,  -845., 0.0);
+{ 46715} G2P503g +PERO1              =  0.460G1P502s + 0.270GPK500P + 0.270GPK500a                 : ARR( 0.434E-13,  -900., 0.0);
+{ 46716} G2P503g +PERO2              =  0.400G1P502s + 0.300GPK500P + 0.300GPK500a                 : ARR( 0.162E-13, -1400., 0.0);
+{ 46717} G2P503g +PERO3              =  0.460G1P502s + 0.270GPK500P + 0.270GPK500a                 : ARR( 0.488E-13, -1250., 0.0);
+{ 46718} G2P503g +PERO5              =  0.460G1P502s + 0.270GPK500P + 0.270GPK500a                 : ARR( 0.183E-11,   450., 0.0);
+{ 46719} G2P503g +PERO6              =  0.300G1P502s + 0.350GPK500P + 0.350GPK500a                 : ARR( 0.168E-13, -1300., 0.0);
+{ 46720} G2P503g +PERO9              =  0.650G1P502s + 0.350GPK500a                                : ARR( 0.100E-10,     0., 0.0);
+{ 46721} GPH501m                     =       G3H501N +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 46722} GPH501m +GHO                =       GPD500D +      GHO                                    : ARR( 0.145E-09,     0., 0.0);
+{ 46723} GPH501m +GHO                =       G3P500N                                               : ARR( 0.230E-10,     0., 0.0);
+{ 46724} GPH501m +GNO3               =       G3P500N +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 46725} GPH501m+HV               =       G3H501N +      GNO2                                   :  0.100E+01*SUN;
+{ 46726} GPH501m+HV               =       G1P501Z +      GHO                                    :  0.100E+01*SUN;
+{ 46727} GPH501m+HV               =       GPH400p +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 46728} G3P500N +GHO2               =  0.800GPG500Q + 0.200GPA500T + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 46729} G3P500N +GNO                =       GPH400p +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 46730} G3P500N +GNO2               =       GPP500F                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 46731} G3P500N +GNO3               =       GPH400p +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 46732} G3P500N +MEPERO             =  0.685GPH400p + 0.315GPA500T + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46733} G3P500N +PERO1              =  0.800GPH400p + 0.200GPA500T + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46734} G3P500N +PERO2              =  0.750GPH400p + 0.250GPA500T + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46735} G3P500N +PERO3              =  0.800GPH400p + 0.200GPA500T + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46736} G3P500N +PERO5              =  0.650GPH400p + 0.350GPA500T + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46737} G3P500N +PERO6              =  0.650GPH400p + 0.350GPA500T + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46738} G3P500N +PERO9              =       GPH400p +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 46739} GHN506M +GHO                =       G3H503i                                               : ARR( 0.417E-11,     0., 0.0);
+{ 46740} GHN506M +GHO                =       GND501Z +      GHO                                    : ARR( 0.262E-10,     0., 0.0);
+{ 46741} GHN506M +GHO                =       GHN506i +      GHO2                                   : ARR( 0.630E-11,     0., 0.0);
+{ 46742} GHN506M +GHO                =       G3H503j                                               : ARR( 0.208E-10,     0., 0.0);
+{ 46743} GHN506M +GHO                =       G2N506F                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 46744} GHN506M +GNO3               =       G3H503i +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 46745} GHN506M +GNO3               =       G3H503j +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 46746} GHN506M+HV               =       GCO     +      GHD400L +      GHO2    +      GNO2     :  0.100E+01*SUN;
+{ 46747} GHN506M+HV               =       GND2000 +      GHD3001                                :  0.100E+01*SUN;
+{ 46748} GHN506M+HV               =       G1H50AP +      GNO2                                   :  0.100E+01*SUN;
+{ 46749} GHN506M+HV               =       G1N5075 +      GHO                                    :  0.100E+01*SUN;
+{ 46750} GHN506M+HV               =       GHN400y +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 46751} G3H503i +GHO2               =  0.800GGH504M + 0.200GAH504U + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 46752} G3H503i +GNO                =       GHD400L + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 46753} G3H503i +GNO2               =       GPH504W                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 46754} G3H503i +GNO3               =       GHD400L + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 46755} G3H503i +MEPERO             =  0.685GHD400L + 0.315GAH504U + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46756} G3H503i +PERO1              =  0.800GHD400L + 0.200GAH504U + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46757} G3H503i +PERO2              =  0.750GHD400L + 0.250GAH504U + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46758} G3H503i +PERO3              =  0.800GHD400L + 0.200GAH504U + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46759} G3H503i +PERO5              =  0.650GHD400L + 0.350GAH504U + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46760} G3H503i +PERO6              =  0.650GHD400L + 0.350GAH504U + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46761} G3H503i +PERO9              =       GHD400L +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 46762} G3H503j +GHO2               =  0.800GGH503j + 0.200GAH503h + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 46763} G3H503j +GNO                =       GHN400y +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 46764} G3H503j +GNO2               =       GPH503j                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 46765} G3H503j +GNO3               =       GHN400y +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 46766} G3H503j +MEPERO             =  0.685GHN400y + 0.315GAH503h + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46767} G3H503j +PERO1              =  0.800GHN400y + 0.200GAH503h + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46768} G3H503j +PERO2              =  0.750GHN400y + 0.250GAH503h + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46769} G3H503j +PERO3              =  0.800GHN400y + 0.200GAH503h + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46770} G3H503j +PERO5              =  0.650GHN400y + 0.350GAH503h + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46771} G3H503j +PERO6              =  0.650GHN400y + 0.350GAH503h + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46772} G3H503j +PERO9              =       GHN400y +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 46773} G2N506F +GNO                =       G1N5075 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 46774} G2N506F +GNO                =       GNN503C                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 46775} G2N506F +GHO2               =       GHN506M                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 46776} G2N506F +GNO3               =       G1N5075 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 46777} G2N506F +MEPERO             =  0.340G1N5075 + 0.330GND501T + 0.330GND501Z                 : ARR( 0.565E-13,  -845., 0.0);
+{ 46778} G2N506F +PERO1              =  0.460G1N5075 + 0.270GND501T + 0.270GND501Z                 : ARR( 0.434E-13,  -900., 0.0);
+{ 46779} G2N506F +PERO2              =  0.400G1N5075 + 0.300GND501T + 0.300GND501Z                 : ARR( 0.162E-13, -1400., 0.0);
+{ 46780} G2N506F +PERO3              =  0.460G1N5075 + 0.270GND501T + 0.270GND501Z                 : ARR( 0.488E-13, -1250., 0.0);
+{ 46781} G2N506F +PERO5              =  0.460G1N5075 + 0.270GND501T + 0.270GND501Z                 : ARR( 0.183E-11,   450., 0.0);
+{ 46782} G2N506F +PERO6              =  0.300G1N5075 + 0.350GND501T + 0.350GND501Z                 : ARR( 0.168E-13, -1300., 0.0);
+{ 46783} G2N506F +PERO9              =  0.650G1N5075 + 0.350GND501Z                                : ARR( 0.100E-10,     0., 0.0);
+{ 46784} GND501S +GHO                =       GND501Z +      GHO2                                   : ARR( 0.129E-10,     0., 0.0);
+{ 46785} GND501S +GHO                =       GND501O +      GHO2                                   : ARR( 0.637E-11,     0., 0.0);
+{ 46786} GND501S +GHO                =       G3N502I                                               : ARR( 0.421E-11,     0., 0.0);
+{ 46787} GND501S +GNO3               =       G3N502I +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 46788} GND501S+HV               =       G3K3003 +      GDD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 46789} GND501S+HV               =       G1D500z +      GNO2                                   :  0.100E+01*SUN;
+{ 46790} GND501S+HV               =       GDK4007 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 46791} G3N502I +GHO2               =  0.800GGN501y + 0.200GAN5021 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 46792} G3N502I +GNO                =       GDK4007 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 46793} G3N502I +GNO2               =       GPN502A                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 46794} G3N502I +GNO3               =       GDK4007 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 46795} G3N502I +MEPERO             =  0.685GDK4007 + 0.315GAN5021 + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46796} G3N502I +PERO1              =  0.800GDK4007 + 0.200GAN5021 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46797} G3N502I +PERO2              =  0.750GDK4007 + 0.250GAN5021 + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46798} G3N502I +PERO3              =  0.800GDK4007 + 0.200GAN5021 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46799} G3N502I +PERO5              =  0.650GDK4007 + 0.350GAN5021 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46800} G3N502I +PERO6              =  0.650GDK4007 + 0.350GAN5021 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46801} G3N502I +PERO9              =       GDK4007 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 46802} GAH501m +GHO                =       GAH504U +      GHO2                                   : ARR( 0.415E-11,     0., 0.0);
+{ 46803} GAH501m +GHO                =       GAH503D +      GHO2                                   : ARR( 0.106E-10,     0., 0.0);
+{ 46804} GAH501m +GHO                =       GAN5021 +      GHO                                    : ARR( 0.851E-11,     0., 0.0);
+{ 46805} GAH501m +GHO                =       G2A503c                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 46806} GAH501m+HV               =       G1A504F +      GHO                                    :  0.100E+01*SUN;
+{ 46807} GAH501m+HV               =       G1A504U +      GNO2                                   :  0.100E+01*SUN;
+{ 46808} G2A503c +GNO                =       G1A504F +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 46809} G2A503c +GNO                =       GAN501M                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 46810} G2A503c +GHO2               =       GAH501m                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 46811} G2A503c +GNO3               =       G1A504F +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 46812} G2A503c +MEPERO             =  0.340G1A504F + 0.330GAN501S + 0.330GAN5021                 : ARR( 0.565E-13,  -845., 0.0);
+{ 46813} G2A503c +PERO1              =  0.460G1A504F + 0.270GAN501S + 0.270GAN5021                 : ARR( 0.434E-13,  -900., 0.0);
+{ 46814} G2A503c +PERO2              =  0.400G1A504F + 0.300GAN501S + 0.300GAN5021                 : ARR( 0.162E-13, -1400., 0.0);
+{ 46815} G2A503c +PERO3              =  0.460G1A504F + 0.270GAN501S + 0.270GAN5021                 : ARR( 0.488E-13, -1250., 0.0);
+{ 46816} G2A503c +PERO5              =  0.460G1A504F + 0.270GAN501S + 0.270GAN5021                 : ARR( 0.183E-11,   450., 0.0);
+{ 46817} G2A503c +PERO6              =  0.300G1A504F + 0.350GAN501S + 0.350GAN5021                 : ARR( 0.168E-13, -1300., 0.0);
+{ 46818} G2A503c +PERO9              =  0.650G1A504F + 0.350GAN5021                                : ARR( 0.100E-10,     0., 0.0);
+{ 46819} GHD501K +GHO                =       G3H503k                                               : ARR( 0.214E-10,     0., 0.0);
+{ 46820} GHD501K +GHO                =       GHD501P +      GHO2                                   : ARR( 0.205E-10,     0., 0.0);
+{ 46821} GHD501K +GHO                =       GDD500D +      GHO                                    : ARR( 0.819E-10,     0., 0.0);
+{ 46822} GHD501K +GHO                =       G3H400l +      GCO                                    : ARR( 0.130E-10,     0., 0.0);
+{ 46823} GHD501K +GNO3               =       G3H503k +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 46824} GHD501K +GNO3               =       G3H400l +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 46825} GHD501K+HV               =       GCO     +      GHD400K + 2.000GHO2                    :  0.100E+01*SUN;
+{ 46826} GHD501K+HV               =       G1D501X +      GHO                                    :  0.100E+01*SUN;
+{ 46827} GHD501K+HV               =       G3H400l +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 46828} GHD501K+HV               =       GHD400L +      GCO                                    :  0.100E+01*SUN;
+{ 46829} GHD501K+HV               =       GHD3005 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 46830} G3H503k +GHO2               =  0.800GGH504O + 0.200GAH504W + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 46831} G3H503k +GNO                =       GHD400K +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 46832} G3H503k +GNO2               =       GPH504Y                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 46833} G3H503k +GNO3               =       GHD400K +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 46834} G3H503k +MEPERO             =  0.685GHD400K + 0.315GAH504W + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46835} G3H503k +PERO1              =  0.800GHD400K + 0.200GAH504W + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46836} G3H503k +PERO2              =  0.750GHD400K + 0.250GAH504W + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46837} G3H503k +PERO3              =  0.800GHD400K + 0.200GAH504W + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46838} G3H503k +PERO5              =  0.650GHD400K + 0.350GAH504W + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46839} G3H503k +PERO6              =  0.650GHD400K + 0.350GAH504W + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46840} G3H503k +PERO9              =       GHD400K +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 46841} G1D501X                     =       GDD3001 +      G3D2000                                : ARR( 0.200E+15,  2403., 0.0);
+{ 46842} GAH501n +GHO                =       GAD500F +      GHO                                    : ARR( 0.144E-09,     0., 0.0);
+{ 46843} GAH501n +GHO                =       G3A500P                                               : ARR( 0.229E-10,     0., 0.0);
+{ 46844} GAH501n +GNO3               =       G3A500P +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 46845} GAH501n+HV               =       G1A501U +      GHO                                    :  0.100E+01*SUN;
+{ 46846} GAH501n+HV               =       GAH400o +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 46847} G3A500P +GHO2               =  0.800GAG500S + 0.200GAA500H + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 46848} G3A500P +GNO                =       GAH400o +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 46849} G3A500P +GNO2               =       GPA500T                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 46850} G3A500P +GNO3               =       GAH400o +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 46851} G3A500P +MEPERO             =  0.685GAH400o + 0.315GAA500H + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46852} G3A500P +PERO1              =  0.800GAH400o + 0.200GAA500H + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46853} G3A500P +PERO2              =  0.750GAH400o + 0.250GAA500H + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46854} G3A500P +PERO3              =  0.800GAH400o + 0.200GAA500H + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46855} G3A500P +PERO5              =  0.650GAH400o + 0.350GAA500H + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46856} G3A500P +PERO6              =  0.650GAH400o + 0.350GAA500H + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46857} G3A500P +PERO9              =       GAH400o +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 46858} GGN501P +GHO                =       GGN502P +      GHO2                                   : ARR( 0.217E-11,     0., 0.0);
+{ 46859} GGN501P +GHO                =       GGN501S +      GHO2                                   : ARR( 0.217E-11,     0., 0.0);
+{ 46860} GGN501P +GHO                =       G3N5024                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 46861} GGN501P+HV               =       G1G503k +      GNO2                                   :  0.100E+01*SUN;
+{ 46862} GGN501P+HV               =       G1G501I +      GNO2                                   :  0.100E+01*SUN;
+{ 46863} GGN501P+HV               =       GND400F +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 46864} G1G503k                     =       GGN400W +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 46865} GGH501h +GHO                =       GGH501i +      GHO2                                   : ARR( 0.109E-10,     0., 0.0);
+{ 46866} GGH501h +GHO                =       GGN501Q +      GHO                                    : ARR( 0.265E-10,     0., 0.0);
+{ 46867} GGH501h +GHO                =       G2G5013                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 46868} GGH501h +GHO                =       G3H5024                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 46869} GGH501h+HV               =       G1G503l +      GNO2                                   :  0.100E+01*SUN;
+{ 46870} GGH501h+HV               =       G1G501I +      GHO                                    :  0.100E+01*SUN;
+{ 46871} GGH501h+HV               =       GND400F +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 46872} G1G503l                     =       GGK500P +      GHO                                    : ARR( 0.800E+11,  1899., 0.0);
+{ 46873} G1G503l                     =       GGH400g +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 46874} GGN501Q +GHO                =       GGN5028 +      GHO2                                   : ARR( 0.666E-11,     0., 0.0);
+{ 46875} GGN501Q +GHO                =       GGN501T +      GHO2                                   : ARR( 0.641E-11,     0., 0.0);
+{ 46876} GGN501Q +GHO                =       G3N502J                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 46877} GGN501Q+HV               =       G1G503m +      GNO2                                   :  0.100E+01*SUN;
+{ 46878} GGN501Q+HV               =       GAN400C +      GCO2                                   :  0.100E+01*SUN;
+{ 46879} G3N502J +GHO2               =  0.800GGN501Q + 0.200GAN501U + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 46880} G3N502J +GNO                =       G3N400O +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 46881} G3N502J +GNO2               =       GPN501W                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 46882} G3N502J +GNO3               =       G3N400O +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 46883} G3N502J +MEPERO             =  0.685G3N400O + 0.315GAN501U + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 46884} G3N502J +PERO1              =  0.800G3N400O + 0.200GAN501U + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 46885} G3N502J +PERO2              =  0.750G3N400O + 0.250GAN501U + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 46886} G3N502J +PERO3              =  0.800G3N400O + 0.200GAN501U + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 46887} G3N502J +PERO5              =  0.650G3N400O + 0.350GAN501U + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 46888} G3N502J +PERO6              =  0.650G3N400O + 0.350GAN501U + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 46889} G3N502J +PERO9              =       G3N400O +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 46890} G1G503m                     =       GGD4003 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4427., 0.0);
+{ 46891} GGN501R +GHO                =       GGN502f +      GHO2                                   : ARR( 0.412E-11,     0., 0.0);
+{ 46892} GGN501R +GHO                =       GGN502A +      GHO2                                   : ARR( 0.106E-10,     0., 0.0);
+{ 46893} GGN501R +GHO                =       GGN501y +      GHO2                                   : ARR( 0.211E-11,     0., 0.0);
+{ 46894} GGN501R +GHO                =       G3N501A                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 46895} GGN501R+HV               =       G1G501J +      GNO2                                   :  0.100E+01*SUN;
+{ 46896} GGN501R+HV               =       GDO4006 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 46897} GGK500P +GHO                =       GGD500K +      GHO2                                   : ARR( 0.406E-11,     0., 0.0);
+{ 46898} GGK500P +GHO                =       GGK500X +      GHO2                                   : ARR( 0.330E-10,     0., 0.0);
+{ 46899} GGK500P +GHO                =       GGK500b +      GHO2                                   : ARR( 0.634E-11,     0., 0.0);
+{ 46900} GGK500P +GHO                =       G3K500k                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 46901} GGK500P+HV               =       GAO4006 +      GCO2                                   :  0.100E+01*SUN;
+{ 46902} G3K500k +GHO2               =  0.800GGK500P + 0.200GAK500b + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 46903} G3K500k +GNO                =       G3K400B +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 46904} G3K500k +GNO2               =       GPK500P                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 46905} G3K500k +GNO3               =       G3K400B +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 46906} G3K500k +MEPERO             =  0.685G3K400B + 0.315GAK500b + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 46907} G3K500k +PERO1              =  0.800G3K400B + 0.200GAK500b + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 46908} G3K500k +PERO2              =  0.750G3K400B + 0.250GAK500b + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 46909} G3K500k +PERO3              =  0.800G3K400B + 0.200GAK500b + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 46910} G3K500k +PERO5              =  0.650G3K400B + 0.350GAK500b + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 46911} G3K500k +PERO6              =  0.650G3K400B + 0.350GAK500b + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 46912} G3K500k +PERO9              =       G3K400B +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 46913} GGD500A +GHO                =       GGD500K +      GHO2                                   : ARR( 0.632E-11,     0., 0.0);
+{ 46914} GGD500A +GHO                =       GGD500D +      GHO2                                   : ARR( 0.329E-10,     0., 0.0);
+{ 46915} GGD500A +GHO                =       GGD500L +      GHO2                                   : ARR( 0.632E-11,     0., 0.0);
+{ 46916} GGD500A +GHO                =       G3G500N                                               : ARR( 0.209E-10,     0., 0.0);
+{ 46917} GGD500A +GHO                =       G3D5009                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 46918} GGD500A +GNO3               =       G3G500N +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 46919} GGD500A+HV               =       GDD4003 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 46920} GGD500A+HV               =       GGD4006 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 46921} G3G500N +GHO2               =  0.800GGG500F + 0.200GAG500T + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 46922} G3G500N +GNO                =       GGD4006 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 46923} G3G500N +GNO2               =       GPG500R                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 46924} G3G500N +GNO3               =       GGD4006 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 46925} G3G500N +MEPERO             =  0.685GGD4006 + 0.315GAG500T + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46926} G3G500N +PERO1              =  0.800GGD4006 + 0.200GAG500T + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46927} G3G500N +PERO2              =  0.750GGD4006 + 0.250GAG500T + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46928} G3G500N +PERO3              =  0.800GGD4006 + 0.200GAG500T + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46929} G3G500N +PERO5              =  0.650GGD4006 + 0.350GAG500T + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46930} G3G500N +PERO6              =  0.650GGD4006 + 0.350GAG500T + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46931} G3G500N +PERO9              =       GGD4006 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 46932} GPH501n                     =       G3H5024 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 46933} GPH501n +GHO                =       GPH501o +      GHO2                                   : ARR( 0.109E-10,     0., 0.0);
+{ 46934} GPH501n +GHO                =       GPN501W +      GHO                                    : ARR( 0.267E-10,     0., 0.0);
+{ 46935} GPH501n +GHO                =       G2P501G                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 46936} GPH501n+HV               =       G1P504e +      GNO2                                   :  0.100E+01*SUN;
+{ 46937} GPH501n+HV               =       G1P501S +      GHO                                    :  0.100E+01*SUN;
+{ 46938} GPH501n+HV               =       G3H5024 +      GNO2                                   :  0.100E+01*SUN;
+{ 46939} G1P504e                     =       GPK500P +      GHO                                    : ARR( 0.800E+11,  1899., 0.0);
+{ 46940} G1P504e                     =       GPH400l +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 46941} GPN501W                     =       G3N502J +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 46942} GPN501W +GHO                =       GPN502U +      GHO2                                   : ARR( 0.670E-11,     0., 0.0);
+{ 46943} GPN501W +GHO                =       GPN501Y +      GHO2                                   : ARR( 0.644E-11,     0., 0.0);
+{ 46944} GPN501W+HV               =       G1P504f +      GNO2                                   :  0.100E+01*SUN;
+{ 46945} GPN501W+HV               =       G3N400O +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 46946} G1P504f                     =       GPD4004 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4427., 0.0);
+{ 46947} GPN501X                     =       G3N501A +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 46948} GPN501X +GHO                =       GPN502i +      GHO2                                   : ARR( 0.414E-11,     0., 0.0);
+{ 46949} GPN501X +GHO                =       GPN502X +      GHO2                                   : ARR( 0.106E-10,     0., 0.0);
+{ 46950} GPN501X +GHO                =       GPN502A +      GHO2                                   : ARR( 0.212E-11,     0., 0.0);
+{ 46951} GPN501X+HV               =       G1P501T +      GNO2                                   :  0.100E+01*SUN;
+{ 46952} GPN501X+HV               =       G3N501A +      GNO2                                   :  0.100E+01*SUN;
+{ 46953} GPK500P                     =       G3K500k +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 46954} GPK500P +GHO                =       GPD500K +      GHO2                                   : ARR( 0.406E-11,     0., 0.0);
+{ 46955} GPK500P +GHO                =       GPK500X +      GHO2                                   : ARR( 0.330E-10,     0., 0.0);
+{ 46956} GPK500P +GHO                =       GPK500a +      GHO2                                   : ARR( 0.634E-11,     0., 0.0);
+{ 46957} GPK500P+HV               =       G3K400B +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 46958} GPD500A                     =       G3D5009 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 46959} GPD500A +GHO                =       GPD500K +      GHO2                                   : ARR( 0.632E-11,     0., 0.0);
+{ 46960} GPD500A +GHO                =       GPD500D +      GHO2                                   : ARR( 0.329E-10,     0., 0.0);
+{ 46961} GPD500A +GHO                =       GPD500L +      GHO2                                   : ARR( 0.632E-11,     0., 0.0);
+{ 46962} GPD500A +GHO                =       G3P500O                                               : ARR( 0.209E-10,     0., 0.0);
+{ 46963} GPD500A +GNO3               =       G3P500O +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 46964} GPD500A+HV               =       G3D5009 +      GNO2                                   :  0.100E+01*SUN;
+{ 46965} GPD500A+HV               =       GPD4006 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 46966} G3P500O +GHO2               =  0.800GPG500R + 0.200GPA500U + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 46967} G3P500O +GNO                =       GPD4006 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 46968} G3P500O +GNO2               =       GPP500G                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 46969} G3P500O +GNO3               =       GPD4006 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 46970} G3P500O +MEPERO             =  0.685GPD4006 + 0.315GPA500U + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46971} G3P500O +PERO1              =  0.800GPD4006 + 0.200GPA500U + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46972} G3P500O +PERO2              =  0.750GPD4006 + 0.250GPA500U + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46973} G3P500O +PERO3              =  0.800GPD4006 + 0.200GPA500U + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46974} G3P500O +PERO5              =  0.650GPD4006 + 0.350GPA500U + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46975} G3P500O +PERO6              =  0.650GPD4006 + 0.350GPA500U + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46976} G3P500O +PERO9              =       GPD4006 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 46977} GND501T +GHO                =       G3N502K                                               : ARR( 0.210E-10,     0., 0.0);
+{ 46978} GND501T +GHO                =       GND501Y +      GHO2                                   : ARR( 0.634E-11,     0., 0.0);
+{ 46979} GND501T +GHO                =       GND501Z +      GHO2                                   : ARR( 0.659E-11,     0., 0.0);
+{ 46980} GND501T +GHO                =       G3N502L                                               : ARR( 0.419E-11,     0., 0.0);
+{ 46981} GND501T +GNO3               =       G3N502K +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 46982} GND501T +GNO3               =       G3N502L +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 46983} GND501T+HV               =       GCO     +      GND400J + 2.000GHO2                    :  0.100E+01*SUN;
+{ 46984} GND501T+HV               =       G1D501S +      GNO2                                   :  0.100E+01*SUN;
+{ 46985} GND501T+HV               =       GDD4003 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 46986} GND501T+HV               =       GDK3001 +      GND2000                                :  0.100E+01*SUN;
+{ 46987} G3N502K +GHO2               =  0.800GGN502c + 0.200GAN502e + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 46988} G3N502K +GNO                =       GND400J +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 46989} G3N502K +GNO2               =       GPN502g                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 46990} G3N502K +GNO3               =       GND400J +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 46991} G3N502K +MEPERO             =  0.685GND400J + 0.315GAN502e + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46992} G3N502K +PERO1              =  0.800GND400J + 0.200GAN502e + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46993} G3N502K +PERO2              =  0.750GND400J + 0.250GAN502e + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46994} G3N502K +PERO3              =  0.800GND400J + 0.200GAN502e + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46995} G3N502K +PERO5              =  0.650GND400J + 0.350GAN502e + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46996} G3N502K +PERO6              =  0.650GND400J + 0.350GAN502e + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 46997} G3N502K +PERO9              =       GND400J +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 46998} G3N502L +GHO2               =  0.800GGN502f + 0.200GAN502g + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 46999} G3N502L +GNO                =       GDD4003 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 47000} G3N502L +GNO2               =       GPN502i                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 47001} G3N502L +GNO3               =       GDD4003 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 47002} G3N502L +MEPERO             =  0.685GDD4003 + 0.315GAN502g + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47003} G3N502L +PERO1              =  0.800GDD4003 + 0.200GAN502g + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47004} G3N502L +PERO2              =  0.750GDD4003 + 0.250GAN502g + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47005} G3N502L +PERO3              =  0.800GDD4003 + 0.200GAN502g + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47006} G3N502L +PERO5              =  0.650GDD4003 + 0.350GAN502g + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47007} G3N502L +PERO6              =  0.650GDD4003 + 0.350GAN502g + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47008} G3N502L +PERO9              =       GDD4003 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 47009} GAN501S +GHO                =       GAN502g +      GHO2                                   : ARR( 0.426E-11,     0., 0.0);
+{ 47010} GAN501S +GHO                =       GAN502O +      GHO2                                   : ARR( 0.109E-10,     0., 0.0);
+{ 47011} GAN501S +GHO                =       GAN5021 +      GHO2                                   : ARR( 0.219E-11,     0., 0.0);
+{ 47012} GAN501S+HV               =       G1A504W +      GNO2                                   :  0.100E+01*SUN;
+{ 47013} GDD500C +GHO                =       G3D500F                                               : ARR( 0.209E-10,     0., 0.0);
+{ 47014} GDD500C +GHO                =       GDD500E +      GHO2                                   : ARR( 0.200E-10,     0., 0.0);
+{ 47015} GDD500C +GHO                =       GDD500D +      GHO2                                   : ARR( 0.200E-10,     0., 0.0);
+{ 47016} GDD500C +GHO                =       G3D4005 +      GCO                                    : ARR( 0.127E-10,     0., 0.0);
+{ 47017} GDD500C +GNO3               =       G3D500F +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 47018} GDD500C +GNO3               =       G3D4005 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 47019} GDD500C+HV               =       GCO     +      GDD4004 + 2.000GHO2                    :  0.100E+01*SUN;
+{ 47020} GDD500C+HV               =       G3D4005 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 47021} GDD500C+HV               =       GDD4003 +      GCO                                    :  0.100E+01*SUN;
+{ 47022} GDD500C+HV               =       GDO3002 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 47023} G3D500F +GHO2               =  0.800GGD500L + 0.200GAD500M + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 47024} G3D500F +GNO                =       GDD4004 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 47025} G3D500F +GNO2               =       GPD500L                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 47026} G3D500F +GNO3               =       GDD4004 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 47027} G3D500F +MEPERO             =  0.685GDD4004 + 0.315GAD500M + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47028} G3D500F +PERO1              =  0.800GDD4004 + 0.200GAD500M + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47029} G3D500F +PERO2              =  0.750GDD4004 + 0.250GAD500M + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47030} G3D500F +PERO3              =  0.800GDD4004 + 0.200GAD500M + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47031} G3D500F +PERO5              =  0.650GDD4004 + 0.350GAD500M + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47032} G3D500F +PERO6              =  0.650GDD4004 + 0.350GAD500M + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47033} G3D500F +PERO9              =       GDD4004 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 47034} GAD500C +GHO                =       GAD500N +      GHO2                                   : ARR( 0.472E-11,     0., 0.0);
+{ 47035} GAD500C +GHO                =       GAD500F +      GHO2                                   : ARR( 0.331E-10,     0., 0.0);
+{ 47036} GAD500C +GHO                =       GAD500M +      GHO2                                   : ARR( 0.637E-11,     0., 0.0);
+{ 47037} GAD500C +GHO                =       G3A500Q                                               : ARR( 0.211E-10,     0., 0.0);
+{ 47038} GAD500C +GNO3               =       G3A500Q +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 47039} GAD500C+HV               =       GAD4007 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 47040} G3A500Q +GHO2               =  0.800GAG500T + 0.200GAA500I + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 47041} G3A500Q +GNO                =       GAD4007 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 47042} G3A500Q +GNO2               =       GPA500U                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 47043} G3A500Q +GNO3               =       GAD4007 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 47044} G3A500Q +MEPERO             =  0.685GAD4007 + 0.315GAA500I + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47045} G3A500Q +PERO1              =  0.800GAD4007 + 0.200GAA500I + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47046} G3A500Q +PERO2              =  0.750GAD4007 + 0.250GAA500I + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47047} G3A500Q +PERO3              =  0.800GAD4007 + 0.200GAA500I + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47048} G3A500Q +PERO5              =  0.650GAD4007 + 0.350GAA500I + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47049} G3A500Q +PERO6              =  0.650GAD4007 + 0.350GAA500I + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47050} G3A500Q +PERO9              =       GAD4007 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 47051} GGN501S +GHO                =       GGN502M +      GHO2                                   : ARR( 0.134E-11,     0., 0.0);
+{ 47052} GGN501S +GHO                =       G3N5023                                               : ARR( 0.203E-11,  -190., 0.0);
+{ 47053} GGN501S+HV               =       G1G5024 +      GNO2                                   :  0.100E+01*SUN;
+{ 47054} GGN501S+HV               =       G3N3002 +      GGD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 47055} GGN501S+HV               =       G1G501K +      GNO2                                   :  0.100E+01*SUN;
+{ 47056} GGN501S+HV               =       GND400G +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 47057} GGH501i +GHO                =       GGH503c +      GHO2                                   : ARR( 0.127E-11,     0., 0.0);
+{ 47058} GGH501i +GHO                =       GGN501T +      GHO                                    : ARR( 0.155E-10,     0., 0.0);
+{ 47059} GGH501i +GHO                =       G2G5015                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 47060} GGH501i +GHO                =       G3H5025                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 47061} GGH501i+HV               =       G1G503n +      GNO2                                   :  0.100E+01*SUN;
+{ 47062} GGH501i+HV               =       G3N3002 +      GGD2000 +      GHO                     :  0.100E+01*SUN;
+{ 47063} GGH501i+HV               =       G1G501K +      GHO                                    :  0.100E+01*SUN;
+{ 47064} GGH501i+HV               =       GND400G +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 47065} G1G503n                     =       GGH400s +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4576., 0.0);
+{ 47066} GGN501T +GHO                =       GGN502G +      GHO2                                   : ARR( 0.133E-11,     0., 0.0);
+{ 47067} GGN501T +GHO                =       G3N502M                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 47068} GGN501T+HV               =       G1G5025 +      GNO2                                   :  0.100E+01*SUN;
+{ 47069} GGN501T+HV               =       G3N3002 +      GCO     +      GHO2    +      GCO      :  0.100E+01*SUN;
+{ 47070} GGN501T+HV               =       GAN400D +      GCO2                                   :  0.100E+01*SUN;
+{ 47071} G3N502M +GHO2               =  0.800GGN501T + 0.200GAN501T + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 47072} G3N502M +GNO                =       G3N3002 +      GNO2    +      GCO2    +      GCO      : ARR( 0.810E-11,  -270., 0.0);
+{ 47073} G3N502M +GNO2               =       GPN501Y                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 47074} G3N502M +GNO3               =       G3N3002 +      GNO2    +      GCO2    +      GCO      : ARR( 0.500E-11,     0., 0.0);
+{ 47075} G3N502M +MEPERO             =  0.685G3N3002 + 0.315GAN501T + 0.685GCO2    + 0.685GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 47076} G3N502M +PERO1              =  0.800G3N3002 + 0.200GAN501T + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 47077} G3N502M +PERO2              =  0.750G3N3002 + 0.250GAN501T + 0.750GCO2    + 0.750GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 47078} G3N502M +PERO3              =  0.800G3N3002 + 0.200GAN501T + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 47079} G3N502M +PERO5              =  0.650G3N3002 + 0.350GAN501T + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 47080} G3N502M +PERO6              =  0.650G3N3002 + 0.350GAN501T + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 47081} G3N502M +PERO9              =       G3N3002 +      GCO2    +      GCO                     : ARR( 0.500E-11,  -500., 0.0);
+{ 47082} GAH501o +GHO                =       GAN501T +      GHO                                    : ARR( 0.119E-10,     0., 0.0);
+{ 47083} GAH501o +GHO                =       GAH503X +      GHO2                                   : ARR( 0.132E-11,     0., 0.0);
+{ 47084} GAH501o +GHO                =       G2A501D                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 47085} GAH501o+HV               =       G1A501P +      GHO                                    :  0.100E+01*SUN;
+{ 47086} GAH501o+HV               =       G3A3003 +      GND2000 +      GHO2                    :  0.100E+01*SUN;
+{ 47087} GAH501o+HV               =       G1A504Z +      GNO2                                   :  0.100E+01*SUN;
+{ 47088} G1A504Z                     =       GAH400u +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4576., 0.0);
+{ 47089} GAN501T +GHO                =       GAN502W +      GHO2                                   : ARR( 0.126E-11,     0., 0.0);
+{ 47090} GAN501T +GHO                =       GAD500J +      GNO2                                   : ARR( 0.146E-12,     0., 0.0);
+{ 47091} GAN501T +GHO                =       G1A5034                                               : ARR( 0.210E-17,    85., 2.0);
+{ 47092} GAN501T +GHO                =       G3N3002 +      GCO2    +      GCO                     : ARR( 0.520E-12,     0., 0.0);
+{ 47093} GAN501T+HV               =       GND400G +      GCO2                                   :  0.100E+01*SUN;
+{ 47094} GAN501T+HV               =       GCO     +      G3N3002 +      GHO     +      GCO      :  0.100E+01*SUN;
+{ 47095} GAN501T+HV               =       G1A502f +      GNO2                                   :  0.100E+01*SUN;
+{ 47096} GPH501o                     =       G3H5025 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 47097} GPH501o +GHO                =       GPH503c +      GHO2                                   : ARR( 0.127E-11,     0., 0.0);
+{ 47098} GPH501o +GHO                =       GPN501Y +      GHO                                    : ARR( 0.155E-10,     0., 0.0);
+{ 47099} GPH501o +GHO                =       G2P501I                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 47100} GPH501o+HV               =       G1P504g +      GNO2                                   :  0.100E+01*SUN;
+{ 47101} GPH501o+HV               =       G3N3002 +      GPD2000 +      GHO                     :  0.100E+01*SUN;
+{ 47102} GPH501o+HV               =       G1P501U +      GHO                                    :  0.100E+01*SUN;
+{ 47103} GPH501o+HV               =       G3H5025 +      GNO2                                   :  0.100E+01*SUN;
+{ 47104} G1P504g                     =       GPH400v +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4576., 0.0);
+{ 47105} GPN501Y                     =       G3N502M +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 47106} GPN501Y +GHO                =       GPD500I +      GNO2                                   : ARR( 0.146E-12,     0., 0.0);
+{ 47107} GPN501Y +GHO                =       GPN502e +      GHO2                                   : ARR( 0.126E-11,     0., 0.0);
+{ 47108} GPN501Y +GHO                =       G1P503K                                               : ARR( 0.210E-17,    85., 2.0);
+{ 47109} GPN501Y+HV               =       G1P502u +      GNO2                                   :  0.100E+01*SUN;
+{ 47110} GPN501Y+HV               =       G3N3002 +      GCO     +      GNO2    +      GCO      :  0.100E+01*SUN;
+{ 47111} GPN501Y+HV               =       G3N3002 +      GCO     +      GCO     +      GNO2     :  0.100E+01*SUN;
+{ 47112} GGN501U +GHO                =       GGN502F +      GHO2                                   : ARR( 0.439E-12,     0., 0.0);
+{ 47113} GGN501U +GHO                =       G3N502C                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 47114} GGN501U+HV               =       G1G503o +      GNO2                                   :  0.100E+01*SUN;
+{ 47115} GGN501U+HV               =       G1G501N +      GNO2                                   :  0.100E+01*SUN;
+{ 47116} GGN501U+HV               =       GAN400B +      GCO2                                   :  0.100E+01*SUN;
+{ 47117} G1G503o                     =       GGN400b +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4427., 0.0);
+{ 47118} GGH501j +GHO                =       GGH503C +      GHO2                                   : ARR( 0.657E-11,     0., 0.0);
+{ 47119} GGH501j +GHO                =       GGN501T +      GHO                                    : ARR( 0.253E-10,     0., 0.0);
+{ 47120} GGH501j +GHO                =       G2G5016                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 47121} GGH501j +GHO                =       G3H503l                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 47122} GGH501j+HV               =       G1G503p +      GNO2                                   :  0.100E+01*SUN;
+{ 47123} GGH501j+HV               =       G1G501N +      GHO                                    :  0.100E+01*SUN;
+{ 47124} GGH501j+HV               =       GAH4004 +      GCO2                                   :  0.100E+01*SUN;
+{ 47125} G3H503l +GHO2               =  0.800GGH501j + 0.200GAH501r + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 47126} G3H503l +GNO                =       G3H400H +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 47127} G3H503l +GNO2               =       GPH501p                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 47128} G3H503l +GNO3               =       G3H400H +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 47129} G3H503l +MEPERO             =  0.685G3H400H + 0.315GAH501r + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 47130} G3H503l +PERO1              =  0.800G3H400H + 0.200GAH501r + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 47131} G3H503l +PERO2              =  0.750G3H400H + 0.250GAH501r + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 47132} G3H503l +PERO3              =  0.800G3H400H + 0.200GAH501r + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 47133} G3H503l +PERO5              =  0.650G3H400H + 0.350GAH501r + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 47134} G3H503l +PERO6              =  0.650G3H400H + 0.350GAH501r + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 47135} G3H503l +PERO9              =       G3H400H +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 47136} G1G503p                     =       GGH400p +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4427., 0.0);
+{ 47137} GGD500B +GHO                =       G2G502j                                               : ARR( 0.274E-11,     0., 0.0);
+{ 47138} GGD500B +GHO                =       GGD500J +      GHO2                                   : ARR( 0.200E-10,     0., 0.0);
+{ 47139} GGD500B +GHO                =       G3G500O                                               : ARR( 0.208E-10,     0., 0.0);
+{ 47140} GGD500B +GHO                =       G3D500G                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 47141} GGD500B +GNO3               =       G3G500O +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 47142} GGD500B+HV               =       GAD4001 +      GCO2                                   :  0.100E+01*SUN;
+{ 47143} GGD500B+HV               =       GGD4005 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 47144} G2G502j +GNO                =       G1G503q +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 47145} G2G502j +GNO                =       GGN502g                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 47146} G2G502j +GHO2               =       GGH504N                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 47147} G2G502j +GNO3               =       G1G503q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 47148} G2G502j +MEPERO             =  0.340G1G503q + 0.330GGD500K + 0.330GGD500H                 : ARR( 0.565E-13,  -845., 0.0);
+{ 47149} G2G502j +PERO1              =  0.460G1G503q + 0.270GGD500K + 0.270GGD500H                 : ARR( 0.434E-13,  -900., 0.0);
+{ 47150} G2G502j +PERO2              =  0.400G1G503q + 0.300GGD500K + 0.300GGD500H                 : ARR( 0.162E-13, -1400., 0.0);
+{ 47151} G2G502j +PERO3              =  0.460G1G503q + 0.270GGD500K + 0.270GGD500H                 : ARR( 0.488E-13, -1250., 0.0);
+{ 47152} G2G502j +PERO5              =  0.460G1G503q + 0.270GGD500K + 0.270GGD500H                 : ARR( 0.183E-11,   450., 0.0);
+{ 47153} G2G502j +PERO6              =  0.300G1G503q + 0.350GGD500K + 0.350GGD500H                 : ARR( 0.168E-13, -1300., 0.0);
+{ 47154} G2G502j +PERO9              =  0.650G1G503q + 0.350GGD500H                                : ARR( 0.100E-10,     0., 0.0);
+{ 47155} G3G500O +GHO2               =  0.800GGG500D + 0.200GAG500R + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 47156} G3G500O +GNO                =       GGD4005 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 47157} G3G500O +GNO2               =       GPG500P                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 47158} G3G500O +GNO3               =       GGD4005 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 47159} G3G500O +MEPERO             =  0.685GGD4005 + 0.315GAG500R + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47160} G3G500O +PERO1              =  0.800GGD4005 + 0.200GAG500R + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47161} G3G500O +PERO2              =  0.750GGD4005 + 0.250GAG500R + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47162} G3G500O +PERO3              =  0.800GGD4005 + 0.200GAG500R + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47163} G3G500O +PERO5              =  0.650GGD4005 + 0.350GAG500R + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47164} G3G500O +PERO6              =  0.650GGD4005 + 0.350GAG500R + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47165} G3G500O +PERO9              =       GGD4005 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 47166} G3D500G +GHO2               =  0.800GGD500B + 0.200GAD500D + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 47167} G3D500G +GNO                =       G3D4001 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 47168} G3D500G +GNO2               =       GPD500B                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 47169} G3D500G +GNO3               =       G3D4001 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 47170} G3D500G +MEPERO             =  0.685G3D4001 + 0.315GAD500D + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 47171} G3D500G +PERO1              =  0.800G3D4001 + 0.200GAD500D + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 47172} G3D500G +PERO2              =  0.750G3D4001 + 0.250GAD500D + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 47173} G3D500G +PERO3              =  0.800G3D4001 + 0.200GAD500D + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 47174} G3D500G +PERO5              =  0.650G3D4001 + 0.350GAD500D + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 47175} G3D500G +PERO6              =  0.650G3D4001 + 0.350GAD500D + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 47176} G3D500G +PERO9              =       G3D4001 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 47177} G1G503q                     =       GCO     +      GDD3001 +      GHO2    +      GCO      : ARR( 0.200E+15,  2436., 0.0);
+{ 47178} GGD500C +GHO                =       GGD500J +      GHO2                                   : ARR( 0.205E-10,     0., 0.0);
+{ 47179} GGD500C +GHO                =       G3G4002 +      GCO                                    : ARR( 0.130E-10,     0., 0.0);
+{ 47180} GGD500C +GHO                =       G3D500A                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 47181} GGD500C +GNO3               =       G3G4002 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 47182} GGD500C+HV               =       GDD4002 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 47183} GGD500C+HV               =       G3G4002 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 47184} GGD500C+HV               =       GGD4002 +      GCO                                    :  0.100E+01*SUN;
+{ 47185} GGD500C+HV               =       GGO3001 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 47186} GGN501W +GHO                =       G3G500P                                               : ARR( 0.235E-10,     0., 0.0);
+{ 47187} GGN501W +GHO                =       G3N501C                                               : ARR( 0.215E-11,  -190., 0.0);
+{ 47188} GGN501W +GNO3               =       G3G500P +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 47189} GGN501W+HV               =       GND400J +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 47190} GGN501W+HV               =       G1G501O +      GNO2                                   :  0.100E+01*SUN;
+{ 47191} GGN501W+HV               =       GGN400U +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 47192} G3G500P +GHO2               =  0.800GGG500G + 0.200GAG500U + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 47193} G3G500P +GNO                =       GGN400U +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 47194} G3G500P +GNO2               =       GPG500C                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 47195} G3G500P +GNO3               =       GGN400U +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 47196} G3G500P +MEPERO             =  0.685GGN400U + 0.315GAG500U + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47197} G3G500P +PERO1              =  0.800GGN400U + 0.200GAG500U + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47198} G3G500P +PERO2              =  0.750GGN400U + 0.250GAG500U + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47199} G3G500P +PERO3              =  0.800GGN400U + 0.200GAG500U + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47200} G3G500P +PERO5              =  0.650GGN400U + 0.350GAG500U + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47201} G3G500P +PERO6              =  0.650GGN400U + 0.350GAG500U + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47202} G3G500P +PERO9              =       GGN400U +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 47203} GGD500D +GHO                =       G3G500Q                                               : ARR( 0.774E-10,     0., 0.0);
+{ 47204} GGD500D +GNO3               =       G3G500Q +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 47205} GGD500D+HV               =  0.500GDD4004 + 0.500GHO                                    :  0.100E+01*SUN;
+{ 47206} GGD500D+HV               =       G3G3002 +      GDD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 47207} GGD500D+HV               =       GGD4007 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 47208} G3G500Q +GHO2               =  0.800GGG500H + 0.200GAG500W + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 47209} G3G500Q +GNO                =       GGD4007 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 47210} G3G500Q +GNO2               =       GPG500S                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 47211} G3G500Q +GNO3               =       GGD4007 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 47212} G3G500Q +MEPERO             =  0.685GGD4007 + 0.315GAG500W + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47213} G3G500Q +PERO1              =  0.800GGD4007 + 0.200GAG500W + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47214} G3G500Q +PERO2              =  0.750GGD4007 + 0.250GAG500W + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47215} G3G500Q +PERO3              =  0.800GGD4007 + 0.200GAG500W + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47216} G3G500Q +PERO5              =  0.650GGD4007 + 0.350GAG500W + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47217} G3G500Q +PERO6              =  0.650GGD4007 + 0.350GAG500W + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47218} G3G500Q +PERO9              =       GGD4007 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 47219} GGG5001 +GHO                =       GGG500D +      GHO2                                   : ARR( 0.127E-10,     0., 0.0);
+{ 47220} GGG5001 +GHO                =       G2G502k                                               : ARR( 0.143E-11,     0., 0.0);
+{ 47221} GGG5001 +GHO                =       G3G5002                                               : ARR( 0.385E-11,  -190., 0.0);
+{ 47222} GGG5001+HV               =       GGD4002 +      GHO     +      GHO2    +      GCO2     :  0.200E+01*SUN;
+{ 47223} G2G502k +GNO                =       G1G503r +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 47224} G2G502k +GNO                =       GGG500G                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 47225} G2G502k +GHO2               =       GGG500E                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 47226} G2G502k +GNO3               =       G1G503r +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 47227} G2G502k +MEPERO             =  0.340G1G503r + 0.330GGG500F + 0.330GGG500H                 : ARR( 0.565E-13,  -845., 0.0);
+{ 47228} G2G502k +PERO1              =  0.460G1G503r + 0.270GGG500F + 0.270GGG500H                 : ARR( 0.434E-13,  -900., 0.0);
+{ 47229} G2G502k +PERO2              =  0.400G1G503r + 0.300GGG500F + 0.300GGG500H                 : ARR( 0.162E-13, -1400., 0.0);
+{ 47230} G2G502k +PERO3              =  0.460G1G503r + 0.270GGG500F + 0.270GGG500H                 : ARR( 0.488E-13, -1250., 0.0);
+{ 47231} G2G502k +PERO5              =  0.460G1G503r + 0.270GGG500F + 0.270GGG500H                 : ARR( 0.183E-11,   450., 0.0);
+{ 47232} G2G502k +PERO6              =  0.300G1G503r + 0.350GGG500F + 0.350GGG500H                 : ARR( 0.168E-13, -1300., 0.0);
+{ 47233} G2G502k +PERO9              =  0.650G1G503r + 0.350GGG500H                                : ARR( 0.100E-10,     0., 0.0);
+{ 47234} G1G503r                     =       GGD2000 +      GGD3001 +      GHO2                    : ARR( 0.400E+15,  3099., 0.0);
+{ 47235} GAG5003 +GHO                =       GAG500M +      GHO2                                   : ARR( 0.488E-11,     0., 0.0);
+{ 47236} GAG5003 +GHO                =       G2A503d                                               : ARR( 0.148E-11,     0., 0.0);
+{ 47237} GAG5003 +GHO                =       GAG500R +      GHO2                                   : ARR( 0.660E-11,     0., 0.0);
+{ 47238} GAG5003 +GHO                =       G3A5003                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 47239} GAG5003+HV               =       GAD4002 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 47240} G2A503d +GNO                =       G1A504a +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 47241} G2A503d +GNO                =       GAG500U                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 47242} G2A503d +GHO2               =       GAG500S                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 47243} G2A503d +GNO3               =       G1A504a +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 47244} G2A503d +MEPERO             =  0.340G1A504a + 0.330GAG500T + 0.330GAG500W                 : ARR( 0.565E-13,  -845., 0.0);
+{ 47245} G2A503d +PERO1              =  0.460G1A504a + 0.270GAG500T + 0.270GAG500W                 : ARR( 0.434E-13,  -900., 0.0);
+{ 47246} G2A503d +PERO2              =  0.400G1A504a + 0.300GAG500T + 0.300GAG500W                 : ARR( 0.162E-13, -1400., 0.0);
+{ 47247} G2A503d +PERO3              =  0.460G1A504a + 0.270GAG500T + 0.270GAG500W                 : ARR( 0.488E-13, -1250., 0.0);
+{ 47248} G2A503d +PERO5              =  0.460G1A504a + 0.270GAG500T + 0.270GAG500W                 : ARR( 0.183E-11,   450., 0.0);
+{ 47249} G2A503d +PERO6              =  0.300G1A504a + 0.350GAG500T + 0.350GAG500W                 : ARR( 0.168E-13, -1300., 0.0);
+{ 47250} G2A503d +PERO9              =  0.650G1A504a + 0.350GAG500W                                : ARR( 0.100E-10,     0., 0.0);
+{ 47251} G1A504a                     =       GAD2000 +      GGD3001 +      GHO2                    : ARR( 0.200E+15,  3099., 0.0);
+{ 47252} G1A504a                     =       GAD3001 +      GGD2000 +      GHO2                    : ARR( 0.200E+15,  3099., 0.0);
+{ 47253} GPG5002                     =       G3G5002 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 47254} GPG5002 +GHO                =       GPG500P +      GHO2                                   : ARR( 0.638E-11,     0., 0.0);
+{ 47255} GPG5002 +GHO                =       G2P503h                                               : ARR( 0.144E-11,     0., 0.0);
+{ 47256} GPG5002 +GHO                =       GPG500K +      GHO2                                   : ARR( 0.638E-11,     0., 0.0);
+{ 47257} GPG5002 +GHO                =       G3P5002                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 47258} GPG5002+HV               =       GPD4002 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 47259} GPG5002+HV               =       G3G5002 +      GNO2                                   :  0.100E+01*SUN;
+{ 47260} G2P503h +GNO                =       G1P504h +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 47261} G2P503h +GNO                =       GPG500C                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 47262} G2P503h +GHO2               =       GPG500Q                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 47263} G2P503h +GNO3               =       G1P504h +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 47264} G2P503h +MEPERO             =  0.340G1P504h + 0.330GPG500R + 0.330GPG500S                 : ARR( 0.565E-13,  -845., 0.0);
+{ 47265} G2P503h +PERO1              =  0.460G1P504h + 0.270GPG500R + 0.270GPG500S                 : ARR( 0.434E-13,  -900., 0.0);
+{ 47266} G2P503h +PERO2              =  0.400G1P504h + 0.300GPG500R + 0.300GPG500S                 : ARR( 0.162E-13, -1400., 0.0);
+{ 47267} G2P503h +PERO3              =  0.460G1P504h + 0.270GPG500R + 0.270GPG500S                 : ARR( 0.488E-13, -1250., 0.0);
+{ 47268} G2P503h +PERO5              =  0.460G1P504h + 0.270GPG500R + 0.270GPG500S                 : ARR( 0.183E-11,   450., 0.0);
+{ 47269} G2P503h +PERO6              =  0.300G1P504h + 0.350GPG500R + 0.350GPG500S                 : ARR( 0.168E-13, -1300., 0.0);
+{ 47270} G2P503h +PERO9              =  0.650G1P504h + 0.350GPG500S                                : ARR( 0.100E-10,     0., 0.0);
+{ 47271} G1P504h                     =       GGD2000 +      GPD3001 +      GHO2                    : ARR( 0.200E+15,  3099., 0.0);
+{ 47272} G1P504h                     =       GGD3001 +      GPD2000 +      GHO2                    : ARR( 0.200E+15,  3099., 0.0);
+{ 47273} GAH501p +GHO                =       GAH501r +      GHO                                    : ARR( 0.194E-10,     0., 0.0);
+{ 47274} GAH501p +GHO                =       GAH501o +      GHO                                    : ARR( 0.429E-10,     0., 0.0);
+{ 47275} GAH501p +GHO                =       G2A503e                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 47276} GAH501p +GHO                =       G2A501E                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 47277} GAH501p+HV               =       G1A504A +      GHO                                    :  0.100E+01*SUN;
+{ 47278} GAH501p+HV               =       G1A501R +      GHO                                    :  0.100E+01*SUN;
+{ 47279} GAH501p+HV               =       G1A504b +      GNO2                                   :  0.100E+01*SUN;
+{ 47280} G2A503e +GNO                =       G1A504A +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 47281} G2A503e +GNO                =       GAH501P                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 47282} G2A503e +GHO2               =       GAH501p                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 47283} G2A503e +GNO3               =       G1A504A +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 47284} G2A503e +MEPERO             =  0.340G1A504A + 0.330GAH501e + 0.330GAH501r                 : ARR( 0.565E-13,  -845., 0.0);
+{ 47285} G2A503e +PERO1              =  0.460G1A504A + 0.270GAH501e + 0.270GAH501r                 : ARR( 0.434E-13,  -900., 0.0);
+{ 47286} G2A503e +PERO2              =  0.400G1A504A + 0.300GAH501e + 0.300GAH501r                 : ARR( 0.162E-13, -1400., 0.0);
+{ 47287} G2A503e +PERO3              =  0.460G1A504A + 0.270GAH501e + 0.270GAH501r                 : ARR( 0.488E-13, -1250., 0.0);
+{ 47288} G2A503e +PERO5              =  0.460G1A504A + 0.270GAH501e + 0.270GAH501r                 : ARR( 0.183E-11,   450., 0.0);
+{ 47289} G2A503e +PERO6              =  0.300G1A504A + 0.350GAH501e + 0.350GAH501r                 : ARR( 0.168E-13, -1300., 0.0);
+{ 47290} G2A503e +PERO9              =  0.650G1A504A + 0.350GAH501r                                : ARR( 0.100E-10,     0., 0.0);
+{ 47291} G1A504b                     =       GAH502n +      GHO                                    : ARR( 0.800E+11,  2034., 0.0);
+{ 47292} G1A504b                     =       GAH400w +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 47293} GAH501q +GHO                =       GAN501U +      GHO                                    : ARR( 0.191E-10,     0., 0.0);
+{ 47294} GAH501q +GHO                =       GAH501o +      GHO2                                   : ARR( 0.106E-10,     0., 0.0);
+{ 47295} GAH501q +GHO                =       GAH503t +      GHO2                                   : ARR( 0.211E-11,     0., 0.0);
+{ 47296} GAH501q +GHO                =       G2A503f                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 47297} GAH501q+HV               =       G1A504C +      GHO                                    :  0.100E+01*SUN;
+{ 47298} GAH501q+HV               =       G1A504c +      GNO2                                   :  0.100E+01*SUN;
+{ 47299} G2A503f +GNO                =       G1A504C +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 47300} G2A503f +GNO                =       GAN501K                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 47301} G2A503f +GHO2               =       GAH501q                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 47302} G2A503f +GNO3               =       G1A504C +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 47303} G2A503f +MEPERO             =  0.340G1A504C + 0.330GAN501Q + 0.330GAN501U                 : ARR( 0.565E-13,  -845., 0.0);
+{ 47304} G2A503f +PERO1              =  0.460G1A504C + 0.270GAN501Q + 0.270GAN501U                 : ARR( 0.434E-13,  -900., 0.0);
+{ 47305} G2A503f +PERO2              =  0.400G1A504C + 0.300GAN501Q + 0.300GAN501U                 : ARR( 0.162E-13, -1400., 0.0);
+{ 47306} G2A503f +PERO3              =  0.460G1A504C + 0.270GAN501Q + 0.270GAN501U                 : ARR( 0.488E-13, -1250., 0.0);
+{ 47307} G2A503f +PERO5              =  0.460G1A504C + 0.270GAN501Q + 0.270GAN501U                 : ARR( 0.183E-11,   450., 0.0);
+{ 47308} G2A503f +PERO6              =  0.300G1A504C + 0.350GAN501Q + 0.350GAN501U                 : ARR( 0.168E-13, -1300., 0.0);
+{ 47309} G2A503f +PERO9              =  0.650G1A504C + 0.350GAN501U                                : ARR( 0.100E-10,     0., 0.0);
+{ 47310} G1A504c                     =       GAK500b +      GHO                                    : ARR( 0.800E+11,  2034., 0.0);
+{ 47311} G1A504c                     =       GAH400k +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 47312} GAH501r +GHO                =       GAN501T +      GHO                                    : ARR( 0.256E-10,     0., 0.0);
+{ 47313} GAH501r +GHO                =       GAH503d +      GHO2                                   : ARR( 0.666E-11,     0., 0.0);
+{ 47314} GAH501r +GHO                =       G2A501F                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 47315} GAH501r+HV               =       GHN400T +      GCO2                                   :  0.100E+01*SUN;
+{ 47316} GAH501r+HV               =       G1A501T +      GHO                                    :  0.100E+01*SUN;
+{ 47317} GAH501r+HV               =       G1A504d +      GNO2                                   :  0.100E+01*SUN;
+{ 47318} G1A504d                     =       GAH400s +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4427., 0.0);
+{ 47319} GAN501U +GHO                =       GAN501T +      GHO2                                   : ARR( 0.670E-11,     0., 0.0);
+{ 47320} GAN501U +GHO                =       GAN502M +      GHO2                                   : ARR( 0.697E-11,     0., 0.0);
+{ 47321} GAN501U+HV               =       GND400F +      GCO2                                   :  0.100E+01*SUN;
+{ 47322} GAN501U+HV               =       G1A504e +      GNO2                                   :  0.100E+01*SUN;
+{ 47323} G1A504e                     =       GAD4004 +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4427., 0.0);
+{ 47324} GAD500D +GHO                =       G2A503g                                               : ARR( 0.277E-11,     0., 0.0);
+{ 47325} GAD500D +GHO                =       GAD500I +      GHO2                                   : ARR( 0.202E-10,     0., 0.0);
+{ 47326} GAD500D +GHO                =       G3A500R                                               : ARR( 0.211E-10,     0., 0.0);
+{ 47327} GAD500D +GNO3               =       G3A500R +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 47328} GAD500D+HV               =       GDD4001 +      GCO2                                   :  0.100E+01*SUN;
+{ 47329} GAD500D+HV               =       GAD4005 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 47330} G2A503g +GNO                =       G1A504f +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 47331} G2A503g +GNO                =       GAN502h                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 47332} G2A503g +GHO2               =       GAH504X                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 47333} G2A503g +GNO3               =       G1A504f +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 47334} G2A503g +MEPERO             =  0.340G1A504f + 0.330GAD500N + 0.330GAD500J                 : ARR( 0.565E-13,  -845., 0.0);
+{ 47335} G2A503g +PERO1              =  0.460G1A504f + 0.270GAD500N + 0.270GAD500J                 : ARR( 0.434E-13,  -900., 0.0);
+{ 47336} G2A503g +PERO2              =  0.400G1A504f + 0.300GAD500N + 0.300GAD500J                 : ARR( 0.162E-13, -1400., 0.0);
+{ 47337} G2A503g +PERO3              =  0.460G1A504f + 0.270GAD500N + 0.270GAD500J                 : ARR( 0.488E-13, -1250., 0.0);
+{ 47338} G2A503g +PERO5              =  0.460G1A504f + 0.270GAD500N + 0.270GAD500J                 : ARR( 0.183E-11,   450., 0.0);
+{ 47339} G2A503g +PERO6              =  0.300G1A504f + 0.350GAD500N + 0.350GAD500J                 : ARR( 0.168E-13, -1300., 0.0);
+{ 47340} G2A503g +PERO9              =  0.650G1A504f + 0.350GAD500J                                : ARR( 0.100E-10,     0., 0.0);
+{ 47341} G3A500R +GHO2               =  0.800GAG500M + 0.200GAA500G + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 47342} G3A500R +GNO                =       GAD4005 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 47343} G3A500R +GNO2               =       GPA500S                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 47344} G3A500R +GNO3               =       GAD4005 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 47345} G3A500R +MEPERO             =  0.685GAD4005 + 0.315GAA500G + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47346} G3A500R +PERO1              =  0.800GAD4005 + 0.200GAA500G + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47347} G3A500R +PERO2              =  0.750GAD4005 + 0.250GAA500G + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47348} G3A500R +PERO3              =  0.800GAD4005 + 0.200GAA500G + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47349} G3A500R +PERO5              =  0.650GAD4005 + 0.350GAA500G + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47350} G3A500R +PERO6              =  0.650GAD4005 + 0.350GAA500G + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47351} G3A500R +PERO9              =       GAD4005 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 47352} G1A504f                     =       GCO     +      GDD3001 +      GHO     +      GCO      : ARR( 0.200E+15,  2436., 0.0);
+{ 47353} GAD500E +GHO                =       GAD500I +      GHO2                                   : ARR( 0.156E-10,     0., 0.0);
+{ 47354} GAD500E +GHO                =       G3A4005 +      GCO                                    : ARR( 0.134E-10,     0., 0.0);
+{ 47355} GAD500E +GNO3               =       G3A4005 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 47356} GAD500E+HV               =       G3A4005 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 47357} GAD500E+HV               =       GAD4002 +      GCO                                    :  0.100E+01*SUN;
+{ 47358} GAD500E+HV               =       GAO3001 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 47359} GAN501W +GHO                =       GAN502i +      GHO2                                   : ARR( 0.138E-11,     0., 0.0);
+{ 47360} GAN501W +GHO                =       G3A500S                                               : ARR( 0.228E-10,     0., 0.0);
+{ 47361} GAN501W +GNO3               =       G3A500S +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 47362} GAN501W+HV               =       G1A501U +      GNO2                                   :  0.100E+01*SUN;
+{ 47363} GAN501W+HV               =       GAN400a +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 47364} G3A500S +GHO2               =  0.800GAG500U + 0.200GAA500J + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 47365} G3A500S +GNO                =       GAN400a +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 47366} G3A500S +GNO2               =       GPA500D                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 47367} G3A500S +GNO3               =       GAN400a +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 47368} G3A500S +MEPERO             =  0.685GAN400a + 0.315GAA500J + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47369} G3A500S +PERO1              =  0.800GAN400a + 0.200GAA500J + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47370} G3A500S +PERO2              =  0.750GAN400a + 0.250GAA500J + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47371} G3A500S +PERO3              =  0.800GAN400a + 0.200GAA500J + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47372} G3A500S +PERO5              =  0.650GAN400a + 0.350GAA500J + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47373} G3A500S +PERO6              =  0.650GAN400a + 0.350GAA500J + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47374} G3A500S +PERO9              =       GAN400a +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 47375} GAD500F +GHO                =       GAD500O +      GHO2                                   : ARR( 0.403E-11,     0., 0.0);
+{ 47376} GAD500F +GHO                =       G3A500T                                               : ARR( 0.693E-10,     0., 0.0);
+{ 47377} GAD500F +GNO3               =       G3A500T +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 47378} GAD500F+HV               =       G3A3002 +      GDD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 47379} GAD500F+HV               =       GAD4006 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 47380} G3A500T +GHO2               =  0.800GAG500W + 0.200GAA500K + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 47381} G3A500T +GNO                =       GAD4006 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 47382} G3A500T +GNO2               =       GPA500W                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 47383} G3A500T +GNO3               =       GAD4006 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 47384} G3A500T +MEPERO             =  0.685GAD4006 + 0.315GAA500K + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47385} G3A500T +PERO1              =  0.800GAD4006 + 0.200GAA500K + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47386} G3A500T +PERO2              =  0.750GAD4006 + 0.250GAA500K + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47387} G3A500T +PERO3              =  0.800GAD4006 + 0.200GAA500K + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47388} G3A500T +PERO5              =  0.650GAD4006 + 0.350GAA500K + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47389} G3A500T +PERO6              =  0.650GAD4006 + 0.350GAA500K + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47390} G3A500T +PERO9              =       GAD4006 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 47391} GAA5002 +GHO                =       GAA500G +      GHO2                                   : ARR( 0.952E-11,     0., 0.0);
+{ 47392} GAA5002 +GHO                =       G2A503h                                               : ARR( 0.145E-11,     0., 0.0);
+{ 47393} GAA5002 +GHO                =       GAD4002 +      GHO2    +      GCO2                    : ARR( 0.106E-11,     0., 0.0);
+{ 47394} G2A503h +GNO                =       G1A504g +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 47395} G2A503h +GNO                =       GAA500J                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 47396} G2A503h +GHO2               =       GAA500H                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 47397} G2A503h +GNO3               =       G1A504g +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 47398} G2A503h +MEPERO             =  0.340G1A504g + 0.330GAA500I + 0.330GAA500K                 : ARR( 0.565E-13,  -845., 0.0);
+{ 47399} G2A503h +PERO1              =  0.460G1A504g + 0.270GAA500I + 0.270GAA500K                 : ARR( 0.434E-13,  -900., 0.0);
+{ 47400} G2A503h +PERO2              =  0.400G1A504g + 0.300GAA500I + 0.300GAA500K                 : ARR( 0.162E-13, -1400., 0.0);
+{ 47401} G2A503h +PERO3              =  0.460G1A504g + 0.270GAA500I + 0.270GAA500K                 : ARR( 0.488E-13, -1250., 0.0);
+{ 47402} G2A503h +PERO5              =  0.460G1A504g + 0.270GAA500I + 0.270GAA500K                 : ARR( 0.183E-11,   450., 0.0);
+{ 47403} G2A503h +PERO6              =  0.300G1A504g + 0.350GAA500I + 0.350GAA500K                 : ARR( 0.168E-13, -1300., 0.0);
+{ 47404} G2A503h +PERO9              =  0.650G1A504g + 0.350GAA500K                                : ARR( 0.100E-10,     0., 0.0);
+{ 47405} G1A504g                     =       GAD2000 +      GAD3001 +      GHO2                    : ARR( 0.400E+15,  3099., 0.0);
+{ 47406} GPA5003                     =       G3A5003 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 47407} GPA5003 +GHO                =       GPA500S +      GHO2                                   : ARR( 0.495E-11,     0., 0.0);
+{ 47408} GPA5003 +GHO                =       G2P503i                                               : ARR( 0.150E-11,     0., 0.0);
+{ 47409} GPA5003 +GHO                =       GPA500P +      GHO2                                   : ARR( 0.669E-11,     0., 0.0);
+{ 47410} GPA5003+HV               =       G3A5003 +      GNO2                                   :  0.100E+01*SUN;
+{ 47411} G2P503i +GNO                =       G1P504i +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 47412} G2P503i +GNO                =       GPA500D                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 47413} G2P503i +GHO2               =       GPA500T                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 47414} G2P503i +GNO3               =       G1P504i +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 47415} G2P503i +MEPERO             =  0.340G1P504i + 0.330GPA500U + 0.330GPA500W                 : ARR( 0.565E-13,  -845., 0.0);
+{ 47416} G2P503i +PERO1              =  0.460G1P504i + 0.270GPA500U + 0.270GPA500W                 : ARR( 0.434E-13,  -900., 0.0);
+{ 47417} G2P503i +PERO2              =  0.400G1P504i + 0.300GPA500U + 0.300GPA500W                 : ARR( 0.162E-13, -1400., 0.0);
+{ 47418} G2P503i +PERO3              =  0.460G1P504i + 0.270GPA500U + 0.270GPA500W                 : ARR( 0.488E-13, -1250., 0.0);
+{ 47419} G2P503i +PERO5              =  0.460G1P504i + 0.270GPA500U + 0.270GPA500W                 : ARR( 0.183E-11,   450., 0.0);
+{ 47420} G2P503i +PERO6              =  0.300G1P504i + 0.350GPA500U + 0.350GPA500W                 : ARR( 0.168E-13, -1300., 0.0);
+{ 47421} G2P503i +PERO9              =  0.650G1P504i + 0.350GPA500W                                : ARR( 0.100E-10,     0., 0.0);
+{ 47422} G1P504i                     =       GAD2000 +      GPD3001 +      GHO2                    : ARR( 0.200E+15,  3099., 0.0);
+{ 47423} G1P504i                     =       GAD3001 +      GPD2000 +      GHO2                    : ARR( 0.200E+15,  3099., 0.0);
+{ 47424} GPH501p                     =       G3H503l +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 47425} GPH501p +GHO                =       GPH5042 +      GHO2                                   : ARR( 0.657E-11,     0., 0.0);
+{ 47426} GPH501p +GHO                =       GPN501Y +      GHO                                    : ARR( 0.253E-10,     0., 0.0);
+{ 47427} GPH501p +GHO                =       G2P501J                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 47428} GPH501p+HV               =       G1P504j +      GNO2                                   :  0.100E+01*SUN;
+{ 47429} GPH501p+HV               =       G1P501Y +      GHO                                    :  0.100E+01*SUN;
+{ 47430} GPH501p+HV               =       G3H400H +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 47431} G1P504j                     =       GPH400t +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4427., 0.0);
+{ 47432} GPD500B                     =       G3D500G +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 47433} GPD500B +GHO                =       G2P503j                                               : ARR( 0.274E-11,     0., 0.0);
+{ 47434} GPD500B +GHO                =       GPD500H +      GHO2                                   : ARR( 0.200E-10,     0., 0.0);
+{ 47435} GPD500B +GHO                =       G3P500P                                               : ARR( 0.208E-10,     0., 0.0);
+{ 47436} GPD500B +GNO3               =       G3P500P +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 47437} GPD500B+HV               =       G3D4001 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 47438} GPD500B+HV               =       GPD4005 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 47439} G2P503j +GNO                =       G1P504k +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 47440} G2P503j +GNO                =       GPN502H                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 47441} G2P503j +GHO2               =       GPH504X                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 47442} G2P503j +GNO3               =       G1P504k +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 47443} G2P503j +MEPERO             =  0.340G1P504k + 0.330GPD500K + 0.330GPD500I                 : ARR( 0.565E-13,  -845., 0.0);
+{ 47444} G2P503j +PERO1              =  0.460G1P504k + 0.270GPD500K + 0.270GPD500I                 : ARR( 0.434E-13,  -900., 0.0);
+{ 47445} G2P503j +PERO2              =  0.400G1P504k + 0.300GPD500K + 0.300GPD500I                 : ARR( 0.162E-13, -1400., 0.0);
+{ 47446} G2P503j +PERO3              =  0.460G1P504k + 0.270GPD500K + 0.270GPD500I                 : ARR( 0.488E-13, -1250., 0.0);
+{ 47447} G2P503j +PERO5              =  0.460G1P504k + 0.270GPD500K + 0.270GPD500I                 : ARR( 0.183E-11,   450., 0.0);
+{ 47448} G2P503j +PERO6              =  0.300G1P504k + 0.350GPD500K + 0.350GPD500I                 : ARR( 0.168E-13, -1300., 0.0);
+{ 47449} G2P503j +PERO9              =  0.650G1P504k + 0.350GPD500I                                : ARR( 0.100E-10,     0., 0.0);
+{ 47450} G3P500P +GHO2               =  0.800GPG500K + 0.200GPA500P + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 47451} G3P500P +GNO                =       GPD4005 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 47452} G3P500P +GNO2               =       GPP500E                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 47453} G3P500P +GNO3               =       GPD4005 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 47454} G3P500P +MEPERO             =  0.685GPD4005 + 0.315GPA500P + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47455} G3P500P +PERO1              =  0.800GPD4005 + 0.200GPA500P + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47456} G3P500P +PERO2              =  0.750GPD4005 + 0.250GPA500P + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47457} G3P500P +PERO3              =  0.800GPD4005 + 0.200GPA500P + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47458} G3P500P +PERO5              =  0.650GPD4005 + 0.350GPA500P + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47459} G3P500P +PERO6              =  0.650GPD4005 + 0.350GPA500P + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47460} G3P500P +PERO9              =       GPD4005 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 47461} G1P504k                     =       GCO     +      GDD3001 +      GNO2    +      GCO      : ARR( 0.200E+15,  2436., 0.0);
+{ 47462} GPD500C                     =       G3D500A +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 47463} GPD500C +GHO                =       GPD500H +      GHO2                                   : ARR( 0.205E-10,     0., 0.0);
+{ 47464} GPD500C +GHO                =       G3P4005 +      GCO                                    : ARR( 0.131E-10,     0., 0.0);
+{ 47465} GPD500C +GNO3               =       G3P4005 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 47466} GPD500C+HV               =       G3D500A +      GNO2                                   :  0.100E+01*SUN;
+{ 47467} GPD500C+HV               =       G3P4005 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 47468} GPD500C+HV               =       GPD4002 +      GCO                                    :  0.100E+01*SUN;
+{ 47469} GPD500C+HV               =       GPO3001 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 47470} GPD500D                     =       G3D500B +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 47471} GPD500D +GHO                =       GPD500I +      GHO2                                   : ARR( 0.385E-11,     0., 0.0);
+{ 47472} GPD500D +GHO                =       GPD500M +      GHO2                                   : ARR( 0.385E-11,     0., 0.0);
+{ 47473} GPD500D +GHO                =       G3P500Q                                               : ARR( 0.661E-10,     0., 0.0);
+{ 47474} GPD500D +GNO3               =       G3P500Q +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 47475} GPD500D+HV               =       G3D500B +      GNO2                                   :  0.100E+01*SUN;
+{ 47476} GPD500D+HV               =       G3P3002 +      GDD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 47477} GPD500D+HV               =       GPD4007 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 47478} G3P500Q +GHO2               =  0.800GPG500S + 0.200GPA500W + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 47479} G3P500Q +GNO                =       GPD4007 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 47480} G3P500Q +GNO2               =       GPP500H                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 47481} G3P500Q +GNO3               =       GPD4007 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 47482} G3P500Q +MEPERO             =  0.685GPD4007 + 0.315GPA500W + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47483} G3P500Q +PERO1              =  0.800GPD4007 + 0.200GPA500W + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47484} G3P500Q +PERO2              =  0.750GPD4007 + 0.250GPA500W + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47485} G3P500Q +PERO3              =  0.800GPD4007 + 0.200GPA500W + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47486} G3P500Q +PERO5              =  0.650GPD4007 + 0.350GPA500W + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47487} G3P500Q +PERO6              =  0.650GPD4007 + 0.350GPA500W + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47488} G3P500Q +PERO9              =       GPD4007 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 47489} GPP5001                     =       G3P5002 +      GNO2                                   : ARR( 0.400E+16, 12800., 0.0);
+{ 47490} GPP5001 +GHO                =       GPP500E +      GHO2                                   : ARR( 0.128E-10,     0., 0.0);
+{ 47491} GPP5001 +GHO                =       G2P503k                                               : ARR( 0.144E-11,     0., 0.0);
+{ 47492} GPP5001+HV               =       G3P5002 +      GNO2                                   :  0.200E+01*SUN;
+{ 47493} G2P503k +GNO                =       G1P504l +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 47494} G2P503k +GNO                =       GPP5008                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 47495} G2P503k +GHO2               =       GPP500F                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 47496} G2P503k +GNO3               =       G1P504l +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 47497} G2P503k +MEPERO             =  0.340G1P504l + 0.330GPP500G + 0.330GPP500H                 : ARR( 0.565E-13,  -845., 0.0);
+{ 47498} G2P503k +PERO1              =  0.460G1P504l + 0.270GPP500G + 0.270GPP500H                 : ARR( 0.434E-13,  -900., 0.0);
+{ 47499} G2P503k +PERO2              =  0.400G1P504l + 0.300GPP500G + 0.300GPP500H                 : ARR( 0.162E-13, -1400., 0.0);
+{ 47500} G2P503k +PERO3              =  0.460G1P504l + 0.270GPP500G + 0.270GPP500H                 : ARR( 0.488E-13, -1250., 0.0);
+{ 47501} G2P503k +PERO5              =  0.460G1P504l + 0.270GPP500G + 0.270GPP500H                 : ARR( 0.183E-11,   450., 0.0);
+{ 47502} G2P503k +PERO6              =  0.300G1P504l + 0.350GPP500G + 0.350GPP500H                 : ARR( 0.168E-13, -1300., 0.0);
+{ 47503} G2P503k +PERO9              =  0.650G1P504l + 0.350GPP500H                                : ARR( 0.100E-10,     0., 0.0);
+{ 47504} G1P504l                     =       GPD2000 +      GPD3001 +      GHO2                    : ARR( 0.400E+15,  3099., 0.0);
+{ 47505} GND501U +GHO                =       G3N502N                                               : ARR( 0.218E-10,     0., 0.0);
+{ 47506} GND501U +GHO                =       G3N400U +      GCO                                    : ARR( 0.133E-10,     0., 0.0);
+{ 47507} GND501U +GNO3               =       G3N502N +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 47508} GND501U +GNO3               =       G3N400U +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 47509} GND501U+HV               =       GCO     +      GND400N + 2.000GHO2                    :  0.100E+01*SUN;
+{ 47510} GND501U+HV               =       G1D501X +      GNO2                                   :  0.100E+01*SUN;
+{ 47511} GND501U+HV               =       G3N400U +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 47512} GND501U+HV               =       GND400J +      GCO                                    :  0.100E+01*SUN;
+{ 47513} GND501U+HV               =       GND3002 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 47514} G3N502N +GHO2               =  0.800GGN502h + 0.200GAN502i + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 47515} G3N502N +GNO                =       GND400N +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 47516} G3N502N +GNO2               =       GPN502K                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 47517} G3N502N +GNO3               =       GND400N +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 47518} G3N502N +MEPERO             =  0.685GND400N + 0.315GAN502i + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47519} G3N502N +PERO1              =  0.800GND400N + 0.200GAN502i + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47520} G3N502N +PERO2              =  0.750GND400N + 0.250GAN502i + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47521} G3N502N +PERO3              =  0.800GND400N + 0.200GAN502i + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47522} G3N502N +PERO5              =  0.650GND400N + 0.350GAN502i + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47523} G3N502N +PERO6              =  0.650GND400N + 0.350GAN502i + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47524} G3N502N +PERO9              =       GND400N +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 47525} GDD500D +GHO                =       G3D500H                                               : ARR( 0.692E-10,     0., 0.0);
+{ 47526} GDD500D +GHO                =       G3D3001 + 2.000GCO                                    : ARR( 0.133E-10,     0., 0.0);
+{ 47527} GDD500D +GNO3               =       G3D500H +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 47528} GDD500D +GNO3               =       G3D3001 +      GHNO3   + 2.000GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 47529} GDD500D+HV               =       GCO     +      GDD4005 + 2.000GHO2                    :  0.100E+01*SUN;
+{ 47530} GDD500D+HV               =       G3D3001 +      G3D2000                                :  0.100E+01*SUN;
+{ 47531} GDD500D+HV               =       G3D3001 +      GCO     +      GCO     +      GHO2     :  0.100E+01*SUN;
+{ 47532} GDD500D+HV               =       GDD4004 +      GCO                                    :  0.100E+01*SUN;
+{ 47533} GDD500D+HV               =       GDD3001 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 47534} G3D500H +GHO2               =  0.800GGD500M + 0.200GAD500O + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 47535} G3D500H +GNO                =       GDD4005 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 47536} G3D500H +GNO2               =       GPD500M                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 47537} G3D500H +GNO3               =       GDD4005 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 47538} G3D500H +MEPERO             =  0.685GDD4005 + 0.315GAD500O + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47539} G3D500H +PERO1              =  0.800GDD4005 + 0.200GAD500O + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47540} G3D500H +PERO2              =  0.750GDD4005 + 0.250GAD500O + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47541} G3D500H +PERO3              =  0.800GDD4005 + 0.200GAD500O + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47542} G3D500H +PERO5              =  0.650GDD4005 + 0.350GAD500O + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47543} G3D500H +PERO6              =  0.650GDD4005 + 0.350GAD500O + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47544} G3D500H +PERO9              =       GDD4005 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 47545} GHH502Z +GHO                =       GHD500Z +      GHO                                    : ARR( 0.183E-10,     0., 0.0);
+{ 47546} GHH502Z +GHO                =       GHD500d +      GHO                                    : ARR( 0.470E-10,     0., 0.0);
+{ 47547} GHH502Z +GHO                =       GHH502e +      GHO2                                   : ARR( 0.716E-11,     0., 0.0);
+{ 47548} GHH502Z +GHO                =       G3H503m                                               : ARR( 0.237E-10,     0., 0.0);
+{ 47549} GHH502Z +GNO3               =       G3H503m +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 47550} GHH502Z+HV               =       G1H506S +      GHO                                    :  0.100E+01*SUN;
+{ 47551} GHH502Z+HV               =       G1H5072 +      GHO                                    :  0.100E+01*SUN;
+{ 47552} GHH502Z+HV               =       GHH400B +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 47553} G3H503m +GHO2               =  0.800GGH504P + 0.200GAH501x + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 47554} G3H503m +GNO                =       GHH400B +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 47555} G3H503m +GNO2               =       GPH504Z                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 47556} G3H503m +GNO3               =       GHH400B +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 47557} G3H503m +MEPERO             =  0.685GHH400B + 0.315GAH501x + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47558} G3H503m +PERO1              =  0.800GHH400B + 0.200GAH501x + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47559} G3H503m +PERO2              =  0.750GHH400B + 0.250GAH501x + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47560} G3H503m +PERO3              =  0.800GHH400B + 0.200GAH501x + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47561} G3H503m +PERO5              =  0.650GHH400B + 0.350GAH501x + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47562} G3H503m +PERO6              =  0.650GHH400B + 0.350GAH501x + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47563} G3H503m +PERO9              =       GHH400B +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 47564} GHH502a +GHO                =       GHN505o +      GHO                                    : ARR( 0.169E-10,     0., 0.0);
+{ 47565} GHH502a +GHO                =       GHN506t +      GHO                                    : ARR( 0.529E-11,     0., 0.0);
+{ 47566} GHH502a +GHO                =       G3H503n                                               : ARR( 0.219E-10,     0., 0.0);
+{ 47567} GHH502a +GHO                =       G2H503a                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 47568} GHH502a +GHO                =       G2H503b                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 47569} GHH502a +GNO3               =       G3H503n +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 47570} GHH502a+HV               =       G1H508N +      GHO                                    :  0.100E+01*SUN;
+{ 47571} GHH502a+HV               =       G1H5074 +      GNO2                                   :  0.100E+01*SUN;
+{ 47572} GHH502a+HV               =       G1H509q +      GHO                                    :  0.100E+01*SUN;
+{ 47573} GHH502a+HV               =       GHN400Y +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 47574} G3H503n +GHO2               =  0.800GGH504Q + 0.200GAH504Y + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 47575} G3H503n +GNO                =       GHN400Y +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 47576} G3H503n +GNO2               =       GPH504a                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 47577} G3H503n +GNO3               =       GHN400Y +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 47578} G3H503n +MEPERO             =  0.685GHN400Y + 0.315GAH504Y + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47579} G3H503n +PERO1              =  0.800GHN400Y + 0.200GAH504Y + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47580} G3H503n +PERO2              =  0.750GHN400Y + 0.250GAH504Y + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47581} G3H503n +PERO3              =  0.800GHN400Y + 0.200GAH504Y + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47582} G3H503n +PERO5              =  0.650GHN400Y + 0.350GAH504Y + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47583} G3H503n +PERO6              =  0.650GHN400Y + 0.350GAH504Y + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47584} G3H503n +PERO9              =       GHN400Y +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 47585} G2H503a +GNO                =       G1H508N +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 47586} G2H503a +GNO                =       GHN504q                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 47587} G2H503a +GHO2               =       GHH502a                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 47588} G2H503a +GNO3               =       G1H508N +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 47589} G2H503a +MEPERO             =  0.480G1H508N + 0.260GHN5037 + 0.260GHN505o                 : ARR( 0.164E-12,  -795., 0.0);
+{ 47590} G2H503a +PERO1              =  0.600G1H508N + 0.200GHN5037 + 0.200GHN505o                 : ARR( 0.126E-12,  -850., 0.0);
+{ 47591} G2H503a +PERO2              =  0.560G1H508N + 0.220GHN5037 + 0.220GHN505o                 : ARR( 0.471E-13, -1350., 0.0);
+{ 47592} G2H503a +PERO3              =  0.600G1H508N + 0.200GHN5037 + 0.200GHN505o                 : ARR( 0.142E-12, -1200., 0.0);
+{ 47593} G2H503a +PERO5              =  0.600G1H508N + 0.200GHN5037 + 0.200GHN505o                 : ARR( 0.533E-11,   500., 0.0);
+{ 47594} G2H503a +PERO6              =  0.460G1H508N + 0.270GHN5037 + 0.270GHN505o                 : ARR( 0.488E-13, -1250., 0.0);
+{ 47595} G2H503a +PERO9              =  0.800G1H508N + 0.200GHN505o                                : ARR( 0.100E-10,     0., 0.0);
+{ 47596} G2H503b +GNO                =       G1H509q +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 47597} G2H503b +GNO                =       GHN505g                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 47598} G2H503b +GHO2               =       GHH502a                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 47599} G2H503b +GNO3               =       G1H509q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 47600} G2H503b +MEPERO             =  0.340G1H509q + 0.330GHN503z + 0.330GHN506t                 : ARR( 0.565E-13,  -845., 0.0);
+{ 47601} G2H503b +PERO1              =  0.460G1H509q + 0.270GHN503z + 0.270GHN506t                 : ARR( 0.434E-13,  -900., 0.0);
+{ 47602} G2H503b +PERO2              =  0.400G1H509q + 0.300GHN503z + 0.300GHN506t                 : ARR( 0.162E-13, -1400., 0.0);
+{ 47603} G2H503b +PERO3              =  0.460G1H509q + 0.270GHN503z + 0.270GHN506t                 : ARR( 0.488E-13, -1250., 0.0);
+{ 47604} G2H503b +PERO5              =  0.460G1H509q + 0.270GHN503z + 0.270GHN506t                 : ARR( 0.183E-11,   450., 0.0);
+{ 47605} G2H503b +PERO6              =  0.300G1H509q + 0.350GHN503z + 0.350GHN506t                 : ARR( 0.168E-13, -1300., 0.0);
+{ 47606} G2H503b +PERO9              =  0.650G1H509q + 0.350GHN506t                                : ARR( 0.100E-10,     0., 0.0);
+{ 47607} GHH502b +GHO                =       GHH502F +      GHO                                    : ARR( 0.179E-10,     0., 0.0);
+{ 47608} GHH502b +GHO                =       GHH502d +      GHO                                    : ARR( 0.145E-09,     0., 0.0);
+{ 47609} GHH502b +GHO                =       GHH5035 +      GHO                                    : ARR( 0.279E-10,     0., 0.0);
+{ 47610} GHH502b +GHO                =       G3H503o                                               : ARR( 0.231E-10,     0., 0.0);
+{ 47611} GHH502b +GNO3               =       G3H503o +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 47612} GHH502b+HV               =       G1H508R +      GHO                                    :  0.100E+01*SUN;
+{ 47613} GHH502b+HV               =       G1H5074 +      GHO                                    :  0.100E+01*SUN;
+{ 47614} GHH502b+HV               =       G1H50B3 +      GHO                                    :  0.100E+01*SUN;
+{ 47615} GHH502b+HV               =       GHH400H +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 47616} G3H503o +GHO2               =  0.800GGH504R + 0.200GAH504Z + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 47617} G3H503o +GNO                =       GHH400H +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 47618} G3H503o +GNO2               =       GPH504b                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 47619} G3H503o +GNO3               =       GHH400H +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 47620} G3H503o +MEPERO             =  0.685GHH400H + 0.315GAH504Z + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47621} G3H503o +PERO1              =  0.800GHH400H + 0.200GAH504Z + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47622} G3H503o +PERO2              =  0.750GHH400H + 0.250GAH504Z + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47623} G3H503o +PERO3              =  0.800GHH400H + 0.200GAH504Z + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47624} G3H503o +PERO5              =  0.650GHH400H + 0.350GAH504Z + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47625} G3H503o +PERO6              =  0.650GHH400H + 0.350GAH504Z + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47626} G3H503o +PERO9              =       GHH400H +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 47627} G1H50B3                     =       GHD500i +      GHO                                    : ARR( 0.160E+12,  2186., 0.0);
+{ 47628} GHH502c +GHO                =       GHD501D +      GHO                                    : ARR( 0.172E-10,     0., 0.0);
+{ 47629} GHH502c +GHO                =       GHH5036 +      GHO2                                   : ARR( 0.110E-10,     0., 0.0);
+{ 47630} GHH502c +GHO                =       GHH502d +      GHO2                                   : ARR( 0.350E-10,     0., 0.0);
+{ 47631} GHH502c +GHO                =       GHD501J +      GHO                                    : ARR( 0.269E-10,     0., 0.0);
+{ 47632} GHH502c +GHO                =       G3H503p                                               : ARR( 0.223E-10,     0., 0.0);
+{ 47633} GHH502c +GNO3               =       G3H503p +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 47634} GHH502c+HV               =       G1H508Y +      GHO                                    :  0.100E+01*SUN;
+{ 47635} GHH502c+HV               =       G1H50B4 +      GHO                                    :  0.100E+01*SUN;
+{ 47636} GHH502c+HV               =       GHD400E +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 47637} G3H503p +GHO2               =  0.800GGH504S + 0.200GAH504a + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 47638} G3H503p +GNO                =       GHD400E +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 47639} G3H503p +GNO2               =       GPH504c                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 47640} G3H503p +GNO3               =       GHD400E +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 47641} G3H503p +MEPERO             =  0.685GHD400E + 0.315GAH504a + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47642} G3H503p +PERO1              =  0.800GHD400E + 0.200GAH504a + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47643} G3H503p +PERO2              =  0.750GHD400E + 0.250GAH504a + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47644} G3H503p +PERO3              =  0.800GHD400E + 0.200GAH504a + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47645} G3H503p +PERO5              =  0.650GHD400E + 0.350GAH504a + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47646} G3H503p +PERO6              =  0.650GHD400E + 0.350GAH504a + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47647} G3H503p +PERO9              =       GHD400E +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 47648} G1H50B4                     =       GDD5006 +      GHO                                    : ARR( 0.160E+12,  2186., 0.0);
+{ 47649} G1H50B4                     =       GHD3005 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  4899., 0.0);
+{ 47650} GHH502d +GHO                =       GHD501F +      GHO                                    : ARR( 0.562E-10,     0., 0.0);
+{ 47651} GHH502d +GHO                =       GHD501T +      GHO                                    : ARR( 0.169E-10,     0., 0.0);
+{ 47652} GHH502d +GHO                =       G3H503q                                               : ARR( 0.727E-10,     0., 0.0);
+{ 47653} GHH502d +GNO3               =       G3H503q +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 47654} GHH502d+HV               =       G1H508Z +      GHO                                    :  0.100E+01*SUN;
+{ 47655} GHH502d+HV               =       G3H3003 +      GDD2000 +      GHO                     :  0.100E+01*SUN;
+{ 47656} GHH502d+HV               =       G1H50B5 +      GHO                                    :  0.100E+01*SUN;
+{ 47657} GHH502d+HV               =       GHD400F +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 47658} G3H503q +GHO2               =  0.800GGH504T + 0.200GAH504b + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 47659} G3H503q +GNO                =       GHD400F +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 47660} G3H503q +GNO2               =       GPH504d                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 47661} G3H503q +GNO3               =       GHD400F +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 47662} G3H503q +MEPERO             =  0.685GHD400F + 0.315GAH504b + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47663} G3H503q +PERO1              =  0.800GHD400F + 0.200GAH504b + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47664} G3H503q +PERO2              =  0.750GHD400F + 0.250GAH504b + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47665} G3H503q +PERO3              =  0.800GHD400F + 0.200GAH504b + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47666} G3H503q +PERO5              =  0.650GHD400F + 0.350GAH504b + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47667} G3H503q +PERO6              =  0.650GHD400F + 0.350GAH504b + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 47668} G3H503q +PERO9              =       GHD400F +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 47669} G1H50B5                     =       GDD5008 +      GHO                                    : ARR( 0.160E+12,  3634., 0.0);
+{ 47670} G1H50B5                     =       G3H3003 +      GDD2000                                : ARR( 0.200E+15,  4916., 0.0);
+{ 47671} GGH501k +GHO                =       GGH501M +      GHO                                    : ARR( 0.165E-10,     0., 0.0);
+{ 47672} GGH501k +GHO                =       GGH501w +      GHO2                                   : ARR( 0.106E-10,     0., 0.0);
+{ 47673} GGH501k +GHO                =       GGH501c +      GHO                                    : ARR( 0.258E-10,     0., 0.0);
+{ 47674} GGH501k +GHO                =       G2G502l                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 47675} GGH501k +GHO                =       G2G502m                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 47676} GGH501k +GHO                =       G3H501P                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 47677} GGH501k+HV               =       G1G501L +      GHO                                    :  0.100E+01*SUN;
+{ 47678} GGH501k+HV               =       G1G501z +      GHO                                    :  0.100E+01*SUN;
+{ 47679} GGH501k+HV               =       GHD4003 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 47680} G2G502l +GNO                =       G1G501L +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 47681} G2G502l +GNO                =       GGH500D                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 47682} G2G502l +GHO2               =       GGH501k                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 47683} G2G502l +GNO3               =       G1G501L +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 47684} G2G502l +MEPERO             =  0.480G1G501L + 0.260GGH500A + 0.260GGH501M                 : ARR( 0.164E-12,  -795., 0.0);
+{ 47685} G2G502l +PERO1              =  0.600G1G501L + 0.200GGH500A + 0.200GGH501M                 : ARR( 0.126E-12,  -850., 0.0);
+{ 47686} G2G502l +PERO2              =  0.560G1G501L + 0.220GGH500A + 0.220GGH501M                 : ARR( 0.471E-13, -1350., 0.0);
+{ 47687} G2G502l +PERO3              =  0.600G1G501L + 0.200GGH500A + 0.200GGH501M                 : ARR( 0.142E-12, -1200., 0.0);
+{ 47688} G2G502l +PERO5              =  0.600G1G501L + 0.200GGH500A + 0.200GGH501M                 : ARR( 0.533E-11,   500., 0.0);
+{ 47689} G2G502l +PERO6              =  0.460G1G501L + 0.270GGH500A + 0.270GGH501M                 : ARR( 0.488E-13, -1250., 0.0);
+{ 47690} G2G502l +PERO9              =  0.800G1G501L + 0.200GGH501M                                : ARR( 0.100E-10,     0., 0.0);
+{ 47691} G2G502m +GNO                =       G1G501z +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 47692} G2G502m +GNO                =       GGH500e                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 47693} G2G502m +GHO2               =       GGH501k                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 47694} G2G502m +GNO3               =       G1G501z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 47695} G2G502m +MEPERO             =  0.340G1G501z + 0.330GGH500B + 0.330GGH501c                 : ARR( 0.565E-13,  -845., 0.0);
+{ 47696} G2G502m +PERO1              =  0.460G1G501z + 0.270GGH500B + 0.270GGH501c                 : ARR( 0.434E-13,  -900., 0.0);
+{ 47697} G2G502m +PERO2              =  0.400G1G501z + 0.300GGH500B + 0.300GGH501c                 : ARR( 0.162E-13, -1400., 0.0);
+{ 47698} G2G502m +PERO3              =  0.460G1G501z + 0.270GGH500B + 0.270GGH501c                 : ARR( 0.488E-13, -1250., 0.0);
+{ 47699} G2G502m +PERO5              =  0.460G1G501z + 0.270GGH500B + 0.270GGH501c                 : ARR( 0.183E-11,   450., 0.0);
+{ 47700} G2G502m +PERO6              =  0.300G1G501z + 0.350GGH500B + 0.350GGH501c                 : ARR( 0.168E-13, -1300., 0.0);
+{ 47701} G2G502m +PERO9              =  0.650G1G501z + 0.350GGH501c                                : ARR( 0.100E-10,     0., 0.0);
+{ 47702} GAH501s +GHO                =       GAH501k +      GHO                                    : ARR( 0.193E-10,     0., 0.0);
+{ 47703} GAH501s +GHO                =       GAH5024 +      GHO2                                   : ARR( 0.107E-10,     0., 0.0);
+{ 47704} GAH501s +GHO                =       GAH501X +      GHO                                    : ARR( 0.167E-10,     0., 0.0);
+{ 47705} GAH501s +GHO                =       G2A503i                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 47706} GAH501s +GHO                =       G2A503j                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 47707} GAH501s+HV               =       G1A502Y +      GHO                                    :  0.100E+01*SUN;
+{ 47708} GAH501s+HV               =       G1A501Q +      GHO                                    :  0.100E+01*SUN;
+{ 47709} G2A503i +GNO                =       G1A502Y +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 47710} G2A503i +GNO                =       GAH500j                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 47711} G2A503i +GHO2               =       GAH501s                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 47712} G2A503i +GNO3               =       G1A502Y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 47713} G2A503i +MEPERO             =  0.340G1A502Y + 0.330GAH500B + 0.330GAH501k                 : ARR( 0.565E-13,  -845., 0.0);
+{ 47714} G2A503i +PERO1              =  0.460G1A502Y + 0.270GAH500B + 0.270GAH501k                 : ARR( 0.434E-13,  -900., 0.0);
+{ 47715} G2A503i +PERO2              =  0.400G1A502Y + 0.300GAH500B + 0.300GAH501k                 : ARR( 0.162E-13, -1400., 0.0);
+{ 47716} G2A503i +PERO3              =  0.460G1A502Y + 0.270GAH500B + 0.270GAH501k                 : ARR( 0.488E-13, -1250., 0.0);
+{ 47717} G2A503i +PERO5              =  0.460G1A502Y + 0.270GAH500B + 0.270GAH501k                 : ARR( 0.183E-11,   450., 0.0);
+{ 47718} G2A503i +PERO6              =  0.300G1A502Y + 0.350GAH500B + 0.350GAH501k                 : ARR( 0.168E-13, -1300., 0.0);
+{ 47719} G2A503i +PERO9              =  0.650G1A502Y + 0.350GAH501k                                : ARR( 0.100E-10,     0., 0.0);
+{ 47720} G2A503j +GNO                =       G1A501Q +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 47721} G2A503j +GNO                =       GAH500D                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 47722} G2A503j +GHO2               =       GAH501s                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 47723} G2A503j +GNO3               =       G1A501Q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 47724} G2A503j +MEPERO             =  0.480G1A501Q + 0.260GAH500A + 0.260GAH501X                 : ARR( 0.164E-12,  -795., 0.0);
+{ 47725} G2A503j +PERO1              =  0.600G1A501Q + 0.200GAH500A + 0.200GAH501X                 : ARR( 0.126E-12,  -850., 0.0);
+{ 47726} G2A503j +PERO2              =  0.560G1A501Q + 0.220GAH500A + 0.220GAH501X                 : ARR( 0.471E-13, -1350., 0.0);
+{ 47727} G2A503j +PERO3              =  0.600G1A501Q + 0.200GAH500A + 0.200GAH501X                 : ARR( 0.142E-12, -1200., 0.0);
+{ 47728} G2A503j +PERO5              =  0.600G1A501Q + 0.200GAH500A + 0.200GAH501X                 : ARR( 0.533E-11,   500., 0.0);
+{ 47729} G2A503j +PERO6              =  0.460G1A501Q + 0.270GAH500A + 0.270GAH501X                 : ARR( 0.488E-13, -1250., 0.0);
+{ 47730} G2A503j +PERO9              =  0.800G1A501Q + 0.200GAH501X                                : ARR( 0.100E-10,     0., 0.0);
+{ 47731} GPH501q                     =       G3H501P +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 47732} GPH501q +GHO                =       GPH501Y +      GHO                                    : ARR( 0.165E-10,     0., 0.0);
+{ 47733} GPH501q +GHO                =       GPH5021 +      GHO2                                   : ARR( 0.106E-10,     0., 0.0);
+{ 47734} GPH501q +GHO                =       GPH501i +      GHO                                    : ARR( 0.258E-10,     0., 0.0);
+{ 47735} GPH501q +GHO                =       G2P503l                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 47736} GPH501q +GHO                =       G2P503m                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 47737} GPH501q+HV               =       G1P501W +      GHO                                    :  0.100E+01*SUN;
+{ 47738} GPH501q+HV               =       G1P502j +      GHO                                    :  0.100E+01*SUN;
+{ 47739} GPH501q+HV               =       G3H501P +      GNO2                                   :  0.100E+01*SUN;
+{ 47740} G2P503l +GNO                =       G1P501W +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 47741} G2P503l +GNO                =       GPH500D                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 47742} G2P503l +GHO2               =       GPH501q                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 47743} G2P503l +GNO3               =       G1P501W +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 47744} G2P503l +MEPERO             =  0.480G1P501W + 0.260GPH500A + 0.260GPH501Y                 : ARR( 0.164E-12,  -795., 0.0);
+{ 47745} G2P503l +PERO1              =  0.600G1P501W + 0.200GPH500A + 0.200GPH501Y                 : ARR( 0.126E-12,  -850., 0.0);
+{ 47746} G2P503l +PERO2              =  0.560G1P501W + 0.220GPH500A + 0.220GPH501Y                 : ARR( 0.471E-13, -1350., 0.0);
+{ 47747} G2P503l +PERO3              =  0.600G1P501W + 0.200GPH500A + 0.200GPH501Y                 : ARR( 0.142E-12, -1200., 0.0);
+{ 47748} G2P503l +PERO5              =  0.600G1P501W + 0.200GPH500A + 0.200GPH501Y                 : ARR( 0.533E-11,   500., 0.0);
+{ 47749} G2P503l +PERO6              =  0.460G1P501W + 0.270GPH500A + 0.270GPH501Y                 : ARR( 0.488E-13, -1250., 0.0);
+{ 47750} G2P503l +PERO9              =  0.800G1P501W + 0.200GPH501Y                                : ARR( 0.100E-10,     0., 0.0);
+{ 47751} G2P503m +GNO                =       G1P502j +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 47752} G2P503m +GNO                =       GPH500j                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 47753} G2P503m +GHO2               =       GPH501q                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 47754} G2P503m +GNO3               =       G1P502j +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 47755} G2P503m +MEPERO             =  0.340G1P502j + 0.330GPH500B + 0.330GPH501i                 : ARR( 0.565E-13,  -845., 0.0);
+{ 47756} G2P503m +PERO1              =  0.460G1P502j + 0.270GPH500B + 0.270GPH501i                 : ARR( 0.434E-13,  -900., 0.0);
+{ 47757} G2P503m +PERO2              =  0.400G1P502j + 0.300GPH500B + 0.300GPH501i                 : ARR( 0.162E-13, -1400., 0.0);
+{ 47758} G2P503m +PERO3              =  0.460G1P502j + 0.270GPH500B + 0.270GPH501i                 : ARR( 0.488E-13, -1250., 0.0);
+{ 47759} G2P503m +PERO5              =  0.460G1P502j + 0.270GPH500B + 0.270GPH501i                 : ARR( 0.183E-11,   450., 0.0);
+{ 47760} G2P503m +PERO6              =  0.300G1P502j + 0.350GPH500B + 0.350GPH501i                 : ARR( 0.168E-13, -1300., 0.0);
+{ 47761} G2P503m +PERO9              =  0.650G1P502j + 0.350GPH501i                                : ARR( 0.100E-10,     0., 0.0);
+{ 47762} GGH501l +GHO                =       GGN500e +      GHO                                    : ARR( 0.524E-11,     0., 0.0);
+{ 47763} GGH501l +GHO                =       G2G502n                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 47764} GGH501l +GHO                =       G3H501Q                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 47765} GGH501l+HV               =       G1G503s +      GNO2                                   :  0.100E+01*SUN;
+{ 47766} GGH501l+HV               =       G1G501r +      GHO                                    :  0.100E+01*SUN;
+{ 47767} GGH501l+HV               =       GND4005 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 47768} G2G502n +GNO                =       G1G501r +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 47769} G2G502n +GNO                =       GGN500c                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 47770} G2G502n +GHO2               =       GGH501l                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 47771} G2G502n +GNO3               =       G1G501r +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 47772} G2G502n +MEPERO             =  0.340G1G501r + 0.330GGN500d + 0.330GGN500e                 : ARR( 0.565E-13,  -845., 0.0);
+{ 47773} G2G502n +PERO1              =  0.460G1G501r + 0.270GGN500d + 0.270GGN500e                 : ARR( 0.434E-13,  -900., 0.0);
+{ 47774} G2G502n +PERO2              =  0.400G1G501r + 0.300GGN500d + 0.300GGN500e                 : ARR( 0.162E-13, -1400., 0.0);
+{ 47775} G2G502n +PERO3              =  0.460G1G501r + 0.270GGN500d + 0.270GGN500e                 : ARR( 0.488E-13, -1250., 0.0);
+{ 47776} G2G502n +PERO5              =  0.460G1G501r + 0.270GGN500d + 0.270GGN500e                 : ARR( 0.183E-11,   450., 0.0);
+{ 47777} G2G502n +PERO6              =  0.300G1G501r + 0.350GGN500d + 0.350GGN500e                 : ARR( 0.168E-13, -1300., 0.0);
+{ 47778} G2G502n +PERO9              =  0.650G1G501r + 0.350GGN500e                                : ARR( 0.100E-10,     0., 0.0);
+{ 47779} G1G503s                     =       GD03000 +      GGD2000 +      GHO                     : ARR( 0.200E+15,  4883., 0.0);
+{ 47780} GGH501m +GHO                =       GGH500R +      GHO                                    : ARR( 0.487E-10,     0., 0.0);
+{ 47781} GGH501m +GHO                =       GGH500d +      GHO                                    : ARR( 0.297E-10,     0., 0.0);
+{ 47782} GGH501m+HV               =       G1G503s +      GHO                                    :  0.100E+01*SUN;
+{ 47783} GGH501m+HV               =       G1G501u +      GHO                                    :  0.100E+01*SUN;
+{ 47784} GGH501m+HV               =       GHD4005 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 47785} GPH501r                     =       G3H501R +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 47786} GPH501r +GHO                =       GPH500W +      GHO                                    : ARR( 0.465E-10,     0., 0.0);
+{ 47787} GPH501r +GHO                =       GPH500i +      GHO                                    : ARR( 0.284E-10,     0., 0.0);
+{ 47788} GPH501r+HV               =       G1P501t +      GHO                                    :  0.100E+01*SUN;
+{ 47789} GPH501r+HV               =       G1P502f +      GHO                                    :  0.100E+01*SUN;
+{ 47790} GPH501r+HV               =       G3H501R +      GNO2                                   :  0.100E+01*SUN;
+{ 47791} GH03001 +GHO                =       GK03000 +      GHO                                    : ARR( 0.275E-10,     0., 0.0);
+{ 47792} GH03001 +GHO                =       G203001                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 47793} GH03001+HV               =       G103001 +      GHO                                    :  0.100E+01*SUN;
+{ 47794} GHH502e +GHO                =       GHD5018 +      GHO                                    : ARR( 0.169E-10,     0., 0.0);
+{ 47795} GHH502e +GHO                =       GHD500r +      GHO                                    : ARR( 0.137E-09,     0., 0.0);
+{ 47796} GHH502e +GHO                =       G3H400S +      GCO                                    : ARR( 0.133E-10,     0., 0.0);
+{ 47797} GHH502e +GNO3               =       G3H400S +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 47798} GHH502e+HV               =       G1H504u +      GHO                                    :  0.100E+01*SUN;
+{ 47799} GHH502e+HV               =       G1H5077 +      GHO                                    :  0.100E+01*SUN;
+{ 47800} GHH502e+HV               =       G3H400S +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 47801} GHH502e+HV               =       GHH400B +      GCO                                    :  0.100E+01*SUN;
+{ 47802} GHH502e+HV               =       GHH3000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 47803} GGH501n +GHO                =       GGN500q +      GHO                                    : ARR( 0.164E-10,     0., 0.0);
+{ 47804} GGH501n +GHO                =       GGH504U +      GHO2                                   : ARR( 0.128E-11,     0., 0.0);
+{ 47805} GGH501n +GHO                =       G2G501Z                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 47806} GGH501n +GHO                =       G3H501W                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 47807} GGH501n+HV               =       G1G501t +      GHO                                    :  0.100E+01*SUN;
+{ 47808} GGH501n+HV               =       G1G503t +      GNO2                                   :  0.100E+01*SUN;
+{ 47809} GGH501n+HV               =       GHN400M +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 47810} G1G503t                     =       GHD3000 +      GGD2000 +      GHO2                    : ARR( 0.200E+15,  3675., 0.0);
+{ 47811} GGH501o +GHO                =       GGH500s +      GHO                                    : ARR( 0.192E-10,     0., 0.0);
+{ 47812} GGH501o +GHO                =       GGH501p +      GHO                                    : ARR( 0.492E-10,     0., 0.0);
+{ 47813} GGH501o +GHO                =       GGH504W +      GHO2                                   : ARR( 0.750E-11,     0., 0.0);
+{ 47814} GGH501o+HV               =       G1G501w +      GHO                                    :  0.100E+01*SUN;
+{ 47815} GGH501o+HV               =       G1G503t +      GHO                                    :  0.100E+01*SUN;
+{ 47816} GGH501o+HV               =       GHH400A +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 47817} GAH501t +GHO                =       GAH504c +      GHO2                                   : ARR( 0.479E-11,     0., 0.0);
+{ 47818} GAH501t +GHO                =       GAH501v +      GHO                                    : ARR( 0.424E-10,     0., 0.0);
+{ 47819} GAH501t +GHO                =       GAH500y +      GHO                                    : ARR( 0.166E-10,     0., 0.0);
+{ 47820} GAH501t +GHO                =       G2A501H                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 47821} GAH501t +GHO                =       G2A5022                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 47822} GAH501t+HV               =       G1A501W +      GHO                                    :  0.100E+01*SUN;
+{ 47823} GAH501t+HV               =       G1A502Q +      GHO                                    :  0.100E+01*SUN;
+{ 47824} GPH501s                     =       G3H501X +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 47825} GPH501s +GHO                =       GPH500z +      GHO                                    : ARR( 0.183E-10,     0., 0.0);
+{ 47826} GPH501s +GHO                =       GPH501t +      GHO                                    : ARR( 0.469E-10,     0., 0.0);
+{ 47827} GPH501s +GHO                =       GPH504e +      GHO2                                   : ARR( 0.715E-11,     0., 0.0);
+{ 47828} GPH501s+HV               =       G1P502h +      GHO                                    :  0.100E+01*SUN;
+{ 47829} GPH501s+HV               =       G1P5022 +      GHO                                    :  0.100E+01*SUN;
+{ 47830} GPH501s+HV               =       G3H501X +      GNO2                                   :  0.100E+01*SUN;
+{ 47831} GHD501L +GHO                =       GDD5009 +      GHO                                    : ARR( 0.161E-10,     0., 0.0);
+{ 47832} GHD501L +GHO                =       G2H503c                                               : ARR( 0.450E-11,     0., 0.0);
+{ 47833} GHD501L +GHO                =       GHD501Q +      GHO2                                   : ARR( 0.630E-11,     0., 0.0);
+{ 47834} GHD501L +GHO                =       G3H400F +      GCO                                    : ARR( 0.127E-10,     0., 0.0);
+{ 47835} GHD501L +GHO                =       G2D500o                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 47836} GHD501L +GNO3               =       G3H400F +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 47837} GHD501L+HV               =       G1D500r +      GHO                                    :  0.100E+01*SUN;
+{ 47838} GHD501L+HV               =       G3H400F +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 47839} GHD501L+HV               =       GHD400B +      GCO                                    :  0.100E+01*SUN;
+{ 47840} GHD501L+HV               =       GHO3001 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 47841} G2H503c +GNO                =       G1H50B6 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 47842} G2H503c +GNO                =       GHN506e                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 47843} G2H503c +GHO2               =       GHH5037                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 47844} G2H503c +GNO3               =       G1H50B6 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 47845} G2H503c +MEPERO             =  0.340G1H50B6 + 0.330GHD501J + 0.330GHD501O                 : ARR( 0.565E-13,  -845., 0.0);
+{ 47846} G2H503c +PERO1              =  0.460G1H50B6 + 0.270GHD501J + 0.270GHD501O                 : ARR( 0.434E-13,  -900., 0.0);
+{ 47847} G2H503c +PERO2              =  0.400G1H50B6 + 0.300GHD501J + 0.300GHD501O                 : ARR( 0.162E-13, -1400., 0.0);
+{ 47848} G2H503c +PERO3              =  0.460G1H50B6 + 0.270GHD501J + 0.270GHD501O                 : ARR( 0.488E-13, -1250., 0.0);
+{ 47849} G2H503c +PERO5              =  0.460G1H50B6 + 0.270GHD501J + 0.270GHD501O                 : ARR( 0.183E-11,   450., 0.0);
+{ 47850} G2H503c +PERO6              =  0.300G1H50B6 + 0.350GHD501J + 0.350GHD501O                 : ARR( 0.168E-13, -1300., 0.0);
+{ 47851} G2H503c +PERO9              =  0.650G1H50B6 + 0.350GHD501O                                : ARR( 0.100E-10,     0., 0.0);
+{ 47852} G2D500o +GNO                =       G1D500r +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 47853} G2D500o +GNO                =       GND500h                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 47854} G2D500o +GHO2               =       GHD501L                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 47855} G2D500o +GNO3               =       G1D500r +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 47856} G2D500o +MEPERO             =  0.480G1D500r + 0.260GDK500J + 0.260GDD5009                 : ARR( 0.146E-12,  -445., 0.0);
+{ 47857} G2D500o +PERO1              =  0.600G1D500r + 0.200GDK500J + 0.200GDD5009                 : ARR( 0.112E-12,  -500., 0.0);
+{ 47858} G2D500o +PERO2              =  0.560G1D500r + 0.220GDK500J + 0.220GDD5009                 : ARR( 0.418E-13, -1000., 0.0);
+{ 47859} G2D500o +PERO3              =  0.600G1D500r + 0.200GDK500J + 0.200GDD5009                 : ARR( 0.126E-12,  -850., 0.0);
+{ 47860} G2D500o +PERO5              =  0.600G1D500r + 0.200GDK500J + 0.200GDD5009                 : ARR( 0.473E-11,   850., 0.0);
+{ 47861} G2D500o +PERO6              =  0.460G1D500r + 0.270GDK500J + 0.270GDD5009                 : ARR( 0.434E-13,  -900., 0.0);
+{ 47862} G2D500o +PERO9              =  0.800G1D500r + 0.200GDD5009                                : ARR( 0.100E-10,     0., 0.0);
+{ 47863} G1H50B6                     =       GHD2000 +      GDD3002 +      GHO2                    : ARR( 0.200E+15,  3347., 0.0);
+{ 47864} GAH501u +GHO                =       GAH504d +      GHO2                                   : ARR( 0.495E-11,     0., 0.0);
+{ 47865} GAH501u +GHO                =       GAH501v +      GHO2                                   : ARR( 0.110E-10,     0., 0.0);
+{ 47866} GAH501u +GHO                =       GAD5008 +      GHO                                    : ARR( 0.171E-10,     0., 0.0);
+{ 47867} GAH501u +GHO                =       G2A5024                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 47868} GAH501u+HV               =       G1A502T +      GHO                                    :  0.100E+01*SUN;
+{ 47869} GGH501p +GHO                =       GGD5005 +      GHO                                    : ARR( 0.518E-10,     0., 0.0);
+{ 47870} GGH501p +GHO                =       GGH502D +      GHO2                                   : ARR( 0.389E-11,     0., 0.0);
+{ 47871} GGH501p +GHO                =       G2G501Q                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 47872} GGH501p +GHO                =       G3H501Z                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 47873} GGH501p+HV               =       G1G501h +      GHO                                    :  0.100E+01*SUN;
+{ 47874} GGH501p+HV               =       G3H3000 +      GGD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 47875} GGH501p+HV               =       GHD400D +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 47876} GAH501v +GHO                =       GAD5005 +      GHO                                    : ARR( 0.551E-10,     0., 0.0);
+{ 47877} GAH501v +GHO                =       G2A501l                                               : ARR( 0.205E-11,  -190., 0.0);
+{ 47878} GAH501v+HV               =       G3A3002 +      G2H2000                                :  0.100E+01*SUN;
+{ 47879} GAH501v+HV               =       G1A5024 +      GHO                                    :  0.100E+01*SUN;
+{ 47880} GPH501t                     =       G3H501Z +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 47881} GPH501t +GHO                =       GPD5005 +      GHO                                    : ARR( 0.519E-10,     0., 0.0);
+{ 47882} GPH501t +GHO                =       GPH502Z +      GHO2                                   : ARR( 0.390E-11,     0., 0.0);
+{ 47883} GPH501t +GHO                =       G2P501w                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 47884} GPH501t+HV               =       G1P502I +      GHO                                    :  0.100E+01*SUN;
+{ 47885} GPH501t+HV               =       G3H3000 +      GPD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 47886} GPH501t+HV               =       G3H501Z +      GNO2                                   :  0.100E+01*SUN;
+{ 47887} GGH501q +GHO                =       GGD5008 +      GHO                                    : ARR( 0.166E-10,     0., 0.0);
+{ 47888} GGH501q +GHO                =       G2G502o                                               : ARR( 0.462E-11,     0., 0.0);
+{ 47889} GGH501q +GHO                =       G2G502p                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 47890} GGH501q +GHO                =       G3H503r                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 47891} GGH501q+HV               =       G1G500p +      GHO                                    :  0.100E+01*SUN;
+{ 47892} GGH501q+HV               =       GAH4006 +      GCO2                                   :  0.100E+01*SUN;
+{ 47893} G2G502o +GNO                =       G1G503u +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 47894} G2G502o +GNO                =       GGH502n                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 47895} G2G502o +GHO2               =       GGH504X                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 47896} G2G502o +GNO3               =       G1G503u +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 47897} G2G502o +MEPERO             =  0.340G1G503u + 0.330GGH501c + 0.330GGH501x                 : ARR( 0.565E-13,  -845., 0.0);
+{ 47898} G2G502o +PERO1              =  0.460G1G503u + 0.270GGH501c + 0.270GGH501x                 : ARR( 0.434E-13,  -900., 0.0);
+{ 47899} G2G502o +PERO2              =  0.400G1G503u + 0.300GGH501c + 0.300GGH501x                 : ARR( 0.162E-13, -1400., 0.0);
+{ 47900} G2G502o +PERO3              =  0.460G1G503u + 0.270GGH501c + 0.270GGH501x                 : ARR( 0.488E-13, -1250., 0.0);
+{ 47901} G2G502o +PERO5              =  0.460G1G503u + 0.270GGH501c + 0.270GGH501x                 : ARR( 0.183E-11,   450., 0.0);
+{ 47902} G2G502o +PERO6              =  0.300G1G503u + 0.350GGH501c + 0.350GGH501x                 : ARR( 0.168E-13, -1300., 0.0);
+{ 47903} G2G502o +PERO9              =  0.650G1G503u + 0.350GGH501x                                : ARR( 0.100E-10,     0., 0.0);
+{ 47904} G2G502p +GNO                =       G1G500p +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 47905} G2G502p +GNO                =       GGN500C                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 47906} G2G502p +GHO2               =       GGH501q                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 47907} G2G502p +GNO3               =       G1G500p +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 47908} G2G502p +MEPERO             =  0.480G1G500p + 0.260GGK5005 + 0.260GGD5008                 : ARR( 0.146E-12,  -445., 0.0);
+{ 47909} G2G502p +PERO1              =  0.600G1G500p + 0.200GGK5005 + 0.200GGD5008                 : ARR( 0.112E-12,  -500., 0.0);
+{ 47910} G2G502p +PERO2              =  0.560G1G500p + 0.220GGK5005 + 0.220GGD5008                 : ARR( 0.418E-13, -1000., 0.0);
+{ 47911} G2G502p +PERO3              =  0.600G1G500p + 0.200GGK5005 + 0.200GGD5008                 : ARR( 0.126E-12,  -850., 0.0);
+{ 47912} G2G502p +PERO5              =  0.600G1G500p + 0.200GGK5005 + 0.200GGD5008                 : ARR( 0.473E-11,   850., 0.0);
+{ 47913} G2G502p +PERO6              =  0.460G1G500p + 0.270GGK5005 + 0.270GGD5008                 : ARR( 0.434E-13,  -900., 0.0);
+{ 47914} G2G502p +PERO9              =  0.800G1G500p + 0.200GGD5008                                : ARR( 0.100E-10,     0., 0.0);
+{ 47915} G3H503r +GHO2               =  0.800GGH501q + 0.200GAH501w + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 47916} G3H503r +GNO                =       G3H4005 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 47917} G3H503r +GNO2               =       GPH501u                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 47918} G3H503r +GNO3               =       G3H4005 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 47919} G3H503r +MEPERO             =  0.685G3H4005 + 0.315GAH501w + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 47920} G3H503r +PERO1              =  0.800G3H4005 + 0.200GAH501w + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 47921} G3H503r +PERO2              =  0.750G3H4005 + 0.250GAH501w + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 47922} G3H503r +PERO3              =  0.800G3H4005 + 0.200GAH501w + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 47923} G3H503r +PERO5              =  0.650G3H4005 + 0.350GAH501w + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 47924} G3H503r +PERO6              =  0.650G3H4005 + 0.350GAH501w + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 47925} G3H503r +PERO9              =       G3H4005 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 47926} G1G503u                     =       GCH2O   +      GGD4005 +      GHO                     : ARR( 0.200E+15,  6757., 0.0);
+{ 47927} G1G503u                     =       GHD2000 +      G2G3005                                : ARR( 0.200E+15,  6868., 0.0);
+{ 47928} GAH501w +GHO                =       G2A503k                                               : ARR( 0.474E-11,     0., 0.0);
+{ 47929} GAH501w +GHO                =       GAD500A +      GHO                                    : ARR( 0.170E-10,     0., 0.0);
+{ 47930} GAH501w +GHO                =       G2A503l                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 47931} GAH501w+HV               =       GHD4001 +      GCO2                                   :  0.100E+01*SUN;
+{ 47932} GAH501w+HV               =       G1A500w +      GHO                                    :  0.100E+01*SUN;
+{ 47933} G2A503k +GNO                =       G1A504h +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 47934} G2A503k +GNO                =       GAH502x                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 47935} G2A503k +GHO2               =       GAH504e                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 47936} G2A503k +GNO3               =       G1A504h +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 47937} G2A503k +MEPERO             =  0.340G1A504h + 0.330GAH501k + 0.330GAH5025                 : ARR( 0.565E-13,  -845., 0.0);
+{ 47938} G2A503k +PERO1              =  0.460G1A504h + 0.270GAH501k + 0.270GAH5025                 : ARR( 0.434E-13,  -900., 0.0);
+{ 47939} G2A503k +PERO2              =  0.400G1A504h + 0.300GAH501k + 0.300GAH5025                 : ARR( 0.162E-13, -1400., 0.0);
+{ 47940} G2A503k +PERO3              =  0.460G1A504h + 0.270GAH501k + 0.270GAH5025                 : ARR( 0.488E-13, -1250., 0.0);
+{ 47941} G2A503k +PERO5              =  0.460G1A504h + 0.270GAH501k + 0.270GAH5025                 : ARR( 0.183E-11,   450., 0.0);
+{ 47942} G2A503k +PERO6              =  0.300G1A504h + 0.350GAH501k + 0.350GAH5025                 : ARR( 0.168E-13, -1300., 0.0);
+{ 47943} G2A503k +PERO9              =  0.650G1A504h + 0.350GAH5025                                : ARR( 0.100E-10,     0., 0.0);
+{ 47944} G2A503l +GNO                =       G1A500w +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 47945} G2A503l +GNO                =       GAN500C                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 47946} G2A503l +GHO2               =       GAH501w                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 47947} G2A503l +GNO3               =       G1A500w +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 47948} G2A503l +MEPERO             =  0.480G1A500w + 0.260GAK5005 + 0.260GAD500A                 : ARR( 0.146E-12,  -445., 0.0);
+{ 47949} G2A503l +PERO1              =  0.600G1A500w + 0.200GAK5005 + 0.200GAD500A                 : ARR( 0.112E-12,  -500., 0.0);
+{ 47950} G2A503l +PERO2              =  0.560G1A500w + 0.220GAK5005 + 0.220GAD500A                 : ARR( 0.418E-13, -1000., 0.0);
+{ 47951} G2A503l +PERO3              =  0.600G1A500w + 0.200GAK5005 + 0.200GAD500A                 : ARR( 0.126E-12,  -850., 0.0);
+{ 47952} G2A503l +PERO5              =  0.600G1A500w + 0.200GAK5005 + 0.200GAD500A                 : ARR( 0.473E-11,   850., 0.0);
+{ 47953} G2A503l +PERO6              =  0.460G1A500w + 0.270GAK5005 + 0.270GAD500A                 : ARR( 0.434E-13,  -900., 0.0);
+{ 47954} G2A503l +PERO9              =  0.800G1A500w + 0.200GAD500A                                : ARR( 0.100E-10,     0., 0.0);
+{ 47955} G1A504h                     =       G2A3006 +      GHD2000                                : ARR( 0.200E+15,  6868., 0.0);
+{ 47956} G1A504h                     =       GAD4005 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  6757., 0.0);
+{ 47957} GAH501x +GHO                =       GAH504e +      GHO2                                   : ARR( 0.479E-11,     0., 0.0);
+{ 47958} GAH501x +GHO                =       GAH501g +      GHO                                    : ARR( 0.424E-10,     0., 0.0);
+{ 47959} GAH501x +GHO                =       GAH501K +      GHO                                    : ARR( 0.166E-10,     0., 0.0);
+{ 47960} GAH501x +GHO                =       G2A501I                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 47961} GAH501x +GHO                =       G2A503m                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 47962} GAH501x+HV               =       G1A501X +      GHO                                    :  0.100E+01*SUN;
+{ 47963} GAH501x+HV               =       G1A504S +      GHO                                    :  0.100E+01*SUN;
+{ 47964} G2A503m +GNO                =       G1A504S +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 47965} G2A503m +GNO                =       GAH501Z                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 47966} G2A503m +GHO2               =       GAH501x                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 47967} G2A503m +GNO3               =       G1A504S +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 47968} G2A503m +MEPERO             =  0.480G1A504S + 0.260GAH501I + 0.260GAH501K                 : ARR( 0.164E-12,  -795., 0.0);
+{ 47969} G2A503m +PERO1              =  0.600G1A504S + 0.200GAH501I + 0.200GAH501K                 : ARR( 0.126E-12,  -850., 0.0);
+{ 47970} G2A503m +PERO2              =  0.560G1A504S + 0.220GAH501I + 0.220GAH501K                 : ARR( 0.471E-13, -1350., 0.0);
+{ 47971} G2A503m +PERO3              =  0.600G1A504S + 0.200GAH501I + 0.200GAH501K                 : ARR( 0.142E-12, -1200., 0.0);
+{ 47972} G2A503m +PERO5              =  0.600G1A504S + 0.200GAH501I + 0.200GAH501K                 : ARR( 0.533E-11,   500., 0.0);
+{ 47973} G2A503m +PERO6              =  0.460G1A504S + 0.270GAH501I + 0.270GAH501K                 : ARR( 0.488E-13, -1250., 0.0);
+{ 47974} G2A503m +PERO9              =  0.800G1A504S + 0.200GAH501K                                : ARR( 0.100E-10,     0., 0.0);
+{ 47975} GPH501u                     =       G3H503r +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 47976} GPH501u +GHO                =       GPD5008 +      GHO                                    : ARR( 0.167E-10,     0., 0.0);
+{ 47977} GPH501u +GHO                =       G2P503n                                               : ARR( 0.464E-11,     0., 0.0);
+{ 47978} GPH501u +GHO                =       G2P503o                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 47979} GPH501u+HV               =       G1P501A +      GHO                                    :  0.100E+01*SUN;
+{ 47980} GPH501u+HV               =       G3H4005 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 47981} G2P503n +GNO                =       G1P504m +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 47982} G2P503n +GNO                =       GPH502j                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 47983} G2P503n +GHO2               =       GPH504f                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 47984} G2P503n +GNO3               =       G1P504m +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 47985} G2P503n +MEPERO             =  0.340G1P504m + 0.330GPH501i + 0.330GPH5022                 : ARR( 0.565E-13,  -845., 0.0);
+{ 47986} G2P503n +PERO1              =  0.460G1P504m + 0.270GPH501i + 0.270GPH5022                 : ARR( 0.434E-13,  -900., 0.0);
+{ 47987} G2P503n +PERO2              =  0.400G1P504m + 0.300GPH501i + 0.300GPH5022                 : ARR( 0.162E-13, -1400., 0.0);
+{ 47988} G2P503n +PERO3              =  0.460G1P504m + 0.270GPH501i + 0.270GPH5022                 : ARR( 0.488E-13, -1250., 0.0);
+{ 47989} G2P503n +PERO5              =  0.460G1P504m + 0.270GPH501i + 0.270GPH5022                 : ARR( 0.183E-11,   450., 0.0);
+{ 47990} G2P503n +PERO6              =  0.300G1P504m + 0.350GPH501i + 0.350GPH5022                 : ARR( 0.168E-13, -1300., 0.0);
+{ 47991} G2P503n +PERO9              =  0.650G1P504m + 0.350GPH5022                                : ARR( 0.100E-10,     0., 0.0);
+{ 47992} G2P503o +GNO                =       G1P501A +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 47993} G2P503o +GNO                =       GPN500E                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 47994} G2P503o +GHO2               =       GPH501u                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 47995} G2P503o +GNO3               =       G1P501A +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 47996} G2P503o +MEPERO             =  0.480G1P501A + 0.260GPK5005 + 0.260GPD5008                 : ARR( 0.146E-12,  -445., 0.0);
+{ 47997} G2P503o +PERO1              =  0.600G1P501A + 0.200GPK5005 + 0.200GPD5008                 : ARR( 0.112E-12,  -500., 0.0);
+{ 47998} G2P503o +PERO2              =  0.560G1P501A + 0.220GPK5005 + 0.220GPD5008                 : ARR( 0.418E-13, -1000., 0.0);
+{ 47999} G2P503o +PERO3              =  0.600G1P501A + 0.200GPK5005 + 0.200GPD5008                 : ARR( 0.126E-12,  -850., 0.0);
+{ 48000} G2P503o +PERO5              =  0.600G1P501A + 0.200GPK5005 + 0.200GPD5008                 : ARR( 0.473E-11,   850., 0.0);
+{ 48001} G2P503o +PERO6              =  0.460G1P501A + 0.270GPK5005 + 0.270GPD5008                 : ARR( 0.434E-13,  -900., 0.0);
+{ 48002} G2P503o +PERO9              =  0.800G1P501A + 0.200GPD5008                                : ARR( 0.100E-10,     0., 0.0);
+{ 48003} G1P504m                     =       GCH2O   +      GPD4005 +      GHO                     : ARR( 0.200E+15,  6757., 0.0);
+{ 48004} G1P504m                     =       GHD2000 +      G2P3006                                : ARR( 0.200E+15,  6868., 0.0);
+{ 48005} GGH501r +GHO                =       GGN5025 +      GHO                                    : ARR( 0.995E-11,     0., 0.0);
+{ 48006} GGH501r +GHO                =       G2G502q                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 48007} GGH501r +GHO                =       G3H501a                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 48008} GGH501r+HV               =       G1G502s +      GHO                                    :  0.100E+01*SUN;
+{ 48009} GGH501r+HV               =       G3H2000 +      GGD3000 +      GNO2                    :  0.100E+01*SUN;
+{ 48010} GGH501r+HV               =       G1G503v +      GNO2                                   :  0.100E+01*SUN;
+{ 48011} GGH501r+HV               =       G2H400p +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 48012} G2G502q +GNO                =       G1G502s +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 48013} G2G502q +GNO                =       GGN501C                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 48014} G2G502q +GHO2               =       GGH501r                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 48015} G2G502q +GNO3               =       G1G502s +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 48016} G2G502q +MEPERO             =  0.480G1G502s + 0.260GGN501Y + 0.260GGN5025                 : ARR( 0.164E-12,  -795., 0.0);
+{ 48017} G2G502q +PERO1              =  0.600G1G502s + 0.200GGN501Y + 0.200GGN5025                 : ARR( 0.126E-12,  -850., 0.0);
+{ 48018} G2G502q +PERO2              =  0.560G1G502s + 0.220GGN501Y + 0.220GGN5025                 : ARR( 0.471E-13, -1350., 0.0);
+{ 48019} G2G502q +PERO3              =  0.600G1G502s + 0.200GGN501Y + 0.200GGN5025                 : ARR( 0.142E-12, -1200., 0.0);
+{ 48020} G2G502q +PERO5              =  0.600G1G502s + 0.200GGN501Y + 0.200GGN5025                 : ARR( 0.533E-11,   500., 0.0);
+{ 48021} G2G502q +PERO6              =  0.460G1G502s + 0.270GGN501Y + 0.270GGN5025                 : ARR( 0.488E-13, -1250., 0.0);
+{ 48022} G2G502q +PERO9              =  0.800G1G502s + 0.200GGN5025                                : ARR( 0.100E-10,     0., 0.0);
+{ 48023} G1G503v                     =       G3H2000 +      GGD3000                                : ARR( 0.200E+15,  2372., 0.0);
+{ 48024} GAH501y +GHO                =       GAN501e +      GHO                                    : ARR( 0.103E-10,     0., 0.0);
+{ 48025} GAH501y +GHO                =       G2A501T                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 48026} GAH501y+HV               =       G1A501Z +      GNO2                                   :  0.100E+01*SUN;
+{ 48027} GAH501y+HV               =       G3A4001 +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 48028} GAH501y+HV               =       G1A501k +      GHO                                    :  0.100E+01*SUN;
+{ 48029} GPH501v                     =       G3H501a +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 48030} GPH501v +GHO                =       GPN501l +      GHO                                    : ARR( 0.999E-11,     0., 0.0);
+{ 48031} GPH501v +GHO                =       G2P501Y                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 48032} GPH501v+HV               =       G1P501p +      GHO                                    :  0.100E+01*SUN;
+{ 48033} GPH501v+HV               =       G3H2000 +      GPD3000 +      GNO2                    :  0.100E+01*SUN;
+{ 48034} GPH501v+HV               =       G1P501a +      GNO2                                   :  0.100E+01*SUN;
+{ 48035} GPH501v+HV               =       G3H501a +      GNO2                                   :  0.100E+01*SUN;
+{ 48036} GHH400m +GHO                =       GHN401C +      GHO                                    : ARR( 0.984E-11,     0., 0.0);
+{ 48037} GHH400m +GHO                =       GHN401A +      GHO                                    : ARR( 0.323E-11,     0., 0.0);
+{ 48038} GHH400m +GHO                =       G2H401C                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 48039} GHH400m +GHO                =       G2H400p                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 48040} GHH400m+HV               =       G1H401e +      GHO                                    :  0.100E+01*SUN;
+{ 48041} GHH400m+HV               =       G3H2000 +      GHD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 48042} GHH400m+HV               =       G1H401v +      GNO2                                   :  0.100E+01*SUN;
+{ 48043} GHH400m+HV               =       G1H4012 +      GHO                                    :  0.100E+01*SUN;
+{ 48044} G1H401v                     =       G3H2000 +      GHD2000                                : ARR( 0.200E+15,  3069., 0.0);
+{ 48045} GHN401A +GHO                =       GND400N +      GHO                                    : ARR( 0.983E-11,     0., 0.0);
+{ 48046} GHN401A +GHO                =       G3H400n                                               : ARR( 0.417E-11,     0., 0.0);
+{ 48047} GHN401A +GHO                =       G2N4019                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 48048} GHN401A +GNO3               =       G3H400n +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 48049} GHN401A+HV               =       G1N4012 +      GHO                                    :  0.100E+01*SUN;
+{ 48050} GHN401A+HV               =       G3H2000 +      GDD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 48051} GHN401A+HV               =       G1H401d +      GNO2                                   :  0.100E+01*SUN;
+{ 48052} GHN401A+HV               =       GHD3001 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 48053} GGH501s +GHO                =       GGH5035 +      GHO                                    : ARR( 0.981E-11,     0., 0.0);
+{ 48054} GGH501s +GHO                =       GGH501u +      GHO                                    : ARR( 0.251E-10,     0., 0.0);
+{ 48055} GGH501s +GHO                =       G2G502r                                               : ARR( 0.273E-11,     0., 0.0);
+{ 48056} GGH501s +GHO                =       G2G502s                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 48057} GGH501s +GHO                =       G2G502t                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 48058} GGH501s +GHO                =       G3H501b                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 48059} GGH501s+HV               =       G1G503a +      GHO                                    :  0.100E+01*SUN;
+{ 48060} GGH501s+HV               =       G3H2000 +      GGD3000 +      GHO                     :  0.100E+01*SUN;
+{ 48061} GGH501s+HV               =       G1G503v +      GHO                                    :  0.100E+01*SUN;
+{ 48062} GGH501s+HV               =       G2H400q +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 48063} G2G502r +GNO                =       G1G503w +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 48064} G2G502r +GNO                =       GGH504Y                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 48065} G2G502r +GHO2               =       GGH504Z                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 48066} G2G502r +GNO3               =       G1G503w +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 48067} G2G502r +MEPERO             =  0.340G1G503w + 0.330GGH504F + 0.330GGH504a                 : ARR( 0.565E-13,  -845., 0.0);
+{ 48068} G2G502r +PERO1              =  0.460G1G503w + 0.270GGH504F + 0.270GGH504a                 : ARR( 0.434E-13,  -900., 0.0);
+{ 48069} G2G502r +PERO2              =  0.400G1G503w + 0.300GGH504F + 0.300GGH504a                 : ARR( 0.162E-13, -1400., 0.0);
+{ 48070} G2G502r +PERO3              =  0.460G1G503w + 0.270GGH504F + 0.270GGH504a                 : ARR( 0.488E-13, -1250., 0.0);
+{ 48071} G2G502r +PERO5              =  0.460G1G503w + 0.270GGH504F + 0.270GGH504a                 : ARR( 0.183E-11,   450., 0.0);
+{ 48072} G2G502r +PERO6              =  0.300G1G503w + 0.350GGH504F + 0.350GGH504a                 : ARR( 0.168E-13, -1300., 0.0);
+{ 48073} G2G502r +PERO9              =  0.650G1G503w + 0.350GGH504a                                : ARR( 0.100E-10,     0., 0.0);
+{ 48074} G2G502s +GNO                =       G1G503a +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 48075} G2G502s +GNO                =       GGH501T                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 48076} G2G502s +GHO2               =       GGH501s                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 48077} G2G502s +GNO3               =       G1G503a +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 48078} G2G502s +MEPERO             =  0.480G1G503a + 0.260GGH501y + 0.260GGH5035                 : ARR( 0.164E-12,  -795., 0.0);
+{ 48079} G2G502s +PERO1              =  0.600G1G503a + 0.200GGH501y + 0.200GGH5035                 : ARR( 0.126E-12,  -850., 0.0);
+{ 48080} G2G502s +PERO2              =  0.560G1G503a + 0.220GGH501y + 0.220GGH5035                 : ARR( 0.471E-13, -1350., 0.0);
+{ 48081} G2G502s +PERO3              =  0.600G1G503a + 0.200GGH501y + 0.200GGH5035                 : ARR( 0.142E-12, -1200., 0.0);
+{ 48082} G2G502s +PERO5              =  0.600G1G503a + 0.200GGH501y + 0.200GGH5035                 : ARR( 0.533E-11,   500., 0.0);
+{ 48083} G2G502s +PERO6              =  0.460G1G503a + 0.270GGH501y + 0.270GGH5035                 : ARR( 0.488E-13, -1250., 0.0);
+{ 48084} G2G502s +PERO9              =  0.800G1G503a + 0.200GGH5035                                : ARR( 0.100E-10,     0., 0.0);
+{ 48085} G2G502t +GNO                =       G1G503v +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 48086} G2G502t +GNO                =       GGH501r                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 48087} G2G502t +GHO2               =       GGH501s                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 48088} G2G502t +GNO3               =       G1G503v +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 48089} G2G502t +MEPERO             =  0.340G1G503v + 0.330GGH501t + 0.330GGH501u                 : ARR( 0.565E-13,  -845., 0.0);
+{ 48090} G2G502t +PERO1              =  0.460G1G503v + 0.270GGH501t + 0.270GGH501u                 : ARR( 0.434E-13,  -900., 0.0);
+{ 48091} G2G502t +PERO2              =  0.400G1G503v + 0.300GGH501t + 0.300GGH501u                 : ARR( 0.162E-13, -1400., 0.0);
+{ 48092} G2G502t +PERO3              =  0.460G1G503v + 0.270GGH501t + 0.270GGH501u                 : ARR( 0.488E-13, -1250., 0.0);
+{ 48093} G2G502t +PERO5              =  0.460G1G503v + 0.270GGH501t + 0.270GGH501u                 : ARR( 0.183E-11,   450., 0.0);
+{ 48094} G2G502t +PERO6              =  0.300G1G503v + 0.350GGH501t + 0.350GGH501u                 : ARR( 0.168E-13, -1300., 0.0);
+{ 48095} G2G502t +PERO9              =  0.650G1G503v + 0.350GGH501u                                : ARR( 0.100E-10,     0., 0.0);
+{ 48096} G1G503w                     =       GHH400b +      GCO     +      GHO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 48097} GAH501z +GHO                =       GAH5022 +      GHO                                    : ARR( 0.266E-10,     0., 0.0);
+{ 48098} GAH501z +GHO                =       GAH503K +      GHO                                    : ARR( 0.104E-10,     0., 0.0);
+{ 48099} GAH501z +GHO                =       G2A501L                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 48100} GAH501z +GHO                =       G2A503n                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 48101} GAH501z+HV               =       G1A501Z +      GHO                                    :  0.100E+01*SUN;
+{ 48102} GAH501z+HV               =       G3A4009 +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 48103} GAH501z+HV               =       G1A503p +      GHO                                    :  0.100E+01*SUN;
+{ 48104} G2A503n +GNO                =       G1A503p +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 48105} G2A503n +GNO                =       GAH501M                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 48106} G2A503n +GHO2               =       GAH501z                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 48107} G2A503n +GNO3               =       G1A503p +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 48108} G2A503n +MEPERO             =  0.480G1A503p + 0.260GAH5027 + 0.260GAH503K                 : ARR( 0.164E-12,  -795., 0.0);
+{ 48109} G2A503n +PERO1              =  0.600G1A503p + 0.200GAH5027 + 0.200GAH503K                 : ARR( 0.126E-12,  -850., 0.0);
+{ 48110} G2A503n +PERO2              =  0.560G1A503p + 0.220GAH5027 + 0.220GAH503K                 : ARR( 0.471E-13, -1350., 0.0);
+{ 48111} G2A503n +PERO3              =  0.600G1A503p + 0.200GAH5027 + 0.200GAH503K                 : ARR( 0.142E-12, -1200., 0.0);
+{ 48112} G2A503n +PERO5              =  0.600G1A503p + 0.200GAH5027 + 0.200GAH503K                 : ARR( 0.533E-11,   500., 0.0);
+{ 48113} G2A503n +PERO6              =  0.460G1A503p + 0.270GAH5027 + 0.270GAH503K                 : ARR( 0.488E-13, -1250., 0.0);
+{ 48114} G2A503n +PERO9              =  0.800G1A503p + 0.200GAH503K                                : ARR( 0.100E-10,     0., 0.0);
+{ 48115} GPH501w                     =       G3H501b +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 48116} GPH501w +GHO                =       GPH503Q +      GHO                                    : ARR( 0.981E-11,     0., 0.0);
+{ 48117} GPH501w +GHO                =       GPH501y +      GHO                                    : ARR( 0.251E-10,     0., 0.0);
+{ 48118} GPH501w +GHO                =       G2P503p                                               : ARR( 0.273E-11,     0., 0.0);
+{ 48119} GPH501w +GHO                =       G2P503q                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 48120} GPH501w +GHO                =       G2P501M                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 48121} GPH501w+HV               =       G1P503u +      GHO                                    :  0.100E+01*SUN;
+{ 48122} GPH501w+HV               =       G3H2000 +      GPD3000 +      GHO                     :  0.100E+01*SUN;
+{ 48123} GPH501w+HV               =       G1P501a +      GHO                                    :  0.100E+01*SUN;
+{ 48124} GPH501w+HV               =       G3H501b +      GNO2                                   :  0.100E+01*SUN;
+{ 48125} G2P503p +GNO                =       G1P504n +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 48126} G2P503p +GNO                =       GPH504g                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 48127} G2P503p +GHO2               =       GPH504h                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 48128} G2P503p +GNO3               =       G1P504n +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 48129} G2P503p +MEPERO             =  0.340G1P504n + 0.330GPH504P + 0.330GPH504i                 : ARR( 0.565E-13,  -845., 0.0);
+{ 48130} G2P503p +PERO1              =  0.460G1P504n + 0.270GPH504P + 0.270GPH504i                 : ARR( 0.434E-13,  -900., 0.0);
+{ 48131} G2P503p +PERO2              =  0.400G1P504n + 0.300GPH504P + 0.300GPH504i                 : ARR( 0.162E-13, -1400., 0.0);
+{ 48132} G2P503p +PERO3              =  0.460G1P504n + 0.270GPH504P + 0.270GPH504i                 : ARR( 0.488E-13, -1250., 0.0);
+{ 48133} G2P503p +PERO5              =  0.460G1P504n + 0.270GPH504P + 0.270GPH504i                 : ARR( 0.183E-11,   450., 0.0);
+{ 48134} G2P503p +PERO6              =  0.300G1P504n + 0.350GPH504P + 0.350GPH504i                 : ARR( 0.168E-13, -1300., 0.0);
+{ 48135} G2P503p +PERO9              =  0.650G1P504n + 0.350GPH504i                                : ARR( 0.100E-10,     0., 0.0);
+{ 48136} G2P503q +GNO                =       G1P503u +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 48137} G2P503q +GNO                =       GPH501K                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 48138} G2P503q +GHO2               =       GPH501w                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 48139} G2P503q +GNO3               =       G1P503u +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 48140} G2P503q +MEPERO             =  0.480G1P503u + 0.260GPH5024 + 0.260GPH503Q                 : ARR( 0.164E-12,  -795., 0.0);
+{ 48141} G2P503q +PERO1              =  0.600G1P503u + 0.200GPH5024 + 0.200GPH503Q                 : ARR( 0.126E-12,  -850., 0.0);
+{ 48142} G2P503q +PERO2              =  0.560G1P503u + 0.220GPH5024 + 0.220GPH503Q                 : ARR( 0.471E-13, -1350., 0.0);
+{ 48143} G2P503q +PERO3              =  0.600G1P503u + 0.200GPH5024 + 0.200GPH503Q                 : ARR( 0.142E-12, -1200., 0.0);
+{ 48144} G2P503q +PERO5              =  0.600G1P503u + 0.200GPH5024 + 0.200GPH503Q                 : ARR( 0.533E-11,   500., 0.0);
+{ 48145} G2P503q +PERO6              =  0.460G1P503u + 0.270GPH5024 + 0.270GPH503Q                 : ARR( 0.488E-13, -1250., 0.0);
+{ 48146} G2P503q +PERO9              =  0.800G1P503u + 0.200GPH503Q                                : ARR( 0.100E-10,     0., 0.0);
+{ 48147} G1P504n                     =       GHH400b +      GCO     +      GNO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 48148} GHH400n +GHO                =       GHH400w +      GHO                                    : ARR( 0.110E-10,     0., 0.0);
+{ 48149} GHH400n +GHO                =       GHH400o +      GHO                                    : ARR( 0.283E-10,     0., 0.0);
+{ 48150} GHH400n +GHO                =       GHH400b +      GHO                                    : ARR( 0.574E-10,     0., 0.0);
+{ 48151} GHH400n+HV               =       G1H401f +      GHO                                    :  0.100E+01*SUN;
+{ 48152} GHH400n+HV               =       G3H2000 +      GHD2000 +      GHO                     :  0.100E+01*SUN;
+{ 48153} GHH400n+HV               =       G1H401v +      GHO                                    :  0.100E+01*SUN;
+{ 48154} GHH400n+HV               =       G1H4013 +      GHO                                    :  0.100E+01*SUN;
+{ 48155} GGH501t +GHO                =       GGD500I +      GHO                                    : ARR( 0.986E-11,     0., 0.0);
+{ 48156} GGH501t +GHO                =       GGH501u +      GHO2                                   : ARR( 0.632E-11,     0., 0.0);
+{ 48157} GGH501t +GHO                =       G2G502u                                               : ARR( 0.275E-11,     0., 0.0);
+{ 48158} GGH501t +GHO                =       G2G502v                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 48159} GGH501t +GHO                =       G3H501c                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 48160} GGH501t+HV               =       G1G503c +      GHO                                    :  0.100E+01*SUN;
+{ 48161} GGH501t+HV               =       G3H2000 +      GGD3000 +      GHO2                    :  0.100E+01*SUN;
+{ 48162} GGH501t+HV               =       G2H400r +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 48163} G2G502u +GNO                =       G1G503x +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 48164} G2G502u +GNO                =       GGH504b                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 48165} G2G502u +GHO2               =       GGH504c                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 48166} G2G502u +GNO3               =       G1G503x +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 48167} G2G502u +MEPERO             =  0.340G1G503x + 0.330GGH504I + 0.330GGH504d                 : ARR( 0.565E-13,  -845., 0.0);
+{ 48168} G2G502u +PERO1              =  0.460G1G503x + 0.270GGH504I + 0.270GGH504d                 : ARR( 0.434E-13,  -900., 0.0);
+{ 48169} G2G502u +PERO2              =  0.400G1G503x + 0.300GGH504I + 0.300GGH504d                 : ARR( 0.162E-13, -1400., 0.0);
+{ 48170} G2G502u +PERO3              =  0.460G1G503x + 0.270GGH504I + 0.270GGH504d                 : ARR( 0.488E-13, -1250., 0.0);
+{ 48171} G2G502u +PERO5              =  0.460G1G503x + 0.270GGH504I + 0.270GGH504d                 : ARR( 0.183E-11,   450., 0.0);
+{ 48172} G2G502u +PERO6              =  0.300G1G503x + 0.350GGH504I + 0.350GGH504d                 : ARR( 0.168E-13, -1300., 0.0);
+{ 48173} G2G502u +PERO9              =  0.650G1G503x + 0.350GGH504d                                : ARR( 0.100E-10,     0., 0.0);
+{ 48174} G2G502v +GNO                =       G1G503c +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 48175} G2G502v +GNO                =       GGN501L                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 48176} G2G502v +GHO2               =       GGH501t                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 48177} G2G502v +GNO3               =       G1G503c +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 48178} G2G502v +MEPERO             =  0.480G1G503c + 0.260GGK500R + 0.260GGD500I                 : ARR( 0.164E-12,  -795., 0.0);
+{ 48179} G2G502v +PERO1              =  0.600G1G503c + 0.200GGK500R + 0.200GGD500I                 : ARR( 0.126E-12,  -850., 0.0);
+{ 48180} G2G502v +PERO2              =  0.560G1G503c + 0.220GGK500R + 0.220GGD500I                 : ARR( 0.471E-13, -1350., 0.0);
+{ 48181} G2G502v +PERO3              =  0.600G1G503c + 0.200GGK500R + 0.200GGD500I                 : ARR( 0.142E-12, -1200., 0.0);
+{ 48182} G2G502v +PERO5              =  0.600G1G503c + 0.200GGK500R + 0.200GGD500I                 : ARR( 0.533E-11,   500., 0.0);
+{ 48183} G2G502v +PERO6              =  0.460G1G503c + 0.270GGK500R + 0.270GGD500I                 : ARR( 0.488E-13, -1250., 0.0);
+{ 48184} G2G502v +PERO9              =  0.800G1G503c + 0.200GGD500I                                : ARR( 0.100E-10,     0., 0.0);
+{ 48185} G1G503x                     =       GHD400J +      GCO     +      GHO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 48186} GAH5021 +GHO                =       G2A503o                                               : ARR( 0.208E-11,     0., 0.0);
+{ 48187} GAH5021 +GHO                =       GAH5022 +      GHO2                                   : ARR( 0.647E-11,     0., 0.0);
+{ 48188} GAH5021 +GHO                =       GAD500L +      GHO                                    : ARR( 0.101E-10,     0., 0.0);
+{ 48189} GAH5021 +GHO                =       G2A503p                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 48190} GAH5021+HV               =       G3A4004 +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 48191} GAH5021+HV               =       G1A503r +      GHO                                    :  0.100E+01*SUN;
+{ 48192} G2A503o +GNO                =       G1A504i +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 48193} G2A503o +GNO                =       GAH504f                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 48194} G2A503o +GHO2               =       GAH504g                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 48195} G2A503o +GNO3               =       G1A504i +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 48196} G2A503o +MEPERO             =  0.340G1A504i + 0.330GAH504Q + 0.330GAH504h                 : ARR( 0.565E-13,  -845., 0.0);
+{ 48197} G2A503o +PERO1              =  0.460G1A504i + 0.270GAH504Q + 0.270GAH504h                 : ARR( 0.434E-13,  -900., 0.0);
+{ 48198} G2A503o +PERO2              =  0.400G1A504i + 0.300GAH504Q + 0.300GAH504h                 : ARR( 0.162E-13, -1400., 0.0);
+{ 48199} G2A503o +PERO3              =  0.460G1A504i + 0.270GAH504Q + 0.270GAH504h                 : ARR( 0.488E-13, -1250., 0.0);
+{ 48200} G2A503o +PERO5              =  0.460G1A504i + 0.270GAH504Q + 0.270GAH504h                 : ARR( 0.183E-11,   450., 0.0);
+{ 48201} G2A503o +PERO6              =  0.300G1A504i + 0.350GAH504Q + 0.350GAH504h                 : ARR( 0.168E-13, -1300., 0.0);
+{ 48202} G2A503o +PERO9              =  0.650G1A504i + 0.350GAH504h                                : ARR( 0.100E-10,     0., 0.0);
+{ 48203} G2A503p +GNO                =       G1A503r +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 48204} G2A503p +GNO                =       GAN501G                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 48205} G2A503p +GHO2               =       GAH5021                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 48206} G2A503p +GNO3               =       G1A503r +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 48207} G2A503p +MEPERO             =  0.480G1A503r + 0.260GAK500Q + 0.260GAD500L                 : ARR( 0.164E-12,  -795., 0.0);
+{ 48208} G2A503p +PERO1              =  0.600G1A503r + 0.200GAK500Q + 0.200GAD500L                 : ARR( 0.126E-12,  -850., 0.0);
+{ 48209} G2A503p +PERO2              =  0.560G1A503r + 0.220GAK500Q + 0.220GAD500L                 : ARR( 0.471E-13, -1350., 0.0);
+{ 48210} G2A503p +PERO3              =  0.600G1A503r + 0.200GAK500Q + 0.200GAD500L                 : ARR( 0.142E-12, -1200., 0.0);
+{ 48211} G2A503p +PERO5              =  0.600G1A503r + 0.200GAK500Q + 0.200GAD500L                 : ARR( 0.533E-11,   500., 0.0);
+{ 48212} G2A503p +PERO6              =  0.460G1A503r + 0.270GAK500Q + 0.270GAD500L                 : ARR( 0.488E-13, -1250., 0.0);
+{ 48213} G2A503p +PERO9              =  0.800G1A503r + 0.200GAD500L                                : ARR( 0.100E-10,     0., 0.0);
+{ 48214} G1A504i                     =       GCO     +      GHD400J +      GHO                     : ARR( 0.200E+15,  4342., 0.0);
+{ 48215} GPH501x                     =       G3H501c +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 48216} GPH501x +GHO                =       GPD500J +      GHO                                    : ARR( 0.987E-11,     0., 0.0);
+{ 48217} GPH501x +GHO                =       GPH501y +      GHO2                                   : ARR( 0.632E-11,     0., 0.0);
+{ 48218} GPH501x +GHO                =       G2P503r                                               : ARR( 0.275E-11,     0., 0.0);
+{ 48219} GPH501x +GHO                =       G2P503s                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 48220} GPH501x+HV               =       G1P503w +      GHO                                    :  0.100E+01*SUN;
+{ 48221} GPH501x+HV               =       G3H2000 +      GPD3000 +      GHO2                    :  0.100E+01*SUN;
+{ 48222} GPH501x+HV               =       G3H501c +      GNO2                                   :  0.100E+01*SUN;
+{ 48223} G2P503r +GNO                =       G1P504o +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 48224} G2P503r +GNO                =       GPH504j                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 48225} G2P503r +GHO2               =       GPH504k                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 48226} G2P503r +GNO3               =       G1P504o +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 48227} G2P503r +MEPERO             =  0.340G1P504o + 0.330GPH504S + 0.330GPH504l                 : ARR( 0.565E-13,  -845., 0.0);
+{ 48228} G2P503r +PERO1              =  0.460G1P504o + 0.270GPH504S + 0.270GPH504l                 : ARR( 0.434E-13,  -900., 0.0);
+{ 48229} G2P503r +PERO2              =  0.400G1P504o + 0.300GPH504S + 0.300GPH504l                 : ARR( 0.162E-13, -1400., 0.0);
+{ 48230} G2P503r +PERO3              =  0.460G1P504o + 0.270GPH504S + 0.270GPH504l                 : ARR( 0.488E-13, -1250., 0.0);
+{ 48231} G2P503r +PERO5              =  0.460G1P504o + 0.270GPH504S + 0.270GPH504l                 : ARR( 0.183E-11,   450., 0.0);
+{ 48232} G2P503r +PERO6              =  0.300G1P504o + 0.350GPH504S + 0.350GPH504l                 : ARR( 0.168E-13, -1300., 0.0);
+{ 48233} G2P503r +PERO9              =  0.650G1P504o + 0.350GPH504l                                : ARR( 0.100E-10,     0., 0.0);
+{ 48234} G2P503s +GNO                =       G1P503w +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 48235} G2P503s +GNO                =       GPN501H                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 48236} G2P503s +GHO2               =       GPH501x                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 48237} G2P503s +GNO3               =       G1P503w +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 48238} G2P503s +MEPERO             =  0.480G1P503w + 0.260GPK500R + 0.260GPD500J                 : ARR( 0.164E-12,  -795., 0.0);
+{ 48239} G2P503s +PERO1              =  0.600G1P503w + 0.200GPK500R + 0.200GPD500J                 : ARR( 0.126E-12,  -850., 0.0);
+{ 48240} G2P503s +PERO2              =  0.560G1P503w + 0.220GPK500R + 0.220GPD500J                 : ARR( 0.471E-13, -1350., 0.0);
+{ 48241} G2P503s +PERO3              =  0.600G1P503w + 0.200GPK500R + 0.200GPD500J                 : ARR( 0.142E-12, -1200., 0.0);
+{ 48242} G2P503s +PERO5              =  0.600G1P503w + 0.200GPK500R + 0.200GPD500J                 : ARR( 0.533E-11,   500., 0.0);
+{ 48243} G2P503s +PERO6              =  0.460G1P503w + 0.270GPK500R + 0.270GPD500J                 : ARR( 0.488E-13, -1250., 0.0);
+{ 48244} G2P503s +PERO9              =  0.800G1P503w + 0.200GPD500J                                : ARR( 0.100E-10,     0., 0.0);
+{ 48245} G1P504o                     =       GHD400J +      GCO     +      GNO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 48246} GGH501u +GHO                =       GGD500G +      GHO                                    : ARR( 0.101E-10,     0., 0.0);
+{ 48247} GGH501u +GHO                =       G2G502w                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 48248} GGH501u +GHO                =       G3H501d                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 48249} GGH501u+HV               =       G1G5034 +      GHO                                    :  0.100E+01*SUN;
+{ 48250} GGH501u+HV               =       G3H2000 +      G3G3000                                :  0.100E+01*SUN;
+{ 48251} GGH501u+HV               =       G2H400s +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 48252} G2G502w +GNO                =       G1G5034 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 48253} G2G502w +GNO                =       GGN501G                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 48254} G2G502w +GHO2               =       GGH501u                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 48255} G2G502w +GNO3               =       G1G5034 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 48256} G2G502w +MEPERO             =  0.480G1G5034 + 0.260GGK500Q + 0.260GGD500G                 : ARR( 0.164E-12,  -795., 0.0);
+{ 48257} G2G502w +PERO1              =  0.600G1G5034 + 0.200GGK500Q + 0.200GGD500G                 : ARR( 0.126E-12,  -850., 0.0);
+{ 48258} G2G502w +PERO2              =  0.560G1G5034 + 0.220GGK500Q + 0.220GGD500G                 : ARR( 0.471E-13, -1350., 0.0);
+{ 48259} G2G502w +PERO3              =  0.600G1G5034 + 0.200GGK500Q + 0.200GGD500G                 : ARR( 0.142E-12, -1200., 0.0);
+{ 48260} G2G502w +PERO5              =  0.600G1G5034 + 0.200GGK500Q + 0.200GGD500G                 : ARR( 0.533E-11,   500., 0.0);
+{ 48261} G2G502w +PERO6              =  0.460G1G5034 + 0.270GGK500Q + 0.270GGD500G                 : ARR( 0.488E-13, -1250., 0.0);
+{ 48262} G2G502w +PERO9              =  0.800G1G5034 + 0.200GGD500G                                : ARR( 0.100E-10,     0., 0.0);
+{ 48263} GAH5022 +GHO                =       GAD500G +      GHO                                    : ARR( 0.105E-10,     0., 0.0);
+{ 48264} GAH5022 +GHO                =       G2A501h                                               : ARR( 0.203E-11,  -190., 0.0);
+{ 48265} GAH5022+HV               =       G3A3000 +      G3H2000                                :  0.100E+01*SUN;
+{ 48266} GAH5022+HV               =       G1A501z +      GHO                                    :  0.100E+01*SUN;
+{ 48267} GPH501y                     =       G3H501d +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 48268} GPH501y +GHO                =       GPD500F +      GHO                                    : ARR( 0.102E-10,     0., 0.0);
+{ 48269} GPH501y +GHO                =       G2P501s                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 48270} GPH501y+HV               =       G1P502E +      GHO                                    :  0.100E+01*SUN;
+{ 48271} GPH501y+HV               =       G3H2000 +      G3P3000                                :  0.100E+01*SUN;
+{ 48272} GPH501y+HV               =       G3H501d +      GNO2                                   :  0.100E+01*SUN;
+{ 48273} GHH400o +GHO                =       GHD400N +      GHO                                    : ARR( 0.196E-10,     0., 0.0);
+{ 48274} GHH400o +GHO                =       G2H400s                                               : ARR( 0.380E-11,  -190., 0.0);
+{ 48275} GHH400o+HV               =       G1H4014 +      GHO                                    :  0.200E+01*SUN;
+{ 48276} GHH400o+HV               =  2.000G3H2000                                               :  0.100E+01*SUN;
+{ 48277} GHK400C +GHO                =       GHD400N +      GHO2                                   : ARR( 0.247E-11,     0., 0.0);
+{ 48278} GHK400C +GHO                =       GDK4009 +      GHO                                    : ARR( 0.989E-11,     0., 0.0);
+{ 48279} GHK400C +GHO                =       G2K400C                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 48280} GHK400C+HV               =       G3K2001 +      G3H2000                                :  0.100E+01*SUN;
+{ 48281} GHK400C+HV               =       G1K400C +      GHO                                    :  0.100E+01*SUN;
+{ 48282} GHD400N +GHO                =       GDD4005 +      GHO                                    : ARR( 0.981E-11,     0., 0.0);
+{ 48283} GHD400N +GHO                =       G3H2000 + 2.000GCO                                    : ARR( 0.127E-10,     0., 0.0);
+{ 48284} GHD400N +GHO                =       G2D400F                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 48285} GHD400N +GNO3               =       G3H2000 +      GHNO3   + 2.000GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 48286} GHD400N+HV               =       G1D400N +      GHO                                    :  0.100E+01*SUN;
+{ 48287} GHD400N+HV               =       G3H2000 +      G3D2000                                :  0.100E+01*SUN;
+{ 48288} GHD400N+HV               =       G3H2000 +      GCO     +      GCO     +      GHO2     :  0.100E+01*SUN;
+{ 48289} GHD400N+HV               =       GHD3001 +      GCO                                    :  0.100E+01*SUN;
+{ 48290} GHD400N+HV               =       GHD2000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 48291} GGH501v +GHO                =       GGN501v +      GHO                                    : ARR( 0.100E-10,     0., 0.0);
+{ 48292} GGH501v +GHO                =       G2G502x                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 48293} GGH501v +GHO                =       G3H501e                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 48294} GGH501v+HV               =       G1G502O +      GHO                                    :  0.100E+01*SUN;
+{ 48295} GGH501v+HV               =       G3H2000 +      G2G3003                                :  0.100E+01*SUN;
+{ 48296} GGH501v+HV               =       G1G501P +      GNO2                                   :  0.100E+01*SUN;
+{ 48297} GGH501v+HV               =       GHD4004 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 48298} G2G502x +GNO                =       G1G502O +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 48299} G2G502x +GNO                =       GGN500y                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 48300} G2G502x +GHO2               =       GGH501v                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 48301} G2G502x +GNO3               =       G1G502O +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 48302} G2G502x +MEPERO             =  0.480G1G502O + 0.260GGN5016 + 0.260GGN501v                 : ARR( 0.164E-12,  -795., 0.0);
+{ 48303} G2G502x +PERO1              =  0.600G1G502O + 0.200GGN5016 + 0.200GGN501v                 : ARR( 0.126E-12,  -850., 0.0);
+{ 48304} G2G502x +PERO2              =  0.560G1G502O + 0.220GGN5016 + 0.220GGN501v                 : ARR( 0.471E-13, -1350., 0.0);
+{ 48305} G2G502x +PERO3              =  0.600G1G502O + 0.200GGN5016 + 0.200GGN501v                 : ARR( 0.142E-12, -1200., 0.0);
+{ 48306} G2G502x +PERO5              =  0.600G1G502O + 0.200GGN5016 + 0.200GGN501v                 : ARR( 0.533E-11,   500., 0.0);
+{ 48307} G2G502x +PERO6              =  0.460G1G502O + 0.270GGN5016 + 0.270GGN501v                 : ARR( 0.488E-13, -1250., 0.0);
+{ 48308} G2G502x +PERO9              =  0.800G1G502O + 0.200GGN501v                                : ARR( 0.100E-10,     0., 0.0);
+{ 48309} GAH5023 +GHO                =       GAN5024 +      GHO                                    : ARR( 0.104E-10,     0., 0.0);
+{ 48310} GAH5023 +GHO                =       G2A501u                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 48311} GAH5023+HV               =       G1A501Y +      GNO2                                   :  0.100E+01*SUN;
+{ 48312} GAH5023+HV               =       G3A4002 +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 48313} GAH5023+HV               =       G1A502F +      GHO                                    :  0.100E+01*SUN;
+{ 48314} GPH501z                     =       G3H501e +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 48315} GPH501z +GHO                =       GPN502E +      GHO                                    : ARR( 0.101E-10,     0., 0.0);
+{ 48316} GPH501z +GHO                =       G2P5029                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 48317} GPH501z+HV               =       G1P502X +      GHO                                    :  0.100E+01*SUN;
+{ 48318} GPH501z+HV               =       G3H2000 +      G2P3004                                :  0.100E+01*SUN;
+{ 48319} GPH501z+HV               =       G1P501b +      GNO2                                   :  0.100E+01*SUN;
+{ 48320} GPH501z+HV               =       G3H501e +      GNO2                                   :  0.100E+01*SUN;
+{ 48321} GGH501w +GHO                =       GGH503H +      GHO                                    : ARR( 0.111E-10,     0., 0.0);
+{ 48322} GGH501w +GHO                =       GGH501x +      GHO                                    : ARR( 0.900E-10,     0., 0.0);
+{ 48323} GGH501w+HV               =       G1G503e +      GHO                                    :  0.100E+01*SUN;
+{ 48324} GGH501w+HV               =       G3H2000 +      G2G3008                                :  0.100E+01*SUN;
+{ 48325} GGH501w+HV               =       G1G501P +      GHO                                    :  0.100E+01*SUN;
+{ 48326} GGH501w+HV               =       GHD4004 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 48327} GAH5024 +GHO                =       GAH5025 +      GHO                                    : ARR( 0.663E-10,     0., 0.0);
+{ 48328} GAH5024 +GHO                =       GAH503x +      GHO                                    : ARR( 0.110E-10,     0., 0.0);
+{ 48329} GAH5024+HV               =       G1A501Y +      GHO                                    :  0.100E+01*SUN;
+{ 48330} GAH5024+HV               =       G3A4008 +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 48331} GAH5024+HV               =       G1A503m +      GHO                                    :  0.100E+01*SUN;
+{ 48332} GPH5021                     =       G3H501f +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 48333} GPH5021 +GHO                =       GPH5047 +      GHO                                    : ARR( 0.107E-10,     0., 0.0);
+{ 48334} GPH5021 +GHO                =       GPH5022 +      GHO                                    : ARR( 0.868E-10,     0., 0.0);
+{ 48335} GPH5021+HV               =       G1P503z +      GHO                                    :  0.100E+01*SUN;
+{ 48336} GPH5021+HV               =       G3H2000 +      G2P300B                                :  0.100E+01*SUN;
+{ 48337} GPH5021+HV               =       G1P501b +      GHO                                    :  0.100E+01*SUN;
+{ 48338} GPH5021+HV               =       G3H501f +      GNO2                                   :  0.100E+01*SUN;
+{ 48339} GGH501x +GHO                =       GGD500J +      GHO                                    : ARR( 0.101E-10,     0., 0.0);
+{ 48340} GGH501x +GHO                =       G2G502y                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 48341} GGH501x +GHO                =       G3H503s                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 48342} GGH501x+HV               =       G1G502X +      GHO                                    :  0.100E+01*SUN;
+{ 48343} GGH501x+HV               =       G3H2000 +      G2G3005                                :  0.100E+01*SUN;
+{ 48344} GGH501x+HV               =       GAH400A +      GCO2                                   :  0.100E+01*SUN;
+{ 48345} G2G502y +GNO                =       G1G502X +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 48346} G2G502y +GNO                =       GGN5013                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 48347} G2G502y +GHO2               =       GGH501x                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 48348} G2G502y +GNO3               =       G1G502X +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 48349} G2G502y +MEPERO             =  0.480G1G502X + 0.260GGK500O + 0.260GGD500J                 : ARR( 0.164E-12,  -795., 0.0);
+{ 48350} G2G502y +PERO1              =  0.600G1G502X + 0.200GGK500O + 0.200GGD500J                 : ARR( 0.126E-12,  -850., 0.0);
+{ 48351} G2G502y +PERO2              =  0.560G1G502X + 0.220GGK500O + 0.220GGD500J                 : ARR( 0.471E-13, -1350., 0.0);
+{ 48352} G2G502y +PERO3              =  0.600G1G502X + 0.200GGK500O + 0.200GGD500J                 : ARR( 0.142E-12, -1200., 0.0);
+{ 48353} G2G502y +PERO5              =  0.600G1G502X + 0.200GGK500O + 0.200GGD500J                 : ARR( 0.533E-11,   500., 0.0);
+{ 48354} G2G502y +PERO6              =  0.460G1G502X + 0.270GGK500O + 0.270GGD500J                 : ARR( 0.488E-13, -1250., 0.0);
+{ 48355} G2G502y +PERO9              =  0.800G1G502X + 0.200GGD500J                                : ARR( 0.100E-10,     0., 0.0);
+{ 48356} G3H503s +GHO2               =  0.800GGH501x + 0.200GAH5025 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 48357} G3H503s +GNO                =       G3H4007 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 48358} G3H503s +GNO2               =       GPH5022                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 48359} G3H503s +GNO3               =       G3H4007 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 48360} G3H503s +MEPERO             =  0.685G3H4007 + 0.315GAH5025 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 48361} G3H503s +PERO1              =  0.800G3H4007 + 0.200GAH5025 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 48362} G3H503s +PERO2              =  0.750G3H4007 + 0.250GAH5025 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 48363} G3H503s +PERO3              =  0.800G3H4007 + 0.200GAH5025 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 48364} G3H503s +PERO5              =  0.650G3H4007 + 0.350GAH5025 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 48365} G3H503s +PERO6              =  0.650G3H4007 + 0.350GAH5025 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 48366} G3H503s +PERO9              =       G3H4007 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 48367} GAH5025 +GHO                =       GAD500I +      GHO                                    : ARR( 0.106E-10,     0., 0.0);
+{ 48368} GAH5025 +GHO                =       G2A501x                                               : ARR( 0.205E-11,  -190., 0.0);
+{ 48369} GAH5025+HV               =       GHD4004 +      GCO2                                   :  0.100E+01*SUN;
+{ 48370} GAH5025+HV               =       G3A4003 +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 48371} GAH5025+HV               =       G1A502I +      GHO                                    :  0.100E+01*SUN;
+{ 48372} GPH5022                     =       G3H503s +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 48373} GPH5022 +GHO                =       GPD500H +      GHO                                    : ARR( 0.102E-10,     0., 0.0);
+{ 48374} GPH5022 +GHO                =       G2P502B                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 48375} GPH5022+HV               =       G1P502Z +      GHO                                    :  0.100E+01*SUN;
+{ 48376} GPH5022+HV               =       G3H2000 +      G2P3006                                :  0.100E+01*SUN;
+{ 48377} GPH5022+HV               =       G3H4007 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 48378} GGH400c +GHO                =       GGN400W +      GHO                                    : ARR( 0.162E-10,     0., 0.0);
+{ 48379} GGH400c +GHO                =       GGH400u +      GHO2                                   : ARR( 0.208E-11,     0., 0.0);
+{ 48380} GGH400c +GHO                =       G2G400l                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 48381} GGH400c +GHO                =       G3H400U                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 48382} GGH400c+HV               =       G1G400P +      GHO                                    :  0.100E+01*SUN;
+{ 48383} GGH400c+HV               =       G1G400x +      GNO2                                   :  0.100E+01*SUN;
+{ 48384} GGH400c+HV               =       GHD3005 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 48385} G2G400l +GNO                =       G1G400P +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 48386} G2G400l +GNO                =       GGN400B                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 48387} G2G400l +GHO2               =       GGH400c                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 48388} G2G400l +GNO3               =       G1G400P +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 48389} G2G400l +MEPERO             =  0.480G1G400P + 0.260GGN400L + 0.260GGN400W                 : ARR( 0.164E-12,  -795., 0.0);
+{ 48390} G2G400l +PERO1              =  0.600G1G400P + 0.200GGN400L + 0.200GGN400W                 : ARR( 0.126E-12,  -850., 0.0);
+{ 48391} G2G400l +PERO2              =  0.560G1G400P + 0.220GGN400L + 0.220GGN400W                 : ARR( 0.471E-13, -1350., 0.0);
+{ 48392} G2G400l +PERO3              =  0.600G1G400P + 0.200GGN400L + 0.200GGN400W                 : ARR( 0.142E-12, -1200., 0.0);
+{ 48393} G2G400l +PERO5              =  0.600G1G400P + 0.200GGN400L + 0.200GGN400W                 : ARR( 0.533E-11,   500., 0.0);
+{ 48394} G2G400l +PERO6              =  0.460G1G400P + 0.270GGN400L + 0.270GGN400W                 : ARR( 0.488E-13, -1250., 0.0);
+{ 48395} G2G400l +PERO9              =  0.800G1G400P + 0.200GGN400W                                : ARR( 0.100E-10,     0., 0.0);
+{ 48396} G1G400x                     =       GHD2000 +      GGD2000 +      GHO2                    : ARR( 0.200E+15,  5490., 0.0);
+{ 48397} G1G400x                     =       GHD3005 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 48398} GGH400d +GHO                =       GGH400g +      GHO                                    : ARR( 0.161E-10,     0., 0.0);
+{ 48399} GGH400d +GHO                =       GGH400m +      GHO2                                   : ARR( 0.103E-10,     0., 0.0);
+{ 48400} GGH400d +GHO                =       GGH400F +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 48401} GGH400d +GHO                =       G2G400m                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 48402} GGH400d +GHO                =       G2G400n                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 48403} GGH400d +GHO                =       G3H400W                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 48404} GGH400d+HV               =       G1G400Q +      GHO                                    :  0.100E+01*SUN;
+{ 48405} GGH400d+HV               =       G1G400x +      GHO                                    :  0.100E+01*SUN;
+{ 48406} GGH400d+HV               =       GHD3005 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 48407} G2G400m +GNO                =       G1G400Q +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 48408} G2G400m +GNO                =       GGH4004                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 48409} G2G400m +GHO2               =       GGH400d                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 48410} G2G400m +GNO3               =       G1G400Q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 48411} G2G400m +MEPERO             =  0.480G1G400Q + 0.260GGH400H + 0.260GGH400g                 : ARR( 0.164E-12,  -795., 0.0);
+{ 48412} G2G400m +PERO1              =  0.600G1G400Q + 0.200GGH400H + 0.200GGH400g                 : ARR( 0.126E-12,  -850., 0.0);
+{ 48413} G2G400m +PERO2              =  0.560G1G400Q + 0.220GGH400H + 0.220GGH400g                 : ARR( 0.471E-13, -1350., 0.0);
+{ 48414} G2G400m +PERO3              =  0.600G1G400Q + 0.200GGH400H + 0.200GGH400g                 : ARR( 0.142E-12, -1200., 0.0);
+{ 48415} G2G400m +PERO5              =  0.600G1G400Q + 0.200GGH400H + 0.200GGH400g                 : ARR( 0.533E-11,   500., 0.0);
+{ 48416} G2G400m +PERO6              =  0.460G1G400Q + 0.270GGH400H + 0.270GGH400g                 : ARR( 0.488E-13, -1250., 0.0);
+{ 48417} G2G400m +PERO9              =  0.800G1G400Q + 0.200GGH400g                                : ARR( 0.100E-10,     0., 0.0);
+{ 48418} G2G400n +GNO                =       G1G400x +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 48419} G2G400n +GNO                =       GGH400c                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 48420} G2G400n +GHO2               =       GGH400d                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 48421} G2G400n +GNO3               =       G1G400x +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 48422} G2G400n +MEPERO             =  0.340G1G400x + 0.330GGH400e + 0.330GGH400F                 : ARR( 0.565E-13,  -845., 0.0);
+{ 48423} G2G400n +PERO1              =  0.460G1G400x + 0.270GGH400e + 0.270GGH400F                 : ARR( 0.434E-13,  -900., 0.0);
+{ 48424} G2G400n +PERO2              =  0.400G1G400x + 0.300GGH400e + 0.300GGH400F                 : ARR( 0.162E-13, -1400., 0.0);
+{ 48425} G2G400n +PERO3              =  0.460G1G400x + 0.270GGH400e + 0.270GGH400F                 : ARR( 0.488E-13, -1250., 0.0);
+{ 48426} G2G400n +PERO5              =  0.460G1G400x + 0.270GGH400e + 0.270GGH400F                 : ARR( 0.183E-11,   450., 0.0);
+{ 48427} G2G400n +PERO6              =  0.300G1G400x + 0.350GGH400e + 0.350GGH400F                 : ARR( 0.168E-13, -1300., 0.0);
+{ 48428} G2G400n +PERO9              =  0.650G1G400x + 0.350GGH400F                                : ARR( 0.100E-10,     0., 0.0);
+{ 48429} GAH400e +GHO                =       GAH400I +      GHO                                    : ARR( 0.188E-10,     0., 0.0);
+{ 48430} GAH400e +GHO                =       GAH400q +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 48431} GAH400e +GHO                =       GAH400k +      GHO                                    : ARR( 0.163E-10,     0., 0.0);
+{ 48432} GAH400e +GHO                =       G2A400v                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 48433} GAH400e +GHO                =       G2A400w                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 48434} GAH400e+HV               =       G1A400p +      GHO                                    :  0.100E+01*SUN;
+{ 48435} GAH400e+HV               =       G1A400W +      GHO                                    :  0.100E+01*SUN;
+{ 48436} G2A400v +GNO                =       G1A400p +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 48437} G2A400v +GNO                =       GAH400H                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 48438} G2A400v +GHO2               =       GAH400e                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 48439} G2A400v +GNO3               =       G1A400p +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 48440} G2A400v +MEPERO             =  0.340G1A400p + 0.330GAH400f + 0.330GAH400I                 : ARR( 0.565E-13,  -845., 0.0);
+{ 48441} G2A400v +PERO1              =  0.460G1A400p + 0.270GAH400f + 0.270GAH400I                 : ARR( 0.434E-13,  -900., 0.0);
+{ 48442} G2A400v +PERO2              =  0.400G1A400p + 0.300GAH400f + 0.300GAH400I                 : ARR( 0.162E-13, -1400., 0.0);
+{ 48443} G2A400v +PERO3              =  0.460G1A400p + 0.270GAH400f + 0.270GAH400I                 : ARR( 0.488E-13, -1250., 0.0);
+{ 48444} G2A400v +PERO5              =  0.460G1A400p + 0.270GAH400f + 0.270GAH400I                 : ARR( 0.183E-11,   450., 0.0);
+{ 48445} G2A400v +PERO6              =  0.300G1A400p + 0.350GAH400f + 0.350GAH400I                 : ARR( 0.168E-13, -1300., 0.0);
+{ 48446} G2A400v +PERO9              =  0.650G1A400p + 0.350GAH400I                                : ARR( 0.100E-10,     0., 0.0);
+{ 48447} G2A400w +GNO                =       G1A400W +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 48448} G2A400w +GNO                =       GAH4004                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 48449} G2A400w +GHO2               =       GAH400e                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 48450} G2A400w +GNO3               =       G1A400W +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 48451} G2A400w +MEPERO             =  0.480G1A400W + 0.260GAH400K + 0.260GAH400k                 : ARR( 0.164E-12,  -795., 0.0);
+{ 48452} G2A400w +PERO1              =  0.600G1A400W + 0.200GAH400K + 0.200GAH400k                 : ARR( 0.126E-12,  -850., 0.0);
+{ 48453} G2A400w +PERO2              =  0.560G1A400W + 0.220GAH400K + 0.220GAH400k                 : ARR( 0.471E-13, -1350., 0.0);
+{ 48454} G2A400w +PERO3              =  0.600G1A400W + 0.200GAH400K + 0.200GAH400k                 : ARR( 0.142E-12, -1200., 0.0);
+{ 48455} G2A400w +PERO5              =  0.600G1A400W + 0.200GAH400K + 0.200GAH400k                 : ARR( 0.533E-11,   500., 0.0);
+{ 48456} G2A400w +PERO6              =  0.460G1A400W + 0.270GAH400K + 0.270GAH400k                 : ARR( 0.488E-13, -1250., 0.0);
+{ 48457} G2A400w +PERO9              =  0.800G1A400W + 0.200GAH400k                                : ARR( 0.100E-10,     0., 0.0);
+{ 48458} GPH400f                     =       G3H400W +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 48459} GPH400f +GHO                =       GPH400l +      GHO                                    : ARR( 0.161E-10,     0., 0.0);
+{ 48460} GPH400f +GHO                =       GPH400r +      GHO2                                   : ARR( 0.103E-10,     0., 0.0);
+{ 48461} GPH400f +GHO                =       GPH400J +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 48462} GPH400f +GHO                =       G2P400y                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 48463} GPH400f +GHO                =       G2P400z                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 48464} GPH400f+HV               =       G1P400X +      GHO                                    :  0.100E+01*SUN;
+{ 48465} GPH400f+HV               =       G1P400q +      GHO                                    :  0.100E+01*SUN;
+{ 48466} GPH400f+HV               =       G3H400W +      GNO2                                   :  0.100E+01*SUN;
+{ 48467} G2P400y +GNO                =       G1P400X +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 48468} G2P400y +GNO                =       GPH4004                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 48469} G2P400y +GHO2               =       GPH400f                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 48470} G2P400y +GNO3               =       G1P400X +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 48471} G2P400y +MEPERO             =  0.480G1P400X + 0.260GPH400K + 0.260GPH400l                 : ARR( 0.164E-12,  -795., 0.0);
+{ 48472} G2P400y +PERO1              =  0.600G1P400X + 0.200GPH400K + 0.200GPH400l                 : ARR( 0.126E-12,  -850., 0.0);
+{ 48473} G2P400y +PERO2              =  0.560G1P400X + 0.220GPH400K + 0.220GPH400l                 : ARR( 0.471E-13, -1350., 0.0);
+{ 48474} G2P400y +PERO3              =  0.600G1P400X + 0.200GPH400K + 0.200GPH400l                 : ARR( 0.142E-12, -1200., 0.0);
+{ 48475} G2P400y +PERO5              =  0.600G1P400X + 0.200GPH400K + 0.200GPH400l                 : ARR( 0.533E-11,   500., 0.0);
+{ 48476} G2P400y +PERO6              =  0.460G1P400X + 0.270GPH400K + 0.270GPH400l                 : ARR( 0.488E-13, -1250., 0.0);
+{ 48477} G2P400y +PERO9              =  0.800G1P400X + 0.200GPH400l                                : ARR( 0.100E-10,     0., 0.0);
+{ 48478} G2P400z +GNO                =       G1P400q +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 48479} G2P400z +GNO                =       GPH400I                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 48480} G2P400z +GHO2               =       GPH400f                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 48481} G2P400z +GNO3               =       G1P400q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 48482} G2P400z +MEPERO             =  0.340G1P400q + 0.330GPH400g + 0.330GPH400J                 : ARR( 0.565E-13,  -845., 0.0);
+{ 48483} G2P400z +PERO1              =  0.460G1P400q + 0.270GPH400g + 0.270GPH400J                 : ARR( 0.434E-13,  -900., 0.0);
+{ 48484} G2P400z +PERO2              =  0.400G1P400q + 0.300GPH400g + 0.300GPH400J                 : ARR( 0.162E-13, -1400., 0.0);
+{ 48485} G2P400z +PERO3              =  0.460G1P400q + 0.270GPH400g + 0.270GPH400J                 : ARR( 0.488E-13, -1250., 0.0);
+{ 48486} G2P400z +PERO5              =  0.460G1P400q + 0.270GPH400g + 0.270GPH400J                 : ARR( 0.183E-11,   450., 0.0);
+{ 48487} G2P400z +PERO6              =  0.300G1P400q + 0.350GPH400g + 0.350GPH400J                 : ARR( 0.168E-13, -1300., 0.0);
+{ 48488} G2P400z +PERO9              =  0.650G1P400q + 0.350GPH400J                                : ARR( 0.100E-10,     0., 0.0);
+{ 48489} GGH400e +GHO                =       GGD4006 +      GHO                                    : ARR( 0.162E-10,     0., 0.0);
+{ 48490} GGH400e +GHO                =       GGH400f +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 48491} GGH400e +GHO                =       GGH400F +      GHO2                                   : ARR( 0.633E-11,     0., 0.0);
+{ 48492} GGH400e +GHO                =       G2G400O                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 48493} GGH400e +GHO                =       G3H400X                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 48494} GGH400e+HV               =       G1G400R +      GHO                                    :  0.100E+01*SUN;
+{ 48495} GGH400e+HV               =       GHD3005 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 48496} GAH400f +GHO                =       GAH400I +      GHO2                                   : ARR( 0.476E-11,     0., 0.0);
+{ 48497} GAH400f +GHO                =       GAH400h +      GHO2                                   : ARR( 0.105E-10,     0., 0.0);
+{ 48498} GAH400f +GHO                =       GAD4007 +      GHO                                    : ARR( 0.165E-10,     0., 0.0);
+{ 48499} GAH400f +GHO                =       G2A400j                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 48500} GAH400f+HV               =       G1A400X +      GHO                                    :  0.100E+01*SUN;
+{ 48501} GPH400g                     =       G3H400X +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 48502} GPH400g +GHO                =       GPD4006 +      GHO                                    : ARR( 0.162E-10,     0., 0.0);
+{ 48503} GPH400g +GHO                =       GPH400i +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 48504} GPH400g +GHO                =       GPH400J +      GHO2                                   : ARR( 0.633E-11,     0., 0.0);
+{ 48505} GPH400g +GHO                =       G2P400b                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 48506} GPH400g+HV               =       G1P400Y +      GHO                                    :  0.100E+01*SUN;
+{ 48507} GPH400g+HV               =       G3H400X +      GNO2                                   :  0.100E+01*SUN;
+{ 48508} GGN501X +GHO                =       GGN5024 +      GHO2                                   : ARR( 0.870E-12,     0., 0.0);
+{ 48509} GGN501X +GHO                =       G3N501E                                               : ARR( 0.206E-11,  -190., 0.0);
+{ 48510} GGN501X+HV               =       G1G503y +      GNO2                                   :  0.100E+01*SUN;
+{ 48511} GGN501X+HV               =       G1G503z +      GNO2                                   :  0.100E+01*SUN;
+{ 48512} GGN501X+HV               =       G2N400a +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 48513} G1G503y                     =       GCH2O   +      GGN400I +      GHO2                    : ARR( 0.200E+15,  5296., 0.0);
+{ 48514} G1G503y                     =       GDO2000 +      GGD3000 +      GNO2                    : ARR( 0.200E+15,  6367., 0.0);
+{ 48515} G1G503z                     =       GDO2000 +      GGD3000 +      GNO2                    : ARR( 0.200E+15,  5685., 0.0);
+{ 48516} GAN501X +GHO                =       GAN502F +      GHO2                                   : ARR( 0.828E-12,     0., 0.0);
+{ 48517} GAN501X +GHO                =       G2A502O                                               : ARR( 0.131E-12,     0., 0.0);
+{ 48518} GAN501X +GHO                =       G1A502l                                               : ARR( 0.216E-17,    85., 2.0);
+{ 48519} GAN501X +GHO                =       G2N400a +      GCO2                                   : ARR( 0.535E-12,     0., 0.0);
+{ 48520} GAN501X+HV               =       G1A501h +      GNO2                                   :  0.100E+01*SUN;
+{ 48521} GAN501X+HV               =       G1A501c +      GNO2                                   :  0.100E+01*SUN;
+{ 48522} GPN501Z                     =       G3N501E +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 48523} GPN501Z +GHO                =       GPN501d +      GHO2                                   : ARR( 0.838E-12,     0., 0.0);
+{ 48524} GPN501Z +GHO                =       G2P501X                                               : ARR( 0.180E-12,     0., 0.0);
+{ 48525} GPN501Z +GHO                =       G1P501l                                               : ARR( 0.219E-17,    85., 2.0);
+{ 48526} GPN501Z+HV               =       G1P501j +      GNO2                                   :  0.100E+01*SUN;
+{ 48527} GPN501Z+HV               =       G1P501e +      GNO2                                   :  0.100E+01*SUN;
+{ 48528} GPN501Z+HV               =       G3N501E +      GNO2                                   :  0.100E+01*SUN;
+{ 48529} GHN506N +GHO                =       GND501C +      GHO                                    : ARR( 0.163E-10,     0., 0.0);
+{ 48530} GHN506N +GHO                =       G3H400I +      GCO                                    : ARR( 0.128E-10,     0., 0.0);
+{ 48531} GHN506N +GHO                =       G2N506G                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 48532} GHN506N +GNO3               =       G3H400I +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 48533} GHN506N+HV               =       G1N5054 +      GHO                                    :  0.100E+01*SUN;
+{ 48534} GHN506N+HV               =       G1H50B7 +      GNO2                                   :  0.100E+01*SUN;
+{ 48535} GHN506N+HV               =       G3H400I +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 48536} GHN506N+HV               =       GHN400M +      GCO                                    :  0.100E+01*SUN;
+{ 48537} GHN506N+HV               =       GHN3000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 48538} G2N506G +GNO                =       G1N5054 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 48539} G2N506G +GNO                =       GNN501u                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 48540} G2N506G +GHO2               =       GHN506N                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 48541} G2N506G +GNO3               =       G1N5054 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 48542} G2N506G +MEPERO             =  0.480G1N5054 + 0.260GND500Z + 0.260GND501C                 : ARR( 0.146E-12,  -445., 0.0);
+{ 48543} G2N506G +PERO1              =  0.600G1N5054 + 0.200GND500Z + 0.200GND501C                 : ARR( 0.112E-12,  -500., 0.0);
+{ 48544} G2N506G +PERO2              =  0.560G1N5054 + 0.220GND500Z + 0.220GND501C                 : ARR( 0.418E-13, -1000., 0.0);
+{ 48545} G2N506G +PERO3              =  0.600G1N5054 + 0.200GND500Z + 0.200GND501C                 : ARR( 0.126E-12,  -850., 0.0);
+{ 48546} G2N506G +PERO5              =  0.600G1N5054 + 0.200GND500Z + 0.200GND501C                 : ARR( 0.473E-11,   850., 0.0);
+{ 48547} G2N506G +PERO6              =  0.460G1N5054 + 0.270GND500Z + 0.270GND501C                 : ARR( 0.434E-13,  -900., 0.0);
+{ 48548} G2N506G +PERO9              =  0.800G1N5054 + 0.200GND501C                                : ARR( 0.100E-10,     0., 0.0);
+{ 48549} G1H50B7                     =       GHD3000 +      G3D2000                                : ARR( 0.200E+15,  2978., 0.0);
+{ 48550} GGN501Y +GHO                =       GGN5025 +      GHO2                                   : ARR( 0.261E-11,     0., 0.0);
+{ 48551} GGN501Y +GHO                =       G3N501F                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 48552} GGN501Y+HV               =       G3K2001 +      GGD3000 +      GNO2                    :  0.100E+01*SUN;
+{ 48553} GGN501Y+HV               =       G1G501S +      GNO2                                   :  0.100E+01*SUN;
+{ 48554} GGN501Y+HV               =       G2N400x +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 48555} GAN501Y +GHO                =       GAN501e +      GHO2                                   : ARR( 0.273E-11,     0., 0.0);
+{ 48556} GAN501Y +GHO                =       G2N400x +      GCO2                                   : ARR( 0.579E-12,     0., 0.0);
+{ 48557} GAN501Y+HV               =       G3K2001 +      GAD3000 +      GNO2                    :  0.100E+01*SUN;
+{ 48558} GAN501Y+HV               =       G1A501d +      GNO2                                   :  0.100E+01*SUN;
+{ 48559} GPN501a                     =       G3N501F +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 48560} GPN501a +GHO                =       GPN501l +      GHO2                                   : ARR( 0.265E-11,     0., 0.0);
+{ 48561} GPN501a +GHO                =       G2P503t                                               : ARR( 0.186E-12,     0., 0.0);
+{ 48562} GPN501a+HV               =       G3K2001 +      GPD3000 +      GNO2                    :  0.100E+01*SUN;
+{ 48563} GPN501a+HV               =       G1P501f +      GNO2                                   :  0.100E+01*SUN;
+{ 48564} GPN501a+HV               =       G3N501F +      GNO2                                   :  0.100E+01*SUN;
+{ 48565} G2P503t +GNO                =       G1P504p +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 48566} G2P503t +GNO                =       GPN501r                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 48567} G2P503t +GHO2               =       GPH504A                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 48568} G2P503t +GNO3               =       G1P504p +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 48569} G2P503t +MEPERO             =  0.340G1P504p + 0.330GPN502J + 0.330GPN501s                 : ARR( 0.565E-13,  -845., 0.0);
+{ 48570} G2P503t +PERO1              =  0.460G1P504p + 0.270GPN502J + 0.270GPN501s                 : ARR( 0.434E-13,  -900., 0.0);
+{ 48571} G2P503t +PERO2              =  0.400G1P504p + 0.300GPN502J + 0.300GPN501s                 : ARR( 0.162E-13, -1400., 0.0);
+{ 48572} G2P503t +PERO3              =  0.460G1P504p + 0.270GPN502J + 0.270GPN501s                 : ARR( 0.488E-13, -1250., 0.0);
+{ 48573} G2P503t +PERO5              =  0.460G1P504p + 0.270GPN502J + 0.270GPN501s                 : ARR( 0.183E-11,   450., 0.0);
+{ 48574} G2P503t +PERO6              =  0.300G1P504p + 0.350GPN502J + 0.350GPN501s                 : ARR( 0.168E-13, -1300., 0.0);
+{ 48575} G2P503t +PERO9              =  0.650G1P504p + 0.350GPN501s                                : ARR( 0.100E-10,     0., 0.0);
+{ 48576} G1P504p                     =       GND400L +      GCO     +      GNO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 48577} GHN401B +GHO                =       GHN401C +      GHO2                                   : ARR( 0.251E-11,     0., 0.0);
+{ 48578} GHN401B +GHO                =       GND400L +      GHO                                    : ARR( 0.329E-11,     0., 0.0);
+{ 48579} GHN401B +GHO                =       G2N400x                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 48580} GHN401B+HV               =       G3K2001 +      GHD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 48581} GHN401B+HV               =       G1H401w +      GNO2                                   :  0.100E+01*SUN;
+{ 48582} GHN401B+HV               =       G1N4016 +      GHO                                    :  0.100E+01*SUN;
+{ 48583} G1H401w                     =       G3K2001 +      GHD2000                                : ARR( 0.200E+15,  3069., 0.0);
+{ 48584} GHN506O +GHO                =       GND5018 +      GHO                                    : ARR( 0.677E-11,     0., 0.0);
+{ 48585} GHN506O +GHO                =       G3H400J +      GCO                                    : ARR( 0.128E-10,     0., 0.0);
+{ 48586} GHN506O +GHO                =       G2N506H                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 48587} GHN506O +GNO3               =       G3H400J +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 48588} GHN506O+HV               =       G1N5067 +      GHO                                    :  0.100E+01*SUN;
+{ 48589} GHN506O+HV               =       G1H50B8 +      GNO2                                   :  0.100E+01*SUN;
+{ 48590} GHN506O+HV               =       G3H400J +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 48591} GHN506O+HV               =       GHN400p +      GCO                                    :  0.100E+01*SUN;
+{ 48592} GHN506O+HV               =       GHN3002 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 48593} G2N506H +GNO                =       G1N5067 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 48594} G2N506H +GNO                =       GNN502X                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 48595} G2N506H +GHO2               =       GHN506O                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 48596} G2N506H +GNO3               =       G1N5067 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 48597} G2N506H +MEPERO             =  0.340G1N5067 + 0.330GND500v + 0.330GND5018                 : ARR( 0.565E-13,  -845., 0.0);
+{ 48598} G2N506H +PERO1              =  0.460G1N5067 + 0.270GND500v + 0.270GND5018                 : ARR( 0.434E-13,  -900., 0.0);
+{ 48599} G2N506H +PERO2              =  0.400G1N5067 + 0.300GND500v + 0.300GND5018                 : ARR( 0.162E-13, -1400., 0.0);
+{ 48600} G2N506H +PERO3              =  0.460G1N5067 + 0.270GND500v + 0.270GND5018                 : ARR( 0.488E-13, -1250., 0.0);
+{ 48601} G2N506H +PERO5              =  0.460G1N5067 + 0.270GND500v + 0.270GND5018                 : ARR( 0.183E-11,   450., 0.0);
+{ 48602} G2N506H +PERO6              =  0.300G1N5067 + 0.350GND500v + 0.350GND5018                 : ARR( 0.168E-13, -1300., 0.0);
+{ 48603} G2N506H +PERO9              =  0.650G1N5067 + 0.350GND5018                                : ARR( 0.100E-10,     0., 0.0);
+{ 48604} G1H50B8                     =       GHD3002 +      G3D2000                                : ARR( 0.200E+15,  3233., 0.0);
+{ 48605} GHN506P +GHO                =       GND5015 +      GHO                                    : ARR( 0.355E-10,     0., 0.0);
+{ 48606} GHN506P +GHO                =       G3H503t                                               : ARR( 0.440E-11,     0., 0.0);
+{ 48607} GHN506P +GHO                =       G2N5059                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 48608} GHN506P +GNO3               =       G3H503t +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 48609} GHN506P+HV               =       G1N5062 +      GHO                                    :  0.100E+01*SUN;
+{ 48610} GHN506P+HV               =       G1H50B9 +      GNO2                                   :  0.100E+01*SUN;
+{ 48611} GHN506P+HV               =       GHD400H +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 48612} GHN506P+HV               =       GDK3000 +      GND2000 +      GHO2    +      GHO      :  0.100E+01*SUN;
+{ 48613} G3H503t +GHO2               =  0.800GGH5022 + 0.200GAH502g + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 48614} G3H503t +GNO                =       GHD400H + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 48615} G3H503t +GNO2               =       GPH502K                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 48616} G3H503t +GNO3               =       GHD400H + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 48617} G3H503t +MEPERO             =  0.685GHD400H + 0.315GAH502g + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 48618} G3H503t +PERO1              =  0.800GHD400H + 0.200GAH502g + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 48619} G3H503t +PERO2              =  0.750GHD400H + 0.250GAH502g + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 48620} G3H503t +PERO3              =  0.800GHD400H + 0.200GAH502g + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 48621} G3H503t +PERO5              =  0.650GHD400H + 0.350GAH502g + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 48622} G3H503t +PERO6              =  0.650GHD400H + 0.350GAH502g + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 48623} G3H503t +PERO9              =       GHD400H +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 48624} G1H50B9                     =       GHD3002 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  4899., 0.0);
+{ 48625} G1H50B9                     =       GHD400H +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 48626} GHD501M +GHO                =       GDK500Z +      GHO                                    : ARR( 0.115E-09,     0., 0.0);
+{ 48627} GHD501M +GHO                =       G3H400M +      GCO                                    : ARR( 0.138E-10,     0., 0.0);
+{ 48628} GHD501M +GNO3               =       G3H400M +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 48629} GHD501M+HV               =       G1D5019 +      GHO                                    :  0.100E+01*SUN;
+{ 48630} GHD501M+HV               =       G3H400M +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 48631} GHD501M+HV               =       GHD400H +      GCO                                    :  0.100E+01*SUN;
+{ 48632} GHD501M+HV               =       GHO3002 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 48633} GGN501Z +GHO                =       GGN502C +      GHO2                                   : ARR( 0.839E-12,     0., 0.0);
+{ 48634} GGN501Z +GHO                =       G2G502C                                               : ARR( 0.548E-12,     0., 0.0);
+{ 48635} GGN501Z +GHO                =       G3N501H                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 48636} GGN501Z+HV               =       G1G5041 +      GNO2                                   :  0.100E+01*SUN;
+{ 48637} GGN501Z+HV               =       G3N3004 +      G2G2000                                :  0.100E+01*SUN;
+{ 48638} GGN501Z+HV               =       G2N400y +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 48639} G1G5041                     =       GDO2000 +      G3G3000                                : ARR( 0.200E+15,  2981., 0.0);
+{ 48640} GAN501Z +GHO                =       GAN502Y +      GHO2                                   : ARR( 0.835E-12,     0., 0.0);
+{ 48641} GAN501Z +GHO                =       G2A502d                                               : ARR( 0.404E-12,     0., 0.0);
+{ 48642} GAN501Z +GHO                =       G1A5035                                               : ARR( 0.218E-17,    85., 2.0);
+{ 48643} GAN501Z +GHO                =       G2N400y +      GCO2                                   : ARR( 0.540E-12,     0., 0.0);
+{ 48644} GAN501Z+HV               =       G1A501x +      GNO2                                   :  0.100E+01*SUN;
+{ 48645} GAN501Z+HV               =       G3N3004 +      G2A2000                                :  0.100E+01*SUN;
+{ 48646} GPN501b                     =       G3N501H +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 48647} GPN501b +GHO                =       GPN5021 +      GHO2                                   : ARR( 0.843E-12,     0., 0.0);
+{ 48648} GPN501b +GHO                =       G2P501r                                               : ARR( 0.551E-12,     0., 0.0);
+{ 48649} GPN501b +GHO                =       G1P502B                                               : ARR( 0.220E-17,    85., 2.0);
+{ 48650} GPN501b+HV               =       G1P502A +      GNO2                                   :  0.100E+01*SUN;
+{ 48651} GPN501b+HV               =       G3N3004 +      G2P2000                                :  0.100E+01*SUN;
+{ 48652} GPN501b+HV               =       G3N501H +      GNO2                                   :  0.100E+01*SUN;
+{ 48653} GGK500Q +GHO                =       GGD500G +      GHO2                                   : ARR( 0.250E-11,     0., 0.0);
+{ 48654} GGK500Q +GHO                =       G2G502z                                               : ARR( 0.537E-12,     0., 0.0);
+{ 48655} GGK500Q +GHO                =       G3K500X                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 48656} GGK500Q+HV               =       G3K2001 +      G3G3000                                :  0.100E+01*SUN;
+{ 48657} GGK500Q+HV               =       G2K400C +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 48658} G2G502z +GNO                =       G1G5042 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 48659} G2G502z +GNO                =       GGN502d                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 48660} G2G502z +GHO2               =       GGH504A                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 48661} G2G502z +GNO3               =       G1G5042 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 48662} G2G502z +MEPERO             =  0.340G1G5042 + 0.330GGK500a + 0.330GGK500c                 : ARR( 0.565E-13,  -845., 0.0);
+{ 48663} G2G502z +PERO1              =  0.460G1G5042 + 0.270GGK500a + 0.270GGK500c                 : ARR( 0.434E-13,  -900., 0.0);
+{ 48664} G2G502z +PERO2              =  0.400G1G5042 + 0.300GGK500a + 0.300GGK500c                 : ARR( 0.162E-13, -1400., 0.0);
+{ 48665} G2G502z +PERO3              =  0.460G1G5042 + 0.270GGK500a + 0.270GGK500c                 : ARR( 0.488E-13, -1250., 0.0);
+{ 48666} G2G502z +PERO5              =  0.460G1G5042 + 0.270GGK500a + 0.270GGK500c                 : ARR( 0.183E-11,   450., 0.0);
+{ 48667} G2G502z +PERO6              =  0.300G1G5042 + 0.350GGK500a + 0.350GGK500c                 : ARR( 0.168E-13, -1300., 0.0);
+{ 48668} G2G502z +PERO9              =  0.650G1G5042 + 0.350GGK500c                                : ARR( 0.100E-10,     0., 0.0);
+{ 48669} G1G5042                     =       GGD500M +      GHO2                                   : ARR( 0.160E+12,  4515., 0.0);
+{ 48670} G1G5042                     =       G3K2001 +      GGD2000 +      GCO                     : ARR( 0.200E+15,  5653., 0.0);
+{ 48671} GAK500P +GHO                =       GAD500G +      GHO2                                   : ARR( 0.255E-11,     0., 0.0);
+{ 48672} GAK500P +GHO                =       G2A503q                                               : ARR( 0.405E-12,     0., 0.0);
+{ 48673} GAK500P +GHO                =       G2K400C +      GCO2                                   : ARR( 0.542E-12,     0., 0.0);
+{ 48674} GAK500P+HV               =       G3K2001 +      G3A3000                                :  0.100E+01*SUN;
+{ 48675} G2A503q +GNO                =       G1A504j +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 48676} G2A503q +GNO                =       GAN5022                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 48677} G2A503q +GHO2               =       GAH504L                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 48678} G2A503q +GNO3               =       G1A504j +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 48679} G2A503q +MEPERO             =  0.340G1A504j + 0.330GAK500a + 0.330GAK500X                 : ARR( 0.565E-13,  -845., 0.0);
+{ 48680} G2A503q +PERO1              =  0.460G1A504j + 0.270GAK500a + 0.270GAK500X                 : ARR( 0.434E-13,  -900., 0.0);
+{ 48681} G2A503q +PERO2              =  0.400G1A504j + 0.300GAK500a + 0.300GAK500X                 : ARR( 0.162E-13, -1400., 0.0);
+{ 48682} G2A503q +PERO3              =  0.460G1A504j + 0.270GAK500a + 0.270GAK500X                 : ARR( 0.488E-13, -1250., 0.0);
+{ 48683} G2A503q +PERO5              =  0.460G1A504j + 0.270GAK500a + 0.270GAK500X                 : ARR( 0.183E-11,   450., 0.0);
+{ 48684} G2A503q +PERO6              =  0.300G1A504j + 0.350GAK500a + 0.350GAK500X                 : ARR( 0.168E-13, -1300., 0.0);
+{ 48685} G2A503q +PERO9              =  0.650G1A504j + 0.350GAK500X                                : ARR( 0.100E-10,     0., 0.0);
+{ 48686} G1A504j                     =       GAD500O +      GHO2                                   : ARR( 0.160E+12,  4515., 0.0);
+{ 48687} G1A504j                     =       G3K2001 +      GAD2000 +      GCO                     : ARR( 0.200E+15,  5653., 0.0);
+{ 48688} G1A504j                     =       GDK4009 +      GCO     +      GHO                     : ARR( 0.200E+15,  6787., 0.0);
+{ 48689} GPK500Q                     =       G3K500X +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 48690} GPK500Q +GHO                =       GPD500F +      GHO2                                   : ARR( 0.257E-11,     0., 0.0);
+{ 48691} GPK500Q +GHO                =       G2P503u                                               : ARR( 0.550E-12,     0., 0.0);
+{ 48692} GPK500Q+HV               =       G3K2001 +      G3P3000                                :  0.100E+01*SUN;
+{ 48693} GPK500Q+HV               =       G3K500X +      GNO2                                   :  0.100E+01*SUN;
+{ 48694} G2P503u +GNO                =       G1P504q +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 48695} G2P503u +GNO                =       GPN502B                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 48696} G2P503u +GHO2               =       GPH504N                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 48697} G2P503u +GNO3               =       G1P504q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 48698} G2P503u +MEPERO             =  0.340G1P504q + 0.330GPK500c + 0.330GPK500b                 : ARR( 0.565E-13,  -845., 0.0);
+{ 48699} G2P503u +PERO1              =  0.460G1P504q + 0.270GPK500c + 0.270GPK500b                 : ARR( 0.434E-13,  -900., 0.0);
+{ 48700} G2P503u +PERO2              =  0.400G1P504q + 0.300GPK500c + 0.300GPK500b                 : ARR( 0.162E-13, -1400., 0.0);
+{ 48701} G2P503u +PERO3              =  0.460G1P504q + 0.270GPK500c + 0.270GPK500b                 : ARR( 0.488E-13, -1250., 0.0);
+{ 48702} G2P503u +PERO5              =  0.460G1P504q + 0.270GPK500c + 0.270GPK500b                 : ARR( 0.183E-11,   450., 0.0);
+{ 48703} G2P503u +PERO6              =  0.300G1P504q + 0.350GPK500c + 0.350GPK500b                 : ARR( 0.168E-13, -1300., 0.0);
+{ 48704} G2P503u +PERO9              =  0.650G1P504q + 0.350GPK500b                                : ARR( 0.100E-10,     0., 0.0);
+{ 48705} G1P504q                     =       GPD500M +      GHO2                                   : ARR( 0.160E+12,  4515., 0.0);
+{ 48706} G1P504q                     =       G3K2001 +      GPD2000 +      GCO                     : ARR( 0.200E+15,  5653., 0.0);
+{ 48707} GHK500x +GHO                =       GHK5011 +      GHO2                                   : ARR( 0.656E-11,     0., 0.0);
+{ 48708} GHK500x +GHO                =       GDK500Y +      GHO                                    : ARR( 0.533E-10,     0., 0.0);
+{ 48709} GHK500x +GHO                =       G2K500o                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 48710} GHK500x+HV               =       G3K2001 +      G3H3003                                :  0.100E+01*SUN;
+{ 48711} GHK500x+HV               =       G1K500x +      GHO                                    :  0.100E+01*SUN;
+{ 48712} GAH5026 +GHO                =       GAH503J +      GHO2                                   : ARR( 0.894E-12,     0., 0.0);
+{ 48713} GAH5026 +GHO                =       GAN501Z +      GHO                                    : ARR( 0.917E-11,     0., 0.0);
+{ 48714} GAH5026 +GHO                =       G2A501O                                               : ARR( 0.211E-11,  -190., 0.0);
+{ 48715} GAH5026+HV               =       G1A504k +      GNO2                                   :  0.100E+01*SUN;
+{ 48716} GAH5026+HV               =       G1A501c +      GHO                                    :  0.100E+01*SUN;
+{ 48717} G1A504k                     =       GCH2O   +      GAH400T +      GHO2                    : ARR( 0.200E+15,  5296., 0.0);
+{ 48718} G1A504k                     =       GDO2000 +      GAD3000 +      GHO                     : ARR( 0.200E+15,  4828., 0.0);
+{ 48719} GAN501a +GHO                =       GAN502R +      GHO2                                   : ARR( 0.884E-12,     0., 0.0);
+{ 48720} GAN501a +GHO                =       GAN501Z +      GHO2                                   : ARR( 0.226E-11,     0., 0.0);
+{ 48721} GAN501a +GHO                =       G2A502r                                               : ARR( 0.701E-12,     0., 0.0);
+{ 48722} GAN501a +GHO                =       G2N400A +      GCO2                                   : ARR( 0.571E-12,     0., 0.0);
+{ 48723} GAN501a+HV               =       G1A504l +      GNO2                                   :  0.100E+01*SUN;
+{ 48724} G1A504l                     =       GDO2000 +      GAD3000 +      GHO2                    : ARR( 0.200E+15,  3619., 0.0);
+{ 48725} GPH5023                     =       G3H502E +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 48726} GPH5023 +GHO                =       GPH503P +      GHO2                                   : ARR( 0.820E-12,     0., 0.0);
+{ 48727} GPH5023 +GHO                =       GPN501b +      GHO                                    : ARR( 0.840E-11,     0., 0.0);
+{ 48728} GPH5023 +GHO                =       G2P502r                                               : ARR( 0.878E-12,     0., 0.0);
+{ 48729} GPH5023 +GHO                =       G2P501Q                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 48730} GPH5023+HV               =       G1P504r +      GNO2                                   :  0.100E+01*SUN;
+{ 48731} GPH5023+HV               =       G1P501e +      GHO                                    :  0.100E+01*SUN;
+{ 48732} GPH5023+HV               =       G3H502E +      GNO2                                   :  0.100E+01*SUN;
+{ 48733} G1P504r                     =       GCH2O   +      GPH400T +      GHO2                    : ARR( 0.200E+15,  5296., 0.0);
+{ 48734} G1P504r                     =       GDO2000 +      GPD3000 +      GHO                     : ARR( 0.200E+15,  4828., 0.0);
+{ 48735} GPN501c                     =       G3N501f +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 48736} GPN501c +GHO                =       GPN502Y +      GHO2                                   : ARR( 0.890E-12,     0., 0.0);
+{ 48737} GPN501c +GHO                =       GPN501b +      GHO2                                   : ARR( 0.228E-11,     0., 0.0);
+{ 48738} GPN501c +GHO                =       G2P502t                                               : ARR( 0.954E-12,     0., 0.0);
+{ 48739} GPN501c+HV               =       G1P504s +      GNO2                                   :  0.100E+01*SUN;
+{ 48740} GPN501c+HV               =       G3N501f +      GNO2                                   :  0.100E+01*SUN;
+{ 48741} G1P504s                     =       GDO2000 +      GPD3000 +      GHO2                    : ARR( 0.200E+15,  3619., 0.0);
+{ 48742} GHH502f +GHO                =       GHN504X +      GHO                                    : ARR( 0.337E-10,     0., 0.0);
+{ 48743} GHH502f +GHO                =       GHN505y +      GHO                                    : ARR( 0.828E-11,     0., 0.0);
+{ 48744} GHH502f +GHO                =       G3H503u                                               : ARR( 0.417E-11,     0., 0.0);
+{ 48745} GHH502f +GHO                =       G2H502n                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 48746} GHH502f +GHO                =       G2H503d                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 48747} GHH502f +GNO3               =       G3H503u +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 48748} GHH502f+HV               =       G1H507D +      GHO                                    :  0.100E+01*SUN;
+{ 48749} GHH502f+HV               =       G1H507Z +      GHO                                    :  0.100E+01*SUN;
+{ 48750} GHH502f+HV               =       G1H50BA +      GNO2                                   :  0.100E+01*SUN;
+{ 48751} GHH502f+HV               =       GHH400M +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 48752} GHH502f+HV               =       GDK3000 +      GND2000 + 2.000GHO                     :  0.100E+01*SUN;
+{ 48753} G3H503u +GHO2               =  0.800GGH502P + 0.200GAH502f + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 48754} G3H503u +GNO                =       GHH400M + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 48755} G3H503u +GNO2               =       GPH502p                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 48756} G3H503u +GNO3               =       GHH400M + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 48757} G3H503u +MEPERO             =  0.685GHH400M + 0.315GAH502f + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 48758} G3H503u +PERO1              =  0.800GHH400M + 0.200GAH502f + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 48759} G3H503u +PERO2              =  0.750GHH400M + 0.250GAH502f + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 48760} G3H503u +PERO3              =  0.800GHH400M + 0.200GAH502f + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 48761} G3H503u +PERO5              =  0.650GHH400M + 0.350GAH502f + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 48762} G3H503u +PERO6              =  0.650GHH400M + 0.350GAH502f + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 48763} G3H503u +PERO9              =       GHH400M +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 48764} G2H503d +GNO                =       G1H507Z +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 48765} G2H503d +GNO                =       GHN504O                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 48766} G2H503d +GHO2               =       GHH502f                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 48767} G2H503d +GNO3               =       G1H507Z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 48768} G2H503d +MEPERO             =  0.340G1H507Z + 0.330GHN506P + 0.330GHN505y                 : ARR( 0.565E-13,  -845., 0.0);
+{ 48769} G2H503d +PERO1              =  0.460G1H507Z + 0.270GHN506P + 0.270GHN505y                 : ARR( 0.434E-13,  -900., 0.0);
+{ 48770} G2H503d +PERO2              =  0.400G1H507Z + 0.300GHN506P + 0.300GHN505y                 : ARR( 0.162E-13, -1400., 0.0);
+{ 48771} G2H503d +PERO3              =  0.460G1H507Z + 0.270GHN506P + 0.270GHN505y                 : ARR( 0.488E-13, -1250., 0.0);
+{ 48772} G2H503d +PERO5              =  0.460G1H507Z + 0.270GHN506P + 0.270GHN505y                 : ARR( 0.183E-11,   450., 0.0);
+{ 48773} G2H503d +PERO6              =  0.300G1H507Z + 0.350GHN506P + 0.350GHN505y                 : ARR( 0.168E-13, -1300., 0.0);
+{ 48774} G2H503d +PERO9              =  0.650G1H507Z + 0.350GHN505y                                : ARR( 0.100E-10,     0., 0.0);
+{ 48775} G1H50BA                     =       G2H503e                                               : ARR( 0.240E+12,  4177., 0.0);
+{ 48776} G1H50BA                     =       GHD3002 +      GDD2000 +      GHO                     : ARR( 0.200E+15,  6108., 0.0);
+{ 48777} G1H50BA                     =       GHH400M +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 48778} G2H503e +GNO                =       G1H50Ac +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 48779} G2H503e +GNO                =       GHH502L                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 48780} G2H503e +GHO2               =       GHH5038                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 48781} G2H503e +GNO3               =       G1H50Ac +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 48782} G2H503e +MEPERO             =  0.480G1H50Ac + 0.260GHH502E + 0.260GHH502F                 : ARR( 0.164E-12,  -795., 0.0);
+{ 48783} G2H503e +PERO1              =  0.600G1H50Ac + 0.200GHH502E + 0.200GHH502F                 : ARR( 0.126E-12,  -850., 0.0);
+{ 48784} G2H503e +PERO2              =  0.560G1H50Ac + 0.220GHH502E + 0.220GHH502F                 : ARR( 0.471E-13, -1350., 0.0);
+{ 48785} G2H503e +PERO3              =  0.600G1H50Ac + 0.200GHH502E + 0.200GHH502F                 : ARR( 0.142E-12, -1200., 0.0);
+{ 48786} G2H503e +PERO5              =  0.600G1H50Ac + 0.200GHH502E + 0.200GHH502F                 : ARR( 0.533E-11,   500., 0.0);
+{ 48787} G2H503e +PERO6              =  0.460G1H50Ac + 0.270GHH502E + 0.270GHH502F                 : ARR( 0.488E-13, -1250., 0.0);
+{ 48788} G2H503e +PERO9              =  0.800G1H50Ac + 0.200GHH502F                                : ARR( 0.100E-10,     0., 0.0);
+{ 48789} GHH502g +GHO                =       GHK500i +      GHO                                    : ARR( 0.264E-10,     0., 0.0);
+{ 48790} GHH502g +GHO                =       G2H503f                                               : ARR( 0.470E-11,     0., 0.0);
+{ 48791} GHH502g +GHO                =       GHD500t +      GHO                                    : ARR( 0.169E-10,     0., 0.0);
+{ 48792} GHH502g +GHO                =       G2H503g                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 48793} GHH502g +GHO                =       G2H503h                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 48794} GHH502g+HV               =       G3K2001 +      GHD3000 +      GHO                     :  0.100E+01*SUN;
+{ 48795} GHH502g+HV               =       G1H507A +      GHO                                    :  0.100E+01*SUN;
+{ 48796} GHH502g+HV               =       G1H504E +      GHO                                    :  0.100E+01*SUN;
+{ 48797} G2H503f +GNO                =       G1H508r +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 48798} G2H503f +GNO                =       GHH501p                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 48799} G2H503f +GHO2               =       GHH502S                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 48800} G2H503f +GNO3               =       G1H508r +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 48801} G2H503f +MEPERO             =  0.340G1H508r + 0.330GHH502U + 0.330GHH501s                 : ARR( 0.565E-13,  -845., 0.0);
+{ 48802} G2H503f +PERO1              =  0.460G1H508r + 0.270GHH502U + 0.270GHH501s                 : ARR( 0.434E-13,  -900., 0.0);
+{ 48803} G2H503f +PERO2              =  0.400G1H508r + 0.300GHH502U + 0.300GHH501s                 : ARR( 0.162E-13, -1400., 0.0);
+{ 48804} G2H503f +PERO3              =  0.460G1H508r + 0.270GHH502U + 0.270GHH501s                 : ARR( 0.488E-13, -1250., 0.0);
+{ 48805} G2H503f +PERO5              =  0.460G1H508r + 0.270GHH502U + 0.270GHH501s                 : ARR( 0.183E-11,   450., 0.0);
+{ 48806} G2H503f +PERO6              =  0.300G1H508r + 0.350GHH502U + 0.350GHH501s                 : ARR( 0.168E-13, -1300., 0.0);
+{ 48807} G2H503f +PERO9              =  0.650G1H508r + 0.350GHH501s                                : ARR( 0.100E-10,     0., 0.0);
+{ 48808} G2H503g +GNO                =       G1H507A +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 48809} G2H503g +GNO                =       GHN504A                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 48810} G2H503g +GHO2               =       GHH502g                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 48811} G2H503g +GNO3               =       G1H507A +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 48812} G2H503g +MEPERO             =  0.340G1H507A + 0.330GHK5012 + 0.330GHK500i                 : ARR( 0.565E-13,  -845., 0.0);
+{ 48813} G2H503g +PERO1              =  0.460G1H507A + 0.270GHK5012 + 0.270GHK500i                 : ARR( 0.434E-13,  -900., 0.0);
+{ 48814} G2H503g +PERO2              =  0.400G1H507A + 0.300GHK5012 + 0.300GHK500i                 : ARR( 0.162E-13, -1400., 0.0);
+{ 48815} G2H503g +PERO3              =  0.460G1H507A + 0.270GHK5012 + 0.270GHK500i                 : ARR( 0.488E-13, -1250., 0.0);
+{ 48816} G2H503g +PERO5              =  0.460G1H507A + 0.270GHK5012 + 0.270GHK500i                 : ARR( 0.183E-11,   450., 0.0);
+{ 48817} G2H503g +PERO6              =  0.300G1H507A + 0.350GHK5012 + 0.350GHK500i                 : ARR( 0.168E-13, -1300., 0.0);
+{ 48818} G2H503g +PERO9              =  0.650G1H507A + 0.350GHK500i                                : ARR( 0.100E-10,     0., 0.0);
+{ 48819} G2H503h +GNO                =       G1H504E +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 48820} G2H503h +GNO                =       GHN502K                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 48821} G2H503h +GHO2               =       GHH502g                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 48822} G2H503h +GNO3               =       G1H504E +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 48823} G2H503h +MEPERO             =  0.480G1H504E + 0.260GHK500J + 0.260GHD500t                 : ARR( 0.146E-12,  -445., 0.0);
+{ 48824} G2H503h +PERO1              =  0.600G1H504E + 0.200GHK500J + 0.200GHD500t                 : ARR( 0.112E-12,  -500., 0.0);
+{ 48825} G2H503h +PERO2              =  0.560G1H504E + 0.220GHK500J + 0.220GHD500t                 : ARR( 0.418E-13, -1000., 0.0);
+{ 48826} G2H503h +PERO3              =  0.600G1H504E + 0.200GHK500J + 0.200GHD500t                 : ARR( 0.126E-12,  -850., 0.0);
+{ 48827} G2H503h +PERO5              =  0.600G1H504E + 0.200GHK500J + 0.200GHD500t                 : ARR( 0.473E-11,   850., 0.0);
+{ 48828} G2H503h +PERO6              =  0.460G1H504E + 0.270GHK500J + 0.270GHD500t                 : ARR( 0.434E-13,  -900., 0.0);
+{ 48829} G2H503h +PERO9              =  0.800G1H504E + 0.200GHD500t                                : ARR( 0.100E-10,     0., 0.0);
+{ 48830} GHK500y +GHO                =       GHD500o +      GHO2                                   : ARR( 0.136E-10,     0., 0.0);
+{ 48831} GHK500y +GHO                =       GHK500i +      GHO2                                   : ARR( 0.671E-11,     0., 0.0);
+{ 48832} GHK500y +GHO                =       GDK5008 +      GHO                                    : ARR( 0.544E-10,     0., 0.0);
+{ 48833} GHK500y+HV               =       G3K3003 +      G2H2000                                :  0.100E+01*SUN;
+{ 48834} GHK500y+HV               =       G1K500i +      GHO                                    :  0.100E+01*SUN;
+{ 48835} GHH502h +GHO                =       GHD500z +      GHO                                    : ARR( 0.112E-09,     0., 0.0);
+{ 48836} GHH502h +GHO                =       GHD500v +      GHO                                    : ARR( 0.264E-10,     0., 0.0);
+{ 48837} GHH502h +GHO                =       G3H400L +      GCO                                    : ARR( 0.133E-10,     0., 0.0);
+{ 48838} GHH502h +GNO3               =       G3H400L +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 48839} GHH502h+HV               =       G1H507E +      GHO                                    :  0.100E+01*SUN;
+{ 48840} GHH502h+HV               =       G1H50B8 +      GHO                                    :  0.100E+01*SUN;
+{ 48841} GHH502h+HV               =       G3H400L +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 48842} GHH502h+HV               =       GHH400M +      GCO                                    :  0.100E+01*SUN;
+{ 48843} GHH502h+HV               =       GHH3000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 48844} GGH501y +GHO                =       GGH5035 +      GHO2                                   : ARR( 0.246E-11,     0., 0.0);
+{ 48845} GGH501y +GHO                =       GGK500Q +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 48846} GGH501y +GHO                =       G2G5031                                               : ARR( 0.274E-11,     0., 0.0);
+{ 48847} GGH501y +GHO                =       G2G501D                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 48848} GGH501y +GHO                =       G3H501h                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 48849} GGH501y+HV               =       G3K2001 +      GGD3000 +      GHO                     :  0.100E+01*SUN;
+{ 48850} GGH501y+HV               =       G1G501S +      GHO                                    :  0.100E+01*SUN;
+{ 48851} GGH501y+HV               =       G2H400v +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 48852} G2G5031 +GNO                =       G1G5043 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 48853} G2G5031 +GNO                =       GGH502y                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 48854} G2G5031 +GHO2               =       GGH5047                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 48855} G2G5031 +GNO3               =       G1G5043 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 48856} G2G5031 +MEPERO             =  0.340G1G5043 + 0.330GGH502X + 0.330GGH5033                 : ARR( 0.565E-13,  -845., 0.0);
+{ 48857} G2G5031 +PERO1              =  0.460G1G5043 + 0.270GGH502X + 0.270GGH5033                 : ARR( 0.434E-13,  -900., 0.0);
+{ 48858} G2G5031 +PERO2              =  0.400G1G5043 + 0.300GGH502X + 0.300GGH5033                 : ARR( 0.162E-13, -1400., 0.0);
+{ 48859} G2G5031 +PERO3              =  0.460G1G5043 + 0.270GGH502X + 0.270GGH5033                 : ARR( 0.488E-13, -1250., 0.0);
+{ 48860} G2G5031 +PERO5              =  0.460G1G5043 + 0.270GGH502X + 0.270GGH5033                 : ARR( 0.183E-11,   450., 0.0);
+{ 48861} G2G5031 +PERO6              =  0.300G1G5043 + 0.350GGH502X + 0.350GGH5033                 : ARR( 0.168E-13, -1300., 0.0);
+{ 48862} G2G5031 +PERO9              =  0.650G1G5043 + 0.350GGH5033                                : ARR( 0.100E-10,     0., 0.0);
+{ 48863} G1G5043                     =       GHD400G +      GCO     +      GHO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 48864} GAH5027 +GHO                =       GAH503K +      GHO2                                   : ARR( 0.250E-11,     0., 0.0);
+{ 48865} GAH5027 +GHO                =       GAK500P +      GHO                                    : ARR( 0.256E-10,     0., 0.0);
+{ 48866} GAH5027 +GHO                =       G2A503r                                               : ARR( 0.206E-11,     0., 0.0);
+{ 48867} GAH5027 +GHO                =       G2A501P                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 48868} GAH5027+HV               =       G3K2001 +      GAD3000 +      GHO                     :  0.100E+01*SUN;
+{ 48869} GAH5027+HV               =       G1A501d +      GHO                                    :  0.100E+01*SUN;
+{ 48870} G2A503r +GNO                =       G1A504m +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 48871} G2A503r +GNO                =       GAH503D                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 48872} G2A503r +GHO2               =       GAH504J                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 48873} G2A503r +GNO3               =       G1A504m +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 48874} G2A503r +MEPERO             =  0.340G1A504m + 0.330GAH502m + 0.330GAH503I                 : ARR( 0.565E-13,  -845., 0.0);
+{ 48875} G2A503r +PERO1              =  0.460G1A504m + 0.270GAH502m + 0.270GAH503I                 : ARR( 0.434E-13,  -900., 0.0);
+{ 48876} G2A503r +PERO2              =  0.400G1A504m + 0.300GAH502m + 0.300GAH503I                 : ARR( 0.162E-13, -1400., 0.0);
+{ 48877} G2A503r +PERO3              =  0.460G1A504m + 0.270GAH502m + 0.270GAH503I                 : ARR( 0.488E-13, -1250., 0.0);
+{ 48878} G2A503r +PERO5              =  0.460G1A504m + 0.270GAH502m + 0.270GAH503I                 : ARR( 0.183E-11,   450., 0.0);
+{ 48879} G2A503r +PERO6              =  0.300G1A504m + 0.350GAH502m + 0.350GAH503I                 : ARR( 0.168E-13, -1300., 0.0);
+{ 48880} G2A503r +PERO9              =  0.650G1A504m + 0.350GAH503I                                : ARR( 0.100E-10,     0., 0.0);
+{ 48881} G1A504m                     =       GHD400G +      GCO     +      GHO                     : ARR( 0.200E+15,  4342., 0.0);
+{ 48882} GPH5024                     =       G3H501h +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 48883} GPH5024 +GHO                =       GPH503Q +      GHO2                                   : ARR( 0.246E-11,     0., 0.0);
+{ 48884} GPH5024 +GHO                =       GPK500Q +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 48885} GPH5024 +GHO                =       G2P503v                                               : ARR( 0.274E-11,     0., 0.0);
+{ 48886} GPH5024 +GHO                =       G2P501R                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 48887} GPH5024+HV               =       G3K2001 +      GPD3000 +      GHO                     :  0.100E+01*SUN;
+{ 48888} GPH5024+HV               =       G1P501f +      GHO                                    :  0.100E+01*SUN;
+{ 48889} GPH5024+HV               =       G3H501h +      GNO2                                   :  0.100E+01*SUN;
+{ 48890} G2P503v +GNO                =       G1P504t +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 48891} G2P503v +GNO                =       GPH503J                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 48892} G2P503v +GHO2               =       GPH504L                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 48893} G2P503v +GNO3               =       G1P504t +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 48894} G2P503v +MEPERO             =  0.340G1P504t + 0.330GPH502v + 0.330GPH503O                 : ARR( 0.565E-13,  -845., 0.0);
+{ 48895} G2P503v +PERO1              =  0.460G1P504t + 0.270GPH502v + 0.270GPH503O                 : ARR( 0.434E-13,  -900., 0.0);
+{ 48896} G2P503v +PERO2              =  0.400G1P504t + 0.300GPH502v + 0.300GPH503O                 : ARR( 0.162E-13, -1400., 0.0);
+{ 48897} G2P503v +PERO3              =  0.460G1P504t + 0.270GPH502v + 0.270GPH503O                 : ARR( 0.488E-13, -1250., 0.0);
+{ 48898} G2P503v +PERO5              =  0.460G1P504t + 0.270GPH502v + 0.270GPH503O                 : ARR( 0.183E-11,   450., 0.0);
+{ 48899} G2P503v +PERO6              =  0.300G1P504t + 0.350GPH502v + 0.350GPH503O                 : ARR( 0.168E-13, -1300., 0.0);
+{ 48900} G2P503v +PERO9              =  0.650G1P504t + 0.350GPH503O                                : ARR( 0.100E-10,     0., 0.0);
+{ 48901} G1P504t                     =       GHD400G +      GCO     +      GNO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 48902} GHH400p +GHO                =       GHK400C +      GHO                                    : ARR( 0.284E-10,     0., 0.0);
+{ 48903} GHH400p +GHO                =       GHD400G +      GHO                                    : ARR( 0.575E-10,     0., 0.0);
+{ 48904} GHH400p+HV               =       G3K2001 +      GHD2000 +      GHO                     :  0.100E+01*SUN;
+{ 48905} GHH400p+HV               =       G1H401w +      GHO                                    :  0.100E+01*SUN;
+{ 48906} GHH400p+HV               =       G1H4019 +      GHO                                    :  0.100E+01*SUN;
+{ 48907} GGK500R +GHO                =       GGD500I +      GHO2                                   : ARR( 0.250E-11,     0., 0.0);
+{ 48908} GGK500R +GHO                =       GGK500Q +      GHO2                                   : ARR( 0.640E-11,     0., 0.0);
+{ 48909} GGK500R +GHO                =       G2G5032                                               : ARR( 0.278E-11,     0., 0.0);
+{ 48910} GGK500R +GHO                =       G3K500Y                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 48911} GGK500R+HV               =       G3K2001 +      GGD3000 +      GHO2                    :  0.100E+01*SUN;
+{ 48912} GGK500R+HV               =       G2K400B +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 48913} G2G5032 +GNO                =       G1G5044 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 48914} G2G5032 +GNO                =       GGN502A                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 48915} G2G5032 +GHO2               =       GGH5049                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 48916} G2G5032 +GNO3               =       G1G5044 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 48917} G2G5032 +MEPERO             =  0.340G1G5044 + 0.330GGK500W + 0.330GGK500X                 : ARR( 0.565E-13,  -845., 0.0);
+{ 48918} G2G5032 +PERO1              =  0.460G1G5044 + 0.270GGK500W + 0.270GGK500X                 : ARR( 0.434E-13,  -900., 0.0);
+{ 48919} G2G5032 +PERO2              =  0.400G1G5044 + 0.300GGK500W + 0.300GGK500X                 : ARR( 0.162E-13, -1400., 0.0);
+{ 48920} G2G5032 +PERO3              =  0.460G1G5044 + 0.270GGK500W + 0.270GGK500X                 : ARR( 0.488E-13, -1250., 0.0);
+{ 48921} G2G5032 +PERO5              =  0.460G1G5044 + 0.270GGK500W + 0.270GGK500X                 : ARR( 0.183E-11,   450., 0.0);
+{ 48922} G2G5032 +PERO6              =  0.300G1G5044 + 0.350GGK500W + 0.350GGK500X                 : ARR( 0.168E-13, -1300., 0.0);
+{ 48923} G2G5032 +PERO9              =  0.650G1G5044 + 0.350GGK500X                                : ARR( 0.100E-10,     0., 0.0);
+{ 48924} G1G5044                     =       GDK4006 +      GCO     +      GHO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 48925} GAK500Q +GHO                =       GAD500L +      GHO2                                   : ARR( 0.263E-11,     0., 0.0);
+{ 48926} GAK500Q +GHO                =       GAK500P +      GHO2                                   : ARR( 0.675E-11,     0., 0.0);
+{ 48927} GAK500Q +GHO                =       G2A503s                                               : ARR( 0.217E-11,     0., 0.0);
+{ 48928} GAK500Q+HV               =       G3K2001 +      GAD3000 +      GHO2                    :  0.100E+01*SUN;
+{ 48929} G2A503s +GNO                =       G1A504n +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 48930} G2A503s +GNO                =       GAN502O                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 48931} G2A503s +GHO2               =       GAH504K                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 48932} G2A503s +GNO3               =       G1A504n +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 48933} G2A503s +MEPERO             =  0.340G1A504n + 0.330GAK500Z + 0.330GAK500c                 : ARR( 0.565E-13,  -845., 0.0);
+{ 48934} G2A503s +PERO1              =  0.460G1A504n + 0.270GAK500Z + 0.270GAK500c                 : ARR( 0.434E-13,  -900., 0.0);
+{ 48935} G2A503s +PERO2              =  0.400G1A504n + 0.300GAK500Z + 0.300GAK500c                 : ARR( 0.162E-13, -1400., 0.0);
+{ 48936} G2A503s +PERO3              =  0.460G1A504n + 0.270GAK500Z + 0.270GAK500c                 : ARR( 0.488E-13, -1250., 0.0);
+{ 48937} G2A503s +PERO5              =  0.460G1A504n + 0.270GAK500Z + 0.270GAK500c                 : ARR( 0.183E-11,   450., 0.0);
+{ 48938} G2A503s +PERO6              =  0.300G1A504n + 0.350GAK500Z + 0.350GAK500c                 : ARR( 0.168E-13, -1300., 0.0);
+{ 48939} G2A503s +PERO9              =  0.650G1A504n + 0.350GAK500c                                : ARR( 0.100E-10,     0., 0.0);
+{ 48940} G1A504n                     =       GDK4006 +      GCO     +      GHO                     : ARR( 0.200E+15,  4342., 0.0);
+{ 48941} GPK500R                     =       G3K500Y +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 48942} GPK500R +GHO                =       GPD500J +      GHO2                                   : ARR( 0.251E-11,     0., 0.0);
+{ 48943} GPK500R +GHO                =       GPK500Q +      GHO2                                   : ARR( 0.644E-11,     0., 0.0);
+{ 48944} GPK500R +GHO                =       G2P503w                                               : ARR( 0.280E-11,     0., 0.0);
+{ 48945} GPK500R+HV               =       G3K2001 +      GPD3000 +      GHO2                    :  0.100E+01*SUN;
+{ 48946} GPK500R+HV               =       G3K500Y +      GNO2                                   :  0.100E+01*SUN;
+{ 48947} G2P503w +GNO                =       G1P504u +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 48948} G2P503w +GNO                =       GPN502X                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 48949} G2P503w +GHO2               =       GPH504M                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 48950} G2P503w +GNO3               =       G1P504u +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 48951} G2P503w +MEPERO             =  0.340G1P504u + 0.330GPK500W + 0.330GPK500X                 : ARR( 0.565E-13,  -845., 0.0);
+{ 48952} G2P503w +PERO1              =  0.460G1P504u + 0.270GPK500W + 0.270GPK500X                 : ARR( 0.434E-13,  -900., 0.0);
+{ 48953} G2P503w +PERO2              =  0.400G1P504u + 0.300GPK500W + 0.300GPK500X                 : ARR( 0.162E-13, -1400., 0.0);
+{ 48954} G2P503w +PERO3              =  0.460G1P504u + 0.270GPK500W + 0.270GPK500X                 : ARR( 0.488E-13, -1250., 0.0);
+{ 48955} G2P503w +PERO5              =  0.460G1P504u + 0.270GPK500W + 0.270GPK500X                 : ARR( 0.183E-11,   450., 0.0);
+{ 48956} G2P503w +PERO6              =  0.300G1P504u + 0.350GPK500W + 0.350GPK500X                 : ARR( 0.168E-13, -1300., 0.0);
+{ 48957} G2P503w +PERO9              =  0.650G1P504u + 0.350GPK500X                                : ARR( 0.100E-10,     0., 0.0);
+{ 48958} G1P504u                     =       GDK4006 +      GCO     +      GNO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 48959} GND501W +GHO                =       GND501a +      GHO2                                   : ARR( 0.248E-11,     0., 0.0);
+{ 48960} GND501W +GHO                =       G3N400Q +      GCO                                    : ARR( 0.128E-10,     0., 0.0);
+{ 48961} GND501W +GNO3               =       G3N400Q +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 48962} GND501W+HV               =       G3K2001 +      GDD3002 +      GNO2                    :  0.100E+01*SUN;
+{ 48963} GND501W+HV               =       G1D501H +      GNO2                                   :  0.100E+01*SUN;
+{ 48964} GND501W+HV               =       G3N400Q +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 48965} GND501W+HV               =       GND400L +      GCO                                    :  0.100E+01*SUN;
+{ 48966} GND501W+HV               =       GNK3001 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 48967} GDK500c +GHO                =       GDD500F +      GHO2                                   : ARR( 0.247E-11,     0., 0.0);
+{ 48968} GDK500c +GHO                =       G3K2001 + 3.000GCO                                    : ARR( 0.128E-10,     0., 0.0);
+{ 48969} GDK500c +GNO3               =       G3K2001 +      GHNO3   + 3.000GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 48970} GDK500c+HV               =       G3K2001 +      G3D2000 +      GCO                     :  0.100E+01*SUN;
+{ 48971} GDK500c+HV               =       G3K2001 +      G3D2000 +      GCO                     :  0.100E+01*SUN;
+{ 48972} GDK500c+HV               =       G3K2001 +      GCO     + 2.000GCO     +      GHO2     :  0.100E+01*SUN;
+{ 48973} GDK500c+HV               =       GDK4009 +      GCO                                    :  0.100E+01*SUN;
+{ 48974} GDK500c+HV               =       GDK3001 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 48975} GHD501N +GHO                =       GHD501U +      GHO2                                   : ARR( 0.128E-10,     0., 0.0);
+{ 48976} GHD501N +GHO                =       GDK500c +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 48977} GHD501N +GHO                =       G3H3004 + 2.000GCO                                    : ARR( 0.127E-10,     0., 0.0);
+{ 48978} GHD501N +GHO                =       G2D500p                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 48979} GHD501N +GNO3               =       G3H3004 +      GHNO3   + 2.000GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 48980} GHD501N+HV               =       G1D501E +      GHO                                    :  0.100E+01*SUN;
+{ 48981} GHD501N+HV               =       G3H3004 +      G3D2000                                :  0.100E+01*SUN;
+{ 48982} GHD501N+HV               =       G3H3004 +      GCO     +      GCO     +      GHO2     :  0.100E+01*SUN;
+{ 48983} GHD501N+HV               =       GHD400M +      GCO                                    :  0.100E+01*SUN;
+{ 48984} GHD501N+HV               =       GHD3003 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 48985} G2D500p +GNO                =       G1D501E +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 48986} G2D500p +GNO                =       GND5016                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 48987} G2D500p +GHO2               =       GHD501N                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 48988} G2D500p +GNO3               =       G1D501E +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 48989} G2D500p +MEPERO             =  0.340G1D501E + 0.330GDK500b + 0.330GDK500c                 : ARR( 0.565E-13,  -845., 0.0);
+{ 48990} G2D500p +PERO1              =  0.460G1D501E + 0.270GDK500b + 0.270GDK500c                 : ARR( 0.434E-13,  -900., 0.0);
+{ 48991} G2D500p +PERO2              =  0.400G1D501E + 0.300GDK500b + 0.300GDK500c                 : ARR( 0.162E-13, -1400., 0.0);
+{ 48992} G2D500p +PERO3              =  0.460G1D501E + 0.270GDK500b + 0.270GDK500c                 : ARR( 0.488E-13, -1250., 0.0);
+{ 48993} G2D500p +PERO5              =  0.460G1D501E + 0.270GDK500b + 0.270GDK500c                 : ARR( 0.183E-11,   450., 0.0);
+{ 48994} G2D500p +PERO6              =  0.300G1D501E + 0.350GDK500b + 0.350GDK500c                 : ARR( 0.168E-13, -1300., 0.0);
+{ 48995} G2D500p +PERO9              =  0.650G1D501E + 0.350GDK500c                                : ARR( 0.100E-10,     0., 0.0);
+{ 48996} GAH5028 +GHO                =       GAH5039 +      GHO2                                   : ARR( 0.425E-11,     0., 0.0);
+{ 48997} GAH5028 +GHO                =       GAN501Y +      GHO                                    : ARR( 0.871E-11,     0., 0.0);
+{ 48998} GAH5028 +GHO                =       G2A501R                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 48999} GAH5028+HV               =       G1A501h +      GHO                                    :  0.100E+01*SUN;
+{ 49000} GAH5028+HV               =       G1A504o +      GNO2                                   :  0.100E+01*SUN;
+{ 49001} G1A504o                     =       GDO2000 +      GAD3000 +      GHO                     : ARR( 0.200E+15,  4146., 0.0);
+{ 49002} GAG5004 +GHO                =       G3A5004                                               : ARR( 0.209E-11,  -190., 0.0);
+{ 49003} GAG5004 +GHO                =       G2G400T +      GCO2                                   : ARR( 0.573E-12,     0., 0.0);
+{ 49004} GAG5004+HV               =       G1A503u +      GNO2                                   :  0.100E+01*SUN;
+{ 49005} GAG5004+HV               =       G2A400Y +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 49006} GAA5003 +GHO                =       G2A503t                                               : ARR( 0.255E-12,     0., 0.0);
+{ 49007} GAA5003 +GHO                =       GAA5005 +      GNO2                                   : ARR( 0.118E-12,     0., 0.0);
+{ 49008} GAA5003 +GHO                =       G2A400Y +      GCO2                                   : ARR( 0.104E-11,     0., 0.0);
+{ 49009} GAA5003+HV               =       G1A503x +      GNO2                                   :  0.100E+01*SUN;
+{ 49010} G2A503t +GNO                =       G1A504p +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 49011} G2A503t +GNO                =       GAA500L                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 49012} G2A503t +GHO2               =       GAA500M                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 49013} G2A503t +GNO3               =       G1A504p +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 49014} G2A503t +MEPERO             =  0.340G1A504p + 0.330GAA5004 + 0.330GAA500N                 : ARR( 0.565E-13,  -845., 0.0);
+{ 49015} G2A503t +PERO1              =  0.460G1A504p + 0.270GAA5004 + 0.270GAA500N                 : ARR( 0.434E-13,  -900., 0.0);
+{ 49016} G2A503t +PERO2              =  0.400G1A504p + 0.300GAA5004 + 0.300GAA500N                 : ARR( 0.162E-13, -1400., 0.0);
+{ 49017} G2A503t +PERO3              =  0.460G1A504p + 0.270GAA5004 + 0.270GAA500N                 : ARR( 0.488E-13, -1250., 0.0);
+{ 49018} G2A503t +PERO5              =  0.460G1A504p + 0.270GAA5004 + 0.270GAA500N                 : ARR( 0.183E-11,   450., 0.0);
+{ 49019} G2A503t +PERO6              =  0.300G1A504p + 0.350GAA5004 + 0.350GAA500N                 : ARR( 0.168E-13, -1300., 0.0);
+{ 49020} G2A503t +PERO9              =  0.650G1A504p + 0.350GAA500N                                : ARR( 0.100E-10,     0., 0.0);
+{ 49021} G1A504p                     =       GAN400J +      GCO     +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 49022} GPA5004                     =       G3A5004 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 49023} GPA5004 +GHO                =       G2P503x                                               : ARR( 0.128E-12,     0., 0.0);
+{ 49024} GPA5004 +GHO                =       GPA5008 +      GNO2                                   : ARR( 0.118E-12,     0., 0.0);
+{ 49025} GPA5004 +GHO                =       G2P503y                                               : ARR( 0.172E-12,     0., 0.0);
+{ 49026} GPA5004 +GHO                =       G2P4009 +      GCO2                                   : ARR( 0.520E-12,     0., 0.0);
+{ 49027} GPA5004+HV               =       G1P503O +      GNO2                                   :  0.100E+01*SUN;
+{ 49028} GPA5004+HV               =       G3A5004 +      GNO2                                   :  0.100E+01*SUN;
+{ 49029} G2P503x +GNO                =       G1P504v +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 49030} G2P503x +GNO                =       GPA500X                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 49031} G2P503x +GHO2               =       GPA500Y                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 49032} G2P503x +GNO3               =       G1P504v +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 49033} G2P503x +MEPERO             =  0.340G1P504v + 0.330GPA5005 + 0.330GPA500Z                 : ARR( 0.565E-13,  -845., 0.0);
+{ 49034} G2P503x +PERO1              =  0.460G1P504v + 0.270GPA5005 + 0.270GPA500Z                 : ARR( 0.434E-13,  -900., 0.0);
+{ 49035} G2P503x +PERO2              =  0.400G1P504v + 0.300GPA5005 + 0.300GPA500Z                 : ARR( 0.162E-13, -1400., 0.0);
+{ 49036} G2P503x +PERO3              =  0.460G1P504v + 0.270GPA5005 + 0.270GPA500Z                 : ARR( 0.488E-13, -1250., 0.0);
+{ 49037} G2P503x +PERO5              =  0.460G1P504v + 0.270GPA5005 + 0.270GPA500Z                 : ARR( 0.183E-11,   450., 0.0);
+{ 49038} G2P503x +PERO6              =  0.300G1P504v + 0.350GPA5005 + 0.350GPA500Z                 : ARR( 0.168E-13, -1300., 0.0);
+{ 49039} G2P503x +PERO9              =  0.650G1P504v + 0.350GPA500Z                                : ARR( 0.100E-10,     0., 0.0);
+{ 49040} G2P503y +GNO                =       G1P504w +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 49041} G2P503y +GNO                =       GPA500a                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 49042} G2P503y +GHO2               =       GPA500b                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 49043} G2P503y +GNO3               =       G1P504w +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 49044} G2P503y +MEPERO             =  0.340G1P504w + 0.330GPA5006 + 0.330GPA500c                 : ARR( 0.565E-13,  -845., 0.0);
+{ 49045} G2P503y +PERO1              =  0.460G1P504w + 0.270GPA5006 + 0.270GPA500c                 : ARR( 0.434E-13,  -900., 0.0);
+{ 49046} G2P503y +PERO2              =  0.400G1P504w + 0.300GPA5006 + 0.300GPA500c                 : ARR( 0.162E-13, -1400., 0.0);
+{ 49047} G2P503y +PERO3              =  0.460G1P504w + 0.270GPA5006 + 0.270GPA500c                 : ARR( 0.488E-13, -1250., 0.0);
+{ 49048} G2P503y +PERO5              =  0.460G1P504w + 0.270GPA5006 + 0.270GPA500c                 : ARR( 0.183E-11,   450., 0.0);
+{ 49049} G2P503y +PERO6              =  0.300G1P504w + 0.350GPA5006 + 0.350GPA500c                 : ARR( 0.168E-13, -1300., 0.0);
+{ 49050} G2P503y +PERO9              =  0.650G1P504w + 0.350GPA500c                                : ARR( 0.100E-10,     0., 0.0);
+{ 49051} G1P504v                     =       GCO     +      GPN400H +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 49052} G1P504w                     =       GAN400J +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 49053} GAN501b +GHO                =       G2A503u                                               : ARR( 0.356E-13,     0., 0.0);
+{ 49054} GAN501b +GHO                =       GNN4007 +      GNO2    +      GCO2                    : ARR( 0.552E-12,     0., 0.0);
+{ 49055} GAN501b+HV               =       G1A501n +      GNO2                                   :  0.100E+01*SUN;
+{ 49056} GAN501b+HV               =       G1A502B +      GNO2                                   :  0.100E+01*SUN;
+{ 49057} GAN501b+HV               =       G1A501i +      GNO2                                   :  0.100E+01*SUN;
+{ 49058} G2A503u +GNO                =       G1A504q +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 49059} G2A503u +GNO                =       GAN502B                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 49060} G2A503u +GHO2               =       GAH504i                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 49061} G2A503u +GNO3               =       G1A504q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 49062} G2A503u +MEPERO             =  0.480G1A504q + 0.260GAN501l + 0.260GAN502j                 : ARR( 0.164E-12,  -795., 0.0);
+{ 49063} G2A503u +PERO1              =  0.600G1A504q + 0.200GAN501l + 0.200GAN502j                 : ARR( 0.126E-12,  -850., 0.0);
+{ 49064} G2A503u +PERO2              =  0.560G1A504q + 0.220GAN501l + 0.220GAN502j                 : ARR( 0.471E-13, -1350., 0.0);
+{ 49065} G2A503u +PERO3              =  0.600G1A504q + 0.200GAN501l + 0.200GAN502j                 : ARR( 0.142E-12, -1200., 0.0);
+{ 49066} G2A503u +PERO5              =  0.600G1A504q + 0.200GAN501l + 0.200GAN502j                 : ARR( 0.533E-11,   500., 0.0);
+{ 49067} G2A503u +PERO6              =  0.460G1A504q + 0.270GAN501l + 0.270GAN502j                 : ARR( 0.488E-13, -1250., 0.0);
+{ 49068} G2A503u +PERO9              =  0.800G1A504q + 0.200GAN502j                                : ARR( 0.100E-10,     0., 0.0);
+{ 49069} G1A504q +OXYGEN             =       GAN502j +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 49070} G1A504q                     =       GAN501n +      GNO2                                   : ARR( 0.800E+11,  5099., 0.0);
+{ 49071} G1A504q                     =       GAN400Y +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7042., 0.0);
+{ 49072} GAH5029 +GHO                =       GAN501d +      GHO                                    : ARR( 0.376E-11,     0., 0.0);
+{ 49073} GAH5029 +GHO                =       G2A501S                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 49074} GAH5029 +GHO                =       GNN4007 +      GHO     +      GCO2                    : ARR( 0.525E-12,     0., 0.0);
+{ 49075} GAH5029+HV               =       G1A504r +      GNO2                                   :  0.100E+01*SUN;
+{ 49076} GAH5029+HV               =       G1A504s +      GNO2                                   :  0.100E+01*SUN;
+{ 49077} GAH5029+HV               =       G1A501i +      GHO                                    :  0.100E+01*SUN;
+{ 49078} G1A504r                     =       GD02000 +      GAH3007 +      GNO2                    : ARR( 0.200E+15,  6112., 0.0);
+{ 49079} G1A504s                     =       GD02000 +      GAH3007 +      GNO2                    : ARR( 0.200E+15,  5880., 0.0);
+{ 49080} G1A504s                     =       GND3001 +      GAD2000 +      GHO                     : ARR( 0.200E+15,  5138., 0.0);
+{ 49081} GAN501c +GHO                =       GAN501d +      GHO2                                   : ARR( 0.974E-12,     0., 0.0);
+{ 49082} GAN501c +GHO                =       G1A501i                                               : ARR( 0.220E-17,    85., 2.0);
+{ 49083} GAN501c +GHO                =       GNN4007 +      GHO2    +      GCO2                    : ARR( 0.545E-12,     0., 0.0);
+{ 49084} GAN501c+HV               =       G1A501o +      GNO2                                   :  0.100E+01*SUN;
+{ 49085} GAN501c+HV               =       G1A504t +      GNO2                                   :  0.100E+01*SUN;
+{ 49086} G1A504t                     =       GND3001 +      GAD2000 +      GHO2                    : ARR( 0.200E+15,  3929., 0.0);
+{ 49087} GAN501d +GHO                =       G2A503v                                               : ARR( 0.355E-13,     0., 0.0);
+{ 49088} GAN501d +GHO                =       G3N4009 +      GCO2                                   : ARR( 0.551E-12,     0., 0.0);
+{ 49089} GAN501d+HV               =       G1A501q +      GNO2                                   :  0.100E+01*SUN;
+{ 49090} GAN501d+HV               =       G1A502D +      GNO2                                   :  0.100E+01*SUN;
+{ 49091} GAN501d+HV               =       GNN4007 +      GCO2                                   :  0.100E+01*SUN;
+{ 49092} G2A503v +GNO                =       G1A504u +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 49093} G2A503v +GNO                =       GAN502D                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 49094} G2A503v +GHO2               =       GAH504j                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 49095} G2A503v +GNO3               =       G1A504u +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 49096} G2A503v +MEPERO             =  0.480G1A504u + 0.260GAN501n + 0.260GAN502k                 : ARR( 0.164E-12,  -795., 0.0);
+{ 49097} G2A503v +PERO1              =  0.600G1A504u + 0.200GAN501n + 0.200GAN502k                 : ARR( 0.126E-12,  -850., 0.0);
+{ 49098} G2A503v +PERO2              =  0.560G1A504u + 0.220GAN501n + 0.220GAN502k                 : ARR( 0.471E-13, -1350., 0.0);
+{ 49099} G2A503v +PERO3              =  0.600G1A504u + 0.200GAN501n + 0.200GAN502k                 : ARR( 0.142E-12, -1200., 0.0);
+{ 49100} G2A503v +PERO5              =  0.600G1A504u + 0.200GAN501n + 0.200GAN502k                 : ARR( 0.533E-11,   500., 0.0);
+{ 49101} G2A503v +PERO6              =  0.460G1A504u + 0.270GAN501n + 0.270GAN502k                 : ARR( 0.488E-13, -1250., 0.0);
+{ 49102} G2A503v +PERO9              =  0.800G1A504u + 0.200GAN502k                                : ARR( 0.100E-10,     0., 0.0);
+{ 49103} G1A504u +OXYGEN             =       GAN502k +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 49104} G1A504u                     =       GAN400Z +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7175., 0.0);
+{ 49105} GAN501e +GHO                =       G3A4001 +      GCO                                    : ARR( 0.134E-10,     0., 0.0);
+{ 49106} GAN501e +GNO3               =       G3A4001 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 49107} GAN501e+HV               =       G1A5049 +      GNO2                                   :  0.100E+01*SUN;
+{ 49108} GAN501e+HV               =       G3A4001 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 49109} GAN501e+HV               =       GAN400J +      GCO                                    :  0.100E+01*SUN;
+{ 49110} GAN501e+HV               =       GAN3000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 49111} GAN501f +GHO                =       G2A503w                                               : ARR( 0.106E-12,     0., 0.0);
+{ 49112} GAN501f +GHO                =       GND4008 +      GNO2    +      GCO2                    : ARR( 0.541E-12,     0., 0.0);
+{ 49113} GAN501f+HV               =       G3K2000 +      GAN3006 +      GNO2                    :  0.100E+01*SUN;
+{ 49114} GAN501f+HV               =       G1A502G +      GNO2                                   :  0.100E+01*SUN;
+{ 49115} GAN501f+HV               =       G1A501l +      GNO2                                   :  0.100E+01*SUN;
+{ 49116} G2A503w +GNO                =       G1A504v +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 49117} G2A503w +GNO                =       GAN502C                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 49118} G2A503w +GHO2               =       GAH504k                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 49119} G2A503w +GNO3               =       G1A504v +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 49120} G2A503w +MEPERO             =  0.480G1A504v + 0.260GAN501m + 0.260GAN502l                 : ARR( 0.164E-12,  -795., 0.0);
+{ 49121} G2A503w +PERO1              =  0.600G1A504v + 0.200GAN501m + 0.200GAN502l                 : ARR( 0.126E-12,  -850., 0.0);
+{ 49122} G2A503w +PERO2              =  0.560G1A504v + 0.220GAN501m + 0.220GAN502l                 : ARR( 0.471E-13, -1350., 0.0);
+{ 49123} G2A503w +PERO3              =  0.600G1A504v + 0.200GAN501m + 0.200GAN502l                 : ARR( 0.142E-12, -1200., 0.0);
+{ 49124} G2A503w +PERO5              =  0.600G1A504v + 0.200GAN501m + 0.200GAN502l                 : ARR( 0.533E-11,   500., 0.0);
+{ 49125} G2A503w +PERO6              =  0.460G1A504v + 0.270GAN501m + 0.270GAN502l                 : ARR( 0.488E-13, -1250., 0.0);
+{ 49126} G2A503w +PERO9              =  0.800G1A504v + 0.200GAN502l                                : ARR( 0.100E-10,     0., 0.0);
+{ 49127} G1A504v                     =       G3A400A +      GCH2O                                  : ARR( 0.200E+15,  3640., 0.0);
+{ 49128} G3A400A +GHO2               =  0.800GAG400C + 0.200GAA4007 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 49129} G3A400A +GNO                =       GAN3006 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 49130} G3A400A +GNO2               =       GPA400D                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 49131} G3A400A +GNO3               =       GAN3006 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 49132} G3A400A +MEPERO             =  0.685GAN3006 + 0.315GAA4007 + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 49133} G3A400A +PERO1              =  0.800GAN3006 + 0.200GAA4007 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 49134} G3A400A +PERO2              =  0.750GAN3006 + 0.250GAA4007 + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 49135} G3A400A +PERO3              =  0.800GAN3006 + 0.200GAA4007 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 49136} G3A400A +PERO5              =  0.650GAN3006 + 0.350GAA4007 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 49137} G3A400A +PERO6              =  0.650GAN3006 + 0.350GAA4007 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 49138} G3A400A +PERO9              =       GAN3006 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 49139} GAH502A +GHO                =       GAN501h +      GHO                                    : ARR( 0.380E-11,     0., 0.0);
+{ 49140} GAH502A +GHO                =       G2A501U                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 49141} GAH502A +GHO                =       GND4008 +      GHO     +      GCO2                    : ARR( 0.532E-12,     0., 0.0);
+{ 49142} GAH502A+HV               =       G3K2000 +      GAH3007 +      GNO2                    :  0.100E+01*SUN;
+{ 49143} GAH502A+HV               =       G1A504w +      GNO2                                   :  0.100E+01*SUN;
+{ 49144} GAH502A+HV               =       G1A501l +      GHO                                    :  0.100E+01*SUN;
+{ 49145} G1A504w                     =       G3K2000 +      GAH3007                                : ARR( 0.200E+15,  2093., 0.0);
+{ 49146} GAN501g +GHO                =       G2A503x                                               : ARR( 0.107E-12,     0., 0.0);
+{ 49147} GAN501g +GHO                =       GAN501h +      GHO2                                   : ARR( 0.969E-12,     0., 0.0);
+{ 49148} GAN501g +GHO                =       G1A501l                                               : ARR( 0.219E-17,    85., 2.0);
+{ 49149} GAN501g +GHO                =       GND4008 +      GHO2    +      GCO2                    : ARR( 0.542E-12,     0., 0.0);
+{ 49150} GAN501g+HV               =       G3K2000 +      GAD3001 +      GNO2                    :  0.100E+01*SUN;
+{ 49151} GAN501g+HV               =       G1A502H +      GNO2                                   :  0.100E+01*SUN;
+{ 49152} G2A503x +GNO                =       G1A504x +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 49153} G2A503x +GNO                =       GAN502H                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 49154} G2A503x +GHO2               =       GAH504R                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 49155} G2A503x +GNO3               =       G1A504x +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 49156} G2A503x +MEPERO             =  0.480G1A504x + 0.260GAN5029 + 0.260GAN502i                 : ARR( 0.164E-12,  -795., 0.0);
+{ 49157} G2A503x +PERO1              =  0.600G1A504x + 0.200GAN5029 + 0.200GAN502i                 : ARR( 0.126E-12,  -850., 0.0);
+{ 49158} G2A503x +PERO2              =  0.560G1A504x + 0.220GAN5029 + 0.220GAN502i                 : ARR( 0.471E-13, -1350., 0.0);
+{ 49159} G2A503x +PERO3              =  0.600G1A504x + 0.200GAN5029 + 0.200GAN502i                 : ARR( 0.142E-12, -1200., 0.0);
+{ 49160} G2A503x +PERO5              =  0.600G1A504x + 0.200GAN5029 + 0.200GAN502i                 : ARR( 0.533E-11,   500., 0.0);
+{ 49161} G2A503x +PERO6              =  0.460G1A504x + 0.270GAN5029 + 0.270GAN502i                 : ARR( 0.488E-13, -1250., 0.0);
+{ 49162} G2A503x +PERO9              =  0.800G1A504x + 0.200GAN502i                                : ARR( 0.100E-10,     0., 0.0);
+{ 49163} G1A504x                     =       G3A400B +      GCH2O                                  : ARR( 0.200E+15,  3640., 0.0);
+{ 49164} G3A400B +GHO2               =  0.800GAG400D + 0.200GAA4004 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 49165} G3A400B +GNO                =       GAD3001 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 49166} G3A400B +GNO2               =       GPA4009                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 49167} G3A400B +GNO3               =       GAD3001 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 49168} G3A400B +MEPERO             =  0.685GAD3001 + 0.315GAA4004 + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 49169} G3A400B +PERO1              =  0.800GAD3001 + 0.200GAA4004 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 49170} G3A400B +PERO2              =  0.750GAD3001 + 0.250GAA4004 + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 49171} G3A400B +PERO3              =  0.800GAD3001 + 0.200GAA4004 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 49172} G3A400B +PERO5              =  0.650GAD3001 + 0.350GAA4004 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 49173} G3A400B +PERO6              =  0.650GAD3001 + 0.350GAA4004 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 49174} G3A400B +PERO9              =       GAD3001 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 49175} GAN501h +GHO                =       G2A503y                                               : ARR( 0.102E-12,     0., 0.0);
+{ 49176} GAN501h +GHO                =       GAK500U +      GNO2                                   : ARR( 0.438E-13,     0., 0.0);
+{ 49177} GAN501h +GHO                =       G3N400D +      GCO2                                   : ARR( 0.520E-12,     0., 0.0);
+{ 49178} GAN501h+HV               =       G3K2000 +      GAD3002 +      GNO2                    :  0.100E+01*SUN;
+{ 49179} GAN501h+HV               =       G1A502J +      GNO2                                   :  0.100E+01*SUN;
+{ 49180} GAN501h+HV               =       GND4008 +      GCO2                                   :  0.100E+01*SUN;
+{ 49181} G2A503y +GNO                =       G1A504y +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 49182} G2A503y +GNO                =       GAN502E                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 49183} G2A503y +GHO2               =       GAH504l                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 49184} G2A503y +GNO3               =       G1A504y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 49185} G2A503y +MEPERO             =  0.480G1A504y + 0.260GAN501p + 0.260GAN502m                 : ARR( 0.164E-12,  -795., 0.0);
+{ 49186} G2A503y +PERO1              =  0.600G1A504y + 0.200GAN501p + 0.200GAN502m                 : ARR( 0.126E-12,  -850., 0.0);
+{ 49187} G2A503y +PERO2              =  0.560G1A504y + 0.220GAN501p + 0.220GAN502m                 : ARR( 0.471E-13, -1350., 0.0);
+{ 49188} G2A503y +PERO3              =  0.600G1A504y + 0.200GAN501p + 0.200GAN502m                 : ARR( 0.142E-12, -1200., 0.0);
+{ 49189} G2A503y +PERO5              =  0.600G1A504y + 0.200GAN501p + 0.200GAN502m                 : ARR( 0.533E-11,   500., 0.0);
+{ 49190} G2A503y +PERO6              =  0.460G1A504y + 0.270GAN501p + 0.270GAN502m                 : ARR( 0.488E-13, -1250., 0.0);
+{ 49191} G2A503y +PERO9              =  0.800G1A504y + 0.200GAN502m                                : ARR( 0.100E-10,     0., 0.0);
+{ 49192} G1A504y                     =       G3A400C +      GCH2O                                  : ARR( 0.200E+15,  4694., 0.0);
+{ 49193} G3A400C +GHO2               =  0.800GAG400E + 0.200GAA4008 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 49194} G3A400C +GNO                =       GAD3002 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 49195} G3A400C +GNO2               =       GPA400E                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 49196} G3A400C +GNO3               =       GAD3002 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 49197} G3A400C +MEPERO             =  0.685GAD3002 + 0.315GAA4008 + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 49198} G3A400C +PERO1              =  0.800GAD3002 + 0.200GAA4008 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 49199} G3A400C +PERO2              =  0.750GAD3002 + 0.250GAA4008 + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 49200} G3A400C +PERO3              =  0.800GAD3002 + 0.200GAA4008 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 49201} G3A400C +PERO5              =  0.650GAD3002 + 0.350GAA4008 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 49202} G3A400C +PERO6              =  0.650GAD3002 + 0.350GAA4008 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 49203} G3A400C +PERO9              =       GAD3002 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 49204} GAG4001 +GHO                =       G3A4001                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 49205} GAG4001 +GHO                =       G2G3003 +      GCO2                                   : ARR( 0.545E-12,     0., 0.0);
+{ 49206} GAG4001+HV               =       G1A400t +      GNO2                                   :  0.100E+01*SUN;
+{ 49207} GAG4001+HV               =       GAD3000 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 49208} GAA4001 +GHO                =       G2A400x                                               : ARR( 0.133E-12,     0., 0.0);
+{ 49209} GAA4001 +GHO                =       G2A3004 +      GCO2                                   : ARR( 0.544E-12,     0., 0.0);
+{ 49210} GAA4001 +GHO                =       GAD3000 +      GNO2    +      GCO2                    : ARR( 0.544E-12,     0., 0.0);
+{ 49211} GAA4001+HV               =       G1A400u +      GNO2                                   :  0.100E+01*SUN;
+{ 49212} G2A400x +GNO                =       G1A4014 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 49213} G2A400x +GNO                =       GAA4007                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 49214} G2A400x +GHO2               =       GAA4009                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 49215} G2A400x +GNO3               =       G1A4014 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 49216} G2A400x +MEPERO             =  0.340G1A4014 + 0.330GAA4004 + 0.330GAA4008                 : ARR( 0.565E-13,  -845., 0.0);
+{ 49217} G2A400x +PERO1              =  0.460G1A4014 + 0.270GAA4004 + 0.270GAA4008                 : ARR( 0.434E-13,  -900., 0.0);
+{ 49218} G2A400x +PERO2              =  0.400G1A4014 + 0.300GAA4004 + 0.300GAA4008                 : ARR( 0.162E-13, -1400., 0.0);
+{ 49219} G2A400x +PERO3              =  0.460G1A4014 + 0.270GAA4004 + 0.270GAA4008                 : ARR( 0.488E-13, -1250., 0.0);
+{ 49220} G2A400x +PERO5              =  0.460G1A4014 + 0.270GAA4004 + 0.270GAA4008                 : ARR( 0.183E-11,   450., 0.0);
+{ 49221} G2A400x +PERO6              =  0.300G1A4014 + 0.350GAA4004 + 0.350GAA4008                 : ARR( 0.168E-13, -1300., 0.0);
+{ 49222} G2A400x +PERO9              =  0.650G1A4014 + 0.350GAA4008                                : ARR( 0.100E-10,     0., 0.0);
+{ 49223} G1A4014                     =       GAN3006 +      GCO     +      GHO                     : ARR( 0.200E+15,  4342., 0.0);
+{ 49224} GPA4001                     =       G3A4001 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 49225} GPA4001 +GHO                =       G2P4011                                               : ARR( 0.128E-12,     0., 0.0);
+{ 49226} GPA4001 +GHO                =       GPA4004 +      GNO2                                   : ARR( 0.718E-13,     0., 0.0);
+{ 49227} GPA4001 +GHO                =       G2P3004 +      GCO2                                   : ARR( 0.520E-12,     0., 0.0);
+{ 49228} GPA4001+HV               =       G1P400u +      GNO2                                   :  0.100E+01*SUN;
+{ 49229} GPA4001+HV               =       G3A4001 +      GNO2                                   :  0.100E+01*SUN;
+{ 49230} G2P4011 +GNO                =       G1P4019 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 49231} G2P4011 +GNO                =       GPA400D                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 49232} G2P4011 +GHO2               =       GPA400F                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 49233} G2P4011 +GNO3               =       G1P4019 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 49234} G2P4011 +MEPERO             =  0.340G1P4019 + 0.330GPA4009 + 0.330GPA400E                 : ARR( 0.565E-13,  -845., 0.0);
+{ 49235} G2P4011 +PERO1              =  0.460G1P4019 + 0.270GPA4009 + 0.270GPA400E                 : ARR( 0.434E-13,  -900., 0.0);
+{ 49236} G2P4011 +PERO2              =  0.400G1P4019 + 0.300GPA4009 + 0.300GPA400E                 : ARR( 0.162E-13, -1400., 0.0);
+{ 49237} G2P4011 +PERO3              =  0.460G1P4019 + 0.270GPA4009 + 0.270GPA400E                 : ARR( 0.488E-13, -1250., 0.0);
+{ 49238} G2P4011 +PERO5              =  0.460G1P4019 + 0.270GPA4009 + 0.270GPA400E                 : ARR( 0.183E-11,   450., 0.0);
+{ 49239} G2P4011 +PERO6              =  0.300G1P4019 + 0.350GPA4009 + 0.350GPA400E                 : ARR( 0.168E-13, -1300., 0.0);
+{ 49240} G2P4011 +PERO9              =  0.650G1P4019 + 0.350GPA400E                                : ARR( 0.100E-10,     0., 0.0);
+{ 49241} G1P4019                     =       GCO     +      GPN3006 +      GHO                     : ARR( 0.200E+15,  4342., 0.0);
+{ 49242} GAH502B +GHO                =       GAN501i +      GHO                                    : ARR( 0.168E-10,     0., 0.0);
+{ 49243} GAH502B +GHO                =       G2A501W                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 49244} GAH502B+HV               =       G1A504z +      GNO2                                   :  0.100E+01*SUN;
+{ 49245} GAH502B+HV               =       G1A5051 +      GNO2                                   :  0.100E+01*SUN;
+{ 49246} GAH502B+HV               =       G1A501m +      GHO                                    :  0.100E+01*SUN;
+{ 49247} G1A504z                     =       GAN500b +      GHO                                    : ARR( 0.160E+12,  2186., 0.0);
+{ 49248} G1A504z                     =       GCO     +      GHN400M +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 49249} G1A5051                     =       GAD2000 +      GHD3000 +      GNO2                    : ARR( 0.200E+15,  6422., 0.0);
+{ 49250} G1A5051                     =       GAN3006 +      G2H2000                                : ARR( 0.200E+15,  6244., 0.0);
+{ 49251} GAN501i +GHO                =       G3A500U                                               : ARR( 0.216E-10,     0., 0.0);
+{ 49252} GAN501i +GNO3               =       G3A500U +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 49253} GAN501i+HV               =       G1A5052 +      GNO2                                   :  0.100E+01*SUN;
+{ 49254} GAN501i+HV               =       G1A5053 +      GNO2                                   :  0.100E+01*SUN;
+{ 49255} GAN501i+HV               =       G2A400b +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 49256} GAN501i+HV               =       GAD3002 +      GD02000 + 2.000GNO2                    :  0.100E+01*SUN;
+{ 49257} G3A500U +GHO2               =  0.800GAG500X + 0.200GAA500L + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 49258} G3A500U +GNO                =       G2A400b +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 49259} G3A500U +GNO2               =       GPA500X                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 49260} G3A500U +GNO3               =       G2A400b +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 49261} G3A500U +MEPERO             =  0.685G2A400b + 0.315GAA500L + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 49262} G3A500U +PERO1              =  0.800G2A400b + 0.200GAA500L + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 49263} G3A500U +PERO2              =  0.750G2A400b + 0.250GAA500L + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 49264} G3A500U +PERO3              =  0.800G2A400b + 0.200GAA500L + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 49265} G3A500U +PERO5              =  0.650G2A400b + 0.350GAA500L + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 49266} G3A500U +PERO6              =  0.650G2A400b + 0.350GAA500L + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 49267} G3A500U +PERO9              =       G2A400b +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 49268} G1A5052                     =       GCO     +      GND400D +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 49269} G1A5053                     =       GAD2000 +      GDD3000 +      GNO2                    : ARR( 0.200E+15,  6039., 0.0);
+{ 49270} G1A5053                     =       GAN3006 +      G2D2000                                : ARR( 0.200E+15,  6399., 0.0);
+{ 49271} GAH502C +GHO                =       GAN501f +      GHO                                    : ARR( 0.717E-11,     0., 0.0);
+{ 49272} GAH502C +GHO                =       G2A501X                                               : ARR( 0.203E-11,  -190., 0.0);
+{ 49273} GAH502C+HV               =       G1A501n +      GHO                                    :  0.100E+01*SUN;
+{ 49274} GAH502C+HV               =       G1A5054 +      GNO2                                   :  0.100E+01*SUN;
+{ 49275} GAH502C+HV               =       G1A5055 +      GNO2                                   :  0.100E+01*SUN;
+{ 49276} G1A5054                     =       GD02000 +      GAN3006 +      GHO                     : ARR( 0.200E+15,  4341., 0.0);
+{ 49277} G1A5055                     =       G2A503z                                               : ARR( 0.240E+12,  4177., 0.0);
+{ 49278} G1A5055                     =       GHN400p +      GCO     +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 49279} G2A503z +GNO                =       G1A5056 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 49280} G2A503z +GNO                =       GAH504F                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 49281} G2A503z +GHO2               =       GAH504m                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 49282} G2A503z +GNO3               =       G1A5056 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 49283} G2A503z +MEPERO             =  0.480G1A5056 + 0.260GAH5036 + 0.260GAH5037                 : ARR( 0.164E-12,  -795., 0.0);
+{ 49284} G2A503z +PERO1              =  0.600G1A5056 + 0.200GAH5036 + 0.200GAH5037                 : ARR( 0.126E-12,  -850., 0.0);
+{ 49285} G2A503z +PERO2              =  0.560G1A5056 + 0.220GAH5036 + 0.220GAH5037                 : ARR( 0.471E-13, -1350., 0.0);
+{ 49286} G2A503z +PERO3              =  0.600G1A5056 + 0.200GAH5036 + 0.200GAH5037                 : ARR( 0.142E-12, -1200., 0.0);
+{ 49287} G2A503z +PERO5              =  0.600G1A5056 + 0.200GAH5036 + 0.200GAH5037                 : ARR( 0.533E-11,   500., 0.0);
+{ 49288} G2A503z +PERO6              =  0.460G1A5056 + 0.270GAH5036 + 0.270GAH5037                 : ARR( 0.488E-13, -1250., 0.0);
+{ 49289} G2A503z +PERO9              =  0.800G1A5056 + 0.200GAH5037                                : ARR( 0.100E-10,     0., 0.0);
+{ 49290} G1A5056                     =       GAH502I +      GHO2                                   : ARR( 0.800E+11,  3100., 0.0);
+{ 49291} G1A5056                     =       GAN400a +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{ 49292} GAH502D +GHO                =       GAN501g +      GHO                                    : ARR( 0.727E-11,     0., 0.0);
+{ 49293} GAH502D +GHO                =       GAH502F +      GHO2                                   : ARR( 0.101E-11,     0., 0.0);
+{ 49294} GAH502D +GHO                =       G2A501Y                                               : ARR( 0.206E-11,  -190., 0.0);
+{ 49295} GAH502D+HV               =       G1A501o +      GHO                                    :  0.100E+01*SUN;
+{ 49296} GAH502D+HV               =       G1A5057 +      GNO2                                   :  0.100E+01*SUN;
+{ 49297} G1A5057                     =       GD02000 +      GAD3001 +      GHO                     : ARR( 0.200E+15,  4341., 0.0);
+{ 49298} G1A5057                     =       GHD3002 +      GAD2000 +      GHO2                    : ARR( 0.200E+15,  3929., 0.0);
+{ 49299} GAH502E +GHO                =       GAN501j +      GHO                                    : ARR( 0.168E-10,     0., 0.0);
+{ 49300} GAH502E +GHO                =       G2A501Z                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 49301} GAH502E+HV               =       GHN400M +      GCO2                                   :  0.100E+01*SUN;
+{ 49302} GAH502E+HV               =       G1A5058 +      GNO2                                   :  0.100E+01*SUN;
+{ 49303} GAH502E+HV               =       G1A501p +      GHO                                    :  0.100E+01*SUN;
+{ 49304} G1A5058                     =       GCO     +      GHD3000 +      GHO     +      GCO      : ARR( 0.200E+15,  3012., 0.0);
+{ 49305} GAN501j +GHO                =       G3A500W                                               : ARR( 0.217E-10,     0., 0.0);
+{ 49306} GAN501j +GNO3               =       G3A500W +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 49307} GAN501j+HV               =       GND400D +      GCO2                                   :  0.100E+01*SUN;
+{ 49308} GAN501j+HV               =       G1A503P +      GNO2                                   :  0.100E+01*SUN;
+{ 49309} GAN501j+HV               =       G2A400c +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 49310} G3A500W +GHO2               =  0.800GAG500Y + 0.200GAA500N + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 49311} G3A500W +GNO                =       G2A400c +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 49312} G3A500W +GNO2               =       GPA500Z                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 49313} G3A500W +GNO3               =       G2A400c +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 49314} G3A500W +MEPERO             =  0.685G2A400c + 0.315GAA500N + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 49315} G3A500W +PERO1              =  0.800G2A400c + 0.200GAA500N + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 49316} G3A500W +PERO2              =  0.750G2A400c + 0.250GAA500N + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 49317} G3A500W +PERO3              =  0.800G2A400c + 0.200GAA500N + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 49318} G3A500W +PERO5              =  0.650G2A400c + 0.350GAA500N + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 49319} G3A500W +PERO6              =  0.650G2A400c + 0.350GAA500N + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 49320} G3A500W +PERO9              =       G2A400c +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 49321} GAH502F +GHO                =       GAN501h +      GHO                                    : ARR( 0.720E-11,     0., 0.0);
+{ 49322} GAH502F +GHO                =       G2A501a                                               : ARR( 0.204E-11,  -190., 0.0);
+{ 49323} GAH502F+HV               =       G1A501q +      GHO                                    :  0.100E+01*SUN;
+{ 49324} GAH502F+HV               =       G1A5059 +      GNO2                                   :  0.100E+01*SUN;
+{ 49325} GAH502F+HV               =       GHN400p +      GCO2                                   :  0.100E+01*SUN;
+{ 49326} G1A5059                     =       GHD3002 +      GCO     +      GHO     +      GCO      : ARR( 0.200E+15,  3266., 0.0);
+{ 49327} GAN501k +GHO                =       G2A5041                                               : ARR( 0.172E-12,     0., 0.0);
+{ 49328} GAN501k +GHO                =       GAN501h +      GHO2                                   : ARR( 0.172E-11,     0., 0.0);
+{ 49329} GAN501k +GHO                =       G1A501q                                               : ARR( 0.216E-17,    85., 2.0);
+{ 49330} GAN501k +GHO                =       G3N400C +      GCO2                                   : ARR( 0.535E-12,     0., 0.0);
+{ 49331} GAN501k+HV               =       G1A505A +      GNO2                                   :  0.100E+01*SUN;
+{ 49332} GAN501k+HV               =       GND4007 +      GCO2                                   :  0.100E+01*SUN;
+{ 49333} G2A5041 +GNO                =       G1A504K +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 49334} G2A5041 +GNO                =       GAN501O                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 49335} G2A5041 +GHO2               =       GAH504n                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 49336} G2A5041 +GNO3               =       G1A504K +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 49337} G2A5041 +MEPERO             =  0.480G1A504K + 0.260GAN501o + 0.260GAN502h                 : ARR( 0.164E-12,  -795., 0.0);
+{ 49338} G2A5041 +PERO1              =  0.600G1A504K + 0.200GAN501o + 0.200GAN502h                 : ARR( 0.126E-12,  -850., 0.0);
+{ 49339} G2A5041 +PERO2              =  0.560G1A504K + 0.220GAN501o + 0.220GAN502h                 : ARR( 0.471E-13, -1350., 0.0);
+{ 49340} G2A5041 +PERO3              =  0.600G1A504K + 0.200GAN501o + 0.200GAN502h                 : ARR( 0.142E-12, -1200., 0.0);
+{ 49341} G2A5041 +PERO5              =  0.600G1A504K + 0.200GAN501o + 0.200GAN502h                 : ARR( 0.533E-11,   500., 0.0);
+{ 49342} G2A5041 +PERO6              =  0.460G1A504K + 0.270GAN501o + 0.270GAN502h                 : ARR( 0.488E-13, -1250., 0.0);
+{ 49343} G2A5041 +PERO9              =  0.800G1A504K + 0.200GAN502h                                : ARR( 0.100E-10,     0., 0.0);
+{ 49344} G1A505A                     =       GDO3001 +      GCO     +      GHO     +      GCO      : ARR( 0.200E+15,  3266., 0.0);
+{ 49345} GAN501l +GHO                =       GAN502j +      GHO2                                   : ARR( 0.826E-12,     0., 0.0);
+{ 49346} GAN501l +GHO                =       G1A504q                                               : ARR( 0.216E-17,    85., 2.0);
+{ 49347} GAN501l +GHO                =       GNN400E +      GNO2    +      GCO2                    : ARR( 0.534E-12,     0., 0.0);
+{ 49348} GAN501l+HV               =       G1A501s +      GNO2                                   :  0.100E+01*SUN;
+{ 49349} GAN501l+HV               =       G1A505B +      GNO2                                   :  0.100E+01*SUN;
+{ 49350} GAN501l+HV               =       G1A502n +      GNO2                                   :  0.100E+01*SUN;
+{ 49351} G1A505B                     =       GDO2000 +      GAN3006 +      GNO2                    : ARR( 0.200E+15,  5492., 0.0);
+{ 49352} GAH502G +GHO                =       GAH504o +      GHO2                                   : ARR( 0.420E-11,     0., 0.0);
+{ 49353} GAH502G +GHO                =       GAN501m +      GHO                                    : ARR( 0.860E-11,     0., 0.0);
+{ 49354} GAH502G +GHO                =       G2A501b                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 49355} GAH502G+HV               =       G1A501s +      GHO                                    :  0.100E+01*SUN;
+{ 49356} GAH502G+HV               =       G1A505C +      GNO2                                   :  0.100E+01*SUN;
+{ 49357} GAH502G+HV               =       G1A502p +      GNO2                                   :  0.100E+01*SUN;
+{ 49358} G1A505C                     =       GDO2000 +      GAN3006 +      GHO                     : ARR( 0.200E+15,  3953., 0.0);
+{ 49359} GAN501m +GHO                =       GAN502l +      GHO2                                   : ARR( 0.259E-11,     0., 0.0);
+{ 49360} GAN501m +GHO                =       GND400L +      GNO2    +      GCO2                    : ARR( 0.549E-12,     0., 0.0);
+{ 49361} GAN501m+HV               =       G3K2001 +      GAN3006 +      GNO2                    :  0.100E+01*SUN;
+{ 49362} GAN501m+HV               =       G1A505D +      GNO2                                   :  0.100E+01*SUN;
+{ 49363} GAN501m+HV               =       G1A505E +      GNO2                                   :  0.100E+01*SUN;
+{ 49364} G1A505D                     =       G3K2001 +      GAN3006                                : ARR( 0.200E+15,  2179., 0.0);
+{ 49365} G1A505E                     =       GND400L +      GCO     +      GHO                     : ARR( 0.200E+15,  4342., 0.0);
+{ 49366} GAN400Y +GHO                =       G3A400A                                               : ARR( 0.418E-11,     0., 0.0);
+{ 49367} GAN400Y +GHO                =       GND3005 +      GNO2    +      GCO2                    : ARR( 0.523E-12,     0., 0.0);
+{ 49368} GAN400Y +GNO3               =       G3A400A +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 49369} GAN400Y+HV               =       G1A4015 +      GNO2                                   :  0.100E+01*SUN;
+{ 49370} GAN400Y+HV               =       G1A4016 +      GNO2                                   :  0.100E+01*SUN;
+{ 49371} GAN400Y+HV               =       GAN3006 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 49372} G1A4015                     =       GCO     +      GND3005 +      GHO                     : ARR( 0.200E+15,  4342., 0.0);
+{ 49373} G1A4016                     =       GAN3006 +      GCO     +      GHO2                    : ARR( 0.200E+15,  4861., 0.0);
+{ 49374} GAH502H +GHO                =       GAN501j +      GHO                                    : ARR( 0.386E-11,     0., 0.0);
+{ 49375} GAH502H +GHO                =       G3A500X                                               : ARR( 0.216E-10,     0., 0.0);
+{ 49376} GAH502H +GHO                =       G2A5042                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 49377} GAH502H +GNO3               =       G3A500X +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 49378} GAH502H+HV               =       G1A5052 +      GHO                                    :  0.100E+01*SUN;
+{ 49379} GAH502H+HV               =       G1A503y +      GNO2                                   :  0.100E+01*SUN;
+{ 49380} GAH502H+HV               =       G2A400y +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 49381} GAH502H+HV               =       GAD3002 +      GD02000 +      GNO2    +      GHO      :  0.100E+01*SUN;
+{ 49382} G3A500X +GHO2               =  0.800GAG500Z + 0.200GAA500M + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 49383} G3A500X +GNO                =       G2A400y +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 49384} G3A500X +GNO2               =       GPA500Y                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 49385} G3A500X +GNO3               =       G2A400y +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 49386} G3A500X +MEPERO             =  0.685G2A400y + 0.315GAA500M + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 49387} G3A500X +PERO1              =  0.800G2A400y + 0.200GAA500M + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 49388} G3A500X +PERO2              =  0.750G2A400y + 0.250GAA500M + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 49389} G3A500X +PERO3              =  0.800G2A400y + 0.200GAA500M + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 49390} G3A500X +PERO5              =  0.650G2A400y + 0.350GAA500M + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 49391} G3A500X +PERO6              =  0.650G2A400y + 0.350GAA500M + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 49392} G3A500X +PERO9              =       G2A400y +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 49393} G2A5042 +GNO                =       G1A5052 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 49394} G2A5042 +GNO                =       GAN501i                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 49395} G2A5042 +GHO2               =       GAH502H                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 49396} G2A5042 +GNO3               =       G1A5052 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 49397} G2A5042 +MEPERO             =  0.340G1A5052 + 0.330GAN500b + 0.330GAN501j                 : ARR( 0.565E-13,  -845., 0.0);
+{ 49398} G2A5042 +PERO1              =  0.460G1A5052 + 0.270GAN500b + 0.270GAN501j                 : ARR( 0.434E-13,  -900., 0.0);
+{ 49399} G2A5042 +PERO2              =  0.400G1A5052 + 0.300GAN500b + 0.300GAN501j                 : ARR( 0.162E-13, -1400., 0.0);
+{ 49400} G2A5042 +PERO3              =  0.460G1A5052 + 0.270GAN500b + 0.270GAN501j                 : ARR( 0.488E-13, -1250., 0.0);
+{ 49401} G2A5042 +PERO5              =  0.460G1A5052 + 0.270GAN500b + 0.270GAN501j                 : ARR( 0.183E-11,   450., 0.0);
+{ 49402} G2A5042 +PERO6              =  0.300G1A5052 + 0.350GAN500b + 0.350GAN501j                 : ARR( 0.168E-13, -1300., 0.0);
+{ 49403} G2A5042 +PERO9              =  0.650G1A5052 + 0.350GAN501j                                : ARR( 0.100E-10,     0., 0.0);
+{ 49404} G2A400y +GNO                =       G1A400z +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 49405} G2A400y +GNO                =       GAH400O                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 49406} G2A400y +GHO2               =       GAH400p                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 49407} G2A400y +GNO3               =       G1A400z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 49408} G2A400y +MEPERO             =  0.480G1A400z + 0.260GAH400C + 0.260GAH400l                 : ARR( 0.164E-12,  -795., 0.0);
+{ 49409} G2A400y +PERO1              =  0.600G1A400z + 0.200GAH400C + 0.200GAH400l                 : ARR( 0.126E-12,  -850., 0.0);
+{ 49410} G2A400y +PERO2              =  0.560G1A400z + 0.220GAH400C + 0.220GAH400l                 : ARR( 0.471E-13, -1350., 0.0);
+{ 49411} G2A400y +PERO3              =  0.600G1A400z + 0.200GAH400C + 0.200GAH400l                 : ARR( 0.142E-12, -1200., 0.0);
+{ 49412} G2A400y +PERO5              =  0.600G1A400z + 0.200GAH400C + 0.200GAH400l                 : ARR( 0.533E-11,   500., 0.0);
+{ 49413} G2A400y +PERO6              =  0.460G1A400z + 0.270GAH400C + 0.270GAH400l                 : ARR( 0.488E-13, -1250., 0.0);
+{ 49414} G2A400y +PERO9              =  0.800G1A400z + 0.200GAH400l                                : ARR( 0.100E-10,     0., 0.0);
+{ 49415} GAN501n +GHO                =       GAN502k +      GHO2                                   : ARR( 0.825E-12,     0., 0.0);
+{ 49416} GAN501n +GHO                =       G1A504u                                               : ARR( 0.215E-17,    85., 2.0);
+{ 49417} GAN501n +GHO                =       G3N400B +      GCO2                                   : ARR( 0.533E-12,     0., 0.0);
+{ 49418} GAN501n+HV               =       G1A501u +      GNO2                                   :  0.100E+01*SUN;
+{ 49419} GAN501n+HV               =       G1A503f +      GNO2                                   :  0.100E+01*SUN;
+{ 49420} GAN501n+HV               =       GNN400E +      GCO2                                   :  0.100E+01*SUN;
+{ 49421} GAH502I +GHO                =       GAH504p +      GHO2                                   : ARR( 0.421E-11,     0., 0.0);
+{ 49422} GAH502I +GHO                =       GAN501p +      GHO                                    : ARR( 0.862E-11,     0., 0.0);
+{ 49423} GAH502I +GHO                =       G2A501c                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 49424} GAH502I+HV               =       G1A501u +      GHO                                    :  0.100E+01*SUN;
+{ 49425} GAH502I+HV               =       G1A505F +      GNO2                                   :  0.100E+01*SUN;
+{ 49426} GAH502I+HV               =       GHN400L +      GCO2                                   :  0.100E+01*SUN;
+{ 49427} G1A505F                     =       GHD3003 +      GCO     +      GHO     +      GCO      : ARR( 0.200E+15,  3266., 0.0);
+{ 49428} GAN501o +GHO                =       GAN502h +      GHO2                                   : ARR( 0.424E-11,     0., 0.0);
+{ 49429} GAN501o +GHO                =       GAN501p +      GHO2                                   : ARR( 0.217E-11,     0., 0.0);
+{ 49430} GAN501o +GHO                =       G3N400F +      GCO2                                   : ARR( 0.548E-12,     0., 0.0);
+{ 49431} GAN501o+HV               =       G1A505G +      GNO2                                   :  0.100E+01*SUN;
+{ 49432} GAN501o+HV               =       GND400A +      GCO2                                   :  0.100E+01*SUN;
+{ 49433} G1A505G                     =       GDO3002 +      GCO     +      GHO     +      GCO      : ARR( 0.200E+15,  3266., 0.0);
+{ 49434} GAN501p +GHO                =       GAN502m +      GHO2                                   : ARR( 0.260E-11,     0., 0.0);
+{ 49435} GAN501p +GHO                =       G3N400Q +      GCO2                                   : ARR( 0.552E-12,     0., 0.0);
+{ 49436} GAN501p+HV               =       G3K2001 +      GAD3002 +      GNO2                    :  0.100E+01*SUN;
+{ 49437} GAN501p+HV               =       G1A503z +      GNO2                                   :  0.100E+01*SUN;
+{ 49438} GAN501p+HV               =       GND400L +      GCO2                                   :  0.100E+01*SUN;
+{ 49439} GAN400Z +GHO                =       G3A400C                                               : ARR( 0.419E-11,     0., 0.0);
+{ 49440} GAN400Z +GHO                =       G3N3005 +      GCO2                                   : ARR( 0.525E-12,     0., 0.0);
+{ 49441} GAN400Z +GNO3               =       G3A400C +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 49442} GAN400Z+HV               =       GND3005 +      GCO2                                   :  0.100E+01*SUN;
+{ 49443} GAN400Z+HV               =       G1A4017 +      GNO2                                   :  0.100E+01*SUN;
+{ 49444} GAN400Z+HV               =       GAD3002 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 49445} G1A4017                     =       GCO     +      GDD2000 +      GHO     +      GCO      : ARR( 0.200E+15,  5210., 0.0);
+{ 49446} GAG5005 +GHO                =       GAG500Y +      GHO2                                   : ARR( 0.101E-11,     0., 0.0);
+{ 49447} GAG5005 +GHO                =       G3A5005                                               : ARR( 0.206E-11,  -190., 0.0);
+{ 49448} GAG5005 +GHO                =       GGN400I +      GHO2    +      GCO2                    : ARR( 0.564E-12,     0., 0.0);
+{ 49449} GAG5005+HV               =       G1A5041 +      GNO2                                   :  0.100E+01*SUN;
+{ 49450} GAG5005+HV               =       G2A400Z +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 49451} GAA5004 +GHO                =       GAA500N +      GHO2                                   : ARR( 0.979E-12,     0., 0.0);
+{ 49452} GAA5004 +GHO                =       G2A5043                                               : ARR( 0.134E-12,     0., 0.0);
+{ 49453} GAA5004 +GHO                =       G1A504p                                               : ARR( 0.221E-17,    85., 2.0);
+{ 49454} GAA5004 +GHO                =       GAN400J +      GHO2    +      GCO2                    : ARR( 0.547E-12,     0., 0.0);
+{ 49455} GAA5004 +GHO                =       G2A400Z +      GCO2                                   : ARR( 0.547E-12,     0., 0.0);
+{ 49456} GAA5004+HV               =       G1A5044 +      GNO2                                   :  0.100E+01*SUN;
+{ 49457} G2A5043 +GNO                =       G1A505H +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 49458} G2A5043 +GNO                =       GAA500O                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 49459} G2A5043 +GHO2               =       GAA500P                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 49460} G2A5043 +GNO3               =       G1A505H +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 49461} G2A5043 +MEPERO             =  0.340G1A505H + 0.330GAA500J + 0.330GAA500Q                 : ARR( 0.565E-13,  -845., 0.0);
+{ 49462} G2A5043 +PERO1              =  0.460G1A505H + 0.270GAA500J + 0.270GAA500Q                 : ARR( 0.434E-13,  -900., 0.0);
+{ 49463} G2A5043 +PERO2              =  0.400G1A505H + 0.300GAA500J + 0.300GAA500Q                 : ARR( 0.162E-13, -1400., 0.0);
+{ 49464} G2A5043 +PERO3              =  0.460G1A505H + 0.270GAA500J + 0.270GAA500Q                 : ARR( 0.488E-13, -1250., 0.0);
+{ 49465} G2A5043 +PERO5              =  0.460G1A505H + 0.270GAA500J + 0.270GAA500Q                 : ARR( 0.183E-11,   450., 0.0);
+{ 49466} G2A5043 +PERO6              =  0.300G1A505H + 0.350GAA500J + 0.350GAA500Q                 : ARR( 0.168E-13, -1300., 0.0);
+{ 49467} G2A5043 +PERO9              =  0.650G1A505H + 0.350GAA500Q                                : ARR( 0.100E-10,     0., 0.0);
+{ 49468} G1A505H                     =       GAN400a +      GCO     +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 49469} GPA5005                     =       G3A5005 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 49470} GPA5005 +GHO                =       GPA500Z +      GHO2                                   : ARR( 0.930E-12,     0., 0.0);
+{ 49471} GPA5005 +GHO                =       GPA5009 +      GNO2                                   : ARR( 0.118E-12,     0., 0.0);
+{ 49472} GPA5005 +GHO                =       G2P503z                                               : ARR( 0.172E-12,     0., 0.0);
+{ 49473} GPA5005 +GHO                =       G1P504v                                               : ARR( 0.210E-17,    85., 2.0);
+{ 49474} GPA5005 +GHO                =       GPN400H +      GHO2    +      GCO2                    : ARR( 0.520E-12,     0., 0.0);
+{ 49475} GPA5005+HV               =       G1P503Q +      GNO2                                   :  0.100E+01*SUN;
+{ 49476} GPA5005+HV               =       G3A5005 +      GNO2                                   :  0.100E+01*SUN;
+{ 49477} G2P503z +GNO                =       G1P504x +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 49478} G2P503z +GNO                =       GPA500d                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 49479} G2P503z +GHO2               =       GPA500e                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 49480} G2P503z +GNO3               =       G1P504x +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 49481} G2P503z +MEPERO             =  0.340G1P504x + 0.330GPA500D + 0.330GPA500f                 : ARR( 0.565E-13,  -845., 0.0);
+{ 49482} G2P503z +PERO1              =  0.460G1P504x + 0.270GPA500D + 0.270GPA500f                 : ARR( 0.434E-13,  -900., 0.0);
+{ 49483} G2P503z +PERO2              =  0.400G1P504x + 0.300GPA500D + 0.300GPA500f                 : ARR( 0.162E-13, -1400., 0.0);
+{ 49484} G2P503z +PERO3              =  0.460G1P504x + 0.270GPA500D + 0.270GPA500f                 : ARR( 0.488E-13, -1250., 0.0);
+{ 49485} G2P503z +PERO5              =  0.460G1P504x + 0.270GPA500D + 0.270GPA500f                 : ARR( 0.183E-11,   450., 0.0);
+{ 49486} G2P503z +PERO6              =  0.300G1P504x + 0.350GPA500D + 0.350GPA500f                 : ARR( 0.168E-13, -1300., 0.0);
+{ 49487} G2P503z +PERO9              =  0.650G1P504x + 0.350GPA500f                                : ARR( 0.100E-10,     0., 0.0);
+{ 49488} G1P504x                     =       GAN400a +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 49489} GAH400g +GHO                =       GAH400j +      GHO2                                   : ARR( 0.959E-12,     0., 0.0);
+{ 49490} GAH400g +GHO                =       GAN400a +      GHO                                    : ARR( 0.332E-11,     0., 0.0);
+{ 49491} GAH400g +GHO                =       G2A400Z                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 49492} GAH400g +GHO                =       GHN300A +      GHO2    +      GCO2                    : ARR( 0.536E-12,     0., 0.0);
+{ 49493} GAH400g+HV               =       G1A400v +      GNO2                                   :  0.100E+01*SUN;
+{ 49494} GAH400g+HV               =       G1A400d +      GHO                                    :  0.100E+01*SUN;
+{ 49495} GAN400a +GHO                =       GAN400Z +      GHO2                                   : ARR( 0.965E-12,     0., 0.0);
+{ 49496} GAN400a +GHO                =       G3A400B                                               : ARR( 0.431E-11,     0., 0.0);
+{ 49497} GAN400a +GHO                =       GND3005 +      GHO2    +      GCO2                    : ARR( 0.540E-12,     0., 0.0);
+{ 49498} GAN400a +GNO3               =       G3A400B +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 49499} GAN400a+HV               =       G1A4018 +      GNO2                                   :  0.100E+01*SUN;
+{ 49500} GAN400a+HV               =       GAD3001 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 49501} G1A4018                     =       GAD2000 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  5402., 0.0);
+{ 49502} G1A4018                     =       GAD3001 +      GCO     +      GHO2                    : ARR( 0.200E+15,  4861., 0.0);
+{ 49503} GPH5025                     =       G3H502F +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 49504} GPH5025 +GHO                =       GPH503F +      GHO2                                   : ARR( 0.413E-11,     0., 0.0);
+{ 49505} GPH5025 +GHO                =       GPN501a +      GHO                                    : ARR( 0.847E-11,     0., 0.0);
+{ 49506} GPH5025 +GHO                =       G2P501T                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 49507} GPH5025+HV               =       G1P501j +      GHO                                    :  0.100E+01*SUN;
+{ 49508} GPH5025+HV               =       G1P504y +      GNO2                                   :  0.100E+01*SUN;
+{ 49509} GPH5025+HV               =       G3H502F +      GNO2                                   :  0.100E+01*SUN;
+{ 49510} G1P504y                     =       GDO2000 +      GPD3000 +      GHO                     : ARR( 0.200E+15,  4146., 0.0);
+{ 49511} GPG5003                     =       G3G5007 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 49512} GPG5003 +GHO                =       G3P5003                                               : ARR( 0.214E-11,  -190., 0.0);
+{ 49513} GPG5003+HV               =       G2P4009 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 49514} GPG5003+HV               =       G1P504z +      GNO2                                   :  0.100E+01*SUN;
+{ 49515} GPG5003+HV               =       G3G5007 +      GNO2                                   :  0.100E+01*SUN;
+{ 49516} G1P504z                     =       G2G2000 +      GPD3000                                : ARR( 0.200E+15,  6813., 0.0);
+{ 49517} G1P504z                     =       GGD3000 +      G2P2000                                : ARR( 0.200E+15,  6813., 0.0);
+{ 49518} GPP5002                     =       G3P5003 +      GNO2                                   : ARR( 0.400E+16, 12800., 0.0);
+{ 49519} GPP5002 +GHO                =       G2P5041                                               : ARR( 0.345E-12,     0., 0.0);
+{ 49520} GPP5002 +GHO                =       GPP5005 +      GNO2                                   : ARR( 0.118E-12,     0., 0.0);
+{ 49521} GPP5002+HV               =       G3P5003 +      GNO2                                   :  0.200E+01*SUN;
+{ 49522} GPP5002+HV               =       G1P5051 +      GNO2                                   :  0.100E+01*SUN;
+{ 49523} G2P5041 +GNO                =       G1P5052 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 49524} G2P5041 +GNO                =       GPP500I                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 49525} G2P5041 +GHO2               =       GPP500J                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 49526} G2P5041 +GNO3               =       G1P5052 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 49527} G2P5041 +MEPERO             =  0.340G1P5052 + 0.330GPP5003 + 0.330GPP500K                 : ARR( 0.565E-13,  -845., 0.0);
+{ 49528} G2P5041 +PERO1              =  0.460G1P5052 + 0.270GPP5003 + 0.270GPP500K                 : ARR( 0.434E-13,  -900., 0.0);
+{ 49529} G2P5041 +PERO2              =  0.400G1P5052 + 0.300GPP5003 + 0.300GPP500K                 : ARR( 0.162E-13, -1400., 0.0);
+{ 49530} G2P5041 +PERO3              =  0.460G1P5052 + 0.270GPP5003 + 0.270GPP500K                 : ARR( 0.488E-13, -1250., 0.0);
+{ 49531} G2P5041 +PERO5              =  0.460G1P5052 + 0.270GPP5003 + 0.270GPP500K                 : ARR( 0.183E-11,   450., 0.0);
+{ 49532} G2P5041 +PERO6              =  0.300G1P5052 + 0.350GPP5003 + 0.350GPP500K                 : ARR( 0.168E-13, -1300., 0.0);
+{ 49533} G2P5041 +PERO9              =  0.650G1P5052 + 0.350GPP500K                                : ARR( 0.100E-10,     0., 0.0);
+{ 49534} G1P5051                     =       G2P2000 +      GPD3000                                : ARR( 0.400E+15,  6813., 0.0);
+{ 49535} G1P5052                     =       GPN400H +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 49536} GPH5026                     =       G3H5026 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 49537} GPH5026 +GHO                =       GPN501d +      GHO                                    : ARR( 0.332E-11,     0., 0.0);
+{ 49538} GPH5026 +GHO                =       G2P501U                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 49539} GPH5026+HV               =       G1P501l +      GHO                                    :  0.100E+01*SUN;
+{ 49540} GPH5026+HV               =       G1P5053 +      GNO2                                   :  0.100E+01*SUN;
+{ 49541} GPH5026+HV               =       G1P5054 +      GNO2                                   :  0.100E+01*SUN;
+{ 49542} GPH5026+HV               =       G3H5026 +      GNO2                                   :  0.100E+01*SUN;
+{ 49543} G1P5053                     =       GCH2O   +      GPN400H +      GHO                     : ARR( 0.200E+15,  7395., 0.0);
+{ 49544} G1P5053                     =       GHD2000 +      GPD3000 +      GNO2                    : ARR( 0.200E+15,  6367., 0.0);
+{ 49545} G1P5054                     =       GHD2000 +      GPD3000 +      GNO2                    : ARR( 0.200E+15,  5685., 0.0);
+{ 49546} GPN501d                     =       G3N501h +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 49547} GPN501d +GHO                =       G3P500R                                               : ARR( 0.437E-11,     0., 0.0);
+{ 49548} GPN501d +GNO3               =       G3P500R +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 49549} GPN501d+HV               =       G3N501h +      GNO2                                   :  0.100E+01*SUN;
+{ 49550} GPN501d+HV               =       G1P504J +      GNO2                                   :  0.100E+01*SUN;
+{ 49551} GPN501d+HV               =       G1P5055 +      GNO2                                   :  0.100E+01*SUN;
+{ 49552} GPN501d+HV               =       GPN400H +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 49553} GPN501d+HV               =       G2P3007 +      GND2000 +      GNO2                    :  0.100E+01*SUN;
+{ 49554} G3P500R +GHO2               =  0.800GPG500T + 0.200GPA500X + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 49555} G3P500R +GNO                =       GPN400H + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 49556} G3P500R +GNO2               =       GPP500I                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 49557} G3P500R +GNO3               =       GPN400H + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 49558} G3P500R +MEPERO             =  0.685GPN400H + 0.315GPA500X + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 49559} G3P500R +PERO1              =  0.800GPN400H + 0.200GPA500X + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 49560} G3P500R +PERO2              =  0.750GPN400H + 0.250GPA500X + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 49561} G3P500R +PERO3              =  0.800GPN400H + 0.200GPA500X + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 49562} G3P500R +PERO5              =  0.650GPN400H + 0.350GPA500X + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 49563} G3P500R +PERO6              =  0.650GPN400H + 0.350GPA500X + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 49564} G3P500R +PERO9              =       GPN400H +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 49565} G1P5055                     =       GPN400H +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 49566} GPN501e                     =       G3N501L +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 49567} GPN501e +GHO                =       G2P5042                                               : ARR( 0.335E-13,     0., 0.0);
+{ 49568} GPN501e +GHO                =       GPN501m +      GNO2                                   : ARR( 0.191E-13,     0., 0.0);
+{ 49569} GPN501e +GHO                =       GPN5022 +      GNO2                                   : ARR( 0.471E-14,     0., 0.0);
+{ 49570} GPN501e +GHO                =       GPN501g +      GNO2                                   : ARR( 0.144E-13,     0., 0.0);
+{ 49571} GPN501e+HV               =       G1P501s +      GNO2                                   :  0.100E+01*SUN;
+{ 49572} GPN501e+HV               =       G1P502R +      GNO2                                   :  0.100E+01*SUN;
+{ 49573} GPN501e+HV               =       G1P501m +      GNO2                                   :  0.100E+01*SUN;
+{ 49574} GPN501e+HV               =       G3N501L +      GNO2                                   :  0.100E+01*SUN;
+{ 49575} G2P5042 +GNO                =       G1P5056 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 49576} G2P5042 +GNO                =       GPN502M                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 49577} G2P5042 +GHO2               =       GPH504m                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 49578} G2P5042 +GNO3               =       G1P5056 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 49579} G2P5042 +MEPERO             =  0.480G1P5056 + 0.260GPN501h + 0.260GPN502j                 : ARR( 0.164E-12,  -795., 0.0);
+{ 49580} G2P5042 +PERO1              =  0.600G1P5056 + 0.200GPN501h + 0.200GPN502j                 : ARR( 0.126E-12,  -850., 0.0);
+{ 49581} G2P5042 +PERO2              =  0.560G1P5056 + 0.220GPN501h + 0.220GPN502j                 : ARR( 0.471E-13, -1350., 0.0);
+{ 49582} G2P5042 +PERO3              =  0.600G1P5056 + 0.200GPN501h + 0.200GPN502j                 : ARR( 0.142E-12, -1200., 0.0);
+{ 49583} G2P5042 +PERO5              =  0.600G1P5056 + 0.200GPN501h + 0.200GPN502j                 : ARR( 0.533E-11,   500., 0.0);
+{ 49584} G2P5042 +PERO6              =  0.460G1P5056 + 0.270GPN501h + 0.270GPN502j                 : ARR( 0.488E-13, -1250., 0.0);
+{ 49585} G2P5042 +PERO9              =  0.800G1P5056 + 0.200GPN502j                                : ARR( 0.100E-10,     0., 0.0);
+{ 49586} G1P5056 +OXYGEN             =       GPN502j +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 49587} G1P5056                     =       GPN501j +      GNO2                                   : ARR( 0.800E+11,  4964., 0.0);
+{ 49588} G1P5056                     =       GPN400Z +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7042., 0.0);
+{ 49589} GPH5027                     =       G3H501o +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 49590} GPH5027 +GHO                =       GPN501g +      GHO                                    : ARR( 0.507E-11,     0., 0.0);
+{ 49591} GPH5027 +GHO                =       G2P501W                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 49592} GPH5027+HV               =       G1P5057 +      GNO2                                   :  0.100E+01*SUN;
+{ 49593} GPH5027+HV               =       G1P5058 +      GNO2                                   :  0.100E+01*SUN;
+{ 49594} GPH5027+HV               =       G1P501m +      GHO                                    :  0.100E+01*SUN;
+{ 49595} GPH5027+HV               =       G3H501o +      GNO2                                   :  0.100E+01*SUN;
+{ 49596} G1P5057                     =       GD02000 +      GPH3007 +      GNO2                    : ARR( 0.200E+15,  6112., 0.0);
+{ 49597} G1P5058                     =       GD02000 +      GPH3007 +      GNO2                    : ARR( 0.200E+15,  5880., 0.0);
+{ 49598} G1P5058                     =       GND3001 +      GPD2000 +      GHO                     : ARR( 0.200E+15,  5138., 0.0);
+{ 49599} GPN501f                     =       G3N501Q +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 49600} GPN501f +GHO                =       GPN501g +      GHO2                                   : ARR( 0.133E-11,     0., 0.0);
+{ 49601} GPN501f +GHO                =       G1P501m                                               : ARR( 0.221E-17,    85., 2.0);
+{ 49602} GPN501f+HV               =       G1P501u +      GNO2                                   :  0.100E+01*SUN;
+{ 49603} GPN501f+HV               =       G1P5059 +      GNO2                                   :  0.100E+01*SUN;
+{ 49604} GPN501f+HV               =       G3N501Q +      GNO2                                   :  0.100E+01*SUN;
+{ 49605} G1P5059                     =       GND3001 +      GPD2000 +      GHO2                    : ARR( 0.200E+15,  3929., 0.0);
+{ 49606} GPN501g                     =       G3N502O +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 49607} GPN501g +GHO                =       G2P5043                                               : ARR( 0.335E-13,     0., 0.0);
+{ 49608} GPN501g +GHO                =       GPN501o +      GNO2                                   : ARR( 0.191E-13,     0., 0.0);
+{ 49609} GPN501g +GHO                =       GPN5024 +      GNO2                                   : ARR( 0.144E-13,     0., 0.0);
+{ 49610} GPN501g+HV               =       G1P501w +      GNO2                                   :  0.100E+01*SUN;
+{ 49611} GPN501g+HV               =       G1P502U +      GNO2                                   :  0.100E+01*SUN;
+{ 49612} GPN501g+HV               =       G3N4009 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 49613} G3N502O +GHO2               =  0.800GGN501p + 0.200GAN501d + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 49614} G3N502O +GNO                =       G3N4009 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 49615} G3N502O +GNO2               =       GPN501g                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 49616} G3N502O +GNO3               =       G3N4009 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 49617} G3N502O +MEPERO             =  0.685G3N4009 + 0.315GAN501d + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 49618} G3N502O +PERO1              =  0.800G3N4009 + 0.200GAN501d + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 49619} G3N502O +PERO2              =  0.750G3N4009 + 0.250GAN501d + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 49620} G3N502O +PERO3              =  0.800G3N4009 + 0.200GAN501d + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 49621} G3N502O +PERO5              =  0.650G3N4009 + 0.350GAN501d + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 49622} G3N502O +PERO6              =  0.650G3N4009 + 0.350GAN501d + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 49623} G3N502O +PERO9              =       G3N4009 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 49624} G2P5043 +GNO                =       G1P505A +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 49625} G2P5043 +GNO                =       GPN502N                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 49626} G2P5043 +GHO2               =       GPH504n                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 49627} G2P5043 +GNO3               =       G1P505A +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 49628} G2P5043 +MEPERO             =  0.480G1P505A + 0.260GPN501j + 0.260GPN502k                 : ARR( 0.164E-12,  -795., 0.0);
+{ 49629} G2P5043 +PERO1              =  0.600G1P505A + 0.200GPN501j + 0.200GPN502k                 : ARR( 0.126E-12,  -850., 0.0);
+{ 49630} G2P5043 +PERO2              =  0.560G1P505A + 0.220GPN501j + 0.220GPN502k                 : ARR( 0.471E-13, -1350., 0.0);
+{ 49631} G2P5043 +PERO3              =  0.600G1P505A + 0.200GPN501j + 0.200GPN502k                 : ARR( 0.142E-12, -1200., 0.0);
+{ 49632} G2P5043 +PERO5              =  0.600G1P505A + 0.200GPN501j + 0.200GPN502k                 : ARR( 0.533E-11,   500., 0.0);
+{ 49633} G2P5043 +PERO6              =  0.460G1P505A + 0.270GPN501j + 0.270GPN502k                 : ARR( 0.488E-13, -1250., 0.0);
+{ 49634} G2P5043 +PERO9              =  0.800G1P505A + 0.200GPN502k                                : ARR( 0.100E-10,     0., 0.0);
+{ 49635} G1P505A +OXYGEN             =       GPN502k +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 49636} G1P505A                     =       GPN400a +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7175., 0.0);
+{ 49637} GPN501h                     =       G3N501y +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 49638} GPN501h +GHO                =       GPN502j +      GHO2                                   : ARR( 0.840E-12,     0., 0.0);
+{ 49639} GPN501h +GHO                =       G1P5056                                               : ARR( 0.219E-17,    85., 2.0);
+{ 49640} GPN501h+HV               =       G1P501y +      GNO2                                   :  0.100E+01*SUN;
+{ 49641} GPN501h+HV               =       G1P505B +      GNO2                                   :  0.100E+01*SUN;
+{ 49642} GPN501h+HV               =       G1P501n +      GNO2                                   :  0.100E+01*SUN;
+{ 49643} GPN501h+HV               =       G3N501y +      GNO2                                   :  0.100E+01*SUN;
+{ 49644} G1P505B                     =       GDO2000 +      GPN3006 +      GNO2                    : ARR( 0.200E+15,  5492., 0.0);
+{ 49645} GPH5028                     =       G3H502l +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 49646} GPH5028 +GHO                =       GPH504o +      GHO2                                   : ARR( 0.820E-12,     0., 0.0);
+{ 49647} GPH5028 +GHO                =       GPN501j +      GHO                                    : ARR( 0.513E-11,     0., 0.0);
+{ 49648} GPH5028 +GHO                =       G2P501X                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 49649} GPH5028+HV               =       G1P505C +      GNO2                                   :  0.100E+01*SUN;
+{ 49650} GPH5028+HV               =       G1P505D +      GNO2                                   :  0.100E+01*SUN;
+{ 49651} GPH5028+HV               =       G1P501n +      GHO                                    :  0.100E+01*SUN;
+{ 49652} GPH5028+HV               =       G3H502l +      GNO2                                   :  0.100E+01*SUN;
+{ 49653} G1P505C                     =       GCH2O   +      GPH400m +      GHO2                    : ARR( 0.200E+15,  5296., 0.0);
+{ 49654} G1P505C                     =       GDO2000 +      GPH3007 +      GNO2                    : ARR( 0.200E+15,  6367., 0.0);
+{ 49655} G1P505D                     =       GDO2000 +      GPH3007 +      GNO2                    : ARR( 0.200E+15,  5492., 0.0);
+{ 49656} G1P505D                     =       GND3004 +      GPD2000 +      GHO                     : ARR( 0.200E+15,  5138., 0.0);
+{ 49657} GPN501i                     =       G3N501S +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 49658} GPN501i +GHO                =       GPN501k +      GHO2                                   : ARR( 0.820E-12,     0., 0.0);
+{ 49659} GPN501i +GHO                =       GPN501j +      GHO2                                   : ARR( 0.128E-11,     0., 0.0);
+{ 49660} GPN501i +GHO                =       G1P505E                                               : ARR( 0.214E-17,    85., 2.0);
+{ 49661} GPN501i +GHO                =       G1P501n                                               : ARR( 0.214E-17,    85., 2.0);
+{ 49662} GPN501i+HV               =       G1P505F +      GNO2                                   :  0.100E+01*SUN;
+{ 49663} GPN501i+HV               =       G1P505G +      GNO2                                   :  0.100E+01*SUN;
+{ 49664} GPN501i+HV               =       G3N501S +      GNO2                                   :  0.100E+01*SUN;
+{ 49665} G1P505E                     =       GPN501j +      GHO2                                   : ARR( 0.800E+11,  2965., 0.0);
+{ 49666} G1P505F                     =       GCH2O   +      GPN400Q +      GHO2                    : ARR( 0.200E+15,  5296., 0.0);
+{ 49667} G1P505F                     =       GDO2000 +      GPD3001 +      GNO2                    : ARR( 0.200E+15,  6367., 0.0);
+{ 49668} G1P505G                     =       GND3004 +      GPD2000 +      GHO2                    : ARR( 0.200E+15,  3929., 0.0);
+{ 49669} GPN501j                     =       G3N502P +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 49670} GPN501j +GHO                =       GPN502k +      GHO2                                   : ARR( 0.836E-12,     0., 0.0);
+{ 49671} GPN501j +GHO                =       G1P505A                                               : ARR( 0.218E-17,    85., 2.0);
+{ 49672} GPN501j+HV               =       G1P5021 +      GNO2                                   :  0.100E+01*SUN;
+{ 49673} GPN501j+HV               =       G1P503i +      GNO2                                   :  0.100E+01*SUN;
+{ 49674} GPN501j+HV               =       G3N400B +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 49675} G3N502P +GHO2               =  0.800GGN502S + 0.200GAN501n + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 49676} G3N502P +GNO                =       G3N400B +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 49677} G3N502P +GNO2               =       GPN501j                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 49678} G3N502P +GNO3               =       G3N400B +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 49679} G3N502P +MEPERO             =  0.685G3N400B + 0.315GAN501n + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 49680} G3N502P +PERO1              =  0.800G3N400B + 0.200GAN501n + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 49681} G3N502P +PERO2              =  0.750G3N400B + 0.250GAN501n + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 49682} G3N502P +PERO3              =  0.800G3N400B + 0.200GAN501n + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 49683} G3N502P +PERO5              =  0.650G3N400B + 0.350GAN501n + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 49684} G3N502P +PERO6              =  0.650G3N400B + 0.350GAN501n + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 49685} G3N502P +PERO9              =       G3N400B +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 49686} GPN501k                     =       G3N5029 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 49687} GPN501k +GHO                =       GPN502k +      GHO2                                   : ARR( 0.130E-11,     0., 0.0);
+{ 49688} GPN501k +GHO                =       G3P500S                                               : ARR( 0.429E-11,     0., 0.0);
+{ 49689} GPN501k +GNO3               =       G3P500S +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 49690} GPN501k+HV               =       G3N5029 +      GNO2                                   :  0.100E+01*SUN;
+{ 49691} GPN501k+HV               =       G1P505H +      GNO2                                   :  0.100E+01*SUN;
+{ 49692} GPN501k+HV               =       G1P505I +      GNO2                                   :  0.100E+01*SUN;
+{ 49693} GPN501k+HV               =       GPN400Q +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 49694} GPN501k+HV               =       GPN3005 +      GND2000                                :  0.100E+01*SUN;
+{ 49695} G3P500S +GHO2               =  0.800GPG500U + 0.200GPA500g + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 49696} G3P500S +GNO                =       GPN400Q + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 49697} G3P500S +GNO2               =       GPP500L                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 49698} G3P500S +GNO3               =       GPN400Q + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 49699} G3P500S +MEPERO             =  0.685GPN400Q + 0.315GPA500g + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 49700} G3P500S +PERO1              =  0.800GPN400Q + 0.200GPA500g + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 49701} G3P500S +PERO2              =  0.750GPN400Q + 0.250GPA500g + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 49702} G3P500S +PERO3              =  0.800GPN400Q + 0.200GPA500g + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 49703} G3P500S +PERO5              =  0.650GPN400Q + 0.350GPA500g + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 49704} G3P500S +PERO6              =  0.650GPN400Q + 0.350GPA500g + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 49705} G3P500S +PERO9              =       GPN400Q +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 49706} G1P505H                     =       GPD2000 +      GND3005 +      GHO2                    : ARR( 0.200E+15,  3099., 0.0);
+{ 49707} G1P505I                     =       GPN400Q +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 49708} GPN501l                     =       G3N501j +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 49709} GPN501l +GHO                =       G3P4001 +      GCO                                    : ARR( 0.129E-10,     0., 0.0);
+{ 49710} GPN501l +GNO3               =       G3P4001 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 49711} GPN501l+HV               =       G3N501j +      GNO2                                   :  0.100E+01*SUN;
+{ 49712} GPN501l+HV               =       G1P504M +      GNO2                                   :  0.100E+01*SUN;
+{ 49713} GPN501l+HV               =       G3P4001 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 49714} GPN501l+HV               =       GPN400H +      GCO                                    :  0.100E+01*SUN;
+{ 49715} GPN501l+HV               =       GPN3000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 49716} GPN501m                     =       G3N501O +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 49717} GPN501m +GHO                =       G2P5044                                               : ARR( 0.102E-12,     0., 0.0);
+{ 49718} GPN501m +GHO                =       GPN5028 +      GNO2                                   : ARR( 0.144E-13,     0., 0.0);
+{ 49719} GPN501m +GHO                =       GPN501o +      GNO2                                   : ARR( 0.144E-13,     0., 0.0);
+{ 49720} GPN501m+HV               =       G3K2000 +      GPN3006 +      GNO2                    :  0.100E+01*SUN;
+{ 49721} GPN501m+HV               =       G1P502Y +      GNO2                                   :  0.100E+01*SUN;
+{ 49722} GPN501m+HV               =       G1P501q +      GNO2                                   :  0.100E+01*SUN;
+{ 49723} GPN501m+HV               =       G3N501O +      GNO2                                   :  0.100E+01*SUN;
+{ 49724} G2P5044 +GNO                =       G1P505J +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 49725} G2P5044 +GNO                =       GPN502O                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 49726} G2P5044 +GHO2               =       GPH504p                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 49727} G2P5044 +GNO3               =       G1P505J +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 49728} G2P5044 +MEPERO             =  0.480G1P505J + 0.260GPN501r + 0.260GPN502l                 : ARR( 0.164E-12,  -795., 0.0);
+{ 49729} G2P5044 +PERO1              =  0.600G1P505J + 0.200GPN501r + 0.200GPN502l                 : ARR( 0.126E-12,  -850., 0.0);
+{ 49730} G2P5044 +PERO2              =  0.560G1P505J + 0.220GPN501r + 0.220GPN502l                 : ARR( 0.471E-13, -1350., 0.0);
+{ 49731} G2P5044 +PERO3              =  0.600G1P505J + 0.200GPN501r + 0.200GPN502l                 : ARR( 0.142E-12, -1200., 0.0);
+{ 49732} G2P5044 +PERO5              =  0.600G1P505J + 0.200GPN501r + 0.200GPN502l                 : ARR( 0.533E-11,   500., 0.0);
+{ 49733} G2P5044 +PERO6              =  0.460G1P505J + 0.270GPN501r + 0.270GPN502l                 : ARR( 0.488E-13, -1250., 0.0);
+{ 49734} G2P5044 +PERO9              =  0.800G1P505J + 0.200GPN502l                                : ARR( 0.100E-10,     0., 0.0);
+{ 49735} G1P505J                     =       G3P400B +      GCH2O                                  : ARR( 0.200E+15,  3640., 0.0);
+{ 49736} G3P400B +GHO2               =  0.800GPG400D + 0.200GPA400D + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 49737} G3P400B +GNO                =       GPN3006 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 49738} G3P400B +GNO2               =       GPP4007                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 49739} G3P400B +GNO3               =       GPN3006 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 49740} G3P400B +MEPERO             =  0.685GPN3006 + 0.315GPA400D + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 49741} G3P400B +PERO1              =  0.800GPN3006 + 0.200GPA400D + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 49742} G3P400B +PERO2              =  0.750GPN3006 + 0.250GPA400D + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 49743} G3P400B +PERO3              =  0.800GPN3006 + 0.200GPA400D + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 49744} G3P400B +PERO5              =  0.650GPN3006 + 0.350GPA400D + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 49745} G3P400B +PERO6              =  0.650GPN3006 + 0.350GPA400D + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 49746} G3P400B +PERO9              =       GPN3006 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 49747} GPH5029                     =       G3H501p +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 49748} GPH5029 +GHO                =       GPN501o +      GHO                                    : ARR( 0.513E-11,     0., 0.0);
+{ 49749} GPH5029 +GHO                =       G2P501Z                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 49750} GPH5029+HV               =       G3K2000 +      GPH3007 +      GNO2                    :  0.100E+01*SUN;
+{ 49751} GPH5029+HV               =       G1P505K +      GNO2                                   :  0.100E+01*SUN;
+{ 49752} GPH5029+HV               =       G1P501q +      GHO                                    :  0.100E+01*SUN;
+{ 49753} GPH5029+HV               =       G3H501p +      GNO2                                   :  0.100E+01*SUN;
+{ 49754} G1P505K                     =       G3K2000 +      GPH3007                                : ARR( 0.200E+15,  2093., 0.0);
+{ 49755} GPN501n                     =       G3N501X +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 49756} GPN501n +GHO                =       G2P5045                                               : ARR( 0.107E-12,     0., 0.0);
+{ 49757} GPN501n +GHO                =       GPN501o +      GHO2                                   : ARR( 0.132E-11,     0., 0.0);
+{ 49758} GPN501n +GHO                =       G1P501q                                               : ARR( 0.220E-17,    85., 2.0);
+{ 49759} GPN501n+HV               =       G3K2000 +      GPD3001 +      GNO2                    :  0.100E+01*SUN;
+{ 49760} GPN501n+HV               =       G1P505L +      GNO2                                   :  0.100E+01*SUN;
+{ 49761} GPN501n+HV               =       G3N501X +      GNO2                                   :  0.100E+01*SUN;
+{ 49762} G2P5045 +GNO                =       G1P505M +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 49763} G2P5045 +GNO                =       GPN502I                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 49764} G2P5045 +GHO2               =       GPH502u                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 49765} G2P5045 +GNO3               =       G1P505M +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 49766} G2P5045 +MEPERO             =  0.480G1P505M + 0.260GPN502J + 0.260GPN502K                 : ARR( 0.164E-12,  -795., 0.0);
+{ 49767} G2P5045 +PERO1              =  0.600G1P505M + 0.200GPN502J + 0.200GPN502K                 : ARR( 0.126E-12,  -850., 0.0);
+{ 49768} G2P5045 +PERO2              =  0.560G1P505M + 0.220GPN502J + 0.220GPN502K                 : ARR( 0.471E-13, -1350., 0.0);
+{ 49769} G2P5045 +PERO3              =  0.600G1P505M + 0.200GPN502J + 0.200GPN502K                 : ARR( 0.142E-12, -1200., 0.0);
+{ 49770} G2P5045 +PERO5              =  0.600G1P505M + 0.200GPN502J + 0.200GPN502K                 : ARR( 0.533E-11,   500., 0.0);
+{ 49771} G2P5045 +PERO6              =  0.460G1P505M + 0.270GPN502J + 0.270GPN502K                 : ARR( 0.488E-13, -1250., 0.0);
+{ 49772} G2P5045 +PERO9              =  0.800G1P505M + 0.200GPN502K                                : ARR( 0.100E-10,     0., 0.0);
+{ 49773} G1P505L                     =       G3K2000 +      GPD3001                                : ARR( 0.200E+15,  2093., 0.0);
+{ 49774} G1P505M                     =       G3P4008 +      GCH2O                                  : ARR( 0.200E+15,  3640., 0.0);
+{ 49775} GPN501o                     =       G3N502Q +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 49776} GPN501o +GHO                =       G2P5046                                               : ARR( 0.102E-12,     0., 0.0);
+{ 49777} GPN501o +GHO                =       GPK500Z +      GNO2                                   : ARR( 0.438E-13,     0., 0.0);
+{ 49778} GPN501o+HV               =       G3K2000 +      GPD3002 +      GNO2                    :  0.100E+01*SUN;
+{ 49779} GPN501o+HV               =       G1P502a +      GNO2                                   :  0.100E+01*SUN;
+{ 49780} GPN501o+HV               =       G3N400D +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 49781} G3N502Q +GHO2               =  0.800GGN501m + 0.200GAN501h + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 49782} G3N502Q +GNO                =       G3N400D +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 49783} G3N502Q +GNO2               =       GPN501o                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 49784} G3N502Q +GNO3               =       G3N400D +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 49785} G3N502Q +MEPERO             =  0.685G3N400D + 0.315GAN501h + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 49786} G3N502Q +PERO1              =  0.800G3N400D + 0.200GAN501h + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 49787} G3N502Q +PERO2              =  0.750G3N400D + 0.250GAN501h + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 49788} G3N502Q +PERO3              =  0.800G3N400D + 0.200GAN501h + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 49789} G3N502Q +PERO5              =  0.650G3N400D + 0.350GAN501h + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 49790} G3N502Q +PERO6              =  0.650G3N400D + 0.350GAN501h + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 49791} G3N502Q +PERO9              =       G3N400D +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 49792} G2P5046 +GNO                =       G1P505N +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 49793} G2P5046 +GNO                =       GPN502P                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 49794} G2P5046 +GHO2               =       GPH504q                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 49795} G2P5046 +GNO3               =       G1P505N +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 49796} G2P5046 +MEPERO             =  0.480G1P505N + 0.260GPN501s + 0.260GPN502m                 : ARR( 0.164E-12,  -795., 0.0);
+{ 49797} G2P5046 +PERO1              =  0.600G1P505N + 0.200GPN501s + 0.200GPN502m                 : ARR( 0.126E-12,  -850., 0.0);
+{ 49798} G2P5046 +PERO2              =  0.560G1P505N + 0.220GPN501s + 0.220GPN502m                 : ARR( 0.471E-13, -1350., 0.0);
+{ 49799} G2P5046 +PERO3              =  0.600G1P505N + 0.200GPN501s + 0.200GPN502m                 : ARR( 0.142E-12, -1200., 0.0);
+{ 49800} G2P5046 +PERO5              =  0.600G1P505N + 0.200GPN501s + 0.200GPN502m                 : ARR( 0.533E-11,   500., 0.0);
+{ 49801} G2P5046 +PERO6              =  0.460G1P505N + 0.270GPN501s + 0.270GPN502m                 : ARR( 0.488E-13, -1250., 0.0);
+{ 49802} G2P5046 +PERO9              =  0.800G1P505N + 0.200GPN502m                                : ARR( 0.100E-10,     0., 0.0);
+{ 49803} G1P505N                     =       G3P400C +      GCH2O                                  : ARR( 0.200E+15,  4694., 0.0);
+{ 49804} G3P400C +GHO2               =  0.800GPG400E + 0.200GPA400G + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 49805} G3P400C +GNO                =       GPD3002 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 49806} G3P400C +GNO2               =       GPP4008                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 49807} G3P400C +GNO3               =       GPD3002 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 49808} G3P400C +MEPERO             =  0.685GPD3002 + 0.315GPA400G + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 49809} G3P400C +PERO1              =  0.800GPD3002 + 0.200GPA400G + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 49810} G3P400C +PERO2              =  0.750GPD3002 + 0.250GPA400G + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 49811} G3P400C +PERO3              =  0.800GPD3002 + 0.200GPA400G + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 49812} G3P400C +PERO5              =  0.650GPD3002 + 0.350GPA400G + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 49813} G3P400C +PERO6              =  0.650GPD3002 + 0.350GPA400G + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 49814} G3P400C +PERO9              =       GPD3002 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 49815} GPG4001                     =       G3G4005 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 49816} GPG4001 +GHO                =       G3P4001                                               : ARR( 0.203E-11,  -190., 0.0);
+{ 49817} GPG4001+HV               =       GPD3000 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 49818} GPG4001+HV               =       G1P400v +      GNO2                                   :  0.100E+01*SUN;
+{ 49819} GPG4001+HV               =       G3G4005 +      GNO2                                   :  0.100E+01*SUN;
+{ 49820} GPA4002                     =       G3A4002 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 49821} GPA4002 +GHO                =       GPA4003 +      GNO2                                   : ARR( 0.531E-13,     0., 0.0);
+{ 49822} GPA4002 +GHO                =       G2P4012                                               : ARR( 0.172E-12,     0., 0.0);
+{ 49823} GPA4002 +GHO                =       GPD3000 +      GNO2    +      GCO2                    : ARR( 0.520E-12,     0., 0.0);
+{ 49824} GPA4002+HV               =       G1P400t +      GNO2                                   :  0.100E+01*SUN;
+{ 49825} GPA4002+HV               =       G3A4002 +      GNO2                                   :  0.100E+01*SUN;
+{ 49826} G2P4012 +GNO                =       G1P401A +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 49827} G2P4012 +GNO                =       GPA400D                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 49828} G2P4012 +GHO2               =       GPA400H                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 49829} G2P4012 +GNO3               =       G1P401A +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 49830} G2P4012 +MEPERO             =  0.340G1P401A + 0.330GPA4007 + 0.330GPA400G                 : ARR( 0.565E-13,  -845., 0.0);
+{ 49831} G2P4012 +PERO1              =  0.460G1P401A + 0.270GPA4007 + 0.270GPA400G                 : ARR( 0.434E-13,  -900., 0.0);
+{ 49832} G2P4012 +PERO2              =  0.400G1P401A + 0.300GPA4007 + 0.300GPA400G                 : ARR( 0.162E-13, -1400., 0.0);
+{ 49833} G2P4012 +PERO3              =  0.460G1P401A + 0.270GPA4007 + 0.270GPA400G                 : ARR( 0.488E-13, -1250., 0.0);
+{ 49834} G2P4012 +PERO5              =  0.460G1P401A + 0.270GPA4007 + 0.270GPA400G                 : ARR( 0.183E-11,   450., 0.0);
+{ 49835} G2P4012 +PERO6              =  0.300G1P401A + 0.350GPA4007 + 0.350GPA400G                 : ARR( 0.168E-13, -1300., 0.0);
+{ 49836} G2P4012 +PERO9              =  0.650G1P401A + 0.350GPA400G                                : ARR( 0.100E-10,     0., 0.0);
+{ 49837} G1P401A                     =       GAN3006 +      GCO     +      GNO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 49838} GPP4001                     =       G3P4002 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 49839} GPP4001                     =       G3P4001 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 49840} GPP4001 +GHO                =       G2P4013                                               : ARR( 0.172E-12,     0., 0.0);
+{ 49841} GPP4001 +GHO                =       GPP4002 +      GNO2                                   : ARR( 0.718E-13,     0., 0.0);
+{ 49842} GPP4001+HV               =       G3P4002 +      GNO2                                   :  0.100E+01*SUN;
+{ 49843} GPP4001+HV               =       G1P400x +      GNO2                                   :  0.100E+01*SUN;
+{ 49844} GPP4001+HV               =       G3P4001 +      GNO2                                   :  0.100E+01*SUN;
+{ 49845} G2P4013 +GNO                =       G1P401B +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 49846} G2P4013 +GNO                =       GPP4007                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 49847} G2P4013 +GHO2               =       GPP4009                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 49848} G2P4013 +GNO3               =       G1P401B +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 49849} G2P4013 +MEPERO             =  0.340G1P401B + 0.330GPP4004 + 0.330GPP4008                 : ARR( 0.565E-13,  -845., 0.0);
+{ 49850} G2P4013 +PERO1              =  0.460G1P401B + 0.270GPP4004 + 0.270GPP4008                 : ARR( 0.434E-13,  -900., 0.0);
+{ 49851} G2P4013 +PERO2              =  0.400G1P401B + 0.300GPP4004 + 0.300GPP4008                 : ARR( 0.162E-13, -1400., 0.0);
+{ 49852} G2P4013 +PERO3              =  0.460G1P401B + 0.270GPP4004 + 0.270GPP4008                 : ARR( 0.488E-13, -1250., 0.0);
+{ 49853} G2P4013 +PERO5              =  0.460G1P401B + 0.270GPP4004 + 0.270GPP4008                 : ARR( 0.183E-11,   450., 0.0);
+{ 49854} G2P4013 +PERO6              =  0.300G1P401B + 0.350GPP4004 + 0.350GPP4008                 : ARR( 0.168E-13, -1300., 0.0);
+{ 49855} G2P4013 +PERO9              =  0.650G1P401B + 0.350GPP4008                                : ARR( 0.100E-10,     0., 0.0);
+{ 49856} G1P401B                     =       GPN3006 +      GCO     +      GNO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 49857} GPH502A                     =       G3H502j +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 49858} GPH502A +GHO                =       GPN501p +      GHO                                    : ARR( 0.163E-10,     0., 0.0);
+{ 49859} GPH502A +GHO                =       G2P501a                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 49860} GPH502A+HV               =       G1P501r +      GHO                                    :  0.100E+01*SUN;
+{ 49861} GPH502A+HV               =       G1P505O +      GNO2                                   :  0.100E+01*SUN;
+{ 49862} GPH502A+HV               =       G1P505P +      GNO2                                   :  0.100E+01*SUN;
+{ 49863} GPH502A+HV               =       G3H502j +      GNO2                                   :  0.100E+01*SUN;
+{ 49864} G1P505O                     =       G2H2000 +      GPN3006                                : ARR( 0.200E+15,  6244., 0.0);
+{ 49865} G1P505O                     =       GHD3000 +      GPD2000 +      GNO2                    : ARR( 0.200E+15,  6422., 0.0);
+{ 49866} G1P505P                     =       GPN500b +      GHO                                    : ARR( 0.160E+12,  2186., 0.0);
+{ 49867} G1P505P                     =       GHN400M +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 49868} GPN501p                     =       G3N501i +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 49869} GPN501p +GHO                =       G3P500T                                               : ARR( 0.210E-10,     0., 0.0);
+{ 49870} GPN501p +GNO3               =       G3P500T +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 49871} GPN501p+HV               =       G3N501i +      GNO2                                   :  0.100E+01*SUN;
+{ 49872} GPN501p+HV               =       G1P505Q +      GNO2                                   :  0.100E+01*SUN;
+{ 49873} GPN501p+HV               =       G1P505R +      GNO2                                   :  0.100E+01*SUN;
+{ 49874} GPN501p+HV               =       G2P400d +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 49875} GPN501p+HV               =       GPD3002 +      GD02000 + 2.000GNO2                    :  0.100E+01*SUN;
+{ 49876} G3P500T +GHO2               =  0.800GPG500W + 0.200GPA500a + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 49877} G3P500T +GNO                =       G2P400d +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 49878} G3P500T +GNO2               =       GPP500I                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 49879} G3P500T +GNO3               =       G2P400d +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 49880} G3P500T +MEPERO             =  0.685G2P400d + 0.315GPA500a + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 49881} G3P500T +PERO1              =  0.800G2P400d + 0.200GPA500a + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 49882} G3P500T +PERO2              =  0.750G2P400d + 0.250GPA500a + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 49883} G3P500T +PERO3              =  0.800G2P400d + 0.200GPA500a + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 49884} G3P500T +PERO5              =  0.650G2P400d + 0.350GPA500a + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 49885} G3P500T +PERO6              =  0.650G2P400d + 0.350GPA500a + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 49886} G3P500T +PERO9              =       G2P400d +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 49887} G1P505Q                     =       GCO     +      GND400D +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 49888} G1P505R                     =       GPD2000 +      GDD3000 +      GNO2                    : ARR( 0.200E+15,  6039., 0.0);
+{ 49889} G1P505R                     =       GPN3006 +      G2D2000                                : ARR( 0.200E+15,  6399., 0.0);
+{ 49890} GPH502B                     =       G3H501l +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 49891} GPH502B +GHO                =       GPN501m +      GHO                                    : ARR( 0.684E-11,     0., 0.0);
+{ 49892} GPH502B +GHO                =       G2P501b                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 49893} GPH502B+HV               =       G1P501s +      GHO                                    :  0.100E+01*SUN;
+{ 49894} GPH502B+HV               =       G1P505S +      GNO2                                   :  0.100E+01*SUN;
+{ 49895} GPH502B+HV               =       G1P505T +      GNO2                                   :  0.100E+01*SUN;
+{ 49896} GPH502B+HV               =       G3H501l +      GNO2                                   :  0.100E+01*SUN;
+{ 49897} G1P505S                     =       GD02000 +      GPN3006 +      GHO                     : ARR( 0.200E+15,  4341., 0.0);
+{ 49898} G1P505T                     =       G2P5047                                               : ARR( 0.240E+12,  4177., 0.0);
+{ 49899} G1P505T                     =       GHN400p +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 49900} G2P5047 +GNO                =       G1P505U +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 49901} G2P5047 +GNO                =       GPH503s                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 49902} G2P5047 +GHO2               =       GPH504r                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 49903} G2P5047 +GNO3               =       G1P505U +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 49904} G2P5047 +MEPERO             =  0.480G1P505U + 0.260GPH503A + 0.260GPH503B                 : ARR( 0.164E-12,  -795., 0.0);
+{ 49905} G2P5047 +PERO1              =  0.600G1P505U + 0.200GPH503A + 0.200GPH503B                 : ARR( 0.126E-12,  -850., 0.0);
+{ 49906} G2P5047 +PERO2              =  0.560G1P505U + 0.220GPH503A + 0.220GPH503B                 : ARR( 0.471E-13, -1350., 0.0);
+{ 49907} G2P5047 +PERO3              =  0.600G1P505U + 0.200GPH503A + 0.200GPH503B                 : ARR( 0.142E-12, -1200., 0.0);
+{ 49908} G2P5047 +PERO5              =  0.600G1P505U + 0.200GPH503A + 0.200GPH503B                 : ARR( 0.533E-11,   500., 0.0);
+{ 49909} G2P5047 +PERO6              =  0.460G1P505U + 0.270GPH503A + 0.270GPH503B                 : ARR( 0.488E-13, -1250., 0.0);
+{ 49910} G2P5047 +PERO9              =  0.800G1P505U + 0.200GPH503B                                : ARR( 0.100E-10,     0., 0.0);
+{ 49911} G1P505U                     =       GPH502H +      GHO2                                   : ARR( 0.800E+11,  2965., 0.0);
+{ 49912} G1P505U                     =       GPN400Q +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{ 49913} GPH502C                     =       G3H5035 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 49914} GPH502C +GHO                =       GPN501n +      GHO                                    : ARR( 0.695E-11,     0., 0.0);
+{ 49915} GPH502C +GHO                =       GPH502E +      GHO2                                   : ARR( 0.130E-11,     0., 0.0);
+{ 49916} GPH502C +GHO                =       G2P501c                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 49917} GPH502C+HV               =       G1P501u +      GHO                                    :  0.100E+01*SUN;
+{ 49918} GPH502C+HV               =       G1P505W +      GNO2                                   :  0.100E+01*SUN;
+{ 49919} GPH502C+HV               =       G3H5035 +      GNO2                                   :  0.100E+01*SUN;
+{ 49920} G1P505W                     =       GD02000 +      GPD3001 +      GHO                     : ARR( 0.200E+15,  4341., 0.0);
+{ 49921} G1P505W                     =       GHD3002 +      GPD2000 +      GHO2                    : ARR( 0.200E+15,  3929., 0.0);
+{ 49922} GPH502D                     =       G3H503v +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 49923} GPH502D +GHO                =       GPN501q +      GHO                                    : ARR( 0.164E-10,     0., 0.0);
+{ 49924} GPH502D +GHO                =       G2P501d                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 49925} GPH502D+HV               =       G1P501v +      GHO                                    :  0.100E+01*SUN;
+{ 49926} GPH502D+HV               =       G1P505X +      GNO2                                   :  0.100E+01*SUN;
+{ 49927} GPH502D+HV               =       G3H400I +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 49928} G3H503v +GHO2               =  0.800GGH504U + 0.200GAH502E + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 49929} G3H503v +GNO                =       G3H400I +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 49930} G3H503v +GNO2               =       GPH502D                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 49931} G3H503v +GNO3               =       G3H400I +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 49932} G3H503v +MEPERO             =  0.685G3H400I + 0.315GAH502E + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 49933} G3H503v +PERO1              =  0.800G3H400I + 0.200GAH502E + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 49934} G3H503v +PERO2              =  0.750G3H400I + 0.250GAH502E + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 49935} G3H503v +PERO3              =  0.800G3H400I + 0.200GAH502E + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 49936} G3H503v +PERO5              =  0.650G3H400I + 0.350GAH502E + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 49937} G3H503v +PERO6              =  0.650G3H400I + 0.350GAH502E + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 49938} G3H503v +PERO9              =       G3H400I +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 49939} G1P505X                     =       GHD3000 +      GCO     +      GNO2    +      GCO      : ARR( 0.200E+15,  3012., 0.0);
+{ 49940} GPN501q                     =       G3N502R +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 49941} GPN501q +GHO                =       G3P500U                                               : ARR( 0.212E-10,     0., 0.0);
+{ 49942} GPN501q +GNO3               =       G3P500U +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 49943} GPN501q+HV               =       G3N400I +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 49944} GPN501q+HV               =       G1P5046 +      GNO2                                   :  0.100E+01*SUN;
+{ 49945} GPN501q+HV               =       G2P400e +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 49946} G3N502R +GHO2               =  0.800GGN5023 + 0.200GAN501j + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 49947} G3N502R +GNO                =       G3N400I +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 49948} G3N502R +GNO2               =       GPN501q                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 49949} G3N502R +GNO3               =       G3N400I +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 49950} G3N502R +MEPERO             =  0.685G3N400I + 0.315GAN501j + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 49951} G3N502R +PERO1              =  0.800G3N400I + 0.200GAN501j + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 49952} G3N502R +PERO2              =  0.750G3N400I + 0.250GAN501j + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 49953} G3N502R +PERO3              =  0.800G3N400I + 0.200GAN501j + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 49954} G3N502R +PERO5              =  0.650G3N400I + 0.350GAN501j + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 49955} G3N502R +PERO6              =  0.650G3N400I + 0.350GAN501j + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 49956} G3N502R +PERO9              =       G3N400I +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 49957} G3P500U +GHO2               =  0.800GPG500X + 0.200GPA500c + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 49958} G3P500U +GNO                =       G2P400e +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 49959} G3P500U +GNO2               =       GPP500K                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 49960} G3P500U +GNO3               =       G2P400e +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 49961} G3P500U +MEPERO             =  0.685G2P400e + 0.315GPA500c + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 49962} G3P500U +PERO1              =  0.800G2P400e + 0.200GPA500c + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 49963} G3P500U +PERO2              =  0.750G2P400e + 0.250GPA500c + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 49964} G3P500U +PERO3              =  0.800G2P400e + 0.200GPA500c + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 49965} G3P500U +PERO5              =  0.650G2P400e + 0.350GPA500c + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 49966} G3P500U +PERO6              =  0.650G2P400e + 0.350GPA500c + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 49967} G3P500U +PERO9              =       G2P400e +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 49968} GPH502E                     =       G3H503w +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 49969} GPH502E +GHO                =       GPN501o +      GHO                                    : ARR( 0.686E-11,     0., 0.0);
+{ 49970} GPH502E +GHO                =       G2P501e                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 49971} GPH502E+HV               =       G1P501w +      GHO                                    :  0.100E+01*SUN;
+{ 49972} GPH502E+HV               =       G1P505Y +      GNO2                                   :  0.100E+01*SUN;
+{ 49973} GPH502E+HV               =       G3H400J +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 49974} G3H503w +GHO2               =  0.800GGH502Q + 0.200GAH502F + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 49975} G3H503w +GNO                =       G3H400J +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 49976} G3H503w +GNO2               =       GPH502E                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 49977} G3H503w +GNO3               =       G3H400J +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 49978} G3H503w +MEPERO             =  0.685G3H400J + 0.315GAH502F + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 49979} G3H503w +PERO1              =  0.800G3H400J + 0.200GAH502F + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 49980} G3H503w +PERO2              =  0.750G3H400J + 0.250GAH502F + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 49981} G3H503w +PERO3              =  0.800G3H400J + 0.200GAH502F + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 49982} G3H503w +PERO5              =  0.650G3H400J + 0.350GAH502F + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 49983} G3H503w +PERO6              =  0.650G3H400J + 0.350GAH502F + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 49984} G3H503w +PERO9              =       G3H400J +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 49985} G1P505Y                     =       GHD3002 +      GCO     +      GNO2    +      GCO      : ARR( 0.200E+15,  3266., 0.0);
+{ 49986} GPH502F                     =       G3H502o +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 49987} GPH502F +GHO                =       GPH504s +      GHO2                                   : ARR( 0.407E-11,     0., 0.0);
+{ 49988} GPH502F +GHO                =       GPN501r +      GHO                                    : ARR( 0.834E-11,     0., 0.0);
+{ 49989} GPH502F +GHO                =       G2P501f                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 49990} GPH502F+HV               =       G1P501y +      GHO                                    :  0.100E+01*SUN;
+{ 49991} GPH502F+HV               =       G1P505Z +      GNO2                                   :  0.100E+01*SUN;
+{ 49992} GPH502F+HV               =       G1P502z +      GNO2                                   :  0.100E+01*SUN;
+{ 49993} GPH502F+HV               =       G3H502o +      GNO2                                   :  0.100E+01*SUN;
+{ 49994} G1P505Z                     =       GDO2000 +      GPN3006 +      GHO                     : ARR( 0.200E+15,  3953., 0.0);
+{ 49995} GPN501r                     =       G3N502B +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 49996} GPN501r +GHO                =       GPN502l +      GHO2                                   : ARR( 0.248E-11,     0., 0.0);
+{ 49997} GPN501r +GHO                =       G1P505J                                               : ARR( 0.212E-17,    85., 2.0);
+{ 49998} GPN501r+HV               =       G3K2001 +      GPN3006 +      GNO2                    :  0.100E+01*SUN;
+{ 49999} GPN501r+HV               =       G1P5048 +      GNO2                                   :  0.100E+01*SUN;
+{ 50000} GPN501r+HV               =       G1P504p +      GNO2                                   :  0.100E+01*SUN;
+{ 50001} GPN501r+HV               =       G3N502B +      GNO2                                   :  0.100E+01*SUN;
+{ 50002} GPN400Z                     =       G3N400X +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 50003} GPN400Z +GHO                =       G3P400B                                               : ARR( 0.418E-11,     0., 0.0);
+{ 50004} GPN400Z +GNO3               =       G3P400B +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 50005} GPN400Z+HV               =       G3N400X +      GNO2                                   :  0.100E+01*SUN;
+{ 50006} GPN400Z+HV               =       G1P401C +      GNO2                                   :  0.100E+01*SUN;
+{ 50007} GPN400Z+HV               =       G1P401D +      GNO2                                   :  0.100E+01*SUN;
+{ 50008} GPN400Z+HV               =       GPN3006 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 50009} G1P401C                     =       GCO     +      GND3005 +      GNO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 50010} G1P401D                     =       GPN3006 +      GCO     +      GHO2                    : ARR( 0.200E+15,  4861., 0.0);
+{ 50011} GPH502G                     =       G3H502K +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 50012} GPH502G +GHO                =       GPN501q +      GHO                                    : ARR( 0.512E-11,     0., 0.0);
+{ 50013} GPH502G +GHO                =       G3P500W                                               : ARR( 0.212E-10,     0., 0.0);
+{ 50014} GPH502G +GHO                =       G2P5048                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 50015} GPH502G +GNO3               =       G3P500W +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 50016} GPH502G+HV               =       G3H502K +      GNO2                                   :  0.100E+01*SUN;
+{ 50017} GPH502G+HV               =       G1P505Q +      GHO                                    :  0.100E+01*SUN;
+{ 50018} GPH502G+HV               =       G1P5049 +      GNO2                                   :  0.100E+01*SUN;
+{ 50019} GPH502G+HV               =       G2P4014 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 50020} GPH502G+HV               =       GPD3002 +      GD02000 +      GNO2    +      GHO      :  0.100E+01*SUN;
+{ 50021} G3P500W +GHO2               =  0.800GPG500Y + 0.200GPA500b + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 50022} G3P500W +GNO                =       G2P4014 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 50023} G3P500W +GNO2               =       GPP500J                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 50024} G3P500W +GNO3               =       G2P4014 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 50025} G3P500W +MEPERO             =  0.685G2P4014 + 0.315GPA500b + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50026} G3P500W +PERO1              =  0.800G2P4014 + 0.200GPA500b + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50027} G3P500W +PERO2              =  0.750G2P4014 + 0.250GPA500b + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50028} G3P500W +PERO3              =  0.800G2P4014 + 0.200GPA500b + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50029} G3P500W +PERO5              =  0.650G2P4014 + 0.350GPA500b + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50030} G3P500W +PERO6              =  0.650G2P4014 + 0.350GPA500b + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50031} G3P500W +PERO9              =       G2P4014 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 50032} G2P5048 +GNO                =       G1P505Q +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 50033} G2P5048 +GNO                =       GPN501p                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 50034} G2P5048 +GHO2               =       GPH502G                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 50035} G2P5048 +GNO3               =       G1P505Q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 50036} G2P5048 +MEPERO             =  0.340G1P505Q + 0.330GPN500b + 0.330GPN501q                 : ARR( 0.565E-13,  -845., 0.0);
+{ 50037} G2P5048 +PERO1              =  0.460G1P505Q + 0.270GPN500b + 0.270GPN501q                 : ARR( 0.434E-13,  -900., 0.0);
+{ 50038} G2P5048 +PERO2              =  0.400G1P505Q + 0.300GPN500b + 0.300GPN501q                 : ARR( 0.162E-13, -1400., 0.0);
+{ 50039} G2P5048 +PERO3              =  0.460G1P505Q + 0.270GPN500b + 0.270GPN501q                 : ARR( 0.488E-13, -1250., 0.0);
+{ 50040} G2P5048 +PERO5              =  0.460G1P505Q + 0.270GPN500b + 0.270GPN501q                 : ARR( 0.183E-11,   450., 0.0);
+{ 50041} G2P5048 +PERO6              =  0.300G1P505Q + 0.350GPN500b + 0.350GPN501q                 : ARR( 0.168E-13, -1300., 0.0);
+{ 50042} G2P5048 +PERO9              =  0.650G1P505Q + 0.350GPN501q                                : ARR( 0.100E-10,     0., 0.0);
+{ 50043} G2P4014 +GNO                =       G1P4012 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 50044} G2P4014 +GNO                =       GPH400O                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 50045} G2P4014 +GHO2               =       GPH400q                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 50046} G2P4014 +GNO3               =       G1P4012 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 50047} G2P4014 +MEPERO             =  0.480G1P4012 + 0.260GPH400D + 0.260GPH400m                 : ARR( 0.164E-12,  -795., 0.0);
+{ 50048} G2P4014 +PERO1              =  0.600G1P4012 + 0.200GPH400D + 0.200GPH400m                 : ARR( 0.126E-12,  -850., 0.0);
+{ 50049} G2P4014 +PERO2              =  0.560G1P4012 + 0.220GPH400D + 0.220GPH400m                 : ARR( 0.471E-13, -1350., 0.0);
+{ 50050} G2P4014 +PERO3              =  0.600G1P4012 + 0.200GPH400D + 0.200GPH400m                 : ARR( 0.142E-12, -1200., 0.0);
+{ 50051} G2P4014 +PERO5              =  0.600G1P4012 + 0.200GPH400D + 0.200GPH400m                 : ARR( 0.533E-11,   500., 0.0);
+{ 50052} G2P4014 +PERO6              =  0.460G1P4012 + 0.270GPH400D + 0.270GPH400m                 : ARR( 0.488E-13, -1250., 0.0);
+{ 50053} G2P4014 +PERO9              =  0.800G1P4012 + 0.200GPH400m                                : ARR( 0.100E-10,     0., 0.0);
+{ 50054} GPH502H                     =       G3H503x +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 50055} GPH502H +GHO                =       GPH504t +      GHO2                                   : ARR( 0.407E-11,     0., 0.0);
+{ 50056} GPH502H +GHO                =       GPN501s +      GHO                                    : ARR( 0.835E-11,     0., 0.0);
+{ 50057} GPH502H +GHO                =       G2P501g                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 50058} GPH502H+HV               =       G1P5021 +      GHO                                    :  0.100E+01*SUN;
+{ 50059} GPH502H+HV               =       G1P505a +      GNO2                                   :  0.100E+01*SUN;
+{ 50060} GPH502H+HV               =       G3H400K +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 50061} G3H503x +GHO2               =  0.800GGH503S + 0.200GAH502I + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 50062} G3H503x +GNO                =       G3H400K +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 50063} G3H503x +GNO2               =       GPH502H                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 50064} G3H503x +GNO3               =       G3H400K +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 50065} G3H503x +MEPERO             =  0.685G3H400K + 0.315GAH502I + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50066} G3H503x +PERO1              =  0.800G3H400K + 0.200GAH502I + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50067} G3H503x +PERO2              =  0.750G3H400K + 0.250GAH502I + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50068} G3H503x +PERO3              =  0.800G3H400K + 0.200GAH502I + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50069} G3H503x +PERO5              =  0.650G3H400K + 0.350GAH502I + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50070} G3H503x +PERO6              =  0.650G3H400K + 0.350GAH502I + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50071} G3H503x +PERO9              =       G3H400K +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 50072} G1P505a                     =       GHD3003 +      GCO     +      GNO2    +      GCO      : ARR( 0.200E+15,  3266., 0.0);
+{ 50073} GPN501s                     =       G3N502S +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 50074} GPN501s +GHO                =       GPN502m +      GHO2                                   : ARR( 0.249E-11,     0., 0.0);
+{ 50075} GPN501s +GHO                =       G1P505N                                               : ARR( 0.214E-17,    85., 2.0);
+{ 50076} GPN501s+HV               =       G3K2001 +      GPD3002 +      GNO2                    :  0.100E+01*SUN;
+{ 50077} GPN501s+HV               =       G1P504A +      GNO2                                   :  0.100E+01*SUN;
+{ 50078} GPN501s+HV               =       G3N400Q +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 50079} G3N502S +GHO2               =  0.800GGN502H + 0.200GAN501p + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 50080} G3N502S +GNO                =       G3N400Q +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 50081} G3N502S +GNO2               =       GPN501s                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 50082} G3N502S +GNO3               =       G3N400Q +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 50083} G3N502S +MEPERO             =  0.685G3N400Q + 0.315GAN501p + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50084} G3N502S +PERO1              =  0.800G3N400Q + 0.200GAN501p + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50085} G3N502S +PERO2              =  0.750G3N400Q + 0.250GAN501p + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50086} G3N502S +PERO3              =  0.800G3N400Q + 0.200GAN501p + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50087} G3N502S +PERO5              =  0.650G3N400Q + 0.350GAN501p + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50088} G3N502S +PERO6              =  0.650G3N400Q + 0.350GAN501p + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50089} G3N502S +PERO9              =       G3N400Q +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 50090} GPN400a                     =       G3N400b +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 50091} GPN400a +GHO                =       G3P400C                                               : ARR( 0.420E-11,     0., 0.0);
+{ 50092} GPN400a +GNO3               =       G3P400C +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 50093} GPN400a+HV               =       G3N3005 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 50094} GPN400a+HV               =       G1P401E +      GNO2                                   :  0.100E+01*SUN;
+{ 50095} GPN400a+HV               =       GPD3002 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 50096} G3N400b +GHO2               =  0.800GGN400b + 0.200GAN400Z + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 50097} G3N400b +GNO                =       G3N3005 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 50098} G3N400b +GNO2               =       GPN400a                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 50099} G3N400b +GNO3               =       G3N3005 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 50100} G3N400b +MEPERO             =  0.685G3N3005 + 0.315GAN400Z + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50101} G3N400b +PERO1              =  0.800G3N3005 + 0.200GAN400Z + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50102} G3N400b +PERO2              =  0.750G3N3005 + 0.250GAN400Z + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50103} G3N400b +PERO3              =  0.800G3N3005 + 0.200GAN400Z + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50104} G3N400b +PERO5              =  0.650G3N3005 + 0.350GAN400Z + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50105} G3N400b +PERO6              =  0.650G3N3005 + 0.350GAN400Z + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50106} G3N400b +PERO9              =       G3N3005 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 50107} G1P401E                     =       GCO     +      GDD2000 +      GNO2    +      GCO      : ARR( 0.200E+15,  5210., 0.0);
+{ 50108} GPG5004                     =       G3G5009 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 50109} GPG5004 +GHO                =       GPG500X +      GHO2                                   : ARR( 0.137E-11,     0., 0.0);
+{ 50110} GPG5004 +GHO                =       G3P5004                                               : ARR( 0.207E-11,  -190., 0.0);
+{ 50111} GPG5004+HV               =       G2P400a +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 50112} GPG5004+HV               =       G1P504C +      GNO2                                   :  0.100E+01*SUN;
+{ 50113} GPG5004+HV               =       G3G5009 +      GNO2                                   :  0.100E+01*SUN;
+{ 50114} GPA5006                     =       G3A5009 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 50115} GPA5006 +GHO                =       G2P5049                                               : ARR( 0.128E-12,     0., 0.0);
+{ 50116} GPA5006 +GHO                =       GPA500A +      GNO2                                   : ARR( 0.118E-12,     0., 0.0);
+{ 50117} GPA5006 +GHO                =       GPA500c +      GHO2                                   : ARR( 0.126E-11,     0., 0.0);
+{ 50118} GPA5006 +GHO                =       G1P504w                                               : ARR( 0.210E-17,    85., 2.0);
+{ 50119} GPA5006 +GHO                =       G2P400a +      GCO2                                   : ARR( 0.520E-12,     0., 0.0);
+{ 50120} GPA5006+HV               =       G1P504E +      GNO2                                   :  0.100E+01*SUN;
+{ 50121} GPA5006+HV               =       G3A5009 +      GNO2                                   :  0.100E+01*SUN;
+{ 50122} G2P5049 +GNO                =       G1P505b +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 50123} G2P5049 +GNO                =       GPA500g                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 50124} G2P5049 +GHO2               =       GPA500h                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 50125} G2P5049 +GNO3               =       G1P505b +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 50126} G2P5049 +MEPERO             =  0.340G1P505b + 0.330GPA500D + 0.330GPA500i                 : ARR( 0.565E-13,  -845., 0.0);
+{ 50127} G2P5049 +PERO1              =  0.460G1P505b + 0.270GPA500D + 0.270GPA500i                 : ARR( 0.434E-13,  -900., 0.0);
+{ 50128} G2P5049 +PERO2              =  0.400G1P505b + 0.300GPA500D + 0.300GPA500i                 : ARR( 0.162E-13, -1400., 0.0);
+{ 50129} G2P5049 +PERO3              =  0.460G1P505b + 0.270GPA500D + 0.270GPA500i                 : ARR( 0.488E-13, -1250., 0.0);
+{ 50130} G2P5049 +PERO5              =  0.460G1P505b + 0.270GPA500D + 0.270GPA500i                 : ARR( 0.183E-11,   450., 0.0);
+{ 50131} G2P5049 +PERO6              =  0.300G1P505b + 0.350GPA500D + 0.350GPA500i                 : ARR( 0.168E-13, -1300., 0.0);
+{ 50132} G2P5049 +PERO9              =  0.650G1P505b + 0.350GPA500i                                : ARR( 0.100E-10,     0., 0.0);
+{ 50133} G1P505b                     =       GCO     +      GPN400Q +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 50134} GPP5003                     =       G3P5009 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 50135} GPP5003                     =       G3P5004 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 50136} GPP5003 +GHO                =       GPP500K +      GHO2                                   : ARR( 0.126E-11,     0., 0.0);
+{ 50137} GPP5003 +GHO                =       GPP5006 +      GNO2                                   : ARR( 0.118E-12,     0., 0.0);
+{ 50138} GPP5003 +GHO                =       G2P504A                                               : ARR( 0.172E-12,     0., 0.0);
+{ 50139} GPP5003 +GHO                =       G1P5052                                               : ARR( 0.210E-17,    85., 2.0);
+{ 50140} GPP5003+HV               =       G3P5009 +      GNO2                                   :  0.100E+01*SUN;
+{ 50141} GPP5003+HV               =       G1P504G +      GNO2                                   :  0.100E+01*SUN;
+{ 50142} GPP5003+HV               =       G3P5004 +      GNO2                                   :  0.100E+01*SUN;
+{ 50143} G2P504A +GNO                =       G1P505c +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 50144} G2P504A +GNO                =       GPP500L                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 50145} G2P504A +GHO2               =       GPP500M                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 50146} G2P504A +GNO3               =       G1P505c +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 50147} G2P504A +MEPERO             =  0.340G1P505c + 0.330GPP5008 + 0.330GPP500N                 : ARR( 0.565E-13,  -845., 0.0);
+{ 50148} G2P504A +PERO1              =  0.460G1P505c + 0.270GPP5008 + 0.270GPP500N                 : ARR( 0.434E-13,  -900., 0.0);
+{ 50149} G2P504A +PERO2              =  0.400G1P505c + 0.300GPP5008 + 0.300GPP500N                 : ARR( 0.162E-13, -1400., 0.0);
+{ 50150} G2P504A +PERO3              =  0.460G1P505c + 0.270GPP5008 + 0.270GPP500N                 : ARR( 0.488E-13, -1250., 0.0);
+{ 50151} G2P504A +PERO5              =  0.460G1P505c + 0.270GPP5008 + 0.270GPP500N                 : ARR( 0.183E-11,   450., 0.0);
+{ 50152} G2P504A +PERO6              =  0.300G1P505c + 0.350GPP5008 + 0.350GPP500N                 : ARR( 0.168E-13, -1300., 0.0);
+{ 50153} G2P504A +PERO9              =  0.650G1P505c + 0.350GPP500N                                : ARR( 0.100E-10,     0., 0.0);
+{ 50154} G1P505c                     =       GPN400Q +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 50155} GPH400h                     =       G3H400f +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 50156} GPH400h +GHO                =       GPN400Q +      GHO                                    : ARR( 0.332E-11,     0., 0.0);
+{ 50157} GPH400h +GHO                =       GPH400k +      GHO2                                   : ARR( 0.130E-11,     0., 0.0);
+{ 50158} GPH400h +GHO                =       G2P400a                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 50159} GPH400h+HV               =       G1P400e +      GHO                                    :  0.100E+01*SUN;
+{ 50160} GPH400h+HV               =       G1P400y +      GNO2                                   :  0.100E+01*SUN;
+{ 50161} GPH400h+HV               =       G3H400f +      GNO2                                   :  0.100E+01*SUN;
+{ 50162} GGN501a +GHO                =       GGN501h +      GHO2                                   : ARR( 0.447E-12,     0., 0.0);
+{ 50163} GGN501a +GHO                =       G3N501M                                               : ARR( 0.206E-11,  -190., 0.0);
+{ 50164} GGN501a+HV               =       G1G501Y +      GNO2                                   :  0.100E+01*SUN;
+{ 50165} GGN501a+HV               =       G1G501W +      GNO2                                   :  0.100E+01*SUN;
+{ 50166} GGN501a+HV               =       GND400H +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 50167} GGH501z +GHO                =       GGH5028 +      GHO2                                   : ARR( 0.208E-11,     0., 0.0);
+{ 50168} GGH501z +GHO                =       GGN501c +      GHO                                    : ARR( 0.253E-10,     0., 0.0);
+{ 50169} GGH501z +GHO                =       G2G501F                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 50170} GGH501z +GHO                =       G3H502x                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 50171} GGH501z+HV               =       G1G5045 +      GNO2                                   :  0.100E+01*SUN;
+{ 50172} GGH501z+HV               =       G1G501W +      GHO                                    :  0.100E+01*SUN;
+{ 50173} GGH501z+HV               =       GND400H +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 50174} G1G5045                     =       GD02000 +      GGH3007 +      GHO2                    : ARR( 0.200E+15,  3365., 0.0);
+{ 50175} GGN501b +GHO                =       GGN501i +      GHO2                                   : ARR( 0.213E-11,     0., 0.0);
+{ 50176} GGN501b +GHO                =       GGN501c +      GHO2                                   : ARR( 0.650E-11,     0., 0.0);
+{ 50177} GGN501b +GHO                =       G3N502D                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 50178} GGN501b+HV               =       G1G501Z +      GNO2                                   :  0.100E+01*SUN;
+{ 50179} GGN501b+HV               =       GND400H +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 50180} GGN501c +GHO                =       GGK500T +      GNO2                                   : ARR( 0.314E-12,     0., 0.0);
+{ 50181} GGN501c +GHO                =       GGN501j +      GHO2                                   : ARR( 0.130E-11,     0., 0.0);
+{ 50182} GGN501c +GHO                =       G3N502T                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 50183} GGN501c+HV               =       G1G501a +      GNO2                                   :  0.100E+01*SUN;
+{ 50184} GGN501c+HV               =       GAN400G +      GCO2                                   :  0.100E+01*SUN;
+{ 50185} G3N502T +GHO2               =  0.800GGN501c + 0.200GAN501s + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 50186} G3N502T +GNO                =       G3N400A +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 50187} G3N502T +GNO2               =       GPN501v                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 50188} G3N502T +GNO3               =       G3N400A +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 50189} G3N502T +MEPERO             =  0.685G3N400A + 0.315GAN501s + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50190} G3N502T +PERO1              =  0.800G3N400A + 0.200GAN501s + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50191} G3N502T +PERO2              =  0.750G3N400A + 0.250GAN501s + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50192} G3N502T +PERO3              =  0.800G3N400A + 0.200GAN501s + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50193} G3N502T +PERO5              =  0.650G3N400A + 0.350GAN501s + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50194} G3N502T +PERO6              =  0.650G3N400A + 0.350GAN501s + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50195} G3N502T +PERO9              =       G3N400A +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 50196} GGN501d +GHO                =       GGN501k +      GHO2                                   : ARR( 0.138E-11,     0., 0.0);
+{ 50197} GGN501d +GHO                =       G3N501W                                               : ARR( 0.208E-11,  -190., 0.0);
+{ 50198} GGN501d+HV               =       G3K2000 +      GGN3005 +      GHO2                    :  0.100E+01*SUN;
+{ 50199} GGN501d+HV               =       G1G501X +      GNO2                                   :  0.100E+01*SUN;
+{ 50200} GGN501d+HV               =       GDK4003 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 50201} GGH5021 +GHO                =       GGH5029 +      GHO2                                   : ARR( 0.683E-11,     0., 0.0);
+{ 50202} GGH5021 +GHO                =       GGK500T +      GHO                                    : ARR( 0.866E-10,     0., 0.0);
+{ 50203} GGH5021+HV               =       G3K2000 +      GGH3007 +      GHO2                    :  0.100E+01*SUN;
+{ 50204} GGH5021+HV               =       G1G501X +      GHO                                    :  0.100E+01*SUN;
+{ 50205} GGH5021+HV               =       GDK4003 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 50206} GGK500S +GHO                =       GGK500Y +      GHO2                                   : ARR( 0.636E-11,     0., 0.0);
+{ 50207} GGK500S +GHO                =       GGK500T +      GHO2                                   : ARR( 0.202E-10,     0., 0.0);
+{ 50208} GGK500S +GHO                =       G3K500f                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 50209} GGK500S+HV               =       G3K2000 +      GGD3001 +      GHO2                    :  0.100E+01*SUN;
+{ 50210} GGK500S+HV               =       GDK4003 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 50211} GGK500T +GHO                =       GGK500Z +      GHO2                                   : ARR( 0.396E-11,     0., 0.0);
+{ 50212} GGK500T +GHO                =       G3K500l                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 50213} GGK500T+HV               =       G3K2000 +      GGD3002 +      GHO2                    :  0.100E+01*SUN;
+{ 50214} GGK500T+HV               =       GAK4005 +      GCO2                                   :  0.100E+01*SUN;
+{ 50215} G3K500l +GHO2               =  0.800GGK500T + 0.200GAK500S + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 50216} G3K500l +GNO                =       G3K4009 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 50217} G3K500l +GNO2               =       GPK500T                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 50218} G3K500l +GNO3               =       G3K4009 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 50219} G3K500l +MEPERO             =  0.685G3K4009 + 0.315GAK500S + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50220} G3K500l +PERO1              =  0.800G3K4009 + 0.200GAK500S + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50221} G3K500l +PERO2              =  0.750G3K4009 + 0.250GAK500S + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50222} G3K500l +PERO3              =  0.800G3K4009 + 0.200GAK500S + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50223} G3K500l +PERO5              =  0.650G3K4009 + 0.350GAK500S + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50224} G3K500l +PERO6              =  0.650G3K4009 + 0.350GAK500S + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50225} G3K500l +PERO9              =       G3K4009 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 50226} GGH5022 +GHO                =       GGN501d +      GHO                                    : ARR( 0.355E-10,     0., 0.0);
+{ 50227} GGH5022 +GHO                =       G2G501H                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 50228} GGH5022 +GHO                =       G3H503t                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 50229} GGH5022+HV               =       G1G501Y +      GHO                                    :  0.100E+01*SUN;
+{ 50230} GGH5022+HV               =       G1G5046 +      GNO2                                   :  0.100E+01*SUN;
+{ 50231} GGH5022+HV               =       GHD400H +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 50232} G1G5046                     =       G2G5033                                               : ARR( 0.240E+12,  4177., 0.0);
+{ 50233} G1G5046                     =       GHD3002 +      GGD2000 +      GHO2                    : ARR( 0.200E+15,  5342., 0.0);
+{ 50234} G1G5046                     =       GHD400H +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 50235} G2G5033 +GNO                =       G1G5047 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 50236} G2G5033 +GNO                =       GGH5045                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 50237} G2G5033 +GHO2               =       GGH504e                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 50238} G2G5033 +GNO3               =       G1G5047 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 50239} G2G5033 +MEPERO             =  0.480G1G5047 + 0.260GGH5026 + 0.260GGH503t                 : ARR( 0.164E-12,  -795., 0.0);
+{ 50240} G2G5033 +PERO1              =  0.600G1G5047 + 0.200GGH5026 + 0.200GGH503t                 : ARR( 0.126E-12,  -850., 0.0);
+{ 50241} G2G5033 +PERO2              =  0.560G1G5047 + 0.220GGH5026 + 0.220GGH503t                 : ARR( 0.471E-13, -1350., 0.0);
+{ 50242} G2G5033 +PERO3              =  0.600G1G5047 + 0.200GGH5026 + 0.200GGH503t                 : ARR( 0.142E-12, -1200., 0.0);
+{ 50243} G2G5033 +PERO5              =  0.600G1G5047 + 0.200GGH5026 + 0.200GGH503t                 : ARR( 0.533E-11,   500., 0.0);
+{ 50244} G2G5033 +PERO6              =  0.460G1G5047 + 0.270GGH5026 + 0.270GGH503t                 : ARR( 0.488E-13, -1250., 0.0);
+{ 50245} G2G5033 +PERO9              =  0.800G1G5047 + 0.200GGH503t                                : ARR( 0.100E-10,     0., 0.0);
+{ 50246} G1G5047                     =       GGH5027 +      GHO2                                   : ARR( 0.800E+11,  2246., 0.0);
+{ 50247} G1G5047                     =       GGD4006 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{ 50248} GGN501e +GHO                =       GGN501d +      GHO2                                   : ARR( 0.869E-11,     0., 0.0);
+{ 50249} GGN501e +GHO                =       GGN500k +      GHO2                                   : ARR( 0.214E-11,     0., 0.0);
+{ 50250} GGN501e +GHO                =       G3N501a                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 50251} GGN501e+HV               =       G1G503N +      GNO2                                   :  0.100E+01*SUN;
+{ 50252} GGN501e+HV               =       GDO4005 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 50253} GGH5023 +GHO                =       GGK500S +      GHO                                    : ARR( 0.338E-10,     0., 0.0);
+{ 50254} GGH5023 +GHO                =       GGH502C +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 50255} GGH5023 +GHO                =       GGH5024 +      GHO2                                   : ARR( 0.633E-11,     0., 0.0);
+{ 50256} GGH5023 +GHO                =       G2G501I                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 50257} GGH5023 +GHO                =       G3H5034                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 50258} GGH5023+HV               =       G1G501Z +      GHO                                    :  0.100E+01*SUN;
+{ 50259} GGH5023+HV               =       GHD400H +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 50260} GGH5024 +GHO                =       GGK500T +      GHO                                    : ARR( 0.113E-09,     0., 0.0);
+{ 50261} GGH5024 +GHO                =       GGH502E +      GHO2                                   : ARR( 0.670E-11,     0., 0.0);
+{ 50262} GGH5024+HV               =       G1G501a +      GHO                                    :  0.100E+01*SUN;
+{ 50263} GGH5024+HV               =       GAH400G +      GCO2                                   :  0.100E+01*SUN;
+{ 50264} GGK500U +GHO                =       GGK500T +      GHO2                                   : ARR( 0.269E-10,     0., 0.0);
+{ 50265} GGK500U +GHO                =       GGK500N +      GHO2                                   : ARR( 0.636E-11,     0., 0.0);
+{ 50266} GGK500U +GHO                =       G3K500m                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 50267} GGK500U+HV               =       GAO4003 +      GCO2                                   :  0.100E+01*SUN;
+{ 50268} G3K500m +GHO2               =  0.800GGK500U + 0.200GAK500Y + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 50269} G3K500m +GNO                =       G3K4008 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 50270} G3K500m +GNO2               =       GPK500U                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 50271} G3K500m +GNO3               =       G3K4008 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 50272} G3K500m +MEPERO             =  0.685G3K4008 + 0.315GAK500Y + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50273} G3K500m +PERO1              =  0.800G3K4008 + 0.200GAK500Y + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50274} G3K500m +PERO2              =  0.750G3K4008 + 0.250GAK500Y + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50275} G3K500m +PERO3              =  0.800G3K4008 + 0.200GAK500Y + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50276} G3K500m +PERO5              =  0.650G3K4008 + 0.350GAK500Y + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50277} G3K500m +PERO6              =  0.650G3K4008 + 0.350GAK500Y + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50278} G3K500m +PERO9              =       G3K4008 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 50279} GGH5025 +GHO                =       GGD500E +      GHO                                    : ARR( 0.162E-10,     0., 0.0);
+{ 50280} GGH5025 +GHO                =       G2G5034                                               : ARR( 0.450E-11,     0., 0.0);
+{ 50281} GGH5025 +GHO                =       GGH502D +      GHO2                                   : ARR( 0.631E-11,     0., 0.0);
+{ 50282} GGH5025 +GHO                =       G2G5035                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 50283} GGH5025 +GHO                =       G3H503y                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 50284} GGH5025+HV               =       G1G502H +      GHO                                    :  0.100E+01*SUN;
+{ 50285} GGH5025+HV               =       GAH400M +      GCO2                                   :  0.100E+01*SUN;
+{ 50286} G2G5034 +GNO                =       G1G5048 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 50287} G2G5034 +GNO                =       GGH504f                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 50288} G2G5034 +GHO2               =       GGH504g                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 50289} G2G5034 +GNO3               =       G1G5048 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 50290} G2G5034 +MEPERO             =  0.340G1G5048 + 0.330GGH504K + 0.330GGH504d                 : ARR( 0.565E-13,  -845., 0.0);
+{ 50291} G2G5034 +PERO1              =  0.460G1G5048 + 0.270GGH504K + 0.270GGH504d                 : ARR( 0.434E-13,  -900., 0.0);
+{ 50292} G2G5034 +PERO2              =  0.400G1G5048 + 0.300GGH504K + 0.300GGH504d                 : ARR( 0.162E-13, -1400., 0.0);
+{ 50293} G2G5034 +PERO3              =  0.460G1G5048 + 0.270GGH504K + 0.270GGH504d                 : ARR( 0.488E-13, -1250., 0.0);
+{ 50294} G2G5034 +PERO5              =  0.460G1G5048 + 0.270GGH504K + 0.270GGH504d                 : ARR( 0.183E-11,   450., 0.0);
+{ 50295} G2G5034 +PERO6              =  0.300G1G5048 + 0.350GGH504K + 0.350GGH504d                 : ARR( 0.168E-13, -1300., 0.0);
+{ 50296} G2G5034 +PERO9              =  0.650G1G5048 + 0.350GGH504d                                : ARR( 0.100E-10,     0., 0.0);
+{ 50297} G2G5035 +GNO                =       G1G502H +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 50298} G2G5035 +GNO                =       GGN500t                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 50299} G2G5035 +GHO2               =       GGH5025                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 50300} G2G5035 +GNO3               =       G1G502H +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 50301} G2G5035 +MEPERO             =  0.480G1G502H + 0.260GGK500B + 0.260GGD500E                 : ARR( 0.146E-12,  -445., 0.0);
+{ 50302} G2G5035 +PERO1              =  0.600G1G502H + 0.200GGK500B + 0.200GGD500E                 : ARR( 0.112E-12,  -500., 0.0);
+{ 50303} G2G5035 +PERO2              =  0.560G1G502H + 0.220GGK500B + 0.220GGD500E                 : ARR( 0.418E-13, -1000., 0.0);
+{ 50304} G2G5035 +PERO3              =  0.600G1G502H + 0.200GGK500B + 0.200GGD500E                 : ARR( 0.126E-12,  -850., 0.0);
+{ 50305} G2G5035 +PERO5              =  0.600G1G502H + 0.200GGK500B + 0.200GGD500E                 : ARR( 0.473E-11,   850., 0.0);
+{ 50306} G2G5035 +PERO6              =  0.460G1G502H + 0.270GGK500B + 0.270GGD500E                 : ARR( 0.434E-13,  -900., 0.0);
+{ 50307} G2G5035 +PERO9              =  0.800G1G502H + 0.200GGD500E                                : ARR( 0.100E-10,     0., 0.0);
+{ 50308} G3H503y +GHO2               =  0.800GGH5025 + 0.200GAH504d + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 50309} G3H503y +GNO                =       G3H400F +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 50310} G3H503y +GNO2               =       GPH502N                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 50311} G3H503y +GNO3               =       G3H400F +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 50312} G3H503y +MEPERO             =  0.685G3H400F + 0.315GAH504d + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50313} G3H503y +PERO1              =  0.800G3H400F + 0.200GAH504d + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50314} G3H503y +PERO2              =  0.750G3H400F + 0.250GAH504d + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50315} G3H503y +PERO3              =  0.800G3H400F + 0.200GAH504d + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50316} G3H503y +PERO5              =  0.650G3H400F + 0.350GAH504d + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50317} G3H503y +PERO6              =  0.650G3H400F + 0.350GAH504d + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50318} G3H503y +PERO9              =       G3H400F +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 50319} G1G5048                     =       GHD2000 +      GGD3002 +      GHO2                    : ARR( 0.200E+15,  3347., 0.0);
+{ 50320} GGN501f +GHO                =       GGN502c +      GHO2                                   : ARR( 0.838E-12,     0., 0.0);
+{ 50321} GGN501f +GHO                =       GGN502O +      GHO2                                   : ARR( 0.215E-11,     0., 0.0);
+{ 50322} GGN501f +GHO                =       GGN501g +      GHO2                                   : ARR( 0.655E-11,     0., 0.0);
+{ 50323} GGN501f +GHO                =       G3N502G                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 50324} GGN501f+HV               =       G1G501b +      GNO2                                   :  0.100E+01*SUN;
+{ 50325} GGN501f+HV               =       GND4009 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 50326} GGH5026 +GHO                =       GGH503t +      GHO2                                   : ARR( 0.405E-11,     0., 0.0);
+{ 50327} GGH5026 +GHO                =       GGK500W +      GHO                                    : ARR( 0.415E-10,     0., 0.0);
+{ 50328} GGH5026 +GHO                =       GGH503w +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 50329} GGH5026 +GHO                =       GGH5027 +      GHO2                                   : ARR( 0.632E-11,     0., 0.0);
+{ 50330} GGH5026 +GHO                =       G2G501K                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 50331} GGH5026 +GHO                =       G3H503D                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 50332} GGH5026+HV               =       G1G501b +      GHO                                    :  0.100E+01*SUN;
+{ 50333} GGH5026+HV               =       GHD4009 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 50334} GGK500W +GHO                =       GGD500L +      GHO2                                   : ARR( 0.248E-11,     0., 0.0);
+{ 50335} GGK500W +GHO                =       GGK500a +      GHO2                                   : ARR( 0.636E-11,     0., 0.0);
+{ 50336} GGK500W +GHO                =       GGK500X +      GHO2                                   : ARR( 0.202E-10,     0., 0.0);
+{ 50337} GGK500W +GHO                =       G3K500g                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 50338} GGK500W+HV               =       G3K2001 +      GGD3001 +      GHO2                    :  0.100E+01*SUN;
+{ 50339} GGK500W+HV               =       GDK4006 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 50340} GGD500E +GHO                =       GGD500F +      GHO2                                   : ARR( 0.200E-10,     0., 0.0);
+{ 50341} GGD500E +GHO                =       G2G5036                                               : ARR( 0.274E-11,     0., 0.0);
+{ 50342} GGD500E +GHO                =       G3G500R                                               : ARR( 0.208E-10,     0., 0.0);
+{ 50343} GGD500E +GHO                =       G3D500I                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 50344} GGD500E +GNO3               =       G3G500R +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 50345} GGD500E+HV               =       GAD4002 +      GCO2                                   :  0.100E+01*SUN;
+{ 50346} GGD500E+HV               =       G2G400B +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 50347} G2G5036 +GNO                =       G1G5049 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 50348} G2G5036 +GNO                =       GGN502i                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 50349} G2G5036 +GHO2               =       GGH504h                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 50350} G2G5036 +GNO3               =       G1G5049 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 50351} G2G5036 +MEPERO             =  0.340G1G5049 + 0.330GGD500K + 0.330GGD500N                 : ARR( 0.565E-13,  -845., 0.0);
+{ 50352} G2G5036 +PERO1              =  0.460G1G5049 + 0.270GGD500K + 0.270GGD500N                 : ARR( 0.434E-13,  -900., 0.0);
+{ 50353} G2G5036 +PERO2              =  0.400G1G5049 + 0.300GGD500K + 0.300GGD500N                 : ARR( 0.162E-13, -1400., 0.0);
+{ 50354} G2G5036 +PERO3              =  0.460G1G5049 + 0.270GGD500K + 0.270GGD500N                 : ARR( 0.488E-13, -1250., 0.0);
+{ 50355} G2G5036 +PERO5              =  0.460G1G5049 + 0.270GGD500K + 0.270GGD500N                 : ARR( 0.183E-11,   450., 0.0);
+{ 50356} G2G5036 +PERO6              =  0.300G1G5049 + 0.350GGD500K + 0.350GGD500N                 : ARR( 0.168E-13, -1300., 0.0);
+{ 50357} G2G5036 +PERO9              =  0.650G1G5049 + 0.350GGD500N                                : ARR( 0.100E-10,     0., 0.0);
+{ 50358} G3G500R +GHO2               =  0.800GGG500I + 0.200GAG500a + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 50359} G3G500R +GNO                =       G2G400B +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 50360} G3G500R +GNO2               =       GPG500Z                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 50361} G3G500R +GNO3               =       G2G400B +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 50362} G3G500R +MEPERO             =  0.685G2G400B + 0.315GAG500a + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50363} G3G500R +PERO1              =  0.800G2G400B + 0.200GAG500a + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50364} G3G500R +PERO2              =  0.750G2G400B + 0.250GAG500a + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50365} G3G500R +PERO3              =  0.800G2G400B + 0.200GAG500a + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50366} G3G500R +PERO5              =  0.650G2G400B + 0.350GAG500a + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50367} G3G500R +PERO6              =  0.650G2G400B + 0.350GAG500a + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50368} G3G500R +PERO9              =       G2G400B +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 50369} G3D500I +GHO2               =  0.800GGD500E + 0.200GAD500K + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 50370} G3D500I +GNO                =       G3D4002 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 50371} G3D500I +GNO2               =       GPD500E                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 50372} G3D500I +GNO3               =       G3D4002 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 50373} G3D500I +MEPERO             =  0.685G3D4002 + 0.315GAD500K + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50374} G3D500I +PERO1              =  0.800G3D4002 + 0.200GAD500K + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50375} G3D500I +PERO2              =  0.750G3D4002 + 0.250GAD500K + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50376} G3D500I +PERO3              =  0.800G3D4002 + 0.200GAD500K + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50377} G3D500I +PERO5              =  0.650G3D4002 + 0.350GAD500K + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50378} G3D500I +PERO6              =  0.650G3D4002 + 0.350GAD500K + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50379} G3D500I +PERO9              =       G3D4002 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 50380} G1G5049                     =       GGD3002 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  4760., 0.0);
+{ 50381} G1G5049                     =       GGD4003 +      GCO     +      GHO2                    : ARR( 0.200E+15,  4861., 0.0);
+{ 50382} GGG5002 +GHO                =       GGG5004 +      GHO2                                   : ARR( 0.108E-10,     0., 0.0);
+{ 50383} GGG5002 +GHO                =       GGG500I +      GHO2                                   : ARR( 0.658E-11,     0., 0.0);
+{ 50384} GGG5002 +GHO                =       G3G5003                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 50385} GGG5002 +GHO                =       G3G500C                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 50386} GGG5002+HV               =       G2G400O +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 50387} GGG5002+HV               =       GGD4001 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 50388} GAG5006 +GHO                =       GAG5008 +      GHO2                                   : ARR( 0.110E-10,     0., 0.0);
+{ 50389} GAG5006 +GHO                =       GAG500a +      GHO2                                   : ARR( 0.673E-11,     0., 0.0);
+{ 50390} GAG5006 +GHO                =       G3A500G                                               : ARR( 0.204E-11,  -190., 0.0);
+{ 50391} GAG5006+HV               =       GAD4001 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 50392} GPG5005                     =       G3G5003 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 50393} GPG5005 +GHO                =       GPG500Z +      GHO2                                   : ARR( 0.664E-11,     0., 0.0);
+{ 50394} GPG5005 +GHO                =       GPG5008 +      GHO2                                   : ARR( 0.109E-10,     0., 0.0);
+{ 50395} GPG5005 +GHO                =       G3P500E                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 50396} GPG5005+HV               =       GPD4001 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 50397} GPG5005+HV               =       G3G5003 +      GNO2                                   :  0.100E+01*SUN;
+{ 50398} GGD4006 +GHO                =       GGD4003 +      GHO2                                   : ARR( 0.200E-10,     0., 0.0);
+{ 50399} GGD4006 +GHO                =       GGD4007 +      GHO2                                   : ARR( 0.632E-11,     0., 0.0);
+{ 50400} GGD4006 +GHO                =       G3G4009                                               : ARR( 0.209E-10,     0., 0.0);
+{ 50401} GGD4006 +GHO                =       G3D4005                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 50402} GGD4006 +GNO3               =       G3G4009 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 50403} GGD4006+HV               =       GDD3001 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 50404} GGD4006+HV               =       GGD3001 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 50405} G3G4009 +GHO2               =  0.800GGG4006 + 0.200GAG400F + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 50406} G3G4009 +GNO                =       GGD3001 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 50407} G3G4009 +GNO2               =       GPG400F                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 50408} G3G4009 +GNO3               =       GGD3001 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 50409} G3G4009 +MEPERO             =  0.685GGD3001 + 0.315GAG400F + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 50410} G3G4009 +PERO1              =  0.800GGD3001 + 0.200GAG400F + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 50411} G3G4009 +PERO2              =  0.750GGD3001 + 0.250GAG400F + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 50412} G3G4009 +PERO3              =  0.800GGD3001 + 0.200GAG400F + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 50413} G3G4009 +PERO5              =  0.650GGD3001 + 0.350GAG400F + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 50414} G3G4009 +PERO6              =  0.650GGD3001 + 0.350GAG400F + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 50415} G3G4009 +PERO9              =       GGD3001 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 50416} GGN501g +GHO                =       GGN502i +      GHO2                                   : ARR( 0.842E-12,     0., 0.0);
+{ 50417} GGN501g +GHO                =       GGK500X +      GNO2                                   : ARR( 0.391E-12,     0., 0.0);
+{ 50418} GGN501g +GHO                =       GGN502Z +      GHO2                                   : ARR( 0.131E-11,     0., 0.0);
+{ 50419} GGN501g +GHO                =       G3N502U                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 50420} GGN501g+HV               =       G1G501c +      GNO2                                   :  0.100E+01*SUN;
+{ 50421} GGN501g+HV               =       GAN400K +      GCO2                                   :  0.100E+01*SUN;
+{ 50422} G3N502U +GHO2               =  0.800GGN501g + 0.200GAN502Q + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 50423} G3N502U +GNO                =       G3N400E +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 50424} G3N502U +GNO2               =       GPN501z                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 50425} G3N502U +GNO3               =       G3N400E +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 50426} G3N502U +MEPERO             =  0.685G3N400E + 0.315GAN502Q + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50427} G3N502U +PERO1              =  0.800G3N400E + 0.200GAN502Q + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50428} G3N502U +PERO2              =  0.750G3N400E + 0.250GAN502Q + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50429} G3N502U +PERO3              =  0.800G3N400E + 0.200GAN502Q + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50430} G3N502U +PERO5              =  0.650G3N400E + 0.350GAN502Q + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50431} G3N502U +PERO6              =  0.650G3N400E + 0.350GAN502Q + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50432} G3N502U +PERO9              =       G3N400E +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 50433} GGH5027 +GHO                =       GGK500X +      GHO                                    : ARR( 0.148E-09,     0., 0.0);
+{ 50434} GGH5027+HV               =       G1G501c +      GHO                                    :  0.100E+01*SUN;
+{ 50435} GGH5027+HV               =       GAH400J +      GCO2                                   :  0.100E+01*SUN;
+{ 50436} GGK500X +GHO                =       GGD500N +      GHO2                                   : ARR( 0.252E-11,     0., 0.0);
+{ 50437} GGK500X +GHO                =       GGK500c +      GHO2                                   : ARR( 0.394E-11,     0., 0.0);
+{ 50438} GGK500X +GHO                =       G3K500n                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 50439} GGK500X+HV               =       G3K2001 +      GGD3002 +      GHO2                    :  0.100E+01*SUN;
+{ 50440} GGK500X+HV               =       GAK4008 +      GCO2                                   :  0.100E+01*SUN;
+{ 50441} G3K500n +GHO2               =  0.800GGK500X + 0.200GAK500c + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 50442} G3K500n +GNO                =       G3K400C +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 50443} G3K500n +GNO2               =       GPK500X                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 50444} G3K500n +GNO3               =       G3K400C +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 50445} G3K500n +MEPERO             =  0.685G3K400C + 0.315GAK500c + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50446} G3K500n +PERO1              =  0.800G3K400C + 0.200GAK500c + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50447} G3K500n +PERO2              =  0.750G3K400C + 0.250GAK500c + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50448} G3K500n +PERO3              =  0.800G3K400C + 0.200GAK500c + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50449} G3K500n +PERO5              =  0.650G3K400C + 0.350GAK500c + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50450} G3K500n +PERO6              =  0.650G3K400C + 0.350GAK500c + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50451} G3K500n +PERO9              =       G3K400C +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 50452} GAN501q +GHO                =       GAN501t +      GNO2                                   : ARR( 0.103E-12,     0., 0.0);
+{ 50453} GAN501q +GHO                =       GAN501u +      GHO2                                   : ARR( 0.443E-12,     0., 0.0);
+{ 50454} GAN501q +GHO                =       G1A502B                                               : ARR( 0.226E-17,    85., 2.0);
+{ 50455} GAN501q +GHO                =       GND400H +      GNO2    +      GCO2                    : ARR( 0.559E-12,     0., 0.0);
+{ 50456} GAN501q+HV               =       G1A502S +      GNO2                                   :  0.100E+01*SUN;
+{ 50457} GAN501q+HV               =       G1A501v +      GNO2                                   :  0.100E+01*SUN;
+{ 50458} GAH502J +GHO                =       GAH502M +      GHO2                                   : ARR( 0.213E-11,     0., 0.0);
+{ 50459} GAH502J +GHO                =       GAN501s +      GHO                                    : ARR( 0.192E-10,     0., 0.0);
+{ 50460} GAH502J +GHO                =       G2A501d                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 50461} GAH502J+HV               =       G1A505I +      GNO2                                   :  0.100E+01*SUN;
+{ 50462} GAH502J+HV               =       G1A501v +      GHO                                    :  0.100E+01*SUN;
+{ 50463} G1A505I                     =       GD02000 +      GAH3007 +      GHO2                    : ARR( 0.200E+15,  3365., 0.0);
+{ 50464} GAN501r +GHO                =       GAN501v +      GHO2                                   : ARR( 0.218E-11,     0., 0.0);
+{ 50465} GAN501r +GHO                =       GAN501s +      GHO2                                   : ARR( 0.491E-11,     0., 0.0);
+{ 50466} GAN501r +GHO                =       GND400H +      GHO2    +      GCO2                    : ARR( 0.549E-12,     0., 0.0);
+{ 50467} GAN501r+HV               =       G1A502U +      GNO2                                   :  0.100E+01*SUN;
+{ 50468} GAN501s +GHO                =       GAK500S +      GNO2                                   : ARR( 0.308E-12,     0., 0.0);
+{ 50469} GAN501s +GHO                =       GAN501w +      GHO2                                   : ARR( 0.128E-11,     0., 0.0);
+{ 50470} GAN501s +GHO                =       G1A502D                                               : ARR( 0.213E-17,    85., 2.0);
+{ 50471} GAN501s +GHO                =       G3N400A +      GCO2                                   : ARR( 0.528E-12,     0., 0.0);
+{ 50472} GAN501s+HV               =       G1A502X +      GNO2                                   :  0.100E+01*SUN;
+{ 50473} GAN501s+HV               =       GND400H +      GCO2                                   :  0.100E+01*SUN;
+{ 50474} GAN501t +GHO                =       GAN501x +      GHO2                                   : ARR( 0.132E-11,     0., 0.0);
+{ 50475} GAN501t +GHO                =       GAK500S +      GNO2                                   : ARR( 0.177E-12,     0., 0.0);
+{ 50476} GAN501t +GHO                =       G1A502G                                               : ARR( 0.220E-17,    85., 2.0);
+{ 50477} GAN501t +GHO                =       GDK4003 +      GNO2    +      GCO2                    : ARR( 0.545E-12,     0., 0.0);
+{ 50478} GAN501t+HV               =       G3K2000 +      GAN3006 +      GHO2                    :  0.100E+01*SUN;
+{ 50479} GAN501t+HV               =       G1A501w +      GNO2                                   :  0.100E+01*SUN;
+{ 50480} GAH502K +GHO                =       GAH502N +      GHO2                                   : ARR( 0.635E-11,     0., 0.0);
+{ 50481} GAH502K +GHO                =       GAK500S +      GHO                                    : ARR( 0.596E-10,     0., 0.0);
+{ 50482} GAH502K +GHO                =       G2A501e                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 50483} GAH502K+HV               =       G3K2000 +      GAH3007 +      GHO2                    :  0.100E+01*SUN;
+{ 50484} GAH502K+HV               =       G1A501w +      GHO                                    :  0.100E+01*SUN;
+{ 50485} GAK500R +GHO                =       GAK500T +      GHO2                                   : ARR( 0.655E-11,     0., 0.0);
+{ 50486} GAK500R +GHO                =       GAK500S +      GHO2                                   : ARR( 0.154E-10,     0., 0.0);
+{ 50487} GAK500R+HV               =       G3K2000 +      GAD3001 +      GHO2                    :  0.100E+01*SUN;
+{ 50488} GAK500S +GHO                =       GAK500U +      GHO2                                   : ARR( 0.404E-11,     0., 0.0);
+{ 50489} GAK500S +GHO                =       G3K4009 +      GCO2                                   : ARR( 0.549E-12,     0., 0.0);
+{ 50490} GAK500S+HV               =       G3K2000 +      GAD3002 +      GHO2                    :  0.100E+01*SUN;
+{ 50491} GAK500S+HV               =       GDK4003 +      GCO2                                   :  0.100E+01*SUN;
+{ 50492} GPN501t                     =       G3N501M +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 50493} GPN501t +GHO                =       GPN501w +      GNO2                                   : ARR( 0.100E-12,     0., 0.0);
+{ 50494} GPN501t +GHO                =       GPN5022 +      GHO2                                   : ARR( 0.431E-12,     0., 0.0);
+{ 50495} GPN501t +GHO                =       GPN501v +      GNO2                                   : ARR( 0.751E-13,     0., 0.0);
+{ 50496} GPN501t +GHO                =       G1P502R                                               : ARR( 0.220E-17,    85., 2.0);
+{ 50497} GPN501t+HV               =       G1P5025 +      GNO2                                   :  0.100E+01*SUN;
+{ 50498} GPN501t+HV               =       G1P5023 +      GNO2                                   :  0.100E+01*SUN;
+{ 50499} GPN501t+HV               =       G3N501M +      GNO2                                   :  0.100E+01*SUN;
+{ 50500} GPH502I                     =       G3H502x +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 50501} GPH502I +GHO                =       GPH502S +      GHO2                                   : ARR( 0.208E-11,     0., 0.0);
+{ 50502} GPH502I +GHO                =       GPN501v +      GHO                                    : ARR( 0.253E-10,     0., 0.0);
+{ 50503} GPH502I +GHO                =       G2P501h                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 50504} GPH502I+HV               =       G1P505d +      GNO2                                   :  0.100E+01*SUN;
+{ 50505} GPH502I+HV               =       G1P5023 +      GHO                                    :  0.100E+01*SUN;
+{ 50506} GPH502I+HV               =       G3H502x +      GNO2                                   :  0.100E+01*SUN;
+{ 50507} G1P505d                     =       GD02000 +      GPH3007 +      GHO2                    : ARR( 0.200E+15,  3365., 0.0);
+{ 50508} GPN501u                     =       G3N502D +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 50509} GPN501u +GHO                =       GPN5023 +      GHO2                                   : ARR( 0.216E-11,     0., 0.0);
+{ 50510} GPN501u +GHO                =       GPN501v +      GHO2                                   : ARR( 0.659E-11,     0., 0.0);
+{ 50511} GPN501u+HV               =       G1P5026 +      GNO2                                   :  0.100E+01*SUN;
+{ 50512} GPN501u+HV               =       G3N502D +      GNO2                                   :  0.100E+01*SUN;
+{ 50513} GPN501v                     =       G3N502T +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 50514} GPN501v +GHO                =       GPK500T +      GNO2                                   : ARR( 0.310E-12,     0., 0.0);
+{ 50515} GPN501v +GHO                =       GPN5024 +      GHO2                                   : ARR( 0.128E-11,     0., 0.0);
+{ 50516} GPN501v +GHO                =       G1P502U                                               : ARR( 0.214E-17,    85., 2.0);
+{ 50517} GPN501v+HV               =       G1P5027 +      GNO2                                   :  0.100E+01*SUN;
+{ 50518} GPN501v+HV               =       G3N400A +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 50519} GPN501w                     =       G3N501W +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 50520} GPN501w +GHO                =       G2P504B                                               : ARR( 0.102E-12,     0., 0.0);
+{ 50521} GPN501w +GHO                =       GPN5028 +      GHO2                                   : ARR( 0.126E-11,     0., 0.0);
+{ 50522} GPN501w +GHO                =       GPK500T +      GNO2                                   : ARR( 0.228E-12,     0., 0.0);
+{ 50523} GPN501w +GHO                =       G1P502Y                                               : ARR( 0.210E-17,    85., 2.0);
+{ 50524} GPN501w+HV               =       G3K2000 +      GPN3006 +      GHO2                    :  0.100E+01*SUN;
+{ 50525} GPN501w+HV               =       G1P5024 +      GNO2                                   :  0.100E+01*SUN;
+{ 50526} GPN501w+HV               =       G3N501W +      GNO2                                   :  0.100E+01*SUN;
+{ 50527} G2P504B +GNO                =       G1P505e +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 50528} G2P504B +GNO                =       GPN502R                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 50529} G2P504B +GHO2               =       GPH504j                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 50530} G2P504B +GNO3               =       G1P505e +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 50531} G2P504B +MEPERO             =  0.480G1P505e + 0.260GPN502X + 0.260GPN502n                 : ARR( 0.164E-12,  -795., 0.0);
+{ 50532} G2P504B +PERO1              =  0.600G1P505e + 0.200GPN502X + 0.200GPN502n                 : ARR( 0.126E-12,  -850., 0.0);
+{ 50533} G2P504B +PERO2              =  0.560G1P505e + 0.220GPN502X + 0.220GPN502n                 : ARR( 0.471E-13, -1350., 0.0);
+{ 50534} G2P504B +PERO3              =  0.600G1P505e + 0.200GPN502X + 0.200GPN502n                 : ARR( 0.142E-12, -1200., 0.0);
+{ 50535} G2P504B +PERO5              =  0.600G1P505e + 0.200GPN502X + 0.200GPN502n                 : ARR( 0.533E-11,   500., 0.0);
+{ 50536} G2P504B +PERO6              =  0.460G1P505e + 0.270GPN502X + 0.270GPN502n                 : ARR( 0.488E-13, -1250., 0.0);
+{ 50537} G2P504B +PERO9              =  0.800G1P505e + 0.200GPN502n                                : ARR( 0.100E-10,     0., 0.0);
+{ 50538} G1P505e                     =       G3P4006 +      GCH2O                                  : ARR( 0.200E+15,  3603., 0.0);
+{ 50539} GPH502J                     =       G3H501t +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 50540} GPH502J +GHO                =       GPH502U +      GHO2                                   : ARR( 0.656E-11,     0., 0.0);
+{ 50541} GPH502J +GHO                =       GPK500T +      GHO                                    : ARR( 0.832E-10,     0., 0.0);
+{ 50542} GPH502J+HV               =       G3K2000 +      GPH3007 +      GHO2                    :  0.100E+01*SUN;
+{ 50543} GPH502J+HV               =       G1P5024 +      GHO                                    :  0.100E+01*SUN;
+{ 50544} GPH502J+HV               =       G3H501t +      GNO2                                   :  0.100E+01*SUN;
+{ 50545} GPK500S                     =       G3K500f +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 50546} GPK500S +GHO                =       GPK500Y +      GHO2                                   : ARR( 0.637E-11,     0., 0.0);
+{ 50547} GPK500S +GHO                =       GPK500T +      GHO2                                   : ARR( 0.202E-10,     0., 0.0);
+{ 50548} GPK500S+HV               =       G3K2000 +      GPD3001 +      GHO2                    :  0.100E+01*SUN;
+{ 50549} GPK500S+HV               =       G3K500f +      GNO2                                   :  0.100E+01*SUN;
+{ 50550} GPK500T                     =       G3K500l +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 50551} GPK500T +GHO                =       GPK500Z +      GHO2                                   : ARR( 0.407E-11,     0., 0.0);
+{ 50552} GPK500T+HV               =       G3K2000 +      GPD3002 +      GHO2                    :  0.100E+01*SUN;
+{ 50553} GPK500T+HV               =       G3K4009 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 50554} GPH502K                     =       G3H503t +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 50555} GPH502K +GHO                =       GPN501w +      GHO                                    : ARR( 0.338E-10,     0., 0.0);
+{ 50556} GPH502K +GHO                =       GPH502X +      GHO2                                   : ARR( 0.208E-11,     0., 0.0);
+{ 50557} GPH502K +GHO                =       G2P501j                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 50558} GPH502K+HV               =       G1P5025 +      GHO                                    :  0.100E+01*SUN;
+{ 50559} GPH502K+HV               =       G1P505f +      GNO2                                   :  0.100E+01*SUN;
+{ 50560} GPH502K+HV               =       G3H503t +      GNO2                                   :  0.100E+01*SUN;
+{ 50561} G1P505f                     =       G2P504C                                               : ARR( 0.240E+12,  4177., 0.0);
+{ 50562} G1P505f                     =       GHD3002 +      GPD2000 +      GHO2                    : ARR( 0.200E+15,  5342., 0.0);
+{ 50563} G1P505f                     =       GHD400H +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 50564} G2P504C +GNO                =       G1P505g +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 50565} G2P504C +GNO                =       GPH503u                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 50566} G2P504C +GHO2               =       GPH504u                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 50567} G2P504C +GNO3               =       G1P505g +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 50568} G2P504C +MEPERO             =  0.480G1P505g + 0.260GPH502O + 0.260GPH503q                 : ARR( 0.164E-12,  -795., 0.0);
+{ 50569} G2P504C +PERO1              =  0.600G1P505g + 0.200GPH502O + 0.200GPH503q                 : ARR( 0.126E-12,  -850., 0.0);
+{ 50570} G2P504C +PERO2              =  0.560G1P505g + 0.220GPH502O + 0.220GPH503q                 : ARR( 0.471E-13, -1350., 0.0);
+{ 50571} G2P504C +PERO3              =  0.600G1P505g + 0.200GPH502O + 0.200GPH503q                 : ARR( 0.142E-12, -1200., 0.0);
+{ 50572} G2P504C +PERO5              =  0.600G1P505g + 0.200GPH502O + 0.200GPH503q                 : ARR( 0.533E-11,   500., 0.0);
+{ 50573} G2P504C +PERO6              =  0.460G1P505g + 0.270GPH502O + 0.270GPH503q                 : ARR( 0.488E-13, -1250., 0.0);
+{ 50574} G2P504C +PERO9              =  0.800G1P505g + 0.200GPH503q                                : ARR( 0.100E-10,     0., 0.0);
+{ 50575} G1P505g                     =       GPH502P +      GHO2                                   : ARR( 0.800E+11,  2246., 0.0);
+{ 50576} G1P505g                     =       GPD4006 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{ 50577} GPN501x                     =       G3N501a +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 50578} GPN501x +GHO                =       GPN501w +      GHO2                                   : ARR( 0.879E-11,     0., 0.0);
+{ 50579} GPN501x +GHO                =       GPN500w +      GHO2                                   : ARR( 0.216E-11,     0., 0.0);
+{ 50580} GPN501x+HV               =       G1P504Z +      GNO2                                   :  0.100E+01*SUN;
+{ 50581} GPN501x+HV               =       G3N501a +      GNO2                                   :  0.100E+01*SUN;
+{ 50582} GPH502L                     =       G3H5034 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 50583} GPH502L +GHO                =       GPK500S +      GHO                                    : ARR( 0.338E-10,     0., 0.0);
+{ 50584} GPH502L +GHO                =       GPH502Y +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 50585} GPH502L +GHO                =       GPH502M +      GHO2                                   : ARR( 0.633E-11,     0., 0.0);
+{ 50586} GPH502L +GHO                =       G2P501k                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 50587} GPH502L+HV               =       G1P5026 +      GHO                                    :  0.100E+01*SUN;
+{ 50588} GPH502L+HV               =       G3H5034 +      GNO2                                   :  0.100E+01*SUN;
+{ 50589} GPH502M                     =       G3H503z +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 50590} GPH502M +GHO                =       GPK500T +      GHO                                    : ARR( 0.110E-09,     0., 0.0);
+{ 50591} GPH502M +GHO                =       GPH502a +      GHO2                                   : ARR( 0.650E-11,     0., 0.0);
+{ 50592} GPH502M+HV               =       G1P5027 +      GHO                                    :  0.100E+01*SUN;
+{ 50593} GPH502M+HV               =       G3H400M +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 50594} G3H503z +GHO2               =  0.800GGH5024 + 0.200GAH502k + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 50595} G3H503z +GNO                =       G3H400M +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 50596} G3H503z +GNO2               =       GPH502M                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 50597} G3H503z +GNO3               =       G3H400M +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 50598} G3H503z +MEPERO             =  0.685G3H400M + 0.315GAH502k + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50599} G3H503z +PERO1              =  0.800G3H400M + 0.200GAH502k + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50600} G3H503z +PERO2              =  0.750G3H400M + 0.250GAH502k + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50601} G3H503z +PERO3              =  0.800G3H400M + 0.200GAH502k + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50602} G3H503z +PERO5              =  0.650G3H400M + 0.350GAH502k + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50603} G3H503z +PERO6              =  0.650G3H400M + 0.350GAH502k + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50604} G3H503z +PERO9              =       G3H400M +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 50605} GPK500U                     =       G3K500m +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 50606} GPK500U +GHO                =       GPK500T +      GHO2                                   : ARR( 0.269E-10,     0., 0.0);
+{ 50607} GPK500U +GHO                =       GPK500N +      GHO2                                   : ARR( 0.637E-11,     0., 0.0);
+{ 50608} GPK500U+HV               =       G3K4008 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 50609} GPH502N                     =       G3H503y +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 50610} GPH502N +GHO                =       GPD500E +      GHO                                    : ARR( 0.162E-10,     0., 0.0);
+{ 50611} GPH502N +GHO                =       G2P504D                                               : ARR( 0.450E-11,     0., 0.0);
+{ 50612} GPH502N +GHO                =       GPH502Z +      GHO2                                   : ARR( 0.631E-11,     0., 0.0);
+{ 50613} GPH502N +GHO                =       G2P504E                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 50614} GPH502N+HV               =       G1P503B +      GHO                                    :  0.100E+01*SUN;
+{ 50615} GPH502N+HV               =       G3H400F +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 50616} G2P504D +GNO                =       G1P505h +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 50617} G2P504D +GNO                =       GPH504v                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 50618} G2P504D +GHO2               =       GPH504w                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 50619} G2P504D +GNO3               =       G1P505h +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 50620} G2P504D +MEPERO             =  0.340G1P505h + 0.330GPH504T + 0.330GPH504l                 : ARR( 0.565E-13,  -845., 0.0);
+{ 50621} G2P504D +PERO1              =  0.460G1P505h + 0.270GPH504T + 0.270GPH504l                 : ARR( 0.434E-13,  -900., 0.0);
+{ 50622} G2P504D +PERO2              =  0.400G1P505h + 0.300GPH504T + 0.300GPH504l                 : ARR( 0.162E-13, -1400., 0.0);
+{ 50623} G2P504D +PERO3              =  0.460G1P505h + 0.270GPH504T + 0.270GPH504l                 : ARR( 0.488E-13, -1250., 0.0);
+{ 50624} G2P504D +PERO5              =  0.460G1P505h + 0.270GPH504T + 0.270GPH504l                 : ARR( 0.183E-11,   450., 0.0);
+{ 50625} G2P504D +PERO6              =  0.300G1P505h + 0.350GPH504T + 0.350GPH504l                 : ARR( 0.168E-13, -1300., 0.0);
+{ 50626} G2P504D +PERO9              =  0.650G1P505h + 0.350GPH504l                                : ARR( 0.100E-10,     0., 0.0);
+{ 50627} G2P504E +GNO                =       G1P503B +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 50628} G2P504E +GNO                =       GPN5013                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 50629} G2P504E +GHO2               =       GPH502N                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 50630} G2P504E +GNO3               =       G1P503B +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 50631} G2P504E +MEPERO             =  0.480G1P503B + 0.260GPK500B + 0.260GPD500E                 : ARR( 0.146E-12,  -445., 0.0);
+{ 50632} G2P504E +PERO1              =  0.600G1P503B + 0.200GPK500B + 0.200GPD500E                 : ARR( 0.112E-12,  -500., 0.0);
+{ 50633} G2P504E +PERO2              =  0.560G1P503B + 0.220GPK500B + 0.220GPD500E                 : ARR( 0.418E-13, -1000., 0.0);
+{ 50634} G2P504E +PERO3              =  0.600G1P503B + 0.200GPK500B + 0.200GPD500E                 : ARR( 0.126E-12,  -850., 0.0);
+{ 50635} G2P504E +PERO5              =  0.600G1P503B + 0.200GPK500B + 0.200GPD500E                 : ARR( 0.473E-11,   850., 0.0);
+{ 50636} G2P504E +PERO6              =  0.460G1P503B + 0.270GPK500B + 0.270GPD500E                 : ARR( 0.434E-13,  -900., 0.0);
+{ 50637} G2P504E +PERO9              =  0.800G1P503B + 0.200GPD500E                                : ARR( 0.100E-10,     0., 0.0);
+{ 50638} G1P505h                     =       GHD2000 +      GPD3002 +      GHO2                    : ARR( 0.200E+15,  3347., 0.0);
+{ 50639} GPN501y                     =       G3N502G +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 50640} GPN501y +GHO                =       GPN502g +      GHO2                                   : ARR( 0.852E-12,     0., 0.0);
+{ 50641} GPN501y +GHO                =       GPN5026 +      GHO2                                   : ARR( 0.218E-11,     0., 0.0);
+{ 50642} GPN501y +GHO                =       GPN501z +      GHO2                                   : ARR( 0.665E-11,     0., 0.0);
+{ 50643} GPN501y+HV               =       G1P5028 +      GNO2                                   :  0.100E+01*SUN;
+{ 50644} GPN501y+HV               =       G3N502G +      GNO2                                   :  0.100E+01*SUN;
+{ 50645} GPH502O                     =       G3H503D +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 50646} GPH502O +GHO                =       GPH503q +      GHO2                                   : ARR( 0.405E-11,     0., 0.0);
+{ 50647} GPH502O +GHO                =       GPK500W +      GHO                                    : ARR( 0.415E-10,     0., 0.0);
+{ 50648} GPH502O +GHO                =       GPH504G +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 50649} GPH502O +GHO                =       GPH502P +      GHO2                                   : ARR( 0.632E-11,     0., 0.0);
+{ 50650} GPH502O +GHO                =       G2P501m                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 50651} GPH502O+HV               =       G1P5028 +      GHO                                    :  0.100E+01*SUN;
+{ 50652} GPH502O+HV               =       G3H503D +      GNO2                                   :  0.100E+01*SUN;
+{ 50653} GPK500W                     =       G3K500g +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 50654} GPK500W +GHO                =       GPD500L +      GHO2                                   : ARR( 0.249E-11,     0., 0.0);
+{ 50655} GPK500W +GHO                =       GPK500c +      GHO2                                   : ARR( 0.637E-11,     0., 0.0);
+{ 50656} GPK500W +GHO                =       GPK500X +      GHO2                                   : ARR( 0.202E-10,     0., 0.0);
+{ 50657} GPK500W+HV               =       G3K2001 +      GPD3001 +      GHO2                    :  0.100E+01*SUN;
+{ 50658} GPK500W+HV               =       G3K500g +      GNO2                                   :  0.100E+01*SUN;
+{ 50659} GPD500E                     =       G3D500I +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 50660} GPD500E +GHO                =       GPD500G +      GHO2                                   : ARR( 0.200E-10,     0., 0.0);
+{ 50661} GPD500E +GHO                =       G2P504F                                               : ARR( 0.274E-11,     0., 0.0);
+{ 50662} GPD500E +GHO                =       G3P500X                                               : ARR( 0.208E-10,     0., 0.0);
+{ 50663} GPD500E +GNO3               =       G3P500X +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 50664} GPD500E+HV               =       G3D4002 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 50665} GPD500E+HV               =       G2P400I +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 50666} G2P504F +GNO                =       G1P505i +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 50667} G2P504F +GNO                =       GPN502o                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 50668} G2P504F +GHO2               =       GPH504x                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 50669} G2P504F +GNO3               =       G1P505i +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 50670} G2P504F +MEPERO             =  0.340G1P505i + 0.330GPD500K + 0.330GPD500N                 : ARR( 0.565E-13,  -845., 0.0);
+{ 50671} G2P504F +PERO1              =  0.460G1P505i + 0.270GPD500K + 0.270GPD500N                 : ARR( 0.434E-13,  -900., 0.0);
+{ 50672} G2P504F +PERO2              =  0.400G1P505i + 0.300GPD500K + 0.300GPD500N                 : ARR( 0.162E-13, -1400., 0.0);
+{ 50673} G2P504F +PERO3              =  0.460G1P505i + 0.270GPD500K + 0.270GPD500N                 : ARR( 0.488E-13, -1250., 0.0);
+{ 50674} G2P504F +PERO5              =  0.460G1P505i + 0.270GPD500K + 0.270GPD500N                 : ARR( 0.183E-11,   450., 0.0);
+{ 50675} G2P504F +PERO6              =  0.300G1P505i + 0.350GPD500K + 0.350GPD500N                 : ARR( 0.168E-13, -1300., 0.0);
+{ 50676} G2P504F +PERO9              =  0.650G1P505i + 0.350GPD500N                                : ARR( 0.100E-10,     0., 0.0);
+{ 50677} G3P500X +GHO2               =  0.800GPG500a + 0.200GPA500j + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 50678} G3P500X +GNO                =       G2P400I +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 50679} G3P500X +GNO2               =       GPP500O                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 50680} G3P500X +GNO3               =       G2P400I +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 50681} G3P500X +MEPERO             =  0.685G2P400I + 0.315GPA500j + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50682} G3P500X +PERO1              =  0.800G2P400I + 0.200GPA500j + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50683} G3P500X +PERO2              =  0.750G2P400I + 0.250GPA500j + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50684} G3P500X +PERO3              =  0.800G2P400I + 0.200GPA500j + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50685} G3P500X +PERO5              =  0.650G2P400I + 0.350GPA500j + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50686} G3P500X +PERO6              =  0.650G2P400I + 0.350GPA500j + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50687} G3P500X +PERO9              =       G2P400I +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 50688} G1P505i                     =       GPD3002 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  4760., 0.0);
+{ 50689} G1P505i                     =       GPD4004 +      GCO     +      GHO2                    : ARR( 0.200E+15,  4861., 0.0);
+{ 50690} GPG5006                     =       G3G500C +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 50691} GPG5006 +GHO                =       GPG5009 +      GHO2                                   : ARR( 0.109E-10,     0., 0.0);
+{ 50692} GPG5006 +GHO                =       GPG500a +      GHO2                                   : ARR( 0.664E-11,     0., 0.0);
+{ 50693} GPG5006 +GHO                =       G3P5005                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 50694} GPG5006+HV               =       G2P400b +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 50695} GPG5006+HV               =       G3G500C +      GNO2                                   :  0.100E+01*SUN;
+{ 50696} GPA5007                     =       G3A500G +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 50697} GPA5007 +GHO                =       GPA500A +      GHO2                                   : ARR( 0.112E-10,     0., 0.0);
+{ 50698} GPA5007 +GHO                =       GPA500j +      GHO2                                   : ARR( 0.683E-11,     0., 0.0);
+{ 50699} GPA5007+HV               =       G3A500G +      GNO2                                   :  0.100E+01*SUN;
+{ 50700} GPP5004                     =       G3P5005 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 50701} GPP5004                     =       G3P500E +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 50702} GPP5004 +GHO                =       GPP5006 +      GHO2                                   : ARR( 0.110E-10,     0., 0.0);
+{ 50703} GPP5004 +GHO                =       GPP500O +      GHO2                                   : ARR( 0.672E-11,     0., 0.0);
+{ 50704} GPP5004+HV               =       G3P5005 +      GNO2                                   :  0.100E+01*SUN;
+{ 50705} GPP5004+HV               =       G3P500E +      GNO2                                   :  0.100E+01*SUN;
+{ 50706} GPD4006                     =       G3D4005 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 50707} GPD4006 +GHO                =       GPD4004 +      GHO2                                   : ARR( 0.200E-10,     0., 0.0);
+{ 50708} GPD4006 +GHO                =       GPD4007 +      GHO2                                   : ARR( 0.632E-11,     0., 0.0);
+{ 50709} GPD4006 +GHO                =       G3P400D                                               : ARR( 0.209E-10,     0., 0.0);
+{ 50710} GPD4006 +GNO3               =       G3P400D +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 50711} GPD4006+HV               =       G3D4005 +      GNO2                                   :  0.100E+01*SUN;
+{ 50712} GPD4006+HV               =       GPD3001 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 50713} G3P400D +GHO2               =  0.800GPG400F + 0.200GPA400I + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 50714} G3P400D +GNO                =       GPD3001 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 50715} G3P400D +GNO2               =       GPP400A                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 50716} G3P400D +GNO3               =       GPD3001 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 50717} G3P400D +MEPERO             =  0.685GPD3001 + 0.315GPA400I + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 50718} G3P400D +PERO1              =  0.800GPD3001 + 0.200GPA400I + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 50719} G3P400D +PERO2              =  0.750GPD3001 + 0.250GPA400I + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 50720} G3P400D +PERO3              =  0.800GPD3001 + 0.200GPA400I + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 50721} G3P400D +PERO5              =  0.650GPD3001 + 0.350GPA400I + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 50722} G3P400D +PERO6              =  0.650GPD3001 + 0.350GPA400I + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 50723} G3P400D +PERO9              =       GPD3001 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 50724} GPN501z                     =       G3N502U +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 50725} GPN501z +GHO                =       GPN502o +      GHO2                                   : ARR( 0.804E-12,     0., 0.0);
+{ 50726} GPN501z +GHO                =       GPK500X +      GNO2                                   : ARR( 0.373E-12,     0., 0.0);
+{ 50727} GPN501z +GHO                =       GPN5027 +      GHO2                                   : ARR( 0.126E-11,     0., 0.0);
+{ 50728} GPN501z +GHO                =       G1P505j                                               : ARR( 0.210E-17,    85., 2.0);
+{ 50729} GPN501z +GHO                =       G1P503i                                               : ARR( 0.210E-17,    85., 2.0);
+{ 50730} GPN501z+HV               =       G1P5029 +      GNO2                                   :  0.100E+01*SUN;
+{ 50731} GPN501z+HV               =       G3N400E +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 50732} G1P505j +OXYGEN             =       GPN502o +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 50733} G1P505j                     =       GPD4004 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7175., 0.0);
+{ 50734} GPH502P                     =       G3H5041 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 50735} GPH502P +GHO                =       GPK500X +      GHO                                    : ARR( 0.145E-09,     0., 0.0);
+{ 50736} GPH502P+HV               =       G1P5029 +      GHO                                    :  0.100E+01*SUN;
+{ 50737} GPH502P+HV               =       G3H400B +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 50738} G3H5041 +GHO2               =  0.800GGH5027 + 0.200GAH503Q + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 50739} G3H5041 +GNO                =       G3H400B +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 50740} G3H5041 +GNO2               =       GPH502P                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 50741} G3H5041 +GNO3               =       G3H400B +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 50742} G3H5041 +MEPERO             =  0.685G3H400B + 0.315GAH503Q + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50743} G3H5041 +PERO1              =  0.800G3H400B + 0.200GAH503Q + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50744} G3H5041 +PERO2              =  0.750G3H400B + 0.250GAH503Q + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50745} G3H5041 +PERO3              =  0.800G3H400B + 0.200GAH503Q + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50746} G3H5041 +PERO5              =  0.650G3H400B + 0.350GAH503Q + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50747} G3H5041 +PERO6              =  0.650G3H400B + 0.350GAH503Q + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50748} G3H5041 +PERO9              =       G3H400B +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 50749} GPK500X                     =       G3K500n +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 50750} GPK500X +GHO                =       GPD500N +      GHO2                                   : ARR( 0.256E-11,     0., 0.0);
+{ 50751} GPK500X +GHO                =       GPK500b +      GHO2                                   : ARR( 0.400E-11,     0., 0.0);
+{ 50752} GPK500X+HV               =       G3K2001 +      GPD3002 +      GHO2                    :  0.100E+01*SUN;
+{ 50753} GPK500X+HV               =       G3K400C +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 50754} GGG5003 +GHO                =       G2G5037                                               : ARR( 0.105E-11,     0., 0.0);
+{ 50755} GGG5003 +GHO                =       G3G5004                                               : ARR( 0.380E-11,  -190., 0.0);
+{ 50756} GGG5003+HV               =  0.500G2G400N + 0.500GHO                                    :  0.100E+01*SUN;
+{ 50757} GGG5003+HV               =       G3G3000 +      G2G2000                                :  0.100E+01*SUN;
+{ 50758} GGG5003+HV               =       G2G400N +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 50759} G2G5037 +GNO                =       G1G504A +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 50760} G2G5037 +GNO                =       GGG500J                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 50761} G2G5037 +GHO2               =       GGG500K                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 50762} G2G5037 +GNO3               =       G1G504A +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 50763} G2G5037 +MEPERO             =  0.340G1G504A + 0.330GGG5004 + 0.330GGG500L                 : ARR( 0.565E-13,  -845., 0.0);
+{ 50764} G2G5037 +PERO1              =  0.460G1G504A + 0.270GGG5004 + 0.270GGG500L                 : ARR( 0.434E-13,  -900., 0.0);
+{ 50765} G2G5037 +PERO2              =  0.400G1G504A + 0.300GGG5004 + 0.300GGG500L                 : ARR( 0.162E-13, -1400., 0.0);
+{ 50766} G2G5037 +PERO3              =  0.460G1G504A + 0.270GGG5004 + 0.270GGG500L                 : ARR( 0.488E-13, -1250., 0.0);
+{ 50767} G2G5037 +PERO5              =  0.460G1G504A + 0.270GGG5004 + 0.270GGG500L                 : ARR( 0.183E-11,   450., 0.0);
+{ 50768} G2G5037 +PERO6              =  0.300G1G504A + 0.350GGG5004 + 0.350GGG500L                 : ARR( 0.168E-13, -1300., 0.0);
+{ 50769} G2G5037 +PERO9              =  0.650G1G504A + 0.350GGG500L                                : ARR( 0.100E-10,     0., 0.0);
+{ 50770} G1G504A                     =       G3G3000 +      GGD2000                                : ARR( 0.200E+15,  5308., 0.0);
+{ 50771} GAG5007 +GHO                =       G2A5044                                               : ARR( 0.389E-12,     0., 0.0);
+{ 50772} GAG5007 +GHO                =       G2A5045                                               : ARR( 0.525E-12,     0., 0.0);
+{ 50773} GAG5007 +GHO                =       G3A5006                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 50774} GAG5007 +GHO                =       G2G400N +      GCO2                                   : ARR( 0.520E-12,     0., 0.0);
+{ 50775} GAG5007+HV               =       G3A3000 +      G2G2000                                :  0.100E+01*SUN;
+{ 50776} GAG5007+HV               =       G2A400B +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 50777} G2A5044 +GNO                =       G1A505J +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 50778} G2A5044 +GNO                =       GAG500b                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 50779} G2A5044 +GHO2               =       GAG500c                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 50780} G2A5044 +GNO3               =       G1A505J +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 50781} G2A5044 +MEPERO             =  0.340G1A505J + 0.330GAG5009 + 0.330GAG500d                 : ARR( 0.565E-13,  -845., 0.0);
+{ 50782} G2A5044 +PERO1              =  0.460G1A505J + 0.270GAG5009 + 0.270GAG500d                 : ARR( 0.434E-13,  -900., 0.0);
+{ 50783} G2A5044 +PERO2              =  0.400G1A505J + 0.300GAG5009 + 0.300GAG500d                 : ARR( 0.162E-13, -1400., 0.0);
+{ 50784} G2A5044 +PERO3              =  0.460G1A505J + 0.270GAG5009 + 0.270GAG500d                 : ARR( 0.488E-13, -1250., 0.0);
+{ 50785} G2A5044 +PERO5              =  0.460G1A505J + 0.270GAG5009 + 0.270GAG500d                 : ARR( 0.183E-11,   450., 0.0);
+{ 50786} G2A5044 +PERO6              =  0.300G1A505J + 0.350GAG5009 + 0.350GAG500d                 : ARR( 0.168E-13, -1300., 0.0);
+{ 50787} G2A5044 +PERO9              =  0.650G1A505J + 0.350GAG500d                                : ARR( 0.100E-10,     0., 0.0);
+{ 50788} G2A5045 +GNO                =       G1A505K +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 50789} G2A5045 +GNO                =       GAG500e                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 50790} G2A5045 +GHO2               =       GAG500f                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 50791} G2A5045 +GNO3               =       G1A505K +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 50792} G2A5045 +MEPERO             =  0.340G1A505K + 0.330GAG5008 + 0.330GAG500g                 : ARR( 0.565E-13,  -845., 0.0);
+{ 50793} G2A5045 +PERO1              =  0.460G1A505K + 0.270GAG5008 + 0.270GAG500g                 : ARR( 0.434E-13,  -900., 0.0);
+{ 50794} G2A5045 +PERO2              =  0.400G1A505K + 0.300GAG5008 + 0.300GAG500g                 : ARR( 0.162E-13, -1400., 0.0);
+{ 50795} G2A5045 +PERO3              =  0.460G1A505K + 0.270GAG5008 + 0.270GAG500g                 : ARR( 0.488E-13, -1250., 0.0);
+{ 50796} G2A5045 +PERO5              =  0.460G1A505K + 0.270GAG5008 + 0.270GAG500g                 : ARR( 0.183E-11,   450., 0.0);
+{ 50797} G2A5045 +PERO6              =  0.300G1A505K + 0.350GAG5008 + 0.350GAG500g                 : ARR( 0.168E-13, -1300., 0.0);
+{ 50798} G2A5045 +PERO9              =  0.650G1A505K + 0.350GAG500g                                : ARR( 0.100E-10,     0., 0.0);
+{ 50799} G1A505J                     =       GAD2000 +      G3G3000                                : ARR( 0.200E+15,  5308., 0.0);
+{ 50800} G1A505K                     =       G3A3000 +      GGD2000                                : ARR( 0.200E+15,  5308., 0.0);
+{ 50801} GPG5007                     =       G3G5004 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 50802} GPG5007 +GHO                =       G2P504G                                               : ARR( 0.525E-12,     0., 0.0);
+{ 50803} GPG5007 +GHO                =       G2P504H                                               : ARR( 0.525E-12,     0., 0.0);
+{ 50804} GPG5007 +GHO                =       G3P5006                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 50805} GPG5007+HV               =  0.500G2P400C + 0.500GHO                                    :  0.100E+01*SUN;
+{ 50806} GPG5007+HV               =       G3G3000 +      G2P2000                                :  0.100E+01*SUN;
+{ 50807} GPG5007+HV               =       G3G5004 +      GNO2                                   :  0.100E+01*SUN;
+{ 50808} G2P504G +GNO                =       G1P505k +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 50809} G2P504G +GNO                =       GPG500b                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 50810} G2P504G +GHO2               =       GPG500c                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 50811} G2P504G +GNO3               =       G1P505k +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 50812} G2P504G +MEPERO             =  0.340G1P505k + 0.330GPG5008 + 0.330GPG500d                 : ARR( 0.565E-13,  -845., 0.0);
+{ 50813} G2P504G +PERO1              =  0.460G1P505k + 0.270GPG5008 + 0.270GPG500d                 : ARR( 0.434E-13,  -900., 0.0);
+{ 50814} G2P504G +PERO2              =  0.400G1P505k + 0.300GPG5008 + 0.300GPG500d                 : ARR( 0.162E-13, -1400., 0.0);
+{ 50815} G2P504G +PERO3              =  0.460G1P505k + 0.270GPG5008 + 0.270GPG500d                 : ARR( 0.488E-13, -1250., 0.0);
+{ 50816} G2P504G +PERO5              =  0.460G1P505k + 0.270GPG5008 + 0.270GPG500d                 : ARR( 0.183E-11,   450., 0.0);
+{ 50817} G2P504G +PERO6              =  0.300G1P505k + 0.350GPG5008 + 0.350GPG500d                 : ARR( 0.168E-13, -1300., 0.0);
+{ 50818} G2P504G +PERO9              =  0.650G1P505k + 0.350GPG500d                                : ARR( 0.100E-10,     0., 0.0);
+{ 50819} G2P504H +GNO                =       G1P505l +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 50820} G2P504H +GNO                =       GPG500e                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 50821} G2P504H +GHO2               =       GPG500f                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 50822} G2P504H +GNO3               =       G1P505l +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 50823} G2P504H +MEPERO             =  0.340G1P505l + 0.330GPG5009 + 0.330GPG500g                 : ARR( 0.565E-13,  -845., 0.0);
+{ 50824} G2P504H +PERO1              =  0.460G1P505l + 0.270GPG5009 + 0.270GPG500g                 : ARR( 0.434E-13,  -900., 0.0);
+{ 50825} G2P504H +PERO2              =  0.400G1P505l + 0.300GPG5009 + 0.300GPG500g                 : ARR( 0.162E-13, -1400., 0.0);
+{ 50826} G2P504H +PERO3              =  0.460G1P505l + 0.270GPG5009 + 0.270GPG500g                 : ARR( 0.488E-13, -1250., 0.0);
+{ 50827} G2P504H +PERO5              =  0.460G1P505l + 0.270GPG5009 + 0.270GPG500g                 : ARR( 0.183E-11,   450., 0.0);
+{ 50828} G2P504H +PERO6              =  0.300G1P505l + 0.350GPG5009 + 0.350GPG500g                 : ARR( 0.168E-13, -1300., 0.0);
+{ 50829} G2P504H +PERO9              =  0.650G1P505l + 0.350GPG500g                                : ARR( 0.100E-10,     0., 0.0);
+{ 50830} G1P505k                     =       GGD2000 +      G3P3000                                : ARR( 0.200E+15,  5308., 0.0);
+{ 50831} G1P505l                     =       G3G3000 +      GPD2000                                : ARR( 0.200E+15,  5308., 0.0);
+{ 50832} GGN501h +GHO                =       G3N501N                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 50833} GGN501h+HV               =       G1G501g +      GNO2                                   :  0.100E+01*SUN;
+{ 50834} GGN501h+HV               =       G3N3001 +      GGD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 50835} GGN501h+HV               =       G1G501d +      GNO2                                   :  0.100E+01*SUN;
+{ 50836} GGN501h+HV               =       GND400I +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 50837} GGH5028 +GHO                =       GGN501j +      GHO                                    : ARR( 0.154E-10,     0., 0.0);
+{ 50838} GGH5028 +GHO                =       G2G501M                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 50839} GGH5028 +GHO                =       G3H501q                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 50840} GGH5028+HV               =       G1G504B +      GNO2                                   :  0.100E+01*SUN;
+{ 50841} GGH5028+HV               =       G3N3001 +      GGD2000 +      GHO                     :  0.100E+01*SUN;
+{ 50842} GGH5028+HV               =       G1G501d +      GHO                                    :  0.100E+01*SUN;
+{ 50843} GGH5028+HV               =       GND400I +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 50844} G1G504B                     =       GD02000 +      G3G3003                                : ARR( 0.200E+15,  3523., 0.0);
+{ 50845} GGN501i +GHO                =       GGN501j +      GHO2                                   : ARR( 0.395E-11,     0., 0.0);
+{ 50846} GGN501i +GHO                =       G3N501T                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 50847} GGN501i+HV               =       G1G501i +      GNO2                                   :  0.100E+01*SUN;
+{ 50848} GGN501i+HV               =       G3N3001 +      GGD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 50849} GGN501i+HV               =       GND400I +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 50850} GGN501j +GHO                =       G3N502W                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 50851} GGN501j+HV               =       G1G501k +      GNO2                                   :  0.100E+01*SUN;
+{ 50852} GGN501j+HV               =       G3N3001 +      GCO     +      GHO2    +      GCO      :  0.100E+01*SUN;
+{ 50853} GGN501j+HV               =       GAN400H +      GCO2                                   :  0.100E+01*SUN;
+{ 50854} G3N502W +GHO2               =  0.800GGN501j + 0.200GAN501w + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 50855} G3N502W +GNO                =       G3N3001 +      GNO2    +      GCO2    +      GCO      : ARR( 0.810E-11,  -270., 0.0);
+{ 50856} G3N502W +GNO2               =       GPN5024                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 50857} G3N502W +GNO3               =       G3N3001 +      GNO2    +      GCO2    +      GCO      : ARR( 0.500E-11,     0., 0.0);
+{ 50858} G3N502W +MEPERO             =  0.685G3N3001 + 0.315GAN501w + 0.685GCO2    + 0.685GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 50859} G3N502W +PERO1              =  0.800G3N3001 + 0.200GAN501w + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 50860} G3N502W +PERO2              =  0.750G3N3001 + 0.250GAN501w + 0.750GCO2    + 0.750GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 50861} G3N502W +PERO3              =  0.800G3N3001 + 0.200GAN501w + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 50862} G3N502W +PERO5              =  0.650G3N3001 + 0.350GAN501w + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 50863} G3N502W +PERO6              =  0.650G3N3001 + 0.350GAN501w + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 50864} G3N502W +PERO9              =       G3N3001 +      GCO2    +      GCO                     : ARR( 0.500E-11,  -500., 0.0);
+{ 50865} GGN501k +GHO                =       G3N501P                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 50866} GGN501k+HV               =       G3K2000 +      G3G3001                                :  0.100E+01*SUN;
+{ 50867} GGN501k+HV               =       G1G501e +      GNO2                                   :  0.100E+01*SUN;
+{ 50868} GGN501k+HV               =       GDK4008 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 50869} GGH5029 +GHO                =       GGK500Z +      GHO                                    : ARR( 0.154E-10,     0., 0.0);
+{ 50870} GGH5029 +GHO                =       G2G501N                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 50871} GGH5029 +GHO                =       G3H501r                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 50872} GGH5029+HV               =       G3K2000 +      G3G3003                                :  0.100E+01*SUN;
+{ 50873} GGH5029+HV               =       G1G501e +      GHO                                    :  0.100E+01*SUN;
+{ 50874} GGH5029+HV               =       GDK4008 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 50875} GGK500Y +GHO                =       GGK500Z +      GHO2                                   : ARR( 0.396E-11,     0., 0.0);
+{ 50876} GGK500Y +GHO                =       G3K500e                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 50877} GGK500Y+HV               =       G3K2000 +      G3G3002                                :  0.100E+01*SUN;
+{ 50878} GGK500Y+HV               =       GDK4008 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 50879} GGK500Z +GHO                =       G3K500o                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 50880} GGK500Z+HV               =       G3K2000 +      GCO     +      GHO2    + 2.000GCO      :  0.100E+01*SUN;
+{ 50881} GGK500Z+HV               =       G3K2000 +      GCO     + 2.000GCO     +      GHO2     :  0.100E+01*SUN;
+{ 50882} GGK500Z+HV               =       GAK4006 +      GCO2                                   :  0.100E+01*SUN;
+{ 50883} G3K500o +GHO2               =  0.800GGK500Z + 0.200GAK500U + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 50884} G3K500o +GNO                =       G3K2000 +      GNO2    +      GCO2    + 2.000GCO      : ARR( 0.810E-11,  -270., 0.0);
+{ 50885} G3K500o +GNO2               =       GPK500Z                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 50886} G3K500o +GNO3               =       G3K2000 +      GNO2    +      GCO2    + 2.000GCO      : ARR( 0.500E-11,     0., 0.0);
+{ 50887} G3K500o +MEPERO             =  0.685G3K2000 + 0.315GAK500U + 0.685GCO2    + 1.370GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 50888} G3K500o +PERO1              =  0.800G3K2000 + 0.200GAK500U + 0.800GCO2    + 1.600GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 50889} G3K500o +PERO2              =  0.750G3K2000 + 0.250GAK500U + 0.750GCO2    + 1.500GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 50890} G3K500o +PERO3              =  0.800G3K2000 + 0.200GAK500U + 0.800GCO2    + 1.600GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 50891} G3K500o +PERO5              =  0.650G3K2000 + 0.350GAK500U + 0.650GCO2    + 1.300GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 50892} G3K500o +PERO6              =  0.650G3K2000 + 0.350GAK500U + 0.650GCO2    + 1.300GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 50893} G3K500o +PERO9              =       G3K2000 +      GCO2    + 2.000GCO                     : ARR( 0.500E-11,  -500., 0.0);
+{ 50894} GGH502A +GHO                =       GGN501l +      GHO                                    : ARR( 0.518E-10,     0., 0.0);
+{ 50895} GGH502A +GHO                =       G2G501O                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 50896} GGH502A +GHO                =       G3H502y                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 50897} GGH502A+HV               =       G1G501f +      GHO                                    :  0.100E+01*SUN;
+{ 50898} GGH502A+HV               =       G3H3000 +      GGD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 50899} GGH502A+HV               =       G1G504C +      GNO2                                   :  0.100E+01*SUN;
+{ 50900} GGH502A+HV               =       GHD400D +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 50901} G1G504C                     =       GGD5005 +      GHO                                    : ARR( 0.160E+12,  3634., 0.0);
+{ 50902} G1G504C                     =       G3H3000 +      GGD2000                                : ARR( 0.200E+15,  5332., 0.0);
+{ 50903} GGN501l +GHO                =       G3G500S                                               : ARR( 0.664E-10,     0., 0.0);
+{ 50904} GGN501l +GHO                =       G3N501r                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 50905} GGN501l +GNO3               =       G3G500S +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 50906} GGN501l+HV               =       GDD4002 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 50907} GGN501l+HV               =       G1G504D +      GNO2                                   :  0.100E+01*SUN;
+{ 50908} GGN501l+HV               =       G3G3001 +      G2D2000                                :  0.100E+01*SUN;
+{ 50909} GGN501l+HV               =       G2G400o +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 50910} G3G500S +GHO2               =  0.800GGG500J + 0.200GAG500e + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 50911} G3G500S +GNO                =       G2G400o +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 50912} G3G500S +GNO2               =       GPG500b                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 50913} G3G500S +GNO3               =       G2G400o +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 50914} G3G500S +MEPERO             =  0.685G2G400o + 0.315GAG500e + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50915} G3G500S +PERO1              =  0.800G2G400o + 0.200GAG500e + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50916} G3G500S +PERO2              =  0.750G2G400o + 0.250GAG500e + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50917} G3G500S +PERO3              =  0.800G2G400o + 0.200GAG500e + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50918} G3G500S +PERO5              =  0.650G2G400o + 0.350GAG500e + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50919} G3G500S +PERO6              =  0.650G2G400o + 0.350GAG500e + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 50920} G3G500S +PERO9              =       G2G400o +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 50921} G1G504D                     =       GGD2000 +      G3D3000                                : ARR( 0.200E+15,  5308., 0.0);
+{ 50922} G2G400o +GNO                =       G1G400l +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 50923} G2G400o +GNO                =       GGN400O                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 50924} G2G400o +GHO2               =       GGH400u                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 50925} G2G400o +GNO3               =       G1G400l +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 50926} G2G400o +MEPERO             =  0.480G1G400l + 0.260GGN400S + 0.260GGN400Z                 : ARR( 0.164E-12,  -795., 0.0);
+{ 50927} G2G400o +PERO1              =  0.600G1G400l + 0.200GGN400S + 0.200GGN400Z                 : ARR( 0.126E-12,  -850., 0.0);
+{ 50928} G2G400o +PERO2              =  0.560G1G400l + 0.220GGN400S + 0.220GGN400Z                 : ARR( 0.471E-13, -1350., 0.0);
+{ 50929} G2G400o +PERO3              =  0.600G1G400l + 0.200GGN400S + 0.200GGN400Z                 : ARR( 0.142E-12, -1200., 0.0);
+{ 50930} G2G400o +PERO5              =  0.600G1G400l + 0.200GGN400S + 0.200GGN400Z                 : ARR( 0.533E-11,   500., 0.0);
+{ 50931} G2G400o +PERO6              =  0.460G1G400l + 0.270GGN400S + 0.270GGN400Z                 : ARR( 0.488E-13, -1250., 0.0);
+{ 50932} G2G400o +PERO9              =  0.800G1G400l + 0.200GGN400Z                                : ARR( 0.100E-10,     0., 0.0);
+{ 50933} GGH502B +GHO                =       GGN501k +      GHO                                    : ARR( 0.209E-10,     0., 0.0);
+{ 50934} GGH502B +GHO                =       G2G501P                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 50935} GGH502B +GHO                =       G3H5031                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 50936} GGH502B+HV               =       G1G501g +      GHO                                    :  0.100E+01*SUN;
+{ 50937} GGH502B+HV               =       G3H3001 +      GGD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 50938} GGH502B+HV               =       G1G504E +      GNO2                                   :  0.100E+01*SUN;
+{ 50939} GGH502B+HV               =       GHD400I +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 50940} G1G504E                     =       G3H3001 +      GGD2000                                : ARR( 0.200E+15,  5359., 0.0);
+{ 50941} GGG3001 +GHO                =       G3G3001                                               : ARR( 0.382E-11,  -190., 0.0);
+{ 50942} GGG3001+HV               =       GGD2000 +      GHO     +      GNO2    +      GCO2     :  0.200E+01*SUN;
+{ 50943} GGG3001+HV               =       G1G3008 +      GNO2                                   :  0.100E+01*SUN;
+{ 50944} GAG3001 +GHO                =       G3A3001                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 50945} GAG3001 +GHO                =       GGD2000 +      GNO2    +      GCO2                    : ARR( 0.524E-12,     0., 0.0);
+{ 50946} GAG3001+HV               =       G1A3009 +      GNO2                                   :  0.100E+01*SUN;
+{ 50947} GAG3001+HV               =       GAD2000 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 50948} GPG3001                     =       G3G3001 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 50949} GPG3001 +GHO                =       G3P3001                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 50950} GPG3001+HV               =       GPD2000 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 50951} GPG3001+HV               =       G1P3009 +      GNO2                                   :  0.100E+01*SUN;
+{ 50952} GPG3001+HV               =       G3G3001 +      GNO2                                   :  0.100E+01*SUN;
+{ 50953} GGH502C +GHO                =       GGK500Y +      GHO                                    : ARR( 0.209E-10,     0., 0.0);
+{ 50954} GGH502C +GHO                =       GGH502E +      GHO2                                   : ARR( 0.391E-11,     0., 0.0);
+{ 50955} GGH502C +GHO                =       G2G501R                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 50956} GGH502C +GHO                =       G3H5037                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 50957} GGH502C+HV               =       G1G501i +      GHO                                    :  0.100E+01*SUN;
+{ 50958} GGH502C+HV               =       G3H3001 +      GGD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 50959} GGH502C+HV               =       GHD400I +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 50960} GGG3002 +GHO                =       GGG3004 +      GHO2                                   : ARR( 0.388E-11,     0., 0.0);
+{ 50961} GGG3002 +GHO                =       G3G3002                                               : ARR( 0.385E-11,  -190., 0.0);
+{ 50962} GGG3002+HV               =       GGD2000 +      GHO     +      GHO2    +      GCO2     :  0.200E+01*SUN;
+{ 50963} GAG3002 +GHO                =       GAG3004 +      GHO2                                   : ARR( 0.289E-11,     0., 0.0);
+{ 50964} GAG3002 +GHO                =       G3A3002                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 50965} GAG3002 +GHO                =       GGD2000 +      GHO2    +      GCO2                    : ARR( 0.530E-12,     0., 0.0);
+{ 50966} GAG3002+HV               =       GAD2000 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 50967} GPG3002                     =       G3G3002 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 50968} GPG3002 +GHO                =       GPG3004 +      GHO2                                   : ARR( 0.390E-11,     0., 0.0);
+{ 50969} GPG3002 +GHO                =       G3P3002                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 50970} GPG3002+HV               =       GPD2000 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 50971} GPG3002+HV               =       G3G3002 +      GNO2                                   :  0.100E+01*SUN;
+{ 50972} GGH502D +GHO                =       GGD500F +      GHO                                    : ARR( 0.518E-10,     0., 0.0);
+{ 50973} GGH502D +GHO                =       G2G501S                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 50974} GGH502D +GHO                =       G3H5042                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 50975} GGH502D+HV               =       G1G501j +      GHO                                    :  0.100E+01*SUN;
+{ 50976} GGH502D+HV               =       G3H3000 +      GCO     +      GHO2    +      GCO      :  0.100E+01*SUN;
+{ 50977} GGH502D+HV               =       GAH400Y +      GCO2                                   :  0.100E+01*SUN;
+{ 50978} G3H5042 +GHO2               =  0.800GGH502D + 0.200GAH502R + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 50979} G3H5042 +GNO                =       G3H3000 +      GNO2    +      GCO2    +      GCO      : ARR( 0.810E-11,  -270., 0.0);
+{ 50980} G3H5042 +GNO2               =       GPH502Z                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 50981} G3H5042 +GNO3               =       G3H3000 +      GNO2    +      GCO2    +      GCO      : ARR( 0.500E-11,     0., 0.0);
+{ 50982} G3H5042 +MEPERO             =  0.685G3H3000 + 0.315GAH502R + 0.685GCO2    + 0.685GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 50983} G3H5042 +PERO1              =  0.800G3H3000 + 0.200GAH502R + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 50984} G3H5042 +PERO2              =  0.750G3H3000 + 0.250GAH502R + 0.750GCO2    + 0.750GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 50985} G3H5042 +PERO3              =  0.800G3H3000 + 0.200GAH502R + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 50986} G3H5042 +PERO5              =  0.650G3H3000 + 0.350GAH502R + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 50987} G3H5042 +PERO6              =  0.650G3H3000 + 0.350GAH502R + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 50988} G3H5042 +PERO9              =       G3H3000 +      GCO2    +      GCO                     : ARR( 0.500E-11,  -500., 0.0);
+{ 50989} GGD500F +GHO                =       G3G500T                                               : ARR( 0.664E-10,     0., 0.0);
+{ 50990} GGD500F +GHO                =       G3D500J                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 50991} GGD500F +GNO3               =       G3G500T +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 50992} GGD500F+HV               =       GAD4005 +      GCO2                                   :  0.100E+01*SUN;
+{ 50993} GGD500F+HV               =       GCO     +      G3D3000 +      GHO2    +      GCO      :  0.100E+01*SUN;
+{ 50994} GGD500F+HV               =       G2G400p +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 50995} G3G500T +GHO2               =  0.800GGG500L + 0.200GAG500g + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 50996} G3G500T +GNO                =       G2G400p +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 50997} G3G500T +GNO2               =       GPG500d                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 50998} G3G500T +GNO3               =       G2G400p +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 50999} G3G500T +MEPERO             =  0.685G2G400p + 0.315GAG500g + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 51000} G3G500T +PERO1              =  0.800G2G400p + 0.200GAG500g + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 51001} G3G500T +PERO2              =  0.750G2G400p + 0.250GAG500g + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 51002} G3G500T +PERO3              =  0.800G2G400p + 0.200GAG500g + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 51003} G3G500T +PERO5              =  0.650G2G400p + 0.350GAG500g + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 51004} G3G500T +PERO6              =  0.650G2G400p + 0.350GAG500g + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 51005} G3G500T +PERO9              =       G2G400p +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 51006} G3D500J +GHO2               =  0.800GGD500F + 0.200GAD500H + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 51007} G3D500J +GNO                =       G3D3000 +      GNO2    +      GCO2    +      GCO      : ARR( 0.810E-11,  -270., 0.0);
+{ 51008} G3D500J +GNO2               =       GPD500G                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 51009} G3D500J +GNO3               =       G3D3000 +      GNO2    +      GCO2    +      GCO      : ARR( 0.500E-11,     0., 0.0);
+{ 51010} G3D500J +MEPERO             =  0.685G3D3000 + 0.315GAD500H + 0.685GCO2    + 0.685GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 51011} G3D500J +PERO1              =  0.800G3D3000 + 0.200GAD500H + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 51012} G3D500J +PERO2              =  0.750G3D3000 + 0.250GAD500H + 0.750GCO2    + 0.750GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 51013} G3D500J +PERO3              =  0.800G3D3000 + 0.200GAD500H + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 51014} G3D500J +PERO5              =  0.650G3D3000 + 0.350GAD500H + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 51015} G3D500J +PERO6              =  0.650G3D3000 + 0.350GAD500H + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 51016} G3D500J +PERO9              =       G3D3000 +      GCO2    +      GCO                     : ARR( 0.500E-11,  -500., 0.0);
+{ 51017} G2G400p +GNO                =       G1G400o +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 51018} G2G400p +GNO                =       GGN400R                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 51019} G2G400p +GHO2               =       GGH400h                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 51020} G2G400p +GNO3               =       G1G400o +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 51021} G2G400p +MEPERO             =  0.480G1G400o + 0.260GGK4009 + 0.260GGD4008                 : ARR( 0.164E-12,  -795., 0.0);
+{ 51022} G2G400p +PERO1              =  0.600G1G400o + 0.200GGK4009 + 0.200GGD4008                 : ARR( 0.126E-12,  -850., 0.0);
+{ 51023} G2G400p +PERO2              =  0.560G1G400o + 0.220GGK4009 + 0.220GGD4008                 : ARR( 0.471E-13, -1350., 0.0);
+{ 51024} G2G400p +PERO3              =  0.600G1G400o + 0.200GGK4009 + 0.200GGD4008                 : ARR( 0.142E-12, -1200., 0.0);
+{ 51025} G2G400p +PERO5              =  0.600G1G400o + 0.200GGK4009 + 0.200GGD4008                 : ARR( 0.533E-11,   500., 0.0);
+{ 51026} G2G400p +PERO6              =  0.460G1G400o + 0.270GGK4009 + 0.270GGD4008                 : ARR( 0.488E-13, -1250., 0.0);
+{ 51027} G2G400p +PERO9              =  0.800G1G400o + 0.200GGD4008                                : ARR( 0.100E-10,     0., 0.0);
+{ 51028} GGH502E +GHO                =       GGK500Z +      GHO                                    : ARR( 0.208E-10,     0., 0.0);
+{ 51029} GGH502E +GHO                =       G2G501T                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 51030} GGH502E +GHO                =       G3H5043                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 51031} GGH502E+HV               =       G1G501k +      GHO                                    :  0.100E+01*SUN;
+{ 51032} GGH502E+HV               =       G3H3001 +      GCO     +      GHO2    +      GCO      :  0.100E+01*SUN;
+{ 51033} GGH502E+HV               =       GAH400Z +      GCO2                                   :  0.100E+01*SUN;
+{ 51034} G3H5043 +GHO2               =  0.800GGH502E + 0.200GAH502S + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 51035} G3H5043 +GNO                =       G3H3001 +      GNO2    +      GCO2    +      GCO      : ARR( 0.810E-11,  -270., 0.0);
+{ 51036} G3H5043 +GNO2               =       GPH502a                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 51037} G3H5043 +GNO3               =       G3H3001 +      GNO2    +      GCO2    +      GCO      : ARR( 0.500E-11,     0., 0.0);
+{ 51038} G3H5043 +MEPERO             =  0.685G3H3001 + 0.315GAH502S + 0.685GCO2    + 0.685GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 51039} G3H5043 +PERO1              =  0.800G3H3001 + 0.200GAH502S + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 51040} G3H5043 +PERO2              =  0.750G3H3001 + 0.250GAH502S + 0.750GCO2    + 0.750GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 51041} G3H5043 +PERO3              =  0.800G3H3001 + 0.200GAH502S + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 51042} G3H5043 +PERO5              =  0.650G3H3001 + 0.350GAH502S + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 51043} G3H5043 +PERO6              =  0.650G3H3001 + 0.350GAH502S + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 51044} G3H5043 +PERO9              =       G3H3001 +      GCO2    +      GCO                     : ARR( 0.500E-11,  -500., 0.0);
+{ 51045} GGH502F +GHO                =       GGD500F +      GHO                                    : ARR( 0.168E-10,     0., 0.0);
+{ 51046} GGH502F +GHO                =       G3G500U                                               : ARR( 0.721E-10,     0., 0.0);
+{ 51047} GGH502F +GNO3               =       G3G500U +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 51048} GGH502F+HV               =       GDD4002 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 51049} GGH502F+HV               =       G1G504D +      GHO                                    :  0.100E+01*SUN;
+{ 51050} GGH502F+HV               =       G3G3003 +      G2D2000                                :  0.100E+01*SUN;
+{ 51051} GGH502F+HV               =       G2G400q +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 51052} G3G500U +GHO2               =  0.800GGG500K + 0.200GAG500f + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 51053} G3G500U +GNO                =       G2G400q +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 51054} G3G500U +GNO2               =       GPG500c                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 51055} G3G500U +GNO3               =       G2G400q +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 51056} G3G500U +MEPERO             =  0.685G2G400q + 0.315GAG500f + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 51057} G3G500U +PERO1              =  0.800G2G400q + 0.200GAG500f + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 51058} G3G500U +PERO2              =  0.750G2G400q + 0.250GAG500f + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 51059} G3G500U +PERO3              =  0.800G2G400q + 0.200GAG500f + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 51060} G3G500U +PERO5              =  0.650G2G400q + 0.350GAG500f + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 51061} G3G500U +PERO6              =  0.650G2G400q + 0.350GAG500f + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 51062} G3G500U +PERO9              =       G2G400q +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 51063} G2G400q +GNO                =       G1G400n +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 51064} G2G400q +GNO                =       GGH400L                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 51065} G2G400q +GHO2               =       GGH400m                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 51066} G2G400q +GNO3               =       G1G400n +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 51067} G2G400q +MEPERO             =  0.480G1G400n + 0.260GGH400Z + 0.260GGH400s                 : ARR( 0.164E-12,  -795., 0.0);
+{ 51068} G2G400q +PERO1              =  0.600G1G400n + 0.200GGH400Z + 0.200GGH400s                 : ARR( 0.126E-12,  -850., 0.0);
+{ 51069} G2G400q +PERO2              =  0.560G1G400n + 0.220GGH400Z + 0.220GGH400s                 : ARR( 0.471E-13, -1350., 0.0);
+{ 51070} G2G400q +PERO3              =  0.600G1G400n + 0.200GGH400Z + 0.200GGH400s                 : ARR( 0.142E-12, -1200., 0.0);
+{ 51071} G2G400q +PERO5              =  0.600G1G400n + 0.200GGH400Z + 0.200GGH400s                 : ARR( 0.533E-11,   500., 0.0);
+{ 51072} G2G400q +PERO6              =  0.460G1G400n + 0.270GGH400Z + 0.270GGH400s                 : ARR( 0.488E-13, -1250., 0.0);
+{ 51073} G2G400q +PERO9              =  0.800G1G400n + 0.200GGH400s                                : ARR( 0.100E-10,     0., 0.0);
+{ 51074} GGG3003 +GHO                =       GGG3004 +      GHO                                    : ARR( 0.153E-10,     0., 0.0);
+{ 51075} GGG3003 +GHO                =       G3G3003                                               : ARR( 0.380E-11,  -190., 0.0);
+{ 51076} GGG3003 +GHO                =       G2G3007                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 51077} GGG3003+HV               =       GGD2000 +      GHO     +      GHO     +      GCO2     :  0.200E+01*SUN;
+{ 51078} GGG3003+HV               =       G1G3008 +      GHO                                    :  0.100E+01*SUN;
+{ 51079} GGG3004 +GHO                =       G3G3004                                               : ARR( 0.380E-11,  -190., 0.0);
+{ 51080} GGG3004+HV               =       GAG2000 +      GCO2                                   :  0.200E+01*SUN;
+{ 51081} G3G3004 +GHO2               =  0.800GGG3004 + 0.200GAG3004 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 51082} G3G3004 +GNO                =  2.000GCO     + 2.000GNO2    + 2.000GHO2    + 2.000GCO2     : ARR( 0.405E-11,  -270., 0.0);
+{ 51083} G3G3004 +GNO                =  2.000GCO                                                   : ARR( 0.405E-11,  -270., 0.0);
+{ 51084} G3G3004 +GNO2               =       GPG3004                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 51085} G3G3004 +GNO3               =  2.000GCO     + 2.000GNO2    + 2.000GHO2    + 2.000GCO2     : ARR( 0.250E-11,     0., 0.0);
+{ 51086} G3G3004 +GNO3               =  2.000GCO                                                   : ARR( 0.250E-11,     0., 0.0);
+{ 51087} G3G3004 +MEPERO             =  1.370GCO     + 0.630GAG3004 + 1.370GHO2    + 1.370GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 51088} G3G3004 +MEPERO             =  1.370GCO                                                   : ARR( 0.500E-11,     0., 0.0);
+{ 51089} G3G3004 +PERO1              =  1.600GCO     + 0.400GAG3004 + 1.600GHO2    + 1.600GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 51090} G3G3004 +PERO1              =  1.600GCO                                                   : ARR( 0.500E-11,     0., 0.0);
+{ 51091} G3G3004 +PERO2              =  1.500GCO     + 0.500GAG3004 + 1.500GHO2    + 1.500GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 51092} G3G3004 +PERO2              =  1.500GCO                                                   : ARR( 0.500E-11,     0., 0.0);
+{ 51093} G3G3004 +PERO3              =  1.600GCO     + 0.400GAG3004 + 1.600GHO2    + 1.600GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 51094} G3G3004 +PERO3              =  1.600GCO                                                   : ARR( 0.500E-11,     0., 0.0);
+{ 51095} G3G3004 +PERO5              =  1.300GCO     + 0.700GAG3004 + 1.300GHO2    + 1.300GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 51096} G3G3004 +PERO5              =  1.300GCO                                                   : ARR( 0.500E-11,     0., 0.0);
+{ 51097} G3G3004 +PERO6              =  1.300GCO     + 0.700GAG3004 + 1.300GHO2    + 1.300GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 51098} G3G3004 +PERO6              =  1.300GCO                                                   : ARR( 0.500E-11,     0., 0.0);
+{ 51099} G3G3004 +PERO9              =       GCO     +      GHO2    +      GCO2    +      GCO      : ARR( 0.500E-11,  -500., 0.0);
+{ 51100} GAG3003 +GHO                =       GAG3004 +      GHO                                    : ARR( 0.117E-10,     0., 0.0);
+{ 51101} GAG3003 +GHO                =       G2A3008                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 51102} GAG3003 +GHO                =       G3A3003                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 51103} GAG3003+HV               =       G1A3009 +      GHO                                    :  0.100E+01*SUN;
+{ 51104} GAG3003+HV               =       GAD2000 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 51105} GAG3004 +GHO                =       G3A3004                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 51106} GAG3004 +GHO                =       GCO     +      GHO2    +      GCO2    +      GCO      : ARR( 0.520E-12,     0., 0.0);
+{ 51107} GAG3004+HV               =       GGD2000 +      GCO2                                   :  0.100E+01*SUN;
+{ 51108} GAG3004+HV               =       GAA2000 +      GCO2                                   :  0.100E+01*SUN;
+{ 51109} G3A3004 +GHO2               =  0.800GAG3004 + 0.200GAA3004 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 51110} G3A3004 +GNO                =  2.000GCO     + 2.000GNO2    + 2.000GHO     + 2.000GCO2     : ARR( 0.405E-11,  -270., 0.0);
+{ 51111} G3A3004 +GNO                =  2.000GCO                                                   : ARR( 0.405E-11,  -270., 0.0);
+{ 51112} G3A3004 +GNO2               =       GPA3004                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 51113} G3A3004 +GNO3               =  2.000GCO     + 2.000GNO2    + 2.000GHO     + 2.000GCO2     : ARR( 0.250E-11,     0., 0.0);
+{ 51114} G3A3004 +GNO3               =  2.000GCO                                                   : ARR( 0.250E-11,     0., 0.0);
+{ 51115} G3A3004 +MEPERO             =  1.370GCO     + 0.630GAA3004 + 1.370GHO     + 1.370GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 51116} G3A3004 +MEPERO             =  1.370GCO                                                   : ARR( 0.500E-11,     0., 0.0);
+{ 51117} G3A3004 +PERO1              =  1.600GCO     + 0.400GAA3004 + 1.600GHO     + 1.600GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 51118} G3A3004 +PERO1              =  1.600GCO                                                   : ARR( 0.500E-11,     0., 0.0);
+{ 51119} G3A3004 +PERO2              =  1.500GCO     + 0.500GAA3004 + 1.500GHO     + 1.500GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 51120} G3A3004 +PERO2              =  1.500GCO                                                   : ARR( 0.500E-11,     0., 0.0);
+{ 51121} G3A3004 +PERO3              =  1.600GCO     + 0.400GAA3004 + 1.600GHO     + 1.600GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 51122} G3A3004 +PERO3              =  1.600GCO                                                   : ARR( 0.500E-11,     0., 0.0);
+{ 51123} G3A3004 +PERO5              =  1.300GCO     + 0.700GAA3004 + 1.300GHO     + 1.300GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 51124} G3A3004 +PERO5              =  1.300GCO                                                   : ARR( 0.500E-11,     0., 0.0);
+{ 51125} G3A3004 +PERO6              =  1.300GCO     + 0.700GAA3004 + 1.300GHO     + 1.300GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 51126} G3A3004 +PERO6              =  1.300GCO                                                   : ARR( 0.500E-11,     0., 0.0);
+{ 51127} G3A3004 +PERO9              =       GCO     +      GHO     +      GCO2    +      GCO      : ARR( 0.500E-11,  -500., 0.0);
+{ 51128} GPG3003                     =       G3G3003 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 51129} GPG3003 +GHO                =       GPG3004 +      GHO                                    : ARR( 0.153E-10,     0., 0.0);
+{ 51130} GPG3003 +GHO                =       G3P3003                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 51131} GPG3003 +GHO                =       G2P3008                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 51132} GPG3003+HV               =       GPD2000 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 51133} GPG3003+HV               =       G1P3009 +      GHO                                    :  0.100E+01*SUN;
+{ 51134} GPG3003+HV               =       G3G3003 +      GNO2                                   :  0.100E+01*SUN;
+{ 51135} GPG3004                     =       G3G3004 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 51136} GPG3004 +GHO                =       G3P3004                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 51137} GPG3004+HV               =       GPA2000 +      GCO2                                   :  0.100E+01*SUN;
+{ 51138} GPG3004+HV               =  2.000GCO     +      GHO2    +      GNO2    +      GCO      :  0.100E+01*SUN;
+{ 51139} G3P3004 +GHO2               =  0.800GPG3004 + 0.200GPA3004 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 51140} G3P3004 +GNO                =       GCO     + 2.000GNO2    +      GCO2    +      GCO      : ARR( 0.810E-11,  -270., 0.0);
+{ 51141} G3P3004 +GNO2               =       GPP3004                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 51142} G3P3004 +GNO3               =       GCO     + 2.000GNO2    +      GCO2    +      GCO      : ARR( 0.500E-11,     0., 0.0);
+{ 51143} G3P3004 +MEPERO             =  1.370GCO     + 0.630GPA3004 + 1.370GNO2    + 1.370GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 51144} G3P3004 +MEPERO             =  1.370GCO                                                   : ARR( 0.500E-11,     0., 0.0);
+{ 51145} G3P3004 +PERO1              =  1.600GCO     + 0.400GPA3004 + 1.600GNO2    + 1.600GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 51146} G3P3004 +PERO1              =  1.600GCO                                                   : ARR( 0.500E-11,     0., 0.0);
+{ 51147} G3P3004 +PERO2              =  1.500GCO     + 0.500GPA3004 + 1.500GNO2    + 1.500GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 51148} G3P3004 +PERO2              =  1.500GCO                                                   : ARR( 0.500E-11,     0., 0.0);
+{ 51149} G3P3004 +PERO3              =  1.600GCO     + 0.400GPA3004 + 1.600GNO2    + 1.600GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 51150} G3P3004 +PERO3              =  1.600GCO                                                   : ARR( 0.500E-11,     0., 0.0);
+{ 51151} G3P3004 +PERO5              =  1.300GCO     + 0.700GPA3004 + 1.300GNO2    + 1.300GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 51152} G3P3004 +PERO5              =  1.300GCO                                                   : ARR( 0.500E-11,     0., 0.0);
+{ 51153} G3P3004 +PERO6              =  1.300GCO     + 0.700GPA3004 + 1.300GNO2    + 1.300GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 51154} G3P3004 +PERO6              =  1.300GCO                                                   : ARR( 0.500E-11,     0., 0.0);
+{ 51155} G3P3004 +PERO9              =       GCO     +      GNO2    +      GCO2    +      GCO      : ARR( 0.500E-11,  -500., 0.0);
+{ 51156} GGG5004 +GHO                =       GGG500L +      GHO2                                   : ARR( 0.406E-11,     0., 0.0);
+{ 51157} GGG5004 +GHO                =       G3G5006                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 51158} GGG5004 +GHO                =       G3G5005                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 51159} GGG5004+HV               =  0.500GGD4004 + 0.500GHO                                    :  0.100E+01*SUN;
+{ 51160} GGG5004+HV               =       G3G3002 +      G2G2000                                :  0.100E+01*SUN;
+{ 51161} GGG5004+HV               =       G2G400P +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 51162} GAG5008 +GHO                =       GAG500g +      GHO2                                   : ARR( 0.409E-11,     0., 0.0);
+{ 51163} GAG5008 +GHO                =       G3A500A                                               : ARR( 0.203E-11,  -190., 0.0);
+{ 51164} GAG5008 +GHO                =       G2G400P +      GCO2                                   : ARR( 0.555E-12,     0., 0.0);
+{ 51165} GAG5008+HV               =       G3A3000 +      GGD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 51166} GAG5008+HV               =       GAD4003 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 51167} GPG5008                     =       G3G5005 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 51168} GPG5008 +GHO                =       GPG500d +      GHO2                                   : ARR( 0.390E-11,     0., 0.0);
+{ 51169} GPG5008 +GHO                =       G2P504I                                               : ARR( 0.535E-12,     0., 0.0);
+{ 51170} GPG5008 +GHO                =       G3P500B                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 51171} GPG5008+HV               =  0.500GPD4003 + 0.500GHO                                    :  0.100E+01*SUN;
+{ 51172} GPG5008+HV               =       G3G3002 +      G2P2000                                :  0.100E+01*SUN;
+{ 51173} GPG5008+HV               =       G3G5005 +      GNO2                                   :  0.100E+01*SUN;
+{ 51174} G2P504I +GNO                =       G1P505m +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 51175} G2P504I +GNO                =       GPG500h                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 51176} G2P504I +GHO2               =       GPG500i                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 51177} G2P504I +GNO3               =       G1P505m +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 51178} G2P504I +MEPERO             =  0.340G1P505m + 0.330GPG500S + 0.330GPG500j                 : ARR( 0.565E-13,  -845., 0.0);
+{ 51179} G2P504I +PERO1              =  0.460G1P505m + 0.270GPG500S + 0.270GPG500j                 : ARR( 0.434E-13,  -900., 0.0);
+{ 51180} G2P504I +PERO2              =  0.400G1P505m + 0.300GPG500S + 0.300GPG500j                 : ARR( 0.162E-13, -1400., 0.0);
+{ 51181} G2P504I +PERO3              =  0.460G1P505m + 0.270GPG500S + 0.270GPG500j                 : ARR( 0.488E-13, -1250., 0.0);
+{ 51182} G2P504I +PERO5              =  0.460G1P505m + 0.270GPG500S + 0.270GPG500j                 : ARR( 0.183E-11,   450., 0.0);
+{ 51183} G2P504I +PERO6              =  0.300G1P505m + 0.350GPG500S + 0.350GPG500j                 : ARR( 0.168E-13, -1300., 0.0);
+{ 51184} G2P504I +PERO9              =  0.650G1P505m + 0.350GPG500j                                : ARR( 0.100E-10,     0., 0.0);
+{ 51185} G1P505m                     =       G3G3002 +      GPD2000                                : ARR( 0.200E+15,  6105., 0.0);
+{ 51186} G1P505m                     =       GGD4007 +      GCO     +      GNO2                    : ARR( 0.200E+15,  6793., 0.0);
+{ 51187} GGH400f +GHO                =       GGD4007 +      GHO                                    : ARR( 0.987E-11,     0., 0.0);
+{ 51188} GGH400f +GHO                =       GGH400h +      GHO2                                   : ARR( 0.386E-11,     0., 0.0);
+{ 51189} GGH400f +GHO                =       G2G400P                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 51190} GGH400f +GHO                =       G3H400e                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 51191} GGH400f+HV               =       G1G400W +      GHO                                    :  0.100E+01*SUN;
+{ 51192} GGH400f+HV               =       G3H2000 +      GGD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 51193} GGH400f+HV               =       GHD3001 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 51194} GGD4007 +GHO                =       GGD4008 +      GHO2                                   : ARR( 0.386E-11,     0., 0.0);
+{ 51195} GGD4007 +GHO                =       G3G3002 +      GCO                                    : ARR( 0.128E-10,     0., 0.0);
+{ 51196} GGD4007 +GHO                =       G3D4006                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 51197} GGD4007 +GNO3               =       G3G3002 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 51198} GGD4007+HV               =       GDD3002 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 51199} GGD4007+HV               =       G3G3002 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 51200} GGD4007+HV               =       GGD3001 +      GCO                                    :  0.100E+01*SUN;
+{ 51201} GGD4007+HV               =       GGO2000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 51202} GAH502L +GHO                =       GAH503W +      GHO2                                   : ARR( 0.131E-10,     0., 0.0);
+{ 51203} GAH502L +GHO                =       GAK500P +      GHO                                    : ARR( 0.258E-10,     0., 0.0);
+{ 51204} GAH502L +GHO                =       G2A501f                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 51205} GAH502L+HV               =       G1A501x +      GHO                                    :  0.100E+01*SUN;
+{ 51206} GAH502L+HV               =       G3H3004 +      G2A2000                                :  0.100E+01*SUN;
+{ 51207} GAA5005 +GHO                =       G2A5046                                               : ARR( 0.778E-12,     0., 0.0);
+{ 51208} GAA5005 +GHO                =       G2A400B +      GCO2                                   : ARR( 0.104E-11,     0., 0.0);
+{ 51209} GAA5005+HV               =       G3A3000 +      G2A2000                                :  0.100E+01*SUN;
+{ 51210} G2A5046 +GNO                =       G1A505L +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 51211} G2A5046 +GNO                =       GAA500R                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 51212} G2A5046 +GHO2               =       GAA500S                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 51213} G2A5046 +GNO3               =       G1A505L +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 51214} G2A5046 +MEPERO             =  0.340G1A505L + 0.330GAA5006 + 0.330GAA500T                 : ARR( 0.565E-13,  -845., 0.0);
+{ 51215} G2A5046 +PERO1              =  0.460G1A505L + 0.270GAA5006 + 0.270GAA500T                 : ARR( 0.434E-13,  -900., 0.0);
+{ 51216} G2A5046 +PERO2              =  0.400G1A505L + 0.300GAA5006 + 0.300GAA500T                 : ARR( 0.162E-13, -1400., 0.0);
+{ 51217} G2A5046 +PERO3              =  0.460G1A505L + 0.270GAA5006 + 0.270GAA500T                 : ARR( 0.488E-13, -1250., 0.0);
+{ 51218} G2A5046 +PERO5              =  0.460G1A505L + 0.270GAA5006 + 0.270GAA500T                 : ARR( 0.183E-11,   450., 0.0);
+{ 51219} G2A5046 +PERO6              =  0.300G1A505L + 0.350GAA5006 + 0.350GAA500T                 : ARR( 0.168E-13, -1300., 0.0);
+{ 51220} G2A5046 +PERO9              =  0.650G1A505L + 0.350GAA500T                                : ARR( 0.100E-10,     0., 0.0);
+{ 51221} G1A505L                     =       G3A3000 +      GAD2000                                : ARR( 0.200E+15,  5308., 0.0);
+{ 51222} GPA5008                     =       G3A5006 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 51223} GPA5008 +GHO                =       G2P504J                                               : ARR( 0.389E-12,     0., 0.0);
+{ 51224} GPA5008 +GHO                =       G2P504K                                               : ARR( 0.525E-12,     0., 0.0);
+{ 51225} GPA5008 +GHO                =       G2P400C +      GCO2                                   : ARR( 0.520E-12,     0., 0.0);
+{ 51226} GPA5008+HV               =       G3A3000 +      G2P2000                                :  0.100E+01*SUN;
+{ 51227} GPA5008+HV               =       G3A5006 +      GNO2                                   :  0.100E+01*SUN;
+{ 51228} G2P504J +GNO                =       G1P505n +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 51229} G2P504J +GNO                =       GPA500k                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 51230} G2P504J +GHO2               =       GPA500l                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 51231} G2P504J +GNO3               =       G1P505n +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 51232} G2P504J +MEPERO             =  0.340G1P505n + 0.330GPA5009 + 0.330GPA500m                 : ARR( 0.565E-13,  -845., 0.0);
+{ 51233} G2P504J +PERO1              =  0.460G1P505n + 0.270GPA5009 + 0.270GPA500m                 : ARR( 0.434E-13,  -900., 0.0);
+{ 51234} G2P504J +PERO2              =  0.400G1P505n + 0.300GPA5009 + 0.300GPA500m                 : ARR( 0.162E-13, -1400., 0.0);
+{ 51235} G2P504J +PERO3              =  0.460G1P505n + 0.270GPA5009 + 0.270GPA500m                 : ARR( 0.488E-13, -1250., 0.0);
+{ 51236} G2P504J +PERO5              =  0.460G1P505n + 0.270GPA5009 + 0.270GPA500m                 : ARR( 0.183E-11,   450., 0.0);
+{ 51237} G2P504J +PERO6              =  0.300G1P505n + 0.350GPA5009 + 0.350GPA500m                 : ARR( 0.168E-13, -1300., 0.0);
+{ 51238} G2P504J +PERO9              =  0.650G1P505n + 0.350GPA500m                                : ARR( 0.100E-10,     0., 0.0);
+{ 51239} G2P504K +GNO                =       G1P505o +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 51240} G2P504K +GNO                =       GPA500n                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 51241} G2P504K +GHO2               =       GPA500o                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 51242} G2P504K +GNO3               =       G1P505o +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 51243} G2P504K +MEPERO             =  0.340G1P505o + 0.330GPA500A + 0.330GPA500p                 : ARR( 0.565E-13,  -845., 0.0);
+{ 51244} G2P504K +PERO1              =  0.460G1P505o + 0.270GPA500A + 0.270GPA500p                 : ARR( 0.434E-13,  -900., 0.0);
+{ 51245} G2P504K +PERO2              =  0.400G1P505o + 0.300GPA500A + 0.300GPA500p                 : ARR( 0.162E-13, -1400., 0.0);
+{ 51246} G2P504K +PERO3              =  0.460G1P505o + 0.270GPA500A + 0.270GPA500p                 : ARR( 0.488E-13, -1250., 0.0);
+{ 51247} G2P504K +PERO5              =  0.460G1P505o + 0.270GPA500A + 0.270GPA500p                 : ARR( 0.183E-11,   450., 0.0);
+{ 51248} G2P504K +PERO6              =  0.300G1P505o + 0.350GPA500A + 0.350GPA500p                 : ARR( 0.168E-13, -1300., 0.0);
+{ 51249} G2P504K +PERO9              =  0.650G1P505o + 0.350GPA500p                                : ARR( 0.100E-10,     0., 0.0);
+{ 51250} G1P505n                     =       GAD2000 +      G3P3000                                : ARR( 0.200E+15,  5308., 0.0);
+{ 51251} G1P505o                     =       G3A3000 +      GPD2000                                : ARR( 0.200E+15,  5308., 0.0);
+{ 51252} GAN501u +GHO                =       G2A5047                                               : ARR( 0.335E-13,     0., 0.0);
+{ 51253} GAN501u +GHO                =       GAN501x +      GNO2                                   : ARR( 0.584E-13,     0., 0.0);
+{ 51254} GAN501u +GHO                =       GAN501w +      GNO2                                   : ARR( 0.324E-13,     0., 0.0);
+{ 51255} GAN501u +GHO                =       GND400I +      GNO2    +      GCO2                    : ARR( 0.520E-12,     0., 0.0);
+{ 51256} GAN501u+HV               =       G1A5023 +      GNO2                                   :  0.100E+01*SUN;
+{ 51257} GAN501u+HV               =       G3N3001 +      GAD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 51258} GAN501u+HV               =       G1A501y +      GNO2                                   :  0.100E+01*SUN;
+{ 51259} G2A5047 +GNO                =       G1A505M +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 51260} G2A5047 +GNO                =       GAN502S                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 51261} G2A5047 +GHO2               =       GAH504q                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 51262} G2A5047 +GNO3               =       G1A505M +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 51263} G2A5047 +MEPERO             =  0.480G1A505M + 0.260GAN501z + 0.260GAN502n                 : ARR( 0.164E-12,  -795., 0.0);
+{ 51264} G2A5047 +PERO1              =  0.600G1A505M + 0.200GAN501z + 0.200GAN502n                 : ARR( 0.126E-12,  -850., 0.0);
+{ 51265} G2A5047 +PERO2              =  0.560G1A505M + 0.220GAN501z + 0.220GAN502n                 : ARR( 0.471E-13, -1350., 0.0);
+{ 51266} G2A5047 +PERO3              =  0.600G1A505M + 0.200GAN501z + 0.200GAN502n                 : ARR( 0.142E-12, -1200., 0.0);
+{ 51267} G2A5047 +PERO5              =  0.600G1A505M + 0.200GAN501z + 0.200GAN502n                 : ARR( 0.533E-11,   500., 0.0);
+{ 51268} G2A5047 +PERO6              =  0.460G1A505M + 0.270GAN501z + 0.270GAN502n                 : ARR( 0.488E-13, -1250., 0.0);
+{ 51269} G2A5047 +PERO9              =  0.800G1A505M + 0.200GAN502n                                : ARR( 0.100E-10,     0., 0.0);
+{ 51270} G1A505M +OXYGEN             =       GAN502n +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 51271} G1A505M                     =       GAN400b +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7323., 0.0);
+{ 51272} GAH502M +GHO                =       GAN501w +      GHO                                    : ARR( 0.118E-10,     0., 0.0);
+{ 51273} GAH502M +GHO                =       G2A501g                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 51274} GAH502M+HV               =       G1A505N +      GNO2                                   :  0.100E+01*SUN;
+{ 51275} GAH502M+HV               =       G3N3001 +      GAD2000 +      GHO                     :  0.100E+01*SUN;
+{ 51276} GAH502M+HV               =       G1A501y +      GHO                                    :  0.100E+01*SUN;
+{ 51277} G1A505N                     =       GD02000 +      G3A3003                                : ARR( 0.200E+15,  3523., 0.0);
+{ 51278} GAN501v +GHO                =       GAN501w +      GHO2                                   : ARR( 0.303E-11,     0., 0.0);
+{ 51279} GAN501v +GHO                =       GND400I +      GHO2    +      GCO2                    : ARR( 0.556E-12,     0., 0.0);
+{ 51280} GAN501v+HV               =       G1A5025 +      GNO2                                   :  0.100E+01*SUN;
+{ 51281} GAN501v+HV               =       G3N3001 +      GAD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 51282} GAN501w +GHO                =       G2A5048                                               : ARR( 0.335E-13,     0., 0.0);
+{ 51283} GAN501w +GHO                =       GAK500U +      GNO2                                   : ARR( 0.584E-13,     0., 0.0);
+{ 51284} GAN501w +GHO                =       G3N3001 +      GCO2    +      GCO                     : ARR( 0.520E-12,     0., 0.0);
+{ 51285} GAN501w+HV               =       G1A5027 +      GNO2                                   :  0.100E+01*SUN;
+{ 51286} GAN501w+HV               =       G3N3001 +      GCO     +      GHO     +      GCO      :  0.100E+01*SUN;
+{ 51287} G2A5048 +GNO                =       G1A505O +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 51288} G2A5048 +GNO                =       GAN502U                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 51289} G2A5048 +GHO2               =       GAH504r                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 51290} G2A5048 +GNO3               =       G1A505O +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 51291} G2A5048 +MEPERO             =  0.480G1A505O + 0.260GAN5023 + 0.260GAN502o                 : ARR( 0.164E-12,  -795., 0.0);
+{ 51292} G2A5048 +PERO1              =  0.600G1A505O + 0.200GAN5023 + 0.200GAN502o                 : ARR( 0.126E-12,  -850., 0.0);
+{ 51293} G2A5048 +PERO2              =  0.560G1A505O + 0.220GAN5023 + 0.220GAN502o                 : ARR( 0.471E-13, -1350., 0.0);
+{ 51294} G2A5048 +PERO3              =  0.600G1A505O + 0.200GAN5023 + 0.200GAN502o                 : ARR( 0.142E-12, -1200., 0.0);
+{ 51295} G2A5048 +PERO5              =  0.600G1A505O + 0.200GAN5023 + 0.200GAN502o                 : ARR( 0.533E-11,   500., 0.0);
+{ 51296} G2A5048 +PERO6              =  0.460G1A505O + 0.270GAN5023 + 0.270GAN502o                 : ARR( 0.488E-13, -1250., 0.0);
+{ 51297} G2A5048 +PERO9              =  0.800G1A505O + 0.200GAN502o                                : ARR( 0.100E-10,     0., 0.0);
+{ 51298} G1A505O +OXYGEN             =       GAN502o +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 51299} G1A505O                     =       GAD4008 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  6903., 0.0);
+{ 51300} GAD500G +GHO                =       G3A3000 + 2.000GCO                                    : ARR( 0.136E-10,     0., 0.0);
+{ 51301} GAD500G +GNO3               =       G3A3000 +      GHNO3   + 2.000GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 51302} GAD500G+HV               =       G3A3000 +      G3D2000                                :  0.100E+01*SUN;
+{ 51303} GAD500G+HV               =       G3A3000 +      GCO     +      GCO     +      GHO2     :  0.100E+01*SUN;
+{ 51304} GAD500G+HV               =       GAD4003 +      GCO                                    :  0.100E+01*SUN;
+{ 51305} GAD500G+HV               =       GAD3000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 51306} GAN501x +GHO                =       G2A5049                                               : ARR( 0.108E-12,     0., 0.0);
+{ 51307} GAN501x +GHO                =       GDK4008 +      GNO2    +      GCO2                    : ARR( 0.547E-12,     0., 0.0);
+{ 51308} GAN501x+HV               =       G3K2000 +      G3A3001                                :  0.100E+01*SUN;
+{ 51309} GAN501x+HV               =       G1A5021 +      GNO2                                   :  0.100E+01*SUN;
+{ 51310} G2A5049 +GNO                =       G1A505P +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 51311} G2A5049 +GNO                =       GAN502T                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 51312} G2A5049 +GHO2               =       GAH504s                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 51313} G2A5049 +GNO3               =       G1A505P +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 51314} G2A5049 +MEPERO             =  0.480G1A505P + 0.260GAN5022 + 0.260GAN502p                 : ARR( 0.164E-12,  -795., 0.0);
+{ 51315} G2A5049 +PERO1              =  0.600G1A505P + 0.200GAN5022 + 0.200GAN502p                 : ARR( 0.126E-12,  -850., 0.0);
+{ 51316} G2A5049 +PERO2              =  0.560G1A505P + 0.220GAN5022 + 0.220GAN502p                 : ARR( 0.471E-13, -1350., 0.0);
+{ 51317} G2A5049 +PERO3              =  0.600G1A505P + 0.200GAN5022 + 0.200GAN502p                 : ARR( 0.142E-12, -1200., 0.0);
+{ 51318} G2A5049 +PERO5              =  0.600G1A505P + 0.200GAN5022 + 0.200GAN502p                 : ARR( 0.533E-11,   500., 0.0);
+{ 51319} G2A5049 +PERO6              =  0.460G1A505P + 0.270GAN5022 + 0.270GAN502p                 : ARR( 0.488E-13, -1250., 0.0);
+{ 51320} G2A5049 +PERO9              =  0.800G1A505P + 0.200GAN502p                                : ARR( 0.100E-10,     0., 0.0);
+{ 51321} G1A505P                     =       G3A3001 +      GCH2O   +      GCO                     : ARR( 0.200E+15,  3897., 0.0);
+{ 51322} GAH502N +GHO                =       GAK500U +      GHO                                    : ARR( 0.118E-10,     0., 0.0);
+{ 51323} GAH502N +GHO                =       G2A501i                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 51324} GAH502N+HV               =       G3K2000 +      G3A3003                                :  0.100E+01*SUN;
+{ 51325} GAH502N+HV               =       G1A5021 +      GHO                                    :  0.100E+01*SUN;
+{ 51326} GAK500T +GHO                =       GAK500U +      GHO2                                   : ARR( 0.304E-11,     0., 0.0);
+{ 51327} GAK500T +GHO                =       GDK4008 +      GHO2    +      GCO2                    : ARR( 0.558E-12,     0., 0.0);
+{ 51328} GAK500T+HV               =       G3K2000 +      G3A3002                                :  0.100E+01*SUN;
+{ 51329} GAK500U +GHO                =       G2A504A                                               : ARR( 0.102E-12,     0., 0.0);
+{ 51330} GAK500U +GHO                =       G3K2000 +      GCO2    + 2.000GCO                     : ARR( 0.520E-12,     0., 0.0);
+{ 51331} GAK500U+HV               =       G3K2000 +      GCO     +      GHO     + 2.000GCO      :  0.100E+01*SUN;
+{ 51332} GAK500U+HV               =       G3K2000 +      GCO     + 2.000GCO     +      GHO      :  0.100E+01*SUN;
+{ 51333} GAK500U+HV               =       GDK4008 +      GCO2                                   :  0.100E+01*SUN;
+{ 51334} G2A504A +GNO                =       G1A505Q +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 51335} G2A504A +GNO                =       GAN502W                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 51336} G2A504A +GHO2               =       GAH504t                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 51337} G2A504A +GNO3               =       G1A505Q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 51338} G2A504A +MEPERO             =  0.480G1A505Q + 0.260GAK500X + 0.260GAD500P                 : ARR( 0.164E-12,  -795., 0.0);
+{ 51339} G2A504A +PERO1              =  0.600G1A505Q + 0.200GAK500X + 0.200GAD500P                 : ARR( 0.126E-12,  -850., 0.0);
+{ 51340} G2A504A +PERO2              =  0.560G1A505Q + 0.220GAK500X + 0.220GAD500P                 : ARR( 0.471E-13, -1350., 0.0);
+{ 51341} G2A504A +PERO3              =  0.600G1A505Q + 0.200GAK500X + 0.200GAD500P                 : ARR( 0.142E-12, -1200., 0.0);
+{ 51342} G2A504A +PERO5              =  0.600G1A505Q + 0.200GAK500X + 0.200GAD500P                 : ARR( 0.533E-11,   500., 0.0);
+{ 51343} G2A504A +PERO6              =  0.460G1A505Q + 0.270GAK500X + 0.270GAD500P                 : ARR( 0.488E-13, -1250., 0.0);
+{ 51344} G2A504A +PERO9              =  0.800G1A505Q + 0.200GAD500P                                : ARR( 0.100E-10,     0., 0.0);
+{ 51345} G1A505Q                     =       GCO     +      GCH2O   +      GHO     + 3.000GCO      : ARR( 0.200E+15,  3862., 0.0);
+{ 51346} GAH502O +GHO                =       GAN501y +      GHO                                    : ARR( 0.523E-10,     0., 0.0);
+{ 51347} GAH502O +GHO                =       G2A501j                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 51348} GAH502O+HV               =       G1A505R +      GNO2                                   :  0.100E+01*SUN;
+{ 51349} GAH502O+HV               =       G3A3001 +      G2H2000                                :  0.100E+01*SUN;
+{ 51350} GAH502O+HV               =       G1A5022 +      GHO                                    :  0.100E+01*SUN;
+{ 51351} G1A505R                     =       GAD5005 +      GHO                                    : ARR( 0.160E+12,  3634., 0.0);
+{ 51352} G1A505R                     =       GAD2000 +      G3H3000                                : ARR( 0.200E+15,  5332., 0.0);
+{ 51353} GAN501y +GHO                =       G3A500Y                                               : ARR( 0.669E-10,     0., 0.0);
+{ 51354} GAN501y +GNO3               =       G3A500Y +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 51355} GAN501y+HV               =       G1A505S +      GNO2                                   :  0.100E+01*SUN;
+{ 51356} GAN501y+HV               =       G3A3001 +      G2D2000                                :  0.100E+01*SUN;
+{ 51357} GAN501y+HV               =       G2A400e +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 51358} G3A500Y +GHO2               =  0.800GAG500b + 0.200GAA500R + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 51359} G3A500Y +GNO                =       G2A400e +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 51360} G3A500Y +GNO2               =       GPA500k                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 51361} G3A500Y +GNO3               =       G2A400e +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 51362} G3A500Y +MEPERO             =  0.685G2A400e + 0.315GAA500R + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 51363} G3A500Y +PERO1              =  0.800G2A400e + 0.200GAA500R + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 51364} G3A500Y +PERO2              =  0.750G2A400e + 0.250GAA500R + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 51365} G3A500Y +PERO3              =  0.800G2A400e + 0.200GAA500R + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 51366} G3A500Y +PERO5              =  0.650G2A400e + 0.350GAA500R + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 51367} G3A500Y +PERO6              =  0.650G2A400e + 0.350GAA500R + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 51368} G3A500Y +PERO9              =       G2A400e +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 51369} G1A505S                     =       GAD2000 +      G3D3000                                : ARR( 0.200E+15,  5308., 0.0);
+{ 51370} GAH502P +GHO                =       GAN501x +      GHO                                    : ARR( 0.214E-10,     0., 0.0);
+{ 51371} GAH502P +GHO                =       G2A501k                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 51372} GAH502P+HV               =       G1A5023 +      GHO                                    :  0.100E+01*SUN;
+{ 51373} GAH502P+HV               =       G3H3001 +      GAD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 51374} GAH502P+HV               =       G1A505T +      GNO2                                   :  0.100E+01*SUN;
+{ 51375} G1A505T                     =       G3H3001 +      GAD2000                                : ARR( 0.200E+15,  5359., 0.0);
+{ 51376} GAA3001 +GHO                =       GAD2000 +      GNO2    +      GCO2                    : ARR( 0.106E-11,     0., 0.0);
+{ 51377} GAA3001+HV               =       G1A300A +      GNO2                                   :  0.100E+01*SUN;
+{ 51378} GPA3001                     =       G3A3001 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 51379} GPA3001 +GHO                =       GPA3004 +      GNO2                                   : ARR( 0.324E-13,     0., 0.0);
+{ 51380} GPA3001 +GHO                =       GPD2000 +      GNO2    +      GCO2                    : ARR( 0.520E-12,     0., 0.0);
+{ 51381} GPA3001+HV               =       G1P300A +      GNO2                                   :  0.100E+01*SUN;
+{ 51382} GPA3001+HV               =       G3A3001 +      GNO2                                   :  0.100E+01*SUN;
+{ 51383} GAH502Q +GHO                =       GAK500T +      GHO                                    : ARR( 0.213E-10,     0., 0.0);
+{ 51384} GAH502Q +GHO                =       GAH502S +      GHO2                                   : ARR( 0.296E-11,     0., 0.0);
+{ 51385} GAH502Q +GHO                =       G2A501m                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 51386} GAH502Q+HV               =       G1A5025 +      GHO                                    :  0.100E+01*SUN;
+{ 51387} GAH502Q+HV               =       G3H3001 +      GAD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 51388} GAA3002 +GHO                =       GAA3004 +      GHO2                                   : ARR( 0.219E-11,     0., 0.0);
+{ 51389} GAA3002 +GHO                =       GAD2000 +      GHO2    +      GCO2                    : ARR( 0.109E-11,     0., 0.0);
+{ 51390} GPA3002                     =       G3A3002 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 51391} GPA3002 +GHO                =       GPA3004 +      GHO2                                   : ARR( 0.295E-11,     0., 0.0);
+{ 51392} GPA3002 +GHO                =       GPD2000 +      GHO2    +      GCO2                    : ARR( 0.542E-12,     0., 0.0);
+{ 51393} GPA3002+HV               =       G3A3002 +      GNO2                                   :  0.100E+01*SUN;
+{ 51394} GAH502R +GHO                =       GAD500H +      GHO                                    : ARR( 0.523E-10,     0., 0.0);
+{ 51395} GAH502R +GHO                =       G2A501n                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 51396} GAH502R+HV               =       GHD400D +      GCO2                                   :  0.100E+01*SUN;
+{ 51397} GAH502R+HV               =       GCO     +      G3H3000 +      GHO     +      GCO      :  0.100E+01*SUN;
+{ 51398} GAH502R+HV               =       G1A5026 +      GHO                                    :  0.100E+01*SUN;
+{ 51399} GAD500H +GHO                =       G3A500Z                                               : ARR( 0.669E-10,     0., 0.0);
+{ 51400} GAD500H +GNO3               =       G3A500Z +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 51401} GAD500H+HV               =       GDD4002 +      GCO2                                   :  0.100E+01*SUN;
+{ 51402} GAD500H+HV               =       GCO     +      G3D3000 +      GHO     +      GCO      :  0.100E+01*SUN;
+{ 51403} GAD500H+HV               =       G2A400f +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 51404} G3A500Z +GHO2               =  0.800GAG500d + 0.200GAA500T + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 51405} G3A500Z +GNO                =       G2A400f +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 51406} G3A500Z +GNO2               =       GPA500m                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 51407} G3A500Z +GNO3               =       G2A400f +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 51408} G3A500Z +MEPERO             =  0.685G2A400f + 0.315GAA500T + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 51409} G3A500Z +PERO1              =  0.800G2A400f + 0.200GAA500T + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 51410} G3A500Z +PERO2              =  0.750G2A400f + 0.250GAA500T + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 51411} G3A500Z +PERO3              =  0.800G2A400f + 0.200GAA500T + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 51412} G3A500Z +PERO5              =  0.650G2A400f + 0.350GAA500T + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 51413} G3A500Z +PERO6              =  0.650G2A400f + 0.350GAA500T + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 51414} G3A500Z +PERO9              =       G2A400f +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 51415} GAH502S +GHO                =       GAK500U +      GHO                                    : ARR( 0.213E-10,     0., 0.0);
+{ 51416} GAH502S +GHO                =       G2A501o                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 51417} GAH502S+HV               =       G1A5027 +      GHO                                    :  0.100E+01*SUN;
+{ 51418} GAH502S+HV               =       G3H3001 +      GCO     +      GHO     +      GCO      :  0.100E+01*SUN;
+{ 51419} GAN501z +GHO                =       GAN502n +      GHO2                                   : ARR( 0.861E-12,     0., 0.0);
+{ 51420} GAN501z +GHO                =       G1A505M                                               : ARR( 0.225E-17,    85., 2.0);
+{ 51421} GAN501z +GHO                =       GND400K +      GNO2    +      GCO2                    : ARR( 0.557E-12,     0., 0.0);
+{ 51422} GAN501z+HV               =       G1A5028 +      GNO2                                   :  0.100E+01*SUN;
+{ 51423} GAN501z+HV               =       G3N3004 +      GAD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 51424} GAN501z+HV               =       G1A5037 +      GNO2                                   :  0.100E+01*SUN;
+{ 51425} GAH502T +GHO                =       GAH504u +      GHO2                                   : ARR( 0.130E-10,     0., 0.0);
+{ 51426} GAH502T +GHO                =       GAN5022 +      GHO                                    : ARR( 0.255E-10,     0., 0.0);
+{ 51427} GAH502T +GHO                =       G2A501p                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 51428} GAH502T+HV               =       G1A5028 +      GHO                                    :  0.100E+01*SUN;
+{ 51429} GAH502T+HV               =       G3H3004 +      GAD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 51430} GAH502T+HV               =       G1A505U +      GNO2                                   :  0.100E+01*SUN;
+{ 51431} G1A505U                     =       GAH503q +      GHO2                                   : ARR( 0.160E+12,  3981., 0.0);
+{ 51432} G1A505U                     =       G3H3004 +      GAD2000                                : ARR( 0.200E+15,  5359., 0.0);
+{ 51433} GAN5021 +GHO                =       GAN502A +      GHO2                                   : ARR( 0.133E-10,     0., 0.0);
+{ 51434} GAN5021 +GHO                =       GAN5022 +      GHO2                                   : ARR( 0.656E-11,     0., 0.0);
+{ 51435} GAN5021+HV               =       G3K3003 +      GAD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 51436} GAN5021+HV               =       G1A504X +      GNO2                                   :  0.100E+01*SUN;
+{ 51437} GAN5022 +GHO                =       GAN502p +      GHO2                                   : ARR( 0.259E-11,     0., 0.0);
+{ 51438} GAN5022 +GHO                =       GDK4009 +      GNO2    +      GCO2                    : ARR( 0.550E-12,     0., 0.0);
+{ 51439} GAN5022+HV               =       G3K2001 +      G3A3001                                :  0.100E+01*SUN;
+{ 51440} GAN5022+HV               =       G1A504j +      GNO2                                   :  0.100E+01*SUN;
+{ 51441} GAH502U +GHO                =       GAD500H +      GHO                                    : ARR( 0.120E-10,     0., 0.0);
+{ 51442} GAH502U +GHO                =       G3A500a                                               : ARR( 0.698E-10,     0., 0.0);
+{ 51443} GAH502U +GNO3               =       G3A500a +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 51444} GAH502U+HV               =       G1A505S +      GHO                                    :  0.100E+01*SUN;
+{ 51445} GAH502U+HV               =       G3A3003 +      G2D2000                                :  0.100E+01*SUN;
+{ 51446} GAH502U+HV               =       G2A400z +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 51447} G3A500a +GHO2               =  0.800GAG500c + 0.200GAA500S + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 51448} G3A500a +GNO                =       G2A400z +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 51449} G3A500a +GNO2               =       GPA500l                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 51450} G3A500a +GNO3               =       G2A400z +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 51451} G3A500a +MEPERO             =  0.685G2A400z + 0.315GAA500S + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 51452} G3A500a +PERO1              =  0.800G2A400z + 0.200GAA500S + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 51453} G3A500a +PERO2              =  0.750G2A400z + 0.250GAA500S + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 51454} G3A500a +PERO3              =  0.800G2A400z + 0.200GAA500S + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 51455} G3A500a +PERO5              =  0.650G2A400z + 0.350GAA500S + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 51456} G3A500a +PERO6              =  0.650G2A400z + 0.350GAA500S + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 51457} G3A500a +PERO9              =       G2A400z +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 51458} G2A400z +GNO                =       G1A4011 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 51459} G2A400z +GNO                =       GAH400P                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 51460} G2A400z +GHO2               =       GAH400q                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 51461} G2A400z +GNO3               =       G1A4011 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 51462} G2A400z +MEPERO             =  0.480G1A4011 + 0.260GAH400b + 0.260GAH400u                 : ARR( 0.164E-12,  -795., 0.0);
+{ 51463} G2A400z +PERO1              =  0.600G1A4011 + 0.200GAH400b + 0.200GAH400u                 : ARR( 0.126E-12,  -850., 0.0);
+{ 51464} G2A400z +PERO2              =  0.560G1A4011 + 0.220GAH400b + 0.220GAH400u                 : ARR( 0.471E-13, -1350., 0.0);
+{ 51465} G2A400z +PERO3              =  0.600G1A4011 + 0.200GAH400b + 0.200GAH400u                 : ARR( 0.142E-12, -1200., 0.0);
+{ 51466} G2A400z +PERO5              =  0.600G1A4011 + 0.200GAH400b + 0.200GAH400u                 : ARR( 0.533E-11,   500., 0.0);
+{ 51467} G2A400z +PERO6              =  0.460G1A4011 + 0.270GAH400b + 0.270GAH400u                 : ARR( 0.488E-13, -1250., 0.0);
+{ 51468} G2A400z +PERO9              =  0.800G1A4011 + 0.200GAH400u                                : ARR( 0.100E-10,     0., 0.0);
+{ 51469} GAN5023 +GHO                =       GAN502o +      GHO2                                   : ARR( 0.844E-12,     0., 0.0);
+{ 51470} GAN5023 +GHO                =       G1A505O                                               : ARR( 0.220E-17,    85., 2.0);
+{ 51471} GAN5023 +GHO                =       G3N3004 +      GCO2    +      GCO                     : ARR( 0.545E-12,     0., 0.0);
+{ 51472} GAN5023+HV               =       G1A5029 +      GNO2                                   :  0.100E+01*SUN;
+{ 51473} GAN5023+HV               =       G3N3004 +      GCO     +      GHO     +      GCO      :  0.100E+01*SUN;
+{ 51474} GAH502W +GHO                =       GAH504v +      GHO2                                   : ARR( 0.130E-10,     0., 0.0);
+{ 51475} GAH502W +GHO                =       GAK500X +      GHO                                    : ARR( 0.255E-10,     0., 0.0);
+{ 51476} GAH502W +GHO                =       G2A501q                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 51477} GAH502W+HV               =       G1A5029 +      GHO                                    :  0.100E+01*SUN;
+{ 51478} GAH502W+HV               =       G3H3004 +      GCO     +      GHO     +      GCO      :  0.100E+01*SUN;
+{ 51479} GAK500W +GHO                =       GAD500J +      GHO2                                   : ARR( 0.133E-10,     0., 0.0);
+{ 51480} GAK500W +GHO                =       GAK500X +      GHO2                                   : ARR( 0.655E-11,     0., 0.0);
+{ 51481} GAK500W+HV               =       G3K3003 +      GCO     +      GHO     +      GCO      :  0.100E+01*SUN;
+{ 51482} GAK500X +GHO                =       GAD500P +      GHO2                                   : ARR( 0.257E-11,     0., 0.0);
+{ 51483} GAK500X +GHO                =       G3K2001 +      GCO2    + 2.000GCO                     : ARR( 0.545E-12,     0., 0.0);
+{ 51484} GAK500X+HV               =       G3K2001 +      GCO     +      GHO     + 2.000GCO      :  0.100E+01*SUN;
+{ 51485} GAK500X+HV               =       G3K2001 +      GCO     + 2.000GCO     +      GHO      :  0.100E+01*SUN;
+{ 51486} GAK500X+HV               =       GDK4009 +      GCO2                                   :  0.100E+01*SUN;
+{ 51487} GAA3003 +GHO                =       GAA3004 +      GHO                                    : ARR( 0.839E-11,     0., 0.0);
+{ 51488} GAA3003 +GHO                =       G2A3009                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 51489} GAA3003 +GHO                =       GAD2000 +      GHO     +      GCO2                    : ARR( 0.104E-11,     0., 0.0);
+{ 51490} GAA3003+HV               =       G1A300A +      GHO                                    :  0.100E+01*SUN;
+{ 51491} GAA3004 +GHO                =       GCO     +      GHO     +      GCO2    +      GCO      : ARR( 0.104E-11,     0., 0.0);
+{ 51492} GAA3004+HV               =       GAD2000 +      GCO2                                   :  0.200E+01*SUN;
+{ 51493} GPA3003                     =       G3A3003 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 51494} GPA3003 +GHO                =       GPA3004 +      GHO                                    : ARR( 0.117E-10,     0., 0.0);
+{ 51495} GPA3003 +GHO                =       G2P3009                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 51496} GPA3003+HV               =       G1P300A +      GHO                                    :  0.100E+01*SUN;
+{ 51497} GPA3003+HV               =       G3A3003 +      GNO2                                   :  0.100E+01*SUN;
+{ 51498} GPA3004                     =       G3A3004 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 51499} GPA3004 +GHO                =       GCO     +      GNO2    +      GCO2    +      GCO      : ARR( 0.520E-12,     0., 0.0);
+{ 51500} GPA3004+HV               =       GPD2000 +      GCO2                                   :  0.100E+01*SUN;
+{ 51501} GPA3004+HV               =  2.000GCO     +      GHO     +      GNO2    +      GCO      :  0.100E+01*SUN;
+{ 51502} GAG5009 +GHO                =       GAG500d +      GHO2                                   : ARR( 0.289E-11,     0., 0.0);
+{ 51503} GAG5009 +GHO                =       G2A504B                                               : ARR( 0.535E-12,     0., 0.0);
+{ 51504} GAG5009 +GHO                =       G3A5007                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 51505} GAG5009 +GHO                =       GGD4004 +      GHO2    +      GCO2                    : ARR( 0.530E-12,     0., 0.0);
+{ 51506} GAG5009+HV               =       G3A3002 +      G2G2000                                :  0.100E+01*SUN;
+{ 51507} GAG5009+HV               =       G2A400a +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 51508} G2A504B +GNO                =       G1A505W +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 51509} G2A504B +GNO                =       GAG500h                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 51510} G2A504B +GHO2               =       GAG500i                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 51511} G2A504B +GNO3               =       G1A505W +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 51512} G2A504B +MEPERO             =  0.340G1A505W + 0.330GAG500W + 0.330GAG500j                 : ARR( 0.565E-13,  -845., 0.0);
+{ 51513} G2A504B +PERO1              =  0.460G1A505W + 0.270GAG500W + 0.270GAG500j                 : ARR( 0.434E-13,  -900., 0.0);
+{ 51514} G2A504B +PERO2              =  0.400G1A505W + 0.300GAG500W + 0.300GAG500j                 : ARR( 0.162E-13, -1400., 0.0);
+{ 51515} G2A504B +PERO3              =  0.460G1A505W + 0.270GAG500W + 0.270GAG500j                 : ARR( 0.488E-13, -1250., 0.0);
+{ 51516} G2A504B +PERO5              =  0.460G1A505W + 0.270GAG500W + 0.270GAG500j                 : ARR( 0.183E-11,   450., 0.0);
+{ 51517} G2A504B +PERO6              =  0.300G1A505W + 0.350GAG500W + 0.350GAG500j                 : ARR( 0.168E-13, -1300., 0.0);
+{ 51518} G2A504B +PERO9              =  0.650G1A505W + 0.350GAG500j                                : ARR( 0.100E-10,     0., 0.0);
+{ 51519} G1A505W                     =       G3A3002 +      GGD2000                                : ARR( 0.200E+15,  6105., 0.0);
+{ 51520} G1A505W                     =       GAD4006 +      GCO     +      GHO2                    : ARR( 0.200E+15,  6793., 0.0);
+{ 51521} GAA5006 +GHO                =       GAA500T +      GHO2                                   : ARR( 0.293E-11,     0., 0.0);
+{ 51522} GAA5006 +GHO                =       G2A504C                                               : ARR( 0.402E-12,     0., 0.0);
+{ 51523} GAA5006 +GHO                =       GAD4003 +      GHO2    +      GCO2                    : ARR( 0.537E-12,     0., 0.0);
+{ 51524} GAA5006 +GHO                =       G2A400a +      GCO2                                   : ARR( 0.537E-12,     0., 0.0);
+{ 51525} GAA5006+HV               =       G3A3002 +      G2A2000                                :  0.100E+01*SUN;
+{ 51526} G2A504C +GNO                =       G1A505X +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 51527} G2A504C +GNO                =       GAA500U                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 51528} G2A504C +GHO2               =       GAA500W                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 51529} G2A504C +GNO3               =       G1A505X +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 51530} G2A504C +MEPERO             =  0.340G1A505X + 0.330GAA500K + 0.330GAA500X                 : ARR( 0.565E-13,  -845., 0.0);
+{ 51531} G2A504C +PERO1              =  0.460G1A505X + 0.270GAA500K + 0.270GAA500X                 : ARR( 0.434E-13,  -900., 0.0);
+{ 51532} G2A504C +PERO2              =  0.400G1A505X + 0.300GAA500K + 0.300GAA500X                 : ARR( 0.162E-13, -1400., 0.0);
+{ 51533} G2A504C +PERO3              =  0.460G1A505X + 0.270GAA500K + 0.270GAA500X                 : ARR( 0.488E-13, -1250., 0.0);
+{ 51534} G2A504C +PERO5              =  0.460G1A505X + 0.270GAA500K + 0.270GAA500X                 : ARR( 0.183E-11,   450., 0.0);
+{ 51535} G2A504C +PERO6              =  0.300G1A505X + 0.350GAA500K + 0.350GAA500X                 : ARR( 0.168E-13, -1300., 0.0);
+{ 51536} G2A504C +PERO9              =  0.650G1A505X + 0.350GAA500X                                : ARR( 0.100E-10,     0., 0.0);
+{ 51537} G1A505X                     =       G3A3002 +      GAD2000                                : ARR( 0.200E+15,  6105., 0.0);
+{ 51538} G1A505X                     =       GAD4006 +      GCO     +      GHO                     : ARR( 0.200E+15,  6762., 0.0);
+{ 51539} GPA5009                     =       G3A5007 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 51540} GPA5009 +GHO                =       GPA500m +      GHO2                                   : ARR( 0.294E-11,     0., 0.0);
+{ 51541} GPA5009 +GHO                =       G2P504L                                               : ARR( 0.544E-12,     0., 0.0);
+{ 51542} GPA5009 +GHO                =       GPD4003 +      GHO2    +      GCO2                    : ARR( 0.539E-12,     0., 0.0);
+{ 51543} GPA5009+HV               =       G3A3002 +      G2P2000                                :  0.100E+01*SUN;
+{ 51544} GPA5009+HV               =       G3A5007 +      GNO2                                   :  0.100E+01*SUN;
+{ 51545} G2P504L +GNO                =       G1P505p +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 51546} G2P504L +GNO                =       GPA500q                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 51547} G2P504L +GHO2               =       GPA500r                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 51548} G2P504L +GNO3               =       G1P505p +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 51549} G2P504L +MEPERO             =  0.340G1P505p + 0.330GPA500W + 0.330GPA500s                 : ARR( 0.565E-13,  -845., 0.0);
+{ 51550} G2P504L +PERO1              =  0.460G1P505p + 0.270GPA500W + 0.270GPA500s                 : ARR( 0.434E-13,  -900., 0.0);
+{ 51551} G2P504L +PERO2              =  0.400G1P505p + 0.300GPA500W + 0.300GPA500s                 : ARR( 0.162E-13, -1400., 0.0);
+{ 51552} G2P504L +PERO3              =  0.460G1P505p + 0.270GPA500W + 0.270GPA500s                 : ARR( 0.488E-13, -1250., 0.0);
+{ 51553} G2P504L +PERO5              =  0.460G1P505p + 0.270GPA500W + 0.270GPA500s                 : ARR( 0.183E-11,   450., 0.0);
+{ 51554} G2P504L +PERO6              =  0.300G1P505p + 0.350GPA500W + 0.350GPA500s                 : ARR( 0.168E-13, -1300., 0.0);
+{ 51555} G2P504L +PERO9              =  0.650G1P505p + 0.350GPA500s                                : ARR( 0.100E-10,     0., 0.0);
+{ 51556} G1P505p                     =       G3A3002 +      GPD2000                                : ARR( 0.200E+15,  6105., 0.0);
+{ 51557} G1P505p                     =       GAD4006 +      GCO     +      GNO2                    : ARR( 0.200E+15,  6793., 0.0);
+{ 51558} GAH400h +GHO                =       GAH400n +      GHO2                                   : ARR( 0.295E-11,     0., 0.0);
+{ 51559} GAH400h +GHO                =       GAD4006 +      GHO                                    : ARR( 0.102E-10,     0., 0.0);
+{ 51560} GAH400h +GHO                =       G2A400a                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 51561} GAH400h+HV               =       G3A3002 +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 51562} GAH400h+HV               =       G1A400e +      GHO                                    :  0.100E+01*SUN;
+{ 51563} GAD4006 +GHO                =       GAD4008 +      GHO2                                   : ARR( 0.296E-11,     0., 0.0);
+{ 51564} GAD4006 +GHO                =       G3A3002 +      GCO                                    : ARR( 0.132E-10,     0., 0.0);
+{ 51565} GAD4006 +GNO3               =       G3A3002 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 51566} GAD4006+HV               =       G3A3002 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 51567} GAD4006+HV               =       GAD3001 +      GCO                                    :  0.100E+01*SUN;
+{ 51568} GAD4006+HV               =       GAO2000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 51569} GPH502Q                     =       G3H502H +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 51570} GPH502Q +GHO                =       GPH503b +      GHO2                                   : ARR( 0.130E-10,     0., 0.0);
+{ 51571} GPH502Q +GHO                =       GPK500Q +      GHO                                    : ARR( 0.255E-10,     0., 0.0);
+{ 51572} GPH502Q +GHO                =       G2P501o                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 51573} GPH502Q+HV               =       G1P502A +      GHO                                    :  0.100E+01*SUN;
+{ 51574} GPH502Q+HV               =       G3H3004 +      G2P2000                                :  0.100E+01*SUN;
+{ 51575} GPH502Q+HV               =       G3H502H +      GNO2                                   :  0.100E+01*SUN;
+{ 51576} GPP5005                     =       G3P5006 +      GNO2                                   : ARR( 0.400E+16, 12800., 0.0);
+{ 51577} GPP5005 +GHO                =       G2P504M                                               : ARR( 0.105E-11,     0., 0.0);
+{ 51578} GPP5005+HV               =       G3P5006 +      GNO2                                   :  0.200E+01*SUN;
+{ 51579} GPP5005+HV               =       G3P3000 +      G2P2000                                :  0.100E+01*SUN;
+{ 51580} G2P504M +GNO                =       G1P505q +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 51581} G2P504M +GNO                =       GPP500P                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 51582} G2P504M +GHO2               =       GPP500Q                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 51583} G2P504M +GNO3               =       G1P505q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 51584} G2P504M +MEPERO             =  0.340G1P505q + 0.330GPP5006 + 0.330GPP500R                 : ARR( 0.565E-13,  -845., 0.0);
+{ 51585} G2P504M +PERO1              =  0.460G1P505q + 0.270GPP5006 + 0.270GPP500R                 : ARR( 0.434E-13,  -900., 0.0);
+{ 51586} G2P504M +PERO2              =  0.400G1P505q + 0.300GPP5006 + 0.300GPP500R                 : ARR( 0.162E-13, -1400., 0.0);
+{ 51587} G2P504M +PERO3              =  0.460G1P505q + 0.270GPP5006 + 0.270GPP500R                 : ARR( 0.488E-13, -1250., 0.0);
+{ 51588} G2P504M +PERO5              =  0.460G1P505q + 0.270GPP5006 + 0.270GPP500R                 : ARR( 0.183E-11,   450., 0.0);
+{ 51589} G2P504M +PERO6              =  0.300G1P505q + 0.350GPP5006 + 0.350GPP500R                 : ARR( 0.168E-13, -1300., 0.0);
+{ 51590} G2P504M +PERO9              =  0.650G1P505q + 0.350GPP500R                                : ARR( 0.100E-10,     0., 0.0);
+{ 51591} G1P505q                     =       G3P3000 +      GPD2000                                : ARR( 0.200E+15,  5308., 0.0);
+{ 51592} GPH502R                     =       G3H502A +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 51593} GPH502R +GHO                =       GPN5021 +      GHO                                    : ARR( 0.325E-11,     0., 0.0);
+{ 51594} GPH502R +GHO                =       G2P504N                                               : ARR( 0.531E-12,     0., 0.0);
+{ 51595} GPH502R +GHO                =       G2P501p                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 51596} GPH502R+HV               =       G1P502B +      GHO                                    :  0.100E+01*SUN;
+{ 51597} GPH502R+HV               =       G1P505r +      GNO2                                   :  0.100E+01*SUN;
+{ 51598} GPH502R+HV               =       G3H3005 +      G2P2000                                :  0.100E+01*SUN;
+{ 51599} GPH502R+HV               =       G3H502A +      GNO2                                   :  0.100E+01*SUN;
+{ 51600} G2P504N +GNO                =       G1P505s +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 51601} G2P504N +GNO                =       GPH504y                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 51602} G2P504N +GHO2               =       GPH504z                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 51603} G2P504N +GNO3               =       G1P505s +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 51604} G2P504N +MEPERO             =  0.340G1P505s + 0.330GPH5051 + 0.330GPH5052                 : ARR( 0.565E-13,  -845., 0.0);
+{ 51605} G2P504N +PERO1              =  0.460G1P505s + 0.270GPH5051 + 0.270GPH5052                 : ARR( 0.434E-13,  -900., 0.0);
+{ 51606} G2P504N +PERO2              =  0.400G1P505s + 0.300GPH5051 + 0.300GPH5052                 : ARR( 0.162E-13, -1400., 0.0);
+{ 51607} G2P504N +PERO3              =  0.460G1P505s + 0.270GPH5051 + 0.270GPH5052                 : ARR( 0.488E-13, -1250., 0.0);
+{ 51608} G2P504N +PERO5              =  0.460G1P505s + 0.270GPH5051 + 0.270GPH5052                 : ARR( 0.183E-11,   450., 0.0);
+{ 51609} G2P504N +PERO6              =  0.300G1P505s + 0.350GPH5051 + 0.350GPH5052                 : ARR( 0.168E-13, -1300., 0.0);
+{ 51610} G2P504N +PERO9              =  0.650G1P505s + 0.350GPH5052                                : ARR( 0.100E-10,     0., 0.0);
+{ 51611} G1P505r                     =       GHD2000 +      G3P3000                                : ARR( 0.200E+15,  2981., 0.0);
+{ 51612} G1P505s                     =       G3H3005 +      GPD2000                                : ARR( 0.200E+15,  5396., 0.0);
+{ 51613} GPN5021                     =       G3N501q +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 51614} GPN5021 +GHO                =       G2P504O                                               : ARR( 0.530E-12,     0., 0.0);
+{ 51615} GPN5021 +GHO                =       G3P500Y                                               : ARR( 0.419E-11,     0., 0.0);
+{ 51616} GPN5021 +GNO3               =       G3P500Y +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 51617} GPN5021+HV               =       G3N501q +      GNO2                                   :  0.100E+01*SUN;
+{ 51618} GPN5021+HV               =       G3P3000 +      GDD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 51619} GPN5021+HV               =       G1P505t +      GNO2                                   :  0.100E+01*SUN;
+{ 51620} GPN5021+HV               =       GPD4003 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 51621} G2P504O +GNO                =       G1P505u +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 51622} G2P504O +GNO                =       GPN502p                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 51623} G2P504O +GHO2               =       GPH5053                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 51624} G2P504O +GNO3               =       G1P505u +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 51625} G2P504O +MEPERO             =  0.340G1P505u + 0.330GPN502q + 0.330GPN502r                 : ARR( 0.565E-13,  -845., 0.0);
+{ 51626} G2P504O +PERO1              =  0.460G1P505u + 0.270GPN502q + 0.270GPN502r                 : ARR( 0.434E-13,  -900., 0.0);
+{ 51627} G2P504O +PERO2              =  0.400G1P505u + 0.300GPN502q + 0.300GPN502r                 : ARR( 0.162E-13, -1400., 0.0);
+{ 51628} G2P504O +PERO3              =  0.460G1P505u + 0.270GPN502q + 0.270GPN502r                 : ARR( 0.488E-13, -1250., 0.0);
+{ 51629} G2P504O +PERO5              =  0.460G1P505u + 0.270GPN502q + 0.270GPN502r                 : ARR( 0.183E-11,   450., 0.0);
+{ 51630} G2P504O +PERO6              =  0.300G1P505u + 0.350GPN502q + 0.350GPN502r                 : ARR( 0.168E-13, -1300., 0.0);
+{ 51631} G2P504O +PERO9              =  0.650G1P505u + 0.350GPN502r                                : ARR( 0.100E-10,     0., 0.0);
+{ 51632} G3P500Y +GHO2               =  0.800GPG500b + 0.200GPA500k + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 51633} G3P500Y +GNO                =       GPD4003 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 51634} G3P500Y +GNO2               =       GPP500P                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 51635} G3P500Y +GNO3               =       GPD4003 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 51636} G3P500Y +MEPERO             =  0.685GPD4003 + 0.315GPA500k + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 51637} G3P500Y +PERO1              =  0.800GPD4003 + 0.200GPA500k + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 51638} G3P500Y +PERO2              =  0.750GPD4003 + 0.250GPA500k + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 51639} G3P500Y +PERO3              =  0.800GPD4003 + 0.200GPA500k + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 51640} G3P500Y +PERO5              =  0.650GPD4003 + 0.350GPA500k + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 51641} G3P500Y +PERO6              =  0.650GPD4003 + 0.350GPA500k + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 51642} G3P500Y +PERO9              =       GPD4003 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 51643} G1P505t                     =       G3P3000 +      GDD2000                                : ARR( 0.200E+15,  4865., 0.0);
+{ 51644} G1P505u                     =       GCO     +      GND400N +      GNO2                    : ARR( 0.200E+15,  6793., 0.0);
+{ 51645} G1P505u                     =       GPD2000 +      G3N3005                                : ARR( 0.200E+15,  6450., 0.0);
+{ 51646} GPN5022                     =       G3N501N +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 51647} GPN5022 +GHO                =       G2P504P                                               : ARR( 0.335E-13,     0., 0.0);
+{ 51648} GPN5022 +GHO                =       GPN5028 +      GNO2                                   : ARR( 0.584E-13,     0., 0.0);
+{ 51649} GPN5022 +GHO                =       GPN5024 +      GNO2                                   : ARR( 0.438E-13,     0., 0.0);
+{ 51650} GPN5022+HV               =       G1P502H +      GNO2                                   :  0.100E+01*SUN;
+{ 51651} GPN5022+HV               =       G3N3001 +      GPD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 51652} GPN5022+HV               =       G1P502C +      GNO2                                   :  0.100E+01*SUN;
+{ 51653} GPN5022+HV               =       G3N501N +      GNO2                                   :  0.100E+01*SUN;
+{ 51654} G2P504P +GNO                =       G1P505v +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 51655} G2P504P +GNO                =       GPN502Z                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 51656} G2P504P +GHO2               =       GPH504y                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 51657} G2P504P +GNO3               =       G1P505v +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 51658} G2P504P +MEPERO             =  0.480G1P505v + 0.260GPN5025 + 0.260GPN502p                 : ARR( 0.164E-12,  -795., 0.0);
+{ 51659} G2P504P +PERO1              =  0.600G1P505v + 0.200GPN5025 + 0.200GPN502p                 : ARR( 0.126E-12,  -850., 0.0);
+{ 51660} G2P504P +PERO2              =  0.560G1P505v + 0.220GPN5025 + 0.220GPN502p                 : ARR( 0.471E-13, -1350., 0.0);
+{ 51661} G2P504P +PERO3              =  0.600G1P505v + 0.200GPN5025 + 0.200GPN502p                 : ARR( 0.142E-12, -1200., 0.0);
+{ 51662} G2P504P +PERO5              =  0.600G1P505v + 0.200GPN5025 + 0.200GPN502p                 : ARR( 0.533E-11,   500., 0.0);
+{ 51663} G2P504P +PERO6              =  0.460G1P505v + 0.270GPN5025 + 0.270GPN502p                 : ARR( 0.488E-13, -1250., 0.0);
+{ 51664} G2P504P +PERO9              =  0.800G1P505v + 0.200GPN502p                                : ARR( 0.100E-10,     0., 0.0);
+{ 51665} G1P505v +OXYGEN             =       GPN502p +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 51666} G1P505v                     =       GPN400b +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7323., 0.0);
+{ 51667} GPH502S                     =       G3H501q +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 51668} GPH502S +GHO                =       GPN5024 +      GHO                                    : ARR( 0.154E-10,     0., 0.0);
+{ 51669} GPH502S +GHO                =       G2P501q                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 51670} GPH502S+HV               =       G1P505w +      GNO2                                   :  0.100E+01*SUN;
+{ 51671} GPH502S+HV               =       G3N3001 +      GPD2000 +      GHO                     :  0.100E+01*SUN;
+{ 51672} GPH502S+HV               =       G1P502C +      GHO                                    :  0.100E+01*SUN;
+{ 51673} GPH502S+HV               =       G3H501q +      GNO2                                   :  0.100E+01*SUN;
+{ 51674} G1P505w                     =       GD02000 +      G3P3003                                : ARR( 0.200E+15,  3523., 0.0);
+{ 51675} GPN5023                     =       G3N501T +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 51676} GPN5023 +GHO                =       GPN5024 +      GHO2                                   : ARR( 0.406E-11,     0., 0.0);
+{ 51677} GPN5023+HV               =       G1P502J +      GNO2                                   :  0.100E+01*SUN;
+{ 51678} GPN5023+HV               =       G3N3001 +      GPD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 51679} GPN5023+HV               =       G3N501T +      GNO2                                   :  0.100E+01*SUN;
+{ 51680} GPN5024                     =       G3N502W +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 51681} GPN5024 +GHO                =       G2P504Q                                               : ARR( 0.335E-13,     0., 0.0);
+{ 51682} GPN5024 +GHO                =       GPK500Z +      GNO2                                   : ARR( 0.584E-13,     0., 0.0);
+{ 51683} GPN5024+HV               =       G1P502L +      GNO2                                   :  0.100E+01*SUN;
+{ 51684} GPN5024+HV               =       G3N3001 +      GCO     +      GNO2    +      GCO      :  0.100E+01*SUN;
+{ 51685} GPN5024+HV               =       G3N3001 +      GCO     +      GCO     +      GNO2     :  0.100E+01*SUN;
+{ 51686} G2P504Q +GNO                =       G1P505x +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 51687} G2P504Q +GNO                =       GPN502b                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 51688} G2P504Q +GHO2               =       GPH5052                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 51689} G2P504Q +GNO3               =       G1P505x +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 51690} G2P504Q +MEPERO             =  0.480G1P505x + 0.260GPN5027 + 0.260GPN502r                 : ARR( 0.164E-12,  -795., 0.0);
+{ 51691} G2P504Q +PERO1              =  0.600G1P505x + 0.200GPN5027 + 0.200GPN502r                 : ARR( 0.126E-12,  -850., 0.0);
+{ 51692} G2P504Q +PERO2              =  0.560G1P505x + 0.220GPN5027 + 0.220GPN502r                 : ARR( 0.471E-13, -1350., 0.0);
+{ 51693} G2P504Q +PERO3              =  0.600G1P505x + 0.200GPN5027 + 0.200GPN502r                 : ARR( 0.142E-12, -1200., 0.0);
+{ 51694} G2P504Q +PERO5              =  0.600G1P505x + 0.200GPN5027 + 0.200GPN502r                 : ARR( 0.533E-11,   500., 0.0);
+{ 51695} G2P504Q +PERO6              =  0.460G1P505x + 0.270GPN5027 + 0.270GPN502r                 : ARR( 0.488E-13, -1250., 0.0);
+{ 51696} G2P504Q +PERO9              =  0.800G1P505x + 0.200GPN502r                                : ARR( 0.100E-10,     0., 0.0);
+{ 51697} G1P505x +OXYGEN             =       GPN502r +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 51698} G1P505x                     =       GPD4008 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  6903., 0.0);
+{ 51699} GPN5025                     =       G3N502E +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 51700} GPN5025 +GHO                =       GPN502p +      GHO2                                   : ARR( 0.839E-12,     0., 0.0);
+{ 51701} GPN5025 +GHO                =       GPN502B +      GNO2                                   : ARR( 0.749E-13,     0., 0.0);
+{ 51702} GPN5025 +GHO                =       G1P505v                                               : ARR( 0.219E-17,    85., 2.0);
+{ 51703} GPN5025+HV               =       G1P502M +      GNO2                                   :  0.100E+01*SUN;
+{ 51704} GPN5025+HV               =       G3N3004 +      GPD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 51705} GPN5025+HV               =       G1P502D +      GNO2                                   :  0.100E+01*SUN;
+{ 51706} GPN5025+HV               =       G3N502E +      GNO2                                   :  0.100E+01*SUN;
+{ 51707} GPH502T                     =       G3H502z +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 51708} GPH502T +GHO                =       GPN5027 +      GHO                                    : ARR( 0.161E-10,     0., 0.0);
+{ 51709} GPH502T +GHO                =       G2P501r                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 51710} GPH502T+HV               =       G1P505y +      GNO2                                   :  0.100E+01*SUN;
+{ 51711} GPH502T+HV               =       G3N3004 +      GPD2000 +      GHO                     :  0.100E+01*SUN;
+{ 51712} GPH502T+HV               =       G1P502D +      GHO                                    :  0.100E+01*SUN;
+{ 51713} GPH502T+HV               =       G3H502z +      GNO2                                   :  0.100E+01*SUN;
+{ 51714} G1P505y                     =       GDO2000 +      G3P3003                                : ARR( 0.200E+15,  3778., 0.0);
+{ 51715} GPN5026                     =       G3N5025 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 51716} GPN5026 +GHO                =       GPN502q +      GHO2                                   : ARR( 0.865E-12,     0., 0.0);
+{ 51717} GPN5026 +GHO                =       GPN5027 +      GHO2                                   : ARR( 0.412E-11,     0., 0.0);
+{ 51718} GPN5026+HV               =       G1P505z +      GNO2                                   :  0.100E+01*SUN;
+{ 51719} GPN5026+HV               =       G3N3004 +      GPD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 51720} GPN5026+HV               =       G3N5025 +      GNO2                                   :  0.100E+01*SUN;
+{ 51721} G1P505z                     =       GDO2000 +      G3P3002                                : ARR( 0.200E+15,  3778., 0.0);
+{ 51722} GPN5027                     =       G3N502X +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 51723} GPN5027 +GHO                =       GPN502r +      GHO2                                   : ARR( 0.804E-12,     0., 0.0);
+{ 51724} GPN5027 +GHO                =       GPK500b +      GNO2                                   : ARR( 0.718E-13,     0., 0.0);
+{ 51725} GPN5027 +GHO                =       G1P505x                                               : ARR( 0.210E-17,    85., 2.0);
+{ 51726} GPN5027+HV               =       G1P502N +      GNO2                                   :  0.100E+01*SUN;
+{ 51727} GPN5027+HV               =       G3N3004 +      GCO     +      GNO2    +      GCO      :  0.100E+01*SUN;
+{ 51728} GPN5027+HV               =       G3N3004 +      GCO     +      GCO     +      GNO2     :  0.100E+01*SUN;
+{ 51729} G3N502X +GHO2               =  0.800GGN502Z + 0.200GAN5023 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 51730} G3N502X +GNO                =       G3N3004 +      GNO2    +      GCO2    +      GCO      : ARR( 0.810E-11,  -270., 0.0);
+{ 51731} G3N502X +GNO2               =       GPN5027                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 51732} G3N502X +GNO3               =       G3N3004 +      GNO2    +      GCO2    +      GCO      : ARR( 0.500E-11,     0., 0.0);
+{ 51733} G3N502X +MEPERO             =  0.685G3N3004 + 0.315GAN5023 + 0.685GCO2    + 0.685GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 51734} G3N502X +PERO1              =  0.800G3N3004 + 0.200GAN5023 + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 51735} G3N502X +PERO2              =  0.750G3N3004 + 0.250GAN5023 + 0.750GCO2    + 0.750GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 51736} G3N502X +PERO3              =  0.800G3N3004 + 0.200GAN5023 + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 51737} G3N502X +PERO5              =  0.650G3N3004 + 0.350GAN5023 + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 51738} G3N502X +PERO6              =  0.650G3N3004 + 0.350GAN5023 + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 51739} G3N502X +PERO9              =       G3N3004 +      GCO2    +      GCO                     : ARR( 0.500E-11,  -500., 0.0);
+{ 51740} GPD500F                     =       G3D500D +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 51741} GPD500F +GHO                =       G3P3000 + 2.000GCO                                    : ARR( 0.132E-10,     0., 0.0);
+{ 51742} GPD500F +GNO3               =       G3P3000 +      GHNO3   + 2.000GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 51743} GPD500F+HV               =       G3D500D +      GNO2                                   :  0.100E+01*SUN;
+{ 51744} GPD500F+HV               =       G3P3000 +      G3D2000                                :  0.100E+01*SUN;
+{ 51745} GPD500F+HV               =       G3P3000 +      GCO     +      GCO     +      GHO2     :  0.100E+01*SUN;
+{ 51746} GPD500F+HV               =       GPD4003 +      GCO                                    :  0.100E+01*SUN;
+{ 51747} GPD500F+HV               =       GPD3000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 51748} GPN5028                     =       G3N501P +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 51749} GPN5028 +GHO                =       G2P504R                                               : ARR( 0.102E-12,     0., 0.0);
+{ 51750} GPN5028 +GHO                =       GPK500Z +      GNO2                                   : ARR( 0.438E-13,     0., 0.0);
+{ 51751} GPN5028+HV               =       G3K2000 +      G3P3001                                :  0.100E+01*SUN;
+{ 51752} GPN5028+HV               =       G1P502F +      GNO2                                   :  0.100E+01*SUN;
+{ 51753} GPN5028+HV               =       G3N501P +      GNO2                                   :  0.100E+01*SUN;
+{ 51754} G2P504R +GNO                =       G1P5061 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 51755} G2P504R +GNO                =       GPN502c                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 51756} G2P504R +GHO2               =       GPH5054                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 51757} G2P504R +GNO3               =       G1P5061 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 51758} G2P504R +MEPERO             =  0.480G1P5061 + 0.260GPN502B + 0.260GPN502s                 : ARR( 0.164E-12,  -795., 0.0);
+{ 51759} G2P504R +PERO1              =  0.600G1P5061 + 0.200GPN502B + 0.200GPN502s                 : ARR( 0.126E-12,  -850., 0.0);
+{ 51760} G2P504R +PERO2              =  0.560G1P5061 + 0.220GPN502B + 0.220GPN502s                 : ARR( 0.471E-13, -1350., 0.0);
+{ 51761} G2P504R +PERO3              =  0.600G1P5061 + 0.200GPN502B + 0.200GPN502s                 : ARR( 0.142E-12, -1200., 0.0);
+{ 51762} G2P504R +PERO5              =  0.600G1P5061 + 0.200GPN502B + 0.200GPN502s                 : ARR( 0.533E-11,   500., 0.0);
+{ 51763} G2P504R +PERO6              =  0.460G1P5061 + 0.270GPN502B + 0.270GPN502s                 : ARR( 0.488E-13, -1250., 0.0);
+{ 51764} G2P504R +PERO9              =  0.800G1P5061 + 0.200GPN502s                                : ARR( 0.100E-10,     0., 0.0);
+{ 51765} G1P5061                     =       G3P3001 +      GCH2O   +      GCO                     : ARR( 0.200E+15,  3897., 0.0);
+{ 51766} GPH502U                     =       G3H501r +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 51767} GPH502U +GHO                =       GPK500Z +      GHO                                    : ARR( 0.154E-10,     0., 0.0);
+{ 51768} GPH502U +GHO                =       G2P501t                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 51769} GPH502U+HV               =       G3K2000 +      G3P3003                                :  0.100E+01*SUN;
+{ 51770} GPH502U+HV               =       G1P502F +      GHO                                    :  0.100E+01*SUN;
+{ 51771} GPH502U+HV               =       G3H501r +      GNO2                                   :  0.100E+01*SUN;
+{ 51772} GPK500Y                     =       G3K500e +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 51773} GPK500Y +GHO                =       GPK500Z +      GHO2                                   : ARR( 0.407E-11,     0., 0.0);
+{ 51774} GPK500Y+HV               =       G3K2000 +      G3P3002                                :  0.100E+01*SUN;
+{ 51775} GPK500Y+HV               =       G3K500e +      GNO2                                   :  0.100E+01*SUN;
+{ 51776} GPK500Z                     =       G3K500o +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 51777} GPK500Z +GHO                =       G2P504S                                               : ARR( 0.102E-12,     0., 0.0);
+{ 51778} GPK500Z+HV               =       G3K2000 +      GCO     +      GNO2    + 2.000GCO      :  0.100E+01*SUN;
+{ 51779} GPK500Z+HV               =       G3K2000 +      GCO     + 2.000GCO     +      GNO2     :  0.100E+01*SUN;
+{ 51780} GPK500Z+HV               =       G3K2000 +      GCO     + 2.000GCO     +      GNO2     :  0.100E+01*SUN;
+{ 51781} G2P504S +GNO                =       G1P5062 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 51782} G2P504S +GNO                =       GPN502e                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 51783} G2P504S +GHO2               =       GPH5055                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 51784} G2P504S +GNO3               =       G1P5062 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 51785} G2P504S +MEPERO             =  0.480G1P5062 + 0.260GPK500b + 0.260GPD500O                 : ARR( 0.164E-12,  -795., 0.0);
+{ 51786} G2P504S +PERO1              =  0.600G1P5062 + 0.200GPK500b + 0.200GPD500O                 : ARR( 0.126E-12,  -850., 0.0);
+{ 51787} G2P504S +PERO2              =  0.560G1P5062 + 0.220GPK500b + 0.220GPD500O                 : ARR( 0.471E-13, -1350., 0.0);
+{ 51788} G2P504S +PERO3              =  0.600G1P5062 + 0.200GPK500b + 0.200GPD500O                 : ARR( 0.142E-12, -1200., 0.0);
+{ 51789} G2P504S +PERO5              =  0.600G1P5062 + 0.200GPK500b + 0.200GPD500O                 : ARR( 0.533E-11,   500., 0.0);
+{ 51790} G2P504S +PERO6              =  0.460G1P5062 + 0.270GPK500b + 0.270GPD500O                 : ARR( 0.488E-13, -1250., 0.0);
+{ 51791} G2P504S +PERO9              =  0.800G1P5062 + 0.200GPD500O                                : ARR( 0.100E-10,     0., 0.0);
+{ 51792} G1P5062                     =       GCO     +      GCH2O   +      GNO2    + 3.000GCO      : ARR( 0.200E+15,  3862., 0.0);
+{ 51793} GPH502W                     =       G3H502y +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 51794} GPH502W +GHO                =       GPN5029 +      GHO                                    : ARR( 0.518E-10,     0., 0.0);
+{ 51795} GPH502W +GHO                =       G2P501u                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 51796} GPH502W+HV               =       G1P502G +      GHO                                    :  0.100E+01*SUN;
+{ 51797} GPH502W+HV               =       G3H3000 +      GPD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 51798} GPH502W+HV               =       G1P5063 +      GNO2                                   :  0.100E+01*SUN;
+{ 51799} GPH502W+HV               =       G3H502y +      GNO2                                   :  0.100E+01*SUN;
+{ 51800} G1P5063                     =       GPD5005 +      GHO                                    : ARR( 0.160E+12,  3634., 0.0);
+{ 51801} G1P5063                     =       G3H3000 +      GPD2000                                : ARR( 0.200E+15,  5332., 0.0);
+{ 51802} GPN5029                     =       G3N501r +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 51803} GPN5029 +GHO                =       G3P500Z                                               : ARR( 0.664E-10,     0., 0.0);
+{ 51804} GPN5029 +GNO3               =       G3P500Z +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 51805} GPN5029+HV               =       G3N501r +      GNO2                                   :  0.100E+01*SUN;
+{ 51806} GPN5029+HV               =       G1P5064 +      GNO2                                   :  0.100E+01*SUN;
+{ 51807} GPN5029+HV               =       G3P3001 +      G2D2000                                :  0.100E+01*SUN;
+{ 51808} GPN5029+HV               =       G2P400g +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 51809} G3P500Z +GHO2               =  0.800GPG500e + 0.200GPA500n + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 51810} G3P500Z +GNO                =       G2P400g +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 51811} G3P500Z +GNO2               =       GPP500P                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 51812} G3P500Z +GNO3               =       G2P400g +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 51813} G3P500Z +MEPERO             =  0.685G2P400g + 0.315GPA500n + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 51814} G3P500Z +PERO1              =  0.800G2P400g + 0.200GPA500n + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 51815} G3P500Z +PERO2              =  0.750G2P400g + 0.250GPA500n + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 51816} G3P500Z +PERO3              =  0.800G2P400g + 0.200GPA500n + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 51817} G3P500Z +PERO5              =  0.650G2P400g + 0.350GPA500n + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 51818} G3P500Z +PERO6              =  0.650G2P400g + 0.350GPA500n + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 51819} G3P500Z +PERO9              =       G2P400g +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 51820} G1P5064                     =       GPD2000 +      G3D3000                                : ARR( 0.200E+15,  5308., 0.0);
+{ 51821} GPH502X                     =       G3H5031 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 51822} GPH502X +GHO                =       GPN5028 +      GHO                                    : ARR( 0.209E-10,     0., 0.0);
+{ 51823} GPH502X +GHO                =       G2P501v                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 51824} GPH502X+HV               =       G1P502H +      GHO                                    :  0.100E+01*SUN;
+{ 51825} GPH502X+HV               =       G3H3001 +      GPD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 51826} GPH502X+HV               =       G1P5065 +      GNO2                                   :  0.100E+01*SUN;
+{ 51827} GPH502X+HV               =       G3H5031 +      GNO2                                   :  0.100E+01*SUN;
+{ 51828} G1P5065                     =       G3H3001 +      GPD2000                                : ARR( 0.200E+15,  5359., 0.0);
+{ 51829} GPP3001                     =       G3P3001 +      GNO2                                   : ARR( 0.400E+16, 12800., 0.0);
+{ 51830} GPP3001 +GHO                =       GPP3004 +      GNO2                                   : ARR( 0.438E-13,     0., 0.0);
+{ 51831} GPP3001+HV               =       G3P3001 +      GNO2                                   :  0.200E+01*SUN;
+{ 51832} GPP3001+HV               =       G1P300B +      GNO2                                   :  0.100E+01*SUN;
+{ 51833} GPH502Y                     =       G3H5037 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 51834} GPH502Y +GHO                =       GPK500Y +      GHO                                    : ARR( 0.209E-10,     0., 0.0);
+{ 51835} GPH502Y +GHO                =       GPH502a +      GHO2                                   : ARR( 0.392E-11,     0., 0.0);
+{ 51836} GPH502Y +GHO                =       G2P501x                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 51837} GPH502Y+HV               =       G1P502J +      GHO                                    :  0.100E+01*SUN;
+{ 51838} GPH502Y+HV               =       G3H3001 +      GPD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 51839} GPH502Y+HV               =       G3H5037 +      GNO2                                   :  0.100E+01*SUN;
+{ 51840} GPP3002                     =       G3P3002 +      GNO2                                   : ARR( 0.400E+16, 12800., 0.0);
+{ 51841} GPP3002 +GHO                =       GPP3004 +      GHO2                                   : ARR( 0.397E-11,     0., 0.0);
+{ 51842} GPP3002+HV               =       G3P3002 +      GNO2                                   :  0.200E+01*SUN;
+{ 51843} GPH502Z                     =       G3H5042 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 51844} GPH502Z +GHO                =       GPD500G +      GHO                                    : ARR( 0.518E-10,     0., 0.0);
+{ 51845} GPH502Z +GHO                =       G2P501y                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 51846} GPH502Z+HV               =       G1P502K +      GHO                                    :  0.100E+01*SUN;
+{ 51847} GPH502Z+HV               =       G3H3000 +      GCO     +      GNO2    +      GCO      :  0.100E+01*SUN;
+{ 51848} GPH502Z+HV               =       G3H3000 +      GCO     +      GCO     +      GNO2     :  0.100E+01*SUN;
+{ 51849} GPD500G                     =       G3D500J +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 51850} GPD500G +GHO                =       G3P500a                                               : ARR( 0.664E-10,     0., 0.0);
+{ 51851} GPD500G +GNO3               =       G3P500a +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 51852} GPD500G+HV               =       G3D3000 +      GCO     +      GCO     +      GNO2     :  0.100E+01*SUN;
+{ 51853} GPD500G+HV               =       GCO     +      G3D3000 +      GNO2    +      GCO      :  0.100E+01*SUN;
+{ 51854} GPD500G+HV               =       G2P400h +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 51855} G3P500a +GHO2               =  0.800GPG500g + 0.200GPA500p + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 51856} G3P500a +GNO                =       G2P400h +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 51857} G3P500a +GNO2               =       GPP500R                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 51858} G3P500a +GNO3               =       G2P400h +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 51859} G3P500a +MEPERO             =  0.685G2P400h + 0.315GPA500p + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 51860} G3P500a +PERO1              =  0.800G2P400h + 0.200GPA500p + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 51861} G3P500a +PERO2              =  0.750G2P400h + 0.250GPA500p + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 51862} G3P500a +PERO3              =  0.800G2P400h + 0.200GPA500p + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 51863} G3P500a +PERO5              =  0.650G2P400h + 0.350GPA500p + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 51864} G3P500a +PERO6              =  0.650G2P400h + 0.350GPA500p + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 51865} G3P500a +PERO9              =       G2P400h +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 51866} GPH502a                     =       G3H5043 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 51867} GPH502a +GHO                =       GPK500Z +      GHO                                    : ARR( 0.209E-10,     0., 0.0);
+{ 51868} GPH502a +GHO                =       G2P501z                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 51869} GPH502a+HV               =       G1P502L +      GHO                                    :  0.100E+01*SUN;
+{ 51870} GPH502a+HV               =       G3H3001 +      GCO     +      GNO2    +      GCO      :  0.100E+01*SUN;
+{ 51871} GPH502a+HV               =       G3H3001 +      GCO     +      GCO     +      GNO2     :  0.100E+01*SUN;
+{ 51872} GPH502b                     =       G3H5044 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 51873} GPH502b +GHO                =       GPH5056 +      GHO2                                   : ARR( 0.128E-10,     0., 0.0);
+{ 51874} GPH502b +GHO                =       GPN502B +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 51875} GPH502b +GHO                =       G2P5021                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 51876} GPH502b+HV               =       G1P502M +      GHO                                    :  0.100E+01*SUN;
+{ 51877} GPH502b+HV               =       G3H3004 +      GPD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 51878} GPH502b+HV               =       G1P5066 +      GNO2                                   :  0.100E+01*SUN;
+{ 51879} GPH502b+HV               =       G3H5044 +      GNO2                                   :  0.100E+01*SUN;
+{ 51880} G3H5044 +GHO2               =  0.800GGH504i + 0.200GAH502T + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 51881} G3H5044 +GNO                =       GHD400M + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 51882} G3H5044 +GNO2               =       GPH502b                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 51883} G3H5044 +GNO3               =       GHD400M + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 51884} G3H5044 +MEPERO             =  0.685GHD400M + 0.315GAH502T + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 51885} G3H5044 +PERO1              =  0.800GHD400M + 0.200GAH502T + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 51886} G3H5044 +PERO2              =  0.750GHD400M + 0.250GAH502T + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 51887} G3H5044 +PERO3              =  0.800GHD400M + 0.200GAH502T + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 51888} G3H5044 +PERO5              =  0.650GHD400M + 0.350GAH502T + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 51889} G3H5044 +PERO6              =  0.650GHD400M + 0.350GAH502T + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 51890} G3H5044 +PERO9              =       GHD400M +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 51891} G1P5066                     =       GPH503x +      GHO2                                   : ARR( 0.160E+12,  3981., 0.0);
+{ 51892} G1P5066                     =       G3H3004 +      GPD2000                                : ARR( 0.200E+15,  5359., 0.0);
+{ 51893} GPN502A                     =       G3N502I +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 51894} GPN502A +GHO                =       GPN502L +      GHO2                                   : ARR( 0.130E-10,     0., 0.0);
+{ 51895} GPN502A +GHO                =       GPN502B +      GHO2                                   : ARR( 0.639E-11,     0., 0.0);
+{ 51896} GPN502A+HV               =       G3K3003 +      GPD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 51897} GPN502A+HV               =       G1P504c +      GNO2                                   :  0.100E+01*SUN;
+{ 51898} GPN502A+HV               =       G3N502I +      GNO2                                   :  0.100E+01*SUN;
+{ 51899} GPN502B                     =       G3N502F +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 51900} GPN502B +GHO                =       GPN502s +      GHO2                                   : ARR( 0.249E-11,     0., 0.0);
+{ 51901} GPN502B +GHO                =       G1P5061                                               : ARR( 0.214E-17,    85., 2.0);
+{ 51902} GPN502B+HV               =       G3K2001 +      G3P3001                                :  0.100E+01*SUN;
+{ 51903} GPN502B+HV               =       G1P504q +      GNO2                                   :  0.100E+01*SUN;
+{ 51904} GPN502B+HV               =       G3N502F +      GNO2                                   :  0.100E+01*SUN;
+{ 51905} GPH502c                     =       G3H502U +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 51906} GPH502c +GHO                =       GPD500G +      GHO                                    : ARR( 0.161E-10,     0., 0.0);
+{ 51907} GPH502c +GHO                =       G3P500b                                               : ARR( 0.692E-10,     0., 0.0);
+{ 51908} GPH502c +GNO3               =       G3P500b +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 51909} GPH502c+HV               =       G3H502U +      GNO2                                   :  0.100E+01*SUN;
+{ 51910} GPH502c+HV               =       G1P5064 +      GHO                                    :  0.100E+01*SUN;
+{ 51911} GPH502c+HV               =       G3P3003 +      G2D2000                                :  0.100E+01*SUN;
+{ 51912} GPH502c+HV               =       G2P4015 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 51913} G3P500b +GHO2               =  0.800GPG500f + 0.200GPA500o + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 51914} G3P500b +GNO                =       G2P4015 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 51915} G3P500b +GNO2               =       GPP500Q                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 51916} G3P500b +GNO3               =       G2P4015 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 51917} G3P500b +MEPERO             =  0.685G2P4015 + 0.315GPA500o + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 51918} G3P500b +PERO1              =  0.800G2P4015 + 0.200GPA500o + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 51919} G3P500b +PERO2              =  0.750G2P4015 + 0.250GPA500o + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 51920} G3P500b +PERO3              =  0.800G2P4015 + 0.200GPA500o + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 51921} G3P500b +PERO5              =  0.650G2P4015 + 0.350GPA500o + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 51922} G3P500b +PERO6              =  0.650G2P4015 + 0.350GPA500o + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 51923} G3P500b +PERO9              =       G2P4015 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 51924} G2P4015 +GNO                =       G1P4014 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 51925} G2P4015 +GNO                =       GPH400P                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 51926} G2P4015 +GHO2               =       GPH400r                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 51927} G2P4015 +GNO3               =       G1P4014 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 51928} G2P4015 +MEPERO             =  0.480G1P4014 + 0.260GPH400c + 0.260GPH400v                 : ARR( 0.164E-12,  -795., 0.0);
+{ 51929} G2P4015 +PERO1              =  0.600G1P4014 + 0.200GPH400c + 0.200GPH400v                 : ARR( 0.126E-12,  -850., 0.0);
+{ 51930} G2P4015 +PERO2              =  0.560G1P4014 + 0.220GPH400c + 0.220GPH400v                 : ARR( 0.471E-13, -1350., 0.0);
+{ 51931} G2P4015 +PERO3              =  0.600G1P4014 + 0.200GPH400c + 0.200GPH400v                 : ARR( 0.142E-12, -1200., 0.0);
+{ 51932} G2P4015 +PERO5              =  0.600G1P4014 + 0.200GPH400c + 0.200GPH400v                 : ARR( 0.533E-11,   500., 0.0);
+{ 51933} G2P4015 +PERO6              =  0.460G1P4014 + 0.270GPH400c + 0.270GPH400v                 : ARR( 0.488E-13, -1250., 0.0);
+{ 51934} G2P4015 +PERO9              =  0.800G1P4014 + 0.200GPH400v                                : ARR( 0.100E-10,     0., 0.0);
+{ 51935} GPH502d                     =       G3H5045 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 51936} GPH502d +GHO                =       GPH5057 +      GHO2                                   : ARR( 0.128E-10,     0., 0.0);
+{ 51937} GPH502d +GHO                =       GPK500b +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 51938} GPH502d +GHO                =       G2P5022                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 51939} GPH502d+HV               =       G1P502N +      GHO                                    :  0.100E+01*SUN;
+{ 51940} GPH502d+HV               =       G3H3004 +      GCO     +      GNO2    +      GCO      :  0.100E+01*SUN;
+{ 51941} GPH502d+HV               =       G3H3004 +      GCO     +      GCO     +      GNO2     :  0.100E+01*SUN;
+{ 51942} G3H5045 +GHO2               =  0.800GGH504j + 0.200GAH502W + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 51943} G3H5045 +GNO                =       G3H3004 +      GNO2    +      GCO2    +      GCO      : ARR( 0.810E-11,  -270., 0.0);
+{ 51944} G3H5045 +GNO2               =       GPH502d                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 51945} G3H5045 +GNO3               =       G3H3004 +      GNO2    +      GCO2    +      GCO      : ARR( 0.500E-11,     0., 0.0);
+{ 51946} G3H5045 +MEPERO             =  0.685G3H3004 + 0.315GAH502W + 0.685GCO2    + 0.685GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 51947} G3H5045 +PERO1              =  0.800G3H3004 + 0.200GAH502W + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 51948} G3H5045 +PERO2              =  0.750G3H3004 + 0.250GAH502W + 0.750GCO2    + 0.750GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 51949} G3H5045 +PERO3              =  0.800G3H3004 + 0.200GAH502W + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 51950} G3H5045 +PERO5              =  0.650G3H3004 + 0.350GAH502W + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 51951} G3H5045 +PERO6              =  0.650G3H3004 + 0.350GAH502W + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 51952} G3H5045 +PERO9              =       G3H3004 +      GCO2    +      GCO                     : ARR( 0.500E-11,  -500., 0.0);
+{ 51953} GPK500a                     =       G3K500p +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 51954} GPK500a +GHO                =       GPD500I +      GHO2                                   : ARR( 0.129E-10,     0., 0.0);
+{ 51955} GPK500a +GHO                =       GPK500b +      GHO2                                   : ARR( 0.638E-11,     0., 0.0);
+{ 51956} GPK500a+HV               =       G3K3003 +      GCO     +      GNO2    +      GCO      :  0.100E+01*SUN;
+{ 51957} GPK500a+HV               =       G3K3003 +      GCO     +      GCO     +      GNO2     :  0.100E+01*SUN;
+{ 51958} G3K500p +GHO2               =  0.800GGK500b + 0.200GAK500W + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 51959} G3K500p +GNO                =       G3K3003 +      GNO2    +      GCO2    +      GCO      : ARR( 0.810E-11,  -270., 0.0);
+{ 51960} G3K500p +GNO2               =       GPK500a                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 51961} G3K500p +GNO3               =       G3K3003 +      GNO2    +      GCO2    +      GCO      : ARR( 0.500E-11,     0., 0.0);
+{ 51962} G3K500p +MEPERO             =  0.685G3K3003 + 0.315GAK500W + 0.685GCO2    + 0.685GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 51963} G3K500p +PERO1              =  0.800G3K3003 + 0.200GAK500W + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 51964} G3K500p +PERO2              =  0.750G3K3003 + 0.250GAK500W + 0.750GCO2    + 0.750GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 51965} G3K500p +PERO3              =  0.800G3K3003 + 0.200GAK500W + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 51966} G3K500p +PERO5              =  0.650G3K3003 + 0.350GAK500W + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 51967} G3K500p +PERO6              =  0.650G3K3003 + 0.350GAK500W + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 51968} G3K500p +PERO9              =       G3K3003 +      GCO2    +      GCO                     : ARR( 0.500E-11,  -500., 0.0);
+{ 51969} GPK500b                     =       G3K500q +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 51970} GPK500b +GHO                =       GPD500O +      GHO2                                   : ARR( 0.245E-11,     0., 0.0);
+{ 51971} GPK500b +GHO                =       G1P5062                                               : ARR( 0.210E-17,    85., 2.0);
+{ 51972} GPK500b+HV               =       G3K2001 +      GCO     +      GNO2    + 2.000GCO      :  0.100E+01*SUN;
+{ 51973} GPK500b+HV               =       G3K2001 +      GCO     + 2.000GCO     +      GNO2     :  0.100E+01*SUN;
+{ 51974} GPK500b+HV               =       G3K2001 +      GCO     + 2.000GCO     +      GNO2     :  0.100E+01*SUN;
+{ 51975} G3K500q +GHO2               =  0.800GGK500c + 0.200GAK500X + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 51976} G3K500q +GNO                =       G3K2001 +      GNO2    +      GCO2    + 2.000GCO      : ARR( 0.810E-11,  -270., 0.0);
+{ 51977} G3K500q +GNO2               =       GPK500b                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 51978} G3K500q +GNO3               =       G3K2001 +      GNO2    +      GCO2    + 2.000GCO      : ARR( 0.500E-11,     0., 0.0);
+{ 51979} G3K500q +MEPERO             =  0.685G3K2001 + 0.315GAK500X + 0.685GCO2    + 1.370GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 51980} G3K500q +PERO1              =  0.800G3K2001 + 0.200GAK500X + 0.800GCO2    + 1.600GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 51981} G3K500q +PERO2              =  0.750G3K2001 + 0.250GAK500X + 0.750GCO2    + 1.500GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 51982} G3K500q +PERO3              =  0.800G3K2001 + 0.200GAK500X + 0.800GCO2    + 1.600GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 51983} G3K500q +PERO5              =  0.650G3K2001 + 0.350GAK500X + 0.650GCO2    + 1.300GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 51984} G3K500q +PERO6              =  0.650G3K2001 + 0.350GAK500X + 0.650GCO2    + 1.300GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 51985} G3K500q +PERO9              =       G3K2001 +      GCO2    + 2.000GCO                     : ARR( 0.500E-11,  -500., 0.0);
+{ 51986} GPP3003                     =       G3P3003 +      GNO2                                   : ARR( 0.400E+16, 12800., 0.0);
+{ 51987} GPP3003 +GHO                =       GPP3004 +      GHO                                    : ARR( 0.153E-10,     0., 0.0);
+{ 51988} GPP3003 +GHO                =       G2P300A                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 51989} GPP3003+HV               =       G3P3003 +      GNO2                                   :  0.200E+01*SUN;
+{ 51990} GPP3003+HV               =       G1P300B +      GHO                                    :  0.100E+01*SUN;
+{ 51991} GPP3004                     =       G3P3004 +      GNO2                                   : ARR( 0.400E+16, 12800., 0.0);
+{ 51992} GPP3004+HV               =  2.000GCO     + 2.000GNO2    +      GCO                     :  0.200E+01*SUN;
+{ 51993} GPG5009                     =       G3G5006 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 51994} GPG5009 +GHO                =       G2P504T                                               : ARR( 0.535E-12,     0., 0.0);
+{ 51995} GPG5009 +GHO                =       GPG500g +      GHO2                                   : ARR( 0.390E-11,     0., 0.0);
+{ 51996} GPG5009 +GHO                =       G3P5007                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 51997} GPG5009+HV               =  0.500G2P400c + 0.500GHO                                    :  0.100E+01*SUN;
+{ 51998} GPG5009+HV               =       G3G3000 +      GPD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 51999} GPG5009+HV               =       G3G5006 +      GNO2                                   :  0.100E+01*SUN;
+{ 52000} G2P504T +GNO                =       G1P5067 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 52001} G2P504T +GNO                =       GPG500k                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 52002} G2P504T +GHO2               =       GPG500l                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 52003} G2P504T +GNO3               =       G1P5067 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 52004} G2P504T +MEPERO             =  0.340G1P5067 + 0.330GPG500S + 0.330GPG500m                 : ARR( 0.565E-13,  -845., 0.0);
+{ 52005} G2P504T +PERO1              =  0.460G1P5067 + 0.270GPG500S + 0.270GPG500m                 : ARR( 0.434E-13,  -900., 0.0);
+{ 52006} G2P504T +PERO2              =  0.400G1P5067 + 0.300GPG500S + 0.300GPG500m                 : ARR( 0.162E-13, -1400., 0.0);
+{ 52007} G2P504T +PERO3              =  0.460G1P5067 + 0.270GPG500S + 0.270GPG500m                 : ARR( 0.488E-13, -1250., 0.0);
+{ 52008} G2P504T +PERO5              =  0.460G1P5067 + 0.270GPG500S + 0.270GPG500m                 : ARR( 0.183E-11,   450., 0.0);
+{ 52009} G2P504T +PERO6              =  0.300G1P5067 + 0.350GPG500S + 0.350GPG500m                 : ARR( 0.168E-13, -1300., 0.0);
+{ 52010} G2P504T +PERO9              =  0.650G1P5067 + 0.350GPG500m                                : ARR( 0.100E-10,     0., 0.0);
+{ 52011} G1P5067                     =       GCO     +      GPD4007 +      GHO2                    : ARR( 0.200E+15,  6793., 0.0);
+{ 52012} G1P5067                     =       GGD2000 +      G3P3002                                : ARR( 0.200E+15,  6105., 0.0);
+{ 52013} GPA500A                     =       G3A500A +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 52014} GPA500A +GHO                =       G2P504U                                               : ARR( 0.400E-12,     0., 0.0);
+{ 52015} GPA500A +GHO                =       GPA500p +      GHO2                                   : ARR( 0.394E-11,     0., 0.0);
+{ 52016} GPA500A +GHO                =       G2P400c +      GCO2                                   : ARR( 0.535E-12,     0., 0.0);
+{ 52017} GPA500A+HV               =       G3A3000 +      GPD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 52018} GPA500A+HV               =       G3A500A +      GNO2                                   :  0.100E+01*SUN;
+{ 52019} G2P504U +GNO                =       G1P5068 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 52020} G2P504U +GNO                =       GPA500t                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 52021} G2P504U +GHO2               =       GPA500u                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 52022} G2P504U +GNO3               =       G1P5068 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 52023} G2P504U +MEPERO             =  0.340G1P5068 + 0.330GPA500W + 0.330GPA500v                 : ARR( 0.565E-13,  -845., 0.0);
+{ 52024} G2P504U +PERO1              =  0.460G1P5068 + 0.270GPA500W + 0.270GPA500v                 : ARR( 0.434E-13,  -900., 0.0);
+{ 52025} G2P504U +PERO2              =  0.400G1P5068 + 0.300GPA500W + 0.300GPA500v                 : ARR( 0.162E-13, -1400., 0.0);
+{ 52026} G2P504U +PERO3              =  0.460G1P5068 + 0.270GPA500W + 0.270GPA500v                 : ARR( 0.488E-13, -1250., 0.0);
+{ 52027} G2P504U +PERO5              =  0.460G1P5068 + 0.270GPA500W + 0.270GPA500v                 : ARR( 0.183E-11,   450., 0.0);
+{ 52028} G2P504U +PERO6              =  0.300G1P5068 + 0.350GPA500W + 0.350GPA500v                 : ARR( 0.168E-13, -1300., 0.0);
+{ 52029} G2P504U +PERO9              =  0.650G1P5068 + 0.350GPA500v                                : ARR( 0.100E-10,     0., 0.0);
+{ 52030} G1P5068                     =       GCO     +      GPD4007 +      GHO                     : ARR( 0.200E+15,  6762., 0.0);
+{ 52031} G1P5068                     =       GAD2000 +      G3P3002                                : ARR( 0.200E+15,  6105., 0.0);
+{ 52032} GPP5006                     =       G3P500B +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 52033} GPP5006                     =       G3P5007 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 52034} GPP5006 +GHO                =       GPP500R +      GHO2                                   : ARR( 0.395E-11,     0., 0.0);
+{ 52035} GPP5006 +GHO                =       G2P504W                                               : ARR( 0.542E-12,     0., 0.0);
+{ 52036} GPP5006+HV               =       G3P500B +      GNO2                                   :  0.100E+01*SUN;
+{ 52037} GPP5006+HV               =       G3P3002 +      G2P2000                                :  0.100E+01*SUN;
+{ 52038} GPP5006+HV               =       G3P5007 +      GNO2                                   :  0.100E+01*SUN;
+{ 52039} G2P504W +GNO                =       G1P5069 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 52040} G2P504W +GNO                =       GPP500S                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 52041} G2P504W +GHO2               =       GPP500T                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 52042} G2P504W +GNO3               =       G1P5069 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 52043} G2P504W +MEPERO             =  0.340G1P5069 + 0.330GPP500H + 0.330GPP500U                 : ARR( 0.565E-13,  -845., 0.0);
+{ 52044} G2P504W +PERO1              =  0.460G1P5069 + 0.270GPP500H + 0.270GPP500U                 : ARR( 0.434E-13,  -900., 0.0);
+{ 52045} G2P504W +PERO2              =  0.400G1P5069 + 0.300GPP500H + 0.300GPP500U                 : ARR( 0.162E-13, -1400., 0.0);
+{ 52046} G2P504W +PERO3              =  0.460G1P5069 + 0.270GPP500H + 0.270GPP500U                 : ARR( 0.488E-13, -1250., 0.0);
+{ 52047} G2P504W +PERO5              =  0.460G1P5069 + 0.270GPP500H + 0.270GPP500U                 : ARR( 0.183E-11,   450., 0.0);
+{ 52048} G2P504W +PERO6              =  0.300G1P5069 + 0.350GPP500H + 0.350GPP500U                 : ARR( 0.168E-13, -1300., 0.0);
+{ 52049} G2P504W +PERO9              =  0.650G1P5069 + 0.350GPP500U                                : ARR( 0.100E-10,     0., 0.0);
+{ 52050} G1P5069                     =       G3P3002 +      GPD2000                                : ARR( 0.200E+15,  6105., 0.0);
+{ 52051} G1P5069                     =       GPD4007 +      GCO     +      GNO2                    : ARR( 0.200E+15,  6793., 0.0);
+{ 52052} GPH400i                     =       G3H400e +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 52053} GPH400i +GHO                =       GPD4007 +      GHO                                    : ARR( 0.989E-11,     0., 0.0);
+{ 52054} GPH400i +GHO                =       GPH400o +      GHO2                                   : ARR( 0.386E-11,     0., 0.0);
+{ 52055} GPH400i +GHO                =       G2P400c                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 52056} GPH400i+HV               =       G1P400f +      GHO                                    :  0.100E+01*SUN;
+{ 52057} GPH400i+HV               =       G3H2000 +      GPD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 52058} GPH400i+HV               =       G3H400e +      GNO2                                   :  0.100E+01*SUN;
+{ 52059} GPD4007                     =       G3D4006 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 52060} GPD4007 +GHO                =       GPD4008 +      GHO2                                   : ARR( 0.386E-11,     0., 0.0);
+{ 52061} GPD4007 +GHO                =       G3P3002 +      GCO                                    : ARR( 0.128E-10,     0., 0.0);
+{ 52062} GPD4007 +GNO3               =       G3P3002 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 52063} GPD4007+HV               =       G3D4006 +      GNO2                                   :  0.100E+01*SUN;
+{ 52064} GPD4007+HV               =       G3P3002 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 52065} GPD4007+HV               =       GPD3001 +      GCO                                    :  0.100E+01*SUN;
+{ 52066} GPD4007+HV               =       GPO2000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 52067} GGH502G +GHO                =       GGN501h +      GHO                                    : ARR( 0.169E-11,     0., 0.0);
+{ 52068} GGH502G +GHO                =       G2G5038                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 52069} GGH502G +GHO                =       G3H502h                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 52070} GGH502G+HV               =       G1G501v +      GNO2                                   :  0.100E+01*SUN;
+{ 52071} GGH502G+HV               =       G1G504F +      GHO                                    :  0.100E+01*SUN;
+{ 52072} GGH502G+HV               =       G1G501m +      GNO2                                   :  0.100E+01*SUN;
+{ 52073} GGH502G+HV               =       GHN400O +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 52074} G2G5038 +GNO                =       G1G504F +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 52075} G2G5038 +GNO                =       GGN501n                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 52076} G2G5038 +GHO2               =       GGH502G                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 52077} G2G5038 +GNO3               =       G1G504F +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 52078} G2G5038 +MEPERO             =  0.340G1G504F + 0.330GGN501a + 0.330GGN501h                 : ARR( 0.565E-13,  -845., 0.0);
+{ 52079} G2G5038 +PERO1              =  0.460G1G504F + 0.270GGN501a + 0.270GGN501h                 : ARR( 0.434E-13,  -900., 0.0);
+{ 52080} G2G5038 +PERO2              =  0.400G1G504F + 0.300GGN501a + 0.300GGN501h                 : ARR( 0.162E-13, -1400., 0.0);
+{ 52081} G2G5038 +PERO3              =  0.460G1G504F + 0.270GGN501a + 0.270GGN501h                 : ARR( 0.488E-13, -1250., 0.0);
+{ 52082} G2G5038 +PERO5              =  0.460G1G504F + 0.270GGN501a + 0.270GGN501h                 : ARR( 0.183E-11,   450., 0.0);
+{ 52083} G2G5038 +PERO6              =  0.300G1G504F + 0.350GGN501a + 0.350GGN501h                 : ARR( 0.168E-13, -1300., 0.0);
+{ 52084} G2G5038 +PERO9              =  0.650G1G504F + 0.350GGN501h                                : ARR( 0.100E-10,     0., 0.0);
+{ 52085} G1G504F                     =       GD02000 +      GGN3005 +      GNO2                    : ARR( 0.200E+15,  5880., 0.0);
+{ 52086} G1G504F                     =       GND3001 +      GGD2000 +      GNO2                    : ARR( 0.200E+15,  6677., 0.0);
+{ 52087} GGH502H +GHO                =       GGH5028 +      GHO                                    : ARR( 0.827E-11,     0., 0.0);
+{ 52088} GGH502H +GHO                =       GGH502J +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 52089} GGH502H +GHO                =       G2G5039                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 52090} GGH502H +GHO                =       G2G501U                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 52091} GGH502H +GHO                =       G3H502v                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 52092} GGH502H+HV               =       G1G504G +      GNO2                                   :  0.100E+01*SUN;
+{ 52093} GGH502H+HV               =       G1G504H +      GHO                                    :  0.100E+01*SUN;
+{ 52094} GGH502H+HV               =       G1G501m +      GHO                                    :  0.100E+01*SUN;
+{ 52095} GGH502H+HV               =       GHN400O +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 52096} G2G5039 +GNO                =       G1G504H +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 52097} G2G5039 +GNO                =       GGH502U                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 52098} G2G5039 +GHO2               =       GGH502H                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 52099} G2G5039 +GNO3               =       G1G504H +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 52100} G2G5039 +MEPERO             =  0.340G1G504H + 0.330GGH501z + 0.330GGH5028                 : ARR( 0.565E-13,  -845., 0.0);
+{ 52101} G2G5039 +PERO1              =  0.460G1G504H + 0.270GGH501z + 0.270GGH5028                 : ARR( 0.434E-13,  -900., 0.0);
+{ 52102} G2G5039 +PERO2              =  0.400G1G504H + 0.300GGH501z + 0.300GGH5028                 : ARR( 0.162E-13, -1400., 0.0);
+{ 52103} G2G5039 +PERO3              =  0.460G1G504H + 0.270GGH501z + 0.270GGH5028                 : ARR( 0.488E-13, -1250., 0.0);
+{ 52104} G2G5039 +PERO5              =  0.460G1G504H + 0.270GGH501z + 0.270GGH5028                 : ARR( 0.183E-11,   450., 0.0);
+{ 52105} G2G5039 +PERO6              =  0.300G1G504H + 0.350GGH501z + 0.350GGH5028                 : ARR( 0.168E-13, -1300., 0.0);
+{ 52106} G2G5039 +PERO9              =  0.650G1G504H + 0.350GGH5028                                : ARR( 0.100E-10,     0., 0.0);
+{ 52107} G1G504G                     =       GD02000 +      GGH3007 +      GHO                     : ARR( 0.200E+15,  4573., 0.0);
+{ 52108} G1G504H                     =       GD02000 +      GGH3007 +      GNO2                    : ARR( 0.200E+15,  5880., 0.0);
+{ 52109} G1G504H                     =       GND3001 +      GGD2000 +      GHO                     : ARR( 0.200E+15,  5138., 0.0);
+{ 52110} GGH502I +GHO                =       GGN501i +      GHO                                    : ARR( 0.834E-11,     0., 0.0);
+{ 52111} GGH502I +GHO                =       GGH502J +      GHO2                                   : ARR( 0.636E-11,     0., 0.0);
+{ 52112} GGH502I +GHO                =       G2G503A                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 52113} GGH502I +GHO                =       G3H502w                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 52114} GGH502I+HV               =       G1G504I +      GNO2                                   :  0.100E+01*SUN;
+{ 52115} GGH502I+HV               =       G1G504J +      GHO                                    :  0.100E+01*SUN;
+{ 52116} GGH502I+HV               =       GHN400O +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 52117} G2G503A +GNO                =       G1G504J +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 52118} G2G503A +GNO                =       GGN501r                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 52119} G2G503A +GHO2               =       GGH502I                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 52120} G2G503A +GNO3               =       G1G504J +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 52121} G2G503A +MEPERO             =  0.340G1G504J + 0.330GGN501b + 0.330GGN501i                 : ARR( 0.565E-13,  -845., 0.0);
+{ 52122} G2G503A +PERO1              =  0.460G1G504J + 0.270GGN501b + 0.270GGN501i                 : ARR( 0.434E-13,  -900., 0.0);
+{ 52123} G2G503A +PERO2              =  0.400G1G504J + 0.300GGN501b + 0.300GGN501i                 : ARR( 0.162E-13, -1400., 0.0);
+{ 52124} G2G503A +PERO3              =  0.460G1G504J + 0.270GGN501b + 0.270GGN501i                 : ARR( 0.488E-13, -1250., 0.0);
+{ 52125} G2G503A +PERO5              =  0.460G1G504J + 0.270GGN501b + 0.270GGN501i                 : ARR( 0.183E-11,   450., 0.0);
+{ 52126} G2G503A +PERO6              =  0.300G1G504J + 0.350GGN501b + 0.350GGN501i                 : ARR( 0.168E-13, -1300., 0.0);
+{ 52127} G2G503A +PERO9              =  0.650G1G504J + 0.350GGN501i                                : ARR( 0.100E-10,     0., 0.0);
+{ 52128} G1G504I                     =       GD02000 +      GGD3001 +      GHO                     : ARR( 0.200E+15,  4573., 0.0);
+{ 52129} G1G504J                     =       GND3001 +      GGD2000 +      GHO2                    : ARR( 0.200E+15,  3929., 0.0);
+{ 52130} GGH502J +GHO                =       GGN501j +      GHO                                    : ARR( 0.516E-11,     0., 0.0);
+{ 52131} GGH502J +GHO                =       G2G503B                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 52132} GGH502J +GHO                =       G3H5046                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 52133} GGH502J+HV               =       G1G501y +      GNO2                                   :  0.100E+01*SUN;
+{ 52134} GGH502J+HV               =       G1G504K +      GHO                                    :  0.100E+01*SUN;
+{ 52135} GGH502J+HV               =       GAH400B +      GCO2                                   :  0.100E+01*SUN;
+{ 52136} G2G503B +GNO                =       G1G504K +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 52137} G2G503B +GNO                =       GGN501p                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 52138} G2G503B +GHO2               =       GGH502J                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 52139} G2G503B +GNO3               =       G1G504K +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 52140} G2G503B +MEPERO             =  0.340G1G504K + 0.330GGN501c + 0.330GGN501j                 : ARR( 0.565E-13,  -845., 0.0);
+{ 52141} G2G503B +PERO1              =  0.460G1G504K + 0.270GGN501c + 0.270GGN501j                 : ARR( 0.434E-13,  -900., 0.0);
+{ 52142} G2G503B +PERO2              =  0.400G1G504K + 0.300GGN501c + 0.300GGN501j                 : ARR( 0.162E-13, -1400., 0.0);
+{ 52143} G2G503B +PERO3              =  0.460G1G504K + 0.270GGN501c + 0.270GGN501j                 : ARR( 0.488E-13, -1250., 0.0);
+{ 52144} G2G503B +PERO5              =  0.460G1G504K + 0.270GGN501c + 0.270GGN501j                 : ARR( 0.183E-11,   450., 0.0);
+{ 52145} G2G503B +PERO6              =  0.300G1G504K + 0.350GGN501c + 0.350GGN501j                 : ARR( 0.168E-13, -1300., 0.0);
+{ 52146} G2G503B +PERO9              =  0.650G1G504K + 0.350GGN501j                                : ARR( 0.100E-10,     0., 0.0);
+{ 52147} G3H5046 +GHO2               =  0.800GGH502J + 0.200GAH502Y + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 52148} G3H5046 +GNO                =       G3H4008 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 52149} G3H5046 +GNO2               =       GPH502h                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 52150} G3H5046 +GNO3               =       G3H4008 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 52151} G3H5046 +MEPERO             =  0.685G3H4008 + 0.315GAH502Y + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 52152} G3H5046 +PERO1              =  0.800G3H4008 + 0.200GAH502Y + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 52153} G3H5046 +PERO2              =  0.750G3H4008 + 0.250GAH502Y + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 52154} G3H5046 +PERO3              =  0.800G3H4008 + 0.200GAH502Y + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 52155} G3H5046 +PERO5              =  0.650G3H4008 + 0.350GAH502Y + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 52156} G3H5046 +PERO6              =  0.650G3H4008 + 0.350GAH502Y + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 52157} G3H5046 +PERO9              =       G3H4008 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 52158} G1G504K                     =       GND3001 +      GCO     +      GHO2    +      GCO      : ARR( 0.200E+15,  3266., 0.0);
+{ 52159} GGH502K +GHO                =       GGN501k +      GHO                                    : ARR( 0.516E-11,     0., 0.0);
+{ 52160} GGH502K +GHO                =       G2G503C                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 52161} GGH502K +GHO                =       G3H501m                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 52162} GGH502K+HV               =       G3K2000 +      GGN3005 +      GHO                     :  0.100E+01*SUN;
+{ 52163} GGH502K+HV               =       G1G504L +      GHO                                    :  0.100E+01*SUN;
+{ 52164} GGH502K+HV               =       G1G501o +      GNO2                                   :  0.100E+01*SUN;
+{ 52165} GGH502K+HV               =       GHD4007 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 52166} G2G503C +GNO                =       G1G504L +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 52167} G2G503C +GNO                =       GGN501o                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 52168} G2G503C +GHO2               =       GGH502K                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 52169} G2G503C +GNO3               =       G1G504L +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 52170} G2G503C +MEPERO             =  0.340G1G504L + 0.330GGN501d + 0.330GGN501k                 : ARR( 0.565E-13,  -845., 0.0);
+{ 52171} G2G503C +PERO1              =  0.460G1G504L + 0.270GGN501d + 0.270GGN501k                 : ARR( 0.434E-13,  -900., 0.0);
+{ 52172} G2G503C +PERO2              =  0.400G1G504L + 0.300GGN501d + 0.300GGN501k                 : ARR( 0.162E-13, -1400., 0.0);
+{ 52173} G2G503C +PERO3              =  0.460G1G504L + 0.270GGN501d + 0.270GGN501k                 : ARR( 0.488E-13, -1250., 0.0);
+{ 52174} G2G503C +PERO5              =  0.460G1G504L + 0.270GGN501d + 0.270GGN501k                 : ARR( 0.183E-11,   450., 0.0);
+{ 52175} G2G503C +PERO6              =  0.300G1G504L + 0.350GGN501d + 0.350GGN501k                 : ARR( 0.168E-13, -1300., 0.0);
+{ 52176} G2G503C +PERO9              =  0.650G1G504L + 0.350GGN501k                                : ARR( 0.100E-10,     0., 0.0);
+{ 52177} G1G504L                     =       G3K2000 +      GGN3005                                : ARR( 0.200E+15,  2093., 0.0);
+{ 52178} GGH502L +GHO                =       GGH5029 +      GHO                                    : ARR( 0.277E-10,     0., 0.0);
+{ 52179} GGH502L +GHO                =       GGH502N +      GHO                                    : ARR( 0.880E-10,     0., 0.0);
+{ 52180} GGH502L+HV               =       G3K2000 +      GGH3007 +      GHO                     :  0.100E+01*SUN;
+{ 52181} GGH502L+HV               =       G1G504M +      GHO                                    :  0.100E+01*SUN;
+{ 52182} GGH502L+HV               =       G1G501o +      GHO                                    :  0.100E+01*SUN;
+{ 52183} GGH502L+HV               =       GHD4007 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 52184} G1G504M                     =       G3K2000 +      GGH3007                                : ARR( 0.200E+15,  2093., 0.0);
+{ 52185} GGH502M +GHO                =       GGK500Y +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 52186} GGH502M +GHO                =       GGH502N +      GHO2                                   : ARR( 0.200E-10,     0., 0.0);
+{ 52187} GGH502M +GHO                =       G2G503D                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 52188} GGH502M +GHO                =       G3H501n                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 52189} GGH502M+HV               =       G3K2000 +      GGD3001 +      GHO                     :  0.100E+01*SUN;
+{ 52190} GGH502M+HV               =       G1G504N +      GHO                                    :  0.100E+01*SUN;
+{ 52191} GGH502M+HV               =       GHD4007 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 52192} G2G503D +GNO                =       G1G504N +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 52193} G2G503D +GNO                =       GGN501w                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 52194} G2G503D +GHO2               =       GGH502M                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 52195} G2G503D +GNO3               =       G1G504N +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 52196} G2G503D +MEPERO             =  0.340G1G504N + 0.330GGK500S + 0.330GGK500Y                 : ARR( 0.565E-13,  -845., 0.0);
+{ 52197} G2G503D +PERO1              =  0.460G1G504N + 0.270GGK500S + 0.270GGK500Y                 : ARR( 0.434E-13,  -900., 0.0);
+{ 52198} G2G503D +PERO2              =  0.400G1G504N + 0.300GGK500S + 0.300GGK500Y                 : ARR( 0.162E-13, -1400., 0.0);
+{ 52199} G2G503D +PERO3              =  0.460G1G504N + 0.270GGK500S + 0.270GGK500Y                 : ARR( 0.488E-13, -1250., 0.0);
+{ 52200} G2G503D +PERO5              =  0.460G1G504N + 0.270GGK500S + 0.270GGK500Y                 : ARR( 0.183E-11,   450., 0.0);
+{ 52201} G2G503D +PERO6              =  0.300G1G504N + 0.350GGK500S + 0.350GGK500Y                 : ARR( 0.168E-13, -1300., 0.0);
+{ 52202} G2G503D +PERO9              =  0.650G1G504N + 0.350GGK500Y                                : ARR( 0.100E-10,     0., 0.0);
+{ 52203} G1G504N                     =       G3K2000 +      GGD3001                                : ARR( 0.200E+15,  2093., 0.0);
+{ 52204} GGH502N +GHO                =       GGK500Z +      GHO                                    : ARR( 0.154E-10,     0., 0.0);
+{ 52205} GGH502N +GHO                =       G2G501X                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 52206} GGH502N +GHO                =       G3H5047                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 52207} GGH502N+HV               =       G3K2000 +      GGD3002 +      GHO                     :  0.100E+01*SUN;
+{ 52208} GGH502N+HV               =       G1G501p +      GHO                                    :  0.100E+01*SUN;
+{ 52209} GGH502N+HV               =       GAH400D +      GCO2                                   :  0.100E+01*SUN;
+{ 52210} G3H5047 +GHO2               =  0.800GGH502N + 0.200GAH502c + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 52211} G3H5047 +GNO                =       G3H4009 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 52212} G3H5047 +GNO2               =       GPH502n                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 52213} G3H5047 +GNO3               =       G3H4009 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 52214} G3H5047 +MEPERO             =  0.685G3H4009 + 0.315GAH502c + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 52215} G3H5047 +PERO1              =  0.800G3H4009 + 0.200GAH502c + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 52216} G3H5047 +PERO2              =  0.750G3H4009 + 0.250GAH502c + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 52217} G3H5047 +PERO3              =  0.800G3H4009 + 0.200GAH502c + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 52218} G3H5047 +PERO5              =  0.650G3H4009 + 0.350GAH502c + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 52219} G3H5047 +PERO6              =  0.650G3H4009 + 0.350GAH502c + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 52220} G3H5047 +PERO9              =       G3H4009 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 52221} GGN501m +GHO                =       G3N502Q                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 52222} GGN501m+HV               =       G3K2000 +      GGD3002 +      GNO2                    :  0.100E+01*SUN;
+{ 52223} GGN501m+HV               =       G1G501p +      GNO2                                   :  0.100E+01*SUN;
+{ 52224} GGN501m+HV               =       GAN400M +      GCO2                                   :  0.100E+01*SUN;
+{ 52225} GGN501n +GHO                =       G3N501L                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 52226} GGN501n+HV               =       G1G501s +      GNO2                                   :  0.100E+01*SUN;
+{ 52227} GGN501n+HV               =       G1G504F +      GNO2                                   :  0.100E+01*SUN;
+{ 52228} GGN501n+HV               =       G1G504O +      GNO2                                   :  0.100E+01*SUN;
+{ 52229} GGN501n+HV               =       GNN4007 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 52230} G1G504O                     =       GNN4007 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 52231} GGH502O +GHO                =       GGN501o +      GHO                                    : ARR( 0.680E-11,     0., 0.0);
+{ 52232} GGH502O +GHO                =       G2G501Y                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 52233} GGH502O +GHO                =       G3H501l                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 52234} GGH502O+HV               =       G1G501s +      GHO                                    :  0.100E+01*SUN;
+{ 52235} GGH502O+HV               =       G1G504P +      GNO2                                   :  0.100E+01*SUN;
+{ 52236} GGH502O+HV               =       G1G504Q +      GNO2                                   :  0.100E+01*SUN;
+{ 52237} GGH502O+HV               =       GHN400p +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 52238} G1G504P                     =       GD02000 +      GGN3005 +      GHO                     : ARR( 0.200E+15,  4341., 0.0);
+{ 52239} G1G504Q                     =       G2G503E                                               : ARR( 0.240E+12,  4177., 0.0);
+{ 52240} G1G504Q                     =       GHN400p +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 52241} G2G503E +GNO                =       G1G504R +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 52242} G2G503E +GNO                =       GGH5043                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 52243} G2G503E +GHO2               =       GGH504k                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 52244} G2G503E +GNO3               =       G1G504R +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 52245} G2G503E +MEPERO             =  0.480G1G504R + 0.260GGH503R + 0.260GGH503T                 : ARR( 0.164E-12,  -795., 0.0);
+{ 52246} G2G503E +PERO1              =  0.600G1G504R + 0.200GGH503R + 0.200GGH503T                 : ARR( 0.126E-12,  -850., 0.0);
+{ 52247} G2G503E +PERO2              =  0.560G1G504R + 0.220GGH503R + 0.220GGH503T                 : ARR( 0.471E-13, -1350., 0.0);
+{ 52248} G2G503E +PERO3              =  0.600G1G504R + 0.200GGH503R + 0.200GGH503T                 : ARR( 0.142E-12, -1200., 0.0);
+{ 52249} G2G503E +PERO5              =  0.600G1G504R + 0.200GGH503R + 0.200GGH503T                 : ARR( 0.533E-11,   500., 0.0);
+{ 52250} G2G503E +PERO6              =  0.460G1G504R + 0.270GGH503R + 0.270GGH503T                 : ARR( 0.488E-13, -1250., 0.0);
+{ 52251} G2G503E +PERO9              =  0.800G1G504R + 0.200GGH503T                                : ARR( 0.100E-10,     0., 0.0);
+{ 52252} G1G504R                     =       GGH503S +      GHO2                                   : ARR( 0.800E+11,  2965., 0.0);
+{ 52253} G1G504R                     =       GGN400U +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{ 52254} GGN501o +GHO                =       G3N501O                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 52255} GGN501o+HV               =       G3K2000 +      GGN3005 +      GNO2                    :  0.100E+01*SUN;
+{ 52256} GGN501o+HV               =       G1G504L +      GNO2                                   :  0.100E+01*SUN;
+{ 52257} GGN501o+HV               =       G1G504S +      GNO2                                   :  0.100E+01*SUN;
+{ 52258} GGN501o+HV               =       GND4008 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 52259} G1G504S                     =       GND4008 +      GCO     +      GHO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 52260} GGH502P +GHO                =       GGH502K +      GHO                                    : ARR( 0.337E-10,     0., 0.0);
+{ 52261} GGH502P +GHO                =       GGH502B +      GHO                                    : ARR( 0.828E-11,     0., 0.0);
+{ 52262} GGH502P +GHO                =       G2G501a                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 52263} GGH502P +GHO                =       G2G503F                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 52264} GGH502P +GHO                =       G3H503u                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 52265} GGH502P+HV               =       G1G501v +      GHO                                    :  0.100E+01*SUN;
+{ 52266} GGH502P+HV               =       G1G504P +      GHO                                    :  0.100E+01*SUN;
+{ 52267} GGH502P+HV               =       G1G504T +      GNO2                                   :  0.100E+01*SUN;
+{ 52268} GGH502P+HV               =       GHH400M +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 52269} G2G503F +GNO                =       G1G504P +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 52270} G2G503F +GNO                =       GGH502O                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 52271} G2G503F +GHO2               =       GGH502P                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 52272} G2G503F +GNO3               =       G1G504P +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 52273} G2G503F +MEPERO             =  0.340G1G504P + 0.330GGH5022 + 0.330GGH502B                 : ARR( 0.565E-13,  -845., 0.0);
+{ 52274} G2G503F +PERO1              =  0.460G1G504P + 0.270GGH5022 + 0.270GGH502B                 : ARR( 0.434E-13,  -900., 0.0);
+{ 52275} G2G503F +PERO2              =  0.400G1G504P + 0.300GGH5022 + 0.300GGH502B                 : ARR( 0.162E-13, -1400., 0.0);
+{ 52276} G2G503F +PERO3              =  0.460G1G504P + 0.270GGH5022 + 0.270GGH502B                 : ARR( 0.488E-13, -1250., 0.0);
+{ 52277} G2G503F +PERO5              =  0.460G1G504P + 0.270GGH5022 + 0.270GGH502B                 : ARR( 0.183E-11,   450., 0.0);
+{ 52278} G2G503F +PERO6              =  0.300G1G504P + 0.350GGH5022 + 0.350GGH502B                 : ARR( 0.168E-13, -1300., 0.0);
+{ 52279} G2G503F +PERO9              =  0.650G1G504P + 0.350GGH502B                                : ARR( 0.100E-10,     0., 0.0);
+{ 52280} G1G504T                     =       G2G503G                                               : ARR( 0.240E+12,  4177., 0.0);
+{ 52281} G1G504T                     =       GHH400M +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 52282} G2G503G +GNO                =       G1G504U +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 52283} G2G503G +GNO                =       GGH5044                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 52284} G2G503G +GHO2               =       GGH504l                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 52285} G2G503G +GNO3               =       G1G504U +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 52286} G2G503G +MEPERO             =  0.480G1G504U + 0.260GGH503p + 0.260GGH503q                 : ARR( 0.164E-12,  -795., 0.0);
+{ 52287} G2G503G +PERO1              =  0.600G1G504U + 0.200GGH503p + 0.200GGH503q                 : ARR( 0.126E-12,  -850., 0.0);
+{ 52288} G2G503G +PERO2              =  0.560G1G504U + 0.220GGH503p + 0.220GGH503q                 : ARR( 0.471E-13, -1350., 0.0);
+{ 52289} G2G503G +PERO3              =  0.600G1G504U + 0.200GGH503p + 0.200GGH503q                 : ARR( 0.142E-12, -1200., 0.0);
+{ 52290} G2G503G +PERO5              =  0.600G1G504U + 0.200GGH503p + 0.200GGH503q                 : ARR( 0.533E-11,   500., 0.0);
+{ 52291} G2G503G +PERO6              =  0.460G1G504U + 0.270GGH503p + 0.270GGH503q                 : ARR( 0.488E-13, -1250., 0.0);
+{ 52292} G2G503G +PERO9              =  0.800G1G504U + 0.200GGH503q                                : ARR( 0.100E-10,     0., 0.0);
+{ 52293} G1G504U                     =       GGH5032 +      GHO2                                   : ARR( 0.800E+11,  2246., 0.0);
+{ 52294} G1G504U                     =       GGH400i +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{ 52295} GGN501p +GHO                =       G3N502O                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 52296} GGN501p+HV               =       G1G501x +      GNO2                                   :  0.100E+01*SUN;
+{ 52297} GGN501p+HV               =       G1G504K +      GNO2                                   :  0.100E+01*SUN;
+{ 52298} GGN501p+HV               =       GAN400F +      GCO2                                   :  0.100E+01*SUN;
+{ 52299} GGH502Q +GHO                =       GGN501m +      GHO                                    : ARR( 0.682E-11,     0., 0.0);
+{ 52300} GGH502Q +GHO                =       G2G501c                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 52301} GGH502Q +GHO                =       G3H503w                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 52302} GGH502Q+HV               =       G1G501x +      GHO                                    :  0.100E+01*SUN;
+{ 52303} GGH502Q+HV               =       G1G504W +      GNO2                                   :  0.100E+01*SUN;
+{ 52304} GGH502Q+HV               =       GAH400F +      GCO2                                   :  0.100E+01*SUN;
+{ 52305} G1G504W                     =       GHD3002 +      GCO     +      GHO2    +      GCO      : ARR( 0.200E+15,  3266., 0.0);
+{ 52306} GGN501q +GHO                =       GGN501m +      GHO2                                   : ARR( 0.180E-11,     0., 0.0);
+{ 52307} GGN501q +GHO                =       G3N501Y                                               : ARR( 0.204E-11,  -190., 0.0);
+{ 52308} GGN501q+HV               =       G1G504X +      GNO2                                   :  0.100E+01*SUN;
+{ 52309} GGN501q+HV               =       GAN4005 +      GCO2                                   :  0.100E+01*SUN;
+{ 52310} G1G504X                     =       GDO3001 +      GCO     +      GHO2    +      GCO      : ARR( 0.200E+15,  3266., 0.0);
+{ 52311} GGH502R +GHO                =       GGH502N +      GHO                                    : ARR( 0.115E-09,     0., 0.0);
+{ 52312} GGH502R +GHO                =       GGH502E +      GHO                                    : ARR( 0.272E-10,     0., 0.0);
+{ 52313} GGH502R+HV               =       G1G501y +      GHO                                    :  0.100E+01*SUN;
+{ 52314} GGH502R+HV               =       G1G504W +      GHO                                    :  0.100E+01*SUN;
+{ 52315} GGH502R+HV               =       GAH400W +      GCO2                                   :  0.100E+01*SUN;
+{ 52316} GGH502S +GHO                =       GGH502N +      GHO2                                   : ARR( 0.267E-10,     0., 0.0);
+{ 52317} GGH502S +GHO                =       GGK500N +      GHO                                    : ARR( 0.253E-10,     0., 0.0);
+{ 52318} GGH502S +GHO                =       G2G503H                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 52319} GGH502S +GHO                =       G3H5048                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 52320} GGH502S+HV               =       G1G504X +      GHO                                    :  0.100E+01*SUN;
+{ 52321} GGH502S+HV               =       GAH4001 +      GCO2                                   :  0.100E+01*SUN;
+{ 52322} G2G503H +GNO                =       G1G504X +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 52323} G2G503H +GNO                =       GGN501q                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 52324} G2G503H +GHO2               =       GGH502S                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 52325} G2G503H +GNO3               =       G1G504X +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 52326} G2G503H +MEPERO             =  0.340G1G504X + 0.330GGK500U + 0.330GGK500N                 : ARR( 0.565E-13,  -845., 0.0);
+{ 52327} G2G503H +PERO1              =  0.460G1G504X + 0.270GGK500U + 0.270GGK500N                 : ARR( 0.434E-13,  -900., 0.0);
+{ 52328} G2G503H +PERO2              =  0.400G1G504X + 0.300GGK500U + 0.300GGK500N                 : ARR( 0.162E-13, -1400., 0.0);
+{ 52329} G2G503H +PERO3              =  0.460G1G504X + 0.270GGK500U + 0.270GGK500N                 : ARR( 0.488E-13, -1250., 0.0);
+{ 52330} G2G503H +PERO5              =  0.460G1G504X + 0.270GGK500U + 0.270GGK500N                 : ARR( 0.183E-11,   450., 0.0);
+{ 52331} G2G503H +PERO6              =  0.300G1G504X + 0.350GGK500U + 0.350GGK500N                 : ARR( 0.168E-13, -1300., 0.0);
+{ 52332} G2G503H +PERO9              =  0.650G1G504X + 0.350GGK500N                                : ARR( 0.100E-10,     0., 0.0);
+{ 52333} G3H5048 +GHO2               =  0.800GGH502S + 0.200GAH502j + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 52334} G3H5048 +GNO                =       G3H400A +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 52335} G3H5048 +GNO2               =       GPH502r                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 52336} G3H5048 +GNO3               =       G3H400A +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 52337} G3H5048 +MEPERO             =  0.685G3H400A + 0.315GAH502j + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 52338} G3H5048 +PERO1              =  0.800G3H400A + 0.200GAH502j + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 52339} G3H5048 +PERO2              =  0.750G3H400A + 0.250GAH502j + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 52340} G3H5048 +PERO3              =  0.800G3H400A + 0.200GAH502j + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 52341} G3H5048 +PERO5              =  0.650G3H400A + 0.350GAH502j + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 52342} G3H5048 +PERO6              =  0.650G3H400A + 0.350GAH502j + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 52343} G3H5048 +PERO9              =       G3H400A +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 52344} GAH502X +GHO                =       GAN501u +      GHO                                    : ARR( 0.170E-11,     0., 0.0);
+{ 52345} GAH502X +GHO                =       G2A501r                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 52346} GAH502X +GHO                =       GHN400O +      GNO2    +      GCO2                    : ARR( 0.536E-12,     0., 0.0);
+{ 52347} GAH502X+HV               =       G1A502P +      GNO2                                   :  0.100E+01*SUN;
+{ 52348} GAH502X+HV               =       G1A502B +      GHO                                    :  0.100E+01*SUN;
+{ 52349} GAH502X+HV               =       G1A505Y +      GNO2                                   :  0.100E+01*SUN;
+{ 52350} G1A505Y                     =       GHN400O +      GCO     +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 52351} GAH502Y +GHO                =       GAN501w +      GHO                                    : ARR( 0.521E-11,     0., 0.0);
+{ 52352} GAH502Y +GHO                =       G2A501s                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 52353} GAH502Y +GHO                =       G3H4008 +      GCO2                                   : ARR( 0.539E-12,     0., 0.0);
+{ 52354} GAH502Y+HV               =       G1A502W +      GNO2                                   :  0.100E+01*SUN;
+{ 52355} GAH502Y+HV               =       G1A502D +      GHO                                    :  0.100E+01*SUN;
+{ 52356} GAH502Y+HV               =       GHN400O +      GCO2                                   :  0.100E+01*SUN;
+{ 52357} GAH502Z +GHO                =       GAN501x +      GHO                                    : ARR( 0.517E-11,     0., 0.0);
+{ 52358} GAH502Z +GHO                =       G2A501v                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 52359} GAH502Z +GHO                =       GHD4007 +      GNO2    +      GCO2                    : ARR( 0.535E-12,     0., 0.0);
+{ 52360} GAH502Z+HV               =       G3K2000 +      GAN3006 +      GHO                     :  0.100E+01*SUN;
+{ 52361} GAH502Z+HV               =       G1A502G +      GHO                                    :  0.100E+01*SUN;
+{ 52362} GAH502Z+HV               =       G1A502E +      GNO2                                   :  0.100E+01*SUN;
+{ 52363} GAH502a +GHO                =       GAH502N +      GHO                                    : ARR( 0.275E-10,     0., 0.0);
+{ 52364} GAH502a +GHO                =       GAH502c +      GHO                                    : ARR( 0.644E-10,     0., 0.0);
+{ 52365} GAH502a+HV               =       G3K2000 +      GAH3007 +      GHO                     :  0.100E+01*SUN;
+{ 52366} GAH502a+HV               =       G1A504w +      GHO                                    :  0.100E+01*SUN;
+{ 52367} GAH502a+HV               =       G1A502E +      GHO                                    :  0.100E+01*SUN;
+{ 52368} GAH502b +GHO                =       GAK500T +      GHO                                    : ARR( 0.256E-10,     0., 0.0);
+{ 52369} GAH502b +GHO                =       GAH502c +      GHO2                                   : ARR( 0.150E-10,     0., 0.0);
+{ 52370} GAH502b +GHO                =       G2A501w                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 52371} GAH502b+HV               =       G3K2000 +      GAD3001 +      GHO                     :  0.100E+01*SUN;
+{ 52372} GAH502b+HV               =       G1A502H +      GHO                                    :  0.100E+01*SUN;
+{ 52373} GAH502c +GHO                =       GAK500U +      GHO                                    : ARR( 0.158E-10,     0., 0.0);
+{ 52374} GAH502c +GHO                =       G2A501y                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 52375} GAH502c+HV               =       G3K2000 +      GAD3002 +      GHO                     :  0.100E+01*SUN;
+{ 52376} GAH502c+HV               =       G1A502J +      GHO                                    :  0.100E+01*SUN;
+{ 52377} GAH502c+HV               =       GHD4007 +      GCO2                                   :  0.100E+01*SUN;
+{ 52378} GAN5024 +GHO                =       G3A4002 +      GCO                                    : ARR( 0.135E-10,     0., 0.0);
+{ 52379} GAN5024 +GNO3               =       G3A4002 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 52380} GAN5024+HV               =       G1A5048 +      GNO2                                   :  0.100E+01*SUN;
+{ 52381} GAN5024+HV               =       G3A4002 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 52382} GAN5024+HV               =       GAN400N +      GCO                                    :  0.100E+01*SUN;
+{ 52383} GAN5024+HV               =       GAN3001 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 52384} GAG4002 +GHO                =       G3A4002                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 52385} GAG4002 +GHO                =       GGD3000 +      GNO2    +      GCO2                    : ARR( 0.548E-12,     0., 0.0);
+{ 52386} GAG4002+HV               =       G1A400s +      GNO2                                   :  0.100E+01*SUN;
+{ 52387} GAG4002+HV               =       G2A3004 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 52388} GAD500I +GHO                =       G3A4003 +      GCO                                    : ARR( 0.137E-10,     0., 0.0);
+{ 52389} GAD500I +GNO3               =       G3A4003 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 52390} GAD500I+HV               =       GDD4002 +      GCO2                                   :  0.100E+01*SUN;
+{ 52391} GAD500I+HV               =       G3A4003 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 52392} GAD500I+HV               =       GAD4005 +      GCO                                    :  0.100E+01*SUN;
+{ 52393} GAD500I+HV               =       GAK3000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 52394} GAG4003 +GHO                =       G2A4011                                               : ARR( 0.525E-12,     0., 0.0);
+{ 52395} GAG4003 +GHO                =       G3A4003                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 52396} GAG4003 +GHO                =       G3G3000 +      GCO2                                   : ARR( 0.520E-12,     0., 0.0);
+{ 52397} GAG4003+HV               =       GGD3000 +      GCO2                                   :  0.100E+01*SUN;
+{ 52398} GAG4003+HV               =       G2A3006 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 52399} G2A4011 +GNO                =       G1A4019 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 52400} G2A4011 +GNO                =       GAG400E                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 52401} G2A4011 +GHO2               =       GAG400G                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 52402} G2A4011 +GNO3               =       G1A4019 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 52403} G2A4011 +MEPERO             =  0.340G1A4019 + 0.330GAG4008 + 0.330GAG400H                 : ARR( 0.565E-13,  -845., 0.0);
+{ 52404} G2A4011 +PERO1              =  0.460G1A4019 + 0.270GAG4008 + 0.270GAG400H                 : ARR( 0.434E-13,  -900., 0.0);
+{ 52405} G2A4011 +PERO2              =  0.400G1A4019 + 0.300GAG4008 + 0.300GAG400H                 : ARR( 0.162E-13, -1400., 0.0);
+{ 52406} G2A4011 +PERO3              =  0.460G1A4019 + 0.270GAG4008 + 0.270GAG400H                 : ARR( 0.488E-13, -1250., 0.0);
+{ 52407} G2A4011 +PERO5              =  0.460G1A4019 + 0.270GAG4008 + 0.270GAG400H                 : ARR( 0.183E-11,   450., 0.0);
+{ 52408} G2A4011 +PERO6              =  0.300G1A4019 + 0.350GAG4008 + 0.350GAG400H                 : ARR( 0.168E-13, -1300., 0.0);
+{ 52409} G2A4011 +PERO9              =  0.650G1A4019 + 0.350GAG400H                                : ARR( 0.100E-10,     0., 0.0);
+{ 52410} G1A4019                     =       GCO     +      GGD2000 +      GHO     +      GCO      : ARR( 0.200E+15,  5653., 0.0);
+{ 52411} GAA4002 +GHO                =       G2A4012                                               : ARR( 0.389E-12,     0., 0.0);
+{ 52412} GAA4002 +GHO                =       G2A3006 +      GCO2                                   : ARR( 0.520E-12,     0., 0.0);
+{ 52413} GAA4002 +GHO                =       G3A3000 +      GCO2                                   : ARR( 0.520E-12,     0., 0.0);
+{ 52414} GAA4002+HV               =       GAD3000 +      GCO2                                   :  0.100E+01*SUN;
+{ 52415} G2A4012 +GNO                =       G1A401A +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 52416} G2A4012 +GNO                =       GAA4008                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 52417} G2A4012 +GHO2               =       GAA400A                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 52418} G2A4012 +GNO3               =       G1A401A +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 52419} G2A4012 +MEPERO             =  0.340G1A401A + 0.330GAA4005 + 0.330GAA400B                 : ARR( 0.565E-13,  -845., 0.0);
+{ 52420} G2A4012 +PERO1              =  0.460G1A401A + 0.270GAA4005 + 0.270GAA400B                 : ARR( 0.434E-13,  -900., 0.0);
+{ 52421} G2A4012 +PERO2              =  0.400G1A401A + 0.300GAA4005 + 0.300GAA400B                 : ARR( 0.162E-13, -1400., 0.0);
+{ 52422} G2A4012 +PERO3              =  0.460G1A401A + 0.270GAA4005 + 0.270GAA400B                 : ARR( 0.488E-13, -1250., 0.0);
+{ 52423} G2A4012 +PERO5              =  0.460G1A401A + 0.270GAA4005 + 0.270GAA400B                 : ARR( 0.183E-11,   450., 0.0);
+{ 52424} G2A4012 +PERO6              =  0.300G1A401A + 0.350GAA4005 + 0.350GAA400B                 : ARR( 0.168E-13, -1300., 0.0);
+{ 52425} G2A4012 +PERO9              =  0.650G1A401A + 0.350GAA400B                                : ARR( 0.100E-10,     0., 0.0);
+{ 52426} G1A401A                     =       GCO     +      GAD2000 +      GHO     +      GCO      : ARR( 0.200E+15,  5653., 0.0);
+{ 52427} G1A401A                     =       GAD3002 +      GCO     +      GHO                     : ARR( 0.200E+15,  6787., 0.0);
+{ 52428} GPA4003                     =       G3A4003 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 52429} GPA4003 +GHO                =       G2P4016                                               : ARR( 0.525E-12,     0., 0.0);
+{ 52430} GPA4003 +GHO                =       G3P3000 +      GCO2                                   : ARR( 0.520E-12,     0., 0.0);
+{ 52431} GPA4003+HV               =       GPD3000 +      GCO2                                   :  0.100E+01*SUN;
+{ 52432} GPA4003+HV               =       G3A4003 +      GNO2                                   :  0.100E+01*SUN;
+{ 52433} G2P4016 +GNO                =       G1P401F +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 52434} G2P4016 +GNO                =       GPA400E                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 52435} G2P4016 +GHO2               =       GPA400J                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 52436} G2P4016 +GNO3               =       G1P401F +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 52437} G2P4016 +MEPERO             =  0.340G1P401F + 0.330GPA4008 + 0.330GPA400K                 : ARR( 0.565E-13,  -845., 0.0);
+{ 52438} G2P4016 +PERO1              =  0.460G1P401F + 0.270GPA4008 + 0.270GPA400K                 : ARR( 0.434E-13,  -900., 0.0);
+{ 52439} G2P4016 +PERO2              =  0.400G1P401F + 0.300GPA4008 + 0.300GPA400K                 : ARR( 0.162E-13, -1400., 0.0);
+{ 52440} G2P4016 +PERO3              =  0.460G1P401F + 0.270GPA4008 + 0.270GPA400K                 : ARR( 0.488E-13, -1250., 0.0);
+{ 52441} G2P4016 +PERO5              =  0.460G1P401F + 0.270GPA4008 + 0.270GPA400K                 : ARR( 0.183E-11,   450., 0.0);
+{ 52442} G2P4016 +PERO6              =  0.300G1P401F + 0.350GPA4008 + 0.350GPA400K                 : ARR( 0.168E-13, -1300., 0.0);
+{ 52443} G2P4016 +PERO9              =  0.650G1P401F + 0.350GPA400K                                : ARR( 0.100E-10,     0., 0.0);
+{ 52444} G1P401F                     =       GCO     +      GPD2000 +      GHO     +      GCO      : ARR( 0.200E+15,  5653., 0.0);
+{ 52445} GAH502d +GHO                =       GAN502b +      GHO                                    : ARR( 0.332E-11,     0., 0.0);
+{ 52446} GAH502d +GHO                =       G2A504D                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 52447} GAH502d +GHO                =       GHN400G +      GNO2    +      GCO2                    : ARR( 0.536E-12,     0., 0.0);
+{ 52448} GAH502d+HV               =       G1A502h +      GNO2                                   :  0.100E+01*SUN;
+{ 52449} GAH502d+HV               =       G1A502L +      GNO2                                   :  0.100E+01*SUN;
+{ 52450} GAH502d+HV               =       G1A503E +      GHO                                    :  0.100E+01*SUN;
+{ 52451} G2A504D +GNO                =       G1A503E +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 52452} G2A504D +GNO                =       GAN5015                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 52453} G2A504D +GHO2               =       GAH502d                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 52454} G2A504D +GNO3               =       G1A503E +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 52455} G2A504D +MEPERO             =  0.480G1A503E + 0.260GAN501B + 0.260GAN502b                 : ARR( 0.164E-12,  -795., 0.0);
+{ 52456} G2A504D +PERO1              =  0.600G1A503E + 0.200GAN501B + 0.200GAN502b                 : ARR( 0.126E-12,  -850., 0.0);
+{ 52457} G2A504D +PERO2              =  0.560G1A503E + 0.220GAN501B + 0.220GAN502b                 : ARR( 0.471E-13, -1350., 0.0);
+{ 52458} G2A504D +PERO3              =  0.600G1A503E + 0.200GAN501B + 0.200GAN502b                 : ARR( 0.142E-12, -1200., 0.0);
+{ 52459} G2A504D +PERO5              =  0.600G1A503E + 0.200GAN501B + 0.200GAN502b                 : ARR( 0.533E-11,   500., 0.0);
+{ 52460} G2A504D +PERO6              =  0.460G1A503E + 0.270GAN501B + 0.270GAN502b                 : ARR( 0.488E-13, -1250., 0.0);
+{ 52461} G2A504D +PERO9              =  0.800G1A503E + 0.200GAN502b                                : ARR( 0.100E-10,     0., 0.0);
+{ 52462} GAH502e +GHO                =       GAH5023 +      GHO                                    : ARR( 0.418E-10,     0., 0.0);
+{ 52463} GAH502e +GHO                =       GAH503Z +      GHO                                    : ARR( 0.163E-10,     0., 0.0);
+{ 52464} GAH502e +GHO                =       G2A501z                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 52465} GAH502e +GHO                =       G2A504E                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 52466} GAH502e+HV               =       G1A505Z +      GNO2                                   :  0.100E+01*SUN;
+{ 52467} GAH502e+HV               =       G1A502L +      GHO                                    :  0.100E+01*SUN;
+{ 52468} GAH502e+HV               =       G1A503H +      GHO                                    :  0.100E+01*SUN;
+{ 52469} G2A504E +GNO                =       G1A503H +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 52470} G2A504E +GNO                =       GAH5016                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 52471} G2A504E +GHO2               =       GAH502e                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 52472} G2A504E +GNO3               =       G1A503H +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 52473} G2A504E +MEPERO             =  0.480G1A503H + 0.260GAH501G + 0.260GAH503Z                 : ARR( 0.164E-12,  -795., 0.0);
+{ 52474} G2A504E +PERO1              =  0.600G1A503H + 0.200GAH501G + 0.200GAH503Z                 : ARR( 0.126E-12,  -850., 0.0);
+{ 52475} G2A504E +PERO2              =  0.560G1A503H + 0.220GAH501G + 0.220GAH503Z                 : ARR( 0.471E-13, -1350., 0.0);
+{ 52476} G2A504E +PERO3              =  0.600G1A503H + 0.200GAH501G + 0.200GAH503Z                 : ARR( 0.142E-12, -1200., 0.0);
+{ 52477} G2A504E +PERO5              =  0.600G1A503H + 0.200GAH501G + 0.200GAH503Z                 : ARR( 0.533E-11,   500., 0.0);
+{ 52478} G2A504E +PERO6              =  0.460G1A503H + 0.270GAH501G + 0.270GAH503Z                 : ARR( 0.488E-13, -1250., 0.0);
+{ 52479} G2A504E +PERO9              =  0.800G1A503H + 0.200GAH503Z                                : ARR( 0.100E-10,     0., 0.0);
+{ 52480} G1A505Z                     =       GAH501K +      GHO                                    : ARR( 0.160E+12,  2186., 0.0);
+{ 52481} G1A505Z                     =       GCO     +      GHH400B +      GHO                     : ARR( 0.200E+15,  4918., 0.0);
+{ 52482} GAG500A +GHO                =       G2A504F                                               : ARR( 0.285E-12,     0., 0.0);
+{ 52483} GAG500A +GHO                =       G2A504G                                               : ARR( 0.870E-12,     0., 0.0);
+{ 52484} GAG500A +GHO                =       G3A5008                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 52485} GAG500A +GHO                =       GGD4000 +      GNO2    +      GCO2                    : ARR( 0.525E-12,     0., 0.0);
+{ 52486} GAG500A+HV               =       G1A503t +      GNO2                                   :  0.100E+01*SUN;
+{ 52487} GAG500A+HV               =       G2A400D +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 52488} G2A504F +GNO                =       G1A505a +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 52489} G2A504F +GNO                =       GAG500X                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 52490} G2A504F +GHO2               =       GAG500k                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 52491} G2A504F +GNO3               =       G1A505a +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 52492} G2A504F +MEPERO             =  0.340G1A505a + 0.330GAG500l + 0.330GAG500b                 : ARR( 0.565E-13,  -845., 0.0);
+{ 52493} G2A504F +PERO1              =  0.460G1A505a + 0.270GAG500l + 0.270GAG500b                 : ARR( 0.434E-13,  -900., 0.0);
+{ 52494} G2A504F +PERO2              =  0.400G1A505a + 0.300GAG500l + 0.300GAG500b                 : ARR( 0.162E-13, -1400., 0.0);
+{ 52495} G2A504F +PERO3              =  0.460G1A505a + 0.270GAG500l + 0.270GAG500b                 : ARR( 0.488E-13, -1250., 0.0);
+{ 52496} G2A504F +PERO5              =  0.460G1A505a + 0.270GAG500l + 0.270GAG500b                 : ARR( 0.183E-11,   450., 0.0);
+{ 52497} G2A504F +PERO6              =  0.300G1A505a + 0.350GAG500l + 0.350GAG500b                 : ARR( 0.168E-13, -1300., 0.0);
+{ 52498} G2A504F +PERO9              =  0.650G1A505a + 0.350GAG500b                                : ARR( 0.100E-10,     0., 0.0);
+{ 52499} G2A504G +GNO                =       G1A505b +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 52500} G2A504G +GNO                =       GAG500m                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 52501} G2A504G +GHO2               =       GAG500n                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 52502} G2A504G +GNO3               =       G1A505b +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 52503} G2A504G +MEPERO             =  0.340G1A505b + 0.330GAG500K + 0.330GAG500o                 : ARR( 0.565E-13,  -845., 0.0);
+{ 52504} G2A504G +PERO1              =  0.460G1A505b + 0.270GAG500K + 0.270GAG500o                 : ARR( 0.434E-13,  -900., 0.0);
+{ 52505} G2A504G +PERO2              =  0.400G1A505b + 0.300GAG500K + 0.300GAG500o                 : ARR( 0.162E-13, -1400., 0.0);
+{ 52506} G2A504G +PERO3              =  0.460G1A505b + 0.270GAG500K + 0.270GAG500o                 : ARR( 0.488E-13, -1250., 0.0);
+{ 52507} G2A504G +PERO5              =  0.460G1A505b + 0.270GAG500K + 0.270GAG500o                 : ARR( 0.183E-11,   450., 0.0);
+{ 52508} G2A504G +PERO6              =  0.300G1A505b + 0.350GAG500K + 0.350GAG500o                 : ARR( 0.168E-13, -1300., 0.0);
+{ 52509} G2A504G +PERO9              =  0.650G1A505b + 0.350GAG500o                                : ARR( 0.100E-10,     0., 0.0);
+{ 52510} G1A505a                     =       GAD2000 +      GGD3000 +      GNO2                    : ARR( 0.200E+15,  6039., 0.0);
+{ 52511} G1A505a                     =       GAN3006 +      G2G2000                                : ARR( 0.200E+15,  6620., 0.0);
+{ 52512} G1A505b                     =       GAN400N +      GCO     +      GHO2                    : ARR( 0.200E+15,  4949., 0.0);
+{ 52513} GAA5007 +GHO                =       G2A504H                                               : ARR( 0.655E-12,     0., 0.0);
+{ 52514} GAA5007 +GHO                =       G2A504I                                               : ARR( 0.290E-12,     0., 0.0);
+{ 52515} GAA5007 +GHO                =       G2A400D +      GCO2                                   : ARR( 0.534E-12,     0., 0.0);
+{ 52516} GAA5007 +GHO                =       GAD4000 +      GNO2    +      GCO2                    : ARR( 0.534E-12,     0., 0.0);
+{ 52517} GAA5007+HV               =       G1A503w +      GNO2                                   :  0.100E+01*SUN;
+{ 52518} G2A504H +GNO                =       G1A505c +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 52519} G2A504H +GNO                =       GAA500Y                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 52520} G2A504H +GHO2               =       GAA500Z                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 52521} G2A504H +GNO3               =       G1A505c +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 52522} G2A504H +MEPERO             =  0.340G1A505c + 0.330GAA500D + 0.330GAA500a                 : ARR( 0.565E-13,  -845., 0.0);
+{ 52523} G2A504H +PERO1              =  0.460G1A505c + 0.270GAA500D + 0.270GAA500a                 : ARR( 0.434E-13,  -900., 0.0);
+{ 52524} G2A504H +PERO2              =  0.400G1A505c + 0.300GAA500D + 0.300GAA500a                 : ARR( 0.162E-13, -1400., 0.0);
+{ 52525} G2A504H +PERO3              =  0.460G1A505c + 0.270GAA500D + 0.270GAA500a                 : ARR( 0.488E-13, -1250., 0.0);
+{ 52526} G2A504H +PERO5              =  0.460G1A505c + 0.270GAA500D + 0.270GAA500a                 : ARR( 0.183E-11,   450., 0.0);
+{ 52527} G2A504H +PERO6              =  0.300G1A505c + 0.350GAA500D + 0.350GAA500a                 : ARR( 0.168E-13, -1300., 0.0);
+{ 52528} G2A504H +PERO9              =  0.650G1A505c + 0.350GAA500a                                : ARR( 0.100E-10,     0., 0.0);
+{ 52529} G2A504I +GNO                =       G1A505d +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 52530} G2A504I +GNO                =       GAA500L                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 52531} G2A504I +GHO2               =       GAA500b                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 52532} G2A504I +GNO3               =       G1A505d +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 52533} G2A504I +MEPERO             =  0.340G1A505d + 0.330GAA500c + 0.330GAA500R                 : ARR( 0.565E-13,  -845., 0.0);
+{ 52534} G2A504I +PERO1              =  0.460G1A505d + 0.270GAA500c + 0.270GAA500R                 : ARR( 0.434E-13,  -900., 0.0);
+{ 52535} G2A504I +PERO2              =  0.400G1A505d + 0.300GAA500c + 0.300GAA500R                 : ARR( 0.162E-13, -1400., 0.0);
+{ 52536} G2A504I +PERO3              =  0.460G1A505d + 0.270GAA500c + 0.270GAA500R                 : ARR( 0.488E-13, -1250., 0.0);
+{ 52537} G2A504I +PERO5              =  0.460G1A505d + 0.270GAA500c + 0.270GAA500R                 : ARR( 0.183E-11,   450., 0.0);
+{ 52538} G2A504I +PERO6              =  0.300G1A505d + 0.350GAA500c + 0.350GAA500R                 : ARR( 0.168E-13, -1300., 0.0);
+{ 52539} G2A504I +PERO9              =  0.650G1A505d + 0.350GAA500R                                : ARR( 0.100E-10,     0., 0.0);
+{ 52540} G1A505c                     =       GAN400N +      GCO     +      GHO                     : ARR( 0.200E+15,  4918., 0.0);
+{ 52541} G1A505d                     =       GAD2000 +      GAD3000 +      GNO2                    : ARR( 0.200E+15,  6039., 0.0);
+{ 52542} G1A505d                     =       GAN3006 +      G2A2000                                : ARR( 0.200E+15,  6620., 0.0);
+{ 52543} GPA500B                     =       G3A5008 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 52544} GPA500B +GHO                =       G2P504X                                               : ARR( 0.292E-12,     0., 0.0);
+{ 52545} GPA500B +GHO                =       G2P504Y                                               : ARR( 0.889E-12,     0., 0.0);
+{ 52546} GPA500B +GHO                =       GPD4000 +      GNO2    +      GCO2                    : ARR( 0.537E-12,     0., 0.0);
+{ 52547} GPA500B+HV               =       G1P503N +      GNO2                                   :  0.100E+01*SUN;
+{ 52548} GPA500B+HV               =       G3A5008 +      GNO2                                   :  0.100E+01*SUN;
+{ 52549} G2P504X +GNO                =       G1P506A +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 52550} G2P504X +GNO                =       GPA500X                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 52551} G2P504X +GHO2               =       GPA500w                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 52552} G2P504X +GNO3               =       G1P506A +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 52553} G2P504X +MEPERO             =  0.340G1P506A + 0.330GPA500x + 0.330GPA500k                 : ARR( 0.565E-13,  -845., 0.0);
+{ 52554} G2P504X +PERO1              =  0.460G1P506A + 0.270GPA500x + 0.270GPA500k                 : ARR( 0.434E-13,  -900., 0.0);
+{ 52555} G2P504X +PERO2              =  0.400G1P506A + 0.300GPA500x + 0.300GPA500k                 : ARR( 0.162E-13, -1400., 0.0);
+{ 52556} G2P504X +PERO3              =  0.460G1P506A + 0.270GPA500x + 0.270GPA500k                 : ARR( 0.488E-13, -1250., 0.0);
+{ 52557} G2P504X +PERO5              =  0.460G1P506A + 0.270GPA500x + 0.270GPA500k                 : ARR( 0.183E-11,   450., 0.0);
+{ 52558} G2P504X +PERO6              =  0.300G1P506A + 0.350GPA500x + 0.350GPA500k                 : ARR( 0.168E-13, -1300., 0.0);
+{ 52559} G2P504X +PERO9              =  0.650G1P506A + 0.350GPA500k                                : ARR( 0.100E-10,     0., 0.0);
+{ 52560} G2P504Y +GNO                =       G1P506B +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 52561} G2P504Y +GNO                =       GPA500y                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 52562} G2P504Y +GHO2               =       GPA500z                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 52563} G2P504Y +GNO3               =       G1P506B +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 52564} G2P504Y +MEPERO             =  0.340G1P506B + 0.330GPA500Q + 0.330GPA5011                 : ARR( 0.565E-13,  -845., 0.0);
+{ 52565} G2P504Y +PERO1              =  0.460G1P506B + 0.270GPA500Q + 0.270GPA5011                 : ARR( 0.434E-13,  -900., 0.0);
+{ 52566} G2P504Y +PERO2              =  0.400G1P506B + 0.300GPA500Q + 0.300GPA5011                 : ARR( 0.162E-13, -1400., 0.0);
+{ 52567} G2P504Y +PERO3              =  0.460G1P506B + 0.270GPA500Q + 0.270GPA5011                 : ARR( 0.488E-13, -1250., 0.0);
+{ 52568} G2P504Y +PERO5              =  0.460G1P506B + 0.270GPA500Q + 0.270GPA5011                 : ARR( 0.183E-11,   450., 0.0);
+{ 52569} G2P504Y +PERO6              =  0.300G1P506B + 0.350GPA500Q + 0.350GPA5011                 : ARR( 0.168E-13, -1300., 0.0);
+{ 52570} G2P504Y +PERO9              =  0.650G1P506B + 0.350GPA5011                                : ARR( 0.100E-10,     0., 0.0);
+{ 52571} G1P506A                     =       GAD2000 +      GPD3000 +      GNO2                    : ARR( 0.200E+15,  6039., 0.0);
+{ 52572} G1P506A                     =       GAN3006 +      G2P2000                                : ARR( 0.200E+15,  6620., 0.0);
+{ 52573} G1P506B                     =       GAN400N +      GCO     +      GNO2                    : ARR( 0.200E+15,  4949., 0.0);
+{ 52574} GAH502f +GHO                =       GAH502Z +      GHO                                    : ARR( 0.340E-10,     0., 0.0);
+{ 52575} GAH502f +GHO                =       GAH502P +      GHO                                    : ARR( 0.837E-11,     0., 0.0);
+{ 52576} GAH502f +GHO                =       G2A5021                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 52577} GAH502f +GHO                =       G2A504J                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 52578} GAH502f+HV               =       G1A502P +      GHO                                    :  0.100E+01*SUN;
+{ 52579} GAH502f+HV               =       G1A5054 +      GHO                                    :  0.100E+01*SUN;
+{ 52580} GAH502f+HV               =       G1A505e +      GNO2                                   :  0.100E+01*SUN;
+{ 52581} G2A504J +GNO                =       G1A5054 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 52582} G2A504J +GNO                =       GAH502C                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 52583} G2A504J +GHO2               =       GAH502f                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 52584} G2A504J +GNO3               =       G1A5054 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 52585} G2A504J +MEPERO             =  0.340G1A5054 + 0.330GAH502g + 0.330GAH502P                 : ARR( 0.565E-13,  -845., 0.0);
+{ 52586} G2A504J +PERO1              =  0.460G1A5054 + 0.270GAH502g + 0.270GAH502P                 : ARR( 0.434E-13,  -900., 0.0);
+{ 52587} G2A504J +PERO2              =  0.400G1A5054 + 0.300GAH502g + 0.300GAH502P                 : ARR( 0.162E-13, -1400., 0.0);
+{ 52588} G2A504J +PERO3              =  0.460G1A5054 + 0.270GAH502g + 0.270GAH502P                 : ARR( 0.488E-13, -1250., 0.0);
+{ 52589} G2A504J +PERO5              =  0.460G1A5054 + 0.270GAH502g + 0.270GAH502P                 : ARR( 0.183E-11,   450., 0.0);
+{ 52590} G2A504J +PERO6              =  0.300G1A5054 + 0.350GAH502g + 0.350GAH502P                 : ARR( 0.168E-13, -1300., 0.0);
+{ 52591} G2A504J +PERO9              =  0.650G1A5054 + 0.350GAH502P                                : ARR( 0.100E-10,     0., 0.0);
+{ 52592} G1A505e                     =       G2A504K                                               : ARR( 0.240E+12,  4177., 0.0);
+{ 52593} G1A505e                     =       GHH400M +      GCO     +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 52594} G2A504K +GNO                =       G1A505f +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 52595} G2A504K +GNO                =       GAH504G                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 52596} G2A504K +GHO2               =       GAH504w                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 52597} G2A504K +GNO3               =       G1A505f +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 52598} G2A504K +MEPERO             =  0.480G1A505f + 0.260GAH503l + 0.260GAH503m                 : ARR( 0.164E-12,  -795., 0.0);
+{ 52599} G2A504K +PERO1              =  0.600G1A505f + 0.200GAH503l + 0.200GAH503m                 : ARR( 0.126E-12,  -850., 0.0);
+{ 52600} G2A504K +PERO2              =  0.560G1A505f + 0.220GAH503l + 0.220GAH503m                 : ARR( 0.471E-13, -1350., 0.0);
+{ 52601} G2A504K +PERO3              =  0.600G1A505f + 0.200GAH503l + 0.200GAH503m                 : ARR( 0.142E-12, -1200., 0.0);
+{ 52602} G2A504K +PERO5              =  0.600G1A505f + 0.200GAH503l + 0.200GAH503m                 : ARR( 0.533E-11,   500., 0.0);
+{ 52603} G2A504K +PERO6              =  0.460G1A505f + 0.270GAH503l + 0.270GAH503m                 : ARR( 0.488E-13, -1250., 0.0);
+{ 52604} G2A504K +PERO9              =  0.800G1A505f + 0.200GAH503m                                : ARR( 0.100E-10,     0., 0.0);
+{ 52605} G1A505f                     =       GAH503H +      GHO2                                   : ARR( 0.800E+11,  2381., 0.0);
+{ 52606} G1A505f                     =       GAH400o +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{ 52607} GAH502g +GHO                =       GAN501t +      GHO                                    : ARR( 0.343E-10,     0., 0.0);
+{ 52608} GAH502g +GHO                =       GAH502P +      GHO2                                   : ARR( 0.211E-11,     0., 0.0);
+{ 52609} GAH502g +GHO                =       G2A5023                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 52610} GAH502g+HV               =       G1A502S +      GHO                                    :  0.100E+01*SUN;
+{ 52611} GAH502g+HV               =       G1A505g +      GNO2                                   :  0.100E+01*SUN;
+{ 52612} G1A505g                     =       G2A504L                                               : ARR( 0.240E+12,  4177., 0.0);
+{ 52613} G1A505g                     =       GHD3002 +      GAD2000 +      GHO2                    : ARR( 0.200E+15,  5342., 0.0);
+{ 52614} G1A505g                     =       GHD400H +      GCO     +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 52615} G2A504L +GNO                =       G1A505h +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 52616} G2A504L +GNO                =       GAH504H                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 52617} G2A504L +GHO2               =       GAH504x                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 52618} G2A504L +GNO3               =       G1A505h +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 52619} G2A504L +MEPERO             =  0.480G1A505h + 0.260GAH503P + 0.260GAH503o                 : ARR( 0.164E-12,  -795., 0.0);
+{ 52620} G2A504L +PERO1              =  0.600G1A505h + 0.200GAH503P + 0.200GAH503o                 : ARR( 0.126E-12,  -850., 0.0);
+{ 52621} G2A504L +PERO2              =  0.560G1A505h + 0.220GAH503P + 0.220GAH503o                 : ARR( 0.471E-13, -1350., 0.0);
+{ 52622} G2A504L +PERO3              =  0.600G1A505h + 0.200GAH503P + 0.200GAH503o                 : ARR( 0.142E-12, -1200., 0.0);
+{ 52623} G2A504L +PERO5              =  0.600G1A505h + 0.200GAH503P + 0.200GAH503o                 : ARR( 0.533E-11,   500., 0.0);
+{ 52624} G2A504L +PERO6              =  0.460G1A505h + 0.270GAH503P + 0.270GAH503o                 : ARR( 0.488E-13, -1250., 0.0);
+{ 52625} G2A504L +PERO9              =  0.800G1A505h + 0.200GAH503o                                : ARR( 0.100E-10,     0., 0.0);
+{ 52626} G1A505h                     =       GAH503Q +      GHO2                                   : ARR( 0.800E+11,  2381., 0.0);
+{ 52627} G1A505h                     =       GAD4007 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{ 52628} GAN5025 +GHO                =       GAN501t +      GHO2                                   : ARR( 0.920E-11,     0., 0.0);
+{ 52629} GAN5025 +GHO                =       GAN500r +      GHO2                                   : ARR( 0.226E-11,     0., 0.0);
+{ 52630} GAN5025+HV               =       G1A504O +      GNO2                                   :  0.100E+01*SUN;
+{ 52631} GAH502h +GHO                =       GAK500R +      GHO                                    : ARR( 0.341E-10,     0., 0.0);
+{ 52632} GAH502h +GHO                =       GAH502Q +      GHO2                                   : ARR( 0.105E-10,     0., 0.0);
+{ 52633} GAH502h +GHO                =       GAH502k +      GHO2                                   : ARR( 0.474E-11,     0., 0.0);
+{ 52634} GAH502h +GHO                =       G2A5027                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 52635} GAH502h+HV               =       G1A502U +      GHO                                    :  0.100E+01*SUN;
+{ 52636} GAH502i +GHO                =       GAH502c +      GHO                                    : ARR( 0.113E-09,     0., 0.0);
+{ 52637} GAH502i +GHO                =       GAH502S +      GHO                                    : ARR( 0.266E-10,     0., 0.0);
+{ 52638} GAH502i+HV               =       G1A502W +      GHO                                    :  0.100E+01*SUN;
+{ 52639} GAH502i+HV               =       G1A5059 +      GHO                                    :  0.100E+01*SUN;
+{ 52640} GAH502i+HV               =       GHH400M +      GCO2                                   :  0.100E+01*SUN;
+{ 52641} GAH502j +GHO                =       GAH502c +      GHO2                                   : ARR( 0.270E-10,     0., 0.0);
+{ 52642} GAH502j +GHO                =       GAK500M +      GHO                                    : ARR( 0.255E-10,     0., 0.0);
+{ 52643} GAH502j +GHO                =       G2A504M                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 52644} GAH502j+HV               =       G1A505A +      GHO                                    :  0.100E+01*SUN;
+{ 52645} GAH502j+HV               =       GHD4008 +      GCO2                                   :  0.100E+01*SUN;
+{ 52646} G2A504M +GNO                =       G1A505A +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 52647} G2A504M +GNO                =       GAN501k                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 52648} G2A504M +GHO2               =       GAH502j                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 52649} G2A504M +GNO3               =       G1A505A +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 52650} G2A504M +MEPERO             =  0.340G1A505A + 0.330GAK500Y + 0.330GAK500M                 : ARR( 0.565E-13,  -845., 0.0);
+{ 52651} G2A504M +PERO1              =  0.460G1A505A + 0.270GAK500Y + 0.270GAK500M                 : ARR( 0.434E-13,  -900., 0.0);
+{ 52652} G2A504M +PERO2              =  0.400G1A505A + 0.300GAK500Y + 0.300GAK500M                 : ARR( 0.162E-13, -1400., 0.0);
+{ 52653} G2A504M +PERO3              =  0.460G1A505A + 0.270GAK500Y + 0.270GAK500M                 : ARR( 0.488E-13, -1250., 0.0);
+{ 52654} G2A504M +PERO5              =  0.460G1A505A + 0.270GAK500Y + 0.270GAK500M                 : ARR( 0.183E-11,   450., 0.0);
+{ 52655} G2A504M +PERO6              =  0.300G1A505A + 0.350GAK500Y + 0.350GAK500M                 : ARR( 0.168E-13, -1300., 0.0);
+{ 52656} G2A504M +PERO9              =  0.650G1A505A + 0.350GAK500M                                : ARR( 0.100E-10,     0., 0.0);
+{ 52657} GAH502k +GHO                =       GAK500S +      GHO                                    : ARR( 0.110E-09,     0., 0.0);
+{ 52658} GAH502k +GHO                =       GAH502S +      GHO2                                   : ARR( 0.653E-11,     0., 0.0);
+{ 52659} GAH502k+HV               =       G1A502X +      GHO                                    :  0.100E+01*SUN;
+{ 52660} GAH502k+HV               =       GHD400H +      GCO2                                   :  0.100E+01*SUN;
+{ 52661} GAK500Y +GHO                =       GAK500S +      GHO2                                   : ARR( 0.273E-10,     0., 0.0);
+{ 52662} GAK500Y +GHO                =       GAK500M +      GHO2                                   : ARR( 0.647E-11,     0., 0.0);
+{ 52663} GAK500Y+HV               =       GDO4005 +      GCO2                                   :  0.100E+01*SUN;
+{ 52664} GPH502e                     =       G3H502h +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 52665} GPH502e +GHO                =       GPN5022 +      GHO                                    : ARR( 0.171E-11,     0., 0.0);
+{ 52666} GPH502e +GHO                =       G2P5025                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 52667} GPH502e+HV               =       G1P502g +      GNO2                                   :  0.100E+01*SUN;
+{ 52668} GPH502e+HV               =       G1P502R +      GHO                                    :  0.100E+01*SUN;
+{ 52669} GPH502e+HV               =       G1P502P +      GNO2                                   :  0.100E+01*SUN;
+{ 52670} GPH502e+HV               =       G3H502h +      GNO2                                   :  0.100E+01*SUN;
+{ 52671} GPH502f                     =       G3H502v +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 52672} GPH502f +GHO                =       GPH502S +      GHO                                    : ARR( 0.827E-11,     0., 0.0);
+{ 52673} GPH502f +GHO                =       GPH502h +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 52674} GPH502f +GHO                =       G2P504Z                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 52675} GPH502f +GHO                =       G2P5023                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 52676} GPH502f+HV               =       G1P506C +      GNO2                                   :  0.100E+01*SUN;
+{ 52677} GPH502f+HV               =       G1P5058 +      GHO                                    :  0.100E+01*SUN;
+{ 52678} GPH502f+HV               =       G1P502P +      GHO                                    :  0.100E+01*SUN;
+{ 52679} GPH502f+HV               =       G3H502v +      GNO2                                   :  0.100E+01*SUN;
+{ 52680} G2P504Z +GNO                =       G1P5058 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 52681} G2P504Z +GNO                =       GPH5027                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 52682} G2P504Z +GHO2               =       GPH502f                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 52683} G2P504Z +GNO3               =       G1P5058 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 52684} G2P504Z +MEPERO             =  0.340G1P5058 + 0.330GPH502I + 0.330GPH502S                 : ARR( 0.565E-13,  -845., 0.0);
+{ 52685} G2P504Z +PERO1              =  0.460G1P5058 + 0.270GPH502I + 0.270GPH502S                 : ARR( 0.434E-13,  -900., 0.0);
+{ 52686} G2P504Z +PERO2              =  0.400G1P5058 + 0.300GPH502I + 0.300GPH502S                 : ARR( 0.162E-13, -1400., 0.0);
+{ 52687} G2P504Z +PERO3              =  0.460G1P5058 + 0.270GPH502I + 0.270GPH502S                 : ARR( 0.488E-13, -1250., 0.0);
+{ 52688} G2P504Z +PERO5              =  0.460G1P5058 + 0.270GPH502I + 0.270GPH502S                 : ARR( 0.183E-11,   450., 0.0);
+{ 52689} G2P504Z +PERO6              =  0.300G1P5058 + 0.350GPH502I + 0.350GPH502S                 : ARR( 0.168E-13, -1300., 0.0);
+{ 52690} G2P504Z +PERO9              =  0.650G1P5058 + 0.350GPH502S                                : ARR( 0.100E-10,     0., 0.0);
+{ 52691} G1P506C                     =       GD02000 +      GPH3007 +      GHO                     : ARR( 0.200E+15,  4573., 0.0);
+{ 52692} GPH502g                     =       G3H502w +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 52693} GPH502g +GHO                =       GPN5023 +      GHO                                    : ARR( 0.837E-11,     0., 0.0);
+{ 52694} GPH502g +GHO                =       GPH502h +      GHO2                                   : ARR( 0.638E-11,     0., 0.0);
+{ 52695} GPH502g +GHO                =       G2P504a                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 52696} GPH502g+HV               =       G1P506D +      GNO2                                   :  0.100E+01*SUN;
+{ 52697} GPH502g+HV               =       G1P5059 +      GHO                                    :  0.100E+01*SUN;
+{ 52698} GPH502g+HV               =       G3H502w +      GNO2                                   :  0.100E+01*SUN;
+{ 52699} G2P504a +GNO                =       G1P5059 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 52700} G2P504a +GNO                =       GPN501f                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 52701} G2P504a +GHO2               =       GPH502g                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 52702} G2P504a +GNO3               =       G1P5059 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 52703} G2P504a +MEPERO             =  0.340G1P5059 + 0.330GPN501u + 0.330GPN5023                 : ARR( 0.565E-13,  -845., 0.0);
+{ 52704} G2P504a +PERO1              =  0.460G1P5059 + 0.270GPN501u + 0.270GPN5023                 : ARR( 0.434E-13,  -900., 0.0);
+{ 52705} G2P504a +PERO2              =  0.400G1P5059 + 0.300GPN501u + 0.300GPN5023                 : ARR( 0.162E-13, -1400., 0.0);
+{ 52706} G2P504a +PERO3              =  0.460G1P5059 + 0.270GPN501u + 0.270GPN5023                 : ARR( 0.488E-13, -1250., 0.0);
+{ 52707} G2P504a +PERO5              =  0.460G1P5059 + 0.270GPN501u + 0.270GPN5023                 : ARR( 0.183E-11,   450., 0.0);
+{ 52708} G2P504a +PERO6              =  0.300G1P5059 + 0.350GPN501u + 0.350GPN5023                 : ARR( 0.168E-13, -1300., 0.0);
+{ 52709} G2P504a +PERO9              =  0.650G1P5059 + 0.350GPN5023                                : ARR( 0.100E-10,     0., 0.0);
+{ 52710} G1P506D                     =       GD02000 +      GPD3001 +      GHO                     : ARR( 0.200E+15,  4573., 0.0);
+{ 52711} GPH502h                     =       G3H5046 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 52712} GPH502h +GHO                =       GPN5024 +      GHO                                    : ARR( 0.522E-11,     0., 0.0);
+{ 52713} GPH502h +GHO                =       G2P5027                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 52714} GPH502h+HV               =       G1P502i +      GNO2                                   :  0.100E+01*SUN;
+{ 52715} GPH502h+HV               =       G1P502U +      GHO                                    :  0.100E+01*SUN;
+{ 52716} GPH502h+HV               =       G3H4008 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 52717} GPH502i                     =       G3H502C +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 52718} GPH502i +GHO                =       GPN502C +      GHO                                    : ARR( 0.333E-11,     0., 0.0);
+{ 52719} GPH502i +GHO                =       G2P5024                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 52720} GPH502i+HV               =       G1P502Q +      GHO                                    :  0.100E+01*SUN;
+{ 52721} GPH502i+HV               =       G1P502c +      GNO2                                   :  0.100E+01*SUN;
+{ 52722} GPH502i+HV               =       G1P502w +      GNO2                                   :  0.100E+01*SUN;
+{ 52723} GPH502i+HV               =       G3H502C +      GNO2                                   :  0.100E+01*SUN;
+{ 52724} GPN502C                     =       G3N501v +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 52725} GPN502C +GHO                =       G3P500c                                               : ARR( 0.436E-11,     0., 0.0);
+{ 52726} GPN502C +GNO3               =       G3P500c +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 52727} GPN502C+HV               =       G3N501v +      GNO2                                   :  0.100E+01*SUN;
+{ 52728} GPN502C+HV               =       G1P504I +      GNO2                                   :  0.100E+01*SUN;
+{ 52729} GPN502C+HV               =       G1P506E +      GNO2                                   :  0.100E+01*SUN;
+{ 52730} GPN502C+HV               =       GPN400N +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 52731} GPN502C+HV               =       G2P3006 +      GND2000 +      GNO2                    :  0.100E+01*SUN;
+{ 52732} G3P500c +GHO2               =  0.800GPG500n + 0.200GPA500y + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 52733} G3P500c +GNO                =       GPN400N + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 52734} G3P500c +GNO2               =       GPP500W                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 52735} G3P500c +GNO3               =       GPN400N + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 52736} G3P500c +MEPERO             =  0.685GPN400N + 0.315GPA500y + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 52737} G3P500c +PERO1              =  0.800GPN400N + 0.200GPA500y + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 52738} G3P500c +PERO2              =  0.750GPN400N + 0.250GPA500y + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 52739} G3P500c +PERO3              =  0.800GPN400N + 0.200GPA500y + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 52740} G3P500c +PERO5              =  0.650GPN400N + 0.350GPA500y + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 52741} G3P500c +PERO6              =  0.650GPN400N + 0.350GPA500y + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 52742} G3P500c +PERO9              =       GPN400N +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 52743} G1P506E                     =       GPN400N +      GCO     +      GHO2                    : ARR( 0.200E+15,  5437., 0.0);
+{ 52744} GPH502j                     =       G3H5049 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 52745} GPH502j +GHO                =       GPN502D +      GHO                                    : ARR( 0.329E-11,     0., 0.0);
+{ 52746} GPH502j +GHO                =       GPH5022 +      GNO2                                   : ARR( 0.382E-12,     0., 0.0);
+{ 52747} GPH502j +GHO                =       G2P5026                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 52748} GPH502j+HV               =       G1P502T +      GHO                                    :  0.100E+01*SUN;
+{ 52749} GPH502j+HV               =       G1P504m +      GNO2                                   :  0.100E+01*SUN;
+{ 52750} GPH502j+HV               =       G3H400E +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 52751} G3H5049 +GHO2               =  0.800GGH502n + 0.200GAH502x + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 52752} G3H5049 +GNO                =       G3H400E +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 52753} G3H5049 +GNO2               =       GPH502j                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 52754} G3H5049 +GNO3               =       G3H400E +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 52755} G3H5049 +MEPERO             =  0.685G3H400E + 0.315GAH502x + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 52756} G3H5049 +PERO1              =  0.800G3H400E + 0.200GAH502x + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 52757} G3H5049 +PERO2              =  0.750G3H400E + 0.250GAH502x + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 52758} G3H5049 +PERO3              =  0.800G3H400E + 0.200GAH502x + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 52759} G3H5049 +PERO5              =  0.650G3H400E + 0.350GAH502x + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 52760} G3H5049 +PERO6              =  0.650G3H400E + 0.350GAH502x + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 52761} G3H5049 +PERO9              =       G3H400E +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 52762} GPN502D                     =       G3N502Y +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 52763} GPN502D +GHO                =       G3P500d                                               : ARR( 0.455E-11,     0., 0.0);
+{ 52764} GPN502D +GNO3               =       G3P500d +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 52765} GPN502D+HV               =       G3N400H +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 52766} GPN502D+HV               =       G1P5047 +      GNO2                                   :  0.100E+01*SUN;
+{ 52767} GPN502D+HV               =       GPD4005 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 52768} G3N502Y +GHO2               =  0.800GGN502E + 0.200GAN502c + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 52769} G3N502Y +GNO                =       G3N400H +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 52770} G3N502Y +GNO2               =       GPN502D                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 52771} G3N502Y +GNO3               =       G3N400H +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 52772} G3N502Y +MEPERO             =  0.685G3N400H + 0.315GAN502c + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 52773} G3N502Y +PERO1              =  0.800G3N400H + 0.200GAN502c + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 52774} G3N502Y +PERO2              =  0.750G3N400H + 0.250GAN502c + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 52775} G3N502Y +PERO3              =  0.800G3N400H + 0.200GAN502c + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 52776} G3N502Y +PERO5              =  0.650G3N400H + 0.350GAN502c + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 52777} G3N502Y +PERO6              =  0.650G3N400H + 0.350GAN502c + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 52778} G3N502Y +PERO9              =       G3N400H +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 52779} G3P500d +GHO2               =  0.800GPG500o + 0.200GPA5011 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 52780} G3P500d +GNO                =       GPD4005 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 52781} G3P500d +GNO2               =       GPP500X                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 52782} G3P500d +GNO3               =       GPD4005 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 52783} G3P500d +MEPERO             =  0.685GPD4005 + 0.315GPA5011 + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 52784} G3P500d +PERO1              =  0.800GPD4005 + 0.200GPA5011 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 52785} G3P500d +PERO2              =  0.750GPD4005 + 0.250GPA5011 + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 52786} G3P500d +PERO3              =  0.800GPD4005 + 0.200GPA5011 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 52787} G3P500d +PERO5              =  0.650GPD4005 + 0.350GPA5011 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 52788} G3P500d +PERO6              =  0.650GPD4005 + 0.350GPA5011 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 52789} G3P500d +PERO9              =       GPD4005 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 52790} GPH502k                     =       G3H501m +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 52791} GPH502k +GHO                =       GPN5028 +      GHO                                    : ARR( 0.522E-11,     0., 0.0);
+{ 52792} GPH502k +GHO                =       G2P502A                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 52793} GPH502k+HV               =       G3K2000 +      GPN3006 +      GHO                     :  0.100E+01*SUN;
+{ 52794} GPH502k+HV               =       G1P502Y +      GHO                                    :  0.100E+01*SUN;
+{ 52795} GPH502k+HV               =       G1P502W +      GNO2                                   :  0.100E+01*SUN;
+{ 52796} GPH502k+HV               =       G3H501m +      GNO2                                   :  0.100E+01*SUN;
+{ 52797} GPH502l                     =       G3H504A +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 52798} GPH502l +GHO                =       GPH502U +      GHO                                    : ARR( 0.269E-10,     0., 0.0);
+{ 52799} GPH502l +GHO                =       GPH502n +      GHO                                    : ARR( 0.852E-10,     0., 0.0);
+{ 52800} GPH502l+HV               =       G3K2000 +      GPH3007 +      GHO                     :  0.100E+01*SUN;
+{ 52801} GPH502l+HV               =       G1P505K +      GHO                                    :  0.100E+01*SUN;
+{ 52802} GPH502l+HV               =       G1P502W +      GHO                                    :  0.100E+01*SUN;
+{ 52803} GPH502l+HV               =       G3H504A +      GNO2                                   :  0.100E+01*SUN;
+{ 52804} G3H504A +GHO2               =  0.800GGH502L + 0.200GAH502a + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 52805} G3H504A +GNO                =       GHD4007 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 52806} G3H504A +GNO2               =       GPH502l                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 52807} G3H504A +GNO3               =       GHD4007 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 52808} G3H504A +MEPERO             =  0.685GHD4007 + 0.315GAH502a + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 52809} G3H504A +PERO1              =  0.800GHD4007 + 0.200GAH502a + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 52810} G3H504A +PERO2              =  0.750GHD4007 + 0.250GAH502a + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 52811} G3H504A +PERO3              =  0.800GHD4007 + 0.200GAH502a + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 52812} G3H504A +PERO5              =  0.650GHD4007 + 0.350GAH502a + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 52813} G3H504A +PERO6              =  0.650GHD4007 + 0.350GAH502a + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 52814} G3H504A +PERO9              =       GHD4007 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 52815} GPH502m                     =       G3H501n +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 52816} GPH502m +GHO                =       GPK500Y +      GHO                                    : ARR( 0.253E-10,     0., 0.0);
+{ 52817} GPH502m +GHO                =       GPH502n +      GHO2                                   : ARR( 0.200E-10,     0., 0.0);
+{ 52818} GPH502m +GHO                =       G2P504b                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 52819} GPH502m+HV               =       G3K2000 +      GPD3001 +      GHO                     :  0.100E+01*SUN;
+{ 52820} GPH502m+HV               =       G1P505L +      GHO                                    :  0.100E+01*SUN;
+{ 52821} GPH502m+HV               =       G3H501n +      GNO2                                   :  0.100E+01*SUN;
+{ 52822} G2P504b +GNO                =       G1P505L +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 52823} G2P504b +GNO                =       GPN501n                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 52824} G2P504b +GHO2               =       GPH502m                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 52825} G2P504b +GNO3               =       G1P505L +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 52826} G2P504b +MEPERO             =  0.340G1P505L + 0.330GPK500S + 0.330GPK500Y                 : ARR( 0.565E-13,  -845., 0.0);
+{ 52827} G2P504b +PERO1              =  0.460G1P505L + 0.270GPK500S + 0.270GPK500Y                 : ARR( 0.434E-13,  -900., 0.0);
+{ 52828} G2P504b +PERO2              =  0.400G1P505L + 0.300GPK500S + 0.300GPK500Y                 : ARR( 0.162E-13, -1400., 0.0);
+{ 52829} G2P504b +PERO3              =  0.460G1P505L + 0.270GPK500S + 0.270GPK500Y                 : ARR( 0.488E-13, -1250., 0.0);
+{ 52830} G2P504b +PERO5              =  0.460G1P505L + 0.270GPK500S + 0.270GPK500Y                 : ARR( 0.183E-11,   450., 0.0);
+{ 52831} G2P504b +PERO6              =  0.300G1P505L + 0.350GPK500S + 0.350GPK500Y                 : ARR( 0.168E-13, -1300., 0.0);
+{ 52832} G2P504b +PERO9              =  0.650G1P505L + 0.350GPK500Y                                : ARR( 0.100E-10,     0., 0.0);
+{ 52833} GPH502n                     =       G3H5047 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 52834} GPH502n +GHO                =       GPK500Z +      GHO                                    : ARR( 0.154E-10,     0., 0.0);
+{ 52835} GPH502n +GHO                =       G2P502C                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 52836} GPH502n+HV               =       G3K2000 +      GPD3002 +      GHO                     :  0.100E+01*SUN;
+{ 52837} GPH502n+HV               =       G1P502a +      GHO                                    :  0.100E+01*SUN;
+{ 52838} GPH502n+HV               =       G3H4009 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 52839} GPN502E                     =       G3N501U +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 52840} GPN502E +GHO                =       G3P4002 +      GCO                                    : ARR( 0.131E-10,     0., 0.0);
+{ 52841} GPN502E +GNO3               =       G3P4002 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 52842} GPN502E+HV               =       G3N501U +      GNO2                                   :  0.100E+01*SUN;
+{ 52843} GPN502E+HV               =       G1P504L +      GNO2                                   :  0.100E+01*SUN;
+{ 52844} GPN502E+HV               =       G3P4002 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 52845} GPN502E+HV               =       GPN400N +      GCO                                    :  0.100E+01*SUN;
+{ 52846} GPN502E+HV               =       GPN3001 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 52847} GPG4002                     =       G3G4003 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 52848} GPG4002 +GHO                =       G3P4002                                               : ARR( 0.203E-11,  -190., 0.0);
+{ 52849} GPG4002+HV               =       G2P3004 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 52850} GPG4002+HV               =       G1P400w +      GNO2                                   :  0.100E+01*SUN;
+{ 52851} GPG4002+HV               =       G3G4003 +      GNO2                                   :  0.100E+01*SUN;
+{ 52852} GPD500H                     =       G3D500K +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 52853} GPD500H +GHO                =       G3P4003 +      GCO                                    : ARR( 0.132E-10,     0., 0.0);
+{ 52854} GPD500H +GNO3               =       G3P4003 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 52855} GPD500H+HV               =       G3D4003 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 52856} GPD500H+HV               =       G3P4003 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 52857} GPD500H+HV               =       GPD4005 +      GCO                                    :  0.100E+01*SUN;
+{ 52858} GPD500H+HV               =       GPK3000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 52859} G3D500K +GHO2               =  0.800GGD500J + 0.200GAD500I + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 52860} G3D500K +GNO                =       G3D4003 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 52861} G3D500K +GNO2               =       GPD500H                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 52862} G3D500K +GNO3               =       G3D4003 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 52863} G3D500K +MEPERO             =  0.685G3D4003 + 0.315GAD500I + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 52864} G3D500K +PERO1              =  0.800G3D4003 + 0.200GAD500I + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 52865} G3D500K +PERO2              =  0.750G3D4003 + 0.250GAD500I + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 52866} G3D500K +PERO3              =  0.800G3D4003 + 0.200GAD500I + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 52867} G3D500K +PERO5              =  0.650G3D4003 + 0.350GAD500I + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 52868} G3D500K +PERO6              =  0.650G3D4003 + 0.350GAD500I + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 52869} G3D500K +PERO9              =       G3D4003 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 52870} GPG4003                     =       G3G400A +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 52871} GPG4003 +GHO                =       G2P4017                                               : ARR( 0.525E-12,     0., 0.0);
+{ 52872} GPG4003 +GHO                =       G3P4003                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 52873} GPG4003+HV               =       G2P3006 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 52874} GPG4003+HV               =       G3G3000 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 52875} G3G400A +GHO2               =  0.800GGG4004 + 0.200GAG4003 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 52876} G3G400A +GNO                =       G3G3000 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 52877} G3G400A +GNO2               =       GPG4003                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 52878} G3G400A +GNO3               =       G3G3000 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 52879} G3G400A +MEPERO             =  0.685G3G3000 + 0.315GAG4003 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 52880} G3G400A +PERO1              =  0.800G3G3000 + 0.200GAG4003 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 52881} G3G400A +PERO2              =  0.750G3G3000 + 0.250GAG4003 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 52882} G3G400A +PERO3              =  0.800G3G3000 + 0.200GAG4003 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 52883} G3G400A +PERO5              =  0.650G3G3000 + 0.350GAG4003 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 52884} G3G400A +PERO6              =  0.650G3G3000 + 0.350GAG4003 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 52885} G3G400A +PERO9              =       G3G3000 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 52886} G2P4017 +GNO                =       G1P401G +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 52887} G2P4017 +GNO                =       GPG400E                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 52888} G2P4017 +GHO2               =       GPG400G                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 52889} G2P4017 +GNO3               =       G1P401G +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 52890} G2P4017 +MEPERO             =  0.340G1P401G + 0.330GPG4008 + 0.330GPG400H                 : ARR( 0.565E-13,  -845., 0.0);
+{ 52891} G2P4017 +PERO1              =  0.460G1P401G + 0.270GPG4008 + 0.270GPG400H                 : ARR( 0.434E-13,  -900., 0.0);
+{ 52892} G2P4017 +PERO2              =  0.400G1P401G + 0.300GPG4008 + 0.300GPG400H                 : ARR( 0.162E-13, -1400., 0.0);
+{ 52893} G2P4017 +PERO3              =  0.460G1P401G + 0.270GPG4008 + 0.270GPG400H                 : ARR( 0.488E-13, -1250., 0.0);
+{ 52894} G2P4017 +PERO5              =  0.460G1P401G + 0.270GPG4008 + 0.270GPG400H                 : ARR( 0.183E-11,   450., 0.0);
+{ 52895} G2P4017 +PERO6              =  0.300G1P401G + 0.350GPG4008 + 0.350GPG400H                 : ARR( 0.168E-13, -1300., 0.0);
+{ 52896} G2P4017 +PERO9              =  0.650G1P401G + 0.350GPG400H                                : ARR( 0.100E-10,     0., 0.0);
+{ 52897} G1P401G                     =       GGD2000 +      GCO     +      GNO2    +      GCO      : ARR( 0.200E+15,  5653., 0.0);
+{ 52898} GPA4004                     =       G3A400D +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 52899} GPA4004 +GHO                =       G2P4018                                               : ARR( 0.389E-12,     0., 0.0);
+{ 52900} GPA4004 +GHO                =       G2P3006 +      GCO2                                   : ARR( 0.520E-12,     0., 0.0);
+{ 52901} GPA4004+HV               =       G3A3000 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 52902} G3A400D +GHO2               =  0.800GAG4009 + 0.200GAA4002 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 52903} G3A400D +GNO                =       G3A3000 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 52904} G3A400D +GNO2               =       GPA4004                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 52905} G3A400D +GNO3               =       G3A3000 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 52906} G3A400D +MEPERO             =  0.685G3A3000 + 0.315GAA4002 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 52907} G3A400D +PERO1              =  0.800G3A3000 + 0.200GAA4002 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 52908} G3A400D +PERO2              =  0.750G3A3000 + 0.250GAA4002 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 52909} G3A400D +PERO3              =  0.800G3A3000 + 0.200GAA4002 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 52910} G3A400D +PERO5              =  0.650G3A3000 + 0.350GAA4002 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 52911} G3A400D +PERO6              =  0.650G3A3000 + 0.350GAA4002 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 52912} G3A400D +PERO9              =       G3A3000 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 52913} G2P4018 +GNO                =       G1P401H +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 52914} G2P4018 +GNO                =       GPA400G                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 52915} G2P4018 +GHO2               =       GPA400L                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 52916} G2P4018 +GNO3               =       G1P401H +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 52917} G2P4018 +MEPERO             =  0.340G1P401H + 0.330GPA400A + 0.330GPA400K                 : ARR( 0.565E-13,  -845., 0.0);
+{ 52918} G2P4018 +PERO1              =  0.460G1P401H + 0.270GPA400A + 0.270GPA400K                 : ARR( 0.434E-13,  -900., 0.0);
+{ 52919} G2P4018 +PERO2              =  0.400G1P401H + 0.300GPA400A + 0.300GPA400K                 : ARR( 0.162E-13, -1400., 0.0);
+{ 52920} G2P4018 +PERO3              =  0.460G1P401H + 0.270GPA400A + 0.270GPA400K                 : ARR( 0.488E-13, -1250., 0.0);
+{ 52921} G2P4018 +PERO5              =  0.460G1P401H + 0.270GPA400A + 0.270GPA400K                 : ARR( 0.183E-11,   450., 0.0);
+{ 52922} G2P4018 +PERO6              =  0.300G1P401H + 0.350GPA400A + 0.350GPA400K                 : ARR( 0.168E-13, -1300., 0.0);
+{ 52923} G2P4018 +PERO9              =  0.650G1P401H + 0.350GPA400K                                : ARR( 0.100E-10,     0., 0.0);
+{ 52924} G1P401H                     =       GCO     +      GPD3002 +      GHO                     : ARR( 0.200E+15,  6787., 0.0);
+{ 52925} G1P401H                     =       GAD2000 +      GCO     +      GNO2    +      GCO      : ARR( 0.200E+15,  5653., 0.0);
+{ 52926} GPP4002                     =       G3P4003 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 52927} GPP4002                     =       G3P400E +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 52928} GPP4002 +GHO                =       G2P4019                                               : ARR( 0.525E-12,     0., 0.0);
+{ 52929} GPP4002+HV               =       G3P4003 +      GNO2                                   :  0.100E+01*SUN;
+{ 52930} GPP4002+HV               =       G3P3000 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 52931} G3P400E +GHO2               =  0.800GPG400A + 0.200GPA4003 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 52932} G3P400E +GNO                =       G3P3000 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 52933} G3P400E +GNO2               =       GPP4002                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 52934} G3P400E +GNO3               =       G3P3000 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 52935} G3P400E +MEPERO             =  0.685G3P3000 + 0.315GPA4003 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 52936} G3P400E +PERO1              =  0.800G3P3000 + 0.200GPA4003 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 52937} G3P400E +PERO2              =  0.750G3P3000 + 0.250GPA4003 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 52938} G3P400E +PERO3              =  0.800G3P3000 + 0.200GPA4003 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 52939} G3P400E +PERO5              =  0.650G3P3000 + 0.350GPA4003 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 52940} G3P400E +PERO6              =  0.650G3P3000 + 0.350GPA4003 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 52941} G3P400E +PERO9              =       G3P3000 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 52942} G2P4019 +GNO                =       G1P401I +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 52943} G2P4019 +GNO                =       GPP4008                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 52944} G2P4019 +GHO2               =       GPP400B                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 52945} G2P4019 +GNO3               =       G1P401I +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 52946} G2P4019 +MEPERO             =  0.340G1P401I + 0.330GPP4005 + 0.330GPP400C                 : ARR( 0.565E-13,  -845., 0.0);
+{ 52947} G2P4019 +PERO1              =  0.460G1P401I + 0.270GPP4005 + 0.270GPP400C                 : ARR( 0.434E-13,  -900., 0.0);
+{ 52948} G2P4019 +PERO2              =  0.400G1P401I + 0.300GPP4005 + 0.300GPP400C                 : ARR( 0.162E-13, -1400., 0.0);
+{ 52949} G2P4019 +PERO3              =  0.460G1P401I + 0.270GPP4005 + 0.270GPP400C                 : ARR( 0.488E-13, -1250., 0.0);
+{ 52950} G2P4019 +PERO5              =  0.460G1P401I + 0.270GPP4005 + 0.270GPP400C                 : ARR( 0.183E-11,   450., 0.0);
+{ 52951} G2P4019 +PERO6              =  0.300G1P401I + 0.350GPP4005 + 0.350GPP400C                 : ARR( 0.168E-13, -1300., 0.0);
+{ 52952} G2P4019 +PERO9              =  0.650G1P401I + 0.350GPP400C                                : ARR( 0.100E-10,     0., 0.0);
+{ 52953} G1P401I                     =       GCO     +      GPD2000 +      GNO2    +      GCO      : ARR( 0.200E+15,  5653., 0.0);
+{ 52954} GGH502T +GHO                =       GGN5011 +      GHO                                    : ARR( 0.163E-10,     0., 0.0);
+{ 52955} GGH502T +GHO                =       G2G503I                                               : ARR( 0.143E-11,     0., 0.0);
+{ 52956} GGH502T +GHO                =       G2G503J                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 52957} GGH502T +GHO                =       G3H501j                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 52958} GGH502T+HV               =       G1G500j +      GHO                                    :  0.100E+01*SUN;
+{ 52959} GGH502T+HV               =       G1G504Y +      GNO2                                   :  0.100E+01*SUN;
+{ 52960} GGH502T+HV               =       GHD4001 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 52961} G2G503I +GNO                =       G1G504Z +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 52962} G2G503I +GNO                =       GGH502l                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 52963} G2G503I +GHO2               =       GGH504m                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 52964} G2G503I +GNO3               =       G1G504Z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 52965} G2G503I +MEPERO             =  0.340G1G504Z + 0.330GGH500e + 0.330GGH501v                 : ARR( 0.565E-13,  -845., 0.0);
+{ 52966} G2G503I +PERO1              =  0.460G1G504Z + 0.270GGH500e + 0.270GGH501v                 : ARR( 0.434E-13,  -900., 0.0);
+{ 52967} G2G503I +PERO2              =  0.400G1G504Z + 0.300GGH500e + 0.300GGH501v                 : ARR( 0.162E-13, -1400., 0.0);
+{ 52968} G2G503I +PERO3              =  0.460G1G504Z + 0.270GGH500e + 0.270GGH501v                 : ARR( 0.488E-13, -1250., 0.0);
+{ 52969} G2G503I +PERO5              =  0.460G1G504Z + 0.270GGH500e + 0.270GGH501v                 : ARR( 0.183E-11,   450., 0.0);
+{ 52970} G2G503I +PERO6              =  0.300G1G504Z + 0.350GGH500e + 0.350GGH501v                 : ARR( 0.168E-13, -1300., 0.0);
+{ 52971} G2G503I +PERO9              =  0.650G1G504Z + 0.350GGH501v                                : ARR( 0.100E-10,     0., 0.0);
+{ 52972} G2G503J +GNO                =       G1G500j +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 52973} G2G503J +GNO                =       GGN500A                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 52974} G2G503J +GHO2               =       GGH502T                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 52975} G2G503J +GNO3               =       G1G500j +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 52976} G2G503J +MEPERO             =  0.480G1G500j + 0.260GGN500D + 0.260GGN5011                 : ARR( 0.146E-12,  -445., 0.0);
+{ 52977} G2G503J +PERO1              =  0.600G1G500j + 0.200GGN500D + 0.200GGN5011                 : ARR( 0.112E-12,  -500., 0.0);
+{ 52978} G2G503J +PERO2              =  0.560G1G500j + 0.220GGN500D + 0.220GGN5011                 : ARR( 0.418E-13, -1000., 0.0);
+{ 52979} G2G503J +PERO3              =  0.600G1G500j + 0.200GGN500D + 0.200GGN5011                 : ARR( 0.126E-12,  -850., 0.0);
+{ 52980} G2G503J +PERO5              =  0.600G1G500j + 0.200GGN500D + 0.200GGN5011                 : ARR( 0.473E-11,   850., 0.0);
+{ 52981} G2G503J +PERO6              =  0.460G1G500j + 0.270GGN500D + 0.270GGN5011                 : ARR( 0.434E-13,  -900., 0.0);
+{ 52982} G2G503J +PERO9              =  0.800G1G500j + 0.200GGN5011                                : ARR( 0.100E-10,     0., 0.0);
+{ 52983} G1G504Y                     =       GGD5000 +      GHO                                    : ARR( 0.160E+12,  2186., 0.0);
+{ 52984} G1G504Y                     =       GHD4001 +      GCO     +      GHO2                    : ARR( 0.200E+15,  4949., 0.0);
+{ 52985} G1G504Z                     =       GCH2O   +      GGN400M +      GHO                     : ARR( 0.200E+15,  7140., 0.0);
+{ 52986} G1G504Z                     =       GHD2000 +      G2G3003                                : ARR( 0.200E+15,  7118., 0.0);
+{ 52987} GPH502o                     =       G3H504B +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 52988} GPH502o +GHO                =       GPH503r +      GHO                                    : ARR( 0.162E-10,     0., 0.0);
+{ 52989} GPH502o +GHO                =       GPH501z +      GHO                                    : ARR( 0.414E-10,     0., 0.0);
+{ 52990} GPH502o +GHO                =       G2P504c                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 52991} GPH502o +GHO                =       G2P502D                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 52992} GPH502o+HV               =       G1P503o +      GHO                                    :  0.100E+01*SUN;
+{ 52993} GPH502o+HV               =       G1P502c +      GHO                                    :  0.100E+01*SUN;
+{ 52994} GPH502o+HV               =       G1P506F +      GNO2                                   :  0.100E+01*SUN;
+{ 52995} GPH502o+HV               =       G3H504B +      GNO2                                   :  0.100E+01*SUN;
+{ 52996} G3H504B +GHO2               =  0.800GGH504m + 0.200GAH502e + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 52997} G3H504B +GNO                =       GHH400B + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 52998} G3H504B +GNO2               =       GPH502o                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 52999} G3H504B +GNO3               =       GHH400B + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 53000} G3H504B +MEPERO             =  0.685GHH400B + 0.315GAH502e + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53001} G3H504B +PERO1              =  0.800GHH400B + 0.200GAH502e + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53002} G3H504B +PERO2              =  0.750GHH400B + 0.250GAH502e + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53003} G3H504B +PERO3              =  0.800GHH400B + 0.200GAH502e + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53004} G3H504B +PERO5              =  0.650GHH400B + 0.350GAH502e + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53005} G3H504B +PERO6              =  0.650GHH400B + 0.350GAH502e + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53006} G3H504B +PERO9              =       GHH400B +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 53007} G2P504c +GNO                =       G1P503o +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 53008} G2P504c +GNO                =       GPH501B                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 53009} G2P504c +GHO2               =       GPH502o                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 53010} G2P504c +GNO3               =       G1P503o +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 53011} G2P504c +MEPERO             =  0.480G1P503o + 0.260GPH501F + 0.260GPH503r                 : ARR( 0.164E-12,  -795., 0.0);
+{ 53012} G2P504c +PERO1              =  0.600G1P503o + 0.200GPH501F + 0.200GPH503r                 : ARR( 0.126E-12,  -850., 0.0);
+{ 53013} G2P504c +PERO2              =  0.560G1P503o + 0.220GPH501F + 0.220GPH503r                 : ARR( 0.471E-13, -1350., 0.0);
+{ 53014} G2P504c +PERO3              =  0.600G1P503o + 0.200GPH501F + 0.200GPH503r                 : ARR( 0.142E-12, -1200., 0.0);
+{ 53015} G2P504c +PERO5              =  0.600G1P503o + 0.200GPH501F + 0.200GPH503r                 : ARR( 0.533E-11,   500., 0.0);
+{ 53016} G2P504c +PERO6              =  0.460G1P503o + 0.270GPH501F + 0.270GPH503r                 : ARR( 0.488E-13, -1250., 0.0);
+{ 53017} G2P504c +PERO9              =  0.800G1P503o + 0.200GPH503r                                : ARR( 0.100E-10,     0., 0.0);
+{ 53018} G1P506F                     =       GPH501J +      GHO                                    : ARR( 0.160E+12,  2186., 0.0);
+{ 53019} G1P506F                     =       GHH400B +      GCO     +      GNO2                    : ARR( 0.200E+15,  4949., 0.0);
+{ 53020} GPG500A                     =       G3G500G +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 53021} GPG500A +GHO                =       G2P504d                                               : ARR( 0.875E-12,     0., 0.0);
+{ 53022} GPG500A +GHO                =       G2P504e                                               : ARR( 0.287E-12,     0., 0.0);
+{ 53023} GPG500A +GHO                =       G3P5008                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 53024} GPG500A+HV               =       G2P400E +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 53025} GPG500A+HV               =       G1P506G +      GNO2                                   :  0.100E+01*SUN;
+{ 53026} GPG500A+HV               =       G3G500G +      GNO2                                   :  0.100E+01*SUN;
+{ 53027} G2P504d +GNO                =       G1P506H +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 53028} G2P504d +GNO                =       GPG500n                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 53029} G2P504d +GHO2               =       GPG500p                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 53030} G2P504d +GNO3               =       G1P506H +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 53031} G2P504d +MEPERO             =  0.340G1P506H + 0.330GPG500I + 0.330GPG500q                 : ARR( 0.565E-13,  -845., 0.0);
+{ 53032} G2P504d +PERO1              =  0.460G1P506H + 0.270GPG500I + 0.270GPG500q                 : ARR( 0.434E-13,  -900., 0.0);
+{ 53033} G2P504d +PERO2              =  0.400G1P506H + 0.300GPG500I + 0.300GPG500q                 : ARR( 0.162E-13, -1400., 0.0);
+{ 53034} G2P504d +PERO3              =  0.460G1P506H + 0.270GPG500I + 0.270GPG500q                 : ARR( 0.488E-13, -1250., 0.0);
+{ 53035} G2P504d +PERO5              =  0.460G1P506H + 0.270GPG500I + 0.270GPG500q                 : ARR( 0.183E-11,   450., 0.0);
+{ 53036} G2P504d +PERO6              =  0.300G1P506H + 0.350GPG500I + 0.350GPG500q                 : ARR( 0.168E-13, -1300., 0.0);
+{ 53037} G2P504d +PERO9              =  0.650G1P506H + 0.350GPG500q                                : ARR( 0.100E-10,     0., 0.0);
+{ 53038} G2P504e +GNO                =       G1P506I +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 53039} G2P504e +GNO                =       GPG500W                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 53040} G2P504e +GHO2               =       GPG500r                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 53041} G2P504e +GNO3               =       G1P506I +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 53042} G2P504e +MEPERO             =  0.340G1P506I + 0.330GPG500s + 0.330GPG500e                 : ARR( 0.565E-13,  -845., 0.0);
+{ 53043} G2P504e +PERO1              =  0.460G1P506I + 0.270GPG500s + 0.270GPG500e                 : ARR( 0.434E-13,  -900., 0.0);
+{ 53044} G2P504e +PERO2              =  0.400G1P506I + 0.300GPG500s + 0.300GPG500e                 : ARR( 0.162E-13, -1400., 0.0);
+{ 53045} G2P504e +PERO3              =  0.460G1P506I + 0.270GPG500s + 0.270GPG500e                 : ARR( 0.488E-13, -1250., 0.0);
+{ 53046} G2P504e +PERO5              =  0.460G1P506I + 0.270GPG500s + 0.270GPG500e                 : ARR( 0.183E-11,   450., 0.0);
+{ 53047} G2P504e +PERO6              =  0.300G1P506I + 0.350GPG500s + 0.350GPG500e                 : ARR( 0.168E-13, -1300., 0.0);
+{ 53048} G2P504e +PERO9              =  0.650G1P506I + 0.350GPG500e                                : ARR( 0.100E-10,     0., 0.0);
+{ 53049} G1P506G                     =       GGD4000 +      GCO     +      GNO2                    : ARR( 0.200E+15,  4949., 0.0);
+{ 53050} G1P506H                     =       GCO     +      GPN400N +      GHO2                    : ARR( 0.200E+15,  4949., 0.0);
+{ 53051} G1P506I                     =       G2G2000 +      GPN3006                                : ARR( 0.200E+15,  6620., 0.0);
+{ 53052} G1P506I                     =       GGD3000 +      GPD2000 +      GNO2                    : ARR( 0.200E+15,  6039., 0.0);
+{ 53053} GPA500C                     =       G3A500L +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 53054} GPA500C +GHO                =       G2P504f                                               : ARR( 0.669E-12,     0., 0.0);
+{ 53055} GPA500C +GHO                =       G2P504g                                               : ARR( 0.297E-12,     0., 0.0);
+{ 53056} GPA500C +GHO                =       G2P400E +      GCO2                                   : ARR( 0.546E-12,     0., 0.0);
+{ 53057} GPA500C+HV               =       G1P503P +      GNO2                                   :  0.100E+01*SUN;
+{ 53058} GPA500C+HV               =       G3A500L +      GNO2                                   :  0.100E+01*SUN;
+{ 53059} G2P504f +GNO                =       G1P506J +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 53060} G2P504f +GNO                =       GPA500y                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 53061} G2P504f +GHO2               =       GPA5012                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 53062} G2P504f +GNO3               =       G1P506J +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 53063} G2P504f +MEPERO             =  0.340G1P506J + 0.330GPA500K + 0.330GPA5013                 : ARR( 0.565E-13,  -845., 0.0);
+{ 53064} G2P504f +PERO1              =  0.460G1P506J + 0.270GPA500K + 0.270GPA5013                 : ARR( 0.434E-13,  -900., 0.0);
+{ 53065} G2P504f +PERO2              =  0.400G1P506J + 0.300GPA500K + 0.300GPA5013                 : ARR( 0.162E-13, -1400., 0.0);
+{ 53066} G2P504f +PERO3              =  0.460G1P506J + 0.270GPA500K + 0.270GPA5013                 : ARR( 0.488E-13, -1250., 0.0);
+{ 53067} G2P504f +PERO5              =  0.460G1P506J + 0.270GPA500K + 0.270GPA5013                 : ARR( 0.183E-11,   450., 0.0);
+{ 53068} G2P504f +PERO6              =  0.300G1P506J + 0.350GPA500K + 0.350GPA5013                 : ARR( 0.168E-13, -1300., 0.0);
+{ 53069} G2P504f +PERO9              =  0.650G1P506J + 0.350GPA5013                                : ARR( 0.100E-10,     0., 0.0);
+{ 53070} G2P504g +GNO                =       G1P506K +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 53071} G2P504g +GNO                =       GPA500a                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 53072} G2P504g +GHO2               =       GPA5014                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 53073} G2P504g +GNO3               =       G1P506K +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 53074} G2P504g +MEPERO             =  0.340G1P506K + 0.330GPA5015 + 0.330GPA500n                 : ARR( 0.565E-13,  -845., 0.0);
+{ 53075} G2P504g +PERO1              =  0.460G1P506K + 0.270GPA5015 + 0.270GPA500n                 : ARR( 0.434E-13,  -900., 0.0);
+{ 53076} G2P504g +PERO2              =  0.400G1P506K + 0.300GPA5015 + 0.300GPA500n                 : ARR( 0.162E-13, -1400., 0.0);
+{ 53077} G2P504g +PERO3              =  0.460G1P506K + 0.270GPA5015 + 0.270GPA500n                 : ARR( 0.488E-13, -1250., 0.0);
+{ 53078} G2P504g +PERO5              =  0.460G1P506K + 0.270GPA5015 + 0.270GPA500n                 : ARR( 0.183E-11,   450., 0.0);
+{ 53079} G2P504g +PERO6              =  0.300G1P506K + 0.350GPA5015 + 0.350GPA500n                 : ARR( 0.168E-13, -1300., 0.0);
+{ 53080} G2P504g +PERO9              =  0.650G1P506K + 0.350GPA500n                                : ARR( 0.100E-10,     0., 0.0);
+{ 53081} G1P506J                     =       GCO     +      GPN400N +      GHO                     : ARR( 0.200E+15,  4918., 0.0);
+{ 53082} G1P506K                     =       G2A2000 +      GPN3006                                : ARR( 0.200E+15,  6620., 0.0);
+{ 53083} G1P506K                     =       GAD3000 +      GPD2000 +      GNO2                    : ARR( 0.200E+15,  6039., 0.0);
+{ 53084} GPP5007                     =       G3P5008 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 53085} GPP5007                     =       G3P500J +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 53086} GPP5007 +GHO                =       G2P504h                                               : ARR( 0.862E-12,     0., 0.0);
+{ 53087} GPP5007 +GHO                =       G2P504i                                               : ARR( 0.283E-12,     0., 0.0);
+{ 53088} GPP5007 +GHO                =       GPP500C +      GNO2                                   : ARR( 0.718E-13,     0., 0.0);
+{ 53089} GPP5007+HV               =       G3P5008 +      GNO2                                   :  0.100E+01*SUN;
+{ 53090} GPP5007+HV               =       G1P506L +      GNO2                                   :  0.100E+01*SUN;
+{ 53091} GPP5007+HV               =       G3P500J +      GNO2                                   :  0.100E+01*SUN;
+{ 53092} G2P504h +GNO                =       G1P506M +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 53093} G2P504h +GNO                =       GPP500W                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 53094} G2P504h +GHO2               =       GPP500Y                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 53095} G2P504h +GNO3               =       G1P506M +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 53096} G2P504h +MEPERO             =  0.340G1P506M + 0.330GPP500A + 0.330GPP500X                 : ARR( 0.565E-13,  -845., 0.0);
+{ 53097} G2P504h +PERO1              =  0.460G1P506M + 0.270GPP500A + 0.270GPP500X                 : ARR( 0.434E-13,  -900., 0.0);
+{ 53098} G2P504h +PERO2              =  0.400G1P506M + 0.300GPP500A + 0.300GPP500X                 : ARR( 0.162E-13, -1400., 0.0);
+{ 53099} G2P504h +PERO3              =  0.460G1P506M + 0.270GPP500A + 0.270GPP500X                 : ARR( 0.488E-13, -1250., 0.0);
+{ 53100} G2P504h +PERO5              =  0.460G1P506M + 0.270GPP500A + 0.270GPP500X                 : ARR( 0.183E-11,   450., 0.0);
+{ 53101} G2P504h +PERO6              =  0.300G1P506M + 0.350GPP500A + 0.350GPP500X                 : ARR( 0.168E-13, -1300., 0.0);
+{ 53102} G2P504h +PERO9              =  0.650G1P506M + 0.350GPP500X                                : ARR( 0.100E-10,     0., 0.0);
+{ 53103} G2P504i +GNO                =       G1P506N +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 53104} G2P504i +GNO                =       GPP500I                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 53105} G2P504i +GHO2               =       GPP500Z                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 53106} G2P504i +GNO3               =       G1P506N +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 53107} G2P504i +MEPERO             =  0.340G1P506N + 0.330GPP500a + 0.330GPP500P                 : ARR( 0.565E-13,  -845., 0.0);
+{ 53108} G2P504i +PERO1              =  0.460G1P506N + 0.270GPP500a + 0.270GPP500P                 : ARR( 0.434E-13,  -900., 0.0);
+{ 53109} G2P504i +PERO2              =  0.400G1P506N + 0.300GPP500a + 0.300GPP500P                 : ARR( 0.162E-13, -1400., 0.0);
+{ 53110} G2P504i +PERO3              =  0.460G1P506N + 0.270GPP500a + 0.270GPP500P                 : ARR( 0.488E-13, -1250., 0.0);
+{ 53111} G2P504i +PERO5              =  0.460G1P506N + 0.270GPP500a + 0.270GPP500P                 : ARR( 0.183E-11,   450., 0.0);
+{ 53112} G2P504i +PERO6              =  0.300G1P506N + 0.350GPP500a + 0.350GPP500P                 : ARR( 0.168E-13, -1300., 0.0);
+{ 53113} G2P504i +PERO9              =  0.650G1P506N + 0.350GPP500P                                : ARR( 0.100E-10,     0., 0.0);
+{ 53114} G1P506L                     =       GPD4000 +      GCO     +      GNO2                    : ARR( 0.200E+15,  4949., 0.0);
+{ 53115} G1P506M                     =       GPN400N +      GCO     +      GNO2                    : ARR( 0.200E+15,  4949., 0.0);
+{ 53116} G1P506N                     =       GPD2000 +      GPD3000 +      GNO2                    : ARR( 0.200E+15,  6039., 0.0);
+{ 53117} G1P506N                     =       GPN3006 +      G2P2000                                : ARR( 0.200E+15,  6620., 0.0);
+{ 53118} GPH502p                     =       G3H503u +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 53119} GPH502p +GHO                =       GPH502k +      GHO                                    : ARR( 0.337E-10,     0., 0.0);
+{ 53120} GPH502p +GHO                =       GPH502X +      GHO                                    : ARR( 0.828E-11,     0., 0.0);
+{ 53121} GPH502p +GHO                =       G2P502E                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 53122} GPH502p +GHO                =       G2P504j                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 53123} GPH502p+HV               =       G1P502g +      GHO                                    :  0.100E+01*SUN;
+{ 53124} GPH502p+HV               =       G1P505S +      GHO                                    :  0.100E+01*SUN;
+{ 53125} GPH502p+HV               =       G1P506O +      GNO2                                   :  0.100E+01*SUN;
+{ 53126} GPH502p+HV               =       G3H503u +      GNO2                                   :  0.100E+01*SUN;
+{ 53127} G2P504j +GNO                =       G1P505S +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 53128} G2P504j +GNO                =       GPH502B                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 53129} G2P504j +GHO2               =       GPH502p                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 53130} G2P504j +GNO3               =       G1P505S +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 53131} G2P504j +MEPERO             =  0.340G1P505S + 0.330GPH502K + 0.330GPH502X                 : ARR( 0.565E-13,  -845., 0.0);
+{ 53132} G2P504j +PERO1              =  0.460G1P505S + 0.270GPH502K + 0.270GPH502X                 : ARR( 0.434E-13,  -900., 0.0);
+{ 53133} G2P504j +PERO2              =  0.400G1P505S + 0.300GPH502K + 0.300GPH502X                 : ARR( 0.162E-13, -1400., 0.0);
+{ 53134} G2P504j +PERO3              =  0.460G1P505S + 0.270GPH502K + 0.270GPH502X                 : ARR( 0.488E-13, -1250., 0.0);
+{ 53135} G2P504j +PERO5              =  0.460G1P505S + 0.270GPH502K + 0.270GPH502X                 : ARR( 0.183E-11,   450., 0.0);
+{ 53136} G2P504j +PERO6              =  0.300G1P505S + 0.350GPH502K + 0.350GPH502X                 : ARR( 0.168E-13, -1300., 0.0);
+{ 53137} G2P504j +PERO9              =  0.650G1P505S + 0.350GPH502X                                : ARR( 0.100E-10,     0., 0.0);
+{ 53138} G1P506O                     =       G2P504k                                               : ARR( 0.240E+12,  4177., 0.0);
+{ 53139} G1P506O                     =       GHH400M +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 53140} G2P504k +GNO                =       G1P506P +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 53141} G2P504k +GNO                =       GPH503t                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 53142} G2P504k +GHO2               =       GPH5058                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 53143} G2P504k +GNO3               =       G1P506P +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 53144} G2P504k +MEPERO             =  0.480G1P506P + 0.260GPH503n + 0.260GPH503o                 : ARR( 0.164E-12,  -795., 0.0);
+{ 53145} G2P504k +PERO1              =  0.600G1P506P + 0.200GPH503n + 0.200GPH503o                 : ARR( 0.126E-12,  -850., 0.0);
+{ 53146} G2P504k +PERO2              =  0.560G1P506P + 0.220GPH503n + 0.220GPH503o                 : ARR( 0.471E-13, -1350., 0.0);
+{ 53147} G2P504k +PERO3              =  0.600G1P506P + 0.200GPH503n + 0.200GPH503o                 : ARR( 0.142E-12, -1200., 0.0);
+{ 53148} G2P504k +PERO5              =  0.600G1P506P + 0.200GPH503n + 0.200GPH503o                 : ARR( 0.533E-11,   500., 0.0);
+{ 53149} G2P504k +PERO6              =  0.460G1P506P + 0.270GPH503n + 0.270GPH503o                 : ARR( 0.488E-13, -1250., 0.0);
+{ 53150} G2P504k +PERO9              =  0.800G1P506P + 0.200GPH503o                                : ARR( 0.100E-10,     0., 0.0);
+{ 53151} G1P506P                     =       GPH503N +      GHO2                                   : ARR( 0.800E+11,  2246., 0.0);
+{ 53152} G1P506P                     =       GPH400p +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{ 53153} GPH502q                     =       G3H504C +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 53154} GPH502q +GHO                =       GPH502n +      GHO                                    : ARR( 0.112E-09,     0., 0.0);
+{ 53155} GPH502q +GHO                =       GPH502a +      GHO                                    : ARR( 0.265E-10,     0., 0.0);
+{ 53156} GPH502q+HV               =       G1P502i +      GHO                                    :  0.100E+01*SUN;
+{ 53157} GPH502q+HV               =       G1P505Y +      GHO                                    :  0.100E+01*SUN;
+{ 53158} GPH502q+HV               =       G3H400L +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 53159} G3H504C +GHO2               =  0.800GGH502R + 0.200GAH502i + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 53160} G3H504C +GNO                =       G3H400L +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 53161} G3H504C +GNO2               =       GPH502q                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 53162} G3H504C +GNO3               =       G3H400L +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 53163} G3H504C +MEPERO             =  0.685G3H400L + 0.315GAH502i + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 53164} G3H504C +PERO1              =  0.800G3H400L + 0.200GAH502i + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 53165} G3H504C +PERO2              =  0.750G3H400L + 0.250GAH502i + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 53166} G3H504C +PERO3              =  0.800G3H400L + 0.200GAH502i + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 53167} G3H504C +PERO5              =  0.650G3H400L + 0.350GAH502i + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 53168} G3H504C +PERO6              =  0.650G3H400L + 0.350GAH502i + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 53169} G3H504C +PERO9              =       G3H400L +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 53170} GPH502r                     =       G3H5048 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 53171} GPH502r +GHO                =       GPH502n +      GHO2                                   : ARR( 0.267E-10,     0., 0.0);
+{ 53172} GPH502r +GHO                =       GPK500N +      GHO                                    : ARR( 0.253E-10,     0., 0.0);
+{ 53173} GPH502r +GHO                =       G2P504l                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 53174} GPH502r+HV               =       G1P502o +      GHO                                    :  0.100E+01*SUN;
+{ 53175} GPH502r+HV               =       G3H400A +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 53176} G2P504l +GNO                =       G1P502o +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 53177} G2P504l +GNO                =       GPN500q                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 53178} G2P504l +GHO2               =       GPH502r                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 53179} G2P504l +GNO3               =       G1P502o +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 53180} G2P504l +MEPERO             =  0.340G1P502o + 0.330GPK500U + 0.330GPK500N                 : ARR( 0.565E-13,  -845., 0.0);
+{ 53181} G2P504l +PERO1              =  0.460G1P502o + 0.270GPK500U + 0.270GPK500N                 : ARR( 0.434E-13,  -900., 0.0);
+{ 53182} G2P504l +PERO2              =  0.400G1P502o + 0.300GPK500U + 0.300GPK500N                 : ARR( 0.162E-13, -1400., 0.0);
+{ 53183} G2P504l +PERO3              =  0.460G1P502o + 0.270GPK500U + 0.270GPK500N                 : ARR( 0.488E-13, -1250., 0.0);
+{ 53184} G2P504l +PERO5              =  0.460G1P502o + 0.270GPK500U + 0.270GPK500N                 : ARR( 0.183E-11,   450., 0.0);
+{ 53185} G2P504l +PERO6              =  0.300G1P502o + 0.350GPK500U + 0.350GPK500N                 : ARR( 0.168E-13, -1300., 0.0);
+{ 53186} G2P504l +PERO9              =  0.650G1P502o + 0.350GPK500N                                : ARR( 0.100E-10,     0., 0.0);
+{ 53187} GHH502i +GHO                =       GHN506s +      GHO                                    : ARR( 0.162E-10,     0., 0.0);
+{ 53188} GHH502i +GHO                =       GHH5039 +      GHO2                                   : ARR( 0.207E-11,     0., 0.0);
+{ 53189} GHH502i +GHO                =       GHN505g +      GHO                                    : ARR( 0.324E-11,     0., 0.0);
+{ 53190} GHH502i +GHO                =       G2H503i                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 53191} GHH502i +GHO                =       G2H502p                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 53192} GHH502i+HV               =       G1H504Y +      GHO                                    :  0.100E+01*SUN;
+{ 53193} GHH502i+HV               =       G1H50BB +      GNO2                                   :  0.100E+01*SUN;
+{ 53194} GHH502i+HV               =       G1H50BC +      GNO2                                   :  0.100E+01*SUN;
+{ 53195} GHH502i+HV               =       G1H507I +      GHO                                    :  0.100E+01*SUN;
+{ 53196} G2H503i +GNO                =       G1H504Y +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 53197} G2H503i +GNO                =       GHN502X                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 53198} G2H503i +GHO2               =       GHH502i                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 53199} G2H503i +GNO3               =       G1H504Y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 53200} G2H503i +MEPERO             =  0.480G1H504Y + 0.260GHN506H + 0.260GHN506s                 : ARR( 0.164E-12,  -795., 0.0);
+{ 53201} G2H503i +PERO1              =  0.600G1H504Y + 0.200GHN506H + 0.200GHN506s                 : ARR( 0.126E-12,  -850., 0.0);
+{ 53202} G2H503i +PERO2              =  0.560G1H504Y + 0.220GHN506H + 0.220GHN506s                 : ARR( 0.471E-13, -1350., 0.0);
+{ 53203} G2H503i +PERO3              =  0.600G1H504Y + 0.200GHN506H + 0.200GHN506s                 : ARR( 0.142E-12, -1200., 0.0);
+{ 53204} G2H503i +PERO5              =  0.600G1H504Y + 0.200GHN506H + 0.200GHN506s                 : ARR( 0.533E-11,   500., 0.0);
+{ 53205} G2H503i +PERO6              =  0.460G1H504Y + 0.270GHN506H + 0.270GHN506s                 : ARR( 0.488E-13, -1250., 0.0);
+{ 53206} G2H503i +PERO9              =  0.800G1H504Y + 0.200GHN506s                                : ARR( 0.100E-10,     0., 0.0);
+{ 53207} G1H50BB                     =       GHN300A +      GHD2000 +      GHO2                    : ARR( 0.200E+15,  3575., 0.0);
+{ 53208} G1H50BC                     =       GHN503z +      GHO                                    : ARR( 0.160E+12,  2186., 0.0);
+{ 53209} GAH400i +GHO                =       GAN400Y +      GHO                                    : ARR( 0.323E-11,     0., 0.0);
+{ 53210} GAH400i +GHO                =       G2A400b                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 53211} GAH400i +GHO                =       GHN300A +      GNO2    +      GCO2                    : ARR( 0.522E-12,     0., 0.0);
+{ 53212} GAH400i+HV               =       G1A401B +      GNO2                                   :  0.100E+01*SUN;
+{ 53213} GAH400i+HV               =       G1A401C +      GNO2                                   :  0.100E+01*SUN;
+{ 53214} GAH400i+HV               =       G1A400f +      GHO                                    :  0.100E+01*SUN;
+{ 53215} G1A401B                     =       GCO     +      GHN300A +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 53216} G1A401C                     =       GAD2000 +      GHD2000 +      GNO2                    : ARR( 0.200E+15,  6737., 0.0);
+{ 53217} G1A401C                     =       GAN3006 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  6565., 0.0);
+{ 53218} GPH400j                     =       G3H400m +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 53219} GPH400j +GHO                =       GPN400Z +      GHO                                    : ARR( 0.323E-11,     0., 0.0);
+{ 53220} GPH400j +GHO                =       G2P400d                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 53221} GPH400j+HV               =       G1P400g +      GHO                                    :  0.100E+01*SUN;
+{ 53222} GPH400j+HV               =       G1P401J +      GNO2                                   :  0.100E+01*SUN;
+{ 53223} GPH400j+HV               =       G1P401K +      GNO2                                   :  0.100E+01*SUN;
+{ 53224} GPH400j+HV               =       G3H400m +      GNO2                                   :  0.100E+01*SUN;
+{ 53225} G1P401J                     =       GCH2O   +      GPN3006 +      GHO                     : ARR( 0.200E+15,  6565., 0.0);
+{ 53226} G1P401J                     =       GHD2000 +      GPD2000 +      GNO2                    : ARR( 0.200E+15,  6737., 0.0);
+{ 53227} G1P401K                     =       GHN300A +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 53228} GAH400j +GHO                =       GAN400Z +      GHO                                    : ARR( 0.325E-11,     0., 0.0);
+{ 53229} GAH400j +GHO                =       G2A400c                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 53230} GAH400j +GHO                =       G3H3005 +      GCO2                                   : ARR( 0.525E-12,     0., 0.0);
+{ 53231} GAH400j+HV               =       GHN300A +      GCO2                                   :  0.100E+01*SUN;
+{ 53232} GAH400j+HV               =       G1A401D +      GNO2                                   :  0.100E+01*SUN;
+{ 53233} GAH400j+HV               =       G1A400h +      GHO                                    :  0.100E+01*SUN;
+{ 53234} G1A401D                     =       GCO     +      GHD2000 +      GHO     +      GCO      : ARR( 0.200E+15,  3326., 0.0);
+{ 53235} GPH400k                     =       G3H400u +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 53236} GPH400k +GHO                =       GPN400a +      GHO                                    : ARR( 0.325E-11,     0., 0.0);
+{ 53237} GPH400k +GHO                =       G2P400e                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 53238} GPH400k+HV               =       G1P400j +      GHO                                    :  0.100E+01*SUN;
+{ 53239} GPH400k+HV               =       G1P401L +      GNO2                                   :  0.100E+01*SUN;
+{ 53240} GPH400k+HV               =       G3H3005 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 53241} G3H400u +GHO2               =  0.800GGH400x + 0.200GAH400j + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 53242} G3H400u +GNO                =       G3H3005 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 53243} G3H400u +GNO2               =       GPH400k                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 53244} G3H400u +GNO3               =       G3H3005 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 53245} G3H400u +MEPERO             =  0.685G3H3005 + 0.315GAH400j + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 53246} G3H400u +PERO1              =  0.800G3H3005 + 0.200GAH400j + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 53247} G3H400u +PERO2              =  0.750G3H3005 + 0.250GAH400j + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 53248} G3H400u +PERO3              =  0.800G3H3005 + 0.200GAH400j + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 53249} G3H400u +PERO5              =  0.650G3H3005 + 0.350GAH400j + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 53250} G3H400u +PERO6              =  0.650G3H3005 + 0.350GAH400j + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 53251} G3H400u +PERO9              =       G3H3005 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 53252} G1P401L                     =       GHD2000 +      GCO     +      GNO2    +      GCO      : ARR( 0.200E+15,  3326., 0.0);
+{ 53253} GGN501r +GHO                =       GGN501p +      GHO2                                   : ARR( 0.131E-11,     0., 0.0);
+{ 53254} GGN501r +GHO                =       G3N501Q                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 53255} GGN501r+HV               =       G1G504a +      GNO2                                   :  0.100E+01*SUN;
+{ 53256} GGN501r+HV               =       G1G504J +      GNO2                                   :  0.100E+01*SUN;
+{ 53257} GGN501r+HV               =       GNN4007 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 53258} G1G504a                     =       GD02000 +      GGD3001 +      GNO2                    : ARR( 0.200E+15,  6112., 0.0);
+{ 53259} GHH502j +GHO                =       GHN505o +      GHO                                    : ARR( 0.166E-10,     0., 0.0);
+{ 53260} GHH502j +GHO                =       GHN506R +      GHO                                    : ARR( 0.852E-11,     0., 0.0);
+{ 53261} GHH502j +GHO                =       G3H504D                                               : ARR( 0.215E-10,     0., 0.0);
+{ 53262} GHH502j +GHO                =       G2H502s                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 53263} GHH502j +GHO                =       G2H503j                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 53264} GHH502j +GNO3               =       G3H504D +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 53265} GHH502j+HV               =       G1H507b +      GHO                                    :  0.100E+01*SUN;
+{ 53266} GHH502j+HV               =       G1H50BD +      GHO                                    :  0.100E+01*SUN;
+{ 53267} GHH502j+HV               =       G1H50BE +      GNO2                                   :  0.100E+01*SUN;
+{ 53268} GHH502j+HV               =       GHH400u +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 53269} G3H504D +GHO2               =  0.800GGH504k + 0.200GAH504m + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 53270} G3H504D +GNO                =       GHH400u +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 53271} G3H504D +GNO2               =       GPH504r                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 53272} G3H504D +GNO3               =       GHH400u +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 53273} G3H504D +MEPERO             =  0.685GHH400u + 0.315GAH504m + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53274} G3H504D +PERO1              =  0.800GHH400u + 0.200GAH504m + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53275} G3H504D +PERO2              =  0.750GHH400u + 0.250GAH504m + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53276} G3H504D +PERO3              =  0.800GHH400u + 0.200GAH504m + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53277} G3H504D +PERO5              =  0.650GHH400u + 0.350GAH504m + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53278} G3H504D +PERO6              =  0.650GHH400u + 0.350GAH504m + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53279} G3H504D +PERO9              =       GHH400u +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 53280} G2H503j +GNO                =       G1H50BD +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 53281} G2H503j +GNO                =       GHN506s                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 53282} G2H503j +GHO2               =       GHH502j                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 53283} G2H503j +GNO3               =       G1H50BD +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 53284} G2H503j +MEPERO             =  0.340G1H50BD + 0.330GHN503z + 0.330GHN506R                 : ARR( 0.565E-13,  -845., 0.0);
+{ 53285} G2H503j +PERO1              =  0.460G1H50BD + 0.270GHN503z + 0.270GHN506R                 : ARR( 0.434E-13,  -900., 0.0);
+{ 53286} G2H503j +PERO2              =  0.400G1H50BD + 0.300GHN503z + 0.300GHN506R                 : ARR( 0.162E-13, -1400., 0.0);
+{ 53287} G2H503j +PERO3              =  0.460G1H50BD + 0.270GHN503z + 0.270GHN506R                 : ARR( 0.488E-13, -1250., 0.0);
+{ 53288} G2H503j +PERO5              =  0.460G1H50BD + 0.270GHN503z + 0.270GHN506R                 : ARR( 0.183E-11,   450., 0.0);
+{ 53289} G2H503j +PERO6              =  0.300G1H50BD + 0.350GHN503z + 0.350GHN506R                 : ARR( 0.168E-13, -1300., 0.0);
+{ 53290} G2H503j +PERO9              =  0.650G1H50BD + 0.350GHN506R                                : ARR( 0.100E-10,     0., 0.0);
+{ 53291} G1H50BD                     =       G3H501I                                               : ARR( 0.800E+11,  4559., 0.0);
+{ 53292} G1H50BD                     =       GCH2O   +      GND400J +      GHO                     : ARR( 0.200E+15,  7395., 0.0);
+{ 53293} G1H50BD                     =       GHD2000 +      GDD3001 +      GNO2                    : ARR( 0.200E+15,  6367., 0.0);
+{ 53294} G1H50BE                     =       GHD2000 +      GDD3001 +      GHO                     : ARR( 0.200E+15,  3953., 0.0);
+{ 53295} G1H50BE                     =       GHH3005 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  3708., 0.0);
+{ 53296} GGN501s +GHO                =       GGN502j +      GHO2                                   : ARR( 0.130E-11,     0., 0.0);
+{ 53297} GGN501s +GHO                =       G3N501R                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 53298} GGN501s+HV               =       G1G504b +      GNO2                                   :  0.100E+01*SUN;
+{ 53299} GGN501s+HV               =       G1G504c +      GNO2                                   :  0.100E+01*SUN;
+{ 53300} GGN501s+HV               =       G1G504d +      GNO2                                   :  0.100E+01*SUN;
+{ 53301} GGN501s+HV               =       GNN400D +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 53302} G1G504b                     =       GGN502S +      GHO2                                   : ARR( 0.800E+11,  2965., 0.0);
+{ 53303} G1G504c                     =       GND2000 +      GGD3001 +      GNO2                    : ARR( 0.200E+15,  6365., 0.0);
+{ 53304} G1G504d                     =       GNN3005 +      GGD2000 +      GHO2                    : ARR( 0.200E+15,  3929., 0.0);
+{ 53305} GAN5026 +GHO                =       GAN502D +      GHO2                                   : ARR( 0.952E-12,     0., 0.0);
+{ 53306} GAN5026 +GHO                =       G1A502m                                               : ARR( 0.215E-17,    85., 2.0);
+{ 53307} GAN5026 +GHO                =       GNN400D +      GHO2    +      GCO2                    : ARR( 0.532E-12,     0., 0.0);
+{ 53308} GAN5026+HV               =       G1A503W +      GNO2                                   :  0.100E+01*SUN;
+{ 53309} GAN5026+HV               =       G1A504I +      GNO2                                   :  0.100E+01*SUN;
+{ 53310} GAN5026+HV               =       G1A505i +      GNO2                                   :  0.100E+01*SUN;
+{ 53311} G1A505i                     =       GAN501n +      GHO2                                   : ARR( 0.800E+11,  3100., 0.0);
+{ 53312} GPN502F                     =       G3N501R +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 53313} GPN502F +GHO                =       GPN502N +      GHO2                                   : ARR( 0.129E-11,     0., 0.0);
+{ 53314} GPN502F +GHO                =       G1P502x                                               : ARR( 0.216E-17,    85., 2.0);
+{ 53315} GPN502F+HV               =       G1P505E +      GNO2                                   :  0.100E+01*SUN;
+{ 53316} GPN502F+HV               =       G1P502q +      GNO2                                   :  0.100E+01*SUN;
+{ 53317} GPN502F+HV               =       G1P506Q +      GNO2                                   :  0.100E+01*SUN;
+{ 53318} GPN502F+HV               =       G3N501R +      GNO2                                   :  0.100E+01*SUN;
+{ 53319} G1P506Q                     =       GNN3005 +      GPD2000 +      GHO2                    : ARR( 0.200E+15,  3929., 0.0);
+{ 53320} GHH502k +GHO                =       GHN506R +      GHO                                    : ARR( 0.162E-10,     0., 0.0);
+{ 53321} GHH502k +GHO                =       GHH503A +      GHO2                                   : ARR( 0.207E-11,     0., 0.0);
+{ 53322} GHH502k +GHO                =       GHN506t +      GHO                                    : ARR( 0.987E-11,     0., 0.0);
+{ 53323} GHH502k +GHO                =       G2H503k                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 53324} GHH502k +GHO                =       G2H503l                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 53325} GHH502k+HV               =       G1H509Z +      GHO                                    :  0.100E+01*SUN;
+{ 53326} GHH502k+HV               =       G1H50BF +      GNO2                                   :  0.100E+01*SUN;
+{ 53327} GHH502k+HV               =       G3H400U +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 53328} GHH502k+HV               =       GHD2000 +      GHN3008                                :  0.100E+01*SUN;
+{ 53329} GHH502k+HV               =       G1H509w +      GHO                                    :  0.100E+01*SUN;
+{ 53330} G2H503k +GNO                =       G1H509Z +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 53331} G2H503k +GNO                =       GHN505X                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 53332} G2H503k +GHO2               =       GHH502k                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 53333} G2H503k +GNO3               =       G1H509Z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 53334} G2H503k +MEPERO             =  0.480G1H509Z + 0.260GHN504S + 0.260GHN506R                 : ARR( 0.164E-12,  -795., 0.0);
+{ 53335} G2H503k +PERO1              =  0.600G1H509Z + 0.200GHN504S + 0.200GHN506R                 : ARR( 0.126E-12,  -850., 0.0);
+{ 53336} G2H503k +PERO2              =  0.560G1H509Z + 0.220GHN504S + 0.220GHN506R                 : ARR( 0.471E-13, -1350., 0.0);
+{ 53337} G2H503k +PERO3              =  0.600G1H509Z + 0.200GHN504S + 0.200GHN506R                 : ARR( 0.142E-12, -1200., 0.0);
+{ 53338} G2H503k +PERO5              =  0.600G1H509Z + 0.200GHN504S + 0.200GHN506R                 : ARR( 0.533E-11,   500., 0.0);
+{ 53339} G2H503k +PERO6              =  0.460G1H509Z + 0.270GHN504S + 0.270GHN506R                 : ARR( 0.488E-13, -1250., 0.0);
+{ 53340} G2H503k +PERO9              =  0.800G1H509Z + 0.200GHN506R                                : ARR( 0.100E-10,     0., 0.0);
+{ 53341} G2H503l +GNO                =       G1H509w +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 53342} G2H503l +GNO                =       GHN505j                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 53343} G2H503l +GHO2               =       GHH502k                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 53344} G2H503l +GNO3               =       G1H509w +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 53345} G2H503l +MEPERO             =  0.480G1H509w + 0.260GHN506Q + 0.260GHN506t                 : ARR( 0.164E-12,  -795., 0.0);
+{ 53346} G2H503l +PERO1              =  0.600G1H509w + 0.200GHN506Q + 0.200GHN506t                 : ARR( 0.126E-12,  -850., 0.0);
+{ 53347} G2H503l +PERO2              =  0.560G1H509w + 0.220GHN506Q + 0.220GHN506t                 : ARR( 0.471E-13, -1350., 0.0);
+{ 53348} G2H503l +PERO3              =  0.600G1H509w + 0.200GHN506Q + 0.200GHN506t                 : ARR( 0.142E-12, -1200., 0.0);
+{ 53349} G2H503l +PERO5              =  0.600G1H509w + 0.200GHN506Q + 0.200GHN506t                 : ARR( 0.533E-11,   500., 0.0);
+{ 53350} G2H503l +PERO6              =  0.460G1H509w + 0.270GHN506Q + 0.270GHN506t                 : ARR( 0.488E-13, -1250., 0.0);
+{ 53351} G2H503l +PERO9              =  0.800G1H509w + 0.200GHN506t                                : ARR( 0.100E-10,     0., 0.0);
+{ 53352} G1H50BF                     =       GHD3005 +      G3H2000                                : ARR( 0.200E+15,  3009., 0.0);
+{ 53353} GHN506Q +GHO                =       GHN506t +      GHO2                                   : ARR( 0.249E-11,     0., 0.0);
+{ 53354} GHN506Q +GHO                =       GHN506S +      GHO2                                   : ARR( 0.209E-11,     0., 0.0);
+{ 53355} GHN506Q +GHO                =       GND501A +      GHO                                    : ARR( 0.163E-10,     0., 0.0);
+{ 53356} GHN506Q +GHO                =       G2N506I                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 53357} GHN506Q+HV               =       G3K2001 +      GHD3005 +      GNO2                    :  0.100E+01*SUN;
+{ 53358} GHN506Q+HV               =       GNK3001 +      GHD2000                                :  0.100E+01*SUN;
+{ 53359} GHN506Q+HV               =       G1H50Av +      GNO2                                   :  0.100E+01*SUN;
+{ 53360} GHN506Q+HV               =       G1N505H +      GHO                                    :  0.100E+01*SUN;
+{ 53361} G2N506I +GNO                =       G1N505H +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 53362} G2N506I +GNO                =       GNN5024                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 53363} G2N506I +GHO2               =       GHN506Q                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 53364} G2N506I +GNO3               =       G1N505H +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 53365} G2N506I +MEPERO             =  0.480G1N505H + 0.260GNK5017 + 0.260GND501A                 : ARR( 0.164E-12,  -795., 0.0);
+{ 53366} G2N506I +PERO1              =  0.600G1N505H + 0.200GNK5017 + 0.200GND501A                 : ARR( 0.126E-12,  -850., 0.0);
+{ 53367} G2N506I +PERO2              =  0.560G1N505H + 0.220GNK5017 + 0.220GND501A                 : ARR( 0.471E-13, -1350., 0.0);
+{ 53368} G2N506I +PERO3              =  0.600G1N505H + 0.200GNK5017 + 0.200GND501A                 : ARR( 0.142E-12, -1200., 0.0);
+{ 53369} G2N506I +PERO5              =  0.600G1N505H + 0.200GNK5017 + 0.200GND501A                 : ARR( 0.533E-11,   500., 0.0);
+{ 53370} G2N506I +PERO6              =  0.460G1N505H + 0.270GNK5017 + 0.270GND501A                 : ARR( 0.488E-13, -1250., 0.0);
+{ 53371} G2N506I +PERO9              =  0.800G1N505H + 0.200GND501A                                : ARR( 0.100E-10,     0., 0.0);
+{ 53372} GHN506R +GHO                =       GND501U +      GHO                                    : ARR( 0.103E-10,     0., 0.0);
+{ 53373} GHN506R +GHO                =       G3H504E                                               : ARR( 0.218E-10,     0., 0.0);
+{ 53374} GHN506R +GHO                =       G2N506J                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 53375} GHN506R +GNO3               =       G3H504E +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 53376} GHN506R+HV               =       G1N5074 +      GHO                                    :  0.100E+01*SUN;
+{ 53377} GHN506R+HV               =       G3H2000 +      GDD3001 +      GNO2                    :  0.100E+01*SUN;
+{ 53378} GHN506R+HV               =       G1H50Aw +      GNO2                                   :  0.100E+01*SUN;
+{ 53379} GHN506R+HV               =       GHN401A +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 53380} G3H504E +GHO2               =  0.800GGH504J + 0.200GAH504R + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 53381} G3H504E +GNO                =       GHN401A +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 53382} G3H504E +GNO2               =       GPH502u                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 53383} G3H504E +GNO3               =       GHN401A +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 53384} G3H504E +MEPERO             =  0.685GHN401A + 0.315GAH504R + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53385} G3H504E +PERO1              =  0.800GHN401A + 0.200GAH504R + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53386} G3H504E +PERO2              =  0.750GHN401A + 0.250GAH504R + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53387} G3H504E +PERO3              =  0.800GHN401A + 0.200GAH504R + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53388} G3H504E +PERO5              =  0.650GHN401A + 0.350GAH504R + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53389} G3H504E +PERO6              =  0.650GHN401A + 0.350GAH504R + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53390} G3H504E +PERO9              =       GHN401A +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 53391} G2N506J +GNO                =       G1N5074 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 53392} G2N506J +GNO                =       GNN503B                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 53393} G2N506J +GHO2               =       GHN506R                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 53394} G2N506J +GNO3               =       G1N5074 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 53395} G2N506J +MEPERO             =  0.480G1N5074 + 0.260GND501A + 0.260GND501U                 : ARR( 0.164E-12,  -795., 0.0);
+{ 53396} G2N506J +PERO1              =  0.600G1N5074 + 0.200GND501A + 0.200GND501U                 : ARR( 0.126E-12,  -850., 0.0);
+{ 53397} G2N506J +PERO2              =  0.560G1N5074 + 0.220GND501A + 0.220GND501U                 : ARR( 0.471E-13, -1350., 0.0);
+{ 53398} G2N506J +PERO3              =  0.600G1N5074 + 0.200GND501A + 0.200GND501U                 : ARR( 0.142E-12, -1200., 0.0);
+{ 53399} G2N506J +PERO5              =  0.600G1N5074 + 0.200GND501A + 0.200GND501U                 : ARR( 0.533E-11,   500., 0.0);
+{ 53400} G2N506J +PERO6              =  0.460G1N5074 + 0.270GND501A + 0.270GND501U                 : ARR( 0.488E-13, -1250., 0.0);
+{ 53401} G2N506J +PERO9              =  0.800G1N5074 + 0.200GND501U                                : ARR( 0.100E-10,     0., 0.0);
+{ 53402} GHN506S +GHO                =       GHN506u +      GHO2                                   : ARR( 0.248E-11,     0., 0.0);
+{ 53403} GHN506S +GHO                =       GND501W +      GHO                                    : ARR( 0.992E-11,     0., 0.0);
+{ 53404} GHN506S +GHO                =       G2N506K                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 53405} GHN506S+HV               =       G3K2001 +      GHD3001 +      GNO2                    :  0.100E+01*SUN;
+{ 53406} GHN506S+HV               =       G1H508t +      GNO2                                   :  0.100E+01*SUN;
+{ 53407} GHN506S+HV               =       G3N400Q +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 53408} GHN506S+HV               =       G1N505e +      GHO                                    :  0.100E+01*SUN;
+{ 53409} G2N506K +GNO                =       G1N505e +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 53410} G2N506K +GNO                =       GNN502F                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 53411} G2N506K +GHO2               =       GHN506S                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 53412} G2N506K +GNO3               =       G1N505e +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 53413} G2N506K +MEPERO             =  0.480G1N505e + 0.260GNK5014 + 0.260GND501W                 : ARR( 0.164E-12,  -795., 0.0);
+{ 53414} G2N506K +PERO1              =  0.600G1N505e + 0.200GNK5014 + 0.200GND501W                 : ARR( 0.126E-12,  -850., 0.0);
+{ 53415} G2N506K +PERO2              =  0.560G1N505e + 0.220GNK5014 + 0.220GND501W                 : ARR( 0.471E-13, -1350., 0.0);
+{ 53416} G2N506K +PERO3              =  0.600G1N505e + 0.200GNK5014 + 0.200GND501W                 : ARR( 0.142E-12, -1200., 0.0);
+{ 53417} G2N506K +PERO5              =  0.600G1N505e + 0.200GNK5014 + 0.200GND501W                 : ARR( 0.533E-11,   500., 0.0);
+{ 53418} G2N506K +PERO6              =  0.460G1N505e + 0.270GNK5014 + 0.270GND501W                 : ARR( 0.488E-13, -1250., 0.0);
+{ 53419} G2N506K +PERO9              =  0.800G1N505e + 0.200GND501W                                : ARR( 0.100E-10,     0., 0.0);
+{ 53420} GGN501t +GHO                =       GGN502T +      GHO2                                   : ARR( 0.851E-12,     0., 0.0);
+{ 53421} GGN501t +GHO                =       GGN502S +      GHO2                                   : ARR( 0.133E-11,     0., 0.0);
+{ 53422} GGN501t +GHO                =       G3N501S                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 53423} GGN501t+HV               =       G1G504e +      GNO2                                   :  0.100E+01*SUN;
+{ 53424} GGN501t+HV               =       G1G504f +      GNO2                                   :  0.100E+01*SUN;
+{ 53425} GGN501t+HV               =       GNN400E +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 53426} G1G504e                     =       GCH2O   +      GGN400U +      GHO2                    : ARR( 0.200E+15,  5296., 0.0);
+{ 53427} G1G504e                     =       GDO2000 +      GGD3001 +      GNO2                    : ARR( 0.200E+15,  6367., 0.0);
+{ 53428} G1G504f                     =       GND3004 +      GGD2000 +      GHO2                    : ARR( 0.200E+15,  3929., 0.0);
+{ 53429} GAN5027 +GHO                =       GAN502G +      GHO2                                   : ARR( 0.819E-12,     0., 0.0);
+{ 53430} GAN5027 +GHO                =       GAN501n +      GHO2                                   : ARR( 0.947E-12,     0., 0.0);
+{ 53431} GAN5027 +GHO                =       G1A505i                                               : ARR( 0.214E-17,    85., 2.0);
+{ 53432} GAN5027 +GHO                =       G1A502n                                               : ARR( 0.214E-17,    85., 2.0);
+{ 53433} GAN5027 +GHO                =       GNN400E +      GHO2    +      GCO2                    : ARR( 0.530E-12,     0., 0.0);
+{ 53434} GAN5027+HV               =       G1A505j +      GNO2                                   :  0.100E+01*SUN;
+{ 53435} GAN5027+HV               =       G1A505k +      GNO2                                   :  0.100E+01*SUN;
+{ 53436} G1A505j                     =       GCH2O   +      GAN400a +      GHO2                    : ARR( 0.200E+15,  5296., 0.0);
+{ 53437} G1A505j                     =       GDO2000 +      GAD3001 +      GNO2                    : ARR( 0.200E+15,  6367., 0.0);
+{ 53438} G1A505k                     =       GND3004 +      GAD2000 +      GHO2                    : ARR( 0.200E+15,  3929., 0.0);
+{ 53439} GGN501u +GHO                =       GGN502g +      GHO2                                   : ARR( 0.417E-11,     0., 0.0);
+{ 53440} GGN501u +GHO                =       GGN502H +      GHO2                                   : ARR( 0.214E-11,     0., 0.0);
+{ 53441} GGN501u +GHO                =       G3N501Z                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 53442} GGN501u+HV               =       G1G503j +      GNO2                                   :  0.100E+01*SUN;
+{ 53443} GGN501u+HV               =       GAN400O +      GCO2                                   :  0.100E+01*SUN;
+{ 53444} GGN400U +GHO                =       GGN400b +      GHO2                                   : ARR( 0.129E-11,     0., 0.0);
+{ 53445} GGN400U +GHO                =       G3G400B                                               : ARR( 0.425E-11,     0., 0.0);
+{ 53446} GGN400U +GHO                =       G3N400T                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 53447} GGN400U +GNO3               =       G3G400B +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 53448} GGN400U+HV               =       GND3005 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 53449} GGN400U+HV               =       G1G400y +      GNO2                                   :  0.100E+01*SUN;
+{ 53450} GGN400U+HV               =       GGD3001 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 53451} G3G400B +GHO2               =  0.800GGG4007 + 0.200GAG4007 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 53452} G3G400B +GNO                =       GGD3001 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 53453} G3G400B +GNO2               =       GPG4007                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 53454} G3G400B +GNO3               =       GGD3001 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 53455} G3G400B +MEPERO             =  0.685GGD3001 + 0.315GAG4007 + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53456} G3G400B +PERO1              =  0.800GGD3001 + 0.200GAG4007 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53457} G3G400B +PERO2              =  0.750GGD3001 + 0.250GAG4007 + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53458} G3G400B +PERO3              =  0.800GGD3001 + 0.200GAG4007 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53459} G3G400B +PERO5              =  0.650GGD3001 + 0.350GAG4007 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53460} G3G400B +PERO6              =  0.650GGD3001 + 0.350GAG4007 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53461} G3G400B +PERO9              =       GGD3001 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 53462} G1G400y                     =       GGD2000 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  5402., 0.0);
+{ 53463} G1G400y                     =       GGD3001 +      GCO     +      GHO2                    : ARR( 0.200E+15,  4861., 0.0);
+{ 53464} GAH502l +GHO                =       GAH504k +      GHO2                                   : ARR( 0.213E-11,     0., 0.0);
+{ 53465} GAH502l +GHO                =       GAN5028 +      GHO                                    : ARR( 0.166E-10,     0., 0.0);
+{ 53466} GAH502l +GHO                =       G2A502B                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 53467} GAH502l+HV               =       G1A505l +      GNO2                                   :  0.100E+01*SUN;
+{ 53468} GAH502l+HV               =       G1A505m +      GNO2                                   :  0.100E+01*SUN;
+{ 53469} GAH502l+HV               =       G1A502b +      GHO                                    :  0.100E+01*SUN;
+{ 53470} G1A505l                     =       GAN501W +      GHO                                    : ARR( 0.160E+12,  2186., 0.0);
+{ 53471} G1A505l                     =       GCO     +      GHN400Y +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 53472} G1A505m                     =       GAN3006 +      GHD2000 +      GHO2                    : ARR( 0.200E+15,  2745., 0.0);
+{ 53473} GAN5028 +GHO                =       GAN502l +      GHO2                                   : ARR( 0.130E-11,     0., 0.0);
+{ 53474} GAN5028 +GHO                =       G3A500b                                               : ARR( 0.215E-10,     0., 0.0);
+{ 53475} GAN5028 +GNO3               =       G3A500b +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 53476} GAN5028+HV               =       G1A505n +      GNO2                                   :  0.100E+01*SUN;
+{ 53477} GAN5028+HV               =       G1A505o +      GNO2                                   :  0.100E+01*SUN;
+{ 53478} GAN5028+HV               =       GAN400Y +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 53479} G3A500b +GHO2               =  0.800GAG500p + 0.200GAA500O + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 53480} G3A500b +GNO                =       GAN400Y +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 53481} G3A500b +GNO2               =       GPA500g                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 53482} G3A500b +GNO3               =       GAN400Y +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 53483} G3A500b +MEPERO             =  0.685GAN400Y + 0.315GAA500O + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53484} G3A500b +PERO1              =  0.800GAN400Y + 0.200GAA500O + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53485} G3A500b +PERO2              =  0.750GAN400Y + 0.250GAA500O + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53486} G3A500b +PERO3              =  0.800GAN400Y + 0.200GAA500O + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53487} G3A500b +PERO5              =  0.650GAN400Y + 0.350GAA500O + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53488} G3A500b +PERO6              =  0.650GAN400Y + 0.350GAA500O + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53489} G3A500b +PERO9              =       GAN400Y +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 53490} G1A505n                     =       GCO     +      GND400J +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 53491} G1A505o                     =       GAN3006 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  2877., 0.0);
+{ 53492} GPH502s                     =       G3H502k +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 53493} GPH502s +GHO                =       GPN502G +      GHO                                    : ARR( 0.162E-10,     0., 0.0);
+{ 53494} GPH502s +GHO                =       GPH504p +      GHO2                                   : ARR( 0.208E-11,     0., 0.0);
+{ 53495} GPH502s +GHO                =       G2P502I                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 53496} GPH502s+HV               =       G1P502l +      GHO                                    :  0.100E+01*SUN;
+{ 53497} GPH502s+HV               =       G1P506R +      GNO2                                   :  0.100E+01*SUN;
+{ 53498} GPH502s+HV               =       G1P506S +      GNO2                                   :  0.100E+01*SUN;
+{ 53499} GPH502s+HV               =       G3H502k +      GNO2                                   :  0.100E+01*SUN;
+{ 53500} G1P506R                     =       GHD2000 +      GPN3006 +      GHO2                    : ARR( 0.200E+15,  2745., 0.0);
+{ 53501} G1P506S                     =       GPN500t +      GHO                                    : ARR( 0.160E+12,  2186., 0.0);
+{ 53502} G1P506S                     =       GHN400Y +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 53503} GPN502G                     =       G3N502A +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 53504} GPN502G +GHO                =       GPN502l +      GHO2                                   : ARR( 0.127E-11,     0., 0.0);
+{ 53505} GPN502G +GHO                =       G3P500e                                               : ARR( 0.210E-10,     0., 0.0);
+{ 53506} GPN502G +GNO3               =       G3P500e +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 53507} GPN502G+HV               =       G3N502A +      GNO2                                   :  0.100E+01*SUN;
+{ 53508} GPN502G+HV               =       G1P506T +      GNO2                                   :  0.100E+01*SUN;
+{ 53509} GPN502G+HV               =       G1P506U +      GNO2                                   :  0.100E+01*SUN;
+{ 53510} GPN502G+HV               =       GPN400Z +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 53511} G3P500e +GHO2               =  0.800GPG500t + 0.200GPA500d + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 53512} G3P500e +GNO                =       GPN400Z +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 53513} G3P500e +GNO2               =       GPP500L                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 53514} G3P500e +GNO3               =       GPN400Z +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 53515} G3P500e +MEPERO             =  0.685GPN400Z + 0.315GPA500d + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53516} G3P500e +PERO1              =  0.800GPN400Z + 0.200GPA500d + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53517} G3P500e +PERO2              =  0.750GPN400Z + 0.250GPA500d + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53518} G3P500e +PERO3              =  0.800GPN400Z + 0.200GPA500d + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53519} G3P500e +PERO5              =  0.650GPN400Z + 0.350GPA500d + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53520} G3P500e +PERO6              =  0.650GPN400Z + 0.350GPA500d + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53521} G3P500e +PERO9              =       GPN400Z +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 53522} G1P506T                     =       GCO     +      GND400J +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 53523} G1P506U                     =       GPN3006 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  2877., 0.0);
+{ 53524} GGN400W +GHO                =       G3G400C                                               : ARR( 0.222E-10,     0., 0.0);
+{ 53525} GGN400W +GHO                =       G3N400U                                               : ARR( 0.203E-11,  -190., 0.0);
+{ 53526} GGN400W +GNO3               =       G3G400C +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 53527} GGN400W+HV               =       GDD3001 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 53528} GGN400W+HV               =       G1G400b +      GNO2                                   :  0.100E+01*SUN;
+{ 53529} GGN400W+HV               =       GGN3005 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 53530} G3G400C +GHO2               =  0.800GGG4007 + 0.200GAG400D + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 53531} G3G400C +GNO                =       GGN3005 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 53532} G3G400C +GNO2               =       GPG4009                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 53533} G3G400C +GNO3               =       GGN3005 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 53534} G3G400C +MEPERO             =  0.685GGN3005 + 0.315GAG400D + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53535} G3G400C +PERO1              =  0.800GGN3005 + 0.200GAG400D + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53536} G3G400C +PERO2              =  0.750GGN3005 + 0.250GAG400D + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53537} G3G400C +PERO3              =  0.800GGN3005 + 0.200GAG400D + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53538} G3G400C +PERO5              =  0.650GGN3005 + 0.350GAG400D + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53539} G3G400C +PERO6              =  0.650GGN3005 + 0.350GAG400D + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53540} G3G400C +PERO9              =       GGN3005 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 53541} GHH502l +GHO                =       GHH503B +      GHO2                                   : ARR( 0.247E-11,     0., 0.0);
+{ 53542} GHH502l +GHO                =       GHN506S +      GHO                                    : ARR( 0.829E-11,     0., 0.0);
+{ 53543} GHH502l +GHO                =       GHN505p +      GHO                                    : ARR( 0.162E-10,     0., 0.0);
+{ 53544} GHH502l +GHO                =       G2H503m                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 53545} GHH502l +GHO                =       G2H503n                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 53546} GHH502l+HV               =       G3K2001 +      GHH3005 +      GNO2                    :  0.100E+01*SUN;
+{ 53547} GHH502l+HV               =       GNK3001 +      GDD2000 + 2.000GHO                     :  0.100E+01*SUN;
+{ 53548} GHH502l+HV               =       G1H50Au +      GNO2                                   :  0.100E+01*SUN;
+{ 53549} GHH502l+HV               =       G1H50BG +      GHO                                    :  0.100E+01*SUN;
+{ 53550} GHH502l+HV               =       G1H50Ah +      GHO                                    :  0.100E+01*SUN;
+{ 53551} G2H503m +GNO                =       G1H50BG +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 53552} G2H503m +GNO                =       GHN506c                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 53553} G2H503m +GHO2               =       GHH502l                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 53554} G2H503m +GNO3               =       G1H50BG +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 53555} G2H503m +MEPERO             =  0.340G1H50BG + 0.330GHN506Q + 0.330GHN506S                 : ARR( 0.565E-13,  -845., 0.0);
+{ 53556} G2H503m +PERO1              =  0.460G1H50BG + 0.270GHN506Q + 0.270GHN506S                 : ARR( 0.434E-13,  -900., 0.0);
+{ 53557} G2H503m +PERO2              =  0.400G1H50BG + 0.300GHN506Q + 0.300GHN506S                 : ARR( 0.162E-13, -1400., 0.0);
+{ 53558} G2H503m +PERO3              =  0.460G1H50BG + 0.270GHN506Q + 0.270GHN506S                 : ARR( 0.488E-13, -1250., 0.0);
+{ 53559} G2H503m +PERO5              =  0.460G1H50BG + 0.270GHN506Q + 0.270GHN506S                 : ARR( 0.183E-11,   450., 0.0);
+{ 53560} G2H503m +PERO6              =  0.300G1H50BG + 0.350GHN506Q + 0.350GHN506S                 : ARR( 0.168E-13, -1300., 0.0);
+{ 53561} G2H503m +PERO9              =  0.650G1H50BG + 0.350GHN506S                                : ARR( 0.100E-10,     0., 0.0);
+{ 53562} G2H503n +GNO                =       G1H50Ah +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 53563} G2H503n +GNO                =       GHN5067                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 53564} G2H503n +GHO2               =       GHH502l                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 53565} G2H503n +GNO3               =       G1H50Ah +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 53566} G2H503n +MEPERO             =  0.480G1H50Ah + 0.260GHN5036 + 0.260GHN505p                 : ARR( 0.164E-12,  -795., 0.0);
+{ 53567} G2H503n +PERO1              =  0.600G1H50Ah + 0.200GHN5036 + 0.200GHN505p                 : ARR( 0.126E-12,  -850., 0.0);
+{ 53568} G2H503n +PERO2              =  0.560G1H50Ah + 0.220GHN5036 + 0.220GHN505p                 : ARR( 0.471E-13, -1350., 0.0);
+{ 53569} G2H503n +PERO3              =  0.600G1H50Ah + 0.200GHN5036 + 0.200GHN505p                 : ARR( 0.142E-12, -1200., 0.0);
+{ 53570} G2H503n +PERO5              =  0.600G1H50Ah + 0.200GHN5036 + 0.200GHN505p                 : ARR( 0.533E-11,   500., 0.0);
+{ 53571} G2H503n +PERO6              =  0.460G1H50Ah + 0.270GHN5036 + 0.270GHN505p                 : ARR( 0.488E-13, -1250., 0.0);
+{ 53572} G2H503n +PERO9              =  0.800G1H50Ah + 0.200GHN505p                                : ARR( 0.100E-10,     0., 0.0);
+{ 53573} G1H50BG                     =       GHN506t +      GHO2                                   : ARR( 0.160E+12,  4515., 0.0);
+{ 53574} G1H50BG                     =       GDK3001 +      GHD2000 +      GNO2                    : ARR( 0.200E+15,  6515., 0.0);
+{ 53575} G1H50BG                     =       GND400L +      GCH2O   +      GHO                     : ARR( 0.200E+15,  6565., 0.0);
+{ 53576} GHN506T +GHO                =       GNN503G +      GHO                                    : ARR( 0.982E-11,     0., 0.0);
+{ 53577} GHN506T +GHO                =       G3H504F                                               : ARR( 0.416E-11,     0., 0.0);
+{ 53578} GHN506T +GHO                =       G2N506L                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 53579} GHN506T +GNO3               =       G3H504F +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 53580} GHN506T+HV               =       G1N506e +      GHO                                    :  0.100E+01*SUN;
+{ 53581} GHN506T+HV               =       G3H2000 +      GND3005 +      GNO2                    :  0.100E+01*SUN;
+{ 53582} GHN506T+HV               =       G1H50BH +      GNO2                                   :  0.100E+01*SUN;
+{ 53583} GHN506T+HV               =       G1H50BI +      GNO2                                   :  0.100E+01*SUN;
+{ 53584} GHN506T+HV               =       GHN401A +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 53585} G3H504F +GHO2               =  0.800GGH504n + 0.200GAH504k + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 53586} G3H504F +GNO                =       GHN401A + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 53587} G3H504F +GNO2               =       GPH504p                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 53588} G3H504F +GNO3               =       GHN401A + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 53589} G3H504F +MEPERO             =  0.685GHN401A + 0.315GAH504k + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53590} G3H504F +PERO1              =  0.800GHN401A + 0.200GAH504k + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53591} G3H504F +PERO2              =  0.750GHN401A + 0.250GAH504k + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53592} G3H504F +PERO3              =  0.800GHN401A + 0.200GAH504k + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53593} G3H504F +PERO5              =  0.650GHN401A + 0.350GAH504k + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53594} G3H504F +PERO6              =  0.650GHN401A + 0.350GAH504k + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53595} G3H504F +PERO9              =       GHN401A +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 53596} G2N506L +GNO                =       G1N506e +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 53597} G2N506L +GNO                =       GNN502x                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 53598} G2N506L +GHO2               =       GHN506T                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 53599} G2N506L +GNO3               =       G1N506e +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 53600} G2N506L +MEPERO             =  0.480G1N506e + 0.260GNN503D + 0.260GNN503G                 : ARR( 0.164E-12,  -795., 0.0);
+{ 53601} G2N506L +PERO1              =  0.600G1N506e + 0.200GNN503D + 0.200GNN503G                 : ARR( 0.126E-12,  -850., 0.0);
+{ 53602} G2N506L +PERO2              =  0.560G1N506e + 0.220GNN503D + 0.220GNN503G                 : ARR( 0.471E-13, -1350., 0.0);
+{ 53603} G2N506L +PERO3              =  0.600G1N506e + 0.200GNN503D + 0.200GNN503G                 : ARR( 0.142E-12, -1200., 0.0);
+{ 53604} G2N506L +PERO5              =  0.600G1N506e + 0.200GNN503D + 0.200GNN503G                 : ARR( 0.533E-11,   500., 0.0);
+{ 53605} G2N506L +PERO6              =  0.460G1N506e + 0.270GNN503D + 0.270GNN503G                 : ARR( 0.488E-13, -1250., 0.0);
+{ 53606} G2N506L +PERO9              =  0.800G1N506e + 0.200GNN503G                                : ARR( 0.100E-10,     0., 0.0);
+{ 53607} G1H50BH                     =       G3H2000 +      GND3005                                : ARR( 0.200E+15,  2179., 0.0);
+{ 53608} G1H50BI                     =       GHN401A +      GCO     +      GHO2                    : ARR( 0.200E+15,  4861., 0.0);
+{ 53609} GNN503G +GHO                =       G3N400X +      GCO                                    : ARR( 0.127E-10,     0., 0.0);
+{ 53610} GNN503G +GHO                =       G3N502Z                                               : ARR( 0.416E-11,     0., 0.0);
+{ 53611} GNN503G +GNO3               =       G3N400X +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 53612} GNN503G +GNO3               =       G3N502Z +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 53613} GNN503G+HV               =       GCO     +      G3N400X +      GHO2                    :  0.100E+01*SUN;
+{ 53614} GNN503G+HV               =       GNN400Z +      GCO                                    :  0.100E+01*SUN;
+{ 53615} GNN503G+HV               =       GNN3005 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 53616} GNN503G+HV               =       G1N507D +      GNO2                                   :  0.100E+01*SUN;
+{ 53617} GNN503G+HV               =       G1N507E +      GNO2                                   :  0.100E+01*SUN;
+{ 53618} GNN503G+HV               =       GND400N +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 53619} G3N502Z +GHO2               =  0.800GGN502k + 0.200GAN502l + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 53620} G3N502Z +GNO                =       GND400N + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 53621} G3N502Z +GNO2               =       GPN502l                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 53622} G3N502Z +GNO3               =       GND400N + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 53623} G3N502Z +MEPERO             =  0.685GND400N + 0.315GAN502l + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53624} G3N502Z +PERO1              =  0.800GND400N + 0.200GAN502l + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53625} G3N502Z +PERO2              =  0.750GND400N + 0.250GAN502l + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53626} G3N502Z +PERO3              =  0.800GND400N + 0.200GAN502l + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53627} G3N502Z +PERO5              =  0.650GND400N + 0.350GAN502l + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53628} G3N502Z +PERO6              =  0.650GND400N + 0.350GAN502l + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53629} G3N502Z +PERO9              =       GND400N +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 53630} G1N507D                     =       GND3005 +      G3D2000                                : ARR( 0.200E+15,  2403., 0.0);
+{ 53631} G1N507E                     =       GND400N +      GCO     +      GHO2                    : ARR( 0.200E+15,  4861., 0.0);
+{ 53632} GND400N +GHO                =       G3N3005 +      GCO                                    : ARR( 0.127E-10,     0., 0.0);
+{ 53633} GND400N +GHO                =       G3N400Y                                               : ARR( 0.417E-11,     0., 0.0);
+{ 53634} GND400N +GNO3               =       G3N3005 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 53635} GND400N +GNO3               =       G3N400Y +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 53636} GND400N+HV               =       GCO     +      G3N3005 +      GHO2                    :  0.100E+01*SUN;
+{ 53637} GND400N+HV               =       GND3005 +      GCO                                    :  0.100E+01*SUN;
+{ 53638} GND400N+HV               =       GND2000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 53639} GND400N+HV               =       G1D400M +      GNO2                                   :  0.100E+01*SUN;
+{ 53640} GND400N+HV               =       GDD3002 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 53641} GGN400X +GHO                =       G3G400D                                               : ARR( 0.417E-11,     0., 0.0);
+{ 53642} GGN400X +GHO                =       G3N400X                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 53643} GGN400X +GNO3               =       G3G400D +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 53644} GGN400X+HV               =       GND3005 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 53645} GGN400X+HV               =       G1G400z +      GNO2                                   :  0.100E+01*SUN;
+{ 53646} GGN400X+HV               =       G1G4011 +      GNO2                                   :  0.100E+01*SUN;
+{ 53647} GGN400X+HV               =       GGN3005 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 53648} G3G400D +GHO2               =  0.800GGG4008 + 0.200GAG400C + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 53649} G3G400D +GNO                =       GGN3005 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 53650} G3G400D +GNO2               =       GPG400D                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 53651} G3G400D +GNO3               =       GGN3005 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 53652} G3G400D +MEPERO             =  0.685GGN3005 + 0.315GAG400C + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53653} G3G400D +PERO1              =  0.800GGN3005 + 0.200GAG400C + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53654} G3G400D +PERO2              =  0.750GGN3005 + 0.250GAG400C + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53655} G3G400D +PERO3              =  0.800GGN3005 + 0.200GAG400C + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53656} G3G400D +PERO5              =  0.650GGN3005 + 0.350GAG400C + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53657} G3G400D +PERO6              =  0.650GGN3005 + 0.350GAG400C + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53658} G3G400D +PERO9              =       GGN3005 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 53659} G1G400z                     =       GCO     +      GND3005 +      GHO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 53660} G1G4011                     =       GGN3005 +      GCO     +      GHO2                    : ARR( 0.200E+15,  4861., 0.0);
+{ 53661} GGH400g +GHO                =       GGD4003 +      GHO                                    : ARR( 0.852E-10,     0., 0.0);
+{ 53662} GGH400g +GHO                =       GGH400s +      GHO2                                   : ARR( 0.671E-11,     0., 0.0);
+{ 53663} GGH400g +GHO                =       G3G400E                                               : ARR( 0.222E-10,     0., 0.0);
+{ 53664} GGH400g +GNO3               =       G3G400E +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 53665} GGH400g+HV               =       GDD3001 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 53666} GGH400g+HV               =       G1G400b +      GHO                                    :  0.100E+01*SUN;
+{ 53667} GGH400g+HV               =       GGH3007 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 53668} G3G400E +GHO2               =  0.800GGG4009 + 0.200GAG400I + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 53669} G3G400E +GNO                =       GGH3007 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 53670} G3G400E +GNO2               =       GPG400I                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 53671} G3G400E +GNO3               =       GGH3007 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 53672} G3G400E +MEPERO             =  0.685GGH3007 + 0.315GAG400I + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53673} G3G400E +PERO1              =  0.800GGH3007 + 0.200GAG400I + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53674} G3G400E +PERO2              =  0.750GGH3007 + 0.250GAG400I + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53675} G3G400E +PERO3              =  0.800GGH3007 + 0.200GAG400I + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53676} G3G400E +PERO5              =  0.650GGH3007 + 0.350GAG400I + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53677} G3G400E +PERO6              =  0.650GGH3007 + 0.350GAG400I + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53678} G3G400E +PERO9              =       GGH3007 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 53679} GGG4001 +GHO                =       G2G400r                                               : ARR( 0.870E-12,     0., 0.0);
+{ 53680} GGG4001 +GHO                =       GGG4004 +      GHO2                                   : ARR( 0.634E-11,     0., 0.0);
+{ 53681} GGG4001 +GHO                =       G3G4002                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 53682} GGG4001 +GHO                =       G3G4001                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 53683} GGG4001+HV               =       G2G3004 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 53684} GGG4001+HV               =       GGD3000 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 53685} G2G400r +GNO                =       G1G4012 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 53686} G2G400r +GNO                =       GGG4007                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 53687} G2G400r +GHO2               =       GGG4009                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 53688} G2G400r +GNO3               =       G1G4012 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 53689} G2G400r +MEPERO             =  0.340G1G4012 + 0.330GGG4006 + 0.330GGG4003                 : ARR( 0.565E-13,  -845., 0.0);
+{ 53690} G2G400r +PERO1              =  0.460G1G4012 + 0.270GGG4006 + 0.270GGG4003                 : ARR( 0.434E-13,  -900., 0.0);
+{ 53691} G2G400r +PERO2              =  0.400G1G4012 + 0.300GGG4006 + 0.300GGG4003                 : ARR( 0.162E-13, -1400., 0.0);
+{ 53692} G2G400r +PERO3              =  0.460G1G4012 + 0.270GGG4006 + 0.270GGG4003                 : ARR( 0.488E-13, -1250., 0.0);
+{ 53693} G2G400r +PERO5              =  0.460G1G4012 + 0.270GGG4006 + 0.270GGG4003                 : ARR( 0.183E-11,   450., 0.0);
+{ 53694} G2G400r +PERO6              =  0.300G1G4012 + 0.350GGG4006 + 0.350GGG4003                 : ARR( 0.168E-13, -1300., 0.0);
+{ 53695} G2G400r +PERO9              =  0.650G1G4012 + 0.350GGG4003                                : ARR( 0.100E-10,     0., 0.0);
+{ 53696} G1G4012                     =       GGD3001 +      GCO     +      GHO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 53697} GAG4004 +GHO                =       GAG4003 +      GHO2                                   : ARR( 0.472E-11,     0., 0.0);
+{ 53698} GAG4004 +GHO                =       G2A4013                                               : ARR( 0.874E-12,     0., 0.0);
+{ 53699} GAG4004 +GHO                =       G3A4005                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 53700} GAG4004 +GHO                =       GGD3000 +      GHO2    +      GCO2                    : ARR( 0.528E-12,     0., 0.0);
+{ 53701} GAG4004+HV               =       G2A3005 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 53702} G2A4013 +GNO                =       G1A401E +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 53703} G2A4013 +GNO                =       GAG400D                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 53704} G2A4013 +GHO2               =       GAG400I                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 53705} G2A4013 +GNO3               =       G1A401E +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 53706} G2A4013 +MEPERO             =  0.340G1A401E + 0.330GAG400F + 0.330GAG4006                 : ARR( 0.565E-13,  -845., 0.0);
+{ 53707} G2A4013 +PERO1              =  0.460G1A401E + 0.270GAG400F + 0.270GAG4006                 : ARR( 0.434E-13,  -900., 0.0);
+{ 53708} G2A4013 +PERO2              =  0.400G1A401E + 0.300GAG400F + 0.300GAG4006                 : ARR( 0.162E-13, -1400., 0.0);
+{ 53709} G2A4013 +PERO3              =  0.460G1A401E + 0.270GAG400F + 0.270GAG4006                 : ARR( 0.488E-13, -1250., 0.0);
+{ 53710} G2A4013 +PERO5              =  0.460G1A401E + 0.270GAG400F + 0.270GAG4006                 : ARR( 0.183E-11,   450., 0.0);
+{ 53711} G2A4013 +PERO6              =  0.300G1A401E + 0.350GAG400F + 0.350GAG4006                 : ARR( 0.168E-13, -1300., 0.0);
+{ 53712} G2A4013 +PERO9              =  0.650G1A401E + 0.350GAG4006                                : ARR( 0.100E-10,     0., 0.0);
+{ 53713} G1A401E                     =       GAD3001 +      GCO     +      GHO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 53714} GPG4004                     =       G3G4001 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 53715} GPG4004 +GHO                =       G2P401A                                               : ARR( 0.873E-12,     0., 0.0);
+{ 53716} GPG4004 +GHO                =       GPG4003 +      GHO2                                   : ARR( 0.636E-11,     0., 0.0);
+{ 53717} GPG4004 +GHO                =       G3P4005                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 53718} GPG4004+HV               =       G2P3005 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 53719} GPG4004+HV               =       G3G4001 +      GNO2                                   :  0.100E+01*SUN;
+{ 53720} G2P401A +GNO                =       G1P401M +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 53721} G2P401A +GNO                =       GPG4009                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 53722} G2P401A +GHO2               =       GPG400I                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 53723} G2P401A +GNO3               =       G1P401M +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 53724} G2P401A +MEPERO             =  0.340G1P401M + 0.330GPG400F + 0.330GPG4006                 : ARR( 0.565E-13,  -845., 0.0);
+{ 53725} G2P401A +PERO1              =  0.460G1P401M + 0.270GPG400F + 0.270GPG4006                 : ARR( 0.434E-13,  -900., 0.0);
+{ 53726} G2P401A +PERO2              =  0.400G1P401M + 0.300GPG400F + 0.300GPG4006                 : ARR( 0.162E-13, -1400., 0.0);
+{ 53727} G2P401A +PERO3              =  0.460G1P401M + 0.270GPG400F + 0.270GPG4006                 : ARR( 0.488E-13, -1250., 0.0);
+{ 53728} G2P401A +PERO5              =  0.460G1P401M + 0.270GPG400F + 0.270GPG4006                 : ARR( 0.183E-11,   450., 0.0);
+{ 53729} G2P401A +PERO6              =  0.300G1P401M + 0.350GPG400F + 0.350GPG4006                 : ARR( 0.168E-13, -1300., 0.0);
+{ 53730} G2P401A +PERO9              =  0.650G1P401M + 0.350GPG4006                                : ARR( 0.100E-10,     0., 0.0);
+{ 53731} G1P401M                     =       GCO     +      GPD3001 +      GHO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 53732} GAH400k +GHO                =       GAD4004 +      GHO                                    : ARR( 0.619E-10,     0., 0.0);
+{ 53733} GAH400k +GHO                =       GAH400u +      GHO2                                   : ARR( 0.659E-11,     0., 0.0);
+{ 53734} GAH400k +GHO                =       G3A400E                                               : ARR( 0.218E-10,     0., 0.0);
+{ 53735} GAH400k +GNO3               =       G3A400E +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 53736} GAH400k+HV               =       G1A400i +      GHO                                    :  0.100E+01*SUN;
+{ 53737} GAH400k+HV               =       GAH3007 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 53738} G3A400E +GHO2               =  0.800GAG400J + 0.200GAA400C + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 53739} G3A400E +GNO                =       GAH3007 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 53740} G3A400E +GNO2               =       GPA400M                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 53741} G3A400E +GNO3               =       GAH3007 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 53742} G3A400E +MEPERO             =  0.685GAH3007 + 0.315GAA400C + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53743} G3A400E +PERO1              =  0.800GAH3007 + 0.200GAA400C + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53744} G3A400E +PERO2              =  0.750GAH3007 + 0.250GAA400C + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53745} G3A400E +PERO3              =  0.800GAH3007 + 0.200GAA400C + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53746} G3A400E +PERO5              =  0.650GAH3007 + 0.350GAA400C + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53747} G3A400E +PERO6              =  0.650GAH3007 + 0.350GAA400C + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53748} G3A400E +PERO9              =       GAH3007 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 53749} GAD4007 +GHO                =       GAD4004 +      GHO2                                   : ARR( 0.150E-10,     0., 0.0);
+{ 53750} GAD4007 +GHO                =       GAD4006 +      GHO2                                   : ARR( 0.640E-11,     0., 0.0);
+{ 53751} GAD4007 +GHO                =       G3A400F                                               : ARR( 0.212E-10,     0., 0.0);
+{ 53752} GAD4007 +GNO3               =       G3A400F +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 53753} GAD4007+HV               =       GAD3001 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 53754} G3A400F +GHO2               =  0.800GAG400F + 0.200GAA400D + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 53755} G3A400F +GNO                =       GAD3001 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 53756} G3A400F +GNO2               =       GPA400I                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 53757} G3A400F +GNO3               =       GAD3001 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 53758} G3A400F +MEPERO             =  0.685GAD3001 + 0.315GAA400D + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53759} G3A400F +PERO1              =  0.800GAD3001 + 0.200GAA400D + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53760} G3A400F +PERO2              =  0.750GAD3001 + 0.250GAA400D + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53761} G3A400F +PERO3              =  0.800GAD3001 + 0.200GAA400D + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53762} G3A400F +PERO5              =  0.650GAD3001 + 0.350GAA400D + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53763} G3A400F +PERO6              =  0.650GAD3001 + 0.350GAA400D + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53764} G3A400F +PERO9              =       GAD3001 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 53765} GAG4005 +GHO                =       G2A4014                                               : ARR( 0.678E-12,     0., 0.0);
+{ 53766} GAG4005 +GHO                =       GAG4009 +      GHO2                                   : ARR( 0.668E-11,     0., 0.0);
+{ 53767} GAG4005 +GHO                =       G3A4004                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 53768} GAG4005+HV               =       GAD3000 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 53769} G2A4014 +GNO                =       G1A401F +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 53770} G2A4014 +GNO                =       GAG4007                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 53771} G2A4014 +GHO2               =       GAG400J                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 53772} G2A4014 +GNO3               =       G1A401F +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 53773} G2A4014 +MEPERO             =  0.340G1A401F + 0.330GAG400F + 0.330GAG4008                 : ARR( 0.565E-13,  -845., 0.0);
+{ 53774} G2A4014 +PERO1              =  0.460G1A401F + 0.270GAG400F + 0.270GAG4008                 : ARR( 0.434E-13,  -900., 0.0);
+{ 53775} G2A4014 +PERO2              =  0.400G1A401F + 0.300GAG400F + 0.300GAG4008                 : ARR( 0.162E-13, -1400., 0.0);
+{ 53776} G2A4014 +PERO3              =  0.460G1A401F + 0.270GAG400F + 0.270GAG4008                 : ARR( 0.488E-13, -1250., 0.0);
+{ 53777} G2A4014 +PERO5              =  0.460G1A401F + 0.270GAG400F + 0.270GAG4008                 : ARR( 0.183E-11,   450., 0.0);
+{ 53778} G2A4014 +PERO6              =  0.300G1A401F + 0.350GAG400F + 0.350GAG4008                 : ARR( 0.168E-13, -1300., 0.0);
+{ 53779} G2A4014 +PERO9              =  0.650G1A401F + 0.350GAG4008                                : ARR( 0.100E-10,     0., 0.0);
+{ 53780} G1A401F                     =       GCO     +      GGD3001 +      GHO                     : ARR( 0.200E+15,  4342., 0.0);
+{ 53781} GAA4003 +GHO                =       G2A4015                                               : ARR( 0.652E-12,     0., 0.0);
+{ 53782} GAA4003 +GHO                =       GAA4002 +      GHO2                                   : ARR( 0.475E-11,     0., 0.0);
+{ 53783} GAA4003 +GHO                =       G2A3005 +      GCO2                                   : ARR( 0.532E-12,     0., 0.0);
+{ 53784} GAA4003 +GHO                =       GAD3000 +      GHO2    +      GCO2                    : ARR( 0.532E-12,     0., 0.0);
+{ 53785} G2A4015 +GNO                =       G1A401G +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 53786} G2A4015 +GNO                =       GAA4004                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 53787} G2A4015 +GHO2               =       GAA400C                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 53788} G2A4015 +GNO3               =       G1A401G +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 53789} G2A4015 +MEPERO             =  0.340G1A401G + 0.330GAA400D + 0.330GAA4005                 : ARR( 0.565E-13,  -845., 0.0);
+{ 53790} G2A4015 +PERO1              =  0.460G1A401G + 0.270GAA400D + 0.270GAA4005                 : ARR( 0.434E-13,  -900., 0.0);
+{ 53791} G2A4015 +PERO2              =  0.400G1A401G + 0.300GAA400D + 0.300GAA4005                 : ARR( 0.162E-13, -1400., 0.0);
+{ 53792} G2A4015 +PERO3              =  0.460G1A401G + 0.270GAA400D + 0.270GAA4005                 : ARR( 0.488E-13, -1250., 0.0);
+{ 53793} G2A4015 +PERO5              =  0.460G1A401G + 0.270GAA400D + 0.270GAA4005                 : ARR( 0.183E-11,   450., 0.0);
+{ 53794} G2A4015 +PERO6              =  0.300G1A401G + 0.350GAA400D + 0.350GAA4005                 : ARR( 0.168E-13, -1300., 0.0);
+{ 53795} G2A4015 +PERO9              =  0.650G1A401G + 0.350GAA4005                                : ARR( 0.100E-10,     0., 0.0);
+{ 53796} G1A401G                     =       GAD3001 +      GCO     +      GHO                     : ARR( 0.200E+15,  4342., 0.0);
+{ 53797} GPA4005                     =       G3A4004 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 53798} GPA4005 +GHO                =       G2P401B                                               : ARR( 0.650E-12,     0., 0.0);
+{ 53799} GPA4005 +GHO                =       GPA4004 +      GHO2                                   : ARR( 0.640E-11,     0., 0.0);
+{ 53800} GPA4005 +GHO                =       G2P3005 +      GCO2                                   : ARR( 0.530E-12,     0., 0.0);
+{ 53801} GPA4005+HV               =       G3A4004 +      GNO2                                   :  0.100E+01*SUN;
+{ 53802} G2P401B +GNO                =       G1P401N +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 53803} G2P401B +GNO                =       GPA4007                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 53804} G2P401B +GHO2               =       GPA400M                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 53805} G2P401B +GNO3               =       G1P401N +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 53806} G2P401B +MEPERO             =  0.340G1P401N + 0.330GPA400I + 0.330GPA4008                 : ARR( 0.565E-13,  -845., 0.0);
+{ 53807} G2P401B +PERO1              =  0.460G1P401N + 0.270GPA400I + 0.270GPA4008                 : ARR( 0.434E-13,  -900., 0.0);
+{ 53808} G2P401B +PERO2              =  0.400G1P401N + 0.300GPA400I + 0.300GPA4008                 : ARR( 0.162E-13, -1400., 0.0);
+{ 53809} G2P401B +PERO3              =  0.460G1P401N + 0.270GPA400I + 0.270GPA4008                 : ARR( 0.488E-13, -1250., 0.0);
+{ 53810} G2P401B +PERO5              =  0.460G1P401N + 0.270GPA400I + 0.270GPA4008                 : ARR( 0.183E-11,   450., 0.0);
+{ 53811} G2P401B +PERO6              =  0.300G1P401N + 0.350GPA400I + 0.350GPA4008                 : ARR( 0.168E-13, -1300., 0.0);
+{ 53812} G2P401B +PERO9              =  0.650G1P401N + 0.350GPA4008                                : ARR( 0.100E-10,     0., 0.0);
+{ 53813} G1P401N                     =       GCO     +      GPD3001 +      GHO                     : ARR( 0.200E+15,  4342., 0.0);
+{ 53814} GPH400l                     =       G3H400l +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 53815} GPH400l +GHO                =       GPD4004 +      GHO                                    : ARR( 0.825E-10,     0., 0.0);
+{ 53816} GPH400l +GHO                =       GPH400v +      GHO2                                   : ARR( 0.650E-11,     0., 0.0);
+{ 53817} GPH400l +GHO                =       G3P400F                                               : ARR( 0.215E-10,     0., 0.0);
+{ 53818} GPH400l +GNO3               =       G3P400F +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 53819} GPH400l+HV               =       G3H400l +      GNO2                                   :  0.100E+01*SUN;
+{ 53820} GPH400l+HV               =       G1P400k +      GHO                                    :  0.100E+01*SUN;
+{ 53821} GPH400l+HV               =       GPH3007 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 53822} G3P400F +GHO2               =  0.800GPG400J + 0.200GPA400N + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 53823} G3P400F +GNO                =       GPH3007 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 53824} G3P400F +GNO2               =       GPP400D                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 53825} G3P400F +GNO3               =       GPH3007 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 53826} G3P400F +MEPERO             =  0.685GPH3007 + 0.315GPA400N + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53827} G3P400F +PERO1              =  0.800GPH3007 + 0.200GPA400N + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53828} G3P400F +PERO2              =  0.750GPH3007 + 0.250GPA400N + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53829} G3P400F +PERO3              =  0.800GPH3007 + 0.200GPA400N + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53830} G3P400F +PERO5              =  0.650GPH3007 + 0.350GPA400N + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53831} G3P400F +PERO6              =  0.650GPH3007 + 0.350GPA400N + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53832} G3P400F +PERO9              =       GPH3007 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 53833} GPG4005                     =       G3G4002 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 53834} GPG4005 +GHO                =       GPG400A +      GHO2                                   : ARR( 0.636E-11,     0., 0.0);
+{ 53835} GPG4005 +GHO                =       G2P401C                                               : ARR( 0.873E-12,     0., 0.0);
+{ 53836} GPG4005 +GHO                =       G3P4004                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 53837} GPG4005+HV               =       GPD3000 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 53838} GPG4005+HV               =       G3G4002 +      GNO2                                   :  0.100E+01*SUN;
+{ 53839} G2P401C +GNO                =       G1P401O +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 53840} G2P401C +GNO                =       GPG4007                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 53841} G2P401C +GHO2               =       GPG400J                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 53842} G2P401C +GNO3               =       G1P401O +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 53843} G2P401C +MEPERO             =  0.340G1P401O + 0.330GPG400F + 0.330GPG4008                 : ARR( 0.565E-13,  -845., 0.0);
+{ 53844} G2P401C +PERO1              =  0.460G1P401O + 0.270GPG400F + 0.270GPG4008                 : ARR( 0.434E-13,  -900., 0.0);
+{ 53845} G2P401C +PERO2              =  0.400G1P401O + 0.300GPG400F + 0.300GPG4008                 : ARR( 0.162E-13, -1400., 0.0);
+{ 53846} G2P401C +PERO3              =  0.460G1P401O + 0.270GPG400F + 0.270GPG4008                 : ARR( 0.488E-13, -1250., 0.0);
+{ 53847} G2P401C +PERO5              =  0.460G1P401O + 0.270GPG400F + 0.270GPG4008                 : ARR( 0.183E-11,   450., 0.0);
+{ 53848} G2P401C +PERO6              =  0.300G1P401O + 0.350GPG400F + 0.350GPG4008                 : ARR( 0.168E-13, -1300., 0.0);
+{ 53849} G2P401C +PERO9              =  0.650G1P401O + 0.350GPG4008                                : ARR( 0.100E-10,     0., 0.0);
+{ 53850} G1P401O                     =       GGD3001 +      GCO     +      GNO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 53851} GPA4006                     =       G3A4005 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 53852} GPA4006 +GHO                =       GPA4003 +      GHO2                                   : ARR( 0.476E-11,     0., 0.0);
+{ 53853} GPA4006 +GHO                =       G2P401D                                               : ARR( 0.882E-12,     0., 0.0);
+{ 53854} GPA4006 +GHO                =       GPD3000 +      GHO2    +      GCO2                    : ARR( 0.532E-12,     0., 0.0);
+{ 53855} GPA4006+HV               =       G3A4005 +      GNO2                                   :  0.100E+01*SUN;
+{ 53856} G2P401D +GNO                =       G1P401P +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 53857} G2P401D +GNO                =       GPA4009                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 53858} G2P401D +GHO2               =       GPA400N                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 53859} G2P401D +GNO3               =       G1P401P +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 53860} G2P401D +MEPERO             =  0.340G1P401P + 0.330GPA400I + 0.330GPA400A                 : ARR( 0.565E-13,  -845., 0.0);
+{ 53861} G2P401D +PERO1              =  0.460G1P401P + 0.270GPA400I + 0.270GPA400A                 : ARR( 0.434E-13,  -900., 0.0);
+{ 53862} G2P401D +PERO2              =  0.400G1P401P + 0.300GPA400I + 0.300GPA400A                 : ARR( 0.162E-13, -1400., 0.0);
+{ 53863} G2P401D +PERO3              =  0.460G1P401P + 0.270GPA400I + 0.270GPA400A                 : ARR( 0.488E-13, -1250., 0.0);
+{ 53864} G2P401D +PERO5              =  0.460G1P401P + 0.270GPA400I + 0.270GPA400A                 : ARR( 0.183E-11,   450., 0.0);
+{ 53865} G2P401D +PERO6              =  0.300G1P401P + 0.350GPA400I + 0.350GPA400A                 : ARR( 0.168E-13, -1300., 0.0);
+{ 53866} G2P401D +PERO9              =  0.650G1P401P + 0.350GPA400A                                : ARR( 0.100E-10,     0., 0.0);
+{ 53867} G1P401P                     =       GAD3001 +      GCO     +      GNO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 53868} GPP4003                     =       G3P4005 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 53869} GPP4003                     =       G3P4004 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 53870} GPP4003 +GHO                =       G2P401E                                               : ARR( 0.879E-12,     0., 0.0);
+{ 53871} GPP4003 +GHO                =       GPP4002 +      GHO2                                   : ARR( 0.641E-11,     0., 0.0);
+{ 53872} GPP4003+HV               =       G3P4005 +      GNO2                                   :  0.100E+01*SUN;
+{ 53873} GPP4003+HV               =       G3P4004 +      GNO2                                   :  0.100E+01*SUN;
+{ 53874} G2P401E +GNO                =       G1P401Q +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 53875} G2P401E +GNO                =       GPP4004                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 53876} G2P401E +GHO2               =       GPP400D                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 53877} G2P401E +GNO3               =       G1P401Q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 53878} G2P401E +MEPERO             =  0.340G1P401Q + 0.330GPP400A + 0.330GPP4005                 : ARR( 0.565E-13,  -845., 0.0);
+{ 53879} G2P401E +PERO1              =  0.460G1P401Q + 0.270GPP400A + 0.270GPP4005                 : ARR( 0.434E-13,  -900., 0.0);
+{ 53880} G2P401E +PERO2              =  0.400G1P401Q + 0.300GPP400A + 0.300GPP4005                 : ARR( 0.162E-13, -1400., 0.0);
+{ 53881} G2P401E +PERO3              =  0.460G1P401Q + 0.270GPP400A + 0.270GPP4005                 : ARR( 0.488E-13, -1250., 0.0);
+{ 53882} G2P401E +PERO5              =  0.460G1P401Q + 0.270GPP400A + 0.270GPP4005                 : ARR( 0.183E-11,   450., 0.0);
+{ 53883} G2P401E +PERO6              =  0.300G1P401Q + 0.350GPP400A + 0.350GPP4005                 : ARR( 0.168E-13, -1300., 0.0);
+{ 53884} G2P401E +PERO9              =  0.650G1P401Q + 0.350GPP4005                                : ARR( 0.100E-10,     0., 0.0);
+{ 53885} G1P401Q                     =       GPD3001 +      GCO     +      GNO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 53886} GGN501v +GHO                =       G3G4005 +      GCO                                    : ARR( 0.130E-10,     0., 0.0);
+{ 53887} GGN501v +GHO                =       G3N501U                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 53888} GGN501v +GNO3               =       G3G4005 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 53889} GGN501v+HV               =       GDD4002 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 53890} GGN501v+HV               =       G1G502k +      GNO2                                   :  0.100E+01*SUN;
+{ 53891} GGN501v+HV               =       G3G4005 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 53892} GGN501v+HV               =       GGN400M +      GCO                                    :  0.100E+01*SUN;
+{ 53893} GGN501v+HV               =       GGN3001 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 53894} GHN506U +GHO                =       GND501X +      GHO                                    : ARR( 0.983E-11,     0., 0.0);
+{ 53895} GHN506U +GHO                =       G3H504G                                               : ARR( 0.417E-11,     0., 0.0);
+{ 53896} GHN506U +GHO                =       G2N506M                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 53897} GHN506U +GNO3               =       G3H504G +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 53898} GHN506U+HV               =       G1N506l +      GHO                                    :  0.100E+01*SUN;
+{ 53899} GHN506U+HV               =       G3H2000 +      G3N3005                                :  0.100E+01*SUN;
+{ 53900} GHN506U+HV               =       G1H50BJ +      GNO2                                   :  0.100E+01*SUN;
+{ 53901} GHN506U+HV               =       GHD400N +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 53902} G3H504G +GHO2               =  0.800GGH504o + 0.200GAH504s + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 53903} G3H504G +GNO                =       GHD400N + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 53904} G3H504G +GNO2               =       GPH5054                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 53905} G3H504G +GNO3               =       GHD400N + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 53906} G3H504G +MEPERO             =  0.685GHD400N + 0.315GAH504s + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53907} G3H504G +PERO1              =  0.800GHD400N + 0.200GAH504s + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53908} G3H504G +PERO2              =  0.750GHD400N + 0.250GAH504s + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53909} G3H504G +PERO3              =  0.800GHD400N + 0.200GAH504s + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53910} G3H504G +PERO5              =  0.650GHD400N + 0.350GAH504s + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53911} G3H504G +PERO6              =  0.650GHD400N + 0.350GAH504s + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53912} G3H504G +PERO9              =       GHD400N +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 53913} G2N506M +GNO                =       G1N506l +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 53914} G2N506M +GNO                =       GNN5031                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 53915} G2N506M +GHO2               =       GHN506U                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 53916} G2N506M +GNO3               =       G1N506l +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 53917} G2N506M +MEPERO             =  0.480G1N506l + 0.260GND501O + 0.260GND501X                 : ARR( 0.164E-12,  -795., 0.0);
+{ 53918} G2N506M +PERO1              =  0.600G1N506l + 0.200GND501O + 0.200GND501X                 : ARR( 0.126E-12,  -850., 0.0);
+{ 53919} G2N506M +PERO2              =  0.560G1N506l + 0.220GND501O + 0.220GND501X                 : ARR( 0.471E-13, -1350., 0.0);
+{ 53920} G2N506M +PERO3              =  0.600G1N506l + 0.200GND501O + 0.200GND501X                 : ARR( 0.142E-12, -1200., 0.0);
+{ 53921} G2N506M +PERO5              =  0.600G1N506l + 0.200GND501O + 0.200GND501X                 : ARR( 0.533E-11,   500., 0.0);
+{ 53922} G2N506M +PERO6              =  0.460G1N506l + 0.270GND501O + 0.270GND501X                 : ARR( 0.488E-13, -1250., 0.0);
+{ 53923} G2N506M +PERO9              =  0.800G1N506l + 0.200GND501X                                : ARR( 0.100E-10,     0., 0.0);
+{ 53924} G1H50BJ                     =       GDD500D +      GHO                                    : ARR( 0.160E+12,  4168., 0.0);
+{ 53925} G1H50BJ                     =       G3H2000 +      GDD2000 +      GCO                     : ARR( 0.200E+15,  5210., 0.0);
+{ 53926} GND501X +GHO                =       G3N3005 + 2.000GCO                                    : ARR( 0.127E-10,     0., 0.0);
+{ 53927} GND501X +GHO                =       G3N502a                                               : ARR( 0.417E-11,     0., 0.0);
+{ 53928} GND501X +GNO3               =       G3N3005 +      GHNO3   + 2.000GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 53929} GND501X +GNO3               =       G3N502a +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 53930} GND501X+HV               =       GCO     +      G3N3005 +      GHO2    +      GCO      :  0.100E+01*SUN;
+{ 53931} GND501X+HV               =       GND400N +      GCO                                    :  0.100E+01*SUN;
+{ 53932} GND501X+HV               =       GND3005 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 53933} GND501X+HV               =       G3D2000 +      G3N3005                                :  0.100E+01*SUN;
+{ 53934} GND501X+HV               =       G1D501Y +      GNO2                                   :  0.100E+01*SUN;
+{ 53935} GND501X+HV               =       GDD4005 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 53936} G3N502a +GHO2               =  0.800GGN502l + 0.200GAN502p + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 53937} G3N502a +GNO                =       GDD4005 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 53938} G3N502a +GNO2               =       GPN502s                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 53939} G3N502a +GNO3               =       GDD4005 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 53940} G3N502a +MEPERO             =  0.685GDD4005 + 0.315GAN502p + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53941} G3N502a +PERO1              =  0.800GDD4005 + 0.200GAN502p + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53942} G3N502a +PERO2              =  0.750GDD4005 + 0.250GAN502p + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53943} G3N502a +PERO3              =  0.800GDD4005 + 0.200GAN502p + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53944} G3N502a +PERO5              =  0.650GDD4005 + 0.350GAN502p + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53945} G3N502a +PERO6              =  0.650GDD4005 + 0.350GAN502p + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53946} G3N502a +PERO9              =       GDD4005 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 53947} G1D501Y                     =       G3D2000 +      GDD2000 +      GCO                     : ARR( 0.200E+15,  5175., 0.0);
+{ 53948} GGG4002 +GHO                =       G3G4005                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 53949} GGG4002 +GHO                =       G3G4003                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 53950} GGG4002+HV               =       G2G3003 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 53951} GGG4002+HV               =       G1G400u +      GNO2                                   :  0.100E+01*SUN;
+{ 53952} GGG4002+HV               =       GGD3000 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 53953} GAH400l +GHO                =       GAN400Z +      GHO                                    : ARR( 0.391E-11,     0., 0.0);
+{ 53954} GAH400l +GHO                =       G3A400G                                               : ARR( 0.437E-11,     0., 0.0);
+{ 53955} GAH400l +GHO                =       G2A4016                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 53956} GAH400l +GNO3               =       G3A400G +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 53957} GAH400l+HV               =       G1A4015 +      GHO                                    :  0.100E+01*SUN;
+{ 53958} GAH400l+HV               =       G1A401H +      GNO2                                   :  0.100E+01*SUN;
+{ 53959} GAH400l+HV               =       GAH3007 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 53960} G3A400G +GHO2               =  0.800GAG400K + 0.200GAA4009 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 53961} G3A400G +GNO                =       GAH3007 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 53962} G3A400G +GNO2               =       GPA400F                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 53963} G3A400G +GNO3               =       GAH3007 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 53964} G3A400G +MEPERO             =  0.685GAH3007 + 0.315GAA4009 + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53965} G3A400G +PERO1              =  0.800GAH3007 + 0.200GAA4009 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53966} G3A400G +PERO2              =  0.750GAH3007 + 0.250GAA4009 + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53967} G3A400G +PERO3              =  0.800GAH3007 + 0.200GAA4009 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53968} G3A400G +PERO5              =  0.650GAH3007 + 0.350GAA4009 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53969} G3A400G +PERO6              =  0.650GAH3007 + 0.350GAA4009 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53970} G3A400G +PERO9              =       GAH3007 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 53971} G2A4016 +GNO                =       G1A4015 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 53972} G2A4016 +GNO                =       GAN400Y                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 53973} G2A4016 +GHO2               =       GAH400l                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 53974} G2A4016 +GNO3               =       G1A4015 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 53975} G2A4016 +MEPERO             =  0.340G1A4015 + 0.330GAN400a + 0.330GAN400Z                 : ARR( 0.565E-13,  -845., 0.0);
+{ 53976} G2A4016 +PERO1              =  0.460G1A4015 + 0.270GAN400a + 0.270GAN400Z                 : ARR( 0.434E-13,  -900., 0.0);
+{ 53977} G2A4016 +PERO2              =  0.400G1A4015 + 0.300GAN400a + 0.300GAN400Z                 : ARR( 0.162E-13, -1400., 0.0);
+{ 53978} G2A4016 +PERO3              =  0.460G1A4015 + 0.270GAN400a + 0.270GAN400Z                 : ARR( 0.488E-13, -1250., 0.0);
+{ 53979} G2A4016 +PERO5              =  0.460G1A4015 + 0.270GAN400a + 0.270GAN400Z                 : ARR( 0.183E-11,   450., 0.0);
+{ 53980} G2A4016 +PERO6              =  0.300G1A4015 + 0.350GAN400a + 0.350GAN400Z                 : ARR( 0.168E-13, -1300., 0.0);
+{ 53981} G2A4016 +PERO9              =  0.650G1A4015 + 0.350GAN400Z                                : ARR( 0.100E-10,     0., 0.0);
+{ 53982} G1A401H                     =       GAH3007 +      GCO     +      GHO2                    : ARR( 0.200E+15,  4861., 0.0);
+{ 53983} GPH400m                     =       G3H400h +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 53984} GPH400m +GHO                =       GPN400a +      GHO                                    : ARR( 0.505E-11,     0., 0.0);
+{ 53985} GPH400m +GHO                =       G3P400G                                               : ARR( 0.418E-11,     0., 0.0);
+{ 53986} GPH400m +GHO                =       G2P401F                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 53987} GPH400m +GNO3               =       G3P400G +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 53988} GPH400m+HV               =       G3H400h +      GNO2                                   :  0.100E+01*SUN;
+{ 53989} GPH400m+HV               =       G1P401C +      GHO                                    :  0.100E+01*SUN;
+{ 53990} GPH400m+HV               =       G1P401R +      GNO2                                   :  0.100E+01*SUN;
+{ 53991} GPH400m+HV               =       GPH3007 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 53992} G3P400G +GHO2               =  0.800GPG400K + 0.200GPA400H + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 53993} G3P400G +GNO                =       GPH3007 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 53994} G3P400G +GNO2               =       GPP4009                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 53995} G3P400G +GNO3               =       GPH3007 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 53996} G3P400G +MEPERO             =  0.685GPH3007 + 0.315GPA400H + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53997} G3P400G +PERO1              =  0.800GPH3007 + 0.200GPA400H + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53998} G3P400G +PERO2              =  0.750GPH3007 + 0.250GPA400H + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 53999} G3P400G +PERO3              =  0.800GPH3007 + 0.200GPA400H + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54000} G3P400G +PERO5              =  0.650GPH3007 + 0.350GPA400H + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54001} G3P400G +PERO6              =  0.650GPH3007 + 0.350GPA400H + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54002} G3P400G +PERO9              =       GPH3007 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 54003} G2P401F +GNO                =       G1P401C +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 54004} G2P401F +GNO                =       GPN400Z                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 54005} G2P401F +GHO2               =       GPH400m                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 54006} G2P401F +GNO3               =       G1P401C +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 54007} G2P401F +MEPERO             =  0.340G1P401C + 0.330GPN400Q + 0.330GPN400a                 : ARR( 0.565E-13,  -845., 0.0);
+{ 54008} G2P401F +PERO1              =  0.460G1P401C + 0.270GPN400Q + 0.270GPN400a                 : ARR( 0.434E-13,  -900., 0.0);
+{ 54009} G2P401F +PERO2              =  0.400G1P401C + 0.300GPN400Q + 0.300GPN400a                 : ARR( 0.162E-13, -1400., 0.0);
+{ 54010} G2P401F +PERO3              =  0.460G1P401C + 0.270GPN400Q + 0.270GPN400a                 : ARR( 0.488E-13, -1250., 0.0);
+{ 54011} G2P401F +PERO5              =  0.460G1P401C + 0.270GPN400Q + 0.270GPN400a                 : ARR( 0.183E-11,   450., 0.0);
+{ 54012} G2P401F +PERO6              =  0.300G1P401C + 0.350GPN400Q + 0.350GPN400a                 : ARR( 0.168E-13, -1300., 0.0);
+{ 54013} G2P401F +PERO9              =  0.650G1P401C + 0.350GPN400a                                : ARR( 0.100E-10,     0., 0.0);
+{ 54014} G1P401R                     =       GPH3007 +      GCO     +      GHO2                    : ARR( 0.200E+15,  4861., 0.0);
+{ 54015} GGN400Y +GHO                =       GGN400b +      GHO2                                   : ARR( 0.843E-12,     0., 0.0);
+{ 54016} GGN400Y +GHO                =       G3N400W                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 54017} GGN400Y+HV               =       G1G4013 +      GNO2                                   :  0.100E+01*SUN;
+{ 54018} GGN400Y+HV               =       GAN3002 +      GCO2                                   :  0.100E+01*SUN;
+{ 54019} G1G4013                     =       GDO2000 +      GCO     +      GHO2    +      GCO      : ARR( 0.200E+15,  3326., 0.0);
+{ 54020} GHK500z +GHO                =       GHK500p +      GHO2                                   : ARR( 0.529E-11,     0., 0.0);
+{ 54021} GHK500z +GHO                =       GDK500U +      GHO                                    : ARR( 0.102E-10,     0., 0.0);
+{ 54022} GHK500z +GHO                =       G2K500w                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 54023} GHK500z+HV               =       G3K3002 +      G3H2000                                :  0.100E+01*SUN;
+{ 54024} GHK500z+HV               =       G1K500z +      GHO                                    :  0.100E+01*SUN;
+{ 54025} G2K500w +GNO                =       G1K500z +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 54026} G2K500w +GNO                =       GNK500w                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 54027} G2K500w +GHO2               =       GHK500z                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 54028} G2K500w +GNO3               =       G1K500z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 54029} G2K500w +MEPERO             =  0.480G1K500z + 0.260GKK500D + 0.260GDK500U                 : ARR( 0.164E-12,  -795., 0.0);
+{ 54030} G2K500w +PERO1              =  0.600G1K500z + 0.200GKK500D + 0.200GDK500U                 : ARR( 0.126E-12,  -850., 0.0);
+{ 54031} G2K500w +PERO2              =  0.560G1K500z + 0.220GKK500D + 0.220GDK500U                 : ARR( 0.471E-13, -1350., 0.0);
+{ 54032} G2K500w +PERO3              =  0.600G1K500z + 0.200GKK500D + 0.200GDK500U                 : ARR( 0.142E-12, -1200., 0.0);
+{ 54033} G2K500w +PERO5              =  0.600G1K500z + 0.200GKK500D + 0.200GDK500U                 : ARR( 0.533E-11,   500., 0.0);
+{ 54034} G2K500w +PERO6              =  0.460G1K500z + 0.270GKK500D + 0.270GDK500U                 : ARR( 0.488E-13, -1250., 0.0);
+{ 54035} G2K500w +PERO9              =  0.800G1K500z + 0.200GDK500U                                : ARR( 0.100E-10,     0., 0.0);
+{ 54036} GGN501w +GHO                =       GGN501m +      GHO2                                   : ARR( 0.134E-11,     0., 0.0);
+{ 54037} GGN501w +GHO                =       G3N501X                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 54038} GGN501w+HV               =       G3K2000 +      GGD3001 +      GNO2                    :  0.100E+01*SUN;
+{ 54039} GGN501w+HV               =       G1G504N +      GNO2                                   :  0.100E+01*SUN;
+{ 54040} GGN501w+HV               =       GND4008 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 54041} GAH400m +GHO                =       GAN400b +      GHO                                    : ARR( 0.102E-10,     0., 0.0);
+{ 54042} GAH400m +GHO                =       G2A400e                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 54043} GAH400m+HV               =       G1A401I +      GNO2                                   :  0.100E+01*SUN;
+{ 54044} GAH400m+HV               =       G3A3001 +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 54045} GAH400m+HV               =       G1A400l +      GHO                                    :  0.100E+01*SUN;
+{ 54046} G1A401I                     =       GAD2000 +      G3H2000                                : ARR( 0.200E+15,  5396., 0.0);
+{ 54047} GAN400b +GHO                =       G3A3001 +      GCO                                    : ARR( 0.132E-10,     0., 0.0);
+{ 54048} GAN400b +GNO3               =       G3A3001 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 54049} GAN400b+HV               =       G1A401J +      GNO2                                   :  0.100E+01*SUN;
+{ 54050} GAN400b+HV               =       G3A3001 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 54051} GAN400b+HV               =       GAN3006 +      GCO                                    :  0.100E+01*SUN;
+{ 54052} GAN400b+HV               =       GAN2000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 54053} G1A401J                     =       GAD2000 +      G3D2000                                : ARR( 0.200E+15,  5620., 0.0);
+{ 54054} GPH400n                     =       G3H400n +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 54055} GPH400n +GHO                =       GPN400b +      GHO                                    : ARR( 0.984E-11,     0., 0.0);
+{ 54056} GPH400n +GHO                =       G2P400g                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 54057} GPH400n+HV               =       G1P400m +      GHO                                    :  0.100E+01*SUN;
+{ 54058} GPH400n+HV               =       G3H2000 +      GPD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 54059} GPH400n+HV               =       G1P401S +      GNO2                                   :  0.100E+01*SUN;
+{ 54060} GPH400n+HV               =       G3H400n +      GNO2                                   :  0.100E+01*SUN;
+{ 54061} G1P401S                     =       G3H2000 +      GPD2000                                : ARR( 0.200E+15,  5396., 0.0);
+{ 54062} GPN400b                     =       G3N400Y +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 54063} GPN400b +GHO                =       G3P3001 +      GCO                                    : ARR( 0.127E-10,     0., 0.0);
+{ 54064} GPN400b +GNO3               =       G3P3001 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 54065} GPN400b+HV               =       G3N400Y +      GNO2                                   :  0.100E+01*SUN;
+{ 54066} GPN400b+HV               =       G1P401T +      GNO2                                   :  0.100E+01*SUN;
+{ 54067} GPN400b+HV               =       G3P3001 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 54068} GPN400b+HV               =       GPN3006 +      GCO                                    :  0.100E+01*SUN;
+{ 54069} GPN400b+HV               =       GPN2000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 54070} G1P401T                     =       GPD2000 +      G3D2000                                : ARR( 0.200E+15,  5620., 0.0);
+{ 54071} GAH400n +GHO                =       GAD4008 +      GHO                                    : ARR( 0.102E-10,     0., 0.0);
+{ 54072} GAH400n +GHO                =       G2A400f                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 54073} GAH400n+HV               =       GHD3001 +      GCO2                                   :  0.100E+01*SUN;
+{ 54074} GAH400n+HV               =       GCO     +      G3H2000 +      GHO     +      GCO      :  0.100E+01*SUN;
+{ 54075} GAH400n+HV               =       G1A400m +      GHO                                    :  0.100E+01*SUN;
+{ 54076} GAD4008 +GHO                =       GCO     +      GHO     + 3.000GCO                     : ARR( 0.132E-10,     0., 0.0);
+{ 54077} GAD4008 +GNO3               =       GCO     +      GHNO3   +      GHO     + 3.000GCO      : ARR( 0.240E-14,     0., 0.0);
+{ 54078} GAD4008+HV               =       GDD3002 +      GCO2                                   :  0.100E+01*SUN;
+{ 54079} GAD4008+HV               =       GCO     +      G3D2000 +      GHO     +      GCO      :  0.100E+01*SUN;
+{ 54080} GAD4008+HV               =  2.000GCO     +      GHO     +      GHO2    + 2.000GCO      :  0.100E+01*SUN;
+{ 54081} GAD4008+HV               =       GAD3002 +      GCO                                    :  0.100E+01*SUN;
+{ 54082} GAD4008+HV               =       GAD2000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 54083} GPH400o                     =       G3H400v +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 54084} GPH400o +GHO                =       GPD4008 +      GHO                                    : ARR( 0.981E-11,     0., 0.0);
+{ 54085} GPH400o +GHO                =       G2P400h                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 54086} GPH400o+HV               =       G1P400n +      GHO                                    :  0.100E+01*SUN;
+{ 54087} GPH400o+HV               =       G3H2000 +      GCO     +      GNO2    +      GCO      :  0.100E+01*SUN;
+{ 54088} GPH400o+HV               =       G3H2000 +      GCO     +      GCO     +      GNO2     :  0.100E+01*SUN;
+{ 54089} G3H400v +GHO2               =  0.800GGH400h + 0.200GAH400n + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 54090} G3H400v +GNO                =       G3H2000 +      GNO2    +      GCO2    +      GCO      : ARR( 0.810E-11,  -270., 0.0);
+{ 54091} G3H400v +GNO2               =       GPH400o                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 54092} G3H400v +GNO3               =       G3H2000 +      GNO2    +      GCO2    +      GCO      : ARR( 0.500E-11,     0., 0.0);
+{ 54093} G3H400v +MEPERO             =  0.685G3H2000 + 0.315GAH400n + 0.685GCO2    + 0.685GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 54094} G3H400v +PERO1              =  0.800G3H2000 + 0.200GAH400n + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 54095} G3H400v +PERO2              =  0.750G3H2000 + 0.250GAH400n + 0.750GCO2    + 0.750GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 54096} G3H400v +PERO3              =  0.800G3H2000 + 0.200GAH400n + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 54097} G3H400v +PERO5              =  0.650G3H2000 + 0.350GAH400n + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 54098} G3H400v +PERO6              =  0.650G3H2000 + 0.350GAH400n + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 54099} G3H400v +PERO9              =       G3H2000 +      GCO2    +      GCO                     : ARR( 0.500E-11,  -500., 0.0);
+{ 54100} GPD4008                     =       G3D4008 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 54101} GPD4008 +GHO                =       GCO     +      GNO2    + 3.000GCO                     : ARR( 0.127E-10,     0., 0.0);
+{ 54102} GPD4008 +GNO3               =       GCO     +      GHNO3   +      GNO2    + 3.000GCO      : ARR( 0.240E-14,     0., 0.0);
+{ 54103} GPD4008+HV               =       G3D2000 +      GCO     +      GCO     +      GNO2     :  0.100E+01*SUN;
+{ 54104} GPD4008+HV               =       GCO     +      G3D2000 +      GNO2    +      GCO      :  0.100E+01*SUN;
+{ 54105} GPD4008+HV               =  2.000GCO     +      GNO2    +      GHO2    + 2.000GCO      :  0.100E+01*SUN;
+{ 54106} GPD4008+HV               =       GPD3002 +      GCO                                    :  0.100E+01*SUN;
+{ 54107} GPD4008+HV               =       GPD2000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 54108} G3D4008 +GHO2               =  0.800GGD4008 + 0.200GAD4008 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 54109} G3D4008 +GNO                =       G3D2000 +      GNO2    +      GCO2    +      GCO      : ARR( 0.810E-11,  -270., 0.0);
+{ 54110} G3D4008 +GNO2               =       GPD4008                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 54111} G3D4008 +GNO3               =       G3D2000 +      GNO2    +      GCO2    +      GCO      : ARR( 0.500E-11,     0., 0.0);
+{ 54112} G3D4008 +MEPERO             =  0.685G3D2000 + 0.315GAD4008 + 0.685GCO2    + 0.685GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 54113} G3D4008 +PERO1              =  0.800G3D2000 + 0.200GAD4008 + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 54114} G3D4008 +PERO2              =  0.750G3D2000 + 0.250GAD4008 + 0.750GCO2    + 0.750GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 54115} G3D4008 +PERO3              =  0.800G3D2000 + 0.200GAD4008 + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 54116} G3D4008 +PERO5              =  0.650G3D2000 + 0.350GAD4008 + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 54117} G3D4008 +PERO6              =  0.650G3D2000 + 0.350GAD4008 + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 54118} G3D4008 +PERO9              =       G3D2000 +      GCO2    +      GCO                     : ARR( 0.500E-11,  -500., 0.0);
+{ 54119} GGH400h +GHO                =       GGD4008 +      GHO                                    : ARR( 0.981E-11,     0., 0.0);
+{ 54120} GGH400h +GHO                =       G2G400p                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 54121} GGH400h +GHO                =       G3H400v                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 54122} GGH400h+HV               =       G1G400o +      GHO                                    :  0.100E+01*SUN;
+{ 54123} GGH400h+HV               =       G3H2000 +      GCO     +      GHO2    +      GCO      :  0.100E+01*SUN;
+{ 54124} GGH400h+HV               =       GAH3006 +      GCO2                                   :  0.100E+01*SUN;
+{ 54125} GGD4008 +GHO                =       GCO     +      GHO2    + 3.000GCO                     : ARR( 0.127E-10,     0., 0.0);
+{ 54126} GGD4008 +GHO                =       G3D4008                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 54127} GGD4008 +GNO3               =       GCO     +      GHNO3   +      GHO2    + 3.000GCO      : ARR( 0.240E-14,     0., 0.0);
+{ 54128} GGD4008+HV               =       GAD3002 +      GCO2                                   :  0.100E+01*SUN;
+{ 54129} GGD4008+HV               =       GCO     +      G3D2000 +      GHO2    +      GCO      :  0.100E+01*SUN;
+{ 54130} GGD4008+HV               =  2.000GCO     + 2.000GHO2    + 2.000GCO                     :  0.100E+01*SUN;
+{ 54131} GGD4008+HV               =       GGD3002 +      GCO                                    :  0.100E+01*SUN;
+{ 54132} GGD4008+HV               =       GGD2000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 54133} GGG4003 +GHO                =       GGG400A +      GHO2                                   : ARR( 0.388E-11,     0., 0.0);
+{ 54134} GGG4003 +GHO                =       G3G4004                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 54135} GGG4003 +GHO                =       G3G400F                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 54136} GGG4003+HV               =       GGD3002 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 54137} GGG4003+HV               =       GAG3002 +      GCO2                                   :  0.100E+01*SUN;
+{ 54138} G3G400F +GHO2               =  0.800GGG4003 + 0.200GAG4008 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 54139} G3G400F +GNO                =       G3G3002 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 54140} G3G400F +GNO2               =       GPG4008                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 54141} G3G400F +GNO3               =       G3G3002 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 54142} G3G400F +MEPERO             =  0.685G3G3002 + 0.315GAG4008 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 54143} G3G400F +PERO1              =  0.800G3G3002 + 0.200GAG4008 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 54144} G3G400F +PERO2              =  0.750G3G3002 + 0.250GAG4008 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 54145} G3G400F +PERO3              =  0.800G3G3002 + 0.200GAG4008 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 54146} G3G400F +PERO5              =  0.650G3G3002 + 0.350GAG4008 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 54147} G3G400F +PERO6              =  0.650G3G3002 + 0.350GAG4008 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 54148} G3G400F +PERO9              =       G3G3002 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 54149} GAG4006 +GHO                =       GAG400H +      GHO2                                   : ARR( 0.289E-11,     0., 0.0);
+{ 54150} GAG4006 +GHO                =       G3A400H                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 54151} GAG4006 +GHO                =       GGD3002 +      GHO2    +      GCO2                    : ARR( 0.530E-12,     0., 0.0);
+{ 54152} GAG4006+HV               =       GAA3002 +      GCO2                                   :  0.100E+01*SUN;
+{ 54153} G3A400H +GHO2               =  0.800GAG4006 + 0.200GAA4005 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 54154} G3A400H +GNO                =       G3A3002 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 54155} G3A400H +GNO2               =       GPA400A                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 54156} G3A400H +GNO3               =       G3A3002 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 54157} G3A400H +MEPERO             =  0.685G3A3002 + 0.315GAA4005 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 54158} G3A400H +PERO1              =  0.800G3A3002 + 0.200GAA4005 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 54159} G3A400H +PERO2              =  0.750G3A3002 + 0.250GAA4005 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 54160} G3A400H +PERO3              =  0.800G3A3002 + 0.200GAA4005 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 54161} G3A400H +PERO5              =  0.650G3A3002 + 0.350GAA4005 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 54162} G3A400H +PERO6              =  0.650G3A3002 + 0.350GAA4005 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 54163} G3A400H +PERO9              =       G3A3002 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 54164} GPG4006                     =       G3G4004 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 54165} GPG4006 +GHO                =       GPG400H +      GHO2                                   : ARR( 0.390E-11,     0., 0.0);
+{ 54166} GPG4006 +GHO                =       G3P400H                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 54167} GPG4006+HV               =       GPA3002 +      GCO2                                   :  0.100E+01*SUN;
+{ 54168} GPG4006+HV               =       G3G4004 +      GNO2                                   :  0.100E+01*SUN;
+{ 54169} G3P400H +GHO2               =  0.800GPG4006 + 0.200GPA4008 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 54170} G3P400H +GNO                =       G3P3002 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 54171} G3P400H +GNO2               =       GPP4005                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 54172} G3P400H +GNO3               =       G3P3002 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 54173} G3P400H +MEPERO             =  0.685G3P3002 + 0.315GPA4008 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 54174} G3P400H +PERO1              =  0.800G3P3002 + 0.200GPA4008 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 54175} G3P400H +PERO2              =  0.750G3P3002 + 0.250GPA4008 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 54176} G3P400H +PERO3              =  0.800G3P3002 + 0.200GPA4008 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 54177} G3P400H +PERO5              =  0.650G3P3002 + 0.350GPA4008 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 54178} G3P400H +PERO6              =  0.650G3P3002 + 0.350GPA4008 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 54179} G3P400H +PERO9              =       G3P3002 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 54180} GAG4007 +GHO                =       GAG400L +      GHO2                                   : ARR( 0.130E-11,     0., 0.0);
+{ 54181} GAG4007 +GHO                =       G3A4006                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 54182} GAG4007 +GHO                =       GGD3001 +      GNO2    +      GCO2                    : ARR( 0.539E-12,     0., 0.0);
+{ 54183} GAG4007+HV               =       G1A401F +      GNO2                                   :  0.100E+01*SUN;
+{ 54184} GAG4007+HV               =       GAN3006 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 54185} GAA4004 +GHO                =       GAA4008 +      GHO2                                   : ARR( 0.953E-12,     0., 0.0);
+{ 54186} GAA4004 +GHO                =       G1A4014                                               : ARR( 0.215E-17,    85., 2.0);
+{ 54187} GAA4004 +GHO                =       GAN3006 +      GHO2    +      GCO2                    : ARR( 0.533E-12,     0., 0.0);
+{ 54188} GAA4004 +GHO                =       GAD3001 +      GNO2    +      GCO2                    : ARR( 0.533E-12,     0., 0.0);
+{ 54189} GAA4004+HV               =       G1A401G +      GNO2                                   :  0.100E+01*SUN;
+{ 54190} GPA4007                     =       G3A4006 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 54191} GPA4007 +GHO                =       GPA400G +      GHO2                                   : ARR( 0.129E-11,     0., 0.0);
+{ 54192} GPA4007 +GHO                =       G1P401A                                               : ARR( 0.216E-17,    85., 2.0);
+{ 54193} GPA4007 +GHO                =       GPD3001 +      GNO2    +      GCO2                    : ARR( 0.534E-12,     0., 0.0);
+{ 54194} GPA4007+HV               =       G1P401N +      GNO2                                   :  0.100E+01*SUN;
+{ 54195} GPA4007+HV               =       G3A4006 +      GNO2                                   :  0.100E+01*SUN;
+{ 54196} GAG4008 +GHO                =       GAG400H +      GHO2                                   : ARR( 0.390E-11,     0., 0.0);
+{ 54197} GAG4008 +GHO                =       G3A4007                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 54198} GAG4008 +GHO                =       G3G3002 +      GCO2                                   : ARR( 0.529E-12,     0., 0.0);
+{ 54199} GAG4008+HV               =       GGD3001 +      GCO2                                   :  0.100E+01*SUN;
+{ 54200} GAG4008+HV               =       GAD3002 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 54201} GAA4005 +GHO                =       GAA400B +      GHO2                                   : ARR( 0.294E-11,     0., 0.0);
+{ 54202} GAA4005 +GHO                =       GAD3002 +      GHO2    +      GCO2                    : ARR( 0.539E-12,     0., 0.0);
+{ 54203} GAA4005 +GHO                =       G3A3002 +      GCO2                                   : ARR( 0.539E-12,     0., 0.0);
+{ 54204} GAA4005+HV               =       GAD3001 +      GCO2                                   :  0.100E+01*SUN;
+{ 54205} GPA4008                     =       G3A4007 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 54206} GPA4008 +GHO                =       GPA400K +      GHO2                                   : ARR( 0.395E-11,     0., 0.0);
+{ 54207} GPA4008 +GHO                =       G3P3002 +      GCO2                                   : ARR( 0.537E-12,     0., 0.0);
+{ 54208} GPA4008+HV               =       GPD3001 +      GCO2                                   :  0.100E+01*SUN;
+{ 54209} GPA4008+HV               =       G3A4007 +      GNO2                                   :  0.100E+01*SUN;
+{ 54210} GPG4007                     =       G3G400B +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 54211} GPG4007 +GHO                =       GPG400L +      GHO2                                   : ARR( 0.131E-11,     0., 0.0);
+{ 54212} GPG4007 +GHO                =       G3P4006                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 54213} GPG4007+HV               =       GPN3006 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 54214} GPG4007+HV               =       G1P401O +      GNO2                                   :  0.100E+01*SUN;
+{ 54215} GPG4007+HV               =       G3G400B +      GNO2                                   :  0.100E+01*SUN;
+{ 54216} GPA4009                     =       G3A400B +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 54217} GPA4009 +GHO                =       GPA400E +      GHO2                                   : ARR( 0.972E-12,     0., 0.0);
+{ 54218} GPA4009 +GHO                =       G1P4019                                               : ARR( 0.219E-17,    85., 2.0);
+{ 54219} GPA4009 +GHO                =       GPN3006 +      GHO2    +      GCO2                    : ARR( 0.543E-12,     0., 0.0);
+{ 54220} GPA4009+HV               =       G1P401P +      GNO2                                   :  0.100E+01*SUN;
+{ 54221} GPA4009+HV               =       G3A400B +      GNO2                                   :  0.100E+01*SUN;
+{ 54222} GPP4004                     =       G3P4006 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 54223} GPP4004                     =       G3P4008 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 54224} GPP4004 +GHO                =       GPP4008 +      GHO2                                   : ARR( 0.132E-11,     0., 0.0);
+{ 54225} GPP4004 +GHO                =       G1P401B                                               : ARR( 0.221E-17,    85., 2.0);
+{ 54226} GPP4004+HV               =       G3P4006 +      GNO2                                   :  0.100E+01*SUN;
+{ 54227} GPP4004+HV               =       G1P401Q +      GNO2                                   :  0.100E+01*SUN;
+{ 54228} GPP4004+HV               =       G3P4008 +      GNO2                                   :  0.100E+01*SUN;
+{ 54229} GPG4008                     =       G3G400F +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 54230} GPG4008 +GHO                =       GPG400H +      GHO2                                   : ARR( 0.390E-11,     0., 0.0);
+{ 54231} GPG4008 +GHO                =       G3P4007                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 54232} GPG4008+HV               =       GPD3002 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 54233} GPG4008+HV               =       G3G3002 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 54234} GPA400A                     =       G3A400H +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 54235} GPA400A +GHO                =       GPA400K +      GHO2                                   : ARR( 0.295E-11,     0., 0.0);
+{ 54236} GPA400A +GHO                =       GPD3002 +      GHO2    +      GCO2                    : ARR( 0.542E-12,     0., 0.0);
+{ 54237} GPA400A+HV               =       G3A3002 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 54238} GPP4005                     =       G3P4007 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 54239} GPP4005                     =       G3P400H +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 54240} GPP4005 +GHO                =       GPP400C +      GHO2                                   : ARR( 0.397E-11,     0., 0.0);
+{ 54241} GPP4005+HV               =       G3P4007 +      GNO2                                   :  0.100E+01*SUN;
+{ 54242} GPP4005+HV               =       G3P3002 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 54243} GGH502U +GHO                =       GGN501p +      GHO                                    : ARR( 0.506E-11,     0., 0.0);
+{ 54244} GGH502U +GHO                =       G2G503K                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 54245} GGH502U +GHO                =       G3H501o                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 54246} GGH502U+HV               =       G1G504g +      GNO2                                   :  0.100E+01*SUN;
+{ 54247} GGH502U+HV               =       G1G504H +      GNO2                                   :  0.100E+01*SUN;
+{ 54248} GGH502U+HV               =       G1G504O +      GHO                                    :  0.100E+01*SUN;
+{ 54249} GGH502U+HV               =       GNN4007 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 54250} G2G503K +GNO                =       G1G504O +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 54251} G2G503K +GNO                =       GGN501n                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 54252} G2G503K +GHO2               =       GGH502U                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 54253} G2G503K +GNO3               =       G1G504O +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 54254} G2G503K +MEPERO             =  0.340G1G504O + 0.330GGN501r + 0.330GGN501p                 : ARR( 0.565E-13,  -845., 0.0);
+{ 54255} G2G503K +PERO1              =  0.460G1G504O + 0.270GGN501r + 0.270GGN501p                 : ARR( 0.434E-13,  -900., 0.0);
+{ 54256} G2G503K +PERO2              =  0.400G1G504O + 0.300GGN501r + 0.300GGN501p                 : ARR( 0.162E-13, -1400., 0.0);
+{ 54257} G2G503K +PERO3              =  0.460G1G504O + 0.270GGN501r + 0.270GGN501p                 : ARR( 0.488E-13, -1250., 0.0);
+{ 54258} G2G503K +PERO5              =  0.460G1G504O + 0.270GGN501r + 0.270GGN501p                 : ARR( 0.183E-11,   450., 0.0);
+{ 54259} G2G503K +PERO6              =  0.300G1G504O + 0.350GGN501r + 0.350GGN501p                 : ARR( 0.168E-13, -1300., 0.0);
+{ 54260} G2G503K +PERO9              =  0.650G1G504O + 0.350GGN501p                                : ARR( 0.100E-10,     0., 0.0);
+{ 54261} G1G504g                     =       GD02000 +      GGH3007 +      GNO2                    : ARR( 0.200E+15,  6112., 0.0);
+{ 54262} GGH502W +GHO                =       GGN501m +      GHO                                    : ARR( 0.510E-11,     0., 0.0);
+{ 54263} GGH502W +GHO                =       G2G503L                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 54264} GGH502W +GHO                =       G3H501p                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 54265} GGH502W+HV               =       G3K2000 +      GGH3007 +      GNO2                    :  0.100E+01*SUN;
+{ 54266} GGH502W+HV               =       G1G504M +      GNO2                                   :  0.100E+01*SUN;
+{ 54267} GGH502W+HV               =       G1G504S +      GHO                                    :  0.100E+01*SUN;
+{ 54268} GGH502W+HV               =       GND4008 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 54269} G2G503L +GNO                =       G1G504S +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 54270} G2G503L +GNO                =       GGN501o                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 54271} G2G503L +GHO2               =       GGH502W                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 54272} G2G503L +GNO3               =       G1G504S +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 54273} G2G503L +MEPERO             =  0.340G1G504S + 0.330GGN501w + 0.330GGN501m                 : ARR( 0.565E-13,  -845., 0.0);
+{ 54274} G2G503L +PERO1              =  0.460G1G504S + 0.270GGN501w + 0.270GGN501m                 : ARR( 0.434E-13,  -900., 0.0);
+{ 54275} G2G503L +PERO2              =  0.400G1G504S + 0.300GGN501w + 0.300GGN501m                 : ARR( 0.162E-13, -1400., 0.0);
+{ 54276} G2G503L +PERO3              =  0.460G1G504S + 0.270GGN501w + 0.270GGN501m                 : ARR( 0.488E-13, -1250., 0.0);
+{ 54277} G2G503L +PERO5              =  0.460G1G504S + 0.270GGN501w + 0.270GGN501m                 : ARR( 0.183E-11,   450., 0.0);
+{ 54278} G2G503L +PERO6              =  0.300G1G504S + 0.350GGN501w + 0.350GGN501m                 : ARR( 0.168E-13, -1300., 0.0);
+{ 54279} G2G503L +PERO9              =  0.650G1G504S + 0.350GGN501m                                : ARR( 0.100E-10,     0., 0.0);
+{ 54280} GAG500B +GHO                =       GAG500q +      GHO2                                   : ARR( 0.135E-11,     0., 0.0);
+{ 54281} GAG500B +GHO                =       G3A5009                                               : ARR( 0.204E-11,  -190., 0.0);
+{ 54282} GAG500B +GHO                =       G2G400U +      GCO2                                   : ARR( 0.557E-12,     0., 0.0);
+{ 54283} GAG500B+HV               =       G1A503B +      GNO2                                   :  0.100E+01*SUN;
+{ 54284} GAG500B+HV               =       GAN400J +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 54285} GPG500B                     =       G3G5008 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 54286} GPG500B +GHO                =       GPG500u +      GHO2                                   : ARR( 0.137E-11,     0., 0.0);
+{ 54287} GPG500B +GHO                =       G3P5009                                               : ARR( 0.207E-11,  -190., 0.0);
+{ 54288} GPG500B+HV               =       GPN400H +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 54289} GPG500B+HV               =       G1P503L +      GNO2                                   :  0.100E+01*SUN;
+{ 54290} GPG500B+HV               =       G3G5008 +      GNO2                                   :  0.100E+01*SUN;
+{ 54291} GPH502t                     =       G3H504H +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 54292} GPH502t +GHO                =       GPN502H +      GHO                                    : ARR( 0.162E-10,     0., 0.0);
+{ 54293} GPH502t +GHO                =       GPH504q +      GHO2                                   : ARR( 0.208E-11,     0., 0.0);
+{ 54294} GPH502t +GHO                =       G2P502K                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 54295} GPH502t+HV               =       G1P502p +      GHO                                    :  0.100E+01*SUN;
+{ 54296} GPH502t+HV               =       G1P506W +      GNO2                                   :  0.100E+01*SUN;
+{ 54297} GPH502t+HV               =       G3H400U +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 54298} G3H504H +GHO2               =  0.800GGH504p + 0.200GAH504n + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 54299} G3H504H +GNO                =       G3H400U +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 54300} G3H504H +GNO2               =       GPH502t                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 54301} G3H504H +GNO3               =       G3H400U +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 54302} G3H504H +MEPERO             =  0.685G3H400U + 0.315GAH504n + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 54303} G3H504H +PERO1              =  0.800G3H400U + 0.200GAH504n + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 54304} G3H504H +PERO2              =  0.750G3H400U + 0.250GAH504n + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 54305} G3H504H +PERO3              =  0.800G3H400U + 0.200GAH504n + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 54306} G3H504H +PERO5              =  0.650G3H400U + 0.350GAH504n + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 54307} G3H504H +PERO6              =  0.650G3H400U + 0.350GAH504n + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 54308} G3H504H +PERO9              =       G3H400U +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 54309} G1P506W                     =       GHD3005 +      GCO     +      GNO2    +      GCO      : ARR( 0.200E+15,  3266., 0.0);
+{ 54310} GPN502H                     =       G3N502b +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 54311} GPN502H +GHO                =       GPN502m +      GHO2                                   : ARR( 0.128E-11,     0., 0.0);
+{ 54312} GPN502H +GHO                =       G3P500f                                               : ARR( 0.211E-10,     0., 0.0);
+{ 54313} GPN502H +GNO3               =       G3P500f +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 54314} GPN502H+HV               =       G3N400U +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 54315} GPN502H+HV               =       G1P504k +      GNO2                                   :  0.100E+01*SUN;
+{ 54316} GPN502H+HV               =       GPN400a +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 54317} G3N502b +GHO2               =  0.800GGN502g + 0.200GAN502h + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 54318} G3N502b +GNO                =       G3N400U +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 54319} G3N502b +GNO2               =       GPN502H                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 54320} G3N502b +GNO3               =       G3N400U +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 54321} G3N502b +MEPERO             =  0.685G3N400U + 0.315GAN502h + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 54322} G3N502b +PERO1              =  0.800G3N400U + 0.200GAN502h + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 54323} G3N502b +PERO2              =  0.750G3N400U + 0.250GAN502h + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 54324} G3N502b +PERO3              =  0.800G3N400U + 0.200GAN502h + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 54325} G3N502b +PERO5              =  0.650G3N400U + 0.350GAN502h + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 54326} G3N502b +PERO6              =  0.650G3N400U + 0.350GAN502h + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 54327} G3N502b +PERO9              =       G3N400U +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 54328} G3P500f +GHO2               =  0.800GPG500v + 0.200GPA500f + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 54329} G3P500f +GNO                =       GPN400a +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 54330} G3P500f +GNO2               =       GPP500N                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 54331} G3P500f +GNO3               =       GPN400a +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 54332} G3P500f +MEPERO             =  0.685GPN400a + 0.315GPA500f + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54333} G3P500f +PERO1              =  0.800GPN400a + 0.200GPA500f + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54334} G3P500f +PERO2              =  0.750GPN400a + 0.250GPA500f + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54335} G3P500f +PERO3              =  0.800GPN400a + 0.200GPA500f + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54336} G3P500f +PERO5              =  0.650GPN400a + 0.350GPA500f + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54337} G3P500f +PERO6              =  0.650GPN400a + 0.350GPA500f + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54338} G3P500f +PERO9              =       GPN400a +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 54339} GPN502I                     =       G3N5027 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 54340} GPN502I +GHO                =       GPN502P +      GHO2                                   : ARR( 0.135E-11,     0., 0.0);
+{ 54341} GPN502I +GHO                =       G1P5031                                               : ARR( 0.225E-17,    85., 2.0);
+{ 54342} GPN502I+HV               =       G1P505M +      GNO2                                   :  0.100E+01*SUN;
+{ 54343} GPN502I+HV               =       G3N2000 +      GPD3001 +      GNO2                    :  0.100E+01*SUN;
+{ 54344} GPN502I+HV               =       G1P506X +      GNO2                                   :  0.100E+01*SUN;
+{ 54345} GPN502I+HV               =       G3N5027 +      GNO2                                   :  0.100E+01*SUN;
+{ 54346} G1P506X                     =       G3N2000 +      GPD3001                                : ARR( 0.200E+15,  2059., 0.0);
+{ 54347} GPH502u                     =       G3H504E +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 54348} GPH502u +GHO                =       GPN502K +      GHO                                    : ARR( 0.995E-11,     0., 0.0);
+{ 54349} GPH502u +GHO                =       GPH504q +      GHO2                                   : ARR( 0.127E-11,     0., 0.0);
+{ 54350} GPH502u +GHO                =       G2P5045                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 54351} GPH502u+HV               =       G1P505M +      GHO                                    :  0.100E+01*SUN;
+{ 54352} GPH502u+HV               =       G3H2000 +      GPD3001 +      GNO2                    :  0.100E+01*SUN;
+{ 54353} GPH502u+HV               =       G1P506Y +      GNO2                                   :  0.100E+01*SUN;
+{ 54354} GPH502u+HV               =       G3H504E +      GNO2                                   :  0.100E+01*SUN;
+{ 54355} G1P506Y                     =       G3H2000 +      GPD3001                                : ARR( 0.200E+15,  2179., 0.0);
+{ 54356} GPN502J                     =       G3N501b +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 54357} GPN502J +GHO                =       GPN502K +      GHO2                                   : ARR( 0.268E-11,     0., 0.0);
+{ 54358} GPN502J +GHO                =       GPN501s +      GHO2                                   : ARR( 0.138E-11,     0., 0.0);
+{ 54359} GPN502J+HV               =       G3K2001 +      GPD3001 +      GNO2                    :  0.100E+01*SUN;
+{ 54360} GPN502J+HV               =       G1P506Z +      GNO2                                   :  0.100E+01*SUN;
+{ 54361} GPN502J+HV               =       G3N501b +      GNO2                                   :  0.100E+01*SUN;
+{ 54362} G1P506Z                     =       G3K2001 +      GPD3001                                : ARR( 0.200E+15,  2179., 0.0);
+{ 54363} GPN502K                     =       G3N502N +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 54364} GPN502K +GHO                =       GPN502m +      GHO2                                   : ARR( 0.128E-11,     0., 0.0);
+{ 54365} GPN502K +GHO                =       G3P4008 +      GCO                                    : ARR( 0.129E-10,     0., 0.0);
+{ 54366} GPN502K +GNO3               =       G3P4008 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 54367} GPN502K+HV               =       G3N502N +      GNO2                                   :  0.100E+01*SUN;
+{ 54368} GPN502K+HV               =       G1P506a +      GNO2                                   :  0.100E+01*SUN;
+{ 54369} GPN502K+HV               =       G3P4008 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 54370} GPN502K+HV               =       GPN400Q +      GCO                                    :  0.100E+01*SUN;
+{ 54371} GPN502K+HV               =       GPN3003 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 54372} G1P506a                     =       GPD3001 +      G3D2000                                : ARR( 0.200E+15,  2403., 0.0);
+{ 54373} GPG500C                     =       G3G500P +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 54374} GPG500C +GHO                =       GPG500w +      GHO2                                   : ARR( 0.134E-11,     0., 0.0);
+{ 54375} GPG500C +GHO                =       GPG500v +      GHO2                                   : ARR( 0.134E-11,     0., 0.0);
+{ 54376} GPG500C +GHO                =       G3P500A                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 54377} GPG500C+HV               =       GPN400Q +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 54378} GPG500C+HV               =       G1P504h +      GNO2                                   :  0.100E+01*SUN;
+{ 54379} GPG500C+HV               =       G3G500P +      GNO2                                   :  0.100E+01*SUN;
+{ 54380} GPA500D                     =       G3A500S +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 54381} GPA500D +GHO                =       GPA500i +      GHO2                                   : ARR( 0.107E-11,     0., 0.0);
+{ 54382} GPA500D +GHO                =       GPA500f +      GHO2                                   : ARR( 0.144E-11,     0., 0.0);
+{ 54383} GPA500D +GHO                =       GPN400Q +      GHO2    +      GCO2                    : ARR( 0.597E-12,     0., 0.0);
+{ 54384} GPA500D+HV               =       G1P504i +      GNO2                                   :  0.100E+01*SUN;
+{ 54385} GPA500D+HV               =       G3A500S +      GNO2                                   :  0.100E+01*SUN;
+{ 54386} GPP5008                     =       G3P500A +      GNO2                                   : ARR( 0.400E+16, 12800., 0.0);
+{ 54387} GPP5008 +GHO                =       GPP500N +      GHO2                                   : ARR( 0.262E-11,     0., 0.0);
+{ 54388} GPP5008 +GHO                =       G1P505c                                               : ARR( 0.438E-17,    85., 2.0);
+{ 54389} GPP5008+HV               =       G3P500A +      GNO2                                   :  0.200E+01*SUN;
+{ 54390} GPP5008+HV               =       G1P504l +      GNO2                                   :  0.100E+01*SUN;
+{ 54391} GPG4009                     =       G3G400C +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 54392} GPG4009 +GHO                =       GPG400E +      GHO2                                   : ARR( 0.131E-11,     0., 0.0);
+{ 54393} GPG4009 +GHO                =       G3P4008                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 54394} GPG4009+HV               =       GPD3001 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 54395} GPG4009+HV               =       G1P401M +      GNO2                                   :  0.100E+01*SUN;
+{ 54396} GPG4009+HV               =       G3G400C +      GNO2                                   :  0.100E+01*SUN;
+{ 54397} GGN501x +GHO                =       GGN502h +      GHO2                                   : ARR( 0.257E-11,     0., 0.0);
+{ 54398} GGN501x +GHO                =       GGN502H +      GHO2                                   : ARR( 0.132E-11,     0., 0.0);
+{ 54399} GGN501x +GHO                =       G3N501b                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 54400} GGN501x+HV               =       G3K2001 +      GGD3001 +      GNO2                    :  0.100E+01*SUN;
+{ 54401} GGN501x+HV               =       G1G504h +      GNO2                                   :  0.100E+01*SUN;
+{ 54402} GGN501x+HV               =       GND400L +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 54403} G1G504h                     =       G3K2001 +      GGD3001                                : ARR( 0.200E+15,  2179., 0.0);
+{ 54404} GAN5029 +GHO                =       GAN502i +      GHO2                                   : ARR( 0.267E-11,     0., 0.0);
+{ 54405} GAN5029 +GHO                =       GAN501p +      GHO2                                   : ARR( 0.101E-11,     0., 0.0);
+{ 54406} GAN5029 +GHO                =       GND400L +      GHO2    +      GCO2                    : ARR( 0.567E-12,     0., 0.0);
+{ 54407} GAN5029+HV               =       G3K2001 +      GAD3001 +      GNO2                    :  0.100E+01*SUN;
+{ 54408} GAN5029+HV               =       G1A505p +      GNO2                                   :  0.100E+01*SUN;
+{ 54409} G1A505p                     =       G3K2001 +      GAD3001                                : ARR( 0.200E+15,  2179., 0.0);
+{ 54410} GGH502X +GHO                =       GGK500a +      GHO                                    : ARR( 0.264E-10,     0., 0.0);
+{ 54411} GGH502X +GHO                =       GGH5033 +      GHO2                                   : ARR( 0.210E-10,     0., 0.0);
+{ 54412} GGH502X +GHO                =       G2G503M                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 54413} GGH502X +GHO                =       G3H501s                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 54414} GGH502X+HV               =       G3K2001 +      GGD3001 +      GHO                     :  0.100E+01*SUN;
+{ 54415} GGH502X+HV               =       G1G504h +      GHO                                    :  0.100E+01*SUN;
+{ 54416} GGH502X+HV               =       GHD400G +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 54417} G2G503M +GNO                =       G1G504h +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 54418} G2G503M +GNO                =       GGN501x                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 54419} G2G503M +GHO2               =       GGH502X                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 54420} G2G503M +GNO3               =       G1G504h +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 54421} G2G503M +MEPERO             =  0.340G1G504h + 0.330GGK500W + 0.330GGK500a                 : ARR( 0.565E-13,  -845., 0.0);
+{ 54422} G2G503M +PERO1              =  0.460G1G504h + 0.270GGK500W + 0.270GGK500a                 : ARR( 0.434E-13,  -900., 0.0);
+{ 54423} G2G503M +PERO2              =  0.400G1G504h + 0.300GGK500W + 0.300GGK500a                 : ARR( 0.162E-13, -1400., 0.0);
+{ 54424} G2G503M +PERO3              =  0.460G1G504h + 0.270GGK500W + 0.270GGK500a                 : ARR( 0.488E-13, -1250., 0.0);
+{ 54425} G2G503M +PERO5              =  0.460G1G504h + 0.270GGK500W + 0.270GGK500a                 : ARR( 0.183E-11,   450., 0.0);
+{ 54426} G2G503M +PERO6              =  0.300G1G504h + 0.350GGK500W + 0.350GGK500a                 : ARR( 0.168E-13, -1300., 0.0);
+{ 54427} G2G503M +PERO9              =  0.650G1G504h + 0.350GGK500a                                : ARR( 0.100E-10,     0., 0.0);
+{ 54428} GAH502m +GHO                =       GAH504W +      GHO2                                   : ARR( 0.249E-11,     0., 0.0);
+{ 54429} GAH502m +GHO                =       GAK500a +      GHO                                    : ARR( 0.256E-10,     0., 0.0);
+{ 54430} GAH502m +GHO                =       GAH503I +      GHO2                                   : ARR( 0.150E-10,     0., 0.0);
+{ 54431} GAH502m +GHO                =       G2A504N                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 54432} GAH502m+HV               =       G3K2001 +      GAD3001 +      GHO                     :  0.100E+01*SUN;
+{ 54433} GAH502m+HV               =       G1A505p +      GHO                                    :  0.100E+01*SUN;
+{ 54434} G2A504N +GNO                =       G1A505p +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 54435} G2A504N +GNO                =       GAN5029                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 54436} G2A504N +GHO2               =       GAH502m                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 54437} G2A504N +GNO3               =       G1A505p +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 54438} G2A504N +MEPERO             =  0.340G1A505p + 0.330GAK500Z + 0.330GAK500a                 : ARR( 0.565E-13,  -845., 0.0);
+{ 54439} G2A504N +PERO1              =  0.460G1A505p + 0.270GAK500Z + 0.270GAK500a                 : ARR( 0.434E-13,  -900., 0.0);
+{ 54440} G2A504N +PERO2              =  0.400G1A505p + 0.300GAK500Z + 0.300GAK500a                 : ARR( 0.162E-13, -1400., 0.0);
+{ 54441} G2A504N +PERO3              =  0.460G1A505p + 0.270GAK500Z + 0.270GAK500a                 : ARR( 0.488E-13, -1250., 0.0);
+{ 54442} G2A504N +PERO5              =  0.460G1A505p + 0.270GAK500Z + 0.270GAK500a                 : ARR( 0.183E-11,   450., 0.0);
+{ 54443} G2A504N +PERO6              =  0.300G1A505p + 0.350GAK500Z + 0.350GAK500a                 : ARR( 0.168E-13, -1300., 0.0);
+{ 54444} G2A504N +PERO9              =  0.650G1A505p + 0.350GAK500a                                : ARR( 0.100E-10,     0., 0.0);
+{ 54445} GPH502v                     =       G3H501s +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 54446} GPH502v +GHO                =       GPK500c +      GHO                                    : ARR( 0.265E-10,     0., 0.0);
+{ 54447} GPH502v +GHO                =       GPH503O +      GHO2                                   : ARR( 0.210E-10,     0., 0.0);
+{ 54448} GPH502v +GHO                =       G2P504m                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 54449} GPH502v+HV               =       G3K2001 +      GPD3001 +      GHO                     :  0.100E+01*SUN;
+{ 54450} GPH502v+HV               =       G1P506Z +      GHO                                    :  0.100E+01*SUN;
+{ 54451} GPH502v+HV               =       G3H501s +      GNO2                                   :  0.100E+01*SUN;
+{ 54452} G2P504m +GNO                =       G1P506Z +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 54453} G2P504m +GNO                =       GPN502J                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 54454} G2P504m +GHO2               =       GPH502v                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 54455} G2P504m +GNO3               =       G1P506Z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 54456} G2P504m +MEPERO             =  0.340G1P506Z + 0.330GPK500W + 0.330GPK500c                 : ARR( 0.565E-13,  -845., 0.0);
+{ 54457} G2P504m +PERO1              =  0.460G1P506Z + 0.270GPK500W + 0.270GPK500c                 : ARR( 0.434E-13,  -900., 0.0);
+{ 54458} G2P504m +PERO2              =  0.400G1P506Z + 0.300GPK500W + 0.300GPK500c                 : ARR( 0.162E-13, -1400., 0.0);
+{ 54459} G2P504m +PERO3              =  0.460G1P506Z + 0.270GPK500W + 0.270GPK500c                 : ARR( 0.488E-13, -1250., 0.0);
+{ 54460} G2P504m +PERO5              =  0.460G1P506Z + 0.270GPK500W + 0.270GPK500c                 : ARR( 0.183E-11,   450., 0.0);
+{ 54461} G2P504m +PERO6              =  0.300G1P506Z + 0.350GPK500W + 0.350GPK500c                 : ARR( 0.168E-13, -1300., 0.0);
+{ 54462} G2P504m +PERO9              =  0.650G1P506Z + 0.350GPK500c                                : ARR( 0.100E-10,     0., 0.0);
+{ 54463} GAK500Z +GHO                =       GAD500M +      GHO2                                   : ARR( 0.255E-11,     0., 0.0);
+{ 54464} GAK500Z +GHO                =       GAK500a +      GHO2                                   : ARR( 0.653E-11,     0., 0.0);
+{ 54465} GAK500Z +GHO                =       GAK500c +      GHO2                                   : ARR( 0.153E-10,     0., 0.0);
+{ 54466} GAK500Z+HV               =       G3K2001 +      GAD3001 +      GHO2                    :  0.100E+01*SUN;
+{ 54467} GGK500a +GHO                =       GGD500M +      GHO2                                   : ARR( 0.252E-11,     0., 0.0);
+{ 54468} GGK500a +GHO                =       GGK500c +      GHO2                                   : ARR( 0.394E-11,     0., 0.0);
+{ 54469} GGK500a +GHO                =       G3K500h                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 54470} GGK500a+HV               =       G3K2001 +      G3G3002                                :  0.100E+01*SUN;
+{ 54471} GGK500a+HV               =       GDK4009 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 54472} GAK500a +GHO                =       GAD500O +      GHO2                                   : ARR( 0.257E-11,     0., 0.0);
+{ 54473} GAK500a +GHO                =       GAK500X +      GHO2                                   : ARR( 0.297E-11,     0., 0.0);
+{ 54474} GAK500a +GHO                =       GDK4009 +      GHO2    +      GCO2                    : ARR( 0.545E-12,     0., 0.0);
+{ 54475} GAK500a+HV               =       G3K2001 +      G3A3002                                :  0.100E+01*SUN;
+{ 54476} GPK500c                     =       G3K500h +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 54477} GPK500c +GHO                =       GPD500M +      GHO2                                   : ARR( 0.256E-11,     0., 0.0);
+{ 54478} GPK500c +GHO                =       GPK500b +      GHO2                                   : ARR( 0.400E-11,     0., 0.0);
+{ 54479} GPK500c+HV               =       G3K2001 +      G3P3002                                :  0.100E+01*SUN;
+{ 54480} GPK500c+HV               =       G3K500h +      GNO2                                   :  0.100E+01*SUN;
+{ 54481} GAH502n +GHO                =       GAH504X +      GHO2                                   : ARR( 0.407E-11,     0., 0.0);
+{ 54482} GAH502n +GHO                =       GAH503I +      GHO2                                   : ARR( 0.331E-10,     0., 0.0);
+{ 54483} GAH502n +GHO                =       GAK500W +      GHO                                    : ARR( 0.254E-10,     0., 0.0);
+{ 54484} GAH502n +GHO                =       G2A504O                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 54485} GAH502n+HV               =       G1A505G +      GHO                                    :  0.100E+01*SUN;
+{ 54486} GAH502n+HV               =       GHD400A +      GCO2                                   :  0.100E+01*SUN;
+{ 54487} G2A504O +GNO                =       G1A505G +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 54488} G2A504O +GNO                =       GAN501o                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 54489} G2A504O +GHO2               =       GAH502n                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 54490} G2A504O +GNO3               =       G1A505G +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 54491} G2A504O +MEPERO             =  0.340G1A505G + 0.330GAK500b + 0.330GAK500W                 : ARR( 0.565E-13,  -845., 0.0);
+{ 54492} G2A504O +PERO1              =  0.460G1A505G + 0.270GAK500b + 0.270GAK500W                 : ARR( 0.434E-13,  -900., 0.0);
+{ 54493} G2A504O +PERO2              =  0.400G1A505G + 0.300GAK500b + 0.300GAK500W                 : ARR( 0.162E-13, -1400., 0.0);
+{ 54494} G2A504O +PERO3              =  0.460G1A505G + 0.270GAK500b + 0.270GAK500W                 : ARR( 0.488E-13, -1250., 0.0);
+{ 54495} G2A504O +PERO5              =  0.460G1A505G + 0.270GAK500b + 0.270GAK500W                 : ARR( 0.183E-11,   450., 0.0);
+{ 54496} G2A504O +PERO6              =  0.300G1A505G + 0.350GAK500b + 0.350GAK500W                 : ARR( 0.168E-13, -1300., 0.0);
+{ 54497} G2A504O +PERO9              =  0.650G1A505G + 0.350GAK500W                                : ARR( 0.100E-10,     0., 0.0);
+{ 54498} GAK500b +GHO                =       GAD500N +      GHO2                                   : ARR( 0.411E-11,     0., 0.0);
+{ 54499} GAK500b +GHO                =       GAK500c +      GHO2                                   : ARR( 0.334E-10,     0., 0.0);
+{ 54500} GAK500b +GHO                =       GAK500W +      GHO2                                   : ARR( 0.642E-11,     0., 0.0);
+{ 54501} GAK500b+HV               =       GDO4006 +      GCO2                                   :  0.100E+01*SUN;
+{ 54502} GGK500b +GHO                =       GGD500H +      GHO2                                   : ARR( 0.129E-10,     0., 0.0);
+{ 54503} GGK500b +GHO                =       GGK500c +      GHO2                                   : ARR( 0.636E-11,     0., 0.0);
+{ 54504} GGK500b +GHO                =       G3K500p                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 54505} GGK500b+HV               =       G3K3003 +      GCO     +      GHO2    +      GCO      :  0.100E+01*SUN;
+{ 54506} GGK500b+HV               =       GAK4007 +      GCO2                                   :  0.100E+01*SUN;
+{ 54507} GGH400i +GHO                =       GGH400p +      GHO2                                   : ARR( 0.221E-10,     0., 0.0);
+{ 54508} GGH400i +GHO                =       GGD4007 +      GHO                                    : ARR( 0.279E-10,     0., 0.0);
+{ 54509} GGH400i +GHO                =       G3G400G                                               : ARR( 0.231E-10,     0., 0.0);
+{ 54510} GGH400i +GNO3               =       G3G400G +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 54511} GGH400i+HV               =       GHD3004 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 54512} GGH400i+HV               =       G1G400y +      GHO                                    :  0.100E+01*SUN;
+{ 54513} GGH400i+HV               =       GGD3001 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 54514} G3G400G +GHO2               =  0.800GGG4009 + 0.200GAG400J + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 54515} G3G400G +GNO                =       GGD3001 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 54516} G3G400G +GNO2               =       GPG400J                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 54517} G3G400G +GNO3               =       GGD3001 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 54518} G3G400G +MEPERO             =  0.685GGD3001 + 0.315GAG400J + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54519} G3G400G +PERO1              =  0.800GGD3001 + 0.200GAG400J + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54520} G3G400G +PERO2              =  0.750GGD3001 + 0.250GAG400J + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54521} G3G400G +PERO3              =  0.800GGD3001 + 0.200GAG400J + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54522} G3G400G +PERO5              =  0.650GGD3001 + 0.350GAG400J + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54523} G3G400G +PERO6              =  0.650GGD3001 + 0.350GAG400J + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54524} G3G400G +PERO9              =       GGD3001 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 54525} GGH400j +GHO                =       GGH400p +      GHO2                                   : ARR( 0.128E-10,     0., 0.0);
+{ 54526} GGH400j +GHO                =       GGK4009 +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 54527} GGH400j +GHO                =       G2G400s                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 54528} GGH400j +GHO                =       G3H400s                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 54529} GGH400j+HV               =       G1G4013 +      GHO                                    :  0.100E+01*SUN;
+{ 54530} GGH400j+HV               =       GAH3002 +      GCO2                                   :  0.100E+01*SUN;
+{ 54531} G2G400s +GNO                =       G1G4013 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 54532} G2G400s +GNO                =       GGN400Y                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 54533} G2G400s +GHO2               =       GGH400j                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 54534} G2G400s +GNO3               =       G1G4013 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 54535} G2G400s +MEPERO             =  0.340G1G4013 + 0.330GGK4007 + 0.330GGK4009                 : ARR( 0.565E-13,  -845., 0.0);
+{ 54536} G2G400s +PERO1              =  0.460G1G4013 + 0.270GGK4007 + 0.270GGK4009                 : ARR( 0.434E-13,  -900., 0.0);
+{ 54537} G2G400s +PERO2              =  0.400G1G4013 + 0.300GGK4007 + 0.300GGK4009                 : ARR( 0.162E-13, -1400., 0.0);
+{ 54538} G2G400s +PERO3              =  0.460G1G4013 + 0.270GGK4007 + 0.270GGK4009                 : ARR( 0.488E-13, -1250., 0.0);
+{ 54539} G2G400s +PERO5              =  0.460G1G4013 + 0.270GGK4007 + 0.270GGK4009                 : ARR( 0.183E-11,   450., 0.0);
+{ 54540} G2G400s +PERO6              =  0.300G1G4013 + 0.350GGK4007 + 0.350GGK4009                 : ARR( 0.168E-13, -1300., 0.0);
+{ 54541} G2G400s +PERO9              =  0.650G1G4013 + 0.350GGK4009                                : ARR( 0.100E-10,     0., 0.0);
+{ 54542} GAH400o +GHO                =       GAH400s +      GHO2                                   : ARR( 0.149E-10,     0., 0.0);
+{ 54543} GAH400o +GHO                =       GAD4006 +      GHO                                    : ARR( 0.254E-10,     0., 0.0);
+{ 54544} GAH400o +GHO                =       G3A400I                                               : ARR( 0.210E-10,     0., 0.0);
+{ 54545} GAH400o +GHO                =       G2A4017                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 54546} GAH400o +GNO3               =       G3A400I +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 54547} GAH400o+HV               =       G1A4018 +      GHO                                    :  0.100E+01*SUN;
+{ 54548} GAH400o+HV               =       GAD3001 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 54549} G3A400I +GHO2               =  0.800GAG400I + 0.200GAA400C + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 54550} G3A400I +GNO                =       GAD3001 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 54551} G3A400I +GNO2               =       GPA400N                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 54552} G3A400I +GNO3               =       GAD3001 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 54553} G3A400I +MEPERO             =  0.685GAD3001 + 0.315GAA400C + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54554} G3A400I +PERO1              =  0.800GAD3001 + 0.200GAA400C + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54555} G3A400I +PERO2              =  0.750GAD3001 + 0.250GAA400C + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54556} G3A400I +PERO3              =  0.800GAD3001 + 0.200GAA400C + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54557} G3A400I +PERO5              =  0.650GAD3001 + 0.350GAA400C + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54558} G3A400I +PERO6              =  0.650GAD3001 + 0.350GAA400C + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54559} G3A400I +PERO9              =       GAD3001 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 54560} G2A4017 +GNO                =       G1A4018 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 54561} G2A4017 +GNO                =       GAN400a                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 54562} G2A4017 +GHO2               =       GAH400o                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 54563} G2A4017 +GNO3               =       G1A4018 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 54564} G2A4017 +MEPERO             =  0.340G1A4018 + 0.330GAD4007 + 0.330GAD4006                 : ARR( 0.565E-13,  -845., 0.0);
+{ 54565} G2A4017 +PERO1              =  0.460G1A4018 + 0.270GAD4007 + 0.270GAD4006                 : ARR( 0.434E-13,  -900., 0.0);
+{ 54566} G2A4017 +PERO2              =  0.400G1A4018 + 0.300GAD4007 + 0.300GAD4006                 : ARR( 0.162E-13, -1400., 0.0);
+{ 54567} G2A4017 +PERO3              =  0.460G1A4018 + 0.270GAD4007 + 0.270GAD4006                 : ARR( 0.488E-13, -1250., 0.0);
+{ 54568} G2A4017 +PERO5              =  0.460G1A4018 + 0.270GAD4007 + 0.270GAD4006                 : ARR( 0.183E-11,   450., 0.0);
+{ 54569} G2A4017 +PERO6              =  0.300G1A4018 + 0.350GAD4007 + 0.350GAD4006                 : ARR( 0.168E-13, -1300., 0.0);
+{ 54570} G2A4017 +PERO9              =  0.650G1A4018 + 0.350GAD4006                                : ARR( 0.100E-10,     0., 0.0);
+{ 54571} GPH400p                     =       G3H400k +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 54572} GPH400p +GHO                =       GPH400t +      GHO2                                   : ARR( 0.200E-10,     0., 0.0);
+{ 54573} GPH400p +GHO                =       GPD4007 +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 54574} GPH400p +GHO                =       G3P400I                                               : ARR( 0.208E-10,     0., 0.0);
+{ 54575} GPH400p +GHO                =       G2P401G                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 54576} GPH400p +GNO3               =       G3P400I +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 54577} GPH400p+HV               =       G3H400k +      GNO2                                   :  0.100E+01*SUN;
+{ 54578} GPH400p+HV               =       G1P400r +      GHO                                    :  0.100E+01*SUN;
+{ 54579} GPH400p+HV               =       GPD3001 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 54580} G3P400I +GHO2               =  0.800GPG400I + 0.200GPA400M + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 54581} G3P400I +GNO                =       GPD3001 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 54582} G3P400I +GNO2               =       GPP400D                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 54583} G3P400I +GNO3               =       GPD3001 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 54584} G3P400I +MEPERO             =  0.685GPD3001 + 0.315GPA400M + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54585} G3P400I +PERO1              =  0.800GPD3001 + 0.200GPA400M + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54586} G3P400I +PERO2              =  0.750GPD3001 + 0.250GPA400M + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54587} G3P400I +PERO3              =  0.800GPD3001 + 0.200GPA400M + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54588} G3P400I +PERO5              =  0.650GPD3001 + 0.350GPA400M + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54589} G3P400I +PERO6              =  0.650GPD3001 + 0.350GPA400M + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54590} G3P400I +PERO9              =       GPD3001 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 54591} G2P401G +GNO                =       G1P400r +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 54592} G2P401G +GNO                =       GPN400Q                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 54593} G2P401G +GHO2               =       GPH400p                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 54594} G2P401G +GNO3               =       G1P400r +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 54595} G2P401G +MEPERO             =  0.340G1P400r + 0.330GPD4006 + 0.330GPD4007                 : ARR( 0.565E-13,  -845., 0.0);
+{ 54596} G2P401G +PERO1              =  0.460G1P400r + 0.270GPD4006 + 0.270GPD4007                 : ARR( 0.434E-13,  -900., 0.0);
+{ 54597} G2P401G +PERO2              =  0.400G1P400r + 0.300GPD4006 + 0.300GPD4007                 : ARR( 0.162E-13, -1400., 0.0);
+{ 54598} G2P401G +PERO3              =  0.460G1P400r + 0.270GPD4006 + 0.270GPD4007                 : ARR( 0.488E-13, -1250., 0.0);
+{ 54599} G2P401G +PERO5              =  0.460G1P400r + 0.270GPD4006 + 0.270GPD4007                 : ARR( 0.183E-11,   450., 0.0);
+{ 54600} G2P401G +PERO6              =  0.300G1P400r + 0.350GPD4006 + 0.350GPD4007                 : ARR( 0.168E-13, -1300., 0.0);
+{ 54601} G2P401G +PERO9              =  0.650G1P400r + 0.350GPD4007                                : ARR( 0.100E-10,     0., 0.0);
+{ 54602} GGD500G +GHO                =       G3G3000 + 2.000GCO                                    : ARR( 0.131E-10,     0., 0.0);
+{ 54603} GGD500G +GHO                =       G3D500D                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 54604} GGD500G +GNO3               =       G3G3000 +      GHNO3   + 2.000GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 54605} GGD500G+HV               =       G2D400F +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 54606} GGD500G+HV               =       G3G3000 +      G3D2000                                :  0.100E+01*SUN;
+{ 54607} GGD500G+HV               =       G3G3000 +      GCO     +      GCO     +      GHO2     :  0.100E+01*SUN;
+{ 54608} GGD500G+HV               =       GGD4004 +      GCO                                    :  0.100E+01*SUN;
+{ 54609} GGD500G+HV               =       GGD3000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 54610} GGH502Y +GHO                =       GGN501z +      GHO                                    : ARR( 0.511E-10,     0., 0.0);
+{ 54611} GGH502Y +GHO                =       GGH504o +      GHO2                                   : ARR( 0.630E-11,     0., 0.0);
+{ 54612} GGH502Y +GHO                =       G2G501g                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 54613} GGH502Y +GHO                =       G3H504I                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 54614} GGH502Y+HV               =       G1G5024 +      GHO                                    :  0.100E+01*SUN;
+{ 54615} GGH502Y+HV               =       G3H3003 +      GGD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 54616} GGH502Y+HV               =       G1G504i +      GNO2                                   :  0.100E+01*SUN;
+{ 54617} GGH502Y+HV               =       GHD400F +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 54618} G3H504I +GHO2               =  0.800GGH502Y + 0.200GAH502o + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 54619} G3H504I +GNO                =       GHD400F + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 54620} G3H504I +GNO2               =       GPH502w                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 54621} G3H504I +GNO3               =       GHD400F + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 54622} G3H504I +MEPERO             =  0.685GHD400F + 0.315GAH502o + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54623} G3H504I +PERO1              =  0.800GHD400F + 0.200GAH502o + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54624} G3H504I +PERO2              =  0.750GHD400F + 0.250GAH502o + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54625} G3H504I +PERO3              =  0.800GHD400F + 0.200GAH502o + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54626} G3H504I +PERO5              =  0.650GHD400F + 0.350GAH502o + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54627} G3H504I +PERO6              =  0.650GHD400F + 0.350GAH502o + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54628} G3H504I +PERO9              =       GHD400F +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 54629} G1G504i                     =       GGD500D +      GHO                                    : ARR( 0.160E+12,  3634., 0.0);
+{ 54630} G1G504i                     =       G3H3003 +      GGD2000                                : ARR( 0.200E+15,  5359., 0.0);
+{ 54631} GGN501y +GHO                =       GGN501z +      GHO2                                   : ARR( 0.129E-10,     0., 0.0);
+{ 54632} GGN501y +GHO                =       GGN502d +      GHO2                                   : ARR( 0.637E-11,     0., 0.0);
+{ 54633} GGN501y +GHO                =       G3N502I                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 54634} GGN501y+HV               =       G3K3003 +      GGD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 54635} GGN501y+HV               =       G1G503Z +      GNO2                                   :  0.100E+01*SUN;
+{ 54636} GGN501y+HV               =       GDK4007 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 54637} GGN501z +GHO                =       GGN502l +      GHO2                                   : ARR( 0.404E-11,     0., 0.0);
+{ 54638} GGN501z +GHO                =       G3G500W                                               : ARR( 0.694E-10,     0., 0.0);
+{ 54639} GGN501z +GNO3               =       G3G500W +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 54640} GGN501z+HV               =       GDD4004 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 54641} GGN501z+HV               =       G1G504j +      GNO2                                   :  0.100E+01*SUN;
+{ 54642} GGN501z+HV               =       G3G3001 +      GDD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 54643} GGN501z+HV               =       GGN400Z +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 54644} G3G500W +GHO2               =  0.800GGG500M + 0.200GAG500h + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 54645} G3G500W +GNO                =       GGN400Z +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 54646} G3G500W +GNO2               =       GPG500k                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 54647} G3G500W +GNO3               =       GGN400Z +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 54648} G3G500W +MEPERO             =  0.685GGN400Z + 0.315GAG500h + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54649} G3G500W +PERO1              =  0.800GGN400Z + 0.200GAG500h + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54650} G3G500W +PERO2              =  0.750GGN400Z + 0.250GAG500h + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54651} G3G500W +PERO3              =  0.800GGN400Z + 0.200GAG500h + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54652} G3G500W +PERO5              =  0.650GGN400Z + 0.350GAG500h + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54653} G3G500W +PERO6              =  0.650GGN400Z + 0.350GAG500h + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54654} G3G500W +PERO9              =       GGN400Z +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 54655} G1G504j                     =       G3G500Q                                               : ARR( 0.800E+11,  4246., 0.0);
+{ 54656} G1G504j                     =       GCO     +      GDD4004 +      GHO2                    : ARR( 0.200E+15,  6793., 0.0);
+{ 54657} G1G504j                     =       GGD2000 +      G3D3001                                : ARR( 0.200E+15,  6105., 0.0);
+{ 54658} GGN400Z +GHO                =       G3G3001 +      GCO                                    : ARR( 0.127E-10,     0., 0.0);
+{ 54659} GGN400Z +GHO                =       G3N400Y                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 54660} GGN400Z +GNO3               =       G3G3001 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 54661} GGN400Z+HV               =       GDD3002 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 54662} GGN400Z+HV               =       G1G4014 +      GNO2                                   :  0.100E+01*SUN;
+{ 54663} GGN400Z+HV               =       G3G3001 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 54664} GGN400Z+HV               =       GGN3005 +      GCO                                    :  0.100E+01*SUN;
+{ 54665} GGN400Z+HV               =       GGN2000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 54666} G1G4014                     =       GGD2000 +      G3D2000                                : ARR( 0.200E+15,  5620., 0.0);
+{ 54667} GGH502Z +GHO                =       GGD500H +      GHO                                    : ARR( 0.511E-10,     0., 0.0);
+{ 54668} GGH502Z +GHO                =       GGH504q +      GHO2                                   : ARR( 0.630E-11,     0., 0.0);
+{ 54669} GGH502Z +GHO                =       G2G501h                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 54670} GGH502Z +GHO                =       G3H504J                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 54671} GGH502Z+HV               =       G1G5025 +      GHO                                    :  0.100E+01*SUN;
+{ 54672} GGH502Z+HV               =       G3H3003 +      GCO     +      GHO2    +      GCO      :  0.100E+01*SUN;
+{ 54673} GGH502Z+HV               =       GAH400I +      GCO2                                   :  0.100E+01*SUN;
+{ 54674} G3H504J +GHO2               =  0.800GGH502Z + 0.200GAH502p + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 54675} G3H504J +GNO                =       G3H3003 +      GNO2    +      GCO2    +      GCO      : ARR( 0.810E-11,  -270., 0.0);
+{ 54676} G3H504J +GNO2               =       GPH502x                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 54677} G3H504J +GNO3               =       G3H3003 +      GNO2    +      GCO2    +      GCO      : ARR( 0.500E-11,     0., 0.0);
+{ 54678} G3H504J +MEPERO             =  0.685G3H3003 + 0.315GAH502p + 0.685GCO2    + 0.685GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 54679} G3H504J +PERO1              =  0.800G3H3003 + 0.200GAH502p + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 54680} G3H504J +PERO2              =  0.750G3H3003 + 0.250GAH502p + 0.750GCO2    + 0.750GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 54681} G3H504J +PERO3              =  0.800G3H3003 + 0.200GAH502p + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 54682} G3H504J +PERO5              =  0.650G3H3003 + 0.350GAH502p + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 54683} G3H504J +PERO6              =  0.650G3H3003 + 0.350GAH502p + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 54684} G3H504J +PERO9              =       G3H3003 +      GCO2    +      GCO                     : ARR( 0.500E-11,  -500., 0.0);
+{ 54685} GGD500H +GHO                =       GGD500O +      GHO2                                   : ARR( 0.404E-11,     0., 0.0);
+{ 54686} GGD500H +GHO                =       G3G500X                                               : ARR( 0.694E-10,     0., 0.0);
+{ 54687} GGD500H +GNO3               =       G3G500X +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 54688} GGD500H+HV               =       GAD4004 +      GCO2                                   :  0.100E+01*SUN;
+{ 54689} GGD500H+HV               =       GCO     +      G3D3001 +      GHO2    +      GCO      :  0.100E+01*SUN;
+{ 54690} GGD500H+HV               =       GGD4008 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 54691} G3G500X +GHO2               =  0.800GGG500N + 0.200GAG500j + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 54692} G3G500X +GNO                =       GGD4008 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 54693} G3G500X +GNO2               =       GPG500m                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 54694} G3G500X +GNO3               =       GGD4008 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 54695} G3G500X +MEPERO             =  0.685GGD4008 + 0.315GAG500j + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54696} G3G500X +PERO1              =  0.800GGD4008 + 0.200GAG500j + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54697} G3G500X +PERO2              =  0.750GGD4008 + 0.250GAG500j + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54698} G3G500X +PERO3              =  0.800GGD4008 + 0.200GAG500j + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54699} G3G500X +PERO5              =  0.650GGD4008 + 0.350GAG500j + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54700} G3G500X +PERO6              =  0.650GGD4008 + 0.350GAG500j + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54701} G3G500X +PERO9              =       GGD4008 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 54702} GAH502o +GHO                =       GAH504s +      GHO2                                   : ARR( 0.635E-11,     0., 0.0);
+{ 54703} GAH502o +GHO                =       GAN502A +      GHO                                    : ARR( 0.516E-10,     0., 0.0);
+{ 54704} GAH502o +GHO                =       G2A502E                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 54705} GAH502o+HV               =       G1A505q +      GNO2                                   :  0.100E+01*SUN;
+{ 54706} GAH502o+HV               =       G3A3001 +      GHD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 54707} GAH502o+HV               =       G1A502e +      GHO                                    :  0.100E+01*SUN;
+{ 54708} G1A505q                     =       GAD500F +      GHO                                    : ARR( 0.160E+12,  3634., 0.0);
+{ 54709} G1A505q                     =       GAD2000 +      G3H3003                                : ARR( 0.200E+15,  5359., 0.0);
+{ 54710} GAN502A +GHO                =       GAN502p +      GHO2                                   : ARR( 0.387E-11,     0., 0.0);
+{ 54711} GAN502A +GHO                =       G3A500c                                               : ARR( 0.665E-10,     0., 0.0);
+{ 54712} GAN502A +GNO3               =       G3A500c +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 54713} GAN502A+HV               =       G1A505r +      GNO2                                   :  0.100E+01*SUN;
+{ 54714} GAN502A+HV               =       G3A3001 +      GDD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 54715} GAN502A+HV               =       GAN400b +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 54716} G3A500c +GHO2               =  0.800GAG500r + 0.200GAA500U + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 54717} G3A500c +GNO                =       GAN400b +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 54718} G3A500c +GNO2               =       GPA500t                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 54719} G3A500c +GNO3               =       GAN400b +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 54720} G3A500c +MEPERO             =  0.685GAN400b + 0.315GAA500U + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54721} G3A500c +PERO1              =  0.800GAN400b + 0.200GAA500U + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54722} G3A500c +PERO2              =  0.750GAN400b + 0.250GAA500U + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54723} G3A500c +PERO3              =  0.800GAN400b + 0.200GAA500U + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54724} G3A500c +PERO5              =  0.650GAN400b + 0.350GAA500U + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54725} G3A500c +PERO6              =  0.650GAN400b + 0.350GAA500U + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54726} G3A500c +PERO9              =       GAN400b +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 54727} G1A505r                     =       G3A500T                                               : ARR( 0.800E+11,  4246., 0.0);
+{ 54728} G1A505r                     =       GCO     +      GDD4004 +      GHO                     : ARR( 0.200E+15,  6762., 0.0);
+{ 54729} G1A505r                     =       GAD2000 +      G3D3001                                : ARR( 0.200E+15,  6105., 0.0);
+{ 54730} GAH502p +GHO                =       GAH504t +      GHO2                                   : ARR( 0.635E-11,     0., 0.0);
+{ 54731} GAH502p +GHO                =       GAD500J +      GHO                                    : ARR( 0.516E-10,     0., 0.0);
+{ 54732} GAH502p +GHO                =       G2A502F                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 54733} GAH502p+HV               =       GHD400F +      GCO2                                   :  0.100E+01*SUN;
+{ 54734} GAH502p+HV               =       GCO     +      G3H3003 +      GHO     +      GCO      :  0.100E+01*SUN;
+{ 54735} GAH502p+HV               =       G1A502f +      GHO                                    :  0.100E+01*SUN;
+{ 54736} GAD500J +GHO                =       GAD500P +      GHO2                                   : ARR( 0.387E-11,     0., 0.0);
+{ 54737} GAD500J +GHO                =       G3A500d                                               : ARR( 0.665E-10,     0., 0.0);
+{ 54738} GAD500J +GNO3               =       G3A500d +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 54739} GAD500J+HV               =       GDD4004 +      GCO2                                   :  0.100E+01*SUN;
+{ 54740} GAD500J+HV               =       GCO     +      G3D3001 +      GHO     +      GCO      :  0.100E+01*SUN;
+{ 54741} GAD500J+HV               =       GAD4008 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 54742} G3A500d +GHO2               =  0.800GAG500s + 0.200GAA500X + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 54743} G3A500d +GNO                =       GAD4008 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 54744} G3A500d +GNO2               =       GPA500v                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 54745} G3A500d +GNO3               =       GAD4008 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 54746} G3A500d +MEPERO             =  0.685GAD4008 + 0.315GAA500X + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54747} G3A500d +PERO1              =  0.800GAD4008 + 0.200GAA500X + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54748} G3A500d +PERO2              =  0.750GAD4008 + 0.250GAA500X + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54749} G3A500d +PERO3              =  0.800GAD4008 + 0.200GAA500X + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54750} G3A500d +PERO5              =  0.650GAD4008 + 0.350GAA500X + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54751} G3A500d +PERO6              =  0.650GAD4008 + 0.350GAA500X + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54752} G3A500d +PERO9              =       GAD4008 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 54753} GPH502w                     =       G3H504I +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 54754} GPH502w +GHO                =       GPN502L +      GHO                                    : ARR( 0.512E-10,     0., 0.0);
+{ 54755} GPH502w +GHO                =       GPH5054 +      GHO2                                   : ARR( 0.630E-11,     0., 0.0);
+{ 54756} GPH502w +GHO                =       G2P502L                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 54757} GPH502w+HV               =       G1P502t +      GHO                                    :  0.100E+01*SUN;
+{ 54758} GPH502w+HV               =       G3H3003 +      GPD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 54759} GPH502w+HV               =       G1P506b +      GNO2                                   :  0.100E+01*SUN;
+{ 54760} GPH502w+HV               =       G3H504I +      GNO2                                   :  0.100E+01*SUN;
+{ 54761} G1P506b                     =       GPD500D +      GHO                                    : ARR( 0.160E+12,  3634., 0.0);
+{ 54762} G1P506b                     =       G3H3003 +      GPD2000                                : ARR( 0.200E+15,  5359., 0.0);
+{ 54763} GPN502L                     =       G3N502c +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 54764} GPN502L +GHO                =       GPN502s +      GHO2                                   : ARR( 0.384E-11,     0., 0.0);
+{ 54765} GPN502L +GHO                =       G3P500g                                               : ARR( 0.660E-10,     0., 0.0);
+{ 54766} GPN502L +GNO3               =       G3P500g +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 54767} GPN502L+HV               =       G3N502c +      GNO2                                   :  0.100E+01*SUN;
+{ 54768} GPN502L+HV               =       G1P506c +      GNO2                                   :  0.100E+01*SUN;
+{ 54769} GPN502L+HV               =       G3P3001 +      GDD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 54770} GPN502L+HV               =       GPN400b +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 54771} G3N502c +GHO2               =  0.800GGN501z + 0.200GAN502A + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 54772} G3N502c +GNO                =       GDD4004 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 54773} G3N502c +GNO2               =       GPN502L                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 54774} G3N502c +GNO3               =       GDD4004 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 54775} G3N502c +MEPERO             =  0.685GDD4004 + 0.315GAN502A + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54776} G3N502c +PERO1              =  0.800GDD4004 + 0.200GAN502A + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54777} G3N502c +PERO2              =  0.750GDD4004 + 0.250GAN502A + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54778} G3N502c +PERO3              =  0.800GDD4004 + 0.200GAN502A + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54779} G3N502c +PERO5              =  0.650GDD4004 + 0.350GAN502A + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54780} G3N502c +PERO6              =  0.650GDD4004 + 0.350GAN502A + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54781} G3N502c +PERO9              =       GDD4004 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 54782} G3P500g +GHO2               =  0.800GPG500h + 0.200GPA500q + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 54783} G3P500g +GNO                =       GPN400b +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 54784} G3P500g +GNO2               =       GPP500S                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 54785} G3P500g +GNO3               =       GPN400b +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 54786} G3P500g +MEPERO             =  0.685GPN400b + 0.315GPA500q + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54787} G3P500g +PERO1              =  0.800GPN400b + 0.200GPA500q + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54788} G3P500g +PERO2              =  0.750GPN400b + 0.250GPA500q + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54789} G3P500g +PERO3              =  0.800GPN400b + 0.200GPA500q + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54790} G3P500g +PERO5              =  0.650GPN400b + 0.350GPA500q + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54791} G3P500g +PERO6              =  0.650GPN400b + 0.350GPA500q + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54792} G3P500g +PERO9              =       GPN400b +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 54793} G1P506c                     =       G3P500Q                                               : ARR( 0.800E+11,  4246., 0.0);
+{ 54794} G1P506c                     =       GCO     +      GDD4004 +      GNO2                    : ARR( 0.200E+15,  6793., 0.0);
+{ 54795} G1P506c                     =       GPD2000 +      G3D3001                                : ARR( 0.200E+15,  6105., 0.0);
+{ 54796} GPH502x                     =       G3H504J +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 54797} GPH502x +GHO                =       GPD500I +      GHO                                    : ARR( 0.511E-10,     0., 0.0);
+{ 54798} GPH502x +GHO                =       GPH5055 +      GHO2                                   : ARR( 0.630E-11,     0., 0.0);
+{ 54799} GPH502x +GHO                =       G2P502M                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 54800} GPH502x+HV               =       G1P502u +      GHO                                    :  0.100E+01*SUN;
+{ 54801} GPH502x+HV               =       G3H3003 +      GCO     +      GNO2    +      GCO      :  0.100E+01*SUN;
+{ 54802} GPH502x+HV               =       G3H3003 +      GCO     +      GCO     +      GNO2     :  0.100E+01*SUN;
+{ 54803} GPD500I                     =       G3D500L +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 54804} GPD500I +GHO                =       GPD500O +      GHO2                                   : ARR( 0.384E-11,     0., 0.0);
+{ 54805} GPD500I +GHO                =       G3P500h                                               : ARR( 0.660E-10,     0., 0.0);
+{ 54806} GPD500I +GNO3               =       G3P500h +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 54807} GPD500I+HV               =       G3D3001 +      GCO     +      GCO     +      GNO2     :  0.100E+01*SUN;
+{ 54808} GPD500I+HV               =       GCO     +      G3D3001 +      GNO2    +      GCO      :  0.100E+01*SUN;
+{ 54809} GPD500I+HV               =       GPD4008 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 54810} G3D500L +GHO2               =  0.800GGD500H + 0.200GAD500J + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 54811} G3D500L +GNO                =       G3D3001 +      GNO2    +      GCO2    +      GCO      : ARR( 0.810E-11,  -270., 0.0);
+{ 54812} G3D500L +GNO2               =       GPD500I                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 54813} G3D500L +GNO3               =       G3D3001 +      GNO2    +      GCO2    +      GCO      : ARR( 0.500E-11,     0., 0.0);
+{ 54814} G3D500L +MEPERO             =  0.685G3D3001 + 0.315GAD500J + 0.685GCO2    + 0.685GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 54815} G3D500L +PERO1              =  0.800G3D3001 + 0.200GAD500J + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 54816} G3D500L +PERO2              =  0.750G3D3001 + 0.250GAD500J + 0.750GCO2    + 0.750GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 54817} G3D500L +PERO3              =  0.800G3D3001 + 0.200GAD500J + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 54818} G3D500L +PERO5              =  0.650G3D3001 + 0.350GAD500J + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 54819} G3D500L +PERO6              =  0.650G3D3001 + 0.350GAD500J + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 54820} G3D500L +PERO9              =       G3D3001 +      GCO2    +      GCO                     : ARR( 0.500E-11,  -500., 0.0);
+{ 54821} G3P500h +GHO2               =  0.800GPG500j + 0.200GPA500s + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 54822} G3P500h +GNO                =       GPD4008 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 54823} G3P500h +GNO2               =       GPP500U                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 54824} G3P500h +GNO3               =       GPD4008 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 54825} G3P500h +MEPERO             =  0.685GPD4008 + 0.315GPA500s + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54826} G3P500h +PERO1              =  0.800GPD4008 + 0.200GPA500s + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54827} G3P500h +PERO2              =  0.750GPD4008 + 0.250GPA500s + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54828} G3P500h +PERO3              =  0.800GPD4008 + 0.200GPA500s + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54829} G3P500h +PERO5              =  0.650GPD4008 + 0.350GPA500s + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54830} G3P500h +PERO6              =  0.650GPD4008 + 0.350GPA500s + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54831} G3P500h +PERO9              =       GPD4008 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 54832} GDD4005 +GHO                =       G3D2000 + 2.000GCO                                    : ARR( 0.253E-10,     0., 0.0);
+{ 54833} GDD4005 +GNO3               =       G3D2000 +      GHNO3   + 2.000GCO                     : ARR( 0.480E-14,     0., 0.0);
+{ 54834} GDD4005+HV               =       GCO     +      G3D2000 +      GHO2    +      GCO      :  0.200E+01*SUN;
+{ 54835} GDD4005+HV               =       GDD3002 +      GCO                                    :  0.200E+01*SUN;
+{ 54836} GDD4005+HV               =       GDD2000 +      GCO     +      GCO                     :  0.200E+01*SUN;
+{ 54837} GDD4005+HV               =  2.000G3D2000                                               :  0.100E+01*SUN;
+{ 54838} GHN506W +GHO                =       GNN502z +      GHO                                    : ARR( 0.167E-11,     0., 0.0);
+{ 54839} GHN506W +GHO                =       G3H504K                                               : ARR( 0.420E-11,     0., 0.0);
+{ 54840} GHN506W +GHO                =       G2N506N                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 54841} GHN506W +GNO3               =       G3H504K +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 54842} GHN506W+HV               =       G1H50BK +      GNO2                                   :  0.100E+01*SUN;
+{ 54843} GHN506W+HV               =       G1H50BL +      GNO2                                   :  0.100E+01*SUN;
+{ 54844} GHN506W+HV               =       G1N506c +      GHO                                    :  0.100E+01*SUN;
+{ 54845} GHN506W+HV               =       G1H50BM +      GNO2                                   :  0.100E+01*SUN;
+{ 54846} GHN506W+HV               =       GHN400v +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 54847} GHN506W+HV               =       GND3003 +      GND2000 +      GHO     +      GNO2     :  0.100E+01*SUN;
+{ 54848} G3H504K +GHO2               =  0.800GGH503d + 0.200GAH503Y + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 54849} G3H504K +GNO                =       GHN400v + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 54850} G3H504K +GNO2               =       GPH503d                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 54851} G3H504K +GNO3               =       GHN400v + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 54852} G3H504K +MEPERO             =  0.685GHN400v + 0.315GAH503Y + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54853} G3H504K +PERO1              =  0.800GHN400v + 0.200GAH503Y + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54854} G3H504K +PERO2              =  0.750GHN400v + 0.250GAH503Y + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54855} G3H504K +PERO3              =  0.800GHN400v + 0.200GAH503Y + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54856} G3H504K +PERO5              =  0.650GHN400v + 0.350GAH503Y + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54857} G3H504K +PERO6              =  0.650GHN400v + 0.350GAH503Y + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54858} G3H504K +PERO9              =       GHN400v +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 54859} G2N506N +GNO                =       G1N506c +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 54860} G2N506N +GNO                =       GNN502w                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 54861} G2N506N +GHO2               =       GHN506W                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 54862} G2N506N +GNO3               =       G1N506c +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 54863} G2N506N +MEPERO             =  0.340G1N506c + 0.330GNN503H + 0.330GNN502z                 : ARR( 0.565E-13,  -845., 0.0);
+{ 54864} G2N506N +PERO1              =  0.460G1N506c + 0.270GNN503H + 0.270GNN502z                 : ARR( 0.434E-13,  -900., 0.0);
+{ 54865} G2N506N +PERO2              =  0.400G1N506c + 0.300GNN503H + 0.300GNN502z                 : ARR( 0.162E-13, -1400., 0.0);
+{ 54866} G2N506N +PERO3              =  0.460G1N506c + 0.270GNN503H + 0.270GNN502z                 : ARR( 0.488E-13, -1250., 0.0);
+{ 54867} G2N506N +PERO5              =  0.460G1N506c + 0.270GNN503H + 0.270GNN502z                 : ARR( 0.183E-11,   450., 0.0);
+{ 54868} G2N506N +PERO6              =  0.300G1N506c + 0.350GNN503H + 0.350GNN502z                 : ARR( 0.168E-13, -1300., 0.0);
+{ 54869} G2N506N +PERO9              =  0.650G1N506c + 0.350GNN502z                                : ARR( 0.100E-10,     0., 0.0);
+{ 54870} G1H50BK +OXYGEN             =       GHN506g +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 54871} G1H50BK                     =       GHN505L +      GNO2                                   : ARR( 0.800E+11,  4245., 0.0);
+{ 54872} G1H50BK                     =       GHN400y +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7042., 0.0);
+{ 54873} G1H50BL                     =       GND2000 +      GND3005 +      GHO                     : ARR( 0.200E+15,  4826., 0.0);
+{ 54874} G1H50BM                     =       GNN3005 +      GDD2000 +      GHO                     : ARR( 0.200E+15,  6108., 0.0);
+{ 54875} G1H50BM                     =       GHN400v +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 54876} GNN503H +GHO                =       GNN502z +      GHO2                                   : ARR( 0.434E-12,     0., 0.0);
+{ 54877} GNN503H +GHO                =       G3N502d                                               : ARR( 0.438E-11,     0., 0.0);
+{ 54878} GNN503H +GNO3               =       G3N502d +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 54879} GNN503H+HV               =       G1N507F +      GNO2                                   :  0.100E+01*SUN;
+{ 54880} GNN503H+HV               =       G1N507B +      GNO2                                   :  0.100E+01*SUN;
+{ 54881} GNN503H+HV               =       G1N507G +      GNO2                                   :  0.100E+01*SUN;
+{ 54882} GNN503H+HV               =       GNN400T +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 54883} GNN503H+HV               =       GND3003 +      GND2000 +      GHO2    +      GNO2     :  0.100E+01*SUN;
+{ 54884} G3N502d +GHO2               =  0.800GGN502a + 0.200GAN502I + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 54885} G3N502d +GNO                =       GNN400T + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 54886} G3N502d +GNO2               =       GPN502Q                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 54887} G3N502d +GNO3               =       GNN400T + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 54888} G3N502d +MEPERO             =  0.685GNN400T + 0.315GAN502I + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54889} G3N502d +PERO1              =  0.800GNN400T + 0.200GAN502I + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54890} G3N502d +PERO2              =  0.750GNN400T + 0.250GAN502I + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54891} G3N502d +PERO3              =  0.800GNN400T + 0.200GAN502I + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54892} G3N502d +PERO5              =  0.650GNN400T + 0.350GAN502I + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54893} G3N502d +PERO6              =  0.650GNN400T + 0.350GAN502I + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54894} G3N502d +PERO9              =       GNN400T +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 54895} G1N507F +OXYGEN             =       GNN503J +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 54896} G1N507F                     =       GND501F +      GNO2                                   : ARR( 0.800E+11,  4245., 0.0);
+{ 54897} G1N507F                     =       GND400J +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7042., 0.0);
+{ 54898} G1N507G                     =       GNN3005 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  4899., 0.0);
+{ 54899} G1N507G                     =       GNN400T +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 54900} GGH400k +GHO                =       GGN400a +      GHO                                    : ARR( 0.504E-11,     0., 0.0);
+{ 54901} GGH400k +GHO                =       G2G400t                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 54902} GGH400k +GHO                =       G3H400Z                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 54903} GGH400k+HV               =       G1G4015 +      GNO2                                   :  0.100E+01*SUN;
+{ 54904} GGH400k+HV               =       G1G400r +      GNO2                                   :  0.100E+01*SUN;
+{ 54905} GGH400k+HV               =       G1G400k +      GHO                                    :  0.100E+01*SUN;
+{ 54906} GGH400k+HV               =       GNN3005 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 54907} G2G400t +GNO                =       G1G400k +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 54908} G2G400t +GNO                =       GGN400N                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 54909} G2G400t +GHO2               =       GGH400k                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 54910} G2G400t +GNO3               =       G1G400k +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 54911} G2G400t +MEPERO             =  0.340G1G400k + 0.330GGN400P + 0.330GGN400a                 : ARR( 0.565E-13,  -845., 0.0);
+{ 54912} G2G400t +PERO1              =  0.460G1G400k + 0.270GGN400P + 0.270GGN400a                 : ARR( 0.434E-13,  -900., 0.0);
+{ 54913} G2G400t +PERO2              =  0.400G1G400k + 0.300GGN400P + 0.300GGN400a                 : ARR( 0.162E-13, -1400., 0.0);
+{ 54914} G2G400t +PERO3              =  0.460G1G400k + 0.270GGN400P + 0.270GGN400a                 : ARR( 0.488E-13, -1250., 0.0);
+{ 54915} G2G400t +PERO5              =  0.460G1G400k + 0.270GGN400P + 0.270GGN400a                 : ARR( 0.183E-11,   450., 0.0);
+{ 54916} G2G400t +PERO6              =  0.300G1G400k + 0.350GGN400P + 0.350GGN400a                 : ARR( 0.168E-13, -1300., 0.0);
+{ 54917} G2G400t +PERO9              =  0.650G1G400k + 0.350GGN400a                                : ARR( 0.100E-10,     0., 0.0);
+{ 54918} G1G4015 +OXYGEN             =       GGH400r +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 54919} G1G4015                     =       GGH3007 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7175., 0.0);
+{ 54920} GHH400q +GHO                =       GHN4017 +      GHO                                    : ARR( 0.825E-11,     0., 0.0);
+{ 54921} GHH400q +GHO                =       GHN400v +      GHO                                    : ARR( 0.161E-10,     0., 0.0);
+{ 54922} GHH400q +GHO                =       G2H401O                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 54923} GHH400q +GHO                =       G2H4016                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 54924} GHH400q+HV               =       G1H401a +      GNO2                                   :  0.100E+01*SUN;
+{ 54925} GHH400q+HV               =       G1H401t +      GNO2                                   :  0.100E+01*SUN;
+{ 54926} GHH400q+HV               =       G1H401o +      GHO                                    :  0.100E+01*SUN;
+{ 54927} GHH400q+HV               =       G1H401U +      GHO                                    :  0.100E+01*SUN;
+{ 54928} G2H401O +GNO                =       G1H401o +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 54929} G2H401O +GNO                =       GHN4015                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 54930} G2H401O +GHO2               =       GHH400q                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 54931} G2H401O +GNO3               =       G1H401o +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 54932} G2H401O +MEPERO             =  0.340G1H401o + 0.330GHN400X + 0.330GHN4017                 : ARR( 0.565E-13,  -845., 0.0);
+{ 54933} G2H401O +PERO1              =  0.460G1H401o + 0.270GHN400X + 0.270GHN4017                 : ARR( 0.434E-13,  -900., 0.0);
+{ 54934} G2H401O +PERO2              =  0.400G1H401o + 0.300GHN400X + 0.300GHN4017                 : ARR( 0.162E-13, -1400., 0.0);
+{ 54935} G2H401O +PERO3              =  0.460G1H401o + 0.270GHN400X + 0.270GHN4017                 : ARR( 0.488E-13, -1250., 0.0);
+{ 54936} G2H401O +PERO5              =  0.460G1H401o + 0.270GHN400X + 0.270GHN4017                 : ARR( 0.183E-11,   450., 0.0);
+{ 54937} G2H401O +PERO6              =  0.300G1H401o + 0.350GHN400X + 0.350GHN4017                 : ARR( 0.168E-13, -1300., 0.0);
+{ 54938} G2H401O +PERO9              =  0.650G1H401o + 0.350GHN4017                                : ARR( 0.100E-10,     0., 0.0);
+{ 54939} GGH502a +GHO                =       GGH503J +      GHO2                                   : ARR( 0.209E-11,     0., 0.0);
+{ 54940} GGH502a +GHO                =       GGN501S +      GHO                                    : ARR( 0.836E-11,     0., 0.0);
+{ 54941} GGH502a +GHO                =       G2G503N                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 54942} GGH502a +GHO                =       G3H501w                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 54943} GGH502a+HV               =       G1G504k +      GNO2                                   :  0.100E+01*SUN;
+{ 54944} GGH502a+HV               =       G1G502m +      GHO                                    :  0.100E+01*SUN;
+{ 54945} GGH502a+HV               =       G1G504l +      GNO2                                   :  0.100E+01*SUN;
+{ 54946} GGH502a+HV               =       GHN400T +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 54947} G2G503N +GNO                =       G1G502m +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 54948} G2G503N +GNO                =       GGN501A                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 54949} G2G503N +GHO2               =       GGH502a                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 54950} G2G503N +GNO3               =       G1G502m +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 54951} G2G503N +MEPERO             =  0.340G1G502m + 0.330GGN501P + 0.330GGN501S                 : ARR( 0.565E-13,  -845., 0.0);
+{ 54952} G2G503N +PERO1              =  0.460G1G502m + 0.270GGN501P + 0.270GGN501S                 : ARR( 0.434E-13,  -900., 0.0);
+{ 54953} G2G503N +PERO2              =  0.400G1G502m + 0.300GGN501P + 0.300GGN501S                 : ARR( 0.162E-13, -1400., 0.0);
+{ 54954} G2G503N +PERO3              =  0.460G1G502m + 0.270GGN501P + 0.270GGN501S                 : ARR( 0.488E-13, -1250., 0.0);
+{ 54955} G2G503N +PERO5              =  0.460G1G502m + 0.270GGN501P + 0.270GGN501S                 : ARR( 0.183E-11,   450., 0.0);
+{ 54956} G2G503N +PERO6              =  0.300G1G502m + 0.350GGN501P + 0.350GGN501S                 : ARR( 0.168E-13, -1300., 0.0);
+{ 54957} G2G503N +PERO9              =  0.650G1G502m + 0.350GGN501S                                : ARR( 0.100E-10,     0., 0.0);
+{ 54958} G1G504k                     =       GGH400o +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 54959} G1G504l                     =       GHN400T +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 54960} GHN506X +GHO                =       GNN5031 +      GHO                                    : ARR( 0.510E-11,     0., 0.0);
+{ 54961} GHN506X +GHO                =       G3H504L                                               : ARR( 0.422E-11,     0., 0.0);
+{ 54962} GHN506X +GHO                =       G2N506O                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 54963} GHN506X +GNO3               =       G3H504L +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 54964} GHN506X+HV               =       G1H50BN +      GNO2                                   :  0.100E+01*SUN;
+{ 54965} GHN506X+HV               =       G1N506j +      GHO                                    :  0.100E+01*SUN;
+{ 54966} GHN506X+HV               =       G3H3002 +      GDD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 54967} GHN506X+HV               =       G1H50Ab +      GNO2                                   :  0.100E+01*SUN;
+{ 54968} GHN506X+HV               =       GHN4018 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 54969} G3H504L +GHO2               =  0.800GGH504r + 0.200GAH503R + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 54970} G3H504L +GNO                =       GHN4018 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 54971} G3H504L +GNO2               =       GPH503X                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 54972} G3H504L +GNO3               =       GHN4018 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 54973} G3H504L +MEPERO             =  0.685GHN4018 + 0.315GAH503R + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54974} G3H504L +PERO1              =  0.800GHN4018 + 0.200GAH503R + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54975} G3H504L +PERO2              =  0.750GHN4018 + 0.250GAH503R + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54976} G3H504L +PERO3              =  0.800GHN4018 + 0.200GAH503R + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54977} G3H504L +PERO5              =  0.650GHN4018 + 0.350GAH503R + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54978} G3H504L +PERO6              =  0.650GHN4018 + 0.350GAH503R + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 54979} G3H504L +PERO9              =       GHN4018 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 54980} G2N506O +GNO                =       G1N506j +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 54981} G2N506O +GNO                =       GNN502z                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 54982} G2N506O +GHO2               =       GHN506X                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 54983} G2N506O +GNO3               =       G1N506j +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 54984} G2N506O +MEPERO             =  0.340G1N506j + 0.330GNN5033 + 0.330GNN5031                 : ARR( 0.565E-13,  -845., 0.0);
+{ 54985} G2N506O +PERO1              =  0.460G1N506j + 0.270GNN5033 + 0.270GNN5031                 : ARR( 0.434E-13,  -900., 0.0);
+{ 54986} G2N506O +PERO2              =  0.400G1N506j + 0.300GNN5033 + 0.300GNN5031                 : ARR( 0.162E-13, -1400., 0.0);
+{ 54987} G2N506O +PERO3              =  0.460G1N506j + 0.270GNN5033 + 0.270GNN5031                 : ARR( 0.488E-13, -1250., 0.0);
+{ 54988} G2N506O +PERO5              =  0.460G1N506j + 0.270GNN5033 + 0.270GNN5031                 : ARR( 0.183E-11,   450., 0.0);
+{ 54989} G2N506O +PERO6              =  0.300G1N506j + 0.350GNN5033 + 0.350GNN5031                 : ARR( 0.168E-13, -1300., 0.0);
+{ 54990} G2N506O +PERO9              =  0.650G1N506j + 0.350GNN5031                                : ARR( 0.100E-10,     0., 0.0);
+{ 54991} G1H50BN +OXYGEN             =       GHN506v +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 54992} G1H50BN                     =       GND400N +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5784., 0.0);
+{ 54993} GHN506Y +GHO                =       GNN503A +      GHO                                    : ARR( 0.160E-10,     0., 0.0);
+{ 54994} GHN506Y +GHO                =       G3H504M                                               : ARR( 0.688E-10,     0., 0.0);
+{ 54995} GHN506Y +GNO3               =       G3H504M +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 54996} GHN506Y+HV               =       G1H50BO +      GNO2                                   :  0.100E+01*SUN;
+{ 54997} GHN506Y+HV               =       G1H50Aa +      GNO2                                   :  0.100E+01*SUN;
+{ 54998} GHN506Y+HV               =       G3N3003 +      GDD2000 +      GHO                     :  0.100E+01*SUN;
+{ 54999} GHN506Y+HV               =       G1N506k +      GHO                                    :  0.100E+01*SUN;
+{ 55000} GHN506Y+HV               =       GNN400a +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 55001} G3H504M +GHO2               =  0.800GGH503Y + 0.200GAH503T + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 55002} G3H504M +GNO                =       GNN400a +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 55003} G3H504M +GNO2               =       GPH503W                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 55004} G3H504M +GNO3               =       GNN400a +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 55005} G3H504M +MEPERO             =  0.685GNN400a + 0.315GAH503T + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 55006} G3H504M +PERO1              =  0.800GNN400a + 0.200GAH503T + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 55007} G3H504M +PERO2              =  0.750GNN400a + 0.250GAH503T + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 55008} G3H504M +PERO3              =  0.800GNN400a + 0.200GAH503T + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 55009} G3H504M +PERO5              =  0.650GNN400a + 0.350GAH503T + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 55010} G3H504M +PERO6              =  0.650GNN400a + 0.350GAH503T + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 55011} G3H504M +PERO9              =       GNN400a +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 55012} G1H50BO +OXYGEN             =       GHN506v +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 55013} G1H50BO                     =       GND5016 +      GHO                                    : ARR( 0.800E+11,  3882., 0.0);
+{ 55014} GGH502b +GHO                =       GGN501U +      GHO                                    : ARR( 0.532E-11,     0., 0.0);
+{ 55015} GGH502b +GHO                =       G2G503O                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 55016} GGH502b +GHO                =       G3H501x                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 55017} GGH502b+HV               =       G1G504m +      GNO2                                   :  0.100E+01*SUN;
+{ 55018} GGH502b+HV               =       G1G504n +      GNO2                                   :  0.100E+01*SUN;
+{ 55019} GGH502b+HV               =       G1G502n +      GHO                                    :  0.100E+01*SUN;
+{ 55020} GGH502b+HV               =       GNN400F +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 55021} G2G503O +GNO                =       G1G502n +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 55022} G2G503O +GNO                =       GGN501A                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 55023} G2G503O +GHO2               =       GGH502b                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 55024} G2G503O +GNO3               =       G1G502n +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 55025} G2G503O +MEPERO             =  0.340G1G502n + 0.330GGN501E + 0.330GGN501U                 : ARR( 0.565E-13,  -845., 0.0);
+{ 55026} G2G503O +PERO1              =  0.460G1G502n + 0.270GGN501E + 0.270GGN501U                 : ARR( 0.434E-13,  -900., 0.0);
+{ 55027} G2G503O +PERO2              =  0.400G1G502n + 0.300GGN501E + 0.300GGN501U                 : ARR( 0.162E-13, -1400., 0.0);
+{ 55028} G2G503O +PERO3              =  0.460G1G502n + 0.270GGN501E + 0.270GGN501U                 : ARR( 0.488E-13, -1250., 0.0);
+{ 55029} G2G503O +PERO5              =  0.460G1G502n + 0.270GGN501E + 0.270GGN501U                 : ARR( 0.183E-11,   450., 0.0);
+{ 55030} G2G503O +PERO6              =  0.300G1G502n + 0.350GGN501E + 0.350GGN501U                 : ARR( 0.168E-13, -1300., 0.0);
+{ 55031} G2G503O +PERO9              =  0.650G1G502n + 0.350GGN501U                                : ARR( 0.100E-10,     0., 0.0);
+{ 55032} G1G504m                     =       GGN501u +      GHO                                    : ARR( 0.800E+11,  2619., 0.0);
+{ 55033} G1G504m                     =       GGH400r +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 55034} G1G504n                     =       GND2000 +      GGH3007 +      GHO2                    : ARR( 0.200E+15,  2745., 0.0);
+{ 55035} GHH502m +GHO                =       GHN506Y +      GHO                                    : ARR( 0.288E-10,     0., 0.0);
+{ 55036} GHH502m +GHO                =       GHN5063 +      GHO                                    : ARR( 0.276E-10,     0., 0.0);
+{ 55037} GHH502m +GHO                =       G3H504N                                               : ARR( 0.229E-10,     0., 0.0);
+{ 55038} GHH502m +GNO3               =       G3H504N +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 55039} GHH502m+HV               =       G1H50BP +      GNO2                                   :  0.100E+01*SUN;
+{ 55040} GHH502m+HV               =       G1H50AT +      GNO2                                   :  0.100E+01*SUN;
+{ 55041} GHH502m+HV               =       G1H50A1 +      GHO                                    :  0.100E+01*SUN;
+{ 55042} GHH502m+HV               =       G1H50BM +      GHO                                    :  0.100E+01*SUN;
+{ 55043} GHH502m+HV               =       GHN400v +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 55044} G3H504N +GHO2               =  0.800GGH503e + 0.200GAH504y + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 55045} G3H504N +GNO                =       GHN400v +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 55046} G3H504N +GNO2               =       GPH503e                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 55047} G3H504N +GNO3               =       GHN400v +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 55048} G3H504N +MEPERO             =  0.685GHN400v + 0.315GAH504y + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 55049} G3H504N +PERO1              =  0.800GHN400v + 0.200GAH504y + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 55050} G3H504N +PERO2              =  0.750GHN400v + 0.250GAH504y + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 55051} G3H504N +PERO3              =  0.800GHN400v + 0.200GAH504y + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 55052} G3H504N +PERO5              =  0.650GHN400v + 0.350GAH504y + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 55053} G3H504N +PERO6              =  0.650GHN400v + 0.350GAH504y + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 55054} G3H504N +PERO9              =       GHN400v +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 55055} G1H50BP                     =       GHN505L +      GHO                                    : ARR( 0.800E+11,  1899., 0.0);
+{ 55056} GGH502c +GHO                =       GGH501i +      GHO                                    : ARR( 0.493E-10,     0., 0.0);
+{ 55057} GGH502c +GHO                =       GGH501j +      GHO                                    : ARR( 0.301E-10,     0., 0.0);
+{ 55058} GGH502c+HV               =       G1G504o +      GNO2                                   :  0.100E+01*SUN;
+{ 55059} GGH502c+HV               =       G1G504n +      GHO                                    :  0.100E+01*SUN;
+{ 55060} GGH502c+HV               =       G1G504l +      GHO                                    :  0.100E+01*SUN;
+{ 55061} GGH502c+HV               =       GHN400T +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 55062} G1G504o                     =       GGH501f +      GHO                                    : ARR( 0.800E+11,  1899., 0.0);
+{ 55063} G1G504o                     =       GGH400v +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 55064} GPH502y                     =       G3H501y +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 55065} GPH502y +GHO                =       GPH501o +      GHO                                    : ARR( 0.471E-10,     0., 0.0);
+{ 55066} GPH502y +GHO                =       GPH501p +      GHO                                    : ARR( 0.287E-10,     0., 0.0);
+{ 55067} GPH502y+HV               =       G1P506d +      GNO2                                   :  0.100E+01*SUN;
+{ 55068} GPH502y+HV               =       G1P504U +      GHO                                    :  0.100E+01*SUN;
+{ 55069} GPH502y+HV               =       G1P504O +      GHO                                    :  0.100E+01*SUN;
+{ 55070} GPH502y+HV               =       G3H501y +      GNO2                                   :  0.100E+01*SUN;
+{ 55071} G1P506d                     =       GPH501l +      GHO                                    : ARR( 0.800E+11,  1899., 0.0);
+{ 55072} G1P506d                     =       GPH400w +      GCH2O   +      GHO2                    : ARR( 0.200E+15,  4295., 0.0);
+{ 55073} GHH400r +GHO                =       G3H400w                                               : ARR( 0.430E-10,     0., 0.0);
+{ 55074} GHH400r +GHO                =       GHD400K +      GHO                                    : ARR( 0.165E-09,     0., 0.0);
+{ 55075} GHH400r +GNO3               =       G3H400w +      GHNO3                                  : ARR( 0.240E-13,     0., 0.0);
+{ 55076} GHH400r+HV               =       GCO     +      GHD3004 +      GHO2    +      GHO      :  0.200E+01*SUN;
+{ 55077} GHH400r+HV               =       G1H401i +      GHO                                    :  0.200E+01*SUN;
+{ 55078} G3H400w +GHO2               =  0.800GGH400v + 0.200GAH400w + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 55079} G3H400w +GNO                =       GHD3004 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 55080} G3H400w +GNO2               =       GPH400w                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 55081} G3H400w +GNO3               =       GHD3004 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 55082} G3H400w +MEPERO             =  0.685GHD3004 + 0.315GAH400w + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 55083} G3H400w +PERO1              =  0.800GHD3004 + 0.200GAH400w + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 55084} G3H400w +PERO2              =  0.750GHD3004 + 0.250GAH400w + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 55085} G3H400w +PERO3              =  0.800GHD3004 + 0.200GAH400w + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 55086} G3H400w +PERO5              =  0.650GHD3004 + 0.350GAH400w + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 55087} G3H400w +PERO6              =  0.650GHD3004 + 0.350GAH400w + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 55088} G3H400w +PERO9              =       GHD3004 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 55089} GHN506Z +GHO                =       GHN506Y +      GHO2                                   : ARR( 0.655E-11,     0., 0.0);
+{ 55090} GHN506Z +GHO                =       GNN5039 +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 55091} GHN506Z +GHO                =       G3H504O                                               : ARR( 0.208E-10,     0., 0.0);
+{ 55092} GHN506Z +GHO                =       G2N506P                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 55093} GHN506Z +GNO3               =       G3H504O +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 55094} GHN506Z+HV               =       G1H50BQ +      GNO2                                   :  0.100E+01*SUN;
+{ 55095} GHN506Z+HV               =       G1H50AX +      GNO2                                   :  0.100E+01*SUN;
+{ 55096} GHN506Z+HV               =       G1N507G +      GHO                                    :  0.100E+01*SUN;
+{ 55097} GHN506Z+HV               =       GNN400T +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 55098} G3H504O +GHO2               =  0.800GGH503k + 0.200GAH503i + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 55099} G3H504O +GNO                =       GNN400T +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 55100} G3H504O +GNO2               =       GPH503k                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 55101} G3H504O +GNO3               =       GNN400T +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 55102} G3H504O +MEPERO             =  0.685GNN400T + 0.315GAH503i + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 55103} G3H504O +PERO1              =  0.800GNN400T + 0.200GAH503i + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 55104} G3H504O +PERO2              =  0.750GNN400T + 0.250GAH503i + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 55105} G3H504O +PERO3              =  0.800GNN400T + 0.200GAH503i + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 55106} G3H504O +PERO5              =  0.650GNN400T + 0.350GAH503i + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 55107} G3H504O +PERO6              =  0.650GNN400T + 0.350GAH503i + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 55108} G3H504O +PERO9              =       GNN400T +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 55109} G2N506P +GNO                =       G1N507G +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 55110} G2N506P +GNO                =       GNN503H                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 55111} G2N506P +GHO2               =       GHN506Z                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 55112} G2N506P +GNO3               =       G1N507G +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 55113} G2N506P +MEPERO             =  0.340G1N507G + 0.330GNN503I + 0.330GNN5039                 : ARR( 0.565E-13,  -845., 0.0);
+{ 55114} G2N506P +PERO1              =  0.460G1N507G + 0.270GNN503I + 0.270GNN5039                 : ARR( 0.434E-13,  -900., 0.0);
+{ 55115} G2N506P +PERO2              =  0.400G1N507G + 0.300GNN503I + 0.300GNN5039                 : ARR( 0.162E-13, -1400., 0.0);
+{ 55116} G2N506P +PERO3              =  0.460G1N507G + 0.270GNN503I + 0.270GNN5039                 : ARR( 0.488E-13, -1250., 0.0);
+{ 55117} G2N506P +PERO5              =  0.460G1N507G + 0.270GNN503I + 0.270GNN5039                 : ARR( 0.183E-11,   450., 0.0);
+{ 55118} G2N506P +PERO6              =  0.300G1N507G + 0.350GNN503I + 0.350GNN5039                 : ARR( 0.168E-13, -1300., 0.0);
+{ 55119} G2N506P +PERO9              =  0.650G1N507G + 0.350GNN5039                                : ARR( 0.100E-10,     0., 0.0);
+{ 55120} G1H50BQ                     =       GND501F +      GHO                                    : ARR( 0.800E+11,  1899., 0.0);
+{ 55121} GGH502d +GHO                =       GGN5014 +      GHO                                    : ARR( 0.512E-11,     0., 0.0);
+{ 55122} GGH502d +GHO                =       G2G503P                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 55123} GGH502d +GHO                =       G3H5021                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 55124} GGH502d+HV               =       G1G504p +      GNO2                                   :  0.100E+01*SUN;
+{ 55125} GGH502d+HV               =       G1G504q +      GNO2                                   :  0.100E+01*SUN;
+{ 55126} GGH502d+HV               =       G1G502Q +      GHO                                    :  0.100E+01*SUN;
+{ 55127} GGH502d+HV               =       GNN4008 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 55128} G2G503P +GNO                =       G1G502Q +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 55129} G2G503P +GNO                =       GGN500z                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 55130} G2G503P +GHO2               =       GGH502d                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 55131} G2G503P +GNO3               =       G1G502Q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 55132} G2G503P +MEPERO             =  0.340G1G502Q + 0.330GGN500h + 0.330GGN5014                 : ARR( 0.565E-13,  -845., 0.0);
+{ 55133} G2G503P +PERO1              =  0.460G1G502Q + 0.270GGN500h + 0.270GGN5014                 : ARR( 0.434E-13,  -900., 0.0);
+{ 55134} G2G503P +PERO2              =  0.400G1G502Q + 0.300GGN500h + 0.300GGN5014                 : ARR( 0.162E-13, -1400., 0.0);
+{ 55135} G2G503P +PERO3              =  0.460G1G502Q + 0.270GGN500h + 0.270GGN5014                 : ARR( 0.488E-13, -1250., 0.0);
+{ 55136} G2G503P +PERO5              =  0.460G1G502Q + 0.270GGN500h + 0.270GGN5014                 : ARR( 0.183E-11,   450., 0.0);
+{ 55137} G2G503P +PERO6              =  0.300G1G502Q + 0.350GGN500h + 0.350GGN5014                 : ARR( 0.168E-13, -1300., 0.0);
+{ 55138} G2G503P +PERO9              =  0.650G1G502Q + 0.350GGN5014                                : ARR( 0.100E-10,     0., 0.0);
+{ 55139} G1G504p                     =       GGN500p +      GHO                                    : ARR( 0.800E+11,  2619., 0.0);
+{ 55140} G1G504q                     =       GND3000 +      GGD2000 +      GHO                     : ARR( 0.200E+15,  4883., 0.0);
+{ 55141} GGH502e +GHO                =       GGH500w +      GHO                                    : ARR( 0.481E-10,     0., 0.0);
+{ 55142} GGH502e +GHO                =       GGH5012 +      GHO                                    : ARR( 0.293E-10,     0., 0.0);
+{ 55143} GGH502e+HV               =       G1G504r +      GNO2                                   :  0.100E+01*SUN;
+{ 55144} GGH502e+HV               =       G1G504q +      GHO                                    :  0.100E+01*SUN;
+{ 55145} GGH502e+HV               =       G1G502S +      GHO                                    :  0.100E+01*SUN;
+{ 55146} GGH502e+HV               =       GHN400J +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 55147} G1G504r                     =       GGH500r +      GHO                                    : ARR( 0.800E+11,  1899., 0.0);
+{ 55148} GPH502z                     =       G3H5022 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 55149} GPH502z +GHO                =       GPH5015 +      GHO                                    : ARR( 0.459E-10,     0., 0.0);
+{ 55150} GPH502z +GHO                =       GPH501O +      GHO                                    : ARR( 0.280E-10,     0., 0.0);
+{ 55151} GPH502z+HV               =       G1P506e +      GNO2                                   :  0.100E+01*SUN;
+{ 55152} GPH502z+HV               =       G1P5034 +      GHO                                    :  0.100E+01*SUN;
+{ 55153} GPH502z+HV               =       G1P5044 +      GHO                                    :  0.100E+01*SUN;
+{ 55154} GPH502z+HV               =       G3H5022 +      GNO2                                   :  0.100E+01*SUN;
+{ 55155} G1P506e                     =       GPH500y +      GHO                                    : ARR( 0.800E+11,  1899., 0.0);
+{ 55156} GHN506a +GHO                =       GNN5032 +      GHO                                    : ARR( 0.262E-10,     0., 0.0);
+{ 55157} GHN506a +GHO                =       GHN5063 +      GHO2                                   : ARR( 0.630E-11,     0., 0.0);
+{ 55158} GHN506a +GHO                =       G3H504P                                               : ARR( 0.208E-10,     0., 0.0);
+{ 55159} GHN506a +GHO                =       G2N506Q                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 55160} GHN506a +GNO3               =       G3H504P +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 55161} GHN506a+HV               =       G1H50Aq +      GNO2                                   :  0.100E+01*SUN;
+{ 55162} GHN506a+HV               =       G1H50Ad +      GNO2                                   :  0.100E+01*SUN;
+{ 55163} GHN506a+HV               =       G1N506F +      GHO                                    :  0.100E+01*SUN;
+{ 55164} GHN506a+HV               =       GHN400v +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 55165} G3H504P +GHO2               =  0.800GGH503f + 0.200GAH503e + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 55166} G3H504P +GNO                =       GHN400v +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 55167} G3H504P +GNO2               =       GPH503f                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 55168} G3H504P +GNO3               =       GHN400v +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 55169} G3H504P +MEPERO             =  0.685GHN400v + 0.315GAH503e + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 55170} G3H504P +PERO1              =  0.800GHN400v + 0.200GAH503e + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 55171} G3H504P +PERO2              =  0.750GHN400v + 0.250GAH503e + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 55172} G3H504P +PERO3              =  0.800GHN400v + 0.200GAH503e + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 55173} G3H504P +PERO5              =  0.650GHN400v + 0.350GAH503e + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 55174} G3H504P +PERO6              =  0.650GHN400v + 0.350GAH503e + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 55175} G3H504P +PERO9              =       GHN400v +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 55176} G2N506Q +GNO                =       G1N506F +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 55177} G2N506Q +GNO                =       GNN502a                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 55178} G2N506Q +GHO2               =       GHN506a                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 55179} G2N506Q +GNO3               =       G1N506F +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 55180} G2N506Q +MEPERO             =  0.340G1N506F + 0.330GNN503I + 0.330GNN5032                 : ARR( 0.565E-13,  -845., 0.0);
+{ 55181} G2N506Q +PERO1              =  0.460G1N506F + 0.270GNN503I + 0.270GNN5032                 : ARR( 0.434E-13,  -900., 0.0);
+{ 55182} G2N506Q +PERO2              =  0.400G1N506F + 0.300GNN503I + 0.300GNN5032                 : ARR( 0.162E-13, -1400., 0.0);
+{ 55183} G2N506Q +PERO3              =  0.460G1N506F + 0.270GNN503I + 0.270GNN5032                 : ARR( 0.488E-13, -1250., 0.0);
+{ 55184} G2N506Q +PERO5              =  0.460G1N506F + 0.270GNN503I + 0.270GNN5032                 : ARR( 0.183E-11,   450., 0.0);
+{ 55185} G2N506Q +PERO6              =  0.300G1N506F + 0.350GNN503I + 0.350GNN5032                 : ARR( 0.168E-13, -1300., 0.0);
+{ 55186} G2N506Q +PERO9              =  0.650G1N506F + 0.350GNN5032                                : ARR( 0.100E-10,     0., 0.0);
+{ 55187} GNN503I +GHO                =       GNN5032 +      GHO2                                   : ARR( 0.659E-11,     0., 0.0);
+{ 55188} GNN503I +GHO                =       GNN5039 +      GHO2                                   : ARR( 0.634E-11,     0., 0.0);
+{ 55189} GNN503I +GHO                =       G3N502e                                               : ARR( 0.210E-10,     0., 0.0);
+{ 55190} GNN503I +GNO3               =       G3N502e +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 55191} GNN503I+HV               =       G1N507C +      GNO2                                   :  0.100E+01*SUN;
+{ 55192} GNN503I+HV               =       G1N507A +      GNO2                                   :  0.100E+01*SUN;
+{ 55193} GNN503I+HV               =       GNN400T +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 55194} G3N502e +GHO2               =  0.800GGN502b + 0.200GAN502d + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 55195} G3N502e +GNO                =       GNN400T +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 55196} G3N502e +GNO2               =       GPN502f                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 55197} G3N502e +GNO3               =       GNN400T +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 55198} G3N502e +MEPERO             =  0.685GNN400T + 0.315GAN502d + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 55199} G3N502e +PERO1              =  0.800GNN400T + 0.200GAN502d + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 55200} G3N502e +PERO2              =  0.750GNN400T + 0.250GAN502d + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 55201} G3N502e +PERO3              =  0.800GNN400T + 0.200GAN502d + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 55202} G3N502e +PERO5              =  0.650GNN400T + 0.350GAN502d + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 55203} G3N502e +PERO6              =  0.650GNN400T + 0.350GAN502d + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 55204} G3N502e +PERO9              =       GNN400T +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 55205} GGH502f +GHO                =       GGN5024 +      GHO                                    : ARR( 0.328E-11,     0., 0.0);
+{ 55206} GGH502f +GHO                =       G2G503Q                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 55207} GGH502f +GHO                =       G3H5026                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 55208} GGH502f+HV               =       G1G502o +      GHO                                    :  0.100E+01*SUN;
+{ 55209} GGH502f+HV               =       G1G504s +      GNO2                                   :  0.100E+01*SUN;
+{ 55210} GGH502f+HV               =       G1G504t +      GNO2                                   :  0.100E+01*SUN;
+{ 55211} GGH502f+HV               =       G2H4017 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 55212} G2G503Q +GNO                =       G1G502o +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 55213} G2G503Q +GNO                =       GGN501B                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 55214} G2G503Q +GHO2               =       GGH502f                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 55215} G2G503Q +GNO3               =       G1G502o +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 55216} G2G503Q +MEPERO             =  0.480G1G502o + 0.260GGN501X + 0.260GGN5024                 : ARR( 0.164E-12,  -795., 0.0);
+{ 55217} G2G503Q +PERO1              =  0.600G1G502o + 0.200GGN501X + 0.200GGN5024                 : ARR( 0.126E-12,  -850., 0.0);
+{ 55218} G2G503Q +PERO2              =  0.560G1G502o + 0.220GGN501X + 0.220GGN5024                 : ARR( 0.471E-13, -1350., 0.0);
+{ 55219} G2G503Q +PERO3              =  0.600G1G502o + 0.200GGN501X + 0.200GGN5024                 : ARR( 0.142E-12, -1200., 0.0);
+{ 55220} G2G503Q +PERO5              =  0.600G1G502o + 0.200GGN501X + 0.200GGN5024                 : ARR( 0.533E-11,   500., 0.0);
+{ 55221} G2G503Q +PERO6              =  0.460G1G502o + 0.270GGN501X + 0.270GGN5024                 : ARR( 0.488E-13, -1250., 0.0);
+{ 55222} G2G503Q +PERO9              =  0.800G1G502o + 0.200GGN5024                                : ARR( 0.100E-10,     0., 0.0);
+{ 55223} G1G504s                     =       GCH2O   +      GGN400I +      GHO                     : ARR( 0.200E+15,  7395., 0.0);
+{ 55224} G1G504s                     =       GHD2000 +      GGD3000 +      GNO2                    : ARR( 0.200E+15,  6367., 0.0);
+{ 55225} G1G504t                     =       GHD2000 +      GGD3000 +      GNO2                    : ARR( 0.200E+15,  5685., 0.0);
+{ 55226} GAH502q +GHO                =       GAN502F +      GHO                                    : ARR( 0.329E-11,     0., 0.0);
+{ 55227} GAH502q +GHO                =       G2A504P                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 55228} GAH502q +GHO                =       G2H4017 +      GCO2                                   : ARR( 0.532E-12,     0., 0.0);
+{ 55229} GAH502q+HV               =       G1A505s +      GNO2                                   :  0.100E+01*SUN;
+{ 55230} GAH502q+HV               =       G1A505t +      GNO2                                   :  0.100E+01*SUN;
+{ 55231} GAH502q+HV               =       G1A502l +      GHO                                    :  0.100E+01*SUN;
+{ 55232} G2A504P +GNO                =       G1A502l +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 55233} G2A504P +GNO                =       GAN500u                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 55234} G2A504P +GHO2               =       GAH502q                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 55235} G2A504P +GNO3               =       G1A502l +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 55236} G2A504P +MEPERO             =  0.480G1A502l + 0.260GAN501X + 0.260GAN502F                 : ARR( 0.164E-12,  -795., 0.0);
+{ 55237} G2A504P +PERO1              =  0.600G1A502l + 0.200GAN501X + 0.200GAN502F                 : ARR( 0.126E-12,  -850., 0.0);
+{ 55238} G2A504P +PERO2              =  0.560G1A502l + 0.220GAN501X + 0.220GAN502F                 : ARR( 0.471E-13, -1350., 0.0);
+{ 55239} G2A504P +PERO3              =  0.600G1A502l + 0.200GAN501X + 0.200GAN502F                 : ARR( 0.142E-12, -1200., 0.0);
+{ 55240} G2A504P +PERO5              =  0.600G1A502l + 0.200GAN501X + 0.200GAN502F                 : ARR( 0.533E-11,   500., 0.0);
+{ 55241} G2A504P +PERO6              =  0.460G1A502l + 0.270GAN501X + 0.270GAN502F                 : ARR( 0.488E-13, -1250., 0.0);
+{ 55242} G2A504P +PERO9              =  0.800G1A502l + 0.200GAN502F                                : ARR( 0.100E-10,     0., 0.0);
+{ 55243} G1A505s                     =       GAD3000 +      GHD2000 +      GNO2                    : ARR( 0.200E+15,  5685., 0.0);
+{ 55244} G1A505t                     =       GAD3000 +      GHD2000 +      GNO2                    : ARR( 0.200E+15,  6367., 0.0);
+{ 55245} G1A505t                     =       GAN400J +      GCH2O   +      GHO                     : ARR( 0.200E+15,  7395., 0.0);
+{ 55246} GHH400s +GHO                =       GHN4013 +      GHO                                    : ARR( 0.646E-11,     0., 0.0);
+{ 55247} GHH400s +GHO                =       G2H4017                                               : ARR( 0.381E-11,  -190., 0.0);
+{ 55248} GHH400s+HV               =       G1H401Z +      GHO                                    :  0.200E+01*SUN;
+{ 55249} GHH400s+HV               =       G1H401x +      GNO2                                   :  0.200E+01*SUN;
+{ 55250} G1H401x                     =  2.000GHD2000 +      GNO2                                   : ARR( 0.200E+15,  6382., 0.0);
+{ 55251} G1H401x                     =       GHN300A +      GCH2O   +      GHO                     : ARR( 0.200E+15,  7395., 0.0);
+{ 55252} GGH502g +GHO                =       GGH502u +      GHO                                    : ARR( 0.162E-10,     0., 0.0);
+{ 55253} GGH502g +GHO                =       GGH501r +      GHO                                    : ARR( 0.831E-11,     0., 0.0);
+{ 55254} GGH502g +GHO                =       G2G503R                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 55255} GGH502g +GHO                =       G2G503S                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 55256} GGH502g +GHO                =       G3H5027                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 55257} GGH502g+HV               =       G1G502v +      GHO                                    :  0.100E+01*SUN;
+{ 55258} GGH502g+HV               =       G1G504s +      GHO                                    :  0.100E+01*SUN;
+{ 55259} GGH502g+HV               =       G1G504u +      GNO2                                   :  0.100E+01*SUN;
+{ 55260} GGH502g+HV               =       G2H4018 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 55261} G2G503R +GNO                =       G1G502v +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 55262} G2G503R +GNO                =       GGH5019                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 55263} G2G503R +GHO2               =       GGH502g                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 55264} G2G503R +GNO3               =       G1G502v +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 55265} G2G503R +MEPERO             =  0.480G1G502v + 0.260GGH502p + 0.260GGH502u                 : ARR( 0.164E-12,  -795., 0.0);
+{ 55266} G2G503R +PERO1              =  0.600G1G502v + 0.200GGH502p + 0.200GGH502u                 : ARR( 0.126E-12,  -850., 0.0);
+{ 55267} G2G503R +PERO2              =  0.560G1G502v + 0.220GGH502p + 0.220GGH502u                 : ARR( 0.471E-13, -1350., 0.0);
+{ 55268} G2G503R +PERO3              =  0.600G1G502v + 0.200GGH502p + 0.200GGH502u                 : ARR( 0.142E-12, -1200., 0.0);
+{ 55269} G2G503R +PERO5              =  0.600G1G502v + 0.200GGH502p + 0.200GGH502u                 : ARR( 0.533E-11,   500., 0.0);
+{ 55270} G2G503R +PERO6              =  0.460G1G502v + 0.270GGH502p + 0.270GGH502u                 : ARR( 0.488E-13, -1250., 0.0);
+{ 55271} G2G503R +PERO9              =  0.800G1G502v + 0.200GGH502u                                : ARR( 0.100E-10,     0., 0.0);
+{ 55272} G2G503S +GNO                =       G1G504s +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 55273} G2G503S +GNO                =       GGH502f                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 55274} G2G503S +GHO2               =       GGH502g                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 55275} G2G503S +GNO3               =       G1G504s +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 55276} G2G503S +MEPERO             =  0.340G1G504s + 0.330GGH500G + 0.330GGH501r                 : ARR( 0.565E-13,  -845., 0.0);
+{ 55277} G2G503S +PERO1              =  0.460G1G504s + 0.270GGH500G + 0.270GGH501r                 : ARR( 0.434E-13,  -900., 0.0);
+{ 55278} G2G503S +PERO2              =  0.400G1G504s + 0.300GGH500G + 0.300GGH501r                 : ARR( 0.162E-13, -1400., 0.0);
+{ 55279} G2G503S +PERO3              =  0.460G1G504s + 0.270GGH500G + 0.270GGH501r                 : ARR( 0.488E-13, -1250., 0.0);
+{ 55280} G2G503S +PERO5              =  0.460G1G504s + 0.270GGH500G + 0.270GGH501r                 : ARR( 0.183E-11,   450., 0.0);
+{ 55281} G2G503S +PERO6              =  0.300G1G504s + 0.350GGH500G + 0.350GGH501r                 : ARR( 0.168E-13, -1300., 0.0);
+{ 55282} G2G503S +PERO9              =  0.650G1G504s + 0.350GGH501r                                : ARR( 0.100E-10,     0., 0.0);
+{ 55283} G1G504u                     =       GHD2000 +      GGD3000 +      GHO                     : ARR( 0.200E+15,  4146., 0.0);
+{ 55284} GAH502r +GHO                =       GAH501y +      GHO                                    : ARR( 0.844E-11,     0., 0.0);
+{ 55285} GAH502r +GHO                =       GAH5039 +      GHO                                    : ARR( 0.165E-10,     0., 0.0);
+{ 55286} GAH502r +GHO                =       G2A504Q                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 55287} GAH502r +GHO                =       G2A504R                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 55288} GAH502r+HV               =       G1A505u +      GNO2                                   :  0.100E+01*SUN;
+{ 55289} GAH502r+HV               =       G1A505t +      GHO                                    :  0.100E+01*SUN;
+{ 55290} GAH502r+HV               =       G1A502o +      GHO                                    :  0.100E+01*SUN;
+{ 55291} G2A504Q +GNO                =       G1A505t +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 55292} G2A504Q +GNO                =       GAH502q                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 55293} G2A504Q +GHO2               =       GAH502r                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 55294} G2A504Q +GNO3               =       G1A505t +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 55295} G2A504Q +MEPERO             =  0.340G1A505t + 0.330GAH500G + 0.330GAH501y                 : ARR( 0.565E-13,  -845., 0.0);
+{ 55296} G2A504Q +PERO1              =  0.460G1A505t + 0.270GAH500G + 0.270GAH501y                 : ARR( 0.434E-13,  -900., 0.0);
+{ 55297} G2A504Q +PERO2              =  0.400G1A505t + 0.300GAH500G + 0.300GAH501y                 : ARR( 0.162E-13, -1400., 0.0);
+{ 55298} G2A504Q +PERO3              =  0.460G1A505t + 0.270GAH500G + 0.270GAH501y                 : ARR( 0.488E-13, -1250., 0.0);
+{ 55299} G2A504Q +PERO5              =  0.460G1A505t + 0.270GAH500G + 0.270GAH501y                 : ARR( 0.183E-11,   450., 0.0);
+{ 55300} G2A504Q +PERO6              =  0.300G1A505t + 0.350GAH500G + 0.350GAH501y                 : ARR( 0.168E-13, -1300., 0.0);
+{ 55301} G2A504Q +PERO9              =  0.650G1A505t + 0.350GAH501y                                : ARR( 0.100E-10,     0., 0.0);
+{ 55302} G2A504R +GNO                =       G1A502o +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 55303} G2A504R +GNO                =       GAH500s                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 55304} G2A504R +GHO2               =       GAH502r                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 55305} G2A504R +GNO3               =       G1A502o +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 55306} G2A504R +MEPERO             =  0.480G1A502o + 0.260GAH5028 + 0.260GAH5039                 : ARR( 0.164E-12,  -795., 0.0);
+{ 55307} G2A504R +PERO1              =  0.600G1A502o + 0.200GAH5028 + 0.200GAH5039                 : ARR( 0.126E-12,  -850., 0.0);
+{ 55308} G2A504R +PERO2              =  0.560G1A502o + 0.220GAH5028 + 0.220GAH5039                 : ARR( 0.471E-13, -1350., 0.0);
+{ 55309} G2A504R +PERO3              =  0.600G1A502o + 0.200GAH5028 + 0.200GAH5039                 : ARR( 0.142E-12, -1200., 0.0);
+{ 55310} G2A504R +PERO5              =  0.600G1A502o + 0.200GAH5028 + 0.200GAH5039                 : ARR( 0.533E-11,   500., 0.0);
+{ 55311} G2A504R +PERO6              =  0.460G1A502o + 0.270GAH5028 + 0.270GAH5039                 : ARR( 0.488E-13, -1250., 0.0);
+{ 55312} G2A504R +PERO9              =  0.800G1A502o + 0.200GAH5039                                : ARR( 0.100E-10,     0., 0.0);
+{ 55313} G1A505u                     =       GAD3000 +      GHD2000 +      GHO                     : ARR( 0.200E+15,  4146., 0.0);
+{ 55314} GPH5031                     =       G3H5027 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 55315} GPH5031 +GHO                =       GPH503F +      GHO                                    : ARR( 0.162E-10,     0., 0.0);
+{ 55316} GPH5031 +GHO                =       GPH501v +      GHO                                    : ARR( 0.832E-11,     0., 0.0);
+{ 55317} GPH5031 +GHO                =       G2P504n                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 55318} GPH5031 +GHO                =       G2P504o                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 55319} GPH5031+HV               =       G1P502y +      GHO                                    :  0.100E+01*SUN;
+{ 55320} GPH5031+HV               =       G1P5053 +      GHO                                    :  0.100E+01*SUN;
+{ 55321} GPH5031+HV               =       G1P506f +      GNO2                                   :  0.100E+01*SUN;
+{ 55322} GPH5031+HV               =       G3H5027 +      GNO2                                   :  0.100E+01*SUN;
+{ 55323} G2P504n +GNO                =       G1P502y +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 55324} G2P504n +GNO                =       GPH500t                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 55325} G2P504n +GHO2               =       GPH5031                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 55326} G2P504n +GNO3               =       G1P502y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 55327} G2P504n +MEPERO             =  0.480G1P502y + 0.260GPH5025 + 0.260GPH503F                 : ARR( 0.164E-12,  -795., 0.0);
+{ 55328} G2P504n +PERO1              =  0.600G1P502y + 0.200GPH5025 + 0.200GPH503F                 : ARR( 0.126E-12,  -850., 0.0);
+{ 55329} G2P504n +PERO2              =  0.560G1P502y + 0.220GPH5025 + 0.220GPH503F                 : ARR( 0.471E-13, -1350., 0.0);
+{ 55330} G2P504n +PERO3              =  0.600G1P502y + 0.200GPH5025 + 0.200GPH503F                 : ARR( 0.142E-12, -1200., 0.0);
+{ 55331} G2P504n +PERO5              =  0.600G1P502y + 0.200GPH5025 + 0.200GPH503F                 : ARR( 0.533E-11,   500., 0.0);
+{ 55332} G2P504n +PERO6              =  0.460G1P502y + 0.270GPH5025 + 0.270GPH503F                 : ARR( 0.488E-13, -1250., 0.0);
+{ 55333} G2P504n +PERO9              =  0.800G1P502y + 0.200GPH503F                                : ARR( 0.100E-10,     0., 0.0);
+{ 55334} G2P504o +GNO                =       G1P5053 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 55335} G2P504o +GNO                =       GPH5026                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 55336} G2P504o +GHO2               =       GPH5031                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 55337} G2P504o +GNO3               =       G1P5053 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 55338} G2P504o +MEPERO             =  0.340G1P5053 + 0.330GPH500G + 0.330GPH501v                 : ARR( 0.565E-13,  -845., 0.0);
+{ 55339} G2P504o +PERO1              =  0.460G1P5053 + 0.270GPH500G + 0.270GPH501v                 : ARR( 0.434E-13,  -900., 0.0);
+{ 55340} G2P504o +PERO2              =  0.400G1P5053 + 0.300GPH500G + 0.300GPH501v                 : ARR( 0.162E-13, -1400., 0.0);
+{ 55341} G2P504o +PERO3              =  0.460G1P5053 + 0.270GPH500G + 0.270GPH501v                 : ARR( 0.488E-13, -1250., 0.0);
+{ 55342} G2P504o +PERO5              =  0.460G1P5053 + 0.270GPH500G + 0.270GPH501v                 : ARR( 0.183E-11,   450., 0.0);
+{ 55343} G2P504o +PERO6              =  0.300G1P5053 + 0.350GPH500G + 0.350GPH501v                 : ARR( 0.168E-13, -1300., 0.0);
+{ 55344} G2P504o +PERO9              =  0.650G1P5053 + 0.350GPH501v                                : ARR( 0.100E-10,     0., 0.0);
+{ 55345} G1P506f                     =       GHD2000 +      GPD3000 +      GHO                     : ARR( 0.200E+15,  4146., 0.0);
+{ 55346} GHH400t +GHO                =       GHH400u +      GHO                                    : ARR( 0.323E-11,     0., 0.0);
+{ 55347} GHH400t +GHO                =       GHH400m +      GHO                                    : ARR( 0.827E-11,     0., 0.0);
+{ 55348} GHH400t +GHO                =       GHH400a +      GHO                                    : ARR( 0.161E-10,     0., 0.0);
+{ 55349} GHH400t +GHO                =       G2H4018                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 55350} GHH400t +GHO                =       G2H401P                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 55351} GHH400t +GHO                =       G2H4019                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 55352} GHH400t+HV               =       G1H401a +      GHO                                    :  0.100E+01*SUN;
+{ 55353} GHH400t+HV               =       G1H401y +      GNO2                                   :  0.100E+01*SUN;
+{ 55354} GHH400t+HV               =       G1H401x +      GHO                                    :  0.100E+01*SUN;
+{ 55355} GHH400t+HV               =       G1H401b +      GHO                                    :  0.100E+01*SUN;
+{ 55356} G2H401P +GNO                =       G1H401x +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 55357} G2H401P +GNO                =       GHH400s                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 55358} G2H401P +GHO2               =       GHH400t                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 55359} G2H401P +GNO3               =       G1H401x +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 55360} G2H401P +MEPERO             =  0.340G1H401x + 0.330GHH400E + 0.330GHH400m                 : ARR( 0.565E-13,  -845., 0.0);
+{ 55361} G2H401P +PERO1              =  0.460G1H401x + 0.270GHH400E + 0.270GHH400m                 : ARR( 0.434E-13,  -900., 0.0);
+{ 55362} G2H401P +PERO2              =  0.400G1H401x + 0.300GHH400E + 0.300GHH400m                 : ARR( 0.162E-13, -1400., 0.0);
+{ 55363} G2H401P +PERO3              =  0.460G1H401x + 0.270GHH400E + 0.270GHH400m                 : ARR( 0.488E-13, -1250., 0.0);
+{ 55364} G2H401P +PERO5              =  0.460G1H401x + 0.270GHH400E + 0.270GHH400m                 : ARR( 0.183E-11,   450., 0.0);
+{ 55365} G2H401P +PERO6              =  0.300G1H401x + 0.350GHH400E + 0.350GHH400m                 : ARR( 0.168E-13, -1300., 0.0);
+{ 55366} G2H401P +PERO9              =  0.650G1H401x + 0.350GHH400m                                : ARR( 0.100E-10,     0., 0.0);
+{ 55367} G1H401y                     =  2.000GHD2000 +      GHO                                    : ARR( 0.200E+15,  4843., 0.0);
+{ 55368} GHH400u +GHO                =       GHN400y +      GHO                                    : ARR( 0.161E-10,     0., 0.0);
+{ 55369} GHH400u +GHO                =       GHN401A +      GHO                                    : ARR( 0.826E-11,     0., 0.0);
+{ 55370} GHH400u +GHO                =       G3H400x                                               : ARR( 0.416E-11,     0., 0.0);
+{ 55371} GHH400u +GHO                =       G2H401F                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 55372} GHH400u +GHO                =       G2H401Q                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 55373} GHH400u +GNO3               =       G3H400x +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 55374} GHH400u+HV               =       G1H401h +      GHO                                    :  0.100E+01*SUN;
+{ 55375} GHH400u+HV               =       G1H401m +      GHO                                    :  0.100E+01*SUN;
+{ 55376} GHH400u+HV               =       G1H401u +      GNO2                                   :  0.100E+01*SUN;
+{ 55377} GHH400u+HV               =       GHH3005 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 55378} GHH400u+HV               =       GDD2000 +      GND2000 + 2.000GHO                     :  0.100E+01*SUN;
+{ 55379} G3H400x +GHO2               =  0.800GGH400y + 0.200GAH400y + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 55380} G3H400x +GNO                =       GHH3005 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 55381} G3H400x +GNO2               =       GPH400y                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 55382} G3H400x +GNO3               =       GHH3005 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 55383} G3H400x +MEPERO             =  0.685GHH3005 + 0.315GAH400y + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 55384} G3H400x +PERO1              =  0.800GHH3005 + 0.200GAH400y + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 55385} G3H400x +PERO2              =  0.750GHH3005 + 0.250GAH400y + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 55386} G3H400x +PERO3              =  0.800GHH3005 + 0.200GAH400y + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 55387} G3H400x +PERO5              =  0.650GHH3005 + 0.350GAH400y + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 55388} G3H400x +PERO6              =  0.650GHH3005 + 0.350GAH400y + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 55389} G3H400x +PERO9              =       GHH3005 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 55390} G2H401Q +GNO                =       G1H401m +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 55391} G2H401Q +GNO                =       GHN4013                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 55392} G2H401Q +GHO2               =       GHH400u                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 55393} G2H401Q +GNO3               =       G1H401m +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 55394} G2H401Q +MEPERO             =  0.340G1H401m + 0.330GHN400Y + 0.330GHN401A                 : ARR( 0.565E-13,  -845., 0.0);
+{ 55395} G2H401Q +PERO1              =  0.460G1H401m + 0.270GHN400Y + 0.270GHN401A                 : ARR( 0.434E-13,  -900., 0.0);
+{ 55396} G2H401Q +PERO2              =  0.400G1H401m + 0.300GHN400Y + 0.300GHN401A                 : ARR( 0.162E-13, -1400., 0.0);
+{ 55397} G2H401Q +PERO3              =  0.460G1H401m + 0.270GHN400Y + 0.270GHN401A                 : ARR( 0.488E-13, -1250., 0.0);
+{ 55398} G2H401Q +PERO5              =  0.460G1H401m + 0.270GHN400Y + 0.270GHN401A                 : ARR( 0.183E-11,   450., 0.0);
+{ 55399} G2H401Q +PERO6              =  0.300G1H401m + 0.350GHN400Y + 0.350GHN401A                 : ARR( 0.168E-13, -1300., 0.0);
+{ 55400} G2H401Q +PERO9              =  0.650G1H401m + 0.350GHN401A                                : ARR( 0.100E-10,     0., 0.0);
+{ 55401} GGH502h +GHO                =       GGH5034 +      GHO                                    : ARR( 0.336E-11,     0., 0.0);
+{ 55402} GGH502h +GHO                =       GGH502j +      GHO                                    : ARR( 0.861E-11,     0., 0.0);
+{ 55403} GGH502h +GHO                =       G2G503T                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 55404} GGH502h +GHO                =       G2G503U                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 55405} GGH502h +GHO                =       G3H5028                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 55406} GGH502h+HV               =       G1G5036 +      GHO                                    :  0.100E+01*SUN;
+{ 55407} GGH502h+HV               =       G1G504v +      GNO2                                   :  0.100E+01*SUN;
+{ 55408} GGH502h+HV               =       G1G504t +      GHO                                    :  0.100E+01*SUN;
+{ 55409} GGH502h+HV               =       G2H4019 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 55410} G2G503T +GNO                =       G1G5036 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 55411} G2G503T +GNO                =       GGH501C                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 55412} G2G503T +GHO2               =       GGH502h                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 55413} G2G503T +GNO3               =       G1G5036 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 55414} G2G503T +MEPERO             =  0.480G1G5036 + 0.260GGH502o + 0.260GGH5034                 : ARR( 0.164E-12,  -795., 0.0);
+{ 55415} G2G503T +PERO1              =  0.600G1G5036 + 0.200GGH502o + 0.200GGH5034                 : ARR( 0.126E-12,  -850., 0.0);
+{ 55416} G2G503T +PERO2              =  0.560G1G5036 + 0.220GGH502o + 0.220GGH5034                 : ARR( 0.471E-13, -1350., 0.0);
+{ 55417} G2G503T +PERO3              =  0.600G1G5036 + 0.200GGH502o + 0.200GGH5034                 : ARR( 0.142E-12, -1200., 0.0);
+{ 55418} G2G503T +PERO5              =  0.600G1G5036 + 0.200GGH502o + 0.200GGH5034                 : ARR( 0.533E-11,   500., 0.0);
+{ 55419} G2G503T +PERO6              =  0.460G1G5036 + 0.270GGH502o + 0.270GGH5034                 : ARR( 0.488E-13, -1250., 0.0);
+{ 55420} G2G503T +PERO9              =  0.800G1G5036 + 0.200GGH5034                                : ARR( 0.100E-10,     0., 0.0);
+{ 55421} G2G503U +GNO                =       G1G504t +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 55422} G2G503U +GNO                =       GGH502f                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 55423} G2G503U +GHO2               =       GGH502h                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 55424} G2G503U +GNO3               =       G1G504t +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 55425} G2G503U +MEPERO             =  0.340G1G504t + 0.330GGH502i + 0.330GGH502j                 : ARR( 0.565E-13,  -845., 0.0);
+{ 55426} G2G503U +PERO1              =  0.460G1G504t + 0.270GGH502i + 0.270GGH502j                 : ARR( 0.434E-13,  -900., 0.0);
+{ 55427} G2G503U +PERO2              =  0.400G1G504t + 0.300GGH502i + 0.300GGH502j                 : ARR( 0.162E-13, -1400., 0.0);
+{ 55428} G2G503U +PERO3              =  0.460G1G504t + 0.270GGH502i + 0.270GGH502j                 : ARR( 0.488E-13, -1250., 0.0);
+{ 55429} G2G503U +PERO5              =  0.460G1G504t + 0.270GGH502i + 0.270GGH502j                 : ARR( 0.183E-11,   450., 0.0);
+{ 55430} G2G503U +PERO6              =  0.300G1G504t + 0.350GGH502i + 0.350GGH502j                 : ARR( 0.168E-13, -1300., 0.0);
+{ 55431} G2G503U +PERO9              =  0.650G1G504t + 0.350GGH502j                                : ARR( 0.100E-10,     0., 0.0);
+{ 55432} G1G504v                     =       GHD2000 +      GGD3000 +      GHO                     : ARR( 0.200E+15,  4828., 0.0);
+{ 55433} GAH502s +GHO                =       GAH502u +      GHO                                    : ARR( 0.881E-11,     0., 0.0);
+{ 55434} GAH502s +GHO                =       GAH503J +      GHO                                    : ARR( 0.344E-11,     0., 0.0);
+{ 55435} GAH502s +GHO                =       G2A504S                                               : ARR( 0.203E-11,  -190., 0.0);
+{ 55436} GAH502s +GHO                =       G2A504T                                               : ARR( 0.203E-11,  -190., 0.0);
+{ 55437} GAH502s+HV               =       G1A505s +      GHO                                    :  0.100E+01*SUN;
+{ 55438} GAH502s+HV               =       G1A505v +      GNO2                                   :  0.100E+01*SUN;
+{ 55439} GAH502s+HV               =       G1A503Y +      GHO                                    :  0.100E+01*SUN;
+{ 55440} G2A504S +GNO                =       G1A505s +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 55441} G2A504S +GNO                =       GAH502q                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 55442} G2A504S +GHO2               =       GAH502s                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 55443} G2A504S +GNO3               =       G1A505s +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 55444} G2A504S +MEPERO             =  0.340G1A505s + 0.330GAH502t + 0.330GAH502u                 : ARR( 0.565E-13,  -845., 0.0);
+{ 55445} G2A504S +PERO1              =  0.460G1A505s + 0.270GAH502t + 0.270GAH502u                 : ARR( 0.434E-13,  -900., 0.0);
+{ 55446} G2A504S +PERO2              =  0.400G1A505s + 0.300GAH502t + 0.300GAH502u                 : ARR( 0.162E-13, -1400., 0.0);
+{ 55447} G2A504S +PERO3              =  0.460G1A505s + 0.270GAH502t + 0.270GAH502u                 : ARR( 0.488E-13, -1250., 0.0);
+{ 55448} G2A504S +PERO5              =  0.460G1A505s + 0.270GAH502t + 0.270GAH502u                 : ARR( 0.183E-11,   450., 0.0);
+{ 55449} G2A504S +PERO6              =  0.300G1A505s + 0.350GAH502t + 0.350GAH502u                 : ARR( 0.168E-13, -1300., 0.0);
+{ 55450} G2A504S +PERO9              =  0.650G1A505s + 0.350GAH502u                                : ARR( 0.100E-10,     0., 0.0);
+{ 55451} G2A504T +GNO                =       G1A503Y +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 55452} G2A504T +GNO                =       GAH501C                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 55453} G2A504T +GHO2               =       GAH502s                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 55454} G2A504T +GNO3               =       G1A503Y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 55455} G2A504T +MEPERO             =  0.480G1A503Y + 0.260GAH5026 + 0.260GAH503J                 : ARR( 0.164E-12,  -795., 0.0);
+{ 55456} G2A504T +PERO1              =  0.600G1A503Y + 0.200GAH5026 + 0.200GAH503J                 : ARR( 0.126E-12,  -850., 0.0);
+{ 55457} G2A504T +PERO2              =  0.560G1A503Y + 0.220GAH5026 + 0.220GAH503J                 : ARR( 0.471E-13, -1350., 0.0);
+{ 55458} G2A504T +PERO3              =  0.600G1A503Y + 0.200GAH5026 + 0.200GAH503J                 : ARR( 0.142E-12, -1200., 0.0);
+{ 55459} G2A504T +PERO5              =  0.600G1A503Y + 0.200GAH5026 + 0.200GAH503J                 : ARR( 0.533E-11,   500., 0.0);
+{ 55460} G2A504T +PERO6              =  0.460G1A503Y + 0.270GAH5026 + 0.270GAH503J                 : ARR( 0.488E-13, -1250., 0.0);
+{ 55461} G2A504T +PERO9              =  0.800G1A503Y + 0.200GAH503J                                : ARR( 0.100E-10,     0., 0.0);
+{ 55462} G1A505v                     =       GAD3000 +      GHD2000 +      GHO                     : ARR( 0.200E+15,  4828., 0.0);
+{ 55463} GPH5032                     =       G3H5028 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 55464} GPH5032 +GHO                =       GPH503P +      GHO                                    : ARR( 0.339E-11,     0., 0.0);
+{ 55465} GPH5032 +GHO                =       GPH502R +      GHO                                    : ARR( 0.868E-11,     0., 0.0);
+{ 55466} GPH5032 +GHO                =       G2P504p                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 55467} GPH5032 +GHO                =       G2P504q                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 55468} GPH5032+HV               =       G1P503S +      GHO                                    :  0.100E+01*SUN;
+{ 55469} GPH5032+HV               =       G1P506g +      GNO2                                   :  0.100E+01*SUN;
+{ 55470} GPH5032+HV               =       G1P5054 +      GHO                                    :  0.100E+01*SUN;
+{ 55471} GPH5032+HV               =       G3H5028 +      GNO2                                   :  0.100E+01*SUN;
+{ 55472} G2P504p +GNO                =       G1P503S +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 55473} G2P504p +GNO                =       GPH5016                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 55474} G2P504p +GHO2               =       GPH5032                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 55475} G2P504p +GNO3               =       G1P503S +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 55476} G2P504p +MEPERO             =  0.480G1P503S + 0.260GPH5023 + 0.260GPH503P                 : ARR( 0.164E-12,  -795., 0.0);
+{ 55477} G2P504p +PERO1              =  0.600G1P503S + 0.200GPH5023 + 0.200GPH503P                 : ARR( 0.126E-12,  -850., 0.0);
+{ 55478} G2P504p +PERO2              =  0.560G1P503S + 0.220GPH5023 + 0.220GPH503P                 : ARR( 0.471E-13, -1350., 0.0);
+{ 55479} G2P504p +PERO3              =  0.600G1P503S + 0.200GPH5023 + 0.200GPH503P                 : ARR( 0.142E-12, -1200., 0.0);
+{ 55480} G2P504p +PERO5              =  0.600G1P503S + 0.200GPH5023 + 0.200GPH503P                 : ARR( 0.533E-11,   500., 0.0);
+{ 55481} G2P504p +PERO6              =  0.460G1P503S + 0.270GPH5023 + 0.270GPH503P                 : ARR( 0.488E-13, -1250., 0.0);
+{ 55482} G2P504p +PERO9              =  0.800G1P503S + 0.200GPH503P                                : ARR( 0.100E-10,     0., 0.0);
+{ 55483} G2P504q +GNO                =       G1P5054 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 55484} G2P504q +GNO                =       GPH5026                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 55485} G2P504q +GHO2               =       GPH5032                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 55486} G2P504q +GNO3               =       G1P5054 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 55487} G2P504q +MEPERO             =  0.340G1P5054 + 0.330GPH5033 + 0.330GPH502R                 : ARR( 0.565E-13,  -845., 0.0);
+{ 55488} G2P504q +PERO1              =  0.460G1P5054 + 0.270GPH5033 + 0.270GPH502R                 : ARR( 0.434E-13,  -900., 0.0);
+{ 55489} G2P504q +PERO2              =  0.400G1P5054 + 0.300GPH5033 + 0.300GPH502R                 : ARR( 0.162E-13, -1400., 0.0);
+{ 55490} G2P504q +PERO3              =  0.460G1P5054 + 0.270GPH5033 + 0.270GPH502R                 : ARR( 0.488E-13, -1250., 0.0);
+{ 55491} G2P504q +PERO5              =  0.460G1P5054 + 0.270GPH5033 + 0.270GPH502R                 : ARR( 0.183E-11,   450., 0.0);
+{ 55492} G2P504q +PERO6              =  0.300G1P5054 + 0.350GPH5033 + 0.350GPH502R                 : ARR( 0.168E-13, -1300., 0.0);
+{ 55493} G2P504q +PERO9              =  0.650G1P5054 + 0.350GPH502R                                : ARR( 0.100E-10,     0., 0.0);
+{ 55494} G1P506g                     =       GHD2000 +      GPD3000 +      GHO                     : ARR( 0.200E+15,  4828., 0.0);
+{ 55495} GHH400v +GHO                =       GHH400a +      GHO2                                   : ARR( 0.407E-11,     0., 0.0);
+{ 55496} GHH400v +GHO                =       GHN401B +      GHO                                    : ARR( 0.834E-11,     0., 0.0);
+{ 55497} GHH400v +GHO                =       GHN400L +      GHO                                    : ARR( 0.325E-11,     0., 0.0);
+{ 55498} GHH400v +GHO                =       G2H401R                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 55499} GHH400v +GHO                =       G2H401E                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 55500} GHH400v+HV               =       G1H401J +      GHO                                    :  0.100E+01*SUN;
+{ 55501} GHH400v+HV               =       G1H401R +      GNO2                                   :  0.100E+01*SUN;
+{ 55502} GHH400v+HV               =       G1H401G +      GHO                                    :  0.100E+01*SUN;
+{ 55503} G2H401R +GNO                =       G1H401J +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 55504} G2H401R +GNO                =       GHN400o                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 55505} G2H401R +GHO2               =       GHH400v                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 55506} G2H401R +GNO3               =       G1H401J +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 55507} G2H401R +MEPERO             =  0.340G1H401J + 0.330GHN400a + 0.330GHN401B                 : ARR( 0.565E-13,  -845., 0.0);
+{ 55508} G2H401R +PERO1              =  0.460G1H401J + 0.270GHN400a + 0.270GHN401B                 : ARR( 0.434E-13,  -900., 0.0);
+{ 55509} G2H401R +PERO2              =  0.400G1H401J + 0.300GHN400a + 0.300GHN401B                 : ARR( 0.162E-13, -1400., 0.0);
+{ 55510} G2H401R +PERO3              =  0.460G1H401J + 0.270GHN400a + 0.270GHN401B                 : ARR( 0.488E-13, -1250., 0.0);
+{ 55511} G2H401R +PERO5              =  0.460G1H401J + 0.270GHN400a + 0.270GHN401B                 : ARR( 0.183E-11,   450., 0.0);
+{ 55512} G2H401R +PERO6              =  0.300G1H401J + 0.350GHN400a + 0.350GHN401B                 : ARR( 0.168E-13, -1300., 0.0);
+{ 55513} G2H401R +PERO9              =  0.650G1H401J + 0.350GHN401B                                : ARR( 0.100E-10,     0., 0.0);
+{ 55514} GHH502n +GHO                =       GHN506g +      GHO                                    : ARR( 0.325E-11,     0., 0.0);
+{ 55515} GHH502n +GHO                =       GHN506l +      GHO                                    : ARR( 0.167E-11,     0., 0.0);
+{ 55516} GHH502n +GHO                =       G3H504Q                                               : ARR( 0.420E-11,     0., 0.0);
+{ 55517} GHH502n +GHO                =       G2H503o                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 55518} GHH502n +GHO                =       G2H503p                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 55519} GHH502n +GNO3               =       G3H504Q +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 55520} GHH502n+HV               =       G1H50BK +      GHO                                    :  0.100E+01*SUN;
+{ 55521} GHH502n+HV               =       G1H50BR +      GNO2                                   :  0.100E+01*SUN;
+{ 55522} GHH502n+HV               =       G1H50BS +      GHO                                    :  0.100E+01*SUN;
+{ 55523} GHH502n+HV               =       G1H50BT +      GNO2                                   :  0.100E+01*SUN;
+{ 55524} GHH502n+HV               =       GHH400a +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 55525} GHH502n+HV               =       GHD3001 +      GND2000 +      GHO     +      GNO2     :  0.100E+01*SUN;
+{ 55526} G3H504Q +GHO2               =  0.800GGH504s + 0.200GAH504z + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 55527} G3H504Q +GNO                =       GHH400a + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 55528} G3H504Q +GNO2               =       GPH5059                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 55529} G3H504Q +GNO3               =       GHH400a + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 55530} G3H504Q +MEPERO             =  0.685GHH400a + 0.315GAH504z + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 55531} G3H504Q +PERO1              =  0.800GHH400a + 0.200GAH504z + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 55532} G3H504Q +PERO2              =  0.750GHH400a + 0.250GAH504z + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 55533} G3H504Q +PERO3              =  0.800GHH400a + 0.200GAH504z + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 55534} G3H504Q +PERO5              =  0.650GHH400a + 0.350GAH504z + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 55535} G3H504Q +PERO6              =  0.650GHH400a + 0.350GAH504z + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 55536} G3H504Q +PERO9              =       GHH400a +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 55537} G2H503o +GNO                =       G1H50BK +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 55538} G2H503o +GNO                =       GHN506W                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 55539} G2H503o +GHO2               =       GHH502n                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 55540} G2H503o +GNO3               =       G1H50BK +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 55541} G2H503o +MEPERO             =  0.480G1H50BK + 0.260GHN505J + 0.260GHN506g                 : ARR( 0.164E-12,  -795., 0.0);
+{ 55542} G2H503o +PERO1              =  0.600G1H50BK + 0.200GHN505J + 0.200GHN506g                 : ARR( 0.126E-12,  -850., 0.0);
+{ 55543} G2H503o +PERO2              =  0.560G1H50BK + 0.220GHN505J + 0.220GHN506g                 : ARR( 0.471E-13, -1350., 0.0);
+{ 55544} G2H503o +PERO3              =  0.600G1H50BK + 0.200GHN505J + 0.200GHN506g                 : ARR( 0.142E-12, -1200., 0.0);
+{ 55545} G2H503o +PERO5              =  0.600G1H50BK + 0.200GHN505J + 0.200GHN506g                 : ARR( 0.533E-11,   500., 0.0);
+{ 55546} G2H503o +PERO6              =  0.460G1H50BK + 0.270GHN505J + 0.270GHN506g                 : ARR( 0.488E-13, -1250., 0.0);
+{ 55547} G2H503o +PERO9              =  0.800G1H50BK + 0.200GHN506g                                : ARR( 0.100E-10,     0., 0.0);
+{ 55548} G2H503p +GNO                =       G1H50BS +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 55549} G2H503p +GNO                =       GHN506k                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 55550} G2H503p +GHO2               =       GHH502n                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 55551} G2H503p +GNO3               =       G1H50BS +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 55552} G2H503p +MEPERO             =  0.340G1H50BS + 0.330GHN506d + 0.330GHN506l                 : ARR( 0.565E-13,  -845., 0.0);
+{ 55553} G2H503p +PERO1              =  0.460G1H50BS + 0.270GHN506d + 0.270GHN506l                 : ARR( 0.434E-13,  -900., 0.0);
+{ 55554} G2H503p +PERO2              =  0.400G1H50BS + 0.300GHN506d + 0.300GHN506l                 : ARR( 0.162E-13, -1400., 0.0);
+{ 55555} G2H503p +PERO3              =  0.460G1H50BS + 0.270GHN506d + 0.270GHN506l                 : ARR( 0.488E-13, -1250., 0.0);
+{ 55556} G2H503p +PERO5              =  0.460G1H50BS + 0.270GHN506d + 0.270GHN506l                 : ARR( 0.183E-11,   450., 0.0);
+{ 55557} G2H503p +PERO6              =  0.300G1H50BS + 0.350GHN506d + 0.350GHN506l                 : ARR( 0.168E-13, -1300., 0.0);
+{ 55558} G2H503p +PERO9              =  0.650G1H50BS + 0.350GHN506l                                : ARR( 0.100E-10,     0., 0.0);
+{ 55559} G1H50BR                     =       GHD2000 +      GND3005 +      GHO                     : ARR( 0.200E+15,  4828., 0.0);
+{ 55560} G1H50BS                     =       GHD2000 +      GND3005 +      GNO2                    : ARR( 0.200E+15,  5492., 0.0);
+{ 55561} G1H50BS                     =       GHN300A +      GDD2000 +      GNO2                    : ARR( 0.200E+15,  6455., 0.0);
+{ 55562} G1H50BT                     =       GHN506M +      GHO                                    : ARR( 0.160E+12,  2905., 0.0);
+{ 55563} G1H50BT                     =       GHN300A +      GDD2000 +      GHO                     : ARR( 0.200E+15,  6108., 0.0);
+{ 55564} G1H50BT                     =       GHH400a +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 55565} GHH502o +GHO                =       GHN506M +      GHO                                    : ARR( 0.162E-10,     0., 0.0);
+{ 55566} GHH502o +GHO                =       GHH503C +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 55567} GHH502o +GHO                =       GHN506p +      GHO                                    : ARR( 0.828E-11,     0., 0.0);
+{ 55568} GHH502o +GHO                =       G3H504R                                               : ARR( 0.417E-11,     0., 0.0);
+{ 55569} GHH502o +GHO                =       G2H503q                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 55570} GHH502o +GHO                =       G2H503r                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 55571} GHH502o +GNO3               =       G3H504R +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 55572} GHH502o+HV               =       G1H508D +      GHO                                    :  0.100E+01*SUN;
+{ 55573} GHH502o+HV               =       G1H509p +      GHO                                    :  0.100E+01*SUN;
+{ 55574} GHH502o+HV               =       G1H50B3 +      GNO2                                   :  0.100E+01*SUN;
+{ 55575} GHH502o+HV               =       GHH400H +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 55576} GHH502o+HV               =       GHH3002 +      GND2000                                :  0.100E+01*SUN;
+{ 55577} G3H504R +GHO2               =  0.800GGH504t + 0.200GAH5051 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 55578} G3H504R +GNO                =       GHH400H + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 55579} G3H504R +GNO2               =       GPH505A                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 55580} G3H504R +GNO3               =       GHH400H + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 55581} G3H504R +MEPERO             =  0.685GHH400H + 0.315GAH5051 + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 55582} G3H504R +PERO1              =  0.800GHH400H + 0.200GAH5051 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 55583} G3H504R +PERO2              =  0.750GHH400H + 0.250GAH5051 + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 55584} G3H504R +PERO3              =  0.800GHH400H + 0.200GAH5051 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 55585} G3H504R +PERO5              =  0.650GHH400H + 0.350GAH5051 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 55586} G3H504R +PERO6              =  0.650GHH400H + 0.350GAH5051 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 55587} G3H504R +PERO9              =       GHH400H +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 55588} G2H503q +GNO                =       G1H508D +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 55589} G2H503q +GNO                =       GHN504n                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 55590} G2H503q +GHO2               =       GHH502o                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 55591} G2H503q +GNO3               =       G1H508D +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 55592} G2H503q +MEPERO             =  0.480G1H508D + 0.260GHN5042 + 0.260GHN506M                 : ARR( 0.164E-12,  -795., 0.0);
+{ 55593} G2H503q +PERO1              =  0.600G1H508D + 0.200GHN5042 + 0.200GHN506M                 : ARR( 0.126E-12,  -850., 0.0);
+{ 55594} G2H503q +PERO2              =  0.560G1H508D + 0.220GHN5042 + 0.220GHN506M                 : ARR( 0.471E-13, -1350., 0.0);
+{ 55595} G2H503q +PERO3              =  0.600G1H508D + 0.200GHN5042 + 0.200GHN506M                 : ARR( 0.142E-12, -1200., 0.0);
+{ 55596} G2H503q +PERO5              =  0.600G1H508D + 0.200GHN5042 + 0.200GHN506M                 : ARR( 0.533E-11,   500., 0.0);
+{ 55597} G2H503q +PERO6              =  0.460G1H508D + 0.270GHN5042 + 0.270GHN506M                 : ARR( 0.488E-13, -1250., 0.0);
+{ 55598} G2H503q +PERO9              =  0.800G1H508D + 0.200GHN506M                                : ARR( 0.100E-10,     0., 0.0);
+{ 55599} G2H503r +GNO                =       G1H509p +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 55600} G2H503r +GNO                =       GHN505g                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 55601} G2H503r +GHO2               =       GHH502o                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 55602} G2H503r +GNO3               =       G1H509p +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 55603} G2H503r +MEPERO             =  0.340G1H509p + 0.330GHN506w + 0.330GHN506p                 : ARR( 0.565E-13,  -845., 0.0);
+{ 55604} G2H503r +PERO1              =  0.460G1H509p + 0.270GHN506w + 0.270GHN506p                 : ARR( 0.434E-13,  -900., 0.0);
+{ 55605} G2H503r +PERO2              =  0.400G1H509p + 0.300GHN506w + 0.300GHN506p                 : ARR( 0.162E-13, -1400., 0.0);
+{ 55606} G2H503r +PERO3              =  0.460G1H509p + 0.270GHN506w + 0.270GHN506p                 : ARR( 0.488E-13, -1250., 0.0);
+{ 55607} G2H503r +PERO5              =  0.460G1H509p + 0.270GHN506w + 0.270GHN506p                 : ARR( 0.183E-11,   450., 0.0);
+{ 55608} G2H503r +PERO6              =  0.300G1H509p + 0.350GHN506w + 0.350GHN506p                 : ARR( 0.168E-13, -1300., 0.0);
+{ 55609} G2H503r +PERO9              =  0.650G1H509p + 0.350GHN506p                                : ARR( 0.100E-10,     0., 0.0);
+{ 55610} GHH502p +GHO                =       GHH503D +      GHO                                    : ARR( 0.313E-10,     0., 0.0);
+{ 55611} GHH502p +GHO                =       GHH502s +      GHO                                    : ARR( 0.301E-10,     0., 0.0);
+{ 55612} GHH502p +GHO                =       G3H504S                                               : ARR( 0.248E-10,     0., 0.0);
+{ 55613} GHH502p +GNO3               =       G3H504S +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 55614} GHH502p+HV               =       G1H50BP +      GHO                                    :  0.100E+01*SUN;
+{ 55615} GHH502p+HV               =       G1H50BU +      GNO2                                   :  0.100E+01*SUN;
+{ 55616} GHH502p+HV               =       G1H50BW +      GHO                                    :  0.100E+01*SUN;
+{ 55617} GHH502p+HV               =       G1H50BT +      GHO                                    :  0.100E+01*SUN;
+{ 55618} GHH502p+HV               =       GHH400a +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 55619} G3H504S +GHO2               =  0.800GGH504u + 0.200GAH5052 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 55620} G3H504S +GNO                =       GHH400a +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 55621} G3H504S +GNO2               =       GPH505B                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 55622} G3H504S +GNO3               =       GHH400a +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 55623} G3H504S +MEPERO             =  0.685GHH400a + 0.315GAH5052 + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 55624} G3H504S +PERO1              =  0.800GHH400a + 0.200GAH5052 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 55625} G3H504S +PERO2              =  0.750GHH400a + 0.250GAH5052 + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 55626} G3H504S +PERO3              =  0.800GHH400a + 0.200GAH5052 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 55627} G3H504S +PERO5              =  0.650GHH400a + 0.350GAH5052 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 55628} G3H504S +PERO6              =  0.650GHH400a + 0.350GAH5052 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 55629} G3H504S +PERO9              =       GHH400a +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 55630} G1H50BU                     =       GHD2000 +      GHD3004 +      GHO                     : ARR( 0.200E+15,  4828., 0.0);
+{ 55631} G1H50BW                     =       GHD2000 +      GHD3004 +      GNO2                    : ARR( 0.200E+15,  5492., 0.0);
+{ 55632} G1H50BW                     =       GHN300A +      GDD2000 +      GHO                     : ARR( 0.200E+15,  4917., 0.0);
+{ 55633} GHH502q +GHO                =       GHH503D +      GHO2                                   : ARR( 0.128E-10,     0., 0.0);
+{ 55634} GHH502q +GHO                =       GHN506b +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 55635} GHH502q +GHO                =       GHN506h +      GHO                                    : ARR( 0.323E-11,     0., 0.0);
+{ 55636} GHH502q +GHO                =       G2H503s                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 55637} GHH502q +GHO                =       G2H503t                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 55638} GHH502q+HV               =       G1H50AA +      GHO                                    :  0.100E+01*SUN;
+{ 55639} GHH502q+HV               =       G3H3004 +      GHD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 55640} GHH502q+HV               =       G1H50BX +      GNO2                                   :  0.100E+01*SUN;
+{ 55641} GHH502q+HV               =       G1H50AE +      GHO                                    :  0.100E+01*SUN;
+{ 55642} G2H503s +GNO                =       G1H50AA +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 55643} G2H503s +GNO                =       GHN505u                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 55644} G2H503s +GHO2               =       GHH502q                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 55645} G2H503s +GNO3               =       G1H50AA +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 55646} G2H503s +MEPERO             =  0.340G1H50AA + 0.330GHN506G + 0.330GHN506b                 : ARR( 0.565E-13,  -845., 0.0);
+{ 55647} G2H503s +PERO1              =  0.460G1H50AA + 0.270GHN506G + 0.270GHN506b                 : ARR( 0.434E-13,  -900., 0.0);
+{ 55648} G2H503s +PERO2              =  0.400G1H50AA + 0.300GHN506G + 0.300GHN506b                 : ARR( 0.162E-13, -1400., 0.0);
+{ 55649} G2H503s +PERO3              =  0.460G1H50AA + 0.270GHN506G + 0.270GHN506b                 : ARR( 0.488E-13, -1250., 0.0);
+{ 55650} G2H503s +PERO5              =  0.460G1H50AA + 0.270GHN506G + 0.270GHN506b                 : ARR( 0.183E-11,   450., 0.0);
+{ 55651} G2H503s +PERO6              =  0.300G1H50AA + 0.350GHN506G + 0.350GHN506b                 : ARR( 0.168E-13, -1300., 0.0);
+{ 55652} G2H503s +PERO9              =  0.650G1H50AA + 0.350GHN506b                                : ARR( 0.100E-10,     0., 0.0);
+{ 55653} G2H503t +GNO                =       G1H50AE +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 55654} G2H503t +GNO                =       GHN505w                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 55655} G2H503t +GHO2               =       GHH502q                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 55656} G2H503t +GNO3               =       G1H50AE +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 55657} G2H503t +MEPERO             =  0.480G1H50AE + 0.260GHN505A + 0.260GHN506h                 : ARR( 0.164E-12,  -795., 0.0);
+{ 55658} G2H503t +PERO1              =  0.600G1H50AE + 0.200GHN505A + 0.200GHN506h                 : ARR( 0.126E-12,  -850., 0.0);
+{ 55659} G2H503t +PERO2              =  0.560G1H50AE + 0.220GHN505A + 0.220GHN506h                 : ARR( 0.471E-13, -1350., 0.0);
+{ 55660} G2H503t +PERO3              =  0.600G1H50AE + 0.200GHN505A + 0.200GHN506h                 : ARR( 0.142E-12, -1200., 0.0);
+{ 55661} G2H503t +PERO5              =  0.600G1H50AE + 0.200GHN505A + 0.200GHN506h                 : ARR( 0.533E-11,   500., 0.0);
+{ 55662} G2H503t +PERO6              =  0.460G1H50AE + 0.270GHN505A + 0.270GHN506h                 : ARR( 0.488E-13, -1250., 0.0);
+{ 55663} G2H503t +PERO9              =  0.800G1H50AE + 0.200GHN506h                                : ARR( 0.100E-10,     0., 0.0);
+{ 55664} G1H50BX                     =       G3H3004 +      GHD2000                                : ARR( 0.200E+15,  3031., 0.0);
+{ 55665} GHH502r +GHO                =       GHH503E +      GHO2                                   : ARR( 0.405E-11,     0., 0.0);
+{ 55666} GHH502r +GHO                =       GHN506c +      GHO                                    : ARR( 0.831E-11,     0., 0.0);
+{ 55667} GHH502r +GHO                =       GHN505l +      GHO                                    : ARR( 0.324E-11,     0., 0.0);
+{ 55668} GHH502r +GHO                =       G2H503u                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 55669} GHH502r +GHO                =       G2H503v                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 55670} GHH502r+HV               =       G1H509m +      GHO                                    :  0.100E+01*SUN;
+{ 55671} GHH502r+HV               =       G1H508o +      GNO2                                   :  0.100E+01*SUN;
+{ 55672} GHH502r+HV               =       G1H50BY +      GNO2                                   :  0.100E+01*SUN;
+{ 55673} GHH502r+HV               =       G1H505P +      GHO                                    :  0.100E+01*SUN;
+{ 55674} G2H503u +GNO                =       G1H509m +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 55675} G2H503u +GNO                =       GHN505f                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 55676} G2H503u +GHO2               =       GHH502r                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 55677} G2H503u +GNO3               =       G1H509m +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 55678} G2H503u +MEPERO             =  0.340G1H509m + 0.330GHN506H + 0.330GHN506c                 : ARR( 0.565E-13,  -845., 0.0);
+{ 55679} G2H503u +PERO1              =  0.460G1H509m + 0.270GHN506H + 0.270GHN506c                 : ARR( 0.434E-13,  -900., 0.0);
+{ 55680} G2H503u +PERO2              =  0.400G1H509m + 0.300GHN506H + 0.300GHN506c                 : ARR( 0.162E-13, -1400., 0.0);
+{ 55681} G2H503u +PERO3              =  0.460G1H509m + 0.270GHN506H + 0.270GHN506c                 : ARR( 0.488E-13, -1250., 0.0);
+{ 55682} G2H503u +PERO5              =  0.460G1H509m + 0.270GHN506H + 0.270GHN506c                 : ARR( 0.183E-11,   450., 0.0);
+{ 55683} G2H503u +PERO6              =  0.300G1H509m + 0.350GHN506H + 0.350GHN506c                 : ARR( 0.168E-13, -1300., 0.0);
+{ 55684} G2H503u +PERO9              =  0.650G1H509m + 0.350GHN506c                                : ARR( 0.100E-10,     0., 0.0);
+{ 55685} G2H503v +GNO                =       G1H505P +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 55686} G2H503v +GNO                =       GHN5032                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 55687} G2H503v +GHO2               =       GHH502r                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 55688} G2H503v +GNO3               =       G1H505P +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 55689} G2H503v +MEPERO             =  0.480G1H505P + 0.260GHN5033 + 0.260GHN505l                 : ARR( 0.164E-12,  -795., 0.0);
+{ 55690} G2H503v +PERO1              =  0.600G1H505P + 0.200GHN5033 + 0.200GHN505l                 : ARR( 0.126E-12,  -850., 0.0);
+{ 55691} G2H503v +PERO2              =  0.560G1H505P + 0.220GHN5033 + 0.220GHN505l                 : ARR( 0.471E-13, -1350., 0.0);
+{ 55692} G2H503v +PERO3              =  0.600G1H505P + 0.200GHN5033 + 0.200GHN505l                 : ARR( 0.142E-12, -1200., 0.0);
+{ 55693} G2H503v +PERO5              =  0.600G1H505P + 0.200GHN5033 + 0.200GHN505l                 : ARR( 0.533E-11,   500., 0.0);
+{ 55694} G2H503v +PERO6              =  0.460G1H505P + 0.270GHN5033 + 0.270GHN505l                 : ARR( 0.488E-13, -1250., 0.0);
+{ 55695} G2H503v +PERO9              =  0.800G1H505P + 0.200GHN505l                                : ARR( 0.100E-10,     0., 0.0);
+{ 55696} G1H50BY                     =       GHH502a +      GHO2                                   : ARR( 0.160E+12,  2532., 0.0);
+{ 55697} GHH502s +GHO                =       GHN506i +      GHO                                    : ARR( 0.326E-11,     0., 0.0);
+{ 55698} GHH502s +GHO                =       GHN506x +      GHO                                    : ARR( 0.509E-11,     0., 0.0);
+{ 55699} GHH502s +GHO                =       G3H400c +      GCO                                    : ARR( 0.128E-10,     0., 0.0);
+{ 55700} GHH502s +GHO                =       G2H503w                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 55701} GHH502s +GHO                =       G2H503x                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 55702} GHH502s +GNO3               =       G3H400c +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 55703} GHH502s+HV               =       G1H50AL +      GHO                                    :  0.100E+01*SUN;
+{ 55704} GHH502s+HV               =       G1H50BZ +      GNO2                                   :  0.100E+01*SUN;
+{ 55705} GHH502s+HV               =       G1H50Ba +      GHO                                    :  0.100E+01*SUN;
+{ 55706} GHH502s+HV               =       G3H400c +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 55707} GHH502s+HV               =       GHH400a +      GCO                                    :  0.100E+01*SUN;
+{ 55708} GHH502s+HV               =       GHH3006 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 55709} G2H503w +GNO                =       G1H50AL +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 55710} G2H503w +GNO                =       GHN5063                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 55711} G2H503w +GHO2               =       GHH502s                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 55712} G2H503w +GNO3               =       G1H50AL +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 55713} G2H503w +MEPERO             =  0.480G1H50AL + 0.260GHN505L + 0.260GHN506i                 : ARR( 0.164E-12,  -795., 0.0);
+{ 55714} G2H503w +PERO1              =  0.600G1H50AL + 0.200GHN505L + 0.200GHN506i                 : ARR( 0.126E-12,  -850., 0.0);
+{ 55715} G2H503w +PERO2              =  0.560G1H50AL + 0.220GHN505L + 0.220GHN506i                 : ARR( 0.471E-13, -1350., 0.0);
+{ 55716} G2H503w +PERO3              =  0.600G1H50AL + 0.200GHN505L + 0.200GHN506i                 : ARR( 0.142E-12, -1200., 0.0);
+{ 55717} G2H503w +PERO5              =  0.600G1H50AL + 0.200GHN505L + 0.200GHN506i                 : ARR( 0.533E-11,   500., 0.0);
+{ 55718} G2H503w +PERO6              =  0.460G1H50AL + 0.270GHN505L + 0.270GHN506i                 : ARR( 0.488E-13, -1250., 0.0);
+{ 55719} G2H503w +PERO9              =  0.800G1H50AL + 0.200GHN506i                                : ARR( 0.100E-10,     0., 0.0);
+{ 55720} G2H503x +GNO                =       G1H50Ba +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 55721} G2H503x +GNO                =       GHN506y                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 55722} G2H503x +GHO2               =       GHH502s                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 55723} G2H503x +GNO3               =       G1H50Ba +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 55724} G2H503x +MEPERO             =  0.340G1H50Ba + 0.330GHN506e + 0.330GHN506x                 : ARR( 0.565E-13,  -845., 0.0);
+{ 55725} G2H503x +PERO1              =  0.460G1H50Ba + 0.270GHN506e + 0.270GHN506x                 : ARR( 0.434E-13,  -900., 0.0);
+{ 55726} G2H503x +PERO2              =  0.400G1H50Ba + 0.300GHN506e + 0.300GHN506x                 : ARR( 0.162E-13, -1400., 0.0);
+{ 55727} G2H503x +PERO3              =  0.460G1H50Ba + 0.270GHN506e + 0.270GHN506x                 : ARR( 0.488E-13, -1250., 0.0);
+{ 55728} G2H503x +PERO5              =  0.460G1H50Ba + 0.270GHN506e + 0.270GHN506x                 : ARR( 0.183E-11,   450., 0.0);
+{ 55729} G2H503x +PERO6              =  0.300G1H50Ba + 0.350GHN506e + 0.350GHN506x                 : ARR( 0.168E-13, -1300., 0.0);
+{ 55730} G2H503x +PERO9              =  0.650G1H50Ba + 0.350GHN506x                                : ARR( 0.100E-10,     0., 0.0);
+{ 55731} G1H50BZ                     =       GHD2000 +      GDD3002 +      GHO                     : ARR( 0.200E+15,  4556., 0.0);
+{ 55732} G1H50Ba                     =       GHN300A +      G3D2000                                : ARR( 0.200E+15,  3233., 0.0);
+{ 55733} GHN506b +GHO                =       GHN506x +      GHO2                                   : ARR( 0.251E-11,     0., 0.0);
+{ 55734} GHN506b +GHO                =       GND501O +      GHO                                    : ARR( 0.329E-11,     0., 0.0);
+{ 55735} GHN506b +GHO                =       G2N506R                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 55736} GHN506b+HV               =       G3K2001 +      G3H3005                                :  0.100E+01*SUN;
+{ 55737} GHN506b+HV               =       G1H50Bb +      GNO2                                   :  0.100E+01*SUN;
+{ 55738} GHN506b+HV               =       G1N505r +      GHO                                    :  0.100E+01*SUN;
+{ 55739} G2N506R +GNO                =       G1N505r +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 55740} G2N506R +GNO                =       GNN502P                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 55741} G2N506R +GHO2               =       GHN506b                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 55742} G2N506R +GNO3               =       G1N505r +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 55743} G2N506R +MEPERO             =  0.480G1N505r + 0.260GNK5016 + 0.260GND501O                 : ARR( 0.164E-12,  -795., 0.0);
+{ 55744} G2N506R +PERO1              =  0.600G1N505r + 0.200GNK5016 + 0.200GND501O                 : ARR( 0.126E-12,  -850., 0.0);
+{ 55745} G2N506R +PERO2              =  0.560G1N505r + 0.220GNK5016 + 0.220GND501O                 : ARR( 0.471E-13, -1350., 0.0);
+{ 55746} G2N506R +PERO3              =  0.600G1N505r + 0.200GNK5016 + 0.200GND501O                 : ARR( 0.142E-12, -1200., 0.0);
+{ 55747} G2N506R +PERO5              =  0.600G1N505r + 0.200GNK5016 + 0.200GND501O                 : ARR( 0.533E-11,   500., 0.0);
+{ 55748} G2N506R +PERO6              =  0.460G1N505r + 0.270GNK5016 + 0.270GND501O                 : ARR( 0.488E-13, -1250., 0.0);
+{ 55749} G2N506R +PERO9              =  0.800G1N505r + 0.200GND501O                                : ARR( 0.100E-10,     0., 0.0);
+{ 55750} G1H50Bb                     =       G3K2001 +      GHD2000 +      GCO                     : ARR( 0.200E+15,  3326., 0.0);
+{ 55751} GHN506c +GHO                =       GHN506y +      GHO2                                   : ARR( 0.250E-11,     0., 0.0);
+{ 55752} GHN506c +GHO                =       GNN503D +      GHO                                    : ARR( 0.328E-11,     0., 0.0);
+{ 55753} GHN506c +GHO                =       G2N506S                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 55754} GHN506c+HV               =       G3K2001 +      GHN300A +      GNO2                    :  0.100E+01*SUN;
+{ 55755} GHN506c+HV               =       GNK3001 +      GDD2000 +      GHO     +      GNO2     :  0.100E+01*SUN;
+{ 55756} GHN506c+HV               =       G1H508q +      GNO2                                   :  0.100E+01*SUN;
+{ 55757} GHN506c+HV               =       G1H50BG +      GNO2                                   :  0.100E+01*SUN;
+{ 55758} GHN506c+HV               =       G1N505T +      GHO                                    :  0.100E+01*SUN;
+{ 55759} G2N506S +GNO                =       G1N505T +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 55760} G2N506S +GNO                =       GNN5029                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 55761} G2N506S +GHO2               =       GHN506c                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 55762} G2N506S +GNO3               =       G1N505T +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 55763} G2N506S +MEPERO             =  0.480G1N505T + 0.260GNN502C + 0.260GNN503D                 : ARR( 0.164E-12,  -795., 0.0);
+{ 55764} G2N506S +PERO1              =  0.600G1N505T + 0.200GNN502C + 0.200GNN503D                 : ARR( 0.126E-12,  -850., 0.0);
+{ 55765} G2N506S +PERO2              =  0.560G1N505T + 0.220GNN502C + 0.220GNN503D                 : ARR( 0.471E-13, -1350., 0.0);
+{ 55766} G2N506S +PERO3              =  0.600G1N505T + 0.200GNN502C + 0.200GNN503D                 : ARR( 0.142E-12, -1200., 0.0);
+{ 55767} G2N506S +PERO5              =  0.600G1N505T + 0.200GNN502C + 0.200GNN503D                 : ARR( 0.533E-11,   500., 0.0);
+{ 55768} G2N506S +PERO6              =  0.460G1N505T + 0.270GNN502C + 0.270GNN503D                 : ARR( 0.488E-13, -1250., 0.0);
+{ 55769} G2N506S +PERO9              =  0.800G1N505T + 0.200GNN503D                                : ARR( 0.100E-10,     0., 0.0);
+{ 55770} GHN401C +GHO                =       GND400N +      GHO                                    : ARR( 0.323E-11,     0., 0.0);
+{ 55771} GHN401C +GHO                =       G3H3005 +      GCO                                    : ARR( 0.127E-10,     0., 0.0);
+{ 55772} GHN401C +GHO                =       G2N4016                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 55773} GHN401C +GNO3               =       G3H3005 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 55774} GHN401C+HV               =       G1N401A +      GHO                                    :  0.100E+01*SUN;
+{ 55775} GHN401C+HV               =       G1H401z +      GNO2                                   :  0.100E+01*SUN;
+{ 55776} GHN401C+HV               =       G3H3005 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 55777} GHN401C+HV               =       GHN300A +      GCO                                    :  0.100E+01*SUN;
+{ 55778} GHN401C+HV               =       GHN2000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 55779} G1H401z                     =       GHD2000 +      G3D2000                                : ARR( 0.200E+15,  3293., 0.0);
+{ 55780} GGH400l +GHO                =       GGH400r +      GHO                                    : ARR( 0.324E-11,     0., 0.0);
+{ 55781} GGH400l +GHO                =       GGH400x +      GHO                                    : ARR( 0.506E-11,     0., 0.0);
+{ 55782} GGH400l +GHO                =       G2G400u                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 55783} GGH400l +GHO                =       G2G400v                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 55784} GGH400l +GHO                =       G3H400c                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 55785} GGH400l+HV               =       G1G4015 +      GHO                                    :  0.100E+01*SUN;
+{ 55786} GGH400l+HV               =       G1G4016 +      GNO2                                   :  0.100E+01*SUN;
+{ 55787} GGH400l+HV               =       G1G4017 +      GHO                                    :  0.100E+01*SUN;
+{ 55788} GGH400l+HV               =       GHN300A +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 55789} G2G400u +GNO                =       G1G4015 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 55790} G2G400u +GNO                =       GGH400k                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 55791} G2G400u +GHO2               =       GGH400l                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 55792} G2G400u +GNO3               =       G1G4015 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 55793} G2G400u +MEPERO             =  0.480G1G4015 + 0.260GGH400K + 0.260GGH400r                 : ARR( 0.164E-12,  -795., 0.0);
+{ 55794} G2G400u +PERO1              =  0.600G1G4015 + 0.200GGH400K + 0.200GGH400r                 : ARR( 0.126E-12,  -850., 0.0);
+{ 55795} G2G400u +PERO2              =  0.560G1G4015 + 0.220GGH400K + 0.220GGH400r                 : ARR( 0.471E-13, -1350., 0.0);
+{ 55796} G2G400u +PERO3              =  0.600G1G4015 + 0.200GGH400K + 0.200GGH400r                 : ARR( 0.142E-12, -1200., 0.0);
+{ 55797} G2G400u +PERO5              =  0.600G1G4015 + 0.200GGH400K + 0.200GGH400r                 : ARR( 0.533E-11,   500., 0.0);
+{ 55798} G2G400u +PERO6              =  0.460G1G4015 + 0.270GGH400K + 0.270GGH400r                 : ARR( 0.488E-13, -1250., 0.0);
+{ 55799} G2G400u +PERO9              =  0.800G1G4015 + 0.200GGH400r                                : ARR( 0.100E-10,     0., 0.0);
+{ 55800} G2G400v +GNO                =       G1G4017 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 55801} G2G400v +GNO                =       GGH400t                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 55802} G2G400v +GHO2               =       GGH400l                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 55803} G2G400v +GNO3               =       G1G4017 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 55804} G2G400v +MEPERO             =  0.340G1G4017 + 0.330GGH400n + 0.330GGH400x                 : ARR( 0.565E-13,  -845., 0.0);
+{ 55805} G2G400v +PERO1              =  0.460G1G4017 + 0.270GGH400n + 0.270GGH400x                 : ARR( 0.434E-13,  -900., 0.0);
+{ 55806} G2G400v +PERO2              =  0.400G1G4017 + 0.300GGH400n + 0.300GGH400x                 : ARR( 0.162E-13, -1400., 0.0);
+{ 55807} G2G400v +PERO3              =  0.460G1G4017 + 0.270GGH400n + 0.270GGH400x                 : ARR( 0.488E-13, -1250., 0.0);
+{ 55808} G2G400v +PERO5              =  0.460G1G4017 + 0.270GGH400n + 0.270GGH400x                 : ARR( 0.183E-11,   450., 0.0);
+{ 55809} G2G400v +PERO6              =  0.300G1G4017 + 0.350GGH400n + 0.350GGH400x                 : ARR( 0.168E-13, -1300., 0.0);
+{ 55810} G2G400v +PERO9              =  0.650G1G4017 + 0.350GGH400x                                : ARR( 0.100E-10,     0., 0.0);
+{ 55811} G1G4016                     =       GHD2000 +      GGD2000 +      GHO                     : ARR( 0.200E+15,  5198., 0.0);
+{ 55812} G1G4017                     =       GHN300A +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 55813} GAH400p +GHO                =       GAH400j +      GHO                                    : ARR( 0.389E-11,     0., 0.0);
+{ 55814} GAH400p +GHO                =       GAH400l +      GHO                                    : ARR( 0.336E-11,     0., 0.0);
+{ 55815} GAH400p +GHO                =       G2A4018                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 55816} GAH400p +GHO                =       G2A400y                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 55817} GAH400p+HV               =       G1A401B +      GHO                                    :  0.100E+01*SUN;
+{ 55818} GAH400p+HV               =       G1A401K +      GNO2                                   :  0.100E+01*SUN;
+{ 55819} GAH400p+HV               =       G1A400z +      GHO                                    :  0.100E+01*SUN;
+{ 55820} G2A4018 +GNO                =       G1A401B +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 55821} G2A4018 +GNO                =       GAH400i                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 55822} G2A4018 +GHO2               =       GAH400p                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 55823} G2A4018 +GNO3               =       G1A401B +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 55824} G2A4018 +MEPERO             =  0.340G1A401B + 0.330GAH400g + 0.330GAH400j                 : ARR( 0.565E-13,  -845., 0.0);
+{ 55825} G2A4018 +PERO1              =  0.460G1A401B + 0.270GAH400g + 0.270GAH400j                 : ARR( 0.434E-13,  -900., 0.0);
+{ 55826} G2A4018 +PERO2              =  0.400G1A401B + 0.300GAH400g + 0.300GAH400j                 : ARR( 0.162E-13, -1400., 0.0);
+{ 55827} G2A4018 +PERO3              =  0.460G1A401B + 0.270GAH400g + 0.270GAH400j                 : ARR( 0.488E-13, -1250., 0.0);
+{ 55828} G2A4018 +PERO5              =  0.460G1A401B + 0.270GAH400g + 0.270GAH400j                 : ARR( 0.183E-11,   450., 0.0);
+{ 55829} G2A4018 +PERO6              =  0.300G1A401B + 0.350GAH400g + 0.350GAH400j                 : ARR( 0.168E-13, -1300., 0.0);
+{ 55830} G2A4018 +PERO9              =  0.650G1A401B + 0.350GAH400j                                : ARR( 0.100E-10,     0., 0.0);
+{ 55831} G1A401K                     =       GAD2000 +      GHD2000 +      GHO                     : ARR( 0.200E+15,  5198., 0.0);
+{ 55832} GPH400q                     =       G3H400c +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 55833} GPH400q +GHO                =       GPH400m +      GHO                                    : ARR( 0.324E-11,     0., 0.0);
+{ 55834} GPH400q +GHO                =       GPH400k +      GHO                                    : ARR( 0.506E-11,     0., 0.0);
+{ 55835} GPH400q +GHO                =       G2P4014                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 55836} GPH400q +GHO                =       G2P401H                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 55837} GPH400q+HV               =       G1P4012 +      GHO                                    :  0.100E+01*SUN;
+{ 55838} GPH400q+HV               =       G1P401U +      GNO2                                   :  0.100E+01*SUN;
+{ 55839} GPH400q+HV               =       G1P401K +      GHO                                    :  0.100E+01*SUN;
+{ 55840} GPH400q+HV               =       G3H400c +      GNO2                                   :  0.100E+01*SUN;
+{ 55841} G2P401H +GNO                =       G1P401K +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 55842} G2P401H +GNO                =       GPH400j                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 55843} G2P401H +GHO2               =       GPH400q                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 55844} G2P401H +GNO3               =       G1P401K +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 55845} G2P401H +MEPERO             =  0.340G1P401K + 0.330GPH400h + 0.330GPH400k                 : ARR( 0.565E-13,  -845., 0.0);
+{ 55846} G2P401H +PERO1              =  0.460G1P401K + 0.270GPH400h + 0.270GPH400k                 : ARR( 0.434E-13,  -900., 0.0);
+{ 55847} G2P401H +PERO2              =  0.400G1P401K + 0.300GPH400h + 0.300GPH400k                 : ARR( 0.162E-13, -1400., 0.0);
+{ 55848} G2P401H +PERO3              =  0.460G1P401K + 0.270GPH400h + 0.270GPH400k                 : ARR( 0.488E-13, -1250., 0.0);
+{ 55849} G2P401H +PERO5              =  0.460G1P401K + 0.270GPH400h + 0.270GPH400k                 : ARR( 0.183E-11,   450., 0.0);
+{ 55850} G2P401H +PERO6              =  0.300G1P401K + 0.350GPH400h + 0.350GPH400k                 : ARR( 0.168E-13, -1300., 0.0);
+{ 55851} G2P401H +PERO9              =  0.650G1P401K + 0.350GPH400k                                : ARR( 0.100E-10,     0., 0.0);
+{ 55852} G1P401U                     =       GHD2000 +      GPD2000 +      GHO                     : ARR( 0.200E+15,  5198., 0.0);
+{ 55853} GHH502t +GHO                =       GHH503F +      GHO2                                   : ARR( 0.128E-10,     0., 0.0);
+{ 55854} GHH502t +GHO                =       GHK5011 +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 55855} GHH502t +GHO                =       GHD501N +      GHO                                    : ARR( 0.983E-11,     0., 0.0);
+{ 55856} GHH502t +GHO                =       G2H503y                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 55857} GHH502t +GHO                =       G2H503z                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 55858} GHH502t+HV               =       G1H507n +      GHO                                    :  0.100E+01*SUN;
+{ 55859} GHH502t+HV               =       G3H3004 +      G3H2000                                :  0.100E+01*SUN;
+{ 55860} GHH502t+HV               =       G1H506k +      GHO                                    :  0.100E+01*SUN;
+{ 55861} G2H503y +GNO                =       G1H507n +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 55862} G2H503y +GNO                =       GHN504Y                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 55863} G2H503y +GHO2               =       GHH502t                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 55864} G2H503y +GNO3               =       G1H507n +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 55865} G2H503y +MEPERO             =  0.340G1H507n + 0.330GHK500v + 0.330GHK5011                 : ARR( 0.565E-13,  -845., 0.0);
+{ 55866} G2H503y +PERO1              =  0.460G1H507n + 0.270GHK500v + 0.270GHK5011                 : ARR( 0.434E-13,  -900., 0.0);
+{ 55867} G2H503y +PERO2              =  0.400G1H507n + 0.300GHK500v + 0.300GHK5011                 : ARR( 0.162E-13, -1400., 0.0);
+{ 55868} G2H503y +PERO3              =  0.460G1H507n + 0.270GHK500v + 0.270GHK5011                 : ARR( 0.488E-13, -1250., 0.0);
+{ 55869} G2H503y +PERO5              =  0.460G1H507n + 0.270GHK500v + 0.270GHK5011                 : ARR( 0.183E-11,   450., 0.0);
+{ 55870} G2H503y +PERO6              =  0.300G1H507n + 0.350GHK500v + 0.350GHK5011                 : ARR( 0.168E-13, -1300., 0.0);
+{ 55871} G2H503y +PERO9              =  0.650G1H507n + 0.350GHK5011                                : ARR( 0.100E-10,     0., 0.0);
+{ 55872} G2H503z +GNO                =       G1H506k +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 55873} G2H503z +GNO                =       GHN503r                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 55874} G2H503z +GHO2               =       GHH502t                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 55875} G2H503z +GNO3               =       G1H506k +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 55876} G2H503z +MEPERO             =  0.480G1H506k + 0.260GHK500m + 0.260GHD501N                 : ARR( 0.164E-12,  -795., 0.0);
+{ 55877} G2H503z +PERO1              =  0.600G1H506k + 0.200GHK500m + 0.200GHD501N                 : ARR( 0.126E-12,  -850., 0.0);
+{ 55878} G2H503z +PERO2              =  0.560G1H506k + 0.220GHK500m + 0.220GHD501N                 : ARR( 0.471E-13, -1350., 0.0);
+{ 55879} G2H503z +PERO3              =  0.600G1H506k + 0.200GHK500m + 0.200GHD501N                 : ARR( 0.142E-12, -1200., 0.0);
+{ 55880} G2H503z +PERO5              =  0.600G1H506k + 0.200GHK500m + 0.200GHD501N                 : ARR( 0.533E-11,   500., 0.0);
+{ 55881} G2H503z +PERO6              =  0.460G1H506k + 0.270GHK500m + 0.270GHD501N                 : ARR( 0.488E-13, -1250., 0.0);
+{ 55882} G2H503z +PERO9              =  0.800G1H506k + 0.200GHD501N                                : ARR( 0.100E-10,     0., 0.0);
+{ 55883} GHH502u +GHO                =       GHD501P +      GHO                                    : ARR( 0.981E-11,     0., 0.0);
+{ 55884} GHH502u +GHO                =       GHD501W +      GHO                                    : ARR( 0.153E-10,     0., 0.0);
+{ 55885} GHH502u +GHO                =       G3H400d +      GCO                                    : ARR( 0.127E-10,     0., 0.0);
+{ 55886} GHH502u +GHO                =       G2H5041                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 55887} GHH502u +GHO                =       G2H5042                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 55888} GHH502u +GNO3               =       G3H400d +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 55889} GHH502u+HV               =       G1H50Ao +      GHO                                    :  0.100E+01*SUN;
+{ 55890} GHH502u+HV               =       G3H2000 +      GDD3002 +      GHO                     :  0.100E+01*SUN;
+{ 55891} GHH502u+HV               =       G1H50Bc +      GHO                                    :  0.100E+01*SUN;
+{ 55892} GHH502u+HV               =       G3H400d +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 55893} GHH502u+HV               =       GHH400b +      GCO                                    :  0.100E+01*SUN;
+{ 55894} GHH502u+HV               =       GHH3002 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 55895} G2H5041 +GNO                =       G1H50Ao +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 55896} G2H5041 +GNO                =       GHN506E                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 55897} G2H5041 +GHO2               =       GHH502u                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 55898} G2H5041 +GNO3               =       G1H50Ao +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 55899} G2H5041 +MEPERO             =  0.480G1H50Ao + 0.260GHD5014 + 0.260GHD501P                 : ARR( 0.164E-12,  -795., 0.0);
+{ 55900} G2H5041 +PERO1              =  0.600G1H50Ao + 0.200GHD5014 + 0.200GHD501P                 : ARR( 0.126E-12,  -850., 0.0);
+{ 55901} G2H5041 +PERO2              =  0.560G1H50Ao + 0.220GHD5014 + 0.220GHD501P                 : ARR( 0.471E-13, -1350., 0.0);
+{ 55902} G2H5041 +PERO3              =  0.600G1H50Ao + 0.200GHD5014 + 0.200GHD501P                 : ARR( 0.142E-12, -1200., 0.0);
+{ 55903} G2H5041 +PERO5              =  0.600G1H50Ao + 0.200GHD5014 + 0.200GHD501P                 : ARR( 0.533E-11,   500., 0.0);
+{ 55904} G2H5041 +PERO6              =  0.460G1H50Ao + 0.270GHD5014 + 0.270GHD501P                 : ARR( 0.488E-13, -1250., 0.0);
+{ 55905} G2H5041 +PERO9              =  0.800G1H50Ao + 0.200GHD501P                                : ARR( 0.100E-10,     0., 0.0);
+{ 55906} G2H5042 +GNO                =       G1H50Bc +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 55907} G2H5042 +GNO                =       GHN506u                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 55908} G2H5042 +GHO2               =       GHH502u                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 55909} G2H5042 +GNO3               =       G1H50Bc +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 55910} G2H5042 +MEPERO             =  0.340G1H50Bc + 0.330GHD501O + 0.330GHD501W                 : ARR( 0.565E-13,  -845., 0.0);
+{ 55911} G2H5042 +PERO1              =  0.460G1H50Bc + 0.270GHD501O + 0.270GHD501W                 : ARR( 0.434E-13,  -900., 0.0);
+{ 55912} G2H5042 +PERO2              =  0.400G1H50Bc + 0.300GHD501O + 0.300GHD501W                 : ARR( 0.162E-13, -1400., 0.0);
+{ 55913} G2H5042 +PERO3              =  0.460G1H50Bc + 0.270GHD501O + 0.270GHD501W                 : ARR( 0.488E-13, -1250., 0.0);
+{ 55914} G2H5042 +PERO5              =  0.460G1H50Bc + 0.270GHD501O + 0.270GHD501W                 : ARR( 0.183E-11,   450., 0.0);
+{ 55915} G2H5042 +PERO6              =  0.300G1H50Bc + 0.350GHD501O + 0.350GHD501W                 : ARR( 0.168E-13, -1300., 0.0);
+{ 55916} G2H5042 +PERO9              =  0.650G1H50Bc + 0.350GHD501W                                : ARR( 0.100E-10,     0., 0.0);
+{ 55917} G1H50Bc                     =       G3H2000 +      GDD3002                                : ARR( 0.200E+15,  4623., 0.0);
+{ 55918} G1H50Bc                     =       GHD3001 +      G3D2000                                : ARR( 0.200E+15,  4823., 0.0);
+{ 55919} GHK5011 +GHO                =       GHD501W +      GHO2                                   : ARR( 0.247E-11,     0., 0.0);
+{ 55920} GHK5011 +GHO                =       GDK500c +      GHO                                    : ARR( 0.989E-11,     0., 0.0);
+{ 55921} GHK5011 +GHO                =       G2K500x                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 55922} GHK5011+HV               =       G3K2001 +      G3H2000 +      GCO                     :  0.100E+01*SUN;
+{ 55923} GHK5011+HV               =       G3K2001 +      G3H2000 +      GCO                     :  0.100E+01*SUN;
+{ 55924} GHK5011+HV               =       G1K5014 +      GHO                                    :  0.100E+01*SUN;
+{ 55925} G2K500x +GNO                =       G1K5014 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 55926} G2K500x +GNO                =       GNK500z                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 55927} G2K500x +GHO2               =       GHK5011                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 55928} G2K500x +GNO3               =       G1K5014 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 55929} G2K500x +MEPERO             =  0.480G1K5014 + 0.260GKK500F + 0.260GDK500c                 : ARR( 0.164E-12,  -795., 0.0);
+{ 55930} G2K500x +PERO1              =  0.600G1K5014 + 0.200GKK500F + 0.200GDK500c                 : ARR( 0.126E-12,  -850., 0.0);
+{ 55931} G2K500x +PERO2              =  0.560G1K5014 + 0.220GKK500F + 0.220GDK500c                 : ARR( 0.471E-13, -1350., 0.0);
+{ 55932} G2K500x +PERO3              =  0.600G1K5014 + 0.200GKK500F + 0.200GDK500c                 : ARR( 0.142E-12, -1200., 0.0);
+{ 55933} G2K500x +PERO5              =  0.600G1K5014 + 0.200GKK500F + 0.200GDK500c                 : ARR( 0.533E-11,   500., 0.0);
+{ 55934} G2K500x +PERO6              =  0.460G1K5014 + 0.270GKK500F + 0.270GDK500c                 : ARR( 0.488E-13, -1250., 0.0);
+{ 55935} G2K500x +PERO9              =  0.800G1K5014 + 0.200GDK500c                                : ARR( 0.100E-10,     0., 0.0);
+{ 55936} GGH400m +GHO                =       GGH400s +      GHO                                    : ARR( 0.981E-11,     0., 0.0);
+{ 55937} GGH400m +GHO                =       GGH400h +      GHO                                    : ARR( 0.153E-10,     0., 0.0);
+{ 55938} GGH400m +GHO                =       G2G400q                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 55939} GGH400m +GHO                =       G2G400w                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 55940} GGH400m +GHO                =       G3H400d                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 55941} GGH400m+HV               =       G1G400n +      GHO                                    :  0.100E+01*SUN;
+{ 55942} GGH400m+HV               =       G3H2000 +      GGD2000 +      GHO                     :  0.100E+01*SUN;
+{ 55943} GGH400m+HV               =       G1G4018 +      GHO                                    :  0.100E+01*SUN;
+{ 55944} GGH400m+HV               =       GHD3001 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 55945} G2G400w +GNO                =       G1G4018 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 55946} G2G400w +GNO                =       GGH400u                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 55947} G2G400w +GHO2               =       GGH400m                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 55948} G2G400w +GNO3               =       G1G4018 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 55949} G2G400w +MEPERO             =  0.340G1G4018 + 0.330GGH400f + 0.330GGH400h                 : ARR( 0.565E-13,  -845., 0.0);
+{ 55950} G2G400w +PERO1              =  0.460G1G4018 + 0.270GGH400f + 0.270GGH400h                 : ARR( 0.434E-13,  -900., 0.0);
+{ 55951} G2G400w +PERO2              =  0.400G1G4018 + 0.300GGH400f + 0.300GGH400h                 : ARR( 0.162E-13, -1400., 0.0);
+{ 55952} G2G400w +PERO3              =  0.460G1G4018 + 0.270GGH400f + 0.270GGH400h                 : ARR( 0.488E-13, -1250., 0.0);
+{ 55953} G2G400w +PERO5              =  0.460G1G4018 + 0.270GGH400f + 0.270GGH400h                 : ARR( 0.183E-11,   450., 0.0);
+{ 55954} G2G400w +PERO6              =  0.300G1G4018 + 0.350GGH400f + 0.350GGH400h                 : ARR( 0.168E-13, -1300., 0.0);
+{ 55955} G2G400w +PERO9              =  0.650G1G4018 + 0.350GGH400h                                : ARR( 0.100E-10,     0., 0.0);
+{ 55956} G1G4018                     =       G3H2000 +      GGD2000                                : ARR( 0.200E+15,  5396., 0.0);
+{ 55957} GAH400q +GHO                =       GAH400n +      GHO                                    : ARR( 0.115E-10,     0., 0.0);
+{ 55958} GAH400q +GHO                =       GAH400u +      GHO                                    : ARR( 0.999E-11,     0., 0.0);
+{ 55959} GAH400q +GHO                =       G2A4019                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 55960} GAH400q +GHO                =       G2A400z                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 55961} GAH400q+HV               =       G1A401I +      GHO                                    :  0.100E+01*SUN;
+{ 55962} GAH400q+HV               =       G3A3003 +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 55963} GAH400q+HV               =       G1A4011 +      GHO                                    :  0.100E+01*SUN;
+{ 55964} G2A4019 +GNO                =       G1A401I +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 55965} G2A4019 +GNO                =       GAH400m                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 55966} G2A4019 +GHO2               =       GAH400q                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 55967} G2A4019 +GNO3               =       G1A401I +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 55968} G2A4019 +MEPERO             =  0.340G1A401I + 0.330GAH400h + 0.330GAH400n                 : ARR( 0.565E-13,  -845., 0.0);
+{ 55969} G2A4019 +PERO1              =  0.460G1A401I + 0.270GAH400h + 0.270GAH400n                 : ARR( 0.434E-13,  -900., 0.0);
+{ 55970} G2A4019 +PERO2              =  0.400G1A401I + 0.300GAH400h + 0.300GAH400n                 : ARR( 0.162E-13, -1400., 0.0);
+{ 55971} G2A4019 +PERO3              =  0.460G1A401I + 0.270GAH400h + 0.270GAH400n                 : ARR( 0.488E-13, -1250., 0.0);
+{ 55972} G2A4019 +PERO5              =  0.460G1A401I + 0.270GAH400h + 0.270GAH400n                 : ARR( 0.183E-11,   450., 0.0);
+{ 55973} G2A4019 +PERO6              =  0.300G1A401I + 0.350GAH400h + 0.350GAH400n                 : ARR( 0.168E-13, -1300., 0.0);
+{ 55974} G2A4019 +PERO9              =  0.650G1A401I + 0.350GAH400n                                : ARR( 0.100E-10,     0., 0.0);
+{ 55975} GPH400r                     =       G3H400d +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 55976} GPH400r +GHO                =       GPH400v +      GHO                                    : ARR( 0.981E-11,     0., 0.0);
+{ 55977} GPH400r +GHO                =       GPH400o +      GHO                                    : ARR( 0.153E-10,     0., 0.0);
+{ 55978} GPH400r +GHO                =       G2P4015                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 55979} GPH400r +GHO                =       G2P401I                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 55980} GPH400r+HV               =       G1P4014 +      GHO                                    :  0.100E+01*SUN;
+{ 55981} GPH400r+HV               =       G3H2000 +      GPD2000 +      GHO                     :  0.100E+01*SUN;
+{ 55982} GPH400r+HV               =       G1P401S +      GHO                                    :  0.100E+01*SUN;
+{ 55983} GPH400r+HV               =       G3H400d +      GNO2                                   :  0.100E+01*SUN;
+{ 55984} G2P401I +GNO                =       G1P401S +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 55985} G2P401I +GNO                =       GPH400n                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 55986} G2P401I +GHO2               =       GPH400r                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 55987} G2P401I +GNO3               =       G1P401S +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 55988} G2P401I +MEPERO             =  0.340G1P401S + 0.330GPH400i + 0.330GPH400o                 : ARR( 0.565E-13,  -845., 0.0);
+{ 55989} G2P401I +PERO1              =  0.460G1P401S + 0.270GPH400i + 0.270GPH400o                 : ARR( 0.434E-13,  -900., 0.0);
+{ 55990} G2P401I +PERO2              =  0.400G1P401S + 0.300GPH400i + 0.300GPH400o                 : ARR( 0.162E-13, -1400., 0.0);
+{ 55991} G2P401I +PERO3              =  0.460G1P401S + 0.270GPH400i + 0.270GPH400o                 : ARR( 0.488E-13, -1250., 0.0);
+{ 55992} G2P401I +PERO5              =  0.460G1P401S + 0.270GPH400i + 0.270GPH400o                 : ARR( 0.183E-11,   450., 0.0);
+{ 55993} G2P401I +PERO6              =  0.300G1P401S + 0.350GPH400i + 0.350GPH400o                 : ARR( 0.168E-13, -1300., 0.0);
+{ 55994} G2P401I +PERO9              =  0.650G1P401S + 0.350GPH400o                                : ARR( 0.100E-10,     0., 0.0);
+{ 55995} GGH502i +GHO                =       GGN502B +      GHO                                    : ARR( 0.328E-11,     0., 0.0);
+{ 55996} GGH502i +GHO                =       GGH502j +      GHO2                                   : ARR( 0.210E-11,     0., 0.0);
+{ 55997} GGH502i +GHO                =       G2G503W                                               : ARR( 0.878E-12,     0., 0.0);
+{ 55998} GGH502i +GHO                =       G2G503X                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 55999} GGH502i +GHO                =       G3H5029                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 56000} GGH502i+HV               =       G1G503A +      GHO                                    :  0.100E+01*SUN;
+{ 56001} GGH502i+HV               =       G1G504w +      GNO2                                   :  0.100E+01*SUN;
+{ 56002} GGH502i+HV               =       G2H400t +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 56003} G2G503W +GNO                =       G1G504x +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 56004} G2G503W +GNO                =       GGH504v                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 56005} G2G503W +GHO2               =       GGH504w                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 56006} G2G503W +GNO3               =       G1G504x +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 56007} G2G503W +MEPERO             =  0.340G1G504x + 0.330GGH504H + 0.330GGH504f                 : ARR( 0.565E-13,  -845., 0.0);
+{ 56008} G2G503W +PERO1              =  0.460G1G504x + 0.270GGH504H + 0.270GGH504f                 : ARR( 0.434E-13,  -900., 0.0);
+{ 56009} G2G503W +PERO2              =  0.400G1G504x + 0.300GGH504H + 0.300GGH504f                 : ARR( 0.162E-13, -1400., 0.0);
+{ 56010} G2G503W +PERO3              =  0.460G1G504x + 0.270GGH504H + 0.270GGH504f                 : ARR( 0.488E-13, -1250., 0.0);
+{ 56011} G2G503W +PERO5              =  0.460G1G504x + 0.270GGH504H + 0.270GGH504f                 : ARR( 0.183E-11,   450., 0.0);
+{ 56012} G2G503W +PERO6              =  0.300G1G504x + 0.350GGH504H + 0.350GGH504f                 : ARR( 0.168E-13, -1300., 0.0);
+{ 56013} G2G503W +PERO9              =  0.650G1G504x + 0.350GGH504f                                : ARR( 0.100E-10,     0., 0.0);
+{ 56014} G2G503X +GNO                =       G1G503A +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 56015} G2G503X +GNO                =       GGN501H                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 56016} G2G503X +GHO2               =       GGH502i                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 56017} G2G503X +GNO3               =       G1G503A +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 56018} G2G503X +MEPERO             =  0.480G1G503A + 0.260GGN5021 + 0.260GGN502B                 : ARR( 0.164E-12,  -795., 0.0);
+{ 56019} G2G503X +PERO1              =  0.600G1G503A + 0.200GGN5021 + 0.200GGN502B                 : ARR( 0.126E-12,  -850., 0.0);
+{ 56020} G2G503X +PERO2              =  0.560G1G503A + 0.220GGN5021 + 0.220GGN502B                 : ARR( 0.471E-13, -1350., 0.0);
+{ 56021} G2G503X +PERO3              =  0.600G1G503A + 0.200GGN5021 + 0.200GGN502B                 : ARR( 0.142E-12, -1200., 0.0);
+{ 56022} G2G503X +PERO5              =  0.600G1G503A + 0.200GGN5021 + 0.200GGN502B                 : ARR( 0.533E-11,   500., 0.0);
+{ 56023} G2G503X +PERO6              =  0.460G1G503A + 0.270GGN5021 + 0.270GGN502B                 : ARR( 0.488E-13, -1250., 0.0);
+{ 56024} G2G503X +PERO9              =  0.800G1G503A + 0.200GGN502B                                : ARR( 0.100E-10,     0., 0.0);
+{ 56025} G1G504w                     =       GHD2000 +      GGD3000 +      GHO2                    : ARR( 0.200E+15,  3619., 0.0);
+{ 56026} G1G504x                     =       GGN502c +      GHO                                    : ARR( 0.160E+12,  2905., 0.0);
+{ 56027} G1G504x                     =       GHN300A +      GGD2000 +      GHO2                    : ARR( 0.200E+15,  5342., 0.0);
+{ 56028} G1G504x                     =       GHN400x +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 56029} GAH502t +GHO                =       G2A504U                                               : ARR( 0.654E-12,     0., 0.0);
+{ 56030} GAH502t +GHO                =       GAH502u +      GHO2                                   : ARR( 0.211E-11,     0., 0.0);
+{ 56031} GAH502t +GHO                =       GAN502R +      GHO                                    : ARR( 0.330E-11,     0., 0.0);
+{ 56032} GAH502t +GHO                =       G2A504W                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 56033} GAH502t +GHO                =       G2H400t +      GCO2                                   : ARR( 0.533E-12,     0., 0.0);
+{ 56034} GAH502t+HV               =       G1A505w +      GNO2                                   :  0.100E+01*SUN;
+{ 56035} GAH502t+HV               =       G1A503b +      GHO                                    :  0.100E+01*SUN;
+{ 56036} G2A504U +GNO                =       G1A505x +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 56037} G2A504U +GNO                =       GAH5053                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 56038} G2A504U +GHO2               =       GAH5054                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 56039} G2A504U +GNO3               =       G1A505x +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 56040} G2A504U +MEPERO             =  0.340G1A505x + 0.330GAH504P + 0.330GAH5055                 : ARR( 0.565E-13,  -845., 0.0);
+{ 56041} G2A504U +PERO1              =  0.460G1A505x + 0.270GAH504P + 0.270GAH5055                 : ARR( 0.434E-13,  -900., 0.0);
+{ 56042} G2A504U +PERO2              =  0.400G1A505x + 0.300GAH504P + 0.300GAH5055                 : ARR( 0.162E-13, -1400., 0.0);
+{ 56043} G2A504U +PERO3              =  0.460G1A505x + 0.270GAH504P + 0.270GAH5055                 : ARR( 0.488E-13, -1250., 0.0);
+{ 56044} G2A504U +PERO5              =  0.460G1A505x + 0.270GAH504P + 0.270GAH5055                 : ARR( 0.183E-11,   450., 0.0);
+{ 56045} G2A504U +PERO6              =  0.300G1A505x + 0.350GAH504P + 0.350GAH5055                 : ARR( 0.168E-13, -1300., 0.0);
+{ 56046} G2A504U +PERO9              =  0.650G1A505x + 0.350GAH5055                                : ARR( 0.100E-10,     0., 0.0);
+{ 56047} G2A504W +GNO                =       G1A503b +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 56048} G2A504W +GNO                =       GAN501A                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 56049} G2A504W +GHO2               =       GAH502t                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 56050} G2A504W +GNO3               =       G1A503b +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 56051} G2A504W +MEPERO             =  0.480G1A503b + 0.260GAN501a + 0.260GAN502R                 : ARR( 0.164E-12,  -795., 0.0);
+{ 56052} G2A504W +PERO1              =  0.600G1A503b + 0.200GAN501a + 0.200GAN502R                 : ARR( 0.126E-12,  -850., 0.0);
+{ 56053} G2A504W +PERO2              =  0.560G1A503b + 0.220GAN501a + 0.220GAN502R                 : ARR( 0.471E-13, -1350., 0.0);
+{ 56054} G2A504W +PERO3              =  0.600G1A503b + 0.200GAN501a + 0.200GAN502R                 : ARR( 0.142E-12, -1200., 0.0);
+{ 56055} G2A504W +PERO5              =  0.600G1A503b + 0.200GAN501a + 0.200GAN502R                 : ARR( 0.533E-11,   500., 0.0);
+{ 56056} G2A504W +PERO6              =  0.460G1A503b + 0.270GAN501a + 0.270GAN502R                 : ARR( 0.488E-13, -1250., 0.0);
+{ 56057} G2A504W +PERO9              =  0.800G1A503b + 0.200GAN502R                                : ARR( 0.100E-10,     0., 0.0);
+{ 56058} G1A505w                     =       GAD3000 +      GHD2000 +      GHO2                    : ARR( 0.200E+15,  3619., 0.0);
+{ 56059} G1A505x                     =       GAN502e +      GHO                                    : ARR( 0.160E+12,  2905., 0.0);
+{ 56060} G1A505x                     =       GCO     +      GHN400x +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 56061} G1A505x                     =       GAD2000 +      GHN300A +      GHO2                    : ARR( 0.200E+15,  5342., 0.0);
+{ 56062} GPH5033                     =       G3H5029 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 56063} GPH5033 +GHO                =       GPN502Y +      GHO                                    : ARR( 0.330E-11,     0., 0.0);
+{ 56064} GPH5033 +GHO                =       GPH502R +      GHO2                                   : ARR( 0.212E-11,     0., 0.0);
+{ 56065} GPH5033 +GHO                =       G2P504r                                               : ARR( 0.884E-12,     0., 0.0);
+{ 56066} GPH5033 +GHO                =       G2P504s                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 56067} GPH5033+HV               =       G1P503X +      GHO                                    :  0.100E+01*SUN;
+{ 56068} GPH5033+HV               =       G1P506h +      GNO2                                   :  0.100E+01*SUN;
+{ 56069} GPH5033+HV               =       G3H5029 +      GNO2                                   :  0.100E+01*SUN;
+{ 56070} G2P504r +GNO                =       G1P506i +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 56071} G2P504r +GNO                =       GPH505C                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 56072} G2P504r +GHO2               =       GPH505D                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 56073} G2P504r +GNO3               =       G1P506i +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 56074} G2P504r +MEPERO             =  0.340G1P506i + 0.330GPH504R + 0.330GPH504v                 : ARR( 0.565E-13,  -845., 0.0);
+{ 56075} G2P504r +PERO1              =  0.460G1P506i + 0.270GPH504R + 0.270GPH504v                 : ARR( 0.434E-13,  -900., 0.0);
+{ 56076} G2P504r +PERO2              =  0.400G1P506i + 0.300GPH504R + 0.300GPH504v                 : ARR( 0.162E-13, -1400., 0.0);
+{ 56077} G2P504r +PERO3              =  0.460G1P506i + 0.270GPH504R + 0.270GPH504v                 : ARR( 0.488E-13, -1250., 0.0);
+{ 56078} G2P504r +PERO5              =  0.460G1P506i + 0.270GPH504R + 0.270GPH504v                 : ARR( 0.183E-11,   450., 0.0);
+{ 56079} G2P504r +PERO6              =  0.300G1P506i + 0.350GPH504R + 0.350GPH504v                 : ARR( 0.168E-13, -1300., 0.0);
+{ 56080} G2P504r +PERO9              =  0.650G1P506i + 0.350GPH504v                                : ARR( 0.100E-10,     0., 0.0);
+{ 56081} G2P504s +GNO                =       G1P503X +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 56082} G2P504s +GNO                =       GPN5019                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 56083} G2P504s +GHO2               =       GPH5033                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 56084} G2P504s +GNO3               =       G1P503X +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 56085} G2P504s +MEPERO             =  0.480G1P503X + 0.260GPN501c + 0.260GPN502Y                 : ARR( 0.164E-12,  -795., 0.0);
+{ 56086} G2P504s +PERO1              =  0.600G1P503X + 0.200GPN501c + 0.200GPN502Y                 : ARR( 0.126E-12,  -850., 0.0);
+{ 56087} G2P504s +PERO2              =  0.560G1P503X + 0.220GPN501c + 0.220GPN502Y                 : ARR( 0.471E-13, -1350., 0.0);
+{ 56088} G2P504s +PERO3              =  0.600G1P503X + 0.200GPN501c + 0.200GPN502Y                 : ARR( 0.142E-12, -1200., 0.0);
+{ 56089} G2P504s +PERO5              =  0.600G1P503X + 0.200GPN501c + 0.200GPN502Y                 : ARR( 0.533E-11,   500., 0.0);
+{ 56090} G2P504s +PERO6              =  0.460G1P503X + 0.270GPN501c + 0.270GPN502Y                 : ARR( 0.488E-13, -1250., 0.0);
+{ 56091} G2P504s +PERO9              =  0.800G1P503X + 0.200GPN502Y                                : ARR( 0.100E-10,     0., 0.0);
+{ 56092} G1P506h                     =       GHD2000 +      GPD3000 +      GHO2                    : ARR( 0.200E+15,  3619., 0.0);
+{ 56093} G1P506i                     =       GPN502g +      GHO                                    : ARR( 0.160E+12,  2905., 0.0);
+{ 56094} G1P506i                     =       GHN300A +      GPD2000 +      GHO2                    : ARR( 0.200E+15,  5342., 0.0);
+{ 56095} G1P506i                     =       GHN400x +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 56096} GHN506d +GHO                =       GNN503J +      GHO                                    : ARR( 0.343E-11,     0., 0.0);
+{ 56097} GHN506d +GHO                =       G3H504T                                               : ARR( 0.444E-11,     0., 0.0);
+{ 56098} GHN506d +GHO                =       G2N506T                                               : ARR( 0.203E-11,  -190., 0.0);
+{ 56099} GHN506d +GNO3               =       G3H504T +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 56100} GHN506d+HV               =       G1N507F +      GHO                                    :  0.100E+01*SUN;
+{ 56101} GHN506d+HV               =       G1H50Bd +      GNO2                                   :  0.100E+01*SUN;
+{ 56102} GHN506d+HV               =       G1H50Be +      GNO2                                   :  0.100E+01*SUN;
+{ 56103} GHN506d+HV               =       GHN400x +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 56104} GHN506d+HV               =       GHD3001 +      GND2000 +      GHO2    +      GNO2     :  0.100E+01*SUN;
+{ 56105} G3H504T +GHO2               =  0.800GGH504v + 0.200GAH5053 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 56106} G3H504T +GNO                =       GHN400x + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 56107} G3H504T +GNO2               =       GPH505C                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 56108} G3H504T +GNO3               =       GHN400x + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 56109} G3H504T +MEPERO             =  0.685GHN400x + 0.315GAH5053 + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 56110} G3H504T +PERO1              =  0.800GHN400x + 0.200GAH5053 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 56111} G3H504T +PERO2              =  0.750GHN400x + 0.250GAH5053 + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 56112} G3H504T +PERO3              =  0.800GHN400x + 0.200GAH5053 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 56113} G3H504T +PERO5              =  0.650GHN400x + 0.350GAH5053 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 56114} G3H504T +PERO6              =  0.650GHN400x + 0.350GAH5053 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 56115} G3H504T +PERO9              =       GHN400x +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 56116} G2N506T +GNO                =       G1N507F +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 56117} G2N506T +GNO                =       GNN503H                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 56118} G2N506T +GHO2               =       GHN506d                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 56119} G2N506T +GNO3               =       G1N507F +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 56120} G2N506T +MEPERO             =  0.480G1N507F + 0.260GNN502u + 0.260GNN503J                 : ARR( 0.164E-12,  -795., 0.0);
+{ 56121} G2N506T +PERO1              =  0.600G1N507F + 0.200GNN502u + 0.200GNN503J                 : ARR( 0.126E-12,  -850., 0.0);
+{ 56122} G2N506T +PERO2              =  0.560G1N507F + 0.220GNN502u + 0.220GNN503J                 : ARR( 0.471E-13, -1350., 0.0);
+{ 56123} G2N506T +PERO3              =  0.600G1N507F + 0.200GNN502u + 0.200GNN503J                 : ARR( 0.142E-12, -1200., 0.0);
+{ 56124} G2N506T +PERO5              =  0.600G1N507F + 0.200GNN502u + 0.200GNN503J                 : ARR( 0.533E-11,   500., 0.0);
+{ 56125} G2N506T +PERO6              =  0.460G1N507F + 0.270GNN502u + 0.270GNN503J                 : ARR( 0.488E-13, -1250., 0.0);
+{ 56126} G2N506T +PERO9              =  0.800G1N507F + 0.200GNN503J                                : ARR( 0.100E-10,     0., 0.0);
+{ 56127} G1H50Bd                     =       GHD2000 +      GND3005 +      GHO2                    : ARR( 0.200E+15,  3619., 0.0);
+{ 56128} G1H50Be                     =       GND501T +      GHO                                    : ARR( 0.160E+12,  2905., 0.0);
+{ 56129} G1H50Be                     =       GHN300A +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  4899., 0.0);
+{ 56130} G1H50Be                     =       GHN400x +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 56131} GHH502v +GHO                =       GHN506j +      GHO                                    : ARR( 0.323E-11,     0., 0.0);
+{ 56132} GHH502v +GHO                =       GHH503D +      GHO2                                   : ARR( 0.656E-11,     0., 0.0);
+{ 56133} GHH502v +GHO                =       GHN506e +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 56134} GHH502v +GHO                =       G3H504U                                               : ARR( 0.209E-10,     0., 0.0);
+{ 56135} GHH502v +GHO                =       G2H5043                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 56136} GHH502v +GHO                =       G2H5044                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 56137} GHH502v +GNO3               =       G3H504U +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 56138} GHH502v+HV               =       G1H50BQ +      GHO                                    :  0.100E+01*SUN;
+{ 56139} GHH502v+HV               =       G1H50Bf +      GNO2                                   :  0.100E+01*SUN;
+{ 56140} GHH502v+HV               =       G1H50Be +      GHO                                    :  0.100E+01*SUN;
+{ 56141} GHH502v+HV               =       GHN400x +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 56142} G3H504U +GHO2               =  0.800GGH504w + 0.200GAH5054 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 56143} G3H504U +GNO                =       GHN400x +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 56144} G3H504U +GNO2               =       GPH505D                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 56145} G3H504U +GNO3               =       GHN400x +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 56146} G3H504U +MEPERO             =  0.685GHN400x + 0.315GAH5054 + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 56147} G3H504U +PERO1              =  0.800GHN400x + 0.200GAH5054 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 56148} G3H504U +PERO2              =  0.750GHN400x + 0.250GAH5054 + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 56149} G3H504U +PERO3              =  0.800GHN400x + 0.200GAH5054 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 56150} G3H504U +PERO5              =  0.650GHN400x + 0.350GAH5054 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 56151} G3H504U +PERO6              =  0.650GHN400x + 0.350GAH5054 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 56152} G3H504U +PERO9              =       GHN400x +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 56153} G2H5043 +GNO                =       G1H50BQ +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 56154} G2H5043 +GNO                =       GHN506Z                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 56155} G2H5043 +GHO2               =       GHH502v                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 56156} G2H5043 +GNO3               =       G1H50BQ +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 56157} G2H5043 +MEPERO             =  0.480G1H50BQ + 0.260GHN506A + 0.260GHN506j                 : ARR( 0.164E-12,  -795., 0.0);
+{ 56158} G2H5043 +PERO1              =  0.600G1H50BQ + 0.200GHN506A + 0.200GHN506j                 : ARR( 0.126E-12,  -850., 0.0);
+{ 56159} G2H5043 +PERO2              =  0.560G1H50BQ + 0.220GHN506A + 0.220GHN506j                 : ARR( 0.471E-13, -1350., 0.0);
+{ 56160} G2H5043 +PERO3              =  0.600G1H50BQ + 0.200GHN506A + 0.200GHN506j                 : ARR( 0.142E-12, -1200., 0.0);
+{ 56161} G2H5043 +PERO5              =  0.600G1H50BQ + 0.200GHN506A + 0.200GHN506j                 : ARR( 0.533E-11,   500., 0.0);
+{ 56162} G2H5043 +PERO6              =  0.460G1H50BQ + 0.270GHN506A + 0.270GHN506j                 : ARR( 0.488E-13, -1250., 0.0);
+{ 56163} G2H5043 +PERO9              =  0.800G1H50BQ + 0.200GHN506j                                : ARR( 0.100E-10,     0., 0.0);
+{ 56164} G2H5044 +GNO                =       G1H50Be +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 56165} G2H5044 +GNO                =       GHN506d                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 56166} G2H5044 +GHO2               =       GHH502v                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 56167} G2H5044 +GNO3               =       G1H50Be +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 56168} G2H5044 +MEPERO             =  0.340G1H50Be + 0.330GHN506L + 0.330GHN506e                 : ARR( 0.565E-13,  -845., 0.0);
+{ 56169} G2H5044 +PERO1              =  0.460G1H50Be + 0.270GHN506L + 0.270GHN506e                 : ARR( 0.434E-13,  -900., 0.0);
+{ 56170} G2H5044 +PERO2              =  0.400G1H50Be + 0.300GHN506L + 0.300GHN506e                 : ARR( 0.162E-13, -1400., 0.0);
+{ 56171} G2H5044 +PERO3              =  0.460G1H50Be + 0.270GHN506L + 0.270GHN506e                 : ARR( 0.488E-13, -1250., 0.0);
+{ 56172} G2H5044 +PERO5              =  0.460G1H50Be + 0.270GHN506L + 0.270GHN506e                 : ARR( 0.183E-11,   450., 0.0);
+{ 56173} G2H5044 +PERO6              =  0.300G1H50Be + 0.350GHN506L + 0.350GHN506e                 : ARR( 0.168E-13, -1300., 0.0);
+{ 56174} G2H5044 +PERO9              =  0.650G1H50Be + 0.350GHN506e                                : ARR( 0.100E-10,     0., 0.0);
+{ 56175} G1H50Bf                     =       GHD2000 +      GHD3004 +      GHO2                    : ARR( 0.200E+15,  3619., 0.0);
+{ 56176} GHN506e +GHO                =       GND501Y +      GHO                                    : ARR( 0.330E-11,     0., 0.0);
+{ 56177} GHN506e +GHO                =       GHN506x +      GHO2                                   : ARR( 0.129E-11,     0., 0.0);
+{ 56178} GHN506e +GHO                =       G3H400f +      GCO                                    : ARR( 0.130E-10,     0., 0.0);
+{ 56179} GHN506e +GHO                =       G2N506U                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 56180} GHN506e +GNO3               =       G3H400f +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 56181} GHN506e+HV               =       G1N506z +      GHO                                    :  0.100E+01*SUN;
+{ 56182} GHN506e+HV               =       G1H50B6 +      GNO2                                   :  0.100E+01*SUN;
+{ 56183} GHN506e+HV               =       G3H400f +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 56184} GHN506e+HV               =       GHN400x +      GCO                                    :  0.100E+01*SUN;
+{ 56185} GHN506e+HV               =       GHN3009 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 56186} G2N506U +GNO                =       G1N506z +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 56187} G2N506U +GNO                =       GNN5039                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 56188} G2N506U +GHO2               =       GHN506e                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 56189} G2N506U +GNO3               =       G1N506z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 56190} G2N506U +MEPERO             =  0.480G1N506z + 0.260GND501F + 0.260GND501Y                 : ARR( 0.164E-12,  -795., 0.0);
+{ 56191} G2N506U +PERO1              =  0.600G1N506z + 0.200GND501F + 0.200GND501Y                 : ARR( 0.126E-12,  -850., 0.0);
+{ 56192} G2N506U +PERO2              =  0.560G1N506z + 0.220GND501F + 0.220GND501Y                 : ARR( 0.471E-13, -1350., 0.0);
+{ 56193} G2N506U +PERO3              =  0.600G1N506z + 0.200GND501F + 0.200GND501Y                 : ARR( 0.142E-12, -1200., 0.0);
+{ 56194} G2N506U +PERO5              =  0.600G1N506z + 0.200GND501F + 0.200GND501Y                 : ARR( 0.533E-11,   500., 0.0);
+{ 56195} G2N506U +PERO6              =  0.460G1N506z + 0.270GND501F + 0.270GND501Y                 : ARR( 0.488E-13, -1250., 0.0);
+{ 56196} G2N506U +PERO9              =  0.800G1N506z + 0.200GND501Y                                : ARR( 0.100E-10,     0., 0.0);
+{ 56197} GHD501O +GHO                =       GDD500E +      GHO                                    : ARR( 0.985E-11,     0., 0.0);
+{ 56198} GHD501O +GHO                =       GHD501W +      GHO2                                   : ARR( 0.385E-11,     0., 0.0);
+{ 56199} GHD501O +GHO                =       G3H400e +      GCO                                    : ARR( 0.127E-10,     0., 0.0);
+{ 56200} GHD501O +GHO                =       G2D500q                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 56201} GHD501O +GNO3               =       G3H400e +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 56202} GHD501O+HV               =       G1D501W +      GHO                                    :  0.100E+01*SUN;
+{ 56203} GHD501O+HV               =       G3H2000 +      GDD3002 +      GHO2                    :  0.100E+01*SUN;
+{ 56204} GHD501O+HV               =       G3H400e +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 56205} GHD501O+HV               =       GHD400J +      GCO                                    :  0.100E+01*SUN;
+{ 56206} GHD501O+HV               =       GHK3001 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 56207} G2D500q +GNO                =       G1D501W +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 56208} G2D500q +GNO                =       GND501R                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 56209} G2D500q +GHO2               =       GHD501O                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 56210} G2D500q +GNO3               =       G1D501W +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 56211} G2D500q +MEPERO             =  0.480G1D501W + 0.260GDK500a + 0.260GDD500E                 : ARR( 0.164E-12,  -795., 0.0);
+{ 56212} G2D500q +PERO1              =  0.600G1D501W + 0.200GDK500a + 0.200GDD500E                 : ARR( 0.126E-12,  -850., 0.0);
+{ 56213} G2D500q +PERO2              =  0.560G1D501W + 0.220GDK500a + 0.220GDD500E                 : ARR( 0.471E-13, -1350., 0.0);
+{ 56214} G2D500q +PERO3              =  0.600G1D501W + 0.200GDK500a + 0.200GDD500E                 : ARR( 0.142E-12, -1200., 0.0);
+{ 56215} G2D500q +PERO5              =  0.600G1D501W + 0.200GDK500a + 0.200GDD500E                 : ARR( 0.533E-11,   500., 0.0);
+{ 56216} G2D500q +PERO6              =  0.460G1D501W + 0.270GDK500a + 0.270GDD500E                 : ARR( 0.488E-13, -1250., 0.0);
+{ 56217} G2D500q +PERO9              =  0.800G1D501W + 0.200GDD500E                                : ARR( 0.100E-10,     0., 0.0);
+{ 56218} GGH502j +GHO                =       GGN502C +      GHO                                    : ARR( 0.340E-11,     0., 0.0);
+{ 56219} GGH502j +GHO                =       G2G503Y                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 56220} GGH502j +GHO                =       G3H502A                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 56221} GGH502j+HV               =       G1G502y +      GHO                                    :  0.100E+01*SUN;
+{ 56222} GGH502j+HV               =       G1G504y +      GNO2                                   :  0.100E+01*SUN;
+{ 56223} GGH502j+HV               =       G3H3005 +      G2G2000                                :  0.100E+01*SUN;
+{ 56224} GGH502j+HV               =       G2H401C +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 56225} G2G503Y +GNO                =       G1G502y +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 56226} G2G503Y +GNO                =       GGN501F                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 56227} G2G503Y +GHO2               =       GGH502j                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 56228} G2G503Y +GNO3               =       G1G502y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 56229} G2G503Y +MEPERO             =  0.480G1G502y + 0.260GGN501Z + 0.260GGN502C                 : ARR( 0.164E-12,  -795., 0.0);
+{ 56230} G2G503Y +PERO1              =  0.600G1G502y + 0.200GGN501Z + 0.200GGN502C                 : ARR( 0.126E-12,  -850., 0.0);
+{ 56231} G2G503Y +PERO2              =  0.560G1G502y + 0.220GGN501Z + 0.220GGN502C                 : ARR( 0.471E-13, -1350., 0.0);
+{ 56232} G2G503Y +PERO3              =  0.600G1G502y + 0.200GGN501Z + 0.200GGN502C                 : ARR( 0.142E-12, -1200., 0.0);
+{ 56233} G2G503Y +PERO5              =  0.600G1G502y + 0.200GGN501Z + 0.200GGN502C                 : ARR( 0.533E-11,   500., 0.0);
+{ 56234} G2G503Y +PERO6              =  0.460G1G502y + 0.270GGN501Z + 0.270GGN502C                 : ARR( 0.488E-13, -1250., 0.0);
+{ 56235} G2G503Y +PERO9              =  0.800G1G502y + 0.200GGN502C                                : ARR( 0.100E-10,     0., 0.0);
+{ 56236} G1G504y                     =       GHD2000 +      G3G3000                                : ARR( 0.200E+15,  2981., 0.0);
+{ 56237} GAH502u +GHO                =       GAN502Y +      GHO                                    : ARR( 0.342E-11,     0., 0.0);
+{ 56238} GAH502u +GHO                =       G2A504X                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 56239} GAH502u +GHO                =       G2H401C +      GCO2                                   : ARR( 0.553E-12,     0., 0.0);
+{ 56240} GAH502u+HV               =       G3A3000 +      GHD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 56241} GAH502u+HV               =       G1A505y +      GNO2                                   :  0.100E+01*SUN;
+{ 56242} GAH502u+HV               =       G1A5035 +      GHO                                    :  0.100E+01*SUN;
+{ 56243} G2A504X +GNO                =       G1A5035 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 56244} G2A504X +GNO                =       GAN5013                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 56245} G2A504X +GHO2               =       GAH502u                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 56246} G2A504X +GNO3               =       G1A5035 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 56247} G2A504X +MEPERO             =  0.480G1A5035 + 0.260GAN501Z + 0.260GAN502Y                 : ARR( 0.164E-12,  -795., 0.0);
+{ 56248} G2A504X +PERO1              =  0.600G1A5035 + 0.200GAN501Z + 0.200GAN502Y                 : ARR( 0.126E-12,  -850., 0.0);
+{ 56249} G2A504X +PERO2              =  0.560G1A5035 + 0.220GAN501Z + 0.220GAN502Y                 : ARR( 0.471E-13, -1350., 0.0);
+{ 56250} G2A504X +PERO3              =  0.600G1A5035 + 0.200GAN501Z + 0.200GAN502Y                 : ARR( 0.142E-12, -1200., 0.0);
+{ 56251} G2A504X +PERO5              =  0.600G1A5035 + 0.200GAN501Z + 0.200GAN502Y                 : ARR( 0.533E-11,   500., 0.0);
+{ 56252} G2A504X +PERO6              =  0.460G1A5035 + 0.270GAN501Z + 0.270GAN502Y                 : ARR( 0.488E-13, -1250., 0.0);
+{ 56253} G2A504X +PERO9              =  0.800G1A5035 + 0.200GAN502Y                                : ARR( 0.100E-10,     0., 0.0);
+{ 56254} G1A505y                     =       G3A3000 +      GHD2000                                : ARR( 0.200E+15,  2981., 0.0);
+{ 56255} GGH502k +GHO                =       GGH5039 +      GHO                                    : ARR( 0.586E-10,     0., 0.0);
+{ 56256} GGH502k +GHO                =       GGH501u +      GHO                                    : ARR( 0.289E-10,     0., 0.0);
+{ 56257} GGH502k+HV               =       G1G5033 +      GHO                                    :  0.100E+01*SUN;
+{ 56258} GGH502k+HV               =       G1G504y +      GHO                                    :  0.100E+01*SUN;
+{ 56259} GGH502k+HV               =       G3H3007 +      G2G2000                                :  0.100E+01*SUN;
+{ 56260} GGH502k+HV               =       G2H401D +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 56261} GAH502v +GHO                =       GAH5022 +      GHO                                    : ARR( 0.278E-10,     0., 0.0);
+{ 56262} GAH502v +GHO                =       GAH503W +      GHO                                    : ARR( 0.564E-10,     0., 0.0);
+{ 56263} GAH502v+HV               =       G3A3000 +      GHD2000 +      GHO                     :  0.100E+01*SUN;
+{ 56264} GAH502v+HV               =       G1A505y +      GHO                                    :  0.100E+01*SUN;
+{ 56265} GAH502v+HV               =       G1A5038 +      GHO                                    :  0.100E+01*SUN;
+{ 56266} GPH5034                     =       G3H502B +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 56267} GPH5034 +GHO                =       GPH503b +      GHO                                    : ARR( 0.562E-10,     0., 0.0);
+{ 56268} GPH5034 +GHO                =       GPH501y +      GHO                                    : ARR( 0.277E-10,     0., 0.0);
+{ 56269} GPH5034+HV               =       G1P503F +      GHO                                    :  0.100E+01*SUN;
+{ 56270} GPH5034+HV               =       G1P505r +      GHO                                    :  0.100E+01*SUN;
+{ 56271} GPH5034+HV               =       G3H3007 +      G2P2000                                :  0.100E+01*SUN;
+{ 56272} GPH5034+HV               =       G3H502B +      GNO2                                   :  0.100E+01*SUN;
+{ 56273} GHH400w +GHO                =       GHD400K +      GHO                                    : ARR( 0.551E-10,     0., 0.0);
+{ 56274} GHH400w +GHO                =       GHD400N +      GHO                                    : ARR( 0.272E-10,     0., 0.0);
+{ 56275} GHH400w +GHO                =       G3H3007 +      GCO                                    : ARR( 0.137E-10,     0., 0.0);
+{ 56276} GHH400w +GNO3               =       G3H3007 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 56277} GHH400w+HV               =       G1H401j +      GHO                                    :  0.100E+01*SUN;
+{ 56278} GHH400w+HV               =       G1H401z +      GHO                                    :  0.100E+01*SUN;
+{ 56279} GHH400w+HV               =       G3H3007 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 56280} GHH400w+HV               =       GHH3005 +      GCO                                    :  0.100E+01*SUN;
+{ 56281} GHH400w+HV               =       GHH2000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 56282} GGH502l +GHO                =       GGN502D +      GHO                                    : ARR( 0.329E-11,     0., 0.0);
+{ 56283} GGH502l +GHO                =       G2G503Z                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 56284} GGH502l +GHO                =       G3H502C                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 56285} GGH502l+HV               =       G1G502L +      GHO                                    :  0.100E+01*SUN;
+{ 56286} GGH502l+HV               =       G1G504Z +      GNO2                                   :  0.100E+01*SUN;
+{ 56287} GGH502l+HV               =       G1G5028 +      GNO2                                   :  0.100E+01*SUN;
+{ 56288} GGH502l+HV               =       GHN400G +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 56289} G2G503Z +GNO                =       G1G502L +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 56290} G2G503Z +GNO                =       GGN500x                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 56291} G2G503Z +GHO2               =       GGH502l                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 56292} G2G503Z +GNO3               =       G1G502L +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 56293} G2G503Z +MEPERO             =  0.480G1G502L + 0.260GGN5015 + 0.260GGN502D                 : ARR( 0.164E-12,  -795., 0.0);
+{ 56294} G2G503Z +PERO1              =  0.600G1G502L + 0.200GGN5015 + 0.200GGN502D                 : ARR( 0.126E-12,  -850., 0.0);
+{ 56295} G2G503Z +PERO2              =  0.560G1G502L + 0.220GGN5015 + 0.220GGN502D                 : ARR( 0.471E-13, -1350., 0.0);
+{ 56296} G2G503Z +PERO3              =  0.600G1G502L + 0.200GGN5015 + 0.200GGN502D                 : ARR( 0.142E-12, -1200., 0.0);
+{ 56297} G2G503Z +PERO5              =  0.600G1G502L + 0.200GGN5015 + 0.200GGN502D                 : ARR( 0.533E-11,   500., 0.0);
+{ 56298} G2G503Z +PERO6              =  0.460G1G502L + 0.270GGN5015 + 0.270GGN502D                 : ARR( 0.488E-13, -1250., 0.0);
+{ 56299} G2G503Z +PERO9              =  0.800G1G502L + 0.200GGN502D                                : ARR( 0.100E-10,     0., 0.0);
+{ 56300} GGH502m +GHO                =       GGH503E +      GHO                                    : ARR( 0.325E-11,     0., 0.0);
+{ 56301} GGH502m +GHO                =       GGH502n +      GHO                                    : ARR( 0.254E-10,     0., 0.0);
+{ 56302} GGH502m +GHO                =       G2G503a                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 56303} GGH502m +GHO                =       G2G501j                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 56304} GGH502m +GHO                =       G3H502D                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 56305} GGH502m+HV               =       G1G503E +      GHO                                    :  0.100E+01*SUN;
+{ 56306} GGH502m+HV               =       G1G504z +      GNO2                                   :  0.100E+01*SUN;
+{ 56307} GGH502m+HV               =       G1G5028 +      GHO                                    :  0.100E+01*SUN;
+{ 56308} GGH502m+HV               =       GHN400G +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 56309} G2G503a +GNO                =       G1G503E +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 56310} G2G503a +GNO                =       GGH501D                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 56311} G2G503a +GHO2               =       GGH502m                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 56312} G2G503a +GNO3               =       G1G503E +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 56313} G2G503a +MEPERO             =  0.480G1G503E + 0.260GGH501E + 0.260GGH503E                 : ARR( 0.164E-12,  -795., 0.0);
+{ 56314} G2G503a +PERO1              =  0.600G1G503E + 0.200GGH501E + 0.200GGH503E                 : ARR( 0.126E-12,  -850., 0.0);
+{ 56315} G2G503a +PERO2              =  0.560G1G503E + 0.220GGH501E + 0.220GGH503E                 : ARR( 0.471E-13, -1350., 0.0);
+{ 56316} G2G503a +PERO3              =  0.600G1G503E + 0.200GGH501E + 0.200GGH503E                 : ARR( 0.142E-12, -1200., 0.0);
+{ 56317} G2G503a +PERO5              =  0.600G1G503E + 0.200GGH501E + 0.200GGH503E                 : ARR( 0.533E-11,   500., 0.0);
+{ 56318} G2G503a +PERO6              =  0.460G1G503E + 0.270GGH501E + 0.270GGH503E                 : ARR( 0.488E-13, -1250., 0.0);
+{ 56319} G2G503a +PERO9              =  0.800G1G503E + 0.200GGH503E                                : ARR( 0.100E-10,     0., 0.0);
+{ 56320} G1G504z                     =       GCH2O   +      GGH400R +      GHO                     : ARR( 0.200E+15,  7140., 0.0);
+{ 56321} G1G504z                     =       GHD2000 +      G2G3008                                : ARR( 0.200E+15,  7118., 0.0);
+{ 56322} GGH502n +GHO                =       GGN502E +      GHO                                    : ARR( 0.339E-11,     0., 0.0);
+{ 56323} GGH502n +GHO                =       G2G503b                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 56324} GGH502n +GHO                =       G3H5049                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 56325} GGH502n+HV               =       G1G502U +      GHO                                    :  0.100E+01*SUN;
+{ 56326} GGH502n+HV               =       G1G503u +      GNO2                                   :  0.100E+01*SUN;
+{ 56327} GGH502n+HV               =       GAH400L +      GCO2                                   :  0.100E+01*SUN;
+{ 56328} G2G503b +GNO                =       G1G502U +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 56329} G2G503b +GNO                =       GGN5012                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 56330} G2G503b +GHO2               =       GGH502n                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 56331} G2G503b +GNO3               =       G1G502U +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 56332} G2G503b +MEPERO             =  0.480G1G502U + 0.260GGN5018 + 0.260GGN502E                 : ARR( 0.164E-12,  -795., 0.0);
+{ 56333} G2G503b +PERO1              =  0.600G1G502U + 0.200GGN5018 + 0.200GGN502E                 : ARR( 0.126E-12,  -850., 0.0);
+{ 56334} G2G503b +PERO2              =  0.560G1G502U + 0.220GGN5018 + 0.220GGN502E                 : ARR( 0.471E-13, -1350., 0.0);
+{ 56335} G2G503b +PERO3              =  0.600G1G502U + 0.200GGN5018 + 0.200GGN502E                 : ARR( 0.142E-12, -1200., 0.0);
+{ 56336} G2G503b +PERO5              =  0.600G1G502U + 0.200GGN5018 + 0.200GGN502E                 : ARR( 0.533E-11,   500., 0.0);
+{ 56337} G2G503b +PERO6              =  0.460G1G502U + 0.270GGN5018 + 0.270GGN502E                 : ARR( 0.488E-13, -1250., 0.0);
+{ 56338} G2G503b +PERO9              =  0.800G1G502U + 0.200GGN502E                                : ARR( 0.100E-10,     0., 0.0);
+{ 56339} GAH502w +GHO                =       GAH502x +      GHO                                    : ARR( 0.192E-10,     0., 0.0);
+{ 56340} GAH502w +GHO                =       GAH503u +      GHO                                    : ARR( 0.332E-11,     0., 0.0);
+{ 56341} GAH502w +GHO                =       G2A502G                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 56342} GAH502w +GHO                =       G2A504Y                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 56343} GAH502w+HV               =       G1A502h +      GHO                                    :  0.100E+01*SUN;
+{ 56344} GAH502w+HV               =       G1A505z +      GNO2                                   :  0.100E+01*SUN;
+{ 56345} GAH502w+HV               =       G1A503S +      GHO                                    :  0.100E+01*SUN;
+{ 56346} G2A504Y +GNO                =       G1A503S +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 56347} G2A504Y +GNO                =       GAH501B                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 56348} G2A504Y +GHO2               =       GAH502w                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 56349} G2A504Y +GNO3               =       G1A503S +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 56350} G2A504Y +MEPERO             =  0.480G1A503S + 0.260GAH501D + 0.260GAH503u                 : ARR( 0.164E-12,  -795., 0.0);
+{ 56351} G2A504Y +PERO1              =  0.600G1A503S + 0.200GAH501D + 0.200GAH503u                 : ARR( 0.126E-12,  -850., 0.0);
+{ 56352} G2A504Y +PERO2              =  0.560G1A503S + 0.220GAH501D + 0.220GAH503u                 : ARR( 0.471E-13, -1350., 0.0);
+{ 56353} G2A504Y +PERO3              =  0.600G1A503S + 0.200GAH501D + 0.200GAH503u                 : ARR( 0.142E-12, -1200., 0.0);
+{ 56354} G2A504Y +PERO5              =  0.600G1A503S + 0.200GAH501D + 0.200GAH503u                 : ARR( 0.533E-11,   500., 0.0);
+{ 56355} G2A504Y +PERO6              =  0.460G1A503S + 0.270GAH501D + 0.270GAH503u                 : ARR( 0.488E-13, -1250., 0.0);
+{ 56356} G2A504Y +PERO9              =  0.800G1A503S + 0.200GAH503u                                : ARR( 0.100E-10,     0., 0.0);
+{ 56357} G1A505z                     =       G2A300A +      GHD2000                                : ARR( 0.200E+15,  7118., 0.0);
+{ 56358} G1A505z                     =       GAH400Q +      GCH2O   +      GHO                     : ARR( 0.200E+15,  7140., 0.0);
+{ 56359} GAH502x +GHO                =       GAN502c +      GHO                                    : ARR( 0.346E-11,     0., 0.0);
+{ 56360} GAH502x +GHO                =       G2A504Z                                               : ARR( 0.204E-11,  -190., 0.0);
+{ 56361} GAH502x +GHO                =       G3H400E +      GCO2                                   : ARR( 0.559E-12,     0., 0.0);
+{ 56362} GAH502x+HV               =       GHN400G +      GCO2                                   :  0.100E+01*SUN;
+{ 56363} GAH502x+HV               =       G1A504h +      GNO2                                   :  0.100E+01*SUN;
+{ 56364} GAH502x+HV               =       G1A503L +      GHO                                    :  0.100E+01*SUN;
+{ 56365} G2A504Z +GNO                =       G1A503L +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 56366} G2A504Z +GNO                =       GAN5017                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 56367} G2A504Z +GHO2               =       GAH502x                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 56368} G2A504Z +GNO3               =       G1A503L +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 56369} G2A504Z +MEPERO             =  0.480G1A503L + 0.260GAN501D + 0.260GAN502c                 : ARR( 0.164E-12,  -795., 0.0);
+{ 56370} G2A504Z +PERO1              =  0.600G1A503L + 0.200GAN501D + 0.200GAN502c                 : ARR( 0.126E-12,  -850., 0.0);
+{ 56371} G2A504Z +PERO2              =  0.560G1A503L + 0.220GAN501D + 0.220GAN502c                 : ARR( 0.471E-13, -1350., 0.0);
+{ 56372} G2A504Z +PERO3              =  0.600G1A503L + 0.200GAN501D + 0.200GAN502c                 : ARR( 0.142E-12, -1200., 0.0);
+{ 56373} G2A504Z +PERO5              =  0.600G1A503L + 0.200GAN501D + 0.200GAN502c                 : ARR( 0.533E-11,   500., 0.0);
+{ 56374} G2A504Z +PERO6              =  0.460G1A503L + 0.270GAN501D + 0.270GAN502c                 : ARR( 0.488E-13, -1250., 0.0);
+{ 56375} G2A504Z +PERO9              =  0.800G1A503L + 0.200GAN502c                                : ARR( 0.100E-10,     0., 0.0);
+{ 56376} GPH5035                     =       G3H502D +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 56377} GPH5035 +GHO                =       GPH5044 +      GHO                                    : ARR( 0.325E-11,     0., 0.0);
+{ 56378} GPH5035 +GHO                =       GPH502j +      GHO                                    : ARR( 0.254E-10,     0., 0.0);
+{ 56379} GPH5035 +GHO                =       G2P504t                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 56380} GPH5035 +GHO                =       G2P502N                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 56381} GPH5035+HV               =       G1P503c +      GHO                                    :  0.100E+01*SUN;
+{ 56382} GPH5035+HV               =       G1P506j +      GNO2                                   :  0.100E+01*SUN;
+{ 56383} GPH5035+HV               =       G1P502w +      GHO                                    :  0.100E+01*SUN;
+{ 56384} GPH5035+HV               =       G3H502D +      GNO2                                   :  0.100E+01*SUN;
+{ 56385} G2P504t +GNO                =       G1P503c +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 56386} G2P504t +GNO                =       GPH5017                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 56387} G2P504t +GHO2               =       GPH5035                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 56388} G2P504t +GNO3               =       G1P503c +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 56389} G2P504t +MEPERO             =  0.480G1P503c + 0.260GPH5018 + 0.260GPH5044                 : ARR( 0.164E-12,  -795., 0.0);
+{ 56390} G2P504t +PERO1              =  0.600G1P503c + 0.200GPH5018 + 0.200GPH5044                 : ARR( 0.126E-12,  -850., 0.0);
+{ 56391} G2P504t +PERO2              =  0.560G1P503c + 0.220GPH5018 + 0.220GPH5044                 : ARR( 0.471E-13, -1350., 0.0);
+{ 56392} G2P504t +PERO3              =  0.600G1P503c + 0.200GPH5018 + 0.200GPH5044                 : ARR( 0.142E-12, -1200., 0.0);
+{ 56393} G2P504t +PERO5              =  0.600G1P503c + 0.200GPH5018 + 0.200GPH5044                 : ARR( 0.533E-11,   500., 0.0);
+{ 56394} G2P504t +PERO6              =  0.460G1P503c + 0.270GPH5018 + 0.270GPH5044                 : ARR( 0.488E-13, -1250., 0.0);
+{ 56395} G2P504t +PERO9              =  0.800G1P503c + 0.200GPH5044                                : ARR( 0.100E-10,     0., 0.0);
+{ 56396} G1P506j                     =       GCH2O   +      GPH400U +      GHO                     : ARR( 0.200E+15,  7140., 0.0);
+{ 56397} G1P506j                     =       GHD2000 +      G2P300B                                : ARR( 0.200E+15,  7118., 0.0);
+{ 56398} GGH502o +GHO                =       GGN501Z +      GHO                                    : ARR( 0.927E-11,     0., 0.0);
+{ 56399} GGH502o +GHO                =       G2G503c                                               : ARR( 0.214E-11,  -190., 0.0);
+{ 56400} GGH502o +GHO                =       G3H502E                                               : ARR( 0.214E-11,  -190., 0.0);
+{ 56401} GGH502o+HV               =       G1G5051 +      GNO2                                   :  0.100E+01*SUN;
+{ 56402} GGH502o+HV               =       G1G503z +      GHO                                    :  0.100E+01*SUN;
+{ 56403} GGH502o+HV               =       G2H400S +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 56404} G2G503c +GNO                =       G1G503z +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 56405} G2G503c +GNO                =       GGN501X                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 56406} G2G503c +GHO2               =       GGH502o                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 56407} G2G503c +GNO3               =       G1G503z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 56408} G2G503c +MEPERO             =  0.340G1G503z + 0.330GGN5021 + 0.330GGN501Z                 : ARR( 0.565E-13,  -845., 0.0);
+{ 56409} G2G503c +PERO1              =  0.460G1G503z + 0.270GGN5021 + 0.270GGN501Z                 : ARR( 0.434E-13,  -900., 0.0);
+{ 56410} G2G503c +PERO2              =  0.400G1G503z + 0.300GGN5021 + 0.300GGN501Z                 : ARR( 0.162E-13, -1400., 0.0);
+{ 56411} G2G503c +PERO3              =  0.460G1G503z + 0.270GGN5021 + 0.270GGN501Z                 : ARR( 0.488E-13, -1250., 0.0);
+{ 56412} G2G503c +PERO5              =  0.460G1G503z + 0.270GGN5021 + 0.270GGN501Z                 : ARR( 0.183E-11,   450., 0.0);
+{ 56413} G2G503c +PERO6              =  0.300G1G503z + 0.350GGN5021 + 0.350GGN501Z                 : ARR( 0.168E-13, -1300., 0.0);
+{ 56414} G2G503c +PERO9              =  0.650G1G503z + 0.350GGN501Z                                : ARR( 0.100E-10,     0., 0.0);
+{ 56415} G1G5051                     =       GCH2O   +      GGH400Q +      GHO2                    : ARR( 0.200E+15,  5296., 0.0);
+{ 56416} G1G5051                     =       GDO2000 +      GGD3000 +      GHO                     : ARR( 0.200E+15,  4828., 0.0);
+{ 56417} GGN5021 +GHO                =       GGN502B +      GHO2                                   : ARR( 0.848E-12,     0., 0.0);
+{ 56418} GGN5021 +GHO                =       GGN501Z +      GHO2                                   : ARR( 0.217E-11,     0., 0.0);
+{ 56419} GGN5021 +GHO                =       G2G502I                                               : ARR( 0.909E-12,     0., 0.0);
+{ 56420} GGN5021 +GHO                =       G3N501f                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 56421} GGN5021+HV               =       G1G5052 +      GNO2                                   :  0.100E+01*SUN;
+{ 56422} GGN5021+HV               =       G2N400A +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 56423} G1G5052                     =       GDO2000 +      GGD3000 +      GHO2                    : ARR( 0.200E+15,  3619., 0.0);
+{ 56424} GHN506f +GHO                =       GND501J +      GHO                                    : ARR( 0.506E-11,     0., 0.0);
+{ 56425} GHN506f +GHO                =       G3H3002 + 2.000GCO                                    : ARR( 0.128E-10,     0., 0.0);
+{ 56426} GHN506f +GHO                =       G2N506W                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 56427} GHN506f +GNO3               =       G3H3002 +      GHNO3   + 2.000GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 56428} GHN506f+HV               =       G1H50Bg +      GNO2                                   :  0.100E+01*SUN;
+{ 56429} GHN506f+HV               =       G1N5073 +      GHO                                    :  0.100E+01*SUN;
+{ 56430} GHN506f+HV               =       G3H3002 +      G3D2000                                :  0.100E+01*SUN;
+{ 56431} GHN506f+HV               =       G3H3002 +      GCO     +      GCO     +      GHO2     :  0.100E+01*SUN;
+{ 56432} GHN506f+HV               =       GHN4018 +      GCO                                    :  0.100E+01*SUN;
+{ 56433} GHN506f+HV               =       GHN3007 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 56434} G2N506W +GNO                =       G1N5073 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 56435} G2N506W +GNO                =       GNN503A                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 56436} G2N506W +GHO2               =       GHN506f                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 56437} G2N506W +GNO3               =       G1N5073 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 56438} G2N506W +MEPERO             =  0.340G1N5073 + 0.330GND501I + 0.330GND501J                 : ARR( 0.565E-13,  -845., 0.0);
+{ 56439} G2N506W +PERO1              =  0.460G1N5073 + 0.270GND501I + 0.270GND501J                 : ARR( 0.434E-13,  -900., 0.0);
+{ 56440} G2N506W +PERO2              =  0.400G1N5073 + 0.300GND501I + 0.300GND501J                 : ARR( 0.162E-13, -1400., 0.0);
+{ 56441} G2N506W +PERO3              =  0.460G1N5073 + 0.270GND501I + 0.270GND501J                 : ARR( 0.488E-13, -1250., 0.0);
+{ 56442} G2N506W +PERO5              =  0.460G1N5073 + 0.270GND501I + 0.270GND501J                 : ARR( 0.183E-11,   450., 0.0);
+{ 56443} G2N506W +PERO6              =  0.300G1N5073 + 0.350GND501I + 0.350GND501J                 : ARR( 0.168E-13, -1300., 0.0);
+{ 56444} G2N506W +PERO9              =  0.650G1N5073 + 0.350GND501J                                : ARR( 0.100E-10,     0., 0.0);
+{ 56445} G1H50Bg +OXYGEN             =       GHD501U +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 56446} G1H50Bg                     =       GDD4005 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5364., 0.0);
+{ 56447} GGH502p +GHO                =       GGH502u +      GHO2                                   : ARR( 0.411E-11,     0., 0.0);
+{ 56448} GGH502p +GHO                =       GGN501Y +      GHO                                    : ARR( 0.842E-11,     0., 0.0);
+{ 56449} GGH502p +GHO                =       G2G503d                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 56450} GGH502p +GHO                =       G3H502F                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 56451} GGH502p+HV               =       G1G503y +      GHO                                    :  0.100E+01*SUN;
+{ 56452} GGH502p+HV               =       G1G5053 +      GNO2                                   :  0.100E+01*SUN;
+{ 56453} GGH502p+HV               =       G2H401E +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 56454} G2G503d +GNO                =       G1G503y +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 56455} G2G503d +GNO                =       GGN501X                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 56456} G2G503d +GHO2               =       GGH502p                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 56457} G2G503d +GNO3               =       G1G503y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 56458} G2G503d +MEPERO             =  0.340G1G503y + 0.330GGN500N + 0.330GGN501Y                 : ARR( 0.565E-13,  -845., 0.0);
+{ 56459} G2G503d +PERO1              =  0.460G1G503y + 0.270GGN500N + 0.270GGN501Y                 : ARR( 0.434E-13,  -900., 0.0);
+{ 56460} G2G503d +PERO2              =  0.400G1G503y + 0.300GGN500N + 0.300GGN501Y                 : ARR( 0.162E-13, -1400., 0.0);
+{ 56461} G2G503d +PERO3              =  0.460G1G503y + 0.270GGN500N + 0.270GGN501Y                 : ARR( 0.488E-13, -1250., 0.0);
+{ 56462} G2G503d +PERO5              =  0.460G1G503y + 0.270GGN500N + 0.270GGN501Y                 : ARR( 0.183E-11,   450., 0.0);
+{ 56463} G2G503d +PERO6              =  0.300G1G503y + 0.350GGN500N + 0.350GGN501Y                 : ARR( 0.168E-13, -1300., 0.0);
+{ 56464} G2G503d +PERO9              =  0.650G1G503y + 0.350GGN501Y                                : ARR( 0.100E-10,     0., 0.0);
+{ 56465} G1G5053                     =       GDO2000 +      GGD3000 +      GHO                     : ARR( 0.200E+15,  4146., 0.0);
+{ 56466} GGH502q +GHO                =       GGH503G +      GHO2                                   : ARR( 0.409E-11,     0., 0.0);
+{ 56467} GGH502q +GHO                =       GGK500R +      GHO                                    : ARR( 0.420E-10,     0., 0.0);
+{ 56468} GGH502q +GHO                =       GGH502r +      GHO2                                   : ARR( 0.105E-10,     0., 0.0);
+{ 56469} GGH502q +GHO                =       G2G503e                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 56470} GGH502q +GHO                =       G3H502G                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 56471} GGH502q+HV               =       G1G5052 +      GHO                                    :  0.100E+01*SUN;
+{ 56472} GGH502q+HV               =       G2H400A +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 56473} G2G503e +GNO                =       G1G5052 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 56474} G2G503e +GNO                =       GGN5021                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 56475} G2G503e +GHO2               =       GGH502q                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 56476} G2G503e +GNO3               =       G1G5052 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 56477} G2G503e +MEPERO             =  0.340G1G5052 + 0.330GGO5008 + 0.330GGK500R                 : ARR( 0.565E-13,  -845., 0.0);
+{ 56478} G2G503e +PERO1              =  0.460G1G5052 + 0.270GGO5008 + 0.270GGK500R                 : ARR( 0.434E-13,  -900., 0.0);
+{ 56479} G2G503e +PERO2              =  0.400G1G5052 + 0.300GGO5008 + 0.300GGK500R                 : ARR( 0.162E-13, -1400., 0.0);
+{ 56480} G2G503e +PERO3              =  0.460G1G5052 + 0.270GGO5008 + 0.270GGK500R                 : ARR( 0.488E-13, -1250., 0.0);
+{ 56481} G2G503e +PERO5              =  0.460G1G5052 + 0.270GGO5008 + 0.270GGK500R                 : ARR( 0.183E-11,   450., 0.0);
+{ 56482} G2G503e +PERO6              =  0.300G1G5052 + 0.350GGO5008 + 0.350GGK500R                 : ARR( 0.168E-13, -1300., 0.0);
+{ 56483} G2G503e +PERO9              =  0.650G1G5052 + 0.350GGK500R                                : ARR( 0.100E-10,     0., 0.0);
+{ 56484} GAH502y +GHO                =       GAH503w +      GHO2                                   : ARR( 0.412E-11,     0., 0.0);
+{ 56485} GAH502y +GHO                =       GAK500Q +      GHO                                    : ARR( 0.422E-10,     0., 0.0);
+{ 56486} GAH502y +GHO                =       GAH502L +      GHO2                                   : ARR( 0.106E-10,     0., 0.0);
+{ 56487} GAH502y +GHO                =       G2A504a                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 56488} GAH502y+HV               =       G1A504l +      GHO                                    :  0.100E+01*SUN;
+{ 56489} G2A504a +GNO                =       G1A504l +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 56490} G2A504a +GNO                =       GAN501a                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 56491} G2A504a +GHO2               =       GAH502y                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 56492} G2A504a +GNO3               =       G1A504l +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 56493} G2A504a +MEPERO             =  0.340G1A504l + 0.330GAO5008 + 0.330GAK500Q                 : ARR( 0.565E-13,  -845., 0.0);
+{ 56494} G2A504a +PERO1              =  0.460G1A504l + 0.270GAO5008 + 0.270GAK500Q                 : ARR( 0.434E-13,  -900., 0.0);
+{ 56495} G2A504a +PERO2              =  0.400G1A504l + 0.300GAO5008 + 0.300GAK500Q                 : ARR( 0.162E-13, -1400., 0.0);
+{ 56496} G2A504a +PERO3              =  0.460G1A504l + 0.270GAO5008 + 0.270GAK500Q                 : ARR( 0.488E-13, -1250., 0.0);
+{ 56497} G2A504a +PERO5              =  0.460G1A504l + 0.270GAO5008 + 0.270GAK500Q                 : ARR( 0.183E-11,   450., 0.0);
+{ 56498} G2A504a +PERO6              =  0.300G1A504l + 0.350GAO5008 + 0.350GAK500Q                 : ARR( 0.168E-13, -1300., 0.0);
+{ 56499} G2A504a +PERO9              =  0.650G1A504l + 0.350GAK500Q                                : ARR( 0.100E-10,     0., 0.0);
+{ 56500} GPH5036                     =       G3H502G +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 56501} GPH5036 +GHO                =       GPH5046 +      GHO2                                   : ARR( 0.410E-11,     0., 0.0);
+{ 56502} GPH5036 +GHO                =       GPK500R +      GHO                                    : ARR( 0.420E-10,     0., 0.0);
+{ 56503} GPH5036 +GHO                =       GPH502Q +      GHO2                                   : ARR( 0.105E-10,     0., 0.0);
+{ 56504} GPH5036 +GHO                =       G2P504u                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 56505} GPH5036+HV               =       G1P504s +      GHO                                    :  0.100E+01*SUN;
+{ 56506} GPH5036+HV               =       G3H502G +      GNO2                                   :  0.100E+01*SUN;
+{ 56507} G2P504u +GNO                =       G1P504s +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 56508} G2P504u +GNO                =       GPN501c                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 56509} G2P504u +GHO2               =       GPH5036                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 56510} G2P504u +GNO3               =       G1P504s +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 56511} G2P504u +MEPERO             =  0.340G1P504s + 0.330GPO5008 + 0.330GPK500R                 : ARR( 0.565E-13,  -845., 0.0);
+{ 56512} G2P504u +PERO1              =  0.460G1P504s + 0.270GPO5008 + 0.270GPK500R                 : ARR( 0.434E-13,  -900., 0.0);
+{ 56513} G2P504u +PERO2              =  0.400G1P504s + 0.300GPO5008 + 0.300GPK500R                 : ARR( 0.162E-13, -1400., 0.0);
+{ 56514} G2P504u +PERO3              =  0.460G1P504s + 0.270GPO5008 + 0.270GPK500R                 : ARR( 0.488E-13, -1250., 0.0);
+{ 56515} G2P504u +PERO5              =  0.460G1P504s + 0.270GPO5008 + 0.270GPK500R                 : ARR( 0.183E-11,   450., 0.0);
+{ 56516} G2P504u +PERO6              =  0.300G1P504s + 0.350GPO5008 + 0.350GPK500R                 : ARR( 0.168E-13, -1300., 0.0);
+{ 56517} G2P504u +PERO9              =  0.650G1P504s + 0.350GPK500R                                : ARR( 0.100E-10,     0., 0.0);
+{ 56518} GGH502r +GHO                =       GGH5039 +      GHO2                                   : ARR( 0.129E-10,     0., 0.0);
+{ 56519} GGH502r +GHO                =       GGK500Q +      GHO                                    : ARR( 0.255E-10,     0., 0.0);
+{ 56520} GGH502r +GHO                =       G2G503f                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 56521} GGH502r +GHO                =       G3H502H                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 56522} GGH502r+HV               =       G1G5041 +      GHO                                    :  0.100E+01*SUN;
+{ 56523} GGH502r+HV               =       G3H3004 +      G2G2000                                :  0.100E+01*SUN;
+{ 56524} GGH502r+HV               =       G2H4015 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 56525} G2G503f +GNO                =       G1G5041 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 56526} G2G503f +GNO                =       GGN501Z                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 56527} G2G503f +GHO2               =       GGH502r                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 56528} G2G503f +GNO3               =       G1G5041 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 56529} G2G503f +MEPERO             =  0.340G1G5041 + 0.330GGK5008 + 0.330GGK500Q                 : ARR( 0.565E-13,  -845., 0.0);
+{ 56530} G2G503f +PERO1              =  0.460G1G5041 + 0.270GGK5008 + 0.270GGK500Q                 : ARR( 0.434E-13,  -900., 0.0);
+{ 56531} G2G503f +PERO2              =  0.400G1G5041 + 0.300GGK5008 + 0.300GGK500Q                 : ARR( 0.162E-13, -1400., 0.0);
+{ 56532} G2G503f +PERO3              =  0.460G1G5041 + 0.270GGK5008 + 0.270GGK500Q                 : ARR( 0.488E-13, -1250., 0.0);
+{ 56533} G2G503f +PERO5              =  0.460G1G5041 + 0.270GGK5008 + 0.270GGK500Q                 : ARR( 0.183E-11,   450., 0.0);
+{ 56534} G2G503f +PERO6              =  0.300G1G5041 + 0.350GGK5008 + 0.350GGK500Q                 : ARR( 0.168E-13, -1300., 0.0);
+{ 56535} G2G503f +PERO9              =  0.650G1G5041 + 0.350GGK500Q                                : ARR( 0.100E-10,     0., 0.0);
+{ 56536} GGH502s +GHO                =       GGH501y +      GHO                                    : ARR( 0.491E-10,     0., 0.0);
+{ 56537} GGH502s +GHO                =       GGH502r +      GHO                                    : ARR( 0.491E-10,     0., 0.0);
+{ 56538} GGH502s+HV               =       G1G5051 +      GHO                                    :  0.100E+01*SUN;
+{ 56539} GGH502s+HV               =       G1G5053 +      GHO                                    :  0.100E+01*SUN;
+{ 56540} GGH502s+HV               =       G2H400W +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 56541} GAH502z +GHO                =       GAH5027 +      GHO                                    : ARR( 0.475E-10,     0., 0.0);
+{ 56542} GAH502z +GHO                =       GAH502L +      GHO                                    : ARR( 0.475E-10,     0., 0.0);
+{ 56543} GAH502z+HV               =       G1A504k +      GHO                                    :  0.100E+01*SUN;
+{ 56544} GAH502z+HV               =       G1A504o +      GHO                                    :  0.100E+01*SUN;
+{ 56545} GPH5037                     =       G3H502I +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 56546} GPH5037 +GHO                =       GPH5024 +      GHO                                    : ARR( 0.473E-10,     0., 0.0);
+{ 56547} GPH5037 +GHO                =       GPH502Q +      GHO                                    : ARR( 0.473E-10,     0., 0.0);
+{ 56548} GPH5037+HV               =       G1P504r +      GHO                                    :  0.100E+01*SUN;
+{ 56549} GPH5037+HV               =       G1P504y +      GHO                                    :  0.100E+01*SUN;
+{ 56550} GPH5037+HV               =       G3H502I +      GNO2                                   :  0.100E+01*SUN;
+{ 56551} GAG2000 +GHO                =       G3A2000                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 56552} GAG2000 +GHO                =       GCO     +      GHO2    +      GCO2                    : ARR( 0.520E-12,     0., 0.0);
+{ 56553} GAG2000+HV               =       GCO     +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 56554} G3A2000 +GHO2               =  0.800GAG2000 + 0.200GAA2000 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 56555} G3A2000 +GNO                =       GCO     +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 56556}  G3A2000 + GNO2       +M       =       GPA2000         +M                                    : FALL( 0.110E-10,     0.,-1.0, 0.850E-28,     0.,-6.5,0.60);
+{ 56557} G3A2000 +GNO3               =       GCO     +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 56558} G3A2000 +MEPERO             =  0.685GCO     + 0.315GAA2000 + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 56559} G3A2000 +PERO1              =  0.800GCO     + 0.200GAA2000 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 56560} G3A2000 +PERO2              =  0.750GCO     + 0.250GAA2000 + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 56561} G3A2000 +PERO3              =  0.800GCO     + 0.200GAA2000 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 56562} G3A2000 +PERO5              =  0.650GCO     + 0.350GAA2000 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 56563} G3A2000 +PERO6              =  0.650GCO     + 0.350GAA2000 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 56564} G3A2000 +PERO9              =       GCO     +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 56565} GAA2000 +GHO                =       GCO     +      GHO     +      GCO2                    : ARR( 0.104E-11,     0., 0.0);
+{ 56566} GAA2000+HV               =       GCO2    +      GHCOOH                                 :  0.100E+01*SUN;
+{ 56567} GAA2000+HV               =       GCO2    +      GCO                                    :  0.100E+01*SUN;
+{ 56568}  GPA2000    +M                 =       G3A2000 +      GNO2            +M                     : FALL( 0.280E+17, 13580., 0.0, 0.190E-02, 12175., 0.0,0.60);
+{ 56569} GPA2000 +GHO                =       GCO     +      GNO2    +      GCO2                    : ARR( 0.520E-12,     0., 0.0);
+{ 56570} GPA2000+HV               =       G3A2000 +      GNO2                                   :  0.100E+01*SUN;
+{ 56571} GGG5005 +GHO                =       G3G5007                                               : ARR( 0.404E-11,  -190., 0.0);
+{ 56572} GGG5005+HV               =       G2G400T +      GHO     +      GCO2                    :  0.200E+01*SUN;
+{ 56573} GGG5005+HV               =       G1G5054 +      GNO2                                   :  0.100E+01*SUN;
+{ 56574} G1G5054                     =       G2G2000 +      GGD3000                                : ARR( 0.400E+15,  6813., 0.0);
+{ 56575} GGN5022 +GHO                =       G3G500Y                                               : ARR( 0.210E-10,     0., 0.0);
+{ 56576} GGN5022 +GHO                =       G3N501i                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 56577} GGN5022 +GNO3               =       G3G500Y +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 56578} GGN5022+HV               =       GND400D +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 56579} GGN5022+HV               =       G1G5055 +      GNO2                                   :  0.100E+01*SUN;
+{ 56580} GGN5022+HV               =       G1G5056 +      GNO2                                   :  0.100E+01*SUN;
+{ 56581} GGN5022+HV               =       G2G400x +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 56582} GGN5022+HV               =       GGD3002 +      GD02000 + 2.000GNO2                    :  0.100E+01*SUN;
+{ 56583} G3G500Y +GHO2               =  0.800GGG500O + 0.200GAG500t + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 56584} G3G500Y +GNO                =       G2G400x +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 56585} G3G500Y +GNO2               =       GPG500T                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 56586} G3G500Y +GNO3               =       G2G400x +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 56587} G3G500Y +MEPERO             =  0.685G2G400x + 0.315GAG500t + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 56588} G3G500Y +PERO1              =  0.800G2G400x + 0.200GAG500t + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 56589} G3G500Y +PERO2              =  0.750G2G400x + 0.250GAG500t + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 56590} G3G500Y +PERO3              =  0.800G2G400x + 0.200GAG500t + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 56591} G3G500Y +PERO5              =  0.650G2G400x + 0.350GAG500t + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 56592} G3G500Y +PERO6              =  0.650G2G400x + 0.350GAG500t + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 56593} G3G500Y +PERO9              =       G2G400x +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 56594} G1G5055                     =       GCO     +      GND400D +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 56595} G1G5056                     =       GGD2000 +      GDD3000 +      GNO2                    : ARR( 0.200E+15,  6039., 0.0);
+{ 56596} G1G5056                     =       GGN3005 +      G2D2000                                : ARR( 0.200E+15,  6399., 0.0);
+{ 56597} G2G400x +GNO                =       G1G400i +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 56598} G2G400x +GNO                =       GGN400N                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 56599} G2G400x +GHO2               =       GGH400t                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 56600} G2G400x +GNO3               =       G1G400i +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 56601} G2G400x +MEPERO             =  0.480G1G400i + 0.260GGN400H + 0.260GGN400X                 : ARR( 0.164E-12,  -795., 0.0);
+{ 56602} G2G400x +PERO1              =  0.600G1G400i + 0.200GGN400H + 0.200GGN400X                 : ARR( 0.126E-12,  -850., 0.0);
+{ 56603} G2G400x +PERO2              =  0.560G1G400i + 0.220GGN400H + 0.220GGN400X                 : ARR( 0.471E-13, -1350., 0.0);
+{ 56604} G2G400x +PERO3              =  0.600G1G400i + 0.200GGN400H + 0.200GGN400X                 : ARR( 0.142E-12, -1200., 0.0);
+{ 56605} G2G400x +PERO5              =  0.600G1G400i + 0.200GGN400H + 0.200GGN400X                 : ARR( 0.533E-11,   500., 0.0);
+{ 56606} G2G400x +PERO6              =  0.460G1G400i + 0.270GGN400H + 0.270GGN400X                 : ARR( 0.488E-13, -1250., 0.0);
+{ 56607} G2G400x +PERO9              =  0.800G1G400i + 0.200GGN400X                                : ARR( 0.100E-10,     0., 0.0);
+{ 56608} GGH502t +GHO                =       GGN5023 +      GHO                                    : ARR( 0.511E-11,     0., 0.0);
+{ 56609} GGH502t +GHO                =       G3G500Z                                               : ARR( 0.211E-10,     0., 0.0);
+{ 56610} GGH502t +GHO                =       G3H502K                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 56611} GGH502t +GHO                =       G2G503g                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 56612} GGH502t +GNO3               =       G3G500Z +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 56613} GGH502t+HV               =       GND400D +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 56614} GGH502t+HV               =       G1G5055 +      GHO                                    :  0.100E+01*SUN;
+{ 56615} GGH502t+HV               =       G1G502d +      GNO2                                   :  0.100E+01*SUN;
+{ 56616} GGH502t+HV               =       G2G400u +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 56617} GGH502t+HV               =       GGD3002 +      GD02000 +      GNO2    +      GHO      :  0.100E+01*SUN;
+{ 56618} G3G500Z +GHO2               =  0.800GGG500P + 0.200GAG500u + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 56619} G3G500Z +GNO                =       G2G400u +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 56620} G3G500Z +GNO2               =       GPG500x                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 56621} G3G500Z +GNO3               =       G2G400u +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 56622} G3G500Z +MEPERO             =  0.685G2G400u + 0.315GAG500u + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 56623} G3G500Z +PERO1              =  0.800G2G400u + 0.200GAG500u + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 56624} G3G500Z +PERO2              =  0.750G2G400u + 0.250GAG500u + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 56625} G3G500Z +PERO3              =  0.800G2G400u + 0.200GAG500u + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 56626} G3G500Z +PERO5              =  0.650G2G400u + 0.350GAG500u + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 56627} G3G500Z +PERO6              =  0.650G2G400u + 0.350GAG500u + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 56628} G3G500Z +PERO9              =       G2G400u +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 56629} G2G503g +GNO                =       G1G5055 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 56630} G2G503g +GNO                =       GGN5022                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 56631} G2G503g +GHO2               =       GGH502t                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 56632} G2G503g +GNO3               =       G1G5055 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 56633} G2G503g +MEPERO             =  0.340G1G5055 + 0.330GGN500q + 0.330GGN5023                 : ARR( 0.565E-13,  -845., 0.0);
+{ 56634} G2G503g +PERO1              =  0.460G1G5055 + 0.270GGN500q + 0.270GGN5023                 : ARR( 0.434E-13,  -900., 0.0);
+{ 56635} G2G503g +PERO2              =  0.400G1G5055 + 0.300GGN500q + 0.300GGN5023                 : ARR( 0.162E-13, -1400., 0.0);
+{ 56636} G2G503g +PERO3              =  0.460G1G5055 + 0.270GGN500q + 0.270GGN5023                 : ARR( 0.488E-13, -1250., 0.0);
+{ 56637} G2G503g +PERO5              =  0.460G1G5055 + 0.270GGN500q + 0.270GGN5023                 : ARR( 0.183E-11,   450., 0.0);
+{ 56638} G2G503g +PERO6              =  0.300G1G5055 + 0.350GGN500q + 0.350GGN5023                 : ARR( 0.168E-13, -1300., 0.0);
+{ 56639} G2G503g +PERO9              =  0.650G1G5055 + 0.350GGN5023                                : ARR( 0.100E-10,     0., 0.0);
+{ 56640} GGN5023 +GHO                =       G3G500a                                               : ARR( 0.211E-10,     0., 0.0);
+{ 56641} GGN5023 +GHO                =       G3N502R                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 56642} GGN5023 +GNO3               =       G3G500a +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 56643} GGN5023+HV               =       GAN400N +      GCO2                                   :  0.100E+01*SUN;
+{ 56644} GGN5023+HV               =       G1G502b +      GNO2                                   :  0.100E+01*SUN;
+{ 56645} GGN5023+HV               =       G2G400y +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 56646} G3G500a +GHO2               =  0.800GGG500Q + 0.200GAG500q + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 56647} G3G500a +GNO                =       G2G400y +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 56648} G3G500a +GNO2               =       GPG500u                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 56649} G3G500a +GNO3               =       G2G400y +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 56650} G3G500a +MEPERO             =  0.685G2G400y + 0.315GAG500q + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 56651} G3G500a +PERO1              =  0.800G2G400y + 0.200GAG500q + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 56652} G3G500a +PERO2              =  0.750G2G400y + 0.250GAG500q + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 56653} G3G500a +PERO3              =  0.800G2G400y + 0.200GAG500q + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 56654} G3G500a +PERO5              =  0.650G2G400y + 0.350GAG500q + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 56655} G3G500a +PERO6              =  0.650G2G400y + 0.350GAG500q + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 56656} G3G500a +PERO9              =       G2G400y +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 56657} G2G400y +GNO                =       G1G4019 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 56658} G2G400y +GNO                =       GGN400a                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 56659} G2G400y +GHO2               =       GGH400x                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 56660} G2G400y +GNO3               =       G1G4019 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 56661} G2G400y +MEPERO             =  0.480G1G4019 + 0.260GGN400Y + 0.260GGN400b                 : ARR( 0.164E-12,  -795., 0.0);
+{ 56662} G2G400y +PERO1              =  0.600G1G4019 + 0.200GGN400Y + 0.200GGN400b                 : ARR( 0.126E-12,  -850., 0.0);
+{ 56663} G2G400y +PERO2              =  0.560G1G4019 + 0.220GGN400Y + 0.220GGN400b                 : ARR( 0.471E-13, -1350., 0.0);
+{ 56664} G2G400y +PERO3              =  0.600G1G4019 + 0.200GGN400Y + 0.200GGN400b                 : ARR( 0.142E-12, -1200., 0.0);
+{ 56665} G2G400y +PERO5              =  0.600G1G4019 + 0.200GGN400Y + 0.200GGN400b                 : ARR( 0.533E-11,   500., 0.0);
+{ 56666} G2G400y +PERO6              =  0.460G1G4019 + 0.270GGN400Y + 0.270GGN400b                 : ARR( 0.488E-13, -1250., 0.0);
+{ 56667} G2G400y +PERO9              =  0.800G1G4019 + 0.200GGN400b                                : ARR( 0.100E-10,     0., 0.0);
+{ 56668} G1G4019 +OXYGEN             =       GGN400b +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 56669} G1G4019                     =       GGD3002 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  6903., 0.0);
+{ 56670} GGG5006 +GHO                =       GGG500Q +      GHO2                                   : ARR( 0.132E-11,     0., 0.0);
+{ 56671} GGG5006 +GHO                =       G3G5009                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 56672} GGG5006 +GHO                =       G3G5008                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 56673} GGG5006+HV               =       GGN400I +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 56674} GGG5006+HV               =       G1G502g +      GNO2                                   :  0.100E+01*SUN;
+{ 56675} GGG5006+HV               =       G2G400U +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 56676} GGH400n +GHO                =       GGN400U +      GHO                                    : ARR( 0.329E-11,     0., 0.0);
+{ 56677} GGH400n +GHO                =       GGH400x +      GHO2                                   : ARR( 0.128E-11,     0., 0.0);
+{ 56678} GGH400n +GHO                =       G2G400U                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 56679} GGH400n +GHO                =       G3H400f                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 56680} GGH400n+HV               =       G1G400f +      GHO                                    :  0.100E+01*SUN;
+{ 56681} GGH400n+HV               =       G1G401A +      GNO2                                   :  0.100E+01*SUN;
+{ 56682} GGH400n+HV               =       GHN300A +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 56683} G1G401A                     =       GHD2000 +      GGD2000 +      GHO2                    : ARR( 0.200E+15,  3989., 0.0);
+{ 56684} GAN502B +GHO                =       GNN400D +      GNO2    +      GCO2                    : ARR( 0.549E-12,     0., 0.0);
+{ 56685} GAN502B+HV               =       G1A502m +      GNO2                                   :  0.100E+01*SUN;
+{ 56686} GAN502B+HV               =       G1A503F +      GNO2                                   :  0.100E+01*SUN;
+{ 56687} GAN502B+HV               =       G1A502i +      GNO2                                   :  0.100E+01*SUN;
+{ 56688} GAN502B+HV               =       G1A504q +      GNO2                                   :  0.100E+01*SUN;
+{ 56689} GAH5031 +GHO                =       GAN502C +      GHO                                    : ARR( 0.167E-11,     0., 0.0);
+{ 56690} GAH5031 +GHO                =       G2A502L                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 56691} GAH5031 +GHO                =       GHN4012 +      GNO2    +      GCO2                    : ARR( 0.527E-12,     0., 0.0);
+{ 56692} GAH5031+HV               =       G1A5061 +      GNO2                                   :  0.100E+01*SUN;
+{ 56693} GAH5031+HV               =       G1A5062 +      GNO2                                   :  0.100E+01*SUN;
+{ 56694} GAH5031+HV               =       G1A502i +      GHO                                    :  0.100E+01*SUN;
+{ 56695} GAH5031+HV               =       G1A5063 +      GNO2                                   :  0.100E+01*SUN;
+{ 56696} G1A5061                     =       GCO     +      GHN4012 +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 56697} G1A5062                     =       GAN3006 +      GND2000 +      GHO                     : ARR( 0.200E+15,  3953., 0.0);
+{ 56698} G1A5063                     =       GAN400Y +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{ 56699} GAN502C +GHO                =       GNN400G +      GNO2    +      GCO2                    : ARR( 0.573E-12,     0., 0.0);
+{ 56700} GAN502C+HV               =       G1A502q +      GNO2                                   :  0.100E+01*SUN;
+{ 56701} GAN502C+HV               =       G1A503I +      GNO2                                   :  0.100E+01*SUN;
+{ 56702} GAN502C+HV               =       G3A400A +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{ 56703} GAN502C+HV               =       G1A504v +      GNO2                                   :  0.100E+01*SUN;
+{ 56704} GAN502D +GHO                =       G3N400J +      GCO2                                   : ARR( 0.548E-12,     0., 0.0);
+{ 56705} GAN502D+HV               =       GNN400D +      GCO2                                   :  0.100E+01*SUN;
+{ 56706} GAN502D+HV               =       G1A503M +      GNO2                                   :  0.100E+01*SUN;
+{ 56707} GAN502D+HV               =       G1A502k +      GNO2                                   :  0.100E+01*SUN;
+{ 56708} GAN502D+HV               =       G1A504u +      GNO2                                   :  0.100E+01*SUN;
+{ 56709} GAH5032 +GHO                =       GAN502E +      GHO                                    : ARR( 0.168E-11,     0., 0.0);
+{ 56710} GAH5032 +GHO                =       G2A502M                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 56711} GAH5032 +GHO                =       G3H400a +      GCO2                                   : ARR( 0.531E-12,     0., 0.0);
+{ 56712} GAH5032+HV               =       GHN4012 +      GCO2                                   :  0.100E+01*SUN;
+{ 56713} GAH5032+HV               =       G1A5064 +      GNO2                                   :  0.100E+01*SUN;
+{ 56714} GAH5032+HV               =       G1A502k +      GHO                                    :  0.100E+01*SUN;
+{ 56715} GAH5032+HV               =       G1A5065 +      GNO2                                   :  0.100E+01*SUN;
+{ 56716} G1A5064                     =       GCO     +      GHN3007 +      GHO     +      GCO      : ARR( 0.200E+15,  3266., 0.0);
+{ 56717} G1A5065 +OXYGEN             =       GAH504p +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 56718} G1A5065                     =       GAN400Z +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5636., 0.0);
+{ 56719} GAN502E +GHO                =       GAN502W +      GNO2                                   : ARR( 0.460E-13,     0., 0.0);
+{ 56720} GAN502E +GHO                =       G3N400L +      GCO2                                   : ARR( 0.546E-12,     0., 0.0);
+{ 56721} GAN502E+HV               =       GNN400G +      GCO2                                   :  0.100E+01*SUN;
+{ 56722} GAN502E+HV               =       G1A503O +      GNO2                                   :  0.100E+01*SUN;
+{ 56723} GAN502E+HV               =       G3A400C +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{ 56724} GAN502E+HV               =       G1A504y +      GNO2                                   :  0.100E+01*SUN;
+{ 56725} GAH5033 +GHO                =       GAN502D +      GHO                                    : ARR( 0.374E-11,     0., 0.0);
+{ 56726} GAH5033 +GHO                =       G2A502N                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 56727} GAH5033 +GHO                =       GNN400D +      GHO     +      GCO2                    : ARR( 0.522E-12,     0., 0.0);
+{ 56728} GAH5033+HV               =       G1A502m +      GHO                                    :  0.100E+01*SUN;
+{ 56729} GAH5033+HV               =       G1A5066 +      GNO2                                   :  0.100E+01*SUN;
+{ 56730} GAH5033+HV               =       G1A5067 +      GNO2                                   :  0.100E+01*SUN;
+{ 56731} GAH5033+HV               =       G1A5068 +      GNO2                                   :  0.100E+01*SUN;
+{ 56732} G1A5066                     =       GAD2000 +      GNN3005 +      GHO                     : ARR( 0.200E+15,  5138., 0.0);
+{ 56733} G1A5066                     =       GAH3007 +      GND2000 +      GNO2                    : ARR( 0.200E+15,  5492., 0.0);
+{ 56734} G1A5067                     =       GAH3007 +      GND2000 +      GNO2                    : ARR( 0.200E+15,  6365., 0.0);
+{ 56735} G1A5068                     =       GAN501n +      GHO                                    : ARR( 0.800E+11,  2753., 0.0);
+{ 56736} GAN502F +GHO                =       G3A500e                                               : ARR( 0.430E-11,     0., 0.0);
+{ 56737} GAN502F +GHO                =       G2N4015 +      GCO2                                   : ARR( 0.538E-12,     0., 0.0);
+{ 56738} GAN502F +GNO3               =       G3A500e +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 56739} GAN502F+HV               =       G1A5069 +      GNO2                                   :  0.100E+01*SUN;
+{ 56740} GAN502F+HV               =       G1A506A +      GNO2                                   :  0.100E+01*SUN;
+{ 56741} GAN502F+HV               =       GAN400J +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 56742} GAN502F+HV               =       G2A3007 +      GND2000 +      GNO2                    :  0.100E+01*SUN;
+{ 56743} G3A500e +GHO2               =  0.800GAG500t + 0.200GAA500L + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 56744} G3A500e +GNO                =       GAN400J + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 56745} G3A500e +GNO2               =       GPA500a                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 56746} G3A500e +GNO3               =       GAN400J + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 56747} G3A500e +MEPERO             =  0.685GAN400J + 0.315GAA500L + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 56748} G3A500e +PERO1              =  0.800GAN400J + 0.200GAA500L + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 56749} G3A500e +PERO2              =  0.750GAN400J + 0.250GAA500L + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 56750} G3A500e +PERO3              =  0.800GAN400J + 0.200GAA500L + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 56751} G3A500e +PERO5              =  0.650GAN400J + 0.350GAA500L + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 56752} G3A500e +PERO6              =  0.650GAN400J + 0.350GAA500L + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 56753} G3A500e +PERO9              =       GAN400J +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 56754} G1A5069                     =       G2A2000 +      GND3005                                : ARR( 0.200E+15,  6620., 0.0);
+{ 56755} G1A5069                     =       GAD3000 +      GDD2000 +      GNO2                    : ARR( 0.200E+15,  5818., 0.0);
+{ 56756} G1A506A                     =       GAN400J +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 56757} GAH5034 +GHO                =       GAH5056 +      GHO2                                   : ARR( 0.822E-12,     0., 0.0);
+{ 56758} GAH5034 +GHO                =       GAN501n +      GHO                                    : ARR( 0.380E-11,     0., 0.0);
+{ 56759} GAH5034 +GHO                =       G2A502O                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 56760} GAH5034 +GHO                =       GNN400E +      GHO     +      GCO2                    : ARR( 0.531E-12,     0., 0.0);
+{ 56761} GAH5034+HV               =       G1A506B +      GNO2                                   :  0.100E+01*SUN;
+{ 56762} GAH5034+HV               =       G1A506C +      GNO2                                   :  0.100E+01*SUN;
+{ 56763} GAH5034+HV               =       G1A502n +      GHO                                    :  0.100E+01*SUN;
+{ 56764} G1A506B                     =       GCH2O   +      GAH400l +      GHO2                    : ARR( 0.200E+15,  5296., 0.0);
+{ 56765} G1A506B                     =       GDO2000 +      GAH3007 +      GNO2                    : ARR( 0.200E+15,  6367., 0.0);
+{ 56766} G1A506C                     =       GDO2000 +      GAH3007 +      GNO2                    : ARR( 0.200E+15,  5492., 0.0);
+{ 56767} G1A506C                     =       GND3004 +      GAD2000 +      GHO                     : ARR( 0.200E+15,  5138., 0.0);
+{ 56768} GAN502G +GHO                =       GAN502k +      GHO2                                   : ARR( 0.959E-12,     0., 0.0);
+{ 56769} GAN502G +GHO                =       G3A500f                                               : ARR( 0.429E-11,     0., 0.0);
+{ 56770} GAN502G +GHO                =       GNN400Z +      GHO2    +      GCO2                    : ARR( 0.537E-12,     0., 0.0);
+{ 56771} GAN502G +GNO3               =       G3A500f +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 56772} GAN502G+HV               =       G1A506D +      GNO2                                   :  0.100E+01*SUN;
+{ 56773} GAN502G+HV               =       G1A506E +      GNO2                                   :  0.100E+01*SUN;
+{ 56774} GAN502G+HV               =       GAN400a +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 56775} GAN502G+HV               =       GAN3005 +      GND2000                                :  0.100E+01*SUN;
+{ 56776} G3A500f +GHO2               =  0.800GAG500v + 0.200GAA500O + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 56777} G3A500f +GNO                =       GAN400a + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 56778} G3A500f +GNO2               =       GPA500d                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 56779} G3A500f +GNO3               =       GAN400a + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 56780} G3A500f +MEPERO             =  0.685GAN400a + 0.315GAA500O + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 56781} G3A500f +PERO1              =  0.800GAN400a + 0.200GAA500O + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 56782} G3A500f +PERO2              =  0.750GAN400a + 0.250GAA500O + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 56783} G3A500f +PERO3              =  0.800GAN400a + 0.200GAA500O + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 56784} G3A500f +PERO5              =  0.650GAN400a + 0.350GAA500O + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 56785} G3A500f +PERO6              =  0.650GAN400a + 0.350GAA500O + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 56786} G3A500f +PERO9              =       GAN400a +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 56787} G1A506D                     =       GAD2000 +      GND3005 +      GHO2                    : ARR( 0.200E+15,  3099., 0.0);
+{ 56788} G1A506E                     =       GAN400a +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 56789} GAH5035 +GHO                =       GAH5057 +      GHO2                                   : ARR( 0.416E-11,     0., 0.0);
+{ 56790} GAH5035 +GHO                =       GAH5041 +      GHO                                    : ARR( 0.852E-11,     0., 0.0);
+{ 56791} GAH5035 +GHO                =       GAH502I +      GHO                                    : ARR( 0.384E-11,     0., 0.0);
+{ 56792} GAH5035 +GHO                =       G2A504b                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 56793} GAH5035 +GHO                =       G2A502P                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 56794} GAH5035+HV               =       G1A506B +      GHO                                    :  0.100E+01*SUN;
+{ 56795} GAH5035+HV               =       G1A506F +      GNO2                                   :  0.100E+01*SUN;
+{ 56796} GAH5035+HV               =       G1A502p +      GHO                                    :  0.100E+01*SUN;
+{ 56797} G2A504b +GNO                =       G1A506B +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 56798} G2A504b +GNO                =       GAH5034                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 56799} G2A504b +GHO2               =       GAH5035                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 56800} G2A504b +GNO3               =       G1A506B +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 56801} G2A504b +MEPERO             =  0.340G1A506B + 0.330GAH501R + 0.330GAH5041                 : ARR( 0.565E-13,  -845., 0.0);
+{ 56802} G2A504b +PERO1              =  0.460G1A506B + 0.270GAH501R + 0.270GAH5041                 : ARR( 0.434E-13,  -900., 0.0);
+{ 56803} G2A504b +PERO2              =  0.400G1A506B + 0.300GAH501R + 0.300GAH5041                 : ARR( 0.162E-13, -1400., 0.0);
+{ 56804} G2A504b +PERO3              =  0.460G1A506B + 0.270GAH501R + 0.270GAH5041                 : ARR( 0.488E-13, -1250., 0.0);
+{ 56805} G2A504b +PERO5              =  0.460G1A506B + 0.270GAH501R + 0.270GAH5041                 : ARR( 0.183E-11,   450., 0.0);
+{ 56806} G2A504b +PERO6              =  0.300G1A506B + 0.350GAH501R + 0.350GAH5041                 : ARR( 0.168E-13, -1300., 0.0);
+{ 56807} G2A504b +PERO9              =  0.650G1A506B + 0.350GAH5041                                : ARR( 0.100E-10,     0., 0.0);
+{ 56808} G1A506F                     =       GDO2000 +      GAH3007 +      GHO                     : ARR( 0.200E+15,  3953., 0.0);
+{ 56809} GAH5036 +GHO                =       GAH5037 +      GHO2                                   : ARR( 0.424E-11,     0., 0.0);
+{ 56810} GAH5036 +GHO                =       GAN5029 +      GHO                                    : ARR( 0.869E-11,     0., 0.0);
+{ 56811} GAH5036 +GHO                =       GAH502I +      GHO2                                   : ARR( 0.981E-12,     0., 0.0);
+{ 56812} GAH5036 +GHO                =       G2A504c                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 56813} GAH5036+HV               =       G1A505j +      GHO                                    :  0.100E+01*SUN;
+{ 56814} GAH5036+HV               =       G1A506G +      GNO2                                   :  0.100E+01*SUN;
+{ 56815} G2A504c +GNO                =       G1A505j +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 56816} G2A504c +GNO                =       GAN5027                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 56817} G2A504c +GHO2               =       GAH5036                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 56818} G2A504c +GNO3               =       G1A505j +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 56819} G2A504c +MEPERO             =  0.340G1A505j + 0.330GAN500p + 0.330GAN5029                 : ARR( 0.565E-13,  -845., 0.0);
+{ 56820} G2A504c +PERO1              =  0.460G1A505j + 0.270GAN500p + 0.270GAN5029                 : ARR( 0.434E-13,  -900., 0.0);
+{ 56821} G2A504c +PERO2              =  0.400G1A505j + 0.300GAN500p + 0.300GAN5029                 : ARR( 0.162E-13, -1400., 0.0);
+{ 56822} G2A504c +PERO3              =  0.460G1A505j + 0.270GAN500p + 0.270GAN5029                 : ARR( 0.488E-13, -1250., 0.0);
+{ 56823} G2A504c +PERO5              =  0.460G1A505j + 0.270GAN500p + 0.270GAN5029                 : ARR( 0.183E-11,   450., 0.0);
+{ 56824} G2A504c +PERO6              =  0.300G1A505j + 0.350GAN500p + 0.350GAN5029                 : ARR( 0.168E-13, -1300., 0.0);
+{ 56825} G2A504c +PERO9              =  0.650G1A505j + 0.350GAN5029                                : ARR( 0.100E-10,     0., 0.0);
+{ 56826} G1A506G                     =       GDO2000 +      GAD3001 +      GHO                     : ARR( 0.200E+15,  3953., 0.0);
+{ 56827} G1A506G                     =       GHD3003 +      GAD2000 +      GHO2                    : ARR( 0.200E+15,  3929., 0.0);
+{ 56828} GAH5037 +GHO                =       GAN502i +      GHO                                    : ARR( 0.536E-11,     0., 0.0);
+{ 56829} GAH5037 +GHO                =       G3A500g                                               : ARR( 0.222E-10,     0., 0.0);
+{ 56830} GAH5037 +GHO                =       G2A504d                                               : ARR( 0.203E-11,  -190., 0.0);
+{ 56831} GAH5037 +GNO3               =       G3A500g +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 56832} GAH5037+HV               =       G1A503l +      GNO2                                   :  0.100E+01*SUN;
+{ 56833} GAH5037+HV               =       G1A506E +      GHO                                    :  0.100E+01*SUN;
+{ 56834} GAH5037+HV               =       GAN400a +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 56835} G3A500g +GHO2               =  0.800GAG500w + 0.200GAA500P + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 56836} G3A500g +GNO                =       GAN400a +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 56837} G3A500g +GNO2               =       GPA500e                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 56838} G3A500g +GNO3               =       GAN400a +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 56839} G3A500g +MEPERO             =  0.685GAN400a + 0.315GAA500P + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 56840} G3A500g +PERO1              =  0.800GAN400a + 0.200GAA500P + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 56841} G3A500g +PERO2              =  0.750GAN400a + 0.250GAA500P + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 56842} G3A500g +PERO3              =  0.800GAN400a + 0.200GAA500P + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 56843} G3A500g +PERO5              =  0.650GAN400a + 0.350GAA500P + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 56844} G3A500g +PERO6              =  0.650GAN400a + 0.350GAA500P + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 56845} G3A500g +PERO9              =       GAN400a +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 56846} G2A504d +GNO                =       G1A506E +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 56847} G2A504d +GNO                =       GAN502G                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 56848} G2A504d +GHO2               =       GAH5037                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 56849} G2A504d +GNO3               =       G1A506E +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 56850} G2A504d +MEPERO             =  0.340G1A506E + 0.330GAN501W + 0.330GAN502i                 : ARR( 0.565E-13,  -845., 0.0);
+{ 56851} G2A504d +PERO1              =  0.460G1A506E + 0.270GAN501W + 0.270GAN502i                 : ARR( 0.434E-13,  -900., 0.0);
+{ 56852} G2A504d +PERO2              =  0.400G1A506E + 0.300GAN501W + 0.300GAN502i                 : ARR( 0.162E-13, -1400., 0.0);
+{ 56853} G2A504d +PERO3              =  0.460G1A506E + 0.270GAN501W + 0.270GAN502i                 : ARR( 0.488E-13, -1250., 0.0);
+{ 56854} G2A504d +PERO5              =  0.460G1A506E + 0.270GAN501W + 0.270GAN502i                 : ARR( 0.183E-11,   450., 0.0);
+{ 56855} G2A504d +PERO6              =  0.300G1A506E + 0.350GAN501W + 0.350GAN502i                 : ARR( 0.168E-13, -1300., 0.0);
+{ 56856} G2A504d +PERO9              =  0.650G1A506E + 0.350GAN502i                                : ARR( 0.100E-10,     0., 0.0);
+{ 56857} GAH5038 +GHO                =       GAN502E +      GHO                                    : ARR( 0.377E-11,     0., 0.0);
+{ 56858} GAH5038 +GHO                =       G2A502Q                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 56859} GAH5038 +GHO                =       GNN400G +      GHO     +      GCO2                    : ARR( 0.527E-12,     0., 0.0);
+{ 56860} GAH5038+HV               =       G1A502q +      GHO                                    :  0.100E+01*SUN;
+{ 56861} GAH5038+HV               =       G1A506H +      GNO2                                   :  0.100E+01*SUN;
+{ 56862} GAH5038+HV               =       G3A400G +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{ 56863} GAH5038+HV               =       G1A506I +      GNO2                                   :  0.100E+01*SUN;
+{ 56864} G1A506H                     =       GAH3007 +      G3N2000                                : ARR( 0.200E+15,  2059., 0.0);
+{ 56865} G1A506I                     =       G3A400G +      GCH2O                                  : ARR( 0.200E+15,  3640., 0.0);
+{ 56866} GAN502H +GHO                =       GAN502E +      GHO2                                   : ARR( 0.988E-12,     0., 0.0);
+{ 56867} GAN502H +GHO                =       G1A502q                                               : ARR( 0.223E-17,    85., 2.0);
+{ 56868} GAN502H +GHO                =       GNN400G +      GHO2    +      GCO2                    : ARR( 0.553E-12,     0., 0.0);
+{ 56869} GAN502H+HV               =       G1A503o +      GNO2                                   :  0.100E+01*SUN;
+{ 56870} GAN502H+HV               =       G3A400B +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{ 56871} GAN502H+HV               =       G1A504x +      GNO2                                   :  0.100E+01*SUN;
+{ 56872} GPN502M                     =       G3N501w +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 56873} GPN502M +GHO                =       GPN502j +      GNO2                                   : ARR( 0.919E-14,     0., 0.0);
+{ 56874} GPN502M +GHO                =       GPN502O +      GNO2                                   : ARR( 0.471E-14,     0., 0.0);
+{ 56875} GPN502M +GHO                =       GPN502Z +      GNO2                                   : ARR( 0.471E-14,     0., 0.0);
+{ 56876} GPN502M +GHO                =       GPN502N +      GNO2                                   : ARR( 0.144E-13,     0., 0.0);
+{ 56877} GPN502M+HV               =       G1P5056 +      GNO2                                   :  0.100E+01*SUN;
+{ 56878} GPN502M+HV               =       G1P5032 +      GNO2                                   :  0.100E+01*SUN;
+{ 56879} GPN502M+HV               =       G1P503b +      GNO2                                   :  0.100E+01*SUN;
+{ 56880} GPN502M+HV               =       G1P502x +      GNO2                                   :  0.100E+01*SUN;
+{ 56881} GPN502M+HV               =       G3N501w +      GNO2                                   :  0.100E+01*SUN;
+{ 56882} GPH5038                     =       G3H502n +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 56883} GPH5038 +GHO                =       GPN502N +      GHO                                    : ARR( 0.505E-11,     0., 0.0);
+{ 56884} GPH5038 +GHO                =       G2P502S                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 56885} GPH5038+HV               =       G1P506k +      GNO2                                   :  0.100E+01*SUN;
+{ 56886} GPH5038+HV               =       G1P506l +      GNO2                                   :  0.100E+01*SUN;
+{ 56887} GPH5038+HV               =       G1P506m +      GNO2                                   :  0.100E+01*SUN;
+{ 56888} GPH5038+HV               =       G1P502x +      GHO                                    :  0.100E+01*SUN;
+{ 56889} GPH5038+HV               =       G3H502n +      GNO2                                   :  0.100E+01*SUN;
+{ 56890} G1P506k                     =       GPN501j +      GHO                                    : ARR( 0.800E+11,  2619., 0.0);
+{ 56891} G1P506l                     =       GND2000 +      GPH3007 +      GNO2                    : ARR( 0.200E+15,  6365., 0.0);
+{ 56892} G1P506m                     =       GND2000 +      GPH3007 +      GNO2                    : ARR( 0.200E+15,  5492., 0.0);
+{ 56893} G1P506m                     =       GNN3005 +      GPD2000 +      GHO                     : ARR( 0.200E+15,  5138., 0.0);
+{ 56894} GPN502N                     =       G3N502f +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 56895} GPN502N +GHO                =       GPN502k +      GNO2                                   : ARR( 0.919E-14,     0., 0.0);
+{ 56896} GPN502N +GHO                =       GPN502P +      GNO2                                   : ARR( 0.471E-14,     0., 0.0);
+{ 56897} GPN502N +GHO                =       GPN502b +      GNO2                                   : ARR( 0.144E-13,     0., 0.0);
+{ 56898} GPN502N+HV               =       G1P505A +      GNO2                                   :  0.100E+01*SUN;
+{ 56899} GPN502N+HV               =       G1P5035 +      GNO2                                   :  0.100E+01*SUN;
+{ 56900} GPN502N+HV               =       G1P503g +      GNO2                                   :  0.100E+01*SUN;
+{ 56901} GPN502N+HV               =       G3N400J +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 56902} G3N502f +GHO2               =  0.800GGN502j + 0.200GAN502D + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 56903} G3N502f +GNO                =       G3N400J +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 56904} G3N502f +GNO2               =       GPN502N                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 56905} G3N502f +GNO3               =       G3N400J +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 56906} G3N502f +MEPERO             =  0.685G3N400J + 0.315GAN502D + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 56907} G3N502f +PERO1              =  0.800G3N400J + 0.200GAN502D + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 56908} G3N502f +PERO2              =  0.750G3N400J + 0.250GAN502D + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 56909} G3N502f +PERO3              =  0.800G3N400J + 0.200GAN502D + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 56910} G3N502f +PERO5              =  0.650G3N400J + 0.350GAN502D + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 56911} G3N502f +PERO6              =  0.650G3N400J + 0.350GAN502D + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 56912} G3N502f +PERO9              =       G3N400J +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 56913} GPH5039                     =       G3H502p +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 56914} GPH5039 +GHO                =       GPH505E +      GHO2                                   : ARR( 0.406E-11,     0., 0.0);
+{ 56915} GPH5039 +GHO                =       GPH504A +      GHO                                    : ARR( 0.833E-11,     0., 0.0);
+{ 56916} GPH5039 +GHO                =       GPH502H +      GHO                                    : ARR( 0.508E-11,     0., 0.0);
+{ 56917} GPH5039 +GHO                =       G2P504v                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 56918} GPH5039 +GHO                =       G2P502T                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 56919} GPH5039+HV               =       G1P505C +      GHO                                    :  0.100E+01*SUN;
+{ 56920} GPH5039+HV               =       G1P506n +      GNO2                                   :  0.100E+01*SUN;
+{ 56921} GPH5039+HV               =       G1P502z +      GHO                                    :  0.100E+01*SUN;
+{ 56922} GPH5039+HV               =       G3H502p +      GNO2                                   :  0.100E+01*SUN;
+{ 56923} G2P504v +GNO                =       G1P505C +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 56924} G2P504v +GNO                =       GPH5028                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 56925} G2P504v +GHO2               =       GPH5039                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 56926} G2P504v +GNO3               =       G1P505C +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 56927} G2P504v +MEPERO             =  0.340G1P505C + 0.330GPH501S + 0.330GPH504A                 : ARR( 0.565E-13,  -845., 0.0);
+{ 56928} G2P504v +PERO1              =  0.460G1P505C + 0.270GPH501S + 0.270GPH504A                 : ARR( 0.434E-13,  -900., 0.0);
+{ 56929} G2P504v +PERO2              =  0.400G1P505C + 0.300GPH501S + 0.300GPH504A                 : ARR( 0.162E-13, -1400., 0.0);
+{ 56930} G2P504v +PERO3              =  0.460G1P505C + 0.270GPH501S + 0.270GPH504A                 : ARR( 0.488E-13, -1250., 0.0);
+{ 56931} G2P504v +PERO5              =  0.460G1P505C + 0.270GPH501S + 0.270GPH504A                 : ARR( 0.183E-11,   450., 0.0);
+{ 56932} G2P504v +PERO6              =  0.300G1P505C + 0.350GPH501S + 0.350GPH504A                 : ARR( 0.168E-13, -1300., 0.0);
+{ 56933} G2P504v +PERO9              =  0.650G1P505C + 0.350GPH504A                                : ARR( 0.100E-10,     0., 0.0);
+{ 56934} G1P506n                     =       GDO2000 +      GPH3007 +      GHO                     : ARR( 0.200E+15,  3953., 0.0);
+{ 56935} GPH503A                     =       G3H502q +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 56936} GPH503A +GHO                =       GPH503B +      GHO2                                   : ARR( 0.411E-11,     0., 0.0);
+{ 56937} GPH503A +GHO                =       GPN502J +      GHO                                    : ARR( 0.843E-11,     0., 0.0);
+{ 56938} GPH503A +GHO                =       GPH502H +      GHO2                                   : ARR( 0.129E-11,     0., 0.0);
+{ 56939} GPH503A +GHO                =       G2P504w                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 56940} GPH503A+HV               =       G1P505F +      GHO                                    :  0.100E+01*SUN;
+{ 56941} GPH503A+HV               =       G1P506o +      GNO2                                   :  0.100E+01*SUN;
+{ 56942} GPH503A+HV               =       G3H502q +      GNO2                                   :  0.100E+01*SUN;
+{ 56943} G2P504w +GNO                =       G1P505F +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 56944} G2P504w +GNO                =       GPN501i                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 56945} G2P504w +GHO2               =       GPH503A                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 56946} G2P504w +GNO3               =       G1P505F +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 56947} G2P504w +MEPERO             =  0.340G1P505F + 0.330GPN500s + 0.330GPN502J                 : ARR( 0.565E-13,  -845., 0.0);
+{ 56948} G2P504w +PERO1              =  0.460G1P505F + 0.270GPN500s + 0.270GPN502J                 : ARR( 0.434E-13,  -900., 0.0);
+{ 56949} G2P504w +PERO2              =  0.400G1P505F + 0.300GPN500s + 0.300GPN502J                 : ARR( 0.162E-13, -1400., 0.0);
+{ 56950} G2P504w +PERO3              =  0.460G1P505F + 0.270GPN500s + 0.270GPN502J                 : ARR( 0.488E-13, -1250., 0.0);
+{ 56951} G2P504w +PERO5              =  0.460G1P505F + 0.270GPN500s + 0.270GPN502J                 : ARR( 0.183E-11,   450., 0.0);
+{ 56952} G2P504w +PERO6              =  0.300G1P505F + 0.350GPN500s + 0.350GPN502J                 : ARR( 0.168E-13, -1300., 0.0);
+{ 56953} G2P504w +PERO9              =  0.650G1P505F + 0.350GPN502J                                : ARR( 0.100E-10,     0., 0.0);
+{ 56954} G1P506o                     =       GDO2000 +      GPD3001 +      GHO                     : ARR( 0.200E+15,  3953., 0.0);
+{ 56955} G1P506o                     =       GHD3003 +      GPD2000 +      GHO2                    : ARR( 0.200E+15,  3929., 0.0);
+{ 56956} GPH503B                     =       G3H502r +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 56957} GPH503B +GHO                =       GPN502K +      GHO                                    : ARR( 0.533E-11,     0., 0.0);
+{ 56958} GPH503B +GHO                =       G3P500i                                               : ARR( 0.220E-10,     0., 0.0);
+{ 56959} GPH503B +GHO                =       G2P504x                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 56960} GPH503B +GNO3               =       G3P500i +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 56961} GPH503B+HV               =       G3H502r +      GNO2                                   :  0.100E+01*SUN;
+{ 56962} GPH503B+HV               =       G1P503t +      GNO2                                   :  0.100E+01*SUN;
+{ 56963} GPH503B+HV               =       G1P505I +      GHO                                    :  0.100E+01*SUN;
+{ 56964} GPH503B+HV               =       GPN400Q +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 56965} G3P500i +GHO2               =  0.800GPG500y + 0.200GPA500h + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 56966} G3P500i +GNO                =       GPN400Q +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 56967} G3P500i +GNO2               =       GPP500M                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 56968} G3P500i +GNO3               =       GPN400Q +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 56969} G3P500i +MEPERO             =  0.685GPN400Q + 0.315GPA500h + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 56970} G3P500i +PERO1              =  0.800GPN400Q + 0.200GPA500h + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 56971} G3P500i +PERO2              =  0.750GPN400Q + 0.250GPA500h + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 56972} G3P500i +PERO3              =  0.800GPN400Q + 0.200GPA500h + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 56973} G3P500i +PERO5              =  0.650GPN400Q + 0.350GPA500h + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 56974} G3P500i +PERO6              =  0.650GPN400Q + 0.350GPA500h + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 56975} G3P500i +PERO9              =       GPN400Q +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 56976} G2P504x +GNO                =       G1P505I +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 56977} G2P504x +GNO                =       GPN501k                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 56978} G2P504x +GHO2               =       GPH503B                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 56979} G2P504x +GNO3               =       G1P505I +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 56980} G2P504x +MEPERO             =  0.340G1P505I + 0.330GPN500t + 0.330GPN502K                 : ARR( 0.565E-13,  -845., 0.0);
+{ 56981} G2P504x +PERO1              =  0.460G1P505I + 0.270GPN500t + 0.270GPN502K                 : ARR( 0.434E-13,  -900., 0.0);
+{ 56982} G2P504x +PERO2              =  0.400G1P505I + 0.300GPN500t + 0.300GPN502K                 : ARR( 0.162E-13, -1400., 0.0);
+{ 56983} G2P504x +PERO3              =  0.460G1P505I + 0.270GPN500t + 0.270GPN502K                 : ARR( 0.488E-13, -1250., 0.0);
+{ 56984} G2P504x +PERO5              =  0.460G1P505I + 0.270GPN500t + 0.270GPN502K                 : ARR( 0.183E-11,   450., 0.0);
+{ 56985} G2P504x +PERO6              =  0.300G1P505I + 0.350GPN500t + 0.350GPN502K                 : ARR( 0.168E-13, -1300., 0.0);
+{ 56986} G2P504x +PERO9              =  0.650G1P505I + 0.350GPN502K                                : ARR( 0.100E-10,     0., 0.0);
+{ 56987} GPN502O                     =       G3N501x +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 56988} GPN502O +GHO                =       GPN502l +      GNO2                                   : ARR( 0.280E-13,     0., 0.0);
+{ 56989} GPN502O +GHO                =       GPN502c +      GNO2                                   : ARR( 0.144E-13,     0., 0.0);
+{ 56990} GPN502O +GHO                =       GPN502P +      GNO2                                   : ARR( 0.144E-13,     0., 0.0);
+{ 56991} GPN502O+HV               =       G1P505J +      GNO2                                   :  0.100E+01*SUN;
+{ 56992} GPN502O+HV               =       G3N2000 +      GPN3006 +      GNO2                    :  0.100E+01*SUN;
+{ 56993} GPN502O+HV               =       G1P503y +      GNO2                                   :  0.100E+01*SUN;
+{ 56994} GPN502O+HV               =       G1P5031 +      GNO2                                   :  0.100E+01*SUN;
+{ 56995} GPN502O+HV               =       G3N501x +      GNO2                                   :  0.100E+01*SUN;
+{ 56996} GPH503C                     =       G3H502u +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 56997} GPH503C +GHO                =       GPN502P +      GHO                                    : ARR( 0.508E-11,     0., 0.0);
+{ 56998} GPH503C +GHO                =       G2P502U                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 56999} GPH503C+HV               =       G1P506p +      GNO2                                   :  0.100E+01*SUN;
+{ 57000} GPH503C+HV               =       G3N2000 +      GPH3007 +      GNO2                    :  0.100E+01*SUN;
+{ 57001} GPH503C+HV               =       G1P506q +      GNO2                                   :  0.100E+01*SUN;
+{ 57002} GPH503C+HV               =       G1P5031 +      GHO                                    :  0.100E+01*SUN;
+{ 57003} GPH503C+HV               =       G3H502u +      GNO2                                   :  0.100E+01*SUN;
+{ 57004} G1P506p                     =       G3P400G +      GCH2O                                  : ARR( 0.200E+15,  3640., 0.0);
+{ 57005} G1P506q                     =       G3N2000 +      GPH3007                                : ARR( 0.200E+15,  2059., 0.0);
+{ 57006} GPN502P                     =       G3N502g +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 57007} GPN502P +GHO                =       GPN502m +      GNO2                                   : ARR( 0.280E-13,     0., 0.0);
+{ 57008} GPN502P +GHO                =       GPN502e +      GNO2                                   : ARR( 0.438E-13,     0., 0.0);
+{ 57009} GPN502P+HV               =       G1P505N +      GNO2                                   :  0.100E+01*SUN;
+{ 57010} GPN502P+HV               =       G3N2000 +      GPD3002 +      GNO2                    :  0.100E+01*SUN;
+{ 57011} GPN502P+HV               =       G1P5042 +      GNO2                                   :  0.100E+01*SUN;
+{ 57012} GPN502P+HV               =       G3N400L +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 57013} G3N502g +GHO2               =  0.800GGN502F + 0.200GAN502E + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 57014} G3N502g +GNO                =       G3N400L +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 57015} G3N502g +GNO2               =       GPN502P                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 57016} G3N502g +GNO3               =       G3N400L +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 57017} G3N502g +MEPERO             =  0.685G3N400L + 0.315GAN502E + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57018} G3N502g +PERO1              =  0.800G3N400L + 0.200GAN502E + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57019} G3N502g +PERO2              =  0.750G3N400L + 0.250GAN502E + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57020} G3N502g +PERO3              =  0.800G3N400L + 0.200GAN502E + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57021} G3N502g +PERO5              =  0.650G3N400L + 0.350GAN502E + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57022} G3N502g +PERO6              =  0.650G3N400L + 0.350GAN502E + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57023} G3N502g +PERO9              =       G3N400L +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 57024} GPH503D                     =       G3H502g +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 57025} GPH503D +GHO                =       GPN502O +      GHO                                    : ARR( 0.167E-11,     0., 0.0);
+{ 57026} GPH503D +GHO                =       G2P502W                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 57027} GPH503D+HV               =       G1P506r +      GNO2                                   :  0.100E+01*SUN;
+{ 57028} GPH503D+HV               =       G1P5032 +      GHO                                    :  0.100E+01*SUN;
+{ 57029} GPH503D+HV               =       G1P506s +      GNO2                                   :  0.100E+01*SUN;
+{ 57030} GPH503D+HV               =       G1P506t +      GNO2                                   :  0.100E+01*SUN;
+{ 57031} GPH503D+HV               =       G3H502g +      GNO2                                   :  0.100E+01*SUN;
+{ 57032} G1P506r                     =       GPN400Z +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{ 57033} G1P506s                     =       GND2000 +      GPN3006 +      GHO                     : ARR( 0.200E+15,  3953., 0.0);
+{ 57034} G1P506t                     =       GHN4012 +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 57035} GPH503E                     =       G3H504W +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 57036} GPH503E +GHO                =       GPN502P +      GHO                                    : ARR( 0.169E-11,     0., 0.0);
+{ 57037} GPH503E +GHO                =       G2P502X                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 57038} GPH503E+HV               =       G1P506u +      GNO2                                   :  0.100E+01*SUN;
+{ 57039} GPH503E+HV               =       G1P5035 +      GHO                                    :  0.100E+01*SUN;
+{ 57040} GPH503E+HV               =       G1P506v +      GNO2                                   :  0.100E+01*SUN;
+{ 57041} GPH503E+HV               =       G3H400a +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 57042} G3H504W +GHO2               =  0.800GGH504x + 0.200GAH5032 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 57043} G3H504W +GNO                =       G3H400a +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 57044} G3H504W +GNO2               =       GPH503E                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 57045} G3H504W +GNO3               =       G3H400a +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 57046} G3H504W +MEPERO             =  0.685G3H400a + 0.315GAH5032 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57047} G3H504W +PERO1              =  0.800G3H400a + 0.200GAH5032 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57048} G3H504W +PERO2              =  0.750G3H400a + 0.250GAH5032 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57049} G3H504W +PERO3              =  0.800G3H400a + 0.200GAH5032 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57050} G3H504W +PERO5              =  0.650G3H400a + 0.350GAH5032 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57051} G3H504W +PERO6              =  0.650G3H400a + 0.350GAH5032 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57052} G3H504W +PERO9              =       G3H400a +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 57053} G1P506u +OXYGEN             =       GPH504t +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 57054} G1P506u                     =       GPN400a +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5636., 0.0);
+{ 57055} G1P506v                     =       GHN3007 +      GCO     +      GNO2    +      GCO      : ARR( 0.200E+15,  3266., 0.0);
+{ 57056} GGN5024 +GHO                =       G3G500b                                               : ARR( 0.427E-11,     0., 0.0);
+{ 57057} GGN5024 +GHO                =       G3N501h                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 57058} GGN5024 +GNO3               =       G3G500b +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 57059} GGN5024+HV               =       G2N4015 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 57060} GGN5024+HV               =       G1G5057 +      GNO2                                   :  0.100E+01*SUN;
+{ 57061} GGN5024+HV               =       G1G5058 +      GNO2                                   :  0.100E+01*SUN;
+{ 57062} GGN5024+HV               =       GGN400I +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 57063} GGN5024+HV               =       G2G3009 +      GND2000 +      GNO2                    :  0.100E+01*SUN;
+{ 57064} G3G500b +GHO2               =  0.800GGG500O + 0.200GAG500X + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 57065} G3G500b +GNO                =       GGN400I + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 57066} G3G500b +GNO2               =       GPG500W                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 57067} G3G500b +GNO3               =       GGN400I + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 57068} G3G500b +MEPERO             =  0.685GGN400I + 0.315GAG500X + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 57069} G3G500b +PERO1              =  0.800GGN400I + 0.200GAG500X + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 57070} G3G500b +PERO2              =  0.750GGN400I + 0.250GAG500X + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 57071} G3G500b +PERO3              =  0.800GGN400I + 0.200GAG500X + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 57072} G3G500b +PERO5              =  0.650GGN400I + 0.350GAG500X + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 57073} G3G500b +PERO6              =  0.650GGN400I + 0.350GAG500X + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 57074} G3G500b +PERO9              =       GGN400I +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 57075} G1G5057                     =       G2G2000 +      GND3005                                : ARR( 0.200E+15,  6620., 0.0);
+{ 57076} G1G5057                     =       GGD3000 +      GDD2000 +      GNO2                    : ARR( 0.200E+15,  5818., 0.0);
+{ 57077} G1G5058                     =       GGN400I +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 57078} GGH502u +GHO                =       GGN5025 +      GHO                                    : ARR( 0.511E-11,     0., 0.0);
+{ 57079} GGH502u +GHO                =       G3G500c                                               : ARR( 0.211E-10,     0., 0.0);
+{ 57080} GGH502u +GHO                =       G3H502J                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 57081} GGH502u +GHO                =       G2G503h                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 57082} GGH502u +GNO3               =       G3G500c +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 57083} GGH502u+HV               =       G2H401A +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 57084} GGH502u+HV               =       G1G502j +      GNO2                                   :  0.100E+01*SUN;
+{ 57085} GGH502u+HV               =       G1G5058 +      GHO                                    :  0.100E+01*SUN;
+{ 57086} GGH502u+HV               =       GGN400I +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 57087} G3G500c +GHO2               =  0.800GGG500P + 0.200GAG500Z + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 57088} G3G500c +GNO                =       GGN400I +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 57089} G3G500c +GNO2               =       GPG500Y                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 57090} G3G500c +GNO3               =       GGN400I +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 57091} G3G500c +MEPERO             =  0.685GGN400I + 0.315GAG500Z + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 57092} G3G500c +PERO1              =  0.800GGN400I + 0.200GAG500Z + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 57093} G3G500c +PERO2              =  0.750GGN400I + 0.250GAG500Z + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 57094} G3G500c +PERO3              =  0.800GGN400I + 0.200GAG500Z + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 57095} G3G500c +PERO5              =  0.650GGN400I + 0.350GAG500Z + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 57096} G3G500c +PERO6              =  0.650GGN400I + 0.350GAG500Z + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 57097} G3G500c +PERO9              =       GGN400I +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 57098} G2G503h +GNO                =       G1G5058 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 57099} G2G503h +GNO                =       GGN5024                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 57100} G2G503h +GHO2               =       GGH502u                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 57101} G2G503h +GNO3               =       G1G5058 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 57102} G2G503h +MEPERO             =  0.340G1G5058 + 0.330GGN500r + 0.330GGN5025                 : ARR( 0.565E-13,  -845., 0.0);
+{ 57103} G2G503h +PERO1              =  0.460G1G5058 + 0.270GGN500r + 0.270GGN5025                 : ARR( 0.434E-13,  -900., 0.0);
+{ 57104} G2G503h +PERO2              =  0.400G1G5058 + 0.300GGN500r + 0.300GGN5025                 : ARR( 0.162E-13, -1400., 0.0);
+{ 57105} G2G503h +PERO3              =  0.460G1G5058 + 0.270GGN500r + 0.270GGN5025                 : ARR( 0.488E-13, -1250., 0.0);
+{ 57106} G2G503h +PERO5              =  0.460G1G5058 + 0.270GGN500r + 0.270GGN5025                 : ARR( 0.183E-11,   450., 0.0);
+{ 57107} G2G503h +PERO6              =  0.300G1G5058 + 0.350GGN500r + 0.350GGN5025                 : ARR( 0.168E-13, -1300., 0.0);
+{ 57108} G2G503h +PERO9              =  0.650G1G5058 + 0.350GGN5025                                : ARR( 0.100E-10,     0., 0.0);
+{ 57109} GAH5039 +GHO                =       GAN501e +      GHO                                    : ARR( 0.520E-11,     0., 0.0);
+{ 57110} GAH5039 +GHO                =       G3A500h                                               : ARR( 0.215E-10,     0., 0.0);
+{ 57111} GAH5039 +GHO                =       G2A504e                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 57112} GAH5039 +GNO3               =       G3A500h +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 57113} GAH5039+HV               =       G1A5047 +      GNO2                                   :  0.100E+01*SUN;
+{ 57114} GAH5039+HV               =       G1A506A +      GHO                                    :  0.100E+01*SUN;
+{ 57115} GAH5039+HV               =       GAN400J +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 57116} G3A500h +GHO2               =  0.800GAG500u + 0.200GAA500M + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 57117} G3A500h +GNO                =       GAN400J +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 57118} G3A500h +GNO2               =       GPA500b                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 57119} G3A500h +GNO3               =       GAN400J +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 57120} G3A500h +MEPERO             =  0.685GAN400J + 0.315GAA500M + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 57121} G3A500h +PERO1              =  0.800GAN400J + 0.200GAA500M + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 57122} G3A500h +PERO2              =  0.750GAN400J + 0.250GAA500M + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 57123} G3A500h +PERO3              =  0.800GAN400J + 0.200GAA500M + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 57124} G3A500h +PERO5              =  0.650GAN400J + 0.350GAA500M + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 57125} G3A500h +PERO6              =  0.650GAN400J + 0.350GAA500M + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 57126} G3A500h +PERO9              =       GAN400J +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 57127} G2A504e +GNO                =       G1A506A +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 57128} G2A504e +GNO                =       GAN502F                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 57129} G2A504e +GHO2               =       GAH5039                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 57130} G2A504e +GNO3               =       G1A506A +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 57131} G2A504e +MEPERO             =  0.340G1A506A + 0.330GAN500o + 0.330GAN501e                 : ARR( 0.565E-13,  -845., 0.0);
+{ 57132} G2A504e +PERO1              =  0.460G1A506A + 0.270GAN500o + 0.270GAN501e                 : ARR( 0.434E-13,  -900., 0.0);
+{ 57133} G2A504e +PERO2              =  0.400G1A506A + 0.300GAN500o + 0.300GAN501e                 : ARR( 0.162E-13, -1400., 0.0);
+{ 57134} G2A504e +PERO3              =  0.460G1A506A + 0.270GAN500o + 0.270GAN501e                 : ARR( 0.488E-13, -1250., 0.0);
+{ 57135} G2A504e +PERO5              =  0.460G1A506A + 0.270GAN500o + 0.270GAN501e                 : ARR( 0.183E-11,   450., 0.0);
+{ 57136} G2A504e +PERO6              =  0.300G1A506A + 0.350GAN500o + 0.350GAN501e                 : ARR( 0.168E-13, -1300., 0.0);
+{ 57137} G2A504e +PERO9              =  0.650G1A506A + 0.350GAN501e                                : ARR( 0.100E-10,     0., 0.0);
+{ 57138} GPH503F                     =       G3H502J +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 57139} GPH503F +GHO                =       GPN501l +      GHO                                    : ARR( 0.512E-11,     0., 0.0);
+{ 57140} GPH503F +GHO                =       G3P500j                                               : ARR( 0.212E-10,     0., 0.0);
+{ 57141} GPH503F +GHO                =       G2P504y                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 57142} GPH503F +GNO3               =       G3P500j +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 57143} GPH503F+HV               =       G3H502J +      GNO2                                   :  0.100E+01*SUN;
+{ 57144} GPH503F+HV               =       G1P504K +      GNO2                                   :  0.100E+01*SUN;
+{ 57145} GPH503F+HV               =       G1P5055 +      GHO                                    :  0.100E+01*SUN;
+{ 57146} GPH503F+HV               =       GPN400H +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 57147} G3P500j +GHO2               =  0.800GPG500x + 0.200GPA500Y + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 57148} G3P500j +GNO                =       GPN400H +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 57149} G3P500j +GNO2               =       GPP500J                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 57150} G3P500j +GNO3               =       GPN400H +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 57151} G3P500j +MEPERO             =  0.685GPN400H + 0.315GPA500Y + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 57152} G3P500j +PERO1              =  0.800GPN400H + 0.200GPA500Y + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 57153} G3P500j +PERO2              =  0.750GPN400H + 0.250GPA500Y + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 57154} G3P500j +PERO3              =  0.800GPN400H + 0.200GPA500Y + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 57155} G3P500j +PERO5              =  0.650GPN400H + 0.350GPA500Y + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 57156} G3P500j +PERO6              =  0.650GPN400H + 0.350GPA500Y + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 57157} G3P500j +PERO9              =       GPN400H +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 57158} G2P504y +GNO                =       G1P5055 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 57159} G2P504y +GNO                =       GPN501d                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 57160} G2P504y +GHO2               =       GPH503F                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 57161} G2P504y +GNO3               =       G1P5055 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 57162} G2P504y +MEPERO             =  0.340G1P5055 + 0.330GPN500p + 0.330GPN501l                 : ARR( 0.565E-13,  -845., 0.0);
+{ 57163} G2P504y +PERO1              =  0.460G1P5055 + 0.270GPN500p + 0.270GPN501l                 : ARR( 0.434E-13,  -900., 0.0);
+{ 57164} G2P504y +PERO2              =  0.400G1P5055 + 0.300GPN500p + 0.300GPN501l                 : ARR( 0.162E-13, -1400., 0.0);
+{ 57165} G2P504y +PERO3              =  0.460G1P5055 + 0.270GPN500p + 0.270GPN501l                 : ARR( 0.488E-13, -1250., 0.0);
+{ 57166} G2P504y +PERO5              =  0.460G1P5055 + 0.270GPN500p + 0.270GPN501l                 : ARR( 0.183E-11,   450., 0.0);
+{ 57167} G2P504y +PERO6              =  0.300G1P5055 + 0.350GPN500p + 0.350GPN501l                 : ARR( 0.168E-13, -1300., 0.0);
+{ 57168} G2P504y +PERO9              =  0.650G1P5055 + 0.350GPN501l                                : ARR( 0.100E-10,     0., 0.0);
+{ 57169} GGN5025 +GHO                =       G3G4003 +      GCO                                    : ARR( 0.129E-10,     0., 0.0);
+{ 57170} GGN5025 +GHO                =       G3N501j                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 57171} GGN5025 +GNO3               =       G3G4003 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 57172} GGN5025+HV               =       G2N4016 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 57173} GGN5025+HV               =       G1G5059 +      GNO2                                   :  0.100E+01*SUN;
+{ 57174} GGN5025+HV               =       G3G4003 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 57175} GGN5025+HV               =       GGN400I +      GCO                                    :  0.100E+01*SUN;
+{ 57176} GGN5025+HV               =       GGN3000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 57177} G1G5059                     =       GGD3000 +      G3D2000                                : ARR( 0.200E+15,  2595., 0.0);
+{ 57178} GGH502v +GHO                =       GGN501l +      GHO                                    : ARR( 0.266E-10,     0., 0.0);
+{ 57179} GGH502v +GHO                =       G3G500d                                               : ARR( 0.211E-10,     0., 0.0);
+{ 57180} GGH502v +GHO                =       G3H502M                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 57181} GGH502v +GHO                =       G2G503i                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 57182} GGH502v +GNO3               =       G3G500d +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 57183} GGH502v+HV               =       GHD400C +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 57184} GGH502v+HV               =       G1G505A +      GNO2                                   :  0.100E+01*SUN;
+{ 57185} GGH502v+HV               =       G1G5056 +      GHO                                    :  0.100E+01*SUN;
+{ 57186} GGH502v+HV               =       G2G400z +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 57187} GGH502v+HV               =       GGD3002 +      GD02000 +      GHO     +      GNO2     :  0.100E+01*SUN;
+{ 57188} G3G500d +GHO2               =  0.800GGG500R + 0.200GAG500x + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 57189} G3G500d +GNO                =       G2G400z +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 57190} G3G500d +GNO2               =       GPG500z                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 57191} G3G500d +GNO3               =       G2G400z +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 57192} G3G500d +MEPERO             =  0.685G2G400z + 0.315GAG500x + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57193} G3G500d +PERO1              =  0.800G2G400z + 0.200GAG500x + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57194} G3G500d +PERO2              =  0.750G2G400z + 0.250GAG500x + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57195} G3G500d +PERO3              =  0.800G2G400z + 0.200GAG500x + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57196} G3G500d +PERO5              =  0.650G2G400z + 0.350GAG500x + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57197} G3G500d +PERO6              =  0.650G2G400z + 0.350GAG500x + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57198} G3G500d +PERO9              =       G2G400z +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 57199} G2G503i +GNO                =       G1G5056 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 57200} G2G503i +GNO                =       GGN5022                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 57201} G2G503i +GHO2               =       GGH502v                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 57202} G2G503i +GNO3               =       G1G5056 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 57203} G2G503i +MEPERO             =  0.340G1G5056 + 0.330GGN5026 + 0.330GGN501l                 : ARR( 0.565E-13,  -845., 0.0);
+{ 57204} G2G503i +PERO1              =  0.460G1G5056 + 0.270GGN5026 + 0.270GGN501l                 : ARR( 0.434E-13,  -900., 0.0);
+{ 57205} G2G503i +PERO2              =  0.400G1G5056 + 0.300GGN5026 + 0.300GGN501l                 : ARR( 0.162E-13, -1400., 0.0);
+{ 57206} G2G503i +PERO3              =  0.460G1G5056 + 0.270GGN5026 + 0.270GGN501l                 : ARR( 0.488E-13, -1250., 0.0);
+{ 57207} G2G503i +PERO5              =  0.460G1G5056 + 0.270GGN5026 + 0.270GGN501l                 : ARR( 0.183E-11,   450., 0.0);
+{ 57208} G2G503i +PERO6              =  0.300G1G5056 + 0.350GGN5026 + 0.350GGN501l                 : ARR( 0.168E-13, -1300., 0.0);
+{ 57209} G2G503i +PERO9              =  0.650G1G5056 + 0.350GGN501l                                : ARR( 0.100E-10,     0., 0.0);
+{ 57210} G1G505A                     =       GCO     +      GHD400C +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 57211} G2G400z +GNO                =       G1G400p +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 57212} G2G400z +GNO                =       GGH400M                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 57213} G2G400z +GHO2               =       GGH400y                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 57214} G2G400z +GNO3               =       G1G400p +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 57215} G2G400z +MEPERO             =  0.480G1G400p + 0.260GGH400T + 0.260GGH400o                 : ARR( 0.164E-12,  -795., 0.0);
+{ 57216} G2G400z +PERO1              =  0.600G1G400p + 0.200GGH400T + 0.200GGH400o                 : ARR( 0.126E-12,  -850., 0.0);
+{ 57217} G2G400z +PERO2              =  0.560G1G400p + 0.220GGH400T + 0.220GGH400o                 : ARR( 0.471E-13, -1350., 0.0);
+{ 57218} G2G400z +PERO3              =  0.600G1G400p + 0.200GGH400T + 0.200GGH400o                 : ARR( 0.142E-12, -1200., 0.0);
+{ 57219} G2G400z +PERO5              =  0.600G1G400p + 0.200GGH400T + 0.200GGH400o                 : ARR( 0.533E-11,   500., 0.0);
+{ 57220} G2G400z +PERO6              =  0.460G1G400p + 0.270GGH400T + 0.270GGH400o                 : ARR( 0.488E-13, -1250., 0.0);
+{ 57221} G2G400z +PERO9              =  0.800G1G400p + 0.200GGH400o                                : ARR( 0.100E-10,     0., 0.0);
+{ 57222} GGH502w +GHO                =       GGH504y +      GHO2                                   : ARR( 0.832E-12,     0., 0.0);
+{ 57223} GGH502w +GHO                =       GGN502Y +      GHO                                    : ARR( 0.170E-11,     0., 0.0);
+{ 57224} GGH502w +GHO                =       G2G503j                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 57225} GGH502w +GHO                =       G3H502O                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 57226} GGH502w+HV               =       G1G502D +      GNO2                                   :  0.100E+01*SUN;
+{ 57227} GGH502w+HV               =       G1G505B +      GHO                                    :  0.100E+01*SUN;
+{ 57228} GGH502w+HV               =       G1G5039 +      GNO2                                   :  0.100E+01*SUN;
+{ 57229} GGH502w+HV               =       GHN400h +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 57230} G2G503j +GNO                =       G1G505B +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 57231} G2G503j +GNO                =       GGN502K                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 57232} G2G503j +GHO2               =       GGH502w                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 57233} G2G503j +GNO3               =       G1G505B +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 57234} G2G503j +MEPERO             =  0.340G1G505B + 0.330GGN5029 + 0.330GGN502Y                 : ARR( 0.565E-13,  -845., 0.0);
+{ 57235} G2G503j +PERO1              =  0.460G1G505B + 0.270GGN5029 + 0.270GGN502Y                 : ARR( 0.434E-13,  -900., 0.0);
+{ 57236} G2G503j +PERO2              =  0.400G1G505B + 0.300GGN5029 + 0.300GGN502Y                 : ARR( 0.162E-13, -1400., 0.0);
+{ 57237} G2G503j +PERO3              =  0.460G1G505B + 0.270GGN5029 + 0.270GGN502Y                 : ARR( 0.488E-13, -1250., 0.0);
+{ 57238} G2G503j +PERO5              =  0.460G1G505B + 0.270GGN5029 + 0.270GGN502Y                 : ARR( 0.183E-11,   450., 0.0);
+{ 57239} G2G503j +PERO6              =  0.300G1G505B + 0.350GGN5029 + 0.350GGN502Y                 : ARR( 0.168E-13, -1300., 0.0);
+{ 57240} G2G503j +PERO9              =  0.650G1G505B + 0.350GGN502Y                                : ARR( 0.100E-10,     0., 0.0);
+{ 57241} G1G505B                     =       GDO2000 +      GGN3005 +      GNO2                    : ARR( 0.200E+15,  5492., 0.0);
+{ 57242} GGH502x +GHO                =       GGH504z +      GHO2                                   : ARR( 0.403E-11,     0., 0.0);
+{ 57243} GGH502x +GHO                =       GGH502y +      GHO                                    : ARR( 0.413E-10,     0., 0.0);
+{ 57244} GGH502x +GHO                =       GGH504i +      GHO                                    : ARR( 0.827E-11,     0., 0.0);
+{ 57245} GGH502x +GHO                =       G2G501o                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 57246} GGH502x +GHO                =       G2G503k                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 57247} GGH502x +GHO                =       G3H502P                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 57248} GGH502x+HV               =       G1G502D +      GHO                                    :  0.100E+01*SUN;
+{ 57249} GGH502x+HV               =       G1G505C +      GHO                                    :  0.100E+01*SUN;
+{ 57250} GGH502x+HV               =       G1G503Q +      GNO2                                   :  0.100E+01*SUN;
+{ 57251} GGH502x+HV               =       GHH4009 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 57252} G2G503k +GNO                =       G1G505C +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 57253} G2G503k +GNO                =       GGH503P                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 57254} G2G503k +GHO2               =       GGH502x                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 57255} G2G503k +GNO3               =       G1G505C +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 57256} G2G503k +MEPERO             =  0.340G1G505C + 0.330GGH5037 + 0.330GGH504i                 : ARR( 0.565E-13,  -845., 0.0);
+{ 57257} G2G503k +PERO1              =  0.460G1G505C + 0.270GGH5037 + 0.270GGH504i                 : ARR( 0.434E-13,  -900., 0.0);
+{ 57258} G2G503k +PERO2              =  0.400G1G505C + 0.300GGH5037 + 0.300GGH504i                 : ARR( 0.162E-13, -1400., 0.0);
+{ 57259} G2G503k +PERO3              =  0.460G1G505C + 0.270GGH5037 + 0.270GGH504i                 : ARR( 0.488E-13, -1250., 0.0);
+{ 57260} G2G503k +PERO5              =  0.460G1G505C + 0.270GGH5037 + 0.270GGH504i                 : ARR( 0.183E-11,   450., 0.0);
+{ 57261} G2G503k +PERO6              =  0.300G1G505C + 0.350GGH5037 + 0.350GGH504i                 : ARR( 0.168E-13, -1300., 0.0);
+{ 57262} G2G503k +PERO9              =  0.650G1G505C + 0.350GGH504i                                : ARR( 0.100E-10,     0., 0.0);
+{ 57263} G1G505C                     =       GDO2000 +      GGN3005 +      GHO                     : ARR( 0.200E+15,  3953., 0.0);
+{ 57264} GGH502y +GHO                =       GGH5051 +      GHO2                                   : ARR( 0.251E-11,     0., 0.0);
+{ 57265} GGH502y +GHO                =       GGN502d +      GHO                                    : ARR( 0.515E-11,     0., 0.0);
+{ 57266} GGH502y +GHO                =       G2G503l                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 57267} GGH502y +GHO                =       G3H502Q                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 57268} GGH502y+HV               =       G3K2001 +      GGN3005 +      GHO                     :  0.100E+01*SUN;
+{ 57269} GGH502y+HV               =       G1G505D +      GHO                                    :  0.100E+01*SUN;
+{ 57270} GGH502y+HV               =       G1G5043 +      GNO2                                   :  0.100E+01*SUN;
+{ 57271} GGH502y+HV               =       GHD400G +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 57272} G2G503l +GNO                =       G1G505D +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 57273} G2G503l +GNO                =       GGN502W                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 57274} G2G503l +GHO2               =       GGH502y                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 57275} G2G503l +GNO3               =       G1G505D +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 57276} G2G503l +MEPERO             =  0.340G1G505D + 0.330GGN502A + 0.330GGN502d                 : ARR( 0.565E-13,  -845., 0.0);
+{ 57277} G2G503l +PERO1              =  0.460G1G505D + 0.270GGN502A + 0.270GGN502d                 : ARR( 0.434E-13,  -900., 0.0);
+{ 57278} G2G503l +PERO2              =  0.400G1G505D + 0.300GGN502A + 0.300GGN502d                 : ARR( 0.162E-13, -1400., 0.0);
+{ 57279} G2G503l +PERO3              =  0.460G1G505D + 0.270GGN502A + 0.270GGN502d                 : ARR( 0.488E-13, -1250., 0.0);
+{ 57280} G2G503l +PERO5              =  0.460G1G505D + 0.270GGN502A + 0.270GGN502d                 : ARR( 0.183E-11,   450., 0.0);
+{ 57281} G2G503l +PERO6              =  0.300G1G505D + 0.350GGN502A + 0.350GGN502d                 : ARR( 0.168E-13, -1300., 0.0);
+{ 57282} G2G503l +PERO9              =  0.650G1G505D + 0.350GGN502d                                : ARR( 0.100E-10,     0., 0.0);
+{ 57283} G1G505D                     =       G3K2001 +      GGN3005                                : ARR( 0.200E+15,  2179., 0.0);
+{ 57284} GGH400o +GHO                =       GGN400Z +      GHO                                    : ARR( 0.506E-11,     0., 0.0);
+{ 57285} GGH400o +GHO                =       G3G400H                                               : ARR( 0.209E-10,     0., 0.0);
+{ 57286} GGH400o +GHO                =       G3H400g                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 57287} GGH400o +GHO                =       G2G4011                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 57288} GGH400o +GNO3               =       G3G400H +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 57289} GGH400o+HV               =       GHD3004 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 57290} GGH400o+HV               =       G1G401B +      GNO2                                   :  0.100E+01*SUN;
+{ 57291} GGH400o+HV               =       G1G4011 +      GHO                                    :  0.100E+01*SUN;
+{ 57292} GGH400o+HV               =       GGN3005 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 57293} G3G400H +GHO2               =  0.800GGG400B + 0.200GAG400K + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 57294} G3G400H +GNO                =       GGN3005 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 57295} G3G400H +GNO2               =       GPG400K                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 57296} G3G400H +GNO3               =       GGN3005 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 57297} G3G400H +MEPERO             =  0.685GGN3005 + 0.315GAG400K + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 57298} G3G400H +PERO1              =  0.800GGN3005 + 0.200GAG400K + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 57299} G3G400H +PERO2              =  0.750GGN3005 + 0.250GAG400K + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 57300} G3G400H +PERO3              =  0.800GGN3005 + 0.200GAG400K + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 57301} G3G400H +PERO5              =  0.650GGN3005 + 0.350GAG400K + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 57302} G3G400H +PERO6              =  0.650GGN3005 + 0.350GAG400K + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 57303} G3G400H +PERO9              =       GGN3005 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 57304} G2G4011 +GNO                =       G1G4011 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 57305} G2G4011 +GNO                =       GGN400X                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 57306} G2G4011 +GHO2               =       GGH400o                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 57307} G2G4011 +GNO3               =       G1G4011 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 57308} G2G4011 +MEPERO             =  0.340G1G4011 + 0.330GGN400W + 0.330GGN400Z                 : ARR( 0.565E-13,  -845., 0.0);
+{ 57309} G2G4011 +PERO1              =  0.460G1G4011 + 0.270GGN400W + 0.270GGN400Z                 : ARR( 0.434E-13,  -900., 0.0);
+{ 57310} G2G4011 +PERO2              =  0.400G1G4011 + 0.300GGN400W + 0.300GGN400Z                 : ARR( 0.162E-13, -1400., 0.0);
+{ 57311} G2G4011 +PERO3              =  0.460G1G4011 + 0.270GGN400W + 0.270GGN400Z                 : ARR( 0.488E-13, -1250., 0.0);
+{ 57312} G2G4011 +PERO5              =  0.460G1G4011 + 0.270GGN400W + 0.270GGN400Z                 : ARR( 0.183E-11,   450., 0.0);
+{ 57313} G2G4011 +PERO6              =  0.300G1G4011 + 0.350GGN400W + 0.350GGN400Z                 : ARR( 0.168E-13, -1300., 0.0);
+{ 57314} G2G4011 +PERO9              =  0.650G1G4011 + 0.350GGN400Z                                : ARR( 0.100E-10,     0., 0.0);
+{ 57315} G1G401B                     =       GCO     +      GHD3004 +      GHO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 57316} GGH502z +GHO                =       GGD500F +      GHO                                    : ARR( 0.875E-10,     0., 0.0);
+{ 57317} GGH502z +GHO                =       G3G500e                                               : ARR( 0.228E-10,     0., 0.0);
+{ 57318} GGH502z +GNO3               =       G3G500e +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 57319} GGH502z+HV               =       GAH400Q +      GCO2                                   :  0.100E+01*SUN;
+{ 57320} GGH502z+HV               =       G1G502b +      GHO                                    :  0.100E+01*SUN;
+{ 57321} GGH502z+HV               =       G2G4012 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 57322} G3G500e +GHO2               =  0.800GGG500S + 0.200GAG500y + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 57323} G3G500e +GNO                =       G2G4012 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 57324} G3G500e +GNO2               =       GPG5011                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 57325} G3G500e +GNO3               =       G2G4012 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 57326} G3G500e +MEPERO             =  0.685G2G4012 + 0.315GAG500y + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57327} G3G500e +PERO1              =  0.800G2G4012 + 0.200GAG500y + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57328} G3G500e +PERO2              =  0.750G2G4012 + 0.250GAG500y + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57329} G3G500e +PERO3              =  0.800G2G4012 + 0.200GAG500y + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57330} G3G500e +PERO5              =  0.650G2G4012 + 0.350GAG500y + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57331} G3G500e +PERO6              =  0.650G2G4012 + 0.350GAG500y + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57332} G3G500e +PERO9              =       G2G4012 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 57333} G2G4012 +GNO                =       G1G400s +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 57334} G2G4012 +GNO                =       GGH400P                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 57335} G2G4012 +GHO2               =       GGH400z                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 57336} G2G4012 +GNO3               =       G1G400s +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 57337} G2G4012 +MEPERO             =  0.480G1G400s + 0.260GGH400j + 0.260GGH400p                 : ARR( 0.164E-12,  -795., 0.0);
+{ 57338} G2G4012 +PERO1              =  0.600G1G400s + 0.200GGH400j + 0.200GGH400p                 : ARR( 0.126E-12,  -850., 0.0);
+{ 57339} G2G4012 +PERO2              =  0.560G1G400s + 0.220GGH400j + 0.220GGH400p                 : ARR( 0.471E-13, -1350., 0.0);
+{ 57340} G2G4012 +PERO3              =  0.600G1G400s + 0.200GGH400j + 0.200GGH400p                 : ARR( 0.142E-12, -1200., 0.0);
+{ 57341} G2G4012 +PERO5              =  0.600G1G400s + 0.200GGH400j + 0.200GGH400p                 : ARR( 0.533E-11,   500., 0.0);
+{ 57342} G2G4012 +PERO6              =  0.460G1G400s + 0.270GGH400j + 0.270GGH400p                 : ARR( 0.488E-13, -1250., 0.0);
+{ 57343} G2G4012 +PERO9              =  0.800G1G400s + 0.200GGH400p                                : ARR( 0.100E-10,     0., 0.0);
+{ 57344} GGH5031 +GHO                =       GGH5052 +      GHO2                                   : ARR( 0.836E-12,     0., 0.0);
+{ 57345} GGH5031 +GHO                =       GGN502Z +      GHO                                    : ARR( 0.522E-11,     0., 0.0);
+{ 57346} GGH5031 +GHO                =       G2G503m                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 57347} GGH5031 +GHO                =       G3H504X                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 57348} GGH5031+HV               =       G1G502E +      GNO2                                   :  0.100E+01*SUN;
+{ 57349} GGH5031+HV               =       G1G505E +      GHO                                    :  0.100E+01*SUN;
+{ 57350} GGH5031+HV               =       GAH400C +      GCO2                                   :  0.100E+01*SUN;
+{ 57351} G2G503m +GNO                =       G1G505E +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 57352} G2G503m +GNO                =       GGN502S                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 57353} G2G503m +GHO2               =       GGH5031                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 57354} G2G503m +GNO3               =       G1G505E +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 57355} G2G503m +MEPERO             =  0.340G1G505E + 0.330GGN501g + 0.330GGN502Z                 : ARR( 0.565E-13,  -845., 0.0);
+{ 57356} G2G503m +PERO1              =  0.460G1G505E + 0.270GGN501g + 0.270GGN502Z                 : ARR( 0.434E-13,  -900., 0.0);
+{ 57357} G2G503m +PERO2              =  0.400G1G505E + 0.300GGN501g + 0.300GGN502Z                 : ARR( 0.162E-13, -1400., 0.0);
+{ 57358} G2G503m +PERO3              =  0.460G1G505E + 0.270GGN501g + 0.270GGN502Z                 : ARR( 0.488E-13, -1250., 0.0);
+{ 57359} G2G503m +PERO5              =  0.460G1G505E + 0.270GGN501g + 0.270GGN502Z                 : ARR( 0.183E-11,   450., 0.0);
+{ 57360} G2G503m +PERO6              =  0.300G1G505E + 0.350GGN501g + 0.350GGN502Z                 : ARR( 0.168E-13, -1300., 0.0);
+{ 57361} G2G503m +PERO9              =  0.650G1G505E + 0.350GGN502Z                                : ARR( 0.100E-10,     0., 0.0);
+{ 57362} G3H504X +GHO2               =  0.800GGH5031 + 0.200GAH503G + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 57363} G3H504X +GNO                =       G3H400G +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 57364} G3H504X +GNO2               =       GPH503M                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 57365} G3H504X +GNO3               =       G3H400G +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 57366} G3H504X +MEPERO             =  0.685G3H400G + 0.315GAH503G + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57367} G3H504X +PERO1              =  0.800G3H400G + 0.200GAH503G + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57368} G3H504X +PERO2              =  0.750G3H400G + 0.250GAH503G + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57369} G3H504X +PERO3              =  0.800G3H400G + 0.200GAH503G + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57370} G3H504X +PERO5              =  0.650G3H400G + 0.350GAH503G + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57371} G3H504X +PERO6              =  0.650G3H400G + 0.350GAH503G + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57372} G3H504X +PERO9              =       G3H400G +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 57373} G1G505E                     =       GND3004 +      GCO     +      GHO2    +      GCO      : ARR( 0.200E+15,  3266., 0.0);
+{ 57374} GGH5032 +GHO                =       GGH5033 +      GHO                                    : ARR( 0.143E-09,     0., 0.0);
+{ 57375} GGH5032 +GHO                =       GGH504j +      GHO                                    : ARR( 0.275E-10,     0., 0.0);
+{ 57376} GGH5032+HV               =       G1G502E +      GHO                                    :  0.100E+01*SUN;
+{ 57377} GGH5032+HV               =       G1G505F +      GHO                                    :  0.100E+01*SUN;
+{ 57378} GGH5032+HV               =       GAH400a +      GCO2                                   :  0.100E+01*SUN;
+{ 57379} G1G505F                     =       GHD3003 +      GCO     +      GHO2    +      GCO      : ARR( 0.200E+15,  3266., 0.0);
+{ 57380} GGH5033 +GHO                =       GGH5053 +      GHO2                                   : ARR( 0.247E-11,     0., 0.0);
+{ 57381} GGH5033 +GHO                =       GGK500c +      GHO                                    : ARR( 0.154E-10,     0., 0.0);
+{ 57382} GGH5033 +GHO                =       G2G501y                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 57383} GGH5033 +GHO                =       G3H504Y                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 57384} GGH5033+HV               =       G3K2001 +      GGD3002 +      GHO                     :  0.100E+01*SUN;
+{ 57385} GGH5033+HV               =       G1G502e +      GHO                                    :  0.100E+01*SUN;
+{ 57386} GGH5033+HV               =       GAH400b +      GCO2                                   :  0.100E+01*SUN;
+{ 57387} G3H504Y +GHO2               =  0.800GGH5033 + 0.200GAH503I + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 57388} G3H504Y +GNO                =       G3H400Q +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 57389} G3H504Y +GNO2               =       GPH503O                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 57390} G3H504Y +GNO3               =       G3H400Q +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 57391} G3H504Y +MEPERO             =  0.685G3H400Q + 0.315GAH503I + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57392} G3H504Y +PERO1              =  0.800G3H400Q + 0.200GAH503I + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57393} G3H504Y +PERO2              =  0.750G3H400Q + 0.250GAH503I + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57394} G3H504Y +PERO3              =  0.800G3H400Q + 0.200GAH503I + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57395} G3H504Y +PERO5              =  0.650G3H400Q + 0.350GAH503I + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57396} G3H504Y +PERO6              =  0.650G3H400Q + 0.350GAH503I + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57397} G3H504Y +PERO9              =       G3H400Q +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 57398} GGH400p +GHO                =       GGD4008 +      GHO                                    : ARR( 0.167E-10,     0., 0.0);
+{ 57399} GGH400p +GHO                =       G3G400I                                               : ARR( 0.717E-10,     0., 0.0);
+{ 57400} GGH400p +GNO3               =       G3G400I +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 57401} GGH400p+HV               =       GAH3007 +      GCO2                                   :  0.100E+01*SUN;
+{ 57402} GGH400p+HV               =       G1G401C +      GHO                                    :  0.100E+01*SUN;
+{ 57403} GGH400p+HV               =       GGD3002 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 57404} G3G400I +GHO2               =  0.800GGG400C + 0.200GAG400M + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 57405} G3G400I +GNO                =       GGD3002 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 57406} G3G400I +GNO2               =       GPG400M                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 57407} G3G400I +GNO3               =       GGD3002 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 57408} G3G400I +MEPERO             =  0.685GGD3002 + 0.315GAG400M + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 57409} G3G400I +PERO1              =  0.800GGD3002 + 0.200GAG400M + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 57410} G3G400I +PERO2              =  0.750GGD3002 + 0.250GAG400M + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 57411} G3G400I +PERO3              =  0.800GGD3002 + 0.200GAG400M + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 57412} G3G400I +PERO5              =  0.650GGD3002 + 0.350GAG400M + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 57413} G3G400I +PERO6              =  0.650GGD3002 + 0.350GAG400M + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 57414} G3G400I +PERO9              =       GGD3002 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 57415} G1G401C                     =       GCO     +      GDD2000 +      GHO2    +      GCO      : ARR( 0.200E+15,  5210., 0.0);
+{ 57416} GGG5007 +GHO                =       GGG500S +      GHO2                                   : ARR( 0.639E-11,     0., 0.0);
+{ 57417} GGG5007 +GHO                =       GGG5004 +      GHO                                    : ARR( 0.419E-10,     0., 0.0);
+{ 57418} GGG5007 +GHO                =       G3G500B                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 57419} GGG5007 +GHO                =       G2G5021                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 57420} GGG5007 +GHO                =       G3G500A                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 57421} GGG5007+HV               =       GGH400Q +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 57422} GGG5007+HV               =       G1G502g +      GHO                                    :  0.100E+01*SUN;
+{ 57423} GGG5007+HV               =       G2G400W +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 57424} GAG500C +GHO                =       GAG5008 +      GHO                                    : ARR( 0.422E-10,     0., 0.0);
+{ 57425} GAG500C +GHO                =       GAG500y +      GHO2                                   : ARR( 0.643E-11,     0., 0.0);
+{ 57426} GAG500C +GHO                =       G2A502g                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 57427} GAG500C +GHO                =       G3A500D                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 57428} GAG500C+HV               =       G1A503B +      GHO                                    :  0.100E+01*SUN;
+{ 57429} GAG500C+HV               =       GAH400T +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 57430} GPG500D                     =       G3G500A +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 57431} GPG500D +GHO                =       GPG5011 +      GHO2                                   : ARR( 0.640E-11,     0., 0.0);
+{ 57432} GPG500D +GHO                =       GPG5008 +      GHO                                    : ARR( 0.420E-10,     0., 0.0);
+{ 57433} GPG500D +GHO                =       G3P500D                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 57434} GPG500D +GHO                =       G2P502j                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 57435} GPG500D+HV               =       GPH400T +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 57436} GPG500D+HV               =       G1P503L +      GHO                                    :  0.100E+01*SUN;
+{ 57437} GPG500D+HV               =       G3G500A +      GNO2                                   :  0.100E+01*SUN;
+{ 57438} GGH400q +GHO                =       GGH400i +      GHO                                    : ARR( 0.188E-10,     0., 0.0);
+{ 57439} GGH400q +GHO                =       GGH400f +      GHO                                    : ARR( 0.483E-10,     0., 0.0);
+{ 57440} GGH400q +GHO                =       GGH400z +      GHO2                                   : ARR( 0.736E-11,     0., 0.0);
+{ 57441} GGH400q+HV               =       G1G400g +      GHO                                    :  0.100E+01*SUN;
+{ 57442} GGH400q+HV               =       G1G401A +      GHO                                    :  0.100E+01*SUN;
+{ 57443} GGH400q+HV               =       GHH3005 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 57444} GAG500D +GHO                =       GAG5007 +      GHO                                    : ARR( 0.429E-10,     0., 0.0);
+{ 57445} GAG500D +GHO                =       G2A5034                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 57446} GAG500D +GHO                =       G3A500B                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 57447} GAG500D+HV               =       G1A503u +      GHO                                    :  0.100E+01*SUN;
+{ 57448} GAG500D+HV               =       G2A400h +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 57449} GAA5008 +GHO                =       GAA5005 +      GHO                                    : ARR( 0.433E-10,     0., 0.0);
+{ 57450} GAA5008 +GHO                =       G2A5037                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 57451} GAA5008+HV               =       G1A503x +      GHO                                    :  0.100E+01*SUN;
+{ 57452} GPA500E                     =       G3A500B +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 57453} GPA500E +GHO                =       GPA5008 +      GHO                                    : ARR( 0.431E-10,     0., 0.0);
+{ 57454} GPA500E +GHO                =       G2P502m                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 57455} GPA500E+HV               =       G1P503O +      GHO                                    :  0.100E+01*SUN;
+{ 57456} GPA500E+HV               =       G3A500B +      GNO2                                   :  0.100E+01*SUN;
+{ 57457} GAH503A +GHO                =       GAN501y +      GHO                                    : ARR( 0.269E-10,     0., 0.0);
+{ 57458} GAH503A +GHO                =       G3A500i                                               : ARR( 0.214E-10,     0., 0.0);
+{ 57459} GAH503A +GHO                =       G2A504f                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 57460} GAH503A +GNO3               =       G3A500i +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 57461} GAH503A+HV               =       G1A506J +      GNO2                                   :  0.100E+01*SUN;
+{ 57462} GAH503A+HV               =       G1A5053 +      GHO                                    :  0.100E+01*SUN;
+{ 57463} GAH503A+HV               =       G2A401A +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 57464} GAH503A+HV               =       GAD3002 +      GD02000 +      GHO     +      GNO2     :  0.100E+01*SUN;
+{ 57465} G3A500i +GHO2               =  0.800GAG500k + 0.200GAA500b + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 57466} G3A500i +GNO                =       G2A401A +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 57467} G3A500i +GNO2               =       GPA500w                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 57468} G3A500i +GNO3               =       G2A401A +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 57469} G3A500i +MEPERO             =  0.685G2A401A + 0.315GAA500b + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57470} G3A500i +PERO1              =  0.800G2A401A + 0.200GAA500b + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57471} G3A500i +PERO2              =  0.750G2A401A + 0.250GAA500b + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57472} G3A500i +PERO3              =  0.800G2A401A + 0.200GAA500b + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57473} G3A500i +PERO5              =  0.650G2A401A + 0.350GAA500b + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57474} G3A500i +PERO6              =  0.650G2A401A + 0.350GAA500b + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57475} G3A500i +PERO9              =       G2A401A +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 57476} G2A504f +GNO                =       G1A5053 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 57477} G2A504f +GNO                =       GAN501i                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 57478} G2A504f +GHO2               =       GAH503A                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 57479} G2A504f +GNO3               =       G1A5053 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 57480} G2A504f +MEPERO             =  0.340G1A5053 + 0.330GAN502K + 0.330GAN501y                 : ARR( 0.565E-13,  -845., 0.0);
+{ 57481} G2A504f +PERO1              =  0.460G1A5053 + 0.270GAN502K + 0.270GAN501y                 : ARR( 0.434E-13,  -900., 0.0);
+{ 57482} G2A504f +PERO2              =  0.400G1A5053 + 0.300GAN502K + 0.300GAN501y                 : ARR( 0.162E-13, -1400., 0.0);
+{ 57483} G2A504f +PERO3              =  0.460G1A5053 + 0.270GAN502K + 0.270GAN501y                 : ARR( 0.488E-13, -1250., 0.0);
+{ 57484} G2A504f +PERO5              =  0.460G1A5053 + 0.270GAN502K + 0.270GAN501y                 : ARR( 0.183E-11,   450., 0.0);
+{ 57485} G2A504f +PERO6              =  0.300G1A5053 + 0.350GAN502K + 0.350GAN501y                 : ARR( 0.168E-13, -1300., 0.0);
+{ 57486} G2A504f +PERO9              =  0.650G1A5053 + 0.350GAN501y                                : ARR( 0.100E-10,     0., 0.0);
+{ 57487} G1A506J                     =       GCO     +      GHD400C +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 57488} G2A401A +GNO                =       G1A400x +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 57489} G2A401A +GNO                =       GAH400N                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 57490} G2A401A +GHO2               =       GAH400y                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 57491} G2A401A +GNO3               =       G1A400x +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 57492} G2A401A +MEPERO             =  0.480G1A400x + 0.260GAH400U + 0.260GAH400r                 : ARR( 0.164E-12,  -795., 0.0);
+{ 57493} G2A401A +PERO1              =  0.600G1A400x + 0.200GAH400U + 0.200GAH400r                 : ARR( 0.126E-12,  -850., 0.0);
+{ 57494} G2A401A +PERO2              =  0.560G1A400x + 0.220GAH400U + 0.220GAH400r                 : ARR( 0.471E-13, -1350., 0.0);
+{ 57495} G2A401A +PERO3              =  0.600G1A400x + 0.200GAH400U + 0.200GAH400r                 : ARR( 0.142E-12, -1200., 0.0);
+{ 57496} G2A401A +PERO5              =  0.600G1A400x + 0.200GAH400U + 0.200GAH400r                 : ARR( 0.533E-11,   500., 0.0);
+{ 57497} G2A401A +PERO6              =  0.460G1A400x + 0.270GAH400U + 0.270GAH400r                 : ARR( 0.488E-13, -1250., 0.0);
+{ 57498} G2A401A +PERO9              =  0.800G1A400x + 0.200GAH400r                                : ARR( 0.100E-10,     0., 0.0);
+{ 57499} GAH503B +GHO                =       GAH5058 +      GHO2                                   : ARR( 0.842E-12,     0., 0.0);
+{ 57500} GAH503B +GHO                =       GAN501z +      GHO                                    : ARR( 0.173E-11,     0., 0.0);
+{ 57501} GAH503B +GHO                =       G2A504g                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 57502} GAH503B +GHO                =       GHN400h +      GNO2    +      GCO2                    : ARR( 0.545E-12,     0., 0.0);
+{ 57503} GAH503B+HV               =       G1A502r +      GNO2                                   :  0.100E+01*SUN;
+{ 57504} GAH503B+HV               =       G1A505B +      GHO                                    :  0.100E+01*SUN;
+{ 57505} GAH503B+HV               =       G1A503Z +      GNO2                                   :  0.100E+01*SUN;
+{ 57506} G2A504g +GNO                =       G1A505B +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 57507} G2A504g +GNO                =       GAN501l                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 57508} G2A504g +GHO2               =       GAH503B                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 57509} G2A504g +GNO3               =       G1A505B +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 57510} G2A504g +MEPERO             =  0.340G1A505B + 0.330GAN502N + 0.330GAN501z                 : ARR( 0.565E-13,  -845., 0.0);
+{ 57511} G2A504g +PERO1              =  0.460G1A505B + 0.270GAN502N + 0.270GAN501z                 : ARR( 0.434E-13,  -900., 0.0);
+{ 57512} G2A504g +PERO2              =  0.400G1A505B + 0.300GAN502N + 0.300GAN501z                 : ARR( 0.162E-13, -1400., 0.0);
+{ 57513} G2A504g +PERO3              =  0.460G1A505B + 0.270GAN502N + 0.270GAN501z                 : ARR( 0.488E-13, -1250., 0.0);
+{ 57514} G2A504g +PERO5              =  0.460G1A505B + 0.270GAN502N + 0.270GAN501z                 : ARR( 0.183E-11,   450., 0.0);
+{ 57515} G2A504g +PERO6              =  0.300G1A505B + 0.350GAN502N + 0.350GAN501z                 : ARR( 0.168E-13, -1300., 0.0);
+{ 57516} G2A504g +PERO9              =  0.650G1A505B + 0.350GAN501z                                : ARR( 0.100E-10,     0., 0.0);
+{ 57517} GAH503C +GHO                =       GAH5059 +      GHO2                                   : ARR( 0.407E-11,     0., 0.0);
+{ 57518} GAH503C +GHO                =       GAH503D +      GHO                                    : ARR( 0.417E-10,     0., 0.0);
+{ 57519} GAH503C +GHO                =       GAH502T +      GHO                                    : ARR( 0.834E-11,     0., 0.0);
+{ 57520} GAH503C +GHO                =       G2A502R                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 57521} GAH503C +GHO                =       G2A504h                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 57522} GAH503C+HV               =       G1A502r +      GHO                                    :  0.100E+01*SUN;
+{ 57523} GAH503C+HV               =       G1A505C +      GHO                                    :  0.100E+01*SUN;
+{ 57524} GAH503C+HV               =       G1A503i +      GNO2                                   :  0.100E+01*SUN;
+{ 57525} G2A504h +GNO                =       G1A505C +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 57526} G2A504h +GNO                =       GAH502G                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 57527} G2A504h +GHO2               =       GAH503C                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 57528} G2A504h +GNO3               =       G1A505C +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 57529} G2A504h +MEPERO             =  0.340G1A505C + 0.330GAH503N + 0.330GAH502T                 : ARR( 0.565E-13,  -845., 0.0);
+{ 57530} G2A504h +PERO1              =  0.460G1A505C + 0.270GAH503N + 0.270GAH502T                 : ARR( 0.434E-13,  -900., 0.0);
+{ 57531} G2A504h +PERO2              =  0.400G1A505C + 0.300GAH503N + 0.300GAH502T                 : ARR( 0.162E-13, -1400., 0.0);
+{ 57532} G2A504h +PERO3              =  0.460G1A505C + 0.270GAH503N + 0.270GAH502T                 : ARR( 0.488E-13, -1250., 0.0);
+{ 57533} G2A504h +PERO5              =  0.460G1A505C + 0.270GAH503N + 0.270GAH502T                 : ARR( 0.183E-11,   450., 0.0);
+{ 57534} G2A504h +PERO6              =  0.300G1A505C + 0.350GAH503N + 0.350GAH502T                 : ARR( 0.168E-13, -1300., 0.0);
+{ 57535} G2A504h +PERO9              =  0.650G1A505C + 0.350GAH502T                                : ARR( 0.100E-10,     0., 0.0);
+{ 57536} GAH503D +GHO                =       GAH505A +      GHO2                                   : ARR( 0.264E-11,     0., 0.0);
+{ 57537} GAH503D +GHO                =       GAN5022 +      GHO                                    : ARR( 0.540E-11,     0., 0.0);
+{ 57538} GAH503D +GHO                =       G2A504i                                               : ARR( 0.204E-11,  -190., 0.0);
+{ 57539} GAH503D+HV               =       G3K2001 +      GAN3006 +      GHO                     :  0.100E+01*SUN;
+{ 57540} GAH503D+HV               =       G1A505D +      GHO                                    :  0.100E+01*SUN;
+{ 57541} GAH503D+HV               =       G1A504m +      GNO2                                   :  0.100E+01*SUN;
+{ 57542} G2A504i +GNO                =       G1A505D +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 57543} G2A504i +GNO                =       GAN501m                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 57544} G2A504i +GHO2               =       GAH503D                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 57545} G2A504i +GNO3               =       G1A505D +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 57546} G2A504i +MEPERO             =  0.340G1A505D + 0.330GAN502O + 0.330GAN5022                 : ARR( 0.565E-13,  -845., 0.0);
+{ 57547} G2A504i +PERO1              =  0.460G1A505D + 0.270GAN502O + 0.270GAN5022                 : ARR( 0.434E-13,  -900., 0.0);
+{ 57548} G2A504i +PERO2              =  0.400G1A505D + 0.300GAN502O + 0.300GAN5022                 : ARR( 0.162E-13, -1400., 0.0);
+{ 57549} G2A504i +PERO3              =  0.460G1A505D + 0.270GAN502O + 0.270GAN5022                 : ARR( 0.488E-13, -1250., 0.0);
+{ 57550} G2A504i +PERO5              =  0.460G1A505D + 0.270GAN502O + 0.270GAN5022                 : ARR( 0.183E-11,   450., 0.0);
+{ 57551} G2A504i +PERO6              =  0.300G1A505D + 0.350GAN502O + 0.350GAN5022                 : ARR( 0.168E-13, -1300., 0.0);
+{ 57552} G2A504i +PERO9              =  0.650G1A505D + 0.350GAN5022                                : ARR( 0.100E-10,     0., 0.0);
+{ 57553} GAH400r +GHO                =       GAN400b +      GHO                                    : ARR( 0.514E-11,     0., 0.0);
+{ 57554} GAH400r +GHO                =       G3A400J                                               : ARR( 0.213E-10,     0., 0.0);
+{ 57555} GAH400r +GHO                =       G2A401B                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 57556} GAH400r +GNO3               =       G3A400J +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 57557} GAH400r+HV               =       G1A401L +      GNO2                                   :  0.100E+01*SUN;
+{ 57558} GAH400r+HV               =       G1A4016 +      GHO                                    :  0.100E+01*SUN;
+{ 57559} GAH400r+HV               =       GAN3006 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 57560} G3A400J +GHO2               =  0.800GAG400N + 0.200GAA4009 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 57561} G3A400J +GNO                =       GAN3006 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 57562} G3A400J +GNO2               =       GPA400H                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 57563} G3A400J +GNO3               =       GAN3006 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 57564} G3A400J +MEPERO             =  0.685GAN3006 + 0.315GAA4009 + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 57565} G3A400J +PERO1              =  0.800GAN3006 + 0.200GAA4009 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 57566} G3A400J +PERO2              =  0.750GAN3006 + 0.250GAA4009 + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 57567} G3A400J +PERO3              =  0.800GAN3006 + 0.200GAA4009 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 57568} G3A400J +PERO5              =  0.650GAN3006 + 0.350GAA4009 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 57569} G3A400J +PERO6              =  0.650GAN3006 + 0.350GAA4009 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 57570} G3A400J +PERO9              =       GAN3006 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 57571} G2A401B +GNO                =       G1A4016 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 57572} G2A401B +GNO                =       GAN400Y                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 57573} G2A401B +GHO2               =       GAH400r                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 57574} G2A401B +GNO3               =       G1A4016 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 57575} G2A401B +MEPERO             =  0.340G1A4016 + 0.330GAN400P + 0.330GAN400b                 : ARR( 0.565E-13,  -845., 0.0);
+{ 57576} G2A401B +PERO1              =  0.460G1A4016 + 0.270GAN400P + 0.270GAN400b                 : ARR( 0.434E-13,  -900., 0.0);
+{ 57577} G2A401B +PERO2              =  0.400G1A4016 + 0.300GAN400P + 0.300GAN400b                 : ARR( 0.162E-13, -1400., 0.0);
+{ 57578} G2A401B +PERO3              =  0.460G1A4016 + 0.270GAN400P + 0.270GAN400b                 : ARR( 0.488E-13, -1250., 0.0);
+{ 57579} G2A401B +PERO5              =  0.460G1A4016 + 0.270GAN400P + 0.270GAN400b                 : ARR( 0.183E-11,   450., 0.0);
+{ 57580} G2A401B +PERO6              =  0.300G1A4016 + 0.350GAN400P + 0.350GAN400b                 : ARR( 0.168E-13, -1300., 0.0);
+{ 57581} G2A401B +PERO9              =  0.650G1A4016 + 0.350GAN400b                                : ARR( 0.100E-10,     0., 0.0);
+{ 57582} G1A401L                     =       GCO     +      GHD3004 +      GHO                     : ARR( 0.200E+15,  4342., 0.0);
+{ 57583} GAH503E +GHO                =       GAH503F +      GHO                                    : ARR( 0.195E-10,     0., 0.0);
+{ 57584} GAH503E +GHO                =       GAH502U +      GHO                                    : ARR( 0.137E-09,     0., 0.0);
+{ 57585} GAH503E +GHO                =       G3A500j                                               : ARR( 0.218E-10,     0., 0.0);
+{ 57586} GAH503E +GNO3               =       G3A500j +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 57587} GAH503E+HV               =       G1A506J +      GHO                                    :  0.100E+01*SUN;
+{ 57588} GAH503E+HV               =       G1A503y +      GHO                                    :  0.100E+01*SUN;
+{ 57589} GAH503E+HV               =       G2A401C +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 57590} GAH503E+HV               =       GAD3002 +      GD02000 + 2.000GHO                     :  0.100E+01*SUN;
+{ 57591} G3A500j +GHO2               =  0.800GAG500z + 0.200GAA500d + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 57592} G3A500j +GNO                =       G2A401C +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 57593} G3A500j +GNO2               =       GPA5016                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 57594} G3A500j +GNO3               =       G2A401C +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 57595} G3A500j +MEPERO             =  0.685G2A401C + 0.315GAA500d + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57596} G3A500j +PERO1              =  0.800G2A401C + 0.200GAA500d + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57597} G3A500j +PERO2              =  0.750G2A401C + 0.250GAA500d + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57598} G3A500j +PERO3              =  0.800G2A401C + 0.200GAA500d + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57599} G3A500j +PERO5              =  0.650G2A401C + 0.350GAA500d + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57600} G3A500j +PERO6              =  0.650G2A401C + 0.350GAA500d + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57601} G3A500j +PERO9              =       G2A401C +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 57602} G2A401C +GNO                =       G1A401M +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 57603} G2A401C +GNO                =       GAH400v                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 57604} G2A401C +GHO2               =       GAH400x                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 57605} G2A401C +GNO3               =       G1A401M +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 57606} G2A401C +MEPERO             =  0.480G1A401M + 0.260GAH400a + 0.260GAH400w                 : ARR( 0.164E-12,  -795., 0.0);
+{ 57607} G2A401C +PERO1              =  0.600G1A401M + 0.200GAH400a + 0.200GAH400w                 : ARR( 0.126E-12,  -850., 0.0);
+{ 57608} G2A401C +PERO2              =  0.560G1A401M + 0.220GAH400a + 0.220GAH400w                 : ARR( 0.471E-13, -1350., 0.0);
+{ 57609} G2A401C +PERO3              =  0.600G1A401M + 0.200GAH400a + 0.200GAH400w                 : ARR( 0.142E-12, -1200., 0.0);
+{ 57610} G2A401C +PERO5              =  0.600G1A401M + 0.200GAH400a + 0.200GAH400w                 : ARR( 0.533E-11,   500., 0.0);
+{ 57611} G2A401C +PERO6              =  0.460G1A401M + 0.270GAH400a + 0.270GAH400w                 : ARR( 0.488E-13, -1250., 0.0);
+{ 57612} G2A401C +PERO9              =  0.800G1A401M + 0.200GAH400w                                : ARR( 0.100E-10,     0., 0.0);
+{ 57613} G1A401M +OXYGEN             =       GAH400w +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 57614} G1A401M                     =       GAH3007 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5636., 0.0);
+{ 57615} GAH503F +GHO                =       GAD500H +      GHO                                    : ARR( 0.851E-10,     0., 0.0);
+{ 57616} GAH503F +GHO                =       G3A500k                                               : ARR( 0.222E-10,     0., 0.0);
+{ 57617} GAH503F +GNO3               =       G3A500k +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 57618} GAH503F+HV               =       GHD400C +      GCO2                                   :  0.100E+01*SUN;
+{ 57619} GAH503F+HV               =       G1A503P +      GHO                                    :  0.100E+01*SUN;
+{ 57620} GAH503F+HV               =       G2A401D +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 57621} G3A500k +GHO2               =  0.800GAG5011 + 0.200GAA500e + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 57622} G3A500k +GNO                =       G2A401D +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 57623} G3A500k +GNO2               =       GPA5017                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 57624} G3A500k +GNO3               =       G2A401D +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 57625} G3A500k +MEPERO             =  0.685G2A401D + 0.315GAA500e + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57626} G3A500k +PERO1              =  0.800G2A401D + 0.200GAA500e + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57627} G3A500k +PERO2              =  0.750G2A401D + 0.250GAA500e + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57628} G3A500k +PERO3              =  0.800G2A401D + 0.200GAA500e + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57629} G3A500k +PERO5              =  0.650G2A401D + 0.350GAA500e + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57630} G3A500k +PERO6              =  0.650G2A401D + 0.350GAA500e + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57631} G3A500k +PERO9              =       G2A401D +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 57632} G2A401D +GNO                =       G1A4012 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 57633} G2A401D +GNO                =       GAH400S                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 57634} G2A401D +GHO2               =       GAH400z                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 57635} G2A401D +GNO3               =       G1A4012 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 57636} G2A401D +MEPERO             =  0.480G1A4012 + 0.260GAH400c + 0.260GAH400s                 : ARR( 0.164E-12,  -795., 0.0);
+{ 57637} G2A401D +PERO1              =  0.600G1A4012 + 0.200GAH400c + 0.200GAH400s                 : ARR( 0.126E-12,  -850., 0.0);
+{ 57638} G2A401D +PERO2              =  0.560G1A4012 + 0.220GAH400c + 0.220GAH400s                 : ARR( 0.471E-13, -1350., 0.0);
+{ 57639} G2A401D +PERO3              =  0.600G1A4012 + 0.200GAH400c + 0.200GAH400s                 : ARR( 0.142E-12, -1200., 0.0);
+{ 57640} G2A401D +PERO5              =  0.600G1A4012 + 0.200GAH400c + 0.200GAH400s                 : ARR( 0.533E-11,   500., 0.0);
+{ 57641} G2A401D +PERO6              =  0.460G1A4012 + 0.270GAH400c + 0.270GAH400s                 : ARR( 0.488E-13, -1250., 0.0);
+{ 57642} G2A401D +PERO9              =  0.800G1A4012 + 0.200GAH400s                                : ARR( 0.100E-10,     0., 0.0);
+{ 57643} GAH503G +GHO                =       GAH505B +      GHO2                                   : ARR( 0.892E-12,     0., 0.0);
+{ 57644} GAH503G +GHO                =       GAN5023 +      GHO                                    : ARR( 0.558E-11,     0., 0.0);
+{ 57645} GAH503G +GHO                =       G2A502s                                               : ARR( 0.211E-11,  -190., 0.0);
+{ 57646} GAH503G+HV               =       G1A502s +      GNO2                                   :  0.100E+01*SUN;
+{ 57647} GAH503G+HV               =       G1A503f +      GHO                                    :  0.100E+01*SUN;
+{ 57648} GAH503G+HV               =       GHN400h +      GCO2                                   :  0.100E+01*SUN;
+{ 57649} GAH503H +GHO                =       GAH503I +      GHO                                    : ARR( 0.141E-09,     0., 0.0);
+{ 57650} GAH503H +GHO                =       GAH502W +      GHO                                    : ARR( 0.270E-10,     0., 0.0);
+{ 57651} GAH503H+HV               =       G1A502s +      GHO                                    :  0.100E+01*SUN;
+{ 57652} GAH503H+HV               =       G1A505F +      GHO                                    :  0.100E+01*SUN;
+{ 57653} GAH503H+HV               =       GHH4009 +      GCO2                                   :  0.100E+01*SUN;
+{ 57654} GAH503I +GHO                =       GAH505C +      GHO2                                   : ARR( 0.253E-11,     0., 0.0);
+{ 57655} GAH503I +GHO                =       GAK500X +      GHO                                    : ARR( 0.158E-10,     0., 0.0);
+{ 57656} GAH503I +GHO                =       G2A503A                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 57657} GAH503I+HV               =       G3K2001 +      GAD3002 +      GHO                     :  0.100E+01*SUN;
+{ 57658} GAH503I+HV               =       G1A503z +      GHO                                    :  0.100E+01*SUN;
+{ 57659} GAH503I+HV               =       GHD400G +      GCO2                                   :  0.100E+01*SUN;
+{ 57660} GAH400s +GHO                =       GAD4008 +      GHO                                    : ARR( 0.161E-10,     0., 0.0);
+{ 57661} GAH400s +GHO                =       G3A400K                                               : ARR( 0.692E-10,     0., 0.0);
+{ 57662} GAH400s +GNO3               =       G3A400K +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 57663} GAH400s+HV               =       GHD3004 +      GCO2                                   :  0.100E+01*SUN;
+{ 57664} GAH400s+HV               =       G1A4017 +      GHO                                    :  0.100E+01*SUN;
+{ 57665} GAH400s+HV               =       GAD3002 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 57666} G3A400K +GHO2               =  0.800GAG400G + 0.200GAA400A + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 57667} G3A400K +GNO                =       GAD3002 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 57668} G3A400K +GNO2               =       GPA400J                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 57669} G3A400K +GNO3               =       GAD3002 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 57670} G3A400K +MEPERO             =  0.685GAD3002 + 0.315GAA400A + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 57671} G3A400K +PERO1              =  0.800GAD3002 + 0.200GAA400A + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 57672} G3A400K +PERO2              =  0.750GAD3002 + 0.250GAA400A + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 57673} G3A400K +PERO3              =  0.800GAD3002 + 0.200GAA400A + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 57674} G3A400K +PERO5              =  0.650GAD3002 + 0.350GAA400A + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 57675} G3A400K +PERO6              =  0.650GAD3002 + 0.350GAA400A + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 57676} G3A400K +PERO9              =       GAD3002 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 57677} GAG500E +GHO                =       GAG5011 +      GHO2                                   : ARR( 0.478E-11,     0., 0.0);
+{ 57678} GAG500E +GHO                =       GAG5009 +      GHO                                    : ARR( 0.424E-10,     0., 0.0);
+{ 57679} GAG500E +GHO                =       G2A503B                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 57680} GAG500E +GHO                =       G3A500C                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 57681} GAG500E+HV               =       G1A5041 +      GHO                                    :  0.100E+01*SUN;
+{ 57682} GAG500E+HV               =       G2A400i +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 57683} GAA5009 +GHO                =       GAA500e +      GHO2                                   : ARR( 0.482E-11,     0., 0.0);
+{ 57684} GAA5009 +GHO                =       GAA5006 +      GHO                                    : ARR( 0.427E-10,     0., 0.0);
+{ 57685} GAA5009 +GHO                =       G2A503E                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 57686} GAA5009+HV               =       G1A5044 +      GHO                                    :  0.100E+01*SUN;
+{ 57687} GPA500F                     =       G3A500C +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 57688} GPA500F +GHO                =       GPA5017 +      GHO2                                   : ARR( 0.479E-11,     0., 0.0);
+{ 57689} GPA500F +GHO                =       GPA5009 +      GHO                                    : ARR( 0.425E-10,     0., 0.0);
+{ 57690} GPA500F +GHO                =       G2P502o                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 57691} GPA500F+HV               =       G1P503Q +      GHO                                    :  0.100E+01*SUN;
+{ 57692} GPA500F+HV               =       G3A500C +      GNO2                                   :  0.100E+01*SUN;
+{ 57693} GAH400t +GHO                =       GAH400z +      GHO2                                   : ARR( 0.469E-11,     0., 0.0);
+{ 57694} GAH400t +GHO                =       GAH400h +      GHO                                    : ARR( 0.416E-10,     0., 0.0);
+{ 57695} GAH400t +GHO                =       GAH400o +      GHO                                    : ARR( 0.162E-10,     0., 0.0);
+{ 57696} GAH400t +GHO                =       G2A400o                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 57697} GAH400t +GHO                =       G2A400i                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 57698} GAH400t+HV               =       G1A400v +      GHO                                    :  0.100E+01*SUN;
+{ 57699} GAH400t+HV               =       G1A400r +      GHO                                    :  0.100E+01*SUN;
+{ 57700} GPH503G                     =       G3H502M +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 57701} GPH503G +GHO                =       GPN5029 +      GHO                                    : ARR( 0.266E-10,     0., 0.0);
+{ 57702} GPH503G +GHO                =       G3P500k                                               : ARR( 0.212E-10,     0., 0.0);
+{ 57703} GPH503G +GHO                =       G2P504z                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 57704} GPH503G +GNO3               =       G3P500k +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 57705} GPH503G+HV               =       G3H502M +      GNO2                                   :  0.100E+01*SUN;
+{ 57706} GPH503G+HV               =       G1P506w +      GNO2                                   :  0.100E+01*SUN;
+{ 57707} GPH503G+HV               =       G1P505R +      GHO                                    :  0.100E+01*SUN;
+{ 57708} GPH503G+HV               =       G2P401J +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 57709} GPH503G+HV               =       GPD3002 +      GD02000 +      GHO     +      GNO2     :  0.100E+01*SUN;
+{ 57710} G3P500k +GHO2               =  0.800GPG500r + 0.200GPA5014 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 57711} G3P500k +GNO                =       G2P401J +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 57712} G3P500k +GNO2               =       GPP500Z                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 57713} G3P500k +GNO3               =       G2P401J +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 57714} G3P500k +MEPERO             =  0.685G2P401J + 0.315GPA5014 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57715} G3P500k +PERO1              =  0.800G2P401J + 0.200GPA5014 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57716} G3P500k +PERO2              =  0.750G2P401J + 0.250GPA5014 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57717} G3P500k +PERO3              =  0.800G2P401J + 0.200GPA5014 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57718} G3P500k +PERO5              =  0.650G2P401J + 0.350GPA5014 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57719} G3P500k +PERO6              =  0.650G2P401J + 0.350GPA5014 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57720} G3P500k +PERO9              =       G2P401J +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 57721} G2P504z +GNO                =       G1P505R +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 57722} G2P504z +GNO                =       GPN501p                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 57723} G2P504z +GHO2               =       GPH503G                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 57724} G2P504z +GNO3               =       G1P505R +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 57725} G2P504z +MEPERO             =  0.340G1P505R + 0.330GPN502S + 0.330GPN5029                 : ARR( 0.565E-13,  -845., 0.0);
+{ 57726} G2P504z +PERO1              =  0.460G1P505R + 0.270GPN502S + 0.270GPN5029                 : ARR( 0.434E-13,  -900., 0.0);
+{ 57727} G2P504z +PERO2              =  0.400G1P505R + 0.300GPN502S + 0.300GPN5029                 : ARR( 0.162E-13, -1400., 0.0);
+{ 57728} G2P504z +PERO3              =  0.460G1P505R + 0.270GPN502S + 0.270GPN5029                 : ARR( 0.488E-13, -1250., 0.0);
+{ 57729} G2P504z +PERO5              =  0.460G1P505R + 0.270GPN502S + 0.270GPN5029                 : ARR( 0.183E-11,   450., 0.0);
+{ 57730} G2P504z +PERO6              =  0.300G1P505R + 0.350GPN502S + 0.350GPN5029                 : ARR( 0.168E-13, -1300., 0.0);
+{ 57731} G2P504z +PERO9              =  0.650G1P505R + 0.350GPN5029                                : ARR( 0.100E-10,     0., 0.0);
+{ 57732} G1P506w                     =       GCO     +      GHD400C +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 57733} G2P401J +GNO                =       G1P400z +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 57734} G2P401J +GNO                =       GPH400N                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 57735} G2P401J +GHO2               =       GPH400y                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 57736} G2P401J +GNO3               =       G1P400z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 57737} G2P401J +MEPERO             =  0.480G1P400z + 0.260GPH400W + 0.260GPH400s                 : ARR( 0.164E-12,  -795., 0.0);
+{ 57738} G2P401J +PERO1              =  0.600G1P400z + 0.200GPH400W + 0.200GPH400s                 : ARR( 0.126E-12,  -850., 0.0);
+{ 57739} G2P401J +PERO2              =  0.560G1P400z + 0.220GPH400W + 0.220GPH400s                 : ARR( 0.471E-13, -1350., 0.0);
+{ 57740} G2P401J +PERO3              =  0.600G1P400z + 0.200GPH400W + 0.200GPH400s                 : ARR( 0.142E-12, -1200., 0.0);
+{ 57741} G2P401J +PERO5              =  0.600G1P400z + 0.200GPH400W + 0.200GPH400s                 : ARR( 0.533E-11,   500., 0.0);
+{ 57742} G2P401J +PERO6              =  0.460G1P400z + 0.270GPH400W + 0.270GPH400s                 : ARR( 0.488E-13, -1250., 0.0);
+{ 57743} G2P401J +PERO9              =  0.800G1P400z + 0.200GPH400s                                : ARR( 0.100E-10,     0., 0.0);
+{ 57744} GPH503H                     =       G3H502O +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 57745} GPH503H +GHO                =       GPH505F +      GHO2                                   : ARR( 0.848E-12,     0., 0.0);
+{ 57746} GPH503H +GHO                =       GPN5025 +      GHO                                    : ARR( 0.174E-11,     0., 0.0);
+{ 57747} GPH503H +GHO                =       G2P5051                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 57748} GPH503H+HV               =       G1P5036 +      GNO2                                   :  0.100E+01*SUN;
+{ 57749} GPH503H+HV               =       G1P505B +      GHO                                    :  0.100E+01*SUN;
+{ 57750} GPH503H+HV               =       G1P503W +      GNO2                                   :  0.100E+01*SUN;
+{ 57751} GPH503H+HV               =       G3H502O +      GNO2                                   :  0.100E+01*SUN;
+{ 57752} G2P5051 +GNO                =       G1P505B +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 57753} G2P5051 +GNO                =       GPN501h                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 57754} G2P5051 +GHO2               =       GPH503H                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 57755} G2P5051 +GNO3               =       G1P505B +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 57756} G2P5051 +MEPERO             =  0.340G1P505B + 0.330GPN502W + 0.330GPN5025                 : ARR( 0.565E-13,  -845., 0.0);
+{ 57757} G2P5051 +PERO1              =  0.460G1P505B + 0.270GPN502W + 0.270GPN5025                 : ARR( 0.434E-13,  -900., 0.0);
+{ 57758} G2P5051 +PERO2              =  0.400G1P505B + 0.300GPN502W + 0.300GPN5025                 : ARR( 0.162E-13, -1400., 0.0);
+{ 57759} G2P5051 +PERO3              =  0.460G1P505B + 0.270GPN502W + 0.270GPN5025                 : ARR( 0.488E-13, -1250., 0.0);
+{ 57760} G2P5051 +PERO5              =  0.460G1P505B + 0.270GPN502W + 0.270GPN5025                 : ARR( 0.183E-11,   450., 0.0);
+{ 57761} G2P5051 +PERO6              =  0.300G1P505B + 0.350GPN502W + 0.350GPN5025                 : ARR( 0.168E-13, -1300., 0.0);
+{ 57762} G2P5051 +PERO9              =  0.650G1P505B + 0.350GPN5025                                : ARR( 0.100E-10,     0., 0.0);
+{ 57763} GPH503I                     =       G3H502P +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 57764} GPH503I +GHO                =       GPH505G +      GHO2                                   : ARR( 0.404E-11,     0., 0.0);
+{ 57765} GPH503I +GHO                =       GPH503J +      GHO                                    : ARR( 0.414E-10,     0., 0.0);
+{ 57766} GPH503I +GHO                =       GPH502b +      GHO                                    : ARR( 0.827E-11,     0., 0.0);
+{ 57767} GPH503I +GHO                =       G2P502Y                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 57768} GPH503I +GHO                =       G2P5052                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 57769} GPH503I+HV               =       G1P5036 +      GHO                                    :  0.100E+01*SUN;
+{ 57770} GPH503I+HV               =       G1P505Z +      GHO                                    :  0.100E+01*SUN;
+{ 57771} GPH503I+HV               =       G1P503l +      GNO2                                   :  0.100E+01*SUN;
+{ 57772} GPH503I+HV               =       G3H502P +      GNO2                                   :  0.100E+01*SUN;
+{ 57773} G2P5052 +GNO                =       G1P505Z +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 57774} G2P5052 +GNO                =       GPH502F                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 57775} G2P5052 +GHO2               =       GPH503I                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 57776} G2P5052 +GNO3               =       G1P505Z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 57777} G2P5052 +MEPERO             =  0.340G1P505Z + 0.330GPH503T + 0.330GPH502b                 : ARR( 0.565E-13,  -845., 0.0);
+{ 57778} G2P5052 +PERO1              =  0.460G1P505Z + 0.270GPH503T + 0.270GPH502b                 : ARR( 0.434E-13,  -900., 0.0);
+{ 57779} G2P5052 +PERO2              =  0.400G1P505Z + 0.300GPH503T + 0.300GPH502b                 : ARR( 0.162E-13, -1400., 0.0);
+{ 57780} G2P5052 +PERO3              =  0.460G1P505Z + 0.270GPH503T + 0.270GPH502b                 : ARR( 0.488E-13, -1250., 0.0);
+{ 57781} G2P5052 +PERO5              =  0.460G1P505Z + 0.270GPH503T + 0.270GPH502b                 : ARR( 0.183E-11,   450., 0.0);
+{ 57782} G2P5052 +PERO6              =  0.300G1P505Z + 0.350GPH503T + 0.350GPH502b                 : ARR( 0.168E-13, -1300., 0.0);
+{ 57783} G2P5052 +PERO9              =  0.650G1P505Z + 0.350GPH502b                                : ARR( 0.100E-10,     0., 0.0);
+{ 57784} GPH503J                     =       G3H502Q +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 57785} GPH503J +GHO                =       GPH505H +      GHO2                                   : ARR( 0.253E-11,     0., 0.0);
+{ 57786} GPH503J +GHO                =       GPN502B +      GHO                                    : ARR( 0.519E-11,     0., 0.0);
+{ 57787} GPH503J +GHO                =       G2P503D                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 57788} GPH503J+HV               =       G3K2001 +      GPN3006 +      GHO                     :  0.100E+01*SUN;
+{ 57789} GPH503J+HV               =       G1P5048 +      GHO                                    :  0.100E+01*SUN;
+{ 57790} GPH503J+HV               =       G1P504t +      GNO2                                   :  0.100E+01*SUN;
+{ 57791} GPH503J+HV               =       G3H502Q +      GNO2                                   :  0.100E+01*SUN;
+{ 57792} GPH400s                     =       G3H400g +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 57793} GPH400s +GHO                =       GPN400b +      GHO                                    : ARR( 0.506E-11,     0., 0.0);
+{ 57794} GPH400s +GHO                =       G3P400J                                               : ARR( 0.209E-10,     0., 0.0);
+{ 57795} GPH400s +GHO                =       G2P401K                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 57796} GPH400s +GNO3               =       G3P400J +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 57797} GPH400s+HV               =       G3H400g +      GNO2                                   :  0.100E+01*SUN;
+{ 57798} GPH400s+HV               =       G1P4017 +      GNO2                                   :  0.100E+01*SUN;
+{ 57799} GPH400s+HV               =       G1P401D +      GHO                                    :  0.100E+01*SUN;
+{ 57800} GPH400s+HV               =       GPN3006 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 57801} G3P400J +GHO2               =  0.800GPG400N + 0.200GPA400F + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 57802} G3P400J +GNO                =       GPN3006 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 57803} G3P400J +GNO2               =       GPP4009                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 57804} G3P400J +GNO3               =       GPN3006 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 57805} G3P400J +MEPERO             =  0.685GPN3006 + 0.315GPA400F + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 57806} G3P400J +PERO1              =  0.800GPN3006 + 0.200GPA400F + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 57807} G3P400J +PERO2              =  0.750GPN3006 + 0.250GPA400F + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 57808} G3P400J +PERO3              =  0.800GPN3006 + 0.200GPA400F + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 57809} G3P400J +PERO5              =  0.650GPN3006 + 0.350GPA400F + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 57810} G3P400J +PERO6              =  0.650GPN3006 + 0.350GPA400F + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 57811} G3P400J +PERO9              =       GPN3006 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 57812} G2P401K +GNO                =       G1P401D +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 57813} G2P401K +GNO                =       GPN400Z                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 57814} G2P401K +GHO2               =       GPH400s                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 57815} G2P401K +GNO3               =       G1P401D +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 57816} G2P401K +MEPERO             =  0.340G1P401D + 0.330GPN400P + 0.330GPN400b                 : ARR( 0.565E-13,  -845., 0.0);
+{ 57817} G2P401K +PERO1              =  0.460G1P401D + 0.270GPN400P + 0.270GPN400b                 : ARR( 0.434E-13,  -900., 0.0);
+{ 57818} G2P401K +PERO2              =  0.400G1P401D + 0.300GPN400P + 0.300GPN400b                 : ARR( 0.162E-13, -1400., 0.0);
+{ 57819} G2P401K +PERO3              =  0.460G1P401D + 0.270GPN400P + 0.270GPN400b                 : ARR( 0.488E-13, -1250., 0.0);
+{ 57820} G2P401K +PERO5              =  0.460G1P401D + 0.270GPN400P + 0.270GPN400b                 : ARR( 0.183E-11,   450., 0.0);
+{ 57821} G2P401K +PERO6              =  0.300G1P401D + 0.350GPN400P + 0.350GPN400b                 : ARR( 0.168E-13, -1300., 0.0);
+{ 57822} G2P401K +PERO9              =  0.650G1P401D + 0.350GPN400b                                : ARR( 0.100E-10,     0., 0.0);
+{ 57823} GPH503K                     =       G3H502c +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 57824} GPH503K +GHO                =       GPH503L +      GHO                                    : ARR( 0.263E-10,     0., 0.0);
+{ 57825} GPH503K +GHO                =       GPH502c +      GHO                                    : ARR( 0.137E-09,     0., 0.0);
+{ 57826} GPH503K +GHO                =       G3P500l                                               : ARR( 0.217E-10,     0., 0.0);
+{ 57827} GPH503K +GNO3               =       G3P500l +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 57828} GPH503K+HV               =       G3H502c +      GNO2                                   :  0.100E+01*SUN;
+{ 57829} GPH503K+HV               =       G1P506w +      GHO                                    :  0.100E+01*SUN;
+{ 57830} GPH503K+HV               =       G1P5049 +      GHO                                    :  0.100E+01*SUN;
+{ 57831} GPH503K+HV               =       G2P401L +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 57832} GPH503K+HV               =       GPD3002 +      GD02000 + 2.000GHO                     :  0.100E+01*SUN;
+{ 57833} G3P500l +GHO2               =  0.800GPG5012 + 0.200GPA5018 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 57834} G3P500l +GNO                =       G2P401L +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 57835} G3P500l +GNO2               =       GPP500b                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 57836} G3P500l +GNO3               =       G2P401L +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 57837} G3P500l +MEPERO             =  0.685G2P401L + 0.315GPA5018 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57838} G3P500l +PERO1              =  0.800G2P401L + 0.200GPA5018 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57839} G3P500l +PERO2              =  0.750G2P401L + 0.250GPA5018 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57840} G3P500l +PERO3              =  0.800G2P401L + 0.200GPA5018 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57841} G3P500l +PERO5              =  0.650G2P401L + 0.350GPA5018 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57842} G3P500l +PERO6              =  0.650G2P401L + 0.350GPA5018 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57843} G3P500l +PERO9              =       G2P401L +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 57844} G2P401L +GNO                =       G1P4015 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 57845} G2P401L +GNO                =       GPH400Q                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 57846} G2P401L +GHO2               =       GPH400x                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 57847} G2P401L +GNO3               =       G1P4015 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 57848} G2P401L +MEPERO             =  0.480G1P4015 + 0.260GPH400b + 0.260GPH400w                 : ARR( 0.164E-12,  -795., 0.0);
+{ 57849} G2P401L +PERO1              =  0.600G1P4015 + 0.200GPH400b + 0.200GPH400w                 : ARR( 0.126E-12,  -850., 0.0);
+{ 57850} G2P401L +PERO2              =  0.560G1P4015 + 0.220GPH400b + 0.220GPH400w                 : ARR( 0.471E-13, -1350., 0.0);
+{ 57851} G2P401L +PERO3              =  0.600G1P4015 + 0.200GPH400b + 0.200GPH400w                 : ARR( 0.142E-12, -1200., 0.0);
+{ 57852} G2P401L +PERO5              =  0.600G1P4015 + 0.200GPH400b + 0.200GPH400w                 : ARR( 0.533E-11,   500., 0.0);
+{ 57853} G2P401L +PERO6              =  0.460G1P4015 + 0.270GPH400b + 0.270GPH400w                 : ARR( 0.488E-13, -1250., 0.0);
+{ 57854} G2P401L +PERO9              =  0.800G1P4015 + 0.200GPH400w                                : ARR( 0.100E-10,     0., 0.0);
+{ 57855} GPH503L                     =       G3H504Z +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 57856} GPH503L +GHO                =       GPD500G +      GHO                                    : ARR( 0.847E-10,     0., 0.0);
+{ 57857} GPH503L +GHO                =       G3P500m                                               : ARR( 0.221E-10,     0., 0.0);
+{ 57858} GPH503L +GNO3               =       G3P500m +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 57859} GPH503L+HV               =       G3H400P +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 57860} GPH503L+HV               =       G1P5046 +      GHO                                    :  0.100E+01*SUN;
+{ 57861} GPH503L+HV               =       G2P401M +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 57862} G3H504Z +GHO2               =  0.800GGH502z + 0.200GAH503F + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 57863} G3H504Z +GNO                =       G3H400P +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 57864} G3H504Z +GNO2               =       GPH503L                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 57865} G3H504Z +GNO3               =       G3H400P +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 57866} G3H504Z +MEPERO             =  0.685G3H400P + 0.315GAH503F + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57867} G3H504Z +PERO1              =  0.800G3H400P + 0.200GAH503F + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57868} G3H504Z +PERO2              =  0.750G3H400P + 0.250GAH503F + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57869} G3H504Z +PERO3              =  0.800G3H400P + 0.200GAH503F + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57870} G3H504Z +PERO5              =  0.650G3H400P + 0.350GAH503F + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57871} G3H504Z +PERO6              =  0.650G3H400P + 0.350GAH503F + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57872} G3H504Z +PERO9              =       G3H400P +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 57873} G3P500m +GHO2               =  0.800GPG5013 + 0.200GPA5019 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 57874} G3P500m +GNO                =       G2P401M +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 57875} G3P500m +GNO2               =       GPP500c                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 57876} G3P500m +GNO3               =       G2P401M +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 57877} G3P500m +MEPERO             =  0.685G2P401M + 0.315GPA5019 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57878} G3P500m +PERO1              =  0.800G2P401M + 0.200GPA5019 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57879} G3P500m +PERO2              =  0.750G2P401M + 0.250GPA5019 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57880} G3P500m +PERO3              =  0.800G2P401M + 0.200GPA5019 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57881} G3P500m +PERO5              =  0.650G2P401M + 0.350GPA5019 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57882} G3P500m +PERO6              =  0.650G2P401M + 0.350GPA5019 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57883} G3P500m +PERO9              =       G2P401M +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 57884} G2P401M +GNO                =       G1P4016 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 57885} G2P401M +GNO                =       GPH400S                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 57886} G2P401M +GHO2               =       GPH400z                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 57887} G2P401M +GNO3               =       G1P4016 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 57888} G2P401M +MEPERO             =  0.480G1P4016 + 0.260GPH400d + 0.260GPH400t                 : ARR( 0.164E-12,  -795., 0.0);
+{ 57889} G2P401M +PERO1              =  0.600G1P4016 + 0.200GPH400d + 0.200GPH400t                 : ARR( 0.126E-12,  -850., 0.0);
+{ 57890} G2P401M +PERO2              =  0.560G1P4016 + 0.220GPH400d + 0.220GPH400t                 : ARR( 0.471E-13, -1350., 0.0);
+{ 57891} G2P401M +PERO3              =  0.600G1P4016 + 0.200GPH400d + 0.200GPH400t                 : ARR( 0.142E-12, -1200., 0.0);
+{ 57892} G2P401M +PERO5              =  0.600G1P4016 + 0.200GPH400d + 0.200GPH400t                 : ARR( 0.533E-11,   500., 0.0);
+{ 57893} G2P401M +PERO6              =  0.460G1P4016 + 0.270GPH400d + 0.270GPH400t                 : ARR( 0.488E-13, -1250., 0.0);
+{ 57894} G2P401M +PERO9              =  0.800G1P4016 + 0.200GPH400t                                : ARR( 0.100E-10,     0., 0.0);
+{ 57895} GPH503M                     =       G3H504X +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 57896} GPH503M +GHO                =       GPH505I +      GHO2                                   : ARR( 0.848E-12,     0., 0.0);
+{ 57897} GPH503M +GHO                =       GPN5027 +      GHO                                    : ARR( 0.530E-11,     0., 0.0);
+{ 57898} GPH503M +GHO                =       G2P502w                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 57899} GPH503M+HV               =       G1P5037 +      GNO2                                   :  0.100E+01*SUN;
+{ 57900} GPH503M+HV               =       G1P503i +      GHO                                    :  0.100E+01*SUN;
+{ 57901} GPH503M+HV               =       G3H400G +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 57902} GPH503N                     =       G3H504a +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 57903} GPH503N +GHO                =       GPH503O +      GHO                                    : ARR( 0.140E-09,     0., 0.0);
+{ 57904} GPH503N +GHO                =       GPH502d +      GHO                                    : ARR( 0.270E-10,     0., 0.0);
+{ 57905} GPH503N+HV               =       G1P5037 +      GHO                                    :  0.100E+01*SUN;
+{ 57906} GPH503N+HV               =       G1P505a +      GHO                                    :  0.100E+01*SUN;
+{ 57907} GPH503N+HV               =       G3H400N +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 57908} G3H504a +GHO2               =  0.800GGH5032 + 0.200GAH503H + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 57909} G3H504a +GNO                =       G3H400N +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 57910} G3H504a +GNO2               =       GPH503N                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 57911} G3H504a +GNO3               =       G3H400N +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 57912} G3H504a +MEPERO             =  0.685G3H400N + 0.315GAH503H + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57913} G3H504a +PERO1              =  0.800G3H400N + 0.200GAH503H + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57914} G3H504a +PERO2              =  0.750G3H400N + 0.250GAH503H + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57915} G3H504a +PERO3              =  0.800G3H400N + 0.200GAH503H + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57916} G3H504a +PERO5              =  0.650G3H400N + 0.350GAH503H + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57917} G3H504a +PERO6              =  0.650G3H400N + 0.350GAH503H + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57918} G3H504a +PERO9              =       G3H400N +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 57919} GPH503O                     =       G3H504Y +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 57920} GPH503O +GHO                =       GPH505J +      GHO2                                   : ARR( 0.247E-11,     0., 0.0);
+{ 57921} GPH503O +GHO                =       GPK500b +      GHO                                    : ARR( 0.154E-10,     0., 0.0);
+{ 57922} GPH503O +GHO                =       G2P503G                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 57923} GPH503O+HV               =       G3K2001 +      GPD3002 +      GHO                     :  0.100E+01*SUN;
+{ 57924} GPH503O+HV               =       G1P504A +      GHO                                    :  0.100E+01*SUN;
+{ 57925} GPH503O+HV               =       G3H400Q +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 57926} GPH400t                     =       G3H400y +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 57927} GPH400t +GHO                =       GPD4008 +      GHO                                    : ARR( 0.160E-10,     0., 0.0);
+{ 57928} GPH400t +GHO                =       G3P400K                                               : ARR( 0.688E-10,     0., 0.0);
+{ 57929} GPH400t +GNO3               =       G3P400K +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 57930} GPH400t+HV               =       G3H3006 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 57931} GPH400t+HV               =       G1P401E +      GHO                                    :  0.100E+01*SUN;
+{ 57932} GPH400t+HV               =       GPD3002 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 57933} G3H400y +GHO2               =  0.800GGH400p + 0.200GAH400s + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 57934} G3H400y +GNO                =       G3H3006 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 57935} G3H400y +GNO2               =       GPH400t                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 57936} G3H400y +GNO3               =       G3H3006 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 57937} G3H400y +MEPERO             =  0.685G3H3006 + 0.315GAH400s + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57938} G3H400y +PERO1              =  0.800G3H3006 + 0.200GAH400s + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57939} G3H400y +PERO2              =  0.750G3H3006 + 0.250GAH400s + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57940} G3H400y +PERO3              =  0.800G3H3006 + 0.200GAH400s + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57941} G3H400y +PERO5              =  0.650G3H3006 + 0.350GAH400s + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57942} G3H400y +PERO6              =  0.650G3H3006 + 0.350GAH400s + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 57943} G3H400y +PERO9              =       G3H3006 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 57944} G3P400K +GHO2               =  0.800GPG400G + 0.200GPA400L + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 57945} G3P400K +GNO                =       GPD3002 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 57946} G3P400K +GNO2               =       GPP400B                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 57947} G3P400K +GNO3               =       GPD3002 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 57948} G3P400K +MEPERO             =  0.685GPD3002 + 0.315GPA400L + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 57949} G3P400K +PERO1              =  0.800GPD3002 + 0.200GPA400L + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 57950} G3P400K +PERO2              =  0.750GPD3002 + 0.250GPA400L + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 57951} G3P400K +PERO3              =  0.800GPD3002 + 0.200GPA400L + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 57952} G3P400K +PERO5              =  0.650GPD3002 + 0.350GPA400L + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 57953} G3P400K +PERO6              =  0.650GPD3002 + 0.350GPA400L + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 57954} G3P400K +PERO9              =       GPD3002 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 57955} GPG500E                     =       G3G500B +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 57956} GPG500E +GHO                =       GPG5009 +      GHO                                    : ARR( 0.420E-10,     0., 0.0);
+{ 57957} GPG500E +GHO                =       GPG5013 +      GHO2                                   : ARR( 0.640E-11,     0., 0.0);
+{ 57958} GPG500E +GHO                =       G3P500C                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 57959} GPG500E +GHO                =       G2P503I                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 57960} GPG500E+HV               =       G2P400i +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 57961} GPG500E+HV               =       G1P504C +      GHO                                    :  0.100E+01*SUN;
+{ 57962} GPG500E+HV               =       G3G500B +      GNO2                                   :  0.100E+01*SUN;
+{ 57963} GPA500G                     =       G3A500D +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 57964} GPA500G +GHO                =       GPA500A +      GHO                                    : ARR( 0.423E-10,     0., 0.0);
+{ 57965} GPA500G +GHO                =       GPA5019 +      GHO2                                   : ARR( 0.644E-11,     0., 0.0);
+{ 57966} GPA500G +GHO                =       G2P503K                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 57967} GPA500G+HV               =       G1P504E +      GHO                                    :  0.100E+01*SUN;
+{ 57968} GPA500G+HV               =       G3A500D +      GNO2                                   :  0.100E+01*SUN;
+{ 57969} GPP5009                     =       G3P500D +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 57970} GPP5009                     =       G3P500C +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 57971} GPP5009 +GHO                =       GPP500c +      GHO2                                   : ARR( 0.641E-11,     0., 0.0);
+{ 57972} GPP5009 +GHO                =       GPP5006 +      GHO                                    : ARR( 0.420E-10,     0., 0.0);
+{ 57973} GPP5009 +GHO                =       G2P503M                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 57974} GPP5009+HV               =       G3P500D +      GNO2                                   :  0.100E+01*SUN;
+{ 57975} GPP5009+HV               =       G1P504G +      GHO                                    :  0.100E+01*SUN;
+{ 57976} GPP5009+HV               =       G3P500C +      GNO2                                   :  0.100E+01*SUN;
+{ 57977} GPH400u                     =       G3H400j +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 57978} GPH400u +GHO                =       GPH400p +      GHO                                    : ARR( 0.161E-10,     0., 0.0);
+{ 57979} GPH400u +GHO                =       GPH400i +      GHO                                    : ARR( 0.413E-10,     0., 0.0);
+{ 57980} GPH400u +GHO                =       GPH400z +      GHO2                                   : ARR( 0.629E-11,     0., 0.0);
+{ 57981} GPH400u +GHO                =       G2P400i                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 57982} GPH400u +GHO                =       G2P400p                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 57983} GPH400u+HV               =       G1P400s +      GHO                                    :  0.100E+01*SUN;
+{ 57984} GPH400u+HV               =       G1P400y +      GHO                                    :  0.100E+01*SUN;
+{ 57985} GPH400u+HV               =       G3H400j +      GNO2                                   :  0.100E+01*SUN;
+{ 57986} GGH5034 +GHO                =       GGN502C +      GHO                                    : ARR( 0.864E-11,     0., 0.0);
+{ 57987} GGH5034 +GHO                =       G3G500f                                               : ARR( 0.435E-11,     0., 0.0);
+{ 57988} GGH5034 +GHO                =       G3H502N                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 57989} GGH5034 +GHO                =       G2G503n                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 57990} GGH5034 +GNO3               =       G3G500f +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 57991} GGH5034+HV               =       G2H401F +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 57992} GGH5034+HV               =       G1G5057 +      GHO                                    :  0.100E+01*SUN;
+{ 57993} GGH5034+HV               =       G1G505G +      GNO2                                   :  0.100E+01*SUN;
+{ 57994} GGH5034+HV               =       GGH400Q +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 57995} GGH5034+HV               =       G2G3009 +      GND2000 +      GHO                     :  0.100E+01*SUN;
+{ 57996} G3G500f +GHO2               =  0.800GGG500R + 0.200GAG500k + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 57997} G3G500f +GNO                =       GGH400Q + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 57998} G3G500f +GNO2               =       GPG500r                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 57999} G3G500f +GNO3               =       GGH400Q + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 58000} G3G500f +MEPERO             =  0.685GGH400Q + 0.315GAG500k + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58001} G3G500f +PERO1              =  0.800GGH400Q + 0.200GAG500k + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58002} G3G500f +PERO2              =  0.750GGH400Q + 0.250GAG500k + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58003} G3G500f +PERO3              =  0.800GGH400Q + 0.200GAG500k + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58004} G3G500f +PERO5              =  0.650GGH400Q + 0.350GAG500k + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58005} G3G500f +PERO6              =  0.650GGH400Q + 0.350GAG500k + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58006} G3G500f +PERO9              =       GGH400Q +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 58007} G2G503n +GNO                =       G1G5057 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 58008} G2G503n +GNO                =       GGN5024                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 58009} G2G503n +GHO2               =       GGH5034                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 58010} G2G503n +GNO3               =       G1G5057 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 58011} G2G503n +MEPERO             =  0.340G1G5057 + 0.330GGN502B + 0.330GGN502C                 : ARR( 0.565E-13,  -845., 0.0);
+{ 58012} G2G503n +PERO1              =  0.460G1G5057 + 0.270GGN502B + 0.270GGN502C                 : ARR( 0.434E-13,  -900., 0.0);
+{ 58013} G2G503n +PERO2              =  0.400G1G5057 + 0.300GGN502B + 0.300GGN502C                 : ARR( 0.162E-13, -1400., 0.0);
+{ 58014} G2G503n +PERO3              =  0.460G1G5057 + 0.270GGN502B + 0.270GGN502C                 : ARR( 0.488E-13, -1250., 0.0);
+{ 58015} G2G503n +PERO5              =  0.460G1G5057 + 0.270GGN502B + 0.270GGN502C                 : ARR( 0.183E-11,   450., 0.0);
+{ 58016} G2G503n +PERO6              =  0.300G1G5057 + 0.350GGN502B + 0.350GGN502C                 : ARR( 0.168E-13, -1300., 0.0);
+{ 58017} G2G503n +PERO9              =  0.650G1G5057 + 0.350GGN502C                                : ARR( 0.100E-10,     0., 0.0);
+{ 58018} G1G505G                     =       GGD3000 +      GDD2000 +      GHO                     : ARR( 0.200E+15,  6241., 0.0);
+{ 58019} G1G505G                     =       GGH400Q +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 58020} GAH503J +GHO                =       GAN502Y +      GHO                                    : ARR( 0.888E-11,     0., 0.0);
+{ 58021} GAH503J +GHO                =       G3A500l                                               : ARR( 0.447E-11,     0., 0.0);
+{ 58022} GAH503J +GHO                =       G2A504j                                               : ARR( 0.205E-11,  -190., 0.0);
+{ 58023} GAH503J +GNO3               =       G3A500l +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 58024} GAH503J+HV               =       G1A5069 +      GHO                                    :  0.100E+01*SUN;
+{ 58025} GAH503J+HV               =       G1A506K +      GNO2                                   :  0.100E+01*SUN;
+{ 58026} GAH503J+HV               =       GAH400T +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 58027} GAH503J+HV               =       G2A3007 +      GND2000 +      GHO                     :  0.100E+01*SUN;
+{ 58028} G3A500l +GHO2               =  0.800GAG500x + 0.200GAA500b + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 58029} G3A500l +GNO                =       GAH400T + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 58030} G3A500l +GNO2               =       GPA5014                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 58031} G3A500l +GNO3               =       GAH400T + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 58032} G3A500l +MEPERO             =  0.685GAH400T + 0.315GAA500b + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58033} G3A500l +PERO1              =  0.800GAH400T + 0.200GAA500b + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58034} G3A500l +PERO2              =  0.750GAH400T + 0.250GAA500b + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58035} G3A500l +PERO3              =  0.800GAH400T + 0.200GAA500b + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58036} G3A500l +PERO5              =  0.650GAH400T + 0.350GAA500b + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58037} G3A500l +PERO6              =  0.650GAH400T + 0.350GAA500b + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58038} G3A500l +PERO9              =       GAH400T +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 58039} G2A504j +GNO                =       G1A5069 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 58040} G2A504j +GNO                =       GAN502F                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 58041} G2A504j +GHO2               =       GAH503J                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 58042} G2A504j +GNO3               =       G1A5069 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 58043} G2A504j +MEPERO             =  0.340G1A5069 + 0.330GAN502R + 0.330GAN502Y                 : ARR( 0.565E-13,  -845., 0.0);
+{ 58044} G2A504j +PERO1              =  0.460G1A5069 + 0.270GAN502R + 0.270GAN502Y                 : ARR( 0.434E-13,  -900., 0.0);
+{ 58045} G2A504j +PERO2              =  0.400G1A5069 + 0.300GAN502R + 0.300GAN502Y                 : ARR( 0.162E-13, -1400., 0.0);
+{ 58046} G2A504j +PERO3              =  0.460G1A5069 + 0.270GAN502R + 0.270GAN502Y                 : ARR( 0.488E-13, -1250., 0.0);
+{ 58047} G2A504j +PERO5              =  0.460G1A5069 + 0.270GAN502R + 0.270GAN502Y                 : ARR( 0.183E-11,   450., 0.0);
+{ 58048} G2A504j +PERO6              =  0.300G1A5069 + 0.350GAN502R + 0.350GAN502Y                 : ARR( 0.168E-13, -1300., 0.0);
+{ 58049} G2A504j +PERO9              =  0.650G1A5069 + 0.350GAN502Y                                : ARR( 0.100E-10,     0., 0.0);
+{ 58050} G1A506K                     =       GAD3000 +      GDD2000 +      GHO                     : ARR( 0.200E+15,  6241., 0.0);
+{ 58051} G1A506K                     =       GAH400T +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 58052} GPH503P                     =       G3H502N +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 58053} GPH503P +GHO                =       G2P5053                                               : ARR( 0.865E-12,     0., 0.0);
+{ 58054} GPH503P +GHO                =       GPN5021 +      GHO                                    : ARR( 0.828E-11,     0., 0.0);
+{ 58055} GPH503P +GHO                =       G3P500n                                               : ARR( 0.417E-11,     0., 0.0);
+{ 58056} GPH503P +GHO                =       G2P503O                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 58057} GPH503P +GNO3               =       G3P500n +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 58058} GPH503P+HV               =       G3H502N +      GNO2                                   :  0.100E+01*SUN;
+{ 58059} GPH503P+HV               =       G1P504J +      GHO                                    :  0.100E+01*SUN;
+{ 58060} GPH503P+HV               =       G1P506x +      GNO2                                   :  0.100E+01*SUN;
+{ 58061} GPH503P+HV               =       GPH400T +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 58062} GPH503P+HV               =       G2P3007 +      GND2000 +      GHO                     :  0.100E+01*SUN;
+{ 58063} G2P5053 +GNO                =       G1P506y +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 58064} G2P5053 +GNO                =       GPH505F                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 58065} G2P5053 +GHO2               =       GPH505K                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 58066} G2P5053 +GNO3               =       G1P506y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 58067} G2P5053 +MEPERO             =  0.340G1P506y + 0.330GPH503j + 0.330GPH505I                 : ARR( 0.565E-13,  -845., 0.0);
+{ 58068} G2P5053 +PERO1              =  0.460G1P506y + 0.270GPH503j + 0.270GPH505I                 : ARR( 0.434E-13,  -900., 0.0);
+{ 58069} G2P5053 +PERO2              =  0.400G1P506y + 0.300GPH503j + 0.300GPH505I                 : ARR( 0.162E-13, -1400., 0.0);
+{ 58070} G2P5053 +PERO3              =  0.460G1P506y + 0.270GPH503j + 0.270GPH505I                 : ARR( 0.488E-13, -1250., 0.0);
+{ 58071} G2P5053 +PERO5              =  0.460G1P506y + 0.270GPH503j + 0.270GPH505I                 : ARR( 0.183E-11,   450., 0.0);
+{ 58072} G2P5053 +PERO6              =  0.300G1P506y + 0.350GPH503j + 0.350GPH505I                 : ARR( 0.168E-13, -1300., 0.0);
+{ 58073} G2P5053 +PERO9              =  0.650G1P506y + 0.350GPH505I                                : ARR( 0.100E-10,     0., 0.0);
+{ 58074} G3P500n +GHO2               =  0.800GPG500z + 0.200GPA500w + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 58075} G3P500n +GNO                =       GPH400T + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 58076} G3P500n +GNO2               =       GPP500Z                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 58077} G3P500n +GNO3               =       GPH400T + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 58078} G3P500n +MEPERO             =  0.685GPH400T + 0.315GPA500w + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58079} G3P500n +PERO1              =  0.800GPH400T + 0.200GPA500w + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58080} G3P500n +PERO2              =  0.750GPH400T + 0.250GPA500w + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58081} G3P500n +PERO3              =  0.800GPH400T + 0.200GPA500w + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58082} G3P500n +PERO5              =  0.650GPH400T + 0.350GPA500w + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58083} G3P500n +PERO6              =  0.650GPH400T + 0.350GPA500w + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58084} G3P500n +PERO9              =       GPH400T +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 58085} G1P506x                     =       GPD3000 +      GDD2000 +      GHO                     : ARR( 0.200E+15,  6241., 0.0);
+{ 58086} G1P506x                     =       GPH400T +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 58087} G1P506y                     =       GCO     +      GHN400y +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 58088} GHN506g +GHO                =       G3H504b                                               : ARR( 0.840E-11,     0., 0.0);
+{ 58089} GHN506g +GHO                =       GNN503L +      GHO                                    : ARR( 0.167E-11,     0., 0.0);
+{ 58090} GHN506g +GHO                =       G2N506X                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 58091} GHN506g +GNO3               =       G3H504b +      GHNO3                                  : ARR( 0.240E-13,     0., 0.0);
+{ 58092} GHN506g+HV               =       GCO     +      GHN400y +      GHO2    +      GNO2     :  0.200E+01*SUN;
+{ 58093} GHN506g+HV               =       GND2000 +      GDD3002 +      GHO     +      GNO2     :  0.200E+01*SUN;
+{ 58094} GHN506g+HV               =       G1H50Bh +      GNO2                                   :  0.200E+01*SUN;
+{ 58095} GHN506g+HV               =       G1N507H +      GHO                                    :  0.100E+01*SUN;
+{ 58096} G3H504b +GHO2               =  0.800GGH504y + 0.200GAH5058 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 58097} G3H504b +GNO                =       GHN400y + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 58098} G3H504b +GNO2               =       GPH505F                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 58099} G3H504b +GNO3               =       GHN400y + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 58100} G3H504b +MEPERO             =  0.685GHN400y + 0.315GAH5058 + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58101} G3H504b +PERO1              =  0.800GHN400y + 0.200GAH5058 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58102} G3H504b +PERO2              =  0.750GHN400y + 0.250GAH5058 + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58103} G3H504b +PERO3              =  0.800GHN400y + 0.200GAH5058 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58104} G3H504b +PERO5              =  0.650GHN400y + 0.350GAH5058 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58105} G3H504b +PERO6              =  0.650GHN400y + 0.350GAH5058 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58106} G3H504b +PERO9              =       GHN400y +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 58107} G2N506X +GNO                =       G1N507H +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 58108} G2N506X +GNO                =       GNN503K                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 58109} G2N506X +GHO2               =       GHN506g                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 58110} G2N506X +GNO3               =       G1N507H +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 58111} G2N506X +MEPERO             =  0.340G1N507H + 0.330GNN503J + 0.330GNN503L                 : ARR( 0.565E-13,  -845., 0.0);
+{ 58112} G2N506X +PERO1              =  0.460G1N507H + 0.270GNN503J + 0.270GNN503L                 : ARR( 0.434E-13,  -900., 0.0);
+{ 58113} G2N506X +PERO2              =  0.400G1N507H + 0.300GNN503J + 0.300GNN503L                 : ARR( 0.162E-13, -1400., 0.0);
+{ 58114} G2N506X +PERO3              =  0.460G1N507H + 0.270GNN503J + 0.270GNN503L                 : ARR( 0.488E-13, -1250., 0.0);
+{ 58115} G2N506X +PERO5              =  0.460G1N507H + 0.270GNN503J + 0.270GNN503L                 : ARR( 0.183E-11,   450., 0.0);
+{ 58116} G2N506X +PERO6              =  0.300G1N507H + 0.350GNN503J + 0.350GNN503L                 : ARR( 0.168E-13, -1300., 0.0);
+{ 58117} G2N506X +PERO9              =  0.650G1N507H + 0.350GNN503L                                : ARR( 0.100E-10,     0., 0.0);
+{ 58118} G1H50Bh                     =       GND3005 +      GDD2000 +      GHO                     : ARR( 0.200E+15,  6241., 0.0);
+{ 58119} G1H50Bh                     =       GHN400y +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 58120} G1N507H                     =       GDD2000 +      GND3005 +      GNO2                    : ARR( 0.400E+15,  5625., 0.0);
+{ 58121} GHH502w +GHO                =       GHN506v +      GHO                                    : ARR( 0.303E-10,     0., 0.0);
+{ 58122} GHH502w +GHO                =       GHN506i +      GHO                                    : ARR( 0.291E-10,     0., 0.0);
+{ 58123} GHH502w +GHO                =       G3H504c                                               : ARR( 0.241E-10,     0., 0.0);
+{ 58124} GHH502w +GNO3               =       G3H504d +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 58125} GHH502w +GNO3               =       G3H504c +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 58126} GHH502w+HV               =       GCO     +      GHH400r +      GHO2    +      GNO2     :  0.100E+01*SUN;
+{ 58127} GHH502w+HV               =       GND2000 +      GDD3002 + 2.000GHO                     :  0.100E+01*SUN;
+{ 58128} GHH502w+HV               =       G1H50Bi +      GNO2                                   :  0.100E+01*SUN;
+{ 58129} GHH502w+HV               =       G1H50Bj +      GHO                                    :  0.100E+01*SUN;
+{ 58130} GHH502w+HV               =       G1H50Bh +      GHO                                    :  0.100E+01*SUN;
+{ 58131} GHH502w+HV               =       GHN400y +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 58132} G3H504c +GHO2               =  0.800GGH5054 + 0.200GAH505D + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 58133} G3H504c +GNO                =       GHN400y +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 58134} G3H504c +GNO2               =       GPH505K                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 58135} G3H504c +GNO3               =       GHN400y +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 58136} G3H504c +MEPERO             =  0.685GHN400y + 0.315GAH505D + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58137} G3H504c +PERO1              =  0.800GHN400y + 0.200GAH505D + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58138} G3H504c +PERO2              =  0.750GHN400y + 0.250GAH505D + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58139} G3H504c +PERO3              =  0.800GHN400y + 0.200GAH505D + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58140} G3H504c +PERO5              =  0.650GHN400y + 0.350GAH505D + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58141} G3H504c +PERO6              =  0.650GHN400y + 0.350GAH505D + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58142} G3H504c +PERO9              =       GHN400y +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 58143} G3H504d +GHO2               =  0.800GGH504z + 0.200GAH5059 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 58144} G3H504d +GNO                =       GHH400r + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 58145} G3H504d +GNO2               =       GPH505G                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 58146} G3H504d +GNO3               =       GHH400r + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 58147} G3H504d +MEPERO             =  0.685GHH400r + 0.315GAH5059 + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58148} G3H504d +PERO1              =  0.800GHH400r + 0.200GAH5059 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58149} G3H504d +PERO2              =  0.750GHH400r + 0.250GAH5059 + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58150} G3H504d +PERO3              =  0.800GHH400r + 0.200GAH5059 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58151} G3H504d +PERO5              =  0.650GHH400r + 0.350GAH5059 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58152} G3H504d +PERO6              =  0.650GHH400r + 0.350GAH5059 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58153} G3H504d +PERO9              =       GHH400r +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 58154} G1H50Bi                     =       GHD3004 +      GDD2000 +      GHO                     : ARR( 0.200E+15,  6241., 0.0);
+{ 58155} G1H50Bi                     =       GHH400r +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 58156} G1H50Bj                     =       GND3005 +      GDD2000 +      GHO                     : ARR( 0.200E+15,  4086., 0.0);
+{ 58157} GHN506h +GHO                =       GHN506v +      GHO2                                   : ARR( 0.128E-10,     0., 0.0);
+{ 58158} GHN506h +GHO                =       GND501O +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 58159} GHN506h +GHO                =       G3H5044                                               : ARR( 0.417E-11,     0., 0.0);
+{ 58160} GHN506h +GHO                =       G2N506Y                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 58161} GHN506h +GNO3               =       G3H5044 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 58162} GHN506h+HV               =       G1N5079 +      GHO                                    :  0.100E+01*SUN;
+{ 58163} GHN506h+HV               =       G3H3004 +      GDD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 58164} GHN506h+HV               =       G1H50Bk +      GNO2                                   :  0.100E+01*SUN;
+{ 58165} GHN506h+HV               =       GHD400M +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 58166} G2N506Y +GNO                =       G1N5079 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 58167} G2N506Y +GNO                =       GNN503F                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 58168} G2N506Y +GHO2               =       GHN506h                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 58169} G2N506Y +GNO3               =       G1N5079 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 58170} G2N506Y +MEPERO             =  0.340G1N5079 + 0.330GND501S + 0.330GND501O                 : ARR( 0.565E-13,  -845., 0.0);
+{ 58171} G2N506Y +PERO1              =  0.460G1N5079 + 0.270GND501S + 0.270GND501O                 : ARR( 0.434E-13,  -900., 0.0);
+{ 58172} G2N506Y +PERO2              =  0.400G1N5079 + 0.300GND501S + 0.300GND501O                 : ARR( 0.162E-13, -1400., 0.0);
+{ 58173} G2N506Y +PERO3              =  0.460G1N5079 + 0.270GND501S + 0.270GND501O                 : ARR( 0.488E-13, -1250., 0.0);
+{ 58174} G2N506Y +PERO5              =  0.460G1N5079 + 0.270GND501S + 0.270GND501O                 : ARR( 0.183E-11,   450., 0.0);
+{ 58175} G2N506Y +PERO6              =  0.300G1N5079 + 0.350GND501S + 0.350GND501O                 : ARR( 0.168E-13, -1300., 0.0);
+{ 58176} G2N506Y +PERO9              =  0.650G1N5079 + 0.350GND501O                                : ARR( 0.100E-10,     0., 0.0);
+{ 58177} G1H50Bk                     =       G3H3004 +      GDD2000                                : ARR( 0.200E+15,  4916., 0.0);
+{ 58178} GHN506i +GHO                =       G3H504e                                               : ARR( 0.419E-11,     0., 0.0);
+{ 58179} GHN506i +GHO                =       GND501X +      GHO                                    : ARR( 0.507E-11,     0., 0.0);
+{ 58180} GHN506i +GHO                =       G3H400h +      GCO                                    : ARR( 0.128E-10,     0., 0.0);
+{ 58181} GHN506i +GHO                =       G2N506Z                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 58182} GHN506i +GNO3               =       G3H504e +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 58183} GHN506i +GNO3               =       G3H400h +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 58184} GHN506i+HV               =       GCO     +      GHD400K +      GHO2    +      GNO2     :  0.100E+01*SUN;
+{ 58185} GHN506i+HV               =       G1H50Bl +      GNO2                                   :  0.100E+01*SUN;
+{ 58186} GHN506i+HV               =       G1N507D +      GHO                                    :  0.100E+01*SUN;
+{ 58187} GHN506i+HV               =       G3H400h +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 58188} GHN506i+HV               =       GHN400y +      GCO                                    :  0.100E+01*SUN;
+{ 58189} GHN506i+HV               =       GHN300A +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 58190} G3H504e +GHO2               =  0.800GGH5051 + 0.200GAH505A + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 58191} G3H504e +GNO                =       GHD400K + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 58192} G3H504e +GNO2               =       GPH505H                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 58193} G3H504e +GNO3               =       GHD400K + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 58194} G3H504e +MEPERO             =  0.685GHD400K + 0.315GAH505A + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58195} G3H504e +PERO1              =  0.800GHD400K + 0.200GAH505A + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58196} G3H504e +PERO2              =  0.750GHD400K + 0.250GAH505A + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58197} G3H504e +PERO3              =  0.800GHD400K + 0.200GAH505A + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58198} G3H504e +PERO5              =  0.650GHD400K + 0.350GAH505A + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58199} G3H504e +PERO6              =  0.650GHD400K + 0.350GAH505A + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58200} G3H504e +PERO9              =       GHD400K +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 58201} G2N506Z +GNO                =       G1N507D +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 58202} G2N506Z +GNO                =       GNN503G                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 58203} G2N506Z +GHO2               =       GHN506i                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 58204} G2N506Z +GNO3               =       G1N507D +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 58205} G2N506Z +MEPERO             =  0.340G1N507D + 0.330GND501Y + 0.330GND501X                 : ARR( 0.565E-13,  -845., 0.0);
+{ 58206} G2N506Z +PERO1              =  0.460G1N507D + 0.270GND501Y + 0.270GND501X                 : ARR( 0.434E-13,  -900., 0.0);
+{ 58207} G2N506Z +PERO2              =  0.400G1N507D + 0.300GND501Y + 0.300GND501X                 : ARR( 0.162E-13, -1400., 0.0);
+{ 58208} G2N506Z +PERO3              =  0.460G1N507D + 0.270GND501Y + 0.270GND501X                 : ARR( 0.488E-13, -1250., 0.0);
+{ 58209} G2N506Z +PERO5              =  0.460G1N507D + 0.270GND501Y + 0.270GND501X                 : ARR( 0.183E-11,   450., 0.0);
+{ 58210} G2N506Z +PERO6              =  0.300G1N507D + 0.350GND501Y + 0.350GND501X                 : ARR( 0.168E-13, -1300., 0.0);
+{ 58211} G2N506Z +PERO9              =  0.650G1N507D + 0.350GND501X                                : ARR( 0.100E-10,     0., 0.0);
+{ 58212} G1H50Bl                     =       GDD3002 +      GDD2000 +      GHO                     : ARR( 0.200E+15,  5968., 0.0);
+{ 58213} G1H50Bl                     =       GHD400K +      GCO     +      GHO2                    : ARR( 0.200E+15,  4861., 0.0);
+{ 58214} GGH400r +GHO                =       GGN400b +      GHO                                    : ARR( 0.505E-11,     0., 0.0);
+{ 58215} GGH400r +GHO                =       G3G400J                                               : ARR( 0.417E-11,     0., 0.0);
+{ 58216} GGH400r +GHO                =       G3H400h                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 58217} GGH400r +GHO                =       G2G4013                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 58218} GGH400r +GNO3               =       G3G400J +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 58219} GGH400r+HV               =       GND3005 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 58220} GGH400r+HV               =       G1G400z +      GHO                                    :  0.100E+01*SUN;
+{ 58221} GGH400r+HV               =       G1G401D +      GNO2                                   :  0.100E+01*SUN;
+{ 58222} GGH400r+HV               =       GGH3007 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 58223} G3G400J +GHO2               =  0.800GGG400B + 0.200GAG400N + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 58224} G3G400J +GNO                =       GGH3007 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 58225} G3G400J +GNO2               =       GPG400N                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 58226} G3G400J +GNO3               =       GGH3007 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 58227} G3G400J +MEPERO             =  0.685GGH3007 + 0.315GAG400N + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58228} G3G400J +PERO1              =  0.800GGH3007 + 0.200GAG400N + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58229} G3G400J +PERO2              =  0.750GGH3007 + 0.250GAG400N + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58230} G3G400J +PERO3              =  0.800GGH3007 + 0.200GAG400N + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58231} G3G400J +PERO5              =  0.650GGH3007 + 0.350GAG400N + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58232} G3G400J +PERO6              =  0.650GGH3007 + 0.350GAG400N + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58233} G3G400J +PERO9              =       GGH3007 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 58234} G2G4013 +GNO                =       G1G400z +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 58235} G2G4013 +GNO                =       GGN400X                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 58236} G2G4013 +GHO2               =       GGH400r                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 58237} G2G4013 +GNO3               =       G1G400z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 58238} G2G4013 +MEPERO             =  0.340G1G400z + 0.330GGN400U + 0.330GGN400b                 : ARR( 0.565E-13,  -845., 0.0);
+{ 58239} G2G4013 +PERO1              =  0.460G1G400z + 0.270GGN400U + 0.270GGN400b                 : ARR( 0.434E-13,  -900., 0.0);
+{ 58240} G2G4013 +PERO2              =  0.400G1G400z + 0.300GGN400U + 0.300GGN400b                 : ARR( 0.162E-13, -1400., 0.0);
+{ 58241} G2G4013 +PERO3              =  0.460G1G400z + 0.270GGN400U + 0.270GGN400b                 : ARR( 0.488E-13, -1250., 0.0);
+{ 58242} G2G4013 +PERO5              =  0.460G1G400z + 0.270GGN400U + 0.270GGN400b                 : ARR( 0.183E-11,   450., 0.0);
+{ 58243} G2G4013 +PERO6              =  0.300G1G400z + 0.350GGN400U + 0.350GGN400b                 : ARR( 0.168E-13, -1300., 0.0);
+{ 58244} G2G4013 +PERO9              =  0.650G1G400z + 0.350GGN400b                                : ARR( 0.100E-10,     0., 0.0);
+{ 58245} G1G401D                     =       GGH3007 +      GCO     +      GHO2                    : ARR( 0.200E+15,  4861., 0.0);
+{ 58246} GGH5035 +GHO                =       G2G503o                                               : ARR( 0.273E-11,     0., 0.0);
+{ 58247} GGH5035 +GHO                =       GGD500G +      GHO                                    : ARR( 0.251E-10,     0., 0.0);
+{ 58248} GGH5035 +GHO                =       G3G4007 +      GCO                                    : ARR( 0.127E-10,     0., 0.0);
+{ 58249} GGH5035 +GHO                =       G3H502R                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 58250} GGH5035 +GHO                =       G2G503p                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 58251} GGH5035 +GNO3               =       G3G4007 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 58252} GGH5035+HV               =       G2H401G +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 58253} GGH5035+HV               =       G1G5059 +      GHO                                    :  0.100E+01*SUN;
+{ 58254} GGH5035+HV               =       G3G4007 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 58255} GGH5035+HV               =       GGH400Q +      GCO                                    :  0.100E+01*SUN;
+{ 58256} GGH5035+HV               =       GGH3000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 58257} G2G503o +GNO                =       G1G505H +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 58258} G2G503o +GNO                =       GGH5051                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 58259} G2G503o +GHO2               =       GGH5055                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 58260} G2G503o +GNO3               =       G1G505H +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 58261} G2G503o +MEPERO             =  0.340G1G505H + 0.330GGH504O + 0.330GGH5053                 : ARR( 0.565E-13,  -845., 0.0);
+{ 58262} G2G503o +PERO1              =  0.460G1G505H + 0.270GGH504O + 0.270GGH5053                 : ARR( 0.434E-13,  -900., 0.0);
+{ 58263} G2G503o +PERO2              =  0.400G1G505H + 0.300GGH504O + 0.300GGH5053                 : ARR( 0.162E-13, -1400., 0.0);
+{ 58264} G2G503o +PERO3              =  0.460G1G505H + 0.270GGH504O + 0.270GGH5053                 : ARR( 0.488E-13, -1250., 0.0);
+{ 58265} G2G503o +PERO5              =  0.460G1G505H + 0.270GGH504O + 0.270GGH5053                 : ARR( 0.183E-11,   450., 0.0);
+{ 58266} G2G503o +PERO6              =  0.300G1G505H + 0.350GGH504O + 0.350GGH5053                 : ARR( 0.168E-13, -1300., 0.0);
+{ 58267} G2G503o +PERO9              =  0.650G1G505H + 0.350GGH5053                                : ARR( 0.100E-10,     0., 0.0);
+{ 58268} G2G503p +GNO                =       G1G5059 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 58269} G2G503p +GNO                =       GGN5025                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 58270} G2G503p +GHO2               =       GGH5035                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 58271} G2G503p +GNO3               =       G1G5059 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 58272} G2G503p +MEPERO             =  0.340G1G5059 + 0.330GGD500I + 0.330GGD500G                 : ARR( 0.565E-13,  -845., 0.0);
+{ 58273} G2G503p +PERO1              =  0.460G1G5059 + 0.270GGD500I + 0.270GGD500G                 : ARR( 0.434E-13,  -900., 0.0);
+{ 58274} G2G503p +PERO2              =  0.400G1G5059 + 0.300GGD500I + 0.300GGD500G                 : ARR( 0.162E-13, -1400., 0.0);
+{ 58275} G2G503p +PERO3              =  0.460G1G5059 + 0.270GGD500I + 0.270GGD500G                 : ARR( 0.488E-13, -1250., 0.0);
+{ 58276} G2G503p +PERO5              =  0.460G1G5059 + 0.270GGD500I + 0.270GGD500G                 : ARR( 0.183E-11,   450., 0.0);
+{ 58277} G2G503p +PERO6              =  0.300G1G5059 + 0.350GGD500I + 0.350GGD500G                 : ARR( 0.168E-13, -1300., 0.0);
+{ 58278} G2G503p +PERO9              =  0.650G1G5059 + 0.350GGD500G                                : ARR( 0.100E-10,     0., 0.0);
+{ 58279} G1G505H                     =       GCO     +      GHD400K +      GHO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 58280} GAH503K +GHO                =       GAD500G +      GHO                                    : ARR( 0.267E-10,     0., 0.0);
+{ 58281} GAH503K +GHO                =       G3A4009 +      GCO                                    : ARR( 0.134E-10,     0., 0.0);
+{ 58282} GAH503K +GHO                =       G2A503J                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 58283} GAH503K +GNO3               =       G3A4009 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 58284} GAH503K+HV               =       G1A5049 +      GHO                                    :  0.100E+01*SUN;
+{ 58285} GAH503K+HV               =       G3A4009 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 58286} GAH503K+HV               =       GAH400T +      GCO                                    :  0.100E+01*SUN;
+{ 58287} GAH503K+HV               =       GAH3000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 58288} GPH503Q                     =       G3H502R +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 58289} GPH503Q +GHO                =       G2P5054                                               : ARR( 0.273E-11,     0., 0.0);
+{ 58290} GPH503Q +GHO                =       GPD500F +      GHO                                    : ARR( 0.251E-10,     0., 0.0);
+{ 58291} GPH503Q +GHO                =       G3P4009 +      GCO                                    : ARR( 0.127E-10,     0., 0.0);
+{ 58292} GPH503Q +GHO                =       G2P503S                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 58293} GPH503Q +GNO3               =       G3P4009 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 58294} GPH503Q+HV               =       G3H502R +      GNO2                                   :  0.100E+01*SUN;
+{ 58295} GPH503Q+HV               =       G1P504M +      GHO                                    :  0.100E+01*SUN;
+{ 58296} GPH503Q+HV               =       G3P4009 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 58297} GPH503Q+HV               =       GPH400T +      GCO                                    :  0.100E+01*SUN;
+{ 58298} GPH503Q+HV               =       GPH3000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 58299} G2P5054 +GNO                =       G1P506z +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 58300} G2P5054 +GNO                =       GPH505H                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 58301} G2P5054 +GHO2               =       GPH505L                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 58302} G2P5054 +GNO3               =       G1P506z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 58303} G2P5054 +MEPERO             =  0.340G1P506z + 0.330GPH504Y + 0.330GPH505J                 : ARR( 0.565E-13,  -845., 0.0);
+{ 58304} G2P5054 +PERO1              =  0.460G1P506z + 0.270GPH504Y + 0.270GPH505J                 : ARR( 0.434E-13,  -900., 0.0);
+{ 58305} G2P5054 +PERO2              =  0.400G1P506z + 0.300GPH504Y + 0.300GPH505J                 : ARR( 0.162E-13, -1400., 0.0);
+{ 58306} G2P5054 +PERO3              =  0.460G1P506z + 0.270GPH504Y + 0.270GPH505J                 : ARR( 0.488E-13, -1250., 0.0);
+{ 58307} G2P5054 +PERO5              =  0.460G1P506z + 0.270GPH504Y + 0.270GPH505J                 : ARR( 0.183E-11,   450., 0.0);
+{ 58308} G2P5054 +PERO6              =  0.300G1P506z + 0.350GPH504Y + 0.350GPH505J                 : ARR( 0.168E-13, -1300., 0.0);
+{ 58309} G2P5054 +PERO9              =  0.650G1P506z + 0.350GPH505J                                : ARR( 0.100E-10,     0., 0.0);
+{ 58310} G1P506z                     =       GCO     +      GHD400K +      GNO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 58311} GHD501P +GHO                =       G3H400i +      GCO                                    : ARR( 0.253E-10,     0., 0.0);
+{ 58312} GHD501P +GHO                =       GDD500F +      GHO                                    : ARR( 0.153E-10,     0., 0.0);
+{ 58313} GHD501P +GHO                =       G2D500r                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 58314} GHD501P +GNO3               =       G3H400i +      GHNO3   +      GCO                     : ARR( 0.480E-14,     0., 0.0);
+{ 58315} GHD501P+HV               =       GCO     +      G3H400i +      GHO2                    :  0.200E+01*SUN;
+{ 58316} GHD501P+HV               =       GHD400K +      GCO                                    :  0.200E+01*SUN;
+{ 58317} GHD501P+HV               =       GHD3001 +      GCO     +      GCO                     :  0.200E+01*SUN;
+{ 58318} GHD501P+HV               =       G1D501Z +      GHO                                    :  0.100E+01*SUN;
+{ 58319} G2D500r +GNO                =       G1D501Z +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 58320} G2D500r +GNO                =       GND501a                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 58321} G2D500r +GHO2               =       GHD501P                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 58322} G2D500r +GNO3               =       G1D501Z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 58323} G2D500r +MEPERO             =  0.340G1D501Z + 0.330GDD500E + 0.330GDD500F                 : ARR( 0.565E-13,  -845., 0.0);
+{ 58324} G2D500r +PERO1              =  0.460G1D501Z + 0.270GDD500E + 0.270GDD500F                 : ARR( 0.434E-13,  -900., 0.0);
+{ 58325} G2D500r +PERO2              =  0.400G1D501Z + 0.300GDD500E + 0.300GDD500F                 : ARR( 0.162E-13, -1400., 0.0);
+{ 58326} G2D500r +PERO3              =  0.460G1D501Z + 0.270GDD500E + 0.270GDD500F                 : ARR( 0.488E-13, -1250., 0.0);
+{ 58327} G2D500r +PERO5              =  0.460G1D501Z + 0.270GDD500E + 0.270GDD500F                 : ARR( 0.183E-11,   450., 0.0);
+{ 58328} G2D500r +PERO6              =  0.300G1D501Z + 0.350GDD500E + 0.350GDD500F                 : ARR( 0.168E-13, -1300., 0.0);
+{ 58329} G2D500r +PERO9              =  0.650G1D501Z + 0.350GDD500F                                : ARR( 0.100E-10,     0., 0.0);
+{ 58330} G1D501Z                     =       G3D2000 +      GDD3002                                : ARR( 0.400E+15,  4847., 0.0);
+{ 58331} GGH400s +GHO                =       GGD4008 +      GHO                                    : ARR( 0.153E-10,     0., 0.0);
+{ 58332} GGH400s +GHO                =       G3G3003 +      GCO                                    : ARR( 0.127E-10,     0., 0.0);
+{ 58333} GGH400s +GHO                =       G3H400i                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 58334} GGH400s +GHO                =       G2G4014                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 58335} GGH400s +GNO3               =       G3G3003 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 58336} GGH400s+HV               =       GDD3002 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 58337} GGH400s+HV               =       G1G4014 +      GHO                                    :  0.100E+01*SUN;
+{ 58338} GGH400s+HV               =       G3G3003 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 58339} GGH400s+HV               =       GGH3007 +      GCO                                    :  0.100E+01*SUN;
+{ 58340} GGH400s+HV               =       GGH2000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 58341} G2G4014 +GNO                =       G1G4014 +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 58342} G2G4014 +GNO                =       GGN400Z                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 58343} G2G4014 +GHO2               =       GGH400s                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 58344} G2G4014 +GNO3               =       G1G4014 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 58345} G2G4014 +MEPERO             =  0.340G1G4014 + 0.330GGD4007 + 0.330GGD4008                 : ARR( 0.565E-13,  -845., 0.0);
+{ 58346} G2G4014 +PERO1              =  0.460G1G4014 + 0.270GGD4007 + 0.270GGD4008                 : ARR( 0.434E-13,  -900., 0.0);
+{ 58347} G2G4014 +PERO2              =  0.400G1G4014 + 0.300GGD4007 + 0.300GGD4008                 : ARR( 0.162E-13, -1400., 0.0);
+{ 58348} G2G4014 +PERO3              =  0.460G1G4014 + 0.270GGD4007 + 0.270GGD4008                 : ARR( 0.488E-13, -1250., 0.0);
+{ 58349} G2G4014 +PERO5              =  0.460G1G4014 + 0.270GGD4007 + 0.270GGD4008                 : ARR( 0.183E-11,   450., 0.0);
+{ 58350} G2G4014 +PERO6              =  0.300G1G4014 + 0.350GGD4007 + 0.350GGD4008                 : ARR( 0.168E-13, -1300., 0.0);
+{ 58351} G2G4014 +PERO9              =  0.650G1G4014 + 0.350GGD4008                                : ARR( 0.100E-10,     0., 0.0);
+{ 58352} GAH400u +GHO                =       GAD4008 +      GHO                                    : ARR( 0.116E-10,     0., 0.0);
+{ 58353} GAH400u +GHO                =       G3A3003 +      GCO                                    : ARR( 0.129E-10,     0., 0.0);
+{ 58354} GAH400u +GHO                =       G2A401E                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 58355} GAH400u +GNO3               =       G3A3003 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 58356} GAH400u+HV               =       G1A401J +      GHO                                    :  0.100E+01*SUN;
+{ 58357} GAH400u+HV               =       G3A3003 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 58358} GAH400u+HV               =       GAH3007 +      GCO                                    :  0.100E+01*SUN;
+{ 58359} GAH400u+HV               =       GAH2000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 58360} G2A401E +GNO                =       G1A401J +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 58361} G2A401E +GNO                =       GAN400b                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 58362} G2A401E +GHO2               =       GAH400u                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 58363} G2A401E +GNO3               =       G1A401J +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 58364} G2A401E +MEPERO             =  0.340G1A401J + 0.330GAD4006 + 0.330GAD4008                 : ARR( 0.565E-13,  -845., 0.0);
+{ 58365} G2A401E +PERO1              =  0.460G1A401J + 0.270GAD4006 + 0.270GAD4008                 : ARR( 0.434E-13,  -900., 0.0);
+{ 58366} G2A401E +PERO2              =  0.400G1A401J + 0.300GAD4006 + 0.300GAD4008                 : ARR( 0.162E-13, -1400., 0.0);
+{ 58367} G2A401E +PERO3              =  0.460G1A401J + 0.270GAD4006 + 0.270GAD4008                 : ARR( 0.488E-13, -1250., 0.0);
+{ 58368} G2A401E +PERO5              =  0.460G1A401J + 0.270GAD4006 + 0.270GAD4008                 : ARR( 0.183E-11,   450., 0.0);
+{ 58369} G2A401E +PERO6              =  0.300G1A401J + 0.350GAD4006 + 0.350GAD4008                 : ARR( 0.168E-13, -1300., 0.0);
+{ 58370} G2A401E +PERO9              =  0.650G1A401J + 0.350GAD4008                                : ARR( 0.100E-10,     0., 0.0);
+{ 58371} GPH400v                     =       G3H400i +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 58372} GPH400v +GHO                =       GPD4008 +      GHO                                    : ARR( 0.153E-10,     0., 0.0);
+{ 58373} GPH400v +GHO                =       G3P3003 +      GCO                                    : ARR( 0.127E-10,     0., 0.0);
+{ 58374} GPH400v +GHO                =       G2P401N                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 58375} GPH400v +GNO3               =       G3P3003 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 58376} GPH400v+HV               =       G3H400i +      GNO2                                   :  0.100E+01*SUN;
+{ 58377} GPH400v+HV               =       G1P401T +      GHO                                    :  0.100E+01*SUN;
+{ 58378} GPH400v+HV               =       G3P3003 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 58379} GPH400v+HV               =       GPH3007 +      GCO                                    :  0.100E+01*SUN;
+{ 58380} GPH400v+HV               =       GPH2000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 58381} G2P401N +GNO                =       G1P401T +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 58382} G2P401N +GNO                =       GPN400b                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 58383} G2P401N +GHO2               =       GPH400v                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 58384} G2P401N +GNO3               =       G1P401T +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 58385} G2P401N +MEPERO             =  0.340G1P401T + 0.330GPD4007 + 0.330GPD4008                 : ARR( 0.565E-13,  -845., 0.0);
+{ 58386} G2P401N +PERO1              =  0.460G1P401T + 0.270GPD4007 + 0.270GPD4008                 : ARR( 0.434E-13,  -900., 0.0);
+{ 58387} G2P401N +PERO2              =  0.400G1P401T + 0.300GPD4007 + 0.300GPD4008                 : ARR( 0.162E-13, -1400., 0.0);
+{ 58388} G2P401N +PERO3              =  0.460G1P401T + 0.270GPD4007 + 0.270GPD4008                 : ARR( 0.488E-13, -1250., 0.0);
+{ 58389} G2P401N +PERO5              =  0.460G1P401T + 0.270GPD4007 + 0.270GPD4008                 : ARR( 0.183E-11,   450., 0.0);
+{ 58390} G2P401N +PERO6              =  0.300G1P401T + 0.350GPD4007 + 0.350GPD4008                 : ARR( 0.168E-13, -1300., 0.0);
+{ 58391} G2P401N +PERO9              =  0.650G1P401T + 0.350GPD4008                                : ARR( 0.100E-10,     0., 0.0);
+{ 58392} GGN5026 +GHO                =       GGN501l +      GHO2                                   : ARR( 0.676E-11,     0., 0.0);
+{ 58393} GGN5026 +GHO                =       G3G500g                                               : ARR( 0.215E-10,     0., 0.0);
+{ 58394} GGN5026 +GHO                =       G3N501m                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 58395} GGN5026 +GNO3               =       G3G500g +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 58396} GGN5026+HV               =       GDD4001 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 58397} GGN5026+HV               =       G1G505I +      GNO2                                   :  0.100E+01*SUN;
+{ 58398} GGN5026+HV               =       G2G400l +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 58399} GGN5026+HV               =       GGD3002 +      GD02000 +      GHO2    +      GNO2     :  0.100E+01*SUN;
+{ 58400} G3G500g +GHO2               =  0.800GGG500T + 0.200GAG5012 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 58401} G3G500g +GNO                =       G2G400l +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 58402} G3G500g +GNO2               =       GPG5014                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 58403} G3G500g +GNO3               =       G2G400l +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 58404} G3G500g +MEPERO             =  0.685G2G400l + 0.315GAG5012 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 58405} G3G500g +PERO1              =  0.800G2G400l + 0.200GAG5012 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 58406} G3G500g +PERO2              =  0.750G2G400l + 0.250GAG5012 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 58407} G3G500g +PERO3              =  0.800G2G400l + 0.200GAG5012 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 58408} G3G500g +PERO5              =  0.650G2G400l + 0.350GAG5012 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 58409} G3G500g +PERO6              =  0.650G2G400l + 0.350GAG5012 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 58410} G3G500g +PERO9              =       G2G400l +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 58411} G1G505I                     =       GCO     +      GDD4001 +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 58412} G1G505I                     =       GGD2000 +      GDD3000 +      GHO2                    : ARR( 0.200E+15,  5475., 0.0);
+{ 58413} GGN5027 +GHO                =       GGN502X +      GHO2                                   : ARR( 0.131E-11,     0., 0.0);
+{ 58414} GGN5027 +GHO                =       G3N502h                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 58415} GGN5027+HV               =       G1G505J +      GNO2                                   :  0.100E+01*SUN;
+{ 58416} GGN5027+HV               =       G1G502I +      GNO2                                   :  0.100E+01*SUN;
+{ 58417} GGN5027+HV               =       GAN400S +      GCO2                                   :  0.100E+01*SUN;
+{ 58418} G3N502h +GHO2               =  0.800GGN5027 + 0.200GAN502L + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 58419} G3N502h +GNO                =       G3N400M +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 58420} G3N502h +GNO2               =       GPN502T                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 58421} G3N502h +GNO3               =       G3N400M +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 58422} G3N502h +MEPERO             =  0.685G3N400M + 0.315GAN502L + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 58423} G3N502h +PERO1              =  0.800G3N400M + 0.200GAN502L + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 58424} G3N502h +PERO2              =  0.750G3N400M + 0.250GAN502L + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 58425} G3N502h +PERO3              =  0.800G3N400M + 0.200GAN502L + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 58426} G3N502h +PERO5              =  0.650G3N400M + 0.350GAN502L + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 58427} G3N502h +PERO6              =  0.650G3N400M + 0.350GAN502L + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 58428} G3N502h +PERO9              =       G3N400M +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 58429} G1G505J +OXYGEN             =       GGN502i +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 58430} G1G505J                     =       GGD4003 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7175., 0.0);
+{ 58431} GGH5036 +GHO                =       GGN5028 +      GHO                                    : ARR( 0.263E-10,     0., 0.0);
+{ 58432} GGH5036 +GHO                =       GGH5056 +      GHO2                                   : ARR( 0.631E-11,     0., 0.0);
+{ 58433} GGH5036 +GHO                =       G2G501r                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 58434} GGH5036 +GHO                =       G3H504f                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 58435} GGH5036+HV               =       G1G505K +      GNO2                                   :  0.100E+01*SUN;
+{ 58436} GGH5036+HV               =       G1G502I +      GHO                                    :  0.100E+01*SUN;
+{ 58437} GGH5036+HV               =       GAH400R +      GCO2                                   :  0.100E+01*SUN;
+{ 58438} G3H504f +GHO2               =  0.800GGH5036 + 0.200GAH503M + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 58439} G3H504f +GNO                =       G3H400b +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 58440} G3H504f +GNO2               =       GPH503S                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 58441} G3H504f +GNO3               =       G3H400b +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 58442} G3H504f +MEPERO             =  0.685G3H400b + 0.315GAH503M + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 58443} G3H504f +PERO1              =  0.800G3H400b + 0.200GAH503M + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 58444} G3H504f +PERO2              =  0.750G3H400b + 0.250GAH503M + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 58445} G3H504f +PERO3              =  0.800G3H400b + 0.200GAH503M + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 58446} G3H504f +PERO5              =  0.650G3H400b + 0.350GAH503M + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 58447} G3H504f +PERO6              =  0.650G3H400b + 0.350GAH503M + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 58448} G3H504f +PERO9              =       G3H400b +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 58449} G1G505K +OXYGEN             =       GGH504h +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 58450} G1G505K                     =       GGD4003 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5636., 0.0);
+{ 58451} GGN5028 +GHO                =       GGN502G +      GHO2                                   : ARR( 0.392E-11,     0., 0.0);
+{ 58452} GGN5028 +GHO                =       G3N502i                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 58453} GGN5028+HV               =       G1G505L +      GNO2                                   :  0.100E+01*SUN;
+{ 58454} GGN5028+HV               =       G3N2000 +      GGD3002 +      GHO2                    :  0.100E+01*SUN;
+{ 58455} GGN5028+HV               =       GAN400U +      GCO2                                   :  0.100E+01*SUN;
+{ 58456} G3N502i +GHO2               =  0.800GGN5028 + 0.200GAN502M + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 58457} G3N502i +GNO                =       G3N400R +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 58458} G3N502i +GNO2               =       GPN502U                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 58459} G3N502i +GNO3               =       G3N400R +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 58460} G3N502i +MEPERO             =  0.685G3N400R + 0.315GAN502M + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 58461} G3N502i +PERO1              =  0.800G3N400R + 0.200GAN502M + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 58462} G3N502i +PERO2              =  0.750G3N400R + 0.250GAN502M + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 58463} G3N502i +PERO3              =  0.800G3N400R + 0.200GAN502M + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 58464} G3N502i +PERO5              =  0.650G3N400R + 0.350GAN502M + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 58465} G3N502i +PERO6              =  0.650G3N400R + 0.350GAN502M + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 58466} G3N502i +PERO9              =       G3N400R +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 58467} G1G505L                     =       G3G4004 +      GCH2O                                  : ARR( 0.200E+15,  4349., 0.0);
+{ 58468} GGN5029 +GHO                =       GGN502m +      GHO2                                   : ARR( 0.883E-12,     0., 0.0);
+{ 58469} GGN5029 +GHO                =       GGN502Y +      GHO2                                   : ARR( 0.452E-12,     0., 0.0);
+{ 58470} GGN5029 +GHO                =       G3N501n                                               : ARR( 0.209E-11,  -190., 0.0);
+{ 58471} GGN5029+HV               =       G1G502J +      GNO2                                   :  0.100E+01*SUN;
+{ 58472} GGN5029+HV               =       G1G503D +      GNO2                                   :  0.100E+01*SUN;
+{ 58473} GGN5029+HV               =       GND4009 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 58474} GGH5037 +GHO                =       GGH5057 +      GHO2                                   : ARR( 0.421E-11,     0., 0.0);
+{ 58475} GGH5037 +GHO                =       GGN502A +      GHO                                    : ARR( 0.431E-10,     0., 0.0);
+{ 58476} GGH5037 +GHO                =       G2G501s                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 58477} GGH5037 +GHO                =       G3H502S                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 58478} GGH5037+HV               =       G1G502J +      GHO                                    :  0.100E+01*SUN;
+{ 58479} GGH5037+HV               =       G1G503S +      GNO2                                   :  0.100E+01*SUN;
+{ 58480} GGH5037+HV               =       GHD4009 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 58481} GGN502A +GHO                =       GGN502n +      GHO2                                   : ARR( 0.262E-11,     0., 0.0);
+{ 58482} GGN502A +GHO                =       GGN502d +      GHO2                                   : ARR( 0.134E-11,     0., 0.0);
+{ 58483} GGN502A +GHO                =       G3N501o                                               : ARR( 0.203E-11,  -190., 0.0);
+{ 58484} GGN502A+HV               =       G3K2001 +      GGN3005 +      GHO2                    :  0.100E+01*SUN;
+{ 58485} GGN502A+HV               =       G1G5044 +      GNO2                                   :  0.100E+01*SUN;
+{ 58486} GGN502A+HV               =       GDK4006 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 58487} GGH5038 +GHO                =       GGD500E +      GHO                                    : ARR( 0.277E-10,     0., 0.0);
+{ 58488} GGH5038 +GHO                =       GGH502F +      GHO2                                   : ARR( 0.361E-10,     0., 0.0);
+{ 58489} GGH5038 +GHO                =       G3G500h                                               : ARR( 0.229E-10,     0., 0.0);
+{ 58490} GGH5038 +GNO3               =       G3G500h +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 58491} GGH5038+HV               =       GDD4001 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 58492} GGH5038+HV               =       G1G505I +      GHO                                    :  0.100E+01*SUN;
+{ 58493} GGH5038+HV               =       G2G400m +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 58494} GGH5038+HV               =       GGD3002 +      GD02000 +      GHO2    +      GHO      :  0.100E+01*SUN;
+{ 58495} G3G500h +GHO2               =  0.800GGG500U + 0.200GAG5013 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 58496} G3G500h +GNO                =       G2G400m +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 58497} G3G500h +GNO2               =       GPG5015                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 58498} G3G500h +GNO3               =       G2G400m +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 58499} G3G500h +MEPERO             =  0.685G2G400m + 0.315GAG5013 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 58500} G3G500h +PERO1              =  0.800G2G400m + 0.200GAG5013 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 58501} G3G500h +PERO2              =  0.750G2G400m + 0.250GAG5013 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 58502} G3G500h +PERO3              =  0.800G2G400m + 0.200GAG5013 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 58503} G3G500h +PERO5              =  0.650G2G400m + 0.350GAG5013 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 58504} G3G500h +PERO6              =  0.650G2G400m + 0.350GAG5013 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 58505} G3G500h +PERO9              =       G2G400m +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 58506} GAN502I +GHO                =       GAN502S +      GHO2                                   : ARR( 0.445E-12,     0., 0.0);
+{ 58507} GAN502I +GHO                =       G1A503F                                               : ARR( 0.227E-17,    85., 2.0);
+{ 58508} GAN502I +GHO                =       GNN400T +      GNO2    +      GCO2                    : ARR( 0.562E-12,     0., 0.0);
+{ 58509} GAN502I+HV               =       G1A503c +      GNO2                                   :  0.100E+01*SUN;
+{ 58510} GAN502I+HV               =       G1A502u +      GNO2                                   :  0.100E+01*SUN;
+{ 58511} GAN502I+HV               =       G1A506L +      GNO2                                   :  0.100E+01*SUN;
+{ 58512} G1A506L +OXYGEN             =       GAN502q +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 58513} G1A506L                     =       GAN502Q +      GNO2                                   : ARR( 0.800E+11,  4379., 0.0);
+{ 58514} G1A506L                     =       GAN400P +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7042., 0.0);
+{ 58515} GAH503L +GHO                =       GAH503R +      GHO2                                   : ARR( 0.217E-11,     0., 0.0);
+{ 58516} GAH503L +GHO                =       GAN502J +      GHO                                    : ARR( 0.869E-11,     0., 0.0);
+{ 58517} GAH503L +GHO                =       G2A502U                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 58518} GAH503L+HV               =       G1A506M +      GNO2                                   :  0.100E+01*SUN;
+{ 58519} GAH503L+HV               =       G1A502u +      GHO                                    :  0.100E+01*SUN;
+{ 58520} GAH503L+HV               =       G1A506N +      GNO2                                   :  0.100E+01*SUN;
+{ 58521} G1A506M                     =       GCO     +      GHN400z +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 58522} G1A506M                     =       GAD2000 +      GHN3007 +      GHO2                    : ARR( 0.200E+15,  5342., 0.0);
+{ 58523} G1A506N                     =       GAN400P +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{ 58524} GAN502J +GHO                =       GAN502M +      GNO2                                   : ARR( 0.171E-12,     0., 0.0);
+{ 58525} GAN502J +GHO                =       GAN502T +      GHO2                                   : ARR( 0.127E-11,     0., 0.0);
+{ 58526} GAN502J +GHO                =       G1A503I                                               : ARR( 0.213E-17,    85., 2.0);
+{ 58527} GAN502J +GHO                =       GND400E +      GNO2    +      GCO2                    : ARR( 0.527E-12,     0., 0.0);
+{ 58528} GAN502J+HV               =       G1A503s +      GNO2                                   :  0.100E+01*SUN;
+{ 58529} GAN502J+HV               =       G3A4006 +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{ 58530} GAN502J+HV               =       G1A506O +      GNO2                                   :  0.100E+01*SUN;
+{ 58531} G1A506O                     =       G3A4006 +      GCH2O                                  : ARR( 0.200E+15,  3603., 0.0);
+{ 58532} GAN502K +GHO                =       GAN501y +      GHO2                                   : ARR( 0.691E-11,     0., 0.0);
+{ 58533} GAN502K +GHO                =       G3A500m                                               : ARR( 0.220E-10,     0., 0.0);
+{ 58534} GAN502K +GNO3               =       G3A500m +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 58535} GAN502K+HV               =       G1A506P +      GNO2                                   :  0.100E+01*SUN;
+{ 58536} GAN502K+HV               =       G2A400G +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 58537} GAN502K+HV               =       GAD3002 +      GD02000 +      GHO2    +      GNO2     :  0.100E+01*SUN;
+{ 58538} G3A500m +GHO2               =  0.800GAG500l + 0.200GAA500c + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 58539} G3A500m +GNO                =       G2A400G +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 58540} G3A500m +GNO2               =       GPA500x                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 58541} G3A500m +GNO3               =       G2A400G +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 58542} G3A500m +MEPERO             =  0.685G2A400G + 0.315GAA500c + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 58543} G3A500m +PERO1              =  0.800G2A400G + 0.200GAA500c + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 58544} G3A500m +PERO2              =  0.750G2A400G + 0.250GAA500c + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 58545} G3A500m +PERO3              =  0.800G2A400G + 0.200GAA500c + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 58546} G3A500m +PERO5              =  0.650G2A400G + 0.350GAA500c + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 58547} G3A500m +PERO6              =  0.650G2A400G + 0.350GAA500c + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 58548} G3A500m +PERO9              =       G2A400G +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 58549} G1A506P                     =       GCO     +      GDD4001 +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 58550} G1A506P                     =       GAD2000 +      GDD3000 +      GHO2                    : ARR( 0.200E+15,  5475., 0.0);
+{ 58551} GAN502L +GHO                =       GAN502U +      GHO2                                   : ARR( 0.131E-11,     0., 0.0);
+{ 58552} GAN502L +GHO                =       G1A503M                                               : ARR( 0.219E-17,    85., 2.0);
+{ 58553} GAN502L +GHO                =       G3N400M +      GCO2                                   : ARR( 0.543E-12,     0., 0.0);
+{ 58554} GAN502L+HV               =       GNN400T +      GCO2                                   :  0.100E+01*SUN;
+{ 58555} GAN502L+HV               =       G1A502x +      GNO2                                   :  0.100E+01*SUN;
+{ 58556} GAN502L+HV               =       G1A506Q +      GNO2                                   :  0.100E+01*SUN;
+{ 58557} G1A506Q +OXYGEN             =       GAN502r +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 58558} G1A506Q                     =       GAD4004 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7175., 0.0);
+{ 58559} GAH503M +GHO                =       GAH503S +      GHO2                                   : ARR( 0.641E-11,     0., 0.0);
+{ 58560} GAH503M +GHO                =       GAN502M +      GHO                                    : ARR( 0.266E-10,     0., 0.0);
+{ 58561} GAH503M +GHO                =       G2A502W                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 58562} GAH503M+HV               =       GHN400z +      GCO2                                   :  0.100E+01*SUN;
+{ 58563} GAH503M+HV               =       G1A502x +      GHO                                    :  0.100E+01*SUN;
+{ 58564} GAH503M+HV               =       G1A506R +      GNO2                                   :  0.100E+01*SUN;
+{ 58565} G1A506R +OXYGEN             =       GAH505E +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 58566} G1A506R                     =       GAD4004 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5636., 0.0);
+{ 58567} GAN502M +GHO                =       GAN502W +      GHO2                                   : ARR( 0.398E-11,     0., 0.0);
+{ 58568} GAN502M +GHO                =       G3N400R +      GCO2                                   : ARR( 0.540E-12,     0., 0.0);
+{ 58569} GAN502M+HV               =       GND400E +      GCO2                                   :  0.100E+01*SUN;
+{ 58570} GAN502M+HV               =       G3A4007 +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{ 58571} GAN502M+HV               =       G1A506S +      GNO2                                   :  0.100E+01*SUN;
+{ 58572} G1A506S                     =       G3A4007 +      GCH2O                                  : ARR( 0.200E+15,  4349., 0.0);
+{ 58573} GAD500K +GHO                =       GAD500H +      GHO2                                   : ARR( 0.202E-10,     0., 0.0);
+{ 58574} GAD500K +GHO                =       G2A504k                                               : ARR( 0.277E-11,     0., 0.0);
+{ 58575} GAD500K +GHO                =       G3A500n                                               : ARR( 0.211E-10,     0., 0.0);
+{ 58576} GAD500K +GNO3               =       G3A500n +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 58577} GAD500K+HV               =       GDD4001 +      GCO2                                   :  0.100E+01*SUN;
+{ 58578} GAD500K+HV               =       G2A400H +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 58579} G2A504k +GNO                =       G1A506T +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 58580} G2A504k +GNO                =       GAN502r                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 58581} G2A504k +GHO2               =       GAH505E                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 58582} G2A504k +GNO3               =       G1A506T +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 58583} G2A504k +MEPERO             =  0.340G1A506T + 0.330GAD500N + 0.330GAD500Q                 : ARR( 0.565E-13,  -845., 0.0);
+{ 58584} G2A504k +PERO1              =  0.460G1A506T + 0.270GAD500N + 0.270GAD500Q                 : ARR( 0.434E-13,  -900., 0.0);
+{ 58585} G2A504k +PERO2              =  0.400G1A506T + 0.300GAD500N + 0.300GAD500Q                 : ARR( 0.162E-13, -1400., 0.0);
+{ 58586} G2A504k +PERO3              =  0.460G1A506T + 0.270GAD500N + 0.270GAD500Q                 : ARR( 0.488E-13, -1250., 0.0);
+{ 58587} G2A504k +PERO5              =  0.460G1A506T + 0.270GAD500N + 0.270GAD500Q                 : ARR( 0.183E-11,   450., 0.0);
+{ 58588} G2A504k +PERO6              =  0.300G1A506T + 0.350GAD500N + 0.350GAD500Q                 : ARR( 0.168E-13, -1300., 0.0);
+{ 58589} G2A504k +PERO9              =  0.650G1A506T + 0.350GAD500Q                                : ARR( 0.100E-10,     0., 0.0);
+{ 58590} G3A500n +GHO2               =  0.800GAG5014 + 0.200GAA500f + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 58591} G3A500n +GNO                =       G2A400H +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 58592} G3A500n +GNO2               =       GPA501A                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 58593} G3A500n +GNO3               =       G2A400H +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 58594} G3A500n +MEPERO             =  0.685G2A400H + 0.315GAA500f + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 58595} G3A500n +PERO1              =  0.800G2A400H + 0.200GAA500f + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 58596} G3A500n +PERO2              =  0.750G2A400H + 0.250GAA500f + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 58597} G3A500n +PERO3              =  0.800G2A400H + 0.200GAA500f + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 58598} G3A500n +PERO5              =  0.650G2A400H + 0.350GAA500f + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 58599} G3A500n +PERO6              =  0.650G2A400H + 0.350GAA500f + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 58600} G3A500n +PERO9              =       G2A400H +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 58601} G1A506T                     =       GAD3002 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  4760., 0.0);
+{ 58602} G1A506T                     =       GAD4004 +      GCO     +      GHO2                    : ARR( 0.200E+15,  4861., 0.0);
+{ 58603} GAG500F +GHO                =       GAG5007 +      GHO2                                   : ARR( 0.112E-10,     0., 0.0);
+{ 58604} GAG500F +GHO                =       G2A504l                                               : ARR( 0.937E-12,     0., 0.0);
+{ 58605} GAG500F +GHO                =       G3A500E                                               : ARR( 0.207E-11,  -190., 0.0);
+{ 58606} GAG500F+HV               =       G2A400X +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 58607} G2A504l +GNO                =       G1A506U +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 58608} G2A504l +GNO                =       GAG5012                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 58609} G2A504l +GHO2               =       GAG5013                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 58610} G2A504l +GNO3               =       G1A506U +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 58611} G2A504l +MEPERO             =  0.340G1A506U + 0.330GAG5006 + 0.330GAG500a                 : ARR( 0.565E-13,  -845., 0.0);
+{ 58612} G2A504l +PERO1              =  0.460G1A506U + 0.270GAG5006 + 0.270GAG500a                 : ARR( 0.434E-13,  -900., 0.0);
+{ 58613} G2A504l +PERO2              =  0.400G1A506U + 0.300GAG5006 + 0.300GAG500a                 : ARR( 0.162E-13, -1400., 0.0);
+{ 58614} G2A504l +PERO3              =  0.460G1A506U + 0.270GAG5006 + 0.270GAG500a                 : ARR( 0.488E-13, -1250., 0.0);
+{ 58615} G2A504l +PERO5              =  0.460G1A506U + 0.270GAG5006 + 0.270GAG500a                 : ARR( 0.183E-11,   450., 0.0);
+{ 58616} G2A504l +PERO6              =  0.300G1A506U + 0.350GAG5006 + 0.350GAG500a                 : ARR( 0.168E-13, -1300., 0.0);
+{ 58617} G2A504l +PERO9              =  0.650G1A506U + 0.350GAG500a                                : ARR( 0.100E-10,     0., 0.0);
+{ 58618} G1A506U                     =       GAD3000 +      GGD2000 +      GHO2                    : ARR( 0.200E+15,  5475., 0.0);
+{ 58619} G1A506U                     =       GAD4001 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 58620} GAA500A +GHO                =       G2A504m                                               : ARR( 0.129E-11,     0., 0.0);
+{ 58621} GAA500A +GHO                =       GAA5005 +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 58622} GAA500A +GHO                =       G2A400X +      GCO2                                   : ARR( 0.105E-11,     0., 0.0);
+{ 58623} G2A504m +GNO                =       G1A506W +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 58624} G2A504m +GNO                =       GAA500c                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 58625} G2A504m +GHO2               =       GAA500g                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 58626} G2A504m +GNO3               =       G1A506W +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 58627} G2A504m +MEPERO             =  0.340G1A506W + 0.330GAA500B + 0.330GAA500f                 : ARR( 0.565E-13,  -845., 0.0);
+{ 58628} G2A504m +PERO1              =  0.460G1A506W + 0.270GAA500B + 0.270GAA500f                 : ARR( 0.434E-13,  -900., 0.0);
+{ 58629} G2A504m +PERO2              =  0.400G1A506W + 0.300GAA500B + 0.300GAA500f                 : ARR( 0.162E-13, -1400., 0.0);
+{ 58630} G2A504m +PERO3              =  0.460G1A506W + 0.270GAA500B + 0.270GAA500f                 : ARR( 0.488E-13, -1250., 0.0);
+{ 58631} G2A504m +PERO5              =  0.460G1A506W + 0.270GAA500B + 0.270GAA500f                 : ARR( 0.183E-11,   450., 0.0);
+{ 58632} G2A504m +PERO6              =  0.300G1A506W + 0.350GAA500B + 0.350GAA500f                 : ARR( 0.168E-13, -1300., 0.0);
+{ 58633} G2A504m +PERO9              =  0.650G1A506W + 0.350GAA500f                                : ARR( 0.100E-10,     0., 0.0);
+{ 58634} G1A506W                     =       GAD3000 +      GAD2000 +      GHO2                    : ARR( 0.200E+15,  5475., 0.0);
+{ 58635} G1A506W                     =       GAD4001 +      GCO     +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 58636} GPA500H                     =       G3A500E +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 58637} GPA500H +GHO                =       G2P5055                                               : ARR( 0.673E-12,     0., 0.0);
+{ 58638} GPA500H +GHO                =       GPA5008 +      GHO2                                   : ARR( 0.109E-10,     0., 0.0);
+{ 58639} GPA500H +GHO                =       G2P5056                                               : ARR( 0.910E-12,     0., 0.0);
+{ 58640} GPA500H+HV               =       G3A500E +      GNO2                                   :  0.100E+01*SUN;
+{ 58641} G2P5055 +GNO                =       G1P5071 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 58642} G2P5055 +GNO                =       GPA500x                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 58643} G2P5055 +GHO2               =       GPA501B                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 58644} G2P5055 +GNO3               =       G1P5071 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 58645} G2P5055 +MEPERO             =  0.340G1P5071 + 0.330GPA500I + 0.330GPA501A                 : ARR( 0.565E-13,  -845., 0.0);
+{ 58646} G2P5055 +PERO1              =  0.460G1P5071 + 0.270GPA500I + 0.270GPA501A                 : ARR( 0.434E-13,  -900., 0.0);
+{ 58647} G2P5055 +PERO2              =  0.400G1P5071 + 0.300GPA500I + 0.300GPA501A                 : ARR( 0.162E-13, -1400., 0.0);
+{ 58648} G2P5055 +PERO3              =  0.460G1P5071 + 0.270GPA500I + 0.270GPA501A                 : ARR( 0.488E-13, -1250., 0.0);
+{ 58649} G2P5055 +PERO5              =  0.460G1P5071 + 0.270GPA500I + 0.270GPA501A                 : ARR( 0.183E-11,   450., 0.0);
+{ 58650} G2P5055 +PERO6              =  0.300G1P5071 + 0.350GPA500I + 0.350GPA501A                 : ARR( 0.168E-13, -1300., 0.0);
+{ 58651} G2P5055 +PERO9              =  0.650G1P5071 + 0.350GPA501A                                : ARR( 0.100E-10,     0., 0.0);
+{ 58652} G2P5056 +GNO                =       G1P5072 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 58653} G2P5056 +GNO                =       GPA5015                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 58654} G2P5056 +GHO2               =       GPA501C                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 58655} G2P5056 +GNO3               =       G1P5072 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 58656} G2P5056 +MEPERO             =  0.340G1P5072 + 0.330GPA5007 + 0.330GPA500j                 : ARR( 0.565E-13,  -845., 0.0);
+{ 58657} G2P5056 +PERO1              =  0.460G1P5072 + 0.270GPA5007 + 0.270GPA500j                 : ARR( 0.434E-13,  -900., 0.0);
+{ 58658} G2P5056 +PERO2              =  0.400G1P5072 + 0.300GPA5007 + 0.300GPA500j                 : ARR( 0.162E-13, -1400., 0.0);
+{ 58659} G2P5056 +PERO3              =  0.460G1P5072 + 0.270GPA5007 + 0.270GPA500j                 : ARR( 0.488E-13, -1250., 0.0);
+{ 58660} G2P5056 +PERO5              =  0.460G1P5072 + 0.270GPA5007 + 0.270GPA500j                 : ARR( 0.183E-11,   450., 0.0);
+{ 58661} G2P5056 +PERO6              =  0.300G1P5072 + 0.350GPA5007 + 0.350GPA500j                 : ARR( 0.168E-13, -1300., 0.0);
+{ 58662} G2P5056 +PERO9              =  0.650G1P5072 + 0.350GPA500j                                : ARR( 0.100E-10,     0., 0.0);
+{ 58663} G1P5071                     =       GCO     +      GPD4001 +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 58664} G1P5071                     =       GAD2000 +      GPD3000 +      GHO2                    : ARR( 0.200E+15,  5475., 0.0);
+{ 58665} G1P5072                     =       GAD3000 +      GPD2000 +      GHO2                    : ARR( 0.200E+15,  5475., 0.0);
+{ 58666} G1P5072                     =       GAD4001 +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 58667} GAN502N +GHO                =       GAN502q +      GHO2                                   : ARR( 0.824E-12,     0., 0.0);
+{ 58668} GAN502N +GHO                =       GAN502O +      GNO2                                   : ARR( 0.121E-12,     0., 0.0);
+{ 58669} GAN502N +GHO                =       GAN501z +      GHO2                                   : ARR( 0.422E-12,     0., 0.0);
+{ 58670} GAN502N +GHO                =       G1A506L                                               : ARR( 0.215E-17,    85., 2.0);
+{ 58671} GAN502N +GHO                =       G1A505B                                               : ARR( 0.215E-17,    85., 2.0);
+{ 58672} GAN502N +GHO                =       GND4009 +      GNO2    +      GCO2                    : ARR( 0.533E-12,     0., 0.0);
+{ 58673} GAN502N+HV               =       G1A502y +      GNO2                                   :  0.100E+01*SUN;
+{ 58674} GAN502N+HV               =       G1A503d +      GNO2                                   :  0.100E+01*SUN;
+{ 58675} GAH503N +GHO                =       GAH505F +      GHO2                                   : ARR( 0.426E-11,     0., 0.0);
+{ 58676} GAH503N +GHO                =       GAN502O +      GHO                                    : ARR( 0.437E-10,     0., 0.0);
+{ 58677} GAH503N +GHO                =       G2A502X                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 58678} GAH503N+HV               =       G1A502y +      GHO                                    :  0.100E+01*SUN;
+{ 58679} GAH503N+HV               =       G1A503k +      GNO2                                   :  0.100E+01*SUN;
+{ 58680} GAN502O +GHO                =       GAN502s +      GHO2                                   : ARR( 0.271E-11,     0., 0.0);
+{ 58681} GAN502O +GHO                =       GAN5022 +      GHO2                                   : ARR( 0.139E-11,     0., 0.0);
+{ 58682} GAN502O +GHO                =       GDK4006 +      GNO2    +      GCO2                    : ARR( 0.575E-12,     0., 0.0);
+{ 58683} GAN502O+HV               =       G3K2001 +      GAN3006 +      GHO2                    :  0.100E+01*SUN;
+{ 58684} GAN502O+HV               =       G1A504n +      GNO2                                   :  0.100E+01*SUN;
+{ 58685} GAH503O +GHO                =       GAD500K +      GHO                                    : ARR( 0.199E-10,     0., 0.0);
+{ 58686} GAH503O +GHO                =       GAH502U +      GHO2                                   : ARR( 0.350E-10,     0., 0.0);
+{ 58687} GAH503O +GHO                =       G3A500o                                               : ARR( 0.223E-10,     0., 0.0);
+{ 58688} GAH503O +GNO3               =       G3A500o +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 58689} GAH503O+HV               =       G1A506P +      GHO                                    :  0.100E+01*SUN;
+{ 58690} GAH503O+HV               =       G2A400w +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 58691} GAH503O+HV               =       GAD3002 +      GD02000 +      GHO2    +      GHO      :  0.100E+01*SUN;
+{ 58692} G3A500o +GHO2               =  0.800GAG5015 + 0.200GAA500g + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 58693} G3A500o +GNO                =       G2A400w +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 58694} G3A500o +GNO2               =       GPA501B                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 58695} G3A500o +GNO3               =       G2A400w +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 58696} G3A500o +MEPERO             =  0.685G2A400w + 0.315GAA500g + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 58697} G3A500o +PERO1              =  0.800G2A400w + 0.200GAA500g + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 58698} G3A500o +PERO2              =  0.750G2A400w + 0.250GAA500g + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 58699} G3A500o +PERO3              =  0.800G2A400w + 0.200GAA500g + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 58700} G3A500o +PERO5              =  0.650G2A400w + 0.350GAA500g + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 58701} G3A500o +PERO6              =  0.650G2A400w + 0.350GAA500g + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 58702} G3A500o +PERO9              =       G2A400w +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 58703} GAN502P +GHO                =       GAN502e +      GHO2                                   : ARR( 0.858E-12,     0., 0.0);
+{ 58704} GAN502P +GHO                =       GAN502Z +      GHO2                                   : ARR( 0.220E-11,     0., 0.0);
+{ 58705} GAN502P +GHO                =       GAN502Q +      GHO2                                   : ARR( 0.496E-11,     0., 0.0);
+{ 58706} GAN502P +GHO                =       GND4009 +      GHO2    +      GCO2                    : ARR( 0.555E-12,     0., 0.0);
+{ 58707} GAN502P+HV               =       G1A502z +      GNO2                                   :  0.100E+01*SUN;
+{ 58708} GAH503P +GHO                =       GAH503o +      GHO2                                   : ARR( 0.408E-11,     0., 0.0);
+{ 58709} GAH503P +GHO                =       GAK500Z +      GHO                                    : ARR( 0.418E-10,     0., 0.0);
+{ 58710} GAH503P +GHO                =       GAH5049 +      GHO2                                   : ARR( 0.105E-10,     0., 0.0);
+{ 58711} GAH503P +GHO                =       GAH503Q +      GHO2                                   : ARR( 0.472E-11,     0., 0.0);
+{ 58712} GAH503P +GHO                =       G2A502Y                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 58713} GAH503P+HV               =       G1A502z +      GHO                                    :  0.100E+01*SUN;
+{ 58714} GAN502Q +GHO                =       GAN502r +      GHO2                                   : ARR( 0.881E-12,     0., 0.0);
+{ 58715} GAN502Q +GHO                =       GAK500c +      GNO2                                   : ARR( 0.409E-12,     0., 0.0);
+{ 58716} GAN502Q +GHO                =       GAN5023 +      GHO2                                   : ARR( 0.138E-11,     0., 0.0);
+{ 58717} GAN502Q +GHO                =       G3N400E +      GCO2                                   : ARR( 0.569E-12,     0., 0.0);
+{ 58718} GAN502Q+HV               =       G1A5031 +      GNO2                                   :  0.100E+01*SUN;
+{ 58719} GAN502Q+HV               =       GND4009 +      GCO2                                   :  0.100E+01*SUN;
+{ 58720} GAH503Q +GHO                =       GAK500c +      GHO                                    : ARR( 0.145E-09,     0., 0.0);
+{ 58721} GAH503Q+HV               =       G1A5031 +      GHO                                    :  0.100E+01*SUN;
+{ 58722} GAH503Q+HV               =       GHD4009 +      GCO2                                   :  0.100E+01*SUN;
+{ 58723} GAK500c +GHO                =       GAD500Q +      GHO2                                   : ARR( 0.255E-11,     0., 0.0);
+{ 58724} GAK500c +GHO                =       GAK500X +      GHO2                                   : ARR( 0.399E-11,     0., 0.0);
+{ 58725} GAK500c +GHO                =       G3K400C +      GCO2                                   : ARR( 0.541E-12,     0., 0.0);
+{ 58726} GAK500c+HV               =       G3K2001 +      GAD3002 +      GHO2                    :  0.100E+01*SUN;
+{ 58727} GAK500c+HV               =       GDK4006 +      GCO2                                   :  0.100E+01*SUN;
+{ 58728} GAG500G +GHO                =       GAG5014 +      GHO2                                   : ARR( 0.507E-11,     0., 0.0);
+{ 58729} GAG500G +GHO                =       GAG5009 +      GHO2                                   : ARR( 0.112E-10,     0., 0.0);
+{ 58730} GAG500G +GHO                =       G3A500F                                               : ARR( 0.207E-11,  -190., 0.0);
+{ 58731} GAG500G+HV               =       G2A400j +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 58732} GAA500B +GHO                =       GAA5006 +      GHO2                                   : ARR( 0.117E-10,     0., 0.0);
+{ 58733} GAA500B +GHO                =       GAA500f +      GHO2                                   : ARR( 0.526E-11,     0., 0.0);
+{ 58734} GPA500I                     =       G3A500F +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 58735} GPA500I +GHO                =       GPA501A +      GHO2                                   : ARR( 0.488E-11,     0., 0.0);
+{ 58736} GPA500I +GHO                =       GPA5009 +      GHO2                                   : ARR( 0.108E-10,     0., 0.0);
+{ 58737} GPA500I +GHO                =       G2P5057                                               : ARR( 0.905E-12,     0., 0.0);
+{ 58738} GPA500I+HV               =       G3A500F +      GNO2                                   :  0.100E+01*SUN;
+{ 58739} G2P5057 +GNO                =       G1P5073 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 58740} G2P5057 +GNO                =       GPA501D                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 58741} G2P5057 +GHO2               =       GPA501E                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 58742} G2P5057 +GNO3               =       G1P5073 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 58743} G2P5057 +MEPERO             =  0.340G1P5073 + 0.330GPA500U + 0.330GPA501F                 : ARR( 0.565E-13,  -845., 0.0);
+{ 58744} G2P5057 +PERO1              =  0.460G1P5073 + 0.270GPA500U + 0.270GPA501F                 : ARR( 0.434E-13,  -900., 0.0);
+{ 58745} G2P5057 +PERO2              =  0.400G1P5073 + 0.300GPA500U + 0.300GPA501F                 : ARR( 0.162E-13, -1400., 0.0);
+{ 58746} G2P5057 +PERO3              =  0.460G1P5073 + 0.270GPA500U + 0.270GPA501F                 : ARR( 0.488E-13, -1250., 0.0);
+{ 58747} G2P5057 +PERO5              =  0.460G1P5073 + 0.270GPA500U + 0.270GPA501F                 : ARR( 0.183E-11,   450., 0.0);
+{ 58748} G2P5057 +PERO6              =  0.300G1P5073 + 0.350GPA500U + 0.350GPA501F                 : ARR( 0.168E-13, -1300., 0.0);
+{ 58749} G2P5057 +PERO9              =  0.650G1P5073 + 0.350GPA501F                                : ARR( 0.100E-10,     0., 0.0);
+{ 58750} G1P5073                     =       GAD3001 +      GPD2000 +      GHO2                    : ARR( 0.200E+15,  5475., 0.0);
+{ 58751} G1P5073                     =       GAD4007 +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 58752} GPN502Q                     =       G3N502d +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 58753} GPN502Q +GHO                =       GPN502Z +      GHO2                                   : ARR( 0.434E-12,     0., 0.0);
+{ 58754} GPN502Q +GHO                =       GPN502T +      GNO2                                   : ARR( 0.756E-13,     0., 0.0);
+{ 58755} GPN502Q +GHO                =       G1P503b                                               : ARR( 0.221E-17,    85., 2.0);
+{ 58756} GPN502Q+HV               =       G1P5074 +      GNO2                                   :  0.100E+01*SUN;
+{ 58757} GPN502Q+HV               =       G1P5039 +      GNO2                                   :  0.100E+01*SUN;
+{ 58758} GPN502Q+HV               =       G1P503Z +      GNO2                                   :  0.100E+01*SUN;
+{ 58759} GPN502Q+HV               =       G3N502d +      GNO2                                   :  0.100E+01*SUN;
+{ 58760} G1P5074 +OXYGEN             =       GPN502t +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 58761} G1P5074                     =       GPN501z +      GNO2                                   : ARR( 0.800E+11,  4245., 0.0);
+{ 58762} G1P5074                     =       GPN400P +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7042., 0.0);
+{ 58763} GPH503R                     =       G3H503T +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 58764} GPH503R +GHO                =       GPN502R +      GHO                                    : ARR( 0.840E-11,     0., 0.0);
+{ 58765} GPH503R +GHO                =       GPH503X +      GHO2                                   : ARR( 0.210E-11,     0., 0.0);
+{ 58766} GPH503R +GHO                =       G2P502b                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 58767} GPH503R+HV               =       G1P5075 +      GNO2                                   :  0.100E+01*SUN;
+{ 58768} GPH503R+HV               =       G1P5039 +      GHO                                    :  0.100E+01*SUN;
+{ 58769} GPH503R+HV               =       G1P5076 +      GNO2                                   :  0.100E+01*SUN;
+{ 58770} GPH503R+HV               =       G3H503T +      GNO2                                   :  0.100E+01*SUN;
+{ 58771} G1P5075                     =       GPH502P +      GNO2                                   : ARR( 0.800E+11,  4245., 0.0);
+{ 58772} G1P5075                     =       GPN400P +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{ 58773} G1P5076                     =       GHN3007 +      GPD2000 +      GHO2                    : ARR( 0.200E+15,  5342., 0.0);
+{ 58774} G1P5076                     =       GHN400z +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 58775} GPN502R                     =       G3N5026 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 58776} GPN502R +GHO                =       GPN502c +      GHO2                                   : ARR( 0.128E-11,     0., 0.0);
+{ 58777} GPN502R +GHO                =       GPN502U +      GNO2                                   : ARR( 0.232E-12,     0., 0.0);
+{ 58778} GPN502R +GHO                =       G1P503y                                               : ARR( 0.214E-17,    85., 2.0);
+{ 58779} GPN502R+HV               =       G1P505e +      GNO2                                   :  0.100E+01*SUN;
+{ 58780} GPN502R+HV               =       G3N2000 +      GPN3006 +      GHO2                    :  0.100E+01*SUN;
+{ 58781} GPN502R+HV               =       G1P503x +      GNO2                                   :  0.100E+01*SUN;
+{ 58782} GPN502R+HV               =       G3N5026 +      GNO2                                   :  0.100E+01*SUN;
+{ 58783} GPN502S                     =       G3N501m +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 58784} GPN502S +GHO                =       GPN5029 +      GHO2                                   : ARR( 0.679E-11,     0., 0.0);
+{ 58785} GPN502S +GHO                =       G3P500o                                               : ARR( 0.216E-10,     0., 0.0);
+{ 58786} GPN502S +GNO3               =       G3P500o +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 58787} GPN502S+HV               =       G3N501m +      GNO2                                   :  0.100E+01*SUN;
+{ 58788} GPN502S+HV               =       G1P5077 +      GNO2                                   :  0.100E+01*SUN;
+{ 58789} GPN502S+HV               =       G2P400H +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 58790} GPN502S+HV               =       GPD3002 +      GD02000 +      GHO2    +      GNO2     :  0.100E+01*SUN;
+{ 58791} G3P500o +GHO2               =  0.800GPG500s + 0.200GPA5015 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 58792} G3P500o +GNO                =       G2P400H +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 58793} G3P500o +GNO2               =       GPP500a                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 58794} G3P500o +GNO3               =       G2P400H +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 58795} G3P500o +MEPERO             =  0.685G2P400H + 0.315GPA5015 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 58796} G3P500o +PERO1              =  0.800G2P400H + 0.200GPA5015 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 58797} G3P500o +PERO2              =  0.750G2P400H + 0.250GPA5015 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 58798} G3P500o +PERO3              =  0.800G2P400H + 0.200GPA5015 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 58799} G3P500o +PERO5              =  0.650G2P400H + 0.350GPA5015 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 58800} G3P500o +PERO6              =  0.650G2P400H + 0.350GPA5015 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 58801} G3P500o +PERO9              =       G2P400H +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 58802} G1P5077                     =       GCO     +      GDD4001 +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 58803} G1P5077                     =       GPD2000 +      GDD3000 +      GHO2                    : ARR( 0.200E+15,  5475., 0.0);
+{ 58804} GPN502T                     =       G3N502h +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 58805} GPN502T +GHO                =       GPN502U +      GNO2                                   : ARR( 0.751E-13,     0., 0.0);
+{ 58806} GPN502T +GHO                =       GPN502b +      GHO2                                   : ARR( 0.126E-11,     0., 0.0);
+{ 58807} GPN502T +GHO                =       G1P503g                                               : ARR( 0.211E-17,    85., 2.0);
+{ 58808} GPN502T+HV               =       G1P505j +      GNO2                                   :  0.100E+01*SUN;
+{ 58809} GPN502T+HV               =       G1P503C +      GNO2                                   :  0.100E+01*SUN;
+{ 58810} GPN502T+HV               =       G3N400M +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 58811} GPH503S                     =       G3H504f +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 58812} GPH503S +GHO                =       GPN502U +      GHO                                    : ARR( 0.263E-10,     0., 0.0);
+{ 58813} GPH503S +GHO                =       GPH503a +      GHO2                                   : ARR( 0.631E-11,     0., 0.0);
+{ 58814} GPH503S +GHO                =       G2P502c                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 58815} GPH503S+HV               =       G1P5078 +      GNO2                                   :  0.100E+01*SUN;
+{ 58816} GPH503S+HV               =       G1P503C +      GHO                                    :  0.100E+01*SUN;
+{ 58817} GPH503S+HV               =       G3H400b +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 58818} G1P5078 +OXYGEN             =       GPH504x +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 58819} G1P5078                     =       GPD4004 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5636., 0.0);
+{ 58820} GPN502U                     =       G3N502i +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 58821} GPN502U +GHO                =       GPN502e +      GHO2                                   : ARR( 0.400E-11,     0., 0.0);
+{ 58822} GPN502U+HV               =       G1P5079 +      GNO2                                   :  0.100E+01*SUN;
+{ 58823} GPN502U+HV               =       G3N2000 +      GPD3002 +      GHO2                    :  0.100E+01*SUN;
+{ 58824} GPN502U+HV               =       G3N400R +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 58825} G1P5079                     =       G3P4007 +      GCH2O                                  : ARR( 0.200E+15,  4349., 0.0);
+{ 58826} GPN502W                     =       G3N501n +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 58827} GPN502W +GHO                =       GPN502t +      GHO2                                   : ARR( 0.840E-12,     0., 0.0);
+{ 58828} GPN502W +GHO                =       GPN502X +      GNO2                                   : ARR( 0.123E-12,     0., 0.0);
+{ 58829} GPN502W +GHO                =       GPN5025 +      GHO2                                   : ARR( 0.430E-12,     0., 0.0);
+{ 58830} GPN502W +GHO                =       G1P5074                                               : ARR( 0.219E-17,    85., 2.0);
+{ 58831} GPN502W +GHO                =       G1P505B                                               : ARR( 0.219E-17,    85., 2.0);
+{ 58832} GPN502W+HV               =       G1P503D +      GNO2                                   :  0.100E+01*SUN;
+{ 58833} GPN502W+HV               =       G1P503a +      GNO2                                   :  0.100E+01*SUN;
+{ 58834} GPN502W+HV               =       G3N501n +      GNO2                                   :  0.100E+01*SUN;
+{ 58835} GPH503T                     =       G3H502S +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 58836} GPH503T +GHO                =       GPH505M +      GHO2                                   : ARR( 0.422E-11,     0., 0.0);
+{ 58837} GPH503T +GHO                =       GPN502X +      GHO                                    : ARR( 0.432E-10,     0., 0.0);
+{ 58838} GPH503T +GHO                =       G2P502d                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 58839} GPH503T+HV               =       G1P503D +      GHO                                    :  0.100E+01*SUN;
+{ 58840} GPH503T+HV               =       G1P503n +      GNO2                                   :  0.100E+01*SUN;
+{ 58841} GPH503T+HV               =       G3H502S +      GNO2                                   :  0.100E+01*SUN;
+{ 58842} GPN502X                     =       G3N501o +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 58843} GPN502X +GHO                =       GPN502n +      GHO2                                   : ARR( 0.263E-11,     0., 0.0);
+{ 58844} GPN502X +GHO                =       GPN502B +      GHO2                                   : ARR( 0.135E-11,     0., 0.0);
+{ 58845} GPN502X +GHO                =       GPK500X +      GNO2                                   : ARR( 0.244E-12,     0., 0.0);
+{ 58846} GPN502X+HV               =       G3K2001 +      GPN3006 +      GHO2                    :  0.100E+01*SUN;
+{ 58847} GPN502X+HV               =       G1P504u +      GNO2                                   :  0.100E+01*SUN;
+{ 58848} GPN502X+HV               =       G3N501o +      GNO2                                   :  0.100E+01*SUN;
+{ 58849} GPH503U                     =       G3H502e +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 58850} GPH503U +GHO                =       GPD500E +      GHO                                    : ARR( 0.266E-10,     0., 0.0);
+{ 58851} GPH503U +GHO                =       GPH502c +      GHO2                                   : ARR( 0.346E-10,     0., 0.0);
+{ 58852} GPH503U +GHO                =       G3P500p                                               : ARR( 0.220E-10,     0., 0.0);
+{ 58853} GPH503U +GNO3               =       G3P500p +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 58854} GPH503U+HV               =       G3H502e +      GNO2                                   :  0.100E+01*SUN;
+{ 58855} GPH503U+HV               =       G1P5077 +      GHO                                    :  0.100E+01*SUN;
+{ 58856} GPH503U+HV               =       G2P400y +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 58857} GPH503U+HV               =       GPD3002 +      GD02000 +      GHO2    +      GHO      :  0.100E+01*SUN;
+{ 58858} G3P500p +GHO2               =  0.800GPG5016 + 0.200GPA501C + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 58859} G3P500p +GNO                =       G2P400y +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 58860} G3P500p +GNO2               =       GPP500d                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 58861} G3P500p +GNO3               =       G2P400y +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 58862} G3P500p +MEPERO             =  0.685G2P400y + 0.315GPA501C + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 58863} G3P500p +PERO1              =  0.800G2P400y + 0.200GPA501C + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 58864} G3P500p +PERO2              =  0.750G2P400y + 0.250GPA501C + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 58865} G3P500p +PERO3              =  0.800G2P400y + 0.200GPA501C + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 58866} G3P500p +PERO5              =  0.650G2P400y + 0.350GPA501C + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 58867} G3P500p +PERO6              =  0.650G2P400y + 0.350GPA501C + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 58868} G3P500p +PERO9              =       G2P400y +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 58869} GGN502B +GHO                =       G2G503q                                               : ARR( 0.879E-12,     0., 0.0);
+{ 58870} GGN502B +GHO                =       GGN502C +      GHO2                                   : ARR( 0.210E-11,     0., 0.0);
+{ 58871} GGN502B +GHO                =       G3G500i                                               : ARR( 0.424E-11,     0., 0.0);
+{ 58872} GGN502B +GHO                =       G3N501l                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 58873} GGN502B +GNO3               =       G3G500i +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 58874} GGN502B+HV               =       G2N400w +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 58875} GGN502B+HV               =       G1G505M +      GNO2                                   :  0.100E+01*SUN;
+{ 58876} GGN502B+HV               =       GGD4001 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 58877} GGN502B+HV               =       GGD3000 +      GND2000                                :  0.100E+01*SUN;
+{ 58878} G2G503q +GNO                =       G1G505N +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 58879} G2G503q +GNO                =       GGN502m                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 58880} G2G503q +GHO2               =       GGH5058                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 58881} G2G503q +GNO3               =       G1G505N +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 58882} G2G503q +MEPERO             =  0.340G1G505N + 0.330GGN502c + 0.330GGN502i                 : ARR( 0.565E-13,  -845., 0.0);
+{ 58883} G2G503q +PERO1              =  0.460G1G505N + 0.270GGN502c + 0.270GGN502i                 : ARR( 0.434E-13,  -900., 0.0);
+{ 58884} G2G503q +PERO2              =  0.400G1G505N + 0.300GGN502c + 0.300GGN502i                 : ARR( 0.162E-13, -1400., 0.0);
+{ 58885} G2G503q +PERO3              =  0.460G1G505N + 0.270GGN502c + 0.270GGN502i                 : ARR( 0.488E-13, -1250., 0.0);
+{ 58886} G2G503q +PERO5              =  0.460G1G505N + 0.270GGN502c + 0.270GGN502i                 : ARR( 0.183E-11,   450., 0.0);
+{ 58887} G2G503q +PERO6              =  0.300G1G505N + 0.350GGN502c + 0.350GGN502i                 : ARR( 0.168E-13, -1300., 0.0);
+{ 58888} G2G503q +PERO9              =  0.650G1G505N + 0.350GGN502i                                : ARR( 0.100E-10,     0., 0.0);
+{ 58889} G3G500i +GHO2               =  0.800GGG500T + 0.200GAG500l + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 58890} G3G500i +GNO                =       GGD4001 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 58891} G3G500i +GNO2               =       GPG500s                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 58892} G3G500i +GNO3               =       GGD4001 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 58893} G3G500i +MEPERO             =  0.685GGD4001 + 0.315GAG500l + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58894} G3G500i +PERO1              =  0.800GGD4001 + 0.200GAG500l + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58895} G3G500i +PERO2              =  0.750GGD4001 + 0.250GAG500l + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58896} G3G500i +PERO3              =  0.800GGD4001 + 0.200GAG500l + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58897} G3G500i +PERO5              =  0.650GGD4001 + 0.350GAG500l + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58898} G3G500i +PERO6              =  0.650GGD4001 + 0.350GAG500l + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58899} G3G500i +PERO9              =       GGD4001 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 58900} G1G505M                     =       GGD3000 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  5032., 0.0);
+{ 58901} G1G505M                     =       GGD4001 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 58902} G1G505N                     =       GCO     +      GND400J +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 58903} G1G505N                     =       GGD2000 +      GND3005 +      GHO2                    : ARR( 0.200E+15,  5475., 0.0);
+{ 58904} GAN502R +GHO                =       G2A504n                                               : ARR( 0.656E-12,     0., 0.0);
+{ 58905} GAN502R +GHO                =       GAN502Y +      GHO2                                   : ARR( 0.212E-11,     0., 0.0);
+{ 58906} GAN502R +GHO                =       G3A500p                                               : ARR( 0.427E-11,     0., 0.0);
+{ 58907} GAN502R +GHO                =       G2N400w +      GCO2                                   : ARR( 0.535E-12,     0., 0.0);
+{ 58908} GAN502R +GNO3               =       G3A500p +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 58909} GAN502R+HV               =       G1A506X +      GNO2                                   :  0.100E+01*SUN;
+{ 58910} GAN502R+HV               =       GAD4001 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 58911} GAN502R+HV               =       GAD3000 +      GND2000                                :  0.100E+01*SUN;
+{ 58912} G2A504n +GNO                =       G1A506Y +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 58913} G2A504n +GNO                =       GAN502q                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 58914} G2A504n +GHO2               =       GAH505G                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 58915} G2A504n +GNO3               =       G1A506Y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 58916} G2A504n +MEPERO             =  0.340G1A506Y + 0.330GAN502e + 0.330GAN502r                 : ARR( 0.565E-13,  -845., 0.0);
+{ 58917} G2A504n +PERO1              =  0.460G1A506Y + 0.270GAN502e + 0.270GAN502r                 : ARR( 0.434E-13,  -900., 0.0);
+{ 58918} G2A504n +PERO2              =  0.400G1A506Y + 0.300GAN502e + 0.300GAN502r                 : ARR( 0.162E-13, -1400., 0.0);
+{ 58919} G2A504n +PERO3              =  0.460G1A506Y + 0.270GAN502e + 0.270GAN502r                 : ARR( 0.488E-13, -1250., 0.0);
+{ 58920} G2A504n +PERO5              =  0.460G1A506Y + 0.270GAN502e + 0.270GAN502r                 : ARR( 0.183E-11,   450., 0.0);
+{ 58921} G2A504n +PERO6              =  0.300G1A506Y + 0.350GAN502e + 0.350GAN502r                 : ARR( 0.168E-13, -1300., 0.0);
+{ 58922} G2A504n +PERO9              =  0.650G1A506Y + 0.350GAN502r                                : ARR( 0.100E-10,     0., 0.0);
+{ 58923} G3A500p +GHO2               =  0.800GAG5012 + 0.200GAA500c + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 58924} G3A500p +GNO                =       GAD4001 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 58925} G3A500p +GNO2               =       GPA5015                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 58926} G3A500p +GNO3               =       GAD4001 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 58927} G3A500p +MEPERO             =  0.685GAD4001 + 0.315GAA500c + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58928} G3A500p +PERO1              =  0.800GAD4001 + 0.200GAA500c + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58929} G3A500p +PERO2              =  0.750GAD4001 + 0.250GAA500c + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58930} G3A500p +PERO3              =  0.800GAD4001 + 0.200GAA500c + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58931} G3A500p +PERO5              =  0.650GAD4001 + 0.350GAA500c + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58932} G3A500p +PERO6              =  0.650GAD4001 + 0.350GAA500c + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58933} G3A500p +PERO9              =       GAD4001 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 58934} G1A506X                     =       GAD3000 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  5032., 0.0);
+{ 58935} G1A506X                     =       GAD4001 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 58936} G1A506Y                     =       GCO     +      GND400J +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 58937} G1A506Y                     =       GAD2000 +      GND3005 +      GHO2                    : ARR( 0.200E+15,  5475., 0.0);
+{ 58938} GPN502Y                     =       G3N501l +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 58939} GPN502Y +GHO                =       G2P5058                                               : ARR( 0.887E-12,     0., 0.0);
+{ 58940} GPN502Y +GHO                =       GPN5021 +      GHO2                                   : ARR( 0.212E-11,     0., 0.0);
+{ 58941} GPN502Y +GHO                =       G3P500q                                               : ARR( 0.428E-11,     0., 0.0);
+{ 58942} GPN502Y +GNO3               =       G3P500q +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 58943} GPN502Y+HV               =       G3N501l +      GNO2                                   :  0.100E+01*SUN;
+{ 58944} GPN502Y+HV               =       G1P507A +      GNO2                                   :  0.100E+01*SUN;
+{ 58945} GPN502Y+HV               =       GPD4001 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 58946} GPN502Y+HV               =       GPD3000 +      GND2000                                :  0.100E+01*SUN;
+{ 58947} G2P5058 +GNO                =       G1P507B +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 58948} G2P5058 +GNO                =       GPN502t                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 58949} G2P5058 +GHO2               =       GPH505N                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 58950} G2P5058 +GNO3               =       G1P507B +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 58951} G2P5058 +MEPERO             =  0.340G1P507B + 0.330GPN502g + 0.330GPN502o                 : ARR( 0.565E-13,  -845., 0.0);
+{ 58952} G2P5058 +PERO1              =  0.460G1P507B + 0.270GPN502g + 0.270GPN502o                 : ARR( 0.434E-13,  -900., 0.0);
+{ 58953} G2P5058 +PERO2              =  0.400G1P507B + 0.300GPN502g + 0.300GPN502o                 : ARR( 0.162E-13, -1400., 0.0);
+{ 58954} G2P5058 +PERO3              =  0.460G1P507B + 0.270GPN502g + 0.270GPN502o                 : ARR( 0.488E-13, -1250., 0.0);
+{ 58955} G2P5058 +PERO5              =  0.460G1P507B + 0.270GPN502g + 0.270GPN502o                 : ARR( 0.183E-11,   450., 0.0);
+{ 58956} G2P5058 +PERO6              =  0.300G1P507B + 0.350GPN502g + 0.350GPN502o                 : ARR( 0.168E-13, -1300., 0.0);
+{ 58957} G2P5058 +PERO9              =  0.650G1P507B + 0.350GPN502o                                : ARR( 0.100E-10,     0., 0.0);
+{ 58958} G3P500q +GHO2               =  0.800GPG5014 + 0.200GPA500x + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 58959} G3P500q +GNO                =       GPD4001 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 58960} G3P500q +GNO2               =       GPP500a                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 58961} G3P500q +GNO3               =       GPD4001 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 58962} G3P500q +MEPERO             =  0.685GPD4001 + 0.315GPA500x + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58963} G3P500q +PERO1              =  0.800GPD4001 + 0.200GPA500x + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58964} G3P500q +PERO2              =  0.750GPD4001 + 0.250GPA500x + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58965} G3P500q +PERO3              =  0.800GPD4001 + 0.200GPA500x + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58966} G3P500q +PERO5              =  0.650GPD4001 + 0.350GPA500x + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58967} G3P500q +PERO6              =  0.650GPD4001 + 0.350GPA500x + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58968} G3P500q +PERO9              =       GPD4001 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 58969} G1P507A                     =       GPD3000 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  5032., 0.0);
+{ 58970} G1P507A                     =       GPD4001 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 58971} G1P507B                     =       GCO     +      GND400J +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 58972} G1P507B                     =       GPD2000 +      GND3005 +      GHO2                    : ARR( 0.200E+15,  5475., 0.0);
+{ 58973} GNN503J +GHO                =       G3N502j                                               : ARR( 0.901E-11,     0., 0.0);
+{ 58974} GNN503J +GNO3               =       G3N502j +      GHNO3                                  : ARR( 0.240E-13,     0., 0.0);
+{ 58975} GNN503J+HV               =       GCO     +      GND400J +      GHO2    +      GNO2     :  0.200E+01*SUN;
+{ 58976} GNN503J+HV               =       GND2000 +      GDD3002 +      GHO2    +      GNO2     :  0.200E+01*SUN;
+{ 58977} GNN503J+HV               =       G1N507I +      GNO2                                   :  0.200E+01*SUN;
+{ 58978} G3N502j +GHO2               =  0.800GGN502m + 0.200GAN502q + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 58979} G3N502j +GNO                =       GND400J + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 58980} G3N502j +GNO2               =       GPN502t                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 58981} G3N502j +GNO3               =       GND400J + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 58982} G3N502j +MEPERO             =  0.685GND400J + 0.315GAN502q + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58983} G3N502j +PERO1              =  0.800GND400J + 0.200GAN502q + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58984} G3N502j +PERO2              =  0.750GND400J + 0.250GAN502q + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58985} G3N502j +PERO3              =  0.800GND400J + 0.200GAN502q + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58986} G3N502j +PERO5              =  0.650GND400J + 0.350GAN502q + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58987} G3N502j +PERO6              =  0.650GND400J + 0.350GAN502q + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 58988} G3N502j +PERO9              =       GND400J +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 58989} G1N507I                     =       GND3005 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  5032., 0.0);
+{ 58990} G1N507I                     =       GND400J +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 58991} GHN506j +GHO                =       G3H504g                                               : ARR( 0.417E-11,     0., 0.0);
+{ 58992} GHN506j +GHO                =       GHN506v +      GHO2                                   : ARR( 0.656E-11,     0., 0.0);
+{ 58993} GHN506j +GHO                =       GND501Y +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 58994} GHN506j +GHO                =       G3H504h                                               : ARR( 0.208E-10,     0., 0.0);
+{ 58995} GHN506j +GHO                =       G2N506a                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 58996} GHN506j +GNO3               =       G3H504g +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 58997} GHN506j +GNO3               =       G3H504h +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 58998} GHN506j+HV               =       GCO     +      GHD400L +      GHO2    +      GNO2     :  0.100E+01*SUN;
+{ 58999} GHN506j+HV               =       GND2000 +      GDD3002 +      GHO2    +      GHO      :  0.100E+01*SUN;
+{ 59000} GHN506j+HV               =       G1H50Bm +      GNO2                                   :  0.100E+01*SUN;
+{ 59001} GHN506j+HV               =       G1N507I +      GHO                                    :  0.100E+01*SUN;
+{ 59002} GHN506j+HV               =       GND400J +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 59003} G3H504g +GHO2               =  0.800GGH5057 + 0.200GAH505F + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 59004} G3H504g +GNO                =       GHD400L + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 59005} G3H504g +GNO2               =       GPH505M                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 59006} G3H504g +GNO3               =       GHD400L + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 59007} G3H504g +MEPERO             =  0.685GHD400L + 0.315GAH505F + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59008} G3H504g +PERO1              =  0.800GHD400L + 0.200GAH505F + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59009} G3H504g +PERO2              =  0.750GHD400L + 0.250GAH505F + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59010} G3H504g +PERO3              =  0.800GHD400L + 0.200GAH505F + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59011} G3H504g +PERO5              =  0.650GHD400L + 0.350GAH505F + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59012} G3H504g +PERO6              =  0.650GHD400L + 0.350GAH505F + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59013} G3H504g +PERO9              =       GHD400L +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 59014} G3H504h +GHO2               =  0.800GGH5058 + 0.200GAH505G + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 59015} G3H504h +GNO                =       GND400J +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 59016} G3H504h +GNO2               =       GPH505N                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 59017} G3H504h +GNO3               =       GND400J +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 59018} G3H504h +MEPERO             =  0.685GND400J + 0.315GAH505G + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59019} G3H504h +PERO1              =  0.800GND400J + 0.200GAH505G + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59020} G3H504h +PERO2              =  0.750GND400J + 0.250GAH505G + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59021} G3H504h +PERO3              =  0.800GND400J + 0.200GAH505G + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59022} G3H504h +PERO5              =  0.650GND400J + 0.350GAH505G + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59023} G3H504h +PERO6              =  0.650GND400J + 0.350GAH505G + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59024} G3H504h +PERO9              =       GND400J +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 59025} G2N506a +GNO                =       G1N507I +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 59026} G2N506a +GNO                =       GNN503J                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 59027} G2N506a +GHO2               =       GHN506j                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 59028} G2N506a +GNO3               =       G1N507I +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 59029} G2N506a +MEPERO             =  0.340G1N507I + 0.330GND501T + 0.330GND501Y                 : ARR( 0.565E-13,  -845., 0.0);
+{ 59030} G2N506a +PERO1              =  0.460G1N507I + 0.270GND501T + 0.270GND501Y                 : ARR( 0.434E-13,  -900., 0.0);
+{ 59031} G2N506a +PERO2              =  0.400G1N507I + 0.300GND501T + 0.300GND501Y                 : ARR( 0.162E-13, -1400., 0.0);
+{ 59032} G2N506a +PERO3              =  0.460G1N507I + 0.270GND501T + 0.270GND501Y                 : ARR( 0.488E-13, -1250., 0.0);
+{ 59033} G2N506a +PERO5              =  0.460G1N507I + 0.270GND501T + 0.270GND501Y                 : ARR( 0.183E-11,   450., 0.0);
+{ 59034} G2N506a +PERO6              =  0.300G1N507I + 0.350GND501T + 0.350GND501Y                 : ARR( 0.168E-13, -1300., 0.0);
+{ 59035} G2N506a +PERO9              =  0.650G1N507I + 0.350GND501Y                                : ARR( 0.100E-10,     0., 0.0);
+{ 59036} G1H50Bm                     =       GHD3004 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  5032., 0.0);
+{ 59037} G1H50Bm                     =       GHD400L +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 59038} GND501Y +GHO                =       G3N400T +      GCO                                    : ARR( 0.129E-10,     0., 0.0);
+{ 59039} GND501Y +GHO                =       GND501X +      GHO2                                   : ARR( 0.128E-11,     0., 0.0);
+{ 59040} GND501Y +GHO                =       G3N502k                                               : ARR( 0.424E-11,     0., 0.0);
+{ 59041} GND501Y +GNO3               =       G3N400T +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 59042} GND501Y +GNO3               =       G3N502k +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 59043} GND501Y+HV               =       GCO     +      G3N400T +      GHO2                    :  0.100E+01*SUN;
+{ 59044} GND501Y+HV               =       GND400J +      GCO                                    :  0.100E+01*SUN;
+{ 59045} GND501Y+HV               =       GND3004 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 59046} GND501Y+HV               =       G1D501a +      GNO2                                   :  0.100E+01*SUN;
+{ 59047} GND501Y+HV               =       GDD4004 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 59048} G3N502k +GHO2               =  0.800GGN502n + 0.200GAN502s + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 59049} G3N502k +GNO                =       GDD4004 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 59050} G3N502k +GNO2               =       GPN502n                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 59051} G3N502k +GNO3               =       GDD4004 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 59052} G3N502k +MEPERO             =  0.685GDD4004 + 0.315GAN502s + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59053} G3N502k +PERO1              =  0.800GDD4004 + 0.200GAN502s + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59054} G3N502k +PERO2              =  0.750GDD4004 + 0.250GAN502s + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59055} G3N502k +PERO3              =  0.800GDD4004 + 0.200GAN502s + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59056} G3N502k +PERO5              =  0.650GDD4004 + 0.350GAN502s + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59057} G3N502k +PERO6              =  0.650GDD4004 + 0.350GAN502s + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59058} G3N502k +PERO9              =       GDD4004 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 59059} G1D501a                     =       GDD3002 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  4760., 0.0);
+{ 59060} G1D501a                     =       GDD4004 +      GCO     +      GHO2                    : ARR( 0.200E+15,  4861., 0.0);
+{ 59061} GGD500I +GHO                =       G2G503r                                               : ARR( 0.275E-11,     0., 0.0);
+{ 59062} GGD500I +GHO                =       GGD500G +      GHO2                                   : ARR( 0.632E-11,     0., 0.0);
+{ 59063} GGD500I +GHO                =       G3G4001 +      GCO                                    : ARR( 0.127E-10,     0., 0.0);
+{ 59064} GGD500I +GHO                =       G3D500C                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 59065} GGD500I +GNO3               =       G3G4001 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 59066} GGD500I+HV               =       G2D400E +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 59067} GGD500I+HV               =       G3G4001 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 59068} GGD500I+HV               =       GGD4001 +      GCO                                    :  0.100E+01*SUN;
+{ 59069} GGD500I+HV               =       GGO3000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 59070} G2G503r +GNO                =       G1G505O +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 59071} G2G503r +GNO                =       GGN502n                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 59072} G2G503r +GHO2               =       GGH5059                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 59073} G2G503r +GNO3               =       G1G505O +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 59074} G2G503r +MEPERO             =  0.340G1G505O + 0.330GGD500L + 0.330GGD500N                 : ARR( 0.565E-13,  -845., 0.0);
+{ 59075} G2G503r +PERO1              =  0.460G1G505O + 0.270GGD500L + 0.270GGD500N                 : ARR( 0.434E-13,  -900., 0.0);
+{ 59076} G2G503r +PERO2              =  0.400G1G505O + 0.300GGD500L + 0.300GGD500N                 : ARR( 0.162E-13, -1400., 0.0);
+{ 59077} G2G503r +PERO3              =  0.460G1G505O + 0.270GGD500L + 0.270GGD500N                 : ARR( 0.488E-13, -1250., 0.0);
+{ 59078} G2G503r +PERO5              =  0.460G1G505O + 0.270GGD500L + 0.270GGD500N                 : ARR( 0.183E-11,   450., 0.0);
+{ 59079} G2G503r +PERO6              =  0.300G1G505O + 0.350GGD500L + 0.350GGD500N                 : ARR( 0.168E-13, -1300., 0.0);
+{ 59080} G2G503r +PERO9              =  0.650G1G505O + 0.350GGD500N                                : ARR( 0.100E-10,     0., 0.0);
+{ 59081} G1G505O                     =       GCO     +      GDD4004 +      GHO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 59082} G1G505O                     =       GGD2000 +      GDD3002 +      GHO2                    : ARR( 0.200E+15,  5202., 0.0);
+{ 59083} GAD500L +GHO                =       G2A504o                                               : ARR( 0.209E-11,     0., 0.0);
+{ 59084} GAD500L +GHO                =       GAD500G +      GHO2                                   : ARR( 0.648E-11,     0., 0.0);
+{ 59085} GAD500L +GHO                =       G3A4004 +      GCO                                    : ARR( 0.131E-10,     0., 0.0);
+{ 59086} GAD500L +GNO3               =       G3A4004 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 59087} GAD500L+HV               =       G3A4004 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 59088} GAD500L+HV               =       GAD4001 +      GCO                                    :  0.100E+01*SUN;
+{ 59089} GAD500L+HV               =       GAO3000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 59090} G2A504o +GNO                =       G1A506Z +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 59091} G2A504o +GNO                =       GAN502s                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 59092} G2A504o +GHO2               =       GAH505H                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 59093} G2A504o +GNO3               =       G1A506Z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 59094} G2A504o +MEPERO             =  0.340G1A506Z + 0.330GAD500M + 0.330GAD500Q                 : ARR( 0.565E-13,  -845., 0.0);
+{ 59095} G2A504o +PERO1              =  0.460G1A506Z + 0.270GAD500M + 0.270GAD500Q                 : ARR( 0.434E-13,  -900., 0.0);
+{ 59096} G2A504o +PERO2              =  0.400G1A506Z + 0.300GAD500M + 0.300GAD500Q                 : ARR( 0.162E-13, -1400., 0.0);
+{ 59097} G2A504o +PERO3              =  0.460G1A506Z + 0.270GAD500M + 0.270GAD500Q                 : ARR( 0.488E-13, -1250., 0.0);
+{ 59098} G2A504o +PERO5              =  0.460G1A506Z + 0.270GAD500M + 0.270GAD500Q                 : ARR( 0.183E-11,   450., 0.0);
+{ 59099} G2A504o +PERO6              =  0.300G1A506Z + 0.350GAD500M + 0.350GAD500Q                 : ARR( 0.168E-13, -1300., 0.0);
+{ 59100} G2A504o +PERO9              =  0.650G1A506Z + 0.350GAD500Q                                : ARR( 0.100E-10,     0., 0.0);
+{ 59101} G1A506Z                     =       GCO     +      GDD4004 +      GHO                     : ARR( 0.200E+15,  4342., 0.0);
+{ 59102} G1A506Z                     =       GAD2000 +      GDD3002 +      GHO2                    : ARR( 0.200E+15,  5202., 0.0);
+{ 59103} GPD500J                     =       G3D500C +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 59104} GPD500J +GHO                =       G2P5059                                               : ARR( 0.275E-11,     0., 0.0);
+{ 59105} GPD500J +GHO                =       GPD500F +      GHO2                                   : ARR( 0.632E-11,     0., 0.0);
+{ 59106} GPD500J +GHO                =       G3P4004 +      GCO                                    : ARR( 0.127E-10,     0., 0.0);
+{ 59107} GPD500J +GNO3               =       G3P4004 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 59108} GPD500J+HV               =       G3D500C +      GNO2                                   :  0.100E+01*SUN;
+{ 59109} GPD500J+HV               =       G3P4004 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 59110} GPD500J+HV               =       GPD4001 +      GCO                                    :  0.100E+01*SUN;
+{ 59111} GPD500J+HV               =       GPO3000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 59112} G2P5059 +GNO                =       G1P507C +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 59113} G2P5059 +GNO                =       GPN502n                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 59114} G2P5059 +GHO2               =       GPH505O                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 59115} G2P5059 +GNO3               =       G1P507C +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 59116} G2P5059 +MEPERO             =  0.340G1P507C + 0.330GPD500L + 0.330GPD500N                 : ARR( 0.565E-13,  -845., 0.0);
+{ 59117} G2P5059 +PERO1              =  0.460G1P507C + 0.270GPD500L + 0.270GPD500N                 : ARR( 0.434E-13,  -900., 0.0);
+{ 59118} G2P5059 +PERO2              =  0.400G1P507C + 0.300GPD500L + 0.300GPD500N                 : ARR( 0.162E-13, -1400., 0.0);
+{ 59119} G2P5059 +PERO3              =  0.460G1P507C + 0.270GPD500L + 0.270GPD500N                 : ARR( 0.488E-13, -1250., 0.0);
+{ 59120} G2P5059 +PERO5              =  0.460G1P507C + 0.270GPD500L + 0.270GPD500N                 : ARR( 0.183E-11,   450., 0.0);
+{ 59121} G2P5059 +PERO6              =  0.300G1P507C + 0.350GPD500L + 0.350GPD500N                 : ARR( 0.168E-13, -1300., 0.0);
+{ 59122} G2P5059 +PERO9              =  0.650G1P507C + 0.350GPD500N                                : ARR( 0.100E-10,     0., 0.0);
+{ 59123} G1P507C                     =       GCO     +      GDD4004 +      GNO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 59124} G1P507C                     =       GPD2000 +      GDD3002 +      GHO2                    : ARR( 0.200E+15,  5202., 0.0);
+{ 59125} GDD500E +GHO                =       G3D4006 +      GCO                                    : ARR( 0.255E-10,     0., 0.0);
+{ 59126} GDD500E +GHO                =       GDD500F +      GHO2                                   : ARR( 0.385E-11,     0., 0.0);
+{ 59127} GDD500E +GNO3               =       G3D4006 +      GHNO3   +      GCO                     : ARR( 0.480E-14,     0., 0.0);
+{ 59128} GDD500E+HV               =       GCO     +      G3D4006 +      GHO2                    :  0.200E+01*SUN;
+{ 59129} GDD500E+HV               =       GDD4004 +      GCO                                    :  0.200E+01*SUN;
+{ 59130} GDD500E+HV               =       GDK3001 +      GCO     +      GCO                     :  0.200E+01*SUN;
+{ 59131} GAN502S +GHO                =       GAN502U +      GNO2                                   : ARR( 0.338E-13,     0., 0.0);
+{ 59132} GAN502S +GHO                =       GNN400a +      GNO2    +      GCO2                    : ARR( 0.542E-12,     0., 0.0);
+{ 59133} GAN502S+HV               =       G1A5036 +      GNO2                                   :  0.100E+01*SUN;
+{ 59134} GAN502S+HV               =       G3A3001 +      GND2000 +      GNO2                    :  0.100E+01*SUN;
+{ 59135} GAN502S+HV               =       G1A5032 +      GNO2                                   :  0.100E+01*SUN;
+{ 59136} GAN502S+HV               =       G1A505M +      GNO2                                   :  0.100E+01*SUN;
+{ 59137} GAH503R +GHO                =       GAN502T +      GHO                                    : ARR( 0.512E-11,     0., 0.0);
+{ 59138} GAH503R +GHO                =       G2A502a                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 59139} GAH503R +GHO                =       GHN4018 +      GNO2    +      GCO2                    : ARR( 0.530E-12,     0., 0.0);
+{ 59140} GAH503R+HV               =       G1A506a +      GNO2                                   :  0.100E+01*SUN;
+{ 59141} GAH503R+HV               =       G3A3001 +      GND2000 +      GHO                     :  0.100E+01*SUN;
+{ 59142} GAH503R+HV               =       G1A5032 +      GHO                                    :  0.100E+01*SUN;
+{ 59143} GAH503R+HV               =       G1A506b +      GNO2                                   :  0.100E+01*SUN;
+{ 59144} G1A506a                     =       GAD2000 +      G3H3002                                : ARR( 0.200E+15,  5359., 0.0);
+{ 59145} G1A506b +OXYGEN             =       GAH504u +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 59146} G1A506b                     =       GAN400b +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5784., 0.0);
+{ 59147} GAN502T +GHO                =       GAN502W +      GNO2                                   : ARR( 0.340E-13,     0., 0.0);
+{ 59148} GAN502T +GHO                =       GND400M +      GNO2    +      GCO2                    : ARR( 0.546E-12,     0., 0.0);
+{ 59149} GAN502T+HV               =       G1A5039 +      GNO2                                   :  0.100E+01*SUN;
+{ 59150} GAN502T+HV               =       G3A3001 +      G3N2000                                :  0.100E+01*SUN;
+{ 59151} GAN502T+HV               =       G1A505P +      GNO2                                   :  0.100E+01*SUN;
+{ 59152} GAN502U +GHO                =       G3N3003 +      GCO2    +      GCO                     : ARR( 0.544E-12,     0., 0.0);
+{ 59153} GAN502U+HV               =       GNN400a +      GCO2                                   :  0.100E+01*SUN;
+{ 59154} GAN502U+HV               =       GCO     +      G3N3003 +      GHO     +      GCO      :  0.100E+01*SUN;
+{ 59155} GAN502U+HV               =       G1A5034 +      GNO2                                   :  0.100E+01*SUN;
+{ 59156} GAN502U+HV               =       G1A505O +      GNO2                                   :  0.100E+01*SUN;
+{ 59157} GAH503S +GHO                =       GAN502W +      GHO                                    : ARR( 0.511E-11,     0., 0.0);
+{ 59158} GAH503S +GHO                =       G2A502b                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 59159} GAH503S +GHO                =       G3H3002 +      GCO2    +      GCO                     : ARR( 0.528E-12,     0., 0.0);
+{ 59160} GAH503S+HV               =       GHN4018 +      GCO2                                   :  0.100E+01*SUN;
+{ 59161} GAH503S+HV               =       GCO     +      G3H3002 +      GHO     +      GCO      :  0.100E+01*SUN;
+{ 59162} GAH503S+HV               =       G1A5034 +      GHO                                    :  0.100E+01*SUN;
+{ 59163} GAH503S+HV               =       G1A506c +      GNO2                                   :  0.100E+01*SUN;
+{ 59164} G1A506c +OXYGEN             =       GAH504v +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 59165} G1A506c                     =       GAD4008 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5364., 0.0);
+{ 59166} GAN502W +GHO                =       GAD500P +      GNO2                                   : ARR( 0.280E-13,     0., 0.0);
+{ 59167} GAN502W +GHO                =       G3N2000 +      GCO2    + 2.000GCO                     : ARR( 0.520E-12,     0., 0.0);
+{ 59168} GAN502W+HV               =       GND400M +      GCO2                                   :  0.100E+01*SUN;
+{ 59169} GAN502W+HV               =       GCO     +      G3N2000 +      GHO     + 2.000GCO      :  0.100E+01*SUN;
+{ 59170} GAN502W+HV               =       GCO     +      G3N2000 +      GHO     + 2.000GCO      :  0.100E+01*SUN;
+{ 59171} GAN502W+HV               =       G1A505Q +      GNO2                                   :  0.100E+01*SUN;
+{ 59172} GAH503T +GHO                =       GAN502U +      GHO                                    : ARR( 0.118E-10,     0., 0.0);
+{ 59173} GAH503T +GHO                =       G2A502c                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 59174} GAH503T+HV               =       G1A5036 +      GHO                                    :  0.100E+01*SUN;
+{ 59175} GAH503T+HV               =       G3A3003 +      GND2000 +      GNO2                    :  0.100E+01*SUN;
+{ 59176} GAH503T+HV               =       G1A506d +      GNO2                                   :  0.100E+01*SUN;
+{ 59177} GAH503T+HV               =       G1A506e +      GNO2                                   :  0.100E+01*SUN;
+{ 59178} G1A506d                     =       G3A3003 +      GND2000                                : ARR( 0.200E+15,  3775., 0.0);
+{ 59179} G1A506e +OXYGEN             =       GAH505I +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 59180} G1A506e                     =       GAN5023 +      GHO                                    : ARR( 0.800E+11,  4016., 0.0);
+{ 59181} GAN502X +GHO                =       GAN502U +      GHO2                                   : ARR( 0.297E-11,     0., 0.0);
+{ 59182} GAN502X +GHO                =       GNN400a +      GHO2    +      GCO2                    : ARR( 0.545E-12,     0., 0.0);
+{ 59183} GAN502X+HV               =       G3A3002 +      GND2000 +      GNO2                    :  0.100E+01*SUN;
+{ 59184} GAN502X+HV               =       G1A506f +      GNO2                                   :  0.100E+01*SUN;
+{ 59185} GAN502X+HV               =       G1A506g +      GNO2                                   :  0.100E+01*SUN;
+{ 59186} G1A506f                     =       G3A3002 +      GND2000                                : ARR( 0.200E+15,  3775., 0.0);
+{ 59187} G1A506g +OXYGEN             =       GAN502t +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 59188} G1A506g                     =       GAN5023 +      GHO2                                   : ARR( 0.800E+11,  4363., 0.0);
+{ 59189} G1A506g                     =       GAD4006 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7323., 0.0);
+{ 59190} GAN502Y +GHO                =       G2A504p                                               : ARR( 0.392E-12,     0., 0.0);
+{ 59191} GAN502Y +GHO                =       G3A500q                                               : ARR( 0.419E-11,     0., 0.0);
+{ 59192} GAN502Y +GHO                =       G2N4019 +      GCO2                                   : ARR( 0.524E-12,     0., 0.0);
+{ 59193} GAN502Y +GNO3               =       G3A500q +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 59194} GAN502Y+HV               =       G3A3000 +      GDD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 59195} GAN502Y+HV               =       G1A506h +      GNO2                                   :  0.100E+01*SUN;
+{ 59196} GAN502Y+HV               =       GAD4003 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 59197} G2A504p +GNO                =       G1A506i +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 59198} G2A504p +GNO                =       GAN502n                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 59199} G2A504p +GHO2               =       GAH505I                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 59200} G2A504p +GNO3               =       G1A506i +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 59201} G2A504p +MEPERO             =  0.340G1A506i + 0.330GAN502t + 0.330GAN502o                 : ARR( 0.565E-13,  -845., 0.0);
+{ 59202} G2A504p +PERO1              =  0.460G1A506i + 0.270GAN502t + 0.270GAN502o                 : ARR( 0.434E-13,  -900., 0.0);
+{ 59203} G2A504p +PERO2              =  0.400G1A506i + 0.300GAN502t + 0.300GAN502o                 : ARR( 0.162E-13, -1400., 0.0);
+{ 59204} G2A504p +PERO3              =  0.460G1A506i + 0.270GAN502t + 0.270GAN502o                 : ARR( 0.488E-13, -1250., 0.0);
+{ 59205} G2A504p +PERO5              =  0.460G1A506i + 0.270GAN502t + 0.270GAN502o                 : ARR( 0.183E-11,   450., 0.0);
+{ 59206} G2A504p +PERO6              =  0.300G1A506i + 0.350GAN502t + 0.350GAN502o                 : ARR( 0.168E-13, -1300., 0.0);
+{ 59207} G2A504p +PERO9              =  0.650G1A506i + 0.350GAN502o                                : ARR( 0.100E-10,     0., 0.0);
+{ 59208} G3A500q +GHO2               =  0.800GAG500e + 0.200GAA500R + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 59209} G3A500q +GNO                =       GAD4003 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 59210} G3A500q +GNO2               =       GPA500n                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 59211} G3A500q +GNO3               =       GAD4003 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 59212} G3A500q +MEPERO             =  0.685GAD4003 + 0.315GAA500R + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59213} G3A500q +PERO1              =  0.800GAD4003 + 0.200GAA500R + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59214} G3A500q +PERO2              =  0.750GAD4003 + 0.250GAA500R + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59215} G3A500q +PERO3              =  0.800GAD4003 + 0.200GAA500R + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59216} G3A500q +PERO5              =  0.650GAD4003 + 0.350GAA500R + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59217} G3A500q +PERO6              =  0.650GAD4003 + 0.350GAA500R + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59218} G3A500q +PERO9              =       GAD4003 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 59219} G1A506h                     =       G3A3000 +      GDD2000                                : ARR( 0.200E+15,  4865., 0.0);
+{ 59220} G1A506i                     =       GCO     +      GND400N +      GHO                     : ARR( 0.200E+15,  6762., 0.0);
+{ 59221} G1A506i                     =       GAD2000 +      G3N3005                                : ARR( 0.200E+15,  6450., 0.0);
+{ 59222} GAH503U +GHO                =       GAN5023 +      GHO                                    : ARR( 0.125E-10,     0., 0.0);
+{ 59223} GAH503U +GHO                =       G2A502d                                               : ARR( 0.210E-11,  -190., 0.0);
+{ 59224} GAH503U+HV               =       G1A506j +      GNO2                                   :  0.100E+01*SUN;
+{ 59225} GAH503U+HV               =       G3N3004 +      GAD2000 +      GHO                     :  0.100E+01*SUN;
+{ 59226} GAH503U+HV               =       G1A5037 +      GHO                                    :  0.100E+01*SUN;
+{ 59227} G1A506j                     =       GDO2000 +      G3A3003                                : ARR( 0.200E+15,  3778., 0.0);
+{ 59228} GAN502Z +GHO                =       GAN502t +      GHO2                                   : ARR( 0.872E-12,     0., 0.0);
+{ 59229} GAN502Z +GHO                =       GAN5023 +      GHO2                                   : ARR( 0.307E-11,     0., 0.0);
+{ 59230} GAN502Z +GHO                =       GND400K +      GHO2    +      GCO2                    : ARR( 0.564E-12,     0., 0.0);
+{ 59231} GAN502Z+HV               =       G1A506k +      GNO2                                   :  0.100E+01*SUN;
+{ 59232} GAN502Z+HV               =       G3N3004 +      GAD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 59233} G1A506k                     =       GDO2000 +      G3A3002                                : ARR( 0.200E+15,  3778., 0.0);
+{ 59234} GAH503W +GHO                =       GAD500G +      GHO                                    : ARR( 0.162E-10,     0., 0.0);
+{ 59235} GAH503W +GHO                =       G3A500r                                               : ARR( 0.695E-10,     0., 0.0);
+{ 59236} GAH503W +GNO3               =       G3A500r +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 59237} GAH503W+HV               =       G3A3000 +      GDD2000 +      GHO                     :  0.100E+01*SUN;
+{ 59238} GAH503W+HV               =       G1A506h +      GHO                                    :  0.100E+01*SUN;
+{ 59239} GAH503W+HV               =       GAD4003 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 59240} G3A500r +GHO2               =  0.800GAG500f + 0.200GAA500S + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 59241} G3A500r +GNO                =       GAD4003 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 59242} G3A500r +GNO2               =       GPA500o                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 59243} G3A500r +GNO3               =       GAD4003 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 59244} G3A500r +MEPERO             =  0.685GAD4003 + 0.315GAA500S + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59245} G3A500r +PERO1              =  0.800GAD4003 + 0.200GAA500S + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59246} G3A500r +PERO2              =  0.750GAD4003 + 0.250GAA500S + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59247} G3A500r +PERO3              =  0.800GAD4003 + 0.200GAA500S + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59248} G3A500r +PERO5              =  0.650GAD4003 + 0.350GAA500S + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59249} G3A500r +PERO6              =  0.650GAD4003 + 0.350GAA500S + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59250} G3A500r +PERO9              =       GAD4003 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 59251} GAH503X +GHO                =       GAN502W +      GHO                                    : ARR( 0.118E-10,     0., 0.0);
+{ 59252} GAH503X +GHO                =       G2A502e                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 59253} GAH503X+HV               =       G1A5039 +      GHO                                    :  0.100E+01*SUN;
+{ 59254} GAH503X+HV               =       G3A3003 +      G3N2000                                :  0.100E+01*SUN;
+{ 59255} GAH503X+HV               =       G1A506l +      GNO2                                   :  0.100E+01*SUN;
+{ 59256} G1A506l                     =       G3A3003 +      GCH2O   +      GCO                     : ARR( 0.200E+15,  3897., 0.0);
+{ 59257} GAN502a +GHO                =       GAN502W +      GHO2                                   : ARR( 0.298E-11,     0., 0.0);
+{ 59258} GAN502a +GHO                =       GND400M +      GHO2    +      GCO2                    : ARR( 0.546E-12,     0., 0.0);
+{ 59259} GAN502a+HV               =       G3A3002 +      G3N2000                                :  0.100E+01*SUN;
+{ 59260} GAN502a+HV               =       G1A506m +      GNO2                                   :  0.100E+01*SUN;
+{ 59261} G1A506m                     =       G3A3002 +      GCH2O   +      GCO                     : ARR( 0.200E+15,  3897., 0.0);
+{ 59262} GPN502Z                     =       G3N501z +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 59263} GPN502Z +GHO                =       GPN502p +      GNO2                                   : ARR( 0.919E-14,     0., 0.0);
+{ 59264} GPN502Z +GHO                =       GPN502c +      GNO2                                   : ARR( 0.144E-13,     0., 0.0);
+{ 59265} GPN502Z +GHO                =       GPN502b +      GNO2                                   : ARR( 0.438E-13,     0., 0.0);
+{ 59266} GPN502Z+HV               =       G1P505v +      GNO2                                   :  0.100E+01*SUN;
+{ 59267} GPN502Z+HV               =       G1P503I +      GNO2                                   :  0.100E+01*SUN;
+{ 59268} GPN502Z+HV               =       G3N3003 +      GPD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 59269} GPN502Z+HV               =       G1P503E +      GNO2                                   :  0.100E+01*SUN;
+{ 59270} GPN502Z+HV               =       G3N501z +      GNO2                                   :  0.100E+01*SUN;
+{ 59271} GPH503W                     =       G3H504M +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 59272} GPH503W +GHO                =       GPN502b +      GHO                                    : ARR( 0.153E-10,     0., 0.0);
+{ 59273} GPH503W +GHO                =       G2P502e                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 59274} GPH503W+HV               =       G1P507D +      GNO2                                   :  0.100E+01*SUN;
+{ 59275} GPH503W+HV               =       G1P507E +      GNO2                                   :  0.100E+01*SUN;
+{ 59276} GPH503W+HV               =       G3N3003 +      GPD2000 +      GHO                     :  0.100E+01*SUN;
+{ 59277} GPH503W+HV               =       G1P503E +      GHO                                    :  0.100E+01*SUN;
+{ 59278} GPH503W+HV               =       G3H504M +      GNO2                                   :  0.100E+01*SUN;
+{ 59279} G1P507D +OXYGEN             =       GPH5053 +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 59280} G1P507D                     =       GPN5027 +      GHO                                    : ARR( 0.800E+11,  3882., 0.0);
+{ 59281} G1P507E                     =       GND2000 +      G3P3003                                : ARR( 0.200E+15,  3775., 0.0);
+{ 59282} GPN502a                     =       G3N5022 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 59283} GPN502a +GHO                =       GPN502b +      GHO2                                   : ARR( 0.399E-11,     0., 0.0);
+{ 59284} GPN502a+HV               =       G1P507F +      GNO2                                   :  0.100E+01*SUN;
+{ 59285} GPN502a+HV               =       G1P507G +      GNO2                                   :  0.100E+01*SUN;
+{ 59286} GPN502a+HV               =       G3N3003 +      GPD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 59287} GPN502a+HV               =       G3N5022 +      GNO2                                   :  0.100E+01*SUN;
+{ 59288} G1P507F +OXYGEN             =       GPN502q +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 59289} G1P507F                     =       GPN5027 +      GHO2                                   : ARR( 0.800E+11,  4228., 0.0);
+{ 59290} G1P507F                     =       GPD4007 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7323., 0.0);
+{ 59291} G1P507G                     =       GND2000 +      G3P3002                                : ARR( 0.200E+15,  3775., 0.0);
+{ 59292} GPN502b                     =       G3N502l +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 59293} GPN502b +GHO                =       GPN502r +      GNO2                                   : ARR( 0.919E-14,     0., 0.0);
+{ 59294} GPN502b +GHO                =       GPN502e +      GNO2                                   : ARR( 0.144E-13,     0., 0.0);
+{ 59295} GPN502b+HV               =       G1P505x +      GNO2                                   :  0.100E+01*SUN;
+{ 59296} GPN502b+HV               =       G1P503K +      GNO2                                   :  0.100E+01*SUN;
+{ 59297} GPN502b+HV               =       G3N3003 +      GCO     +      GNO2    +      GCO      :  0.100E+01*SUN;
+{ 59298} GPN502b+HV               =       G3N3003 +      GCO     +      GCO     +      GNO2     :  0.100E+01*SUN;
+{ 59299} G3N502l +GHO2               =  0.800GGN502X + 0.200GAN502U + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 59300} G3N502l +GNO                =       G3N3003 +      GNO2    +      GCO2    +      GCO      : ARR( 0.810E-11,  -270., 0.0);
+{ 59301} G3N502l +GNO2               =       GPN502b                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 59302} G3N502l +GNO3               =       G3N3003 +      GNO2    +      GCO2    +      GCO      : ARR( 0.500E-11,     0., 0.0);
+{ 59303} G3N502l +MEPERO             =  0.685G3N3003 + 0.315GAN502U + 0.685GCO2    + 0.685GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 59304} G3N502l +PERO1              =  0.800G3N3003 + 0.200GAN502U + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 59305} G3N502l +PERO2              =  0.750G3N3003 + 0.250GAN502U + 0.750GCO2    + 0.750GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 59306} G3N502l +PERO3              =  0.800G3N3003 + 0.200GAN502U + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 59307} G3N502l +PERO5              =  0.650G3N3003 + 0.350GAN502U + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 59308} G3N502l +PERO6              =  0.650G3N3003 + 0.350GAN502U + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 59309} G3N502l +PERO9              =       G3N3003 +      GCO2    +      GCO                     : ARR( 0.500E-11,  -500., 0.0);
+{ 59310} GPH503X                     =       G3H504L +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 59311} GPH503X +GHO                =       GPN502c +      GHO                                    : ARR( 0.514E-11,     0., 0.0);
+{ 59312} GPH503X +GHO                =       G2P502h                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 59313} GPH503X+HV               =       G1P507H +      GNO2                                   :  0.100E+01*SUN;
+{ 59314} GPH503X+HV               =       G1P503I +      GHO                                    :  0.100E+01*SUN;
+{ 59315} GPH503X+HV               =       G3H3002 +      GPD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 59316} GPH503X+HV               =       G1P503G +      GNO2                                   :  0.100E+01*SUN;
+{ 59317} GPH503X+HV               =       G3H504L +      GNO2                                   :  0.100E+01*SUN;
+{ 59318} G1P507H +OXYGEN             =       GPH5056 +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 59319} G1P507H                     =       GPN400b +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5784., 0.0);
+{ 59320} GPH503Y                     =       G3H503M +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 59321} GPH503Y +GHO                =       GPH503c +      GHO                                    : ARR( 0.505E-11,     0., 0.0);
+{ 59322} GPH503Y +GHO                =       GPH503a +      GHO                                    : ARR( 0.154E-10,     0., 0.0);
+{ 59323} GPH503Y +GHO                =       G2P505A                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 59324} GPH503Y +GHO                =       G2P502f                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 59325} GPH503Y+HV               =       G1P507I +      GNO2                                   :  0.100E+01*SUN;
+{ 59326} GPH503Y+HV               =       G1P507E +      GHO                                    :  0.100E+01*SUN;
+{ 59327} GPH503Y+HV               =       G3H3002 +      GPD2000 +      GHO                     :  0.100E+01*SUN;
+{ 59328} GPH503Y+HV               =       G1P503G +      GHO                                    :  0.100E+01*SUN;
+{ 59329} GPH503Y+HV               =       G3H503M +      GNO2                                   :  0.100E+01*SUN;
+{ 59330} G2P505A +GNO                =       G1P507E +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 59331} G2P505A +GNO                =       GPH503W                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 59332} G2P505A +GHO2               =       GPH503Y                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 59333} G2P505A +GNO3               =       G1P507E +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 59334} G2P505A +MEPERO             =  0.340G1P507E + 0.330GPH501o + 0.330GPH503c                 : ARR( 0.565E-13,  -845., 0.0);
+{ 59335} G2P505A +PERO1              =  0.460G1P507E + 0.270GPH501o + 0.270GPH503c                 : ARR( 0.434E-13,  -900., 0.0);
+{ 59336} G2P505A +PERO2              =  0.400G1P507E + 0.300GPH501o + 0.300GPH503c                 : ARR( 0.162E-13, -1400., 0.0);
+{ 59337} G2P505A +PERO3              =  0.460G1P507E + 0.270GPH501o + 0.270GPH503c                 : ARR( 0.488E-13, -1250., 0.0);
+{ 59338} G2P505A +PERO5              =  0.460G1P507E + 0.270GPH501o + 0.270GPH503c                 : ARR( 0.183E-11,   450., 0.0);
+{ 59339} G2P505A +PERO6              =  0.300G1P507E + 0.350GPH501o + 0.350GPH503c                 : ARR( 0.168E-13, -1300., 0.0);
+{ 59340} G2P505A +PERO9              =  0.650G1P507E + 0.350GPH503c                                : ARR( 0.100E-10,     0., 0.0);
+{ 59341} G1P507I +OXYGEN             =       GPH505P +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 59342} G1P507I                     =       GPH502d +      GHO                                    : ARR( 0.800E+11,  3882., 0.0);
+{ 59343} G1P507I                     =       GPH400v +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5784., 0.0);
+{ 59344} GPH503Z                     =       G3H503Q +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 59345} GPH503Z +GHO                =       GPN502d +      GHO                                    : ARR( 0.514E-11,     0., 0.0);
+{ 59346} GPH503Z +GHO                =       GPH503a +      GHO2                                   : ARR( 0.392E-11,     0., 0.0);
+{ 59347} GPH503Z +GHO                =       G2P505B                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 59348} GPH503Z+HV               =       G1P507J +      GNO2                                   :  0.100E+01*SUN;
+{ 59349} GPH503Z+HV               =       G1P507G +      GHO                                    :  0.100E+01*SUN;
+{ 59350} GPH503Z+HV               =       G3H3002 +      GPD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 59351} GPH503Z+HV               =       G3H503Q +      GNO2                                   :  0.100E+01*SUN;
+{ 59352} G2P505B +GNO                =       G1P507G +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 59353} G2P505B +GNO                =       GPN502a                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 59354} G2P505B +GHO2               =       GPH503Z                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 59355} G2P505B +GNO3               =       G1P507G +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 59356} G2P505B +MEPERO             =  0.340G1P507G + 0.330GPN501U + 0.330GPN502d                 : ARR( 0.565E-13,  -845., 0.0);
+{ 59357} G2P505B +PERO1              =  0.460G1P507G + 0.270GPN501U + 0.270GPN502d                 : ARR( 0.434E-13,  -900., 0.0);
+{ 59358} G2P505B +PERO2              =  0.400G1P507G + 0.300GPN501U + 0.300GPN502d                 : ARR( 0.162E-13, -1400., 0.0);
+{ 59359} G2P505B +PERO3              =  0.460G1P507G + 0.270GPN501U + 0.270GPN502d                 : ARR( 0.488E-13, -1250., 0.0);
+{ 59360} G2P505B +PERO5              =  0.460G1P507G + 0.270GPN501U + 0.270GPN502d                 : ARR( 0.183E-11,   450., 0.0);
+{ 59361} G2P505B +PERO6              =  0.300G1P507G + 0.350GPN501U + 0.350GPN502d                 : ARR( 0.168E-13, -1300., 0.0);
+{ 59362} G2P505B +PERO9              =  0.650G1P507G + 0.350GPN502d                                : ARR( 0.100E-10,     0., 0.0);
+{ 59363} G1P507J +OXYGEN             =       GPH503x +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 59364} G1P507J                     =       GPH502d +      GHO2                                   : ARR( 0.800E+11,  4228., 0.0);
+{ 59365} G1P507J                     =       GPD4007 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5784., 0.0);
+{ 59366} GPH503a                     =       G3H504i +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 59367} GPH503a +GHO                =       GPN502e +      GHO                                    : ARR( 0.511E-11,     0., 0.0);
+{ 59368} GPH503a +GHO                =       G2P502i                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 59369} GPH503a+HV               =       G1P507K +      GNO2                                   :  0.100E+01*SUN;
+{ 59370} GPH503a+HV               =       G1P503K +      GHO                                    :  0.100E+01*SUN;
+{ 59371} GPH503a+HV               =       G3H3002 +      GCO     +      GNO2    +      GCO      :  0.100E+01*SUN;
+{ 59372} GPH503a+HV               =       G3H3002 +      GCO     +      GCO     +      GNO2     :  0.100E+01*SUN;
+{ 59373} G3H504i +GHO2               =  0.800GGH5056 + 0.200GAH503S + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 59374} G3H504i +GNO                =       G3H3002 +      GNO2    +      GCO2    +      GCO      : ARR( 0.810E-11,  -270., 0.0);
+{ 59375} G3H504i +GNO2               =       GPH503a                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 59376} G3H504i +GNO3               =       G3H3002 +      GNO2    +      GCO2    +      GCO      : ARR( 0.500E-11,     0., 0.0);
+{ 59377} G3H504i +MEPERO             =  0.685G3H3002 + 0.315GAH503S + 0.685GCO2    + 0.685GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 59378} G3H504i +PERO1              =  0.800G3H3002 + 0.200GAH503S + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 59379} G3H504i +PERO2              =  0.750G3H3002 + 0.250GAH503S + 0.750GCO2    + 0.750GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 59380} G3H504i +PERO3              =  0.800G3H3002 + 0.200GAH503S + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 59381} G3H504i +PERO5              =  0.650G3H3002 + 0.350GAH503S + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 59382} G3H504i +PERO6              =  0.650G3H3002 + 0.350GAH503S + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 59383} G3H504i +PERO9              =       G3H3002 +      GCO2    +      GCO                     : ARR( 0.500E-11,  -500., 0.0);
+{ 59384} G1P507K +OXYGEN             =       GPH5057 +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 59385} G1P507K                     =       GPD4008 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5364., 0.0);
+{ 59386} GPH503b                     =       G3H502T +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 59387} GPH503b +GHO                =       GPD500F +      GHO                                    : ARR( 0.161E-10,     0., 0.0);
+{ 59388} GPH503b +GHO                =       G3P500r                                               : ARR( 0.692E-10,     0., 0.0);
+{ 59389} GPH503b +GNO3               =       G3P500r +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 59390} GPH503b+HV               =       G3H502T +      GNO2                                   :  0.100E+01*SUN;
+{ 59391} GPH503b+HV               =       G3P3000 +      GDD2000 +      GHO                     :  0.100E+01*SUN;
+{ 59392} GPH503b+HV               =       G1P505t +      GHO                                    :  0.100E+01*SUN;
+{ 59393} GPH503b+HV               =       GPD4003 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 59394} G3P500r +GHO2               =  0.800GPG500c + 0.200GPA500l + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 59395} G3P500r +GNO                =       GPD4003 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 59396} G3P500r +GNO2               =       GPP500Q                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 59397} G3P500r +GNO3               =       GPD4003 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 59398} G3P500r +MEPERO             =  0.685GPD4003 + 0.315GPA500l + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59399} G3P500r +PERO1              =  0.800GPD4003 + 0.200GPA500l + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59400} G3P500r +PERO2              =  0.750GPD4003 + 0.250GPA500l + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59401} G3P500r +PERO3              =  0.800GPD4003 + 0.200GPA500l + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59402} G3P500r +PERO5              =  0.650GPD4003 + 0.350GPA500l + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59403} G3P500r +PERO6              =  0.650GPD4003 + 0.350GPA500l + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59404} G3P500r +PERO9              =       GPD4003 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 59405} GPN502c                     =       G3N5021 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 59406} GPN502c +GHO                =       GPN502s +      GNO2                                   : ARR( 0.280E-13,     0., 0.0);
+{ 59407} GPN502c +GHO                =       GPN502e +      GNO2                                   : ARR( 0.438E-13,     0., 0.0);
+{ 59408} GPN502c+HV               =       G1P5061 +      GNO2                                   :  0.100E+01*SUN;
+{ 59409} GPN502c+HV               =       G3N2000 +      G3P3001                                :  0.100E+01*SUN;
+{ 59410} GPN502c+HV               =       G1P503H +      GNO2                                   :  0.100E+01*SUN;
+{ 59411} GPN502c+HV               =       G3N5021 +      GNO2                                   :  0.100E+01*SUN;
+{ 59412} GPH503c                     =       G3H503b +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 59413} GPH503c +GHO                =       GPN502e +      GHO                                    : ARR( 0.153E-10,     0., 0.0);
+{ 59414} GPH503c +GHO                =       G2P502g                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 59415} GPH503c+HV               =       G1P507L +      GNO2                                   :  0.100E+01*SUN;
+{ 59416} GPH503c+HV               =       G3N2000 +      G3P3003                                :  0.100E+01*SUN;
+{ 59417} GPH503c+HV               =       G1P503H +      GHO                                    :  0.100E+01*SUN;
+{ 59418} GPH503c+HV               =       G3H503b +      GNO2                                   :  0.100E+01*SUN;
+{ 59419} G1P507L                     =       G3P3003 +      GCH2O   +      GCO                     : ARR( 0.200E+15,  3897., 0.0);
+{ 59420} GPN502d                     =       G3N5028 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 59421} GPN502d +GHO                =       GPN502e +      GHO2                                   : ARR( 0.400E-11,     0., 0.0);
+{ 59422} GPN502d+HV               =       G1P507M +      GNO2                                   :  0.100E+01*SUN;
+{ 59423} GPN502d+HV               =       G3N2000 +      G3P3002                                :  0.100E+01*SUN;
+{ 59424} GPN502d+HV               =       G3N5028 +      GNO2                                   :  0.100E+01*SUN;
+{ 59425} G1P507M                     =       G3P3002 +      GCH2O   +      GCO                     : ARR( 0.200E+15,  3897., 0.0);
+{ 59426} GPN502e                     =       G3N502m +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 59427} GPN502e +GHO                =       GPD500O +      GNO2                                   : ARR( 0.280E-13,     0., 0.0);
+{ 59428} GPN502e+HV               =       G1P5062 +      GNO2                                   :  0.100E+01*SUN;
+{ 59429} GPN502e+HV               =       G3N2000 +      GCO     +      GNO2    + 2.000GCO      :  0.100E+01*SUN;
+{ 59430} GPN502e+HV               =       G3N2000 +      GCO     + 2.000GCO     +      GNO2     :  0.100E+01*SUN;
+{ 59431} GPN502e+HV               =       G3N2000 +      GCO     + 2.000GCO     +      GNO2     :  0.100E+01*SUN;
+{ 59432} G3N502m +GHO2               =  0.800GGN502G + 0.200GAN502W + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 59433} G3N502m +GNO                =       G3N2000 +      GNO2    +      GCO2    + 2.000GCO      : ARR( 0.810E-11,  -270., 0.0);
+{ 59434} G3N502m +GNO2               =       GPN502e                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 59435} G3N502m +GNO3               =       G3N2000 +      GNO2    +      GCO2    + 2.000GCO      : ARR( 0.500E-11,     0., 0.0);
+{ 59436} G3N502m +MEPERO             =  0.685G3N2000 + 0.315GAN502W + 0.685GCO2    + 1.370GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 59437} G3N502m +PERO1              =  0.800G3N2000 + 0.200GAN502W + 0.800GCO2    + 1.600GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 59438} G3N502m +PERO2              =  0.750G3N2000 + 0.250GAN502W + 0.750GCO2    + 1.500GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 59439} G3N502m +PERO3              =  0.800G3N2000 + 0.200GAN502W + 0.800GCO2    + 1.600GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 59440} G3N502m +PERO5              =  0.650G3N2000 + 0.350GAN502W + 0.650GCO2    + 1.300GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 59441} G3N502m +PERO6              =  0.650G3N2000 + 0.350GAN502W + 0.650GCO2    + 1.300GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 59442} G3N502m +PERO9              =       G3N2000 +      GCO2    + 2.000GCO                     : ARR( 0.500E-11,  -500., 0.0);
+{ 59443} GGN502C +GHO                =       G2G503s                                               : ARR( 0.528E-12,     0., 0.0);
+{ 59444} GGN502C +GHO                =       G3G500j                                               : ARR( 0.418E-11,     0., 0.0);
+{ 59445} GGN502C +GHO                =       G3N501q                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 59446} GGN502C +GNO3               =       G3G500j +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 59447} GGN502C+HV               =  0.500G2N4019 + 0.500GHO                                    :  0.100E+01*SUN;
+{ 59448} GGN502C+HV               =       G3G3000 +      GDD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 59449} GGN502C+HV               =       G1G505P +      GNO2                                   :  0.100E+01*SUN;
+{ 59450} GGN502C+HV               =       GGD4004 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 59451} G2G503s +GNO                =       G1G505Q +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 59452} G2G503s +GNO                =       GGN502o                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 59453} G2G503s +GHO2               =       GGH505A                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 59454} G2G503s +GNO3               =       G1G505Q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 59455} G2G503s +MEPERO             =  0.340G1G505Q + 0.330GGN502p + 0.330GGN502q                 : ARR( 0.565E-13,  -845., 0.0);
+{ 59456} G2G503s +PERO1              =  0.460G1G505Q + 0.270GGN502p + 0.270GGN502q                 : ARR( 0.434E-13,  -900., 0.0);
+{ 59457} G2G503s +PERO2              =  0.400G1G505Q + 0.300GGN502p + 0.300GGN502q                 : ARR( 0.162E-13, -1400., 0.0);
+{ 59458} G2G503s +PERO3              =  0.460G1G505Q + 0.270GGN502p + 0.270GGN502q                 : ARR( 0.488E-13, -1250., 0.0);
+{ 59459} G2G503s +PERO5              =  0.460G1G505Q + 0.270GGN502p + 0.270GGN502q                 : ARR( 0.183E-11,   450., 0.0);
+{ 59460} G2G503s +PERO6              =  0.300G1G505Q + 0.350GGN502p + 0.350GGN502q                 : ARR( 0.168E-13, -1300., 0.0);
+{ 59461} G2G503s +PERO9              =  0.650G1G505Q + 0.350GGN502q                                : ARR( 0.100E-10,     0., 0.0);
+{ 59462} G3G500j +GHO2               =  0.800GGG500J + 0.200GAG500b + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 59463} G3G500j +GNO                =       GGD4004 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 59464} G3G500j +GNO2               =       GPG500e                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 59465} G3G500j +GNO3               =       GGD4004 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 59466} G3G500j +MEPERO             =  0.685GGD4004 + 0.315GAG500b + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59467} G3G500j +PERO1              =  0.800GGD4004 + 0.200GAG500b + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59468} G3G500j +PERO2              =  0.750GGD4004 + 0.250GAG500b + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59469} G3G500j +PERO3              =  0.800GGD4004 + 0.200GAG500b + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59470} G3G500j +PERO5              =  0.650GGD4004 + 0.350GAG500b + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59471} G3G500j +PERO6              =  0.650GGD4004 + 0.350GAG500b + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59472} G3G500j +PERO9              =       GGD4004 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 59473} G1G505P                     =       G3G3000 +      GDD2000                                : ARR( 0.200E+15,  4865., 0.0);
+{ 59474} G1G505Q                     =       GCO     +      GND400N +      GHO2                    : ARR( 0.200E+15,  6793., 0.0);
+{ 59475} G1G505Q                     =       GGD2000 +      G3N3005                                : ARR( 0.200E+15,  6450., 0.0);
+{ 59476} GGH5039 +GHO                =       GGD500G +      GHO                                    : ARR( 0.168E-10,     0., 0.0);
+{ 59477} GGH5039 +GHO                =       G3G500k                                               : ARR( 0.721E-10,     0., 0.0);
+{ 59478} GGH5039 +GNO3               =       G3G500k +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 59479} GGH5039+HV               =  0.500G2H401H + 0.500GHO                                    :  0.100E+01*SUN;
+{ 59480} GGH5039+HV               =       G3G3000 +      GDD2000 +      GHO                     :  0.100E+01*SUN;
+{ 59481} GGH5039+HV               =       G1G505P +      GHO                                    :  0.100E+01*SUN;
+{ 59482} GGH5039+HV               =       GGD4004 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 59483} G3G500k +GHO2               =  0.800GGG500K + 0.200GAG500c + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 59484} G3G500k +GNO                =       GGD4004 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 59485} G3G500k +GNO2               =       GPG500f                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 59486} G3G500k +GNO3               =       GGD4004 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 59487} G3G500k +MEPERO             =  0.685GGD4004 + 0.315GAG500c + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59488} G3G500k +PERO1              =  0.800GGD4004 + 0.200GAG500c + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59489} G3G500k +PERO2              =  0.750GGD4004 + 0.250GAG500c + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59490} G3G500k +PERO3              =  0.800GGD4004 + 0.200GAG500c + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59491} G3G500k +PERO5              =  0.650GGD4004 + 0.350GAG500c + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59492} G3G500k +PERO6              =  0.650GGD4004 + 0.350GAG500c + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59493} G3G500k +PERO9              =       GGD4004 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 59494} GGN502D +GHO                =       G3G500l                                               : ARR( 0.426E-11,     0., 0.0);
+{ 59495} GGN502D +GHO                =       G3N501v                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 59496} GGN502D +GNO3               =       G3G500l +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 59497} GGN502D+HV               =       GND400D +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 59498} GGN502D+HV               =       G1G502i +      GNO2                                   :  0.100E+01*SUN;
+{ 59499} GGN502D+HV               =       G1G505R +      GNO2                                   :  0.100E+01*SUN;
+{ 59500} GGN502D+HV               =       GGN400M +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 59501} GGN502D+HV               =       G2G3005 +      GND2000 +      GNO2                    :  0.100E+01*SUN;
+{ 59502} G3G500l +GHO2               =  0.800GGG500W + 0.200GAG500m + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 59503} G3G500l +GNO                =       GGN400M + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 59504} G3G500l +GNO2               =       GPG500n                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 59505} G3G500l +GNO3               =       GGN400M + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 59506} G3G500l +MEPERO             =  0.685GGN400M + 0.315GAG500m + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59507} G3G500l +PERO1              =  0.800GGN400M + 0.200GAG500m + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59508} G3G500l +PERO2              =  0.750GGN400M + 0.250GAG500m + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59509} G3G500l +PERO3              =  0.800GGN400M + 0.200GAG500m + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59510} G3G500l +PERO5              =  0.650GGN400M + 0.350GAG500m + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59511} G3G500l +PERO6              =  0.650GGN400M + 0.350GAG500m + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59512} G3G500l +PERO9              =       GGN400M +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 59513} G1G505R                     =       GGN400M +      GCO     +      GHO2                    : ARR( 0.200E+15,  5437., 0.0);
+{ 59514} GGH503A +GHO                =       GGN501v +      GHO                                    : ARR( 0.256E-10,     0., 0.0);
+{ 59515} GGH503A +GHO                =       G3G500m                                               : ARR( 0.212E-10,     0., 0.0);
+{ 59516} GGH503A +GHO                =       G3H502Z                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 59517} GGH503A +GHO                =       G2G503t                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 59518} GGH503A +GNO3               =       G3G500m +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 59519} GGH503A+HV               =       GHD400C +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 59520} GGH503A+HV               =       G1G505S +      GNO2                                   :  0.100E+01*SUN;
+{ 59521} GGH503A+HV               =       G1G505R +      GHO                                    :  0.100E+01*SUN;
+{ 59522} GGH503A+HV               =       GGN400M +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 59523} G3G500m +GHO2               =  0.800GGG500X + 0.200GAG5016 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 59524} G3G500m +GNO                =       GGN400M +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 59525} G3G500m +GNO2               =       GPG5017                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 59526} G3G500m +GNO3               =       GGN400M +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 59527} G3G500m +MEPERO             =  0.685GGN400M + 0.315GAG5016 + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59528} G3G500m +PERO1              =  0.800GGN400M + 0.200GAG5016 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59529} G3G500m +PERO2              =  0.750GGN400M + 0.250GAG5016 + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59530} G3G500m +PERO3              =  0.800GGN400M + 0.200GAG5016 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59531} G3G500m +PERO5              =  0.650GGN400M + 0.350GAG5016 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59532} G3G500m +PERO6              =  0.650GGN400M + 0.350GAG5016 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59533} G3G500m +PERO9              =       GGN400M +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 59534} G2G503t +GNO                =       G1G505R +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 59535} G2G503t +GNO                =       GGN502D                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 59536} G2G503t +GHO2               =       GGH503A                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 59537} G2G503t +GNO3               =       G1G505R +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 59538} G2G503t +MEPERO             =  0.340G1G505R + 0.330GGN501K + 0.330GGN501v                 : ARR( 0.565E-13,  -845., 0.0);
+{ 59539} G2G503t +PERO1              =  0.460G1G505R + 0.270GGN501K + 0.270GGN501v                 : ARR( 0.434E-13,  -900., 0.0);
+{ 59540} G2G503t +PERO2              =  0.400G1G505R + 0.300GGN501K + 0.300GGN501v                 : ARR( 0.162E-13, -1400., 0.0);
+{ 59541} G2G503t +PERO3              =  0.460G1G505R + 0.270GGN501K + 0.270GGN501v                 : ARR( 0.488E-13, -1250., 0.0);
+{ 59542} G2G503t +PERO5              =  0.460G1G505R + 0.270GGN501K + 0.270GGN501v                 : ARR( 0.183E-11,   450., 0.0);
+{ 59543} G2G503t +PERO6              =  0.300G1G505R + 0.350GGN501K + 0.350GGN501v                 : ARR( 0.168E-13, -1300., 0.0);
+{ 59544} G2G503t +PERO9              =  0.650G1G505R + 0.350GGN501v                                : ARR( 0.100E-10,     0., 0.0);
+{ 59545} G1G505S                     =       GCO     +      GHD400C +      GHO2                    : ARR( 0.200E+15,  4949., 0.0);
+{ 59546} GGG5008 +GHO                =       G2G503u                                               : ARR( 0.900E-12,     0., 0.0);
+{ 59547} GGG5008 +GHO                =       G3G500D                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 59548} GGG5008 +GHO                =       G3G500G                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 59549} GGG5008+HV               =       G2G400X +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 59550} GGG5008+HV               =       G1G505T +      GNO2                                   :  0.100E+01*SUN;
+{ 59551} GGG5008+HV               =       GGD4000 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 59552} G2G503u +GNO                =       G1G505U +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 59553} G2G503u +GNO                =       GGG500W                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 59554} G2G503u +GHO2               =       GGG500X                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 59555} G2G503u +GNO3               =       G1G505U +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 59556} G2G503u +MEPERO             =  0.340G1G505U + 0.330GGG500B + 0.330GGG500Y                 : ARR( 0.565E-13,  -845., 0.0);
+{ 59557} G2G503u +PERO1              =  0.460G1G505U + 0.270GGG500B + 0.270GGG500Y                 : ARR( 0.434E-13,  -900., 0.0);
+{ 59558} G2G503u +PERO2              =  0.400G1G505U + 0.300GGG500B + 0.300GGG500Y                 : ARR( 0.162E-13, -1400., 0.0);
+{ 59559} G2G503u +PERO3              =  0.460G1G505U + 0.270GGG500B + 0.270GGG500Y                 : ARR( 0.488E-13, -1250., 0.0);
+{ 59560} G2G503u +PERO5              =  0.460G1G505U + 0.270GGG500B + 0.270GGG500Y                 : ARR( 0.183E-11,   450., 0.0);
+{ 59561} G2G503u +PERO6              =  0.300G1G505U + 0.350GGG500B + 0.350GGG500Y                 : ARR( 0.168E-13, -1300., 0.0);
+{ 59562} G2G503u +PERO9              =  0.650G1G505U + 0.350GGG500Y                                : ARR( 0.100E-10,     0., 0.0);
+{ 59563} G1G505T                     =       GGD4000 +      GCO     +      GHO2                    : ARR( 0.200E+15,  4949., 0.0);
+{ 59564} G1G505U                     =       GGN400M +      GCO     +      GHO2                    : ARR( 0.200E+15,  4949., 0.0);
+{ 59565} GAG500H +GHO                =       G2A504q                                               : ARR( 0.647E-12,     0., 0.0);
+{ 59566} GAG500H +GHO                =       G2A504r                                               : ARR( 0.287E-12,     0., 0.0);
+{ 59567} GAG500H +GHO                =       G3A500L                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 59568} GAG500H +GHO                =       G2G400X +      GCO2                                   : ARR( 0.527E-12,     0., 0.0);
+{ 59569} GAG500H+HV               =       G1A503v +      GNO2                                   :  0.100E+01*SUN;
+{ 59570} GAG500H+HV               =       GAD4000 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 59571} G2A504q +GNO                =       G1A506n +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 59572} G2A504q +GNO                =       GAG500m                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 59573} G2A504q +GHO2               =       GAG5016                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 59574} G2A504q +GNO3               =       G1A506n +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 59575} G2A504q +MEPERO             =  0.340G1A506n + 0.330GAG500O + 0.330GAG5017                 : ARR( 0.565E-13,  -845., 0.0);
+{ 59576} G2A504q +PERO1              =  0.460G1A506n + 0.270GAG500O + 0.270GAG5017                 : ARR( 0.434E-13,  -900., 0.0);
+{ 59577} G2A504q +PERO2              =  0.400G1A506n + 0.300GAG500O + 0.300GAG5017                 : ARR( 0.162E-13, -1400., 0.0);
+{ 59578} G2A504q +PERO3              =  0.460G1A506n + 0.270GAG500O + 0.270GAG5017                 : ARR( 0.488E-13, -1250., 0.0);
+{ 59579} G2A504q +PERO5              =  0.460G1A506n + 0.270GAG500O + 0.270GAG5017                 : ARR( 0.183E-11,   450., 0.0);
+{ 59580} G2A504q +PERO6              =  0.300G1A506n + 0.350GAG500O + 0.350GAG5017                 : ARR( 0.168E-13, -1300., 0.0);
+{ 59581} G2A504q +PERO9              =  0.650G1A506n + 0.350GAG5017                                : ARR( 0.100E-10,     0., 0.0);
+{ 59582} G2A504r +GNO                =       G1A506o +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 59583} G2A504r +GNO                =       GAG500t                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 59584} G2A504r +GHO2               =       GAG500x                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 59585} G2A504r +GNO3               =       G1A506o +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 59586} G2A504r +MEPERO             =  0.340G1A506o + 0.330GAG5012 + 0.330GAG500e                 : ARR( 0.565E-13,  -845., 0.0);
+{ 59587} G2A504r +PERO1              =  0.460G1A506o + 0.270GAG5012 + 0.270GAG500e                 : ARR( 0.434E-13,  -900., 0.0);
+{ 59588} G2A504r +PERO2              =  0.400G1A506o + 0.300GAG5012 + 0.300GAG500e                 : ARR( 0.162E-13, -1400., 0.0);
+{ 59589} G2A504r +PERO3              =  0.460G1A506o + 0.270GAG5012 + 0.270GAG500e                 : ARR( 0.488E-13, -1250., 0.0);
+{ 59590} G2A504r +PERO5              =  0.460G1A506o + 0.270GAG5012 + 0.270GAG500e                 : ARR( 0.183E-11,   450., 0.0);
+{ 59591} G2A504r +PERO6              =  0.300G1A506o + 0.350GAG5012 + 0.350GAG500e                 : ARR( 0.168E-13, -1300., 0.0);
+{ 59592} G2A504r +PERO9              =  0.650G1A506o + 0.350GAG500e                                : ARR( 0.100E-10,     0., 0.0);
+{ 59593} G1A506n                     =       GCO     +      GGN400M +      GHO                     : ARR( 0.200E+15,  4918., 0.0);
+{ 59594} G1A506o                     =       G2A2000 +      GGN3005                                : ARR( 0.200E+15,  6620., 0.0);
+{ 59595} G1A506o                     =       GAD3000 +      GGD2000 +      GNO2                    : ARR( 0.200E+15,  6039., 0.0);
+{ 59596} GPG500F                     =       G3G500D +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 59597} GPG500F +GHO                =       G2P505C                                               : ARR( 0.287E-12,     0., 0.0);
+{ 59598} GPG500F +GHO                =       G2P505D                                               : ARR( 0.875E-12,     0., 0.0);
+{ 59599} GPG500F +GHO                =       G3P500J                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 59600} GPG500F+HV               =       GPD4000 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 59601} GPG500F+HV               =       G1P507N +      GNO2                                   :  0.100E+01*SUN;
+{ 59602} GPG500F+HV               =       G3G500D +      GNO2                                   :  0.100E+01*SUN;
+{ 59603} G2P505C +GNO                =       G1P507O +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 59604} G2P505C +GNO                =       GPG500T                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 59605} G2P505C +GHO2               =       GPG500z                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 59606} G2P505C +GNO3               =       G1P507O +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 59607} G2P505C +MEPERO             =  0.340G1P507O + 0.330GPG5014 + 0.330GPG500b                 : ARR( 0.565E-13,  -845., 0.0);
+{ 59608} G2P505C +PERO1              =  0.460G1P507O + 0.270GPG5014 + 0.270GPG500b                 : ARR( 0.434E-13,  -900., 0.0);
+{ 59609} G2P505C +PERO2              =  0.400G1P507O + 0.300GPG5014 + 0.300GPG500b                 : ARR( 0.162E-13, -1400., 0.0);
+{ 59610} G2P505C +PERO3              =  0.460G1P507O + 0.270GPG5014 + 0.270GPG500b                 : ARR( 0.488E-13, -1250., 0.0);
+{ 59611} G2P505C +PERO5              =  0.460G1P507O + 0.270GPG5014 + 0.270GPG500b                 : ARR( 0.183E-11,   450., 0.0);
+{ 59612} G2P505C +PERO6              =  0.300G1P507O + 0.350GPG5014 + 0.350GPG500b                 : ARR( 0.168E-13, -1300., 0.0);
+{ 59613} G2P505C +PERO9              =  0.650G1P507O + 0.350GPG500b                                : ARR( 0.100E-10,     0., 0.0);
+{ 59614} G2P505D +GNO                =       G1P507P +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 59615} G2P505D +GNO                =       GPG500n                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 59616} G2P505D +GHO2               =       GPG5017                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 59617} G2P505D +GNO3               =       G1P507P +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 59618} G2P505D +MEPERO             =  0.340G1P507P + 0.330GPG500L + 0.330GPG500o                 : ARR( 0.565E-13,  -845., 0.0);
+{ 59619} G2P505D +PERO1              =  0.460G1P507P + 0.270GPG500L + 0.270GPG500o                 : ARR( 0.434E-13,  -900., 0.0);
+{ 59620} G2P505D +PERO2              =  0.400G1P507P + 0.300GPG500L + 0.300GPG500o                 : ARR( 0.162E-13, -1400., 0.0);
+{ 59621} G2P505D +PERO3              =  0.460G1P507P + 0.270GPG500L + 0.270GPG500o                 : ARR( 0.488E-13, -1250., 0.0);
+{ 59622} G2P505D +PERO5              =  0.460G1P507P + 0.270GPG500L + 0.270GPG500o                 : ARR( 0.183E-11,   450., 0.0);
+{ 59623} G2P505D +PERO6              =  0.300G1P507P + 0.350GPG500L + 0.350GPG500o                 : ARR( 0.168E-13, -1300., 0.0);
+{ 59624} G2P505D +PERO9              =  0.650G1P507P + 0.350GPG500o                                : ARR( 0.100E-10,     0., 0.0);
+{ 59625} G1P507N                     =       GCO     +      GPD4000 +      GHO2                    : ARR( 0.200E+15,  4949., 0.0);
+{ 59626} G1P507O                     =       GGD2000 +      GPD3000 +      GNO2                    : ARR( 0.200E+15,  6039., 0.0);
+{ 59627} G1P507O                     =       GGN3005 +      G2P2000                                : ARR( 0.200E+15,  6620., 0.0);
+{ 59628} G1P507P                     =       GGN400M +      GCO     +      GNO2                    : ARR( 0.200E+15,  4949., 0.0);
+{ 59629} GGN502E +GHO                =       G3G500n                                               : ARR( 0.437E-11,     0., 0.0);
+{ 59630} GGN502E +GHO                =       G3N502Y                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 59631} GGN502E +GNO3               =       G3G500n +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 59632} GGN502E+HV               =       GAN400J +      GCO2                                   :  0.100E+01*SUN;
+{ 59633} GGN502E+HV               =       G1G502c +      GNO2                                   :  0.100E+01*SUN;
+{ 59634} GGN502E+HV               =       GGD4005 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 59635} G3G500n +GHO2               =  0.800GGG500Y + 0.200GAG500o + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 59636} G3G500n +GNO                =       GGD4005 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 59637} G3G500n +GNO2               =       GPG500q                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 59638} G3G500n +GNO3               =       GGD4005 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 59639} G3G500n +MEPERO             =  0.685GGD4005 + 0.315GAG500o + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59640} G3G500n +PERO1              =  0.800GGD4005 + 0.200GAG500o + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59641} G3G500n +PERO2              =  0.750GGD4005 + 0.250GAG500o + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59642} G3G500n +PERO3              =  0.800GGD4005 + 0.200GAG500o + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59643} G3G500n +PERO5              =  0.650GGD4005 + 0.350GAG500o + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59644} G3G500n +PERO6              =  0.650GGD4005 + 0.350GAG500o + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59645} G3G500n +PERO9              =       GGD4005 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 59646} GGH503B +GHO                =       GGD500J +      GHO                                    : ARR( 0.875E-10,     0., 0.0);
+{ 59647} GGH503B +GHO                =       G3G500o                                               : ARR( 0.228E-10,     0., 0.0);
+{ 59648} GGH503B +GNO3               =       G3G500o +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 59649} GGH503B+HV               =       GAH400T +      GCO2                                   :  0.100E+01*SUN;
+{ 59650} GGH503B+HV               =       G1G502c +      GHO                                    :  0.100E+01*SUN;
+{ 59651} GGH503B+HV               =       GGD4005 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 59652} G3G500o +GHO2               =  0.800GGG500Z + 0.200GAG5018 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 59653} G3G500o +GNO                =       GGD4005 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 59654} G3G500o +GNO2               =       GPG5018                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 59655} G3G500o +GNO3               =       GGD4005 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 59656} G3G500o +MEPERO             =  0.685GGD4005 + 0.315GAG5018 + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59657} G3G500o +PERO1              =  0.800GGD4005 + 0.200GAG5018 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59658} G3G500o +PERO2              =  0.750GGD4005 + 0.250GAG5018 + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59659} G3G500o +PERO3              =  0.800GGD4005 + 0.200GAG5018 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59660} G3G500o +PERO5              =  0.650GGD4005 + 0.350GAG5018 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59661} G3G500o +PERO6              =  0.650GGD4005 + 0.350GAG5018 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59662} G3G500o +PERO9              =       GGD4005 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 59663} GGN502F +GHO                =       G3N502g                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 59664} GGN502F+HV               =       G1G505W +      GNO2                                   :  0.100E+01*SUN;
+{ 59665} GGN502F+HV               =       G3N2000 +      GGD3002 +      GNO2                    :  0.100E+01*SUN;
+{ 59666} GGN502F+HV               =       G1G502Y +      GNO2                                   :  0.100E+01*SUN;
+{ 59667} GGN502F+HV               =       GAN400R +      GCO2                                   :  0.100E+01*SUN;
+{ 59668} G1G505W                     =       G3G400K +      GCH2O                                  : ARR( 0.200E+15,  4694., 0.0);
+{ 59669} G3G400K +GHO2               =  0.800GGG400D + 0.200GAG400L + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 59670} G3G400K +GNO                =       GGD3002 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 59671} G3G400K +GNO2               =       GPG400L                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 59672} G3G400K +GNO3               =       GGD3002 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 59673} G3G400K +MEPERO             =  0.685GGD3002 + 0.315GAG400L + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59674} G3G400K +PERO1              =  0.800GGD3002 + 0.200GAG400L + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59675} G3G400K +PERO2              =  0.750GGD3002 + 0.250GAG400L + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59676} G3G400K +PERO3              =  0.800GGD3002 + 0.200GAG400L + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59677} G3G400K +PERO5              =  0.650GGD3002 + 0.350GAG400L + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59678} G3G400K +PERO6              =  0.650GGD3002 + 0.350GAG400L + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 59679} G3G400K +PERO9              =       GGD3002 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 59680} GGH503C +GHO                =       GGN502G +      GHO                                    : ARR( 0.153E-10,     0., 0.0);
+{ 59681} GGH503C +GHO                =       G2G501t                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 59682} GGH503C +GHO                =       G3H504j                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 59683} GGH503C+HV               =       G1G505X +      GNO2                                   :  0.100E+01*SUN;
+{ 59684} GGH503C+HV               =       G3N2000 +      GGD3002 +      GHO                     :  0.100E+01*SUN;
+{ 59685} GGH503C+HV               =       G1G502Y +      GHO                                    :  0.100E+01*SUN;
+{ 59686} GGH503C+HV               =       GAH400P +      GCO2                                   :  0.100E+01*SUN;
+{ 59687} G3H504j +GHO2               =  0.800GGH503C + 0.200GAH503d + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 59688} G3H504j +GNO                =       G3H400R +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 59689} G3H504j +GNO2               =       GPH5042                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 59690} G3H504j +GNO3               =       G3H400R +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 59691} G3H504j +MEPERO             =  0.685G3H400R + 0.315GAH503d + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 59692} G3H504j +PERO1              =  0.800G3H400R + 0.200GAH503d + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 59693} G3H504j +PERO2              =  0.750G3H400R + 0.250GAH503d + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 59694} G3H504j +PERO3              =  0.800G3H400R + 0.200GAH503d + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 59695} G3H504j +PERO5              =  0.650G3H400R + 0.350GAH503d + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 59696} G3H504j +PERO6              =  0.650G3H400R + 0.350GAH503d + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 59697} G3H504j +PERO9              =       G3H400R +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 59698} G1G505X                     =       G3G400I +      GCH2O                                  : ARR( 0.200E+15,  4349., 0.0);
+{ 59699} GGN502G +GHO                =       G3N502m                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 59700} GGN502G+HV               =       G1G505Y +      GNO2                                   :  0.100E+01*SUN;
+{ 59701} GGN502G+HV               =       G3N2000 +      GCO     +      GHO2    + 2.000GCO      :  0.100E+01*SUN;
+{ 59702} GGN502G+HV               =       G3N2000 +      GCO     + 2.000GCO     +      GHO2     :  0.100E+01*SUN;
+{ 59703} GGN502G+HV               =       GAN400W +      GCO2                                   :  0.100E+01*SUN;
+{ 59704} G1G505Y                     =       GCO     +      GCH2O   +      GHO2    + 3.000GCO      : ARR( 0.200E+15,  3862., 0.0);
+{ 59705} GGG4004 +GHO                =       G2G4015                                               : ARR( 0.525E-12,     0., 0.0);
+{ 59706} GGG4004 +GHO                =       G3G4006                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 59707} GGG4004 +GHO                =       G3G400A                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 59708} GGG4004+HV               =       G2G3005 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 59709} GGG4004+HV               =       GAG3000 +      GCO2                                   :  0.100E+01*SUN;
+{ 59710} G2G4015 +GNO                =       G1G401E +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 59711} G2G4015 +GNO                =       GGG400D                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 59712} G2G4015 +GHO2               =       GGG400C                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 59713} G2G4015 +GNO3               =       G1G401E +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 59714} G2G4015 +MEPERO             =  0.340G1G401E + 0.330GGG4003 + 0.330GGG400A                 : ARR( 0.565E-13,  -845., 0.0);
+{ 59715} G2G4015 +PERO1              =  0.460G1G401E + 0.270GGG4003 + 0.270GGG400A                 : ARR( 0.434E-13,  -900., 0.0);
+{ 59716} G2G4015 +PERO2              =  0.400G1G401E + 0.300GGG4003 + 0.300GGG400A                 : ARR( 0.162E-13, -1400., 0.0);
+{ 59717} G2G4015 +PERO3              =  0.460G1G401E + 0.270GGG4003 + 0.270GGG400A                 : ARR( 0.488E-13, -1250., 0.0);
+{ 59718} G2G4015 +PERO5              =  0.460G1G401E + 0.270GGG4003 + 0.270GGG400A                 : ARR( 0.183E-11,   450., 0.0);
+{ 59719} G2G4015 +PERO6              =  0.300G1G401E + 0.350GGG4003 + 0.350GGG400A                 : ARR( 0.168E-13, -1300., 0.0);
+{ 59720} G2G4015 +PERO9              =  0.650G1G401E + 0.350GGG400A                                : ARR( 0.100E-10,     0., 0.0);
+{ 59721} G1G401E                     =       GCO     +      GGD2000 +      GHO2    +      GCO      : ARR( 0.200E+15,  5653., 0.0);
+{ 59722} GAG4009 +GHO                =       G2A401F                                               : ARR( 0.389E-12,     0., 0.0);
+{ 59723} GAG4009 +GHO                =       G3A400D                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 59724} GAG4009 +GHO                =       G2G3005 +      GCO2                                   : ARR( 0.520E-12,     0., 0.0);
+{ 59725} GAG4009+HV               =       GAA3000 +      GCO2                                   :  0.100E+01*SUN;
+{ 59726} G2A401F +GNO                =       G1A401N +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 59727} G2A401F +GNO                =       GAG400L                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 59728} G2A401F +GHO2               =       GAG400M                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 59729} G2A401F +GNO3               =       G1A401N +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 59730} G2A401F +MEPERO             =  0.340G1A401N + 0.330GAG4006 + 0.330GAG400H                 : ARR( 0.565E-13,  -845., 0.0);
+{ 59731} G2A401F +PERO1              =  0.460G1A401N + 0.270GAG4006 + 0.270GAG400H                 : ARR( 0.434E-13,  -900., 0.0);
+{ 59732} G2A401F +PERO2              =  0.400G1A401N + 0.300GAG4006 + 0.300GAG400H                 : ARR( 0.162E-13, -1400., 0.0);
+{ 59733} G2A401F +PERO3              =  0.460G1A401N + 0.270GAG4006 + 0.270GAG400H                 : ARR( 0.488E-13, -1250., 0.0);
+{ 59734} G2A401F +PERO5              =  0.460G1A401N + 0.270GAG4006 + 0.270GAG400H                 : ARR( 0.183E-11,   450., 0.0);
+{ 59735} G2A401F +PERO6              =  0.300G1A401N + 0.350GAG4006 + 0.350GAG400H                 : ARR( 0.168E-13, -1300., 0.0);
+{ 59736} G2A401F +PERO9              =  0.650G1A401N + 0.350GAG400H                                : ARR( 0.100E-10,     0., 0.0);
+{ 59737} G1A401N                     =       GCO     +      GGD3002 +      GHO                     : ARR( 0.200E+15,  6787., 0.0);
+{ 59738} G1A401N                     =       GAD2000 +      GCO     +      GHO2    +      GCO      : ARR( 0.200E+15,  5653., 0.0);
+{ 59739} GPG400A                     =       G3G4006 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 59740} GPG400A +GHO                =       G2P401O                                               : ARR( 0.525E-12,     0., 0.0);
+{ 59741} GPG400A +GHO                =       G3P400E                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 59742} GPG400A+HV               =       GPA3000 +      GCO2                                   :  0.100E+01*SUN;
+{ 59743} GPG400A+HV               =       G3G4006 +      GNO2                                   :  0.100E+01*SUN;
+{ 59744} G2P401O +GNO                =       G1P401W +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 59745} G2P401O +GNO                =       GPG400L                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 59746} G2P401O +GHO2               =       GPG400M                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 59747} G2P401O +GNO3               =       G1P401W +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 59748} G2P401O +MEPERO             =  0.340G1P401W + 0.330GPG4006 + 0.330GPG400H                 : ARR( 0.565E-13,  -845., 0.0);
+{ 59749} G2P401O +PERO1              =  0.460G1P401W + 0.270GPG4006 + 0.270GPG400H                 : ARR( 0.434E-13,  -900., 0.0);
+{ 59750} G2P401O +PERO2              =  0.400G1P401W + 0.300GPG4006 + 0.300GPG400H                 : ARR( 0.162E-13, -1400., 0.0);
+{ 59751} G2P401O +PERO3              =  0.460G1P401W + 0.270GPG4006 + 0.270GPG400H                 : ARR( 0.488E-13, -1250., 0.0);
+{ 59752} G2P401O +PERO5              =  0.460G1P401W + 0.270GPG4006 + 0.270GPG400H                 : ARR( 0.183E-11,   450., 0.0);
+{ 59753} G2P401O +PERO6              =  0.300G1P401W + 0.350GPG4006 + 0.350GPG400H                 : ARR( 0.168E-13, -1300., 0.0);
+{ 59754} G2P401O +PERO9              =  0.650G1P401W + 0.350GPG400H                                : ARR( 0.100E-10,     0., 0.0);
+{ 59755} G1P401W                     =       GCO     +      GPD2000 +      GHO2    +      GCO      : ARR( 0.200E+15,  5653., 0.0);
+{ 59756} GGD500J +GHO                =       G3G4006 +      GCO                                    : ARR( 0.131E-10,     0., 0.0);
+{ 59757} GGD500J +GHO                =       G3D500K                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 59758} GGD500J +GNO3               =       G3G4006 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 59759} GGD500J+HV               =       GAD4003 +      GCO2                                   :  0.100E+01*SUN;
+{ 59760} GGD500J+HV               =       G3G4006 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 59761} GGD500J+HV               =       GGD4005 +      GCO                                    :  0.100E+01*SUN;
+{ 59762} GGD500J+HV               =       GGK3000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 59763} GGG5009 +GHO                =       G2G503v                                               : ARR( 0.273E-11,     0., 0.0);
+{ 59764} GGG5009 +GHO                =       G2G503w                                               : ARR( 0.862E-12,     0., 0.0);
+{ 59765} GGG5009 +GHO                =       G3G500E                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 59766} GGG5009 +GHO                =       G3G500p                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 59767} GGG5009+HV               =       G2G400H +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 59768} GGG5009+HV               =       GAG4000 +      GCO2                                   :  0.100E+01*SUN;
+{ 59769} G2G503v +GNO                =       G1G505Z +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 59770} G2G503v +GNO                =       GGG500Y                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 59771} G2G503v +GHO2               =       GGG500Z                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 59772} G2G503v +GNO3               =       G1G505Z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 59773} G2G503v +MEPERO             =  0.340G1G505Z + 0.330GGG500D + 0.330GGG500a                 : ARR( 0.565E-13,  -845., 0.0);
+{ 59774} G2G503v +PERO1              =  0.460G1G505Z + 0.270GGG500D + 0.270GGG500a                 : ARR( 0.434E-13,  -900., 0.0);
+{ 59775} G2G503v +PERO2              =  0.400G1G505Z + 0.300GGG500D + 0.300GGG500a                 : ARR( 0.162E-13, -1400., 0.0);
+{ 59776} G2G503v +PERO3              =  0.460G1G505Z + 0.270GGG500D + 0.270GGG500a                 : ARR( 0.488E-13, -1250., 0.0);
+{ 59777} G2G503v +PERO5              =  0.460G1G505Z + 0.270GGG500D + 0.270GGG500a                 : ARR( 0.183E-11,   450., 0.0);
+{ 59778} G2G503v +PERO6              =  0.300G1G505Z + 0.350GGG500D + 0.350GGG500a                 : ARR( 0.168E-13, -1300., 0.0);
+{ 59779} G2G503v +PERO9              =  0.650G1G505Z + 0.350GGG500a                                : ARR( 0.100E-10,     0., 0.0);
+{ 59780} G2G503w +GNO                =       G1G505a +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 59781} G2G503w +GNO                =       GGG500Q                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 59782} G2G503w +GHO2               =       GGG500S                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 59783} G2G503w +GNO3               =       G1G505a +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 59784} G2G503w +MEPERO             =  0.340G1G505a + 0.330GGG500I + 0.330GGG500L                 : ARR( 0.565E-13,  -845., 0.0);
+{ 59785} G2G503w +PERO1              =  0.460G1G505a + 0.270GGG500I + 0.270GGG500L                 : ARR( 0.434E-13,  -900., 0.0);
+{ 59786} G2G503w +PERO2              =  0.400G1G505a + 0.300GGG500I + 0.300GGG500L                 : ARR( 0.162E-13, -1400., 0.0);
+{ 59787} G2G503w +PERO3              =  0.460G1G505a + 0.270GGG500I + 0.270GGG500L                 : ARR( 0.488E-13, -1250., 0.0);
+{ 59788} G2G503w +PERO5              =  0.460G1G505a + 0.270GGG500I + 0.270GGG500L                 : ARR( 0.183E-11,   450., 0.0);
+{ 59789} G2G503w +PERO6              =  0.300G1G505a + 0.350GGG500I + 0.350GGG500L                 : ARR( 0.168E-13, -1300., 0.0);
+{ 59790} G2G503w +PERO9              =  0.650G1G505a + 0.350GGG500L                                : ARR( 0.100E-10,     0., 0.0);
+{ 59791} G3G500p +GHO2               =  0.800GGG5009 + 0.200GAG500N + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 59792} G3G500p +GNO                =       G3G4000 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 59793} G3G500p +GNO2               =       GPG500N                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 59794} G3G500p +GNO3               =       G3G4000 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 59795} G3G500p +MEPERO             =  0.685G3G4000 + 0.315GAG500N + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 59796} G3G500p +PERO1              =  0.800G3G4000 + 0.200GAG500N + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 59797} G3G500p +PERO2              =  0.750G3G4000 + 0.250GAG500N + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 59798} G3G500p +PERO3              =  0.800G3G4000 + 0.200GAG500N + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 59799} G3G500p +PERO5              =  0.650G3G4000 + 0.350GAG500N + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 59800} G3G500p +PERO6              =  0.650G3G4000 + 0.350GAG500N + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 59801} G3G500p +PERO9              =       G3G4000 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 59802} G1G505Z                     =       GGD4005 +      GCO     +      GHO2                    : ARR( 0.200E+15,  4566., 0.0);
+{ 59803} G1G505a                     =       GGD3000 +      GCO     +      GHO2    +      GCO      : ARR( 0.200E+15,  2628., 0.0);
+{ 59804} GAG500I +GHO                =       G2A504s                                               : ARR( 0.202E-11,     0., 0.0);
+{ 59805} GAG500I +GHO                =       G2A504t                                               : ARR( 0.862E-12,     0., 0.0);
+{ 59806} GAG500I +GHO                =       G3A500s                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 59807} GAG500I +GHO                =       G2G400H +      GCO2                                   : ARR( 0.520E-12,     0., 0.0);
+{ 59808} GAG500I+HV               =       GAA4000 +      GCO2                                   :  0.100E+01*SUN;
+{ 59809} G2A504s +GNO                =       G1A506p +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 59810} G2A504s +GNO                =       GAG500o                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 59811} G2A504s +GHO2               =       GAG5018                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 59812} G2A504s +GNO3               =       G1A506p +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 59813} G2A504s +MEPERO             =  0.340G1A506p + 0.330GAG500R + 0.330GAG5019                 : ARR( 0.565E-13,  -845., 0.0);
+{ 59814} G2A504s +PERO1              =  0.460G1A506p + 0.270GAG500R + 0.270GAG5019                 : ARR( 0.434E-13,  -900., 0.0);
+{ 59815} G2A504s +PERO2              =  0.400G1A506p + 0.300GAG500R + 0.300GAG5019                 : ARR( 0.162E-13, -1400., 0.0);
+{ 59816} G2A504s +PERO3              =  0.460G1A506p + 0.270GAG500R + 0.270GAG5019                 : ARR( 0.488E-13, -1250., 0.0);
+{ 59817} G2A504s +PERO5              =  0.460G1A506p + 0.270GAG500R + 0.270GAG5019                 : ARR( 0.183E-11,   450., 0.0);
+{ 59818} G2A504s +PERO6              =  0.300G1A506p + 0.350GAG500R + 0.350GAG5019                 : ARR( 0.168E-13, -1300., 0.0);
+{ 59819} G2A504s +PERO9              =  0.650G1A506p + 0.350GAG5019                                : ARR( 0.100E-10,     0., 0.0);
+{ 59820} G2A504t +GNO                =       G1A506q +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 59821} G2A504t +GNO                =       GAG500q                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 59822} G2A504t +GHO2               =       GAG500y                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 59823} G2A504t +GNO3               =       G1A506q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 59824} G2A504t +MEPERO             =  0.340G1A506q + 0.330GAG500a + 0.330GAG500g                 : ARR( 0.565E-13,  -845., 0.0);
+{ 59825} G2A504t +PERO1              =  0.460G1A506q + 0.270GAG500a + 0.270GAG500g                 : ARR( 0.434E-13,  -900., 0.0);
+{ 59826} G2A504t +PERO2              =  0.400G1A506q + 0.300GAG500a + 0.300GAG500g                 : ARR( 0.162E-13, -1400., 0.0);
+{ 59827} G2A504t +PERO3              =  0.460G1A506q + 0.270GAG500a + 0.270GAG500g                 : ARR( 0.488E-13, -1250., 0.0);
+{ 59828} G2A504t +PERO5              =  0.460G1A506q + 0.270GAG500a + 0.270GAG500g                 : ARR( 0.183E-11,   450., 0.0);
+{ 59829} G2A504t +PERO6              =  0.300G1A506q + 0.350GAG500a + 0.350GAG500g                 : ARR( 0.168E-13, -1300., 0.0);
+{ 59830} G2A504t +PERO9              =  0.650G1A506q + 0.350GAG500g                                : ARR( 0.100E-10,     0., 0.0);
+{ 59831} G3A500s +GHO2               =  0.800GAG500I + 0.200GAA500C + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 59832} G3A500s +GNO                =       G3A4000 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 59833} G3A500s +GNO2               =       GPA500O                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 59834} G3A500s +GNO3               =       G3A4000 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 59835} G3A500s +MEPERO             =  0.685G3A4000 + 0.315GAA500C + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 59836} G3A500s +PERO1              =  0.800G3A4000 + 0.200GAA500C + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 59837} G3A500s +PERO2              =  0.750G3A4000 + 0.250GAA500C + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 59838} G3A500s +PERO3              =  0.800G3A4000 + 0.200GAA500C + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 59839} G3A500s +PERO5              =  0.650G3A4000 + 0.350GAA500C + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 59840} G3A500s +PERO6              =  0.650G3A4000 + 0.350GAA500C + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 59841} G3A500s +PERO9              =       G3A4000 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 59842} G1A506p                     =       GCO     +      GGD4005 +      GHO                     : ARR( 0.200E+15,  4535., 0.0);
+{ 59843} G1A506q                     =       GAD3000 +      GCO     +      GHO2    +      GCO      : ARR( 0.200E+15,  2628., 0.0);
+{ 59844} GPG500G                     =       G3G500E +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 59845} GPG500G +GHO                =       G2P505E                                               : ARR( 0.862E-12,     0., 0.0);
+{ 59846} GPG500G +GHO                =       G2P505F                                               : ARR( 0.273E-11,     0., 0.0);
+{ 59847} GPG500G +GHO                =       G3P500s                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 59848} GPG500G+HV               =       GPA4000 +      GCO2                                   :  0.100E+01*SUN;
+{ 59849} GPG500G+HV               =       G3G500E +      GNO2                                   :  0.100E+01*SUN;
+{ 59850} G2P505E +GNO                =       G1P507Q +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 59851} G2P505E +GNO                =       GPG500u                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 59852} G2P505E +GHO2               =       GPG5011                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 59853} G2P505E +GNO3               =       G1P507Q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 59854} G2P505E +MEPERO             =  0.340G1P507Q + 0.330GPG500Z + 0.330GPG500d                 : ARR( 0.565E-13,  -845., 0.0);
+{ 59855} G2P505E +PERO1              =  0.460G1P507Q + 0.270GPG500Z + 0.270GPG500d                 : ARR( 0.434E-13,  -900., 0.0);
+{ 59856} G2P505E +PERO2              =  0.400G1P507Q + 0.300GPG500Z + 0.300GPG500d                 : ARR( 0.162E-13, -1400., 0.0);
+{ 59857} G2P505E +PERO3              =  0.460G1P507Q + 0.270GPG500Z + 0.270GPG500d                 : ARR( 0.488E-13, -1250., 0.0);
+{ 59858} G2P505E +PERO5              =  0.460G1P507Q + 0.270GPG500Z + 0.270GPG500d                 : ARR( 0.183E-11,   450., 0.0);
+{ 59859} G2P505E +PERO6              =  0.300G1P507Q + 0.350GPG500Z + 0.350GPG500d                 : ARR( 0.168E-13, -1300., 0.0);
+{ 59860} G2P505E +PERO9              =  0.650G1P507Q + 0.350GPG500d                                : ARR( 0.100E-10,     0., 0.0);
+{ 59861} G2P505F +GNO                =       G1P507R +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 59862} G2P505F +GNO                =       GPG500q                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 59863} G2P505F +GHO2               =       GPG5018                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 59864} G2P505F +GNO3               =       G1P507R +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 59865} G2P505F +MEPERO             =  0.340G1P507R + 0.330GPG500P + 0.330GPG5019                 : ARR( 0.565E-13,  -845., 0.0);
+{ 59866} G2P505F +PERO1              =  0.460G1P507R + 0.270GPG500P + 0.270GPG5019                 : ARR( 0.434E-13,  -900., 0.0);
+{ 59867} G2P505F +PERO2              =  0.400G1P507R + 0.300GPG500P + 0.300GPG5019                 : ARR( 0.162E-13, -1400., 0.0);
+{ 59868} G2P505F +PERO3              =  0.460G1P507R + 0.270GPG500P + 0.270GPG5019                 : ARR( 0.488E-13, -1250., 0.0);
+{ 59869} G2P505F +PERO5              =  0.460G1P507R + 0.270GPG500P + 0.270GPG5019                 : ARR( 0.183E-11,   450., 0.0);
+{ 59870} G2P505F +PERO6              =  0.300G1P507R + 0.350GPG500P + 0.350GPG5019                 : ARR( 0.168E-13, -1300., 0.0);
+{ 59871} G2P505F +PERO9              =  0.650G1P507R + 0.350GPG5019                                : ARR( 0.100E-10,     0., 0.0);
+{ 59872} G3P500s +GHO2               =  0.800GPG500G + 0.200GPA500J + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 59873} G3P500s +GNO                =       G3P4000 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 59874} G3P500s +GNO2               =       GPP500C                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 59875} G3P500s +GNO3               =       G3P4000 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 59876} G3P500s +MEPERO             =  0.685G3P4000 + 0.315GPA500J + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 59877} G3P500s +PERO1              =  0.800G3P4000 + 0.200GPA500J + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 59878} G3P500s +PERO2              =  0.750G3P4000 + 0.250GPA500J + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 59879} G3P500s +PERO3              =  0.800G3P4000 + 0.200GPA500J + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 59880} G3P500s +PERO5              =  0.650G3P4000 + 0.350GPA500J + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 59881} G3P500s +PERO6              =  0.650G3P4000 + 0.350GPA500J + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 59882} G3P500s +PERO9              =       G3P4000 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 59883} G1P507Q                     =       GCO     +      GPD3000 +      GHO2    +      GCO      : ARR( 0.200E+15,  2628., 0.0);
+{ 59884} G1P507R                     =       GGD4005 +      GCO     +      GNO2                    : ARR( 0.200E+15,  4566., 0.0);
+{ 59885} GGH503D +GHO                =       GGH502z +      GHO                                    : ARR( 0.268E-10,     0., 0.0);
+{ 59886} GGH503D +GHO                =       GGH502F +      GHO                                    : ARR( 0.139E-09,     0., 0.0);
+{ 59887} GGH503D +GHO                =       G3G500q                                               : ARR( 0.221E-10,     0., 0.0);
+{ 59888} GGH503D +GNO3               =       G3G500q +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 59889} GGH503D+HV               =       GHD400C +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 59890} GGH503D+HV               =       G1G505A +      GHO                                    :  0.100E+01*SUN;
+{ 59891} GGH503D+HV               =       G1G502d +      GHO                                    :  0.100E+01*SUN;
+{ 59892} GGH503D+HV               =       G2G4016 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 59893} GGH503D+HV               =       GGD3002 +      GD02000 + 2.000GHO                     :  0.100E+01*SUN;
+{ 59894} G3G500q +GHO2               =  0.800GGG500b + 0.200GAG501A + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 59895} G3G500q +GNO                =       G2G4016 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 59896} G3G500q +GNO2               =       GPG501A                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 59897} G3G500q +GNO3               =       G2G4016 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 59898} G3G500q +MEPERO             =  0.685G2G4016 + 0.315GAG501A + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 59899} G3G500q +PERO1              =  0.800G2G4016 + 0.200GAG501A + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 59900} G3G500q +PERO2              =  0.750G2G4016 + 0.250GAG501A + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 59901} G3G500q +PERO3              =  0.800G2G4016 + 0.200GAG501A + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 59902} G3G500q +PERO5              =  0.650G2G4016 + 0.350GAG501A + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 59903} G3G500q +PERO6              =  0.650G2G4016 + 0.350GAG501A + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 59904} G3G500q +PERO9              =       G2G4016 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 59905} G2G4016 +GNO                =       G1G400q +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 59906} G2G4016 +GNO                =       GGH400N                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 59907} G2G4016 +GHO2               =       GGH400w                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 59908} G2G4016 +GNO3               =       G1G400q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 59909} G2G4016 +MEPERO             =  0.480G1G400q + 0.260GGH400Y + 0.260GGH400v                 : ARR( 0.164E-12,  -795., 0.0);
+{ 59910} G2G4016 +PERO1              =  0.600G1G400q + 0.200GGH400Y + 0.200GGH400v                 : ARR( 0.126E-12,  -850., 0.0);
+{ 59911} G2G4016 +PERO2              =  0.560G1G400q + 0.220GGH400Y + 0.220GGH400v                 : ARR( 0.471E-13, -1350., 0.0);
+{ 59912} G2G4016 +PERO3              =  0.600G1G400q + 0.200GGH400Y + 0.200GGH400v                 : ARR( 0.142E-12, -1200., 0.0);
+{ 59913} G2G4016 +PERO5              =  0.600G1G400q + 0.200GGH400Y + 0.200GGH400v                 : ARR( 0.533E-11,   500., 0.0);
+{ 59914} G2G4016 +PERO6              =  0.460G1G400q + 0.270GGH400Y + 0.270GGH400v                 : ARR( 0.488E-13, -1250., 0.0);
+{ 59915} G2G4016 +PERO9              =  0.800G1G400q + 0.200GGH400v                                : ARR( 0.100E-10,     0., 0.0);
+{ 59916} GGG500A +GHO                =       GGG5009 +      GHO                                    : ARR( 0.267E-10,     0., 0.0);
+{ 59917} GGG500A +GHO                =       G3G500F                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 59918} GGG500A +GHO                =       G2G503x                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 59919} GGG500A +GHO                =       G3G500H                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 59920} GGG500A+HV               =       G2G400Y +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 59921} GGG500A+HV               =       G1G505T +      GHO                                    :  0.100E+01*SUN;
+{ 59922} GGG500A+HV               =       GGD4000 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 59923} G2G503x +GNO                =       G1G505T +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 59924} G2G503x +GNO                =       GGG5008                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 59925} G2G503x +GHO2               =       GGG500A                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 59926} G2G503x +GNO3               =       G1G505T +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 59927} G2G503x +MEPERO             =  0.340G1G505T + 0.330GGG5000 + 0.330GGG5009                 : ARR( 0.565E-13,  -845., 0.0);
+{ 59928} G2G503x +PERO1              =  0.460G1G505T + 0.270GGG5000 + 0.270GGG5009                 : ARR( 0.434E-13,  -900., 0.0);
+{ 59929} G2G503x +PERO2              =  0.400G1G505T + 0.300GGG5000 + 0.300GGG5009                 : ARR( 0.162E-13, -1400., 0.0);
+{ 59930} G2G503x +PERO3              =  0.460G1G505T + 0.270GGG5000 + 0.270GGG5009                 : ARR( 0.488E-13, -1250., 0.0);
+{ 59931} G2G503x +PERO5              =  0.460G1G505T + 0.270GGG5000 + 0.270GGG5009                 : ARR( 0.183E-11,   450., 0.0);
+{ 59932} G2G503x +PERO6              =  0.300G1G505T + 0.350GGG5000 + 0.350GGG5009                 : ARR( 0.168E-13, -1300., 0.0);
+{ 59933} G2G503x +PERO9              =  0.650G1G505T + 0.350GGG5009                                : ARR( 0.100E-10,     0., 0.0);
+{ 59934} GAG500J +GHO                =       GAG500I +      GHO                                    : ARR( 0.271E-10,     0., 0.0);
+{ 59935} GAG500J +GHO                =       G2A5035                                               : ARR( 0.205E-11,  -190., 0.0);
+{ 59936} GAG500J +GHO                =       G3A500M                                               : ARR( 0.205E-11,  -190., 0.0);
+{ 59937} GAG500J+HV               =       G1A503v +      GHO                                    :  0.100E+01*SUN;
+{ 59938} GAG500J+HV               =       GAD4000 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 59939} GPG500H                     =       G3G500F +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 59940} GPG500H +GHO                =       GPG500G +      GHO                                    : ARR( 0.269E-10,     0., 0.0);
+{ 59941} GPG500H +GHO                =       G3P500K                                               : ARR( 0.203E-11,  -190., 0.0);
+{ 59942} GPG500H +GHO                =       G2P505G                                               : ARR( 0.203E-11,  -190., 0.0);
+{ 59943} GPG500H+HV               =       GPD4000 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 59944} GPG500H+HV               =       G1P507N +      GHO                                    :  0.100E+01*SUN;
+{ 59945} GPG500H+HV               =       G3G500F +      GNO2                                   :  0.100E+01*SUN;
+{ 59946} G2P505G +GNO                =       G1P507N +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 59947} G2P505G +GNO                =       GPG500F                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 59948} G2P505G +GHO2               =       GPG500H                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 59949} G2P505G +GNO3               =       G1P507N +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 59950} G2P505G +MEPERO             =  0.340G1P507N + 0.330GPG5000 + 0.330GPG500G                 : ARR( 0.565E-13,  -845., 0.0);
+{ 59951} G2P505G +PERO1              =  0.460G1P507N + 0.270GPG5000 + 0.270GPG500G                 : ARR( 0.434E-13,  -900., 0.0);
+{ 59952} G2P505G +PERO2              =  0.400G1P507N + 0.300GPG5000 + 0.300GPG500G                 : ARR( 0.162E-13, -1400., 0.0);
+{ 59953} G2P505G +PERO3              =  0.460G1P507N + 0.270GPG5000 + 0.270GPG500G                 : ARR( 0.488E-13, -1250., 0.0);
+{ 59954} G2P505G +PERO5              =  0.460G1P507N + 0.270GPG5000 + 0.270GPG500G                 : ARR( 0.183E-11,   450., 0.0);
+{ 59955} G2P505G +PERO6              =  0.300G1P507N + 0.350GPG5000 + 0.350GPG500G                 : ARR( 0.168E-13, -1300., 0.0);
+{ 59956} G2P505G +PERO9              =  0.650G1P507N + 0.350GPG500G                                : ARR( 0.100E-10,     0., 0.0);
+{ 59957} GGN502H +GHO                =       GGN502r +      GHO2                                   : ARR( 0.253E-11,     0., 0.0);
+{ 59958} GGN502H +GHO                =       G3N502S                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 59959} GGN502H+HV               =       G3K2001 +      GGD3002 +      GNO2                    :  0.100E+01*SUN;
+{ 59960} GGN502H+HV               =       G1G502e +      GNO2                                   :  0.100E+01*SUN;
+{ 59961} GGN502H+HV               =       GAN400X +      GCO2                                   :  0.100E+01*SUN;
+{ 59962} GGK500c +GHO                =       GGD500O +      GHO2                                   : ARR( 0.251E-11,     0., 0.0);
+{ 59963} GGK500c +GHO                =       G3K500q                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 59964} GGK500c+HV               =       G3K2001 +      GCO     +      GHO2    + 2.000GCO      :  0.100E+01*SUN;
+{ 59965} GGK500c+HV               =       G3K2001 +      GCO     + 2.000GCO     +      GHO2     :  0.100E+01*SUN;
+{ 59966} GGK500c+HV               =       GAK4009 +      GCO2                                   :  0.100E+01*SUN;
+{ 59967} GGG500B +GHO                =       GGG500Y +      GHO2                                   : ARR( 0.651E-11,     0., 0.0);
+{ 59968} GGG500B +GHO                =       G3G500J                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 59969} GGG500B +GHO                =       G3G500I                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 59970} GGG500B+HV               =       GGN400M +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 59971} GGG500B+HV               =       G1G502f +      GNO2                                   :  0.100E+01*SUN;
+{ 59972} GGG500B+HV               =       GGD4002 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 59973} GGG500C +GHO                =       GGG500Z +      GHO2                                   : ARR( 0.651E-11,     0., 0.0);
+{ 59974} GGG500C +GHO                =       GGG500D +      GHO                                    : ARR( 0.261E-10,     0., 0.0);
+{ 59975} GGG500C +GHO                =       G3G500L                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 59976} GGG500C +GHO                =       G2G501z                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 59977} GGG500C +GHO                =       G3G500K                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 59978} GGG500C+HV               =       GGH400R +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 59979} GGG500C+HV               =       G1G502f +      GHO                                    :  0.100E+01*SUN;
+{ 59980} GGG500C+HV               =       GGD4002 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 59981} GGG500D +GHO                =       GGG500a +      GHO2                                   : ARR( 0.207E-10,     0., 0.0);
+{ 59982} GGG500D +GHO                =       G3G500O                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 59983} GGG500D +GHO                =       G3G500r                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 59984} GGG500D+HV               =       GGD4005 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 59985} GGG500D+HV               =       GAG4005 +      GCO2                                   :  0.100E+01*SUN;
+{ 59986} G3G500r +GHO2               =  0.800GGG500D + 0.200GAG500M + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 59987} G3G500r +GNO                =       G3G4002 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 59988} G3G500r +GNO2               =       GPG500K                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 59989} G3G500r +GNO3               =       G3G4002 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 59990} G3G500r +MEPERO             =  0.685G3G4002 + 0.315GAG500M + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 59991} G3G500r +PERO1              =  0.800G3G4002 + 0.200GAG500M + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 59992} G3G500r +PERO2              =  0.750G3G4002 + 0.250GAG500M + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 59993} G3G500r +PERO3              =  0.800G3G4002 + 0.200GAG500M + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 59994} G3G500r +PERO5              =  0.650G3G4002 + 0.350GAG500M + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 59995} G3G500r +PERO6              =  0.650G3G4002 + 0.350GAG500M + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 59996} G3G500r +PERO9              =       G3G4002 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 59997} GAG500K +GHO                =       GAG500o +      GHO2                                   : ARR( 0.692E-11,     0., 0.0);
+{ 59998} GAG500K +GHO                =       G3A500N                                               : ARR( 0.209E-11,  -190., 0.0);
+{ 59999} GAG500K+HV               =       G1A503A +      GNO2                                   :  0.100E+01*SUN;
+{ 60000} GAG500K+HV               =       GAN400N +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 60001} GAG500L +GHO                =       GAG500M +      GHO                                    : ARR( 0.198E-10,     0., 0.0);
+{ 60002} GAG500L +GHO                =       GAG5018 +      GHO2                                   : ARR( 0.669E-11,     0., 0.0);
+{ 60003} GAG500L +GHO                =       G2A502f                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 60004} GAG500L +GHO                =       G3A500O                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 60005} GAG500L+HV               =       G1A503A +      GHO                                    :  0.100E+01*SUN;
+{ 60006} GAG500L+HV               =       GAH400Q +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 60007} GAG500M +GHO                =       GAG5019 +      GHO2                                   : ARR( 0.212E-10,     0., 0.0);
+{ 60008} GAG500M +GHO                =       G3A500R                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 60009} GAG500M+HV               =       GGD4002 +      GCO2                                   :  0.100E+01*SUN;
+{ 60010} GAG500M+HV               =       GAD4005 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 60011} GPG500I                     =       G3G500I +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 60012} GPG500I +GHO                =       GPG500q +      GHO2                                   : ARR( 0.660E-11,     0., 0.0);
+{ 60013} GPG500I +GHO                =       G3P500L                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 60014} GPG500I+HV               =       GPN400N +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 60015} GPG500I+HV               =       G1P503M +      GNO2                                   :  0.100E+01*SUN;
+{ 60016} GPG500I+HV               =       G3G500I +      GNO2                                   :  0.100E+01*SUN;
+{ 60017} GPG500J                     =       G3G500K +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 60018} GPG500J +GHO                =       GPG5018 +      GHO2                                   : ARR( 0.654E-11,     0., 0.0);
+{ 60019} GPG500J +GHO                =       GPG500K +      GHO                                    : ARR( 0.261E-10,     0., 0.0);
+{ 60020} GPG500J +GHO                =       G3P500M                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 60021} GPG500J +GHO                =       G2P502k                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 60022} GPG500J+HV               =       GPH400U +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 60023} GPG500J+HV               =       G1P503M +      GHO                                    :  0.100E+01*SUN;
+{ 60024} GPG500J+HV               =       G3G500K +      GNO2                                   :  0.100E+01*SUN;
+{ 60025} GPG500K                     =       G3G500r +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 60026} GPG500K +GHO                =       GPG5019 +      GHO2                                   : ARR( 0.208E-10,     0., 0.0);
+{ 60027} GPG500K +GHO                =       G3P500P                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 60028} GPG500K+HV               =       GPD4005 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 60029} GPG500K+HV               =       G3G4002 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 60030} GAH503Y +GHO                =       GAN502S +      GHO                                    : ARR( 0.167E-11,     0., 0.0);
+{ 60031} GAH503Y +GHO                =       G2A502h                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 60032} GAH503Y +GHO                =       GHN400v +      GNO2    +      GCO2                    : ARR( 0.528E-12,     0., 0.0);
+{ 60033} GAH503Y+HV               =       G1A506r +      GNO2                                   :  0.100E+01*SUN;
+{ 60034} GAH503Y+HV               =       G1A503F +      GHO                                    :  0.100E+01*SUN;
+{ 60035} GAH503Y+HV               =       G1A506s +      GNO2                                   :  0.100E+01*SUN;
+{ 60036} GAH503Y+HV               =       G1A506t +      GNO2                                   :  0.100E+01*SUN;
+{ 60037} G1A506r                     =       GCO     +      GHN400v +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 60038} G1A506s                     =       GAN3006 +      GND2000 +      GHO                     : ARR( 0.200E+15,  4826., 0.0);
+{ 60039} G1A506t +OXYGEN             =       GAH5058 +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 60040} G1A506t                     =       GAH503G +      GNO2                                   : ARR( 0.800E+11,  4379., 0.0);
+{ 60041} G1A506t                     =       GAH400r +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7042., 0.0);
+{ 60042} GAN502b +GHO                =       G3A500t                                               : ARR( 0.432E-11,     0., 0.0);
+{ 60043} GAN502b +GHO                =       GND400D +      GNO2    +      GCO2                    : ARR( 0.540E-12,     0., 0.0);
+{ 60044} GAN502b +GNO3               =       G3A500t +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 60045} GAN502b+HV               =       G1A5046 +      GNO2                                   :  0.100E+01*SUN;
+{ 60046} GAN502b+HV               =       G1A506u +      GNO2                                   :  0.100E+01*SUN;
+{ 60047} GAN502b+HV               =       GAN400N +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 60048} GAN502b+HV               =       G2A3006 +      GND2000 +      GNO2                    :  0.100E+01*SUN;
+{ 60049} G3A500t +GHO2               =  0.800GAG500m + 0.200GAA500Y + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 60050} G3A500t +GNO                =       GAN400N + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 60051} G3A500t +GNO2               =       GPA500y                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 60052} G3A500t +GNO3               =       GAN400N + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 60053} G3A500t +MEPERO             =  0.685GAN400N + 0.315GAA500Y + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60054} G3A500t +PERO1              =  0.800GAN400N + 0.200GAA500Y + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60055} G3A500t +PERO2              =  0.750GAN400N + 0.250GAA500Y + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60056} G3A500t +PERO3              =  0.800GAN400N + 0.200GAA500Y + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60057} G3A500t +PERO5              =  0.650GAN400N + 0.350GAA500Y + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60058} G3A500t +PERO6              =  0.650GAN400N + 0.350GAA500Y + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60059} G3A500t +PERO9              =       GAN400N +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 60060} G1A506u                     =       GAN400N +      GCO     +      GHO2                    : ARR( 0.200E+15,  5437., 0.0);
+{ 60061} GAH503Z +GHO                =       GAN5024 +      GHO                                    : ARR( 0.259E-10,     0., 0.0);
+{ 60062} GAH503Z +GHO                =       G3A500u                                               : ARR( 0.214E-10,     0., 0.0);
+{ 60063} GAH503Z +GHO                =       G2A504u                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 60064} GAH503Z +GNO3               =       G3A500u +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 60065} GAH503Z+HV               =       G1A506v +      GNO2                                   :  0.100E+01*SUN;
+{ 60066} GAH503Z+HV               =       G1A506u +      GHO                                    :  0.100E+01*SUN;
+{ 60067} GAH503Z+HV               =       GAN400N +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 60068} G3A500u +GHO2               =  0.800GAG500n + 0.200GAA500Z + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 60069} G3A500u +GNO                =       GAN400N +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 60070} G3A500u +GNO2               =       GPA500z                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 60071} G3A500u +GNO3               =       GAN400N +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 60072} G3A500u +MEPERO             =  0.685GAN400N + 0.315GAA500Z + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60073} G3A500u +PERO1              =  0.800GAN400N + 0.200GAA500Z + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60074} G3A500u +PERO2              =  0.750GAN400N + 0.250GAA500Z + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60075} G3A500u +PERO3              =  0.800GAN400N + 0.200GAA500Z + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60076} G3A500u +PERO5              =  0.650GAN400N + 0.350GAA500Z + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60077} G3A500u +PERO6              =  0.650GAN400N + 0.350GAA500Z + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60078} G3A500u +PERO9              =       GAN400N +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 60079} G2A504u +GNO                =       G1A506u +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 60080} G2A504u +GNO                =       GAN502b                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 60081} G2A504u +GHO2               =       GAH503Z                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 60082} G2A504u +GNO3               =       G1A506u +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 60083} G2A504u +MEPERO             =  0.340G1A506u + 0.330GAN501P + 0.330GAN5024                 : ARR( 0.565E-13,  -845., 0.0);
+{ 60084} G2A504u +PERO1              =  0.460G1A506u + 0.270GAN501P + 0.270GAN5024                 : ARR( 0.434E-13,  -900., 0.0);
+{ 60085} G2A504u +PERO2              =  0.400G1A506u + 0.300GAN501P + 0.300GAN5024                 : ARR( 0.162E-13, -1400., 0.0);
+{ 60086} G2A504u +PERO3              =  0.460G1A506u + 0.270GAN501P + 0.270GAN5024                 : ARR( 0.488E-13, -1250., 0.0);
+{ 60087} G2A504u +PERO5              =  0.460G1A506u + 0.270GAN501P + 0.270GAN5024                 : ARR( 0.183E-11,   450., 0.0);
+{ 60088} G2A504u +PERO6              =  0.300G1A506u + 0.350GAN501P + 0.350GAN5024                 : ARR( 0.168E-13, -1300., 0.0);
+{ 60089} G2A504u +PERO9              =  0.650G1A506u + 0.350GAN5024                                : ARR( 0.100E-10,     0., 0.0);
+{ 60090} G1A506v                     =       GCO     +      GHD400C +      GHO                     : ARR( 0.200E+15,  4918., 0.0);
+{ 60091} GAH503a +GHO                =       GAN502T +      GHO                                    : ARR( 0.513E-11,     0., 0.0);
+{ 60092} GAH503a +GHO                =       G2A502i                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 60093} GAH503a +GHO                =       GHN400R +      GNO2    +      GCO2                    : ARR( 0.531E-12,     0., 0.0);
+{ 60094} GAH503a+HV               =       G1A503q +      GNO2                                   :  0.100E+01*SUN;
+{ 60095} GAH503a+HV               =       G1A503I +      GHO                                    :  0.100E+01*SUN;
+{ 60096} GAH503a+HV               =       G3A400J +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{ 60097} GAH503a+HV               =       G1A506w +      GNO2                                   :  0.100E+01*SUN;
+{ 60098} G1A506w                     =       G3A400J +      GCH2O                                  : ARR( 0.200E+15,  3603., 0.0);
+{ 60099} GAH503b +GHO                =       GAN502U +      GHO                                    : ARR( 0.507E-11,     0., 0.0);
+{ 60100} GAH503b +GHO                =       G2A502k                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 60101} GAH503b +GHO                =       G3H400Z +      GCO2                                   : ARR( 0.525E-12,     0., 0.0);
+{ 60102} GAH503b+HV               =       GHN400v +      GCO2                                   :  0.100E+01*SUN;
+{ 60103} GAH503b+HV               =       G1A503M +      GHO                                    :  0.100E+01*SUN;
+{ 60104} GAH503b+HV               =       G1A506x +      GNO2                                   :  0.100E+01*SUN;
+{ 60105} GAH503b+HV               =       G1A506y +      GNO2                                   :  0.100E+01*SUN;
+{ 60106} G1A506x                     =       GAD3002 +      GND2000 +      GHO                     : ARR( 0.200E+15,  4553., 0.0);
+{ 60107} G1A506y +OXYGEN             =       GAH505B +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 60108} G1A506y                     =       GAH400s +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7175., 0.0);
+{ 60109} GAN502c +GHO                =       G3A500v                                               : ARR( 0.451E-11,     0., 0.0);
+{ 60110} GAN502c +GHO                =       G3N400H +      GCO2                                   : ARR( 0.564E-12,     0., 0.0);
+{ 60111} GAN502c +GNO3               =       G3A500v +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 60112} GAN502c+HV               =       GND400D +      GCO2                                   :  0.100E+01*SUN;
+{ 60113} GAN502c+HV               =       G1A503Q +      GNO2                                   :  0.100E+01*SUN;
+{ 60114} GAN502c+HV               =       GAD4005 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 60115} G3A500v +GHO2               =  0.800GAG5017 + 0.200GAA500a + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 60116} G3A500v +GNO                =       GAD4005 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 60117} G3A500v +GNO2               =       GPA5013                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 60118} G3A500v +GNO3               =       GAD4005 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 60119} G3A500v +MEPERO             =  0.685GAD4005 + 0.315GAA500a + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60120} G3A500v +PERO1              =  0.800GAD4005 + 0.200GAA500a + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60121} G3A500v +PERO2              =  0.750GAD4005 + 0.250GAA500a + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60122} G3A500v +PERO3              =  0.800GAD4005 + 0.200GAA500a + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60123} G3A500v +PERO5              =  0.650GAD4005 + 0.350GAA500a + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60124} G3A500v +PERO6              =  0.650GAD4005 + 0.350GAA500a + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60125} G3A500v +PERO9              =       GAD4005 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 60126} GAH503c +GHO                =       GAD500I +      GHO                                    : ARR( 0.851E-10,     0., 0.0);
+{ 60127} GAH503c +GHO                =       G3A500w                                               : ARR( 0.222E-10,     0., 0.0);
+{ 60128} GAH503c +GNO3               =       G3A500w +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 60129} GAH503c+HV               =       GHD400C +      GCO2                                   :  0.100E+01*SUN;
+{ 60130} GAH503c+HV               =       G1A503Q +      GHO                                    :  0.100E+01*SUN;
+{ 60131} GAH503c+HV               =       GAD4005 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 60132} G3A500w +GHO2               =  0.800GAG501B + 0.200GAA500h + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 60133} G3A500w +GNO                =       GAD4005 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 60134} G3A500w +GNO2               =       GPA501G                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 60135} G3A500w +GNO3               =       GAD4005 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 60136} G3A500w +MEPERO             =  0.685GAD4005 + 0.315GAA500h + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60137} G3A500w +PERO1              =  0.800GAD4005 + 0.200GAA500h + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60138} G3A500w +PERO2              =  0.750GAD4005 + 0.250GAA500h + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60139} G3A500w +PERO3              =  0.800GAD4005 + 0.200GAA500h + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60140} G3A500w +PERO5              =  0.650GAD4005 + 0.350GAA500h + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60141} G3A500w +PERO6              =  0.650GAD4005 + 0.350GAA500h + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60142} G3A500w +PERO9              =       GAD4005 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 60143} GAH503d +GHO                =       GAN502W +      GHO                                    : ARR( 0.158E-10,     0., 0.0);
+{ 60144} GAH503d +GHO                =       G2A502l                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 60145} GAH503d+HV               =       GHN400R +      GCO2                                   :  0.100E+01*SUN;
+{ 60146} GAH503d+HV               =       G1A503O +      GHO                                    :  0.100E+01*SUN;
+{ 60147} GAH503d+HV               =       G3A400K +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{ 60148} GAH503d+HV               =       G1A506z +      GNO2                                   :  0.100E+01*SUN;
+{ 60149} G1A506z                     =       G3A400K +      GCH2O                                  : ARR( 0.200E+15,  4349., 0.0);
+{ 60150} GAG500N +GHO                =       G2A504v                                               : ARR( 0.862E-12,     0., 0.0);
+{ 60151} GAG500N +GHO                =       G2A504w                                               : ARR( 0.273E-11,     0., 0.0);
+{ 60152} GAG500N +GHO                =       G3A500H                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 60153} GAG500N +GHO                =       G3G4000 +      GCO2                                   : ARR( 0.520E-12,     0., 0.0);
+{ 60154} GAG500N+HV               =       GGD4000 +      GCO2                                   :  0.100E+01*SUN;
+{ 60155} GAG500N+HV               =       G2A400S +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 60156} G2A504v +GNO                =       G1A5071 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 60157} G2A504v +GNO                =       GAG500Y                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 60158} G2A504v +GHO2               =       GAG5011                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 60159} G2A504v +GNO3               =       G1A5071 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 60160} G2A504v +MEPERO             =  0.340G1A5071 + 0.330GAG5014 + 0.330GAG500d                 : ARR( 0.565E-13,  -845., 0.0);
+{ 60161} G2A504v +PERO1              =  0.460G1A5071 + 0.270GAG5014 + 0.270GAG500d                 : ARR( 0.434E-13,  -900., 0.0);
+{ 60162} G2A504v +PERO2              =  0.400G1A5071 + 0.300GAG5014 + 0.300GAG500d                 : ARR( 0.162E-13, -1400., 0.0);
+{ 60163} G2A504v +PERO3              =  0.460G1A5071 + 0.270GAG5014 + 0.270GAG500d                 : ARR( 0.488E-13, -1250., 0.0);
+{ 60164} G2A504v +PERO5              =  0.460G1A5071 + 0.270GAG5014 + 0.270GAG500d                 : ARR( 0.183E-11,   450., 0.0);
+{ 60165} G2A504v +PERO6              =  0.300G1A5071 + 0.350GAG5014 + 0.350GAG500d                 : ARR( 0.168E-13, -1300., 0.0);
+{ 60166} G2A504v +PERO9              =  0.650G1A5071 + 0.350GAG500d                                : ARR( 0.100E-10,     0., 0.0);
+{ 60167} G2A504w +GNO                =       G1A5072 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 60168} G2A504w +GNO                =       GAG5017                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 60169} G2A504w +GHO2               =       GAG501B                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 60170} G2A504w +GNO3               =       G1A5072 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 60171} G2A504w +MEPERO             =  0.340G1A5072 + 0.330GAG500M + 0.330GAG5019                 : ARR( 0.565E-13,  -845., 0.0);
+{ 60172} G2A504w +PERO1              =  0.460G1A5072 + 0.270GAG500M + 0.270GAG5019                 : ARR( 0.434E-13,  -900., 0.0);
+{ 60173} G2A504w +PERO2              =  0.400G1A5072 + 0.300GAG500M + 0.300GAG5019                 : ARR( 0.162E-13, -1400., 0.0);
+{ 60174} G2A504w +PERO3              =  0.460G1A5072 + 0.270GAG500M + 0.270GAG5019                 : ARR( 0.488E-13, -1250., 0.0);
+{ 60175} G2A504w +PERO5              =  0.460G1A5072 + 0.270GAG500M + 0.270GAG5019                 : ARR( 0.183E-11,   450., 0.0);
+{ 60176} G2A504w +PERO6              =  0.300G1A5072 + 0.350GAG500M + 0.350GAG5019                 : ARR( 0.168E-13, -1300., 0.0);
+{ 60177} G2A504w +PERO9              =  0.650G1A5072 + 0.350GAG5019                                : ARR( 0.100E-10,     0., 0.0);
+{ 60178} G1A5071                     =       GCO     +      GGD3000 +      GHO     +      GCO      : ARR( 0.200E+15,  2628., 0.0);
+{ 60179} G1A5072                     =       GAD4005 +      GCO     +      GHO2                    : ARR( 0.200E+15,  4566., 0.0);
+{ 60180} GAA500C +GHO                =       G2A504x                                               : ARR( 0.202E-11,     0., 0.0);
+{ 60181} GAA500C +GHO                =       G2A504y                                               : ARR( 0.862E-12,     0., 0.0);
+{ 60182} GAA500C +GHO                =       G2A400S +      GCO2                                   : ARR( 0.520E-12,     0., 0.0);
+{ 60183} GAA500C +GHO                =       G3A4000 +      GCO2                                   : ARR( 0.520E-12,     0., 0.0);
+{ 60184} GAA500C+HV               =       GAD4000 +      GCO2                                   :  0.100E+01*SUN;
+{ 60185} G2A504x +GNO                =       G1A5073 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 60186} G2A504x +GNO                =       GAA500a                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 60187} G2A504x +GHO2               =       GAA500h                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 60188} G2A504x +GNO3               =       G1A5073 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 60189} G2A504x +MEPERO             =  0.340G1A5073 + 0.330GAA500G + 0.330GAA500i                 : ARR( 0.565E-13,  -845., 0.0);
+{ 60190} G2A504x +PERO1              =  0.460G1A5073 + 0.270GAA500G + 0.270GAA500i                 : ARR( 0.434E-13,  -900., 0.0);
+{ 60191} G2A504x +PERO2              =  0.400G1A5073 + 0.300GAA500G + 0.300GAA500i                 : ARR( 0.162E-13, -1400., 0.0);
+{ 60192} G2A504x +PERO3              =  0.460G1A5073 + 0.270GAA500G + 0.270GAA500i                 : ARR( 0.488E-13, -1250., 0.0);
+{ 60193} G2A504x +PERO5              =  0.460G1A5073 + 0.270GAA500G + 0.270GAA500i                 : ARR( 0.183E-11,   450., 0.0);
+{ 60194} G2A504x +PERO6              =  0.300G1A5073 + 0.350GAA500G + 0.350GAA500i                 : ARR( 0.168E-13, -1300., 0.0);
+{ 60195} G2A504x +PERO9              =  0.650G1A5073 + 0.350GAA500i                                : ARR( 0.100E-10,     0., 0.0);
+{ 60196} G2A504y +GNO                =       G1A5074 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 60197} G2A504y +GNO                =       GAA500N                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 60198} G2A504y +GHO2               =       GAA500e                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 60199} G2A504y +GNO3               =       G1A5074 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 60200} G2A504y +MEPERO             =  0.340G1A5074 + 0.330GAA500f + 0.330GAA500T                 : ARR( 0.565E-13,  -845., 0.0);
+{ 60201} G2A504y +PERO1              =  0.460G1A5074 + 0.270GAA500f + 0.270GAA500T                 : ARR( 0.434E-13,  -900., 0.0);
+{ 60202} G2A504y +PERO2              =  0.400G1A5074 + 0.300GAA500f + 0.300GAA500T                 : ARR( 0.162E-13, -1400., 0.0);
+{ 60203} G2A504y +PERO3              =  0.460G1A5074 + 0.270GAA500f + 0.270GAA500T                 : ARR( 0.488E-13, -1250., 0.0);
+{ 60204} G2A504y +PERO5              =  0.460G1A5074 + 0.270GAA500f + 0.270GAA500T                 : ARR( 0.183E-11,   450., 0.0);
+{ 60205} G2A504y +PERO6              =  0.300G1A5074 + 0.350GAA500f + 0.350GAA500T                 : ARR( 0.168E-13, -1300., 0.0);
+{ 60206} G2A504y +PERO9              =  0.650G1A5074 + 0.350GAA500T                                : ARR( 0.100E-10,     0., 0.0);
+{ 60207} G1A5073                     =       GAD4005 +      GCO     +      GHO                     : ARR( 0.200E+15,  4535., 0.0);
+{ 60208} G1A5074                     =       GAD3000 +      GCO     +      GHO     +      GCO      : ARR( 0.200E+15,  2628., 0.0);
+{ 60209} GPA500J                     =       G3A500H +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 60210} GPA500J +GHO                =       G2P505H                                               : ARR( 0.862E-12,     0., 0.0);
+{ 60211} GPA500J +GHO                =       G2P505I                                               : ARR( 0.273E-11,     0., 0.0);
+{ 60212} GPA500J +GHO                =       G3P4000 +      GCO2                                   : ARR( 0.520E-12,     0., 0.0);
+{ 60213} GPA500J+HV               =       GPD4000 +      GCO2                                   :  0.100E+01*SUN;
+{ 60214} GPA500J+HV               =       G3A500H +      GNO2                                   :  0.100E+01*SUN;
+{ 60215} G2P505H +GNO                =       G1P507S +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 60216} G2P505H +GNO                =       GPA500Z                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 60217} G2P505H +GHO2               =       GPA5017                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 60218} G2P505H +GNO3               =       G1P507S +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 60219} G2P505H +MEPERO             =  0.340G1P507S + 0.330GPA501A + 0.330GPA500m                 : ARR( 0.565E-13,  -845., 0.0);
+{ 60220} G2P505H +PERO1              =  0.460G1P507S + 0.270GPA501A + 0.270GPA500m                 : ARR( 0.434E-13,  -900., 0.0);
+{ 60221} G2P505H +PERO2              =  0.400G1P507S + 0.300GPA501A + 0.300GPA500m                 : ARR( 0.162E-13, -1400., 0.0);
+{ 60222} G2P505H +PERO3              =  0.460G1P507S + 0.270GPA501A + 0.270GPA500m                 : ARR( 0.488E-13, -1250., 0.0);
+{ 60223} G2P505H +PERO5              =  0.460G1P507S + 0.270GPA501A + 0.270GPA500m                 : ARR( 0.183E-11,   450., 0.0);
+{ 60224} G2P505H +PERO6              =  0.300G1P507S + 0.350GPA501A + 0.350GPA500m                 : ARR( 0.168E-13, -1300., 0.0);
+{ 60225} G2P505H +PERO9              =  0.650G1P507S + 0.350GPA500m                                : ARR( 0.100E-10,     0., 0.0);
+{ 60226} G2P505I +GNO                =       G1P507T +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 60227} G2P505I +GNO                =       GPA5013                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 60228} G2P505I +GHO2               =       GPA501G                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 60229} G2P505I +GNO3               =       G1P507T +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 60230} G2P505I +MEPERO             =  0.340G1P507T + 0.330GPA500S + 0.330GPA501H                 : ARR( 0.565E-13,  -845., 0.0);
+{ 60231} G2P505I +PERO1              =  0.460G1P507T + 0.270GPA500S + 0.270GPA501H                 : ARR( 0.434E-13,  -900., 0.0);
+{ 60232} G2P505I +PERO2              =  0.400G1P507T + 0.300GPA500S + 0.300GPA501H                 : ARR( 0.162E-13, -1400., 0.0);
+{ 60233} G2P505I +PERO3              =  0.460G1P507T + 0.270GPA500S + 0.270GPA501H                 : ARR( 0.488E-13, -1250., 0.0);
+{ 60234} G2P505I +PERO5              =  0.460G1P507T + 0.270GPA500S + 0.270GPA501H                 : ARR( 0.183E-11,   450., 0.0);
+{ 60235} G2P505I +PERO6              =  0.300G1P507T + 0.350GPA500S + 0.350GPA501H                 : ARR( 0.168E-13, -1300., 0.0);
+{ 60236} G2P505I +PERO9              =  0.650G1P507T + 0.350GPA501H                                : ARR( 0.100E-10,     0., 0.0);
+{ 60237} G1P507S                     =       GCO     +      GPD3000 +      GHO     +      GCO      : ARR( 0.200E+15,  2628., 0.0);
+{ 60238} G1P507T                     =       GAD4005 +      GCO     +      GNO2                    : ARR( 0.200E+15,  4566., 0.0);
+{ 60239} GAH503e +GHO                =       GAH503b +      GHO2                                   : ARR( 0.484E-11,     0., 0.0);
+{ 60240} GAH503e +GHO                =       GAN502X +      GHO                                    : ARR( 0.859E-11,     0., 0.0);
+{ 60241} GAH503e +GHO                =       G2A502o                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 60242} GAH503e+HV               =       G1A503W +      GHO                                    :  0.100E+01*SUN;
+{ 60243} GAH503e+HV               =       G1A5075 +      GNO2                                   :  0.100E+01*SUN;
+{ 60244} GAH503e+HV               =       G1A5076 +      GNO2                                   :  0.100E+01*SUN;
+{ 60245} G1A5075                     =       GAD3001 +      GND2000 +      GHO                     : ARR( 0.200E+15,  4826., 0.0);
+{ 60246} G1A5076                     =       GAH503G +      GHO2                                   : ARR( 0.800E+11,  2381., 0.0);
+{ 60247} GAN502d +GHO                =       GAN502L +      GHO2                                   : ARR( 0.485E-11,     0., 0.0);
+{ 60248} GAN502d +GHO                =       GAN502X +      GHO2                                   : ARR( 0.215E-11,     0., 0.0);
+{ 60249} GAN502d +GHO                =       GNN400T +      GHO2    +      GCO2                    : ARR( 0.543E-12,     0., 0.0);
+{ 60250} GAN502d+HV               =       G1A5077 +      GNO2                                   :  0.100E+01*SUN;
+{ 60251} GAN502d+HV               =       G1A5078 +      GNO2                                   :  0.100E+01*SUN;
+{ 60252} G1A5077                     =       GAD3001 +      GND2000 +      GHO2                    : ARR( 0.200E+15,  3617., 0.0);
+{ 60253} G1A5078                     =       GAN502Q +      GHO2                                   : ARR( 0.800E+11,  2381., 0.0);
+{ 60254} GAH503f +GHO                =       GAH503U +      GHO                                    : ARR( 0.863E-11,     0., 0.0);
+{ 60255} GAH503f +GHO                =       GAH503G +      GHO                                    : ARR( 0.195E-10,     0., 0.0);
+{ 60256} GAH503f +GHO                =       G2A504z                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 60257} GAH503f +GHO                =       G2A502p                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 60258} GAH503f+HV               =       G1A5079 +      GNO2                                   :  0.100E+01*SUN;
+{ 60259} GAH503f+HV               =       G1A506C +      GHO                                    :  0.100E+01*SUN;
+{ 60260} GAH503f+HV               =       G1A503Z +      GHO                                    :  0.100E+01*SUN;
+{ 60261} G2A504z +GNO                =       G1A506C +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 60262} G2A504z +GNO                =       GAH5034                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 60263} G2A504z +GHO2               =       GAH503f                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 60264} G2A504z +GNO3               =       G1A506C +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 60265} G2A504z +MEPERO             =  0.340G1A506C + 0.330GAH503j + 0.330GAH503U                 : ARR( 0.565E-13,  -845., 0.0);
+{ 60266} G2A504z +PERO1              =  0.460G1A506C + 0.270GAH503j + 0.270GAH503U                 : ARR( 0.434E-13,  -900., 0.0);
+{ 60267} G2A504z +PERO2              =  0.400G1A506C + 0.300GAH503j + 0.300GAH503U                 : ARR( 0.162E-13, -1400., 0.0);
+{ 60268} G2A504z +PERO3              =  0.460G1A506C + 0.270GAH503j + 0.270GAH503U                 : ARR( 0.488E-13, -1250., 0.0);
+{ 60269} G2A504z +PERO5              =  0.460G1A506C + 0.270GAH503j + 0.270GAH503U                 : ARR( 0.183E-11,   450., 0.0);
+{ 60270} G2A504z +PERO6              =  0.300G1A506C + 0.350GAH503j + 0.350GAH503U                 : ARR( 0.168E-13, -1300., 0.0);
+{ 60271} G2A504z +PERO9              =  0.650G1A506C + 0.350GAH503U                                : ARR( 0.100E-10,     0., 0.0);
+{ 60272} G1A5079                     =       GCH2O   +      GAH400w +      GHO2                    : ARR( 0.200E+15,  5296., 0.0);
+{ 60273} G1A5079                     =       GDO2000 +      GAH3007 +      GHO                     : ARR( 0.200E+15,  4828., 0.0);
+{ 60274} GAH503g +GHO                =       GAN502Z +      GHO                                    : ARR( 0.910E-11,     0., 0.0);
+{ 60275} GAH503g +GHO                =       GAH503G +      GHO2                                   : ARR( 0.513E-11,     0., 0.0);
+{ 60276} GAH503g +GHO                =       G2A5051                                               : ARR( 0.210E-11,  -190., 0.0);
+{ 60277} GAH503g+HV               =       G1A507A +      GNO2                                   :  0.100E+01*SUN;
+{ 60278} GAH503g+HV               =       G1A505k +      GHO                                    :  0.100E+01*SUN;
+{ 60279} G2A5051 +GNO                =       G1A505k +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 60280} G2A5051 +GNO                =       GAN5027                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 60281} G2A5051 +GHO2               =       GAH503g                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 60282} G2A5051 +GNO3               =       G1A505k +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 60283} G2A5051 +MEPERO             =  0.340G1A505k + 0.330GAN502P + 0.330GAN502Z                 : ARR( 0.565E-13,  -845., 0.0);
+{ 60284} G2A5051 +PERO1              =  0.460G1A505k + 0.270GAN502P + 0.270GAN502Z                 : ARR( 0.434E-13,  -900., 0.0);
+{ 60285} G2A5051 +PERO2              =  0.400G1A505k + 0.300GAN502P + 0.300GAN502Z                 : ARR( 0.162E-13, -1400., 0.0);
+{ 60286} G2A5051 +PERO3              =  0.460G1A505k + 0.270GAN502P + 0.270GAN502Z                 : ARR( 0.488E-13, -1250., 0.0);
+{ 60287} G2A5051 +PERO5              =  0.460G1A505k + 0.270GAN502P + 0.270GAN502Z                 : ARR( 0.183E-11,   450., 0.0);
+{ 60288} G2A5051 +PERO6              =  0.300G1A505k + 0.350GAN502P + 0.350GAN502Z                 : ARR( 0.168E-13, -1300., 0.0);
+{ 60289} G2A5051 +PERO9              =  0.650G1A505k + 0.350GAN502Z                                : ARR( 0.100E-10,     0., 0.0);
+{ 60290} G1A507A                     =       GCH2O   +      GAH400o +      GHO2                    : ARR( 0.200E+15,  5296., 0.0);
+{ 60291} G1A507A                     =       GDO2000 +      GAD3001 +      GHO                     : ARR( 0.200E+15,  4828., 0.0);
+{ 60292} GAH503h +GHO                =       GAH505B +      GHO2                                   : ARR( 0.481E-11,     0., 0.0);
+{ 60293} GAH503h +GHO                =       GAN502t +      GHO                                    : ARR( 0.853E-11,     0., 0.0);
+{ 60294} GAH503h +GHO                =       G3A500x                                               : ARR( 0.430E-11,     0., 0.0);
+{ 60295} GAH503h +GHO                =       G2A5052                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 60296} GAH503h +GNO3               =       G3A500x +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 60297} GAH503h+HV               =       G1A506D +      GHO                                    :  0.100E+01*SUN;
+{ 60298} GAH503h+HV               =       G1A507B +      GNO2                                   :  0.100E+01*SUN;
+{ 60299} GAH503h+HV               =       GAH400o +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 60300} GAH503h+HV               =       GAH3006 +      GND2000                                :  0.100E+01*SUN;
+{ 60301} G3A500x +GHO2               =  0.800GAG501C + 0.200GAA500j + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 60302} G3A500x +GNO                =       GAH400o + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 60303} G3A500x +GNO2               =       GPA501I                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 60304} G3A500x +GNO3               =       GAH400o + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 60305} G3A500x +MEPERO             =  0.685GAH400o + 0.315GAA500j + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60306} G3A500x +PERO1              =  0.800GAH400o + 0.200GAA500j + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60307} G3A500x +PERO2              =  0.750GAH400o + 0.250GAA500j + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60308} G3A500x +PERO3              =  0.800GAH400o + 0.200GAA500j + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60309} G3A500x +PERO5              =  0.650GAH400o + 0.350GAA500j + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60310} G3A500x +PERO6              =  0.650GAH400o + 0.350GAA500j + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60311} G3A500x +PERO9              =       GAH400o +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 60312} G2A5052 +GNO                =       G1A506D +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 60313} G2A5052 +GNO                =       GAN502G                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 60314} G2A5052 +GHO2               =       GAH503h                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 60315} G2A5052 +GNO3               =       G1A506D +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 60316} G2A5052 +MEPERO             =  0.340G1A506D + 0.330GAN502e + 0.330GAN502t                 : ARR( 0.565E-13,  -845., 0.0);
+{ 60317} G2A5052 +PERO1              =  0.460G1A506D + 0.270GAN502e + 0.270GAN502t                 : ARR( 0.434E-13,  -900., 0.0);
+{ 60318} G2A5052 +PERO2              =  0.400G1A506D + 0.300GAN502e + 0.300GAN502t                 : ARR( 0.162E-13, -1400., 0.0);
+{ 60319} G2A5052 +PERO3              =  0.460G1A506D + 0.270GAN502e + 0.270GAN502t                 : ARR( 0.488E-13, -1250., 0.0);
+{ 60320} G2A5052 +PERO5              =  0.460G1A506D + 0.270GAN502e + 0.270GAN502t                 : ARR( 0.183E-11,   450., 0.0);
+{ 60321} G2A5052 +PERO6              =  0.300G1A506D + 0.350GAN502e + 0.350GAN502t                 : ARR( 0.168E-13, -1300., 0.0);
+{ 60322} G2A5052 +PERO9              =  0.650G1A506D + 0.350GAN502t                                : ARR( 0.100E-10,     0., 0.0);
+{ 60323} G1A507B                     =       GAD3001 +      GDD2000 +      GHO                     : ARR( 0.200E+15,  6241., 0.0);
+{ 60324} G1A507B                     =       GAH400o +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 60325} GAH503i +GHO                =       GAN502L +      GHO                                    : ARR( 0.191E-10,     0., 0.0);
+{ 60326} GAH503i +GHO                =       GAH503T +      GHO2                                   : ARR( 0.212E-11,     0., 0.0);
+{ 60327} GAH503i +GHO                =       G2A502q                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 60328} GAH503i+HV               =       G1A503c +      GHO                                    :  0.100E+01*SUN;
+{ 60329} GAH503i+HV               =       G1A507C +      GNO2                                   :  0.100E+01*SUN;
+{ 60330} GAH503i+HV               =       G1A507D +      GNO2                                   :  0.100E+01*SUN;
+{ 60331} G1A507C                     =       GAH3007 +      GND2000 +      GHO2                    : ARR( 0.200E+15,  3617., 0.0);
+{ 60332} G1A507D                     =       GAN502Q +      GHO                                    : ARR( 0.800E+11,  2034., 0.0);
+{ 60333} GAH503j +GHO                =       GAH503U +      GHO2                                   : ARR( 0.221E-11,     0., 0.0);
+{ 60334} GAH503j +GHO                =       GAN502Q +      GHO                                    : ARR( 0.199E-10,     0., 0.0);
+{ 60335} GAH503j +GHO                =       G2A502r                                               : ARR( 0.203E-11,  -190., 0.0);
+{ 60336} GAH503j+HV               =       G1A507E +      GNO2                                   :  0.100E+01*SUN;
+{ 60337} GAH503j+HV               =       G1A503d +      GHO                                    :  0.100E+01*SUN;
+{ 60338} G1A507E                     =       GDO2000 +      GAH3007 +      GHO2                    : ARR( 0.200E+15,  3619., 0.0);
+{ 60339} GAN502e +GHO                =       GAN502r +      GHO2                                   : ARR( 0.502E-11,     0., 0.0);
+{ 60340} GAN502e +GHO                =       GAN502t +      GHO2                                   : ARR( 0.223E-11,     0., 0.0);
+{ 60341} GAN502e +GHO                =       G3A500y                                               : ARR( 0.449E-11,     0., 0.0);
+{ 60342} GAN502e +GNO3               =       G3A500y +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 60343} GAN502e+HV               =       G1A507F +      GNO2                                   :  0.100E+01*SUN;
+{ 60344} GAN502e+HV               =       GAD4007 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 60345} GAN502e+HV               =       GAK3001 +      GND2000                                :  0.100E+01*SUN;
+{ 60346} G3A500y +GHO2               =  0.800GAG501D + 0.200GAA500k + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 60347} G3A500y +GNO                =       GAD4007 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 60348} G3A500y +GNO2               =       GPA501D                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 60349} G3A500y +GNO3               =       GAD4007 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 60350} G3A500y +MEPERO             =  0.685GAD4007 + 0.315GAA500k + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60351} G3A500y +PERO1              =  0.800GAD4007 + 0.200GAA500k + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60352} G3A500y +PERO2              =  0.750GAD4007 + 0.250GAA500k + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60353} G3A500y +PERO3              =  0.800GAD4007 + 0.200GAA500k + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60354} G3A500y +PERO5              =  0.650GAD4007 + 0.350GAA500k + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60355} G3A500y +PERO6              =  0.650GAD4007 + 0.350GAA500k + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60356} G3A500y +PERO9              =       GAD4007 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 60357} G1A507F                     =       GAD3001 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  5032., 0.0);
+{ 60358} G1A507F                     =       GAD4007 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 60359} GAG500O +GHO                =       GAG5017 +      GHO2                                   : ARR( 0.491E-11,     0., 0.0);
+{ 60360} GAG500O +GHO                =       G3A500I                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 60361} GAG500O +GHO                =       GGN400M +      GHO2    +      GCO2                    : ARR( 0.549E-12,     0., 0.0);
+{ 60362} GAG500O+HV               =       G1A5042 +      GNO2                                   :  0.100E+01*SUN;
+{ 60363} GAG500O+HV               =       GAD4002 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 60364} GAA500D +GHO                =       GAA500a +      GHO2                                   : ARR( 0.504E-11,     0., 0.0);
+{ 60365} GAA500D +GHO                =       GAN400N +      GHO2    +      GCO2                    : ARR( 0.564E-12,     0., 0.0);
+{ 60366} GAA500D +GHO                =       GAD4002 +      GNO2    +      GCO2                    : ARR( 0.564E-12,     0., 0.0);
+{ 60367} GAA500D+HV               =       G1A5043 +      GNO2                                   :  0.100E+01*SUN;
+{ 60368} GPA500K                     =       G3A500I +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 60369} GPA500K +GHO                =       GPA5013 +      GHO2                                   : ARR( 0.509E-11,     0., 0.0);
+{ 60370} GPA500K +GHO                =       GPN400N +      GHO2    +      GCO2                    : ARR( 0.570E-12,     0., 0.0);
+{ 60371} GPA500K+HV               =       G1P503R +      GNO2                                   :  0.100E+01*SUN;
+{ 60372} GPA500K+HV               =       G3A500I +      GNO2                                   :  0.100E+01*SUN;
+{ 60373} GAH503k +GHO                =       GAH504J +      GHO                                    : ARR( 0.475E-10,     0., 0.0);
+{ 60374} GAH503k +GHO                =       GAH505J +      GHO                                    : ARR( 0.475E-10,     0., 0.0);
+{ 60375} GAH503k +GHO                =       GAH503H +      GHO                                    : ARR( 0.214E-10,     0., 0.0);
+{ 60376} GAH503k+HV               =       G1A5079 +      GHO                                    :  0.100E+01*SUN;
+{ 60377} GAH503k+HV               =       G1A506F +      GHO                                    :  0.100E+01*SUN;
+{ 60378} GAH503k+HV               =       G1A503i +      GHO                                    :  0.100E+01*SUN;
+{ 60379} GAH503l +GHO                =       GAH502m +      GHO                                    : ARR( 0.495E-10,     0., 0.0);
+{ 60380} GAH503l +GHO                =       GAH5049 +      GHO                                    : ARR( 0.495E-10,     0., 0.0);
+{ 60381} GAH503l+HV               =       G1A507A +      GHO                                    :  0.100E+01*SUN;
+{ 60382} GAH503l+HV               =       G1A506G +      GHO                                    :  0.100E+01*SUN;
+{ 60383} GAH503m +GHO                =       GAH503q +      GHO                                    : ARR( 0.140E-09,     0., 0.0);
+{ 60384} GAH503m +GHO                =       GAH504W +      GHO                                    : ARR( 0.269E-10,     0., 0.0);
+{ 60385} GAH503m +GHO                =       G3A500z                                               : ARR( 0.222E-10,     0., 0.0);
+{ 60386} GAH503m +GNO3               =       G3A500z +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 60387} GAH503m+HV               =       G1A503l +      GHO                                    :  0.100E+01*SUN;
+{ 60388} GAH503m+HV               =       G1A507B +      GHO                                    :  0.100E+01*SUN;
+{ 60389} GAH503m+HV               =       GAH400o +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 60390} G3A500z +GHO2               =  0.800GAG501E + 0.200GAA500l + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 60391} G3A500z +GNO                =       GAH400o +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 60392} G3A500z +GNO2               =       GPA501J                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 60393} G3A500z +GNO3               =       GAH400o +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 60394} G3A500z +MEPERO             =  0.685GAH400o + 0.315GAA500l + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60395} G3A500z +PERO1              =  0.800GAH400o + 0.200GAA500l + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60396} G3A500z +PERO2              =  0.750GAH400o + 0.250GAA500l + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60397} G3A500z +PERO3              =  0.800GAH400o + 0.200GAA500l + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60398} G3A500z +PERO5              =  0.650GAH400o + 0.350GAA500l + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60399} G3A500z +PERO6              =  0.650GAH400o + 0.350GAA500l + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60400} G3A500z +PERO9              =       GAH400o +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 60401} GAH503n +GHO                =       GAH504K +      GHO                                    : ARR( 0.483E-10,     0., 0.0);
+{ 60402} GAH503n +GHO                =       GAH505J +      GHO2                                   : ARR( 0.121E-10,     0., 0.0);
+{ 60403} GAH503n +GHO                =       GAH503Q +      GHO                                    : ARR( 0.218E-10,     0., 0.0);
+{ 60404} GAH503n+HV               =       G1A507E +      GHO                                    :  0.100E+01*SUN;
+{ 60405} GAH503n+HV               =       G1A503k +      GHO                                    :  0.100E+01*SUN;
+{ 60406} GAH503o +GHO                =       GAH505E +      GHO2                                   : ARR( 0.489E-11,     0., 0.0);
+{ 60407} GAH503o +GHO                =       GAH503q +      GHO2                                   : ARR( 0.344E-10,     0., 0.0);
+{ 60408} GAH503o +GHO                =       GAD500M +      GHO                                    : ARR( 0.265E-10,     0., 0.0);
+{ 60409} GAH503o +GHO                =       G3A5011                                               : ARR( 0.219E-10,     0., 0.0);
+{ 60410} GAH503o +GNO3               =       G3A5011 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 60411} GAH503o+HV               =       G1A507F +      GHO                                    :  0.100E+01*SUN;
+{ 60412} GAH503o+HV               =       GAD4007 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 60413} G3A5011 +GHO2               =  0.800GAG501F + 0.200GAA500m + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 60414} G3A5011 +GNO                =       GAD4007 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 60415} G3A5011 +GNO2               =       GPA501E                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 60416} G3A5011 +GNO3               =       GAD4007 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 60417} G3A5011 +MEPERO             =  0.685GAD4007 + 0.315GAA500m + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60418} G3A5011 +PERO1              =  0.800GAD4007 + 0.200GAA500m + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60419} G3A5011 +PERO2              =  0.750GAD4007 + 0.250GAA500m + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60420} G3A5011 +PERO3              =  0.800GAD4007 + 0.200GAA500m + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60421} G3A5011 +PERO5              =  0.650GAD4007 + 0.350GAA500m + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60422} G3A5011 +PERO6              =  0.650GAD4007 + 0.350GAA500m + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60423} G3A5011 +PERO9              =       GAD4007 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 60424} GAH503p +GHO                =       GAH503c +      GHO                                    : ARR( 0.207E-10,     0., 0.0);
+{ 60425} GAH503p +GHO                =       G2A5053                                               : ARR( 0.498E-11,     0., 0.0);
+{ 60426} GAH503p +GHO                =       GAH503x +      GHO                                    : ARR( 0.279E-10,     0., 0.0);
+{ 60427} GAH503p +GHO                =       G3A5012                                               : ARR( 0.231E-10,     0., 0.0);
+{ 60428} GAH503p +GNO3               =       G3A5012 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 60429} GAH503p+HV               =       G1A506v +      GHO                                    :  0.100E+01*SUN;
+{ 60430} GAH503p+HV               =       G1A507G +      GHO                                    :  0.100E+01*SUN;
+{ 60431} GAH503p+HV               =       GAH400Q +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 60432} G2A5053 +GNO                =       G1A507H +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 60433} G2A5053 +GNO                =       GAH5057                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 60434} G2A5053 +GHO2               =       GAH505K                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 60435} G2A5053 +GNO3               =       G1A507H +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 60436} G2A5053 +MEPERO             =  0.340G1A507H + 0.330GAH505L + 0.330GAH505M                 : ARR( 0.565E-13,  -845., 0.0);
+{ 60437} G2A5053 +PERO1              =  0.460G1A507H + 0.270GAH505L + 0.270GAH505M                 : ARR( 0.434E-13,  -900., 0.0);
+{ 60438} G2A5053 +PERO2              =  0.400G1A507H + 0.300GAH505L + 0.300GAH505M                 : ARR( 0.162E-13, -1400., 0.0);
+{ 60439} G2A5053 +PERO3              =  0.460G1A507H + 0.270GAH505L + 0.270GAH505M                 : ARR( 0.488E-13, -1250., 0.0);
+{ 60440} G2A5053 +PERO5              =  0.460G1A507H + 0.270GAH505L + 0.270GAH505M                 : ARR( 0.183E-11,   450., 0.0);
+{ 60441} G2A5053 +PERO6              =  0.300G1A507H + 0.350GAH505L + 0.350GAH505M                 : ARR( 0.168E-13, -1300., 0.0);
+{ 60442} G2A5053 +PERO9              =  0.650G1A507H + 0.350GAH505M                                : ARR( 0.100E-10,     0., 0.0);
+{ 60443} G3A5012 +GHO2               =  0.800GAG501G + 0.200GAA500n + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 60444} G3A5012 +GNO                =       GAH400Q +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 60445} G3A5012 +GNO2               =       GPA501K                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 60446} G3A5012 +GNO3               =       GAH400Q +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 60447} G3A5012 +MEPERO             =  0.685GAH400Q + 0.315GAA500n + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60448} G3A5012 +PERO1              =  0.800GAH400Q + 0.200GAA500n + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60449} G3A5012 +PERO2              =  0.750GAH400Q + 0.250GAA500n + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60450} G3A5012 +PERO3              =  0.800GAH400Q + 0.200GAA500n + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60451} G3A5012 +PERO5              =  0.650GAH400Q + 0.350GAA500n + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60452} G3A5012 +PERO6              =  0.650GAH400Q + 0.350GAA500n + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60453} G3A5012 +PERO9              =       GAH400Q +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 60454} G1A507G                     =       GAH400Q +      GCO     +      GHO2                    : ARR( 0.200E+15,  5437., 0.0);
+{ 60455} G1A507H                     =       GAD2000 +      GHD3004 +      GHO                     : ARR( 0.200E+15,  4308., 0.0);
+{ 60456} G1A507H                     =       GAH3007 +      GDD2000 +      GHO                     : ARR( 0.200E+15,  4086., 0.0);
+{ 60457} GAH503q +GHO                =       GAD500O +      GHO                                    : ARR( 0.167E-10,     0., 0.0);
+{ 60458} GAH503q +GHO                =       G3A5013                                               : ARR( 0.716E-10,     0., 0.0);
+{ 60459} GAH503q +GNO3               =       G3A5013 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 60460} GAH503q+HV               =       G3A3002 +      GDD2000 +      GHO                     :  0.100E+01*SUN;
+{ 60461} GAH503q+HV               =       G1A507I +      GHO                                    :  0.100E+01*SUN;
+{ 60462} GAH503q+HV               =       GAD4006 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 60463} G3A5013 +GHO2               =  0.800GAG500i + 0.200GAA500W + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 60464} G3A5013 +GNO                =       GAD4006 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 60465} G3A5013 +GNO2               =       GPA500r                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 60466} G3A5013 +GNO3               =       GAD4006 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 60467} G3A5013 +MEPERO             =  0.685GAD4006 + 0.315GAA500W + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60468} G3A5013 +PERO1              =  0.800GAD4006 + 0.200GAA500W + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60469} G3A5013 +PERO2              =  0.750GAD4006 + 0.250GAA500W + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60470} G3A5013 +PERO3              =  0.800GAD4006 + 0.200GAA500W + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60471} G3A5013 +PERO5              =  0.650GAD4006 + 0.350GAA500W + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60472} G3A5013 +PERO6              =  0.650GAD4006 + 0.350GAA500W + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60473} G3A5013 +PERO9              =       GAD4006 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 60474} G1A507I                     =       G3A3002 +      GDD2000                                : ARR( 0.200E+15,  5662., 0.0);
+{ 60475} GAG500P +GHO                =       GAG501B +      GHO2                                   : ARR( 0.491E-11,     0., 0.0);
+{ 60476} GAG500P +GHO                =       GAG500R +      GHO                                    : ARR( 0.265E-10,     0., 0.0);
+{ 60477} GAG500P +GHO                =       G2A503C                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 60478} GAG500P +GHO                =       G3A500J                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 60479} GAG500P+HV               =       G1A5042 +      GHO                                    :  0.100E+01*SUN;
+{ 60480} GAG500P+HV               =       GAD4002 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 60481} GAA500E +GHO                =       GAA500h +      GHO2                                   : ARR( 0.510E-11,     0., 0.0);
+{ 60482} GAA500E +GHO                =       GAA500G +      GHO                                    : ARR( 0.204E-10,     0., 0.0);
+{ 60483} GAA500E +GHO                =       G2A503D                                               : ARR( 0.208E-11,  -190., 0.0);
+{ 60484} GAA500E+HV               =       G1A5043 +      GHO                                    :  0.100E+01*SUN;
+{ 60485} GPA500L                     =       G3A500J +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 60486} GPA500L +GHO                =       GPA501G +      GHO2                                   : ARR( 0.494E-11,     0., 0.0);
+{ 60487} GPA500L +GHO                =       GPA500P +      GHO                                    : ARR( 0.267E-10,     0., 0.0);
+{ 60488} GPA500L +GHO                =       G2P502p                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 60489} GPA500L+HV               =       G1P503R +      GHO                                    :  0.100E+01*SUN;
+{ 60490} GPA500L+HV               =       G3A500J +      GNO2                                   :  0.100E+01*SUN;
+{ 60491} GAG400A +GHO                =       GAG4003 +      GHO                                    : ARR( 0.196E-10,     0., 0.0);
+{ 60492} GAG400A +GHO                =       G2A400k                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 60493} GAG400A +GHO                =       G3A4008                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 60494} GAG400A+HV               =       G1A400s +      GHO                                    :  0.100E+01*SUN;
+{ 60495} GAG400A+HV               =       G2A300A +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 60496} GAA4006 +GHO                =       GAA4002 +      GHO                                    : ARR( 0.200E-10,     0., 0.0);
+{ 60497} GAA4006 +GHO                =       G2A400m                                               : ARR( 0.204E-11,  -190., 0.0);
+{ 60498} GAA4006+HV               =       G1A400u +      GHO                                    :  0.100E+01*SUN;
+{ 60499} GPA400B                     =       G3A4008 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 60500} GPA400B +GHO                =       GPA4003 +      GHO                                    : ARR( 0.198E-10,     0., 0.0);
+{ 60501} GPA400B +GHO                =       G2P400j                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 60502} GPA400B+HV               =       G1P400t +      GHO                                    :  0.100E+01*SUN;
+{ 60503} GPA400B+HV               =       G3A4008 +      GNO2                                   :  0.100E+01*SUN;
+{ 60504} GAH503r +GHO                =       GAH503d +      GHO2                                   : ARR( 0.150E-10,     0., 0.0);
+{ 60505} GAH503r +GHO                =       GAN502a +      GHO                                    : ARR( 0.255E-10,     0., 0.0);
+{ 60506} GAH503r +GHO                =       G2A502z                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 60507} GAH503r+HV               =       G1A503o +      GHO                                    :  0.100E+01*SUN;
+{ 60508} GAH503r+HV               =       G3A400I +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{ 60509} GAH503r+HV               =       G1A507J +      GNO2                                   :  0.100E+01*SUN;
+{ 60510} G1A507J                     =       G3A400I +      GCH2O                                  : ARR( 0.200E+15,  3603., 0.0);
+{ 60511} GAN502f +GHO                =       GAN502M +      GHO2                                   : ARR( 0.153E-10,     0., 0.0);
+{ 60512} GAN502f +GHO                =       GAN502a +      GHO2                                   : ARR( 0.653E-11,     0., 0.0);
+{ 60513} GAN502f+HV               =       G3A400F +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{ 60514} GAN502f+HV               =       G1A507K +      GNO2                                   :  0.100E+01*SUN;
+{ 60515} G1A507K                     =       G3A400F +      GCH2O                                  : ARR( 0.200E+15,  3603., 0.0);
+{ 60516} GAH503s +GHO                =       GAH503d +      GHO                                    : ARR( 0.644E-10,     0., 0.0);
+{ 60517} GAH503s +GHO                =       GAH503X +      GHO                                    : ARR( 0.274E-10,     0., 0.0);
+{ 60518} GAH503s+HV               =       G1A503q +      GHO                                    :  0.100E+01*SUN;
+{ 60519} GAH503s+HV               =       G1A506H +      GHO                                    :  0.100E+01*SUN;
+{ 60520} GAH503s+HV               =       G3A400L +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{ 60521} GAH503s+HV               =       G1A507L +      GNO2                                   :  0.100E+01*SUN;
+{ 60522} G3A400L +GHO2               =  0.800GAG400O + 0.200GAA400E + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 60523} G3A400L +GNO                =       GAH3007 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 60524} G3A400L +GNO2               =       GPA400O                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 60525} G3A400L +GNO3               =       GAH3007 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 60526} G3A400L +MEPERO             =  0.685GAH3007 + 0.315GAA400E + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60527} G3A400L +PERO1              =  0.800GAH3007 + 0.200GAA400E + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60528} G3A400L +PERO2              =  0.750GAH3007 + 0.250GAA400E + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60529} G3A400L +PERO3              =  0.800GAH3007 + 0.200GAA400E + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60530} G3A400L +PERO5              =  0.650GAH3007 + 0.350GAA400E + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60531} G3A400L +PERO6              =  0.650GAH3007 + 0.350GAA400E + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60532} G3A400L +PERO9              =       GAH3007 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 60533} G1A507L                     =       G3A400L +      GCH2O                                  : ARR( 0.200E+15,  3603., 0.0);
+{ 60534} GAG400B +GHO                =       GAG4009 +      GHO                                    : ARR( 0.260E-10,     0., 0.0);
+{ 60535} GAG400B +GHO                =       G2A400l                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 60536} GAG400B +GHO                =       G3A4009                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 60537} GAG400B+HV               =       G1A400t +      GHO                                    :  0.100E+01*SUN;
+{ 60538} GAG400B+HV               =       GAD3000 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 60539} GPA400C                     =       G3A4009 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 60540} GPA400C +GHO                =       GPA4004 +      GHO                                    : ARR( 0.261E-10,     0., 0.0);
+{ 60541} GPA400C +GHO                =       G2P400k                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 60542} GPA400C+HV               =       G1P400u +      GHO                                    :  0.100E+01*SUN;
+{ 60543} GPA400C+HV               =       G3A4009 +      GNO2                                   :  0.100E+01*SUN;
+{ 60544} GAH503t +GHO                =       GAN502M +      GHO                                    : ARR( 0.596E-10,     0., 0.0);
+{ 60545} GAH503t +GHO                =       GAH503X +      GHO2                                   : ARR( 0.635E-11,     0., 0.0);
+{ 60546} GAH503t +GHO                =       G2A5032                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 60547} GAH503t+HV               =       G1A503s +      GHO                                    :  0.100E+01*SUN;
+{ 60548} GAH503t+HV               =       G3A400E +      GCH2O   +      GNO2                    :  0.100E+01*SUN;
+{ 60549} GAH503t+HV               =       G1A507M +      GNO2                                   :  0.100E+01*SUN;
+{ 60550} G1A507M                     =       G3A400E +      GCH2O                                  : ARR( 0.200E+15,  3603., 0.0);
+{ 60551} GAG500Q +GHO                =       GAG500N +      GHO                                    : ARR( 0.206E-10,     0., 0.0);
+{ 60552} GAG500Q +GHO                =       G2A5033                                               : ARR( 0.211E-11,  -190., 0.0);
+{ 60553} GAG500Q +GHO                =       G3A500K                                               : ARR( 0.211E-11,  -190., 0.0);
+{ 60554} GAG500Q+HV               =       G1A503t +      GHO                                    :  0.100E+01*SUN;
+{ 60555} GAG500Q+HV               =       G2A400n +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 60556} GAA500F +GHO                =       G2A5054                                               : ARR( 0.151E-11,     0., 0.0);
+{ 60557} GAA500F +GHO                =       GAA500C +      GHO                                    : ARR( 0.199E-10,     0., 0.0);
+{ 60558} GAA500F +GHO                =       G2A5036                                               : ARR( 0.204E-11,  -190., 0.0);
+{ 60559} GAA500F+HV               =       G1A503w +      GHO                                    :  0.100E+01*SUN;
+{ 60560} G2A5054 +GNO                =       G1A507N +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 60561} G2A5054 +GNO                =       GAA500M                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 60562} G2A5054 +GHO2               =       GAA500d                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 60563} G2A5054 +GNO3               =       G1A507N +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 60564} G2A5054 +MEPERO             =  0.340G1A507N + 0.330GAA500g + 0.330GAA500S                 : ARR( 0.565E-13,  -845., 0.0);
+{ 60565} G2A5054 +PERO1              =  0.460G1A507N + 0.270GAA500g + 0.270GAA500S                 : ARR( 0.434E-13,  -900., 0.0);
+{ 60566} G2A5054 +PERO2              =  0.400G1A507N + 0.300GAA500g + 0.300GAA500S                 : ARR( 0.162E-13, -1400., 0.0);
+{ 60567} G2A5054 +PERO3              =  0.460G1A507N + 0.270GAA500g + 0.270GAA500S                 : ARR( 0.488E-13, -1250., 0.0);
+{ 60568} G2A5054 +PERO5              =  0.460G1A507N + 0.270GAA500g + 0.270GAA500S                 : ARR( 0.183E-11,   450., 0.0);
+{ 60569} G2A5054 +PERO6              =  0.300G1A507N + 0.350GAA500g + 0.350GAA500S                 : ARR( 0.168E-13, -1300., 0.0);
+{ 60570} G2A5054 +PERO9              =  0.650G1A507N + 0.350GAA500S                                : ARR( 0.100E-10,     0., 0.0);
+{ 60571} G1A507N                     =       GAD2000 +      GAD3000 +      GHO                     : ARR( 0.200E+15,  4500., 0.0);
+{ 60572} GPA500M                     =       G3A500K +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 60573} GPA500M +GHO                =       GPA500J +      GHO                                    : ARR( 0.197E-10,     0., 0.0);
+{ 60574} GPA500M +GHO                =       G2P505J                                               : ARR( 0.150E-11,     0., 0.0);
+{ 60575} GPA500M +GHO                =       G2P502l                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 60576} GPA500M+HV               =       G1P503N +      GHO                                    :  0.100E+01*SUN;
+{ 60577} GPA500M+HV               =       G3A500K +      GNO2                                   :  0.100E+01*SUN;
+{ 60578} G2P505J +GNO                =       G1P507U +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 60579} G2P505J +GNO                =       GPA500Y                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 60580} G2P505J +GHO2               =       GPA5016                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 60581} G2P505J +GNO3               =       G1P507U +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 60582} G2P505J +MEPERO             =  0.340G1P507U + 0.330GPA501B + 0.330GPA500l                 : ARR( 0.565E-13,  -845., 0.0);
+{ 60583} G2P505J +PERO1              =  0.460G1P507U + 0.270GPA501B + 0.270GPA500l                 : ARR( 0.434E-13,  -900., 0.0);
+{ 60584} G2P505J +PERO2              =  0.400G1P507U + 0.300GPA501B + 0.300GPA500l                 : ARR( 0.162E-13, -1400., 0.0);
+{ 60585} G2P505J +PERO3              =  0.460G1P507U + 0.270GPA501B + 0.270GPA500l                 : ARR( 0.488E-13, -1250., 0.0);
+{ 60586} G2P505J +PERO5              =  0.460G1P507U + 0.270GPA501B + 0.270GPA500l                 : ARR( 0.183E-11,   450., 0.0);
+{ 60587} G2P505J +PERO6              =  0.300G1P507U + 0.350GPA501B + 0.350GPA500l                 : ARR( 0.168E-13, -1300., 0.0);
+{ 60588} G2P505J +PERO9              =  0.650G1P507U + 0.350GPA500l                                : ARR( 0.100E-10,     0., 0.0);
+{ 60589} G1P507U                     =       GAD2000 +      GPD3000 +      GHO                     : ARR( 0.200E+15,  4500., 0.0);
+{ 60590} GPA500N                     =       G3A500M +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 60591} GPA500N +GHO                =       GPA500O +      GHO                                    : ARR( 0.274E-10,     0., 0.0);
+{ 60592} GPA500N +GHO                =       G2P502n                                               : ARR( 0.207E-11,  -190., 0.0);
+{ 60593} GPA500N+HV               =       G1P503P +      GHO                                    :  0.100E+01*SUN;
+{ 60594} GPA500N+HV               =       G3A500M +      GNO2                                   :  0.100E+01*SUN;
+{ 60595} GPA500O                     =       G3A500s +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 60596} GPA500O +GHO                =       G2P505K                                               : ARR( 0.202E-11,     0., 0.0);
+{ 60597} GPA500O +GHO                =       G2P505L                                               : ARR( 0.862E-12,     0., 0.0);
+{ 60598} GPA500O +GHO                =       G2P400U +      GCO2                                   : ARR( 0.520E-12,     0., 0.0);
+{ 60599} GPA500O+HV               =       G3A4000 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 60600} G2P505K +GNO                =       G1P507W +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 60601} G2P505K +GNO                =       GPA5011                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 60602} G2P505K +GHO2               =       GPA501L                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 60603} G2P505K +GNO3               =       G1P507W +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 60604} G2P505K +MEPERO             =  0.340G1P507W + 0.330GPA500P + 0.330GPA501H                 : ARR( 0.565E-13,  -845., 0.0);
+{ 60605} G2P505K +PERO1              =  0.460G1P507W + 0.270GPA500P + 0.270GPA501H                 : ARR( 0.434E-13,  -900., 0.0);
+{ 60606} G2P505K +PERO2              =  0.400G1P507W + 0.300GPA500P + 0.300GPA501H                 : ARR( 0.162E-13, -1400., 0.0);
+{ 60607} G2P505K +PERO3              =  0.460G1P507W + 0.270GPA500P + 0.270GPA501H                 : ARR( 0.488E-13, -1250., 0.0);
+{ 60608} G2P505K +PERO5              =  0.460G1P507W + 0.270GPA500P + 0.270GPA501H                 : ARR( 0.183E-11,   450., 0.0);
+{ 60609} G2P505K +PERO6              =  0.300G1P507W + 0.350GPA500P + 0.350GPA501H                 : ARR( 0.168E-13, -1300., 0.0);
+{ 60610} G2P505K +PERO9              =  0.650G1P507W + 0.350GPA501H                                : ARR( 0.100E-10,     0., 0.0);
+{ 60611} G2P505L +GNO                =       G1P507X +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 60612} G2P505L +GNO                =       GPA500c                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 60613} G2P505L +GHO2               =       GPA5019                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 60614} G2P505L +GNO3               =       G1P507X +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 60615} G2P505L +MEPERO             =  0.340G1P507X + 0.330GPA500j + 0.330GPA500p                 : ARR( 0.565E-13,  -845., 0.0);
+{ 60616} G2P505L +PERO1              =  0.460G1P507X + 0.270GPA500j + 0.270GPA500p                 : ARR( 0.434E-13,  -900., 0.0);
+{ 60617} G2P505L +PERO2              =  0.400G1P507X + 0.300GPA500j + 0.300GPA500p                 : ARR( 0.162E-13, -1400., 0.0);
+{ 60618} G2P505L +PERO3              =  0.460G1P507X + 0.270GPA500j + 0.270GPA500p                 : ARR( 0.488E-13, -1250., 0.0);
+{ 60619} G2P505L +PERO5              =  0.460G1P507X + 0.270GPA500j + 0.270GPA500p                 : ARR( 0.183E-11,   450., 0.0);
+{ 60620} G2P505L +PERO6              =  0.300G1P507X + 0.350GPA500j + 0.350GPA500p                 : ARR( 0.168E-13, -1300., 0.0);
+{ 60621} G2P505L +PERO9              =  0.650G1P507X + 0.350GPA500p                                : ARR( 0.100E-10,     0., 0.0);
+{ 60622} G1P507W                     =       GCO     +      GPD4005 +      GHO                     : ARR( 0.200E+15,  4535., 0.0);
+{ 60623} G1P507X                     =       GAD3000 +      GCO     +      GNO2    +      GCO      : ARR( 0.200E+15,  2628., 0.0);
+{ 60624} GAG500R +GHO                =       GAG5019 +      GHO2                                   : ARR( 0.160E-10,     0., 0.0);
+{ 60625} GAG500R +GHO                =       G3A5014                                               : ARR( 0.206E-11,  -190., 0.0);
+{ 60626} GAG500R+HV               =       GAA4003 +      GCO2                                   :  0.100E+01*SUN;
+{ 60627} G3A5014 +GHO2               =  0.800GAG500R + 0.200GAA500G + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 60628} G3A5014 +GNO                =       G3A4005 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 60629} G3A5014 +GNO2               =       GPA500P                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 60630} G3A5014 +GNO3               =       G3A4005 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 60631} G3A5014 +MEPERO             =  0.685G3A4005 + 0.315GAA500G + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 60632} G3A5014 +PERO1              =  0.800G3A4005 + 0.200GAA500G + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 60633} G3A5014 +PERO2              =  0.750G3A4005 + 0.250GAA500G + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 60634} G3A5014 +PERO3              =  0.800G3A4005 + 0.200GAA500G + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 60635} G3A5014 +PERO5              =  0.650G3A4005 + 0.350GAA500G + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 60636} G3A5014 +PERO6              =  0.650G3A4005 + 0.350GAA500G + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 60637} G3A5014 +PERO9              =       G3A4005 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 60638} GAA500G +GHO                =       GAA500i +      GHO2                                   : ARR( 0.159E-10,     0., 0.0);
+{ 60639} GAA500G +GHO                =       G2A5055                                               : ARR( 0.927E-12,     0., 0.0);
+{ 60640} GAA500G+HV               =       GAD4002 +      GCO2                                   :  0.100E+01*SUN;
+{ 60641} G2A5055 +GNO                =       G1A507O +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 60642} G2A5055 +GNO                =       GAA500Q                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 60643} G2A5055 +GHO2               =       GAA500o                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 60644} G2A5055 +GNO3               =       G1A507O +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 60645} G2A5055 +MEPERO             =  0.340G1A507O + 0.330GAA500p + 0.330GAA500X                 : ARR( 0.565E-13,  -845., 0.0);
+{ 60646} G2A5055 +PERO1              =  0.460G1A507O + 0.270GAA500p + 0.270GAA500X                 : ARR( 0.434E-13,  -900., 0.0);
+{ 60647} G2A5055 +PERO2              =  0.400G1A507O + 0.300GAA500p + 0.300GAA500X                 : ARR( 0.162E-13, -1400., 0.0);
+{ 60648} G2A5055 +PERO3              =  0.460G1A507O + 0.270GAA500p + 0.270GAA500X                 : ARR( 0.488E-13, -1250., 0.0);
+{ 60649} G2A5055 +PERO5              =  0.460G1A507O + 0.270GAA500p + 0.270GAA500X                 : ARR( 0.183E-11,   450., 0.0);
+{ 60650} G2A5055 +PERO6              =  0.300G1A507O + 0.350GAA500p + 0.350GAA500X                 : ARR( 0.168E-13, -1300., 0.0);
+{ 60651} G2A5055 +PERO9              =  0.650G1A507O + 0.350GAA500X                                : ARR( 0.100E-10,     0., 0.0);
+{ 60652} G1A507O                     =       GAD3001 +      GCO     +      GHO     +      GCO      : ARR( 0.200E+15,  2436., 0.0);
+{ 60653} GPA500P                     =       G3A5014 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 60654} GPA500P +GHO                =       GPA501H +      GHO2                                   : ARR( 0.154E-10,     0., 0.0);
+{ 60655} GPA500P +GHO                =       G2P505M                                               : ARR( 0.898E-12,     0., 0.0);
+{ 60656} GPA500P+HV               =       G3A4005 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 60657} G2P505M +GNO                =       G1P507Y +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 60658} G2P505M +GNO                =       GPA500f                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 60659} G2P505M +GHO2               =       GPA501M                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 60660} G2P505M +GNO3               =       G1P507Y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 60661} G2P505M +MEPERO             =  0.340G1P507Y + 0.330GPA501F + 0.330GPA500s                 : ARR( 0.565E-13,  -845., 0.0);
+{ 60662} G2P505M +PERO1              =  0.460G1P507Y + 0.270GPA501F + 0.270GPA500s                 : ARR( 0.434E-13,  -900., 0.0);
+{ 60663} G2P505M +PERO2              =  0.400G1P507Y + 0.300GPA501F + 0.300GPA500s                 : ARR( 0.162E-13, -1400., 0.0);
+{ 60664} G2P505M +PERO3              =  0.460G1P507Y + 0.270GPA501F + 0.270GPA500s                 : ARR( 0.488E-13, -1250., 0.0);
+{ 60665} G2P505M +PERO5              =  0.460G1P507Y + 0.270GPA501F + 0.270GPA500s                 : ARR( 0.183E-11,   450., 0.0);
+{ 60666} G2P505M +PERO6              =  0.300G1P507Y + 0.350GPA501F + 0.350GPA500s                 : ARR( 0.168E-13, -1300., 0.0);
+{ 60667} G2P505M +PERO9              =  0.650G1P507Y + 0.350GPA500s                                : ARR( 0.100E-10,     0., 0.0);
+{ 60668} G1P507Y                     =       GAD3001 +      GCO     +      GNO2    +      GCO      : ARR( 0.200E+15,  2436., 0.0);
+{ 60669} GPH503d                     =       G3H504K +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 60670} GPH503d +GHO                =       GPN502Z +      GHO                                    : ARR( 0.168E-11,     0., 0.0);
+{ 60671} GPH503d +GHO                =       G2P502u                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 60672} GPH503d+HV               =       G1P507Z +      GNO2                                   :  0.100E+01*SUN;
+{ 60673} GPH503d+HV               =       G1P507a +      GNO2                                   :  0.100E+01*SUN;
+{ 60674} GPH503d+HV               =       G1P503b +      GHO                                    :  0.100E+01*SUN;
+{ 60675} GPH503d+HV               =       G1P503U +      GNO2                                   :  0.100E+01*SUN;
+{ 60676} GPH503d+HV               =       G3H504K +      GNO2                                   :  0.100E+01*SUN;
+{ 60677} G1P507Z +OXYGEN             =       GPH505F +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 60678} G1P507Z                     =       GPH503M +      GNO2                                   : ARR( 0.800E+11,  4245., 0.0);
+{ 60679} G1P507Z                     =       GPH400s +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7042., 0.0);
+{ 60680} G1P507a                     =       GND2000 +      GPN3006 +      GHO                     : ARR( 0.200E+15,  4826., 0.0);
+{ 60681} GPH503e                     =       G3H504N +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 60682} GPH503e +GHO                =       GPH503W +      GHO                                    : ARR( 0.825E-11,     0., 0.0);
+{ 60683} GPH503e +GHO                =       GPH503g +      GHO                                    : ARR( 0.251E-10,     0., 0.0);
+{ 60684} GPH503e +GHO                =       G2P505N                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 60685} GPH503e +GHO                =       G2P502q                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 60686} GPH503e+HV               =       G1P507b +      GNO2                                   :  0.100E+01*SUN;
+{ 60687} GPH503e+HV               =       G1P507c +      GNO2                                   :  0.100E+01*SUN;
+{ 60688} GPH503e+HV               =       G1P506m +      GHO                                    :  0.100E+01*SUN;
+{ 60689} GPH503e+HV               =       G1P503U +      GHO                                    :  0.100E+01*SUN;
+{ 60690} GPH503e+HV               =       G3H504N +      GNO2                                   :  0.100E+01*SUN;
+{ 60691} G2P505N +GNO                =       G1P506m +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 60692} G2P505N +GNO                =       GPH5038                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 60693} G2P505N +GHO2               =       GPH503e                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 60694} G2P505N +GNO3               =       G1P506m +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 60695} G2P505N +MEPERO             =  0.340G1P506m + 0.330GPH503k + 0.330GPH503W                 : ARR( 0.565E-13,  -845., 0.0);
+{ 60696} G2P505N +PERO1              =  0.460G1P506m + 0.270GPH503k + 0.270GPH503W                 : ARR( 0.434E-13,  -900., 0.0);
+{ 60697} G2P505N +PERO2              =  0.400G1P506m + 0.300GPH503k + 0.300GPH503W                 : ARR( 0.162E-13, -1400., 0.0);
+{ 60698} G2P505N +PERO3              =  0.460G1P506m + 0.270GPH503k + 0.270GPH503W                 : ARR( 0.488E-13, -1250., 0.0);
+{ 60699} G2P505N +PERO5              =  0.460G1P506m + 0.270GPH503k + 0.270GPH503W                 : ARR( 0.183E-11,   450., 0.0);
+{ 60700} G2P505N +PERO6              =  0.300G1P506m + 0.350GPH503k + 0.350GPH503W                 : ARR( 0.168E-13, -1300., 0.0);
+{ 60701} G2P505N +PERO9              =  0.650G1P506m + 0.350GPH503W                                : ARR( 0.100E-10,     0., 0.0);
+{ 60702} G1P507b                     =       GPH503M +      GHO                                    : ARR( 0.800E+11,  1899., 0.0);
+{ 60703} G1P507c                     =       GND2000 +      GPH3007 +      GHO                     : ARR( 0.200E+15,  4826., 0.0);
+{ 60704} GPH503f                     =       G3H504P +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 60705} GPH503f +GHO                =       GPN502a +      GHO                                    : ARR( 0.832E-11,     0., 0.0);
+{ 60706} GPH503f +GHO                =       GPH503g +      GHO2                                   : ARR( 0.634E-11,     0., 0.0);
+{ 60707} GPH503f +GHO                =       G2P505O                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 60708} GPH503f+HV               =       G1P507d +      GNO2                                   :  0.100E+01*SUN;
+{ 60709} GPH503f+HV               =       G1P507e +      GNO2                                   :  0.100E+01*SUN;
+{ 60710} GPH503f+HV               =       G1P506Q +      GHO                                    :  0.100E+01*SUN;
+{ 60711} GPH503f+HV               =       G3H504P +      GNO2                                   :  0.100E+01*SUN;
+{ 60712} G2P505O +GNO                =       G1P506Q +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 60713} G2P505O +GNO                =       GPN502F                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 60714} G2P505O +GHO2               =       GPH503f                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 60715} G2P505O +GNO3               =       G1P506Q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 60716} G2P505O +MEPERO             =  0.340G1P506Q + 0.330GPN502f + 0.330GPN502a                 : ARR( 0.565E-13,  -845., 0.0);
+{ 60717} G2P505O +PERO1              =  0.460G1P506Q + 0.270GPN502f + 0.270GPN502a                 : ARR( 0.434E-13,  -900., 0.0);
+{ 60718} G2P505O +PERO2              =  0.400G1P506Q + 0.300GPN502f + 0.300GPN502a                 : ARR( 0.162E-13, -1400., 0.0);
+{ 60719} G2P505O +PERO3              =  0.460G1P506Q + 0.270GPN502f + 0.270GPN502a                 : ARR( 0.488E-13, -1250., 0.0);
+{ 60720} G2P505O +PERO5              =  0.460G1P506Q + 0.270GPN502f + 0.270GPN502a                 : ARR( 0.183E-11,   450., 0.0);
+{ 60721} G2P505O +PERO6              =  0.300G1P506Q + 0.350GPN502f + 0.350GPN502a                 : ARR( 0.168E-13, -1300., 0.0);
+{ 60722} G2P505O +PERO9              =  0.650G1P506Q + 0.350GPN502a                                : ARR( 0.100E-10,     0., 0.0);
+{ 60723} G1P507d                     =       GPH503M +      GHO2                                   : ARR( 0.800E+11,  2246., 0.0);
+{ 60724} G1P507e                     =       GND2000 +      GPD3001 +      GHO                     : ARR( 0.200E+15,  4826., 0.0);
+{ 60725} GPH503g                     =       G3H504k +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 60726} GPH503g +GHO                =       GPN502b +      GHO                                    : ARR( 0.507E-11,     0., 0.0);
+{ 60727} GPH503g +GHO                =       G2P502v                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 60728} GPH503g+HV               =       G1P507f +      GNO2                                   :  0.100E+01*SUN;
+{ 60729} GPH503g+HV               =       G1P507g +      GNO2                                   :  0.100E+01*SUN;
+{ 60730} GPH503g+HV               =       G1P503g +      GHO                                    :  0.100E+01*SUN;
+{ 60731} GPH503g+HV               =       G3H400Z +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 60732} G3H504k +GHO2               =  0.800GGH503g + 0.200GAH503b + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 60733} G3H504k +GNO                =       G3H400Z +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 60734} G3H504k +GNO2               =       GPH503g                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 60735} G3H504k +GNO3               =       G3H400Z +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 60736} G3H504k +MEPERO             =  0.685G3H400Z + 0.315GAH503b + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 60737} G3H504k +PERO1              =  0.800G3H400Z + 0.200GAH503b + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 60738} G3H504k +PERO2              =  0.750G3H400Z + 0.250GAH503b + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 60739} G3H504k +PERO3              =  0.800G3H400Z + 0.200GAH503b + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 60740} G3H504k +PERO5              =  0.650G3H400Z + 0.350GAH503b + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 60741} G3H504k +PERO6              =  0.650G3H400Z + 0.350GAH503b + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 60742} G3H504k +PERO9              =       G3H400Z +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 60743} G1P507f +OXYGEN             =       GPH505I +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 60744} G1P507f                     =       GPH400t +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7175., 0.0);
+{ 60745} G1P507g                     =       GND2000 +      GPD3002 +      GHO                     : ARR( 0.200E+15,  4553., 0.0);
+{ 60746} GPH503h                     =       G3H503R +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 60747} GPH503h +GHO                =       GPH502T +      GHO                                    : ARR( 0.846E-11,     0., 0.0);
+{ 60748} GPH503h +GHO                =       GPH503M +      GHO                                    : ARR( 0.258E-10,     0., 0.0);
+{ 60749} GPH503h +GHO                =       G2P505P                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 60750} GPH503h +GHO                =       G2P502r                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 60751} GPH503h+HV               =       G1P507h +      GNO2                                   :  0.100E+01*SUN;
+{ 60752} GPH503h+HV               =       G1P505D +      GHO                                    :  0.100E+01*SUN;
+{ 60753} GPH503h+HV               =       G1P503W +      GHO                                    :  0.100E+01*SUN;
+{ 60754} GPH503h+HV               =       G3H503R +      GNO2                                   :  0.100E+01*SUN;
+{ 60755} G2P505P +GNO                =       G1P505D +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 60756} G2P505P +GNO                =       GPH5028                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 60757} G2P505P +GHO2               =       GPH503h                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 60758} G2P505P +GNO3               =       G1P505D +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 60759} G2P505P +MEPERO             =  0.340G1P505D + 0.330GPH503l + 0.330GPH502T                 : ARR( 0.565E-13,  -845., 0.0);
+{ 60760} G2P505P +PERO1              =  0.460G1P505D + 0.270GPH503l + 0.270GPH502T                 : ARR( 0.434E-13,  -900., 0.0);
+{ 60761} G2P505P +PERO2              =  0.400G1P505D + 0.300GPH503l + 0.300GPH502T                 : ARR( 0.162E-13, -1400., 0.0);
+{ 60762} G2P505P +PERO3              =  0.460G1P505D + 0.270GPH503l + 0.270GPH502T                 : ARR( 0.488E-13, -1250., 0.0);
+{ 60763} G2P505P +PERO5              =  0.460G1P505D + 0.270GPH503l + 0.270GPH502T                 : ARR( 0.183E-11,   450., 0.0);
+{ 60764} G2P505P +PERO6              =  0.300G1P505D + 0.350GPH503l + 0.350GPH502T                 : ARR( 0.168E-13, -1300., 0.0);
+{ 60765} G2P505P +PERO9              =  0.650G1P505D + 0.350GPH502T                                : ARR( 0.100E-10,     0., 0.0);
+{ 60766} G1P507h                     =       GCH2O   +      GPH400w +      GHO2                    : ARR( 0.200E+15,  5296., 0.0);
+{ 60767} G1P507h                     =       GDO2000 +      GPH3007 +      GHO                     : ARR( 0.200E+15,  4828., 0.0);
+{ 60768} GPH503i                     =       G3H503Y +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 60769} GPH503i +GHO                =       GPN5026 +      GHO                                    : ARR( 0.879E-11,     0., 0.0);
+{ 60770} GPH503i +GHO                =       GPH503M +      GHO2                                   : ARR( 0.670E-11,     0., 0.0);
+{ 60771} GPH503i +GHO                =       G2P505Q                                               : ARR( 0.203E-11,  -190., 0.0);
+{ 60772} GPH503i+HV               =       G1P507i +      GNO2                                   :  0.100E+01*SUN;
+{ 60773} GPH503i+HV               =       G1P505G +      GHO                                    :  0.100E+01*SUN;
+{ 60774} GPH503i+HV               =       G3H503Y +      GNO2                                   :  0.100E+01*SUN;
+{ 60775} G2P505Q +GNO                =       G1P505G +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 60776} G2P505Q +GNO                =       GPN501i                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 60777} G2P505Q +GHO2               =       GPH503i                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 60778} G2P505Q +GNO3               =       G1P505G +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 60779} G2P505Q +MEPERO             =  0.340G1P505G + 0.330GPN501y + 0.330GPN5026                 : ARR( 0.565E-13,  -845., 0.0);
+{ 60780} G2P505Q +PERO1              =  0.460G1P505G + 0.270GPN501y + 0.270GPN5026                 : ARR( 0.434E-13,  -900., 0.0);
+{ 60781} G2P505Q +PERO2              =  0.400G1P505G + 0.300GPN501y + 0.300GPN5026                 : ARR( 0.162E-13, -1400., 0.0);
+{ 60782} G2P505Q +PERO3              =  0.460G1P505G + 0.270GPN501y + 0.270GPN5026                 : ARR( 0.488E-13, -1250., 0.0);
+{ 60783} G2P505Q +PERO5              =  0.460G1P505G + 0.270GPN501y + 0.270GPN5026                 : ARR( 0.183E-11,   450., 0.0);
+{ 60784} G2P505Q +PERO6              =  0.300G1P505G + 0.350GPN501y + 0.350GPN5026                 : ARR( 0.168E-13, -1300., 0.0);
+{ 60785} G2P505Q +PERO9              =  0.650G1P505G + 0.350GPN5026                                : ARR( 0.100E-10,     0., 0.0);
+{ 60786} G1P507i                     =       GCH2O   +      GPH400p +      GHO2                    : ARR( 0.200E+15,  5296., 0.0);
+{ 60787} G1P507i                     =       GDO2000 +      GPD3001 +      GHO                     : ARR( 0.200E+15,  4828., 0.0);
+{ 60788} GPH503j                     =       G3H503j +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 60789} GPH503j +GHO                =       GPH505I +      GHO2                                   : ARR( 0.634E-11,     0., 0.0);
+{ 60790} GPH503j +GHO                =       GPN502q +      GHO                                    : ARR( 0.832E-11,     0., 0.0);
+{ 60791} GPH503j +GHO                =       G3P500t                                               : ARR( 0.419E-11,     0., 0.0);
+{ 60792} GPH503j +GHO                =       G2P505R                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 60793} GPH503j +GNO3               =       G3P500t +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 60794} GPH503j+HV               =       G3H503j +      GNO2                                   :  0.100E+01*SUN;
+{ 60795} GPH503j+HV               =       G1P505H +      GHO                                    :  0.100E+01*SUN;
+{ 60796} GPH503j+HV               =       G1P507j +      GNO2                                   :  0.100E+01*SUN;
+{ 60797} GPH503j+HV               =       GPH400p +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 60798} GPH503j+HV               =       GPH3006 +      GND2000                                :  0.100E+01*SUN;
+{ 60799} G3P500t +GHO2               =  0.800GPG501B + 0.200GPA501N + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 60800} G3P500t +GNO                =       GPH400p + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 60801} G3P500t +GNO2               =       GPP500e                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 60802} G3P500t +GNO3               =       GPH400p + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 60803} G3P500t +MEPERO             =  0.685GPH400p + 0.315GPA501N + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60804} G3P500t +PERO1              =  0.800GPH400p + 0.200GPA501N + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60805} G3P500t +PERO2              =  0.750GPH400p + 0.250GPA501N + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60806} G3P500t +PERO3              =  0.800GPH400p + 0.200GPA501N + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60807} G3P500t +PERO5              =  0.650GPH400p + 0.350GPA501N + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60808} G3P500t +PERO6              =  0.650GPH400p + 0.350GPA501N + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60809} G3P500t +PERO9              =       GPH400p +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 60810} G2P505R +GNO                =       G1P505H +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 60811} G2P505R +GNO                =       GPN501k                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 60812} G2P505R +GHO2               =       GPH503j                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 60813} G2P505R +GNO3               =       G1P505H +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 60814} G2P505R +MEPERO             =  0.340G1P505H + 0.330GPN502g + 0.330GPN502q                 : ARR( 0.565E-13,  -845., 0.0);
+{ 60815} G2P505R +PERO1              =  0.460G1P505H + 0.270GPN502g + 0.270GPN502q                 : ARR( 0.434E-13,  -900., 0.0);
+{ 60816} G2P505R +PERO2              =  0.400G1P505H + 0.300GPN502g + 0.300GPN502q                 : ARR( 0.162E-13, -1400., 0.0);
+{ 60817} G2P505R +PERO3              =  0.460G1P505H + 0.270GPN502g + 0.270GPN502q                 : ARR( 0.488E-13, -1250., 0.0);
+{ 60818} G2P505R +PERO5              =  0.460G1P505H + 0.270GPN502g + 0.270GPN502q                 : ARR( 0.183E-11,   450., 0.0);
+{ 60819} G2P505R +PERO6              =  0.300G1P505H + 0.350GPN502g + 0.350GPN502q                 : ARR( 0.168E-13, -1300., 0.0);
+{ 60820} G2P505R +PERO9              =  0.650G1P505H + 0.350GPN502q                                : ARR( 0.100E-10,     0., 0.0);
+{ 60821} G1P507j                     =       GPD3001 +      GDD2000 +      GHO                     : ARR( 0.200E+15,  6241., 0.0);
+{ 60822} G1P507j                     =       GPH400p +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 60823} GPH503k                     =       G3H504O +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 60824} GPH503k +GHO                =       GPH503W +      GHO2                                   : ARR( 0.207E-11,     0., 0.0);
+{ 60825} GPH503k +GHO                =       GPN502T +      GHO                                    : ARR( 0.253E-10,     0., 0.0);
+{ 60826} GPH503k +GHO                =       G2P502s                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 60827} GPH503k+HV               =       G1P507k +      GNO2                                   :  0.100E+01*SUN;
+{ 60828} GPH503k+HV               =       G1P507l +      GNO2                                   :  0.100E+01*SUN;
+{ 60829} GPH503k+HV               =       G1P503Z +      GHO                                    :  0.100E+01*SUN;
+{ 60830} GPH503k+HV               =       G3H504O +      GNO2                                   :  0.100E+01*SUN;
+{ 60831} G1P507k                     =       GPN501z +      GHO                                    : ARR( 0.800E+11,  1899., 0.0);
+{ 60832} G1P507l                     =       GND2000 +      GPH3007 +      GHO2                    : ARR( 0.200E+15,  3617., 0.0);
+{ 60833} GPN502f                     =       G3N502e +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 60834} GPN502f +GHO                =       GPN502a +      GHO2                                   : ARR( 0.214E-11,     0., 0.0);
+{ 60835} GPN502f +GHO                =       GPN502T +      GHO2                                   : ARR( 0.652E-11,     0., 0.0);
+{ 60836} GPN502f+HV               =       G1P507m +      GNO2                                   :  0.100E+01*SUN;
+{ 60837} GPN502f+HV               =       G1P507n +      GNO2                                   :  0.100E+01*SUN;
+{ 60838} GPN502f+HV               =       G3N502e +      GNO2                                   :  0.100E+01*SUN;
+{ 60839} G1P507m                     =       GPN501z +      GHO2                                   : ARR( 0.800E+11,  2246., 0.0);
+{ 60840} G1P507n                     =       GND2000 +      GPD3001 +      GHO2                    : ARR( 0.200E+15,  3617., 0.0);
+{ 60841} GPH503l                     =       G3H503W +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 60842} GPH503l +GHO                =       GPH502T +      GHO2                                   : ARR( 0.214E-11,     0., 0.0);
+{ 60843} GPH503l +GHO                =       GPN501z +      GHO                                    : ARR( 0.261E-10,     0., 0.0);
+{ 60844} GPH503l +GHO                =       G2P502t                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 60845} GPH503l+HV               =       G1P507o +      GNO2                                   :  0.100E+01*SUN;
+{ 60846} GPH503l+HV               =       G1P503a +      GHO                                    :  0.100E+01*SUN;
+{ 60847} GPH503l+HV               =       G3H503W +      GNO2                                   :  0.100E+01*SUN;
+{ 60848} G1P507o                     =       GDO2000 +      GPH3007 +      GHO2                    : ARR( 0.200E+15,  3619., 0.0);
+{ 60849} GPN502g                     =       G3N502K +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 60850} GPN502g +GHO                =       GPN502o +      GHO2                                   : ARR( 0.646E-11,     0., 0.0);
+{ 60851} GPN502g +GHO                =       GPN502q +      GHO2                                   : ARR( 0.212E-11,     0., 0.0);
+{ 60852} GPN502g +GHO                =       G3P500u                                               : ARR( 0.427E-11,     0., 0.0);
+{ 60853} GPN502g +GNO3               =       G3P500u +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 60854} GPN502g+HV               =       G3N502K +      GNO2                                   :  0.100E+01*SUN;
+{ 60855} GPN502g+HV               =       G1P507p +      GNO2                                   :  0.100E+01*SUN;
+{ 60856} GPN502g+HV               =       GPD4006 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 60857} GPN502g+HV               =       GPK3001 +      GND2000                                :  0.100E+01*SUN;
+{ 60858} G3P500u +GHO2               =  0.800GPG501C + 0.200GPA501O + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 60859} G3P500u +GNO                =       GPD4006 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 60860} G3P500u +GNO2               =       GPP500f                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 60861} G3P500u +GNO3               =       GPD4006 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 60862} G3P500u +MEPERO             =  0.685GPD4006 + 0.315GPA501O + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60863} G3P500u +PERO1              =  0.800GPD4006 + 0.200GPA501O + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60864} G3P500u +PERO2              =  0.750GPD4006 + 0.250GPA501O + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60865} G3P500u +PERO3              =  0.800GPD4006 + 0.200GPA501O + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60866} G3P500u +PERO5              =  0.650GPD4006 + 0.350GPA501O + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60867} G3P500u +PERO6              =  0.650GPD4006 + 0.350GPA501O + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60868} G3P500u +PERO9              =       GPD4006 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 60869} G1P507p                     =       GPD3001 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  5032., 0.0);
+{ 60870} G1P507p                     =       GPD4006 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 60871} GPG500L                     =       G3G500J +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 60872} GPG500L +GHO                =       GPG500o +      GHO2                                   : ARR( 0.660E-11,     0., 0.0);
+{ 60873} GPG500L +GHO                =       G3P500F                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 60874} GPG500L+HV               =       GPD4002 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 60875} GPG500L+HV               =       G1P504B +      GNO2                                   :  0.100E+01*SUN;
+{ 60876} GPG500L+HV               =       G3G500J +      GNO2                                   :  0.100E+01*SUN;
+{ 60877} GPA500Q                     =       G3A500N +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 60878} GPA500Q +GHO                =       GPA5011 +      GHO2                                   : ARR( 0.672E-11,     0., 0.0);
+{ 60879} GPA500Q +GHO                =       GPD4002 +      GNO2    +      GCO2                    : ARR( 0.556E-12,     0., 0.0);
+{ 60880} GPA500Q+HV               =       G1P504D +      GNO2                                   :  0.100E+01*SUN;
+{ 60881} GPA500Q+HV               =       G3A500N +      GNO2                                   :  0.100E+01*SUN;
+{ 60882} GPP500A                     =       G3P500L +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 60883} GPP500A                     =       G3P500F +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 60884} GPP500A +GHO                =       GPP500X +      GHO2                                   : ARR( 0.678E-11,     0., 0.0);
+{ 60885} GPP500A+HV               =       G3P500L +      GNO2                                   :  0.100E+01*SUN;
+{ 60886} GPP500A+HV               =       G1P504F +      GNO2                                   :  0.100E+01*SUN;
+{ 60887} GPP500A+HV               =       G3P500F +      GNO2                                   :  0.100E+01*SUN;
+{ 60888} GPH503m                     =       G3H5038 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 60889} GPH503m +GHO                =       GPH504L +      GHO                                    : ARR( 0.469E-10,     0., 0.0);
+{ 60890} GPH503m +GHO                =       GPH505Q +      GHO                                    : ARR( 0.469E-10,     0., 0.0);
+{ 60891} GPH503m +GHO                =       GPH503N +      GHO                                    : ARR( 0.286E-10,     0., 0.0);
+{ 60892} GPH503m+HV               =       G1P507h +      GHO                                    :  0.100E+01*SUN;
+{ 60893} GPH503m+HV               =       G1P506n +      GHO                                    :  0.100E+01*SUN;
+{ 60894} GPH503m+HV               =       G1P503l +      GHO                                    :  0.100E+01*SUN;
+{ 60895} GPH503m+HV               =       G3H5038 +      GNO2                                   :  0.100E+01*SUN;
+{ 60896} GPH503n                     =       G3H5039 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 60897} GPH503n +GHO                =       GPH502v +      GHO                                    : ARR( 0.466E-10,     0., 0.0);
+{ 60898} GPH503n +GHO                =       GPH504G +      GHO                                    : ARR( 0.466E-10,     0., 0.0);
+{ 60899} GPH503n +GHO                =       GPH503N +      GHO2                                   : ARR( 0.710E-11,     0., 0.0);
+{ 60900} GPH503n+HV               =       G1P507i +      GHO                                    :  0.100E+01*SUN;
+{ 60901} GPH503n+HV               =       G1P506o +      GHO                                    :  0.100E+01*SUN;
+{ 60902} GPH503n+HV               =       G3H5039 +      GNO2                                   :  0.100E+01*SUN;
+{ 60903} GPH503o                     =       G3H503A +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 60904} GPH503o +GHO                =       GPH503x +      GHO                                    : ARR( 0.141E-09,     0., 0.0);
+{ 60905} GPH503o +GHO                =       GPH504Y +      GHO                                    : ARR( 0.271E-10,     0., 0.0);
+{ 60906} GPH503o +GHO                =       G3P500v                                               : ARR( 0.224E-10,     0., 0.0);
+{ 60907} GPH503o +GNO3               =       G3P500v +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 60908} GPH503o+HV               =       G3H503A +      GNO2                                   :  0.100E+01*SUN;
+{ 60909} GPH503o+HV               =       G1P503t +      GHO                                    :  0.100E+01*SUN;
+{ 60910} GPH503o+HV               =       G1P507j +      GHO                                    :  0.100E+01*SUN;
+{ 60911} GPH503o+HV               =       GPH400p +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 60912} G3P500v +GHO2               =  0.800GPG501D + 0.200GPA501P + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 60913} G3P500v +GNO                =       GPH400p +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 60914} G3P500v +GNO2               =       GPP500g                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 60915} G3P500v +GNO3               =       GPH400p +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 60916} G3P500v +MEPERO             =  0.685GPH400p + 0.315GPA501P + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60917} G3P500v +PERO1              =  0.800GPH400p + 0.200GPA501P + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60918} G3P500v +PERO2              =  0.750GPH400p + 0.250GPA501P + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60919} G3P500v +PERO3              =  0.800GPH400p + 0.200GPA501P + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60920} G3P500v +PERO5              =  0.650GPH400p + 0.350GPA501P + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60921} G3P500v +PERO6              =  0.650GPH400p + 0.350GPA501P + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60922} G3P500v +PERO9              =       GPH400p +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 60923} GPH503p                     =       G3H503C +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 60924} GPH503p +GHO                =       GPH504M +      GHO                                    : ARR( 0.474E-10,     0., 0.0);
+{ 60925} GPH503p +GHO                =       GPH505Q +      GHO2                                   : ARR( 0.118E-10,     0., 0.0);
+{ 60926} GPH503p +GHO                =       GPH502P +      GHO                                    : ARR( 0.289E-10,     0., 0.0);
+{ 60927} GPH503p+HV               =       G1P507o +      GHO                                    :  0.100E+01*SUN;
+{ 60928} GPH503p+HV               =       G1P503n +      GHO                                    :  0.100E+01*SUN;
+{ 60929} GPH503p+HV               =       G3H503C +      GNO2                                   :  0.100E+01*SUN;
+{ 60930} GPH503q                     =       G3H503E +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 60931} GPH503q +GHO                =       GPH504x +      GHO2                                   : ARR( 0.657E-11,     0., 0.0);
+{ 60932} GPH503q +GHO                =       GPH503x +      GHO2                                   : ARR( 0.342E-10,     0., 0.0);
+{ 60933} GPH503q +GHO                =       GPD500L +      GHO                                    : ARR( 0.263E-10,     0., 0.0);
+{ 60934} GPH503q +GHO                =       G3P500w                                               : ARR( 0.217E-10,     0., 0.0);
+{ 60935} GPH503q +GNO3               =       G3P500w +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 60936} GPH503q+HV               =       G3H503E +      GNO2                                   :  0.100E+01*SUN;
+{ 60937} GPH503q+HV               =       G1P507p +      GHO                                    :  0.100E+01*SUN;
+{ 60938} GPH503q+HV               =       GPD4006 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 60939} G3P500w +GHO2               =  0.800GPG501E + 0.200GPA501Q + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 60940} G3P500w +GNO                =       GPD4006 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 60941} G3P500w +GNO2               =       GPP500h                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 60942} G3P500w +GNO3               =       GPD4006 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 60943} G3P500w +MEPERO             =  0.685GPD4006 + 0.315GPA501Q + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60944} G3P500w +PERO1              =  0.800GPD4006 + 0.200GPA501Q + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60945} G3P500w +PERO2              =  0.750GPD4006 + 0.250GPA501Q + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60946} G3P500w +PERO3              =  0.800GPD4006 + 0.200GPA501Q + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60947} G3P500w +PERO5              =  0.650GPD4006 + 0.350GPA501Q + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60948} G3P500w +PERO6              =  0.650GPD4006 + 0.350GPA501Q + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60949} G3P500w +PERO9              =       GPD4006 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 60950} GPH503r                     =       G3H502Z +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 60951} GPH503r +GHO                =       GPN502E +      GHO                                    : ARR( 0.256E-10,     0., 0.0);
+{ 60952} GPH503r +GHO                =       G3P500x                                               : ARR( 0.212E-10,     0., 0.0);
+{ 60953} GPH503r +GHO                =       G2P505S                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 60954} GPH503r +GNO3               =       G3P500x +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 60955} GPH503r+HV               =       G3H502Z +      GNO2                                   :  0.100E+01*SUN;
+{ 60956} GPH503r+HV               =       G1P507q +      GNO2                                   :  0.100E+01*SUN;
+{ 60957} GPH503r+HV               =       G1P506E +      GHO                                    :  0.100E+01*SUN;
+{ 60958} GPH503r+HV               =       GPN400N +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 60959} G3P500x +GHO2               =  0.800GPG500p + 0.200GPA5012 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 60960} G3P500x +GNO                =       GPN400N +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 60961} G3P500x +GNO2               =       GPP500Y                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 60962} G3P500x +GNO3               =       GPN400N +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 60963} G3P500x +MEPERO             =  0.685GPN400N + 0.315GPA5012 + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60964} G3P500x +PERO1              =  0.800GPN400N + 0.200GPA5012 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60965} G3P500x +PERO2              =  0.750GPN400N + 0.250GPA5012 + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60966} G3P500x +PERO3              =  0.800GPN400N + 0.200GPA5012 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60967} G3P500x +PERO5              =  0.650GPN400N + 0.350GPA5012 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60968} G3P500x +PERO6              =  0.650GPN400N + 0.350GPA5012 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 60969} G3P500x +PERO9              =       GPN400N +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 60970} G2P505S +GNO                =       G1P506E +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 60971} G2P505S +GNO                =       GPN502C                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 60972} G2P505S +GHO2               =       GPH503r                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 60973} G2P505S +GNO3               =       G1P506E +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 60974} G2P505S +MEPERO             =  0.340G1P506E + 0.330GPN501S + 0.330GPN502E                 : ARR( 0.565E-13,  -845., 0.0);
+{ 60975} G2P505S +PERO1              =  0.460G1P506E + 0.270GPN501S + 0.270GPN502E                 : ARR( 0.434E-13,  -900., 0.0);
+{ 60976} G2P505S +PERO2              =  0.400G1P506E + 0.300GPN501S + 0.300GPN502E                 : ARR( 0.162E-13, -1400., 0.0);
+{ 60977} G2P505S +PERO3              =  0.460G1P506E + 0.270GPN501S + 0.270GPN502E                 : ARR( 0.488E-13, -1250., 0.0);
+{ 60978} G2P505S +PERO5              =  0.460G1P506E + 0.270GPN501S + 0.270GPN502E                 : ARR( 0.183E-11,   450., 0.0);
+{ 60979} G2P505S +PERO6              =  0.300G1P506E + 0.350GPN501S + 0.350GPN502E                 : ARR( 0.168E-13, -1300., 0.0);
+{ 60980} G2P505S +PERO9              =  0.650G1P506E + 0.350GPN502E                                : ARR( 0.100E-10,     0., 0.0);
+{ 60981} G1P507q                     =       GCO     +      GHD400C +      GNO2                    : ARR( 0.200E+15,  4949., 0.0);
+{ 60982} GPH503s                     =       G3H503N +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 60983} GPH503s +GHO                =       GPN502I +      GHO                                    : ARR( 0.173E-11,     0., 0.0);
+{ 60984} GPH503s +GHO                =       GPH503E +      GHO2                                   : ARR( 0.132E-11,     0., 0.0);
+{ 60985} GPH503s +GHO                =       G2P505T                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 60986} GPH503s+HV               =       G1P505U +      GNO2                                   :  0.100E+01*SUN;
+{ 60987} GPH503s+HV               =       G1P502q +      GHO                                    :  0.100E+01*SUN;
+{ 60988} GPH503s+HV               =       G1P503r +      GNO2                                   :  0.100E+01*SUN;
+{ 60989} GPH503s+HV               =       G3H503N +      GNO2                                   :  0.100E+01*SUN;
+{ 60990} G2P505T +GNO                =       G1P502q +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 60991} G2P505T +GNO                =       GPN502F                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 60992} G2P505T +GHO2               =       GPH503s                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 60993} G2P505T +GNO3               =       G1P502q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 60994} G2P505T +MEPERO             =  0.340G1P502q + 0.330GPN500r + 0.330GPN502I                 : ARR( 0.565E-13,  -845., 0.0);
+{ 60995} G2P505T +PERO1              =  0.460G1P502q + 0.270GPN500r + 0.270GPN502I                 : ARR( 0.434E-13,  -900., 0.0);
+{ 60996} G2P505T +PERO2              =  0.400G1P502q + 0.300GPN500r + 0.300GPN502I                 : ARR( 0.162E-13, -1400., 0.0);
+{ 60997} G2P505T +PERO3              =  0.460G1P502q + 0.270GPN500r + 0.270GPN502I                 : ARR( 0.488E-13, -1250., 0.0);
+{ 60998} G2P505T +PERO5              =  0.460G1P502q + 0.270GPN500r + 0.270GPN502I                 : ARR( 0.183E-11,   450., 0.0);
+{ 60999} G2P505T +PERO6              =  0.300G1P502q + 0.350GPN500r + 0.350GPN502I                 : ARR( 0.168E-13, -1300., 0.0);
+{ 61000} G2P505T +PERO9              =  0.650G1P502q + 0.350GPN502I                                : ARR( 0.100E-10,     0., 0.0);
+{ 61001} GPH503t                     =       G3H503O +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 61002} GPH503t +GHO                =       GPH5041 +      GHO                                    : ARR( 0.827E-11,     0., 0.0);
+{ 61003} GPH503t +GHO                =       GPH503Z +      GHO                                    : ARR( 0.413E-10,     0., 0.0);
+{ 61004} GPH503t +GHO                =       GPH505R +      GHO2                                   : ARR( 0.630E-11,     0., 0.0);
+{ 61005} GPH503t +GHO                =       G2P505U                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 61006} GPH503t +GHO                =       G2P5033                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 61007} GPH503t+HV               =       G1P506P +      GNO2                                   :  0.100E+01*SUN;
+{ 61008} GPH503t+HV               =       G1P507e +      GHO                                    :  0.100E+01*SUN;
+{ 61009} GPH503t+HV               =       G1P503r +      GHO                                    :  0.100E+01*SUN;
+{ 61010} GPH503t+HV               =       G3H503O +      GNO2                                   :  0.100E+01*SUN;
+{ 61011} G2P505U +GNO                =       G1P507e +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 61012} G2P505U +GNO                =       GPH503f                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 61013} G2P505U +GHO2               =       GPH503t                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 61014} G2P505U +GNO3               =       G1P507e +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 61015} G2P505U +MEPERO             =  0.340G1P507e + 0.330GPH501d + 0.330GPH5041                 : ARR( 0.565E-13,  -845., 0.0);
+{ 61016} G2P505U +PERO1              =  0.460G1P507e + 0.270GPH501d + 0.270GPH5041                 : ARR( 0.434E-13,  -900., 0.0);
+{ 61017} G2P505U +PERO2              =  0.400G1P507e + 0.300GPH501d + 0.300GPH5041                 : ARR( 0.162E-13, -1400., 0.0);
+{ 61018} G2P505U +PERO3              =  0.460G1P507e + 0.270GPH501d + 0.270GPH5041                 : ARR( 0.488E-13, -1250., 0.0);
+{ 61019} G2P505U +PERO5              =  0.460G1P507e + 0.270GPH501d + 0.270GPH5041                 : ARR( 0.183E-11,   450., 0.0);
+{ 61020} G2P505U +PERO6              =  0.300G1P507e + 0.350GPH501d + 0.350GPH5041                 : ARR( 0.168E-13, -1300., 0.0);
+{ 61021} G2P505U +PERO9              =  0.650G1P507e + 0.350GPH5041                                : ARR( 0.100E-10,     0., 0.0);
+{ 61022} GPH503u                     =       G3H503P +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 61023} GPH503u +GHO                =       GPN502h +      GHO                                    : ARR( 0.834E-11,     0., 0.0);
+{ 61024} GPH503u +GHO                =       GPH503Z +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 61025} GPH503u +GHO                =       GPH503S +      GHO2                                   : ARR( 0.635E-11,     0., 0.0);
+{ 61026} GPH503u +GHO                =       G2P505W                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 61027} GPH503u+HV               =       G1P505g +      GNO2                                   :  0.100E+01*SUN;
+{ 61028} GPH503u+HV               =       G1P507n +      GHO                                    :  0.100E+01*SUN;
+{ 61029} GPH503u+HV               =       G3H503P +      GNO2                                   :  0.100E+01*SUN;
+{ 61030} G2P505W +GNO                =       G1P507n +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 61031} G2P505W +GNO                =       GPN502f                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 61032} G2P505W +GHO2               =       GPH503u                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 61033} G2P505W +GNO3               =       G1P507n +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 61034} G2P505W +MEPERO             =  0.340G1P507n + 0.330GPN501T + 0.330GPN502h                 : ARR( 0.565E-13,  -845., 0.0);
+{ 61035} G2P505W +PERO1              =  0.460G1P507n + 0.270GPN501T + 0.270GPN502h                 : ARR( 0.434E-13,  -900., 0.0);
+{ 61036} G2P505W +PERO2              =  0.400G1P507n + 0.300GPN501T + 0.300GPN502h                 : ARR( 0.162E-13, -1400., 0.0);
+{ 61037} G2P505W +PERO3              =  0.460G1P507n + 0.270GPN501T + 0.270GPN502h                 : ARR( 0.488E-13, -1250., 0.0);
+{ 61038} G2P505W +PERO5              =  0.460G1P507n + 0.270GPN501T + 0.270GPN502h                 : ARR( 0.183E-11,   450., 0.0);
+{ 61039} G2P505W +PERO6              =  0.300G1P507n + 0.350GPN501T + 0.350GPN502h                 : ARR( 0.168E-13, -1300., 0.0);
+{ 61040} G2P505W +PERO9              =  0.650G1P507n + 0.350GPN502h                                : ARR( 0.100E-10,     0., 0.0);
+{ 61041} GPH503v                     =       G3H504l +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 61042} GPH503v +GHO                =       GPD500H +      GHO                                    : ARR( 0.847E-10,     0., 0.0);
+{ 61043} GPH503v +GHO                =       G3P500y                                               : ARR( 0.221E-10,     0., 0.0);
+{ 61044} GPH503v +GNO3               =       G3P500y +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 61045} GPH503v+HV               =       G3H400O +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 61046} GPH503v+HV               =       G1P5047 +      GHO                                    :  0.100E+01*SUN;
+{ 61047} GPH503v+HV               =       GPD4005 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 61048} G3H504l +GHO2               =  0.800GGH503B + 0.200GAH503c + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 61049} G3H504l +GNO                =       G3H400O +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 61050} G3H504l +GNO2               =       GPH503v                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 61051} G3H504l +GNO3               =       G3H400O +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 61052} G3H504l +MEPERO             =  0.685G3H400O + 0.315GAH503c + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 61053} G3H504l +PERO1              =  0.800G3H400O + 0.200GAH503c + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 61054} G3H504l +PERO2              =  0.750G3H400O + 0.250GAH503c + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 61055} G3H504l +PERO3              =  0.800G3H400O + 0.200GAH503c + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 61056} G3H504l +PERO5              =  0.650G3H400O + 0.350GAH503c + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 61057} G3H504l +PERO6              =  0.650G3H400O + 0.350GAH503c + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 61058} G3H504l +PERO9              =       G3H400O +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 61059} G3P500y +GHO2               =  0.800GPG501F + 0.200GPA501L + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 61060} G3P500y +GNO                =       GPD4005 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 61061} G3P500y +GNO2               =       GPP500i                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 61062} G3P500y +GNO3               =       GPD4005 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 61063} G3P500y +MEPERO             =  0.685GPD4005 + 0.315GPA501L + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61064} G3P500y +PERO1              =  0.800GPD4005 + 0.200GPA501L + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61065} G3P500y +PERO2              =  0.750GPD4005 + 0.250GPA501L + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61066} G3P500y +PERO3              =  0.800GPD4005 + 0.200GPA501L + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61067} G3P500y +PERO5              =  0.650GPD4005 + 0.350GPA501L + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61068} G3P500y +PERO6              =  0.650GPD4005 + 0.350GPA501L + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61069} G3P500y +PERO9              =       GPD4005 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 61070} GPH503w                     =       G3H504m +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 61071} GPH503w +GHO                =       GPH503v +      GHO                                    : ARR( 0.275E-10,     0., 0.0);
+{ 61072} GPH503w +GHO                =       G2P505X                                               : ARR( 0.491E-11,     0., 0.0);
+{ 61073} GPH503w +GHO                =       GPH5047 +      GHO                                    : ARR( 0.275E-10,     0., 0.0);
+{ 61074} GPH503w +GHO                =       G3P500z                                               : ARR( 0.228E-10,     0., 0.0);
+{ 61075} GPH503w +GNO3               =       G3P500z +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 61076} GPH503w+HV               =       G3H504m +      GNO2                                   :  0.100E+01*SUN;
+{ 61077} GPH503w+HV               =       G1P507q +      GHO                                    :  0.100E+01*SUN;
+{ 61078} GPH503w+HV               =       G1P507r +      GHO                                    :  0.100E+01*SUN;
+{ 61079} GPH503w+HV               =       GPH400U +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 61080} G3H504m +GHO2               =  0.800GGH505B + 0.200GAH503p + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 61081} G3H504m +GNO                =       GHD400C +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 61082} G3H504m +GNO2               =       GPH503w                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 61083} G3H504m +GNO3               =       GHD400C +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 61084} G3H504m +MEPERO             =  0.685GHD400C + 0.315GAH503p + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61085} G3H504m +PERO1              =  0.800GHD400C + 0.200GAH503p + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61086} G3H504m +PERO2              =  0.750GHD400C + 0.250GAH503p + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61087} G3H504m +PERO3              =  0.800GHD400C + 0.200GAH503p + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61088} G3H504m +PERO5              =  0.650GHD400C + 0.350GAH503p + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61089} G3H504m +PERO6              =  0.650GHD400C + 0.350GAH503p + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61090} G3H504m +PERO9              =       GHD400C +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 61091} G2P505X +GNO                =       G1P507s +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 61092} G2P505X +GNO                =       GPH505E                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 61093} G2P505X +GHO2               =       GPH505S                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 61094} G2P505X +GNO3               =       G1P507s +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 61095} G2P505X +MEPERO             =  0.340G1P507s + 0.330GPH505T + 0.330GPH505P                 : ARR( 0.565E-13,  -845., 0.0);
+{ 61096} G2P505X +PERO1              =  0.460G1P507s + 0.270GPH505T + 0.270GPH505P                 : ARR( 0.434E-13,  -900., 0.0);
+{ 61097} G2P505X +PERO2              =  0.400G1P507s + 0.300GPH505T + 0.300GPH505P                 : ARR( 0.162E-13, -1400., 0.0);
+{ 61098} G2P505X +PERO3              =  0.460G1P507s + 0.270GPH505T + 0.270GPH505P                 : ARR( 0.488E-13, -1250., 0.0);
+{ 61099} G2P505X +PERO5              =  0.460G1P507s + 0.270GPH505T + 0.270GPH505P                 : ARR( 0.183E-11,   450., 0.0);
+{ 61100} G2P505X +PERO6              =  0.300G1P507s + 0.350GPH505T + 0.350GPH505P                 : ARR( 0.168E-13, -1300., 0.0);
+{ 61101} G2P505X +PERO9              =  0.650G1P507s + 0.350GPH505P                                : ARR( 0.100E-10,     0., 0.0);
+{ 61102} G3P500z +GHO2               =  0.800GPG501G + 0.200GPA501K + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 61103} G3P500z +GNO                =       GPH400U +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 61104} G3P500z +GNO2               =       GPP500j                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 61105} G3P500z +GNO3               =       GPH400U +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 61106} G3P500z +MEPERO             =  0.685GPH400U + 0.315GPA501K + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61107} G3P500z +PERO1              =  0.800GPH400U + 0.200GPA501K + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61108} G3P500z +PERO2              =  0.750GPH400U + 0.250GPA501K + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61109} G3P500z +PERO3              =  0.800GPH400U + 0.200GPA501K + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61110} G3P500z +PERO5              =  0.650GPH400U + 0.350GPA501K + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61111} G3P500z +PERO6              =  0.650GPH400U + 0.350GPA501K + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61112} G3P500z +PERO9              =       GPH400U +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 61113} G1P507r                     =       GPH400U +      GCO     +      GHO2                    : ARR( 0.200E+15,  5437., 0.0);
+{ 61114} G1P507s                     =       GPD2000 +      GHD3004 +      GHO                     : ARR( 0.200E+15,  4308., 0.0);
+{ 61115} G1P507s                     =       GPH3007 +      GDD2000 +      GHO                     : ARR( 0.200E+15,  4086., 0.0);
+{ 61116} GPH503x                     =       G3H503H +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 61117} GPH503x +GHO                =       GPD500M +      GHO                                    : ARR( 0.168E-10,     0., 0.0);
+{ 61118} GPH503x +GHO                =       G3P5011                                               : ARR( 0.720E-10,     0., 0.0);
+{ 61119} GPH503x +GNO3               =       G3P5011 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 61120} GPH503x+HV               =       G3H503H +      GNO2                                   :  0.100E+01*SUN;
+{ 61121} GPH503x+HV               =       G3P3002 +      GDD2000 +      GHO                     :  0.100E+01*SUN;
+{ 61122} GPH503x+HV               =       G1P507t +      GHO                                    :  0.100E+01*SUN;
+{ 61123} GPH503x+HV               =       GPD4007 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 61124} G3P5011 +GHO2               =  0.800GPG500l + 0.200GPA500u + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 61125} G3P5011 +GNO                =       GPD4007 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 61126} G3P5011 +GNO2               =       GPP500T                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 61127} G3P5011 +GNO3               =       GPD4007 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 61128} G3P5011 +MEPERO             =  0.685GPD4007 + 0.315GPA500u + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61129} G3P5011 +PERO1              =  0.800GPD4007 + 0.200GPA500u + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61130} G3P5011 +PERO2              =  0.750GPD4007 + 0.250GPA500u + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61131} G3P5011 +PERO3              =  0.800GPD4007 + 0.200GPA500u + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61132} G3P5011 +PERO5              =  0.650GPD4007 + 0.350GPA500u + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61133} G3P5011 +PERO6              =  0.650GPD4007 + 0.350GPA500u + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61134} G3P5011 +PERO9              =       GPD4007 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 61135} G1P507t                     =       G3P3002 +      GDD2000                                : ARR( 0.200E+15,  5662., 0.0);
+{ 61136} GPG500M                     =       G3G500L +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 61137} GPG500M +GHO                =       GPG500P +      GHO                                    : ARR( 0.261E-10,     0., 0.0);
+{ 61138} GPG500M +GHO                =       GPG501F +      GHO2                                   : ARR( 0.654E-11,     0., 0.0);
+{ 61139} GPG500M +GHO                =       G3P500G                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 61140} GPG500M +GHO                =       G2P503H                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 61141} GPG500M+HV               =       GPD4002 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 61142} GPG500M+HV               =       G1P504B +      GHO                                    :  0.100E+01*SUN;
+{ 61143} GPG500M+HV               =       G3G500L +      GNO2                                   :  0.100E+01*SUN;
+{ 61144} GPA500R                     =       G3A500O +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 61145} GPA500R +GHO                =       GPA500S +      GHO                                    : ARR( 0.200E-10,     0., 0.0);
+{ 61146} GPA500R +GHO                =       GPA501L +      GHO2                                   : ARR( 0.674E-11,     0., 0.0);
+{ 61147} GPA500R +GHO                =       G2P503J                                               : ARR( 0.204E-11,  -190., 0.0);
+{ 61148} GPA500R+HV               =       G1P504D +      GHO                                    :  0.100E+01*SUN;
+{ 61149} GPA500R+HV               =       G3A500O +      GNO2                                   :  0.100E+01*SUN;
+{ 61150} GPP500B                     =       G3P500M +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 61151} GPP500B                     =       G3P500G +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 61152} GPP500B +GHO                =       GPP500i +      GHO2                                   : ARR( 0.656E-11,     0., 0.0);
+{ 61153} GPP500B +GHO                =       GPP500E +      GHO                                    : ARR( 0.262E-10,     0., 0.0);
+{ 61154} GPP500B +GHO                =       G2P503L                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 61155} GPP500B+HV               =       G3P500M +      GNO2                                   :  0.100E+01*SUN;
+{ 61156} GPP500B+HV               =       G1P504F +      GHO                                    :  0.100E+01*SUN;
+{ 61157} GPP500B+HV               =       G3P500G +      GNO2                                   :  0.100E+01*SUN;
+{ 61158} GPH503y                     =       G3H502i +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 61159} GPH503y +GHO                =       GPN502c +      GHO                                    : ARR( 0.518E-11,     0., 0.0);
+{ 61160} GPH503y +GHO                =       G2P5039                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 61161} GPH503y+HV               =       G1P507u +      GNO2                                   :  0.100E+01*SUN;
+{ 61162} GPH503y+HV               =       G3N2000 +      GPN3006 +      GHO                     :  0.100E+01*SUN;
+{ 61163} GPH503y+HV               =       G1P503y +      GHO                                    :  0.100E+01*SUN;
+{ 61164} GPH503y+HV               =       G1P503v +      GNO2                                   :  0.100E+01*SUN;
+{ 61165} GPH503y+HV               =       G3H502i +      GNO2                                   :  0.100E+01*SUN;
+{ 61166} G1P507u                     =       G3P400J +      GCH2O                                  : ARR( 0.200E+15,  3603., 0.0);
+{ 61167} GPH503z                     =       G3H504n +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 61168} GPH503z +GHO                =       GPH503c +      GHO                                    : ARR( 0.269E-10,     0., 0.0);
+{ 61169} GPH503z +GHO                =       GPH5042 +      GHO                                    : ARR( 0.852E-10,     0., 0.0);
+{ 61170} GPH503z+HV               =       G1P507v +      GNO2                                   :  0.100E+01*SUN;
+{ 61171} GPH503z+HV               =       G3N2000 +      GPH3007 +      GHO                     :  0.100E+01*SUN;
+{ 61172} GPH503z+HV               =       G1P506q +      GHO                                    :  0.100E+01*SUN;
+{ 61173} GPH503z+HV               =       G1P503v +      GHO                                    :  0.100E+01*SUN;
+{ 61174} GPH503z+HV               =       G3H504n +      GNO2                                   :  0.100E+01*SUN;
+{ 61175} G3H504n +GHO2               =  0.800GGH504B + 0.200GAH503s + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 61176} G3H504n +GNO                =       GHN400R +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 61177} G3H504n +GNO2               =       GPH503z                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 61178} G3H504n +GNO3               =       GHN400R +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 61179} G3H504n +MEPERO             =  0.685GHN400R + 0.315GAH503s + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61180} G3H504n +PERO1              =  0.800GHN400R + 0.200GAH503s + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61181} G3H504n +PERO2              =  0.750GHN400R + 0.250GAH503s + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61182} G3H504n +PERO3              =  0.800GHN400R + 0.200GAH503s + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61183} G3H504n +PERO5              =  0.650GHN400R + 0.350GAH503s + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61184} G3H504n +PERO6              =  0.650GHN400R + 0.350GAH503s + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61185} G3H504n +PERO9              =       GHN400R +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 61186} G1P507v                     =       G3P400L +      GCH2O                                  : ARR( 0.200E+15,  3603., 0.0);
+{ 61187} G3P400L +GHO2               =  0.800GPG400O + 0.200GPA400O + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 61188} G3P400L +GNO                =       GPH3007 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 61189} G3P400L +GNO2               =       GPP400E                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 61190} G3P400L +GNO3               =       GPH3007 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 61191} G3P400L +MEPERO             =  0.685GPH3007 + 0.315GPA400O + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61192} G3P400L +PERO1              =  0.800GPH3007 + 0.200GPA400O + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61193} G3P400L +PERO2              =  0.750GPH3007 + 0.250GPA400O + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61194} G3P400L +PERO3              =  0.800GPH3007 + 0.200GPA400O + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61195} G3P400L +PERO5              =  0.650GPH3007 + 0.350GPA400O + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61196} G3P400L +PERO6              =  0.650GPH3007 + 0.350GPA400O + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61197} G3P400L +PERO9              =       GPH3007 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 61198} GPH5041                     =       G3H503a +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 61199} GPH5041 +GHO                =       GPN502d +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 61200} GPH5041 +GHO                =       GPH5042 +      GHO2                                   : ARR( 0.200E-10,     0., 0.0);
+{ 61201} GPH5041 +GHO                =       G2P505Y                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 61202} GPH5041+HV               =       G1P507w +      GNO2                                   :  0.100E+01*SUN;
+{ 61203} GPH5041+HV               =       G3N2000 +      GPD3001 +      GHO                     :  0.100E+01*SUN;
+{ 61204} GPH5041+HV               =       G1P506X +      GHO                                    :  0.100E+01*SUN;
+{ 61205} GPH5041+HV               =       G3H503a +      GNO2                                   :  0.100E+01*SUN;
+{ 61206} G2P505Y +GNO                =       G1P506X +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 61207} G2P505Y +GNO                =       GPN502I                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 61208} G2P505Y +GHO2               =       GPH5041                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 61209} G2P505Y +GNO3               =       G1P506X +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 61210} G2P505Y +MEPERO             =  0.340G1P506X + 0.330GPN502h + 0.330GPN502d                 : ARR( 0.565E-13,  -845., 0.0);
+{ 61211} G2P505Y +PERO1              =  0.460G1P506X + 0.270GPN502h + 0.270GPN502d                 : ARR( 0.434E-13,  -900., 0.0);
+{ 61212} G2P505Y +PERO2              =  0.400G1P506X + 0.300GPN502h + 0.300GPN502d                 : ARR( 0.162E-13, -1400., 0.0);
+{ 61213} G2P505Y +PERO3              =  0.460G1P506X + 0.270GPN502h + 0.270GPN502d                 : ARR( 0.488E-13, -1250., 0.0);
+{ 61214} G2P505Y +PERO5              =  0.460G1P506X + 0.270GPN502h + 0.270GPN502d                 : ARR( 0.183E-11,   450., 0.0);
+{ 61215} G2P505Y +PERO6              =  0.300G1P506X + 0.350GPN502h + 0.350GPN502d                 : ARR( 0.168E-13, -1300., 0.0);
+{ 61216} G2P505Y +PERO9              =  0.650G1P506X + 0.350GPN502d                                : ARR( 0.100E-10,     0., 0.0);
+{ 61217} G1P507w                     =       G3P400I +      GCH2O                                  : ARR( 0.200E+15,  3603., 0.0);
+{ 61218} GPH5042                     =       G3H504j +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 61219} GPH5042 +GHO                =       GPN502e +      GHO                                    : ARR( 0.153E-10,     0., 0.0);
+{ 61220} GPH5042 +GHO                =       G2P503A                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 61221} GPH5042+HV               =       G1P507x +      GNO2                                   :  0.100E+01*SUN;
+{ 61222} GPH5042+HV               =       G3N2000 +      GPD3002 +      GHO                     :  0.100E+01*SUN;
+{ 61223} GPH5042+HV               =       G1P5042 +      GHO                                    :  0.100E+01*SUN;
+{ 61224} GPH5042+HV               =       G3H400R +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 61225} G1P507x                     =       G3P400K +      GCH2O                                  : ARR( 0.200E+15,  4349., 0.0);
+{ 61226} GPG400B                     =       G3G4008 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 61227} GPG400B +GHO                =       GPG400A +      GHO                                    : ARR( 0.258E-10,     0., 0.0);
+{ 61228} GPG400B +GHO                =       G3P4009                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 61229} GPG400B +GHO                =       G2P400l                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 61230} GPG400B+HV               =       GPD3000 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 61231} GPG400B+HV               =       G1P400v +      GHO                                    :  0.100E+01*SUN;
+{ 61232} GPG400B+HV               =       G3G4008 +      GNO2                                   :  0.100E+01*SUN;
+{ 61233} GPP4006                     =       G3P400A +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 61234} GPP4006                     =       G3P4009 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 61235} GPP4006 +GHO                =       GPP4002 +      GHO                                    : ARR( 0.259E-10,     0., 0.0);
+{ 61236} GPP4006 +GHO                =       G2P400n                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 61237} GPP4006+HV               =       G3P400A +      GNO2                                   :  0.100E+01*SUN;
+{ 61238} GPP4006+HV               =       G1P400x +      GHO                                    :  0.100E+01*SUN;
+{ 61239} GPP4006+HV               =       G3P4009 +      GNO2                                   :  0.100E+01*SUN;
+{ 61240} GPH5043                     =       G3H503Z +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 61241} GPH5043 +GHO                =       GPH503c +      GHO2                                   : ARR( 0.656E-11,     0., 0.0);
+{ 61242} GPH5043 +GHO                =       GPN502U +      GHO                                    : ARR( 0.832E-10,     0., 0.0);
+{ 61243} GPH5043+HV               =       G1P507y +      GNO2                                   :  0.100E+01*SUN;
+{ 61244} GPH5043+HV               =       G3N2000 +      GPH3007 +      GHO2                    :  0.100E+01*SUN;
+{ 61245} GPH5043+HV               =       G1P503x +      GHO                                    :  0.100E+01*SUN;
+{ 61246} GPH5043+HV               =       G3H503Z +      GNO2                                   :  0.100E+01*SUN;
+{ 61247} G1P507y                     =       G3P400F +      GCH2O                                  : ARR( 0.200E+15,  3603., 0.0);
+{ 61248} GPN502h                     =       G3N502H +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 61249} GPN502h +GHO                =       GPN502d +      GHO2                                   : ARR( 0.636E-11,     0., 0.0);
+{ 61250} GPN502h +GHO                =       GPN502U +      GHO2                                   : ARR( 0.202E-10,     0., 0.0);
+{ 61251} GPN502h+HV               =       G1P507z +      GNO2                                   :  0.100E+01*SUN;
+{ 61252} GPN502h+HV               =       G3N2000 +      GPD3001 +      GHO2                    :  0.100E+01*SUN;
+{ 61253} GPN502h+HV               =       G3N502H +      GNO2                                   :  0.100E+01*SUN;
+{ 61254} G1P507z                     =       G3P400D +      GCH2O                                  : ARR( 0.200E+15,  3603., 0.0);
+{ 61255} GPG400C                     =       G3G4007 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 61256} GPG400C +GHO                =       GPG4003 +      GHO                                    : ARR( 0.258E-10,     0., 0.0);
+{ 61257} GPG400C +GHO                =       G3P400A                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 61258} GPG400C +GHO                =       G2P400m                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 61259} GPG400C+HV               =       G2P300B +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 61260} GPG400C+HV               =       G1P400w +      GHO                                    :  0.100E+01*SUN;
+{ 61261} GPG400C+HV               =       G3G4007 +      GNO2                                   :  0.100E+01*SUN;
+{ 61262} GPG500N                     =       G3G500p +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 61263} GPG500N +GHO                =       G2P505Z                                               : ARR( 0.273E-11,     0., 0.0);
+{ 61264} GPG500N +GHO                =       G2P505a                                               : ARR( 0.862E-12,     0., 0.0);
+{ 61265} GPG500N +GHO                =       G3P500H                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 61266} GPG500N+HV               =       G2P400U +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 61267} GPG500N+HV               =       G3G4000 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 61268} G2P505Z +GNO                =       G1P5081 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 61269} G2P505Z +GNO                =       GPG500o                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 61270} G2P505Z +GHO2               =       GPG501F                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 61271} G2P505Z +GNO3               =       G1P5081 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 61272} G2P505Z +MEPERO             =  0.340G1P5081 + 0.330GPG500K + 0.330GPG5019                 : ARR( 0.565E-13,  -845., 0.0);
+{ 61273} G2P505Z +PERO1              =  0.460G1P5081 + 0.270GPG500K + 0.270GPG5019                 : ARR( 0.434E-13,  -900., 0.0);
+{ 61274} G2P505Z +PERO2              =  0.400G1P5081 + 0.300GPG500K + 0.300GPG5019                 : ARR( 0.162E-13, -1400., 0.0);
+{ 61275} G2P505Z +PERO3              =  0.460G1P5081 + 0.270GPG500K + 0.270GPG5019                 : ARR( 0.488E-13, -1250., 0.0);
+{ 61276} G2P505Z +PERO5              =  0.460G1P5081 + 0.270GPG500K + 0.270GPG5019                 : ARR( 0.183E-11,   450., 0.0);
+{ 61277} G2P505Z +PERO6              =  0.300G1P5081 + 0.350GPG500K + 0.350GPG5019                 : ARR( 0.168E-13, -1300., 0.0);
+{ 61278} G2P505Z +PERO9              =  0.650G1P5081 + 0.350GPG5019                                : ARR( 0.100E-10,     0., 0.0);
+{ 61279} G2P505a +GNO                =       G1P5082 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 61280} G2P505a +GNO                =       GPG500X                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 61281} G2P505a +GHO2               =       GPG5013                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 61282} G2P505a +GNO3               =       G1P5082 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 61283} G2P505a +MEPERO             =  0.340G1P5082 + 0.330GPG500a + 0.330GPG500g                 : ARR( 0.565E-13,  -845., 0.0);
+{ 61284} G2P505a +PERO1              =  0.460G1P5082 + 0.270GPG500a + 0.270GPG500g                 : ARR( 0.434E-13,  -900., 0.0);
+{ 61285} G2P505a +PERO2              =  0.400G1P5082 + 0.300GPG500a + 0.300GPG500g                 : ARR( 0.162E-13, -1400., 0.0);
+{ 61286} G2P505a +PERO3              =  0.460G1P5082 + 0.270GPG500a + 0.270GPG500g                 : ARR( 0.488E-13, -1250., 0.0);
+{ 61287} G2P505a +PERO5              =  0.460G1P5082 + 0.270GPG500a + 0.270GPG500g                 : ARR( 0.183E-11,   450., 0.0);
+{ 61288} G2P505a +PERO6              =  0.300G1P5082 + 0.350GPG500a + 0.350GPG500g                 : ARR( 0.168E-13, -1300., 0.0);
+{ 61289} G2P505a +PERO9              =  0.650G1P5082 + 0.350GPG500g                                : ARR( 0.100E-10,     0., 0.0);
+{ 61290} G1P5081                     =       GCO     +      GPD4005 +      GHO2                    : ARR( 0.200E+15,  4566., 0.0);
+{ 61291} G1P5082                     =       GGD3000 +      GCO     +      GNO2    +      GCO      : ARR( 0.200E+15,  2628., 0.0);
+{ 61292} GPP500C                     =       G3P500H +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 61293} GPP500C                     =       G3P500s +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 61294} GPP500C +GHO                =       G2P505b                                               : ARR( 0.273E-11,     0., 0.0);
+{ 61295} GPP500C +GHO                =       G2P505c                                               : ARR( 0.862E-12,     0., 0.0);
+{ 61296} GPP500C+HV               =       G3P500H +      GNO2                                   :  0.100E+01*SUN;
+{ 61297} GPP500C+HV               =       G3P4000 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 61298} G2P505b +GNO                =       G1P5083 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 61299} G2P505b +GNO                =       GPP500X                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 61300} G2P505b +GHO2               =       GPP500i                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 61301} G2P505b +GNO3               =       G1P5083 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 61302} G2P505b +MEPERO             =  0.340G1P5083 + 0.330GPP500E + 0.330GPP500k                 : ARR( 0.565E-13,  -845., 0.0);
+{ 61303} G2P505b +PERO1              =  0.460G1P5083 + 0.270GPP500E + 0.270GPP500k                 : ARR( 0.434E-13,  -900., 0.0);
+{ 61304} G2P505b +PERO2              =  0.400G1P5083 + 0.300GPP500E + 0.300GPP500k                 : ARR( 0.162E-13, -1400., 0.0);
+{ 61305} G2P505b +PERO3              =  0.460G1P5083 + 0.270GPP500E + 0.270GPP500k                 : ARR( 0.488E-13, -1250., 0.0);
+{ 61306} G2P505b +PERO5              =  0.460G1P5083 + 0.270GPP500E + 0.270GPP500k                 : ARR( 0.183E-11,   450., 0.0);
+{ 61307} G2P505b +PERO6              =  0.300G1P5083 + 0.350GPP500E + 0.350GPP500k                 : ARR( 0.168E-13, -1300., 0.0);
+{ 61308} G2P505b +PERO9              =  0.650G1P5083 + 0.350GPP500k                                : ARR( 0.100E-10,     0., 0.0);
+{ 61309} G2P505c +GNO                =       G1P5084 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 61310} G2P505c +GNO                =       GPP500K                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 61311} G2P505c +GHO2               =       GPP500c                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 61312} G2P505c +GNO3               =       G1P5084 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 61313} G2P505c +MEPERO             =  0.340G1P5084 + 0.330GPP500O + 0.330GPP500R                 : ARR( 0.565E-13,  -845., 0.0);
+{ 61314} G2P505c +PERO1              =  0.460G1P5084 + 0.270GPP500O + 0.270GPP500R                 : ARR( 0.434E-13,  -900., 0.0);
+{ 61315} G2P505c +PERO2              =  0.400G1P5084 + 0.300GPP500O + 0.300GPP500R                 : ARR( 0.162E-13, -1400., 0.0);
+{ 61316} G2P505c +PERO3              =  0.460G1P5084 + 0.270GPP500O + 0.270GPP500R                 : ARR( 0.488E-13, -1250., 0.0);
+{ 61317} G2P505c +PERO5              =  0.460G1P5084 + 0.270GPP500O + 0.270GPP500R                 : ARR( 0.183E-11,   450., 0.0);
+{ 61318} G2P505c +PERO6              =  0.300G1P5084 + 0.350GPP500O + 0.350GPP500R                 : ARR( 0.168E-13, -1300., 0.0);
+{ 61319} G2P505c +PERO9              =  0.650G1P5084 + 0.350GPP500R                                : ARR( 0.100E-10,     0., 0.0);
+{ 61320} G1P5083                     =       GPD4005 +      GCO     +      GNO2                    : ARR( 0.200E+15,  4566., 0.0);
+{ 61321} G1P5084                     =       GPD3000 +      GCO     +      GNO2    +      GCO      : ARR( 0.200E+15,  2628., 0.0);
+{ 61322} GPG500O                     =       G3G500H +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 61323} GPG500O +GHO                =       GPG500N +      GHO                                    : ARR( 0.269E-10,     0., 0.0);
+{ 61324} GPG500O +GHO                =       G3P500I                                               : ARR( 0.203E-11,  -190., 0.0);
+{ 61325} GPG500O +GHO                =       G2P505d                                               : ARR( 0.203E-11,  -190., 0.0);
+{ 61326} GPG500O+HV               =       G2P400o +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 61327} GPG500O+HV               =       G1P506G +      GHO                                    :  0.100E+01*SUN;
+{ 61328} GPG500O+HV               =       G3G500H +      GNO2                                   :  0.100E+01*SUN;
+{ 61329} G2P505d +GNO                =       G1P506G +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 61330} G2P505d +GNO                =       GPG500A                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 61331} G2P505d +GHO2               =       GPG500O                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 61332} G2P505d +GNO3               =       G1P506G +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 61333} G2P505d +MEPERO             =  0.340G1P506G + 0.330GPG5001 + 0.330GPG500N                 : ARR( 0.565E-13,  -845., 0.0);
+{ 61334} G2P505d +PERO1              =  0.460G1P506G + 0.270GPG5001 + 0.270GPG500N                 : ARR( 0.434E-13,  -900., 0.0);
+{ 61335} G2P505d +PERO2              =  0.400G1P506G + 0.300GPG5001 + 0.300GPG500N                 : ARR( 0.162E-13, -1400., 0.0);
+{ 61336} G2P505d +PERO3              =  0.460G1P506G + 0.270GPG5001 + 0.270GPG500N                 : ARR( 0.488E-13, -1250., 0.0);
+{ 61337} G2P505d +PERO5              =  0.460G1P506G + 0.270GPG5001 + 0.270GPG500N                 : ARR( 0.183E-11,   450., 0.0);
+{ 61338} G2P505d +PERO6              =  0.300G1P506G + 0.350GPG5001 + 0.350GPG500N                 : ARR( 0.168E-13, -1300., 0.0);
+{ 61339} G2P505d +PERO9              =  0.650G1P506G + 0.350GPG500N                                : ARR( 0.100E-10,     0., 0.0);
+{ 61340} GPP500D                     =       G3P500I +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 61341} GPP500D                     =       G3P500K +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 61342} GPP500D +GHO                =       GPP500C +      GHO                                    : ARR( 0.271E-10,     0., 0.0);
+{ 61343} GPP500D +GHO                =       G2P505e                                               : ARR( 0.205E-11,  -190., 0.0);
+{ 61344} GPP500D+HV               =       G3P500I +      GNO2                                   :  0.100E+01*SUN;
+{ 61345} GPP500D+HV               =       G1P506L +      GHO                                    :  0.100E+01*SUN;
+{ 61346} GPP500D+HV               =       G3P500K +      GNO2                                   :  0.100E+01*SUN;
+{ 61347} G2P505e +GNO                =       G1P506L +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 61348} G2P505e +GNO                =       GPP5007                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 61349} G2P505e +GHO2               =       GPP500D                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 61350} G2P505e +GNO3               =       G1P506L +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 61351} G2P505e +MEPERO             =  0.340G1P506L + 0.330GPP5000 + 0.330GPP500C                 : ARR( 0.565E-13,  -845., 0.0);
+{ 61352} G2P505e +PERO1              =  0.460G1P506L + 0.270GPP5000 + 0.270GPP500C                 : ARR( 0.434E-13,  -900., 0.0);
+{ 61353} G2P505e +PERO2              =  0.400G1P506L + 0.300GPP5000 + 0.300GPP500C                 : ARR( 0.162E-13, -1400., 0.0);
+{ 61354} G2P505e +PERO3              =  0.460G1P506L + 0.270GPP5000 + 0.270GPP500C                 : ARR( 0.488E-13, -1250., 0.0);
+{ 61355} G2P505e +PERO5              =  0.460G1P506L + 0.270GPP5000 + 0.270GPP500C                 : ARR( 0.183E-11,   450., 0.0);
+{ 61356} G2P505e +PERO6              =  0.300G1P506L + 0.350GPP5000 + 0.350GPP500C                 : ARR( 0.168E-13, -1300., 0.0);
+{ 61357} G2P505e +PERO9              =  0.650G1P506L + 0.350GPP500C                                : ARR( 0.100E-10,     0., 0.0);
+{ 61358} GPG500P                     =       G3G500O +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 61359} GPG500P +GHO                =       GPG5019 +      GHO2                                   : ARR( 0.208E-10,     0., 0.0);
+{ 61360} GPG500P +GHO                =       G3P5012                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 61361} GPG500P+HV               =       GPA4005 +      GCO2                                   :  0.100E+01*SUN;
+{ 61362} GPG500P+HV               =       G3G500O +      GNO2                                   :  0.100E+01*SUN;
+{ 61363} G3P5012 +GHO2               =  0.800GPG500P + 0.200GPA500S + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 61364} G3P5012 +GNO                =       G3P4005 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 61365} G3P5012 +GNO2               =       GPP500E                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 61366} G3P5012 +GNO3               =       G3P4005 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 61367} G3P5012 +MEPERO             =  0.685G3P4005 + 0.315GPA500S + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 61368} G3P5012 +PERO1              =  0.800G3P4005 + 0.200GPA500S + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 61369} G3P5012 +PERO2              =  0.750G3P4005 + 0.250GPA500S + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 61370} G3P5012 +PERO3              =  0.800G3P4005 + 0.200GPA500S + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 61371} G3P5012 +PERO5              =  0.650G3P4005 + 0.350GPA500S + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 61372} G3P5012 +PERO6              =  0.650G3P4005 + 0.350GPA500S + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 61373} G3P5012 +PERO9              =       G3P4005 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 61374} GPA500S                     =       G3A500R +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 61375} GPA500S +GHO                =       GPA501H +      GHO2                                   : ARR( 0.214E-10,     0., 0.0);
+{ 61376} GPA500S+HV               =       GPD4002 +      GCO2                                   :  0.100E+01*SUN;
+{ 61377} GPA500S+HV               =       G3A500R +      GNO2                                   :  0.100E+01*SUN;
+{ 61378} GPP500E                     =       G3P500P +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 61379} GPP500E                     =       G3P5012 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 61380} GPP500E +GHO                =       GPP500k +      GHO2                                   : ARR( 0.209E-10,     0., 0.0);
+{ 61381} GPP500E+HV               =       G3P500P +      GNO2                                   :  0.100E+01*SUN;
+{ 61382} GPP500E+HV               =       G3P4005 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 61383} GGH503E +GHO                =       GGN502E +      GHO                                    : ARR( 0.254E-10,     0., 0.0);
+{ 61384} GGH503E +GHO                =       G3G500s                                               : ARR( 0.420E-11,     0., 0.0);
+{ 61385} GGH503E +GHO                =       G3H502a                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 61386} GGH503E +GHO                =       G2G5022                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 61387} GGH503E +GNO3               =       G3G500s +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 61388} GGH503E+HV               =       GND400D +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 61389} GGH503E+HV               =       G1G502i +      GHO                                    :  0.100E+01*SUN;
+{ 61390} GGH503E+HV               =       G1G505b +      GNO2                                   :  0.100E+01*SUN;
+{ 61391} GGH503E+HV               =       GGH400R +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 61392} GGH503E+HV               =       G2G3005 +      GND2000 +      GHO                     :  0.100E+01*SUN;
+{ 61393} G3G500s +GHO2               =  0.800GGG500X + 0.200GAG500n + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 61394} G3G500s +GNO                =       GGH400R + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 61395} G3G500s +GNO2               =       GPG500p                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 61396} G3G500s +GNO3               =       GGH400R + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 61397} G3G500s +MEPERO             =  0.685GGH400R + 0.315GAG500n + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61398} G3G500s +PERO1              =  0.800GGH400R + 0.200GAG500n + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61399} G3G500s +PERO2              =  0.750GGH400R + 0.250GAG500n + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61400} G3G500s +PERO3              =  0.800GGH400R + 0.200GAG500n + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61401} G3G500s +PERO5              =  0.650GGH400R + 0.350GAG500n + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61402} G3G500s +PERO6              =  0.650GGH400R + 0.350GAG500n + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61403} G3G500s +PERO9              =       GGH400R +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 61404} G1G505b                     =       GGH400R +      GCO     +      GHO2                    : ARR( 0.200E+15,  5437., 0.0);
+{ 61405} GAH503u +GHO                =       GAN502c +      GHO                                    : ARR( 0.192E-10,     0., 0.0);
+{ 61406} GAH503u +GHO                =       G3A5015                                               : ARR( 0.429E-11,     0., 0.0);
+{ 61407} GAH503u +GHO                =       G2A503F                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 61408} GAH503u +GNO3               =       G3A5015 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 61409} GAH503u+HV               =       G1A5046 +      GHO                                    :  0.100E+01*SUN;
+{ 61410} GAH503u+HV               =       G1A507G +      GNO2                                   :  0.100E+01*SUN;
+{ 61411} GAH503u+HV               =       GAH400Q +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 61412} GAH503u+HV               =       G2A3006 +      GND2000 +      GHO                     :  0.100E+01*SUN;
+{ 61413} G3A5015 +GHO2               =  0.800GAG5016 + 0.200GAA500Z + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 61414} G3A5015 +GNO                =       GAH400Q + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 61415} G3A5015 +GNO2               =       GPA5012                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 61416} G3A5015 +GNO3               =       GAH400Q + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 61417} G3A5015 +MEPERO             =  0.685GAH400Q + 0.315GAA500Z + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61418} G3A5015 +PERO1              =  0.800GAH400Q + 0.200GAA500Z + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61419} G3A5015 +PERO2              =  0.750GAH400Q + 0.250GAA500Z + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61420} G3A5015 +PERO3              =  0.800GAH400Q + 0.200GAA500Z + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61421} G3A5015 +PERO5              =  0.650GAH400Q + 0.350GAA500Z + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61422} G3A5015 +PERO6              =  0.650GAH400Q + 0.350GAA500Z + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61423} G3A5015 +PERO9              =       GAH400Q +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 61424} GPH5044                     =       G3H502a +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 61425} GPH5044 +GHO                =       GPN502D +      GHO                                    : ARR( 0.254E-10,     0., 0.0);
+{ 61426} GPH5044 +GHO                =       G3P5013                                               : ARR( 0.420E-11,     0., 0.0);
+{ 61427} GPH5044 +GHO                =       G2P503N                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 61428} GPH5044 +GNO3               =       G3P5013 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 61429} GPH5044+HV               =       G3H502a +      GNO2                                   :  0.100E+01*SUN;
+{ 61430} GPH5044+HV               =       G1P504I +      GHO                                    :  0.100E+01*SUN;
+{ 61431} GPH5044+HV               =       G1P507r +      GNO2                                   :  0.100E+01*SUN;
+{ 61432} GPH5044+HV               =       GPH400U +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 61433} GPH5044+HV               =       G2P3006 +      GND2000 +      GHO                     :  0.100E+01*SUN;
+{ 61434} G3P5013 +GHO2               =  0.800GPG5017 + 0.200GPA500z + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 61435} G3P5013 +GNO                =       GPH400U + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 61436} G3P5013 +GNO2               =       GPP500Y                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 61437} G3P5013 +GNO3               =       GPH400U + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 61438} G3P5013 +MEPERO             =  0.685GPH400U + 0.315GPA500z + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61439} G3P5013 +PERO1              =  0.800GPH400U + 0.200GPA500z + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61440} G3P5013 +PERO2              =  0.750GPH400U + 0.250GPA500z + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61441} G3P5013 +PERO3              =  0.800GPH400U + 0.200GPA500z + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61442} G3P5013 +PERO5              =  0.650GPH400U + 0.350GPA500z + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61443} G3P5013 +PERO6              =  0.650GPH400U + 0.350GPA500z + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61444} G3P5013 +PERO9              =       GPH400U +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 61445} GGH503F +GHO                =       GGH5039 +      GHO                                    : ARR( 0.139E-09,     0., 0.0);
+{ 61446} GGH503F +GHO                =       GGH5035 +      GHO                                    : ARR( 0.268E-10,     0., 0.0);
+{ 61447} GGH503F +GHO                =       G3G500t                                               : ARR( 0.221E-10,     0., 0.0);
+{ 61448} GGH503F +GNO3               =       G3G500t +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 61449} GGH503F+HV               =       G2H401I +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 61450} GGH503F+HV               =       G1G502j +      GHO                                    :  0.100E+01*SUN;
+{ 61451} GGH503F+HV               =       G1G505G +      GHO                                    :  0.100E+01*SUN;
+{ 61452} GGH503F+HV               =       GGH400Q +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 61453} G3G500t +GHO2               =  0.800GGG500b + 0.200GAG500z + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 61454} G3G500t +GNO                =       GGH400Q +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 61455} G3G500t +GNO2               =       GPG5012                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 61456} G3G500t +GNO3               =       GGH400Q +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 61457} G3G500t +MEPERO             =  0.685GGH400Q + 0.315GAG500z + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61458} G3G500t +PERO1              =  0.800GGH400Q + 0.200GAG500z + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61459} G3G500t +PERO2              =  0.750GGH400Q + 0.250GAG500z + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61460} G3G500t +PERO3              =  0.800GGH400Q + 0.200GAG500z + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61461} G3G500t +PERO5              =  0.650GGH400Q + 0.350GAG500z + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61462} G3G500t +PERO6              =  0.650GGH400Q + 0.350GAG500z + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61463} G3G500t +PERO9              =       GGH400Q +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 61464} GGH503G +GHO                =       GGH5039 +      GHO2                                   : ARR( 0.361E-10,     0., 0.0);
+{ 61465} GGH503G +GHO                =       GGD500I +      GHO                                    : ARR( 0.277E-10,     0., 0.0);
+{ 61466} GGH503G +GHO                =       G3G500u                                               : ARR( 0.229E-10,     0., 0.0);
+{ 61467} GGH503G +GNO3               =       G3G500u +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 61468} GGH503G+HV               =       G2H401J +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 61469} GGH503G+HV               =       G1G505M +      GHO                                    :  0.100E+01*SUN;
+{ 61470} GGH503G+HV               =       GGD4001 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 61471} G3G500u +GHO2               =  0.800GGG500U + 0.200GAG5015 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 61472} G3G500u +GNO                =       GGD4001 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 61473} G3G500u +GNO2               =       GPG5016                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 61474} G3G500u +GNO3               =       GGD4001 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 61475} G3G500u +MEPERO             =  0.685GGD4001 + 0.315GAG5015 + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61476} G3G500u +PERO1              =  0.800GGD4001 + 0.200GAG5015 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61477} G3G500u +PERO2              =  0.750GGD4001 + 0.250GAG5015 + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61478} G3G500u +PERO3              =  0.800GGD4001 + 0.200GAG5015 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61479} G3G500u +PERO5              =  0.650GGD4001 + 0.350GAG5015 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61480} G3G500u +PERO6              =  0.650GGD4001 + 0.350GAG5015 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61481} G3G500u +PERO9              =       GGD4001 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 61482} GAH503v +GHO                =       GAH503W +      GHO                                    : ARR( 0.137E-09,     0., 0.0);
+{ 61483} GAH503v +GHO                =       GAH503K +      GHO                                    : ARR( 0.263E-10,     0., 0.0);
+{ 61484} GAH503v +GHO                =       G3A5016                                               : ARR( 0.218E-10,     0., 0.0);
+{ 61485} GAH503v +GNO3               =       G3A5016 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 61486} GAH503v+HV               =       G1A5047 +      GHO                                    :  0.100E+01*SUN;
+{ 61487} GAH503v+HV               =       G1A506K +      GHO                                    :  0.100E+01*SUN;
+{ 61488} GAH503v+HV               =       GAH400T +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 61489} G3A5016 +GHO2               =  0.800GAG501A + 0.200GAA500d + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 61490} G3A5016 +GNO                =       GAH400T +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 61491} G3A5016 +GNO2               =       GPA5018                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 61492} G3A5016 +GNO3               =       GAH400T +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 61493} G3A5016 +MEPERO             =  0.685GAH400T + 0.315GAA500d + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61494} G3A5016 +PERO1              =  0.800GAH400T + 0.200GAA500d + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61495} G3A5016 +PERO2              =  0.750GAH400T + 0.250GAA500d + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61496} G3A5016 +PERO3              =  0.800GAH400T + 0.200GAA500d + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61497} G3A5016 +PERO5              =  0.650GAH400T + 0.350GAA500d + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61498} G3A5016 +PERO6              =  0.650GAH400T + 0.350GAA500d + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61499} G3A5016 +PERO9              =       GAH400T +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 61500} GAH503w +GHO                =       GAH503W +      GHO2                                   : ARR( 0.347E-10,     0., 0.0);
+{ 61501} GAH503w +GHO                =       GAD500L +      GHO                                    : ARR( 0.267E-10,     0., 0.0);
+{ 61502} GAH503w +GHO                =       G3A5017                                               : ARR( 0.221E-10,     0., 0.0);
+{ 61503} GAH503w +GNO3               =       G3A5017 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 61504} GAH503w+HV               =       G1A506X +      GHO                                    :  0.100E+01*SUN;
+{ 61505} GAH503w+HV               =       GAD4001 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 61506} G3A5017 +GHO2               =  0.800GAG5013 + 0.200GAA500g + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 61507} G3A5017 +GNO                =       GAD4001 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 61508} G3A5017 +GNO2               =       GPA501C                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 61509} G3A5017 +GNO3               =       GAD4001 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 61510} G3A5017 +MEPERO             =  0.685GAD4001 + 0.315GAA500g + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61511} G3A5017 +PERO1              =  0.800GAD4001 + 0.200GAA500g + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61512} G3A5017 +PERO2              =  0.750GAD4001 + 0.250GAA500g + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61513} G3A5017 +PERO3              =  0.800GAD4001 + 0.200GAA500g + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61514} G3A5017 +PERO5              =  0.650GAD4001 + 0.350GAA500g + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61515} G3A5017 +PERO6              =  0.650GAD4001 + 0.350GAA500g + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61516} G3A5017 +PERO9              =       GAD4001 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 61517} GPH5045                     =       G3H502b +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 61518} GPH5045 +GHO                =       GPH503b +      GHO                                    : ARR( 0.137E-09,     0., 0.0);
+{ 61519} GPH5045 +GHO                =       GPH503Q +      GHO                                    : ARR( 0.263E-10,     0., 0.0);
+{ 61520} GPH5045 +GHO                =       G3P5014                                               : ARR( 0.217E-10,     0., 0.0);
+{ 61521} GPH5045 +GNO3               =       G3P5014 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 61522} GPH5045+HV               =       G3H502b +      GNO2                                   :  0.100E+01*SUN;
+{ 61523} GPH5045+HV               =       G1P504K +      GHO                                    :  0.100E+01*SUN;
+{ 61524} GPH5045+HV               =       G1P506x +      GHO                                    :  0.100E+01*SUN;
+{ 61525} GPH5045+HV               =       GPH400T +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 61526} G3P5014 +GHO2               =  0.800GPG501A + 0.200GPA5016 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 61527} G3P5014 +GNO                =       GPH400T +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 61528} G3P5014 +GNO2               =       GPP500b                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 61529} G3P5014 +GNO3               =       GPH400T +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 61530} G3P5014 +MEPERO             =  0.685GPH400T + 0.315GPA5016 + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61531} G3P5014 +PERO1              =  0.800GPH400T + 0.200GPA5016 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61532} G3P5014 +PERO2              =  0.750GPH400T + 0.250GPA5016 + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61533} G3P5014 +PERO3              =  0.800GPH400T + 0.200GPA5016 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61534} G3P5014 +PERO5              =  0.650GPH400T + 0.350GPA5016 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61535} G3P5014 +PERO6              =  0.650GPH400T + 0.350GPA5016 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61536} G3P5014 +PERO9              =       GPH400T +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 61537} GPH5046                     =       G3H502d +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 61538} GPH5046 +GHO                =       GPH503b +      GHO2                                   : ARR( 0.346E-10,     0., 0.0);
+{ 61539} GPH5046 +GHO                =       GPD500J +      GHO                                    : ARR( 0.266E-10,     0., 0.0);
+{ 61540} GPH5046 +GHO                =       G3P5015                                               : ARR( 0.220E-10,     0., 0.0);
+{ 61541} GPH5046 +GNO3               =       G3P5015 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 61542} GPH5046+HV               =       G3H502d +      GNO2                                   :  0.100E+01*SUN;
+{ 61543} GPH5046+HV               =       G1P507A +      GHO                                    :  0.100E+01*SUN;
+{ 61544} GPH5046+HV               =       GPD4001 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 61545} G3P5015 +GHO2               =  0.800GPG5015 + 0.200GPA501B + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 61546} G3P5015 +GNO                =       GPD4001 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 61547} G3P5015 +GNO2               =       GPP500d                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 61548} G3P5015 +GNO3               =       GPD4001 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 61549} G3P5015 +MEPERO             =  0.685GPD4001 + 0.315GPA501B + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61550} G3P5015 +PERO1              =  0.800GPD4001 + 0.200GPA501B + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61551} G3P5015 +PERO2              =  0.750GPD4001 + 0.250GPA501B + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61552} G3P5015 +PERO3              =  0.800GPD4001 + 0.200GPA501B + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61553} G3P5015 +PERO5              =  0.650GPD4001 + 0.350GPA501B + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61554} G3P5015 +PERO6              =  0.650GPD4001 + 0.350GPA501B + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61555} G3P5015 +PERO9              =       GPD4001 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 61556} GGH503H +GHO                =       GGD500J +      GHO                                    : ARR( 0.866E-10,     0., 0.0);
+{ 61557} GGH503H +GHO                =       G3G4008 +      GCO                                    : ARR( 0.138E-10,     0., 0.0);
+{ 61558} GGH503H +GNO3               =       G3G4008 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 61559} GGH503H+HV               =       GDD4002 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 61560} GGH503H+HV               =       G1G502k +      GHO                                    :  0.100E+01*SUN;
+{ 61561} GGH503H+HV               =       G3G4008 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 61562} GGH503H+HV               =       GGH400R +      GCO                                    :  0.100E+01*SUN;
+{ 61563} GGH503H+HV               =       GGH3001 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 61564} GAH503x +GHO                =       GAD500I +      GHO                                    : ARR( 0.631E-10,     0., 0.0);
+{ 61565} GAH503x +GHO                =       G3A4008 +      GCO                                    : ARR( 0.135E-10,     0., 0.0);
+{ 61566} GAH503x +GNO3               =       G3A4008 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 61567} GAH503x+HV               =       G1A5048 +      GHO                                    :  0.100E+01*SUN;
+{ 61568} GAH503x+HV               =       G3A4008 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 61569} GAH503x+HV               =       GAH400Q +      GCO                                    :  0.100E+01*SUN;
+{ 61570} GAH503x+HV               =       GAH3001 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 61571} GPH5047                     =       G3H502f +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 61572} GPH5047 +GHO                =       GPD500H +      GHO                                    : ARR( 0.835E-10,     0., 0.0);
+{ 61573} GPH5047 +GHO                =       G3P400A +      GCO                                    : ARR( 0.133E-10,     0., 0.0);
+{ 61574} GPH5047 +GNO3               =       G3P400A +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 61575} GPH5047+HV               =       G3H502f +      GNO2                                   :  0.100E+01*SUN;
+{ 61576} GPH5047+HV               =       G1P504L +      GHO                                    :  0.100E+01*SUN;
+{ 61577} GPH5047+HV               =       G3P400A +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 61578} GPH5047+HV               =       GPH400U +      GCO                                    :  0.100E+01*SUN;
+{ 61579} GPH5047+HV               =       GPH3001 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 61580} GHN506k +GHO                =       GNN503K +      GHO                                    : ARR( 0.323E-11,     0., 0.0);
+{ 61581} GHN506k +GHO                =       G3H504o                                               : ARR( 0.417E-11,     0., 0.0);
+{ 61582} GHN506k +GHO                =       G2N506b                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 61583} GHN506k +GNO3               =       G3H504o +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 61584} GHN506k+HV               =       G1N506a +      GHO                                    :  0.100E+01*SUN;
+{ 61585} GHN506k+HV               =       G1H50Bn +      GNO2                                   :  0.100E+01*SUN;
+{ 61586} GHN506k+HV               =       G1H50BS +      GNO2                                   :  0.100E+01*SUN;
+{ 61587} GHN506k+HV               =       G1H50Bo +      GNO2                                   :  0.100E+01*SUN;
+{ 61588} GHN506k+HV               =       GHN4013 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 61589} GHN506k+HV               =       GHD3001 +      GND2000 + 2.000GNO2                    :  0.100E+01*SUN;
+{ 61590} G3H504o +GHO2               =  0.800GGH505C + 0.200GAH504i + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 61591} G3H504o +GNO                =       GHN4013 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 61592} G3H504o +GNO2               =       GPH504m                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 61593} G3H504o +GNO3               =       GHN4013 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 61594} G3H504o +MEPERO             =  0.685GHN4013 + 0.315GAH504i + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61595} G3H504o +PERO1              =  0.800GHN4013 + 0.200GAH504i + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61596} G3H504o +PERO2              =  0.750GHN4013 + 0.250GAH504i + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61597} G3H504o +PERO3              =  0.800GHN4013 + 0.200GAH504i + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61598} G3H504o +PERO5              =  0.650GHN4013 + 0.350GAH504i + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61599} G3H504o +PERO6              =  0.650GHN4013 + 0.350GAH504i + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61600} G3H504o +PERO9              =       GHN4013 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 61601} G2N506b +GNO                =       G1N506a +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 61602} G2N506b +GNO                =       GNN502w                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 61603} G2N506b +GHO2               =       GHN506k                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 61604} G2N506b +GNO3               =       G1N506a +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 61605} G2N506b +MEPERO             =  0.480G1N506a + 0.260GNN502y + 0.260GNN503K                 : ARR( 0.164E-12,  -795., 0.0);
+{ 61606} G2N506b +PERO1              =  0.600G1N506a + 0.200GNN502y + 0.200GNN503K                 : ARR( 0.126E-12,  -850., 0.0);
+{ 61607} G2N506b +PERO2              =  0.560G1N506a + 0.220GNN502y + 0.220GNN503K                 : ARR( 0.471E-13, -1350., 0.0);
+{ 61608} G2N506b +PERO3              =  0.600G1N506a + 0.200GNN502y + 0.200GNN503K                 : ARR( 0.142E-12, -1200., 0.0);
+{ 61609} G2N506b +PERO5              =  0.600G1N506a + 0.200GNN502y + 0.200GNN503K                 : ARR( 0.533E-11,   500., 0.0);
+{ 61610} G2N506b +PERO6              =  0.460G1N506a + 0.270GNN502y + 0.270GNN503K                 : ARR( 0.488E-13, -1250., 0.0);
+{ 61611} G2N506b +PERO9              =  0.800G1N506a + 0.200GNN503K                                : ARR( 0.100E-10,     0., 0.0);
+{ 61612} G1H50Bn                     =       GCH2O   +      GNN400Z +      GHO                     : ARR( 0.200E+15,  7395., 0.0);
+{ 61613} G1H50Bn                     =       GHD2000 +      GND3005 +      GNO2                    : ARR( 0.200E+15,  6367., 0.0);
+{ 61614} G1H50Bo                     =       GNN503C +      GHO                                    : ARR( 0.160E+12,  2905., 0.0);
+{ 61615} G1H50Bo                     =       GHN4013 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 61616} GGN502I +GHO                =       G3N501w                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 61617} GGN502I+HV               =       G1G505c +      GNO2                                   :  0.100E+01*SUN;
+{ 61618} GGN502I+HV               =       G1G505d +      GNO2                                   :  0.100E+01*SUN;
+{ 61619} GGN502I+HV               =       G1G505e +      GNO2                                   :  0.100E+01*SUN;
+{ 61620} GGN502I+HV               =       G1G505f +      GNO2                                   :  0.100E+01*SUN;
+{ 61621} GGN502I+HV               =       GNN400D +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 61622} G1G505c +OXYGEN             =       GGN502s +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 61623} G1G505c                     =       GGN502S +      GNO2                                   : ARR( 0.800E+11,  4964., 0.0);
+{ 61624} G1G505c                     =       GGN400X +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7042., 0.0);
+{ 61625} G1G505d                     =       GND2000 +      GGN3005 +      GNO2                    : ARR( 0.200E+15,  6365., 0.0);
+{ 61626} G1G505e                     =       GND2000 +      GGN3005 +      GNO2                    : ARR( 0.200E+15,  5492., 0.0);
+{ 61627} G1G505f                     =       GNN400D +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 61628} GNN503K +GHO                =       G3N502n                                               : ARR( 0.834E-11,     0., 0.0);
+{ 61629} GNN503K +GNO3               =       G3N502n +      GHNO3                                  : ARR( 0.240E-13,     0., 0.0);
+{ 61630} GNN503K+HV               =       GCO     +      GNN400Z +      GHO2    +      GNO2     :  0.200E+01*SUN;
+{ 61631} GNN503K+HV               =       GND2000 +      GDD3002 + 2.000GNO2                    :  0.200E+01*SUN;
+{ 61632} GNN503K+HV               =       G1N507J +      GNO2                                   :  0.200E+01*SUN;
+{ 61633} GNN503K+HV               =       G1N507H +      GNO2                                   :  0.100E+01*SUN;
+{ 61634} G3N502n +GHO2               =  0.800GGN502s + 0.200GAN502j + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 61635} G3N502n +GNO                =       GNN400Z + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 61636} G3N502n +GNO2               =       GPN502j                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 61637} G3N502n +GNO3               =       GNN400Z + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 61638} G3N502n +MEPERO             =  0.685GNN400Z + 0.315GAN502j + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61639} G3N502n +PERO1              =  0.800GNN400Z + 0.200GAN502j + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61640} G3N502n +PERO2              =  0.750GNN400Z + 0.250GAN502j + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61641} G3N502n +PERO3              =  0.800GNN400Z + 0.200GAN502j + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61642} G3N502n +PERO5              =  0.650GNN400Z + 0.350GAN502j + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61643} G3N502n +PERO6              =  0.650GNN400Z + 0.350GAN502j + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61644} G3N502n +PERO9              =       GNN400Z +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 61645} G1N507J                     =       GNN400Z +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 61646} GGH400t +GHO                =       GGN400X +      GHO                                    : ARR( 0.323E-11,     0., 0.0);
+{ 61647} GGH400t +GHO                =       G2G400x                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 61648} GGH400t +GHO                =       G3H400m                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 61649} GGH400t+HV               =       G1G400i +      GHO                                    :  0.100E+01*SUN;
+{ 61650} GGH400t+HV               =       G1G401F +      GNO2                                   :  0.100E+01*SUN;
+{ 61651} GGH400t+HV               =       G1G4017 +      GNO2                                   :  0.100E+01*SUN;
+{ 61652} GGH400t+HV               =       GHN300A +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 61653} G1G401F                     =       GCH2O   +      GGN3005 +      GHO                     : ARR( 0.200E+15,  6565., 0.0);
+{ 61654} G1G401F                     =       GHD2000 +      GGD2000 +      GNO2                    : ARR( 0.200E+15,  6737., 0.0);
+{ 61655} GGN502J +GHO                =       G3N501x                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 61656} GGN502J+HV               =       G1G505g +      GNO2                                   :  0.100E+01*SUN;
+{ 61657} GGN502J+HV               =       G3N2000 +      GGN3005 +      GNO2                    :  0.100E+01*SUN;
+{ 61658} GGN502J+HV               =       G1G505h +      GNO2                                   :  0.100E+01*SUN;
+{ 61659} GGN502J+HV               =       G1G505i +      GNO2                                   :  0.100E+01*SUN;
+{ 61660} GGN502J+HV               =       GNN400G +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 61661} G1G505g                     =       G3G400D +      GCH2O                                  : ARR( 0.200E+15,  3640., 0.0);
+{ 61662} G1G505h                     =       G3N2000 +      GGN3005                                : ARR( 0.200E+15,  2059., 0.0);
+{ 61663} G1G505i                     =       GNN400G +      GCO     +      GHO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 61664} GGN502K +GHO                =       GGN502s +      GHO2                                   : ARR( 0.838E-12,     0., 0.0);
+{ 61665} GGN502K +GHO                =       G3N501y                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 61666} GGN502K+HV               =       G1G505j +      GNO2                                   :  0.100E+01*SUN;
+{ 61667} GGN502K+HV               =       G1G505B +      GNO2                                   :  0.100E+01*SUN;
+{ 61668} GGN502K+HV               =       G1G502q +      GNO2                                   :  0.100E+01*SUN;
+{ 61669} GGN502K+HV               =       GNN400E +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 61670} G1G505j                     =       GCH2O   +      GGN400X +      GHO2                    : ARR( 0.200E+15,  5296., 0.0);
+{ 61671} G1G505j                     =       GDO2000 +      GGN3005 +      GNO2                    : ARR( 0.200E+15,  6367., 0.0);
+{ 61672} GGH503I +GHO                =       GGN502J +      GHO                                    : ARR( 0.166E-11,     0., 0.0);
+{ 61673} GGH503I +GHO                =       G2G503y                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 61674} GGH503I +GHO                =       G3H502g                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 61675} GGH503I+HV               =       G1G505k +      GNO2                                   :  0.100E+01*SUN;
+{ 61676} GGH503I+HV               =       G1G505d +      GHO                                    :  0.100E+01*SUN;
+{ 61677} GGH503I+HV               =       G1G505l +      GNO2                                   :  0.100E+01*SUN;
+{ 61678} GGH503I+HV               =       G1G505m +      GNO2                                   :  0.100E+01*SUN;
+{ 61679} GGH503I+HV               =       GHN4012 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 61680} G2G503y +GNO                =       G1G505d +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 61681} G2G503y +GNO                =       GGN502I                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 61682} G2G503y +GHO2               =       GGH503I                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 61683} G2G503y +GNO3               =       G1G505d +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 61684} G2G503y +MEPERO             =  0.340G1G505d + 0.330GGN501A + 0.330GGN502J                 : ARR( 0.565E-13,  -845., 0.0);
+{ 61685} G2G503y +PERO1              =  0.460G1G505d + 0.270GGN501A + 0.270GGN502J                 : ARR( 0.434E-13,  -900., 0.0);
+{ 61686} G2G503y +PERO2              =  0.400G1G505d + 0.300GGN501A + 0.300GGN502J                 : ARR( 0.162E-13, -1400., 0.0);
+{ 61687} G2G503y +PERO3              =  0.460G1G505d + 0.270GGN501A + 0.270GGN502J                 : ARR( 0.488E-13, -1250., 0.0);
+{ 61688} G2G503y +PERO5              =  0.460G1G505d + 0.270GGN501A + 0.270GGN502J                 : ARR( 0.183E-11,   450., 0.0);
+{ 61689} G2G503y +PERO6              =  0.300G1G505d + 0.350GGN501A + 0.350GGN502J                 : ARR( 0.168E-13, -1300., 0.0);
+{ 61690} G2G503y +PERO9              =  0.650G1G505d + 0.350GGN502J                                : ARR( 0.100E-10,     0., 0.0);
+{ 61691} G1G505k                     =       GGN400X +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{ 61692} G1G505l                     =       GND2000 +      GGN3005 +      GHO                     : ARR( 0.200E+15,  3953., 0.0);
+{ 61693} G1G505m                     =       GHN4012 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 61694} GHN506l +GHO                =       GNN503L +      GHO                                    : ARR( 0.325E-11,     0., 0.0);
+{ 61695} GHN506l +GHO                =       G3H504p                                               : ARR( 0.420E-11,     0., 0.0);
+{ 61696} GHN506l +GHO                =       G2N506c                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 61697} GHN506l +GNO3               =       G3H504p +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 61698} GHN506l+HV               =       G1N506i +      GHO                                    :  0.100E+01*SUN;
+{ 61699} GHN506l+HV               =       G1H50Bp +      GNO2                                   :  0.100E+01*SUN;
+{ 61700} GHN506l+HV               =       G3H3005 +      GDD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 61701} GHN506l+HV               =       G1H50Bq +      GNO2                                   :  0.100E+01*SUN;
+{ 61702} GHN506l+HV               =       GHN401C +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 61703} G3H504p +GHO2               =  0.800GGH505D + 0.200GAH504q + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 61704} G3H504p +GNO                =       GHN401C + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 61705} G3H504p +GNO2               =       GPH504y                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 61706} G3H504p +GNO3               =       GHN401C + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 61707} G3H504p +MEPERO             =  0.685GHN401C + 0.315GAH504q + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61708} G3H504p +PERO1              =  0.800GHN401C + 0.200GAH504q + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61709} G3H504p +PERO2              =  0.750GHN401C + 0.250GAH504q + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61710} G3H504p +PERO3              =  0.800GHN401C + 0.200GAH504q + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61711} G3H504p +PERO5              =  0.650GHN401C + 0.350GAH504q + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61712} G3H504p +PERO6              =  0.650GHN401C + 0.350GAH504q + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61713} G3H504p +PERO9              =       GHN401C +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 61714} G2N506c +GNO                =       G1N506i +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 61715} G2N506c +GNO                =       GNN502z                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 61716} G2N506c +GHO2               =       GHN506l                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 61717} G2N506c +GNO3               =       G1N506i +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 61718} G2N506c +MEPERO             =  0.480G1N506i + 0.260GNN503F + 0.260GNN503L                 : ARR( 0.164E-12,  -795., 0.0);
+{ 61719} G2N506c +PERO1              =  0.600G1N506i + 0.200GNN503F + 0.200GNN503L                 : ARR( 0.126E-12,  -850., 0.0);
+{ 61720} G2N506c +PERO2              =  0.560G1N506i + 0.220GNN503F + 0.220GNN503L                 : ARR( 0.471E-13, -1350., 0.0);
+{ 61721} G2N506c +PERO3              =  0.600G1N506i + 0.200GNN503F + 0.200GNN503L                 : ARR( 0.142E-12, -1200., 0.0);
+{ 61722} G2N506c +PERO5              =  0.600G1N506i + 0.200GNN503F + 0.200GNN503L                 : ARR( 0.533E-11,   500., 0.0);
+{ 61723} G2N506c +PERO6              =  0.460G1N506i + 0.270GNN503F + 0.270GNN503L                 : ARR( 0.488E-13, -1250., 0.0);
+{ 61724} G2N506c +PERO9              =  0.800G1N506i + 0.200GNN503L                                : ARR( 0.100E-10,     0., 0.0);
+{ 61725} G1H50Bp                     =       GHD2000 +      G3N3005                                : ARR( 0.200E+15,  4123., 0.0);
+{ 61726} G1H50Bq                     =       G3H3005 +      GDD2000                                : ARR( 0.200E+15,  4953., 0.0);
+{ 61727} GGN502L +GHO                =       G3N501z                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 61728} GGN502L+HV               =       G1G505n +      GNO2                                   :  0.100E+01*SUN;
+{ 61729} GGN502L+HV               =       G1G505o +      GNO2                                   :  0.100E+01*SUN;
+{ 61730} GGN502L+HV               =       G3N3003 +      GGD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 61731} GGN502L+HV               =       G1G5031 +      GNO2                                   :  0.100E+01*SUN;
+{ 61732} GGN502L+HV               =       GNN400a +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 61733} G1G505n +OXYGEN             =       GGN502o +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 61734} G1G505n                     =       GGN400Z +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7323., 0.0);
+{ 61735} G1G505o                     =       GND2000 +      G3G3001                                : ARR( 0.200E+15,  4121., 0.0);
+{ 61736} GNN503L +GHO                =       G3N502o                                               : ARR( 0.840E-11,     0., 0.0);
+{ 61737} GNN503L +GNO3               =       G3N502o +      GHNO3                                  : ARR( 0.240E-13,     0., 0.0);
+{ 61738} GNN503L+HV               =       GCO     +      GND400N +      GHO2    +      GNO2     :  0.200E+01*SUN;
+{ 61739} GNN503L+HV               =       G1N507K +      GNO2                                   :  0.200E+01*SUN;
+{ 61740} GNN503L+HV               =       G3N3005 +      GDD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 61741} G3N502o +GHO2               =  0.800GGN502o + 0.200GAN502n + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 61742} G3N502o +GNO                =       GND400N + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 61743} G3N502o +GNO2               =       GPN502p                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 61744} G3N502o +GNO3               =       GND400N + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 61745} G3N502o +MEPERO             =  0.685GND400N + 0.315GAN502n + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61746} G3N502o +PERO1              =  0.800GND400N + 0.200GAN502n + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61747} G3N502o +PERO2              =  0.750GND400N + 0.250GAN502n + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61748} G3N502o +PERO3              =  0.800GND400N + 0.200GAN502n + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61749} G3N502o +PERO5              =  0.650GND400N + 0.350GAN502n + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61750} G3N502o +PERO6              =  0.650GND400N + 0.350GAN502n + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61751} G3N502o +PERO9              =       GND400N +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 61752} G1N507K                     =       G3N3005 +      GDD2000                                : ARR( 0.200E+15,  6007., 0.0);
+{ 61753} GNN2000 +GHO                =       GND2000 +      GNO2                                   : ARR( 0.184E-13,     0., 0.0);
+{ 61754} GNN2000+HV               =       G1N2000 +      GNO2                                   :  0.200E+01*SUN;
+{ 61755} GGN502M +GHO                =       G3N5021                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 61756} GGN502M+HV               =       G1G505p +      GNO2                                   :  0.100E+01*SUN;
+{ 61757} GGN502M+HV               =       G3N2000 +      G3G3001                                :  0.100E+01*SUN;
+{ 61758} GGN502M+HV               =       G1G5035 +      GNO2                                   :  0.100E+01*SUN;
+{ 61759} GGN502M+HV               =       GND400M +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 61760} G1G505p                     =       G3G3001 +      GCH2O   +      GCO                     : ARR( 0.200E+15,  3897., 0.0);
+{ 61761} GGN502N +GHO                =       GGN502X +      GHO2                                   : ARR( 0.392E-11,     0., 0.0);
+{ 61762} GGN502N +GHO                =       G3N5022                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 61763} GGN502N+HV               =       G1G505q +      GNO2                                   :  0.100E+01*SUN;
+{ 61764} GGN502N+HV               =       G1G505r +      GNO2                                   :  0.100E+01*SUN;
+{ 61765} GGN502N+HV               =       G3N3003 +      GGD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 61766} GGN502N+HV               =       GNN400a +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 61767} G1G505q +OXYGEN             =       GGN502p +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 61768} G1G505q                     =       GGN502Z +      GHO2                                   : ARR( 0.800E+11,  4228., 0.0);
+{ 61769} G1G505q                     =       GGD4007 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7323., 0.0);
+{ 61770} G1G505r                     =       GND2000 +      G3G3002                                : ARR( 0.200E+15,  3775., 0.0);
+{ 61771} GND501Z +GHO                =       G3N502p                                               : ARR( 0.660E-10,     0., 0.0);
+{ 61772} GND501Z +GHO                =       GND501X +      GHO2                                   : ARR( 0.384E-11,     0., 0.0);
+{ 61773} GND501Z +GHO                =       G3N502c                                               : ARR( 0.417E-11,     0., 0.0);
+{ 61774} GND501Z +GNO3               =       G3N502p +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 61775} GND501Z +GNO3               =       G3N502c +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 61776} GND501Z+HV               =       GCO     +      GND400N +      GHO2                    :  0.100E+01*SUN;
+{ 61777} GND501Z+HV               =       G3D3001 +      GDD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 61778} GND501Z+HV               =       G1D501T +      GNO2                                   :  0.100E+01*SUN;
+{ 61779} GND501Z+HV               =       GDD4004 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 61780} G3N502p +GHO2               =  0.800GGN502p + 0.200GAN502t + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 61781} G3N502p +GNO                =       GND400N +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 61782} G3N502p +GNO2               =       GPN502q                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 61783} G3N502p +GNO3               =       GND400N +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 61784} G3N502p +MEPERO             =  0.685GND400N + 0.315GAN502t + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61785} G3N502p +PERO1              =  0.800GND400N + 0.200GAN502t + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61786} G3N502p +PERO2              =  0.750GND400N + 0.250GAN502t + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61787} G3N502p +PERO3              =  0.800GND400N + 0.200GAN502t + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61788} G3N502p +PERO5              =  0.650GND400N + 0.350GAN502t + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61789} G3N502p +PERO6              =  0.650GND400N + 0.350GAN502t + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61790} G3N502p +PERO9              =       GND400N +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 61791} GGN502O +GHO                =       GGN502p +      GHO2                                   : ARR( 0.839E-12,     0., 0.0);
+{ 61792} GGN502O +GHO                =       GGN502Z +      GHO2                                   : ARR( 0.399E-11,     0., 0.0);
+{ 61793} GGN502O +GHO                =       G3N5025                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 61794} GGN502O+HV               =       G1G505s +      GNO2                                   :  0.100E+01*SUN;
+{ 61795} GGN502O+HV               =       G3N3004 +      GGD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 61796} GGN502O+HV               =       GND400K +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 61797} G1G505s                     =       GDO2000 +      G3G3002                                : ARR( 0.200E+15,  3778., 0.0);
+{ 61798} GGH503J +GHO                =       GGN502M +      GHO                                    : ARR( 0.513E-11,     0., 0.0);
+{ 61799} GGH503J +GHO                =       G2G503z                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 61800} GGH503J +GHO                =       G3H502i                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 61801} GGH503J+HV               =       G1G505t +      GNO2                                   :  0.100E+01*SUN;
+{ 61802} GGH503J+HV               =       G3N2000 +      GGN3005 +      GHO                     :  0.100E+01*SUN;
+{ 61803} GGH503J+HV               =       G1G505h +      GHO                                    :  0.100E+01*SUN;
+{ 61804} GGH503J+HV               =       G1G503b +      GNO2                                   :  0.100E+01*SUN;
+{ 61805} GGH503J+HV               =       GHN400R +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 61806} G2G503z +GNO                =       G1G505h +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 61807} G2G503z +GNO                =       GGN502J                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 61808} G2G503z +GHO2               =       GGH503J                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 61809} G2G503z +GNO3               =       G1G505h +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 61810} G2G503z +MEPERO             =  0.340G1G505h + 0.330GGN502P + 0.330GGN502M                 : ARR( 0.565E-13,  -845., 0.0);
+{ 61811} G2G503z +PERO1              =  0.460G1G505h + 0.270GGN502P + 0.270GGN502M                 : ARR( 0.434E-13,  -900., 0.0);
+{ 61812} G2G503z +PERO2              =  0.400G1G505h + 0.300GGN502P + 0.300GGN502M                 : ARR( 0.162E-13, -1400., 0.0);
+{ 61813} G2G503z +PERO3              =  0.460G1G505h + 0.270GGN502P + 0.270GGN502M                 : ARR( 0.488E-13, -1250., 0.0);
+{ 61814} G2G503z +PERO5              =  0.460G1G505h + 0.270GGN502P + 0.270GGN502M                 : ARR( 0.183E-11,   450., 0.0);
+{ 61815} G2G503z +PERO6              =  0.300G1G505h + 0.350GGN502P + 0.350GGN502M                 : ARR( 0.168E-13, -1300., 0.0);
+{ 61816} G2G503z +PERO9              =  0.650G1G505h + 0.350GGN502M                                : ARR( 0.100E-10,     0., 0.0);
+{ 61817} G1G505t                     =       G3G400H +      GCH2O                                  : ARR( 0.200E+15,  3603., 0.0);
+{ 61818} GGN502P +GHO                =       GGN502M +      GHO2                                   : ARR( 0.136E-11,     0., 0.0);
+{ 61819} GGN502P +GHO                =       G3N5026                                               : ARR( 0.206E-11,  -190., 0.0);
+{ 61820} GGN502P+HV               =       G1G505u +      GNO2                                   :  0.100E+01*SUN;
+{ 61821} GGN502P+HV               =       G3N2000 +      GGN3005 +      GHO2                    :  0.100E+01*SUN;
+{ 61822} GGN502P+HV               =       G1G503d +      GNO2                                   :  0.100E+01*SUN;
+{ 61823} GGN502P+HV               =       GND400E +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 61824} G1G505u                     =       G3G400C +      GCH2O                                  : ARR( 0.200E+15,  3603., 0.0);
+{ 61825} GGH400u +GHO                =       GGN400Z +      GHO                                    : ARR( 0.983E-11,     0., 0.0);
+{ 61826} GGH400u +GHO                =       G2G400o                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 61827} GGH400u +GHO                =       G3H400n                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 61828} GGH400u+HV               =       G1G400l +      GHO                                    :  0.100E+01*SUN;
+{ 61829} GGH400u+HV               =       G3H2000 +      GGD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 61830} GGH400u+HV               =       G1G4018 +      GNO2                                   :  0.100E+01*SUN;
+{ 61831} GGH400u+HV               =       GHD3001 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 61832} GHN506m +GHO                =       GND501Y +      GHO                                    : ARR( 0.100E-10,     0., 0.0);
+{ 61833} GHN506m +GHO                =       GHN506U +      GHO2                                   : ARR( 0.128E-11,     0., 0.0);
+{ 61834} GHN506m +GHO                =       G3H504q                                               : ARR( 0.424E-11,     0., 0.0);
+{ 61835} GHN506m +GHO                =       G2N506d                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 61836} GHN506m +GNO3               =       G3H504q +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 61837} GHN506m+HV               =       G1N506r +      GHO                                    :  0.100E+01*SUN;
+{ 61838} GHN506m+HV               =       G3H2000 +      GND3005 +      GHO2                    :  0.100E+01*SUN;
+{ 61839} GHN506m+HV               =       G1H50Br +      GNO2                                   :  0.100E+01*SUN;
+{ 61840} GHN506m+HV               =       GHD400J +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 61841} G3H504q +GHO2               =  0.800GGH504b + 0.200GAH504f + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 61842} G3H504q +GNO                =       GHD400J + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 61843} G3H504q +GNO2               =       GPH504j                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 61844} G3H504q +GNO3               =       GHD400J + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 61845} G3H504q +MEPERO             =  0.685GHD400J + 0.315GAH504f + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61846} G3H504q +PERO1              =  0.800GHD400J + 0.200GAH504f + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61847} G3H504q +PERO2              =  0.750GHD400J + 0.250GAH504f + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61848} G3H504q +PERO3              =  0.800GHD400J + 0.200GAH504f + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61849} G3H504q +PERO5              =  0.650GHD400J + 0.350GAH504f + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61850} G3H504q +PERO6              =  0.650GHD400J + 0.350GAH504f + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61851} G3H504q +PERO9              =       GHD400J +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 61852} G2N506d +GNO                =       G1N506r +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 61853} G2N506d +GNO                =       GNN5035                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 61854} G2N506d +GHO2               =       GHN506m                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 61855} G2N506d +GNO3               =       G1N506r +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 61856} G2N506d +MEPERO             =  0.480G1N506r + 0.260GND501E + 0.260GND501Y                 : ARR( 0.164E-12,  -795., 0.0);
+{ 61857} G2N506d +PERO1              =  0.600G1N506r + 0.200GND501E + 0.200GND501Y                 : ARR( 0.126E-12,  -850., 0.0);
+{ 61858} G2N506d +PERO2              =  0.560G1N506r + 0.220GND501E + 0.220GND501Y                 : ARR( 0.471E-13, -1350., 0.0);
+{ 61859} G2N506d +PERO3              =  0.600G1N506r + 0.200GND501E + 0.200GND501Y                 : ARR( 0.142E-12, -1200., 0.0);
+{ 61860} G2N506d +PERO5              =  0.600G1N506r + 0.200GND501E + 0.200GND501Y                 : ARR( 0.533E-11,   500., 0.0);
+{ 61861} G2N506d +PERO6              =  0.460G1N506r + 0.270GND501E + 0.270GND501Y                 : ARR( 0.488E-13, -1250., 0.0);
+{ 61862} G2N506d +PERO9              =  0.800G1N506r + 0.200GND501Y                                : ARR( 0.100E-10,     0., 0.0);
+{ 61863} G1H50Br                     =       GHD3001 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  5180., 0.0);
+{ 61864} G1H50Br                     =       GHD400J +      GCO     +      GHO2                    : ARR( 0.200E+15,  4861., 0.0);
+{ 61865} GGN400a +GHO                =       G3N400Z                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 61866} GGN400a+HV               =       G1G4019 +      GNO2                                   :  0.100E+01*SUN;
+{ 61867} GGN400a+HV               =       G1G400t +      GNO2                                   :  0.100E+01*SUN;
+{ 61868} GGN400a+HV               =       GAN3004 +      GCO2                                   :  0.100E+01*SUN;
+{ 61869} GAH400v +GHO                =       GAH400S +      GHO                                    : ARR( 0.189E-10,     0., 0.0);
+{ 61870} GAH400v +GHO                =       GAH400P +      GHO                                    : ARR( 0.838E-11,     0., 0.0);
+{ 61871} GAH400v +GHO                =       G2A401G                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 61872} GAH400v +GHO                =       G2A401H                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 61873} GAH400v+HV               =       G1A400w +      GHO                                    :  0.100E+01*SUN;
+{ 61874} GAH400v+HV               =       G1A400y +      GHO                                    :  0.100E+01*SUN;
+{ 61875} GAH400v+HV               =       G1A401M +      GNO2                                   :  0.100E+01*SUN;
+{ 61876} G2A401G +GNO                =       G1A400w +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 61877} G2A401G +GNO                =       GAH400N                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 61878} G2A401G +GHO2               =       GAH400v                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 61879} G2A401G +GNO3               =       G1A400w +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 61880} G2A401G +MEPERO             =  0.340G1A400w + 0.330GAH400R + 0.330GAH400S                 : ARR( 0.565E-13,  -845., 0.0);
+{ 61881} G2A401G +PERO1              =  0.460G1A400w + 0.270GAH400R + 0.270GAH400S                 : ARR( 0.434E-13,  -900., 0.0);
+{ 61882} G2A401G +PERO2              =  0.400G1A400w + 0.300GAH400R + 0.300GAH400S                 : ARR( 0.162E-13, -1400., 0.0);
+{ 61883} G2A401G +PERO3              =  0.460G1A400w + 0.270GAH400R + 0.270GAH400S                 : ARR( 0.488E-13, -1250., 0.0);
+{ 61884} G2A401G +PERO5              =  0.460G1A400w + 0.270GAH400R + 0.270GAH400S                 : ARR( 0.183E-11,   450., 0.0);
+{ 61885} G2A401G +PERO6              =  0.300G1A400w + 0.350GAH400R + 0.350GAH400S                 : ARR( 0.168E-13, -1300., 0.0);
+{ 61886} G2A401G +PERO9              =  0.650G1A400w + 0.350GAH400S                                : ARR( 0.100E-10,     0., 0.0);
+{ 61887} G2A401H +GNO                =       G1A400y +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 61888} G2A401H +GNO                =       GAH400O                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 61889} G2A401H +GHO2               =       GAH400v                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 61890} G2A401H +GNO3               =       G1A400y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 61891} G2A401H +MEPERO             =  0.340G1A400y + 0.330GAH4004 + 0.330GAH400P                 : ARR( 0.565E-13,  -845., 0.0);
+{ 61892} G2A401H +PERO1              =  0.460G1A400y + 0.270GAH4004 + 0.270GAH400P                 : ARR( 0.434E-13,  -900., 0.0);
+{ 61893} G2A401H +PERO2              =  0.400G1A400y + 0.300GAH4004 + 0.300GAH400P                 : ARR( 0.162E-13, -1400., 0.0);
+{ 61894} G2A401H +PERO3              =  0.460G1A400y + 0.270GAH4004 + 0.270GAH400P                 : ARR( 0.488E-13, -1250., 0.0);
+{ 61895} G2A401H +PERO5              =  0.460G1A400y + 0.270GAH4004 + 0.270GAH400P                 : ARR( 0.183E-11,   450., 0.0);
+{ 61896} G2A401H +PERO6              =  0.300G1A400y + 0.350GAH4004 + 0.350GAH400P                 : ARR( 0.168E-13, -1300., 0.0);
+{ 61897} G2A401H +PERO9              =  0.650G1A400y + 0.350GAH400P                                : ARR( 0.100E-10,     0., 0.0);
+{ 61898} GGH400v +GHO                =       GGH400p +      GHO                                    : ARR( 0.865E-10,     0., 0.0);
+{ 61899} GGH400v +GHO                =       GGH400s +      GHO                                    : ARR( 0.273E-10,     0., 0.0);
+{ 61900} GGH400v +GHO                =       G3G400L                                               : ARR( 0.226E-10,     0., 0.0);
+{ 61901} GGH400v +GNO3               =       G3G400L +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 61902} GGH400v+HV               =       GHD3004 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 61903} GGH400v+HV               =       G1G401B +      GHO                                    :  0.100E+01*SUN;
+{ 61904} GGH400v+HV               =       G1G401D +      GHO                                    :  0.100E+01*SUN;
+{ 61905} GGH400v+HV               =       GGH3007 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 61906} G3G400L +GHO2               =  0.800GGG400E + 0.200GAG400O + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 61907} G3G400L +GNO                =       GGH3007 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 61908} G3G400L +GNO2               =       GPG400O                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 61909} G3G400L +GNO3               =       GGH3007 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 61910} G3G400L +MEPERO             =  0.685GGH3007 + 0.315GAG400O + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61911} G3G400L +PERO1              =  0.800GGH3007 + 0.200GAG400O + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61912} G3G400L +PERO2              =  0.750GGH3007 + 0.250GAG400O + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61913} G3G400L +PERO3              =  0.800GGH3007 + 0.200GAG400O + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61914} G3G400L +PERO5              =  0.650GGH3007 + 0.350GAG400O + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61915} G3G400L +PERO6              =  0.650GGH3007 + 0.350GAG400O + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 61916} G3G400L +PERO9              =       GGH3007 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 61917} GGG4005 +GHO                =       GGG4004 +      GHO                                    : ARR( 0.257E-10,     0., 0.0);
+{ 61918} GGG4005 +GHO                =       G3G4008                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 61919} GGG4005 +GHO                =       G2G400f                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 61920} GGG4005 +GHO                =       G3G4007                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 61921} GGG4005+HV               =       G2G3008 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 61922} GGG4005+HV               =       G1G400u +      GHO                                    :  0.100E+01*SUN;
+{ 61923} GGG4005+HV               =       GGD3000 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 61924} GPH400w                     =       G3H400w +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 61925} GPH400w +GHO                =       GPH400t +      GHO                                    : ARR( 0.842E-10,     0., 0.0);
+{ 61926} GPH400w +GHO                =       GPH400v +      GHO                                    : ARR( 0.266E-10,     0., 0.0);
+{ 61927} GPH400w +GHO                =       G3P400L                                               : ARR( 0.220E-10,     0., 0.0);
+{ 61928} GPH400w +GNO3               =       G3P400L +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 61929} GPH400w+HV               =       G3H400w +      GNO2                                   :  0.100E+01*SUN;
+{ 61930} GPH400w+HV               =       G1P4017 +      GHO                                    :  0.100E+01*SUN;
+{ 61931} GPH400w+HV               =       G1P401R +      GHO                                    :  0.100E+01*SUN;
+{ 61932} GPH400w+HV               =       GPH3007 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 61933} GGN502Q +GHO                =       GGN502F +      GHO2                                   : ARR( 0.132E-11,     0., 0.0);
+{ 61934} GGN502Q +GHO                =       G3N5027                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 61935} GGN502Q+HV               =       G1G505v +      GNO2                                   :  0.100E+01*SUN;
+{ 61936} GGN502Q+HV               =       G3N2000 +      GGD3001 +      GNO2                    :  0.100E+01*SUN;
+{ 61937} GGN502Q+HV               =       G1G505w +      GNO2                                   :  0.100E+01*SUN;
+{ 61938} GGN502Q+HV               =       GNN400G +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 61939} G1G505v                     =       G3G400B +      GCH2O                                  : ARR( 0.200E+15,  3640., 0.0);
+{ 61940} G1G505w                     =       G3N2000 +      GGD3001                                : ARR( 0.200E+15,  2059., 0.0);
+{ 61941} GGN502R +GHO                =       GGN502G +      GHO2                                   : ARR( 0.392E-11,     0., 0.0);
+{ 61942} GGN502R +GHO                =       G3N5028                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 61943} GGN502R+HV               =       G1G505x +      GNO2                                   :  0.100E+01*SUN;
+{ 61944} GGN502R+HV               =       G3N2000 +      G3G3002                                :  0.100E+01*SUN;
+{ 61945} GGN502R+HV               =       GND400M +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 61946} G1G505x                     =       G3G3002 +      GCH2O   +      GCO                     : ARR( 0.200E+15,  3897., 0.0);
+{ 61947} GGH503K +GHO                =       GGN5022 +      GHO                                    : ARR( 0.163E-10,     0., 0.0);
+{ 61948} GGH503K +GHO                =       G2G5041                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 61949} GGH503K +GHO                =       G3H502j                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 61950} GGH503K+HV               =       G1G502P +      GHO                                    :  0.100E+01*SUN;
+{ 61951} GGH503K+HV               =       G1G505y +      GNO2                                   :  0.100E+01*SUN;
+{ 61952} GGH503K+HV               =       G1G505z +      GNO2                                   :  0.100E+01*SUN;
+{ 61953} GGH503K+HV               =       GHN400M +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 61954} G2G5041 +GNO                =       G1G502P +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 61955} G2G5041 +GNO                =       GGN500z                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 61956} G2G5041 +GHO2               =       GGH503K                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 61957} G2G5041 +GNO3               =       G1G502P +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 61958} G2G5041 +MEPERO             =  0.480G1G502P + 0.260GGN500n + 0.260GGN5022                 : ARR( 0.146E-12,  -445., 0.0);
+{ 61959} G2G5041 +PERO1              =  0.600G1G502P + 0.200GGN500n + 0.200GGN5022                 : ARR( 0.112E-12,  -500., 0.0);
+{ 61960} G2G5041 +PERO2              =  0.560G1G502P + 0.220GGN500n + 0.220GGN5022                 : ARR( 0.418E-13, -1000., 0.0);
+{ 61961} G2G5041 +PERO3              =  0.600G1G502P + 0.200GGN500n + 0.200GGN5022                 : ARR( 0.126E-12,  -850., 0.0);
+{ 61962} G2G5041 +PERO5              =  0.600G1G502P + 0.200GGN500n + 0.200GGN5022                 : ARR( 0.473E-11,   850., 0.0);
+{ 61963} G2G5041 +PERO6              =  0.460G1G502P + 0.270GGN500n + 0.270GGN5022                 : ARR( 0.434E-13,  -900., 0.0);
+{ 61964} G2G5041 +PERO9              =  0.800G1G502P + 0.200GGN5022                                : ARR( 0.100E-10,     0., 0.0);
+{ 61965} G1G505y                     =       G2H2000 +      GGN3005                                : ARR( 0.200E+15,  6244., 0.0);
+{ 61966} G1G505y                     =       GHD3000 +      GGD2000 +      GNO2                    : ARR( 0.200E+15,  6422., 0.0);
+{ 61967} G1G505z                     =       GGN500q +      GHO                                    : ARR( 0.160E+12,  2186., 0.0);
+{ 61968} G1G505z                     =       GHN400M +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 61969} GGH503L +GHO                =       GGN502U +      GHO                                    : ARR( 0.162E-10,     0., 0.0);
+{ 61970} GGH503L +GHO                =       GGH504n +      GHO2                                   : ARR( 0.208E-11,     0., 0.0);
+{ 61971} GGH503L +GHO                =       G2G5042                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 61972} GGH503L +GHO                =       G3H502k                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 61973} GGH503L+HV               =       G1G502l +      GHO                                    :  0.100E+01*SUN;
+{ 61974} GGH503L+HV               =       G1G5061 +      GNO2                                   :  0.100E+01*SUN;
+{ 61975} GGH503L+HV               =       G1G5062 +      GNO2                                   :  0.100E+01*SUN;
+{ 61976} GGH503L+HV               =       GHN400Y +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 61977} G2G5042 +GNO                =       G1G502l +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 61978} G2G5042 +GNO                =       GGN501A                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 61979} G2G5042 +GHO2               =       GGH503L                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 61980} G2G5042 +GNO3               =       G1G502l +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 61981} G2G5042 +MEPERO             =  0.480G1G502l + 0.260GGN501D + 0.260GGN502U                 : ARR( 0.164E-12,  -795., 0.0);
+{ 61982} G2G5042 +PERO1              =  0.600G1G502l + 0.200GGN501D + 0.200GGN502U                 : ARR( 0.126E-12,  -850., 0.0);
+{ 61983} G2G5042 +PERO2              =  0.560G1G502l + 0.220GGN501D + 0.220GGN502U                 : ARR( 0.471E-13, -1350., 0.0);
+{ 61984} G2G5042 +PERO3              =  0.600G1G502l + 0.200GGN501D + 0.200GGN502U                 : ARR( 0.142E-12, -1200., 0.0);
+{ 61985} G2G5042 +PERO5              =  0.600G1G502l + 0.200GGN501D + 0.200GGN502U                 : ARR( 0.533E-11,   500., 0.0);
+{ 61986} G2G5042 +PERO6              =  0.460G1G502l + 0.270GGN501D + 0.270GGN502U                 : ARR( 0.488E-13, -1250., 0.0);
+{ 61987} G2G5042 +PERO9              =  0.800G1G502l + 0.200GGN502U                                : ARR( 0.100E-10,     0., 0.0);
+{ 61988} G1G5061                     =       GHD2000 +      GGN3005 +      GHO2                    : ARR( 0.200E+15,  2745., 0.0);
+{ 61989} G1G5062                     =       GGN501W +      GHO                                    : ARR( 0.160E+12,  2186., 0.0);
+{ 61990} G1G5062                     =       GHN400Y +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 61991} GGH503M +GHO                =       GGH505E +      GHO2                                   : ARR( 0.816E-12,     0., 0.0);
+{ 61992} GGH503M +GHO                =       GGN502S +      GHO                                    : ARR( 0.510E-11,     0., 0.0);
+{ 61993} GGH503M +GHO                =       G2G5026                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 61994} GGH503M +GHO                =       G3H502l                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 61995} GGH503M+HV               =       G1G5063 +      GNO2                                   :  0.100E+01*SUN;
+{ 61996} GGH503M+HV               =       G1G5064 +      GNO2                                   :  0.100E+01*SUN;
+{ 61997} GGH503M+HV               =       G1G502q +      GHO                                    :  0.100E+01*SUN;
+{ 61998} GGH503M+HV               =       GNN400E +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 61999} G1G5063                     =       GCH2O   +      GGH400r +      GHO2                    : ARR( 0.200E+15,  5296., 0.0);
+{ 62000} G1G5063                     =       GDO2000 +      GGH3007 +      GNO2                    : ARR( 0.200E+15,  6367., 0.0);
+{ 62001} G1G5064                     =       GDO2000 +      GGH3007 +      GNO2                    : ARR( 0.200E+15,  5492., 0.0);
+{ 62002} G1G5064                     =       GND3004 +      GGD2000 +      GHO                     : ARR( 0.200E+15,  5138., 0.0);
+{ 62003} GGN502S +GHO                =       GGN502t +      GHO2                                   : ARR( 0.837E-12,     0., 0.0);
+{ 62004} GGN502S +GHO                =       G3N502P                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 62005} GGN502S+HV               =       G1G5065 +      GNO2                                   :  0.100E+01*SUN;
+{ 62006} GGN502S+HV               =       G1G505E +      GNO2                                   :  0.100E+01*SUN;
+{ 62007} GGN502S+HV               =       GAN400I +      GCO2                                   :  0.100E+01*SUN;
+{ 62008} G1G5065                     =       GCH2O   +      GGN400b +      GHO2                    : ARR( 0.200E+15,  4465., 0.0);
+{ 62009} GGN502T +GHO                =       GGN502t +      GHO2                                   : ARR( 0.128E-11,     0., 0.0);
+{ 62010} GGN502T +GHO                =       G3G500v                                               : ARR( 0.424E-11,     0., 0.0);
+{ 62011} GGN502T +GHO                =       G3N5029                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 62012} GGN502T +GNO3               =       G3G500v +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 62013} GGN502T+HV               =       GNN400Z +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 62014} GGN502T+HV               =       G1G5066 +      GNO2                                   :  0.100E+01*SUN;
+{ 62015} GGN502T+HV               =       G1G5067 +      GNO2                                   :  0.100E+01*SUN;
+{ 62016} GGN502T+HV               =       GGN400U +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 62017} GGN502T+HV               =       GGN3006 +      GND2000                                :  0.100E+01*SUN;
+{ 62018} G3G500v +GHO2               =  0.800GGG500c + 0.200GAG500p + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 62019} G3G500v +GNO                =       GGN400U + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 62020} G3G500v +GNO2               =       GPG500t                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 62021} G3G500v +GNO3               =       GGN400U + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 62022} G3G500v +MEPERO             =  0.685GGN400U + 0.315GAG500p + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 62023} G3G500v +PERO1              =  0.800GGN400U + 0.200GAG500p + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 62024} G3G500v +PERO2              =  0.750GGN400U + 0.250GAG500p + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 62025} G3G500v +PERO3              =  0.800GGN400U + 0.200GAG500p + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 62026} G3G500v +PERO5              =  0.650GGN400U + 0.350GAG500p + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 62027} G3G500v +PERO6              =  0.650GGN400U + 0.350GAG500p + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 62028} G3G500v +PERO9              =       GGN400U +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 62029} G1G5066                     =       GGD2000 +      GND3005 +      GHO2                    : ARR( 0.200E+15,  3099., 0.0);
+{ 62030} G1G5067                     =       GGN400U +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 62031} GGN502U +GHO                =       G3G500w                                               : ARR( 0.220E-10,     0., 0.0);
+{ 62032} GGN502U +GHO                =       G3N502A                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 62033} GGN502U +GNO3               =       G3G500w +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 62034} GGN502U+HV               =       GND400J +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 62035} GGN502U+HV               =       G1G5068 +      GNO2                                   :  0.100E+01*SUN;
+{ 62036} GGN502U+HV               =       G1G5069 +      GNO2                                   :  0.100E+01*SUN;
+{ 62037} GGN502U+HV               =       GGN400X +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 62038} G3G500w +GHO2               =  0.800GGG500c + 0.200GAG500v + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 62039} G3G500w +GNO                =       GGN400X +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 62040} G3G500w +GNO2               =       GPG500U                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 62041} G3G500w +GNO3               =       GGN400X +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 62042} G3G500w +MEPERO             =  0.685GGN400X + 0.315GAG500v + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 62043} G3G500w +PERO1              =  0.800GGN400X + 0.200GAG500v + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 62044} G3G500w +PERO2              =  0.750GGN400X + 0.250GAG500v + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 62045} G3G500w +PERO3              =  0.800GGN400X + 0.200GAG500v + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 62046} G3G500w +PERO5              =  0.650GGN400X + 0.350GAG500v + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 62047} G3G500w +PERO6              =  0.650GGN400X + 0.350GAG500v + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 62048} G3G500w +PERO9              =       GGN400X +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 62049} G1G5068                     =       GCO     +      GND400J +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 62050} G1G5069                     =       GGN3005 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  2877., 0.0);
+{ 62051} GGH503N +GHO                =       GGH502W +      GHO                                    : ARR( 0.679E-11,     0., 0.0);
+{ 62052} GGH503N +GHO                =       GGH502Q +      GHO                                    : ARR( 0.509E-11,     0., 0.0);
+{ 62053} GGH503N +GHO                =       G2G5043                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 62054} GGH503N +GHO                =       G2G5044                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 62055} GGH503N +GHO                =       G3H502m                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 62056} GGH503N+HV               =       G1G504g +      GHO                                    :  0.100E+01*SUN;
+{ 62057} GGH503N+HV               =       G1G506A +      GNO2                                   :  0.100E+01*SUN;
+{ 62058} GGH503N+HV               =       G1G504Q +      GHO                                    :  0.100E+01*SUN;
+{ 62059} GGH503N+HV               =       GHN400p +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 62060} G2G5043 +GNO                =       G1G504g +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 62061} G2G5043 +GNO                =       GGH502U                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 62062} G2G5043 +GHO2               =       GGH503N                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 62063} G2G5043 +GNO3               =       G1G504g +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 62064} G2G5043 +MEPERO             =  0.340G1G504g + 0.330GGH5018 + 0.330GGH502W                 : ARR( 0.565E-13,  -845., 0.0);
+{ 62065} G2G5043 +PERO1              =  0.460G1G504g + 0.270GGH5018 + 0.270GGH502W                 : ARR( 0.434E-13,  -900., 0.0);
+{ 62066} G2G5043 +PERO2              =  0.400G1G504g + 0.300GGH5018 + 0.300GGH502W                 : ARR( 0.162E-13, -1400., 0.0);
+{ 62067} G2G5043 +PERO3              =  0.460G1G504g + 0.270GGH5018 + 0.270GGH502W                 : ARR( 0.488E-13, -1250., 0.0);
+{ 62068} G2G5043 +PERO5              =  0.460G1G504g + 0.270GGH5018 + 0.270GGH502W                 : ARR( 0.183E-11,   450., 0.0);
+{ 62069} G2G5043 +PERO6              =  0.300G1G504g + 0.350GGH5018 + 0.350GGH502W                 : ARR( 0.168E-13, -1300., 0.0);
+{ 62070} G2G5043 +PERO9              =  0.650G1G504g + 0.350GGH502W                                : ARR( 0.100E-10,     0., 0.0);
+{ 62071} G2G5044 +GNO                =       G1G504Q +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 62072} G2G5044 +GNO                =       GGH502O                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 62073} G2G5044 +GHO2               =       GGH503N                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 62074} G2G5044 +GNO3               =       G1G504Q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 62075} G2G5044 +MEPERO             =  0.340G1G504Q + 0.330GGH503m + 0.330GGH502Q                 : ARR( 0.565E-13,  -845., 0.0);
+{ 62076} G2G5044 +PERO1              =  0.460G1G504Q + 0.270GGH503m + 0.270GGH502Q                 : ARR( 0.434E-13,  -900., 0.0);
+{ 62077} G2G5044 +PERO2              =  0.400G1G504Q + 0.300GGH503m + 0.300GGH502Q                 : ARR( 0.162E-13, -1400., 0.0);
+{ 62078} G2G5044 +PERO3              =  0.460G1G504Q + 0.270GGH503m + 0.270GGH502Q                 : ARR( 0.488E-13, -1250., 0.0);
+{ 62079} G2G5044 +PERO5              =  0.460G1G504Q + 0.270GGH503m + 0.270GGH502Q                 : ARR( 0.183E-11,   450., 0.0);
+{ 62080} G2G5044 +PERO6              =  0.300G1G504Q + 0.350GGH503m + 0.350GGH502Q                 : ARR( 0.168E-13, -1300., 0.0);
+{ 62081} G2G5044 +PERO9              =  0.650G1G504Q + 0.350GGH502Q                                : ARR( 0.100E-10,     0., 0.0);
+{ 62082} G1G506A                     =       GD02000 +      GGH3007 +      GHO                     : ARR( 0.200E+15,  4341., 0.0);
+{ 62083} G1G506A                     =       GHD3002 +      GGD2000 +      GHO                     : ARR( 0.200E+15,  5138., 0.0);
+{ 62084} GAH503y +GHO                =       GAH502A +      GHO                                    : ARR( 0.701E-11,     0., 0.0);
+{ 62085} GAH503y +GHO                =       GAH502F +      GHO                                    : ARR( 0.389E-11,     0., 0.0);
+{ 62086} GAH503y +GHO                =       G2A5056                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 62087} GAH503y +GHO                =       G2A5057                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 62088} GAH503y+HV               =       G1A504r +      GHO                                    :  0.100E+01*SUN;
+{ 62089} GAH503y+HV               =       G1A507P +      GNO2                                   :  0.100E+01*SUN;
+{ 62090} GAH503y+HV               =       G1A5055 +      GHO                                    :  0.100E+01*SUN;
+{ 62091} G2A5056 +GNO                =       G1A504r +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 62092} G2A5056 +GNO                =       GAH5029                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 62093} G2A5056 +GHO2               =       GAH503y                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 62094} G2A5056 +GNO3               =       G1A504r +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 62095} G2A5056 +MEPERO             =  0.340G1A504r + 0.330GAH501Q + 0.330GAH502A                 : ARR( 0.565E-13,  -845., 0.0);
+{ 62096} G2A5056 +PERO1              =  0.460G1A504r + 0.270GAH501Q + 0.270GAH502A                 : ARR( 0.434E-13,  -900., 0.0);
+{ 62097} G2A5056 +PERO2              =  0.400G1A504r + 0.300GAH501Q + 0.300GAH502A                 : ARR( 0.162E-13, -1400., 0.0);
+{ 62098} G2A5056 +PERO3              =  0.460G1A504r + 0.270GAH501Q + 0.270GAH502A                 : ARR( 0.488E-13, -1250., 0.0);
+{ 62099} G2A5056 +PERO5              =  0.460G1A504r + 0.270GAH501Q + 0.270GAH502A                 : ARR( 0.183E-11,   450., 0.0);
+{ 62100} G2A5056 +PERO6              =  0.300G1A504r + 0.350GAH501Q + 0.350GAH502A                 : ARR( 0.168E-13, -1300., 0.0);
+{ 62101} G2A5056 +PERO9              =  0.650G1A504r + 0.350GAH502A                                : ARR( 0.100E-10,     0., 0.0);
+{ 62102} G2A5057 +GNO                =       G1A5055 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 62103} G2A5057 +GNO                =       GAH502C                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 62104} G2A5057 +GHO2               =       GAH503y                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 62105} G2A5057 +GNO3               =       G1A5055 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 62106} G2A5057 +MEPERO             =  0.340G1A5055 + 0.330GAH502D + 0.330GAH502F                 : ARR( 0.565E-13,  -845., 0.0);
+{ 62107} G2A5057 +PERO1              =  0.460G1A5055 + 0.270GAH502D + 0.270GAH502F                 : ARR( 0.434E-13,  -900., 0.0);
+{ 62108} G2A5057 +PERO2              =  0.400G1A5055 + 0.300GAH502D + 0.300GAH502F                 : ARR( 0.162E-13, -1400., 0.0);
+{ 62109} G2A5057 +PERO3              =  0.460G1A5055 + 0.270GAH502D + 0.270GAH502F                 : ARR( 0.488E-13, -1250., 0.0);
+{ 62110} G2A5057 +PERO5              =  0.460G1A5055 + 0.270GAH502D + 0.270GAH502F                 : ARR( 0.183E-11,   450., 0.0);
+{ 62111} G2A5057 +PERO6              =  0.300G1A5055 + 0.350GAH502D + 0.350GAH502F                 : ARR( 0.168E-13, -1300., 0.0);
+{ 62112} G2A5057 +PERO9              =  0.650G1A5055 + 0.350GAH502F                                : ARR( 0.100E-10,     0., 0.0);
+{ 62113} G1A507P                     =       GD02000 +      GAH3007 +      GHO                     : ARR( 0.200E+15,  4341., 0.0);
+{ 62114} G1A507P                     =       GHD3002 +      GAD2000 +      GHO                     : ARR( 0.200E+15,  5138., 0.0);
+{ 62115} GPH5048                     =       G3H502m +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 62116} GPH5048 +GHO                =       GPH5029 +      GHO                                    : ARR( 0.680E-11,     0., 0.0);
+{ 62117} GPH5048 +GHO                =       GPH502E +      GHO                                    : ARR( 0.510E-11,     0., 0.0);
+{ 62118} GPH5048 +GHO                =       G2P505f                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 62119} GPH5048 +GHO                =       G2P505g                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 62120} GPH5048+HV               =       G1P5057 +      GHO                                    :  0.100E+01*SUN;
+{ 62121} GPH5048+HV               =       G1P5085 +      GNO2                                   :  0.100E+01*SUN;
+{ 62122} GPH5048+HV               =       G1P505T +      GHO                                    :  0.100E+01*SUN;
+{ 62123} GPH5048+HV               =       G3H502m +      GNO2                                   :  0.100E+01*SUN;
+{ 62124} G2P505f +GNO                =       G1P5057 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 62125} G2P505f +GNO                =       GPH5027                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 62126} G2P505f +GHO2               =       GPH5048                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 62127} G2P505f +GNO3               =       G1P5057 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 62128} G2P505f +MEPERO             =  0.340G1P5057 + 0.330GPH500l + 0.330GPH5029                 : ARR( 0.565E-13,  -845., 0.0);
+{ 62129} G2P505f +PERO1              =  0.460G1P5057 + 0.270GPH500l + 0.270GPH5029                 : ARR( 0.434E-13,  -900., 0.0);
+{ 62130} G2P505f +PERO2              =  0.400G1P5057 + 0.300GPH500l + 0.300GPH5029                 : ARR( 0.162E-13, -1400., 0.0);
+{ 62131} G2P505f +PERO3              =  0.460G1P5057 + 0.270GPH500l + 0.270GPH5029                 : ARR( 0.488E-13, -1250., 0.0);
+{ 62132} G2P505f +PERO5              =  0.460G1P5057 + 0.270GPH500l + 0.270GPH5029                 : ARR( 0.183E-11,   450., 0.0);
+{ 62133} G2P505f +PERO6              =  0.300G1P5057 + 0.350GPH500l + 0.350GPH5029                 : ARR( 0.168E-13, -1300., 0.0);
+{ 62134} G2P505f +PERO9              =  0.650G1P5057 + 0.350GPH5029                                : ARR( 0.100E-10,     0., 0.0);
+{ 62135} G2P505g +GNO                =       G1P505T +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 62136} G2P505g +GNO                =       GPH502B                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 62137} G2P505g +GHO2               =       GPH5048                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 62138} G2P505g +GNO3               =       G1P505T +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 62139} G2P505g +MEPERO             =  0.340G1P505T + 0.330GPH502C + 0.330GPH502E                 : ARR( 0.565E-13,  -845., 0.0);
+{ 62140} G2P505g +PERO1              =  0.460G1P505T + 0.270GPH502C + 0.270GPH502E                 : ARR( 0.434E-13,  -900., 0.0);
+{ 62141} G2P505g +PERO2              =  0.400G1P505T + 0.300GPH502C + 0.300GPH502E                 : ARR( 0.162E-13, -1400., 0.0);
+{ 62142} G2P505g +PERO3              =  0.460G1P505T + 0.270GPH502C + 0.270GPH502E                 : ARR( 0.488E-13, -1250., 0.0);
+{ 62143} G2P505g +PERO5              =  0.460G1P505T + 0.270GPH502C + 0.270GPH502E                 : ARR( 0.183E-11,   450., 0.0);
+{ 62144} G2P505g +PERO6              =  0.300G1P505T + 0.350GPH502C + 0.350GPH502E                 : ARR( 0.168E-13, -1300., 0.0);
+{ 62145} G2P505g +PERO9              =  0.650G1P505T + 0.350GPH502E                                : ARR( 0.100E-10,     0., 0.0);
+{ 62146} G1P5085                     =       GD02000 +      GPH3007 +      GHO                     : ARR( 0.200E+15,  4341., 0.0);
+{ 62147} G1P5085                     =       GHD3002 +      GPD2000 +      GHO                     : ARR( 0.200E+15,  5138., 0.0);
+{ 62148} GGH503O +GHO                =       GGN502j +      GHO                                    : ARR( 0.504E-11,     0., 0.0);
+{ 62149} GGH503O +GHO                =       G2G5045                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 62150} GGH503O +GHO                =       G3H502n                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 62151} GGH503O+HV               =       G1G506B +      GNO2                                   :  0.100E+01*SUN;
+{ 62152} GGH503O+HV               =       G1G506C +      GNO2                                   :  0.100E+01*SUN;
+{ 62153} GGH503O+HV               =       G1G506D +      GNO2                                   :  0.100E+01*SUN;
+{ 62154} GGH503O+HV               =       G1G505f +      GHO                                    :  0.100E+01*SUN;
+{ 62155} GGH503O+HV               =       GNN400D +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 62156} G2G5045 +GNO                =       G1G505f +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 62157} G2G5045 +GNO                =       GGN502I                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 62158} G2G5045 +GHO2               =       GGH503O                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 62159} G2G5045 +GNO3               =       G1G505f +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 62160} G2G5045 +MEPERO             =  0.340G1G505f + 0.330GGN501s + 0.330GGN502j                 : ARR( 0.565E-13,  -845., 0.0);
+{ 62161} G2G5045 +PERO1              =  0.460G1G505f + 0.270GGN501s + 0.270GGN502j                 : ARR( 0.434E-13,  -900., 0.0);
+{ 62162} G2G5045 +PERO2              =  0.400G1G505f + 0.300GGN501s + 0.300GGN502j                 : ARR( 0.162E-13, -1400., 0.0);
+{ 62163} G2G5045 +PERO3              =  0.460G1G505f + 0.270GGN501s + 0.270GGN502j                 : ARR( 0.488E-13, -1250., 0.0);
+{ 62164} G2G5045 +PERO5              =  0.460G1G505f + 0.270GGN501s + 0.270GGN502j                 : ARR( 0.183E-11,   450., 0.0);
+{ 62165} G2G5045 +PERO6              =  0.300G1G505f + 0.350GGN501s + 0.350GGN502j                 : ARR( 0.168E-13, -1300., 0.0);
+{ 62166} G2G5045 +PERO9              =  0.650G1G505f + 0.350GGN502j                                : ARR( 0.100E-10,     0., 0.0);
+{ 62167} G1G506B                     =       GGN502S +      GHO                                    : ARR( 0.800E+11,  2619., 0.0);
+{ 62168} G1G506C                     =       GND2000 +      GGH3007 +      GNO2                    : ARR( 0.200E+15,  6365., 0.0);
+{ 62169} G1G506D                     =       GND2000 +      GGH3007 +      GNO2                    : ARR( 0.200E+15,  5492., 0.0);
+{ 62170} G1G506D                     =       GNN3005 +      GGD2000 +      GHO                     : ARR( 0.200E+15,  5138., 0.0);
+{ 62171} GGN502W +GHO                =       GGN502k +      GHO2                                   : ARR( 0.252E-11,     0., 0.0);
+{ 62172} GGN502W +GHO                =       G3N502B                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 62173} GGN502W+HV               =       G3K2001 +      GGN3005 +      GNO2                    :  0.100E+01*SUN;
+{ 62174} GGN502W+HV               =       G1G505D +      GNO2                                   :  0.100E+01*SUN;
+{ 62175} GGN502W+HV               =       G1G506E +      GNO2                                   :  0.100E+01*SUN;
+{ 62176} GGN502W+HV               =       GND400L +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 62177} G1G506E                     =       GND400L +      GCO     +      GHO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 62178} GGH503P +GHO                =       GGH505F +      GHO2                                   : ARR( 0.406E-11,     0., 0.0);
+{ 62179} GGH503P +GHO                =       GGN502W +      GHO                                    : ARR( 0.832E-11,     0., 0.0);
+{ 62180} GGH503P +GHO                =       G2G5046                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 62181} GGH503P +GHO                =       G3H502o                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 62182} GGH503P+HV               =       G1G505j +      GHO                                    :  0.100E+01*SUN;
+{ 62183} GGH503P+HV               =       G1G505C +      GNO2                                   :  0.100E+01*SUN;
+{ 62184} GGH503P+HV               =       G1G502w +      GNO2                                   :  0.100E+01*SUN;
+{ 62185} GGH503P+HV               =       GHN400L +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 62186} G2G5046 +GNO                =       G1G505j +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 62187} G2G5046 +GNO                =       GGN502K                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 62188} G2G5046 +GHO2               =       GGH503P                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 62189} G2G5046 +GNO3               =       G1G505j +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 62190} G2G5046 +MEPERO             =  0.340G1G505j + 0.330GGN501D + 0.330GGN502W                 : ARR( 0.565E-13,  -845., 0.0);
+{ 62191} G2G5046 +PERO1              =  0.460G1G505j + 0.270GGN501D + 0.270GGN502W                 : ARR( 0.434E-13,  -900., 0.0);
+{ 62192} G2G5046 +PERO2              =  0.400G1G505j + 0.300GGN501D + 0.300GGN502W                 : ARR( 0.162E-13, -1400., 0.0);
+{ 62193} G2G5046 +PERO3              =  0.460G1G505j + 0.270GGN501D + 0.270GGN502W                 : ARR( 0.488E-13, -1250., 0.0);
+{ 62194} G2G5046 +PERO5              =  0.460G1G505j + 0.270GGN501D + 0.270GGN502W                 : ARR( 0.183E-11,   450., 0.0);
+{ 62195} G2G5046 +PERO6              =  0.300G1G505j + 0.350GGN501D + 0.350GGN502W                 : ARR( 0.168E-13, -1300., 0.0);
+{ 62196} G2G5046 +PERO9              =  0.650G1G505j + 0.350GGN502W                                : ARR( 0.100E-10,     0., 0.0);
+{ 62197} GGH503Q +GHO                =       GGH505G +      GHO2                                   : ARR( 0.406E-11,     0., 0.0);
+{ 62198} GGH503Q +GHO                =       GGH503W +      GHO                                    : ARR( 0.832E-11,     0., 0.0);
+{ 62199} GGH503Q +GHO                =       GGH503S +      GHO                                    : ARR( 0.507E-11,     0., 0.0);
+{ 62200} GGH503Q +GHO                =       G2G5047                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 62201} GGH503Q +GHO                =       G2G5029                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 62202} GGH503Q +GHO                =       G3H502p                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 62203} GGH503Q+HV               =       G1G5063 +      GHO                                    :  0.100E+01*SUN;
+{ 62204} GGH503Q+HV               =       G1G506F +      GNO2                                   :  0.100E+01*SUN;
+{ 62205} GGH503Q+HV               =       G1G502w +      GHO                                    :  0.100E+01*SUN;
+{ 62206} GGH503Q+HV               =       GHN400L +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 62207} G2G5047 +GNO                =       G1G5063 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 62208} G2G5047 +GNO                =       GGH503M                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 62209} G2G5047 +GHO2               =       GGH503Q                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 62210} G2G5047 +GNO3               =       G1G5063 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 62211} G2G5047 +MEPERO             =  0.340G1G5063 + 0.330GGH501A + 0.330GGH503W                 : ARR( 0.565E-13,  -845., 0.0);
+{ 62212} G2G5047 +PERO1              =  0.460G1G5063 + 0.270GGH501A + 0.270GGH503W                 : ARR( 0.434E-13,  -900., 0.0);
+{ 62213} G2G5047 +PERO2              =  0.400G1G5063 + 0.300GGH501A + 0.300GGH503W                 : ARR( 0.162E-13, -1400., 0.0);
+{ 62214} G2G5047 +PERO3              =  0.460G1G5063 + 0.270GGH501A + 0.270GGH503W                 : ARR( 0.488E-13, -1250., 0.0);
+{ 62215} G2G5047 +PERO5              =  0.460G1G5063 + 0.270GGH501A + 0.270GGH503W                 : ARR( 0.183E-11,   450., 0.0);
+{ 62216} G2G5047 +PERO6              =  0.300G1G5063 + 0.350GGH501A + 0.350GGH503W                 : ARR( 0.168E-13, -1300., 0.0);
+{ 62217} G2G5047 +PERO9              =  0.650G1G5063 + 0.350GGH503W                                : ARR( 0.100E-10,     0., 0.0);
+{ 62218} G1G506F                     =       GDO2000 +      GGH3007 +      GHO                     : ARR( 0.200E+15,  3953., 0.0);
+{ 62219} GGH503R +GHO                =       GGH503T +      GHO2                                   : ARR( 0.410E-11,     0., 0.0);
+{ 62220} GGH503R +GHO                =       GGN501x +      GHO                                    : ARR( 0.840E-11,     0., 0.0);
+{ 62221} GGH503R +GHO                =       GGH503S +      GHO2                                   : ARR( 0.128E-11,     0., 0.0);
+{ 62222} GGH503R +GHO                =       G2G5048                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 62223} GGH503R +GHO                =       G3H502q                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 62224} GGH503R+HV               =       G1G504e +      GHO                                    :  0.100E+01*SUN;
+{ 62225} GGH503R+HV               =       G1G506G +      GNO2                                   :  0.100E+01*SUN;
+{ 62226} GGH503R+HV               =       GHN400L +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 62227} G2G5048 +GNO                =       G1G504e +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 62228} G2G5048 +GNO                =       GGN501t                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 62229} G2G5048 +GHO2               =       GGH503R                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 62230} G2G5048 +GNO3               =       G1G504e +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 62231} G2G5048 +MEPERO             =  0.340G1G504e + 0.330GGN500i + 0.330GGN501x                 : ARR( 0.565E-13,  -845., 0.0);
+{ 62232} G2G5048 +PERO1              =  0.460G1G504e + 0.270GGN500i + 0.270GGN501x                 : ARR( 0.434E-13,  -900., 0.0);
+{ 62233} G2G5048 +PERO2              =  0.400G1G504e + 0.300GGN500i + 0.300GGN501x                 : ARR( 0.162E-13, -1400., 0.0);
+{ 62234} G2G5048 +PERO3              =  0.460G1G504e + 0.270GGN500i + 0.270GGN501x                 : ARR( 0.488E-13, -1250., 0.0);
+{ 62235} G2G5048 +PERO5              =  0.460G1G504e + 0.270GGN500i + 0.270GGN501x                 : ARR( 0.183E-11,   450., 0.0);
+{ 62236} G2G5048 +PERO6              =  0.300G1G504e + 0.350GGN500i + 0.350GGN501x                 : ARR( 0.168E-13, -1300., 0.0);
+{ 62237} G2G5048 +PERO9              =  0.650G1G504e + 0.350GGN501x                                : ARR( 0.100E-10,     0., 0.0);
+{ 62238} G1G506G                     =       GDO2000 +      GGD3001 +      GHO                     : ARR( 0.200E+15,  3953., 0.0);
+{ 62239} G1G506G                     =       GHD3003 +      GGD2000 +      GHO2                    : ARR( 0.200E+15,  3929., 0.0);
+{ 62240} GGH503S +GHO                =       GGH505H +      GHO2                                   : ARR( 0.406E-11,     0., 0.0);
+{ 62241} GGH503S +GHO                =       GGN502H +      GHO                                    : ARR( 0.833E-11,     0., 0.0);
+{ 62242} GGH503S +GHO                =       G2G5049                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 62243} GGH503S +GHO                =       G3H503x                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 62244} GGH503S+HV               =       G1G5065 +      GHO                                    :  0.100E+01*SUN;
+{ 62245} GGH503S+HV               =       G1G505F +      GNO2                                   :  0.100E+01*SUN;
+{ 62246} GGH503S+HV               =       GAH400U +      GCO2                                   :  0.100E+01*SUN;
+{ 62247} G2G5049 +GNO                =       G1G5065 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 62248} G2G5049 +GNO                =       GGN502S                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 62249} G2G5049 +GHO2               =       GGH503S                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 62250} G2G5049 +GNO3               =       G1G5065 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 62251} G2G5049 +MEPERO             =  0.340G1G5065 + 0.330GGN501u + 0.330GGN502H                 : ARR( 0.565E-13,  -845., 0.0);
+{ 62252} G2G5049 +PERO1              =  0.460G1G5065 + 0.270GGN501u + 0.270GGN502H                 : ARR( 0.434E-13,  -900., 0.0);
+{ 62253} G2G5049 +PERO2              =  0.400G1G5065 + 0.300GGN501u + 0.300GGN502H                 : ARR( 0.162E-13, -1400., 0.0);
+{ 62254} G2G5049 +PERO3              =  0.460G1G5065 + 0.270GGN501u + 0.270GGN502H                 : ARR( 0.488E-13, -1250., 0.0);
+{ 62255} G2G5049 +PERO5              =  0.460G1G5065 + 0.270GGN501u + 0.270GGN502H                 : ARR( 0.183E-11,   450., 0.0);
+{ 62256} G2G5049 +PERO6              =  0.300G1G5065 + 0.350GGN501u + 0.350GGN502H                 : ARR( 0.168E-13, -1300., 0.0);
+{ 62257} G2G5049 +PERO9              =  0.650G1G5065 + 0.350GGN502H                                : ARR( 0.100E-10,     0., 0.0);
+{ 62258} GGH503T +GHO                =       GGN502h +      GHO                                    : ARR( 0.530E-11,     0., 0.0);
+{ 62259} GGH503T +GHO                =       G3G500x                                               : ARR( 0.219E-10,     0., 0.0);
+{ 62260} GGH503T +GHO                =       G3H502r                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 62261} GGH503T +GHO                =       G2G504A                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 62262} GGH503T +GNO3               =       G3G500x +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 62263} GGH503T+HV               =       GHN400y +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 62264} GGH503T+HV               =       G1G503T +      GNO2                                   :  0.100E+01*SUN;
+{ 62265} GGH503T+HV               =       G1G5067 +      GHO                                    :  0.100E+01*SUN;
+{ 62266} GGH503T+HV               =       GGN400U +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 62267} G3G500x +GHO2               =  0.800GGG500d + 0.200GAG501H + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 62268} G3G500x +GNO                =       GGN400U +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 62269} G3G500x +GNO2               =       GPG501H                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 62270} G3G500x +GNO3               =       GGN400U +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 62271} G3G500x +MEPERO             =  0.685GGN400U + 0.315GAG501H + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 62272} G3G500x +PERO1              =  0.800GGN400U + 0.200GAG501H + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 62273} G3G500x +PERO2              =  0.750GGN400U + 0.250GAG501H + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 62274} G3G500x +PERO3              =  0.800GGN400U + 0.200GAG501H + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 62275} G3G500x +PERO5              =  0.650GGN400U + 0.350GAG501H + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 62276} G3G500x +PERO6              =  0.650GGN400U + 0.350GAG501H + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 62277} G3G500x +PERO9              =       GGN400U +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 62278} G2G504A +GNO                =       G1G5067 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 62279} G2G504A +GNO                =       GGN502T                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 62280} G2G504A +GHO2               =       GGH503T                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 62281} G2G504A +GNO3               =       G1G5067 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 62282} G2G504A +MEPERO             =  0.340G1G5067 + 0.330GGN501W + 0.330GGN502h                 : ARR( 0.565E-13,  -845., 0.0);
+{ 62283} G2G504A +PERO1              =  0.460G1G5067 + 0.270GGN501W + 0.270GGN502h                 : ARR( 0.434E-13,  -900., 0.0);
+{ 62284} G2G504A +PERO2              =  0.400G1G5067 + 0.300GGN501W + 0.300GGN502h                 : ARR( 0.162E-13, -1400., 0.0);
+{ 62285} G2G504A +PERO3              =  0.460G1G5067 + 0.270GGN501W + 0.270GGN502h                 : ARR( 0.488E-13, -1250., 0.0);
+{ 62286} G2G504A +PERO5              =  0.460G1G5067 + 0.270GGN501W + 0.270GGN502h                 : ARR( 0.183E-11,   450., 0.0);
+{ 62287} G2G504A +PERO6              =  0.300G1G5067 + 0.350GGN501W + 0.350GGN502h                 : ARR( 0.168E-13, -1300., 0.0);
+{ 62288} G2G504A +PERO9              =  0.650G1G5067 + 0.350GGN502h                                : ARR( 0.100E-10,     0., 0.0);
+{ 62289} GHN506n +GHO                =       G3H504r                                               : ARR( 0.417E-11,     0., 0.0);
+{ 62290} GHN506n +GHO                =       GNN503G +      GHO                                    : ARR( 0.504E-11,     0., 0.0);
+{ 62291} GHN506n +GHO                =       G3H504s                                               : ARR( 0.208E-10,     0., 0.0);
+{ 62292} GHN506n +GHO                =       G2N506e                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 62293} GHN506n +GNO3               =       G3H504r +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 62294} GHN506n +GNO3               =       G3H504s +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 62295} GHN506n+HV               =       GCO     +      GHN400y +      GHO2    +      GNO2     :  0.100E+01*SUN;
+{ 62296} GHN506n+HV               =       GND2000 +      GDD3002 +      GNO2    +      GHO      :  0.100E+01*SUN;
+{ 62297} GHN506n+HV               =       G1H50Bs +      GNO2                                   :  0.100E+01*SUN;
+{ 62298} GHN506n+HV               =       G1H50Bj +      GNO2                                   :  0.100E+01*SUN;
+{ 62299} GHN506n+HV               =       G1N507J +      GHO                                    :  0.100E+01*SUN;
+{ 62300} GHN506n+HV               =       GNN400Z +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 62301} G3H504r +GHO2               =  0.800GGH505F + 0.200GAH504o + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 62302} G3H504r +GNO                =       GHN400y + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 62303} G3H504r +GNO2               =       GPH504s                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 62304} G3H504r +GNO3               =       GHN400y + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 62305} G3H504r +MEPERO             =  0.685GHN400y + 0.315GAH504o + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 62306} G3H504r +PERO1              =  0.800GHN400y + 0.200GAH504o + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 62307} G3H504r +PERO2              =  0.750GHN400y + 0.250GAH504o + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 62308} G3H504r +PERO3              =  0.800GHN400y + 0.200GAH504o + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 62309} G3H504r +PERO5              =  0.650GHN400y + 0.350GAH504o + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 62310} G3H504r +PERO6              =  0.650GHN400y + 0.350GAH504o + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 62311} G3H504r +PERO9              =       GHN400y +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 62312} G3H504s +GHO2               =  0.800GGH505E + 0.200GAH5056 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 62313} G3H504s +GNO                =       GNN400Z +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 62314} G3H504s +GNO2               =       GPH504o                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 62315} G3H504s +GNO3               =       GNN400Z +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 62316} G3H504s +MEPERO             =  0.685GNN400Z + 0.315GAH5056 + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 62317} G3H504s +PERO1              =  0.800GNN400Z + 0.200GAH5056 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 62318} G3H504s +PERO2              =  0.750GNN400Z + 0.250GAH5056 + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 62319} G3H504s +PERO3              =  0.800GNN400Z + 0.200GAH5056 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 62320} G3H504s +PERO5              =  0.650GNN400Z + 0.350GAH5056 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 62321} G3H504s +PERO6              =  0.650GNN400Z + 0.350GAH5056 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 62322} G3H504s +PERO9              =       GNN400Z +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 62323} G2N506e +GNO                =       G1N507J +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 62324} G2N506e +GNO                =       GNN503K                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 62325} G2N506e +GHO2               =       GHN506n                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 62326} G2N506e +GNO3               =       G1N507J +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 62327} G2N506e +MEPERO             =  0.340G1N507J + 0.330GNN503C + 0.330GNN503G                 : ARR( 0.565E-13,  -845., 0.0);
+{ 62328} G2N506e +PERO1              =  0.460G1N507J + 0.270GNN503C + 0.270GNN503G                 : ARR( 0.434E-13,  -900., 0.0);
+{ 62329} G2N506e +PERO2              =  0.400G1N507J + 0.300GNN503C + 0.300GNN503G                 : ARR( 0.162E-13, -1400., 0.0);
+{ 62330} G2N506e +PERO3              =  0.460G1N507J + 0.270GNN503C + 0.270GNN503G                 : ARR( 0.488E-13, -1250., 0.0);
+{ 62331} G2N506e +PERO5              =  0.460G1N507J + 0.270GNN503C + 0.270GNN503G                 : ARR( 0.183E-11,   450., 0.0);
+{ 62332} G2N506e +PERO6              =  0.300G1N507J + 0.350GNN503C + 0.350GNN503G                 : ARR( 0.168E-13, -1300., 0.0);
+{ 62333} G2N506e +PERO9              =  0.650G1N507J + 0.350GNN503G                                : ARR( 0.100E-10,     0., 0.0);
+{ 62334} G1H50Bs                     =       GHN400y +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 62335} GHH502x +GHO                =       G3H504t                                               : ARR( 0.424E-10,     0., 0.0);
+{ 62336} GHH502x +GHO                =       GHN506o +      GHO                                    : ARR( 0.103E-10,     0., 0.0);
+{ 62337} GHH502x +GHO                =       G2H5045                                               : ARR( 0.388E-11,  -190., 0.0);
+{ 62338} GHH502x +GNO3               =       G3H504t +      GHNO3                                  : ARR( 0.240E-13,     0., 0.0);
+{ 62339} GHH502x+HV               =       GCO     +      GHN400y +      GHO2    +      GHO      :  0.200E+01*SUN;
+{ 62340} GHH502x+HV               =       G1H50Bs +      GHO                                    :  0.200E+01*SUN;
+{ 62341} GHH502x+HV               =       G1H50Bt +      GNO2                                   :  0.100E+01*SUN;
+{ 62342} G3H504t +GHO2               =  0.800GGH505G + 0.200GAH5057 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 62343} G3H504t +GNO                =       GHN400y +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 62344} G3H504t +GNO2               =       GPH505E                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 62345} G3H504t +GNO3               =       GHN400y +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 62346} G3H504t +MEPERO             =  0.685GHN400y + 0.315GAH5057 + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 62347} G3H504t +PERO1              =  0.800GHN400y + 0.200GAH5057 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 62348} G3H504t +PERO2              =  0.750GHN400y + 0.250GAH5057 + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 62349} G3H504t +PERO3              =  0.800GHN400y + 0.200GAH5057 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 62350} G3H504t +PERO5              =  0.650GHN400y + 0.350GAH5057 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 62351} G3H504t +PERO6              =  0.650GHN400y + 0.350GAH5057 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 62352} G3H504t +PERO9              =       GHN400y +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 62353} G2H5045 +GNO                =       G1H50Bs +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 62354} G2H5045 +GNO                =       GHN506n                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 62355} G2H5045 +GHO2               =       GHH502x                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 62356} G2H5045 +GNO3               =       G1H50Bs +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 62357} G2H5045 +MEPERO             =  0.340G1H50Bs + 0.330GHN505o + 0.330GHN506o                 : ARR( 0.565E-13,  -845., 0.0);
+{ 62358} G2H5045 +PERO1              =  0.460G1H50Bs + 0.270GHN505o + 0.270GHN506o                 : ARR( 0.434E-13,  -900., 0.0);
+{ 62359} G2H5045 +PERO2              =  0.400G1H50Bs + 0.300GHN505o + 0.300GHN506o                 : ARR( 0.162E-13, -1400., 0.0);
+{ 62360} G2H5045 +PERO3              =  0.460G1H50Bs + 0.270GHN505o + 0.270GHN506o                 : ARR( 0.488E-13, -1250., 0.0);
+{ 62361} G2H5045 +PERO5              =  0.460G1H50Bs + 0.270GHN505o + 0.270GHN506o                 : ARR( 0.183E-11,   450., 0.0);
+{ 62362} G2H5045 +PERO6              =  0.300G1H50Bs + 0.350GHN505o + 0.350GHN506o                 : ARR( 0.168E-13, -1300., 0.0);
+{ 62363} G2H5045 +PERO9              =  0.650G1H50Bs + 0.350GHN506o                                : ARR( 0.100E-10,     0., 0.0);
+{ 62364} G1H50Bt                     =       GDD2000 +      GHD3004 +      GHO                     : ARR( 0.400E+15,  4086., 0.0);
+{ 62365} GHN506o +GHO                =       G3H400g +      GCO                                    : ARR( 0.127E-10,     0., 0.0);
+{ 62366} GHN506o +GHO                =       GND501a +      GHO                                    : ARR( 0.505E-11,     0., 0.0);
+{ 62367} GHN506o +GHO                =       G3H504u                                               : ARR( 0.209E-10,     0., 0.0);
+{ 62368} GHN506o +GHO                =       G2N506f                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 62369} GHN506o +GNO3               =       G3H400g +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 62370} GHN506o +GNO3               =       G3H504u +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 62371} GHN506o+HV               =       GCO     +      G3H400g +      GHO2                    :  0.100E+01*SUN;
+{ 62372} GHN506o+HV               =       GHN400y +      GCO                                    :  0.100E+01*SUN;
+{ 62373} GHN506o+HV               =       GHN3007 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 62374} GHN506o+HV               =       G1H50Bu +      GNO2                                   :  0.100E+01*SUN;
+{ 62375} GHN506o+HV               =       G1N507E +      GHO                                    :  0.100E+01*SUN;
+{ 62376} GHN506o+HV               =       GND400N +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 62377} G3H504u +GHO2               =  0.800GGH505I + 0.200GAH505N + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 62378} G3H504u +GNO                =       GND400N +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 62379} G3H504u +GNO2               =       GPH505U                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 62380} G3H504u +GNO3               =       GND400N +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 62381} G3H504u +MEPERO             =  0.685GND400N + 0.315GAH505N + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 62382} G3H504u +PERO1              =  0.800GND400N + 0.200GAH505N + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 62383} G3H504u +PERO2              =  0.750GND400N + 0.250GAH505N + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 62384} G3H504u +PERO3              =  0.800GND400N + 0.200GAH505N + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 62385} G3H504u +PERO5              =  0.650GND400N + 0.350GAH505N + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 62386} G3H504u +PERO6              =  0.650GND400N + 0.350GAH505N + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 62387} G3H504u +PERO9              =       GND400N +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 62388} G2N506f +GNO                =       G1N507E +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 62389} G2N506f +GNO                =       GNN503G                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 62390} G2N506f +GHO2               =       GHN506o                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 62391} G2N506f +GNO3               =       G1N507E +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 62392} G2N506f +MEPERO             =  0.340G1N507E + 0.330GND501U + 0.330GND501a                 : ARR( 0.565E-13,  -845., 0.0);
+{ 62393} G2N506f +PERO1              =  0.460G1N507E + 0.270GND501U + 0.270GND501a                 : ARR( 0.434E-13,  -900., 0.0);
+{ 62394} G2N506f +PERO2              =  0.400G1N507E + 0.300GND501U + 0.300GND501a                 : ARR( 0.162E-13, -1400., 0.0);
+{ 62395} G2N506f +PERO3              =  0.460G1N507E + 0.270GND501U + 0.270GND501a                 : ARR( 0.488E-13, -1250., 0.0);
+{ 62396} G2N506f +PERO5              =  0.460G1N507E + 0.270GND501U + 0.270GND501a                 : ARR( 0.183E-11,   450., 0.0);
+{ 62397} G2N506f +PERO6              =  0.300G1N507E + 0.350GND501U + 0.350GND501a                 : ARR( 0.168E-13, -1300., 0.0);
+{ 62398} G2N506f +PERO9              =  0.650G1N507E + 0.350GND501a                                : ARR( 0.100E-10,     0., 0.0);
+{ 62399} G1H50Bu                     =       GHD3004 +      G3D2000                                : ARR( 0.200E+15,  2403., 0.0);
+{ 62400} GGH503U +GHO                =       GGN502g +      GHO                                    : ARR( 0.530E-11,     0., 0.0);
+{ 62401} GGH503U +GHO                =       G3G500y                                               : ARR( 0.219E-10,     0., 0.0);
+{ 62402} GGH503U +GHO                =       G3H502s                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 62403} GGH503U +GHO                =       G2G504B                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 62404} GGH503U +GNO3               =       G3G500y +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 62405} GGH503U+HV               =       GND400J +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 62406} GGH503U+HV               =       G1G5068 +      GHO                                    :  0.100E+01*SUN;
+{ 62407} GGH503U+HV               =       G1G503U +      GNO2                                   :  0.100E+01*SUN;
+{ 62408} GGH503U+HV               =       GGH400r +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 62409} G3G500y +GHO2               =  0.800GGG500d + 0.200GAG500w + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 62410} G3G500y +GNO                =       GGH400r +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 62411} G3G500y +GNO2               =       GPG500y                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 62412} G3G500y +GNO3               =       GGH400r +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 62413} G3G500y +MEPERO             =  0.685GGH400r + 0.315GAG500w + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 62414} G3G500y +PERO1              =  0.800GGH400r + 0.200GAG500w + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 62415} G3G500y +PERO2              =  0.750GGH400r + 0.250GAG500w + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 62416} G3G500y +PERO3              =  0.800GGH400r + 0.200GAG500w + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 62417} G3G500y +PERO5              =  0.650GGH400r + 0.350GAG500w + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 62418} G3G500y +PERO6              =  0.650GGH400r + 0.350GAG500w + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 62419} G3G500y +PERO9              =       GGH400r +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 62420} G2G504B +GNO                =       G1G5068 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 62421} G2G504B +GNO                =       GGN502U                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 62422} G2G504B +GHO2               =       GGH503U                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 62423} G2G504B +GNO3               =       G1G5068 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 62424} G2G504B +MEPERO             =  0.340G1G5068 + 0.330GGN501W + 0.330GGN502g                 : ARR( 0.565E-13,  -845., 0.0);
+{ 62425} G2G504B +PERO1              =  0.460G1G5068 + 0.270GGN501W + 0.270GGN502g                 : ARR( 0.434E-13,  -900., 0.0);
+{ 62426} G2G504B +PERO2              =  0.400G1G5068 + 0.300GGN501W + 0.300GGN502g                 : ARR( 0.162E-13, -1400., 0.0);
+{ 62427} G2G504B +PERO3              =  0.460G1G5068 + 0.270GGN501W + 0.270GGN502g                 : ARR( 0.488E-13, -1250., 0.0);
+{ 62428} G2G504B +PERO5              =  0.460G1G5068 + 0.270GGN501W + 0.270GGN502g                 : ARR( 0.183E-11,   450., 0.0);
+{ 62429} G2G504B +PERO6              =  0.300G1G5068 + 0.350GGN501W + 0.350GGN502g                 : ARR( 0.168E-13, -1300., 0.0);
+{ 62430} G2G504B +PERO9              =  0.650G1G5068 + 0.350GGN502g                                : ARR( 0.100E-10,     0., 0.0);
+{ 62431} GAH503z +GHO                =       GAN502h +      GHO                                    : ARR( 0.402E-11,     0., 0.0);
+{ 62432} GAH503z +GHO                =       G3A5018                                               : ARR( 0.225E-10,     0., 0.0);
+{ 62433} GAH503z +GHO                =       G2A5058                                               : ARR( 0.205E-11,  -190., 0.0);
+{ 62434} GAH503z +GNO3               =       G3A5018 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 62435} GAH503z+HV               =       G1A505n +      GHO                                    :  0.100E+01*SUN;
+{ 62436} GAH503z+HV               =       G1A504Q +      GNO2                                   :  0.100E+01*SUN;
+{ 62437} GAH503z+HV               =       GAH400l +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 62438} G3A5018 +GHO2               =  0.800GAG501H + 0.200GAA500P + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 62439} G3A5018 +GNO                =       GAH400l +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 62440} G3A5018 +GNO2               =       GPA500h                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 62441} G3A5018 +GNO3               =       GAH400l +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 62442} G3A5018 +MEPERO             =  0.685GAH400l + 0.315GAA500P + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 62443} G3A5018 +PERO1              =  0.800GAH400l + 0.200GAA500P + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 62444} G3A5018 +PERO2              =  0.750GAH400l + 0.250GAA500P + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 62445} G3A5018 +PERO3              =  0.800GAH400l + 0.200GAA500P + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 62446} G3A5018 +PERO5              =  0.650GAH400l + 0.350GAA500P + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 62447} G3A5018 +PERO6              =  0.650GAH400l + 0.350GAA500P + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 62448} G3A5018 +PERO9              =       GAH400l +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 62449} G2A5058 +GNO                =       G1A505n +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 62450} G2A5058 +GNO                =       GAN5028                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 62451} G2A5058 +GHO2               =       GAH503z                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 62452} G2A5058 +GNO3               =       G1A505n +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 62453} G2A5058 +MEPERO             =  0.340G1A505n + 0.330GAN501W + 0.330GAN502h                 : ARR( 0.565E-13,  -845., 0.0);
+{ 62454} G2A5058 +PERO1              =  0.460G1A505n + 0.270GAN501W + 0.270GAN502h                 : ARR( 0.434E-13,  -900., 0.0);
+{ 62455} G2A5058 +PERO2              =  0.400G1A505n + 0.300GAN501W + 0.300GAN502h                 : ARR( 0.162E-13, -1400., 0.0);
+{ 62456} G2A5058 +PERO3              =  0.460G1A505n + 0.270GAN501W + 0.270GAN502h                 : ARR( 0.488E-13, -1250., 0.0);
+{ 62457} G2A5058 +PERO5              =  0.460G1A505n + 0.270GAN501W + 0.270GAN502h                 : ARR( 0.183E-11,   450., 0.0);
+{ 62458} G2A5058 +PERO6              =  0.300G1A505n + 0.350GAN501W + 0.350GAN502h                 : ARR( 0.168E-13, -1300., 0.0);
+{ 62459} G2A5058 +PERO9              =  0.650G1A505n + 0.350GAN502h                                : ARR( 0.100E-10,     0., 0.0);
+{ 62460} GPH5049                     =       G3H502s +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 62461} GPH5049 +GHO                =       GPN502H +      GHO                                    : ARR( 0.533E-11,     0., 0.0);
+{ 62462} GPH5049 +GHO                =       G3P5016                                               : ARR( 0.220E-10,     0., 0.0);
+{ 62463} GPH5049 +GHO                =       G2P505h                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 62464} GPH5049 +GNO3               =       G3P5016 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 62465} GPH5049+HV               =       G3H502s +      GNO2                                   :  0.100E+01*SUN;
+{ 62466} GPH5049+HV               =       G1P506T +      GHO                                    :  0.100E+01*SUN;
+{ 62467} GPH5049+HV               =       G1P504b +      GNO2                                   :  0.100E+01*SUN;
+{ 62468} GPH5049+HV               =       GPH400m +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 62469} G3P5016 +GHO2               =  0.800GPG501H + 0.200GPA500e + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 62470} G3P5016 +GNO                =       GPH400m +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 62471} G3P5016 +GNO2               =       GPP500M                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 62472} G3P5016 +GNO3               =       GPH400m +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 62473} G3P5016 +MEPERO             =  0.685GPH400m + 0.315GPA500e + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 62474} G3P5016 +PERO1              =  0.800GPH400m + 0.200GPA500e + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 62475} G3P5016 +PERO2              =  0.750GPH400m + 0.250GPA500e + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 62476} G3P5016 +PERO3              =  0.800GPH400m + 0.200GPA500e + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 62477} G3P5016 +PERO5              =  0.650GPH400m + 0.350GPA500e + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 62478} G3P5016 +PERO6              =  0.650GPH400m + 0.350GPA500e + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 62479} G3P5016 +PERO9              =       GPH400m +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 62480} G2P505h +GNO                =       G1P506T +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 62481} G2P505h +GNO                =       GPN502G                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 62482} G2P505h +GHO2               =       GPH5049                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 62483} G2P505h +GNO3               =       G1P506T +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 62484} G2P505h +MEPERO             =  0.340G1P506T + 0.330GPN500t + 0.330GPN502H                 : ARR( 0.565E-13,  -845., 0.0);
+{ 62485} G2P505h +PERO1              =  0.460G1P506T + 0.270GPN500t + 0.270GPN502H                 : ARR( 0.434E-13,  -900., 0.0);
+{ 62486} G2P505h +PERO2              =  0.400G1P506T + 0.300GPN500t + 0.300GPN502H                 : ARR( 0.162E-13, -1400., 0.0);
+{ 62487} G2P505h +PERO3              =  0.460G1P506T + 0.270GPN500t + 0.270GPN502H                 : ARR( 0.488E-13, -1250., 0.0);
+{ 62488} G2P505h +PERO5              =  0.460G1P506T + 0.270GPN500t + 0.270GPN502H                 : ARR( 0.183E-11,   450., 0.0);
+{ 62489} G2P505h +PERO6              =  0.300G1P506T + 0.350GPN500t + 0.350GPN502H                 : ARR( 0.168E-13, -1300., 0.0);
+{ 62490} G2P505h +PERO9              =  0.650G1P506T + 0.350GPN502H                                : ARR( 0.100E-10,     0., 0.0);
+{ 62491} GGH503W +GHO                =       GGH505I +      GHO2                                   : ARR( 0.249E-11,     0., 0.0);
+{ 62492} GGH503W +GHO                =       GGN502H +      GHO                                    : ARR( 0.510E-11,     0., 0.0);
+{ 62493} GGH503W +GHO                =       G2G504C                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 62494} GGH503W +GHO                =       G3H502t                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 62495} GGH503W+HV               =       G3K2001 +      GGH3007 +      GNO2                    :  0.100E+01*SUN;
+{ 62496} GGH503W+HV               =       G1G506H +      GNO2                                   :  0.100E+01*SUN;
+{ 62497} GGH503W+HV               =       G1G506E +      GHO                                    :  0.100E+01*SUN;
+{ 62498} GGH503W+HV               =       GND400L +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 62499} G2G504C +GNO                =       G1G506E +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 62500} G2G504C +GNO                =       GGN502W                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 62501} G2G504C +GHO2               =       GGH503W                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 62502} G2G504C +GNO3               =       G1G506E +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 62503} G2G504C +MEPERO             =  0.340G1G506E + 0.330GGN501x + 0.330GGN502H                 : ARR( 0.565E-13,  -845., 0.0);
+{ 62504} G2G504C +PERO1              =  0.460G1G506E + 0.270GGN501x + 0.270GGN502H                 : ARR( 0.434E-13,  -900., 0.0);
+{ 62505} G2G504C +PERO2              =  0.400G1G506E + 0.300GGN501x + 0.300GGN502H                 : ARR( 0.162E-13, -1400., 0.0);
+{ 62506} G2G504C +PERO3              =  0.460G1G506E + 0.270GGN501x + 0.270GGN502H                 : ARR( 0.488E-13, -1250., 0.0);
+{ 62507} G2G504C +PERO5              =  0.460G1G506E + 0.270GGN501x + 0.270GGN502H                 : ARR( 0.183E-11,   450., 0.0);
+{ 62508} G2G504C +PERO6              =  0.300G1G506E + 0.350GGN501x + 0.350GGN502H                 : ARR( 0.168E-13, -1300., 0.0);
+{ 62509} G2G504C +PERO9              =  0.650G1G506E + 0.350GGN502H                                : ARR( 0.100E-10,     0., 0.0);
+{ 62510} G1G506H                     =       G3K2001 +      GGH3007                                : ARR( 0.200E+15,  2179., 0.0);
+{ 62511} GAH5041 +GHO                =       GAH505N +      GHO2                                   : ARR( 0.264E-11,     0., 0.0);
+{ 62512} GAH5041 +GHO                =       GAN501p +      GHO                                    : ARR( 0.400E-11,     0., 0.0);
+{ 62513} GAH5041 +GHO                =       G2A5059                                               : ARR( 0.204E-11,  -190., 0.0);
+{ 62514} GAH5041+HV               =       G3K2001 +      GAH3007 +      GNO2                    :  0.100E+01*SUN;
+{ 62515} GAH5041+HV               =       G1A507Q +      GNO2                                   :  0.100E+01*SUN;
+{ 62516} GAH5041+HV               =       G1A505E +      GHO                                    :  0.100E+01*SUN;
+{ 62517} G2A5059 +GNO                =       G1A505E +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 62518} G2A5059 +GNO                =       GAN501m                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 62519} G2A5059 +GHO2               =       GAH5041                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 62520} G2A5059 +GNO3               =       G1A505E +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 62521} G2A5059 +MEPERO             =  0.340G1A505E + 0.330GAN5029 + 0.330GAN501p                 : ARR( 0.565E-13,  -845., 0.0);
+{ 62522} G2A5059 +PERO1              =  0.460G1A505E + 0.270GAN5029 + 0.270GAN501p                 : ARR( 0.434E-13,  -900., 0.0);
+{ 62523} G2A5059 +PERO2              =  0.400G1A505E + 0.300GAN5029 + 0.300GAN501p                 : ARR( 0.162E-13, -1400., 0.0);
+{ 62524} G2A5059 +PERO3              =  0.460G1A505E + 0.270GAN5029 + 0.270GAN501p                 : ARR( 0.488E-13, -1250., 0.0);
+{ 62525} G2A5059 +PERO5              =  0.460G1A505E + 0.270GAN5029 + 0.270GAN501p                 : ARR( 0.183E-11,   450., 0.0);
+{ 62526} G2A5059 +PERO6              =  0.300G1A505E + 0.350GAN5029 + 0.350GAN501p                 : ARR( 0.168E-13, -1300., 0.0);
+{ 62527} G2A5059 +PERO9              =  0.650G1A505E + 0.350GAN501p                                : ARR( 0.100E-10,     0., 0.0);
+{ 62528} G1A507Q                     =       G3K2001 +      GAH3007                                : ARR( 0.200E+15,  2179., 0.0);
+{ 62529} GPH504A                     =       G3H502t +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 62530} GPH504A +GHO                =       GPH505U +      GHO2                                   : ARR( 0.250E-11,     0., 0.0);
+{ 62531} GPH504A +GHO                =       GPN501s +      GHO                                    : ARR( 0.512E-11,     0., 0.0);
+{ 62532} GPH504A +GHO                =       G2P503t                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 62533} GPH504A+HV               =       G3K2001 +      GPH3007 +      GNO2                    :  0.100E+01*SUN;
+{ 62534} GPH504A+HV               =       G1P5086 +      GNO2                                   :  0.100E+01*SUN;
+{ 62535} GPH504A+HV               =       G1P504p +      GHO                                    :  0.100E+01*SUN;
+{ 62536} GPH504A+HV               =       G3H502t +      GNO2                                   :  0.100E+01*SUN;
+{ 62537} G1P5086                     =       G3K2001 +      GPH3007                                : ARR( 0.200E+15,  2179., 0.0);
+{ 62538} GGH503X +GHO                =       GGN502F +      GHO                                    : ARR( 0.507E-11,     0., 0.0);
+{ 62539} GGH503X +GHO                =       G2G504D                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 62540} GGH503X +GHO                =       G3H502u                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 62541} GGH503X+HV               =       G1G506I +      GNO2                                   :  0.100E+01*SUN;
+{ 62542} GGH503X+HV               =       G3N2000 +      GGH3007 +      GNO2                    :  0.100E+01*SUN;
+{ 62543} GGH503X+HV               =       G1G506J +      GNO2                                   :  0.100E+01*SUN;
+{ 62544} GGH503X+HV               =       G1G505i +      GHO                                    :  0.100E+01*SUN;
+{ 62545} GGH503X+HV               =       GNN400G +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 62546} G2G504D +GNO                =       G1G505i +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 62547} G2G504D +GNO                =       GGN502J                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 62548} G2G504D +GHO2               =       GGH503X                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 62549} G2G504D +GNO3               =       G1G505i +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 62550} G2G504D +MEPERO             =  0.340G1G505i + 0.330GGN502Q + 0.330GGN502F                 : ARR( 0.565E-13,  -845., 0.0);
+{ 62551} G2G504D +PERO1              =  0.460G1G505i + 0.270GGN502Q + 0.270GGN502F                 : ARR( 0.434E-13,  -900., 0.0);
+{ 62552} G2G504D +PERO2              =  0.400G1G505i + 0.300GGN502Q + 0.300GGN502F                 : ARR( 0.162E-13, -1400., 0.0);
+{ 62553} G2G504D +PERO3              =  0.460G1G505i + 0.270GGN502Q + 0.270GGN502F                 : ARR( 0.488E-13, -1250., 0.0);
+{ 62554} G2G504D +PERO5              =  0.460G1G505i + 0.270GGN502Q + 0.270GGN502F                 : ARR( 0.183E-11,   450., 0.0);
+{ 62555} G2G504D +PERO6              =  0.300G1G505i + 0.350GGN502Q + 0.350GGN502F                 : ARR( 0.168E-13, -1300., 0.0);
+{ 62556} G2G504D +PERO9              =  0.650G1G505i + 0.350GGN502F                                : ARR( 0.100E-10,     0., 0.0);
+{ 62557} G1G506I                     =       G3G400J +      GCH2O                                  : ARR( 0.200E+15,  3640., 0.0);
+{ 62558} G1G506J                     =       G3N2000 +      GGH3007                                : ARR( 0.200E+15,  2059., 0.0);
+{ 62559} GAH5042 +GHO                =       GAH502M +      GHO                                    : ARR( 0.840E-11,     0., 0.0);
+{ 62560} GAH5042 +GHO                =       GAH502Y +      GHO                                    : ARR( 0.190E-10,     0., 0.0);
+{ 62561} GAH5042 +GHO                =       G2A505A                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 62562} GAH5042 +GHO                =       G2A505B                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 62563} GAH5042+HV               =       G1A507R +      GNO2                                   :  0.100E+01*SUN;
+{ 62564} GAH5042+HV               =       G1A504s +      GHO                                    :  0.100E+01*SUN;
+{ 62565} GAH5042+HV               =       G1A505Y +      GHO                                    :  0.100E+01*SUN;
+{ 62566} G2A505A +GNO                =       G1A504s +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 62567} G2A505A +GNO                =       GAH5029                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 62568} G2A505A +GHO2               =       GAH5042                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 62569} G2A505A +GNO3               =       G1A504s +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 62570} G2A505A +MEPERO             =  0.340G1A504s + 0.330GAH502J + 0.330GAH502M                 : ARR( 0.565E-13,  -845., 0.0);
+{ 62571} G2A505A +PERO1              =  0.460G1A504s + 0.270GAH502J + 0.270GAH502M                 : ARR( 0.434E-13,  -900., 0.0);
+{ 62572} G2A505A +PERO2              =  0.400G1A504s + 0.300GAH502J + 0.300GAH502M                 : ARR( 0.162E-13, -1400., 0.0);
+{ 62573} G2A505A +PERO3              =  0.460G1A504s + 0.270GAH502J + 0.270GAH502M                 : ARR( 0.488E-13, -1250., 0.0);
+{ 62574} G2A505A +PERO5              =  0.460G1A504s + 0.270GAH502J + 0.270GAH502M                 : ARR( 0.183E-11,   450., 0.0);
+{ 62575} G2A505A +PERO6              =  0.300G1A504s + 0.350GAH502J + 0.350GAH502M                 : ARR( 0.168E-13, -1300., 0.0);
+{ 62576} G2A505A +PERO9              =  0.650G1A504s + 0.350GAH502M                                : ARR( 0.100E-10,     0., 0.0);
+{ 62577} G2A505B +GNO                =       G1A505Y +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 62578} G2A505B +GNO                =       GAH502X                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 62579} G2A505B +GHO2               =       GAH5042                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 62580} G2A505B +GNO3               =       G1A505Y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 62581} G2A505B +MEPERO             =  0.340G1A505Y + 0.330GAH5043 + 0.330GAH502Y                 : ARR( 0.565E-13,  -845., 0.0);
+{ 62582} G2A505B +PERO1              =  0.460G1A505Y + 0.270GAH5043 + 0.270GAH502Y                 : ARR( 0.434E-13,  -900., 0.0);
+{ 62583} G2A505B +PERO2              =  0.400G1A505Y + 0.300GAH5043 + 0.300GAH502Y                 : ARR( 0.162E-13, -1400., 0.0);
+{ 62584} G2A505B +PERO3              =  0.460G1A505Y + 0.270GAH5043 + 0.270GAH502Y                 : ARR( 0.488E-13, -1250., 0.0);
+{ 62585} G2A505B +PERO5              =  0.460G1A505Y + 0.270GAH5043 + 0.270GAH502Y                 : ARR( 0.183E-11,   450., 0.0);
+{ 62586} G2A505B +PERO6              =  0.300G1A505Y + 0.350GAH5043 + 0.350GAH502Y                 : ARR( 0.168E-13, -1300., 0.0);
+{ 62587} G2A505B +PERO9              =  0.650G1A505Y + 0.350GAH502Y                                : ARR( 0.100E-10,     0., 0.0);
+{ 62588} G1A507R                     =       GD02000 +      GAH3007 +      GHO                     : ARR( 0.200E+15,  4573., 0.0);
+{ 62589} GAH5043 +GHO                =       GAN501v +      GHO                                    : ARR( 0.864E-11,     0., 0.0);
+{ 62590} GAH5043 +GHO                =       GAH502Y +      GHO2                                   : ARR( 0.487E-11,     0., 0.0);
+{ 62591} GAH5043 +GHO                =       G2A505C                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 62592} GAH5043+HV               =       G1A507S +      GNO2                                   :  0.100E+01*SUN;
+{ 62593} GAH5043+HV               =       G1A504t +      GHO                                    :  0.100E+01*SUN;
+{ 62594} G2A505C +GNO                =       G1A504t +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 62595} G2A505C +GNO                =       GAN501c                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 62596} G2A505C +GHO2               =       GAH5043                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 62597} G2A505C +GNO3               =       G1A504t +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 62598} G2A505C +MEPERO             =  0.340G1A504t + 0.330GAN501r + 0.330GAN501v                 : ARR( 0.565E-13,  -845., 0.0);
+{ 62599} G2A505C +PERO1              =  0.460G1A504t + 0.270GAN501r + 0.270GAN501v                 : ARR( 0.434E-13,  -900., 0.0);
+{ 62600} G2A505C +PERO2              =  0.400G1A504t + 0.300GAN501r + 0.300GAN501v                 : ARR( 0.162E-13, -1400., 0.0);
+{ 62601} G2A505C +PERO3              =  0.460G1A504t + 0.270GAN501r + 0.270GAN501v                 : ARR( 0.488E-13, -1250., 0.0);
+{ 62602} G2A505C +PERO5              =  0.460G1A504t + 0.270GAN501r + 0.270GAN501v                 : ARR( 0.183E-11,   450., 0.0);
+{ 62603} G2A505C +PERO6              =  0.300G1A504t + 0.350GAN501r + 0.350GAN501v                 : ARR( 0.168E-13, -1300., 0.0);
+{ 62604} G2A505C +PERO9              =  0.650G1A504t + 0.350GAN501v                                : ARR( 0.100E-10,     0., 0.0);
+{ 62605} G1A507S                     =       GD02000 +      GAD3001 +      GHO                     : ARR( 0.200E+15,  4573., 0.0);
+{ 62606} GGH503Y +GHO                =       GGN502X +      GHO                                    : ARR( 0.153E-10,     0., 0.0);
+{ 62607} GGH503Y +GHO                =       G2G502B                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 62608} GGH503Y +GHO                =       G3H504M                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 62609} GGH503Y+HV               =       G1G506K +      GNO2                                   :  0.100E+01*SUN;
+{ 62610} GGH503Y+HV               =       G1G506L +      GNO2                                   :  0.100E+01*SUN;
+{ 62611} GGH503Y+HV               =       G3N3003 +      GGD2000 +      GHO                     :  0.100E+01*SUN;
+{ 62612} GGH503Y+HV               =       G1G5031 +      GHO                                    :  0.100E+01*SUN;
+{ 62613} GGH503Y+HV               =       GNN400a +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 62614} G1G506K +OXYGEN             =       GGH505A +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 62615} G1G506K                     =       GGN502Z +      GHO                                    : ARR( 0.800E+11,  3882., 0.0);
+{ 62616} G1G506L                     =       GND2000 +      G3G3003                                : ARR( 0.200E+15,  3775., 0.0);
+{ 62617} GGN502X +GHO                =       G3N502l                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 62618} GGN502X+HV               =       G1G506M +      GNO2                                   :  0.100E+01*SUN;
+{ 62619} GGN502X+HV               =       G1G506N +      GNO2                                   :  0.100E+01*SUN;
+{ 62620} GGN502X+HV               =       G3N3003 +      GCO     +      GHO2    +      GCO      :  0.100E+01*SUN;
+{ 62621} GGN502X+HV               =       GAN400T +      GCO2                                   :  0.100E+01*SUN;
+{ 62622} G1G506M +OXYGEN             =       GGN502q +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 62623} G1G506M                     =       GGD4008 +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  6903., 0.0);
+{ 62624} G1G506N                     =       GND2000 +      GCO     +      GHO2    + 2.000GCO      : ARR( 0.200E+15,  3288., 0.0);
+{ 62625} GGN502Y +GHO                =       GGN502o +      GHO2                                   : ARR( 0.851E-12,     0., 0.0);
+{ 62626} GGN502Y +GHO                =       G3N502E                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 62627} GGN502Y+HV               =       G1G506O +      GNO2                                   :  0.100E+01*SUN;
+{ 62628} GGN502Y+HV               =       G3N3004 +      GGD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 62629} GGN502Y+HV               =       G1G5032 +      GNO2                                   :  0.100E+01*SUN;
+{ 62630} GGN502Y+HV               =       GND400K +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 62631} G1G506O                     =       GDO2000 +      G3G3001                                : ARR( 0.200E+15,  4123., 0.0);
+{ 62632} GGH503Z +GHO                =       GGN502Z +      GHO                                    : ARR( 0.160E-10,     0., 0.0);
+{ 62633} GGH503Z +GHO                =       G2G502C                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 62634} GGH503Z +GHO                =       G3H502z                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 62635} GGH503Z+HV               =       G1G506P +      GNO2                                   :  0.100E+01*SUN;
+{ 62636} GGH503Z+HV               =       G3N3004 +      GGD2000 +      GHO                     :  0.100E+01*SUN;
+{ 62637} GGH503Z+HV               =       G1G5032 +      GHO                                    :  0.100E+01*SUN;
+{ 62638} GGH503Z+HV               =       GND400K +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 62639} G1G506P                     =       GDO2000 +      G3G3003                                : ARR( 0.200E+15,  3778., 0.0);
+{ 62640} GGN502Z +GHO                =       GGN502q +      GHO2                                   : ARR( 0.843E-12,     0., 0.0);
+{ 62641} GGN502Z +GHO                =       G3N502X                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 62642} GGN502Z+HV               =       G1G506Q +      GNO2                                   :  0.100E+01*SUN;
+{ 62643} GGN502Z+HV               =       G3N3004 +      GCO     +      GHO2    +      GCO      :  0.100E+01*SUN;
+{ 62644} GGN502Z+HV               =       GAN400L +      GCO2                                   :  0.100E+01*SUN;
+{ 62645} G1G506Q                     =       GDO2000 +      GCO     +      GHO2    + 2.000GCO      : ARR( 0.200E+15,  3291., 0.0);
+{ 62646} GHN506p +GHO                =       GND501Z +      GHO                                    : ARR( 0.511E-10,     0., 0.0);
+{ 62647} GHN506p +GHO                =       GHN506U +      GHO2                                   : ARR( 0.630E-11,     0., 0.0);
+{ 62648} GHN506p +GHO                =       G3H504I                                               : ARR( 0.417E-11,     0., 0.0);
+{ 62649} GHN506p +GHO                =       G2N505y                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 62650} GHN506p +GNO3               =       G3H504I +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 62651} GHN506p+HV               =       G1N506p +      GHO                                    :  0.100E+01*SUN;
+{ 62652} GHN506p+HV               =       G3H3003 +      GDD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 62653} GHN506p+HV               =       G1H50B5 +      GNO2                                   :  0.100E+01*SUN;
+{ 62654} GHN506p+HV               =       GHD400F +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 62655} GHD501Q +GHO                =       GDD500A +      GHO                                    : ARR( 0.517E-10,     0., 0.0);
+{ 62656} GHD501Q +GHO                =       G3H3000 + 2.000GCO                                    : ARR( 0.128E-10,     0., 0.0);
+{ 62657} GHD501Q +GHO                =       G2D500s                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 62658} GHD501Q +GNO3               =       G3H3000 +      GHNO3   + 2.000GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 62659} GHD501Q+HV               =       G1D500s +      GHO                                    :  0.100E+01*SUN;
+{ 62660} GHD501Q+HV               =       G3H3000 +      G3D2000                                :  0.100E+01*SUN;
+{ 62661} GHD501Q+HV               =       G3H3000 +      GCO     +      GCO     +      GHO2     :  0.100E+01*SUN;
+{ 62662} GHD501Q+HV               =       GHD400D +      GCO                                    :  0.100E+01*SUN;
+{ 62663} GHD501Q+HV               =       GHD3000 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 62664} G2D500s +GNO                =       G1D500s +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 62665} G2D500s +GNO                =       GND500i                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 62666} G2D500s +GHO2               =       GHD501Q                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 62667} G2D500s +GNO3               =       G1D500s +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 62668} G2D500s +MEPERO             =  0.480G1D500s + 0.260GDK500L + 0.260GDD500A                 : ARR( 0.146E-12,  -445., 0.0);
+{ 62669} G2D500s +PERO1              =  0.600G1D500s + 0.200GDK500L + 0.200GDD500A                 : ARR( 0.112E-12,  -500., 0.0);
+{ 62670} G2D500s +PERO2              =  0.560G1D500s + 0.220GDK500L + 0.220GDD500A                 : ARR( 0.418E-13, -1000., 0.0);
+{ 62671} G2D500s +PERO3              =  0.600G1D500s + 0.200GDK500L + 0.200GDD500A                 : ARR( 0.126E-12,  -850., 0.0);
+{ 62672} G2D500s +PERO5              =  0.600G1D500s + 0.200GDK500L + 0.200GDD500A                 : ARR( 0.473E-11,   850., 0.0);
+{ 62673} G2D500s +PERO6              =  0.460G1D500s + 0.270GDK500L + 0.270GDD500A                 : ARR( 0.434E-13,  -900., 0.0);
+{ 62674} G2D500s +PERO9              =  0.800G1D500s + 0.200GDD500A                                : ARR( 0.100E-10,     0., 0.0);
+{ 62675} GGH503a +GHO                =       GGH502F +      GHO                                    : ARR( 0.600E-10,     0., 0.0);
+{ 62676} GGH503a +GHO                =       GGH502D +      GHO                                    : ARR( 0.180E-10,     0., 0.0);
+{ 62677} GGH503a+HV               =       G1G502K +      GHO                                    :  0.100E+01*SUN;
+{ 62678} GGH503a+HV               =       G3H3000 +      GGD2000 +      GHO                     :  0.100E+01*SUN;
+{ 62679} GGH503a+HV               =       G1G504C +      GHO                                    :  0.100E+01*SUN;
+{ 62680} GGH503a+HV               =       GHD400D +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 62681} GAH5044 +GHO                =       GAH502R +      GHO                                    : ARR( 0.116E-10,     0., 0.0);
+{ 62682} GAH5044 +GHO                =       GAH502U +      GHO                                    : ARR( 0.520E-10,     0., 0.0);
+{ 62683} GAH5044 +GHO                =       G2A505D                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 62684} GAH5044 +GHO                =       G2A505E                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 62685} GAH5044+HV               =       G1A505R +      GHO                                    :  0.100E+01*SUN;
+{ 62686} GAH5044+HV               =       G3A3003 +      G2H2000                                :  0.100E+01*SUN;
+{ 62687} GAH5044+HV               =       G1A5033 +      GHO                                    :  0.100E+01*SUN;
+{ 62688} G2A505D +GNO                =       G1A505R +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 62689} G2A505D +GNO                =       GAH502O                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 62690} G2A505D +GHO2               =       GAH5044                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 62691} G2A505D +GNO3               =       G1A505R +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 62692} G2A505D +MEPERO             =  0.340G1A505R + 0.330GAH501v + 0.330GAH502R                 : ARR( 0.565E-13,  -845., 0.0);
+{ 62693} G2A505D +PERO1              =  0.460G1A505R + 0.270GAH501v + 0.270GAH502R                 : ARR( 0.434E-13,  -900., 0.0);
+{ 62694} G2A505D +PERO2              =  0.400G1A505R + 0.300GAH501v + 0.300GAH502R                 : ARR( 0.162E-13, -1400., 0.0);
+{ 62695} G2A505D +PERO3              =  0.460G1A505R + 0.270GAH501v + 0.270GAH502R                 : ARR( 0.488E-13, -1250., 0.0);
+{ 62696} G2A505D +PERO5              =  0.460G1A505R + 0.270GAH501v + 0.270GAH502R                 : ARR( 0.183E-11,   450., 0.0);
+{ 62697} G2A505D +PERO6              =  0.300G1A505R + 0.350GAH501v + 0.350GAH502R                 : ARR( 0.168E-13, -1300., 0.0);
+{ 62698} G2A505D +PERO9              =  0.650G1A505R + 0.350GAH502R                                : ARR( 0.100E-10,     0., 0.0);
+{ 62699} G2A505E +GNO                =       G1A5033 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 62700} G2A505E +GNO                =       GAH5013                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 62701} G2A505E +GHO2               =       GAH5044                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 62702} G2A505E +GNO3               =       G1A5033 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 62703} G2A505E +MEPERO             =  0.480G1A5033 + 0.260GAH500U + 0.260GAH502U                 : ARR( 0.146E-12,  -445., 0.0);
+{ 62704} G2A505E +PERO1              =  0.600G1A5033 + 0.200GAH500U + 0.200GAH502U                 : ARR( 0.112E-12,  -500., 0.0);
+{ 62705} G2A505E +PERO2              =  0.560G1A5033 + 0.220GAH500U + 0.220GAH502U                 : ARR( 0.418E-13, -1000., 0.0);
+{ 62706} G2A505E +PERO3              =  0.600G1A5033 + 0.200GAH500U + 0.200GAH502U                 : ARR( 0.126E-12,  -850., 0.0);
+{ 62707} G2A505E +PERO5              =  0.600G1A5033 + 0.200GAH500U + 0.200GAH502U                 : ARR( 0.473E-11,   850., 0.0);
+{ 62708} G2A505E +PERO6              =  0.460G1A5033 + 0.270GAH500U + 0.270GAH502U                 : ARR( 0.434E-13,  -900., 0.0);
+{ 62709} G2A505E +PERO9              =  0.800G1A5033 + 0.200GAH502U                                : ARR( 0.100E-10,     0., 0.0);
+{ 62710} GPH504B                     =       G3H5032 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 62711} GPH504B +GHO                =       GPH502c +      GHO                                    : ARR( 0.572E-10,     0., 0.0);
+{ 62712} GPH504B +GHO                =       GPH502Z +      GHO                                    : ARR( 0.172E-10,     0., 0.0);
+{ 62713} GPH504B+HV               =       G1P503J +      GHO                                    :  0.100E+01*SUN;
+{ 62714} GPH504B+HV               =       G3H3000 +      GPD2000 +      GHO                     :  0.100E+01*SUN;
+{ 62715} GPH504B+HV               =       G1P5063 +      GHO                                    :  0.100E+01*SUN;
+{ 62716} GPH504B+HV               =       G3H5032 +      GNO2                                   :  0.100E+01*SUN;
+{ 62717} GGH503b +GHO                =       GGH5029 +      GHO                                    : ARR( 0.207E-10,     0., 0.0);
+{ 62718} GGH503b +GHO                =       GGH502E +      GHO                                    : ARR( 0.155E-10,     0., 0.0);
+{ 62719} GGH503b +GHO                =       G2G504E                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 62720} GGH503b +GHO                =       G2G504F                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 62721} GGH503b +GHO                =       G3H5033                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 62722} GGH503b+HV               =       G1G504B +      GHO                                    :  0.100E+01*SUN;
+{ 62723} GGH503b+HV               =       G3H3001 +      GGD2000 +      GHO                     :  0.100E+01*SUN;
+{ 62724} GGH503b+HV               =       G1G504E +      GHO                                    :  0.100E+01*SUN;
+{ 62725} GGH503b+HV               =       GHD400I +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 62726} G2G504E +GNO                =       G1G504B +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 62727} G2G504E +GNO                =       GGH5028                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 62728} G2G504E +GHO2               =       GGH503b                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 62729} G2G504E +GNO3               =       G1G504B +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 62730} G2G504E +MEPERO             =  0.340G1G504B + 0.330GGH500i + 0.330GGH5029                 : ARR( 0.565E-13,  -845., 0.0);
+{ 62731} G2G504E +PERO1              =  0.460G1G504B + 0.270GGH500i + 0.270GGH5029                 : ARR( 0.434E-13,  -900., 0.0);
+{ 62732} G2G504E +PERO2              =  0.400G1G504B + 0.300GGH500i + 0.300GGH5029                 : ARR( 0.162E-13, -1400., 0.0);
+{ 62733} G2G504E +PERO3              =  0.460G1G504B + 0.270GGH500i + 0.270GGH5029                 : ARR( 0.488E-13, -1250., 0.0);
+{ 62734} G2G504E +PERO5              =  0.460G1G504B + 0.270GGH500i + 0.270GGH5029                 : ARR( 0.183E-11,   450., 0.0);
+{ 62735} G2G504E +PERO6              =  0.300G1G504B + 0.350GGH500i + 0.350GGH5029                 : ARR( 0.168E-13, -1300., 0.0);
+{ 62736} G2G504E +PERO9              =  0.650G1G504B + 0.350GGH5029                                : ARR( 0.100E-10,     0., 0.0);
+{ 62737} G2G504F +GNO                =       G1G504E +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 62738} G2G504F +GNO                =       GGH502B                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 62739} G2G504F +GHO2               =       GGH503b                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 62740} G2G504F +GNO3               =       G1G504E +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 62741} G2G504F +MEPERO             =  0.340G1G504E + 0.330GGH502C + 0.330GGH502E                 : ARR( 0.565E-13,  -845., 0.0);
+{ 62742} G2G504F +PERO1              =  0.460G1G504E + 0.270GGH502C + 0.270GGH502E                 : ARR( 0.434E-13,  -900., 0.0);
+{ 62743} G2G504F +PERO2              =  0.400G1G504E + 0.300GGH502C + 0.300GGH502E                 : ARR( 0.162E-13, -1400., 0.0);
+{ 62744} G2G504F +PERO3              =  0.460G1G504E + 0.270GGH502C + 0.270GGH502E                 : ARR( 0.488E-13, -1250., 0.0);
+{ 62745} G2G504F +PERO5              =  0.460G1G504E + 0.270GGH502C + 0.270GGH502E                 : ARR( 0.183E-11,   450., 0.0);
+{ 62746} G2G504F +PERO6              =  0.300G1G504E + 0.350GGH502C + 0.350GGH502E                 : ARR( 0.168E-13, -1300., 0.0);
+{ 62747} G2G504F +PERO9              =  0.650G1G504E + 0.350GGH502E                                : ARR( 0.100E-10,     0., 0.0);
+{ 62748} GAH5045 +GHO                =       GAH502N +      GHO                                    : ARR( 0.210E-10,     0., 0.0);
+{ 62749} GAH5045 +GHO                =       GAH502S +      GHO                                    : ARR( 0.116E-10,     0., 0.0);
+{ 62750} GAH5045 +GHO                =       G2A505F                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 62751} GAH5045 +GHO                =       G2A505G                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 62752} GAH5045+HV               =       G1A505N +      GHO                                    :  0.100E+01*SUN;
+{ 62753} GAH5045+HV               =       G3H3001 +      GAD2000 +      GHO                     :  0.100E+01*SUN;
+{ 62754} GAH5045+HV               =       G1A505T +      GHO                                    :  0.100E+01*SUN;
+{ 62755} G2A505F +GNO                =       G1A505N +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 62756} G2A505F +GNO                =       GAH502M                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 62757} G2A505F +GHO2               =       GAH5045                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 62758} G2A505F +GNO3               =       G1A505N +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 62759} G2A505F +MEPERO             =  0.340G1A505N + 0.330GAH500n + 0.330GAH502N                 : ARR( 0.565E-13,  -845., 0.0);
+{ 62760} G2A505F +PERO1              =  0.460G1A505N + 0.270GAH500n + 0.270GAH502N                 : ARR( 0.434E-13,  -900., 0.0);
+{ 62761} G2A505F +PERO2              =  0.400G1A505N + 0.300GAH500n + 0.300GAH502N                 : ARR( 0.162E-13, -1400., 0.0);
+{ 62762} G2A505F +PERO3              =  0.460G1A505N + 0.270GAH500n + 0.270GAH502N                 : ARR( 0.488E-13, -1250., 0.0);
+{ 62763} G2A505F +PERO5              =  0.460G1A505N + 0.270GAH500n + 0.270GAH502N                 : ARR( 0.183E-11,   450., 0.0);
+{ 62764} G2A505F +PERO6              =  0.300G1A505N + 0.350GAH500n + 0.350GAH502N                 : ARR( 0.168E-13, -1300., 0.0);
+{ 62765} G2A505F +PERO9              =  0.650G1A505N + 0.350GAH502N                                : ARR( 0.100E-10,     0., 0.0);
+{ 62766} G2A505G +GNO                =       G1A505T +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 62767} G2A505G +GNO                =       GAH502P                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 62768} G2A505G +GHO2               =       GAH5045                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 62769} G2A505G +GNO3               =       G1A505T +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 62770} G2A505G +MEPERO             =  0.340G1A505T + 0.330GAH502Q + 0.330GAH502S                 : ARR( 0.565E-13,  -845., 0.0);
+{ 62771} G2A505G +PERO1              =  0.460G1A505T + 0.270GAH502Q + 0.270GAH502S                 : ARR( 0.434E-13,  -900., 0.0);
+{ 62772} G2A505G +PERO2              =  0.400G1A505T + 0.300GAH502Q + 0.300GAH502S                 : ARR( 0.162E-13, -1400., 0.0);
+{ 62773} G2A505G +PERO3              =  0.460G1A505T + 0.270GAH502Q + 0.270GAH502S                 : ARR( 0.488E-13, -1250., 0.0);
+{ 62774} G2A505G +PERO5              =  0.460G1A505T + 0.270GAH502Q + 0.270GAH502S                 : ARR( 0.183E-11,   450., 0.0);
+{ 62775} G2A505G +PERO6              =  0.300G1A505T + 0.350GAH502Q + 0.350GAH502S                 : ARR( 0.168E-13, -1300., 0.0);
+{ 62776} G2A505G +PERO9              =  0.650G1A505T + 0.350GAH502S                                : ARR( 0.100E-10,     0., 0.0);
+{ 62777} GPH504C                     =       G3H5033 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 62778} GPH504C +GHO                =       GPH502U +      GHO                                    : ARR( 0.207E-10,     0., 0.0);
+{ 62779} GPH504C +GHO                =       GPH502a +      GHO                                    : ARR( 0.155E-10,     0., 0.0);
+{ 62780} GPH504C +GHO                =       G2P505i                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 62781} GPH504C +GHO                =       G2P505j                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 62782} GPH504C+HV               =       G1P505w +      GHO                                    :  0.100E+01*SUN;
+{ 62783} GPH504C+HV               =       G3H3001 +      GPD2000 +      GHO                     :  0.100E+01*SUN;
+{ 62784} GPH504C+HV               =       G1P5065 +      GHO                                    :  0.100E+01*SUN;
+{ 62785} GPH504C+HV               =       G3H5033 +      GNO2                                   :  0.100E+01*SUN;
+{ 62786} G2P505i +GNO                =       G1P505w +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 62787} G2P505i +GNO                =       GPH502S                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 62788} G2P505i +GHO2               =       GPH504C                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 62789} G2P505i +GNO3               =       G1P505w +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 62790} G2P505i +MEPERO             =  0.340G1P505w + 0.330GPH500p + 0.330GPH502U                 : ARR( 0.565E-13,  -845., 0.0);
+{ 62791} G2P505i +PERO1              =  0.460G1P505w + 0.270GPH500p + 0.270GPH502U                 : ARR( 0.434E-13,  -900., 0.0);
+{ 62792} G2P505i +PERO2              =  0.400G1P505w + 0.300GPH500p + 0.300GPH502U                 : ARR( 0.162E-13, -1400., 0.0);
+{ 62793} G2P505i +PERO3              =  0.460G1P505w + 0.270GPH500p + 0.270GPH502U                 : ARR( 0.488E-13, -1250., 0.0);
+{ 62794} G2P505i +PERO5              =  0.460G1P505w + 0.270GPH500p + 0.270GPH502U                 : ARR( 0.183E-11,   450., 0.0);
+{ 62795} G2P505i +PERO6              =  0.300G1P505w + 0.350GPH500p + 0.350GPH502U                 : ARR( 0.168E-13, -1300., 0.0);
+{ 62796} G2P505i +PERO9              =  0.650G1P505w + 0.350GPH502U                                : ARR( 0.100E-10,     0., 0.0);
+{ 62797} G2P505j +GNO                =       G1P5065 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 62798} G2P505j +GNO                =       GPH502X                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 62799} G2P505j +GHO2               =       GPH504C                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 62800} G2P505j +GNO3               =       G1P5065 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 62801} G2P505j +MEPERO             =  0.340G1P5065 + 0.330GPH502Y + 0.330GPH502a                 : ARR( 0.565E-13,  -845., 0.0);
+{ 62802} G2P505j +PERO1              =  0.460G1P5065 + 0.270GPH502Y + 0.270GPH502a                 : ARR( 0.434E-13,  -900., 0.0);
+{ 62803} G2P505j +PERO2              =  0.400G1P5065 + 0.300GPH502Y + 0.300GPH502a                 : ARR( 0.162E-13, -1400., 0.0);
+{ 62804} G2P505j +PERO3              =  0.460G1P5065 + 0.270GPH502Y + 0.270GPH502a                 : ARR( 0.488E-13, -1250., 0.0);
+{ 62805} G2P505j +PERO5              =  0.460G1P5065 + 0.270GPH502Y + 0.270GPH502a                 : ARR( 0.183E-11,   450., 0.0);
+{ 62806} G2P505j +PERO6              =  0.300G1P5065 + 0.350GPH502Y + 0.350GPH502a                 : ARR( 0.168E-13, -1300., 0.0);
+{ 62807} G2P505j +PERO9              =  0.650G1P5065 + 0.350GPH502a                                : ARR( 0.100E-10,     0., 0.0);
+{ 62808} GGH503c +GHO                =       GGN502G +      GHO                                    : ARR( 0.153E-10,     0., 0.0);
+{ 62809} GGH503c +GHO                =       G2G502E                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 62810} GGH503c +GHO                =       G3H503b                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 62811} GGH503c+HV               =       G1G506R +      GNO2                                   :  0.100E+01*SUN;
+{ 62812} GGH503c+HV               =       G3N2000 +      G3G3003                                :  0.100E+01*SUN;
+{ 62813} GGH503c+HV               =       G1G5035 +      GHO                                    :  0.100E+01*SUN;
+{ 62814} GGH503c+HV               =       GND400M +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 62815} G1G506R                     =       G3G3003 +      GCH2O   +      GCO                     : ARR( 0.200E+15,  3897., 0.0);
+{ 62816} GGH503d +GHO                =       GGN502L +      GHO                                    : ARR( 0.167E-11,     0., 0.0);
+{ 62817} GGH503d +GHO                =       G2G504G                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 62818} GGH503d +GHO                =       G3H504K                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 62819} GGH503d+HV               =       G1G506S +      GNO2                                   :  0.100E+01*SUN;
+{ 62820} GGH503d+HV               =       G1G506T +      GNO2                                   :  0.100E+01*SUN;
+{ 62821} GGH503d+HV               =       G1G505e +      GHO                                    :  0.100E+01*SUN;
+{ 62822} GGH503d+HV               =       G1G5038 +      GNO2                                   :  0.100E+01*SUN;
+{ 62823} GGH503d+HV               =       GHN400v +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 62824} G2G504G +GNO                =       G1G505e +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 62825} G2G504G +GNO                =       GGN502I                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 62826} G2G504G +GHO2               =       GGH503d                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 62827} G2G504G +GNO3               =       G1G505e +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 62828} G2G504G +MEPERO             =  0.340G1G505e + 0.330GGN502a + 0.330GGN502L                 : ARR( 0.565E-13,  -845., 0.0);
+{ 62829} G2G504G +PERO1              =  0.460G1G505e + 0.270GGN502a + 0.270GGN502L                 : ARR( 0.434E-13,  -900., 0.0);
+{ 62830} G2G504G +PERO2              =  0.400G1G505e + 0.300GGN502a + 0.300GGN502L                 : ARR( 0.162E-13, -1400., 0.0);
+{ 62831} G2G504G +PERO3              =  0.460G1G505e + 0.270GGN502a + 0.270GGN502L                 : ARR( 0.488E-13, -1250., 0.0);
+{ 62832} G2G504G +PERO5              =  0.460G1G505e + 0.270GGN502a + 0.270GGN502L                 : ARR( 0.183E-11,   450., 0.0);
+{ 62833} G2G504G +PERO6              =  0.300G1G505e + 0.350GGN502a + 0.350GGN502L                 : ARR( 0.168E-13, -1300., 0.0);
+{ 62834} G2G504G +PERO9              =  0.650G1G505e + 0.350GGN502L                                : ARR( 0.100E-10,     0., 0.0);
+{ 62835} G1G506S +OXYGEN             =       GGH504y +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 62836} G1G506S                     =       GGH5031 +      GNO2                                   : ARR( 0.800E+11,  4245., 0.0);
+{ 62837} G1G506S                     =       GGH400o +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7042., 0.0);
+{ 62838} G1G506T                     =       GND2000 +      GGN3005 +      GHO                     : ARR( 0.200E+15,  4826., 0.0);
+{ 62839} GGH503e +GHO                =       GGH503Y +      GHO                                    : ARR( 0.825E-11,     0., 0.0);
+{ 62840} GGH503e +GHO                =       GGH503g +      GHO                                    : ARR( 0.251E-10,     0., 0.0);
+{ 62841} GGH503e +GHO                =       G2G504H                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 62842} GGH503e +GHO                =       G2G502F                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 62843} GGH503e +GHO                =       G3H504N                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 62844} GGH503e+HV               =       G1G506U +      GNO2                                   :  0.100E+01*SUN;
+{ 62845} GGH503e+HV               =       G1G506W +      GNO2                                   :  0.100E+01*SUN;
+{ 62846} GGH503e+HV               =       G1G506D +      GHO                                    :  0.100E+01*SUN;
+{ 62847} GGH503e+HV               =       G1G5038 +      GHO                                    :  0.100E+01*SUN;
+{ 62848} GGH503e+HV               =       GHN400v +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 62849} G2G504H +GNO                =       G1G506D +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 62850} G2G504H +GNO                =       GGH503O                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 62851} G2G504H +GHO2               =       GGH503e                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 62852} G2G504H +GNO3               =       G1G506D +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 62853} G2G504H +MEPERO             =  0.340G1G506D + 0.330GGH503k + 0.330GGH503Y                 : ARR( 0.565E-13,  -845., 0.0);
+{ 62854} G2G504H +PERO1              =  0.460G1G506D + 0.270GGH503k + 0.270GGH503Y                 : ARR( 0.434E-13,  -900., 0.0);
+{ 62855} G2G504H +PERO2              =  0.400G1G506D + 0.300GGH503k + 0.300GGH503Y                 : ARR( 0.162E-13, -1400., 0.0);
+{ 62856} G2G504H +PERO3              =  0.460G1G506D + 0.270GGH503k + 0.270GGH503Y                 : ARR( 0.488E-13, -1250., 0.0);
+{ 62857} G2G504H +PERO5              =  0.460G1G506D + 0.270GGH503k + 0.270GGH503Y                 : ARR( 0.183E-11,   450., 0.0);
+{ 62858} G2G504H +PERO6              =  0.300G1G506D + 0.350GGH503k + 0.350GGH503Y                 : ARR( 0.168E-13, -1300., 0.0);
+{ 62859} G2G504H +PERO9              =  0.650G1G506D + 0.350GGH503Y                                : ARR( 0.100E-10,     0., 0.0);
+{ 62860} G1G506U                     =       GGH5031 +      GHO                                    : ARR( 0.800E+11,  1899., 0.0);
+{ 62861} G1G506W                     =       GND2000 +      GGH3007 +      GHO                     : ARR( 0.200E+15,  4826., 0.0);
+{ 62862} GGH503f +GHO                =       GGN502N +      GHO                                    : ARR( 0.831E-11,     0., 0.0);
+{ 62863} GGH503f +GHO                =       GGH503g +      GHO2                                   : ARR( 0.633E-11,     0., 0.0);
+{ 62864} GGH503f +GHO                =       G2G504I                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 62865} GGH503f +GHO                =       G3H504P                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 62866} GGH503f+HV               =       G1G506X +      GNO2                                   :  0.100E+01*SUN;
+{ 62867} GGH503f+HV               =       G1G506Y +      GNO2                                   :  0.100E+01*SUN;
+{ 62868} GGH503f+HV               =       G1G504d +      GHO                                    :  0.100E+01*SUN;
+{ 62869} GGH503f+HV               =       GHN400v +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 62870} G2G504I +GNO                =       G1G504d +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 62871} G2G504I +GNO                =       GGN501s                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 62872} G2G504I +GHO2               =       GGH503f                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 62873} G2G504I +GNO3               =       G1G504d +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 62874} G2G504I +MEPERO             =  0.340G1G504d + 0.330GGN502b + 0.330GGN502N                 : ARR( 0.565E-13,  -845., 0.0);
+{ 62875} G2G504I +PERO1              =  0.460G1G504d + 0.270GGN502b + 0.270GGN502N                 : ARR( 0.434E-13,  -900., 0.0);
+{ 62876} G2G504I +PERO2              =  0.400G1G504d + 0.300GGN502b + 0.300GGN502N                 : ARR( 0.162E-13, -1400., 0.0);
+{ 62877} G2G504I +PERO3              =  0.460G1G504d + 0.270GGN502b + 0.270GGN502N                 : ARR( 0.488E-13, -1250., 0.0);
+{ 62878} G2G504I +PERO5              =  0.460G1G504d + 0.270GGN502b + 0.270GGN502N                 : ARR( 0.183E-11,   450., 0.0);
+{ 62879} G2G504I +PERO6              =  0.300G1G504d + 0.350GGN502b + 0.350GGN502N                 : ARR( 0.168E-13, -1300., 0.0);
+{ 62880} G2G504I +PERO9              =  0.650G1G504d + 0.350GGN502N                                : ARR( 0.100E-10,     0., 0.0);
+{ 62881} G1G506X                     =       GGH5031 +      GHO2                                   : ARR( 0.800E+11,  2246., 0.0);
+{ 62882} G1G506Y                     =       GND2000 +      GGD3001 +      GHO                     : ARR( 0.200E+15,  4826., 0.0);
+{ 62883} GGH503g +GHO                =       GGN502X +      GHO                                    : ARR( 0.506E-11,     0., 0.0);
+{ 62884} GGH503g +GHO                =       G2G504J                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 62885} GGH503g +GHO                =       G3H504k                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 62886} GGH503g+HV               =       G1G506Z +      GNO2                                   :  0.100E+01*SUN;
+{ 62887} GGH503g+HV               =       G1G506a +      GNO2                                   :  0.100E+01*SUN;
+{ 62888} GGH503g+HV               =       G1G506b +      GHO                                    :  0.100E+01*SUN;
+{ 62889} GGH503g+HV               =       GAH400O +      GCO2                                   :  0.100E+01*SUN;
+{ 62890} G2G504J +GNO                =       G1G506b +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 62891} G2G504J +GNO                =       GGN502j                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 62892} G2G504J +GHO2               =       GGH503g                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 62893} G2G504J +GNO3               =       G1G506b +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 62894} G2G504J +MEPERO             =  0.340G1G506b + 0.330GGN5027 + 0.330GGN502X                 : ARR( 0.565E-13,  -845., 0.0);
+{ 62895} G2G504J +PERO1              =  0.460G1G506b + 0.270GGN5027 + 0.270GGN502X                 : ARR( 0.434E-13,  -900., 0.0);
+{ 62896} G2G504J +PERO2              =  0.400G1G506b + 0.300GGN5027 + 0.300GGN502X                 : ARR( 0.162E-13, -1400., 0.0);
+{ 62897} G2G504J +PERO3              =  0.460G1G506b + 0.270GGN5027 + 0.270GGN502X                 : ARR( 0.488E-13, -1250., 0.0);
+{ 62898} G2G504J +PERO5              =  0.460G1G506b + 0.270GGN5027 + 0.270GGN502X                 : ARR( 0.183E-11,   450., 0.0);
+{ 62899} G2G504J +PERO6              =  0.300G1G506b + 0.350GGN5027 + 0.350GGN502X                 : ARR( 0.168E-13, -1300., 0.0);
+{ 62900} G2G504J +PERO9              =  0.650G1G506b + 0.350GGN502X                                : ARR( 0.100E-10,     0., 0.0);
+{ 62901} G1G506Z +OXYGEN             =       GGH5052 +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 62902} G1G506Z                     =       GGH400p +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7175., 0.0);
+{ 62903} G1G506a                     =       GND2000 +      GGD3002 +      GHO                     : ARR( 0.200E+15,  4553., 0.0);
+{ 62904} G1G506b                     =       GNN3005 +      GCO     +      GHO2    +      GCO      : ARR( 0.200E+15,  3266., 0.0);
+{ 62905} GGH503h +GHO                =       GGH503Z +      GHO                                    : ARR( 0.844E-11,     0., 0.0);
+{ 62906} GGH503h +GHO                =       GGH5031 +      GHO                                    : ARR( 0.257E-10,     0., 0.0);
+{ 62907} GGH503h +GHO                =       G2G504K                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 62908} GGH503h +GHO                =       G2G502G                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 62909} GGH503h +GHO                =       G3H503R                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 62910} GGH503h+HV               =       G1G506c +      GNO2                                   :  0.100E+01*SUN;
+{ 62911} GGH503h+HV               =       G1G5064 +      GHO                                    :  0.100E+01*SUN;
+{ 62912} GGH503h+HV               =       G1G5039 +      GHO                                    :  0.100E+01*SUN;
+{ 62913} GGH503h+HV               =       GHN400h +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 62914} G2G504K +GNO                =       G1G5064 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 62915} G2G504K +GNO                =       GGH503M                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 62916} G2G504K +GHO2               =       GGH503h                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 62917} G2G504K +GNO3               =       G1G5064 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 62918} G2G504K +MEPERO             =  0.340G1G5064 + 0.330GGH503l + 0.330GGH503Z                 : ARR( 0.565E-13,  -845., 0.0);
+{ 62919} G2G504K +PERO1              =  0.460G1G5064 + 0.270GGH503l + 0.270GGH503Z                 : ARR( 0.434E-13,  -900., 0.0);
+{ 62920} G2G504K +PERO2              =  0.400G1G5064 + 0.300GGH503l + 0.300GGH503Z                 : ARR( 0.162E-13, -1400., 0.0);
+{ 62921} G2G504K +PERO3              =  0.460G1G5064 + 0.270GGH503l + 0.270GGH503Z                 : ARR( 0.488E-13, -1250., 0.0);
+{ 62922} G2G504K +PERO5              =  0.460G1G5064 + 0.270GGH503l + 0.270GGH503Z                 : ARR( 0.183E-11,   450., 0.0);
+{ 62923} G2G504K +PERO6              =  0.300G1G5064 + 0.350GGH503l + 0.350GGH503Z                 : ARR( 0.168E-13, -1300., 0.0);
+{ 62924} G2G504K +PERO9              =  0.650G1G5064 + 0.350GGH503Z                                : ARR( 0.100E-10,     0., 0.0);
+{ 62925} G1G506c                     =       GCH2O   +      GGH400v +      GHO2                    : ARR( 0.200E+15,  5296., 0.0);
+{ 62926} G1G506c                     =       GDO2000 +      GGH3007 +      GHO                     : ARR( 0.200E+15,  4828., 0.0);
+{ 62927} GGH503i +GHO                =       GGN502O +      GHO                                    : ARR( 0.870E-11,     0., 0.0);
+{ 62928} GGH503i +GHO                =       GGH5031 +      GHO2                                   : ARR( 0.663E-11,     0., 0.0);
+{ 62929} GGH503i +GHO                =       G2G504L                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 62930} GGH503i +GHO                =       G3H503Y                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 62931} GGH503i+HV               =       G1G506d +      GNO2                                   :  0.100E+01*SUN;
+{ 62932} GGH503i+HV               =       G1G504f +      GHO                                    :  0.100E+01*SUN;
+{ 62933} GGH503i+HV               =       GHN400h +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 62934} G2G504L +GNO                =       G1G504f +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 62935} G2G504L +GNO                =       GGN501t                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 62936} G2G504L +GHO2               =       GGH503i                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 62937} G2G504L +GNO3               =       G1G504f +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 62938} G2G504L +MEPERO             =  0.340G1G504f + 0.330GGN501f + 0.330GGN502O                 : ARR( 0.565E-13,  -845., 0.0);
+{ 62939} G2G504L +PERO1              =  0.460G1G504f + 0.270GGN501f + 0.270GGN502O                 : ARR( 0.434E-13,  -900., 0.0);
+{ 62940} G2G504L +PERO2              =  0.400G1G504f + 0.300GGN501f + 0.300GGN502O                 : ARR( 0.162E-13, -1400., 0.0);
+{ 62941} G2G504L +PERO3              =  0.460G1G504f + 0.270GGN501f + 0.270GGN502O                 : ARR( 0.488E-13, -1250., 0.0);
+{ 62942} G2G504L +PERO5              =  0.460G1G504f + 0.270GGN501f + 0.270GGN502O                 : ARR( 0.183E-11,   450., 0.0);
+{ 62943} G2G504L +PERO6              =  0.300G1G504f + 0.350GGN501f + 0.350GGN502O                 : ARR( 0.168E-13, -1300., 0.0);
+{ 62944} G2G504L +PERO9              =  0.650G1G504f + 0.350GGN502O                                : ARR( 0.100E-10,     0., 0.0);
+{ 62945} G1G506d                     =       GCH2O   +      GGH400i +      GHO2                    : ARR( 0.200E+15,  5296., 0.0);
+{ 62946} G1G506d                     =       GDO2000 +      GGD3001 +      GHO                     : ARR( 0.200E+15,  4828., 0.0);
+{ 62947} GGH503j +GHO                =       GGH5052 +      GHO2                                   : ARR( 0.633E-11,     0., 0.0);
+{ 62948} GGH503j +GHO                =       GGN502p +      GHO                                    : ARR( 0.831E-11,     0., 0.0);
+{ 62949} GGH503j +GHO                =       G3G500z                                               : ARR( 0.419E-11,     0., 0.0);
+{ 62950} GGH503j +GHO                =       G3H503j                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 62951} GGH503j +GHO                =       G2G504M                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 62952} GGH503j +GNO3               =       G3G500z +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 62953} GGH503j+HV               =       GHN400y +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 62954} GGH503j+HV               =       G1G5066 +      GHO                                    :  0.100E+01*SUN;
+{ 62955} GGH503j+HV               =       G1G506e +      GNO2                                   :  0.100E+01*SUN;
+{ 62956} GGH503j+HV               =       GGH400i +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 62957} GGH503j+HV               =       GGH3006 +      GND2000                                :  0.100E+01*SUN;
+{ 62958} G3G500z +GHO2               =  0.800GGG500e + 0.200GAG501I + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 62959} G3G500z +GNO                =       GGH400i + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 62960} G3G500z +GNO2               =       GPG501I                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 62961} G3G500z +GNO3               =       GGH400i + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 62962} G3G500z +MEPERO             =  0.685GGH400i + 0.315GAG501I + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 62963} G3G500z +PERO1              =  0.800GGH400i + 0.200GAG501I + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 62964} G3G500z +PERO2              =  0.750GGH400i + 0.250GAG501I + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 62965} G3G500z +PERO3              =  0.800GGH400i + 0.200GAG501I + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 62966} G3G500z +PERO5              =  0.650GGH400i + 0.350GAG501I + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 62967} G3G500z +PERO6              =  0.650GGH400i + 0.350GAG501I + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 62968} G3G500z +PERO9              =       GGH400i +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 62969} G2G504M +GNO                =       G1G5066 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 62970} G2G504M +GNO                =       GGN502T                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 62971} G2G504M +GHO2               =       GGH503j                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 62972} G2G504M +GNO3               =       G1G5066 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 62973} G2G504M +MEPERO             =  0.340G1G5066 + 0.330GGN502c + 0.330GGN502p                 : ARR( 0.565E-13,  -845., 0.0);
+{ 62974} G2G504M +PERO1              =  0.460G1G5066 + 0.270GGN502c + 0.270GGN502p                 : ARR( 0.434E-13,  -900., 0.0);
+{ 62975} G2G504M +PERO2              =  0.400G1G5066 + 0.300GGN502c + 0.300GGN502p                 : ARR( 0.162E-13, -1400., 0.0);
+{ 62976} G2G504M +PERO3              =  0.460G1G5066 + 0.270GGN502c + 0.270GGN502p                 : ARR( 0.488E-13, -1250., 0.0);
+{ 62977} G2G504M +PERO5              =  0.460G1G5066 + 0.270GGN502c + 0.270GGN502p                 : ARR( 0.183E-11,   450., 0.0);
+{ 62978} G2G504M +PERO6              =  0.300G1G5066 + 0.350GGN502c + 0.350GGN502p                 : ARR( 0.168E-13, -1300., 0.0);
+{ 62979} G2G504M +PERO9              =  0.650G1G5066 + 0.350GGN502p                                : ARR( 0.100E-10,     0., 0.0);
+{ 62980} G1G506e                     =       GGD3001 +      GDD2000 +      GHO                     : ARR( 0.200E+15,  6241., 0.0);
+{ 62981} G1G506e                     =       GGH400i +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 62982} GGN502a +GHO                =       GGN502L +      GHO2                                   : ARR( 0.437E-12,     0., 0.0);
+{ 62983} GGN502a +GHO                =       G3N502d                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 62984} GGN502a+HV               =       G1G506f +      GNO2                                   :  0.100E+01*SUN;
+{ 62985} GGN502a+HV               =       G1G506g +      GNO2                                   :  0.100E+01*SUN;
+{ 62986} GGN502a+HV               =       G1G503C +      GNO2                                   :  0.100E+01*SUN;
+{ 62987} GGN502a+HV               =       GNN400T +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 62988} G1G506f +OXYGEN             =       GGN502m +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 62989} G1G506f                     =       GGN501g +      GNO2                                   : ARR( 0.800E+11,  4245., 0.0);
+{ 62990} G1G506f                     =       GGN400W +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7042., 0.0);
+{ 62991} G1G506g                     =       GND2000 +      GGN3005 +      GHO2                    : ARR( 0.200E+15,  3617., 0.0);
+{ 62992} GGH503k +GHO                =       GGH503Y +      GHO2                                   : ARR( 0.207E-11,     0., 0.0);
+{ 62993} GGH503k +GHO                =       GGN5027 +      GHO                                    : ARR( 0.253E-10,     0., 0.0);
+{ 62994} GGH503k +GHO                =       G2G502H                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 62995} GGH503k +GHO                =       G3H504O                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 62996} GGH503k+HV               =       G1G506h +      GNO2                                   :  0.100E+01*SUN;
+{ 62997} GGH503k+HV               =       G1G506i +      GNO2                                   :  0.100E+01*SUN;
+{ 62998} GGH503k+HV               =       G1G503C +      GHO                                    :  0.100E+01*SUN;
+{ 62999} GGH503k+HV               =       GNN400T +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 63000} G1G506h                     =       GGN501g +      GHO                                    : ARR( 0.800E+11,  1899., 0.0);
+{ 63001} G1G506i                     =       GND2000 +      GGH3007 +      GHO2                    : ARR( 0.200E+15,  3617., 0.0);
+{ 63002} GGN502b +GHO                =       GGN502N +      GHO2                                   : ARR( 0.211E-11,     0., 0.0);
+{ 63003} GGN502b +GHO                =       GGN5027 +      GHO2                                   : ARR( 0.645E-11,     0., 0.0);
+{ 63004} GGN502b +GHO                =       G3N502e                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 63005} GGN502b+HV               =       G1G506j +      GNO2                                   :  0.100E+01*SUN;
+{ 63006} GGN502b+HV               =       G1G506k +      GNO2                                   :  0.100E+01*SUN;
+{ 63007} GGN502b+HV               =       GNN400T +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 63008} G1G506j                     =       GGN501g +      GHO2                                   : ARR( 0.800E+11,  2246., 0.0);
+{ 63009} G1G506k                     =       GND2000 +      GGD3001 +      GHO2                    : ARR( 0.200E+15,  3617., 0.0);
+{ 63010} GGH503l +GHO                =       GGH503Z +      GHO2                                   : ARR( 0.213E-11,     0., 0.0);
+{ 63011} GGH503l +GHO                =       GGN501g +      GHO                                    : ARR( 0.260E-10,     0., 0.0);
+{ 63012} GGH503l +GHO                =       G2G502I                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 63013} GGH503l +GHO                =       G3H503W                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 63014} GGH503l+HV               =       G1G506l +      GNO2                                   :  0.100E+01*SUN;
+{ 63015} GGH503l+HV               =       G1G503D +      GHO                                    :  0.100E+01*SUN;
+{ 63016} GGH503l+HV               =       GND4009 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 63017} G1G506l                     =       GDO2000 +      GGH3007 +      GHO2                    : ARR( 0.200E+15,  3619., 0.0);
+{ 63018} GGN502c +GHO                =       GGN502i +      GHO2                                   : ARR( 0.642E-11,     0., 0.0);
+{ 63019} GGN502c +GHO                =       GGN502p +      GHO2                                   : ARR( 0.211E-11,     0., 0.0);
+{ 63020} GGN502c +GHO                =       G3G5011                                               : ARR( 0.425E-11,     0., 0.0);
+{ 63021} GGN502c +GHO                =       G3N502K                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 63022} GGN502c +GNO3               =       G3G5011 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 63023} GGN502c+HV               =       GND400J +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 63024} GGN502c+HV               =       G1G506m +      GNO2                                   :  0.100E+01*SUN;
+{ 63025} GGN502c+HV               =       GGD4006 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 63026} GGN502c+HV               =       GGK3001 +      GND2000                                :  0.100E+01*SUN;
+{ 63027} G3G5011 +GHO2               =  0.800GGG500f + 0.200GAG501J + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 63028} G3G5011 +GNO                =       GGD4006 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 63029} G3G5011 +GNO2               =       GPG501J                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 63030} G3G5011 +GNO3               =       GGD4006 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 63031} G3G5011 +MEPERO             =  0.685GGD4006 + 0.315GAG501J + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63032} G3G5011 +PERO1              =  0.800GGD4006 + 0.200GAG501J + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63033} G3G5011 +PERO2              =  0.750GGD4006 + 0.250GAG501J + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63034} G3G5011 +PERO3              =  0.800GGD4006 + 0.200GAG501J + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63035} G3G5011 +PERO5              =  0.650GGD4006 + 0.350GAG501J + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63036} G3G5011 +PERO6              =  0.650GGD4006 + 0.350GAG501J + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63037} G3G5011 +PERO9              =       GGD4006 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 63038} G1G506m                     =       GGD3001 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  5032., 0.0);
+{ 63039} G1G506m                     =       GGD4006 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 63040} GHH502y +GHO                =       GHD500w +      GHO                                    : ARR( 0.829E-10,     0., 0.0);
+{ 63041} GHH502y +GHO                =       GHD500z +      GHO                                    : ARR( 0.829E-10,     0., 0.0);
+{ 63042} GHH502y +GHO                =       G3H504A                                               : ARR( 0.216E-10,     0., 0.0);
+{ 63043} GHH502y +GNO3               =       G3H504A +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 63044} GHH502y+HV               =       G3K2000 +      GHD3004 +      GHO                     :  0.100E+01*SUN;
+{ 63045} GHH502y+HV               =       G1H507u +      GHO                                    :  0.100E+01*SUN;
+{ 63046} GHH502y+HV               =       G1H507m +      GHO                                    :  0.100E+01*SUN;
+{ 63047} GHH502y+HV               =       GHD4007 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 63048} GGH503m +GHO                =       GGN501w +      GHO                                    : ARR( 0.689E-11,     0., 0.0);
+{ 63049} GGH503m +GHO                =       GGH502Q +      GHO2                                   : ARR( 0.129E-11,     0., 0.0);
+{ 63050} GGH503m +GHO                =       G2G504N                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 63051} GGH503m +GHO                =       G3H5035                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 63052} GGH503m+HV               =       G1G504a +      GHO                                    :  0.100E+01*SUN;
+{ 63053} GGH503m+HV               =       G1G506n +      GNO2                                   :  0.100E+01*SUN;
+{ 63054} GGH503m+HV               =       GHN400p +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 63055} G2G504N +GNO                =       G1G504a +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 63056} G2G504N +GNO                =       GGN501r                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 63057} G2G504N +GHO2               =       GGH503m                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 63058} G2G504N +GNO3               =       G1G504a +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 63059} G2G504N +MEPERO             =  0.340G1G504a + 0.330GGN500g + 0.330GGN501w                 : ARR( 0.565E-13,  -845., 0.0);
+{ 63060} G2G504N +PERO1              =  0.460G1G504a + 0.270GGN500g + 0.270GGN501w                 : ARR( 0.434E-13,  -900., 0.0);
+{ 63061} G2G504N +PERO2              =  0.400G1G504a + 0.300GGN500g + 0.300GGN501w                 : ARR( 0.162E-13, -1400., 0.0);
+{ 63062} G2G504N +PERO3              =  0.460G1G504a + 0.270GGN500g + 0.270GGN501w                 : ARR( 0.488E-13, -1250., 0.0);
+{ 63063} G2G504N +PERO5              =  0.460G1G504a + 0.270GGN500g + 0.270GGN501w                 : ARR( 0.183E-11,   450., 0.0);
+{ 63064} G2G504N +PERO6              =  0.300G1G504a + 0.350GGN500g + 0.350GGN501w                 : ARR( 0.168E-13, -1300., 0.0);
+{ 63065} G2G504N +PERO9              =  0.650G1G504a + 0.350GGN501w                                : ARR( 0.100E-10,     0., 0.0);
+{ 63066} G1G506n                     =       GD02000 +      GGD3001 +      GHO                     : ARR( 0.200E+15,  4341., 0.0);
+{ 63067} G1G506n                     =       GHD3002 +      GGD2000 +      GHO2                    : ARR( 0.200E+15,  3929., 0.0);
+{ 63068} GGH503n +GHO                =       GGH502M +      GHO                                    : ARR( 0.381E-10,     0., 0.0);
+{ 63069} GGH503n +GHO                =       GGH502C +      GHO                                    : ARR( 0.469E-10,     0., 0.0);
+{ 63070} GGH503n +GHO                =       GGH502R +      GHO2                                   : ARR( 0.714E-11,     0., 0.0);
+{ 63071} GGH503n+HV               =       G1G504I +      GHO                                    :  0.100E+01*SUN;
+{ 63072} GGH503n+HV               =       G1G506n +      GHO                                    :  0.100E+01*SUN;
+{ 63073} GGH503n+HV               =       GHH400M +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 63074} GAH5046 +GHO                =       GAH502b +      GHO                                    : ARR( 0.369E-10,     0., 0.0);
+{ 63075} GAH5046 +GHO                =       GAH502Q +      GHO                                    : ARR( 0.454E-10,     0., 0.0);
+{ 63076} GAH5046 +GHO                =       GAH502i +      GHO2                                   : ARR( 0.512E-11,     0., 0.0);
+{ 63077} GAH5046+HV               =       G1A507S +      GHO                                    :  0.100E+01*SUN;
+{ 63078} GAH5046+HV               =       G1A5057 +      GHO                                    :  0.100E+01*SUN;
+{ 63079} GPH504D                     =       G3H5036 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 63080} GPH504D +GHO                =       GPH502m +      GHO                                    : ARR( 0.366E-10,     0., 0.0);
+{ 63081} GPH504D +GHO                =       GPH502Y +      GHO                                    : ARR( 0.450E-10,     0., 0.0);
+{ 63082} GPH504D +GHO                =       GPH502q +      GHO2                                   : ARR( 0.686E-11,     0., 0.0);
+{ 63083} GPH504D+HV               =       G1P506D +      GHO                                    :  0.100E+01*SUN;
+{ 63084} GPH504D+HV               =       G1P505W +      GHO                                    :  0.100E+01*SUN;
+{ 63085} GPH504D+HV               =       G3H5036 +      GNO2                                   :  0.100E+01*SUN;
+{ 63086} GGN502d +GHO                =       GGN502l +      GHO2                                   : ARR( 0.253E-11,     0., 0.0);
+{ 63087} GGN502d +GHO                =       G3N502F                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 63088} GGN502d+HV               =       G3K2001 +      G3G3001                                :  0.100E+01*SUN;
+{ 63089} GGN502d+HV               =       G1G5042 +      GNO2                                   :  0.100E+01*SUN;
+{ 63090} GGN502d+HV               =       GDK4009 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 63091} GGH503o +GHO                =       GGH5047 +      GHO                                    : ARR( 0.483E-10,     0., 0.0);
+{ 63092} GGH503o +GHO                =       GGH505J +      GHO                                    : ARR( 0.483E-10,     0., 0.0);
+{ 63093} GGH503o +GHO                =       GGH5032 +      GHO                                    : ARR( 0.295E-10,     0., 0.0);
+{ 63094} GGH503o+HV               =       G1G506c +      GHO                                    :  0.100E+01*SUN;
+{ 63095} GGH503o+HV               =       G1G506F +      GHO                                    :  0.100E+01*SUN;
+{ 63096} GGH503o+HV               =       G1G503Q +      GHO                                    :  0.100E+01*SUN;
+{ 63097} GGH503o+HV               =       GHH4009 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 63098} GGH503p +GHO                =       GGH502X +      GHO                                    : ARR( 0.482E-10,     0., 0.0);
+{ 63099} GGH503p +GHO                =       GGH503w +      GHO                                    : ARR( 0.482E-10,     0., 0.0);
+{ 63100} GGH503p +GHO                =       GGH5032 +      GHO2                                   : ARR( 0.735E-11,     0., 0.0);
+{ 63101} GGH503p+HV               =       G1G506d +      GHO                                    :  0.100E+01*SUN;
+{ 63102} GGH503p+HV               =       G1G506G +      GHO                                    :  0.100E+01*SUN;
+{ 63103} GGH503p+HV               =       GHH4009 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 63104} GGH503q +GHO                =       GGH503v +      GHO                                    : ARR( 0.143E-09,     0., 0.0);
+{ 63105} GGH503q +GHO                =       GGH504O +      GHO                                    : ARR( 0.276E-10,     0., 0.0);
+{ 63106} GGH503q +GHO                =       G3G5012                                               : ARR( 0.228E-10,     0., 0.0);
+{ 63107} GGH503q +GNO3               =       G3G5012 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 63108} GGH503q+HV               =       GHH400r +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 63109} GGH503q+HV               =       G1G503T +      GHO                                    :  0.100E+01*SUN;
+{ 63110} GGH503q+HV               =       G1G506e +      GHO                                    :  0.100E+01*SUN;
+{ 63111} GGH503q+HV               =       GGH400i +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 63112} G3G5012 +GHO2               =  0.800GGG500g + 0.200GAG501K + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 63113} G3G5012 +GNO                =       GGH400i +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 63114} G3G5012 +GNO2               =       GPG501K                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 63115} G3G5012 +GNO3               =       GGH400i +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 63116} G3G5012 +MEPERO             =  0.685GGH400i + 0.315GAG501K + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63117} G3G5012 +PERO1              =  0.800GGH400i + 0.200GAG501K + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63118} G3G5012 +PERO2              =  0.750GGH400i + 0.250GAG501K + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63119} G3G5012 +PERO3              =  0.800GGH400i + 0.200GAG501K + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63120} G3G5012 +PERO5              =  0.650GGH400i + 0.350GAG501K + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63121} G3G5012 +PERO6              =  0.650GGH400i + 0.350GAG501K + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63122} G3G5012 +PERO9              =       GGH400i +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 63123} GHH502z +GHO                =       GHH5032 +      GHO2                                   : ARR( 0.135E-10,     0., 0.0);
+{ 63124} GHH502z +GHO                =       GHD501H +      GHO                                    : ARR( 0.267E-10,     0., 0.0);
+{ 63125} GHH502z +GHO                =       GHD501N +      GHO                                    : ARR( 0.163E-10,     0., 0.0);
+{ 63126} GHH502z +GHO                =       G3H504v                                               : ARR( 0.699E-10,     0., 0.0);
+{ 63127} GHH502z +GNO3               =       G3H504v +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 63128} GHH502z+HV               =       G1H50AF +      GHO                                    :  0.100E+01*SUN;
+{ 63129} GHH502z+HV               =       G3H3004 +      GDD2000 +      GHO                     :  0.100E+01*SUN;
+{ 63130} GHH502z+HV               =       G1H50Bk +      GHO                                    :  0.100E+01*SUN;
+{ 63131} GHH502z+HV               =       GHD400M +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 63132} G3H504v +GHO2               =  0.800GGH505J + 0.200GAH505J + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 63133} G3H504v +GNO                =       GHD400M +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 63134} G3H504v +GNO2               =       GPH505Q                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 63135} G3H504v +GNO3               =       GHD400M +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 63136} G3H504v +MEPERO             =  0.685GHD400M + 0.315GAH505J + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63137} G3H504v +PERO1              =  0.800GHD400M + 0.200GAH505J + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63138} G3H504v +PERO2              =  0.750GHD400M + 0.250GAH505J + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63139} G3H504v +PERO3              =  0.800GHD400M + 0.200GAH505J + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63140} G3H504v +PERO5              =  0.650GHD400M + 0.350GAH505J + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63141} G3H504v +PERO6              =  0.650GHD400M + 0.350GAH505J + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63142} G3H504v +PERO9              =       GHD400M +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 63143} GGH503r +GHO                =       GGH504N +      GHO                                    : ARR( 0.276E-10,     0., 0.0);
+{ 63144} GGH503r +GHO                =       GGH503x +      GHO                                    : ARR( 0.143E-09,     0., 0.0);
+{ 63145} GGH503r +GHO                =       G3G5013                                               : ARR( 0.228E-10,     0., 0.0);
+{ 63146} GGH503r +GNO3               =       G3G5013 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 63147} GGH503r+HV               =       GHD400L +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 63148} GGH503r+HV               =       G1G506o +      GHO                                    :  0.100E+01*SUN;
+{ 63149} GGH503r+HV               =       G1G503U +      GHO                                    :  0.100E+01*SUN;
+{ 63150} GGH503r+HV               =       GGH400v +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 63151} G3G5013 +GHO2               =  0.800GGG500g + 0.200GAG501E + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 63152} G3G5013 +GNO                =       GGH400v +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 63153} G3G5013 +GNO2               =       GPG501D                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 63154} G3G5013 +GNO3               =       GGH400v +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 63155} G3G5013 +MEPERO             =  0.685GGH400v + 0.315GAG501E + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63156} G3G5013 +PERO1              =  0.800GGH400v + 0.200GAG501E + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63157} G3G5013 +PERO2              =  0.750GGH400v + 0.250GAG501E + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63158} G3G5013 +PERO3              =  0.800GGH400v + 0.200GAG501E + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63159} G3G5013 +PERO5              =  0.650GGH400v + 0.350GAG501E + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63160} G3G5013 +PERO6              =  0.650GGH400v + 0.350GAG501E + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63161} G3G5013 +PERO9              =       GGH400v +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 63162} G1G506o                     =       GCO     +      GHD400L +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 63163} GAH5047 +GHO                =       GAH504X +      GHO                                    : ARR( 0.201E-10,     0., 0.0);
+{ 63164} GAH5047 +GHO                =       GAH504A +      GHO                                    : ARR( 0.142E-09,     0., 0.0);
+{ 63165} GAH5047 +GHO                =       G3A5019                                               : ARR( 0.225E-10,     0., 0.0);
+{ 63166} GAH5047 +GNO3               =       G3A5019 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 63167} GAH5047+HV               =       G1A507T +      GHO                                    :  0.100E+01*SUN;
+{ 63168} GAH5047+HV               =       G1A504Q +      GHO                                    :  0.100E+01*SUN;
+{ 63169} GAH5047+HV               =       GAH400w +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 63170} G3A5019 +GHO2               =  0.800GAG501K + 0.200GAA500l + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 63171} G3A5019 +GNO                =       GAH400w +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 63172} G3A5019 +GNO2               =       GPA501P                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 63173} G3A5019 +GNO3               =       GAH400w +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 63174} G3A5019 +MEPERO             =  0.685GAH400w + 0.315GAA500l + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63175} G3A5019 +PERO1              =  0.800GAH400w + 0.200GAA500l + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63176} G3A5019 +PERO2              =  0.750GAH400w + 0.250GAA500l + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63177} G3A5019 +PERO3              =  0.800GAH400w + 0.200GAA500l + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63178} G3A5019 +PERO5              =  0.650GAH400w + 0.350GAA500l + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63179} G3A5019 +PERO6              =  0.650GAH400w + 0.350GAA500l + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63180} G3A5019 +PERO9              =       GAH400w +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 63181} G1A507T                     =       GCO     +      GHD400L +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 63182} GPH504E                     =       G3H503B +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 63183} GPH504E +GHO                =       GPH504X +      GHO                                    : ARR( 0.271E-10,     0., 0.0);
+{ 63184} GPH504E +GHO                =       GPH504H +      GHO                                    : ARR( 0.141E-09,     0., 0.0);
+{ 63185} GPH504E +GHO                =       G3P5017                                               : ARR( 0.224E-10,     0., 0.0);
+{ 63186} GPH504E +GNO3               =       G3P5017 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 63187} GPH504E+HV               =       G3H503B +      GNO2                                   :  0.100E+01*SUN;
+{ 63188} GPH504E+HV               =       G1P5087 +      GHO                                    :  0.100E+01*SUN;
+{ 63189} GPH504E+HV               =       G1P504b +      GHO                                    :  0.100E+01*SUN;
+{ 63190} GPH504E+HV               =       GPH400w +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 63191} G3P5017 +GHO2               =  0.800GPG501K + 0.200GPA501J + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 63192} G3P5017 +GNO                =       GPH400w +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 63193} G3P5017 +GNO2               =       GPP500g                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 63194} G3P5017 +GNO3               =       GPH400w +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 63195} G3P5017 +MEPERO             =  0.685GPH400w + 0.315GPA501J + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63196} G3P5017 +PERO1              =  0.800GPH400w + 0.200GPA501J + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63197} G3P5017 +PERO2              =  0.750GPH400w + 0.250GPA501J + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63198} G3P5017 +PERO3              =  0.800GPH400w + 0.200GPA501J + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63199} G3P5017 +PERO5              =  0.650GPH400w + 0.350GPA501J + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63200} G3P5017 +PERO6              =  0.650GPH400w + 0.350GPA501J + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63201} G3P5017 +PERO9              =       GPH400w +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 63202} G1P5087                     =       GCO     +      GHD400L +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 63203} GGH503s +GHO                =       GGH5049 +      GHO                                    : ARR( 0.493E-10,     0., 0.0);
+{ 63204} GGH503s +GHO                =       GGH505J +      GHO2                                   : ARR( 0.123E-10,     0., 0.0);
+{ 63205} GGH503s +GHO                =       GGH5027 +      GHO                                    : ARR( 0.301E-10,     0., 0.0);
+{ 63206} GGH503s+HV               =       G1G506l +      GHO                                    :  0.100E+01*SUN;
+{ 63207} GGH503s+HV               =       G1G503S +      GHO                                    :  0.100E+01*SUN;
+{ 63208} GGH503s+HV               =       GHD4009 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 63209} GGH503t +GHO                =       GGH504h +      GHO2                                   : ARR( 0.684E-11,     0., 0.0);
+{ 63210} GGH503t +GHO                =       GGH503v +      GHO2                                   : ARR( 0.355E-10,     0., 0.0);
+{ 63211} GGH503t +GHO                =       GGD500L +      GHO                                    : ARR( 0.273E-10,     0., 0.0);
+{ 63212} GGH503t +GHO                =       G3G5014                                               : ARR( 0.226E-10,     0., 0.0);
+{ 63213} GGH503t +GNO3               =       G3G5014 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 63214} GGH503t+HV               =       GHD400L +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 63215} GGH503t+HV               =       G1G506m +      GHO                                    :  0.100E+01*SUN;
+{ 63216} GGH503t+HV               =       GGD4006 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 63217} G3G5014 +GHO2               =  0.800GGG500h + 0.200GAG501L + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 63218} G3G5014 +GNO                =       GGD4006 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 63219} G3G5014 +GNO2               =       GPG501L                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 63220} G3G5014 +GNO3               =       GGD4006 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 63221} G3G5014 +MEPERO             =  0.685GGD4006 + 0.315GAG501L + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63222} G3G5014 +PERO1              =  0.800GGD4006 + 0.200GAG501L + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63223} G3G5014 +PERO2              =  0.750GGD4006 + 0.250GAG501L + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63224} G3G5014 +PERO3              =  0.800GGD4006 + 0.200GAG501L + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63225} G3G5014 +PERO5              =  0.650GGD4006 + 0.350GAG501L + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63226} G3G5014 +PERO6              =  0.650GGD4006 + 0.350GAG501L + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63227} G3G5014 +PERO9              =       GGD4006 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 63228} GGH503u +GHO                =       GGD500K +      GHO                                    : ARR( 0.273E-10,     0., 0.0);
+{ 63229} GGH503u +GHO                =       GGH503x +      GHO2                                   : ARR( 0.355E-10,     0., 0.0);
+{ 63230} GGH503u +GHO                =       GGH5059 +      GHO2                                   : ARR( 0.684E-11,     0., 0.0);
+{ 63231} GGH503u +GHO                =       G3G5015                                               : ARR( 0.226E-10,     0., 0.0);
+{ 63232} GGH503u +GNO3               =       G3G5015 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 63233} GGH503u+HV               =       GDD4003 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 63234} GGH503u+HV               =       G1G506p +      GHO                                    :  0.100E+01*SUN;
+{ 63235} GGH503u+HV               =       GGH400g +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 63236} G3G5015 +GHO2               =  0.800GGG500h + 0.200GAG501F + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 63237} G3G5015 +GNO                =       GGH400g +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 63238} G3G5015 +GNO2               =       GPG501E                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 63239} G3G5015 +GNO3               =       GGH400g +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 63240} G3G5015 +MEPERO             =  0.685GGH400g + 0.315GAG501F + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63241} G3G5015 +PERO1              =  0.800GGH400g + 0.200GAG501F + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63242} G3G5015 +PERO2              =  0.750GGH400g + 0.250GAG501F + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63243} G3G5015 +PERO3              =  0.800GGH400g + 0.200GAG501F + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63244} G3G5015 +PERO5              =  0.650GGH400g + 0.350GAG501F + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63245} G3G5015 +PERO6              =  0.650GGH400g + 0.350GAG501F + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63246} G3G5015 +PERO9              =       GGH400g +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 63247} G1G506p                     =       GCO     +      GDD4003 +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 63248} G1G506p                     =       GGD2000 +      GDD3001 +      GHO2                    : ARR( 0.200E+15,  5475., 0.0);
+{ 63249} GAH5048 +GHO                =       GAD500N +      GHO                                    : ARR( 0.196E-10,     0., 0.0);
+{ 63250} GAH5048 +GHO                =       GAH504A +      GHO2                                   : ARR( 0.345E-10,     0., 0.0);
+{ 63251} GAH5048 +GHO                =       GAH505H +      GHO2                                   : ARR( 0.663E-11,     0., 0.0);
+{ 63252} GAH5048 +GHO                =       G3A501A                                               : ARR( 0.219E-10,     0., 0.0);
+{ 63253} GAH5048 +GNO3               =       G3A501A +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 63254} GAH5048+HV               =       G1A507U +      GHO                                    :  0.100E+01*SUN;
+{ 63255} GAH5048+HV               =       GAH400k +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 63256} G3A501A +GHO2               =  0.800GAG501L + 0.200GAA500m + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 63257} G3A501A +GNO                =       GAH400k +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 63258} G3A501A +GNO2               =       GPA501Q                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 63259} G3A501A +GNO3               =       GAH400k +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 63260} G3A501A +MEPERO             =  0.685GAH400k + 0.315GAA500m + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63261} G3A501A +PERO1              =  0.800GAH400k + 0.200GAA500m + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63262} G3A501A +PERO2              =  0.750GAH400k + 0.250GAA500m + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63263} G3A501A +PERO3              =  0.800GAH400k + 0.200GAA500m + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63264} G3A501A +PERO5              =  0.650GAH400k + 0.350GAA500m + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63265} G3A501A +PERO6              =  0.650GAH400k + 0.350GAA500m + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63266} G3A501A +PERO9              =       GAH400k +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 63267} G1A507U                     =       GCO     +      GDD4003 +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 63268} G1A507U                     =       GAD2000 +      GDD3001 +      GHO2                    : ARR( 0.200E+15,  5475., 0.0);
+{ 63269} GPH504F                     =       G3H503F +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 63270} GPH504F +GHO                =       GPD500K +      GHO                                    : ARR( 0.263E-10,     0., 0.0);
+{ 63271} GPH504F +GHO                =       GPH504H +      GHO2                                   : ARR( 0.342E-10,     0., 0.0);
+{ 63272} GPH504F +GHO                =       GPH505O +      GHO2                                   : ARR( 0.657E-11,     0., 0.0);
+{ 63273} GPH504F +GHO                =       G3P5018                                               : ARR( 0.217E-10,     0., 0.0);
+{ 63274} GPH504F +GNO3               =       G3P5018 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 63275} GPH504F+HV               =       G3H503F +      GNO2                                   :  0.100E+01*SUN;
+{ 63276} GPH504F+HV               =       G1P5088 +      GHO                                    :  0.100E+01*SUN;
+{ 63277} GPH504F+HV               =       GPH400l +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 63278} G3P5018 +GHO2               =  0.800GPG501L + 0.200GPA501E + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 63279} G3P5018 +GNO                =       GPH400l +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 63280} G3P5018 +GNO2               =       GPP500h                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 63281} G3P5018 +GNO3               =       GPH400l +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 63282} G3P5018 +MEPERO             =  0.685GPH400l + 0.315GPA501E + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63283} G3P5018 +PERO1              =  0.800GPH400l + 0.200GPA501E + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63284} G3P5018 +PERO2              =  0.750GPH400l + 0.250GPA501E + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63285} G3P5018 +PERO3              =  0.800GPH400l + 0.200GPA501E + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63286} G3P5018 +PERO5              =  0.650GPH400l + 0.350GPA501E + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63287} G3P5018 +PERO6              =  0.650GPH400l + 0.350GPA501E + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63288} G3P5018 +PERO9              =       GPH400l +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 63289} G1P5088                     =       GCO     +      GDD4003 +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 63290} G1P5088                     =       GPD2000 +      GDD3001 +      GHO2                    : ARR( 0.200E+15,  5475., 0.0);
+{ 63291} GGH503v +GHO                =       GGD500M +      GHO                                    : ARR( 0.174E-10,     0., 0.0);
+{ 63292} GGH503v +GHO                =       G3G5016                                               : ARR( 0.749E-10,     0., 0.0);
+{ 63293} GGH503v +GNO3               =       G3G5016 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 63294} GGH503v+HV               =  0.500GHD400K + 0.500GHO                                    :  0.100E+01*SUN;
+{ 63295} GGH503v+HV               =       G3G3002 +      GDD2000 +      GHO                     :  0.100E+01*SUN;
+{ 63296} GGH503v+HV               =       G1G506q +      GHO                                    :  0.100E+01*SUN;
+{ 63297} GGH503v+HV               =       GGD4007 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 63298} G3G5016 +GHO2               =  0.800GGG500i + 0.200GAG501M + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 63299} G3G5016 +GNO                =       GGD4007 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 63300} G3G5016 +GNO2               =       GPG500i                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 63301} G3G5016 +GNO3               =       GGD4007 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 63302} G3G5016 +MEPERO             =  0.685GGD4007 + 0.315GAG501M + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63303} G3G5016 +PERO1              =  0.800GGD4007 + 0.200GAG501M + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63304} G3G5016 +PERO2              =  0.750GGD4007 + 0.250GAG501M + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63305} G3G5016 +PERO3              =  0.800GGD4007 + 0.200GAG501M + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63306} G3G5016 +PERO5              =  0.650GGD4007 + 0.350GAG501M + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63307} G3G5016 +PERO6              =  0.650GGD4007 + 0.350GAG501M + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63308} G3G5016 +PERO9              =       GGD4007 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 63309} G1G506q                     =       G3G3002 +      GDD2000                                : ARR( 0.200E+15,  5662., 0.0);
+{ 63310} GGH503w +GHO                =       GGH503v +      GHO2                                   : ARR( 0.128E-10,     0., 0.0);
+{ 63311} GGH503w +GHO                =       GGK500a +      GHO                                    : ARR( 0.253E-10,     0., 0.0);
+{ 63312} GGH503w +GHO                =       GGH504j +      GHO2                                   : ARR( 0.385E-11,     0., 0.0);
+{ 63313} GGH503w +GHO                =       G2G504O                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 63314} GGH503w +GHO                =       G3H503G                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 63315} GGH503w+HV               =       G1G505s +      GHO                                    :  0.100E+01*SUN;
+{ 63316} GGH503w+HV               =       G3H3004 +      GGD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 63317} GGH503w+HV               =       GHD400M +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 63318} G2G504O +GNO                =       G1G505s +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 63319} G2G504O +GNO                =       GGN502O                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 63320} G2G504O +GHO2               =       GGH503w                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 63321} G2G504O +GNO3               =       G1G505s +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 63322} G2G504O +MEPERO             =  0.340G1G505s + 0.330GGK500M + 0.330GGK500a                 : ARR( 0.565E-13,  -845., 0.0);
+{ 63323} G2G504O +PERO1              =  0.460G1G505s + 0.270GGK500M + 0.270GGK500a                 : ARR( 0.434E-13,  -900., 0.0);
+{ 63324} G2G504O +PERO2              =  0.400G1G505s + 0.300GGK500M + 0.300GGK500a                 : ARR( 0.162E-13, -1400., 0.0);
+{ 63325} G2G504O +PERO3              =  0.460G1G505s + 0.270GGK500M + 0.270GGK500a                 : ARR( 0.488E-13, -1250., 0.0);
+{ 63326} G2G504O +PERO5              =  0.460G1G505s + 0.270GGK500M + 0.270GGK500a                 : ARR( 0.183E-11,   450., 0.0);
+{ 63327} G2G504O +PERO6              =  0.300G1G505s + 0.350GGK500M + 0.350GGK500a                 : ARR( 0.168E-13, -1300., 0.0);
+{ 63328} G2G504O +PERO9              =  0.650G1G505s + 0.350GGK500a                                : ARR( 0.100E-10,     0., 0.0);
+{ 63329} GAH5049 +GHO                =       GAH503q +      GHO2                                   : ARR( 0.130E-10,     0., 0.0);
+{ 63330} GAH5049 +GHO                =       GAK500a +      GHO                                    : ARR( 0.256E-10,     0., 0.0);
+{ 63331} GAH5049 +GHO                =       GAH502W +      GHO2                                   : ARR( 0.289E-11,     0., 0.0);
+{ 63332} GAH5049 +GHO                =       G2A505H                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 63333} GAH5049+HV               =       G1A506k +      GHO                                    :  0.100E+01*SUN;
+{ 63334} GAH5049+HV               =       G3H3004 +      GAD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 63335} G2A505H +GNO                =       G1A506k +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 63336} G2A505H +GNO                =       GAN502Z                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 63337} G2A505H +GHO2               =       GAH5049                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 63338} G2A505H +GNO3               =       G1A506k +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 63339} G2A505H +MEPERO             =  0.340G1A506k + 0.330GAK500L + 0.330GAK500a                 : ARR( 0.565E-13,  -845., 0.0);
+{ 63340} G2A505H +PERO1              =  0.460G1A506k + 0.270GAK500L + 0.270GAK500a                 : ARR( 0.434E-13,  -900., 0.0);
+{ 63341} G2A505H +PERO2              =  0.400G1A506k + 0.300GAK500L + 0.300GAK500a                 : ARR( 0.162E-13, -1400., 0.0);
+{ 63342} G2A505H +PERO3              =  0.460G1A506k + 0.270GAK500L + 0.270GAK500a                 : ARR( 0.488E-13, -1250., 0.0);
+{ 63343} G2A505H +PERO5              =  0.460G1A506k + 0.270GAK500L + 0.270GAK500a                 : ARR( 0.183E-11,   450., 0.0);
+{ 63344} G2A505H +PERO6              =  0.300G1A506k + 0.350GAK500L + 0.350GAK500a                 : ARR( 0.168E-13, -1300., 0.0);
+{ 63345} G2A505H +PERO9              =  0.650G1A506k + 0.350GAK500a                                : ARR( 0.100E-10,     0., 0.0);
+{ 63346} GPH504G                     =       G3H503G +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 63347} GPH504G +GHO                =       GPH503x +      GHO2                                   : ARR( 0.128E-10,     0., 0.0);
+{ 63348} GPH504G +GHO                =       GPK500c +      GHO                                    : ARR( 0.253E-10,     0., 0.0);
+{ 63349} GPH504G +GHO                =       GPH502d +      GHO2                                   : ARR( 0.385E-11,     0., 0.0);
+{ 63350} GPH504G +GHO                =       G2P505k                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 63351} GPH504G+HV               =       G1P505z +      GHO                                    :  0.100E+01*SUN;
+{ 63352} GPH504G+HV               =       G3H3004 +      GPD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 63353} GPH504G+HV               =       G3H503G +      GNO2                                   :  0.100E+01*SUN;
+{ 63354} G2P505k +GNO                =       G1P505z +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 63355} G2P505k +GNO                =       GPN5026                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 63356} G2P505k +GHO2               =       GPH504G                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 63357} G2P505k +GNO3               =       G1P505z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 63358} G2P505k +MEPERO             =  0.340G1P505z + 0.330GPK500M + 0.330GPK500c                 : ARR( 0.565E-13,  -845., 0.0);
+{ 63359} G2P505k +PERO1              =  0.460G1P505z + 0.270GPK500M + 0.270GPK500c                 : ARR( 0.434E-13,  -900., 0.0);
+{ 63360} G2P505k +PERO2              =  0.400G1P505z + 0.300GPK500M + 0.300GPK500c                 : ARR( 0.162E-13, -1400., 0.0);
+{ 63361} G2P505k +PERO3              =  0.460G1P505z + 0.270GPK500M + 0.270GPK500c                 : ARR( 0.488E-13, -1250., 0.0);
+{ 63362} G2P505k +PERO5              =  0.460G1P505z + 0.270GPK500M + 0.270GPK500c                 : ARR( 0.183E-11,   450., 0.0);
+{ 63363} G2P505k +PERO6              =  0.300G1P505z + 0.350GPK500M + 0.350GPK500c                 : ARR( 0.168E-13, -1300., 0.0);
+{ 63364} G2P505k +PERO9              =  0.650G1P505z + 0.350GPK500c                                : ARR( 0.100E-10,     0., 0.0);
+{ 63365} GGH503x +GHO                =       GGD500H +      GHO                                    : ARR( 0.174E-10,     0., 0.0);
+{ 63366} GGH503x +GHO                =       G3G5017                                               : ARR( 0.749E-10,     0., 0.0);
+{ 63367} GGH503x +GNO3               =       G3G5017 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 63368} GGH503x+HV               =       GDD4004 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 63369} GGH503x+HV               =       G1G504j +      GHO                                    :  0.100E+01*SUN;
+{ 63370} GGH503x+HV               =       G3G3003 +      GDD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 63371} GGH503x+HV               =       GGH400s +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 63372} G3G5017 +GHO2               =  0.800GGG500i + 0.200GAG500i + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 63373} G3G5017 +GNO                =       GGH400s +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 63374} G3G5017 +GNO2               =       GPG500l                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 63375} G3G5017 +GNO3               =       GGH400s +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 63376} G3G5017 +MEPERO             =  0.685GGH400s + 0.315GAG500i + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63377} G3G5017 +PERO1              =  0.800GGH400s + 0.200GAG500i + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63378} G3G5017 +PERO2              =  0.750GGH400s + 0.250GAG500i + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63379} G3G5017 +PERO3              =  0.800GGH400s + 0.200GAG500i + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63380} G3G5017 +PERO5              =  0.650GGH400s + 0.350GAG500i + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63381} G3G5017 +PERO6              =  0.650GGH400s + 0.350GAG500i + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63382} G3G5017 +PERO9              =       GGH400s +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 63383} GAH504A +GHO                =       GAD500J +      GHO                                    : ARR( 0.125E-10,     0., 0.0);
+{ 63384} GAH504A +GHO                =       G3A501B                                               : ARR( 0.728E-10,     0., 0.0);
+{ 63385} GAH504A +GNO3               =       G3A501B +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 63386} GAH504A+HV               =       G1A505r +      GHO                                    :  0.100E+01*SUN;
+{ 63387} GAH504A+HV               =       G3A3003 +      GDD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 63388} GAH504A+HV               =       GAH400u +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 63389} G3A501B +GHO2               =  0.800GAG501M + 0.200GAA500W + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 63390} G3A501B +GNO                =       GAH400u +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 63391} G3A501B +GNO2               =       GPA500u                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 63392} G3A501B +GNO3               =       GAH400u +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 63393} G3A501B +MEPERO             =  0.685GAH400u + 0.315GAA500W + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63394} G3A501B +PERO1              =  0.800GAH400u + 0.200GAA500W + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63395} G3A501B +PERO2              =  0.750GAH400u + 0.250GAA500W + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63396} G3A501B +PERO3              =  0.800GAH400u + 0.200GAA500W + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63397} G3A501B +PERO5              =  0.650GAH400u + 0.350GAA500W + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63398} G3A501B +PERO6              =  0.650GAH400u + 0.350GAA500W + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63399} G3A501B +PERO9              =       GAH400u +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 63400} GPH504H                     =       G3H503I +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 63401} GPH504H +GHO                =       GPD500I +      GHO                                    : ARR( 0.168E-10,     0., 0.0);
+{ 63402} GPH504H +GHO                =       G3P5019                                               : ARR( 0.720E-10,     0., 0.0);
+{ 63403} GPH504H +GNO3               =       G3P5019 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 63404} GPH504H+HV               =       G3H503I +      GNO2                                   :  0.100E+01*SUN;
+{ 63405} GPH504H+HV               =       G1P506c +      GHO                                    :  0.100E+01*SUN;
+{ 63406} GPH504H+HV               =       G3P3003 +      GDD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 63407} GPH504H+HV               =       GPH400v +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 63408} G3P5019 +GHO2               =  0.800GPG500i + 0.200GPA500r + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 63409} G3P5019 +GNO                =       GPH400v +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 63410} G3P5019 +GNO2               =       GPP500T                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 63411} G3P5019 +GNO3               =       GPH400v +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 63412} G3P5019 +MEPERO             =  0.685GPH400v + 0.315GPA500r + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63413} G3P5019 +PERO1              =  0.800GPH400v + 0.200GPA500r + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63414} G3P5019 +PERO2              =  0.750GPH400v + 0.250GPA500r + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63415} G3P5019 +PERO3              =  0.800GPH400v + 0.200GPA500r + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63416} G3P5019 +PERO5              =  0.650GPH400v + 0.350GPA500r + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63417} G3P5019 +PERO6              =  0.650GPH400v + 0.350GPA500r + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63418} G3P5019 +PERO9              =       GPH400v +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 63419} GHN506q +GHO                =       GNN5038 +      GHO                                    : ARR( 0.166E-11,     0., 0.0);
+{ 63420} GHN506q +GHO                =       G3H400a +      GCO                                    : ARR( 0.128E-10,     0., 0.0);
+{ 63421} GHN506q +GHO                =       G2N506g                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 63422} GHN506q +GNO3               =       G3H400a +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 63423} GHN506q+HV               =       G1H50Bv +      GNO2                                   :  0.100E+01*SUN;
+{ 63424} GHN506q+HV               =       G1N506t +      GHO                                    :  0.100E+01*SUN;
+{ 63425} GHN506q+HV               =       G1H50Bw +      GNO2                                   :  0.100E+01*SUN;
+{ 63426} GHN506q+HV               =       G3H400a +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 63427} GHN506q+HV               =       GHN4012 +      GCO                                    :  0.100E+01*SUN;
+{ 63428} GHN506q+HV               =       GHN3005 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 63429} G2N506g +GNO                =       G1N506t +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 63430} G2N506g +GNO                =       GNN5036                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 63431} G2N506g +GHO2               =       GHN506q                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 63432} G2N506g +GNO3               =       G1N506t +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 63433} G2N506g +MEPERO             =  0.340G1N506t + 0.330GNN5037 + 0.330GNN5038                 : ARR( 0.565E-13,  -845., 0.0);
+{ 63434} G2N506g +PERO1              =  0.460G1N506t + 0.270GNN5037 + 0.270GNN5038                 : ARR( 0.434E-13,  -900., 0.0);
+{ 63435} G2N506g +PERO2              =  0.400G1N506t + 0.300GNN5037 + 0.300GNN5038                 : ARR( 0.162E-13, -1400., 0.0);
+{ 63436} G2N506g +PERO3              =  0.460G1N506t + 0.270GNN5037 + 0.270GNN5038                 : ARR( 0.488E-13, -1250., 0.0);
+{ 63437} G2N506g +PERO5              =  0.460G1N506t + 0.270GNN5037 + 0.270GNN5038                 : ARR( 0.183E-11,   450., 0.0);
+{ 63438} G2N506g +PERO6              =  0.300G1N506t + 0.350GNN5037 + 0.350GNN5038                 : ARR( 0.168E-13, -1300., 0.0);
+{ 63439} G2N506g +PERO9              =  0.650G1N506t + 0.350GNN5038                                : ARR( 0.100E-10,     0., 0.0);
+{ 63440} G1H50Bv +OXYGEN             =       GHN506o +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 63441} G1H50Bv                     =       GND400N +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5636., 0.0);
+{ 63442} G1H50Bw                     =       GHN3007 +      G3D2000                                : ARR( 0.200E+15,  3233., 0.0);
+{ 63443} GGH503y +GHO                =       GGH503X +      GHO                                    : ARR( 0.166E-11,     0., 0.0);
+{ 63444} GGH503y +GHO                =       GGH504x +      GHO                                    : ARR( 0.507E-11,     0., 0.0);
+{ 63445} GGH503y +GHO                =       G2G504P                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 63446} GGH503y +GHO                =       G2G504Q                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 63447} GGH503y +GHO                =       G3H503J                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 63448} GGH503y+HV               =       G1G506r +      GNO2                                   :  0.100E+01*SUN;
+{ 63449} GGH503y+HV               =       G1G506C +      GHO                                    :  0.100E+01*SUN;
+{ 63450} GGH503y+HV               =       G1G506s +      GNO2                                   :  0.100E+01*SUN;
+{ 63451} GGH503y+HV               =       G1G505m +      GHO                                    :  0.100E+01*SUN;
+{ 63452} GGH503y+HV               =       GHN4012 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 63453} G2G504P +GNO                =       G1G506C +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 63454} G2G504P +GNO                =       GGH503O                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 63455} G2G504P +GHO2               =       GGH503y                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 63456} G2G504P +GNO3               =       G1G506C +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 63457} G2G504P +MEPERO             =  0.340G1G506C + 0.330GGH502b + 0.330GGH503X                 : ARR( 0.565E-13,  -845., 0.0);
+{ 63458} G2G504P +PERO1              =  0.460G1G506C + 0.270GGH502b + 0.270GGH503X                 : ARR( 0.434E-13,  -900., 0.0);
+{ 63459} G2G504P +PERO2              =  0.400G1G506C + 0.300GGH502b + 0.300GGH503X                 : ARR( 0.162E-13, -1400., 0.0);
+{ 63460} G2G504P +PERO3              =  0.460G1G506C + 0.270GGH502b + 0.270GGH503X                 : ARR( 0.488E-13, -1250., 0.0);
+{ 63461} G2G504P +PERO5              =  0.460G1G506C + 0.270GGH502b + 0.270GGH503X                 : ARR( 0.183E-11,   450., 0.0);
+{ 63462} G2G504P +PERO6              =  0.300G1G506C + 0.350GGH502b + 0.350GGH503X                 : ARR( 0.168E-13, -1300., 0.0);
+{ 63463} G2G504P +PERO9              =  0.650G1G506C + 0.350GGH503X                                : ARR( 0.100E-10,     0., 0.0);
+{ 63464} G2G504Q +GNO                =       G1G505m +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 63465} G2G504Q +GNO                =       GGH503I                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 63466} G2G504Q +GHO2               =       GGH503y                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 63467} G2G504Q +GNO3               =       G1G505m +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 63468} G2G504Q +MEPERO             =  0.340G1G505m + 0.330GGH5043 + 0.330GGH504x                 : ARR( 0.565E-13,  -845., 0.0);
+{ 63469} G2G504Q +PERO1              =  0.460G1G505m + 0.270GGH5043 + 0.270GGH504x                 : ARR( 0.434E-13,  -900., 0.0);
+{ 63470} G2G504Q +PERO2              =  0.400G1G505m + 0.300GGH5043 + 0.300GGH504x                 : ARR( 0.162E-13, -1400., 0.0);
+{ 63471} G2G504Q +PERO3              =  0.460G1G505m + 0.270GGH5043 + 0.270GGH504x                 : ARR( 0.488E-13, -1250., 0.0);
+{ 63472} G2G504Q +PERO5              =  0.460G1G505m + 0.270GGH5043 + 0.270GGH504x                 : ARR( 0.183E-11,   450., 0.0);
+{ 63473} G2G504Q +PERO6              =  0.300G1G505m + 0.350GGH5043 + 0.350GGH504x                 : ARR( 0.168E-13, -1300., 0.0);
+{ 63474} G2G504Q +PERO9              =  0.650G1G505m + 0.350GGH504x                                : ARR( 0.100E-10,     0., 0.0);
+{ 63475} G1G506r                     =       GGH503S +      GHO                                    : ARR( 0.800E+11,  2619., 0.0);
+{ 63476} G1G506r                     =       GGH400r +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{ 63477} G1G506s                     =       GND2000 +      GGH3007 +      GHO                     : ARR( 0.200E+15,  3953., 0.0);
+{ 63478} GAH504B +GHO                =       GAH5032 +      GHO                                    : ARR( 0.392E-11,     0., 0.0);
+{ 63479} GAH504B +GHO                =       GAH5038 +      GHO                                    : ARR( 0.174E-11,     0., 0.0);
+{ 63480} GAH504B +GHO                =       G2A505I                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 63481} GAH504B +GHO                =       G2A505J                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 63482} GAH504B+HV               =       G1A5061 +      GHO                                    :  0.100E+01*SUN;
+{ 63483} GAH504B+HV               =       G1A507W +      GNO2                                   :  0.100E+01*SUN;
+{ 63484} GAH504B+HV               =       G1A5067 +      GHO                                    :  0.100E+01*SUN;
+{ 63485} GAH504B+HV               =       G1A507X +      GNO2                                   :  0.100E+01*SUN;
+{ 63486} G2A505I +GNO                =       G1A5061 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 63487} G2A505I +GNO                =       GAH5031                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 63488} G2A505I +GHO2               =       GAH504B                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 63489} G2A505I +GNO3               =       G1A5061 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 63490} G2A505I +MEPERO             =  0.340G1A5061 + 0.330GAH504F + 0.330GAH5032                 : ARR( 0.565E-13,  -845., 0.0);
+{ 63491} G2A505I +PERO1              =  0.460G1A5061 + 0.270GAH504F + 0.270GAH5032                 : ARR( 0.434E-13,  -900., 0.0);
+{ 63492} G2A505I +PERO2              =  0.400G1A5061 + 0.300GAH504F + 0.300GAH5032                 : ARR( 0.162E-13, -1400., 0.0);
+{ 63493} G2A505I +PERO3              =  0.460G1A5061 + 0.270GAH504F + 0.270GAH5032                 : ARR( 0.488E-13, -1250., 0.0);
+{ 63494} G2A505I +PERO5              =  0.460G1A5061 + 0.270GAH504F + 0.270GAH5032                 : ARR( 0.183E-11,   450., 0.0);
+{ 63495} G2A505I +PERO6              =  0.300G1A5061 + 0.350GAH504F + 0.350GAH5032                 : ARR( 0.168E-13, -1300., 0.0);
+{ 63496} G2A505I +PERO9              =  0.650G1A5061 + 0.350GAH5032                                : ARR( 0.100E-10,     0., 0.0);
+{ 63497} G2A505J +GNO                =       G1A5067 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 63498} G2A505J +GNO                =       GAH5033                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 63499} G2A505J +GHO2               =       GAH504B                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 63500} G2A505J +GNO3               =       G1A5067 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 63501} G2A505J +MEPERO             =  0.340G1A5067 + 0.330GAH501S + 0.330GAH5038                 : ARR( 0.565E-13,  -845., 0.0);
+{ 63502} G2A505J +PERO1              =  0.460G1A5067 + 0.270GAH501S + 0.270GAH5038                 : ARR( 0.434E-13,  -900., 0.0);
+{ 63503} G2A505J +PERO2              =  0.400G1A5067 + 0.300GAH501S + 0.300GAH5038                 : ARR( 0.162E-13, -1400., 0.0);
+{ 63504} G2A505J +PERO3              =  0.460G1A5067 + 0.270GAH501S + 0.270GAH5038                 : ARR( 0.488E-13, -1250., 0.0);
+{ 63505} G2A505J +PERO5              =  0.460G1A5067 + 0.270GAH501S + 0.270GAH5038                 : ARR( 0.183E-11,   450., 0.0);
+{ 63506} G2A505J +PERO6              =  0.300G1A5067 + 0.350GAH501S + 0.350GAH5038                 : ARR( 0.168E-13, -1300., 0.0);
+{ 63507} G2A505J +PERO9              =  0.650G1A5067 + 0.350GAH5038                                : ARR( 0.100E-10,     0., 0.0);
+{ 63508} G1A507W                     =       GAH3007 +      GND2000 +      GHO                     : ARR( 0.200E+15,  3953., 0.0);
+{ 63509} G1A507X                     =       GAH502I +      GHO                                    : ARR( 0.800E+11,  2753., 0.0);
+{ 63510} G1A507X                     =       GAH400l +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{ 63511} GPH504I                     =       G3H503J +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 63512} GPH504I +GHO                =       GPH503C +      GHO                                    : ARR( 0.167E-11,     0., 0.0);
+{ 63513} GPH504I +GHO                =       GPH503E +      GHO                                    : ARR( 0.509E-11,     0., 0.0);
+{ 63514} GPH504I +GHO                =       G2P505l                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 63515} GPH504I +GHO                =       G2P505m                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 63516} GPH504I+HV               =       G1P5089 +      GNO2                                   :  0.100E+01*SUN;
+{ 63517} GPH504I+HV               =       G1P506l +      GHO                                    :  0.100E+01*SUN;
+{ 63518} GPH504I+HV               =       G1P508A +      GNO2                                   :  0.100E+01*SUN;
+{ 63519} GPH504I+HV               =       G1P506t +      GHO                                    :  0.100E+01*SUN;
+{ 63520} GPH504I+HV               =       G3H503J +      GNO2                                   :  0.100E+01*SUN;
+{ 63521} G2P505l +GNO                =       G1P506l +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 63522} G2P505l +GNO                =       GPH5038                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 63523} G2P505l +GHO2               =       GPH504I                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 63524} G2P505l +GNO3               =       G1P506l +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 63525} G2P505l +MEPERO             =  0.340G1P506l + 0.330GPH501T + 0.330GPH503C                 : ARR( 0.565E-13,  -845., 0.0);
+{ 63526} G2P505l +PERO1              =  0.460G1P506l + 0.270GPH501T + 0.270GPH503C                 : ARR( 0.434E-13,  -900., 0.0);
+{ 63527} G2P505l +PERO2              =  0.400G1P506l + 0.300GPH501T + 0.300GPH503C                 : ARR( 0.162E-13, -1400., 0.0);
+{ 63528} G2P505l +PERO3              =  0.460G1P506l + 0.270GPH501T + 0.270GPH503C                 : ARR( 0.488E-13, -1250., 0.0);
+{ 63529} G2P505l +PERO5              =  0.460G1P506l + 0.270GPH501T + 0.270GPH503C                 : ARR( 0.183E-11,   450., 0.0);
+{ 63530} G2P505l +PERO6              =  0.300G1P506l + 0.350GPH501T + 0.350GPH503C                 : ARR( 0.168E-13, -1300., 0.0);
+{ 63531} G2P505l +PERO9              =  0.650G1P506l + 0.350GPH503C                                : ARR( 0.100E-10,     0., 0.0);
+{ 63532} G2P505m +GNO                =       G1P506t +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 63533} G2P505m +GNO                =       GPH503D                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 63534} G2P505m +GHO2               =       GPH504I                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 63535} G2P505m +GNO3               =       G1P506t +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 63536} G2P505m +MEPERO             =  0.340G1P506t + 0.330GPH503s + 0.330GPH503E                 : ARR( 0.565E-13,  -845., 0.0);
+{ 63537} G2P505m +PERO1              =  0.460G1P506t + 0.270GPH503s + 0.270GPH503E                 : ARR( 0.434E-13,  -900., 0.0);
+{ 63538} G2P505m +PERO2              =  0.400G1P506t + 0.300GPH503s + 0.300GPH503E                 : ARR( 0.162E-13, -1400., 0.0);
+{ 63539} G2P505m +PERO3              =  0.460G1P506t + 0.270GPH503s + 0.270GPH503E                 : ARR( 0.488E-13, -1250., 0.0);
+{ 63540} G2P505m +PERO5              =  0.460G1P506t + 0.270GPH503s + 0.270GPH503E                 : ARR( 0.183E-11,   450., 0.0);
+{ 63541} G2P505m +PERO6              =  0.300G1P506t + 0.350GPH503s + 0.350GPH503E                 : ARR( 0.168E-13, -1300., 0.0);
+{ 63542} G2P505m +PERO9              =  0.650G1P506t + 0.350GPH503E                                : ARR( 0.100E-10,     0., 0.0);
+{ 63543} G1P5089                     =       GPH502H +      GHO                                    : ARR( 0.800E+11,  2619., 0.0);
+{ 63544} G1P5089                     =       GPH400m +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{ 63545} G1P508A                     =       GND2000 +      GPH3007 +      GHO                     : ARR( 0.200E+15,  3953., 0.0);
+{ 63546} GHH5031 +GHO                =       GHN506E +      GHO                                    : ARR( 0.262E-10,     0., 0.0);
+{ 63547} GHH5031 +GHO                =       GHN506f +      GHO                                    : ARR( 0.251E-10,     0., 0.0);
+{ 63548} GHH5031 +GHO                =       G3H400o +      GCO                                    : ARR( 0.127E-10,     0., 0.0);
+{ 63549} GHH5031 +GHO                =       G2H5046                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 63550} GHH5031 +GHO                =       G2H5047                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 63551} GHH5031 +GNO3               =       G3H400o +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 63552} GHH5031+HV               =       G1H50Bx +      GNO2                                   :  0.100E+01*SUN;
+{ 63553} GHH5031+HV               =       G1H50AM +      GHO                                    :  0.100E+01*SUN;
+{ 63554} GHH5031+HV               =       G1H50Bw +      GHO                                    :  0.100E+01*SUN;
+{ 63555} GHH5031+HV               =       G3H400o +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 63556} GHH5031+HV               =       GHH400j +      GCO                                    :  0.100E+01*SUN;
+{ 63557} GHH5031+HV               =       GHH3001 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 63558} G2H5046 +GNO                =       G1H50AM +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 63559} G2H5046 +GNO                =       GHN5063                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 63560} G2H5046 +GHO2               =       GHH5031                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 63561} G2H5046 +GNO3               =       G1H50AM +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 63562} G2H5046 +MEPERO             =  0.340G1H50AM + 0.330GHN505d + 0.330GHN506E                 : ARR( 0.565E-13,  -845., 0.0);
+{ 63563} G2H5046 +PERO1              =  0.460G1H50AM + 0.270GHN505d + 0.270GHN506E                 : ARR( 0.434E-13,  -900., 0.0);
+{ 63564} G2H5046 +PERO2              =  0.400G1H50AM + 0.300GHN505d + 0.300GHN506E                 : ARR( 0.162E-13, -1400., 0.0);
+{ 63565} G2H5046 +PERO3              =  0.460G1H50AM + 0.270GHN505d + 0.270GHN506E                 : ARR( 0.488E-13, -1250., 0.0);
+{ 63566} G2H5046 +PERO5              =  0.460G1H50AM + 0.270GHN505d + 0.270GHN506E                 : ARR( 0.183E-11,   450., 0.0);
+{ 63567} G2H5046 +PERO6              =  0.300G1H50AM + 0.350GHN505d + 0.350GHN506E                 : ARR( 0.168E-13, -1300., 0.0);
+{ 63568} G2H5046 +PERO9              =  0.650G1H50AM + 0.350GHN506E                                : ARR( 0.100E-10,     0., 0.0);
+{ 63569} G2H5047 +GNO                =       G1H50Bw +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 63570} G2H5047 +GNO                =       GHN506q                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 63571} G2H5047 +GHO2               =       GHH5031                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 63572} G2H5047 +GNO3               =       G1H50Bw +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 63573} G2H5047 +MEPERO             =  0.340G1H50Bw + 0.330GHN5069 + 0.330GHN506f                 : ARR( 0.565E-13,  -845., 0.0);
+{ 63574} G2H5047 +PERO1              =  0.460G1H50Bw + 0.270GHN5069 + 0.270GHN506f                 : ARR( 0.434E-13,  -900., 0.0);
+{ 63575} G2H5047 +PERO2              =  0.400G1H50Bw + 0.300GHN5069 + 0.300GHN506f                 : ARR( 0.162E-13, -1400., 0.0);
+{ 63576} G2H5047 +PERO3              =  0.460G1H50Bw + 0.270GHN5069 + 0.270GHN506f                 : ARR( 0.488E-13, -1250., 0.0);
+{ 63577} G2H5047 +PERO5              =  0.460G1H50Bw + 0.270GHN5069 + 0.270GHN506f                 : ARR( 0.183E-11,   450., 0.0);
+{ 63578} G2H5047 +PERO6              =  0.300G1H50Bw + 0.350GHN5069 + 0.350GHN506f                 : ARR( 0.168E-13, -1300., 0.0);
+{ 63579} G2H5047 +PERO9              =  0.650G1H50Bw + 0.350GHN506f                                : ARR( 0.100E-10,     0., 0.0);
+{ 63580} G1H50Bx +OXYGEN             =       GHH503G +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 63581} G1H50Bx                     =       GHD400K +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5636., 0.0);
+{ 63582} GGH503z +GHO                =       GGH504B +      GHO                                    : ARR( 0.984E-11,     0., 0.0);
+{ 63583} GGH503z +GHO                =       GGH5042 +      GHO                                    : ARR( 0.492E-10,     0., 0.0);
+{ 63584} GGH503z +GHO                =       GGH505K +      GHO                                    : ARR( 0.300E-10,     0., 0.0);
+{ 63585} GGH503z+HV               =       G1G506t +      GNO2                                   :  0.100E+01*SUN;
+{ 63586} GGH503z+HV               =       G1G506W +      GHO                                    :  0.100E+01*SUN;
+{ 63587} GGH503z+HV               =       G1G506s +      GHO                                    :  0.100E+01*SUN;
+{ 63588} GGH503z+HV               =       G1G506u +      GHO                                    :  0.100E+01*SUN;
+{ 63589} GGH503z+HV               =       GHH400j +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 63590} G1G506t                     =       GGH5032 +      GHO                                    : ARR( 0.800E+11,  1899., 0.0);
+{ 63591} G1G506u                     =       GHH400j +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 63592} GAH504C +GHO                =       GAH505O +      GHO                                    : ARR( 0.217E-10,     0., 0.0);
+{ 63593} GAH504C +GHO                =       GAH504E +      GHO                                    : ARR( 0.481E-10,     0., 0.0);
+{ 63594} GAH504C +GHO                =       GAH503s +      GHO                                    : ARR( 0.962E-11,     0., 0.0);
+{ 63595} GAH504C+HV               =       G1A507Y +      GHO                                    :  0.100E+01*SUN;
+{ 63596} GAH504C+HV               =       G1A507W +      GHO                                    :  0.100E+01*SUN;
+{ 63597} GAH504C+HV               =       G1A507Z +      GHO                                    :  0.100E+01*SUN;
+{ 63598} GAH504C+HV               =       G1A507a +      GNO2                                   :  0.100E+01*SUN;
+{ 63599} G1A507Y                     =       GCO     +      GHH400j +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 63600} G1A507Z                     =       GAH3007 +      GND2000 +      GHO                     : ARR( 0.200E+15,  4826., 0.0);
+{ 63601} G1A507a                     =       GAH503H +      GHO                                    : ARR( 0.800E+11,  2034., 0.0);
+{ 63602} G1A507a                     =       GAH400w +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{ 63603} GPH504J                     =       G3H503K +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 63604} GPH504J +GHO                =       GPH503z +      GHO                                    : ARR( 0.944E-11,     0., 0.0);
+{ 63605} GPH504J +GHO                =       GPH503Y +      GHO                                    : ARR( 0.472E-10,     0., 0.0);
+{ 63606} GPH504J +GHO                =       GPH505R +      GHO                                    : ARR( 0.288E-10,     0., 0.0);
+{ 63607} GPH504J+HV               =       G1P508B +      GNO2                                   :  0.100E+01*SUN;
+{ 63608} GPH504J+HV               =       G1P507c +      GHO                                    :  0.100E+01*SUN;
+{ 63609} GPH504J+HV               =       G1P508A +      GHO                                    :  0.100E+01*SUN;
+{ 63610} GPH504J+HV               =       G1P508C +      GHO                                    :  0.100E+01*SUN;
+{ 63611} GPH504J+HV               =       G3H503K +      GNO2                                   :  0.100E+01*SUN;
+{ 63612} G1P508B                     =       GPH503N +      GHO                                    : ARR( 0.800E+11,  1899., 0.0);
+{ 63613} G1P508C                     =       GHH400j +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 63614} GGH5041 +GHO                =       GGH504D +      GHO                                    : ARR( 0.827E-11,     0., 0.0);
+{ 63615} GGH5041 +GHO                =       GGH5042 +      GHO2                                   : ARR( 0.103E-10,     0., 0.0);
+{ 63616} GGH5041 +GHO                =       GGH5036 +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 63617} GGH5041 +GHO                =       G2G504R                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 63618} GGH5041 +GHO                =       G2G504S                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 63619} GGH5041 +GHO                =       G3H503L                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 63620} GGH5041+HV               =       G1G506v +      GNO2                                   :  0.100E+01*SUN;
+{ 63621} GGH5041+HV               =       G1G506i +      GHO                                    :  0.100E+01*SUN;
+{ 63622} GGH5041+HV               =       G1G506w +      GHO                                    :  0.100E+01*SUN;
+{ 63623} GGH5041+HV               =       GHN400z +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 63624} G2G504R +GNO                =       G1G506i +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 63625} G2G504R +GNO                =       GGH503k                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 63626} G2G504R +GHO2               =       GGH5041                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 63627} G2G504R +GNO3               =       G1G506i +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 63628} G2G504R +MEPERO             =  0.340G1G506i + 0.330GGH501h + 0.330GGH504D                 : ARR( 0.565E-13,  -845., 0.0);
+{ 63629} G2G504R +PERO1              =  0.460G1G506i + 0.270GGH501h + 0.270GGH504D                 : ARR( 0.434E-13,  -900., 0.0);
+{ 63630} G2G504R +PERO2              =  0.400G1G506i + 0.300GGH501h + 0.300GGH504D                 : ARR( 0.162E-13, -1400., 0.0);
+{ 63631} G2G504R +PERO3              =  0.460G1G506i + 0.270GGH501h + 0.270GGH504D                 : ARR( 0.488E-13, -1250., 0.0);
+{ 63632} G2G504R +PERO5              =  0.460G1G506i + 0.270GGH501h + 0.270GGH504D                 : ARR( 0.183E-11,   450., 0.0);
+{ 63633} G2G504R +PERO6              =  0.300G1G506i + 0.350GGH501h + 0.350GGH504D                 : ARR( 0.168E-13, -1300., 0.0);
+{ 63634} G2G504R +PERO9              =  0.650G1G506i + 0.350GGH504D                                : ARR( 0.100E-10,     0., 0.0);
+{ 63635} G2G504S +GNO                =       G1G506w +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 63636} G2G504S +GNO                =       GGH5048                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 63637} G2G504S +GHO2               =       GGH5041                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 63638} G2G504S +GNO3               =       G1G506w +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 63639} G2G504S +MEPERO             =  0.340G1G506w + 0.330GGH5045 + 0.330GGH5036                 : ARR( 0.565E-13,  -845., 0.0);
+{ 63640} G2G504S +PERO1              =  0.460G1G506w + 0.270GGH5045 + 0.270GGH5036                 : ARR( 0.434E-13,  -900., 0.0);
+{ 63641} G2G504S +PERO2              =  0.400G1G506w + 0.300GGH5045 + 0.300GGH5036                 : ARR( 0.162E-13, -1400., 0.0);
+{ 63642} G2G504S +PERO3              =  0.460G1G506w + 0.270GGH5045 + 0.270GGH5036                 : ARR( 0.488E-13, -1250., 0.0);
+{ 63643} G2G504S +PERO5              =  0.460G1G506w + 0.270GGH5045 + 0.270GGH5036                 : ARR( 0.183E-11,   450., 0.0);
+{ 63644} G2G504S +PERO6              =  0.300G1G506w + 0.350GGH5045 + 0.350GGH5036                 : ARR( 0.168E-13, -1300., 0.0);
+{ 63645} G2G504S +PERO9              =  0.650G1G506w + 0.350GGH5036                                : ARR( 0.100E-10,     0., 0.0);
+{ 63646} G1G506v                     =       GGH5027 +      GHO                                    : ARR( 0.800E+11,  1899., 0.0);
+{ 63647} G1G506w                     =       GHN3007 +      GGD2000 +      GHO2                    : ARR( 0.200E+15,  5342., 0.0);
+{ 63648} G1G506w                     =       GHN400z +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 63649} GAH504D +GHO                =       GAH503M +      GHO                                    : ARR( 0.189E-10,     0., 0.0);
+{ 63650} GAH504D +GHO                =       GAH504E +      GHO2                                   : ARR( 0.105E-10,     0., 0.0);
+{ 63651} GAH504D +GHO                =       GAH503t +      GHO                                    : ARR( 0.837E-11,     0., 0.0);
+{ 63652} GAH504D +GHO                =       G2A505K                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 63653} GAH504D +GHO                =       G2A505L                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 63654} GAH504D+HV               =       G1A506M +      GHO                                    :  0.100E+01*SUN;
+{ 63655} GAH504D+HV               =       G1A507C +      GHO                                    :  0.100E+01*SUN;
+{ 63656} GAH504D+HV               =       G1A507b +      GNO2                                   :  0.100E+01*SUN;
+{ 63657} G2A505K +GNO                =       G1A506M +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 63658} G2A505K +GNO                =       GAH503L                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 63659} G2A505K +GHO2               =       GAH504D                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 63660} G2A505K +GNO3               =       G1A506M +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 63661} G2A505K +MEPERO             =  0.340G1A506M + 0.330GAH504H + 0.330GAH503M                 : ARR( 0.565E-13,  -845., 0.0);
+{ 63662} G2A505K +PERO1              =  0.460G1A506M + 0.270GAH504H + 0.270GAH503M                 : ARR( 0.434E-13,  -900., 0.0);
+{ 63663} G2A505K +PERO2              =  0.400G1A506M + 0.300GAH504H + 0.300GAH503M                 : ARR( 0.162E-13, -1400., 0.0);
+{ 63664} G2A505K +PERO3              =  0.460G1A506M + 0.270GAH504H + 0.270GAH503M                 : ARR( 0.488E-13, -1250., 0.0);
+{ 63665} G2A505K +PERO5              =  0.460G1A506M + 0.270GAH504H + 0.270GAH503M                 : ARR( 0.183E-11,   450., 0.0);
+{ 63666} G2A505K +PERO6              =  0.300G1A506M + 0.350GAH504H + 0.350GAH503M                 : ARR( 0.168E-13, -1300., 0.0);
+{ 63667} G2A505K +PERO9              =  0.650G1A506M + 0.350GAH503M                                : ARR( 0.100E-10,     0., 0.0);
+{ 63668} G2A505L +GNO                =       G1A507C +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 63669} G2A505L +GNO                =       GAH503i                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 63670} G2A505L +GHO2               =       GAH504D                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 63671} G2A505L +GNO3               =       G1A507C +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 63672} G2A505L +MEPERO             =  0.340G1A507C + 0.330GAH501q + 0.330GAH503t                 : ARR( 0.565E-13,  -845., 0.0);
+{ 63673} G2A505L +PERO1              =  0.460G1A507C + 0.270GAH501q + 0.270GAH503t                 : ARR( 0.434E-13,  -900., 0.0);
+{ 63674} G2A505L +PERO2              =  0.400G1A507C + 0.300GAH501q + 0.300GAH503t                 : ARR( 0.162E-13, -1400., 0.0);
+{ 63675} G2A505L +PERO3              =  0.460G1A507C + 0.270GAH501q + 0.270GAH503t                 : ARR( 0.488E-13, -1250., 0.0);
+{ 63676} G2A505L +PERO5              =  0.460G1A507C + 0.270GAH501q + 0.270GAH503t                 : ARR( 0.183E-11,   450., 0.0);
+{ 63677} G2A505L +PERO6              =  0.300G1A507C + 0.350GAH501q + 0.350GAH503t                 : ARR( 0.168E-13, -1300., 0.0);
+{ 63678} G2A505L +PERO9              =  0.650G1A507C + 0.350GAH503t                                : ARR( 0.100E-10,     0., 0.0);
+{ 63679} G1A507b                     =       GAH503Q +      GHO                                    : ARR( 0.800E+11,  2034., 0.0);
+{ 63680} G1A507b                     =       GAH400k +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{ 63681} GPH504K                     =       G3H503L +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 63682} GPH504K +GHO                =       GPH5043 +      GHO                                    : ARR( 0.827E-11,     0., 0.0);
+{ 63683} GPH504K +GHO                =       GPH503Y +      GHO2                                   : ARR( 0.103E-10,     0., 0.0);
+{ 63684} GPH504K +GHO                =       GPH503S +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 63685} GPH504K +GHO                =       G2P505n                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 63686} GPH504K +GHO                =       G2P505o                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 63687} GPH504K+HV               =       G1P508D +      GNO2                                   :  0.100E+01*SUN;
+{ 63688} GPH504K+HV               =       G1P507l +      GHO                                    :  0.100E+01*SUN;
+{ 63689} GPH504K+HV               =       G1P5076 +      GHO                                    :  0.100E+01*SUN;
+{ 63690} GPH504K+HV               =       G3H503L +      GNO2                                   :  0.100E+01*SUN;
+{ 63691} G2P505n +GNO                =       G1P507l +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 63692} G2P505n +GNO                =       GPH503k                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 63693} G2P505n +GHO2               =       GPH504K                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 63694} G2P505n +GNO3               =       G1P507l +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 63695} G2P505n +MEPERO             =  0.340G1P507l + 0.330GPH501n + 0.330GPH5043                 : ARR( 0.565E-13,  -845., 0.0);
+{ 63696} G2P505n +PERO1              =  0.460G1P507l + 0.270GPH501n + 0.270GPH5043                 : ARR( 0.434E-13,  -900., 0.0);
+{ 63697} G2P505n +PERO2              =  0.400G1P507l + 0.300GPH501n + 0.300GPH5043                 : ARR( 0.162E-13, -1400., 0.0);
+{ 63698} G2P505n +PERO3              =  0.460G1P507l + 0.270GPH501n + 0.270GPH5043                 : ARR( 0.488E-13, -1250., 0.0);
+{ 63699} G2P505n +PERO5              =  0.460G1P507l + 0.270GPH501n + 0.270GPH5043                 : ARR( 0.183E-11,   450., 0.0);
+{ 63700} G2P505n +PERO6              =  0.300G1P507l + 0.350GPH501n + 0.350GPH5043                 : ARR( 0.168E-13, -1300., 0.0);
+{ 63701} G2P505n +PERO9              =  0.650G1P507l + 0.350GPH5043                                : ARR( 0.100E-10,     0., 0.0);
+{ 63702} G2P505o +GNO                =       G1P5076 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 63703} G2P505o +GNO                =       GPH503R                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 63704} G2P505o +GHO2               =       GPH504K                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 63705} G2P505o +GNO3               =       G1P5076 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 63706} G2P505o +MEPERO             =  0.340G1P5076 + 0.330GPH503u + 0.330GPH503S                 : ARR( 0.565E-13,  -845., 0.0);
+{ 63707} G2P505o +PERO1              =  0.460G1P5076 + 0.270GPH503u + 0.270GPH503S                 : ARR( 0.434E-13,  -900., 0.0);
+{ 63708} G2P505o +PERO2              =  0.400G1P5076 + 0.300GPH503u + 0.300GPH503S                 : ARR( 0.162E-13, -1400., 0.0);
+{ 63709} G2P505o +PERO3              =  0.460G1P5076 + 0.270GPH503u + 0.270GPH503S                 : ARR( 0.488E-13, -1250., 0.0);
+{ 63710} G2P505o +PERO5              =  0.460G1P5076 + 0.270GPH503u + 0.270GPH503S                 : ARR( 0.183E-11,   450., 0.0);
+{ 63711} G2P505o +PERO6              =  0.300G1P5076 + 0.350GPH503u + 0.350GPH503S                 : ARR( 0.168E-13, -1300., 0.0);
+{ 63712} G2P505o +PERO9              =  0.650G1P5076 + 0.350GPH503S                                : ARR( 0.100E-10,     0., 0.0);
+{ 63713} G1P508D                     =       GPH502P +      GHO                                    : ARR( 0.800E+11,  1899., 0.0);
+{ 63714} GGH5042 +GHO                =       GGH503c +      GHO                                    : ARR( 0.505E-11,     0., 0.0);
+{ 63715} GGH5042 +GHO                =       GGH5056 +      GHO                                    : ARR( 0.154E-10,     0., 0.0);
+{ 63716} GGH5042 +GHO                =       G2G504T                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 63717} GGH5042 +GHO                =       G2G504U                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 63718} GGH5042 +GHO                =       G3H503M                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 63719} GGH5042+HV               =       G1G506x +      GNO2                                   :  0.100E+01*SUN;
+{ 63720} GGH5042+HV               =       G1G506L +      GHO                                    :  0.100E+01*SUN;
+{ 63721} GGH5042+HV               =       G3H3002 +      GGD2000 +      GHO                     :  0.100E+01*SUN;
+{ 63722} GGH5042+HV               =       G1G506y +      GHO                                    :  0.100E+01*SUN;
+{ 63723} GGH5042+HV               =       GHN4018 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 63724} G2G504T +GNO                =       G1G506L +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 63725} G2G504T +GNO                =       GGH503Y                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 63726} G2G504T +GHO2               =       GGH5042                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 63727} G2G504T +GNO3               =       G1G506L +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 63728} G2G504T +MEPERO             =  0.340G1G506L + 0.330GGH501i + 0.330GGH503c                 : ARR( 0.565E-13,  -845., 0.0);
+{ 63729} G2G504T +PERO1              =  0.460G1G506L + 0.270GGH501i + 0.270GGH503c                 : ARR( 0.434E-13,  -900., 0.0);
+{ 63730} G2G504T +PERO2              =  0.400G1G506L + 0.300GGH501i + 0.300GGH503c                 : ARR( 0.162E-13, -1400., 0.0);
+{ 63731} G2G504T +PERO3              =  0.460G1G506L + 0.270GGH501i + 0.270GGH503c                 : ARR( 0.488E-13, -1250., 0.0);
+{ 63732} G2G504T +PERO5              =  0.460G1G506L + 0.270GGH501i + 0.270GGH503c                 : ARR( 0.183E-11,   450., 0.0);
+{ 63733} G2G504T +PERO6              =  0.300G1G506L + 0.350GGH501i + 0.350GGH503c                 : ARR( 0.168E-13, -1300., 0.0);
+{ 63734} G2G504T +PERO9              =  0.650G1G506L + 0.350GGH503c                                : ARR( 0.100E-10,     0., 0.0);
+{ 63735} G2G504U +GNO                =       G1G506y +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 63736} G2G504U +GNO                =       GGH504r                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 63737} G2G504U +GHO2               =       GGH5042                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 63738} G2G504U +GNO3               =       G1G506y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 63739} G2G504U +MEPERO             =  0.340G1G506y + 0.330GGH5046 + 0.330GGH5056                 : ARR( 0.565E-13,  -845., 0.0);
+{ 63740} G2G504U +PERO1              =  0.460G1G506y + 0.270GGH5046 + 0.270GGH5056                 : ARR( 0.434E-13,  -900., 0.0);
+{ 63741} G2G504U +PERO2              =  0.400G1G506y + 0.300GGH5046 + 0.300GGH5056                 : ARR( 0.162E-13, -1400., 0.0);
+{ 63742} G2G504U +PERO3              =  0.460G1G506y + 0.270GGH5046 + 0.270GGH5056                 : ARR( 0.488E-13, -1250., 0.0);
+{ 63743} G2G504U +PERO5              =  0.460G1G506y + 0.270GGH5046 + 0.270GGH5056                 : ARR( 0.183E-11,   450., 0.0);
+{ 63744} G2G504U +PERO6              =  0.300G1G506y + 0.350GGH5046 + 0.350GGH5056                 : ARR( 0.168E-13, -1300., 0.0);
+{ 63745} G2G504U +PERO9              =  0.650G1G506y + 0.350GGH5056                                : ARR( 0.100E-10,     0., 0.0);
+{ 63746} G1G506x +OXYGEN             =       GGH505L +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 63747} G1G506x                     =       GGH504j +      GHO                                    : ARR( 0.800E+11,  3882., 0.0);
+{ 63748} G1G506x                     =       GGH400s +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5784., 0.0);
+{ 63749} G1G506y                     =       G3H3002 +      GGD2000                                : ARR( 0.200E+15,  5359., 0.0);
+{ 63750} GAH504E +GHO                =       GAH503S +      GHO                                    : ARR( 0.117E-10,     0., 0.0);
+{ 63751} GAH504E +GHO                =       GAH503X +      GHO                                    : ARR( 0.517E-11,     0., 0.0);
+{ 63752} GAH504E +GHO                =       G2A505M                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 63753} GAH504E +GHO                =       G2A505N                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 63754} GAH504E+HV               =       G1A506a +      GHO                                    :  0.100E+01*SUN;
+{ 63755} GAH504E+HV               =       G3A3003 +      GND2000 +      GHO                     :  0.100E+01*SUN;
+{ 63756} GAH504E+HV               =       G1A506d +      GHO                                    :  0.100E+01*SUN;
+{ 63757} GAH504E+HV               =       G1A507c +      GNO2                                   :  0.100E+01*SUN;
+{ 63758} G2A505M +GNO                =       G1A506a +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 63759} G2A505M +GNO                =       GAH503R                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 63760} G2A505M +GHO2               =       GAH504E                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 63761} G2A505M +GNO3               =       G1A506a +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 63762} G2A505M +MEPERO             =  0.340G1A506a + 0.330GAH504I + 0.330GAH503S                 : ARR( 0.565E-13,  -845., 0.0);
+{ 63763} G2A505M +PERO1              =  0.460G1A506a + 0.270GAH504I + 0.270GAH503S                 : ARR( 0.434E-13,  -900., 0.0);
+{ 63764} G2A505M +PERO2              =  0.400G1A506a + 0.300GAH504I + 0.300GAH503S                 : ARR( 0.162E-13, -1400., 0.0);
+{ 63765} G2A505M +PERO3              =  0.460G1A506a + 0.270GAH504I + 0.270GAH503S                 : ARR( 0.488E-13, -1250., 0.0);
+{ 63766} G2A505M +PERO5              =  0.460G1A506a + 0.270GAH504I + 0.270GAH503S                 : ARR( 0.183E-11,   450., 0.0);
+{ 63767} G2A505M +PERO6              =  0.300G1A506a + 0.350GAH504I + 0.350GAH503S                 : ARR( 0.168E-13, -1300., 0.0);
+{ 63768} G2A505M +PERO9              =  0.650G1A506a + 0.350GAH503S                                : ARR( 0.100E-10,     0., 0.0);
+{ 63769} G2A505N +GNO                =       G1A506d +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 63770} G2A505N +GNO                =       GAH503T                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 63771} G2A505N +GHO2               =       GAH504E                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 63772} G2A505N +GNO3               =       G1A506d +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 63773} G2A505N +MEPERO             =  0.340G1A506d + 0.330GAH501o + 0.330GAH503X                 : ARR( 0.565E-13,  -845., 0.0);
+{ 63774} G2A505N +PERO1              =  0.460G1A506d + 0.270GAH501o + 0.270GAH503X                 : ARR( 0.434E-13,  -900., 0.0);
+{ 63775} G2A505N +PERO2              =  0.400G1A506d + 0.300GAH501o + 0.300GAH503X                 : ARR( 0.162E-13, -1400., 0.0);
+{ 63776} G2A505N +PERO3              =  0.460G1A506d + 0.270GAH501o + 0.270GAH503X                 : ARR( 0.488E-13, -1250., 0.0);
+{ 63777} G2A505N +PERO5              =  0.460G1A506d + 0.270GAH501o + 0.270GAH503X                 : ARR( 0.183E-11,   450., 0.0);
+{ 63778} G2A505N +PERO6              =  0.300G1A506d + 0.350GAH501o + 0.350GAH503X                 : ARR( 0.168E-13, -1300., 0.0);
+{ 63779} G2A505N +PERO9              =  0.650G1A506d + 0.350GAH503X                                : ARR( 0.100E-10,     0., 0.0);
+{ 63780} G1A507c +OXYGEN             =       GAH505M +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 63781} G1A507c                     =       GAH502W +      GHO                                    : ARR( 0.800E+11,  4016., 0.0);
+{ 63782} G1A507c                     =       GAH400u +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5784., 0.0);
+{ 63783} GHH5032 +GHO                =       G3H504w                                               : ARR( 0.138E-09,     0., 0.0);
+{ 63784} GHH5032 +GHO                =       GHD501U +      GHO                                    : ARR( 0.320E-10,     0., 0.0);
+{ 63785} GHH5032 +GNO3               =       G3H504w +      GHNO3                                  : ARR( 0.240E-13,     0., 0.0);
+{ 63786} GHH5032+HV               =       GCO     +      GHD400K +      GHO2    +      GHO      :  0.200E+01*SUN;
+{ 63787} GHH5032+HV               =       G1H50By +      GHO                                    :  0.200E+01*SUN;
+{ 63788} GHH5032+HV               =       G3H3006 +      GDD2000 +      GHO                     :  0.100E+01*SUN;
+{ 63789} G3H504w +GHO2               =  0.800GGH505L + 0.200GAH505M + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 63790} G3H504w +GNO                =       GHD400K +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 63791} G3H504w +GNO2               =       GPH505P                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 63792} G3H504w +GNO3               =       GHD400K +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 63793} G3H504w +MEPERO             =  0.685GHD400K + 0.315GAH505M + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63794} G3H504w +PERO1              =  0.800GHD400K + 0.200GAH505M + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63795} G3H504w +PERO2              =  0.750GHD400K + 0.250GAH505M + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63796} G3H504w +PERO3              =  0.800GHD400K + 0.200GAH505M + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63797} G3H504w +PERO5              =  0.650GHD400K + 0.350GAH505M + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63798} G3H504w +PERO6              =  0.650GHD400K + 0.350GAH505M + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 63799} G3H504w +PERO9              =       GHD400K +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 63800} G1H50By                     =       G3H503I                                               : ARR( 0.800E+11,  4246., 0.0);
+{ 63801} G1H50By                     =       G3H3006 +      GDD2000                                : ARR( 0.200E+15,  5662., 0.0);
+{ 63802} GGH5043 +GHO                =       GGN502Q +      GHO                                    : ARR( 0.170E-11,     0., 0.0);
+{ 63803} GGH5043 +GHO                =       GGH504x +      GHO2                                   : ARR( 0.129E-11,     0., 0.0);
+{ 63804} GGH5043 +GHO                =       G2G504W                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 63805} GGH5043 +GHO                =       G3H503N                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 63806} GGH5043+HV               =       G1G504R +      GNO2                                   :  0.100E+01*SUN;
+{ 63807} GGH5043+HV               =       G1G504c +      GHO                                    :  0.100E+01*SUN;
+{ 63808} GGH5043+HV               =       G1G503Y +      GNO2                                   :  0.100E+01*SUN;
+{ 63809} GGH5043+HV               =       GHN4012 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 63810} G2G504W +GNO                =       G1G504c +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 63811} G2G504W +GNO                =       GGN501s                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 63812} G2G504W +GHO2               =       GGH5043                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 63813} G2G504W +GNO3               =       G1G504c +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 63814} G2G504W +MEPERO             =  0.340G1G504c + 0.330GGN501E + 0.330GGN502Q                 : ARR( 0.565E-13,  -845., 0.0);
+{ 63815} G2G504W +PERO1              =  0.460G1G504c + 0.270GGN501E + 0.270GGN502Q                 : ARR( 0.434E-13,  -900., 0.0);
+{ 63816} G2G504W +PERO2              =  0.400G1G504c + 0.300GGN501E + 0.300GGN502Q                 : ARR( 0.162E-13, -1400., 0.0);
+{ 63817} G2G504W +PERO3              =  0.460G1G504c + 0.270GGN501E + 0.270GGN502Q                 : ARR( 0.488E-13, -1250., 0.0);
+{ 63818} G2G504W +PERO5              =  0.460G1G504c + 0.270GGN501E + 0.270GGN502Q                 : ARR( 0.183E-11,   450., 0.0);
+{ 63819} G2G504W +PERO6              =  0.300G1G504c + 0.350GGN501E + 0.350GGN502Q                 : ARR( 0.168E-13, -1300., 0.0);
+{ 63820} G2G504W +PERO9              =  0.650G1G504c + 0.350GGN502Q                                : ARR( 0.100E-10,     0., 0.0);
+{ 63821} GAH504F +GHO                =       GAH5032 +      GHO2                                   : ARR( 0.972E-12,     0., 0.0);
+{ 63822} GAH504F +GHO                =       GAN502H +      GHO                                    : ARR( 0.172E-11,     0., 0.0);
+{ 63823} GAH504F +GHO                =       G2A505O                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 63824} GAH504F +GHO                =       GHN4012 +      GHO2    +      GCO2                    : ARR( 0.544E-12,     0., 0.0);
+{ 63825} GAH504F+HV               =       G1A504T +      GNO2                                   :  0.100E+01*SUN;
+{ 63826} GAH504F+HV               =       G1A504I +      GHO                                    :  0.100E+01*SUN;
+{ 63827} GAH504F+HV               =       G1A5056 +      GNO2                                   :  0.100E+01*SUN;
+{ 63828} G2A505O +GNO                =       G1A504I +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 63829} G2A505O +GNO                =       GAN5026                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 63830} G2A505O +GHO2               =       GAH504F                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 63831} G2A505O +GNO3               =       G1A504I +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 63832} G2A505O +MEPERO             =  0.340G1A504I + 0.330GAN501N + 0.330GAN502H                 : ARR( 0.565E-13,  -845., 0.0);
+{ 63833} G2A505O +PERO1              =  0.460G1A504I + 0.270GAN501N + 0.270GAN502H                 : ARR( 0.434E-13,  -900., 0.0);
+{ 63834} G2A505O +PERO2              =  0.400G1A504I + 0.300GAN501N + 0.300GAN502H                 : ARR( 0.162E-13, -1400., 0.0);
+{ 63835} G2A505O +PERO3              =  0.460G1A504I + 0.270GAN501N + 0.270GAN502H                 : ARR( 0.488E-13, -1250., 0.0);
+{ 63836} G2A505O +PERO5              =  0.460G1A504I + 0.270GAN501N + 0.270GAN502H                 : ARR( 0.183E-11,   450., 0.0);
+{ 63837} G2A505O +PERO6              =  0.300G1A504I + 0.350GAN501N + 0.350GAN502H                 : ARR( 0.168E-13, -1300., 0.0);
+{ 63838} G2A505O +PERO9              =  0.650G1A504I + 0.350GAN502H                                : ARR( 0.100E-10,     0., 0.0);
+{ 63839} GGH5044 +GHO                =       GGH504C +      GHO                                    : ARR( 0.827E-11,     0., 0.0);
+{ 63840} GGH5044 +GHO                =       GGH5046 +      GHO                                    : ARR( 0.413E-10,     0., 0.0);
+{ 63841} GGH5044 +GHO                =       GGH505K +      GHO2                                   : ARR( 0.630E-11,     0., 0.0);
+{ 63842} GGH5044 +GHO                =       G2G504X                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 63843} GGH5044 +GHO                =       G2G502Y                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 63844} GGH5044 +GHO                =       G3H503O                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 63845} GGH5044+HV               =       G1G504U +      GNO2                                   :  0.100E+01*SUN;
+{ 63846} GGH5044+HV               =       G1G506Y +      GHO                                    :  0.100E+01*SUN;
+{ 63847} GGH5044+HV               =       G1G503Y +      GHO                                    :  0.100E+01*SUN;
+{ 63848} GGH5044+HV               =       GHH400j +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 63849} G2G504X +GNO                =       G1G506Y +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 63850} G2G504X +GNO                =       GGH503f                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 63851} G2G504X +GHO2               =       GGH5044                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 63852} G2G504X +GNO3               =       G1G506Y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 63853} G2G504X +MEPERO             =  0.340G1G506Y + 0.330GGH501W + 0.330GGH504C                 : ARR( 0.565E-13,  -845., 0.0);
+{ 63854} G2G504X +PERO1              =  0.460G1G506Y + 0.270GGH501W + 0.270GGH504C                 : ARR( 0.434E-13,  -900., 0.0);
+{ 63855} G2G504X +PERO2              =  0.400G1G506Y + 0.300GGH501W + 0.300GGH504C                 : ARR( 0.162E-13, -1400., 0.0);
+{ 63856} G2G504X +PERO3              =  0.460G1G506Y + 0.270GGH501W + 0.270GGH504C                 : ARR( 0.488E-13, -1250., 0.0);
+{ 63857} G2G504X +PERO5              =  0.460G1G506Y + 0.270GGH501W + 0.270GGH504C                 : ARR( 0.183E-11,   450., 0.0);
+{ 63858} G2G504X +PERO6              =  0.300G1G506Y + 0.350GGH501W + 0.350GGH504C                 : ARR( 0.168E-13, -1300., 0.0);
+{ 63859} G2G504X +PERO9              =  0.650G1G506Y + 0.350GGH504C                                : ARR( 0.100E-10,     0., 0.0);
+{ 63860} GAH504G +GHO                =       GAH505O +      GHO2                                   : ARR( 0.470E-11,     0., 0.0);
+{ 63861} GAH504G +GHO                =       GAH504I +      GHO                                    : ARR( 0.417E-10,     0., 0.0);
+{ 63862} GAH504G +GHO                =       GAH503r +      GHO                                    : ARR( 0.834E-11,     0., 0.0);
+{ 63863} GAH504G +GHO                =       G2A503U                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 63864} GAH504G +GHO                =       G2A505P                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 63865} GAH504G+HV               =       G1A504T +      GHO                                    :  0.100E+01*SUN;
+{ 63866} GAH504G+HV               =       G1A5075 +      GHO                                    :  0.100E+01*SUN;
+{ 63867} GAH504G+HV               =       G1A505f +      GNO2                                   :  0.100E+01*SUN;
+{ 63868} G2A505P +GNO                =       G1A5075 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 63869} G2A505P +GNO                =       GAH503e                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 63870} G2A505P +GHO2               =       GAH504G                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 63871} G2A505P +GNO3               =       G1A5075 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 63872} G2A505P +MEPERO             =  0.340G1A5075 + 0.330GAH501e + 0.330GAH503r                 : ARR( 0.565E-13,  -845., 0.0);
+{ 63873} G2A505P +PERO1              =  0.460G1A5075 + 0.270GAH501e + 0.270GAH503r                 : ARR( 0.434E-13,  -900., 0.0);
+{ 63874} G2A505P +PERO2              =  0.400G1A5075 + 0.300GAH501e + 0.300GAH503r                 : ARR( 0.162E-13, -1400., 0.0);
+{ 63875} G2A505P +PERO3              =  0.460G1A5075 + 0.270GAH501e + 0.270GAH503r                 : ARR( 0.488E-13, -1250., 0.0);
+{ 63876} G2A505P +PERO5              =  0.460G1A5075 + 0.270GAH501e + 0.270GAH503r                 : ARR( 0.183E-11,   450., 0.0);
+{ 63877} G2A505P +PERO6              =  0.300G1A5075 + 0.350GAH501e + 0.350GAH503r                 : ARR( 0.168E-13, -1300., 0.0);
+{ 63878} G2A505P +PERO9              =  0.650G1A5075 + 0.350GAH503r                                : ARR( 0.100E-10,     0., 0.0);
+{ 63879} GGH5045 +GHO                =       GGN502e +      GHO                                    : ARR( 0.833E-11,     0., 0.0);
+{ 63880} GGH5045 +GHO                =       GGH5046 +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 63881} GGH5045 +GHO                =       GGH5036 +      GHO2                                   : ARR( 0.635E-11,     0., 0.0);
+{ 63882} GGH5045 +GHO                =       G2G504Y                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 63883} GGH5045 +GHO                =       G3H503P                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 63884} GGH5045+HV               =       G1G5047 +      GNO2                                   :  0.100E+01*SUN;
+{ 63885} GGH5045+HV               =       G1G506k +      GHO                                    :  0.100E+01*SUN;
+{ 63886} GGH5045+HV               =       GHN400z +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 63887} G2G504Y +GNO                =       G1G506k +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 63888} G2G504Y +GNO                =       GGN502b                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 63889} G2G504Y +GHO2               =       GGH5045                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 63890} G2G504Y +GNO3               =       G1G506k +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 63891} G2G504Y +MEPERO             =  0.340G1G506k + 0.330GGN501N + 0.330GGN502e                 : ARR( 0.565E-13,  -845., 0.0);
+{ 63892} G2G504Y +PERO1              =  0.460G1G506k + 0.270GGN501N + 0.270GGN502e                 : ARR( 0.434E-13,  -900., 0.0);
+{ 63893} G2G504Y +PERO2              =  0.400G1G506k + 0.300GGN501N + 0.300GGN502e                 : ARR( 0.162E-13, -1400., 0.0);
+{ 63894} G2G504Y +PERO3              =  0.460G1G506k + 0.270GGN501N + 0.270GGN502e                 : ARR( 0.488E-13, -1250., 0.0);
+{ 63895} G2G504Y +PERO5              =  0.460G1G506k + 0.270GGN501N + 0.270GGN502e                 : ARR( 0.183E-11,   450., 0.0);
+{ 63896} G2G504Y +PERO6              =  0.300G1G506k + 0.350GGN501N + 0.350GGN502e                 : ARR( 0.168E-13, -1300., 0.0);
+{ 63897} G2G504Y +PERO9              =  0.650G1G506k + 0.350GGN502e                                : ARR( 0.100E-10,     0., 0.0);
+{ 63898} GAH504H +GHO                =       GAH503M +      GHO2                                   : ARR( 0.480E-11,     0., 0.0);
+{ 63899} GAH504H +GHO                =       GAH504I +      GHO2                                   : ARR( 0.106E-10,     0., 0.0);
+{ 63900} GAH504H +GHO                =       GAN502f +      GHO                                    : ARR( 0.850E-11,     0., 0.0);
+{ 63901} GAH504H +GHO                =       G2A505Q                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 63902} GAH504H+HV               =       G1A5077 +      GHO                                    :  0.100E+01*SUN;
+{ 63903} GAH504H+HV               =       G1A505h +      GNO2                                   :  0.100E+01*SUN;
+{ 63904} G2A505Q +GNO                =       G1A5077 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 63905} G2A505Q +GNO                =       GAN502d                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 63906} G2A505Q +GHO2               =       GAH504H                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 63907} G2A505Q +GNO3               =       G1A5077 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 63908} G2A505Q +MEPERO             =  0.340G1A5077 + 0.330GAN501Q + 0.330GAN502f                 : ARR( 0.565E-13,  -845., 0.0);
+{ 63909} G2A505Q +PERO1              =  0.460G1A5077 + 0.270GAN501Q + 0.270GAN502f                 : ARR( 0.434E-13,  -900., 0.0);
+{ 63910} G2A505Q +PERO2              =  0.400G1A5077 + 0.300GAN501Q + 0.300GAN502f                 : ARR( 0.162E-13, -1400., 0.0);
+{ 63911} G2A505Q +PERO3              =  0.460G1A5077 + 0.270GAN501Q + 0.270GAN502f                 : ARR( 0.488E-13, -1250., 0.0);
+{ 63912} G2A505Q +PERO5              =  0.460G1A5077 + 0.270GAN501Q + 0.270GAN502f                 : ARR( 0.183E-11,   450., 0.0);
+{ 63913} G2A505Q +PERO6              =  0.300G1A5077 + 0.350GAN501Q + 0.350GAN502f                 : ARR( 0.168E-13, -1300., 0.0);
+{ 63914} G2A505Q +PERO9              =  0.650G1A5077 + 0.350GAN502f                                : ARR( 0.100E-10,     0., 0.0);
+{ 63915} GGH5046 +GHO                =       GGN502R +      GHO                                    : ARR( 0.512E-11,     0., 0.0);
+{ 63916} GGH5046 +GHO                =       GGH5056 +      GHO2                                   : ARR( 0.390E-11,     0., 0.0);
+{ 63917} GGH5046 +GHO                =       G2G504Z                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 63918} GGH5046 +GHO                =       G3H503Q                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 63919} GGH5046+HV               =       G1G506z +      GNO2                                   :  0.100E+01*SUN;
+{ 63920} GGH5046+HV               =       G1G505r +      GHO                                    :  0.100E+01*SUN;
+{ 63921} GGH5046+HV               =       G3H3002 +      GGD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 63922} GGH5046+HV               =       GHN4018 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 63923} G2G504Z +GNO                =       G1G505r +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 63924} G2G504Z +GNO                =       GGN502N                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 63925} G2G504Z +GHO2               =       GGH5046                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 63926} G2G504Z +GNO3               =       G1G505r +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 63927} G2G504Z +MEPERO             =  0.340G1G505r + 0.330GGN501O + 0.330GGN502R                 : ARR( 0.565E-13,  -845., 0.0);
+{ 63928} G2G504Z +PERO1              =  0.460G1G505r + 0.270GGN501O + 0.270GGN502R                 : ARR( 0.434E-13,  -900., 0.0);
+{ 63929} G2G504Z +PERO2              =  0.400G1G505r + 0.300GGN501O + 0.300GGN502R                 : ARR( 0.162E-13, -1400., 0.0);
+{ 63930} G2G504Z +PERO3              =  0.460G1G505r + 0.270GGN501O + 0.270GGN502R                 : ARR( 0.488E-13, -1250., 0.0);
+{ 63931} G2G504Z +PERO5              =  0.460G1G505r + 0.270GGN501O + 0.270GGN502R                 : ARR( 0.183E-11,   450., 0.0);
+{ 63932} G2G504Z +PERO6              =  0.300G1G505r + 0.350GGN501O + 0.350GGN502R                 : ARR( 0.168E-13, -1300., 0.0);
+{ 63933} G2G504Z +PERO9              =  0.650G1G505r + 0.350GGN502R                                : ARR( 0.100E-10,     0., 0.0);
+{ 63934} G1G506z +OXYGEN             =       GGH503v +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 63935} G1G506z                     =       GGH504j +      GHO2                                   : ARR( 0.800E+11,  4228., 0.0);
+{ 63936} G1G506z                     =       GGD4007 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5784., 0.0);
+{ 63937} GAH504I +GHO                =       GAH503S +      GHO2                                   : ARR( 0.303E-11,     0., 0.0);
+{ 63938} GAH504I +GHO                =       GAN502a +      GHO                                    : ARR( 0.538E-11,     0., 0.0);
+{ 63939} GAH504I +GHO                =       G2A505R                                               : ARR( 0.203E-11,  -190., 0.0);
+{ 63940} GAH504I+HV               =       G3A3002 +      GND2000 +      GHO                     :  0.100E+01*SUN;
+{ 63941} GAH504I+HV               =       G1A506f +      GHO                                    :  0.100E+01*SUN;
+{ 63942} GAH504I+HV               =       G1A507d +      GNO2                                   :  0.100E+01*SUN;
+{ 63943} G2A505R +GNO                =       G1A506f +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 63944} G2A505R +GNO                =       GAN502X                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 63945} G2A505R +GHO2               =       GAH504I                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 63946} G2A505R +GNO3               =       G1A506f +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 63947} G2A505R +MEPERO             =  0.340G1A506f + 0.330GAN501R + 0.330GAN502a                 : ARR( 0.565E-13,  -845., 0.0);
+{ 63948} G2A505R +PERO1              =  0.460G1A506f + 0.270GAN501R + 0.270GAN502a                 : ARR( 0.434E-13,  -900., 0.0);
+{ 63949} G2A505R +PERO2              =  0.400G1A506f + 0.300GAN501R + 0.300GAN502a                 : ARR( 0.162E-13, -1400., 0.0);
+{ 63950} G2A505R +PERO3              =  0.460G1A506f + 0.270GAN501R + 0.270GAN502a                 : ARR( 0.488E-13, -1250., 0.0);
+{ 63951} G2A505R +PERO5              =  0.460G1A506f + 0.270GAN501R + 0.270GAN502a                 : ARR( 0.183E-11,   450., 0.0);
+{ 63952} G2A505R +PERO6              =  0.300G1A506f + 0.350GAN501R + 0.350GAN502a                 : ARR( 0.168E-13, -1300., 0.0);
+{ 63953} G2A505R +PERO9              =  0.650G1A506f + 0.350GAN502a                                : ARR( 0.100E-10,     0., 0.0);
+{ 63954} G1A507d +OXYGEN             =       GAH503q +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 63955} G1A507d                     =       GAH502W +      GHO2                                   : ARR( 0.800E+11,  4363., 0.0);
+{ 63956} G1A507d                     =       GAD4006 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5784., 0.0);
+{ 63957} GGH5047 +GHO                =       GGH504A +      GHO                                    : ARR( 0.283E-10,     0., 0.0);
+{ 63958} GGH5047 +GHO                =       GGH5033 +      GHO                                    : ARR( 0.898E-10,     0., 0.0);
+{ 63959} GGH5047+HV               =       G3K2001 +      GGH3007 +      GHO                     :  0.100E+01*SUN;
+{ 63960} GGH5047+HV               =       G1G506H +      GHO                                    :  0.100E+01*SUN;
+{ 63961} GGH5047+HV               =       G1G5043 +      GHO                                    :  0.100E+01*SUN;
+{ 63962} GGH5047+HV               =       GHD400G +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 63963} GAH504J +GHO                =       GAH504L +      GHO                                    : ARR( 0.282E-10,     0., 0.0);
+{ 63964} GAH504J +GHO                =       GAH503I +      GHO                                    : ARR( 0.662E-10,     0., 0.0);
+{ 63965} GAH504J+HV               =       G3K2001 +      GAH3007 +      GHO                     :  0.100E+01*SUN;
+{ 63966} GAH504J+HV               =       G1A507Q +      GHO                                    :  0.100E+01*SUN;
+{ 63967} GAH504J+HV               =       G1A504m +      GHO                                    :  0.100E+01*SUN;
+{ 63968} GPH504L                     =       G3H503S +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 63969} GPH504L +GHO                =       GPH504N +      GHO                                    : ARR( 0.275E-10,     0., 0.0);
+{ 63970} GPH504L +GHO                =       GPH503O +      GHO                                    : ARR( 0.871E-10,     0., 0.0);
+{ 63971} GPH504L+HV               =       G3K2001 +      GPH3007 +      GHO                     :  0.100E+01*SUN;
+{ 63972} GPH504L+HV               =       G1P5086 +      GHO                                    :  0.100E+01*SUN;
+{ 63973} GPH504L+HV               =       G1P504t +      GHO                                    :  0.100E+01*SUN;
+{ 63974} GPH504L+HV               =       G3H503S +      GNO2                                   :  0.100E+01*SUN;
+{ 63975} GAH400w +GHO                =       GAH400s +      GHO                                    : ARR( 0.633E-10,     0., 0.0);
+{ 63976} GAH400w +GHO                =       GAH400u +      GHO                                    : ARR( 0.270E-10,     0., 0.0);
+{ 63977} GAH400w +GHO                =       G3A400L                                               : ARR( 0.223E-10,     0., 0.0);
+{ 63978} GAH400w +GNO3               =       G3A400L +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 63979} GAH400w+HV               =       G1A401L +      GHO                                    :  0.100E+01*SUN;
+{ 63980} GAH400w+HV               =       G1A401H +      GHO                                    :  0.100E+01*SUN;
+{ 63981} GAH400w+HV               =       GAH3007 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 63982} GGH5048 +GHO                =       GGN502P +      GHO                                    : ARR( 0.836E-11,     0., 0.0);
+{ 63983} GGH5048 +GHO                =       GGH504r +      GHO2                                   : ARR( 0.209E-11,     0., 0.0);
+{ 63984} GGH5048 +GHO                =       G2G504a                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 63985} GGH5048 +GHO                =       G3H503T                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 63986} GGH5048+HV               =       G1G5071 +      GNO2                                   :  0.100E+01*SUN;
+{ 63987} GGH5048+HV               =       G1G506g +      GHO                                    :  0.100E+01*SUN;
+{ 63988} GGH5048+HV               =       G1G506w +      GNO2                                   :  0.100E+01*SUN;
+{ 63989} GGH5048+HV               =       GHN400z +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 63990} G2G504a +GNO                =       G1G506g +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 63991} G2G504a +GNO                =       GGN502a                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 63992} G2G504a +GHO2               =       GGH5048                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 63993} G2G504a +GNO3               =       G1G506g +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 63994} G2G504a +MEPERO             =  0.340G1G506g + 0.330GGN501P + 0.330GGN502P                 : ARR( 0.565E-13,  -845., 0.0);
+{ 63995} G2G504a +PERO1              =  0.460G1G506g + 0.270GGN501P + 0.270GGN502P                 : ARR( 0.434E-13,  -900., 0.0);
+{ 63996} G2G504a +PERO2              =  0.400G1G506g + 0.300GGN501P + 0.300GGN502P                 : ARR( 0.162E-13, -1400., 0.0);
+{ 63997} G2G504a +PERO3              =  0.460G1G506g + 0.270GGN501P + 0.270GGN502P                 : ARR( 0.488E-13, -1250., 0.0);
+{ 63998} G2G504a +PERO5              =  0.460G1G506g + 0.270GGN501P + 0.270GGN502P                 : ARR( 0.183E-11,   450., 0.0);
+{ 63999} G2G504a +PERO6              =  0.300G1G506g + 0.350GGN501P + 0.350GGN502P                 : ARR( 0.168E-13, -1300., 0.0);
+{ 64000} G2G504a +PERO9              =  0.650G1G506g + 0.350GGN502P                                : ARR( 0.100E-10,     0., 0.0);
+{ 64001} G1G5071                     =       GGH5027 +      GNO2                                   : ARR( 0.800E+11,  4245., 0.0);
+{ 64002} G1G5071                     =       GGN400W +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5503., 0.0);
+{ 64003} GHD501R +GHO                =       G3H400k +      GCO                                    : ARR( 0.130E-10,     0., 0.0);
+{ 64004} GHD501R +GHO                =       GHD501U +      GHO2                                   : ARR( 0.205E-10,     0., 0.0);
+{ 64005} GHD501R +GHO                =       GDD500E +      GHO                                    : ARR( 0.819E-10,     0., 0.0);
+{ 64006} GHD501R +GHO                =       G3H504x                                               : ARR( 0.214E-10,     0., 0.0);
+{ 64007} GHD501R +GNO3               =       G3H400k +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 64008} GHD501R +GNO3               =       G3H504x +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 64009} GHD501R+HV               =       GCO     +      G3H400k +      GHO2                    :  0.100E+01*SUN;
+{ 64010} GHD501R+HV               =       GHD400L +      GCO                                    :  0.100E+01*SUN;
+{ 64011} GHD501R+HV               =       GHD3003 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 64012} GHD501R+HV               =       G1D501a +      GHO                                    :  0.100E+01*SUN;
+{ 64013} GHD501R+HV               =       GDD4004 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 64014} G3H504x +GHO2               =  0.800GGH5059 + 0.200GAH505H + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 64015} G3H504x +GNO                =       GDD4004 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 64016} G3H504x +GNO2               =       GPH505O                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 64017} G3H504x +GNO3               =       GDD4004 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 64018} G3H504x +MEPERO             =  0.685GDD4004 + 0.315GAH505H + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64019} G3H504x +PERO1              =  0.800GDD4004 + 0.200GAH505H + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64020} G3H504x +PERO2              =  0.750GDD4004 + 0.250GAH505H + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64021} G3H504x +PERO3              =  0.800GDD4004 + 0.200GAH505H + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64022} G3H504x +PERO5              =  0.650GDD4004 + 0.350GAH505H + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64023} G3H504x +PERO6              =  0.650GDD4004 + 0.350GAH505H + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64024} G3H504x +PERO9              =       GDD4004 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 64025} GGH5049 +GHO                =       GGH504A +      GHO2                                   : ARR( 0.701E-11,     0., 0.0);
+{ 64026} GGH5049 +GHO                =       GGK500X +      GHO                                    : ARR( 0.889E-10,     0., 0.0);
+{ 64027} GGH5049+HV               =       G3K2001 +      GGH3007 +      GHO2                    :  0.100E+01*SUN;
+{ 64028} GGH5049+HV               =       G1G5044 +      GHO                                    :  0.100E+01*SUN;
+{ 64029} GGH5049+HV               =       GDK4006 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 64030} GAH504K +GHO                =       GAH504L +      GHO2                                   : ARR( 0.694E-11,     0., 0.0);
+{ 64031} GAH504K +GHO                =       GAK500c +      GHO                                    : ARR( 0.652E-10,     0., 0.0);
+{ 64032} GAH504K+HV               =       G3K2001 +      GAH3007 +      GHO2                    :  0.100E+01*SUN;
+{ 64033} GAH504K+HV               =       G1A504n +      GHO                                    :  0.100E+01*SUN;
+{ 64034} GPH504M                     =       G3H503U +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 64035} GPH504M +GHO                =       GPH504N +      GHO2                                   : ARR( 0.674E-11,     0., 0.0);
+{ 64036} GPH504M +GHO                =       GPK500X +      GHO                                    : ARR( 0.855E-10,     0., 0.0);
+{ 64037} GPH504M+HV               =       G3K2001 +      GPH3007 +      GHO2                    :  0.100E+01*SUN;
+{ 64038} GPH504M+HV               =       G1P504u +      GHO                                    :  0.100E+01*SUN;
+{ 64039} GPH504M+HV               =       G3H503U +      GNO2                                   :  0.100E+01*SUN;
+{ 64040} GGH504A +GHO                =       GGH505M +      GHO2                                   : ARR( 0.247E-11,     0., 0.0);
+{ 64041} GGH504A +GHO                =       GGK500c +      GHO                                    : ARR( 0.154E-10,     0., 0.0);
+{ 64042} GGH504A +GHO                =       G2G502z                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 64043} GGH504A +GHO                =       G3H503X                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 64044} GGH504A+HV               =       G3K2001 +      G3G3003                                :  0.100E+01*SUN;
+{ 64045} GGH504A+HV               =       G1G5042 +      GHO                                    :  0.100E+01*SUN;
+{ 64046} GGH504A+HV               =       GDK4009 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 64047} GAH504L +GHO                =       GAH505P +      GHO2                                   : ARR( 0.254E-11,     0., 0.0);
+{ 64048} GAH504L +GHO                =       GAK500X +      GHO                                    : ARR( 0.118E-10,     0., 0.0);
+{ 64049} GAH504L +GHO                =       G2A503q                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 64050} GAH504L+HV               =       G3K2001 +      G3A3003                                :  0.100E+01*SUN;
+{ 64051} GAH504L+HV               =       G1A504j +      GHO                                    :  0.100E+01*SUN;
+{ 64052} GPH504N                     =       G3H503X +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 64053} GPH504N +GHO                =       GPH505W +      GHO2                                   : ARR( 0.247E-11,     0., 0.0);
+{ 64054} GPH504N +GHO                =       GPK500b +      GHO                                    : ARR( 0.154E-10,     0., 0.0);
+{ 64055} GPH504N +GHO                =       G2P503u                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 64056} GPH504N+HV               =       G3K2001 +      G3P3003                                :  0.100E+01*SUN;
+{ 64057} GPH504N+HV               =       G1P504q +      GHO                                    :  0.100E+01*SUN;
+{ 64058} GPH504N+HV               =       G3H503X +      GNO2                                   :  0.100E+01*SUN;
+{ 64059} GGH504B +GHO                =       GGH503c +      GHO                                    : ARR( 0.277E-10,     0., 0.0);
+{ 64060} GGH504B +GHO                =       GGH503C +      GHO                                    : ARR( 0.879E-10,     0., 0.0);
+{ 64061} GGH504B+HV               =       G1G5072 +      GNO2                                   :  0.100E+01*SUN;
+{ 64062} GGH504B+HV               =       G3N2000 +      GGH3007 +      GHO                     :  0.100E+01*SUN;
+{ 64063} GGH504B+HV               =       G1G506J +      GHO                                    :  0.100E+01*SUN;
+{ 64064} GGH504B+HV               =       G1G503b +      GHO                                    :  0.100E+01*SUN;
+{ 64065} GGH504B+HV               =       GHN400R +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 64066} G1G5072                     =       G3G400L +      GCH2O                                  : ARR( 0.200E+15,  3603., 0.0);
+{ 64067} GGH504C +GHO                =       GGN502R +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 64068} GGH504C +GHO                =       GGH503C +      GHO2                                   : ARR( 0.200E-10,     0., 0.0);
+{ 64069} GGH504C +GHO                =       G2G504b                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 64070} GGH504C +GHO                =       G3H503a                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 64071} GGH504C+HV               =       G1G5073 +      GNO2                                   :  0.100E+01*SUN;
+{ 64072} GGH504C+HV               =       G3N2000 +      GGD3001 +      GHO                     :  0.100E+01*SUN;
+{ 64073} GGH504C+HV               =       G1G505w +      GHO                                    :  0.100E+01*SUN;
+{ 64074} GGH504C+HV               =       GHN400R +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 64075} G2G504b +GNO                =       G1G505w +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 64076} G2G504b +GNO                =       GGN502Q                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 64077} G2G504b +GHO2               =       GGH504C                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 64078} G2G504b +GNO3               =       G1G505w +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 64079} G2G504b +MEPERO             =  0.340G1G505w + 0.330GGN502e + 0.330GGN502R                 : ARR( 0.565E-13,  -845., 0.0);
+{ 64080} G2G504b +PERO1              =  0.460G1G505w + 0.270GGN502e + 0.270GGN502R                 : ARR( 0.434E-13,  -900., 0.0);
+{ 64081} G2G504b +PERO2              =  0.400G1G505w + 0.300GGN502e + 0.300GGN502R                 : ARR( 0.162E-13, -1400., 0.0);
+{ 64082} G2G504b +PERO3              =  0.460G1G505w + 0.270GGN502e + 0.270GGN502R                 : ARR( 0.488E-13, -1250., 0.0);
+{ 64083} G2G504b +PERO5              =  0.460G1G505w + 0.270GGN502e + 0.270GGN502R                 : ARR( 0.183E-11,   450., 0.0);
+{ 64084} G2G504b +PERO6              =  0.300G1G505w + 0.350GGN502e + 0.350GGN502R                 : ARR( 0.168E-13, -1300., 0.0);
+{ 64085} G2G504b +PERO9              =  0.650G1G505w + 0.350GGN502R                                : ARR( 0.100E-10,     0., 0.0);
+{ 64086} G1G5073                     =       G3G400G +      GCH2O                                  : ARR( 0.200E+15,  3603., 0.0);
+{ 64087} GGH504D +GHO                =       GGH503c +      GHO2                                   : ARR( 0.682E-11,     0., 0.0);
+{ 64088} GGH504D +GHO                =       GGN5028 +      GHO                                    : ARR( 0.865E-10,     0., 0.0);
+{ 64089} GGH504D+HV               =       G1G5074 +      GNO2                                   :  0.100E+01*SUN;
+{ 64090} GGH504D+HV               =       G3N2000 +      GGH3007 +      GHO2                    :  0.100E+01*SUN;
+{ 64091} GGH504D+HV               =       G1G503d +      GHO                                    :  0.100E+01*SUN;
+{ 64092} GGH504D+HV               =       GND400E +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 64093} G1G5074                     =       G3G400E +      GCH2O                                  : ARR( 0.200E+15,  3603., 0.0);
+{ 64094} GGN502e +GHO                =       GGN502R +      GHO2                                   : ARR( 0.635E-11,     0., 0.0);
+{ 64095} GGN502e +GHO                =       GGN5028 +      GHO2                                   : ARR( 0.201E-10,     0., 0.0);
+{ 64096} GGN502e +GHO                =       G3N502H                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 64097} GGN502e+HV               =       G1G5075 +      GNO2                                   :  0.100E+01*SUN;
+{ 64098} GGN502e+HV               =       G3N2000 +      GGD3001 +      GHO2                    :  0.100E+01*SUN;
+{ 64099} GGN502e+HV               =       GND400E +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 64100} G1G5075                     =       G3G4009 +      GCH2O                                  : ARR( 0.200E+15,  3603., 0.0);
+{ 64101} GGH400w +GHO                =       GGH400v +      GHO                                    : ARR( 0.189E-10,     0., 0.0);
+{ 64102} GGH400w +GHO                =       GGH400m +      GHO                                    : ARR( 0.484E-10,     0., 0.0);
+{ 64103} GGH400w +GHO                =       GGH400z +      GHO                                    : ARR( 0.295E-10,     0., 0.0);
+{ 64104} GGH400w+HV               =       G1G400q +      GHO                                    :  0.100E+01*SUN;
+{ 64105} GGH400w+HV               =       G1G4016 +      GHO                                    :  0.100E+01*SUN;
+{ 64106} GGH400w+HV               =       G1G401G +      GHO                                    :  0.100E+01*SUN;
+{ 64107} GGH400w+HV               =       GHH3005 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 64108} G1G401G                     =       GHH3005 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 64109} GAH400x +GHO                =       GAH400z +      GHO                                    : ARR( 0.214E-10,     0., 0.0);
+{ 64110} GAH400x +GHO                =       GAH400q +      GHO                                    : ARR( 0.474E-10,     0., 0.0);
+{ 64111} GAH400x +GHO                =       GAH400w +      GHO                                    : ARR( 0.185E-10,     0., 0.0);
+{ 64112} GAH400x+HV               =       G1A401O +      GHO                                    :  0.100E+01*SUN;
+{ 64113} GAH400x+HV               =       G1A401K +      GHO                                    :  0.100E+01*SUN;
+{ 64114} GAH400x+HV               =       G1A401M +      GHO                                    :  0.100E+01*SUN;
+{ 64115} G1A401O                     =       GCO     +      GHH3005 +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 64116} GPH400x                     =       G3H400t +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 64117} GPH400x +GHO                =       GPH400w +      GHO                                    : ARR( 0.182E-10,     0., 0.0);
+{ 64118} GPH400x +GHO                =       GPH400r +      GHO                                    : ARR( 0.466E-10,     0., 0.0);
+{ 64119} GPH400x +GHO                =       GPH400z +      GHO                                    : ARR( 0.284E-10,     0., 0.0);
+{ 64120} GPH400x+HV               =       G1P4015 +      GHO                                    :  0.100E+01*SUN;
+{ 64121} GPH400x+HV               =       G1P401U +      GHO                                    :  0.100E+01*SUN;
+{ 64122} GPH400x+HV               =       G1P401X +      GHO                                    :  0.100E+01*SUN;
+{ 64123} GPH400x+HV               =       G3H400t +      GNO2                                   :  0.100E+01*SUN;
+{ 64124} G1P401X                     =       GHH3005 +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 64125} GHN506r +GHO                =       G3H504y                                               : ARR( 0.767E-10,     0., 0.0);
+{ 64126} GHN506r +GNO3               =       G3H504y +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 64127} GHN506r+HV               =       G1N506n +      GHO                                    :  0.100E+01*SUN;
+{ 64128} GHN506r+HV               =       G1H50Bz +      GNO2                                   :  0.100E+01*SUN;
+{ 64129} GHN506r+HV               =       G3H3005 +      GDD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 64130} GHN506r+HV               =       GHN401C +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 64131} G3H504y +GHO2               =  0.800GGH505N + 0.200GAH505Q + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 64132} G3H504y +GNO                =       GHN401C +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 64133} G3H504y +GNO2               =       GPH5051                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 64134} G3H504y +GNO3               =       GHN401C +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 64135} G3H504y +MEPERO             =  0.685GHN401C + 0.315GAH505Q + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64136} G3H504y +PERO1              =  0.800GHN401C + 0.200GAH505Q + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64137} G3H504y +PERO2              =  0.750GHN401C + 0.250GAH505Q + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64138} G3H504y +PERO3              =  0.800GHN401C + 0.200GAH505Q + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64139} G3H504y +PERO5              =  0.650GHN401C + 0.350GAH505Q + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64140} G3H504y +PERO6              =  0.650GHN401C + 0.350GAH505Q + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64141} G3H504y +PERO9              =       GHN401C +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 64142} G1H50Bz                     =       GHD2000 +      G3D3001                                : ARR( 0.200E+15,  3778., 0.0);
+{ 64143} GGH504E +GHO                =       GGH503j +      GHO                                    : ARR( 0.325E-11,     0., 0.0);
+{ 64144} GGH504E +GHO                =       GGH505N +      GHO                                    : ARR( 0.832E-11,     0., 0.0);
+{ 64145} GGH504E +GHO                =       GGH505O +      GHO2                                   : ARR( 0.634E-11,     0., 0.0);
+{ 64146} GGH504E +GHO                =       G2G504c                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 64147} GGH504E +GHO                =       G2G504d                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 64148} GGH504E +GHO                =       G3H503c                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 64149} GGH504E+HV               =       G1G506X +      GHO                                    :  0.100E+01*SUN;
+{ 64150} GGH504E+HV               =       G1G5076 +      GNO2                                   :  0.100E+01*SUN;
+{ 64151} GGH504E+HV               =       G1G5077 +      GHO                                    :  0.100E+01*SUN;
+{ 64152} GGH504E+HV               =       GHH400a +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 64153} G2G504c +GNO                =       G1G506X +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 64154} G2G504c +GNO                =       GGH503f                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 64155} G2G504c +GHO2               =       GGH504E                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 64156} G2G504c +GNO3               =       G1G506X +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 64157} G2G504c +MEPERO             =  0.480G1G506X + 0.260GGH503i + 0.260GGH503j                 : ARR( 0.164E-12,  -795., 0.0);
+{ 64158} G2G504c +PERO1              =  0.600G1G506X + 0.200GGH503i + 0.200GGH503j                 : ARR( 0.126E-12,  -850., 0.0);
+{ 64159} G2G504c +PERO2              =  0.560G1G506X + 0.220GGH503i + 0.220GGH503j                 : ARR( 0.471E-13, -1350., 0.0);
+{ 64160} G2G504c +PERO3              =  0.600G1G506X + 0.200GGH503i + 0.200GGH503j                 : ARR( 0.142E-12, -1200., 0.0);
+{ 64161} G2G504c +PERO5              =  0.600G1G506X + 0.200GGH503i + 0.200GGH503j                 : ARR( 0.533E-11,   500., 0.0);
+{ 64162} G2G504c +PERO6              =  0.460G1G506X + 0.270GGH503i + 0.270GGH503j                 : ARR( 0.488E-13, -1250., 0.0);
+{ 64163} G2G504c +PERO9              =  0.800G1G506X + 0.200GGH503j                                : ARR( 0.100E-10,     0., 0.0);
+{ 64164} G2G504d +GNO                =       G1G5077 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 64165} G2G504d +GNO                =       GGH505P                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 64166} G2G504d +GHO2               =       GGH504E                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 64167} G2G504d +GNO3               =       G1G5077 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 64168} G2G504d +MEPERO             =  0.340G1G5077 + 0.330GGH504H + 0.330GGH505N                 : ARR( 0.565E-13,  -845., 0.0);
+{ 64169} G2G504d +PERO1              =  0.460G1G5077 + 0.270GGH504H + 0.270GGH505N                 : ARR( 0.434E-13,  -900., 0.0);
+{ 64170} G2G504d +PERO2              =  0.400G1G5077 + 0.300GGH504H + 0.300GGH505N                 : ARR( 0.162E-13, -1400., 0.0);
+{ 64171} G2G504d +PERO3              =  0.460G1G5077 + 0.270GGH504H + 0.270GGH505N                 : ARR( 0.488E-13, -1250., 0.0);
+{ 64172} G2G504d +PERO5              =  0.460G1G5077 + 0.270GGH504H + 0.270GGH505N                 : ARR( 0.183E-11,   450., 0.0);
+{ 64173} G2G504d +PERO6              =  0.300G1G5077 + 0.350GGH504H + 0.350GGH505N                 : ARR( 0.168E-13, -1300., 0.0);
+{ 64174} G2G504d +PERO9              =  0.650G1G5077 + 0.350GGH505N                                : ARR( 0.100E-10,     0., 0.0);
+{ 64175} G1G5076                     =       GHD2000 +      GGD3001 +      GHO                     : ARR( 0.200E+15,  4828., 0.0);
+{ 64176} G1G5077                     =       GHN300A +      GGD2000 +      GHO2                    : ARR( 0.200E+15,  3929., 0.0);
+{ 64177} GAH504M +GHO                =       GAH505R +      GHO2                                   : ARR( 0.480E-11,     0., 0.0);
+{ 64178} GAH504M +GHO                =       GAH505Q +      GHO                                    : ARR( 0.852E-11,     0., 0.0);
+{ 64179} GAH504M +GHO                =       GAH503h +      GHO                                    : ARR( 0.332E-11,     0., 0.0);
+{ 64180} GAH504M +GHO                =       G2A505S                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 64181} GAH504M +GHO                =       G2A505T                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 64182} GAH504M+HV               =       G1A507e +      GHO                                    :  0.100E+01*SUN;
+{ 64183} GAH504M+HV               =       G1A507f +      GNO2                                   :  0.100E+01*SUN;
+{ 64184} GAH504M+HV               =       G1A5076 +      GHO                                    :  0.100E+01*SUN;
+{ 64185} G2A505S +GNO                =       G1A507e +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 64186} G2A505S +GNO                =       GAH505S                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 64187} G2A505S +GHO2               =       GAH504M                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 64188} G2A505S +GNO3               =       G1A507e +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 64189} G2A505S +MEPERO             =  0.340G1A507e + 0.330GAH504P + 0.330GAH505Q                 : ARR( 0.565E-13,  -845., 0.0);
+{ 64190} G2A505S +PERO1              =  0.460G1A507e + 0.270GAH504P + 0.270GAH505Q                 : ARR( 0.434E-13,  -900., 0.0);
+{ 64191} G2A505S +PERO2              =  0.400G1A507e + 0.300GAH504P + 0.300GAH505Q                 : ARR( 0.162E-13, -1400., 0.0);
+{ 64192} G2A505S +PERO3              =  0.460G1A507e + 0.270GAH504P + 0.270GAH505Q                 : ARR( 0.488E-13, -1250., 0.0);
+{ 64193} G2A505S +PERO5              =  0.460G1A507e + 0.270GAH504P + 0.270GAH505Q                 : ARR( 0.183E-11,   450., 0.0);
+{ 64194} G2A505S +PERO6              =  0.300G1A507e + 0.350GAH504P + 0.350GAH505Q                 : ARR( 0.168E-13, -1300., 0.0);
+{ 64195} G2A505S +PERO9              =  0.650G1A507e + 0.350GAH505Q                                : ARR( 0.100E-10,     0., 0.0);
+{ 64196} G2A505T +GNO                =       G1A5076 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 64197} G2A505T +GNO                =       GAH503e                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 64198} G2A505T +GHO2               =       GAH504M                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 64199} G2A505T +GNO3               =       G1A5076 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 64200} G2A505T +MEPERO             =  0.480G1A5076 + 0.260GAH503g + 0.260GAH503h                 : ARR( 0.164E-12,  -795., 0.0);
+{ 64201} G2A505T +PERO1              =  0.600G1A5076 + 0.200GAH503g + 0.200GAH503h                 : ARR( 0.126E-12,  -850., 0.0);
+{ 64202} G2A505T +PERO2              =  0.560G1A5076 + 0.220GAH503g + 0.220GAH503h                 : ARR( 0.471E-13, -1350., 0.0);
+{ 64203} G2A505T +PERO3              =  0.600G1A5076 + 0.200GAH503g + 0.200GAH503h                 : ARR( 0.142E-12, -1200., 0.0);
+{ 64204} G2A505T +PERO5              =  0.600G1A5076 + 0.200GAH503g + 0.200GAH503h                 : ARR( 0.533E-11,   500., 0.0);
+{ 64205} G2A505T +PERO6              =  0.460G1A5076 + 0.270GAH503g + 0.270GAH503h                 : ARR( 0.488E-13, -1250., 0.0);
+{ 64206} G2A505T +PERO9              =  0.800G1A5076 + 0.200GAH503h                                : ARR( 0.100E-10,     0., 0.0);
+{ 64207} G1A507e                     =       GAD2000 +      GHN300A +      GHO2                    : ARR( 0.200E+15,  3929., 0.0);
+{ 64208} G1A507f                     =       GAD3001 +      GHD2000 +      GHO                     : ARR( 0.200E+15,  4828., 0.0);
+{ 64209} GPH504O                     =       G3H503c +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 64210} GPH504O +GHO                =       GPH503j +      GHO                                    : ARR( 0.325E-11,     0., 0.0);
+{ 64211} GPH504O +GHO                =       GPH5051 +      GHO                                    : ARR( 0.833E-11,     0., 0.0);
+{ 64212} GPH504O +GHO                =       GPH505X +      GHO2                                   : ARR( 0.635E-11,     0., 0.0);
+{ 64213} GPH504O +GHO                =       G2P505p                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 64214} GPH504O +GHO                =       G2P505q                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 64215} GPH504O+HV               =       G1P507d +      GHO                                    :  0.100E+01*SUN;
+{ 64216} GPH504O+HV               =       G1P508E +      GNO2                                   :  0.100E+01*SUN;
+{ 64217} GPH504O+HV               =       G1P508F +      GHO                                    :  0.100E+01*SUN;
+{ 64218} GPH504O+HV               =       G3H503c +      GNO2                                   :  0.100E+01*SUN;
+{ 64219} G2P505p +GNO                =       G1P507d +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 64220} G2P505p +GNO                =       GPH503f                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 64221} G2P505p +GHO2               =       GPH504O                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 64222} G2P505p +GNO3               =       G1P507d +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 64223} G2P505p +MEPERO             =  0.480G1P507d + 0.260GPH503i + 0.260GPH503j                 : ARR( 0.164E-12,  -795., 0.0);
+{ 64224} G2P505p +PERO1              =  0.600G1P507d + 0.200GPH503i + 0.200GPH503j                 : ARR( 0.126E-12,  -850., 0.0);
+{ 64225} G2P505p +PERO2              =  0.560G1P507d + 0.220GPH503i + 0.220GPH503j                 : ARR( 0.471E-13, -1350., 0.0);
+{ 64226} G2P505p +PERO3              =  0.600G1P507d + 0.200GPH503i + 0.200GPH503j                 : ARR( 0.142E-12, -1200., 0.0);
+{ 64227} G2P505p +PERO5              =  0.600G1P507d + 0.200GPH503i + 0.200GPH503j                 : ARR( 0.533E-11,   500., 0.0);
+{ 64228} G2P505p +PERO6              =  0.460G1P507d + 0.270GPH503i + 0.270GPH503j                 : ARR( 0.488E-13, -1250., 0.0);
+{ 64229} G2P505p +PERO9              =  0.800G1P507d + 0.200GPH503j                                : ARR( 0.100E-10,     0., 0.0);
+{ 64230} G2P505q +GNO                =       G1P508F +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 64231} G2P505q +GNO                =       GPH505Y                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 64232} G2P505q +GHO2               =       GPH504O                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 64233} G2P505q +GNO3               =       G1P508F +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 64234} G2P505q +MEPERO             =  0.340G1P508F + 0.330GPH504R + 0.330GPH5051                 : ARR( 0.565E-13,  -845., 0.0);
+{ 64235} G2P505q +PERO1              =  0.460G1P508F + 0.270GPH504R + 0.270GPH5051                 : ARR( 0.434E-13,  -900., 0.0);
+{ 64236} G2P505q +PERO2              =  0.400G1P508F + 0.300GPH504R + 0.300GPH5051                 : ARR( 0.162E-13, -1400., 0.0);
+{ 64237} G2P505q +PERO3              =  0.460G1P508F + 0.270GPH504R + 0.270GPH5051                 : ARR( 0.488E-13, -1250., 0.0);
+{ 64238} G2P505q +PERO5              =  0.460G1P508F + 0.270GPH504R + 0.270GPH5051                 : ARR( 0.183E-11,   450., 0.0);
+{ 64239} G2P505q +PERO6              =  0.300G1P508F + 0.350GPH504R + 0.350GPH5051                 : ARR( 0.168E-13, -1300., 0.0);
+{ 64240} G2P505q +PERO9              =  0.650G1P508F + 0.350GPH5051                                : ARR( 0.100E-10,     0., 0.0);
+{ 64241} G1P508E                     =       GHD2000 +      GPD3001 +      GHO                     : ARR( 0.200E+15,  4828., 0.0);
+{ 64242} G1P508F                     =       GHN300A +      GPD2000 +      GHO2                    : ARR( 0.200E+15,  3929., 0.0);
+{ 64243} GHN506s +GHO                =       GNN503C +      GHO                                    : ARR( 0.339E-11,     0., 0.0);
+{ 64244} GHN506s +GHO                =       G3H504z                                               : ARR( 0.219E-10,     0., 0.0);
+{ 64245} GHN506s +GHO                =       G2N506h                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 64246} GHN506s +GNO3               =       G3H504z +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 64247} GHN506s+HV               =       G1N506D +      GHO                                    :  0.100E+01*SUN;
+{ 64248} GHN506s+HV               =       G1H50BD +      GNO2                                   :  0.100E+01*SUN;
+{ 64249} GHN506s+HV               =       G1H50As +      GNO2                                   :  0.100E+01*SUN;
+{ 64250} GHN506s+HV               =       GHN4013 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 64251} G3H504z +GHO2               =  0.800GGH505P + 0.200GAH505S + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 64252} G3H504z +GNO                =       GHN4013 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 64253} G3H504z +GNO2               =       GPH505Y                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 64254} G3H504z +GNO3               =       GHN4013 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 64255} G3H504z +MEPERO             =  0.685GHN4013 + 0.315GAH505S + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64256} G3H504z +PERO1              =  0.800GHN4013 + 0.200GAH505S + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64257} G3H504z +PERO2              =  0.750GHN4013 + 0.250GAH505S + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64258} G3H504z +PERO3              =  0.800GHN4013 + 0.200GAH505S + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64259} G3H504z +PERO5              =  0.650GHN4013 + 0.350GAH505S + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64260} G3H504z +PERO6              =  0.650GHN4013 + 0.350GAH505S + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64261} G3H504z +PERO9              =       GHN4013 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 64262} G2N506h +GNO                =       G1N506D +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 64263} G2N506h +GNO                =       GNN502a                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 64264} G2N506h +GHO2               =       GHN506s                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 64265} G2N506h +GNO3               =       G1N506D +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 64266} G2N506h +MEPERO             =  0.480G1N506D + 0.260GNN502b + 0.260GNN503C                 : ARR( 0.164E-12,  -795., 0.0);
+{ 64267} G2N506h +PERO1              =  0.600G1N506D + 0.200GNN502b + 0.200GNN503C                 : ARR( 0.126E-12,  -850., 0.0);
+{ 64268} G2N506h +PERO2              =  0.560G1N506D + 0.220GNN502b + 0.220GNN503C                 : ARR( 0.471E-13, -1350., 0.0);
+{ 64269} G2N506h +PERO3              =  0.600G1N506D + 0.200GNN502b + 0.200GNN503C                 : ARR( 0.142E-12, -1200., 0.0);
+{ 64270} G2N506h +PERO5              =  0.600G1N506D + 0.200GNN502b + 0.200GNN503C                 : ARR( 0.533E-11,   500., 0.0);
+{ 64271} G2N506h +PERO6              =  0.460G1N506D + 0.270GNN502b + 0.270GNN503C                 : ARR( 0.488E-13, -1250., 0.0);
+{ 64272} G2N506h +PERO9              =  0.800G1N506D + 0.200GNN503C                                : ARR( 0.100E-10,     0., 0.0);
+{ 64273} GHH5033 +GHO                =       GHK5011 +      GHO                                    : ARR( 0.284E-10,     0., 0.0);
+{ 64274} GHH5033 +GHO                =       GHD501H +      GHO                                    : ARR( 0.575E-10,     0., 0.0);
+{ 64275} GHH5033+HV               =       G3K2001 +      G3H3007                                :  0.100E+01*SUN;
+{ 64276} GHH5033+HV               =       G1H50Bb +      GHO                                    :  0.100E+01*SUN;
+{ 64277} GHH5033+HV               =       G1H5097 +      GHO                                    :  0.100E+01*SUN;
+{ 64278} GHH5034 +GHO                =       GHD501F +      GHO                                    : ARR( 0.550E-10,     0., 0.0);
+{ 64279} GHH5034 +GHO                =       GHD501S +      GHO                                    : ARR( 0.271E-10,     0., 0.0);
+{ 64280} GHH5034 +GHO                =       G3H5051                                               : ARR( 0.710E-10,     0., 0.0);
+{ 64281} GHH5034 +GNO3               =       G3H5051 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 64282} GHH5034+HV               =       G1H50Af +      GHO                                    :  0.100E+01*SUN;
+{ 64283} GHH5034+HV               =       G1H50Bz +      GHO                                    :  0.100E+01*SUN;
+{ 64284} GHH5034+HV               =       G3H3007 +      GDD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 64285} GHH5034+HV               =       GHH400w +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 64286} G3H5051 +GHO2               =  0.800GGH505Q + 0.200GAH505T + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 64287} G3H5051 +GNO                =       GHH400w +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 64288} G3H5051 +GNO2               =       GPH505Z                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 64289} G3H5051 +GNO3               =       GHH400w +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 64290} G3H5051 +MEPERO             =  0.685GHH400w + 0.315GAH505T + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64291} G3H5051 +PERO1              =  0.800GHH400w + 0.200GAH505T + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64292} G3H5051 +PERO2              =  0.750GHH400w + 0.250GAH505T + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64293} G3H5051 +PERO3              =  0.800GHH400w + 0.200GAH505T + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64294} G3H5051 +PERO5              =  0.650GHH400w + 0.350GAH505T + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64295} G3H5051 +PERO6              =  0.650GHH400w + 0.350GAH505T + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64296} G3H5051 +PERO9              =       GHH400w +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 64297} GHD501S +GHO                =       GDD500D +      GHO                                    : ARR( 0.108E-10,     0., 0.0);
+{ 64298} GHD501S +GHO                =       G3H5052                                               : ARR( 0.725E-10,     0., 0.0);
+{ 64299} GHD501S +GNO3               =       G3H5052 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 64300} GHD501S+HV               =       G1D501N +      GHO                                    :  0.100E+01*SUN;
+{ 64301} GHD501S+HV               =       G3H2000 +      G3D3001                                :  0.100E+01*SUN;
+{ 64302} GHD501S+HV               =       GHD400N +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 64303} G3H5052 +GHO2               =  0.800GGH504L + 0.200GAH504T + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 64304} G3H5052 +GNO                =       GHD400N +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 64305} G3H5052 +GNO2               =       GPH504U                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 64306} G3H5052 +GNO3               =       GHD400N +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 64307} G3H5052 +MEPERO             =  0.685GHD400N + 0.315GAH504T + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64308} G3H5052 +PERO1              =  0.800GHD400N + 0.200GAH504T + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64309} G3H5052 +PERO2              =  0.750GHD400N + 0.250GAH504T + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64310} G3H5052 +PERO3              =  0.800GHD400N + 0.200GAH504T + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64311} G3H5052 +PERO5              =  0.650GHD400N + 0.350GAH504T + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64312} G3H5052 +PERO6              =  0.650GHD400N + 0.350GAH504T + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64313} G3H5052 +PERO9              =       GHD400N +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 64314} GGH504F +GHO                =       GGH504O +      GHO                                    : ARR( 0.983E-11,     0., 0.0);
+{ 64315} GGH504F +GHO                =       GGH504L +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 64316} GGH504F +GHO                =       GGH504a +      GHO2                                   : ARR( 0.200E-10,     0., 0.0);
+{ 64317} GGH504F +GHO                =       G2G504e                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 64318} GGH504F +GHO                =       G2G504f                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 64319} GGH504F +GHO                =       G3H503d                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 64320} GGH504F+HV               =       G1G5073 +      GHO                                    :  0.100E+01*SUN;
+{ 64321} GGH504F+HV               =       G3H2000 +      GGD3001 +      GHO                     :  0.100E+01*SUN;
+{ 64322} GGH504F+HV               =       G1G5078 +      GHO                                    :  0.100E+01*SUN;
+{ 64323} GGH504F+HV               =       GHH400b +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 64324} G2G504e +GNO                =       G1G5073 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 64325} G2G504e +GNO                =       GGH504C                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 64326} G2G504e +GHO2               =       GGH504F                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 64327} G2G504e +GNO3               =       G1G5073 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 64328} G2G504e +MEPERO             =  0.480G1G5073 + 0.260GGH502X + 0.260GGH504O                 : ARR( 0.164E-12,  -795., 0.0);
+{ 64329} G2G504e +PERO1              =  0.600G1G5073 + 0.200GGH502X + 0.200GGH504O                 : ARR( 0.126E-12,  -850., 0.0);
+{ 64330} G2G504e +PERO2              =  0.560G1G5073 + 0.220GGH502X + 0.220GGH504O                 : ARR( 0.471E-13, -1350., 0.0);
+{ 64331} G2G504e +PERO3              =  0.600G1G5073 + 0.200GGH502X + 0.200GGH504O                 : ARR( 0.142E-12, -1200., 0.0);
+{ 64332} G2G504e +PERO5              =  0.600G1G5073 + 0.200GGH502X + 0.200GGH504O                 : ARR( 0.533E-11,   500., 0.0);
+{ 64333} G2G504e +PERO6              =  0.460G1G5073 + 0.270GGH502X + 0.270GGH504O                 : ARR( 0.488E-13, -1250., 0.0);
+{ 64334} G2G504e +PERO9              =  0.800G1G5073 + 0.200GGH504O                                : ARR( 0.100E-10,     0., 0.0);
+{ 64335} G2G504f +GNO                =       G1G5078 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 64336} G2G504f +GNO                =       GGH504J                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 64337} G2G504f +GHO2               =       GGH504F                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 64338} G2G504f +GNO3               =       G1G5078 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 64339} G2G504f +MEPERO             =  0.340G1G5078 + 0.330GGH504I + 0.330GGH504L                 : ARR( 0.565E-13,  -845., 0.0);
+{ 64340} G2G504f +PERO1              =  0.460G1G5078 + 0.270GGH504I + 0.270GGH504L                 : ARR( 0.434E-13,  -900., 0.0);
+{ 64341} G2G504f +PERO2              =  0.400G1G5078 + 0.300GGH504I + 0.300GGH504L                 : ARR( 0.162E-13, -1400., 0.0);
+{ 64342} G2G504f +PERO3              =  0.460G1G5078 + 0.270GGH504I + 0.270GGH504L                 : ARR( 0.488E-13, -1250., 0.0);
+{ 64343} G2G504f +PERO5              =  0.460G1G5078 + 0.270GGH504I + 0.270GGH504L                 : ARR( 0.183E-11,   450., 0.0);
+{ 64344} G2G504f +PERO6              =  0.300G1G5078 + 0.350GGH504I + 0.350GGH504L                 : ARR( 0.168E-13, -1300., 0.0);
+{ 64345} G2G504f +PERO9              =  0.650G1G5078 + 0.350GGH504L                                : ARR( 0.100E-10,     0., 0.0);
+{ 64346} G1G5078                     =       G3H2000 +      GGD3001                                : ARR( 0.200E+15,  2179., 0.0);
+{ 64347} GAH504N +GHO                =       GAH505U +      GHO2                                   : ARR( 0.149E-10,     0., 0.0);
+{ 64348} GAH504N +GHO                =       GAH504T +      GHO                                    : ARR( 0.254E-10,     0., 0.0);
+{ 64349} GAH504N +GHO                =       GAH504W +      GHO                                    : ARR( 0.992E-11,     0., 0.0);
+{ 64350} GAH504N +GHO                =       G2A505U                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 64351} GAH504N +GHO                =       G2A505W                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 64352} GAH504N+HV               =       G1A507g +      GHO                                    :  0.100E+01*SUN;
+{ 64353} GAH504N+HV               =       G3A400I +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 64354} GAH504N+HV               =       G1A507J +      GHO                                    :  0.100E+01*SUN;
+{ 64355} G2A505U +GNO                =       G1A507g +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 64356} G2A505U +GNO                =       GAH504R                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 64357} G2A505U +GHO2               =       GAH504N                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 64358} G2A505U +GNO3               =       G1A507g +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 64359} G2A505U +MEPERO             =  0.340G1A507g + 0.330GAH504Q + 0.330GAH504T                 : ARR( 0.565E-13,  -845., 0.0);
+{ 64360} G2A505U +PERO1              =  0.460G1A507g + 0.270GAH504Q + 0.270GAH504T                 : ARR( 0.434E-13,  -900., 0.0);
+{ 64361} G2A505U +PERO2              =  0.400G1A507g + 0.300GAH504Q + 0.300GAH504T                 : ARR( 0.162E-13, -1400., 0.0);
+{ 64362} G2A505U +PERO3              =  0.460G1A507g + 0.270GAH504Q + 0.270GAH504T                 : ARR( 0.488E-13, -1250., 0.0);
+{ 64363} G2A505U +PERO5              =  0.460G1A507g + 0.270GAH504Q + 0.270GAH504T                 : ARR( 0.183E-11,   450., 0.0);
+{ 64364} G2A505U +PERO6              =  0.300G1A507g + 0.350GAH504Q + 0.350GAH504T                 : ARR( 0.168E-13, -1300., 0.0);
+{ 64365} G2A505U +PERO9              =  0.650G1A507g + 0.350GAH504T                                : ARR( 0.100E-10,     0., 0.0);
+{ 64366} G2A505W +GNO                =       G1A507J +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 64367} G2A505W +GNO                =       GAH503r                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 64368} G2A505W +GHO2               =       GAH504N                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 64369} G2A505W +GNO3               =       G1A507J +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 64370} G2A505W +MEPERO             =  0.480G1A507J + 0.260GAH502m + 0.260GAH504W                 : ARR( 0.164E-12,  -795., 0.0);
+{ 64371} G2A505W +PERO1              =  0.600G1A507J + 0.200GAH502m + 0.200GAH504W                 : ARR( 0.126E-12,  -850., 0.0);
+{ 64372} G2A505W +PERO2              =  0.560G1A507J + 0.220GAH502m + 0.220GAH504W                 : ARR( 0.471E-13, -1350., 0.0);
+{ 64373} G2A505W +PERO3              =  0.600G1A507J + 0.200GAH502m + 0.200GAH504W                 : ARR( 0.142E-12, -1200., 0.0);
+{ 64374} G2A505W +PERO5              =  0.600G1A507J + 0.200GAH502m + 0.200GAH504W                 : ARR( 0.533E-11,   500., 0.0);
+{ 64375} G2A505W +PERO6              =  0.460G1A507J + 0.270GAH502m + 0.270GAH504W                 : ARR( 0.488E-13, -1250., 0.0);
+{ 64376} G2A505W +PERO9              =  0.800G1A507J + 0.200GAH504W                                : ARR( 0.100E-10,     0., 0.0);
+{ 64377} G1A507g                     =       GAD3001 +      G3H2000                                : ARR( 0.200E+15,  2179., 0.0);
+{ 64378} GPH504P                     =       G3H503d +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 64379} GPH504P +GHO                =       GPH504Y +      GHO                                    : ARR( 0.983E-11,     0., 0.0);
+{ 64380} GPH504P +GHO                =       GPH504U +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 64381} GPH504P +GHO                =       GPH504i +      GHO2                                   : ARR( 0.200E-10,     0., 0.0);
+{ 64382} GPH504P +GHO                =       G2P505r                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 64383} GPH504P +GHO                =       G2P505s                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 64384} GPH504P+HV               =       G1P507w +      GHO                                    :  0.100E+01*SUN;
+{ 64385} GPH504P+HV               =       G3H2000 +      GPD3001 +      GHO                     :  0.100E+01*SUN;
+{ 64386} GPH504P+HV               =       G1P506Y +      GHO                                    :  0.100E+01*SUN;
+{ 64387} GPH504P+HV               =       G3H503d +      GNO2                                   :  0.100E+01*SUN;
+{ 64388} G2P505r +GNO                =       G1P507w +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 64389} G2P505r +GNO                =       GPH5041                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 64390} G2P505r +GHO2               =       GPH504P                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 64391} G2P505r +GNO3               =       G1P507w +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 64392} G2P505r +MEPERO             =  0.480G1P507w + 0.260GPH502v + 0.260GPH504Y                 : ARR( 0.164E-12,  -795., 0.0);
+{ 64393} G2P505r +PERO1              =  0.600G1P507w + 0.200GPH502v + 0.200GPH504Y                 : ARR( 0.126E-12,  -850., 0.0);
+{ 64394} G2P505r +PERO2              =  0.560G1P507w + 0.220GPH502v + 0.220GPH504Y                 : ARR( 0.471E-13, -1350., 0.0);
+{ 64395} G2P505r +PERO3              =  0.600G1P507w + 0.200GPH502v + 0.200GPH504Y                 : ARR( 0.142E-12, -1200., 0.0);
+{ 64396} G2P505r +PERO5              =  0.600G1P507w + 0.200GPH502v + 0.200GPH504Y                 : ARR( 0.533E-11,   500., 0.0);
+{ 64397} G2P505r +PERO6              =  0.460G1P507w + 0.270GPH502v + 0.270GPH504Y                 : ARR( 0.488E-13, -1250., 0.0);
+{ 64398} G2P505r +PERO9              =  0.800G1P507w + 0.200GPH504Y                                : ARR( 0.100E-10,     0., 0.0);
+{ 64399} G2P505s +GNO                =       G1P506Y +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 64400} G2P505s +GNO                =       GPH502u                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 64401} G2P505s +GHO2               =       GPH504P                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 64402} G2P505s +GNO3               =       G1P506Y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 64403} G2P505s +MEPERO             =  0.340G1P506Y + 0.330GPH504S + 0.330GPH504U                 : ARR( 0.565E-13,  -845., 0.0);
+{ 64404} G2P505s +PERO1              =  0.460G1P506Y + 0.270GPH504S + 0.270GPH504U                 : ARR( 0.434E-13,  -900., 0.0);
+{ 64405} G2P505s +PERO2              =  0.400G1P506Y + 0.300GPH504S + 0.300GPH504U                 : ARR( 0.162E-13, -1400., 0.0);
+{ 64406} G2P505s +PERO3              =  0.460G1P506Y + 0.270GPH504S + 0.270GPH504U                 : ARR( 0.488E-13, -1250., 0.0);
+{ 64407} G2P505s +PERO5              =  0.460G1P506Y + 0.270GPH504S + 0.270GPH504U                 : ARR( 0.183E-11,   450., 0.0);
+{ 64408} G2P505s +PERO6              =  0.300G1P506Y + 0.350GPH504S + 0.350GPH504U                 : ARR( 0.168E-13, -1300., 0.0);
+{ 64409} G2P505s +PERO9              =  0.650G1P506Y + 0.350GPH504U                                : ARR( 0.100E-10,     0., 0.0);
+{ 64410} GGH504G +GHO                =       GGH504N +      GHO                                    : ARR( 0.185E-10,     0., 0.0);
+{ 64411} GGH504G +GHO                =       GGH504a +      GHO2                                   : ARR( 0.375E-10,     0., 0.0);
+{ 64412} GGH504G +GHO                =       GGH502Z +      GHO                                    : ARR( 0.288E-10,     0., 0.0);
+{ 64413} GGH504G+HV               =       G1G503p +      GHO                                    :  0.100E+01*SUN;
+{ 64414} GGH504G+HV               =       G1G5079 +      GHO                                    :  0.100E+01*SUN;
+{ 64415} GGH504G+HV               =       GAH400e +      GCO2                                   :  0.100E+01*SUN;
+{ 64416} G1G5079                     =       GHD3005 +      GCO     +      GHO2    +      GCO      : ARR( 0.200E+15,  3266., 0.0);
+{ 64417} GAH504O +GHO                =       GAH502p +      GHO                                    : ARR( 0.278E-10,     0., 0.0);
+{ 64418} GAH504O +GHO                =       GAH505U +      GHO2                                   : ARR( 0.361E-10,     0., 0.0);
+{ 64419} GAH504O +GHO                =       GAH504X +      GHO                                    : ARR( 0.178E-10,     0., 0.0);
+{ 64420} GAH504O+HV               =       GHH400H +      GCO2                                   :  0.100E+01*SUN;
+{ 64421} GAH504O+HV               =       G1A507h +      GHO                                    :  0.100E+01*SUN;
+{ 64422} GAH504O+HV               =       G1A504d +      GHO                                    :  0.100E+01*SUN;
+{ 64423} G1A507h                     =       GCO     +      GHD3005 +      GHO     +      GCO      : ARR( 0.200E+15,  3266., 0.0);
+{ 64424} GPH504Q                     =       G3H5053 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 64425} GPH504Q +GHO                =       GPH504X +      GHO                                    : ARR( 0.177E-10,     0., 0.0);
+{ 64426} GPH504Q +GHO                =       GPH504i +      GHO2                                   : ARR( 0.359E-10,     0., 0.0);
+{ 64427} GPH504Q +GHO                =       GPH502x +      GHO                                    : ARR( 0.276E-10,     0., 0.0);
+{ 64428} GPH504Q+HV               =       G1P504j +      GHO                                    :  0.100E+01*SUN;
+{ 64429} GPH504Q+HV               =       G1P506W +      GHO                                    :  0.100E+01*SUN;
+{ 64430} GPH504Q+HV               =       G3H400W +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 64431} G3H5053 +GHO2               =  0.800GGH504G + 0.200GAH504O + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 64432} G3H5053 +GNO                =       G3H400W +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 64433} G3H5053 +GNO2               =       GPH504Q                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 64434} G3H5053 +GNO3               =       G3H400W +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 64435} G3H5053 +MEPERO             =  0.685G3H400W + 0.315GAH504O + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 64436} G3H5053 +PERO1              =  0.800G3H400W + 0.200GAH504O + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 64437} G3H5053 +PERO2              =  0.750G3H400W + 0.250GAH504O + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 64438} G3H5053 +PERO3              =  0.800G3H400W + 0.200GAH504O + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 64439} G3H5053 +PERO5              =  0.650G3H400W + 0.350GAH504O + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 64440} G3H5053 +PERO6              =  0.650G3H400W + 0.350GAH504O + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 64441} G3H5053 +PERO9              =       G3H400W +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 64442} GGH504H +GHO                =       GGN502c +      GHO                                    : ARR( 0.329E-11,     0., 0.0);
+{ 64443} GGH504H +GHO                =       GGH505N +      GHO2                                   : ARR( 0.210E-11,     0., 0.0);
+{ 64444} GGH504H +GHO                =       GGH504f +      GHO2                                   : ARR( 0.642E-11,     0., 0.0);
+{ 64445} GGH504H +GHO                =       G2G504g                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 64446} GGH504H +GHO                =       G3H503e                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 64447} GGH504H+HV               =       G1G506j +      GHO                                    :  0.100E+01*SUN;
+{ 64448} GGH504H+HV               =       G1G507A +      GNO2                                   :  0.100E+01*SUN;
+{ 64449} GGH504H+HV               =       GHN400x +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 64450} G2G504g +GNO                =       G1G506j +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 64451} G2G504g +GNO                =       GGN502b                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 64452} G2G504g +GHO2               =       GGH504H                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 64453} G2G504g +GNO3               =       G1G506j +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 64454} G2G504g +MEPERO             =  0.480G1G506j + 0.260GGN501f + 0.260GGN502c                 : ARR( 0.164E-12,  -795., 0.0);
+{ 64455} G2G504g +PERO1              =  0.600G1G506j + 0.200GGN501f + 0.200GGN502c                 : ARR( 0.126E-12,  -850., 0.0);
+{ 64456} G2G504g +PERO2              =  0.560G1G506j + 0.220GGN501f + 0.220GGN502c                 : ARR( 0.471E-13, -1350., 0.0);
+{ 64457} G2G504g +PERO3              =  0.600G1G506j + 0.200GGN501f + 0.200GGN502c                 : ARR( 0.142E-12, -1200., 0.0);
+{ 64458} G2G504g +PERO5              =  0.600G1G506j + 0.200GGN501f + 0.200GGN502c                 : ARR( 0.533E-11,   500., 0.0);
+{ 64459} G2G504g +PERO6              =  0.460G1G506j + 0.270GGN501f + 0.270GGN502c                 : ARR( 0.488E-13, -1250., 0.0);
+{ 64460} G2G504g +PERO9              =  0.800G1G506j + 0.200GGN502c                                : ARR( 0.100E-10,     0., 0.0);
+{ 64461} G1G507A                     =       GHD2000 +      GGD3001 +      GHO2                    : ARR( 0.200E+15,  3619., 0.0);
+{ 64462} GAH504P +GHO                =       GAH5055 +      GHO2                                   : ARR( 0.496E-11,     0., 0.0);
+{ 64463} GAH504P +GHO                =       GAH505Q +      GHO2                                   : ARR( 0.220E-11,     0., 0.0);
+{ 64464} GAH504P +GHO                =       GAN502e +      GHO                                    : ARR( 0.344E-11,     0., 0.0);
+{ 64465} GAH504P +GHO                =       G2A505X                                               : ARR( 0.203E-11,  -190., 0.0);
+{ 64466} GAH504P+HV               =       G1A507i +      GNO2                                   :  0.100E+01*SUN;
+{ 64467} GAH504P+HV               =       G1A5078 +      GHO                                    :  0.100E+01*SUN;
+{ 64468} G2A505X +GNO                =       G1A5078 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 64469} G2A505X +GNO                =       GAN502d                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 64470} G2A505X +GHO2               =       GAH504P                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 64471} G2A505X +GNO3               =       G1A5078 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 64472} G2A505X +MEPERO             =  0.480G1A5078 + 0.260GAN502P + 0.260GAN502e                 : ARR( 0.164E-12,  -795., 0.0);
+{ 64473} G2A505X +PERO1              =  0.600G1A5078 + 0.200GAN502P + 0.200GAN502e                 : ARR( 0.126E-12,  -850., 0.0);
+{ 64474} G2A505X +PERO2              =  0.560G1A5078 + 0.220GAN502P + 0.220GAN502e                 : ARR( 0.471E-13, -1350., 0.0);
+{ 64475} G2A505X +PERO3              =  0.600G1A5078 + 0.200GAN502P + 0.200GAN502e                 : ARR( 0.142E-12, -1200., 0.0);
+{ 64476} G2A505X +PERO5              =  0.600G1A5078 + 0.200GAN502P + 0.200GAN502e                 : ARR( 0.533E-11,   500., 0.0);
+{ 64477} G2A505X +PERO6              =  0.460G1A5078 + 0.270GAN502P + 0.270GAN502e                 : ARR( 0.488E-13, -1250., 0.0);
+{ 64478} G2A505X +PERO9              =  0.800G1A5078 + 0.200GAN502e                                : ARR( 0.100E-10,     0., 0.0);
+{ 64479} G1A507i                     =       GAD3001 +      GHD2000 +      GHO2                    : ARR( 0.200E+15,  3619., 0.0);
+{ 64480} GPH504R                     =       G3H503e +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 64481} GPH504R +GHO                =       GPN502g +      GHO                                    : ARR( 0.330E-11,     0., 0.0);
+{ 64482} GPH504R +GHO                =       GPH5051 +      GHO2                                   : ARR( 0.211E-11,     0., 0.0);
+{ 64483} GPH504R +GHO                =       GPH504v +      GHO2                                   : ARR( 0.645E-11,     0., 0.0);
+{ 64484} GPH504R +GHO                =       G2P505t                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 64485} GPH504R+HV               =       G1P507m +      GHO                                    :  0.100E+01*SUN;
+{ 64486} GPH504R+HV               =       G1P508G +      GNO2                                   :  0.100E+01*SUN;
+{ 64487} GPH504R+HV               =       G3H503e +      GNO2                                   :  0.100E+01*SUN;
+{ 64488} G2P505t +GNO                =       G1P507m +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 64489} G2P505t +GNO                =       GPN502f                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 64490} G2P505t +GHO2               =       GPH504R                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 64491} G2P505t +GNO3               =       G1P507m +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 64492} G2P505t +MEPERO             =  0.480G1P507m + 0.260GPN501y + 0.260GPN502g                 : ARR( 0.164E-12,  -795., 0.0);
+{ 64493} G2P505t +PERO1              =  0.600G1P507m + 0.200GPN501y + 0.200GPN502g                 : ARR( 0.126E-12,  -850., 0.0);
+{ 64494} G2P505t +PERO2              =  0.560G1P507m + 0.220GPN501y + 0.220GPN502g                 : ARR( 0.471E-13, -1350., 0.0);
+{ 64495} G2P505t +PERO3              =  0.600G1P507m + 0.200GPN501y + 0.200GPN502g                 : ARR( 0.142E-12, -1200., 0.0);
+{ 64496} G2P505t +PERO5              =  0.600G1P507m + 0.200GPN501y + 0.200GPN502g                 : ARR( 0.533E-11,   500., 0.0);
+{ 64497} G2P505t +PERO6              =  0.460G1P507m + 0.270GPN501y + 0.270GPN502g                 : ARR( 0.488E-13, -1250., 0.0);
+{ 64498} G2P505t +PERO9              =  0.800G1P507m + 0.200GPN502g                                : ARR( 0.100E-10,     0., 0.0);
+{ 64499} G1P508G                     =       GHD2000 +      GPD3001 +      GHO2                    : ARR( 0.200E+15,  3619., 0.0);
+{ 64500} GGH504I +GHO                =       GGD500L +      GHO                                    : ARR( 0.987E-11,     0., 0.0);
+{ 64501} GGH504I +GHO                =       GGH504L +      GHO2                                   : ARR( 0.632E-11,     0., 0.0);
+{ 64502} GGH504I +GHO                =       GGH504d +      GHO2                                   : ARR( 0.200E-10,     0., 0.0);
+{ 64503} GGH504I +GHO                =       G2G504h                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 64504} GGH504I +GHO                =       G3H503f                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 64505} GGH504I+HV               =       G1G5075 +      GHO                                    :  0.100E+01*SUN;
+{ 64506} GGH504I+HV               =       G3H2000 +      GGD3001 +      GHO2                    :  0.100E+01*SUN;
+{ 64507} GGH504I+HV               =       GHD400J +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 64508} G2G504h +GNO                =       G1G5075 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 64509} G2G504h +GNO                =       GGN502e                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 64510} G2G504h +GHO2               =       GGH504I                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 64511} G2G504h +GNO3               =       G1G5075 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 64512} G2G504h +MEPERO             =  0.480G1G5075 + 0.260GGK500W + 0.260GGD500L                 : ARR( 0.164E-12,  -795., 0.0);
+{ 64513} G2G504h +PERO1              =  0.600G1G5075 + 0.200GGK500W + 0.200GGD500L                 : ARR( 0.126E-12,  -850., 0.0);
+{ 64514} G2G504h +PERO2              =  0.560G1G5075 + 0.220GGK500W + 0.220GGD500L                 : ARR( 0.471E-13, -1350., 0.0);
+{ 64515} G2G504h +PERO3              =  0.600G1G5075 + 0.200GGK500W + 0.200GGD500L                 : ARR( 0.142E-12, -1200., 0.0);
+{ 64516} G2G504h +PERO5              =  0.600G1G5075 + 0.200GGK500W + 0.200GGD500L                 : ARR( 0.533E-11,   500., 0.0);
+{ 64517} G2G504h +PERO6              =  0.460G1G5075 + 0.270GGK500W + 0.270GGD500L                 : ARR( 0.488E-13, -1250., 0.0);
+{ 64518} G2G504h +PERO9              =  0.800G1G5075 + 0.200GGD500L                                : ARR( 0.100E-10,     0., 0.0);
+{ 64519} GAH504Q +GHO                =       GAH504h +      GHO2                                   : ARR( 0.151E-10,     0., 0.0);
+{ 64520} GAH504Q +GHO                =       GAH504T +      GHO2                                   : ARR( 0.643E-11,     0., 0.0);
+{ 64521} GAH504Q +GHO                =       GAD500M +      GHO                                    : ARR( 0.100E-10,     0., 0.0);
+{ 64522} GAH504Q +GHO                =       G2A505Y                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 64523} GAH504Q+HV               =       G3A400F +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 64524} GAH504Q+HV               =       G1A507K +      GHO                                    :  0.100E+01*SUN;
+{ 64525} G2A505Y +GNO                =       G1A507K +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 64526} G2A505Y +GNO                =       GAN502f                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 64527} G2A505Y +GHO2               =       GAH504Q                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 64528} G2A505Y +GNO3               =       G1A507K +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 64529} G2A505Y +MEPERO             =  0.480G1A507K + 0.260GAK500Z + 0.260GAD500M                 : ARR( 0.164E-12,  -795., 0.0);
+{ 64530} G2A505Y +PERO1              =  0.600G1A507K + 0.200GAK500Z + 0.200GAD500M                 : ARR( 0.126E-12,  -850., 0.0);
+{ 64531} G2A505Y +PERO2              =  0.560G1A507K + 0.220GAK500Z + 0.220GAD500M                 : ARR( 0.471E-13, -1350., 0.0);
+{ 64532} G2A505Y +PERO3              =  0.600G1A507K + 0.200GAK500Z + 0.200GAD500M                 : ARR( 0.142E-12, -1200., 0.0);
+{ 64533} G2A505Y +PERO5              =  0.600G1A507K + 0.200GAK500Z + 0.200GAD500M                 : ARR( 0.533E-11,   500., 0.0);
+{ 64534} G2A505Y +PERO6              =  0.460G1A507K + 0.270GAK500Z + 0.270GAD500M                 : ARR( 0.488E-13, -1250., 0.0);
+{ 64535} G2A505Y +PERO9              =  0.800G1A507K + 0.200GAD500M                                : ARR( 0.100E-10,     0., 0.0);
+{ 64536} GPH504S                     =       G3H503f +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 64537} GPH504S +GHO                =       GPD500L +      GHO                                    : ARR( 0.988E-11,     0., 0.0);
+{ 64538} GPH504S +GHO                =       GPH504U +      GHO2                                   : ARR( 0.633E-11,     0., 0.0);
+{ 64539} GPH504S +GHO                =       GPH504l +      GHO2                                   : ARR( 0.201E-10,     0., 0.0);
+{ 64540} GPH504S +GHO                =       G2P505u                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 64541} GPH504S+HV               =       G1P507z +      GHO                                    :  0.100E+01*SUN;
+{ 64542} GPH504S+HV               =       G3H2000 +      GPD3001 +      GHO2                    :  0.100E+01*SUN;
+{ 64543} GPH504S+HV               =       G3H503f +      GNO2                                   :  0.100E+01*SUN;
+{ 64544} G2P505u +GNO                =       G1P507z +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 64545} G2P505u +GNO                =       GPN502h                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 64546} G2P505u +GHO2               =       GPH504S                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 64547} G2P505u +GNO3               =       G1P507z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 64548} G2P505u +MEPERO             =  0.480G1P507z + 0.260GPK500W + 0.260GPD500L                 : ARR( 0.164E-12,  -795., 0.0);
+{ 64549} G2P505u +PERO1              =  0.600G1P507z + 0.200GPK500W + 0.200GPD500L                 : ARR( 0.126E-12,  -850., 0.0);
+{ 64550} G2P505u +PERO2              =  0.560G1P507z + 0.220GPK500W + 0.220GPD500L                 : ARR( 0.471E-13, -1350., 0.0);
+{ 64551} G2P505u +PERO3              =  0.600G1P507z + 0.200GPK500W + 0.200GPD500L                 : ARR( 0.142E-12, -1200., 0.0);
+{ 64552} G2P505u +PERO5              =  0.600G1P507z + 0.200GPK500W + 0.200GPD500L                 : ARR( 0.533E-11,   500., 0.0);
+{ 64553} G2P505u +PERO6              =  0.460G1P507z + 0.270GPK500W + 0.270GPD500L                 : ARR( 0.488E-13, -1250., 0.0);
+{ 64554} G2P505u +PERO9              =  0.800G1P507z + 0.200GPD500L                                : ARR( 0.100E-10,     0., 0.0);
+{ 64555} GGH504J +GHO                =       GGN502h +      GHO                                    : ARR( 0.992E-11,     0., 0.0);
+{ 64556} GGH504J +GHO                =       GGH505R +      GHO2                                   : ARR( 0.127E-11,     0., 0.0);
+{ 64557} GGH504J +GHO                =       G2G504i                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 64558} GGH504J +GHO                =       G3H504E                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 64559} GGH504J+HV               =       G1G505v +      GHO                                    :  0.100E+01*SUN;
+{ 64560} GGH504J+HV               =       G3H2000 +      GGD3001 +      GNO2                    :  0.100E+01*SUN;
+{ 64561} GGH504J+HV               =       G1G5078 +      GNO2                                   :  0.100E+01*SUN;
+{ 64562} GGH504J+HV               =       GHN401A +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 64563} G2G504i +GNO                =       G1G505v +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 64564} G2G504i +GNO                =       GGN502Q                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 64565} G2G504i +GHO2               =       GGH504J                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 64566} G2G504i +GNO3               =       G1G505v +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 64567} G2G504i +MEPERO             =  0.480G1G505v + 0.260GGN501x + 0.260GGN502h                 : ARR( 0.164E-12,  -795., 0.0);
+{ 64568} G2G504i +PERO1              =  0.600G1G505v + 0.200GGN501x + 0.200GGN502h                 : ARR( 0.126E-12,  -850., 0.0);
+{ 64569} G2G504i +PERO2              =  0.560G1G505v + 0.220GGN501x + 0.220GGN502h                 : ARR( 0.471E-13, -1350., 0.0);
+{ 64570} G2G504i +PERO3              =  0.600G1G505v + 0.200GGN501x + 0.200GGN502h                 : ARR( 0.142E-12, -1200., 0.0);
+{ 64571} G2G504i +PERO5              =  0.600G1G505v + 0.200GGN501x + 0.200GGN502h                 : ARR( 0.533E-11,   500., 0.0);
+{ 64572} G2G504i +PERO6              =  0.460G1G505v + 0.270GGN501x + 0.270GGN502h                 : ARR( 0.488E-13, -1250., 0.0);
+{ 64573} G2G504i +PERO9              =  0.800G1G505v + 0.200GGN502h                                : ARR( 0.100E-10,     0., 0.0);
+{ 64574} GAH504R +GHO                =       GAH504l +      GHO2                                   : ARR( 0.977E-12,     0., 0.0);
+{ 64575} GAH504R +GHO                =       GAN502i +      GHO                                    : ARR( 0.103E-10,     0., 0.0);
+{ 64576} GAH504R +GHO                =       G2A503x                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 64577} GAH504R+HV               =       G1A507g +      GNO2                                   :  0.100E+01*SUN;
+{ 64578} GAH504R+HV               =       G3A400B +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 64579} GAH504R+HV               =       G1A504x +      GHO                                    :  0.100E+01*SUN;
+{ 64580} GHD501T +GHO                =       GDD500D +      GHO                                    : ARR( 0.537E-10,     0., 0.0);
+{ 64581} GHD501T +GHO                =       GHD501W +      GHO2                                   : ARR( 0.662E-11,     0., 0.0);
+{ 64582} GHD501T +GHO                =       G3H3003 + 2.000GCO                                    : ARR( 0.133E-10,     0., 0.0);
+{ 64583} GHD501T +GNO3               =       G3H3003 +      GHNO3   + 2.000GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 64584} GHD501T+HV               =       G1D501L +      GHO                                    :  0.100E+01*SUN;
+{ 64585} GHD501T+HV               =       G3H3003 +      G3D2000                                :  0.100E+01*SUN;
+{ 64586} GHD501T+HV               =       G3H3003 +      GCO     +      GCO     +      GHO2     :  0.100E+01*SUN;
+{ 64587} GHD501T+HV               =       GHD400F +      GCO                                    :  0.100E+01*SUN;
+{ 64588} GHD501T+HV               =       GHD3005 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 64589} GGH504K +GHO                =       GGD500K +      GHO                                    : ARR( 0.162E-10,     0., 0.0);
+{ 64590} GGH504K +GHO                =       GGH504d +      GHO2                                   : ARR( 0.328E-10,     0., 0.0);
+{ 64591} GGH504K +GHO                =       GGH502Z +      GHO2                                   : ARR( 0.631E-11,     0., 0.0);
+{ 64592} GGH504K +GHO                =       G2G504j                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 64593} GGH504K +GHO                =       G3H5054                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 64594} GGH504K+HV               =       G1G503m +      GHO                                    :  0.100E+01*SUN;
+{ 64595} GGH504K+HV               =       GAH400f +      GCO2                                   :  0.100E+01*SUN;
+{ 64596} G2G504j +GNO                =       G1G503m +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 64597} G2G504j +GNO                =       GGN501Q                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 64598} G2G504j +GHO2               =       GGH504K                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 64599} G2G504j +GNO3               =       G1G503m +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 64600} G2G504j +MEPERO             =  0.480G1G503m + 0.260GGK500P + 0.260GGD500K                 : ARR( 0.164E-12,  -795., 0.0);
+{ 64601} G2G504j +PERO1              =  0.600G1G503m + 0.200GGK500P + 0.200GGD500K                 : ARR( 0.126E-12,  -850., 0.0);
+{ 64602} G2G504j +PERO2              =  0.560G1G503m + 0.220GGK500P + 0.220GGD500K                 : ARR( 0.471E-13, -1350., 0.0);
+{ 64603} G2G504j +PERO3              =  0.600G1G503m + 0.200GGK500P + 0.200GGD500K                 : ARR( 0.142E-12, -1200., 0.0);
+{ 64604} G2G504j +PERO5              =  0.600G1G503m + 0.200GGK500P + 0.200GGD500K                 : ARR( 0.533E-11,   500., 0.0);
+{ 64605} G2G504j +PERO6              =  0.460G1G503m + 0.270GGK500P + 0.270GGD500K                 : ARR( 0.488E-13, -1250., 0.0);
+{ 64606} G2G504j +PERO9              =  0.800G1G503m + 0.200GGD500K                                : ARR( 0.100E-10,     0., 0.0);
+{ 64607} G3H5054 +GHO2               =  0.800GGH504K + 0.200GAH504S + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 64608} G3H5054 +GNO                =       G3H400X +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 64609} G3H5054 +GNO2               =       GPH504T                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 64610} G3H5054 +GNO3               =       G3H400X +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 64611} G3H5054 +MEPERO             =  0.685G3H400X + 0.315GAH504S + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 64612} G3H5054 +PERO1              =  0.800G3H400X + 0.200GAH504S + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 64613} G3H5054 +PERO2              =  0.750G3H400X + 0.250GAH504S + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 64614} G3H5054 +PERO3              =  0.800G3H400X + 0.200GAH504S + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 64615} G3H5054 +PERO5              =  0.650G3H400X + 0.350GAH504S + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 64616} G3H5054 +PERO6              =  0.650G3H400X + 0.350GAH504S + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 64617} G3H5054 +PERO9              =       G3H400X +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 64618} GAH504S +GHO                =       GAH502p +      GHO2                                   : ARR( 0.637E-11,     0., 0.0);
+{ 64619} GAH504S +GHO                =       GAH504h +      GHO2                                   : ARR( 0.331E-10,     0., 0.0);
+{ 64620} GAH504S +GHO                =       GAD500N +      GHO                                    : ARR( 0.163E-10,     0., 0.0);
+{ 64621} GAH504S +GHO                =       G2A505Z                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 64622} GAH504S+HV               =       GHD400E +      GCO2                                   :  0.100E+01*SUN;
+{ 64623} GAH504S+HV               =       G1A504e +      GHO                                    :  0.100E+01*SUN;
+{ 64624} G2A505Z +GNO                =       G1A504e +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 64625} G2A505Z +GNO                =       GAN501U                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 64626} G2A505Z +GHO2               =       GAH504S                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 64627} G2A505Z +GNO3               =       G1A504e +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 64628} G2A505Z +MEPERO             =  0.480G1A504e + 0.260GAK500b + 0.260GAD500N                 : ARR( 0.164E-12,  -795., 0.0);
+{ 64629} G2A505Z +PERO1              =  0.600G1A504e + 0.200GAK500b + 0.200GAD500N                 : ARR( 0.126E-12,  -850., 0.0);
+{ 64630} G2A505Z +PERO2              =  0.560G1A504e + 0.220GAK500b + 0.220GAD500N                 : ARR( 0.471E-13, -1350., 0.0);
+{ 64631} G2A505Z +PERO3              =  0.600G1A504e + 0.200GAK500b + 0.200GAD500N                 : ARR( 0.142E-12, -1200., 0.0);
+{ 64632} G2A505Z +PERO5              =  0.600G1A504e + 0.200GAK500b + 0.200GAD500N                 : ARR( 0.533E-11,   500., 0.0);
+{ 64633} G2A505Z +PERO6              =  0.460G1A504e + 0.270GAK500b + 0.270GAD500N                 : ARR( 0.488E-13, -1250., 0.0);
+{ 64634} G2A505Z +PERO9              =  0.800G1A504e + 0.200GAD500N                                : ARR( 0.100E-10,     0., 0.0);
+{ 64635} GPH504T                     =       G3H5054 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 64636} GPH504T +GHO                =       GPD500K +      GHO                                    : ARR( 0.162E-10,     0., 0.0);
+{ 64637} GPH504T +GHO                =       GPH504l +      GHO2                                   : ARR( 0.328E-10,     0., 0.0);
+{ 64638} GPH504T +GHO                =       GPH502x +      GHO2                                   : ARR( 0.631E-11,     0., 0.0);
+{ 64639} GPH504T +GHO                =       G2P505v                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 64640} GPH504T+HV               =       G1P504f +      GHO                                    :  0.100E+01*SUN;
+{ 64641} GPH504T+HV               =       G3H400X +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 64642} G2P505v +GNO                =       G1P504f +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 64643} G2P505v +GNO                =       GPN501W                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 64644} G2P505v +GHO2               =       GPH504T                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 64645} G2P505v +GNO3               =       G1P504f +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 64646} G2P505v +MEPERO             =  0.480G1P504f + 0.260GPK500P + 0.260GPD500K                 : ARR( 0.164E-12,  -795., 0.0);
+{ 64647} G2P505v +PERO1              =  0.600G1P504f + 0.200GPK500P + 0.200GPD500K                 : ARR( 0.126E-12,  -850., 0.0);
+{ 64648} G2P505v +PERO2              =  0.560G1P504f + 0.220GPK500P + 0.220GPD500K                 : ARR( 0.471E-13, -1350., 0.0);
+{ 64649} G2P505v +PERO3              =  0.600G1P504f + 0.200GPK500P + 0.200GPD500K                 : ARR( 0.142E-12, -1200., 0.0);
+{ 64650} G2P505v +PERO5              =  0.600G1P504f + 0.200GPK500P + 0.200GPD500K                 : ARR( 0.533E-11,   500., 0.0);
+{ 64651} G2P505v +PERO6              =  0.460G1P504f + 0.270GPK500P + 0.270GPD500K                 : ARR( 0.488E-13, -1250., 0.0);
+{ 64652} G2P505v +PERO9              =  0.800G1P504f + 0.200GPD500K                                : ARR( 0.100E-10,     0., 0.0);
+{ 64653} GGH504L +GHO                =       GGD500M +      GHO                                    : ARR( 0.987E-11,     0., 0.0);
+{ 64654} GGH504L +GHO                =       GGH504q +      GHO2                                   : ARR( 0.386E-11,     0., 0.0);
+{ 64655} GGH504L +GHO                =       G2G504k                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 64656} GGH504L +GHO                =       G3H5052                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 64657} GGH504L+HV               =       G1G505x +      GHO                                    :  0.100E+01*SUN;
+{ 64658} GGH504L+HV               =       G3H2000 +      G3G3002                                :  0.100E+01*SUN;
+{ 64659} GGH504L+HV               =       GHD400N +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 64660} G2G504k +GNO                =       G1G505x +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 64661} G2G504k +GNO                =       GGN502R                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 64662} G2G504k +GHO2               =       GGH504L                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 64663} G2G504k +GNO3               =       G1G505x +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 64664} G2G504k +MEPERO             =  0.480G1G505x + 0.260GGK500a + 0.260GGD500M                 : ARR( 0.164E-12,  -795., 0.0);
+{ 64665} G2G504k +PERO1              =  0.600G1G505x + 0.200GGK500a + 0.200GGD500M                 : ARR( 0.126E-12,  -850., 0.0);
+{ 64666} G2G504k +PERO2              =  0.560G1G505x + 0.220GGK500a + 0.220GGD500M                 : ARR( 0.471E-13, -1350., 0.0);
+{ 64667} G2G504k +PERO3              =  0.600G1G505x + 0.200GGK500a + 0.200GGD500M                 : ARR( 0.142E-12, -1200., 0.0);
+{ 64668} G2G504k +PERO5              =  0.600G1G505x + 0.200GGK500a + 0.200GGD500M                 : ARR( 0.533E-11,   500., 0.0);
+{ 64669} G2G504k +PERO6              =  0.460G1G505x + 0.270GGK500a + 0.270GGD500M                 : ARR( 0.488E-13, -1250., 0.0);
+{ 64670} G2G504k +PERO9              =  0.800G1G505x + 0.200GGD500M                                : ARR( 0.100E-10,     0., 0.0);
+{ 64671} GAH504T +GHO                =       GAH504t +      GHO2                                   : ARR( 0.295E-11,     0., 0.0);
+{ 64672} GAH504T +GHO                =       GAD500O +      GHO                                    : ARR( 0.102E-10,     0., 0.0);
+{ 64673} GAH504T +GHO                =       G2A505a                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 64674} GAH504T+HV               =       G3A3002 +      G3H2000                                :  0.100E+01*SUN;
+{ 64675} GAH504T+HV               =       G1A506m +      GHO                                    :  0.100E+01*SUN;
+{ 64676} G2A505a +GNO                =       G1A506m +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 64677} G2A505a +GNO                =       GAN502a                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 64678} G2A505a +GHO2               =       GAH504T                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 64679} G2A505a +GNO3               =       G1A506m +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 64680} G2A505a +MEPERO             =  0.480G1A506m + 0.260GAK500a + 0.260GAD500O                 : ARR( 0.164E-12,  -795., 0.0);
+{ 64681} G2A505a +PERO1              =  0.600G1A506m + 0.200GAK500a + 0.200GAD500O                 : ARR( 0.126E-12,  -850., 0.0);
+{ 64682} G2A505a +PERO2              =  0.560G1A506m + 0.220GAK500a + 0.220GAD500O                 : ARR( 0.471E-13, -1350., 0.0);
+{ 64683} G2A505a +PERO3              =  0.600G1A506m + 0.200GAK500a + 0.200GAD500O                 : ARR( 0.142E-12, -1200., 0.0);
+{ 64684} G2A505a +PERO5              =  0.600G1A506m + 0.200GAK500a + 0.200GAD500O                 : ARR( 0.533E-11,   500., 0.0);
+{ 64685} G2A505a +PERO6              =  0.460G1A506m + 0.270GAK500a + 0.270GAD500O                 : ARR( 0.488E-13, -1250., 0.0);
+{ 64686} G2A505a +PERO9              =  0.800G1A506m + 0.200GAD500O                                : ARR( 0.100E-10,     0., 0.0);
+{ 64687} GPH504U                     =       G3H5052 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 64688} GPH504U +GHO                =       GPD500M +      GHO                                    : ARR( 0.989E-11,     0., 0.0);
+{ 64689} GPH504U +GHO                =       GPH5055 +      GHO2                                   : ARR( 0.386E-11,     0., 0.0);
+{ 64690} GPH504U +GHO                =       G2P505w                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 64691} GPH504U+HV               =       G1P507M +      GHO                                    :  0.100E+01*SUN;
+{ 64692} GPH504U+HV               =       G3H2000 +      G3P3002                                :  0.100E+01*SUN;
+{ 64693} GPH504U+HV               =       G3H5052 +      GNO2                                   :  0.100E+01*SUN;
+{ 64694} G2P505w +GNO                =       G1P507M +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 64695} G2P505w +GNO                =       GPN502d                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 64696} G2P505w +GHO2               =       GPH504U                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 64697} G2P505w +GNO3               =       G1P507M +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 64698} G2P505w +MEPERO             =  0.480G1P507M + 0.260GPK500c + 0.260GPD500M                 : ARR( 0.164E-12,  -795., 0.0);
+{ 64699} G2P505w +PERO1              =  0.600G1P507M + 0.200GPK500c + 0.200GPD500M                 : ARR( 0.126E-12,  -850., 0.0);
+{ 64700} G2P505w +PERO2              =  0.560G1P507M + 0.220GPK500c + 0.220GPD500M                 : ARR( 0.471E-13, -1350., 0.0);
+{ 64701} G2P505w +PERO3              =  0.600G1P507M + 0.200GPK500c + 0.200GPD500M                 : ARR( 0.142E-12, -1200., 0.0);
+{ 64702} G2P505w +PERO5              =  0.600G1P507M + 0.200GPK500c + 0.200GPD500M                 : ARR( 0.533E-11,   500., 0.0);
+{ 64703} G2P505w +PERO6              =  0.460G1P507M + 0.270GPK500c + 0.270GPD500M                 : ARR( 0.488E-13, -1250., 0.0);
+{ 64704} G2P505w +PERO9              =  0.800G1P507M + 0.200GPD500M                                : ARR( 0.100E-10,     0., 0.0);
+{ 64705} GGH504M +GHO                =       GGN501z +      GHO                                    : ARR( 0.262E-10,     0., 0.0);
+{ 64706} GGH504M +GHO                =       GGH5051 +      GHO2                                   : ARR( 0.630E-11,     0., 0.0);
+{ 64707} GGH504M +GHO                =       G3G5018                                               : ARR( 0.208E-10,     0., 0.0);
+{ 64708} GGH504M +GHO                =       G3H503i                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 64709} GGH504M +GHO                =       G2G504l                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 64710} GGH504M +GNO3               =       G3G5018 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 64711} GGH504M+HV               =       GHD400L +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 64712} GGH504M+HV               =       G1G506o +      GNO2                                   :  0.100E+01*SUN;
+{ 64713} GGH504M+HV               =       G1G5069 +      GHO                                    :  0.100E+01*SUN;
+{ 64714} GGH504M+HV               =       GGH400o +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 64715} G3G5018 +GHO2               =  0.800GGG500e + 0.200GAG501C + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 64716} G3G5018 +GNO                =       GGH400o +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 64717} G3G5018 +GNO2               =       GPG501B                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 64718} G3G5018 +GNO3               =       GGH400o +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 64719} G3G5018 +MEPERO             =  0.685GGH400o + 0.315GAG501C + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64720} G3G5018 +PERO1              =  0.800GGH400o + 0.200GAG501C + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64721} G3G5018 +PERO2              =  0.750GGH400o + 0.250GAG501C + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64722} G3G5018 +PERO3              =  0.800GGH400o + 0.200GAG501C + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64723} G3G5018 +PERO5              =  0.650GGH400o + 0.350GAG501C + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64724} G3G5018 +PERO6              =  0.650GGH400o + 0.350GAG501C + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64725} G3G5018 +PERO9              =       GGH400o +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 64726} G2G504l +GNO                =       G1G5069 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 64727} G2G504l +GNO                =       GGN502U                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 64728} G2G504l +GHO2               =       GGH504M                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 64729} G2G504l +GNO3               =       G1G5069 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 64730} G2G504l +MEPERO             =  0.340G1G5069 + 0.330GGN502f + 0.330GGN501z                 : ARR( 0.565E-13,  -845., 0.0);
+{ 64731} G2G504l +PERO1              =  0.460G1G5069 + 0.270GGN502f + 0.270GGN501z                 : ARR( 0.434E-13,  -900., 0.0);
+{ 64732} G2G504l +PERO2              =  0.400G1G5069 + 0.300GGN502f + 0.300GGN501z                 : ARR( 0.162E-13, -1400., 0.0);
+{ 64733} G2G504l +PERO3              =  0.460G1G5069 + 0.270GGN502f + 0.270GGN501z                 : ARR( 0.488E-13, -1250., 0.0);
+{ 64734} G2G504l +PERO5              =  0.460G1G5069 + 0.270GGN502f + 0.270GGN501z                 : ARR( 0.183E-11,   450., 0.0);
+{ 64735} G2G504l +PERO6              =  0.300G1G5069 + 0.350GGN502f + 0.350GGN501z                 : ARR( 0.168E-13, -1300., 0.0);
+{ 64736} G2G504l +PERO9              =  0.650G1G5069 + 0.350GGN501z                                : ARR( 0.100E-10,     0., 0.0);
+{ 64737} GGH504N +GHO                =       GGD500H +      GHO                                    : ARR( 0.845E-10,     0., 0.0);
+{ 64738} GGH504N +GHO                =       GGH5053 +      GHO2                                   : ARR( 0.211E-10,     0., 0.0);
+{ 64739} GGH504N +GHO                =       G3G5019                                               : ARR( 0.220E-10,     0., 0.0);
+{ 64740} GGH504N +GNO3               =       G3G5019 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 64741} GGH504N+HV               =       GAH400k +      GCO2                                   :  0.100E+01*SUN;
+{ 64742} GGH504N+HV               =       G1G503q +      GHO                                    :  0.100E+01*SUN;
+{ 64743} GGH504N+HV               =       GGH400p +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 64744} G3G5019 +GHO2               =  0.800GGG500j + 0.200GAG501N + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 64745} G3G5019 +GNO                =       GGH400p +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 64746} G3G5019 +GNO2               =       GPG501M                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 64747} G3G5019 +GNO3               =       GGH400p +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 64748} G3G5019 +MEPERO             =  0.685GGH400p + 0.315GAG501N + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64749} G3G5019 +PERO1              =  0.800GGH400p + 0.200GAG501N + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64750} G3G5019 +PERO2              =  0.750GGH400p + 0.250GAG501N + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64751} G3G5019 +PERO3              =  0.800GGH400p + 0.200GAG501N + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64752} G3G5019 +PERO5              =  0.650GGH400p + 0.350GAG501N + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64753} G3G5019 +PERO6              =  0.650GGH400p + 0.350GAG501N + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64754} G3G5019 +PERO9              =       GGH400p +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 64755} GGG500E +GHO                =       GGG500j +      GHO2                                   : ARR( 0.126E-10,     0., 0.0);
+{ 64756} GGG500E +GHO                =       GGG500H +      GHO                                    : ARR( 0.414E-10,     0., 0.0);
+{ 64757} GGG500E +GHO                =       G3G500M                                               : ARR( 0.382E-11,  -190., 0.0);
+{ 64758} GGG500E +GHO                =       G2G502k                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 64759} GGG500E+HV               =       GGH400i +      GHO     +      GHO2    +      GCO2     :  0.200E+01*SUN;
+{ 64760} GGG500E+HV               =       G1G503r +      GHO                                    :  0.100E+01*SUN;
+{ 64761} GAG500S +GHO                =       GAG501O +      GHO2                                   : ARR( 0.471E-11,     0., 0.0);
+{ 64762} GAG500S +GHO                =       GAG500W +      GHO                                    : ARR( 0.418E-10,     0., 0.0);
+{ 64763} GAG500S +GHO                =       GAG501N +      GHO2                                   : ARR( 0.637E-11,     0., 0.0);
+{ 64764} GAG500S +GHO                =       G2A503d                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 64765} GAG500S +GHO                =       G3A500P                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 64766} GAG500S+HV               =       G1A504a +      GHO                                    :  0.100E+01*SUN;
+{ 64767} GAG500S+HV               =       GAH400o +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 64768} GPG500Q                     =       G3G500M +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 64769} GPG500Q +GHO                =       GPG501M +      GHO2                                   : ARR( 0.631E-11,     0., 0.0);
+{ 64770} GPG500Q +GHO                =       GPG500S +      GHO                                    : ARR( 0.414E-10,     0., 0.0);
+{ 64771} GPG500Q +GHO                =       GPG501N +      GHO2                                   : ARR( 0.631E-11,     0., 0.0);
+{ 64772} GPG500Q +GHO                =       G3P500N                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 64773} GPG500Q +GHO                =       G2P503h                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 64774} GPG500Q+HV               =       GPH400p +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 64775} GPG500Q+HV               =       G1P504h +      GHO                                    :  0.100E+01*SUN;
+{ 64776} GPG500Q+HV               =       G3G500M +      GNO2                                   :  0.100E+01*SUN;
+{ 64777} GPH504W                     =       G3H503i +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 64778} GPH504W +GHO                =       GPN502L +      GHO                                    : ARR( 0.262E-10,     0., 0.0);
+{ 64779} GPH504W +GHO                =       GPH505H +      GHO2                                   : ARR( 0.631E-11,     0., 0.0);
+{ 64780} GPH504W +GHO                =       G3P501A                                               : ARR( 0.209E-10,     0., 0.0);
+{ 64781} GPH504W +GHO                =       G2P505x                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 64782} GPH504W +GNO3               =       G3P501A +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 64783} GPH504W+HV               =       G3H503i +      GNO2                                   :  0.100E+01*SUN;
+{ 64784} GPH504W+HV               =       G1P5087 +      GNO2                                   :  0.100E+01*SUN;
+{ 64785} GPH504W+HV               =       G1P506U +      GHO                                    :  0.100E+01*SUN;
+{ 64786} GPH504W+HV               =       GPH400s +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 64787} G3P501A +GHO2               =  0.800GPG501I + 0.200GPA501I + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 64788} G3P501A +GNO                =       GPH400s +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 64789} G3P501A +GNO2               =       GPP500e                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 64790} G3P501A +GNO3               =       GPH400s +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 64791} G3P501A +MEPERO             =  0.685GPH400s + 0.315GPA501I + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64792} G3P501A +PERO1              =  0.800GPH400s + 0.200GPA501I + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64793} G3P501A +PERO2              =  0.750GPH400s + 0.250GPA501I + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64794} G3P501A +PERO3              =  0.800GPH400s + 0.200GPA501I + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64795} G3P501A +PERO5              =  0.650GPH400s + 0.350GPA501I + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64796} G3P501A +PERO6              =  0.650GPH400s + 0.350GPA501I + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64797} G3P501A +PERO9              =       GPH400s +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 64798} G2P505x +GNO                =       G1P506U +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 64799} G2P505x +GNO                =       GPN502G                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 64800} G2P505x +GHO2               =       GPH504W                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 64801} G2P505x +GNO3               =       G1P506U +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 64802} G2P505x +MEPERO             =  0.340G1P506U + 0.330GPN502i + 0.330GPN502L                 : ARR( 0.565E-13,  -845., 0.0);
+{ 64803} G2P505x +PERO1              =  0.460G1P506U + 0.270GPN502i + 0.270GPN502L                 : ARR( 0.434E-13,  -900., 0.0);
+{ 64804} G2P505x +PERO2              =  0.400G1P506U + 0.300GPN502i + 0.300GPN502L                 : ARR( 0.162E-13, -1400., 0.0);
+{ 64805} G2P505x +PERO3              =  0.460G1P506U + 0.270GPN502i + 0.270GPN502L                 : ARR( 0.488E-13, -1250., 0.0);
+{ 64806} G2P505x +PERO5              =  0.460G1P506U + 0.270GPN502i + 0.270GPN502L                 : ARR( 0.183E-11,   450., 0.0);
+{ 64807} G2P505x +PERO6              =  0.300G1P506U + 0.350GPN502i + 0.350GPN502L                 : ARR( 0.168E-13, -1300., 0.0);
+{ 64808} G2P505x +PERO9              =  0.650G1P506U + 0.350GPN502L                                : ARR( 0.100E-10,     0., 0.0);
+{ 64809} GPH504X                     =       G3H5055 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 64810} GPH504X +GHO                =       GPD500I +      GHO                                    : ARR( 0.822E-10,     0., 0.0);
+{ 64811} GPH504X +GHO                =       GPH505J +      GHO2                                   : ARR( 0.205E-10,     0., 0.0);
+{ 64812} GPH504X +GHO                =       G3P501B                                               : ARR( 0.214E-10,     0., 0.0);
+{ 64813} GPH504X +GNO3               =       G3P501B +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 64814} GPH504X+HV               =       G3H400l +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 64815} GPH504X+HV               =       G1P504k +      GHO                                    :  0.100E+01*SUN;
+{ 64816} GPH504X+HV               =       GPH400t +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 64817} G3H5055 +GHO2               =  0.800GGH504N + 0.200GAH504X + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 64818} G3H5055 +GNO                =       G3H400l +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 64819} G3H5055 +GNO2               =       GPH504X                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 64820} G3H5055 +GNO3               =       G3H400l +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 64821} G3H5055 +MEPERO             =  0.685G3H400l + 0.315GAH504X + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 64822} G3H5055 +PERO1              =  0.800G3H400l + 0.200GAH504X + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 64823} G3H5055 +PERO2              =  0.750G3H400l + 0.250GAH504X + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 64824} G3H5055 +PERO3              =  0.800G3H400l + 0.200GAH504X + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 64825} G3H5055 +PERO5              =  0.650G3H400l + 0.350GAH504X + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 64826} G3H5055 +PERO6              =  0.650G3H400l + 0.350GAH504X + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 64827} G3H5055 +PERO9              =       G3H400l +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 64828} G3P501B +GHO2               =  0.800GPG501N + 0.200GPA501M + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 64829} G3P501B +GNO                =       GPH400t +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 64830} G3P501B +GNO2               =       GPP500l                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 64831} G3P501B +GNO3               =       GPH400t +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 64832} G3P501B +MEPERO             =  0.685GPH400t + 0.315GPA501M + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64833} G3P501B +PERO1              =  0.800GPH400t + 0.200GPA501M + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64834} G3P501B +PERO2              =  0.750GPH400t + 0.250GPA501M + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64835} G3P501B +PERO3              =  0.800GPH400t + 0.200GPA501M + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64836} G3P501B +PERO5              =  0.650GPH400t + 0.350GPA501M + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64837} G3P501B +PERO6              =  0.650GPH400t + 0.350GPA501M + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64838} G3P501B +PERO9              =       GPH400t +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 64839} GPA500T                     =       G3A500P +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 64840} GPA500T +GHO                =       GPA501R +      GHO2                                   : ARR( 0.472E-11,     0., 0.0);
+{ 64841} GPA500T +GHO                =       GPA500W +      GHO                                    : ARR( 0.418E-10,     0., 0.0);
+{ 64842} GPA500T +GHO                =       GPA501M +      GHO2                                   : ARR( 0.637E-11,     0., 0.0);
+{ 64843} GPA500T +GHO                =       G2P503i                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 64844} GPA500T+HV               =       G1P504i +      GHO                                    :  0.100E+01*SUN;
+{ 64845} GPA500T+HV               =       G3A500P +      GNO2                                   :  0.100E+01*SUN;
+{ 64846} GPP500F                     =       G3P500N +      GNO2                                   : ARR( 0.400E+16, 12800., 0.0);
+{ 64847} GPP500F +GHO                =       GPP500l +      GHO2                                   : ARR( 0.126E-10,     0., 0.0);
+{ 64848} GPP500F +GHO                =       GPP500H +      GHO                                    : ARR( 0.414E-10,     0., 0.0);
+{ 64849} GPP500F +GHO                =       G2P503k                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 64850} GPP500F+HV               =       G3P500N +      GNO2                                   :  0.200E+01*SUN;
+{ 64851} GPP500F+HV               =       G1P504l +      GHO                                    :  0.100E+01*SUN;
+{ 64852} GAH504U +GHO                =       GAN502A +      GHO                                    : ARR( 0.265E-10,     0., 0.0);
+{ 64853} GAH504U +GHO                =       GAH505A +      GHO2                                   : ARR( 0.636E-11,     0., 0.0);
+{ 64854} GAH504U +GHO                =       G3A501C                                               : ARR( 0.210E-10,     0., 0.0);
+{ 64855} GAH504U +GHO                =       G2A505b                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 64856} GAH504U +GNO3               =       G3A501C +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 64857} GAH504U+HV               =       G1A507T +      GNO2                                   :  0.100E+01*SUN;
+{ 64858} GAH504U+HV               =       G1A505o +      GHO                                    :  0.100E+01*SUN;
+{ 64859} GAH504U+HV               =       GAH400r +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 64860} G3A501C +GHO2               =  0.800GAG501I + 0.200GAA500j + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 64861} G3A501C +GNO                =       GAH400r +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 64862} G3A501C +GNO2               =       GPA501N                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 64863} G3A501C +GNO3               =       GAH400r +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 64864} G3A501C +MEPERO             =  0.685GAH400r + 0.315GAA500j + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64865} G3A501C +PERO1              =  0.800GAH400r + 0.200GAA500j + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64866} G3A501C +PERO2              =  0.750GAH400r + 0.250GAA500j + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64867} G3A501C +PERO3              =  0.800GAH400r + 0.200GAA500j + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64868} G3A501C +PERO5              =  0.650GAH400r + 0.350GAA500j + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64869} G3A501C +PERO6              =  0.650GAH400r + 0.350GAA500j + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64870} G3A501C +PERO9              =       GAH400r +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 64871} G2A505b +GNO                =       G1A505o +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 64872} G2A505b +GNO                =       GAN5028                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 64873} G2A505b +GHO2               =       GAH504U                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 64874} G2A505b +GNO3               =       G1A505o +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 64875} G2A505b +MEPERO             =  0.340G1A505o + 0.330GAN502g + 0.330GAN502A                 : ARR( 0.565E-13,  -845., 0.0);
+{ 64876} G2A505b +PERO1              =  0.460G1A505o + 0.270GAN502g + 0.270GAN502A                 : ARR( 0.434E-13,  -900., 0.0);
+{ 64877} G2A505b +PERO2              =  0.400G1A505o + 0.300GAN502g + 0.300GAN502A                 : ARR( 0.162E-13, -1400., 0.0);
+{ 64878} G2A505b +PERO3              =  0.460G1A505o + 0.270GAN502g + 0.270GAN502A                 : ARR( 0.488E-13, -1250., 0.0);
+{ 64879} G2A505b +PERO5              =  0.460G1A505o + 0.270GAN502g + 0.270GAN502A                 : ARR( 0.183E-11,   450., 0.0);
+{ 64880} G2A505b +PERO6              =  0.300G1A505o + 0.350GAN502g + 0.350GAN502A                 : ARR( 0.168E-13, -1300., 0.0);
+{ 64881} G2A505b +PERO9              =  0.650G1A505o + 0.350GAN502A                                : ARR( 0.100E-10,     0., 0.0);
+{ 64882} GGH504O +GHO                =       GGH5053 +      GHO2                                   : ARR( 0.200E-10,     0., 0.0);
+{ 64883} GGH504O +GHO                =       GGD500M +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 64884} GGH504O +GHO                =       G3G400G +      GCO                                    : ARR( 0.127E-10,     0., 0.0);
+{ 64885} GGH504O +GHO                =       G3H503k                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 64886} GGH504O +GHO                =       G2G504m                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 64887} GGH504O +GNO3               =       G3G400G +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 64888} GGH504O+HV               =       GHD400K +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 64889} GGH504O+HV               =       G1G507B +      GHO                                    :  0.100E+01*SUN;
+{ 64890} GGH504O+HV               =       G3G400G +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 64891} GGH504O+HV               =       GGH400i +      GCO                                    :  0.100E+01*SUN;
+{ 64892} GGH504O+HV               =       GGH3004 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 64893} G2G504m +GNO                =       G1G507B +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 64894} G2G504m +GNO                =       GGN502h                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 64895} G2G504m +GHO2               =       GGH504O                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 64896} G2G504m +GNO3               =       G1G507B +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 64897} G2G504m +MEPERO             =  0.340G1G507B + 0.330GGD500L + 0.330GGD500M                 : ARR( 0.565E-13,  -845., 0.0);
+{ 64898} G2G504m +PERO1              =  0.460G1G507B + 0.270GGD500L + 0.270GGD500M                 : ARR( 0.434E-13,  -900., 0.0);
+{ 64899} G2G504m +PERO2              =  0.400G1G507B + 0.300GGD500L + 0.300GGD500M                 : ARR( 0.162E-13, -1400., 0.0);
+{ 64900} G2G504m +PERO3              =  0.460G1G507B + 0.270GGD500L + 0.270GGD500M                 : ARR( 0.488E-13, -1250., 0.0);
+{ 64901} G2G504m +PERO5              =  0.460G1G507B + 0.270GGD500L + 0.270GGD500M                 : ARR( 0.183E-11,   450., 0.0);
+{ 64902} G2G504m +PERO6              =  0.300G1G507B + 0.350GGD500L + 0.350GGD500M                 : ARR( 0.168E-13, -1300., 0.0);
+{ 64903} G2G504m +PERO9              =  0.650G1G507B + 0.350GGD500M                                : ARR( 0.100E-10,     0., 0.0);
+{ 64904} G1G507B                     =       GGD3001 +      G3D2000                                : ARR( 0.200E+15,  2403., 0.0);
+{ 64905} GAH504W +GHO                =       GAH505C +      GHO2                                   : ARR( 0.149E-10,     0., 0.0);
+{ 64906} GAH504W +GHO                =       GAD500O +      GHO                                    : ARR( 0.254E-10,     0., 0.0);
+{ 64907} GAH504W +GHO                =       G3A400I +      GCO                                    : ARR( 0.128E-10,     0., 0.0);
+{ 64908} GAH504W +GHO                =       G2A505c                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 64909} GAH504W +GNO3               =       G3A400I +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 64910} GAH504W+HV               =       G1A507j +      GHO                                    :  0.100E+01*SUN;
+{ 64911} GAH504W+HV               =       G3A400I +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 64912} GAH504W+HV               =       GAH400o +      GCO                                    :  0.100E+01*SUN;
+{ 64913} GAH504W+HV               =       GAH3004 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 64914} G2A505c +GNO                =       G1A507j +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 64915} G2A505c +GNO                =       GAN502i                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 64916} G2A505c +GHO2               =       GAH504W                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 64917} G2A505c +GNO3               =       G1A507j +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 64918} G2A505c +MEPERO             =  0.340G1A507j + 0.330GAD500M + 0.330GAD500O                 : ARR( 0.565E-13,  -845., 0.0);
+{ 64919} G2A505c +PERO1              =  0.460G1A507j + 0.270GAD500M + 0.270GAD500O                 : ARR( 0.434E-13,  -900., 0.0);
+{ 64920} G2A505c +PERO2              =  0.400G1A507j + 0.300GAD500M + 0.300GAD500O                 : ARR( 0.162E-13, -1400., 0.0);
+{ 64921} G2A505c +PERO3              =  0.460G1A507j + 0.270GAD500M + 0.270GAD500O                 : ARR( 0.488E-13, -1250., 0.0);
+{ 64922} G2A505c +PERO5              =  0.460G1A507j + 0.270GAD500M + 0.270GAD500O                 : ARR( 0.183E-11,   450., 0.0);
+{ 64923} G2A505c +PERO6              =  0.300G1A507j + 0.350GAD500M + 0.350GAD500O                 : ARR( 0.168E-13, -1300., 0.0);
+{ 64924} G2A505c +PERO9              =  0.650G1A507j + 0.350GAD500O                                : ARR( 0.100E-10,     0., 0.0);
+{ 64925} G1A507j                     =       GAD3001 +      G3D2000                                : ARR( 0.200E+15,  2403., 0.0);
+{ 64926} GPH504Y                     =       G3H503k +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 64927} GPH504Y +GHO                =       GPH505J +      GHO2                                   : ARR( 0.200E-10,     0., 0.0);
+{ 64928} GPH504Y +GHO                =       GPD500M +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 64929} GPH504Y +GHO                =       G3P400I +      GCO                                    : ARR( 0.127E-10,     0., 0.0);
+{ 64930} GPH504Y +GHO                =       G2P505y                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 64931} GPH504Y +GNO3               =       G3P400I +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 64932} GPH504Y+HV               =       G3H503k +      GNO2                                   :  0.100E+01*SUN;
+{ 64933} GPH504Y+HV               =       G1P506a +      GHO                                    :  0.100E+01*SUN;
+{ 64934} GPH504Y+HV               =       G3P400I +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 64935} GPH504Y+HV               =       GPH400p +      GCO                                    :  0.100E+01*SUN;
+{ 64936} GPH504Y+HV               =       GPH3004 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 64937} G2P505y +GNO                =       G1P506a +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 64938} G2P505y +GNO                =       GPN502K                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 64939} G2P505y +GHO2               =       GPH504Y                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 64940} G2P505y +GNO3               =       G1P506a +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 64941} G2P505y +MEPERO             =  0.340G1P506a + 0.330GPD500L + 0.330GPD500M                 : ARR( 0.565E-13,  -845., 0.0);
+{ 64942} G2P505y +PERO1              =  0.460G1P506a + 0.270GPD500L + 0.270GPD500M                 : ARR( 0.434E-13,  -900., 0.0);
+{ 64943} G2P505y +PERO2              =  0.400G1P506a + 0.300GPD500L + 0.300GPD500M                 : ARR( 0.162E-13, -1400., 0.0);
+{ 64944} G2P505y +PERO3              =  0.460G1P506a + 0.270GPD500L + 0.270GPD500M                 : ARR( 0.488E-13, -1250., 0.0);
+{ 64945} G2P505y +PERO5              =  0.460G1P506a + 0.270GPD500L + 0.270GPD500M                 : ARR( 0.183E-11,   450., 0.0);
+{ 64946} G2P505y +PERO6              =  0.300G1P506a + 0.350GPD500L + 0.350GPD500M                 : ARR( 0.168E-13, -1300., 0.0);
+{ 64947} G2P505y +PERO9              =  0.650G1P506a + 0.350GPD500M                                : ARR( 0.100E-10,     0., 0.0);
+{ 64948} GAA500H +GHO                =       GAA500o +      GHO2                                   : ARR( 0.952E-11,     0., 0.0);
+{ 64949} GAA500H +GHO                =       GAA500K +      GHO                                    : ARR( 0.422E-10,     0., 0.0);
+{ 64950} GAA500H +GHO                =       G2A503h                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 64951} GAA500H+HV               =       G1A504g +      GHO                                    :  0.100E+01*SUN;
+{ 64952} GGN502f +GHO                =       GGN501z +      GHO2                                   : ARR( 0.660E-11,     0., 0.0);
+{ 64953} GGN502f +GHO                =       GGN502n +      GHO2                                   : ARR( 0.634E-11,     0., 0.0);
+{ 64954} GGN502f +GHO                =       G3G501A                                               : ARR( 0.210E-10,     0., 0.0);
+{ 64955} GGN502f +GHO                =       G3N502L                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 64956} GGN502f +GNO3               =       G3G501A +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 64957} GGN502f+HV               =       GDD4003 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 64958} GGN502f+HV               =       G1G506p +      GNO2                                   :  0.100E+01*SUN;
+{ 64959} GGN502f+HV               =       GGN400W +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 64960} G3G501A +GHO2               =  0.800GGG500f + 0.200GAG501D + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 64961} G3G501A +GNO                =       GGN400W +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 64962} G3G501A +GNO2               =       GPG501C                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 64963} G3G501A +GNO3               =       GGN400W +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 64964} G3G501A +MEPERO             =  0.685GGN400W + 0.315GAG501D + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64965} G3G501A +PERO1              =  0.800GGN400W + 0.200GAG501D + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64966} G3G501A +PERO2              =  0.750GGN400W + 0.250GAG501D + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64967} G3G501A +PERO3              =  0.800GGN400W + 0.200GAG501D + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64968} G3G501A +PERO5              =  0.650GGN400W + 0.350GAG501D + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64969} G3G501A +PERO6              =  0.650GGN400W + 0.350GAG501D + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64970} G3G501A +PERO9              =       GGN400W +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 64971} GGD500K +GHO                =       GGD500H +      GHO2                                   : ARR( 0.200E-10,     0., 0.0);
+{ 64972} GGD500K +GHO                =       GGD500N +      GHO2                                   : ARR( 0.200E-10,     0., 0.0);
+{ 64973} GGD500K +GHO                =       G3G501B                                               : ARR( 0.209E-10,     0., 0.0);
+{ 64974} GGD500K +GHO                =       G3D500M                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 64975} GGD500K +GNO3               =       G3G501B +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 64976} GGD500K+HV               =       GAD4007 +      GCO2                                   :  0.100E+01*SUN;
+{ 64977} GGD500K+HV               =       GGD4003 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 64978} G3G501B +GHO2               =  0.800GGG500k + 0.200GAG501P + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 64979} G3G501B +GNO                =       GGD4003 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 64980} G3G501B +GNO2               =       GPG501O                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 64981} G3G501B +GNO3               =       GGD4003 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 64982} G3G501B +MEPERO             =  0.685GGD4003 + 0.315GAG501P + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64983} G3G501B +PERO1              =  0.800GGD4003 + 0.200GAG501P + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64984} G3G501B +PERO2              =  0.750GGD4003 + 0.250GAG501P + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64985} G3G501B +PERO3              =  0.800GGD4003 + 0.200GAG501P + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64986} G3G501B +PERO5              =  0.650GGD4003 + 0.350GAG501P + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64987} G3G501B +PERO6              =  0.650GGD4003 + 0.350GAG501P + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 64988} G3G501B +PERO9              =       GGD4003 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 64989} G3D500M +GHO2               =  0.800GGD500K + 0.200GAD500N + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 64990} G3D500M +GNO                =       G3D4005 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 64991} G3D500M +GNO2               =       GPD500K                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 64992} G3D500M +GNO3               =       G3D4005 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 64993} G3D500M +MEPERO             =  0.685G3D4005 + 0.315GAD500N + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 64994} G3D500M +PERO1              =  0.800G3D4005 + 0.200GAD500N + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 64995} G3D500M +PERO2              =  0.750G3D4005 + 0.250GAD500N + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 64996} G3D500M +PERO3              =  0.800G3D4005 + 0.200GAD500N + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 64997} G3D500M +PERO5              =  0.650G3D4005 + 0.350GAD500N + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 64998} G3D500M +PERO6              =  0.650G3D4005 + 0.350GAD500N + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 64999} G3D500M +PERO9              =       G3D4005 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 65000} GGD500L +GHO                =       GGD500N +      GHO2                                   : ARR( 0.201E-10,     0., 0.0);
+{ 65001} GGD500L +GHO                =       GGD500M +      GHO2                                   : ARR( 0.632E-11,     0., 0.0);
+{ 65002} GGD500L +GHO                =       G3G4009 +      GCO                                    : ARR( 0.128E-10,     0., 0.0);
+{ 65003} GGD500L +GHO                =       G3D500F                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 65004} GGD500L +GNO3               =       G3G4009 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 65005} GGD500L+HV               =       GDD4004 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 65006} GGD500L+HV               =       G3G4009 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 65007} GGD500L+HV               =       GGD4006 +      GCO                                    :  0.100E+01*SUN;
+{ 65008} GGD500L+HV               =       GGO3002 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 65009} GGG500F +GHO                =       GGG500k +      GHO2                                   : ARR( 0.127E-10,     0., 0.0);
+{ 65010} GGG500F +GHO                =       GGG500H +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 65011} GGG500F +GHO                =       G3G500N                                               : ARR( 0.385E-11,  -190., 0.0);
+{ 65012} GGG500F+HV               =       GGD4006 +      GHO     +      GHO2    +      GCO2     :  0.200E+01*SUN;
+{ 65013} GAG500T +GHO                =       GAG501Q +      GHO2                                   : ARR( 0.483E-11,     0., 0.0);
+{ 65014} GAG500T +GHO                =       GAG500W +      GHO2                                   : ARR( 0.107E-10,     0., 0.0);
+{ 65015} GAG500T +GHO                =       GAG501P +      GHO2                                   : ARR( 0.652E-11,     0., 0.0);
+{ 65016} GAG500T +GHO                =       G3A500Q                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 65017} GAG500T+HV               =       GAD4007 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 65018} GPG500R                     =       G3G500N +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 65019} GPG500R +GHO                =       GPG501O +      GHO2                                   : ARR( 0.638E-11,     0., 0.0);
+{ 65020} GPG500R +GHO                =       GPG500S +      GHO2                                   : ARR( 0.105E-10,     0., 0.0);
+{ 65021} GPG500R +GHO                =       GPG501P +      GHO2                                   : ARR( 0.638E-11,     0., 0.0);
+{ 65022} GPG500R +GHO                =       G3P500O                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 65023} GPG500R+HV               =       GPD4006 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 65024} GPG500R+HV               =       G3G500N +      GNO2                                   :  0.100E+01*SUN;
+{ 65025} GPN502i                     =       G3N502L +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 65026} GPN502i +GHO                =       GPN502L +      GHO2                                   : ARR( 0.660E-11,     0., 0.0);
+{ 65027} GPN502i +GHO                =       GPN502n +      GHO2                                   : ARR( 0.635E-11,     0., 0.0);
+{ 65028} GPN502i +GHO                =       G3P501C                                               : ARR( 0.210E-10,     0., 0.0);
+{ 65029} GPN502i +GNO3               =       G3P501C +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 65030} GPN502i+HV               =       G3N502L +      GNO2                                   :  0.100E+01*SUN;
+{ 65031} GPN502i+HV               =       G1P5088 +      GNO2                                   :  0.100E+01*SUN;
+{ 65032} GPN502i+HV               =       GPN400P +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 65033} G3P501C +GHO2               =  0.800GPG501J + 0.200GPA501D + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 65034} G3P501C +GNO                =       GPN400P +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 65035} G3P501C +GNO2               =       GPP500f                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 65036} G3P501C +GNO3               =       GPN400P +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 65037} G3P501C +MEPERO             =  0.685GPN400P + 0.315GPA501D + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 65038} G3P501C +PERO1              =  0.800GPN400P + 0.200GPA501D + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 65039} G3P501C +PERO2              =  0.750GPN400P + 0.250GPA501D + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 65040} G3P501C +PERO3              =  0.800GPN400P + 0.200GPA501D + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 65041} G3P501C +PERO5              =  0.650GPN400P + 0.350GPA501D + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 65042} G3P501C +PERO6              =  0.650GPN400P + 0.350GPA501D + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 65043} G3P501C +PERO9              =       GPN400P +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 65044} GPD500K                     =       G3D500M +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 65045} GPD500K +GHO                =       GPD500I +      GHO2                                   : ARR( 0.200E-10,     0., 0.0);
+{ 65046} GPD500K +GHO                =       GPD500N +      GHO2                                   : ARR( 0.200E-10,     0., 0.0);
+{ 65047} GPD500K +GHO                =       G3P501D                                               : ARR( 0.209E-10,     0., 0.0);
+{ 65048} GPD500K +GNO3               =       G3P501D +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 65049} GPD500K+HV               =       G3D4005 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 65050} GPD500K+HV               =       GPD4004 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 65051} G3P501D +GHO2               =  0.800GPG501P + 0.200GPA501F + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 65052} G3P501D +GNO                =       GPD4004 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 65053} G3P501D +GNO2               =       GPP500m                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 65054} G3P501D +GNO3               =       GPD4004 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 65055} G3P501D +MEPERO             =  0.685GPD4004 + 0.315GPA501F + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 65056} G3P501D +PERO1              =  0.800GPD4004 + 0.200GPA501F + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 65057} G3P501D +PERO2              =  0.750GPD4004 + 0.250GPA501F + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 65058} G3P501D +PERO3              =  0.800GPD4004 + 0.200GPA501F + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 65059} G3P501D +PERO5              =  0.650GPD4004 + 0.350GPA501F + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 65060} G3P501D +PERO6              =  0.650GPD4004 + 0.350GPA501F + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 65061} G3P501D +PERO9              =       GPD4004 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 65062} GPD500L                     =       G3D500F +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 65063} GPD500L +GHO                =       GPD500N +      GHO2                                   : ARR( 0.201E-10,     0., 0.0);
+{ 65064} GPD500L +GHO                =       GPD500M +      GHO2                                   : ARR( 0.633E-11,     0., 0.0);
+{ 65065} GPD500L +GHO                =       G3P400D +      GCO                                    : ARR( 0.128E-10,     0., 0.0);
+{ 65066} GPD500L +GNO3               =       G3P400D +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 65067} GPD500L+HV               =       G3D500F +      GNO2                                   :  0.100E+01*SUN;
+{ 65068} GPD500L+HV               =       G3P400D +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 65069} GPD500L+HV               =       GPD4006 +      GCO                                    :  0.100E+01*SUN;
+{ 65070} GPD500L+HV               =       GPO3002 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 65071} GPA500U                     =       G3A500Q +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 65072} GPA500U +GHO                =       GPA501S +      GHO2                                   : ARR( 0.485E-11,     0., 0.0);
+{ 65073} GPA500U +GHO                =       GPA500W +      GHO2                                   : ARR( 0.108E-10,     0., 0.0);
+{ 65074} GPA500U +GHO                =       GPA501F +      GHO2                                   : ARR( 0.656E-11,     0., 0.0);
+{ 65075} GPA500U+HV               =       G3A500Q +      GNO2                                   :  0.100E+01*SUN;
+{ 65076} GPP500G                     =       G3P500O +      GNO2                                   : ARR( 0.400E+16, 12800., 0.0);
+{ 65077} GPP500G +GHO                =       GPP500m +      GHO2                                   : ARR( 0.128E-10,     0., 0.0);
+{ 65078} GPP500G +GHO                =       GPP500H +      GHO2                                   : ARR( 0.105E-10,     0., 0.0);
+{ 65079} GPP500G+HV               =       G3P500O +      GNO2                                   :  0.200E+01*SUN;
+{ 65080} GAN502g +GHO                =       GAN502A +      GHO2                                   : ARR( 0.670E-11,     0., 0.0);
+{ 65081} GAN502g +GHO                =       GAN502s +      GHO2                                   : ARR( 0.644E-11,     0., 0.0);
+{ 65082} GAN502g +GHO                =       G3A501D                                               : ARR( 0.213E-10,     0., 0.0);
+{ 65083} GAN502g +GNO3               =       G3A501D +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 65084} GAN502g+HV               =       G1A507U +      GNO2                                   :  0.100E+01*SUN;
+{ 65085} GAN502g+HV               =       GAN400P +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 65086} G3A501D +GHO2               =  0.800GAG501J + 0.200GAA500k + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 65087} G3A501D +GNO                =       GAN400P +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 65088} G3A501D +GNO2               =       GPA501O                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 65089} G3A501D +GNO3               =       GAN400P +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 65090} G3A501D +MEPERO             =  0.685GAN400P + 0.315GAA500k + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 65091} G3A501D +PERO1              =  0.800GAN400P + 0.200GAA500k + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 65092} G3A501D +PERO2              =  0.750GAN400P + 0.250GAA500k + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 65093} G3A501D +PERO3              =  0.800GAN400P + 0.200GAA500k + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 65094} G3A501D +PERO5              =  0.650GAN400P + 0.350GAA500k + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 65095} G3A501D +PERO6              =  0.650GAN400P + 0.350GAA500k + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 65096} G3A501D +PERO9              =       GAN400P +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 65097} GAD500M +GHO                =       GAD500Q +      GHO2                                   : ARR( 0.151E-10,     0., 0.0);
+{ 65098} GAD500M +GHO                =       GAD500O +      GHO2                                   : ARR( 0.643E-11,     0., 0.0);
+{ 65099} GAD500M +GHO                =       G3A400F +      GCO                                    : ARR( 0.130E-10,     0., 0.0);
+{ 65100} GAD500M +GNO3               =       G3A400F +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 65101} GAD500M+HV               =       G3A400F +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 65102} GAD500M+HV               =       GAD4007 +      GCO                                    :  0.100E+01*SUN;
+{ 65103} GAD500M+HV               =       GAO3002 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 65104} GAD500N +GHO                =       GAD500J +      GHO2                                   : ARR( 0.202E-10,     0., 0.0);
+{ 65105} GAD500N +GHO                =       GAD500Q +      GHO2                                   : ARR( 0.202E-10,     0., 0.0);
+{ 65106} GAD500N +GHO                =       G3A501E                                               : ARR( 0.210E-10,     0., 0.0);
+{ 65107} GAD500N +GNO3               =       G3A501E +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 65108} GAD500N+HV               =       GDD4003 +      GCO2                                   :  0.100E+01*SUN;
+{ 65109} GAD500N+HV               =       GAD4004 +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 65110} G3A501E +GHO2               =  0.800GAG501Q + 0.200GAA500p + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 65111} G3A501E +GNO                =       GAD4004 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 65112} G3A501E +GNO2               =       GPA501S                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 65113} G3A501E +GNO3               =       GAD4004 +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 65114} G3A501E +MEPERO             =  0.685GAD4004 + 0.315GAA500p + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 65115} G3A501E +PERO1              =  0.800GAD4004 + 0.200GAA500p + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 65116} G3A501E +PERO2              =  0.750GAD4004 + 0.250GAA500p + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 65117} G3A501E +PERO3              =  0.800GAD4004 + 0.200GAA500p + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 65118} G3A501E +PERO5              =  0.650GAD4004 + 0.350GAA500p + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 65119} G3A501E +PERO6              =  0.650GAD4004 + 0.350GAA500p + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 65120} G3A501E +PERO9              =       GAD4004 +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 65121} GAA500I +GHO                =       GAA500p +      GHO2                                   : ARR( 0.999E-11,     0., 0.0);
+{ 65122} GAA500I +GHO                =       GAA500K +      GHO2                                   : ARR( 0.111E-10,     0., 0.0);
+{ 65123} GGN400b +GHO                =       G3G400K                                               : ARR( 0.418E-11,     0., 0.0);
+{ 65124} GGN400b +GHO                =       G3N400b                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 65125} GGN400b +GNO3               =       G3G400K +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 65126} GGN400b+HV               =       GAN3006 +      GCO2                                   :  0.100E+01*SUN;
+{ 65127} GGN400b+HV               =       G1G401C +      GNO2                                   :  0.100E+01*SUN;
+{ 65128} GGN400b+HV               =       GGD3002 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 65129} GGN502g +GHO                =       G3G501C                                               : ARR( 0.222E-10,     0., 0.0);
+{ 65130} GGN502g +GHO                =       G3N502b                                               : ARR( 0.203E-11,  -190., 0.0);
+{ 65131} GGN502g +GNO3               =       G3G501C +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 65132} GGN502g+HV               =       GAN400P +      GCO2                                   :  0.100E+01*SUN;
+{ 65133} GGN502g+HV               =       G1G503q +      GNO2                                   :  0.100E+01*SUN;
+{ 65134} GGN502g+HV               =       GGN400b +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 65135} G3G501C +GHO2               =  0.800GGG500l + 0.200GAG501R + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 65136} G3G501C +GNO                =       GGN400b +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 65137} G3G501C +GNO2               =       GPG500w                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 65138} G3G501C +GNO3               =       GGN400b +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 65139} G3G501C +MEPERO             =  0.685GGN400b + 0.315GAG501R + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 65140} G3G501C +PERO1              =  0.800GGN400b + 0.200GAG501R + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 65141} G3G501C +PERO2              =  0.750GGN400b + 0.250GAG501R + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 65142} G3G501C +PERO3              =  0.800GGN400b + 0.200GAG501R + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 65143} G3G501C +PERO5              =  0.650GGN400b + 0.350GAG501R + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 65144} G3G501C +PERO6              =  0.650GGN400b + 0.350GAG501R + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 65145} G3G501C +PERO9              =       GGN400b +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 65146} GGG500G +GHO                =       GGG500l +      GHO2                                   : ARR( 0.262E-11,     0., 0.0);
+{ 65147} GGG500G +GHO                =       G3G500P                                               : ARR( 0.396E-11,  -190., 0.0);
+{ 65148} GGG500G+HV               =       GGN400U +      GHO     +      GHO2    +      GCO2     :  0.200E+01*SUN;
+{ 65149} GGG500G+HV               =       G1G503r +      GNO2                                   :  0.100E+01*SUN;
+{ 65150} GAG500U +GHO                =       GAG501S +      GHO2                                   : ARR( 0.989E-12,     0., 0.0);
+{ 65151} GAG500U +GHO                =       GAG501R +      GHO2                                   : ARR( 0.134E-11,     0., 0.0);
+{ 65152} GAG500U +GHO                =       G3A500S                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 65153} GAG500U +GHO                =       GGN400U +      GHO2    +      GCO2                    : ARR( 0.553E-12,     0., 0.0);
+{ 65154} GAG500U+HV               =       G1A504a +      GNO2                                   :  0.100E+01*SUN;
+{ 65155} GAG500U+HV               =       GAN400a +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 65156} GGG500H +GHO                =       GGG500N +      GHO2                                   : ARR( 0.781E-11,     0., 0.0);
+{ 65157} GGG500H +GHO                =       G3G500Q                                               : ARR( 0.387E-11,  -190., 0.0);
+{ 65158} GGG500H+HV               =  0.500GGD4007 + 0.500GHO                                    :  0.100E+01*SUN;
+{ 65159} GGG500H+HV               =       G3G3002 +      GGD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 65160} GGG500H+HV               =       GGD4007 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 65161} GAG500W +GHO                =       GAG500s +      GHO2                                   : ARR( 0.306E-11,     0., 0.0);
+{ 65162} GAG500W +GHO                =       GAG500j +      GHO2                                   : ARR( 0.413E-11,     0., 0.0);
+{ 65163} GAG500W +GHO                =       G3A500T                                               : ARR( 0.205E-11,  -190., 0.0);
+{ 65164} GAG500W+HV               =       G3A3002 +      GGD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 65165} GAG500W+HV               =       GAD4006 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 65166} GPG500S                     =       G3G500Q +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 65167} GPG500S +GHO                =       GPG500m +      GHO2                                   : ARR( 0.393E-11,     0., 0.0);
+{ 65168} GPG500S +GHO                =       GPG500j +      GHO2                                   : ARR( 0.393E-11,     0., 0.0);
+{ 65169} GPG500S +GHO                =       G3P500Q                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 65170} GPG500S+HV               =  0.500GPD4007 + 0.500GHO                                    :  0.100E+01*SUN;
+{ 65171} GPG500S+HV               =       G3G3002 +      GPD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 65172} GPG500S+HV               =       G3G500Q +      GNO2                                   :  0.100E+01*SUN;
+{ 65173} GAN502h +GHO                =       GAN502m +      GHO2                                   : ARR( 0.131E-11,     0., 0.0);
+{ 65174} GAN502h +GHO                =       G3A501F                                               : ARR( 0.216E-10,     0., 0.0);
+{ 65175} GAN502h +GNO3               =       G3A501F +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 65176} GAN502h+HV               =       GND400J +      GCO2                                   :  0.100E+01*SUN;
+{ 65177} GAN502h+HV               =       G1A504f +      GNO2                                   :  0.100E+01*SUN;
+{ 65178} GAN502h+HV               =       GAN400Z +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 65179} G3A501F +GHO2               =  0.800GAG501S + 0.200GAA500Q + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 65180} G3A501F +GNO                =       GAN400Z +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 65181} G3A501F +GNO2               =       GPA500i                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 65182} G3A501F +GNO3               =       GAN400Z +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 65183} G3A501F +MEPERO             =  0.685GAN400Z + 0.315GAA500Q + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 65184} G3A501F +PERO1              =  0.800GAN400Z + 0.200GAA500Q + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 65185} G3A501F +PERO2              =  0.750GAN400Z + 0.250GAA500Q + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 65186} G3A501F +PERO3              =  0.800GAN400Z + 0.200GAA500Q + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 65187} G3A501F +PERO5              =  0.650GAN400Z + 0.350GAA500Q + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 65188} G3A501F +PERO6              =  0.650GAN400Z + 0.350GAA500Q + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 65189} G3A501F +PERO9              =       GAN400Z +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 65190} GAH504X +GHO                =       GAD500J +      GHO                                    : ARR( 0.825E-10,     0., 0.0);
+{ 65191} GAH504X +GHO                =       GAH505C +      GHO2                                   : ARR( 0.206E-10,     0., 0.0);
+{ 65192} GAH504X +GHO                =       G3A501G                                               : ARR( 0.215E-10,     0., 0.0);
+{ 65193} GAH504X +GNO3               =       G3A501G +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 65194} GAH504X+HV               =       GHD400L +      GCO2                                   :  0.100E+01*SUN;
+{ 65195} GAH504X+HV               =       G1A504f +      GHO                                    :  0.100E+01*SUN;
+{ 65196} GAH504X+HV               =       GAH400s +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 65197} G3A501G +GHO2               =  0.800GAG501O + 0.200GAA500o + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 65198} G3A501G +GNO                =       GAH400s +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 65199} G3A501G +GNO2               =       GPA501R                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 65200} G3A501G +GNO3               =       GAH400s +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 65201} G3A501G +MEPERO             =  0.685GAH400s + 0.315GAA500o + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 65202} G3A501G +PERO1              =  0.800GAH400s + 0.200GAA500o + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 65203} G3A501G +PERO2              =  0.750GAH400s + 0.250GAA500o + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 65204} G3A501G +PERO3              =  0.800GAH400s + 0.200GAA500o + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 65205} G3A501G +PERO5              =  0.650GAH400s + 0.350GAA500o + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 65206} G3A501G +PERO6              =  0.650GAH400s + 0.350GAA500o + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 65207} G3A501G +PERO9              =       GAH400s +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 65208} GAN502i +GHO                =       GAN502m +      GHO2                                   : ARR( 0.980E-12,     0., 0.0);
+{ 65209} GAN502i +GHO                =       G3A400B +      GCO                                    : ARR( 0.133E-10,     0., 0.0);
+{ 65210} GAN502i +GNO3               =       G3A400B +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 65211} GAN502i+HV               =       G1A507j +      GNO2                                   :  0.100E+01*SUN;
+{ 65212} GAN502i+HV               =       G3A400B +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 65213} GAN502i+HV               =       GAN400a +      GCO                                    :  0.100E+01*SUN;
+{ 65214} GAN502i+HV               =       GAN3003 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 65215} GAA500J +GHO                =       GAA500Q +      GHO2                                   : ARR( 0.193E-11,     0., 0.0);
+{ 65216} GAA500J +GHO                =       G1A505H                                               : ARR( 0.436E-17,    85., 2.0);
+{ 65217} GAA500J +GHO                =       GAN400a +      GHO2    +      GCO2                    : ARR( 0.108E-11,     0., 0.0);
+{ 65218} GAA500J+HV               =       G1A504g +      GNO2                                   :  0.100E+01*SUN;
+{ 65219} GAD500O +GHO                =       GAD500P +      GHO2                                   : ARR( 0.296E-11,     0., 0.0);
+{ 65220} GAD500O +GHO                =       G3A3002 + 2.000GCO                                    : ARR( 0.132E-10,     0., 0.0);
+{ 65221} GAD500O +GNO3               =       G3A3002 +      GHNO3   + 2.000GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 65222} GAD500O+HV               =       G3A3002 +      G3D2000                                :  0.100E+01*SUN;
+{ 65223} GAD500O+HV               =       G3A3002 +      GCO     +      GCO     +      GHO2     :  0.100E+01*SUN;
+{ 65224} GAD500O+HV               =       GAD4006 +      GCO                                    :  0.100E+01*SUN;
+{ 65225} GAD500O+HV               =       GAD3001 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 65226} GAA500K +GHO                =       GAA500X +      GHO2                                   : ARR( 0.591E-11,     0., 0.0);
+{ 65227} GAA500K +GHO                =       GAD4006 +      GHO2    +      GCO2                    : ARR( 0.108E-11,     0., 0.0);
+{ 65228} GAA500K+HV               =       G3A3002 +      GAD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 65229} GPA500W                     =       G3A500T +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 65230} GPA500W +GHO                =       GPA500v +      GHO2                                   : ARR( 0.295E-11,     0., 0.0);
+{ 65231} GPA500W +GHO                =       GPA500s +      GHO2                                   : ARR( 0.398E-11,     0., 0.0);
+{ 65232} GPA500W +GHO                =       GPD4007 +      GHO2    +      GCO2                    : ARR( 0.540E-12,     0., 0.0);
+{ 65233} GPA500W+HV               =       G3A3002 +      GPD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 65234} GPA500W+HV               =       G3A500T +      GNO2                                   :  0.100E+01*SUN;
+{ 65235} GPD500M                     =       G3D500H +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 65236} GPD500M +GHO                =       GPD500O +      GHO2                                   : ARR( 0.386E-11,     0., 0.0);
+{ 65237} GPD500M +GHO                =       G3P3002 + 2.000GCO                                    : ARR( 0.128E-10,     0., 0.0);
+{ 65238} GPD500M +GNO3               =       G3P3002 +      GHNO3   + 2.000GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 65239} GPD500M+HV               =       G3D500H +      GNO2                                   :  0.100E+01*SUN;
+{ 65240} GPD500M+HV               =       G3P3002 +      G3D2000                                :  0.100E+01*SUN;
+{ 65241} GPD500M+HV               =       G3P3002 +      GCO     +      GCO     +      GHO2     :  0.100E+01*SUN;
+{ 65242} GPD500M+HV               =       GPD4007 +      GCO                                    :  0.100E+01*SUN;
+{ 65243} GPD500M+HV               =       GPD3001 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 65244} GPP500H                     =       G3P500Q +      GNO2                                   : ARR( 0.400E+16, 12800., 0.0);
+{ 65245} GPP500H +GHO                =       GPP500U +      GHO2                                   : ARR( 0.794E-11,     0., 0.0);
+{ 65246} GPP500H+HV               =       G3P500Q +      GNO2                                   :  0.200E+01*SUN;
+{ 65247} GPP500H+HV               =       G3P3002 +      GPD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 65248} GGN502h +GHO                =       GGN502r +      GHO2                                   : ARR( 0.127E-11,     0., 0.0);
+{ 65249} GGN502h +GHO                =       G3G400B +      GCO                                    : ARR( 0.128E-10,     0., 0.0);
+{ 65250} GGN502h +GHO                =       G3N502N                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 65251} GGN502h +GNO3               =       G3G400B +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 65252} GGN502h+HV               =       GND400N +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 65253} GGN502h+HV               =       G1G507B +      GNO2                                   :  0.100E+01*SUN;
+{ 65254} GGN502h+HV               =       G3G400B +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 65255} GGN502h+HV               =       GGN400U +      GCO                                    :  0.100E+01*SUN;
+{ 65256} GGN502h+HV               =       GGN3003 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 65257} GGD500M +GHO                =       GGD500O +      GHO2                                   : ARR( 0.386E-11,     0., 0.0);
+{ 65258} GGD500M +GHO                =       G3G3002 + 2.000GCO                                    : ARR( 0.128E-10,     0., 0.0);
+{ 65259} GGD500M +GHO                =       G3D500H                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 65260} GGD500M +GNO3               =       G3G3002 +      GHNO3   + 2.000GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 65261} GGD500M+HV               =       GDD4005 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 65262} GGD500M+HV               =       G3G3002 +      G3D2000                                :  0.100E+01*SUN;
+{ 65263} GGD500M+HV               =       G3G3002 +      GCO     +      GCO     +      GHO2     :  0.100E+01*SUN;
+{ 65264} GGD500M+HV               =       GGD4007 +      GCO                                    :  0.100E+01*SUN;
+{ 65265} GGD500M+HV               =       GGD3001 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 65266} GGH504P +GHO                =       GGH501L +      GHO                                    : ARR( 0.192E-10,     0., 0.0);
+{ 65267} GGH504P +GHO                =       GGH501Y +      GHO                                    : ARR( 0.492E-10,     0., 0.0);
+{ 65268} GGH504P +GHO                =       GGH504X +      GHO2                                   : ARR( 0.750E-11,     0., 0.0);
+{ 65269} GGH504P+HV               =       G1G503X +      GHO                                    :  0.100E+01*SUN;
+{ 65270} GGH504P+HV               =       G1G503i +      GHO                                    :  0.100E+01*SUN;
+{ 65271} GGH504P+HV               =       GHH400B +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 65272} GPH504Z                     =       G3H503m +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 65273} GPH504Z +GHO                =       GPH501J +      GHO                                    : ARR( 0.183E-10,     0., 0.0);
+{ 65274} GPH504Z +GHO                =       GPH501f +      GHO                                    : ARR( 0.469E-10,     0., 0.0);
+{ 65275} GPH504Z +GHO                =       GPH504f +      GHO2                                   : ARR( 0.715E-11,     0., 0.0);
+{ 65276} GPH504Z+HV               =       G1P503q +      GHO                                    :  0.100E+01*SUN;
+{ 65277} GPH504Z+HV               =       G1P504d +      GHO                                    :  0.100E+01*SUN;
+{ 65278} GPH504Z+HV               =       G3H503m +      GNO2                                   :  0.100E+01*SUN;
+{ 65279} GHN506t +GHO                =       GND501U +      GHO                                    : ARR( 0.162E-10,     0., 0.0);
+{ 65280} GHN506t +GHO                =       GHN506u +      GHO2                                   : ARR( 0.207E-11,     0., 0.0);
+{ 65281} GHN506t +GHO                =       G3H400U +      GCO                                    : ARR( 0.127E-10,     0., 0.0);
+{ 65282} GHN506t +GHO                =       G2N506i                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 65283} GHN506t +GNO3               =       G3H400U +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 65284} GHN506t+HV               =       G1N506v +      GHO                                    :  0.100E+01*SUN;
+{ 65285} GHN506t+HV               =       G1H50C1 +      GNO2                                   :  0.100E+01*SUN;
+{ 65286} GHN506t+HV               =       G3H400U +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 65287} GHN506t+HV               =       GHN400Y +      GCO                                    :  0.100E+01*SUN;
+{ 65288} GHN506t+HV               =       GHN3003 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 65289} G2N506i +GNO                =       G1N506v +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 65290} G2N506i +GNO                =       GNN5037                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 65291} G2N506i +GHO2               =       GHN506t                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 65292} G2N506i +GNO3               =       G1N506v +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 65293} G2N506i +MEPERO             =  0.480G1N506v + 0.260GND5012 + 0.260GND501U                 : ARR( 0.164E-12,  -795., 0.0);
+{ 65294} G2N506i +PERO1              =  0.600G1N506v + 0.200GND5012 + 0.200GND501U                 : ARR( 0.126E-12,  -850., 0.0);
+{ 65295} G2N506i +PERO2              =  0.560G1N506v + 0.220GND5012 + 0.220GND501U                 : ARR( 0.471E-13, -1350., 0.0);
+{ 65296} G2N506i +PERO3              =  0.600G1N506v + 0.200GND5012 + 0.200GND501U                 : ARR( 0.142E-12, -1200., 0.0);
+{ 65297} G2N506i +PERO5              =  0.600G1N506v + 0.200GND5012 + 0.200GND501U                 : ARR( 0.533E-11,   500., 0.0);
+{ 65298} G2N506i +PERO6              =  0.460G1N506v + 0.270GND5012 + 0.270GND501U                 : ARR( 0.488E-13, -1250., 0.0);
+{ 65299} G2N506i +PERO9              =  0.800G1N506v + 0.200GND501U                                : ARR( 0.100E-10,     0., 0.0);
+{ 65300} G1H50C1                     =       GHD3005 +      G3D2000                                : ARR( 0.200E+15,  3233., 0.0);
+{ 65301} GGH504Q +GHO                =       GGH503U +      GHO                                    : ARR( 0.162E-10,     0., 0.0);
+{ 65302} GGH504Q +GHO                =       GGH505S +      GHO2                                   : ARR( 0.208E-11,     0., 0.0);
+{ 65303} GGH504Q +GHO                =       GGH504p +      GHO                                    : ARR( 0.506E-11,     0., 0.0);
+{ 65304} GGH504Q +GHO                =       G2G504n                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 65305} GGH504Q +GHO                =       G2G504o                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 65306} GGH504Q +GHO                =       G3H503n                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 65307} GGH504Q+HV               =       G1G504m +      GHO                                    :  0.100E+01*SUN;
+{ 65308} GGH504Q+HV               =       G1G507C +      GNO2                                   :  0.100E+01*SUN;
+{ 65309} GGH504Q+HV               =       G1G5062 +      GHO                                    :  0.100E+01*SUN;
+{ 65310} GGH504Q+HV               =       GHN400Y +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 65311} G2G504n +GNO                =       G1G504m +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 65312} G2G504n +GNO                =       GGH502b                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 65313} G2G504n +GHO2               =       GGH504Q                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 65314} G2G504n +GNO3               =       G1G504m +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 65315} G2G504n +MEPERO             =  0.480G1G504m + 0.260GGH501A + 0.260GGH503U                 : ARR( 0.164E-12,  -795., 0.0);
+{ 65316} G2G504n +PERO1              =  0.600G1G504m + 0.200GGH501A + 0.200GGH503U                 : ARR( 0.126E-12,  -850., 0.0);
+{ 65317} G2G504n +PERO2              =  0.560G1G504m + 0.220GGH501A + 0.220GGH503U                 : ARR( 0.471E-13, -1350., 0.0);
+{ 65318} G2G504n +PERO3              =  0.600G1G504m + 0.200GGH501A + 0.200GGH503U                 : ARR( 0.142E-12, -1200., 0.0);
+{ 65319} G2G504n +PERO5              =  0.600G1G504m + 0.200GGH501A + 0.200GGH503U                 : ARR( 0.533E-11,   500., 0.0);
+{ 65320} G2G504n +PERO6              =  0.460G1G504m + 0.270GGH501A + 0.270GGH503U                 : ARR( 0.488E-13, -1250., 0.0);
+{ 65321} G2G504n +PERO9              =  0.800G1G504m + 0.200GGH503U                                : ARR( 0.100E-10,     0., 0.0);
+{ 65322} G2G504o +GNO                =       G1G5062 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 65323} G2G504o +GNO                =       GGH503L                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 65324} G2G504o +GHO2               =       GGH504Q                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 65325} G2G504o +GNO3               =       G1G5062 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 65326} G2G504o +MEPERO             =  0.340G1G5062 + 0.330GGH501Z + 0.330GGH504p                 : ARR( 0.565E-13,  -845., 0.0);
+{ 65327} G2G504o +PERO1              =  0.460G1G5062 + 0.270GGH501Z + 0.270GGH504p                 : ARR( 0.434E-13,  -900., 0.0);
+{ 65328} G2G504o +PERO2              =  0.400G1G5062 + 0.300GGH501Z + 0.300GGH504p                 : ARR( 0.162E-13, -1400., 0.0);
+{ 65329} G2G504o +PERO3              =  0.460G1G5062 + 0.270GGH501Z + 0.270GGH504p                 : ARR( 0.488E-13, -1250., 0.0);
+{ 65330} G2G504o +PERO5              =  0.460G1G5062 + 0.270GGH501Z + 0.270GGH504p                 : ARR( 0.183E-11,   450., 0.0);
+{ 65331} G2G504o +PERO6              =  0.300G1G5062 + 0.350GGH501Z + 0.350GGH504p                 : ARR( 0.168E-13, -1300., 0.0);
+{ 65332} G2G504o +PERO9              =  0.650G1G5062 + 0.350GGH504p                                : ARR( 0.100E-10,     0., 0.0);
+{ 65333} G1G507C                     =       GHD2000 +      GGH3007 +      GHO2                    : ARR( 0.200E+15,  2745., 0.0);
+{ 65334} GAH504Y +GHO                =       GAH504n +      GHO                                    : ARR( 0.382E-11,     0., 0.0);
+{ 65335} GAH504Y +GHO                =       GAH505W +      GHO2                                   : ARR( 0.212E-11,     0., 0.0);
+{ 65336} GAH504Y +GHO                =       GAH503z +      GHO                                    : ARR( 0.165E-10,     0., 0.0);
+{ 65337} GAH504Y +GHO                =       G2A505d                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 65338} GAH504Y +GHO                =       G2A505e                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 65339} GAH504Y+HV               =       G1A505l +      GHO                                    :  0.100E+01*SUN;
+{ 65340} GAH504Y+HV               =       G1A507k +      GNO2                                   :  0.100E+01*SUN;
+{ 65341} GAH504Y+HV               =       G1A504J +      GHO                                    :  0.100E+01*SUN;
+{ 65342} G2A505d +GNO                =       G1A505l +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 65343} G2A505d +GNO                =       GAH502l                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 65344} G2A505d +GHO2               =       GAH504Y                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 65345} G2A505d +GNO3               =       G1A505l +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 65346} G2A505d +MEPERO             =  0.340G1A505l + 0.330GAH501h + 0.330GAH504n                 : ARR( 0.565E-13,  -845., 0.0);
+{ 65347} G2A505d +PERO1              =  0.460G1A505l + 0.270GAH501h + 0.270GAH504n                 : ARR( 0.434E-13,  -900., 0.0);
+{ 65348} G2A505d +PERO2              =  0.400G1A505l + 0.300GAH501h + 0.300GAH504n                 : ARR( 0.162E-13, -1400., 0.0);
+{ 65349} G2A505d +PERO3              =  0.460G1A505l + 0.270GAH501h + 0.270GAH504n                 : ARR( 0.488E-13, -1250., 0.0);
+{ 65350} G2A505d +PERO5              =  0.460G1A505l + 0.270GAH501h + 0.270GAH504n                 : ARR( 0.183E-11,   450., 0.0);
+{ 65351} G2A505d +PERO6              =  0.300G1A505l + 0.350GAH501h + 0.350GAH504n                 : ARR( 0.168E-13, -1300., 0.0);
+{ 65352} G2A505d +PERO9              =  0.650G1A505l + 0.350GAH504n                                : ARR( 0.100E-10,     0., 0.0);
+{ 65353} G2A505e +GNO                =       G1A504J +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 65354} G2A505e +GNO                =       GAH501S                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 65355} G2A505e +GHO2               =       GAH504Y                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 65356} G2A505e +GNO3               =       G1A504J +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 65357} G2A505e +MEPERO             =  0.480G1A504J + 0.260GAH501R + 0.260GAH503z                 : ARR( 0.164E-12,  -795., 0.0);
+{ 65358} G2A505e +PERO1              =  0.600G1A504J + 0.200GAH501R + 0.200GAH503z                 : ARR( 0.126E-12,  -850., 0.0);
+{ 65359} G2A505e +PERO2              =  0.560G1A504J + 0.220GAH501R + 0.220GAH503z                 : ARR( 0.471E-13, -1350., 0.0);
+{ 65360} G2A505e +PERO3              =  0.600G1A504J + 0.200GAH501R + 0.200GAH503z                 : ARR( 0.142E-12, -1200., 0.0);
+{ 65361} G2A505e +PERO5              =  0.600G1A504J + 0.200GAH501R + 0.200GAH503z                 : ARR( 0.533E-11,   500., 0.0);
+{ 65362} G2A505e +PERO6              =  0.460G1A504J + 0.270GAH501R + 0.270GAH503z                 : ARR( 0.488E-13, -1250., 0.0);
+{ 65363} G2A505e +PERO9              =  0.800G1A504J + 0.200GAH503z                                : ARR( 0.100E-10,     0., 0.0);
+{ 65364} G1A507k                     =       GAH3007 +      GHD2000 +      GHO2                    : ARR( 0.200E+15,  2745., 0.0);
+{ 65365} GPH504a                     =       G3H503n +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 65366} GPH504a +GHO                =       GPH5049 +      GHO                                    : ARR( 0.162E-10,     0., 0.0);
+{ 65367} GPH504a +GHO                =       GPH505a +      GHO2                                   : ARR( 0.208E-11,     0., 0.0);
+{ 65368} GPH504a +GHO                =       GPH502t +      GHO                                    : ARR( 0.507E-11,     0., 0.0);
+{ 65369} GPH504a +GHO                =       G2P505z                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 65370} GPH504a +GHO                =       G2P5061                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 65371} GPH504a+HV               =       G1P504T +      GHO                                    :  0.100E+01*SUN;
+{ 65372} GPH504a+HV               =       G1P508H +      GNO2                                   :  0.100E+01*SUN;
+{ 65373} GPH504a+HV               =       G1P506S +      GHO                                    :  0.100E+01*SUN;
+{ 65374} GPH504a+HV               =       G3H503n +      GNO2                                   :  0.100E+01*SUN;
+{ 65375} G2P505z +GNO                =       G1P504T +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 65376} G2P505z +GNO                =       GPH501T                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 65377} G2P505z +GHO2               =       GPH504a                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 65378} G2P505z +GNO3               =       G1P504T +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 65379} G2P505z +MEPERO             =  0.480G1P504T + 0.260GPH501S + 0.260GPH5049                 : ARR( 0.164E-12,  -795., 0.0);
+{ 65380} G2P505z +PERO1              =  0.600G1P504T + 0.200GPH501S + 0.200GPH5049                 : ARR( 0.126E-12,  -850., 0.0);
+{ 65381} G2P505z +PERO2              =  0.560G1P504T + 0.220GPH501S + 0.220GPH5049                 : ARR( 0.471E-13, -1350., 0.0);
+{ 65382} G2P505z +PERO3              =  0.600G1P504T + 0.200GPH501S + 0.200GPH5049                 : ARR( 0.142E-12, -1200., 0.0);
+{ 65383} G2P505z +PERO5              =  0.600G1P504T + 0.200GPH501S + 0.200GPH5049                 : ARR( 0.533E-11,   500., 0.0);
+{ 65384} G2P505z +PERO6              =  0.460G1P504T + 0.270GPH501S + 0.270GPH5049                 : ARR( 0.488E-13, -1250., 0.0);
+{ 65385} G2P505z +PERO9              =  0.800G1P504T + 0.200GPH5049                                : ARR( 0.100E-10,     0., 0.0);
+{ 65386} G2P5061 +GNO                =       G1P506S +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 65387} G2P5061 +GNO                =       GPH502s                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 65388} G2P5061 +GHO2               =       GPH504a                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 65389} G2P5061 +GNO3               =       G1P506S +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 65390} G2P5061 +MEPERO             =  0.340G1P506S + 0.330GPH500m + 0.330GPH502t                 : ARR( 0.565E-13,  -845., 0.0);
+{ 65391} G2P5061 +PERO1              =  0.460G1P506S + 0.270GPH500m + 0.270GPH502t                 : ARR( 0.434E-13,  -900., 0.0);
+{ 65392} G2P5061 +PERO2              =  0.400G1P506S + 0.300GPH500m + 0.300GPH502t                 : ARR( 0.162E-13, -1400., 0.0);
+{ 65393} G2P5061 +PERO3              =  0.460G1P506S + 0.270GPH500m + 0.270GPH502t                 : ARR( 0.488E-13, -1250., 0.0);
+{ 65394} G2P5061 +PERO5              =  0.460G1P506S + 0.270GPH500m + 0.270GPH502t                 : ARR( 0.183E-11,   450., 0.0);
+{ 65395} G2P5061 +PERO6              =  0.300G1P506S + 0.350GPH500m + 0.350GPH502t                 : ARR( 0.168E-13, -1300., 0.0);
+{ 65396} G2P5061 +PERO9              =  0.650G1P506S + 0.350GPH502t                                : ARR( 0.100E-10,     0., 0.0);
+{ 65397} G1P508H                     =       GHD2000 +      GPH3007 +      GHO2                    : ARR( 0.200E+15,  2745., 0.0);
+{ 65398} GHH5035 +GHO                =       GHD501K +      GHO                                    : ARR( 0.174E-10,     0., 0.0);
+{ 65399} GHH5035 +GHO                =       GHH502u +      GHO2                                   : ARR( 0.354E-10,     0., 0.0);
+{ 65400} GHH5035 +GHO                =       GHD501T +      GHO                                    : ARR( 0.273E-10,     0., 0.0);
+{ 65401} GHH5035 +GHO                =       G3H400W +      GCO                                    : ARR( 0.137E-10,     0., 0.0);
+{ 65402} GHH5035 +GNO3               =       G3H400W +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 65403} GHH5035+HV               =       G1H509j +      GHO                                    :  0.100E+01*SUN;
+{ 65404} GHH5035+HV               =       G1H50C1 +      GHO                                    :  0.100E+01*SUN;
+{ 65405} GHH5035+HV               =       G3H400W +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 65406} GHH5035+HV               =       GHH400H +      GCO                                    :  0.100E+01*SUN;
+{ 65407} GHH5035+HV               =       GHH3007 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 65408} GGH504R +GHO                =       GGH503r +      GHO                                    : ARR( 0.186E-10,     0., 0.0);
+{ 65409} GGH504R +GHO                =       GGH504Z +      GHO2                                   : ARR( 0.119E-10,     0., 0.0);
+{ 65410} GGH504R +GHO                =       GGH504T +      GHO                                    : ARR( 0.477E-10,     0., 0.0);
+{ 65411} GGH504R +GHO                =       GGH504G +      GHO                                    : ARR( 0.291E-10,     0., 0.0);
+{ 65412} GGH504R+HV               =       G1G504o +      GHO                                    :  0.100E+01*SUN;
+{ 65413} GGH504R+HV               =       G1G507C +      GHO                                    :  0.100E+01*SUN;
+{ 65414} GGH504R+HV               =       G1G507D +      GHO                                    :  0.100E+01*SUN;
+{ 65415} GGH504R+HV               =       GHH400H +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 65416} G1G507D                     =       GGH501g +      GHO                                    : ARR( 0.160E+12,  2186., 0.0);
+{ 65417} G1G507D                     =       GHH400H +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 65418} GAH504Z +GHO                =       GAH504O +      GHO                                    : ARR( 0.211E-10,     0., 0.0);
+{ 65419} GAH504Z +GHO                =       GAH504b +      GHO                                    : ARR( 0.467E-10,     0., 0.0);
+{ 65420} GAH504Z +GHO                =       GAH505X +      GHO2                                   : ARR( 0.117E-10,     0., 0.0);
+{ 65421} GAH504Z +GHO                =       GAH5047 +      GHO                                    : ARR( 0.182E-10,     0., 0.0);
+{ 65422} GAH504Z+HV               =       G1A507l +      GHO                                    :  0.100E+01*SUN;
+{ 65423} GAH504Z+HV               =       G1A507k +      GHO                                    :  0.100E+01*SUN;
+{ 65424} GAH504Z+HV               =       G1A504b +      GHO                                    :  0.100E+01*SUN;
+{ 65425} G1A507l                     =       GAH501n +      GHO                                    : ARR( 0.160E+12,  2186., 0.0);
+{ 65426} G1A507l                     =       GCO     +      GHH400H +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 65427} GPH504b                     =       G3H503o +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 65428} GPH504b +GHO                =       GPH504E +      GHO                                    : ARR( 0.180E-10,     0., 0.0);
+{ 65429} GPH504b +GHO                =       GPH504h +      GHO2                                   : ARR( 0.115E-10,     0., 0.0);
+{ 65430} GPH504b +GHO                =       GPH504d +      GHO                                    : ARR( 0.461E-10,     0., 0.0);
+{ 65431} GPH504b +GHO                =       GPH504Q +      GHO                                    : ARR( 0.281E-10,     0., 0.0);
+{ 65432} GPH504b+HV               =       G1P506d +      GHO                                    :  0.100E+01*SUN;
+{ 65433} GPH504b+HV               =       G1P508H +      GHO                                    :  0.100E+01*SUN;
+{ 65434} GPH504b+HV               =       G1P508I +      GHO                                    :  0.100E+01*SUN;
+{ 65435} GPH504b+HV               =       G3H503o +      GNO2                                   :  0.100E+01*SUN;
+{ 65436} G1P508I                     =       GPH501m +      GHO                                    : ARR( 0.160E+12,  2186., 0.0);
+{ 65437} G1P508I                     =       GHH400H +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 65438} GHH5036 +GHO                =       GHD501R +      GHO                                    : ARR( 0.104E-10,     0., 0.0);
+{ 65439} GHH5036 +GHO                =       GHH503F +      GHO2                                   : ARR( 0.210E-10,     0., 0.0);
+{ 65440} GHH5036 +GHO                =       GHD501O +      GHO                                    : ARR( 0.842E-10,     0., 0.0);
+{ 65441} GHH5036 +GHO                =       G3H5056                                               : ARR( 0.219E-10,     0., 0.0);
+{ 65442} GHH5036 +GNO3               =       G3H5056 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 65443} GHH5036+HV               =       G1H50Am +      GHO                                    :  0.100E+01*SUN;
+{ 65444} GHH5036+HV               =       G3H2000 +      GHD3004 +      GHO2                    :  0.100E+01*SUN;
+{ 65445} GHH5036+HV               =       G1H50Br +      GHO                                    :  0.100E+01*SUN;
+{ 65446} GHH5036+HV               =       GHD400J +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 65447} G3H5056 +GHO2               =  0.800GGH504c + 0.200GAH504g + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 65448} G3H5056 +GNO                =       GHD400J +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 65449} G3H5056 +GNO2               =       GPH504k                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 65450} G3H5056 +GNO3               =       GHD400J +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 65451} G3H5056 +MEPERO             =  0.685GHD400J + 0.315GAH504g + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 65452} G3H5056 +PERO1              =  0.800GHD400J + 0.200GAH504g + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 65453} G3H5056 +PERO2              =  0.750GHD400J + 0.250GAH504g + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 65454} G3H5056 +PERO3              =  0.800GHD400J + 0.200GAH504g + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 65455} G3H5056 +PERO5              =  0.650GHD400J + 0.350GAH504g + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 65456} G3H5056 +PERO6              =  0.650GHD400J + 0.350GAH504g + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 65457} G3H5056 +PERO9              =       GHD400J +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 65458} GGH504S +GHO                =       GGH503u +      GHO                                    : ARR( 0.190E-10,     0., 0.0);
+{ 65459} GGH504S +GHO                =       GGH504c +      GHO2                                   : ARR( 0.121E-10,     0., 0.0);
+{ 65460} GGH504S +GHO                =       GGH504T +      GHO2                                   : ARR( 0.121E-10,     0., 0.0);
+{ 65461} GGH504S +GHO                =       GGH504K +      GHO                                    : ARR( 0.296E-10,     0., 0.0);
+{ 65462} GGH504S+HV               =       G1G503l +      GHO                                    :  0.100E+01*SUN;
+{ 65463} GGH504S+HV               =       G1G507E +      GHO                                    :  0.100E+01*SUN;
+{ 65464} GGH504S+HV               =       GHD400E +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 65465} G1G507E                     =       GGD500A +      GHO                                    : ARR( 0.160E+12,  2186., 0.0);
+{ 65466} G1G507E                     =       GHD3005 +      GGD2000 +      GHO2                    : ARR( 0.200E+15,  5342., 0.0);
+{ 65467} G1G507E                     =       GHD400E +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 65468} GAH504a +GHO                =       GAH504S +      GHO                                    : ARR( 0.188E-10,     0., 0.0);
+{ 65469} GAH504a +GHO                =       GAH504b +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 65470} GAH504a +GHO                =       GAH504g +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 65471} GAH504a +GHO                =       GAH5048 +      GHO                                    : ARR( 0.163E-10,     0., 0.0);
+{ 65472} GAH504a +GHO                =       G2A505f                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 65473} GAH504a +GHO                =       G2A505g                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 65474} GAH504a+HV               =       G1A507m +      GHO                                    :  0.100E+01*SUN;
+{ 65475} GAH504a+HV               =       G1A504c +      GHO                                    :  0.100E+01*SUN;
+{ 65476} G2A505f +GNO                =       G1A507m +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 65477} G2A505f +GNO                =       GAH505Y                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 65478} G2A505f +GHO2               =       GAH504a                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 65479} G2A505f +GNO3               =       G1A507m +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 65480} G2A505f +MEPERO             =  0.340G1A507m + 0.330GAH501i + 0.330GAH504S                 : ARR( 0.565E-13,  -845., 0.0);
+{ 65481} G2A505f +PERO1              =  0.460G1A507m + 0.270GAH501i + 0.270GAH504S                 : ARR( 0.434E-13,  -900., 0.0);
+{ 65482} G2A505f +PERO2              =  0.400G1A507m + 0.300GAH501i + 0.300GAH504S                 : ARR( 0.162E-13, -1400., 0.0);
+{ 65483} G2A505f +PERO3              =  0.460G1A507m + 0.270GAH501i + 0.270GAH504S                 : ARR( 0.488E-13, -1250., 0.0);
+{ 65484} G2A505f +PERO5              =  0.460G1A507m + 0.270GAH501i + 0.270GAH504S                 : ARR( 0.183E-11,   450., 0.0);
+{ 65485} G2A505f +PERO6              =  0.300G1A507m + 0.350GAH501i + 0.350GAH504S                 : ARR( 0.168E-13, -1300., 0.0);
+{ 65486} G2A505f +PERO9              =  0.650G1A507m + 0.350GAH504S                                : ARR( 0.100E-10,     0., 0.0);
+{ 65487} G2A505g +GNO                =       G1A504c +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 65488} G2A505g +GNO                =       GAH501q                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 65489} G2A505g +GHO2               =       GAH504a                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 65490} G2A505g +GNO3               =       G1A504c +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 65491} G2A505g +MEPERO             =  0.480G1A504c + 0.260GAH501c + 0.260GAH5048                 : ARR( 0.164E-12,  -795., 0.0);
+{ 65492} G2A505g +PERO1              =  0.600G1A504c + 0.200GAH501c + 0.200GAH5048                 : ARR( 0.126E-12,  -850., 0.0);
+{ 65493} G2A505g +PERO2              =  0.560G1A504c + 0.220GAH501c + 0.220GAH5048                 : ARR( 0.471E-13, -1350., 0.0);
+{ 65494} G2A505g +PERO3              =  0.600G1A504c + 0.200GAH501c + 0.200GAH5048                 : ARR( 0.142E-12, -1200., 0.0);
+{ 65495} G2A505g +PERO5              =  0.600G1A504c + 0.200GAH501c + 0.200GAH5048                 : ARR( 0.533E-11,   500., 0.0);
+{ 65496} G2A505g +PERO6              =  0.460G1A504c + 0.270GAH501c + 0.270GAH5048                 : ARR( 0.488E-13, -1250., 0.0);
+{ 65497} G2A505g +PERO9              =  0.800G1A504c + 0.200GAH5048                                : ARR( 0.100E-10,     0., 0.0);
+{ 65498} G1A507m                     =       GAD500C +      GHO                                    : ARR( 0.160E+12,  2186., 0.0);
+{ 65499} G1A507m                     =       GCO     +      GHD400E +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 65500} G1A507m                     =       GAD2000 +      GHD3005 +      GHO2                    : ARR( 0.200E+15,  5342., 0.0);
+{ 65501} GPH504c                     =       G3H503p +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 65502} GPH504c +GHO                =       GPH504F +      GHO                                    : ARR( 0.161E-10,     0., 0.0);
+{ 65503} GPH504c +GHO                =       GPH504k +      GHO2                                   : ARR( 0.103E-10,     0., 0.0);
+{ 65504} GPH504c +GHO                =       GPH504d +      GHO2                                   : ARR( 0.103E-10,     0., 0.0);
+{ 65505} GPH504c +GHO                =       GPH504T +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 65506} GPH504c +GHO                =       G2P5062                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 65507} GPH504c +GHO                =       G2P5063                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 65508} GPH504c+HV               =       G1P504e +      GHO                                    :  0.100E+01*SUN;
+{ 65509} GPH504c+HV               =       G1P508J +      GHO                                    :  0.100E+01*SUN;
+{ 65510} GPH504c+HV               =       G3H503p +      GNO2                                   :  0.100E+01*SUN;
+{ 65511} G2P5062 +GNO                =       G1P504e +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 65512} G2P5062 +GNO                =       GPH501n                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 65513} G2P5062 +GHO2               =       GPH504c                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 65514} G2P5062 +GNO3               =       G1P504e +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 65515} G2P5062 +MEPERO             =  0.480G1P504e + 0.260GPH501b + 0.260GPH504F                 : ARR( 0.164E-12,  -795., 0.0);
+{ 65516} G2P5062 +PERO1              =  0.600G1P504e + 0.200GPH501b + 0.200GPH504F                 : ARR( 0.126E-12,  -850., 0.0);
+{ 65517} G2P5062 +PERO2              =  0.560G1P504e + 0.220GPH501b + 0.220GPH504F                 : ARR( 0.471E-13, -1350., 0.0);
+{ 65518} G2P5062 +PERO3              =  0.600G1P504e + 0.200GPH501b + 0.200GPH504F                 : ARR( 0.142E-12, -1200., 0.0);
+{ 65519} G2P5062 +PERO5              =  0.600G1P504e + 0.200GPH501b + 0.200GPH504F                 : ARR( 0.533E-11,   500., 0.0);
+{ 65520} G2P5062 +PERO6              =  0.460G1P504e + 0.270GPH501b + 0.270GPH504F                 : ARR( 0.488E-13, -1250., 0.0);
+{ 65521} G2P5062 +PERO9              =  0.800G1P504e + 0.200GPH504F                                : ARR( 0.100E-10,     0., 0.0);
+{ 65522} G2P5063 +GNO                =       G1P508J +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 65523} G2P5063 +GNO                =       GPH505b                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 65524} G2P5063 +GHO2               =       GPH504c                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 65525} G2P5063 +GNO3               =       G1P508J +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 65526} G2P5063 +MEPERO             =  0.340G1P508J + 0.330GPH501g + 0.330GPH504T                 : ARR( 0.565E-13,  -845., 0.0);
+{ 65527} G2P5063 +PERO1              =  0.460G1P508J + 0.270GPH501g + 0.270GPH504T                 : ARR( 0.434E-13,  -900., 0.0);
+{ 65528} G2P5063 +PERO2              =  0.400G1P508J + 0.300GPH501g + 0.300GPH504T                 : ARR( 0.162E-13, -1400., 0.0);
+{ 65529} G2P5063 +PERO3              =  0.460G1P508J + 0.270GPH501g + 0.270GPH504T                 : ARR( 0.488E-13, -1250., 0.0);
+{ 65530} G2P5063 +PERO5              =  0.460G1P508J + 0.270GPH501g + 0.270GPH504T                 : ARR( 0.183E-11,   450., 0.0);
+{ 65531} G2P5063 +PERO6              =  0.300G1P508J + 0.350GPH501g + 0.350GPH504T                 : ARR( 0.168E-13, -1300., 0.0);
+{ 65532} G2P5063 +PERO9              =  0.650G1P508J + 0.350GPH504T                                : ARR( 0.100E-10,     0., 0.0);
+{ 65533} G1P508J                     =       GPD500A +      GHO                                    : ARR( 0.160E+12,  2186., 0.0);
+{ 65534} G1P508J                     =       GHD3005 +      GPD2000 +      GHO2                    : ARR( 0.200E+15,  5342., 0.0);
+{ 65535} G1P508J                     =       GHD400E +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 65536} GGH504T +GHO                =       GGH503x +      GHO                                    : ARR( 0.587E-10,     0., 0.0);
+{ 65537} GGH504T +GHO                =       GGH505T +      GHO2                                   : ARR( 0.723E-11,     0., 0.0);
+{ 65538} GGH504T +GHO                =       GGH502Z +      GHO                                    : ARR( 0.176E-10,     0., 0.0);
+{ 65539} GGH504T+HV               =       G1G503n +      GHO                                    :  0.100E+01*SUN;
+{ 65540} GGH504T+HV               =       G3H3003 +      GGD2000 +      GHO                     :  0.100E+01*SUN;
+{ 65541} GGH504T+HV               =       G1G504i +      GHO                                    :  0.100E+01*SUN;
+{ 65542} GGH504T+HV               =       GHD400F +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 65543} GAH504b +GHO                =       GAH502p +      GHO                                    : ARR( 0.126E-10,     0., 0.0);
+{ 65544} GAH504b +GHO                =       GAH505Z +      GHO2                                   : ARR( 0.700E-11,     0., 0.0);
+{ 65545} GAH504b +GHO                =       GAH504A +      GHO                                    : ARR( 0.568E-10,     0., 0.0);
+{ 65546} GAH504b+HV               =       G1A505q +      GHO                                    :  0.100E+01*SUN;
+{ 65547} GAH504b+HV               =       G3A3003 +      GHD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 65548} GAH504b+HV               =       G1A504Z +      GHO                                    :  0.100E+01*SUN;
+{ 65549} GPH504d                     =       G3H503q +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 65550} GPH504d +GHO                =       GPH504H +      GHO                                    : ARR( 0.561E-10,     0., 0.0);
+{ 65551} GPH504d +GHO                =       GPH505c +      GHO2                                   : ARR( 0.692E-11,     0., 0.0);
+{ 65552} GPH504d +GHO                =       GPH502x +      GHO                                    : ARR( 0.169E-10,     0., 0.0);
+{ 65553} GPH504d+HV               =       G1P504g +      GHO                                    :  0.100E+01*SUN;
+{ 65554} GPH504d+HV               =       G3H3003 +      GPD2000 +      GHO                     :  0.100E+01*SUN;
+{ 65555} GPH504d+HV               =       G1P506b +      GHO                                    :  0.100E+01*SUN;
+{ 65556} GPH504d+HV               =       G3H503q +      GNO2                                   :  0.100E+01*SUN;
+{ 65557} GGH504U +GHO                =       GGN5023 +      GHO                                    : ARR( 0.163E-10,     0., 0.0);
+{ 65558} GGH504U +GHO                =       G2G504p                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 65559} GGH504U +GHO                =       G3H503v                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 65560} GGH504U+HV               =       G1G502Z +      GHO                                    :  0.100E+01*SUN;
+{ 65561} GGH504U+HV               =       G1G507F +      GNO2                                   :  0.100E+01*SUN;
+{ 65562} GGH504U+HV               =       GAH400E +      GCO2                                   :  0.100E+01*SUN;
+{ 65563} G2G504p +GNO                =       G1G502Z +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 65564} G2G504p +GNO                =       GGN5014                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 65565} G2G504p +GHO2               =       GGH504U                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 65566} G2G504p +GNO3               =       G1G502Z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 65567} G2G504p +MEPERO             =  0.480G1G502Z + 0.260GGN500p + 0.260GGN5023                 : ARR( 0.146E-12,  -445., 0.0);
+{ 65568} G2G504p +PERO1              =  0.600G1G502Z + 0.200GGN500p + 0.200GGN5023                 : ARR( 0.112E-12,  -500., 0.0);
+{ 65569} G2G504p +PERO2              =  0.560G1G502Z + 0.220GGN500p + 0.220GGN5023                 : ARR( 0.418E-13, -1000., 0.0);
+{ 65570} G2G504p +PERO3              =  0.600G1G502Z + 0.200GGN500p + 0.200GGN5023                 : ARR( 0.126E-12,  -850., 0.0);
+{ 65571} G2G504p +PERO5              =  0.600G1G502Z + 0.200GGN500p + 0.200GGN5023                 : ARR( 0.473E-11,   850., 0.0);
+{ 65572} G2G504p +PERO6              =  0.460G1G502Z + 0.270GGN500p + 0.270GGN5023                 : ARR( 0.434E-13,  -900., 0.0);
+{ 65573} G2G504p +PERO9              =  0.800G1G502Z + 0.200GGN5023                                : ARR( 0.100E-10,     0., 0.0);
+{ 65574} G1G507F                     =       GHD3000 +      GCO     +      GHO2    +      GCO      : ARR( 0.200E+15,  3012., 0.0);
+{ 65575} GGH504W +GHO                =       GGH502z +      GHO                                    : ARR( 0.161E-10,     0., 0.0);
+{ 65576} GGH504W +GHO                =       G2G504q                                               : ARR( 0.448E-11,     0., 0.0);
+{ 65577} GGH504W +GHO                =       GGH502D +      GHO                                    : ARR( 0.251E-10,     0., 0.0);
+{ 65578} GGH504W +GHO                =       G2G504r                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 65579} GGH504W +GHO                =       G2G504s                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 65580} GGH504W +GHO                =       G3H5057                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 65581} GGH504W+HV               =       G1G502a +      GHO                                    :  0.100E+01*SUN;
+{ 65582} GGH504W+HV               =       G1G507F +      GHO                                    :  0.100E+01*SUN;
+{ 65583} GGH504W+HV               =       GAH400d +      GCO2                                   :  0.100E+01*SUN;
+{ 65584} G2G504q +GNO                =       G1G507G +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 65585} G2G504q +GNO                =       GGH505O                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 65586} G2G504q +GHO2               =       GGH505U                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 65587} G2G504q +GNO3               =       G1G507G +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 65588} G2G504q +MEPERO             =  0.340G1G507G + 0.330GGH504G + 0.330GGH504a                 : ARR( 0.565E-13,  -845., 0.0);
+{ 65589} G2G504q +PERO1              =  0.460G1G507G + 0.270GGH504G + 0.270GGH504a                 : ARR( 0.434E-13,  -900., 0.0);
+{ 65590} G2G504q +PERO2              =  0.400G1G507G + 0.300GGH504G + 0.300GGH504a                 : ARR( 0.162E-13, -1400., 0.0);
+{ 65591} G2G504q +PERO3              =  0.460G1G507G + 0.270GGH504G + 0.270GGH504a                 : ARR( 0.488E-13, -1250., 0.0);
+{ 65592} G2G504q +PERO5              =  0.460G1G507G + 0.270GGH504G + 0.270GGH504a                 : ARR( 0.183E-11,   450., 0.0);
+{ 65593} G2G504q +PERO6              =  0.300G1G507G + 0.350GGH504G + 0.350GGH504a                 : ARR( 0.168E-13, -1300., 0.0);
+{ 65594} G2G504q +PERO9              =  0.650G1G507G + 0.350GGH504a                                : ARR( 0.100E-10,     0., 0.0);
+{ 65595} G2G504r +GNO                =       G1G502a +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 65596} G2G504r +GNO                =       GGH5012                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 65597} G2G504r +GHO2               =       GGH504W                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 65598} G2G504r +GNO3               =       G1G502a +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 65599} G2G504r +MEPERO             =  0.480G1G502a + 0.260GGH500r + 0.260GGH502z                 : ARR( 0.146E-12,  -445., 0.0);
+{ 65600} G2G504r +PERO1              =  0.600G1G502a + 0.200GGH500r + 0.200GGH502z                 : ARR( 0.112E-12,  -500., 0.0);
+{ 65601} G2G504r +PERO2              =  0.560G1G502a + 0.220GGH500r + 0.220GGH502z                 : ARR( 0.418E-13, -1000., 0.0);
+{ 65602} G2G504r +PERO3              =  0.600G1G502a + 0.200GGH500r + 0.200GGH502z                 : ARR( 0.126E-12,  -850., 0.0);
+{ 65603} G2G504r +PERO5              =  0.600G1G502a + 0.200GGH500r + 0.200GGH502z                 : ARR( 0.473E-11,   850., 0.0);
+{ 65604} G2G504r +PERO6              =  0.460G1G502a + 0.270GGH500r + 0.270GGH502z                 : ARR( 0.434E-13,  -900., 0.0);
+{ 65605} G2G504r +PERO9              =  0.800G1G502a + 0.200GGH502z                                : ARR( 0.100E-10,     0., 0.0);
+{ 65606} G2G504s +GNO                =       G1G507F +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 65607} G2G504s +GNO                =       GGH504U                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 65608} G2G504s +GHO2               =       GGH504W                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 65609} G2G504s +GNO3               =       G1G507F +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 65610} G2G504s +MEPERO             =  0.340G1G507F + 0.330GGH5025 + 0.330GGH502D                 : ARR( 0.565E-13,  -845., 0.0);
+{ 65611} G2G504s +PERO1              =  0.460G1G507F + 0.270GGH5025 + 0.270GGH502D                 : ARR( 0.434E-13,  -900., 0.0);
+{ 65612} G2G504s +PERO2              =  0.400G1G507F + 0.300GGH5025 + 0.300GGH502D                 : ARR( 0.162E-13, -1400., 0.0);
+{ 65613} G2G504s +PERO3              =  0.460G1G507F + 0.270GGH5025 + 0.270GGH502D                 : ARR( 0.488E-13, -1250., 0.0);
+{ 65614} G2G504s +PERO5              =  0.460G1G507F + 0.270GGH5025 + 0.270GGH502D                 : ARR( 0.183E-11,   450., 0.0);
+{ 65615} G2G504s +PERO6              =  0.300G1G507F + 0.350GGH5025 + 0.350GGH502D                 : ARR( 0.168E-13, -1300., 0.0);
+{ 65616} G2G504s +PERO9              =  0.650G1G507F + 0.350GGH502D                                : ARR( 0.100E-10,     0., 0.0);
+{ 65617} G3H5057 +GHO2               =  0.800GGH504W + 0.200GAH504c + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 65618} G3H5057 +GNO                =       G3H400T +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 65619} G3H5057 +GNO2               =       GPH504e                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 65620} G3H5057 +GNO3               =       G3H400T +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 65621} G3H5057 +MEPERO             =  0.685G3H400T + 0.315GAH504c + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 65622} G3H5057 +PERO1              =  0.800G3H400T + 0.200GAH504c + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 65623} G3H5057 +PERO2              =  0.750G3H400T + 0.250GAH504c + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 65624} G3H5057 +PERO3              =  0.800G3H400T + 0.200GAH504c + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 65625} G3H5057 +PERO5              =  0.650G3H400T + 0.350GAH504c + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 65626} G3H5057 +PERO6              =  0.650G3H400T + 0.350GAH504c + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 65627} G3H5057 +PERO9              =       G3H400T +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 65628} G1G507G                     =       GHD2000 +      GGD3002 +      GHO                     : ARR( 0.200E+15,  4556., 0.0);
+{ 65629} GAH504c +GHO                =       GAH502R +      GHO                                    : ARR( 0.254E-10,     0., 0.0);
+{ 65630} GAH504c +GHO                =       G2A505h                                               : ARR( 0.452E-11,     0., 0.0);
+{ 65631} GAH504c +GHO                =       GAH503F +      GHO                                    : ARR( 0.162E-10,     0., 0.0);
+{ 65632} GAH504c +GHO                =       G2A505i                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 65633} GAH504c +GHO                =       G2A505j                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 65634} GAH504c+HV               =       GHH400A +      GCO2                                   :  0.100E+01*SUN;
+{ 65635} GAH504c+HV               =       G1A5058 +      GHO                                    :  0.100E+01*SUN;
+{ 65636} GAH504c+HV               =       G1A503K +      GHO                                    :  0.100E+01*SUN;
+{ 65637} G2A505h +GNO                =       G1A507n +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 65638} G2A505h +GNO                =       GAH505R                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 65639} G2A505h +GHO2               =       GAH505a                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 65640} G2A505h +GNO3               =       G1A507n +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 65641} G2A505h +MEPERO             =  0.340G1A507n + 0.330GAH504O + 0.330GAH505U                 : ARR( 0.565E-13,  -845., 0.0);
+{ 65642} G2A505h +PERO1              =  0.460G1A507n + 0.270GAH504O + 0.270GAH505U                 : ARR( 0.434E-13,  -900., 0.0);
+{ 65643} G2A505h +PERO2              =  0.400G1A507n + 0.300GAH504O + 0.300GAH505U                 : ARR( 0.162E-13, -1400., 0.0);
+{ 65644} G2A505h +PERO3              =  0.460G1A507n + 0.270GAH504O + 0.270GAH505U                 : ARR( 0.488E-13, -1250., 0.0);
+{ 65645} G2A505h +PERO5              =  0.460G1A507n + 0.270GAH504O + 0.270GAH505U                 : ARR( 0.183E-11,   450., 0.0);
+{ 65646} G2A505h +PERO6              =  0.300G1A507n + 0.350GAH504O + 0.350GAH505U                 : ARR( 0.168E-13, -1300., 0.0);
+{ 65647} G2A505h +PERO9              =  0.650G1A507n + 0.350GAH505U                                : ARR( 0.100E-10,     0., 0.0);
+{ 65648} G2A505i +GNO                =       G1A5058 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 65649} G2A505i +GNO                =       GAH502E                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 65650} G2A505i +GHO2               =       GAH504c                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 65651} G2A505i +GNO3               =       G1A5058 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 65652} G2A505i +MEPERO             =  0.340G1A5058 + 0.330GAH504d + 0.330GAH502R                 : ARR( 0.565E-13,  -845., 0.0);
+{ 65653} G2A505i +PERO1              =  0.460G1A5058 + 0.270GAH504d + 0.270GAH502R                 : ARR( 0.434E-13,  -900., 0.0);
+{ 65654} G2A505i +PERO2              =  0.400G1A5058 + 0.300GAH504d + 0.300GAH502R                 : ARR( 0.162E-13, -1400., 0.0);
+{ 65655} G2A505i +PERO3              =  0.460G1A5058 + 0.270GAH504d + 0.270GAH502R                 : ARR( 0.488E-13, -1250., 0.0);
+{ 65656} G2A505i +PERO5              =  0.460G1A5058 + 0.270GAH504d + 0.270GAH502R                 : ARR( 0.183E-11,   450., 0.0);
+{ 65657} G2A505i +PERO6              =  0.300G1A5058 + 0.350GAH504d + 0.350GAH502R                 : ARR( 0.168E-13, -1300., 0.0);
+{ 65658} G2A505i +PERO9              =  0.650G1A5058 + 0.350GAH502R                                : ARR( 0.100E-10,     0., 0.0);
+{ 65659} G2A505j +GNO                =       G1A503K +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 65660} G2A505j +GNO                =       GAH5019                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 65661} G2A505j +GHO2               =       GAH504c                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 65662} G2A505j +GNO3               =       G1A503K +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 65663} G2A505j +MEPERO             =  0.480G1A503K + 0.260GAH500x + 0.260GAH503F                 : ARR( 0.146E-12,  -445., 0.0);
+{ 65664} G2A505j +PERO1              =  0.600G1A503K + 0.200GAH500x + 0.200GAH503F                 : ARR( 0.112E-12,  -500., 0.0);
+{ 65665} G2A505j +PERO2              =  0.560G1A503K + 0.220GAH500x + 0.220GAH503F                 : ARR( 0.418E-13, -1000., 0.0);
+{ 65666} G2A505j +PERO3              =  0.600G1A503K + 0.200GAH500x + 0.200GAH503F                 : ARR( 0.126E-12,  -850., 0.0);
+{ 65667} G2A505j +PERO5              =  0.600G1A503K + 0.200GAH500x + 0.200GAH503F                 : ARR( 0.473E-11,   850., 0.0);
+{ 65668} G2A505j +PERO6              =  0.460G1A503K + 0.270GAH500x + 0.270GAH503F                 : ARR( 0.434E-13,  -900., 0.0);
+{ 65669} G2A505j +PERO9              =  0.800G1A503K + 0.200GAH503F                                : ARR( 0.100E-10,     0., 0.0);
+{ 65670} G1A507n                     =       GAD3002 +      GHD2000 +      GHO                     : ARR( 0.200E+15,  4556., 0.0);
+{ 65671} GPH504e                     =       G3H5057 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 65672} GPH504e +GHO                =       GPH503L +      GHO                                    : ARR( 0.161E-10,     0., 0.0);
+{ 65673} GPH504e +GHO                =       G2P5064                                               : ARR( 0.448E-11,     0., 0.0);
+{ 65674} GPH504e +GHO                =       GPH502Z +      GHO                                    : ARR( 0.251E-10,     0., 0.0);
+{ 65675} GPH504e +GHO                =       G2P5065                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 65676} GPH504e +GHO                =       G2P5066                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 65677} GPH504e+HV               =       G1P5045 +      GHO                                    :  0.100E+01*SUN;
+{ 65678} GPH504e+HV               =       G1P505X +      GHO                                    :  0.100E+01*SUN;
+{ 65679} GPH504e+HV               =       G3H400T +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 65680} G2P5064 +GNO                =       G1P508K +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 65681} G2P5064 +GNO                =       GPH505X                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 65682} G2P5064 +GHO2               =       GPH505d                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 65683} G2P5064 +GNO3               =       G1P508K +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 65684} G2P5064 +MEPERO             =  0.340G1P508K + 0.330GPH504Q + 0.330GPH504i                 : ARR( 0.565E-13,  -845., 0.0);
+{ 65685} G2P5064 +PERO1              =  0.460G1P508K + 0.270GPH504Q + 0.270GPH504i                 : ARR( 0.434E-13,  -900., 0.0);
+{ 65686} G2P5064 +PERO2              =  0.400G1P508K + 0.300GPH504Q + 0.300GPH504i                 : ARR( 0.162E-13, -1400., 0.0);
+{ 65687} G2P5064 +PERO3              =  0.460G1P508K + 0.270GPH504Q + 0.270GPH504i                 : ARR( 0.488E-13, -1250., 0.0);
+{ 65688} G2P5064 +PERO5              =  0.460G1P508K + 0.270GPH504Q + 0.270GPH504i                 : ARR( 0.183E-11,   450., 0.0);
+{ 65689} G2P5064 +PERO6              =  0.300G1P508K + 0.350GPH504Q + 0.350GPH504i                 : ARR( 0.168E-13, -1300., 0.0);
+{ 65690} G2P5064 +PERO9              =  0.650G1P508K + 0.350GPH504i                                : ARR( 0.100E-10,     0., 0.0);
+{ 65691} G2P5065 +GNO                =       G1P5045 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 65692} G2P5065 +GNO                =       GPH501O                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 65693} G2P5065 +GHO2               =       GPH504e                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 65694} G2P5065 +GNO3               =       G1P5045 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 65695} G2P5065 +MEPERO             =  0.480G1P5045 + 0.260GPH500y + 0.260GPH503L                 : ARR( 0.146E-12,  -445., 0.0);
+{ 65696} G2P5065 +PERO1              =  0.600G1P5045 + 0.200GPH500y + 0.200GPH503L                 : ARR( 0.112E-12,  -500., 0.0);
+{ 65697} G2P5065 +PERO2              =  0.560G1P5045 + 0.220GPH500y + 0.220GPH503L                 : ARR( 0.418E-13, -1000., 0.0);
+{ 65698} G2P5065 +PERO3              =  0.600G1P5045 + 0.200GPH500y + 0.200GPH503L                 : ARR( 0.126E-12,  -850., 0.0);
+{ 65699} G2P5065 +PERO5              =  0.600G1P5045 + 0.200GPH500y + 0.200GPH503L                 : ARR( 0.473E-11,   850., 0.0);
+{ 65700} G2P5065 +PERO6              =  0.460G1P5045 + 0.270GPH500y + 0.270GPH503L                 : ARR( 0.434E-13,  -900., 0.0);
+{ 65701} G2P5065 +PERO9              =  0.800G1P5045 + 0.200GPH503L                                : ARR( 0.100E-10,     0., 0.0);
+{ 65702} G2P5066 +GNO                =       G1P505X +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 65703} G2P5066 +GNO                =       GPH502D                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 65704} G2P5066 +GHO2               =       GPH504e                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 65705} G2P5066 +GNO3               =       G1P505X +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 65706} G2P5066 +MEPERO             =  0.340G1P505X + 0.330GPH502N + 0.330GPH502Z                 : ARR( 0.565E-13,  -845., 0.0);
+{ 65707} G2P5066 +PERO1              =  0.460G1P505X + 0.270GPH502N + 0.270GPH502Z                 : ARR( 0.434E-13,  -900., 0.0);
+{ 65708} G2P5066 +PERO2              =  0.400G1P505X + 0.300GPH502N + 0.300GPH502Z                 : ARR( 0.162E-13, -1400., 0.0);
+{ 65709} G2P5066 +PERO3              =  0.460G1P505X + 0.270GPH502N + 0.270GPH502Z                 : ARR( 0.488E-13, -1250., 0.0);
+{ 65710} G2P5066 +PERO5              =  0.460G1P505X + 0.270GPH502N + 0.270GPH502Z                 : ARR( 0.183E-11,   450., 0.0);
+{ 65711} G2P5066 +PERO6              =  0.300G1P505X + 0.350GPH502N + 0.350GPH502Z                 : ARR( 0.168E-13, -1300., 0.0);
+{ 65712} G2P5066 +PERO9              =  0.650G1P505X + 0.350GPH502Z                                : ARR( 0.100E-10,     0., 0.0);
+{ 65713} G1P508K                     =       GHD2000 +      GPD3002 +      GHO                     : ARR( 0.200E+15,  4556., 0.0);
+{ 65714} GHH5037 +GHO                =       GHD501R +      GHO                                    : ARR( 0.175E-10,     0., 0.0);
+{ 65715} GHH5037 +GHO                =       GHD501O +      GHO                                    : ARR( 0.142E-09,     0., 0.0);
+{ 65716} GHH5037 +GHO                =       G3H400j +      GCO                                    : ARR( 0.137E-10,     0., 0.0);
+{ 65717} GHH5037 +GNO3               =       G3H400j +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 65718} GHH5037+HV               =       G1H50Al +      GHO                                    :  0.100E+01*SUN;
+{ 65719} GHH5037+HV               =       G1H50B6 +      GHO                                    :  0.100E+01*SUN;
+{ 65720} GHH5037+HV               =       G3H400j +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 65721} GHH5037+HV               =       GHH400d +      GCO                                    :  0.100E+01*SUN;
+{ 65722} GHH5037+HV               =       GHH3003 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 65723} GAH504d +GHO                =       GAH502R +      GHO2                                   : ARR( 0.642E-11,     0., 0.0);
+{ 65724} GAH504d +GHO                =       G2A505k                                               : ARR( 0.458E-11,     0., 0.0);
+{ 65725} GAH504d +GHO                =       GAD500K +      GHO                                    : ARR( 0.164E-10,     0., 0.0);
+{ 65726} GAH504d +GHO                =       G2A505l                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 65727} GAH504d+HV               =       GHD400B +      GCO2                                   :  0.100E+01*SUN;
+{ 65728} GAH504d+HV               =       G1A502w +      GHO                                    :  0.100E+01*SUN;
+{ 65729} G2A505k +GNO                =       G1A507o +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 65730} G2A505k +GNO                =       GAH5055                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 65731} G2A505k +GHO2               =       GAH505b                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 65732} G2A505k +GNO3               =       G1A507o +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 65733} G2A505k +MEPERO             =  0.340G1A507o + 0.330GAH504S + 0.330GAH504h                 : ARR( 0.565E-13,  -845., 0.0);
+{ 65734} G2A505k +PERO1              =  0.460G1A507o + 0.270GAH504S + 0.270GAH504h                 : ARR( 0.434E-13,  -900., 0.0);
+{ 65735} G2A505k +PERO2              =  0.400G1A507o + 0.300GAH504S + 0.300GAH504h                 : ARR( 0.162E-13, -1400., 0.0);
+{ 65736} G2A505k +PERO3              =  0.460G1A507o + 0.270GAH504S + 0.270GAH504h                 : ARR( 0.488E-13, -1250., 0.0);
+{ 65737} G2A505k +PERO5              =  0.460G1A507o + 0.270GAH504S + 0.270GAH504h                 : ARR( 0.183E-11,   450., 0.0);
+{ 65738} G2A505k +PERO6              =  0.300G1A507o + 0.350GAH504S + 0.350GAH504h                 : ARR( 0.168E-13, -1300., 0.0);
+{ 65739} G2A505k +PERO9              =  0.650G1A507o + 0.350GAH504h                                : ARR( 0.100E-10,     0., 0.0);
+{ 65740} G2A505l +GNO                =       G1A502w +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 65741} G2A505l +GNO                =       GAN500y                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 65742} G2A505l +GHO2               =       GAH504d                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 65743} G2A505l +GNO3               =       G1A502w +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 65744} G2A505l +MEPERO             =  0.480G1A502w + 0.260GAK500N + 0.260GAD500K                 : ARR( 0.146E-12,  -445., 0.0);
+{ 65745} G2A505l +PERO1              =  0.600G1A502w + 0.200GAK500N + 0.200GAD500K                 : ARR( 0.112E-12,  -500., 0.0);
+{ 65746} G2A505l +PERO2              =  0.560G1A502w + 0.220GAK500N + 0.220GAD500K                 : ARR( 0.418E-13, -1000., 0.0);
+{ 65747} G2A505l +PERO3              =  0.600G1A502w + 0.200GAK500N + 0.200GAD500K                 : ARR( 0.126E-12,  -850., 0.0);
+{ 65748} G2A505l +PERO5              =  0.600G1A502w + 0.200GAK500N + 0.200GAD500K                 : ARR( 0.473E-11,   850., 0.0);
+{ 65749} G2A505l +PERO6              =  0.460G1A502w + 0.270GAK500N + 0.270GAD500K                 : ARR( 0.434E-13,  -900., 0.0);
+{ 65750} G2A505l +PERO9              =  0.800G1A502w + 0.200GAD500K                                : ARR( 0.100E-10,     0., 0.0);
+{ 65751} G1A507o                     =       GAD3002 +      GHD2000 +      GHO2                    : ARR( 0.200E+15,  3347., 0.0);
+{ 65752} GGH504X +GHO                =       GGH503B +      GHO                                    : ARR( 0.174E-10,     0., 0.0);
+{ 65753} GGH504X +GHO                =       GGH501x +      GHO                                    : ARR( 0.141E-09,     0., 0.0);
+{ 65754} GGH504X+HV               =       G1G502W +      GHO                                    :  0.100E+01*SUN;
+{ 65755} GGH504X+HV               =       G1G503u +      GHO                                    :  0.100E+01*SUN;
+{ 65756} GGH504X+HV               =       GAH400X +      GCO2                                   :  0.100E+01*SUN;
+{ 65757} GAH504e +GHO                =       GAH5025 +      GHO                                    : ARR( 0.138E-09,     0., 0.0);
+{ 65758} GAH504e +GHO                =       GAH503c +      GHO                                    : ARR( 0.170E-10,     0., 0.0);
+{ 65759} GAH504e+HV               =       GHH400B +      GCO2                                   :  0.100E+01*SUN;
+{ 65760} GAH504e+HV               =       G1A504h +      GHO                                    :  0.100E+01*SUN;
+{ 65761} GAH504e+HV               =       G1A503N +      GHO                                    :  0.100E+01*SUN;
+{ 65762} GPH504f                     =       G3H5058 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 65763} GPH504f +GHO                =       GPH503v +      GHO                                    : ARR( 0.170E-10,     0., 0.0);
+{ 65764} GPH504f +GHO                =       GPH5022 +      GHO                                    : ARR( 0.138E-09,     0., 0.0);
+{ 65765} GPH504f+HV               =       G1P503s +      GHO                                    :  0.100E+01*SUN;
+{ 65766} GPH504f+HV               =       G1P504m +      GHO                                    :  0.100E+01*SUN;
+{ 65767} GPH504f+HV               =       G3H400S +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 65768} G3H5058 +GHO2               =  0.800GGH504X + 0.200GAH504e + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 65769} G3H5058 +GNO                =       G3H400S +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 65770} G3H5058 +GNO2               =       GPH504f                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 65771} G3H5058 +GNO3               =       G3H400S +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 65772} G3H5058 +MEPERO             =  0.685G3H400S + 0.315GAH504e + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 65773} G3H5058 +PERO1              =  0.800G3H400S + 0.200GAH504e + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 65774} G3H5058 +PERO2              =  0.750G3H400S + 0.250GAH504e + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 65775} G3H5058 +PERO3              =  0.800G3H400S + 0.200GAH504e + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 65776} G3H5058 +PERO5              =  0.650G3H400S + 0.350GAH504e + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 65777} G3H5058 +PERO6              =  0.650G3H400S + 0.350GAH504e + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 65778} G3H5058 +PERO9              =       G3H400S +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 65779} GGH504Y +GHO                =       GGH5051 +      GHO                                    : ARR( 0.989E-11,     0., 0.0);
+{ 65780} GGH504Y +GHO                =       GGH504o +      GHO                                    : ARR( 0.507E-11,     0., 0.0);
+{ 65781} GGH504Y +GHO                =       G2G504t                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 65782} GGH504Y +GHO                =       G2G504u                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 65783} GGH504Y +GHO                =       G3H5059                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 65784} GGH504Y+HV               =       G1G505t +      GHO                                    :  0.100E+01*SUN;
+{ 65785} GGH504Y+HV               =       G3H2000 +      GGN3005 +      GHO                     :  0.100E+01*SUN;
+{ 65786} GGH504Y+HV               =       G1G507H +      GHO                                    :  0.100E+01*SUN;
+{ 65787} GGH504Y+HV               =       G1G503w +      GNO2                                   :  0.100E+01*SUN;
+{ 65788} GGH504Y+HV               =       GHH400b +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 65789} G2G504t +GNO                =       G1G505t +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 65790} G2G504t +GNO                =       GGH503J                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 65791} G2G504t +GHO2               =       GGH504Y                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 65792} G2G504t +GNO3               =       G1G505t +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 65793} G2G504t +MEPERO             =  0.480G1G505t + 0.260GGH502y + 0.260GGH5051                 : ARR( 0.164E-12,  -795., 0.0);
+{ 65794} G2G504t +PERO1              =  0.600G1G505t + 0.200GGH502y + 0.200GGH5051                 : ARR( 0.126E-12,  -850., 0.0);
+{ 65795} G2G504t +PERO2              =  0.560G1G505t + 0.220GGH502y + 0.220GGH5051                 : ARR( 0.471E-13, -1350., 0.0);
+{ 65796} G2G504t +PERO3              =  0.600G1G505t + 0.200GGH502y + 0.200GGH5051                 : ARR( 0.142E-12, -1200., 0.0);
+{ 65797} G2G504t +PERO5              =  0.600G1G505t + 0.200GGH502y + 0.200GGH5051                 : ARR( 0.533E-11,   500., 0.0);
+{ 65798} G2G504t +PERO6              =  0.460G1G505t + 0.270GGH502y + 0.270GGH5051                 : ARR( 0.488E-13, -1250., 0.0);
+{ 65799} G2G504t +PERO9              =  0.800G1G505t + 0.200GGH5051                                : ARR( 0.100E-10,     0., 0.0);
+{ 65800} G2G504u +GNO                =       G1G507H +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 65801} G2G504u +GNO                =       GGH504n                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 65802} G2G504u +GHO2               =       GGH504Y                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 65803} G2G504u +GNO3               =       G1G507H +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 65804} G2G504u +MEPERO             =  0.340G1G507H + 0.330GGH504b + 0.330GGH504o                 : ARR( 0.565E-13,  -845., 0.0);
+{ 65805} G2G504u +PERO1              =  0.460G1G507H + 0.270GGH504b + 0.270GGH504o                 : ARR( 0.434E-13,  -900., 0.0);
+{ 65806} G2G504u +PERO2              =  0.400G1G507H + 0.300GGH504b + 0.300GGH504o                 : ARR( 0.162E-13, -1400., 0.0);
+{ 65807} G2G504u +PERO3              =  0.460G1G507H + 0.270GGH504b + 0.270GGH504o                 : ARR( 0.488E-13, -1250., 0.0);
+{ 65808} G2G504u +PERO5              =  0.460G1G507H + 0.270GGH504b + 0.270GGH504o                 : ARR( 0.183E-11,   450., 0.0);
+{ 65809} G2G504u +PERO6              =  0.300G1G507H + 0.350GGH504b + 0.350GGH504o                 : ARR( 0.168E-13, -1300., 0.0);
+{ 65810} G2G504u +PERO9              =  0.650G1G507H + 0.350GGH504o                                : ARR( 0.100E-10,     0., 0.0);
+{ 65811} G3H5059 +GHO2               =  0.800GGH504Y + 0.200GAH505c + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 65812} G3H5059 +GNO                =       GHH400b + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 65813} G3H5059 +GNO2               =       GPH504g                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 65814} G3H5059 +GNO3               =       GHH400b + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 65815} G3H5059 +MEPERO             =  0.685GHH400b + 0.315GAH505c + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 65816} G3H5059 +PERO1              =  0.800GHH400b + 0.200GAH505c + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 65817} G3H5059 +PERO2              =  0.750GHH400b + 0.250GAH505c + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 65818} G3H5059 +PERO3              =  0.800GHH400b + 0.200GAH505c + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 65819} G3H5059 +PERO5              =  0.650GHH400b + 0.350GAH505c + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 65820} G3H5059 +PERO6              =  0.650GHH400b + 0.350GAH505c + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 65821} G3H5059 +PERO9              =       GHH400b +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 65822} G1G507H                     =       G3H2000 +      GGN3005                                : ARR( 0.200E+15,  2179., 0.0);
+{ 65823} GGH504Z +GHO                =       GGH5055 +      GHO                                    : ARR( 0.110E-10,     0., 0.0);
+{ 65824} GGH504Z +GHO                =       GGH505T +      GHO                                    : ARR( 0.283E-10,     0., 0.0);
+{ 65825} GGH504Z +GHO                =       GGH504a +      GHO                                    : ARR( 0.897E-10,     0., 0.0);
+{ 65826} GGH504Z+HV               =       G1G5072 +      GHO                                    :  0.100E+01*SUN;
+{ 65827} GGH504Z+HV               =       G3H2000 +      GGH3007 +      GHO                     :  0.100E+01*SUN;
+{ 65828} GGH504Z+HV               =       G1G507I +      GHO                                    :  0.100E+01*SUN;
+{ 65829} GGH504Z+HV               =       G1G503w +      GHO                                    :  0.100E+01*SUN;
+{ 65830} GGH504Z+HV               =       GHH400b +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 65831} G1G507I                     =       G3H2000 +      GGH3007                                : ARR( 0.200E+15,  2179., 0.0);
+{ 65832} GGH504a +GHO                =       GGH5053 +      GHO                                    : ARR( 0.981E-11,     0., 0.0);
+{ 65833} GGH504a +GHO                =       GGH504q +      GHO                                    : ARR( 0.153E-10,     0., 0.0);
+{ 65834} GGH504a +GHO                =       G2G504v                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 65835} GGH504a +GHO                =       G2G504w                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 65836} GGH504a +GHO                =       G3H505A                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 65837} GGH504a+HV               =       G1G505X +      GHO                                    :  0.100E+01*SUN;
+{ 65838} GGH504a+HV               =       G3H2000 +      GGD3002 +      GHO                     :  0.100E+01*SUN;
+{ 65839} GGH504a+HV               =       G1G507J +      GHO                                    :  0.100E+01*SUN;
+{ 65840} GGH504a+HV               =       GAH400q +      GCO2                                   :  0.100E+01*SUN;
+{ 65841} G2G504v +GNO                =       G1G505X +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 65842} G2G504v +GNO                =       GGH503C                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 65843} G2G504v +GHO2               =       GGH504a                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 65844} G2G504v +GNO3               =       G1G505X +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 65845} G2G504v +MEPERO             =  0.480G1G505X + 0.260GGH5033 + 0.260GGH5053                 : ARR( 0.164E-12,  -795., 0.0);
+{ 65846} G2G504v +PERO1              =  0.600G1G505X + 0.200GGH5033 + 0.200GGH5053                 : ARR( 0.126E-12,  -850., 0.0);
+{ 65847} G2G504v +PERO2              =  0.560G1G505X + 0.220GGH5033 + 0.220GGH5053                 : ARR( 0.471E-13, -1350., 0.0);
+{ 65848} G2G504v +PERO3              =  0.600G1G505X + 0.200GGH5033 + 0.200GGH5053                 : ARR( 0.142E-12, -1200., 0.0);
+{ 65849} G2G504v +PERO5              =  0.600G1G505X + 0.200GGH5033 + 0.200GGH5053                 : ARR( 0.533E-11,   500., 0.0);
+{ 65850} G2G504v +PERO6              =  0.460G1G505X + 0.270GGH5033 + 0.270GGH5053                 : ARR( 0.488E-13, -1250., 0.0);
+{ 65851} G2G504v +PERO9              =  0.800G1G505X + 0.200GGH5053                                : ARR( 0.100E-10,     0., 0.0);
+{ 65852} G2G504w +GNO                =       G1G507J +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 65853} G2G504w +GNO                =       GGH505R                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 65854} G2G504w +GHO2               =       GGH504a                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 65855} G2G504w +GNO3               =       G1G507J +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 65856} G2G504w +MEPERO             =  0.340G1G507J + 0.330GGH504d + 0.330GGH504q                 : ARR( 0.565E-13,  -845., 0.0);
+{ 65857} G2G504w +PERO1              =  0.460G1G507J + 0.270GGH504d + 0.270GGH504q                 : ARR( 0.434E-13,  -900., 0.0);
+{ 65858} G2G504w +PERO2              =  0.400G1G507J + 0.300GGH504d + 0.300GGH504q                 : ARR( 0.162E-13, -1400., 0.0);
+{ 65859} G2G504w +PERO3              =  0.460G1G507J + 0.270GGH504d + 0.270GGH504q                 : ARR( 0.488E-13, -1250., 0.0);
+{ 65860} G2G504w +PERO5              =  0.460G1G507J + 0.270GGH504d + 0.270GGH504q                 : ARR( 0.183E-11,   450., 0.0);
+{ 65861} G2G504w +PERO6              =  0.300G1G507J + 0.350GGH504d + 0.350GGH504q                 : ARR( 0.168E-13, -1300., 0.0);
+{ 65862} G2G504w +PERO9              =  0.650G1G507J + 0.350GGH504q                                : ARR( 0.100E-10,     0., 0.0);
+{ 65863} G3H505A +GHO2               =  0.800GGH504a + 0.200GAH505U + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 65864} G3H505A +GNO                =       G3H400d +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 65865} G3H505A +GNO2               =       GPH504i                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 65866} G3H505A +GNO3               =       G3H400d +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 65867} G3H505A +MEPERO             =  0.685G3H400d + 0.315GAH505U + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 65868} G3H505A +PERO1              =  0.800G3H400d + 0.200GAH505U + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 65869} G3H505A +PERO2              =  0.750G3H400d + 0.250GAH505U + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 65870} G3H505A +PERO3              =  0.800G3H400d + 0.200GAH505U + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 65871} G3H505A +PERO5              =  0.650G3H400d + 0.350GAH505U + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 65872} G3H505A +PERO6              =  0.650G3H400d + 0.350GAH505U + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 65873} G3H505A +PERO9              =       G3H400d +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 65874} G1G507J                     =       G3H2000 +      GGD3002                                : ARR( 0.200E+15,  4623., 0.0);
+{ 65875} G1G507J                     =       GHD3001 +      GCO     +      GHO2    +      GCO      : ARR( 0.200E+15,  4856., 0.0);
+{ 65876} GPH504g                     =       G3H5059 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 65877} GPH504g +GHO                =       GPH505H +      GHO                                    : ARR( 0.991E-11,     0., 0.0);
+{ 65878} GPH504g +GHO                =       GPH5054 +      GHO                                    : ARR( 0.508E-11,     0., 0.0);
+{ 65879} GPH504g +GHO                =       G2P5067                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 65880} GPH504g +GHO                =       G2P5068                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 65881} GPH504g+HV               =       G1P507u +      GHO                                    :  0.100E+01*SUN;
+{ 65882} GPH504g+HV               =       G3H2000 +      GPN3006 +      GHO                     :  0.100E+01*SUN;
+{ 65883} GPH504g+HV               =       G1P508L +      GHO                                    :  0.100E+01*SUN;
+{ 65884} GPH504g+HV               =       G1P504n +      GNO2                                   :  0.100E+01*SUN;
+{ 65885} GPH504g+HV               =       G3H5059 +      GNO2                                   :  0.100E+01*SUN;
+{ 65886} G2P5067 +GNO                =       G1P507u +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 65887} G2P5067 +GNO                =       GPH503y                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 65888} G2P5067 +GHO2               =       GPH504g                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 65889} G2P5067 +GNO3               =       G1P507u +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 65890} G2P5067 +MEPERO             =  0.480G1P507u + 0.260GPH503J + 0.260GPH505H                 : ARR( 0.164E-12,  -795., 0.0);
+{ 65891} G2P5067 +PERO1              =  0.600G1P507u + 0.200GPH503J + 0.200GPH505H                 : ARR( 0.126E-12,  -850., 0.0);
+{ 65892} G2P5067 +PERO2              =  0.560G1P507u + 0.220GPH503J + 0.220GPH505H                 : ARR( 0.471E-13, -1350., 0.0);
+{ 65893} G2P5067 +PERO3              =  0.600G1P507u + 0.200GPH503J + 0.200GPH505H                 : ARR( 0.142E-12, -1200., 0.0);
+{ 65894} G2P5067 +PERO5              =  0.600G1P507u + 0.200GPH503J + 0.200GPH505H                 : ARR( 0.533E-11,   500., 0.0);
+{ 65895} G2P5067 +PERO6              =  0.460G1P507u + 0.270GPH503J + 0.270GPH505H                 : ARR( 0.488E-13, -1250., 0.0);
+{ 65896} G2P5067 +PERO9              =  0.800G1P507u + 0.200GPH505H                                : ARR( 0.100E-10,     0., 0.0);
+{ 65897} G2P5068 +GNO                =       G1P508L +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 65898} G2P5068 +GNO                =       GPH504p                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 65899} G2P5068 +GHO2               =       GPH504g                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 65900} G2P5068 +GNO3               =       G1P508L +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 65901} G2P5068 +MEPERO             =  0.340G1P508L + 0.330GPH504j + 0.330GPH5054                 : ARR( 0.565E-13,  -845., 0.0);
+{ 65902} G2P5068 +PERO1              =  0.460G1P508L + 0.270GPH504j + 0.270GPH5054                 : ARR( 0.434E-13,  -900., 0.0);
+{ 65903} G2P5068 +PERO2              =  0.400G1P508L + 0.300GPH504j + 0.300GPH5054                 : ARR( 0.162E-13, -1400., 0.0);
+{ 65904} G2P5068 +PERO3              =  0.460G1P508L + 0.270GPH504j + 0.270GPH5054                 : ARR( 0.488E-13, -1250., 0.0);
+{ 65905} G2P5068 +PERO5              =  0.460G1P508L + 0.270GPH504j + 0.270GPH5054                 : ARR( 0.183E-11,   450., 0.0);
+{ 65906} G2P5068 +PERO6              =  0.300G1P508L + 0.350GPH504j + 0.350GPH5054                 : ARR( 0.168E-13, -1300., 0.0);
+{ 65907} G2P5068 +PERO9              =  0.650G1P508L + 0.350GPH5054                                : ARR( 0.100E-10,     0., 0.0);
+{ 65908} G1P508L                     =       G3H2000 +      GPN3006                                : ARR( 0.200E+15,  2179., 0.0);
+{ 65909} GPH504h                     =       G3H505B +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 65910} GPH504h +GHO                =       GPH505L +      GHO                                    : ARR( 0.107E-10,     0., 0.0);
+{ 65911} GPH504h +GHO                =       GPH505c +      GHO                                    : ARR( 0.275E-10,     0., 0.0);
+{ 65912} GPH504h +GHO                =       GPH504i +      GHO                                    : ARR( 0.872E-10,     0., 0.0);
+{ 65913} GPH504h+HV               =       G1P507v +      GHO                                    :  0.100E+01*SUN;
+{ 65914} GPH504h+HV               =       G3H2000 +      GPH3007 +      GHO                     :  0.100E+01*SUN;
+{ 65915} GPH504h+HV               =       G1P508M +      GHO                                    :  0.100E+01*SUN;
+{ 65916} GPH504h+HV               =       G1P504n +      GHO                                    :  0.100E+01*SUN;
+{ 65917} GPH504h+HV               =       G3H505B +      GNO2                                   :  0.100E+01*SUN;
+{ 65918} G3H505B +GHO2               =  0.800GGH504Z + 0.200GAH505X + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 65919} G3H505B +GNO                =       GHH400b +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 65920} G3H505B +GNO2               =       GPH504h                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 65921} G3H505B +GNO3               =       GHH400b +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 65922} G3H505B +MEPERO             =  0.685GHH400b + 0.315GAH505X + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 65923} G3H505B +PERO1              =  0.800GHH400b + 0.200GAH505X + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 65924} G3H505B +PERO2              =  0.750GHH400b + 0.250GAH505X + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 65925} G3H505B +PERO3              =  0.800GHH400b + 0.200GAH505X + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 65926} G3H505B +PERO5              =  0.650GHH400b + 0.350GAH505X + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 65927} G3H505B +PERO6              =  0.650GHH400b + 0.350GAH505X + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 65928} G3H505B +PERO9              =       GHH400b +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 65929} G1P508M                     =       G3H2000 +      GPH3007                                : ARR( 0.200E+15,  2179., 0.0);
+{ 65930} GPH504i                     =       G3H505A +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 65931} GPH504i +GHO                =       GPH505J +      GHO                                    : ARR( 0.981E-11,     0., 0.0);
+{ 65932} GPH504i +GHO                =       GPH5055 +      GHO                                    : ARR( 0.153E-10,     0., 0.0);
+{ 65933} GPH504i +GHO                =       G2P5069                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 65934} GPH504i +GHO                =       G2P506A                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 65935} GPH504i+HV               =       G1P507x +      GHO                                    :  0.100E+01*SUN;
+{ 65936} GPH504i+HV               =       G3H2000 +      GPD3002 +      GHO                     :  0.100E+01*SUN;
+{ 65937} GPH504i+HV               =       G1P508N +      GHO                                    :  0.100E+01*SUN;
+{ 65938} GPH504i+HV               =       G3H400d +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 65939} G2P5069 +GNO                =       G1P507x +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 65940} G2P5069 +GNO                =       GPH5042                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 65941} G2P5069 +GHO2               =       GPH504i                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 65942} G2P5069 +GNO3               =       G1P507x +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 65943} G2P5069 +MEPERO             =  0.480G1P507x + 0.260GPH503O + 0.260GPH505J                 : ARR( 0.164E-12,  -795., 0.0);
+{ 65944} G2P5069 +PERO1              =  0.600G1P507x + 0.200GPH503O + 0.200GPH505J                 : ARR( 0.126E-12,  -850., 0.0);
+{ 65945} G2P5069 +PERO2              =  0.560G1P507x + 0.220GPH503O + 0.220GPH505J                 : ARR( 0.471E-13, -1350., 0.0);
+{ 65946} G2P5069 +PERO3              =  0.600G1P507x + 0.200GPH503O + 0.200GPH505J                 : ARR( 0.142E-12, -1200., 0.0);
+{ 65947} G2P5069 +PERO5              =  0.600G1P507x + 0.200GPH503O + 0.200GPH505J                 : ARR( 0.533E-11,   500., 0.0);
+{ 65948} G2P5069 +PERO6              =  0.460G1P507x + 0.270GPH503O + 0.270GPH505J                 : ARR( 0.488E-13, -1250., 0.0);
+{ 65949} G2P5069 +PERO9              =  0.800G1P507x + 0.200GPH505J                                : ARR( 0.100E-10,     0., 0.0);
+{ 65950} G2P506A +GNO                =       G1P508N +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 65951} G2P506A +GNO                =       GPH504q                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 65952} G2P506A +GHO2               =       GPH504i                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 65953} G2P506A +GNO3               =       G1P508N +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 65954} G2P506A +MEPERO             =  0.340G1P508N + 0.330GPH504l + 0.330GPH5055                 : ARR( 0.565E-13,  -845., 0.0);
+{ 65955} G2P506A +PERO1              =  0.460G1P508N + 0.270GPH504l + 0.270GPH5055                 : ARR( 0.434E-13,  -900., 0.0);
+{ 65956} G2P506A +PERO2              =  0.400G1P508N + 0.300GPH504l + 0.300GPH5055                 : ARR( 0.162E-13, -1400., 0.0);
+{ 65957} G2P506A +PERO3              =  0.460G1P508N + 0.270GPH504l + 0.270GPH5055                 : ARR( 0.488E-13, -1250., 0.0);
+{ 65958} G2P506A +PERO5              =  0.460G1P508N + 0.270GPH504l + 0.270GPH5055                 : ARR( 0.183E-11,   450., 0.0);
+{ 65959} G2P506A +PERO6              =  0.300G1P508N + 0.350GPH504l + 0.350GPH5055                 : ARR( 0.168E-13, -1300., 0.0);
+{ 65960} G2P506A +PERO9              =  0.650G1P508N + 0.350GPH5055                                : ARR( 0.100E-10,     0., 0.0);
+{ 65961} G1P508N                     =       G3H2000 +      GPD3002                                : ARR( 0.200E+15,  4623., 0.0);
+{ 65962} G1P508N                     =       GHD3001 +      GCO     +      GNO2    +      GCO      : ARR( 0.200E+15,  4856., 0.0);
+{ 65963} GGH504b +GHO                =       GGN502n +      GHO                                    : ARR( 0.100E-10,     0., 0.0);
+{ 65964} GGH504b +GHO                =       GGH504o +      GHO2                                   : ARR( 0.128E-11,     0., 0.0);
+{ 65965} GGH504b +GHO                =       G2G504x                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 65966} GGH504b +GHO                =       G3H504q                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 65967} GGH504b+HV               =       G1G505u +      GHO                                    :  0.100E+01*SUN;
+{ 65968} GGH504b+HV               =       G3H2000 +      GGN3005 +      GHO2                    :  0.100E+01*SUN;
+{ 65969} GGH504b+HV               =       G1G503x +      GNO2                                   :  0.100E+01*SUN;
+{ 65970} GGH504b+HV               =       GHD400J +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 65971} G2G504x +GNO                =       G1G505u +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 65972} G2G504x +GNO                =       GGN502P                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 65973} G2G504x +GHO2               =       GGH504b                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 65974} G2G504x +GNO3               =       G1G505u +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 65975} G2G504x +MEPERO             =  0.480G1G505u + 0.260GGN502A + 0.260GGN502n                 : ARR( 0.164E-12,  -795., 0.0);
+{ 65976} G2G504x +PERO1              =  0.600G1G505u + 0.200GGN502A + 0.200GGN502n                 : ARR( 0.126E-12,  -850., 0.0);
+{ 65977} G2G504x +PERO2              =  0.560G1G505u + 0.220GGN502A + 0.220GGN502n                 : ARR( 0.471E-13, -1350., 0.0);
+{ 65978} G2G504x +PERO3              =  0.600G1G505u + 0.200GGN502A + 0.200GGN502n                 : ARR( 0.142E-12, -1200., 0.0);
+{ 65979} G2G504x +PERO5              =  0.600G1G505u + 0.200GGN502A + 0.200GGN502n                 : ARR( 0.533E-11,   500., 0.0);
+{ 65980} G2G504x +PERO6              =  0.460G1G505u + 0.270GGN502A + 0.270GGN502n                 : ARR( 0.488E-13, -1250., 0.0);
+{ 65981} G2G504x +PERO9              =  0.800G1G505u + 0.200GGN502n                                : ARR( 0.100E-10,     0., 0.0);
+{ 65982} GGH504c +GHO                =       GGH5059 +      GHO                                    : ARR( 0.109E-10,     0., 0.0);
+{ 65983} GGH504c +GHO                =       GGH505T +      GHO2                                   : ARR( 0.700E-11,     0., 0.0);
+{ 65984} GGH504c +GHO                =       GGH504d +      GHO                                    : ARR( 0.888E-10,     0., 0.0);
+{ 65985} GGH504c+HV               =       G1G5074 +      GHO                                    :  0.100E+01*SUN;
+{ 65986} GGH504c+HV               =       G3H2000 +      GGH3007 +      GHO2                    :  0.100E+01*SUN;
+{ 65987} GGH504c+HV               =       G1G503x +      GHO                                    :  0.100E+01*SUN;
+{ 65988} GGH504c+HV               =       GHD400J +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 65989} GGH504d +GHO                =       GGD500N +      GHO                                    : ARR( 0.987E-11,     0., 0.0);
+{ 65990} GGH504d +GHO                =       GGH504q +      GHO2                                   : ARR( 0.386E-11,     0., 0.0);
+{ 65991} GGH504d +GHO                =       G2G504y                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 65992} GGH504d +GHO                =       G3H505C                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 65993} GGH504d+HV               =       G1G505L +      GHO                                    :  0.100E+01*SUN;
+{ 65994} GGH504d+HV               =       G3H2000 +      GGD3002 +      GHO2                    :  0.100E+01*SUN;
+{ 65995} GGH504d+HV               =       GAH400h +      GCO2                                   :  0.100E+01*SUN;
+{ 65996} G2G504y +GNO                =       G1G505L +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 65997} G2G504y +GNO                =       GGN5028                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 65998} G2G504y +GHO2               =       GGH504d                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 65999} G2G504y +GNO3               =       G1G505L +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 66000} G2G504y +MEPERO             =  0.480G1G505L + 0.260GGK500X + 0.260GGD500N                 : ARR( 0.164E-12,  -795., 0.0);
+{ 66001} G2G504y +PERO1              =  0.600G1G505L + 0.200GGK500X + 0.200GGD500N                 : ARR( 0.126E-12,  -850., 0.0);
+{ 66002} G2G504y +PERO2              =  0.560G1G505L + 0.220GGK500X + 0.220GGD500N                 : ARR( 0.471E-13, -1350., 0.0);
+{ 66003} G2G504y +PERO3              =  0.600G1G505L + 0.200GGK500X + 0.200GGD500N                 : ARR( 0.142E-12, -1200., 0.0);
+{ 66004} G2G504y +PERO5              =  0.600G1G505L + 0.200GGK500X + 0.200GGD500N                 : ARR( 0.533E-11,   500., 0.0);
+{ 66005} G2G504y +PERO6              =  0.460G1G505L + 0.270GGK500X + 0.270GGD500N                 : ARR( 0.488E-13, -1250., 0.0);
+{ 66006} G2G504y +PERO9              =  0.800G1G505L + 0.200GGD500N                                : ARR( 0.100E-10,     0., 0.0);
+{ 66007} G3H505C +GHO2               =  0.800GGH504d + 0.200GAH504h + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 66008} G3H505C +GNO                =       G3H400e +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 66009} G3H505C +GNO2               =       GPH504l                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 66010} G3H505C +GNO3               =       G3H400e +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 66011} G3H505C +MEPERO             =  0.685G3H400e + 0.315GAH504h + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 66012} G3H505C +PERO1              =  0.800G3H400e + 0.200GAH504h + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 66013} G3H505C +PERO2              =  0.750G3H400e + 0.250GAH504h + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 66014} G3H505C +PERO3              =  0.800G3H400e + 0.200GAH504h + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 66015} G3H505C +PERO5              =  0.650G3H400e + 0.350GAH504h + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 66016} G3H505C +PERO6              =  0.650G3H400e + 0.350GAH504h + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 66017} G3H505C +PERO9              =       G3H400e +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 66018} GAH504f +GHO                =       GAH504s +      GHO2                                   : ARR( 0.133E-11,     0., 0.0);
+{ 66019} GAH504f +GHO                =       GAN502s +      GHO                                    : ARR( 0.104E-10,     0., 0.0);
+{ 66020} GAH504f +GHO                =       G2A505m                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 66021} GAH504f+HV               =       G1A504i +      GNO2                                   :  0.100E+01*SUN;
+{ 66022} GAH504f+HV               =       G3A4006 +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 66023} GAH504f+HV               =       G1A506O +      GHO                                    :  0.100E+01*SUN;
+{ 66024} G2A505m +GNO                =       G1A506O +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 66025} G2A505m +GNO                =       GAN502J                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 66026} G2A505m +GHO2               =       GAH504f                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 66027} G2A505m +GNO3               =       G1A506O +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 66028} G2A505m +MEPERO             =  0.480G1A506O + 0.260GAN502O + 0.260GAN502s                 : ARR( 0.164E-12,  -795., 0.0);
+{ 66029} G2A505m +PERO1              =  0.600G1A506O + 0.200GAN502O + 0.200GAN502s                 : ARR( 0.126E-12,  -850., 0.0);
+{ 66030} G2A505m +PERO2              =  0.560G1A506O + 0.220GAN502O + 0.220GAN502s                 : ARR( 0.471E-13, -1350., 0.0);
+{ 66031} G2A505m +PERO3              =  0.600G1A506O + 0.200GAN502O + 0.200GAN502s                 : ARR( 0.142E-12, -1200., 0.0);
+{ 66032} G2A505m +PERO5              =  0.600G1A506O + 0.200GAN502O + 0.200GAN502s                 : ARR( 0.533E-11,   500., 0.0);
+{ 66033} G2A505m +PERO6              =  0.460G1A506O + 0.270GAN502O + 0.270GAN502s                 : ARR( 0.488E-13, -1250., 0.0);
+{ 66034} G2A505m +PERO9              =  0.800G1A506O + 0.200GAN502s                                : ARR( 0.100E-10,     0., 0.0);
+{ 66035} GAH504g +GHO                =       GAH504h +      GHO                                    : ARR( 0.651E-10,     0., 0.0);
+{ 66036} GAH504g +GHO                =       GAH505Z +      GHO2                                   : ARR( 0.694E-11,     0., 0.0);
+{ 66037} GAH504g +GHO                =       GAH505H +      GHO                                    : ARR( 0.108E-10,     0., 0.0);
+{ 66038} GAH504g+HV               =       G1A504i +      GHO                                    :  0.100E+01*SUN;
+{ 66039} GAH504g+HV               =       G3A400E +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 66040} GAH504g+HV               =       G1A507M +      GHO                                    :  0.100E+01*SUN;
+{ 66041} GAH504h +GHO                =       GAH504t +      GHO2                                   : ARR( 0.398E-11,     0., 0.0);
+{ 66042} GAH504h +GHO                =       GAD500Q +      GHO                                    : ARR( 0.102E-10,     0., 0.0);
+{ 66043} GAH504h +GHO                =       G2A505n                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 66044} GAH504h+HV               =       GHD400J +      GCO2                                   :  0.100E+01*SUN;
+{ 66045} GAH504h+HV               =       G3A4007 +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 66046} GAH504h+HV               =       G1A506S +      GHO                                    :  0.100E+01*SUN;
+{ 66047} G2A505n +GNO                =       G1A506S +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 66048} G2A505n +GNO                =       GAN502M                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 66049} G2A505n +GHO2               =       GAH504h                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 66050} G2A505n +GNO3               =       G1A506S +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 66051} G2A505n +MEPERO             =  0.480G1A506S + 0.260GAK500c + 0.260GAD500Q                 : ARR( 0.164E-12,  -795., 0.0);
+{ 66052} G2A505n +PERO1              =  0.600G1A506S + 0.200GAK500c + 0.200GAD500Q                 : ARR( 0.126E-12,  -850., 0.0);
+{ 66053} G2A505n +PERO2              =  0.560G1A506S + 0.220GAK500c + 0.220GAD500Q                 : ARR( 0.471E-13, -1350., 0.0);
+{ 66054} G2A505n +PERO3              =  0.600G1A506S + 0.200GAK500c + 0.200GAD500Q                 : ARR( 0.142E-12, -1200., 0.0);
+{ 66055} G2A505n +PERO5              =  0.600G1A506S + 0.200GAK500c + 0.200GAD500Q                 : ARR( 0.533E-11,   500., 0.0);
+{ 66056} G2A505n +PERO6              =  0.460G1A506S + 0.270GAK500c + 0.270GAD500Q                 : ARR( 0.488E-13, -1250., 0.0);
+{ 66057} G2A505n +PERO9              =  0.800G1A506S + 0.200GAD500Q                                : ARR( 0.100E-10,     0., 0.0);
+{ 66058} GPH504j                     =       G3H504q +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 66059} GPH504j +GHO                =       GPN502n +      GHO                                    : ARR( 0.101E-10,     0., 0.0);
+{ 66060} GPH504j +GHO                =       GPH5054 +      GHO2                                   : ARR( 0.129E-11,     0., 0.0);
+{ 66061} GPH504j +GHO                =       G2P504B                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 66062} GPH504j+HV               =       G1P505e +      GHO                                    :  0.100E+01*SUN;
+{ 66063} GPH504j+HV               =       G3H2000 +      GPN3006 +      GHO2                    :  0.100E+01*SUN;
+{ 66064} GPH504j+HV               =       G1P504o +      GNO2                                   :  0.100E+01*SUN;
+{ 66065} GPH504j+HV               =       G3H504q +      GNO2                                   :  0.100E+01*SUN;
+{ 66066} GPH504k                     =       G3H5056 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 66067} GPH504k +GHO                =       GPH505O +      GHO                                    : ARR( 0.106E-10,     0., 0.0);
+{ 66068} GPH504k +GHO                =       GPH505c +      GHO2                                   : ARR( 0.676E-11,     0., 0.0);
+{ 66069} GPH504k +GHO                =       GPH504l +      GHO                                    : ARR( 0.858E-10,     0., 0.0);
+{ 66070} GPH504k+HV               =       G1P507y +      GHO                                    :  0.100E+01*SUN;
+{ 66071} GPH504k+HV               =       G3H2000 +      GPH3007 +      GHO2                    :  0.100E+01*SUN;
+{ 66072} GPH504k+HV               =       G1P504o +      GHO                                    :  0.100E+01*SUN;
+{ 66073} GPH504k+HV               =       G3H5056 +      GNO2                                   :  0.100E+01*SUN;
+{ 66074} GPH504l                     =       G3H505C +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 66075} GPH504l +GHO                =       GPD500N +      GHO                                    : ARR( 0.989E-11,     0., 0.0);
+{ 66076} GPH504l +GHO                =       GPH5055 +      GHO2                                   : ARR( 0.386E-11,     0., 0.0);
+{ 66077} GPH504l +GHO                =       G2P506B                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 66078} GPH504l+HV               =       G1P5079 +      GHO                                    :  0.100E+01*SUN;
+{ 66079} GPH504l+HV               =       G3H2000 +      GPD3002 +      GHO2                    :  0.100E+01*SUN;
+{ 66080} GPH504l+HV               =       G3H400e +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 66081} G2P506B +GNO                =       G1P5079 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 66082} G2P506B +GNO                =       GPN502U                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 66083} G2P506B +GHO2               =       GPH504l                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 66084} G2P506B +GNO3               =       G1P5079 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 66085} G2P506B +MEPERO             =  0.480G1P5079 + 0.260GPK500X + 0.260GPD500N                 : ARR( 0.164E-12,  -795., 0.0);
+{ 66086} G2P506B +PERO1              =  0.600G1P5079 + 0.200GPK500X + 0.200GPD500N                 : ARR( 0.126E-12,  -850., 0.0);
+{ 66087} G2P506B +PERO2              =  0.560G1P5079 + 0.220GPK500X + 0.220GPD500N                 : ARR( 0.471E-13, -1350., 0.0);
+{ 66088} G2P506B +PERO3              =  0.600G1P5079 + 0.200GPK500X + 0.200GPD500N                 : ARR( 0.142E-12, -1200., 0.0);
+{ 66089} G2P506B +PERO5              =  0.600G1P5079 + 0.200GPK500X + 0.200GPD500N                 : ARR( 0.533E-11,   500., 0.0);
+{ 66090} G2P506B +PERO6              =  0.460G1P5079 + 0.270GPK500X + 0.270GPD500N                 : ARR( 0.488E-13, -1250., 0.0);
+{ 66091} G2P506B +PERO9              =  0.800G1P5079 + 0.200GPD500N                                : ARR( 0.100E-10,     0., 0.0);
+{ 66092} GHH5038 +GHO                =       GHH502F +      GHO                                    : ARR( 0.174E-10,     0., 0.0);
+{ 66093} GHH5038 +GHO                =       GHH502W +      GHO                                    : ARR( 0.446E-10,     0., 0.0);
+{ 66094} GHH5038 +GHO                =       GHH5034 +      GHO                                    : ARR( 0.141E-09,     0., 0.0);
+{ 66095} GHH5038 +GHO                =       G3H505D                                               : ARR( 0.225E-10,     0., 0.0);
+{ 66096} GHH5038 +GNO3               =       G3H505D +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 66097} GHH5038+HV               =       G1H50Ac +      GHO                                    :  0.100E+01*SUN;
+{ 66098} GHH5038+HV               =       G1H50Ar +      GHO                                    :  0.100E+01*SUN;
+{ 66099} GHH5038+HV               =       G1H50BE +      GHO                                    :  0.100E+01*SUN;
+{ 66100} GHH5038+HV               =       GHH400l +      GCO     + 2.000GHO2                    :  0.100E+01*SUN;
+{ 66101} G3H505D +GHO2               =  0.800GGH504l + 0.200GAH504w + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 66102} G3H505D +GNO                =       GHH400l +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 66103} G3H505D +GNO2               =       GPH5058                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 66104} G3H505D +GNO3               =       GHH400l +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 66105} G3H505D +MEPERO             =  0.685GHH400l + 0.315GAH504w + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 66106} G3H505D +PERO1              =  0.800GHH400l + 0.200GAH504w + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 66107} G3H505D +PERO2              =  0.750GHH400l + 0.250GAH504w + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 66108} G3H505D +PERO3              =  0.800GHH400l + 0.200GAH504w + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 66109} G3H505D +PERO5              =  0.650GHH400l + 0.350GAH504w + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 66110} G3H505D +PERO6              =  0.650GHH400l + 0.350GAH504w + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 66111} G3H505D +PERO9              =       GHH400l +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 66112} GHK5012 +GHO                =       GHD501L +      GHO2                                   : ARR( 0.247E-11,     0., 0.0);
+{ 66113} GHK5012 +GHO                =       GHK500i +      GHO2                                   : ARR( 0.634E-11,     0., 0.0);
+{ 66114} GHK5012 +GHO                =       G2H5048                                               : ARR( 0.452E-11,     0., 0.0);
+{ 66115} GHK5012 +GHO                =       GDK500Q +      GHO                                    : ARR( 0.162E-10,     0., 0.0);
+{ 66116} GHK5012 +GHO                =       G2K500y                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 66117} GHK5012+HV               =       G3K2001 +      GHD3000 +      GHO2                    :  0.100E+01*SUN;
+{ 66118} GHK5012+HV               =       G1K500t +      GHO                                    :  0.100E+01*SUN;
+{ 66119} G2H5048 +GNO                =       G1H508x +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 66120} G2H5048 +GNO                =       GHN5057                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 66121} G2H5048 +GHO2               =       GHH502Y                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 66122} G2H5048 +GNO3               =       G1H508x +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 66123} G2H5048 +MEPERO             =  0.340G1H508x + 0.330GHK500w + 0.330GHK500r                 : ARR( 0.565E-13,  -845., 0.0);
+{ 66124} G2H5048 +PERO1              =  0.460G1H508x + 0.270GHK500w + 0.270GHK500r                 : ARR( 0.434E-13,  -900., 0.0);
+{ 66125} G2H5048 +PERO2              =  0.400G1H508x + 0.300GHK500w + 0.300GHK500r                 : ARR( 0.162E-13, -1400., 0.0);
+{ 66126} G2H5048 +PERO3              =  0.460G1H508x + 0.270GHK500w + 0.270GHK500r                 : ARR( 0.488E-13, -1250., 0.0);
+{ 66127} G2H5048 +PERO5              =  0.460G1H508x + 0.270GHK500w + 0.270GHK500r                 : ARR( 0.183E-11,   450., 0.0);
+{ 66128} G2H5048 +PERO6              =  0.300G1H508x + 0.350GHK500w + 0.350GHK500r                 : ARR( 0.168E-13, -1300., 0.0);
+{ 66129} G2H5048 +PERO9              =  0.650G1H508x + 0.350GHK500r                                : ARR( 0.100E-10,     0., 0.0);
+{ 66130} G2K500y +GNO                =       G1K500t +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 66131} G2K500y +GNO                =       GNK500m                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 66132} G2K500y +GHO2               =       GHK5012                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 66133} G2K500y +GNO3               =       G1K500t +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 66134} G2K500y +MEPERO             =  0.480G1K500t + 0.260GKO500F + 0.260GDK500Q                 : ARR( 0.146E-12,  -445., 0.0);
+{ 66135} G2K500y +PERO1              =  0.600G1K500t + 0.200GKO500F + 0.200GDK500Q                 : ARR( 0.112E-12,  -500., 0.0);
+{ 66136} G2K500y +PERO2              =  0.560G1K500t + 0.220GKO500F + 0.220GDK500Q                 : ARR( 0.418E-13, -1000., 0.0);
+{ 66137} G2K500y +PERO3              =  0.600G1K500t + 0.200GKO500F + 0.200GDK500Q                 : ARR( 0.126E-12,  -850., 0.0);
+{ 66138} G2K500y +PERO5              =  0.600G1K500t + 0.200GKO500F + 0.200GDK500Q                 : ARR( 0.473E-11,   850., 0.0);
+{ 66139} G2K500y +PERO6              =  0.460G1K500t + 0.270GKO500F + 0.270GDK500Q                 : ARR( 0.434E-13,  -900., 0.0);
+{ 66140} G2K500y +PERO9              =  0.800G1K500t + 0.200GDK500Q                                : ARR( 0.100E-10,     0., 0.0);
+{ 66141} GND501a +GHO                =       G3N400Y +      GCO                                    : ARR( 0.254E-10,     0., 0.0);
+{ 66142} GND501a +GNO3               =       G3N400Y +      GHNO3   +      GCO                     : ARR( 0.480E-14,     0., 0.0);
+{ 66143} GND501a+HV               =       GCO     +      G3N400Y +      GHO2                    :  0.200E+01*SUN;
+{ 66144} GND501a+HV               =       GND400N +      GCO                                    :  0.200E+01*SUN;
+{ 66145} GND501a+HV               =       GND3003 +      GCO     +      GCO                     :  0.200E+01*SUN;
+{ 66146} GND501a+HV               =       G1D501Z +      GNO2                                   :  0.100E+01*SUN;
+{ 66147} GDD500F +GHO                =       G3D2000 + 3.000GCO                                    : ARR( 0.253E-10,     0., 0.0);
+{ 66148} GDD500F +GNO3               =       G3D2000 +      GHNO3   + 3.000GCO                     : ARR( 0.480E-14,     0., 0.0);
+{ 66149} GDD500F+HV               =       GCO     +      G3D2000 +      GHO2    + 2.000GCO      :  0.200E+01*SUN;
+{ 66150} GDD500F+HV               =       GDD4005 +      GCO                                    :  0.200E+01*SUN;
+{ 66151} GDD500F+HV               =       GDD3002 +      GCO     +      GCO                     :  0.200E+01*SUN;
+{ 66152} GDD500F+HV               =  2.000G3D2000 +      GCO                                    :  0.200E+01*SUN;
+{ 66153} GHD501U +GHO                =       G3H3006 + 2.000GCO                                    : ARR( 0.132E-10,     0., 0.0);
+{ 66154} GHD501U +GHO                =       GDD500F +      GHO                                    : ARR( 0.159E-10,     0., 0.0);
+{ 66155} GHD501U +GHO                =       G3H505E                                               : ARR( 0.684E-10,     0., 0.0);
+{ 66156} GHD501U +GNO3               =       G3H3006 +      GHNO3   + 2.000GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 66157} GHD501U +GNO3               =       G3H505E +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 66158} GHD501U+HV               =       GCO     +      G3H3006 +      GHO2    +      GCO      :  0.100E+01*SUN;
+{ 66159} GHD501U+HV               =       GHD400K +      GCO                                    :  0.100E+01*SUN;
+{ 66160} GHD501U+HV               =       GHD3004 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 66161} GHD501U+HV               =       G3D2000 +      G3H3006                                :  0.100E+01*SUN;
+{ 66162} GHD501U+HV               =       G1D501Y +      GHO                                    :  0.100E+01*SUN;
+{ 66163} GHD501U+HV               =       GDD4005 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 66164} G3H505E +GHO2               =  0.800GGH505M + 0.200GAH505P + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 66165} G3H505E +GNO                =       GDD4005 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 66166} G3H505E +GNO2               =       GPH505W                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 66167} G3H505E +GNO3               =       GDD4005 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 66168} G3H505E +MEPERO             =  0.685GDD4005 + 0.315GAH505P + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 66169} G3H505E +PERO1              =  0.800GDD4005 + 0.200GAH505P + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 66170} G3H505E +PERO2              =  0.750GDD4005 + 0.250GAH505P + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 66171} G3H505E +PERO3              =  0.800GDD4005 + 0.200GAH505P + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 66172} G3H505E +PERO5              =  0.650GDD4005 + 0.350GAH505P + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 66173} G3H505E +PERO6              =  0.650GDD4005 + 0.350GAH505P + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 66174} G3H505E +PERO9              =       GDD4005 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 66175} GAA500L +GHO                =       G2A505o                                               : ARR( 0.131E-12,     0., 0.0);
+{ 66176} GAA500L +GHO                =       G2A400b +      GCO2                                   : ARR( 0.535E-12,     0., 0.0);
+{ 66177} GAA500L +GHO                =       GAN400J +      GNO2    +      GCO2                    : ARR( 0.535E-12,     0., 0.0);
+{ 66178} GAA500L+HV               =       G1A505d +      GNO2                                   :  0.100E+01*SUN;
+{ 66179} GAA500L+HV               =       G1A504p +      GNO2                                   :  0.100E+01*SUN;
+{ 66180} G2A505o +GNO                =       G1A507p +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 66181} G2A505o +GNO                =       GAA500q                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 66182} G2A505o +GHO2               =       GAA500r                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 66183} G2A505o +GNO3               =       G1A507p +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 66184} G2A505o +MEPERO             =  0.340G1A507p + 0.330GAA500O + 0.330GAA500s                 : ARR( 0.565E-13,  -845., 0.0);
+{ 66185} G2A505o +PERO1              =  0.460G1A507p + 0.270GAA500O + 0.270GAA500s                 : ARR( 0.434E-13,  -900., 0.0);
+{ 66186} G2A505o +PERO2              =  0.400G1A507p + 0.300GAA500O + 0.300GAA500s                 : ARR( 0.162E-13, -1400., 0.0);
+{ 66187} G2A505o +PERO3              =  0.460G1A507p + 0.270GAA500O + 0.270GAA500s                 : ARR( 0.488E-13, -1250., 0.0);
+{ 66188} G2A505o +PERO5              =  0.460G1A507p + 0.270GAA500O + 0.270GAA500s                 : ARR( 0.183E-11,   450., 0.0);
+{ 66189} G2A505o +PERO6              =  0.300G1A507p + 0.350GAA500O + 0.350GAA500s                 : ARR( 0.168E-13, -1300., 0.0);
+{ 66190} G2A505o +PERO9              =  0.650G1A507p + 0.350GAA500s                                : ARR( 0.100E-10,     0., 0.0);
+{ 66191} G1A507p                     =       GAN400Y +      GCO     +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 66192} GAA500M +GHO                =       GAA500N +      GHO                                    : ARR( 0.383E-11,     0., 0.0);
+{ 66193} GAA500M +GHO                =       G2A503t                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 66194} GAA500M +GHO                =       G2A400y +      GCO2                                   : ARR( 0.535E-12,     0., 0.0);
+{ 66195} GAA500M +GHO                =       GAN400J +      GHO     +      GCO2                    : ARR( 0.535E-12,     0., 0.0);
+{ 66196} GAA500M+HV               =       G1A507N +      GNO2                                   :  0.100E+01*SUN;
+{ 66197} GAA500M+HV               =       G1A504p +      GHO                                    :  0.100E+01*SUN;
+{ 66198} GAA500N +GHO                =       G2A505p                                               : ARR( 0.128E-12,     0., 0.0);
+{ 66199} GAA500N +GHO                =       GAA500T +      GNO2                                   : ARR( 0.718E-13,     0., 0.0);
+{ 66200} GAA500N +GHO                =       G2A400c +      GCO2                                   : ARR( 0.520E-12,     0., 0.0);
+{ 66201} GAA500N +GHO                =       G3A4001 +      GCO2                                   : ARR( 0.520E-12,     0., 0.0);
+{ 66202} GAA500N+HV               =       G1A5074 +      GNO2                                   :  0.100E+01*SUN;
+{ 66203} GAA500N+HV               =       GAN400J +      GCO2                                   :  0.100E+01*SUN;
+{ 66204} G2A505p +GNO                =       G1A507q +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 66205} G2A505p +GNO                =       GAA500s                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 66206} G2A505p +GHO2               =       GAA500t                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 66207} G2A505p +GNO3               =       G1A507q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 66208} G2A505p +MEPERO             =  0.340G1A507q + 0.330GAA500Q + 0.330GAA500u                 : ARR( 0.565E-13,  -845., 0.0);
+{ 66209} G2A505p +PERO1              =  0.460G1A507q + 0.270GAA500Q + 0.270GAA500u                 : ARR( 0.434E-13,  -900., 0.0);
+{ 66210} G2A505p +PERO2              =  0.400G1A507q + 0.300GAA500Q + 0.300GAA500u                 : ARR( 0.162E-13, -1400., 0.0);
+{ 66211} G2A505p +PERO3              =  0.460G1A507q + 0.270GAA500Q + 0.270GAA500u                 : ARR( 0.488E-13, -1250., 0.0);
+{ 66212} G2A505p +PERO5              =  0.460G1A507q + 0.270GAA500Q + 0.270GAA500u                 : ARR( 0.183E-11,   450., 0.0);
+{ 66213} G2A505p +PERO6              =  0.300G1A507q + 0.350GAA500Q + 0.350GAA500u                 : ARR( 0.168E-13, -1300., 0.0);
+{ 66214} G2A505p +PERO9              =  0.650G1A507q + 0.350GAA500u                                : ARR( 0.100E-10,     0., 0.0);
+{ 66215} G1A507q                     =       GAN400Z +      GCO     +      GHO                     : ARR( 0.200E+15,  4342., 0.0);
+{ 66216} GPA500X                     =       G3A500U +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 66217} GPA500X +GHO                =       G2P506C                                               : ARR( 0.181E-12,     0., 0.0);
+{ 66218} GPA500X +GHO                =       GPN400H +      GNO2    +      GCO2                    : ARR( 0.546E-12,     0., 0.0);
+{ 66219} GPA500X+HV               =       G1P504v +      GNO2                                   :  0.100E+01*SUN;
+{ 66220} GPA500X+HV               =       G1P506A +      GNO2                                   :  0.100E+01*SUN;
+{ 66221} GPA500X+HV               =       G3A500U +      GNO2                                   :  0.100E+01*SUN;
+{ 66222} G2P506C +GNO                =       G1P508O +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 66223} G2P506C +GNO                =       GPA501T                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 66224} G2P506C +GHO2               =       GPA501U                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 66225} G2P506C +GNO3               =       G1P508O +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 66226} G2P506C +MEPERO             =  0.340G1P508O + 0.330GPA500g + 0.330GPA501W                 : ARR( 0.565E-13,  -845., 0.0);
+{ 66227} G2P506C +PERO1              =  0.460G1P508O + 0.270GPA500g + 0.270GPA501W                 : ARR( 0.434E-13,  -900., 0.0);
+{ 66228} G2P506C +PERO2              =  0.400G1P508O + 0.300GPA500g + 0.300GPA501W                 : ARR( 0.162E-13, -1400., 0.0);
+{ 66229} G2P506C +PERO3              =  0.460G1P508O + 0.270GPA500g + 0.270GPA501W                 : ARR( 0.488E-13, -1250., 0.0);
+{ 66230} G2P506C +PERO5              =  0.460G1P508O + 0.270GPA500g + 0.270GPA501W                 : ARR( 0.183E-11,   450., 0.0);
+{ 66231} G2P506C +PERO6              =  0.300G1P508O + 0.350GPA500g + 0.350GPA501W                 : ARR( 0.168E-13, -1300., 0.0);
+{ 66232} G2P506C +PERO9              =  0.650G1P508O + 0.350GPA501W                                : ARR( 0.100E-10,     0., 0.0);
+{ 66233} G1P508O                     =       GAN400Y +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 66234} GPA500Y                     =       G3A500X +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 66235} GPA500Y +GHO                =       GPA500Z +      GHO                                    : ARR( 0.386E-11,     0., 0.0);
+{ 66236} GPA500Y +GHO                =       G2P503x                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 66237} GPA500Y +GHO                =       GPN400H +      GHO     +      GCO2                    : ARR( 0.539E-12,     0., 0.0);
+{ 66238} GPA500Y+HV               =       G1P504v +      GHO                                    :  0.100E+01*SUN;
+{ 66239} GPA500Y+HV               =       G1P507U +      GNO2                                   :  0.100E+01*SUN;
+{ 66240} GPA500Y+HV               =       G3A500X +      GNO2                                   :  0.100E+01*SUN;
+{ 66241} GPA500Z                     =       G3A500W +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 66242} GPA500Z +GHO                =       GPA500m +      GNO2                                   : ARR( 0.718E-13,     0., 0.0);
+{ 66243} GPA500Z +GHO                =       G2P506D                                               : ARR( 0.172E-12,     0., 0.0);
+{ 66244} GPA500Z +GHO                =       G3P4001 +      GCO2                                   : ARR( 0.520E-12,     0., 0.0);
+{ 66245} GPA500Z+HV               =       GPN400H +      GCO2                                   :  0.100E+01*SUN;
+{ 66246} GPA500Z+HV               =       G1P507S +      GNO2                                   :  0.100E+01*SUN;
+{ 66247} GPA500Z+HV               =       G3A500W +      GNO2                                   :  0.100E+01*SUN;
+{ 66248} G2P506D +GNO                =       G1P508P +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 66249} G2P506D +GNO                =       GPA501X                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 66250} G2P506D +GHO2               =       GPA501Y                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 66251} G2P506D +GNO3               =       G1P508P +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 66252} G2P506D +MEPERO             =  0.340G1P508P + 0.330GPA500i + 0.330GPA501Z                 : ARR( 0.565E-13,  -845., 0.0);
+{ 66253} G2P506D +PERO1              =  0.460G1P508P + 0.270GPA500i + 0.270GPA501Z                 : ARR( 0.434E-13,  -900., 0.0);
+{ 66254} G2P506D +PERO2              =  0.400G1P508P + 0.300GPA500i + 0.300GPA501Z                 : ARR( 0.162E-13, -1400., 0.0);
+{ 66255} G2P506D +PERO3              =  0.460G1P508P + 0.270GPA500i + 0.270GPA501Z                 : ARR( 0.488E-13, -1250., 0.0);
+{ 66256} G2P506D +PERO5              =  0.460G1P508P + 0.270GPA500i + 0.270GPA501Z                 : ARR( 0.183E-11,   450., 0.0);
+{ 66257} G2P506D +PERO6              =  0.300G1P508P + 0.350GPA500i + 0.350GPA501Z                 : ARR( 0.168E-13, -1300., 0.0);
+{ 66258} G2P506D +PERO9              =  0.650G1P508P + 0.350GPA501Z                                : ARR( 0.100E-10,     0., 0.0);
+{ 66259} G1P508P                     =       GAN400Z +      GCO     +      GNO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 66260} GPA500a                     =       G3A500e +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 66261} GPA500a +GHO                =       G2P506E                                               : ARR( 0.135E-12,     0., 0.0);
+{ 66262} GPA500a +GHO                =       G2P400d +      GCO2                                   : ARR( 0.550E-12,     0., 0.0);
+{ 66263} GPA500a+HV               =       G1P506K +      GNO2                                   :  0.100E+01*SUN;
+{ 66264} GPA500a+HV               =       G1P504w +      GNO2                                   :  0.100E+01*SUN;
+{ 66265} GPA500a+HV               =       G3A500e +      GNO2                                   :  0.100E+01*SUN;
+{ 66266} G2P506E +GNO                =       G1P508Q +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 66267} G2P506E +GNO                =       GPA501T                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 66268} G2P506E +GHO2               =       GPA501a                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 66269} G2P506E +GNO3               =       G1P508Q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 66270} G2P506E +MEPERO             =  0.340G1P508Q + 0.330GPA500d + 0.330GPA501X                 : ARR( 0.565E-13,  -845., 0.0);
+{ 66271} G2P506E +PERO1              =  0.460G1P508Q + 0.270GPA500d + 0.270GPA501X                 : ARR( 0.434E-13,  -900., 0.0);
+{ 66272} G2P506E +PERO2              =  0.400G1P508Q + 0.300GPA500d + 0.300GPA501X                 : ARR( 0.162E-13, -1400., 0.0);
+{ 66273} G2P506E +PERO3              =  0.460G1P508Q + 0.270GPA500d + 0.270GPA501X                 : ARR( 0.488E-13, -1250., 0.0);
+{ 66274} G2P506E +PERO5              =  0.460G1P508Q + 0.270GPA500d + 0.270GPA501X                 : ARR( 0.183E-11,   450., 0.0);
+{ 66275} G2P506E +PERO6              =  0.300G1P508Q + 0.350GPA500d + 0.350GPA501X                 : ARR( 0.168E-13, -1300., 0.0);
+{ 66276} G2P506E +PERO9              =  0.650G1P508Q + 0.350GPA501X                                : ARR( 0.100E-10,     0., 0.0);
+{ 66277} G1P508Q                     =       GCO     +      GPN400Z +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 66278} GPA500b                     =       G3A500h +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 66279} GPA500b +GHO                =       GPA500c +      GHO                                    : ARR( 0.516E-11,     0., 0.0);
+{ 66280} GPA500b +GHO                =       G2P503y                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 66281} GPA500b +GHO                =       G2P4014 +      GCO2                                   : ARR( 0.534E-12,     0., 0.0);
+{ 66282} GPA500b+HV               =       G1P508R +      GNO2                                   :  0.100E+01*SUN;
+{ 66283} GPA500b+HV               =       G1P504w +      GHO                                    :  0.100E+01*SUN;
+{ 66284} GPA500b+HV               =       G3A500h +      GNO2                                   :  0.100E+01*SUN;
+{ 66285} G1P508R                     =       GAD3000 +      GPD2000 +      GHO                     : ARR( 0.200E+15,  4500., 0.0);
+{ 66286} GPA500c                     =       G3A501H +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 66287} GPA500c +GHO                =       G2P506F                                               : ARR( 0.128E-12,     0., 0.0);
+{ 66288} GPA500c +GHO                =       GPA500p +      GNO2                                   : ARR( 0.718E-13,     0., 0.0);
+{ 66289} GPA500c +GHO                =       G2P400e +      GCO2                                   : ARR( 0.520E-12,     0., 0.0);
+{ 66290} GPA500c+HV               =       G1P507X +      GNO2                                   :  0.100E+01*SUN;
+{ 66291} GPA500c+HV               =       G3A4001 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 66292} G3A501H +GHO2               =  0.800GAG500q + 0.200GAA500N + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 66293} G3A501H +GNO                =       G3A4001 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 66294} G3A501H +GNO2               =       GPA500c                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 66295} G3A501H +GNO3               =       G3A4001 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 66296} G3A501H +MEPERO             =  0.685G3A4001 + 0.315GAA500N + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 66297} G3A501H +PERO1              =  0.800G3A4001 + 0.200GAA500N + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 66298} G3A501H +PERO2              =  0.750G3A4001 + 0.250GAA500N + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 66299} G3A501H +PERO3              =  0.800G3A4001 + 0.200GAA500N + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 66300} G3A501H +PERO5              =  0.650G3A4001 + 0.350GAA500N + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 66301} G3A501H +PERO6              =  0.650G3A4001 + 0.350GAA500N + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 66302} G3A501H +PERO9              =       G3A4001 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 66303} G2P506F +GNO                =       G1P508S +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 66304} G2P506F +GNO                =       GPA501W                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 66305} G2P506F +GHO2               =       GPA501b                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 66306} G2P506F +GNO3               =       G1P508S +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 66307} G2P506F +MEPERO             =  0.340G1P508S + 0.330GPA500f + 0.330GPA501Z                 : ARR( 0.565E-13,  -845., 0.0);
+{ 66308} G2P506F +PERO1              =  0.460G1P508S + 0.270GPA500f + 0.270GPA501Z                 : ARR( 0.434E-13,  -900., 0.0);
+{ 66309} G2P506F +PERO2              =  0.400G1P508S + 0.300GPA500f + 0.300GPA501Z                 : ARR( 0.162E-13, -1400., 0.0);
+{ 66310} G2P506F +PERO3              =  0.460G1P508S + 0.270GPA500f + 0.270GPA501Z                 : ARR( 0.488E-13, -1250., 0.0);
+{ 66311} G2P506F +PERO5              =  0.460G1P508S + 0.270GPA500f + 0.270GPA501Z                 : ARR( 0.183E-11,   450., 0.0);
+{ 66312} G2P506F +PERO6              =  0.300G1P508S + 0.350GPA500f + 0.350GPA501Z                 : ARR( 0.168E-13, -1300., 0.0);
+{ 66313} G2P506F +PERO9              =  0.650G1P508S + 0.350GPA501Z                                : ARR( 0.100E-10,     0., 0.0);
+{ 66314} G1P508S                     =       GCO     +      GPN400a +      GHO                     : ARR( 0.200E+15,  4342., 0.0);
+{ 66315} GAH504i +GHO                =       GAN502j +      GHO                                    : ARR( 0.323E-11,     0., 0.0);
+{ 66316} GAH504i +GHO                =       G2A503u                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 66317} GAH504i +GHO                =       GHN4013 +      GNO2    +      GCO2                    : ARR( 0.523E-12,     0., 0.0);
+{ 66318} GAH504i+HV               =       G1A507r +      GNO2                                   :  0.100E+01*SUN;
+{ 66319} GAH504i+HV               =       G1A507s +      GNO2                                   :  0.100E+01*SUN;
+{ 66320} GAH504i+HV               =       G1A507t +      GNO2                                   :  0.100E+01*SUN;
+{ 66321} GAH504i+HV               =       G1A504q +      GHO                                    :  0.100E+01*SUN;
+{ 66322} G1A507r                     =       GAN502G +      GHO                                    : ARR( 0.160E+12,  2905., 0.0);
+{ 66323} G1A507r                     =       GCO     +      GHN4013 +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 66324} G1A507s                     =       GAN3006 +      GHD2000 +      GNO2                    : ARR( 0.200E+15,  5492., 0.0);
+{ 66325} G1A507t                     =       GAN3006 +      GHD2000 +      GNO2                    : ARR( 0.200E+15,  6367., 0.0);
+{ 66326} G1A507t                     =       GAN400Y +      GCH2O   +      GHO                     : ARR( 0.200E+15,  7395., 0.0);
+{ 66327} GAN502j +GHO                =       G3A501I                                               : ARR( 0.418E-11,     0., 0.0);
+{ 66328} GAN502j +GHO                =       GNN400Z +      GNO2    +      GCO2                    : ARR( 0.523E-12,     0., 0.0);
+{ 66329} GAN502j +GNO3               =       G3A501I +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 66330} GAN502j+HV               =       G1A507u +      GNO2                                   :  0.100E+01*SUN;
+{ 66331} GAN502j+HV               =       G1A507v +      GNO2                                   :  0.100E+01*SUN;
+{ 66332} GAN502j+HV               =       G1A507w +      GNO2                                   :  0.100E+01*SUN;
+{ 66333} GAN502j+HV               =       GAN400Y +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 66334} GAN502j+HV               =       GAD3002 +      GND2000 + 2.000GNO2                    :  0.100E+01*SUN;
+{ 66335} G3A501I +GHO2               =  0.800GAG501T + 0.200GAA500q + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 66336} G3A501I +GNO                =       GAN400Y + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 66337} G3A501I +GNO2               =       GPA501T                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 66338} G3A501I +GNO3               =       GAN400Y + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 66339} G3A501I +MEPERO             =  0.685GAN400Y + 0.315GAA500q + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 66340} G3A501I +PERO1              =  0.800GAN400Y + 0.200GAA500q + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 66341} G3A501I +PERO2              =  0.750GAN400Y + 0.250GAA500q + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 66342} G3A501I +PERO3              =  0.800GAN400Y + 0.200GAA500q + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 66343} G3A501I +PERO5              =  0.650GAN400Y + 0.350GAA500q + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 66344} G3A501I +PERO6              =  0.650GAN400Y + 0.350GAA500q + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 66345} G3A501I +PERO9              =       GAN400Y +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 66346} G1A507u                     =       GCO     +      GNN400Z +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 66347} G1A507v                     =       GAD2000 +      GND3005 +      GNO2                    : ARR( 0.200E+15,  5846., 0.0);
+{ 66348} G1A507v                     =       GAN3006 +      GDD2000 +      GNO2                    : ARR( 0.200E+15,  5625., 0.0);
+{ 66349} G1A507w                     =       GAN400Y +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 66350} GAH504j +GHO                =       GAN502k +      GHO                                    : ARR( 0.323E-11,     0., 0.0);
+{ 66351} GAH504j +GHO                =       G2A503v                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 66352} GAH504j +GHO                =       G3H400m +      GCO2                                   : ARR( 0.523E-12,     0., 0.0);
+{ 66353} GAH504j+HV               =       GHN4013 +      GCO2                                   :  0.100E+01*SUN;
+{ 66354} GAH504j+HV               =       G1A507x +      GNO2                                   :  0.100E+01*SUN;
+{ 66355} GAH504j+HV               =       G1A507y +      GNO2                                   :  0.100E+01*SUN;
+{ 66356} GAH504j+HV               =       G1A504u +      GHO                                    :  0.100E+01*SUN;
+{ 66357} G1A507x                     =       GCO     +      GHN300A +      GHO     +      GCO      : ARR( 0.200E+15,  3266., 0.0);
+{ 66358} G1A507y                     =       GAD3002 +      GHD2000 +      GNO2                    : ARR( 0.200E+15,  6094., 0.0);
+{ 66359} G1A507y                     =       GAN400Z +      GCH2O   +      GHO                     : ARR( 0.200E+15,  6565., 0.0);
+{ 66360} GAN502k +GHO                =       G3A501J                                               : ARR( 0.418E-11,     0., 0.0);
+{ 66361} GAN502k +GHO                =       G3N400X +      GCO2                                   : ARR( 0.523E-12,     0., 0.0);
+{ 66362} GAN502k +GNO3               =       G3A501J +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 66363} GAN502k+HV               =       GNN400Z +      GCO2                                   :  0.100E+01*SUN;
+{ 66364} GAN502k+HV               =       G1A507z +      GNO2                                   :  0.100E+01*SUN;
+{ 66365} GAN502k+HV               =       G1A5081 +      GNO2                                   :  0.100E+01*SUN;
+{ 66366} GAN502k+HV               =       GAN400Z +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 66367} G3A501J +GHO2               =  0.800GAG501U + 0.200GAA500s + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 66368} G3A501J +GNO                =       GAN400Z + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 66369} G3A501J +GNO2               =       GPA501X                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 66370} G3A501J +GNO3               =       GAN400Z + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 66371} G3A501J +MEPERO             =  0.685GAN400Z + 0.315GAA500s + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 66372} G3A501J +PERO1              =  0.800GAN400Z + 0.200GAA500s + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 66373} G3A501J +PERO2              =  0.750GAN400Z + 0.250GAA500s + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 66374} G3A501J +PERO3              =  0.800GAN400Z + 0.200GAA500s + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 66375} G3A501J +PERO5              =  0.650GAN400Z + 0.350GAA500s + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 66376} G3A501J +PERO6              =  0.650GAN400Z + 0.350GAA500s + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 66377} G3A501J +PERO9              =       GAN400Z +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 66378} G1A507z                     =       GCO     +      GND3005 +      GHO     +      GCO      : ARR( 0.200E+15,  2436., 0.0);
+{ 66379} G1A5081                     =       GAN400Z +      GCO     +      GHO2                    : ARR( 0.200E+15,  4861., 0.0);
+{ 66380} GAH504k +GHO                =       GAN502l +      GHO                                    : ARR( 0.102E-10,     0., 0.0);
+{ 66381} GAH504k +GHO                =       G2A503w                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 66382} GAH504k+HV               =       G1A5082 +      GNO2                                   :  0.100E+01*SUN;
+{ 66383} GAH504k+HV               =       G1A5083 +      GNO2                                   :  0.100E+01*SUN;
+{ 66384} GAH504k+HV               =       G3A400A +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 66385} GAH504k+HV               =       G1A504v +      GHO                                    :  0.100E+01*SUN;
+{ 66386} G1A5082                     =       GCO     +      GHN401A +      GHO                     : ARR( 0.200E+15,  4342., 0.0);
+{ 66387} G1A5083                     =       GAN3006 +      G3H2000                                : ARR( 0.200E+15,  2179., 0.0);
+{ 66388} GAN502l +GHO                =       G3A400A +      GCO                                    : ARR( 0.132E-10,     0., 0.0);
+{ 66389} GAN502l +GNO3               =       G3A400A +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 66390} GAN502l+HV               =       G1A5084 +      GNO2                                   :  0.100E+01*SUN;
+{ 66391} GAN502l+HV               =       G1A5085 +      GNO2                                   :  0.100E+01*SUN;
+{ 66392} GAN502l+HV               =       G3A400A +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 66393} GAN502l+HV               =       GAN400Y +      GCO                                    :  0.100E+01*SUN;
+{ 66394} GAN502l+HV               =       GAN3004 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 66395} G1A5084                     =       GCO     +      GND400N +      GHO                     : ARR( 0.200E+15,  4342., 0.0);
+{ 66396} G1A5085                     =       GAN3006 +      G3D2000                                : ARR( 0.200E+15,  2403., 0.0);
+{ 66397} GAG400C +GHO                =       G3A400A                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 66398} GAG400C +GHO                =       GGN3005 +      GNO2    +      GCO2                    : ARR( 0.523E-12,     0., 0.0);
+{ 66399} GAG400C+HV               =       G1A401P +      GNO2                                   :  0.100E+01*SUN;
+{ 66400} GAG400C+HV               =       G1A401Q +      GNO2                                   :  0.100E+01*SUN;
+{ 66401} GAG400C+HV               =       GAN3006 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 66402} G1A401P                     =       GCO     +      GGN3005 +      GHO                     : ARR( 0.200E+15,  4342., 0.0);
+{ 66403} G1A401Q                     =       GAN3006 +      GCO     +      GHO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 66404} GAA4007 +GHO                =       GAN3006 +      GNO2    +      GCO2                    : ARR( 0.106E-11,     0., 0.0);
+{ 66405} GAA4007+HV               =       G1A4014 +      GNO2                                   :  0.200E+01*SUN;
+{ 66406} GPA400D                     =       G3A400A +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 66407} GPA400D +GHO                =       GPN3006 +      GNO2    +      GCO2                    : ARR( 0.545E-12,     0., 0.0);
+{ 66408} GPA400D+HV               =       G1P4019 +      GNO2                                   :  0.100E+01*SUN;
+{ 66409} GPA400D+HV               =       G1P401A +      GNO2                                   :  0.100E+01*SUN;
+{ 66410} GPA400D+HV               =       G3A400A +      GNO2                                   :  0.100E+01*SUN;
+{ 66411} GAG400D +GHO                =       GAG400E +      GHO2                                   : ARR( 0.969E-12,     0., 0.0);
+{ 66412} GAG400D +GHO                =       G3A400B                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 66413} GAG400D +GHO                =       GGN3005 +      GHO2    +      GCO2                    : ARR( 0.542E-12,     0., 0.0);
+{ 66414} GAG400D+HV               =       G1A401E +      GNO2                                   :  0.100E+01*SUN;
+{ 66415} GAG400D+HV               =       GAD3001 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 66416} GAH504l +GHO                =       GAN502m +      GHO                                    : ARR( 0.102E-10,     0., 0.0);
+{ 66417} GAH504l +GHO                =       G2A503y                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 66418} GAH504l+HV               =       GHN401A +      GCO2                                   :  0.100E+01*SUN;
+{ 66419} GAH504l+HV               =       G1A5086 +      GNO2                                   :  0.100E+01*SUN;
+{ 66420} GAH504l+HV               =       G3A400C +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 66421} GAH504l+HV               =       G1A504y +      GHO                                    :  0.100E+01*SUN;
+{ 66422} G1A5086                     =       GCO     +      GHD3001 +      GHO     +      GCO      : ARR( 0.200E+15,  4856., 0.0);
+{ 66423} G1A5086                     =       GAD3002 +      G3H2000                                : ARR( 0.200E+15,  4623., 0.0);
+{ 66424} GAN502m +GHO                =       G3A400C +      GCO                                    : ARR( 0.132E-10,     0., 0.0);
+{ 66425} GAN502m +GNO3               =       G3A400C +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 66426} GAN502m+HV               =       GND400N +      GCO2                                   :  0.100E+01*SUN;
+{ 66427} GAN502m+HV               =       G1A5087 +      GNO2                                   :  0.100E+01*SUN;
+{ 66428} GAN502m+HV               =       G3A400C +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 66429} GAN502m+HV               =       GAN400Z +      GCO                                    :  0.100E+01*SUN;
+{ 66430} GAN502m+HV               =       GAN3005 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 66431} G1A5087                     =       GCO     +      GDD3002 +      GHO     +      GCO      : ARR( 0.200E+15,  4880., 0.0);
+{ 66432} G1A5087                     =       GAD3002 +      G3D2000                                : ARR( 0.200E+15,  4847., 0.0);
+{ 66433} GAG400E +GHO                =       G3A400C                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 66434} GAG400E +GHO                =       G3G3001 +      GCO2                                   : ARR( 0.526E-12,     0., 0.0);
+{ 66435} GAG400E+HV               =       GGN3005 +      GCO2                                   :  0.100E+01*SUN;
+{ 66436} GAG400E+HV               =       G1A4019 +      GNO2                                   :  0.100E+01*SUN;
+{ 66437} GAG400E+HV               =       GAD3002 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 66438} GAA4008 +GHO                =       G3A3001 +      GCO2                                   : ARR( 0.536E-12,     0., 0.0);
+{ 66439} GAA4008 +GHO                =       GAD3002 +      GNO2    +      GCO2                    : ARR( 0.536E-12,     0., 0.0);
+{ 66440} GAA4008+HV               =       GAN3006 +      GCO2                                   :  0.100E+01*SUN;
+{ 66441} GAA4008+HV               =       G1A401A +      GNO2                                   :  0.100E+01*SUN;
+{ 66442} GPA400E                     =       G3A400C +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 66443} GPA400E +GHO                =       GPA400K +      GNO2                                   : ARR( 0.438E-13,     0., 0.0);
+{ 66444} GPA400E +GHO                =       G3P3001 +      GCO2                                   : ARR( 0.520E-12,     0., 0.0);
+{ 66445} GPA400E+HV               =       GPN3006 +      GCO2                                   :  0.100E+01*SUN;
+{ 66446} GPA400E+HV               =       G1P401F +      GNO2                                   :  0.100E+01*SUN;
+{ 66447} GPA400E+HV               =       G3A400C +      GNO2                                   :  0.100E+01*SUN;
+{ 66448} GAA4009 +GHO                =       GAA4008 +      GHO                                    : ARR( 0.374E-11,     0., 0.0);
+{ 66449} GAA4009 +GHO                =       G2A400x                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 66450} GAA4009 +GHO                =       GAH3007 +      GNO2    +      GCO2                    : ARR( 0.523E-12,     0., 0.0);
+{ 66451} GAA4009 +GHO                =       GAN3006 +      GHO     +      GCO2                    : ARR( 0.523E-12,     0., 0.0);
+{ 66452} GAA4009+HV               =       G1A401R +      GNO2                                   :  0.100E+01*SUN;
+{ 66453} GAA4009+HV               =       G1A4014 +      GHO                                    :  0.100E+01*SUN;
+{ 66454} G1A401R                     =       GAH3007 +      GCO     +      GHO                     : ARR( 0.200E+15,  4342., 0.0);
+{ 66455} GPA400F                     =       G3A400G +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 66456} GPA400F +GHO                =       GPA400E +      GHO                                    : ARR( 0.375E-11,     0., 0.0);
+{ 66457} GPA400F +GHO                =       G2P4011                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 66458} GPA400F +GHO                =       GPN3006 +      GHO     +      GCO2                    : ARR( 0.525E-12,     0., 0.0);
+{ 66459} GPA400F+HV               =       G1P4019 +      GHO                                    :  0.100E+01*SUN;
+{ 66460} GPA400F+HV               =       G1P401Y +      GNO2                                   :  0.100E+01*SUN;
+{ 66461} GPA400F+HV               =       G3A400G +      GNO2                                   :  0.100E+01*SUN;
+{ 66462} G1P401Y                     =       GAH3007 +      GCO     +      GNO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 66463} GAG500X +GHO                =       G3A500U                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 66464} GAG500X +GHO                =       GGN400I +      GNO2    +      GCO2                    : ARR( 0.546E-12,     0., 0.0);
+{ 66465} GAG500X+HV               =       G1A5088 +      GNO2                                   :  0.100E+01*SUN;
+{ 66466} GAG500X+HV               =       G1A505a +      GNO2                                   :  0.100E+01*SUN;
+{ 66467} GAG500X+HV               =       G2A400b +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 66468} G1A5088                     =       GCO     +      GGN400I +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 66469} GAH504m +GHO                =       GAH504R +      GHO                                    : ARR( 0.869E-11,     0., 0.0);
+{ 66470} GAH504m +GHO                =       GAH5037 +      GHO                                    : ARR( 0.170E-10,     0., 0.0);
+{ 66471} GAH504m +GHO                =       G2A505q                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 66472} GAH504m +GHO                =       G2A503z                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 66473} GAH504m+HV               =       G1A5089 +      GNO2                                   :  0.100E+01*SUN;
+{ 66474} GAH504m+HV               =       G1A508A +      GHO                                    :  0.100E+01*SUN;
+{ 66475} GAH504m+HV               =       G1A5056 +      GHO                                    :  0.100E+01*SUN;
+{ 66476} G2A505q +GNO                =       G1A508A +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 66477} G2A505q +GNO                =       GAH505S                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 66478} G2A505q +GHO2               =       GAH504m                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 66479} G2A505q +GNO3               =       G1A508A +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 66480} G2A505q +MEPERO             =  0.340G1A508A + 0.330GAH501h + 0.330GAH504R                 : ARR( 0.565E-13,  -845., 0.0);
+{ 66481} G2A505q +PERO1              =  0.460G1A508A + 0.270GAH501h + 0.270GAH504R                 : ARR( 0.434E-13,  -900., 0.0);
+{ 66482} G2A505q +PERO2              =  0.400G1A508A + 0.300GAH501h + 0.300GAH504R                 : ARR( 0.162E-13, -1400., 0.0);
+{ 66483} G2A505q +PERO3              =  0.460G1A508A + 0.270GAH501h + 0.270GAH504R                 : ARR( 0.488E-13, -1250., 0.0);
+{ 66484} G2A505q +PERO5              =  0.460G1A508A + 0.270GAH501h + 0.270GAH504R                 : ARR( 0.183E-11,   450., 0.0);
+{ 66485} G2A505q +PERO6              =  0.300G1A508A + 0.350GAH501h + 0.350GAH504R                 : ARR( 0.168E-13, -1300., 0.0);
+{ 66486} G2A505q +PERO9              =  0.650G1A508A + 0.350GAH504R                                : ARR( 0.100E-10,     0., 0.0);
+{ 66487} G1A5089                     =       GAD2000 +      GHH3005 +      GHO2                    : ARR( 0.200E+15,  3929., 0.0);
+{ 66488} G1A5089                     =       GAD3001 +      GHD2000 +      GHO                     : ARR( 0.200E+15,  3953., 0.0);
+{ 66489} G1A508A                     =       GAD3001 +      GHD2000 +      GNO2                    : ARR( 0.200E+15,  6367., 0.0);
+{ 66490} G1A508A                     =       GAN400a +      GCH2O   +      GHO                     : ARR( 0.200E+15,  7395., 0.0);
+{ 66491} GAG500Y +GHO                =       G3A500W                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 66492} GAG500Y +GHO                =       G3G4003 +      GCO2                                   : ARR( 0.551E-12,     0., 0.0);
+{ 66493} GAG500Y+HV               =       GGN400I +      GCO2                                   :  0.100E+01*SUN;
+{ 66494} GAG500Y+HV               =       G1A5071 +      GNO2                                   :  0.100E+01*SUN;
+{ 66495} GAG500Y+HV               =       G2A400c +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 66496} GAH504n +GHO                =       GAH504l +      GHO2                                   : ARR( 0.213E-11,     0., 0.0);
+{ 66497} GAH504n +GHO                =       GAN502h +      GHO                                    : ARR( 0.166E-10,     0., 0.0);
+{ 66498} GAH504n +GHO                =       G2A5041                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 66499} GAH504n+HV               =       GHN400Y +      GCO2                                   :  0.100E+01*SUN;
+{ 66500} GAH504n+HV               =       G1A507h +      GNO2                                   :  0.100E+01*SUN;
+{ 66501} GAH504n+HV               =       G1A504K +      GHO                                    :  0.100E+01*SUN;
+{ 66502} GAH504o +GHO                =       GAN502l +      GHO                                    : ARR( 0.513E-11,     0., 0.0);
+{ 66503} GAH504o +GHO                =       G3A501K                                               : ARR( 0.212E-10,     0., 0.0);
+{ 66504} GAH504o +GHO                =       G2A505r                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 66505} GAH504o +GNO3               =       G3A501K +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 66506} GAH504o+HV               =       G1A508B +      GNO2                                   :  0.100E+01*SUN;
+{ 66507} GAH504o+HV               =       G1A508C +      GNO2                                   :  0.100E+01*SUN;
+{ 66508} GAH504o+HV               =       G1A507w +      GHO                                    :  0.100E+01*SUN;
+{ 66509} GAH504o+HV               =       GAN400Y +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 66510} G3A501K +GHO2               =  0.800GAG501W + 0.200GAA500r + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 66511} G3A501K +GNO                =       GAN400Y +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 66512} G3A501K +GNO2               =       GPA501U                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 66513} G3A501K +GNO3               =       GAN400Y +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 66514} G3A501K +MEPERO             =  0.685GAN400Y + 0.315GAA500r + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 66515} G3A501K +PERO1              =  0.800GAN400Y + 0.200GAA500r + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 66516} G3A501K +PERO2              =  0.750GAN400Y + 0.250GAA500r + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 66517} G3A501K +PERO3              =  0.800GAN400Y + 0.200GAA500r + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 66518} G3A501K +PERO5              =  0.650GAN400Y + 0.350GAA500r + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 66519} G3A501K +PERO6              =  0.650GAN400Y + 0.350GAA500r + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 66520} G3A501K +PERO9              =       GAN400Y +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 66521} G2A505r +GNO                =       G1A507w +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 66522} G2A505r +GNO                =       GAN502j                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 66523} G2A505r +GHO2               =       GAH504o                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 66524} G2A505r +GNO3               =       G1A507w +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 66525} G2A505r +MEPERO             =  0.340G1A507w + 0.330GAN5028 + 0.330GAN502l                 : ARR( 0.565E-13,  -845., 0.0);
+{ 66526} G2A505r +PERO1              =  0.460G1A507w + 0.270GAN5028 + 0.270GAN502l                 : ARR( 0.434E-13,  -900., 0.0);
+{ 66527} G2A505r +PERO2              =  0.400G1A507w + 0.300GAN5028 + 0.300GAN502l                 : ARR( 0.162E-13, -1400., 0.0);
+{ 66528} G2A505r +PERO3              =  0.460G1A507w + 0.270GAN5028 + 0.270GAN502l                 : ARR( 0.488E-13, -1250., 0.0);
+{ 66529} G2A505r +PERO5              =  0.460G1A507w + 0.270GAN5028 + 0.270GAN502l                 : ARR( 0.183E-11,   450., 0.0);
+{ 66530} G2A505r +PERO6              =  0.300G1A507w + 0.350GAN5028 + 0.350GAN502l                 : ARR( 0.168E-13, -1300., 0.0);
+{ 66531} G2A505r +PERO9              =  0.650G1A507w + 0.350GAN502l                                : ARR( 0.100E-10,     0., 0.0);
+{ 66532} G1A508B                     =       GCO     +      GHN400y +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 66533} G1A508C                     =       GAN3006 +      GDD2000 +      GHO                     : ARR( 0.200E+15,  4086., 0.0);
+{ 66534} GAG500Z +GHO                =       GAG500Y +      GHO                                    : ARR( 0.400E-11,     0., 0.0);
+{ 66535} GAG500Z +GHO                =       G2A505s                                               : ARR( 0.204E-11,  -190., 0.0);
+{ 66536} GAG500Z +GHO                =       G3A500X                                               : ARR( 0.204E-11,  -190., 0.0);
+{ 66537} GAG500Z+HV               =       G1A5088 +      GHO                                    :  0.100E+01*SUN;
+{ 66538} GAG500Z+HV               =       G1A508D +      GNO2                                   :  0.100E+01*SUN;
+{ 66539} GAG500Z+HV               =       G2A400y +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 66540} G2A505s +GNO                =       G1A5088 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 66541} G2A505s +GNO                =       GAG500X                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 66542} G2A505s +GHO2               =       GAG500Z                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 66543} G2A505s +GNO3               =       G1A5088 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 66544} G2A505s +MEPERO             =  0.340G1A5088 + 0.330GAG5005 + 0.330GAG500Y                 : ARR( 0.565E-13,  -845., 0.0);
+{ 66545} G2A505s +PERO1              =  0.460G1A5088 + 0.270GAG5005 + 0.270GAG500Y                 : ARR( 0.434E-13,  -900., 0.0);
+{ 66546} G2A505s +PERO2              =  0.400G1A5088 + 0.300GAG5005 + 0.300GAG500Y                 : ARR( 0.162E-13, -1400., 0.0);
+{ 66547} G2A505s +PERO3              =  0.460G1A5088 + 0.270GAG5005 + 0.270GAG500Y                 : ARR( 0.488E-13, -1250., 0.0);
+{ 66548} G2A505s +PERO5              =  0.460G1A5088 + 0.270GAG5005 + 0.270GAG500Y                 : ARR( 0.183E-11,   450., 0.0);
+{ 66549} G2A505s +PERO6              =  0.300G1A5088 + 0.350GAG5005 + 0.350GAG500Y                 : ARR( 0.168E-13, -1300., 0.0);
+{ 66550} G2A505s +PERO9              =  0.650G1A5088 + 0.350GAG500Y                                : ARR( 0.100E-10,     0., 0.0);
+{ 66551} G1A508D                     =       GAD2000 +      GGD3000 +      GHO                     : ARR( 0.200E+15,  4500., 0.0);
+{ 66552} GAH504p +GHO                =       GAN502m +      GHO                                    : ARR( 0.515E-11,     0., 0.0);
+{ 66553} GAH504p +GHO                =       G3A501L                                               : ARR( 0.213E-10,     0., 0.0);
+{ 66554} GAH504p +GHO                =       G2A505t                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 66555} GAH504p +GNO3               =       G3A501L +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 66556} GAH504p+HV               =       GHN400y +      GCO2                                   :  0.100E+01*SUN;
+{ 66557} GAH504p+HV               =       G1A508E +      GNO2                                   :  0.100E+01*SUN;
+{ 66558} GAH504p+HV               =       G1A5081 +      GHO                                    :  0.100E+01*SUN;
+{ 66559} GAH504p+HV               =       GAN400Z +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 66560} G3A501L +GHO2               =  0.800GAG501X + 0.200GAA500t + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 66561} G3A501L +GNO                =       GAN400Z +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 66562} G3A501L +GNO2               =       GPA501Y                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 66563} G3A501L +GNO3               =       GAN400Z +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 66564} G3A501L +MEPERO             =  0.685GAN400Z + 0.315GAA500t + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 66565} G3A501L +PERO1              =  0.800GAN400Z + 0.200GAA500t + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 66566} G3A501L +PERO2              =  0.750GAN400Z + 0.250GAA500t + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 66567} G3A501L +PERO3              =  0.800GAN400Z + 0.200GAA500t + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 66568} G3A501L +PERO5              =  0.650GAN400Z + 0.350GAA500t + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 66569} G3A501L +PERO6              =  0.650GAN400Z + 0.350GAA500t + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 66570} G3A501L +PERO9              =       GAN400Z +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 66571} G2A505t +GNO                =       G1A5081 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 66572} G2A505t +GNO                =       GAN502k                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 66573} G2A505t +GHO2               =       GAH504p                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 66574} G2A505t +GNO3               =       G1A5081 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 66575} G2A505t +MEPERO             =  0.340G1A5081 + 0.330GAN502h + 0.330GAN502m                 : ARR( 0.565E-13,  -845., 0.0);
+{ 66576} G2A505t +PERO1              =  0.460G1A5081 + 0.270GAN502h + 0.270GAN502m                 : ARR( 0.434E-13,  -900., 0.0);
+{ 66577} G2A505t +PERO2              =  0.400G1A5081 + 0.300GAN502h + 0.300GAN502m                 : ARR( 0.162E-13, -1400., 0.0);
+{ 66578} G2A505t +PERO3              =  0.460G1A5081 + 0.270GAN502h + 0.270GAN502m                 : ARR( 0.488E-13, -1250., 0.0);
+{ 66579} G2A505t +PERO5              =  0.460G1A5081 + 0.270GAN502h + 0.270GAN502m                 : ARR( 0.183E-11,   450., 0.0);
+{ 66580} G2A505t +PERO6              =  0.300G1A5081 + 0.350GAN502h + 0.350GAN502m                 : ARR( 0.168E-13, -1300., 0.0);
+{ 66581} G2A505t +PERO9              =  0.650G1A5081 + 0.350GAN502m                                : ARR( 0.100E-10,     0., 0.0);
+{ 66582} G1A508E                     =       GCO     +      GHD3004 +      GHO     +      GCO      : ARR( 0.200E+15,  2436., 0.0);
+{ 66583} GAA500O +GHO                =       GAA500s +      GHO2                                   : ARR( 0.945E-12,     0., 0.0);
+{ 66584} GAA500O +GHO                =       G1A507p                                               : ARR( 0.213E-17,    85., 2.0);
+{ 66585} GAA500O +GHO                =       GAN400Y +      GHO2    +      GCO2                    : ARR( 0.528E-12,     0., 0.0);
+{ 66586} GAA500O +GHO                =       GAN400a +      GNO2    +      GCO2                    : ARR( 0.528E-12,     0., 0.0);
+{ 66587} GAA500O+HV               =       G1A508F +      GNO2                                   :  0.100E+01*SUN;
+{ 66588} GAA500O+HV               =       G1A505H +      GNO2                                   :  0.100E+01*SUN;
+{ 66589} G1A508F                     =       GAN3006 +      GAD2000 +      GHO2                    : ARR( 0.200E+15,  3099., 0.0);
+{ 66590} GAA500P +GHO                =       GAA500t +      GHO2                                   : ARR( 0.956E-12,     0., 0.0);
+{ 66591} GAA500P +GHO                =       GAA500Q +      GHO                                    : ARR( 0.382E-11,     0., 0.0);
+{ 66592} GAA500P +GHO                =       G2A5043                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 66593} GAA500P +GHO                =       GAH400l +      GHO2    +      GCO2                    : ARR( 0.534E-12,     0., 0.0);
+{ 66594} GAA500P +GHO                =       GAN400a +      GHO     +      GCO2                    : ARR( 0.534E-12,     0., 0.0);
+{ 66595} GAA500P+HV               =       G1A508G +      GNO2                                   :  0.100E+01*SUN;
+{ 66596} GAA500P+HV               =       G1A505H +      GHO                                    :  0.100E+01*SUN;
+{ 66597} G1A508G                     =       GAH3007 +      GAD2000 +      GHO2                    : ARR( 0.200E+15,  3099., 0.0);
+{ 66598} GAA500Q +GHO                =       GAA500u +      GHO2                                   : ARR( 0.961E-12,     0., 0.0);
+{ 66599} GAA500Q +GHO                =       G1A507q                                               : ARR( 0.217E-17,    85., 2.0);
+{ 66600} GAA500Q +GHO                =       GAN400Z +      GHO2    +      GCO2                    : ARR( 0.538E-12,     0., 0.0);
+{ 66601} GAA500Q +GHO                =       G3A400B +      GCO2                                   : ARR( 0.538E-12,     0., 0.0);
+{ 66602} GAA500Q+HV               =       G1A507O +      GNO2                                   :  0.100E+01*SUN;
+{ 66603} GAA500Q+HV               =       GAN400a +      GCO2                                   :  0.100E+01*SUN;
+{ 66604} GPA500d                     =       G3A500f +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 66605} GPA500d +GHO                =       GPA501X +      GHO2                                   : ARR( 0.952E-12,     0., 0.0);
+{ 66606} GPA500d +GHO                =       G1P508Q                                               : ARR( 0.215E-17,    85., 2.0);
+{ 66607} GPA500d +GHO                =       GPN400Z +      GHO2    +      GCO2                    : ARR( 0.532E-12,     0., 0.0);
+{ 66608} GPA500d+HV               =       G1P508T +      GNO2                                   :  0.100E+01*SUN;
+{ 66609} GPA500d+HV               =       G1P504x +      GNO2                                   :  0.100E+01*SUN;
+{ 66610} GPA500d+HV               =       G3A500f +      GNO2                                   :  0.100E+01*SUN;
+{ 66611} G1P508T                     =       GAD2000 +      GPN3006 +      GHO2                    : ARR( 0.200E+15,  3099., 0.0);
+{ 66612} GPA500e                     =       G3A500g +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 66613} GPA500e +GHO                =       GPA501Y +      GHO2                                   : ARR( 0.954E-12,     0., 0.0);
+{ 66614} GPA500e +GHO                =       GPA500f +      GHO                                    : ARR( 0.515E-11,     0., 0.0);
+{ 66615} GPA500e +GHO                =       G2P503z                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 66616} GPA500e +GHO                =       GPH400m +      GHO2    +      GCO2                    : ARR( 0.533E-12,     0., 0.0);
+{ 66617} GPA500e+HV               =       G1P508U +      GNO2                                   :  0.100E+01*SUN;
+{ 66618} GPA500e+HV               =       G1P504x +      GHO                                    :  0.100E+01*SUN;
+{ 66619} GPA500e+HV               =       G3A500g +      GNO2                                   :  0.100E+01*SUN;
+{ 66620} G1P508U                     =       GAD2000 +      GPH3007 +      GHO2                    : ARR( 0.200E+15,  3099., 0.0);
+{ 66621} GPA500f                     =       G3A501M +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 66622} GPA500f +GHO                =       GPA501Z +      GHO2                                   : ARR( 0.972E-12,     0., 0.0);
+{ 66623} GPA500f +GHO                =       G1P508S                                               : ARR( 0.219E-17,    85., 2.0);
+{ 66624} GPA500f +GHO                =       GPN400a +      GHO2    +      GCO2                    : ARR( 0.543E-12,     0., 0.0);
+{ 66625} GPA500f+HV               =       G1P507Y +      GNO2                                   :  0.100E+01*SUN;
+{ 66626} GPA500f+HV               =       G3A400B +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 66627} G3A501M +GHO2               =  0.800GAG501R + 0.200GAA500Q + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 66628} G3A501M +GNO                =       G3A400B +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 66629} G3A501M +GNO2               =       GPA500f                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 66630} G3A501M +GNO3               =       G3A400B +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 66631} G3A501M +MEPERO             =  0.685G3A400B + 0.315GAA500Q + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 66632} G3A501M +PERO1              =  0.800G3A400B + 0.200GAA500Q + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 66633} G3A501M +PERO2              =  0.750G3A400B + 0.250GAA500Q + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 66634} G3A501M +PERO3              =  0.800G3A400B + 0.200GAA500Q + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 66635} G3A501M +PERO5              =  0.650G3A400B + 0.350GAA500Q + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 66636} G3A501M +PERO6              =  0.650G3A400B + 0.350GAA500Q + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 66637} G3A501M +PERO9              =       G3A400B +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 66638} GPP500I                     =       G3P500T +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 66639} GPP500I                     =       G3P500R +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 66640} GPP500I +GHO                =       G2P506G                                               : ARR( 0.172E-12,     0., 0.0);
+{ 66641} GPP500I +GHO                =       GPP500P +      GNO2                                   : ARR( 0.235E-13,     0., 0.0);
+{ 66642} GPP500I +GHO                =       GPP500K +      GNO2                                   : ARR( 0.144E-13,     0., 0.0);
+{ 66643} GPP500I+HV               =       G3P500T +      GNO2                                   :  0.100E+01*SUN;
+{ 66644} GPP500I+HV               =       G1P506N +      GNO2                                   :  0.100E+01*SUN;
+{ 66645} GPP500I+HV               =       G1P5052 +      GNO2                                   :  0.100E+01*SUN;
+{ 66646} GPP500I+HV               =       G3P500R +      GNO2                                   :  0.100E+01*SUN;
+{ 66647} G2P506G +GNO                =       G1P508W +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 66648} G2P506G +GNO                =       GPP500n                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 66649} G2P506G +GHO2               =       GPP500o                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 66650} G2P506G +GNO3               =       G1P508W +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 66651} G2P506G +MEPERO             =  0.340G1P508W + 0.330GPP500L + 0.330GPP500p                 : ARR( 0.565E-13,  -845., 0.0);
+{ 66652} G2P506G +PERO1              =  0.460G1P508W + 0.270GPP500L + 0.270GPP500p                 : ARR( 0.434E-13,  -900., 0.0);
+{ 66653} G2P506G +PERO2              =  0.400G1P508W + 0.300GPP500L + 0.300GPP500p                 : ARR( 0.162E-13, -1400., 0.0);
+{ 66654} G2P506G +PERO3              =  0.460G1P508W + 0.270GPP500L + 0.270GPP500p                 : ARR( 0.488E-13, -1250., 0.0);
+{ 66655} G2P506G +PERO5              =  0.460G1P508W + 0.270GPP500L + 0.270GPP500p                 : ARR( 0.183E-11,   450., 0.0);
+{ 66656} G2P506G +PERO6              =  0.300G1P508W + 0.350GPP500L + 0.350GPP500p                 : ARR( 0.168E-13, -1300., 0.0);
+{ 66657} G2P506G +PERO9              =  0.650G1P508W + 0.350GPP500p                                : ARR( 0.100E-10,     0., 0.0);
+{ 66658} G1P508W                     =       GPN400Z +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 66659} GPP500J                     =       G3P500W +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 66660} GPP500J                     =       G3P500j +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 66661} GPP500J +GHO                =       GPP500K +      GHO                                    : ARR( 0.520E-11,     0., 0.0);
+{ 66662} GPP500J +GHO                =       G2P5041                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 66663} GPP500J+HV               =       G3P500W +      GNO2                                   :  0.100E+01*SUN;
+{ 66664} GPP500J+HV               =       G1P508X +      GNO2                                   :  0.100E+01*SUN;
+{ 66665} GPP500J+HV               =       G1P5052 +      GHO                                    :  0.100E+01*SUN;
+{ 66666} GPP500J+HV               =       G3P500j +      GNO2                                   :  0.100E+01*SUN;
+{ 66667} G1P508X                     =       GPD2000 +      GPD3000 +      GHO                     : ARR( 0.200E+15,  4500., 0.0);
+{ 66668} GPP500K                     =       G3P500U +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 66669} GPP500K                     =       G3P501E +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 66670} GPP500K +GHO                =       G2P506H                                               : ARR( 0.172E-12,     0., 0.0);
+{ 66671} GPP500K +GHO                =       GPP500R +      GNO2                                   : ARR( 0.718E-13,     0., 0.0);
+{ 66672} GPP500K+HV               =       G3P500U +      GNO2                                   :  0.100E+01*SUN;
+{ 66673} GPP500K+HV               =       G1P5084 +      GNO2                                   :  0.100E+01*SUN;
+{ 66674} GPP500K+HV               =       G3P4001 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 66675} G3P501E +GHO2               =  0.800GPG500u + 0.200GPA500Z + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 66676} G3P501E +GNO                =       G3P4001 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 66677} G3P501E +GNO2               =       GPP500K                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 66678} G3P501E +GNO3               =       G3P4001 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 66679} G3P501E +MEPERO             =  0.685G3P4001 + 0.315GPA500Z + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 66680} G3P501E +PERO1              =  0.800G3P4001 + 0.200GPA500Z + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 66681} G3P501E +PERO2              =  0.750G3P4001 + 0.250GPA500Z + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 66682} G3P501E +PERO3              =  0.800G3P4001 + 0.200GPA500Z + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 66683} G3P501E +PERO5              =  0.650G3P4001 + 0.350GPA500Z + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 66684} G3P501E +PERO6              =  0.650G3P4001 + 0.350GPA500Z + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 66685} G3P501E +PERO9              =       G3P4001 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 66686} G2P506H +GNO                =       G1P508Y +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 66687} G2P506H +GNO                =       GPP500p                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 66688} G2P506H +GHO2               =       GPP500q                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 66689} G2P506H +GNO3               =       G1P508Y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 66690} G2P506H +MEPERO             =  0.340G1P508Y + 0.330GPP500N + 0.330GPP500r                 : ARR( 0.565E-13,  -845., 0.0);
+{ 66691} G2P506H +PERO1              =  0.460G1P508Y + 0.270GPP500N + 0.270GPP500r                 : ARR( 0.434E-13,  -900., 0.0);
+{ 66692} G2P506H +PERO2              =  0.400G1P508Y + 0.300GPP500N + 0.300GPP500r                 : ARR( 0.162E-13, -1400., 0.0);
+{ 66693} G2P506H +PERO3              =  0.460G1P508Y + 0.270GPP500N + 0.270GPP500r                 : ARR( 0.488E-13, -1250., 0.0);
+{ 66694} G2P506H +PERO5              =  0.460G1P508Y + 0.270GPP500N + 0.270GPP500r                 : ARR( 0.183E-11,   450., 0.0);
+{ 66695} G2P506H +PERO6              =  0.300G1P508Y + 0.350GPP500N + 0.350GPP500r                 : ARR( 0.168E-13, -1300., 0.0);
+{ 66696} G2P506H +PERO9              =  0.650G1P508Y + 0.350GPP500r                                : ARR( 0.100E-10,     0., 0.0);
+{ 66697} G1P508Y                     =       GPN400a +      GCO     +      GNO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 66698} GPG500T                     =       G3G500Y +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 66699} GPG500T +GHO                =       G3P500R                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 66700} GPG500T+HV               =       GPN400H +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 66701} GPG500T+HV               =       G1P508Z +      GNO2                                   :  0.100E+01*SUN;
+{ 66702} GPG500T+HV               =       G1P507O +      GNO2                                   :  0.100E+01*SUN;
+{ 66703} GPG500T+HV               =       G3G500Y +      GNO2                                   :  0.100E+01*SUN;
+{ 66704} G1P508Z                     =       GCO     +      GPN400H +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 66705} GPH504m                     =       G3H504o +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 66706} GPH504m +GHO                =       GPN502j +      GHO                                    : ARR( 0.324E-11,     0., 0.0);
+{ 66707} GPH504m +GHO                =       G2P5042                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 66708} GPH504m+HV               =       G1P5056 +      GHO                                    :  0.100E+01*SUN;
+{ 66709} GPH504m+HV               =       G1P508a +      GNO2                                   :  0.100E+01*SUN;
+{ 66710} GPH504m+HV               =       G1P508b +      GNO2                                   :  0.100E+01*SUN;
+{ 66711} GPH504m+HV               =       G1P508c +      GNO2                                   :  0.100E+01*SUN;
+{ 66712} GPH504m+HV               =       G3H504o +      GNO2                                   :  0.100E+01*SUN;
+{ 66713} G1P508a                     =       GCH2O   +      GPN400Z +      GHO                     : ARR( 0.200E+15,  7395., 0.0);
+{ 66714} G1P508a                     =       GHD2000 +      GPN3006 +      GNO2                    : ARR( 0.200E+15,  6367., 0.0);
+{ 66715} G1P508b                     =       GHD2000 +      GPN3006 +      GNO2                    : ARR( 0.200E+15,  5492., 0.0);
+{ 66716} G1P508c                     =       GPN501k +      GHO                                    : ARR( 0.160E+12,  2905., 0.0);
+{ 66717} G1P508c                     =       GHN4013 +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 66718} GPN502j                     =       G3N502n +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 66719} GPN502j +GHO                =       G3P501F                                               : ARR( 0.419E-11,     0., 0.0);
+{ 66720} GPN502j +GNO3               =       G3P501F +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 66721} GPN502j+HV               =       G3N502n +      GNO2                                   :  0.100E+01*SUN;
+{ 66722} GPN502j+HV               =       G1P508d +      GNO2                                   :  0.100E+01*SUN;
+{ 66723} GPN502j+HV               =       G1P508e +      GNO2                                   :  0.100E+01*SUN;
+{ 66724} GPN502j+HV               =       G1P508f +      GNO2                                   :  0.100E+01*SUN;
+{ 66725} GPN502j+HV               =       GPN400Z +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 66726} GPN502j+HV               =       GPD3002 +      GND2000 + 2.000GNO2                    :  0.100E+01*SUN;
+{ 66727} G3P501F +GHO2               =  0.800GPG501Q + 0.200GPA501T + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 66728} G3P501F +GNO                =       GPN400Z + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 66729} G3P501F +GNO2               =       GPP500n                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 66730} G3P501F +GNO3               =       GPN400Z + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 66731} G3P501F +MEPERO             =  0.685GPN400Z + 0.315GPA501T + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 66732} G3P501F +PERO1              =  0.800GPN400Z + 0.200GPA501T + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 66733} G3P501F +PERO2              =  0.750GPN400Z + 0.250GPA501T + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 66734} G3P501F +PERO3              =  0.800GPN400Z + 0.200GPA501T + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 66735} G3P501F +PERO5              =  0.650GPN400Z + 0.350GPA501T + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 66736} G3P501F +PERO6              =  0.650GPN400Z + 0.350GPA501T + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 66737} G3P501F +PERO9              =       GPN400Z +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 66738} G1P508d                     =       GCO     +      GNN400Z +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 66739} G1P508e                     =       GPD2000 +      GND3005 +      GNO2                    : ARR( 0.200E+15,  5846., 0.0);
+{ 66740} G1P508e                     =       GPN3006 +      GDD2000 +      GNO2                    : ARR( 0.200E+15,  5625., 0.0);
+{ 66741} G1P508f                     =       GPN400Z +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 66742} GPH504n                     =       G3H505F +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 66743} GPH504n +GHO                =       GPN502k +      GHO                                    : ARR( 0.323E-11,     0., 0.0);
+{ 66744} GPH504n +GHO                =       G2P5043                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 66745} GPH504n+HV               =       G1P505A +      GHO                                    :  0.100E+01*SUN;
+{ 66746} GPH504n+HV               =       G1P508g +      GNO2                                   :  0.100E+01*SUN;
+{ 66747} GPH504n+HV               =       G1P508h +      GNO2                                   :  0.100E+01*SUN;
+{ 66748} GPH504n+HV               =       G3H400m +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 66749} G3H505F +GHO2               =  0.800GGH505W + 0.200GAH504j + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 66750} G3H505F +GNO                =       G3H400m +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 66751} G3H505F +GNO2               =       GPH504n                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 66752} G3H505F +GNO3               =       G3H400m +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 66753} G3H505F +MEPERO             =  0.685G3H400m + 0.315GAH504j + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 66754} G3H505F +PERO1              =  0.800G3H400m + 0.200GAH504j + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 66755} G3H505F +PERO2              =  0.750G3H400m + 0.250GAH504j + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 66756} G3H505F +PERO3              =  0.800G3H400m + 0.200GAH504j + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 66757} G3H505F +PERO5              =  0.650G3H400m + 0.350GAH504j + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 66758} G3H505F +PERO6              =  0.650G3H400m + 0.350GAH504j + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 66759} G3H505F +PERO9              =       G3H400m +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 66760} G1P508g                     =       GCH2O   +      GPN400a +      GHO                     : ARR( 0.200E+15,  6565., 0.0);
+{ 66761} G1P508g                     =       GHD2000 +      GPD3002 +      GNO2                    : ARR( 0.200E+15,  6094., 0.0);
+{ 66762} G1P508h                     =       GHN300A +      GCO     +      GNO2    +      GCO      : ARR( 0.200E+15,  3266., 0.0);
+{ 66763} GPN502k                     =       G3N502q +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 66764} GPN502k +GHO                =       G3P501G                                               : ARR( 0.418E-11,     0., 0.0);
+{ 66765} GPN502k +GNO3               =       G3P501G +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 66766} GPN502k+HV               =       G3N400X +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 66767} GPN502k+HV               =       G1P508i +      GNO2                                   :  0.100E+01*SUN;
+{ 66768} GPN502k+HV               =       G1P508j +      GNO2                                   :  0.100E+01*SUN;
+{ 66769} GPN502k+HV               =       GPN400a +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 66770} G3N502q +GHO2               =  0.800GGN502t + 0.200GAN502k + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 66771} G3N502q +GNO                =       G3N400X +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 66772} G3N502q +GNO2               =       GPN502k                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 66773} G3N502q +GNO3               =       G3N400X +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 66774} G3N502q +MEPERO             =  0.685G3N400X + 0.315GAN502k + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 66775} G3N502q +PERO1              =  0.800G3N400X + 0.200GAN502k + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 66776} G3N502q +PERO2              =  0.750G3N400X + 0.250GAN502k + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 66777} G3N502q +PERO3              =  0.800G3N400X + 0.200GAN502k + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 66778} G3N502q +PERO5              =  0.650G3N400X + 0.350GAN502k + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 66779} G3N502q +PERO6              =  0.650G3N400X + 0.350GAN502k + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 66780} G3N502q +PERO9              =       G3N400X +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 66781} G3P501G +GHO2               =  0.800GPG501R + 0.200GPA501W + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 66782} G3P501G +GNO                =       GPN400a + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 66783} G3P501G +GNO2               =       GPP500p                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 66784} G3P501G +GNO3               =       GPN400a + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 66785} G3P501G +MEPERO             =  0.685GPN400a + 0.315GPA501W + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 66786} G3P501G +PERO1              =  0.800GPN400a + 0.200GPA501W + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 66787} G3P501G +PERO2              =  0.750GPN400a + 0.250GPA501W + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 66788} G3P501G +PERO3              =  0.800GPN400a + 0.200GPA501W + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 66789} G3P501G +PERO5              =  0.650GPN400a + 0.350GPA501W + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 66790} G3P501G +PERO6              =  0.650GPN400a + 0.350GPA501W + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 66791} G3P501G +PERO9              =       GPN400a +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 66792} G1P508i                     =       GCO     +      GND3005 +      GNO2    +      GCO      : ARR( 0.200E+15,  2436., 0.0);
+{ 66793} G1P508j                     =       GPN400a +      GCO     +      GHO2                    : ARR( 0.200E+15,  4861., 0.0);
+{ 66794} GPH504o                     =       G3H504s +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 66795} GPH504o +GHO                =       GPN502k +      GHO                                    : ARR( 0.504E-11,     0., 0.0);
+{ 66796} GPH504o +GHO                =       G3P501H                                               : ARR( 0.417E-11,     0., 0.0);
+{ 66797} GPH504o +GHO                =       G2P506I                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 66798} GPH504o +GNO3               =       G3P501H +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 66799} GPH504o+HV               =       G3H504s +      GNO2                                   :  0.100E+01*SUN;
+{ 66800} GPH504o+HV               =       G1P508d +      GHO                                    :  0.100E+01*SUN;
+{ 66801} GPH504o+HV               =       G1P508k +      GNO2                                   :  0.100E+01*SUN;
+{ 66802} GPH504o+HV               =       G1P508l +      GNO2                                   :  0.100E+01*SUN;
+{ 66803} GPH504o+HV               =       GPH400m +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 66804} GPH504o+HV               =       GPD3002 +      GND2000 +      GNO2    +      GHO      :  0.100E+01*SUN;
+{ 66805} G3P501H +GHO2               =  0.800GPG501S + 0.200GPA501U + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 66806} G3P501H +GNO                =       GPH400m + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 66807} G3P501H +GNO2               =       GPP500o                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 66808} G3P501H +GNO3               =       GPH400m + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 66809} G3P501H +MEPERO             =  0.685GPH400m + 0.315GPA501U + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 66810} G3P501H +PERO1              =  0.800GPH400m + 0.200GPA501U + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 66811} G3P501H +PERO2              =  0.750GPH400m + 0.250GPA501U + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 66812} G3P501H +PERO3              =  0.800GPH400m + 0.200GPA501U + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 66813} G3P501H +PERO5              =  0.650GPH400m + 0.350GPA501U + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 66814} G3P501H +PERO6              =  0.650GPH400m + 0.350GPA501U + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 66815} G3P501H +PERO9              =       GPH400m +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 66816} G2P506I +GNO                =       G1P508d +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 66817} G2P506I +GNO                =       GPN502j                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 66818} G2P506I +GHO2               =       GPH504o                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 66819} G2P506I +GNO3               =       G1P508d +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 66820} G2P506I +MEPERO             =  0.340G1P508d + 0.330GPN501k + 0.330GPN502k                 : ARR( 0.565E-13,  -845., 0.0);
+{ 66821} G2P506I +PERO1              =  0.460G1P508d + 0.270GPN501k + 0.270GPN502k                 : ARR( 0.434E-13,  -900., 0.0);
+{ 66822} G2P506I +PERO2              =  0.400G1P508d + 0.300GPN501k + 0.300GPN502k                 : ARR( 0.162E-13, -1400., 0.0);
+{ 66823} G2P506I +PERO3              =  0.460G1P508d + 0.270GPN501k + 0.270GPN502k                 : ARR( 0.488E-13, -1250., 0.0);
+{ 66824} G2P506I +PERO5              =  0.460G1P508d + 0.270GPN501k + 0.270GPN502k                 : ARR( 0.183E-11,   450., 0.0);
+{ 66825} G2P506I +PERO6              =  0.300G1P508d + 0.350GPN501k + 0.350GPN502k                 : ARR( 0.168E-13, -1300., 0.0);
+{ 66826} G2P506I +PERO9              =  0.650G1P508d + 0.350GPN502k                                : ARR( 0.100E-10,     0., 0.0);
+{ 66827} G1P508k                     =       GPD2000 +      GND3005 +      GHO                     : ARR( 0.200E+15,  4308., 0.0);
+{ 66828} G1P508l                     =       GPH400m +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 66829} GPG500U                     =       G3G500w +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 66830} GPG500U +GHO                =       GPG501R +      GHO2                                   : ARR( 0.130E-11,     0., 0.0);
+{ 66831} GPG500U +GHO                =       G3P500S                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 66832} GPG500U+HV               =       GPN400Q +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 66833} GPG500U+HV               =       G1P508m +      GNO2                                   :  0.100E+01*SUN;
+{ 66834} GPG500U+HV               =       G1P508n +      GNO2                                   :  0.100E+01*SUN;
+{ 66835} GPG500U+HV               =       G3G500w +      GNO2                                   :  0.100E+01*SUN;
+{ 66836} G1P508m                     =       GCO     +      GPN400Q +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 66837} G1P508n                     =       GGN3005 +      GPD2000 +      GHO2                    : ARR( 0.200E+15,  3099., 0.0);
+{ 66838} GPA500g                     =       G3A500b +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 66839} GPA500g +GHO                =       GPA501W +      GHO2                                   : ARR( 0.128E-11,     0., 0.0);
+{ 66840} GPA500g +GHO                =       G1P508O                                               : ARR( 0.214E-17,    85., 2.0);
+{ 66841} GPA500g +GHO                =       GPN400Q +      GNO2    +      GCO2                    : ARR( 0.529E-12,     0., 0.0);
+{ 66842} GPA500g+HV               =       G1P505b +      GNO2                                   :  0.100E+01*SUN;
+{ 66843} GPA500g+HV               =       G1P508o +      GNO2                                   :  0.100E+01*SUN;
+{ 66844} GPA500g+HV               =       G3A500b +      GNO2                                   :  0.100E+01*SUN;
+{ 66845} G1P508o                     =       GAN3006 +      GPD2000 +      GHO2                    : ARR( 0.200E+15,  3099., 0.0);
+{ 66846} GPP500L                     =       G3P500e +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 66847} GPP500L                     =       G3P500S +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 66848} GPP500L +GHO                =       GPP500p +      GHO2                                   : ARR( 0.129E-11,     0., 0.0);
+{ 66849} GPP500L +GHO                =       G1P508W                                               : ARR( 0.216E-17,    85., 2.0);
+{ 66850} GPP500L+HV               =       G3P500e +      GNO2                                   :  0.100E+01*SUN;
+{ 66851} GPP500L+HV               =       G1P508p +      GNO2                                   :  0.100E+01*SUN;
+{ 66852} GPP500L+HV               =       G1P505c +      GNO2                                   :  0.100E+01*SUN;
+{ 66853} GPP500L+HV               =       G3P500S +      GNO2                                   :  0.100E+01*SUN;
+{ 66854} G1P508p                     =       GPN3006 +      GPD2000 +      GHO2                    : ARR( 0.200E+15,  3099., 0.0);
+{ 66855} GPH504p                     =       G3H504F +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 66856} GPH504p +GHO                =       GPN502l +      GHO                                    : ARR( 0.983E-11,     0., 0.0);
+{ 66857} GPH504p +GHO                =       G2P5044                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 66858} GPH504p+HV               =       G1P505J +      GHO                                    :  0.100E+01*SUN;
+{ 66859} GPH504p+HV               =       G3H2000 +      GPN3006 +      GNO2                    :  0.100E+01*SUN;
+{ 66860} GPH504p+HV               =       G1P508L +      GNO2                                   :  0.100E+01*SUN;
+{ 66861} GPH504p+HV               =       G1P508q +      GNO2                                   :  0.100E+01*SUN;
+{ 66862} GPH504p+HV               =       G3H504F +      GNO2                                   :  0.100E+01*SUN;
+{ 66863} G1P508q                     =       GHN401A +      GCO     +      GNO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 66864} GPN502l                     =       G3N502Z +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 66865} GPN502l +GHO                =       G3P400B +      GCO                                    : ARR( 0.127E-10,     0., 0.0);
+{ 66866} GPN502l +GNO3               =       G3P400B +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 66867} GPN502l+HV               =       G3N502Z +      GNO2                                   :  0.100E+01*SUN;
+{ 66868} GPN502l+HV               =       G1P508r +      GNO2                                   :  0.100E+01*SUN;
+{ 66869} GPN502l+HV               =       G1P508s +      GNO2                                   :  0.100E+01*SUN;
+{ 66870} GPN502l+HV               =       G3P400B +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 66871} GPN502l+HV               =       GPN400Z +      GCO                                    :  0.100E+01*SUN;
+{ 66872} GPN502l+HV               =       GPN3004 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 66873} G1P508r                     =       GCO     +      GND400N +      GNO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 66874} G1P508s                     =       GPN3006 +      G3D2000                                : ARR( 0.200E+15,  2403., 0.0);
+{ 66875} GPG400D                     =       G3G400D +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 66876} GPG400D +GHO                =       G3P400B                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 66877} GPG400D+HV               =       GPN3006 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 66878} GPG400D+HV               =       G1P401Z +      GNO2                                   :  0.100E+01*SUN;
+{ 66879} GPG400D+HV               =       G1P401a +      GNO2                                   :  0.100E+01*SUN;
+{ 66880} GPG400D+HV               =       G3G400D +      GNO2                                   :  0.100E+01*SUN;
+{ 66881} G1P401Z                     =       GCO     +      GPN3006 +      GHO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 66882} G1P401a                     =       GGN3005 +      GCO     +      GNO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 66883} GPP4007                     =       G3P400B +      GNO2                                   : ARR( 0.400E+16, 12800., 0.0);
+{ 66884} GPP4007 +GHO                =       GPP4008 +      GNO2                                   : ARR( 0.287E-13,     0., 0.0);
+{ 66885} GPP4007+HV               =       G3P400B +      GNO2                                   :  0.200E+01*SUN;
+{ 66886} GPP4007+HV               =       G1P401B +      GNO2                                   :  0.200E+01*SUN;
+{ 66887} GPH504q                     =       G3H505G +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 66888} GPH504q +GHO                =       GPN502m +      GHO                                    : ARR( 0.984E-11,     0., 0.0);
+{ 66889} GPH504q +GHO                =       G2P5046                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 66890} GPH504q+HV               =       G1P505N +      GHO                                    :  0.100E+01*SUN;
+{ 66891} GPH504q+HV               =       G3H2000 +      GPD3002 +      GNO2                    :  0.100E+01*SUN;
+{ 66892} GPH504q+HV               =       G1P508N +      GNO2                                   :  0.100E+01*SUN;
+{ 66893} GPH504q+HV               =       G3H400n +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 66894} G3H505G +GHO2               =  0.800GGH505R + 0.200GAH504l + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 66895} G3H505G +GNO                =       G3H400n +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 66896} G3H505G +GNO2               =       GPH504q                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 66897} G3H505G +GNO3               =       G3H400n +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 66898} G3H505G +MEPERO             =  0.685G3H400n + 0.315GAH504l + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 66899} G3H505G +PERO1              =  0.800G3H400n + 0.200GAH504l + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 66900} G3H505G +PERO2              =  0.750G3H400n + 0.250GAH504l + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 66901} G3H505G +PERO3              =  0.800G3H400n + 0.200GAH504l + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 66902} G3H505G +PERO5              =  0.650G3H400n + 0.350GAH504l + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 66903} G3H505G +PERO6              =  0.650G3H400n + 0.350GAH504l + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 66904} G3H505G +PERO9              =       G3H400n +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 66905} GPN502m                     =       G3N502r +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 66906} GPN502m +GHO                =       G3P400C +      GCO                                    : ARR( 0.127E-10,     0., 0.0);
+{ 66907} GPN502m +GNO3               =       G3P400C +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 66908} GPN502m+HV               =       G3N400Y +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 66909} GPN502m+HV               =       G1P508t +      GNO2                                   :  0.100E+01*SUN;
+{ 66910} GPN502m+HV               =       G3P400C +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 66911} GPN502m+HV               =       GPN400a +      GCO                                    :  0.100E+01*SUN;
+{ 66912} GPN502m+HV               =       GPN3005 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 66913} G3N502r +GHO2               =  0.800GGN502r + 0.200GAN502m + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 66914} G3N502r +GNO                =       G3N400Y +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 66915} G3N502r +GNO2               =       GPN502m                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 66916} G3N502r +GNO3               =       G3N400Y +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 66917} G3N502r +MEPERO             =  0.685G3N400Y + 0.315GAN502m + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 66918} G3N502r +PERO1              =  0.800G3N400Y + 0.200GAN502m + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 66919} G3N502r +PERO2              =  0.750G3N400Y + 0.250GAN502m + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 66920} G3N502r +PERO3              =  0.800G3N400Y + 0.200GAN502m + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 66921} G3N502r +PERO5              =  0.650G3N400Y + 0.350GAN502m + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 66922} G3N502r +PERO6              =  0.650G3N400Y + 0.350GAN502m + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 66923} G3N502r +PERO9              =       G3N400Y +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 66924} G1P508t                     =       GCO     +      GDD3002 +      GNO2    +      GCO      : ARR( 0.200E+15,  4880., 0.0);
+{ 66925} G1P508t                     =       GPD3002 +      G3D2000                                : ARR( 0.200E+15,  4847., 0.0);
+{ 66926} GPG400E                     =       G3G400M +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 66927} GPG400E +GHO                =       G3P400C                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 66928} GPG400E+HV               =       GPD3002 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 66929} GPG400E+HV               =       G1P401G +      GNO2                                   :  0.100E+01*SUN;
+{ 66930} GPG400E+HV               =       G3G3001 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 66931} G3G400M +GHO2               =  0.800GGG400D + 0.200GAG400E + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 66932} G3G400M +GNO                =       G3G3001 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 66933} G3G400M +GNO2               =       GPG400E                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 66934} G3G400M +GNO3               =       G3G3001 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 66935} G3G400M +MEPERO             =  0.685G3G3001 + 0.315GAG400E + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 66936} G3G400M +PERO1              =  0.800G3G3001 + 0.200GAG400E + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 66937} G3G400M +PERO2              =  0.750G3G3001 + 0.250GAG400E + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 66938} G3G400M +PERO3              =  0.800G3G3001 + 0.200GAG400E + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 66939} G3G400M +PERO5              =  0.650G3G3001 + 0.350GAG400E + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 66940} G3G400M +PERO6              =  0.650G3G3001 + 0.350GAG400E + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 66941} G3G400M +PERO9              =       G3G3001 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 66942} GPA400G                     =       G3A400M +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 66943} GPA400G +GHO                =       GPA400K +      GNO2                                   : ARR( 0.324E-13,     0., 0.0);
+{ 66944} GPA400G +GHO                =       GPD3002 +      GNO2    +      GCO2                    : ARR( 0.520E-12,     0., 0.0);
+{ 66945} GPA400G+HV               =       G1P401H +      GNO2                                   :  0.100E+01*SUN;
+{ 66946} GPA400G+HV               =       G3A3001 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 66947} G3A400M +GHO2               =  0.800GAG400L + 0.200GAA4008 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 66948} G3A400M +GNO                =       G3A3001 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 66949} G3A400M +GNO2               =       GPA400G                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 66950} G3A400M +GNO3               =       G3A3001 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 66951} G3A400M +MEPERO             =  0.685G3A3001 + 0.315GAA4008 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 66952} G3A400M +PERO1              =  0.800G3A3001 + 0.200GAA4008 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 66953} G3A400M +PERO2              =  0.750G3A3001 + 0.250GAA4008 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 66954} G3A400M +PERO3              =  0.800G3A3001 + 0.200GAA4008 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 66955} G3A400M +PERO5              =  0.650G3A3001 + 0.350GAA4008 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 66956} G3A400M +PERO6              =  0.650G3A3001 + 0.350GAA4008 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 66957} G3A400M +PERO9              =       G3A3001 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 66958} GPP4008                     =       G3P400M +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 66959} GPP4008                     =       G3P400C +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 66960} GPP4008 +GHO                =       GPP400C +      GNO2                                   : ARR( 0.438E-13,     0., 0.0);
+{ 66961} GPP4008+HV               =       G3P3001 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 66962} GPP4008+HV               =       G1P401I +      GNO2                                   :  0.100E+01*SUN;
+{ 66963} GPP4008+HV               =       G3P400C +      GNO2                                   :  0.100E+01*SUN;
+{ 66964} G3P400M +GHO2               =  0.800GPG400L + 0.200GPA400E + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 66965} G3P400M +GNO                =       G3P3001 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 66966} G3P400M +GNO2               =       GPP4008                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 66967} G3P400M +GNO3               =       G3P3001 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 66968} G3P400M +MEPERO             =  0.685G3P3001 + 0.315GPA400E + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 66969} G3P400M +PERO1              =  0.800G3P3001 + 0.200GPA400E + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 66970} G3P400M +PERO2              =  0.750G3P3001 + 0.250GPA400E + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 66971} G3P400M +PERO3              =  0.800G3P3001 + 0.200GPA400E + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 66972} G3P400M +PERO5              =  0.650G3P3001 + 0.350GPA400E + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 66973} G3P400M +PERO6              =  0.650G3P3001 + 0.350GPA400E + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 66974} G3P400M +PERO9              =       G3P3001 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 66975} GPA400H                     =       G3A400J +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 66976} GPA400H +GHO                =       GPA400G +      GHO                                    : ARR( 0.506E-11,     0., 0.0);
+{ 66977} GPA400H +GHO                =       G2P4012                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 66978} GPA400H +GHO                =       GPH3007 +      GNO2    +      GCO2                    : ARR( 0.523E-12,     0., 0.0);
+{ 66979} GPA400H+HV               =       G1P401b +      GNO2                                   :  0.100E+01*SUN;
+{ 66980} GPA400H+HV               =       G1P401A +      GHO                                    :  0.100E+01*SUN;
+{ 66981} GPA400H+HV               =       G3A400J +      GNO2                                   :  0.100E+01*SUN;
+{ 66982} G1P401b                     =       GCO     +      GPH3007 +      GHO                     : ARR( 0.200E+15,  4342., 0.0);
+{ 66983} GPP4009                     =       G3P400G +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 66984} GPP4009                     =       G3P400J +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 66985} GPP4009 +GHO                =       GPP4008 +      GHO                                    : ARR( 0.507E-11,     0., 0.0);
+{ 66986} GPP4009 +GHO                =       G2P4013                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 66987} GPP4009+HV               =       G3P400G +      GNO2                                   :  0.100E+01*SUN;
+{ 66988} GPP4009+HV               =       G1P401c +      GNO2                                   :  0.100E+01*SUN;
+{ 66989} GPP4009+HV               =       G1P401B +      GHO                                    :  0.100E+01*SUN;
+{ 66990} GPP4009+HV               =       G3P400J +      GNO2                                   :  0.100E+01*SUN;
+{ 66991} G1P401c                     =       GPH3007 +      GCO     +      GNO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 66992} GPG500W                     =       G3G500b +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 66993} GPG500W +GHO                =       G3P500T                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 66994} GPG500W+HV               =       G2P400d +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 66995} GPG500W+HV               =       G1P506I +      GNO2                                   :  0.100E+01*SUN;
+{ 66996} GPG500W+HV               =       G1P508u +      GNO2                                   :  0.100E+01*SUN;
+{ 66997} GPG500W+HV               =       G3G500b +      GNO2                                   :  0.100E+01*SUN;
+{ 66998} G1P508u                     =       GGN400I +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 66999} GPH504r                     =       G3H504D +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 67000} GPH504r +GHO                =       GPH503B +      GHO                                    : ARR( 0.169E-10,     0., 0.0);
+{ 67001} GPH504r +GHO                =       GPH502u +      GHO                                    : ARR( 0.864E-11,     0., 0.0);
+{ 67002} GPH504r +GHO                =       G2P5047                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 67003} GPH504r +GHO                =       G2P506J                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 67004} GPH504r+HV               =       G1P505U +      GHO                                    :  0.100E+01*SUN;
+{ 67005} GPH504r+HV               =       G1P508v +      GHO                                    :  0.100E+01*SUN;
+{ 67006} GPH504r+HV               =       G1P508w +      GNO2                                   :  0.100E+01*SUN;
+{ 67007} GPH504r+HV               =       G3H504D +      GNO2                                   :  0.100E+01*SUN;
+{ 67008} G2P506J +GNO                =       G1P508v +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 67009} G2P506J +GNO                =       GPH505Y                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 67010} G2P506J +GHO2               =       GPH504r                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 67011} G2P506J +GNO3               =       G1P508v +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 67012} G2P506J +MEPERO             =  0.340G1P508v + 0.330GPH500m + 0.330GPH502u                 : ARR( 0.565E-13,  -845., 0.0);
+{ 67013} G2P506J +PERO1              =  0.460G1P508v + 0.270GPH500m + 0.270GPH502u                 : ARR( 0.434E-13,  -900., 0.0);
+{ 67014} G2P506J +PERO2              =  0.400G1P508v + 0.300GPH500m + 0.300GPH502u                 : ARR( 0.162E-13, -1400., 0.0);
+{ 67015} G2P506J +PERO3              =  0.460G1P508v + 0.270GPH500m + 0.270GPH502u                 : ARR( 0.488E-13, -1250., 0.0);
+{ 67016} G2P506J +PERO5              =  0.460G1P508v + 0.270GPH500m + 0.270GPH502u                 : ARR( 0.183E-11,   450., 0.0);
+{ 67017} G2P506J +PERO6              =  0.300G1P508v + 0.350GPH500m + 0.350GPH502u                 : ARR( 0.168E-13, -1300., 0.0);
+{ 67018} G2P506J +PERO9              =  0.650G1P508v + 0.350GPH502u                                : ARR( 0.100E-10,     0., 0.0);
+{ 67019} G1P508v                     =       GCH2O   +      GPN400Q +      GHO                     : ARR( 0.200E+15,  7395., 0.0);
+{ 67020} G1P508v                     =       GHD2000 +      GPD3001 +      GNO2                    : ARR( 0.200E+15,  6367., 0.0);
+{ 67021} G1P508w                     =       GHD2000 +      GPD3001 +      GHO                     : ARR( 0.200E+15,  3953., 0.0);
+{ 67022} G1P508w                     =       GHH3005 +      GPD2000 +      GHO2                    : ARR( 0.200E+15,  3929., 0.0);
+{ 67023} GPG500X                     =       G3G501D +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 67024} GPG500X +GHO                =       G3P500U                                               : ARR( 0.203E-11,  -190., 0.0);
+{ 67025} GPG500X+HV               =       G2P400e +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 67026} GPG500X+HV               =       G1P5082 +      GNO2                                   :  0.100E+01*SUN;
+{ 67027} GPG500X+HV               =       G3G4003 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 67028} G3G501D +GHO2               =  0.800GGG500Q + 0.200GAG500Y + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 67029} G3G501D +GNO                =       G3G4003 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 67030} G3G501D +GNO2               =       GPG500X                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 67031} G3G501D +GNO3               =       G3G4003 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 67032} G3G501D +MEPERO             =  0.685G3G4003 + 0.315GAG500Y + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 67033} G3G501D +PERO1              =  0.800G3G4003 + 0.200GAG500Y + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 67034} G3G501D +PERO2              =  0.750G3G4003 + 0.250GAG500Y + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 67035} G3G501D +PERO3              =  0.800G3G4003 + 0.200GAG500Y + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 67036} G3G501D +PERO5              =  0.650G3G4003 + 0.350GAG500Y + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 67037} G3G501D +PERO6              =  0.650G3G4003 + 0.350GAG500Y + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 67038} G3G501D +PERO9              =       G3G4003 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 67039} GPH504s                     =       G3H504r +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 67040} GPH504s +GHO                =       GPN502l +      GHO                                    : ARR( 0.504E-11,     0., 0.0);
+{ 67041} GPH504s +GHO                =       G3P501I                                               : ARR( 0.208E-10,     0., 0.0);
+{ 67042} GPH504s +GHO                =       G2P506K                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 67043} GPH504s +GNO3               =       G3P501I +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 67044} GPH504s+HV               =       G3H504r +      GNO2                                   :  0.100E+01*SUN;
+{ 67045} GPH504s+HV               =       G1P508x +      GNO2                                   :  0.100E+01*SUN;
+{ 67046} GPH504s+HV               =       G1P508y +      GNO2                                   :  0.100E+01*SUN;
+{ 67047} GPH504s+HV               =       G1P508f +      GHO                                    :  0.100E+01*SUN;
+{ 67048} GPH504s+HV               =       GPN400Z +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 67049} G3P501I +GHO2               =  0.800GPG501T + 0.200GPA501a + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 67050} G3P501I +GNO                =       GPN400Z +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 67051} G3P501I +GNO2               =       GPP500o                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 67052} G3P501I +GNO3               =       GPN400Z +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 67053} G3P501I +MEPERO             =  0.685GPN400Z + 0.315GPA501a + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 67054} G3P501I +PERO1              =  0.800GPN400Z + 0.200GPA501a + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 67055} G3P501I +PERO2              =  0.750GPN400Z + 0.250GPA501a + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 67056} G3P501I +PERO3              =  0.800GPN400Z + 0.200GPA501a + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 67057} G3P501I +PERO5              =  0.650GPN400Z + 0.350GPA501a + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 67058} G3P501I +PERO6              =  0.650GPN400Z + 0.350GPA501a + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 67059} G3P501I +PERO9              =       GPN400Z +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 67060} G2P506K +GNO                =       G1P508f +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 67061} G2P506K +GNO                =       GPN502j                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 67062} G2P506K +GHO2               =       GPH504s                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 67063} G2P506K +GNO3               =       G1P508f +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 67064} G2P506K +MEPERO             =  0.340G1P508f + 0.330GPN502G + 0.330GPN502l                 : ARR( 0.565E-13,  -845., 0.0);
+{ 67065} G2P506K +PERO1              =  0.460G1P508f + 0.270GPN502G + 0.270GPN502l                 : ARR( 0.434E-13,  -900., 0.0);
+{ 67066} G2P506K +PERO2              =  0.400G1P508f + 0.300GPN502G + 0.300GPN502l                 : ARR( 0.162E-13, -1400., 0.0);
+{ 67067} G2P506K +PERO3              =  0.460G1P508f + 0.270GPN502G + 0.270GPN502l                 : ARR( 0.488E-13, -1250., 0.0);
+{ 67068} G2P506K +PERO5              =  0.460G1P508f + 0.270GPN502G + 0.270GPN502l                 : ARR( 0.183E-11,   450., 0.0);
+{ 67069} G2P506K +PERO6              =  0.300G1P508f + 0.350GPN502G + 0.350GPN502l                 : ARR( 0.168E-13, -1300., 0.0);
+{ 67070} G2P506K +PERO9              =  0.650G1P508f + 0.350GPN502l                                : ARR( 0.100E-10,     0., 0.0);
+{ 67071} G1P508x                     =       GCO     +      GHN400y +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 67072} G1P508y                     =       GPN3006 +      GDD2000 +      GHO                     : ARR( 0.200E+15,  4086., 0.0);
+{ 67073} GPG500Y                     =       G3G500c +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 67074} GPG500Y +GHO                =       GPG500X +      GHO                                    : ARR( 0.515E-11,     0., 0.0);
+{ 67075} GPG500Y +GHO                =       G3P500W                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 67076} GPG500Y +GHO                =       G2P506L                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 67077} GPG500Y+HV               =       G2P4014 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 67078} GPG500Y+HV               =       G1P508z +      GNO2                                   :  0.100E+01*SUN;
+{ 67079} GPG500Y+HV               =       G1P508u +      GHO                                    :  0.100E+01*SUN;
+{ 67080} GPG500Y+HV               =       G3G500c +      GNO2                                   :  0.100E+01*SUN;
+{ 67081} G2P506L +GNO                =       G1P508u +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 67082} G2P506L +GNO                =       GPG500W                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 67083} G2P506L +GHO2               =       GPG500Y                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 67084} G2P506L +GNO3               =       G1P508u +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 67085} G2P506L +MEPERO             =  0.340G1P508u + 0.330GPG5004 + 0.330GPG500X                 : ARR( 0.565E-13,  -845., 0.0);
+{ 67086} G2P506L +PERO1              =  0.460G1P508u + 0.270GPG5004 + 0.270GPG500X                 : ARR( 0.434E-13,  -900., 0.0);
+{ 67087} G2P506L +PERO2              =  0.400G1P508u + 0.300GPG5004 + 0.300GPG500X                 : ARR( 0.162E-13, -1400., 0.0);
+{ 67088} G2P506L +PERO3              =  0.460G1P508u + 0.270GPG5004 + 0.270GPG500X                 : ARR( 0.488E-13, -1250., 0.0);
+{ 67089} G2P506L +PERO5              =  0.460G1P508u + 0.270GPG5004 + 0.270GPG500X                 : ARR( 0.183E-11,   450., 0.0);
+{ 67090} G2P506L +PERO6              =  0.300G1P508u + 0.350GPG5004 + 0.350GPG500X                 : ARR( 0.168E-13, -1300., 0.0);
+{ 67091} G2P506L +PERO9              =  0.650G1P508u + 0.350GPG500X                                : ARR( 0.100E-10,     0., 0.0);
+{ 67092} G1P508z                     =       GGD3000 +      GPD2000 +      GHO                     : ARR( 0.200E+15,  4500., 0.0);
+{ 67093} GPH504t                     =       G3H505H +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 67094} GPH504t +GHO                =       GPN502m +      GHO                                    : ARR( 0.506E-11,     0., 0.0);
+{ 67095} GPH504t +GHO                =       G3P501J                                               : ARR( 0.209E-10,     0., 0.0);
+{ 67096} GPH504t +GHO                =       G2P506M                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 67097} GPH504t +GNO3               =       G3P501J +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 67098} GPH504t+HV               =       G3H400g +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 67099} GPH504t+HV               =       G1P5091 +      GNO2                                   :  0.100E+01*SUN;
+{ 67100} GPH504t+HV               =       G1P508j +      GHO                                    :  0.100E+01*SUN;
+{ 67101} GPH504t+HV               =       GPN400a +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 67102} G3H505H +GHO2               =  0.800GGH505H + 0.200GAH504p + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 67103} G3H505H +GNO                =       G3H400g +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 67104} G3H505H +GNO2               =       GPH504t                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 67105} G3H505H +GNO3               =       G3H400g +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 67106} G3H505H +MEPERO             =  0.685G3H400g + 0.315GAH504p + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 67107} G3H505H +PERO1              =  0.800G3H400g + 0.200GAH504p + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 67108} G3H505H +PERO2              =  0.750G3H400g + 0.250GAH504p + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 67109} G3H505H +PERO3              =  0.800G3H400g + 0.200GAH504p + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 67110} G3H505H +PERO5              =  0.650G3H400g + 0.350GAH504p + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 67111} G3H505H +PERO6              =  0.650G3H400g + 0.350GAH504p + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 67112} G3H505H +PERO9              =       G3H400g +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 67113} G3P501J +GHO2               =  0.800GPG501U + 0.200GPA501b + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 67114} G3P501J +GNO                =       GPN400a +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 67115} G3P501J +GNO2               =       GPP500q                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 67116} G3P501J +GNO3               =       GPN400a +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 67117} G3P501J +MEPERO             =  0.685GPN400a + 0.315GPA501b + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 67118} G3P501J +PERO1              =  0.800GPN400a + 0.200GPA501b + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 67119} G3P501J +PERO2              =  0.750GPN400a + 0.250GPA501b + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 67120} G3P501J +PERO3              =  0.800GPN400a + 0.200GPA501b + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 67121} G3P501J +PERO5              =  0.650GPN400a + 0.350GPA501b + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 67122} G3P501J +PERO6              =  0.650GPN400a + 0.350GPA501b + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 67123} G3P501J +PERO9              =       GPN400a +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 67124} G2P506M +GNO                =       G1P508j +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 67125} G2P506M +GNO                =       GPN502k                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 67126} G2P506M +GHO2               =       GPH504t                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 67127} G2P506M +GNO3               =       G1P508j +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 67128} G2P506M +MEPERO             =  0.340G1P508j + 0.330GPN502H + 0.330GPN502m                 : ARR( 0.565E-13,  -845., 0.0);
+{ 67129} G2P506M +PERO1              =  0.460G1P508j + 0.270GPN502H + 0.270GPN502m                 : ARR( 0.434E-13,  -900., 0.0);
+{ 67130} G2P506M +PERO2              =  0.400G1P508j + 0.300GPN502H + 0.300GPN502m                 : ARR( 0.162E-13, -1400., 0.0);
+{ 67131} G2P506M +PERO3              =  0.460G1P508j + 0.270GPN502H + 0.270GPN502m                 : ARR( 0.488E-13, -1250., 0.0);
+{ 67132} G2P506M +PERO5              =  0.460G1P508j + 0.270GPN502H + 0.270GPN502m                 : ARR( 0.183E-11,   450., 0.0);
+{ 67133} G2P506M +PERO6              =  0.300G1P508j + 0.350GPN502H + 0.350GPN502m                 : ARR( 0.168E-13, -1300., 0.0);
+{ 67134} G2P506M +PERO9              =  0.650G1P508j + 0.350GPN502m                                : ARR( 0.100E-10,     0., 0.0);
+{ 67135} G1P5091                     =       GCO     +      GHD3004 +      GNO2    +      GCO      : ARR( 0.200E+15,  2436., 0.0);
+{ 67136} GPA500h                     =       G3A5018 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 67137} GPA500h +GHO                =       GPA500i +      GHO                                    : ARR( 0.382E-11,     0., 0.0);
+{ 67138} GPA500h +GHO                =       GPA501b +      GHO2                                   : ARR( 0.129E-11,     0., 0.0);
+{ 67139} GPA500h +GHO                =       G2P5049                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 67140} GPA500h +GHO                =       GPN400Q +      GHO     +      GCO2                    : ARR( 0.535E-12,     0., 0.0);
+{ 67141} GPA500h+HV               =       G1P505b +      GHO                                    :  0.100E+01*SUN;
+{ 67142} GPA500h+HV               =       G1P5092 +      GNO2                                   :  0.100E+01*SUN;
+{ 67143} GPA500h+HV               =       G3A5018 +      GNO2                                   :  0.100E+01*SUN;
+{ 67144} G1P5092                     =       GAH3007 +      GPD2000 +      GHO2                    : ARR( 0.200E+15,  3099., 0.0);
+{ 67145} GPA500i                     =       G3A501F +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 67146} GPA500i +GHO                =       GPA501Z +      GHO2                                   : ARR( 0.130E-11,     0., 0.0);
+{ 67147} GPA500i +GHO                =       G1P508P                                               : ARR( 0.218E-17,    85., 2.0);
+{ 67148} GPA500i +GHO                =       G3P4008 +      GCO2                                   : ARR( 0.539E-12,     0., 0.0);
+{ 67149} GPA500i+HV               =       GPN400Q +      GCO2                                   :  0.100E+01*SUN;
+{ 67150} GPA500i+HV               =       G1P5093 +      GNO2                                   :  0.100E+01*SUN;
+{ 67151} GPA500i+HV               =       G3A501F +      GNO2                                   :  0.100E+01*SUN;
+{ 67152} G1P5093                     =       GCO     +      GPD3001 +      GHO     +      GCO      : ARR( 0.200E+15,  2436., 0.0);
+{ 67153} GPP500M                     =       G3P5016 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 67154} GPP500M                     =       G3P500i +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 67155} GPP500M +GHO                =       GPP500q +      GHO2                                   : ARR( 0.129E-11,     0., 0.0);
+{ 67156} GPP500M +GHO                =       GPP500N +      GHO                                    : ARR( 0.516E-11,     0., 0.0);
+{ 67157} GPP500M +GHO                =       G2P504A                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 67158} GPP500M+HV               =       G3P5016 +      GNO2                                   :  0.100E+01*SUN;
+{ 67159} GPP500M+HV               =       G1P5094 +      GNO2                                   :  0.100E+01*SUN;
+{ 67160} GPP500M+HV               =       G1P505c +      GHO                                    :  0.100E+01*SUN;
+{ 67161} GPP500M+HV               =       G3P500i +      GNO2                                   :  0.100E+01*SUN;
+{ 67162} G1P5094                     =       GPH3007 +      GPD2000 +      GHO2                    : ARR( 0.200E+15,  3099., 0.0);
+{ 67163} GPP500N                     =       G3P500f +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 67164} GPP500N                     =       G3P501K +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 67165} GPP500N +GHO                =       GPP500r +      GHO2                                   : ARR( 0.132E-11,     0., 0.0);
+{ 67166} GPP500N +GHO                =       G1P508Y                                               : ARR( 0.221E-17,    85., 2.0);
+{ 67167} GPP500N+HV               =       G3P500f +      GNO2                                   :  0.100E+01*SUN;
+{ 67168} GPP500N+HV               =       G1P5095 +      GNO2                                   :  0.100E+01*SUN;
+{ 67169} GPP500N+HV               =       G3P4008 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 67170} G3P501K +GHO2               =  0.800GPG500w + 0.200GPA500i + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 67171} G3P501K +GNO                =       G3P4008 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 67172} G3P501K +GNO2               =       GPP500N                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 67173} G3P501K +GNO3               =       G3P4008 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 67174} G3P501K +MEPERO             =  0.685G3P4008 + 0.315GPA500i + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 67175} G3P501K +PERO1              =  0.800G3P4008 + 0.200GPA500i + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 67176} G3P501K +PERO2              =  0.750G3P4008 + 0.250GPA500i + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 67177} G3P501K +PERO3              =  0.800G3P4008 + 0.200GPA500i + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 67178} G3P501K +PERO5              =  0.650G3P4008 + 0.350GPA500i + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 67179} G3P501K +PERO6              =  0.650G3P4008 + 0.350GPA500i + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 67180} G3P501K +PERO9              =       G3P4008 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 67181} G1P5095                     =       GPD3001 +      GCO     +      GNO2    +      GCO      : ARR( 0.200E+15,  2436., 0.0);
+{ 67182} GGH504e +GHO                =       GGH503t +      GHO                                    : ARR( 0.185E-10,     0., 0.0);
+{ 67183} GGH504e +GHO                =       GGH504I +      GHO                                    : ARR( 0.474E-10,     0., 0.0);
+{ 67184} GGH504e +GHO                =       GGH505Q +      GHO2                                   : ARR( 0.118E-10,     0., 0.0);
+{ 67185} GGH504e +GHO                =       GGH504g +      GHO2                                   : ARR( 0.722E-11,     0., 0.0);
+{ 67186} GGH504e+HV               =       G1G5047 +      GHO                                    :  0.100E+01*SUN;
+{ 67187} GGH504e+HV               =       G1G507A +      GHO                                    :  0.100E+01*SUN;
+{ 67188} GGH504e+HV               =       GHH400d +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 67189} GGH504f +GHO                =       GGN502i +      GHO                                    : ARR( 0.336E-11,     0., 0.0);
+{ 67190} GGH504f +GHO                =       GGH505X +      GHO2                                   : ARR( 0.131E-11,     0., 0.0);
+{ 67191} GGH504f +GHO                =       G2G504z                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 67192} GGH504f +GHO                =       G3H505I                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 67193} GGH504f+HV               =       G1G505J +      GHO                                    :  0.100E+01*SUN;
+{ 67194} GGH504f+HV               =       G1G5048 +      GNO2                                   :  0.100E+01*SUN;
+{ 67195} GGH504f+HV               =       GAH400g +      GCO2                                   :  0.100E+01*SUN;
+{ 67196} G2G504z +GNO                =       G1G505J +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 67197} G2G504z +GNO                =       GGN5027                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 67198} G2G504z +GHO2               =       GGH504f                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 67199} G2G504z +GNO3               =       G1G505J +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 67200} G2G504z +MEPERO             =  0.480G1G505J + 0.260GGN501g + 0.260GGN502i                 : ARR( 0.164E-12,  -795., 0.0);
+{ 67201} G2G504z +PERO1              =  0.600G1G505J + 0.200GGN501g + 0.200GGN502i                 : ARR( 0.126E-12,  -850., 0.0);
+{ 67202} G2G504z +PERO2              =  0.560G1G505J + 0.220GGN501g + 0.220GGN502i                 : ARR( 0.471E-13, -1350., 0.0);
+{ 67203} G2G504z +PERO3              =  0.600G1G505J + 0.200GGN501g + 0.200GGN502i                 : ARR( 0.142E-12, -1200., 0.0);
+{ 67204} G2G504z +PERO5              =  0.600G1G505J + 0.200GGN501g + 0.200GGN502i                 : ARR( 0.533E-11,   500., 0.0);
+{ 67205} G2G504z +PERO6              =  0.460G1G505J + 0.270GGN501g + 0.270GGN502i                 : ARR( 0.488E-13, -1250., 0.0);
+{ 67206} G2G504z +PERO9              =  0.800G1G505J + 0.200GGN502i                                : ARR( 0.100E-10,     0., 0.0);
+{ 67207} G3H505I +GHO2               =  0.800GGH504f + 0.200GAH5055 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 67208} G3H505I +GNO                =       G3H400f +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 67209} G3H505I +GNO2               =       GPH504v                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 67210} G3H505I +GNO3               =       G3H400f +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 67211} G3H505I +MEPERO             =  0.685G3H400f + 0.315GAH5055 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 67212} G3H505I +PERO1              =  0.800G3H400f + 0.200GAH5055 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 67213} G3H505I +PERO2              =  0.750G3H400f + 0.250GAH5055 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 67214} G3H505I +PERO3              =  0.800G3H400f + 0.200GAH5055 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 67215} G3H505I +PERO5              =  0.650G3H400f + 0.350GAH5055 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 67216} G3H505I +PERO6              =  0.650G3H400f + 0.350GAH5055 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 67217} G3H505I +PERO9              =       G3H400f +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 67218} GGH504g +GHO                =       GGH504h +      GHO                                    : ARR( 0.180E-10,     0., 0.0);
+{ 67219} GGH504g +GHO                =       GGH504d +      GHO                                    : ARR( 0.146E-09,     0., 0.0);
+{ 67220} GGH504g+HV               =       G1G505K +      GHO                                    :  0.100E+01*SUN;
+{ 67221} GGH504g+HV               =       G1G5048 +      GHO                                    :  0.100E+01*SUN;
+{ 67222} GGH504g+HV               =       GAH400t +      GCO2                                   :  0.100E+01*SUN;
+{ 67223} GGN502i +GHO                =       GGN502q +      GHO2                                   : ARR( 0.131E-11,     0., 0.0);
+{ 67224} GGN502i +GHO                =       G3G501E                                               : ARR( 0.432E-11,     0., 0.0);
+{ 67225} GGN502i +GHO                =       G3N502s                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 67226} GGN502i +GNO3               =       G3G501E +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 67227} GGN502i+HV               =       GAN400a +      GCO2                                   :  0.100E+01*SUN;
+{ 67228} GGN502i+HV               =       G1G5049 +      GNO2                                   :  0.100E+01*SUN;
+{ 67229} GGN502i+HV               =       GGD4003 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 67230} G3G501E +GHO2               =  0.800GGG500m + 0.200GAG501Y + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 67231} G3G501E +GNO                =       GGD4003 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 67232} G3G501E +GNO2               =       GPG501W                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 67233} G3G501E +GNO3               =       GGD4003 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 67234} G3G501E +MEPERO             =  0.685GGD4003 + 0.315GAG501Y + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 67235} G3G501E +PERO1              =  0.800GGD4003 + 0.200GAG501Y + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 67236} G3G501E +PERO2              =  0.750GGD4003 + 0.250GAG501Y + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 67237} G3G501E +PERO3              =  0.800GGD4003 + 0.200GAG501Y + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 67238} G3G501E +PERO5              =  0.650GGD4003 + 0.350GAG501Y + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 67239} G3G501E +PERO6              =  0.650GGD4003 + 0.350GAG501Y + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 67240} G3G501E +PERO9              =       GGD4003 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 67241} G3N502s +GHO2               =  0.800GGN502i + 0.200GAN502r + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 67242} G3N502s +GNO                =       G3N400T +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 67243} G3N502s +GNO2               =       GPN502o                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 67244} G3N502s +GNO3               =       G3N400T +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 67245} G3N502s +MEPERO             =  0.685G3N400T + 0.315GAN502r + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 67246} G3N502s +PERO1              =  0.800G3N400T + 0.200GAN502r + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 67247} G3N502s +PERO2              =  0.750G3N400T + 0.250GAN502r + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 67248} G3N502s +PERO3              =  0.800G3N400T + 0.200GAN502r + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 67249} G3N502s +PERO5              =  0.650G3N400T + 0.350GAN502r + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 67250} G3N502s +PERO6              =  0.650G3N400T + 0.350GAN502r + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 67251} G3N502s +PERO9              =       G3N400T +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 67252} GGH504h +GHO                =       GGH505Y +      GHO2                                   : ARR( 0.211E-10,     0., 0.0);
+{ 67253} GGH504h +GHO                =       GGD500N +      GHO                                    : ARR( 0.845E-10,     0., 0.0);
+{ 67254} GGH504h +GHO                =       G3G501F                                               : ARR( 0.220E-10,     0., 0.0);
+{ 67255} GGH504h +GNO3               =       G3G501F +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 67256} GGH504h+HV               =       GAH400o +      GCO2                                   :  0.100E+01*SUN;
+{ 67257} GGH504h+HV               =       G1G5049 +      GHO                                    :  0.100E+01*SUN;
+{ 67258} GGH504h+HV               =       GGD4003 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 67259} G3G501F +GHO2               =  0.800GGG500n + 0.200GAG501Z + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 67260} G3G501F +GNO                =       GGD4003 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 67261} G3G501F +GNO2               =       GPG501X                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 67262} G3G501F +GNO3               =       GGD4003 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 67263} G3G501F +MEPERO             =  0.685GGD4003 + 0.315GAG501Z + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 67264} G3G501F +PERO1              =  0.800GGD4003 + 0.200GAG501Z + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 67265} G3G501F +PERO2              =  0.750GGD4003 + 0.250GAG501Z + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 67266} G3G501F +PERO3              =  0.800GGD4003 + 0.200GAG501Z + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 67267} G3G501F +PERO5              =  0.650GGD4003 + 0.350GAG501Z + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 67268} G3G501F +PERO6              =  0.650GGD4003 + 0.350GAG501Z + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 67269} G3G501F +PERO9              =       GGD4003 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 67270} GGD500N +GHO                =       GGD500O +      GHO2                                   : ARR( 0.386E-11,     0., 0.0);
+{ 67271} GGD500N +GHO                =       G3G4004 +      GCO                                    : ARR( 0.128E-10,     0., 0.0);
+{ 67272} GGD500N +GHO                =       G3D500N                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 67273} GGD500N +GNO3               =       G3G4004 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 67274} GGD500N+HV               =       GAD4006 +      GCO2                                   :  0.100E+01*SUN;
+{ 67275} GGD500N+HV               =       G3G4004 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 67276} GGD500N+HV               =       GGD4003 +      GCO                                    :  0.100E+01*SUN;
+{ 67277} GGD500N+HV               =       GGK3001 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 67278} G3D500N +GHO2               =  0.800GGD500N + 0.200GAD500Q + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 67279} G3D500N +GNO                =       G3D4006 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 67280} G3D500N +GNO2               =       GPD500N                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 67281} G3D500N +GNO3               =       G3D4006 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 67282} G3D500N +MEPERO             =  0.685G3D4006 + 0.315GAD500Q + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 67283} G3D500N +PERO1              =  0.800G3D4006 + 0.200GAD500Q + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 67284} G3D500N +PERO2              =  0.750G3D4006 + 0.250GAD500Q + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 67285} G3D500N +PERO3              =  0.800G3D4006 + 0.200GAD500Q + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 67286} G3D500N +PERO5              =  0.650G3D4006 + 0.350GAD500Q + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 67287} G3D500N +PERO6              =  0.650G3D4006 + 0.350GAD500Q + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 67288} G3D500N +PERO9              =       G3D4006 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 67289} GGG500I +GHO                =       G2G5051                                               : ARR( 0.276E-11,     0., 0.0);
+{ 67290} GGG500I +GHO                =       GGG500L +      GHO2                                   : ARR( 0.634E-11,     0., 0.0);
+{ 67291} GGG500I +GHO                =       G3G500R                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 67292} GGG500I +GHO                =       G3G501G                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 67293} GGG500I+HV               =       G2G400B +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 67294} GGG500I+HV               =       GAG4004 +      GCO2                                   :  0.100E+01*SUN;
+{ 67295} G2G5051 +GNO                =       G1G507K +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 67296} G2G5051 +GNO                =       GGG500m                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 67297} G2G5051 +GHO2               =       GGG500n                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 67298} G2G5051 +GNO3               =       G1G507K +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 67299} G2G5051 +MEPERO             =  0.340G1G507K + 0.330GGG500k + 0.330GGG500o                 : ARR( 0.565E-13,  -845., 0.0);
+{ 67300} G2G5051 +PERO1              =  0.460G1G507K + 0.270GGG500k + 0.270GGG500o                 : ARR( 0.434E-13,  -900., 0.0);
+{ 67301} G2G5051 +PERO2              =  0.400G1G507K + 0.300GGG500k + 0.300GGG500o                 : ARR( 0.162E-13, -1400., 0.0);
+{ 67302} G2G5051 +PERO3              =  0.460G1G507K + 0.270GGG500k + 0.270GGG500o                 : ARR( 0.488E-13, -1250., 0.0);
+{ 67303} G2G5051 +PERO5              =  0.460G1G507K + 0.270GGG500k + 0.270GGG500o                 : ARR( 0.183E-11,   450., 0.0);
+{ 67304} G2G5051 +PERO6              =  0.300G1G507K + 0.350GGG500k + 0.350GGG500o                 : ARR( 0.168E-13, -1300., 0.0);
+{ 67305} G2G5051 +PERO9              =  0.650G1G507K + 0.350GGG500o                                : ARR( 0.100E-10,     0., 0.0);
+{ 67306} G3G501G +GHO2               =  0.800GGG500I + 0.200GAG5014 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 67307} G3G501G +GNO                =       G3G4001 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 67308} G3G501G +GNO2               =       GPG500a                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 67309} G3G501G +GNO3               =       G3G4001 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 67310} G3G501G +MEPERO             =  0.685G3G4001 + 0.315GAG5014 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 67311} G3G501G +PERO1              =  0.800G3G4001 + 0.200GAG5014 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 67312} G3G501G +PERO2              =  0.750G3G4001 + 0.250GAG5014 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 67313} G3G501G +PERO3              =  0.800G3G4001 + 0.200GAG5014 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 67314} G3G501G +PERO5              =  0.650G3G4001 + 0.350GAG5014 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 67315} G3G501G +PERO6              =  0.650G3G4001 + 0.350GAG5014 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 67316} G3G501G +PERO9              =       G3G4001 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 67317} G1G507K                     =       GGD3002 +      GGD2000 +      GHO2                    : ARR( 0.200E+15,  5202., 0.0);
+{ 67318} G1G507K                     =       GGD4003 +      GCO     +      GHO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 67319} GAG500a +GHO                =       G2A505u                                               : ARR( 0.213E-11,     0., 0.0);
+{ 67320} GAG500a +GHO                =       GAG500g +      GHO2                                   : ARR( 0.663E-11,     0., 0.0);
+{ 67321} GAG500a +GHO                =       G3A501N                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 67322} GAG500a+HV               =       GAA4003 +      GCO2                                   :  0.100E+01*SUN;
+{ 67323} G2A505u +GNO                =       G1A508H +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 67324} G2A505u +GNO                =       GAG501Y                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 67325} G2A505u +GHO2               =       GAG501Z                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 67326} G2A505u +GNO3               =       G1A508H +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 67327} G2A505u +MEPERO             =  0.340G1A508H + 0.330GAG501P + 0.330GAG501a                 : ARR( 0.565E-13,  -845., 0.0);
+{ 67328} G2A505u +PERO1              =  0.460G1A508H + 0.270GAG501P + 0.270GAG501a                 : ARR( 0.434E-13,  -900., 0.0);
+{ 67329} G2A505u +PERO2              =  0.400G1A508H + 0.300GAG501P + 0.300GAG501a                 : ARR( 0.162E-13, -1400., 0.0);
+{ 67330} G2A505u +PERO3              =  0.460G1A508H + 0.270GAG501P + 0.270GAG501a                 : ARR( 0.488E-13, -1250., 0.0);
+{ 67331} G2A505u +PERO5              =  0.460G1A508H + 0.270GAG501P + 0.270GAG501a                 : ARR( 0.183E-11,   450., 0.0);
+{ 67332} G2A505u +PERO6              =  0.300G1A508H + 0.350GAG501P + 0.350GAG501a                 : ARR( 0.168E-13, -1300., 0.0);
+{ 67333} G2A505u +PERO9              =  0.650G1A508H + 0.350GAG501a                                : ARR( 0.100E-10,     0., 0.0);
+{ 67334} G3A501N +GHO2               =  0.800GAG500a + 0.200GAA500f + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 67335} G3A501N +GNO                =       G3A4004 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 67336} G3A501N +GNO2               =       GPA500j                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 67337} G3A501N +GNO3               =       G3A4004 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 67338} G3A501N +MEPERO             =  0.685G3A4004 + 0.315GAA500f + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 67339} G3A501N +PERO1              =  0.800G3A4004 + 0.200GAA500f + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 67340} G3A501N +PERO2              =  0.750G3A4004 + 0.250GAA500f + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 67341} G3A501N +PERO3              =  0.800G3A4004 + 0.200GAA500f + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 67342} G3A501N +PERO5              =  0.650G3A4004 + 0.350GAA500f + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 67343} G3A501N +PERO6              =  0.650G3A4004 + 0.350GAA500f + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 67344} G3A501N +PERO9              =       G3A4004 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 67345} G1A508H                     =       GCO     +      GGD4003 +      GHO                     : ARR( 0.200E+15,  4342., 0.0);
+{ 67346} G1A508H                     =       GAD2000 +      GGD3002 +      GHO2                    : ARR( 0.200E+15,  5202., 0.0);
+{ 67347} GPG500Z                     =       G3G500R +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 67348} GPG500Z +GHO                =       GPG500d +      GHO2                                   : ARR( 0.635E-11,     0., 0.0);
+{ 67349} GPG500Z +GHO                =       G2P506N                                               : ARR( 0.276E-11,     0., 0.0);
+{ 67350} GPG500Z +GHO                =       G3P501L                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 67351} GPG500Z+HV               =       GPA4006 +      GCO2                                   :  0.100E+01*SUN;
+{ 67352} GPG500Z+HV               =       G3G500R +      GNO2                                   :  0.100E+01*SUN;
+{ 67353} G2P506N +GNO                =       G1P5096 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 67354} G2P506N +GNO                =       GPG501W                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 67355} G2P506N +GHO2               =       GPG501X                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 67356} G2P506N +GNO3               =       G1P5096 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 67357} G2P506N +MEPERO             =  0.340G1P5096 + 0.330GPG501O + 0.330GPG501Y                 : ARR( 0.565E-13,  -845., 0.0);
+{ 67358} G2P506N +PERO1              =  0.460G1P5096 + 0.270GPG501O + 0.270GPG501Y                 : ARR( 0.434E-13,  -900., 0.0);
+{ 67359} G2P506N +PERO2              =  0.400G1P5096 + 0.300GPG501O + 0.300GPG501Y                 : ARR( 0.162E-13, -1400., 0.0);
+{ 67360} G2P506N +PERO3              =  0.460G1P5096 + 0.270GPG501O + 0.270GPG501Y                 : ARR( 0.488E-13, -1250., 0.0);
+{ 67361} G2P506N +PERO5              =  0.460G1P5096 + 0.270GPG501O + 0.270GPG501Y                 : ARR( 0.183E-11,   450., 0.0);
+{ 67362} G2P506N +PERO6              =  0.300G1P5096 + 0.350GPG501O + 0.350GPG501Y                 : ARR( 0.168E-13, -1300., 0.0);
+{ 67363} G2P506N +PERO9              =  0.650G1P5096 + 0.350GPG501Y                                : ARR( 0.100E-10,     0., 0.0);
+{ 67364} G3P501L +GHO2               =  0.800GPG500Z + 0.200GPA501A + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 67365} G3P501L +GNO                =       G3P4004 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 67366} G3P501L +GNO2               =       GPP500O                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 67367} G3P501L +GNO3               =       G3P4004 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 67368} G3P501L +MEPERO             =  0.685G3P4004 + 0.315GPA501A + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 67369} G3P501L +PERO1              =  0.800G3P4004 + 0.200GPA501A + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 67370} G3P501L +PERO2              =  0.750G3P4004 + 0.250GPA501A + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 67371} G3P501L +PERO3              =  0.800G3P4004 + 0.200GPA501A + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 67372} G3P501L +PERO5              =  0.650G3P4004 + 0.350GPA501A + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 67373} G3P501L +PERO6              =  0.650G3P4004 + 0.350GPA501A + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 67374} G3P501L +PERO9              =       G3P4004 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 67375} G1P5096                     =       GGD3002 +      GPD2000 +      GHO2                    : ARR( 0.200E+15,  5202., 0.0);
+{ 67376} G1P5096                     =       GGD4003 +      GCO     +      GNO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 67377} GGG4006 +GHO                =       GGG4003 +      GHO2                                   : ARR( 0.127E-10,     0., 0.0);
+{ 67378} GGG4006 +GHO                =       G3G4009                                               : ARR( 0.385E-11,  -190., 0.0);
+{ 67379} GGG4006+HV               =       GGD3001 +      GHO     +      GHO2    +      GCO2     :  0.200E+01*SUN;
+{ 67380} GAG400F +GHO                =       GAG4008 +      GHO2                                   : ARR( 0.491E-11,     0., 0.0);
+{ 67381} GAG400F +GHO                =       GAG4006 +      GHO2                                   : ARR( 0.663E-11,     0., 0.0);
+{ 67382} GAG400F +GHO                =       G3A400F                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 67383} GAG400F+HV               =       GAD3001 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 67384} GPG400F                     =       G3G4009 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 67385} GPG400F +GHO                =       GPG4006 +      GHO2                                   : ARR( 0.639E-11,     0., 0.0);
+{ 67386} GPG400F +GHO                =       GPG4008 +      GHO2                                   : ARR( 0.639E-11,     0., 0.0);
+{ 67387} GPG400F +GHO                =       G3P400D                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 67388} GPG400F+HV               =       GPD3001 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 67389} GPG400F+HV               =       G3G4009 +      GNO2                                   :  0.100E+01*SUN;
+{ 67390} GPN502n                     =       G3N502k +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 67391} GPN502n +GHO                =       GPN502s +      GHO2                                   : ARR( 0.129E-11,     0., 0.0);
+{ 67392} GPN502n +GHO                =       G3P4006 +      GCO                                    : ARR( 0.130E-10,     0., 0.0);
+{ 67393} GPN502n +GNO3               =       G3P4006 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 67394} GPN502n+HV               =       G3N502k +      GNO2                                   :  0.100E+01*SUN;
+{ 67395} GPN502n+HV               =       G1P507C +      GNO2                                   :  0.100E+01*SUN;
+{ 67396} GPN502n+HV               =       G3P4006 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 67397} GPN502n+HV               =       GPN400P +      GCO                                    :  0.100E+01*SUN;
+{ 67398} GPN502n+HV               =       GPN3002 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 67399} GPH504u                     =       G3H505J +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 67400} GPH504u +GHO                =       GPH503q +      GHO                                    : ARR( 0.177E-10,     0., 0.0);
+{ 67401} GPH504u +GHO                =       GPH504S +      GHO                                    : ARR( 0.454E-10,     0., 0.0);
+{ 67402} GPH504u +GHO                =       GPH505Z +      GHO2                                   : ARR( 0.113E-10,     0., 0.0);
+{ 67403} GPH504u +GHO                =       GPH504w +      GHO2                                   : ARR( 0.692E-11,     0., 0.0);
+{ 67404} GPH504u+HV               =       G1P505g +      GHO                                    :  0.100E+01*SUN;
+{ 67405} GPH504u+HV               =       G1P508G +      GHO                                    :  0.100E+01*SUN;
+{ 67406} GPH504u+HV               =       G3H505J +      GNO2                                   :  0.100E+01*SUN;
+{ 67407} G3H505J +GHO2               =  0.800GGH504e + 0.200GAH504x + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 67408} G3H505J +GNO                =       GHH400d +      GNO2    +      GHO2    +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 67409} G3H505J +GNO2               =       GPH504u                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 67410} G3H505J +GNO3               =       GHH400d +      GNO2    +      GHO2    +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 67411} G3H505J +MEPERO             =  0.685GHH400d + 0.315GAH504x + 0.685GHO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 67412} G3H505J +PERO1              =  0.800GHH400d + 0.200GAH504x + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 67413} G3H505J +PERO2              =  0.750GHH400d + 0.250GAH504x + 0.750GHO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 67414} G3H505J +PERO3              =  0.800GHH400d + 0.200GAH504x + 0.800GHO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 67415} G3H505J +PERO5              =  0.650GHH400d + 0.350GAH504x + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 67416} G3H505J +PERO6              =  0.650GHH400d + 0.350GAH504x + 0.650GHO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 67417} G3H505J +PERO9              =       GHH400d +      GHO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 67418} GPH504v                     =       G3H505I +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 67419} GPH504v +GHO                =       GPN502o +      GHO                                    : ARR( 0.342E-11,     0., 0.0);
+{ 67420} GPH504v +GHO                =       GPH5052 +      GHO2                                   : ARR( 0.134E-11,     0., 0.0);
+{ 67421} GPH504v +GHO                =       G2P506O                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 67422} GPH504v+HV               =       G1P505j +      GHO                                    :  0.100E+01*SUN;
+{ 67423} GPH504v+HV               =       G1P505h +      GNO2                                   :  0.100E+01*SUN;
+{ 67424} GPH504v+HV               =       G3H400f +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 67425} G2P506O +GNO                =       G1P505j +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 67426} G2P506O +GNO                =       GPN502T                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 67427} G2P506O +GHO2               =       GPH504v                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 67428} G2P506O +GNO3               =       G1P505j +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 67429} G2P506O +MEPERO             =  0.480G1P505j + 0.260GPN501z + 0.260GPN502o                 : ARR( 0.164E-12,  -795., 0.0);
+{ 67430} G2P506O +PERO1              =  0.600G1P505j + 0.200GPN501z + 0.200GPN502o                 : ARR( 0.126E-12,  -850., 0.0);
+{ 67431} G2P506O +PERO2              =  0.560G1P505j + 0.220GPN501z + 0.220GPN502o                 : ARR( 0.471E-13, -1350., 0.0);
+{ 67432} G2P506O +PERO3              =  0.600G1P505j + 0.200GPN501z + 0.200GPN502o                 : ARR( 0.142E-12, -1200., 0.0);
+{ 67433} G2P506O +PERO5              =  0.600G1P505j + 0.200GPN501z + 0.200GPN502o                 : ARR( 0.533E-11,   500., 0.0);
+{ 67434} G2P506O +PERO6              =  0.460G1P505j + 0.270GPN501z + 0.270GPN502o                 : ARR( 0.488E-13, -1250., 0.0);
+{ 67435} G2P506O +PERO9              =  0.800G1P505j + 0.200GPN502o                                : ARR( 0.100E-10,     0., 0.0);
+{ 67436} GPH504w                     =       G3H505K +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 67437} GPH504w +GHO                =       GPH504x +      GHO                                    : ARR( 0.176E-10,     0., 0.0);
+{ 67438} GPH504w +GHO                =       GPH504l +      GHO                                    : ARR( 0.143E-09,     0., 0.0);
+{ 67439} GPH504w+HV               =       G1P5078 +      GHO                                    :  0.100E+01*SUN;
+{ 67440} GPH504w+HV               =       G1P505h +      GHO                                    :  0.100E+01*SUN;
+{ 67441} GPH504w+HV               =       G3H400j +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 67442} G3H505K +GHO2               =  0.800GGH504g + 0.200GAH505b + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 67443} G3H505K +GNO                =       G3H400j +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 67444} G3H505K +GNO2               =       GPH504w                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 67445} G3H505K +GNO3               =       G3H400j +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 67446} G3H505K +MEPERO             =  0.685G3H400j + 0.315GAH505b + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 67447} G3H505K +PERO1              =  0.800G3H400j + 0.200GAH505b + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 67448} G3H505K +PERO2              =  0.750G3H400j + 0.250GAH505b + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 67449} G3H505K +PERO3              =  0.800G3H400j + 0.200GAH505b + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 67450} G3H505K +PERO5              =  0.650G3H400j + 0.350GAH505b + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 67451} G3H505K +PERO6              =  0.650G3H400j + 0.350GAH505b + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 67452} G3H505K +PERO9              =       G3H400j +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 67453} GPN502o                     =       G3N502s +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 67454} GPN502o +GHO                =       GPN502r +      GHO2                                   : ARR( 0.134E-11,     0., 0.0);
+{ 67455} GPN502o +GHO                =       G3P501M                                               : ARR( 0.444E-11,     0., 0.0);
+{ 67456} GPN502o +GNO3               =       G3P501M +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 67457} GPN502o+HV               =       G3N400T +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 67458} GPN502o+HV               =       G1P505i +      GNO2                                   :  0.100E+01*SUN;
+{ 67459} GPN502o+HV               =       GPD4004 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 67460} G3P501M +GHO2               =  0.800GPG501Z + 0.200GPA501c + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 67461} G3P501M +GNO                =       GPD4004 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 67462} G3P501M +GNO2               =       GPP500s                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 67463} G3P501M +GNO3               =       GPD4004 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 67464} G3P501M +MEPERO             =  0.685GPD4004 + 0.315GPA501c + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 67465} G3P501M +PERO1              =  0.800GPD4004 + 0.200GPA501c + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 67466} G3P501M +PERO2              =  0.750GPD4004 + 0.250GPA501c + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 67467} G3P501M +PERO3              =  0.800GPD4004 + 0.200GPA501c + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 67468} G3P501M +PERO5              =  0.650GPD4004 + 0.350GPA501c + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 67469} G3P501M +PERO6              =  0.650GPD4004 + 0.350GPA501c + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 67470} G3P501M +PERO9              =       GPD4004 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 67471} GPH504x                     =       G3H505L +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 67472} GPH504x +GHO                =       GPH5057 +      GHO2                                   : ARR( 0.205E-10,     0., 0.0);
+{ 67473} GPH504x +GHO                =       GPD500N +      GHO                                    : ARR( 0.822E-10,     0., 0.0);
+{ 67474} GPH504x +GHO                =       G3P501N                                               : ARR( 0.214E-10,     0., 0.0);
+{ 67475} GPH504x +GNO3               =       G3P501N +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 67476} GPH504x+HV               =       G3H400k +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 67477} GPH504x+HV               =       G1P505i +      GHO                                    :  0.100E+01*SUN;
+{ 67478} GPH504x+HV               =       GPD4004 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 67479} G3H505L +GHO2               =  0.800GGH504h + 0.200GAH505E + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 67480} G3H505L +GNO                =       G3H400k +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 67481} G3H505L +GNO2               =       GPH504x                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 67482} G3H505L +GNO3               =       G3H400k +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 67483} G3H505L +MEPERO             =  0.685G3H400k + 0.315GAH505E + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 67484} G3H505L +PERO1              =  0.800G3H400k + 0.200GAH505E + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 67485} G3H505L +PERO2              =  0.750G3H400k + 0.250GAH505E + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 67486} G3H505L +PERO3              =  0.800G3H400k + 0.200GAH505E + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 67487} G3H505L +PERO5              =  0.650G3H400k + 0.350GAH505E + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 67488} G3H505L +PERO6              =  0.650G3H400k + 0.350GAH505E + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 67489} G3H505L +PERO9              =       G3H400k +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 67490} G3P501N +GHO2               =  0.800GPG501a + 0.200GPA501d + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 67491} G3P501N +GNO                =       GPD4004 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 67492} G3P501N +GNO2               =       GPP500t                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 67493} G3P501N +GNO3               =       GPD4004 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 67494} G3P501N +MEPERO             =  0.685GPD4004 + 0.315GPA501d + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 67495} G3P501N +PERO1              =  0.800GPD4004 + 0.200GPA501d + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 67496} G3P501N +PERO2              =  0.750GPD4004 + 0.250GPA501d + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 67497} G3P501N +PERO3              =  0.800GPD4004 + 0.200GPA501d + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 67498} G3P501N +PERO5              =  0.650GPD4004 + 0.350GPA501d + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 67499} G3P501N +PERO6              =  0.650GPD4004 + 0.350GPA501d + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 67500} G3P501N +PERO9              =       GPD4004 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 67501} GPD500N                     =       G3D500N +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 67502} GPD500N +GHO                =       GPD500O +      GHO2                                   : ARR( 0.386E-11,     0., 0.0);
+{ 67503} GPD500N +GHO                =       G3P4007 +      GCO                                    : ARR( 0.128E-10,     0., 0.0);
+{ 67504} GPD500N +GNO3               =       G3P4007 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 67505} GPD500N+HV               =       G3D4006 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 67506} GPD500N+HV               =       G3P4007 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 67507} GPD500N+HV               =       GPD4004 +      GCO                                    :  0.100E+01*SUN;
+{ 67508} GPD500N+HV               =       GPK3001 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 67509} GPG500a                     =       G3G501G +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 67510} GPG500a +GHO                =       G2P506P                                               : ARR( 0.276E-11,     0., 0.0);
+{ 67511} GPG500a +GHO                =       GPG500g +      GHO2                                   : ARR( 0.635E-11,     0., 0.0);
+{ 67512} GPG500a +GHO                =       G3P500X                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 67513} GPG500a+HV               =       G2P400I +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 67514} GPG500a+HV               =       G3G4001 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 67515} G2P506P +GNO                =       G1P5097 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 67516} G2P506P +GNO                =       GPG501Z                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 67517} G2P506P +GHO2               =       GPG501a                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 67518} G2P506P +GNO3               =       G1P5097 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 67519} G2P506P +MEPERO             =  0.340G1P5097 + 0.330GPG501P + 0.330GPG501Y                 : ARR( 0.565E-13,  -845., 0.0);
+{ 67520} G2P506P +PERO1              =  0.460G1P5097 + 0.270GPG501P + 0.270GPG501Y                 : ARR( 0.434E-13,  -900., 0.0);
+{ 67521} G2P506P +PERO2              =  0.400G1P5097 + 0.300GPG501P + 0.300GPG501Y                 : ARR( 0.162E-13, -1400., 0.0);
+{ 67522} G2P506P +PERO3              =  0.460G1P5097 + 0.270GPG501P + 0.270GPG501Y                 : ARR( 0.488E-13, -1250., 0.0);
+{ 67523} G2P506P +PERO5              =  0.460G1P5097 + 0.270GPG501P + 0.270GPG501Y                 : ARR( 0.183E-11,   450., 0.0);
+{ 67524} G2P506P +PERO6              =  0.300G1P5097 + 0.350GPG501P + 0.350GPG501Y                 : ARR( 0.168E-13, -1300., 0.0);
+{ 67525} G2P506P +PERO9              =  0.650G1P5097 + 0.350GPG501Y                                : ARR( 0.100E-10,     0., 0.0);
+{ 67526} G1P5097                     =       GCO     +      GPD4004 +      GHO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 67527} G1P5097                     =       GGD2000 +      GPD3002 +      GHO2                    : ARR( 0.200E+15,  5202., 0.0);
+{ 67528} GPA500j                     =       G3A501N +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 67529} GPA500j +GHO                =       G2P506Q                                               : ARR( 0.205E-11,     0., 0.0);
+{ 67530} GPA500j +GHO                =       GPA500p +      GHO2                                   : ARR( 0.638E-11,     0., 0.0);
+{ 67531} GPA500j +GHO                =       G2P400I +      GCO2                                   : ARR( 0.528E-12,     0., 0.0);
+{ 67532} GPA500j+HV               =       G3A4004 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 67533} G2P506Q +GNO                =       G1P5098 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 67534} G2P506Q +GNO                =       GPA501c                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 67535} G2P506Q +GHO2               =       GPA501d                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 67536} G2P506Q +GNO3               =       G1P5098 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 67537} G2P506Q +MEPERO             =  0.340G1P5098 + 0.330GPA501F + 0.330GPA501e                 : ARR( 0.565E-13,  -845., 0.0);
+{ 67538} G2P506Q +PERO1              =  0.460G1P5098 + 0.270GPA501F + 0.270GPA501e                 : ARR( 0.434E-13,  -900., 0.0);
+{ 67539} G2P506Q +PERO2              =  0.400G1P5098 + 0.300GPA501F + 0.300GPA501e                 : ARR( 0.162E-13, -1400., 0.0);
+{ 67540} G2P506Q +PERO3              =  0.460G1P5098 + 0.270GPA501F + 0.270GPA501e                 : ARR( 0.488E-13, -1250., 0.0);
+{ 67541} G2P506Q +PERO5              =  0.460G1P5098 + 0.270GPA501F + 0.270GPA501e                 : ARR( 0.183E-11,   450., 0.0);
+{ 67542} G2P506Q +PERO6              =  0.300G1P5098 + 0.350GPA501F + 0.350GPA501e                 : ARR( 0.168E-13, -1300., 0.0);
+{ 67543} G2P506Q +PERO9              =  0.650G1P5098 + 0.350GPA501e                                : ARR( 0.100E-10,     0., 0.0);
+{ 67544} G1P5098                     =       GCO     +      GPD4004 +      GHO                     : ARR( 0.200E+15,  4342., 0.0);
+{ 67545} G1P5098                     =       GAD2000 +      GPD3002 +      GHO2                    : ARR( 0.200E+15,  5202., 0.0);
+{ 67546} GPP500O                     =       G3P500X +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 67547} GPP500O                     =       G3P501L +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 67548} GPP500O +GHO                =       G2P506R                                               : ARR( 0.277E-11,     0., 0.0);
+{ 67549} GPP500O +GHO                =       GPP500R +      GHO2                                   : ARR( 0.638E-11,     0., 0.0);
+{ 67550} GPP500O+HV               =       G3P500X +      GNO2                                   :  0.100E+01*SUN;
+{ 67551} GPP500O+HV               =       G3P4004 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 67552} G2P506R +GNO                =       G1P5099 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 67553} G2P506R +GNO                =       GPP500s                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 67554} G2P506R +GHO2               =       GPP500t                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 67555} G2P506R +GNO3               =       G1P5099 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 67556} G2P506R +MEPERO             =  0.340G1P5099 + 0.330GPP500m + 0.330GPP500u                 : ARR( 0.565E-13,  -845., 0.0);
+{ 67557} G2P506R +PERO1              =  0.460G1P5099 + 0.270GPP500m + 0.270GPP500u                 : ARR( 0.434E-13,  -900., 0.0);
+{ 67558} G2P506R +PERO2              =  0.400G1P5099 + 0.300GPP500m + 0.300GPP500u                 : ARR( 0.162E-13, -1400., 0.0);
+{ 67559} G2P506R +PERO3              =  0.460G1P5099 + 0.270GPP500m + 0.270GPP500u                 : ARR( 0.488E-13, -1250., 0.0);
+{ 67560} G2P506R +PERO5              =  0.460G1P5099 + 0.270GPP500m + 0.270GPP500u                 : ARR( 0.183E-11,   450., 0.0);
+{ 67561} G2P506R +PERO6              =  0.300G1P5099 + 0.350GPP500m + 0.350GPP500u                 : ARR( 0.168E-13, -1300., 0.0);
+{ 67562} G2P506R +PERO9              =  0.650G1P5099 + 0.350GPP500u                                : ARR( 0.100E-10,     0., 0.0);
+{ 67563} G1P5099                     =       GPD3002 +      GPD2000 +      GHO2                    : ARR( 0.200E+15,  5202., 0.0);
+{ 67564} G1P5099                     =       GPD4004 +      GCO     +      GNO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 67565} GPA400I                     =       G3A400F +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 67566} GPA400I +GHO                =       GPA4008 +      GHO2                                   : ARR( 0.499E-11,     0., 0.0);
+{ 67567} GPA400I +GHO                =       GPA400A +      GHO2                                   : ARR( 0.674E-11,     0., 0.0);
+{ 67568} GPA400I+HV               =       G3A400F +      GNO2                                   :  0.100E+01*SUN;
+{ 67569} GPP400A                     =       G3P400D +      GNO2                                   : ARR( 0.400E+16, 12800., 0.0);
+{ 67570} GPP400A +GHO                =       GPP4005 +      GHO2                                   : ARR( 0.128E-10,     0., 0.0);
+{ 67571} GPP400A+HV               =       G3P400D +      GNO2                                   :  0.200E+01*SUN;
+{ 67572} GGG500J +GHO                =       G2G5052                                               : ARR( 0.528E-12,     0., 0.0);
+{ 67573} GGG500J +GHO                =       G3G500S                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 67574} GGG500J +GHO                =       G3G500j                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 67575} GGG500J+HV               =  0.500G2G400o + 0.500GHO                                    :  0.100E+01*SUN;
+{ 67576} GGG500J+HV               =       G3G3000 +      GGD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 67577} GGG500J+HV               =       G1G504A +      GNO2                                   :  0.100E+01*SUN;
+{ 67578} GGG500J+HV               =       GGD4004 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 67579} G2G5052 +GNO                =       G1G507L +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 67580} G2G5052 +GNO                =       GGG500p                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 67581} G2G5052 +GHO2               =       GGG500q                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 67582} G2G5052 +GNO3               =       G1G507L +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 67583} G2G5052 +MEPERO             =  0.340G1G507L + 0.330GGG500M + 0.330GGG500r                 : ARR( 0.565E-13,  -845., 0.0);
+{ 67584} G2G5052 +PERO1              =  0.460G1G507L + 0.270GGG500M + 0.270GGG500r                 : ARR( 0.434E-13,  -900., 0.0);
+{ 67585} G2G5052 +PERO2              =  0.400G1G507L + 0.300GGG500M + 0.300GGG500r                 : ARR( 0.162E-13, -1400., 0.0);
+{ 67586} G2G5052 +PERO3              =  0.460G1G507L + 0.270GGG500M + 0.270GGG500r                 : ARR( 0.488E-13, -1250., 0.0);
+{ 67587} G2G5052 +PERO5              =  0.460G1G507L + 0.270GGG500M + 0.270GGG500r                 : ARR( 0.183E-11,   450., 0.0);
+{ 67588} G2G5052 +PERO6              =  0.300G1G507L + 0.350GGG500M + 0.350GGG500r                 : ARR( 0.168E-13, -1300., 0.0);
+{ 67589} G2G5052 +PERO9              =  0.650G1G507L + 0.350GGG500r                                : ARR( 0.100E-10,     0., 0.0);
+{ 67590} G1G507L                     =       G3G3001 +      GGD2000                                : ARR( 0.200E+15,  6450., 0.0);
+{ 67591} G1G507L                     =       GGN400Z +      GCO     +      GHO2                    : ARR( 0.200E+15,  6793., 0.0);
+{ 67592} GGG500K +GHO                =       GGG500L +      GHO                                    : ARR( 0.156E-10,     0., 0.0);
+{ 67593} GGG500K +GHO                =       G3G500U                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 67594} GGG500K +GHO                =       G2G5037                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 67595} GGG500K +GHO                =       G3G500k                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 67596} GGG500K+HV               =  0.500G2G400q + 0.500GHO                                    :  0.100E+01*SUN;
+{ 67597} GGG500K+HV               =       G3G3000 +      GGD2000 +      GHO                     :  0.100E+01*SUN;
+{ 67598} GGG500K+HV               =       G1G504A +      GHO                                    :  0.100E+01*SUN;
+{ 67599} GGG500K+HV               =       GGD4004 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 67600} GGG500L +GHO                =       G2G5053                                               : ARR( 0.525E-12,     0., 0.0);
+{ 67601} GGG500L +GHO                =       G3G500T                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 67602} GGG500L +GHO                =       G3G501H                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 67603} GGG500L+HV               =       G2G400p +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 67604} GGG500L+HV               =       G3G3000 +      GCO     +      GHO2    +      GCO      :  0.100E+01*SUN;
+{ 67605} GGG500L+HV               =       GAG4003 +      GCO2                                   :  0.100E+01*SUN;
+{ 67606} G2G5053 +GNO                =       G1G507M +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 67607} G2G5053 +GNO                =       GGG500r                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 67608} G2G5053 +GHO2               =       GGG500s                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 67609} G2G5053 +GNO3               =       G1G507M +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 67610} G2G5053 +MEPERO             =  0.340G1G507M + 0.330GGG500N + 0.330GGG500t                 : ARR( 0.565E-13,  -845., 0.0);
+{ 67611} G2G5053 +PERO1              =  0.460G1G507M + 0.270GGG500N + 0.270GGG500t                 : ARR( 0.434E-13,  -900., 0.0);
+{ 67612} G2G5053 +PERO2              =  0.400G1G507M + 0.300GGG500N + 0.300GGG500t                 : ARR( 0.162E-13, -1400., 0.0);
+{ 67613} G2G5053 +PERO3              =  0.460G1G507M + 0.270GGG500N + 0.270GGG500t                 : ARR( 0.488E-13, -1250., 0.0);
+{ 67614} G2G5053 +PERO5              =  0.460G1G507M + 0.270GGG500N + 0.270GGG500t                 : ARR( 0.183E-11,   450., 0.0);
+{ 67615} G2G5053 +PERO6              =  0.300G1G507M + 0.350GGG500N + 0.350GGG500t                 : ARR( 0.168E-13, -1300., 0.0);
+{ 67616} G2G5053 +PERO9              =  0.650G1G507M + 0.350GGG500t                                : ARR( 0.100E-10,     0., 0.0);
+{ 67617} G3G501H +GHO2               =  0.800GGG500L + 0.200GAG500d + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 67618} G3G501H +GNO                =       G3G3000 +      GNO2    +      GCO2    +      GCO      : ARR( 0.810E-11,  -270., 0.0);
+{ 67619} G3G501H +GNO2               =       GPG500g                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 67620} G3G501H +GNO3               =       G3G3000 +      GNO2    +      GCO2    +      GCO      : ARR( 0.500E-11,     0., 0.0);
+{ 67621} G3G501H +MEPERO             =  0.685G3G3000 + 0.315GAG500d + 0.685GCO2    + 0.685GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 67622} G3G501H +PERO1              =  0.800G3G3000 + 0.200GAG500d + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 67623} G3G501H +PERO2              =  0.750G3G3000 + 0.250GAG500d + 0.750GCO2    + 0.750GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 67624} G3G501H +PERO3              =  0.800G3G3000 + 0.200GAG500d + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 67625} G3G501H +PERO5              =  0.650G3G3000 + 0.350GAG500d + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 67626} G3G501H +PERO6              =  0.650G3G3000 + 0.350GAG500d + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 67627} G3G501H +PERO9              =       G3G3000 +      GCO2    +      GCO                     : ARR( 0.500E-11,  -500., 0.0);
+{ 67628} G1G507M                     =       GCO     +      GGD2000 +      GHO2    + 2.000GCO      : ARR( 0.200E+15,  5618., 0.0);
+{ 67629} GAG500b +GHO                =       G2A505v                                               : ARR( 0.529E-12,     0., 0.0);
+{ 67630} GAG500b +GHO                =       G3A500Y                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 67631} GAG500b +GHO                =       GGD4004 +      GNO2    +      GCO2                    : ARR( 0.524E-12,     0., 0.0);
+{ 67632} GAG500b+HV               =       G1A505J +      GNO2                                   :  0.100E+01*SUN;
+{ 67633} GAG500b+HV               =       G3A3001 +      G2G2000                                :  0.100E+01*SUN;
+{ 67634} GAG500b+HV               =       G2A400e +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 67635} G2A505v +GNO                =       G1A508I +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 67636} G2A505v +GNO                =       GAG501b                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 67637} G2A505v +GHO2               =       GAG501c                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 67638} G2A505v +GNO3               =       G1A508I +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 67639} G2A505v +MEPERO             =  0.340G1A508I + 0.330GAG500r + 0.330GAG501d                 : ARR( 0.565E-13,  -845., 0.0);
+{ 67640} G2A505v +PERO1              =  0.460G1A508I + 0.270GAG500r + 0.270GAG501d                 : ARR( 0.434E-13,  -900., 0.0);
+{ 67641} G2A505v +PERO2              =  0.400G1A508I + 0.300GAG500r + 0.300GAG501d                 : ARR( 0.162E-13, -1400., 0.0);
+{ 67642} G2A505v +PERO3              =  0.460G1A508I + 0.270GAG500r + 0.270GAG501d                 : ARR( 0.488E-13, -1250., 0.0);
+{ 67643} G2A505v +PERO5              =  0.460G1A508I + 0.270GAG500r + 0.270GAG501d                 : ARR( 0.183E-11,   450., 0.0);
+{ 67644} G2A505v +PERO6              =  0.300G1A508I + 0.350GAG500r + 0.350GAG501d                 : ARR( 0.168E-13, -1300., 0.0);
+{ 67645} G2A505v +PERO9              =  0.650G1A508I + 0.350GAG501d                                : ARR( 0.100E-10,     0., 0.0);
+{ 67646} G1A508I                     =       G3A3001 +      GGD2000                                : ARR( 0.200E+15,  6450., 0.0);
+{ 67647} G1A508I                     =       GAN400b +      GCO     +      GHO2                    : ARR( 0.200E+15,  6793., 0.0);
+{ 67648} GAG500c +GHO                =       GAG500d +      GHO                                    : ARR( 0.120E-10,     0., 0.0);
+{ 67649} GAG500c +GHO                =       G2A5044                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 67650} GAG500c +GHO                =       G3A500a                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 67651} GAG500c+HV               =       G1A505J +      GHO                                    :  0.100E+01*SUN;
+{ 67652} GAG500c+HV               =       G3A3003 +      G2G2000                                :  0.100E+01*SUN;
+{ 67653} GAG500c+HV               =       G2A400z +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 67654} GAG500d +GHO                =       G2A505w                                               : ARR( 0.525E-12,     0., 0.0);
+{ 67655} GAG500d +GHO                =       G3A500Z                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 67656} GAG500d +GHO                =       G3G3000 +      GCO2    +      GCO                     : ARR( 0.520E-12,     0., 0.0);
+{ 67657} GAG500d+HV               =       GGD4004 +      GCO2                                   :  0.100E+01*SUN;
+{ 67658} GAG500d+HV               =       GCO     +      G3G3000 +      GHO     +      GCO      :  0.100E+01*SUN;
+{ 67659} GAG500d+HV               =       G2A400f +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 67660} G2A505w +GNO                =       G1A508J +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 67661} G2A505w +GNO                =       GAG501e                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 67662} G2A505w +GHO2               =       GAG501f                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 67663} G2A505w +GNO3               =       G1A508J +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 67664} G2A505w +MEPERO             =  0.340G1A508J + 0.330GAG500s + 0.330GAG501g                 : ARR( 0.565E-13,  -845., 0.0);
+{ 67665} G2A505w +PERO1              =  0.460G1A508J + 0.270GAG500s + 0.270GAG501g                 : ARR( 0.434E-13,  -900., 0.0);
+{ 67666} G2A505w +PERO2              =  0.400G1A508J + 0.300GAG500s + 0.300GAG501g                 : ARR( 0.162E-13, -1400., 0.0);
+{ 67667} G2A505w +PERO3              =  0.460G1A508J + 0.270GAG500s + 0.270GAG501g                 : ARR( 0.488E-13, -1250., 0.0);
+{ 67668} G2A505w +PERO5              =  0.460G1A508J + 0.270GAG500s + 0.270GAG501g                 : ARR( 0.183E-11,   450., 0.0);
+{ 67669} G2A505w +PERO6              =  0.300G1A508J + 0.350GAG500s + 0.350GAG501g                 : ARR( 0.168E-13, -1300., 0.0);
+{ 67670} G2A505w +PERO9              =  0.650G1A508J + 0.350GAG501g                                : ARR( 0.100E-10,     0., 0.0);
+{ 67671} G1A508J                     =       GCO     +      GGD2000 +      GHO     + 2.000GCO      : ARR( 0.200E+15,  5618., 0.0);
+{ 67672} GAG500e +GHO                =       G2A505x                                               : ARR( 0.393E-12,     0., 0.0);
+{ 67673} GAG500e +GHO                =       G3A500q                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 67674} GAG500e +GHO                =       G2G400o +      GCO2                                   : ARR( 0.525E-12,     0., 0.0);
+{ 67675} GAG500e+HV               =       G3A3000 +      GGD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 67676} GAG500e+HV               =       G1A505K +      GNO2                                   :  0.100E+01*SUN;
+{ 67677} GAG500e+HV               =       GAD4003 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 67678} G2A505x +GNO                =       G1A508K +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 67679} G2A505x +GNO                =       GAG501b                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 67680} G2A505x +GHO2               =       GAG501h                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 67681} G2A505x +GNO3               =       G1A508K +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 67682} G2A505x +MEPERO             =  0.340G1A508K + 0.330GAG500h + 0.330GAG501e                 : ARR( 0.565E-13,  -845., 0.0);
+{ 67683} G2A505x +PERO1              =  0.460G1A508K + 0.270GAG500h + 0.270GAG501e                 : ARR( 0.434E-13,  -900., 0.0);
+{ 67684} G2A505x +PERO2              =  0.400G1A508K + 0.300GAG500h + 0.300GAG501e                 : ARR( 0.162E-13, -1400., 0.0);
+{ 67685} G2A505x +PERO3              =  0.460G1A508K + 0.270GAG500h + 0.270GAG501e                 : ARR( 0.488E-13, -1250., 0.0);
+{ 67686} G2A505x +PERO5              =  0.460G1A508K + 0.270GAG500h + 0.270GAG501e                 : ARR( 0.183E-11,   450., 0.0);
+{ 67687} G2A505x +PERO6              =  0.300G1A508K + 0.350GAG500h + 0.350GAG501e                 : ARR( 0.168E-13, -1300., 0.0);
+{ 67688} G2A505x +PERO9              =  0.650G1A508K + 0.350GAG501e                                : ARR( 0.100E-10,     0., 0.0);
+{ 67689} G1A508K                     =       GCO     +      GGN400Z +      GHO                     : ARR( 0.200E+15,  6762., 0.0);
+{ 67690} G1A508K                     =       GAD2000 +      G3G3001                                : ARR( 0.200E+15,  6450., 0.0);
+{ 67691} GAG500f +GHO                =       GAG500g +      GHO                                    : ARR( 0.159E-10,     0., 0.0);
+{ 67692} GAG500f +GHO                =       G2A5045                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 67693} GAG500f +GHO                =       G3A500r                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 67694} GAG500f+HV               =       G3A3000 +      GGD2000 +      GHO                     :  0.100E+01*SUN;
+{ 67695} GAG500f+HV               =       G1A505K +      GHO                                    :  0.100E+01*SUN;
+{ 67696} GAG500f+HV               =       GAD4003 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 67697} GAG500g +GHO                =       G2A505y                                               : ARR( 0.389E-12,     0., 0.0);
+{ 67698} GAG500g +GHO                =       G3A501O                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 67699} GAG500g +GHO                =       G2G400p +      GCO2                                   : ARR( 0.520E-12,     0., 0.0);
+{ 67700} GAG500g+HV               =       G3A3000 +      GCO     +      GHO2    +      GCO      :  0.100E+01*SUN;
+{ 67701} GAG500g+HV               =       GAA4002 +      GCO2                                   :  0.100E+01*SUN;
+{ 67702} G2A505y +GNO                =       G1A508L +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 67703} G2A505y +GNO                =       GAG501d                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 67704} G2A505y +GHO2               =       GAG501i                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 67705} G2A505y +GNO3               =       G1A508L +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 67706} G2A505y +MEPERO             =  0.340G1A508L + 0.330GAG500j + 0.330GAG501g                 : ARR( 0.565E-13,  -845., 0.0);
+{ 67707} G2A505y +PERO1              =  0.460G1A508L + 0.270GAG500j + 0.270GAG501g                 : ARR( 0.434E-13,  -900., 0.0);
+{ 67708} G2A505y +PERO2              =  0.400G1A508L + 0.300GAG500j + 0.300GAG501g                 : ARR( 0.162E-13, -1400., 0.0);
+{ 67709} G2A505y +PERO3              =  0.460G1A508L + 0.270GAG500j + 0.270GAG501g                 : ARR( 0.488E-13, -1250., 0.0);
+{ 67710} G2A505y +PERO5              =  0.460G1A508L + 0.270GAG500j + 0.270GAG501g                 : ARR( 0.183E-11,   450., 0.0);
+{ 67711} G2A505y +PERO6              =  0.300G1A508L + 0.350GAG500j + 0.350GAG501g                 : ARR( 0.168E-13, -1300., 0.0);
+{ 67712} G2A505y +PERO9              =  0.650G1A508L + 0.350GAG501g                                : ARR( 0.100E-10,     0., 0.0);
+{ 67713} G3A501O +GHO2               =  0.800GAG500g + 0.200GAA500T + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 67714} G3A501O +GNO                =       G3A3000 +      GNO2    +      GCO2    +      GCO      : ARR( 0.810E-11,  -270., 0.0);
+{ 67715} G3A501O +GNO2               =       GPA500p                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 67716} G3A501O +GNO3               =       G3A3000 +      GNO2    +      GCO2    +      GCO      : ARR( 0.500E-11,     0., 0.0);
+{ 67717} G3A501O +MEPERO             =  0.685G3A3000 + 0.315GAA500T + 0.685GCO2    + 0.685GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 67718} G3A501O +PERO1              =  0.800G3A3000 + 0.200GAA500T + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 67719} G3A501O +PERO2              =  0.750G3A3000 + 0.250GAA500T + 0.750GCO2    + 0.750GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 67720} G3A501O +PERO3              =  0.800G3A3000 + 0.200GAA500T + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 67721} G3A501O +PERO5              =  0.650G3A3000 + 0.350GAA500T + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 67722} G3A501O +PERO6              =  0.650G3A3000 + 0.350GAA500T + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 67723} G3A501O +PERO9              =       G3A3000 +      GCO2    +      GCO                     : ARR( 0.500E-11,  -500., 0.0);
+{ 67724} G1A508L                     =       GAD2000 +      GCO     +      GHO2    + 2.000GCO      : ARR( 0.200E+15,  5618., 0.0);
+{ 67725} GPG500b                     =       G3G500S +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 67726} GPG500b +GHO                =       G2P506S                                               : ARR( 0.531E-12,     0., 0.0);
+{ 67727} GPG500b +GHO                =       G3P500Y                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 67728} GPG500b+HV               =       GPD4003 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 67729} GPG500b+HV               =       G1P505k +      GNO2                                   :  0.100E+01*SUN;
+{ 67730} GPG500b+HV               =       G3G3001 +      G2P2000                                :  0.100E+01*SUN;
+{ 67731} GPG500b+HV               =       G3G500S +      GNO2                                   :  0.100E+01*SUN;
+{ 67732} G2P506S +GNO                =       G1P509A +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 67733} G2P506S +GNO                =       GPG501b                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 67734} G2P506S +GHO2               =       GPG501c                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 67735} G2P506S +GNO3               =       G1P509A +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 67736} G2P506S +MEPERO             =  0.340G1P509A + 0.330GPG500k + 0.330GPG501d                 : ARR( 0.565E-13,  -845., 0.0);
+{ 67737} G2P506S +PERO1              =  0.460G1P509A + 0.270GPG500k + 0.270GPG501d                 : ARR( 0.434E-13,  -900., 0.0);
+{ 67738} G2P506S +PERO2              =  0.400G1P509A + 0.300GPG500k + 0.300GPG501d                 : ARR( 0.162E-13, -1400., 0.0);
+{ 67739} G2P506S +PERO3              =  0.460G1P509A + 0.270GPG500k + 0.270GPG501d                 : ARR( 0.488E-13, -1250., 0.0);
+{ 67740} G2P506S +PERO5              =  0.460G1P509A + 0.270GPG500k + 0.270GPG501d                 : ARR( 0.183E-11,   450., 0.0);
+{ 67741} G2P506S +PERO6              =  0.300G1P509A + 0.350GPG500k + 0.350GPG501d                 : ARR( 0.168E-13, -1300., 0.0);
+{ 67742} G2P506S +PERO9              =  0.650G1P509A + 0.350GPG501d                                : ARR( 0.100E-10,     0., 0.0);
+{ 67743} G1P509A                     =       G3G3001 +      GPD2000                                : ARR( 0.200E+15,  6450., 0.0);
+{ 67744} G1P509A                     =       GGN400Z +      GCO     +      GNO2                    : ARR( 0.200E+15,  6793., 0.0);
+{ 67745} GPG500c                     =       G3G500U +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 67746} GPG500c +GHO                =       GPG500d +      GHO                                    : ARR( 0.157E-10,     0., 0.0);
+{ 67747} GPG500c +GHO                =       G3P500r                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 67748} GPG500c +GHO                =       G2P504G                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 67749} GPG500c+HV               =       GPD4003 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 67750} GPG500c+HV               =       G1P505k +      GHO                                    :  0.100E+01*SUN;
+{ 67751} GPG500c+HV               =       G3G3003 +      G2P2000                                :  0.100E+01*SUN;
+{ 67752} GPG500c+HV               =       G3G500U +      GNO2                                   :  0.100E+01*SUN;
+{ 67753} GPG500d                     =       G3G500T +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 67754} GPG500d +GHO                =       G2P506T                                               : ARR( 0.525E-12,     0., 0.0);
+{ 67755} GPG500d +GHO                =       G3P501O                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 67756} GPG500d+HV               =       GPA4003 +      GCO2                                   :  0.100E+01*SUN;
+{ 67757} GPG500d+HV               =       GCO     +      G3P3000 +      GHO2    +      GCO      :  0.100E+01*SUN;
+{ 67758} GPG500d+HV               =       G3G500T +      GNO2                                   :  0.100E+01*SUN;
+{ 67759} G2P506T +GNO                =       G1P509B +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 67760} G2P506T +GNO                =       GPG501e                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 67761} G2P506T +GHO2               =       GPG501f                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 67762} G2P506T +GNO3               =       G1P509B +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 67763} G2P506T +MEPERO             =  0.340G1P509B + 0.330GPG500m + 0.330GPG501g                 : ARR( 0.565E-13,  -845., 0.0);
+{ 67764} G2P506T +PERO1              =  0.460G1P509B + 0.270GPG500m + 0.270GPG501g                 : ARR( 0.434E-13,  -900., 0.0);
+{ 67765} G2P506T +PERO2              =  0.400G1P509B + 0.300GPG500m + 0.300GPG501g                 : ARR( 0.162E-13, -1400., 0.0);
+{ 67766} G2P506T +PERO3              =  0.460G1P509B + 0.270GPG500m + 0.270GPG501g                 : ARR( 0.488E-13, -1250., 0.0);
+{ 67767} G2P506T +PERO5              =  0.460G1P509B + 0.270GPG500m + 0.270GPG501g                 : ARR( 0.183E-11,   450., 0.0);
+{ 67768} G2P506T +PERO6              =  0.300G1P509B + 0.350GPG500m + 0.350GPG501g                 : ARR( 0.168E-13, -1300., 0.0);
+{ 67769} G2P506T +PERO9              =  0.650G1P509B + 0.350GPG501g                                : ARR( 0.100E-10,     0., 0.0);
+{ 67770} G3P501O +GHO2               =  0.800GPG500d + 0.200GPA500m + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 67771} G3P501O +GNO                =       G3P3000 +      GNO2    +      GCO2    +      GCO      : ARR( 0.810E-11,  -270., 0.0);
+{ 67772} G3P501O +GNO2               =       GPP500R                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 67773} G3P501O +GNO3               =       G3P3000 +      GNO2    +      GCO2    +      GCO      : ARR( 0.500E-11,     0., 0.0);
+{ 67774} G3P501O +MEPERO             =  0.685G3P3000 + 0.315GPA500m + 0.685GCO2    + 0.685GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 67775} G3P501O +PERO1              =  0.800G3P3000 + 0.200GPA500m + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 67776} G3P501O +PERO2              =  0.750G3P3000 + 0.250GPA500m + 0.750GCO2    + 0.750GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 67777} G3P501O +PERO3              =  0.800G3P3000 + 0.200GPA500m + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 67778} G3P501O +PERO5              =  0.650G3P3000 + 0.350GPA500m + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 67779} G3P501O +PERO6              =  0.650G3P3000 + 0.350GPA500m + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 67780} G3P501O +PERO9              =       G3P3000 +      GCO2    +      GCO                     : ARR( 0.500E-11,  -500., 0.0);
+{ 67781} G1P509B                     =       GCO     +      GPD2000 +      GHO2    + 2.000GCO      : ARR( 0.200E+15,  5618., 0.0);
+{ 67782} GPG500e                     =       G3G500j +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 67783} GPG500e +GHO                =       G2P506U                                               : ARR( 0.531E-12,     0., 0.0);
+{ 67784} GPG500e +GHO                =       G3P500Z                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 67785} GPG500e+HV               =  0.500G2P400g + 0.500GHO                                    :  0.100E+01*SUN;
+{ 67786} GPG500e+HV               =       G3G3000 +      GPD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 67787} GPG500e+HV               =       G1P505l +      GNO2                                   :  0.100E+01*SUN;
+{ 67788} GPG500e+HV               =       G3G500j +      GNO2                                   :  0.100E+01*SUN;
+{ 67789} G2P506U +GNO                =       G1P509C +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 67790} G2P506U +GNO                =       GPG501b                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 67791} G2P506U +GHO2               =       GPG501h                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 67792} G2P506U +GNO3               =       G1P509C +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 67793} G2P506U +MEPERO             =  0.340G1P509C + 0.330GPG500h + 0.330GPG501e                 : ARR( 0.565E-13,  -845., 0.0);
+{ 67794} G2P506U +PERO1              =  0.460G1P509C + 0.270GPG500h + 0.270GPG501e                 : ARR( 0.434E-13,  -900., 0.0);
+{ 67795} G2P506U +PERO2              =  0.400G1P509C + 0.300GPG500h + 0.300GPG501e                 : ARR( 0.162E-13, -1400., 0.0);
+{ 67796} G2P506U +PERO3              =  0.460G1P509C + 0.270GPG500h + 0.270GPG501e                 : ARR( 0.488E-13, -1250., 0.0);
+{ 67797} G2P506U +PERO5              =  0.460G1P509C + 0.270GPG500h + 0.270GPG501e                 : ARR( 0.183E-11,   450., 0.0);
+{ 67798} G2P506U +PERO6              =  0.300G1P509C + 0.350GPG500h + 0.350GPG501e                 : ARR( 0.168E-13, -1300., 0.0);
+{ 67799} G2P506U +PERO9              =  0.650G1P509C + 0.350GPG501e                                : ARR( 0.100E-10,     0., 0.0);
+{ 67800} G1P509C                     =       GCO     +      GPN400b +      GHO2                    : ARR( 0.200E+15,  6793., 0.0);
+{ 67801} G1P509C                     =       GGD2000 +      G3P3001                                : ARR( 0.200E+15,  6450., 0.0);
+{ 67802} GPG500f                     =       G3G500k +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 67803} GPG500f +GHO                =       GPG500g +      GHO                                    : ARR( 0.157E-10,     0., 0.0);
+{ 67804} GPG500f +GHO                =       G3P500b                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 67805} GPG500f +GHO                =       G2P504H                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 67806} GPG500f+HV               =  0.500G2P4015 + 0.500GHO                                    :  0.100E+01*SUN;
+{ 67807} GPG500f+HV               =       G3G3000 +      GPD2000 +      GHO                     :  0.100E+01*SUN;
+{ 67808} GPG500f+HV               =       G1P505l +      GHO                                    :  0.100E+01*SUN;
+{ 67809} GPG500f+HV               =       G3G500k +      GNO2                                   :  0.100E+01*SUN;
+{ 67810} GPG500g                     =       G3G501H +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 67811} GPG500g +GHO                =       G2P506W                                               : ARR( 0.525E-12,     0., 0.0);
+{ 67812} GPG500g +GHO                =       G3P500a                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 67813} GPG500g+HV               =       G2P400h +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 67814} GPG500g+HV               =       G3G3000 +      GCO     +      GNO2    +      GCO      :  0.100E+01*SUN;
+{ 67815} GPG500g+HV               =       G3G3000 +      GCO     +      GCO     +      GNO2     :  0.100E+01*SUN;
+{ 67816} G2P506W +GNO                =       G1P509D +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 67817} G2P506W +GNO                =       GPG501d                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 67818} G2P506W +GHO2               =       GPG501i                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 67819} G2P506W +GNO3               =       G1P509D +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 67820} G2P506W +MEPERO             =  0.340G1P509D + 0.330GPG500j + 0.330GPG501g                 : ARR( 0.565E-13,  -845., 0.0);
+{ 67821} G2P506W +PERO1              =  0.460G1P509D + 0.270GPG500j + 0.270GPG501g                 : ARR( 0.434E-13,  -900., 0.0);
+{ 67822} G2P506W +PERO2              =  0.400G1P509D + 0.300GPG500j + 0.300GPG501g                 : ARR( 0.162E-13, -1400., 0.0);
+{ 67823} G2P506W +PERO3              =  0.460G1P509D + 0.270GPG500j + 0.270GPG501g                 : ARR( 0.488E-13, -1250., 0.0);
+{ 67824} G2P506W +PERO5              =  0.460G1P509D + 0.270GPG500j + 0.270GPG501g                 : ARR( 0.183E-11,   450., 0.0);
+{ 67825} G2P506W +PERO6              =  0.300G1P509D + 0.350GPG500j + 0.350GPG501g                 : ARR( 0.168E-13, -1300., 0.0);
+{ 67826} G2P506W +PERO9              =  0.650G1P509D + 0.350GPG501g                                : ARR( 0.100E-10,     0., 0.0);
+{ 67827} G1P509D                     =       GGD2000 +      GCO     +      GNO2    + 2.000GCO      : ARR( 0.200E+15,  5618., 0.0);
+{ 67828} GPG500h                     =       G3G501I +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 67829} GPG500h +GHO                =       GPG501e +      GHO2                                   : ARR( 0.393E-11,     0., 0.0);
+{ 67830} GPG500h +GHO                =       G3P500g                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 67831} GPG500h+HV               =  0.500GPN400b + 0.500GHO                                    :  0.100E+01*SUN;
+{ 67832} GPG500h+HV               =       G3G3002 +      GPD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 67833} GPG500h+HV               =       G1P505m +      GNO2                                   :  0.100E+01*SUN;
+{ 67834} GPG500h+HV               =       G3G501I +      GNO2                                   :  0.100E+01*SUN;
+{ 67835} G3G501I +GHO2               =  0.800GGG500M + 0.200GAG500r + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 67836} G3G501I +GNO                =       GGD4007 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 67837} G3G501I +GNO2               =       GPG500h                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 67838} G3G501I +GNO3               =       GGD4007 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 67839} G3G501I +MEPERO             =  0.685GGD4007 + 0.315GAG500r + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 67840} G3G501I +PERO1              =  0.800GGD4007 + 0.200GAG500r + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 67841} G3G501I +PERO2              =  0.750GGD4007 + 0.250GAG500r + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 67842} G3G501I +PERO3              =  0.800GGD4007 + 0.200GAG500r + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 67843} G3G501I +PERO5              =  0.650GGD4007 + 0.350GAG500r + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 67844} G3G501I +PERO6              =  0.650GGD4007 + 0.350GAG500r + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 67845} G3G501I +PERO9              =       GGD4007 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 67846} GPG500i                     =       G3G5016 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 67847} GPG500i +GHO                =       GPG501f +      GHO2                                   : ARR( 0.385E-11,     0., 0.0);
+{ 67848} GPG500i +GHO                =       GPG500j +      GHO                                    : ARR( 0.154E-10,     0., 0.0);
+{ 67849} GPG500i +GHO                =       G3P5019                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 67850} GPG500i +GHO                =       G2P504I                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 67851} GPG500i+HV               =  0.500GPH400v + 0.500GHO                                    :  0.100E+01*SUN;
+{ 67852} GPG500i+HV               =       G3G3002 +      GPD2000 +      GHO                     :  0.100E+01*SUN;
+{ 67853} GPG500i+HV               =       G1P505m +      GHO                                    :  0.100E+01*SUN;
+{ 67854} GPG500i+HV               =       G3G5016 +      GNO2                                   :  0.100E+01*SUN;
+{ 67855} GPG500j                     =       G3G501J +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 67856} GPG500j +GHO                =       GPG501g +      GHO2                                   : ARR( 0.390E-11,     0., 0.0);
+{ 67857} GPG500j +GHO                =       G3P500h                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 67858} GPG500j+HV               =       GPD4008 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 67859} GPG500j+HV               =       G3G3002 +      GCO     +      GNO2    +      GCO      :  0.100E+01*SUN;
+{ 67860} GPG500j+HV               =       G3G3002 +      GCO     +      GCO     +      GNO2     :  0.100E+01*SUN;
+{ 67861} G3G501J +GHO2               =  0.800GGG500N + 0.200GAG500s + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 67862} G3G501J +GNO                =       G3G3002 +      GNO2    +      GCO2    +      GCO      : ARR( 0.810E-11,  -270., 0.0);
+{ 67863} G3G501J +GNO2               =       GPG500j                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 67864} G3G501J +GNO3               =       G3G3002 +      GNO2    +      GCO2    +      GCO      : ARR( 0.500E-11,     0., 0.0);
+{ 67865} G3G501J +MEPERO             =  0.685G3G3002 + 0.315GAG500s + 0.685GCO2    + 0.685GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 67866} G3G501J +PERO1              =  0.800G3G3002 + 0.200GAG500s + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 67867} G3G501J +PERO2              =  0.750G3G3002 + 0.250GAG500s + 0.750GCO2    + 0.750GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 67868} G3G501J +PERO3              =  0.800G3G3002 + 0.200GAG500s + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 67869} G3G501J +PERO5              =  0.650G3G3002 + 0.350GAG500s + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 67870} G3G501J +PERO6              =  0.650G3G3002 + 0.350GAG500s + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 67871} G3G501J +PERO9              =       G3G3002 +      GCO2    +      GCO                     : ARR( 0.500E-11,  -500., 0.0);
+{ 67872} GAA500R +GHO                =       G2A505z                                               : ARR( 0.398E-12,     0., 0.0);
+{ 67873} GAA500R +GHO                =       G2A400e +      GCO2                                   : ARR( 0.532E-12,     0., 0.0);
+{ 67874} GAA500R +GHO                =       GAD4003 +      GNO2    +      GCO2                    : ARR( 0.532E-12,     0., 0.0);
+{ 67875} GAA500R+HV               =       G3A3000 +      GAD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 67876} GAA500R+HV               =       G1A505L +      GNO2                                   :  0.100E+01*SUN;
+{ 67877} G2A505z +GNO                =       G1A508M +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 67878} G2A505z +GNO                =       GAA500v                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 67879} G2A505z +GHO2               =       GAA500w                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 67880} G2A505z +GNO3               =       G1A508M +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 67881} G2A505z +MEPERO             =  0.340G1A508M + 0.330GAA500U + 0.330GAA500x                 : ARR( 0.565E-13,  -845., 0.0);
+{ 67882} G2A505z +PERO1              =  0.460G1A508M + 0.270GAA500U + 0.270GAA500x                 : ARR( 0.434E-13,  -900., 0.0);
+{ 67883} G2A505z +PERO2              =  0.400G1A508M + 0.300GAA500U + 0.300GAA500x                 : ARR( 0.162E-13, -1400., 0.0);
+{ 67884} G2A505z +PERO3              =  0.460G1A508M + 0.270GAA500U + 0.270GAA500x                 : ARR( 0.488E-13, -1250., 0.0);
+{ 67885} G2A505z +PERO5              =  0.460G1A508M + 0.270GAA500U + 0.270GAA500x                 : ARR( 0.183E-11,   450., 0.0);
+{ 67886} G2A505z +PERO6              =  0.300G1A508M + 0.350GAA500U + 0.350GAA500x                 : ARR( 0.168E-13, -1300., 0.0);
+{ 67887} G2A505z +PERO9              =  0.650G1A508M + 0.350GAA500x                                : ARR( 0.100E-10,     0., 0.0);
+{ 67888} G1A508M                     =       G3A3001 +      GAD2000                                : ARR( 0.200E+15,  6450., 0.0);
+{ 67889} G1A508M                     =       GAN400b +      GCO     +      GHO                     : ARR( 0.200E+15,  6762., 0.0);
+{ 67890} GAA500S +GHO                =       GAA500T +      GHO                                    : ARR( 0.124E-10,     0., 0.0);
+{ 67891} GAA500S +GHO                =       G2A5046                                               : ARR( 0.208E-11,  -190., 0.0);
+{ 67892} GAA500S+HV               =       G3A3000 +      GAD2000 +      GHO                     :  0.100E+01*SUN;
+{ 67893} GAA500S+HV               =       G1A505L +      GHO                                    :  0.100E+01*SUN;
+{ 67894} GAA500T +GHO                =       G2A5061                                               : ARR( 0.389E-12,     0., 0.0);
+{ 67895} GAA500T +GHO                =       G2A400f +      GCO2                                   : ARR( 0.520E-12,     0., 0.0);
+{ 67896} GAA500T +GHO                =       G3A3000 +      GCO2    +      GCO                     : ARR( 0.520E-12,     0., 0.0);
+{ 67897} GAA500T+HV               =       G3A3000 +      GCO     +      GHO     +      GCO      :  0.100E+01*SUN;
+{ 67898} G2A5061 +GNO                =       G1A508N +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 67899} G2A5061 +GNO                =       GAA500x                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 67900} G2A5061 +GHO2               =       GAA500y                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 67901} G2A5061 +GNO3               =       G1A508N +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 67902} G2A5061 +MEPERO             =  0.340G1A508N + 0.330GAA500X + 0.330GAA500z                 : ARR( 0.565E-13,  -845., 0.0);
+{ 67903} G2A5061 +PERO1              =  0.460G1A508N + 0.270GAA500X + 0.270GAA500z                 : ARR( 0.434E-13,  -900., 0.0);
+{ 67904} G2A5061 +PERO2              =  0.400G1A508N + 0.300GAA500X + 0.300GAA500z                 : ARR( 0.162E-13, -1400., 0.0);
+{ 67905} G2A5061 +PERO3              =  0.460G1A508N + 0.270GAA500X + 0.270GAA500z                 : ARR( 0.488E-13, -1250., 0.0);
+{ 67906} G2A5061 +PERO5              =  0.460G1A508N + 0.270GAA500X + 0.270GAA500z                 : ARR( 0.183E-11,   450., 0.0);
+{ 67907} G2A5061 +PERO6              =  0.300G1A508N + 0.350GAA500X + 0.350GAA500z                 : ARR( 0.168E-13, -1300., 0.0);
+{ 67908} G2A5061 +PERO9              =  0.650G1A508N + 0.350GAA500z                                : ARR( 0.100E-10,     0., 0.0);
+{ 67909} G1A508N                     =       GCO     +      GAD2000 +      GHO     + 2.000GCO      : ARR( 0.200E+15,  5618., 0.0);
+{ 67910} GPA500k                     =       G3A500Y +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 67911} GPA500k +GHO                =       G2P506X                                               : ARR( 0.542E-12,     0., 0.0);
+{ 67912} GPA500k +GHO                =       GPD4003 +      GNO2    +      GCO2                    : ARR( 0.536E-12,     0., 0.0);
+{ 67913} GPA500k+HV               =       G1P505n +      GNO2                                   :  0.100E+01*SUN;
+{ 67914} GPA500k+HV               =       G3A3001 +      G2P2000                                :  0.100E+01*SUN;
+{ 67915} GPA500k+HV               =       G3A500Y +      GNO2                                   :  0.100E+01*SUN;
+{ 67916} G2P506X +GNO                =       G1P509E +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 67917} G2P506X +GNO                =       GPA501f                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 67918} G2P506X +GHO2               =       GPA501g                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 67919} G2P506X +GNO3               =       G1P509E +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 67920} G2P506X +MEPERO             =  0.340G1P509E + 0.330GPA500t + 0.330GPA501h                 : ARR( 0.565E-13,  -845., 0.0);
+{ 67921} G2P506X +PERO1              =  0.460G1P509E + 0.270GPA500t + 0.270GPA501h                 : ARR( 0.434E-13,  -900., 0.0);
+{ 67922} G2P506X +PERO2              =  0.400G1P509E + 0.300GPA500t + 0.300GPA501h                 : ARR( 0.162E-13, -1400., 0.0);
+{ 67923} G2P506X +PERO3              =  0.460G1P509E + 0.270GPA500t + 0.270GPA501h                 : ARR( 0.488E-13, -1250., 0.0);
+{ 67924} G2P506X +PERO5              =  0.460G1P509E + 0.270GPA500t + 0.270GPA501h                 : ARR( 0.183E-11,   450., 0.0);
+{ 67925} G2P506X +PERO6              =  0.300G1P509E + 0.350GPA500t + 0.350GPA501h                 : ARR( 0.168E-13, -1300., 0.0);
+{ 67926} G2P506X +PERO9              =  0.650G1P509E + 0.350GPA501h                                : ARR( 0.100E-10,     0., 0.0);
+{ 67927} G1P509E                     =       G3A3001 +      GPD2000                                : ARR( 0.200E+15,  6450., 0.0);
+{ 67928} G1P509E                     =       GAN400b +      GCO     +      GNO2                    : ARR( 0.200E+15,  6793., 0.0);
+{ 67929} GPA500l                     =       G3A500a +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 67930} GPA500l +GHO                =       GPA500m +      GHO                                    : ARR( 0.121E-10,     0., 0.0);
+{ 67931} GPA500l +GHO                =       G2P504J                                               : ARR( 0.203E-11,  -190., 0.0);
+{ 67932} GPA500l+HV               =       G1P505n +      GHO                                    :  0.100E+01*SUN;
+{ 67933} GPA500l+HV               =       G3A3003 +      G2P2000                                :  0.100E+01*SUN;
+{ 67934} GPA500l+HV               =       G3A500a +      GNO2                                   :  0.100E+01*SUN;
+{ 67935} GPA500m                     =       G3A500Z +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 67936} GPA500m +GHO                =       G2P506Y                                               : ARR( 0.525E-12,     0., 0.0);
+{ 67937} GPA500m +GHO                =       G3P3000 +      GCO2    +      GCO                     : ARR( 0.520E-12,     0., 0.0);
+{ 67938} GPA500m+HV               =       GPD4003 +      GCO2                                   :  0.100E+01*SUN;
+{ 67939} GPA500m+HV               =       GCO     +      G3P3000 +      GHO     +      GCO      :  0.100E+01*SUN;
+{ 67940} GPA500m+HV               =       G3A500Z +      GNO2                                   :  0.100E+01*SUN;
+{ 67941} G2P506Y +GNO                =       G1P509F +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 67942} G2P506Y +GNO                =       GPA501i                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 67943} G2P506Y +GHO2               =       GPA501j                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 67944} G2P506Y +GNO3               =       G1P509F +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 67945} G2P506Y +MEPERO             =  0.340G1P509F + 0.330GPA500v + 0.330GPA501k                 : ARR( 0.565E-13,  -845., 0.0);
+{ 67946} G2P506Y +PERO1              =  0.460G1P509F + 0.270GPA500v + 0.270GPA501k                 : ARR( 0.434E-13,  -900., 0.0);
+{ 67947} G2P506Y +PERO2              =  0.400G1P509F + 0.300GPA500v + 0.300GPA501k                 : ARR( 0.162E-13, -1400., 0.0);
+{ 67948} G2P506Y +PERO3              =  0.460G1P509F + 0.270GPA500v + 0.270GPA501k                 : ARR( 0.488E-13, -1250., 0.0);
+{ 67949} G2P506Y +PERO5              =  0.460G1P509F + 0.270GPA500v + 0.270GPA501k                 : ARR( 0.183E-11,   450., 0.0);
+{ 67950} G2P506Y +PERO6              =  0.300G1P509F + 0.350GPA500v + 0.350GPA501k                 : ARR( 0.168E-13, -1300., 0.0);
+{ 67951} G2P506Y +PERO9              =  0.650G1P509F + 0.350GPA501k                                : ARR( 0.100E-10,     0., 0.0);
+{ 67952} G1P509F                     =       GCO     +      GPD2000 +      GHO     + 2.000GCO      : ARR( 0.200E+15,  5618., 0.0);
+{ 67953} GPA500n                     =       G3A500q +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 67954} GPA500n +GHO                =       G2P506Z                                               : ARR( 0.408E-12,     0., 0.0);
+{ 67955} GPA500n +GHO                =       G2P400g +      GCO2                                   : ARR( 0.545E-12,     0., 0.0);
+{ 67956} GPA500n+HV               =       G3A3000 +      GPD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 67957} GPA500n+HV               =       G1P505o +      GNO2                                   :  0.100E+01*SUN;
+{ 67958} GPA500n+HV               =       G3A500q +      GNO2                                   :  0.100E+01*SUN;
+{ 67959} G2P506Z +GNO                =       G1P509G +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 67960} G2P506Z +GNO                =       GPA501f                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 67961} G2P506Z +GHO2               =       GPA501l                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 67962} G2P506Z +GNO3               =       G1P509G +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 67963} G2P506Z +MEPERO             =  0.340G1P509G + 0.330GPA500q + 0.330GPA501i                 : ARR( 0.565E-13,  -845., 0.0);
+{ 67964} G2P506Z +PERO1              =  0.460G1P509G + 0.270GPA500q + 0.270GPA501i                 : ARR( 0.434E-13,  -900., 0.0);
+{ 67965} G2P506Z +PERO2              =  0.400G1P509G + 0.300GPA500q + 0.300GPA501i                 : ARR( 0.162E-13, -1400., 0.0);
+{ 67966} G2P506Z +PERO3              =  0.460G1P509G + 0.270GPA500q + 0.270GPA501i                 : ARR( 0.488E-13, -1250., 0.0);
+{ 67967} G2P506Z +PERO5              =  0.460G1P509G + 0.270GPA500q + 0.270GPA501i                 : ARR( 0.183E-11,   450., 0.0);
+{ 67968} G2P506Z +PERO6              =  0.300G1P509G + 0.350GPA500q + 0.350GPA501i                 : ARR( 0.168E-13, -1300., 0.0);
+{ 67969} G2P506Z +PERO9              =  0.650G1P509G + 0.350GPA501i                                : ARR( 0.100E-10,     0., 0.0);
+{ 67970} G1P509G                     =       GCO     +      GPN400b +      GHO                     : ARR( 0.200E+15,  6762., 0.0);
+{ 67971} G1P509G                     =       GAD2000 +      G3P3001                                : ARR( 0.200E+15,  6450., 0.0);
+{ 67972} GPA500o                     =       G3A500r +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 67973} GPA500o +GHO                =       GPA500p +      GHO                                    : ARR( 0.161E-10,     0., 0.0);
+{ 67974} GPA500o +GHO                =       G2P504K                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 67975} GPA500o+HV               =       G3A3000 +      GPD2000 +      GHO                     :  0.100E+01*SUN;
+{ 67976} GPA500o+HV               =       G1P505o +      GHO                                    :  0.100E+01*SUN;
+{ 67977} GPA500o+HV               =       G3A500r +      GNO2                                   :  0.100E+01*SUN;
+{ 67978} GPA500p                     =       G3A501O +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 67979} GPA500p +GHO                =       G2P506a                                               : ARR( 0.389E-12,     0., 0.0);
+{ 67980} GPA500p +GHO                =       G2P400h +      GCO2                                   : ARR( 0.520E-12,     0., 0.0);
+{ 67981} GPA500p+HV               =       G3A3000 +      GCO     +      GNO2    +      GCO      :  0.100E+01*SUN;
+{ 67982} GPA500p+HV               =       G3A3000 +      GCO     +      GCO     +      GNO2     :  0.100E+01*SUN;
+{ 67983} G2P506a +GNO                =       G1P509H +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 67984} G2P506a +GNO                =       GPA501h                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 67985} G2P506a +GHO2               =       GPA501m                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 67986} G2P506a +GNO3               =       G1P509H +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 67987} G2P506a +MEPERO             =  0.340G1P509H + 0.330GPA500s + 0.330GPA501k                 : ARR( 0.565E-13,  -845., 0.0);
+{ 67988} G2P506a +PERO1              =  0.460G1P509H + 0.270GPA500s + 0.270GPA501k                 : ARR( 0.434E-13,  -900., 0.0);
+{ 67989} G2P506a +PERO2              =  0.400G1P509H + 0.300GPA500s + 0.300GPA501k                 : ARR( 0.162E-13, -1400., 0.0);
+{ 67990} G2P506a +PERO3              =  0.460G1P509H + 0.270GPA500s + 0.270GPA501k                 : ARR( 0.488E-13, -1250., 0.0);
+{ 67991} G2P506a +PERO5              =  0.460G1P509H + 0.270GPA500s + 0.270GPA501k                 : ARR( 0.183E-11,   450., 0.0);
+{ 67992} G2P506a +PERO6              =  0.300G1P509H + 0.350GPA500s + 0.350GPA501k                 : ARR( 0.168E-13, -1300., 0.0);
+{ 67993} G2P506a +PERO9              =  0.650G1P509H + 0.350GPA501k                                : ARR( 0.100E-10,     0., 0.0);
+{ 67994} G1P509H                     =       GAD2000 +      GCO     +      GNO2    + 2.000GCO      : ARR( 0.200E+15,  5618., 0.0);
+{ 67995} GAH504q +GHO                =       GAN502n +      GHO                                    : ARR( 0.326E-11,     0., 0.0);
+{ 67996} GAH504q +GHO                =       G2A5047                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 67997} GAH504q +GHO                =       GHN401C +      GNO2    +      GCO2                    : ARR( 0.527E-12,     0., 0.0);
+{ 67998} GAH504q+HV               =       G1A508O +      GNO2                                   :  0.100E+01*SUN;
+{ 67999} GAH504q+HV               =       G3A3001 +      GHD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 68000} GAH504q+HV               =       G1A508P +      GNO2                                   :  0.100E+01*SUN;
+{ 68001} GAH504q+HV               =       G1A505M +      GHO                                    :  0.100E+01*SUN;
+{ 68002} G1A508O                     =       GAD2000 +      G3H3005                                : ARR( 0.200E+15,  5396., 0.0);
+{ 68003} G1A508P                     =       G3A3001 +      GHD2000                                : ARR( 0.200E+15,  4123., 0.0);
+{ 68004} GAN502n +GHO                =       G3A501P                                               : ARR( 0.422E-11,     0., 0.0);
+{ 68005} GAN502n +GHO                =       GND400N +      GNO2    +      GCO2                    : ARR( 0.528E-12,     0., 0.0);
+{ 68006} GAN502n +GNO3               =       G3A501P +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 68007} GAN502n+HV               =       G1A506i +      GNO2                                   :  0.100E+01*SUN;
+{ 68008} GAN502n+HV               =       G3A3001 +      GDD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 68009} GAN502n+HV               =       G1A508Q +      GNO2                                   :  0.100E+01*SUN;
+{ 68010} GAN502n+HV               =       GAN400b +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 68011} G3A501P +GHO2               =  0.800GAG501b + 0.200GAA500v + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 68012} G3A501P +GNO                =       GAN400b + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 68013} G3A501P +GNO2               =       GPA501f                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 68014} G3A501P +GNO3               =       GAN400b + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 68015} G3A501P +MEPERO             =  0.685GAN400b + 0.315GAA500v + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68016} G3A501P +PERO1              =  0.800GAN400b + 0.200GAA500v + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68017} G3A501P +PERO2              =  0.750GAN400b + 0.250GAA500v + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68018} G3A501P +PERO3              =  0.800GAN400b + 0.200GAA500v + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68019} G3A501P +PERO5              =  0.650GAN400b + 0.350GAA500v + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68020} G3A501P +PERO6              =  0.650GAN400b + 0.350GAA500v + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68021} G3A501P +PERO9              =       GAN400b +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 68022} G1A508Q                     =       G3A3001 +      GDD2000                                : ARR( 0.200E+15,  6007., 0.0);
+{ 68023} GAH504r +GHO                =       GAN502o +      GHO                                    : ARR( 0.325E-11,     0., 0.0);
+{ 68024} GAH504r +GHO                =       G2A5048                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 68025} GAH504r +GHO                =       G3H3005 +      GCO2    +      GCO                     : ARR( 0.525E-12,     0., 0.0);
+{ 68026} GAH504r+HV               =       GHN401C +      GCO2                                   :  0.100E+01*SUN;
+{ 68027} GAH504r+HV               =       GCO     +      G3H3005 +      GHO     +      GCO      :  0.100E+01*SUN;
+{ 68028} GAH504r+HV               =       G1A508R +      GNO2                                   :  0.100E+01*SUN;
+{ 68029} GAH504r+HV               =       G1A505O +      GHO                                    :  0.100E+01*SUN;
+{ 68030} G1A508R                     =       GCO     +      GHD2000 +      GHO     + 2.000GCO      : ARR( 0.200E+15,  3291., 0.0);
+{ 68031} GAN502o +GHO                =       G3A501Q                                               : ARR( 0.419E-11,     0., 0.0);
+{ 68032} GAN502o +GHO                =       G3N3005 +      GCO2    +      GCO                     : ARR( 0.525E-12,     0., 0.0);
+{ 68033} GAN502o +GNO3               =       G3A501Q +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 68034} GAN502o+HV               =       GND400N +      GCO2                                   :  0.100E+01*SUN;
+{ 68035} GAN502o+HV               =       GCO     +      G3N3005 +      GHO     +      GCO      :  0.100E+01*SUN;
+{ 68036} GAN502o+HV               =       G1A508S +      GNO2                                   :  0.100E+01*SUN;
+{ 68037} GAN502o+HV               =       GAD4008 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 68038} G3A501Q +GHO2               =  0.800GAG501e + 0.200GAA500x + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 68039} G3A501Q +GNO                =       GAD4008 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 68040} G3A501Q +GNO2               =       GPA501i                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 68041} G3A501Q +GNO3               =       GAD4008 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 68042} G3A501Q +MEPERO             =  0.685GAD4008 + 0.315GAA500x + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68043} G3A501Q +PERO1              =  0.800GAD4008 + 0.200GAA500x + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68044} G3A501Q +PERO2              =  0.750GAD4008 + 0.250GAA500x + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68045} G3A501Q +PERO3              =  0.800GAD4008 + 0.200GAA500x + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68046} G3A501Q +PERO5              =  0.650GAD4008 + 0.350GAA500x + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68047} G3A501Q +PERO6              =  0.650GAD4008 + 0.350GAA500x + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68048} G3A501Q +PERO9              =       GAD4008 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 68049} G1A508S                     =       GCO     +      GDD2000 +      GHO     + 2.000GCO      : ARR( 0.200E+15,  5175., 0.0);
+{ 68050} GAH504s +GHO                =       GAN502p +      GHO                                    : ARR( 0.102E-10,     0., 0.0);
+{ 68051} GAH504s +GHO                =       G2A5049                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 68052} GAH504s+HV               =       G1A508T +      GNO2                                   :  0.100E+01*SUN;
+{ 68053} GAH504s+HV               =       G3A3001 +      G3H2000                                :  0.100E+01*SUN;
+{ 68054} GAH504s+HV               =       G1A505P +      GHO                                    :  0.100E+01*SUN;
+{ 68055} G1A508T                     =       GAD500O +      GHO                                    : ARR( 0.160E+12,  4168., 0.0);
+{ 68056} G1A508T                     =       GAD2000 +      G3H2000 +      GCO                     : ARR( 0.200E+15,  5653., 0.0);
+{ 68057} GAN502p +GHO                =       G3A3001 + 2.000GCO                                    : ARR( 0.132E-10,     0., 0.0);
+{ 68058} GAN502p +GNO3               =       G3A3001 +      GHNO3   + 2.000GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 68059} GAN502p+HV               =       G1A508U +      GNO2                                   :  0.100E+01*SUN;
+{ 68060} GAN502p+HV               =       G3A3001 +      G3D2000                                :  0.100E+01*SUN;
+{ 68061} GAN502p+HV               =       G3A3001 +      GCO     +      GCO     +      GHO2     :  0.100E+01*SUN;
+{ 68062} GAN502p+HV               =       GAN400b +      GCO                                    :  0.100E+01*SUN;
+{ 68063} GAN502p+HV               =       GAN3006 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 68064} G1A508U                     =       GAD2000 +      G3D2000 +      GCO                     : ARR( 0.200E+15,  5618., 0.0);
+{ 68065} GAH504t +GHO                =       GAD500P +      GHO                                    : ARR( 0.102E-10,     0., 0.0);
+{ 68066} GAH504t +GHO                =       G2A504A                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 68067} GAH504t+HV               =       GHD400N +      GCO2                                   :  0.100E+01*SUN;
+{ 68068} GAH504t+HV               =       GCO     +      G3H2000 +      GHO     + 2.000GCO      :  0.100E+01*SUN;
+{ 68069} GAH504t+HV               =       GCO     +      G3H2000 +      GHO     + 2.000GCO      :  0.100E+01*SUN;
+{ 68070} GAH504t+HV               =       G1A505Q +      GHO                                    :  0.100E+01*SUN;
+{ 68071} GAD500P +GHO                =       GCO     +      GHO     + 4.000GCO                     : ARR( 0.132E-10,     0., 0.0);
+{ 68072} GAD500P +GNO3               =       GCO     +      GHNO3   +      GHO     + 4.000GCO      : ARR( 0.240E-14,     0., 0.0);
+{ 68073} GAD500P+HV               =       GDD4005 +      GCO2                                   :  0.100E+01*SUN;
+{ 68074} GAD500P+HV               =       GCO     +      G3D2000 +      GHO     + 2.000GCO      :  0.100E+01*SUN;
+{ 68075} GAD500P+HV               =       GCO     +      G3D2000 +      GHO     + 2.000GCO      :  0.100E+01*SUN;
+{ 68076} GAD500P+HV               =  2.000GCO     +      GHO     +      GHO2    + 3.000GCO      :  0.100E+01*SUN;
+{ 68077} GAD500P+HV               =       GAD4008 +      GCO                                    :  0.100E+01*SUN;
+{ 68078} GAD500P+HV               =       GAD3002 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 68079} GAH504u +GHO                =       GAN502p +      GHO                                    : ARR( 0.161E-10,     0., 0.0);
+{ 68080} GAH504u +GHO                =       G3A501R                                               : ARR( 0.692E-10,     0., 0.0);
+{ 68081} GAH504u +GNO3               =       G3A501R +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 68082} GAH504u+HV               =       G1A508W +      GNO2                                   :  0.100E+01*SUN;
+{ 68083} GAH504u+HV               =       G3A3001 +      GDD2000 +      GHO                     :  0.100E+01*SUN;
+{ 68084} GAH504u+HV               =       G1A508Q +      GHO                                    :  0.100E+01*SUN;
+{ 68085} GAH504u+HV               =       GAN400b +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 68086} G3A501R +GHO2               =  0.800GAG501c + 0.200GAA500w + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 68087} G3A501R +GNO                =       GAN400b +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 68088} G3A501R +GNO2               =       GPA501g                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 68089} G3A501R +GNO3               =       GAN400b +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 68090} G3A501R +MEPERO             =  0.685GAN400b + 0.315GAA500w + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68091} G3A501R +PERO1              =  0.800GAN400b + 0.200GAA500w + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68092} G3A501R +PERO2              =  0.750GAN400b + 0.250GAA500w + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68093} G3A501R +PERO3              =  0.800GAN400b + 0.200GAA500w + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68094} G3A501R +PERO5              =  0.650GAN400b + 0.350GAA500w + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68095} G3A501R +PERO6              =  0.650GAN400b + 0.350GAA500w + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68096} G3A501R +PERO9              =       GAN400b +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 68097} G1A508W                     =       G3A5013                                               : ARR( 0.800E+11,  4246., 0.0);
+{ 68098} G1A508W                     =       GCO     +      GHD400K +      GHO                     : ARR( 0.200E+15,  6762., 0.0);
+{ 68099} G1A508W                     =       GAD2000 +      G3H3006                                : ARR( 0.200E+15,  6105., 0.0);
+{ 68100} GAH504v +GHO                =       GAD500P +      GHO                                    : ARR( 0.161E-10,     0., 0.0);
+{ 68101} GAH504v +GHO                =       G3A501S                                               : ARR( 0.692E-10,     0., 0.0);
+{ 68102} GAH504v +GNO3               =       G3A501S +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 68103} GAH504v+HV               =       GHD400K +      GCO2                                   :  0.100E+01*SUN;
+{ 68104} GAH504v+HV               =       GCO     +      G3H3006 +      GHO     +      GCO      :  0.100E+01*SUN;
+{ 68105} GAH504v+HV               =       G1A508S +      GHO                                    :  0.100E+01*SUN;
+{ 68106} GAH504v+HV               =       GAD4008 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 68107} G3A501S +GHO2               =  0.800GAG501f + 0.200GAA500y + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 68108} G3A501S +GNO                =       GAD4008 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 68109} G3A501S +GNO2               =       GPA501j                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 68110} G3A501S +GNO3               =       GAD4008 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 68111} G3A501S +MEPERO             =  0.685GAD4008 + 0.315GAA500y + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68112} G3A501S +PERO1              =  0.800GAD4008 + 0.200GAA500y + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68113} G3A501S +PERO2              =  0.750GAD4008 + 0.250GAA500y + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68114} G3A501S +PERO3              =  0.800GAD4008 + 0.200GAA500y + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68115} G3A501S +PERO5              =  0.650GAD4008 + 0.350GAA500y + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68116} G3A501S +PERO6              =  0.650GAD4008 + 0.350GAA500y + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68117} G3A501S +PERO9              =       GAD4008 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 68118} GAG500h +GHO                =       GAG501e +      GHO2                                   : ARR( 0.291E-11,     0., 0.0);
+{ 68119} GAG500h +GHO                =       G3A501T                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 68120} GAG500h +GHO                =       GGN400Z +      GHO2    +      GCO2                    : ARR( 0.534E-12,     0., 0.0);
+{ 68121} GAG500h+HV               =       G3A3002 +      GGD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 68122} GAG500h+HV               =       G1A505W +      GNO2                                   :  0.100E+01*SUN;
+{ 68123} GAG500h+HV               =       GAD4006 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 68124} G3A501T +GHO2               =  0.800GAG500h + 0.200GAA500U + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 68125} G3A501T +GNO                =       GAD4006 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 68126} G3A501T +GNO2               =       GPA500q                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 68127} G3A501T +GNO3               =       GAD4006 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 68128} G3A501T +MEPERO             =  0.685GAD4006 + 0.315GAA500U + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68129} G3A501T +PERO1              =  0.800GAD4006 + 0.200GAA500U + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68130} G3A501T +PERO2              =  0.750GAD4006 + 0.250GAA500U + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68131} G3A501T +PERO3              =  0.800GAD4006 + 0.200GAA500U + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68132} G3A501T +PERO5              =  0.650GAD4006 + 0.350GAA500U + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68133} G3A501T +PERO6              =  0.650GAD4006 + 0.350GAA500U + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68134} G3A501T +PERO9              =       GAD4006 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 68135} GAG500i +GHO                =       GAG501f +      GHO2                                   : ARR( 0.291E-11,     0., 0.0);
+{ 68136} GAG500i +GHO                =       GAG500j +      GHO                                    : ARR( 0.157E-10,     0., 0.0);
+{ 68137} GAG500i +GHO                =       G2A504B                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 68138} GAG500i +GHO                =       G3A5013                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 68139} GAG500i+HV               =       G3A3002 +      GGD2000 +      GHO                     :  0.100E+01*SUN;
+{ 68140} GAG500i+HV               =       G1A505W +      GHO                                    :  0.100E+01*SUN;
+{ 68141} GAG500i+HV               =       GAD4006 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 68142} GAG500j +GHO                =       GAG501g +      GHO2                                   : ARR( 0.289E-11,     0., 0.0);
+{ 68143} GAG500j +GHO                =       G3A501U                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 68144} GAG500j +GHO                =       GGD4008 +      GHO2    +      GCO2                    : ARR( 0.530E-12,     0., 0.0);
+{ 68145} GAG500j+HV               =       G3A3002 +      GCO     +      GHO2    +      GCO      :  0.100E+01*SUN;
+{ 68146} GAG500j+HV               =       GAA4005 +      GCO2                                   :  0.100E+01*SUN;
+{ 68147} G3A501U +GHO2               =  0.800GAG500j + 0.200GAA500X + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 68148} G3A501U +GNO                =       G3A3002 +      GNO2    +      GCO2    +      GCO      : ARR( 0.810E-11,  -270., 0.0);
+{ 68149} G3A501U +GNO2               =       GPA500s                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 68150} G3A501U +GNO3               =       G3A3002 +      GNO2    +      GCO2    +      GCO      : ARR( 0.500E-11,     0., 0.0);
+{ 68151} G3A501U +MEPERO             =  0.685G3A3002 + 0.315GAA500X + 0.685GCO2    + 0.685GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 68152} G3A501U +PERO1              =  0.800G3A3002 + 0.200GAA500X + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 68153} G3A501U +PERO2              =  0.750G3A3002 + 0.250GAA500X + 0.750GCO2    + 0.750GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 68154} G3A501U +PERO3              =  0.800G3A3002 + 0.200GAA500X + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 68155} G3A501U +PERO5              =  0.650G3A3002 + 0.350GAA500X + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 68156} G3A501U +PERO6              =  0.650G3A3002 + 0.350GAA500X + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 68157} G3A501U +PERO9              =       G3A3002 +      GCO2    +      GCO                     : ARR( 0.500E-11,  -500., 0.0);
+{ 68158} GAA500U +GHO                =       GAA500x +      GHO2                                   : ARR( 0.296E-11,     0., 0.0);
+{ 68159} GAA500U +GHO                =       GAN400b +      GHO2    +      GCO2                    : ARR( 0.543E-12,     0., 0.0);
+{ 68160} GAA500U +GHO                =       GAD4006 +      GNO2    +      GCO2                    : ARR( 0.543E-12,     0., 0.0);
+{ 68161} GAA500U+HV               =       G3A3002 +      GAD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 68162} GAA500U+HV               =       G1A505X +      GNO2                                   :  0.100E+01*SUN;
+{ 68163} GAA500W +GHO                =       GAA500y +      GHO2                                   : ARR( 0.302E-11,     0., 0.0);
+{ 68164} GAA500W +GHO                =       GAA500X +      GHO                                    : ARR( 0.121E-10,     0., 0.0);
+{ 68165} GAA500W +GHO                =       G2A504C                                               : ARR( 0.203E-11,  -190., 0.0);
+{ 68166} GAA500W+HV               =       G3A3002 +      GAD2000 +      GHO                     :  0.100E+01*SUN;
+{ 68167} GAA500W+HV               =       G1A505X +      GHO                                    :  0.100E+01*SUN;
+{ 68168} GAA500X +GHO                =       GAA500z +      GHO2                                   : ARR( 0.294E-11,     0., 0.0);
+{ 68169} GAA500X +GHO                =       GAD4008 +      GHO2    +      GCO2                    : ARR( 0.539E-12,     0., 0.0);
+{ 68170} GAA500X +GHO                =       G3A3002 +      GCO2    +      GCO                     : ARR( 0.539E-12,     0., 0.0);
+{ 68171} GAA500X+HV               =       G3A3002 +      GCO     +      GHO     +      GCO      :  0.100E+01*SUN;
+{ 68172} GPA500q                     =       G3A501T +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 68173} GPA500q +GHO                =       GPA501i +      GHO2                                   : ARR( 0.299E-11,     0., 0.0);
+{ 68174} GPA500q +GHO                =       GPN400b +      GHO2    +      GCO2                    : ARR( 0.549E-12,     0., 0.0);
+{ 68175} GPA500q+HV               =       G3A3002 +      GPD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 68176} GPA500q+HV               =       G1P505p +      GNO2                                   :  0.100E+01*SUN;
+{ 68177} GPA500q+HV               =       G3A501T +      GNO2                                   :  0.100E+01*SUN;
+{ 68178} GPA500r                     =       G3A5013 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 68179} GPA500r +GHO                =       GPA501j +      GHO2                                   : ARR( 0.292E-11,     0., 0.0);
+{ 68180} GPA500r +GHO                =       GPA500s +      GHO                                    : ARR( 0.158E-10,     0., 0.0);
+{ 68181} GPA500r +GHO                =       G2P504L                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 68182} GPA500r+HV               =       G3A3002 +      GPD2000 +      GHO                     :  0.100E+01*SUN;
+{ 68183} GPA500r+HV               =       G1P505p +      GHO                                    :  0.100E+01*SUN;
+{ 68184} GPA500r+HV               =       G3A5013 +      GNO2                                   :  0.100E+01*SUN;
+{ 68185} GPA500s                     =       G3A501U +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 68186} GPA500s +GHO                =       GPA501k +      GHO2                                   : ARR( 0.295E-11,     0., 0.0);
+{ 68187} GPA500s +GHO                =       GPD4008 +      GHO2    +      GCO2                    : ARR( 0.542E-12,     0., 0.0);
+{ 68188} GPA500s+HV               =       G3A3002 +      GCO     +      GNO2    +      GCO      :  0.100E+01*SUN;
+{ 68189} GPA500s+HV               =       G3A3002 +      GCO     +      GCO     +      GNO2     :  0.100E+01*SUN;
+{ 68190} GPP500P                     =       G3P500Z +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 68191} GPP500P                     =       G3P500Y +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 68192} GPP500P +GHO                =       G2P506b                                               : ARR( 0.525E-12,     0., 0.0);
+{ 68193} GPP500P +GHO                =       GPP500R +      GNO2                                   : ARR( 0.438E-13,     0., 0.0);
+{ 68194} GPP500P+HV               =       G3P500Z +      GNO2                                   :  0.100E+01*SUN;
+{ 68195} GPP500P+HV               =       G3P3000 +      GPD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 68196} GPP500P+HV               =       G1P505q +      GNO2                                   :  0.100E+01*SUN;
+{ 68197} GPP500P+HV               =       G3P500Y +      GNO2                                   :  0.100E+01*SUN;
+{ 68198} G2P506b +GNO                =       G1P509I +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 68199} G2P506b +GNO                =       GPP500v                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 68200} G2P506b +GHO2               =       GPP500w                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 68201} G2P506b +GNO3               =       G1P509I +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 68202} G2P506b +MEPERO             =  0.340G1P509I + 0.330GPP500S + 0.330GPP500x                 : ARR( 0.565E-13,  -845., 0.0);
+{ 68203} G2P506b +PERO1              =  0.460G1P509I + 0.270GPP500S + 0.270GPP500x                 : ARR( 0.434E-13,  -900., 0.0);
+{ 68204} G2P506b +PERO2              =  0.400G1P509I + 0.300GPP500S + 0.300GPP500x                 : ARR( 0.162E-13, -1400., 0.0);
+{ 68205} G2P506b +PERO3              =  0.460G1P509I + 0.270GPP500S + 0.270GPP500x                 : ARR( 0.488E-13, -1250., 0.0);
+{ 68206} G2P506b +PERO5              =  0.460G1P509I + 0.270GPP500S + 0.270GPP500x                 : ARR( 0.183E-11,   450., 0.0);
+{ 68207} G2P506b +PERO6              =  0.300G1P509I + 0.350GPP500S + 0.350GPP500x                 : ARR( 0.168E-13, -1300., 0.0);
+{ 68208} G2P506b +PERO9              =  0.650G1P509I + 0.350GPP500x                                : ARR( 0.100E-10,     0., 0.0);
+{ 68209} G1P509I                     =       G3P3001 +      GPD2000                                : ARR( 0.200E+15,  6450., 0.0);
+{ 68210} G1P509I                     =       GPN400b +      GCO     +      GNO2                    : ARR( 0.200E+15,  6793., 0.0);
+{ 68211} GPP500Q                     =       G3P500b +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 68212} GPP500Q                     =       G3P500r +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 68213} GPP500Q +GHO                =       GPP500R +      GHO                                    : ARR( 0.157E-10,     0., 0.0);
+{ 68214} GPP500Q +GHO                =       G2P504M                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 68215} GPP500Q+HV               =       G3P500b +      GNO2                                   :  0.100E+01*SUN;
+{ 68216} GPP500Q+HV               =       G3P3000 +      GPD2000 +      GHO                     :  0.100E+01*SUN;
+{ 68217} GPP500Q+HV               =       G1P505q +      GHO                                    :  0.100E+01*SUN;
+{ 68218} GPP500Q+HV               =       G3P500r +      GNO2                                   :  0.100E+01*SUN;
+{ 68219} GPP500R                     =       G3P500a +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 68220} GPP500R                     =       G3P501O +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 68221} GPP500R +GHO                =       G2P506c                                               : ARR( 0.525E-12,     0., 0.0);
+{ 68222} GPP500R+HV               =       G3P500a +      GNO2                                   :  0.100E+01*SUN;
+{ 68223} GPP500R+HV               =       G3P3000 +      GCO     +      GNO2    +      GCO      :  0.100E+01*SUN;
+{ 68224} GPP500R+HV               =       G3P3000 +      GCO     +      GCO     +      GNO2     :  0.100E+01*SUN;
+{ 68225} G2P506c +GNO                =       G1P509J +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 68226} G2P506c +GNO                =       GPP500x                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 68227} G2P506c +GHO2               =       GPP500y                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 68228} G2P506c +GNO3               =       G1P509J +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 68229} G2P506c +MEPERO             =  0.340G1P509J + 0.330GPP500U + 0.330GPP500z                 : ARR( 0.565E-13,  -845., 0.0);
+{ 68230} G2P506c +PERO1              =  0.460G1P509J + 0.270GPP500U + 0.270GPP500z                 : ARR( 0.434E-13,  -900., 0.0);
+{ 68231} G2P506c +PERO2              =  0.400G1P509J + 0.300GPP500U + 0.300GPP500z                 : ARR( 0.162E-13, -1400., 0.0);
+{ 68232} G2P506c +PERO3              =  0.460G1P509J + 0.270GPP500U + 0.270GPP500z                 : ARR( 0.488E-13, -1250., 0.0);
+{ 68233} G2P506c +PERO5              =  0.460G1P509J + 0.270GPP500U + 0.270GPP500z                 : ARR( 0.183E-11,   450., 0.0);
+{ 68234} G2P506c +PERO6              =  0.300G1P509J + 0.350GPP500U + 0.350GPP500z                 : ARR( 0.168E-13, -1300., 0.0);
+{ 68235} G2P506c +PERO9              =  0.650G1P509J + 0.350GPP500z                                : ARR( 0.100E-10,     0., 0.0);
+{ 68236} G1P509J                     =       GCO     +      GPD2000 +      GNO2    + 2.000GCO      : ARR( 0.200E+15,  5618., 0.0);
+{ 68237} GPH504y                     =       G3H504p +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 68238} GPH504y +GHO                =       GPN502p +      GHO                                    : ARR( 0.327E-11,     0., 0.0);
+{ 68239} GPH504y +GHO                =       G2P504P                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 68240} GPH504y+HV               =       G1P505v +      GHO                                    :  0.100E+01*SUN;
+{ 68241} GPH504y+HV               =       G1P509K +      GNO2                                   :  0.100E+01*SUN;
+{ 68242} GPH504y+HV               =       G3H3005 +      GPD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 68243} GPH504y+HV               =       G1P505s +      GNO2                                   :  0.100E+01*SUN;
+{ 68244} GPH504y+HV               =       G3H504p +      GNO2                                   :  0.100E+01*SUN;
+{ 68245} G1P509K                     =       GHD2000 +      G3P3001                                : ARR( 0.200E+15,  4123., 0.0);
+{ 68246} GPH504z                     =       G3H505M +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 68247} GPH504z +GHO                =       GPH5053 +      GHO                                    : ARR( 0.323E-11,     0., 0.0);
+{ 68248} GPH504z +GHO                =       GPH5052 +      GHO                                    : ARR( 0.154E-10,     0., 0.0);
+{ 68249} GPH504z +GHO                =       G2P506d                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 68250} GPH504z +GHO                =       G2P504N                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 68251} GPH504z+HV               =       G1P507D +      GHO                                    :  0.100E+01*SUN;
+{ 68252} GPH504z+HV               =       G1P509L +      GNO2                                   :  0.100E+01*SUN;
+{ 68253} GPH504z+HV               =       G3H3005 +      GPD2000 +      GHO                     :  0.100E+01*SUN;
+{ 68254} GPH504z+HV               =       G1P505s +      GHO                                    :  0.100E+01*SUN;
+{ 68255} GPH504z+HV               =       G3H505M +      GNO2                                   :  0.100E+01*SUN;
+{ 68256} G3H505M +GHO2               =  0.800GGH505Z + 0.200GAH505d + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 68257} G3H505M +GNO                =       GHN401C +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 68258} G3H505M +GNO2               =       GPH504z                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 68259} G3H505M +GNO3               =       GHN401C +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 68260} G3H505M +MEPERO             =  0.685GHN401C + 0.315GAH505d + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68261} G3H505M +PERO1              =  0.800GHN401C + 0.200GAH505d + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68262} G3H505M +PERO2              =  0.750GHN401C + 0.250GAH505d + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68263} G3H505M +PERO3              =  0.800GHN401C + 0.200GAH505d + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68264} G3H505M +PERO5              =  0.650GHN401C + 0.350GAH505d + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68265} G3H505M +PERO6              =  0.650GHN401C + 0.350GAH505d + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68266} G3H505M +PERO9              =       GHN401C +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 68267} G2P506d +GNO                =       G1P507D +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 68268} G2P506d +GNO                =       GPH503W                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 68269} G2P506d +GHO2               =       GPH504z                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 68270} G2P506d +GNO3               =       G1P507D +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 68271} G2P506d +MEPERO             =  0.480G1P507D + 0.260GPH502T + 0.260GPH5053                 : ARR( 0.164E-12,  -795., 0.0);
+{ 68272} G2P506d +PERO1              =  0.600G1P507D + 0.200GPH502T + 0.200GPH5053                 : ARR( 0.126E-12,  -850., 0.0);
+{ 68273} G2P506d +PERO2              =  0.560G1P507D + 0.220GPH502T + 0.220GPH5053                 : ARR( 0.471E-13, -1350., 0.0);
+{ 68274} G2P506d +PERO3              =  0.600G1P507D + 0.200GPH502T + 0.200GPH5053                 : ARR( 0.142E-12, -1200., 0.0);
+{ 68275} G2P506d +PERO5              =  0.600G1P507D + 0.200GPH502T + 0.200GPH5053                 : ARR( 0.533E-11,   500., 0.0);
+{ 68276} G2P506d +PERO6              =  0.460G1P507D + 0.270GPH502T + 0.270GPH5053                 : ARR( 0.488E-13, -1250., 0.0);
+{ 68277} G2P506d +PERO9              =  0.800G1P507D + 0.200GPH5053                                : ARR( 0.100E-10,     0., 0.0);
+{ 68278} G1P509L                     =       GHD2000 +      G3P3003                                : ARR( 0.200E+15,  3778., 0.0);
+{ 68279} GPH5051                     =       G3H504y +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 68280} GPH5051 +GHO                =       GPN502q +      GHO                                    : ARR( 0.328E-11,     0., 0.0);
+{ 68281} GPH5051 +GHO                =       GPH5052 +      GHO2                                   : ARR( 0.391E-11,     0., 0.0);
+{ 68282} GPH5051 +GHO                =       G2P506e                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 68283} GPH5051+HV               =       G1P507F +      GHO                                    :  0.100E+01*SUN;
+{ 68284} GPH5051+HV               =       G1P509M +      GNO2                                   :  0.100E+01*SUN;
+{ 68285} GPH5051+HV               =       G3H3005 +      GPD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 68286} GPH5051+HV               =       G3H504y +      GNO2                                   :  0.100E+01*SUN;
+{ 68287} G2P506e +GNO                =       G1P507F +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 68288} G2P506e +GNO                =       GPN502a                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 68289} G2P506e +GHO2               =       GPH5051                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 68290} G2P506e +GNO3               =       G1P507F +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 68291} G2P506e +MEPERO             =  0.480G1P507F + 0.260GPN5026 + 0.260GPN502q                 : ARR( 0.164E-12,  -795., 0.0);
+{ 68292} G2P506e +PERO1              =  0.600G1P507F + 0.200GPN5026 + 0.200GPN502q                 : ARR( 0.126E-12,  -850., 0.0);
+{ 68293} G2P506e +PERO2              =  0.560G1P507F + 0.220GPN5026 + 0.220GPN502q                 : ARR( 0.471E-13, -1350., 0.0);
+{ 68294} G2P506e +PERO3              =  0.600G1P507F + 0.200GPN5026 + 0.200GPN502q                 : ARR( 0.142E-12, -1200., 0.0);
+{ 68295} G2P506e +PERO5              =  0.600G1P507F + 0.200GPN5026 + 0.200GPN502q                 : ARR( 0.533E-11,   500., 0.0);
+{ 68296} G2P506e +PERO6              =  0.460G1P507F + 0.270GPN5026 + 0.270GPN502q                 : ARR( 0.488E-13, -1250., 0.0);
+{ 68297} G2P506e +PERO9              =  0.800G1P507F + 0.200GPN502q                                : ARR( 0.100E-10,     0., 0.0);
+{ 68298} G1P509M                     =       GHD2000 +      G3P3002                                : ARR( 0.200E+15,  3778., 0.0);
+{ 68299} GPH5052                     =       G3H505N +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 68300} GPH5052 +GHO                =       GPN502r +      GHO                                    : ARR( 0.325E-11,     0., 0.0);
+{ 68301} GPH5052 +GHO                =       G2P504Q                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 68302} GPH5052+HV               =       G1P505x +      GHO                                    :  0.100E+01*SUN;
+{ 68303} GPH5052+HV               =       G1P509N +      GNO2                                   :  0.100E+01*SUN;
+{ 68304} GPH5052+HV               =       G3H3005 +      GCO     +      GNO2    +      GCO      :  0.100E+01*SUN;
+{ 68305} GPH5052+HV               =       G3H3005 +      GCO     +      GCO     +      GNO2     :  0.100E+01*SUN;
+{ 68306} G3H505N +GHO2               =  0.800GGH505X + 0.200GAH504r + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 68307} G3H505N +GNO                =       G3H3005 +      GNO2    +      GCO2    +      GCO      : ARR( 0.810E-11,  -270., 0.0);
+{ 68308} G3H505N +GNO2               =       GPH5052                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 68309} G3H505N +GNO3               =       G3H3005 +      GNO2    +      GCO2    +      GCO      : ARR( 0.500E-11,     0., 0.0);
+{ 68310} G3H505N +MEPERO             =  0.685G3H3005 + 0.315GAH504r + 0.685GCO2    + 0.685GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 68311} G3H505N +PERO1              =  0.800G3H3005 + 0.200GAH504r + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 68312} G3H505N +PERO2              =  0.750G3H3005 + 0.250GAH504r + 0.750GCO2    + 0.750GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 68313} G3H505N +PERO3              =  0.800G3H3005 + 0.200GAH504r + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 68314} G3H505N +PERO5              =  0.650G3H3005 + 0.350GAH504r + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 68315} G3H505N +PERO6              =  0.650G3H3005 + 0.350GAH504r + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 68316} G3H505N +PERO9              =       G3H3005 +      GCO2    +      GCO                     : ARR( 0.500E-11,  -500., 0.0);
+{ 68317} G1P509N                     =       GHD2000 +      GCO     +      GNO2    + 2.000GCO      : ARR( 0.200E+15,  3291., 0.0);
+{ 68318} GPN502p                     =       G3N502o +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 68319} GPN502p +GHO                =       G3P501P                                               : ARR( 0.424E-11,     0., 0.0);
+{ 68320} GPN502p +GNO3               =       G3P501P +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 68321} GPN502p+HV               =       G3N502o +      GNO2                                   :  0.100E+01*SUN;
+{ 68322} GPN502p+HV               =       G1P505u +      GNO2                                   :  0.100E+01*SUN;
+{ 68323} GPN502p+HV               =       G3P3001 +      GDD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 68324} GPN502p+HV               =       G1P509O +      GNO2                                   :  0.100E+01*SUN;
+{ 68325} GPN502p+HV               =       GPN400b +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 68326} G3P501P +GHO2               =  0.800GPG501b + 0.200GPA501f + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 68327} G3P501P +GNO                =       GPN400b + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 68328} G3P501P +GNO2               =       GPP500v                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 68329} G3P501P +GNO3               =       GPN400b + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 68330} G3P501P +MEPERO             =  0.685GPN400b + 0.315GPA501f + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68331} G3P501P +PERO1              =  0.800GPN400b + 0.200GPA501f + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68332} G3P501P +PERO2              =  0.750GPN400b + 0.250GPA501f + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68333} G3P501P +PERO3              =  0.800GPN400b + 0.200GPA501f + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68334} G3P501P +PERO5              =  0.650GPN400b + 0.350GPA501f + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68335} G3P501P +PERO6              =  0.650GPN400b + 0.350GPA501f + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68336} G3P501P +PERO9              =       GPN400b +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 68337} G1P509O                     =       G3P3001 +      GDD2000                                : ARR( 0.200E+15,  6007., 0.0);
+{ 68338} GPH5053                     =       G3H505O +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 68339} GPH5053 +GHO                =       GPN502r +      GHO                                    : ARR( 0.154E-10,     0., 0.0);
+{ 68340} GPH5053 +GHO                =       G3P501Q                                               : ARR( 0.416E-11,     0., 0.0);
+{ 68341} GPH5053 +GHO                =       G2P504O                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 68342} GPH5053 +GNO3               =       G3P501Q +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 68343} GPH5053+HV               =       G3H505O +      GNO2                                   :  0.100E+01*SUN;
+{ 68344} GPH5053+HV               =       G1P505u +      GHO                                    :  0.100E+01*SUN;
+{ 68345} GPH5053+HV               =       G3P3003 +      GDD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 68346} GPH5053+HV               =       G1P509P +      GNO2                                   :  0.100E+01*SUN;
+{ 68347} GPH5053+HV               =       GPH400v +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 68348} G3H505O +GHO2               =  0.800GGH505A + 0.200GAH505I + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 68349} G3H505O +GNO                =       GND400N +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 68350} G3H505O +GNO2               =       GPH5053                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 68351} G3H505O +GNO3               =       GND400N +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 68352} G3H505O +MEPERO             =  0.685GND400N + 0.315GAH505I + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68353} G3H505O +PERO1              =  0.800GND400N + 0.200GAH505I + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68354} G3H505O +PERO2              =  0.750GND400N + 0.250GAH505I + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68355} G3H505O +PERO3              =  0.800GND400N + 0.200GAH505I + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68356} G3H505O +PERO5              =  0.650GND400N + 0.350GAH505I + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68357} G3H505O +PERO6              =  0.650GND400N + 0.350GAH505I + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68358} G3H505O +PERO9              =       GND400N +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 68359} G3P501Q +GHO2               =  0.800GPG501c + 0.200GPA501g + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 68360} G3P501Q +GNO                =       GPH400v + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 68361} G3P501Q +GNO2               =       GPP500w                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 68362} G3P501Q +GNO3               =       GPH400v + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 68363} G3P501Q +MEPERO             =  0.685GPH400v + 0.315GPA501g + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68364} G3P501Q +PERO1              =  0.800GPH400v + 0.200GPA501g + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68365} G3P501Q +PERO2              =  0.750GPH400v + 0.250GPA501g + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68366} G3P501Q +PERO3              =  0.800GPH400v + 0.200GPA501g + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68367} G3P501Q +PERO5              =  0.650GPH400v + 0.350GPA501g + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68368} G3P501Q +PERO6              =  0.650GPH400v + 0.350GPA501g + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68369} G3P501Q +PERO9              =       GPH400v +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 68370} G1P509P                     =       G3P3003 +      GDD2000                                : ARR( 0.200E+15,  5662., 0.0);
+{ 68371} GPN502q                     =       G3N502p +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 68372} GPN502q +GHO                =       GPN502r +      GHO2                                   : ARR( 0.392E-11,     0., 0.0);
+{ 68373} GPN502q +GHO                =       G3P501R                                               : ARR( 0.425E-11,     0., 0.0);
+{ 68374} GPN502q +GNO3               =       G3P501R +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 68375} GPN502q+HV               =       G3N502p +      GNO2                                   :  0.100E+01*SUN;
+{ 68376} GPN502q+HV               =       G3P3002 +      GDD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 68377} GPN502q+HV               =       G1P507t +      GNO2                                   :  0.100E+01*SUN;
+{ 68378} GPN502q+HV               =       GPD4007 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 68379} G3P501R +GHO2               =  0.800GPG500k + 0.200GPA500t + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 68380} G3P501R +GNO                =       GPD4007 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 68381} G3P501R +GNO2               =       GPP500S                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 68382} G3P501R +GNO3               =       GPD4007 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 68383} G3P501R +MEPERO             =  0.685GPD4007 + 0.315GPA500t + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68384} G3P501R +PERO1              =  0.800GPD4007 + 0.200GPA500t + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68385} G3P501R +PERO2              =  0.750GPD4007 + 0.250GPA500t + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68386} G3P501R +PERO3              =  0.800GPD4007 + 0.200GPA500t + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68387} G3P501R +PERO5              =  0.650GPD4007 + 0.350GPA500t + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68388} G3P501R +PERO6              =  0.650GPD4007 + 0.350GPA500t + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68389} G3P501R +PERO9              =       GPD4007 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 68390} GPN502r                     =       G3N502t +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 68391} GPN502r +GHO                =       G3P501S                                               : ARR( 0.420E-11,     0., 0.0);
+{ 68392} GPN502r +GNO3               =       G3P501S +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 68393} GPN502r+HV               =       G3N3005 +      GCO     +      GCO     +      GNO2     :  0.100E+01*SUN;
+{ 68394} GPN502r+HV               =       GCO     +      G3N3005 +      GNO2    +      GCO      :  0.100E+01*SUN;
+{ 68395} GPN502r+HV               =       G1P509Q +      GNO2                                   :  0.100E+01*SUN;
+{ 68396} GPN502r+HV               =       GPD4008 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 68397} G3N502t +GHO2               =  0.800GGN502q + 0.200GAN502o + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 68398} G3N502t +GNO                =       G3N3005 +      GNO2    +      GCO2    +      GCO      : ARR( 0.810E-11,  -270., 0.0);
+{ 68399} G3N502t +GNO2               =       GPN502r                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 68400} G3N502t +GNO3               =       G3N3005 +      GNO2    +      GCO2    +      GCO      : ARR( 0.500E-11,     0., 0.0);
+{ 68401} G3N502t +MEPERO             =  0.685G3N3005 + 0.315GAN502o + 0.685GCO2    + 0.685GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 68402} G3N502t +PERO1              =  0.800G3N3005 + 0.200GAN502o + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 68403} G3N502t +PERO2              =  0.750G3N3005 + 0.250GAN502o + 0.750GCO2    + 0.750GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 68404} G3N502t +PERO3              =  0.800G3N3005 + 0.200GAN502o + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 68405} G3N502t +PERO5              =  0.650G3N3005 + 0.350GAN502o + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 68406} G3N502t +PERO6              =  0.650G3N3005 + 0.350GAN502o + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 68407} G3N502t +PERO9              =       G3N3005 +      GCO2    +      GCO                     : ARR( 0.500E-11,  -500., 0.0);
+{ 68408} G3P501S +GHO2               =  0.800GPG501d + 0.200GPA501h + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 68409} G3P501S +GNO                =       GPD4008 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 68410} G3P501S +GNO2               =       GPP500x                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 68411} G3P501S +GNO3               =       GPD4008 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 68412} G3P501S +MEPERO             =  0.685GPD4008 + 0.315GPA501h + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68413} G3P501S +PERO1              =  0.800GPD4008 + 0.200GPA501h + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68414} G3P501S +PERO2              =  0.750GPD4008 + 0.250GPA501h + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68415} G3P501S +PERO3              =  0.800GPD4008 + 0.200GPA501h + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68416} G3P501S +PERO5              =  0.650GPD4008 + 0.350GPA501h + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68417} G3P501S +PERO6              =  0.650GPD4008 + 0.350GPA501h + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68418} G3P501S +PERO9              =       GPD4008 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 68419} G1P509Q                     =       GCO     +      GDD2000 +      GNO2    + 2.000GCO      : ARR( 0.200E+15,  5175., 0.0);
+{ 68420} GPH5054                     =       G3H504G +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 68421} GPH5054 +GHO                =       GPN502s +      GHO                                    : ARR( 0.984E-11,     0., 0.0);
+{ 68422} GPH5054 +GHO                =       G2P504R                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 68423} GPH5054+HV               =       G1P5061 +      GHO                                    :  0.100E+01*SUN;
+{ 68424} GPH5054+HV               =       G3H2000 +      G3P3001                                :  0.100E+01*SUN;
+{ 68425} GPH5054+HV               =       G1P509R +      GNO2                                   :  0.100E+01*SUN;
+{ 68426} GPH5054+HV               =       G3H504G +      GNO2                                   :  0.100E+01*SUN;
+{ 68427} G1P509R                     =       GPD500M +      GHO                                    : ARR( 0.160E+12,  4168., 0.0);
+{ 68428} G1P509R                     =       G3H2000 +      GPD2000 +      GCO                     : ARR( 0.200E+15,  5653., 0.0);
+{ 68429} GPN502s                     =       G3N502a +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 68430} GPN502s +GHO                =       G3P3001 + 2.000GCO                                    : ARR( 0.127E-10,     0., 0.0);
+{ 68431} GPN502s +GNO3               =       G3P3001 +      GHNO3   + 2.000GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 68432} GPN502s+HV               =       G3N502a +      GNO2                                   :  0.100E+01*SUN;
+{ 68433} GPN502s+HV               =       G1P509S +      GNO2                                   :  0.100E+01*SUN;
+{ 68434} GPN502s+HV               =       G3P3001 +      G3D2000                                :  0.100E+01*SUN;
+{ 68435} GPN502s+HV               =       G3P3001 +      GCO     +      GCO     +      GHO2     :  0.100E+01*SUN;
+{ 68436} GPN502s+HV               =       GPN400b +      GCO                                    :  0.100E+01*SUN;
+{ 68437} GPN502s+HV               =       GPN3006 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 68438} G1P509S                     =       GPD2000 +      G3D2000 +      GCO                     : ARR( 0.200E+15,  5618., 0.0);
+{ 68439} GPH5055                     =       G3H505P +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 68440} GPH5055 +GHO                =       GPD500O +      GHO                                    : ARR( 0.981E-11,     0., 0.0);
+{ 68441} GPH5055 +GHO                =       G2P504S                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 68442} GPH5055+HV               =       G1P5062 +      GHO                                    :  0.100E+01*SUN;
+{ 68443} GPH5055+HV               =       G3H2000 +      GCO     +      GNO2    + 2.000GCO      :  0.100E+01*SUN;
+{ 68444} GPH5055+HV               =       G3H2000 +      GCO     + 2.000GCO     +      GNO2     :  0.100E+01*SUN;
+{ 68445} GPH5055+HV               =       G3H2000 +      GCO     + 2.000GCO     +      GNO2     :  0.100E+01*SUN;
+{ 68446} G3H505P +GHO2               =  0.800GGH504q + 0.200GAH504t + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 68447} G3H505P +GNO                =       G3H2000 +      GNO2    +      GCO2    + 2.000GCO      : ARR( 0.810E-11,  -270., 0.0);
+{ 68448} G3H505P +GNO2               =       GPH5055                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 68449} G3H505P +GNO3               =       G3H2000 +      GNO2    +      GCO2    + 2.000GCO      : ARR( 0.500E-11,     0., 0.0);
+{ 68450} G3H505P +MEPERO             =  0.685G3H2000 + 0.315GAH504t + 0.685GCO2    + 1.370GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 68451} G3H505P +PERO1              =  0.800G3H2000 + 0.200GAH504t + 0.800GCO2    + 1.600GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 68452} G3H505P +PERO2              =  0.750G3H2000 + 0.250GAH504t + 0.750GCO2    + 1.500GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 68453} G3H505P +PERO3              =  0.800G3H2000 + 0.200GAH504t + 0.800GCO2    + 1.600GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 68454} G3H505P +PERO5              =  0.650G3H2000 + 0.350GAH504t + 0.650GCO2    + 1.300GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 68455} G3H505P +PERO6              =  0.650G3H2000 + 0.350GAH504t + 0.650GCO2    + 1.300GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 68456} G3H505P +PERO9              =       G3H2000 +      GCO2    + 2.000GCO                     : ARR( 0.500E-11,  -500., 0.0);
+{ 68457} GPD500O                     =       G3D500O +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 68458} GPD500O +GHO                =       GCO     +      GNO2    + 4.000GCO                     : ARR( 0.127E-10,     0., 0.0);
+{ 68459} GPD500O +GNO3               =       GCO     +      GHNO3   +      GNO2    + 4.000GCO      : ARR( 0.240E-14,     0., 0.0);
+{ 68460} GPD500O+HV               =       G3D2000 +      GCO     + 2.000GCO     +      GNO2     :  0.100E+01*SUN;
+{ 68461} GPD500O+HV               =       GCO     +      G3D2000 +      GNO2    + 2.000GCO      :  0.100E+01*SUN;
+{ 68462} GPD500O+HV               =       GCO     +      G3D2000 +      GNO2    + 2.000GCO      :  0.100E+01*SUN;
+{ 68463} GPD500O+HV               =  2.000GCO     +      GNO2    +      GHO2    + 3.000GCO      :  0.100E+01*SUN;
+{ 68464} GPD500O+HV               =       GPD4008 +      GCO                                    :  0.100E+01*SUN;
+{ 68465} GPD500O+HV               =       GPD3002 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 68466} G3D500O +GHO2               =  0.800GGD500O + 0.200GAD500P + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 68467} G3D500O +GNO                =       G3D2000 +      GNO2    +      GCO2    + 2.000GCO      : ARR( 0.810E-11,  -270., 0.0);
+{ 68468} G3D500O +GNO2               =       GPD500O                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 68469} G3D500O +GNO3               =       G3D2000 +      GNO2    +      GCO2    + 2.000GCO      : ARR( 0.500E-11,     0., 0.0);
+{ 68470} G3D500O +MEPERO             =  0.685G3D2000 + 0.315GAD500P + 0.685GCO2    + 1.370GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 68471} G3D500O +PERO1              =  0.800G3D2000 + 0.200GAD500P + 0.800GCO2    + 1.600GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 68472} G3D500O +PERO2              =  0.750G3D2000 + 0.250GAD500P + 0.750GCO2    + 1.500GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 68473} G3D500O +PERO3              =  0.800G3D2000 + 0.200GAD500P + 0.800GCO2    + 1.600GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 68474} G3D500O +PERO5              =  0.650G3D2000 + 0.350GAD500P + 0.650GCO2    + 1.300GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 68475} G3D500O +PERO6              =  0.650G3D2000 + 0.350GAD500P + 0.650GCO2    + 1.300GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 68476} G3D500O +PERO9              =       G3D2000 +      GCO2    + 2.000GCO                     : ARR( 0.500E-11,  -500., 0.0);
+{ 68477} GPH5056                     =       G3H505Q +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 68478} GPH5056 +GHO                =       GPN502s +      GHO                                    : ARR( 0.160E-10,     0., 0.0);
+{ 68479} GPH5056 +GHO                =       G3P501T                                               : ARR( 0.688E-10,     0., 0.0);
+{ 68480} GPH5056 +GNO3               =       G3P501T +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 68481} GPH5056+HV               =       G3H505Q +      GNO2                                   :  0.100E+01*SUN;
+{ 68482} GPH5056+HV               =       G1P509T +      GNO2                                   :  0.100E+01*SUN;
+{ 68483} GPH5056+HV               =       G3P3001 +      GDD2000 +      GHO                     :  0.100E+01*SUN;
+{ 68484} GPH5056+HV               =       G1P509O +      GHO                                    :  0.100E+01*SUN;
+{ 68485} GPH5056+HV               =       GPN400b +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 68486} G3H505Q +GHO2               =  0.800GGH505a + 0.200GAH504u + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 68487} G3H505Q +GNO                =       GHD400K + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 68488} G3H505Q +GNO2               =       GPH5056                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 68489} G3H505Q +GNO3               =       GHD400K + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 68490} G3H505Q +MEPERO             =  0.685GHD400K + 0.315GAH504u + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68491} G3H505Q +PERO1              =  0.800GHD400K + 0.200GAH504u + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68492} G3H505Q +PERO2              =  0.750GHD400K + 0.250GAH504u + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68493} G3H505Q +PERO3              =  0.800GHD400K + 0.200GAH504u + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68494} G3H505Q +PERO5              =  0.650GHD400K + 0.350GAH504u + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68495} G3H505Q +PERO6              =  0.650GHD400K + 0.350GAH504u + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68496} G3H505Q +PERO9              =       GHD400K +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 68497} G3P501T +GHO2               =  0.800GPG501h + 0.200GPA501l + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 68498} G3P501T +GNO                =       GPN400b +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 68499} G3P501T +GNO2               =       GPP500w                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 68500} G3P501T +GNO3               =       GPN400b +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 68501} G3P501T +MEPERO             =  0.685GPN400b + 0.315GPA501l + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68502} G3P501T +PERO1              =  0.800GPN400b + 0.200GPA501l + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68503} G3P501T +PERO2              =  0.750GPN400b + 0.250GPA501l + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68504} G3P501T +PERO3              =  0.800GPN400b + 0.200GPA501l + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68505} G3P501T +PERO5              =  0.650GPN400b + 0.350GPA501l + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68506} G3P501T +PERO6              =  0.650GPN400b + 0.350GPA501l + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68507} G3P501T +PERO9              =       GPN400b +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 68508} G1P509T                     =       G3P5011                                               : ARR( 0.800E+11,  4246., 0.0);
+{ 68509} G1P509T                     =       GCO     +      GHD400K +      GNO2                    : ARR( 0.200E+15,  6793., 0.0);
+{ 68510} G1P509T                     =       GPD2000 +      G3H3006                                : ARR( 0.200E+15,  6105., 0.0);
+{ 68511} GGH504i +GHO                =       GGH505a +      GHO2                                   : ARR( 0.128E-10,     0., 0.0);
+{ 68512} GGH504i +GHO                =       GGN502d +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 68513} GGH504i +GHO                =       G2G5054                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 68514} GGH504i +GHO                =       G3H5044                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 68515} GGH504i+HV               =       G1G506O +      GHO                                    :  0.100E+01*SUN;
+{ 68516} GGH504i+HV               =       G3H3004 +      GGD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 68517} GGH504i+HV               =       G1G507N +      GNO2                                   :  0.100E+01*SUN;
+{ 68518} GGH504i+HV               =       GHD400M +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 68519} G2G5054 +GNO                =       G1G506O +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 68520} G2G5054 +GNO                =       GGN502Y                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 68521} G2G5054 +GHO2               =       GGH504i                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 68522} G2G5054 +GNO3               =       G1G506O +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 68523} G2G5054 +MEPERO             =  0.340G1G506O + 0.330GGN501y + 0.330GGN502d                 : ARR( 0.565E-13,  -845., 0.0);
+{ 68524} G2G5054 +PERO1              =  0.460G1G506O + 0.270GGN501y + 0.270GGN502d                 : ARR( 0.434E-13,  -900., 0.0);
+{ 68525} G2G5054 +PERO2              =  0.400G1G506O + 0.300GGN501y + 0.300GGN502d                 : ARR( 0.162E-13, -1400., 0.0);
+{ 68526} G2G5054 +PERO3              =  0.460G1G506O + 0.270GGN501y + 0.270GGN502d                 : ARR( 0.488E-13, -1250., 0.0);
+{ 68527} G2G5054 +PERO5              =  0.460G1G506O + 0.270GGN501y + 0.270GGN502d                 : ARR( 0.183E-11,   450., 0.0);
+{ 68528} G2G5054 +PERO6              =  0.300G1G506O + 0.350GGN501y + 0.350GGN502d                 : ARR( 0.168E-13, -1300., 0.0);
+{ 68529} G2G5054 +PERO9              =  0.650G1G506O + 0.350GGN502d                                : ARR( 0.100E-10,     0., 0.0);
+{ 68530} G1G507N                     =       GGH503v +      GHO2                                   : ARR( 0.160E+12,  3981., 0.0);
+{ 68531} G1G507N                     =       G3H3004 +      GGD2000                                : ARR( 0.200E+15,  5359., 0.0);
+{ 68532} GPH5057                     =       G3H505R +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 68533} GPH5057 +GHO                =       GPD500O +      GHO                                    : ARR( 0.160E-10,     0., 0.0);
+{ 68534} GPH5057 +GHO                =       G3P501U                                               : ARR( 0.688E-10,     0., 0.0);
+{ 68535} GPH5057 +GNO3               =       G3P501U +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 68536} GPH5057+HV               =       G3H3006 +      GCO     +      GCO     +      GNO2     :  0.100E+01*SUN;
+{ 68537} GPH5057+HV               =       GCO     +      G3H3006 +      GNO2    +      GCO      :  0.100E+01*SUN;
+{ 68538} GPH5057+HV               =       G1P509Q +      GHO                                    :  0.100E+01*SUN;
+{ 68539} GPH5057+HV               =       GPD4008 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 68540} G3H505R +GHO2               =  0.800GGH505Y + 0.200GAH504v + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 68541} G3H505R +GNO                =       G3H3006 +      GNO2    +      GCO2    +      GCO      : ARR( 0.810E-11,  -270., 0.0);
+{ 68542} G3H505R +GNO2               =       GPH5057                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 68543} G3H505R +GNO3               =       G3H3006 +      GNO2    +      GCO2    +      GCO      : ARR( 0.500E-11,     0., 0.0);
+{ 68544} G3H505R +MEPERO             =  0.685G3H3006 + 0.315GAH504v + 0.685GCO2    + 0.685GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 68545} G3H505R +PERO1              =  0.800G3H3006 + 0.200GAH504v + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 68546} G3H505R +PERO2              =  0.750G3H3006 + 0.250GAH504v + 0.750GCO2    + 0.750GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 68547} G3H505R +PERO3              =  0.800G3H3006 + 0.200GAH504v + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 68548} G3H505R +PERO5              =  0.650G3H3006 + 0.350GAH504v + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 68549} G3H505R +PERO6              =  0.650G3H3006 + 0.350GAH504v + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 68550} G3H505R +PERO9              =       G3H3006 +      GCO2    +      GCO                     : ARR( 0.500E-11,  -500., 0.0);
+{ 68551} G3P501U +GHO2               =  0.800GPG501i + 0.200GPA501m + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 68552} G3P501U +GNO                =       GPD4008 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 68553} G3P501U +GNO2               =       GPP500y                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 68554} G3P501U +GNO3               =       GPD4008 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 68555} G3P501U +MEPERO             =  0.685GPD4008 + 0.315GPA501m + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68556} G3P501U +PERO1              =  0.800GPD4008 + 0.200GPA501m + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68557} G3P501U +PERO2              =  0.750GPD4008 + 0.250GPA501m + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68558} G3P501U +PERO3              =  0.800GPD4008 + 0.200GPA501m + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68559} G3P501U +PERO5              =  0.650GPD4008 + 0.350GPA501m + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68560} G3P501U +PERO6              =  0.650GPD4008 + 0.350GPA501m + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 68561} G3P501U +PERO9              =       GPD4008 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 68562} GGH504j +GHO                =       GGH505Y +      GHO2                                   : ARR( 0.128E-10,     0., 0.0);
+{ 68563} GGH504j +GHO                =       GGK500c +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 68564} GGH504j +GHO                =       G2G5055                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 68565} GGH504j +GHO                =       G3H5045                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 68566} GGH504j+HV               =       G1G506Q +      GHO                                    :  0.100E+01*SUN;
+{ 68567} GGH504j+HV               =       G3H3004 +      GCO     +      GHO2    +      GCO      :  0.100E+01*SUN;
+{ 68568} GGH504j+HV               =       GAH400c +      GCO2                                   :  0.100E+01*SUN;
+{ 68569} G2G5055 +GNO                =       G1G506Q +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 68570} G2G5055 +GNO                =       GGN502Z                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 68571} G2G5055 +GHO2               =       GGH504j                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 68572} G2G5055 +GNO3               =       G1G506Q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 68573} G2G5055 +MEPERO             =  0.340G1G506Q + 0.330GGK500b + 0.330GGK500c                 : ARR( 0.565E-13,  -845., 0.0);
+{ 68574} G2G5055 +PERO1              =  0.460G1G506Q + 0.270GGK500b + 0.270GGK500c                 : ARR( 0.434E-13,  -900., 0.0);
+{ 68575} G2G5055 +PERO2              =  0.400G1G506Q + 0.300GGK500b + 0.300GGK500c                 : ARR( 0.162E-13, -1400., 0.0);
+{ 68576} G2G5055 +PERO3              =  0.460G1G506Q + 0.270GGK500b + 0.270GGK500c                 : ARR( 0.488E-13, -1250., 0.0);
+{ 68577} G2G5055 +PERO5              =  0.460G1G506Q + 0.270GGK500b + 0.270GGK500c                 : ARR( 0.183E-11,   450., 0.0);
+{ 68578} G2G5055 +PERO6              =  0.300G1G506Q + 0.350GGK500b + 0.350GGK500c                 : ARR( 0.168E-13, -1300., 0.0);
+{ 68579} G2G5055 +PERO9              =  0.650G1G506Q + 0.350GGK500c                                : ARR( 0.100E-10,     0., 0.0);
+{ 68580} GPG500k                     =       G3G500W +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 68581} GPG500k +GHO                =       GPG501d +      GHO2                                   : ARR( 0.393E-11,     0., 0.0);
+{ 68582} GPG500k +GHO                =       G3P501R                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 68583} GPG500k+HV               =       GPD4007 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 68584} GPG500k+HV               =       G1P5067 +      GNO2                                   :  0.100E+01*SUN;
+{ 68585} GPG500k+HV               =       G3G3001 +      GPD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 68586} GPG500k+HV               =       G3G500W +      GNO2                                   :  0.100E+01*SUN;
+{ 68587} GPG500l                     =       G3G5017 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 68588} GPG500l +GHO                =       GPG500m +      GHO                                    : ARR( 0.154E-10,     0., 0.0);
+{ 68589} GPG500l +GHO                =       GPG501i +      GHO2                                   : ARR( 0.385E-11,     0., 0.0);
+{ 68590} GPG500l +GHO                =       G3P5011                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 68591} GPG500l +GHO                =       G2P504T                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 68592} GPG500l+HV               =       GPD4007 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 68593} GPG500l+HV               =       G1P5067 +      GHO                                    :  0.100E+01*SUN;
+{ 68594} GPG500l+HV               =       G3G3003 +      GPD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 68595} GPG500l+HV               =       G3G5017 +      GNO2                                   :  0.100E+01*SUN;
+{ 68596} GPG500m                     =       G3G500X +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 68597} GPG500m +GHO                =       GPG501g +      GHO2                                   : ARR( 0.390E-11,     0., 0.0);
+{ 68598} GPG500m +GHO                =       G3P501W                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 68599} GPG500m+HV               =       GPA4008 +      GCO2                                   :  0.100E+01*SUN;
+{ 68600} GPG500m+HV               =       GCO     +      G3P3002 +      GHO2    +      GCO      :  0.100E+01*SUN;
+{ 68601} GPG500m+HV               =       G3G500X +      GNO2                                   :  0.100E+01*SUN;
+{ 68602} G3P501W +GHO2               =  0.800GPG500m + 0.200GPA500v + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 68603} G3P501W +GNO                =       G3P3002 +      GNO2    +      GCO2    +      GCO      : ARR( 0.810E-11,  -270., 0.0);
+{ 68604} G3P501W +GNO2               =       GPP500U                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 68605} G3P501W +GNO3               =       G3P3002 +      GNO2    +      GCO2    +      GCO      : ARR( 0.500E-11,     0., 0.0);
+{ 68606} G3P501W +MEPERO             =  0.685G3P3002 + 0.315GPA500v + 0.685GCO2    + 0.685GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 68607} G3P501W +PERO1              =  0.800G3P3002 + 0.200GPA500v + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 68608} G3P501W +PERO2              =  0.750G3P3002 + 0.250GPA500v + 0.750GCO2    + 0.750GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 68609} G3P501W +PERO3              =  0.800G3P3002 + 0.200GPA500v + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 68610} G3P501W +PERO5              =  0.650G3P3002 + 0.350GPA500v + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 68611} G3P501W +PERO6              =  0.650G3P3002 + 0.350GPA500v + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 68612} G3P501W +PERO9              =       G3P3002 +      GCO2    +      GCO                     : ARR( 0.500E-11,  -500., 0.0);
+{ 68613} GPA500t                     =       G3A500c +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 68614} GPA500t +GHO                =       GPA501h +      GHO2                                   : ARR( 0.398E-11,     0., 0.0);
+{ 68615} GPA500t +GHO                =       GPD4007 +      GNO2    +      GCO2                    : ARR( 0.541E-12,     0., 0.0);
+{ 68616} GPA500t+HV               =       G1P5068 +      GNO2                                   :  0.100E+01*SUN;
+{ 68617} GPA500t+HV               =       G3A3001 +      GPD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 68618} GPA500t+HV               =       G3A500c +      GNO2                                   :  0.100E+01*SUN;
+{ 68619} GPA500u                     =       G3A501B +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 68620} GPA500u +GHO                =       GPA500v +      GHO                                    : ARR( 0.117E-10,     0., 0.0);
+{ 68621} GPA500u +GHO                =       GPA501m +      GHO2                                   : ARR( 0.397E-11,     0., 0.0);
+{ 68622} GPA500u +GHO                =       G2P504U                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 68623} GPA500u+HV               =       G1P5068 +      GHO                                    :  0.100E+01*SUN;
+{ 68624} GPA500u+HV               =       G3A3003 +      GPD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 68625} GPA500u+HV               =       G3A501B +      GNO2                                   :  0.100E+01*SUN;
+{ 68626} GPA500v                     =       G3A500d +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 68627} GPA500v +GHO                =       GPA501k +      GHO2                                   : ARR( 0.395E-11,     0., 0.0);
+{ 68628} GPA500v +GHO                =       G3P3002 +      GCO2    +      GCO                     : ARR( 0.537E-12,     0., 0.0);
+{ 68629} GPA500v+HV               =       GPD4007 +      GCO2                                   :  0.100E+01*SUN;
+{ 68630} GPA500v+HV               =       GCO     +      G3P3002 +      GHO     +      GCO      :  0.100E+01*SUN;
+{ 68631} GPA500v+HV               =       G3A500d +      GNO2                                   :  0.100E+01*SUN;
+{ 68632} GPP500S                     =       G3P500g +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 68633} GPP500S                     =       G3P501R +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 68634} GPP500S +GHO                =       GPP500x +      GHO2                                   : ARR( 0.401E-11,     0., 0.0);
+{ 68635} GPP500S+HV               =       G3P500g +      GNO2                                   :  0.100E+01*SUN;
+{ 68636} GPP500S+HV               =       G3P3002 +      GPD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 68637} GPP500S+HV               =       G1P5069 +      GNO2                                   :  0.100E+01*SUN;
+{ 68638} GPP500S+HV               =       G3P501R +      GNO2                                   :  0.100E+01*SUN;
+{ 68639} GPP500T                     =       G3P5019 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 68640} GPP500T                     =       G3P5011 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 68641} GPP500T +GHO                =       GPP500y +      GHO2                                   : ARR( 0.385E-11,     0., 0.0);
+{ 68642} GPP500T +GHO                =       GPP500U +      GHO                                    : ARR( 0.154E-10,     0., 0.0);
+{ 68643} GPP500T +GHO                =       G2P504W                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 68644} GPP500T+HV               =       G3P5019 +      GNO2                                   :  0.100E+01*SUN;
+{ 68645} GPP500T+HV               =       G3P3002 +      GPD2000 +      GHO                     :  0.100E+01*SUN;
+{ 68646} GPP500T+HV               =       G1P5069 +      GHO                                    :  0.100E+01*SUN;
+{ 68647} GPP500T+HV               =       G3P5011 +      GNO2                                   :  0.100E+01*SUN;
+{ 68648} GPP500U                     =       G3P500h +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 68649} GPP500U                     =       G3P501W +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 68650} GPP500U +GHO                =       GPP500z +      GHO2                                   : ARR( 0.397E-11,     0., 0.0);
+{ 68651} GPP500U+HV               =       G3P500h +      GNO2                                   :  0.100E+01*SUN;
+{ 68652} GPP500U+HV               =       G3P3002 +      GCO     +      GNO2    +      GCO      :  0.100E+01*SUN;
+{ 68653} GPP500U+HV               =       G3P3002 +      GCO     +      GCO     +      GNO2     :  0.100E+01*SUN;
+{ 68654} GGH504k +GHO                =       GGH503T +      GHO                                    : ARR( 0.168E-10,     0., 0.0);
+{ 68655} GGH504k +GHO                =       GGH504J +      GHO                                    : ARR( 0.860E-11,     0., 0.0);
+{ 68656} GGH504k +GHO                =       G2G503E                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 68657} GGH504k +GHO                =       G2G5056                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 68658} GGH504k +GHO                =       G3H504D                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 68659} GGH504k+HV               =       G1G504R +      GHO                                    :  0.100E+01*SUN;
+{ 68660} GGH504k+HV               =       G1G507O +      GHO                                    :  0.100E+01*SUN;
+{ 68661} GGH504k+HV               =       G1G507P +      GNO2                                   :  0.100E+01*SUN;
+{ 68662} GGH504k+HV               =       GHH400u +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 68663} G2G5056 +GNO                =       G1G507O +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 68664} G2G5056 +GNO                =       GGH505P                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 68665} G2G5056 +GHO2               =       GGH504k                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 68666} G2G5056 +GNO3               =       G1G507O +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 68667} G2G5056 +MEPERO             =  0.340G1G507O + 0.330GGH501Z + 0.330GGH504J                 : ARR( 0.565E-13,  -845., 0.0);
+{ 68668} G2G5056 +PERO1              =  0.460G1G507O + 0.270GGH501Z + 0.270GGH504J                 : ARR( 0.434E-13,  -900., 0.0);
+{ 68669} G2G5056 +PERO2              =  0.400G1G507O + 0.300GGH501Z + 0.300GGH504J                 : ARR( 0.162E-13, -1400., 0.0);
+{ 68670} G2G5056 +PERO3              =  0.460G1G507O + 0.270GGH501Z + 0.270GGH504J                 : ARR( 0.488E-13, -1250., 0.0);
+{ 68671} G2G5056 +PERO5              =  0.460G1G507O + 0.270GGH501Z + 0.270GGH504J                 : ARR( 0.183E-11,   450., 0.0);
+{ 68672} G2G5056 +PERO6              =  0.300G1G507O + 0.350GGH501Z + 0.350GGH504J                 : ARR( 0.168E-13, -1300., 0.0);
+{ 68673} G2G5056 +PERO9              =  0.650G1G507O + 0.350GGH504J                                : ARR( 0.100E-10,     0., 0.0);
+{ 68674} G1G507O                     =       GCH2O   +      GGN400U +      GHO                     : ARR( 0.200E+15,  7395., 0.0);
+{ 68675} G1G507O                     =       GHD2000 +      GGD3001 +      GNO2                    : ARR( 0.200E+15,  6367., 0.0);
+{ 68676} G1G507P                     =       GHD2000 +      GGD3001 +      GHO                     : ARR( 0.200E+15,  3953., 0.0);
+{ 68677} G1G507P                     =       GHH3005 +      GGD2000 +      GHO2                    : ARR( 0.200E+15,  3929., 0.0);
+{ 68678} GGH504l +GHO                =       GGH503q +      GHO                                    : ARR( 0.183E-10,     0., 0.0);
+{ 68679} GGH504l +GHO                =       GGH504F +      GHO                                    : ARR( 0.469E-10,     0., 0.0);
+{ 68680} GGH504l +GHO                =       GGH505Q +      GHO                                    : ARR( 0.469E-10,     0., 0.0);
+{ 68681} GGH504l +GHO                =       GGH505U +      GHO2                                   : ARR( 0.715E-11,     0., 0.0);
+{ 68682} GGH504l+HV               =       G1G504U +      GHO                                    :  0.100E+01*SUN;
+{ 68683} GGH504l+HV               =       G1G5076 +      GHO                                    :  0.100E+01*SUN;
+{ 68684} GGH504l+HV               =       G1G507P +      GHO                                    :  0.100E+01*SUN;
+{ 68685} GGH504l+HV               =       GHH400l +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 68686} GAG400G +GHO                =       GAG400H +      GHO                                    : ARR( 0.157E-10,     0., 0.0);
+{ 68687} GAG400G +GHO                =       G2A4011                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 68688} GAG400G +GHO                =       G3A400K                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 68689} GAG400G+HV               =       GGH3007 +      GCO2                                   :  0.100E+01*SUN;
+{ 68690} GAG400G+HV               =       G1A4019 +      GHO                                    :  0.100E+01*SUN;
+{ 68691} GAG400G+HV               =       GAD3002 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 68692} GAG400H +GHO                =       G3A400N                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 68693} GAG400H +GHO                =       GCO     +      GHO2    +      GCO2    + 2.000GCO      : ARR( 0.520E-12,     0., 0.0);
+{ 68694} GAG400H+HV               =       GGD3002 +      GCO2                                   :  0.100E+01*SUN;
+{ 68695} GAG400H+HV               =  2.000GCO     +      GHO     +      GHO2    + 2.000GCO      :  0.100E+01*SUN;
+{ 68696} GAG400H+HV               =       GAA3004 +      GCO2                                   :  0.100E+01*SUN;
+{ 68697} G3A400N +GHO2               =  0.800GAG400H + 0.200GAA400B + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 68698} G3A400N +GNO                =  2.000GCO     + 2.000GNO2    + 2.000GHO     + 2.000GCO2     : ARR( 0.405E-11,  -270., 0.0);
+{ 68699} G3A400N +GNO                =  4.000GCO                                                   : ARR( 0.405E-11,  -270., 0.0);
+{ 68700} G3A400N +GNO2               =       GPA400K                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 68701} G3A400N +GNO3               =  2.000GCO     + 2.000GNO2    + 2.000GHO     + 2.000GCO2     : ARR( 0.250E-11,     0., 0.0);
+{ 68702} G3A400N +GNO3               =  4.000GCO                                                   : ARR( 0.250E-11,     0., 0.0);
+{ 68703} G3A400N +MEPERO             =  1.370GCO     + 0.630GAA400B + 1.370GHO     + 1.370GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 68704} G3A400N +MEPERO             =  2.740GCO                                                   : ARR( 0.500E-11,     0., 0.0);
+{ 68705} G3A400N +PERO1              =  1.600GCO     + 0.400GAA400B + 1.600GHO     + 1.600GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 68706} G3A400N +PERO1              =  3.200GCO                                                   : ARR( 0.500E-11,     0., 0.0);
+{ 68707} G3A400N +PERO2              =  1.500GCO     + 0.500GAA400B + 1.500GHO     + 1.500GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 68708} G3A400N +PERO2              =  3.000GCO                                                   : ARR( 0.500E-11,     0., 0.0);
+{ 68709} G3A400N +PERO3              =  1.600GCO     + 0.400GAA400B + 1.600GHO     + 1.600GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 68710} G3A400N +PERO3              =  3.200GCO                                                   : ARR( 0.500E-11,     0., 0.0);
+{ 68711} G3A400N +PERO5              =  1.300GCO     + 0.700GAA400B + 1.300GHO     + 1.300GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 68712} G3A400N +PERO5              =  2.600GCO                                                   : ARR( 0.500E-11,     0., 0.0);
+{ 68713} G3A400N +PERO6              =  1.300GCO     + 0.700GAA400B + 1.300GHO     + 1.300GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 68714} G3A400N +PERO6              =  2.600GCO                                                   : ARR( 0.500E-11,     0., 0.0);
+{ 68715} G3A400N +PERO9              =       GCO     +      GHO     +      GCO2    + 2.000GCO      : ARR( 0.500E-11,  -500., 0.0);
+{ 68716} GAA400A +GHO                =       GAA400B +      GHO                                    : ARR( 0.121E-10,     0., 0.0);
+{ 68717} GAA400A +GHO                =       G2A4012                                               : ARR( 0.203E-11,  -190., 0.0);
+{ 68718} GAA400A+HV               =       GAH3007 +      GCO2                                   :  0.100E+01*SUN;
+{ 68719} GAA400A+HV               =       G1A401A +      GHO                                    :  0.100E+01*SUN;
+{ 68720} GAA400B +GHO                =       GCO     +      GHO     +      GCO2    + 2.000GCO      : ARR( 0.104E-11,     0., 0.0);
+{ 68721} GAA400B+HV               =       GAD3002 +      GCO2                                   :  0.100E+01*SUN;
+{ 68722} GAA400B+HV               =  2.000GCO     + 2.000GHO     + 2.000GCO                     :  0.100E+01*SUN;
+{ 68723} GPA400J                     =       G3A400K +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 68724} GPA400J +GHO                =       GPA400K +      GHO                                    : ARR( 0.157E-10,     0., 0.0);
+{ 68725} GPA400J +GHO                =       G2P4016                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 68726} GPA400J+HV               =       GPH3007 +      GCO2                                   :  0.100E+01*SUN;
+{ 68727} GPA400J+HV               =       G1P401F +      GHO                                    :  0.100E+01*SUN;
+{ 68728} GPA400J+HV               =       G3A400K +      GNO2                                   :  0.100E+01*SUN;
+{ 68729} GPA400K                     =       G3A400N +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 68730} GPA400K +GHO                =       GCO     +      GNO2    +      GCO2    + 2.000GCO      : ARR( 0.520E-12,     0., 0.0);
+{ 68731} GPA400K+HV               =       GPD3002 +      GCO2                                   :  0.100E+01*SUN;
+{ 68732} GPA400K+HV               =  2.000GCO     +      GHO     +      GNO2    + 2.000GCO      :  0.100E+01*SUN;
+{ 68733} GPA400K+HV               =  2.000GCO     +      GHO     +      GNO2    + 2.000GCO      :  0.100E+01*SUN;
+{ 68734} GAG500k +GHO                =       GAG500b +      GHO                                    : ARR( 0.853E-11,     0., 0.0);
+{ 68735} GAG500k +GHO                =       G2A5062                                               : ARR( 0.892E-12,     0., 0.0);
+{ 68736} GAG500k +GHO                =       G2A504F                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 68737} GAG500k +GHO                =       G3A500i                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 68738} GAG500k+HV               =       G1A508X +      GNO2                                   :  0.100E+01*SUN;
+{ 68739} GAG500k+HV               =       G1A505a +      GHO                                    :  0.100E+01*SUN;
+{ 68740} GAG500k+HV               =       G2A401A +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 68741} G2A5062 +GNO                =       G1A508Y +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 68742} G2A5062 +GNO                =       GAG501j                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 68743} G2A5062 +GHO2               =       GAG501k                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 68744} G2A5062 +GNO3               =       G1A508Y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 68745} G2A5062 +MEPERO             =  0.340G1A508Y + 0.330GAG501I + 0.330GAG501l                 : ARR( 0.565E-13,  -845., 0.0);
+{ 68746} G2A5062 +PERO1              =  0.460G1A508Y + 0.270GAG501I + 0.270GAG501l                 : ARR( 0.434E-13,  -900., 0.0);
+{ 68747} G2A5062 +PERO2              =  0.400G1A508Y + 0.300GAG501I + 0.300GAG501l                 : ARR( 0.162E-13, -1400., 0.0);
+{ 68748} G2A5062 +PERO3              =  0.460G1A508Y + 0.270GAG501I + 0.270GAG501l                 : ARR( 0.488E-13, -1250., 0.0);
+{ 68749} G2A5062 +PERO5              =  0.460G1A508Y + 0.270GAG501I + 0.270GAG501l                 : ARR( 0.183E-11,   450., 0.0);
+{ 68750} G2A5062 +PERO6              =  0.300G1A508Y + 0.350GAG501I + 0.350GAG501l                 : ARR( 0.168E-13, -1300., 0.0);
+{ 68751} G2A5062 +PERO9              =  0.650G1A508Y + 0.350GAG501l                                : ARR( 0.100E-10,     0., 0.0);
+{ 68752} G1A508X                     =       GCO     +      GGH400Q +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 68753} G1A508Y                     =       GAH400r +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 68754} GAG500l +GHO                =       GAG500b +      GHO2                                   : ARR( 0.212E-11,     0., 0.0);
+{ 68755} GAG500l +GHO                =       G2A5063                                               : ARR( 0.885E-12,     0., 0.0);
+{ 68756} GAG500l +GHO                =       G3A500m                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 68757} GAG500l +GHO                =       GGD4001 +      GNO2    +      GCO2                    : ARR( 0.534E-12,     0., 0.0);
+{ 68758} GAG500l+HV               =       G1A508Z +      GNO2                                   :  0.100E+01*SUN;
+{ 68759} GAG500l+HV               =       G2A400G +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 68760} G2A5063 +GNO                =       G1A508a +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 68761} G2A5063 +GNO                =       GAG501m                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 68762} G2A5063 +GHO2               =       GAG501n                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 68763} G2A5063 +GNO3               =       G1A508a +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 68764} G2A5063 +MEPERO             =  0.340G1A508a + 0.330GAG501J + 0.330GAG501Y                 : ARR( 0.565E-13,  -845., 0.0);
+{ 68765} G2A5063 +PERO1              =  0.460G1A508a + 0.270GAG501J + 0.270GAG501Y                 : ARR( 0.434E-13,  -900., 0.0);
+{ 68766} G2A5063 +PERO2              =  0.400G1A508a + 0.300GAG501J + 0.300GAG501Y                 : ARR( 0.162E-13, -1400., 0.0);
+{ 68767} G2A5063 +PERO3              =  0.460G1A508a + 0.270GAG501J + 0.270GAG501Y                 : ARR( 0.488E-13, -1250., 0.0);
+{ 68768} G2A5063 +PERO5              =  0.460G1A508a + 0.270GAG501J + 0.270GAG501Y                 : ARR( 0.183E-11,   450., 0.0);
+{ 68769} G2A5063 +PERO6              =  0.300G1A508a + 0.350GAG501J + 0.350GAG501Y                 : ARR( 0.168E-13, -1300., 0.0);
+{ 68770} G2A5063 +PERO9              =  0.650G1A508a + 0.350GAG501Y                                : ARR( 0.100E-10,     0., 0.0);
+{ 68771} G1A508Z                     =       GCO     +      GGD4001 +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 68772} G1A508Z                     =       GAD2000 +      GGD3000 +      GHO2                    : ARR( 0.200E+15,  5475., 0.0);
+{ 68773} G1A508a                     =       GAN3006 +      GGD2000 +      GHO2                    : ARR( 0.200E+15,  5475., 0.0);
+{ 68774} G1A508a                     =       GAN400P +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 68775} GAG500m +GHO                =       G3A500t                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 68776} GAG500m +GHO                =       GGN400M +      GNO2    +      GCO2                    : ARR( 0.543E-12,     0., 0.0);
+{ 68777} GAG500m+HV               =       G1A506n +      GNO2                                   :  0.100E+01*SUN;
+{ 68778} GAG500m+HV               =       G1A505b +      GNO2                                   :  0.100E+01*SUN;
+{ 68779} GAG500m+HV               =       GAN400N +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 68780} GAG500n +GHO                =       GAG500o +      GHO                                    : ARR( 0.258E-10,     0., 0.0);
+{ 68781} GAG500n +GHO                =       G2A504G                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 68782} GAG500n +GHO                =       G3A500u                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 68783} GAG500n+HV               =       G1A508b +      GNO2                                   :  0.100E+01*SUN;
+{ 68784} GAG500n+HV               =       G1A505b +      GHO                                    :  0.100E+01*SUN;
+{ 68785} GAG500n+HV               =       GAN400N +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 68786} G1A508b                     =       GCO     +      GGH400R +      GHO                     : ARR( 0.200E+15,  4918., 0.0);
+{ 68787} GAG500o +GHO                =       G3A501W                                               : ARR( 0.206E-11,  -190., 0.0);
+{ 68788} GAG500o +GHO                =       GGD4005 +      GNO2    +      GCO2                    : ARR( 0.563E-12,     0., 0.0);
+{ 68789} GAG500o+HV               =       G1A506p +      GNO2                                   :  0.100E+01*SUN;
+{ 68790} GAG500o+HV               =       GAA4001 +      GCO2                                   :  0.100E+01*SUN;
+{ 68791} G3A501W +GHO2               =  0.800GAG500o + 0.200GAA500a + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 68792} G3A501W +GNO                =       G3A4002 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 68793} G3A501W +GNO2               =       GPA5011                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 68794} G3A501W +GNO3               =       G3A4002 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 68795} G3A501W +MEPERO             =  0.685G3A4002 + 0.315GAA500a + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 68796} G3A501W +PERO1              =  0.800G3A4002 + 0.200GAA500a + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 68797} G3A501W +PERO2              =  0.750G3A4002 + 0.250GAA500a + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 68798} G3A501W +PERO3              =  0.800G3A4002 + 0.200GAA500a + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 68799} G3A501W +PERO5              =  0.650G3A4002 + 0.350GAA500a + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 68800} G3A501W +PERO6              =  0.650G3A4002 + 0.350GAA500a + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 68801} G3A501W +PERO9              =       G3A4002 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 68802} GAA500Y +GHO                =       GAA500a +      GNO2                                   : ARR( 0.112E-12,     0., 0.0);
+{ 68803} GAA500Y +GHO                =       GAN400N +      GNO2    +      GCO2                    : ARR( 0.109E-11,     0., 0.0);
+{ 68804} GAA500Y+HV               =       G1A505c +      GNO2                                   :  0.200E+01*SUN;
+{ 68805} GAA500Z +GHO                =       GAA500a +      GHO                                    : ARR( 0.197E-10,     0., 0.0);
+{ 68806} GAA500Z +GHO                =       G2A504H                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 68807} GAA500Z+HV               =       G1A508c +      GNO2                                   :  0.100E+01*SUN;
+{ 68808} GAA500Z+HV               =       G1A505c +      GHO                                    :  0.100E+01*SUN;
+{ 68809} G1A508c                     =       GAH400Q +      GCO     +      GHO                     : ARR( 0.200E+15,  4918., 0.0);
+{ 68810} GAA500a +GHO                =       G2A5064                                               : ARR( 0.172E-12,     0., 0.0);
+{ 68811} GAA500a +GHO                =       GAA500i +      GNO2                                   : ARR( 0.168E-12,     0., 0.0);
+{ 68812} GAA500a +GHO                =       G3A4002 +      GCO2                                   : ARR( 0.520E-12,     0., 0.0);
+{ 68813} GAA500a +GHO                =       GAD4005 +      GNO2    +      GCO2                    : ARR( 0.520E-12,     0., 0.0);
+{ 68814} GAA500a+HV               =       GAN400N +      GCO2                                   :  0.100E+01*SUN;
+{ 68815} GAA500a+HV               =       G1A5073 +      GNO2                                   :  0.100E+01*SUN;
+{ 68816} G2A5064 +GNO                =       G1A508d +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 68817} G2A5064 +GNO                =       GAA500s                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 68818} G2A5064 +GHO2               =       GAA5011                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 68819} G2A5064 +GNO3               =       G1A508d +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 68820} G2A5064 +MEPERO             =  0.340G1A508d + 0.330GAA5012 + 0.330GAA500x                 : ARR( 0.565E-13,  -845., 0.0);
+{ 68821} G2A5064 +PERO1              =  0.460G1A508d + 0.270GAA5012 + 0.270GAA500x                 : ARR( 0.434E-13,  -900., 0.0);
+{ 68822} G2A5064 +PERO2              =  0.400G1A508d + 0.300GAA5012 + 0.300GAA500x                 : ARR( 0.162E-13, -1400., 0.0);
+{ 68823} G2A5064 +PERO3              =  0.460G1A508d + 0.270GAA5012 + 0.270GAA500x                 : ARR( 0.488E-13, -1250., 0.0);
+{ 68824} G2A5064 +PERO5              =  0.460G1A508d + 0.270GAA5012 + 0.270GAA500x                 : ARR( 0.183E-11,   450., 0.0);
+{ 68825} G2A5064 +PERO6              =  0.300G1A508d + 0.350GAA5012 + 0.350GAA500x                 : ARR( 0.168E-13, -1300., 0.0);
+{ 68826} G2A5064 +PERO9              =  0.650G1A508d + 0.350GAA500x                                : ARR( 0.100E-10,     0., 0.0);
+{ 68827} G1A508d                     =       GAN3006 +      GCO     +      GHO     +      GCO      : ARR( 0.200E+15,  2436., 0.0);
+{ 68828} GAA500b +GHO                =       GAA500R +      GHO                                    : ARR( 0.945E-11,     0., 0.0);
+{ 68829} GAA500b +GHO                =       G2A504I                                               : ARR( 0.218E-11,  -190., 0.0);
+{ 68830} GAA500b+HV               =       G1A508e +      GNO2                                   :  0.100E+01*SUN;
+{ 68831} GAA500b+HV               =       G1A505d +      GHO                                    :  0.100E+01*SUN;
+{ 68832} G1A508e                     =       GAH400T +      GCO     +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 68833} GAA500c +GHO                =       G2A5065                                               : ARR( 0.671E-12,     0., 0.0);
+{ 68834} GAA500c +GHO                =       GAA500R +      GHO2                                   : ARR( 0.217E-11,     0., 0.0);
+{ 68835} GAA500c +GHO                =       G2A400G +      GCO2                                   : ARR( 0.547E-12,     0., 0.0);
+{ 68836} GAA500c +GHO                =       GAD4001 +      GNO2    +      GCO2                    : ARR( 0.547E-12,     0., 0.0);
+{ 68837} GAA500c+HV               =       G1A506W +      GNO2                                   :  0.100E+01*SUN;
+{ 68838} G2A5065 +GNO                =       G1A508f +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 68839} G2A5065 +GNO                =       GAA5013                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 68840} G2A5065 +GHO2               =       GAA5014                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 68841} G2A5065 +GNO3               =       G1A508f +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 68842} G2A5065 +MEPERO             =  0.340G1A508f + 0.330GAA500k + 0.330GAA5012                 : ARR( 0.565E-13,  -845., 0.0);
+{ 68843} G2A5065 +PERO1              =  0.460G1A508f + 0.270GAA500k + 0.270GAA5012                 : ARR( 0.434E-13,  -900., 0.0);
+{ 68844} G2A5065 +PERO2              =  0.400G1A508f + 0.300GAA500k + 0.300GAA5012                 : ARR( 0.162E-13, -1400., 0.0);
+{ 68845} G2A5065 +PERO3              =  0.460G1A508f + 0.270GAA500k + 0.270GAA5012                 : ARR( 0.488E-13, -1250., 0.0);
+{ 68846} G2A5065 +PERO5              =  0.460G1A508f + 0.270GAA500k + 0.270GAA5012                 : ARR( 0.183E-11,   450., 0.0);
+{ 68847} G2A5065 +PERO6              =  0.300G1A508f + 0.350GAA500k + 0.350GAA5012                 : ARR( 0.168E-13, -1300., 0.0);
+{ 68848} G2A5065 +PERO9              =  0.650G1A508f + 0.350GAA5012                                : ARR( 0.100E-10,     0., 0.0);
+{ 68849} G1A508f                     =       GAN3006 +      GAD2000 +      GHO2                    : ARR( 0.200E+15,  5475., 0.0);
+{ 68850} G1A508f                     =       GAN400P +      GCO     +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 68851} GPA500w                     =       G3A500i +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 68852} GPA500w +GHO                =       GPA500k +      GHO                                    : ARR( 0.861E-11,     0., 0.0);
+{ 68853} GPA500w +GHO                =       G2P506f                                               : ARR( 0.901E-12,     0., 0.0);
+{ 68854} GPA500w +GHO                =       G2P504X                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 68855} GPA500w+HV               =       G1P509U +      GNO2                                   :  0.100E+01*SUN;
+{ 68856} GPA500w+HV               =       G1P506A +      GHO                                    :  0.100E+01*SUN;
+{ 68857} GPA500w+HV               =       G3A500i +      GNO2                                   :  0.100E+01*SUN;
+{ 68858} G2P506f +GNO                =       G1P509W +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 68859} G2P506f +GNO                =       GPA501n                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 68860} G2P506f +GHO2               =       GPA501o                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 68861} G2P506f +GNO3               =       G1P509W +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 68862} G2P506f +MEPERO             =  0.340G1P509W + 0.330GPA501N + 0.330GPA501p                 : ARR( 0.565E-13,  -845., 0.0);
+{ 68863} G2P506f +PERO1              =  0.460G1P509W + 0.270GPA501N + 0.270GPA501p                 : ARR( 0.434E-13,  -900., 0.0);
+{ 68864} G2P506f +PERO2              =  0.400G1P509W + 0.300GPA501N + 0.300GPA501p                 : ARR( 0.162E-13, -1400., 0.0);
+{ 68865} G2P506f +PERO3              =  0.460G1P509W + 0.270GPA501N + 0.270GPA501p                 : ARR( 0.488E-13, -1250., 0.0);
+{ 68866} G2P506f +PERO5              =  0.460G1P509W + 0.270GPA501N + 0.270GPA501p                 : ARR( 0.183E-11,   450., 0.0);
+{ 68867} G2P506f +PERO6              =  0.300G1P509W + 0.350GPA501N + 0.350GPA501p                 : ARR( 0.168E-13, -1300., 0.0);
+{ 68868} G2P506f +PERO9              =  0.650G1P509W + 0.350GPA501p                                : ARR( 0.100E-10,     0., 0.0);
+{ 68869} G1P509U                     =       GCO     +      GPH400T +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 68870} G1P509W                     =       GAH400r +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 68871} GPA500x                     =       G3A500m +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 68872} GPA500x +GHO                =       GPA500k +      GHO2                                   : ARR( 0.218E-11,     0., 0.0);
+{ 68873} GPA500x +GHO                =       G2P506g                                               : ARR( 0.910E-12,     0., 0.0);
+{ 68874} GPA500x +GHO                =       GPD4001 +      GNO2    +      GCO2                    : ARR( 0.549E-12,     0., 0.0);
+{ 68875} GPA500x+HV               =       G1P5071 +      GNO2                                   :  0.100E+01*SUN;
+{ 68876} GPA500x+HV               =       G3A500m +      GNO2                                   :  0.100E+01*SUN;
+{ 68877} G2P506g +GNO                =       G1P509X +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 68878} G2P506g +GNO                =       GPA501q                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 68879} G2P506g +GHO2               =       GPA501r                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 68880} G2P506g +GNO3               =       G1P509X +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 68881} G2P506g +MEPERO             =  0.340G1P509X + 0.330GPA501O + 0.330GPA501c                 : ARR( 0.565E-13,  -845., 0.0);
+{ 68882} G2P506g +PERO1              =  0.460G1P509X + 0.270GPA501O + 0.270GPA501c                 : ARR( 0.434E-13,  -900., 0.0);
+{ 68883} G2P506g +PERO2              =  0.400G1P509X + 0.300GPA501O + 0.300GPA501c                 : ARR( 0.162E-13, -1400., 0.0);
+{ 68884} G2P506g +PERO3              =  0.460G1P509X + 0.270GPA501O + 0.270GPA501c                 : ARR( 0.488E-13, -1250., 0.0);
+{ 68885} G2P506g +PERO5              =  0.460G1P509X + 0.270GPA501O + 0.270GPA501c                 : ARR( 0.183E-11,   450., 0.0);
+{ 68886} G2P506g +PERO6              =  0.300G1P509X + 0.350GPA501O + 0.350GPA501c                 : ARR( 0.168E-13, -1300., 0.0);
+{ 68887} G2P506g +PERO9              =  0.650G1P509X + 0.350GPA501c                                : ARR( 0.100E-10,     0., 0.0);
+{ 68888} G1P509X                     =       GAN3006 +      GPD2000 +      GHO2                    : ARR( 0.200E+15,  5475., 0.0);
+{ 68889} G1P509X                     =       GAN400P +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 68890} GPA500y                     =       G3A500t +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 68891} GPA500y +GHO                =       GPA5013 +      GNO2                                   : ARR( 0.531E-13,     0., 0.0);
+{ 68892} GPA500y +GHO                =       G2P506h                                               : ARR( 0.565E-13,     0., 0.0);
+{ 68893} GPA500y +GHO                =       GPA5011 +      GNO2                                   : ARR( 0.718E-13,     0., 0.0);
+{ 68894} GPA500y +GHO                =       GPN400N +      GNO2    +      GCO2                    : ARR( 0.520E-12,     0., 0.0);
+{ 68895} GPA500y+HV               =       G1P506J +      GNO2                                   :  0.100E+01*SUN;
+{ 68896} GPA500y+HV               =       G1P506B +      GNO2                                   :  0.100E+01*SUN;
+{ 68897} GPA500y+HV               =       G3A500t +      GNO2                                   :  0.100E+01*SUN;
+{ 68898} G2P506h +GNO                =       G1P509Y +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 68899} G2P506h +GNO                =       GPA501T                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 68900} G2P506h +GHO2               =       GPA501n                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 68901} G2P506h +GNO3               =       G1P509Y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 68902} G2P506h +MEPERO             =  0.340G1P509Y + 0.330GPA501q + 0.330GPA501f                 : ARR( 0.565E-13,  -845., 0.0);
+{ 68903} G2P506h +PERO1              =  0.460G1P509Y + 0.270GPA501q + 0.270GPA501f                 : ARR( 0.434E-13,  -900., 0.0);
+{ 68904} G2P506h +PERO2              =  0.400G1P509Y + 0.300GPA501q + 0.300GPA501f                 : ARR( 0.162E-13, -1400., 0.0);
+{ 68905} G2P506h +PERO3              =  0.460G1P509Y + 0.270GPA501q + 0.270GPA501f                 : ARR( 0.488E-13, -1250., 0.0);
+{ 68906} G2P506h +PERO5              =  0.460G1P509Y + 0.270GPA501q + 0.270GPA501f                 : ARR( 0.183E-11,   450., 0.0);
+{ 68907} G2P506h +PERO6              =  0.300G1P509Y + 0.350GPA501q + 0.350GPA501f                 : ARR( 0.168E-13, -1300., 0.0);
+{ 68908} G2P506h +PERO9              =  0.650G1P509Y + 0.350GPA501f                                : ARR( 0.100E-10,     0., 0.0);
+{ 68909} G1P509Y                     =       GAD2000 +      GPN3006 +      GNO2                    : ARR( 0.200E+15,  5846., 0.0);
+{ 68910} G1P509Y                     =       GAN3006 +      GPD2000 +      GNO2                    : ARR( 0.200E+15,  5846., 0.0);
+{ 68911} GPA500z                     =       G3A500u +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 68912} GPA500z +GHO                =       GPA5011 +      GHO                                    : ARR( 0.259E-10,     0., 0.0);
+{ 68913} GPA500z +GHO                =       G2P504Y                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 68914} GPA500z+HV               =       G1P509Z +      GNO2                                   :  0.100E+01*SUN;
+{ 68915} GPA500z+HV               =       G1P506B +      GHO                                    :  0.100E+01*SUN;
+{ 68916} GPA500z+HV               =       G3A500u +      GNO2                                   :  0.100E+01*SUN;
+{ 68917} G1P509Z                     =       GCO     +      GPH400U +      GHO                     : ARR( 0.200E+15,  4918., 0.0);
+{ 68918} GPA5011                     =       G3A501W +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 68919} GPA5011 +GHO                =       GPA501H +      GNO2                                   : ARR( 0.168E-12,     0., 0.0);
+{ 68920} GPA5011 +GHO                =       G2P506i                                               : ARR( 0.172E-12,     0., 0.0);
+{ 68921} GPA5011 +GHO                =       GPD4005 +      GNO2    +      GCO2                    : ARR( 0.520E-12,     0., 0.0);
+{ 68922} GPA5011+HV               =       G1P507W +      GNO2                                   :  0.100E+01*SUN;
+{ 68923} GPA5011+HV               =       G3A4002 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 68924} G2P506i +GNO                =       G1P509a +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 68925} G2P506i +GNO                =       GPA501W                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 68926} G2P506i +GHO2               =       GPA501p                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 68927} G2P506i +GNO3               =       G1P509a +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 68928} G2P506i +MEPERO             =  0.340G1P509a + 0.330GPA501c + 0.330GPA501h                 : ARR( 0.565E-13,  -845., 0.0);
+{ 68929} G2P506i +PERO1              =  0.460G1P509a + 0.270GPA501c + 0.270GPA501h                 : ARR( 0.434E-13,  -900., 0.0);
+{ 68930} G2P506i +PERO2              =  0.400G1P509a + 0.300GPA501c + 0.300GPA501h                 : ARR( 0.162E-13, -1400., 0.0);
+{ 68931} G2P506i +PERO3              =  0.460G1P509a + 0.270GPA501c + 0.270GPA501h                 : ARR( 0.488E-13, -1250., 0.0);
+{ 68932} G2P506i +PERO5              =  0.460G1P509a + 0.270GPA501c + 0.270GPA501h                 : ARR( 0.183E-11,   450., 0.0);
+{ 68933} G2P506i +PERO6              =  0.300G1P509a + 0.350GPA501c + 0.350GPA501h                 : ARR( 0.168E-13, -1300., 0.0);
+{ 68934} G2P506i +PERO9              =  0.650G1P509a + 0.350GPA501h                                : ARR( 0.100E-10,     0., 0.0);
+{ 68935} G1P509a                     =       GAN3006 +      GCO     +      GNO2    +      GCO      : ARR( 0.200E+15,  2436., 0.0);
+{ 68936} GAH504w +GHO                =       GAH505T +      GHO                                    : ARR( 0.479E-10,     0., 0.0);
+{ 68937} GAH504w +GHO                =       GAH504N +      GHO                                    : ARR( 0.479E-10,     0., 0.0);
+{ 68938} GAH504w +GHO                =       GAH503m +      GHO                                    : ARR( 0.187E-10,     0., 0.0);
+{ 68939} GAH504w+HV               =       G1A5089 +      GHO                                    :  0.100E+01*SUN;
+{ 68940} GAH504w+HV               =       G1A507f +      GHO                                    :  0.100E+01*SUN;
+{ 68941} GAH504w+HV               =       G1A505f +      GHO                                    :  0.100E+01*SUN;
+{ 68942} GAH504x +GHO                =       GAH505b +      GHO2                                   : ARR( 0.516E-11,     0., 0.0);
+{ 68943} GAH504x +GHO                =       GAH505T +      GHO2                                   : ARR( 0.114E-10,     0., 0.0);
+{ 68944} GAH504x +GHO                =       GAH504Q +      GHO                                    : ARR( 0.458E-10,     0., 0.0);
+{ 68945} GAH504x +GHO                =       GAH503o +      GHO                                    : ARR( 0.179E-10,     0., 0.0);
+{ 68946} GAH504x+HV               =       G1A507i +      GHO                                    :  0.100E+01*SUN;
+{ 68947} GAH504x+HV               =       G1A505h +      GHO                                    :  0.100E+01*SUN;
+{ 68948} GPG500n                     =       G3G500l +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 68949} GPG500n +GHO                =       G3P500c                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 68950} GPG500n+HV               =       GPN400N +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 68951} GPG500n+HV               =       G1P506H +      GNO2                                   :  0.100E+01*SUN;
+{ 68952} GPG500n+HV               =       G1P507P +      GNO2                                   :  0.100E+01*SUN;
+{ 68953} GPG500n+HV               =       G3G500l +      GNO2                                   :  0.100E+01*SUN;
+{ 68954} GPP500W                     =       G3P500c +      GNO2                                   : ARR( 0.400E+16, 12800., 0.0);
+{ 68955} GPP500W +GHO                =       GPP500X +      GNO2                                   : ARR( 0.144E-12,     0., 0.0);
+{ 68956} GPP500W +GHO                =       G2P506j                                               : ARR( 0.565E-13,     0., 0.0);
+{ 68957} GPP500W+HV               =       G3P500c +      GNO2                                   :  0.200E+01*SUN;
+{ 68958} GPP500W+HV               =       G1P506M +      GNO2                                   :  0.200E+01*SUN;
+{ 68959} G2P506j +GNO                =       G1P509b +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 68960} G2P506j +GNO                =       GPP500n                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 68961} G2P506j +GHO2               =       GPP5011                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 68962} G2P506j +GNO3               =       G1P509b +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 68963} G2P506j +MEPERO             =  0.340G1P509b + 0.330GPP5012 + 0.330GPP500v                 : ARR( 0.565E-13,  -845., 0.0);
+{ 68964} G2P506j +PERO1              =  0.460G1P509b + 0.270GPP5012 + 0.270GPP500v                 : ARR( 0.434E-13,  -900., 0.0);
+{ 68965} G2P506j +PERO2              =  0.400G1P509b + 0.300GPP5012 + 0.300GPP500v                 : ARR( 0.162E-13, -1400., 0.0);
+{ 68966} G2P506j +PERO3              =  0.460G1P509b + 0.270GPP5012 + 0.270GPP500v                 : ARR( 0.488E-13, -1250., 0.0);
+{ 68967} G2P506j +PERO5              =  0.460G1P509b + 0.270GPP5012 + 0.270GPP500v                 : ARR( 0.183E-11,   450., 0.0);
+{ 68968} G2P506j +PERO6              =  0.300G1P509b + 0.350GPP5012 + 0.350GPP500v                 : ARR( 0.168E-13, -1300., 0.0);
+{ 68969} G2P506j +PERO9              =  0.650G1P509b + 0.350GPP500v                                : ARR( 0.100E-10,     0., 0.0);
+{ 68970} G1P509b                     =       GPD2000 +      GPN3006 +      GNO2                    : ARR( 0.400E+15,  5846., 0.0);
+{ 68971} GPG500o                     =       G3G501K +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 68972} GPG500o +GHO                =       GPG5019 +      GNO2                                   : ARR( 0.238E-12,     0., 0.0);
+{ 68973} GPG500o +GHO                =       G3P500d                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 68974} GPG500o+HV               =       GPD4005 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 68975} GPG500o+HV               =       G1P5081 +      GNO2                                   :  0.100E+01*SUN;
+{ 68976} GPG500o+HV               =       G3G4005 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 68977} G3G501K +GHO2               =  0.800GGG500Y + 0.200GAG5017 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 68978} G3G501K +GNO                =       G3G4005 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 68979} G3G501K +GNO2               =       GPG500o                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 68980} G3G501K +GNO3               =       G3G4005 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 68981} G3G501K +MEPERO             =  0.685G3G4005 + 0.315GAG5017 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 68982} G3G501K +PERO1              =  0.800G3G4005 + 0.200GAG5017 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 68983} G3G501K +PERO2              =  0.750G3G4005 + 0.250GAG5017 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 68984} G3G501K +PERO3              =  0.800G3G4005 + 0.200GAG5017 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 68985} G3G501K +PERO5              =  0.650G3G4005 + 0.350GAG5017 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 68986} G3G501K +PERO6              =  0.650G3G4005 + 0.350GAG5017 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 68987} G3G501K +PERO9              =       G3G4005 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 68988} GPP500X                     =       G3P501X +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 68989} GPP500X                     =       G3P500d +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 68990} GPP500X +GHO                =       G2P506k                                               : ARR( 0.172E-12,     0., 0.0);
+{ 68991} GPP500X +GHO                =       GPP500k +      GNO2                                   : ARR( 0.228E-12,     0., 0.0);
+{ 68992} GPP500X+HV               =       G3P4002 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 68993} GPP500X+HV               =       G1P5083 +      GNO2                                   :  0.100E+01*SUN;
+{ 68994} GPP500X+HV               =       G3P500d +      GNO2                                   :  0.100E+01*SUN;
+{ 68995} G3P501X +GHO2               =  0.800GPG500q + 0.200GPA5013 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 68996} G3P501X +GNO                =       G3P4002 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 68997} G3P501X +GNO2               =       GPP500X                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 68998} G3P501X +GNO3               =       G3P4002 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 68999} G3P501X +MEPERO             =  0.685G3P4002 + 0.315GPA5013 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 69000} G3P501X +PERO1              =  0.800G3P4002 + 0.200GPA5013 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 69001} G3P501X +PERO2              =  0.750G3P4002 + 0.250GPA5013 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 69002} G3P501X +PERO3              =  0.800G3P4002 + 0.200GPA5013 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 69003} G3P501X +PERO5              =  0.650G3P4002 + 0.350GPA5013 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 69004} G3P501X +PERO6              =  0.650G3P4002 + 0.350GPA5013 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 69005} G3P501X +PERO9              =       G3P4002 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 69006} G2P506k +GNO                =       G1P509c +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 69007} G2P506k +GNO                =       GPP500p                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 69008} G2P506k +GHO2               =       GPP5013                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 69009} G2P506k +GNO3               =       G1P509c +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 69010} G2P506k +MEPERO             =  0.340G1P509c + 0.330GPP500s + 0.330GPP500x                 : ARR( 0.565E-13,  -845., 0.0);
+{ 69011} G2P506k +PERO1              =  0.460G1P509c + 0.270GPP500s + 0.270GPP500x                 : ARR( 0.434E-13,  -900., 0.0);
+{ 69012} G2P506k +PERO2              =  0.400G1P509c + 0.300GPP500s + 0.300GPP500x                 : ARR( 0.162E-13, -1400., 0.0);
+{ 69013} G2P506k +PERO3              =  0.460G1P509c + 0.270GPP500s + 0.270GPP500x                 : ARR( 0.488E-13, -1250., 0.0);
+{ 69014} G2P506k +PERO5              =  0.460G1P509c + 0.270GPP500s + 0.270GPP500x                 : ARR( 0.183E-11,   450., 0.0);
+{ 69015} G2P506k +PERO6              =  0.300G1P509c + 0.350GPP500s + 0.350GPP500x                 : ARR( 0.168E-13, -1300., 0.0);
+{ 69016} G2P506k +PERO9              =  0.650G1P509c + 0.350GPP500x                                : ARR( 0.100E-10,     0., 0.0);
+{ 69017} G1P509c                     =       GPN3006 +      GCO     +      GNO2    +      GCO      : ARR( 0.200E+15,  2436., 0.0);
+{ 69018} GPG400G                     =       G3G400N +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 69019} GPG400G +GHO                =       GPG400H +      GHO                                    : ARR( 0.153E-10,     0., 0.0);
+{ 69020} GPG400G +GHO                =       G3P400K                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 69021} GPG400G +GHO                =       G2P4017                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 69022} GPG400G+HV               =       GPD3002 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 69023} GPG400G+HV               =       G1P401G +      GHO                                    :  0.100E+01*SUN;
+{ 69024} GPG400G+HV               =       G3G3003 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 69025} G3G400N +GHO2               =  0.800GGG400C + 0.200GAG400G + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 69026} G3G400N +GNO                =       G3G3003 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 69027} G3G400N +GNO2               =       GPG400G                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 69028} G3G400N +GNO3               =       G3G3003 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 69029} G3G400N +MEPERO             =  0.685G3G3003 + 0.315GAG400G + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 69030} G3G400N +PERO1              =  0.800G3G3003 + 0.200GAG400G + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 69031} G3G400N +PERO2              =  0.750G3G3003 + 0.250GAG400G + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 69032} G3G400N +PERO3              =  0.800G3G3003 + 0.200GAG400G + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 69033} G3G400N +PERO5              =  0.650G3G3003 + 0.350GAG400G + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 69034} G3G400N +PERO6              =  0.650G3G3003 + 0.350GAG400G + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 69035} G3G400N +PERO9              =       G3G3003 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 69036} GPG400H                     =       G3G400O +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 69037} GPG400H +GHO                =       G3P400N                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 69038} GPG400H+HV               =       GPA3004 +      GCO2                                   :  0.100E+01*SUN;
+{ 69039} GPG400H+HV               =  2.000GCO     +      GHO2    +      GNO2    + 2.000GCO      :  0.100E+01*SUN;
+{ 69040} GPG400H+HV               =  2.000GCO     +      GHO2    +      GNO2    + 2.000GCO      :  0.100E+01*SUN;
+{ 69041} G3G400O +GHO2               =  0.800GGG400A + 0.200GAG400H + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 69042} G3G400O +GNO                =  2.000GCO     + 2.000GNO2    + 2.000GHO2    + 2.000GCO2     : ARR( 0.405E-11,  -270., 0.0);
+{ 69043} G3G400O +GNO                =  4.000GCO                                                   : ARR( 0.405E-11,  -270., 0.0);
+{ 69044} G3G400O +GNO2               =       GPG400H                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 69045} G3G400O +GNO3               =  2.000GCO     + 2.000GNO2    + 2.000GHO2    + 2.000GCO2     : ARR( 0.250E-11,     0., 0.0);
+{ 69046} G3G400O +GNO3               =  4.000GCO                                                   : ARR( 0.250E-11,     0., 0.0);
+{ 69047} G3G400O +MEPERO             =  1.370GCO     + 0.630GAG400H + 1.370GHO2    + 1.370GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 69048} G3G400O +MEPERO             =  2.740GCO                                                   : ARR( 0.500E-11,     0., 0.0);
+{ 69049} G3G400O +PERO1              =  1.600GCO     + 0.400GAG400H + 1.600GHO2    + 1.600GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 69050} G3G400O +PERO1              =  3.200GCO                                                   : ARR( 0.500E-11,     0., 0.0);
+{ 69051} G3G400O +PERO2              =  1.500GCO     + 0.500GAG400H + 1.500GHO2    + 1.500GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 69052} G3G400O +PERO2              =  3.000GCO                                                   : ARR( 0.500E-11,     0., 0.0);
+{ 69053} G3G400O +PERO3              =  1.600GCO     + 0.400GAG400H + 1.600GHO2    + 1.600GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 69054} G3G400O +PERO3              =  3.200GCO                                                   : ARR( 0.500E-11,     0., 0.0);
+{ 69055} G3G400O +PERO5              =  1.300GCO     + 0.700GAG400H + 1.300GHO2    + 1.300GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 69056} G3G400O +PERO5              =  2.600GCO                                                   : ARR( 0.500E-11,     0., 0.0);
+{ 69057} G3G400O +PERO6              =  1.300GCO     + 0.700GAG400H + 1.300GHO2    + 1.300GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 69058} G3G400O +PERO6              =  2.600GCO                                                   : ARR( 0.500E-11,     0., 0.0);
+{ 69059} G3G400O +PERO9              =       GCO     +      GHO2    +      GCO2    + 2.000GCO      : ARR( 0.500E-11,  -500., 0.0);
+{ 69060} G3P400N +GHO2               =  0.800GPG400H + 0.200GPA400K + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 69061} G3P400N +GNO                =       GCO     + 2.000GNO2    +      GCO2    + 2.000GCO      : ARR( 0.810E-11,  -270., 0.0);
+{ 69062} G3P400N +GNO2               =       GPP400C                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 69063} G3P400N +GNO3               =       GCO     + 2.000GNO2    +      GCO2    + 2.000GCO      : ARR( 0.500E-11,     0., 0.0);
+{ 69064} G3P400N +MEPERO             =  1.370GCO     + 0.630GPA400K + 1.370GNO2    + 1.370GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 69065} G3P400N +MEPERO             =  2.740GCO                                                   : ARR( 0.500E-11,     0., 0.0);
+{ 69066} G3P400N +PERO1              =  1.600GCO     + 0.400GPA400K + 1.600GNO2    + 1.600GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 69067} G3P400N +PERO1              =  3.200GCO                                                   : ARR( 0.500E-11,     0., 0.0);
+{ 69068} G3P400N +PERO2              =  1.500GCO     + 0.500GPA400K + 1.500GNO2    + 1.500GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 69069} G3P400N +PERO2              =  3.000GCO                                                   : ARR( 0.500E-11,     0., 0.0);
+{ 69070} G3P400N +PERO3              =  1.600GCO     + 0.400GPA400K + 1.600GNO2    + 1.600GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 69071} G3P400N +PERO3              =  3.200GCO                                                   : ARR( 0.500E-11,     0., 0.0);
+{ 69072} G3P400N +PERO5              =  1.300GCO     + 0.700GPA400K + 1.300GNO2    + 1.300GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 69073} G3P400N +PERO5              =  2.600GCO                                                   : ARR( 0.500E-11,     0., 0.0);
+{ 69074} G3P400N +PERO6              =  1.300GCO     + 0.700GPA400K + 1.300GNO2    + 1.300GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 69075} G3P400N +PERO6              =  2.600GCO                                                   : ARR( 0.500E-11,     0., 0.0);
+{ 69076} G3P400N +PERO9              =       GCO     +      GNO2    +      GCO2    + 2.000GCO      : ARR( 0.500E-11,  -500., 0.0);
+{ 69077} GPA400L                     =       G3A400O +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 69078} GPA400L +GHO                =       GPA400K +      GHO                                    : ARR( 0.117E-10,     0., 0.0);
+{ 69079} GPA400L +GHO                =       G2P4018                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 69080} GPA400L+HV               =       G1P401H +      GHO                                    :  0.100E+01*SUN;
+{ 69081} GPA400L+HV               =       G3A3003 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 69082} G3A400O +GHO2               =  0.800GAG400M + 0.200GAA400A + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 69083} G3A400O +GNO                =       G3A3003 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 69084} G3A400O +GNO2               =       GPA400L                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 69085} G3A400O +GNO3               =       G3A3003 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 69086} G3A400O +MEPERO             =  0.685G3A3003 + 0.315GAA400A + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 69087} G3A400O +PERO1              =  0.800G3A3003 + 0.200GAA400A + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 69088} G3A400O +PERO2              =  0.750G3A3003 + 0.250GAA400A + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 69089} G3A400O +PERO3              =  0.800G3A3003 + 0.200GAA400A + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 69090} G3A400O +PERO5              =  0.650G3A3003 + 0.350GAA400A + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 69091} G3A400O +PERO6              =  0.650G3A3003 + 0.350GAA400A + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 69092} G3A400O +PERO9              =       G3A3003 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 69093} GPP400B                     =       G3P400O +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 69094} GPP400B                     =       G3P400K +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 69095} GPP400B +GHO                =       GPP400C +      GHO                                    : ARR( 0.153E-10,     0., 0.0);
+{ 69096} GPP400B +GHO                =       G2P4019                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 69097} GPP400B+HV               =       G3P3003 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 69098} GPP400B+HV               =       G1P401I +      GHO                                    :  0.100E+01*SUN;
+{ 69099} GPP400B+HV               =       G3P400K +      GNO2                                   :  0.100E+01*SUN;
+{ 69100} G3P400O +GHO2               =  0.800GPG400M + 0.200GPA400J + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 69101} G3P400O +GNO                =       G3P3003 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 69102} G3P400O +GNO2               =       GPP400B                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 69103} G3P400O +GNO3               =       G3P3003 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 69104} G3P400O +MEPERO             =  0.685G3P3003 + 0.315GPA400J + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 69105} G3P400O +PERO1              =  0.800G3P3003 + 0.200GPA400J + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 69106} G3P400O +PERO2              =  0.750G3P3003 + 0.250GPA400J + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 69107} G3P400O +PERO3              =  0.800G3P3003 + 0.200GPA400J + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 69108} G3P400O +PERO5              =  0.650G3P3003 + 0.350GPA400J + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 69109} G3P400O +PERO6              =  0.650G3P3003 + 0.350GPA400J + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 69110} G3P400O +PERO9              =       G3P3003 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 69111} GPP400C                     =       G3P400N +      GNO2                                   : ARR( 0.400E+16, 12800., 0.0);
+{ 69112} GPP400C+HV               =  2.000GCO     + 2.000GNO2    + 2.000GCO                     :  0.200E+01*SUN;
+{ 69113} GPP400C+HV               =  2.000GCO     + 2.000GNO2    + 2.000GCO                     :  0.100E+01*SUN;
+{ 69114} GGH504m +GHO                =       GGH503A +      GHO                                    : ARR( 0.162E-10,     0., 0.0);
+{ 69115} GGH504m +GHO                =       GGH501v +      GHO                                    : ARR( 0.414E-10,     0., 0.0);
+{ 69116} GGH504m +GHO                =       G2G5057                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 69117} GGH504m +GHO                =       G2G503I                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 69118} GGH504m +GHO                =       G3H504B                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 69119} GGH504m+HV               =       G1G502M +      GHO                                    :  0.100E+01*SUN;
+{ 69120} GGH504m+HV               =       G1G504Z +      GHO                                    :  0.100E+01*SUN;
+{ 69121} GGH504m+HV               =       G1G507Q +      GNO2                                   :  0.100E+01*SUN;
+{ 69122} GGH504m+HV               =       GHH400B +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 69123} G2G5057 +GNO                =       G1G502M +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 69124} G2G5057 +GNO                =       GGH500x                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 69125} G2G5057 +GHO2               =       GGH504m                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 69126} G2G5057 +GNO3               =       G1G502M +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 69127} G2G5057 +MEPERO             =  0.480G1G502M + 0.260GGH5013 + 0.260GGH503A                 : ARR( 0.164E-12,  -795., 0.0);
+{ 69128} G2G5057 +PERO1              =  0.600G1G502M + 0.200GGH5013 + 0.200GGH503A                 : ARR( 0.126E-12,  -850., 0.0);
+{ 69129} G2G5057 +PERO2              =  0.560G1G502M + 0.220GGH5013 + 0.220GGH503A                 : ARR( 0.471E-13, -1350., 0.0);
+{ 69130} G2G5057 +PERO3              =  0.600G1G502M + 0.200GGH5013 + 0.200GGH503A                 : ARR( 0.142E-12, -1200., 0.0);
+{ 69131} G2G5057 +PERO5              =  0.600G1G502M + 0.200GGH5013 + 0.200GGH503A                 : ARR( 0.533E-11,   500., 0.0);
+{ 69132} G2G5057 +PERO6              =  0.460G1G502M + 0.270GGH5013 + 0.270GGH503A                 : ARR( 0.488E-13, -1250., 0.0);
+{ 69133} G2G5057 +PERO9              =  0.800G1G502M + 0.200GGH503A                                : ARR( 0.100E-10,     0., 0.0);
+{ 69134} G1G507Q                     =       GGH501L +      GHO                                    : ARR( 0.160E+12,  2186., 0.0);
+{ 69135} G1G507Q                     =       GHH400B +      GCO     +      GHO2                    : ARR( 0.200E+15,  4949., 0.0);
+{ 69136} GPG500p                     =       G3G500s +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 69137} GPG500p +GHO                =       GPG500q +      GHO                                    : ARR( 0.254E-10,     0., 0.0);
+{ 69138} GPG500p +GHO                =       G3P500x                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 69139} GPG500p +GHO                =       G2P504d                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 69140} GPG500p+HV               =       GPN400N +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 69141} GPG500p+HV               =       G1P506H +      GHO                                    :  0.100E+01*SUN;
+{ 69142} GPG500p+HV               =       G1P509d +      GNO2                                   :  0.100E+01*SUN;
+{ 69143} GPG500p+HV               =       G3G500s +      GNO2                                   :  0.100E+01*SUN;
+{ 69144} G1P509d                     =       GGH400R +      GCO     +      GNO2                    : ARR( 0.200E+15,  4949., 0.0);
+{ 69145} GPG500q                     =       G3G500n +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 69146} GPG500q +GHO                =       GPG5019 +      GNO2                                   : ARR( 0.238E-12,     0., 0.0);
+{ 69147} GPG500q +GHO                =       G3P501X                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 69148} GPG500q+HV               =       GPA4001 +      GCO2                                   :  0.100E+01*SUN;
+{ 69149} GPG500q+HV               =       G1P507R +      GNO2                                   :  0.100E+01*SUN;
+{ 69150} GPG500q+HV               =       G3G500n +      GNO2                                   :  0.100E+01*SUN;
+{ 69151} GPG500r                     =       G3G500f +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 69152} GPG500r +GHO                =       G2P506l                                               : ARR( 0.865E-12,     0., 0.0);
+{ 69153} GPG500r +GHO                =       GPG500e +      GHO                                    : ARR( 0.828E-11,     0., 0.0);
+{ 69154} GPG500r +GHO                =       G3P500k                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 69155} GPG500r +GHO                =       G2P504e                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 69156} GPG500r+HV               =       G2P401J +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 69157} GPG500r+HV               =       G1P506I +      GHO                                    :  0.100E+01*SUN;
+{ 69158} GPG500r+HV               =       G1P509e +      GNO2                                   :  0.100E+01*SUN;
+{ 69159} GPG500r+HV               =       G3G500f +      GNO2                                   :  0.100E+01*SUN;
+{ 69160} G2P506l +GNO                =       G1P509f +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 69161} G2P506l +GNO                =       GPG501j                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 69162} G2P506l +GHO2               =       GPG501k                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 69163} G2P506l +GNO3               =       G1P509f +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 69164} G2P506l +MEPERO             =  0.340G1P509f + 0.330GPG501I + 0.330GPG501l                 : ARR( 0.565E-13,  -845., 0.0);
+{ 69165} G2P506l +PERO1              =  0.460G1P509f + 0.270GPG501I + 0.270GPG501l                 : ARR( 0.434E-13,  -900., 0.0);
+{ 69166} G2P506l +PERO2              =  0.400G1P509f + 0.300GPG501I + 0.300GPG501l                 : ARR( 0.162E-13, -1400., 0.0);
+{ 69167} G2P506l +PERO3              =  0.460G1P509f + 0.270GPG501I + 0.270GPG501l                 : ARR( 0.488E-13, -1250., 0.0);
+{ 69168} G2P506l +PERO5              =  0.460G1P509f + 0.270GPG501I + 0.270GPG501l                 : ARR( 0.183E-11,   450., 0.0);
+{ 69169} G2P506l +PERO6              =  0.300G1P509f + 0.350GPG501I + 0.350GPG501l                 : ARR( 0.168E-13, -1300., 0.0);
+{ 69170} G2P506l +PERO9              =  0.650G1P509f + 0.350GPG501l                                : ARR( 0.100E-10,     0., 0.0);
+{ 69171} G1P509e                     =       GGH400Q +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 69172} G1P509f                     =       GCO     +      GPH400s +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 69173} GPG500s                     =       G3G500i +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 69174} GPG500s +GHO                =       G2P506m                                               : ARR( 0.890E-12,     0., 0.0);
+{ 69175} GPG500s +GHO                =       GPG500e +      GHO2                                   : ARR( 0.213E-11,     0., 0.0);
+{ 69176} GPG500s +GHO                =       G3P500o                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 69177} GPG500s+HV               =       G2P400H +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 69178} GPG500s+HV               =       G1P509g +      GNO2                                   :  0.100E+01*SUN;
+{ 69179} GPG500s+HV               =       G3G500i +      GNO2                                   :  0.100E+01*SUN;
+{ 69180} G2P506m +GNO                =       G1P509h +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 69181} G2P506m +GNO                =       GPG501m                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 69182} G2P506m +GHO2               =       GPG501n                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 69183} G2P506m +GNO3               =       G1P509h +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 69184} G2P506m +MEPERO             =  0.340G1P509h + 0.330GPG501J + 0.330GPG501W                 : ARR( 0.565E-13,  -845., 0.0);
+{ 69185} G2P506m +PERO1              =  0.460G1P509h + 0.270GPG501J + 0.270GPG501W                 : ARR( 0.434E-13,  -900., 0.0);
+{ 69186} G2P506m +PERO2              =  0.400G1P509h + 0.300GPG501J + 0.300GPG501W                 : ARR( 0.162E-13, -1400., 0.0);
+{ 69187} G2P506m +PERO3              =  0.460G1P509h + 0.270GPG501J + 0.270GPG501W                 : ARR( 0.488E-13, -1250., 0.0);
+{ 69188} G2P506m +PERO5              =  0.460G1P509h + 0.270GPG501J + 0.270GPG501W                 : ARR( 0.183E-11,   450., 0.0);
+{ 69189} G2P506m +PERO6              =  0.300G1P509h + 0.350GPG501J + 0.350GPG501W                 : ARR( 0.168E-13, -1300., 0.0);
+{ 69190} G2P506m +PERO9              =  0.650G1P509h + 0.350GPG501W                                : ARR( 0.100E-10,     0., 0.0);
+{ 69191} G1P509g                     =       GGD3000 +      GPD2000 +      GHO2                    : ARR( 0.200E+15,  5475., 0.0);
+{ 69192} G1P509g                     =       GGD4001 +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 69193} G1P509h                     =       GCO     +      GPN400P +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 69194} G1P509h                     =       GGD2000 +      GPN3006 +      GHO2                    : ARR( 0.200E+15,  5475., 0.0);
+{ 69195} GPA5012                     =       G3A5015 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 69196} GPA5012 +GHO                =       GPA5013 +      GHO                                    : ARR( 0.193E-10,     0., 0.0);
+{ 69197} GPA5012 +GHO                =       G2P504f                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 69198} GPA5012+HV               =       G1P506J +      GHO                                    :  0.100E+01*SUN;
+{ 69199} GPA5012+HV               =       G1P509i +      GNO2                                   :  0.100E+01*SUN;
+{ 69200} GPA5012+HV               =       G3A5015 +      GNO2                                   :  0.100E+01*SUN;
+{ 69201} G1P509i                     =       GAH400Q +      GCO     +      GNO2                    : ARR( 0.200E+15,  4949., 0.0);
+{ 69202} GPA5013                     =       G3A500v +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 69203} GPA5013 +GHO                =       G2P506n                                               : ARR( 0.172E-12,     0., 0.0);
+{ 69204} GPA5013 +GHO                =       GPA501H +      GNO2                                   : ARR( 0.228E-12,     0., 0.0);
+{ 69205} GPA5013 +GHO                =       G3P4002 +      GCO2                                   : ARR( 0.520E-12,     0., 0.0);
+{ 69206} GPA5013+HV               =       GPN400N +      GCO2                                   :  0.100E+01*SUN;
+{ 69207} GPA5013+HV               =       G1P507T +      GNO2                                   :  0.100E+01*SUN;
+{ 69208} GPA5013+HV               =       G3A500v +      GNO2                                   :  0.100E+01*SUN;
+{ 69209} G2P506n +GNO                =       G1P509j +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 69210} G2P506n +GNO                =       GPA501X                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 69211} G2P506n +GHO2               =       GPA501s                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 69212} G2P506n +GNO3               =       G1P509j +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 69213} G2P506n +MEPERO             =  0.340G1P509j + 0.330GPA501t + 0.330GPA501i                 : ARR( 0.565E-13,  -845., 0.0);
+{ 69214} G2P506n +PERO1              =  0.460G1P509j + 0.270GPA501t + 0.270GPA501i                 : ARR( 0.434E-13,  -900., 0.0);
+{ 69215} G2P506n +PERO2              =  0.400G1P509j + 0.300GPA501t + 0.300GPA501i                 : ARR( 0.162E-13, -1400., 0.0);
+{ 69216} G2P506n +PERO3              =  0.460G1P509j + 0.270GPA501t + 0.270GPA501i                 : ARR( 0.488E-13, -1250., 0.0);
+{ 69217} G2P506n +PERO5              =  0.460G1P509j + 0.270GPA501t + 0.270GPA501i                 : ARR( 0.183E-11,   450., 0.0);
+{ 69218} G2P506n +PERO6              =  0.300G1P509j + 0.350GPA501t + 0.350GPA501i                 : ARR( 0.168E-13, -1300., 0.0);
+{ 69219} G2P506n +PERO9              =  0.650G1P509j + 0.350GPA501i                                : ARR( 0.100E-10,     0., 0.0);
+{ 69220} G1P509j                     =       GCO     +      GPN3006 +      GHO     +      GCO      : ARR( 0.200E+15,  2436., 0.0);
+{ 69221} GPA5014                     =       G3A500l +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 69222} GPA5014 +GHO                =       GPA500n +      GHO                                    : ARR( 0.910E-11,     0., 0.0);
+{ 69223} GPA5014 +GHO                =       G2P504g                                               : ARR( 0.210E-11,  -190., 0.0);
+{ 69224} GPA5014+HV               =       G1P506K +      GHO                                    :  0.100E+01*SUN;
+{ 69225} GPA5014+HV               =       G1P509k +      GNO2                                   :  0.100E+01*SUN;
+{ 69226} GPA5014+HV               =       G3A500l +      GNO2                                   :  0.100E+01*SUN;
+{ 69227} G1P509k                     =       GAH400T +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 69228} GPA5015                     =       G3A500p +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 69229} GPA5015 +GHO                =       G2P506o                                               : ARR( 0.680E-12,     0., 0.0);
+{ 69230} GPA5015 +GHO                =       GPA500n +      GHO2                                   : ARR( 0.220E-11,     0., 0.0);
+{ 69231} GPA5015 +GHO                =       G2P400H +      GCO2                                   : ARR( 0.554E-12,     0., 0.0);
+{ 69232} GPA5015+HV               =       G1P5072 +      GNO2                                   :  0.100E+01*SUN;
+{ 69233} GPA5015+HV               =       G3A500p +      GNO2                                   :  0.100E+01*SUN;
+{ 69234} G2P506o +GNO                =       G1P509l +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 69235} G2P506o +GNO                =       GPA501q                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 69236} G2P506o +GHO2               =       GPA501u                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 69237} G2P506o +GNO3               =       G1P509l +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 69238} G2P506o +MEPERO             =  0.340G1P509l + 0.330GPA501D + 0.330GPA501t                 : ARR( 0.565E-13,  -845., 0.0);
+{ 69239} G2P506o +PERO1              =  0.460G1P509l + 0.270GPA501D + 0.270GPA501t                 : ARR( 0.434E-13,  -900., 0.0);
+{ 69240} G2P506o +PERO2              =  0.400G1P509l + 0.300GPA501D + 0.300GPA501t                 : ARR( 0.162E-13, -1400., 0.0);
+{ 69241} G2P506o +PERO3              =  0.460G1P509l + 0.270GPA501D + 0.270GPA501t                 : ARR( 0.488E-13, -1250., 0.0);
+{ 69242} G2P506o +PERO5              =  0.460G1P509l + 0.270GPA501D + 0.270GPA501t                 : ARR( 0.183E-11,   450., 0.0);
+{ 69243} G2P506o +PERO6              =  0.300G1P509l + 0.350GPA501D + 0.350GPA501t                 : ARR( 0.168E-13, -1300., 0.0);
+{ 69244} G2P506o +PERO9              =  0.650G1P509l + 0.350GPA501t                                : ARR( 0.100E-10,     0., 0.0);
+{ 69245} G1P509l                     =       GCO     +      GPN400P +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 69246} G1P509l                     =       GAD2000 +      GPN3006 +      GHO2                    : ARR( 0.200E+15,  5475., 0.0);
+{ 69247} GPP500Y                     =       G3P5013 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 69248} GPP500Y                     =       G3P500x +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 69249} GPP500Y +GHO                =       GPP500X +      GHO                                    : ARR( 0.254E-10,     0., 0.0);
+{ 69250} GPP500Y +GHO                =       G2P504h                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 69251} GPP500Y+HV               =       G3P5013 +      GNO2                                   :  0.100E+01*SUN;
+{ 69252} GPP500Y+HV               =       G1P509m +      GNO2                                   :  0.100E+01*SUN;
+{ 69253} GPP500Y+HV               =       G1P506M +      GHO                                    :  0.100E+01*SUN;
+{ 69254} GPP500Y+HV               =       G3P500x +      GNO2                                   :  0.100E+01*SUN;
+{ 69255} G1P509m                     =       GPH400U +      GCO     +      GNO2                    : ARR( 0.200E+15,  4949., 0.0);
+{ 69256} GPP500Z                     =       G3P500n +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 69257} GPP500Z                     =       G3P500k +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 69258} GPP500Z +GHO                =       GPP500P +      GHO                                    : ARR( 0.829E-11,     0., 0.0);
+{ 69259} GPP500Z +GHO                =       G2P506p                                               : ARR( 0.867E-12,     0., 0.0);
+{ 69260} GPP500Z +GHO                =       G2P504i                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 69261} GPP500Z+HV               =       G3P500n +      GNO2                                   :  0.100E+01*SUN;
+{ 69262} GPP500Z+HV               =       G1P509n +      GNO2                                   :  0.100E+01*SUN;
+{ 69263} GPP500Z+HV               =       G1P506N +      GHO                                    :  0.100E+01*SUN;
+{ 69264} GPP500Z+HV               =       G3P500k +      GNO2                                   :  0.100E+01*SUN;
+{ 69265} G2P506p +GNO                =       G1P509o +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 69266} G2P506p +GNO                =       GPP5011                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 69267} G2P506p +GHO2               =       GPP5014                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 69268} G2P506p +GNO3               =       G1P509o +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 69269} G2P506p +MEPERO             =  0.340G1P509o + 0.330GPP500e + 0.330GPP5013                 : ARR( 0.565E-13,  -845., 0.0);
+{ 69270} G2P506p +PERO1              =  0.460G1P509o + 0.270GPP500e + 0.270GPP5013                 : ARR( 0.434E-13,  -900., 0.0);
+{ 69271} G2P506p +PERO2              =  0.400G1P509o + 0.300GPP500e + 0.300GPP5013                 : ARR( 0.162E-13, -1400., 0.0);
+{ 69272} G2P506p +PERO3              =  0.460G1P509o + 0.270GPP500e + 0.270GPP5013                 : ARR( 0.488E-13, -1250., 0.0);
+{ 69273} G2P506p +PERO5              =  0.460G1P509o + 0.270GPP500e + 0.270GPP5013                 : ARR( 0.183E-11,   450., 0.0);
+{ 69274} G2P506p +PERO6              =  0.300G1P509o + 0.350GPP500e + 0.350GPP5013                 : ARR( 0.168E-13, -1300., 0.0);
+{ 69275} G2P506p +PERO9              =  0.650G1P509o + 0.350GPP5013                                : ARR( 0.100E-10,     0., 0.0);
+{ 69276} G1P509n                     =       GPH400T +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 69277} G1P509o                     =       GPH400s +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 69278} GPP500a                     =       G3P500o +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 69279} GPP500a                     =       G3P500q +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 69280} GPP500a +GHO                =       G2P506q                                               : ARR( 0.924E-12,     0., 0.0);
+{ 69281} GPP500a +GHO                =       GPP500P +      GHO2                                   : ARR( 0.221E-11,     0., 0.0);
+{ 69282} GPP500a+HV               =       G3P500o +      GNO2                                   :  0.100E+01*SUN;
+{ 69283} GPP500a+HV               =       G1P509p +      GNO2                                   :  0.100E+01*SUN;
+{ 69284} GPP500a+HV               =       G3P500q +      GNO2                                   :  0.100E+01*SUN;
+{ 69285} G2P506q +GNO                =       G1P509q +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 69286} G2P506q +GNO                =       GPP5012                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 69287} G2P506q +GHO2               =       GPP5015                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 69288} G2P506q +GNO3               =       G1P509q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 69289} G2P506q +MEPERO             =  0.340G1P509q + 0.330GPP500f + 0.330GPP500s                 : ARR( 0.565E-13,  -845., 0.0);
+{ 69290} G2P506q +PERO1              =  0.460G1P509q + 0.270GPP500f + 0.270GPP500s                 : ARR( 0.434E-13,  -900., 0.0);
+{ 69291} G2P506q +PERO2              =  0.400G1P509q + 0.300GPP500f + 0.300GPP500s                 : ARR( 0.162E-13, -1400., 0.0);
+{ 69292} G2P506q +PERO3              =  0.460G1P509q + 0.270GPP500f + 0.270GPP500s                 : ARR( 0.488E-13, -1250., 0.0);
+{ 69293} G2P506q +PERO5              =  0.460G1P509q + 0.270GPP500f + 0.270GPP500s                 : ARR( 0.183E-11,   450., 0.0);
+{ 69294} G2P506q +PERO6              =  0.300G1P509q + 0.350GPP500f + 0.350GPP500s                 : ARR( 0.168E-13, -1300., 0.0);
+{ 69295} G2P506q +PERO9              =  0.650G1P509q + 0.350GPP500s                                : ARR( 0.100E-10,     0., 0.0);
+{ 69296} G1P509p                     =       GPD3000 +      GPD2000 +      GHO2                    : ARR( 0.200E+15,  5475., 0.0);
+{ 69297} G1P509p                     =       GPD4001 +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 69298} G1P509q                     =       GPN3006 +      GPD2000 +      GHO2                    : ARR( 0.200E+15,  5475., 0.0);
+{ 69299} G1P509q                     =       GPN400P +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 69300} GPH5058                     =       G3H505D +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 69301} GPH5058 +GHO                =       GPH503o +      GHO                                    : ARR( 0.178E-10,     0., 0.0);
+{ 69302} GPH5058 +GHO                =       GPH504P +      GHO                                    : ARR( 0.455E-10,     0., 0.0);
+{ 69303} GPH5058 +GHO                =       GPH505Z +      GHO                                    : ARR( 0.455E-10,     0., 0.0);
+{ 69304} GPH5058 +GHO                =       GPH505d +      GHO2                                   : ARR( 0.694E-11,     0., 0.0);
+{ 69305} GPH5058+HV               =       G1P506P +      GHO                                    :  0.100E+01*SUN;
+{ 69306} GPH5058+HV               =       G1P508E +      GHO                                    :  0.100E+01*SUN;
+{ 69307} GPH5058+HV               =       G1P508w +      GHO                                    :  0.100E+01*SUN;
+{ 69308} GPH5058+HV               =       G3H505D +      GNO2                                   :  0.100E+01*SUN;
+{ 69309} GHH5039 +GHO                =       GHN506y +      GHO                                    : ARR( 0.983E-11,     0., 0.0);
+{ 69310} GHH5039 +GHO                =       GHN506T +      GHO                                    : ARR( 0.322E-11,     0., 0.0);
+{ 69311} GHH5039 +GHO                =       G2H5049                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 69312} GHH5039 +GHO                =       G2H504A                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 69313} GHH5039+HV               =       G1H509H +      GHO                                    :  0.100E+01*SUN;
+{ 69314} GHH5039+HV               =       G3H2000 +      GHN300A +      GNO2                    :  0.100E+01*SUN;
+{ 69315} GHH5039+HV               =       GHN3008 +      GDD2000 +      GHO     +      GNO2     :  0.100E+01*SUN;
+{ 69316} GHH5039+HV               =       G1H50C2 +      GNO2                                   :  0.100E+01*SUN;
+{ 69317} GHH5039+HV               =       G1H50C3 +      GNO2                                   :  0.100E+01*SUN;
+{ 69318} GHH5039+HV               =       G1H509W +      GHO                                    :  0.100E+01*SUN;
+{ 69319} G2H5049 +GNO                =       G1H509H +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 69320} G2H5049 +GNO                =       GHN505P                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 69321} G2H5049 +GHO2               =       GHH5039                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 69322} G2H5049 +GNO3               =       G1H509H +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 69323} G2H5049 +MEPERO             =  0.480G1H509H + 0.260GHN506c + 0.260GHN506y                 : ARR( 0.164E-12,  -795., 0.0);
+{ 69324} G2H5049 +PERO1              =  0.600G1H509H + 0.200GHN506c + 0.200GHN506y                 : ARR( 0.126E-12,  -850., 0.0);
+{ 69325} G2H5049 +PERO2              =  0.560G1H509H + 0.220GHN506c + 0.220GHN506y                 : ARR( 0.471E-13, -1350., 0.0);
+{ 69326} G2H5049 +PERO3              =  0.600G1H509H + 0.200GHN506c + 0.200GHN506y                 : ARR( 0.142E-12, -1200., 0.0);
+{ 69327} G2H5049 +PERO5              =  0.600G1H509H + 0.200GHN506c + 0.200GHN506y                 : ARR( 0.533E-11,   500., 0.0);
+{ 69328} G2H5049 +PERO6              =  0.460G1H509H + 0.270GHN506c + 0.270GHN506y                 : ARR( 0.488E-13, -1250., 0.0);
+{ 69329} G2H5049 +PERO9              =  0.800G1H509H + 0.200GHN506y                                : ARR( 0.100E-10,     0., 0.0);
+{ 69330} G2H504A +GNO                =       G1H509W +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 69331} G2H504A +GNO                =       GHN505W                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 69332} G2H504A +GHO2               =       GHH5039                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 69333} G2H504A +GNO3               =       G1H509W +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 69334} G2H504A +MEPERO             =  0.480G1H509W + 0.260GHN504U + 0.260GHN506T                 : ARR( 0.164E-12,  -795., 0.0);
+{ 69335} G2H504A +PERO1              =  0.600G1H509W + 0.200GHN504U + 0.200GHN506T                 : ARR( 0.126E-12,  -850., 0.0);
+{ 69336} G2H504A +PERO2              =  0.560G1H509W + 0.220GHN504U + 0.220GHN506T                 : ARR( 0.471E-13, -1350., 0.0);
+{ 69337} G2H504A +PERO3              =  0.600G1H509W + 0.200GHN504U + 0.200GHN506T                 : ARR( 0.142E-12, -1200., 0.0);
+{ 69338} G2H504A +PERO5              =  0.600G1H509W + 0.200GHN504U + 0.200GHN506T                 : ARR( 0.533E-11,   500., 0.0);
+{ 69339} G2H504A +PERO6              =  0.460G1H509W + 0.270GHN504U + 0.270GHN506T                 : ARR( 0.488E-13, -1250., 0.0);
+{ 69340} G2H504A +PERO9              =  0.800G1H509W + 0.200GHN506T                                : ARR( 0.100E-10,     0., 0.0);
+{ 69341} G1H50C2                     =       GHN300A +      G3H2000                                : ARR( 0.200E+15,  3009., 0.0);
+{ 69342} G1H50C3                     =       GHN506t +      GHO                                    : ARR( 0.160E+12,  4168., 0.0);
+{ 69343} G1H50C3                     =       GHD3001 +      GHD2000 +      GNO2                    : ARR( 0.200E+15,  6515., 0.0);
+{ 69344} G1H50C3                     =       GHN401A +      GCH2O   +      GHO                     : ARR( 0.200E+15,  6565., 0.0);
+{ 69345} GGH400x +GHO                =       GGN400b +      GHO                                    : ARR( 0.324E-11,     0., 0.0);
+{ 69346} GGH400x +GHO                =       G2G400y                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 69347} GGH400x +GHO                =       G3H400u                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 69348} GGH400x+HV               =       G1G4019 +      GHO                                    :  0.100E+01*SUN;
+{ 69349} GGH400x+HV               =       G1G401H +      GNO2                                   :  0.100E+01*SUN;
+{ 69350} GGH400x+HV               =       GAH3005 +      GCO2                                   :  0.100E+01*SUN;
+{ 69351} G1G401H                     =       GHD2000 +      GCO     +      GHO2    +      GCO      : ARR( 0.200E+15,  3326., 0.0);
+{ 69352} GGN502j +GHO                =       G3N502f                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 69353} GGN502j+HV               =       G1G507R +      GNO2                                   :  0.100E+01*SUN;
+{ 69354} GGN502j+HV               =       G1G507S +      GNO2                                   :  0.100E+01*SUN;
+{ 69355} GGN502j+HV               =       G1G506b +      GNO2                                   :  0.100E+01*SUN;
+{ 69356} GGN502j+HV               =       GAN400Q +      GCO2                                   :  0.100E+01*SUN;
+{ 69357} G1G507R +OXYGEN             =       GGN502t +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 69358} G1G507R                     =       GGN400b +      GCH2O   +      GNO2                    : ARR( 0.200E+15,  7175., 0.0);
+{ 69359} G1G507S                     =       GND2000 +      GGD3002 +      GNO2                    : ARR( 0.200E+15,  6092., 0.0);
+{ 69360} GHH503A +GHO                =       GHN506u +      GHO                                    : ARR( 0.196E-10,     0., 0.0);
+{ 69361} GHH503A +GHO                =       G2H504B                                               : ARR( 0.381E-11,  -190., 0.0);
+{ 69362} GHH503A+HV               =       G1H509b +      GHO                                    :  0.200E+01*SUN;
+{ 69363} GHH503A+HV               =       G3H2000 +      GHD3001 +      GNO2                    :  0.100E+01*SUN;
+{ 69364} GHH503A+HV               =       G1H50C4 +      GNO2                                   :  0.100E+01*SUN;
+{ 69365} GHH503A+HV               =       G3H400n +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 69366} G2H504B +GNO                =       G1H509b +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 69367} G2H504B +GNO                =       GHN505Y                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 69368} G2H504B +GHO2               =       GHH503A                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 69369} G2H504B +GNO3               =       G1H509b +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 69370} G2H504B +MEPERO             =  0.480G1H509b + 0.260GHN506S + 0.260GHN506u                 : ARR( 0.164E-12,  -795., 0.0);
+{ 69371} G2H504B +PERO1              =  0.600G1H509b + 0.200GHN506S + 0.200GHN506u                 : ARR( 0.126E-12,  -850., 0.0);
+{ 69372} G2H504B +PERO2              =  0.560G1H509b + 0.220GHN506S + 0.220GHN506u                 : ARR( 0.471E-13, -1350., 0.0);
+{ 69373} G2H504B +PERO3              =  0.600G1H509b + 0.200GHN506S + 0.200GHN506u                 : ARR( 0.142E-12, -1200., 0.0);
+{ 69374} G2H504B +PERO5              =  0.600G1H509b + 0.200GHN506S + 0.200GHN506u                 : ARR( 0.533E-11,   500., 0.0);
+{ 69375} G2H504B +PERO6              =  0.460G1H509b + 0.270GHN506S + 0.270GHN506u                 : ARR( 0.488E-13, -1250., 0.0);
+{ 69376} G2H504B +PERO9              =  0.800G1H509b + 0.200GHN506u                                : ARR( 0.100E-10,     0., 0.0);
+{ 69377} G1H50C4                     =       G3H2000 +      GHD3001                                : ARR( 0.400E+15,  4599., 0.0);
+{ 69378} GHN506u +GHO                =       GND501a +      GHO                                    : ARR( 0.982E-11,     0., 0.0);
+{ 69379} GHN506u +GHO                =       G3H400n +      GCO                                    : ARR( 0.127E-10,     0., 0.0);
+{ 69380} GHN506u +GHO                =       G2N506j                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 69381} GHN506u +GNO3               =       G3H400n +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 69382} GHN506u+HV               =       G1N506x +      GHO                                    :  0.100E+01*SUN;
+{ 69383} GHN506u+HV               =       G3H2000 +      GDD3002 +      GNO2                    :  0.100E+01*SUN;
+{ 69384} GHN506u+HV               =       G1H50Bc +      GNO2                                   :  0.100E+01*SUN;
+{ 69385} GHN506u+HV               =       G3H400n +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 69386} GHN506u+HV               =       GHN401A +      GCO                                    :  0.100E+01*SUN;
+{ 69387} GHN506u+HV               =       GHN3008 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 69388} G2N506j +GNO                =       G1N506x +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 69389} G2N506j +GNO                =       GNN5038                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 69390} G2N506j +GHO2               =       GHN506u                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 69391} G2N506j +GNO3               =       G1N506x +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 69392} G2N506j +MEPERO             =  0.480G1N506x + 0.260GND501W + 0.260GND501a                 : ARR( 0.164E-12,  -795., 0.0);
+{ 69393} G2N506j +PERO1              =  0.600G1N506x + 0.200GND501W + 0.200GND501a                 : ARR( 0.126E-12,  -850., 0.0);
+{ 69394} G2N506j +PERO2              =  0.560G1N506x + 0.220GND501W + 0.220GND501a                 : ARR( 0.471E-13, -1350., 0.0);
+{ 69395} G2N506j +PERO3              =  0.600G1N506x + 0.200GND501W + 0.200GND501a                 : ARR( 0.142E-12, -1200., 0.0);
+{ 69396} G2N506j +PERO5              =  0.600G1N506x + 0.200GND501W + 0.200GND501a                 : ARR( 0.533E-11,   500., 0.0);
+{ 69397} G2N506j +PERO6              =  0.460G1N506x + 0.270GND501W + 0.270GND501a                 : ARR( 0.488E-13, -1250., 0.0);
+{ 69398} G2N506j +PERO9              =  0.800G1N506x + 0.200GND501a                                : ARR( 0.100E-10,     0., 0.0);
+{ 69399} GGG4007 +GHO                =       GGG400D +      GHO2                                   : ARR( 0.129E-11,     0., 0.0);
+{ 69400} GGG4007 +GHO                =       G3G400C                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 69401} GGG4007 +GHO                =       G3G400B                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 69402} GGG4007+HV               =       GGN3005 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 69403} GGG4007+HV               =       G1G4012 +      GNO2                                   :  0.100E+01*SUN;
+{ 69404} GGG4007+HV               =       GGD3001 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 69405} GAG500p +GHO                =       GAG501o +      GHO2                                   : ARR( 0.130E-11,     0., 0.0);
+{ 69406} GAG500p +GHO                =       G3A500b                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 69407} GAG500p +GHO                =       GGN400U +      GNO2    +      GCO2                    : ARR( 0.537E-12,     0., 0.0);
+{ 69408} GAG500p+HV               =       G1A508g +      GNO2                                   :  0.100E+01*SUN;
+{ 69409} GAG500p+HV               =       G1A508h +      GNO2                                   :  0.100E+01*SUN;
+{ 69410} GAG500p+HV               =       GAN400Y +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 69411} G1A508g                     =       GCO     +      GGN400U +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 69412} G1A508h                     =       GAN3006 +      GGD2000 +      GHO2                    : ARR( 0.200E+15,  3099., 0.0);
+{ 69413} GPG500t                     =       G3G500v +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 69414} GPG500t +GHO                =       GPG501o +      GHO2                                   : ARR( 0.130E-11,     0., 0.0);
+{ 69415} GPG500t +GHO                =       G3P500e                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 69416} GPG500t+HV               =       GPN400Z +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 69417} GPG500t+HV               =       G1P509r +      GNO2                                   :  0.100E+01*SUN;
+{ 69418} GPG500t+HV               =       G1P509s +      GNO2                                   :  0.100E+01*SUN;
+{ 69419} GPG500t+HV               =       G3G500v +      GNO2                                   :  0.100E+01*SUN;
+{ 69420} G1P509r                     =       GGD2000 +      GPN3006 +      GHO2                    : ARR( 0.200E+15,  3099., 0.0);
+{ 69421} G1P509s                     =       GGN400U +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 69422} GHH503B +GHO                =       GHN506o +      GHO                                    : ARR( 0.161E-10,     0., 0.0);
+{ 69423} GHH503B +GHO                =       GHN506u +      GHO                                    : ARR( 0.826E-11,     0., 0.0);
+{ 69424} GHH503B +GHO                =       G3H400x +      GCO                                    : ARR( 0.127E-10,     0., 0.0);
+{ 69425} GHH503B +GHO                =       G2H504C                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 69426} GHH503B +GHO                =       G2H504D                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 69427} GHH503B +GNO3               =       G3H400x +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 69428} GHH503B+HV               =       G1H50Bv +      GHO                                    :  0.100E+01*SUN;
+{ 69429} GHH503B+HV               =       G1H50C5 +      GHO                                    :  0.100E+01*SUN;
+{ 69430} GHH503B+HV               =       G1H50C6 +      GNO2                                   :  0.100E+01*SUN;
+{ 69431} GHH503B+HV               =       G3H400x +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 69432} GHH503B+HV               =       GHH400u +      GCO                                    :  0.100E+01*SUN;
+{ 69433} GHH503B+HV               =       GHH3001 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 69434} G2H504C +GNO                =       G1H50Bv +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 69435} G2H504C +GNO                =       GHN506q                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 69436} G2H504C +GHO2               =       GHH503B                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 69437} G2H504C +GNO3               =       G1H50Bv +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 69438} G2H504C +MEPERO             =  0.480G1H50Bv + 0.260GHN505n + 0.260GHN506o                 : ARR( 0.164E-12,  -795., 0.0);
+{ 69439} G2H504C +PERO1              =  0.600G1H50Bv + 0.200GHN505n + 0.200GHN506o                 : ARR( 0.126E-12,  -850., 0.0);
+{ 69440} G2H504C +PERO2              =  0.560G1H50Bv + 0.220GHN505n + 0.220GHN506o                 : ARR( 0.471E-13, -1350., 0.0);
+{ 69441} G2H504C +PERO3              =  0.600G1H50Bv + 0.200GHN505n + 0.200GHN506o                 : ARR( 0.142E-12, -1200., 0.0);
+{ 69442} G2H504C +PERO5              =  0.600G1H50Bv + 0.200GHN505n + 0.200GHN506o                 : ARR( 0.533E-11,   500., 0.0);
+{ 69443} G2H504C +PERO6              =  0.460G1H50Bv + 0.270GHN505n + 0.270GHN506o                 : ARR( 0.488E-13, -1250., 0.0);
+{ 69444} G2H504C +PERO9              =  0.800G1H50Bv + 0.200GHN506o                                : ARR( 0.100E-10,     0., 0.0);
+{ 69445} G2H504D +GNO                =       G1H50C5 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 69446} G2H504D +GNO                =       GHN506y                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 69447} G2H504D +GHO2               =       GHH503B                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 69448} G2H504D +GNO3               =       G1H50C5 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 69449} G2H504D +MEPERO             =  0.340G1H50C5 + 0.330GHN506t + 0.330GHN506u                 : ARR( 0.565E-13,  -845., 0.0);
+{ 69450} G2H504D +PERO1              =  0.460G1H50C5 + 0.270GHN506t + 0.270GHN506u                 : ARR( 0.434E-13,  -900., 0.0);
+{ 69451} G2H504D +PERO2              =  0.400G1H50C5 + 0.300GHN506t + 0.300GHN506u                 : ARR( 0.162E-13, -1400., 0.0);
+{ 69452} G2H504D +PERO3              =  0.460G1H50C5 + 0.270GHN506t + 0.270GHN506u                 : ARR( 0.488E-13, -1250., 0.0);
+{ 69453} G2H504D +PERO5              =  0.460G1H50C5 + 0.270GHN506t + 0.270GHN506u                 : ARR( 0.183E-11,   450., 0.0);
+{ 69454} G2H504D +PERO6              =  0.300G1H50C5 + 0.350GHN506t + 0.350GHN506u                 : ARR( 0.168E-13, -1300., 0.0);
+{ 69455} G2H504D +PERO9              =  0.650G1H50C5 + 0.350GHN506u                                : ARR( 0.100E-10,     0., 0.0);
+{ 69456} G1H50C5                     =       G3H400U +      GCO                                    : ARR( 0.800E+11,  4780., 0.0);
+{ 69457} G1H50C5                     =       GCH2O   +      GND400N +      GHO                     : ARR( 0.200E+15,  6565., 0.0);
+{ 69458} G1H50C5                     =       GHD2000 +      GDD3002 +      GNO2                    : ARR( 0.200E+15,  6094., 0.0);
+{ 69459} G1H50C6                     =       GHH3005 +      G3D2000                                : ARR( 0.200E+15,  3233., 0.0);
+{ 69460} GGH504n +GHO                =       GGN502k +      GHO                                    : ARR( 0.982E-11,     0., 0.0);
+{ 69461} GGH504n +GHO                =       G2G5058                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 69462} GGH504n +GHO                =       G3H504F                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 69463} GGH504n+HV               =       G1G505g +      GHO                                    :  0.100E+01*SUN;
+{ 69464} GGH504n+HV               =       G3H2000 +      GGN3005 +      GNO2                    :  0.100E+01*SUN;
+{ 69465} GGH504n+HV               =       G1G507H +      GNO2                                   :  0.100E+01*SUN;
+{ 69466} GGH504n+HV               =       G1G507T +      GNO2                                   :  0.100E+01*SUN;
+{ 69467} GGH504n+HV               =       GHN401A +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 69468} G2G5058 +GNO                =       G1G505g +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 69469} G2G5058 +GNO                =       GGN502J                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 69470} G2G5058 +GHO2               =       GGH504n                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 69471} G2G5058 +GNO3               =       G1G505g +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 69472} G2G5058 +MEPERO             =  0.480G1G505g + 0.260GGN502W + 0.260GGN502k                 : ARR( 0.164E-12,  -795., 0.0);
+{ 69473} G2G5058 +PERO1              =  0.600G1G505g + 0.200GGN502W + 0.200GGN502k                 : ARR( 0.126E-12,  -850., 0.0);
+{ 69474} G2G5058 +PERO2              =  0.560G1G505g + 0.220GGN502W + 0.220GGN502k                 : ARR( 0.471E-13, -1350., 0.0);
+{ 69475} G2G5058 +PERO3              =  0.600G1G505g + 0.200GGN502W + 0.200GGN502k                 : ARR( 0.142E-12, -1200., 0.0);
+{ 69476} G2G5058 +PERO5              =  0.600G1G505g + 0.200GGN502W + 0.200GGN502k                 : ARR( 0.533E-11,   500., 0.0);
+{ 69477} G2G5058 +PERO6              =  0.460G1G505g + 0.270GGN502W + 0.270GGN502k                 : ARR( 0.488E-13, -1250., 0.0);
+{ 69478} G2G5058 +PERO9              =  0.800G1G505g + 0.200GGN502k                                : ARR( 0.100E-10,     0., 0.0);
+{ 69479} G1G507T                     =       GHN401A +      GCO     +      GHO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 69480} GGN502k +GHO                =       G3G400D +      GCO                                    : ARR( 0.127E-10,     0., 0.0);
+{ 69481} GGN502k +GHO                =       G3N502Z                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 69482} GGN502k +GNO3               =       G3G400D +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 69483} GGN502k+HV               =       GND400N +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 69484} GGN502k+HV               =       G1G507U +      GNO2                                   :  0.100E+01*SUN;
+{ 69485} GGN502k+HV               =       G1G507W +      GNO2                                   :  0.100E+01*SUN;
+{ 69486} GGN502k+HV               =       G3G400D +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 69487} GGN502k+HV               =       GGN400X +      GCO                                    :  0.100E+01*SUN;
+{ 69488} GGN502k+HV               =       GGN3004 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 69489} G1G507U                     =       GCO     +      GND400N +      GHO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 69490} G1G507W                     =       GGN3005 +      G3D2000                                : ARR( 0.200E+15,  2403., 0.0);
+{ 69491} GGG4008 +GHO                =       G3G400D                                               : ARR( 0.382E-11,  -190., 0.0);
+{ 69492} GGG4008+HV               =       GGN3005 +      GHO     +      GNO2    +      GCO2     :  0.200E+01*SUN;
+{ 69493} GGG4008+HV               =       G1G401I +      GNO2                                   :  0.200E+01*SUN;
+{ 69494} G1G401I                     =       GGN3005 +      GCO     +      GHO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 69495} GGG4009 +GHO                =       GGG400C +      GHO2                                   : ARR( 0.630E-11,     0., 0.0);
+{ 69496} GGG4009 +GHO                =       GGG4003 +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 69497} GGG4009 +GHO                =       G3G400E                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 69498} GGG4009 +GHO                =       G2G400r                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 69499} GGG4009 +GHO                =       G3G400G                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 69500} GGG4009+HV               =       GGH3007 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 69501} GGG4009+HV               =       G1G4012 +      GHO                                    :  0.100E+01*SUN;
+{ 69502} GGG4009+HV               =       GGD3001 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 69503} GAG400I +GHO                =       GAG400G +      GHO2                                   : ARR( 0.473E-11,     0., 0.0);
+{ 69504} GAG400I +GHO                =       GAG4006 +      GHO                                    : ARR( 0.256E-10,     0., 0.0);
+{ 69505} GAG400I +GHO                =       G2A4013                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 69506} GAG400I +GHO                =       G3A400I                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 69507} GAG400I+HV               =       G1A401E +      GHO                                    :  0.100E+01*SUN;
+{ 69508} GAG400I+HV               =       GAD3001 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 69509} GPG400I                     =       G3G400E +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 69510} GPG400I +GHO                =       GPG4006 +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 69511} GPG400I +GHO                =       GPG400G +      GHO2                                   : ARR( 0.631E-11,     0., 0.0);
+{ 69512} GPG400I +GHO                =       G3P400I                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 69513} GPG400I +GHO                =       G2P401A                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 69514} GPG400I+HV               =       GPD3001 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 69515} GPG400I+HV               =       G1P401M +      GHO                                    :  0.100E+01*SUN;
+{ 69516} GPG400I+HV               =       G3G400E +      GNO2                                   :  0.100E+01*SUN;
+{ 69517} GAG400J +GHO                =       GAG4008 +      GHO                                    : ARR( 0.190E-10,     0., 0.0);
+{ 69518} GAG400J +GHO                =       GAG400M +      GHO2                                   : ARR( 0.641E-11,     0., 0.0);
+{ 69519} GAG400J +GHO                =       G2A4014                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 69520} GAG400J +GHO                =       G3A400E                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 69521} GAG400J+HV               =       G1A401F +      GHO                                    :  0.100E+01*SUN;
+{ 69522} GAG400J+HV               =       GAH3007 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 69523} GAA400C +GHO                =       GAA400A +      GHO2                                   : ARR( 0.485E-11,     0., 0.0);
+{ 69524} GAA400C +GHO                =       GAA4005 +      GHO                                    : ARR( 0.194E-10,     0., 0.0);
+{ 69525} GAA400C +GHO                =       G2A4015                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 69526} GAA400C+HV               =       G1A401G +      GHO                                    :  0.100E+01*SUN;
+{ 69527} GPA400M                     =       G3A400E +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 69528} GPA400M +GHO                =       GPA4008 +      GHO                                    : ARR( 0.190E-10,     0., 0.0);
+{ 69529} GPA400M +GHO                =       GPA400L +      GHO2                                   : ARR( 0.643E-11,     0., 0.0);
+{ 69530} GPA400M +GHO                =       G2P401B                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 69531} GPA400M+HV               =       G1P401N +      GHO                                    :  0.100E+01*SUN;
+{ 69532} GPA400M+HV               =       G3A400E +      GNO2                                   :  0.100E+01*SUN;
+{ 69533} GAA400D +GHO                =       GAA4005 +      GHO2                                   : ARR( 0.955E-11,     0., 0.0);
+{ 69534} GAA400D +GHO                =       GAD3001 +      GHO2    +      GCO2                    : ARR( 0.107E-11,     0., 0.0);
+{ 69535} GPG400J                     =       G3G400G +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 69536} GPG400J +GHO                =       GPG400M +      GHO2                                   : ARR( 0.631E-11,     0., 0.0);
+{ 69537} GPG400J +GHO                =       GPG4008 +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 69538} GPG400J +GHO                =       G3P400F                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 69539} GPG400J +GHO                =       G2P401C                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 69540} GPG400J+HV               =       GPH3007 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 69541} GPG400J+HV               =       G1P401O +      GHO                                    :  0.100E+01*SUN;
+{ 69542} GPG400J+HV               =       G3G400G +      GNO2                                   :  0.100E+01*SUN;
+{ 69543} GPA400N                     =       G3A400I +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 69544} GPA400N +GHO                =       GPA400J +      GHO2                                   : ARR( 0.474E-11,     0., 0.0);
+{ 69545} GPA400N +GHO                =       GPA400A +      GHO                                    : ARR( 0.256E-10,     0., 0.0);
+{ 69546} GPA400N +GHO                =       G2P401D                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 69547} GPA400N+HV               =       G1P401P +      GHO                                    :  0.100E+01*SUN;
+{ 69548} GPA400N+HV               =       G3A400I +      GNO2                                   :  0.100E+01*SUN;
+{ 69549} GPP400D                     =       G3P400F +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 69550} GPP400D                     =       G3P400I +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 69551} GPP400D +GHO                =       GPP400B +      GHO2                                   : ARR( 0.631E-11,     0., 0.0);
+{ 69552} GPP400D +GHO                =       GPP4005 +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 69553} GPP400D +GHO                =       G2P401E                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 69554} GPP400D+HV               =       G3P400F +      GNO2                                   :  0.100E+01*SUN;
+{ 69555} GPP400D+HV               =       G1P401Q +      GHO                                    :  0.100E+01*SUN;
+{ 69556} GPP400D+HV               =       G3P400I +      GNO2                                   :  0.100E+01*SUN;
+{ 69557} GGH504o +GHO                =       GGN502l +      GHO                                    : ARR( 0.983E-11,     0., 0.0);
+{ 69558} GGH504o +GHO                =       G2G5059                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 69559} GGH504o +GHO                =       G3H504G                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 69560} GGH504o+HV               =       G1G505p +      GHO                                    :  0.100E+01*SUN;
+{ 69561} GGH504o+HV               =       G3H2000 +      G3G3001                                :  0.100E+01*SUN;
+{ 69562} GGH504o+HV               =       G1G507X +      GNO2                                   :  0.100E+01*SUN;
+{ 69563} GGH504o+HV               =       GHD400N +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 69564} G2G5059 +GNO                =       G1G505p +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 69565} G2G5059 +GNO                =       GGN502M                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 69566} G2G5059 +GHO2               =       GGH504o                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 69567} G2G5059 +GNO3               =       G1G505p +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 69568} G2G5059 +MEPERO             =  0.480G1G505p + 0.260GGN502d + 0.260GGN502l                 : ARR( 0.164E-12,  -795., 0.0);
+{ 69569} G2G5059 +PERO1              =  0.600G1G505p + 0.200GGN502d + 0.200GGN502l                 : ARR( 0.126E-12,  -850., 0.0);
+{ 69570} G2G5059 +PERO2              =  0.560G1G505p + 0.220GGN502d + 0.220GGN502l                 : ARR( 0.471E-13, -1350., 0.0);
+{ 69571} G2G5059 +PERO3              =  0.600G1G505p + 0.200GGN502d + 0.200GGN502l                 : ARR( 0.142E-12, -1200., 0.0);
+{ 69572} G2G5059 +PERO5              =  0.600G1G505p + 0.200GGN502d + 0.200GGN502l                 : ARR( 0.533E-11,   500., 0.0);
+{ 69573} G2G5059 +PERO6              =  0.460G1G505p + 0.270GGN502d + 0.270GGN502l                 : ARR( 0.488E-13, -1250., 0.0);
+{ 69574} G2G5059 +PERO9              =  0.800G1G505p + 0.200GGN502l                                : ARR( 0.100E-10,     0., 0.0);
+{ 69575} G1G507X                     =       GGD500M +      GHO                                    : ARR( 0.160E+12,  4168., 0.0);
+{ 69576} G1G507X                     =       G3H2000 +      GGD2000 +      GCO                     : ARR( 0.200E+15,  5653., 0.0);
+{ 69577} GGN502l +GHO                =       G3G3001 + 2.000GCO                                    : ARR( 0.127E-10,     0., 0.0);
+{ 69578} GGN502l +GHO                =       G3N502a                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 69579} GGN502l +GNO3               =       G3G3001 +      GHNO3   + 2.000GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 69580} GGN502l+HV               =       GDD4005 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 69581} GGN502l+HV               =       G1G507Y +      GNO2                                   :  0.100E+01*SUN;
+{ 69582} GGN502l+HV               =       G3G3001 +      G3D2000                                :  0.100E+01*SUN;
+{ 69583} GGN502l+HV               =       G3G3001 +      GCO     +      GCO     +      GHO2     :  0.100E+01*SUN;
+{ 69584} GGN502l+HV               =       GGN400Z +      GCO                                    :  0.100E+01*SUN;
+{ 69585} GGN502l+HV               =       GGN3005 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 69586} G1G507Y                     =       GGD2000 +      G3D2000 +      GCO                     : ARR( 0.200E+15,  5618., 0.0);
+{ 69587} GAG400K +GHO                =       GAG400E +      GHO                                    : ARR( 0.392E-11,     0., 0.0);
+{ 69588} GAG400K +GHO                =       G2A401I                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 69589} GAG400K +GHO                =       G3A400G                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 69590} GAG400K+HV               =       G1A401P +      GHO                                    :  0.100E+01*SUN;
+{ 69591} GAG400K+HV               =       G1A401S +      GNO2                                   :  0.100E+01*SUN;
+{ 69592} GAG400K+HV               =       GAH3007 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 69593} G2A401I +GNO                =       G1A401P +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 69594} G2A401I +GNO                =       GAG400C                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 69595} G2A401I +GHO2               =       GAG400K                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 69596} G2A401I +GNO3               =       G1A401P +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 69597} G2A401I +MEPERO             =  0.340G1A401P + 0.330GAG400D + 0.330GAG400E                 : ARR( 0.565E-13,  -845., 0.0);
+{ 69598} G2A401I +PERO1              =  0.460G1A401P + 0.270GAG400D + 0.270GAG400E                 : ARR( 0.434E-13,  -900., 0.0);
+{ 69599} G2A401I +PERO2              =  0.400G1A401P + 0.300GAG400D + 0.300GAG400E                 : ARR( 0.162E-13, -1400., 0.0);
+{ 69600} G2A401I +PERO3              =  0.460G1A401P + 0.270GAG400D + 0.270GAG400E                 : ARR( 0.488E-13, -1250., 0.0);
+{ 69601} G2A401I +PERO5              =  0.460G1A401P + 0.270GAG400D + 0.270GAG400E                 : ARR( 0.183E-11,   450., 0.0);
+{ 69602} G2A401I +PERO6              =  0.300G1A401P + 0.350GAG400D + 0.350GAG400E                 : ARR( 0.168E-13, -1300., 0.0);
+{ 69603} G2A401I +PERO9              =  0.650G1A401P + 0.350GAG400E                                : ARR( 0.100E-10,     0., 0.0);
+{ 69604} G1A401S                     =       GAH3007 +      GCO     +      GHO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 69605} GPG400K                     =       G3G400H +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 69606} GPG400K +GHO                =       GPG400E +      GHO                                    : ARR( 0.506E-11,     0., 0.0);
+{ 69607} GPG400K +GHO                =       G3P400G                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 69608} GPG400K +GHO                =       G2P401P                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 69609} GPG400K+HV               =       GPH3007 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 69610} GPG400K+HV               =       G1P401d +      GNO2                                   :  0.100E+01*SUN;
+{ 69611} GPG400K+HV               =       G1P401a +      GHO                                    :  0.100E+01*SUN;
+{ 69612} GPG400K+HV               =       G3G400H +      GNO2                                   :  0.100E+01*SUN;
+{ 69613} G2P401P +GNO                =       G1P401a +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 69614} G2P401P +GNO                =       GPG400D                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 69615} G2P401P +GHO2               =       GPG400K                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 69616} G2P401P +GNO3               =       G1P401a +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 69617} G2P401P +MEPERO             =  0.340G1P401a + 0.330GPG4009 + 0.330GPG400E                 : ARR( 0.565E-13,  -845., 0.0);
+{ 69618} G2P401P +PERO1              =  0.460G1P401a + 0.270GPG4009 + 0.270GPG400E                 : ARR( 0.434E-13,  -900., 0.0);
+{ 69619} G2P401P +PERO2              =  0.400G1P401a + 0.300GPG4009 + 0.300GPG400E                 : ARR( 0.162E-13, -1400., 0.0);
+{ 69620} G2P401P +PERO3              =  0.460G1P401a + 0.270GPG4009 + 0.270GPG400E                 : ARR( 0.488E-13, -1250., 0.0);
+{ 69621} G2P401P +PERO5              =  0.460G1P401a + 0.270GPG4009 + 0.270GPG400E                 : ARR( 0.183E-11,   450., 0.0);
+{ 69622} G2P401P +PERO6              =  0.300G1P401a + 0.350GPG4009 + 0.350GPG400E                 : ARR( 0.168E-13, -1300., 0.0);
+{ 69623} G2P401P +PERO9              =  0.650G1P401a + 0.350GPG400E                                : ARR( 0.100E-10,     0., 0.0);
+{ 69624} G1P401d                     =       GCO     +      GPH3007 +      GHO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 69625} GGG400A +GHO                =       G3G400O                                               : ARR( 0.380E-11,  -190., 0.0);
+{ 69626} GGG400A+HV               =       GAG3004 +      GCO2                                   :  0.200E+01*SUN;
+{ 69627} GGG400A+HV               =  2.000GCO     + 2.000GHO2    + 2.000GCO                     :  0.100E+01*SUN;
+{ 69628} GAG400L +GHO                =       G3A400M                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 69629} GAG400L +GHO                =       GGD3002 +      GNO2    +      GCO2                    : ARR( 0.524E-12,     0., 0.0);
+{ 69630} GAG400L+HV               =       G1A401N +      GNO2                                   :  0.100E+01*SUN;
+{ 69631} GAG400L+HV               =       GAA3001 +      GCO2                                   :  0.100E+01*SUN;
+{ 69632} GPG400L                     =       G3G400K +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 69633} GPG400L +GHO                =       G3P400M                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 69634} GPG400L+HV               =       GPA3001 +      GCO2                                   :  0.100E+01*SUN;
+{ 69635} GPG400L+HV               =       G1P401W +      GNO2                                   :  0.100E+01*SUN;
+{ 69636} GPG400L+HV               =       G3G400K +      GNO2                                   :  0.100E+01*SUN;
+{ 69637} GAG500q +GHO                =       G3A501H                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 69638} GAG500q +GHO                =       G2G400y +      GCO2                                   : ARR( 0.545E-12,     0., 0.0);
+{ 69639} GAG500q+HV               =       G1A506q +      GNO2                                   :  0.100E+01*SUN;
+{ 69640} GAG500q+HV               =       GAA4001 +      GCO2                                   :  0.100E+01*SUN;
+{ 69641} GPG500u                     =       G3G500a +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 69642} GPG500u +GHO                =       G3P501E                                               : ARR( 0.203E-11,  -190., 0.0);
+{ 69643} GPG500u+HV               =       GPA4002 +      GCO2                                   :  0.100E+01*SUN;
+{ 69644} GPG500u+HV               =       G1P507Q +      GNO2                                   :  0.100E+01*SUN;
+{ 69645} GPG500u+HV               =       G3G500a +      GNO2                                   :  0.100E+01*SUN;
+{ 69646} GGH504p +GHO                =       GGN502g +      GHO                                    : ARR( 0.162E-10,     0., 0.0);
+{ 69647} GGH504p +GHO                =       GGH505R +      GHO2                                   : ARR( 0.208E-11,     0., 0.0);
+{ 69648} GGH504p +GHO                =       G2G505A                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 69649} GGH504p +GHO                =       G3H504H                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 69650} GGH504p+HV               =       G1G503o +      GHO                                    :  0.100E+01*SUN;
+{ 69651} GGH504p+HV               =       G1G5079 +      GNO2                                   :  0.100E+01*SUN;
+{ 69652} GGH504p+HV               =       GAH400H +      GCO2                                   :  0.100E+01*SUN;
+{ 69653} G2G505A +GNO                =       G1G503o +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 69654} G2G505A +GNO                =       GGN501U                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 69655} G2G505A +GHO2               =       GGH504p                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 69656} G2G505A +GNO3               =       G1G503o +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 69657} G2G505A +MEPERO             =  0.480G1G503o + 0.260GGN501u + 0.260GGN502g                 : ARR( 0.164E-12,  -795., 0.0);
+{ 69658} G2G505A +PERO1              =  0.600G1G503o + 0.200GGN501u + 0.200GGN502g                 : ARR( 0.126E-12,  -850., 0.0);
+{ 69659} G2G505A +PERO2              =  0.560G1G503o + 0.220GGN501u + 0.220GGN502g                 : ARR( 0.471E-13, -1350., 0.0);
+{ 69660} G2G505A +PERO3              =  0.600G1G503o + 0.200GGN501u + 0.200GGN502g                 : ARR( 0.142E-12, -1200., 0.0);
+{ 69661} G2G505A +PERO5              =  0.600G1G503o + 0.200GGN501u + 0.200GGN502g                 : ARR( 0.533E-11,   500., 0.0);
+{ 69662} G2G505A +PERO6              =  0.460G1G503o + 0.270GGN501u + 0.270GGN502g                 : ARR( 0.488E-13, -1250., 0.0);
+{ 69663} G2G505A +PERO9              =  0.800G1G503o + 0.200GGN502g                                : ARR( 0.100E-10,     0., 0.0);
+{ 69664} GPG500v                     =       G3G501L +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 69665} GPG500v +GHO                =       GPG501p +      GHO2                                   : ARR( 0.131E-11,     0., 0.0);
+{ 69666} GPG500v +GHO                =       G3P500f                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 69667} GPG500v+HV               =       GPN400a +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 69668} GPG500v+HV               =       G1P509t +      GNO2                                   :  0.100E+01*SUN;
+{ 69669} GPG500v+HV               =       G3G400B +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 69670} G3G501L +GHO2               =  0.800GGG500l + 0.200GAG501S + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 69671} G3G501L +GNO                =       G3G400B +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 69672} G3G501L +GNO2               =       GPG500v                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 69673} G3G501L +GNO3               =       G3G400B +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 69674} G3G501L +MEPERO             =  0.685G3G400B + 0.315GAG501S + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 69675} G3G501L +PERO1              =  0.800G3G400B + 0.200GAG501S + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 69676} G3G501L +PERO2              =  0.750G3G400B + 0.250GAG501S + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 69677} G3G501L +PERO3              =  0.800G3G400B + 0.200GAG501S + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 69678} G3G501L +PERO5              =  0.650G3G400B + 0.350GAG501S + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 69679} G3G501L +PERO6              =  0.650G3G400B + 0.350GAG501S + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 69680} G3G501L +PERO9              =       G3G400B +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 69681} G1P509t                     =       GGD3001 +      GCO     +      GNO2    +      GCO      : ARR( 0.200E+15,  2436., 0.0);
+{ 69682} GPG500w                     =       G3G501C +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 69683} GPG500w +GHO                =       GPG501p +      GHO2                                   : ARR( 0.131E-11,     0., 0.0);
+{ 69684} GPG500w +GHO                =       G3P501K                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 69685} GPG500w+HV               =       GPA4007 +      GCO2                                   :  0.100E+01*SUN;
+{ 69686} GPG500w+HV               =       G1P509u +      GNO2                                   :  0.100E+01*SUN;
+{ 69687} GPG500w+HV               =       G3G501C +      GNO2                                   :  0.100E+01*SUN;
+{ 69688} G1P509u                     =       GCO     +      GPD3001 +      GHO2    +      GCO      : ARR( 0.200E+15,  2436., 0.0);
+{ 69689} GGG500M +GHO                =       GGG500r +      GHO2                                   : ARR( 0.389E-11,     0., 0.0);
+{ 69690} GGG500M +GHO                =       G3G500W                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 69691} GGG500M +GHO                =       G3G501I                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 69692} GGG500M+HV               =  0.500GGN400Z + 0.500GHO                                    :  0.100E+01*SUN;
+{ 69693} GGG500M+HV               =       G3G3002 +      GGD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 69694} GGG500M+HV               =       G1G507Z +      GNO2                                   :  0.100E+01*SUN;
+{ 69695} GGG500M+HV               =       GGD4007 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 69696} G1G507Z                     =       G3G3002 +      GGD2000                                : ARR( 0.200E+15,  6105., 0.0);
+{ 69697} G1G507Z                     =       GGD4007 +      GCO     +      GHO2                    : ARR( 0.200E+15,  6793., 0.0);
+{ 69698} GGH504q +GHO                =       GGD500O +      GHO                                    : ARR( 0.981E-11,     0., 0.0);
+{ 69699} GGH504q +GHO                =       G2G505B                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 69700} GGH504q +GHO                =       G3H505P                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 69701} GGH504q+HV               =       G1G505Y +      GHO                                    :  0.100E+01*SUN;
+{ 69702} GGH504q+HV               =       G3H2000 +      GCO     +      GHO2    + 2.000GCO      :  0.100E+01*SUN;
+{ 69703} GGH504q+HV               =       G3H2000 +      GCO     + 2.000GCO     +      GHO2     :  0.100E+01*SUN;
+{ 69704} GGH504q+HV               =       GAH400n +      GCO2                                   :  0.100E+01*SUN;
+{ 69705} G2G505B +GNO                =       G1G505Y +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 69706} G2G505B +GNO                =       GGN502G                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 69707} G2G505B +GHO2               =       GGH504q                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 69708} G2G505B +GNO3               =       G1G505Y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 69709} G2G505B +MEPERO             =  0.480G1G505Y + 0.260GGK500c + 0.260GGD500O                 : ARR( 0.164E-12,  -795., 0.0);
+{ 69710} G2G505B +PERO1              =  0.600G1G505Y + 0.200GGK500c + 0.200GGD500O                 : ARR( 0.126E-12,  -850., 0.0);
+{ 69711} G2G505B +PERO2              =  0.560G1G505Y + 0.220GGK500c + 0.220GGD500O                 : ARR( 0.471E-13, -1350., 0.0);
+{ 69712} G2G505B +PERO3              =  0.600G1G505Y + 0.200GGK500c + 0.200GGD500O                 : ARR( 0.142E-12, -1200., 0.0);
+{ 69713} G2G505B +PERO5              =  0.600G1G505Y + 0.200GGK500c + 0.200GGD500O                 : ARR( 0.533E-11,   500., 0.0);
+{ 69714} G2G505B +PERO6              =  0.460G1G505Y + 0.270GGK500c + 0.270GGD500O                 : ARR( 0.488E-13, -1250., 0.0);
+{ 69715} G2G505B +PERO9              =  0.800G1G505Y + 0.200GGD500O                                : ARR( 0.100E-10,     0., 0.0);
+{ 69716} GGD500O +GHO                =       GCO     +      GHO2    + 4.000GCO                     : ARR( 0.127E-10,     0., 0.0);
+{ 69717} GGD500O +GHO                =       G3D500O                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 69718} GGD500O +GNO3               =       GCO     +      GHNO3   +      GHO2    + 4.000GCO      : ARR( 0.240E-14,     0., 0.0);
+{ 69719} GGD500O+HV               =       GAD4008 +      GCO2                                   :  0.100E+01*SUN;
+{ 69720} GGD500O+HV               =       GCO     +      G3D2000 +      GHO2    + 2.000GCO      :  0.100E+01*SUN;
+{ 69721} GGD500O+HV               =       GCO     +      G3D2000 +      GHO2    + 2.000GCO      :  0.100E+01*SUN;
+{ 69722} GGD500O+HV               =  2.000GCO     + 2.000GHO2    + 3.000GCO                     :  0.100E+01*SUN;
+{ 69723} GGD500O+HV               =       GGD4008 +      GCO                                    :  0.100E+01*SUN;
+{ 69724} GGD500O+HV               =       GGD3002 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 69725} GGG500N +GHO                =       GGG500t +      GHO2                                   : ARR( 0.388E-11,     0., 0.0);
+{ 69726} GGG500N +GHO                =       G3G500X                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 69727} GGG500N +GHO                =       G3G501J                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 69728} GGG500N+HV               =       GGD4008 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 69729} GGG500N+HV               =       G3G3002 +      GCO     +      GHO2    +      GCO      :  0.100E+01*SUN;
+{ 69730} GGG500N+HV               =       GAG4008 +      GCO2                                   :  0.100E+01*SUN;
+{ 69731} GAG500r +GHO                =       GAG501d +      GHO2                                   : ARR( 0.391E-11,     0., 0.0);
+{ 69732} GAG500r +GHO                =       G3A500c                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 69733} GAG500r +GHO                =       GGD4007 +      GNO2    +      GCO2                    : ARR( 0.531E-12,     0., 0.0);
+{ 69734} GAG500r+HV               =       G1A508i +      GNO2                                   :  0.100E+01*SUN;
+{ 69735} GAG500r+HV               =       G3A3001 +      GGD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 69736} GAG500r+HV               =       GAN400b +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 69737} G1A508i                     =       GCO     +      GGD4007 +      GHO                     : ARR( 0.200E+15,  6762., 0.0);
+{ 69738} G1A508i                     =       GAD2000 +      G3G3002                                : ARR( 0.200E+15,  6105., 0.0);
+{ 69739} GAG500s +GHO                =       GAG501g +      GHO2                                   : ARR( 0.390E-11,     0., 0.0);
+{ 69740} GAG500s +GHO                =       G3A500d                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 69741} GAG500s +GHO                =       G3G3002 +      GCO2    +      GCO                     : ARR( 0.529E-12,     0., 0.0);
+{ 69742} GAG500s+HV               =       GGD4007 +      GCO2                                   :  0.100E+01*SUN;
+{ 69743} GAG500s+HV               =       GCO     +      G3G3002 +      GHO     +      GCO      :  0.100E+01*SUN;
+{ 69744} GAG500s+HV               =       GAD4008 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 69745} GGH504r +GHO                =       GGN502M +      GHO                                    : ARR( 0.510E-11,     0., 0.0);
+{ 69746} GGH504r +GHO                =       G2G505C                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 69747} GGH504r +GHO                =       G3H504L                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 69748} GGH504r+HV               =       G1G507a +      GNO2                                   :  0.100E+01*SUN;
+{ 69749} GGH504r+HV               =       G1G505o +      GHO                                    :  0.100E+01*SUN;
+{ 69750} GGH504r+HV               =       G3H3002 +      GGD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 69751} GGH504r+HV               =       G1G506y +      GNO2                                   :  0.100E+01*SUN;
+{ 69752} GGH504r+HV               =       GHN4018 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 69753} G2G505C +GNO                =       G1G505o +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 69754} G2G505C +GNO                =       GGN502L                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 69755} G2G505C +GHO2               =       GGH504r                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 69756} G2G505C +GNO3               =       G1G505o +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 69757} G2G505C +MEPERO             =  0.340G1G505o + 0.330GGN501S + 0.330GGN502M                 : ARR( 0.565E-13,  -845., 0.0);
+{ 69758} G2G505C +PERO1              =  0.460G1G505o + 0.270GGN501S + 0.270GGN502M                 : ARR( 0.434E-13,  -900., 0.0);
+{ 69759} G2G505C +PERO2              =  0.400G1G505o + 0.300GGN501S + 0.300GGN502M                 : ARR( 0.162E-13, -1400., 0.0);
+{ 69760} G2G505C +PERO3              =  0.460G1G505o + 0.270GGN501S + 0.270GGN502M                 : ARR( 0.488E-13, -1250., 0.0);
+{ 69761} G2G505C +PERO5              =  0.460G1G505o + 0.270GGN501S + 0.270GGN502M                 : ARR( 0.183E-11,   450., 0.0);
+{ 69762} G2G505C +PERO6              =  0.300G1G505o + 0.350GGN501S + 0.350GGN502M                 : ARR( 0.168E-13, -1300., 0.0);
+{ 69763} G2G505C +PERO9              =  0.650G1G505o + 0.350GGN502M                                : ARR( 0.100E-10,     0., 0.0);
+{ 69764} G1G507a +OXYGEN             =       GGH505a +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 69765} G1G507a                     =       GGN400Z +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5784., 0.0);
+{ 69766} GHN506v +GHO                =       GND501X +      GHO                                    : ARR( 0.168E-10,     0., 0.0);
+{ 69767} GHN506v +GHO                =       G3H505O                                               : ARR( 0.722E-10,     0., 0.0);
+{ 69768} GHN506v +GNO3               =       G3H505Q +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 69769} GHN506v +GNO3               =       G3H505O +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 69770} GHN506v+HV               =       GCO     +      GHD400K +      GHO2    +      GNO2     :  0.100E+01*SUN;
+{ 69771} GHN506v+HV               =       G1H50By +      GNO2                                   :  0.100E+01*SUN;
+{ 69772} GHN506v+HV               =       G3N3005 +      GDD2000 +      GHO                     :  0.100E+01*SUN;
+{ 69773} GHN506v+HV               =       G1N507K +      GHO                                    :  0.100E+01*SUN;
+{ 69774} GHN506v+HV               =       GND400N +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 69775} GAH504y +GHO                =       GAH503b +      GHO                                    : ARR( 0.189E-10,     0., 0.0);
+{ 69776} GAH504y +GHO                =       GAH503T +      GHO                                    : ARR( 0.838E-11,     0., 0.0);
+{ 69777} GAH504y +GHO                =       G2A5066                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 69778} GAH504y +GHO                =       G2A5067                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 69779} GAH504y+HV               =       G1A506r +      GHO                                    :  0.100E+01*SUN;
+{ 69780} GAH504y+HV               =       G1A5066 +      GHO                                    :  0.100E+01*SUN;
+{ 69781} GAH504y+HV               =       G1A507Z +      GNO2                                   :  0.100E+01*SUN;
+{ 69782} GAH504y+HV               =       G1A508j +      GNO2                                   :  0.100E+01*SUN;
+{ 69783} G2A5066 +GNO                =       G1A506r +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 69784} G2A5066 +GNO                =       GAH503Y                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 69785} G2A5066 +GHO2               =       GAH504y                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 69786} G2A5066 +GNO3               =       G1A506r +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 69787} G2A5066 +MEPERO             =  0.340G1A506r + 0.330GAH503e + 0.330GAH503b                 : ARR( 0.565E-13,  -845., 0.0);
+{ 69788} G2A5066 +PERO1              =  0.460G1A506r + 0.270GAH503e + 0.270GAH503b                 : ARR( 0.434E-13,  -900., 0.0);
+{ 69789} G2A5066 +PERO2              =  0.400G1A506r + 0.300GAH503e + 0.300GAH503b                 : ARR( 0.162E-13, -1400., 0.0);
+{ 69790} G2A5066 +PERO3              =  0.460G1A506r + 0.270GAH503e + 0.270GAH503b                 : ARR( 0.488E-13, -1250., 0.0);
+{ 69791} G2A5066 +PERO5              =  0.460G1A506r + 0.270GAH503e + 0.270GAH503b                 : ARR( 0.183E-11,   450., 0.0);
+{ 69792} G2A5066 +PERO6              =  0.300G1A506r + 0.350GAH503e + 0.350GAH503b                 : ARR( 0.168E-13, -1300., 0.0);
+{ 69793} G2A5066 +PERO9              =  0.650G1A506r + 0.350GAH503b                                : ARR( 0.100E-10,     0., 0.0);
+{ 69794} G2A5067 +GNO                =       G1A5066 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 69795} G2A5067 +GNO                =       GAH5033                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 69796} G2A5067 +GHO2               =       GAH504y                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 69797} G2A5067 +GNO3               =       G1A5066 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 69798} G2A5067 +MEPERO             =  0.340G1A5066 + 0.330GAH503i + 0.330GAH503T                 : ARR( 0.565E-13,  -845., 0.0);
+{ 69799} G2A5067 +PERO1              =  0.460G1A5066 + 0.270GAH503i + 0.270GAH503T                 : ARR( 0.434E-13,  -900., 0.0);
+{ 69800} G2A5067 +PERO2              =  0.400G1A5066 + 0.300GAH503i + 0.300GAH503T                 : ARR( 0.162E-13, -1400., 0.0);
+{ 69801} G2A5067 +PERO3              =  0.460G1A5066 + 0.270GAH503i + 0.270GAH503T                 : ARR( 0.488E-13, -1250., 0.0);
+{ 69802} G2A5067 +PERO5              =  0.460G1A5066 + 0.270GAH503i + 0.270GAH503T                 : ARR( 0.183E-11,   450., 0.0);
+{ 69803} G2A5067 +PERO6              =  0.300G1A5066 + 0.350GAH503i + 0.350GAH503T                 : ARR( 0.168E-13, -1300., 0.0);
+{ 69804} G2A5067 +PERO9              =  0.650G1A5066 + 0.350GAH503T                                : ARR( 0.100E-10,     0., 0.0);
+{ 69805} G1A508j                     =       GAH503G +      GHO                                    : ARR( 0.800E+11,  2034., 0.0);
+{ 69806} GGH400y +GHO                =       GGH400o +      GHO                                    : ARR( 0.161E-10,     0., 0.0);
+{ 69807} GGH400y +GHO                =       GGH400u +      GHO                                    : ARR( 0.826E-11,     0., 0.0);
+{ 69808} GGH400y +GHO                =       G2G400z                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 69809} GGH400y +GHO                =       G2G4017                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 69810} GGH400y +GHO                =       G3H400x                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 69811} GGH400y+HV               =       G1G400p +      GHO                                    :  0.100E+01*SUN;
+{ 69812} GGH400y+HV               =       G1G401F +      GHO                                    :  0.100E+01*SUN;
+{ 69813} GGH400y+HV               =       G1G401G +      GNO2                                   :  0.100E+01*SUN;
+{ 69814} GGH400y+HV               =       GHH3005 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 69815} G2G4017 +GNO                =       G1G401F +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 69816} G2G4017 +GNO                =       GGH400t                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 69817} G2G4017 +GHO2               =       GGH400y                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 69818} G2G4017 +GNO3               =       G1G401F +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 69819} G2G4017 +MEPERO             =  0.340G1G401F + 0.330GGH400c + 0.330GGH400u                 : ARR( 0.565E-13,  -845., 0.0);
+{ 69820} G2G4017 +PERO1              =  0.460G1G401F + 0.270GGH400c + 0.270GGH400u                 : ARR( 0.434E-13,  -900., 0.0);
+{ 69821} G2G4017 +PERO2              =  0.400G1G401F + 0.300GGH400c + 0.300GGH400u                 : ARR( 0.162E-13, -1400., 0.0);
+{ 69822} G2G4017 +PERO3              =  0.460G1G401F + 0.270GGH400c + 0.270GGH400u                 : ARR( 0.488E-13, -1250., 0.0);
+{ 69823} G2G4017 +PERO5              =  0.460G1G401F + 0.270GGH400c + 0.270GGH400u                 : ARR( 0.183E-11,   450., 0.0);
+{ 69824} G2G4017 +PERO6              =  0.300G1G401F + 0.350GGH400c + 0.350GGH400u                 : ARR( 0.168E-13, -1300., 0.0);
+{ 69825} G2G4017 +PERO9              =  0.650G1G401F + 0.350GGH400u                                : ARR( 0.100E-10,     0., 0.0);
+{ 69826} GAH400y +GHO                =       GAH400m +      GHO                                    : ARR( 0.839E-11,     0., 0.0);
+{ 69827} GAH400y +GHO                =       GAH400r +      GHO                                    : ARR( 0.164E-10,     0., 0.0);
+{ 69828} GAH400y +GHO                =       G2A401J                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 69829} GAH400y +GHO                =       G2A401A                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 69830} GAH400y+HV               =       G1A401O +      GNO2                                   :  0.100E+01*SUN;
+{ 69831} GAH400y+HV               =       G1A401C +      GHO                                    :  0.100E+01*SUN;
+{ 69832} GAH400y+HV               =       G1A400x +      GHO                                    :  0.100E+01*SUN;
+{ 69833} G2A401J +GNO                =       G1A401C +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 69834} G2A401J +GNO                =       GAH400i                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 69835} G2A401J +GHO2               =       GAH400y                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 69836} G2A401J +GNO3               =       G1A401C +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 69837} G2A401J +MEPERO             =  0.340G1A401C + 0.330GAH400H + 0.330GAH400m                 : ARR( 0.565E-13,  -845., 0.0);
+{ 69838} G2A401J +PERO1              =  0.460G1A401C + 0.270GAH400H + 0.270GAH400m                 : ARR( 0.434E-13,  -900., 0.0);
+{ 69839} G2A401J +PERO2              =  0.400G1A401C + 0.300GAH400H + 0.300GAH400m                 : ARR( 0.162E-13, -1400., 0.0);
+{ 69840} G2A401J +PERO3              =  0.460G1A401C + 0.270GAH400H + 0.270GAH400m                 : ARR( 0.488E-13, -1250., 0.0);
+{ 69841} G2A401J +PERO5              =  0.460G1A401C + 0.270GAH400H + 0.270GAH400m                 : ARR( 0.183E-11,   450., 0.0);
+{ 69842} G2A401J +PERO6              =  0.300G1A401C + 0.350GAH400H + 0.350GAH400m                 : ARR( 0.168E-13, -1300., 0.0);
+{ 69843} G2A401J +PERO9              =  0.650G1A401C + 0.350GAH400m                                : ARR( 0.100E-10,     0., 0.0);
+{ 69844} GPH400y                     =       G3H400x +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 69845} GPH400y +GHO                =       GPH400s +      GHO                                    : ARR( 0.161E-10,     0., 0.0);
+{ 69846} GPH400y +GHO                =       GPH400n +      GHO                                    : ARR( 0.826E-11,     0., 0.0);
+{ 69847} GPH400y +GHO                =       G2P401J                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 69848} GPH400y +GHO                =       G2P401Q                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 69849} GPH400y+HV               =       G1P400z +      GHO                                    :  0.100E+01*SUN;
+{ 69850} GPH400y+HV               =       G1P401J +      GHO                                    :  0.100E+01*SUN;
+{ 69851} GPH400y+HV               =       G1P401X +      GNO2                                   :  0.100E+01*SUN;
+{ 69852} GPH400y+HV               =       G3H400x +      GNO2                                   :  0.100E+01*SUN;
+{ 69853} G2P401Q +GNO                =       G1P401J +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 69854} G2P401Q +GNO                =       GPH400j                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 69855} G2P401Q +GHO2               =       GPH400y                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 69856} G2P401Q +GNO3               =       G1P401J +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 69857} G2P401Q +MEPERO             =  0.340G1P401J + 0.330GPH400I + 0.330GPH400n                 : ARR( 0.565E-13,  -845., 0.0);
+{ 69858} G2P401Q +PERO1              =  0.460G1P401J + 0.270GPH400I + 0.270GPH400n                 : ARR( 0.434E-13,  -900., 0.0);
+{ 69859} G2P401Q +PERO2              =  0.400G1P401J + 0.300GPH400I + 0.300GPH400n                 : ARR( 0.162E-13, -1400., 0.0);
+{ 69860} G2P401Q +PERO3              =  0.460G1P401J + 0.270GPH400I + 0.270GPH400n                 : ARR( 0.488E-13, -1250., 0.0);
+{ 69861} G2P401Q +PERO5              =  0.460G1P401J + 0.270GPH400I + 0.270GPH400n                 : ARR( 0.183E-11,   450., 0.0);
+{ 69862} G2P401Q +PERO6              =  0.300G1P401J + 0.350GPH400I + 0.350GPH400n                 : ARR( 0.168E-13, -1300., 0.0);
+{ 69863} G2P401Q +PERO9              =  0.650G1P401J + 0.350GPH400n                                : ARR( 0.100E-10,     0., 0.0);
+{ 69864} GGH504s +GHO                =       GGH504y +      GHO                                    : ARR( 0.326E-11,     0., 0.0);
+{ 69865} GGH504s +GHO                =       GGH505D +      GHO                                    : ARR( 0.167E-11,     0., 0.0);
+{ 69866} GGH504s +GHO                =       G2G505D                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 69867} GGH504s +GHO                =       G2G505E                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 69868} GGH504s +GHO                =       G3H504Q                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 69869} GGH504s+HV               =       G1G506S +      GHO                                    :  0.100E+01*SUN;
+{ 69870} GGH504s+HV               =       G1G507b +      GNO2                                   :  0.100E+01*SUN;
+{ 69871} GGH504s+HV               =       G1G507c +      GHO                                    :  0.100E+01*SUN;
+{ 69872} GGH504s+HV               =       G1G507d +      GNO2                                   :  0.100E+01*SUN;
+{ 69873} GGH504s+HV               =       GHH400a +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 69874} G2G505D +GNO                =       G1G506S +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 69875} G2G505D +GNO                =       GGH503d                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 69876} G2G505D +GHO2               =       GGH504s                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 69877} G2G505D +GNO3               =       G1G506S +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 69878} G2G505D +MEPERO             =  0.480G1G506S + 0.260GGH502w + 0.260GGH504y                 : ARR( 0.164E-12,  -795., 0.0);
+{ 69879} G2G505D +PERO1              =  0.600G1G506S + 0.200GGH502w + 0.200GGH504y                 : ARR( 0.126E-12,  -850., 0.0);
+{ 69880} G2G505D +PERO2              =  0.560G1G506S + 0.220GGH502w + 0.220GGH504y                 : ARR( 0.471E-13, -1350., 0.0);
+{ 69881} G2G505D +PERO3              =  0.600G1G506S + 0.200GGH502w + 0.200GGH504y                 : ARR( 0.142E-12, -1200., 0.0);
+{ 69882} G2G505D +PERO5              =  0.600G1G506S + 0.200GGH502w + 0.200GGH504y                 : ARR( 0.533E-11,   500., 0.0);
+{ 69883} G2G505D +PERO6              =  0.460G1G506S + 0.270GGH502w + 0.270GGH504y                 : ARR( 0.488E-13, -1250., 0.0);
+{ 69884} G2G505D +PERO9              =  0.800G1G506S + 0.200GGH504y                                : ARR( 0.100E-10,     0., 0.0);
+{ 69885} G2G505E +GNO                =       G1G507c +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 69886} G2G505E +GNO                =       GGH505C                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 69887} G2G505E +GHO2               =       GGH504s                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 69888} G2G505E +GNO3               =       G1G507c +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 69889} G2G505E +MEPERO             =  0.340G1G507c + 0.330GGH504v + 0.330GGH505D                 : ARR( 0.565E-13,  -845., 0.0);
+{ 69890} G2G505E +PERO1              =  0.460G1G507c + 0.270GGH504v + 0.270GGH505D                 : ARR( 0.434E-13,  -900., 0.0);
+{ 69891} G2G505E +PERO2              =  0.400G1G507c + 0.300GGH504v + 0.300GGH505D                 : ARR( 0.162E-13, -1400., 0.0);
+{ 69892} G2G505E +PERO3              =  0.460G1G507c + 0.270GGH504v + 0.270GGH505D                 : ARR( 0.488E-13, -1250., 0.0);
+{ 69893} G2G505E +PERO5              =  0.460G1G507c + 0.270GGH504v + 0.270GGH505D                 : ARR( 0.183E-11,   450., 0.0);
+{ 69894} G2G505E +PERO6              =  0.300G1G507c + 0.350GGH504v + 0.350GGH505D                 : ARR( 0.168E-13, -1300., 0.0);
+{ 69895} G2G505E +PERO9              =  0.650G1G507c + 0.350GGH505D                                : ARR( 0.100E-10,     0., 0.0);
+{ 69896} G1G507b                     =       GHD2000 +      GGN3005 +      GHO                     : ARR( 0.200E+15,  4828., 0.0);
+{ 69897} G1G507c                     =       GHD2000 +      GGN3005 +      GNO2                    : ARR( 0.200E+15,  5492., 0.0);
+{ 69898} G1G507d                     =       GGH503j +      GHO                                    : ARR( 0.160E+12,  2905., 0.0);
+{ 69899} G1G507d                     =       GHH400a +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 69900} GAH504z +GHO                =       GAH504q +      GHO                                    : ARR( 0.174E-11,     0., 0.0);
+{ 69901} GAH504z +GHO                =       GAH5058 +      GHO                                    : ARR( 0.340E-11,     0., 0.0);
+{ 69902} GAH504z +GHO                =       G2A5068                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 69903} GAH504z +GHO                =       G2A5069                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 69904} GAH504z+HV               =       G1A508k +      GNO2                                   :  0.100E+01*SUN;
+{ 69905} GAH504z+HV               =       G1A507s +      GHO                                    :  0.100E+01*SUN;
+{ 69906} GAH504z+HV               =       G1A508l +      GNO2                                   :  0.100E+01*SUN;
+{ 69907} GAH504z+HV               =       G1A506t +      GHO                                    :  0.100E+01*SUN;
+{ 69908} G2A5068 +GNO                =       G1A507s +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 69909} G2A5068 +GNO                =       GAH504i                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 69910} G2A5068 +GHO2               =       GAH504z                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 69911} G2A5068 +GNO3               =       G1A507s +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 69912} G2A5068 +MEPERO             =  0.340G1A507s + 0.330GAH5053 + 0.330GAH504q                 : ARR( 0.565E-13,  -845., 0.0);
+{ 69913} G2A5068 +PERO1              =  0.460G1A507s + 0.270GAH5053 + 0.270GAH504q                 : ARR( 0.434E-13,  -900., 0.0);
+{ 69914} G2A5068 +PERO2              =  0.400G1A507s + 0.300GAH5053 + 0.300GAH504q                 : ARR( 0.162E-13, -1400., 0.0);
+{ 69915} G2A5068 +PERO3              =  0.460G1A507s + 0.270GAH5053 + 0.270GAH504q                 : ARR( 0.488E-13, -1250., 0.0);
+{ 69916} G2A5068 +PERO5              =  0.460G1A507s + 0.270GAH5053 + 0.270GAH504q                 : ARR( 0.183E-11,   450., 0.0);
+{ 69917} G2A5068 +PERO6              =  0.300G1A507s + 0.350GAH5053 + 0.350GAH504q                 : ARR( 0.168E-13, -1300., 0.0);
+{ 69918} G2A5068 +PERO9              =  0.650G1A507s + 0.350GAH504q                                : ARR( 0.100E-10,     0., 0.0);
+{ 69919} G2A5069 +GNO                =       G1A506t +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 69920} G2A5069 +GNO                =       GAH503Y                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 69921} G2A5069 +GHO2               =       GAH504z                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 69922} G2A5069 +GNO3               =       G1A506t +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 69923} G2A5069 +MEPERO             =  0.480G1A506t + 0.260GAH503B + 0.260GAH5058                 : ARR( 0.164E-12,  -795., 0.0);
+{ 69924} G2A5069 +PERO1              =  0.600G1A506t + 0.200GAH503B + 0.200GAH5058                 : ARR( 0.126E-12,  -850., 0.0);
+{ 69925} G2A5069 +PERO2              =  0.560G1A506t + 0.220GAH503B + 0.220GAH5058                 : ARR( 0.471E-13, -1350., 0.0);
+{ 69926} G2A5069 +PERO3              =  0.600G1A506t + 0.200GAH503B + 0.200GAH5058                 : ARR( 0.142E-12, -1200., 0.0);
+{ 69927} G2A5069 +PERO5              =  0.600G1A506t + 0.200GAH503B + 0.200GAH5058                 : ARR( 0.533E-11,   500., 0.0);
+{ 69928} G2A5069 +PERO6              =  0.460G1A506t + 0.270GAH503B + 0.270GAH5058                 : ARR( 0.488E-13, -1250., 0.0);
+{ 69929} G2A5069 +PERO9              =  0.800G1A506t + 0.200GAH5058                                : ARR( 0.100E-10,     0., 0.0);
+{ 69930} G1A508k                     =       GAH503h +      GHO                                    : ARR( 0.160E+12,  2905., 0.0);
+{ 69931} G1A508k                     =       GCO     +      GHH400a +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 69932} G1A508l                     =       GAN3006 +      GHD2000 +      GHO                     : ARR( 0.200E+15,  4828., 0.0);
+{ 69933} GPH5059                     =       G3H504Q +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 69934} GPH5059 +GHO                =       GPH505F +      GHO                                    : ARR( 0.327E-11,     0., 0.0);
+{ 69935} GPH5059 +GHO                =       GPH504y +      GHO                                    : ARR( 0.167E-11,     0., 0.0);
+{ 69936} GPH5059 +GHO                =       G2P506r                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 69937} GPH5059 +GHO                =       G2P506s                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 69938} GPH5059+HV               =       G1P507Z +      GHO                                    :  0.100E+01*SUN;
+{ 69939} GPH5059+HV               =       G1P509v +      GNO2                                   :  0.100E+01*SUN;
+{ 69940} GPH5059+HV               =       G1P508b +      GHO                                    :  0.100E+01*SUN;
+{ 69941} GPH5059+HV               =       G1P509w +      GNO2                                   :  0.100E+01*SUN;
+{ 69942} GPH5059+HV               =       G3H504Q +      GNO2                                   :  0.100E+01*SUN;
+{ 69943} G2P506r +GNO                =       G1P507Z +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 69944} G2P506r +GNO                =       GPH503d                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 69945} G2P506r +GHO2               =       GPH5059                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 69946} G2P506r +GNO3               =       G1P507Z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 69947} G2P506r +MEPERO             =  0.480G1P507Z + 0.260GPH503H + 0.260GPH505F                 : ARR( 0.164E-12,  -795., 0.0);
+{ 69948} G2P506r +PERO1              =  0.600G1P507Z + 0.200GPH503H + 0.200GPH505F                 : ARR( 0.126E-12,  -850., 0.0);
+{ 69949} G2P506r +PERO2              =  0.560G1P507Z + 0.220GPH503H + 0.220GPH505F                 : ARR( 0.471E-13, -1350., 0.0);
+{ 69950} G2P506r +PERO3              =  0.600G1P507Z + 0.200GPH503H + 0.200GPH505F                 : ARR( 0.142E-12, -1200., 0.0);
+{ 69951} G2P506r +PERO5              =  0.600G1P507Z + 0.200GPH503H + 0.200GPH505F                 : ARR( 0.533E-11,   500., 0.0);
+{ 69952} G2P506r +PERO6              =  0.460G1P507Z + 0.270GPH503H + 0.270GPH505F                 : ARR( 0.488E-13, -1250., 0.0);
+{ 69953} G2P506r +PERO9              =  0.800G1P507Z + 0.200GPH505F                                : ARR( 0.100E-10,     0., 0.0);
+{ 69954} G2P506s +GNO                =       G1P508b +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 69955} G2P506s +GNO                =       GPH504m                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 69956} G2P506s +GHO2               =       GPH5059                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 69957} G2P506s +GNO3               =       G1P508b +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 69958} G2P506s +MEPERO             =  0.340G1P508b + 0.330GPH505C + 0.330GPH504y                 : ARR( 0.565E-13,  -845., 0.0);
+{ 69959} G2P506s +PERO1              =  0.460G1P508b + 0.270GPH505C + 0.270GPH504y                 : ARR( 0.434E-13,  -900., 0.0);
+{ 69960} G2P506s +PERO2              =  0.400G1P508b + 0.300GPH505C + 0.300GPH504y                 : ARR( 0.162E-13, -1400., 0.0);
+{ 69961} G2P506s +PERO3              =  0.460G1P508b + 0.270GPH505C + 0.270GPH504y                 : ARR( 0.488E-13, -1250., 0.0);
+{ 69962} G2P506s +PERO5              =  0.460G1P508b + 0.270GPH505C + 0.270GPH504y                 : ARR( 0.183E-11,   450., 0.0);
+{ 69963} G2P506s +PERO6              =  0.300G1P508b + 0.350GPH505C + 0.350GPH504y                 : ARR( 0.168E-13, -1300., 0.0);
+{ 69964} G2P506s +PERO9              =  0.650G1P508b + 0.350GPH504y                                : ARR( 0.100E-10,     0., 0.0);
+{ 69965} G1P509v                     =       GHD2000 +      GPN3006 +      GHO                     : ARR( 0.200E+15,  4828., 0.0);
+{ 69966} G1P509w                     =       GPH503j +      GHO                                    : ARR( 0.160E+12,  2905., 0.0);
+{ 69967} G1P509w                     =       GHH400a +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 69968} GHH503C +GHO                =       GHN506i +      GHO                                    : ARR( 0.989E-11,     0., 0.0);
+{ 69969} GHH503C +GHO                =       GHN506U +      GHO                                    : ARR( 0.507E-11,     0., 0.0);
+{ 69970} GHH503C +GHO                =       G3H5059                                               : ARR( 0.419E-11,     0., 0.0);
+{ 69971} GHH503C +GHO                =       G2H504E                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 69972} GHH503C +GHO                =       G2H504F                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 69973} GHH503C +GNO3               =       G3H5059 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 69974} GHH503C+HV               =       G1H509T +      GHO                                    :  0.100E+01*SUN;
+{ 69975} GHH503C+HV               =       G3H2000 +      GND3005 +      GHO                     :  0.100E+01*SUN;
+{ 69976} GHH503C+HV               =       G1H50BH +      GHO                                    :  0.100E+01*SUN;
+{ 69977} GHH503C+HV               =       G1H50C7 +      GNO2                                   :  0.100E+01*SUN;
+{ 69978} GHH503C+HV               =       GHH400b +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 69979} G2H504E +GNO                =       G1H509T +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 69980} G2H504E +GNO                =       GHN505U                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 69981} G2H504E +GHO2               =       GHH503C                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 69982} G2H504E +GNO3               =       G1H509T +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 69983} G2H504E +MEPERO             =  0.480G1H509T + 0.260GHN505K + 0.260GHN506i                 : ARR( 0.164E-12,  -795., 0.0);
+{ 69984} G2H504E +PERO1              =  0.600G1H509T + 0.200GHN505K + 0.200GHN506i                 : ARR( 0.126E-12,  -850., 0.0);
+{ 69985} G2H504E +PERO2              =  0.560G1H509T + 0.220GHN505K + 0.220GHN506i                 : ARR( 0.471E-13, -1350., 0.0);
+{ 69986} G2H504E +PERO3              =  0.600G1H509T + 0.200GHN505K + 0.200GHN506i                 : ARR( 0.142E-12, -1200., 0.0);
+{ 69987} G2H504E +PERO5              =  0.600G1H509T + 0.200GHN505K + 0.200GHN506i                 : ARR( 0.533E-11,   500., 0.0);
+{ 69988} G2H504E +PERO6              =  0.460G1H509T + 0.270GHN505K + 0.270GHN506i                 : ARR( 0.488E-13, -1250., 0.0);
+{ 69989} G2H504E +PERO9              =  0.800G1H509T + 0.200GHN506i                                : ARR( 0.100E-10,     0., 0.0);
+{ 69990} G2H504F +GNO                =       G1H50BH +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 69991} G2H504F +GNO                =       GHN506T                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 69992} G2H504F +GHO2               =       GHH503C                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 69993} G2H504F +GNO3               =       G1H50BH +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 69994} G2H504F +MEPERO             =  0.340G1H50BH + 0.330GHN506m + 0.330GHN506U                 : ARR( 0.565E-13,  -845., 0.0);
+{ 69995} G2H504F +PERO1              =  0.460G1H50BH + 0.270GHN506m + 0.270GHN506U                 : ARR( 0.434E-13,  -900., 0.0);
+{ 69996} G2H504F +PERO2              =  0.400G1H50BH + 0.300GHN506m + 0.300GHN506U                 : ARR( 0.162E-13, -1400., 0.0);
+{ 69997} G2H504F +PERO3              =  0.460G1H50BH + 0.270GHN506m + 0.270GHN506U                 : ARR( 0.488E-13, -1250., 0.0);
+{ 69998} G2H504F +PERO5              =  0.460G1H50BH + 0.270GHN506m + 0.270GHN506U                 : ARR( 0.183E-11,   450., 0.0);
+{ 69999} G2H504F +PERO6              =  0.300G1H50BH + 0.350GHN506m + 0.350GHN506U                 : ARR( 0.168E-13, -1300., 0.0);
+{ 70000} G2H504F +PERO9              =  0.650G1H50BH + 0.350GHN506U                                : ARR( 0.100E-10,     0., 0.0);
+{ 70001} G1H50C7                     =       GHH400b +      GCO     +      GHO2                    : ARR( 0.200E+15,  4861., 0.0);
+{ 70002} GGH504t +GHO                =       GGH504M +      GHO                                    : ARR( 0.162E-10,     0., 0.0);
+{ 70003} GGH504t +GHO                =       GGH504Y +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 70004} GGH504t +GHO                =       GGH502Y +      GHO                                    : ARR( 0.828E-11,     0., 0.0);
+{ 70005} GGH504t +GHO                =       G2G505F                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 70006} GGH504t +GHO                =       G2G505G                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 70007} GGH504t +GHO                =       G3H504R                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 70008} GGH504t+HV               =       G1G504k +      GHO                                    :  0.100E+01*SUN;
+{ 70009} GGH504t+HV               =       G1G5061 +      GHO                                    :  0.100E+01*SUN;
+{ 70010} GGH504t+HV               =       G1G507D +      GNO2                                   :  0.100E+01*SUN;
+{ 70011} GGH504t+HV               =       GHH400H +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 70012} G2G505F +GNO                =       G1G504k +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 70013} G2G505F +GNO                =       GGH502a                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 70014} G2G505F +GHO2               =       GGH504t                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 70015} G2G505F +GNO3               =       G1G504k +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 70016} G2G505F +MEPERO             =  0.480G1G504k + 0.260GGH501e + 0.260GGH504M                 : ARR( 0.164E-12,  -795., 0.0);
+{ 70017} G2G505F +PERO1              =  0.600G1G504k + 0.200GGH501e + 0.200GGH504M                 : ARR( 0.126E-12,  -850., 0.0);
+{ 70018} G2G505F +PERO2              =  0.560G1G504k + 0.220GGH501e + 0.220GGH504M                 : ARR( 0.471E-13, -1350., 0.0);
+{ 70019} G2G505F +PERO3              =  0.600G1G504k + 0.200GGH501e + 0.200GGH504M                 : ARR( 0.142E-12, -1200., 0.0);
+{ 70020} G2G505F +PERO5              =  0.600G1G504k + 0.200GGH501e + 0.200GGH504M                 : ARR( 0.533E-11,   500., 0.0);
+{ 70021} G2G505F +PERO6              =  0.460G1G504k + 0.270GGH501e + 0.270GGH504M                 : ARR( 0.488E-13, -1250., 0.0);
+{ 70022} G2G505F +PERO9              =  0.800G1G504k + 0.200GGH504M                                : ARR( 0.100E-10,     0., 0.0);
+{ 70023} G2G505G +GNO                =       G1G5061 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 70024} G2G505G +GNO                =       GGH503L                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 70025} G2G505G +GHO2               =       GGH504t                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 70026} G2G505G +GNO3               =       G1G5061 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 70027} G2G505G +MEPERO             =  0.340G1G5061 + 0.330GGH505b + 0.330GGH502Y                 : ARR( 0.565E-13,  -845., 0.0);
+{ 70028} G2G505G +PERO1              =  0.460G1G5061 + 0.270GGH505b + 0.270GGH502Y                 : ARR( 0.434E-13,  -900., 0.0);
+{ 70029} G2G505G +PERO2              =  0.400G1G5061 + 0.300GGH505b + 0.300GGH502Y                 : ARR( 0.162E-13, -1400., 0.0);
+{ 70030} G2G505G +PERO3              =  0.460G1G5061 + 0.270GGH505b + 0.270GGH502Y                 : ARR( 0.488E-13, -1250., 0.0);
+{ 70031} G2G505G +PERO5              =  0.460G1G5061 + 0.270GGH505b + 0.270GGH502Y                 : ARR( 0.183E-11,   450., 0.0);
+{ 70032} G2G505G +PERO6              =  0.300G1G5061 + 0.350GGH505b + 0.350GGH502Y                 : ARR( 0.168E-13, -1300., 0.0);
+{ 70033} G2G505G +PERO9              =  0.650G1G5061 + 0.350GGH502Y                                : ARR( 0.100E-10,     0., 0.0);
+{ 70034} GAH5051 +GHO                =       GAH502o +      GHO                                    : ARR( 0.838E-11,     0., 0.0);
+{ 70035} GAH5051 +GHO                =       GAH505c +      GHO2                                   : ARR( 0.105E-10,     0., 0.0);
+{ 70036} GAH5051 +GHO                =       GAH504U +      GHO                                    : ARR( 0.164E-10,     0., 0.0);
+{ 70037} GAH5051 +GHO                =       G2A506A                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 70038} GAH5051 +GHO                =       G2A506B                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 70039} GAH5051+HV               =       G1A507l +      GNO2                                   :  0.100E+01*SUN;
+{ 70040} GAH5051+HV               =       G1A505m +      GHO                                    :  0.100E+01*SUN;
+{ 70041} GAH5051+HV               =       G1A504B +      GHO                                    :  0.100E+01*SUN;
+{ 70042} G2A506A +GNO                =       G1A505m +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 70043} G2A506A +GNO                =       GAH502l                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 70044} G2A506A +GHO2               =       GAH5051                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 70045} G2A506A +GNO3               =       G1A505m +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 70046} G2A506A +MEPERO             =  0.340G1A505m + 0.330GAH505Y + 0.330GAH502o                 : ARR( 0.565E-13,  -845., 0.0);
+{ 70047} G2A506A +PERO1              =  0.460G1A505m + 0.270GAH505Y + 0.270GAH502o                 : ARR( 0.434E-13,  -900., 0.0);
+{ 70048} G2A506A +PERO2              =  0.400G1A505m + 0.300GAH505Y + 0.300GAH502o                 : ARR( 0.162E-13, -1400., 0.0);
+{ 70049} G2A506A +PERO3              =  0.460G1A505m + 0.270GAH505Y + 0.270GAH502o                 : ARR( 0.488E-13, -1250., 0.0);
+{ 70050} G2A506A +PERO5              =  0.460G1A505m + 0.270GAH505Y + 0.270GAH502o                 : ARR( 0.183E-11,   450., 0.0);
+{ 70051} G2A506A +PERO6              =  0.300G1A505m + 0.350GAH505Y + 0.350GAH502o                 : ARR( 0.168E-13, -1300., 0.0);
+{ 70052} G2A506A +PERO9              =  0.650G1A505m + 0.350GAH502o                                : ARR( 0.100E-10,     0., 0.0);
+{ 70053} G2A506B +GNO                =       G1A504B +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 70054} G2A506B +GNO                =       GAH501P                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 70055} G2A506B +GHO2               =       GAH5051                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 70056} G2A506B +GNO3               =       G1A504B +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 70057} G2A506B +MEPERO             =  0.480G1A504B + 0.260GAH501m + 0.260GAH504U                 : ARR( 0.164E-12,  -795., 0.0);
+{ 70058} G2A506B +PERO1              =  0.600G1A504B + 0.200GAH501m + 0.200GAH504U                 : ARR( 0.126E-12,  -850., 0.0);
+{ 70059} G2A506B +PERO2              =  0.560G1A504B + 0.220GAH501m + 0.220GAH504U                 : ARR( 0.471E-13, -1350., 0.0);
+{ 70060} G2A506B +PERO3              =  0.600G1A504B + 0.200GAH501m + 0.200GAH504U                 : ARR( 0.142E-12, -1200., 0.0);
+{ 70061} G2A506B +PERO5              =  0.600G1A504B + 0.200GAH501m + 0.200GAH504U                 : ARR( 0.533E-11,   500., 0.0);
+{ 70062} G2A506B +PERO6              =  0.460G1A504B + 0.270GAH501m + 0.270GAH504U                 : ARR( 0.488E-13, -1250., 0.0);
+{ 70063} G2A506B +PERO9              =  0.800G1A504B + 0.200GAH504U                                : ARR( 0.100E-10,     0., 0.0);
+{ 70064} GPH505A                     =       G3H504R +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 70065} GPH505A +GHO                =       GPH504W +      GHO                                    : ARR( 0.162E-10,     0., 0.0);
+{ 70066} GPH505A +GHO                =       GPH504g +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 70067} GPH505A +GHO                =       GPH502w +      GHO                                    : ARR( 0.828E-11,     0., 0.0);
+{ 70068} GPH505A +GHO                =       G2P506t                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 70069} GPH505A +GHO                =       G2P506u                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 70070} GPH505A+HV               =       G1P504N +      GHO                                    :  0.100E+01*SUN;
+{ 70071} GPH505A+HV               =       G1P506R +      GHO                                    :  0.100E+01*SUN;
+{ 70072} GPH505A+HV               =       G1P508I +      GNO2                                   :  0.100E+01*SUN;
+{ 70073} GPH505A+HV               =       G3H504R +      GNO2                                   :  0.100E+01*SUN;
+{ 70074} G2P506t +GNO                =       G1P504N +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 70075} G2P506t +GNO                =       GPH501R                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 70076} G2P506t +GHO2               =       GPH505A                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 70077} G2P506t +GNO3               =       G1P504N +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 70078} G2P506t +MEPERO             =  0.480G1P504N + 0.260GPH501k + 0.260GPH504W                 : ARR( 0.164E-12,  -795., 0.0);
+{ 70079} G2P506t +PERO1              =  0.600G1P504N + 0.200GPH501k + 0.200GPH504W                 : ARR( 0.126E-12,  -850., 0.0);
+{ 70080} G2P506t +PERO2              =  0.560G1P504N + 0.220GPH501k + 0.220GPH504W                 : ARR( 0.471E-13, -1350., 0.0);
+{ 70081} G2P506t +PERO3              =  0.600G1P504N + 0.200GPH501k + 0.200GPH504W                 : ARR( 0.142E-12, -1200., 0.0);
+{ 70082} G2P506t +PERO5              =  0.600G1P504N + 0.200GPH501k + 0.200GPH504W                 : ARR( 0.533E-11,   500., 0.0);
+{ 70083} G2P506t +PERO6              =  0.460G1P504N + 0.270GPH501k + 0.270GPH504W                 : ARR( 0.488E-13, -1250., 0.0);
+{ 70084} G2P506t +PERO9              =  0.800G1P504N + 0.200GPH504W                                : ARR( 0.100E-10,     0., 0.0);
+{ 70085} G2P506u +GNO                =       G1P506R +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 70086} G2P506u +GNO                =       GPH502s                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 70087} G2P506u +GHO2               =       GPH505A                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 70088} G2P506u +GNO3               =       G1P506R +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 70089} G2P506u +MEPERO             =  0.340G1P506R + 0.330GPH505b + 0.330GPH502w                 : ARR( 0.565E-13,  -845., 0.0);
+{ 70090} G2P506u +PERO1              =  0.460G1P506R + 0.270GPH505b + 0.270GPH502w                 : ARR( 0.434E-13,  -900., 0.0);
+{ 70091} G2P506u +PERO2              =  0.400G1P506R + 0.300GPH505b + 0.300GPH502w                 : ARR( 0.162E-13, -1400., 0.0);
+{ 70092} G2P506u +PERO3              =  0.460G1P506R + 0.270GPH505b + 0.270GPH502w                 : ARR( 0.488E-13, -1250., 0.0);
+{ 70093} G2P506u +PERO5              =  0.460G1P506R + 0.270GPH505b + 0.270GPH502w                 : ARR( 0.183E-11,   450., 0.0);
+{ 70094} G2P506u +PERO6              =  0.300G1P506R + 0.350GPH505b + 0.350GPH502w                 : ARR( 0.168E-13, -1300., 0.0);
+{ 70095} G2P506u +PERO9              =  0.650G1P506R + 0.350GPH502w                                : ARR( 0.100E-10,     0., 0.0);
+{ 70096} GHN506w +GHO                =       GND501T +      GHO                                    : ARR( 0.162E-10,     0., 0.0);
+{ 70097} GHN506w +GHO                =       GHN506m +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 70098} GHN506w +GHO                =       GHN506p +      GHO2                                   : ARR( 0.208E-11,     0., 0.0);
+{ 70099} GHN506w +GHO                =       G3H505S                                               : ARR( 0.420E-11,     0., 0.0);
+{ 70100} GHN506w +GHO                =       G2N506k                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 70101} GHN506w +GNO3               =       G3H505S +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 70102} GHN506w+HV               =       G1N506q +      GHO                                    :  0.100E+01*SUN;
+{ 70103} GHN506w+HV               =       G1H50B4 +      GNO2                                   :  0.100E+01*SUN;
+{ 70104} GHN506w+HV               =       GHD400E +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 70105} GHN506w+HV               =       GHK3001 +      GND2000                                :  0.100E+01*SUN;
+{ 70106} G3H505S +GHO2               =  0.800GGH505b + 0.200GAH505Y + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 70107} G3H505S +GNO                =       GHD400E + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 70108} G3H505S +GNO2               =       GPH505b                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 70109} G3H505S +GNO3               =       GHD400E + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 70110} G3H505S +MEPERO             =  0.685GHD400E + 0.315GAH505Y + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 70111} G3H505S +PERO1              =  0.800GHD400E + 0.200GAH505Y + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 70112} G3H505S +PERO2              =  0.750GHD400E + 0.250GAH505Y + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 70113} G3H505S +PERO3              =  0.800GHD400E + 0.200GAH505Y + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 70114} G3H505S +PERO5              =  0.650GHD400E + 0.350GAH505Y + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 70115} G3H505S +PERO6              =  0.650GHD400E + 0.350GAH505Y + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 70116} G3H505S +PERO9              =       GHD400E +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 70117} G2N506k +GNO                =       G1N506q +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 70118} G2N506k +GNO                =       GNN5034                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 70119} G2N506k +GHO2               =       GHN506w                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 70120} G2N506k +GNO3               =       G1N506q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 70121} G2N506k +MEPERO             =  0.480G1N506q + 0.260GND500r + 0.260GND501T                 : ARR( 0.164E-12,  -795., 0.0);
+{ 70122} G2N506k +PERO1              =  0.600G1N506q + 0.200GND500r + 0.200GND501T                 : ARR( 0.126E-12,  -850., 0.0);
+{ 70123} G2N506k +PERO2              =  0.560G1N506q + 0.220GND500r + 0.220GND501T                 : ARR( 0.471E-13, -1350., 0.0);
+{ 70124} G2N506k +PERO3              =  0.600G1N506q + 0.200GND500r + 0.200GND501T                 : ARR( 0.142E-12, -1200., 0.0);
+{ 70125} G2N506k +PERO5              =  0.600G1N506q + 0.200GND500r + 0.200GND501T                 : ARR( 0.533E-11,   500., 0.0);
+{ 70126} G2N506k +PERO6              =  0.460G1N506q + 0.270GND500r + 0.270GND501T                 : ARR( 0.488E-13, -1250., 0.0);
+{ 70127} G2N506k +PERO9              =  0.800G1N506q + 0.200GND501T                                : ARR( 0.100E-10,     0., 0.0);
+{ 70128} GHH503D +GHO                =       GHN506x +      GHO                                    : ARR( 0.173E-10,     0., 0.0);
+{ 70129} GHH503D +GHO                =       G3H505M                                               : ARR( 0.744E-10,     0., 0.0);
+{ 70130} GHH503D +GNO3               =       G3H505M +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 70131} GHH503D+HV               =       G1H50BO +      GHO                                    :  0.100E+01*SUN;
+{ 70132} GHH503D+HV               =       G1H50C8 +      GNO2                                   :  0.100E+01*SUN;
+{ 70133} GHH503D+HV               =       G3H3005 +      GDD2000 +      GHO                     :  0.100E+01*SUN;
+{ 70134} GHH503D+HV               =       G1H50Bq +      GHO                                    :  0.100E+01*SUN;
+{ 70135} GHH503D+HV               =       GHN401C +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 70136} G1H50C8                     =       GHD2000 +      G3H3006                                : ARR( 0.200E+15,  3778., 0.0);
+{ 70137} GGH504u +GHO                =       GGH5054 +      GHO                                    : ARR( 0.322E-11,     0., 0.0);
+{ 70138} GGH504u +GHO                =       GGH505Z +      GHO                                    : ARR( 0.826E-11,     0., 0.0);
+{ 70139} GGH504u +GHO                =       GGH505O +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 70140} GGH504u +GHO                =       G2G505H                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 70141} GGH504u +GHO                =       G2G505I                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 70142} GGH504u +GHO                =       G2G505J                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 70143} GGH504u +GHO                =       G3H504S                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 70144} GGH504u+HV               =       G1G506U +      GHO                                    :  0.100E+01*SUN;
+{ 70145} GGH504u+HV               =       G1G507e +      GNO2                                   :  0.100E+01*SUN;
+{ 70146} GGH504u+HV               =       G1G507f +      GHO                                    :  0.100E+01*SUN;
+{ 70147} GGH504u+HV               =       G1G507d +      GHO                                    :  0.100E+01*SUN;
+{ 70148} GGH504u+HV               =       GHH400a +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 70149} G2G505H +GNO                =       G1G506U +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 70150} G2G505H +GNO                =       GGH503e                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 70151} G2G505H +GHO2               =       GGH504u                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 70152} G2G505H +GNO3               =       G1G506U +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 70153} G2G505H +MEPERO             =  0.480G1G506U + 0.260GGH503h + 0.260GGH5054                 : ARR( 0.164E-12,  -795., 0.0);
+{ 70154} G2G505H +PERO1              =  0.600G1G506U + 0.200GGH503h + 0.200GGH5054                 : ARR( 0.126E-12,  -850., 0.0);
+{ 70155} G2G505H +PERO2              =  0.560G1G506U + 0.220GGH503h + 0.220GGH5054                 : ARR( 0.471E-13, -1350., 0.0);
+{ 70156} G2G505H +PERO3              =  0.600G1G506U + 0.200GGH503h + 0.200GGH5054                 : ARR( 0.142E-12, -1200., 0.0);
+{ 70157} G2G505H +PERO5              =  0.600G1G506U + 0.200GGH503h + 0.200GGH5054                 : ARR( 0.533E-11,   500., 0.0);
+{ 70158} G2G505H +PERO6              =  0.460G1G506U + 0.270GGH503h + 0.270GGH5054                 : ARR( 0.488E-13, -1250., 0.0);
+{ 70159} G2G505H +PERO9              =  0.800G1G506U + 0.200GGH5054                                : ARR( 0.100E-10,     0., 0.0);
+{ 70160} G2G505I +GNO                =       G1G507f +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 70161} G2G505I +GNO                =       GGH505c                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 70162} G2G505I +GHO2               =       GGH504u                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 70163} G2G505I +GNO3               =       G1G507f +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 70164} G2G505I +MEPERO             =  0.340G1G507f + 0.330GGH504w + 0.330GGH505Z                 : ARR( 0.565E-13,  -845., 0.0);
+{ 70165} G2G505I +PERO1              =  0.460G1G507f + 0.270GGH504w + 0.270GGH505Z                 : ARR( 0.434E-13,  -900., 0.0);
+{ 70166} G2G505I +PERO2              =  0.400G1G507f + 0.300GGH504w + 0.300GGH505Z                 : ARR( 0.162E-13, -1400., 0.0);
+{ 70167} G2G505I +PERO3              =  0.460G1G507f + 0.270GGH504w + 0.270GGH505Z                 : ARR( 0.488E-13, -1250., 0.0);
+{ 70168} G2G505I +PERO5              =  0.460G1G507f + 0.270GGH504w + 0.270GGH505Z                 : ARR( 0.183E-11,   450., 0.0);
+{ 70169} G2G505I +PERO6              =  0.300G1G507f + 0.350GGH504w + 0.350GGH505Z                 : ARR( 0.168E-13, -1300., 0.0);
+{ 70170} G2G505I +PERO9              =  0.650G1G507f + 0.350GGH505Z                                : ARR( 0.100E-10,     0., 0.0);
+{ 70171} G2G505J +GNO                =       G1G507d +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 70172} G2G505J +GNO                =       GGH504s                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 70173} G2G505J +GHO2               =       GGH504u                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 70174} G2G505J +GNO3               =       G1G507d +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 70175} G2G505J +MEPERO             =  0.340G1G507d + 0.330GGH504E + 0.330GGH505O                 : ARR( 0.565E-13,  -845., 0.0);
+{ 70176} G2G505J +PERO1              =  0.460G1G507d + 0.270GGH504E + 0.270GGH505O                 : ARR( 0.434E-13,  -900., 0.0);
+{ 70177} G2G505J +PERO2              =  0.400G1G507d + 0.300GGH504E + 0.300GGH505O                 : ARR( 0.162E-13, -1400., 0.0);
+{ 70178} G2G505J +PERO3              =  0.460G1G507d + 0.270GGH504E + 0.270GGH505O                 : ARR( 0.488E-13, -1250., 0.0);
+{ 70179} G2G505J +PERO5              =  0.460G1G507d + 0.270GGH504E + 0.270GGH505O                 : ARR( 0.183E-11,   450., 0.0);
+{ 70180} G2G505J +PERO6              =  0.300G1G507d + 0.350GGH504E + 0.350GGH505O                 : ARR( 0.168E-13, -1300., 0.0);
+{ 70181} G2G505J +PERO9              =  0.650G1G507d + 0.350GGH505O                                : ARR( 0.100E-10,     0., 0.0);
+{ 70182} G1G507e                     =       GHD2000 +      GGH3007 +      GHO                     : ARR( 0.200E+15,  4828., 0.0);
+{ 70183} G1G507f                     =       GHD2000 +      GGH3007 +      GNO2                    : ARR( 0.200E+15,  5492., 0.0);
+{ 70184} G1G507f                     =       GHN300A +      GGD2000 +      GHO                     : ARR( 0.200E+15,  5138., 0.0);
+{ 70185} GAH5052 +GHO                =       GAH505R +      GHO                                    : ARR( 0.189E-10,     0., 0.0);
+{ 70186} GAH5052 +GHO                =       GAH505d +      GHO                                    : ARR( 0.837E-11,     0., 0.0);
+{ 70187} GAH5052 +GHO                =       GAH505D +      GHO                                    : ARR( 0.327E-11,     0., 0.0);
+{ 70188} GAH5052 +GHO                =       G2A506C                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 70189} GAH5052 +GHO                =       G2A506D                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 70190} GAH5052 +GHO                =       G2A506E                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 70191} GAH5052+HV               =       G1A508k +      GHO                                    :  0.100E+01*SUN;
+{ 70192} GAH5052+HV               =       G1A508m +      GHO                                    :  0.100E+01*SUN;
+{ 70193} GAH5052+HV               =       G1A508n +      GNO2                                   :  0.100E+01*SUN;
+{ 70194} GAH5052+HV               =       G1A508j +      GHO                                    :  0.100E+01*SUN;
+{ 70195} G2A506C +GNO                =       G1A508k +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 70196} G2A506C +GNO                =       GAH504z                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 70197} G2A506C +GHO2               =       GAH5052                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 70198} G2A506C +GNO3               =       G1A508k +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 70199} G2A506C +MEPERO             =  0.340G1A508k + 0.330GAH504M + 0.330GAH505R                 : ARR( 0.565E-13,  -845., 0.0);
+{ 70200} G2A506C +PERO1              =  0.460G1A508k + 0.270GAH504M + 0.270GAH505R                 : ARR( 0.434E-13,  -900., 0.0);
+{ 70201} G2A506C +PERO2              =  0.400G1A508k + 0.300GAH504M + 0.300GAH505R                 : ARR( 0.162E-13, -1400., 0.0);
+{ 70202} G2A506C +PERO3              =  0.460G1A508k + 0.270GAH504M + 0.270GAH505R                 : ARR( 0.488E-13, -1250., 0.0);
+{ 70203} G2A506C +PERO5              =  0.460G1A508k + 0.270GAH504M + 0.270GAH505R                 : ARR( 0.183E-11,   450., 0.0);
+{ 70204} G2A506C +PERO6              =  0.300G1A508k + 0.350GAH504M + 0.350GAH505R                 : ARR( 0.168E-13, -1300., 0.0);
+{ 70205} G2A506C +PERO9              =  0.650G1A508k + 0.350GAH505R                                : ARR( 0.100E-10,     0., 0.0);
+{ 70206} G2A506D +GNO                =       G1A508m +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 70207} G2A506D +GNO                =       GAH505e                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 70208} G2A506D +GHO2               =       GAH5052                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 70209} G2A506D +GNO3               =       G1A508m +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 70210} G2A506D +MEPERO             =  0.340G1A508m + 0.330GAH5054 + 0.330GAH505d                 : ARR( 0.565E-13,  -845., 0.0);
+{ 70211} G2A506D +PERO1              =  0.460G1A508m + 0.270GAH5054 + 0.270GAH505d                 : ARR( 0.434E-13,  -900., 0.0);
+{ 70212} G2A506D +PERO2              =  0.400G1A508m + 0.300GAH5054 + 0.300GAH505d                 : ARR( 0.162E-13, -1400., 0.0);
+{ 70213} G2A506D +PERO3              =  0.460G1A508m + 0.270GAH5054 + 0.270GAH505d                 : ARR( 0.488E-13, -1250., 0.0);
+{ 70214} G2A506D +PERO5              =  0.460G1A508m + 0.270GAH5054 + 0.270GAH505d                 : ARR( 0.183E-11,   450., 0.0);
+{ 70215} G2A506D +PERO6              =  0.300G1A508m + 0.350GAH5054 + 0.350GAH505d                 : ARR( 0.168E-13, -1300., 0.0);
+{ 70216} G2A506D +PERO9              =  0.650G1A508m + 0.350GAH505d                                : ARR( 0.100E-10,     0., 0.0);
+{ 70217} G2A506E +GNO                =       G1A508j +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 70218} G2A506E +GNO                =       GAH504y                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 70219} G2A506E +GHO2               =       GAH5052                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 70220} G2A506E +GNO3               =       G1A508j +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 70221} G2A506E +MEPERO             =  0.480G1A508j + 0.260GAH503f + 0.260GAH505D                 : ARR( 0.164E-12,  -795., 0.0);
+{ 70222} G2A506E +PERO1              =  0.600G1A508j + 0.200GAH503f + 0.200GAH505D                 : ARR( 0.126E-12,  -850., 0.0);
+{ 70223} G2A506E +PERO2              =  0.560G1A508j + 0.220GAH503f + 0.220GAH505D                 : ARR( 0.471E-13, -1350., 0.0);
+{ 70224} G2A506E +PERO3              =  0.600G1A508j + 0.200GAH503f + 0.200GAH505D                 : ARR( 0.142E-12, -1200., 0.0);
+{ 70225} G2A506E +PERO5              =  0.600G1A508j + 0.200GAH503f + 0.200GAH505D                 : ARR( 0.533E-11,   500., 0.0);
+{ 70226} G2A506E +PERO6              =  0.460G1A508j + 0.270GAH503f + 0.270GAH505D                 : ARR( 0.488E-13, -1250., 0.0);
+{ 70227} G2A506E +PERO9              =  0.800G1A508j + 0.200GAH505D                                : ARR( 0.100E-10,     0., 0.0);
+{ 70228} G1A508m                     =       GAD2000 +      GHN300A +      GHO                     : ARR( 0.200E+15,  5138., 0.0);
+{ 70229} G1A508m                     =       GAH3007 +      GHD2000 +      GNO2                    : ARR( 0.200E+15,  5492., 0.0);
+{ 70230} G1A508n                     =       GAH3007 +      GHD2000 +      GHO                     : ARR( 0.200E+15,  4828., 0.0);
+{ 70231} GPH505B                     =       G3H504S +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 70232} GPH505B +GHO                =       GPH505K +      GHO                                    : ARR( 0.322E-11,     0., 0.0);
+{ 70233} GPH505B +GHO                =       GPH504z +      GHO                                    : ARR( 0.826E-11,     0., 0.0);
+{ 70234} GPH505B +GHO                =       GPH505X +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 70235} GPH505B +GHO                =       G2P506v                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 70236} GPH505B +GHO                =       G2P506w                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 70237} GPH505B +GHO                =       G2P506x                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 70238} GPH505B+HV               =       G1P507b +      GHO                                    :  0.100E+01*SUN;
+{ 70239} GPH505B+HV               =       G1P509x +      GNO2                                   :  0.100E+01*SUN;
+{ 70240} GPH505B+HV               =       G1P509y +      GHO                                    :  0.100E+01*SUN;
+{ 70241} GPH505B+HV               =       G1P509w +      GHO                                    :  0.100E+01*SUN;
+{ 70242} GPH505B+HV               =       G3H504S +      GNO2                                   :  0.100E+01*SUN;
+{ 70243} G2P506v +GNO                =       G1P507b +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 70244} G2P506v +GNO                =       GPH503e                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 70245} G2P506v +GHO2               =       GPH505B                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 70246} G2P506v +GNO3               =       G1P507b +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 70247} G2P506v +MEPERO             =  0.480G1P507b + 0.260GPH503h + 0.260GPH505K                 : ARR( 0.164E-12,  -795., 0.0);
+{ 70248} G2P506v +PERO1              =  0.600G1P507b + 0.200GPH503h + 0.200GPH505K                 : ARR( 0.126E-12,  -850., 0.0);
+{ 70249} G2P506v +PERO2              =  0.560G1P507b + 0.220GPH503h + 0.220GPH505K                 : ARR( 0.471E-13, -1350., 0.0);
+{ 70250} G2P506v +PERO3              =  0.600G1P507b + 0.200GPH503h + 0.200GPH505K                 : ARR( 0.142E-12, -1200., 0.0);
+{ 70251} G2P506v +PERO5              =  0.600G1P507b + 0.200GPH503h + 0.200GPH505K                 : ARR( 0.533E-11,   500., 0.0);
+{ 70252} G2P506v +PERO6              =  0.460G1P507b + 0.270GPH503h + 0.270GPH505K                 : ARR( 0.488E-13, -1250., 0.0);
+{ 70253} G2P506v +PERO9              =  0.800G1P507b + 0.200GPH505K                                : ARR( 0.100E-10,     0., 0.0);
+{ 70254} G2P506w +GNO                =       G1P509y +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 70255} G2P506w +GNO                =       GPH505e                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 70256} G2P506w +GHO2               =       GPH505B                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 70257} G2P506w +GNO3               =       G1P509y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 70258} G2P506w +MEPERO             =  0.340G1P509y + 0.330GPH505D + 0.330GPH504z                 : ARR( 0.565E-13,  -845., 0.0);
+{ 70259} G2P506w +PERO1              =  0.460G1P509y + 0.270GPH505D + 0.270GPH504z                 : ARR( 0.434E-13,  -900., 0.0);
+{ 70260} G2P506w +PERO2              =  0.400G1P509y + 0.300GPH505D + 0.300GPH504z                 : ARR( 0.162E-13, -1400., 0.0);
+{ 70261} G2P506w +PERO3              =  0.460G1P509y + 0.270GPH505D + 0.270GPH504z                 : ARR( 0.488E-13, -1250., 0.0);
+{ 70262} G2P506w +PERO5              =  0.460G1P509y + 0.270GPH505D + 0.270GPH504z                 : ARR( 0.183E-11,   450., 0.0);
+{ 70263} G2P506w +PERO6              =  0.300G1P509y + 0.350GPH505D + 0.350GPH504z                 : ARR( 0.168E-13, -1300., 0.0);
+{ 70264} G2P506w +PERO9              =  0.650G1P509y + 0.350GPH504z                                : ARR( 0.100E-10,     0., 0.0);
+{ 70265} G2P506x +GNO                =       G1P509w +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 70266} G2P506x +GNO                =       GPH5059                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 70267} G2P506x +GHO2               =       GPH505B                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 70268} G2P506x +GNO3               =       G1P509w +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 70269} G2P506x +MEPERO             =  0.340G1P509w + 0.330GPH504O + 0.330GPH505X                 : ARR( 0.565E-13,  -845., 0.0);
+{ 70270} G2P506x +PERO1              =  0.460G1P509w + 0.270GPH504O + 0.270GPH505X                 : ARR( 0.434E-13,  -900., 0.0);
+{ 70271} G2P506x +PERO2              =  0.400G1P509w + 0.300GPH504O + 0.300GPH505X                 : ARR( 0.162E-13, -1400., 0.0);
+{ 70272} G2P506x +PERO3              =  0.460G1P509w + 0.270GPH504O + 0.270GPH505X                 : ARR( 0.488E-13, -1250., 0.0);
+{ 70273} G2P506x +PERO5              =  0.460G1P509w + 0.270GPH504O + 0.270GPH505X                 : ARR( 0.183E-11,   450., 0.0);
+{ 70274} G2P506x +PERO6              =  0.300G1P509w + 0.350GPH504O + 0.350GPH505X                 : ARR( 0.168E-13, -1300., 0.0);
+{ 70275} G2P506x +PERO9              =  0.650G1P509w + 0.350GPH505X                                : ARR( 0.100E-10,     0., 0.0);
+{ 70276} G1P509x                     =       GHD2000 +      GPH3007 +      GHO                     : ARR( 0.200E+15,  4828., 0.0);
+{ 70277} G1P509y                     =       GHD2000 +      GPH3007 +      GNO2                    : ARR( 0.200E+15,  5492., 0.0);
+{ 70278} G1P509y                     =       GHN300A +      GPD2000 +      GHO                     : ARR( 0.200E+15,  5138., 0.0);
+{ 70279} GHH503E +GHO                =       GHN506n +      GHO                                    : ARR( 0.323E-11,     0., 0.0);
+{ 70280} GHH503E +GHO                =       GHN506y +      GHO                                    : ARR( 0.504E-11,     0., 0.0);
+{ 70281} GHH503E +GHO                =       G3H505T                                               : ARR( 0.208E-10,     0., 0.0);
+{ 70282} GHH503E +GHO                =       G2H504G                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 70283} GHH503E +GHO                =       G2H504H                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 70284} GHH503E +GNO3               =       G3H505T +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 70285} GHH503E+HV               =       G1H509y +      GHO                                    :  0.100E+01*SUN;
+{ 70286} GHH503E+HV               =       G1H50C9 +      GNO2                                   :  0.100E+01*SUN;
+{ 70287} GHH503E+HV               =       G1H50BW +      GNO2                                   :  0.100E+01*SUN;
+{ 70288} GHH503E+HV               =       G1H50Bo +      GHO                                    :  0.100E+01*SUN;
+{ 70289} GHH503E+HV               =       GHN4013 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 70290} G3H505T +GHO2               =  0.800GGH505c + 0.200GAH505e + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 70291} G3H505T +GNO                =       GHN4013 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 70292} G3H505T +GNO2               =       GPH505e                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 70293} G3H505T +GNO3               =       GHN4013 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 70294} G3H505T +MEPERO             =  0.685GHN4013 + 0.315GAH505e + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 70295} G3H505T +PERO1              =  0.800GHN4013 + 0.200GAH505e + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 70296} G3H505T +PERO2              =  0.750GHN4013 + 0.250GAH505e + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 70297} G3H505T +PERO3              =  0.800GHN4013 + 0.200GAH505e + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 70298} G3H505T +PERO5              =  0.650GHN4013 + 0.350GAH505e + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 70299} G3H505T +PERO6              =  0.650GHN4013 + 0.350GAH505e + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 70300} G3H505T +PERO9              =       GHN4013 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 70301} G2H504G +GNO                =       G1H509y +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 70302} G2H504G +GNO                =       GHN505k                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 70303} G2H504G +GHO2               =       GHH503E                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 70304} G2H504G +GNO3               =       G1H509y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 70305} G2H504G +MEPERO             =  0.480G1H509y + 0.260GHN505h + 0.260GHN506n                 : ARR( 0.164E-12,  -795., 0.0);
+{ 70306} G2H504G +PERO1              =  0.600G1H509y + 0.200GHN505h + 0.200GHN506n                 : ARR( 0.126E-12,  -850., 0.0);
+{ 70307} G2H504G +PERO2              =  0.560G1H509y + 0.220GHN505h + 0.220GHN506n                 : ARR( 0.471E-13, -1350., 0.0);
+{ 70308} G2H504G +PERO3              =  0.600G1H509y + 0.200GHN505h + 0.200GHN506n                 : ARR( 0.142E-12, -1200., 0.0);
+{ 70309} G2H504G +PERO5              =  0.600G1H509y + 0.200GHN505h + 0.200GHN506n                 : ARR( 0.533E-11,   500., 0.0);
+{ 70310} G2H504G +PERO6              =  0.460G1H509y + 0.270GHN505h + 0.270GHN506n                 : ARR( 0.488E-13, -1250., 0.0);
+{ 70311} G2H504G +PERO9              =  0.800G1H509y + 0.200GHN506n                                : ARR( 0.100E-10,     0., 0.0);
+{ 70312} G2H504H +GNO                =       G1H50Bo +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 70313} G2H504H +GNO                =       GHN506k                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 70314} G2H504H +GHO2               =       GHH503E                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 70315} G2H504H +GNO3               =       G1H50Bo +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 70316} G2H504H +MEPERO             =  0.340G1H50Bo + 0.330GHN506s + 0.330GHN506y                 : ARR( 0.565E-13,  -845., 0.0);
+{ 70317} G2H504H +PERO1              =  0.460G1H50Bo + 0.270GHN506s + 0.270GHN506y                 : ARR( 0.434E-13,  -900., 0.0);
+{ 70318} G2H504H +PERO2              =  0.400G1H50Bo + 0.300GHN506s + 0.300GHN506y                 : ARR( 0.162E-13, -1400., 0.0);
+{ 70319} G2H504H +PERO3              =  0.460G1H50Bo + 0.270GHN506s + 0.270GHN506y                 : ARR( 0.488E-13, -1250., 0.0);
+{ 70320} G2H504H +PERO5              =  0.460G1H50Bo + 0.270GHN506s + 0.270GHN506y                 : ARR( 0.183E-11,   450., 0.0);
+{ 70321} G2H504H +PERO6              =  0.300G1H50Bo + 0.350GHN506s + 0.350GHN506y                 : ARR( 0.168E-13, -1300., 0.0);
+{ 70322} G2H504H +PERO9              =  0.650G1H50Bo + 0.350GHN506y                                : ARR( 0.100E-10,     0., 0.0);
+{ 70323} G1H50C9                     =       G3H503n                                               : ARR( 0.800E+11,  4559., 0.0);
+{ 70324} G1H50C9                     =       GCH2O   +      GHN400y +      GHO                     : ARR( 0.200E+15,  7395., 0.0);
+{ 70325} G1H50C9                     =       GHD2000 +      GHD3004 +      GNO2                    : ARR( 0.200E+15,  6367., 0.0);
+{ 70326} GHN506x +GHO                =       GND501X +      GHO                                    : ARR( 0.323E-11,     0., 0.0);
+{ 70327} GHN506x +GHO                =       G3H3005 + 2.000GCO                                    : ARR( 0.127E-10,     0., 0.0);
+{ 70328} GHN506x +GHO                =       G2N506l                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 70329} GHN506x +GNO3               =       G3H3005 +      GHNO3   + 2.000GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 70330} GHN506x+HV               =       G1N5072 +      GHO                                    :  0.100E+01*SUN;
+{ 70331} GHN506x+HV               =       G1H50CA +      GNO2                                   :  0.100E+01*SUN;
+{ 70332} GHN506x+HV               =       G3H3005 +      G3D2000                                :  0.100E+01*SUN;
+{ 70333} GHN506x+HV               =       G3H3005 +      GCO     +      GCO     +      GHO2     :  0.100E+01*SUN;
+{ 70334} GHN506x+HV               =       GHN401C +      GCO                                    :  0.100E+01*SUN;
+{ 70335} GHN506x+HV               =       GHN300A +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 70336} G2N506l +GNO                =       G1N5072 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 70337} G2N506l +GNO                =       GNN503A                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 70338} G2N506l +GHO2               =       GHN506x                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 70339} G2N506l +GNO3               =       G1N5072 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 70340} G2N506l +MEPERO             =  0.480G1N5072 + 0.260GND5016 + 0.260GND501X                 : ARR( 0.164E-12,  -795., 0.0);
+{ 70341} G2N506l +PERO1              =  0.600G1N5072 + 0.200GND5016 + 0.200GND501X                 : ARR( 0.126E-12,  -850., 0.0);
+{ 70342} G2N506l +PERO2              =  0.560G1N5072 + 0.220GND5016 + 0.220GND501X                 : ARR( 0.471E-13, -1350., 0.0);
+{ 70343} G2N506l +PERO3              =  0.600G1N5072 + 0.200GND5016 + 0.200GND501X                 : ARR( 0.142E-12, -1200., 0.0);
+{ 70344} G2N506l +PERO5              =  0.600G1N5072 + 0.200GND5016 + 0.200GND501X                 : ARR( 0.533E-11,   500., 0.0);
+{ 70345} G2N506l +PERO6              =  0.460G1N5072 + 0.270GND5016 + 0.270GND501X                 : ARR( 0.488E-13, -1250., 0.0);
+{ 70346} G2N506l +PERO9              =  0.800G1N5072 + 0.200GND501X                                : ARR( 0.100E-10,     0., 0.0);
+{ 70347} G1H50CA                     =       GHD2000 +      G3D2000 +      GCO                     : ARR( 0.200E+15,  3291., 0.0);
+{ 70348} GHN506y +GHO                =       GNN503G +      GHO                                    : ARR( 0.322E-11,     0., 0.0);
+{ 70349} GHN506y +GHO                =       G3H400m +      GCO                                    : ARR( 0.127E-10,     0., 0.0);
+{ 70350} GHN506y +GHO                =       G2N506m                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 70351} GHN506y +GNO3               =       G3H400m +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 70352} GHN506y+HV               =       G1N506s +      GHO                                    :  0.100E+01*SUN;
+{ 70353} GHN506y+HV               =       G1H50C5 +      GNO2                                   :  0.100E+01*SUN;
+{ 70354} GHN506y+HV               =       G1H50Ba +      GNO2                                   :  0.100E+01*SUN;
+{ 70355} GHN506y+HV               =       G3H400m +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 70356} GHN506y+HV               =       GHN4013 +      GCO                                    :  0.100E+01*SUN;
+{ 70357} GHN506y+HV               =       GHN3004 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 70358} G2N506m +GNO                =       G1N506s +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 70359} G2N506m +GNO                =       GNN5036                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 70360} G2N506m +GHO2               =       GHN506y                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 70361} G2N506m +GNO3               =       G1N506s +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 70362} G2N506m +MEPERO             =  0.480G1N506s + 0.260GNN502c + 0.260GNN503G                 : ARR( 0.164E-12,  -795., 0.0);
+{ 70363} G2N506m +PERO1              =  0.600G1N506s + 0.200GNN502c + 0.200GNN503G                 : ARR( 0.126E-12,  -850., 0.0);
+{ 70364} G2N506m +PERO2              =  0.560G1N506s + 0.220GNN502c + 0.220GNN503G                 : ARR( 0.471E-13, -1350., 0.0);
+{ 70365} G2N506m +PERO3              =  0.600G1N506s + 0.200GNN502c + 0.200GNN503G                 : ARR( 0.142E-12, -1200., 0.0);
+{ 70366} G2N506m +PERO5              =  0.600G1N506s + 0.200GNN502c + 0.200GNN503G                 : ARR( 0.533E-11,   500., 0.0);
+{ 70367} G2N506m +PERO6              =  0.460G1N506s + 0.270GNN502c + 0.270GNN503G                 : ARR( 0.488E-13, -1250., 0.0);
+{ 70368} G2N506m +PERO9              =  0.800G1N506s + 0.200GNN503G                                : ARR( 0.100E-10,     0., 0.0);
+{ 70369} GHH503F +GHO                =       GHD501U +      GHO                                    : ARR( 0.106E-10,     0., 0.0);
+{ 70370} GHH503F +GHO                =       GHD501W +      GHO                                    : ARR( 0.165E-10,     0., 0.0);
+{ 70371} GHH503F +GHO                =       G3H505U                                               : ARR( 0.711E-10,     0., 0.0);
+{ 70372} GHH503F +GNO3               =       G3H505U +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 70373} GHH503F+HV               =       G1H50Ap +      GHO                                    :  0.100E+01*SUN;
+{ 70374} GHH503F+HV               =       G3H2000 +      G3H3006                                :  0.100E+01*SUN;
+{ 70375} GHH503F+HV               =       G1H50BJ +      GHO                                    :  0.100E+01*SUN;
+{ 70376} GHH503F+HV               =       GHD400N +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 70377} G3H505U +GHO2               =  0.800GGH505T + 0.200GAH505Z + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 70378} G3H505U +GNO                =       GHD400N +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 70379} G3H505U +GNO2               =       GPH505c                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 70380} G3H505U +GNO3               =       GHD400N +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 70381} G3H505U +MEPERO             =  0.685GHD400N + 0.315GAH505Z + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 70382} G3H505U +PERO1              =  0.800GHD400N + 0.200GAH505Z + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 70383} G3H505U +PERO2              =  0.750GHD400N + 0.250GAH505Z + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 70384} G3H505U +PERO3              =  0.800GHD400N + 0.200GAH505Z + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 70385} G3H505U +PERO5              =  0.650GHD400N + 0.350GAH505Z + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 70386} G3H505U +PERO6              =  0.650GHD400N + 0.350GAH505Z + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 70387} G3H505U +PERO9              =       GHD400N +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 70388} GHD501W +GHO                =       GDD500F +      GHO                                    : ARR( 0.981E-11,     0., 0.0);
+{ 70389} GHD501W +GHO                =       G3H2000 + 3.000GCO                                    : ARR( 0.127E-10,     0., 0.0);
+{ 70390} GHD501W +GHO                =       G2D500t                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 70391} GHD501W +GNO3               =       G3H2000 +      GHNO3   + 3.000GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 70392} GHD501W+HV               =       G1D501M +      GHO                                    :  0.100E+01*SUN;
+{ 70393} GHD501W+HV               =       G3H2000 +      G3D2000 +      GCO                     :  0.100E+01*SUN;
+{ 70394} GHD501W+HV               =       G3H2000 +      G3D2000 +      GCO                     :  0.100E+01*SUN;
+{ 70395} GHD501W+HV               =       G3H2000 +      GCO     + 2.000GCO     +      GHO2     :  0.100E+01*SUN;
+{ 70396} GHD501W+HV               =       GHD400N +      GCO                                    :  0.100E+01*SUN;
+{ 70397} GHD501W+HV               =       GHD3001 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 70398} G2D500t +GNO                =       G1D501M +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 70399} G2D500t +GNO                =       GND501J                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 70400} G2D500t +GHO2               =       GHD501W                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 70401} G2D500t +GNO3               =       G1D501M +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 70402} G2D500t +MEPERO             =  0.480G1D501M + 0.260GDK500c + 0.260GDD500F                 : ARR( 0.164E-12,  -795., 0.0);
+{ 70403} G2D500t +PERO1              =  0.600G1D501M + 0.200GDK500c + 0.200GDD500F                 : ARR( 0.126E-12,  -850., 0.0);
+{ 70404} G2D500t +PERO2              =  0.560G1D501M + 0.220GDK500c + 0.220GDD500F                 : ARR( 0.471E-13, -1350., 0.0);
+{ 70405} G2D500t +PERO3              =  0.600G1D501M + 0.200GDK500c + 0.200GDD500F                 : ARR( 0.142E-12, -1200., 0.0);
+{ 70406} G2D500t +PERO5              =  0.600G1D501M + 0.200GDK500c + 0.200GDD500F                 : ARR( 0.533E-11,   500., 0.0);
+{ 70407} G2D500t +PERO6              =  0.460G1D501M + 0.270GDK500c + 0.270GDD500F                 : ARR( 0.488E-13, -1250., 0.0);
+{ 70408} G2D500t +PERO9              =  0.800G1D501M + 0.200GDD500F                                : ARR( 0.100E-10,     0., 0.0);
+{ 70409} GGH504v +GHO                =       GGN502m +      GHO                                    : ARR( 0.345E-11,     0., 0.0);
+{ 70410} GGH504v +GHO                =       G2G505K                                               : ARR( 0.204E-11,  -190., 0.0);
+{ 70411} GGH504v +GHO                =       G3H504T                                               : ARR( 0.204E-11,  -190., 0.0);
+{ 70412} GGH504v+HV               =       G1G506f +      GHO                                    :  0.100E+01*SUN;
+{ 70413} GGH504v+HV               =       G1G507g +      GNO2                                   :  0.100E+01*SUN;
+{ 70414} GGH504v+HV               =       G1G504x +      GNO2                                   :  0.100E+01*SUN;
+{ 70415} GGH504v+HV               =       GHN400x +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 70416} G2G505K +GNO                =       G1G506f +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 70417} G2G505K +GNO                =       GGN502a                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 70418} G2G505K +GHO2               =       GGH504v                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 70419} G2G505K +GNO3               =       G1G506f +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 70420} G2G505K +MEPERO             =  0.480G1G506f + 0.260GGN5029 + 0.260GGN502m                 : ARR( 0.164E-12,  -795., 0.0);
+{ 70421} G2G505K +PERO1              =  0.600G1G506f + 0.200GGN5029 + 0.200GGN502m                 : ARR( 0.126E-12,  -850., 0.0);
+{ 70422} G2G505K +PERO2              =  0.560G1G506f + 0.220GGN5029 + 0.220GGN502m                 : ARR( 0.471E-13, -1350., 0.0);
+{ 70423} G2G505K +PERO3              =  0.600G1G506f + 0.200GGN5029 + 0.200GGN502m                 : ARR( 0.142E-12, -1200., 0.0);
+{ 70424} G2G505K +PERO5              =  0.600G1G506f + 0.200GGN5029 + 0.200GGN502m                 : ARR( 0.533E-11,   500., 0.0);
+{ 70425} G2G505K +PERO6              =  0.460G1G506f + 0.270GGN5029 + 0.270GGN502m                 : ARR( 0.488E-13, -1250., 0.0);
+{ 70426} G2G505K +PERO9              =  0.800G1G506f + 0.200GGN502m                                : ARR( 0.100E-10,     0., 0.0);
+{ 70427} G1G507g                     =       GHD2000 +      GGN3005 +      GHO2                    : ARR( 0.200E+15,  3619., 0.0);
+{ 70428} GGH504w +GHO                =       GGH5058 +      GHO                                    : ARR( 0.341E-11,     0., 0.0);
+{ 70429} GGH504w +GHO                =       GGH504f +      GHO                                    : ARR( 0.266E-10,     0., 0.0);
+{ 70430} GGH504w +GHO                =       G2G505L                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 70431} GGH504w +GHO                =       G2G503W                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 70432} GGH504w +GHO                =       G3H504U                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 70433} GGH504w+HV               =       G1G506h +      GHO                                    :  0.100E+01*SUN;
+{ 70434} GGH504w+HV               =       G1G507h +      GNO2                                   :  0.100E+01*SUN;
+{ 70435} GGH504w+HV               =       G1G504x +      GHO                                    :  0.100E+01*SUN;
+{ 70436} GGH504w+HV               =       GHN400x +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 70437} G2G505L +GNO                =       G1G506h +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 70438} G2G505L +GNO                =       GGH503k                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 70439} G2G505L +GHO2               =       GGH504w                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 70440} G2G505L +GNO3               =       G1G506h +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 70441} G2G505L +MEPERO             =  0.480G1G506h + 0.260GGH503l + 0.260GGH5058                 : ARR( 0.164E-12,  -795., 0.0);
+{ 70442} G2G505L +PERO1              =  0.600G1G506h + 0.200GGH503l + 0.200GGH5058                 : ARR( 0.126E-12,  -850., 0.0);
+{ 70443} G2G505L +PERO2              =  0.560G1G506h + 0.220GGH503l + 0.220GGH5058                 : ARR( 0.471E-13, -1350., 0.0);
+{ 70444} G2G505L +PERO3              =  0.600G1G506h + 0.200GGH503l + 0.200GGH5058                 : ARR( 0.142E-12, -1200., 0.0);
+{ 70445} G2G505L +PERO5              =  0.600G1G506h + 0.200GGH503l + 0.200GGH5058                 : ARR( 0.533E-11,   500., 0.0);
+{ 70446} G2G505L +PERO6              =  0.460G1G506h + 0.270GGH503l + 0.270GGH5058                 : ARR( 0.488E-13, -1250., 0.0);
+{ 70447} G2G505L +PERO9              =  0.800G1G506h + 0.200GGH5058                                : ARR( 0.100E-10,     0., 0.0);
+{ 70448} G1G507h                     =       GHD2000 +      GGH3007 +      GHO2                    : ARR( 0.200E+15,  3619., 0.0);
+{ 70449} GAH5053 +GHO                =       GAH504q +      GHO2                                   : ARR( 0.429E-12,     0., 0.0);
+{ 70450} GAH5053 +GHO                =       GAN502q +      GHO                                    : ARR( 0.335E-11,     0., 0.0);
+{ 70451} GAH5053 +GHO                =       G2A506F                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 70452} GAH5053 +GHO                =       GHN400x +      GNO2    +      GCO2                    : ARR( 0.541E-12,     0., 0.0);
+{ 70453} GAH5053+HV               =       G1A505x +      GNO2                                   :  0.100E+01*SUN;
+{ 70454} GAH5053+HV               =       G1A508o +      GNO2                                   :  0.100E+01*SUN;
+{ 70455} GAH5053+HV               =       G1A506L +      GHO                                    :  0.100E+01*SUN;
+{ 70456} G2A506F +GNO                =       G1A506L +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 70457} G2A506F +GNO                =       GAN502I                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 70458} G2A506F +GHO2               =       GAH5053                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 70459} G2A506F +GNO3               =       G1A506L +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 70460} G2A506F +MEPERO             =  0.480G1A506L + 0.260GAN502N + 0.260GAN502q                 : ARR( 0.164E-12,  -795., 0.0);
+{ 70461} G2A506F +PERO1              =  0.600G1A506L + 0.200GAN502N + 0.200GAN502q                 : ARR( 0.126E-12,  -850., 0.0);
+{ 70462} G2A506F +PERO2              =  0.560G1A506L + 0.220GAN502N + 0.220GAN502q                 : ARR( 0.471E-13, -1350., 0.0);
+{ 70463} G2A506F +PERO3              =  0.600G1A506L + 0.200GAN502N + 0.200GAN502q                 : ARR( 0.142E-12, -1200., 0.0);
+{ 70464} G2A506F +PERO5              =  0.600G1A506L + 0.200GAN502N + 0.200GAN502q                 : ARR( 0.533E-11,   500., 0.0);
+{ 70465} G2A506F +PERO6              =  0.460G1A506L + 0.270GAN502N + 0.270GAN502q                 : ARR( 0.488E-13, -1250., 0.0);
+{ 70466} G2A506F +PERO9              =  0.800G1A506L + 0.200GAN502q                                : ARR( 0.100E-10,     0., 0.0);
+{ 70467} G1A508o                     =       GAN3006 +      GHD2000 +      GHO2                    : ARR( 0.200E+15,  3619., 0.0);
+{ 70468} GAH5054 +GHO                =       GAH5055 +      GHO                                    : ARR( 0.191E-10,     0., 0.0);
+{ 70469} GAH5054 +GHO                =       GAH505d +      GHO2                                   : ARR( 0.211E-11,     0., 0.0);
+{ 70470} GAH5054 +GHO                =       GAH505G +      GHO                                    : ARR( 0.330E-11,     0., 0.0);
+{ 70471} GAH5054 +GHO                =       G2A504U                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 70472} GAH5054 +GHO                =       G2A506G                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 70473} GAH5054+HV               =       G1A505x +      GHO                                    :  0.100E+01*SUN;
+{ 70474} GAH5054+HV               =       G1A508p +      GNO2                                   :  0.100E+01*SUN;
+{ 70475} GAH5054+HV               =       G1A507D +      GHO                                    :  0.100E+01*SUN;
+{ 70476} G2A506G +GNO                =       G1A507D +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 70477} G2A506G +GNO                =       GAH503i                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 70478} G2A506G +GHO2               =       GAH5054                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 70479} G2A506G +GNO3               =       G1A507D +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 70480} G2A506G +MEPERO             =  0.480G1A507D + 0.260GAH503j + 0.260GAH505G                 : ARR( 0.164E-12,  -795., 0.0);
+{ 70481} G2A506G +PERO1              =  0.600G1A507D + 0.200GAH503j + 0.200GAH505G                 : ARR( 0.126E-12,  -850., 0.0);
+{ 70482} G2A506G +PERO2              =  0.560G1A507D + 0.220GAH503j + 0.220GAH505G                 : ARR( 0.471E-13, -1350., 0.0);
+{ 70483} G2A506G +PERO3              =  0.600G1A507D + 0.200GAH503j + 0.200GAH505G                 : ARR( 0.142E-12, -1200., 0.0);
+{ 70484} G2A506G +PERO5              =  0.600G1A507D + 0.200GAH503j + 0.200GAH505G                 : ARR( 0.533E-11,   500., 0.0);
+{ 70485} G2A506G +PERO6              =  0.460G1A507D + 0.270GAH503j + 0.270GAH505G                 : ARR( 0.488E-13, -1250., 0.0);
+{ 70486} G2A506G +PERO9              =  0.800G1A507D + 0.200GAH505G                                : ARR( 0.100E-10,     0., 0.0);
+{ 70487} G1A508p                     =       GAH3007 +      GHD2000 +      GHO2                    : ARR( 0.200E+15,  3619., 0.0);
+{ 70488} GAH5055 +GHO                =       GAH504r +      GHO2                                   : ARR( 0.133E-11,     0., 0.0);
+{ 70489} GAH5055 +GHO                =       GAN502r +      GHO                                    : ARR( 0.341E-11,     0., 0.0);
+{ 70490} GAH5055 +GHO                =       G2A506H                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 70491} GAH5055 +GHO                =       G3H400f +      GCO2                                   : ARR( 0.551E-12,     0., 0.0);
+{ 70492} GAH5055+HV               =       GHN400x +      GCO2                                   :  0.100E+01*SUN;
+{ 70493} GAH5055+HV               =       G1A507o +      GNO2                                   :  0.100E+01*SUN;
+{ 70494} GAH5055+HV               =       G1A506Q +      GHO                                    :  0.100E+01*SUN;
+{ 70495} G2A506H +GNO                =       G1A506Q +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 70496} G2A506H +GNO                =       GAN502L                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 70497} G2A506H +GHO2               =       GAH5055                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 70498} G2A506H +GNO3               =       G1A506Q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 70499} G2A506H +MEPERO             =  0.480G1A506Q + 0.260GAN502Q + 0.260GAN502r                 : ARR( 0.164E-12,  -795., 0.0);
+{ 70500} G2A506H +PERO1              =  0.600G1A506Q + 0.200GAN502Q + 0.200GAN502r                 : ARR( 0.126E-12,  -850., 0.0);
+{ 70501} G2A506H +PERO2              =  0.560G1A506Q + 0.220GAN502Q + 0.220GAN502r                 : ARR( 0.471E-13, -1350., 0.0);
+{ 70502} G2A506H +PERO3              =  0.600G1A506Q + 0.200GAN502Q + 0.200GAN502r                 : ARR( 0.142E-12, -1200., 0.0);
+{ 70503} G2A506H +PERO5              =  0.600G1A506Q + 0.200GAN502Q + 0.200GAN502r                 : ARR( 0.533E-11,   500., 0.0);
+{ 70504} G2A506H +PERO6              =  0.460G1A506Q + 0.270GAN502Q + 0.270GAN502r                 : ARR( 0.488E-13, -1250., 0.0);
+{ 70505} G2A506H +PERO9              =  0.800G1A506Q + 0.200GAN502r                                : ARR( 0.100E-10,     0., 0.0);
+{ 70506} GPH505C                     =       G3H504T +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 70507} GPH505C +GHO                =       GPN502t +      GHO                                    : ARR( 0.336E-11,     0., 0.0);
+{ 70508} GPH505C +GHO                =       GPH504y +      GHO2                                   : ARR( 0.431E-12,     0., 0.0);
+{ 70509} GPH505C +GHO                =       G2P506y                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 70510} GPH505C+HV               =       G1P5074 +      GHO                                    :  0.100E+01*SUN;
+{ 70511} GPH505C+HV               =       G1P509z +      GNO2                                   :  0.100E+01*SUN;
+{ 70512} GPH505C+HV               =       G1P506i +      GNO2                                   :  0.100E+01*SUN;
+{ 70513} GPH505C+HV               =       G3H504T +      GNO2                                   :  0.100E+01*SUN;
+{ 70514} G2P506y +GNO                =       G1P5074 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 70515} G2P506y +GNO                =       GPN502Q                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 70516} G2P506y +GHO2               =       GPH505C                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 70517} G2P506y +GNO3               =       G1P5074 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 70518} G2P506y +MEPERO             =  0.480G1P5074 + 0.260GPN502W + 0.260GPN502t                 : ARR( 0.164E-12,  -795., 0.0);
+{ 70519} G2P506y +PERO1              =  0.600G1P5074 + 0.200GPN502W + 0.200GPN502t                 : ARR( 0.126E-12,  -850., 0.0);
+{ 70520} G2P506y +PERO2              =  0.560G1P5074 + 0.220GPN502W + 0.220GPN502t                 : ARR( 0.471E-13, -1350., 0.0);
+{ 70521} G2P506y +PERO3              =  0.600G1P5074 + 0.200GPN502W + 0.200GPN502t                 : ARR( 0.142E-12, -1200., 0.0);
+{ 70522} G2P506y +PERO5              =  0.600G1P5074 + 0.200GPN502W + 0.200GPN502t                 : ARR( 0.533E-11,   500., 0.0);
+{ 70523} G2P506y +PERO6              =  0.460G1P5074 + 0.270GPN502W + 0.270GPN502t                 : ARR( 0.488E-13, -1250., 0.0);
+{ 70524} G2P506y +PERO9              =  0.800G1P5074 + 0.200GPN502t                                : ARR( 0.100E-10,     0., 0.0);
+{ 70525} G1P509z                     =       GHD2000 +      GPN3006 +      GHO2                    : ARR( 0.200E+15,  3619., 0.0);
+{ 70526} GPH505D                     =       G3H504U +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 70527} GPH505D +GHO                =       GPH505N +      GHO                                    : ARR( 0.324E-11,     0., 0.0);
+{ 70528} GPH505D +GHO                =       GPH504z +      GHO2                                   : ARR( 0.207E-11,     0., 0.0);
+{ 70529} GPH505D +GHO                =       GPH504v +      GHO                                    : ARR( 0.253E-10,     0., 0.0);
+{ 70530} GPH505D +GHO                =       G2P506z                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 70531} GPH505D +GHO                =       G2P504r                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 70532} GPH505D+HV               =       G1P507k +      GHO                                    :  0.100E+01*SUN;
+{ 70533} GPH505D+HV               =       G1P50A1 +      GNO2                                   :  0.100E+01*SUN;
+{ 70534} GPH505D+HV               =       G1P506i +      GHO                                    :  0.100E+01*SUN;
+{ 70535} GPH505D+HV               =       G3H504U +      GNO2                                   :  0.100E+01*SUN;
+{ 70536} G2P506z +GNO                =       G1P507k +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 70537} G2P506z +GNO                =       GPH503k                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 70538} G2P506z +GHO2               =       GPH505D                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 70539} G2P506z +GNO3               =       G1P507k +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 70540} G2P506z +MEPERO             =  0.480G1P507k + 0.260GPH503l + 0.260GPH505N                 : ARR( 0.164E-12,  -795., 0.0);
+{ 70541} G2P506z +PERO1              =  0.600G1P507k + 0.200GPH503l + 0.200GPH505N                 : ARR( 0.126E-12,  -850., 0.0);
+{ 70542} G2P506z +PERO2              =  0.560G1P507k + 0.220GPH503l + 0.220GPH505N                 : ARR( 0.471E-13, -1350., 0.0);
+{ 70543} G2P506z +PERO3              =  0.600G1P507k + 0.200GPH503l + 0.200GPH505N                 : ARR( 0.142E-12, -1200., 0.0);
+{ 70544} G2P506z +PERO5              =  0.600G1P507k + 0.200GPH503l + 0.200GPH505N                 : ARR( 0.533E-11,   500., 0.0);
+{ 70545} G2P506z +PERO6              =  0.460G1P507k + 0.270GPH503l + 0.270GPH505N                 : ARR( 0.488E-13, -1250., 0.0);
+{ 70546} G2P506z +PERO9              =  0.800G1P507k + 0.200GPH505N                                : ARR( 0.100E-10,     0., 0.0);
+{ 70547} G1P50A1                     =       GHD2000 +      GPH3007 +      GHO2                    : ARR( 0.200E+15,  3619., 0.0);
+{ 70548} GGG500O +GHO                =       G3G500Y                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 70549} GGG500O +GHO                =       G3G500b                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 70550} GGG500O+HV               =       G2G400x +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 70551} GGG500O+HV               =       G1G507i +      GNO2                                   :  0.100E+01*SUN;
+{ 70552} GGG500O+HV               =       G1G507j +      GNO2                                   :  0.100E+01*SUN;
+{ 70553} GGG500O+HV               =       GGN400I +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 70554} G1G507i                     =       GGD2000 +      GGD3000 +      GNO2                    : ARR( 0.200E+15,  6039., 0.0);
+{ 70555} G1G507i                     =       GGN3005 +      G2G2000                                : ARR( 0.200E+15,  6620., 0.0);
+{ 70556} G1G507j                     =       GGN400I +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 70557} GAG500t +GHO                =       G3A500e                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 70558} GAG500t +GHO                =       G2G400x +      GCO2                                   : ARR( 0.541E-12,     0., 0.0);
+{ 70559} GAG500t+HV               =       G1A506o +      GNO2                                   :  0.100E+01*SUN;
+{ 70560} GAG500t+HV               =       G1A508q +      GNO2                                   :  0.100E+01*SUN;
+{ 70561} GAG500t+HV               =       GAN400J +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 70562} G1A508q                     =       GAN400J +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 70563} GGG500P +GHO                =       GGG500Q +      GHO                                    : ARR( 0.512E-11,     0., 0.0);
+{ 70564} GGG500P +GHO                =       G3G500Z                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 70565} GGG500P +GHO                =       G2G505M                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 70566} GGG500P +GHO                =       G3G500c                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 70567} GGG500P+HV               =       G2G400u +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 70568} GGG500P+HV               =       G1G507k +      GNO2                                   :  0.100E+01*SUN;
+{ 70569} GGG500P+HV               =       G1G507j +      GHO                                    :  0.100E+01*SUN;
+{ 70570} GGG500P+HV               =       GGN400I +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 70571} G2G505M +GNO                =       G1G507j +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 70572} G2G505M +GNO                =       GGG500O                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 70573} G2G505M +GHO2               =       GGG500P                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 70574} G2G505M +GNO3               =       G1G507j +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 70575} G2G505M +MEPERO             =  0.340G1G507j + 0.330GGG5006 + 0.330GGG500Q                 : ARR( 0.565E-13,  -845., 0.0);
+{ 70576} G2G505M +PERO1              =  0.460G1G507j + 0.270GGG5006 + 0.270GGG500Q                 : ARR( 0.434E-13,  -900., 0.0);
+{ 70577} G2G505M +PERO2              =  0.400G1G507j + 0.300GGG5006 + 0.300GGG500Q                 : ARR( 0.162E-13, -1400., 0.0);
+{ 70578} G2G505M +PERO3              =  0.460G1G507j + 0.270GGG5006 + 0.270GGG500Q                 : ARR( 0.488E-13, -1250., 0.0);
+{ 70579} G2G505M +PERO5              =  0.460G1G507j + 0.270GGG5006 + 0.270GGG500Q                 : ARR( 0.183E-11,   450., 0.0);
+{ 70580} G2G505M +PERO6              =  0.300G1G507j + 0.350GGG5006 + 0.350GGG500Q                 : ARR( 0.168E-13, -1300., 0.0);
+{ 70581} G2G505M +PERO9              =  0.650G1G507j + 0.350GGG500Q                                : ARR( 0.100E-10,     0., 0.0);
+{ 70582} G1G507k                     =       GGD2000 +      GGD3000 +      GHO                     : ARR( 0.200E+15,  4500., 0.0);
+{ 70583} GAG500u +GHO                =       GAG500q +      GHO                                    : ARR( 0.534E-11,     0., 0.0);
+{ 70584} GAG500u +GHO                =       G2A506I                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 70585} GAG500u +GHO                =       G3A500h                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 70586} GAG500u+HV               =       G1A508r +      GNO2                                   :  0.100E+01*SUN;
+{ 70587} GAG500u+HV               =       G1A508q +      GHO                                    :  0.100E+01*SUN;
+{ 70588} GAG500u+HV               =       GAN400J +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 70589} G2A506I +GNO                =       G1A508q +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 70590} G2A506I +GNO                =       GAG500t                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 70591} G2A506I +GHO2               =       GAG500u                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 70592} G2A506I +GNO3               =       G1A508q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 70593} G2A506I +MEPERO             =  0.340G1A508q + 0.330GAG500B + 0.330GAG500q                 : ARR( 0.565E-13,  -845., 0.0);
+{ 70594} G2A506I +PERO1              =  0.460G1A508q + 0.270GAG500B + 0.270GAG500q                 : ARR( 0.434E-13,  -900., 0.0);
+{ 70595} G2A506I +PERO2              =  0.400G1A508q + 0.300GAG500B + 0.300GAG500q                 : ARR( 0.162E-13, -1400., 0.0);
+{ 70596} G2A506I +PERO3              =  0.460G1A508q + 0.270GAG500B + 0.270GAG500q                 : ARR( 0.488E-13, -1250., 0.0);
+{ 70597} G2A506I +PERO5              =  0.460G1A508q + 0.270GAG500B + 0.270GAG500q                 : ARR( 0.183E-11,   450., 0.0);
+{ 70598} G2A506I +PERO6              =  0.300G1A508q + 0.350GAG500B + 0.350GAG500q                 : ARR( 0.168E-13, -1300., 0.0);
+{ 70599} G2A506I +PERO9              =  0.650G1A508q + 0.350GAG500q                                : ARR( 0.100E-10,     0., 0.0);
+{ 70600} G1A508r                     =       GAD3000 +      GGD2000 +      GHO                     : ARR( 0.200E+15,  4500., 0.0);
+{ 70601} GPG500x                     =       G3G500Z +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 70602} GPG500x +GHO                =       GPG500u +      GHO                                    : ARR( 0.515E-11,     0., 0.0);
+{ 70603} GPG500x +GHO                =       G3P500j                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 70604} GPG500x +GHO                =       G2P5071                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 70605} GPG500x+HV               =       GPN400H +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 70606} GPG500x+HV               =       G1P508Z +      GHO                                    :  0.100E+01*SUN;
+{ 70607} GPG500x+HV               =       G1P50A2 +      GNO2                                   :  0.100E+01*SUN;
+{ 70608} GPG500x+HV               =       G3G500Z +      GNO2                                   :  0.100E+01*SUN;
+{ 70609} G2P5071 +GNO                =       G1P508Z +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 70610} G2P5071 +GNO                =       GPG500T                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 70611} G2P5071 +GHO2               =       GPG500x                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 70612} G2P5071 +GNO3               =       G1P508Z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 70613} G2P5071 +MEPERO             =  0.340G1P508Z + 0.330GPG500B + 0.330GPG500u                 : ARR( 0.565E-13,  -845., 0.0);
+{ 70614} G2P5071 +PERO1              =  0.460G1P508Z + 0.270GPG500B + 0.270GPG500u                 : ARR( 0.434E-13,  -900., 0.0);
+{ 70615} G2P5071 +PERO2              =  0.400G1P508Z + 0.300GPG500B + 0.300GPG500u                 : ARR( 0.162E-13, -1400., 0.0);
+{ 70616} G2P5071 +PERO3              =  0.460G1P508Z + 0.270GPG500B + 0.270GPG500u                 : ARR( 0.488E-13, -1250., 0.0);
+{ 70617} G2P5071 +PERO5              =  0.460G1P508Z + 0.270GPG500B + 0.270GPG500u                 : ARR( 0.183E-11,   450., 0.0);
+{ 70618} G2P5071 +PERO6              =  0.300G1P508Z + 0.350GPG500B + 0.350GPG500u                 : ARR( 0.168E-13, -1300., 0.0);
+{ 70619} G2P5071 +PERO9              =  0.650G1P508Z + 0.350GPG500u                                : ARR( 0.100E-10,     0., 0.0);
+{ 70620} G1P50A2                     =       GGD2000 +      GPD3000 +      GHO                     : ARR( 0.200E+15,  4500., 0.0);
+{ 70621} GGG500Q +GHO                =       G3G500a                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 70622} GGG500Q +GHO                =       G3G501D                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 70623} GGG500Q+HV               =       G2G400y +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 70624} GGG500Q+HV               =       G1G505a +      GNO2                                   :  0.100E+01*SUN;
+{ 70625} GGG500Q+HV               =       GAG4002 +      GCO2                                   :  0.100E+01*SUN;
+{ 70626} GAH5056 +GHO                =       GAN502k +      GHO                                    : ARR( 0.390E-11,     0., 0.0);
+{ 70627} GAH5056 +GHO                =       G3A501X                                               : ARR( 0.436E-11,     0., 0.0);
+{ 70628} GAH5056 +GHO                =       G2A506J                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 70629} GAH5056 +GNO3               =       G3A501X +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 70630} GAH5056+HV               =       G1A507u +      GHO                                    :  0.100E+01*SUN;
+{ 70631} GAH5056+HV               =       G1A508s +      GNO2                                   :  0.100E+01*SUN;
+{ 70632} GAH5056+HV               =       G1A508t +      GNO2                                   :  0.100E+01*SUN;
+{ 70633} GAH5056+HV               =       GAH400l +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 70634} GAH5056+HV               =       GAD3002 +      GND2000 +      GNO2    +      GHO      :  0.100E+01*SUN;
+{ 70635} G3A501X +GHO2               =  0.800GAG501p + 0.200GAA500r + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 70636} G3A501X +GNO                =       GAH400l + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 70637} G3A501X +GNO2               =       GPA501a                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 70638} G3A501X +GNO3               =       GAH400l + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 70639} G3A501X +MEPERO             =  0.685GAH400l + 0.315GAA500r + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 70640} G3A501X +PERO1              =  0.800GAH400l + 0.200GAA500r + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 70641} G3A501X +PERO2              =  0.750GAH400l + 0.250GAA500r + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 70642} G3A501X +PERO3              =  0.800GAH400l + 0.200GAA500r + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 70643} G3A501X +PERO5              =  0.650GAH400l + 0.350GAA500r + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 70644} G3A501X +PERO6              =  0.650GAH400l + 0.350GAA500r + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 70645} G3A501X +PERO9              =       GAH400l +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 70646} G2A506J +GNO                =       G1A507u +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 70647} G2A506J +GNO                =       GAN502j                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 70648} G2A506J +GHO2               =       GAH5056                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 70649} G2A506J +GNO3               =       G1A507u +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 70650} G2A506J +MEPERO             =  0.340G1A507u + 0.330GAN502G + 0.330GAN502k                 : ARR( 0.565E-13,  -845., 0.0);
+{ 70651} G2A506J +PERO1              =  0.460G1A507u + 0.270GAN502G + 0.270GAN502k                 : ARR( 0.434E-13,  -900., 0.0);
+{ 70652} G2A506J +PERO2              =  0.400G1A507u + 0.300GAN502G + 0.300GAN502k                 : ARR( 0.162E-13, -1400., 0.0);
+{ 70653} G2A506J +PERO3              =  0.460G1A507u + 0.270GAN502G + 0.270GAN502k                 : ARR( 0.488E-13, -1250., 0.0);
+{ 70654} G2A506J +PERO5              =  0.460G1A507u + 0.270GAN502G + 0.270GAN502k                 : ARR( 0.183E-11,   450., 0.0);
+{ 70655} G2A506J +PERO6              =  0.300G1A507u + 0.350GAN502G + 0.350GAN502k                 : ARR( 0.168E-13, -1300., 0.0);
+{ 70656} G2A506J +PERO9              =  0.650G1A507u + 0.350GAN502k                                : ARR( 0.100E-10,     0., 0.0);
+{ 70657} G1A508s                     =       GAD2000 +      GND3005 +      GHO                     : ARR( 0.200E+15,  4308., 0.0);
+{ 70658} G1A508t                     =       GAH400l +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 70659} GAG500v +GHO                =       GAG501U +      GHO2                                   : ARR( 0.963E-12,     0., 0.0);
+{ 70660} GAG500v +GHO                =       G3A500f                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 70661} GAG500v +GHO                =       GGN400X +      GHO2    +      GCO2                    : ARR( 0.538E-12,     0., 0.0);
+{ 70662} GAG500v+HV               =       G1A508u +      GNO2                                   :  0.100E+01*SUN;
+{ 70663} GAG500v+HV               =       G1A508v +      GNO2                                   :  0.100E+01*SUN;
+{ 70664} GAG500v+HV               =       GAN400a +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 70665} G1A508u                     =       GAD2000 +      GGN3005 +      GHO2                    : ARR( 0.200E+15,  3099., 0.0);
+{ 70666} G1A508v                     =       GAN400a +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 70667} GAH5057 +GHO                =       GAH504p +      GHO                                    : ARR( 0.381E-11,     0., 0.0);
+{ 70668} GAH5057 +GHO                =       GAH505N +      GHO                                    : ARR( 0.515E-11,     0., 0.0);
+{ 70669} GAH5057 +GHO                =       G3A501Y                                               : ARR( 0.213E-10,     0., 0.0);
+{ 70670} GAH5057 +GHO                =       G2A506K                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 70671} GAH5057 +GHO                =       G2A506L                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 70672} GAH5057 +GNO3               =       G3A501Y +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 70673} GAH5057+HV               =       G1A508B +      GHO                                    :  0.100E+01*SUN;
+{ 70674} GAH5057+HV               =       G1A507H +      GNO2                                   :  0.100E+01*SUN;
+{ 70675} GAH5057+HV               =       G1A508t +      GHO                                    :  0.100E+01*SUN;
+{ 70676} GAH5057+HV               =       GAH400l +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 70677} G3A501Y +GHO2               =  0.800GAG501q + 0.200GAA5015 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 70678} G3A501Y +GNO                =       GAH400l +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 70679} G3A501Y +GNO2               =       GPA501v                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 70680} G3A501Y +GNO3               =       GAH400l +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 70681} G3A501Y +MEPERO             =  0.685GAH400l + 0.315GAA5015 + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 70682} G3A501Y +PERO1              =  0.800GAH400l + 0.200GAA5015 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 70683} G3A501Y +PERO2              =  0.750GAH400l + 0.250GAA5015 + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 70684} G3A501Y +PERO3              =  0.800GAH400l + 0.200GAA5015 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 70685} G3A501Y +PERO5              =  0.650GAH400l + 0.350GAA5015 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 70686} G3A501Y +PERO6              =  0.650GAH400l + 0.350GAA5015 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 70687} G3A501Y +PERO9              =       GAH400l +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 70688} G2A506K +GNO                =       G1A508B +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 70689} G2A506K +GNO                =       GAH504o                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 70690} G2A506K +GHO2               =       GAH5057                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 70691} G2A506K +GNO3               =       G1A508B +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 70692} G2A506K +MEPERO             =  0.340G1A508B + 0.330GAH5037 + 0.330GAH504p                 : ARR( 0.565E-13,  -845., 0.0);
+{ 70693} G2A506K +PERO1              =  0.460G1A508B + 0.270GAH5037 + 0.270GAH504p                 : ARR( 0.434E-13,  -900., 0.0);
+{ 70694} G2A506K +PERO2              =  0.400G1A508B + 0.300GAH5037 + 0.300GAH504p                 : ARR( 0.162E-13, -1400., 0.0);
+{ 70695} G2A506K +PERO3              =  0.460G1A508B + 0.270GAH5037 + 0.270GAH504p                 : ARR( 0.488E-13, -1250., 0.0);
+{ 70696} G2A506K +PERO5              =  0.460G1A508B + 0.270GAH5037 + 0.270GAH504p                 : ARR( 0.183E-11,   450., 0.0);
+{ 70697} G2A506K +PERO6              =  0.300G1A508B + 0.350GAH5037 + 0.350GAH504p                 : ARR( 0.168E-13, -1300., 0.0);
+{ 70698} G2A506K +PERO9              =  0.650G1A508B + 0.350GAH504p                                : ARR( 0.100E-10,     0., 0.0);
+{ 70699} G2A506L +GNO                =       G1A508t +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 70700} G2A506L +GNO                =       GAH5056                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 70701} G2A506L +GHO2               =       GAH5057                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 70702} G2A506L +GNO3               =       G1A508t +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 70703} G2A506L +MEPERO             =  0.340G1A508t + 0.330GAH503z + 0.330GAH505N                 : ARR( 0.565E-13,  -845., 0.0);
+{ 70704} G2A506L +PERO1              =  0.460G1A508t + 0.270GAH503z + 0.270GAH505N                 : ARR( 0.434E-13,  -900., 0.0);
+{ 70705} G2A506L +PERO2              =  0.400G1A508t + 0.300GAH503z + 0.300GAH505N                 : ARR( 0.162E-13, -1400., 0.0);
+{ 70706} G2A506L +PERO3              =  0.460G1A508t + 0.270GAH503z + 0.270GAH505N                 : ARR( 0.488E-13, -1250., 0.0);
+{ 70707} G2A506L +PERO5              =  0.460G1A508t + 0.270GAH503z + 0.270GAH505N                 : ARR( 0.183E-11,   450., 0.0);
+{ 70708} G2A506L +PERO6              =  0.300G1A508t + 0.350GAH503z + 0.350GAH505N                 : ARR( 0.168E-13, -1300., 0.0);
+{ 70709} G2A506L +PERO9              =  0.650G1A508t + 0.350GAH505N                                : ARR( 0.100E-10,     0., 0.0);
+{ 70710} GAG500w +GHO                =       GAG501X +      GHO2                                   : ARR( 0.985E-12,     0., 0.0);
+{ 70711} GAG500w +GHO                =       GAG501R +      GHO                                    : ARR( 0.532E-11,     0., 0.0);
+{ 70712} GAG500w +GHO                =       G2A506M                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 70713} GAG500w +GHO                =       G3A500g                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 70714} GAG500w+HV               =       G1A508w +      GNO2                                   :  0.100E+01*SUN;
+{ 70715} GAG500w+HV               =       G1A508v +      GHO                                    :  0.100E+01*SUN;
+{ 70716} GAG500w+HV               =       GAN400a +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 70717} G2A506M +GNO                =       G1A508v +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 70718} G2A506M +GNO                =       GAG500v                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 70719} G2A506M +GHO2               =       GAG500w                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 70720} G2A506M +GNO3               =       G1A508v +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 70721} G2A506M +MEPERO             =  0.340G1A508v + 0.330GAG500U + 0.330GAG501R                 : ARR( 0.565E-13,  -845., 0.0);
+{ 70722} G2A506M +PERO1              =  0.460G1A508v + 0.270GAG500U + 0.270GAG501R                 : ARR( 0.434E-13,  -900., 0.0);
+{ 70723} G2A506M +PERO2              =  0.400G1A508v + 0.300GAG500U + 0.300GAG501R                 : ARR( 0.162E-13, -1400., 0.0);
+{ 70724} G2A506M +PERO3              =  0.460G1A508v + 0.270GAG500U + 0.270GAG501R                 : ARR( 0.488E-13, -1250., 0.0);
+{ 70725} G2A506M +PERO5              =  0.460G1A508v + 0.270GAG500U + 0.270GAG501R                 : ARR( 0.183E-11,   450., 0.0);
+{ 70726} G2A506M +PERO6              =  0.300G1A508v + 0.350GAG500U + 0.350GAG501R                 : ARR( 0.168E-13, -1300., 0.0);
+{ 70727} G2A506M +PERO9              =  0.650G1A508v + 0.350GAG501R                                : ARR( 0.100E-10,     0., 0.0);
+{ 70728} G1A508w                     =       GAD2000 +      GGH3007 +      GHO2                    : ARR( 0.200E+15,  3099., 0.0);
+{ 70729} GPH505E                     =       G3H504t +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 70730} GPH505E +GHO                =       GPH504t +      GHO                                    : ARR( 0.508E-11,     0., 0.0);
+{ 70731} GPH505E +GHO                =       GPH505U +      GHO                                    : ARR( 0.508E-11,     0., 0.0);
+{ 70732} GPH505E +GHO                =       G3P501Y                                               : ARR( 0.210E-10,     0., 0.0);
+{ 70733} GPH505E +GHO                =       G2P5072                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 70734} GPH505E +GHO                =       G2P5073                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 70735} GPH505E +GNO3               =       G3P501Y +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 70736} GPH505E+HV               =       G3H504t +      GNO2                                   :  0.100E+01*SUN;
+{ 70737} GPH505E+HV               =       G1P508x +      GHO                                    :  0.100E+01*SUN;
+{ 70738} GPH505E+HV               =       G1P507s +      GNO2                                   :  0.100E+01*SUN;
+{ 70739} GPH505E+HV               =       G1P508l +      GHO                                    :  0.100E+01*SUN;
+{ 70740} GPH505E+HV               =       GPH400m +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 70741} G3P501Y +GHO2               =  0.800GPG501q + 0.200GPA501v + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 70742} G3P501Y +GNO                =       GPH400m +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 70743} G3P501Y +GNO2               =       GPP5016                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 70744} G3P501Y +GNO3               =       GPH400m +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 70745} G3P501Y +MEPERO             =  0.685GPH400m + 0.315GPA501v + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 70746} G3P501Y +PERO1              =  0.800GPH400m + 0.200GPA501v + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 70747} G3P501Y +PERO2              =  0.750GPH400m + 0.250GPA501v + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 70748} G3P501Y +PERO3              =  0.800GPH400m + 0.200GPA501v + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 70749} G3P501Y +PERO5              =  0.650GPH400m + 0.350GPA501v + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 70750} G3P501Y +PERO6              =  0.650GPH400m + 0.350GPA501v + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 70751} G3P501Y +PERO9              =       GPH400m +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 70752} G2P5072 +GNO                =       G1P508x +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 70753} G2P5072 +GNO                =       GPH504s                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 70754} G2P5072 +GHO2               =       GPH505E                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 70755} G2P5072 +GNO3               =       G1P508x +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 70756} G2P5072 +MEPERO             =  0.340G1P508x + 0.330GPH503B + 0.330GPH504t                 : ARR( 0.565E-13,  -845., 0.0);
+{ 70757} G2P5072 +PERO1              =  0.460G1P508x + 0.270GPH503B + 0.270GPH504t                 : ARR( 0.434E-13,  -900., 0.0);
+{ 70758} G2P5072 +PERO2              =  0.400G1P508x + 0.300GPH503B + 0.300GPH504t                 : ARR( 0.162E-13, -1400., 0.0);
+{ 70759} G2P5072 +PERO3              =  0.460G1P508x + 0.270GPH503B + 0.270GPH504t                 : ARR( 0.488E-13, -1250., 0.0);
+{ 70760} G2P5072 +PERO5              =  0.460G1P508x + 0.270GPH503B + 0.270GPH504t                 : ARR( 0.183E-11,   450., 0.0);
+{ 70761} G2P5072 +PERO6              =  0.300G1P508x + 0.350GPH503B + 0.350GPH504t                 : ARR( 0.168E-13, -1300., 0.0);
+{ 70762} G2P5072 +PERO9              =  0.650G1P508x + 0.350GPH504t                                : ARR( 0.100E-10,     0., 0.0);
+{ 70763} G2P5073 +GNO                =       G1P508l +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 70764} G2P5073 +GNO                =       GPH504o                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 70765} G2P5073 +GHO2               =       GPH505E                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 70766} G2P5073 +GNO3               =       G1P508l +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 70767} G2P5073 +MEPERO             =  0.340G1P508l + 0.330GPH5049 + 0.330GPH505U                 : ARR( 0.565E-13,  -845., 0.0);
+{ 70768} G2P5073 +PERO1              =  0.460G1P508l + 0.270GPH5049 + 0.270GPH505U                 : ARR( 0.434E-13,  -900., 0.0);
+{ 70769} G2P5073 +PERO2              =  0.400G1P508l + 0.300GPH5049 + 0.300GPH505U                 : ARR( 0.162E-13, -1400., 0.0);
+{ 70770} G2P5073 +PERO3              =  0.460G1P508l + 0.270GPH5049 + 0.270GPH505U                 : ARR( 0.488E-13, -1250., 0.0);
+{ 70771} G2P5073 +PERO5              =  0.460G1P508l + 0.270GPH5049 + 0.270GPH505U                 : ARR( 0.183E-11,   450., 0.0);
+{ 70772} G2P5073 +PERO6              =  0.300G1P508l + 0.350GPH5049 + 0.350GPH505U                 : ARR( 0.168E-13, -1300., 0.0);
+{ 70773} G2P5073 +PERO9              =  0.650G1P508l + 0.350GPH505U                                : ARR( 0.100E-10,     0., 0.0);
+{ 70774} GPG500y                     =       G3G500y +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 70775} GPG500y +GHO                =       GPG500w +      GHO                                    : ARR( 0.512E-11,     0., 0.0);
+{ 70776} GPG500y +GHO                =       GPG501U +      GHO2                                   : ARR( 0.128E-11,     0., 0.0);
+{ 70777} GPG500y +GHO                =       G3P500i                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 70778} GPG500y +GHO                =       G2P5074                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 70779} GPG500y+HV               =       GPN400Q +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 70780} GPG500y+HV               =       G1P508m +      GHO                                    :  0.100E+01*SUN;
+{ 70781} GPG500y+HV               =       G1P50A3 +      GNO2                                   :  0.100E+01*SUN;
+{ 70782} GPG500y+HV               =       G3G500y +      GNO2                                   :  0.100E+01*SUN;
+{ 70783} G2P5074 +GNO                =       G1P508m +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 70784} G2P5074 +GNO                =       GPG500U                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 70785} G2P5074 +GHO2               =       GPG500y                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 70786} G2P5074 +GNO3               =       G1P508m +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 70787} G2P5074 +MEPERO             =  0.340G1P508m + 0.330GPG500C + 0.330GPG500w                 : ARR( 0.565E-13,  -845., 0.0);
+{ 70788} G2P5074 +PERO1              =  0.460G1P508m + 0.270GPG500C + 0.270GPG500w                 : ARR( 0.434E-13,  -900., 0.0);
+{ 70789} G2P5074 +PERO2              =  0.400G1P508m + 0.300GPG500C + 0.300GPG500w                 : ARR( 0.162E-13, -1400., 0.0);
+{ 70790} G2P5074 +PERO3              =  0.460G1P508m + 0.270GPG500C + 0.270GPG500w                 : ARR( 0.488E-13, -1250., 0.0);
+{ 70791} G2P5074 +PERO5              =  0.460G1P508m + 0.270GPG500C + 0.270GPG500w                 : ARR( 0.183E-11,   450., 0.0);
+{ 70792} G2P5074 +PERO6              =  0.300G1P508m + 0.350GPG500C + 0.350GPG500w                 : ARR( 0.168E-13, -1300., 0.0);
+{ 70793} G2P5074 +PERO9              =  0.650G1P508m + 0.350GPG500w                                : ARR( 0.100E-10,     0., 0.0);
+{ 70794} G1P50A3                     =       GGH3007 +      GPD2000 +      GHO2                    : ARR( 0.200E+15,  3099., 0.0);
+{ 70795} GGH504x +GHO                =       GGN502F +      GHO                                    : ARR( 0.167E-11,     0., 0.0);
+{ 70796} GGH504x +GHO                =       G2G505N                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 70797} GGH504x +GHO                =       G3H504W                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 70798} GGH504x+HV               =       G1G507l +      GNO2                                   :  0.100E+01*SUN;
+{ 70799} GGH504x+HV               =       G1G507S +      GHO                                    :  0.100E+01*SUN;
+{ 70800} GGH504x+HV               =       G1G507m +      GNO2                                   :  0.100E+01*SUN;
+{ 70801} GGH504x+HV               =       GAH400N +      GCO2                                   :  0.100E+01*SUN;
+{ 70802} G2G505N +GNO                =       G1G507S +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 70803} G2G505N +GNO                =       GGN502j                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 70804} G2G505N +GHO2               =       GGH504x                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 70805} G2G505N +GNO3               =       G1G507S +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 70806} G2G505N +MEPERO             =  0.340G1G507S + 0.330GGN501U + 0.330GGN502F                 : ARR( 0.565E-13,  -845., 0.0);
+{ 70807} G2G505N +PERO1              =  0.460G1G507S + 0.270GGN501U + 0.270GGN502F                 : ARR( 0.434E-13,  -900., 0.0);
+{ 70808} G2G505N +PERO2              =  0.400G1G507S + 0.300GGN501U + 0.300GGN502F                 : ARR( 0.162E-13, -1400., 0.0);
+{ 70809} G2G505N +PERO3              =  0.460G1G507S + 0.270GGN501U + 0.270GGN502F                 : ARR( 0.488E-13, -1250., 0.0);
+{ 70810} G2G505N +PERO5              =  0.460G1G507S + 0.270GGN501U + 0.270GGN502F                 : ARR( 0.183E-11,   450., 0.0);
+{ 70811} G2G505N +PERO6              =  0.300G1G507S + 0.350GGN501U + 0.350GGN502F                 : ARR( 0.168E-13, -1300., 0.0);
+{ 70812} G2G505N +PERO9              =  0.650G1G507S + 0.350GGN502F                                : ARR( 0.100E-10,     0., 0.0);
+{ 70813} G1G507l +OXYGEN             =       GGH505H +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 70814} G1G507l                     =       GGN400b +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5636., 0.0);
+{ 70815} G1G507m                     =       GHN3007 +      GCO     +      GHO2    +      GCO      : ARR( 0.200E+15,  3266., 0.0);
+{ 70816} GGG500R +GHO                =       GGG500J +      GHO                                    : ARR( 0.865E-11,     0., 0.0);
+{ 70817} GGG500R +GHO                =       G3G500f                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 70818} GGG500R +GHO                =       G2G505O                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 70819} GGG500R +GHO                =       G3G500d                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 70820} GGG500R+HV               =       GGH400Q +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 70821} GGG500R+HV               =       G1G507n +      GNO2                                   :  0.100E+01*SUN;
+{ 70822} GGG500R+HV               =       G1G507i +      GHO                                    :  0.100E+01*SUN;
+{ 70823} GGG500R+HV               =       G2G400z +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 70824} G2G505O +GNO                =       G1G507i +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 70825} G2G505O +GNO                =       GGG500O                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 70826} G2G505O +GHO2               =       GGG500R                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 70827} G2G505O +GNO3               =       G1G507i +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 70828} G2G505O +MEPERO             =  0.340G1G507i + 0.330GGG500T + 0.330GGG500J                 : ARR( 0.565E-13,  -845., 0.0);
+{ 70829} G2G505O +PERO1              =  0.460G1G507i + 0.270GGG500T + 0.270GGG500J                 : ARR( 0.434E-13,  -900., 0.0);
+{ 70830} G2G505O +PERO2              =  0.400G1G507i + 0.300GGG500T + 0.300GGG500J                 : ARR( 0.162E-13, -1400., 0.0);
+{ 70831} G2G505O +PERO3              =  0.460G1G507i + 0.270GGG500T + 0.270GGG500J                 : ARR( 0.488E-13, -1250., 0.0);
+{ 70832} G2G505O +PERO5              =  0.460G1G507i + 0.270GGG500T + 0.270GGG500J                 : ARR( 0.183E-11,   450., 0.0);
+{ 70833} G2G505O +PERO6              =  0.300G1G507i + 0.350GGG500T + 0.350GGG500J                 : ARR( 0.168E-13, -1300., 0.0);
+{ 70834} G2G505O +PERO9              =  0.650G1G507i + 0.350GGG500J                                : ARR( 0.100E-10,     0., 0.0);
+{ 70835} G1G507n                     =       GGH400Q +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 70836} GAG500x +GHO                =       GAG500e +      GHO                                    : ARR( 0.890E-11,     0., 0.0);
+{ 70837} GAG500x +GHO                =       G2A504r                                               : ARR( 0.205E-11,  -190., 0.0);
+{ 70838} GAG500x +GHO                =       G3A500l                                               : ARR( 0.205E-11,  -190., 0.0);
+{ 70839} GAG500x+HV               =       G1A506o +      GHO                                    :  0.100E+01*SUN;
+{ 70840} GAG500x+HV               =       G1A508x +      GNO2                                   :  0.100E+01*SUN;
+{ 70841} GAG500x+HV               =       GAH400T +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 70842} G1A508x                     =       GAH400T +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 70843} GPG500z                     =       G3G500d +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 70844} GPG500z +GHO                =       GPG500b +      GHO                                    : ARR( 0.828E-11,     0., 0.0);
+{ 70845} GPG500z +GHO                =       G2P5075                                               : ARR( 0.865E-12,     0., 0.0);
+{ 70846} GPG500z +GHO                =       G3P500n                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 70847} GPG500z +GHO                =       G2P505C                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 70848} GPG500z+HV               =       GPH400T +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 70849} GPG500z+HV               =       G1P50A4 +      GNO2                                   :  0.100E+01*SUN;
+{ 70850} GPG500z+HV               =       G1P507O +      GHO                                    :  0.100E+01*SUN;
+{ 70851} GPG500z+HV               =       G3G500d +      GNO2                                   :  0.100E+01*SUN;
+{ 70852} G2P5075 +GNO                =       G1P50A5 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 70853} G2P5075 +GNO                =       GPG501j                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 70854} G2P5075 +GHO2               =       GPG501r                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 70855} G2P5075 +GNO3               =       G1P50A5 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 70856} G2P5075 +MEPERO             =  0.340G1P50A5 + 0.330GPG501B + 0.330GPG501s                 : ARR( 0.565E-13,  -845., 0.0);
+{ 70857} G2P5075 +PERO1              =  0.460G1P50A5 + 0.270GPG501B + 0.270GPG501s                 : ARR( 0.434E-13,  -900., 0.0);
+{ 70858} G2P5075 +PERO2              =  0.400G1P50A5 + 0.300GPG501B + 0.300GPG501s                 : ARR( 0.162E-13, -1400., 0.0);
+{ 70859} G2P5075 +PERO3              =  0.460G1P50A5 + 0.270GPG501B + 0.270GPG501s                 : ARR( 0.488E-13, -1250., 0.0);
+{ 70860} G2P5075 +PERO5              =  0.460G1P50A5 + 0.270GPG501B + 0.270GPG501s                 : ARR( 0.183E-11,   450., 0.0);
+{ 70861} G2P5075 +PERO6              =  0.300G1P50A5 + 0.350GPG501B + 0.350GPG501s                 : ARR( 0.168E-13, -1300., 0.0);
+{ 70862} G2P5075 +PERO9              =  0.650G1P50A5 + 0.350GPG501s                                : ARR( 0.100E-10,     0., 0.0);
+{ 70863} G1P50A4                     =       GCO     +      GPH400T +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 70864} G1P50A5                     =       GGH400o +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 70865} GGH504y +GHO                =       GGN502o +      GHO                                    : ARR( 0.167E-11,     0., 0.0);
+{ 70866} GGH504y +GHO                =       G3G501M                                               : ARR( 0.420E-11,     0., 0.0);
+{ 70867} GGH504y +GHO                =       G3H504b                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 70868} GGH504y +GHO                =       G2G505P                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 70869} GGH504y +GNO3               =       G3G501M +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 70870} GGH504y+HV               =       GHN400y +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 70871} GGH504y+HV               =       G1G507o +      GNO2                                   :  0.100E+01*SUN;
+{ 70872} GGH504y+HV               =       G1G507p +      GHO                                    :  0.100E+01*SUN;
+{ 70873} GGH504y+HV               =       G1G507q +      GNO2                                   :  0.100E+01*SUN;
+{ 70874} GGH504y+HV               =       GGH400o +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 70875} GGH504y+HV               =       GGD3002 +      GND2000 +      GHO     +      GNO2     :  0.100E+01*SUN;
+{ 70876} G3G501M +GHO2               =  0.800GGG500u + 0.200GAG501j + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 70877} G3G501M +GNO                =       GGH400o + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 70878} G3G501M +GNO2               =       GPG501j                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 70879} G3G501M +GNO3               =       GGH400o + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 70880} G3G501M +MEPERO             =  0.685GGH400o + 0.315GAG501j + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 70881} G3G501M +PERO1              =  0.800GGH400o + 0.200GAG501j + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 70882} G3G501M +PERO2              =  0.750GGH400o + 0.250GAG501j + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 70883} G3G501M +PERO3              =  0.800GGH400o + 0.200GAG501j + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 70884} G3G501M +PERO5              =  0.650GGH400o + 0.350GAG501j + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 70885} G3G501M +PERO6              =  0.650GGH400o + 0.350GAG501j + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 70886} G3G501M +PERO9              =       GGH400o +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 70887} G2G505P +GNO                =       G1G507p +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 70888} G2G505P +GNO                =       GGN502s                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 70889} G2G505P +GHO2               =       GGH504y                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 70890} G2G505P +GNO3               =       G1G507p +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 70891} G2G505P +MEPERO             =  0.340G1G507p + 0.330GGN502m + 0.330GGN502o                 : ARR( 0.565E-13,  -845., 0.0);
+{ 70892} G2G505P +PERO1              =  0.460G1G507p + 0.270GGN502m + 0.270GGN502o                 : ARR( 0.434E-13,  -900., 0.0);
+{ 70893} G2G505P +PERO2              =  0.400G1G507p + 0.300GGN502m + 0.300GGN502o                 : ARR( 0.162E-13, -1400., 0.0);
+{ 70894} G2G505P +PERO3              =  0.460G1G507p + 0.270GGN502m + 0.270GGN502o                 : ARR( 0.488E-13, -1250., 0.0);
+{ 70895} G2G505P +PERO5              =  0.460G1G507p + 0.270GGN502m + 0.270GGN502o                 : ARR( 0.183E-11,   450., 0.0);
+{ 70896} G2G505P +PERO6              =  0.300G1G507p + 0.350GGN502m + 0.350GGN502o                 : ARR( 0.168E-13, -1300., 0.0);
+{ 70897} G2G505P +PERO9              =  0.650G1G507p + 0.350GGN502o                                : ARR( 0.100E-10,     0., 0.0);
+{ 70898} G1G507o                     =       GCO     +      GHN400y +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 70899} G1G507p                     =       GGD2000 +      GND3005 +      GNO2                    : ARR( 0.200E+15,  5846., 0.0);
+{ 70900} G1G507p                     =       GGN3005 +      GDD2000 +      GNO2                    : ARR( 0.200E+15,  5625., 0.0);
+{ 70901} G1G507q                     =       GGN3005 +      GDD2000 +      GHO                     : ARR( 0.200E+15,  6241., 0.0);
+{ 70902} G1G507q                     =       GGH400o +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 70903} GGH504z +GHO                =       GGH505a +      GHO                                    : ARR( 0.301E-10,     0., 0.0);
+{ 70904} GGH504z +GHO                =       GGH5051 +      GHO                                    : ARR( 0.289E-10,     0., 0.0);
+{ 70905} GGH504z +GHO                =       G3G501N                                               : ARR( 0.239E-10,     0., 0.0);
+{ 70906} GGH504z +GNO3               =       G3G501N +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 70907} GGH504z+HV               =       GHH400r +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 70908} GGH504z+HV               =       G1G507r +      GNO2                                   :  0.100E+01*SUN;
+{ 70909} GGH504z+HV               =       G1G507s +      GHO                                    :  0.100E+01*SUN;
+{ 70910} GGH504z+HV               =       G1G507q +      GHO                                    :  0.100E+01*SUN;
+{ 70911} GGH504z+HV               =       GGH400o +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 70912} G3G501N +GHO2               =  0.800GGG500v + 0.200GAG501r + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 70913} G3G501N +GNO                =       GGH400o +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 70914} G3G501N +GNO2               =       GPG501r                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 70915} G3G501N +GNO3               =       GGH400o +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 70916} G3G501N +MEPERO             =  0.685GGH400o + 0.315GAG501r + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 70917} G3G501N +PERO1              =  0.800GGH400o + 0.200GAG501r + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 70918} G3G501N +PERO2              =  0.750GGH400o + 0.250GAG501r + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 70919} G3G501N +PERO3              =  0.800GGH400o + 0.200GAG501r + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 70920} G3G501N +PERO5              =  0.650GGH400o + 0.350GAG501r + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 70921} G3G501N +PERO6              =  0.650GGH400o + 0.350GAG501r + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 70922} G3G501N +PERO9              =       GGH400o +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 70923} G1G507r                     =       GCO     +      GHH400r +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 70924} G1G507s                     =       GGN3005 +      GDD2000 +      GHO                     : ARR( 0.200E+15,  4086., 0.0);
+{ 70925} GGH5051 +GHO                =       GGN502l +      GHO                                    : ARR( 0.507E-11,     0., 0.0);
+{ 70926} GGH5051 +GHO                =       G3G400H +      GCO                                    : ARR( 0.128E-10,     0., 0.0);
+{ 70927} GGH5051 +GHO                =       G3H504e                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 70928} GGH5051 +GHO                =       G2G505Q                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 70929} GGH5051 +GNO3               =       G3G400H +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 70930} GGH5051+HV               =       GHD400K +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 70931} GGH5051+HV               =       G1G505H +      GNO2                                   :  0.100E+01*SUN;
+{ 70932} GGH5051+HV               =       G1G507W +      GHO                                    :  0.100E+01*SUN;
+{ 70933} GGH5051+HV               =       G3G400H +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 70934} GGH5051+HV               =       GGH400o +      GCO                                    :  0.100E+01*SUN;
+{ 70935} GGH5051+HV               =       GGH3005 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 70936} G2G505Q +GNO                =       G1G507W +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 70937} G2G505Q +GNO                =       GGN502k                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 70938} G2G505Q +GHO2               =       GGH5051                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 70939} G2G505Q +GNO3               =       G1G507W +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 70940} G2G505Q +MEPERO             =  0.340G1G507W + 0.330GGN502n + 0.330GGN502l                 : ARR( 0.565E-13,  -845., 0.0);
+{ 70941} G2G505Q +PERO1              =  0.460G1G507W + 0.270GGN502n + 0.270GGN502l                 : ARR( 0.434E-13,  -900., 0.0);
+{ 70942} G2G505Q +PERO2              =  0.400G1G507W + 0.300GGN502n + 0.300GGN502l                 : ARR( 0.162E-13, -1400., 0.0);
+{ 70943} G2G505Q +PERO3              =  0.460G1G507W + 0.270GGN502n + 0.270GGN502l                 : ARR( 0.488E-13, -1250., 0.0);
+{ 70944} G2G505Q +PERO5              =  0.460G1G507W + 0.270GGN502n + 0.270GGN502l                 : ARR( 0.183E-11,   450., 0.0);
+{ 70945} G2G505Q +PERO6              =  0.300G1G507W + 0.350GGN502n + 0.350GGN502l                 : ARR( 0.168E-13, -1300., 0.0);
+{ 70946} G2G505Q +PERO9              =  0.650G1G507W + 0.350GGN502l                                : ARR( 0.100E-10,     0., 0.0);
+{ 70947} GGG400B +GHO                =       GGG400D +      GHO                                    : ARR( 0.505E-11,     0., 0.0);
+{ 70948} GGG400B +GHO                =       G3G400J                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 70949} GGG400B +GHO                =       G2G4018                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 70950} GGG400B +GHO                =       G3G400H                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 70951} GGG400B+HV               =       GGH3007 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 70952} GGG400B+HV               =       G1G401J +      GNO2                                   :  0.100E+01*SUN;
+{ 70953} GGG400B+HV               =       G1G401I +      GHO                                    :  0.100E+01*SUN;
+{ 70954} GGG400B+HV               =       GGN3005 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 70955} G2G4018 +GNO                =       G1G401I +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 70956} G2G4018 +GNO                =       GGG4008                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 70957} G2G4018 +GHO2               =       GGG400B                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 70958} G2G4018 +GNO3               =       G1G401I +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 70959} G2G4018 +MEPERO             =  0.340G1G401I + 0.330GGG4007 + 0.330GGG400D                 : ARR( 0.565E-13,  -845., 0.0);
+{ 70960} G2G4018 +PERO1              =  0.460G1G401I + 0.270GGG4007 + 0.270GGG400D                 : ARR( 0.434E-13,  -900., 0.0);
+{ 70961} G2G4018 +PERO2              =  0.400G1G401I + 0.300GGG4007 + 0.300GGG400D                 : ARR( 0.162E-13, -1400., 0.0);
+{ 70962} G2G4018 +PERO3              =  0.460G1G401I + 0.270GGG4007 + 0.270GGG400D                 : ARR( 0.488E-13, -1250., 0.0);
+{ 70963} G2G4018 +PERO5              =  0.460G1G401I + 0.270GGG4007 + 0.270GGG400D                 : ARR( 0.183E-11,   450., 0.0);
+{ 70964} G2G4018 +PERO6              =  0.300G1G401I + 0.350GGG4007 + 0.350GGG400D                 : ARR( 0.168E-13, -1300., 0.0);
+{ 70965} G2G4018 +PERO9              =  0.650G1G401I + 0.350GGG400D                                : ARR( 0.100E-10,     0., 0.0);
+{ 70966} G1G401J                     =       GGH3007 +      GCO     +      GHO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 70967} GGG500S +GHO                =       G2G505R                                               : ARR( 0.273E-11,     0., 0.0);
+{ 70968} GGG500S +GHO                =       GGG500L +      GHO                                    : ARR( 0.251E-10,     0., 0.0);
+{ 70969} GGG500S +GHO                =       G3G500e                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 70970} GGG500S +GHO                =       G2G503w                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 70971} GGG500S +GHO                =       G3G501O                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 70972} GGG500S+HV               =       G2G4012 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 70973} GGG500S+HV               =       G1G505a +      GHO                                    :  0.100E+01*SUN;
+{ 70974} GGG500S+HV               =       GAG400A +      GCO2                                   :  0.100E+01*SUN;
+{ 70975} G2G505R +GNO                =       G1G507t +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 70976} G2G505R +GNO                =       GGG500w                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 70977} G2G505R +GHO2               =       GGG500x                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 70978} G2G505R +GNO3               =       G1G507t +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 70979} G2G505R +MEPERO             =  0.340G1G507t + 0.330GGG500j + 0.330GGG500y                 : ARR( 0.565E-13,  -845., 0.0);
+{ 70980} G2G505R +PERO1              =  0.460G1G507t + 0.270GGG500j + 0.270GGG500y                 : ARR( 0.434E-13,  -900., 0.0);
+{ 70981} G2G505R +PERO2              =  0.400G1G507t + 0.300GGG500j + 0.300GGG500y                 : ARR( 0.162E-13, -1400., 0.0);
+{ 70982} G2G505R +PERO3              =  0.460G1G507t + 0.270GGG500j + 0.270GGG500y                 : ARR( 0.488E-13, -1250., 0.0);
+{ 70983} G2G505R +PERO5              =  0.460G1G507t + 0.270GGG500j + 0.270GGG500y                 : ARR( 0.183E-11,   450., 0.0);
+{ 70984} G2G505R +PERO6              =  0.300G1G507t + 0.350GGG500j + 0.350GGG500y                 : ARR( 0.168E-13, -1300., 0.0);
+{ 70985} G2G505R +PERO9              =  0.650G1G507t + 0.350GGG500y                                : ARR( 0.100E-10,     0., 0.0);
+{ 70986} G3G501O +GHO2               =  0.800GGG500S + 0.200GAG5011 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 70987} G3G501O +GNO                =       G3G4007 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 70988} G3G501O +GNO2               =       GPG5013                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 70989} G3G501O +GNO3               =       G3G4007 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 70990} G3G501O +MEPERO             =  0.685G3G4007 + 0.315GAG5011 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 70991} G3G501O +PERO1              =  0.800G3G4007 + 0.200GAG5011 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 70992} G3G501O +PERO2              =  0.750G3G4007 + 0.250GAG5011 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 70993} G3G501O +PERO3              =  0.800G3G4007 + 0.200GAG5011 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 70994} G3G501O +PERO5              =  0.650G3G4007 + 0.350GAG5011 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 70995} G3G501O +PERO6              =  0.650G3G4007 + 0.350GAG5011 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 70996} G3G501O +PERO9              =       G3G4007 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 70997} G1G507t                     =       GGH400p +      GCO     +      GHO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 70998} GAG500y +GHO                =       G2A506N                                               : ARR( 0.205E-11,     0., 0.0);
+{ 70999} GAG500y +GHO                =       GAG500g +      GHO                                    : ARR( 0.255E-10,     0., 0.0);
+{ 71000} GAG500y +GHO                =       G2A504t                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 71001} GAG500y +GHO                =       G3A501Z                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 71002} GAG500y+HV               =       G1A506q +      GHO                                    :  0.100E+01*SUN;
+{ 71003} GAG500y+HV               =       GAA4006 +      GCO2                                   :  0.100E+01*SUN;
+{ 71004} G2A506N +GNO                =       G1A508y +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 71005} G2A506N +GNO                =       GAG501l                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 71006} G2A506N +GHO2               =       GAG501s                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 71007} G2A506N +GNO3               =       G1A508y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 71008} G2A506N +MEPERO             =  0.340G1A508y + 0.330GAG501N + 0.330GAG501t                 : ARR( 0.565E-13,  -845., 0.0);
+{ 71009} G2A506N +PERO1              =  0.460G1A508y + 0.270GAG501N + 0.270GAG501t                 : ARR( 0.434E-13,  -900., 0.0);
+{ 71010} G2A506N +PERO2              =  0.400G1A508y + 0.300GAG501N + 0.300GAG501t                 : ARR( 0.162E-13, -1400., 0.0);
+{ 71011} G2A506N +PERO3              =  0.460G1A508y + 0.270GAG501N + 0.270GAG501t                 : ARR( 0.488E-13, -1250., 0.0);
+{ 71012} G2A506N +PERO5              =  0.460G1A508y + 0.270GAG501N + 0.270GAG501t                 : ARR( 0.183E-11,   450., 0.0);
+{ 71013} G2A506N +PERO6              =  0.300G1A508y + 0.350GAG501N + 0.350GAG501t                 : ARR( 0.168E-13, -1300., 0.0);
+{ 71014} G2A506N +PERO9              =  0.650G1A508y + 0.350GAG501t                                : ARR( 0.100E-10,     0., 0.0);
+{ 71015} G3A501Z +GHO2               =  0.800GAG500y + 0.200GAA500e + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 71016} G3A501Z +GNO                =       G3A4009 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 71017} G3A501Z +GNO2               =       GPA5019                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 71018} G3A501Z +GNO3               =       G3A4009 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 71019} G3A501Z +MEPERO             =  0.685G3A4009 + 0.315GAA500e + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 71020} G3A501Z +PERO1              =  0.800G3A4009 + 0.200GAA500e + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 71021} G3A501Z +PERO2              =  0.750G3A4009 + 0.250GAA500e + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 71022} G3A501Z +PERO3              =  0.800G3A4009 + 0.200GAA500e + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 71023} G3A501Z +PERO5              =  0.650G3A4009 + 0.350GAA500e + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 71024} G3A501Z +PERO6              =  0.650G3A4009 + 0.350GAA500e + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 71025} G3A501Z +PERO9              =       G3A4009 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 71026} G1A508y                     =       GCO     +      GGH400p +      GHO                     : ARR( 0.200E+15,  4342., 0.0);
+{ 71027} GPG5011                     =       G3G500e +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 71028} GPG5011 +GHO                =       GPG500d +      GHO                                    : ARR( 0.251E-10,     0., 0.0);
+{ 71029} GPG5011 +GHO                =       G2P5076                                               : ARR( 0.273E-11,     0., 0.0);
+{ 71030} GPG5011 +GHO                =       G3P501Z                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 71031} GPG5011 +GHO                =       G2P505E                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 71032} GPG5011+HV               =       GPA400B +      GCO2                                   :  0.100E+01*SUN;
+{ 71033} GPG5011+HV               =       G1P507Q +      GHO                                    :  0.100E+01*SUN;
+{ 71034} GPG5011+HV               =       G3G500e +      GNO2                                   :  0.100E+01*SUN;
+{ 71035} G2P5076 +GNO                =       G1P50A6 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 71036} G2P5076 +GNO                =       GPG501l                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 71037} G2P5076 +GHO2               =       GPG501t                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 71038} G2P5076 +GNO3               =       G1P50A6 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 71039} G2P5076 +MEPERO             =  0.340G1P50A6 + 0.330GPG501M + 0.330GPG501u                 : ARR( 0.565E-13,  -845., 0.0);
+{ 71040} G2P5076 +PERO1              =  0.460G1P50A6 + 0.270GPG501M + 0.270GPG501u                 : ARR( 0.434E-13,  -900., 0.0);
+{ 71041} G2P5076 +PERO2              =  0.400G1P50A6 + 0.300GPG501M + 0.300GPG501u                 : ARR( 0.162E-13, -1400., 0.0);
+{ 71042} G2P5076 +PERO3              =  0.460G1P50A6 + 0.270GPG501M + 0.270GPG501u                 : ARR( 0.488E-13, -1250., 0.0);
+{ 71043} G2P5076 +PERO5              =  0.460G1P50A6 + 0.270GPG501M + 0.270GPG501u                 : ARR( 0.183E-11,   450., 0.0);
+{ 71044} G2P5076 +PERO6              =  0.300G1P50A6 + 0.350GPG501M + 0.350GPG501u                 : ARR( 0.168E-13, -1300., 0.0);
+{ 71045} G2P5076 +PERO9              =  0.650G1P50A6 + 0.350GPG501u                                : ARR( 0.100E-10,     0., 0.0);
+{ 71046} G3P501Z +GHO2               =  0.800GPG5011 + 0.200GPA5017 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 71047} G3P501Z +GNO                =       G3P4009 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 71048} G3P501Z +GNO2               =       GPP500c                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 71049} G3P501Z +GNO3               =       G3P4009 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 71050} G3P501Z +MEPERO             =  0.685G3P4009 + 0.315GPA5017 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 71051} G3P501Z +PERO1              =  0.800G3P4009 + 0.200GPA5017 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 71052} G3P501Z +PERO2              =  0.750G3P4009 + 0.250GPA5017 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 71053} G3P501Z +PERO3              =  0.800G3P4009 + 0.200GPA5017 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 71054} G3P501Z +PERO5              =  0.650G3P4009 + 0.350GPA5017 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 71055} G3P501Z +PERO6              =  0.650G3P4009 + 0.350GPA5017 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 71056} G3P501Z +PERO9              =       G3P4009 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 71057} G1P50A6                     =       GGH400p +      GCO     +      GNO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 71058} GGH400z +GHO                =       GGH400p +      GHO                                    : ARR( 0.582E-10,     0., 0.0);
+{ 71059} GGH400z +GHO                =       GGH400h +      GHO                                    : ARR( 0.287E-10,     0., 0.0);
+{ 71060} GGH400z+HV               =       G1G400s +      GHO                                    :  0.100E+01*SUN;
+{ 71061} GGH400z+HV               =       G1G401H +      GHO                                    :  0.100E+01*SUN;
+{ 71062} GGH400z+HV               =       GAH3008 +      GCO2                                   :  0.100E+01*SUN;
+{ 71063} GGH5052 +GHO                =       GGN502q +      GHO                                    : ARR( 0.510E-11,     0., 0.0);
+{ 71064} GGH5052 +GHO                =       G3G501P                                               : ARR( 0.421E-11,     0., 0.0);
+{ 71065} GGH5052 +GHO                =       G3H505W                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 71066} GGH5052 +GHO                =       G2G505S                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 71067} GGH5052 +GNO3               =       G3G501P +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 71068} GGH5052+HV               =       GAH400l +      GCO2                                   :  0.100E+01*SUN;
+{ 71069} GGH5052+HV               =       G1G507u +      GHO                                    :  0.100E+01*SUN;
+{ 71070} GGH5052+HV               =       G1G507v +      GNO2                                   :  0.100E+01*SUN;
+{ 71071} GGH5052+HV               =       GGH400p +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 71072} G3G501P +GHO2               =  0.800GGG500w + 0.200GAG501l + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 71073} G3G501P +GNO                =       GGH400p + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 71074} G3G501P +GNO2               =       GPG501l                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 71075} G3G501P +GNO3               =       GGH400p + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 71076} G3G501P +MEPERO             =  0.685GGH400p + 0.315GAG501l + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71077} G3G501P +PERO1              =  0.800GGH400p + 0.200GAG501l + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71078} G3G501P +PERO2              =  0.750GGH400p + 0.250GAG501l + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71079} G3G501P +PERO3              =  0.800GGH400p + 0.200GAG501l + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71080} G3G501P +PERO5              =  0.650GGH400p + 0.350GAG501l + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71081} G3G501P +PERO6              =  0.650GGH400p + 0.350GAG501l + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71082} G3G501P +PERO9              =       GGH400p +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 71083} G3H505W +GHO2               =  0.800GGH5052 + 0.200GAH505B + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 71084} G3H505W +GNO                =       G3H400h +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 71085} G3H505W +GNO2               =       GPH505I                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 71086} G3H505W +GNO3               =       G3H400h +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 71087} G3H505W +MEPERO             =  0.685G3H400h + 0.315GAH505B + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 71088} G3H505W +PERO1              =  0.800G3H400h + 0.200GAH505B + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 71089} G3H505W +PERO2              =  0.750G3H400h + 0.250GAH505B + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 71090} G3H505W +PERO3              =  0.800G3H400h + 0.200GAH505B + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 71091} G3H505W +PERO5              =  0.650G3H400h + 0.350GAH505B + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 71092} G3H505W +PERO6              =  0.650G3H400h + 0.350GAH505B + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 71093} G3H505W +PERO9              =       G3H400h +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 71094} G2G505S +GNO                =       G1G507u +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 71095} G2G505S +GNO                =       GGN502t                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 71096} G2G505S +GHO2               =       GGH5052                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 71097} G2G505S +GNO3               =       G1G507u +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 71098} G2G505S +MEPERO             =  0.340G1G507u + 0.330GGN502i + 0.330GGN502q                 : ARR( 0.565E-13,  -845., 0.0);
+{ 71099} G2G505S +PERO1              =  0.460G1G507u + 0.270GGN502i + 0.270GGN502q                 : ARR( 0.434E-13,  -900., 0.0);
+{ 71100} G2G505S +PERO2              =  0.400G1G507u + 0.300GGN502i + 0.300GGN502q                 : ARR( 0.162E-13, -1400., 0.0);
+{ 71101} G2G505S +PERO3              =  0.460G1G507u + 0.270GGN502i + 0.270GGN502q                 : ARR( 0.488E-13, -1250., 0.0);
+{ 71102} G2G505S +PERO5              =  0.460G1G507u + 0.270GGN502i + 0.270GGN502q                 : ARR( 0.183E-11,   450., 0.0);
+{ 71103} G2G505S +PERO6              =  0.300G1G507u + 0.350GGN502i + 0.350GGN502q                 : ARR( 0.168E-13, -1300., 0.0);
+{ 71104} G2G505S +PERO9              =  0.650G1G507u + 0.350GGN502q                                : ARR( 0.100E-10,     0., 0.0);
+{ 71105} G1G507u                     =       GCO     +      GND3005 +      GHO2    +      GCO      : ARR( 0.200E+15,  2436., 0.0);
+{ 71106} G1G507v                     =       GGD3002 +      GDD2000 +      GHO                     : ARR( 0.200E+15,  5968., 0.0);
+{ 71107} G1G507v                     =       GGH400p +      GCO     +      GHO2                    : ARR( 0.200E+15,  4861., 0.0);
+{ 71108} GGH5053 +GHO                =       GGD500O +      GHO                                    : ARR( 0.153E-10,     0., 0.0);
+{ 71109} GGH5053 +GHO                =       G3G400I +      GCO                                    : ARR( 0.127E-10,     0., 0.0);
+{ 71110} GGH5053 +GHO                =       G3H505X                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 71111} GGH5053 +GHO                =       G2G505T                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 71112} GGH5053 +GNO3               =       G3G400I +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 71113} GGH5053+HV               =       GAH400u +      GCO2                                   :  0.100E+01*SUN;
+{ 71114} GGH5053+HV               =       G1G507w +      GHO                                    :  0.100E+01*SUN;
+{ 71115} GGH5053+HV               =       G3G400I +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 71116} GGH5053+HV               =       GGH400p +      GCO                                    :  0.100E+01*SUN;
+{ 71117} GGH5053+HV               =       GGH3006 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 71118} G3H505X +GHO2               =  0.800GGH5053 + 0.200GAH505C + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 71119} G3H505X +GNO                =       G3H400i +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 71120} G3H505X +GNO2               =       GPH505J                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 71121} G3H505X +GNO3               =       G3H400i +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 71122} G3H505X +MEPERO             =  0.685G3H400i + 0.315GAH505C + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 71123} G3H505X +PERO1              =  0.800G3H400i + 0.200GAH505C + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 71124} G3H505X +PERO2              =  0.750G3H400i + 0.250GAH505C + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 71125} G3H505X +PERO3              =  0.800G3H400i + 0.200GAH505C + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 71126} G3H505X +PERO5              =  0.650G3H400i + 0.350GAH505C + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 71127} G3H505X +PERO6              =  0.650G3H400i + 0.350GAH505C + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 71128} G3H505X +PERO9              =       G3H400i +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 71129} G2G505T +GNO                =       G1G507w +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 71130} G2G505T +GNO                =       GGN502r                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 71131} G2G505T +GHO2               =       GGH5053                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 71132} G2G505T +GNO3               =       G1G507w +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 71133} G2G505T +MEPERO             =  0.340G1G507w + 0.330GGD500N + 0.330GGD500O                 : ARR( 0.565E-13,  -845., 0.0);
+{ 71134} G2G505T +PERO1              =  0.460G1G507w + 0.270GGD500N + 0.270GGD500O                 : ARR( 0.434E-13,  -900., 0.0);
+{ 71135} G2G505T +PERO2              =  0.400G1G507w + 0.300GGD500N + 0.300GGD500O                 : ARR( 0.162E-13, -1400., 0.0);
+{ 71136} G2G505T +PERO3              =  0.460G1G507w + 0.270GGD500N + 0.270GGD500O                 : ARR( 0.488E-13, -1250., 0.0);
+{ 71137} G2G505T +PERO5              =  0.460G1G507w + 0.270GGD500N + 0.270GGD500O                 : ARR( 0.183E-11,   450., 0.0);
+{ 71138} G2G505T +PERO6              =  0.300G1G507w + 0.350GGD500N + 0.350GGD500O                 : ARR( 0.168E-13, -1300., 0.0);
+{ 71139} G2G505T +PERO9              =  0.650G1G507w + 0.350GGD500O                                : ARR( 0.100E-10,     0., 0.0);
+{ 71140} G1G507w                     =       GCO     +      GDD3002 +      GHO2    +      GCO      : ARR( 0.200E+15,  4880., 0.0);
+{ 71141} G1G507w                     =       GGD3002 +      G3D2000                                : ARR( 0.200E+15,  4847., 0.0);
+{ 71142} GGG400C +GHO                =       GGG400A +      GHO                                    : ARR( 0.153E-10,     0., 0.0);
+{ 71143} GGG400C +GHO                =       G3G400N                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 71144} GGG400C +GHO                =       G2G4015                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 71145} GGG400C +GHO                =       G3G400I                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 71146} GGG400C+HV               =       GAG3003 +      GCO2                                   :  0.100E+01*SUN;
+{ 71147} GGG400C+HV               =       G1G401E +      GHO                                    :  0.100E+01*SUN;
+{ 71148} GGG400C+HV               =       GGD3002 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 71149} GAG400M +GHO                =       GAG400H +      GHO                                    : ARR( 0.117E-10,     0., 0.0);
+{ 71150} GAG400M +GHO                =       G2A401F                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 71151} GAG400M +GHO                =       G3A400O                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 71152} GAG400M+HV               =       G1A401N +      GHO                                    :  0.100E+01*SUN;
+{ 71153} GAG400M+HV               =       GAA3003 +      GCO2                                   :  0.100E+01*SUN;
+{ 71154} GPG400M                     =       G3G400I +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 71155} GPG400M +GHO                =       GPG400H +      GHO                                    : ARR( 0.153E-10,     0., 0.0);
+{ 71156} GPG400M +GHO                =       G3P400O                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 71157} GPG400M +GHO                =       G2P401O                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 71158} GPG400M+HV               =       GPA3003 +      GCO2                                   :  0.100E+01*SUN;
+{ 71159} GPG400M+HV               =       G1P401W +      GHO                                    :  0.100E+01*SUN;
+{ 71160} GPG400M+HV               =       G3G400I +      GNO2                                   :  0.100E+01*SUN;
+{ 71161} GAH5058 +GHO                =       GAN502n +      GHO                                    : ARR( 0.167E-11,     0., 0.0);
+{ 71162} GAH5058 +GHO                =       G3A501a                                               : ARR( 0.421E-11,     0., 0.0);
+{ 71163} GAH5058 +GHO                =       G2A506O                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 71164} GAH5058 +GHO                =       GHN400y +      GNO2    +      GCO2                    : ARR( 0.527E-12,     0., 0.0);
+{ 71165} GAH5058 +GNO3               =       G3A501a +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 71166} GAH5058+HV               =       G1A508z +      GNO2                                   :  0.100E+01*SUN;
+{ 71167} GAH5058+HV               =       G1A507v +      GHO                                    :  0.100E+01*SUN;
+{ 71168} GAH5058+HV               =       G1A5091 +      GNO2                                   :  0.100E+01*SUN;
+{ 71169} GAH5058+HV               =       GAH400r +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 71170} GAH5058+HV               =       GAD3002 +      GND2000 +      GHO     +      GNO2     :  0.100E+01*SUN;
+{ 71171} G3A501a +GHO2               =  0.800GAG501j + 0.200GAA5016 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 71172} G3A501a +GNO                =       GAH400r + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 71173} G3A501a +GNO2               =       GPA501n                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 71174} G3A501a +GNO3               =       GAH400r + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 71175} G3A501a +MEPERO             =  0.685GAH400r + 0.315GAA5016 + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71176} G3A501a +PERO1              =  0.800GAH400r + 0.200GAA5016 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71177} G3A501a +PERO2              =  0.750GAH400r + 0.250GAA5016 + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71178} G3A501a +PERO3              =  0.800GAH400r + 0.200GAA5016 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71179} G3A501a +PERO5              =  0.650GAH400r + 0.350GAA5016 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71180} G3A501a +PERO6              =  0.650GAH400r + 0.350GAA5016 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71181} G3A501a +PERO9              =       GAH400r +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 71182} G2A506O +GNO                =       G1A507v +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 71183} G2A506O +GNO                =       GAN502j                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 71184} G2A506O +GHO2               =       GAH5058                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 71185} G2A506O +GNO3               =       G1A507v +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 71186} G2A506O +MEPERO             =  0.340G1A507v + 0.330GAN502q + 0.330GAN502n                 : ARR( 0.565E-13,  -845., 0.0);
+{ 71187} G2A506O +PERO1              =  0.460G1A507v + 0.270GAN502q + 0.270GAN502n                 : ARR( 0.434E-13,  -900., 0.0);
+{ 71188} G2A506O +PERO2              =  0.400G1A507v + 0.300GAN502q + 0.300GAN502n                 : ARR( 0.162E-13, -1400., 0.0);
+{ 71189} G2A506O +PERO3              =  0.460G1A507v + 0.270GAN502q + 0.270GAN502n                 : ARR( 0.488E-13, -1250., 0.0);
+{ 71190} G2A506O +PERO5              =  0.460G1A507v + 0.270GAN502q + 0.270GAN502n                 : ARR( 0.183E-11,   450., 0.0);
+{ 71191} G2A506O +PERO6              =  0.300G1A507v + 0.350GAN502q + 0.350GAN502n                 : ARR( 0.168E-13, -1300., 0.0);
+{ 71192} G2A506O +PERO9              =  0.650G1A507v + 0.350GAN502n                                : ARR( 0.100E-10,     0., 0.0);
+{ 71193} G1A508z                     =       GCO     +      GHN400y +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 71194} G1A5091                     =       GAN3006 +      GDD2000 +      GHO                     : ARR( 0.200E+15,  6241., 0.0);
+{ 71195} G1A5091                     =       GAH400r +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 71196} GAH5059 +GHO                =       GAH504u +      GHO                                    : ARR( 0.290E-10,     0., 0.0);
+{ 71197} GAH5059 +GHO                =       GAH505A +      GHO                                    : ARR( 0.278E-10,     0., 0.0);
+{ 71198} GAH5059 +GHO                =       G3A501b                                               : ARR( 0.230E-10,     0., 0.0);
+{ 71199} GAH5059 +GNO3               =       G3A501b +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 71200} GAH5059+HV               =       G1A5092 +      GNO2                                   :  0.100E+01*SUN;
+{ 71201} GAH5059+HV               =       G1A508C +      GHO                                    :  0.100E+01*SUN;
+{ 71202} GAH5059+HV               =       G1A5091 +      GHO                                    :  0.100E+01*SUN;
+{ 71203} GAH5059+HV               =       GAH400r +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 71204} G3A501b +GHO2               =  0.800GAG501k + 0.200GAA5017 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 71205} G3A501b +GNO                =       GAH400r +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 71206} G3A501b +GNO2               =       GPA501o                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 71207} G3A501b +GNO3               =       GAH400r +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 71208} G3A501b +MEPERO             =  0.685GAH400r + 0.315GAA5017 + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71209} G3A501b +PERO1              =  0.800GAH400r + 0.200GAA5017 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71210} G3A501b +PERO2              =  0.750GAH400r + 0.250GAA5017 + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71211} G3A501b +PERO3              =  0.800GAH400r + 0.200GAA5017 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71212} G3A501b +PERO5              =  0.650GAH400r + 0.350GAA5017 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71213} G3A501b +PERO6              =  0.650GAH400r + 0.350GAA5017 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71214} G3A501b +PERO9              =       GAH400r +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 71215} G1A5092                     =       GCO     +      GHH400r +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 71216} GAH505A +GHO                =       GAN502p +      GHO                                    : ARR( 0.519E-11,     0., 0.0);
+{ 71217} GAH505A +GHO                =       G3A400J +      GCO                                    : ARR( 0.131E-10,     0., 0.0);
+{ 71218} GAH505A +GHO                =       G2A506P                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 71219} GAH505A +GNO3               =       G3A400J +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 71220} GAH505A+HV               =       G1A5093 +      GNO2                                   :  0.100E+01*SUN;
+{ 71221} GAH505A+HV               =       G1A5085 +      GHO                                    :  0.100E+01*SUN;
+{ 71222} GAH505A+HV               =       G3A400J +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 71223} GAH505A+HV               =       GAH400r +      GCO                                    :  0.100E+01*SUN;
+{ 71224} GAH505A+HV               =       GAH3005 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 71225} G2A506P +GNO                =       G1A5085 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 71226} G2A506P +GNO                =       GAN502l                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 71227} G2A506P +GHO2               =       GAH505A                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 71228} G2A506P +GNO3               =       G1A5085 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 71229} G2A506P +MEPERO             =  0.340G1A5085 + 0.330GAN502s + 0.330GAN502p                 : ARR( 0.565E-13,  -845., 0.0);
+{ 71230} G2A506P +PERO1              =  0.460G1A5085 + 0.270GAN502s + 0.270GAN502p                 : ARR( 0.434E-13,  -900., 0.0);
+{ 71231} G2A506P +PERO2              =  0.400G1A5085 + 0.300GAN502s + 0.300GAN502p                 : ARR( 0.162E-13, -1400., 0.0);
+{ 71232} G2A506P +PERO3              =  0.460G1A5085 + 0.270GAN502s + 0.270GAN502p                 : ARR( 0.488E-13, -1250., 0.0);
+{ 71233} G2A506P +PERO5              =  0.460G1A5085 + 0.270GAN502s + 0.270GAN502p                 : ARR( 0.183E-11,   450., 0.0);
+{ 71234} G2A506P +PERO6              =  0.300G1A5085 + 0.350GAN502s + 0.350GAN502p                 : ARR( 0.168E-13, -1300., 0.0);
+{ 71235} G2A506P +PERO9              =  0.650G1A5085 + 0.350GAN502p                                : ARR( 0.100E-10,     0., 0.0);
+{ 71236} G1A5093                     =       GCO     +      GHD400K +      GHO                     : ARR( 0.200E+15,  4342., 0.0);
+{ 71237} GAG400N +GHO                =       GAG400L +      GHO                                    : ARR( 0.526E-11,     0., 0.0);
+{ 71238} GAG400N +GHO                =       G2A401K                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 71239} GAG400N +GHO                =       G3A400J                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 71240} GAG400N+HV               =       G1A401T +      GNO2                                   :  0.100E+01*SUN;
+{ 71241} GAG400N+HV               =       G1A401Q +      GHO                                    :  0.100E+01*SUN;
+{ 71242} GAG400N+HV               =       GAN3006 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 71243} G2A401K +GNO                =       G1A401Q +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 71244} G2A401K +GNO                =       GAG400C                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 71245} G2A401K +GHO2               =       GAG400N                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 71246} G2A401K +GNO3               =       G1A401Q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 71247} G2A401K +MEPERO             =  0.340G1A401Q + 0.330GAG4007 + 0.330GAG400L                 : ARR( 0.565E-13,  -845., 0.0);
+{ 71248} G2A401K +PERO1              =  0.460G1A401Q + 0.270GAG4007 + 0.270GAG400L                 : ARR( 0.434E-13,  -900., 0.0);
+{ 71249} G2A401K +PERO2              =  0.400G1A401Q + 0.300GAG4007 + 0.300GAG400L                 : ARR( 0.162E-13, -1400., 0.0);
+{ 71250} G2A401K +PERO3              =  0.460G1A401Q + 0.270GAG4007 + 0.270GAG400L                 : ARR( 0.488E-13, -1250., 0.0);
+{ 71251} G2A401K +PERO5              =  0.460G1A401Q + 0.270GAG4007 + 0.270GAG400L                 : ARR( 0.183E-11,   450., 0.0);
+{ 71252} G2A401K +PERO6              =  0.300G1A401Q + 0.350GAG4007 + 0.350GAG400L                 : ARR( 0.168E-13, -1300., 0.0);
+{ 71253} G2A401K +PERO9              =  0.650G1A401Q + 0.350GAG400L                                : ARR( 0.100E-10,     0., 0.0);
+{ 71254} G1A401T                     =       GCO     +      GGH3007 +      GHO                     : ARR( 0.200E+15,  4342., 0.0);
+{ 71255} GAG500z +GHO                =       GAG5011 +      GHO                                    : ARR( 0.224E-10,     0., 0.0);
+{ 71256} GAG500z +GHO                =       GAG500c +      GHO                                    : ARR( 0.496E-10,     0., 0.0);
+{ 71257} GAG500z+HV               =       G1A508X +      GHO                                    :  0.100E+01*SUN;
+{ 71258} GAG500z+HV               =       G1A508D +      GHO                                    :  0.100E+01*SUN;
+{ 71259} GAG500z+HV               =       G2A401C +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 71260} GAA500d +GHO                =       GAA500S +      GHO                                    : ARR( 0.422E-10,     0., 0.0);
+{ 71261} GAA500d +GHO                =       GAA500e +      GHO                                    : ARR( 0.191E-10,     0., 0.0);
+{ 71262} GAA500d +GHO                =       G2A5054                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 71263} GAA500d +GHO                =       G2A506Q                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 71264} GAA500d+HV               =       G1A507N +      GHO                                    :  0.100E+01*SUN;
+{ 71265} GAA500d+HV               =       G1A508e +      GHO                                    :  0.100E+01*SUN;
+{ 71266} G2A506Q +GNO                =       G1A508e +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 71267} G2A506Q +GNO                =       GAA500b                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 71268} G2A506Q +GHO2               =       GAA500d                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 71269} G2A506Q +GNO3               =       G1A508e +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 71270} G2A506Q +MEPERO             =  0.340G1A508e + 0.330GAA5009 + 0.330GAA500e                 : ARR( 0.565E-13,  -845., 0.0);
+{ 71271} G2A506Q +PERO1              =  0.460G1A508e + 0.270GAA5009 + 0.270GAA500e                 : ARR( 0.434E-13,  -900., 0.0);
+{ 71272} G2A506Q +PERO2              =  0.400G1A508e + 0.300GAA5009 + 0.300GAA500e                 : ARR( 0.162E-13, -1400., 0.0);
+{ 71273} G2A506Q +PERO3              =  0.460G1A508e + 0.270GAA5009 + 0.270GAA500e                 : ARR( 0.488E-13, -1250., 0.0);
+{ 71274} G2A506Q +PERO5              =  0.460G1A508e + 0.270GAA5009 + 0.270GAA500e                 : ARR( 0.183E-11,   450., 0.0);
+{ 71275} G2A506Q +PERO6              =  0.300G1A508e + 0.350GAA5009 + 0.350GAA500e                 : ARR( 0.168E-13, -1300., 0.0);
+{ 71276} G2A506Q +PERO9              =  0.650G1A508e + 0.350GAA500e                                : ARR( 0.100E-10,     0., 0.0);
+{ 71277} GPA5016                     =       G3A500j +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 71278} GPA5016 +GHO                =       GPA5017 +      GHO                                    : ARR( 0.190E-10,     0., 0.0);
+{ 71279} GPA5016 +GHO                =       GPA500l +      GHO                                    : ARR( 0.421E-10,     0., 0.0);
+{ 71280} GPA5016 +GHO                =       G2P5077                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 71281} GPA5016 +GHO                =       G2P505J                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 71282} GPA5016+HV               =       G1P509U +      GHO                                    :  0.100E+01*SUN;
+{ 71283} GPA5016+HV               =       G1P507U +      GHO                                    :  0.100E+01*SUN;
+{ 71284} GPA5016+HV               =       G3A500j +      GNO2                                   :  0.100E+01*SUN;
+{ 71285} G2P5077 +GNO                =       G1P509U +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 71286} G2P5077 +GNO                =       GPA500w                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 71287} G2P5077 +GHO2               =       GPA5016                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 71288} G2P5077 +GNO3               =       G1P509U +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 71289} G2P5077 +MEPERO             =  0.340G1P509U + 0.330GPA500F + 0.330GPA5017                 : ARR( 0.565E-13,  -845., 0.0);
+{ 71290} G2P5077 +PERO1              =  0.460G1P509U + 0.270GPA500F + 0.270GPA5017                 : ARR( 0.434E-13,  -900., 0.0);
+{ 71291} G2P5077 +PERO2              =  0.400G1P509U + 0.300GPA500F + 0.300GPA5017                 : ARR( 0.162E-13, -1400., 0.0);
+{ 71292} G2P5077 +PERO3              =  0.460G1P509U + 0.270GPA500F + 0.270GPA5017                 : ARR( 0.488E-13, -1250., 0.0);
+{ 71293} G2P5077 +PERO5              =  0.460G1P509U + 0.270GPA500F + 0.270GPA5017                 : ARR( 0.183E-11,   450., 0.0);
+{ 71294} G2P5077 +PERO6              =  0.300G1P509U + 0.350GPA500F + 0.350GPA5017                 : ARR( 0.168E-13, -1300., 0.0);
+{ 71295} G2P5077 +PERO9              =  0.650G1P509U + 0.350GPA5017                                : ARR( 0.100E-10,     0., 0.0);
+{ 71296} GAG5011 +GHO                =       GAG500d +      GHO                                    : ARR( 0.255E-10,     0., 0.0);
+{ 71297} GAG5011 +GHO                =       G2A506R                                               : ARR( 0.277E-11,     0., 0.0);
+{ 71298} GAG5011 +GHO                =       G2A504v                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 71299} GAG5011 +GHO                =       G3A500k                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 71300} GAG5011+HV               =       GGH400Q +      GCO2                                   :  0.100E+01*SUN;
+{ 71301} GAG5011+HV               =       G1A5071 +      GHO                                    :  0.100E+01*SUN;
+{ 71302} GAG5011+HV               =       G2A401D +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 71303} G2A506R +GNO                =       G1A5094 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 71304} G2A506R +GNO                =       GAG501u                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 71305} G2A506R +GHO2               =       GAG501v                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 71306} G2A506R +GNO3               =       G1A5094 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 71307} G2A506R +MEPERO             =  0.340G1A5094 + 0.330GAG501O + 0.330GAG501t                 : ARR( 0.565E-13,  -845., 0.0);
+{ 71308} G2A506R +PERO1              =  0.460G1A5094 + 0.270GAG501O + 0.270GAG501t                 : ARR( 0.434E-13,  -900., 0.0);
+{ 71309} G2A506R +PERO2              =  0.400G1A5094 + 0.300GAG501O + 0.300GAG501t                 : ARR( 0.162E-13, -1400., 0.0);
+{ 71310} G2A506R +PERO3              =  0.460G1A5094 + 0.270GAG501O + 0.270GAG501t                 : ARR( 0.488E-13, -1250., 0.0);
+{ 71311} G2A506R +PERO5              =  0.460G1A5094 + 0.270GAG501O + 0.270GAG501t                 : ARR( 0.183E-11,   450., 0.0);
+{ 71312} G2A506R +PERO6              =  0.300G1A5094 + 0.350GAG501O + 0.350GAG501t                 : ARR( 0.168E-13, -1300., 0.0);
+{ 71313} G2A506R +PERO9              =  0.650G1A5094 + 0.350GAG501t                                : ARR( 0.100E-10,     0., 0.0);
+{ 71314} G1A5094                     =       GAH400s +      GCO     +      GHO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 71315} GAA500e +GHO                =       G2A506S                                               : ARR( 0.209E-11,     0., 0.0);
+{ 71316} GAA500e +GHO                =       GAA500T +      GHO                                    : ARR( 0.260E-10,     0., 0.0);
+{ 71317} GAA500e +GHO                =       G2A504y                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 71318} GAA500e+HV               =       G1A5074 +      GHO                                    :  0.100E+01*SUN;
+{ 71319} GAA500e+HV               =       GAH400T +      GCO2                                   :  0.100E+01*SUN;
+{ 71320} G2A506S +GNO                =       G1A5095 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 71321} G2A506S +GNO                =       GAA5011                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 71322} G2A506S +GHO2               =       GAA5018                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 71323} G2A506S +GNO3               =       G1A5095 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 71324} G2A506S +MEPERO             =  0.340G1A5095 + 0.330GAA500o + 0.330GAA5019                 : ARR( 0.565E-13,  -845., 0.0);
+{ 71325} G2A506S +PERO1              =  0.460G1A5095 + 0.270GAA500o + 0.270GAA5019                 : ARR( 0.434E-13,  -900., 0.0);
+{ 71326} G2A506S +PERO2              =  0.400G1A5095 + 0.300GAA500o + 0.300GAA5019                 : ARR( 0.162E-13, -1400., 0.0);
+{ 71327} G2A506S +PERO3              =  0.460G1A5095 + 0.270GAA500o + 0.270GAA5019                 : ARR( 0.488E-13, -1250., 0.0);
+{ 71328} G2A506S +PERO5              =  0.460G1A5095 + 0.270GAA500o + 0.270GAA5019                 : ARR( 0.183E-11,   450., 0.0);
+{ 71329} G2A506S +PERO6              =  0.300G1A5095 + 0.350GAA500o + 0.350GAA5019                 : ARR( 0.168E-13, -1300., 0.0);
+{ 71330} G2A506S +PERO9              =  0.650G1A5095 + 0.350GAA5019                                : ARR( 0.100E-10,     0., 0.0);
+{ 71331} G1A5095                     =       GAH400s +      GCO     +      GHO                     : ARR( 0.200E+15,  4342., 0.0);
+{ 71332} GPA5017                     =       G3A500k +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 71333} GPA5017 +GHO                =       GPA500m +      GHO                                    : ARR( 0.255E-10,     0., 0.0);
+{ 71334} GPA5017 +GHO                =       G2P5078                                               : ARR( 0.278E-11,     0., 0.0);
+{ 71335} GPA5017 +GHO                =       G2P505H                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 71336} GPA5017+HV               =       GPH400T +      GCO2                                   :  0.100E+01*SUN;
+{ 71337} GPA5017+HV               =       G1P507S +      GHO                                    :  0.100E+01*SUN;
+{ 71338} GPA5017+HV               =       G3A500k +      GNO2                                   :  0.100E+01*SUN;
+{ 71339} G2P5078 +GNO                =       G1P50A7 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 71340} G2P5078 +GNO                =       GPA501s                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 71341} G2P5078 +GHO2               =       GPA501w                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 71342} G2P5078 +GNO3               =       G1P50A7 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 71343} G2P5078 +MEPERO             =  0.340G1P50A7 + 0.330GPA501R + 0.330GPA501x                 : ARR( 0.565E-13,  -845., 0.0);
+{ 71344} G2P5078 +PERO1              =  0.460G1P50A7 + 0.270GPA501R + 0.270GPA501x                 : ARR( 0.434E-13,  -900., 0.0);
+{ 71345} G2P5078 +PERO2              =  0.400G1P50A7 + 0.300GPA501R + 0.300GPA501x                 : ARR( 0.162E-13, -1400., 0.0);
+{ 71346} G2P5078 +PERO3              =  0.460G1P50A7 + 0.270GPA501R + 0.270GPA501x                 : ARR( 0.488E-13, -1250., 0.0);
+{ 71347} G2P5078 +PERO5              =  0.460G1P50A7 + 0.270GPA501R + 0.270GPA501x                 : ARR( 0.183E-11,   450., 0.0);
+{ 71348} G2P5078 +PERO6              =  0.300G1P50A7 + 0.350GPA501R + 0.350GPA501x                 : ARR( 0.168E-13, -1300., 0.0);
+{ 71349} G2P5078 +PERO9              =  0.650G1P50A7 + 0.350GPA501x                                : ARR( 0.100E-10,     0., 0.0);
+{ 71350} G1P50A7                     =       GAH400s +      GCO     +      GNO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 71351} GAH400z +GHO                =       GAH400n +      GHO                                    : ARR( 0.277E-10,     0., 0.0);
+{ 71352} GAH400z +GHO                =       GAH400s +      GHO                                    : ARR( 0.562E-10,     0., 0.0);
+{ 71353} GAH400z+HV               =       GHH3005 +      GCO2                                   :  0.100E+01*SUN;
+{ 71354} GAH400z+HV               =       G1A401D +      GHO                                    :  0.100E+01*SUN;
+{ 71355} GAH400z+HV               =       G1A4012 +      GHO                                    :  0.100E+01*SUN;
+{ 71356} GAH505B +GHO                =       GAN502o +      GHO                                    : ARR( 0.532E-11,     0., 0.0);
+{ 71357} GAH505B +GHO                =       G3A501c                                               : ARR( 0.440E-11,     0., 0.0);
+{ 71358} GAH505B +GHO                =       G2A506T                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 71359} GAH505B +GNO3               =       G3A501c +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 71360} GAH505B+HV               =       GHN400y +      GCO2                                   :  0.100E+01*SUN;
+{ 71361} GAH505B+HV               =       G1A507z +      GHO                                    :  0.100E+01*SUN;
+{ 71362} GAH505B+HV               =       G1A5096 +      GNO2                                   :  0.100E+01*SUN;
+{ 71363} GAH505B+HV               =       GAH400s +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 71364} G3A501c +GHO2               =  0.800GAG501u + 0.200GAA5011 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 71365} G3A501c +GNO                =       GAH400s + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 71366} G3A501c +GNO2               =       GPA501s                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 71367} G3A501c +GNO3               =       GAH400s + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 71368} G3A501c +MEPERO             =  0.685GAH400s + 0.315GAA5011 + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71369} G3A501c +PERO1              =  0.800GAH400s + 0.200GAA5011 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71370} G3A501c +PERO2              =  0.750GAH400s + 0.250GAA5011 + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71371} G3A501c +PERO3              =  0.800GAH400s + 0.200GAA5011 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71372} G3A501c +PERO5              =  0.650GAH400s + 0.350GAA5011 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71373} G3A501c +PERO6              =  0.650GAH400s + 0.350GAA5011 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71374} G3A501c +PERO9              =       GAH400s +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 71375} G2A506T +GNO                =       G1A507z +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 71376} G2A506T +GNO                =       GAN502k                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 71377} G2A506T +GHO2               =       GAH505B                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 71378} G2A506T +GNO3               =       G1A507z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 71379} G2A506T +MEPERO             =  0.340G1A507z + 0.330GAN502r + 0.330GAN502o                 : ARR( 0.565E-13,  -845., 0.0);
+{ 71380} G2A506T +PERO1              =  0.460G1A507z + 0.270GAN502r + 0.270GAN502o                 : ARR( 0.434E-13,  -900., 0.0);
+{ 71381} G2A506T +PERO2              =  0.400G1A507z + 0.300GAN502r + 0.300GAN502o                 : ARR( 0.162E-13, -1400., 0.0);
+{ 71382} G2A506T +PERO3              =  0.460G1A507z + 0.270GAN502r + 0.270GAN502o                 : ARR( 0.488E-13, -1250., 0.0);
+{ 71383} G2A506T +PERO5              =  0.460G1A507z + 0.270GAN502r + 0.270GAN502o                 : ARR( 0.183E-11,   450., 0.0);
+{ 71384} G2A506T +PERO6              =  0.300G1A507z + 0.350GAN502r + 0.350GAN502o                 : ARR( 0.168E-13, -1300., 0.0);
+{ 71385} G2A506T +PERO9              =  0.650G1A507z + 0.350GAN502o                                : ARR( 0.100E-10,     0., 0.0);
+{ 71386} G1A5096                     =       GAD3002 +      GDD2000 +      GHO                     : ARR( 0.200E+15,  5968., 0.0);
+{ 71387} G1A5096                     =       GAH400s +      GCO     +      GHO2                    : ARR( 0.200E+15,  4861., 0.0);
+{ 71388} GAH505C +GHO                =       GAD500P +      GHO                                    : ARR( 0.156E-10,     0., 0.0);
+{ 71389} GAH505C +GHO                =       G3A400K +      GCO                                    : ARR( 0.129E-10,     0., 0.0);
+{ 71390} GAH505C +GHO                =       G2A506U                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 71391} GAH505C +GNO3               =       G3A400K +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 71392} GAH505C+HV               =       GHD400K +      GCO2                                   :  0.100E+01*SUN;
+{ 71393} GAH505C+HV               =       G1A5087 +      GHO                                    :  0.100E+01*SUN;
+{ 71394} GAH505C+HV               =       G3A400K +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 71395} GAH505C+HV               =       GAH400s +      GCO                                    :  0.100E+01*SUN;
+{ 71396} GAH505C+HV               =       GAH3006 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 71397} G2A506U +GNO                =       G1A5087 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 71398} G2A506U +GNO                =       GAN502m                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 71399} G2A506U +GHO2               =       GAH505C                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 71400} G2A506U +GNO3               =       G1A5087 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 71401} G2A506U +MEPERO             =  0.340G1A5087 + 0.330GAD500Q + 0.330GAD500P                 : ARR( 0.565E-13,  -845., 0.0);
+{ 71402} G2A506U +PERO1              =  0.460G1A5087 + 0.270GAD500Q + 0.270GAD500P                 : ARR( 0.434E-13,  -900., 0.0);
+{ 71403} G2A506U +PERO2              =  0.400G1A5087 + 0.300GAD500Q + 0.300GAD500P                 : ARR( 0.162E-13, -1400., 0.0);
+{ 71404} G2A506U +PERO3              =  0.460G1A5087 + 0.270GAD500Q + 0.270GAD500P                 : ARR( 0.488E-13, -1250., 0.0);
+{ 71405} G2A506U +PERO5              =  0.460G1A5087 + 0.270GAD500Q + 0.270GAD500P                 : ARR( 0.183E-11,   450., 0.0);
+{ 71406} G2A506U +PERO6              =  0.300G1A5087 + 0.350GAD500Q + 0.350GAD500P                 : ARR( 0.168E-13, -1300., 0.0);
+{ 71407} G2A506U +PERO9              =  0.650G1A5087 + 0.350GAD500P                                : ARR( 0.100E-10,     0., 0.0);
+{ 71408} GPH505F                     =       G3H504b +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 71409} GPH505F +GHO                =       GPN502p +      GHO                                    : ARR( 0.167E-11,     0., 0.0);
+{ 71410} GPH505F +GHO                =       G3P501a                                               : ARR( 0.422E-11,     0., 0.0);
+{ 71411} GPH505F +GHO                =       G2P5079                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 71412} GPH505F +GNO3               =       G3P501a +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 71413} GPH505F+HV               =       G3H504b +      GNO2                                   :  0.100E+01*SUN;
+{ 71414} GPH505F+HV               =       G1P506y +      GNO2                                   :  0.100E+01*SUN;
+{ 71415} GPH505F+HV               =       G1P508e +      GHO                                    :  0.100E+01*SUN;
+{ 71416} GPH505F+HV               =       G1P50A8 +      GNO2                                   :  0.100E+01*SUN;
+{ 71417} GPH505F+HV               =       GPH400s +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 71418} GPH505F+HV               =       GPD3002 +      GND2000 +      GHO     +      GNO2     :  0.100E+01*SUN;
+{ 71419} G3P501a +GHO2               =  0.800GPG501j + 0.200GPA501n + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 71420} G3P501a +GNO                =       GPH400s + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 71421} G3P501a +GNO2               =       GPP5011                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 71422} G3P501a +GNO3               =       GPH400s + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 71423} G3P501a +MEPERO             =  0.685GPH400s + 0.315GPA501n + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71424} G3P501a +PERO1              =  0.800GPH400s + 0.200GPA501n + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71425} G3P501a +PERO2              =  0.750GPH400s + 0.250GPA501n + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71426} G3P501a +PERO3              =  0.800GPH400s + 0.200GPA501n + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71427} G3P501a +PERO5              =  0.650GPH400s + 0.350GPA501n + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71428} G3P501a +PERO6              =  0.650GPH400s + 0.350GPA501n + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71429} G3P501a +PERO9              =       GPH400s +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 71430} G2P5079 +GNO                =       G1P508e +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 71431} G2P5079 +GNO                =       GPN502j                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 71432} G2P5079 +GHO2               =       GPH505F                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 71433} G2P5079 +GNO3               =       G1P508e +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 71434} G2P5079 +MEPERO             =  0.340G1P508e + 0.330GPN502t + 0.330GPN502p                 : ARR( 0.565E-13,  -845., 0.0);
+{ 71435} G2P5079 +PERO1              =  0.460G1P508e + 0.270GPN502t + 0.270GPN502p                 : ARR( 0.434E-13,  -900., 0.0);
+{ 71436} G2P5079 +PERO2              =  0.400G1P508e + 0.300GPN502t + 0.300GPN502p                 : ARR( 0.162E-13, -1400., 0.0);
+{ 71437} G2P5079 +PERO3              =  0.460G1P508e + 0.270GPN502t + 0.270GPN502p                 : ARR( 0.488E-13, -1250., 0.0);
+{ 71438} G2P5079 +PERO5              =  0.460G1P508e + 0.270GPN502t + 0.270GPN502p                 : ARR( 0.183E-11,   450., 0.0);
+{ 71439} G2P5079 +PERO6              =  0.300G1P508e + 0.350GPN502t + 0.350GPN502p                 : ARR( 0.168E-13, -1300., 0.0);
+{ 71440} G2P5079 +PERO9              =  0.650G1P508e + 0.350GPN502p                                : ARR( 0.100E-10,     0., 0.0);
+{ 71441} G1P50A8                     =       GPN3006 +      GDD2000 +      GHO                     : ARR( 0.200E+15,  6241., 0.0);
+{ 71442} G1P50A8                     =       GPH400s +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 71443} GPH505G                     =       G3H504d +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 71444} GPH505G +GHO                =       GPH5056 +      GHO                                    : ARR( 0.288E-10,     0., 0.0);
+{ 71445} GPH505G +GHO                =       GPH505H +      GHO                                    : ARR( 0.277E-10,     0., 0.0);
+{ 71446} GPH505G +GHO                =       G3P501b                                               : ARR( 0.229E-10,     0., 0.0);
+{ 71447} GPH505G +GNO3               =       G3P501b +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 71448} GPH505G+HV               =       G3H504d +      GNO2                                   :  0.100E+01*SUN;
+{ 71449} GPH505G+HV               =       G1P50A9 +      GNO2                                   :  0.100E+01*SUN;
+{ 71450} GPH505G+HV               =       G1P508y +      GHO                                    :  0.100E+01*SUN;
+{ 71451} GPH505G+HV               =       G1P50A8 +      GHO                                    :  0.100E+01*SUN;
+{ 71452} GPH505G+HV               =       GPH400s +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 71453} G3P501b +GHO2               =  0.800GPG501k + 0.200GPA501y + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 71454} G3P501b +GNO                =       GPH400s +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 71455} G3P501b +GNO2               =       GPP5014                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 71456} G3P501b +GNO3               =       GPH400s +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 71457} G3P501b +MEPERO             =  0.685GPH400s + 0.315GPA501y + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71458} G3P501b +PERO1              =  0.800GPH400s + 0.200GPA501y + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71459} G3P501b +PERO2              =  0.750GPH400s + 0.250GPA501y + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71460} G3P501b +PERO3              =  0.800GPH400s + 0.200GPA501y + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71461} G3P501b +PERO5              =  0.650GPH400s + 0.350GPA501y + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71462} G3P501b +PERO6              =  0.650GPH400s + 0.350GPA501y + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71463} G3P501b +PERO9              =       GPH400s +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 71464} G1P50A9                     =       GCO     +      GHH400r +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 71465} GPH505H                     =       G3H504e +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 71466} GPH505H +GHO                =       GPN502s +      GHO                                    : ARR( 0.508E-11,     0., 0.0);
+{ 71467} GPH505H +GHO                =       G3P400J +      GCO                                    : ARR( 0.128E-10,     0., 0.0);
+{ 71468} GPH505H +GHO                =       G2P507A                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 71469} GPH505H +GNO3               =       G3P400J +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 71470} GPH505H+HV               =       G3H504e +      GNO2                                   :  0.100E+01*SUN;
+{ 71471} GPH505H+HV               =       G1P506z +      GNO2                                   :  0.100E+01*SUN;
+{ 71472} GPH505H+HV               =       G1P508s +      GHO                                    :  0.100E+01*SUN;
+{ 71473} GPH505H+HV               =       G3P400J +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 71474} GPH505H+HV               =       GPH400s +      GCO                                    :  0.100E+01*SUN;
+{ 71475} GPH505H+HV               =       GPH3005 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 71476} G2P507A +GNO                =       G1P508s +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 71477} G2P507A +GNO                =       GPN502l                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 71478} G2P507A +GHO2               =       GPH505H                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 71479} G2P507A +GNO3               =       G1P508s +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 71480} G2P507A +MEPERO             =  0.340G1P508s + 0.330GPN502n + 0.330GPN502s                 : ARR( 0.565E-13,  -845., 0.0);
+{ 71481} G2P507A +PERO1              =  0.460G1P508s + 0.270GPN502n + 0.270GPN502s                 : ARR( 0.434E-13,  -900., 0.0);
+{ 71482} G2P507A +PERO2              =  0.400G1P508s + 0.300GPN502n + 0.300GPN502s                 : ARR( 0.162E-13, -1400., 0.0);
+{ 71483} G2P507A +PERO3              =  0.460G1P508s + 0.270GPN502n + 0.270GPN502s                 : ARR( 0.488E-13, -1250., 0.0);
+{ 71484} G2P507A +PERO5              =  0.460G1P508s + 0.270GPN502n + 0.270GPN502s                 : ARR( 0.183E-11,   450., 0.0);
+{ 71485} G2P507A +PERO6              =  0.300G1P508s + 0.350GPN502n + 0.350GPN502s                 : ARR( 0.168E-13, -1300., 0.0);
+{ 71486} G2P507A +PERO9              =  0.650G1P508s + 0.350GPN502s                                : ARR( 0.100E-10,     0., 0.0);
+{ 71487} GPG400N                     =       G3G400J +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 71488} GPG400N +GHO                =       GPG400L +      GHO                                    : ARR( 0.506E-11,     0., 0.0);
+{ 71489} GPG400N +GHO                =       G3P400J                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 71490} GPG400N +GHO                =       G2P401R                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 71491} GPG400N+HV               =       GPN3006 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 71492} GPG400N+HV               =       G1P401Z +      GHO                                    :  0.100E+01*SUN;
+{ 71493} GPG400N+HV               =       G1P401e +      GNO2                                   :  0.100E+01*SUN;
+{ 71494} GPG400N+HV               =       G3G400J +      GNO2                                   :  0.100E+01*SUN;
+{ 71495} G2P401R +GNO                =       G1P401Z +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 71496} G2P401R +GNO                =       GPG400D                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 71497} G2P401R +GHO2               =       GPG400N                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 71498} G2P401R +GNO3               =       G1P401Z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 71499} G2P401R +MEPERO             =  0.340G1P401Z + 0.330GPG4007 + 0.330GPG400L                 : ARR( 0.565E-13,  -845., 0.0);
+{ 71500} G2P401R +PERO1              =  0.460G1P401Z + 0.270GPG4007 + 0.270GPG400L                 : ARR( 0.434E-13,  -900., 0.0);
+{ 71501} G2P401R +PERO2              =  0.400G1P401Z + 0.300GPG4007 + 0.300GPG400L                 : ARR( 0.162E-13, -1400., 0.0);
+{ 71502} G2P401R +PERO3              =  0.460G1P401Z + 0.270GPG4007 + 0.270GPG400L                 : ARR( 0.488E-13, -1250., 0.0);
+{ 71503} G2P401R +PERO5              =  0.460G1P401Z + 0.270GPG4007 + 0.270GPG400L                 : ARR( 0.183E-11,   450., 0.0);
+{ 71504} G2P401R +PERO6              =  0.300G1P401Z + 0.350GPG4007 + 0.350GPG400L                 : ARR( 0.168E-13, -1300., 0.0);
+{ 71505} G2P401R +PERO9              =  0.650G1P401Z + 0.350GPG400L                                : ARR( 0.100E-10,     0., 0.0);
+{ 71506} G1P401e                     =       GGH3007 +      GCO     +      GNO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 71507} GPG5012                     =       G3G500t +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 71508} GPG5012 +GHO                =       GPG500f +      GHO                                    : ARR( 0.484E-10,     0., 0.0);
+{ 71509} GPG5012 +GHO                =       GPG5013 +      GHO                                    : ARR( 0.295E-10,     0., 0.0);
+{ 71510} GPG5012+HV               =       G2P401L +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 71511} GPG5012+HV               =       G1P508z +      GHO                                    :  0.100E+01*SUN;
+{ 71512} GPG5012+HV               =       G1P509e +      GHO                                    :  0.100E+01*SUN;
+{ 71513} GPG5012+HV               =       G3G500t +      GNO2                                   :  0.100E+01*SUN;
+{ 71514} GPA5018                     =       G3A5016 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 71515} GPA5018 +GHO                =       GPA500o +      GHO                                    : ARR( 0.464E-10,     0., 0.0);
+{ 71516} GPA5018 +GHO                =       GPA5019 +      GHO                                    : ARR( 0.283E-10,     0., 0.0);
+{ 71517} GPA5018+HV               =       G1P508R +      GHO                                    :  0.100E+01*SUN;
+{ 71518} GPA5018+HV               =       G1P509k +      GHO                                    :  0.100E+01*SUN;
+{ 71519} GPA5018+HV               =       G3A5016 +      GNO2                                   :  0.100E+01*SUN;
+{ 71520} GPP500b                     =       G3P500l +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 71521} GPP500b                     =       G3P5014 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 71522} GPP500b +GHO                =       GPP500Q +      GHO                                    : ARR( 0.462E-10,     0., 0.0);
+{ 71523} GPP500b +GHO                =       GPP500c +      GHO                                    : ARR( 0.282E-10,     0., 0.0);
+{ 71524} GPP500b+HV               =       G3P500l +      GNO2                                   :  0.100E+01*SUN;
+{ 71525} GPP500b+HV               =       G1P508X +      GHO                                    :  0.100E+01*SUN;
+{ 71526} GPP500b+HV               =       G1P509n +      GHO                                    :  0.100E+01*SUN;
+{ 71527} GPP500b+HV               =       G3P5014 +      GNO2                                   :  0.100E+01*SUN;
+{ 71528} GPG5013                     =       G3G501O +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 71529} GPG5013 +GHO                =       G2P507B                                               : ARR( 0.273E-11,     0., 0.0);
+{ 71530} GPG5013 +GHO                =       GPG500g +      GHO                                    : ARR( 0.251E-10,     0., 0.0);
+{ 71531} GPG5013 +GHO                =       G3P500m                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 71532} GPG5013 +GHO                =       G2P505a                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 71533} GPG5013+HV               =       G2P401M +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 71534} GPG5013+HV               =       G1P5082 +      GHO                                    :  0.100E+01*SUN;
+{ 71535} GPG5013+HV               =       G3G4007 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 71536} G2P507B +GNO                =       G1P50AA +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 71537} G2P507B +GNO                =       GPG501s                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 71538} G2P507B +GHO2               =       GPG501v                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 71539} G2P507B +GNO3               =       G1P50AA +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 71540} G2P507B +MEPERO             =  0.340G1P50AA + 0.330GPG501N + 0.330GPG501u                 : ARR( 0.565E-13,  -845., 0.0);
+{ 71541} G2P507B +PERO1              =  0.460G1P50AA + 0.270GPG501N + 0.270GPG501u                 : ARR( 0.434E-13,  -900., 0.0);
+{ 71542} G2P507B +PERO2              =  0.400G1P50AA + 0.300GPG501N + 0.300GPG501u                 : ARR( 0.162E-13, -1400., 0.0);
+{ 71543} G2P507B +PERO3              =  0.460G1P50AA + 0.270GPG501N + 0.270GPG501u                 : ARR( 0.488E-13, -1250., 0.0);
+{ 71544} G2P507B +PERO5              =  0.460G1P50AA + 0.270GPG501N + 0.270GPG501u                 : ARR( 0.183E-11,   450., 0.0);
+{ 71545} G2P507B +PERO6              =  0.300G1P50AA + 0.350GPG501N + 0.350GPG501u                 : ARR( 0.168E-13, -1300., 0.0);
+{ 71546} G2P507B +PERO9              =  0.650G1P50AA + 0.350GPG501u                                : ARR( 0.100E-10,     0., 0.0);
+{ 71547} G1P50AA                     =       GCO     +      GPH400t +      GHO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 71548} GPA5019                     =       G3A501Z +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 71549} GPA5019 +GHO                =       G2P507C                                               : ARR( 0.206E-11,     0., 0.0);
+{ 71550} GPA5019 +GHO                =       GPA500p +      GHO                                    : ARR( 0.256E-10,     0., 0.0);
+{ 71551} GPA5019 +GHO                =       G2P505L                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 71552} GPA5019+HV               =       G1P507X +      GHO                                    :  0.100E+01*SUN;
+{ 71553} GPA5019+HV               =       G3A4009 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 71554} G2P507C +GNO                =       G1P50AB +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 71555} G2P507C +GNO                =       GPA501p                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 71556} G2P507C +GHO2               =       GPA501z                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 71557} G2P507C +GNO3               =       G1P50AB +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 71558} G2P507C +MEPERO             =  0.340G1P50AB + 0.330GPA501M + 0.330GPA501x                 : ARR( 0.565E-13,  -845., 0.0);
+{ 71559} G2P507C +PERO1              =  0.460G1P50AB + 0.270GPA501M + 0.270GPA501x                 : ARR( 0.434E-13,  -900., 0.0);
+{ 71560} G2P507C +PERO2              =  0.400G1P50AB + 0.300GPA501M + 0.300GPA501x                 : ARR( 0.162E-13, -1400., 0.0);
+{ 71561} G2P507C +PERO3              =  0.460G1P50AB + 0.270GPA501M + 0.270GPA501x                 : ARR( 0.488E-13, -1250., 0.0);
+{ 71562} G2P507C +PERO5              =  0.460G1P50AB + 0.270GPA501M + 0.270GPA501x                 : ARR( 0.183E-11,   450., 0.0);
+{ 71563} G2P507C +PERO6              =  0.300G1P50AB + 0.350GPA501M + 0.350GPA501x                 : ARR( 0.168E-13, -1300., 0.0);
+{ 71564} G2P507C +PERO9              =  0.650G1P50AB + 0.350GPA501x                                : ARR( 0.100E-10,     0., 0.0);
+{ 71565} G1P50AB                     =       GCO     +      GPH400t +      GHO                     : ARR( 0.200E+15,  4342., 0.0);
+{ 71566} GPP500c                     =       G3P500m +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 71567} GPP500c                     =       G3P501Z +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 71568} GPP500c +GHO                =       G2P507D                                               : ARR( 0.273E-11,     0., 0.0);
+{ 71569} GPP500c +GHO                =       GPP500R +      GHO                                    : ARR( 0.251E-10,     0., 0.0);
+{ 71570} GPP500c +GHO                =       G2P505c                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 71571} GPP500c+HV               =       G3P500m +      GNO2                                   :  0.100E+01*SUN;
+{ 71572} GPP500c+HV               =       G1P5084 +      GHO                                    :  0.100E+01*SUN;
+{ 71573} GPP500c+HV               =       G3P4009 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 71574} G2P507D +GNO                =       G1P50AC +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 71575} G2P507D +GNO                =       GPP5013                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 71576} G2P507D +GHO2               =       GPP5017                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 71577} G2P507D +GNO3               =       G1P50AC +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 71578} G2P507D +MEPERO             =  0.340G1P50AC + 0.330GPP500l + 0.330GPP5018                 : ARR( 0.565E-13,  -845., 0.0);
+{ 71579} G2P507D +PERO1              =  0.460G1P50AC + 0.270GPP500l + 0.270GPP5018                 : ARR( 0.434E-13,  -900., 0.0);
+{ 71580} G2P507D +PERO2              =  0.400G1P50AC + 0.300GPP500l + 0.300GPP5018                 : ARR( 0.162E-13, -1400., 0.0);
+{ 71581} G2P507D +PERO3              =  0.460G1P50AC + 0.270GPP500l + 0.270GPP5018                 : ARR( 0.488E-13, -1250., 0.0);
+{ 71582} G2P507D +PERO5              =  0.460G1P50AC + 0.270GPP500l + 0.270GPP5018                 : ARR( 0.183E-11,   450., 0.0);
+{ 71583} G2P507D +PERO6              =  0.300G1P50AC + 0.350GPP500l + 0.350GPP5018                 : ARR( 0.168E-13, -1300., 0.0);
+{ 71584} G2P507D +PERO9              =  0.650G1P50AC + 0.350GPP5018                                : ARR( 0.100E-10,     0., 0.0);
+{ 71585} G1P50AC                     =       GPH400t +      GCO     +      GNO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 71586} GPH400z                     =       G3H400z +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 71587} GPH400z +GHO                =       GPH400t +      GHO                                    : ARR( 0.558E-10,     0., 0.0);
+{ 71588} GPH400z +GHO                =       GPH400o +      GHO                                    : ARR( 0.275E-10,     0., 0.0);
+{ 71589} GPH400z+HV               =       G1P4016 +      GHO                                    :  0.100E+01*SUN;
+{ 71590} GPH400z+HV               =       G1P401L +      GHO                                    :  0.100E+01*SUN;
+{ 71591} GPH400z+HV               =       G3H3007 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 71592} G3H400z +GHO2               =  0.800GGH400z + 0.200GAH400z + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 71593} G3H400z +GNO                =       G3H3007 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 71594} G3H400z +GNO2               =       GPH400z                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 71595} G3H400z +GNO3               =       G3H3007 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 71596} G3H400z +MEPERO             =  0.685G3H3007 + 0.315GAH400z + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 71597} G3H400z +PERO1              =  0.800G3H3007 + 0.200GAH400z + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 71598} G3H400z +PERO2              =  0.750G3H3007 + 0.250GAH400z + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 71599} G3H400z +PERO3              =  0.800G3H3007 + 0.200GAH400z + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 71600} G3H400z +PERO5              =  0.650G3H3007 + 0.350GAH400z + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 71601} G3H400z +PERO6              =  0.650G3H3007 + 0.350GAH400z + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 71602} G3H400z +PERO9              =       G3H3007 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 71603} GPH505I                     =       G3H505W +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 71604} GPH505I +GHO                =       GPN502r +      GHO                                    : ARR( 0.512E-11,     0., 0.0);
+{ 71605} GPH505I +GHO                =       G3P501c                                               : ARR( 0.423E-11,     0., 0.0);
+{ 71606} GPH505I +GHO                =       G2P507E                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 71607} GPH505I +GNO3               =       G3P501c +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 71608} GPH505I+HV               =       G3H400h +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 71609} GPH505I+HV               =       G1P508i +      GHO                                    :  0.100E+01*SUN;
+{ 71610} GPH505I+HV               =       G1P50AD +      GNO2                                   :  0.100E+01*SUN;
+{ 71611} GPH505I+HV               =       GPH400t +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 71612} G3P501c +GHO2               =  0.800GPG501s + 0.200GPA501p + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 71613} G3P501c +GNO                =       GPH400t + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 71614} G3P501c +GNO2               =       GPP5013                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 71615} G3P501c +GNO3               =       GPH400t + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 71616} G3P501c +MEPERO             =  0.685GPH400t + 0.315GPA501p + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71617} G3P501c +PERO1              =  0.800GPH400t + 0.200GPA501p + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71618} G3P501c +PERO2              =  0.750GPH400t + 0.250GPA501p + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71619} G3P501c +PERO3              =  0.800GPH400t + 0.200GPA501p + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71620} G3P501c +PERO5              =  0.650GPH400t + 0.350GPA501p + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71621} G3P501c +PERO6              =  0.650GPH400t + 0.350GPA501p + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71622} G3P501c +PERO9              =       GPH400t +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 71623} G2P507E +GNO                =       G1P508i +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 71624} G2P507E +GNO                =       GPN502k                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 71625} G2P507E +GHO2               =       GPH505I                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 71626} G2P507E +GNO3               =       G1P508i +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 71627} G2P507E +MEPERO             =  0.340G1P508i + 0.330GPN502o + 0.330GPN502r                 : ARR( 0.565E-13,  -845., 0.0);
+{ 71628} G2P507E +PERO1              =  0.460G1P508i + 0.270GPN502o + 0.270GPN502r                 : ARR( 0.434E-13,  -900., 0.0);
+{ 71629} G2P507E +PERO2              =  0.400G1P508i + 0.300GPN502o + 0.300GPN502r                 : ARR( 0.162E-13, -1400., 0.0);
+{ 71630} G2P507E +PERO3              =  0.460G1P508i + 0.270GPN502o + 0.270GPN502r                 : ARR( 0.488E-13, -1250., 0.0);
+{ 71631} G2P507E +PERO5              =  0.460G1P508i + 0.270GPN502o + 0.270GPN502r                 : ARR( 0.183E-11,   450., 0.0);
+{ 71632} G2P507E +PERO6              =  0.300G1P508i + 0.350GPN502o + 0.350GPN502r                 : ARR( 0.168E-13, -1300., 0.0);
+{ 71633} G2P507E +PERO9              =  0.650G1P508i + 0.350GPN502r                                : ARR( 0.100E-10,     0., 0.0);
+{ 71634} G1P50AD                     =       GPD3002 +      GDD2000 +      GHO                     : ARR( 0.200E+15,  5968., 0.0);
+{ 71635} G1P50AD                     =       GPH400t +      GCO     +      GHO2                    : ARR( 0.200E+15,  4861., 0.0);
+{ 71636} GPH505J                     =       G3H505X +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 71637} GPH505J +GHO                =       GPD500O +      GHO                                    : ARR( 0.153E-10,     0., 0.0);
+{ 71638} GPH505J +GHO                =       G3P400K +      GCO                                    : ARR( 0.127E-10,     0., 0.0);
+{ 71639} GPH505J +GHO                =       G2P507F                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 71640} GPH505J +GNO3               =       G3P400K +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 71641} GPH505J+HV               =       G3H400i +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 71642} GPH505J+HV               =       G1P508t +      GHO                                    :  0.100E+01*SUN;
+{ 71643} GPH505J+HV               =       G3P400K +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 71644} GPH505J+HV               =       GPH400t +      GCO                                    :  0.100E+01*SUN;
+{ 71645} GPH505J+HV               =       GPH3006 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 71646} G2P507F +GNO                =       G1P508t +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 71647} G2P507F +GNO                =       GPN502m                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 71648} G2P507F +GHO2               =       GPH505J                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 71649} G2P507F +GNO3               =       G1P508t +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 71650} G2P507F +MEPERO             =  0.340G1P508t + 0.330GPD500N + 0.330GPD500O                 : ARR( 0.565E-13,  -845., 0.0);
+{ 71651} G2P507F +PERO1              =  0.460G1P508t + 0.270GPD500N + 0.270GPD500O                 : ARR( 0.434E-13,  -900., 0.0);
+{ 71652} G2P507F +PERO2              =  0.400G1P508t + 0.300GPD500N + 0.300GPD500O                 : ARR( 0.162E-13, -1400., 0.0);
+{ 71653} G2P507F +PERO3              =  0.460G1P508t + 0.270GPD500N + 0.270GPD500O                 : ARR( 0.488E-13, -1250., 0.0);
+{ 71654} G2P507F +PERO5              =  0.460G1P508t + 0.270GPD500N + 0.270GPD500O                 : ARR( 0.183E-11,   450., 0.0);
+{ 71655} G2P507F +PERO6              =  0.300G1P508t + 0.350GPD500N + 0.350GPD500O                 : ARR( 0.168E-13, -1300., 0.0);
+{ 71656} G2P507F +PERO9              =  0.650G1P508t + 0.350GPD500O                                : ARR( 0.100E-10,     0., 0.0);
+{ 71657} GPH505K                     =       G3H504c +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 71658} GPH505K +GHO                =       GPH505I +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 71659} GPH505K +GHO                =       GPH5053 +      GHO                                    : ARR( 0.826E-11,     0., 0.0);
+{ 71660} GPH505K +GHO                =       G3P501d                                               : ARR( 0.416E-11,     0., 0.0);
+{ 71661} GPH505K +GHO                =       G2P5053                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 71662} GPH505K +GHO                =       G2P507G                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 71663} GPH505K +GNO3               =       G3P501d +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 71664} GPH505K+HV               =       G3H504c +      GNO2                                   :  0.100E+01*SUN;
+{ 71665} GPH505K+HV               =       G1P506y +      GHO                                    :  0.100E+01*SUN;
+{ 71666} GPH505K+HV               =       G1P508k +      GHO                                    :  0.100E+01*SUN;
+{ 71667} GPH505K+HV               =       G1P50AE +      GNO2                                   :  0.100E+01*SUN;
+{ 71668} GPH505K+HV               =       GPH400w +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 71669} GPH505K+HV               =       GPD3002 +      GND2000 + 2.000GHO                     :  0.100E+01*SUN;
+{ 71670} G3P501d +GHO2               =  0.800GPG501r + 0.200GPA501o + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 71671} G3P501d +GNO                =       GPH400w + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 71672} G3P501d +GNO2               =       GPP5014                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 71673} G3P501d +GNO3               =       GPH400w + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 71674} G3P501d +MEPERO             =  0.685GPH400w + 0.315GPA501o + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71675} G3P501d +PERO1              =  0.800GPH400w + 0.200GPA501o + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71676} G3P501d +PERO2              =  0.750GPH400w + 0.250GPA501o + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71677} G3P501d +PERO3              =  0.800GPH400w + 0.200GPA501o + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71678} G3P501d +PERO5              =  0.650GPH400w + 0.350GPA501o + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71679} G3P501d +PERO6              =  0.650GPH400w + 0.350GPA501o + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71680} G3P501d +PERO9              =       GPH400w +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 71681} G2P507G +GNO                =       G1P508k +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 71682} G2P507G +GNO                =       GPH504o                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 71683} G2P507G +GHO2               =       GPH505K                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 71684} G2P507G +GNO3               =       G1P508k +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 71685} G2P507G +MEPERO             =  0.340G1P508k + 0.330GPH505N + 0.330GPH5053                 : ARR( 0.565E-13,  -845., 0.0);
+{ 71686} G2P507G +PERO1              =  0.460G1P508k + 0.270GPH505N + 0.270GPH5053                 : ARR( 0.434E-13,  -900., 0.0);
+{ 71687} G2P507G +PERO2              =  0.400G1P508k + 0.300GPH505N + 0.300GPH5053                 : ARR( 0.162E-13, -1400., 0.0);
+{ 71688} G2P507G +PERO3              =  0.460G1P508k + 0.270GPH505N + 0.270GPH5053                 : ARR( 0.488E-13, -1250., 0.0);
+{ 71689} G2P507G +PERO5              =  0.460G1P508k + 0.270GPH505N + 0.270GPH5053                 : ARR( 0.183E-11,   450., 0.0);
+{ 71690} G2P507G +PERO6              =  0.300G1P508k + 0.350GPH505N + 0.350GPH5053                 : ARR( 0.168E-13, -1300., 0.0);
+{ 71691} G2P507G +PERO9              =  0.650G1P508k + 0.350GPH5053                                : ARR( 0.100E-10,     0., 0.0);
+{ 71692} G1P50AE                     =       GPH3007 +      GDD2000 +      GHO                     : ARR( 0.200E+15,  6241., 0.0);
+{ 71693} G1P50AE                     =       GPH400w +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 71694} GGH5054 +GHO                =       GGH5052 +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 71695} GGH5054 +GHO                =       GGH505A +      GHO                                    : ARR( 0.825E-11,     0., 0.0);
+{ 71696} GGH5054 +GHO                =       G3G501Q                                               : ARR( 0.416E-11,     0., 0.0);
+{ 71697} GGH5054 +GHO                =       G3H504c                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 71698} GGH5054 +GHO                =       G2G505U                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 71699} GGH5054 +GHO                =       G2G505W                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 71700} GGH5054 +GNO3               =       G3G501Q +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 71701} GGH5054+HV               =       GHN400y +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 71702} GGH5054+HV               =       G1G507o +      GHO                                    :  0.100E+01*SUN;
+{ 71703} GGH5054+HV               =       G1G507x +      GHO                                    :  0.100E+01*SUN;
+{ 71704} GGH5054+HV               =       G1G507y +      GNO2                                   :  0.100E+01*SUN;
+{ 71705} GGH5054+HV               =       GGH400v +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 71706} GGH5054+HV               =       GGD3002 +      GND2000 + 2.000GHO                     :  0.100E+01*SUN;
+{ 71707} G3G501Q +GHO2               =  0.800GGG500v + 0.200GAG501k + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 71708} G3G501Q +GNO                =       GGH400v + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 71709} G3G501Q +GNO2               =       GPG501k                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 71710} G3G501Q +GNO3               =       GGH400v + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 71711} G3G501Q +MEPERO             =  0.685GGH400v + 0.315GAG501k + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71712} G3G501Q +PERO1              =  0.800GGH400v + 0.200GAG501k + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71713} G3G501Q +PERO2              =  0.750GGH400v + 0.250GAG501k + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71714} G3G501Q +PERO3              =  0.800GGH400v + 0.200GAG501k + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71715} G3G501Q +PERO5              =  0.650GGH400v + 0.350GAG501k + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71716} G3G501Q +PERO6              =  0.650GGH400v + 0.350GAG501k + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71717} G3G501Q +PERO9              =       GGH400v +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 71718} G2G505U +GNO                =       G1G507o +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 71719} G2G505U +GNO                =       GGH504y                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 71720} G2G505U +GHO2               =       GGH5054                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 71721} G2G505U +GNO3               =       G1G507o +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 71722} G2G505U +MEPERO             =  0.340G1G507o + 0.330GGH503j + 0.330GGH5052                 : ARR( 0.565E-13,  -845., 0.0);
+{ 71723} G2G505U +PERO1              =  0.460G1G507o + 0.270GGH503j + 0.270GGH5052                 : ARR( 0.434E-13,  -900., 0.0);
+{ 71724} G2G505U +PERO2              =  0.400G1G507o + 0.300GGH503j + 0.300GGH5052                 : ARR( 0.162E-13, -1400., 0.0);
+{ 71725} G2G505U +PERO3              =  0.460G1G507o + 0.270GGH503j + 0.270GGH5052                 : ARR( 0.488E-13, -1250., 0.0);
+{ 71726} G2G505U +PERO5              =  0.460G1G507o + 0.270GGH503j + 0.270GGH5052                 : ARR( 0.183E-11,   450., 0.0);
+{ 71727} G2G505U +PERO6              =  0.300G1G507o + 0.350GGH503j + 0.350GGH5052                 : ARR( 0.168E-13, -1300., 0.0);
+{ 71728} G2G505U +PERO9              =  0.650G1G507o + 0.350GGH5052                                : ARR( 0.100E-10,     0., 0.0);
+{ 71729} G2G505W +GNO                =       G1G507x +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 71730} G2G505W +GNO                =       GGH505E                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 71731} G2G505W +GHO2               =       GGH5054                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 71732} G2G505W +GNO3               =       G1G507x +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 71733} G2G505W +MEPERO             =  0.340G1G507x + 0.330GGH5058 + 0.330GGH505A                 : ARR( 0.565E-13,  -845., 0.0);
+{ 71734} G2G505W +PERO1              =  0.460G1G507x + 0.270GGH5058 + 0.270GGH505A                 : ARR( 0.434E-13,  -900., 0.0);
+{ 71735} G2G505W +PERO2              =  0.400G1G507x + 0.300GGH5058 + 0.300GGH505A                 : ARR( 0.162E-13, -1400., 0.0);
+{ 71736} G2G505W +PERO3              =  0.460G1G507x + 0.270GGH5058 + 0.270GGH505A                 : ARR( 0.488E-13, -1250., 0.0);
+{ 71737} G2G505W +PERO5              =  0.460G1G507x + 0.270GGH5058 + 0.270GGH505A                 : ARR( 0.183E-11,   450., 0.0);
+{ 71738} G2G505W +PERO6              =  0.300G1G507x + 0.350GGH5058 + 0.350GGH505A                 : ARR( 0.168E-13, -1300., 0.0);
+{ 71739} G2G505W +PERO9              =  0.650G1G507x + 0.350GGH505A                                : ARR( 0.100E-10,     0., 0.0);
+{ 71740} G1G507x                     =       GGD2000 +      GND3005 +      GHO                     : ARR( 0.200E+15,  4308., 0.0);
+{ 71741} G1G507y                     =       GGH3007 +      GDD2000 +      GHO                     : ARR( 0.200E+15,  6241., 0.0);
+{ 71742} G1G507y                     =       GGH400v +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 71743} GAH505D +GHO                =       GAH505B +      GHO                                    : ARR( 0.189E-10,     0., 0.0);
+{ 71744} GAH505D +GHO                =       GAH505I +      GHO                                    : ARR( 0.837E-11,     0., 0.0);
+{ 71745} GAH505D +GHO                =       G3A501d                                               : ARR( 0.422E-11,     0., 0.0);
+{ 71746} GAH505D +GHO                =       G2A506W                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 71747} GAH505D +GHO                =       G2A506X                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 71748} GAH505D +GNO3               =       G3A501d +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 71749} GAH505D+HV               =       G1A508z +      GHO                                    :  0.100E+01*SUN;
+{ 71750} GAH505D+HV               =       G1A508s +      GHO                                    :  0.100E+01*SUN;
+{ 71751} GAH505D+HV               =       G1A5097 +      GNO2                                   :  0.100E+01*SUN;
+{ 71752} GAH505D+HV               =       GAH400w +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 71753} GAH505D+HV               =       GAD3002 +      GND2000 + 2.000GHO                     :  0.100E+01*SUN;
+{ 71754} G3A501d +GHO2               =  0.800GAG501r + 0.200GAA5017 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 71755} G3A501d +GNO                =       GAH400w + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 71756} G3A501d +GNO2               =       GPA501y                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 71757} G3A501d +GNO3               =       GAH400w + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 71758} G3A501d +MEPERO             =  0.685GAH400w + 0.315GAA5017 + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71759} G3A501d +PERO1              =  0.800GAH400w + 0.200GAA5017 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71760} G3A501d +PERO2              =  0.750GAH400w + 0.250GAA5017 + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71761} G3A501d +PERO3              =  0.800GAH400w + 0.200GAA5017 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71762} G3A501d +PERO5              =  0.650GAH400w + 0.350GAA5017 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71763} G3A501d +PERO6              =  0.650GAH400w + 0.350GAA5017 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71764} G3A501d +PERO9              =       GAH400w +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 71765} G2A506W +GNO                =       G1A508z +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 71766} G2A506W +GNO                =       GAH5058                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 71767} G2A506W +GHO2               =       GAH505D                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 71768} G2A506W +GNO3               =       G1A508z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 71769} G2A506W +MEPERO             =  0.340G1A508z + 0.330GAH503h + 0.330GAH505B                 : ARR( 0.565E-13,  -845., 0.0);
+{ 71770} G2A506W +PERO1              =  0.460G1A508z + 0.270GAH503h + 0.270GAH505B                 : ARR( 0.434E-13,  -900., 0.0);
+{ 71771} G2A506W +PERO2              =  0.400G1A508z + 0.300GAH503h + 0.300GAH505B                 : ARR( 0.162E-13, -1400., 0.0);
+{ 71772} G2A506W +PERO3              =  0.460G1A508z + 0.270GAH503h + 0.270GAH505B                 : ARR( 0.488E-13, -1250., 0.0);
+{ 71773} G2A506W +PERO5              =  0.460G1A508z + 0.270GAH503h + 0.270GAH505B                 : ARR( 0.183E-11,   450., 0.0);
+{ 71774} G2A506W +PERO6              =  0.300G1A508z + 0.350GAH503h + 0.350GAH505B                 : ARR( 0.168E-13, -1300., 0.0);
+{ 71775} G2A506W +PERO9              =  0.650G1A508z + 0.350GAH505B                                : ARR( 0.100E-10,     0., 0.0);
+{ 71776} G2A506X +GNO                =       G1A508s +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 71777} G2A506X +GNO                =       GAH5056                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 71778} G2A506X +GHO2               =       GAH505D                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 71779} G2A506X +GNO3               =       G1A508s +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 71780} G2A506X +MEPERO             =  0.340G1A508s + 0.330GAH505G + 0.330GAH505I                 : ARR( 0.565E-13,  -845., 0.0);
+{ 71781} G2A506X +PERO1              =  0.460G1A508s + 0.270GAH505G + 0.270GAH505I                 : ARR( 0.434E-13,  -900., 0.0);
+{ 71782} G2A506X +PERO2              =  0.400G1A508s + 0.300GAH505G + 0.300GAH505I                 : ARR( 0.162E-13, -1400., 0.0);
+{ 71783} G2A506X +PERO3              =  0.460G1A508s + 0.270GAH505G + 0.270GAH505I                 : ARR( 0.488E-13, -1250., 0.0);
+{ 71784} G2A506X +PERO5              =  0.460G1A508s + 0.270GAH505G + 0.270GAH505I                 : ARR( 0.183E-11,   450., 0.0);
+{ 71785} G2A506X +PERO6              =  0.300G1A508s + 0.350GAH505G + 0.350GAH505I                 : ARR( 0.168E-13, -1300., 0.0);
+{ 71786} G2A506X +PERO9              =  0.650G1A508s + 0.350GAH505I                                : ARR( 0.100E-10,     0., 0.0);
+{ 71787} G1A5097                     =       GAH3007 +      GDD2000 +      GHO                     : ARR( 0.200E+15,  6241., 0.0);
+{ 71788} G1A5097                     =       GAH400w +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 71789} GGH5055 +GHO                =       GGH5053 +      GHO                                    : ARR( 0.870E-10,     0., 0.0);
+{ 71790} GGH5055 +GHO                =       GGH505M +      GHO                                    : ARR( 0.274E-10,     0., 0.0);
+{ 71791} GGH5055 +GHO                =       G3G400L +      GCO                                    : ARR( 0.138E-10,     0., 0.0);
+{ 71792} GGH5055 +GNO3               =       G3G400L +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 71793} GGH5055+HV               =       GHD400K +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 71794} GGH5055+HV               =       G1G505H +      GHO                                    :  0.100E+01*SUN;
+{ 71795} GGH5055+HV               =       G1G507z +      GHO                                    :  0.100E+01*SUN;
+{ 71796} GGH5055+HV               =       G3G400L +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 71797} GGH5055+HV               =       GGH400v +      GCO                                    :  0.100E+01*SUN;
+{ 71798} GGH5055+HV               =       GGH3008 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 71799} G1G507z                     =       GGH3007 +      G3D2000                                : ARR( 0.200E+15,  2403., 0.0);
+{ 71800} GPH505L                     =       G3H505Y +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 71801} GPH505L +GHO                =       GPH505J +      GHO                                    : ARR( 0.846E-10,     0., 0.0);
+{ 71802} GPH505L +GHO                =       GPH505W +      GHO                                    : ARR( 0.267E-10,     0., 0.0);
+{ 71803} GPH505L +GHO                =       G3P400L +      GCO                                    : ARR( 0.134E-10,     0., 0.0);
+{ 71804} GPH505L +GNO3               =       G3P400L +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 71805} GPH505L+HV               =       G3H505Y +      GNO2                                   :  0.100E+01*SUN;
+{ 71806} GPH505L+HV               =       G1P506z +      GHO                                    :  0.100E+01*SUN;
+{ 71807} GPH505L+HV               =       G1P50AF +      GHO                                    :  0.100E+01*SUN;
+{ 71808} GPH505L+HV               =       G3P400L +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 71809} GPH505L+HV               =       GPH400w +      GCO                                    :  0.100E+01*SUN;
+{ 71810} GPH505L+HV               =       GPH3008 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 71811} G3H505Y +GHO2               =  0.800GGH5055 + 0.200GAH505f + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 71812} G3H505Y +GNO                =       GHD400K +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 71813} G3H505Y +GNO2               =       GPH505L                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 71814} G3H505Y +GNO3               =       GHD400K +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 71815} G3H505Y +MEPERO             =  0.685GHD400K + 0.315GAH505f + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71816} G3H505Y +PERO1              =  0.800GHD400K + 0.200GAH505f + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71817} G3H505Y +PERO2              =  0.750GHD400K + 0.250GAH505f + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71818} G3H505Y +PERO3              =  0.800GHD400K + 0.200GAH505f + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71819} G3H505Y +PERO5              =  0.650GHD400K + 0.350GAH505f + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71820} G3H505Y +PERO6              =  0.650GHD400K + 0.350GAH505f + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71821} G3H505Y +PERO9              =       GHD400K +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 71822} G1P50AF                     =       GPH3007 +      G3D2000                                : ARR( 0.200E+15,  2403., 0.0);
+{ 71823} GGG500T +GHO                =       G2G505X                                               : ARR( 0.880E-12,     0., 0.0);
+{ 71824} GGG500T +GHO                =       GGG500J +      GHO2                                   : ARR( 0.210E-11,     0., 0.0);
+{ 71825} GGG500T +GHO                =       G3G500g                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 71826} GGG500T +GHO                =       G3G500i                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 71827} GGG500T+HV               =       G2G400l +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 71828} GGG500T+HV               =       G1G5081 +      GNO2                                   :  0.100E+01*SUN;
+{ 71829} GGG500T+HV               =       GGD4001 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 71830} G2G505X +GNO                =       G1G5082 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 71831} G2G505X +GNO                =       GGG500z                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 71832} G2G505X +GHO2               =       GGG5011                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 71833} G2G505X +GNO3               =       G1G5082 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 71834} G2G505X +MEPERO             =  0.340G1G5082 + 0.330GGG500f + 0.330GGG500m                 : ARR( 0.565E-13,  -845., 0.0);
+{ 71835} G2G505X +PERO1              =  0.460G1G5082 + 0.270GGG500f + 0.270GGG500m                 : ARR( 0.434E-13,  -900., 0.0);
+{ 71836} G2G505X +PERO2              =  0.400G1G5082 + 0.300GGG500f + 0.300GGG500m                 : ARR( 0.162E-13, -1400., 0.0);
+{ 71837} G2G505X +PERO3              =  0.460G1G5082 + 0.270GGG500f + 0.270GGG500m                 : ARR( 0.488E-13, -1250., 0.0);
+{ 71838} G2G505X +PERO5              =  0.460G1G5082 + 0.270GGG500f + 0.270GGG500m                 : ARR( 0.183E-11,   450., 0.0);
+{ 71839} G2G505X +PERO6              =  0.300G1G5082 + 0.350GGG500f + 0.350GGG500m                 : ARR( 0.168E-13, -1300., 0.0);
+{ 71840} G2G505X +PERO9              =  0.650G1G5082 + 0.350GGG500m                                : ARR( 0.100E-10,     0., 0.0);
+{ 71841} G1G5081                     =       GGD3000 +      GGD2000 +      GHO2                    : ARR( 0.200E+15,  5475., 0.0);
+{ 71842} G1G5081                     =       GGD4001 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 71843} G1G5082                     =       GGN3005 +      GGD2000 +      GHO2                    : ARR( 0.200E+15,  5475., 0.0);
+{ 71844} G1G5082                     =       GGN400W +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 71845} GAG5012 +GHO                =       G2A506Y                                               : ARR( 0.657E-12,     0., 0.0);
+{ 71846} GAG5012 +GHO                =       GAG500e +      GHO2                                   : ARR( 0.212E-11,     0., 0.0);
+{ 71847} GAG5012 +GHO                =       G3A500p                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 71848} GAG5012 +GHO                =       G2G400l +      GCO2                                   : ARR( 0.536E-12,     0., 0.0);
+{ 71849} GAG5012+HV               =       G1A506U +      GNO2                                   :  0.100E+01*SUN;
+{ 71850} GAG5012+HV               =       GAD4001 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 71851} G2A506Y +GNO                =       G1A5098 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 71852} G2A506Y +GNO                =       GAG501m                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 71853} G2A506Y +GHO2               =       GAG501w                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 71854} G2A506Y +GNO3               =       G1A5098 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 71855} G2A506Y +MEPERO             =  0.340G1A5098 + 0.330GAG501D + 0.330GAG501x                 : ARR( 0.565E-13,  -845., 0.0);
+{ 71856} G2A506Y +PERO1              =  0.460G1A5098 + 0.270GAG501D + 0.270GAG501x                 : ARR( 0.434E-13,  -900., 0.0);
+{ 71857} G2A506Y +PERO2              =  0.400G1A5098 + 0.300GAG501D + 0.300GAG501x                 : ARR( 0.162E-13, -1400., 0.0);
+{ 71858} G2A506Y +PERO3              =  0.460G1A5098 + 0.270GAG501D + 0.270GAG501x                 : ARR( 0.488E-13, -1250., 0.0);
+{ 71859} G2A506Y +PERO5              =  0.460G1A5098 + 0.270GAG501D + 0.270GAG501x                 : ARR( 0.183E-11,   450., 0.0);
+{ 71860} G2A506Y +PERO6              =  0.300G1A5098 + 0.350GAG501D + 0.350GAG501x                 : ARR( 0.168E-13, -1300., 0.0);
+{ 71861} G2A506Y +PERO9              =  0.650G1A5098 + 0.350GAG501x                                : ARR( 0.100E-10,     0., 0.0);
+{ 71862} G1A5098                     =       GCO     +      GGN400W +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 71863} G1A5098                     =       GAD2000 +      GGN3005 +      GHO2                    : ARR( 0.200E+15,  5475., 0.0);
+{ 71864} GPG5014                     =       G3G500g +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 71865} GPG5014 +GHO                =       GPG500b +      GHO2                                   : ARR( 0.213E-11,     0., 0.0);
+{ 71866} GPG5014 +GHO                =       G2P507H                                               : ARR( 0.890E-12,     0., 0.0);
+{ 71867} GPG5014 +GHO                =       G3P500q                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 71868} GPG5014+HV               =       GPD4001 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 71869} GPG5014+HV               =       G1P50AG +      GNO2                                   :  0.100E+01*SUN;
+{ 71870} GPG5014+HV               =       G3G500g +      GNO2                                   :  0.100E+01*SUN;
+{ 71871} G2P507H +GNO                =       G1P50AH +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 71872} G2P507H +GNO                =       GPG501m                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 71873} G2P507H +GHO2               =       GPG501w                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 71874} G2P507H +GNO3               =       G1P50AH +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 71875} G2P507H +MEPERO             =  0.340G1P50AH + 0.330GPG501C + 0.330GPG501Z                 : ARR( 0.565E-13,  -845., 0.0);
+{ 71876} G2P507H +PERO1              =  0.460G1P50AH + 0.270GPG501C + 0.270GPG501Z                 : ARR( 0.434E-13,  -900., 0.0);
+{ 71877} G2P507H +PERO2              =  0.400G1P50AH + 0.300GPG501C + 0.300GPG501Z                 : ARR( 0.162E-13, -1400., 0.0);
+{ 71878} G2P507H +PERO3              =  0.460G1P50AH + 0.270GPG501C + 0.270GPG501Z                 : ARR( 0.488E-13, -1250., 0.0);
+{ 71879} G2P507H +PERO5              =  0.460G1P50AH + 0.270GPG501C + 0.270GPG501Z                 : ARR( 0.183E-11,   450., 0.0);
+{ 71880} G2P507H +PERO6              =  0.300G1P50AH + 0.350GPG501C + 0.350GPG501Z                 : ARR( 0.168E-13, -1300., 0.0);
+{ 71881} G2P507H +PERO9              =  0.650G1P50AH + 0.350GPG501Z                                : ARR( 0.100E-10,     0., 0.0);
+{ 71882} G1P50AG                     =       GCO     +      GPD4001 +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 71883} G1P50AG                     =       GGD2000 +      GPD3000 +      GHO2                    : ARR( 0.200E+15,  5475., 0.0);
+{ 71884} G1P50AH                     =       GGN3005 +      GPD2000 +      GHO2                    : ARR( 0.200E+15,  5475., 0.0);
+{ 71885} G1P50AH                     =       GGN400W +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 71886} GGH5056 +GHO                =       GGN502G +      GHO                                    : ARR( 0.509E-11,     0., 0.0);
+{ 71887} GGH5056 +GHO                =       G2G505Y                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 71888} GGH5056 +GHO                =       G3H504i                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 71889} GGH5056+HV               =       G1G5083 +      GNO2                                   :  0.100E+01*SUN;
+{ 71890} GGH5056+HV               =       G1G506N +      GHO                                    :  0.100E+01*SUN;
+{ 71891} GGH5056+HV               =       G3H3002 +      GCO     +      GHO2    +      GCO      :  0.100E+01*SUN;
+{ 71892} GGH5056+HV               =       GAH400S +      GCO2                                   :  0.100E+01*SUN;
+{ 71893} G2G505Y +GNO                =       G1G506N +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 71894} G2G505Y +GNO                =       GGN502X                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 71895} G2G505Y +GHO2               =       GGH5056                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 71896} G2G505Y +GNO3               =       G1G506N +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 71897} G2G505Y +MEPERO             =  0.340G1G506N + 0.330GGN501T + 0.330GGN502G                 : ARR( 0.565E-13,  -845., 0.0);
+{ 71898} G2G505Y +PERO1              =  0.460G1G506N + 0.270GGN501T + 0.270GGN502G                 : ARR( 0.434E-13,  -900., 0.0);
+{ 71899} G2G505Y +PERO2              =  0.400G1G506N + 0.300GGN501T + 0.300GGN502G                 : ARR( 0.162E-13, -1400., 0.0);
+{ 71900} G2G505Y +PERO3              =  0.460G1G506N + 0.270GGN501T + 0.270GGN502G                 : ARR( 0.488E-13, -1250., 0.0);
+{ 71901} G2G505Y +PERO5              =  0.460G1G506N + 0.270GGN501T + 0.270GGN502G                 : ARR( 0.183E-11,   450., 0.0);
+{ 71902} G2G505Y +PERO6              =  0.300G1G506N + 0.350GGN501T + 0.350GGN502G                 : ARR( 0.168E-13, -1300., 0.0);
+{ 71903} G2G505Y +PERO9              =  0.650G1G506N + 0.350GGN502G                                : ARR( 0.100E-10,     0., 0.0);
+{ 71904} G1G5083 +OXYGEN             =       GGH505Y +      GHO2                                   : ARR( 0.600E-13,   318., 0.0);
+{ 71905} G1G5083                     =       GGD4008 +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5364., 0.0);
+{ 71906} GGN502m +GHO                =       G3G501R                                               : ARR( 0.453E-11,     0., 0.0);
+{ 71907} GGN502m +GHO                =       G3N502j                                               : ARR( 0.207E-11,  -190., 0.0);
+{ 71908} GGN502m +GNO3               =       G3G501R +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 71909} GGN502m+HV               =       GND400J +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 71910} GGN502m+HV               =       G1G505N +      GNO2                                   :  0.100E+01*SUN;
+{ 71911} GGN502m+HV               =       G1G5084 +      GNO2                                   :  0.100E+01*SUN;
+{ 71912} GGN502m+HV               =       GGN400W +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 71913} GGN502m+HV               =       GGD3002 +      GND2000 +      GHO2    +      GNO2     :  0.100E+01*SUN;
+{ 71914} G3G501R +GHO2               =  0.800GGG500z + 0.200GAG501m + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 71915} G3G501R +GNO                =       GGN400W + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 71916} G3G501R +GNO2               =       GPG501m                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 71917} G3G501R +GNO3               =       GGN400W + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 71918} G3G501R +MEPERO             =  0.685GGN400W + 0.315GAG501m + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71919} G3G501R +PERO1              =  0.800GGN400W + 0.200GAG501m + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71920} G3G501R +PERO2              =  0.750GGN400W + 0.250GAG501m + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71921} G3G501R +PERO3              =  0.800GGN400W + 0.200GAG501m + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71922} G3G501R +PERO5              =  0.650GGN400W + 0.350GAG501m + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71923} G3G501R +PERO6              =  0.650GGN400W + 0.350GAG501m + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71924} G3G501R +PERO9              =       GGN400W +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 71925} G1G5084                     =       GGN3005 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  5032., 0.0);
+{ 71926} G1G5084                     =       GGN400W +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 71927} GGH5057 +GHO                =       GGH505a +      GHO2                                   : ARR( 0.656E-11,     0., 0.0);
+{ 71928} GGH5057 +GHO                =       GGN502n +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 71929} GGH5057 +GHO                =       G3G501S                                               : ARR( 0.208E-10,     0., 0.0);
+{ 71930} GGH5057 +GHO                =       G3H504g                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 71931} GGH5057 +GHO                =       G2G505Z                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 71932} GGH5057 +GNO3               =       G3G501S +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 71933} GGH5057+HV               =       GHD400L +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 71934} GGH5057+HV               =       G1G5085 +      GNO2                                   :  0.100E+01*SUN;
+{ 71935} GGH5057+HV               =       G1G5084 +      GHO                                    :  0.100E+01*SUN;
+{ 71936} GGH5057+HV               =       GGN400W +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 71937} G3G501S +GHO2               =  0.800GGG5011 + 0.200GAG501w + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 71938} G3G501S +GNO                =       GGN400W +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 71939} G3G501S +GNO2               =       GPG501w                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 71940} G3G501S +GNO3               =       GGN400W +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 71941} G3G501S +MEPERO             =  0.685GGN400W + 0.315GAG501w + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71942} G3G501S +PERO1              =  0.800GGN400W + 0.200GAG501w + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71943} G3G501S +PERO2              =  0.750GGN400W + 0.250GAG501w + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71944} G3G501S +PERO3              =  0.800GGN400W + 0.200GAG501w + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71945} G3G501S +PERO5              =  0.650GGN400W + 0.350GAG501w + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71946} G3G501S +PERO6              =  0.650GGN400W + 0.350GAG501w + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 71947} G3G501S +PERO9              =       GGN400W +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 71948} G2G505Z +GNO                =       G1G5084 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 71949} G2G505Z +GNO                =       GGN502m                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 71950} G2G505Z +GHO2               =       GGH5057                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 71951} G2G505Z +GNO3               =       G1G5084 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 71952} G2G505Z +MEPERO             =  0.340G1G5084 + 0.330GGN502f + 0.330GGN502n                 : ARR( 0.565E-13,  -845., 0.0);
+{ 71953} G2G505Z +PERO1              =  0.460G1G5084 + 0.270GGN502f + 0.270GGN502n                 : ARR( 0.434E-13,  -900., 0.0);
+{ 71954} G2G505Z +PERO2              =  0.400G1G5084 + 0.300GGN502f + 0.300GGN502n                 : ARR( 0.162E-13, -1400., 0.0);
+{ 71955} G2G505Z +PERO3              =  0.460G1G5084 + 0.270GGN502f + 0.270GGN502n                 : ARR( 0.488E-13, -1250., 0.0);
+{ 71956} G2G505Z +PERO5              =  0.460G1G5084 + 0.270GGN502f + 0.270GGN502n                 : ARR( 0.183E-11,   450., 0.0);
+{ 71957} G2G505Z +PERO6              =  0.300G1G5084 + 0.350GGN502f + 0.350GGN502n                 : ARR( 0.168E-13, -1300., 0.0);
+{ 71958} G2G505Z +PERO9              =  0.650G1G5084 + 0.350GGN502n                                : ARR( 0.100E-10,     0., 0.0);
+{ 71959} G1G5085                     =       GCO     +      GHD400L +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 71960} G1G5085                     =       GGD2000 +      GHD3004 +      GHO2                    : ARR( 0.200E+15,  5475., 0.0);
+{ 71961} GGN502n +GHO                =       GGN502l +      GHO2                                   : ARR( 0.128E-11,     0., 0.0);
+{ 71962} GGN502n +GHO                =       G3G400C +      GCO                                    : ARR( 0.129E-10,     0., 0.0);
+{ 71963} GGN502n +GHO                =       G3N502k                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 71964} GGN502n +GNO3               =       G3G400C +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 71965} GGN502n+HV               =       GDD4004 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 71966} GGN502n+HV               =       G1G505O +      GNO2                                   :  0.100E+01*SUN;
+{ 71967} GGN502n+HV               =       G3G400C +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 71968} GGN502n+HV               =       GGN400W +      GCO                                    :  0.100E+01*SUN;
+{ 71969} GGN502n+HV               =       GGN3002 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 71970} GGG500U +GHO                =       GGG500K +      GHO2                                   : ARR( 0.105E-10,     0., 0.0);
+{ 71971} GGG500U +GHO                =       GGG500I +      GHO                                    : ARR( 0.257E-10,     0., 0.0);
+{ 71972} GGG500U +GHO                =       G3G500h                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 71973} GGG500U +GHO                =       G2G505a                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 71974} GGG500U +GHO                =       G3G500u                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 71975} GGG500U+HV               =       G2G400m +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 71976} GGG500U+HV               =       G1G5081 +      GHO                                    :  0.100E+01*SUN;
+{ 71977} GGG500U+HV               =       GGD4001 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 71978} G2G505a +GNO                =       G1G5081 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 71979} G2G505a +GNO                =       GGG500T                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 71980} G2G505a +GHO2               =       GGG500U                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 71981} G2G505a +GNO3               =       G1G5081 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 71982} G2G505a +MEPERO             =  0.340G1G5081 + 0.330GGG5002 + 0.330GGG500I                 : ARR( 0.565E-13,  -845., 0.0);
+{ 71983} G2G505a +PERO1              =  0.460G1G5081 + 0.270GGG5002 + 0.270GGG500I                 : ARR( 0.434E-13,  -900., 0.0);
+{ 71984} G2G505a +PERO2              =  0.400G1G5081 + 0.300GGG5002 + 0.300GGG500I                 : ARR( 0.162E-13, -1400., 0.0);
+{ 71985} G2G505a +PERO3              =  0.460G1G5081 + 0.270GGG5002 + 0.270GGG500I                 : ARR( 0.488E-13, -1250., 0.0);
+{ 71986} G2G505a +PERO5              =  0.460G1G5081 + 0.270GGG5002 + 0.270GGG500I                 : ARR( 0.183E-11,   450., 0.0);
+{ 71987} G2G505a +PERO6              =  0.300G1G5081 + 0.350GGG5002 + 0.350GGG500I                 : ARR( 0.168E-13, -1300., 0.0);
+{ 71988} G2G505a +PERO9              =  0.650G1G5081 + 0.350GGG500I                                : ARR( 0.100E-10,     0., 0.0);
+{ 71989} GAG5013 +GHO                =       GAG500f +      GHO2                                   : ARR( 0.106E-10,     0., 0.0);
+{ 71990} GAG5013 +GHO                =       GAG500a +      GHO                                    : ARR( 0.259E-10,     0., 0.0);
+{ 71991} GAG5013 +GHO                =       G2A504l                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 71992} GAG5013 +GHO                =       G3A5017                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 71993} GAG5013+HV               =       G1A506U +      GHO                                    :  0.100E+01*SUN;
+{ 71994} GAG5013+HV               =       GAD4001 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 71995} GPG5015                     =       G3G500h +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 71996} GPG5015 +GHO                =       GPG500Z +      GHO                                    : ARR( 0.257E-10,     0., 0.0);
+{ 71997} GPG5015 +GHO                =       GPG500c +      GHO2                                   : ARR( 0.105E-10,     0., 0.0);
+{ 71998} GPG5015 +GHO                =       G3P5015                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 71999} GPG5015 +GHO                =       G2P507I                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 72000} GPG5015+HV               =       GPD4001 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 72001} GPG5015+HV               =       G1P50AG +      GHO                                    :  0.100E+01*SUN;
+{ 72002} GPG5015+HV               =       G3G500h +      GNO2                                   :  0.100E+01*SUN;
+{ 72003} G2P507I +GNO                =       G1P50AG +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 72004} G2P507I +GNO                =       GPG5014                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 72005} G2P507I +GHO2               =       GPG5015                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 72006} G2P507I +GNO3               =       G1P50AG +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 72007} G2P507I +MEPERO             =  0.340G1P50AG + 0.330GPG5005 + 0.330GPG500Z                 : ARR( 0.565E-13,  -845., 0.0);
+{ 72008} G2P507I +PERO1              =  0.460G1P50AG + 0.270GPG5005 + 0.270GPG500Z                 : ARR( 0.434E-13,  -900., 0.0);
+{ 72009} G2P507I +PERO2              =  0.400G1P50AG + 0.300GPG5005 + 0.300GPG500Z                 : ARR( 0.162E-13, -1400., 0.0);
+{ 72010} G2P507I +PERO3              =  0.460G1P50AG + 0.270GPG5005 + 0.270GPG500Z                 : ARR( 0.488E-13, -1250., 0.0);
+{ 72011} G2P507I +PERO5              =  0.460G1P50AG + 0.270GPG5005 + 0.270GPG500Z                 : ARR( 0.183E-11,   450., 0.0);
+{ 72012} G2P507I +PERO6              =  0.300G1P50AG + 0.350GPG5005 + 0.350GPG500Z                 : ARR( 0.168E-13, -1300., 0.0);
+{ 72013} G2P507I +PERO9              =  0.650G1P50AG + 0.350GPG500Z                                : ARR( 0.100E-10,     0., 0.0);
+{ 72014} GAN502q +GHO                =       GAN502n +      GHO2                                   : ARR( 0.434E-12,     0., 0.0);
+{ 72015} GAN502q +GHO                =       G3A501e                                               : ARR( 0.437E-11,     0., 0.0);
+{ 72016} GAN502q +GHO                =       GND400J +      GNO2    +      GCO2                    : ARR( 0.547E-12,     0., 0.0);
+{ 72017} GAN502q +GNO3               =       G3A501e +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 72018} GAN502q+HV               =       G1A506Y +      GNO2                                   :  0.100E+01*SUN;
+{ 72019} GAN502q+HV               =       G1A5099 +      GNO2                                   :  0.100E+01*SUN;
+{ 72020} GAN502q+HV               =       GAN400P +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 72021} GAN502q+HV               =       GAD3002 +      GND2000 +      GHO2    +      GNO2     :  0.100E+01*SUN;
+{ 72022} G3A501e +GHO2               =  0.800GAG501m + 0.200GAA5013 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 72023} G3A501e +GNO                =       GAN400P + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 72024} G3A501e +GNO2               =       GPA501q                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 72025} G3A501e +GNO3               =       GAN400P + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 72026} G3A501e +MEPERO             =  0.685GAN400P + 0.315GAA5013 + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72027} G3A501e +PERO1              =  0.800GAN400P + 0.200GAA5013 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72028} G3A501e +PERO2              =  0.750GAN400P + 0.250GAA5013 + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72029} G3A501e +PERO3              =  0.800GAN400P + 0.200GAA5013 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72030} G3A501e +PERO5              =  0.650GAN400P + 0.350GAA5013 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72031} G3A501e +PERO6              =  0.650GAN400P + 0.350GAA5013 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72032} G3A501e +PERO9              =       GAN400P +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 72033} G1A5099                     =       GAN3006 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  5032., 0.0);
+{ 72034} G1A5099                     =       GAN400P +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 72035} GAN502r +GHO                =       GAN502o +      GHO2                                   : ARR( 0.133E-11,     0., 0.0);
+{ 72036} GAN502r +GHO                =       G3A501f                                               : ARR( 0.441E-11,     0., 0.0);
+{ 72037} GAN502r +GHO                =       G3N400T +      GCO2                                   : ARR( 0.552E-12,     0., 0.0);
+{ 72038} GAN502r +GNO3               =       G3A501f +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 72039} GAN502r+HV               =       GND400J +      GCO2                                   :  0.100E+01*SUN;
+{ 72040} GAN502r+HV               =       G1A506T +      GNO2                                   :  0.100E+01*SUN;
+{ 72041} GAN502r+HV               =       GAD4004 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 72042} G3A501f +GHO2               =  0.800GAG501x + 0.200GAA5012 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 72043} G3A501f +GNO                =       GAD4004 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 72044} G3A501f +GNO2               =       GPA501t                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 72045} G3A501f +GNO3               =       GAD4004 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 72046} G3A501f +MEPERO             =  0.685GAD4004 + 0.315GAA5012 + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72047} G3A501f +PERO1              =  0.800GAD4004 + 0.200GAA5012 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72048} G3A501f +PERO2              =  0.750GAD4004 + 0.250GAA5012 + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72049} G3A501f +PERO3              =  0.800GAD4004 + 0.200GAA5012 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72050} G3A501f +PERO5              =  0.650GAD4004 + 0.350GAA5012 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72051} G3A501f +PERO6              =  0.650GAD4004 + 0.350GAA5012 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72052} G3A501f +PERO9              =       GAD4004 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 72053} GAH505E +GHO                =       GAH504v +      GHO2                                   : ARR( 0.206E-10,     0., 0.0);
+{ 72054} GAH505E +GHO                =       GAD500Q +      GHO                                    : ARR( 0.825E-10,     0., 0.0);
+{ 72055} GAH505E +GHO                =       G3A501g                                               : ARR( 0.215E-10,     0., 0.0);
+{ 72056} GAH505E +GNO3               =       G3A501g +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 72057} GAH505E+HV               =       GHD400L +      GCO2                                   :  0.100E+01*SUN;
+{ 72058} GAH505E+HV               =       G1A506T +      GHO                                    :  0.100E+01*SUN;
+{ 72059} GAH505E+HV               =       GAD4004 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 72060} G3A501g +GHO2               =  0.800GAG501y + 0.200GAA501A + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 72061} G3A501g +GNO                =       GAD4004 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 72062} G3A501g +GNO2               =       GPA5021                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 72063} G3A501g +GNO3               =       GAD4004 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 72064} G3A501g +MEPERO             =  0.685GAD4004 + 0.315GAA501A + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72065} G3A501g +PERO1              =  0.800GAD4004 + 0.200GAA501A + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72066} G3A501g +PERO2              =  0.750GAD4004 + 0.250GAA501A + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72067} G3A501g +PERO3              =  0.800GAD4004 + 0.200GAA501A + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72068} G3A501g +PERO5              =  0.650GAD4004 + 0.350GAA501A + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72069} G3A501g +PERO6              =  0.650GAD4004 + 0.350GAA501A + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72070} G3A501g +PERO9              =       GAD4004 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 72071} GAD500Q +GHO                =       GAD500P +      GHO2                                   : ARR( 0.398E-11,     0., 0.0);
+{ 72072} GAD500Q +GHO                =       G3A4007 +      GCO                                    : ARR( 0.132E-10,     0., 0.0);
+{ 72073} GAD500Q +GNO3               =       G3A4007 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 72074} GAD500Q+HV               =       GDD4004 +      GCO2                                   :  0.100E+01*SUN;
+{ 72075} GAD500Q+HV               =       G3A4007 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 72076} GAD500Q+HV               =       GAD4004 +      GCO                                    :  0.100E+01*SUN;
+{ 72077} GAD500Q+HV               =       GAK3001 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 72078} GAG5014 +GHO                =       GAG500d +      GHO2                                   : ARR( 0.661E-11,     0., 0.0);
+{ 72079} GAG5014 +GHO                =       G2A506Z                                               : ARR( 0.288E-11,     0., 0.0);
+{ 72080} GAG5014 +GHO                =       G3A500n                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 72081} GAG5014+HV               =       GGD4001 +      GCO2                                   :  0.100E+01*SUN;
+{ 72082} GAG5014+HV               =       G2A400H +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 72083} G2A506Z +GNO                =       G1A509A +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 72084} G2A506Z +GNO                =       GAG501x                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 72085} G2A506Z +GHO2               =       GAG501y                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 72086} G2A506Z +GNO3               =       G1A509A +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 72087} G2A506Z +MEPERO             =  0.340G1A509A + 0.330GAG501Q + 0.330GAG501a                 : ARR( 0.565E-13,  -845., 0.0);
+{ 72088} G2A506Z +PERO1              =  0.460G1A509A + 0.270GAG501Q + 0.270GAG501a                 : ARR( 0.434E-13,  -900., 0.0);
+{ 72089} G2A506Z +PERO2              =  0.400G1A509A + 0.300GAG501Q + 0.300GAG501a                 : ARR( 0.162E-13, -1400., 0.0);
+{ 72090} G2A506Z +PERO3              =  0.460G1A509A + 0.270GAG501Q + 0.270GAG501a                 : ARR( 0.488E-13, -1250., 0.0);
+{ 72091} G2A506Z +PERO5              =  0.460G1A509A + 0.270GAG501Q + 0.270GAG501a                 : ARR( 0.183E-11,   450., 0.0);
+{ 72092} G2A506Z +PERO6              =  0.300G1A509A + 0.350GAG501Q + 0.350GAG501a                 : ARR( 0.168E-13, -1300., 0.0);
+{ 72093} G2A506Z +PERO9              =  0.650G1A509A + 0.350GAG501a                                : ARR( 0.100E-10,     0., 0.0);
+{ 72094} G1A509A                     =       GAD3002 +      GGD2000 +      GHO2                    : ARR( 0.200E+15,  5202., 0.0);
+{ 72095} G1A509A                     =       GAD4004 +      GCO     +      GHO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 72096} GAA500f +GHO                =       G2A506a                                               : ARR( 0.205E-11,     0., 0.0);
+{ 72097} GAA500f +GHO                =       GAA500T +      GHO2                                   : ARR( 0.638E-11,     0., 0.0);
+{ 72098} GAA500f +GHO                =       G2A400H +      GCO2                                   : ARR( 0.528E-12,     0., 0.0);
+{ 72099} GAA500f +GHO                =       G3A4004 +      GCO2                                   : ARR( 0.528E-12,     0., 0.0);
+{ 72100} GAA500f+HV               =       GAD4001 +      GCO2                                   :  0.100E+01*SUN;
+{ 72101} G2A506a +GNO                =       G1A509B +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 72102} G2A506a +GNO                =       GAA5012                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 72103} G2A506a +GHO2               =       GAA501A                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 72104} G2A506a +GNO3               =       G1A509B +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 72105} G2A506a +MEPERO             =  0.340G1A509B + 0.330GAA500p + 0.330GAA501B                 : ARR( 0.565E-13,  -845., 0.0);
+{ 72106} G2A506a +PERO1              =  0.460G1A509B + 0.270GAA500p + 0.270GAA501B                 : ARR( 0.434E-13,  -900., 0.0);
+{ 72107} G2A506a +PERO2              =  0.400G1A509B + 0.300GAA500p + 0.300GAA501B                 : ARR( 0.162E-13, -1400., 0.0);
+{ 72108} G2A506a +PERO3              =  0.460G1A509B + 0.270GAA500p + 0.270GAA501B                 : ARR( 0.488E-13, -1250., 0.0);
+{ 72109} G2A506a +PERO5              =  0.460G1A509B + 0.270GAA500p + 0.270GAA501B                 : ARR( 0.183E-11,   450., 0.0);
+{ 72110} G2A506a +PERO6              =  0.300G1A509B + 0.350GAA500p + 0.350GAA501B                 : ARR( 0.168E-13, -1300., 0.0);
+{ 72111} G2A506a +PERO9              =  0.650G1A509B + 0.350GAA501B                                : ARR( 0.100E-10,     0., 0.0);
+{ 72112} G1A509B                     =       GAD3002 +      GAD2000 +      GHO2                    : ARR( 0.200E+15,  5202., 0.0);
+{ 72113} G1A509B                     =       GAD4004 +      GCO     +      GHO                     : ARR( 0.200E+15,  4342., 0.0);
+{ 72114} GPA501A                     =       G3A500n +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 72115} GPA501A +GHO                =       GPA500m +      GHO2                                   : ARR( 0.637E-11,     0., 0.0);
+{ 72116} GPA501A +GHO                =       G2P507J                                               : ARR( 0.277E-11,     0., 0.0);
+{ 72117} GPA501A +GHO                =       G3P4004 +      GCO2                                   : ARR( 0.528E-12,     0., 0.0);
+{ 72118} GPA501A+HV               =       GPD4001 +      GCO2                                   :  0.100E+01*SUN;
+{ 72119} GPA501A+HV               =       G3A500n +      GNO2                                   :  0.100E+01*SUN;
+{ 72120} G2P507J +GNO                =       G1P50AI +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 72121} G2P507J +GNO                =       GPA501t                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 72122} G2P507J +GHO2               =       GPA5021                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 72123} G2P507J +GNO3               =       G1P50AI +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 72124} G2P507J +MEPERO             =  0.340G1P50AI + 0.330GPA501S + 0.330GPA501e                 : ARR( 0.565E-13,  -845., 0.0);
+{ 72125} G2P507J +PERO1              =  0.460G1P50AI + 0.270GPA501S + 0.270GPA501e                 : ARR( 0.434E-13,  -900., 0.0);
+{ 72126} G2P507J +PERO2              =  0.400G1P50AI + 0.300GPA501S + 0.300GPA501e                 : ARR( 0.162E-13, -1400., 0.0);
+{ 72127} G2P507J +PERO3              =  0.460G1P50AI + 0.270GPA501S + 0.270GPA501e                 : ARR( 0.488E-13, -1250., 0.0);
+{ 72128} G2P507J +PERO5              =  0.460G1P50AI + 0.270GPA501S + 0.270GPA501e                 : ARR( 0.183E-11,   450., 0.0);
+{ 72129} G2P507J +PERO6              =  0.300G1P50AI + 0.350GPA501S + 0.350GPA501e                 : ARR( 0.168E-13, -1300., 0.0);
+{ 72130} G2P507J +PERO9              =  0.650G1P50AI + 0.350GPA501e                                : ARR( 0.100E-10,     0., 0.0);
+{ 72131} G1P50AI                     =       GAD3002 +      GPD2000 +      GHO2                    : ARR( 0.200E+15,  5202., 0.0);
+{ 72132} G1P50AI                     =       GAD4004 +      GCO     +      GNO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 72133} GAA500g +GHO                =       GAA500S +      GHO2                                   : ARR( 0.109E-10,     0., 0.0);
+{ 72134} GAA500g +GHO                =       GAA500f +      GHO                                    : ARR( 0.196E-10,     0., 0.0);
+{ 72135} GAA500g +GHO                =       G2A504m                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 72136} GAA500g+HV               =       G1A506W +      GHO                                    :  0.100E+01*SUN;
+{ 72137} GPA501B                     =       G3A500o +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 72138} GPA501B +GHO                =       GPA501A +      GHO                                    : ARR( 0.195E-10,     0., 0.0);
+{ 72139} GPA501B +GHO                =       GPA500l +      GHO2                                   : ARR( 0.108E-10,     0., 0.0);
+{ 72140} GPA501B +GHO                =       G2P5055                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 72141} GPA501B+HV               =       G1P5071 +      GHO                                    :  0.100E+01*SUN;
+{ 72142} GPA501B+HV               =       G3A500o +      GNO2                                   :  0.100E+01*SUN;
+{ 72143} GPA501C                     =       G3A5017 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 72144} GPA501C +GHO                =       GPA500o +      GHO2                                   : ARR( 0.106E-10,     0., 0.0);
+{ 72145} GPA501C +GHO                =       GPA500j +      GHO                                    : ARR( 0.260E-10,     0., 0.0);
+{ 72146} GPA501C +GHO                =       G2P5056                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 72147} GPA501C+HV               =       G1P5072 +      GHO                                    :  0.100E+01*SUN;
+{ 72148} GPA501C+HV               =       G3A5017 +      GNO2                                   :  0.100E+01*SUN;
+{ 72149} GAH505F +GHO                =       GAH504u +      GHO2                                   : ARR( 0.662E-11,     0., 0.0);
+{ 72150} GAH505F +GHO                =       GAN502s +      GHO                                    : ARR( 0.254E-10,     0., 0.0);
+{ 72151} GAH505F +GHO                =       G3A501h                                               : ARR( 0.210E-10,     0., 0.0);
+{ 72152} GAH505F +GHO                =       G2A506b                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 72153} GAH505F +GNO3               =       G3A501h +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 72154} GAH505F+HV               =       G1A509C +      GNO2                                   :  0.100E+01*SUN;
+{ 72155} GAH505F+HV               =       G1A5099 +      GHO                                    :  0.100E+01*SUN;
+{ 72156} GAH505F+HV               =       GAN400P +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 72157} G3A501h +GHO2               =  0.800GAG501n + 0.200GAA5014 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 72158} G3A501h +GNO                =       GAN400P +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 72159} G3A501h +GNO2               =       GPA501r                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 72160} G3A501h +GNO3               =       GAN400P +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 72161} G3A501h +MEPERO             =  0.685GAN400P + 0.315GAA5014 + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72162} G3A501h +PERO1              =  0.800GAN400P + 0.200GAA5014 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72163} G3A501h +PERO2              =  0.750GAN400P + 0.250GAA5014 + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72164} G3A501h +PERO3              =  0.800GAN400P + 0.200GAA5014 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72165} G3A501h +PERO5              =  0.650GAN400P + 0.350GAA5014 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72166} G3A501h +PERO6              =  0.650GAN400P + 0.350GAA5014 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72167} G3A501h +PERO9              =       GAN400P +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 72168} G2A506b +GNO                =       G1A5099 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 72169} G2A506b +GNO                =       GAN502q                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 72170} G2A506b +GHO2               =       GAH505F                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 72171} G2A506b +GNO3               =       G1A5099 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 72172} G2A506b +MEPERO             =  0.340G1A5099 + 0.330GAN502g + 0.330GAN502s                 : ARR( 0.565E-13,  -845., 0.0);
+{ 72173} G2A506b +PERO1              =  0.460G1A5099 + 0.270GAN502g + 0.270GAN502s                 : ARR( 0.434E-13,  -900., 0.0);
+{ 72174} G2A506b +PERO2              =  0.400G1A5099 + 0.300GAN502g + 0.300GAN502s                 : ARR( 0.162E-13, -1400., 0.0);
+{ 72175} G2A506b +PERO3              =  0.460G1A5099 + 0.270GAN502g + 0.270GAN502s                 : ARR( 0.488E-13, -1250., 0.0);
+{ 72176} G2A506b +PERO5              =  0.460G1A5099 + 0.270GAN502g + 0.270GAN502s                 : ARR( 0.183E-11,   450., 0.0);
+{ 72177} G2A506b +PERO6              =  0.300G1A5099 + 0.350GAN502g + 0.350GAN502s                 : ARR( 0.168E-13, -1300., 0.0);
+{ 72178} G2A506b +PERO9              =  0.650G1A5099 + 0.350GAN502s                                : ARR( 0.100E-10,     0., 0.0);
+{ 72179} G1A509C                     =       GCO     +      GHD400L +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 72180} G1A509C                     =       GAD2000 +      GHD3004 +      GHO2                    : ARR( 0.200E+15,  5475., 0.0);
+{ 72181} GAN502s +GHO                =       GAN502p +      GHO2                                   : ARR( 0.133E-11,     0., 0.0);
+{ 72182} GAN502s +GHO                =       G3A4006 +      GCO                                    : ARR( 0.134E-10,     0., 0.0);
+{ 72183} GAN502s +GNO3               =       G3A4006 +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 72184} GAN502s+HV               =       G1A506Z +      GNO2                                   :  0.100E+01*SUN;
+{ 72185} GAN502s+HV               =       G3A4006 +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 72186} GAN502s+HV               =       GAN400P +      GCO                                    :  0.100E+01*SUN;
+{ 72187} GAN502s+HV               =       GAN3002 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 72188} GAG5015 +GHO                =       GAG5014 +      GHO                                    : ARR( 0.194E-10,     0., 0.0);
+{ 72189} GAG5015 +GHO                =       GAG500c +      GHO2                                   : ARR( 0.107E-10,     0., 0.0);
+{ 72190} GAG5015 +GHO                =       G2A506c                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 72191} GAG5015 +GHO                =       G3A500o                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 72192} GAG5015+HV               =       G1A508Z +      GHO                                    :  0.100E+01*SUN;
+{ 72193} GAG5015+HV               =       G2A400w +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 72194} G2A506c +GNO                =       G1A508Z +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 72195} G2A506c +GNO                =       GAG500l                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 72196} G2A506c +GHO2               =       GAG5015                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 72197} G2A506c +GNO3               =       G1A508Z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 72198} G2A506c +MEPERO             =  0.340G1A508Z + 0.330GAG500G + 0.330GAG5014                 : ARR( 0.565E-13,  -845., 0.0);
+{ 72199} G2A506c +PERO1              =  0.460G1A508Z + 0.270GAG500G + 0.270GAG5014                 : ARR( 0.434E-13,  -900., 0.0);
+{ 72200} G2A506c +PERO2              =  0.400G1A508Z + 0.300GAG500G + 0.300GAG5014                 : ARR( 0.162E-13, -1400., 0.0);
+{ 72201} G2A506c +PERO3              =  0.460G1A508Z + 0.270GAG500G + 0.270GAG5014                 : ARR( 0.488E-13, -1250., 0.0);
+{ 72202} G2A506c +PERO5              =  0.460G1A508Z + 0.270GAG500G + 0.270GAG5014                 : ARR( 0.183E-11,   450., 0.0);
+{ 72203} G2A506c +PERO6              =  0.300G1A508Z + 0.350GAG500G + 0.350GAG5014                 : ARR( 0.168E-13, -1300., 0.0);
+{ 72204} G2A506c +PERO9              =  0.650G1A508Z + 0.350GAG5014                                : ARR( 0.100E-10,     0., 0.0);
+{ 72205} GPA501D                     =       G3A500y +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 72206} GPA501D +GHO                =       GPA501t +      GHO2                                   : ARR( 0.488E-11,     0., 0.0);
+{ 72207} GPA501D +GHO                =       GPA500q +      GHO2                                   : ARR( 0.216E-11,     0., 0.0);
+{ 72208} GPA501D +GHO                =       GPN400P +      GHO2    +      GCO2                    : ARR( 0.545E-12,     0., 0.0);
+{ 72209} GPA501D+HV               =       G1P5073 +      GNO2                                   :  0.100E+01*SUN;
+{ 72210} GPA501D+HV               =       G3A500y +      GNO2                                   :  0.100E+01*SUN;
+{ 72211} GPA501E                     =       G3A5011 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 72212} GPA501E +GHO                =       GPA5021 +      GHO2                                   : ARR( 0.473E-11,     0., 0.0);
+{ 72213} GPA501E +GHO                =       GPA500r +      GHO2                                   : ARR( 0.105E-10,     0., 0.0);
+{ 72214} GPA501E +GHO                =       GPA501F +      GHO                                    : ARR( 0.256E-10,     0., 0.0);
+{ 72215} GPA501E +GHO                =       G2P5057                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 72216} GPA501E+HV               =       G1P5073 +      GHO                                    :  0.100E+01*SUN;
+{ 72217} GPA501E+HV               =       G3A5011 +      GNO2                                   :  0.100E+01*SUN;
+{ 72218} GPA501F                     =       G3A501i +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 72219} GPA501F +GHO                =       GPA501e +      GHO2                                   : ARR( 0.153E-10,     0., 0.0);
+{ 72220} GPA501F +GHO                =       GPA500s +      GHO2                                   : ARR( 0.652E-11,     0., 0.0);
+{ 72221} GPA501F+HV               =       G3A400F +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 72222} G3A501i +GHO2               =  0.800GAG501P + 0.200GAA500p + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 72223} G3A501i +GNO                =       G3A400F +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 72224} G3A501i +GNO2               =       GPA501F                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 72225} G3A501i +GNO3               =       G3A400F +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 72226} G3A501i +MEPERO             =  0.685G3A400F + 0.315GAA500p + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 72227} G3A501i +PERO1              =  0.800G3A400F + 0.200GAA500p + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 72228} G3A501i +PERO2              =  0.750G3A400F + 0.250GAA500p + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 72229} G3A501i +PERO3              =  0.800G3A400F + 0.200GAA500p + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 72230} G3A501i +PERO5              =  0.650G3A400F + 0.350GAA500p + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 72231} G3A501i +PERO6              =  0.650G3A400F + 0.350GAA500p + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 72232} G3A501i +PERO9              =       G3A400F +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 72233} GPN502t                     =       G3N502j +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 72234} GPN502t +GHO                =       GPN502p +      GHO2                                   : ARR( 0.438E-12,     0., 0.0);
+{ 72235} GPN502t +GHO                =       G3P501e                                               : ARR( 0.441E-11,     0., 0.0);
+{ 72236} GPN502t +GNO3               =       G3P501e +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 72237} GPN502t+HV               =       G3N502j +      GNO2                                   :  0.100E+01*SUN;
+{ 72238} GPN502t+HV               =       G1P507B +      GNO2                                   :  0.100E+01*SUN;
+{ 72239} GPN502t+HV               =       G1P50AJ +      GNO2                                   :  0.100E+01*SUN;
+{ 72240} GPN502t+HV               =       GPN400P +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 72241} GPN502t+HV               =       GPD3002 +      GND2000 +      GHO2    +      GNO2     :  0.100E+01*SUN;
+{ 72242} G3P501e +GHO2               =  0.800GPG501m + 0.200GPA501q + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 72243} G3P501e +GNO                =       GPN400P + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 72244} G3P501e +GNO2               =       GPP5012                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 72245} G3P501e +GNO3               =       GPN400P + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 72246} G3P501e +MEPERO             =  0.685GPN400P + 0.315GPA501q + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72247} G3P501e +PERO1              =  0.800GPN400P + 0.200GPA501q + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72248} G3P501e +PERO2              =  0.750GPN400P + 0.250GPA501q + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72249} G3P501e +PERO3              =  0.800GPN400P + 0.200GPA501q + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72250} G3P501e +PERO5              =  0.650GPN400P + 0.350GPA501q + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72251} G3P501e +PERO6              =  0.650GPN400P + 0.350GPA501q + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72252} G3P501e +PERO9              =       GPN400P +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 72253} G1P50AJ                     =       GPN3006 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  5032., 0.0);
+{ 72254} G1P50AJ                     =       GPN400P +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 72255} GPH505M                     =       G3H504g +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 72256} GPH505M +GHO                =       GPH5056 +      GHO2                                   : ARR( 0.656E-11,     0., 0.0);
+{ 72257} GPH505M +GHO                =       GPN502n +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 72258} GPH505M +GHO                =       G3P501f                                               : ARR( 0.209E-10,     0., 0.0);
+{ 72259} GPH505M +GHO                =       G2P507K                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 72260} GPH505M +GNO3               =       G3P501f +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 72261} GPH505M+HV               =       G3H504g +      GNO2                                   :  0.100E+01*SUN;
+{ 72262} GPH505M+HV               =       G1P50AK +      GNO2                                   :  0.100E+01*SUN;
+{ 72263} GPH505M+HV               =       G1P50AJ +      GHO                                    :  0.100E+01*SUN;
+{ 72264} GPH505M+HV               =       GPN400P +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 72265} G3P501f +GHO2               =  0.800GPG501n + 0.200GPA501u + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 72266} G3P501f +GNO                =       GPN400P +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 72267} G3P501f +GNO2               =       GPP5015                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 72268} G3P501f +GNO3               =       GPN400P +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 72269} G3P501f +MEPERO             =  0.685GPN400P + 0.315GPA501u + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72270} G3P501f +PERO1              =  0.800GPN400P + 0.200GPA501u + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72271} G3P501f +PERO2              =  0.750GPN400P + 0.250GPA501u + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72272} G3P501f +PERO3              =  0.800GPN400P + 0.200GPA501u + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72273} G3P501f +PERO5              =  0.650GPN400P + 0.350GPA501u + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72274} G3P501f +PERO6              =  0.650GPN400P + 0.350GPA501u + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72275} G3P501f +PERO9              =       GPN400P +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 72276} G2P507K +GNO                =       G1P50AJ +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 72277} G2P507K +GNO                =       GPN502t                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 72278} G2P507K +GHO2               =       GPH505M                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 72279} G2P507K +GNO3               =       G1P50AJ +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 72280} G2P507K +MEPERO             =  0.340G1P50AJ + 0.330GPN502i + 0.330GPN502n                 : ARR( 0.565E-13,  -845., 0.0);
+{ 72281} G2P507K +PERO1              =  0.460G1P50AJ + 0.270GPN502i + 0.270GPN502n                 : ARR( 0.434E-13,  -900., 0.0);
+{ 72282} G2P507K +PERO2              =  0.400G1P50AJ + 0.300GPN502i + 0.300GPN502n                 : ARR( 0.162E-13, -1400., 0.0);
+{ 72283} G2P507K +PERO3              =  0.460G1P50AJ + 0.270GPN502i + 0.270GPN502n                 : ARR( 0.488E-13, -1250., 0.0);
+{ 72284} G2P507K +PERO5              =  0.460G1P50AJ + 0.270GPN502i + 0.270GPN502n                 : ARR( 0.183E-11,   450., 0.0);
+{ 72285} G2P507K +PERO6              =  0.300G1P50AJ + 0.350GPN502i + 0.350GPN502n                 : ARR( 0.168E-13, -1300., 0.0);
+{ 72286} G2P507K +PERO9              =  0.650G1P50AJ + 0.350GPN502n                                : ARR( 0.100E-10,     0., 0.0);
+{ 72287} G1P50AK                     =       GCO     +      GHD400L +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 72288} G1P50AK                     =       GPD2000 +      GHD3004 +      GHO2                    : ARR( 0.200E+15,  5475., 0.0);
+{ 72289} GPG5016                     =       G3G500u +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 72290} GPG5016 +GHO                =       GPG500f +      GHO2                                   : ARR( 0.105E-10,     0., 0.0);
+{ 72291} GPG5016 +GHO                =       GPG500a +      GHO                                    : ARR( 0.257E-10,     0., 0.0);
+{ 72292} GPG5016 +GHO                =       G3P500p                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 72293} GPG5016 +GHO                =       G2P507L                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 72294} GPG5016+HV               =       G2P400y +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 72295} GPG5016+HV               =       G1P509g +      GHO                                    :  0.100E+01*SUN;
+{ 72296} GPG5016+HV               =       G3G500u +      GNO2                                   :  0.100E+01*SUN;
+{ 72297} G2P507L +GNO                =       G1P509g +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 72298} G2P507L +GNO                =       GPG500s                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 72299} G2P507L +GHO2               =       GPG5016                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 72300} G2P507L +GNO3               =       G1P509g +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 72301} G2P507L +MEPERO             =  0.340G1P509g + 0.330GPG5006 + 0.330GPG500a                 : ARR( 0.565E-13,  -845., 0.0);
+{ 72302} G2P507L +PERO1              =  0.460G1P509g + 0.270GPG5006 + 0.270GPG500a                 : ARR( 0.434E-13,  -900., 0.0);
+{ 72303} G2P507L +PERO2              =  0.400G1P509g + 0.300GPG5006 + 0.300GPG500a                 : ARR( 0.162E-13, -1400., 0.0);
+{ 72304} G2P507L +PERO3              =  0.460G1P509g + 0.270GPG5006 + 0.270GPG500a                 : ARR( 0.488E-13, -1250., 0.0);
+{ 72305} G2P507L +PERO5              =  0.460G1P509g + 0.270GPG5006 + 0.270GPG500a                 : ARR( 0.183E-11,   450., 0.0);
+{ 72306} G2P507L +PERO6              =  0.300G1P509g + 0.350GPG5006 + 0.350GPG500a                 : ARR( 0.168E-13, -1300., 0.0);
+{ 72307} G2P507L +PERO9              =  0.650G1P509g + 0.350GPG500a                                : ARR( 0.100E-10,     0., 0.0);
+{ 72308} GPP500d                     =       G3P500p +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 72309} GPP500d                     =       G3P5015 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 72310} GPP500d +GHO                =       GPP500Q +      GHO2                                   : ARR( 0.106E-10,     0., 0.0);
+{ 72311} GPP500d +GHO                =       GPP500O +      GHO                                    : ARR( 0.258E-10,     0., 0.0);
+{ 72312} GPP500d +GHO                =       G2P507M                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 72313} GPP500d+HV               =       G3P500p +      GNO2                                   :  0.100E+01*SUN;
+{ 72314} GPP500d+HV               =       G1P509p +      GHO                                    :  0.100E+01*SUN;
+{ 72315} GPP500d+HV               =       G3P5015 +      GNO2                                   :  0.100E+01*SUN;
+{ 72316} G2P507M +GNO                =       G1P509p +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 72317} G2P507M +GNO                =       GPP500a                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 72318} G2P507M +GHO2               =       GPP500d                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 72319} G2P507M +GNO3               =       G1P509p +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 72320} G2P507M +MEPERO             =  0.340G1P509p + 0.330GPP5004 + 0.330GPP500O                 : ARR( 0.565E-13,  -845., 0.0);
+{ 72321} G2P507M +PERO1              =  0.460G1P509p + 0.270GPP5004 + 0.270GPP500O                 : ARR( 0.434E-13,  -900., 0.0);
+{ 72322} G2P507M +PERO2              =  0.400G1P509p + 0.300GPP5004 + 0.300GPP500O                 : ARR( 0.162E-13, -1400., 0.0);
+{ 72323} G2P507M +PERO3              =  0.460G1P509p + 0.270GPP5004 + 0.270GPP500O                 : ARR( 0.488E-13, -1250., 0.0);
+{ 72324} G2P507M +PERO5              =  0.460G1P509p + 0.270GPP5004 + 0.270GPP500O                 : ARR( 0.183E-11,   450., 0.0);
+{ 72325} G2P507M +PERO6              =  0.300G1P509p + 0.350GPP5004 + 0.350GPP500O                 : ARR( 0.168E-13, -1300., 0.0);
+{ 72326} G2P507M +PERO9              =  0.650G1P509p + 0.350GPP500O                                : ARR( 0.100E-10,     0., 0.0);
+{ 72327} GGH5058 +GHO                =       GGN502i +      GHO                                    : ARR( 0.253E-10,     0., 0.0);
+{ 72328} GGH5058 +GHO                =       GGH505A +      GHO2                                   : ARR( 0.207E-11,     0., 0.0);
+{ 72329} GGH5058 +GHO                =       G3G501T                                               : ARR( 0.418E-11,     0., 0.0);
+{ 72330} GGH5058 +GHO                =       G3H504h                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 72331} GGH5058 +GHO                =       G2G503q                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 72332} GGH5058 +GNO3               =       G3G501T +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 72333} GGH5058+HV               =       GND400J +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 72334} GGH5058+HV               =       G1G505N +      GHO                                    :  0.100E+01*SUN;
+{ 72335} GGH5058+HV               =       G1G5086 +      GNO2                                   :  0.100E+01*SUN;
+{ 72336} GGH5058+HV               =       GGH400g +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 72337} GGH5058+HV               =       GGD3002 +      GND2000 +      GHO2    +      GHO      :  0.100E+01*SUN;
+{ 72338} G3G501T +GHO2               =  0.800GGG5011 + 0.200GAG501n + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 72339} G3G501T +GNO                =       GGH400g + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 72340} G3G501T +GNO2               =       GPG501n                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 72341} G3G501T +GNO3               =       GGH400g + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 72342} G3G501T +MEPERO             =  0.685GGH400g + 0.315GAG501n + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72343} G3G501T +PERO1              =  0.800GGH400g + 0.200GAG501n + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72344} G3G501T +PERO2              =  0.750GGH400g + 0.250GAG501n + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72345} G3G501T +PERO3              =  0.800GGH400g + 0.200GAG501n + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72346} G3G501T +PERO5              =  0.650GGH400g + 0.350GAG501n + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72347} G3G501T +PERO6              =  0.650GGH400g + 0.350GAG501n + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72348} G3G501T +PERO9              =       GGH400g +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 72349} G1G5086                     =       GGH3007 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  5032., 0.0);
+{ 72350} G1G5086                     =       GGH400g +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 72351} GAH505G +GHO                =       GAN502r +      GHO                                    : ARR( 0.191E-10,     0., 0.0);
+{ 72352} GAH505G +GHO                =       GAH505I +      GHO2                                   : ARR( 0.211E-11,     0., 0.0);
+{ 72353} GAH505G +GHO                =       G3A501j                                               : ARR( 0.426E-11,     0., 0.0);
+{ 72354} GAH505G +GHO                =       G2A504n                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 72355} GAH505G +GNO3               =       G3A501j +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 72356} GAH505G+HV               =       G1A506Y +      GHO                                    :  0.100E+01*SUN;
+{ 72357} GAH505G+HV               =       G1A509D +      GNO2                                   :  0.100E+01*SUN;
+{ 72358} GAH505G+HV               =       GAH400k +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 72359} GAH505G+HV               =       GAD3002 +      GND2000 +      GHO2    +      GHO      :  0.100E+01*SUN;
+{ 72360} G3A501j +GHO2               =  0.800GAG501w + 0.200GAA5014 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 72361} G3A501j +GNO                =       GAH400k + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 72362} G3A501j +GNO2               =       GPA501u                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 72363} G3A501j +GNO3               =       GAH400k + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 72364} G3A501j +MEPERO             =  0.685GAH400k + 0.315GAA5014 + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72365} G3A501j +PERO1              =  0.800GAH400k + 0.200GAA5014 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72366} G3A501j +PERO2              =  0.750GAH400k + 0.250GAA5014 + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72367} G3A501j +PERO3              =  0.800GAH400k + 0.200GAA5014 + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72368} G3A501j +PERO5              =  0.650GAH400k + 0.350GAA5014 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72369} G3A501j +PERO6              =  0.650GAH400k + 0.350GAA5014 + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72370} G3A501j +PERO9              =       GAH400k +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 72371} G1A509D                     =       GAH3007 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  5032., 0.0);
+{ 72372} G1A509D                     =       GAH400k +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 72373} GPH505N                     =       G3H504h +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 72374} GPH505N +GHO                =       GPN502o +      GHO                                    : ARR( 0.253E-10,     0., 0.0);
+{ 72375} GPH505N +GHO                =       GPH5053 +      GHO2                                   : ARR( 0.207E-11,     0., 0.0);
+{ 72376} GPH505N +GHO                =       G3P501g                                               : ARR( 0.418E-11,     0., 0.0);
+{ 72377} GPH505N +GHO                =       G2P5058                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 72378} GPH505N +GNO3               =       G3P501g +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 72379} GPH505N+HV               =       G3H504h +      GNO2                                   :  0.100E+01*SUN;
+{ 72380} GPH505N+HV               =       G1P507B +      GHO                                    :  0.100E+01*SUN;
+{ 72381} GPH505N+HV               =       G1P50AL +      GNO2                                   :  0.100E+01*SUN;
+{ 72382} GPH505N+HV               =       GPH400l +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 72383} GPH505N+HV               =       GPD3002 +      GND2000 +      GHO2    +      GHO      :  0.100E+01*SUN;
+{ 72384} G3P501g +GHO2               =  0.800GPG501w + 0.200GPA501r + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 72385} G3P501g +GNO                =       GPH400l + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 72386} G3P501g +GNO2               =       GPP5015                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 72387} G3P501g +GNO3               =       GPH400l + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 72388} G3P501g +MEPERO             =  0.685GPH400l + 0.315GPA501r + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72389} G3P501g +PERO1              =  0.800GPH400l + 0.200GPA501r + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72390} G3P501g +PERO2              =  0.750GPH400l + 0.250GPA501r + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72391} G3P501g +PERO3              =  0.800GPH400l + 0.200GPA501r + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72392} G3P501g +PERO5              =  0.650GPH400l + 0.350GPA501r + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72393} G3P501g +PERO6              =  0.650GPH400l + 0.350GPA501r + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72394} G3P501g +PERO9              =       GPH400l +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 72395} G1P50AL                     =       GPH3007 +      GDD2000 +      GHO2                    : ARR( 0.200E+15,  5032., 0.0);
+{ 72396} G1P50AL                     =       GPH400l +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 72397} GGH5059 +GHO                =       GGD500N +      GHO                                    : ARR( 0.856E-10,     0., 0.0);
+{ 72398} GGH5059 +GHO                =       GGH505M +      GHO2                                   : ARR( 0.675E-11,     0., 0.0);
+{ 72399} GGH5059 +GHO                =       G3G400E +      GCO                                    : ARR( 0.136E-10,     0., 0.0);
+{ 72400} GGH5059 +GNO3               =       G3G400E +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 72401} GGH5059+HV               =       GDD4004 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 72402} GGH5059+HV               =       G1G505O +      GHO                                    :  0.100E+01*SUN;
+{ 72403} GGH5059+HV               =       G3G400E +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 72404} GGH5059+HV               =       GGH400g +      GCO                                    :  0.100E+01*SUN;
+{ 72405} GGH5059+HV               =       GGH3002 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 72406} GAH505H +GHO                =       GAD500Q +      GHO                                    : ARR( 0.622E-10,     0., 0.0);
+{ 72407} GAH505H +GHO                =       GAH505P +      GHO2                                   : ARR( 0.663E-11,     0., 0.0);
+{ 72408} GAH505H +GHO                =       G3A400E +      GCO                                    : ARR( 0.134E-10,     0., 0.0);
+{ 72409} GAH505H +GNO3               =       G3A400E +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 72410} GAH505H+HV               =       G1A506Z +      GHO                                    :  0.100E+01*SUN;
+{ 72411} GAH505H+HV               =       G3A400E +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 72412} GAH505H+HV               =       GAH400k +      GCO                                    :  0.100E+01*SUN;
+{ 72413} GAH505H+HV               =       GAH3002 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 72414} GPH505O                     =       G3H504x +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 72415} GPH505O +GHO                =       GPD500N +      GHO                                    : ARR( 0.827E-10,     0., 0.0);
+{ 72416} GPH505O +GHO                =       GPH505W +      GHO2                                   : ARR( 0.652E-11,     0., 0.0);
+{ 72417} GPH505O +GHO                =       G3P400F +      GCO                                    : ARR( 0.131E-10,     0., 0.0);
+{ 72418} GPH505O +GNO3               =       G3P400F +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 72419} GPH505O+HV               =       G3H504x +      GNO2                                   :  0.100E+01*SUN;
+{ 72420} GPH505O+HV               =       G1P507C +      GHO                                    :  0.100E+01*SUN;
+{ 72421} GPH505O+HV               =       G3P400F +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 72422} GPH505O+HV               =       GPH400l +      GCO                                    :  0.100E+01*SUN;
+{ 72423} GPH505O+HV               =       GPH3002 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 72424} GAH505I +GHO                =       GAN502o +      GHO                                    : ARR( 0.117E-10,     0., 0.0);
+{ 72425} GAH505I +GHO                =       G3A501k                                               : ARR( 0.428E-11,     0., 0.0);
+{ 72426} GAH505I +GHO                =       G2A504p                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 72427} GAH505I +GNO3               =       G3A501k +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 72428} GAH505I+HV               =       G1A506i +      GHO                                    :  0.100E+01*SUN;
+{ 72429} GAH505I+HV               =       G3A3003 +      GDD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 72430} GAH505I+HV               =       G1A509E +      GNO2                                   :  0.100E+01*SUN;
+{ 72431} GAH505I+HV               =       GAH400u +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 72432} G3A501k +GHO2               =  0.800GAG501h + 0.200GAA500w + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 72433} G3A501k +GNO                =       GAH400u + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 72434} G3A501k +GNO2               =       GPA501l                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 72435} G3A501k +GNO3               =       GAH400u + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 72436} G3A501k +MEPERO             =  0.685GAH400u + 0.315GAA500w + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72437} G3A501k +PERO1              =  0.800GAH400u + 0.200GAA500w + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72438} G3A501k +PERO2              =  0.750GAH400u + 0.250GAA500w + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72439} G3A501k +PERO3              =  0.800GAH400u + 0.200GAA500w + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72440} G3A501k +PERO5              =  0.650GAH400u + 0.350GAA500w + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72441} G3A501k +PERO6              =  0.650GAH400u + 0.350GAA500w + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72442} G3A501k +PERO9              =       GAH400u +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 72443} G1A509E                     =       G3A3003 +      GDD2000                                : ARR( 0.200E+15,  5662., 0.0);
+{ 72444} GAN502t +GHO                =       GAN502o +      GHO2                                   : ARR( 0.290E-11,     0., 0.0);
+{ 72445} GAN502t +GHO                =       G3A501T                                               : ARR( 0.426E-11,     0., 0.0);
+{ 72446} GAN502t +GHO                =       GND400N +      GHO2    +      GCO2                    : ARR( 0.533E-12,     0., 0.0);
+{ 72447} GAN502t +GNO3               =       G3A501T +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 72448} GAN502t+HV               =       G3A3002 +      GDD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 72449} GAN502t+HV               =       G1A507I +      GNO2                                   :  0.100E+01*SUN;
+{ 72450} GAN502t+HV               =       GAD4006 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 72451} GPH505P                     =       G3H504w +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 72452} GPH505P +GHO                =       GPH5057 +      GHO                                    : ARR( 0.165E-10,     0., 0.0);
+{ 72453} GPH505P +GHO                =       GPH505W +      GHO                                    : ARR( 0.165E-10,     0., 0.0);
+{ 72454} GPH505P +GHO                =       G3P501h                                               : ARR( 0.708E-10,     0., 0.0);
+{ 72455} GPH505P +GNO3               =       G3P501h +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 72456} GPH505P+HV               =       G3H504w +      GNO2                                   :  0.100E+01*SUN;
+{ 72457} GPH505P+HV               =       G1P509T +      GHO                                    :  0.100E+01*SUN;
+{ 72458} GPH505P+HV               =       G3P3003 +      GDD2000 +      GHO                     :  0.100E+01*SUN;
+{ 72459} GPH505P+HV               =       G1P509P +      GHO                                    :  0.100E+01*SUN;
+{ 72460} GPH505P+HV               =       GPH400v +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 72461} G3P501h +GHO2               =  0.800GPG501x + 0.200GPA5022 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 72462} G3P501h +GNO                =       GPH400v +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 72463} G3P501h +GNO2               =       GPP5019                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 72464} G3P501h +GNO3               =       GPH400v +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 72465} G3P501h +MEPERO             =  0.685GPH400v + 0.315GPA5022 + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72466} G3P501h +PERO1              =  0.800GPH400v + 0.200GPA5022 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72467} G3P501h +PERO2              =  0.750GPH400v + 0.250GPA5022 + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72468} G3P501h +PERO3              =  0.800GPH400v + 0.200GPA5022 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72469} G3P501h +PERO5              =  0.650GPH400v + 0.350GPA5022 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72470} G3P501h +PERO6              =  0.650GPH400v + 0.350GPA5022 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72471} G3P501h +PERO9              =       GPH400v +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 72472} GGN502o +GHO                =       G3G501U                                               : ARR( 0.420E-11,     0., 0.0);
+{ 72473} GGN502o +GHO                =       G3N502o                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 72474} GGN502o +GNO3               =       G3G501U +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 72475} GGN502o+HV               =       GND400N +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 72476} GGN502o+HV               =       G1G505Q +      GNO2                                   :  0.100E+01*SUN;
+{ 72477} GGN502o+HV               =       G3G3001 +      GDD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 72478} GGN502o+HV               =       G1G5087 +      GNO2                                   :  0.100E+01*SUN;
+{ 72479} GGN502o+HV               =       GGN400Z +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 72480} G3G501U +GHO2               =  0.800GGG500p + 0.200GAG501b + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 72481} G3G501U +GNO                =       GGN400Z + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 72482} G3G501U +GNO2               =       GPG501b                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 72483} G3G501U +GNO3               =       GGN400Z + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 72484} G3G501U +MEPERO             =  0.685GGN400Z + 0.315GAG501b + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72485} G3G501U +PERO1              =  0.800GGN400Z + 0.200GAG501b + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72486} G3G501U +PERO2              =  0.750GGN400Z + 0.250GAG501b + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72487} G3G501U +PERO3              =  0.800GGN400Z + 0.200GAG501b + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72488} G3G501U +PERO5              =  0.650GGN400Z + 0.350GAG501b + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72489} G3G501U +PERO6              =  0.650GGN400Z + 0.350GAG501b + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72490} G3G501U +PERO9              =       GGN400Z +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 72491} G1G5087                     =       G3G3001 +      GDD2000                                : ARR( 0.200E+15,  6007., 0.0);
+{ 72492} GGH505A +GHO                =       GGN502q +      GHO                                    : ARR( 0.153E-10,     0., 0.0);
+{ 72493} GGH505A +GHO                =       G3G501W                                               : ARR( 0.416E-11,     0., 0.0);
+{ 72494} GGH505A +GHO                =       G3H505O                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 72495} GGH505A +GHO                =       G2G503s                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 72496} GGH505A +GNO3               =       G3G501W +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 72497} GGH505A+HV               =       GND400N +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 72498} GGH505A+HV               =       G1G505Q +      GHO                                    :  0.100E+01*SUN;
+{ 72499} GGH505A+HV               =       G3G3003 +      GDD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 72500} GGH505A+HV               =       G1G5088 +      GNO2                                   :  0.100E+01*SUN;
+{ 72501} GGH505A+HV               =       GGH400s +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 72502} G3G501W +GHO2               =  0.800GGG500q + 0.200GAG501c + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 72503} G3G501W +GNO                =       GGH400s + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 72504} G3G501W +GNO2               =       GPG501h                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 72505} G3G501W +GNO3               =       GGH400s + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 72506} G3G501W +MEPERO             =  0.685GGH400s + 0.315GAG501c + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72507} G3G501W +PERO1              =  0.800GGH400s + 0.200GAG501c + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72508} G3G501W +PERO2              =  0.750GGH400s + 0.250GAG501c + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72509} G3G501W +PERO3              =  0.800GGH400s + 0.200GAG501c + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72510} G3G501W +PERO5              =  0.650GGH400s + 0.350GAG501c + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72511} G3G501W +PERO6              =  0.650GGH400s + 0.350GAG501c + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72512} G3G501W +PERO9              =       GGH400s +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 72513} G1G5088                     =       G3G3003 +      GDD2000                                : ARR( 0.200E+15,  5662., 0.0);
+{ 72514} GGN502p +GHO                =       GGN502q +      GHO2                                   : ARR( 0.389E-11,     0., 0.0);
+{ 72515} GGN502p +GHO                =       G3G501I                                               : ARR( 0.422E-11,     0., 0.0);
+{ 72516} GGN502p +GHO                =       G3N502p                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 72517} GGN502p +GNO3               =       G3G501I +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 72518} GGN502p+HV               =  0.500GND400N + 0.500GHO                                    :  0.100E+01*SUN;
+{ 72519} GGN502p+HV               =       G3G3002 +      GDD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 72520} GGN502p+HV               =       G1G506q +      GNO2                                   :  0.100E+01*SUN;
+{ 72521} GGN502p+HV               =       GGD4007 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 72522} GGN502q +GHO                =       G3G501X                                               : ARR( 0.418E-11,     0., 0.0);
+{ 72523} GGN502q +GHO                =       G3N502t                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 72524} GGN502q +GNO3               =       G3G501X +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 72525} GGN502q+HV               =       GAN400Z +      GCO2                                   :  0.100E+01*SUN;
+{ 72526} GGN502q+HV               =       GCO     +      G3N3005 +      GHO2    +      GCO      :  0.100E+01*SUN;
+{ 72527} GGN502q+HV               =       G1G5089 +      GNO2                                   :  0.100E+01*SUN;
+{ 72528} GGN502q+HV               =       GGD4008 +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 72529} G3G501X +GHO2               =  0.800GGG500r + 0.200GAG501d + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 72530} G3G501X +GNO                =       GGD4008 + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 72531} G3G501X +GNO2               =       GPG501e                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 72532} G3G501X +GNO3               =       GGD4008 + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 72533} G3G501X +MEPERO             =  0.685GGD4008 + 0.315GAG501d + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72534} G3G501X +PERO1              =  0.800GGD4008 + 0.200GAG501d + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72535} G3G501X +PERO2              =  0.750GGD4008 + 0.250GAG501d + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72536} G3G501X +PERO3              =  0.800GGD4008 + 0.200GAG501d + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72537} G3G501X +PERO5              =  0.650GGD4008 + 0.350GAG501d + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72538} G3G501X +PERO6              =  0.650GGD4008 + 0.350GAG501d + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72539} G3G501X +PERO9              =       GGD4008 +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 72540} G1G5089                     =       GCO     +      GDD2000 +      GHO2    + 2.000GCO      : ARR( 0.200E+15,  5175., 0.0);
+{ 72541} GGG500W +GHO                =       G3G500l                                               : ARR( 0.391E-11,  -190., 0.0);
+{ 72542} GGG500W+HV               =       GGN400M +      GHO     +      GNO2    +      GCO2     :  0.200E+01*SUN;
+{ 72543} GGG500W+HV               =       G1G505U +      GNO2                                   :  0.200E+01*SUN;
+{ 72544} GGG500X +GHO                =       GGG500Y +      GHO                                    : ARR( 0.254E-10,     0., 0.0);
+{ 72545} GGG500X +GHO                =       G3G500s                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 72546} GGG500X +GHO                =       G2G503u                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 72547} GGG500X +GHO                =       G3G500m                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 72548} GGG500X+HV               =       GGH400R +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 72549} GGG500X+HV               =       G1G508A +      GNO2                                   :  0.100E+01*SUN;
+{ 72550} GGG500X+HV               =       G1G505U +      GHO                                    :  0.100E+01*SUN;
+{ 72551} GGG500X+HV               =       GGN400M +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 72552} G1G508A                     =       GGH400R +      GCO     +      GHO2                    : ARR( 0.200E+15,  4949., 0.0);
+{ 72553} GAG5016 +GHO                =       GAG5017 +      GHO                                    : ARR( 0.192E-10,     0., 0.0);
+{ 72554} GAG5016 +GHO                =       G2A504q                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 72555} GAG5016 +GHO                =       G3A5015                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 72556} GAG5016+HV               =       G1A506n +      GHO                                    :  0.100E+01*SUN;
+{ 72557} GAG5016+HV               =       G1A509F +      GNO2                                   :  0.100E+01*SUN;
+{ 72558} GAG5016+HV               =       GAH400Q +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 72559} G1A509F                     =       GAH400Q +      GCO     +      GHO2                    : ARR( 0.200E+15,  4949., 0.0);
+{ 72560} GPG5017                     =       G3G500m +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 72561} GPG5017 +GHO                =       GPG500o +      GHO                                    : ARR( 0.254E-10,     0., 0.0);
+{ 72562} GPG5017 +GHO                =       G3P5013                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 72563} GPG5017 +GHO                =       G2P505D                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 72564} GPG5017+HV               =       GPH400U +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 72565} GPG5017+HV               =       G1P50AM +      GNO2                                   :  0.100E+01*SUN;
+{ 72566} GPG5017+HV               =       G1P507P +      GHO                                    :  0.100E+01*SUN;
+{ 72567} GPG5017+HV               =       G3G500m +      GNO2                                   :  0.100E+01*SUN;
+{ 72568} G1P50AM                     =       GCO     +      GPH400U +      GHO2                    : ARR( 0.200E+15,  4949., 0.0);
+{ 72569} GGG500Y +GHO                =       G3G501K                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 72570} GGG500Y +GHO                =       G3G500n                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 72571} GGG500Y+HV               =       GAG4001 +      GCO2                                   :  0.100E+01*SUN;
+{ 72572} GGG500Y+HV               =       G1G505Z +      GNO2                                   :  0.100E+01*SUN;
+{ 72573} GGG500Y+HV               =       GGD4005 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 72574} GAG5017 +GHO                =       GAG5019 +      GNO2                                   : ARR( 0.237E-12,     0., 0.0);
+{ 72575} GAG5017 +GHO                =       G3A500v                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 72576} GAG5017 +GHO                =       G3G4005 +      GCO2                                   : ARR( 0.541E-12,     0., 0.0);
+{ 72577} GAG5017+HV               =       GGN400M +      GCO2                                   :  0.100E+01*SUN;
+{ 72578} GAG5017+HV               =       G1A5072 +      GNO2                                   :  0.100E+01*SUN;
+{ 72579} GAG5017+HV               =       GAD4005 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 72580} GGG500Z +GHO                =       GGG500a +      GHO                                    : ARR( 0.913E-10,     0., 0.0);
+{ 72581} GGG500Z+HV               =       GAG400B +      GCO2                                   :  0.100E+01*SUN;
+{ 72582} GGG500Z+HV               =       G1G505Z +      GHO                                    :  0.100E+01*SUN;
+{ 72583} GGG500Z+HV               =       GGD4005 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 72584} GAG5018 +GHO                =       GAG5019 +      GHO                                    : ARR( 0.602E-10,     0., 0.0);
+{ 72585} GAG5018 +GHO                =       G2A504s                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 72586} GAG5018 +GHO                =       G3A501l                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 72587} GAG5018+HV               =       G1A506p +      GHO                                    :  0.100E+01*SUN;
+{ 72588} GAG5018+HV               =       GAA4006 +      GCO2                                   :  0.100E+01*SUN;
+{ 72589} G3A501l +GHO2               =  0.800GAG5018 + 0.200GAA500h + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 72590} G3A501l +GNO                =       G3A4008 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 72591} G3A501l +GNO2               =       GPA501L                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 72592} G3A501l +GNO3               =       G3A4008 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 72593} G3A501l +MEPERO             =  0.685G3A4008 + 0.315GAA500h + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 72594} G3A501l +PERO1              =  0.800G3A4008 + 0.200GAA500h + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 72595} G3A501l +PERO2              =  0.750G3A4008 + 0.250GAA500h + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 72596} G3A501l +PERO3              =  0.800G3A4008 + 0.200GAA500h + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 72597} G3A501l +PERO5              =  0.650G3A4008 + 0.350GAA500h + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 72598} G3A501l +PERO6              =  0.650G3A4008 + 0.350GAA500h + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 72599} G3A501l +PERO9              =       G3A4008 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 72600} GPG5018                     =       G3G500o +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 72601} GPG5018 +GHO                =       GPG5019 +      GHO                                    : ARR( 0.877E-10,     0., 0.0);
+{ 72602} GPG5018+HV               =       GPA400C +      GCO2                                   :  0.100E+01*SUN;
+{ 72603} GPG5018+HV               =       G1P507R +      GHO                                    :  0.100E+01*SUN;
+{ 72604} GPG5018+HV               =       G3G500o +      GNO2                                   :  0.100E+01*SUN;
+{ 72605} GGG400D +GHO                =       G3G400M                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 72606} GGG400D +GHO                =       G3G400K                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 72607} GGG400D+HV               =       GAG3001 +      GCO2                                   :  0.100E+01*SUN;
+{ 72608} GGG400D+HV               =       G1G401E +      GNO2                                   :  0.100E+01*SUN;
+{ 72609} GGG400D+HV               =       GGD3002 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 72610} GGG500a +GHO                =       G2G505b                                               : ARR( 0.525E-12,     0., 0.0);
+{ 72611} GGG500a +GHO                =       G3G501Y                                               : ARR( 0.380E-11,  -190., 0.0);
+{ 72612} GGG500a+HV               =       GAG4009 +      GCO2                                   :  0.200E+01*SUN;
+{ 72613} G2G505b +GNO                =       G1G508B +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 72614} G2G505b +GNO                =       GGG5012                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 72615} G2G505b +GHO2               =       GGG500y                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 72616} G2G505b +GNO3               =       G1G508B +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 72617} G2G505b +MEPERO             =  0.340G1G508B + 0.330GGG500o + 0.330GGG500t                 : ARR( 0.565E-13,  -845., 0.0);
+{ 72618} G2G505b +PERO1              =  0.460G1G508B + 0.270GGG500o + 0.270GGG500t                 : ARR( 0.434E-13,  -900., 0.0);
+{ 72619} G2G505b +PERO2              =  0.400G1G508B + 0.300GGG500o + 0.300GGG500t                 : ARR( 0.162E-13, -1400., 0.0);
+{ 72620} G2G505b +PERO3              =  0.460G1G508B + 0.270GGG500o + 0.270GGG500t                 : ARR( 0.488E-13, -1250., 0.0);
+{ 72621} G2G505b +PERO5              =  0.460G1G508B + 0.270GGG500o + 0.270GGG500t                 : ARR( 0.183E-11,   450., 0.0);
+{ 72622} G2G505b +PERO6              =  0.300G1G508B + 0.350GGG500o + 0.350GGG500t                 : ARR( 0.168E-13, -1300., 0.0);
+{ 72623} G2G505b +PERO9              =  0.650G1G508B + 0.350GGG500t                                : ARR( 0.100E-10,     0., 0.0);
+{ 72624} G3G501Y +GHO2               =  0.800GGG500a + 0.200GAG5019 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 72625} G3G501Y +GNO                =       G3G4006 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 72626} G3G501Y +GNO2               =       GPG5019                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 72627} G3G501Y +GNO3               =       G3G4006 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 72628} G3G501Y +MEPERO             =  0.685G3G4006 + 0.315GAG5019 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 72629} G3G501Y +PERO1              =  0.800G3G4006 + 0.200GAG5019 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 72630} G3G501Y +PERO2              =  0.750G3G4006 + 0.250GAG5019 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 72631} G3G501Y +PERO3              =  0.800G3G4006 + 0.200GAG5019 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 72632} G3G501Y +PERO5              =  0.650G3G4006 + 0.350GAG5019 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 72633} G3G501Y +PERO6              =  0.650G3G4006 + 0.350GAG5019 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 72634} G3G501Y +PERO9              =       G3G4006 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 72635} G1G508B                     =       GCO     +      GGD3002 +      GHO2    +      GCO      : ARR( 0.400E+15,  4880., 0.0);
+{ 72636} GAG5019 +GHO                =       G2A506d                                               : ARR( 0.525E-12,     0., 0.0);
+{ 72637} GAG5019 +GHO                =       G3A501m                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 72638} GAG5019 +GHO                =       G3G4006 +      GCO2                                   : ARR( 0.520E-12,     0., 0.0);
+{ 72639} GAG5019+HV               =       GGD4005 +      GCO2                                   :  0.100E+01*SUN;
+{ 72640} GAG5019+HV               =       GAA4002 +      GCO2                                   :  0.100E+01*SUN;
+{ 72641} G2A506d +GNO                =       G1A509G +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 72642} G2A506d +GNO                =       GAG501z                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 72643} G2A506d +GHO2               =       GAG501t                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 72644} G2A506d +GNO3               =       G1A509G +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 72645} G2A506d +MEPERO             =  0.340G1A509G + 0.330GAG501a + 0.330GAG501g                 : ARR( 0.565E-13,  -845., 0.0);
+{ 72646} G2A506d +PERO1              =  0.460G1A509G + 0.270GAG501a + 0.270GAG501g                 : ARR( 0.434E-13,  -900., 0.0);
+{ 72647} G2A506d +PERO2              =  0.400G1A509G + 0.300GAG501a + 0.300GAG501g                 : ARR( 0.162E-13, -1400., 0.0);
+{ 72648} G2A506d +PERO3              =  0.460G1A509G + 0.270GAG501a + 0.270GAG501g                 : ARR( 0.488E-13, -1250., 0.0);
+{ 72649} G2A506d +PERO5              =  0.460G1A509G + 0.270GAG501a + 0.270GAG501g                 : ARR( 0.183E-11,   450., 0.0);
+{ 72650} G2A506d +PERO6              =  0.300G1A509G + 0.350GAG501a + 0.350GAG501g                 : ARR( 0.168E-13, -1300., 0.0);
+{ 72651} G2A506d +PERO9              =  0.650G1A509G + 0.350GAG501g                                : ARR( 0.100E-10,     0., 0.0);
+{ 72652} G3A501m +GHO2               =  0.800GAG5019 + 0.200GAA500i + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 72653} G3A501m +GNO                =       G3A4003 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 72654} G3A501m +GNO2               =       GPA501H                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 72655} G3A501m +GNO3               =       G3A4003 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 72656} G3A501m +MEPERO             =  0.685G3A4003 + 0.315GAA500i + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 72657} G3A501m +PERO1              =  0.800G3A4003 + 0.200GAA500i + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 72658} G3A501m +PERO2              =  0.750G3A4003 + 0.250GAA500i + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 72659} G3A501m +PERO3              =  0.800G3A4003 + 0.200GAA500i + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 72660} G3A501m +PERO5              =  0.650G3A4003 + 0.350GAA500i + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 72661} G3A501m +PERO6              =  0.650G3A4003 + 0.350GAA500i + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 72662} G3A501m +PERO9              =       G3A4003 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 72663} G1A509G                     =       GCO     +      GGD3002 +      GHO     +      GCO      : ARR( 0.200E+15,  4880., 0.0);
+{ 72664} G1A509G                     =       GAD3002 +      GCO     +      GHO2    +      GCO      : ARR( 0.200E+15,  4880., 0.0);
+{ 72665} GPG5019                     =       G3G501Y +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 72666} GPG5019 +GHO                =       G2P507N                                               : ARR( 0.525E-12,     0., 0.0);
+{ 72667} GPG5019 +GHO                =       G3P501i                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 72668} GPG5019+HV               =       GPA4004 +      GCO2                                   :  0.100E+01*SUN;
+{ 72669} GPG5019+HV               =       G3G4006 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 72670} G2P507N +GNO                =       G1P50AN +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 72671} G2P507N +GNO                =       GPG501p                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 72672} G2P507N +GHO2               =       GPG501u                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 72673} G2P507N +GNO3               =       G1P50AN +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 72674} G2P507N +MEPERO             =  0.340G1P50AN + 0.330GPG501Y + 0.330GPG501g                 : ARR( 0.565E-13,  -845., 0.0);
+{ 72675} G2P507N +PERO1              =  0.460G1P50AN + 0.270GPG501Y + 0.270GPG501g                 : ARR( 0.434E-13,  -900., 0.0);
+{ 72676} G2P507N +PERO2              =  0.400G1P50AN + 0.300GPG501Y + 0.300GPG501g                 : ARR( 0.162E-13, -1400., 0.0);
+{ 72677} G2P507N +PERO3              =  0.460G1P50AN + 0.270GPG501Y + 0.270GPG501g                 : ARR( 0.488E-13, -1250., 0.0);
+{ 72678} G2P507N +PERO5              =  0.460G1P50AN + 0.270GPG501Y + 0.270GPG501g                 : ARR( 0.183E-11,   450., 0.0);
+{ 72679} G2P507N +PERO6              =  0.300G1P50AN + 0.350GPG501Y + 0.350GPG501g                 : ARR( 0.168E-13, -1300., 0.0);
+{ 72680} G2P507N +PERO9              =  0.650G1P50AN + 0.350GPG501g                                : ARR( 0.100E-10,     0., 0.0);
+{ 72681} G3P501i +GHO2               =  0.800GPG5019 + 0.200GPA501H + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 72682} G3P501i +GNO                =       G3P4003 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 72683} G3P501i +GNO2               =       GPP500k                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 72684} G3P501i +GNO3               =       G3P4003 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 72685} G3P501i +MEPERO             =  0.685G3P4003 + 0.315GPA501H + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 72686} G3P501i +PERO1              =  0.800G3P4003 + 0.200GPA501H + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 72687} G3P501i +PERO2              =  0.750G3P4003 + 0.250GPA501H + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 72688} G3P501i +PERO3              =  0.800G3P4003 + 0.200GPA501H + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 72689} G3P501i +PERO5              =  0.650G3P4003 + 0.350GPA501H + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 72690} G3P501i +PERO6              =  0.650G3P4003 + 0.350GPA501H + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 72691} G3P501i +PERO9              =       G3P4003 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 72692} G1P50AN                     =       GCO     +      GPD3002 +      GHO2    +      GCO      : ARR( 0.200E+15,  4880., 0.0);
+{ 72693} G1P50AN                     =       GGD3002 +      GCO     +      GNO2    +      GCO      : ARR( 0.200E+15,  4880., 0.0);
+{ 72694} GGG500b +GHO                =       GGG500K +      GHO                                    : ARR( 0.507E-10,     0., 0.0);
+{ 72695} GGG500b +GHO                =       GGG500S +      GHO                                    : ARR( 0.309E-10,     0., 0.0);
+{ 72696} GGG500b+HV               =       G2G4016 +      GHO     +      GCO2                    :  0.100E+01*SUN;
+{ 72697} GGG500b+HV               =       G1G507k +      GHO                                    :  0.100E+01*SUN;
+{ 72698} GGG500b+HV               =       G1G507n +      GHO                                    :  0.100E+01*SUN;
+{ 72699} GGG500b+HV               =       GGH400Q +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 72700} GAG501A +GHO                =       GAG500f +      GHO                                    : ARR( 0.486E-10,     0., 0.0);
+{ 72701} GAG501A +GHO                =       GAG500y +      GHO                                    : ARR( 0.297E-10,     0., 0.0);
+{ 72702} GAG501A+HV               =       G1A508r +      GHO                                    :  0.100E+01*SUN;
+{ 72703} GAG501A+HV               =       G1A508x +      GHO                                    :  0.100E+01*SUN;
+{ 72704} GAG501A+HV               =       GAH400T +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 72705} GPG501A                     =       G3G500q +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 72706} GPG501A +GHO                =       GPG5011 +      GHO                                    : ARR( 0.295E-10,     0., 0.0);
+{ 72707} GPG501A +GHO                =       GPG500c +      GHO                                    : ARR( 0.484E-10,     0., 0.0);
+{ 72708} GPG501A+HV               =       GPH400T +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 72709} GPG501A+HV               =       G1P50A4 +      GHO                                    :  0.100E+01*SUN;
+{ 72710} GPG501A+HV               =       G1P50A2 +      GHO                                    :  0.100E+01*SUN;
+{ 72711} GPG501A+HV               =       G3G500q +      GNO2                                   :  0.100E+01*SUN;
+{ 72712} GGN502r +GHO                =       G3G400K +      GCO                                    : ARR( 0.127E-10,     0., 0.0);
+{ 72713} GGN502r +GHO                =       G3N502r                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 72714} GGN502r +GNO3               =       G3G400K +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 72715} GGN502r+HV               =       GAN400b +      GCO2                                   :  0.100E+01*SUN;
+{ 72716} GGN502r+HV               =       G1G507w +      GNO2                                   :  0.100E+01*SUN;
+{ 72717} GGN502r+HV               =       G3G400K +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 72718} GGN502r+HV               =       GGN400b +      GCO                                    :  0.100E+01*SUN;
+{ 72719} GGN502r+HV               =       GGN3006 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 72720} GAG501B +GHO                =       GAG5019 +      GHO                                    : ARR( 0.883E-10,     0., 0.0);
+{ 72721} GAG501B+HV               =       GGH400R +      GCO2                                   :  0.100E+01*SUN;
+{ 72722} GAG501B+HV               =       G1A5072 +      GHO                                    :  0.100E+01*SUN;
+{ 72723} GAG501B+HV               =       GAD4005 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 72724} GAA500h +GHO                =       GAA500i +      GHO                                    : ARR( 0.608E-10,     0., 0.0);
+{ 72725} GAA500h +GHO                =       G2A504x                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 72726} GAA500h+HV               =       GAH400Q +      GCO2                                   :  0.100E+01*SUN;
+{ 72727} GAA500h+HV               =       G1A5073 +      GHO                                    :  0.100E+01*SUN;
+{ 72728} GPA501G                     =       G3A500w +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 72729} GPA501G +GHO                =       GPA501H +      GHO                                    : ARR( 0.847E-10,     0., 0.0);
+{ 72730} GPA501G+HV               =       GPH400U +      GCO2                                   :  0.100E+01*SUN;
+{ 72731} GPA501G+HV               =       G1P507T +      GHO                                    :  0.100E+01*SUN;
+{ 72732} GPA501G+HV               =       G3A500w +      GNO2                                   :  0.100E+01*SUN;
+{ 72733} GAA500i +GHO                =       G2A506e                                               : ARR( 0.525E-12,     0., 0.0);
+{ 72734} GAA500i +GHO                =       G3A4003 +      GCO2                                   : ARR( 0.104E-11,     0., 0.0);
+{ 72735} GAA500i+HV               =       GAD4005 +      GCO2                                   :  0.200E+01*SUN;
+{ 72736} G2A506e +GNO                =       G1A509H +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 72737} G2A506e +GNO                =       GAA500u                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 72738} G2A506e +GHO2               =       GAA5019                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 72739} G2A506e +GNO3               =       G1A509H +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 72740} G2A506e +MEPERO             =  0.340G1A509H + 0.330GAA501B + 0.330GAA500z                 : ARR( 0.565E-13,  -845., 0.0);
+{ 72741} G2A506e +PERO1              =  0.460G1A509H + 0.270GAA501B + 0.270GAA500z                 : ARR( 0.434E-13,  -900., 0.0);
+{ 72742} G2A506e +PERO2              =  0.400G1A509H + 0.300GAA501B + 0.300GAA500z                 : ARR( 0.162E-13, -1400., 0.0);
+{ 72743} G2A506e +PERO3              =  0.460G1A509H + 0.270GAA501B + 0.270GAA500z                 : ARR( 0.488E-13, -1250., 0.0);
+{ 72744} G2A506e +PERO5              =  0.460G1A509H + 0.270GAA501B + 0.270GAA500z                 : ARR( 0.183E-11,   450., 0.0);
+{ 72745} G2A506e +PERO6              =  0.300G1A509H + 0.350GAA501B + 0.350GAA500z                 : ARR( 0.168E-13, -1300., 0.0);
+{ 72746} G2A506e +PERO9              =  0.650G1A509H + 0.350GAA500z                                : ARR( 0.100E-10,     0., 0.0);
+{ 72747} G1A509H                     =       GCO     +      GAD3002 +      GHO     +      GCO      : ARR( 0.400E+15,  4880., 0.0);
+{ 72748} GPA501H                     =       G3A501m +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 72749} GPA501H +GHO                =       G2P507O                                               : ARR( 0.525E-12,     0., 0.0);
+{ 72750} GPA501H +GHO                =       G3P4003 +      GCO2                                   : ARR( 0.520E-12,     0., 0.0);
+{ 72751} GPA501H+HV               =       GPD4005 +      GCO2                                   :  0.100E+01*SUN;
+{ 72752} GPA501H+HV               =       G3A4003 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 72753} G2P507O +GNO                =       G1P50AO +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 72754} G2P507O +GNO                =       GPA501Z                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 72755} G2P507O +GHO2               =       GPA501x                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 72756} G2P507O +GNO3               =       G1P50AO +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 72757} G2P507O +MEPERO             =  0.340G1P50AO + 0.330GPA501e + 0.330GPA501k                 : ARR( 0.565E-13,  -845., 0.0);
+{ 72758} G2P507O +PERO1              =  0.460G1P50AO + 0.270GPA501e + 0.270GPA501k                 : ARR( 0.434E-13,  -900., 0.0);
+{ 72759} G2P507O +PERO2              =  0.400G1P50AO + 0.300GPA501e + 0.300GPA501k                 : ARR( 0.162E-13, -1400., 0.0);
+{ 72760} G2P507O +PERO3              =  0.460G1P50AO + 0.270GPA501e + 0.270GPA501k                 : ARR( 0.488E-13, -1250., 0.0);
+{ 72761} G2P507O +PERO5              =  0.460G1P50AO + 0.270GPA501e + 0.270GPA501k                 : ARR( 0.183E-11,   450., 0.0);
+{ 72762} G2P507O +PERO6              =  0.300G1P50AO + 0.350GPA501e + 0.350GPA501k                 : ARR( 0.168E-13, -1300., 0.0);
+{ 72763} G2P507O +PERO9              =  0.650G1P50AO + 0.350GPA501k                                : ARR( 0.100E-10,     0., 0.0);
+{ 72764} G1P50AO                     =       GCO     +      GPD3002 +      GHO     +      GCO      : ARR( 0.200E+15,  4880., 0.0);
+{ 72765} G1P50AO                     =       GAD3002 +      GCO     +      GNO2    +      GCO      : ARR( 0.200E+15,  4880., 0.0);
+{ 72766} GAG501C +GHO                =       GAG501u +      GHO2                                   : ARR( 0.482E-11,     0., 0.0);
+{ 72767} GAG501C +GHO                =       GAG500h +      GHO                                    : ARR( 0.854E-11,     0., 0.0);
+{ 72768} GAG501C +GHO                =       G2A506f                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 72769} GAG501C +GHO                =       G3A500x                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 72770} GAG501C+HV               =       G1A508u +      GHO                                    :  0.100E+01*SUN;
+{ 72771} GAG501C+HV               =       G1A509I +      GNO2                                   :  0.100E+01*SUN;
+{ 72772} GAG501C+HV               =       GAH400o +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 72773} G2A506f +GNO                =       G1A508u +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 72774} G2A506f +GNO                =       GAG500v                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 72775} G2A506f +GHO2               =       GAG501C                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 72776} G2A506f +GNO3               =       G1A508u +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 72777} G2A506f +MEPERO             =  0.340G1A508u + 0.330GAG501D + 0.330GAG500h                 : ARR( 0.565E-13,  -845., 0.0);
+{ 72778} G2A506f +PERO1              =  0.460G1A508u + 0.270GAG501D + 0.270GAG500h                 : ARR( 0.434E-13,  -900., 0.0);
+{ 72779} G2A506f +PERO2              =  0.400G1A508u + 0.300GAG501D + 0.300GAG500h                 : ARR( 0.162E-13, -1400., 0.0);
+{ 72780} G2A506f +PERO3              =  0.460G1A508u + 0.270GAG501D + 0.270GAG500h                 : ARR( 0.488E-13, -1250., 0.0);
+{ 72781} G2A506f +PERO5              =  0.460G1A508u + 0.270GAG501D + 0.270GAG500h                 : ARR( 0.183E-11,   450., 0.0);
+{ 72782} G2A506f +PERO6              =  0.300G1A508u + 0.350GAG501D + 0.350GAG500h                 : ARR( 0.168E-13, -1300., 0.0);
+{ 72783} G2A506f +PERO9              =  0.650G1A508u + 0.350GAG500h                                : ARR( 0.100E-10,     0., 0.0);
+{ 72784} G1A509I                     =       GAH400o +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 72785} GAA500j +GHO                =       GAA500U +      GHO                                    : ARR( 0.886E-11,     0., 0.0);
+{ 72786} GAA500j +GHO                =       GAA5011 +      GHO2                                   : ARR( 0.500E-11,     0., 0.0);
+{ 72787} GAA500j +GHO                =       G2A506g                                               : ARR( 0.204E-11,  -190., 0.0);
+{ 72788} GAA500j+HV               =       G1A509J +      GNO2                                   :  0.100E+01*SUN;
+{ 72789} GAA500j+HV               =       G1A508F +      GHO                                    :  0.100E+01*SUN;
+{ 72790} G2A506g +GNO                =       G1A508F +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 72791} G2A506g +GNO                =       GAA500O                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 72792} G2A506g +GHO2               =       GAA500j                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 72793} G2A506g +GNO3               =       G1A508F +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 72794} G2A506g +MEPERO             =  0.340G1A508F + 0.330GAA500k + 0.330GAA500U                 : ARR( 0.565E-13,  -845., 0.0);
+{ 72795} G2A506g +PERO1              =  0.460G1A508F + 0.270GAA500k + 0.270GAA500U                 : ARR( 0.434E-13,  -900., 0.0);
+{ 72796} G2A506g +PERO2              =  0.400G1A508F + 0.300GAA500k + 0.300GAA500U                 : ARR( 0.162E-13, -1400., 0.0);
+{ 72797} G2A506g +PERO3              =  0.460G1A508F + 0.270GAA500k + 0.270GAA500U                 : ARR( 0.488E-13, -1250., 0.0);
+{ 72798} G2A506g +PERO5              =  0.460G1A508F + 0.270GAA500k + 0.270GAA500U                 : ARR( 0.183E-11,   450., 0.0);
+{ 72799} G2A506g +PERO6              =  0.300G1A508F + 0.350GAA500k + 0.350GAA500U                 : ARR( 0.168E-13, -1300., 0.0);
+{ 72800} G2A506g +PERO9              =  0.650G1A508F + 0.350GAA500U                                : ARR( 0.100E-10,     0., 0.0);
+{ 72801} G1A509J                     =       GAH400o +      GCO     +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 72802} GPA501I                     =       G3A500x +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 72803} GPA501I +GHO                =       GPA501s +      GHO2                                   : ARR( 0.486E-11,     0., 0.0);
+{ 72804} GPA501I +GHO                =       GPA500q +      GHO                                    : ARR( 0.861E-11,     0., 0.0);
+{ 72805} GPA501I +GHO                =       G2P507P                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 72806} GPA501I+HV               =       G1P508T +      GHO                                    :  0.100E+01*SUN;
+{ 72807} GPA501I+HV               =       G1P50AP +      GNO2                                   :  0.100E+01*SUN;
+{ 72808} GPA501I+HV               =       G3A500x +      GNO2                                   :  0.100E+01*SUN;
+{ 72809} G2P507P +GNO                =       G1P508T +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 72810} G2P507P +GNO                =       GPA500d                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 72811} G2P507P +GHO2               =       GPA501I                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 72812} G2P507P +GNO3               =       G1P508T +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 72813} G2P507P +MEPERO             =  0.340G1P508T + 0.330GPA501D + 0.330GPA500q                 : ARR( 0.565E-13,  -845., 0.0);
+{ 72814} G2P507P +PERO1              =  0.460G1P508T + 0.270GPA501D + 0.270GPA500q                 : ARR( 0.434E-13,  -900., 0.0);
+{ 72815} G2P507P +PERO2              =  0.400G1P508T + 0.300GPA501D + 0.300GPA500q                 : ARR( 0.162E-13, -1400., 0.0);
+{ 72816} G2P507P +PERO3              =  0.460G1P508T + 0.270GPA501D + 0.270GPA500q                 : ARR( 0.488E-13, -1250., 0.0);
+{ 72817} G2P507P +PERO5              =  0.460G1P508T + 0.270GPA501D + 0.270GPA500q                 : ARR( 0.183E-11,   450., 0.0);
+{ 72818} G2P507P +PERO6              =  0.300G1P508T + 0.350GPA501D + 0.350GPA500q                 : ARR( 0.168E-13, -1300., 0.0);
+{ 72819} G2P507P +PERO9              =  0.650G1P508T + 0.350GPA500q                                : ARR( 0.100E-10,     0., 0.0);
+{ 72820} G1P50AP                     =       GAH400o +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 72821} GAG501D +GHO                =       GAG501x +      GHO2                                   : ARR( 0.504E-11,     0., 0.0);
+{ 72822} GAG501D +GHO                =       GAG500h +      GHO2                                   : ARR( 0.224E-11,     0., 0.0);
+{ 72823} GAG501D +GHO                =       G3A500y                                               : ARR( 0.206E-11,  -190., 0.0);
+{ 72824} GAG501D+HV               =       G1A509K +      GNO2                                   :  0.100E+01*SUN;
+{ 72825} GAG501D+HV               =       GAD4007 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 72826} G1A509K                     =       GAD3001 +      GGD2000 +      GHO2                    : ARR( 0.200E+15,  5475., 0.0);
+{ 72827} G1A509K                     =       GAD4007 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 72828} GAA500k +GHO                =       GAA5012 +      GHO2                                   : ARR( 0.485E-11,     0., 0.0);
+{ 72829} GAA500k +GHO                =       GAA500U +      GHO2                                   : ARR( 0.215E-11,     0., 0.0);
+{ 72830} GAA500k +GHO                =       GAN400P +      GHO2    +      GCO2                    : ARR( 0.542E-12,     0., 0.0);
+{ 72831} GAA500k +GHO                =       GAD4007 +      GNO2    +      GCO2                    : ARR( 0.542E-12,     0., 0.0);
+{ 72832} GAA500k+HV               =       G1A509L +      GNO2                                   :  0.100E+01*SUN;
+{ 72833} G1A509L                     =       GAD3001 +      GAD2000 +      GHO2                    : ARR( 0.200E+15,  5475., 0.0);
+{ 72834} G1A509L                     =       GAD4007 +      GCO     +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 72835} GAH505J +GHO                =       GAH505M +      GHO2                                   : ARR( 0.129E-10,     0., 0.0);
+{ 72836} GAH505J +GHO                =       GAH504L +      GHO                                    : ARR( 0.254E-10,     0., 0.0);
+{ 72837} GAH505J +GHO                =       GAH502W +      GHO                                    : ARR( 0.115E-10,     0., 0.0);
+{ 72838} GAH505J +GHO                =       G2A506h                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 72839} GAH505J +GHO                =       G2A506i                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 72840} GAH505J+HV               =       G1A506j +      GHO                                    :  0.100E+01*SUN;
+{ 72841} GAH505J+HV               =       G3H3004 +      GAD2000 +      GHO                     :  0.100E+01*SUN;
+{ 72842} GAH505J+HV               =       G1A505U +      GHO                                    :  0.100E+01*SUN;
+{ 72843} G2A506h +GNO                =       G1A506j +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 72844} G2A506h +GNO                =       GAH503U                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 72845} G2A506h +GHO2               =       GAH505J                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 72846} G2A506h +GNO3               =       G1A506j +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 72847} G2A506h +MEPERO             =  0.340G1A506j + 0.330GAH501d + 0.330GAH504L                 : ARR( 0.565E-13,  -845., 0.0);
+{ 72848} G2A506h +PERO1              =  0.460G1A506j + 0.270GAH501d + 0.270GAH504L                 : ARR( 0.434E-13,  -900., 0.0);
+{ 72849} G2A506h +PERO2              =  0.400G1A506j + 0.300GAH501d + 0.300GAH504L                 : ARR( 0.162E-13, -1400., 0.0);
+{ 72850} G2A506h +PERO3              =  0.460G1A506j + 0.270GAH501d + 0.270GAH504L                 : ARR( 0.488E-13, -1250., 0.0);
+{ 72851} G2A506h +PERO5              =  0.460G1A506j + 0.270GAH501d + 0.270GAH504L                 : ARR( 0.183E-11,   450., 0.0);
+{ 72852} G2A506h +PERO6              =  0.300G1A506j + 0.350GAH501d + 0.350GAH504L                 : ARR( 0.168E-13, -1300., 0.0);
+{ 72853} G2A506h +PERO9              =  0.650G1A506j + 0.350GAH504L                                : ARR( 0.100E-10,     0., 0.0);
+{ 72854} G2A506i +GNO                =       G1A505U +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 72855} G2A506i +GNO                =       GAH502T                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 72856} G2A506i +GHO2               =       GAH505J                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 72857} G2A506i +GNO3               =       G1A505U +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 72858} G2A506i +MEPERO             =  0.340G1A505U + 0.330GAH5049 + 0.330GAH502W                 : ARR( 0.565E-13,  -845., 0.0);
+{ 72859} G2A506i +PERO1              =  0.460G1A505U + 0.270GAH5049 + 0.270GAH502W                 : ARR( 0.434E-13,  -900., 0.0);
+{ 72860} G2A506i +PERO2              =  0.400G1A505U + 0.300GAH5049 + 0.300GAH502W                 : ARR( 0.162E-13, -1400., 0.0);
+{ 72861} G2A506i +PERO3              =  0.460G1A505U + 0.270GAH5049 + 0.270GAH502W                 : ARR( 0.488E-13, -1250., 0.0);
+{ 72862} G2A506i +PERO5              =  0.460G1A505U + 0.270GAH5049 + 0.270GAH502W                 : ARR( 0.183E-11,   450., 0.0);
+{ 72863} G2A506i +PERO6              =  0.300G1A505U + 0.350GAH5049 + 0.350GAH502W                 : ARR( 0.168E-13, -1300., 0.0);
+{ 72864} G2A506i +PERO9              =  0.650G1A505U + 0.350GAH502W                                : ARR( 0.100E-10,     0., 0.0);
+{ 72865} GAG501E +GHO                =       GAG501v +      GHO2                                   : ARR( 0.540E-11,     0., 0.0);
+{ 72866} GAG501E +GHO                =       GAG500i +      GHO                                    : ARR( 0.479E-10,     0., 0.0);
+{ 72867} GAG501E +GHO                =       GAG501N +      GHO                                    : ARR( 0.292E-10,     0., 0.0);
+{ 72868} GAG501E+HV               =       G1A508w +      GHO                                    :  0.100E+01*SUN;
+{ 72869} GAG501E+HV               =       G1A509I +      GHO                                    :  0.100E+01*SUN;
+{ 72870} GAG501E+HV               =       GAH400o +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 72871} GAA500l +GHO                =       GAA5018 +      GHO2                                   : ARR( 0.525E-11,     0., 0.0);
+{ 72872} GAA500l +GHO                =       GAA500W +      GHO                                    : ARR( 0.466E-10,     0., 0.0);
+{ 72873} GAA500l +GHO                =       GAA500o +      GHO                                    : ARR( 0.210E-10,     0., 0.0);
+{ 72874} GAA500l+HV               =       G1A508G +      GHO                                    :  0.100E+01*SUN;
+{ 72875} GAA500l+HV               =       G1A509J +      GHO                                    :  0.100E+01*SUN;
+{ 72876} GPA501J                     =       G3A500z +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 72877} GPA501J +GHO                =       GPA501w +      GHO2                                   : ARR( 0.516E-11,     0., 0.0);
+{ 72878} GPA501J +GHO                =       GPA500r +      GHO                                    : ARR( 0.458E-10,     0., 0.0);
+{ 72879} GPA501J +GHO                =       GPA501M +      GHO                                    : ARR( 0.279E-10,     0., 0.0);
+{ 72880} GPA501J+HV               =       G1P508U +      GHO                                    :  0.100E+01*SUN;
+{ 72881} GPA501J+HV               =       G1P50AP +      GHO                                    :  0.100E+01*SUN;
+{ 72882} GPA501J+HV               =       G3A500z +      GNO2                                   :  0.100E+01*SUN;
+{ 72883} GAG501F +GHO                =       GAG501y +      GHO2                                   : ARR( 0.473E-11,     0., 0.0);
+{ 72884} GAG501F +GHO                =       GAG500i +      GHO2                                   : ARR( 0.105E-10,     0., 0.0);
+{ 72885} GAG501F +GHO                =       GAG501P +      GHO                                    : ARR( 0.256E-10,     0., 0.0);
+{ 72886} GAG501F +GHO                =       G2A506j                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 72887} GAG501F +GHO                =       G3A5011                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 72888} GAG501F+HV               =       G1A509K +      GHO                                    :  0.100E+01*SUN;
+{ 72889} GAG501F+HV               =       GAD4007 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 72890} G2A506j +GNO                =       G1A509K +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 72891} G2A506j +GNO                =       GAG501D                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 72892} G2A506j +GHO2               =       GAG501F                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 72893} G2A506j +GNO3               =       G1A509K +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 72894} G2A506j +MEPERO             =  0.340G1A509K + 0.330GAG500T + 0.330GAG501P                 : ARR( 0.565E-13,  -845., 0.0);
+{ 72895} G2A506j +PERO1              =  0.460G1A509K + 0.270GAG500T + 0.270GAG501P                 : ARR( 0.434E-13,  -900., 0.0);
+{ 72896} G2A506j +PERO2              =  0.400G1A509K + 0.300GAG500T + 0.300GAG501P                 : ARR( 0.162E-13, -1400., 0.0);
+{ 72897} G2A506j +PERO3              =  0.460G1A509K + 0.270GAG500T + 0.270GAG501P                 : ARR( 0.488E-13, -1250., 0.0);
+{ 72898} G2A506j +PERO5              =  0.460G1A509K + 0.270GAG500T + 0.270GAG501P                 : ARR( 0.183E-11,   450., 0.0);
+{ 72899} G2A506j +PERO6              =  0.300G1A509K + 0.350GAG500T + 0.350GAG501P                 : ARR( 0.168E-13, -1300., 0.0);
+{ 72900} G2A506j +PERO9              =  0.650G1A509K + 0.350GAG501P                                : ARR( 0.100E-10,     0., 0.0);
+{ 72901} GAA500m +GHO                =       GAA501A +      GHO2                                   : ARR( 0.481E-11,     0., 0.0);
+{ 72902} GAA500m +GHO                =       GAA500W +      GHO2                                   : ARR( 0.107E-10,     0., 0.0);
+{ 72903} GAA500m +GHO                =       GAA500p +      GHO                                    : ARR( 0.193E-10,     0., 0.0);
+{ 72904} GAA500m +GHO                =       G2A506k                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 72905} GAA500m+HV               =       G1A509L +      GHO                                    :  0.100E+01*SUN;
+{ 72906} G2A506k +GNO                =       G1A509L +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 72907} G2A506k +GNO                =       GAA500k                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 72908} G2A506k +GHO2               =       GAA500m                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 72909} G2A506k +GNO3               =       G1A509L +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 72910} G2A506k +MEPERO             =  0.340G1A509L + 0.330GAA500I + 0.330GAA500p                 : ARR( 0.565E-13,  -845., 0.0);
+{ 72911} G2A506k +PERO1              =  0.460G1A509L + 0.270GAA500I + 0.270GAA500p                 : ARR( 0.434E-13,  -900., 0.0);
+{ 72912} G2A506k +PERO2              =  0.400G1A509L + 0.300GAA500I + 0.300GAA500p                 : ARR( 0.162E-13, -1400., 0.0);
+{ 72913} G2A506k +PERO3              =  0.460G1A509L + 0.270GAA500I + 0.270GAA500p                 : ARR( 0.488E-13, -1250., 0.0);
+{ 72914} G2A506k +PERO5              =  0.460G1A509L + 0.270GAA500I + 0.270GAA500p                 : ARR( 0.183E-11,   450., 0.0);
+{ 72915} G2A506k +PERO6              =  0.300G1A509L + 0.350GAA500I + 0.350GAA500p                 : ARR( 0.168E-13, -1300., 0.0);
+{ 72916} G2A506k +PERO9              =  0.650G1A509L + 0.350GAA500p                                : ARR( 0.100E-10,     0., 0.0);
+{ 72917} GAH505K +GHO                =       GAH505g +      GHO                                    : ARR( 0.197E-10,     0., 0.0);
+{ 72918} GAH505K +GHO                =       GAH505M +      GHO                                    : ARR( 0.138E-09,     0., 0.0);
+{ 72919} GAH505K +GHO                =       GAH505f +      GHO                                    : ARR( 0.266E-10,     0., 0.0);
+{ 72920} GAH505K +GHO                =       G3A501n                                               : ARR( 0.220E-10,     0., 0.0);
+{ 72921} GAH505K +GNO3               =       G3A501n +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 72922} GAH505K+HV               =       G1A5092 +      GHO                                    :  0.100E+01*SUN;
+{ 72923} GAH505K+HV               =       G1A507H +      GHO                                    :  0.100E+01*SUN;
+{ 72924} GAH505K+HV               =       G1A5097 +      GHO                                    :  0.100E+01*SUN;
+{ 72925} GAH505K+HV               =       GAH400w +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 72926} G3A501n +GHO2               =  0.800GAG5021 + 0.200GAA501C + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 72927} G3A501n +GNO                =       GAH400w +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 72928} G3A501n +GNO2               =       GPA5023                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 72929} G3A501n +GNO3               =       GAH400w +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 72930} G3A501n +MEPERO             =  0.685GAH400w + 0.315GAA501C + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72931} G3A501n +PERO1              =  0.800GAH400w + 0.200GAA501C + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72932} G3A501n +PERO2              =  0.750GAH400w + 0.250GAA501C + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72933} G3A501n +PERO3              =  0.800GAH400w + 0.200GAA501C + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72934} G3A501n +PERO5              =  0.650GAH400w + 0.350GAA501C + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72935} G3A501n +PERO6              =  0.650GAH400w + 0.350GAA501C + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72936} G3A501n +PERO9              =       GAH400w +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 72937} GAH505L +GHO                =       GAH505E +      GHO                                    : ARR( 0.201E-10,     0., 0.0);
+{ 72938} GAH505L +GHO                =       GAH505M +      GHO2                                   : ARR( 0.353E-10,     0., 0.0);
+{ 72939} GAH505L +GHO                =       GAH505H +      GHO                                    : ARR( 0.272E-10,     0., 0.0);
+{ 72940} GAH505L +GHO                =       G3A501o                                               : ARR( 0.225E-10,     0., 0.0);
+{ 72941} GAH505L +GNO3               =       G3A501o +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 72942} GAH505L+HV               =       G1A509C +      GHO                                    :  0.100E+01*SUN;
+{ 72943} GAH505L+HV               =       G1A509D +      GHO                                    :  0.100E+01*SUN;
+{ 72944} GAH505L+HV               =       GAH400k +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 72945} G3A501o +GHO2               =  0.800GAG5022 + 0.200GAA501D + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 72946} G3A501o +GNO                =       GAH400k +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 72947} G3A501o +GNO2               =       GPA5024                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 72948} G3A501o +GNO3               =       GAH400k +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 72949} G3A501o +MEPERO             =  0.685GAH400k + 0.315GAA501D + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72950} G3A501o +PERO1              =  0.800GAH400k + 0.200GAA501D + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72951} G3A501o +PERO2              =  0.750GAH400k + 0.250GAA501D + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72952} G3A501o +PERO3              =  0.800GAH400k + 0.200GAA501D + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72953} G3A501o +PERO5              =  0.650GAH400k + 0.350GAA501D + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72954} G3A501o +PERO6              =  0.650GAH400k + 0.350GAA501D + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72955} G3A501o +PERO9              =       GAH400k +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 72956} GAH505M +GHO                =       GAH504v +      GHO                                    : ARR( 0.123E-10,     0., 0.0);
+{ 72957} GAH505M +GHO                =       GAH505P +      GHO                                    : ARR( 0.166E-10,     0., 0.0);
+{ 72958} GAH505M +GHO                =       G3A501p                                               : ARR( 0.714E-10,     0., 0.0);
+{ 72959} GAH505M +GNO3               =       G3A501p +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 72960} GAH505M+HV               =       G1A508W +      GHO                                    :  0.100E+01*SUN;
+{ 72961} GAH505M+HV               =       G3A3003 +      GDD2000 +      GHO                     :  0.100E+01*SUN;
+{ 72962} GAH505M+HV               =       G1A509E +      GHO                                    :  0.100E+01*SUN;
+{ 72963} GAH505M+HV               =       GAH400u +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 72964} G3A501p +GHO2               =  0.800GAG5023 + 0.200GAA501E + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 72965} G3A501p +GNO                =       GAH400u +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 72966} G3A501p +GNO2               =       GPA5022                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 72967} G3A501p +GNO3               =       GAH400u +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 72968} G3A501p +MEPERO             =  0.685GAH400u + 0.315GAA501E + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72969} G3A501p +PERO1              =  0.800GAH400u + 0.200GAA501E + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72970} G3A501p +PERO2              =  0.750GAH400u + 0.250GAA501E + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72971} G3A501p +PERO3              =  0.800GAH400u + 0.200GAA501E + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72972} G3A501p +PERO5              =  0.650GAH400u + 0.350GAA501E + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72973} G3A501p +PERO6              =  0.650GAH400u + 0.350GAA501E + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 72974} G3A501p +PERO9              =       GAH400u +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 72975} GAG501G +GHO                =       GAG501B +      GHO                                    : ARR( 0.193E-10,     0., 0.0);
+{ 72976} GAG501G +GHO                =       GAG5018 +      GHO                                    : ARR( 0.260E-10,     0., 0.0);
+{ 72977} GAG501G +GHO                =       G2A506l                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 72978} GAG501G +GHO                =       G2A506m                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 72979} GAG501G +GHO                =       G3A5012                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 72980} GAG501G+HV               =       G1A508b +      GHO                                    :  0.100E+01*SUN;
+{ 72981} GAG501G+HV               =       G1A509F +      GHO                                    :  0.100E+01*SUN;
+{ 72982} GAG501G+HV               =       GAH400Q +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 72983} G2A506l +GNO                =       G1A508b +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 72984} G2A506l +GNO                =       GAG500n                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 72985} G2A506l +GHO2               =       GAG501G                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 72986} G2A506l +GNO3               =       G1A508b +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 72987} G2A506l +MEPERO             =  0.340G1A508b + 0.330GAG500P + 0.330GAG501B                 : ARR( 0.565E-13,  -845., 0.0);
+{ 72988} G2A506l +PERO1              =  0.460G1A508b + 0.270GAG500P + 0.270GAG501B                 : ARR( 0.434E-13,  -900., 0.0);
+{ 72989} G2A506l +PERO2              =  0.400G1A508b + 0.300GAG500P + 0.300GAG501B                 : ARR( 0.162E-13, -1400., 0.0);
+{ 72990} G2A506l +PERO3              =  0.460G1A508b + 0.270GAG500P + 0.270GAG501B                 : ARR( 0.488E-13, -1250., 0.0);
+{ 72991} G2A506l +PERO5              =  0.460G1A508b + 0.270GAG500P + 0.270GAG501B                 : ARR( 0.183E-11,   450., 0.0);
+{ 72992} G2A506l +PERO6              =  0.300G1A508b + 0.350GAG500P + 0.350GAG501B                 : ARR( 0.168E-13, -1300., 0.0);
+{ 72993} G2A506l +PERO9              =  0.650G1A508b + 0.350GAG501B                                : ARR( 0.100E-10,     0., 0.0);
+{ 72994} G2A506m +GNO                =       G1A509F +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 72995} G2A506m +GNO                =       GAG5016                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 72996} G2A506m +GHO2               =       GAG501G                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 72997} G2A506m +GNO3               =       G1A509F +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 72998} G2A506m +MEPERO             =  0.340G1A509F + 0.330GAG500L + 0.330GAG5018                 : ARR( 0.565E-13,  -845., 0.0);
+{ 72999} G2A506m +PERO1              =  0.460G1A509F + 0.270GAG500L + 0.270GAG5018                 : ARR( 0.434E-13,  -900., 0.0);
+{ 73000} G2A506m +PERO2              =  0.400G1A509F + 0.300GAG500L + 0.300GAG5018                 : ARR( 0.162E-13, -1400., 0.0);
+{ 73001} G2A506m +PERO3              =  0.460G1A509F + 0.270GAG500L + 0.270GAG5018                 : ARR( 0.488E-13, -1250., 0.0);
+{ 73002} G2A506m +PERO5              =  0.460G1A509F + 0.270GAG500L + 0.270GAG5018                 : ARR( 0.183E-11,   450., 0.0);
+{ 73003} G2A506m +PERO6              =  0.300G1A509F + 0.350GAG500L + 0.350GAG5018                 : ARR( 0.168E-13, -1300., 0.0);
+{ 73004} G2A506m +PERO9              =  0.650G1A509F + 0.350GAG5018                                : ARR( 0.100E-10,     0., 0.0);
+{ 73005} GAA500n +GHO                =       GAA500h +      GHO                                    : ARR( 0.392E-10,     0., 0.0);
+{ 73006} GAA500n +GHO                =       G2A506n                                               : ARR( 0.401E-11,  -190., 0.0);
+{ 73007} GAA500n+HV               =       G1A508c +      GHO                                    :  0.200E+01*SUN;
+{ 73008} G2A506n +GNO                =       G1A508c +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 73009} G2A506n +GNO                =       GAA500Z                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 73010} G2A506n +GHO2               =       GAA500n                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 73011} G2A506n +GNO3               =       G1A508c +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 73012} G2A506n +MEPERO             =  0.340G1A508c + 0.330GAA500E + 0.330GAA500h                 : ARR( 0.565E-13,  -845., 0.0);
+{ 73013} G2A506n +PERO1              =  0.460G1A508c + 0.270GAA500E + 0.270GAA500h                 : ARR( 0.434E-13,  -900., 0.0);
+{ 73014} G2A506n +PERO2              =  0.400G1A508c + 0.300GAA500E + 0.300GAA500h                 : ARR( 0.162E-13, -1400., 0.0);
+{ 73015} G2A506n +PERO3              =  0.460G1A508c + 0.270GAA500E + 0.270GAA500h                 : ARR( 0.488E-13, -1250., 0.0);
+{ 73016} G2A506n +PERO5              =  0.460G1A508c + 0.270GAA500E + 0.270GAA500h                 : ARR( 0.183E-11,   450., 0.0);
+{ 73017} G2A506n +PERO6              =  0.300G1A508c + 0.350GAA500E + 0.350GAA500h                 : ARR( 0.168E-13, -1300., 0.0);
+{ 73018} G2A506n +PERO9              =  0.650G1A508c + 0.350GAA500h                                : ARR( 0.100E-10,     0., 0.0);
+{ 73019} GPA501K                     =       G3A5012 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 73020} GPA501K +GHO                =       GPA501G +      GHO                                    : ARR( 0.193E-10,     0., 0.0);
+{ 73021} GPA501K +GHO                =       GPA501L +      GHO                                    : ARR( 0.261E-10,     0., 0.0);
+{ 73022} GPA501K +GHO                =       G2P507Q                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 73023} GPA501K +GHO                =       G2P507R                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 73024} GPA501K+HV               =       G1P509Z +      GHO                                    :  0.100E+01*SUN;
+{ 73025} GPA501K+HV               =       G1P509i +      GHO                                    :  0.100E+01*SUN;
+{ 73026} GPA501K+HV               =       G3A5012 +      GNO2                                   :  0.100E+01*SUN;
+{ 73027} G2P507Q +GNO                =       G1P509Z +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 73028} G2P507Q +GNO                =       GPA500z                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 73029} G2P507Q +GHO2               =       GPA501K                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 73030} G2P507Q +GNO3               =       G1P509Z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 73031} G2P507Q +MEPERO             =  0.340G1P509Z + 0.330GPA500L + 0.330GPA501G                 : ARR( 0.565E-13,  -845., 0.0);
+{ 73032} G2P507Q +PERO1              =  0.460G1P509Z + 0.270GPA500L + 0.270GPA501G                 : ARR( 0.434E-13,  -900., 0.0);
+{ 73033} G2P507Q +PERO2              =  0.400G1P509Z + 0.300GPA500L + 0.300GPA501G                 : ARR( 0.162E-13, -1400., 0.0);
+{ 73034} G2P507Q +PERO3              =  0.460G1P509Z + 0.270GPA500L + 0.270GPA501G                 : ARR( 0.488E-13, -1250., 0.0);
+{ 73035} G2P507Q +PERO5              =  0.460G1P509Z + 0.270GPA500L + 0.270GPA501G                 : ARR( 0.183E-11,   450., 0.0);
+{ 73036} G2P507Q +PERO6              =  0.300G1P509Z + 0.350GPA500L + 0.350GPA501G                 : ARR( 0.168E-13, -1300., 0.0);
+{ 73037} G2P507Q +PERO9              =  0.650G1P509Z + 0.350GPA501G                                : ARR( 0.100E-10,     0., 0.0);
+{ 73038} G2P507R +GNO                =       G1P509i +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 73039} G2P507R +GNO                =       GPA5012                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 73040} G2P507R +GHO2               =       GPA501K                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 73041} G2P507R +GNO3               =       G1P509i +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 73042} G2P507R +MEPERO             =  0.340G1P509i + 0.330GPA500R + 0.330GPA501L                 : ARR( 0.565E-13,  -845., 0.0);
+{ 73043} G2P507R +PERO1              =  0.460G1P509i + 0.270GPA500R + 0.270GPA501L                 : ARR( 0.434E-13,  -900., 0.0);
+{ 73044} G2P507R +PERO2              =  0.400G1P509i + 0.300GPA500R + 0.300GPA501L                 : ARR( 0.162E-13, -1400., 0.0);
+{ 73045} G2P507R +PERO3              =  0.460G1P509i + 0.270GPA500R + 0.270GPA501L                 : ARR( 0.488E-13, -1250., 0.0);
+{ 73046} G2P507R +PERO5              =  0.460G1P509i + 0.270GPA500R + 0.270GPA501L                 : ARR( 0.183E-11,   450., 0.0);
+{ 73047} G2P507R +PERO6              =  0.300G1P509i + 0.350GPA500R + 0.350GPA501L                 : ARR( 0.168E-13, -1300., 0.0);
+{ 73048} G2P507R +PERO9              =  0.650G1P509i + 0.350GPA501L                                : ARR( 0.100E-10,     0., 0.0);
+{ 73049} GAG400O +GHO                =       GAG400G +      GHO                                    : ARR( 0.188E-10,     0., 0.0);
+{ 73050} GAG400O +GHO                =       GAG400M +      GHO                                    : ARR( 0.254E-10,     0., 0.0);
+{ 73051} GAG400O +GHO                =       G2A401L                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 73052} GAG400O +GHO                =       G2A401M                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 73053} GAG400O +GHO                =       G3A400L                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 73054} GAG400O+HV               =       G1A401T +      GHO                                    :  0.100E+01*SUN;
+{ 73055} GAG400O+HV               =       G1A401S +      GHO                                    :  0.100E+01*SUN;
+{ 73056} GAG400O+HV               =       GAH3007 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 73057} G2A401L +GNO                =       G1A401T +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 73058} G2A401L +GNO                =       GAG400N                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 73059} G2A401L +GHO2               =       GAG400O                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 73060} G2A401L +GNO3               =       G1A401T +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 73061} G2A401L +MEPERO             =  0.340G1A401T + 0.330GAG400I + 0.330GAG400G                 : ARR( 0.565E-13,  -845., 0.0);
+{ 73062} G2A401L +PERO1              =  0.460G1A401T + 0.270GAG400I + 0.270GAG400G                 : ARR( 0.434E-13,  -900., 0.0);
+{ 73063} G2A401L +PERO2              =  0.400G1A401T + 0.300GAG400I + 0.300GAG400G                 : ARR( 0.162E-13, -1400., 0.0);
+{ 73064} G2A401L +PERO3              =  0.460G1A401T + 0.270GAG400I + 0.270GAG400G                 : ARR( 0.488E-13, -1250., 0.0);
+{ 73065} G2A401L +PERO5              =  0.460G1A401T + 0.270GAG400I + 0.270GAG400G                 : ARR( 0.183E-11,   450., 0.0);
+{ 73066} G2A401L +PERO6              =  0.300G1A401T + 0.350GAG400I + 0.350GAG400G                 : ARR( 0.168E-13, -1300., 0.0);
+{ 73067} G2A401L +PERO9              =  0.650G1A401T + 0.350GAG400G                                : ARR( 0.100E-10,     0., 0.0);
+{ 73068} G2A401M +GNO                =       G1A401S +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 73069} G2A401M +GNO                =       GAG400K                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 73070} G2A401M +GHO2               =       GAG400O                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 73071} G2A401M +GNO3               =       G1A401S +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 73072} G2A401M +MEPERO             =  0.340G1A401S + 0.330GAG400J + 0.330GAG400M                 : ARR( 0.565E-13,  -845., 0.0);
+{ 73073} G2A401M +PERO1              =  0.460G1A401S + 0.270GAG400J + 0.270GAG400M                 : ARR( 0.434E-13,  -900., 0.0);
+{ 73074} G2A401M +PERO2              =  0.400G1A401S + 0.300GAG400J + 0.300GAG400M                 : ARR( 0.162E-13, -1400., 0.0);
+{ 73075} G2A401M +PERO3              =  0.460G1A401S + 0.270GAG400J + 0.270GAG400M                 : ARR( 0.488E-13, -1250., 0.0);
+{ 73076} G2A401M +PERO5              =  0.460G1A401S + 0.270GAG400J + 0.270GAG400M                 : ARR( 0.183E-11,   450., 0.0);
+{ 73077} G2A401M +PERO6              =  0.300G1A401S + 0.350GAG400J + 0.350GAG400M                 : ARR( 0.168E-13, -1300., 0.0);
+{ 73078} G2A401M +PERO9              =  0.650G1A401S + 0.350GAG400M                                : ARR( 0.100E-10,     0., 0.0);
+{ 73079} GAA400E +GHO                =       GAA400A +      GHO                                    : ARR( 0.381E-10,     0., 0.0);
+{ 73080} GAA400E +GHO                =       G2A401N                                               : ARR( 0.389E-11,  -190., 0.0);
+{ 73081} GAA400E+HV               =       G1A401R +      GHO                                    :  0.200E+01*SUN;
+{ 73082} G2A401N +GNO                =       G1A401R +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 73083} G2A401N +GNO                =       GAA4009                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 73084} G2A401N +GHO2               =       GAA400E                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 73085} G2A401N +GNO3               =       G1A401R +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 73086} G2A401N +MEPERO             =  0.340G1A401R + 0.330GAA400C + 0.330GAA400A                 : ARR( 0.565E-13,  -845., 0.0);
+{ 73087} G2A401N +PERO1              =  0.460G1A401R + 0.270GAA400C + 0.270GAA400A                 : ARR( 0.434E-13,  -900., 0.0);
+{ 73088} G2A401N +PERO2              =  0.400G1A401R + 0.300GAA400C + 0.300GAA400A                 : ARR( 0.162E-13, -1400., 0.0);
+{ 73089} G2A401N +PERO3              =  0.460G1A401R + 0.270GAA400C + 0.270GAA400A                 : ARR( 0.488E-13, -1250., 0.0);
+{ 73090} G2A401N +PERO5              =  0.460G1A401R + 0.270GAA400C + 0.270GAA400A                 : ARR( 0.183E-11,   450., 0.0);
+{ 73091} G2A401N +PERO6              =  0.300G1A401R + 0.350GAA400C + 0.350GAA400A                 : ARR( 0.168E-13, -1300., 0.0);
+{ 73092} G2A401N +PERO9              =  0.650G1A401R + 0.350GAA400A                                : ARR( 0.100E-10,     0., 0.0);
+{ 73093} GPA400O                     =       G3A400L +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 73094} GPA400O +GHO                =       GPA400J +      GHO                                    : ARR( 0.188E-10,     0., 0.0);
+{ 73095} GPA400O +GHO                =       GPA400L +      GHO                                    : ARR( 0.254E-10,     0., 0.0);
+{ 73096} GPA400O +GHO                =       G2P401S                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 73097} GPA400O +GHO                =       G2P401T                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 73098} GPA400O+HV               =       G1P401b +      GHO                                    :  0.100E+01*SUN;
+{ 73099} GPA400O+HV               =       G1P401Y +      GHO                                    :  0.100E+01*SUN;
+{ 73100} GPA400O+HV               =       G3A400L +      GNO2                                   :  0.100E+01*SUN;
+{ 73101} G2P401S +GNO                =       G1P401b +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 73102} G2P401S +GNO                =       GPA400H                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 73103} G2P401S +GHO2               =       GPA400O                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 73104} G2P401S +GNO3               =       G1P401b +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 73105} G2P401S +MEPERO             =  0.340G1P401b + 0.330GPA400N + 0.330GPA400J                 : ARR( 0.565E-13,  -845., 0.0);
+{ 73106} G2P401S +PERO1              =  0.460G1P401b + 0.270GPA400N + 0.270GPA400J                 : ARR( 0.434E-13,  -900., 0.0);
+{ 73107} G2P401S +PERO2              =  0.400G1P401b + 0.300GPA400N + 0.300GPA400J                 : ARR( 0.162E-13, -1400., 0.0);
+{ 73108} G2P401S +PERO3              =  0.460G1P401b + 0.270GPA400N + 0.270GPA400J                 : ARR( 0.488E-13, -1250., 0.0);
+{ 73109} G2P401S +PERO5              =  0.460G1P401b + 0.270GPA400N + 0.270GPA400J                 : ARR( 0.183E-11,   450., 0.0);
+{ 73110} G2P401S +PERO6              =  0.300G1P401b + 0.350GPA400N + 0.350GPA400J                 : ARR( 0.168E-13, -1300., 0.0);
+{ 73111} G2P401S +PERO9              =  0.650G1P401b + 0.350GPA400J                                : ARR( 0.100E-10,     0., 0.0);
+{ 73112} G2P401T +GNO                =       G1P401Y +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 73113} G2P401T +GNO                =       GPA400F                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 73114} G2P401T +GHO2               =       GPA400O                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 73115} G2P401T +GNO3               =       G1P401Y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 73116} G2P401T +MEPERO             =  0.340G1P401Y + 0.330GPA400M + 0.330GPA400L                 : ARR( 0.565E-13,  -845., 0.0);
+{ 73117} G2P401T +PERO1              =  0.460G1P401Y + 0.270GPA400M + 0.270GPA400L                 : ARR( 0.434E-13,  -900., 0.0);
+{ 73118} G2P401T +PERO2              =  0.400G1P401Y + 0.300GPA400M + 0.300GPA400L                 : ARR( 0.162E-13, -1400., 0.0);
+{ 73119} G2P401T +PERO3              =  0.460G1P401Y + 0.270GPA400M + 0.270GPA400L                 : ARR( 0.488E-13, -1250., 0.0);
+{ 73120} G2P401T +PERO5              =  0.460G1P401Y + 0.270GPA400M + 0.270GPA400L                 : ARR( 0.183E-11,   450., 0.0);
+{ 73121} G2P401T +PERO6              =  0.300G1P401Y + 0.350GPA400M + 0.350GPA400L                 : ARR( 0.168E-13, -1300., 0.0);
+{ 73122} G2P401T +PERO9              =  0.650G1P401Y + 0.350GPA400L                                : ARR( 0.100E-10,     0., 0.0);
+{ 73123} GPA501L                     =       G3A501l +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 73124} GPA501L +GHO                =       GPA501H +      GHO                                    : ARR( 0.603E-10,     0., 0.0);
+{ 73125} GPA501L +GHO                =       G2P505K                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 73126} GPA501L+HV               =       G1P507W +      GHO                                    :  0.100E+01*SUN;
+{ 73127} GPA501L+HV               =       G3A4008 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 73128} GAA500o +GHO                =       GAA5019 +      GHO2                                   : ARR( 0.151E-10,     0., 0.0);
+{ 73129} GAA500o +GHO                =       GAA500X +      GHO                                    : ARR( 0.258E-10,     0., 0.0);
+{ 73130} GAA500o +GHO                =       G2A5055                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 73131} GAA500o+HV               =       G1A507O +      GHO                                    :  0.100E+01*SUN;
+{ 73132} GAA500o+HV               =       GAH400o +      GCO2                                   :  0.100E+01*SUN;
+{ 73133} GAA500p +GHO                =       GAA501B +      GHO2                                   : ARR( 0.157E-10,     0., 0.0);
+{ 73134} GAA500p +GHO                =       GAA500X +      GHO2                                   : ARR( 0.668E-11,     0., 0.0);
+{ 73135} GAA500p+HV               =       GAD4007 +      GCO2                                   :  0.100E+01*SUN;
+{ 73136} GPA501M                     =       G3A501q +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 73137} GPA501M +GHO                =       GPA501x +      GHO2                                   : ARR( 0.150E-10,     0., 0.0);
+{ 73138} GPA501M +GHO                =       GPA500s +      GHO                                    : ARR( 0.255E-10,     0., 0.0);
+{ 73139} GPA501M +GHO                =       G2P505M                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 73140} GPA501M+HV               =       G1P507Y +      GHO                                    :  0.100E+01*SUN;
+{ 73141} GPA501M+HV               =       G3A400I +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 73142} G3A501q +GHO2               =  0.800GAG501N + 0.200GAA500o + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 73143} G3A501q +GNO                =       G3A400I +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 73144} G3A501q +GNO2               =       GPA501M                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 73145} G3A501q +GNO3               =       G3A400I +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 73146} G3A501q +MEPERO             =  0.685G3A400I + 0.315GAA500o + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 73147} G3A501q +PERO1              =  0.800G3A400I + 0.200GAA500o + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 73148} G3A501q +PERO2              =  0.750G3A400I + 0.250GAA500o + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 73149} G3A501q +PERO3              =  0.800G3A400I + 0.200GAA500o + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 73150} G3A501q +PERO5              =  0.650G3A400I + 0.350GAA500o + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 73151} G3A501q +PERO6              =  0.650G3A400I + 0.350GAA500o + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 73152} G3A501q +PERO9              =       G3A400I +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 73153} GPG501B                     =       G3G5018 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 73154} GPG501B +GHO                =       GPG500k +      GHO                                    : ARR( 0.832E-11,     0., 0.0);
+{ 73155} GPG501B +GHO                =       GPG501s +      GHO2                                   : ARR( 0.634E-11,     0., 0.0);
+{ 73156} GPG501B +GHO                =       G3P500t                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 73157} GPG501B +GHO                =       G2P507S                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 73158} GPG501B+HV               =       GPH400p +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 73159} GPG501B+HV               =       G1P50AQ +      GNO2                                   :  0.100E+01*SUN;
+{ 73160} GPG501B+HV               =       G1P508n +      GHO                                    :  0.100E+01*SUN;
+{ 73161} GPG501B+HV               =       G3G5018 +      GNO2                                   :  0.100E+01*SUN;
+{ 73162} G2P507S +GNO                =       G1P508n +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 73163} G2P507S +GNO                =       GPG500U                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 73164} G2P507S +GHO2               =       GPG501B                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 73165} G2P507S +GNO3               =       G1P508n +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 73166} G2P507S +MEPERO             =  0.340G1P508n + 0.330GPG501C + 0.330GPG500k                 : ARR( 0.565E-13,  -845., 0.0);
+{ 73167} G2P507S +PERO1              =  0.460G1P508n + 0.270GPG501C + 0.270GPG500k                 : ARR( 0.434E-13,  -900., 0.0);
+{ 73168} G2P507S +PERO2              =  0.400G1P508n + 0.300GPG501C + 0.300GPG500k                 : ARR( 0.162E-13, -1400., 0.0);
+{ 73169} G2P507S +PERO3              =  0.460G1P508n + 0.270GPG501C + 0.270GPG500k                 : ARR( 0.488E-13, -1250., 0.0);
+{ 73170} G2P507S +PERO5              =  0.460G1P508n + 0.270GPG501C + 0.270GPG500k                 : ARR( 0.183E-11,   450., 0.0);
+{ 73171} G2P507S +PERO6              =  0.300G1P508n + 0.350GPG501C + 0.350GPG500k                 : ARR( 0.168E-13, -1300., 0.0);
+{ 73172} G2P507S +PERO9              =  0.650G1P508n + 0.350GPG500k                                : ARR( 0.100E-10,     0., 0.0);
+{ 73173} G1P50AQ                     =       GCO     +      GPH400p +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 73174} GPA501N                     =       G3A501C +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 73175} GPA501N +GHO                =       GPA500t +      GHO                                    : ARR( 0.857E-11,     0., 0.0);
+{ 73176} GPA501N +GHO                =       GPA501p +      GHO2                                   : ARR( 0.653E-11,     0., 0.0);
+{ 73177} GPA501N +GHO                =       G2P507T                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 73178} GPA501N+HV               =       G1P50AR +      GNO2                                   :  0.100E+01*SUN;
+{ 73179} GPA501N+HV               =       G1P508o +      GHO                                    :  0.100E+01*SUN;
+{ 73180} GPA501N+HV               =       G3A501C +      GNO2                                   :  0.100E+01*SUN;
+{ 73181} G2P507T +GNO                =       G1P508o +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 73182} G2P507T +GNO                =       GPA500g                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 73183} G2P507T +GHO2               =       GPA501N                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 73184} G2P507T +GNO3               =       G1P508o +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 73185} G2P507T +MEPERO             =  0.340G1P508o + 0.330GPA501O + 0.330GPA500t                 : ARR( 0.565E-13,  -845., 0.0);
+{ 73186} G2P507T +PERO1              =  0.460G1P508o + 0.270GPA501O + 0.270GPA500t                 : ARR( 0.434E-13,  -900., 0.0);
+{ 73187} G2P507T +PERO2              =  0.400G1P508o + 0.300GPA501O + 0.300GPA500t                 : ARR( 0.162E-13, -1400., 0.0);
+{ 73188} G2P507T +PERO3              =  0.460G1P508o + 0.270GPA501O + 0.270GPA500t                 : ARR( 0.488E-13, -1250., 0.0);
+{ 73189} G2P507T +PERO5              =  0.460G1P508o + 0.270GPA501O + 0.270GPA500t                 : ARR( 0.183E-11,   450., 0.0);
+{ 73190} G2P507T +PERO6              =  0.300G1P508o + 0.350GPA501O + 0.350GPA500t                 : ARR( 0.168E-13, -1300., 0.0);
+{ 73191} G2P507T +PERO9              =  0.650G1P508o + 0.350GPA500t                                : ARR( 0.100E-10,     0., 0.0);
+{ 73192} G1P50AR                     =       GCO     +      GPH400p +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 73193} GPP500e                     =       G3P500t +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 73194} GPP500e                     =       G3P501A +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 73195} GPP500e +GHO                =       GPP500S +      GHO                                    : ARR( 0.834E-11,     0., 0.0);
+{ 73196} GPP500e +GHO                =       GPP5013 +      GHO2                                   : ARR( 0.636E-11,     0., 0.0);
+{ 73197} GPP500e +GHO                =       G2P507U                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 73198} GPP500e+HV               =       G3P500t +      GNO2                                   :  0.100E+01*SUN;
+{ 73199} GPP500e+HV               =       G1P50AS +      GNO2                                   :  0.100E+01*SUN;
+{ 73200} GPP500e+HV               =       G1P508p +      GHO                                    :  0.100E+01*SUN;
+{ 73201} GPP500e+HV               =       G3P501A +      GNO2                                   :  0.100E+01*SUN;
+{ 73202} G2P507U +GNO                =       G1P508p +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 73203} G2P507U +GNO                =       GPP500L                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 73204} G2P507U +GHO2               =       GPP500e                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 73205} G2P507U +GNO3               =       G1P508p +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 73206} G2P507U +MEPERO             =  0.340G1P508p + 0.330GPP500f + 0.330GPP500S                 : ARR( 0.565E-13,  -845., 0.0);
+{ 73207} G2P507U +PERO1              =  0.460G1P508p + 0.270GPP500f + 0.270GPP500S                 : ARR( 0.434E-13,  -900., 0.0);
+{ 73208} G2P507U +PERO2              =  0.400G1P508p + 0.300GPP500f + 0.300GPP500S                 : ARR( 0.162E-13, -1400., 0.0);
+{ 73209} G2P507U +PERO3              =  0.460G1P508p + 0.270GPP500f + 0.270GPP500S                 : ARR( 0.488E-13, -1250., 0.0);
+{ 73210} G2P507U +PERO5              =  0.460G1P508p + 0.270GPP500f + 0.270GPP500S                 : ARR( 0.183E-11,   450., 0.0);
+{ 73211} G2P507U +PERO6              =  0.300G1P508p + 0.350GPP500f + 0.350GPP500S                 : ARR( 0.168E-13, -1300., 0.0);
+{ 73212} G2P507U +PERO9              =  0.650G1P508p + 0.350GPP500S                                : ARR( 0.100E-10,     0., 0.0);
+{ 73213} G1P50AS                     =       GPH400p +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 73214} GPG501C                     =       G3G501A +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 73215} GPG501C +GHO                =       GPG500k +      GHO2                                   : ARR( 0.212E-11,     0., 0.0);
+{ 73216} GPG501C +GHO                =       GPG501Z +      GHO2                                   : ARR( 0.647E-11,     0., 0.0);
+{ 73217} GPG501C +GHO                =       G3P500u                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 73218} GPG501C+HV               =       GPD4006 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 73219} GPG501C+HV               =       G1P50AT +      GNO2                                   :  0.100E+01*SUN;
+{ 73220} GPG501C+HV               =       G3G501A +      GNO2                                   :  0.100E+01*SUN;
+{ 73221} G1P50AT                     =       GCO     +      GPD4006 +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 73222} G1P50AT                     =       GGD2000 +      GPD3001 +      GHO2                    : ARR( 0.200E+15,  5475., 0.0);
+{ 73223} GPA501O                     =       G3A501D +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 73224} GPA501O +GHO                =       GPA500t +      GHO2                                   : ARR( 0.214E-11,     0., 0.0);
+{ 73225} GPA501O +GHO                =       GPA501c +      GHO2                                   : ARR( 0.652E-11,     0., 0.0);
+{ 73226} GPA501O +GHO                =       GPD4006 +      GNO2    +      GCO2                    : ARR( 0.540E-12,     0., 0.0);
+{ 73227} GPA501O+HV               =       G1P50AU +      GNO2                                   :  0.100E+01*SUN;
+{ 73228} GPA501O+HV               =       G3A501D +      GNO2                                   :  0.100E+01*SUN;
+{ 73229} G1P50AU                     =       GCO     +      GPD4006 +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 73230} G1P50AU                     =       GAD2000 +      GPD3001 +      GHO2                    : ARR( 0.200E+15,  5475., 0.0);
+{ 73231} GPP500f                     =       G3P501C +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 73232} GPP500f                     =       G3P500u +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 73233} GPP500f +GHO                =       GPP500s +      GHO2                                   : ARR( 0.655E-11,     0., 0.0);
+{ 73234} GPP500f +GHO                =       GPP500S +      GHO2                                   : ARR( 0.215E-11,     0., 0.0);
+{ 73235} GPP500f+HV               =       G3P501C +      GNO2                                   :  0.100E+01*SUN;
+{ 73236} GPP500f+HV               =       G1P50AW +      GNO2                                   :  0.100E+01*SUN;
+{ 73237} GPP500f+HV               =       G3P500u +      GNO2                                   :  0.100E+01*SUN;
+{ 73238} G1P50AW                     =       GPD3001 +      GPD2000 +      GHO2                    : ARR( 0.200E+15,  5475., 0.0);
+{ 73239} G1P50AW                     =       GPD4006 +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 73240} GPH505Q                     =       G3H504v +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 73241} GPH505Q +GHO                =       GPH505P +      GHO2                                   : ARR( 0.128E-10,     0., 0.0);
+{ 73242} GPH505Q +GHO                =       GPH504N +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 73243} GPH505Q +GHO                =       GPH502d +      GHO                                    : ARR( 0.154E-10,     0., 0.0);
+{ 73244} GPH505Q +GHO                =       G2P507W                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 73245} GPH505Q +GHO                =       G2P507X                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 73246} GPH505Q+HV               =       G1P505y +      GHO                                    :  0.100E+01*SUN;
+{ 73247} GPH505Q+HV               =       G3H3004 +      GPD2000 +      GHO                     :  0.100E+01*SUN;
+{ 73248} GPH505Q+HV               =       G1P5066 +      GHO                                    :  0.100E+01*SUN;
+{ 73249} GPH505Q+HV               =       G3H504v +      GNO2                                   :  0.100E+01*SUN;
+{ 73250} G2P507W +GNO                =       G1P505y +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 73251} G2P507W +GNO                =       GPH502T                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 73252} G2P507W +GHO2               =       GPH505Q                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 73253} G2P507W +GNO3               =       G1P505y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 73254} G2P507W +MEPERO             =  0.340G1P505y + 0.330GPH501c + 0.330GPH504N                 : ARR( 0.565E-13,  -845., 0.0);
+{ 73255} G2P507W +PERO1              =  0.460G1P505y + 0.270GPH501c + 0.270GPH504N                 : ARR( 0.434E-13,  -900., 0.0);
+{ 73256} G2P507W +PERO2              =  0.400G1P505y + 0.300GPH501c + 0.300GPH504N                 : ARR( 0.162E-13, -1400., 0.0);
+{ 73257} G2P507W +PERO3              =  0.460G1P505y + 0.270GPH501c + 0.270GPH504N                 : ARR( 0.488E-13, -1250., 0.0);
+{ 73258} G2P507W +PERO5              =  0.460G1P505y + 0.270GPH501c + 0.270GPH504N                 : ARR( 0.183E-11,   450., 0.0);
+{ 73259} G2P507W +PERO6              =  0.300G1P505y + 0.350GPH501c + 0.350GPH504N                 : ARR( 0.168E-13, -1300., 0.0);
+{ 73260} G2P507W +PERO9              =  0.650G1P505y + 0.350GPH504N                                : ARR( 0.100E-10,     0., 0.0);
+{ 73261} G2P507X +GNO                =       G1P5066 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 73262} G2P507X +GNO                =       GPH502b                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 73263} G2P507X +GHO2               =       GPH505Q                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 73264} G2P507X +GNO3               =       G1P5066 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 73265} G2P507X +MEPERO             =  0.340G1P5066 + 0.330GPH504G + 0.330GPH502d                 : ARR( 0.565E-13,  -845., 0.0);
+{ 73266} G2P507X +PERO1              =  0.460G1P5066 + 0.270GPH504G + 0.270GPH502d                 : ARR( 0.434E-13,  -900., 0.0);
+{ 73267} G2P507X +PERO2              =  0.400G1P5066 + 0.300GPH504G + 0.300GPH502d                 : ARR( 0.162E-13, -1400., 0.0);
+{ 73268} G2P507X +PERO3              =  0.460G1P5066 + 0.270GPH504G + 0.270GPH502d                 : ARR( 0.488E-13, -1250., 0.0);
+{ 73269} G2P507X +PERO5              =  0.460G1P5066 + 0.270GPH504G + 0.270GPH502d                 : ARR( 0.183E-11,   450., 0.0);
+{ 73270} G2P507X +PERO6              =  0.300G1P5066 + 0.350GPH504G + 0.350GPH502d                 : ARR( 0.168E-13, -1300., 0.0);
+{ 73271} G2P507X +PERO9              =  0.650G1P5066 + 0.350GPH502d                                : ARR( 0.100E-10,     0., 0.0);
+{ 73272} GPG501D                     =       G3G5013 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 73273} GPG501D +GHO                =       GPG501M +      GHO                                    : ARR( 0.289E-10,     0., 0.0);
+{ 73274} GPG501D +GHO                =       GPG500l +      GHO                                    : ARR( 0.474E-10,     0., 0.0);
+{ 73275} GPG501D +GHO                =       GPG501v +      GHO2                                   : ARR( 0.723E-11,     0., 0.0);
+{ 73276} GPG501D+HV               =       GPH400p +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 73277} GPG501D+HV               =       G1P50AQ +      GHO                                    :  0.100E+01*SUN;
+{ 73278} GPG501D+HV               =       G1P50A3 +      GHO                                    :  0.100E+01*SUN;
+{ 73279} GPG501D+HV               =       G3G5013 +      GNO2                                   :  0.100E+01*SUN;
+{ 73280} GPA501P                     =       G3A5019 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 73281} GPA501P +GHO                =       GPA501R +      GHO                                    : ARR( 0.208E-10,     0., 0.0);
+{ 73282} GPA501P +GHO                =       GPA500u +      GHO                                    : ARR( 0.461E-10,     0., 0.0);
+{ 73283} GPA501P +GHO                =       GPA501z +      GHO2                                   : ARR( 0.703E-11,     0., 0.0);
+{ 73284} GPA501P+HV               =       G1P50AR +      GHO                                    :  0.100E+01*SUN;
+{ 73285} GPA501P+HV               =       G1P5092 +      GHO                                    :  0.100E+01*SUN;
+{ 73286} GPA501P+HV               =       G3A5019 +      GNO2                                   :  0.100E+01*SUN;
+{ 73287} GPP500g                     =       G3P5017 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 73288} GPP500g                     =       G3P500v +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 73289} GPP500g +GHO                =       GPP5017 +      GHO2                                   : ARR( 0.692E-11,     0., 0.0);
+{ 73290} GPP500g +GHO                =       GPP500T +      GHO                                    : ARR( 0.454E-10,     0., 0.0);
+{ 73291} GPP500g +GHO                =       GPP500l +      GHO                                    : ARR( 0.277E-10,     0., 0.0);
+{ 73292} GPP500g+HV               =       G3P5017 +      GNO2                                   :  0.100E+01*SUN;
+{ 73293} GPP500g+HV               =       G1P5094 +      GHO                                    :  0.100E+01*SUN;
+{ 73294} GPP500g+HV               =       G1P50AS +      GHO                                    :  0.100E+01*SUN;
+{ 73295} GPP500g+HV               =       G3P500v +      GNO2                                   :  0.100E+01*SUN;
+{ 73296} GPG501E                     =       G3G5015 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 73297} GPG501E +GHO                =       GPG501O +      GHO                                    : ARR( 0.253E-10,     0., 0.0);
+{ 73298} GPG501E +GHO                =       GPG500l +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 73299} GPG501E +GHO                =       GPG501a +      GHO2                                   : ARR( 0.632E-11,     0., 0.0);
+{ 73300} GPG501E +GHO                =       G3P500w                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 73301} GPG501E +GHO                =       G2P507Y                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 73302} GPG501E+HV               =       GPD4006 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 73303} GPG501E+HV               =       G1P50AT +      GHO                                    :  0.100E+01*SUN;
+{ 73304} GPG501E+HV               =       G3G5015 +      GNO2                                   :  0.100E+01*SUN;
+{ 73305} G2P507Y +GNO                =       G1P50AT +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 73306} G2P507Y +GNO                =       GPG501C                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 73307} G2P507Y +GHO2               =       GPG501E                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 73308} G2P507Y +GNO3               =       G1P50AT +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 73309} G2P507Y +MEPERO             =  0.340G1P50AT + 0.330GPG500R + 0.330GPG501O                 : ARR( 0.565E-13,  -845., 0.0);
+{ 73310} G2P507Y +PERO1              =  0.460G1P50AT + 0.270GPG500R + 0.270GPG501O                 : ARR( 0.434E-13,  -900., 0.0);
+{ 73311} G2P507Y +PERO2              =  0.400G1P50AT + 0.300GPG500R + 0.300GPG501O                 : ARR( 0.162E-13, -1400., 0.0);
+{ 73312} G2P507Y +PERO3              =  0.460G1P50AT + 0.270GPG500R + 0.270GPG501O                 : ARR( 0.488E-13, -1250., 0.0);
+{ 73313} G2P507Y +PERO5              =  0.460G1P50AT + 0.270GPG500R + 0.270GPG501O                 : ARR( 0.183E-11,   450., 0.0);
+{ 73314} G2P507Y +PERO6              =  0.300G1P50AT + 0.350GPG500R + 0.350GPG501O                 : ARR( 0.168E-13, -1300., 0.0);
+{ 73315} G2P507Y +PERO9              =  0.650G1P50AT + 0.350GPG501O                                : ARR( 0.100E-10,     0., 0.0);
+{ 73316} GPA501Q                     =       G3A501A +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 73317} GPA501Q +GHO                =       GPA501S +      GHO                                    : ARR( 0.190E-10,     0., 0.0);
+{ 73318} GPA501Q +GHO                =       GPA500u +      GHO2                                   : ARR( 0.105E-10,     0., 0.0);
+{ 73319} GPA501Q +GHO                =       GPA501d +      GHO2                                   : ARR( 0.641E-11,     0., 0.0);
+{ 73320} GPA501Q +GHO                =       G2P507Z                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 73321} GPA501Q+HV               =       G1P50AU +      GHO                                    :  0.100E+01*SUN;
+{ 73322} GPA501Q+HV               =       G3A501A +      GNO2                                   :  0.100E+01*SUN;
+{ 73323} G2P507Z +GNO                =       G1P50AU +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 73324} G2P507Z +GNO                =       GPA501O                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 73325} G2P507Z +GHO2               =       GPA501Q                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 73326} G2P507Z +GNO3               =       G1P50AU +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 73327} G2P507Z +MEPERO             =  0.340G1P50AU + 0.330GPA500U + 0.330GPA501S                 : ARR( 0.565E-13,  -845., 0.0);
+{ 73328} G2P507Z +PERO1              =  0.460G1P50AU + 0.270GPA500U + 0.270GPA501S                 : ARR( 0.434E-13,  -900., 0.0);
+{ 73329} G2P507Z +PERO2              =  0.400G1P50AU + 0.300GPA500U + 0.300GPA501S                 : ARR( 0.162E-13, -1400., 0.0);
+{ 73330} G2P507Z +PERO3              =  0.460G1P50AU + 0.270GPA500U + 0.270GPA501S                 : ARR( 0.488E-13, -1250., 0.0);
+{ 73331} G2P507Z +PERO5              =  0.460G1P50AU + 0.270GPA500U + 0.270GPA501S                 : ARR( 0.183E-11,   450., 0.0);
+{ 73332} G2P507Z +PERO6              =  0.300G1P50AU + 0.350GPA500U + 0.350GPA501S                 : ARR( 0.168E-13, -1300., 0.0);
+{ 73333} G2P507Z +PERO9              =  0.650G1P50AU + 0.350GPA501S                                : ARR( 0.100E-10,     0., 0.0);
+{ 73334} GPP500h                     =       G3P5018 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 73335} GPP500h                     =       G3P500w +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 73336} GPP500h +GHO                =       GPP500t +      GHO2                                   : ARR( 0.632E-11,     0., 0.0);
+{ 73337} GPP500h +GHO                =       GPP500T +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 73338} GPP500h +GHO                =       GPP500m +      GHO                                    : ARR( 0.253E-10,     0., 0.0);
+{ 73339} GPP500h +GHO                =       G2P507a                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 73340} GPP500h+HV               =       G3P5018 +      GNO2                                   :  0.100E+01*SUN;
+{ 73341} GPP500h+HV               =       G1P50AW +      GHO                                    :  0.100E+01*SUN;
+{ 73342} GPP500h+HV               =       G3P500w +      GNO2                                   :  0.100E+01*SUN;
+{ 73343} G2P507a +GNO                =       G1P50AW +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 73344} G2P507a +GNO                =       GPP500f                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 73345} G2P507a +GHO2               =       GPP500h                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 73346} G2P507a +GNO3               =       G1P50AW +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 73347} G2P507a +MEPERO             =  0.340G1P50AW + 0.330GPP500G + 0.330GPP500m                 : ARR( 0.565E-13,  -845., 0.0);
+{ 73348} G2P507a +PERO1              =  0.460G1P50AW + 0.270GPP500G + 0.270GPP500m                 : ARR( 0.434E-13,  -900., 0.0);
+{ 73349} G2P507a +PERO2              =  0.400G1P50AW + 0.300GPP500G + 0.300GPP500m                 : ARR( 0.162E-13, -1400., 0.0);
+{ 73350} G2P507a +PERO3              =  0.460G1P50AW + 0.270GPP500G + 0.270GPP500m                 : ARR( 0.488E-13, -1250., 0.0);
+{ 73351} G2P507a +PERO5              =  0.460G1P50AW + 0.270GPP500G + 0.270GPP500m                 : ARR( 0.183E-11,   450., 0.0);
+{ 73352} G2P507a +PERO6              =  0.300G1P50AW + 0.350GPP500G + 0.350GPP500m                 : ARR( 0.168E-13, -1300., 0.0);
+{ 73353} G2P507a +PERO9              =  0.650G1P50AW + 0.350GPP500m                                : ARR( 0.100E-10,     0., 0.0);
+{ 73354} GPH505R                     =       G3H505Z +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 73355} GPH505R +GHO                =       GPH5042 +      GHO                                    : ARR( 0.262E-10,     0., 0.0);
+{ 73356} GPH505R +GHO                =       GPH503a +      GHO                                    : ARR( 0.251E-10,     0., 0.0);
+{ 73357} GPH505R +GHO                =       G2P507b                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 73358} GPH505R +GHO                =       G2P507c                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 73359} GPH505R+HV               =       G1P50AX +      GNO2                                   :  0.100E+01*SUN;
+{ 73360} GPH505R+HV               =       G1P507g +      GHO                                    :  0.100E+01*SUN;
+{ 73361} GPH505R+HV               =       G1P506v +      GHO                                    :  0.100E+01*SUN;
+{ 73362} GPH505R+HV               =       G3H400o +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 73363} G3H505Z +GHO2               =  0.800GGH505K + 0.200GAH505O + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 73364} G3H505Z +GNO                =       G3H400o +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 73365} G3H505Z +GNO2               =       GPH505R                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 73366} G3H505Z +GNO3               =       G3H400o +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 73367} G3H505Z +MEPERO             =  0.685G3H400o + 0.315GAH505O + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 73368} G3H505Z +PERO1              =  0.800G3H400o + 0.200GAH505O + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 73369} G3H505Z +PERO2              =  0.750G3H400o + 0.250GAH505O + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 73370} G3H505Z +PERO3              =  0.800G3H400o + 0.200GAH505O + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 73371} G3H505Z +PERO5              =  0.650G3H400o + 0.350GAH505O + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 73372} G3H505Z +PERO6              =  0.650G3H400o + 0.350GAH505O + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 73373} G3H505Z +PERO9              =       G3H400o +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 73374} G2P507b +GNO                =       G1P507g +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 73375} G2P507b +GNO                =       GPH503g                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 73376} G2P507b +GHO2               =       GPH505R                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 73377} G2P507b +GNO3               =       G1P507g +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 73378} G2P507b +MEPERO             =  0.340G1P507g + 0.330GPH501p + 0.330GPH5042                 : ARR( 0.565E-13,  -845., 0.0);
+{ 73379} G2P507b +PERO1              =  0.460G1P507g + 0.270GPH501p + 0.270GPH5042                 : ARR( 0.434E-13,  -900., 0.0);
+{ 73380} G2P507b +PERO2              =  0.400G1P507g + 0.300GPH501p + 0.300GPH5042                 : ARR( 0.162E-13, -1400., 0.0);
+{ 73381} G2P507b +PERO3              =  0.460G1P507g + 0.270GPH501p + 0.270GPH5042                 : ARR( 0.488E-13, -1250., 0.0);
+{ 73382} G2P507b +PERO5              =  0.460G1P507g + 0.270GPH501p + 0.270GPH5042                 : ARR( 0.183E-11,   450., 0.0);
+{ 73383} G2P507b +PERO6              =  0.300G1P507g + 0.350GPH501p + 0.350GPH5042                 : ARR( 0.168E-13, -1300., 0.0);
+{ 73384} G2P507b +PERO9              =  0.650G1P507g + 0.350GPH5042                                : ARR( 0.100E-10,     0., 0.0);
+{ 73385} G2P507c +GNO                =       G1P506v +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 73386} G2P507c +GNO                =       GPH503E                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 73387} G2P507c +GHO2               =       GPH505R                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 73388} G2P507c +GNO3               =       G1P506v +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 73389} G2P507c +MEPERO             =  0.340G1P506v + 0.330GPH503S + 0.330GPH503a                 : ARR( 0.565E-13,  -845., 0.0);
+{ 73390} G2P507c +PERO1              =  0.460G1P506v + 0.270GPH503S + 0.270GPH503a                 : ARR( 0.434E-13,  -900., 0.0);
+{ 73391} G2P507c +PERO2              =  0.400G1P506v + 0.300GPH503S + 0.300GPH503a                 : ARR( 0.162E-13, -1400., 0.0);
+{ 73392} G2P507c +PERO3              =  0.460G1P506v + 0.270GPH503S + 0.270GPH503a                 : ARR( 0.488E-13, -1250., 0.0);
+{ 73393} G2P507c +PERO5              =  0.460G1P506v + 0.270GPH503S + 0.270GPH503a                 : ARR( 0.183E-11,   450., 0.0);
+{ 73394} G2P507c +PERO6              =  0.300G1P506v + 0.350GPH503S + 0.350GPH503a                 : ARR( 0.168E-13, -1300., 0.0);
+{ 73395} G2P507c +PERO9              =  0.650G1P506v + 0.350GPH503a                                : ARR( 0.100E-10,     0., 0.0);
+{ 73396} G1P50AX +OXYGEN             =       GPH505f +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 73397} G1P50AX                     =       GPH400t +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5636., 0.0);
+{ 73398} GPG501F                     =       G3G501Z +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 73399} GPG501F +GHO                =       GPG5019 +      GHO                                    : ARR( 0.877E-10,     0., 0.0);
+{ 73400} GPG501F+HV               =       GPD4005 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 73401} GPG501F+HV               =       G1P5081 +      GHO                                    :  0.100E+01*SUN;
+{ 73402} GPG501F+HV               =       G3G4008 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 73403} G3G501Z +GHO2               =  0.800GGG500Z + 0.200GAG501B + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 73404} G3G501Z +GNO                =       G3G4008 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 73405} G3G501Z +GNO2               =       GPG501F                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 73406} G3G501Z +GNO3               =       G3G4008 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 73407} G3G501Z +MEPERO             =  0.685G3G4008 + 0.315GAG501B + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 73408} G3G501Z +PERO1              =  0.800G3G4008 + 0.200GAG501B + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 73409} G3G501Z +PERO2              =  0.750G3G4008 + 0.250GAG501B + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 73410} G3G501Z +PERO3              =  0.800G3G4008 + 0.200GAG501B + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 73411} G3G501Z +PERO5              =  0.650G3G4008 + 0.350GAG501B + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 73412} G3G501Z +PERO6              =  0.650G3G4008 + 0.350GAG501B + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 73413} G3G501Z +PERO9              =       G3G4008 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 73414} GPP500i                     =       G3P501j +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 73415} GPP500i                     =       G3P500y +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 73416} GPP500i +GHO                =       GPP500k +      GHO                                    : ARR( 0.841E-10,     0., 0.0);
+{ 73417} GPP500i+HV               =       G3P400A +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 73418} GPP500i+HV               =       G1P5083 +      GHO                                    :  0.100E+01*SUN;
+{ 73419} GPP500i+HV               =       G3P500y +      GNO2                                   :  0.100E+01*SUN;
+{ 73420} G3P501j +GHO2               =  0.800GPG5018 + 0.200GPA501G + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 73421} G3P501j +GNO                =       G3P400A +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 73422} G3P501j +GNO2               =       GPP500i                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 73423} G3P501j +GNO3               =       G3P400A +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 73424} G3P501j +MEPERO             =  0.685G3P400A + 0.315GPA501G + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 73425} G3P501j +PERO1              =  0.800G3P400A + 0.200GPA501G + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 73426} G3P501j +PERO2              =  0.750G3P400A + 0.250GPA501G + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 73427} G3P501j +PERO3              =  0.800G3P400A + 0.200GPA501G + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 73428} G3P501j +PERO5              =  0.650G3P400A + 0.350GPA501G + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 73429} G3P501j +PERO6              =  0.650G3P400A + 0.350GPA501G + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 73430} G3P501j +PERO9              =       G3P400A +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 73431} GGH505B +GHO                =       GGH503B +      GHO                                    : ARR( 0.287E-10,     0., 0.0);
+{ 73432} GGH505B +GHO                =       G2G505c                                               : ARR( 0.512E-11,     0., 0.0);
+{ 73433} GGH505B +GHO                =       GGH503H +      GHO                                    : ARR( 0.287E-10,     0., 0.0);
+{ 73434} GGH505B +GHO                =       G3G501a                                               : ARR( 0.237E-10,     0., 0.0);
+{ 73435} GGH505B +GNO3               =       G3G501a +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 73436} GGH505B+HV               =       GHD400C +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 73437} GGH505B+HV               =       G1G505S +      GHO                                    :  0.100E+01*SUN;
+{ 73438} GGH505B+HV               =       G1G505b +      GHO                                    :  0.100E+01*SUN;
+{ 73439} GGH505B+HV               =       GGH400R +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 73440} G2G505c +GNO                =       G1G508C +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 73441} G2G505c +GNO                =       GGH505G                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 73442} G2G505c +GHO2               =       GGH505d                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 73443} G2G505c +GNO3               =       G1G508C +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 73444} G2G505c +MEPERO             =  0.340G1G508C + 0.330GGH505e + 0.330GGH505L                 : ARR( 0.565E-13,  -845., 0.0);
+{ 73445} G2G505c +PERO1              =  0.460G1G508C + 0.270GGH505e + 0.270GGH505L                 : ARR( 0.434E-13,  -900., 0.0);
+{ 73446} G2G505c +PERO2              =  0.400G1G508C + 0.300GGH505e + 0.300GGH505L                 : ARR( 0.162E-13, -1400., 0.0);
+{ 73447} G2G505c +PERO3              =  0.460G1G508C + 0.270GGH505e + 0.270GGH505L                 : ARR( 0.488E-13, -1250., 0.0);
+{ 73448} G2G505c +PERO5              =  0.460G1G508C + 0.270GGH505e + 0.270GGH505L                 : ARR( 0.183E-11,   450., 0.0);
+{ 73449} G2G505c +PERO6              =  0.300G1G508C + 0.350GGH505e + 0.350GGH505L                 : ARR( 0.168E-13, -1300., 0.0);
+{ 73450} G2G505c +PERO9              =  0.650G1G508C + 0.350GGH505L                                : ARR( 0.100E-10,     0., 0.0);
+{ 73451} G3G501a +GHO2               =  0.800GGG5013 + 0.200GAG501G + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 73452} G3G501a +GNO                =       GGH400R +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 73453} G3G501a +GNO2               =       GPG501G                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 73454} G3G501a +GNO3               =       GGH400R +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 73455} G3G501a +MEPERO             =  0.685GGH400R + 0.315GAG501G + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 73456} G3G501a +PERO1              =  0.800GGH400R + 0.200GAG501G + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 73457} G3G501a +PERO2              =  0.750GGH400R + 0.250GAG501G + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 73458} G3G501a +PERO3              =  0.800GGH400R + 0.200GAG501G + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 73459} G3G501a +PERO5              =  0.650GGH400R + 0.350GAG501G + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 73460} G3G501a +PERO6              =  0.650GGH400R + 0.350GAG501G + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 73461} G3G501a +PERO9              =       GGH400R +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 73462} G1G508C                     =       GGD2000 +      GHD3004 +      GHO                     : ARR( 0.200E+15,  4308., 0.0);
+{ 73463} G1G508C                     =       GGH3007 +      GDD2000 +      GHO                     : ARR( 0.200E+15,  4086., 0.0);
+{ 73464} GPH505S                     =       G3H505a +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 73465} GPH505S +GHO                =       GPH505f +      GHO                                    : ARR( 0.265E-10,     0., 0.0);
+{ 73466} GPH505S +GHO                =       GPH505P +      GHO                                    : ARR( 0.138E-09,     0., 0.0);
+{ 73467} GPH505S +GHO                =       GPH505L +      GHO                                    : ARR( 0.265E-10,     0., 0.0);
+{ 73468} GPH505S +GHO                =       G3P501k                                               : ARR( 0.219E-10,     0., 0.0);
+{ 73469} GPH505S +GNO3               =       G3P501k +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 73470} GPH505S+HV               =       G3H505a +      GNO2                                   :  0.100E+01*SUN;
+{ 73471} GPH505S+HV               =       G1P50A9 +      GHO                                    :  0.100E+01*SUN;
+{ 73472} GPH505S+HV               =       G1P507s +      GHO                                    :  0.100E+01*SUN;
+{ 73473} GPH505S+HV               =       G1P50AE +      GHO                                    :  0.100E+01*SUN;
+{ 73474} GPH505S+HV               =       GPH400w +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 73475} G3H505a +GHO2               =  0.800GGH505d + 0.200GAH505K + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 73476} G3H505a +GNO                =       GHH400r +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 73477} G3H505a +GNO2               =       GPH505S                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 73478} G3H505a +GNO3               =       GHH400r +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 73479} G3H505a +MEPERO             =  0.685GHH400r + 0.315GAH505K + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 73480} G3H505a +PERO1              =  0.800GHH400r + 0.200GAH505K + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 73481} G3H505a +PERO2              =  0.750GHH400r + 0.250GAH505K + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 73482} G3H505a +PERO3              =  0.800GHH400r + 0.200GAH505K + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 73483} G3H505a +PERO5              =  0.650GHH400r + 0.350GAH505K + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 73484} G3H505a +PERO6              =  0.650GHH400r + 0.350GAH505K + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 73485} G3H505a +PERO9              =       GHH400r +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 73486} G3P501k +GHO2               =  0.800GPG501y + 0.200GPA5023 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 73487} G3P501k +GNO                =       GPH400w +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 73488} G3P501k +GNO2               =       GPP501A                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 73489} G3P501k +GNO3               =       GPH400w +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 73490} G3P501k +MEPERO             =  0.685GPH400w + 0.315GPA5023 + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 73491} G3P501k +PERO1              =  0.800GPH400w + 0.200GPA5023 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 73492} G3P501k +PERO2              =  0.750GPH400w + 0.250GPA5023 + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 73493} G3P501k +PERO3              =  0.800GPH400w + 0.200GPA5023 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 73494} G3P501k +PERO5              =  0.650GPH400w + 0.350GPA5023 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 73495} G3P501k +PERO6              =  0.650GPH400w + 0.350GPA5023 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 73496} G3P501k +PERO9              =       GPH400w +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 73497} GPH505T                     =       G3H505b +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 73498} GPH505T +GHO                =       GPH504x +      GHO                                    : ARR( 0.269E-10,     0., 0.0);
+{ 73499} GPH505T +GHO                =       GPH505P +      GHO2                                   : ARR( 0.350E-10,     0., 0.0);
+{ 73500} GPH505T +GHO                =       GPH505O +      GHO                                    : ARR( 0.269E-10,     0., 0.0);
+{ 73501} GPH505T +GHO                =       G3P501l                                               : ARR( 0.222E-10,     0., 0.0);
+{ 73502} GPH505T +GNO3               =       G3P501l +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 73503} GPH505T+HV               =       G3H505b +      GNO2                                   :  0.100E+01*SUN;
+{ 73504} GPH505T+HV               =       G1P50AK +      GHO                                    :  0.100E+01*SUN;
+{ 73505} GPH505T+HV               =       G1P50AL +      GHO                                    :  0.100E+01*SUN;
+{ 73506} GPH505T+HV               =       GPH400l +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 73507} G3H505b +GHO2               =  0.800GGH505e + 0.200GAH505L + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 73508} G3H505b +GNO                =       GHD400L +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 73509} G3H505b +GNO2               =       GPH505T                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 73510} G3H505b +GNO3               =       GHD400L +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 73511} G3H505b +MEPERO             =  0.685GHD400L + 0.315GAH505L + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 73512} G3H505b +PERO1              =  0.800GHD400L + 0.200GAH505L + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 73513} G3H505b +PERO2              =  0.750GHD400L + 0.250GAH505L + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 73514} G3H505b +PERO3              =  0.800GHD400L + 0.200GAH505L + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 73515} G3H505b +PERO5              =  0.650GHD400L + 0.350GAH505L + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 73516} G3H505b +PERO6              =  0.650GHD400L + 0.350GAH505L + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 73517} G3H505b +PERO9              =       GHD400L +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 73518} G3P501l +GHO2               =  0.800GPG501z + 0.200GPA5024 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 73519} G3P501l +GNO                =       GPH400l +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 73520} G3P501l +GNO2               =       GPP501B                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 73521} G3P501l +GNO3               =       GPH400l +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 73522} G3P501l +MEPERO             =  0.685GPH400l + 0.315GPA5024 + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 73523} G3P501l +PERO1              =  0.800GPH400l + 0.200GPA5024 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 73524} G3P501l +PERO2              =  0.750GPH400l + 0.250GPA5024 + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 73525} G3P501l +PERO3              =  0.800GPH400l + 0.200GPA5024 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 73526} G3P501l +PERO5              =  0.650GPH400l + 0.350GPA5024 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 73527} G3P501l +PERO6              =  0.650GPH400l + 0.350GPA5024 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 73528} G3P501l +PERO9              =       GPH400l +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 73529} GPG501G                     =       G3G501a +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 73530} GPG501G +GHO                =       GPG5018 +      GHO                                    : ARR( 0.257E-10,     0., 0.0);
+{ 73531} GPG501G +GHO                =       GPG501F +      GHO                                    : ARR( 0.257E-10,     0., 0.0);
+{ 73532} GPG501G +GHO                =       G3P500z                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 73533} GPG501G +GHO                =       G2P507d                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 73534} GPG501G +GHO                =       G2P507e                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 73535} GPG501G+HV               =       GPH400U +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 73536} GPG501G+HV               =       G1P50AM +      GHO                                    :  0.100E+01*SUN;
+{ 73537} GPG501G+HV               =       G1P509d +      GHO                                    :  0.100E+01*SUN;
+{ 73538} GPG501G+HV               =       G3G501a +      GNO2                                   :  0.100E+01*SUN;
+{ 73539} G2P507d +GNO                =       G1P50AM +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 73540} G2P507d +GNO                =       GPG5017                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 73541} G2P507d +GHO2               =       GPG501G                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 73542} G2P507d +GNO3               =       G1P50AM +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 73543} G2P507d +MEPERO             =  0.340G1P50AM + 0.330GPG500J + 0.330GPG5018                 : ARR( 0.565E-13,  -845., 0.0);
+{ 73544} G2P507d +PERO1              =  0.460G1P50AM + 0.270GPG500J + 0.270GPG5018                 : ARR( 0.434E-13,  -900., 0.0);
+{ 73545} G2P507d +PERO2              =  0.400G1P50AM + 0.300GPG500J + 0.300GPG5018                 : ARR( 0.162E-13, -1400., 0.0);
+{ 73546} G2P507d +PERO3              =  0.460G1P50AM + 0.270GPG500J + 0.270GPG5018                 : ARR( 0.488E-13, -1250., 0.0);
+{ 73547} G2P507d +PERO5              =  0.460G1P50AM + 0.270GPG500J + 0.270GPG5018                 : ARR( 0.183E-11,   450., 0.0);
+{ 73548} G2P507d +PERO6              =  0.300G1P50AM + 0.350GPG500J + 0.350GPG5018                 : ARR( 0.168E-13, -1300., 0.0);
+{ 73549} G2P507d +PERO9              =  0.650G1P50AM + 0.350GPG5018                                : ARR( 0.100E-10,     0., 0.0);
+{ 73550} G2P507e +GNO                =       G1P509d +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 73551} G2P507e +GNO                =       GPG500p                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 73552} G2P507e +GHO2               =       GPG501G                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 73553} G2P507e +GNO3               =       G1P509d +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 73554} G2P507e +MEPERO             =  0.340G1P509d + 0.330GPG500M + 0.330GPG501F                 : ARR( 0.565E-13,  -845., 0.0);
+{ 73555} G2P507e +PERO1              =  0.460G1P509d + 0.270GPG500M + 0.270GPG501F                 : ARR( 0.434E-13,  -900., 0.0);
+{ 73556} G2P507e +PERO2              =  0.400G1P509d + 0.300GPG500M + 0.300GPG501F                 : ARR( 0.162E-13, -1400., 0.0);
+{ 73557} G2P507e +PERO3              =  0.460G1P509d + 0.270GPG500M + 0.270GPG501F                 : ARR( 0.488E-13, -1250., 0.0);
+{ 73558} G2P507e +PERO5              =  0.460G1P509d + 0.270GPG500M + 0.270GPG501F                 : ARR( 0.183E-11,   450., 0.0);
+{ 73559} G2P507e +PERO6              =  0.300G1P509d + 0.350GPG500M + 0.350GPG501F                 : ARR( 0.168E-13, -1300., 0.0);
+{ 73560} G2P507e +PERO9              =  0.650G1P509d + 0.350GPG501F                                : ARR( 0.100E-10,     0., 0.0);
+{ 73561} GPP500j                     =       G3P500z +      GNO2                                   : ARR( 0.400E+16, 12800., 0.0);
+{ 73562} GPP500j +GHO                =       GPP500i +      GHO                                    : ARR( 0.515E-10,     0., 0.0);
+{ 73563} GPP500j +GHO                =       G2P507f                                               : ARR( 0.389E-11,  -190., 0.0);
+{ 73564} GPP500j+HV               =       G3P500z +      GNO2                                   :  0.200E+01*SUN;
+{ 73565} GPP500j+HV               =       G1P509m +      GHO                                    :  0.200E+01*SUN;
+{ 73566} G2P507f +GNO                =       G1P509m +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 73567} G2P507f +GNO                =       GPP500Y                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 73568} G2P507f +GHO2               =       GPP500j                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 73569} G2P507f +GNO3               =       G1P509m +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 73570} G2P507f +MEPERO             =  0.340G1P509m + 0.330GPP500B + 0.330GPP500i                 : ARR( 0.565E-13,  -845., 0.0);
+{ 73571} G2P507f +PERO1              =  0.460G1P509m + 0.270GPP500B + 0.270GPP500i                 : ARR( 0.434E-13,  -900., 0.0);
+{ 73572} G2P507f +PERO2              =  0.400G1P509m + 0.300GPP500B + 0.300GPP500i                 : ARR( 0.162E-13, -1400., 0.0);
+{ 73573} G2P507f +PERO3              =  0.460G1P509m + 0.270GPP500B + 0.270GPP500i                 : ARR( 0.488E-13, -1250., 0.0);
+{ 73574} G2P507f +PERO5              =  0.460G1P509m + 0.270GPP500B + 0.270GPP500i                 : ARR( 0.183E-11,   450., 0.0);
+{ 73575} G2P507f +PERO6              =  0.300G1P509m + 0.350GPP500B + 0.350GPP500i                 : ARR( 0.168E-13, -1300., 0.0);
+{ 73576} G2P507f +PERO9              =  0.650G1P509m + 0.350GPP500i                                : ARR( 0.100E-10,     0., 0.0);
+{ 73577} GPG400O                     =       G3G400L +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 73578} GPG400O +GHO                =       GPG400M +      GHO                                    : ARR( 0.251E-10,     0., 0.0);
+{ 73579} GPG400O +GHO                =       GPG400G +      GHO                                    : ARR( 0.251E-10,     0., 0.0);
+{ 73580} GPG400O +GHO                =       G3P400L                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 73581} GPG400O +GHO                =       G2P401U                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 73582} GPG400O +GHO                =       G2P401W                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 73583} GPG400O+HV               =       GPH3007 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 73584} GPG400O+HV               =       G1P401d +      GHO                                    :  0.100E+01*SUN;
+{ 73585} GPG400O+HV               =       G1P401e +      GHO                                    :  0.100E+01*SUN;
+{ 73586} GPG400O+HV               =       G3G400L +      GNO2                                   :  0.100E+01*SUN;
+{ 73587} G2P401U +GNO                =       G1P401d +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 73588} G2P401U +GNO                =       GPG400K                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 73589} G2P401U +GHO2               =       GPG400O                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 73590} G2P401U +GNO3               =       G1P401d +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 73591} G2P401U +MEPERO             =  0.340G1P401d + 0.330GPG400J + 0.330GPG400M                 : ARR( 0.565E-13,  -845., 0.0);
+{ 73592} G2P401U +PERO1              =  0.460G1P401d + 0.270GPG400J + 0.270GPG400M                 : ARR( 0.434E-13,  -900., 0.0);
+{ 73593} G2P401U +PERO2              =  0.400G1P401d + 0.300GPG400J + 0.300GPG400M                 : ARR( 0.162E-13, -1400., 0.0);
+{ 73594} G2P401U +PERO3              =  0.460G1P401d + 0.270GPG400J + 0.270GPG400M                 : ARR( 0.488E-13, -1250., 0.0);
+{ 73595} G2P401U +PERO5              =  0.460G1P401d + 0.270GPG400J + 0.270GPG400M                 : ARR( 0.183E-11,   450., 0.0);
+{ 73596} G2P401U +PERO6              =  0.300G1P401d + 0.350GPG400J + 0.350GPG400M                 : ARR( 0.168E-13, -1300., 0.0);
+{ 73597} G2P401U +PERO9              =  0.650G1P401d + 0.350GPG400M                                : ARR( 0.100E-10,     0., 0.0);
+{ 73598} G2P401W +GNO                =       G1P401e +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 73599} G2P401W +GNO                =       GPG400N                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 73600} G2P401W +GHO2               =       GPG400O                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 73601} G2P401W +GNO3               =       G1P401e +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 73602} G2P401W +MEPERO             =  0.340G1P401e + 0.330GPG400I + 0.330GPG400G                 : ARR( 0.565E-13,  -845., 0.0);
+{ 73603} G2P401W +PERO1              =  0.460G1P401e + 0.270GPG400I + 0.270GPG400G                 : ARR( 0.434E-13,  -900., 0.0);
+{ 73604} G2P401W +PERO2              =  0.400G1P401e + 0.300GPG400I + 0.300GPG400G                 : ARR( 0.162E-13, -1400., 0.0);
+{ 73605} G2P401W +PERO3              =  0.460G1P401e + 0.270GPG400I + 0.270GPG400G                 : ARR( 0.488E-13, -1250., 0.0);
+{ 73606} G2P401W +PERO5              =  0.460G1P401e + 0.270GPG400I + 0.270GPG400G                 : ARR( 0.183E-11,   450., 0.0);
+{ 73607} G2P401W +PERO6              =  0.300G1P401e + 0.350GPG400I + 0.350GPG400G                 : ARR( 0.168E-13, -1300., 0.0);
+{ 73608} G2P401W +PERO9              =  0.650G1P401e + 0.350GPG400G                                : ARR( 0.100E-10,     0., 0.0);
+{ 73609} GPP400E                     =       G3P400L +      GNO2                                   : ARR( 0.400E+16, 12800., 0.0);
+{ 73610} GPP400E +GHO                =       GPP400B +      GHO                                    : ARR( 0.503E-10,     0., 0.0);
+{ 73611} GPP400E +GHO                =       G2P401X                                               : ARR( 0.380E-11,  -190., 0.0);
+{ 73612} GPP400E+HV               =       G3P400L +      GNO2                                   :  0.200E+01*SUN;
+{ 73613} GPP400E+HV               =       G1P401c +      GHO                                    :  0.200E+01*SUN;
+{ 73614} G2P401X +GNO                =       G1P401c +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 73615} G2P401X +GNO                =       GPP4009                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 73616} G2P401X +GHO2               =       GPP400E                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 73617} G2P401X +GNO3               =       G1P401c +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 73618} G2P401X +MEPERO             =  0.340G1P401c + 0.330GPP400D + 0.330GPP400B                 : ARR( 0.565E-13,  -845., 0.0);
+{ 73619} G2P401X +PERO1              =  0.460G1P401c + 0.270GPP400D + 0.270GPP400B                 : ARR( 0.434E-13,  -900., 0.0);
+{ 73620} G2P401X +PERO2              =  0.400G1P401c + 0.300GPP400D + 0.300GPP400B                 : ARR( 0.162E-13, -1400., 0.0);
+{ 73621} G2P401X +PERO3              =  0.460G1P401c + 0.270GPP400D + 0.270GPP400B                 : ARR( 0.488E-13, -1250., 0.0);
+{ 73622} G2P401X +PERO5              =  0.460G1P401c + 0.270GPP400D + 0.270GPP400B                 : ARR( 0.183E-11,   450., 0.0);
+{ 73623} G2P401X +PERO6              =  0.300G1P401c + 0.350GPP400D + 0.350GPP400B                 : ARR( 0.168E-13, -1300., 0.0);
+{ 73624} G2P401X +PERO9              =  0.650G1P401c + 0.350GPP400B                                : ARR( 0.100E-10,     0., 0.0);
+{ 73625} GPP500k                     =       G3P501i +      GNO2                                   : ARR( 0.400E+16, 12800., 0.0);
+{ 73626} GPP500k +GHO                =       G2P507g                                               : ARR( 0.525E-12,     0., 0.0);
+{ 73627} GPP500k+HV               =       G3P4003 +      GCO     +      GNO2                    :  0.200E+01*SUN;
+{ 73628} G2P507g +GNO                =       G1P50AY +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 73629} G2P507g +GNO                =       GPP500r                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 73630} G2P507g +GHO2               =       GPP5018                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 73631} G2P507g +GNO3               =       G1P50AY +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 73632} G2P507g +MEPERO             =  0.340G1P50AY + 0.330GPP500u + 0.330GPP500z                 : ARR( 0.565E-13,  -845., 0.0);
+{ 73633} G2P507g +PERO1              =  0.460G1P50AY + 0.270GPP500u + 0.270GPP500z                 : ARR( 0.434E-13,  -900., 0.0);
+{ 73634} G2P507g +PERO2              =  0.400G1P50AY + 0.300GPP500u + 0.300GPP500z                 : ARR( 0.162E-13, -1400., 0.0);
+{ 73635} G2P507g +PERO3              =  0.460G1P50AY + 0.270GPP500u + 0.270GPP500z                 : ARR( 0.488E-13, -1250., 0.0);
+{ 73636} G2P507g +PERO5              =  0.460G1P50AY + 0.270GPP500u + 0.270GPP500z                 : ARR( 0.183E-11,   450., 0.0);
+{ 73637} G2P507g +PERO6              =  0.300G1P50AY + 0.350GPP500u + 0.350GPP500z                 : ARR( 0.168E-13, -1300., 0.0);
+{ 73638} G2P507g +PERO9              =  0.650G1P50AY + 0.350GPP500z                                : ARR( 0.100E-10,     0., 0.0);
+{ 73639} G1P50AY                     =       GCO     +      GPD3002 +      GNO2    +      GCO      : ARR( 0.400E+15,  4880., 0.0);
+{ 73640} GGH505C +GHO                =       GGN502s +      GHO                                    : ARR( 0.323E-11,     0., 0.0);
+{ 73641} GGH505C +GHO                =       G2G505d                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 73642} GGH505C +GHO                =       G3H504o                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 73643} GGH505C+HV               =       G1G505c +      GHO                                    :  0.100E+01*SUN;
+{ 73644} GGH505C+HV               =       G1G508D +      GNO2                                   :  0.100E+01*SUN;
+{ 73645} GGH505C+HV               =       G1G507c +      GNO2                                   :  0.100E+01*SUN;
+{ 73646} GGH505C+HV               =       G1G508E +      GNO2                                   :  0.100E+01*SUN;
+{ 73647} GGH505C+HV               =       GHN4013 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 73648} G2G505d +GNO                =       G1G505c +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 73649} G2G505d +GNO                =       GGN502I                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 73650} G2G505d +GHO2               =       GGH505C                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 73651} G2G505d +GNO3               =       G1G505c +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 73652} G2G505d +MEPERO             =  0.480G1G505c + 0.260GGN502K + 0.260GGN502s                 : ARR( 0.164E-12,  -795., 0.0);
+{ 73653} G2G505d +PERO1              =  0.600G1G505c + 0.200GGN502K + 0.200GGN502s                 : ARR( 0.126E-12,  -850., 0.0);
+{ 73654} G2G505d +PERO2              =  0.560G1G505c + 0.220GGN502K + 0.220GGN502s                 : ARR( 0.471E-13, -1350., 0.0);
+{ 73655} G2G505d +PERO3              =  0.600G1G505c + 0.200GGN502K + 0.200GGN502s                 : ARR( 0.142E-12, -1200., 0.0);
+{ 73656} G2G505d +PERO5              =  0.600G1G505c + 0.200GGN502K + 0.200GGN502s                 : ARR( 0.533E-11,   500., 0.0);
+{ 73657} G2G505d +PERO6              =  0.460G1G505c + 0.270GGN502K + 0.270GGN502s                 : ARR( 0.488E-13, -1250., 0.0);
+{ 73658} G2G505d +PERO9              =  0.800G1G505c + 0.200GGN502s                                : ARR( 0.100E-10,     0., 0.0);
+{ 73659} G1G508D                     =       GCH2O   +      GGN400X +      GHO                     : ARR( 0.200E+15,  7395., 0.0);
+{ 73660} G1G508D                     =       GHD2000 +      GGN3005 +      GNO2                    : ARR( 0.200E+15,  6367., 0.0);
+{ 73661} G1G508E                     =       GGN502T +      GHO                                    : ARR( 0.160E+12,  2905., 0.0);
+{ 73662} G1G508E                     =       GHN4013 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 73663} GGN502s +GHO                =       G3G501b                                               : ARR( 0.417E-11,     0., 0.0);
+{ 73664} GGN502s +GHO                =       G3N502n                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 73665} GGN502s +GNO3               =       G3G501b +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 73666} GGN502s+HV               =       GNN400Z +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 73667} GGN502s+HV               =       G1G508F +      GNO2                                   :  0.100E+01*SUN;
+{ 73668} GGN502s+HV               =       G1G507p +      GNO2                                   :  0.100E+01*SUN;
+{ 73669} GGN502s+HV               =       G1G508G +      GNO2                                   :  0.100E+01*SUN;
+{ 73670} GGN502s+HV               =       GGN400X +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 73671} GGN502s+HV               =       GGD3002 +      GND2000 + 2.000GNO2                    :  0.100E+01*SUN;
+{ 73672} G3G501b +GHO2               =  0.800GGG5014 + 0.200GAG501T + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 73673} G3G501b +GNO                =       GGN400X + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 73674} G3G501b +GNO2               =       GPG501Q                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 73675} G3G501b +GNO3               =       GGN400X + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 73676} G3G501b +MEPERO             =  0.685GGN400X + 0.315GAG501T + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 73677} G3G501b +PERO1              =  0.800GGN400X + 0.200GAG501T + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 73678} G3G501b +PERO2              =  0.750GGN400X + 0.250GAG501T + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 73679} G3G501b +PERO3              =  0.800GGN400X + 0.200GAG501T + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 73680} G3G501b +PERO5              =  0.650GGN400X + 0.350GAG501T + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 73681} G3G501b +PERO6              =  0.650GGN400X + 0.350GAG501T + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 73682} G3G501b +PERO9              =       GGN400X +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 73683} G1G508F                     =       GCO     +      GNN400Z +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 73684} G1G508G                     =       GGN400X +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 73685} GGH505D +GHO                =       GGN502o +      GHO                                    : ARR( 0.325E-11,     0., 0.0);
+{ 73686} GGH505D +GHO                =       G2G505e                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 73687} GGH505D +GHO                =       G3H504p                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 73688} GGH505D+HV               =       G1G505n +      GHO                                    :  0.100E+01*SUN;
+{ 73689} GGH505D+HV               =       G1G508H +      GNO2                                   :  0.100E+01*SUN;
+{ 73690} GGH505D+HV               =       G3H3005 +      GGD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 73691} GGH505D+HV               =       G1G508I +      GNO2                                   :  0.100E+01*SUN;
+{ 73692} GGH505D+HV               =       GHN401C +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 73693} G2G505e +GNO                =       G1G505n +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 73694} G2G505e +GNO                =       GGN502L                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 73695} G2G505e +GHO2               =       GGH505D                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 73696} G2G505e +GNO3               =       G1G505n +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 73697} G2G505e +MEPERO             =  0.480G1G505n + 0.260GGN502Y + 0.260GGN502o                 : ARR( 0.164E-12,  -795., 0.0);
+{ 73698} G2G505e +PERO1              =  0.600G1G505n + 0.200GGN502Y + 0.200GGN502o                 : ARR( 0.126E-12,  -850., 0.0);
+{ 73699} G2G505e +PERO2              =  0.560G1G505n + 0.220GGN502Y + 0.220GGN502o                 : ARR( 0.471E-13, -1350., 0.0);
+{ 73700} G2G505e +PERO3              =  0.600G1G505n + 0.200GGN502Y + 0.200GGN502o                 : ARR( 0.142E-12, -1200., 0.0);
+{ 73701} G2G505e +PERO5              =  0.600G1G505n + 0.200GGN502Y + 0.200GGN502o                 : ARR( 0.533E-11,   500., 0.0);
+{ 73702} G2G505e +PERO6              =  0.460G1G505n + 0.270GGN502Y + 0.270GGN502o                 : ARR( 0.488E-13, -1250., 0.0);
+{ 73703} G2G505e +PERO9              =  0.800G1G505n + 0.200GGN502o                                : ARR( 0.100E-10,     0., 0.0);
+{ 73704} G1G508H                     =       GHD2000 +      G3G3001                                : ARR( 0.200E+15,  4123., 0.0);
+{ 73705} G1G508I                     =       G3H3005 +      GGD2000                                : ARR( 0.200E+15,  5396., 0.0);
+{ 73706} GGG400E +GHO                =       GGG400C +      GHO                                    : ARR( 0.503E-10,     0., 0.0);
+{ 73707} GGG400E +GHO                =       G3G400L                                               : ARR( 0.380E-11,  -190., 0.0);
+{ 73708} GGG400E +GHO                =       G2G4019                                               : ARR( 0.380E-11,  -190., 0.0);
+{ 73709} GGG400E+HV               =       GGH3007 +      GHO     +      GHO     +      GCO2     :  0.200E+01*SUN;
+{ 73710} GGG400E+HV               =       G1G401J +      GHO                                    :  0.200E+01*SUN;
+{ 73711} G2G4019 +GNO                =       G1G401J +      GNO2                                   : ARR( 0.259E-11,  -360., 0.0);
+{ 73712} G2G4019 +GNO                =       GGG400B                                               : ARR( 0.111E-12,  -360., 0.0);
+{ 73713} G2G4019 +GHO2               =       GGG400E                                               : ARR( 0.214E-12, -1250., 0.0);
+{ 73714} G2G4019 +GNO3               =       G1G401J +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 73715} G2G4019 +MEPERO             =  0.340G1G401J + 0.330GGG4009 + 0.330GGG400C                 : ARR( 0.565E-13,  -845., 0.0);
+{ 73716} G2G4019 +PERO1              =  0.460G1G401J + 0.270GGG4009 + 0.270GGG400C                 : ARR( 0.434E-13,  -900., 0.0);
+{ 73717} G2G4019 +PERO2              =  0.400G1G401J + 0.300GGG4009 + 0.300GGG400C                 : ARR( 0.162E-13, -1400., 0.0);
+{ 73718} G2G4019 +PERO3              =  0.460G1G401J + 0.270GGG4009 + 0.270GGG400C                 : ARR( 0.488E-13, -1250., 0.0);
+{ 73719} G2G4019 +PERO5              =  0.460G1G401J + 0.270GGG4009 + 0.270GGG400C                 : ARR( 0.183E-11,   450., 0.0);
+{ 73720} G2G4019 +PERO6              =  0.300G1G401J + 0.350GGG4009 + 0.350GGG400C                 : ARR( 0.168E-13, -1300., 0.0);
+{ 73721} G2G4019 +PERO9              =  0.650G1G401J + 0.350GGG400C                                : ARR( 0.100E-10,     0., 0.0);
+{ 73722} GGH505E +GHO                =       GGN502t +      GHO                                    : ARR( 0.504E-11,     0., 0.0);
+{ 73723} GGH505E +GHO                =       G3G501c                                               : ARR( 0.416E-11,     0., 0.0);
+{ 73724} GGH505E +GHO                =       G3H504s                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 73725} GGH505E +GHO                =       G2G505f                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 73726} GGH505E +GNO3               =       G3G501c +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 73727} GGH505E+HV               =       GNN400Z +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 73728} GGH505E+HV               =       G1G508F +      GHO                                    :  0.100E+01*SUN;
+{ 73729} GGH505E+HV               =       G1G507x +      GNO2                                   :  0.100E+01*SUN;
+{ 73730} GGH505E+HV               =       G1G508J +      GNO2                                   :  0.100E+01*SUN;
+{ 73731} GGH505E+HV               =       GGH400r +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 73732} GGH505E+HV               =       GGD3002 +      GND2000 +      GNO2    +      GHO      :  0.100E+01*SUN;
+{ 73733} G3G501c +GHO2               =  0.800GGG5015 + 0.200GAG501W + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 73734} G3G501c +GNO                =       GGH400r + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 73735} G3G501c +GNO2               =       GPG501T                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 73736} G3G501c +GNO3               =       GGH400r + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 73737} G3G501c +MEPERO             =  0.685GGH400r + 0.315GAG501W + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 73738} G3G501c +PERO1              =  0.800GGH400r + 0.200GAG501W + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 73739} G3G501c +PERO2              =  0.750GGH400r + 0.250GAG501W + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 73740} G3G501c +PERO3              =  0.800GGH400r + 0.200GAG501W + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 73741} G3G501c +PERO5              =  0.650GGH400r + 0.350GAG501W + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 73742} G3G501c +PERO6              =  0.650GGH400r + 0.350GAG501W + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 73743} G3G501c +PERO9              =       GGH400r +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 73744} G2G505f +GNO                =       G1G508F +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 73745} G2G505f +GNO                =       GGN502s                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 73746} G2G505f +GHO2               =       GGH505E                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 73747} G2G505f +GNO3               =       G1G508F +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 73748} G2G505f +MEPERO             =  0.340G1G508F + 0.330GGN502T + 0.330GGN502t                 : ARR( 0.565E-13,  -845., 0.0);
+{ 73749} G2G505f +PERO1              =  0.460G1G508F + 0.270GGN502T + 0.270GGN502t                 : ARR( 0.434E-13,  -900., 0.0);
+{ 73750} G2G505f +PERO2              =  0.400G1G508F + 0.300GGN502T + 0.300GGN502t                 : ARR( 0.162E-13, -1400., 0.0);
+{ 73751} G2G505f +PERO3              =  0.460G1G508F + 0.270GGN502T + 0.270GGN502t                 : ARR( 0.488E-13, -1250., 0.0);
+{ 73752} G2G505f +PERO5              =  0.460G1G508F + 0.270GGN502T + 0.270GGN502t                 : ARR( 0.183E-11,   450., 0.0);
+{ 73753} G2G505f +PERO6              =  0.300G1G508F + 0.350GGN502T + 0.350GGN502t                 : ARR( 0.168E-13, -1300., 0.0);
+{ 73754} G2G505f +PERO9              =  0.650G1G508F + 0.350GGN502t                                : ARR( 0.100E-10,     0., 0.0);
+{ 73755} G1G508J                     =       GGH400r +      GCO     +      GHO2                    : ARR( 0.200E+15,  5691., 0.0);
+{ 73756} GGN502t +GHO                =       G3G501d                                               : ARR( 0.417E-11,     0., 0.0);
+{ 73757} GGN502t +GHO                =       G3N502q                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 73758} GGN502t +GNO3               =       G3G501d +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 73759} GGN502t+HV               =       GAN400Y +      GCO2                                   :  0.100E+01*SUN;
+{ 73760} GGN502t+HV               =       G1G507u +      GNO2                                   :  0.100E+01*SUN;
+{ 73761} GGN502t+HV               =       G1G508K +      GNO2                                   :  0.100E+01*SUN;
+{ 73762} GGN502t+HV               =       GGN400b +      GCO     +      GNO2    +      GHO2     :  0.100E+01*SUN;
+{ 73763} G3G501d +GHO2               =  0.800GGG5016 + 0.200GAG501o + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 73764} G3G501d +GNO                =       GGN400b + 2.000GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 73765} G3G501d +GNO2               =       GPG501o                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 73766} G3G501d +GNO3               =       GGN400b + 2.000GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 73767} G3G501d +MEPERO             =  0.685GGN400b + 0.315GAG501o + 0.685GNO2    + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 73768} G3G501d +PERO1              =  0.800GGN400b + 0.200GAG501o + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 73769} G3G501d +PERO2              =  0.750GGN400b + 0.250GAG501o + 0.750GNO2    + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 73770} G3G501d +PERO3              =  0.800GGN400b + 0.200GAG501o + 0.800GNO2    + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 73771} G3G501d +PERO5              =  0.650GGN400b + 0.350GAG501o + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 73772} G3G501d +PERO6              =  0.650GGN400b + 0.350GAG501o + 0.650GNO2    + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 73773} G3G501d +PERO9              =       GGN400b +      GNO2    +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 73774} G1G508K                     =       GGN400b +      GCO     +      GHO2                    : ARR( 0.200E+15,  4861., 0.0);
+{ 73775} GGG500c +GHO                =       GGG5016 +      GHO2                                   : ARR( 0.128E-11,     0., 0.0);
+{ 73776} GGG500c +GHO                =       G3G500w                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 73777} GGG500c +GHO                =       G3G500v                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 73778} GGG500c+HV               =       GGN400X +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 73779} GGG500c+HV               =       G1G508L +      GNO2                                   :  0.100E+01*SUN;
+{ 73780} GGG500c+HV               =       G1G508M +      GNO2                                   :  0.100E+01*SUN;
+{ 73781} GGG500c+HV               =       GGN400U +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 73782} G1G508L                     =       GGN3005 +      GGD2000 +      GHO2                    : ARR( 0.200E+15,  3099., 0.0);
+{ 73783} G1G508M                     =       GGN400U +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 73784} GGH505F +GHO                =       GGN502k +      GHO                                    : ARR( 0.504E-11,     0., 0.0);
+{ 73785} GGH505F +GHO                =       G3G501e                                               : ARR( 0.208E-10,     0., 0.0);
+{ 73786} GGH505F +GHO                =       G3H504r                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 73787} GGH505F +GHO                =       G2G505g                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 73788} GGH505F +GNO3               =       G3G501e +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 73789} GGH505F+HV               =       GHN400y +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 73790} GGH505F+HV               =       G1G508N +      GNO2                                   :  0.100E+01*SUN;
+{ 73791} GGH505F+HV               =       G1G507s +      GNO2                                   :  0.100E+01*SUN;
+{ 73792} GGH505F+HV               =       G1G508G +      GHO                                    :  0.100E+01*SUN;
+{ 73793} GGH505F+HV               =       GGN400X +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 73794} G3G501e +GHO2               =  0.800GGG5015 + 0.200GAG501p + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 73795} G3G501e +GNO                =       GGN400X +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 73796} G3G501e +GNO2               =       GPG501S                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 73797} G3G501e +GNO3               =       GGN400X +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 73798} G3G501e +MEPERO             =  0.685GGN400X + 0.315GAG501p + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 73799} G3G501e +PERO1              =  0.800GGN400X + 0.200GAG501p + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 73800} G3G501e +PERO2              =  0.750GGN400X + 0.250GAG501p + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 73801} G3G501e +PERO3              =  0.800GGN400X + 0.200GAG501p + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 73802} G3G501e +PERO5              =  0.650GGN400X + 0.350GAG501p + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 73803} G3G501e +PERO6              =  0.650GGN400X + 0.350GAG501p + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 73804} G3G501e +PERO9              =       GGN400X +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 73805} G2G505g +GNO                =       G1G508G +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 73806} G2G505g +GNO                =       GGN502s                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 73807} G2G505g +GHO2               =       GGH505F                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 73808} G2G505g +GNO3               =       G1G508G +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 73809} G2G505g +MEPERO             =  0.340G1G508G + 0.330GGN502U + 0.330GGN502k                 : ARR( 0.565E-13,  -845., 0.0);
+{ 73810} G2G505g +PERO1              =  0.460G1G508G + 0.270GGN502U + 0.270GGN502k                 : ARR( 0.434E-13,  -900., 0.0);
+{ 73811} G2G505g +PERO2              =  0.400G1G508G + 0.300GGN502U + 0.300GGN502k                 : ARR( 0.162E-13, -1400., 0.0);
+{ 73812} G2G505g +PERO3              =  0.460G1G508G + 0.270GGN502U + 0.270GGN502k                 : ARR( 0.488E-13, -1250., 0.0);
+{ 73813} G2G505g +PERO5              =  0.460G1G508G + 0.270GGN502U + 0.270GGN502k                 : ARR( 0.183E-11,   450., 0.0);
+{ 73814} G2G505g +PERO6              =  0.300G1G508G + 0.350GGN502U + 0.350GGN502k                 : ARR( 0.168E-13, -1300., 0.0);
+{ 73815} G2G505g +PERO9              =  0.650G1G508G + 0.350GGN502k                                : ARR( 0.100E-10,     0., 0.0);
+{ 73816} G1G508N                     =       GCO     +      GHN400y +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 73817} GGH505G +GHO                =       GGH505H +      GHO                                    : ARR( 0.507E-11,     0., 0.0);
+{ 73818} GGH505G +GHO                =       GGH505I +      GHO                                    : ARR( 0.507E-11,     0., 0.0);
+{ 73819} GGH505G +GHO                =       G3G501f                                               : ARR( 0.210E-10,     0., 0.0);
+{ 73820} GGH505G +GHO                =       G3H504t                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 73821} GGH505G +GHO                =       G2G505h                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 73822} GGH505G +GHO                =       G2G505i                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 73823} GGH505G +GNO3               =       G3G501f +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 73824} GGH505G+HV               =       GHN400y +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 73825} GGH505G+HV               =       G1G508N +      GHO                                    :  0.100E+01*SUN;
+{ 73826} GGH505G+HV               =       G1G508C +      GNO2                                   :  0.100E+01*SUN;
+{ 73827} GGH505G+HV               =       G1G508J +      GHO                                    :  0.100E+01*SUN;
+{ 73828} GGH505G+HV               =       GGH400r +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 73829} G3G501f +GHO2               =  0.800GGG5017 + 0.200GAG501q + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 73830} G3G501f +GNO                =       GGH400r +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 73831} G3G501f +GNO2               =       GPG501q                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 73832} G3G501f +GNO3               =       GGH400r +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 73833} G3G501f +MEPERO             =  0.685GGH400r + 0.315GAG501q + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 73834} G3G501f +PERO1              =  0.800GGH400r + 0.200GAG501q + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 73835} G3G501f +PERO2              =  0.750GGH400r + 0.250GAG501q + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 73836} G3G501f +PERO3              =  0.800GGH400r + 0.200GAG501q + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 73837} G3G501f +PERO5              =  0.650GGH400r + 0.350GAG501q + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 73838} G3G501f +PERO6              =  0.650GGH400r + 0.350GAG501q + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 73839} G3G501f +PERO9              =       GGH400r +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 73840} G2G505h +GNO                =       G1G508N +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 73841} G2G505h +GNO                =       GGH505F                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 73842} G2G505h +GHO2               =       GGH505G                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 73843} G2G505h +GNO3               =       G1G508N +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 73844} G2G505h +MEPERO             =  0.340G1G508N + 0.330GGH503T + 0.330GGH505H                 : ARR( 0.565E-13,  -845., 0.0);
+{ 73845} G2G505h +PERO1              =  0.460G1G508N + 0.270GGH503T + 0.270GGH505H                 : ARR( 0.434E-13,  -900., 0.0);
+{ 73846} G2G505h +PERO2              =  0.400G1G508N + 0.300GGH503T + 0.300GGH505H                 : ARR( 0.162E-13, -1400., 0.0);
+{ 73847} G2G505h +PERO3              =  0.460G1G508N + 0.270GGH503T + 0.270GGH505H                 : ARR( 0.488E-13, -1250., 0.0);
+{ 73848} G2G505h +PERO5              =  0.460G1G508N + 0.270GGH503T + 0.270GGH505H                 : ARR( 0.183E-11,   450., 0.0);
+{ 73849} G2G505h +PERO6              =  0.300G1G508N + 0.350GGH503T + 0.350GGH505H                 : ARR( 0.168E-13, -1300., 0.0);
+{ 73850} G2G505h +PERO9              =  0.650G1G508N + 0.350GGH505H                                : ARR( 0.100E-10,     0., 0.0);
+{ 73851} G2G505i +GNO                =       G1G508J +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 73852} G2G505i +GNO                =       GGH505E                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 73853} G2G505i +GHO2               =       GGH505G                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 73854} G2G505i +GNO3               =       G1G508J +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 73855} G2G505i +MEPERO             =  0.340G1G508J + 0.330GGH503U + 0.330GGH505I                 : ARR( 0.565E-13,  -845., 0.0);
+{ 73856} G2G505i +PERO1              =  0.460G1G508J + 0.270GGH503U + 0.270GGH505I                 : ARR( 0.434E-13,  -900., 0.0);
+{ 73857} G2G505i +PERO2              =  0.400G1G508J + 0.300GGH503U + 0.300GGH505I                 : ARR( 0.162E-13, -1400., 0.0);
+{ 73858} G2G505i +PERO3              =  0.460G1G508J + 0.270GGH503U + 0.270GGH505I                 : ARR( 0.488E-13, -1250., 0.0);
+{ 73859} G2G505i +PERO5              =  0.460G1G508J + 0.270GGH503U + 0.270GGH505I                 : ARR( 0.183E-11,   450., 0.0);
+{ 73860} G2G505i +PERO6              =  0.300G1G508J + 0.350GGH503U + 0.350GGH505I                 : ARR( 0.168E-13, -1300., 0.0);
+{ 73861} G2G505i +PERO9              =  0.650G1G508J + 0.350GGH505I                                : ARR( 0.100E-10,     0., 0.0);
+{ 73862} GGH505H +GHO                =       GGN502r +      GHO                                    : ARR( 0.506E-11,     0., 0.0);
+{ 73863} GGH505H +GHO                =       G3G501g                                               : ARR( 0.209E-10,     0., 0.0);
+{ 73864} GGH505H +GHO                =       G3H505H                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 73865} GGH505H +GHO                =       G2G505j                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 73866} GGH505H +GNO3               =       G3G501g +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 73867} GGH505H+HV               =       GAH400r +      GCO2                                   :  0.100E+01*SUN;
+{ 73868} GGH505H+HV               =       G1G508O +      GNO2                                   :  0.100E+01*SUN;
+{ 73869} GGH505H+HV               =       G1G508K +      GHO                                    :  0.100E+01*SUN;
+{ 73870} GGH505H+HV               =       GGN400b +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 73871} G3G501g +GHO2               =  0.800GGG5018 + 0.200GAG5024 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 73872} G3G501g +GNO                =       GGN400b +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 73873} G3G501g +GNO2               =       GPG5021                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 73874} G3G501g +GNO3               =       GGN400b +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 73875} G3G501g +MEPERO             =  0.685GGN400b + 0.315GAG5024 + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 73876} G3G501g +PERO1              =  0.800GGN400b + 0.200GAG5024 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 73877} G3G501g +PERO2              =  0.750GGN400b + 0.250GAG5024 + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 73878} G3G501g +PERO3              =  0.800GGN400b + 0.200GAG5024 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 73879} G3G501g +PERO5              =  0.650GGN400b + 0.350GAG5024 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 73880} G3G501g +PERO6              =  0.650GGN400b + 0.350GAG5024 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 73881} G3G501g +PERO9              =       GGN400b +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 73882} G2G505j +GNO                =       G1G508K +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 73883} G2G505j +GNO                =       GGN502t                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 73884} G2G505j +GHO2               =       GGH505H                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 73885} G2G505j +GNO3               =       G1G508K +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 73886} G2G505j +MEPERO             =  0.340G1G508K + 0.330GGN502g + 0.330GGN502r                 : ARR( 0.565E-13,  -845., 0.0);
+{ 73887} G2G505j +PERO1              =  0.460G1G508K + 0.270GGN502g + 0.270GGN502r                 : ARR( 0.434E-13,  -900., 0.0);
+{ 73888} G2G505j +PERO2              =  0.400G1G508K + 0.300GGN502g + 0.300GGN502r                 : ARR( 0.162E-13, -1400., 0.0);
+{ 73889} G2G505j +PERO3              =  0.460G1G508K + 0.270GGN502g + 0.270GGN502r                 : ARR( 0.488E-13, -1250., 0.0);
+{ 73890} G2G505j +PERO5              =  0.460G1G508K + 0.270GGN502g + 0.270GGN502r                 : ARR( 0.183E-11,   450., 0.0);
+{ 73891} G2G505j +PERO6              =  0.300G1G508K + 0.350GGN502g + 0.350GGN502r                 : ARR( 0.168E-13, -1300., 0.0);
+{ 73892} G2G505j +PERO9              =  0.650G1G508K + 0.350GGN502r                                : ARR( 0.100E-10,     0., 0.0);
+{ 73893} G1G508O                     =       GCO     +      GHD3004 +      GHO2    +      GCO      : ARR( 0.200E+15,  2436., 0.0);
+{ 73894} GGG500d +GHO                =       GGG5018 +      GHO2                                   : ARR( 0.128E-11,     0., 0.0);
+{ 73895} GGG500d +GHO                =       GGG500l +      GHO                                    : ARR( 0.510E-11,     0., 0.0);
+{ 73896} GGG500d +GHO                =       G3G500y                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 73897} GGG500d +GHO                =       G2G505k                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 73898} GGG500d +GHO                =       G3G500x                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 73899} GGG500d+HV               =       GGH400r +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 73900} GGG500d+HV               =       G1G508P +      GNO2                                   :  0.100E+01*SUN;
+{ 73901} GGG500d+HV               =       G1G508M +      GHO                                    :  0.100E+01*SUN;
+{ 73902} GGG500d+HV               =       GGN400U +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 73903} G2G505k +GNO                =       G1G508M +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 73904} G2G505k +GNO                =       GGG500c                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 73905} G2G505k +GHO2               =       GGG500d                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 73906} G2G505k +GNO3               =       G1G508M +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 73907} G2G505k +MEPERO             =  0.340G1G508M + 0.330GGG500G + 0.330GGG500l                 : ARR( 0.565E-13,  -845., 0.0);
+{ 73908} G2G505k +PERO1              =  0.460G1G508M + 0.270GGG500G + 0.270GGG500l                 : ARR( 0.434E-13,  -900., 0.0);
+{ 73909} G2G505k +PERO2              =  0.400G1G508M + 0.300GGG500G + 0.300GGG500l                 : ARR( 0.162E-13, -1400., 0.0);
+{ 73910} G2G505k +PERO3              =  0.460G1G508M + 0.270GGG500G + 0.270GGG500l                 : ARR( 0.488E-13, -1250., 0.0);
+{ 73911} G2G505k +PERO5              =  0.460G1G508M + 0.270GGG500G + 0.270GGG500l                 : ARR( 0.183E-11,   450., 0.0);
+{ 73912} G2G505k +PERO6              =  0.300G1G508M + 0.350GGG500G + 0.350GGG500l                 : ARR( 0.168E-13, -1300., 0.0);
+{ 73913} G2G505k +PERO9              =  0.650G1G508M + 0.350GGG500l                                : ARR( 0.100E-10,     0., 0.0);
+{ 73914} G1G508P                     =       GGH3007 +      GGD2000 +      GHO2                    : ARR( 0.200E+15,  3099., 0.0);
+{ 73915} GAG501H +GHO                =       GAG501S +      GHO                                    : ARR( 0.396E-11,     0., 0.0);
+{ 73916} GAG501H +GHO                =       GAG5024 +      GHO2                                   : ARR( 0.134E-11,     0., 0.0);
+{ 73917} GAG501H +GHO                =       G2A506o                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 73918} GAG501H +GHO                =       G3A5018                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 73919} GAG501H+HV               =       G1A508g +      GHO                                    :  0.100E+01*SUN;
+{ 73920} GAG501H+HV               =       G1A509M +      GNO2                                   :  0.100E+01*SUN;
+{ 73921} GAG501H+HV               =       GAH400l +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 73922} G2A506o +GNO                =       G1A508g +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 73923} G2A506o +GNO                =       GAG500p                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 73924} G2A506o +GHO2               =       GAG501H                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 73925} G2A506o +GNO3               =       G1A508g +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 73926} G2A506o +MEPERO             =  0.340G1A508g + 0.330GAG500U + 0.330GAG501S                 : ARR( 0.565E-13,  -845., 0.0);
+{ 73927} G2A506o +PERO1              =  0.460G1A508g + 0.270GAG500U + 0.270GAG501S                 : ARR( 0.434E-13,  -900., 0.0);
+{ 73928} G2A506o +PERO2              =  0.400G1A508g + 0.300GAG500U + 0.300GAG501S                 : ARR( 0.162E-13, -1400., 0.0);
+{ 73929} G2A506o +PERO3              =  0.460G1A508g + 0.270GAG500U + 0.270GAG501S                 : ARR( 0.488E-13, -1250., 0.0);
+{ 73930} G2A506o +PERO5              =  0.460G1A508g + 0.270GAG500U + 0.270GAG501S                 : ARR( 0.183E-11,   450., 0.0);
+{ 73931} G2A506o +PERO6              =  0.300G1A508g + 0.350GAG500U + 0.350GAG501S                 : ARR( 0.168E-13, -1300., 0.0);
+{ 73932} G2A506o +PERO9              =  0.650G1A508g + 0.350GAG501S                                : ARR( 0.100E-10,     0., 0.0);
+{ 73933} G1A509M                     =       GAH3007 +      GGD2000 +      GHO2                    : ARR( 0.200E+15,  3099., 0.0);
+{ 73934} GPG501H                     =       G3G500x +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 73935} GPG501H +GHO                =       GPG5021 +      GHO2                                   : ARR( 0.128E-11,     0., 0.0);
+{ 73936} GPG501H +GHO                =       GPG500v +      GHO                                    : ARR( 0.512E-11,     0., 0.0);
+{ 73937} GPG501H +GHO                =       G3P5016                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 73938} GPG501H +GHO                =       G2P507h                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 73939} GPG501H+HV               =       GPH400m +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 73940} GPG501H+HV               =       G1P50AZ +      GNO2                                   :  0.100E+01*SUN;
+{ 73941} GPG501H+HV               =       G1P509s +      GHO                                    :  0.100E+01*SUN;
+{ 73942} GPG501H+HV               =       G3G500x +      GNO2                                   :  0.100E+01*SUN;
+{ 73943} G2P507h +GNO                =       G1P509s +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 73944} G2P507h +GNO                =       GPG500t                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 73945} G2P507h +GHO2               =       GPG501H                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 73946} G2P507h +GNO3               =       G1P509s +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 73947} G2P507h +MEPERO             =  0.340G1P509s + 0.330GPG500C + 0.330GPG500v                 : ARR( 0.565E-13,  -845., 0.0);
+{ 73948} G2P507h +PERO1              =  0.460G1P509s + 0.270GPG500C + 0.270GPG500v                 : ARR( 0.434E-13,  -900., 0.0);
+{ 73949} G2P507h +PERO2              =  0.400G1P509s + 0.300GPG500C + 0.300GPG500v                 : ARR( 0.162E-13, -1400., 0.0);
+{ 73950} G2P507h +PERO3              =  0.460G1P509s + 0.270GPG500C + 0.270GPG500v                 : ARR( 0.488E-13, -1250., 0.0);
+{ 73951} G2P507h +PERO5              =  0.460G1P509s + 0.270GPG500C + 0.270GPG500v                 : ARR( 0.183E-11,   450., 0.0);
+{ 73952} G2P507h +PERO6              =  0.300G1P509s + 0.350GPG500C + 0.350GPG500v                 : ARR( 0.168E-13, -1300., 0.0);
+{ 73953} G2P507h +PERO9              =  0.650G1P509s + 0.350GPG500v                                : ARR( 0.100E-10,     0., 0.0);
+{ 73954} G1P50AZ                     =       GGD2000 +      GPH3007 +      GHO2                    : ARR( 0.200E+15,  3099., 0.0);
+{ 73955} GGH505I +GHO                =       GGN502r +      GHO                                    : ARR( 0.504E-11,     0., 0.0);
+{ 73956} GGH505I +GHO                =       G3G400J +      GCO                                    : ARR( 0.127E-10,     0., 0.0);
+{ 73957} GGH505I +GHO                =       G3H504u                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 73958} GGH505I +GHO                =       G2G505l                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 73959} GGH505I +GNO3               =       G3G400J +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 73960} GGH505I+HV               =       GND400N +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 73961} GGH505I+HV               =       G1G507U +      GHO                                    :  0.100E+01*SUN;
+{ 73962} GGH505I+HV               =       G1G507z +      GNO2                                   :  0.100E+01*SUN;
+{ 73963} GGH505I+HV               =       G3G400J +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 73964} GGH505I+HV               =       GGH400r +      GCO                                    :  0.100E+01*SUN;
+{ 73965} GGH505I+HV               =       GGH3003 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 73966} G2G505l +GNO                =       G1G507U +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 73967} G2G505l +GNO                =       GGN502k                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 73968} G2G505l +GHO2               =       GGH505I                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 73969} G2G505l +GNO3               =       G1G507U +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 73970} G2G505l +MEPERO             =  0.340G1G507U + 0.330GGN502h + 0.330GGN502r                 : ARR( 0.565E-13,  -845., 0.0);
+{ 73971} G2G505l +PERO1              =  0.460G1G507U + 0.270GGN502h + 0.270GGN502r                 : ARR( 0.434E-13,  -900., 0.0);
+{ 73972} G2G505l +PERO2              =  0.400G1G507U + 0.300GGN502h + 0.300GGN502r                 : ARR( 0.162E-13, -1400., 0.0);
+{ 73973} G2G505l +PERO3              =  0.460G1G507U + 0.270GGN502h + 0.270GGN502r                 : ARR( 0.488E-13, -1250., 0.0);
+{ 73974} G2G505l +PERO5              =  0.460G1G507U + 0.270GGN502h + 0.270GGN502r                 : ARR( 0.183E-11,   450., 0.0);
+{ 73975} G2G505l +PERO6              =  0.300G1G507U + 0.350GGN502h + 0.350GGN502r                 : ARR( 0.168E-13, -1300., 0.0);
+{ 73976} G2G505l +PERO9              =  0.650G1G507U + 0.350GGN502r                                : ARR( 0.100E-10,     0., 0.0);
+{ 73977} GAH505N +GHO                =       GAN502m +      GHO                                    : ARR( 0.383E-11,     0., 0.0);
+{ 73978} GAH505N +GHO                =       G3A400G +      GCO                                    : ARR( 0.130E-10,     0., 0.0);
+{ 73979} GAH505N +GHO                =       G2A506p                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 73980} GAH505N +GNO3               =       G3A400G +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 73981} GAH505N+HV               =       G1A5084 +      GHO                                    :  0.100E+01*SUN;
+{ 73982} GAH505N+HV               =       G1A509N +      GNO2                                   :  0.100E+01*SUN;
+{ 73983} GAH505N+HV               =       G3A400G +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 73984} GAH505N+HV               =       GAH400l +      GCO                                    :  0.100E+01*SUN;
+{ 73985} GAH505N+HV               =       GAH3003 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 73986} G2A506p +GNO                =       G1A5084 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 73987} G2A506p +GNO                =       GAN502l                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 73988} G2A506p +GHO2               =       GAH505N                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 73989} G2A506p +GNO3               =       G1A5084 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 73990} G2A506p +MEPERO             =  0.340G1A5084 + 0.330GAN502i + 0.330GAN502m                 : ARR( 0.565E-13,  -845., 0.0);
+{ 73991} G2A506p +PERO1              =  0.460G1A5084 + 0.270GAN502i + 0.270GAN502m                 : ARR( 0.434E-13,  -900., 0.0);
+{ 73992} G2A506p +PERO2              =  0.400G1A5084 + 0.300GAN502i + 0.300GAN502m                 : ARR( 0.162E-13, -1400., 0.0);
+{ 73993} G2A506p +PERO3              =  0.460G1A5084 + 0.270GAN502i + 0.270GAN502m                 : ARR( 0.488E-13, -1250., 0.0);
+{ 73994} G2A506p +PERO5              =  0.460G1A5084 + 0.270GAN502i + 0.270GAN502m                 : ARR( 0.183E-11,   450., 0.0);
+{ 73995} G2A506p +PERO6              =  0.300G1A5084 + 0.350GAN502i + 0.350GAN502m                 : ARR( 0.168E-13, -1300., 0.0);
+{ 73996} G2A506p +PERO9              =  0.650G1A5084 + 0.350GAN502m                                : ARR( 0.100E-10,     0., 0.0);
+{ 73997} G1A509N                     =       GAH3007 +      G3D2000                                : ARR( 0.200E+15,  2403., 0.0);
+{ 73998} GPH505U                     =       G3H504u +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 73999} GPH505U +GHO                =       GPN502m +      GHO                                    : ARR( 0.504E-11,     0., 0.0);
+{ 74000} GPH505U +GHO                =       G3P400G +      GCO                                    : ARR( 0.127E-10,     0., 0.0);
+{ 74001} GPH505U +GHO                =       G2P507i                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 74002} GPH505U +GNO3               =       G3P400G +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 74003} GPH505U+HV               =       G3H504u +      GNO2                                   :  0.100E+01*SUN;
+{ 74004} GPH505U+HV               =       G1P508r +      GHO                                    :  0.100E+01*SUN;
+{ 74005} GPH505U+HV               =       G1P50AF +      GNO2                                   :  0.100E+01*SUN;
+{ 74006} GPH505U+HV               =       G3P400G +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 74007} GPH505U+HV               =       GPH400m +      GCO                                    :  0.100E+01*SUN;
+{ 74008} GPH505U+HV               =       GPH3003 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 74009} G2P507i +GNO                =       G1P508r +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 74010} G2P507i +GNO                =       GPN502l                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 74011} G2P507i +GHO2               =       GPH505U                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 74012} G2P507i +GNO3               =       G1P508r +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 74013} G2P507i +MEPERO             =  0.340G1P508r + 0.330GPN502K + 0.330GPN502m                 : ARR( 0.565E-13,  -845., 0.0);
+{ 74014} G2P507i +PERO1              =  0.460G1P508r + 0.270GPN502K + 0.270GPN502m                 : ARR( 0.434E-13,  -900., 0.0);
+{ 74015} G2P507i +PERO2              =  0.400G1P508r + 0.300GPN502K + 0.300GPN502m                 : ARR( 0.162E-13, -1400., 0.0);
+{ 74016} G2P507i +PERO3              =  0.460G1P508r + 0.270GPN502K + 0.270GPN502m                 : ARR( 0.488E-13, -1250., 0.0);
+{ 74017} G2P507i +PERO5              =  0.460G1P508r + 0.270GPN502K + 0.270GPN502m                 : ARR( 0.183E-11,   450., 0.0);
+{ 74018} G2P507i +PERO6              =  0.300G1P508r + 0.350GPN502K + 0.350GPN502m                 : ARR( 0.168E-13, -1300., 0.0);
+{ 74019} G2P507i +PERO9              =  0.650G1P508r + 0.350GPN502m                                : ARR( 0.100E-10,     0., 0.0);
+{ 74020} GGG500e +GHO                =       GGG500M +      GHO                                    : ARR( 0.831E-11,     0., 0.0);
+{ 74021} GGG500e +GHO                =       GGG500w +      GHO2                                   : ARR( 0.634E-11,     0., 0.0);
+{ 74022} GGG500e +GHO                =       G3G500z                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 74023} GGG500e +GHO                =       G2G505m                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 74024} GGG500e +GHO                =       G3G5018                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 74025} GGG500e+HV               =       GGH400i +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 74026} GGG500e+HV               =       G1G508Q +      GNO2                                   :  0.100E+01*SUN;
+{ 74027} GGG500e+HV               =       G1G508L +      GHO                                    :  0.100E+01*SUN;
+{ 74028} GGG500e+HV               =       GGH400o +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 74029} G2G505m +GNO                =       G1G508L +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 74030} G2G505m +GNO                =       GGG500c                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 74031} G2G505m +GHO2               =       GGG500e                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 74032} G2G505m +GNO3               =       G1G508L +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 74033} G2G505m +MEPERO             =  0.340G1G508L + 0.330GGG500f + 0.330GGG500M                 : ARR( 0.565E-13,  -845., 0.0);
+{ 74034} G2G505m +PERO1              =  0.460G1G508L + 0.270GGG500f + 0.270GGG500M                 : ARR( 0.434E-13,  -900., 0.0);
+{ 74035} G2G505m +PERO2              =  0.400G1G508L + 0.300GGG500f + 0.300GGG500M                 : ARR( 0.162E-13, -1400., 0.0);
+{ 74036} G2G505m +PERO3              =  0.460G1G508L + 0.270GGG500f + 0.270GGG500M                 : ARR( 0.488E-13, -1250., 0.0);
+{ 74037} G2G505m +PERO5              =  0.460G1G508L + 0.270GGG500f + 0.270GGG500M                 : ARR( 0.183E-11,   450., 0.0);
+{ 74038} G2G505m +PERO6              =  0.300G1G508L + 0.350GGG500f + 0.350GGG500M                 : ARR( 0.168E-13, -1300., 0.0);
+{ 74039} G2G505m +PERO9              =  0.650G1G508L + 0.350GGG500M                                : ARR( 0.100E-10,     0., 0.0);
+{ 74040} G1G508Q                     =       GGH400i +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 74041} GAG501I +GHO                =       GAG500r +      GHO                                    : ARR( 0.851E-11,     0., 0.0);
+{ 74042} GAG501I +GHO                =       GAG501l +      GHO2                                   : ARR( 0.649E-11,     0., 0.0);
+{ 74043} GAG501I +GHO                =       G2A506q                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 74044} GAG501I +GHO                =       G3A501C                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 74045} GAG501I+HV               =       G1A509O +      GNO2                                   :  0.100E+01*SUN;
+{ 74046} GAG501I+HV               =       G1A508h +      GHO                                    :  0.100E+01*SUN;
+{ 74047} GAG501I+HV               =       GAH400r +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 74048} G2A506q +GNO                =       G1A508h +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 74049} G2A506q +GNO                =       GAG500p                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 74050} G2A506q +GHO2               =       GAG501I                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 74051} G2A506q +GNO3               =       G1A508h +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 74052} G2A506q +MEPERO             =  0.340G1A508h + 0.330GAG501J + 0.330GAG500r                 : ARR( 0.565E-13,  -845., 0.0);
+{ 74053} G2A506q +PERO1              =  0.460G1A508h + 0.270GAG501J + 0.270GAG500r                 : ARR( 0.434E-13,  -900., 0.0);
+{ 74054} G2A506q +PERO2              =  0.400G1A508h + 0.300GAG501J + 0.300GAG500r                 : ARR( 0.162E-13, -1400., 0.0);
+{ 74055} G2A506q +PERO3              =  0.460G1A508h + 0.270GAG501J + 0.270GAG500r                 : ARR( 0.488E-13, -1250., 0.0);
+{ 74056} G2A506q +PERO5              =  0.460G1A508h + 0.270GAG501J + 0.270GAG500r                 : ARR( 0.183E-11,   450., 0.0);
+{ 74057} G2A506q +PERO6              =  0.300G1A508h + 0.350GAG501J + 0.350GAG500r                 : ARR( 0.168E-13, -1300., 0.0);
+{ 74058} G2A506q +PERO9              =  0.650G1A508h + 0.350GAG500r                                : ARR( 0.100E-10,     0., 0.0);
+{ 74059} G1A509O                     =       GCO     +      GGH400i +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 74060} GPG501I                     =       G3G500z +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 74061} GPG501I +GHO                =       GPG501l +      GHO2                                   : ARR( 0.634E-11,     0., 0.0);
+{ 74062} GPG501I +GHO                =       GPG500h +      GHO                                    : ARR( 0.832E-11,     0., 0.0);
+{ 74063} GPG501I +GHO                =       G3P501A                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 74064} GPG501I +GHO                =       G2P507j                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 74065} GPG501I+HV               =       GPH400s +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 74066} GPG501I+HV               =       G1P509r +      GHO                                    :  0.100E+01*SUN;
+{ 74067} GPG501I+HV               =       G1P50Aa +      GNO2                                   :  0.100E+01*SUN;
+{ 74068} GPG501I+HV               =       G3G500z +      GNO2                                   :  0.100E+01*SUN;
+{ 74069} G2P507j +GNO                =       G1P509r +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 74070} G2P507j +GNO                =       GPG500t                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 74071} G2P507j +GHO2               =       GPG501I                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 74072} G2P507j +GNO3               =       G1P509r +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 74073} G2P507j +MEPERO             =  0.340G1P509r + 0.330GPG501J + 0.330GPG500h                 : ARR( 0.565E-13,  -845., 0.0);
+{ 74074} G2P507j +PERO1              =  0.460G1P509r + 0.270GPG501J + 0.270GPG500h                 : ARR( 0.434E-13,  -900., 0.0);
+{ 74075} G2P507j +PERO2              =  0.400G1P509r + 0.300GPG501J + 0.300GPG500h                 : ARR( 0.162E-13, -1400., 0.0);
+{ 74076} G2P507j +PERO3              =  0.460G1P509r + 0.270GPG501J + 0.270GPG500h                 : ARR( 0.488E-13, -1250., 0.0);
+{ 74077} G2P507j +PERO5              =  0.460G1P509r + 0.270GPG501J + 0.270GPG500h                 : ARR( 0.183E-11,   450., 0.0);
+{ 74078} G2P507j +PERO6              =  0.300G1P509r + 0.350GPG501J + 0.350GPG500h                 : ARR( 0.168E-13, -1300., 0.0);
+{ 74079} G2P507j +PERO9              =  0.650G1P509r + 0.350GPG500h                                : ARR( 0.100E-10,     0., 0.0);
+{ 74080} G1P50Aa                     =       GGH400i +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 74081} GGG500f +GHO                =       GGG500m +      GHO2                                   : ARR( 0.642E-11,     0., 0.0);
+{ 74082} GGG500f +GHO                =       GGG500M +      GHO2                                   : ARR( 0.211E-11,     0., 0.0);
+{ 74083} GGG500f +GHO                =       G3G501A                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 74084} GGG500f +GHO                =       G3G5011                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 74085} GGG500f+HV               =       GGN400W +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 74086} GGG500f+HV               =       G1G508R +      GNO2                                   :  0.100E+01*SUN;
+{ 74087} GGG500f+HV               =       GGD4006 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 74088} G1G508R                     =       GGD3001 +      GGD2000 +      GHO2                    : ARR( 0.200E+15,  5475., 0.0);
+{ 74089} G1G508R                     =       GGD4006 +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 74090} GAG501J +GHO                =       GAG500r +      GHO2                                   : ARR( 0.221E-11,     0., 0.0);
+{ 74091} GAG501J +GHO                =       GAG501Y +      GHO2                                   : ARR( 0.673E-11,     0., 0.0);
+{ 74092} GAG501J +GHO                =       G3A501D                                               : ARR( 0.204E-11,  -190., 0.0);
+{ 74093} GAG501J+HV               =       G1A509P +      GNO2                                   :  0.100E+01*SUN;
+{ 74094} GAG501J+HV               =       GAN400P +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 74095} G1A509P                     =       GCO     +      GGD4006 +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 74096} G1A509P                     =       GAD2000 +      GGD3001 +      GHO2                    : ARR( 0.200E+15,  5475., 0.0);
+{ 74097} GPG501J                     =       G3G5011 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 74098} GPG501J +GHO                =       GPG501W +      GHO2                                   : ARR( 0.647E-11,     0., 0.0);
+{ 74099} GPG501J +GHO                =       GPG500h +      GHO2                                   : ARR( 0.212E-11,     0., 0.0);
+{ 74100} GPG501J +GHO                =       G3P501C                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 74101} GPG501J+HV               =       GPN400P +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 74102} GPG501J+HV               =       G1P50Ab +      GNO2                                   :  0.100E+01*SUN;
+{ 74103} GPG501J+HV               =       G3G5011 +      GNO2                                   :  0.100E+01*SUN;
+{ 74104} G1P50Ab                     =       GGD3001 +      GPD2000 +      GHO2                    : ARR( 0.200E+15,  5475., 0.0);
+{ 74105} G1P50Ab                     =       GGD4006 +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 74106} GGH505J +GHO                =       GGH505L +      GHO2                                   : ARR( 0.128E-10,     0., 0.0);
+{ 74107} GGH505J +GHO                =       GGH504A +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 74108} GGH505J +GHO                =       GGH504j +      GHO                                    : ARR( 0.154E-10,     0., 0.0);
+{ 74109} GGH505J +GHO                =       G2G505n                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 74110} GGH505J +GHO                =       G2G505o                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 74111} GGH505J +GHO                =       G3H504v                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 74112} GGH505J+HV               =       G1G506P +      GHO                                    :  0.100E+01*SUN;
+{ 74113} GGH505J+HV               =       G3H3004 +      GGD2000 +      GHO                     :  0.100E+01*SUN;
+{ 74114} GGH505J+HV               =       G1G507N +      GHO                                    :  0.100E+01*SUN;
+{ 74115} GGH505J+HV               =       GHD400M +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 74116} G2G505n +GNO                =       G1G506P +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 74117} G2G505n +GNO                =       GGH503Z                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 74118} G2G505n +GHO2               =       GGH505J                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 74119} G2G505n +GNO3               =       G1G506P +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 74120} G2G505n +MEPERO             =  0.340G1G506P + 0.330GGH501S + 0.330GGH504A                 : ARR( 0.565E-13,  -845., 0.0);
+{ 74121} G2G505n +PERO1              =  0.460G1G506P + 0.270GGH501S + 0.270GGH504A                 : ARR( 0.434E-13,  -900., 0.0);
+{ 74122} G2G505n +PERO2              =  0.400G1G506P + 0.300GGH501S + 0.300GGH504A                 : ARR( 0.162E-13, -1400., 0.0);
+{ 74123} G2G505n +PERO3              =  0.460G1G506P + 0.270GGH501S + 0.270GGH504A                 : ARR( 0.488E-13, -1250., 0.0);
+{ 74124} G2G505n +PERO5              =  0.460G1G506P + 0.270GGH501S + 0.270GGH504A                 : ARR( 0.183E-11,   450., 0.0);
+{ 74125} G2G505n +PERO6              =  0.300G1G506P + 0.350GGH501S + 0.350GGH504A                 : ARR( 0.168E-13, -1300., 0.0);
+{ 74126} G2G505n +PERO9              =  0.650G1G506P + 0.350GGH504A                                : ARR( 0.100E-10,     0., 0.0);
+{ 74127} G2G505o +GNO                =       G1G507N +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 74128} G2G505o +GNO                =       GGH504i                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 74129} G2G505o +GHO2               =       GGH505J                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 74130} G2G505o +GNO3               =       G1G507N +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 74131} G2G505o +MEPERO             =  0.340G1G507N + 0.330GGH503w + 0.330GGH504j                 : ARR( 0.565E-13,  -845., 0.0);
+{ 74132} G2G505o +PERO1              =  0.460G1G507N + 0.270GGH503w + 0.270GGH504j                 : ARR( 0.434E-13,  -900., 0.0);
+{ 74133} G2G505o +PERO2              =  0.400G1G507N + 0.300GGH503w + 0.300GGH504j                 : ARR( 0.162E-13, -1400., 0.0);
+{ 74134} G2G505o +PERO3              =  0.460G1G507N + 0.270GGH503w + 0.270GGH504j                 : ARR( 0.488E-13, -1250., 0.0);
+{ 74135} G2G505o +PERO5              =  0.460G1G507N + 0.270GGH503w + 0.270GGH504j                 : ARR( 0.183E-11,   450., 0.0);
+{ 74136} G2G505o +PERO6              =  0.300G1G507N + 0.350GGH503w + 0.350GGH504j                 : ARR( 0.168E-13, -1300., 0.0);
+{ 74137} G2G505o +PERO9              =  0.650G1G507N + 0.350GGH504j                                : ARR( 0.100E-10,     0., 0.0);
+{ 74138} GGG500g +GHO                =       GGG500x +      GHO2                                   : ARR( 0.754E-11,     0., 0.0);
+{ 74139} GGG500g +GHO                =       GGG500i +      GHO                                    : ARR( 0.495E-10,     0., 0.0);
+{ 74140} GGG500g +GHO                =       GGG500j +      GHO                                    : ARR( 0.302E-10,     0., 0.0);
+{ 74141} GGG500g+HV               =       GGH400v +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 74142} GGG500g+HV               =       G1G508P +      GHO                                    :  0.100E+01*SUN;
+{ 74143} GGG500g+HV               =       G1G508Q +      GHO                                    :  0.100E+01*SUN;
+{ 74144} GGG500g+HV               =       GGH400i +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 74145} GAG501K +GHO                =       GAG501O +      GHO                                    : ARR( 0.218E-10,     0., 0.0);
+{ 74146} GAG501K +GHO                =       GAG501M +      GHO                                    : ARR( 0.483E-10,     0., 0.0);
+{ 74147} GAG501K +GHO                =       GAG501s +      GHO2                                   : ARR( 0.737E-11,     0., 0.0);
+{ 74148} GAG501K+HV               =       G1A509O +      GHO                                    :  0.100E+01*SUN;
+{ 74149} GAG501K+HV               =       G1A509M +      GHO                                    :  0.100E+01*SUN;
+{ 74150} GAG501K+HV               =       GAH400w +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 74151} GPG501K                     =       G3G5012 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 74152} GPG501K +GHO                =       GPG501t +      GHO2                                   : ARR( 0.723E-11,     0., 0.0);
+{ 74153} GPG501K +GHO                =       GPG500i +      GHO                                    : ARR( 0.474E-10,     0., 0.0);
+{ 74154} GPG501K +GHO                =       GPG501N +      GHO                                    : ARR( 0.289E-10,     0., 0.0);
+{ 74155} GPG501K+HV               =       GPH400w +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 74156} GPG501K+HV               =       G1P50AZ +      GHO                                    :  0.100E+01*SUN;
+{ 74157} GPG501K+HV               =       G1P50Aa +      GHO                                    :  0.100E+01*SUN;
+{ 74158} GPG501K+HV               =       G3G5012 +      GNO2                                   :  0.100E+01*SUN;
+{ 74159} GGG500h +GHO                =       GGG500n +      GHO2                                   : ARR( 0.632E-11,     0., 0.0);
+{ 74160} GGG500h +GHO                =       GGG500i +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 74161} GGG500h +GHO                =       GGG500k +      GHO                                    : ARR( 0.253E-10,     0., 0.0);
+{ 74162} GGG500h +GHO                =       G3G5015                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 74163} GGG500h +GHO                =       G2G505p                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 74164} GGG500h +GHO                =       G3G5014                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 74165} GGG500h+HV               =       GGH400g +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 74166} GGG500h+HV               =       G1G508R +      GHO                                    :  0.100E+01*SUN;
+{ 74167} GGG500h+HV               =       GGD4006 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 74168} G2G505p +GNO                =       G1G508R +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 74169} G2G505p +GNO                =       GGG500f                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 74170} G2G505p +GHO2               =       GGG500h                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 74171} G2G505p +GNO3               =       G1G508R +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 74172} G2G505p +MEPERO             =  0.340G1G508R + 0.330GGG500F + 0.330GGG500k                 : ARR( 0.565E-13,  -845., 0.0);
+{ 74173} G2G505p +PERO1              =  0.460G1G508R + 0.270GGG500F + 0.270GGG500k                 : ARR( 0.434E-13,  -900., 0.0);
+{ 74174} G2G505p +PERO2              =  0.400G1G508R + 0.300GGG500F + 0.300GGG500k                 : ARR( 0.162E-13, -1400., 0.0);
+{ 74175} G2G505p +PERO3              =  0.460G1G508R + 0.270GGG500F + 0.270GGG500k                 : ARR( 0.488E-13, -1250., 0.0);
+{ 74176} G2G505p +PERO5              =  0.460G1G508R + 0.270GGG500F + 0.270GGG500k                 : ARR( 0.183E-11,   450., 0.0);
+{ 74177} G2G505p +PERO6              =  0.300G1G508R + 0.350GGG500F + 0.350GGG500k                 : ARR( 0.168E-13, -1300., 0.0);
+{ 74178} G2G505p +PERO9              =  0.650G1G508R + 0.350GGG500k                                : ARR( 0.100E-10,     0., 0.0);
+{ 74179} GAG501L +GHO                =       GAG501Q +      GHO                                    : ARR( 0.189E-10,     0., 0.0);
+{ 74180} GAG501L +GHO                =       GAG501M +      GHO2                                   : ARR( 0.105E-10,     0., 0.0);
+{ 74181} GAG501L +GHO                =       GAG501Z +      GHO2                                   : ARR( 0.640E-11,     0., 0.0);
+{ 74182} GAG501L +GHO                =       G2A506r                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 74183} GAG501L +GHO                =       G3A501A                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 74184} GAG501L+HV               =       G1A509P +      GHO                                    :  0.100E+01*SUN;
+{ 74185} GAG501L+HV               =       GAH400k +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 74186} G2A506r +GNO                =       G1A509P +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 74187} G2A506r +GNO                =       GAG501J                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 74188} G2A506r +GHO2               =       GAG501L                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 74189} G2A506r +GNO3               =       G1A509P +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 74190} G2A506r +MEPERO             =  0.340G1A509P + 0.330GAG500T + 0.330GAG501Q                 : ARR( 0.565E-13,  -845., 0.0);
+{ 74191} G2A506r +PERO1              =  0.460G1A509P + 0.270GAG500T + 0.270GAG501Q                 : ARR( 0.434E-13,  -900., 0.0);
+{ 74192} G2A506r +PERO2              =  0.400G1A509P + 0.300GAG500T + 0.300GAG501Q                 : ARR( 0.162E-13, -1400., 0.0);
+{ 74193} G2A506r +PERO3              =  0.460G1A509P + 0.270GAG500T + 0.270GAG501Q                 : ARR( 0.488E-13, -1250., 0.0);
+{ 74194} G2A506r +PERO5              =  0.460G1A509P + 0.270GAG500T + 0.270GAG501Q                 : ARR( 0.183E-11,   450., 0.0);
+{ 74195} G2A506r +PERO6              =  0.300G1A509P + 0.350GAG500T + 0.350GAG501Q                 : ARR( 0.168E-13, -1300., 0.0);
+{ 74196} G2A506r +PERO9              =  0.650G1A509P + 0.350GAG501Q                                : ARR( 0.100E-10,     0., 0.0);
+{ 74197} GPG501L                     =       G3G5014 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 74198} GPG501L +GHO                =       GPG501X +      GHO2                                   : ARR( 0.632E-11,     0., 0.0);
+{ 74199} GPG501L +GHO                =       GPG500i +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 74200} GPG501L +GHO                =       GPG501P +      GHO                                    : ARR( 0.253E-10,     0., 0.0);
+{ 74201} GPG501L +GHO                =       G3P5018                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 74202} GPG501L +GHO                =       G2P507k                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 74203} GPG501L+HV               =       GPH400l +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 74204} GPG501L+HV               =       G1P50Ab +      GHO                                    :  0.100E+01*SUN;
+{ 74205} GPG501L+HV               =       G3G5014 +      GNO2                                   :  0.100E+01*SUN;
+{ 74206} G2P507k +GNO                =       G1P50Ab +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 74207} G2P507k +GNO                =       GPG501J                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 74208} G2P507k +GHO2               =       GPG501L                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 74209} G2P507k +GNO3               =       G1P50Ab +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 74210} G2P507k +MEPERO             =  0.340G1P50Ab + 0.330GPG500R + 0.330GPG501P                 : ARR( 0.565E-13,  -845., 0.0);
+{ 74211} G2P507k +PERO1              =  0.460G1P50Ab + 0.270GPG500R + 0.270GPG501P                 : ARR( 0.434E-13,  -900., 0.0);
+{ 74212} G2P507k +PERO2              =  0.400G1P50Ab + 0.300GPG500R + 0.300GPG501P                 : ARR( 0.162E-13, -1400., 0.0);
+{ 74213} G2P507k +PERO3              =  0.460G1P50Ab + 0.270GPG500R + 0.270GPG501P                 : ARR( 0.488E-13, -1250., 0.0);
+{ 74214} G2P507k +PERO5              =  0.460G1P50Ab + 0.270GPG500R + 0.270GPG501P                 : ARR( 0.183E-11,   450., 0.0);
+{ 74215} G2P507k +PERO6              =  0.300G1P50Ab + 0.350GPG500R + 0.350GPG501P                 : ARR( 0.168E-13, -1300., 0.0);
+{ 74216} G2P507k +PERO9              =  0.650G1P50Ab + 0.350GPG501P                                : ARR( 0.100E-10,     0., 0.0);
+{ 74217} GGG500i +GHO                =       GGG500s +      GHO2                                   : ARR( 0.385E-11,     0., 0.0);
+{ 74218} GGG500i +GHO                =       GGG500N +      GHO                                    : ARR( 0.154E-10,     0., 0.0);
+{ 74219} GGG500i +GHO                =       G3G5017                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 74220} GGG500i +GHO                =       G2G505q                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 74221} GGG500i +GHO                =       G3G5016                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 74222} GGG500i+HV               =  0.500GGH400s + 0.500GHO                                    :  0.100E+01*SUN;
+{ 74223} GGG500i+HV               =       G3G3002 +      GGD2000 +      GHO                     :  0.100E+01*SUN;
+{ 74224} GGG500i+HV               =       G1G507Z +      GHO                                    :  0.100E+01*SUN;
+{ 74225} GGG500i+HV               =       GGD4007 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 74226} G2G505q +GNO                =       G1G507Z +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 74227} G2G505q +GNO                =       GGG500M                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 74228} G2G505q +GHO2               =       GGG500i                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 74229} G2G505q +GNO3               =       G1G507Z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 74230} G2G505q +MEPERO             =  0.340G1G507Z + 0.330GGG500H + 0.330GGG500N                 : ARR( 0.565E-13,  -845., 0.0);
+{ 74231} G2G505q +PERO1              =  0.460G1G507Z + 0.270GGG500H + 0.270GGG500N                 : ARR( 0.434E-13,  -900., 0.0);
+{ 74232} G2G505q +PERO2              =  0.400G1G507Z + 0.300GGG500H + 0.300GGG500N                 : ARR( 0.162E-13, -1400., 0.0);
+{ 74233} G2G505q +PERO3              =  0.460G1G507Z + 0.270GGG500H + 0.270GGG500N                 : ARR( 0.488E-13, -1250., 0.0);
+{ 74234} G2G505q +PERO5              =  0.460G1G507Z + 0.270GGG500H + 0.270GGG500N                 : ARR( 0.183E-11,   450., 0.0);
+{ 74235} G2G505q +PERO6              =  0.300G1G507Z + 0.350GGG500H + 0.350GGG500N                 : ARR( 0.168E-13, -1300., 0.0);
+{ 74236} G2G505q +PERO9              =  0.650G1G507Z + 0.350GGG500N                                : ARR( 0.100E-10,     0., 0.0);
+{ 74237} GAG501M +GHO                =       GAG500s +      GHO                                    : ARR( 0.117E-10,     0., 0.0);
+{ 74238} GAG501M +GHO                =       GAG501i +      GHO2                                   : ARR( 0.394E-11,     0., 0.0);
+{ 74239} GAG501M +GHO                =       G2A506s                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 74240} GAG501M +GHO                =       G3A501B                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 74241} GAG501M+HV               =       G1A508i +      GHO                                    :  0.100E+01*SUN;
+{ 74242} GAG501M+HV               =       G3A3003 +      GGD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 74243} GAG501M+HV               =       GAH400u +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 74244} G2A506s +GNO                =       G1A508i +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 74245} G2A506s +GNO                =       GAG500r                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 74246} G2A506s +GHO2               =       GAG501M                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 74247} G2A506s +GNO3               =       G1A508i +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 74248} G2A506s +MEPERO             =  0.340G1A508i + 0.330GAG500W + 0.330GAG500s                 : ARR( 0.565E-13,  -845., 0.0);
+{ 74249} G2A506s +PERO1              =  0.460G1A508i + 0.270GAG500W + 0.270GAG500s                 : ARR( 0.434E-13,  -900., 0.0);
+{ 74250} G2A506s +PERO2              =  0.400G1A508i + 0.300GAG500W + 0.300GAG500s                 : ARR( 0.162E-13, -1400., 0.0);
+{ 74251} G2A506s +PERO3              =  0.460G1A508i + 0.270GAG500W + 0.270GAG500s                 : ARR( 0.488E-13, -1250., 0.0);
+{ 74252} G2A506s +PERO5              =  0.460G1A508i + 0.270GAG500W + 0.270GAG500s                 : ARR( 0.183E-11,   450., 0.0);
+{ 74253} G2A506s +PERO6              =  0.300G1A508i + 0.350GAG500W + 0.350GAG500s                 : ARR( 0.168E-13, -1300., 0.0);
+{ 74254} G2A506s +PERO9              =  0.650G1A508i + 0.350GAG500s                                : ARR( 0.100E-10,     0., 0.0);
+{ 74255} GHH503G +GHO                =       G3H400w +      GCO                                    : ARR( 0.131E-10,     0., 0.0);
+{ 74256} GHH503G +GHO                =       GHD501U +      GHO                                    : ARR( 0.827E-10,     0., 0.0);
+{ 74257} GHH503G +GHO                =       GHD501P +      GHO                                    : ARR( 0.827E-10,     0., 0.0);
+{ 74258} GHH503G +GHO                =       G3H505Y                                               : ARR( 0.215E-10,     0., 0.0);
+{ 74259} GHH503G +GNO3               =       G3H400w +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 74260} GHH503G +GNO3               =       G3H505Y +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 74261} GHH503G+HV               =       GCO     +      G3H400w +      GHO2                    :  0.100E+01*SUN;
+{ 74262} GHH503G+HV               =       GHH400r +      GCO                                    :  0.100E+01*SUN;
+{ 74263} GHH503G+HV               =       GHH3005 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 74264} GHH503G+HV               =       G1H50Bu +      GHO                                    :  0.100E+01*SUN;
+{ 74265} GHH503G+HV               =       G1H50Bl +      GHO                                    :  0.100E+01*SUN;
+{ 74266} GHH503G+HV               =       GHD400K +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 74267} GGH505K +GHO                =       GGH503C +      GHO                                    : ARR( 0.262E-10,     0., 0.0);
+{ 74268} GGH505K +GHO                =       GGH5056 +      GHO                                    : ARR( 0.251E-10,     0., 0.0);
+{ 74269} GGH505K +GHO                =       G2G505r                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 74270} GGH505K +GHO                =       G2G505s                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 74271} GGH505K +GHO                =       G3H505Z                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 74272} GGH505K+HV               =       G1G508S +      GNO2                                   :  0.100E+01*SUN;
+{ 74273} GGH505K+HV               =       G1G506a +      GHO                                    :  0.100E+01*SUN;
+{ 74274} GGH505K+HV               =       G1G507m +      GHO                                    :  0.100E+01*SUN;
+{ 74275} GGH505K+HV               =       GAH400v +      GCO2                                   :  0.100E+01*SUN;
+{ 74276} G2G505r +GNO                =       G1G506a +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 74277} G2G505r +GNO                =       GGH503g                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 74278} G2G505r +GHO2               =       GGH505K                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 74279} G2G505r +GNO3               =       G1G506a +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 74280} G2G505r +MEPERO             =  0.340G1G506a + 0.330GGH501j + 0.330GGH503C                 : ARR( 0.565E-13,  -845., 0.0);
+{ 74281} G2G505r +PERO1              =  0.460G1G506a + 0.270GGH501j + 0.270GGH503C                 : ARR( 0.434E-13,  -900., 0.0);
+{ 74282} G2G505r +PERO2              =  0.400G1G506a + 0.300GGH501j + 0.300GGH503C                 : ARR( 0.162E-13, -1400., 0.0);
+{ 74283} G2G505r +PERO3              =  0.460G1G506a + 0.270GGH501j + 0.270GGH503C                 : ARR( 0.488E-13, -1250., 0.0);
+{ 74284} G2G505r +PERO5              =  0.460G1G506a + 0.270GGH501j + 0.270GGH503C                 : ARR( 0.183E-11,   450., 0.0);
+{ 74285} G2G505r +PERO6              =  0.300G1G506a + 0.350GGH501j + 0.350GGH503C                 : ARR( 0.168E-13, -1300., 0.0);
+{ 74286} G2G505r +PERO9              =  0.650G1G506a + 0.350GGH503C                                : ARR( 0.100E-10,     0., 0.0);
+{ 74287} G2G505s +GNO                =       G1G507m +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 74288} G2G505s +GNO                =       GGH504x                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 74289} G2G505s +GHO2               =       GGH505K                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 74290} G2G505s +GNO3               =       G1G507m +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 74291} G2G505s +MEPERO             =  0.340G1G507m + 0.330GGH5036 + 0.330GGH5056                 : ARR( 0.565E-13,  -845., 0.0);
+{ 74292} G2G505s +PERO1              =  0.460G1G507m + 0.270GGH5036 + 0.270GGH5056                 : ARR( 0.434E-13,  -900., 0.0);
+{ 74293} G2G505s +PERO2              =  0.400G1G507m + 0.300GGH5036 + 0.300GGH5056                 : ARR( 0.162E-13, -1400., 0.0);
+{ 74294} G2G505s +PERO3              =  0.460G1G507m + 0.270GGH5036 + 0.270GGH5056                 : ARR( 0.488E-13, -1250., 0.0);
+{ 74295} G2G505s +PERO5              =  0.460G1G507m + 0.270GGH5036 + 0.270GGH5056                 : ARR( 0.183E-11,   450., 0.0);
+{ 74296} G2G505s +PERO6              =  0.300G1G507m + 0.350GGH5036 + 0.350GGH5056                 : ARR( 0.168E-13, -1300., 0.0);
+{ 74297} G2G505s +PERO9              =  0.650G1G507m + 0.350GGH5056                                : ARR( 0.100E-10,     0., 0.0);
+{ 74298} G1G508S +OXYGEN             =       GGH505f +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 74299} G1G508S                     =       GGH400p +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5636., 0.0);
+{ 74300} GAH505O +GHO                =       GAH503S +      GHO                                    : ARR( 0.254E-10,     0., 0.0);
+{ 74301} GAH505O +GHO                =       GAH503d +      GHO                                    : ARR( 0.264E-10,     0., 0.0);
+{ 74302} GAH505O +GHO                =       G2A506t                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 74303} GAH505O +GHO                =       G2A506u                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 74304} GAH505O+HV               =       GHH400j +      GCO2                                   :  0.100E+01*SUN;
+{ 74305} GAH505O+HV               =       G1A5064 +      GHO                                    :  0.100E+01*SUN;
+{ 74306} GAH505O+HV               =       G1A506x +      GHO                                    :  0.100E+01*SUN;
+{ 74307} GAH505O+HV               =       G1A509Q +      GNO2                                   :  0.100E+01*SUN;
+{ 74308} G2A506t +GNO                =       G1A5064 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 74309} G2A506t +GNO                =       GAH5032                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 74310} G2A506t +GHO2               =       GAH505O                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 74311} G2A506t +GNO3               =       G1A5064 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 74312} G2A506t +MEPERO             =  0.340G1A5064 + 0.330GAH503M + 0.330GAH503S                 : ARR( 0.565E-13,  -845., 0.0);
+{ 74313} G2A506t +PERO1              =  0.460G1A5064 + 0.270GAH503M + 0.270GAH503S                 : ARR( 0.434E-13,  -900., 0.0);
+{ 74314} G2A506t +PERO2              =  0.400G1A5064 + 0.300GAH503M + 0.300GAH503S                 : ARR( 0.162E-13, -1400., 0.0);
+{ 74315} G2A506t +PERO3              =  0.460G1A5064 + 0.270GAH503M + 0.270GAH503S                 : ARR( 0.488E-13, -1250., 0.0);
+{ 74316} G2A506t +PERO5              =  0.460G1A5064 + 0.270GAH503M + 0.270GAH503S                 : ARR( 0.183E-11,   450., 0.0);
+{ 74317} G2A506t +PERO6              =  0.300G1A5064 + 0.350GAH503M + 0.350GAH503S                 : ARR( 0.168E-13, -1300., 0.0);
+{ 74318} G2A506t +PERO9              =  0.650G1A5064 + 0.350GAH503S                                : ARR( 0.100E-10,     0., 0.0);
+{ 74319} G2A506u +GNO                =       G1A506x +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 74320} G2A506u +GNO                =       GAH503b                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 74321} G2A506u +GHO2               =       GAH505O                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 74322} G2A506u +GNO3               =       G1A506x +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 74323} G2A506u +MEPERO             =  0.340G1A506x + 0.330GAH501r + 0.330GAH503d                 : ARR( 0.565E-13,  -845., 0.0);
+{ 74324} G2A506u +PERO1              =  0.460G1A506x + 0.270GAH501r + 0.270GAH503d                 : ARR( 0.434E-13,  -900., 0.0);
+{ 74325} G2A506u +PERO2              =  0.400G1A506x + 0.300GAH501r + 0.300GAH503d                 : ARR( 0.162E-13, -1400., 0.0);
+{ 74326} G2A506u +PERO3              =  0.460G1A506x + 0.270GAH501r + 0.270GAH503d                 : ARR( 0.488E-13, -1250., 0.0);
+{ 74327} G2A506u +PERO5              =  0.460G1A506x + 0.270GAH501r + 0.270GAH503d                 : ARR( 0.183E-11,   450., 0.0);
+{ 74328} G2A506u +PERO6              =  0.300G1A506x + 0.350GAH501r + 0.350GAH503d                 : ARR( 0.168E-13, -1300., 0.0);
+{ 74329} G2A506u +PERO9              =  0.650G1A506x + 0.350GAH503d                                : ARR( 0.100E-10,     0., 0.0);
+{ 74330} G1A509Q +OXYGEN             =       GAH505g +      GHO2                                   : ARR( 0.600E-13,   663., 0.0);
+{ 74331} G1A509Q                     =       GAH400s +      GCH2O   +      GHO                     : ARR( 0.200E+15,  5636., 0.0);
+{ 74332} GGH505L +GHO                =       GGH505Y +      GHO                                    : ARR( 0.170E-10,     0., 0.0);
+{ 74333} GGH505L +GHO                =       GGH505M +      GHO                                    : ARR( 0.170E-10,     0., 0.0);
+{ 74334} GGH505L +GHO                =       G3G501h                                               : ARR( 0.732E-10,     0., 0.0);
+{ 74335} GGH505L +GNO3               =       G3G501h +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 74336} GGH505L+HV               =       GHD400K +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 74337} GGH505L+HV               =       G1G508T +      GHO                                    :  0.100E+01*SUN;
+{ 74338} GGH505L+HV               =       G3G3003 +      GDD2000 +      GHO                     :  0.100E+01*SUN;
+{ 74339} GGH505L+HV               =       G1G5088 +      GHO                                    :  0.100E+01*SUN;
+{ 74340} GGH505L+HV               =       GGH400s +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 74341} G3G501h +GHO2               =  0.800GGG5019 + 0.200GAG5023 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 74342} G3G501h +GNO                =       GGH400s +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 74343} G3G501h +GNO2               =       GPG501x                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 74344} G3G501h +GNO3               =       GGH400s +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 74345} G3G501h +MEPERO             =  0.685GGH400s + 0.315GAG5023 + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 74346} G3G501h +PERO1              =  0.800GGH400s + 0.200GAG5023 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 74347} G3G501h +PERO2              =  0.750GGH400s + 0.250GAG5023 + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 74348} G3G501h +PERO3              =  0.800GGH400s + 0.200GAG5023 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 74349} G3G501h +PERO5              =  0.650GGH400s + 0.350GAG5023 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 74350} G3G501h +PERO6              =  0.650GGH400s + 0.350GAG5023 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 74351} G3G501h +PERO9              =       GGH400s +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 74352} G1G508T                     =       G3G5016                                               : ARR( 0.800E+11,  4246., 0.0);
+{ 74353} G1G508T                     =       GCO     +      GHD400K +      GHO2                    : ARR( 0.200E+15,  6793., 0.0);
+{ 74354} G1G508T                     =       GGD2000 +      G3H3006                                : ARR( 0.200E+15,  6105., 0.0);
+{ 74355} GGH505M +GHO                =       GGD500O +      GHO                                    : ARR( 0.153E-10,     0., 0.0);
+{ 74356} GGH505M +GHO                =       G3G3003 + 2.000GCO                                    : ARR( 0.127E-10,     0., 0.0);
+{ 74357} GGH505M +GHO                =       G3H505E                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 74358} GGH505M +GHO                =       G2G505t                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 74359} GGH505M +GNO3               =       G3G3003 +      GHNO3   + 2.000GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 74360} GGH505M+HV               =       GDD4005 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 74361} GGH505M+HV               =       G1G507Y +      GHO                                    :  0.100E+01*SUN;
+{ 74362} GGH505M+HV               =       G3G3003 +      G3D2000                                :  0.100E+01*SUN;
+{ 74363} GGH505M+HV               =       G3G3003 +      GCO     +      GCO     +      GHO2     :  0.100E+01*SUN;
+{ 74364} GGH505M+HV               =       GGH400s +      GCO                                    :  0.100E+01*SUN;
+{ 74365} GGH505M+HV               =       GGH3007 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 74366} G2G505t +GNO                =       G1G507Y +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 74367} G2G505t +GNO                =       GGN502l                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 74368} G2G505t +GHO2               =       GGH505M                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 74369} G2G505t +GNO3               =       G1G507Y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 74370} G2G505t +MEPERO             =  0.340G1G507Y + 0.330GGD500M + 0.330GGD500O                 : ARR( 0.565E-13,  -845., 0.0);
+{ 74371} G2G505t +PERO1              =  0.460G1G507Y + 0.270GGD500M + 0.270GGD500O                 : ARR( 0.434E-13,  -900., 0.0);
+{ 74372} G2G505t +PERO2              =  0.400G1G507Y + 0.300GGD500M + 0.300GGD500O                 : ARR( 0.162E-13, -1400., 0.0);
+{ 74373} G2G505t +PERO3              =  0.460G1G507Y + 0.270GGD500M + 0.270GGD500O                 : ARR( 0.488E-13, -1250., 0.0);
+{ 74374} G2G505t +PERO5              =  0.460G1G507Y + 0.270GGD500M + 0.270GGD500O                 : ARR( 0.183E-11,   450., 0.0);
+{ 74375} G2G505t +PERO6              =  0.300G1G507Y + 0.350GGD500M + 0.350GGD500O                 : ARR( 0.168E-13, -1300., 0.0);
+{ 74376} G2G505t +PERO9              =  0.650G1G507Y + 0.350GGD500O                                : ARR( 0.100E-10,     0., 0.0);
+{ 74377} GAH505P +GHO                =       GAD500P +      GHO                                    : ARR( 0.116E-10,     0., 0.0);
+{ 74378} GAH505P +GHO                =       G3A3003 + 2.000GCO                                    : ARR( 0.129E-10,     0., 0.0);
+{ 74379} GAH505P +GHO                =       G2A506v                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 74380} GAH505P +GNO3               =       G3A3003 +      GHNO3   + 2.000GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 74381} GAH505P+HV               =       G1A508U +      GHO                                    :  0.100E+01*SUN;
+{ 74382} GAH505P+HV               =       G3A3003 +      G3D2000                                :  0.100E+01*SUN;
+{ 74383} GAH505P+HV               =       G3A3003 +      GCO     +      GCO     +      GHO2     :  0.100E+01*SUN;
+{ 74384} GAH505P+HV               =       GAH400u +      GCO                                    :  0.100E+01*SUN;
+{ 74385} GAH505P+HV               =       GAH3007 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 74386} G2A506v +GNO                =       G1A508U +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 74387} G2A506v +GNO                =       GAN502p                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 74388} G2A506v +GHO2               =       GAH505P                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 74389} G2A506v +GNO3               =       G1A508U +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 74390} G2A506v +MEPERO             =  0.340G1A508U + 0.330GAD500O + 0.330GAD500P                 : ARR( 0.565E-13,  -845., 0.0);
+{ 74391} G2A506v +PERO1              =  0.460G1A508U + 0.270GAD500O + 0.270GAD500P                 : ARR( 0.434E-13,  -900., 0.0);
+{ 74392} G2A506v +PERO2              =  0.400G1A508U + 0.300GAD500O + 0.300GAD500P                 : ARR( 0.162E-13, -1400., 0.0);
+{ 74393} G2A506v +PERO3              =  0.460G1A508U + 0.270GAD500O + 0.270GAD500P                 : ARR( 0.488E-13, -1250., 0.0);
+{ 74394} G2A506v +PERO5              =  0.460G1A508U + 0.270GAD500O + 0.270GAD500P                 : ARR( 0.183E-11,   450., 0.0);
+{ 74395} G2A506v +PERO6              =  0.300G1A508U + 0.350GAD500O + 0.350GAD500P                 : ARR( 0.168E-13, -1300., 0.0);
+{ 74396} G2A506v +PERO9              =  0.650G1A508U + 0.350GAD500P                                : ARR( 0.100E-10,     0., 0.0);
+{ 74397} GPH505W                     =       G3H505E +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 74398} GPH505W +GHO                =       GPD500O +      GHO                                    : ARR( 0.153E-10,     0., 0.0);
+{ 74399} GPH505W +GHO                =       G3P3003 + 2.000GCO                                    : ARR( 0.127E-10,     0., 0.0);
+{ 74400} GPH505W +GHO                =       G2P507l                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 74401} GPH505W +GNO3               =       G3P3003 +      GHNO3   + 2.000GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 74402} GPH505W+HV               =       G3H505E +      GNO2                                   :  0.100E+01*SUN;
+{ 74403} GPH505W+HV               =       G1P509S +      GHO                                    :  0.100E+01*SUN;
+{ 74404} GPH505W+HV               =       G3P3003 +      G3D2000                                :  0.100E+01*SUN;
+{ 74405} GPH505W+HV               =       G3P3003 +      GCO     +      GCO     +      GHO2     :  0.100E+01*SUN;
+{ 74406} GPH505W+HV               =       GPH400v +      GCO                                    :  0.100E+01*SUN;
+{ 74407} GPH505W+HV               =       GPH3007 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 74408} G2P507l +GNO                =       G1P509S +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 74409} G2P507l +GNO                =       GPN502s                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 74410} G2P507l +GHO2               =       GPH505W                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 74411} G2P507l +GNO3               =       G1P509S +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 74412} G2P507l +MEPERO             =  0.340G1P509S + 0.330GPD500M + 0.330GPD500O                 : ARR( 0.565E-13,  -845., 0.0);
+{ 74413} G2P507l +PERO1              =  0.460G1P509S + 0.270GPD500M + 0.270GPD500O                 : ARR( 0.434E-13,  -900., 0.0);
+{ 74414} G2P507l +PERO2              =  0.400G1P509S + 0.300GPD500M + 0.300GPD500O                 : ARR( 0.162E-13, -1400., 0.0);
+{ 74415} G2P507l +PERO3              =  0.460G1P509S + 0.270GPD500M + 0.270GPD500O                 : ARR( 0.488E-13, -1250., 0.0);
+{ 74416} G2P507l +PERO5              =  0.460G1P509S + 0.270GPD500M + 0.270GPD500O                 : ARR( 0.183E-11,   450., 0.0);
+{ 74417} G2P507l +PERO6              =  0.300G1P509S + 0.350GPD500M + 0.350GPD500O                 : ARR( 0.168E-13, -1300., 0.0);
+{ 74418} G2P507l +PERO9              =  0.650G1P509S + 0.350GPD500O                                : ARR( 0.100E-10,     0., 0.0);
+{ 74419} GGH505N +GHO                =       GGN502p +      GHO                                    : ARR( 0.326E-11,     0., 0.0);
+{ 74420} GGH505N +GHO                =       GGH505X +      GHO2                                   : ARR( 0.389E-11,     0., 0.0);
+{ 74421} GGH505N +GHO                =       G2G505u                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 74422} GGH505N +GHO                =       G3H504y                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 74423} GGH505N+HV               =       G1G505q +      GHO                                    :  0.100E+01*SUN;
+{ 74424} GGH505N+HV               =       G1G508U +      GNO2                                   :  0.100E+01*SUN;
+{ 74425} GGH505N+HV               =       G3H3005 +      GGD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 74426} GGH505N+HV               =       GHN401C +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 74427} G2G505u +GNO                =       G1G505q +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 74428} G2G505u +GNO                =       GGN502N                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 74429} G2G505u +GHO2               =       GGH505N                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 74430} G2G505u +GNO3               =       G1G505q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 74431} G2G505u +MEPERO             =  0.480G1G505q + 0.260GGN502O + 0.260GGN502p                 : ARR( 0.164E-12,  -795., 0.0);
+{ 74432} G2G505u +PERO1              =  0.600G1G505q + 0.200GGN502O + 0.200GGN502p                 : ARR( 0.126E-12,  -850., 0.0);
+{ 74433} G2G505u +PERO2              =  0.560G1G505q + 0.220GGN502O + 0.220GGN502p                 : ARR( 0.471E-13, -1350., 0.0);
+{ 74434} G2G505u +PERO3              =  0.600G1G505q + 0.200GGN502O + 0.200GGN502p                 : ARR( 0.142E-12, -1200., 0.0);
+{ 74435} G2G505u +PERO5              =  0.600G1G505q + 0.200GGN502O + 0.200GGN502p                 : ARR( 0.533E-11,   500., 0.0);
+{ 74436} G2G505u +PERO6              =  0.460G1G505q + 0.270GGN502O + 0.270GGN502p                 : ARR( 0.488E-13, -1250., 0.0);
+{ 74437} G2G505u +PERO9              =  0.800G1G505q + 0.200GGN502p                                : ARR( 0.100E-10,     0., 0.0);
+{ 74438} G1G508U                     =       GHD2000 +      G3G3002                                : ARR( 0.200E+15,  3778., 0.0);
+{ 74439} GAH505Q +GHO                =       GAH504r +      GHO2                                   : ARR( 0.289E-11,     0., 0.0);
+{ 74440} GAH505Q +GHO                =       GAN502t +      GHO                                    : ARR( 0.328E-11,     0., 0.0);
+{ 74441} GAH505Q +GHO                =       G2A506w                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 74442} GAH505Q +GHO                =       GHN401C +      GHO2    +      GCO2                    : ARR( 0.531E-12,     0., 0.0);
+{ 74443} GAH505Q+HV               =       G3A3002 +      GHD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 74444} GAH505Q+HV               =       G1A509R +      GNO2                                   :  0.100E+01*SUN;
+{ 74445} GAH505Q+HV               =       G1A506g +      GHO                                    :  0.100E+01*SUN;
+{ 74446} G2A506w +GNO                =       G1A506g +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 74447} G2A506w +GNO                =       GAN502X                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 74448} G2A506w +GHO2               =       GAH505Q                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 74449} G2A506w +GNO3               =       G1A506g +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 74450} G2A506w +MEPERO             =  0.480G1A506g + 0.260GAN502Z + 0.260GAN502t                 : ARR( 0.164E-12,  -795., 0.0);
+{ 74451} G2A506w +PERO1              =  0.600G1A506g + 0.200GAN502Z + 0.200GAN502t                 : ARR( 0.126E-12,  -850., 0.0);
+{ 74452} G2A506w +PERO2              =  0.560G1A506g + 0.220GAN502Z + 0.220GAN502t                 : ARR( 0.471E-13, -1350., 0.0);
+{ 74453} G2A506w +PERO3              =  0.600G1A506g + 0.200GAN502Z + 0.200GAN502t                 : ARR( 0.142E-12, -1200., 0.0);
+{ 74454} G2A506w +PERO5              =  0.600G1A506g + 0.200GAN502Z + 0.200GAN502t                 : ARR( 0.533E-11,   500., 0.0);
+{ 74455} G2A506w +PERO6              =  0.460G1A506g + 0.270GAN502Z + 0.270GAN502t                 : ARR( 0.488E-13, -1250., 0.0);
+{ 74456} G2A506w +PERO9              =  0.800G1A506g + 0.200GAN502t                                : ARR( 0.100E-10,     0., 0.0);
+{ 74457} G1A509R                     =       G3A3002 +      GHD2000                                : ARR( 0.200E+15,  3778., 0.0);
+{ 74458} GGH505O +GHO                =       GGH5052 +      GHO                                    : ARR( 0.328E-11,     0., 0.0);
+{ 74459} GGH505O +GHO                =       GGH505X +      GHO                                    : ARR( 0.512E-11,     0., 0.0);
+{ 74460} GGH505O +GHO                =       G2G505v                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 74461} GGH505O +GHO                =       G2G505w                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 74462} GGH505O +GHO                =       G3H505c                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 74463} GGH505O+HV               =       G1G506Z +      GHO                                    :  0.100E+01*SUN;
+{ 74464} GGH505O+HV               =       G1G507G +      GNO2                                   :  0.100E+01*SUN;
+{ 74465} GGH505O+HV               =       G1G508W +      GHO                                    :  0.100E+01*SUN;
+{ 74466} GGH505O+HV               =       GAH400p +      GCO2                                   :  0.100E+01*SUN;
+{ 74467} G2G505v +GNO                =       G1G506Z +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 74468} G2G505v +GNO                =       GGH503g                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 74469} G2G505v +GHO2               =       GGH505O                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 74470} G2G505v +GNO3               =       G1G506Z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 74471} G2G505v +MEPERO             =  0.480G1G506Z + 0.260GGH5031 + 0.260GGH5052                 : ARR( 0.164E-12,  -795., 0.0);
+{ 74472} G2G505v +PERO1              =  0.600G1G506Z + 0.200GGH5031 + 0.200GGH5052                 : ARR( 0.126E-12,  -850., 0.0);
+{ 74473} G2G505v +PERO2              =  0.560G1G506Z + 0.220GGH5031 + 0.220GGH5052                 : ARR( 0.471E-13, -1350., 0.0);
+{ 74474} G2G505v +PERO3              =  0.600G1G506Z + 0.200GGH5031 + 0.200GGH5052                 : ARR( 0.142E-12, -1200., 0.0);
+{ 74475} G2G505v +PERO5              =  0.600G1G506Z + 0.200GGH5031 + 0.200GGH5052                 : ARR( 0.533E-11,   500., 0.0);
+{ 74476} G2G505v +PERO6              =  0.460G1G506Z + 0.270GGH5031 + 0.270GGH5052                 : ARR( 0.488E-13, -1250., 0.0);
+{ 74477} G2G505v +PERO9              =  0.800G1G506Z + 0.200GGH5052                                : ARR( 0.100E-10,     0., 0.0);
+{ 74478} G2G505w +GNO                =       G1G508W +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 74479} G2G505w +GNO                =       GGH505W                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 74480} G2G505w +GHO2               =       GGH505O                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 74481} G2G505w +GNO3               =       G1G508W +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 74482} G2G505w +MEPERO             =  0.340G1G508W + 0.330GGH504f + 0.330GGH505X                 : ARR( 0.565E-13,  -845., 0.0);
+{ 74483} G2G505w +PERO1              =  0.460G1G508W + 0.270GGH504f + 0.270GGH505X                 : ARR( 0.434E-13,  -900., 0.0);
+{ 74484} G2G505w +PERO2              =  0.400G1G508W + 0.300GGH504f + 0.300GGH505X                 : ARR( 0.162E-13, -1400., 0.0);
+{ 74485} G2G505w +PERO3              =  0.460G1G508W + 0.270GGH504f + 0.270GGH505X                 : ARR( 0.488E-13, -1250., 0.0);
+{ 74486} G2G505w +PERO5              =  0.460G1G508W + 0.270GGH504f + 0.270GGH505X                 : ARR( 0.183E-11,   450., 0.0);
+{ 74487} G2G505w +PERO6              =  0.300G1G508W + 0.350GGH504f + 0.350GGH505X                 : ARR( 0.168E-13, -1300., 0.0);
+{ 74488} G2G505w +PERO9              =  0.650G1G508W + 0.350GGH505X                                : ARR( 0.100E-10,     0., 0.0);
+{ 74489} G3H505c +GHO2               =  0.800GGH505O + 0.200GAH505R + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 74490} G3H505c +GNO                =       G3H400c +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 74491} G3H505c +GNO2               =       GPH505X                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 74492} G3H505c +GNO3               =       G3H400c +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 74493} G3H505c +MEPERO             =  0.685G3H400c + 0.315GAH505R + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 74494} G3H505c +PERO1              =  0.800G3H400c + 0.200GAH505R + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 74495} G3H505c +PERO2              =  0.750G3H400c + 0.250GAH505R + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 74496} G3H505c +PERO3              =  0.800G3H400c + 0.200GAH505R + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 74497} G3H505c +PERO5              =  0.650G3H400c + 0.350GAH505R + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 74498} G3H505c +PERO6              =  0.650G3H400c + 0.350GAH505R + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 74499} G3H505c +PERO9              =       G3H400c +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 74500} G1G508W                     =       GHN300A +      GCO     +      GHO2    +      GCO      : ARR( 0.200E+15,  3266., 0.0);
+{ 74501} GGH505P +GHO                =       GGN502T +      GHO                                    : ARR( 0.327E-11,     0., 0.0);
+{ 74502} GGH505P +GHO                =       GGH505W +      GHO2                                   : ARR( 0.128E-11,     0., 0.0);
+{ 74503} GGH505P +GHO                =       G2G505x                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 74504} GGH505P +GHO                =       G3H504z                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 74505} GGH505P+HV               =       G1G504b +      GHO                                    :  0.100E+01*SUN;
+{ 74506} GGH505P+HV               =       G1G507O +      GNO2                                   :  0.100E+01*SUN;
+{ 74507} GGH505P+HV               =       G1G5077 +      GNO2                                   :  0.100E+01*SUN;
+{ 74508} GGH505P+HV               =       GHN4013 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 74509} G2G505x +GNO                =       G1G504b +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 74510} G2G505x +GNO                =       GGN501s                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 74511} G2G505x +GHO2               =       GGH505P                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 74512} G2G505x +GNO3               =       G1G504b +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 74513} G2G505x +MEPERO             =  0.480G1G504b + 0.260GGN501t + 0.260GGN502T                 : ARR( 0.164E-12,  -795., 0.0);
+{ 74514} G2G505x +PERO1              =  0.600G1G504b + 0.200GGN501t + 0.200GGN502T                 : ARR( 0.126E-12,  -850., 0.0);
+{ 74515} G2G505x +PERO2              =  0.560G1G504b + 0.220GGN501t + 0.220GGN502T                 : ARR( 0.471E-13, -1350., 0.0);
+{ 74516} G2G505x +PERO3              =  0.600G1G504b + 0.200GGN501t + 0.200GGN502T                 : ARR( 0.142E-12, -1200., 0.0);
+{ 74517} G2G505x +PERO5              =  0.600G1G504b + 0.200GGN501t + 0.200GGN502T                 : ARR( 0.533E-11,   500., 0.0);
+{ 74518} G2G505x +PERO6              =  0.460G1G504b + 0.270GGN501t + 0.270GGN502T                 : ARR( 0.488E-13, -1250., 0.0);
+{ 74519} G2G505x +PERO9              =  0.800G1G504b + 0.200GGN502T                                : ARR( 0.100E-10,     0., 0.0);
+{ 74520} GAH505R +GHO                =       GAH504r +      GHO                                    : ARR( 0.532E-11,     0., 0.0);
+{ 74521} GAH505R +GHO                =       GAH505B +      GHO                                    : ARR( 0.340E-11,     0., 0.0);
+{ 74522} GAH505R +GHO                =       G2A506x                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 74523} GAH505R +GHO                =       G2A506y                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 74524} GAH505R+HV               =       GHH400a +      GCO2                                   :  0.100E+01*SUN;
+{ 74525} GAH505R+HV               =       G1A507x +      GHO                                    :  0.100E+01*SUN;
+{ 74526} GAH505R+HV               =       G1A507n +      GNO2                                   :  0.100E+01*SUN;
+{ 74527} GAH505R+HV               =       G1A506y +      GHO                                    :  0.100E+01*SUN;
+{ 74528} G2A506x +GNO                =       G1A507x +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 74529} G2A506x +GNO                =       GAH504j                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 74530} G2A506x +GHO2               =       GAH505R                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 74531} G2A506x +GNO3               =       G1A507x +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 74532} G2A506x +MEPERO             =  0.340G1A507x + 0.330GAH5055 + 0.330GAH504r                 : ARR( 0.565E-13,  -845., 0.0);
+{ 74533} G2A506x +PERO1              =  0.460G1A507x + 0.270GAH5055 + 0.270GAH504r                 : ARR( 0.434E-13,  -900., 0.0);
+{ 74534} G2A506x +PERO2              =  0.400G1A507x + 0.300GAH5055 + 0.300GAH504r                 : ARR( 0.162E-13, -1400., 0.0);
+{ 74535} G2A506x +PERO3              =  0.460G1A507x + 0.270GAH5055 + 0.270GAH504r                 : ARR( 0.488E-13, -1250., 0.0);
+{ 74536} G2A506x +PERO5              =  0.460G1A507x + 0.270GAH5055 + 0.270GAH504r                 : ARR( 0.183E-11,   450., 0.0);
+{ 74537} G2A506x +PERO6              =  0.300G1A507x + 0.350GAH5055 + 0.350GAH504r                 : ARR( 0.168E-13, -1300., 0.0);
+{ 74538} G2A506x +PERO9              =  0.650G1A507x + 0.350GAH504r                                : ARR( 0.100E-10,     0., 0.0);
+{ 74539} G2A506y +GNO                =       G1A506y +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 74540} G2A506y +GNO                =       GAH503b                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 74541} G2A506y +GHO2               =       GAH505R                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 74542} G2A506y +GNO3               =       G1A506y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 74543} G2A506y +MEPERO             =  0.480G1A506y + 0.260GAH503G + 0.260GAH505B                 : ARR( 0.164E-12,  -795., 0.0);
+{ 74544} G2A506y +PERO1              =  0.600G1A506y + 0.200GAH503G + 0.200GAH505B                 : ARR( 0.126E-12,  -850., 0.0);
+{ 74545} G2A506y +PERO2              =  0.560G1A506y + 0.220GAH503G + 0.220GAH505B                 : ARR( 0.471E-13, -1350., 0.0);
+{ 74546} G2A506y +PERO3              =  0.600G1A506y + 0.200GAH503G + 0.200GAH505B                 : ARR( 0.142E-12, -1200., 0.0);
+{ 74547} G2A506y +PERO5              =  0.600G1A506y + 0.200GAH503G + 0.200GAH505B                 : ARR( 0.533E-11,   500., 0.0);
+{ 74548} G2A506y +PERO6              =  0.460G1A506y + 0.270GAH503G + 0.270GAH505B                 : ARR( 0.488E-13, -1250., 0.0);
+{ 74549} G2A506y +PERO9              =  0.800G1A506y + 0.200GAH505B                                : ARR( 0.100E-10,     0., 0.0);
+{ 74550} GAH505S +GHO                =       GAH504j +      GHO2                                   : ARR( 0.951E-12,     0., 0.0);
+{ 74551} GAH505S +GHO                =       GAN502G +      GHO                                    : ARR( 0.329E-11,     0., 0.0);
+{ 74552} GAH505S +GHO                =       G2A506z                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 74553} GAH505S +GHO                =       GHN4013 +      GHO2    +      GCO2                    : ARR( 0.532E-12,     0., 0.0);
+{ 74554} GAH505S+HV               =       G1A507e +      GNO2                                   :  0.100E+01*SUN;
+{ 74555} GAH505S+HV               =       G1A508A +      GNO2                                   :  0.100E+01*SUN;
+{ 74556} GAH505S+HV               =       G1A505i +      GHO                                    :  0.100E+01*SUN;
+{ 74557} G2A506z +GNO                =       G1A505i +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 74558} G2A506z +GNO                =       GAN5026                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 74559} G2A506z +GHO2               =       GAH505S                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 74560} G2A506z +GNO3               =       G1A505i +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 74561} G2A506z +MEPERO             =  0.480G1A505i + 0.260GAN5027 + 0.260GAN502G                 : ARR( 0.164E-12,  -795., 0.0);
+{ 74562} G2A506z +PERO1              =  0.600G1A505i + 0.200GAN5027 + 0.200GAN502G                 : ARR( 0.126E-12,  -850., 0.0);
+{ 74563} G2A506z +PERO2              =  0.560G1A505i + 0.220GAN5027 + 0.220GAN502G                 : ARR( 0.471E-13, -1350., 0.0);
+{ 74564} G2A506z +PERO3              =  0.600G1A505i + 0.200GAN5027 + 0.200GAN502G                 : ARR( 0.142E-12, -1200., 0.0);
+{ 74565} G2A506z +PERO5              =  0.600G1A505i + 0.200GAN5027 + 0.200GAN502G                 : ARR( 0.533E-11,   500., 0.0);
+{ 74566} G2A506z +PERO6              =  0.460G1A505i + 0.270GAN5027 + 0.270GAN502G                 : ARR( 0.488E-13, -1250., 0.0);
+{ 74567} G2A506z +PERO9              =  0.800G1A505i + 0.200GAN502G                                : ARR( 0.100E-10,     0., 0.0);
+{ 74568} GPH505X                     =       G3H505c +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 74569} GPH505X +GHO                =       GPH505I +      GHO                                    : ARR( 0.329E-11,     0., 0.0);
+{ 74570} GPH505X +GHO                =       GPH5052 +      GHO                                    : ARR( 0.515E-11,     0., 0.0);
+{ 74571} GPH505X +GHO                =       G2P507m                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 74572} GPH505X +GHO                =       G2P507n                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 74573} GPH505X+HV               =       G1P507f +      GHO                                    :  0.100E+01*SUN;
+{ 74574} GPH505X+HV               =       G1P508K +      GNO2                                   :  0.100E+01*SUN;
+{ 74575} GPH505X+HV               =       G1P508h +      GHO                                    :  0.100E+01*SUN;
+{ 74576} GPH505X+HV               =       G3H400c +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 74577} G2P507m +GNO                =       G1P507f +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 74578} G2P507m +GNO                =       GPH503g                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 74579} G2P507m +GHO2               =       GPH505X                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 74580} G2P507m +GNO3               =       G1P507f +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 74581} G2P507m +MEPERO             =  0.480G1P507f + 0.260GPH503M + 0.260GPH505I                 : ARR( 0.164E-12,  -795., 0.0);
+{ 74582} G2P507m +PERO1              =  0.600G1P507f + 0.200GPH503M + 0.200GPH505I                 : ARR( 0.126E-12,  -850., 0.0);
+{ 74583} G2P507m +PERO2              =  0.560G1P507f + 0.220GPH503M + 0.220GPH505I                 : ARR( 0.471E-13, -1350., 0.0);
+{ 74584} G2P507m +PERO3              =  0.600G1P507f + 0.200GPH503M + 0.200GPH505I                 : ARR( 0.142E-12, -1200., 0.0);
+{ 74585} G2P507m +PERO5              =  0.600G1P507f + 0.200GPH503M + 0.200GPH505I                 : ARR( 0.533E-11,   500., 0.0);
+{ 74586} G2P507m +PERO6              =  0.460G1P507f + 0.270GPH503M + 0.270GPH505I                 : ARR( 0.488E-13, -1250., 0.0);
+{ 74587} G2P507m +PERO9              =  0.800G1P507f + 0.200GPH505I                                : ARR( 0.100E-10,     0., 0.0);
+{ 74588} G2P507n +GNO                =       G1P508h +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 74589} G2P507n +GNO                =       GPH504n                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 74590} G2P507n +GHO2               =       GPH505X                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 74591} G2P507n +GNO3               =       G1P508h +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 74592} G2P507n +MEPERO             =  0.340G1P508h + 0.330GPH504v + 0.330GPH5052                 : ARR( 0.565E-13,  -845., 0.0);
+{ 74593} G2P507n +PERO1              =  0.460G1P508h + 0.270GPH504v + 0.270GPH5052                 : ARR( 0.434E-13,  -900., 0.0);
+{ 74594} G2P507n +PERO2              =  0.400G1P508h + 0.300GPH504v + 0.300GPH5052                 : ARR( 0.162E-13, -1400., 0.0);
+{ 74595} G2P507n +PERO3              =  0.460G1P508h + 0.270GPH504v + 0.270GPH5052                 : ARR( 0.488E-13, -1250., 0.0);
+{ 74596} G2P507n +PERO5              =  0.460G1P508h + 0.270GPH504v + 0.270GPH5052                 : ARR( 0.183E-11,   450., 0.0);
+{ 74597} G2P507n +PERO6              =  0.300G1P508h + 0.350GPH504v + 0.350GPH5052                 : ARR( 0.168E-13, -1300., 0.0);
+{ 74598} G2P507n +PERO9              =  0.650G1P508h + 0.350GPH5052                                : ARR( 0.100E-10,     0., 0.0);
+{ 74599} GPH505Y                     =       G3H504z +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 74600} GPH505Y +GHO                =       GPN501k +      GHO                                    : ARR( 0.329E-11,     0., 0.0);
+{ 74601} GPH505Y +GHO                =       GPH504n +      GHO2                                   : ARR( 0.129E-11,     0., 0.0);
+{ 74602} GPH505Y +GHO                =       G2P507o                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 74603} GPH505Y+HV               =       G1P505E +      GHO                                    :  0.100E+01*SUN;
+{ 74604} GPH505Y+HV               =       G1P508v +      GNO2                                   :  0.100E+01*SUN;
+{ 74605} GPH505Y+HV               =       G1P508F +      GNO2                                   :  0.100E+01*SUN;
+{ 74606} GPH505Y+HV               =       G3H504z +      GNO2                                   :  0.100E+01*SUN;
+{ 74607} G2P507o +GNO                =       G1P505E +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 74608} G2P507o +GNO                =       GPN502F                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 74609} G2P507o +GHO2               =       GPH505Y                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 74610} G2P507o +GNO3               =       G1P505E +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 74611} G2P507o +MEPERO             =  0.480G1P505E + 0.260GPN501i + 0.260GPN501k                 : ARR( 0.164E-12,  -795., 0.0);
+{ 74612} G2P507o +PERO1              =  0.600G1P505E + 0.200GPN501i + 0.200GPN501k                 : ARR( 0.126E-12,  -850., 0.0);
+{ 74613} G2P507o +PERO2              =  0.560G1P505E + 0.220GPN501i + 0.220GPN501k                 : ARR( 0.471E-13, -1350., 0.0);
+{ 74614} G2P507o +PERO3              =  0.600G1P505E + 0.200GPN501i + 0.200GPN501k                 : ARR( 0.142E-12, -1200., 0.0);
+{ 74615} G2P507o +PERO5              =  0.600G1P505E + 0.200GPN501i + 0.200GPN501k                 : ARR( 0.533E-11,   500., 0.0);
+{ 74616} G2P507o +PERO6              =  0.460G1P505E + 0.270GPN501i + 0.270GPN501k                 : ARR( 0.488E-13, -1250., 0.0);
+{ 74617} G2P507o +PERO9              =  0.800G1P505E + 0.200GPN501k                                : ARR( 0.100E-10,     0., 0.0);
+{ 74618} GGH505Q +GHO                =       GGH503v +      GHO                                    : ARR( 0.609E-10,     0., 0.0);
+{ 74619} GGH505Q +GHO                =       GGH504L +      GHO                                    : ARR( 0.300E-10,     0., 0.0);
+{ 74620} GGH505Q+HV               =       G1G506z +      GHO                                    :  0.100E+01*SUN;
+{ 74621} GGH505Q+HV               =       G1G508U +      GHO                                    :  0.100E+01*SUN;
+{ 74622} GGH505Q+HV               =       G3H3007 +      GGD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 74623} GGH505Q+HV               =       GHH400w +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 74624} GAH505T +GHO                =       GAH504T +      GHO                                    : ARR( 0.287E-10,     0., 0.0);
+{ 74625} GAH505T +GHO                =       GAH503q +      GHO                                    : ARR( 0.582E-10,     0., 0.0);
+{ 74626} GAH505T+HV               =       G3A3002 +      GHD2000 +      GHO                     :  0.100E+01*SUN;
+{ 74627} GAH505T+HV               =       G1A509R +      GHO                                    :  0.100E+01*SUN;
+{ 74628} GAH505T+HV               =       G1A507d +      GHO                                    :  0.100E+01*SUN;
+{ 74629} GPH505Z                     =       G3H5051 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 74630} GPH505Z +GHO                =       GPH503x +      GHO                                    : ARR( 0.585E-10,     0., 0.0);
+{ 74631} GPH505Z +GHO                =       GPH504U +      GHO                                    : ARR( 0.288E-10,     0., 0.0);
+{ 74632} GPH505Z+HV               =       G1P507J +      GHO                                    :  0.100E+01*SUN;
+{ 74633} GPH505Z+HV               =       G1P509M +      GHO                                    :  0.100E+01*SUN;
+{ 74634} GPH505Z+HV               =       G3H3007 +      GPD2000 +      GHO2                    :  0.100E+01*SUN;
+{ 74635} GPH505Z+HV               =       G3H5051 +      GNO2                                   :  0.100E+01*SUN;
+{ 74636} GAH505U +GHO                =       GAH504t +      GHO                                    : ARR( 0.156E-10,     0., 0.0);
+{ 74637} GAH505U +GHO                =       GAH505C +      GHO                                    : ARR( 0.997E-11,     0., 0.0);
+{ 74638} GAH505U +GHO                =       G2A5071                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 74639} GAH505U +GHO                =       G2A5072                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 74640} GAH505U+HV               =       GHH400b +      GCO2                                   :  0.100E+01*SUN;
+{ 74641} GAH505U+HV               =       G1A5086 +      GHO                                    :  0.100E+01*SUN;
+{ 74642} GAH505U+HV               =       G3A400K +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 74643} GAH505U+HV               =       G1A506z +      GHO                                    :  0.100E+01*SUN;
+{ 74644} G2A5071 +GNO                =       G1A5086 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 74645} G2A5071 +GNO                =       GAH504l                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 74646} G2A5071 +GHO2               =       GAH505U                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 74647} G2A5071 +GNO3               =       G1A5086 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 74648} G2A5071 +MEPERO             =  0.340G1A5086 + 0.330GAH504h + 0.330GAH504t                 : ARR( 0.565E-13,  -845., 0.0);
+{ 74649} G2A5071 +PERO1              =  0.460G1A5086 + 0.270GAH504h + 0.270GAH504t                 : ARR( 0.434E-13,  -900., 0.0);
+{ 74650} G2A5071 +PERO2              =  0.400G1A5086 + 0.300GAH504h + 0.300GAH504t                 : ARR( 0.162E-13, -1400., 0.0);
+{ 74651} G2A5071 +PERO3              =  0.460G1A5086 + 0.270GAH504h + 0.270GAH504t                 : ARR( 0.488E-13, -1250., 0.0);
+{ 74652} G2A5071 +PERO5              =  0.460G1A5086 + 0.270GAH504h + 0.270GAH504t                 : ARR( 0.183E-11,   450., 0.0);
+{ 74653} G2A5071 +PERO6              =  0.300G1A5086 + 0.350GAH504h + 0.350GAH504t                 : ARR( 0.168E-13, -1300., 0.0);
+{ 74654} G2A5071 +PERO9              =  0.650G1A5086 + 0.350GAH504t                                : ARR( 0.100E-10,     0., 0.0);
+{ 74655} G2A5072 +GNO                =       G1A506z +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 74656} G2A5072 +GNO                =       GAH503d                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 74657} G2A5072 +GHO2               =       GAH505U                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 74658} G2A5072 +GNO3               =       G1A506z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 74659} G2A5072 +MEPERO             =  0.480G1A506z + 0.260GAH503I + 0.260GAH505C                 : ARR( 0.164E-12,  -795., 0.0);
+{ 74660} G2A5072 +PERO1              =  0.600G1A506z + 0.200GAH503I + 0.200GAH505C                 : ARR( 0.126E-12,  -850., 0.0);
+{ 74661} G2A5072 +PERO2              =  0.560G1A506z + 0.220GAH503I + 0.220GAH505C                 : ARR( 0.471E-13, -1350., 0.0);
+{ 74662} G2A5072 +PERO3              =  0.600G1A506z + 0.200GAH503I + 0.200GAH505C                 : ARR( 0.142E-12, -1200., 0.0);
+{ 74663} G2A5072 +PERO5              =  0.600G1A506z + 0.200GAH503I + 0.200GAH505C                 : ARR( 0.533E-11,   500., 0.0);
+{ 74664} G2A5072 +PERO6              =  0.460G1A506z + 0.270GAH503I + 0.270GAH505C                 : ARR( 0.488E-13, -1250., 0.0);
+{ 74665} G2A5072 +PERO9              =  0.800G1A506z + 0.200GAH505C                                : ARR( 0.100E-10,     0., 0.0);
+{ 74666} GGH505R +GHO                =       GGN502r +      GHO                                    : ARR( 0.983E-11,     0., 0.0);
+{ 74667} GGH505R +GHO                =       G2G505y                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 74668} GGH505R +GHO                =       G3H505G                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 74669} GGH505R+HV               =       G1G505W +      GHO                                    :  0.100E+01*SUN;
+{ 74670} GGH505R+HV               =       G3H2000 +      GGD3002 +      GNO2                    :  0.100E+01*SUN;
+{ 74671} GGH505R+HV               =       G1G507J +      GNO2                                   :  0.100E+01*SUN;
+{ 74672} GGH505R+HV               =       GAH400m +      GCO2                                   :  0.100E+01*SUN;
+{ 74673} G2G505y +GNO                =       G1G505W +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 74674} G2G505y +GNO                =       GGN502F                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 74675} G2G505y +GHO2               =       GGH505R                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 74676} G2G505y +GNO3               =       G1G505W +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 74677} G2G505y +MEPERO             =  0.480G1G505W + 0.260GGN502H + 0.260GGN502r                 : ARR( 0.164E-12,  -795., 0.0);
+{ 74678} G2G505y +PERO1              =  0.600G1G505W + 0.200GGN502H + 0.200GGN502r                 : ARR( 0.126E-12,  -850., 0.0);
+{ 74679} G2G505y +PERO2              =  0.560G1G505W + 0.220GGN502H + 0.220GGN502r                 : ARR( 0.471E-13, -1350., 0.0);
+{ 74680} G2G505y +PERO3              =  0.600G1G505W + 0.200GGN502H + 0.200GGN502r                 : ARR( 0.142E-12, -1200., 0.0);
+{ 74681} G2G505y +PERO5              =  0.600G1G505W + 0.200GGN502H + 0.200GGN502r                 : ARR( 0.533E-11,   500., 0.0);
+{ 74682} G2G505y +PERO6              =  0.460G1G505W + 0.270GGN502H + 0.270GGN502r                 : ARR( 0.488E-13, -1250., 0.0);
+{ 74683} G2G505y +PERO9              =  0.800G1G505W + 0.200GGN502r                                : ARR( 0.100E-10,     0., 0.0);
+{ 74684} GGG500j +GHO                =       GGG500y +      GHO2                                   : ARR( 0.200E-10,     0., 0.0);
+{ 74685} GGG500j +GHO                =       GGG500N +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 74686} GGG500j +GHO                =       G3G5019                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 74687} GGG500j +GHO                =       G2G505z                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 74688} GGG500j +GHO                =       G3G501i                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 74689} GGG500j+HV               =       GGH400p +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 74690} GGG500j+HV               =       G1G508X +      GHO                                    :  0.100E+01*SUN;
+{ 74691} GGG500j+HV               =       GAG400J +      GCO2                                   :  0.100E+01*SUN;
+{ 74692} G2G505z +GNO                =       G1G508X +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 74693} G2G505z +GNO                =       GGG500l                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 74694} G2G505z +GHO2               =       GGG500j                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 74695} G2G505z +GNO3               =       G1G508X +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 74696} G2G505z +MEPERO             =  0.340G1G508X + 0.330GGG500k + 0.330GGG500N                 : ARR( 0.565E-13,  -845., 0.0);
+{ 74697} G2G505z +PERO1              =  0.460G1G508X + 0.270GGG500k + 0.270GGG500N                 : ARR( 0.434E-13,  -900., 0.0);
+{ 74698} G2G505z +PERO2              =  0.400G1G508X + 0.300GGG500k + 0.300GGG500N                 : ARR( 0.162E-13, -1400., 0.0);
+{ 74699} G2G505z +PERO3              =  0.460G1G508X + 0.270GGG500k + 0.270GGG500N                 : ARR( 0.488E-13, -1250., 0.0);
+{ 74700} G2G505z +PERO5              =  0.460G1G508X + 0.270GGG500k + 0.270GGG500N                 : ARR( 0.183E-11,   450., 0.0);
+{ 74701} G2G505z +PERO6              =  0.300G1G508X + 0.350GGG500k + 0.350GGG500N                 : ARR( 0.168E-13, -1300., 0.0);
+{ 74702} G2G505z +PERO9              =  0.650G1G508X + 0.350GGG500N                                : ARR( 0.100E-10,     0., 0.0);
+{ 74703} G3G501i +GHO2               =  0.800GGG500j + 0.200GAG501O + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 74704} G3G501i +GNO                =       G3G400G +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 74705} G3G501i +GNO2               =       GPG501N                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 74706} G3G501i +GNO3               =       G3G400G +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 74707} G3G501i +MEPERO             =  0.685G3G400G + 0.315GAG501O + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 74708} G3G501i +PERO1              =  0.800G3G400G + 0.200GAG501O + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 74709} G3G501i +PERO2              =  0.750G3G400G + 0.250GAG501O + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 74710} G3G501i +PERO3              =  0.800G3G400G + 0.200GAG501O + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 74711} G3G501i +PERO5              =  0.650G3G400G + 0.350GAG501O + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 74712} G3G501i +PERO6              =  0.650G3G400G + 0.350GAG501O + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 74713} G3G501i +PERO9              =       G3G400G +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 74714} G1G508X                     =       GGD3001 +      GCO     +      GHO2    +      GCO      : ARR( 0.200E+15,  2436., 0.0);
+{ 74715} GAG501N +GHO                =       GAG501t +      GHO2                                   : ARR( 0.149E-10,     0., 0.0);
+{ 74716} GAG501N +GHO                =       GAG500j +      GHO                                    : ARR( 0.255E-10,     0., 0.0);
+{ 74717} GAG501N +GHO                =       G2A5073                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 74718} GAG501N +GHO                =       G3A501q                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 74719} GAG501N+HV               =       G1A509S +      GHO                                    :  0.100E+01*SUN;
+{ 74720} GAG501N+HV               =       GAA400C +      GCO2                                   :  0.100E+01*SUN;
+{ 74721} G2A5073 +GNO                =       G1A509S +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 74722} G2A5073 +GNO                =       GAG501R                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 74723} G2A5073 +GHO2               =       GAG501N                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 74724} G2A5073 +GNO3               =       G1A509S +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 74725} G2A5073 +MEPERO             =  0.340G1A509S + 0.330GAG501P + 0.330GAG500j                 : ARR( 0.565E-13,  -845., 0.0);
+{ 74726} G2A5073 +PERO1              =  0.460G1A509S + 0.270GAG501P + 0.270GAG500j                 : ARR( 0.434E-13,  -900., 0.0);
+{ 74727} G2A5073 +PERO2              =  0.400G1A509S + 0.300GAG501P + 0.300GAG500j                 : ARR( 0.162E-13, -1400., 0.0);
+{ 74728} G2A5073 +PERO3              =  0.460G1A509S + 0.270GAG501P + 0.270GAG500j                 : ARR( 0.488E-13, -1250., 0.0);
+{ 74729} G2A5073 +PERO5              =  0.460G1A509S + 0.270GAG501P + 0.270GAG500j                 : ARR( 0.183E-11,   450., 0.0);
+{ 74730} G2A5073 +PERO6              =  0.300G1A509S + 0.350GAG501P + 0.350GAG500j                 : ARR( 0.168E-13, -1300., 0.0);
+{ 74731} G2A5073 +PERO9              =  0.650G1A509S + 0.350GAG500j                                : ARR( 0.100E-10,     0., 0.0);
+{ 74732} G1A509S                     =       GAD3001 +      GCO     +      GHO2    +      GCO      : ARR( 0.200E+15,  2436., 0.0);
+{ 74733} GPG501M                     =       G3G5019 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 74734} GPG501M +GHO                =       GPG500m +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 74735} GPG501M +GHO                =       GPG501u +      GHO2                                   : ARR( 0.200E-10,     0., 0.0);
+{ 74736} GPG501M +GHO                =       G3P501m                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 74737} GPG501M +GHO                =       G2P507p                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 74738} GPG501M+HV               =       GPA400M +      GCO2                                   :  0.100E+01*SUN;
+{ 74739} GPG501M+HV               =       G1P509u +      GHO                                    :  0.100E+01*SUN;
+{ 74740} GPG501M+HV               =       G3G5019 +      GNO2                                   :  0.100E+01*SUN;
+{ 74741} G3P501m +GHO2               =  0.800GPG501M + 0.200GPA501R + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 74742} G3P501m +GNO                =       G3P400I +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 74743} G3P501m +GNO2               =       GPP500l                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 74744} G3P501m +GNO3               =       G3P400I +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 74745} G3P501m +MEPERO             =  0.685G3P400I + 0.315GPA501R + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 74746} G3P501m +PERO1              =  0.800G3P400I + 0.200GPA501R + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 74747} G3P501m +PERO2              =  0.750G3P400I + 0.250GPA501R + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 74748} G3P501m +PERO3              =  0.800G3P400I + 0.200GPA501R + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 74749} G3P501m +PERO5              =  0.650G3P400I + 0.350GPA501R + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 74750} G3P501m +PERO6              =  0.650G3P400I + 0.350GPA501R + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 74751} G3P501m +PERO9              =       G3P400I +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 74752} G2P507p +GNO                =       G1P509u +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 74753} G2P507p +GNO                =       GPG500w                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 74754} G2P507p +GHO2               =       GPG501M                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 74755} G2P507p +GNO3               =       G1P509u +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 74756} G2P507p +MEPERO             =  0.340G1P509u + 0.330GPG501O + 0.330GPG500m                 : ARR( 0.565E-13,  -845., 0.0);
+{ 74757} G2P507p +PERO1              =  0.460G1P509u + 0.270GPG501O + 0.270GPG500m                 : ARR( 0.434E-13,  -900., 0.0);
+{ 74758} G2P507p +PERO2              =  0.400G1P509u + 0.300GPG501O + 0.300GPG500m                 : ARR( 0.162E-13, -1400., 0.0);
+{ 74759} G2P507p +PERO3              =  0.460G1P509u + 0.270GPG501O + 0.270GPG500m                 : ARR( 0.488E-13, -1250., 0.0);
+{ 74760} G2P507p +PERO5              =  0.460G1P509u + 0.270GPG501O + 0.270GPG500m                 : ARR( 0.183E-11,   450., 0.0);
+{ 74761} G2P507p +PERO6              =  0.300G1P509u + 0.350GPG501O + 0.350GPG500m                 : ARR( 0.168E-13, -1300., 0.0);
+{ 74762} G2P507p +PERO9              =  0.650G1P509u + 0.350GPG500m                                : ARR( 0.100E-10,     0., 0.0);
+{ 74763} GAG501O +GHO                =       GAG500s +      GHO                                    : ARR( 0.254E-10,     0., 0.0);
+{ 74764} GAG501O +GHO                =       GAG501t +      GHO2                                   : ARR( 0.202E-10,     0., 0.0);
+{ 74765} GAG501O +GHO                =       G2A5074                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 74766} GAG501O +GHO                =       G3A501G                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 74767} GAG501O+HV               =       GGH400i +      GCO2                                   :  0.100E+01*SUN;
+{ 74768} GAG501O+HV               =       G1A509T +      GHO                                    :  0.100E+01*SUN;
+{ 74769} GAG501O+HV               =       GAH400s +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 74770} G2A5074 +GNO                =       G1A509T +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 74771} G2A5074 +GNO                =       GAG501S                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 74772} G2A5074 +GHO2               =       GAG501O                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 74773} G2A5074 +GNO3               =       G1A509T +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 74774} G2A5074 +MEPERO             =  0.340G1A509T + 0.330GAG501Q + 0.330GAG500s                 : ARR( 0.565E-13,  -845., 0.0);
+{ 74775} G2A5074 +PERO1              =  0.460G1A509T + 0.270GAG501Q + 0.270GAG500s                 : ARR( 0.434E-13,  -900., 0.0);
+{ 74776} G2A5074 +PERO2              =  0.400G1A509T + 0.300GAG501Q + 0.300GAG500s                 : ARR( 0.162E-13, -1400., 0.0);
+{ 74777} G2A5074 +PERO3              =  0.460G1A509T + 0.270GAG501Q + 0.270GAG500s                 : ARR( 0.488E-13, -1250., 0.0);
+{ 74778} G2A5074 +PERO5              =  0.460G1A509T + 0.270GAG501Q + 0.270GAG500s                 : ARR( 0.183E-11,   450., 0.0);
+{ 74779} G2A5074 +PERO6              =  0.300G1A509T + 0.350GAG501Q + 0.350GAG500s                 : ARR( 0.168E-13, -1300., 0.0);
+{ 74780} G2A5074 +PERO9              =  0.650G1A509T + 0.350GAG500s                                : ARR( 0.100E-10,     0., 0.0);
+{ 74781} G1A509T                     =       GCO     +      GGD3001 +      GHO     +      GCO      : ARR( 0.200E+15,  2436., 0.0);
+{ 74782} GPG501N                     =       G3G501i +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 74783} GPG501N +GHO                =       GPG501u +      GHO2                                   : ARR( 0.200E-10,     0., 0.0);
+{ 74784} GPG501N +GHO                =       GPG500j +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 74785} GPG501N +GHO                =       G3P501B                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 74786} GPG501N +GHO                =       G2P507q                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 74787} GPG501N+HV               =       GPH400t +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 74788} GPG501N+HV               =       G1P509t +      GHO                                    :  0.100E+01*SUN;
+{ 74789} GPG501N+HV               =       G3G400G +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 74790} G2P507q +GNO                =       G1P509t +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 74791} G2P507q +GNO                =       GPG500v                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 74792} G2P507q +GHO2               =       GPG501N                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 74793} G2P507q +GNO3               =       G1P509t +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 74794} G2P507q +MEPERO             =  0.340G1P509t + 0.330GPG501P + 0.330GPG500j                 : ARR( 0.565E-13,  -845., 0.0);
+{ 74795} G2P507q +PERO1              =  0.460G1P509t + 0.270GPG501P + 0.270GPG500j                 : ARR( 0.434E-13,  -900., 0.0);
+{ 74796} G2P507q +PERO2              =  0.400G1P509t + 0.300GPG501P + 0.300GPG500j                 : ARR( 0.162E-13, -1400., 0.0);
+{ 74797} G2P507q +PERO3              =  0.460G1P509t + 0.270GPG501P + 0.270GPG500j                 : ARR( 0.488E-13, -1250., 0.0);
+{ 74798} G2P507q +PERO5              =  0.460G1P509t + 0.270GPG501P + 0.270GPG500j                 : ARR( 0.183E-11,   450., 0.0);
+{ 74799} G2P507q +PERO6              =  0.300G1P509t + 0.350GPG501P + 0.350GPG500j                 : ARR( 0.168E-13, -1300., 0.0);
+{ 74800} G2P507q +PERO9              =  0.650G1P509t + 0.350GPG500j                                : ARR( 0.100E-10,     0., 0.0);
+{ 74801} GPP500l                     =       G3P501B +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 74802} GPP500l                     =       G3P501m +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 74803} GPP500l +GHO                =       GPP5018 +      GHO2                                   : ARR( 0.200E-10,     0., 0.0);
+{ 74804} GPP500l +GHO                =       GPP500U +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 74805} GPP500l +GHO                =       G2P507r                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 74806} GPP500l+HV               =       G3P501B +      GNO2                                   :  0.100E+01*SUN;
+{ 74807} GPP500l+HV               =       G1P5095 +      GHO                                    :  0.100E+01*SUN;
+{ 74808} GPP500l+HV               =       G3P400I +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 74809} G2P507r +GNO                =       G1P5095 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 74810} G2P507r +GNO                =       GPP500N                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 74811} G2P507r +GHO2               =       GPP500l                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 74812} G2P507r +GNO3               =       G1P5095 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 74813} G2P507r +MEPERO             =  0.340G1P5095 + 0.330GPP500m + 0.330GPP500U                 : ARR( 0.565E-13,  -845., 0.0);
+{ 74814} G2P507r +PERO1              =  0.460G1P5095 + 0.270GPP500m + 0.270GPP500U                 : ARR( 0.434E-13,  -900., 0.0);
+{ 74815} G2P507r +PERO2              =  0.400G1P5095 + 0.300GPP500m + 0.300GPP500U                 : ARR( 0.162E-13, -1400., 0.0);
+{ 74816} G2P507r +PERO3              =  0.460G1P5095 + 0.270GPP500m + 0.270GPP500U                 : ARR( 0.488E-13, -1250., 0.0);
+{ 74817} G2P507r +PERO5              =  0.460G1P5095 + 0.270GPP500m + 0.270GPP500U                 : ARR( 0.183E-11,   450., 0.0);
+{ 74818} G2P507r +PERO6              =  0.300G1P5095 + 0.350GPP500m + 0.350GPP500U                 : ARR( 0.168E-13, -1300., 0.0);
+{ 74819} G2P507r +PERO9              =  0.650G1P5095 + 0.350GPP500U                                : ARR( 0.100E-10,     0., 0.0);
+{ 74820} GPA501R                     =       G3A501G +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 74821} GPA501R +GHO                =       GPA500v +      GHO                                    : ARR( 0.255E-10,     0., 0.0);
+{ 74822} GPA501R +GHO                =       GPA501x +      GHO2                                   : ARR( 0.202E-10,     0., 0.0);
+{ 74823} GPA501R +GHO                =       G2P507s                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 74824} GPA501R+HV               =       GPH400p +      GCO2                                   :  0.100E+01*SUN;
+{ 74825} GPA501R+HV               =       G1P5093 +      GHO                                    :  0.100E+01*SUN;
+{ 74826} GPA501R+HV               =       G3A501G +      GNO2                                   :  0.100E+01*SUN;
+{ 74827} G2P507s +GNO                =       G1P5093 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 74828} G2P507s +GNO                =       GPA500i                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 74829} G2P507s +GHO2               =       GPA501R                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 74830} G2P507s +GNO3               =       G1P5093 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 74831} G2P507s +MEPERO             =  0.340G1P5093 + 0.330GPA501S + 0.330GPA500v                 : ARR( 0.565E-13,  -845., 0.0);
+{ 74832} G2P507s +PERO1              =  0.460G1P5093 + 0.270GPA501S + 0.270GPA500v                 : ARR( 0.434E-13,  -900., 0.0);
+{ 74833} G2P507s +PERO2              =  0.400G1P5093 + 0.300GPA501S + 0.300GPA500v                 : ARR( 0.162E-13, -1400., 0.0);
+{ 74834} G2P507s +PERO3              =  0.460G1P5093 + 0.270GPA501S + 0.270GPA500v                 : ARR( 0.488E-13, -1250., 0.0);
+{ 74835} G2P507s +PERO5              =  0.460G1P5093 + 0.270GPA501S + 0.270GPA500v                 : ARR( 0.183E-11,   450., 0.0);
+{ 74836} G2P507s +PERO6              =  0.300G1P5093 + 0.350GPA501S + 0.350GPA500v                 : ARR( 0.168E-13, -1300., 0.0);
+{ 74837} G2P507s +PERO9              =  0.650G1P5093 + 0.350GPA500v                                : ARR( 0.100E-10,     0., 0.0);
+{ 74838} GGG500k +GHO                =       GGG500o +      GHO2                                   : ARR( 0.201E-10,     0., 0.0);
+{ 74839} GGG500k +GHO                =       GGG500N +      GHO2                                   : ARR( 0.634E-11,     0., 0.0);
+{ 74840} GGG500k +GHO                =       G3G501B                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 74841} GGG500k +GHO                =       G3G501j                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 74842} GGG500k+HV               =       GGD4003 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 74843} GGG500k+HV               =       GAG400F +      GCO2                                   :  0.100E+01*SUN;
+{ 74844} G3G501j +GHO2               =  0.800GGG500k + 0.200GAG501Q + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 74845} G3G501j +GNO                =       G3G4009 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 74846} G3G501j +GNO2               =       GPG501P                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 74847} G3G501j +GNO3               =       G3G4009 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 74848} G3G501j +MEPERO             =  0.685G3G4009 + 0.315GAG501Q + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 74849} G3G501j +PERO1              =  0.800G3G4009 + 0.200GAG501Q + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 74850} G3G501j +PERO2              =  0.750G3G4009 + 0.250GAG501Q + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 74851} G3G501j +PERO3              =  0.800G3G4009 + 0.200GAG501Q + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 74852} G3G501j +PERO5              =  0.650G3G4009 + 0.350GAG501Q + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 74853} G3G501j +PERO6              =  0.650G3G4009 + 0.350GAG501Q + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 74854} G3G501j +PERO9              =       G3G4009 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 74855} GAG501P +GHO                =       GAG501a +      GHO2                                   : ARR( 0.152E-10,     0., 0.0);
+{ 74856} GAG501P +GHO                =       GAG500j +      GHO2                                   : ARR( 0.649E-11,     0., 0.0);
+{ 74857} GAG501P +GHO                =       G3A501i                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 74858} GAG501P+HV               =       GAA400D +      GCO2                                   :  0.100E+01*SUN;
+{ 74859} GPG501O                     =       G3G501B +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 74860} GPG501O +GHO                =       GPG500m +      GHO2                                   : ARR( 0.634E-11,     0., 0.0);
+{ 74861} GPG501O +GHO                =       GPG501Y +      GHO2                                   : ARR( 0.201E-10,     0., 0.0);
+{ 74862} GPG501O +GHO                =       G3P501n                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 74863} GPG501O+HV               =       GPA400I +      GCO2                                   :  0.100E+01*SUN;
+{ 74864} GPG501O+HV               =       G3G501B +      GNO2                                   :  0.100E+01*SUN;
+{ 74865} G3P501n +GHO2               =  0.800GPG501O + 0.200GPA501S + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 74866} G3P501n +GNO                =       G3P400D +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 74867} G3P501n +GNO2               =       GPP500m                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 74868} G3P501n +GNO3               =       G3P400D +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 74869} G3P501n +MEPERO             =  0.685G3P400D + 0.315GPA501S + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 74870} G3P501n +PERO1              =  0.800G3P400D + 0.200GPA501S + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 74871} G3P501n +PERO2              =  0.750G3P400D + 0.250GPA501S + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 74872} G3P501n +PERO3              =  0.800G3P400D + 0.200GPA501S + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 74873} G3P501n +PERO5              =  0.650G3P400D + 0.350GPA501S + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 74874} G3P501n +PERO6              =  0.650G3P400D + 0.350GPA501S + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 74875} G3P501n +PERO9              =       G3P400D +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 74876} GAG501Q +GHO                =       GAG500s +      GHO2                                   : ARR( 0.645E-11,     0., 0.0);
+{ 74877} GAG501Q +GHO                =       GAG501a +      GHO2                                   : ARR( 0.205E-10,     0., 0.0);
+{ 74878} GAG501Q +GHO                =       G3A501E                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 74879} GAG501Q+HV               =       GGD4006 +      GCO2                                   :  0.100E+01*SUN;
+{ 74880} GAG501Q+HV               =       GAD4004 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 74881} GPG501P                     =       G3G501j +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 74882} GPG501P +GHO                =       GPG501Y +      GHO2                                   : ARR( 0.201E-10,     0., 0.0);
+{ 74883} GPG501P +GHO                =       GPG500j +      GHO2                                   : ARR( 0.634E-11,     0., 0.0);
+{ 74884} GPG501P +GHO                =       G3P501D                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 74885} GPG501P+HV               =       GPD4004 +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 74886} GPG501P+HV               =       G3G4009 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 74887} GPP500m                     =       G3P501D +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 74888} GPP500m                     =       G3P501n +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 74889} GPP500m +GHO                =       GPP500u +      GHO2                                   : ARR( 0.201E-10,     0., 0.0);
+{ 74890} GPP500m +GHO                =       GPP500U +      GHO2                                   : ARR( 0.635E-11,     0., 0.0);
+{ 74891} GPP500m+HV               =       G3P501D +      GNO2                                   :  0.100E+01*SUN;
+{ 74892} GPP500m+HV               =       G3P400D +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 74893} GPA501S                     =       G3A501E +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 74894} GPA501S +GHO                =       GPA500v +      GHO2                                   : ARR( 0.647E-11,     0., 0.0);
+{ 74895} GPA501S +GHO                =       GPA501e +      GHO2                                   : ARR( 0.205E-10,     0., 0.0);
+{ 74896} GPA501S+HV               =       GPD4006 +      GCO2                                   :  0.100E+01*SUN;
+{ 74897} GPA501S+HV               =       G3A501E +      GNO2                                   :  0.100E+01*SUN;
+{ 74898} GGG500l +GHO                =       GGG5012 +      GHO2                                   : ARR( 0.129E-11,     0., 0.0);
+{ 74899} GGG500l +GHO                =       G3G501C                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 74900} GGG500l +GHO                =       G3G501L                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 74901} GGG500l+HV               =       GGN400b +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 74902} GGG500l+HV               =       G1G508X +      GNO2                                   :  0.100E+01*SUN;
+{ 74903} GGG500l+HV               =       GAG4007 +      GCO2                                   :  0.100E+01*SUN;
+{ 74904} GAG501R +GHO                =       GAG501z +      GHO2                                   : ARR( 0.969E-12,     0., 0.0);
+{ 74905} GAG501R +GHO                =       G3A501M                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 74906} GAG501R +GHO                =       GGN400b +      GHO2    +      GCO2                    : ARR( 0.542E-12,     0., 0.0);
+{ 74907} GAG501R+HV               =       G1A509S +      GNO2                                   :  0.100E+01*SUN;
+{ 74908} GAG501R+HV               =       GAA4004 +      GCO2                                   :  0.100E+01*SUN;
+{ 74909} GAG501S +GHO                =       GAG501z +      GHO2                                   : ARR( 0.131E-11,     0., 0.0);
+{ 74910} GAG501S +GHO                =       G3A501F                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 74911} GAG501S +GHO                =       G3G400B +      GCO2                                   : ARR( 0.541E-12,     0., 0.0);
+{ 74912} GAG501S+HV               =       GGN400U +      GCO2                                   :  0.100E+01*SUN;
+{ 74913} GAG501S+HV               =       G1A509T +      GNO2                                   :  0.100E+01*SUN;
+{ 74914} GAG501S+HV               =       GAN400Z +      GHO     +      GHO2    +      GCO2     :  0.100E+01*SUN;
+{ 74915} GGH505S +GHO                =       GGH505I +      GHO                                    : ARR( 0.983E-11,     0., 0.0);
+{ 74916} GGH505S +GHO                =       GGH505R +      GHO                                    : ARR( 0.504E-11,     0., 0.0);
+{ 74917} GGH505S +GHO                =       G2G5061                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 74918} GGH505S +GHO                =       G2G5062                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 74919} GGH505S +GHO                =       G3H505d                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 74920} GGH505S+HV               =       G1G506I +      GHO                                    :  0.100E+01*SUN;
+{ 74921} GGH505S+HV               =       G3H2000 +      GGH3007 +      GNO2                    :  0.100E+01*SUN;
+{ 74922} GGH505S+HV               =       G1G507I +      GNO2                                   :  0.100E+01*SUN;
+{ 74923} GGH505S+HV               =       G1G507T +      GHO                                    :  0.100E+01*SUN;
+{ 74924} GGH505S+HV               =       GHN401A +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 74925} G2G5061 +GNO                =       G1G506I +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 74926} G2G5061 +GNO                =       GGH503X                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 74927} G2G5061 +GHO2               =       GGH505S                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 74928} G2G5061 +GNO3               =       G1G506I +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 74929} G2G5061 +MEPERO             =  0.480G1G506I + 0.260GGH503W + 0.260GGH505I                 : ARR( 0.164E-12,  -795., 0.0);
+{ 74930} G2G5061 +PERO1              =  0.600G1G506I + 0.200GGH503W + 0.200GGH505I                 : ARR( 0.126E-12,  -850., 0.0);
+{ 74931} G2G5061 +PERO2              =  0.560G1G506I + 0.220GGH503W + 0.220GGH505I                 : ARR( 0.471E-13, -1350., 0.0);
+{ 74932} G2G5061 +PERO3              =  0.600G1G506I + 0.200GGH503W + 0.200GGH505I                 : ARR( 0.142E-12, -1200., 0.0);
+{ 74933} G2G5061 +PERO5              =  0.600G1G506I + 0.200GGH503W + 0.200GGH505I                 : ARR( 0.533E-11,   500., 0.0);
+{ 74934} G2G5061 +PERO6              =  0.460G1G506I + 0.270GGH503W + 0.270GGH505I                 : ARR( 0.488E-13, -1250., 0.0);
+{ 74935} G2G5061 +PERO9              =  0.800G1G506I + 0.200GGH505I                                : ARR( 0.100E-10,     0., 0.0);
+{ 74936} G2G5062 +GNO                =       G1G507T +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 74937} G2G5062 +GNO                =       GGH504n                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 74938} G2G5062 +GHO2               =       GGH505S                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 74939} G2G5062 +GNO3               =       G1G507T +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 74940} G2G5062 +MEPERO             =  0.340G1G507T + 0.330GGH504J + 0.330GGH505R                 : ARR( 0.565E-13,  -845., 0.0);
+{ 74941} G2G5062 +PERO1              =  0.460G1G507T + 0.270GGH504J + 0.270GGH505R                 : ARR( 0.434E-13,  -900., 0.0);
+{ 74942} G2G5062 +PERO2              =  0.400G1G507T + 0.300GGH504J + 0.300GGH505R                 : ARR( 0.162E-13, -1400., 0.0);
+{ 74943} G2G5062 +PERO3              =  0.460G1G507T + 0.270GGH504J + 0.270GGH505R                 : ARR( 0.488E-13, -1250., 0.0);
+{ 74944} G2G5062 +PERO5              =  0.460G1G507T + 0.270GGH504J + 0.270GGH505R                 : ARR( 0.183E-11,   450., 0.0);
+{ 74945} G2G5062 +PERO6              =  0.300G1G507T + 0.350GGH504J + 0.350GGH505R                 : ARR( 0.168E-13, -1300., 0.0);
+{ 74946} G2G5062 +PERO9              =  0.650G1G507T + 0.350GGH505R                                : ARR( 0.100E-10,     0., 0.0);
+{ 74947} G3H505d +GHO2               =  0.800GGH505S + 0.200GAH505W + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 74948} G3H505d +GNO                =       GHN401A +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 74949} G3H505d +GNO2               =       GPH505a                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 74950} G3H505d +GNO3               =       GHN401A +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 74951} G3H505d +MEPERO             =  0.685GHN401A + 0.315GAH505W + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 74952} G3H505d +PERO1              =  0.800GHN401A + 0.200GAH505W + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 74953} G3H505d +PERO2              =  0.750GHN401A + 0.250GAH505W + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 74954} G3H505d +PERO3              =  0.800GHN401A + 0.200GAH505W + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 74955} G3H505d +PERO5              =  0.650GHN401A + 0.350GAH505W + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 74956} G3H505d +PERO6              =  0.650GHN401A + 0.350GAH505W + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 74957} G3H505d +PERO9              =       GHN401A +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 74958} GAH505W +GHO                =       GAH504l +      GHO                                    : ARR( 0.383E-11,     0., 0.0);
+{ 74959} GAH505W +GHO                =       GAH505N +      GHO                                    : ARR( 0.101E-10,     0., 0.0);
+{ 74960} GAH505W +GHO                =       G2A5075                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 74961} GAH505W +GHO                =       G2A5076                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 74962} GAH505W+HV               =       G1A5082 +      GHO                                    :  0.100E+01*SUN;
+{ 74963} GAH505W+HV               =       G1A509U +      GNO2                                   :  0.100E+01*SUN;
+{ 74964} GAH505W+HV               =       G3A400G +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 74965} GAH505W+HV               =       G1A506I +      GHO                                    :  0.100E+01*SUN;
+{ 74966} G2A5075 +GNO                =       G1A5082 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 74967} G2A5075 +GNO                =       GAH504k                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 74968} G2A5075 +GHO2               =       GAH505W                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 74969} G2A5075 +GNO3               =       G1A5082 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 74970} G2A5075 +MEPERO             =  0.340G1A5082 + 0.330GAH504R + 0.330GAH504l                 : ARR( 0.565E-13,  -845., 0.0);
+{ 74971} G2A5075 +PERO1              =  0.460G1A5082 + 0.270GAH504R + 0.270GAH504l                 : ARR( 0.434E-13,  -900., 0.0);
+{ 74972} G2A5075 +PERO2              =  0.400G1A5082 + 0.300GAH504R + 0.300GAH504l                 : ARR( 0.162E-13, -1400., 0.0);
+{ 74973} G2A5075 +PERO3              =  0.460G1A5082 + 0.270GAH504R + 0.270GAH504l                 : ARR( 0.488E-13, -1250., 0.0);
+{ 74974} G2A5075 +PERO5              =  0.460G1A5082 + 0.270GAH504R + 0.270GAH504l                 : ARR( 0.183E-11,   450., 0.0);
+{ 74975} G2A5075 +PERO6              =  0.300G1A5082 + 0.350GAH504R + 0.350GAH504l                 : ARR( 0.168E-13, -1300., 0.0);
+{ 74976} G2A5075 +PERO9              =  0.650G1A5082 + 0.350GAH504l                                : ARR( 0.100E-10,     0., 0.0);
+{ 74977} G2A5076 +GNO                =       G1A506I +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 74978} G2A5076 +GNO                =       GAH5038                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 74979} G2A5076 +GHO2               =       GAH505W                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 74980} G2A5076 +GNO3               =       G1A506I +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 74981} G2A5076 +MEPERO             =  0.480G1A506I + 0.260GAH5041 + 0.260GAH505N                 : ARR( 0.164E-12,  -795., 0.0);
+{ 74982} G2A5076 +PERO1              =  0.600G1A506I + 0.200GAH5041 + 0.200GAH505N                 : ARR( 0.126E-12,  -850., 0.0);
+{ 74983} G2A5076 +PERO2              =  0.560G1A506I + 0.220GAH5041 + 0.220GAH505N                 : ARR( 0.471E-13, -1350., 0.0);
+{ 74984} G2A5076 +PERO3              =  0.600G1A506I + 0.200GAH5041 + 0.200GAH505N                 : ARR( 0.142E-12, -1200., 0.0);
+{ 74985} G2A5076 +PERO5              =  0.600G1A506I + 0.200GAH5041 + 0.200GAH505N                 : ARR( 0.533E-11,   500., 0.0);
+{ 74986} G2A5076 +PERO6              =  0.460G1A506I + 0.270GAH5041 + 0.270GAH505N                 : ARR( 0.488E-13, -1250., 0.0);
+{ 74987} G2A5076 +PERO9              =  0.800G1A506I + 0.200GAH505N                                : ARR( 0.100E-10,     0., 0.0);
+{ 74988} G1A509U                     =       GAH3007 +      G3H2000                                : ARR( 0.200E+15,  2179., 0.0);
+{ 74989} GPH505a                     =       G3H505d +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 74990} GPH505a +GHO                =       GPH505U +      GHO                                    : ARR( 0.984E-11,     0., 0.0);
+{ 74991} GPH505a +GHO                =       GPH504q +      GHO                                    : ARR( 0.504E-11,     0., 0.0);
+{ 74992} GPH505a +GHO                =       G2P507t                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 74993} GPH505a +GHO                =       G2P507u                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 74994} GPH505a+HV               =       G1P506p +      GHO                                    :  0.100E+01*SUN;
+{ 74995} GPH505a+HV               =       G3H2000 +      GPH3007 +      GNO2                    :  0.100E+01*SUN;
+{ 74996} GPH505a+HV               =       G1P508M +      GNO2                                   :  0.100E+01*SUN;
+{ 74997} GPH505a+HV               =       G1P508q +      GHO                                    :  0.100E+01*SUN;
+{ 74998} GPH505a+HV               =       G3H505d +      GNO2                                   :  0.100E+01*SUN;
+{ 74999} G2P507t +GNO                =       G1P506p +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 75000} G2P507t +GNO                =       GPH503C                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 75001} G2P507t +GHO2               =       GPH505a                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 75002} G2P507t +GNO3               =       G1P506p +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 75003} G2P507t +MEPERO             =  0.480G1P506p + 0.260GPH504A + 0.260GPH505U                 : ARR( 0.164E-12,  -795., 0.0);
+{ 75004} G2P507t +PERO1              =  0.600G1P506p + 0.200GPH504A + 0.200GPH505U                 : ARR( 0.126E-12,  -850., 0.0);
+{ 75005} G2P507t +PERO2              =  0.560G1P506p + 0.220GPH504A + 0.220GPH505U                 : ARR( 0.471E-13, -1350., 0.0);
+{ 75006} G2P507t +PERO3              =  0.600G1P506p + 0.200GPH504A + 0.200GPH505U                 : ARR( 0.142E-12, -1200., 0.0);
+{ 75007} G2P507t +PERO5              =  0.600G1P506p + 0.200GPH504A + 0.200GPH505U                 : ARR( 0.533E-11,   500., 0.0);
+{ 75008} G2P507t +PERO6              =  0.460G1P506p + 0.270GPH504A + 0.270GPH505U                 : ARR( 0.488E-13, -1250., 0.0);
+{ 75009} G2P507t +PERO9              =  0.800G1P506p + 0.200GPH505U                                : ARR( 0.100E-10,     0., 0.0);
+{ 75010} G2P507u +GNO                =       G1P508q +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 75011} G2P507u +GNO                =       GPH504p                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 75012} G2P507u +GHO2               =       GPH505a                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 75013} G2P507u +GNO3               =       G1P508q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 75014} G2P507u +MEPERO             =  0.340G1P508q + 0.330GPH502u + 0.330GPH504q                 : ARR( 0.565E-13,  -845., 0.0);
+{ 75015} G2P507u +PERO1              =  0.460G1P508q + 0.270GPH502u + 0.270GPH504q                 : ARR( 0.434E-13,  -900., 0.0);
+{ 75016} G2P507u +PERO2              =  0.400G1P508q + 0.300GPH502u + 0.300GPH504q                 : ARR( 0.162E-13, -1400., 0.0);
+{ 75017} G2P507u +PERO3              =  0.460G1P508q + 0.270GPH502u + 0.270GPH504q                 : ARR( 0.488E-13, -1250., 0.0);
+{ 75018} G2P507u +PERO5              =  0.460G1P508q + 0.270GPH502u + 0.270GPH504q                 : ARR( 0.183E-11,   450., 0.0);
+{ 75019} G2P507u +PERO6              =  0.300G1P508q + 0.350GPH502u + 0.350GPH504q                 : ARR( 0.168E-13, -1300., 0.0);
+{ 75020} G2P507u +PERO9              =  0.650G1P508q + 0.350GPH504q                                : ARR( 0.100E-10,     0., 0.0);
+{ 75021} GAH505X +GHO                =       GAH505U +      GHO                                    : ARR( 0.661E-10,     0., 0.0);
+{ 75022} GAH505X +GHO                =       GAH505Z +      GHO                                    : ARR( 0.282E-10,     0., 0.0);
+{ 75023} GAH505X +GHO                =       GAH505f +      GHO                                    : ARR( 0.110E-10,     0., 0.0);
+{ 75024} GAH505X+HV               =       G1A509W +      GHO                                    :  0.100E+01*SUN;
+{ 75025} GAH505X+HV               =       G1A509U +      GHO                                    :  0.100E+01*SUN;
+{ 75026} GAH505X+HV               =       G3A400L +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 75027} GAH505X+HV               =       G1A507L +      GHO                                    :  0.100E+01*SUN;
+{ 75028} G1A509W                     =       GCO     +      GHH400b +      GHO                     : ARR( 0.200E+15,  4342., 0.0);
+{ 75029} GAH505Y +GHO                =       GAH502o +      GHO2                                   : ARR( 0.212E-11,     0., 0.0);
+{ 75030} GAH505Y +GHO                =       GAH504f +      GHO2                                   : ARR( 0.106E-10,     0., 0.0);
+{ 75031} GAH505Y +GHO                =       GAN502g +      GHO                                    : ARR( 0.165E-10,     0., 0.0);
+{ 75032} GAH505Y +GHO                =       G2A5077                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 75033} GAH505Y+HV               =       G1A507m +      GNO2                                   :  0.100E+01*SUN;
+{ 75034} GAH505Y+HV               =       G1A504D +      GHO                                    :  0.100E+01*SUN;
+{ 75035} G2A5077 +GNO                =       G1A504D +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 75036} G2A5077 +GNO                =       GAN501K                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 75037} G2A5077 +GHO2               =       GAH505Y                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 75038} G2A5077 +GNO3               =       G1A504D +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 75039} G2A5077 +MEPERO             =  0.480G1A504D + 0.260GAN501S + 0.260GAN502g                 : ARR( 0.164E-12,  -795., 0.0);
+{ 75040} G2A5077 +PERO1              =  0.600G1A504D + 0.200GAN501S + 0.200GAN502g                 : ARR( 0.126E-12,  -850., 0.0);
+{ 75041} G2A5077 +PERO2              =  0.560G1A504D + 0.220GAN501S + 0.220GAN502g                 : ARR( 0.471E-13, -1350., 0.0);
+{ 75042} G2A5077 +PERO3              =  0.600G1A504D + 0.200GAN501S + 0.200GAN502g                 : ARR( 0.142E-12, -1200., 0.0);
+{ 75043} G2A5077 +PERO5              =  0.600G1A504D + 0.200GAN501S + 0.200GAN502g                 : ARR( 0.533E-11,   500., 0.0);
+{ 75044} G2A5077 +PERO6              =  0.460G1A504D + 0.270GAN501S + 0.270GAN502g                 : ARR( 0.488E-13, -1250., 0.0);
+{ 75045} G2A5077 +PERO9              =  0.800G1A504D + 0.200GAN502g                                : ARR( 0.100E-10,     0., 0.0);
+{ 75046} GPH505b                     =       G3H505S +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 75047} GPH505b +GHO                =       GPN502i +      GHO                                    : ARR( 0.163E-10,     0., 0.0);
+{ 75048} GPH505b +GHO                =       GPH504j +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 75049} GPH505b +GHO                =       GPH502w +      GHO2                                   : ARR( 0.208E-11,     0., 0.0);
+{ 75050} GPH505b +GHO                =       G2P507v                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 75051} GPH505b+HV               =       G1P504P +      GHO                                    :  0.100E+01*SUN;
+{ 75052} GPH505b+HV               =       G1P508J +      GNO2                                   :  0.100E+01*SUN;
+{ 75053} GPH505b+HV               =       G3H505S +      GNO2                                   :  0.100E+01*SUN;
+{ 75054} G2P507v +GNO                =       G1P504P +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 75055} G2P507v +GNO                =       GPN501O                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 75056} G2P507v +GHO2               =       GPH505b                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 75057} G2P507v +GNO3               =       G1P504P +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 75058} G2P507v +MEPERO             =  0.480G1P504P + 0.260GPN501X + 0.260GPN502i                 : ARR( 0.164E-12,  -795., 0.0);
+{ 75059} G2P507v +PERO1              =  0.600G1P504P + 0.200GPN501X + 0.200GPN502i                 : ARR( 0.126E-12,  -850., 0.0);
+{ 75060} G2P507v +PERO2              =  0.560G1P504P + 0.220GPN501X + 0.220GPN502i                 : ARR( 0.471E-13, -1350., 0.0);
+{ 75061} G2P507v +PERO3              =  0.600G1P504P + 0.200GPN501X + 0.200GPN502i                 : ARR( 0.142E-12, -1200., 0.0);
+{ 75062} G2P507v +PERO5              =  0.600G1P504P + 0.200GPN501X + 0.200GPN502i                 : ARR( 0.533E-11,   500., 0.0);
+{ 75063} G2P507v +PERO6              =  0.460G1P504P + 0.270GPN501X + 0.270GPN502i                 : ARR( 0.488E-13, -1250., 0.0);
+{ 75064} G2P507v +PERO9              =  0.800G1P504P + 0.200GPN502i                                : ARR( 0.100E-10,     0., 0.0);
+{ 75065} GGH505T +GHO                =       GGH505M +      GHO                                    : ARR( 0.981E-11,     0., 0.0);
+{ 75066} GGH505T +GHO                =       GGH504q +      GHO                                    : ARR( 0.153E-10,     0., 0.0);
+{ 75067} GGH505T +GHO                =       G2G5063                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 75068} GGH505T +GHO                =       G2G5064                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 75069} GGH505T +GHO                =       G3H505U                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 75070} GGH505T+HV               =       G1G506R +      GHO                                    :  0.100E+01*SUN;
+{ 75071} GGH505T+HV               =       G3H2000 +      G3G3003                                :  0.100E+01*SUN;
+{ 75072} GGH505T+HV               =       G1G507X +      GHO                                    :  0.100E+01*SUN;
+{ 75073} GGH505T+HV               =       GHD400N +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 75074} G2G5063 +GNO                =       G1G506R +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 75075} G2G5063 +GNO                =       GGH503c                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 75076} G2G5063 +GHO2               =       GGH505T                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 75077} G2G5063 +GNO3               =       G1G506R +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 75078} G2G5063 +MEPERO             =  0.480G1G506R + 0.260GGH504A + 0.260GGH505M                 : ARR( 0.164E-12,  -795., 0.0);
+{ 75079} G2G5063 +PERO1              =  0.600G1G506R + 0.200GGH504A + 0.200GGH505M                 : ARR( 0.126E-12,  -850., 0.0);
+{ 75080} G2G5063 +PERO2              =  0.560G1G506R + 0.220GGH504A + 0.220GGH505M                 : ARR( 0.471E-13, -1350., 0.0);
+{ 75081} G2G5063 +PERO3              =  0.600G1G506R + 0.200GGH504A + 0.200GGH505M                 : ARR( 0.142E-12, -1200., 0.0);
+{ 75082} G2G5063 +PERO5              =  0.600G1G506R + 0.200GGH504A + 0.200GGH505M                 : ARR( 0.533E-11,   500., 0.0);
+{ 75083} G2G5063 +PERO6              =  0.460G1G506R + 0.270GGH504A + 0.270GGH505M                 : ARR( 0.488E-13, -1250., 0.0);
+{ 75084} G2G5063 +PERO9              =  0.800G1G506R + 0.200GGH505M                                : ARR( 0.100E-10,     0., 0.0);
+{ 75085} G2G5064 +GNO                =       G1G507X +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 75086} G2G5064 +GNO                =       GGH504o                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 75087} G2G5064 +GHO2               =       GGH505T                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 75088} G2G5064 +GNO3               =       G1G507X +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 75089} G2G5064 +MEPERO             =  0.340G1G507X + 0.330GGH504L + 0.330GGH504q                 : ARR( 0.565E-13,  -845., 0.0);
+{ 75090} G2G5064 +PERO1              =  0.460G1G507X + 0.270GGH504L + 0.270GGH504q                 : ARR( 0.434E-13,  -900., 0.0);
+{ 75091} G2G5064 +PERO2              =  0.400G1G507X + 0.300GGH504L + 0.300GGH504q                 : ARR( 0.162E-13, -1400., 0.0);
+{ 75092} G2G5064 +PERO3              =  0.460G1G507X + 0.270GGH504L + 0.270GGH504q                 : ARR( 0.488E-13, -1250., 0.0);
+{ 75093} G2G5064 +PERO5              =  0.460G1G507X + 0.270GGH504L + 0.270GGH504q                 : ARR( 0.183E-11,   450., 0.0);
+{ 75094} G2G5064 +PERO6              =  0.300G1G507X + 0.350GGH504L + 0.350GGH504q                 : ARR( 0.168E-13, -1300., 0.0);
+{ 75095} G2G5064 +PERO9              =  0.650G1G507X + 0.350GGH504q                                : ARR( 0.100E-10,     0., 0.0);
+{ 75096} GAH505Z +GHO                =       GAH504t +      GHO                                    : ARR( 0.115E-10,     0., 0.0);
+{ 75097} GAH505Z +GHO                =       GAH505P +      GHO                                    : ARR( 0.999E-11,     0., 0.0);
+{ 75098} GAH505Z +GHO                =       G2A5078                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 75099} GAH505Z +GHO                =       G2A5079                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 75100} GAH505Z+HV               =       G1A508T +      GHO                                    :  0.100E+01*SUN;
+{ 75101} GAH505Z+HV               =       G3A3003 +      G3H2000                                :  0.100E+01*SUN;
+{ 75102} GAH505Z+HV               =       G1A506l +      GHO                                    :  0.100E+01*SUN;
+{ 75103} G2A5078 +GNO                =       G1A508T +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 75104} G2A5078 +GNO                =       GAH504s                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 75105} G2A5078 +GHO2               =       GAH505Z                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 75106} G2A5078 +GNO3               =       G1A508T +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 75107} G2A5078 +MEPERO             =  0.340G1A508T + 0.330GAH504T + 0.330GAH504t                 : ARR( 0.565E-13,  -845., 0.0);
+{ 75108} G2A5078 +PERO1              =  0.460G1A508T + 0.270GAH504T + 0.270GAH504t                 : ARR( 0.434E-13,  -900., 0.0);
+{ 75109} G2A5078 +PERO2              =  0.400G1A508T + 0.300GAH504T + 0.300GAH504t                 : ARR( 0.162E-13, -1400., 0.0);
+{ 75110} G2A5078 +PERO3              =  0.460G1A508T + 0.270GAH504T + 0.270GAH504t                 : ARR( 0.488E-13, -1250., 0.0);
+{ 75111} G2A5078 +PERO5              =  0.460G1A508T + 0.270GAH504T + 0.270GAH504t                 : ARR( 0.183E-11,   450., 0.0);
+{ 75112} G2A5078 +PERO6              =  0.300G1A508T + 0.350GAH504T + 0.350GAH504t                 : ARR( 0.168E-13, -1300., 0.0);
+{ 75113} G2A5078 +PERO9              =  0.650G1A508T + 0.350GAH504t                                : ARR( 0.100E-10,     0., 0.0);
+{ 75114} G2A5079 +GNO                =       G1A506l +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 75115} G2A5079 +GNO                =       GAH503X                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 75116} G2A5079 +GHO2               =       GAH505Z                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 75117} G2A5079 +GNO3               =       G1A506l +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 75118} G2A5079 +MEPERO             =  0.480G1A506l + 0.260GAH504L + 0.260GAH505P                 : ARR( 0.164E-12,  -795., 0.0);
+{ 75119} G2A5079 +PERO1              =  0.600G1A506l + 0.200GAH504L + 0.200GAH505P                 : ARR( 0.126E-12,  -850., 0.0);
+{ 75120} G2A5079 +PERO2              =  0.560G1A506l + 0.220GAH504L + 0.220GAH505P                 : ARR( 0.471E-13, -1350., 0.0);
+{ 75121} G2A5079 +PERO3              =  0.600G1A506l + 0.200GAH504L + 0.200GAH505P                 : ARR( 0.142E-12, -1200., 0.0);
+{ 75122} G2A5079 +PERO5              =  0.600G1A506l + 0.200GAH504L + 0.200GAH505P                 : ARR( 0.533E-11,   500., 0.0);
+{ 75123} G2A5079 +PERO6              =  0.460G1A506l + 0.270GAH504L + 0.270GAH505P                 : ARR( 0.488E-13, -1250., 0.0);
+{ 75124} G2A5079 +PERO9              =  0.800G1A506l + 0.200GAH505P                                : ARR( 0.100E-10,     0., 0.0);
+{ 75125} GPH505c                     =       G3H505U +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 75126} GPH505c +GHO                =       GPH505W +      GHO                                    : ARR( 0.981E-11,     0., 0.0);
+{ 75127} GPH505c +GHO                =       GPH5055 +      GHO                                    : ARR( 0.153E-10,     0., 0.0);
+{ 75128} GPH505c +GHO                =       G2P507w                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 75129} GPH505c +GHO                =       G2P507x                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 75130} GPH505c+HV               =       G1P507L +      GHO                                    :  0.100E+01*SUN;
+{ 75131} GPH505c+HV               =       G3H2000 +      G3P3003                                :  0.100E+01*SUN;
+{ 75132} GPH505c+HV               =       G1P509R +      GHO                                    :  0.100E+01*SUN;
+{ 75133} GPH505c+HV               =       G3H505U +      GNO2                                   :  0.100E+01*SUN;
+{ 75134} G2P507w +GNO                =       G1P507L +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 75135} G2P507w +GNO                =       GPH503c                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 75136} G2P507w +GHO2               =       GPH505c                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 75137} G2P507w +GNO3               =       G1P507L +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 75138} G2P507w +MEPERO             =  0.480G1P507L + 0.260GPH504N + 0.260GPH505W                 : ARR( 0.164E-12,  -795., 0.0);
+{ 75139} G2P507w +PERO1              =  0.600G1P507L + 0.200GPH504N + 0.200GPH505W                 : ARR( 0.126E-12,  -850., 0.0);
+{ 75140} G2P507w +PERO2              =  0.560G1P507L + 0.220GPH504N + 0.220GPH505W                 : ARR( 0.471E-13, -1350., 0.0);
+{ 75141} G2P507w +PERO3              =  0.600G1P507L + 0.200GPH504N + 0.200GPH505W                 : ARR( 0.142E-12, -1200., 0.0);
+{ 75142} G2P507w +PERO5              =  0.600G1P507L + 0.200GPH504N + 0.200GPH505W                 : ARR( 0.533E-11,   500., 0.0);
+{ 75143} G2P507w +PERO6              =  0.460G1P507L + 0.270GPH504N + 0.270GPH505W                 : ARR( 0.488E-13, -1250., 0.0);
+{ 75144} G2P507w +PERO9              =  0.800G1P507L + 0.200GPH505W                                : ARR( 0.100E-10,     0., 0.0);
+{ 75145} G2P507x +GNO                =       G1P509R +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 75146} G2P507x +GNO                =       GPH5054                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 75147} G2P507x +GHO2               =       GPH505c                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 75148} G2P507x +GNO3               =       G1P509R +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 75149} G2P507x +MEPERO             =  0.340G1P509R + 0.330GPH504U + 0.330GPH5055                 : ARR( 0.565E-13,  -845., 0.0);
+{ 75150} G2P507x +PERO1              =  0.460G1P509R + 0.270GPH504U + 0.270GPH5055                 : ARR( 0.434E-13,  -900., 0.0);
+{ 75151} G2P507x +PERO2              =  0.400G1P509R + 0.300GPH504U + 0.300GPH5055                 : ARR( 0.162E-13, -1400., 0.0);
+{ 75152} G2P507x +PERO3              =  0.460G1P509R + 0.270GPH504U + 0.270GPH5055                 : ARR( 0.488E-13, -1250., 0.0);
+{ 75153} G2P507x +PERO5              =  0.460G1P509R + 0.270GPH504U + 0.270GPH5055                 : ARR( 0.183E-11,   450., 0.0);
+{ 75154} G2P507x +PERO6              =  0.300G1P509R + 0.350GPH504U + 0.350GPH5055                 : ARR( 0.168E-13, -1300., 0.0);
+{ 75155} G2P507x +PERO9              =  0.650G1P509R + 0.350GPH5055                                : ARR( 0.100E-10,     0., 0.0);
+{ 75156} GGH505U +GHO                =       GGH505f +      GHO                                    : ARR( 0.174E-10,     0., 0.0);
+{ 75157} GGH505U +GHO                =       GGH504a +      GHO                                    : ARR( 0.142E-09,     0., 0.0);
+{ 75158} GGH505U +GHO                =       GGH505g +      GHO                                    : ARR( 0.272E-10,     0., 0.0);
+{ 75159} GGH505U+HV               =       G1G508S +      GHO                                    :  0.100E+01*SUN;
+{ 75160} GGH505U+HV               =       G1G507G +      GHO                                    :  0.100E+01*SUN;
+{ 75161} GGH505U+HV               =       G1G508Y +      GHO                                    :  0.100E+01*SUN;
+{ 75162} GGH505U+HV               =       GAH400x +      GCO2                                   :  0.100E+01*SUN;
+{ 75163} G1G508Y                     =       GHH3005 +      GCO     +      GHO2    +      GCO      : ARR( 0.200E+15,  3266., 0.0);
+{ 75164} GAH505a +GHO                =       GAH505h +      GHO                                    : ARR( 0.268E-10,     0., 0.0);
+{ 75165} GAH505a +GHO                =       GAH505U +      GHO                                    : ARR( 0.139E-09,     0., 0.0);
+{ 75166} GAH505a +GHO                =       GAH505g +      GHO                                    : ARR( 0.171E-10,     0., 0.0);
+{ 75167} GAH505a+HV               =       GHH400l +      GCO2                                   :  0.100E+01*SUN;
+{ 75168} GAH505a+HV               =       G1A509X +      GHO                                    :  0.100E+01*SUN;
+{ 75169} GAH505a+HV               =       G1A507n +      GHO                                    :  0.100E+01*SUN;
+{ 75170} GAH505a+HV               =       G1A509Q +      GHO                                    :  0.100E+01*SUN;
+{ 75171} G1A509X                     =       GCO     +      GHH3005 +      GHO     +      GCO      : ARR( 0.200E+15,  3266., 0.0);
+{ 75172} GPH505d                     =       G3H505e +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 75173} GPH505d +GHO                =       GPH505f +      GHO                                    : ARR( 0.171E-10,     0., 0.0);
+{ 75174} GPH505d +GHO                =       GPH504i +      GHO                                    : ARR( 0.139E-09,     0., 0.0);
+{ 75175} GPH505d +GHO                =       GPH505g +      GHO                                    : ARR( 0.267E-10,     0., 0.0);
+{ 75176} GPH505d+HV               =       G1P50AX +      GHO                                    :  0.100E+01*SUN;
+{ 75177} GPH505d+HV               =       G1P508K +      GHO                                    :  0.100E+01*SUN;
+{ 75178} GPH505d+HV               =       G1P50Ac +      GHO                                    :  0.100E+01*SUN;
+{ 75179} GPH505d+HV               =       G3H400t +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 75180} G3H505e +GHO2               =  0.800GGH505U + 0.200GAH505a + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 75181} G3H505e +GNO                =       G3H400t +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 75182} G3H505e +GNO2               =       GPH505d                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 75183} G3H505e +GNO3               =       G3H400t +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 75184} G3H505e +MEPERO             =  0.685G3H400t + 0.315GAH505a + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75185} G3H505e +PERO1              =  0.800G3H400t + 0.200GAH505a + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75186} G3H505e +PERO2              =  0.750G3H400t + 0.250GAH505a + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75187} G3H505e +PERO3              =  0.800G3H400t + 0.200GAH505a + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75188} G3H505e +PERO5              =  0.650G3H400t + 0.350GAH505a + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75189} G3H505e +PERO6              =  0.650G3H400t + 0.350GAH505a + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75190} G3H505e +PERO9              =       G3H400t +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 75191} G1P50Ac                     =       GHH3005 +      GCO     +      GNO2    +      GCO      : ARR( 0.200E+15,  3266., 0.0);
+{ 75192} GAH505b +GHO                =       GAH504h +      GHO                                    : ARR( 0.143E-09,     0., 0.0);
+{ 75193} GAH505b +GHO                =       GAH505E +      GHO                                    : ARR( 0.176E-10,     0., 0.0);
+{ 75194} GAH505b+HV               =       GHH400d +      GCO2                                   :  0.100E+01*SUN;
+{ 75195} GAH505b+HV               =       G1A507o +      GHO                                    :  0.100E+01*SUN;
+{ 75196} GAH505b+HV               =       G1A506R +      GHO                                    :  0.100E+01*SUN;
+{ 75197} GAH505c +GHO                =       GAH504s +      GHO                                    : ARR( 0.518E-11,     0., 0.0);
+{ 75198} GAH505c +GHO                =       GAH505A +      GHO                                    : ARR( 0.101E-10,     0., 0.0);
+{ 75199} GAH505c +GHO                =       G2A507A                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 75200} GAH505c +GHO                =       G2A507B                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 75201} GAH505c+HV               =       G1A509W +      GNO2                                   :  0.100E+01*SUN;
+{ 75202} GAH505c+HV               =       G1A5083 +      GHO                                    :  0.100E+01*SUN;
+{ 75203} GAH505c+HV               =       G3A400J +      GCH2O   +      GHO                     :  0.100E+01*SUN;
+{ 75204} GAH505c+HV               =       G1A506w +      GHO                                    :  0.100E+01*SUN;
+{ 75205} G2A507A +GNO                =       G1A5083 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 75206} G2A507A +GNO                =       GAH504k                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 75207} G2A507A +GHO2               =       GAH505c                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 75208} G2A507A +GNO3               =       G1A5083 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 75209} G2A507A +MEPERO             =  0.340G1A5083 + 0.330GAH504f + 0.330GAH504s                 : ARR( 0.565E-13,  -845., 0.0);
+{ 75210} G2A507A +PERO1              =  0.460G1A5083 + 0.270GAH504f + 0.270GAH504s                 : ARR( 0.434E-13,  -900., 0.0);
+{ 75211} G2A507A +PERO2              =  0.400G1A5083 + 0.300GAH504f + 0.300GAH504s                 : ARR( 0.162E-13, -1400., 0.0);
+{ 75212} G2A507A +PERO3              =  0.460G1A5083 + 0.270GAH504f + 0.270GAH504s                 : ARR( 0.488E-13, -1250., 0.0);
+{ 75213} G2A507A +PERO5              =  0.460G1A5083 + 0.270GAH504f + 0.270GAH504s                 : ARR( 0.183E-11,   450., 0.0);
+{ 75214} G2A507A +PERO6              =  0.300G1A5083 + 0.350GAH504f + 0.350GAH504s                 : ARR( 0.168E-13, -1300., 0.0);
+{ 75215} G2A507A +PERO9              =  0.650G1A5083 + 0.350GAH504s                                : ARR( 0.100E-10,     0., 0.0);
+{ 75216} G2A507B +GNO                =       G1A506w +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 75217} G2A507B +GNO                =       GAH503a                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 75218} G2A507B +GHO2               =       GAH505c                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 75219} G2A507B +GNO3               =       G1A506w +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 75220} G2A507B +MEPERO             =  0.480G1A506w + 0.260GAH503D + 0.260GAH505A                 : ARR( 0.164E-12,  -795., 0.0);
+{ 75221} G2A507B +PERO1              =  0.600G1A506w + 0.200GAH503D + 0.200GAH505A                 : ARR( 0.126E-12,  -850., 0.0);
+{ 75222} G2A507B +PERO2              =  0.560G1A506w + 0.220GAH503D + 0.220GAH505A                 : ARR( 0.471E-13, -1350., 0.0);
+{ 75223} G2A507B +PERO3              =  0.600G1A506w + 0.200GAH503D + 0.200GAH505A                 : ARR( 0.142E-12, -1200., 0.0);
+{ 75224} G2A507B +PERO5              =  0.600G1A506w + 0.200GAH503D + 0.200GAH505A                 : ARR( 0.533E-11,   500., 0.0);
+{ 75225} G2A507B +PERO6              =  0.460G1A506w + 0.270GAH503D + 0.270GAH505A                 : ARR( 0.488E-13, -1250., 0.0);
+{ 75226} G2A507B +PERO9              =  0.800G1A506w + 0.200GAH505A                                : ARR( 0.100E-10,     0., 0.0);
+{ 75227} GAA500q +GHO                =       GAN400Y +      GNO2    +      GCO2                    : ARR( 0.107E-11,     0., 0.0);
+{ 75228} GAA500q+HV               =       G1A507p +      GNO2                                   :  0.200E+01*SUN;
+{ 75229} GAA500q+HV               =       G1A509Y +      GNO2                                   :  0.100E+01*SUN;
+{ 75230} G1A509Y                     =       GAD2000 +      GAN3006 +      GNO2                    : ARR( 0.400E+15,  5846., 0.0);
+{ 75231} GAA500r +GHO                =       GAA500s +      GHO                                    : ARR( 0.373E-11,     0., 0.0);
+{ 75232} GAA500r +GHO                =       G2A505o                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 75233} GAA500r +GHO                =       GAH400l +      GNO2    +      GCO2                    : ARR( 0.522E-12,     0., 0.0);
+{ 75234} GAA500r +GHO                =       GAN400Y +      GHO     +      GCO2                    : ARR( 0.522E-12,     0., 0.0);
+{ 75235} GAA500r+HV               =       G1A509Z +      GNO2                                   :  0.100E+01*SUN;
+{ 75236} GAA500r+HV               =       G1A509a +      GNO2                                   :  0.100E+01*SUN;
+{ 75237} GAA500r+HV               =       G1A507p +      GHO                                    :  0.100E+01*SUN;
+{ 75238} G1A509Z                     =       GAH400l +      GCO     +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 75239} G1A509a                     =       GAN3006 +      GAD2000 +      GHO                     : ARR( 0.200E+15,  4308., 0.0);
+{ 75240} GAA500s +GHO                =       G3A400A +      GCO2                                   : ARR( 0.532E-12,     0., 0.0);
+{ 75241} GAA500s +GHO                =       GAN400Z +      GNO2    +      GCO2                    : ARR( 0.532E-12,     0., 0.0);
+{ 75242} GAA500s+HV               =       GAN400Y +      GCO2                                   :  0.100E+01*SUN;
+{ 75243} GAA500s+HV               =       G1A508d +      GNO2                                   :  0.100E+01*SUN;
+{ 75244} GAA500s+HV               =       G1A507q +      GNO2                                   :  0.100E+01*SUN;
+{ 75245} GAA500t +GHO                =       GAA500u +      GHO                                    : ARR( 0.375E-11,     0., 0.0);
+{ 75246} GAA500t +GHO                =       G2A505p                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 75247} GAA500t +GHO                =       G3A400G +      GCO2                                   : ARR( 0.524E-12,     0., 0.0);
+{ 75248} GAA500t +GHO                =       GAN400Z +      GHO     +      GCO2                    : ARR( 0.524E-12,     0., 0.0);
+{ 75249} GAA500t+HV               =       GAH400l +      GCO2                                   :  0.100E+01*SUN;
+{ 75250} GAA500t+HV               =       G1A509b +      GNO2                                   :  0.100E+01*SUN;
+{ 75251} GAA500t+HV               =       G1A507q +      GHO                                    :  0.100E+01*SUN;
+{ 75252} G1A509b                     =       GAH3007 +      GCO     +      GHO     +      GCO      : ARR( 0.200E+15,  2436., 0.0);
+{ 75253} GAA500u +GHO                =       G3A400C +      GCO2                                   : ARR( 0.108E-11,     0., 0.0);
+{ 75254} GAA500u+HV               =       GAN400Z +      GCO2                                   :  0.200E+01*SUN;
+{ 75255} GAA500u+HV               =       G1A509H +      GNO2                                   :  0.100E+01*SUN;
+{ 75256} GPA501T                     =       G3A501I +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 75257} GPA501T +GHO                =       GPN400Z +      GNO2    +      GCO2                    : ARR( 0.550E-12,     0., 0.0);
+{ 75258} GPA501T+HV               =       G1P508Q +      GNO2                                   :  0.100E+01*SUN;
+{ 75259} GPA501T+HV               =       G1P509Y +      GNO2                                   :  0.100E+01*SUN;
+{ 75260} GPA501T+HV               =       G1P508O +      GNO2                                   :  0.100E+01*SUN;
+{ 75261} GPA501T+HV               =       G3A501I +      GNO2                                   :  0.100E+01*SUN;
+{ 75262} GPA501U                     =       G3A501K +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 75263} GPA501U +GHO                =       GPA501W +      GHO                                    : ARR( 0.504E-11,     0., 0.0);
+{ 75264} GPA501U +GHO                =       G2P506C                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 75265} GPA501U +GHO                =       GPH400m +      GNO2    +      GCO2                    : ARR( 0.522E-12,     0., 0.0);
+{ 75266} GPA501U+HV               =       G1P50Ad +      GNO2                                   :  0.100E+01*SUN;
+{ 75267} GPA501U+HV               =       G1P50Ae +      GNO2                                   :  0.100E+01*SUN;
+{ 75268} GPA501U+HV               =       G1P508O +      GHO                                    :  0.100E+01*SUN;
+{ 75269} GPA501U+HV               =       G3A501K +      GNO2                                   :  0.100E+01*SUN;
+{ 75270} G1P50Ad                     =       GCO     +      GPH400m +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 75271} G1P50Ae                     =       GAN3006 +      GPD2000 +      GHO                     : ARR( 0.200E+15,  4308., 0.0);
+{ 75272} GPA501W                     =       G3A501r +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 75273} GPA501W +GHO                =       GPN400a +      GNO2    +      GCO2                    : ARR( 0.545E-12,     0., 0.0);
+{ 75274} GPA501W+HV               =       G1P508S +      GNO2                                   :  0.100E+01*SUN;
+{ 75275} GPA501W+HV               =       G1P509a +      GNO2                                   :  0.100E+01*SUN;
+{ 75276} GPA501W+HV               =       G3A400A +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 75277} G3A501r +GHO2               =  0.800GAG501o + 0.200GAA500s + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 75278} G3A501r +GNO                =       G3A400A +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 75279} G3A501r +GNO2               =       GPA501W                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 75280} G3A501r +GNO3               =       G3A400A +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 75281} G3A501r +MEPERO             =  0.685G3A400A + 0.315GAA500s + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75282} G3A501r +PERO1              =  0.800G3A400A + 0.200GAA500s + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75283} G3A501r +PERO2              =  0.750G3A400A + 0.250GAA500s + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75284} G3A501r +PERO3              =  0.800G3A400A + 0.200GAA500s + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75285} G3A501r +PERO5              =  0.650G3A400A + 0.350GAA500s + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75286} G3A501r +PERO6              =  0.650G3A400A + 0.350GAA500s + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75287} G3A501r +PERO9              =       G3A400A +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 75288} GPA501X                     =       G3A501J +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 75289} GPA501X +GHO                =       G3P400B +      GCO2                                   : ARR( 0.549E-12,     0., 0.0);
+{ 75290} GPA501X+HV               =       GPN400Z +      GCO2                                   :  0.100E+01*SUN;
+{ 75291} GPA501X+HV               =       G1P509j +      GNO2                                   :  0.100E+01*SUN;
+{ 75292} GPA501X+HV               =       G1P508P +      GNO2                                   :  0.100E+01*SUN;
+{ 75293} GPA501X+HV               =       G3A501J +      GNO2                                   :  0.100E+01*SUN;
+{ 75294} GPA501Y                     =       G3A501L +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 75295} GPA501Y +GHO                =       GPA501Z +      GHO                                    : ARR( 0.507E-11,     0., 0.0);
+{ 75296} GPA501Y +GHO                =       G2P506D                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 75297} GPA501Y +GHO                =       G3P400G +      GCO2                                   : ARR( 0.524E-12,     0., 0.0);
+{ 75298} GPA501Y+HV               =       GPH400m +      GCO2                                   :  0.100E+01*SUN;
+{ 75299} GPA501Y+HV               =       G1P50Af +      GNO2                                   :  0.100E+01*SUN;
+{ 75300} GPA501Y+HV               =       G1P508P +      GHO                                    :  0.100E+01*SUN;
+{ 75301} GPA501Y+HV               =       G3A501L +      GNO2                                   :  0.100E+01*SUN;
+{ 75302} G1P50Af                     =       GCO     +      GPH3007 +      GHO     +      GCO      : ARR( 0.200E+15,  2436., 0.0);
+{ 75303} GPA501Z                     =       G3A501s +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 75304} GPA501Z +GHO                =       GPA501k +      GNO2                                   : ARR( 0.438E-13,     0., 0.0);
+{ 75305} GPA501Z +GHO                =       G3P400C +      GCO2                                   : ARR( 0.520E-12,     0., 0.0);
+{ 75306} GPA501Z+HV               =       GPN400a +      GCO2                                   :  0.100E+01*SUN;
+{ 75307} GPA501Z+HV               =       G1P50AO +      GNO2                                   :  0.100E+01*SUN;
+{ 75308} GPA501Z+HV               =       G3A400C +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 75309} G3A501s +GHO2               =  0.800GAG501z + 0.200GAA500u + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 75310} G3A501s +GNO                =       G3A400C +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 75311} G3A501s +GNO2               =       GPA501Z                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 75312} G3A501s +GNO3               =       G3A400C +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 75313} G3A501s +MEPERO             =  0.685G3A400C + 0.315GAA500u + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75314} G3A501s +PERO1              =  0.800G3A400C + 0.200GAA500u + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75315} G3A501s +PERO2              =  0.750G3A400C + 0.250GAA500u + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75316} G3A501s +PERO3              =  0.800G3A400C + 0.200GAA500u + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75317} G3A501s +PERO5              =  0.650G3A400C + 0.350GAA500u + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75318} G3A501s +PERO6              =  0.650G3A400C + 0.350GAA500u + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75319} G3A501s +PERO9              =       G3A400C +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 75320} GPA501a                     =       G3A501X +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 75321} GPA501a +GHO                =       GPA501X +      GHO                                    : ARR( 0.374E-11,     0., 0.0);
+{ 75322} GPA501a +GHO                =       G2P506E                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 75323} GPA501a +GHO                =       GPN400Z +      GHO     +      GCO2                    : ARR( 0.523E-12,     0., 0.0);
+{ 75324} GPA501a+HV               =       G1P508Q +      GHO                                    :  0.100E+01*SUN;
+{ 75325} GPA501a+HV               =       G1P50Ag +      GNO2                                   :  0.100E+01*SUN;
+{ 75326} GPA501a+HV               =       G1P50Ah +      GNO2                                   :  0.100E+01*SUN;
+{ 75327} GPA501a+HV               =       G3A501X +      GNO2                                   :  0.100E+01*SUN;
+{ 75328} G1P50Ag                     =       GAD2000 +      GPN3006 +      GHO                     : ARR( 0.200E+15,  4308., 0.0);
+{ 75329} G1P50Ah                     =       GAH400l +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 75330} GPA501b                     =       G3A501t +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 75331} GPA501b +GHO                =       GPA501Z +      GHO                                    : ARR( 0.375E-11,     0., 0.0);
+{ 75332} GPA501b +GHO                =       G2P506F                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 75333} GPA501b +GHO                =       GPN400a +      GHO     +      GCO2                    : ARR( 0.525E-12,     0., 0.0);
+{ 75334} GPA501b+HV               =       G1P508S +      GHO                                    :  0.100E+01*SUN;
+{ 75335} GPA501b+HV               =       G1P50Ai +      GNO2                                   :  0.100E+01*SUN;
+{ 75336} GPA501b+HV               =       G3A400G +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 75337} G3A501t +GHO2               =  0.800GAG5024 + 0.200GAA500t + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 75338} G3A501t +GNO                =       G3A400G +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 75339} G3A501t +GNO2               =       GPA501b                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 75340} G3A501t +GNO3               =       G3A400G +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 75341} G3A501t +MEPERO             =  0.685G3A400G + 0.315GAA500t + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75342} G3A501t +PERO1              =  0.800G3A400G + 0.200GAA500t + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75343} G3A501t +PERO2              =  0.750G3A400G + 0.250GAA500t + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75344} G3A501t +PERO3              =  0.800G3A400G + 0.200GAA500t + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75345} G3A501t +PERO5              =  0.650G3A400G + 0.350GAA500t + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75346} G3A501t +PERO6              =  0.650G3A400G + 0.350GAA500t + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75347} G3A501t +PERO9              =       G3A400G +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 75348} G1P50Ai                     =       GAH3007 +      GCO     +      GNO2    +      GCO      : ARR( 0.200E+15,  2436., 0.0);
+{ 75349} GAG501T +GHO                =       G3A501I                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 75350} GAG501T +GHO                =       GGN400X +      GNO2    +      GCO2                    : ARR( 0.524E-12,     0., 0.0);
+{ 75351} GAG501T+HV               =       G1A509c +      GNO2                                   :  0.100E+01*SUN;
+{ 75352} GAG501T+HV               =       G1A509d +      GNO2                                   :  0.100E+01*SUN;
+{ 75353} GAG501T+HV               =       G1A509e +      GNO2                                   :  0.100E+01*SUN;
+{ 75354} GAG501T+HV               =       GAN400Y +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 75355} G1A509c                     =       GCO     +      GGN400X +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 75356} G1A509d                     =       GAD2000 +      GGN3005 +      GNO2                    : ARR( 0.200E+15,  5846., 0.0);
+{ 75357} G1A509d                     =       GAN3006 +      GGD2000 +      GNO2                    : ARR( 0.200E+15,  5846., 0.0);
+{ 75358} G1A509e                     =       GAN400Y +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 75359} GAG501U +GHO                =       G3A501J                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 75360} GAG501U +GHO                =       G3G400D +      GCO2                                   : ARR( 0.524E-12,     0., 0.0);
+{ 75361} GAG501U+HV               =       GGN400X +      GCO2                                   :  0.100E+01*SUN;
+{ 75362} GAG501U+HV               =       G1A509f +      GNO2                                   :  0.100E+01*SUN;
+{ 75363} GAG501U+HV               =       G1A509g +      GNO2                                   :  0.100E+01*SUN;
+{ 75364} GAG501U+HV               =       GAN400Z +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 75365} G1A509f                     =       GCO     +      GGN3005 +      GHO     +      GCO      : ARR( 0.200E+15,  2436., 0.0);
+{ 75366} G1A509g                     =       GAN400Z +      GCO     +      GHO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 75367} GAG501W +GHO                =       GAG501o +      GHO                                    : ARR( 0.525E-11,     0., 0.0);
+{ 75368} GAG501W +GHO                =       G2A507C                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 75369} GAG501W +GHO                =       G3A501K                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 75370} GAG501W+HV               =       G1A509h +      GNO2                                   :  0.100E+01*SUN;
+{ 75371} GAG501W+HV               =       G1A509i +      GNO2                                   :  0.100E+01*SUN;
+{ 75372} GAG501W+HV               =       G1A509e +      GHO                                    :  0.100E+01*SUN;
+{ 75373} GAG501W+HV               =       GAN400Y +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 75374} G2A507C +GNO                =       G1A509e +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 75375} G2A507C +GNO                =       GAG501T                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 75376} G2A507C +GHO2               =       GAG501W                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 75377} G2A507C +GNO3               =       G1A509e +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 75378} G2A507C +MEPERO             =  0.340G1A509e + 0.330GAG500p + 0.330GAG501o                 : ARR( 0.565E-13,  -845., 0.0);
+{ 75379} G2A507C +PERO1              =  0.460G1A509e + 0.270GAG500p + 0.270GAG501o                 : ARR( 0.434E-13,  -900., 0.0);
+{ 75380} G2A507C +PERO2              =  0.400G1A509e + 0.300GAG500p + 0.300GAG501o                 : ARR( 0.162E-13, -1400., 0.0);
+{ 75381} G2A507C +PERO3              =  0.460G1A509e + 0.270GAG500p + 0.270GAG501o                 : ARR( 0.488E-13, -1250., 0.0);
+{ 75382} G2A507C +PERO5              =  0.460G1A509e + 0.270GAG500p + 0.270GAG501o                 : ARR( 0.183E-11,   450., 0.0);
+{ 75383} G2A507C +PERO6              =  0.300G1A509e + 0.350GAG500p + 0.350GAG501o                 : ARR( 0.168E-13, -1300., 0.0);
+{ 75384} G2A507C +PERO9              =  0.650G1A509e + 0.350GAG501o                                : ARR( 0.100E-10,     0., 0.0);
+{ 75385} G1A509h                     =       GCO     +      GGH400r +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 75386} G1A509i                     =       GAN3006 +      GGD2000 +      GHO                     : ARR( 0.200E+15,  4308., 0.0);
+{ 75387} GAG501X +GHO                =       GAG501z +      GHO                                    : ARR( 0.527E-11,     0., 0.0);
+{ 75388} GAG501X +GHO                =       G2A507D                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 75389} GAG501X +GHO                =       G3A501L                                               : ARR( 0.199E-11,  -190., 0.0);
+{ 75390} GAG501X+HV               =       GGH400r +      GCO2                                   :  0.100E+01*SUN;
+{ 75391} GAG501X+HV               =       G1A509j +      GNO2                                   :  0.100E+01*SUN;
+{ 75392} GAG501X+HV               =       G1A509g +      GHO                                    :  0.100E+01*SUN;
+{ 75393} GAG501X+HV               =       GAN400Z +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 75394} G2A507D +GNO                =       G1A509g +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 75395} G2A507D +GNO                =       GAG501U                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 75396} G2A507D +GHO2               =       GAG501X                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 75397} G2A507D +GNO3               =       G1A509g +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 75398} G2A507D +MEPERO             =  0.340G1A509g + 0.330GAG501S + 0.330GAG501z                 : ARR( 0.565E-13,  -845., 0.0);
+{ 75399} G2A507D +PERO1              =  0.460G1A509g + 0.270GAG501S + 0.270GAG501z                 : ARR( 0.434E-13,  -900., 0.0);
+{ 75400} G2A507D +PERO2              =  0.400G1A509g + 0.300GAG501S + 0.300GAG501z                 : ARR( 0.162E-13, -1400., 0.0);
+{ 75401} G2A507D +PERO3              =  0.460G1A509g + 0.270GAG501S + 0.270GAG501z                 : ARR( 0.488E-13, -1250., 0.0);
+{ 75402} G2A507D +PERO5              =  0.460G1A509g + 0.270GAG501S + 0.270GAG501z                 : ARR( 0.183E-11,   450., 0.0);
+{ 75403} G2A507D +PERO6              =  0.300G1A509g + 0.350GAG501S + 0.350GAG501z                 : ARR( 0.168E-13, -1300., 0.0);
+{ 75404} G2A507D +PERO9              =  0.650G1A509g + 0.350GAG501z                                : ARR( 0.100E-10,     0., 0.0);
+{ 75405} G1A509j                     =       GCO     +      GGH3007 +      GHO     +      GCO      : ARR( 0.200E+15,  2436., 0.0);
+{ 75406} GPP500n                     =       G3P501F +      GNO2                                   : ARR( 0.400E+16, 12800., 0.0);
+{ 75407} GPP500n +GHO                =       GPP500p +      GNO2                                   : ARR( 0.287E-13,     0., 0.0);
+{ 75408} GPP500n +GHO                =       GPP500v +      GNO2                                   : ARR( 0.471E-14,     0., 0.0);
+{ 75409} GPP500n+HV               =       G3P501F +      GNO2                                   :  0.200E+01*SUN;
+{ 75410} GPP500n+HV               =       G1P508W +      GNO2                                   :  0.200E+01*SUN;
+{ 75411} GPP500n+HV               =       G1P509b +      GNO2                                   :  0.100E+01*SUN;
+{ 75412} GPP500o                     =       G3P501H +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 75413} GPP500o                     =       G3P501I +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 75414} GPP500o +GHO                =       GPP500p +      GHO                                    : ARR( 0.505E-11,     0., 0.0);
+{ 75415} GPP500o +GHO                =       G2P506G                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 75416} GPP500o+HV               =       G3P501H +      GNO2                                   :  0.100E+01*SUN;
+{ 75417} GPP500o+HV               =       G1P50Aj +      GNO2                                   :  0.100E+01*SUN;
+{ 75418} GPP500o+HV               =       G1P50Ak +      GNO2                                   :  0.100E+01*SUN;
+{ 75419} GPP500o+HV               =       G1P508W +      GHO                                    :  0.100E+01*SUN;
+{ 75420} GPP500o+HV               =       G3P501I +      GNO2                                   :  0.100E+01*SUN;
+{ 75421} G1P50Aj                     =       GPH400m +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 75422} G1P50Ak                     =       GPN3006 +      GPD2000 +      GHO                     : ARR( 0.200E+15,  4308., 0.0);
+{ 75423} GPP500p                     =       G3P501o +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 75424} GPP500p                     =       G3P501G +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 75425} GPP500p +GHO                =       GPP500x +      GNO2                                   : ARR( 0.144E-13,     0., 0.0);
+{ 75426} GPP500p +GHO                =       GPP500r +      GNO2                                   : ARR( 0.144E-13,     0., 0.0);
+{ 75427} GPP500p+HV               =       G3P400B +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 75428} GPP500p+HV               =       G1P509c +      GNO2                                   :  0.100E+01*SUN;
+{ 75429} GPP500p+HV               =       G1P508Y +      GNO2                                   :  0.100E+01*SUN;
+{ 75430} GPP500p+HV               =       G3P501G +      GNO2                                   :  0.100E+01*SUN;
+{ 75431} G3P501o +GHO2               =  0.800GPG501o + 0.200GPA501X + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 75432} G3P501o +GNO                =       G3P400B +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 75433} G3P501o +GNO2               =       GPP500p                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 75434} G3P501o +GNO3               =       G3P400B +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 75435} G3P501o +MEPERO             =  0.685G3P400B + 0.315GPA501X + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75436} G3P501o +PERO1              =  0.800G3P400B + 0.200GPA501X + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75437} G3P501o +PERO2              =  0.750G3P400B + 0.250GPA501X + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75438} G3P501o +PERO3              =  0.800G3P400B + 0.200GPA501X + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75439} G3P501o +PERO5              =  0.650G3P400B + 0.350GPA501X + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75440} G3P501o +PERO6              =  0.650G3P400B + 0.350GPA501X + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75441} G3P501o +PERO9              =       G3P400B +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 75442} GPP500q                     =       G3P501p +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 75443} GPP500q                     =       G3P501J +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 75444} GPP500q +GHO                =       GPP500r +      GHO                                    : ARR( 0.507E-11,     0., 0.0);
+{ 75445} GPP500q +GHO                =       G2P506H                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 75446} GPP500q+HV               =       G3P400G +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 75447} GPP500q+HV               =       G1P50Al +      GNO2                                   :  0.100E+01*SUN;
+{ 75448} GPP500q+HV               =       G1P508Y +      GHO                                    :  0.100E+01*SUN;
+{ 75449} GPP500q+HV               =       G3P501J +      GNO2                                   :  0.100E+01*SUN;
+{ 75450} G3P501p +GHO2               =  0.800GPG5021 + 0.200GPA501Y + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 75451} G3P501p +GNO                =       G3P400G +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 75452} G3P501p +GNO2               =       GPP500q                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 75453} G3P501p +GNO3               =       G3P400G +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 75454} G3P501p +MEPERO             =  0.685G3P400G + 0.315GPA501Y + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75455} G3P501p +PERO1              =  0.800G3P400G + 0.200GPA501Y + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75456} G3P501p +PERO2              =  0.750G3P400G + 0.250GPA501Y + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75457} G3P501p +PERO3              =  0.800G3P400G + 0.200GPA501Y + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75458} G3P501p +PERO5              =  0.650G3P400G + 0.350GPA501Y + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75459} G3P501p +PERO6              =  0.650G3P400G + 0.350GPA501Y + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75460} G3P501p +PERO9              =       G3P400G +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 75461} G1P50Al                     =       GPH3007 +      GCO     +      GNO2    +      GCO      : ARR( 0.200E+15,  2436., 0.0);
+{ 75462} GPP500r                     =       G3P501q +      GNO2                                   : ARR( 0.400E+16, 12800., 0.0);
+{ 75463} GPP500r +GHO                =       GPP500z +      GNO2                                   : ARR( 0.438E-13,     0., 0.0);
+{ 75464} GPP500r+HV               =       G3P400C +      GCO     +      GNO2                    :  0.200E+01*SUN;
+{ 75465} GPP500r+HV               =       G1P50AY +      GNO2                                   :  0.100E+01*SUN;
+{ 75466} G3P501q +GHO2               =  0.800GPG501p + 0.200GPA501Z + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 75467} G3P501q +GNO                =       G3P400C +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 75468} G3P501q +GNO2               =       GPP500r                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 75469} G3P501q +GNO3               =       G3P400C +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 75470} G3P501q +MEPERO             =  0.685G3P400C + 0.315GPA501Z + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75471} G3P501q +PERO1              =  0.800G3P400C + 0.200GPA501Z + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75472} G3P501q +PERO2              =  0.750G3P400C + 0.250GPA501Z + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75473} G3P501q +PERO3              =  0.800G3P400C + 0.200GPA501Z + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75474} G3P501q +PERO5              =  0.650G3P400C + 0.350GPA501Z + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75475} G3P501q +PERO6              =  0.650G3P400C + 0.350GPA501Z + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75476} G3P501q +PERO9              =       G3P400C +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 75477} GPG501Q                     =       G3G501b +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 75478} GPG501Q +GHO                =       G3P501F                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 75479} GPG501Q+HV               =       GPN400Z +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 75480} GPG501Q+HV               =       G1P50Am +      GNO2                                   :  0.100E+01*SUN;
+{ 75481} GPG501Q+HV               =       G1P50An +      GNO2                                   :  0.100E+01*SUN;
+{ 75482} GPG501Q+HV               =       G1P50Ao +      GNO2                                   :  0.100E+01*SUN;
+{ 75483} GPG501Q+HV               =       G3G501b +      GNO2                                   :  0.100E+01*SUN;
+{ 75484} G1P50Am                     =       GCO     +      GPN400Z +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 75485} G1P50An                     =       GGD2000 +      GPN3006 +      GNO2                    : ARR( 0.200E+15,  5846., 0.0);
+{ 75486} G1P50An                     =       GGN3005 +      GPD2000 +      GNO2                    : ARR( 0.200E+15,  5846., 0.0);
+{ 75487} G1P50Ao                     =       GGN400X +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 75488} GGH505W +GHO                =       GGN502t +      GHO                                    : ARR( 0.323E-11,     0., 0.0);
+{ 75489} GGH505W +GHO                =       G2G5065                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 75490} GGH505W +GHO                =       G3H505F                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 75491} GGH505W+HV               =       G1G507R +      GHO                                    :  0.100E+01*SUN;
+{ 75492} GGH505W+HV               =       G1G508Z +      GNO2                                   :  0.100E+01*SUN;
+{ 75493} GGH505W+HV               =       G1G508W +      GNO2                                   :  0.100E+01*SUN;
+{ 75494} GGH505W+HV               =       GAH400i +      GCO2                                   :  0.100E+01*SUN;
+{ 75495} G2G5065 +GNO                =       G1G507R +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 75496} G2G5065 +GNO                =       GGN502j                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 75497} G2G5065 +GHO2               =       GGH505W                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 75498} G2G5065 +GNO3               =       G1G507R +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 75499} G2G5065 +MEPERO             =  0.480G1G507R + 0.260GGN502S + 0.260GGN502t                 : ARR( 0.164E-12,  -795., 0.0);
+{ 75500} G2G5065 +PERO1              =  0.600G1G507R + 0.200GGN502S + 0.200GGN502t                 : ARR( 0.126E-12,  -850., 0.0);
+{ 75501} G2G5065 +PERO2              =  0.560G1G507R + 0.220GGN502S + 0.220GGN502t                 : ARR( 0.471E-13, -1350., 0.0);
+{ 75502} G2G5065 +PERO3              =  0.600G1G507R + 0.200GGN502S + 0.200GGN502t                 : ARR( 0.142E-12, -1200., 0.0);
+{ 75503} G2G5065 +PERO5              =  0.600G1G507R + 0.200GGN502S + 0.200GGN502t                 : ARR( 0.533E-11,   500., 0.0);
+{ 75504} G2G5065 +PERO6              =  0.460G1G507R + 0.270GGN502S + 0.270GGN502t                 : ARR( 0.488E-13, -1250., 0.0);
+{ 75505} G2G5065 +PERO9              =  0.800G1G507R + 0.200GGN502t                                : ARR( 0.100E-10,     0., 0.0);
+{ 75506} G1G508Z                     =       GCH2O   +      GGN400b +      GHO                     : ARR( 0.200E+15,  6565., 0.0);
+{ 75507} G1G508Z                     =       GHD2000 +      GGD3002 +      GNO2                    : ARR( 0.200E+15,  6094., 0.0);
+{ 75508} GPG501R                     =       G3G501k +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 75509} GPG501R +GHO                =       G3P501G                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 75510} GPG501R+HV               =       GPN400a +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 75511} GPG501R+HV               =       G1P50Ap +      GNO2                                   :  0.100E+01*SUN;
+{ 75512} GPG501R+HV               =       G1P50Aq +      GNO2                                   :  0.100E+01*SUN;
+{ 75513} GPG501R+HV               =       G3G400D +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 75514} G3G501k +GHO2               =  0.800GGG5016 + 0.200GAG501U + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 75515} G3G501k +GNO                =       G3G400D +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 75516} G3G501k +GNO2               =       GPG501R                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 75517} G3G501k +GNO3               =       G3G400D +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 75518} G3G501k +MEPERO             =  0.685G3G400D + 0.315GAG501U + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75519} G3G501k +PERO1              =  0.800G3G400D + 0.200GAG501U + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75520} G3G501k +PERO2              =  0.750G3G400D + 0.250GAG501U + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75521} G3G501k +PERO3              =  0.800G3G400D + 0.200GAG501U + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75522} G3G501k +PERO5              =  0.650G3G400D + 0.350GAG501U + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75523} G3G501k +PERO6              =  0.650G3G400D + 0.350GAG501U + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75524} G3G501k +PERO9              =       G3G400D +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 75525} G1P50Ap                     =       GCO     +      GPN400a +      GHO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 75526} G1P50Aq                     =       GGN3005 +      GCO     +      GNO2    +      GCO      : ARR( 0.200E+15,  2436., 0.0);
+{ 75527} GPG501S                     =       G3G501e +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 75528} GPG501S +GHO                =       GPG501R +      GHO                                    : ARR( 0.504E-11,     0., 0.0);
+{ 75529} GPG501S +GHO                =       G3P501H                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 75530} GPG501S +GHO                =       G2P507y                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 75531} GPG501S+HV               =       GPH400m +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 75532} GPG501S+HV               =       G1P50Ar +      GNO2                                   :  0.100E+01*SUN;
+{ 75533} GPG501S+HV               =       G1P50As +      GNO2                                   :  0.100E+01*SUN;
+{ 75534} GPG501S+HV               =       G1P50Ao +      GHO                                    :  0.100E+01*SUN;
+{ 75535} GPG501S+HV               =       G3G501e +      GNO2                                   :  0.100E+01*SUN;
+{ 75536} G2P507y +GNO                =       G1P50Ao +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 75537} G2P507y +GNO                =       GPG501Q                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 75538} G2P507y +GHO2               =       GPG501S                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 75539} G2P507y +GNO3               =       G1P50Ao +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 75540} G2P507y +MEPERO             =  0.340G1P50Ao + 0.330GPG500U + 0.330GPG501R                 : ARR( 0.565E-13,  -845., 0.0);
+{ 75541} G2P507y +PERO1              =  0.460G1P50Ao + 0.270GPG500U + 0.270GPG501R                 : ARR( 0.434E-13,  -900., 0.0);
+{ 75542} G2P507y +PERO2              =  0.400G1P50Ao + 0.300GPG500U + 0.300GPG501R                 : ARR( 0.162E-13, -1400., 0.0);
+{ 75543} G2P507y +PERO3              =  0.460G1P50Ao + 0.270GPG500U + 0.270GPG501R                 : ARR( 0.488E-13, -1250., 0.0);
+{ 75544} G2P507y +PERO5              =  0.460G1P50Ao + 0.270GPG500U + 0.270GPG501R                 : ARR( 0.183E-11,   450., 0.0);
+{ 75545} G2P507y +PERO6              =  0.300G1P50Ao + 0.350GPG500U + 0.350GPG501R                 : ARR( 0.168E-13, -1300., 0.0);
+{ 75546} G2P507y +PERO9              =  0.650G1P50Ao + 0.350GPG501R                                : ARR( 0.100E-10,     0., 0.0);
+{ 75547} G1P50Ar                     =       GCO     +      GPH400m +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 75548} G1P50As                     =       GGN3005 +      GPD2000 +      GHO                     : ARR( 0.200E+15,  4308., 0.0);
+{ 75549} GPG501T                     =       G3G501c +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 75550} GPG501T +GHO                =       GPG501o +      GHO                                    : ARR( 0.504E-11,     0., 0.0);
+{ 75551} GPG501T +GHO                =       G3P501I                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 75552} GPG501T +GHO                =       G2P507z                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 75553} GPG501T+HV               =       GPN400Z +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 75554} GPG501T+HV               =       G1P50Am +      GHO                                    :  0.100E+01*SUN;
+{ 75555} GPG501T+HV               =       G1P50At +      GNO2                                   :  0.100E+01*SUN;
+{ 75556} GPG501T+HV               =       G1P50Au +      GNO2                                   :  0.100E+01*SUN;
+{ 75557} GPG501T+HV               =       G3G501c +      GNO2                                   :  0.100E+01*SUN;
+{ 75558} G2P507z +GNO                =       G1P50Am +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 75559} G2P507z +GNO                =       GPG501Q                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 75560} G2P507z +GHO2               =       GPG501T                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 75561} G2P507z +GNO3               =       G1P50Am +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 75562} G2P507z +MEPERO             =  0.340G1P50Am + 0.330GPG500t + 0.330GPG501o                 : ARR( 0.565E-13,  -845., 0.0);
+{ 75563} G2P507z +PERO1              =  0.460G1P50Am + 0.270GPG500t + 0.270GPG501o                 : ARR( 0.434E-13,  -900., 0.0);
+{ 75564} G2P507z +PERO2              =  0.400G1P50Am + 0.300GPG500t + 0.300GPG501o                 : ARR( 0.162E-13, -1400., 0.0);
+{ 75565} G2P507z +PERO3              =  0.460G1P50Am + 0.270GPG500t + 0.270GPG501o                 : ARR( 0.488E-13, -1250., 0.0);
+{ 75566} G2P507z +PERO5              =  0.460G1P50Am + 0.270GPG500t + 0.270GPG501o                 : ARR( 0.183E-11,   450., 0.0);
+{ 75567} G2P507z +PERO6              =  0.300G1P50Am + 0.350GPG500t + 0.350GPG501o                 : ARR( 0.168E-13, -1300., 0.0);
+{ 75568} G2P507z +PERO9              =  0.650G1P50Am + 0.350GPG501o                                : ARR( 0.100E-10,     0., 0.0);
+{ 75569} G1P50At                     =       GGD2000 +      GPN3006 +      GHO                     : ARR( 0.200E+15,  4308., 0.0);
+{ 75570} G1P50Au                     =       GGH400r +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 75571} GPG501U                     =       G3G501l +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 75572} GPG501U +GHO                =       GPG501p +      GHO                                    : ARR( 0.506E-11,     0., 0.0);
+{ 75573} GPG501U +GHO                =       G3P501J                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 75574} GPG501U +GHO                =       G2P5081                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 75575} GPG501U+HV               =       GPN400a +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 75576} GPG501U+HV               =       G1P50Ap +      GHO                                    :  0.100E+01*SUN;
+{ 75577} GPG501U+HV               =       G1P50Av +      GNO2                                   :  0.100E+01*SUN;
+{ 75578} GPG501U+HV               =       G3G400J +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 75579} G3G501l +GHO2               =  0.800GGG5018 + 0.200GAG501X + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 75580} G3G501l +GNO                =       G3G400J +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 75581} G3G501l +GNO2               =       GPG501U                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 75582} G3G501l +GNO3               =       G3G400J +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 75583} G3G501l +MEPERO             =  0.685G3G400J + 0.315GAG501X + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75584} G3G501l +PERO1              =  0.800G3G400J + 0.200GAG501X + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75585} G3G501l +PERO2              =  0.750G3G400J + 0.250GAG501X + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75586} G3G501l +PERO3              =  0.800G3G400J + 0.200GAG501X + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75587} G3G501l +PERO5              =  0.650G3G400J + 0.350GAG501X + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75588} G3G501l +PERO6              =  0.650G3G400J + 0.350GAG501X + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75589} G3G501l +PERO9              =       G3G400J +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 75590} G2P5081 +GNO                =       G1P50Ap +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 75591} G2P5081 +GNO                =       GPG501R                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 75592} G2P5081 +GHO2               =       GPG501U                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 75593} G2P5081 +GNO3               =       G1P50Ap +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 75594} G2P5081 +MEPERO             =  0.340G1P50Ap + 0.330GPG500v + 0.330GPG501p                 : ARR( 0.565E-13,  -845., 0.0);
+{ 75595} G2P5081 +PERO1              =  0.460G1P50Ap + 0.270GPG500v + 0.270GPG501p                 : ARR( 0.434E-13,  -900., 0.0);
+{ 75596} G2P5081 +PERO2              =  0.400G1P50Ap + 0.300GPG500v + 0.300GPG501p                 : ARR( 0.162E-13, -1400., 0.0);
+{ 75597} G2P5081 +PERO3              =  0.460G1P50Ap + 0.270GPG500v + 0.270GPG501p                 : ARR( 0.488E-13, -1250., 0.0);
+{ 75598} G2P5081 +PERO5              =  0.460G1P50Ap + 0.270GPG500v + 0.270GPG501p                 : ARR( 0.183E-11,   450., 0.0);
+{ 75599} G2P5081 +PERO6              =  0.300G1P50Ap + 0.350GPG500v + 0.350GPG501p                 : ARR( 0.168E-13, -1300., 0.0);
+{ 75600} G2P5081 +PERO9              =  0.650G1P50Ap + 0.350GPG501p                                : ARR( 0.100E-10,     0., 0.0);
+{ 75601} G1P50Av                     =       GGH3007 +      GCO     +      GNO2    +      GCO      : ARR( 0.200E+15,  2436., 0.0);
+{ 75602} GGH505X +GHO                =       GGN502q +      GHO                                    : ARR( 0.324E-11,     0., 0.0);
+{ 75603} GGH505X +GHO                =       G2G5066                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 75604} GGH505X +GHO                =       G3H505N                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 75605} GGH505X+HV               =       G1G506M +      GHO                                    :  0.100E+01*SUN;
+{ 75606} GGH505X+HV               =       G1G508a +      GNO2                                   :  0.100E+01*SUN;
+{ 75607} GGH505X+HV               =       G3H3005 +      GCO     +      GHO2    +      GCO      :  0.100E+01*SUN;
+{ 75608} GGH505X+HV               =       GAH400j +      GCO2                                   :  0.100E+01*SUN;
+{ 75609} G2G5066 +GNO                =       G1G506M +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 75610} G2G5066 +GNO                =       GGN502X                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 75611} G2G5066 +GHO2               =       GGH505X                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 75612} G2G5066 +GNO3               =       G1G506M +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 75613} G2G5066 +MEPERO             =  0.480G1G506M + 0.260GGN502Z + 0.260GGN502q                 : ARR( 0.164E-12,  -795., 0.0);
+{ 75614} G2G5066 +PERO1              =  0.600G1G506M + 0.200GGN502Z + 0.200GGN502q                 : ARR( 0.126E-12,  -850., 0.0);
+{ 75615} G2G5066 +PERO2              =  0.560G1G506M + 0.220GGN502Z + 0.220GGN502q                 : ARR( 0.471E-13, -1350., 0.0);
+{ 75616} G2G5066 +PERO3              =  0.600G1G506M + 0.200GGN502Z + 0.200GGN502q                 : ARR( 0.142E-12, -1200., 0.0);
+{ 75617} G2G5066 +PERO5              =  0.600G1G506M + 0.200GGN502Z + 0.200GGN502q                 : ARR( 0.533E-11,   500., 0.0);
+{ 75618} G2G5066 +PERO6              =  0.460G1G506M + 0.270GGN502Z + 0.270GGN502q                 : ARR( 0.488E-13, -1250., 0.0);
+{ 75619} G2G5066 +PERO9              =  0.800G1G506M + 0.200GGN502q                                : ARR( 0.100E-10,     0., 0.0);
+{ 75620} G1G508a                     =       GHD2000 +      GCO     +      GHO2    + 2.000GCO      : ARR( 0.200E+15,  3291., 0.0);
+{ 75621} GGG500m +GHO                =       GGG500r +      GHO2                                   : ARR( 0.131E-11,     0., 0.0);
+{ 75622} GGG500m +GHO                =       G3G501m                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 75623} GGG500m +GHO                =       G3G501E                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 75624} GGG500m+HV               =       GAG400D +      GCO2                                   :  0.100E+01*SUN;
+{ 75625} GGG500m+HV               =       G1G507K +      GNO2                                   :  0.100E+01*SUN;
+{ 75626} GGG500m+HV               =       GGD4003 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 75627} G3G501m +GHO2               =  0.800GGG500m + 0.200GAG501x + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 75628} G3G501m +GNO                =       G3G400C +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 75629} G3G501m +GNO2               =       GPG501Z                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 75630} G3G501m +GNO3               =       G3G400C +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 75631} G3G501m +MEPERO             =  0.685G3G400C + 0.315GAG501x + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75632} G3G501m +PERO1              =  0.800G3G400C + 0.200GAG501x + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75633} G3G501m +PERO2              =  0.750G3G400C + 0.250GAG501x + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75634} G3G501m +PERO3              =  0.800G3G400C + 0.200GAG501x + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75635} G3G501m +PERO5              =  0.650G3G400C + 0.350GAG501x + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75636} G3G501m +PERO6              =  0.650G3G400C + 0.350GAG501x + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75637} G3G501m +PERO9              =       G3G400C +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 75638} GAG501Y +GHO                =       GAG501d +      GHO2                                   : ARR( 0.133E-11,     0., 0.0);
+{ 75639} GAG501Y +GHO                =       G3A501u                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 75640} GAG501Y +GHO                =       GGD4003 +      GNO2    +      GCO2                    : ARR( 0.550E-12,     0., 0.0);
+{ 75641} GAG501Y+HV               =       G1A508H +      GNO2                                   :  0.100E+01*SUN;
+{ 75642} GAG501Y+HV               =       GAA4004 +      GCO2                                   :  0.100E+01*SUN;
+{ 75643} G3A501u +GHO2               =  0.800GAG501Y + 0.200GAA5012 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 75644} G3A501u +GNO                =       G3A4006 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 75645} G3A501u +GNO2               =       GPA501c                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 75646} G3A501u +GNO3               =       G3A4006 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 75647} G3A501u +MEPERO             =  0.685G3A4006 + 0.315GAA5012 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75648} G3A501u +PERO1              =  0.800G3A4006 + 0.200GAA5012 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75649} G3A501u +PERO2              =  0.750G3A4006 + 0.250GAA5012 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75650} G3A501u +PERO3              =  0.800G3A4006 + 0.200GAA5012 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75651} G3A501u +PERO5              =  0.650G3A4006 + 0.350GAA5012 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75652} G3A501u +PERO6              =  0.650G3A4006 + 0.350GAA5012 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75653} G3A501u +PERO9              =       G3A4006 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 75654} GPG501W                     =       G3G501E +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 75655} GPG501W +GHO                =       GPG501e +      GHO2                                   : ARR( 0.135E-11,     0., 0.0);
+{ 75656} GPG501W +GHO                =       G3P501r                                               : ARR( 0.204E-11,  -190., 0.0);
+{ 75657} GPG501W+HV               =       GPA4009 +      GCO2                                   :  0.100E+01*SUN;
+{ 75658} GPG501W+HV               =       G1P5096 +      GNO2                                   :  0.100E+01*SUN;
+{ 75659} GPG501W+HV               =       G3G501E +      GNO2                                   :  0.100E+01*SUN;
+{ 75660} G3P501r +GHO2               =  0.800GPG501W + 0.200GPA501t + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 75661} G3P501r +GNO                =       G3P4006 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 75662} G3P501r +GNO2               =       GPP500s                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 75663} G3P501r +GNO3               =       G3P4006 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 75664} G3P501r +MEPERO             =  0.685G3P4006 + 0.315GPA501t + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75665} G3P501r +PERO1              =  0.800G3P4006 + 0.200GPA501t + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75666} G3P501r +PERO2              =  0.750G3P4006 + 0.250GPA501t + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75667} G3P501r +PERO3              =  0.800G3P4006 + 0.200GPA501t + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75668} G3P501r +PERO5              =  0.650G3P4006 + 0.350GPA501t + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75669} G3P501r +PERO6              =  0.650G3P4006 + 0.350GPA501t + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75670} G3P501r +PERO9              =       G3P4006 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 75671} GGH505Y +GHO                =       GGD500O +      GHO                                    : ARR( 0.167E-10,     0., 0.0);
+{ 75672} GGH505Y +GHO                =       G3G501n                                               : ARR( 0.717E-10,     0., 0.0);
+{ 75673} GGH505Y +GNO3               =       G3G501n +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 75674} GGH505Y+HV               =       GAH400s +      GCO2                                   :  0.100E+01*SUN;
+{ 75675} GGH505Y+HV               =       GCO     +      G3H3006 +      GHO2    +      GCO      :  0.100E+01*SUN;
+{ 75676} GGH505Y+HV               =       G1G5089 +      GHO                                    :  0.100E+01*SUN;
+{ 75677} GGH505Y+HV               =       GGD4008 +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 75678} G3G501n +GHO2               =  0.800GGG500s + 0.200GAG501i + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 75679} G3G501n +GNO                =       GGD4008 +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 75680} G3G501n +GNO2               =       GPG501f                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 75681} G3G501n +GNO3               =       GGD4008 +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 75682} G3G501n +MEPERO             =  0.685GGD4008 + 0.315GAG501i + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 75683} G3G501n +PERO1              =  0.800GGD4008 + 0.200GAG501i + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 75684} G3G501n +PERO2              =  0.750GGD4008 + 0.250GAG501i + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 75685} G3G501n +PERO3              =  0.800GGD4008 + 0.200GAG501i + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 75686} G3G501n +PERO5              =  0.650GGD4008 + 0.350GAG501i + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 75687} G3G501n +PERO6              =  0.650GGD4008 + 0.350GAG501i + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 75688} G3G501n +PERO9              =       GGD4008 +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 75689} GGG500n +GHO                =       GGG500s +      GHO2                                   : ARR( 0.708E-11,     0., 0.0);
+{ 75690} GGG500n +GHO                =       GGG500o +      GHO                                    : ARR( 0.898E-10,     0., 0.0);
+{ 75691} GGG500n+HV               =       GAG400I +      GCO2                                   :  0.100E+01*SUN;
+{ 75692} GGG500n+HV               =       G1G507K +      GHO                                    :  0.100E+01*SUN;
+{ 75693} GGG500n+HV               =       GGD4003 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 75694} GAG501Z +GHO                =       GAG501a +      GHO                                    : ARR( 0.661E-10,     0., 0.0);
+{ 75695} GAG501Z +GHO                =       GAG501i +      GHO2                                   : ARR( 0.704E-11,     0., 0.0);
+{ 75696} GAG501Z+HV               =       G1A508H +      GHO                                    :  0.100E+01*SUN;
+{ 75697} GAG501Z+HV               =       GAA400C +      GCO2                                   :  0.100E+01*SUN;
+{ 75698} GPG501X                     =       G3G501F +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 75699} GPG501X +GHO                =       GPG501f +      GHO2                                   : ARR( 0.682E-11,     0., 0.0);
+{ 75700} GPG501X +GHO                =       GPG501Y +      GHO                                    : ARR( 0.865E-10,     0., 0.0);
+{ 75701} GPG501X+HV               =       GPA400N +      GCO2                                   :  0.100E+01*SUN;
+{ 75702} GPG501X+HV               =       G1P5096 +      GHO                                    :  0.100E+01*SUN;
+{ 75703} GPG501X+HV               =       G3G501F +      GNO2                                   :  0.100E+01*SUN;
+{ 75704} GGG500o +GHO                =       GGG500t +      GHO2                                   : ARR( 0.388E-11,     0., 0.0);
+{ 75705} GGG500o +GHO                =       G3G501o                                               : ARR( 0.385E-11,  -190., 0.0);
+{ 75706} GGG500o+HV               =       GAG4006 +      GCO2                                   :  0.200E+01*SUN;
+{ 75707} G3G501o +GHO2               =  0.800GGG500o + 0.200GAG501a + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 75708} G3G501o +GNO                =       G3G4004 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 75709} G3G501o +GNO2               =       GPG501Y                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 75710} G3G501o +GNO3               =       G3G4004 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 75711} G3G501o +MEPERO             =  0.685G3G4004 + 0.315GAG501a + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75712} G3G501o +PERO1              =  0.800G3G4004 + 0.200GAG501a + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75713} G3G501o +PERO2              =  0.750G3G4004 + 0.250GAG501a + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75714} G3G501o +PERO3              =  0.800G3G4004 + 0.200GAG501a + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75715} G3G501o +PERO5              =  0.650G3G4004 + 0.350GAG501a + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75716} G3G501o +PERO6              =  0.650G3G4004 + 0.350GAG501a + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75717} G3G501o +PERO9              =       G3G4004 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 75718} GAG501a +GHO                =       GAG501g +      GHO2                                   : ARR( 0.390E-11,     0., 0.0);
+{ 75719} GAG501a +GHO                =       G3A501v                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 75720} GAG501a +GHO                =       G3G4004 +      GCO2                                   : ARR( 0.529E-12,     0., 0.0);
+{ 75721} GAG501a+HV               =       GGD4003 +      GCO2                                   :  0.100E+01*SUN;
+{ 75722} GAG501a+HV               =       GAA4005 +      GCO2                                   :  0.100E+01*SUN;
+{ 75723} G3A501v +GHO2               =  0.800GAG501a + 0.200GAA501B + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 75724} G3A501v +GNO                =       G3A4007 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 75725} G3A501v +GNO2               =       GPA501e                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 75726} G3A501v +GNO3               =       G3A4007 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 75727} G3A501v +MEPERO             =  0.685G3A4007 + 0.315GAA501B + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75728} G3A501v +PERO1              =  0.800G3A4007 + 0.200GAA501B + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75729} G3A501v +PERO2              =  0.750G3A4007 + 0.250GAA501B + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75730} G3A501v +PERO3              =  0.800G3A4007 + 0.200GAA501B + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75731} G3A501v +PERO5              =  0.650G3A4007 + 0.350GAA501B + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75732} G3A501v +PERO6              =  0.650G3A4007 + 0.350GAA501B + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75733} G3A501v +PERO9              =       G3A4007 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 75734} GPG501Y                     =       G3G501o +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 75735} GPG501Y +GHO                =       GPG501g +      GHO2                                   : ARR( 0.390E-11,     0., 0.0);
+{ 75736} GPG501Y +GHO                =       G3P501s                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 75737} GPG501Y+HV               =       GPA400A +      GCO2                                   :  0.100E+01*SUN;
+{ 75738} GPG501Y+HV               =       G3G4004 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 75739} G3P501s +GHO2               =  0.800GPG501Y + 0.200GPA501e + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 75740} G3P501s +GNO                =       G3P4007 +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 75741} G3P501s +GNO2               =       GPP500u                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 75742} G3P501s +GNO3               =       G3P4007 +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 75743} G3P501s +MEPERO             =  0.685G3P4007 + 0.315GPA501e + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75744} G3P501s +PERO1              =  0.800G3P4007 + 0.200GPA501e + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75745} G3P501s +PERO2              =  0.750G3P4007 + 0.250GPA501e + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75746} G3P501s +PERO3              =  0.800G3P4007 + 0.200GPA501e + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75747} G3P501s +PERO5              =  0.650G3P4007 + 0.350GPA501e + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75748} G3P501s +PERO6              =  0.650G3P4007 + 0.350GPA501e + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75749} G3P501s +PERO9              =       G3P4007 +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 75750} GPG501Z                     =       G3G501m +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 75751} GPG501Z +GHO                =       GPG501d +      GHO2                                   : ARR( 0.135E-11,     0., 0.0);
+{ 75752} GPG501Z +GHO                =       G3P501M                                               : ARR( 0.204E-11,  -190., 0.0);
+{ 75753} GPG501Z+HV               =       GPD4004 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 75754} GPG501Z+HV               =       G1P5097 +      GNO2                                   :  0.100E+01*SUN;
+{ 75755} GPG501Z+HV               =       G3G400C +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 75756} GPA501c                     =       G3A501u +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 75757} GPA501c +GHO                =       GPA501e +      GNO2                                   : ARR( 0.168E-12,     0., 0.0);
+{ 75758} GPA501c +GHO                =       GPA501h +      GHO2                                   : ARR( 0.126E-11,     0., 0.0);
+{ 75759} GPA501c +GHO                =       G1P509a                                               : ARR( 0.210E-17,    85., 2.0);
+{ 75760} GPA501c +GHO                =       GPD4004 +      GNO2    +      GCO2                    : ARR( 0.520E-12,     0., 0.0);
+{ 75761} GPA501c+HV               =       G1P5098 +      GNO2                                   :  0.100E+01*SUN;
+{ 75762} GPA501c+HV               =       G3A4006 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 75763} GPP500s                     =       G3P501r +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 75764} GPP500s                     =       G3P501M +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 75765} GPP500s +GHO                =       GPP500x +      GHO2                                   : ARR( 0.126E-11,     0., 0.0);
+{ 75766} GPP500s +GHO                =       GPP500u +      GNO2                                   : ARR( 0.228E-12,     0., 0.0);
+{ 75767} GPP500s +GHO                =       G1P509c                                               : ARR( 0.210E-17,    85., 2.0);
+{ 75768} GPP500s+HV               =       G3P4006 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 75769} GPP500s+HV               =       G1P5099 +      GNO2                                   :  0.100E+01*SUN;
+{ 75770} GPP500s+HV               =       G3P501M +      GNO2                                   :  0.100E+01*SUN;
+{ 75771} GPG501a                     =       G3G501p +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 75772} GPG501a +GHO                =       GPG501Y +      GHO                                    : ARR( 0.865E-10,     0., 0.0);
+{ 75773} GPG501a +GHO                =       GPG501i +      GHO2                                   : ARR( 0.682E-11,     0., 0.0);
+{ 75774} GPG501a+HV               =       GPD4004 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 75775} GPG501a+HV               =       G1P5097 +      GHO                                    :  0.100E+01*SUN;
+{ 75776} GPG501a+HV               =       G3G400E +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 75777} G3G501p +GHO2               =  0.800GGG500n + 0.200GAG501y + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 75778} G3G501p +GNO                =       G3G400E +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 75779} G3G501p +GNO2               =       GPG501a                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 75780} G3G501p +GNO3               =       G3G400E +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 75781} G3G501p +MEPERO             =  0.685G3G400E + 0.315GAG501y + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75782} G3G501p +PERO1              =  0.800G3G400E + 0.200GAG501y + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75783} G3G501p +PERO2              =  0.750G3G400E + 0.250GAG501y + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75784} G3G501p +PERO3              =  0.800G3G400E + 0.200GAG501y + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75785} G3G501p +PERO5              =  0.650G3G400E + 0.350GAG501y + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75786} G3G501p +PERO6              =  0.650G3G400E + 0.350GAG501y + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75787} G3G501p +PERO9              =       G3G400E +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 75788} GPA501d                     =       G3A501w +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 75789} GPA501d +GHO                =       GPA501e +      GHO                                    : ARR( 0.595E-10,     0., 0.0);
+{ 75790} GPA501d +GHO                =       GPA501m +      GHO2                                   : ARR( 0.634E-11,     0., 0.0);
+{ 75791} GPA501d +GHO                =       G2P506Q                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 75792} GPA501d+HV               =       G1P5098 +      GHO                                    :  0.100E+01*SUN;
+{ 75793} GPA501d+HV               =       G3A400E +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 75794} G3A501w +GHO2               =  0.800GAG501Z + 0.200GAA501A + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 75795} G3A501w +GNO                =       G3A400E +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 75796} G3A501w +GNO2               =       GPA501d                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 75797} G3A501w +GNO3               =       G3A400E +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 75798} G3A501w +MEPERO             =  0.685G3A400E + 0.315GAA501A + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75799} G3A501w +PERO1              =  0.800G3A400E + 0.200GAA501A + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75800} G3A501w +PERO2              =  0.750G3A400E + 0.250GAA501A + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75801} G3A501w +PERO3              =  0.800G3A400E + 0.200GAA501A + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75802} G3A501w +PERO5              =  0.650G3A400E + 0.350GAA501A + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75803} G3A501w +PERO6              =  0.650G3A400E + 0.350GAA501A + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75804} G3A501w +PERO9              =       G3A400E +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 75805} GPP500t                     =       G3P501t +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 75806} GPP500t                     =       G3P501N +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 75807} GPP500t +GHO                =       GPP500y +      GHO2                                   : ARR( 0.656E-11,     0., 0.0);
+{ 75808} GPP500t +GHO                =       GPP500u +      GHO                                    : ARR( 0.831E-10,     0., 0.0);
+{ 75809} GPP500t+HV               =       G3P400F +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 75810} GPP500t+HV               =       G1P5099 +      GHO                                    :  0.100E+01*SUN;
+{ 75811} GPP500t+HV               =       G3P501N +      GNO2                                   :  0.100E+01*SUN;
+{ 75812} G3P501t +GHO2               =  0.800GPG501X + 0.200GPA5021 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 75813} G3P501t +GNO                =       G3P400F +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 75814} G3P501t +GNO2               =       GPP500t                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 75815} G3P501t +GNO3               =       G3P400F +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 75816} G3P501t +MEPERO             =  0.685G3P400F + 0.315GPA5021 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75817} G3P501t +PERO1              =  0.800G3P400F + 0.200GPA5021 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75818} G3P501t +PERO2              =  0.750G3P400F + 0.250GPA5021 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75819} G3P501t +PERO3              =  0.800G3P400F + 0.200GPA5021 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75820} G3P501t +PERO5              =  0.650G3P400F + 0.350GPA5021 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75821} G3P501t +PERO6              =  0.650G3P400F + 0.350GPA5021 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 75822} G3P501t +PERO9              =       G3P400F +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 75823} GPA501e                     =       G3A501v +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 75824} GPA501e +GHO                =       GPA501k +      GHO2                                   : ARR( 0.395E-11,     0., 0.0);
+{ 75825} GPA501e +GHO                =       G3P4007 +      GCO2                                   : ARR( 0.537E-12,     0., 0.0);
+{ 75826} GPA501e+HV               =       GPD4004 +      GCO2                                   :  0.100E+01*SUN;
+{ 75827} GPA501e+HV               =       G3A4007 +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 75828} GPP500u                     =       G3P501s +      GNO2                                   : ARR( 0.400E+16, 12800., 0.0);
+{ 75829} GPP500u +GHO                =       GPP500z +      GHO2                                   : ARR( 0.397E-11,     0., 0.0);
+{ 75830} GPP500u+HV               =       G3P4007 +      GCO     +      GNO2                    :  0.200E+01*SUN;
+{ 75831} GGG500p +GHO                =       G3G501U                                               : ARR( 0.385E-11,  -190., 0.0);
+{ 75832} GGG500p+HV               =       GGN400Z +      GHO     +      GNO2    +      GCO2     :  0.200E+01*SUN;
+{ 75833} GGG500p+HV               =       G1G507L +      GNO2                                   :  0.200E+01*SUN;
+{ 75834} GGG500p+HV               =       G3G3001 +      GGD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 75835} GGG500q +GHO                =       GGG500r +      GHO                                    : ARR( 0.153E-10,     0., 0.0);
+{ 75836} GGG500q +GHO                =       G3G501W                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 75837} GGG500q +GHO                =       G2G5052                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 75838} GGG500q +GHO                =       G3G501q                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 75839} GGG500q+HV               =       GGH400s +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 75840} GGG500q+HV               =       G1G508b +      GNO2                                   :  0.100E+01*SUN;
+{ 75841} GGG500q+HV               =       G3G3001 +      GGD2000 +      GHO                     :  0.100E+01*SUN;
+{ 75842} GGG500q+HV               =       G1G507L +      GHO                                    :  0.100E+01*SUN;
+{ 75843} GGG500q+HV               =       GGN400Z +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 75844} G3G501q +GHO2               =  0.800GGG500q + 0.200GAG501h + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 75845} G3G501q +GNO                =       GGN400Z +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 75846} G3G501q +GNO2               =       GPG501c                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 75847} G3G501q +GNO3               =       GGN400Z +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 75848} G3G501q +MEPERO             =  0.685GGN400Z + 0.315GAG501h + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 75849} G3G501q +PERO1              =  0.800GGN400Z + 0.200GAG501h + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 75850} G3G501q +PERO2              =  0.750GGN400Z + 0.250GAG501h + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 75851} G3G501q +PERO3              =  0.800GGN400Z + 0.200GAG501h + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 75852} G3G501q +PERO5              =  0.650GGN400Z + 0.350GAG501h + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 75853} G3G501q +PERO6              =  0.650GGN400Z + 0.350GAG501h + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 75854} G3G501q +PERO9              =       GGN400Z +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 75855} G1G508b                     =       G3G3003 +      GGD2000                                : ARR( 0.200E+15,  6105., 0.0);
+{ 75856} G1G508b                     =       GGH400s +      GCO     +      GHO2                    : ARR( 0.200E+15,  6793., 0.0);
+{ 75857} GGG500r +GHO                =       G3G501r                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 75858} GGG500r +GHO                =       G3G501X                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 75859} GGG500r+HV               =       GAG400E +      GCO2                                   :  0.100E+01*SUN;
+{ 75860} GGG500r+HV               =       GCO     +      G3G3001 +      GHO2    +      GCO      :  0.100E+01*SUN;
+{ 75861} GGG500r+HV               =       G1G507M +      GNO2                                   :  0.100E+01*SUN;
+{ 75862} GGG500r+HV               =       GGD4008 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 75863} G3G501r +GHO2               =  0.800GGG500r + 0.200GAG501e + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 75864} G3G501r +GNO                =       G3G3001 +      GNO2    +      GCO2    +      GCO      : ARR( 0.810E-11,  -270., 0.0);
+{ 75865} G3G501r +GNO2               =       GPG501d                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 75866} G3G501r +GNO3               =       G3G3001 +      GNO2    +      GCO2    +      GCO      : ARR( 0.500E-11,     0., 0.0);
+{ 75867} G3G501r +MEPERO             =  0.685G3G3001 + 0.315GAG501e + 0.685GCO2    + 0.685GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 75868} G3G501r +PERO1              =  0.800G3G3001 + 0.200GAG501e + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 75869} G3G501r +PERO2              =  0.750G3G3001 + 0.250GAG501e + 0.750GCO2    + 0.750GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 75870} G3G501r +PERO3              =  0.800G3G3001 + 0.200GAG501e + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 75871} G3G501r +PERO5              =  0.650G3G3001 + 0.350GAG501e + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 75872} G3G501r +PERO6              =  0.650G3G3001 + 0.350GAG501e + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 75873} G3G501r +PERO9              =       G3G3001 +      GCO2    +      GCO                     : ARR( 0.500E-11,  -500., 0.0);
+{ 75874} GGG500s +GHO                =       GGG500t +      GHO                                    : ARR( 0.153E-10,     0., 0.0);
+{ 75875} GGG500s +GHO                =       G3G501s                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 75876} GGG500s +GHO                =       G2G5053                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 75877} GGG500s +GHO                =       G3G501n                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 75878} GGG500s+HV               =       GAG400G +      GCO2                                   :  0.100E+01*SUN;
+{ 75879} GGG500s+HV               =       GCO     +      G3G3003 +      GHO2    +      GCO      :  0.100E+01*SUN;
+{ 75880} GGG500s+HV               =       G1G507M +      GHO                                    :  0.100E+01*SUN;
+{ 75881} GGG500s+HV               =       GGD4008 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 75882} G3G501s +GHO2               =  0.800GGG500s + 0.200GAG501f + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 75883} G3G501s +GNO                =       G3G3003 +      GNO2    +      GCO2    +      GCO      : ARR( 0.810E-11,  -270., 0.0);
+{ 75884} G3G501s +GNO2               =       GPG501i                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 75885} G3G501s +GNO3               =       G3G3003 +      GNO2    +      GCO2    +      GCO      : ARR( 0.500E-11,     0., 0.0);
+{ 75886} G3G501s +MEPERO             =  0.685G3G3003 + 0.315GAG501f + 0.685GCO2    + 0.685GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 75887} G3G501s +PERO1              =  0.800G3G3003 + 0.200GAG501f + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 75888} G3G501s +PERO2              =  0.750G3G3003 + 0.250GAG501f + 0.750GCO2    + 0.750GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 75889} G3G501s +PERO3              =  0.800G3G3003 + 0.200GAG501f + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 75890} G3G501s +PERO5              =  0.650G3G3003 + 0.350GAG501f + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 75891} G3G501s +PERO6              =  0.650G3G3003 + 0.350GAG501f + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 75892} G3G501s +PERO9              =       G3G3003 +      GCO2    +      GCO                     : ARR( 0.500E-11,  -500., 0.0);
+{ 75893} GGG500t +GHO                =       G3G501t                                               : ARR( 0.380E-11,  -190., 0.0);
+{ 75894} GGG500t+HV               =       GAG400H +      GCO2                                   :  0.200E+01*SUN;
+{ 75895} GGG500t+HV               =  2.000GCO     + 2.000GHO2    + 3.000GCO                     :  0.200E+01*SUN;
+{ 75896} G3G501t +GHO2               =  0.800GGG500t + 0.200GAG501g + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 75897} G3G501t +GNO                =  2.000GCO     + 2.000GNO2    + 2.000GHO2    + 2.000GCO2     : ARR( 0.405E-11,  -270., 0.0);
+{ 75898} G3G501t +GNO                =  6.000GCO                                                   : ARR( 0.405E-11,  -270., 0.0);
+{ 75899} G3G501t +GNO2               =       GPG501g                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 75900} G3G501t +GNO3               =  2.000GCO     + 2.000GNO2    + 2.000GHO2    + 2.000GCO2     : ARR( 0.250E-11,     0., 0.0);
+{ 75901} G3G501t +GNO3               =  6.000GCO                                                   : ARR( 0.250E-11,     0., 0.0);
+{ 75902} G3G501t +MEPERO             =  1.370GCO     + 0.630GAG501g + 1.370GHO2    + 1.370GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 75903} G3G501t +MEPERO             =  4.110GCO                                                   : ARR( 0.500E-11,     0., 0.0);
+{ 75904} G3G501t +PERO1              =  1.600GCO     + 0.400GAG501g + 1.600GHO2    + 1.600GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 75905} G3G501t +PERO1              =  4.800GCO                                                   : ARR( 0.500E-11,     0., 0.0);
+{ 75906} G3G501t +PERO2              =  1.500GCO     + 0.500GAG501g + 1.500GHO2    + 1.500GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 75907} G3G501t +PERO2              =  4.500GCO                                                   : ARR( 0.500E-11,     0., 0.0);
+{ 75908} G3G501t +PERO3              =  1.600GCO     + 0.400GAG501g + 1.600GHO2    + 1.600GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 75909} G3G501t +PERO3              =  4.800GCO                                                   : ARR( 0.500E-11,     0., 0.0);
+{ 75910} G3G501t +PERO5              =  1.300GCO     + 0.700GAG501g + 1.300GHO2    + 1.300GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 75911} G3G501t +PERO5              =  3.900GCO                                                   : ARR( 0.500E-11,     0., 0.0);
+{ 75912} G3G501t +PERO6              =  1.300GCO     + 0.700GAG501g + 1.300GHO2    + 1.300GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 75913} G3G501t +PERO6              =  3.900GCO                                                   : ARR( 0.500E-11,     0., 0.0);
+{ 75914} G3G501t +PERO9              =       GCO     +      GHO2    +      GCO2    + 3.000GCO      : ARR( 0.500E-11,  -500., 0.0);
+{ 75915} GAG501b +GHO                =       G3A501P                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 75916} GAG501b +GHO                =       GGN400Z +      GNO2    +      GCO2                    : ARR( 0.530E-12,     0., 0.0);
+{ 75917} GAG501b+HV               =       G1A508K +      GNO2                                   :  0.100E+01*SUN;
+{ 75918} GAG501b+HV               =       G3A3001 +      GGD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 75919} GAG501b+HV               =       G1A508I +      GNO2                                   :  0.100E+01*SUN;
+{ 75920} GAG501b+HV               =       GAN400b +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 75921} GAG501c +GHO                =       GAG501d +      GHO                                    : ARR( 0.157E-10,     0., 0.0);
+{ 75922} GAG501c +GHO                =       G2A505v                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 75923} GAG501c +GHO                =       G3A501R                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 75924} GAG501c+HV               =       G1A509k +      GNO2                                   :  0.100E+01*SUN;
+{ 75925} GAG501c+HV               =       G3A3001 +      GGD2000 +      GHO                     :  0.100E+01*SUN;
+{ 75926} GAG501c+HV               =       G1A508I +      GHO                                    :  0.100E+01*SUN;
+{ 75927} GAG501c+HV               =       GAN400b +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 75928} G1A509k                     =       GCO     +      GGH400s +      GHO                     : ARR( 0.200E+15,  6762., 0.0);
+{ 75929} G1A509k                     =       GAD2000 +      G3G3003                                : ARR( 0.200E+15,  6105., 0.0);
+{ 75930} GAG501d +GHO                =       G3A501x                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 75931} GAG501d +GHO                =       GGD4008 +      GNO2    +      GCO2                    : ARR( 0.524E-12,     0., 0.0);
+{ 75932} GAG501d+HV               =       G1A508L +      GNO2                                   :  0.100E+01*SUN;
+{ 75933} GAG501d+HV               =       G3A3001 +      GCO     +      GHO2    +      GCO      :  0.100E+01*SUN;
+{ 75934} GAG501d+HV               =       GAA4008 +      GCO2                                   :  0.100E+01*SUN;
+{ 75935} G3A501x +GHO2               =  0.800GAG501d + 0.200GAA500x + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 75936} G3A501x +GNO                =       G3A3001 +      GNO2    +      GCO2    +      GCO      : ARR( 0.810E-11,  -270., 0.0);
+{ 75937} G3A501x +GNO2               =       GPA501h                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 75938} G3A501x +GNO3               =       G3A3001 +      GNO2    +      GCO2    +      GCO      : ARR( 0.500E-11,     0., 0.0);
+{ 75939} G3A501x +MEPERO             =  0.685G3A3001 + 0.315GAA500x + 0.685GCO2    + 0.685GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 75940} G3A501x +PERO1              =  0.800G3A3001 + 0.200GAA500x + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 75941} G3A501x +PERO2              =  0.750G3A3001 + 0.250GAA500x + 0.750GCO2    + 0.750GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 75942} G3A501x +PERO3              =  0.800G3A3001 + 0.200GAA500x + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 75943} G3A501x +PERO5              =  0.650G3A3001 + 0.350GAA500x + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 75944} G3A501x +PERO6              =  0.650G3A3001 + 0.350GAA500x + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 75945} G3A501x +PERO9              =       G3A3001 +      GCO2    +      GCO                     : ARR( 0.500E-11,  -500., 0.0);
+{ 75946} GAG501e +GHO                =       G3A501Q                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 75947} GAG501e +GHO                =       G3G3001 +      GCO2    +      GCO                     : ARR( 0.526E-12,     0., 0.0);
+{ 75948} GAG501e+HV               =       GGN400Z +      GCO2                                   :  0.100E+01*SUN;
+{ 75949} GAG501e+HV               =       GCO     +      G3G3001 +      GHO     +      GCO      :  0.100E+01*SUN;
+{ 75950} GAG501e+HV               =       G1A508J +      GNO2                                   :  0.100E+01*SUN;
+{ 75951} GAG501e+HV               =       GAD4008 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 75952} GAG501f +GHO                =       GAG501g +      GHO                                    : ARR( 0.157E-10,     0., 0.0);
+{ 75953} GAG501f +GHO                =       G2A505w                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 75954} GAG501f +GHO                =       G3A501S                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 75955} GAG501f+HV               =       GGH400s +      GCO2                                   :  0.100E+01*SUN;
+{ 75956} GAG501f+HV               =       GCO     +      G3G3003 +      GHO     +      GCO      :  0.100E+01*SUN;
+{ 75957} GAG501f+HV               =       G1A508J +      GHO                                    :  0.100E+01*SUN;
+{ 75958} GAG501f+HV               =       GAD4008 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 75959} GAG501g +GHO                =       G3A501y                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 75960} GAG501g +GHO                =       GCO     +      GHO2    +      GCO2    + 3.000GCO      : ARR( 0.520E-12,     0., 0.0);
+{ 75961} GAG501g+HV               =       GGD4008 +      GCO2                                   :  0.100E+01*SUN;
+{ 75962} GAG501g+HV               =  2.000GCO     +      GHO     +      GHO2    + 3.000GCO      :  0.100E+01*SUN;
+{ 75963} GAG501g+HV               =  2.000GCO     +      GHO     +      GHO2    + 3.000GCO      :  0.100E+01*SUN;
+{ 75964} GAG501g+HV               =       GAA400B +      GCO2                                   :  0.100E+01*SUN;
+{ 75965} G3A501y +GHO2               =  0.800GAG501g + 0.200GAA500z + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 75966} G3A501y +GNO                =  2.000GCO     + 2.000GNO2    + 2.000GHO     + 2.000GCO2     : ARR( 0.405E-11,  -270., 0.0);
+{ 75967} G3A501y +GNO                =  6.000GCO                                                   : ARR( 0.405E-11,  -270., 0.0);
+{ 75968} G3A501y +GNO2               =       GPA501k                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 75969} G3A501y +GNO3               =  2.000GCO     + 2.000GNO2    + 2.000GHO     + 2.000GCO2     : ARR( 0.250E-11,     0., 0.0);
+{ 75970} G3A501y +GNO3               =  6.000GCO                                                   : ARR( 0.250E-11,     0., 0.0);
+{ 75971} G3A501y +MEPERO             =  1.370GCO     + 0.630GAA500z + 1.370GHO     + 1.370GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 75972} G3A501y +MEPERO             =  4.110GCO                                                   : ARR( 0.500E-11,     0., 0.0);
+{ 75973} G3A501y +PERO1              =  1.600GCO     + 0.400GAA500z + 1.600GHO     + 1.600GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 75974} G3A501y +PERO1              =  4.800GCO                                                   : ARR( 0.500E-11,     0., 0.0);
+{ 75975} G3A501y +PERO2              =  1.500GCO     + 0.500GAA500z + 1.500GHO     + 1.500GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 75976} G3A501y +PERO2              =  4.500GCO                                                   : ARR( 0.500E-11,     0., 0.0);
+{ 75977} G3A501y +PERO3              =  1.600GCO     + 0.400GAA500z + 1.600GHO     + 1.600GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 75978} G3A501y +PERO3              =  4.800GCO                                                   : ARR( 0.500E-11,     0., 0.0);
+{ 75979} G3A501y +PERO5              =  1.300GCO     + 0.700GAA500z + 1.300GHO     + 1.300GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 75980} G3A501y +PERO5              =  3.900GCO                                                   : ARR( 0.500E-11,     0., 0.0);
+{ 75981} G3A501y +PERO6              =  1.300GCO     + 0.700GAA500z + 1.300GHO     + 1.300GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 75982} G3A501y +PERO6              =  3.900GCO                                                   : ARR( 0.500E-11,     0., 0.0);
+{ 75983} G3A501y +PERO9              =       GCO     +      GHO     +      GCO2    + 3.000GCO      : ARR( 0.500E-11,  -500., 0.0);
+{ 75984} GAG501h +GHO                =       GAG501e +      GHO                                    : ARR( 0.117E-10,     0., 0.0);
+{ 75985} GAG501h +GHO                =       G2A505x                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 75986} GAG501h +GHO                =       G3A501k                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 75987} GAG501h+HV               =       G1A508K +      GHO                                    :  0.100E+01*SUN;
+{ 75988} GAG501h+HV               =       G3A3003 +      GGD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 75989} GAG501h+HV               =       G1A509l +      GNO2                                   :  0.100E+01*SUN;
+{ 75990} GAG501h+HV               =       GAH400u +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 75991} G1A509l                     =       G3A3003 +      GGD2000                                : ARR( 0.200E+15,  6105., 0.0);
+{ 75992} G1A509l                     =       GAH400u +      GCO     +      GHO2                    : ARR( 0.200E+15,  6793., 0.0);
+{ 75993} GAG501i +GHO                =       GAG501g +      GHO                                    : ARR( 0.117E-10,     0., 0.0);
+{ 75994} GAG501i +GHO                =       G2A505y                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 75995} GAG501i +GHO                =       G3A501z                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 75996} GAG501i+HV               =       G1A508L +      GHO                                    :  0.100E+01*SUN;
+{ 75997} GAG501i+HV               =       G3A3003 +      GCO     +      GHO2    +      GCO      :  0.100E+01*SUN;
+{ 75998} GAG501i+HV               =       GAA400A +      GCO2                                   :  0.100E+01*SUN;
+{ 75999} G3A501z +GHO2               =  0.800GAG501i + 0.200GAA500y + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 76000} G3A501z +GNO                =       G3A3003 +      GNO2    +      GCO2    +      GCO      : ARR( 0.810E-11,  -270., 0.0);
+{ 76001} G3A501z +GNO2               =       GPA501m                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 76002} G3A501z +GNO3               =       G3A3003 +      GNO2    +      GCO2    +      GCO      : ARR( 0.500E-11,     0., 0.0);
+{ 76003} G3A501z +MEPERO             =  0.685G3A3003 + 0.315GAA500y + 0.685GCO2    + 0.685GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 76004} G3A501z +PERO1              =  0.800G3A3003 + 0.200GAA500y + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 76005} G3A501z +PERO2              =  0.750G3A3003 + 0.250GAA500y + 0.750GCO2    + 0.750GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 76006} G3A501z +PERO3              =  0.800G3A3003 + 0.200GAA500y + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 76007} G3A501z +PERO5              =  0.650G3A3003 + 0.350GAA500y + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 76008} G3A501z +PERO6              =  0.650G3A3003 + 0.350GAA500y + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 76009} G3A501z +PERO9              =       G3A3003 +      GCO2    +      GCO                     : ARR( 0.500E-11,  -500., 0.0);
+{ 76010} GPG501b                     =       G3G501U +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 76011} GPG501b +GHO                =       G3P501P                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 76012} GPG501b+HV               =       GPN400b +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 76013} GPG501b+HV               =       G1P509C +      GNO2                                   :  0.100E+01*SUN;
+{ 76014} GPG501b+HV               =       G3G3001 +      GPD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 76015} GPG501b+HV               =       G1P509A +      GNO2                                   :  0.100E+01*SUN;
+{ 76016} GPG501b+HV               =       G3G501U +      GNO2                                   :  0.100E+01*SUN;
+{ 76017} GPG501c                     =       G3G501q +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 76018} GPG501c +GHO                =       GPG501d +      GHO                                    : ARR( 0.154E-10,     0., 0.0);
+{ 76019} GPG501c +GHO                =       G3P501Q                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 76020} GPG501c +GHO                =       G2P506S                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 76021} GPG501c+HV               =       GPH400v +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 76022} GPG501c+HV               =       G1P50Aw +      GNO2                                   :  0.100E+01*SUN;
+{ 76023} GPG501c+HV               =       G3G3001 +      GPD2000 +      GHO                     :  0.100E+01*SUN;
+{ 76024} GPG501c+HV               =       G1P509A +      GHO                                    :  0.100E+01*SUN;
+{ 76025} GPG501c+HV               =       G3G501q +      GNO2                                   :  0.100E+01*SUN;
+{ 76026} G1P50Aw                     =       GCO     +      GPH400v +      GHO2                    : ARR( 0.200E+15,  6793., 0.0);
+{ 76027} G1P50Aw                     =       GGD2000 +      G3P3003                                : ARR( 0.200E+15,  6105., 0.0);
+{ 76028} GPG501d                     =       G3G501r +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 76029} GPG501d +GHO                =       G3P501S                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 76030} GPG501d+HV               =       GPD4008 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 76031} GPG501d+HV               =       G1P509D +      GNO2                                   :  0.100E+01*SUN;
+{ 76032} GPG501d+HV               =       G3G3001 +      GCO     +      GNO2    +      GCO      :  0.100E+01*SUN;
+{ 76033} GPG501d+HV               =       G3G3001 +      GCO     +      GCO     +      GNO2     :  0.100E+01*SUN;
+{ 76034} GPG501e                     =       G3G501X +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 76035} GPG501e +GHO                =       G3P501u                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 76036} GPG501e+HV               =       GPA400E +      GCO2                                   :  0.100E+01*SUN;
+{ 76037} GPG501e+HV               =       GCO     +      G3P3001 +      GHO2    +      GCO      :  0.100E+01*SUN;
+{ 76038} GPG501e+HV               =       G1P509B +      GNO2                                   :  0.100E+01*SUN;
+{ 76039} GPG501e+HV               =       G3G501X +      GNO2                                   :  0.100E+01*SUN;
+{ 76040} G3P501u +GHO2               =  0.800GPG501e + 0.200GPA501i + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 76041} G3P501u +GNO                =       G3P3001 +      GNO2    +      GCO2    +      GCO      : ARR( 0.810E-11,  -270., 0.0);
+{ 76042} G3P501u +GNO2               =       GPP500x                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 76043} G3P501u +GNO3               =       G3P3001 +      GNO2    +      GCO2    +      GCO      : ARR( 0.500E-11,     0., 0.0);
+{ 76044} G3P501u +MEPERO             =  0.685G3P3001 + 0.315GPA501i + 0.685GCO2    + 0.685GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 76045} G3P501u +PERO1              =  0.800G3P3001 + 0.200GPA501i + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 76046} G3P501u +PERO2              =  0.750G3P3001 + 0.250GPA501i + 0.750GCO2    + 0.750GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 76047} G3P501u +PERO3              =  0.800G3P3001 + 0.200GPA501i + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 76048} G3P501u +PERO5              =  0.650G3P3001 + 0.350GPA501i + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 76049} G3P501u +PERO6              =  0.650G3P3001 + 0.350GPA501i + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 76050} G3P501u +PERO9              =       G3P3001 +      GCO2    +      GCO                     : ARR( 0.500E-11,  -500., 0.0);
+{ 76051} GPG501f                     =       G3G501n +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 76052} GPG501f +GHO                =       GPG501g +      GHO                                    : ARR( 0.153E-10,     0., 0.0);
+{ 76053} GPG501f +GHO                =       G3P501v                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 76054} GPG501f +GHO                =       G2P506T                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 76055} GPG501f+HV               =       GPA400J +      GCO2                                   :  0.100E+01*SUN;
+{ 76056} GPG501f+HV               =       GCO     +      G3P3003 +      GHO2    +      GCO      :  0.100E+01*SUN;
+{ 76057} GPG501f+HV               =       G1P509B +      GHO                                    :  0.100E+01*SUN;
+{ 76058} GPG501f+HV               =       G3G501n +      GNO2                                   :  0.100E+01*SUN;
+{ 76059} G3P501v +GHO2               =  0.800GPG501f + 0.200GPA501j + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 76060} G3P501v +GNO                =       G3P3003 +      GNO2    +      GCO2    +      GCO      : ARR( 0.810E-11,  -270., 0.0);
+{ 76061} G3P501v +GNO2               =       GPP500y                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 76062} G3P501v +GNO3               =       G3P3003 +      GNO2    +      GCO2    +      GCO      : ARR( 0.500E-11,     0., 0.0);
+{ 76063} G3P501v +MEPERO             =  0.685G3P3003 + 0.315GPA501j + 0.685GCO2    + 0.685GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 76064} G3P501v +PERO1              =  0.800G3P3003 + 0.200GPA501j + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 76065} G3P501v +PERO2              =  0.750G3P3003 + 0.250GPA501j + 0.750GCO2    + 0.750GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 76066} G3P501v +PERO3              =  0.800G3P3003 + 0.200GPA501j + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 76067} G3P501v +PERO5              =  0.650G3P3003 + 0.350GPA501j + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 76068} G3P501v +PERO6              =  0.650G3P3003 + 0.350GPA501j + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 76069} G3P501v +PERO9              =       G3P3003 +      GCO2    +      GCO                     : ARR( 0.500E-11,  -500., 0.0);
+{ 76070} GPG501g                     =       G3G501t +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 76071} GPG501g +GHO                =       G3P501w                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 76072} GPG501g+HV               =       GPA400K +      GCO2                                   :  0.100E+01*SUN;
+{ 76073} GPG501g+HV               =  2.000GCO     +      GHO2    +      GNO2    + 3.000GCO      :  0.100E+01*SUN;
+{ 76074} GPG501g+HV               =  2.000GCO     +      GHO2    +      GNO2    + 3.000GCO      :  0.100E+01*SUN;
+{ 76075} GPG501g+HV               =  2.000GCO     +      GHO2    +      GNO2    + 3.000GCO      :  0.100E+01*SUN;
+{ 76076} G3P501w +GHO2               =  0.800GPG501g + 0.200GPA501k + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 76077} G3P501w +GNO                =       GCO     + 2.000GNO2    +      GCO2    + 3.000GCO      : ARR( 0.810E-11,  -270., 0.0);
+{ 76078} G3P501w +GNO2               =       GPP500z                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 76079} G3P501w +GNO3               =       GCO     + 2.000GNO2    +      GCO2    + 3.000GCO      : ARR( 0.500E-11,     0., 0.0);
+{ 76080} G3P501w +MEPERO             =  1.370GCO     + 0.630GPA501k + 1.370GNO2    + 1.370GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 76081} G3P501w +MEPERO             =  4.110GCO                                                   : ARR( 0.500E-11,     0., 0.0);
+{ 76082} G3P501w +PERO1              =  1.600GCO     + 0.400GPA501k + 1.600GNO2    + 1.600GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 76083} G3P501w +PERO1              =  4.800GCO                                                   : ARR( 0.500E-11,     0., 0.0);
+{ 76084} G3P501w +PERO2              =  1.500GCO     + 0.500GPA501k + 1.500GNO2    + 1.500GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 76085} G3P501w +PERO2              =  4.500GCO                                                   : ARR( 0.500E-11,     0., 0.0);
+{ 76086} G3P501w +PERO3              =  1.600GCO     + 0.400GPA501k + 1.600GNO2    + 1.600GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 76087} G3P501w +PERO3              =  4.800GCO                                                   : ARR( 0.500E-11,     0., 0.0);
+{ 76088} G3P501w +PERO5              =  1.300GCO     + 0.700GPA501k + 1.300GNO2    + 1.300GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 76089} G3P501w +PERO5              =  3.900GCO                                                   : ARR( 0.500E-11,     0., 0.0);
+{ 76090} G3P501w +PERO6              =  1.300GCO     + 0.700GPA501k + 1.300GNO2    + 1.300GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 76091} G3P501w +PERO6              =  3.900GCO                                                   : ARR( 0.500E-11,     0., 0.0);
+{ 76092} G3P501w +PERO9              =       GCO     +      GNO2    +      GCO2    + 3.000GCO      : ARR( 0.500E-11,  -500., 0.0);
+{ 76093} GPG501h                     =       G3G501W +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 76094} GPG501h +GHO                =       GPG501e +      GHO                                    : ARR( 0.154E-10,     0., 0.0);
+{ 76095} GPG501h +GHO                =       G3P501T                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 76096} GPG501h +GHO                =       G2P506U                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 76097} GPG501h+HV               =       GPN400b +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 76098} GPG501h+HV               =       G1P509C +      GHO                                    :  0.100E+01*SUN;
+{ 76099} GPG501h+HV               =       G3G3003 +      GPD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 76100} GPG501h+HV               =       G1P50Ax +      GNO2                                   :  0.100E+01*SUN;
+{ 76101} GPG501h+HV               =       G3G501W +      GNO2                                   :  0.100E+01*SUN;
+{ 76102} G1P50Ax                     =       G3G3003 +      GPD2000                                : ARR( 0.200E+15,  6105., 0.0);
+{ 76103} G1P50Ax                     =       GGH400s +      GCO     +      GNO2                    : ARR( 0.200E+15,  6793., 0.0);
+{ 76104} GPG501i                     =       G3G501s +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 76105} GPG501i +GHO                =       GPG501g +      GHO                                    : ARR( 0.153E-10,     0., 0.0);
+{ 76106} GPG501i +GHO                =       G3P501U                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 76107} GPG501i +GHO                =       G2P506W                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 76108} GPG501i+HV               =       GPD4008 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 76109} GPG501i+HV               =       G1P509D +      GHO                                    :  0.100E+01*SUN;
+{ 76110} GPG501i+HV               =       G3G3003 +      GCO     +      GNO2    +      GCO      :  0.100E+01*SUN;
+{ 76111} GPG501i+HV               =       G3G3003 +      GCO     +      GCO     +      GNO2     :  0.100E+01*SUN;
+{ 76112} GAA500v +GHO                =       GAA500x +      GNO2                                   : ARR( 0.648E-13,     0., 0.0);
+{ 76113} GAA500v +GHO                =       GAN400b +      GNO2    +      GCO2                    : ARR( 0.104E-11,     0., 0.0);
+{ 76114} GAA500v+HV               =       G1A508M +      GNO2                                   :  0.200E+01*SUN;
+{ 76115} GAA500v+HV               =       G3A3001 +      GAD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 76116} GAA500w +GHO                =       GAA500x +      GHO                                    : ARR( 0.122E-10,     0., 0.0);
+{ 76117} GAA500w +GHO                =       G2A505z                                               : ARR( 0.204E-11,  -190., 0.0);
+{ 76118} GAA500w+HV               =       G1A509m +      GNO2                                   :  0.100E+01*SUN;
+{ 76119} GAA500w+HV               =       G3A3001 +      GAD2000 +      GHO                     :  0.100E+01*SUN;
+{ 76120} GAA500w+HV               =       G1A508M +      GHO                                    :  0.100E+01*SUN;
+{ 76121} G1A509m                     =       G3A3003 +      GAD2000                                : ARR( 0.200E+15,  6105., 0.0);
+{ 76122} G1A509m                     =       GAH400u +      GCO     +      GHO                     : ARR( 0.200E+15,  6762., 0.0);
+{ 76123} GAA500x +GHO                =       G3A3001 +      GCO2    +      GCO                     : ARR( 0.536E-12,     0., 0.0);
+{ 76124} GAA500x +GHO                =       GAD4008 +      GNO2    +      GCO2                    : ARR( 0.536E-12,     0., 0.0);
+{ 76125} GAA500x+HV               =       GAN400b +      GCO2                                   :  0.100E+01*SUN;
+{ 76126} GAA500x+HV               =       GCO     +      G3A3001 +      GHO     +      GCO      :  0.100E+01*SUN;
+{ 76127} GAA500x+HV               =       G1A508N +      GNO2                                   :  0.100E+01*SUN;
+{ 76128} GAA500y +GHO                =       GAA500z +      GHO                                    : ARR( 0.121E-10,     0., 0.0);
+{ 76129} GAA500y +GHO                =       G2A5061                                               : ARR( 0.203E-11,  -190., 0.0);
+{ 76130} GAA500y+HV               =       GAH400u +      GCO2                                   :  0.100E+01*SUN;
+{ 76131} GAA500y+HV               =       GCO     +      G3A3003 +      GHO     +      GCO      :  0.100E+01*SUN;
+{ 76132} GAA500y+HV               =       G1A508N +      GHO                                    :  0.100E+01*SUN;
+{ 76133} GAA500z +GHO                =       GCO     +      GHO     +      GCO2    + 3.000GCO      : ARR( 0.104E-11,     0., 0.0);
+{ 76134} GAA500z+HV               =       GAD4008 +      GCO2                                   :  0.200E+01*SUN;
+{ 76135} GAA500z+HV               =  2.000GCO     + 2.000GHO     + 3.000GCO                     :  0.200E+01*SUN;
+{ 76136} GPA501f                     =       G3A501P +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 76137} GPA501f +GHO                =       GPA501i +      GNO2                                   : ARR( 0.324E-13,     0., 0.0);
+{ 76138} GPA501f +GHO                =       GPA501h +      GNO2                                   : ARR( 0.438E-13,     0., 0.0);
+{ 76139} GPA501f +GHO                =       GPN400b +      GNO2    +      GCO2                    : ARR( 0.520E-12,     0., 0.0);
+{ 76140} GPA501f+HV               =       G1P509G +      GNO2                                   :  0.100E+01*SUN;
+{ 76141} GPA501f+HV               =       G3A3001 +      GPD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 76142} GPA501f+HV               =       G1P509E +      GNO2                                   :  0.100E+01*SUN;
+{ 76143} GPA501f+HV               =       G3A501P +      GNO2                                   :  0.100E+01*SUN;
+{ 76144} GPA501g                     =       G3A501R +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 76145} GPA501g +GHO                =       GPA501h +      GHO                                    : ARR( 0.158E-10,     0., 0.0);
+{ 76146} GPA501g +GHO                =       G2P506X                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 76147} GPA501g+HV               =       G1P50Ay +      GNO2                                   :  0.100E+01*SUN;
+{ 76148} GPA501g+HV               =       G3A3001 +      GPD2000 +      GHO                     :  0.100E+01*SUN;
+{ 76149} GPA501g+HV               =       G1P509E +      GHO                                    :  0.100E+01*SUN;
+{ 76150} GPA501g+HV               =       G3A501R +      GNO2                                   :  0.100E+01*SUN;
+{ 76151} G1P50Ay                     =       GCO     +      GPH400v +      GHO                     : ARR( 0.200E+15,  6762., 0.0);
+{ 76152} G1P50Ay                     =       GAD2000 +      G3P3003                                : ARR( 0.200E+15,  6105., 0.0);
+{ 76153} GPA501h                     =       G3A501x +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 76154} GPA501h +GHO                =       GPA501k +      GNO2                                   : ARR( 0.324E-13,     0., 0.0);
+{ 76155} GPA501h +GHO                =       GPD4008 +      GNO2    +      GCO2                    : ARR( 0.520E-12,     0., 0.0);
+{ 76156} GPA501h+HV               =       G1P509H +      GNO2                                   :  0.100E+01*SUN;
+{ 76157} GPA501h+HV               =       G3A3001 +      GCO     +      GNO2    +      GCO      :  0.100E+01*SUN;
+{ 76158} GPA501h+HV               =       G3A3001 +      GCO     +      GCO     +      GNO2     :  0.100E+01*SUN;
+{ 76159} GPA501i                     =       G3A501Q +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 76160} GPA501i +GHO                =       GPA501k +      GNO2                                   : ARR( 0.438E-13,     0., 0.0);
+{ 76161} GPA501i +GHO                =       G3P3001 +      GCO2    +      GCO                     : ARR( 0.520E-12,     0., 0.0);
+{ 76162} GPA501i+HV               =       GPN400b +      GCO2                                   :  0.100E+01*SUN;
+{ 76163} GPA501i+HV               =       GCO     +      G3P3001 +      GHO     +      GCO      :  0.100E+01*SUN;
+{ 76164} GPA501i+HV               =       G1P509F +      GNO2                                   :  0.100E+01*SUN;
+{ 76165} GPA501i+HV               =       G3A501Q +      GNO2                                   :  0.100E+01*SUN;
+{ 76166} GPA501j                     =       G3A501S +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 76167} GPA501j +GHO                =       GPA501k +      GHO                                    : ARR( 0.157E-10,     0., 0.0);
+{ 76168} GPA501j +GHO                =       G2P506Y                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 76169} GPA501j+HV               =       GPH400v +      GCO2                                   :  0.100E+01*SUN;
+{ 76170} GPA501j+HV               =       GCO     +      G3P3003 +      GHO     +      GCO      :  0.100E+01*SUN;
+{ 76171} GPA501j+HV               =       G1P509F +      GHO                                    :  0.100E+01*SUN;
+{ 76172} GPA501j+HV               =       G3A501S +      GNO2                                   :  0.100E+01*SUN;
+{ 76173} GPA501k                     =       G3A501y +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 76174} GPA501k +GHO                =       GCO     +      GNO2    +      GCO2    + 3.000GCO      : ARR( 0.520E-12,     0., 0.0);
+{ 76175} GPA501k+HV               =       GPD4008 +      GCO2                                   :  0.100E+01*SUN;
+{ 76176} GPA501k+HV               =  2.000GCO     +      GHO     +      GNO2    + 3.000GCO      :  0.100E+01*SUN;
+{ 76177} GPA501k+HV               =  2.000GCO     +      GHO     +      GNO2    + 3.000GCO      :  0.100E+01*SUN;
+{ 76178} GPA501k+HV               =  2.000GCO     +      GHO     +      GNO2    + 3.000GCO      :  0.100E+01*SUN;
+{ 76179} GPA501l                     =       G3A501k +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 76180} GPA501l +GHO                =       GPA501i +      GHO                                    : ARR( 0.118E-10,     0., 0.0);
+{ 76181} GPA501l +GHO                =       G2P506Z                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 76182} GPA501l+HV               =       G1P509G +      GHO                                    :  0.100E+01*SUN;
+{ 76183} GPA501l+HV               =       G3A3003 +      GPD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 76184} GPA501l+HV               =       G1P50Az +      GNO2                                   :  0.100E+01*SUN;
+{ 76185} GPA501l+HV               =       G3A501k +      GNO2                                   :  0.100E+01*SUN;
+{ 76186} G1P50Az                     =       G3A3003 +      GPD2000                                : ARR( 0.200E+15,  6105., 0.0);
+{ 76187} G1P50Az                     =       GAH400u +      GCO     +      GNO2                    : ARR( 0.200E+15,  6793., 0.0);
+{ 76188} GPA501m                     =       G3A501z +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 76189} GPA501m +GHO                =       GPA501k +      GHO                                    : ARR( 0.117E-10,     0., 0.0);
+{ 76190} GPA501m +GHO                =       G2P506a                                               : ARR( 0.197E-11,  -190., 0.0);
+{ 76191} GPA501m+HV               =       G1P509H +      GHO                                    :  0.100E+01*SUN;
+{ 76192} GPA501m+HV               =       G3A3003 +      GCO     +      GNO2    +      GCO      :  0.100E+01*SUN;
+{ 76193} GPA501m+HV               =       G3A3003 +      GCO     +      GCO     +      GNO2     :  0.100E+01*SUN;
+{ 76194} GPP500v                     =       G3P501P +      GNO2                                   : ARR( 0.400E+16, 12800., 0.0);
+{ 76195} GPP500v +GHO                =       GPP500x +      GNO2                                   : ARR( 0.876E-13,     0., 0.0);
+{ 76196} GPP500v+HV               =       G3P501P +      GNO2                                   :  0.200E+01*SUN;
+{ 76197} GPP500v+HV               =       G1P509I +      GNO2                                   :  0.200E+01*SUN;
+{ 76198} GPP500v+HV               =       G3P3001 +      GPD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 76199} GPP500w                     =       G3P501Q +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 76200} GPP500w                     =       G3P501T +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 76201} GPP500w +GHO                =       GPP500x +      GHO                                    : ARR( 0.154E-10,     0., 0.0);
+{ 76202} GPP500w +GHO                =       G2P506b                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 76203} GPP500w+HV               =       G3P501Q +      GNO2                                   :  0.100E+01*SUN;
+{ 76204} GPP500w+HV               =       G1P50B1 +      GNO2                                   :  0.100E+01*SUN;
+{ 76205} GPP500w+HV               =       G3P3001 +      GPD2000 +      GHO                     :  0.100E+01*SUN;
+{ 76206} GPP500w+HV               =       G1P509I +      GHO                                    :  0.100E+01*SUN;
+{ 76207} GPP500w+HV               =       G3P501T +      GNO2                                   :  0.100E+01*SUN;
+{ 76208} G1P50B1                     =       G3P3003 +      GPD2000                                : ARR( 0.200E+15,  6105., 0.0);
+{ 76209} G1P50B1                     =       GPH400v +      GCO     +      GNO2                    : ARR( 0.200E+15,  6793., 0.0);
+{ 76210} GPP500x                     =       G3P501u +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 76211} GPP500x                     =       G3P501S +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 76212} GPP500x +GHO                =       GPP500z +      GNO2                                   : ARR( 0.438E-13,     0., 0.0);
+{ 76213} GPP500x+HV               =       G3P3001 +      GCO     +      GCO     +      GNO2     :  0.100E+01*SUN;
+{ 76214} GPP500x+HV               =       GCO     +      G3P3001 +      GNO2    +      GCO      :  0.100E+01*SUN;
+{ 76215} GPP500x+HV               =       G1P509J +      GNO2                                   :  0.100E+01*SUN;
+{ 76216} GPP500x+HV               =       G3P501S +      GNO2                                   :  0.100E+01*SUN;
+{ 76217} GPP500y                     =       G3P501v +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 76218} GPP500y                     =       G3P501U +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 76219} GPP500y +GHO                =       GPP500z +      GHO                                    : ARR( 0.153E-10,     0., 0.0);
+{ 76220} GPP500y +GHO                =       G2P506c                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 76221} GPP500y+HV               =       G3P3003 +      GCO     +      GCO     +      GNO2     :  0.100E+01*SUN;
+{ 76222} GPP500y+HV               =       GCO     +      G3P3003 +      GNO2    +      GCO      :  0.100E+01*SUN;
+{ 76223} GPP500y+HV               =       G1P509J +      GHO                                    :  0.100E+01*SUN;
+{ 76224} GPP500y+HV               =       G3P501U +      GNO2                                   :  0.100E+01*SUN;
+{ 76225} GPP500z                     =       G3P501w +      GNO2                                   : ARR( 0.400E+16, 12800., 0.0);
+{ 76226} GPP500z+HV               =  2.000GCO     + 2.000GNO2    + 3.000GCO                     :  0.200E+01*SUN;
+{ 76227} GPP500z+HV               =  2.000GCO     + 2.000GNO2    + 3.000GCO                     :  0.200E+01*SUN;
+{ 76228} GGH505Z +GHO                =       GGH505A +      GHO                                    : ARR( 0.322E-11,     0., 0.0);
+{ 76229} GGH505Z +GHO                =       GGH505X +      GHO                                    : ARR( 0.154E-10,     0., 0.0);
+{ 76230} GGH505Z +GHO                =       G2G5067                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 76231} GGH505Z +GHO                =       G2G5068                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 76232} GGH505Z +GHO                =       G3H505M                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 76233} GGH505Z+HV               =       G1G506K +      GHO                                    :  0.100E+01*SUN;
+{ 76234} GGH505Z+HV               =       G1G508c +      GNO2                                   :  0.100E+01*SUN;
+{ 76235} GGH505Z+HV               =       G3H3005 +      GGD2000 +      GHO                     :  0.100E+01*SUN;
+{ 76236} GGH505Z+HV               =       G1G508I +      GHO                                    :  0.100E+01*SUN;
+{ 76237} GGH505Z+HV               =       GHN401C +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 76238} G2G5067 +GNO                =       G1G506K +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 76239} G2G5067 +GNO                =       GGH503Y                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 76240} G2G5067 +GHO2               =       GGH505Z                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 76241} G2G5067 +GNO3               =       G1G506K +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 76242} G2G5067 +MEPERO             =  0.480G1G506K + 0.260GGH503Z + 0.260GGH505A                 : ARR( 0.164E-12,  -795., 0.0);
+{ 76243} G2G5067 +PERO1              =  0.600G1G506K + 0.200GGH503Z + 0.200GGH505A                 : ARR( 0.126E-12,  -850., 0.0);
+{ 76244} G2G5067 +PERO2              =  0.560G1G506K + 0.220GGH503Z + 0.220GGH505A                 : ARR( 0.471E-13, -1350., 0.0);
+{ 76245} G2G5067 +PERO3              =  0.600G1G506K + 0.200GGH503Z + 0.200GGH505A                 : ARR( 0.142E-12, -1200., 0.0);
+{ 76246} G2G5067 +PERO5              =  0.600G1G506K + 0.200GGH503Z + 0.200GGH505A                 : ARR( 0.533E-11,   500., 0.0);
+{ 76247} G2G5067 +PERO6              =  0.460G1G506K + 0.270GGH503Z + 0.270GGH505A                 : ARR( 0.488E-13, -1250., 0.0);
+{ 76248} G2G5067 +PERO9              =  0.800G1G506K + 0.200GGH505A                                : ARR( 0.100E-10,     0., 0.0);
+{ 76249} G2G5068 +GNO                =       G1G508I +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 76250} G2G5068 +GNO                =       GGH505D                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 76251} G2G5068 +GHO2               =       GGH505Z                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 76252} G2G5068 +GNO3               =       G1G508I +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 76253} G2G5068 +MEPERO             =  0.340G1G508I + 0.330GGH505N + 0.330GGH505X                 : ARR( 0.565E-13,  -845., 0.0);
+{ 76254} G2G5068 +PERO1              =  0.460G1G508I + 0.270GGH505N + 0.270GGH505X                 : ARR( 0.434E-13,  -900., 0.0);
+{ 76255} G2G5068 +PERO2              =  0.400G1G508I + 0.300GGH505N + 0.300GGH505X                 : ARR( 0.162E-13, -1400., 0.0);
+{ 76256} G2G5068 +PERO3              =  0.460G1G508I + 0.270GGH505N + 0.270GGH505X                 : ARR( 0.488E-13, -1250., 0.0);
+{ 76257} G2G5068 +PERO5              =  0.460G1G508I + 0.270GGH505N + 0.270GGH505X                 : ARR( 0.183E-11,   450., 0.0);
+{ 76258} G2G5068 +PERO6              =  0.300G1G508I + 0.350GGH505N + 0.350GGH505X                 : ARR( 0.168E-13, -1300., 0.0);
+{ 76259} G2G5068 +PERO9              =  0.650G1G508I + 0.350GGH505X                                : ARR( 0.100E-10,     0., 0.0);
+{ 76260} G1G508c                     =       GHD2000 +      G3G3003                                : ARR( 0.200E+15,  3778., 0.0);
+{ 76261} GAH505d +GHO                =       GAH504r +      GHO                                    : ARR( 0.116E-10,     0., 0.0);
+{ 76262} GAH505d +GHO                =       GAH505I +      GHO                                    : ARR( 0.330E-11,     0., 0.0);
+{ 76263} GAH505d +GHO                =       G2A507E                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 76264} GAH505d +GHO                =       G2A507F                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 76265} GAH505d+HV               =       G1A508O +      GHO                                    :  0.100E+01*SUN;
+{ 76266} GAH505d+HV               =       G3A3003 +      GHD2000 +      GNO2                    :  0.100E+01*SUN;
+{ 76267} GAH505d+HV               =       G1A509n +      GNO2                                   :  0.100E+01*SUN;
+{ 76268} GAH505d+HV               =       G1A506e +      GHO                                    :  0.100E+01*SUN;
+{ 76269} G2A507E +GNO                =       G1A508O +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 76270} G2A507E +GNO                =       GAH504q                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 76271} G2A507E +GHO2               =       GAH505d                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 76272} G2A507E +GNO3               =       G1A508O +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 76273} G2A507E +MEPERO             =  0.340G1A508O + 0.330GAH505Q + 0.330GAH504r                 : ARR( 0.565E-13,  -845., 0.0);
+{ 76274} G2A507E +PERO1              =  0.460G1A508O + 0.270GAH505Q + 0.270GAH504r                 : ARR( 0.434E-13,  -900., 0.0);
+{ 76275} G2A507E +PERO2              =  0.400G1A508O + 0.300GAH505Q + 0.300GAH504r                 : ARR( 0.162E-13, -1400., 0.0);
+{ 76276} G2A507E +PERO3              =  0.460G1A508O + 0.270GAH505Q + 0.270GAH504r                 : ARR( 0.488E-13, -1250., 0.0);
+{ 76277} G2A507E +PERO5              =  0.460G1A508O + 0.270GAH505Q + 0.270GAH504r                 : ARR( 0.183E-11,   450., 0.0);
+{ 76278} G2A507E +PERO6              =  0.300G1A508O + 0.350GAH505Q + 0.350GAH504r                 : ARR( 0.168E-13, -1300., 0.0);
+{ 76279} G2A507E +PERO9              =  0.650G1A508O + 0.350GAH504r                                : ARR( 0.100E-10,     0., 0.0);
+{ 76280} G2A507F +GNO                =       G1A506e +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 76281} G2A507F +GNO                =       GAH503T                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 76282} G2A507F +GHO2               =       GAH505d                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 76283} G2A507F +GNO3               =       G1A506e +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 76284} G2A507F +MEPERO             =  0.480G1A506e + 0.260GAH503U + 0.260GAH505I                 : ARR( 0.164E-12,  -795., 0.0);
+{ 76285} G2A507F +PERO1              =  0.600G1A506e + 0.200GAH503U + 0.200GAH505I                 : ARR( 0.126E-12,  -850., 0.0);
+{ 76286} G2A507F +PERO2              =  0.560G1A506e + 0.220GAH503U + 0.220GAH505I                 : ARR( 0.471E-13, -1350., 0.0);
+{ 76287} G2A507F +PERO3              =  0.600G1A506e + 0.200GAH503U + 0.200GAH505I                 : ARR( 0.142E-12, -1200., 0.0);
+{ 76288} G2A507F +PERO5              =  0.600G1A506e + 0.200GAH503U + 0.200GAH505I                 : ARR( 0.533E-11,   500., 0.0);
+{ 76289} G2A507F +PERO6              =  0.460G1A506e + 0.270GAH503U + 0.270GAH505I                 : ARR( 0.488E-13, -1250., 0.0);
+{ 76290} G2A507F +PERO9              =  0.800G1A506e + 0.200GAH505I                                : ARR( 0.100E-10,     0., 0.0);
+{ 76291} G1A509n                     =       G3A3003 +      GHD2000                                : ARR( 0.200E+15,  3778., 0.0);
+{ 76292} GGH505a +GHO                =       GGN502l +      GHO                                    : ARR( 0.167E-10,     0., 0.0);
+{ 76293} GGH505a +GHO                =       G3G501q                                               : ARR( 0.717E-10,     0., 0.0);
+{ 76294} GGH505a +GNO3               =       G3G501q +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 76295} GGH505a+HV               =       GHD400K +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 76296} GGH505a+HV               =       G1G508T +      GNO2                                   :  0.100E+01*SUN;
+{ 76297} GGH505a+HV               =       G3G3001 +      GDD2000 +      GHO                     :  0.100E+01*SUN;
+{ 76298} GGH505a+HV               =       G1G5087 +      GHO                                    :  0.100E+01*SUN;
+{ 76299} GGH505a+HV               =       GGN400Z +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 76300} GAG501j +GHO                =       GAG501b +      GHO                                    : ARR( 0.167E-11,     0., 0.0);
+{ 76301} GAG501j +GHO                =       G2A507G                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 76302} GAG501j +GHO                =       G3A501a                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 76303} GAG501j +GHO                =       GGH400o +      GNO2    +      GCO2                    : ARR( 0.527E-12,     0., 0.0);
+{ 76304} GAG501j+HV               =       G1A509o +      GNO2                                   :  0.100E+01*SUN;
+{ 76305} GAG501j+HV               =       G1A509d +      GHO                                    :  0.100E+01*SUN;
+{ 76306} GAG501j+HV               =       G1A508Y +      GNO2                                   :  0.100E+01*SUN;
+{ 76307} GAG501j+HV               =       GAH400r +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 76308} G2A507G +GNO                =       G1A509d +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 76309} G2A507G +GNO                =       GAG501T                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 76310} G2A507G +GHO2               =       GAG501j                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 76311} G2A507G +GNO3               =       G1A509d +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 76312} G2A507G +MEPERO             =  0.340G1A509d + 0.330GAG501m + 0.330GAG501b                 : ARR( 0.565E-13,  -845., 0.0);
+{ 76313} G2A507G +PERO1              =  0.460G1A509d + 0.270GAG501m + 0.270GAG501b                 : ARR( 0.434E-13,  -900., 0.0);
+{ 76314} G2A507G +PERO2              =  0.400G1A509d + 0.300GAG501m + 0.300GAG501b                 : ARR( 0.162E-13, -1400., 0.0);
+{ 76315} G2A507G +PERO3              =  0.460G1A509d + 0.270GAG501m + 0.270GAG501b                 : ARR( 0.488E-13, -1250., 0.0);
+{ 76316} G2A507G +PERO5              =  0.460G1A509d + 0.270GAG501m + 0.270GAG501b                 : ARR( 0.183E-11,   450., 0.0);
+{ 76317} G2A507G +PERO6              =  0.300G1A509d + 0.350GAG501m + 0.350GAG501b                 : ARR( 0.168E-13, -1300., 0.0);
+{ 76318} G2A507G +PERO9              =  0.650G1A509d + 0.350GAG501b                                : ARR( 0.100E-10,     0., 0.0);
+{ 76319} G1A509o                     =       GCO     +      GGH400o +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 76320} GAG501k +GHO                =       GAG501c +      GHO                                    : ARR( 0.835E-11,     0., 0.0);
+{ 76321} GAG501k +GHO                =       GAG501l +      GHO                                    : ARR( 0.255E-10,     0., 0.0);
+{ 76322} GAG501k +GHO                =       G2A507H                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 76323} GAG501k +GHO                =       G2A5062                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 76324} GAG501k +GHO                =       G3A501b                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 76325} GAG501k+HV               =       G1A509p +      GNO2                                   :  0.100E+01*SUN;
+{ 76326} GAG501k+HV               =       G1A509i +      GHO                                    :  0.100E+01*SUN;
+{ 76327} GAG501k+HV               =       G1A508Y +      GHO                                    :  0.100E+01*SUN;
+{ 76328} GAG501k+HV               =       GAH400r +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 76329} G2A507H +GNO                =       G1A509i +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 76330} G2A507H +GNO                =       GAG501W                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 76331} G2A507H +GHO2               =       GAG501k                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 76332} G2A507H +GNO3               =       G1A509i +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 76333} G2A507H +MEPERO             =  0.340G1A509i + 0.330GAG501n + 0.330GAG501c                 : ARR( 0.565E-13,  -845., 0.0);
+{ 76334} G2A507H +PERO1              =  0.460G1A509i + 0.270GAG501n + 0.270GAG501c                 : ARR( 0.434E-13,  -900., 0.0);
+{ 76335} G2A507H +PERO2              =  0.400G1A509i + 0.300GAG501n + 0.300GAG501c                 : ARR( 0.162E-13, -1400., 0.0);
+{ 76336} G2A507H +PERO3              =  0.460G1A509i + 0.270GAG501n + 0.270GAG501c                 : ARR( 0.488E-13, -1250., 0.0);
+{ 76337} G2A507H +PERO5              =  0.460G1A509i + 0.270GAG501n + 0.270GAG501c                 : ARR( 0.183E-11,   450., 0.0);
+{ 76338} G2A507H +PERO6              =  0.300G1A509i + 0.350GAG501n + 0.350GAG501c                 : ARR( 0.168E-13, -1300., 0.0);
+{ 76339} G2A507H +PERO9              =  0.650G1A509i + 0.350GAG501c                                : ARR( 0.100E-10,     0., 0.0);
+{ 76340} G1A509p                     =       GCO     +      GGH400v +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 76341} GAG501l +GHO                =       GAG501d +      GHO                                    : ARR( 0.531E-11,     0., 0.0);
+{ 76342} GAG501l +GHO                =       G2A507I                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 76343} GAG501l +GHO                =       G3A5021                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 76344} GAG501l+HV               =       G1A508y +      GNO2                                   :  0.100E+01*SUN;
+{ 76345} GAG501l+HV               =       G1A509q +      GHO                                    :  0.100E+01*SUN;
+{ 76346} GAG501l+HV               =       GAA4009 +      GCO2                                   :  0.100E+01*SUN;
+{ 76347} G2A507I +GNO                =       G1A509q +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 76348} G2A507I +GNO                =       GAG501o                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 76349} G2A507I +GHO2               =       GAG501l                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 76350} G2A507I +GNO3               =       G1A509q +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 76351} G2A507I +MEPERO             =  0.340G1A509q + 0.330GAG501Y + 0.330GAG501d                 : ARR( 0.565E-13,  -845., 0.0);
+{ 76352} G2A507I +PERO1              =  0.460G1A509q + 0.270GAG501Y + 0.270GAG501d                 : ARR( 0.434E-13,  -900., 0.0);
+{ 76353} G2A507I +PERO2              =  0.400G1A509q + 0.300GAG501Y + 0.300GAG501d                 : ARR( 0.162E-13, -1400., 0.0);
+{ 76354} G2A507I +PERO3              =  0.460G1A509q + 0.270GAG501Y + 0.270GAG501d                 : ARR( 0.488E-13, -1250., 0.0);
+{ 76355} G2A507I +PERO5              =  0.460G1A509q + 0.270GAG501Y + 0.270GAG501d                 : ARR( 0.183E-11,   450., 0.0);
+{ 76356} G2A507I +PERO6              =  0.300G1A509q + 0.350GAG501Y + 0.350GAG501d                 : ARR( 0.168E-13, -1300., 0.0);
+{ 76357} G2A507I +PERO9              =  0.650G1A509q + 0.350GAG501d                                : ARR( 0.100E-10,     0., 0.0);
+{ 76358} G3A5021 +GHO2               =  0.800GAG501l + 0.200GAA5011 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 76359} G3A5021 +GNO                =       G3A400J +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 76360} G3A5021 +GNO2               =       GPA501p                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 76361} G3A5021 +GNO3               =       G3A400J +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 76362} G3A5021 +MEPERO             =  0.685G3A400J + 0.315GAA5011 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 76363} G3A5021 +PERO1              =  0.800G3A400J + 0.200GAA5011 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 76364} G3A5021 +PERO2              =  0.750G3A400J + 0.250GAA5011 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 76365} G3A5021 +PERO3              =  0.800G3A400J + 0.200GAA5011 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 76366} G3A5021 +PERO5              =  0.650G3A400J + 0.350GAA5011 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 76367} G3A5021 +PERO6              =  0.650G3A400J + 0.350GAA5011 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 76368} G3A5021 +PERO9              =       G3A400J +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 76369} G1A509q                     =       GAN3006 +      GCO     +      GHO2    +      GCO      : ARR( 0.200E+15,  2436., 0.0);
+{ 76370} GAG501m +GHO                =       GAG501b +      GHO2                                   : ARR( 0.436E-12,     0., 0.0);
+{ 76371} GAG501m +GHO                =       G3A501e                                               : ARR( 0.201E-11,  -190., 0.0);
+{ 76372} GAG501m +GHO                =       GGN400W +      GNO2    +      GCO2                    : ARR( 0.550E-12,     0., 0.0);
+{ 76373} GAG501m+HV               =       G1A5098 +      GNO2                                   :  0.100E+01*SUN;
+{ 76374} GAG501m+HV               =       G1A508a +      GNO2                                   :  0.100E+01*SUN;
+{ 76375} GAG501m+HV               =       GAN400P +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 76376} GAG501n +GHO                =       GAG501c +      GHO2                                   : ARR( 0.210E-11,     0., 0.0);
+{ 76377} GAG501n +GHO                =       GAG501Y +      GHO                                    : ARR( 0.257E-10,     0., 0.0);
+{ 76378} GAG501n +GHO                =       G2A5063                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 76379} GAG501n +GHO                =       G3A501h                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 76380} GAG501n+HV               =       G1A509r +      GNO2                                   :  0.100E+01*SUN;
+{ 76381} GAG501n+HV               =       G1A508a +      GHO                                    :  0.100E+01*SUN;
+{ 76382} GAG501n+HV               =       GAN400P +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 76383} G1A509r                     =       GCO     +      GGH400g +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 76384} G1A509r                     =       GAD2000 +      GGH3007 +      GHO2                    : ARR( 0.200E+15,  5475., 0.0);
+{ 76385} GAA5011 +GHO                =       GAA500x +      GHO                                    : ARR( 0.511E-11,     0., 0.0);
+{ 76386} GAA5011 +GHO                =       G2A5064                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 76387} GAA5011 +GHO                =       GAH400s +      GNO2    +      GCO2                    : ARR( 0.529E-12,     0., 0.0);
+{ 76388} GAA5011 +GHO                =       G3A400J +      GCO2                                   : ARR( 0.529E-12,     0., 0.0);
+{ 76389} GAA5011+HV               =       G1A5095 +      GNO2                                   :  0.100E+01*SUN;
+{ 76390} GAA5011+HV               =       G1A508d +      GHO                                    :  0.100E+01*SUN;
+{ 76391} GAA5011+HV               =       GAH400r +      GCO2                                   :  0.100E+01*SUN;
+{ 76392} GAA5012 +GHO                =       GAA500x +      GHO2                                   : ARR( 0.126E-11,     0., 0.0);
+{ 76393} GAA5012 +GHO                =       GAA501B +      GNO2                                   : ARR( 0.168E-12,     0., 0.0);
+{ 76394} GAA5012 +GHO                =       G1A508d                                               : ARR( 0.210E-17,    85., 2.0);
+{ 76395} GAA5012 +GHO                =       G3A4006 +      GCO2                                   : ARR( 0.520E-12,     0., 0.0);
+{ 76396} GAA5012 +GHO                =       GAD4004 +      GNO2    +      GCO2                    : ARR( 0.520E-12,     0., 0.0);
+{ 76397} GAA5012+HV               =       GAN400P +      GCO2                                   :  0.100E+01*SUN;
+{ 76398} GAA5012+HV               =       G1A509B +      GNO2                                   :  0.100E+01*SUN;
+{ 76399} GAA5013 +GHO                =       GAA5012 +      GNO2                                   : ARR( 0.106E-12,     0., 0.0);
+{ 76400} GAA5013 +GHO                =       GAA500v +      GHO2                                   : ARR( 0.412E-12,     0., 0.0);
+{ 76401} GAA5013 +GHO                =       G1A509Y                                               : ARR( 0.210E-17,    85., 2.0);
+{ 76402} GAA5013 +GHO                =       GAN400P +      GNO2    +      GCO2                    : ARR( 0.104E-11,     0., 0.0);
+{ 76403} GAA5013+HV               =       G1A508f +      GNO2                                   :  0.200E+01*SUN;
+{ 76404} GAA5014 +GHO                =       GAA500w +      GHO2                                   : ARR( 0.217E-11,     0., 0.0);
+{ 76405} GAA5014 +GHO                =       GAA5012 +      GHO                                    : ARR( 0.195E-10,     0., 0.0);
+{ 76406} GAA5014 +GHO                =       G2A5065                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 76407} GAA5014+HV               =       G1A509s +      GNO2                                   :  0.100E+01*SUN;
+{ 76408} GAA5014+HV               =       G1A508f +      GHO                                    :  0.100E+01*SUN;
+{ 76409} G1A509s                     =       GAH3007 +      GAD2000 +      GHO2                    : ARR( 0.200E+15,  5475., 0.0);
+{ 76410} G1A509s                     =       GAH400k +      GCO     +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 76411} GPA501n                     =       G3A501a +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 76412} GPA501n +GHO                =       GPA501f +      GHO                                    : ARR( 0.168E-11,     0., 0.0);
+{ 76413} GPA501n +GHO                =       G2P506h                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 76414} GPA501n +GHO                =       GPH400s +      GNO2    +      GCO2                    : ARR( 0.531E-12,     0., 0.0);
+{ 76415} GPA501n+HV               =       G1P50B2 +      GNO2                                   :  0.100E+01*SUN;
+{ 76416} GPA501n+HV               =       G1P509Y +      GHO                                    :  0.100E+01*SUN;
+{ 76417} GPA501n+HV               =       G1P509W +      GNO2                                   :  0.100E+01*SUN;
+{ 76418} GPA501n+HV               =       G3A501a +      GNO2                                   :  0.100E+01*SUN;
+{ 76419} G1P50B2                     =       GCO     +      GPH400s +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 76420} GPA501o                     =       G3A501b +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 76421} GPA501o +GHO                =       GPA501g +      GHO                                    : ARR( 0.836E-11,     0., 0.0);
+{ 76422} GPA501o +GHO                =       GPA501p +      GHO                                    : ARR( 0.255E-10,     0., 0.0);
+{ 76423} GPA501o +GHO                =       G2P5082                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 76424} GPA501o +GHO                =       G2P506f                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 76425} GPA501o+HV               =       G1P50B3 +      GNO2                                   :  0.100E+01*SUN;
+{ 76426} GPA501o+HV               =       G1P50Ae +      GHO                                    :  0.100E+01*SUN;
+{ 76427} GPA501o+HV               =       G1P509W +      GHO                                    :  0.100E+01*SUN;
+{ 76428} GPA501o+HV               =       G3A501b +      GNO2                                   :  0.100E+01*SUN;
+{ 76429} G2P5082 +GNO                =       G1P50Ae +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 76430} G2P5082 +GNO                =       GPA501U                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 76431} G2P5082 +GHO2               =       GPA501o                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 76432} G2P5082 +GNO3               =       G1P50Ae +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 76433} G2P5082 +MEPERO             =  0.340G1P50Ae + 0.330GPA501r + 0.330GPA501g                 : ARR( 0.565E-13,  -845., 0.0);
+{ 76434} G2P5082 +PERO1              =  0.460G1P50Ae + 0.270GPA501r + 0.270GPA501g                 : ARR( 0.434E-13,  -900., 0.0);
+{ 76435} G2P5082 +PERO2              =  0.400G1P50Ae + 0.300GPA501r + 0.300GPA501g                 : ARR( 0.162E-13, -1400., 0.0);
+{ 76436} G2P5082 +PERO3              =  0.460G1P50Ae + 0.270GPA501r + 0.270GPA501g                 : ARR( 0.488E-13, -1250., 0.0);
+{ 76437} G2P5082 +PERO5              =  0.460G1P50Ae + 0.270GPA501r + 0.270GPA501g                 : ARR( 0.183E-11,   450., 0.0);
+{ 76438} G2P5082 +PERO6              =  0.300G1P50Ae + 0.350GPA501r + 0.350GPA501g                 : ARR( 0.168E-13, -1300., 0.0);
+{ 76439} G2P5082 +PERO9              =  0.650G1P50Ae + 0.350GPA501g                                : ARR( 0.100E-10,     0., 0.0);
+{ 76440} G1P50B3                     =       GCO     +      GPH400w +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 76441} GPA501p                     =       G3A5021 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 76442} GPA501p +GHO                =       GPA501h +      GHO                                    : ARR( 0.512E-11,     0., 0.0);
+{ 76443} GPA501p +GHO                =       G2P506i                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 76444} GPA501p +GHO                =       GPH400t +      GNO2    +      GCO2                    : ARR( 0.530E-12,     0., 0.0);
+{ 76445} GPA501p+HV               =       G1P50AB +      GNO2                                   :  0.100E+01*SUN;
+{ 76446} GPA501p+HV               =       G1P509a +      GHO                                    :  0.100E+01*SUN;
+{ 76447} GPA501p+HV               =       G3A400J +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 76448} GPA501q                     =       G3A501e +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 76449} GPA501q +GHO                =       GPA501f +      GHO2                                   : ARR( 0.431E-12,     0., 0.0);
+{ 76450} GPA501q +GHO                =       GPA501c +      GNO2                                   : ARR( 0.751E-13,     0., 0.0);
+{ 76451} GPA501q +GHO                =       G1P509Y                                               : ARR( 0.220E-17,    85., 2.0);
+{ 76452} GPA501q +GHO                =       GPN400P +      GNO2    +      GCO2                    : ARR( 0.544E-12,     0., 0.0);
+{ 76453} GPA501q+HV               =       G1P509l +      GNO2                                   :  0.100E+01*SUN;
+{ 76454} GPA501q+HV               =       G1P509X +      GNO2                                   :  0.100E+01*SUN;
+{ 76455} GPA501q+HV               =       G3A501e +      GNO2                                   :  0.100E+01*SUN;
+{ 76456} GPA501r                     =       G3A501h +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 76457} GPA501r +GHO                =       GPA501g +      GHO2                                   : ARR( 0.211E-11,     0., 0.0);
+{ 76458} GPA501r +GHO                =       GPA501c +      GHO                                    : ARR( 0.257E-10,     0., 0.0);
+{ 76459} GPA501r +GHO                =       G2P506g                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 76460} GPA501r+HV               =       G1P50B4 +      GNO2                                   :  0.100E+01*SUN;
+{ 76461} GPA501r+HV               =       G1P509X +      GHO                                    :  0.100E+01*SUN;
+{ 76462} GPA501r+HV               =       G3A501h +      GNO2                                   :  0.100E+01*SUN;
+{ 76463} G1P50B4                     =       GCO     +      GPH400l +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 76464} G1P50B4                     =       GAD2000 +      GPH3007 +      GHO2                    : ARR( 0.200E+15,  5475., 0.0);
+{ 76465} GPP5011                     =       G3P501a +      GNO2                                   : ARR( 0.400E+16, 12800., 0.0);
+{ 76466} GPP5011 +GHO                =       GPP500v +      GHO                                    : ARR( 0.169E-11,     0., 0.0);
+{ 76467} GPP5011 +GHO                =       G2P506j                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 76468} GPP5011+HV               =       G3P501a +      GNO2                                   :  0.200E+01*SUN;
+{ 76469} GPP5011+HV               =       G1P509o +      GNO2                                   :  0.200E+01*SUN;
+{ 76470} GPP5011+HV               =       G1P509b +      GHO                                    :  0.100E+01*SUN;
+{ 76471} GPP5012                     =       G3P501e +      GNO2                                   : ARR( 0.400E+16, 12800., 0.0);
+{ 76472} GPP5012 +GHO                =       GPP500s +      GNO2                                   : ARR( 0.144E-12,     0., 0.0);
+{ 76473} GPP5012 +GHO                =       GPP500v +      GHO2                                   : ARR( 0.412E-12,     0., 0.0);
+{ 76474} GPP5012 +GHO                =       G1P509b                                               : ARR( 0.210E-17,    85., 2.0);
+{ 76475} GPP5012+HV               =       G3P501e +      GNO2                                   :  0.200E+01*SUN;
+{ 76476} GPP5012+HV               =       G1P509q +      GNO2                                   :  0.200E+01*SUN;
+{ 76477} GPP5013                     =       G3P501c +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 76478} GPP5013                     =       G3P501x +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 76479} GPP5013 +GHO                =       GPP500x +      GHO                                    : ARR( 0.516E-11,     0., 0.0);
+{ 76480} GPP5013 +GHO                =       G2P506k                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 76481} GPP5013+HV               =       G3P501c +      GNO2                                   :  0.100E+01*SUN;
+{ 76482} GPP5013+HV               =       G1P50AC +      GNO2                                   :  0.100E+01*SUN;
+{ 76483} GPP5013+HV               =       G1P509c +      GHO                                    :  0.100E+01*SUN;
+{ 76484} GPP5013+HV               =       G3P400J +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 76485} G3P501x +GHO2               =  0.800GPG501l + 0.200GPA501s + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 76486} G3P501x +GNO                =       G3P400J +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 76487} G3P501x +GNO2               =       GPP5013                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 76488} G3P501x +GNO3               =       G3P400J +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 76489} G3P501x +MEPERO             =  0.685G3P400J + 0.315GPA501s + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 76490} G3P501x +PERO1              =  0.800G3P400J + 0.200GPA501s + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 76491} G3P501x +PERO2              =  0.750G3P400J + 0.250GPA501s + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 76492} G3P501x +PERO3              =  0.800G3P400J + 0.200GPA501s + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 76493} G3P501x +PERO5              =  0.650G3P400J + 0.350GPA501s + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 76494} G3P501x +PERO6              =  0.650G3P400J + 0.350GPA501s + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 76495} G3P501x +PERO9              =       G3P400J +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 76496} GPG501j                     =       G3G501M +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 76497} GPG501j +GHO                =       GPG501b +      GHO                                    : ARR( 0.168E-11,     0., 0.0);
+{ 76498} GPG501j +GHO                =       G3P501a                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 76499} GPG501j +GHO                =       G2P5083                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 76500} GPG501j+HV               =       GPH400s +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 76501} GPG501j+HV               =       G1P509f +      GNO2                                   :  0.100E+01*SUN;
+{ 76502} GPG501j+HV               =       G1P50An +      GHO                                    :  0.100E+01*SUN;
+{ 76503} GPG501j+HV               =       G1P50A5 +      GNO2                                   :  0.100E+01*SUN;
+{ 76504} GPG501j+HV               =       G3G501M +      GNO2                                   :  0.100E+01*SUN;
+{ 76505} G2P5083 +GNO                =       G1P50An +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 76506} G2P5083 +GNO                =       GPG501Q                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 76507} G2P5083 +GHO2               =       GPG501j                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 76508} G2P5083 +GNO3               =       G1P50An +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 76509} G2P5083 +MEPERO             =  0.340G1P50An + 0.330GPG501m + 0.330GPG501b                 : ARR( 0.565E-13,  -845., 0.0);
+{ 76510} G2P5083 +PERO1              =  0.460G1P50An + 0.270GPG501m + 0.270GPG501b                 : ARR( 0.434E-13,  -900., 0.0);
+{ 76511} G2P5083 +PERO2              =  0.400G1P50An + 0.300GPG501m + 0.300GPG501b                 : ARR( 0.162E-13, -1400., 0.0);
+{ 76512} G2P5083 +PERO3              =  0.460G1P50An + 0.270GPG501m + 0.270GPG501b                 : ARR( 0.488E-13, -1250., 0.0);
+{ 76513} G2P5083 +PERO5              =  0.460G1P50An + 0.270GPG501m + 0.270GPG501b                 : ARR( 0.183E-11,   450., 0.0);
+{ 76514} G2P5083 +PERO6              =  0.300G1P50An + 0.350GPG501m + 0.350GPG501b                 : ARR( 0.168E-13, -1300., 0.0);
+{ 76515} G2P5083 +PERO9              =  0.650G1P50An + 0.350GPG501b                                : ARR( 0.100E-10,     0., 0.0);
+{ 76516} GPG501k                     =       G3G501Q +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 76517} GPG501k +GHO                =       GPG501l +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 76518} GPG501k +GHO                =       GPG501h +      GHO                                    : ARR( 0.826E-11,     0., 0.0);
+{ 76519} GPG501k +GHO                =       G3P501b                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 76520} GPG501k +GHO                =       G2P506l                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 76521} GPG501k +GHO                =       G2P5084                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 76522} GPG501k+HV               =       GPH400s +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 76523} GPG501k+HV               =       G1P509f +      GHO                                    :  0.100E+01*SUN;
+{ 76524} GPG501k+HV               =       G1P50At +      GHO                                    :  0.100E+01*SUN;
+{ 76525} GPG501k+HV               =       G1P50B5 +      GNO2                                   :  0.100E+01*SUN;
+{ 76526} GPG501k+HV               =       G3G501Q +      GNO2                                   :  0.100E+01*SUN;
+{ 76527} G2P5084 +GNO                =       G1P50At +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 76528} G2P5084 +GNO                =       GPG501T                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 76529} G2P5084 +GHO2               =       GPG501k                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 76530} G2P5084 +GNO3               =       G1P50At +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 76531} G2P5084 +MEPERO             =  0.340G1P50At + 0.330GPG501n + 0.330GPG501h                 : ARR( 0.565E-13,  -845., 0.0);
+{ 76532} G2P5084 +PERO1              =  0.460G1P50At + 0.270GPG501n + 0.270GPG501h                 : ARR( 0.434E-13,  -900., 0.0);
+{ 76533} G2P5084 +PERO2              =  0.400G1P50At + 0.300GPG501n + 0.300GPG501h                 : ARR( 0.162E-13, -1400., 0.0);
+{ 76534} G2P5084 +PERO3              =  0.460G1P50At + 0.270GPG501n + 0.270GPG501h                 : ARR( 0.488E-13, -1250., 0.0);
+{ 76535} G2P5084 +PERO5              =  0.460G1P50At + 0.270GPG501n + 0.270GPG501h                 : ARR( 0.183E-11,   450., 0.0);
+{ 76536} G2P5084 +PERO6              =  0.300G1P50At + 0.350GPG501n + 0.350GPG501h                 : ARR( 0.168E-13, -1300., 0.0);
+{ 76537} G2P5084 +PERO9              =  0.650G1P50At + 0.350GPG501h                                : ARR( 0.100E-10,     0., 0.0);
+{ 76538} G1P50B5                     =       GGH400v +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 76539} GPG501l                     =       G3G501P +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 76540} GPG501l +GHO                =       GPG501e +      GHO                                    : ARR( 0.512E-11,     0., 0.0);
+{ 76541} GPG501l +GHO                =       G3P501x                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 76542} GPG501l +GHO                =       G2P5085                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 76543} GPG501l+HV               =       GPA400F +      GCO2                                   :  0.100E+01*SUN;
+{ 76544} GPG501l+HV               =       G1P50B6 +      GHO                                    :  0.100E+01*SUN;
+{ 76545} GPG501l+HV               =       G1P50A6 +      GNO2                                   :  0.100E+01*SUN;
+{ 76546} GPG501l+HV               =       G3G501P +      GNO2                                   :  0.100E+01*SUN;
+{ 76547} G2P5085 +GNO                =       G1P50B6 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 76548} G2P5085 +GNO                =       GPG501o                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 76549} G2P5085 +GHO2               =       GPG501l                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 76550} G2P5085 +GNO3               =       G1P50B6 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 76551} G2P5085 +MEPERO             =  0.340G1P50B6 + 0.330GPG501W + 0.330GPG501e                 : ARR( 0.565E-13,  -845., 0.0);
+{ 76552} G2P5085 +PERO1              =  0.460G1P50B6 + 0.270GPG501W + 0.270GPG501e                 : ARR( 0.434E-13,  -900., 0.0);
+{ 76553} G2P5085 +PERO2              =  0.400G1P50B6 + 0.300GPG501W + 0.300GPG501e                 : ARR( 0.162E-13, -1400., 0.0);
+{ 76554} G2P5085 +PERO3              =  0.460G1P50B6 + 0.270GPG501W + 0.270GPG501e                 : ARR( 0.488E-13, -1250., 0.0);
+{ 76555} G2P5085 +PERO5              =  0.460G1P50B6 + 0.270GPG501W + 0.270GPG501e                 : ARR( 0.183E-11,   450., 0.0);
+{ 76556} G2P5085 +PERO6              =  0.300G1P50B6 + 0.350GPG501W + 0.350GPG501e                 : ARR( 0.168E-13, -1300., 0.0);
+{ 76557} G2P5085 +PERO9              =  0.650G1P50B6 + 0.350GPG501e                                : ARR( 0.100E-10,     0., 0.0);
+{ 76558} G1P50B6                     =       GCO     +      GPN3006 +      GHO2    +      GCO      : ARR( 0.200E+15,  2436., 0.0);
+{ 76559} GPG501m                     =       G3G501R +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 76560} GPG501m +GHO                =       GPG501b +      GHO2                                   : ARR( 0.441E-12,     0., 0.0);
+{ 76561} GPG501m +GHO                =       G3P501e                                               : ARR( 0.203E-11,  -190., 0.0);
+{ 76562} GPG501m+HV               =       GPN400P +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 76563} GPG501m+HV               =       G1P509h +      GNO2                                   :  0.100E+01*SUN;
+{ 76564} GPG501m+HV               =       G1P50AH +      GNO2                                   :  0.100E+01*SUN;
+{ 76565} GPG501m+HV               =       G3G501R +      GNO2                                   :  0.100E+01*SUN;
+{ 76566} GPG501n                     =       G3G501T +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 76567} GPG501n +GHO                =       GPG501W +      GHO                                    : ARR( 0.253E-10,     0., 0.0);
+{ 76568} GPG501n +GHO                =       GPG501h +      GHO2                                   : ARR( 0.207E-11,     0., 0.0);
+{ 76569} GPG501n +GHO                =       G3P501f                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 76570} GPG501n +GHO                =       G2P506m                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 76571} GPG501n+HV               =       GPN400P +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 76572} GPG501n+HV               =       G1P509h +      GHO                                    :  0.100E+01*SUN;
+{ 76573} GPG501n+HV               =       G1P50B7 +      GNO2                                   :  0.100E+01*SUN;
+{ 76574} GPG501n+HV               =       G3G501T +      GNO2                                   :  0.100E+01*SUN;
+{ 76575} G1P50B7                     =       GGH3007 +      GPD2000 +      GHO2                    : ARR( 0.200E+15,  5475., 0.0);
+{ 76576} G1P50B7                     =       GGH400g +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 76577} GPA501s                     =       G3A501c +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 76578} GPA501s +GHO                =       GPA501i +      GHO                                    : ARR( 0.515E-11,     0., 0.0);
+{ 76579} GPA501s +GHO                =       G2P506n                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 76580} GPA501s +GHO                =       G3P400J +      GCO2                                   : ARR( 0.533E-12,     0., 0.0);
+{ 76581} GPA501s+HV               =       GPH400s +      GCO2                                   :  0.100E+01*SUN;
+{ 76582} GPA501s+HV               =       G1P509j +      GHO                                    :  0.100E+01*SUN;
+{ 76583} GPA501s+HV               =       G1P50A7 +      GNO2                                   :  0.100E+01*SUN;
+{ 76584} GPA501s+HV               =       G3A501c +      GNO2                                   :  0.100E+01*SUN;
+{ 76585} GPA501t                     =       G3A501f +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 76586} GPA501t +GHO                =       GPA501i +      GHO2                                   : ARR( 0.126E-11,     0., 0.0);
+{ 76587} GPA501t +GHO                =       GPA501e +      GNO2                                   : ARR( 0.228E-12,     0., 0.0);
+{ 76588} GPA501t +GHO                =       G1P509j                                               : ARR( 0.210E-17,    85., 2.0);
+{ 76589} GPA501t +GHO                =       G3P4006 +      GCO2                                   : ARR( 0.520E-12,     0., 0.0);
+{ 76590} GPA501t+HV               =       GPN400P +      GCO2                                   :  0.100E+01*SUN;
+{ 76591} GPA501t+HV               =       G1P50AI +      GNO2                                   :  0.100E+01*SUN;
+{ 76592} GPA501t+HV               =       G3A501f +      GNO2                                   :  0.100E+01*SUN;
+{ 76593} GPA501u                     =       G3A501j +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 76594} GPA501u +GHO                =       GPA501t +      GHO                                    : ARR( 0.192E-10,     0., 0.0);
+{ 76595} GPA501u +GHO                =       GPA501l +      GHO2                                   : ARR( 0.212E-11,     0., 0.0);
+{ 76596} GPA501u +GHO                =       G2P506o                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 76597} GPA501u+HV               =       G1P509l +      GHO                                    :  0.100E+01*SUN;
+{ 76598} GPA501u+HV               =       G1P50B8 +      GNO2                                   :  0.100E+01*SUN;
+{ 76599} GPA501u+HV               =       G3A501j +      GNO2                                   :  0.100E+01*SUN;
+{ 76600} G1P50B8                     =       GAH3007 +      GPD2000 +      GHO2                    : ARR( 0.200E+15,  5475., 0.0);
+{ 76601} G1P50B8                     =       GAH400k +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 76602} GPP5014                     =       G3P501d +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 76603} GPP5014                     =       G3P501b +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 76604} GPP5014 +GHO                =       GPP500w +      GHO                                    : ARR( 0.826E-11,     0., 0.0);
+{ 76605} GPP5014 +GHO                =       GPP5013 +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 76606} GPP5014 +GHO                =       G2P5086                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 76607} GPP5014 +GHO                =       G2P506p                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 76608} GPP5014+HV               =       G3P501d +      GNO2                                   :  0.100E+01*SUN;
+{ 76609} GPP5014+HV               =       G1P50B9 +      GNO2                                   :  0.100E+01*SUN;
+{ 76610} GPP5014+HV               =       G1P50Ak +      GHO                                    :  0.100E+01*SUN;
+{ 76611} GPP5014+HV               =       G1P509o +      GHO                                    :  0.100E+01*SUN;
+{ 76612} GPP5014+HV               =       G3P501b +      GNO2                                   :  0.100E+01*SUN;
+{ 76613} G2P5086 +GNO                =       G1P50Ak +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 76614} G2P5086 +GNO                =       GPP500o                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 76615} G2P5086 +GHO2               =       GPP5014                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 76616} G2P5086 +GNO3               =       G1P50Ak +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 76617} G2P5086 +MEPERO             =  0.340G1P50Ak + 0.330GPP5015 + 0.330GPP500w                 : ARR( 0.565E-13,  -845., 0.0);
+{ 76618} G2P5086 +PERO1              =  0.460G1P50Ak + 0.270GPP5015 + 0.270GPP500w                 : ARR( 0.434E-13,  -900., 0.0);
+{ 76619} G2P5086 +PERO2              =  0.400G1P50Ak + 0.300GPP5015 + 0.300GPP500w                 : ARR( 0.162E-13, -1400., 0.0);
+{ 76620} G2P5086 +PERO3              =  0.460G1P50Ak + 0.270GPP5015 + 0.270GPP500w                 : ARR( 0.488E-13, -1250., 0.0);
+{ 76621} G2P5086 +PERO5              =  0.460G1P50Ak + 0.270GPP5015 + 0.270GPP500w                 : ARR( 0.183E-11,   450., 0.0);
+{ 76622} G2P5086 +PERO6              =  0.300G1P50Ak + 0.350GPP5015 + 0.350GPP500w                 : ARR( 0.168E-13, -1300., 0.0);
+{ 76623} G2P5086 +PERO9              =  0.650G1P50Ak + 0.350GPP500w                                : ARR( 0.100E-10,     0., 0.0);
+{ 76624} G1P50B9                     =       GPH400w +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 76625} GPP5015                     =       G3P501g +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 76626} GPP5015                     =       G3P501f +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 76627} GPP5015 +GHO                =       GPP500w +      GHO2                                   : ARR( 0.207E-11,     0., 0.0);
+{ 76628} GPP5015 +GHO                =       GPP500s +      GHO                                    : ARR( 0.253E-10,     0., 0.0);
+{ 76629} GPP5015 +GHO                =       G2P506q                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 76630} GPP5015+HV               =       G3P501g +      GNO2                                   :  0.100E+01*SUN;
+{ 76631} GPP5015+HV               =       G1P50BA +      GNO2                                   :  0.100E+01*SUN;
+{ 76632} GPP5015+HV               =       G1P509q +      GHO                                    :  0.100E+01*SUN;
+{ 76633} GPP5015+HV               =       G3P501f +      GNO2                                   :  0.100E+01*SUN;
+{ 76634} G1P50BA                     =       GPH3007 +      GPD2000 +      GHO2                    : ARR( 0.200E+15,  5475., 0.0);
+{ 76635} G1P50BA                     =       GPH400l +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 76636} GAG501o +GHO                =       G3A501r                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 76637} GAG501o +GHO                =       GGN400b +      GNO2    +      GCO2                    : ARR( 0.523E-12,     0., 0.0);
+{ 76638} GAG501o+HV               =       G1A509t +      GNO2                                   :  0.100E+01*SUN;
+{ 76639} GAG501o+HV               =       G1A509q +      GNO2                                   :  0.100E+01*SUN;
+{ 76640} GAG501o+HV               =       GAA4007 +      GCO2                                   :  0.100E+01*SUN;
+{ 76641} G1A509t                     =       GCO     +      GGN400b +      GHO                     : ARR( 0.200E+15,  4342., 0.0);
+{ 76642} GPG501o                     =       G3G501d +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 76643} GPG501o +GHO                =       G3P501o                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 76644} GPG501o+HV               =       GPA400D +      GCO2                                   :  0.100E+01*SUN;
+{ 76645} GPG501o+HV               =       G1P50B6 +      GNO2                                   :  0.100E+01*SUN;
+{ 76646} GPG501o+HV               =       G1P50BB +      GNO2                                   :  0.100E+01*SUN;
+{ 76647} GPG501o+HV               =       G3G501d +      GNO2                                   :  0.100E+01*SUN;
+{ 76648} G1P50BB                     =       GGN400b +      GCO     +      GNO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 76649} GPG501p                     =       G3G501u +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 76650} GPG501p +GHO                =       G3P501q                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 76651} GPG501p+HV               =       GPA400G +      GCO2                                   :  0.100E+01*SUN;
+{ 76652} GPG501p+HV               =       G1P50AN +      GNO2                                   :  0.100E+01*SUN;
+{ 76653} GPG501p+HV               =       G3G400K +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 76654} G3G501u +GHO2               =  0.800GGG5012 + 0.200GAG501z + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 76655} G3G501u +GNO                =       G3G400K +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 76656} G3G501u +GNO2               =       GPG501p                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 76657} G3G501u +GNO3               =       G3G400K +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 76658} G3G501u +MEPERO             =  0.685G3G400K + 0.315GAG501z + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 76659} G3G501u +PERO1              =  0.800G3G400K + 0.200GAG501z + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 76660} G3G501u +PERO2              =  0.750G3G400K + 0.250GAG501z + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 76661} G3G501u +PERO3              =  0.800G3G400K + 0.200GAG501z + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 76662} G3G501u +PERO5              =  0.650G3G400K + 0.350GAG501z + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 76663} G3G501u +PERO6              =  0.650G3G400K + 0.350GAG501z + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 76664} G3G501u +PERO9              =       G3G400K +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 76665} GGH505b +GHO                =       GGN502f +      GHO                                    : ARR( 0.162E-10,     0., 0.0);
+{ 76666} GGH505b +GHO                =       GGH504b +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 76667} GGH505b +GHO                =       GGH502Y +      GHO2                                   : ARR( 0.208E-11,     0., 0.0);
+{ 76668} GGH505b +GHO                =       G2G5069                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 76669} GGH505b +GHO                =       G3H505S                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 76670} GGH505b+HV               =       G1G503k +      GHO                                    :  0.100E+01*SUN;
+{ 76671} GGH505b+HV               =       G1G507E +      GNO2                                   :  0.100E+01*SUN;
+{ 76672} GGH505b+HV               =       GHD400E +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 76673} G2G5069 +GNO                =       G1G503k +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 76674} G2G5069 +GNO                =       GGN501P                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 76675} G2G5069 +GHO2               =       GGH505b                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 76676} G2G5069 +GNO3               =       G1G503k +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 76677} G2G5069 +MEPERO             =  0.480G1G503k + 0.260GGN501R + 0.260GGN502f                 : ARR( 0.164E-12,  -795., 0.0);
+{ 76678} G2G5069 +PERO1              =  0.600G1G503k + 0.200GGN501R + 0.200GGN502f                 : ARR( 0.126E-12,  -850., 0.0);
+{ 76679} G2G5069 +PERO2              =  0.560G1G503k + 0.220GGN501R + 0.220GGN502f                 : ARR( 0.471E-13, -1350., 0.0);
+{ 76680} G2G5069 +PERO3              =  0.600G1G503k + 0.200GGN501R + 0.200GGN502f                 : ARR( 0.142E-12, -1200., 0.0);
+{ 76681} G2G5069 +PERO5              =  0.600G1G503k + 0.200GGN501R + 0.200GGN502f                 : ARR( 0.533E-11,   500., 0.0);
+{ 76682} G2G5069 +PERO6              =  0.460G1G503k + 0.270GGN501R + 0.270GGN502f                 : ARR( 0.488E-13, -1250., 0.0);
+{ 76683} G2G5069 +PERO9              =  0.800G1G503k + 0.200GGN502f                                : ARR( 0.100E-10,     0., 0.0);
+{ 76684} GGH505c +GHO                =       GGH505E +      GHO                                    : ARR( 0.322E-11,     0., 0.0);
+{ 76685} GGH505c +GHO                =       GGH505W +      GHO                                    : ARR( 0.504E-11,     0., 0.0);
+{ 76686} GGH505c +GHO                =       G2G506A                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 76687} GGH505c +GHO                =       G2G506B                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 76688} GGH505c +GHO                =       G3H505T                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 76689} GGH505c+HV               =       G1G506B +      GHO                                    :  0.100E+01*SUN;
+{ 76690} GGH505c+HV               =       G1G508d +      GNO2                                   :  0.100E+01*SUN;
+{ 76691} GGH505c+HV               =       G1G507f +      GNO2                                   :  0.100E+01*SUN;
+{ 76692} GGH505c+HV               =       G1G508E +      GHO                                    :  0.100E+01*SUN;
+{ 76693} GGH505c+HV               =       GHN4013 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 76694} G2G506A +GNO                =       G1G506B +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 76695} G2G506A +GNO                =       GGH503O                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 76696} G2G506A +GHO2               =       GGH505c                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 76697} G2G506A +GNO3               =       G1G506B +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 76698} G2G506A +MEPERO             =  0.480G1G506B + 0.260GGH503M + 0.260GGH505E                 : ARR( 0.164E-12,  -795., 0.0);
+{ 76699} G2G506A +PERO1              =  0.600G1G506B + 0.200GGH503M + 0.200GGH505E                 : ARR( 0.126E-12,  -850., 0.0);
+{ 76700} G2G506A +PERO2              =  0.560G1G506B + 0.220GGH503M + 0.220GGH505E                 : ARR( 0.471E-13, -1350., 0.0);
+{ 76701} G2G506A +PERO3              =  0.600G1G506B + 0.200GGH503M + 0.200GGH505E                 : ARR( 0.142E-12, -1200., 0.0);
+{ 76702} G2G506A +PERO5              =  0.600G1G506B + 0.200GGH503M + 0.200GGH505E                 : ARR( 0.533E-11,   500., 0.0);
+{ 76703} G2G506A +PERO6              =  0.460G1G506B + 0.270GGH503M + 0.270GGH505E                 : ARR( 0.488E-13, -1250., 0.0);
+{ 76704} G2G506A +PERO9              =  0.800G1G506B + 0.200GGH505E                                : ARR( 0.100E-10,     0., 0.0);
+{ 76705} G2G506B +GNO                =       G1G508E +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 76706} G2G506B +GNO                =       GGH505C                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 76707} G2G506B +GHO2               =       GGH505c                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 76708} G2G506B +GNO3               =       G1G508E +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 76709} G2G506B +MEPERO             =  0.340G1G508E + 0.330GGH505P + 0.330GGH505W                 : ARR( 0.565E-13,  -845., 0.0);
+{ 76710} G2G506B +PERO1              =  0.460G1G508E + 0.270GGH505P + 0.270GGH505W                 : ARR( 0.434E-13,  -900., 0.0);
+{ 76711} G2G506B +PERO2              =  0.400G1G508E + 0.300GGH505P + 0.300GGH505W                 : ARR( 0.162E-13, -1400., 0.0);
+{ 76712} G2G506B +PERO3              =  0.460G1G508E + 0.270GGH505P + 0.270GGH505W                 : ARR( 0.488E-13, -1250., 0.0);
+{ 76713} G2G506B +PERO5              =  0.460G1G508E + 0.270GGH505P + 0.270GGH505W                 : ARR( 0.183E-11,   450., 0.0);
+{ 76714} G2G506B +PERO6              =  0.300G1G508E + 0.350GGH505P + 0.350GGH505W                 : ARR( 0.168E-13, -1300., 0.0);
+{ 76715} G2G506B +PERO9              =  0.650G1G508E + 0.350GGH505W                                : ARR( 0.100E-10,     0., 0.0);
+{ 76716} G1G508d                     =       GCH2O   +      GGH400r +      GHO                     : ARR( 0.200E+15,  7395., 0.0);
+{ 76717} G1G508d                     =       GHD2000 +      GGH3007 +      GNO2                    : ARR( 0.200E+15,  6367., 0.0);
+{ 76718} GAH505e +GHO                =       GAH504j +      GHO                                    : ARR( 0.387E-11,     0., 0.0);
+{ 76719} GAH505e +GHO                =       GAH5056 +      GHO                                    : ARR( 0.335E-11,     0., 0.0);
+{ 76720} GAH505e +GHO                =       G2A507J                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 76721} GAH505e +GHO                =       G2A507K                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 76722} GAH505e+HV               =       G1A507r +      GHO                                    :  0.100E+01*SUN;
+{ 76723} GAH505e+HV               =       G1A508m +      GNO2                                   :  0.100E+01*SUN;
+{ 76724} GAH505e+HV               =       G1A509u +      GNO2                                   :  0.100E+01*SUN;
+{ 76725} GAH505e+HV               =       G1A5068 +      GHO                                    :  0.100E+01*SUN;
+{ 76726} G2A507J +GNO                =       G1A507r +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 76727} G2A507J +GNO                =       GAH504i                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 76728} G2A507J +GHO2               =       GAH505e                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 76729} G2A507J +GNO3               =       G1A507r +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 76730} G2A507J +MEPERO             =  0.340G1A507r + 0.330GAH505S + 0.330GAH504j                 : ARR( 0.565E-13,  -845., 0.0);
+{ 76731} G2A507J +PERO1              =  0.460G1A507r + 0.270GAH505S + 0.270GAH504j                 : ARR( 0.434E-13,  -900., 0.0);
+{ 76732} G2A507J +PERO2              =  0.400G1A507r + 0.300GAH505S + 0.300GAH504j                 : ARR( 0.162E-13, -1400., 0.0);
+{ 76733} G2A507J +PERO3              =  0.460G1A507r + 0.270GAH505S + 0.270GAH504j                 : ARR( 0.488E-13, -1250., 0.0);
+{ 76734} G2A507J +PERO5              =  0.460G1A507r + 0.270GAH505S + 0.270GAH504j                 : ARR( 0.183E-11,   450., 0.0);
+{ 76735} G2A507J +PERO6              =  0.300G1A507r + 0.350GAH505S + 0.350GAH504j                 : ARR( 0.168E-13, -1300., 0.0);
+{ 76736} G2A507J +PERO9              =  0.650G1A507r + 0.350GAH504j                                : ARR( 0.100E-10,     0., 0.0);
+{ 76737} G2A507K +GNO                =       G1A5068 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 76738} G2A507K +GNO                =       GAH5033                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 76739} G2A507K +GHO2               =       GAH505e                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 76740} G2A507K +GNO3               =       G1A5068 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 76741} G2A507K +MEPERO             =  0.480G1A5068 + 0.260GAH5034 + 0.260GAH5056                 : ARR( 0.164E-12,  -795., 0.0);
+{ 76742} G2A507K +PERO1              =  0.600G1A5068 + 0.200GAH5034 + 0.200GAH5056                 : ARR( 0.126E-12,  -850., 0.0);
+{ 76743} G2A507K +PERO2              =  0.560G1A5068 + 0.220GAH5034 + 0.220GAH5056                 : ARR( 0.471E-13, -1350., 0.0);
+{ 76744} G2A507K +PERO3              =  0.600G1A5068 + 0.200GAH5034 + 0.200GAH5056                 : ARR( 0.142E-12, -1200., 0.0);
+{ 76745} G2A507K +PERO5              =  0.600G1A5068 + 0.200GAH5034 + 0.200GAH5056                 : ARR( 0.533E-11,   500., 0.0);
+{ 76746} G2A507K +PERO6              =  0.460G1A5068 + 0.270GAH5034 + 0.270GAH5056                 : ARR( 0.488E-13, -1250., 0.0);
+{ 76747} G2A507K +PERO9              =  0.800G1A5068 + 0.200GAH5056                                : ARR( 0.100E-10,     0., 0.0);
+{ 76748} G1A509u                     =       GAH3007 +      GHD2000 +      GNO2                    : ARR( 0.200E+15,  6367., 0.0);
+{ 76749} G1A509u                     =       GAH400l +      GCH2O   +      GHO                     : ARR( 0.200E+15,  7395., 0.0);
+{ 76750} GPH505e                     =       G3H505T +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 76751} GPH505e +GHO                =       GPH504o +      GHO                                    : ARR( 0.323E-11,     0., 0.0);
+{ 76752} GPH505e +GHO                =       GPH504n +      GHO                                    : ARR( 0.504E-11,     0., 0.0);
+{ 76753} GPH505e +GHO                =       G2P5087                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 76754} GPH505e +GHO                =       G2P5088                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 76755} GPH505e+HV               =       G1P506k +      GHO                                    :  0.100E+01*SUN;
+{ 76756} GPH505e+HV               =       G1P50BC +      GNO2                                   :  0.100E+01*SUN;
+{ 76757} GPH505e+HV               =       G1P509y +      GNO2                                   :  0.100E+01*SUN;
+{ 76758} GPH505e+HV               =       G1P508c +      GHO                                    :  0.100E+01*SUN;
+{ 76759} GPH505e+HV               =       G3H505T +      GNO2                                   :  0.100E+01*SUN;
+{ 76760} G2P5087 +GNO                =       G1P506k +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 76761} G2P5087 +GNO                =       GPH5038                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 76762} G2P5087 +GHO2               =       GPH505e                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 76763} G2P5087 +GNO3               =       G1P506k +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 76764} G2P5087 +MEPERO             =  0.480G1P506k + 0.260GPH5028 + 0.260GPH504o                 : ARR( 0.164E-12,  -795., 0.0);
+{ 76765} G2P5087 +PERO1              =  0.600G1P506k + 0.200GPH5028 + 0.200GPH504o                 : ARR( 0.126E-12,  -850., 0.0);
+{ 76766} G2P5087 +PERO2              =  0.560G1P506k + 0.220GPH5028 + 0.220GPH504o                 : ARR( 0.471E-13, -1350., 0.0);
+{ 76767} G2P5087 +PERO3              =  0.600G1P506k + 0.200GPH5028 + 0.200GPH504o                 : ARR( 0.142E-12, -1200., 0.0);
+{ 76768} G2P5087 +PERO5              =  0.600G1P506k + 0.200GPH5028 + 0.200GPH504o                 : ARR( 0.533E-11,   500., 0.0);
+{ 76769} G2P5087 +PERO6              =  0.460G1P506k + 0.270GPH5028 + 0.270GPH504o                 : ARR( 0.488E-13, -1250., 0.0);
+{ 76770} G2P5087 +PERO9              =  0.800G1P506k + 0.200GPH504o                                : ARR( 0.100E-10,     0., 0.0);
+{ 76771} G2P5088 +GNO                =       G1P508c +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 76772} G2P5088 +GNO                =       GPH504m                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 76773} G2P5088 +GHO2               =       GPH505e                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 76774} G2P5088 +GNO3               =       G1P508c +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 76775} G2P5088 +MEPERO             =  0.340G1P508c + 0.330GPH505Y + 0.330GPH504n                 : ARR( 0.565E-13,  -845., 0.0);
+{ 76776} G2P5088 +PERO1              =  0.460G1P508c + 0.270GPH505Y + 0.270GPH504n                 : ARR( 0.434E-13,  -900., 0.0);
+{ 76777} G2P5088 +PERO2              =  0.400G1P508c + 0.300GPH505Y + 0.300GPH504n                 : ARR( 0.162E-13, -1400., 0.0);
+{ 76778} G2P5088 +PERO3              =  0.460G1P508c + 0.270GPH505Y + 0.270GPH504n                 : ARR( 0.488E-13, -1250., 0.0);
+{ 76779} G2P5088 +PERO5              =  0.460G1P508c + 0.270GPH505Y + 0.270GPH504n                 : ARR( 0.183E-11,   450., 0.0);
+{ 76780} G2P5088 +PERO6              =  0.300G1P508c + 0.350GPH505Y + 0.350GPH504n                 : ARR( 0.168E-13, -1300., 0.0);
+{ 76781} G2P5088 +PERO9              =  0.650G1P508c + 0.350GPH504n                                : ARR( 0.100E-10,     0., 0.0);
+{ 76782} G1P50BC                     =       GCH2O   +      GPH400m +      GHO                     : ARR( 0.200E+15,  7395., 0.0);
+{ 76783} G1P50BC                     =       GHD2000 +      GPH3007 +      GNO2                    : ARR( 0.200E+15,  6367., 0.0);
+{ 76784} GAG501p +GHO                =       GAG501U +      GHO                                    : ARR( 0.391E-11,     0., 0.0);
+{ 76785} GAG501p +GHO                =       G2A507L                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 76786} GAG501p +GHO                =       G3A501X                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 76787} GAG501p+HV               =       G1A509c +      GHO                                    :  0.100E+01*SUN;
+{ 76788} GAG501p+HV               =       G1A509v +      GNO2                                   :  0.100E+01*SUN;
+{ 76789} GAG501p+HV               =       G1A509w +      GNO2                                   :  0.100E+01*SUN;
+{ 76790} GAG501p+HV               =       GAH400l +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 76791} G2A507L +GNO                =       G1A509c +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 76792} G2A507L +GNO                =       GAG501T                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 76793} G2A507L +GHO2               =       GAG501p                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 76794} G2A507L +GNO3               =       G1A509c +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 76795} G2A507L +MEPERO             =  0.340G1A509c + 0.330GAG500v + 0.330GAG501U                 : ARR( 0.565E-13,  -845., 0.0);
+{ 76796} G2A507L +PERO1              =  0.460G1A509c + 0.270GAG500v + 0.270GAG501U                 : ARR( 0.434E-13,  -900., 0.0);
+{ 76797} G2A507L +PERO2              =  0.400G1A509c + 0.300GAG500v + 0.300GAG501U                 : ARR( 0.162E-13, -1400., 0.0);
+{ 76798} G2A507L +PERO3              =  0.460G1A509c + 0.270GAG500v + 0.270GAG501U                 : ARR( 0.488E-13, -1250., 0.0);
+{ 76799} G2A507L +PERO5              =  0.460G1A509c + 0.270GAG500v + 0.270GAG501U                 : ARR( 0.183E-11,   450., 0.0);
+{ 76800} G2A507L +PERO6              =  0.300G1A509c + 0.350GAG500v + 0.350GAG501U                 : ARR( 0.168E-13, -1300., 0.0);
+{ 76801} G2A507L +PERO9              =  0.650G1A509c + 0.350GAG501U                                : ARR( 0.100E-10,     0., 0.0);
+{ 76802} G1A509v                     =       GAD2000 +      GGN3005 +      GHO                     : ARR( 0.200E+15,  4308., 0.0);
+{ 76803} G1A509w                     =       GAH400l +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 76804} GAG501q +GHO                =       GAG501X +      GHO                                    : ARR( 0.384E-11,     0., 0.0);
+{ 76805} GAG501q +GHO                =       GAG5024 +      GHO                                    : ARR( 0.519E-11,     0., 0.0);
+{ 76806} GAG501q +GHO                =       G2A507M                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 76807} GAG501q +GHO                =       G2A507N                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 76808} GAG501q +GHO                =       G3A501Y                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 76809} GAG501q+HV               =       G1A509h +      GHO                                    :  0.100E+01*SUN;
+{ 76810} GAG501q+HV               =       G1A509x +      GNO2                                   :  0.100E+01*SUN;
+{ 76811} GAG501q+HV               =       G1A509w +      GHO                                    :  0.100E+01*SUN;
+{ 76812} GAG501q+HV               =       GAH400l +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 76813} G2A507M +GNO                =       G1A509h +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 76814} G2A507M +GNO                =       GAG501W                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 76815} G2A507M +GHO2               =       GAG501q                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 76816} G2A507M +GNO3               =       G1A509h +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 76817} G2A507M +MEPERO             =  0.340G1A509h + 0.330GAG500w + 0.330GAG501X                 : ARR( 0.565E-13,  -845., 0.0);
+{ 76818} G2A507M +PERO1              =  0.460G1A509h + 0.270GAG500w + 0.270GAG501X                 : ARR( 0.434E-13,  -900., 0.0);
+{ 76819} G2A507M +PERO2              =  0.400G1A509h + 0.300GAG500w + 0.300GAG501X                 : ARR( 0.162E-13, -1400., 0.0);
+{ 76820} G2A507M +PERO3              =  0.460G1A509h + 0.270GAG500w + 0.270GAG501X                 : ARR( 0.488E-13, -1250., 0.0);
+{ 76821} G2A507M +PERO5              =  0.460G1A509h + 0.270GAG500w + 0.270GAG501X                 : ARR( 0.183E-11,   450., 0.0);
+{ 76822} G2A507M +PERO6              =  0.300G1A509h + 0.350GAG500w + 0.350GAG501X                 : ARR( 0.168E-13, -1300., 0.0);
+{ 76823} G2A507M +PERO9              =  0.650G1A509h + 0.350GAG501X                                : ARR( 0.100E-10,     0., 0.0);
+{ 76824} G2A507N +GNO                =       G1A509w +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 76825} G2A507N +GNO                =       GAG501p                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 76826} G2A507N +GHO2               =       GAG501q                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 76827} G2A507N +GNO3               =       G1A509w +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 76828} G2A507N +MEPERO             =  0.340G1A509w + 0.330GAG501H + 0.330GAG5024                 : ARR( 0.565E-13,  -845., 0.0);
+{ 76829} G2A507N +PERO1              =  0.460G1A509w + 0.270GAG501H + 0.270GAG5024                 : ARR( 0.434E-13,  -900., 0.0);
+{ 76830} G2A507N +PERO2              =  0.400G1A509w + 0.300GAG501H + 0.300GAG5024                 : ARR( 0.162E-13, -1400., 0.0);
+{ 76831} G2A507N +PERO3              =  0.460G1A509w + 0.270GAG501H + 0.270GAG5024                 : ARR( 0.488E-13, -1250., 0.0);
+{ 76832} G2A507N +PERO5              =  0.460G1A509w + 0.270GAG501H + 0.270GAG5024                 : ARR( 0.183E-11,   450., 0.0);
+{ 76833} G2A507N +PERO6              =  0.300G1A509w + 0.350GAG501H + 0.350GAG5024                 : ARR( 0.168E-13, -1300., 0.0);
+{ 76834} G2A507N +PERO9              =  0.650G1A509w + 0.350GAG5024                                : ARR( 0.100E-10,     0., 0.0);
+{ 76835} G1A509x                     =       GAD2000 +      GGH3007 +      GHO                     : ARR( 0.200E+15,  4308., 0.0);
+{ 76836} G1A509x                     =       GAH3007 +      GGD2000 +      GHO                     : ARR( 0.200E+15,  4308., 0.0);
+{ 76837} GAA5015 +GHO                =       GAA500t +      GHO                                    : ARR( 0.749E-11,     0., 0.0);
+{ 76838} GAA5015 +GHO                =       G2A507O                                               : ARR( 0.383E-11,  -190., 0.0);
+{ 76839} GAA5015 +GHO                =       GAH400l +      GHO     +      GCO2                    : ARR( 0.105E-11,     0., 0.0);
+{ 76840} GAA5015+HV               =       G1A509Z +      GHO                                    :  0.200E+01*SUN;
+{ 76841} GAA5015+HV               =       G1A509y +      GNO2                                   :  0.100E+01*SUN;
+{ 76842} G2A507O +GNO                =       G1A509Z +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 76843} G2A507O +GNO                =       GAA500r                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 76844} G2A507O +GHO2               =       GAA5015                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 76845} G2A507O +GNO3               =       G1A509Z +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 76846} G2A507O +MEPERO             =  0.340G1A509Z + 0.330GAA500P + 0.330GAA500t                 : ARR( 0.565E-13,  -845., 0.0);
+{ 76847} G2A507O +PERO1              =  0.460G1A509Z + 0.270GAA500P + 0.270GAA500t                 : ARR( 0.434E-13,  -900., 0.0);
+{ 76848} G2A507O +PERO2              =  0.400G1A509Z + 0.300GAA500P + 0.300GAA500t                 : ARR( 0.162E-13, -1400., 0.0);
+{ 76849} G2A507O +PERO3              =  0.460G1A509Z + 0.270GAA500P + 0.270GAA500t                 : ARR( 0.488E-13, -1250., 0.0);
+{ 76850} G2A507O +PERO5              =  0.460G1A509Z + 0.270GAA500P + 0.270GAA500t                 : ARR( 0.183E-11,   450., 0.0);
+{ 76851} G2A507O +PERO6              =  0.300G1A509Z + 0.350GAA500P + 0.350GAA500t                 : ARR( 0.168E-13, -1300., 0.0);
+{ 76852} G2A507O +PERO9              =  0.650G1A509Z + 0.350GAA500t                                : ARR( 0.100E-10,     0., 0.0);
+{ 76853} G1A509y                     =       GAD2000 +      GAH3007 +      GHO                     : ARR( 0.400E+15,  4308., 0.0);
+{ 76854} GPA501v                     =       G3A501Y +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 76855} GPA501v +GHO                =       GPA501Y +      GHO                                    : ARR( 0.387E-11,     0., 0.0);
+{ 76856} GPA501v +GHO                =       GPA501b +      GHO                                    : ARR( 0.523E-11,     0., 0.0);
+{ 76857} GPA501v +GHO                =       G2P5089                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 76858} GPA501v +GHO                =       G2P508A                                               : ARR( 0.198E-11,  -190., 0.0);
+{ 76859} GPA501v+HV               =       G1P50Ad +      GHO                                    :  0.100E+01*SUN;
+{ 76860} GPA501v+HV               =       G1P50BD +      GNO2                                   :  0.100E+01*SUN;
+{ 76861} GPA501v+HV               =       G1P50Ah +      GHO                                    :  0.100E+01*SUN;
+{ 76862} GPA501v+HV               =       G3A501Y +      GNO2                                   :  0.100E+01*SUN;
+{ 76863} G2P5089 +GNO                =       G1P50Ad +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 76864} G2P5089 +GNO                =       GPA501U                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 76865} G2P5089 +GHO2               =       GPA501v                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 76866} G2P5089 +GNO3               =       G1P50Ad +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 76867} G2P5089 +MEPERO             =  0.340G1P50Ad + 0.330GPA500e + 0.330GPA501Y                 : ARR( 0.565E-13,  -845., 0.0);
+{ 76868} G2P5089 +PERO1              =  0.460G1P50Ad + 0.270GPA500e + 0.270GPA501Y                 : ARR( 0.434E-13,  -900., 0.0);
+{ 76869} G2P5089 +PERO2              =  0.400G1P50Ad + 0.300GPA500e + 0.300GPA501Y                 : ARR( 0.162E-13, -1400., 0.0);
+{ 76870} G2P5089 +PERO3              =  0.460G1P50Ad + 0.270GPA500e + 0.270GPA501Y                 : ARR( 0.488E-13, -1250., 0.0);
+{ 76871} G2P5089 +PERO5              =  0.460G1P50Ad + 0.270GPA500e + 0.270GPA501Y                 : ARR( 0.183E-11,   450., 0.0);
+{ 76872} G2P5089 +PERO6              =  0.300G1P50Ad + 0.350GPA500e + 0.350GPA501Y                 : ARR( 0.168E-13, -1300., 0.0);
+{ 76873} G2P5089 +PERO9              =  0.650G1P50Ad + 0.350GPA501Y                                : ARR( 0.100E-10,     0., 0.0);
+{ 76874} G2P508A +GNO                =       G1P50Ah +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 76875} G2P508A +GNO                =       GPA501a                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 76876} G2P508A +GHO2               =       GPA501v                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 76877} G2P508A +GNO3               =       G1P50Ah +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 76878} G2P508A +MEPERO             =  0.340G1P50Ah + 0.330GPA500h + 0.330GPA501b                 : ARR( 0.565E-13,  -845., 0.0);
+{ 76879} G2P508A +PERO1              =  0.460G1P50Ah + 0.270GPA500h + 0.270GPA501b                 : ARR( 0.434E-13,  -900., 0.0);
+{ 76880} G2P508A +PERO2              =  0.400G1P50Ah + 0.300GPA500h + 0.300GPA501b                 : ARR( 0.162E-13, -1400., 0.0);
+{ 76881} G2P508A +PERO3              =  0.460G1P50Ah + 0.270GPA500h + 0.270GPA501b                 : ARR( 0.488E-13, -1250., 0.0);
+{ 76882} G2P508A +PERO5              =  0.460G1P50Ah + 0.270GPA500h + 0.270GPA501b                 : ARR( 0.183E-11,   450., 0.0);
+{ 76883} G2P508A +PERO6              =  0.300G1P50Ah + 0.350GPA500h + 0.350GPA501b                 : ARR( 0.168E-13, -1300., 0.0);
+{ 76884} G2P508A +PERO9              =  0.650G1P50Ah + 0.350GPA501b                                : ARR( 0.100E-10,     0., 0.0);
+{ 76885} G1P50BD                     =       GAD2000 +      GPH3007 +      GHO                     : ARR( 0.200E+15,  4308., 0.0);
+{ 76886} G1P50BD                     =       GAH3007 +      GPD2000 +      GHO                     : ARR( 0.200E+15,  4308., 0.0);
+{ 76887} GPG501q                     =       G3G501f +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 76888} GPG501q +GHO                =       GPG5021 +      GHO                                    : ARR( 0.505E-11,     0., 0.0);
+{ 76889} GPG501q +GHO                =       GPG501U +      GHO                                    : ARR( 0.505E-11,     0., 0.0);
+{ 76890} GPG501q +GHO                =       G3P501Y                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 76891} GPG501q +GHO                =       G2P508B                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 76892} GPG501q +GHO                =       G2P508C                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 76893} GPG501q+HV               =       GPH400m +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 76894} GPG501q+HV               =       G1P50Ar +      GHO                                    :  0.100E+01*SUN;
+{ 76895} GPG501q+HV               =       G1P50BE +      GNO2                                   :  0.100E+01*SUN;
+{ 76896} GPG501q+HV               =       G1P50Au +      GHO                                    :  0.100E+01*SUN;
+{ 76897} GPG501q+HV               =       G3G501f +      GNO2                                   :  0.100E+01*SUN;
+{ 76898} G2P508B +GNO                =       G1P50Ar +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 76899} G2P508B +GNO                =       GPG501S                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 76900} G2P508B +GHO2               =       GPG501q                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 76901} G2P508B +GNO3               =       G1P50Ar +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 76902} G2P508B +MEPERO             =  0.340G1P50Ar + 0.330GPG501H + 0.330GPG5021                 : ARR( 0.565E-13,  -845., 0.0);
+{ 76903} G2P508B +PERO1              =  0.460G1P50Ar + 0.270GPG501H + 0.270GPG5021                 : ARR( 0.434E-13,  -900., 0.0);
+{ 76904} G2P508B +PERO2              =  0.400G1P50Ar + 0.300GPG501H + 0.300GPG5021                 : ARR( 0.162E-13, -1400., 0.0);
+{ 76905} G2P508B +PERO3              =  0.460G1P50Ar + 0.270GPG501H + 0.270GPG5021                 : ARR( 0.488E-13, -1250., 0.0);
+{ 76906} G2P508B +PERO5              =  0.460G1P50Ar + 0.270GPG501H + 0.270GPG5021                 : ARR( 0.183E-11,   450., 0.0);
+{ 76907} G2P508B +PERO6              =  0.300G1P50Ar + 0.350GPG501H + 0.350GPG5021                 : ARR( 0.168E-13, -1300., 0.0);
+{ 76908} G2P508B +PERO9              =  0.650G1P50Ar + 0.350GPG5021                                : ARR( 0.100E-10,     0., 0.0);
+{ 76909} G2P508C +GNO                =       G1P50Au +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 76910} G2P508C +GNO                =       GPG501T                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 76911} G2P508C +GHO2               =       GPG501q                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 76912} G2P508C +GNO3               =       G1P50Au +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 76913} G2P508C +MEPERO             =  0.340G1P50Au + 0.330GPG500y + 0.330GPG501U                 : ARR( 0.565E-13,  -845., 0.0);
+{ 76914} G2P508C +PERO1              =  0.460G1P50Au + 0.270GPG500y + 0.270GPG501U                 : ARR( 0.434E-13,  -900., 0.0);
+{ 76915} G2P508C +PERO2              =  0.400G1P50Au + 0.300GPG500y + 0.300GPG501U                 : ARR( 0.162E-13, -1400., 0.0);
+{ 76916} G2P508C +PERO3              =  0.460G1P50Au + 0.270GPG500y + 0.270GPG501U                 : ARR( 0.488E-13, -1250., 0.0);
+{ 76917} G2P508C +PERO5              =  0.460G1P50Au + 0.270GPG500y + 0.270GPG501U                 : ARR( 0.183E-11,   450., 0.0);
+{ 76918} G2P508C +PERO6              =  0.300G1P50Au + 0.350GPG500y + 0.350GPG501U                 : ARR( 0.168E-13, -1300., 0.0);
+{ 76919} G2P508C +PERO9              =  0.650G1P50Au + 0.350GPG501U                                : ARR( 0.100E-10,     0., 0.0);
+{ 76920} G1P50BE                     =       GGD2000 +      GPH3007 +      GHO                     : ARR( 0.200E+15,  4308., 0.0);
+{ 76921} G1P50BE                     =       GGH3007 +      GPD2000 +      GHO                     : ARR( 0.200E+15,  4308., 0.0);
+{ 76922} GPP5016                     =       G3P501Y +      GNO2                                   : ARR( 0.400E+16, 12800., 0.0);
+{ 76923} GPP5016 +GHO                =       GPP500q +      GHO                                    : ARR( 0.101E-10,     0., 0.0);
+{ 76924} GPP5016 +GHO                =       G2P508D                                               : ARR( 0.383E-11,  -190., 0.0);
+{ 76925} GPP5016+HV               =       G3P501Y +      GNO2                                   :  0.200E+01*SUN;
+{ 76926} GPP5016+HV               =       G1P50Aj +      GHO                                    :  0.200E+01*SUN;
+{ 76927} GPP5016+HV               =       G1P50BF +      GNO2                                   :  0.100E+01*SUN;
+{ 76928} G2P508D +GNO                =       G1P50Aj +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 76929} G2P508D +GNO                =       GPP500o                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 76930} G2P508D +GHO2               =       GPP5016                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 76931} G2P508D +GNO3               =       G1P50Aj +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 76932} G2P508D +MEPERO             =  0.340G1P50Aj + 0.330GPP500M + 0.330GPP500q                 : ARR( 0.565E-13,  -845., 0.0);
+{ 76933} G2P508D +PERO1              =  0.460G1P50Aj + 0.270GPP500M + 0.270GPP500q                 : ARR( 0.434E-13,  -900., 0.0);
+{ 76934} G2P508D +PERO2              =  0.400G1P50Aj + 0.300GPP500M + 0.300GPP500q                 : ARR( 0.162E-13, -1400., 0.0);
+{ 76935} G2P508D +PERO3              =  0.460G1P50Aj + 0.270GPP500M + 0.270GPP500q                 : ARR( 0.488E-13, -1250., 0.0);
+{ 76936} G2P508D +PERO5              =  0.460G1P50Aj + 0.270GPP500M + 0.270GPP500q                 : ARR( 0.183E-11,   450., 0.0);
+{ 76937} G2P508D +PERO6              =  0.300G1P50Aj + 0.350GPP500M + 0.350GPP500q                 : ARR( 0.168E-13, -1300., 0.0);
+{ 76938} G2P508D +PERO9              =  0.650G1P50Aj + 0.350GPP500q                                : ARR( 0.100E-10,     0., 0.0);
+{ 76939} G1P50BF                     =       GPD2000 +      GPH3007 +      GHO                     : ARR( 0.400E+15,  4308., 0.0);
+{ 76940} GPG501r                     =       G3G501N +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 76941} GPG501r +GHO                =       GPG501c +      GHO                                    : ARR( 0.826E-11,     0., 0.0);
+{ 76942} GPG501r +GHO                =       GPG501s +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 76943} GPG501r +GHO                =       G3P501d                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 76944} GPG501r +GHO                =       G2P508E                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 76945} GPG501r +GHO                =       G2P5075                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 76946} GPG501r+HV               =       GPH400w +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 76947} GPG501r+HV               =       G1P50BG +      GNO2                                   :  0.100E+01*SUN;
+{ 76948} GPG501r+HV               =       G1P50As +      GHO                                    :  0.100E+01*SUN;
+{ 76949} GPG501r+HV               =       G1P50A5 +      GHO                                    :  0.100E+01*SUN;
+{ 76950} GPG501r+HV               =       G3G501N +      GNO2                                   :  0.100E+01*SUN;
+{ 76951} G2P508E +GNO                =       G1P50As +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 76952} G2P508E +GNO                =       GPG501S                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 76953} G2P508E +GHO2               =       GPG501r                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 76954} G2P508E +GNO3               =       G1P50As +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 76955} G2P508E +MEPERO             =  0.340G1P50As + 0.330GPG501w + 0.330GPG501c                 : ARR( 0.565E-13,  -845., 0.0);
+{ 76956} G2P508E +PERO1              =  0.460G1P50As + 0.270GPG501w + 0.270GPG501c                 : ARR( 0.434E-13,  -900., 0.0);
+{ 76957} G2P508E +PERO2              =  0.400G1P50As + 0.300GPG501w + 0.300GPG501c                 : ARR( 0.162E-13, -1400., 0.0);
+{ 76958} G2P508E +PERO3              =  0.460G1P50As + 0.270GPG501w + 0.270GPG501c                 : ARR( 0.488E-13, -1250., 0.0);
+{ 76959} G2P508E +PERO5              =  0.460G1P50As + 0.270GPG501w + 0.270GPG501c                 : ARR( 0.183E-11,   450., 0.0);
+{ 76960} G2P508E +PERO6              =  0.300G1P50As + 0.350GPG501w + 0.350GPG501c                 : ARR( 0.168E-13, -1300., 0.0);
+{ 76961} G2P508E +PERO9              =  0.650G1P50As + 0.350GPG501c                                : ARR( 0.100E-10,     0., 0.0);
+{ 76962} G1P50BG                     =       GCO     +      GPH400w +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 76963} GPG501s                     =       G3G501v +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 76964} GPG501s +GHO                =       GPG501d +      GHO                                    : ARR( 0.512E-11,     0., 0.0);
+{ 76965} GPG501s +GHO                =       G3P501c                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 76966} GPG501s +GHO                =       G2P508F                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 76967} GPG501s+HV               =       GPH400t +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 76968} GPG501s+HV               =       G1P50AA +      GNO2                                   :  0.100E+01*SUN;
+{ 76969} GPG501s+HV               =       G1P50Aq +      GHO                                    :  0.100E+01*SUN;
+{ 76970} GPG501s+HV               =       G3G400H +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 76971} G3G501v +GHO2               =  0.800GGG500w + 0.200GAG501u + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 76972} G3G501v +GNO                =       G3G400H +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 76973} G3G501v +GNO2               =       GPG501s                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 76974} G3G501v +GNO3               =       G3G400H +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 76975} G3G501v +MEPERO             =  0.685G3G400H + 0.315GAG501u + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 76976} G3G501v +PERO1              =  0.800G3G400H + 0.200GAG501u + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 76977} G3G501v +PERO2              =  0.750G3G400H + 0.250GAG501u + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 76978} G3G501v +PERO3              =  0.800G3G400H + 0.200GAG501u + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 76979} G3G501v +PERO5              =  0.650G3G400H + 0.350GAG501u + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 76980} G3G501v +PERO6              =  0.650G3G400H + 0.350GAG501u + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 76981} G3G501v +PERO9              =       G3G400H +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 76982} G2P508F +GNO                =       G1P50Aq +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 76983} G2P508F +GNO                =       GPG501R                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 76984} G2P508F +GHO2               =       GPG501s                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 76985} G2P508F +GNO3               =       G1P50Aq +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 76986} G2P508F +MEPERO             =  0.340G1P50Aq + 0.330GPG501Z + 0.330GPG501d                 : ARR( 0.565E-13,  -845., 0.0);
+{ 76987} G2P508F +PERO1              =  0.460G1P50Aq + 0.270GPG501Z + 0.270GPG501d                 : ARR( 0.434E-13,  -900., 0.0);
+{ 76988} G2P508F +PERO2              =  0.400G1P50Aq + 0.300GPG501Z + 0.300GPG501d                 : ARR( 0.162E-13, -1400., 0.0);
+{ 76989} G2P508F +PERO3              =  0.460G1P50Aq + 0.270GPG501Z + 0.270GPG501d                 : ARR( 0.488E-13, -1250., 0.0);
+{ 76990} G2P508F +PERO5              =  0.460G1P50Aq + 0.270GPG501Z + 0.270GPG501d                 : ARR( 0.183E-11,   450., 0.0);
+{ 76991} G2P508F +PERO6              =  0.300G1P50Aq + 0.350GPG501Z + 0.350GPG501d                 : ARR( 0.168E-13, -1300., 0.0);
+{ 76992} G2P508F +PERO9              =  0.650G1P50Aq + 0.350GPG501d                                : ARR( 0.100E-10,     0., 0.0);
+{ 76993} GGG500u +GHO                =       GGG500p +      GHO                                    : ARR( 0.167E-11,     0., 0.0);
+{ 76994} GGG500u +GHO                =       G3G501M                                               : ARR( 0.384E-11,  -190., 0.0);
+{ 76995} GGG500u +GHO                =       G2G506C                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 76996} GGG500u+HV               =       GGH400o +      GHO     +      GNO2    +      GCO2     :  0.200E+01*SUN;
+{ 76997} GGG500u+HV               =       G1G508e +      GNO2                                   :  0.200E+01*SUN;
+{ 76998} GGG500u+HV               =       G1G508f +      GHO                                    :  0.100E+01*SUN;
+{ 76999} G2G506C +GNO                =       G1G508f +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 77000} G2G506C +GNO                =       GGG5014                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 77001} G2G506C +GHO2               =       GGG500u                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 77002} G2G506C +GNO3               =       G1G508f +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 77003} G2G506C +MEPERO             =  0.340G1G508f + 0.330GGG500z + 0.330GGG500p                 : ARR( 0.565E-13,  -845., 0.0);
+{ 77004} G2G506C +PERO1              =  0.460G1G508f + 0.270GGG500z + 0.270GGG500p                 : ARR( 0.434E-13,  -900., 0.0);
+{ 77005} G2G506C +PERO2              =  0.400G1G508f + 0.300GGG500z + 0.300GGG500p                 : ARR( 0.162E-13, -1400., 0.0);
+{ 77006} G2G506C +PERO3              =  0.460G1G508f + 0.270GGG500z + 0.270GGG500p                 : ARR( 0.488E-13, -1250., 0.0);
+{ 77007} G2G506C +PERO5              =  0.460G1G508f + 0.270GGG500z + 0.270GGG500p                 : ARR( 0.183E-11,   450., 0.0);
+{ 77008} G2G506C +PERO6              =  0.300G1G508f + 0.350GGG500z + 0.350GGG500p                 : ARR( 0.168E-13, -1300., 0.0);
+{ 77009} G2G506C +PERO9              =  0.650G1G508f + 0.350GGG500p                                : ARR( 0.100E-10,     0., 0.0);
+{ 77010} G1G508e                     =       GGH400o +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 77011} G1G508f                     =       GGD2000 +      GGN3005 +      GNO2                    : ARR( 0.400E+15,  5846., 0.0);
+{ 77012} GGG500v +GHO                =       GGG500q +      GHO                                    : ARR( 0.825E-11,     0., 0.0);
+{ 77013} GGG500v +GHO                =       GGG500w +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 77014} GGG500v +GHO                =       G3G501Q                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 77015} GGG500v +GHO                =       G2G506D                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 77016} GGG500v +GHO                =       G2G506E                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 77017} GGG500v +GHO                =       G3G501N                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 77018} GGG500v+HV               =       GGH400v +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 77019} GGG500v+HV               =       G1G508g +      GNO2                                   :  0.100E+01*SUN;
+{ 77020} GGG500v+HV               =       G1G508h +      GHO                                    :  0.100E+01*SUN;
+{ 77021} GGG500v+HV               =       G1G508e +      GHO                                    :  0.100E+01*SUN;
+{ 77022} GGG500v+HV               =       GGH400o +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 77023} G2G506D +GNO                =       G1G508h +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 77024} G2G506D +GNO                =       GGG5015                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 77025} G2G506D +GHO2               =       GGG500v                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 77026} G2G506D +GNO3               =       G1G508h +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 77027} G2G506D +MEPERO             =  0.340G1G508h + 0.330GGG5011 + 0.330GGG500q                 : ARR( 0.565E-13,  -845., 0.0);
+{ 77028} G2G506D +PERO1              =  0.460G1G508h + 0.270GGG5011 + 0.270GGG500q                 : ARR( 0.434E-13,  -900., 0.0);
+{ 77029} G2G506D +PERO2              =  0.400G1G508h + 0.300GGG5011 + 0.300GGG500q                 : ARR( 0.162E-13, -1400., 0.0);
+{ 77030} G2G506D +PERO3              =  0.460G1G508h + 0.270GGG5011 + 0.270GGG500q                 : ARR( 0.488E-13, -1250., 0.0);
+{ 77031} G2G506D +PERO5              =  0.460G1G508h + 0.270GGG5011 + 0.270GGG500q                 : ARR( 0.183E-11,   450., 0.0);
+{ 77032} G2G506D +PERO6              =  0.300G1G508h + 0.350GGG5011 + 0.350GGG500q                 : ARR( 0.168E-13, -1300., 0.0);
+{ 77033} G2G506D +PERO9              =  0.650G1G508h + 0.350GGG500q                                : ARR( 0.100E-10,     0., 0.0);
+{ 77034} G2G506E +GNO                =       G1G508e +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 77035} G2G506E +GNO                =       GGG500u                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 77036} G2G506E +GHO2               =       GGG500v                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 77037} G2G506E +GNO3               =       G1G508e +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 77038} G2G506E +MEPERO             =  0.340G1G508e + 0.330GGG500e + 0.330GGG500w                 : ARR( 0.565E-13,  -845., 0.0);
+{ 77039} G2G506E +PERO1              =  0.460G1G508e + 0.270GGG500e + 0.270GGG500w                 : ARR( 0.434E-13,  -900., 0.0);
+{ 77040} G2G506E +PERO2              =  0.400G1G508e + 0.300GGG500e + 0.300GGG500w                 : ARR( 0.162E-13, -1400., 0.0);
+{ 77041} G2G506E +PERO3              =  0.460G1G508e + 0.270GGG500e + 0.270GGG500w                 : ARR( 0.488E-13, -1250., 0.0);
+{ 77042} G2G506E +PERO5              =  0.460G1G508e + 0.270GGG500e + 0.270GGG500w                 : ARR( 0.183E-11,   450., 0.0);
+{ 77043} G2G506E +PERO6              =  0.300G1G508e + 0.350GGG500e + 0.350GGG500w                 : ARR( 0.168E-13, -1300., 0.0);
+{ 77044} G2G506E +PERO9              =  0.650G1G508e + 0.350GGG500w                                : ARR( 0.100E-10,     0., 0.0);
+{ 77045} G1G508g                     =       GGH400v +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 77046} G1G508h                     =       GGN3005 +      GGD2000 +      GHO                     : ARR( 0.200E+15,  4308., 0.0);
+{ 77047} GAG501r +GHO                =       GAG501u +      GHO                                    : ARR( 0.189E-10,     0., 0.0);
+{ 77048} GAG501r +GHO                =       GAG501h +      GHO                                    : ARR( 0.837E-11,     0., 0.0);
+{ 77049} GAG501r +GHO                =       G2A507P                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 77050} GAG501r +GHO                =       G2A507Q                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 77051} GAG501r +GHO                =       G3A501d                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 77052} GAG501r+HV               =       G1A509o +      GHO                                    :  0.100E+01*SUN;
+{ 77053} GAG501r+HV               =       G1A509v +      GHO                                    :  0.100E+01*SUN;
+{ 77054} GAG501r+HV               =       G1A509z +      GNO2                                   :  0.100E+01*SUN;
+{ 77055} GAG501r+HV               =       GAH400w +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 77056} G2A507P +GNO                =       G1A509o +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 77057} G2A507P +GNO                =       GAG501j                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 77058} G2A507P +GHO2               =       GAG501r                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 77059} G2A507P +GNO3               =       G1A509o +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 77060} G2A507P +MEPERO             =  0.340G1A509o + 0.330GAG501C + 0.330GAG501u                 : ARR( 0.565E-13,  -845., 0.0);
+{ 77061} G2A507P +PERO1              =  0.460G1A509o + 0.270GAG501C + 0.270GAG501u                 : ARR( 0.434E-13,  -900., 0.0);
+{ 77062} G2A507P +PERO2              =  0.400G1A509o + 0.300GAG501C + 0.300GAG501u                 : ARR( 0.162E-13, -1400., 0.0);
+{ 77063} G2A507P +PERO3              =  0.460G1A509o + 0.270GAG501C + 0.270GAG501u                 : ARR( 0.488E-13, -1250., 0.0);
+{ 77064} G2A507P +PERO5              =  0.460G1A509o + 0.270GAG501C + 0.270GAG501u                 : ARR( 0.183E-11,   450., 0.0);
+{ 77065} G2A507P +PERO6              =  0.300G1A509o + 0.350GAG501C + 0.350GAG501u                 : ARR( 0.168E-13, -1300., 0.0);
+{ 77066} G2A507P +PERO9              =  0.650G1A509o + 0.350GAG501u                                : ARR( 0.100E-10,     0., 0.0);
+{ 77067} G2A507Q +GNO                =       G1A509v +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 77068} G2A507Q +GNO                =       GAG501p                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 77069} G2A507Q +GHO2               =       GAG501r                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 77070} G2A507Q +GNO3               =       G1A509v +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 77071} G2A507Q +MEPERO             =  0.340G1A509v + 0.330GAG501w + 0.330GAG501h                 : ARR( 0.565E-13,  -845., 0.0);
+{ 77072} G2A507Q +PERO1              =  0.460G1A509v + 0.270GAG501w + 0.270GAG501h                 : ARR( 0.434E-13,  -900., 0.0);
+{ 77073} G2A507Q +PERO2              =  0.400G1A509v + 0.300GAG501w + 0.300GAG501h                 : ARR( 0.162E-13, -1400., 0.0);
+{ 77074} G2A507Q +PERO3              =  0.460G1A509v + 0.270GAG501w + 0.270GAG501h                 : ARR( 0.488E-13, -1250., 0.0);
+{ 77075} G2A507Q +PERO5              =  0.460G1A509v + 0.270GAG501w + 0.270GAG501h                 : ARR( 0.183E-11,   450., 0.0);
+{ 77076} G2A507Q +PERO6              =  0.300G1A509v + 0.350GAG501w + 0.350GAG501h                 : ARR( 0.168E-13, -1300., 0.0);
+{ 77077} G2A507Q +PERO9              =  0.650G1A509v + 0.350GAG501h                                : ARR( 0.100E-10,     0., 0.0);
+{ 77078} G1A509z                     =       GAH400w +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 77079} GGG500w +GHO                =       GGG500r +      GHO                                    : ARR( 0.510E-11,     0., 0.0);
+{ 77080} GGG500w +GHO                =       G3G501P                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 77081} GGG500w +GHO                =       G2G506F                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 77082} GGG500w +GHO                =       G3G501v                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 77083} GGG500w+HV               =       GGH400p +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 77084} GGG500w+HV               =       G1G507t +      GNO2                                   :  0.100E+01*SUN;
+{ 77085} GGG500w+HV               =       G1G508i +      GHO                                    :  0.100E+01*SUN;
+{ 77086} GGG500w+HV               =       GAG400K +      GCO2                                   :  0.100E+01*SUN;
+{ 77087} G2G506F +GNO                =       G1G508i +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 77088} G2G506F +GNO                =       GGG5016                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 77089} G2G506F +GHO2               =       GGG500w                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 77090} G2G506F +GNO3               =       G1G508i +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 77091} G2G506F +MEPERO             =  0.340G1G508i + 0.330GGG500m + 0.330GGG500r                 : ARR( 0.565E-13,  -845., 0.0);
+{ 77092} G2G506F +PERO1              =  0.460G1G508i + 0.270GGG500m + 0.270GGG500r                 : ARR( 0.434E-13,  -900., 0.0);
+{ 77093} G2G506F +PERO2              =  0.400G1G508i + 0.300GGG500m + 0.300GGG500r                 : ARR( 0.162E-13, -1400., 0.0);
+{ 77094} G2G506F +PERO3              =  0.460G1G508i + 0.270GGG500m + 0.270GGG500r                 : ARR( 0.488E-13, -1250., 0.0);
+{ 77095} G2G506F +PERO5              =  0.460G1G508i + 0.270GGG500m + 0.270GGG500r                 : ARR( 0.183E-11,   450., 0.0);
+{ 77096} G2G506F +PERO6              =  0.300G1G508i + 0.350GGG500m + 0.350GGG500r                 : ARR( 0.168E-13, -1300., 0.0);
+{ 77097} G2G506F +PERO9              =  0.650G1G508i + 0.350GGG500r                                : ARR( 0.100E-10,     0., 0.0);
+{ 77098} G1G508i                     =       GGN3005 +      GCO     +      GHO2    +      GCO      : ARR( 0.200E+15,  2436., 0.0);
+{ 77099} GGG500x +GHO                =       GGG500s +      GHO                                    : ARR( 0.286E-10,     0., 0.0);
+{ 77100} GGG500x +GHO                =       GGG500y +      GHO                                    : ARR( 0.906E-10,     0., 0.0);
+{ 77101} GGG500x+HV               =       GAG400O +      GCO2                                   :  0.100E+01*SUN;
+{ 77102} GGG500x+HV               =       G1G508j +      GHO                                    :  0.100E+01*SUN;
+{ 77103} GGG500x+HV               =       G1G507t +      GHO                                    :  0.100E+01*SUN;
+{ 77104} GGG500x+HV               =       GGH400p +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 77105} G1G508j                     =       GGH3007 +      GCO     +      GHO2    +      GCO      : ARR( 0.200E+15,  2436., 0.0);
+{ 77106} GGG500y +GHO                =       GGG500t +      GHO                                    : ARR( 0.153E-10,     0., 0.0);
+{ 77107} GGG500y +GHO                =       G3G501w                                               : ARR( 0.380E-11,  -190., 0.0);
+{ 77108} GGG500y +GHO                =       G2G505b                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 77109} GGG500y+HV               =       GAG400M +      GCO2                                   :  0.200E+01*SUN;
+{ 77110} GGG500y+HV               =       G1G508B +      GHO                                    :  0.100E+01*SUN;
+{ 77111} G3G501w +GHO2               =  0.800GGG500y + 0.200GAG501t + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 77112} G3G501w +GNO                =       G3G400I +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 77113} G3G501w +GNO2               =       GPG501u                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 77114} G3G501w +GNO3               =       G3G400I +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 77115} G3G501w +MEPERO             =  0.685G3G400I + 0.315GAG501t + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 77116} G3G501w +PERO1              =  0.800G3G400I + 0.200GAG501t + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 77117} G3G501w +PERO2              =  0.750G3G400I + 0.250GAG501t + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 77118} G3G501w +PERO3              =  0.800G3G400I + 0.200GAG501t + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 77119} G3G501w +PERO5              =  0.650G3G400I + 0.350GAG501t + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 77120} G3G501w +PERO6              =  0.650G3G400I + 0.350GAG501t + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 77121} G3G501w +PERO9              =       G3G400I +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 77122} GAG501s +GHO                =       GAG501t +      GHO                                    : ARR( 0.669E-10,     0., 0.0);
+{ 77123} GAG501s +GHO                =       GAG501i +      GHO                                    : ARR( 0.285E-10,     0., 0.0);
+{ 77124} GAG501s+HV               =       G1A508y +      GHO                                    :  0.100E+01*SUN;
+{ 77125} GAG501s+HV               =       G1A50A1 +      GHO                                    :  0.100E+01*SUN;
+{ 77126} GAG501s+HV               =       GAA400E +      GCO2                                   :  0.100E+01*SUN;
+{ 77127} G1A50A1                     =       GAH3007 +      GCO     +      GHO2    +      GCO      : ARR( 0.200E+15,  2436., 0.0);
+{ 77128} GAG501t +GHO                =       GAG501g +      GHO                                    : ARR( 0.157E-10,     0., 0.0);
+{ 77129} GAG501t +GHO                =       G2A506d                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 77130} GAG501t +GHO                =       G3A5022                                               : ARR( 0.194E-11,  -190., 0.0);
+{ 77131} GAG501t+HV               =       GGH400p +      GCO2                                   :  0.100E+01*SUN;
+{ 77132} GAG501t+HV               =       G1A509G +      GHO                                    :  0.100E+01*SUN;
+{ 77133} GAG501t+HV               =       GAA400A +      GCO2                                   :  0.100E+01*SUN;
+{ 77134} G3A5022 +GHO2               =  0.800GAG501t + 0.200GAA5019 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 77135} G3A5022 +GNO                =       G3A400K +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 77136} G3A5022 +GNO2               =       GPA501x                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 77137} G3A5022 +GNO3               =       G3A400K +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 77138} G3A5022 +MEPERO             =  0.685G3A400K + 0.315GAA5019 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 77139} G3A5022 +PERO1              =  0.800G3A400K + 0.200GAA5019 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 77140} G3A5022 +PERO2              =  0.750G3A400K + 0.250GAA5019 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 77141} G3A5022 +PERO3              =  0.800G3A400K + 0.200GAA5019 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 77142} G3A5022 +PERO5              =  0.650G3A400K + 0.350GAA5019 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 77143} G3A5022 +PERO6              =  0.650G3A400K + 0.350GAA5019 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 77144} G3A5022 +PERO9              =       G3A400K +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 77145} GPG501t                     =       G3G501x +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 77146} GPG501t +GHO                =       GPG501f +      GHO                                    : ARR( 0.277E-10,     0., 0.0);
+{ 77147} GPG501t +GHO                =       GPG501u +      GHO                                    : ARR( 0.879E-10,     0., 0.0);
+{ 77148} GPG501t+HV               =       GPA400O +      GCO2                                   :  0.100E+01*SUN;
+{ 77149} GPG501t+HV               =       G1P50BH +      GHO                                    :  0.100E+01*SUN;
+{ 77150} GPG501t+HV               =       G1P50A6 +      GHO                                    :  0.100E+01*SUN;
+{ 77151} GPG501t+HV               =       G3G501x +      GNO2                                   :  0.100E+01*SUN;
+{ 77152} G3G501x +GHO2               =  0.800GGG500x + 0.200GAG501s + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 77153} G3G501x +GNO                =       GGH400p +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 77154} G3G501x +GNO2               =       GPG501t                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 77155} G3G501x +GNO3               =       GGH400p +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 77156} G3G501x +MEPERO             =  0.685GGH400p + 0.315GAG501s + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 77157} G3G501x +PERO1              =  0.800GGH400p + 0.200GAG501s + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 77158} G3G501x +PERO2              =  0.750GGH400p + 0.250GAG501s + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 77159} G3G501x +PERO3              =  0.800GGH400p + 0.200GAG501s + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 77160} G3G501x +PERO5              =  0.650GGH400p + 0.350GAG501s + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 77161} G3G501x +PERO6              =  0.650GGH400p + 0.350GAG501s + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 77162} G3G501x +PERO9              =       GGH400p +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 77163} G1P50BH                     =       GCO     +      GPH3007 +      GHO2    +      GCO      : ARR( 0.200E+15,  2436., 0.0);
+{ 77164} GPG501u                     =       G3G501w +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 77165} GPG501u +GHO                =       GPG501g +      GHO                                    : ARR( 0.153E-10,     0., 0.0);
+{ 77166} GPG501u +GHO                =       G3P501y                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 77167} GPG501u +GHO                =       G2P507N                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 77168} GPG501u+HV               =       GPA400L +      GCO2                                   :  0.100E+01*SUN;
+{ 77169} GPG501u+HV               =       G1P50AN +      GHO                                    :  0.100E+01*SUN;
+{ 77170} GPG501u+HV               =       G3G400I +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 77171} G3P501y +GHO2               =  0.800GPG501u + 0.200GPA501x + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 77172} G3P501y +GNO                =       G3P400K +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 77173} G3P501y +GNO2               =       GPP5018                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 77174} G3P501y +GNO3               =       G3P400K +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 77175} G3P501y +MEPERO             =  0.685G3P400K + 0.315GPA501x + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 77176} G3P501y +PERO1              =  0.800G3P400K + 0.200GPA501x + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 77177} G3P501y +PERO2              =  0.750G3P400K + 0.250GPA501x + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 77178} G3P501y +PERO3              =  0.800G3P400K + 0.200GPA501x + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 77179} G3P501y +PERO5              =  0.650G3P400K + 0.350GPA501x + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 77180} G3P501y +PERO6              =  0.650G3P400K + 0.350GPA501x + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 77181} G3P501y +PERO9              =       G3P400K +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 77182} GAA5016 +GHO                =       GAA500v +      GHO                                    : ARR( 0.168E-11,     0., 0.0);
+{ 77183} GAA5016 +GHO                =       G2A507R                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 77184} GAA5016 +GHO                =       GAH400r +      GNO2    +      GCO2                    : ARR( 0.106E-11,     0., 0.0);
+{ 77185} GAA5016+HV               =       G1A50A2 +      GNO2                                   :  0.200E+01*SUN;
+{ 77186} GAA5016+HV               =       G1A509Y +      GHO                                    :  0.100E+01*SUN;
+{ 77187} G2A507R +GNO                =       G1A509Y +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 77188} G2A507R +GNO                =       GAA500q                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 77189} G2A507R +GHO2               =       GAA5016                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 77190} G2A507R +GNO3               =       G1A509Y +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 77191} G2A507R +MEPERO             =  0.340G1A509Y + 0.330GAA5013 + 0.330GAA500v                 : ARR( 0.565E-13,  -845., 0.0);
+{ 77192} G2A507R +PERO1              =  0.460G1A509Y + 0.270GAA5013 + 0.270GAA500v                 : ARR( 0.434E-13,  -900., 0.0);
+{ 77193} G2A507R +PERO2              =  0.400G1A509Y + 0.300GAA5013 + 0.300GAA500v                 : ARR( 0.162E-13, -1400., 0.0);
+{ 77194} G2A507R +PERO3              =  0.460G1A509Y + 0.270GAA5013 + 0.270GAA500v                 : ARR( 0.488E-13, -1250., 0.0);
+{ 77195} G2A507R +PERO5              =  0.460G1A509Y + 0.270GAA5013 + 0.270GAA500v                 : ARR( 0.183E-11,   450., 0.0);
+{ 77196} G2A507R +PERO6              =  0.300G1A509Y + 0.350GAA5013 + 0.350GAA500v                 : ARR( 0.168E-13, -1300., 0.0);
+{ 77197} G2A507R +PERO9              =  0.650G1A509Y + 0.350GAA500v                                : ARR( 0.100E-10,     0., 0.0);
+{ 77198} G1A50A2                     =       GAH400r +      GCO     +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 77199} GAA5017 +GHO                =       GAA500w +      GHO                                    : ARR( 0.851E-11,     0., 0.0);
+{ 77200} GAA5017 +GHO                =       GAA5011 +      GHO                                    : ARR( 0.192E-10,     0., 0.0);
+{ 77201} GAA5017 +GHO                =       G2A507S                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 77202} GAA5017 +GHO                =       G2A507T                                               : ARR( 0.196E-11,  -190., 0.0);
+{ 77203} GAA5017+HV               =       G1A50A3 +      GNO2                                   :  0.100E+01*SUN;
+{ 77204} GAA5017+HV               =       G1A509a +      GHO                                    :  0.100E+01*SUN;
+{ 77205} GAA5017+HV               =       G1A50A2 +      GHO                                    :  0.100E+01*SUN;
+{ 77206} G2A507S +GNO                =       G1A509a +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 77207} G2A507S +GNO                =       GAA500r                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 77208} G2A507S +GHO2               =       GAA5017                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 77209} G2A507S +GNO3               =       G1A509a +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 77210} G2A507S +MEPERO             =  0.340G1A509a + 0.330GAA5014 + 0.330GAA500w                 : ARR( 0.565E-13,  -845., 0.0);
+{ 77211} G2A507S +PERO1              =  0.460G1A509a + 0.270GAA5014 + 0.270GAA500w                 : ARR( 0.434E-13,  -900., 0.0);
+{ 77212} G2A507S +PERO2              =  0.400G1A509a + 0.300GAA5014 + 0.300GAA500w                 : ARR( 0.162E-13, -1400., 0.0);
+{ 77213} G2A507S +PERO3              =  0.460G1A509a + 0.270GAA5014 + 0.270GAA500w                 : ARR( 0.488E-13, -1250., 0.0);
+{ 77214} G2A507S +PERO5              =  0.460G1A509a + 0.270GAA5014 + 0.270GAA500w                 : ARR( 0.183E-11,   450., 0.0);
+{ 77215} G2A507S +PERO6              =  0.300G1A509a + 0.350GAA5014 + 0.350GAA500w                 : ARR( 0.168E-13, -1300., 0.0);
+{ 77216} G2A507S +PERO9              =  0.650G1A509a + 0.350GAA500w                                : ARR( 0.100E-10,     0., 0.0);
+{ 77217} G2A507T +GNO                =       G1A50A2 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 77218} G2A507T +GNO                =       GAA5016                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 77219} G2A507T +GHO2               =       GAA5017                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 77220} G2A507T +GNO3               =       G1A50A2 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 77221} G2A507T +MEPERO             =  0.340G1A50A2 + 0.330GAA500j + 0.330GAA5011                 : ARR( 0.565E-13,  -845., 0.0);
+{ 77222} G2A507T +PERO1              =  0.460G1A50A2 + 0.270GAA500j + 0.270GAA5011                 : ARR( 0.434E-13,  -900., 0.0);
+{ 77223} G2A507T +PERO2              =  0.400G1A50A2 + 0.300GAA500j + 0.300GAA5011                 : ARR( 0.162E-13, -1400., 0.0);
+{ 77224} G2A507T +PERO3              =  0.460G1A50A2 + 0.270GAA500j + 0.270GAA5011                 : ARR( 0.488E-13, -1250., 0.0);
+{ 77225} G2A507T +PERO5              =  0.460G1A50A2 + 0.270GAA500j + 0.270GAA5011                 : ARR( 0.183E-11,   450., 0.0);
+{ 77226} G2A507T +PERO6              =  0.300G1A50A2 + 0.350GAA500j + 0.350GAA5011                 : ARR( 0.168E-13, -1300., 0.0);
+{ 77227} G2A507T +PERO9              =  0.650G1A50A2 + 0.350GAA5011                                : ARR( 0.100E-10,     0., 0.0);
+{ 77228} G1A50A3                     =       GAH400w +      GCO     +      GHO                     : ARR( 0.200E+15,  5173., 0.0);
+{ 77229} GAG501u +GHO                =       GAG501e +      GHO                                    : ARR( 0.533E-11,     0., 0.0);
+{ 77230} GAG501u +GHO                =       G2A507U                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 77231} GAG501u +GHO                =       G3A501c                                               : ARR( 0.202E-11,  -190., 0.0);
+{ 77232} GAG501u+HV               =       GGH400o +      GCO2                                   :  0.100E+01*SUN;
+{ 77233} GAG501u+HV               =       G1A509f +      GHO                                    :  0.100E+01*SUN;
+{ 77234} GAG501u+HV               =       G1A5094 +      GNO2                                   :  0.100E+01*SUN;
+{ 77235} GAG501u+HV               =       GAH400s +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 77236} G2A507U +GNO                =       G1A509f +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 77237} G2A507U +GNO                =       GAG501U                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 77238} G2A507U +GHO2               =       GAG501u                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 77239} G2A507U +GNO3               =       G1A509f +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 77240} G2A507U +MEPERO             =  0.340G1A509f + 0.330GAG501x + 0.330GAG501e                 : ARR( 0.565E-13,  -845., 0.0);
+{ 77241} G2A507U +PERO1              =  0.460G1A509f + 0.270GAG501x + 0.270GAG501e                 : ARR( 0.434E-13,  -900., 0.0);
+{ 77242} G2A507U +PERO2              =  0.400G1A509f + 0.300GAG501x + 0.300GAG501e                 : ARR( 0.162E-13, -1400., 0.0);
+{ 77243} G2A507U +PERO3              =  0.460G1A509f + 0.270GAG501x + 0.270GAG501e                 : ARR( 0.488E-13, -1250., 0.0);
+{ 77244} G2A507U +PERO5              =  0.460G1A509f + 0.270GAG501x + 0.270GAG501e                 : ARR( 0.183E-11,   450., 0.0);
+{ 77245} G2A507U +PERO6              =  0.300G1A509f + 0.350GAG501x + 0.350GAG501e                 : ARR( 0.168E-13, -1300., 0.0);
+{ 77246} G2A507U +PERO9              =  0.650G1A509f + 0.350GAG501e                                : ARR( 0.100E-10,     0., 0.0);
+{ 77247} GAG501v +GHO                =       GAG501f +      GHO                                    : ARR( 0.278E-10,     0., 0.0);
+{ 77248} GAG501v +GHO                =       GAG501t +      GHO                                    : ARR( 0.883E-10,     0., 0.0);
+{ 77249} GAG501v+HV               =       GGH400v +      GCO2                                   :  0.100E+01*SUN;
+{ 77250} GAG501v+HV               =       G1A509j +      GHO                                    :  0.100E+01*SUN;
+{ 77251} GAG501v+HV               =       G1A5094 +      GHO                                    :  0.100E+01*SUN;
+{ 77252} GAG501v+HV               =       GAH400s +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 77253} GAA5018 +GHO                =       GAA500y +      GHO                                    : ARR( 0.276E-10,     0., 0.0);
+{ 77254} GAA5018 +GHO                =       GAA5019 +      GHO                                    : ARR( 0.647E-10,     0., 0.0);
+{ 77255} GAA5018+HV               =       GAH400w +      GCO2                                   :  0.100E+01*SUN;
+{ 77256} GAA5018+HV               =       G1A509b +      GHO                                    :  0.100E+01*SUN;
+{ 77257} GAA5018+HV               =       G1A5095 +      GHO                                    :  0.100E+01*SUN;
+{ 77258} GAA5019 +GHO                =       GAA500z +      GHO                                    : ARR( 0.153E-10,     0., 0.0);
+{ 77259} GAA5019 +GHO                =       G2A506e                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 77260} GAA5019 +GHO                =       G3A400K +      GCO2                                   : ARR( 0.104E-11,     0., 0.0);
+{ 77261} GAA5019+HV               =       GAH400s +      GCO2                                   :  0.200E+01*SUN;
+{ 77262} GAA5019+HV               =       G1A509H +      GHO                                    :  0.100E+01*SUN;
+{ 77263} GPA501w                     =       G3A5023 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 77264} GPA501w +GHO                =       GPA501j +      GHO                                    : ARR( 0.270E-10,     0., 0.0);
+{ 77265} GPA501w +GHO                =       GPA501x +      GHO                                    : ARR( 0.855E-10,     0., 0.0);
+{ 77266} GPA501w+HV               =       GPH400w +      GCO2                                   :  0.100E+01*SUN;
+{ 77267} GPA501w+HV               =       G1P50Af +      GHO                                    :  0.100E+01*SUN;
+{ 77268} GPA501w+HV               =       G1P50A7 +      GHO                                    :  0.100E+01*SUN;
+{ 77269} GPA501w+HV               =       G3A5023 +      GNO2                                   :  0.100E+01*SUN;
+{ 77270} G3A5023 +GHO2               =  0.800GAG501v + 0.200GAA5018 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 77271} G3A5023 +GNO                =       GAH400s +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 77272} G3A5023 +GNO2               =       GPA501w                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 77273} G3A5023 +GNO3               =       GAH400s +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 77274} G3A5023 +MEPERO             =  0.685GAH400s + 0.315GAA5018 + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 77275} G3A5023 +PERO1              =  0.800GAH400s + 0.200GAA5018 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 77276} G3A5023 +PERO2              =  0.750GAH400s + 0.250GAA5018 + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 77277} G3A5023 +PERO3              =  0.800GAH400s + 0.200GAA5018 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 77278} G3A5023 +PERO5              =  0.650GAH400s + 0.350GAA5018 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 77279} G3A5023 +PERO6              =  0.650GAH400s + 0.350GAA5018 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 77280} G3A5023 +PERO9              =       GAH400s +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 77281} GPA501x                     =       G3A5022 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 77282} GPA501x +GHO                =       GPA501k +      GHO                                    : ARR( 0.157E-10,     0., 0.0);
+{ 77283} GPA501x +GHO                =       G2P507O                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 77284} GPA501x+HV               =       GPH400t +      GCO2                                   :  0.100E+01*SUN;
+{ 77285} GPA501x+HV               =       G1P50AO +      GHO                                    :  0.100E+01*SUN;
+{ 77286} GPA501x+HV               =       G3A400K +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 77287} GPA501y                     =       G3A501d +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 77288} GPA501y +GHO                =       GPA501s +      GHO                                    : ARR( 0.189E-10,     0., 0.0);
+{ 77289} GPA501y +GHO                =       GPA501l +      GHO                                    : ARR( 0.839E-11,     0., 0.0);
+{ 77290} GPA501y +GHO                =       G2P508G                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 77291} GPA501y +GHO                =       G2P508H                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 77292} GPA501y+HV               =       G1P50B2 +      GHO                                    :  0.100E+01*SUN;
+{ 77293} GPA501y+HV               =       G1P50Ag +      GHO                                    :  0.100E+01*SUN;
+{ 77294} GPA501y+HV               =       G1P50BI +      GNO2                                   :  0.100E+01*SUN;
+{ 77295} GPA501y+HV               =       G3A501d +      GNO2                                   :  0.100E+01*SUN;
+{ 77296} G2P508G +GNO                =       G1P50B2 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 77297} G2P508G +GNO                =       GPA501n                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 77298} G2P508G +GHO2               =       GPA501y                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 77299} G2P508G +GNO3               =       G1P50B2 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 77300} G2P508G +MEPERO             =  0.340G1P50B2 + 0.330GPA501I + 0.330GPA501s                 : ARR( 0.565E-13,  -845., 0.0);
+{ 77301} G2P508G +PERO1              =  0.460G1P50B2 + 0.270GPA501I + 0.270GPA501s                 : ARR( 0.434E-13,  -900., 0.0);
+{ 77302} G2P508G +PERO2              =  0.400G1P50B2 + 0.300GPA501I + 0.300GPA501s                 : ARR( 0.162E-13, -1400., 0.0);
+{ 77303} G2P508G +PERO3              =  0.460G1P50B2 + 0.270GPA501I + 0.270GPA501s                 : ARR( 0.488E-13, -1250., 0.0);
+{ 77304} G2P508G +PERO5              =  0.460G1P50B2 + 0.270GPA501I + 0.270GPA501s                 : ARR( 0.183E-11,   450., 0.0);
+{ 77305} G2P508G +PERO6              =  0.300G1P50B2 + 0.350GPA501I + 0.350GPA501s                 : ARR( 0.168E-13, -1300., 0.0);
+{ 77306} G2P508G +PERO9              =  0.650G1P50B2 + 0.350GPA501s                                : ARR( 0.100E-10,     0., 0.0);
+{ 77307} G2P508H +GNO                =       G1P50Ag +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 77308} G2P508H +GNO                =       GPA501a                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 77309} G2P508H +GHO2               =       GPA501y                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 77310} G2P508H +GNO3               =       G1P50Ag +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 77311} G2P508H +MEPERO             =  0.340G1P50Ag + 0.330GPA501u + 0.330GPA501l                 : ARR( 0.565E-13,  -845., 0.0);
+{ 77312} G2P508H +PERO1              =  0.460G1P50Ag + 0.270GPA501u + 0.270GPA501l                 : ARR( 0.434E-13,  -900., 0.0);
+{ 77313} G2P508H +PERO2              =  0.400G1P50Ag + 0.300GPA501u + 0.300GPA501l                 : ARR( 0.162E-13, -1400., 0.0);
+{ 77314} G2P508H +PERO3              =  0.460G1P50Ag + 0.270GPA501u + 0.270GPA501l                 : ARR( 0.488E-13, -1250., 0.0);
+{ 77315} G2P508H +PERO5              =  0.460G1P50Ag + 0.270GPA501u + 0.270GPA501l                 : ARR( 0.183E-11,   450., 0.0);
+{ 77316} G2P508H +PERO6              =  0.300G1P50Ag + 0.350GPA501u + 0.350GPA501l                 : ARR( 0.168E-13, -1300., 0.0);
+{ 77317} G2P508H +PERO9              =  0.650G1P50Ag + 0.350GPA501l                                : ARR( 0.100E-10,     0., 0.0);
+{ 77318} G1P50BI                     =       GAH400w +      GCO     +      GNO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 77319} GPG501v                     =       G3G501y +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 77320} GPG501v +GHO                =       GPG501u +      GHO                                    : ARR( 0.879E-10,     0., 0.0);
+{ 77321} GPG501v +GHO                =       GPG501i +      GHO                                    : ARR( 0.277E-10,     0., 0.0);
+{ 77322} GPG501v+HV               =       GPH400t +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 77323} GPG501v+HV               =       G1P50AA +      GHO                                    :  0.100E+01*SUN;
+{ 77324} GPG501v+HV               =       G1P50Av +      GHO                                    :  0.100E+01*SUN;
+{ 77325} GPG501v+HV               =       G3G400L +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 77326} G3G501y +GHO2               =  0.800GGG500x + 0.200GAG501v + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 77327} G3G501y +GNO                =       G3G400L +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 77328} G3G501y +GNO2               =       GPG501v                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 77329} G3G501y +GNO3               =       G3G400L +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 77330} G3G501y +MEPERO             =  0.685G3G400L + 0.315GAG501v + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 77331} G3G501y +PERO1              =  0.800G3G400L + 0.200GAG501v + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 77332} G3G501y +PERO2              =  0.750G3G400L + 0.250GAG501v + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 77333} G3G501y +PERO3              =  0.800G3G400L + 0.200GAG501v + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 77334} G3G501y +PERO5              =  0.650G3G400L + 0.350GAG501v + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 77335} G3G501y +PERO6              =  0.650G3G400L + 0.350GAG501v + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 77336} G3G501y +PERO9              =       G3G400L +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 77337} GPA501z                     =       G3A5024 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 77338} GPA501z +GHO                =       GPA501x +      GHO                                    : ARR( 0.644E-10,     0., 0.0);
+{ 77339} GPA501z +GHO                =       GPA501m +      GHO                                    : ARR( 0.274E-10,     0., 0.0);
+{ 77340} GPA501z+HV               =       G1P50AB +      GHO                                    :  0.100E+01*SUN;
+{ 77341} GPA501z+HV               =       G1P50Ai +      GHO                                    :  0.100E+01*SUN;
+{ 77342} GPA501z+HV               =       G3A400L +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 77343} G3A5024 +GHO2               =  0.800GAG501s + 0.200GAA5018 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 77344} G3A5024 +GNO                =       G3A400L +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 77345} G3A5024 +GNO2               =       GPA501z                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 77346} G3A5024 +GNO3               =       G3A400L +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 77347} G3A5024 +MEPERO             =  0.685G3A400L + 0.315GAA5018 + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 77348} G3A5024 +PERO1              =  0.800G3A400L + 0.200GAA5018 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 77349} G3A5024 +PERO2              =  0.750G3A400L + 0.250GAA5018 + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 77350} G3A5024 +PERO3              =  0.800G3A400L + 0.200GAA5018 + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 77351} G3A5024 +PERO5              =  0.650G3A400L + 0.350GAA5018 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 77352} G3A5024 +PERO6              =  0.650G3A400L + 0.350GAA5018 + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 77353} G3A5024 +PERO9              =       G3A400L +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 77354} GPP5017                     =       G3P501z +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 77355} GPP5017                     =       G3P5021 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 77356} GPP5017 +GHO                =       GPP500y +      GHO                                    : ARR( 0.269E-10,     0., 0.0);
+{ 77357} GPP5017 +GHO                =       GPP5018 +      GHO                                    : ARR( 0.851E-10,     0., 0.0);
+{ 77358} GPP5017+HV               =       G3P400L +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 77359} GPP5017+HV               =       G1P50Al +      GHO                                    :  0.100E+01*SUN;
+{ 77360} GPP5017+HV               =       G1P50AC +      GHO                                    :  0.100E+01*SUN;
+{ 77361} GPP5017+HV               =       G3P5021 +      GNO2                                   :  0.100E+01*SUN;
+{ 77362} G3P501z +GHO2               =  0.800GPG501t + 0.200GPA501w + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 77363} G3P501z +GNO                =       G3P400L +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 77364} G3P501z +GNO2               =       GPP5017                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 77365} G3P501z +GNO3               =       G3P400L +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 77366} G3P501z +MEPERO             =  0.685G3P400L + 0.315GPA501w + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 77367} G3P501z +PERO1              =  0.800G3P400L + 0.200GPA501w + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 77368} G3P501z +PERO2              =  0.750G3P400L + 0.250GPA501w + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 77369} G3P501z +PERO3              =  0.800G3P400L + 0.200GPA501w + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 77370} G3P501z +PERO5              =  0.650G3P400L + 0.350GPA501w + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 77371} G3P501z +PERO6              =  0.650G3P400L + 0.350GPA501w + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 77372} G3P501z +PERO9              =       G3P400L +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 77373} G3P5021 +GHO2               =  0.800GPG501v + 0.200GPA501z + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 77374} G3P5021 +GNO                =       GPH400t +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 77375} G3P5021 +GNO2               =       GPP5017                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 77376} G3P5021 +GNO3               =       GPH400t +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 77377} G3P5021 +MEPERO             =  0.685GPH400t + 0.315GPA501z + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 77378} G3P5021 +PERO1              =  0.800GPH400t + 0.200GPA501z + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 77379} G3P5021 +PERO2              =  0.750GPH400t + 0.250GPA501z + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 77380} G3P5021 +PERO3              =  0.800GPH400t + 0.200GPA501z + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 77381} G3P5021 +PERO5              =  0.650GPH400t + 0.350GPA501z + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 77382} G3P5021 +PERO6              =  0.650GPH400t + 0.350GPA501z + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 77383} G3P5021 +PERO9              =       GPH400t +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 77384} GPP5018                     =       G3P501y +      GNO2                                   : ARR( 0.400E+16, 12800., 0.0);
+{ 77385} GPP5018 +GHO                =       GPP500z +      GHO                                    : ARR( 0.153E-10,     0., 0.0);
+{ 77386} GPP5018 +GHO                =       G2P507g                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 77387} GPP5018+HV               =       G3P400K +      GCO     +      GNO2                    :  0.200E+01*SUN;
+{ 77388} GPP5018+HV               =       G1P50AY +      GHO                                    :  0.100E+01*SUN;
+{ 77389} GAH505f +GHO                =       GAH505C +      GHO                                    : ARR( 0.637E-10,     0., 0.0);
+{ 77390} GAH505f +GHO                =       GAH505P +      GHO                                    : ARR( 0.271E-10,     0., 0.0);
+{ 77391} GAH505f +GHO                =       G3A400L +      GCO                                    : ARR( 0.137E-10,     0., 0.0);
+{ 77392} GAH505f +GNO3               =       G3A400L +      GHNO3   +      GCO                     : ARR( 0.240E-14,     0., 0.0);
+{ 77393} GAH505f+HV               =       G1A5093 +      GHO                                    :  0.100E+01*SUN;
+{ 77394} GAH505f+HV               =       G1A509N +      GHO                                    :  0.100E+01*SUN;
+{ 77395} GAH505f+HV               =       G3A400L +      GCO     +      GHO2                    :  0.100E+01*SUN;
+{ 77396} GAH505f+HV               =       GAH400w +      GCO                                    :  0.100E+01*SUN;
+{ 77397} GAH505f+HV               =       GAH3008 +      GCO     +      GCO                     :  0.100E+01*SUN;
+{ 77398} GGG500z +GHO                =       GGG500p +      GHO2                                   : ARR( 0.428E-12,     0., 0.0);
+{ 77399} GGG500z +GHO                =       G3G501R                                               : ARR( 0.394E-11,  -190., 0.0);
+{ 77400} GGG500z+HV               =       GGN400W +      GHO     +      GNO2    +      GCO2     :  0.200E+01*SUN;
+{ 77401} GGG500z+HV               =       G1G5082 +      GNO2                                   :  0.200E+01*SUN;
+{ 77402} GGG5011 +GHO                =       GGG500q +      GHO2                                   : ARR( 0.207E-11,     0., 0.0);
+{ 77403} GGG5011 +GHO                =       GGG500m +      GHO                                    : ARR( 0.253E-10,     0., 0.0);
+{ 77404} GGG5011 +GHO                =       G3G501T                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 77405} GGG5011 +GHO                =       G2G505X                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 77406} GGG5011 +GHO                =       G3G501S                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 77407} GGG5011+HV               =       GGH400g +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 77408} GGG5011+HV               =       G1G508k +      GNO2                                   :  0.100E+01*SUN;
+{ 77409} GGG5011+HV               =       G1G5082 +      GHO                                    :  0.100E+01*SUN;
+{ 77410} GGG5011+HV               =       GGN400W +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 77411} G1G508k                     =       GGH3007 +      GGD2000 +      GHO2                    : ARR( 0.200E+15,  5475., 0.0);
+{ 77412} G1G508k                     =       GGH400g +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 77413} GAG501w +GHO                =       GAG501x +      GHO                                    : ARR( 0.191E-10,     0., 0.0);
+{ 77414} GAG501w +GHO                =       GAG501h +      GHO2                                   : ARR( 0.211E-11,     0., 0.0);
+{ 77415} GAG501w +GHO                =       G2A506Y                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 77416} GAG501w +GHO                =       G3A501j                                               : ARR( 0.195E-11,  -190., 0.0);
+{ 77417} GAG501w+HV               =       G1A5098 +      GHO                                    :  0.100E+01*SUN;
+{ 77418} GAG501w+HV               =       G1A50A4 +      GNO2                                   :  0.100E+01*SUN;
+{ 77419} GAG501w+HV               =       GAH400k +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 77420} G1A50A4                     =       GAH3007 +      GGD2000 +      GHO2                    : ARR( 0.200E+15,  5475., 0.0);
+{ 77421} G1A50A4                     =       GAH400k +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 77422} GAG501x +GHO                =       GAG501e +      GHO2                                   : ARR( 0.134E-11,     0., 0.0);
+{ 77423} GAG501x +GHO                =       G3A501f                                               : ARR( 0.203E-11,  -190., 0.0);
+{ 77424} GAG501x +GHO                =       G3G400C +      GCO2                                   : ARR( 0.556E-12,     0., 0.0);
+{ 77425} GAG501x+HV               =       GGN400W +      GCO2                                   :  0.100E+01*SUN;
+{ 77426} GAG501x+HV               =       G1A509A +      GNO2                                   :  0.100E+01*SUN;
+{ 77427} GAG501x+HV               =       GAD4004 +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 77428} GPG501w                     =       G3G501S +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 77429} GPG501w +GHO                =       GPG501c +      GHO2                                   : ARR( 0.207E-11,     0., 0.0);
+{ 77430} GPG501w +GHO                =       GPG501Z +      GHO                                    : ARR( 0.253E-10,     0., 0.0);
+{ 77431} GPG501w +GHO                =       G3P501g                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 77432} GPG501w +GHO                =       G2P507H                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 77433} GPG501w+HV               =       GPH400l +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 77434} GPG501w+HV               =       G1P50BJ +      GNO2                                   :  0.100E+01*SUN;
+{ 77435} GPG501w+HV               =       G1P50AH +      GHO                                    :  0.100E+01*SUN;
+{ 77436} GPG501w+HV               =       G3G501S +      GNO2                                   :  0.100E+01*SUN;
+{ 77437} G1P50BJ                     =       GCO     +      GPH400l +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 77438} G1P50BJ                     =       GGD2000 +      GPH3007 +      GHO2                    : ARR( 0.200E+15,  5475., 0.0);
+{ 77439} GAG501y +GHO                =       GAG501f +      GHO2                                   : ARR( 0.686E-11,     0., 0.0);
+{ 77440} GAG501y +GHO                =       GAG501a +      GHO                                    : ARR( 0.870E-10,     0., 0.0);
+{ 77441} GAG501y+HV               =       GGH400g +      GCO2                                   :  0.100E+01*SUN;
+{ 77442} GAG501y+HV               =       G1A509A +      GHO                                    :  0.100E+01*SUN;
+{ 77443} GAG501y+HV               =       GAD4004 +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 77444} GAA501A +GHO                =       GAA500y +      GHO2                                   : ARR( 0.639E-11,     0., 0.0);
+{ 77445} GAA501A +GHO                =       GAA501B +      GHO                                    : ARR( 0.600E-10,     0., 0.0);
+{ 77446} GAA501A +GHO                =       G2A506a                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 77447} GAA501A+HV               =       GAH400k +      GCO2                                   :  0.100E+01*SUN;
+{ 77448} GAA501A+HV               =       G1A509B +      GHO                                    :  0.100E+01*SUN;
+{ 77449} GPA5021                     =       G3A501g +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 77450} GPA5021 +GHO                =       GPA501j +      GHO2                                   : ARR( 0.659E-11,     0., 0.0);
+{ 77451} GPA5021 +GHO                =       GPA501e +      GHO                                    : ARR( 0.836E-10,     0., 0.0);
+{ 77452} GPA5021+HV               =       GPH400l +      GCO2                                   :  0.100E+01*SUN;
+{ 77453} GPA5021+HV               =       G1P50AI +      GHO                                    :  0.100E+01*SUN;
+{ 77454} GPA5021+HV               =       G3A501g +      GNO2                                   :  0.100E+01*SUN;
+{ 77455} GAA501B +GHO                =       GAA500z +      GHO2                                   : ARR( 0.394E-11,     0., 0.0);
+{ 77456} GAA501B +GHO                =       G3A4007 +      GCO2                                   : ARR( 0.107E-11,     0., 0.0);
+{ 77457} GAA501B+HV               =       GAD4004 +      GCO2                                   :  0.200E+01*SUN;
+{ 77458} GPG501x                     =       G3G501h +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 77459} GPG501x +GHO                =       GPG501f +      GHO                                    : ARR( 0.153E-10,     0., 0.0);
+{ 77460} GPG501x +GHO                =       GPG501i +      GHO                                    : ARR( 0.153E-10,     0., 0.0);
+{ 77461} GPG501x +GHO                =       G3P501h                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 77462} GPG501x +GHO                =       G2P508I                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 77463} GPG501x +GHO                =       G2P508J                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 77464} GPG501x+HV               =       GPH400v +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 77465} GPG501x+HV               =       G1P50Aw +      GHO                                    :  0.100E+01*SUN;
+{ 77466} GPG501x+HV               =       G3G3003 +      GPD2000 +      GHO                     :  0.100E+01*SUN;
+{ 77467} GPG501x+HV               =       G1P50Ax +      GHO                                    :  0.100E+01*SUN;
+{ 77468} GPG501x+HV               =       G3G501h +      GNO2                                   :  0.100E+01*SUN;
+{ 77469} G2P508I +GNO                =       G1P50Aw +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 77470} G2P508I +GNO                =       GPG501c                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 77471} G2P508I +GHO2               =       GPG501x                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 77472} G2P508I +GNO3               =       G1P50Aw +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 77473} G2P508I +MEPERO             =  0.340G1P50Aw + 0.330GPG500i + 0.330GPG501f                 : ARR( 0.565E-13,  -845., 0.0);
+{ 77474} G2P508I +PERO1              =  0.460G1P50Aw + 0.270GPG500i + 0.270GPG501f                 : ARR( 0.434E-13,  -900., 0.0);
+{ 77475} G2P508I +PERO2              =  0.400G1P50Aw + 0.300GPG500i + 0.300GPG501f                 : ARR( 0.162E-13, -1400., 0.0);
+{ 77476} G2P508I +PERO3              =  0.460G1P50Aw + 0.270GPG500i + 0.270GPG501f                 : ARR( 0.488E-13, -1250., 0.0);
+{ 77477} G2P508I +PERO5              =  0.460G1P50Aw + 0.270GPG500i + 0.270GPG501f                 : ARR( 0.183E-11,   450., 0.0);
+{ 77478} G2P508I +PERO6              =  0.300G1P50Aw + 0.350GPG500i + 0.350GPG501f                 : ARR( 0.168E-13, -1300., 0.0);
+{ 77479} G2P508I +PERO9              =  0.650G1P50Aw + 0.350GPG501f                                : ARR( 0.100E-10,     0., 0.0);
+{ 77480} G2P508J +GNO                =       G1P50Ax +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 77481} G2P508J +GNO                =       GPG501h                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 77482} G2P508J +GHO2               =       GPG501x                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 77483} G2P508J +GNO3               =       G1P50Ax +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 77484} G2P508J +MEPERO             =  0.340G1P50Ax + 0.330GPG500l + 0.330GPG501i                 : ARR( 0.565E-13,  -845., 0.0);
+{ 77485} G2P508J +PERO1              =  0.460G1P50Ax + 0.270GPG500l + 0.270GPG501i                 : ARR( 0.434E-13,  -900., 0.0);
+{ 77486} G2P508J +PERO2              =  0.400G1P50Ax + 0.300GPG500l + 0.300GPG501i                 : ARR( 0.162E-13, -1400., 0.0);
+{ 77487} G2P508J +PERO3              =  0.460G1P50Ax + 0.270GPG500l + 0.270GPG501i                 : ARR( 0.488E-13, -1250., 0.0);
+{ 77488} G2P508J +PERO5              =  0.460G1P50Ax + 0.270GPG500l + 0.270GPG501i                 : ARR( 0.183E-11,   450., 0.0);
+{ 77489} G2P508J +PERO6              =  0.300G1P50Ax + 0.350GPG500l + 0.350GPG501i                 : ARR( 0.168E-13, -1300., 0.0);
+{ 77490} G2P508J +PERO9              =  0.650G1P50Ax + 0.350GPG501i                                : ARR( 0.100E-10,     0., 0.0);
+{ 77491} GPA5022                     =       G3A501p +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 77492} GPA5022 +GHO                =       GPA501j +      GHO                                    : ARR( 0.115E-10,     0., 0.0);
+{ 77493} GPA5022 +GHO                =       GPA501m +      GHO                                    : ARR( 0.156E-10,     0., 0.0);
+{ 77494} GPA5022 +GHO                =       G2P508K                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 77495} GPA5022 +GHO                =       G2P508L                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 77496} GPA5022+HV               =       G1P50Ay +      GHO                                    :  0.100E+01*SUN;
+{ 77497} GPA5022+HV               =       G3A3003 +      GPD2000 +      GHO                     :  0.100E+01*SUN;
+{ 77498} GPA5022+HV               =       G1P50Az +      GHO                                    :  0.100E+01*SUN;
+{ 77499} GPA5022+HV               =       G3A501p +      GNO2                                   :  0.100E+01*SUN;
+{ 77500} G2P508K +GNO                =       G1P50Ay +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 77501} G2P508K +GNO                =       GPA501g                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 77502} G2P508K +GHO2               =       GPA5022                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 77503} G2P508K +GNO3               =       G1P50Ay +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 77504} G2P508K +MEPERO             =  0.340G1P50Ay + 0.330GPA500r + 0.330GPA501j                 : ARR( 0.565E-13,  -845., 0.0);
+{ 77505} G2P508K +PERO1              =  0.460G1P50Ay + 0.270GPA500r + 0.270GPA501j                 : ARR( 0.434E-13,  -900., 0.0);
+{ 77506} G2P508K +PERO2              =  0.400G1P50Ay + 0.300GPA500r + 0.300GPA501j                 : ARR( 0.162E-13, -1400., 0.0);
+{ 77507} G2P508K +PERO3              =  0.460G1P50Ay + 0.270GPA500r + 0.270GPA501j                 : ARR( 0.488E-13, -1250., 0.0);
+{ 77508} G2P508K +PERO5              =  0.460G1P50Ay + 0.270GPA500r + 0.270GPA501j                 : ARR( 0.183E-11,   450., 0.0);
+{ 77509} G2P508K +PERO6              =  0.300G1P50Ay + 0.350GPA500r + 0.350GPA501j                 : ARR( 0.168E-13, -1300., 0.0);
+{ 77510} G2P508K +PERO9              =  0.650G1P50Ay + 0.350GPA501j                                : ARR( 0.100E-10,     0., 0.0);
+{ 77511} G2P508L +GNO                =       G1P50Az +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 77512} G2P508L +GNO                =       GPA501l                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 77513} G2P508L +GHO2               =       GPA5022                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 77514} G2P508L +GNO3               =       G1P50Az +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 77515} G2P508L +MEPERO             =  0.340G1P50Az + 0.330GPA500u + 0.330GPA501m                 : ARR( 0.565E-13,  -845., 0.0);
+{ 77516} G2P508L +PERO1              =  0.460G1P50Az + 0.270GPA500u + 0.270GPA501m                 : ARR( 0.434E-13,  -900., 0.0);
+{ 77517} G2P508L +PERO2              =  0.400G1P50Az + 0.300GPA500u + 0.300GPA501m                 : ARR( 0.162E-13, -1400., 0.0);
+{ 77518} G2P508L +PERO3              =  0.460G1P50Az + 0.270GPA500u + 0.270GPA501m                 : ARR( 0.488E-13, -1250., 0.0);
+{ 77519} G2P508L +PERO5              =  0.460G1P50Az + 0.270GPA500u + 0.270GPA501m                 : ARR( 0.183E-11,   450., 0.0);
+{ 77520} G2P508L +PERO6              =  0.300G1P50Az + 0.350GPA500u + 0.350GPA501m                 : ARR( 0.168E-13, -1300., 0.0);
+{ 77521} G2P508L +PERO9              =  0.650G1P50Az + 0.350GPA501m                                : ARR( 0.100E-10,     0., 0.0);
+{ 77522} GPP5019                     =       G3P501h +      GNO2                                   : ARR( 0.400E+16, 12800., 0.0);
+{ 77523} GPP5019 +GHO                =       GPP500y +      GHO                                    : ARR( 0.306E-10,     0., 0.0);
+{ 77524} GPP5019 +GHO                =       G2P508M                                               : ARR( 0.380E-11,  -190., 0.0);
+{ 77525} GPP5019+HV               =       G3P501h +      GNO2                                   :  0.200E+01*SUN;
+{ 77526} GPP5019+HV               =       G1P50B1 +      GHO                                    :  0.200E+01*SUN;
+{ 77527} GPP5019+HV               =       G3P3003 +      GPD2000 +      GHO                     :  0.100E+01*SUN;
+{ 77528} G2P508M +GNO                =       G1P50B1 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 77529} G2P508M +GNO                =       GPP500w                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 77530} G2P508M +GHO2               =       GPP5019                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 77531} G2P508M +GNO3               =       G1P50B1 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 77532} G2P508M +MEPERO             =  0.340G1P50B1 + 0.330GPP500T + 0.330GPP500y                 : ARR( 0.565E-13,  -845., 0.0);
+{ 77533} G2P508M +PERO1              =  0.460G1P50B1 + 0.270GPP500T + 0.270GPP500y                 : ARR( 0.434E-13,  -900., 0.0);
+{ 77534} G2P508M +PERO2              =  0.400G1P50B1 + 0.300GPP500T + 0.300GPP500y                 : ARR( 0.162E-13, -1400., 0.0);
+{ 77535} G2P508M +PERO3              =  0.460G1P50B1 + 0.270GPP500T + 0.270GPP500y                 : ARR( 0.488E-13, -1250., 0.0);
+{ 77536} G2P508M +PERO5              =  0.460G1P50B1 + 0.270GPP500T + 0.270GPP500y                 : ARR( 0.183E-11,   450., 0.0);
+{ 77537} G2P508M +PERO6              =  0.300G1P50B1 + 0.350GPP500T + 0.350GPP500y                 : ARR( 0.168E-13, -1300., 0.0);
+{ 77538} G2P508M +PERO9              =  0.650G1P50B1 + 0.350GPP500y                                : ARR( 0.100E-10,     0., 0.0);
+{ 77539} GGG5012 +GHO                =       G3G501u                                               : ARR( 0.382E-11,  -190., 0.0);
+{ 77540} GGG5012+HV               =       GAG400L +      GCO2                                   :  0.200E+01*SUN;
+{ 77541} GGG5012+HV               =       G1G508B +      GNO2                                   :  0.100E+01*SUN;
+{ 77542} GAG501z +GHO                =       G3A501s                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 77543} GAG501z +GHO                =       G3G400K +      GCO2                                   : ARR( 0.526E-12,     0., 0.0);
+{ 77544} GAG501z+HV               =       GGN400b +      GCO2                                   :  0.100E+01*SUN;
+{ 77545} GAG501z+HV               =       G1A509G +      GNO2                                   :  0.100E+01*SUN;
+{ 77546} GAG501z+HV               =       GAA4008 +      GCO2                                   :  0.100E+01*SUN;
+{ 77547} GAH505g +GHO                =       GAH504v +      GHO                                    : ARR( 0.831E-10,     0., 0.0);
+{ 77548} GAH505g +GHO                =       GAH505C +      GHO                                    : ARR( 0.831E-10,     0., 0.0);
+{ 77549} GAH505g +GHO                =       G3A5023                                               : ARR( 0.217E-10,     0., 0.0);
+{ 77550} GAH505g +GNO3               =       G3A5023 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 77551} GAH505g+HV               =       GHH400r +      GCO2                                   :  0.100E+01*SUN;
+{ 77552} GAH505g+HV               =       G1A508E +      GHO                                    :  0.100E+01*SUN;
+{ 77553} GAH505g+HV               =       G1A5096 +      GHO                                    :  0.100E+01*SUN;
+{ 77554} GAH505g+HV               =       GAH400s +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 77555} GAG5021 +GHO                =       GAG501v +      GHO                                    : ARR( 0.219E-10,     0., 0.0);
+{ 77556} GAG5021 +GHO                =       GAG5023 +      GHO                                    : ARR( 0.484E-10,     0., 0.0);
+{ 77557} GAG5021 +GHO                =       GAG501s +      GHO                                    : ARR( 0.295E-10,     0., 0.0);
+{ 77558} GAG5021+HV               =       G1A509p +      GHO                                    :  0.100E+01*SUN;
+{ 77559} GAG5021+HV               =       G1A509x +      GHO                                    :  0.100E+01*SUN;
+{ 77560} GAG5021+HV               =       G1A509z +      GHO                                    :  0.100E+01*SUN;
+{ 77561} GAG5021+HV               =       GAH400w +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 77562} GAA501C +GHO                =       GAA5018 +      GHO                                    : ARR( 0.392E-10,     0., 0.0);
+{ 77563} GAA501C +GHO                =       GAA501E +      GHO                                    : ARR( 0.434E-10,     0., 0.0);
+{ 77564} GAA501C +GHO                =       G2A507W                                               : ARR( 0.401E-11,  -190., 0.0);
+{ 77565} GAA501C+HV               =       G1A50A3 +      GHO                                    :  0.200E+01*SUN;
+{ 77566} GAA501C+HV               =       G1A509y +      GHO                                    :  0.100E+01*SUN;
+{ 77567} G2A507W +GNO                =       G1A50A3 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 77568} G2A507W +GNO                =       GAA5017                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 77569} G2A507W +GHO2               =       GAA501C                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 77570} G2A507W +GNO3               =       G1A50A3 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 77571} G2A507W +MEPERO             =  0.340G1A50A3 + 0.330GAA500l + 0.330GAA5018                 : ARR( 0.565E-13,  -845., 0.0);
+{ 77572} G2A507W +PERO1              =  0.460G1A50A3 + 0.270GAA500l + 0.270GAA5018                 : ARR( 0.434E-13,  -900., 0.0);
+{ 77573} G2A507W +PERO2              =  0.400G1A50A3 + 0.300GAA500l + 0.300GAA5018                 : ARR( 0.162E-13, -1400., 0.0);
+{ 77574} G2A507W +PERO3              =  0.460G1A50A3 + 0.270GAA500l + 0.270GAA5018                 : ARR( 0.488E-13, -1250., 0.0);
+{ 77575} G2A507W +PERO5              =  0.460G1A50A3 + 0.270GAA500l + 0.270GAA5018                 : ARR( 0.183E-11,   450., 0.0);
+{ 77576} G2A507W +PERO6              =  0.300G1A50A3 + 0.350GAA500l + 0.350GAA5018                 : ARR( 0.168E-13, -1300., 0.0);
+{ 77577} G2A507W +PERO9              =  0.650G1A50A3 + 0.350GAA5018                                : ARR( 0.100E-10,     0., 0.0);
+{ 77578} GPA5023                     =       G3A501n +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 77579} GPA5023 +GHO                =       GPA501w +      GHO                                    : ARR( 0.211E-10,     0., 0.0);
+{ 77580} GPA5023 +GHO                =       GPA5022 +      GHO                                    : ARR( 0.467E-10,     0., 0.0);
+{ 77581} GPA5023 +GHO                =       GPA501z +      GHO                                    : ARR( 0.285E-10,     0., 0.0);
+{ 77582} GPA5023+HV               =       G1P50B3 +      GHO                                    :  0.100E+01*SUN;
+{ 77583} GPA5023+HV               =       G1P50BD +      GHO                                    :  0.100E+01*SUN;
+{ 77584} GPA5023+HV               =       G1P50BI +      GHO                                    :  0.100E+01*SUN;
+{ 77585} GPA5023+HV               =       G3A501n +      GNO2                                   :  0.100E+01*SUN;
+{ 77586} GAG5022 +GHO                =       GAG501y +      GHO                                    : ARR( 0.188E-10,     0., 0.0);
+{ 77587} GAG5022 +GHO                =       GAG5023 +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 77588} GAG5022 +GHO                =       GAG501Z +      GHO                                    : ARR( 0.254E-10,     0., 0.0);
+{ 77589} GAG5022 +GHO                =       G2A507X                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 77590} GAG5022 +GHO                =       G2A507Y                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 77591} GAG5022 +GHO                =       G3A501o                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 77592} GAG5022+HV               =       G1A509r +      GHO                                    :  0.100E+01*SUN;
+{ 77593} GAG5022+HV               =       G1A50A4 +      GHO                                    :  0.100E+01*SUN;
+{ 77594} GAG5022+HV               =       GAH400k +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 77595} G2A507X +GNO                =       G1A509r +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 77596} G2A507X +GNO                =       GAG501n                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 77597} G2A507X +GHO2               =       GAG5022                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 77598} G2A507X +GNO3               =       G1A509r +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 77599} G2A507X +MEPERO             =  0.340G1A509r + 0.330GAG501F + 0.330GAG501y                 : ARR( 0.565E-13,  -845., 0.0);
+{ 77600} G2A507X +PERO1              =  0.460G1A509r + 0.270GAG501F + 0.270GAG501y                 : ARR( 0.434E-13,  -900., 0.0);
+{ 77601} G2A507X +PERO2              =  0.400G1A509r + 0.300GAG501F + 0.300GAG501y                 : ARR( 0.162E-13, -1400., 0.0);
+{ 77602} G2A507X +PERO3              =  0.460G1A509r + 0.270GAG501F + 0.270GAG501y                 : ARR( 0.488E-13, -1250., 0.0);
+{ 77603} G2A507X +PERO5              =  0.460G1A509r + 0.270GAG501F + 0.270GAG501y                 : ARR( 0.183E-11,   450., 0.0);
+{ 77604} G2A507X +PERO6              =  0.300G1A509r + 0.350GAG501F + 0.350GAG501y                 : ARR( 0.168E-13, -1300., 0.0);
+{ 77605} G2A507X +PERO9              =  0.650G1A509r + 0.350GAG501y                                : ARR( 0.100E-10,     0., 0.0);
+{ 77606} G2A507Y +GNO                =       G1A50A4 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 77607} G2A507Y +GNO                =       GAG501w                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 77608} G2A507Y +GHO2               =       GAG5022                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 77609} G2A507Y +GNO3               =       G1A50A4 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 77610} G2A507Y +MEPERO             =  0.340G1A50A4 + 0.330GAG501L + 0.330GAG501Z                 : ARR( 0.565E-13,  -845., 0.0);
+{ 77611} G2A507Y +PERO1              =  0.460G1A50A4 + 0.270GAG501L + 0.270GAG501Z                 : ARR( 0.434E-13,  -900., 0.0);
+{ 77612} G2A507Y +PERO2              =  0.400G1A50A4 + 0.300GAG501L + 0.300GAG501Z                 : ARR( 0.162E-13, -1400., 0.0);
+{ 77613} G2A507Y +PERO3              =  0.460G1A50A4 + 0.270GAG501L + 0.270GAG501Z                 : ARR( 0.488E-13, -1250., 0.0);
+{ 77614} G2A507Y +PERO5              =  0.460G1A50A4 + 0.270GAG501L + 0.270GAG501Z                 : ARR( 0.183E-11,   450., 0.0);
+{ 77615} G2A507Y +PERO6              =  0.300G1A50A4 + 0.350GAG501L + 0.350GAG501Z                 : ARR( 0.168E-13, -1300., 0.0);
+{ 77616} G2A507Y +PERO9              =  0.650G1A50A4 + 0.350GAG501Z                                : ARR( 0.100E-10,     0., 0.0);
+{ 77617} GAA501D +GHO                =       GAA501A +      GHO                                    : ARR( 0.380E-10,     0., 0.0);
+{ 77618} GAA501D +GHO                =       GAA501E +      GHO2                                   : ARR( 0.105E-10,     0., 0.0);
+{ 77619} GAA501D +GHO                =       G2A507Z                                               : ARR( 0.388E-11,  -190., 0.0);
+{ 77620} GAA501D+HV               =       G1A509s +      GHO                                    :  0.200E+01*SUN;
+{ 77621} G2A507Z +GNO                =       G1A509s +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 77622} G2A507Z +GNO                =       GAA5014                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 77623} G2A507Z +GHO2               =       GAA501D                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 77624} G2A507Z +GNO3               =       G1A509s +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 77625} G2A507Z +MEPERO             =  0.340G1A509s + 0.330GAA500m + 0.330GAA501A                 : ARR( 0.565E-13,  -845., 0.0);
+{ 77626} G2A507Z +PERO1              =  0.460G1A509s + 0.270GAA500m + 0.270GAA501A                 : ARR( 0.434E-13,  -900., 0.0);
+{ 77627} G2A507Z +PERO2              =  0.400G1A509s + 0.300GAA500m + 0.300GAA501A                 : ARR( 0.162E-13, -1400., 0.0);
+{ 77628} G2A507Z +PERO3              =  0.460G1A509s + 0.270GAA500m + 0.270GAA501A                 : ARR( 0.488E-13, -1250., 0.0);
+{ 77629} G2A507Z +PERO5              =  0.460G1A509s + 0.270GAA500m + 0.270GAA501A                 : ARR( 0.183E-11,   450., 0.0);
+{ 77630} G2A507Z +PERO6              =  0.300G1A509s + 0.350GAA500m + 0.350GAA501A                 : ARR( 0.168E-13, -1300., 0.0);
+{ 77631} G2A507Z +PERO9              =  0.650G1A509s + 0.350GAA501A                                : ARR( 0.100E-10,     0., 0.0);
+{ 77632} GPA5024                     =       G3A501o +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 77633} GPA5024 +GHO                =       GPA5021 +      GHO                                    : ARR( 0.188E-10,     0., 0.0);
+{ 77634} GPA5024 +GHO                =       GPA5022 +      GHO2                                   : ARR( 0.104E-10,     0., 0.0);
+{ 77635} GPA5024 +GHO                =       GPA501d +      GHO                                    : ARR( 0.254E-10,     0., 0.0);
+{ 77636} GPA5024 +GHO                =       G2P508N                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 77637} GPA5024 +GHO                =       G2P508O                                               : ARR( 0.192E-11,  -190., 0.0);
+{ 77638} GPA5024+HV               =       G1P50B4 +      GHO                                    :  0.100E+01*SUN;
+{ 77639} GPA5024+HV               =       G1P50B8 +      GHO                                    :  0.100E+01*SUN;
+{ 77640} GPA5024+HV               =       G3A501o +      GNO2                                   :  0.100E+01*SUN;
+{ 77641} G2P508N +GNO                =       G1P50B4 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 77642} G2P508N +GNO                =       GPA501r                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 77643} G2P508N +GHO2               =       GPA5024                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 77644} G2P508N +GNO3               =       G1P50B4 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 77645} G2P508N +MEPERO             =  0.340G1P50B4 + 0.330GPA501E + 0.330GPA5021                 : ARR( 0.565E-13,  -845., 0.0);
+{ 77646} G2P508N +PERO1              =  0.460G1P50B4 + 0.270GPA501E + 0.270GPA5021                 : ARR( 0.434E-13,  -900., 0.0);
+{ 77647} G2P508N +PERO2              =  0.400G1P50B4 + 0.300GPA501E + 0.300GPA5021                 : ARR( 0.162E-13, -1400., 0.0);
+{ 77648} G2P508N +PERO3              =  0.460G1P50B4 + 0.270GPA501E + 0.270GPA5021                 : ARR( 0.488E-13, -1250., 0.0);
+{ 77649} G2P508N +PERO5              =  0.460G1P50B4 + 0.270GPA501E + 0.270GPA5021                 : ARR( 0.183E-11,   450., 0.0);
+{ 77650} G2P508N +PERO6              =  0.300G1P50B4 + 0.350GPA501E + 0.350GPA5021                 : ARR( 0.168E-13, -1300., 0.0);
+{ 77651} G2P508N +PERO9              =  0.650G1P50B4 + 0.350GPA5021                                : ARR( 0.100E-10,     0., 0.0);
+{ 77652} G2P508O +GNO                =       G1P50B8 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 77653} G2P508O +GNO                =       GPA501u                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 77654} G2P508O +GHO2               =       GPA5024                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 77655} G2P508O +GNO3               =       G1P50B8 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 77656} G2P508O +MEPERO             =  0.340G1P50B8 + 0.330GPA501Q + 0.330GPA501d                 : ARR( 0.565E-13,  -845., 0.0);
+{ 77657} G2P508O +PERO1              =  0.460G1P50B8 + 0.270GPA501Q + 0.270GPA501d                 : ARR( 0.434E-13,  -900., 0.0);
+{ 77658} G2P508O +PERO2              =  0.400G1P50B8 + 0.300GPA501Q + 0.300GPA501d                 : ARR( 0.162E-13, -1400., 0.0);
+{ 77659} G2P508O +PERO3              =  0.460G1P50B8 + 0.270GPA501Q + 0.270GPA501d                 : ARR( 0.488E-13, -1250., 0.0);
+{ 77660} G2P508O +PERO5              =  0.460G1P50B8 + 0.270GPA501Q + 0.270GPA501d                 : ARR( 0.183E-11,   450., 0.0);
+{ 77661} G2P508O +PERO6              =  0.300G1P50B8 + 0.350GPA501Q + 0.350GPA501d                 : ARR( 0.168E-13, -1300., 0.0);
+{ 77662} G2P508O +PERO9              =  0.650G1P50B8 + 0.350GPA501d                                : ARR( 0.100E-10,     0., 0.0);
+{ 77663} GAG5023 +GHO                =       GAG501f +      GHO                                    : ARR( 0.115E-10,     0., 0.0);
+{ 77664} GAG5023 +GHO                =       GAG501i +      GHO                                    : ARR( 0.155E-10,     0., 0.0);
+{ 77665} GAG5023 +GHO                =       G2A507a                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 77666} GAG5023 +GHO                =       G2A507b                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 77667} GAG5023 +GHO                =       G3A501p                                               : ARR( 0.193E-11,  -190., 0.0);
+{ 77668} GAG5023+HV               =       G1A509k +      GHO                                    :  0.100E+01*SUN;
+{ 77669} GAG5023+HV               =       G3A3003 +      GGD2000 +      GHO                     :  0.100E+01*SUN;
+{ 77670} GAG5023+HV               =       G1A509l +      GHO                                    :  0.100E+01*SUN;
+{ 77671} GAG5023+HV               =       GAH400u +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 77672} G2A507a +GNO                =       G1A509k +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 77673} G2A507a +GNO                =       GAG501c                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 77674} G2A507a +GHO2               =       GAG5023                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 77675} G2A507a +GNO3               =       G1A509k +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 77676} G2A507a +MEPERO             =  0.340G1A509k + 0.330GAG500i + 0.330GAG501f                 : ARR( 0.565E-13,  -845., 0.0);
+{ 77677} G2A507a +PERO1              =  0.460G1A509k + 0.270GAG500i + 0.270GAG501f                 : ARR( 0.434E-13,  -900., 0.0);
+{ 77678} G2A507a +PERO2              =  0.400G1A509k + 0.300GAG500i + 0.300GAG501f                 : ARR( 0.162E-13, -1400., 0.0);
+{ 77679} G2A507a +PERO3              =  0.460G1A509k + 0.270GAG500i + 0.270GAG501f                 : ARR( 0.488E-13, -1250., 0.0);
+{ 77680} G2A507a +PERO5              =  0.460G1A509k + 0.270GAG500i + 0.270GAG501f                 : ARR( 0.183E-11,   450., 0.0);
+{ 77681} G2A507a +PERO6              =  0.300G1A509k + 0.350GAG500i + 0.350GAG501f                 : ARR( 0.168E-13, -1300., 0.0);
+{ 77682} G2A507a +PERO9              =  0.650G1A509k + 0.350GAG501f                                : ARR( 0.100E-10,     0., 0.0);
+{ 77683} G2A507b +GNO                =       G1A509l +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 77684} G2A507b +GNO                =       GAG501h                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 77685} G2A507b +GHO2               =       GAG5023                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 77686} G2A507b +GNO3               =       G1A509l +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 77687} G2A507b +MEPERO             =  0.340G1A509l + 0.330GAG501M + 0.330GAG501i                 : ARR( 0.565E-13,  -845., 0.0);
+{ 77688} G2A507b +PERO1              =  0.460G1A509l + 0.270GAG501M + 0.270GAG501i                 : ARR( 0.434E-13,  -900., 0.0);
+{ 77689} G2A507b +PERO2              =  0.400G1A509l + 0.300GAG501M + 0.300GAG501i                 : ARR( 0.162E-13, -1400., 0.0);
+{ 77690} G2A507b +PERO3              =  0.460G1A509l + 0.270GAG501M + 0.270GAG501i                 : ARR( 0.488E-13, -1250., 0.0);
+{ 77691} G2A507b +PERO5              =  0.460G1A509l + 0.270GAG501M + 0.270GAG501i                 : ARR( 0.183E-11,   450., 0.0);
+{ 77692} G2A507b +PERO6              =  0.300G1A509l + 0.350GAG501M + 0.350GAG501i                 : ARR( 0.168E-13, -1300., 0.0);
+{ 77693} G2A507b +PERO9              =  0.650G1A509l + 0.350GAG501i                                : ARR( 0.100E-10,     0., 0.0);
+{ 77694} GAA501E +GHO                =       GAA500y +      GHO                                    : ARR( 0.235E-10,     0., 0.0);
+{ 77695} GAA501E +GHO                =       G2A507c                                               : ARR( 0.393E-11,  -190., 0.0);
+{ 77696} GAA501E+HV               =       G1A509m +      GHO                                    :  0.200E+01*SUN;
+{ 77697} GAA501E+HV               =       G3A3003 +      GAD2000 +      GHO                     :  0.100E+01*SUN;
+{ 77698} G2A507c +GNO                =       G1A509m +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 77699} G2A507c +GNO                =       GAA500w                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 77700} G2A507c +GHO2               =       GAA501E                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 77701} G2A507c +GNO3               =       G1A509m +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 77702} G2A507c +MEPERO             =  0.340G1A509m + 0.330GAA500W + 0.330GAA500y                 : ARR( 0.565E-13,  -845., 0.0);
+{ 77703} G2A507c +PERO1              =  0.460G1A509m + 0.270GAA500W + 0.270GAA500y                 : ARR( 0.434E-13,  -900., 0.0);
+{ 77704} G2A507c +PERO2              =  0.400G1A509m + 0.300GAA500W + 0.300GAA500y                 : ARR( 0.162E-13, -1400., 0.0);
+{ 77705} G2A507c +PERO3              =  0.460G1A509m + 0.270GAA500W + 0.270GAA500y                 : ARR( 0.488E-13, -1250., 0.0);
+{ 77706} G2A507c +PERO5              =  0.460G1A509m + 0.270GAA500W + 0.270GAA500y                 : ARR( 0.183E-11,   450., 0.0);
+{ 77707} G2A507c +PERO6              =  0.300G1A509m + 0.350GAA500W + 0.350GAA500y                 : ARR( 0.168E-13, -1300., 0.0);
+{ 77708} G2A507c +PERO9              =  0.650G1A509m + 0.350GAA500y                                : ARR( 0.100E-10,     0., 0.0);
+{ 77709} GPH505f                     =       G3H505f +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 77710} GPH505f +GHO                =       GPH5057 +      GHO                                    : ARR( 0.829E-10,     0., 0.0);
+{ 77711} GPH505f +GHO                =       GPH505J +      GHO                                    : ARR( 0.829E-10,     0., 0.0);
+{ 77712} GPH505f +GHO                =       G3P5021                                               : ARR( 0.216E-10,     0., 0.0);
+{ 77713} GPH505f +GNO3               =       G3P5021 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 77714} GPH505f+HV               =       G3H400w +      GCO     +      GNO2                    :  0.100E+01*SUN;
+{ 77715} GPH505f+HV               =       G1P5091 +      GHO                                    :  0.100E+01*SUN;
+{ 77716} GPH505f+HV               =       G1P50AD +      GHO                                    :  0.100E+01*SUN;
+{ 77717} GPH505f+HV               =       GPH400t +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 77718} G3H505f +GHO2               =  0.800GGH505f + 0.200GAH505g + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 77719} G3H505f +GNO                =       G3H400w +      GNO2    +      GCO2                    : ARR( 0.810E-11,  -270., 0.0);
+{ 77720} G3H505f +GNO2               =       GPH505f                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 77721} G3H505f +GNO3               =       G3H400w +      GNO2    +      GCO2                    : ARR( 0.500E-11,     0., 0.0);
+{ 77722} G3H505f +MEPERO             =  0.685G3H400w + 0.315GAH505g + 0.685GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 77723} G3H505f +PERO1              =  0.800G3H400w + 0.200GAH505g + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 77724} G3H505f +PERO2              =  0.750G3H400w + 0.250GAH505g + 0.750GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 77725} G3H505f +PERO3              =  0.800G3H400w + 0.200GAH505g + 0.800GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 77726} G3H505f +PERO5              =  0.650G3H400w + 0.350GAH505g + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 77727} G3H505f +PERO6              =  0.650G3H400w + 0.350GAH505g + 0.650GCO2                    : ARR( 0.100E-10,     0., 0.0);
+{ 77728} G3H505f +PERO9              =       G3H400w +      GCO2                                   : ARR( 0.500E-11,  -500., 0.0);
+{ 77729} GGH505d +GHO                =       GGH505f +      GHO                                    : ARR( 0.269E-10,     0., 0.0);
+{ 77730} GGH505d +GHO                =       GGH505L +      GHO                                    : ARR( 0.140E-09,     0., 0.0);
+{ 77731} GGH505d +GHO                =       GGH5055 +      GHO                                    : ARR( 0.269E-10,     0., 0.0);
+{ 77732} GGH505d +GHO                =       G3G501z                                               : ARR( 0.223E-10,     0., 0.0);
+{ 77733} GGH505d +GNO3               =       G3G501z +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 77734} GGH505d+HV               =       GHH400r +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 77735} GGH505d+HV               =       G1G507r +      GHO                                    :  0.100E+01*SUN;
+{ 77736} GGH505d+HV               =       G1G508C +      GHO                                    :  0.100E+01*SUN;
+{ 77737} GGH505d+HV               =       G1G507y +      GHO                                    :  0.100E+01*SUN;
+{ 77738} GGH505d+HV               =       GGH400v +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 77739} G3G501z +GHO2               =  0.800GGG501A + 0.200GAG5021 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 77740} G3G501z +GNO                =       GGH400v +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 77741} G3G501z +GNO2               =       GPG501y                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 77742} G3G501z +GNO3               =       GGH400v +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 77743} G3G501z +MEPERO             =  0.685GGH400v + 0.315GAG5021 + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 77744} G3G501z +PERO1              =  0.800GGH400v + 0.200GAG5021 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 77745} G3G501z +PERO2              =  0.750GGH400v + 0.250GAG5021 + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 77746} G3G501z +PERO3              =  0.800GGH400v + 0.200GAG5021 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 77747} G3G501z +PERO5              =  0.650GGH400v + 0.350GAG5021 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 77748} G3G501z +PERO6              =  0.650GGH400v + 0.350GAG5021 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 77749} G3G501z +PERO9              =       GGH400v +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 77750} GGH505e +GHO                =       GGH504h +      GHO                                    : ARR( 0.278E-10,     0., 0.0);
+{ 77751} GGH505e +GHO                =       GGH505L +      GHO2                                   : ARR( 0.361E-10,     0., 0.0);
+{ 77752} GGH505e +GHO                =       GGH5059 +      GHO                                    : ARR( 0.278E-10,     0., 0.0);
+{ 77753} GGH505e +GHO                =       G3G5021                                               : ARR( 0.230E-10,     0., 0.0);
+{ 77754} GGH505e +GNO3               =       G3G5021 +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 77755} GGH505e+HV               =       GHD400L +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 77756} GGH505e+HV               =       G1G5085 +      GHO                                    :  0.100E+01*SUN;
+{ 77757} GGH505e+HV               =       G1G5086 +      GHO                                    :  0.100E+01*SUN;
+{ 77758} GGH505e+HV               =       GGH400g +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 77759} G3G5021 +GHO2               =  0.800GGG501B + 0.200GAG5022 + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 77760} G3G5021 +GNO                =       GGH400g +      GNO2    +      GHO     +      GCO2     : ARR( 0.810E-11,  -270., 0.0);
+{ 77761} G3G5021 +GNO2               =       GPG501z                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 77762} G3G5021 +GNO3               =       GGH400g +      GNO2    +      GHO     +      GCO2     : ARR( 0.500E-11,     0., 0.0);
+{ 77763} G3G5021 +MEPERO             =  0.685GGH400g + 0.315GAG5022 + 0.685GHO     + 0.685GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 77764} G3G5021 +PERO1              =  0.800GGH400g + 0.200GAG5022 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 77765} G3G5021 +PERO2              =  0.750GGH400g + 0.250GAG5022 + 0.750GHO     + 0.750GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 77766} G3G5021 +PERO3              =  0.800GGH400g + 0.200GAG5022 + 0.800GHO     + 0.800GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 77767} G3G5021 +PERO5              =  0.650GGH400g + 0.350GAG5022 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 77768} G3G5021 +PERO6              =  0.650GGH400g + 0.350GAG5022 + 0.650GHO     + 0.650GCO2     : ARR( 0.100E-10,     0., 0.0);
+{ 77769} G3G5021 +PERO9              =       GGH400g +      GHO     +      GCO2                    : ARR( 0.500E-11,  -500., 0.0);
+{ 77770} GGG5013 +GHO                =       GGG500Z +      GHO                                    : ARR( 0.514E-10,     0., 0.0);
+{ 77771} GGG5013 +GHO                =       G3G501a                                               : ARR( 0.388E-11,  -190., 0.0);
+{ 77772} GGG5013 +GHO                =       G2G506G                                               : ARR( 0.388E-11,  -190., 0.0);
+{ 77773} GGG5013+HV               =       GGH400R +      GHO     +      GHO     +      GCO2     :  0.200E+01*SUN;
+{ 77774} GGG5013+HV               =       G1G508A +      GHO                                    :  0.200E+01*SUN;
+{ 77775} G2G506G +GNO                =       G1G508A +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 77776} G2G506G +GNO                =       GGG500X                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 77777} G2G506G +GHO2               =       GGG5013                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 77778} G2G506G +GNO3               =       G1G508A +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 77779} G2G506G +MEPERO             =  0.340G1G508A + 0.330GGG500C + 0.330GGG500Z                 : ARR( 0.565E-13,  -845., 0.0);
+{ 77780} G2G506G +PERO1              =  0.460G1G508A + 0.270GGG500C + 0.270GGG500Z                 : ARR( 0.434E-13,  -900., 0.0);
+{ 77781} G2G506G +PERO2              =  0.400G1G508A + 0.300GGG500C + 0.300GGG500Z                 : ARR( 0.162E-13, -1400., 0.0);
+{ 77782} G2G506G +PERO3              =  0.460G1G508A + 0.270GGG500C + 0.270GGG500Z                 : ARR( 0.488E-13, -1250., 0.0);
+{ 77783} G2G506G +PERO5              =  0.460G1G508A + 0.270GGG500C + 0.270GGG500Z                 : ARR( 0.183E-11,   450., 0.0);
+{ 77784} G2G506G +PERO6              =  0.300G1G508A + 0.350GGG500C + 0.350GGG500Z                 : ARR( 0.168E-13, -1300., 0.0);
+{ 77785} G2G506G +PERO9              =  0.650G1G508A + 0.350GGG500Z                                : ARR( 0.100E-10,     0., 0.0);
+{ 77786} GPG501y                     =       G3G501z +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 77787} GPG501y +GHO                =       GPG501t +      GHO                                    : ARR( 0.291E-10,     0., 0.0);
+{ 77788} GPG501y +GHO                =       GPG501x +      GHO                                    : ARR( 0.477E-10,     0., 0.0);
+{ 77789} GPG501y +GHO                =       GPG501v +      GHO                                    : ARR( 0.291E-10,     0., 0.0);
+{ 77790} GPG501y+HV               =       GPH400w +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 77791} GPG501y+HV               =       G1P50BG +      GHO                                    :  0.100E+01*SUN;
+{ 77792} GPG501y+HV               =       G1P50BE +      GHO                                    :  0.100E+01*SUN;
+{ 77793} GPG501y+HV               =       G1P50B5 +      GHO                                    :  0.100E+01*SUN;
+{ 77794} GPG501y+HV               =       G3G501z +      GNO2                                   :  0.100E+01*SUN;
+{ 77795} GPP501A                     =       G3P501k +      GNO2                                   : ARR( 0.400E+16, 12800., 0.0);
+{ 77796} GPP501A +GHO                =       GPP5017 +      GHO                                    : ARR( 0.521E-10,     0., 0.0);
+{ 77797} GPP501A +GHO                =       GPP5019 +      GHO                                    : ARR( 0.427E-10,     0., 0.0);
+{ 77798} GPP501A +GHO                =       G2P508P                                               : ARR( 0.394E-11,  -190., 0.0);
+{ 77799} GPP501A+HV               =       G3P501k +      GNO2                                   :  0.200E+01*SUN;
+{ 77800} GPP501A+HV               =       G1P50B9 +      GHO                                    :  0.200E+01*SUN;
+{ 77801} GPP501A+HV               =       G1P50BF +      GHO                                    :  0.100E+01*SUN;
+{ 77802} G2P508P +GNO                =       G1P50B9 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 77803} G2P508P +GNO                =       GPP5014                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 77804} G2P508P +GHO2               =       GPP501A                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 77805} G2P508P +GNO3               =       G1P50B9 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 77806} G2P508P +MEPERO             =  0.340G1P50B9 + 0.330GPP500g + 0.330GPP5017                 : ARR( 0.565E-13,  -845., 0.0);
+{ 77807} G2P508P +PERO1              =  0.460G1P50B9 + 0.270GPP500g + 0.270GPP5017                 : ARR( 0.434E-13,  -900., 0.0);
+{ 77808} G2P508P +PERO2              =  0.400G1P50B9 + 0.300GPP500g + 0.300GPP5017                 : ARR( 0.162E-13, -1400., 0.0);
+{ 77809} G2P508P +PERO3              =  0.460G1P50B9 + 0.270GPP500g + 0.270GPP5017                 : ARR( 0.488E-13, -1250., 0.0);
+{ 77810} G2P508P +PERO5              =  0.460G1P50B9 + 0.270GPP500g + 0.270GPP5017                 : ARR( 0.183E-11,   450., 0.0);
+{ 77811} G2P508P +PERO6              =  0.300G1P50B9 + 0.350GPP500g + 0.350GPP5017                 : ARR( 0.168E-13, -1300., 0.0);
+{ 77812} G2P508P +PERO9              =  0.650G1P50B9 + 0.350GPP5017                                : ARR( 0.100E-10,     0., 0.0);
+{ 77813} GPG501z                     =       G3G5021 +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 77814} GPG501z +GHO                =       GPG501X +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 77815} GPG501z +GHO                =       GPG501x +      GHO2                                   : ARR( 0.103E-10,     0., 0.0);
+{ 77816} GPG501z +GHO                =       GPG501a +      GHO                                    : ARR( 0.252E-10,     0., 0.0);
+{ 77817} GPG501z +GHO                =       G3P501l                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 77818} GPG501z +GHO                =       G2P508Q                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 77819} GPG501z +GHO                =       G2P508R                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 77820} GPG501z+HV               =       GPH400l +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 77821} GPG501z+HV               =       G1P50BJ +      GHO                                    :  0.100E+01*SUN;
+{ 77822} GPG501z+HV               =       G1P50B7 +      GHO                                    :  0.100E+01*SUN;
+{ 77823} GPG501z+HV               =       G3G5021 +      GNO2                                   :  0.100E+01*SUN;
+{ 77824} G2P508Q +GNO                =       G1P50BJ +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 77825} G2P508Q +GNO                =       GPG501w                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 77826} G2P508Q +GHO2               =       GPG501z                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 77827} G2P508Q +GNO3               =       G1P50BJ +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 77828} G2P508Q +MEPERO             =  0.340G1P50BJ + 0.330GPG501L + 0.330GPG501X                 : ARR( 0.565E-13,  -845., 0.0);
+{ 77829} G2P508Q +PERO1              =  0.460G1P50BJ + 0.270GPG501L + 0.270GPG501X                 : ARR( 0.434E-13,  -900., 0.0);
+{ 77830} G2P508Q +PERO2              =  0.400G1P50BJ + 0.300GPG501L + 0.300GPG501X                 : ARR( 0.162E-13, -1400., 0.0);
+{ 77831} G2P508Q +PERO3              =  0.460G1P50BJ + 0.270GPG501L + 0.270GPG501X                 : ARR( 0.488E-13, -1250., 0.0);
+{ 77832} G2P508Q +PERO5              =  0.460G1P50BJ + 0.270GPG501L + 0.270GPG501X                 : ARR( 0.183E-11,   450., 0.0);
+{ 77833} G2P508Q +PERO6              =  0.300G1P50BJ + 0.350GPG501L + 0.350GPG501X                 : ARR( 0.168E-13, -1300., 0.0);
+{ 77834} G2P508Q +PERO9              =  0.650G1P50BJ + 0.350GPG501X                                : ARR( 0.100E-10,     0., 0.0);
+{ 77835} G2P508R +GNO                =       G1P50B7 +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 77836} G2P508R +GNO                =       GPG501n                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 77837} G2P508R +GHO2               =       GPG501z                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 77838} G2P508R +GNO3               =       G1P50B7 +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 77839} G2P508R +MEPERO             =  0.340G1P50B7 + 0.330GPG501E + 0.330GPG501a                 : ARR( 0.565E-13,  -845., 0.0);
+{ 77840} G2P508R +PERO1              =  0.460G1P50B7 + 0.270GPG501E + 0.270GPG501a                 : ARR( 0.434E-13,  -900., 0.0);
+{ 77841} G2P508R +PERO2              =  0.400G1P50B7 + 0.300GPG501E + 0.300GPG501a                 : ARR( 0.162E-13, -1400., 0.0);
+{ 77842} G2P508R +PERO3              =  0.460G1P50B7 + 0.270GPG501E + 0.270GPG501a                 : ARR( 0.488E-13, -1250., 0.0);
+{ 77843} G2P508R +PERO5              =  0.460G1P50B7 + 0.270GPG501E + 0.270GPG501a                 : ARR( 0.183E-11,   450., 0.0);
+{ 77844} G2P508R +PERO6              =  0.300G1P50B7 + 0.350GPG501E + 0.350GPG501a                 : ARR( 0.168E-13, -1300., 0.0);
+{ 77845} G2P508R +PERO9              =  0.650G1P50B7 + 0.350GPG501a                                : ARR( 0.100E-10,     0., 0.0);
+{ 77846} GPP501B                     =       G3P501l +      GNO2                                   : ARR( 0.400E+16, 12800., 0.0);
+{ 77847} GPP501B +GHO                =       GPP500t +      GHO                                    : ARR( 0.504E-10,     0., 0.0);
+{ 77848} GPP501B +GHO                =       GPP5019 +      GHO2                                   : ARR( 0.103E-10,     0., 0.0);
+{ 77849} GPP501B +GHO                =       G2P508S                                               : ARR( 0.381E-11,  -190., 0.0);
+{ 77850} GPP501B+HV               =       G3P501l +      GNO2                                   :  0.200E+01*SUN;
+{ 77851} GPP501B+HV               =       G1P50BA +      GHO                                    :  0.200E+01*SUN;
+{ 77852} G2P508S +GNO                =       G1P50BA +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 77853} G2P508S +GNO                =       GPP5015                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 77854} G2P508S +GHO2               =       GPP501B                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 77855} G2P508S +GNO3               =       G1P50BA +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 77856} G2P508S +MEPERO             =  0.340G1P50BA + 0.330GPP500h + 0.330GPP500t                 : ARR( 0.565E-13,  -845., 0.0);
+{ 77857} G2P508S +PERO1              =  0.460G1P50BA + 0.270GPP500h + 0.270GPP500t                 : ARR( 0.434E-13,  -900., 0.0);
+{ 77858} G2P508S +PERO2              =  0.400G1P50BA + 0.300GPP500h + 0.300GPP500t                 : ARR( 0.162E-13, -1400., 0.0);
+{ 77859} G2P508S +PERO3              =  0.460G1P50BA + 0.270GPP500h + 0.270GPP500t                 : ARR( 0.488E-13, -1250., 0.0);
+{ 77860} G2P508S +PERO5              =  0.460G1P50BA + 0.270GPP500h + 0.270GPP500t                 : ARR( 0.183E-11,   450., 0.0);
+{ 77861} G2P508S +PERO6              =  0.300G1P50BA + 0.350GPP500h + 0.350GPP500t                 : ARR( 0.168E-13, -1300., 0.0);
+{ 77862} G2P508S +PERO9              =  0.650G1P50BA + 0.350GPP500t                                : ARR( 0.100E-10,     0., 0.0);
+{ 77863} GGG5014 +GHO                =       G3G501b                                               : ARR( 0.382E-11,  -190., 0.0);
+{ 77864} GGG5014+HV               =       GGN400X +      GHO     +      GNO2    +      GCO2     :  0.200E+01*SUN;
+{ 77865} GGG5014+HV               =       G1G508l +      GNO2                                   :  0.200E+01*SUN;
+{ 77866} GGG5014+HV               =       G1G508f +      GNO2                                   :  0.100E+01*SUN;
+{ 77867} G1G508l                     =       GGN400X +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 77868} GGG5015 +GHO                =       GGG5016 +      GHO                                    : ARR( 0.504E-11,     0., 0.0);
+{ 77869} GGG5015 +GHO                =       G3G501c                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 77870} GGG5015 +GHO                =       G2G506H                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 77871} GGG5015 +GHO                =       G3G501e                                               : ARR( 0.190E-11,  -190., 0.0);
+{ 77872} GGG5015+HV               =       GGH400r +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 77873} GGG5015+HV               =       G1G508m +      GNO2                                   :  0.100E+01*SUN;
+{ 77874} GGG5015+HV               =       G1G508h +      GNO2                                   :  0.100E+01*SUN;
+{ 77875} GGG5015+HV               =       G1G508l +      GHO                                    :  0.100E+01*SUN;
+{ 77876} GGG5015+HV               =       GGN400X +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 77877} G2G506H +GNO                =       G1G508l +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 77878} G2G506H +GNO                =       GGG5014                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 77879} G2G506H +GHO2               =       GGG5015                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 77880} G2G506H +GNO3               =       G1G508l +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 77881} G2G506H +MEPERO             =  0.340G1G508l + 0.330GGG500c + 0.330GGG5016                 : ARR( 0.565E-13,  -845., 0.0);
+{ 77882} G2G506H +PERO1              =  0.460G1G508l + 0.270GGG500c + 0.270GGG5016                 : ARR( 0.434E-13,  -900., 0.0);
+{ 77883} G2G506H +PERO2              =  0.400G1G508l + 0.300GGG500c + 0.300GGG5016                 : ARR( 0.162E-13, -1400., 0.0);
+{ 77884} G2G506H +PERO3              =  0.460G1G508l + 0.270GGG500c + 0.270GGG5016                 : ARR( 0.488E-13, -1250., 0.0);
+{ 77885} G2G506H +PERO5              =  0.460G1G508l + 0.270GGG500c + 0.270GGG5016                 : ARR( 0.183E-11,   450., 0.0);
+{ 77886} G2G506H +PERO6              =  0.300G1G508l + 0.350GGG500c + 0.350GGG5016                 : ARR( 0.168E-13, -1300., 0.0);
+{ 77887} G2G506H +PERO9              =  0.650G1G508l + 0.350GGG5016                                : ARR( 0.100E-10,     0., 0.0);
+{ 77888} G1G508m                     =       GGH400r +      GCO     +      GHO2                    : ARR( 0.200E+15,  5204., 0.0);
+{ 77889} GGG5016 +GHO                =       G3G501k                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 77890} GGG5016 +GHO                =       G3G501d                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 77891} GGG5016+HV               =       GAG400C +      GCO2                                   :  0.100E+01*SUN;
+{ 77892} GGG5016+HV               =       G1G508i +      GNO2                                   :  0.100E+01*SUN;
+{ 77893} GGG5016+HV               =       G1G508n +      GNO2                                   :  0.100E+01*SUN;
+{ 77894} GGG5016+HV               =       GGN400b +      GHO     +      GNO2    +      GCO2     :  0.100E+01*SUN;
+{ 77895} G1G508n                     =       GGN400b +      GCO     +      GHO2                    : ARR( 0.200E+15,  4373., 0.0);
+{ 77896} GGG5017 +GHO                =       GGG5018 +      GHO                                    : ARR( 0.101E-10,     0., 0.0);
+{ 77897} GGG5017 +GHO                =       G3G501f                                               : ARR( 0.382E-11,  -190., 0.0);
+{ 77898} GGG5017 +GHO                =       G2G506I                                               : ARR( 0.382E-11,  -190., 0.0);
+{ 77899} GGG5017+HV               =       GGH400r +      GHO     +      GHO     +      GCO2     :  0.200E+01*SUN;
+{ 77900} GGG5017+HV               =       G1G508m +      GHO                                    :  0.200E+01*SUN;
+{ 77901} GGG5017+HV               =       G1G508o +      GNO2                                   :  0.100E+01*SUN;
+{ 77902} G2G506I +GNO                =       G1G508m +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 77903} G2G506I +GNO                =       GGG5015                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 77904} G2G506I +GHO2               =       GGG5017                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 77905} G2G506I +GNO3               =       G1G508m +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 77906} G2G506I +MEPERO             =  0.340G1G508m + 0.330GGG500d + 0.330GGG5018                 : ARR( 0.565E-13,  -845., 0.0);
+{ 77907} G2G506I +PERO1              =  0.460G1G508m + 0.270GGG500d + 0.270GGG5018                 : ARR( 0.434E-13,  -900., 0.0);
+{ 77908} G2G506I +PERO2              =  0.400G1G508m + 0.300GGG500d + 0.300GGG5018                 : ARR( 0.162E-13, -1400., 0.0);
+{ 77909} G2G506I +PERO3              =  0.460G1G508m + 0.270GGG500d + 0.270GGG5018                 : ARR( 0.488E-13, -1250., 0.0);
+{ 77910} G2G506I +PERO5              =  0.460G1G508m + 0.270GGG500d + 0.270GGG5018                 : ARR( 0.183E-11,   450., 0.0);
+{ 77911} G2G506I +PERO6              =  0.300G1G508m + 0.350GGG500d + 0.350GGG5018                 : ARR( 0.168E-13, -1300., 0.0);
+{ 77912} G2G506I +PERO9              =  0.650G1G508m + 0.350GGG5018                                : ARR( 0.100E-10,     0., 0.0);
+{ 77913} G1G508o                     =       GGD2000 +      GGH3007 +      GHO                     : ARR( 0.400E+15,  4308., 0.0);
+{ 77914} GGG5018 +GHO                =       GGG5012 +      GHO                                    : ARR( 0.505E-11,     0., 0.0);
+{ 77915} GGG5018 +GHO                =       G3G501l                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 77916} GGG5018 +GHO                =       G2G506J                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 77917} GGG5018 +GHO                =       G3G501g                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 77918} GGG5018+HV               =       GAG400N +      GCO2                                   :  0.100E+01*SUN;
+{ 77919} GGG5018+HV               =       G1G508j +      GNO2                                   :  0.100E+01*SUN;
+{ 77920} GGG5018+HV               =       G1G508n +      GHO                                    :  0.100E+01*SUN;
+{ 77921} GGG5018+HV               =       GGN400b +      GHO     +      GHO     +      GCO2     :  0.100E+01*SUN;
+{ 77922} G2G506J +GNO                =       G1G508n +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 77923} G2G506J +GNO                =       GGG5016                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 77924} G2G506J +GHO2               =       GGG5018                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 77925} G2G506J +GNO3               =       G1G508n +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 77926} G2G506J +MEPERO             =  0.340G1G508n + 0.330GGG500l + 0.330GGG5012                 : ARR( 0.565E-13,  -845., 0.0);
+{ 77927} G2G506J +PERO1              =  0.460G1G508n + 0.270GGG500l + 0.270GGG5012                 : ARR( 0.434E-13,  -900., 0.0);
+{ 77928} G2G506J +PERO2              =  0.400G1G508n + 0.300GGG500l + 0.300GGG5012                 : ARR( 0.162E-13, -1400., 0.0);
+{ 77929} G2G506J +PERO3              =  0.460G1G508n + 0.270GGG500l + 0.270GGG5012                 : ARR( 0.488E-13, -1250., 0.0);
+{ 77930} G2G506J +PERO5              =  0.460G1G508n + 0.270GGG500l + 0.270GGG5012                 : ARR( 0.183E-11,   450., 0.0);
+{ 77931} G2G506J +PERO6              =  0.300G1G508n + 0.350GGG500l + 0.350GGG5012                 : ARR( 0.168E-13, -1300., 0.0);
+{ 77932} G2G506J +PERO9              =  0.650G1G508n + 0.350GGG5012                                : ARR( 0.100E-10,     0., 0.0);
+{ 77933} GAG5024 +GHO                =       GAG501z +      GHO                                    : ARR( 0.392E-11,     0., 0.0);
+{ 77934} GAG5024 +GHO                =       G2A507d                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 77935} GAG5024 +GHO                =       G3A501t                                               : ARR( 0.200E-11,  -190., 0.0);
+{ 77936} GAG5024+HV               =       G1A509t +      GHO                                    :  0.100E+01*SUN;
+{ 77937} GAG5024+HV               =       G1A50A1 +      GNO2                                   :  0.100E+01*SUN;
+{ 77938} GAG5024+HV               =       GAA4009 +      GCO2                                   :  0.100E+01*SUN;
+{ 77939} G2A507d +GNO                =       G1A509t +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 77940} G2A507d +GNO                =       GAG501o                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 77941} G2A507d +GHO2               =       GAG5024                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 77942} G2A507d +GNO3               =       G1A509t +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 77943} G2A507d +MEPERO             =  0.340G1A509t + 0.330GAG501R + 0.330GAG501z                 : ARR( 0.565E-13,  -845., 0.0);
+{ 77944} G2A507d +PERO1              =  0.460G1A509t + 0.270GAG501R + 0.270GAG501z                 : ARR( 0.434E-13,  -900., 0.0);
+{ 77945} G2A507d +PERO2              =  0.400G1A509t + 0.300GAG501R + 0.300GAG501z                 : ARR( 0.162E-13, -1400., 0.0);
+{ 77946} G2A507d +PERO3              =  0.460G1A509t + 0.270GAG501R + 0.270GAG501z                 : ARR( 0.488E-13, -1250., 0.0);
+{ 77947} G2A507d +PERO5              =  0.460G1A509t + 0.270GAG501R + 0.270GAG501z                 : ARR( 0.183E-11,   450., 0.0);
+{ 77948} G2A507d +PERO6              =  0.300G1A509t + 0.350GAG501R + 0.350GAG501z                 : ARR( 0.168E-13, -1300., 0.0);
+{ 77949} G2A507d +PERO9              =  0.650G1A509t + 0.350GAG501z                                : ARR( 0.100E-10,     0., 0.0);
+{ 77950} GPG5021                     =       G3G501g +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 77951} GPG5021 +GHO                =       GPG501p +      GHO                                    : ARR( 0.506E-11,     0., 0.0);
+{ 77952} GPG5021 +GHO                =       G3P501p                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 77953} GPG5021 +GHO                =       G2P508T                                               : ARR( 0.191E-11,  -190., 0.0);
+{ 77954} GPG5021+HV               =       GPA400H +      GCO2                                   :  0.100E+01*SUN;
+{ 77955} GPG5021+HV               =       G1P50BH +      GNO2                                   :  0.100E+01*SUN;
+{ 77956} GPG5021+HV               =       G1P50BB +      GHO                                    :  0.100E+01*SUN;
+{ 77957} GPG5021+HV               =       G3G501g +      GNO2                                   :  0.100E+01*SUN;
+{ 77958} G2P508T +GNO                =       G1P50BB +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 77959} G2P508T +GNO                =       GPG501o                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 77960} G2P508T +GHO2               =       GPG5021                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 77961} G2P508T +GNO3               =       G1P50BB +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 77962} G2P508T +MEPERO             =  0.340G1P50BB + 0.330GPG500w + 0.330GPG501p                 : ARR( 0.565E-13,  -845., 0.0);
+{ 77963} G2P508T +PERO1              =  0.460G1P50BB + 0.270GPG500w + 0.270GPG501p                 : ARR( 0.434E-13,  -900., 0.0);
+{ 77964} G2P508T +PERO2              =  0.400G1P50BB + 0.300GPG500w + 0.300GPG501p                 : ARR( 0.162E-13, -1400., 0.0);
+{ 77965} G2P508T +PERO3              =  0.460G1P50BB + 0.270GPG500w + 0.270GPG501p                 : ARR( 0.488E-13, -1250., 0.0);
+{ 77966} G2P508T +PERO5              =  0.460G1P50BB + 0.270GPG500w + 0.270GPG501p                 : ARR( 0.183E-11,   450., 0.0);
+{ 77967} G2P508T +PERO6              =  0.300G1P50BB + 0.350GPG500w + 0.350GPG501p                 : ARR( 0.168E-13, -1300., 0.0);
+{ 77968} G2P508T +PERO9              =  0.650G1P50BB + 0.350GPG501p                                : ARR( 0.100E-10,     0., 0.0);
+{ 77969} GGH505f +GHO                =       GGH505Y +      GHO                                    : ARR( 0.844E-10,     0., 0.0);
+{ 77970} GGH505f +GHO                =       GGH5053 +      GHO                                    : ARR( 0.844E-10,     0., 0.0);
+{ 77971} GGH505f +GHO                =       G3G501x                                               : ARR( 0.220E-10,     0., 0.0);
+{ 77972} GGH505f +GNO3               =       G3G501x +      GHNO3                                  : ARR( 0.120E-13,     0., 0.0);
+{ 77973} GGH505f+HV               =       GAH400w +      GCO2                                   :  0.100E+01*SUN;
+{ 77974} GGH505f+HV               =       G1G508O +      GHO                                    :  0.100E+01*SUN;
+{ 77975} GGH505f+HV               =       G1G507v +      GHO                                    :  0.100E+01*SUN;
+{ 77976} GGH505f+HV               =       GGH400p +      GCO     +      GHO     +      GHO2     :  0.100E+01*SUN;
+{ 77977} GGG5019 +GHO                =       GGG500s +      GHO                                    : ARR( 0.306E-10,     0., 0.0);
+{ 77978} GGG5019 +GHO                =       G3G501h                                               : ARR( 0.380E-11,  -190., 0.0);
+{ 77979} GGG5019 +GHO                =       G2G506K                                               : ARR( 0.380E-11,  -190., 0.0);
+{ 77980} GGG5019+HV               =       GGH400s +      GHO     +      GHO     +      GCO2     :  0.200E+01*SUN;
+{ 77981} GGG5019+HV               =       G1G508b +      GHO                                    :  0.200E+01*SUN;
+{ 77982} GGG5019+HV               =       G3G3003 +      GGD2000 +      GHO                     :  0.100E+01*SUN;
+{ 77983} G2G506K +GNO                =       G1G508b +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 77984} G2G506K +GNO                =       GGG500q                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 77985} G2G506K +GHO2               =       GGG5019                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 77986} G2G506K +GNO3               =       G1G508b +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 77987} G2G506K +MEPERO             =  0.340G1G508b + 0.330GGG500i + 0.330GGG500s                 : ARR( 0.565E-13,  -845., 0.0);
+{ 77988} G2G506K +PERO1              =  0.460G1G508b + 0.270GGG500i + 0.270GGG500s                 : ARR( 0.434E-13,  -900., 0.0);
+{ 77989} G2G506K +PERO2              =  0.400G1G508b + 0.300GGG500i + 0.300GGG500s                 : ARR( 0.162E-13, -1400., 0.0);
+{ 77990} G2G506K +PERO3              =  0.460G1G508b + 0.270GGG500i + 0.270GGG500s                 : ARR( 0.488E-13, -1250., 0.0);
+{ 77991} G2G506K +PERO5              =  0.460G1G508b + 0.270GGG500i + 0.270GGG500s                 : ARR( 0.183E-11,   450., 0.0);
+{ 77992} G2G506K +PERO6              =  0.300G1G508b + 0.350GGG500i + 0.350GGG500s                 : ARR( 0.168E-13, -1300., 0.0);
+{ 77993} G2G506K +PERO9              =  0.650G1G508b + 0.350GGG500s                                : ARR( 0.100E-10,     0., 0.0);
+{ 77994} GGH505g +GHO                =       GGH505Y +      GHO                                    : ARR( 0.582E-10,     0., 0.0);
+{ 77995} GGH505g +GHO                =       GGH504q +      GHO                                    : ARR( 0.287E-10,     0., 0.0);
+{ 77996} GGH505g+HV               =       G1G5083 +      GHO                                    :  0.100E+01*SUN;
+{ 77997} GGH505g+HV               =       G1G508a +      GHO                                    :  0.100E+01*SUN;
+{ 77998} GGH505g+HV               =       G3H3007 +      GCO     +      GHO2    +      GCO      :  0.100E+01*SUN;
+{ 77999} GGH505g+HV               =       GAH400z +      GCO2                                   :  0.100E+01*SUN;
+{ 78000} GAH505h +GHO                =       GAH504t +      GHO                                    : ARR( 0.277E-10,     0., 0.0);
+{ 78001} GAH505h +GHO                =       GAH504v +      GHO                                    : ARR( 0.562E-10,     0., 0.0);
+{ 78002} GAH505h+HV               =       GHH400w +      GCO2                                   :  0.100E+01*SUN;
+{ 78003} GAH505h+HV               =       GCO     +      G3H3007 +      GHO     +      GCO      :  0.100E+01*SUN;
+{ 78004} GAH505h+HV               =       G1A508R +      GHO                                    :  0.100E+01*SUN;
+{ 78005} GAH505h+HV               =       G1A506c +      GHO                                    :  0.100E+01*SUN;
+{ 78006} GPH505g                     =       G3H505g +      GNO2                                   : ARR( 0.200E+16, 12800., 0.0);
+{ 78007} GPH505g +GHO                =       GPH5057 +      GHO                                    : ARR( 0.558E-10,     0., 0.0);
+{ 78008} GPH505g +GHO                =       GPH5055 +      GHO                                    : ARR( 0.275E-10,     0., 0.0);
+{ 78009} GPH505g+HV               =       G1P507K +      GHO                                    :  0.100E+01*SUN;
+{ 78010} GPH505g+HV               =       G1P509N +      GHO                                    :  0.100E+01*SUN;
+{ 78011} GPH505g+HV               =       G3H3007 +      GCO     +      GNO2    +      GCO      :  0.100E+01*SUN;
+{ 78012} GPH505g+HV               =       G3H3007 +      GCO     +      GCO     +      GNO2     :  0.100E+01*SUN;
+{ 78013} G3H505g +GHO2               =  0.800GGH505g + 0.200GAH505h + 0.200GO3                     : ARR( 0.640E-12,  -925., 0.0);
+{ 78014} G3H505g +GNO                =       G3H3007 +      GNO2    +      GCO2    +      GCO      : ARR( 0.810E-11,  -270., 0.0);
+{ 78015} G3H505g +GNO2               =       GPH505g                                               : ARR( 0.330E-08,     0.,-1.0);
+{ 78016} G3H505g +GNO3               =       G3H3007 +      GNO2    +      GCO2    +      GCO      : ARR( 0.500E-11,     0., 0.0);
+{ 78017} G3H505g +MEPERO             =  0.685G3H3007 + 0.315GAH505h + 0.685GCO2    + 0.685GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 78018} G3H505g +PERO1              =  0.800G3H3007 + 0.200GAH505h + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 78019} G3H505g +PERO2              =  0.750G3H3007 + 0.250GAH505h + 0.750GCO2    + 0.750GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 78020} G3H505g +PERO3              =  0.800G3H3007 + 0.200GAH505h + 0.800GCO2    + 0.800GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 78021} G3H505g +PERO5              =  0.650G3H3007 + 0.350GAH505h + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 78022} G3H505g +PERO6              =  0.650G3H3007 + 0.350GAH505h + 0.650GCO2    + 0.650GCO      : ARR( 0.100E-10,     0., 0.0);
+{ 78023} G3H505g +PERO9              =       G3H3007 +      GCO2    +      GCO                     : ARR( 0.500E-11,  -500., 0.0);
+{ 78024} GGG501A +GHO                =       GGG500x +      GHO                                    : ARR( 0.520E-10,     0., 0.0);
+{ 78025} GGG501A +GHO                =       GGG5019 +      GHO                                    : ARR( 0.426E-10,     0., 0.0);
+{ 78026} GGG501A +GHO                =       G3G501z                                               : ARR( 0.393E-11,  -190., 0.0);
+{ 78027} GGG501A +GHO                =       G2G506L                                               : ARR( 0.393E-11,  -190., 0.0);
+{ 78028} GGG501A+HV               =       GGH400v +      GHO     +      GHO     +      GCO2     :  0.200E+01*SUN;
+{ 78029} GGG501A+HV               =       G1G508g +      GHO                                    :  0.200E+01*SUN;
+{ 78030} GGG501A+HV               =       G1G508o +      GHO                                    :  0.100E+01*SUN;
+{ 78031} G2G506L +GNO                =       G1G508g +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 78032} G2G506L +GNO                =       GGG500v                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 78033} G2G506L +GHO2               =       GGG501A                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 78034} G2G506L +GNO3               =       G1G508g +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 78035} G2G506L +MEPERO             =  0.340G1G508g + 0.330GGG500g + 0.330GGG500x                 : ARR( 0.565E-13,  -845., 0.0);
+{ 78036} G2G506L +PERO1              =  0.460G1G508g + 0.270GGG500g + 0.270GGG500x                 : ARR( 0.434E-13,  -900., 0.0);
+{ 78037} G2G506L +PERO2              =  0.400G1G508g + 0.300GGG500g + 0.300GGG500x                 : ARR( 0.162E-13, -1400., 0.0);
+{ 78038} G2G506L +PERO3              =  0.460G1G508g + 0.270GGG500g + 0.270GGG500x                 : ARR( 0.488E-13, -1250., 0.0);
+{ 78039} G2G506L +PERO5              =  0.460G1G508g + 0.270GGG500g + 0.270GGG500x                 : ARR( 0.183E-11,   450., 0.0);
+{ 78040} G2G506L +PERO6              =  0.300G1G508g + 0.350GGG500g + 0.350GGG500x                 : ARR( 0.168E-13, -1300., 0.0);
+{ 78041} G2G506L +PERO9              =  0.650G1G508g + 0.350GGG500x                                : ARR( 0.100E-10,     0., 0.0);
+{ 78042} GGG501B +GHO                =       GGG500n +      GHO                                    : ARR( 0.504E-10,     0., 0.0);
+{ 78043} GGG501B +GHO                =       GGG5019 +      GHO2                                   : ARR( 0.103E-10,     0., 0.0);
+{ 78044} GGG501B +GHO                =       G3G5021                                               : ARR( 0.381E-11,  -190., 0.0);
+{ 78045} GGG501B +GHO                =       G2G506M                                               : ARR( 0.381E-11,  -190., 0.0);
+{ 78046} GGG501B+HV               =       GGH400g +      GHO     +      GHO     +      GCO2     :  0.200E+01*SUN;
+{ 78047} GGG501B+HV               =       G1G508k +      GHO                                    :  0.200E+01*SUN;
+{ 78048} G2G506M +GNO                =       G1G508k +      GNO2                                   : ARR( 0.252E-11,  -360., 0.0);
+{ 78049} G2G506M +GNO                =       GGG5011                                               : ARR( 0.182E-12,  -360., 0.0);
+{ 78050} G2G506M +GHO2               =       GGG501B                                               : ARR( 0.242E-12, -1250., 0.0);
+{ 78051} G2G506M +GNO3               =       G1G508k +      GNO2                                   : ARR( 0.230E-11,     0., 0.0);
+{ 78052} G2G506M +MEPERO             =  0.340G1G508k + 0.330GGG500h + 0.330GGG500n                 : ARR( 0.565E-13,  -845., 0.0);
+{ 78053} G2G506M +PERO1              =  0.460G1G508k + 0.270GGG500h + 0.270GGG500n                 : ARR( 0.434E-13,  -900., 0.0);
+{ 78054} G2G506M +PERO2              =  0.400G1G508k + 0.300GGG500h + 0.300GGG500n                 : ARR( 0.162E-13, -1400., 0.0);
+{ 78055} G2G506M +PERO3              =  0.460G1G508k + 0.270GGG500h + 0.270GGG500n                 : ARR( 0.488E-13, -1250., 0.0);
+{ 78056} G2G506M +PERO5              =  0.460G1G508k + 0.270GGG500h + 0.270GGG500n                 : ARR( 0.183E-11,   450., 0.0);
+{ 78057} G2G506M +PERO6              =  0.300G1G508k + 0.350GGG500h + 0.350GGG500n                 : ARR( 0.168E-13, -1300., 0.0);
+{ 78058} G2G506M +PERO9              =  0.650G1G508k + 0.350GGG500n                                : ARR( 0.100E-10,     0., 0.0);
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/test_pentane.spc
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/test_pentane.spc	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/test_pentane.spc	(revision 2696)
@@ -0,0 +1,12499 @@
+#INCLUDE atoms
+ 
+#DEFVAR
+  GH      = H;             {H                                                                                                               }
+  GH2O2   = 2H+2O;         {H2O2                                                                                                            }
+  GHNO2   = H+N+2O;        {HNO2                                                                                                            }
+  GHNO3   = H+N+3O;        {HNO3                                                                                                            }
+  GHNO4   = H+N+4O;        {HNO4                                                                                                            }
+  GHO     = H+O;           {HO                                                                                                              }
+  GHO2    = H+2O;          {HO2                                                                                                             }
+  GN2O5   = 2N+O;          {N2O5                                                                                                            }
+  GNO     = N+O;           {NO                                                                                                              }
+  GNO2    = N+2O;          {NO2                                                                                                             }
+  GNO3    = N+3O;          {NO3                                                                                                             }
+  GO3P    = O;             {O                                                                                                               }
+  GO1D    = O;             {O*                                                                                                              }
+  GO3     = 3O;            {O3                                                                                                              }
+  GSO2    = 2O+S;          {SO2                                                                                                             }
+  GSULF   = S;             {sulf                                                                                                            }
+  G1N503C = 5C+10H+N+7O;   {CH2(OH)CH(O.)CH(OH)CH(OH)CH2(ONO2)                                                                     1.NOO    }
+  G1D501R = 5C+9H+5O;      {CH2(OH)CH(O.)CH(OH)CH(OH)CHO                                                                           1.DOO    }
+  G1A502z = 5C+9H+6O;      {CH2(OH)CH(O.)CH(OH)CH(OH)CO(OH)                                                                        1.AOO    }
+  G1G501b = 5C+9H+7O;      {CH2(OH)CH(O.)CH(OH)CH(OH)CO(OOH)                                                                       1.GOO    }
+  G1P5028 = 5C+8H+N+9O;    {CH2(OH)CH(O.)CH(OH)CH(OH)CO(OONO2)                                                                     1.POO    }
+  G1N504Q = 5C+9H+2N+9O;   {CH2(OH)CH(O.)CH(OH)CH(ONO2)CH2(ONO2)                                                                   1.NNO    }
+  G1H5041 = 5C+10H+N+8O;   {CH2(OH)CH(O.)CH(OH)CH(ONO2)CH2(OOH)                                                                    1.HNO    }
+  G1N504b = 5C+8H+N+7O;    {CH2(OH)CH(O.)CH(OH)CH(ONO2)CHO                                                                         1.NDO    }
+  G1A502y = 5C+8H+N+8O;    {CH2(OH)CH(O.)CH(OH)CH(ONO2)CO(OH)                                                                      1.ANO    }
+  G1G502J = 5C+8H+N+9O;    {CH2(OH)CH(O.)CH(OH)CH(ONO2)CO(OOH)                                                                     1.GNO    }
+  G1P503D = 5C+7H+2N+11O;  {CH2(OH)CH(O.)CH(OH)CH(ONO2)CO(OONO2)                                                                   1.PNO    }
+  G1H5027 = 5C+10H+N+8O;   {CH2(OH)CH(O.)CH(OH)CH(OOH)CH2(ONO2)                                                                    1.HNO    }
+  G1H50AQ = 5C+9H+6O;      {CH2(OH)CH(O.)CH(OH)CH(OOH)CHO                                                                          1.HDO    }
+  G1A507E = 5C+9H+7O;      {CH2(OH)CH(O.)CH(OH)CH(OOH)CO(OH)                                                                       1.AHO    }
+  G1G506l = 5C+9H+8O;      {CH2(OH)CH(O.)CH(OH)CH(OOH)CO(OOH)                                                                      1.GHO    }
+  G1P507o = 5C+8H+N+10O;   {CH2(OH)CH(O.)CH(OH)CH(OOH)CO(OONO2)                                                                    1.PHO    }
+  G1N400B = 4C+8H+N+6O;    {CH2(OH)CH(O.)CH(OH)CH2(ONO2)                                                                           1.NOO    }
+  G1H400X = 4C+9H+5O;      {CH2(OH)CH(O.)CH(OH)CH2(OOH)                                                                            1.HOO    }
+  G1N501s = 5C+10H+N+6O;   {CH2(OH)CH(O.)CH(OH)CH2CH2(ONO2)                                                                        1.NOO    }
+  G1D501G = 5C+9H+4O;      {CH2(OH)CH(O.)CH(OH)CH2CHO                                                                              1.DOO    }
+  G1A504l = 5C+9H+5O;      {CH2(OH)CH(O.)CH(OH)CH2CO(OH)                                                                           1.AOO    }
+  G1G5052 = 5C+9H+6O;      {CH2(OH)CH(O.)CH(OH)CH2CO(OOH)                                                                          1.GOO    }
+  G1P504s = 5C+8H+N+8O;    {CH2(OH)CH(O.)CH(OH)CH2CO(OONO2)                                                                        1.POO    }
+  G1D4002 = 4C+7H+4O;      {CH2(OH)CH(O.)CH(OH)CHO                                                                                 1.DOO    }
+  G1A400K = 4C+7H+5O;      {CH2(OH)CH(O.)CH(OH)CO(OH)                                                                              1.AOO    }
+  G1G400E = 4C+7H+6O;      {CH2(OH)CH(O.)CH(OH)CO(OOH)                                                                             1.GOO    }
+  G1P400L = 4C+6H+N+8O;    {CH2(OH)CH(O.)CH(OH)CO(OONO2)                                                                           1.POO    }
+  G1N503H = 5C+8H+N+7O;    {CH2(OH)CH(O.)CH(OH)COCH2(ONO2)                                                                         1.NKO    }
+  G1H5042 = 5C+9H+6O;      {CH2(OH)CH(O.)CH(OH)COCH2(OOH)                                                                          1.HKO    }
+  G1D500m = 5C+7H+5O;      {CH2(OH)CH(O.)CH(OH)COCHO                                                                               1.DKO    }
+  G1A5031 = 5C+7H+6O;      {CH2(OH)CH(O.)CH(OH)COCO(OH)                                                                            1.AKO    }
+  G1G501c = 5C+7H+7O;      {CH2(OH)CH(O.)CH(OH)COCO(OOH)                                                                           1.GKO    }
+  G1P5029 = 5C+6H+N+9O;    {CH2(OH)CH(O.)CH(OH)COCO(OONO2)                                                                         1.PKO    }
+  G1N502j = 5C+9H+2N+9O;   {CH2(OH)CH(O.)CH(ONO2)CH(OH)CH2(ONO2)                                                                   1.NNO    }
+  G1H507g = 5C+10H+N+8O;   {CH2(OH)CH(O.)CH(ONO2)CH(OH)CH2(OOH)                                                                    1.HNO    }
+  G1N506G = 5C+8H+N+7O;    {CH2(OH)CH(O.)CH(ONO2)CH(OH)CHO                                                                         1.NDO    }
+  G1A505j = 5C+8H+N+8O;    {CH2(OH)CH(O.)CH(ONO2)CH(OH)CO(OH)                                                                      1.ANO    }
+  G1G504e = 5C+8H+N+9O;    {CH2(OH)CH(O.)CH(ONO2)CH(OH)CO(OOH)                                                                     1.GNO    }
+  G1P505F = 5C+7H+2N+11O;  {CH2(OH)CH(O.)CH(ONO2)CH(OH)CO(OONO2)                                                                   1.PNO    }
+  G1N502g = 5C+8H+3N+11O;  {CH2(OH)CH(O.)CH(ONO2)CH(ONO2)CH2(ONO2)                                                                 1.NNN    }
+  G1H509m = 5C+9H+2N+10O;  {CH2(OH)CH(O.)CH(ONO2)CH(ONO2)CH2(OOH)                                                                  1.HNN    }
+  G1N506h = 5C+7H+2N+9O;   {CH2(OH)CH(O.)CH(ONO2)CH(ONO2)CHO                                                                       1.NND    }
+  G1A501s = 5C+7H+2N+10O;  {CH2(OH)CH(O.)CH(ONO2)CH(ONO2)CO(OH)                                                                    1.ANN    }
+  G1G505j = 5C+7H+2N+11O;  {CH2(OH)CH(O.)CH(ONO2)CH(ONO2)CO(OOH)                                                                   1.GNN    }
+  G1P501y = 5C+6H+3N+13O;  {CH2(OH)CH(O.)CH(ONO2)CH(ONO2)CO(OONO2)                                                                 1.PNN    }
+  G1H504U = 5C+9H+2N+10O;  {CH2(OH)CH(O.)CH(ONO2)CH(OOH)CH2(ONO2)                                                                  1.HNN    }
+  G1H509n = 5C+10H+N+9O;   {CH2(OH)CH(O.)CH(ONO2)CH(OOH)CH2(OOH)                                                                   1.HHN    }
+  G1H509r = 5C+8H+N+8O;    {CH2(OH)CH(O.)CH(ONO2)CH(OOH)CHO                                                                        1.HND    }
+  G1A506B = 5C+8H+N+9O;    {CH2(OH)CH(O.)CH(ONO2)CH(OOH)CO(OH)                                                                     1.AHN    }
+  G1G5063 = 5C+8H+N+10O;   {CH2(OH)CH(O.)CH(ONO2)CH(OOH)CO(OOH)                                                                    1.GHN    }
+  G1P505C = 5C+7H+2N+12O;  {CH2(OH)CH(O.)CH(ONO2)CH(OOH)CO(OONO2)                                                                  1.PHN    }
+  G1N400a = 4C+7H+2N+8O;   {CH2(OH)CH(O.)CH(ONO2)CH2(ONO2)                                                                         1.NNO    }
+  G1H401J = 4C+8H+N+7O;    {CH2(OH)CH(O.)CH(ONO2)CH2(OOH)                                                                          1.HNO    }
+  G1N501q = 5C+9H+2N+8O;   {CH2(OH)CH(O.)CH(ONO2)CH2CH2(ONO2)                                                                      1.NNO    }
+  G1H5078 = 5C+10H+N+7O;   {CH2(OH)CH(O.)CH(ONO2)CH2CH2(OOH)                                                                       1.HNO    }
+  G1N505z = 5C+8H+N+6O;    {CH2(OH)CH(O.)CH(ONO2)CH2CHO                                                                            1.NDO    }
+  G1A501h = 5C+8H+N+7O;    {CH2(OH)CH(O.)CH(ONO2)CH2CO(OH)                                                                         1.ANO    }
+  G1G503y = 5C+8H+N+8O;    {CH2(OH)CH(O.)CH(ONO2)CH2CO(OOH)                                                                        1.GNO    }
+  G1P501j = 5C+7H+2N+10O;  {CH2(OH)CH(O.)CH(ONO2)CH2CO(OONO2)                                                                      1.PNO    }
+  G1N400x = 4C+6H+N+6O;    {CH2(OH)CH(O.)CH(ONO2)CHO                                                                               1.NDO    }
+  G1A400Y = 4C+6H+N+7O;    {CH2(OH)CH(O.)CH(ONO2)CO(OH)                                                                            1.ANO    }
+  G1G400Z = 4C+6H+N+8O;    {CH2(OH)CH(O.)CH(ONO2)CO(OOH)                                                                           1.GNO    }
+  G1P400Z = 4C+5H+2N+10O;  {CH2(OH)CH(O.)CH(ONO2)CO(OONO2)                                                                         1.PNO    }
+  G1N502l = 5C+7H+2N+9O;   {CH2(OH)CH(O.)CH(ONO2)COCH2(ONO2)                                                                       1.NNK    }
+  G1H507j = 5C+8H+N+8O;    {CH2(OH)CH(O.)CH(ONO2)COCH2(OOH)                                                                        1.HNK    }
+  G1N506I = 5C+6H+N+7O;    {CH2(OH)CH(O.)CH(ONO2)COCHO                                                                             1.NDK    }
+  G1A501u = 5C+6H+N+8O;    {CH2(OH)CH(O.)CH(ONO2)COCO(OH)                                                                          1.ANK    }
+  G1G5065 = 5C+6H+N+9O;    {CH2(OH)CH(O.)CH(ONO2)COCO(OOH)                                                                         1.GNK    }
+  G1P5021 = 5C+5H+2N+11O;  {CH2(OH)CH(O.)CH(ONO2)COCO(OONO2)                                                                       1.PNK    }
+  G1H504r = 5C+10H+N+8O;   {CH2(OH)CH(O.)CH(OOH)CH(OH)CH2(ONO2)                                                                    1.HNO    }
+  G1H50AO = 5C+9H+6O;      {CH2(OH)CH(O.)CH(OOH)CH(OH)CHO                                                                          1.HDO    }
+  G1A507A = 5C+9H+7O;      {CH2(OH)CH(O.)CH(OOH)CH(OH)CO(OH)                                                                       1.AHO    }
+  G1G506d = 5C+9H+8O;      {CH2(OH)CH(O.)CH(OOH)CH(OH)CO(OOH)                                                                      1.GHO    }
+  G1P507i = 5C+8H+N+10O;   {CH2(OH)CH(O.)CH(OOH)CH(OH)CO(OONO2)                                                                    1.PHO    }
+  G1H503r = 5C+9H+2N+10O;  {CH2(OH)CH(O.)CH(OOH)CH(ONO2)CH2(ONO2)                                                                  1.HNN    }
+  G1H503y = 5C+10H+N+9O;   {CH2(OH)CH(O.)CH(OOH)CH(ONO2)CH2(OOH)                                                                   1.HHN    }
+  G1H504L = 5C+8H+N+8O;    {CH2(OH)CH(O.)CH(OOH)CH(ONO2)CHO                                                                        1.HND    }
+  G1A502r = 5C+8H+N+9O;    {CH2(OH)CH(O.)CH(OOH)CH(ONO2)CO(OH)                                                                     1.AHN    }
+  G1G502D = 5C+8H+N+10O;   {CH2(OH)CH(O.)CH(OOH)CH(ONO2)CO(OOH)                                                                    1.GHN    }
+  G1P5036 = 5C+7H+2N+12O;  {CH2(OH)CH(O.)CH(OOH)CH(ONO2)CO(OONO2)                                                                  1.PHN    }
+  G1H508B = 5C+10H+N+9O;   {CH2(OH)CH(O.)CH(OOH)CH(OOH)CH2(ONO2)                                                                   1.HHN    }
+  G1H50AN = 5C+9H+7O;      {CH2(OH)CH(O.)CH(OOH)CH(OOH)CHO                                                                         1.HHD    }
+  G1A5079 = 5C+9H+8O;      {CH2(OH)CH(O.)CH(OOH)CH(OOH)CO(OH)                                                                      1.AHH    }
+  G1G506c = 5C+9H+9O;      {CH2(OH)CH(O.)CH(OOH)CH(OOH)CO(OOH)                                                                     1.GHH    }
+  G1P507h = 5C+8H+N+11O;   {CH2(OH)CH(O.)CH(OOH)CH(OOH)CO(OONO2)                                                                   1.PHH    }
+  G1H400c = 4C+8H+N+7O;    {CH2(OH)CH(O.)CH(OOH)CH2(ONO2)                                                                          1.HNO    }
+  G1H401O = 4C+9H+6O;      {CH2(OH)CH(O.)CH(OOH)CH2(OOH)                                                                           1.HHO    }
+  G1H504C = 5C+10H+N+7O;   {CH2(OH)CH(O.)CH(OOH)CH2CH2(ONO2)                                                                       1.HNO    }
+  G1H5094 = 5C+9H+5O;      {CH2(OH)CH(O.)CH(OOH)CH2CHO                                                                             1.HDO    }
+  G1A504k = 5C+9H+6O;      {CH2(OH)CH(O.)CH(OOH)CH2CO(OH)                                                                          1.AHO    }
+  G1G5051 = 5C+9H+7O;      {CH2(OH)CH(O.)CH(OOH)CH2CO(OOH)                                                                         1.GHO    }
+  G1P504r = 5C+8H+N+9O;    {CH2(OH)CH(O.)CH(OOH)CH2CO(OONO2)                                                                       1.PHO    }
+  G1H400S = 4C+7H+5O;      {CH2(OH)CH(O.)CH(OOH)CHO                                                                                1.HDO    }
+  G1A400k = 4C+7H+6O;      {CH2(OH)CH(O.)CH(OOH)CO(OH)                                                                             1.AHO    }
+  G1G400h = 4C+7H+7O;      {CH2(OH)CH(O.)CH(OOH)CO(OOH)                                                                            1.GHO    }
+  G1P400l = 4C+6H+N+9O;    {CH2(OH)CH(O.)CH(OOH)CO(OONO2)                                                                          1.PHO    }
+  G1H502G = 5C+8H+N+8O;    {CH2(OH)CH(O.)CH(OOH)COCH2(ONO2)                                                                        1.HNK    }
+  G1H503z = 5C+9H+7O;      {CH2(OH)CH(O.)CH(OOH)COCH2(OOH)                                                                         1.HHK    }
+  G1H504M = 5C+7H+6O;      {CH2(OH)CH(O.)CH(OOH)COCHO                                                                              1.HDK    }
+  G1A502s = 5C+7H+7O;      {CH2(OH)CH(O.)CH(OOH)COCO(OH)                                                                           1.AHK    }
+  G1G502E = 5C+7H+8O;      {CH2(OH)CH(O.)CH(OOH)COCO(OOH)                                                                          1.GHK    }
+  G1P5037 = 5C+6H+N+10O;   {CH2(OH)CH(O.)CH(OOH)COCO(OONO2)                                                                        1.PHK    }
+  G1O3004 = 3C+7H+3O;      {CH2(OH)CH(O.)CH2(OH)                                                                                   1.OO     }
+  G1N3007 = 3C+6H+N+5O;    {CH2(OH)CH(O.)CH2(ONO2)                                                                                 1.NO     }
+  G1H3006 = 3C+7H+4O;      {CH2(OH)CH(O.)CH2(OOH)                                                                                  1.HO     }
+  G1N500o = 5C+10H+N+6O;   {CH2(OH)CH(O.)CH2CH(OH)CH2(ONO2)                                                                        1.NOO    }
+  G1H502p = 5C+11H+5O;     {CH2(OH)CH(O.)CH2CH(OH)CH2(OOH)                                                                         1.HOO    }
+  G1D500v = 5C+9H+4O;      {CH2(OH)CH(O.)CH2CH(OH)CHO                                                                              1.DOO    }
+  G1A501C = 5C+9H+5O;      {CH2(OH)CH(O.)CH2CH(OH)CO(OH)                                                                           1.AOO    }
+  G1G500t = 5C+9H+6O;      {CH2(OH)CH(O.)CH2CH(OH)CO(OOH)                                                                          1.GOO    }
+  G1P501E = 5C+8H+N+8O;    {CH2(OH)CH(O.)CH2CH(OH)CO(OONO2)                                                                        1.POO    }
+  G1N500m = 5C+9H+2N+8O;   {CH2(OH)CH(O.)CH2CH(ONO2)CH2(ONO2)                                                                      1.NNO    }
+  G1H5012 = 5C+10H+N+7O;   {CH2(OH)CH(O.)CH2CH(ONO2)CH2(OOH)                                                                       1.HNO    }
+  G1N501w = 5C+8H+N+6O;    {CH2(OH)CH(O.)CH2CH(ONO2)CHO                                                                            1.NDO    }
+  G1A501B = 5C+8H+N+7O;    {CH2(OH)CH(O.)CH2CH(ONO2)CO(OH)                                                                         1.ANO    }
+  G1G500s = 5C+8H+N+8O;    {CH2(OH)CH(O.)CH2CH(ONO2)CO(OOH)                                                                        1.GNO    }
+  G1P501D = 5C+7H+2N+10O;  {CH2(OH)CH(O.)CH2CH(ONO2)CO(OONO2)                                                                      1.PNO    }
+  G1H500F = 5C+10H+N+7O;   {CH2(OH)CH(O.)CH2CH(OOH)CH2(ONO2)                                                                       1.HNO    }
+  G1H505r = 5C+11H+6O;     {CH2(OH)CH(O.)CH2CH(OOH)CH2(OOH)                                                                        1.HHO    }
+  G1H505s = 5C+9H+5O;      {CH2(OH)CH(O.)CH2CH(OOH)CHO                                                                             1.HDO    }
+  G1A503e = 5C+9H+6O;      {CH2(OH)CH(O.)CH2CH(OOH)CO(OH)                                                                          1.AHO    }
+  G1G503I = 5C+9H+7O;      {CH2(OH)CH(O.)CH2CH(OOH)CO(OOH)                                                                         1.GHO    }
+  G1P503h = 5C+8H+N+9O;    {CH2(OH)CH(O.)CH2CH(OOH)CO(OONO2)                                                                       1.PHO    }
+  G1N4006 = 4C+8H+N+5O;    {CH2(OH)CH(O.)CH2CH2(ONO2)                                                                              1.NO     }
+  G1H4005 = 4C+9H+4O;      {CH2(OH)CH(O.)CH2CH2(OOH)                                                                               1.HO     }
+  G1N500I = 5C+10H+N+5O;   {CH2(OH)CH(O.)CH2CH2CH2(ONO2)                                                                           1.NO     }
+  G1H502f = 5C+11H+4O;     {CH2(OH)CH(O.)CH2CH2CH2(OOH)                                                                            1.HO     }
+  G1D500X = 5C+9H+3O;      {CH2(OH)CH(O.)CH2CH2CHO                                                                                 1.DO     }
+  G1A501b = 5C+9H+4O;      {CH2(OH)CH(O.)CH2CH2CO(OH)                                                                              1.AO     }
+  G1G501R = 5C+9H+5O;      {CH2(OH)CH(O.)CH2CH2CO(OOH)                                                                             1.GO     }
+  G1P501d = 5C+8H+N+7O;    {CH2(OH)CH(O.)CH2CH2CO(OONO2)                                                                           1.PO     }
+  G1D4001 = 4C+7H+3O;      {CH2(OH)CH(O.)CH2CHO                                                                                    1.DO     }
+  G1A4008 = 4C+7H+4O;      {CH2(OH)CH(O.)CH2CO(OH)                                                                                 1.AO     }
+  G1G4008 = 4C+7H+5O;      {CH2(OH)CH(O.)CH2CO(OOH)                                                                                1.GO     }
+  G1P4008 = 4C+6H+N+7O;    {CH2(OH)CH(O.)CH2CO(OONO2)                                                                              1.PO     }
+  G1N500q = 5C+8H+N+6O;    {CH2(OH)CH(O.)CH2COCH2(ONO2)                                                                            1.NKO    }
+  G1H500P = 5C+9H+5O;      {CH2(OH)CH(O.)CH2COCH2(OOH)                                                                             1.HKO    }
+  G1D500J = 5C+7H+4O;      {CH2(OH)CH(O.)CH2COCHO                                                                                  1.DKO    }
+  G1A501E = 5C+7H+5O;      {CH2(OH)CH(O.)CH2COCO(OH)                                                                               1.AKO    }
+  G1G500v = 5C+7H+6O;      {CH2(OH)CH(O.)CH2COCO(OOH)                                                                              1.GKO    }
+  G1P501G = 5C+6H+N+8O;    {CH2(OH)CH(O.)CH2COCO(OONO2)                                                                            1.PKO    }
+  G1D3004 = 3C+5H+3O;      {CH2(OH)CH(O.)CHO                                                                                       1.DO     }
+  G1A3002 = 3C+5H+4O;      {CH2(OH)CH(O.)CO(OH)                                                                                    1.AO     }
+  G1G3002 = 3C+5H+5O;      {CH2(OH)CH(O.)CO(OOH)                                                                                   1.GO     }
+  G1P3002 = 3C+4H+N+7O;    {CH2(OH)CH(O.)CO(OONO2)                                                                                 1.PO     }
+  G1N503D = 5C+8H+N+7O;    {CH2(OH)CH(O.)COCH(OH)CH2(ONO2)                                                                         1.NKO    }
+  G1H50AC = 5C+9H+6O;      {CH2(OH)CH(O.)COCH(OH)CH2(OOH)                                                                          1.HKO    }
+  G1D501K = 5C+7H+5O;      {CH2(OH)CH(O.)COCH(OH)CHO                                                                               1.DKO    }
+  G1A506k = 5C+7H+6O;      {CH2(OH)CH(O.)COCH(OH)CO(OH)                                                                            1.AKO    }
+  G1G505s = 5C+7H+7O;      {CH2(OH)CH(O.)COCH(OH)CO(OOH)                                                                           1.GKO    }
+  G1P505z = 5C+6H+N+9O;    {CH2(OH)CH(O.)COCH(OH)CO(OONO2)                                                                         1.PKO    }
+  G1N505f = 5C+7H+2N+9O;   {CH2(OH)CH(O.)COCH(ONO2)CH2(ONO2)                                                                       1.NNK    }
+  G1H50AA = 5C+8H+N+8O;    {CH2(OH)CH(O.)COCH(ONO2)CH2(OOH)                                                                        1.HNK    }
+  G1N5079 = 5C+6H+N+7O;    {CH2(OH)CH(O.)COCH(ONO2)CHO                                                                             1.NDK    }
+  G1A5028 = 5C+6H+N+8O;    {CH2(OH)CH(O.)COCH(ONO2)CO(OH)                                                                          1.ANK    }
+  G1G506O = 5C+6H+N+9O;    {CH2(OH)CH(O.)COCH(ONO2)CO(OOH)                                                                         1.GNK    }
+  G1P502M = 5C+5H+2N+11O;  {CH2(OH)CH(O.)COCH(ONO2)CO(OONO2)                                                                       1.PNK    }
+  G1H5095 = 5C+8H+N+8O;    {CH2(OH)CH(O.)COCH(OOH)CH2(ONO2)                                                                        1.HNK    }
+  G1H50AB = 5C+9H+7O;      {CH2(OH)CH(O.)COCH(OOH)CH2(OOH)                                                                         1.HHK    }
+  G1H50AF = 5C+7H+6O;      {CH2(OH)CH(O.)COCH(OOH)CHO                                                                              1.HDK    }
+  G1A506j = 5C+7H+7O;      {CH2(OH)CH(O.)COCH(OOH)CO(OH)                                                                           1.AHK    }
+  G1G506P = 5C+7H+8O;      {CH2(OH)CH(O.)COCH(OOH)CO(OOH)                                                                          1.GHK    }
+  G1P505y = 5C+6H+N+10O;   {CH2(OH)CH(O.)COCH(OOH)CO(OONO2)                                                                        1.PHK    }
+  G1N400n = 4C+6H+N+6O;    {CH2(OH)CH(O.)COCH2(ONO2)                                                                               1.NKO    }
+  G1H401P = 4C+7H+5O;      {CH2(OH)CH(O.)COCH2(OOH)                                                                                1.HKO    }
+  G1N501t = 5C+8H+N+6O;    {CH2(OH)CH(O.)COCH2CH2(ONO2)                                                                            1.NKO    }
+  G1H507C = 5C+9H+5O;      {CH2(OH)CH(O.)COCH2CH2(OOH)                                                                             1.HKO    }
+  G1D501A = 5C+7H+4O;      {CH2(OH)CH(O.)COCH2CHO                                                                                  1.DKO    }
+  G1A501x = 5C+7H+5O;      {CH2(OH)CH(O.)COCH2CO(OH)                                                                               1.AKO    }
+  G1G5041 = 5C+7H+6O;      {CH2(OH)CH(O.)COCH2CO(OOH)                                                                              1.GKO    }
+  G1P502A = 5C+6H+N+8O;    {CH2(OH)CH(O.)COCH2CO(OONO2)                                                                            1.PKO    }
+  G1D400L = 4C+5H+4O;      {CH2(OH)CH(O.)COCHO                                                                                     1.DKO    }
+  G1A400c = 4C+5H+5O;      {CH2(OH)CH(O.)COCO(OH)                                                                                  1.AKO    }
+  G1G4013 = 4C+5H+6O;      {CH2(OH)CH(O.)COCO(OOH)                                                                                 1.GKO    }
+  G1P400d = 4C+4H+N+8O;    {CH2(OH)CH(O.)COCO(OONO2)                                                                               1.PKO    }
+  G1N503I = 5C+6H+N+7O;    {CH2(OH)CH(O.)COCOCH2(ONO2)                                                                             1.NKK    }
+  G1H507n = 5C+7H+6O;      {CH2(OH)CH(O.)COCOCH2(OOH)                                                                              1.HKK    }
+  G1D501E = 5C+5H+5O;      {CH2(OH)CH(O.)COCOCHO                                                                                   1.DKK    }
+  G1A5029 = 5C+5H+6O;      {CH2(OH)CH(O.)COCOCO(OH)                                                                                1.AKK    }
+  G1G506Q = 5C+5H+7O;      {CH2(OH)CH(O.)COCOCO(OOH)                                                                               1.GKK    }
+  G1P502N = 5C+4H+N+9O;    {CH2(OH)CH(O.)COCOCO(OONO2)                                                                             1.PKK    }
+  G1O500c = 5C+11H+5O;     {CH2(OH)CH(OH)CH(O.)CH(OH)CH2(OH)                                                                       1.OOO    }
+  G1N501Y = 5C+10H+N+7O;   {CH2(OH)CH(OH)CH(O.)CH(OH)CH2(ONO2)                                                                     1.NOO    }
+  G1H506x = 5C+11H+6O;     {CH2(OH)CH(OH)CH(O.)CH(OH)CH2(OOH)                                                                      1.HOO    }
+  G1D500B = 5C+9H+5O;      {CH2(OH)CH(OH)CH(O.)CH(OH)CHO                                                                           1.DOO    }
+  G1A500e = 5C+9H+6O;      {CH2(OH)CH(OH)CH(O.)CH(OH)CO(OH)                                                                        1.AOO    }
+  G1G500Y = 5C+9H+7O;      {CH2(OH)CH(OH)CH(O.)CH(OH)CO(OOH)                                                                       1.GOO    }
+  G1P500h = 5C+8H+N+9O;    {CH2(OH)CH(OH)CH(O.)CH(OH)CO(OONO2)                                                                     1.POO    }
+  G1N505P = 5C+9H+2N+9O;   {CH2(OH)CH(OH)CH(O.)CH(ONO2)CH2(ONO2)                                                                   1.NNO    }
+  G1H506u = 5C+10H+N+8O;   {CH2(OH)CH(OH)CH(O.)CH(ONO2)CH2(OOH)                                                                    1.HNO    }
+  G1N505a = 5C+8H+N+7O;    {CH2(OH)CH(OH)CH(O.)CH(ONO2)CHO                                                                         1.NDO    }
+  G1A504F = 5C+8H+N+8O;    {CH2(OH)CH(OH)CH(O.)CH(ONO2)CO(OH)                                                                      1.ANO    }
+  G1G502t = 5C+8H+N+9O;    {CH2(OH)CH(OH)CH(O.)CH(ONO2)CO(OOH)                                                                     1.GNO    }
+  G1P504Q = 5C+7H+2N+11O;  {CH2(OH)CH(OH)CH(O.)CH(ONO2)CO(OONO2)                                                                   1.PNO    }
+  G1H5022 = 5C+10H+N+8O;   {CH2(OH)CH(OH)CH(O.)CH(OOH)CH2(ONO2)                                                                    1.HNO    }
+  G1H506w = 5C+11H+7O;     {CH2(OH)CH(OH)CH(O.)CH(OOH)CH2(OOH)                                                                     1.HHO    }
+  G1H502A = 5C+9H+6O;      {CH2(OH)CH(OH)CH(O.)CH(OOH)CHO                                                                          1.HDO    }
+  G1A504H = 5C+9H+7O;      {CH2(OH)CH(OH)CH(O.)CH(OOH)CO(OH)                                                                       1.AHO    }
+  G1G502x = 5C+9H+8O;      {CH2(OH)CH(OH)CH(O.)CH(OOH)CO(OOH)                                                                      1.GHO    }
+  G1P504S = 5C+8H+N+10O;   {CH2(OH)CH(OH)CH(O.)CH(OOH)CO(OONO2)                                                                    1.PHO    }
+  G1O400A = 4C+9H+4O;      {CH2(OH)CH(OH)CH(O.)CH2(OH)                                                                             1.OOO    }
+  G1N4017 = 4C+8H+N+6O;    {CH2(OH)CH(OH)CH(O.)CH2(ONO2)                                                                           1.NOO    }
+  G1H4018 = 4C+9H+5O;      {CH2(OH)CH(OH)CH(O.)CH2(OOH)                                                                            1.HOO    }
+  G1O500M = 5C+11H+4O;     {CH2(OH)CH(OH)CH(O.)CH2CH2(OH)                                                                          1.OOO    }
+  G1N5012 = 5C+10H+N+6O;   {CH2(OH)CH(OH)CH(O.)CH2CH2(ONO2)                                                                        1.NOO    }
+  G1H502e = 5C+11H+5O;     {CH2(OH)CH(OH)CH(O.)CH2CH2(OOH)                                                                         1.HOO    }
+  G1D5006 = 5C+9H+4O;      {CH2(OH)CH(OH)CH(O.)CH2CHO                                                                              1.DOO    }
+  G1A500E = 5C+9H+5O;      {CH2(OH)CH(OH)CH(O.)CH2CO(OH)                                                                           1.AOO    }
+  G1G500D = 5C+9H+6O;      {CH2(OH)CH(OH)CH(O.)CH2CO(OOH)                                                                          1.GOO    }
+  G1P500E = 5C+8H+N+8O;    {CH2(OH)CH(OH)CH(O.)CH2CO(OONO2)                                                                        1.POO    }
+  G1D400E = 4C+7H+4O;      {CH2(OH)CH(OH)CH(O.)CHO                                                                                 1.DOO    }
+  G1A400q = 4C+7H+5O;      {CH2(OH)CH(OH)CH(O.)CO(OH)                                                                              1.AOO    }
+  G1G400e = 4C+7H+6O;      {CH2(OH)CH(OH)CH(O.)CO(OOH)                                                                             1.GOO    }
+  G1P400K = 4C+6H+N+8O;    {CH2(OH)CH(OH)CH(O.)CO(OONO2)                                                                           1.POO    }
+  G1K5012 = 5C+9H+5O;      {CH2(OH)CH(OH)CH(O.)COCH2(OH)                                                                           1.KOO    }
+  G1N505c = 5C+8H+N+7O;    {CH2(OH)CH(OH)CH(O.)COCH2(ONO2)                                                                         1.NKO    }
+  G1H506y = 5C+9H+6O;      {CH2(OH)CH(OH)CH(O.)COCH2(OOH)                                                                          1.HKO    }
+  G1D5015 = 5C+7H+5O;      {CH2(OH)CH(OH)CH(O.)COCHO                                                                               1.DKO    }
+  G1A505G = 5C+7H+6O;      {CH2(OH)CH(OH)CH(O.)COCO(OH)                                                                            1.AKO    }
+  G1G503j = 5C+7H+7O;      {CH2(OH)CH(OH)CH(O.)COCO(OOH)                                                                           1.GKO    }
+  G1P502s = 5C+6H+N+9O;    {CH2(OH)CH(OH)CH(O.)COCO(OONO2)                                                                         1.PKO    }
+  G1O500Y = 5C+11H+5O;     {CH2(OH)CH(OH)CH(OH)CH(O.)CH2(OH)                                                                       1.OOO    }
+  G1N505t = 5C+10H+N+7O;   {CH2(OH)CH(OH)CH(OH)CH(O.)CH2(ONO2)                                                                     1.NOO    }
+  G1H502P = 5C+11H+6O;     {CH2(OH)CH(OH)CH(OH)CH(O.)CH2(OOH)                                                                      1.HOO    }
+  G1D500P = 5C+9H+5O;      {CH2(OH)CH(OH)CH(OH)CH(O.)CHO                                                                           1.DOO    }
+  G1A504W = 5C+9H+6O;      {CH2(OH)CH(OH)CH(OH)CH(O.)CO(OH)                                                                        1.AOO    }
+  G1G501J = 5C+9H+7O;      {CH2(OH)CH(OH)CH(OH)CH(O.)CO(OOH)                                                                       1.GOO    }
+  G1P501T = 5C+8H+N+9O;    {CH2(OH)CH(OH)CH(OH)CH(O.)CO(OONO2)                                                                     1.POO    }
+  G1O500b = 5C+11H+5O;     {CH2(OH)CH(OH)CH(OH)CH(OH)CH2(O.)                                                                       1.OOO    }
+  GOO500D = 5C+12H+5O;     {CH2(OH)CH(OH)CH(OH)CH(OH)CH2(OH)                                                                       OOOOO    }
+  GNO500Y = 5C+11H+N+7O;   {CH2(OH)CH(OH)CH(OH)CH(OH)CH2(ONO2)                                                                     NOOOO    }
+  G2O500U = 5C+11H+6O;     {CH2(OH)CH(OH)CH(OH)CH(OH)CH2(OO.)                                                                      2.OOO    }
+  GHO500W = 5C+12H+6O;     {CH2(OH)CH(OH)CH(OH)CH(OH)CH2(OOH)                                                                      HOOOO    }
+  GDO500A = 5C+10H+5O;     {CH2(OH)CH(OH)CH(OH)CH(OH)CHO                                                                           DOOOO    }
+  GAO500B = 5C+10H+6O;     {CH2(OH)CH(OH)CH(OH)CH(OH)CO(OH)                                                                        AOOOO    }
+  G3K500M = 5C+9H+7O;      {CH2(OH)CH(OH)CH(OH)CH(OH)CO(OO.)                                                                       3.KOO    }
+  GGO500C = 5C+10H+7O;     {CH2(OH)CH(OH)CH(OH)CH(OH)CO(OOH)                                                                       GOOOO    }
+  GPO500C = 5C+9H+N+9O;    {CH2(OH)CH(OH)CH(OH)CH(OH)CO(OONO2)                                                                     POOOO    }
+  G1N505y = 5C+10H+N+7O;   {CH2(OH)CH(OH)CH(OH)CH(ONO2)CH2(O.)                                                                     1.NOO    }
+  GNO500b = 5C+11H+N+7O;   {CH2(OH)CH(OH)CH(OH)CH(ONO2)CH2(OH)                                                                     NOOOO    }
+  GNN502p = 5C+10H+2N+9O;  {CH2(OH)CH(OH)CH(OH)CH(ONO2)CH2(ONO2)                                                                   NNOOO    }
+  G2N5053 = 5C+10H+N+8O;   {CH2(OH)CH(OH)CH(OH)CH(ONO2)CH2(OO.)                                                                    2.NOO    }
+  GHN503y = 5C+11H+N+8O;   {CH2(OH)CH(OH)CH(OH)CH(ONO2)CH2(OOH)                                                                    HNOOO    }
+  GND500r = 5C+9H+N+7O;    {CH2(OH)CH(OH)CH(OH)CH(ONO2)CHO                                                                         NDOOO    }
+  GAN501S = 5C+9H+N+8O;    {CH2(OH)CH(OH)CH(OH)CH(ONO2)CO(OH)                                                                      ANOOO    }
+  G3N501A = 5C+8H+N+9O;    {CH2(OH)CH(OH)CH(OH)CH(ONO2)CO(OO.)                                                                     3.NKO    }
+  GGN501R = 5C+9H+N+9O;    {CH2(OH)CH(OH)CH(OH)CH(ONO2)CO(OOH)                                                                     GNOOO    }
+  GPN501X = 5C+8H+2N+11O;  {CH2(OH)CH(OH)CH(OH)CH(ONO2)CO(OONO2)                                                                   PNOOO    }
+  G2O500S = 5C+11H+6O;     {CH2(OH)CH(OH)CH(OH)CH(OO.)CH2(OH)                                                                      2.OOO    }
+  G2N504t = 5C+10H+N+8O;   {CH2(OH)CH(OH)CH(OH)CH(OO.)CH2(ONO2)                                                                    2.NOO    }
+  G2H501K = 5C+11H+7O;     {CH2(OH)CH(OH)CH(OH)CH(OO.)CH2(OOH)                                                                     2.HOO    }
+  G2D500I = 5C+9H+6O;      {CH2(OH)CH(OH)CH(OH)CH(OO.)CHO                                                                          2.DOO    }
+  G2A503X = 5C+9H+7O;      {CH2(OH)CH(OH)CH(OH)CH(OO.)CO(OH)                                                                       2.AOO    }
+  G2G5014 = 5C+9H+8O;      {CH2(OH)CH(OH)CH(OH)CH(OO.)CO(OOH)                                                                      2.GOO    }
+  G2P501H = 5C+8H+N+10O;   {CH2(OH)CH(OH)CH(OH)CH(OO.)CO(OONO2)                                                                    2.POO    }
+  G1H506X = 5C+11H+6O;     {CH2(OH)CH(OH)CH(OH)CH(OOH)CH2(O.)                                                                      1.HOO    }
+  GHO500T = 5C+12H+6O;     {CH2(OH)CH(OH)CH(OH)CH(OOH)CH2(OH)                                                                      HOOOO    }
+  GHN503e = 5C+11H+N+8O;   {CH2(OH)CH(OH)CH(OH)CH(OOH)CH2(ONO2)                                                                    HNOOO    }
+  GHH501J = 5C+12H+7O;     {CH2(OH)CH(OH)CH(OH)CH(OOH)CH2(OOH)                                                                     HHOOO    }
+  GHD500b = 5C+10H+6O;     {CH2(OH)CH(OH)CH(OH)CH(OOH)CHO                                                                          HDOOO    }
+  GAH501c = 5C+10H+7O;     {CH2(OH)CH(OH)CH(OH)CH(OOH)CO(OH)                                                                       AHOOO    }
+  G3H501B = 5C+9H+8O;      {CH2(OH)CH(OH)CH(OH)CH(OOH)CO(OO.)                                                                      3.HKO    }
+  GGH501R = 5C+10H+8O;     {CH2(OH)CH(OH)CH(OH)CH(OOH)CO(OOH)                                                                      GHOOO    }
+  GPH501b = 5C+9H+N+10O;   {CH2(OH)CH(OH)CH(OH)CH(OOH)CO(OONO2)                                                                    PHOOO    }
+  G1O400B = 4C+9H+4O;      {CH2(OH)CH(OH)CH(OH)CH2(O.)                                                                             1.OOO    }
+  GOO4005 = 4C+10H+4O;     {CH2(OH)CH(OH)CH(OH)CH2(OH)                                                                             OOOO     }
+  GNO400B = 4C+9H+N+6O;    {CH2(OH)CH(OH)CH(OH)CH2(ONO2)                                                                           NOOO     }
+  G2O400B = 4C+9H+5O;      {CH2(OH)CH(OH)CH(OH)CH2(OO.)                                                                            2.OOO    }
+  GHO400B = 4C+10H+5O;     {CH2(OH)CH(OH)CH(OH)CH2(OOH)                                                                            HOOO     }
+  G1O500Z = 5C+11H+4O;     {CH2(OH)CH(OH)CH(OH)CH2CH2(O.)                                                                          1.OOO    }
+  GNO500R = 5C+11H+N+6O;   {CH2(OH)CH(OH)CH(OH)CH2CH2(ONO2)                                                                        NOOO     }
+  GDO5008 = 5C+10H+4O;     {CH2(OH)CH(OH)CH(OH)CH2CHO                                                                              DOOO     }
+  GAO5008 = 5C+10H+5O;     {CH2(OH)CH(OH)CH(OH)CH2CO(OH)                                                                           AOOO     }
+  G3K500D = 5C+9H+6O;      {CH2(OH)CH(OH)CH(OH)CH2CO(OO.)                                                                          3.KOO    }
+  GGO5008 = 5C+10H+6O;     {CH2(OH)CH(OH)CH(OH)CH2CO(OOH)                                                                          GOOO     }
+  GPO5008 = 5C+9H+N+8O;    {CH2(OH)CH(OH)CH(OH)CH2CO(OONO2)                                                                        POOO     }
+  GDO4006 = 4C+8H+4O;      {CH2(OH)CH(OH)CH(OH)CHO                                                                                 DOOO     }
+  GAO4006 = 4C+8H+5O;      {CH2(OH)CH(OH)CH(OH)CO(OH)                                                                              AOOO     }
+  G3K400B = 4C+7H+6O;      {CH2(OH)CH(OH)CH(OH)CO(OO.)                                                                             3.KOO    }
+  GGO4006 = 4C+8H+6O;      {CH2(OH)CH(OH)CH(OH)CO(OOH)                                                                             GOOO     }
+  GPO4006 = 4C+7H+N+8O;    {CH2(OH)CH(OH)CH(OH)CO(OONO2)                                                                           POOO     }
+  G1K5015 = 5C+9H+5O;      {CH2(OH)CH(OH)CH(OH)COCH2(O.)                                                                           1.KOO    }
+  GKO500L = 5C+10H+5O;     {CH2(OH)CH(OH)CH(OH)COCH2(OH)                                                                           KOOOO    }
+  GNK5011 = 5C+9H+N+7O;    {CH2(OH)CH(OH)CH(OH)COCH2(ONO2)                                                                         NKOOO    }
+  G2K500n = 5C+9H+6O;      {CH2(OH)CH(OH)CH(OH)COCH2(OO.)                                                                          2.KOO    }
+  GHK500g = 5C+10H+6O;     {CH2(OH)CH(OH)CH(OH)COCH2(OOH)                                                                          HKOOO    }
+  GDK500N = 5C+8H+5O;      {CH2(OH)CH(OH)CH(OH)COCHO                                                                               DKOOO    }
+  GAK500b = 5C+8H+6O;      {CH2(OH)CH(OH)CH(OH)COCO(OH)                                                                            AKOOO    }
+  G3K500k = 5C+7H+7O;      {CH2(OH)CH(OH)CH(OH)COCO(OO.)                                                                           3.KKO    }
+  GGK500P = 5C+8H+7O;      {CH2(OH)CH(OH)CH(OH)COCO(OOH)                                                                           GKOOO    }
+  GPK500P = 5C+7H+N+9O;    {CH2(OH)CH(OH)CH(OH)COCO(OONO2)                                                                         PKOOO    }
+  G1N505X = 5C+10H+N+7O;   {CH2(OH)CH(OH)CH(ONO2)CH(O.)CH2(OH)                                                                     1.NOO    }
+  G1N505Q = 5C+9H+2N+9O;   {CH2(OH)CH(OH)CH(ONO2)CH(O.)CH2(ONO2)                                                                   1.NNO    }
+  G1H507i = 5C+10H+N+8O;   {CH2(OH)CH(OH)CH(ONO2)CH(O.)CH2(OOH)                                                                    1.HNO    }
+  G1N505b = 5C+8H+N+7O;    {CH2(OH)CH(OH)CH(ONO2)CH(O.)CHO                                                                         1.NDO    }
+  G1A504G = 5C+8H+N+8O;    {CH2(OH)CH(OH)CH(ONO2)CH(O.)CO(OH)                                                                      1.ANO    }
+  G1G502u = 5C+8H+N+9O;    {CH2(OH)CH(OH)CH(ONO2)CH(O.)CO(OOH)                                                                     1.GNO    }
+  G1P504R = 5C+7H+2N+11O;  {CH2(OH)CH(OH)CH(ONO2)CH(O.)CO(OONO2)                                                                   1.PNO    }
+  G1N503t = 5C+10H+N+7O;   {CH2(OH)CH(OH)CH(ONO2)CH(OH)CH2(O.)                                                                     1.NOO    }
+  GNO500c = 5C+11H+N+7O;   {CH2(OH)CH(OH)CH(ONO2)CH(OH)CH2(OH)                                                                     NOOOO    }
+  GNN501B = 5C+10H+2N+9O;  {CH2(OH)CH(OH)CH(ONO2)CH(OH)CH2(ONO2)                                                                   NNOOO    }
+  G2N503T = 5C+10H+N+8O;   {CH2(OH)CH(OH)CH(ONO2)CH(OH)CH2(OO.)                                                                    2.NOO    }
+  GHN504R = 5C+11H+N+8O;   {CH2(OH)CH(OH)CH(ONO2)CH(OH)CH2(OOH)                                                                    HNOOO    }
+  GND500T = 5C+9H+N+7O;    {CH2(OH)CH(OH)CH(ONO2)CH(OH)CHO                                                                         NDOOO    }
+  GAN500p = 5C+9H+N+8O;    {CH2(OH)CH(OH)CH(ONO2)CH(OH)CO(OH)                                                                      ANOOO    }
+  G3N500Y = 5C+8H+N+9O;    {CH2(OH)CH(OH)CH(ONO2)CH(OH)CO(OO.)                                                                     3.NKO    }
+  GGN500i = 5C+9H+N+9O;    {CH2(OH)CH(OH)CH(ONO2)CH(OH)CO(OOH)                                                                     GNOOO    }
+  GPN500s = 5C+8H+2N+11O;  {CH2(OH)CH(OH)CH(ONO2)CH(OH)CO(OONO2)                                                                   PNOOO    }
+  G1N505R = 5C+9H+2N+9O;   {CH2(OH)CH(OH)CH(ONO2)CH(ONO2)CH2(O.)                                                                   1.NNO    }
+  GNN502B = 5C+10H+2N+9O;  {CH2(OH)CH(OH)CH(ONO2)CH(ONO2)CH2(OH)                                                                   NNOOO    }
+  GNN5028 = 5C+9H+3N+11O;  {CH2(OH)CH(OH)CH(ONO2)CH(ONO2)CH2(ONO2)                                                                 NNNOO    }
+  G2N506A = 5C+9H+2N+10O;  {CH2(OH)CH(OH)CH(ONO2)CH(ONO2)CH2(OO.)                                                                  2.NNO    }
+  GHN506H = 5C+10H+2N+10O; {CH2(OH)CH(OH)CH(ONO2)CH(ONO2)CH2(OOH)                                                                  HNNOO    }
+  GNN502D = 5C+8H+2N+9O;   {CH2(OH)CH(OH)CH(ONO2)CH(ONO2)CHO                                                                       NNDOO    }
+  GAN501M = 5C+8H+2N+10O;  {CH2(OH)CH(OH)CH(ONO2)CH(ONO2)CO(OH)                                                                    ANNOO    }
+  G3N500w = 5C+7H+2N+11O;  {CH2(OH)CH(OH)CH(ONO2)CH(ONO2)CO(OO.)                                                                   3.NNK    }
+  GGN501D = 5C+8H+2N+11O;  {CH2(OH)CH(OH)CH(ONO2)CH(ONO2)CO(OOH)                                                                   GNNOO    }
+  GPN501Q = 5C+7H+3N+13O;  {CH2(OH)CH(OH)CH(ONO2)CH(ONO2)CO(OONO2)                                                                 PNNOO    }
+  G2N504W = 5C+10H+N+8O;   {CH2(OH)CH(OH)CH(ONO2)CH(OO.)CH2(OH)                                                                    2.NOO    }
+  G2N504s = 5C+9H+2N+10O;  {CH2(OH)CH(OH)CH(ONO2)CH(OO.)CH2(ONO2)                                                                  2.NNO    }
+  G2H502t = 5C+10H+N+9O;   {CH2(OH)CH(OH)CH(ONO2)CH(OO.)CH2(OOH)                                                                   2.HNO    }
+  G2N504Y = 5C+8H+N+8O;    {CH2(OH)CH(OH)CH(ONO2)CH(OO.)CHO                                                                        2.NDO    }
+  G2A503L = 5C+8H+N+9O;    {CH2(OH)CH(OH)CH(ONO2)CH(OO.)CO(OH)                                                                     2.ANO    }
+  G2G502A = 5C+8H+N+10O;   {CH2(OH)CH(OH)CH(ONO2)CH(OO.)CO(OOH)                                                                    2.GNO    }
+  G2P503T = 5C+7H+2N+12O;  {CH2(OH)CH(OH)CH(ONO2)CH(OO.)CO(OONO2)                                                                  2.PNO    }
+  G1H5035 = 5C+10H+N+8O;   {CH2(OH)CH(OH)CH(ONO2)CH(OOH)CH2(O.)                                                                    1.HNO    }
+  GHN5035 = 5C+11H+N+8O;   {CH2(OH)CH(OH)CH(ONO2)CH(OOH)CH2(OH)                                                                    HNOOO    }
+  GHN503d = 5C+10H+2N+10O; {CH2(OH)CH(OH)CH(ONO2)CH(OOH)CH2(ONO2)                                                                  HNNOO    }
+  G2H501g = 5C+10H+N+9O;   {CH2(OH)CH(OH)CH(ONO2)CH(OOH)CH2(OO.)                                                                   2.HNO    }
+  GHH501d = 5C+11H+N+9O;   {CH2(OH)CH(OH)CH(ONO2)CH(OOH)CH2(OOH)                                                                   HHNOO    }
+  GHN5037 = 5C+9H+N+8O;    {CH2(OH)CH(OH)CH(ONO2)CH(OOH)CHO                                                                        HNDOO    }
+  GAH501R = 5C+9H+N+9O;    {CH2(OH)CH(OH)CH(ONO2)CH(OOH)CO(OH)                                                                     AHNOO    }
+  G3H500p = 5C+8H+N+10O;   {CH2(OH)CH(OH)CH(ONO2)CH(OOH)CO(OO.)                                                                    3.HNK    }
+  GGH501A = 5C+9H+N+10O;   {CH2(OH)CH(OH)CH(ONO2)CH(OOH)CO(OOH)                                                                    GHNOO    }
+  GPH501S = 5C+8H+2N+12O;  {CH2(OH)CH(OH)CH(ONO2)CH(OOH)CO(OONO2)                                                                  PHNOO    }
+  G1N400O = 4C+8H+N+6O;    {CH2(OH)CH(OH)CH(ONO2)CH2(O.)                                                                           1.NOO    }
+  GNO4009 = 4C+9H+N+6O;    {CH2(OH)CH(OH)CH(ONO2)CH2(OH)                                                                           NOOO     }
+  GNN400K = 4C+8H+2N+8O;   {CH2(OH)CH(OH)CH(ONO2)CH2(ONO2)                                                                         NNOO     }
+  G2N400N = 4C+8H+N+7O;    {CH2(OH)CH(OH)CH(ONO2)CH2(OO.)                                                                          2.NOO    }
+  GHN400a = 4C+9H+N+7O;    {CH2(OH)CH(OH)CH(ONO2)CH2(OOH)                                                                          HNOO     }
+  G1N500y = 5C+10H+N+6O;   {CH2(OH)CH(OH)CH(ONO2)CH2CH2(O.)                                                                        1.NOO    }
+  GNO500P = 5C+11H+N+6O;   {CH2(OH)CH(OH)CH(ONO2)CH2CH2(OH)                                                                        NOOO     }
+  GNN500r = 5C+10H+2N+8O;  {CH2(OH)CH(OH)CH(ONO2)CH2CH2(ONO2)                                                                      NNOO     }
+  G2N500x = 5C+10H+N+7O;   {CH2(OH)CH(OH)CH(ONO2)CH2CH2(OO.)                                                                       2.NOO    }
+  GHN501J = 5C+11H+N+7O;   {CH2(OH)CH(OH)CH(ONO2)CH2CH2(OOH)                                                                       HNOO     }
+  GND500I = 5C+9H+N+6O;    {CH2(OH)CH(OH)CH(ONO2)CH2CHO                                                                            NDOO     }
+  GAN500N = 5C+9H+N+7O;    {CH2(OH)CH(OH)CH(ONO2)CH2CO(OH)                                                                         ANOO     }
+  G3N500K = 5C+8H+N+8O;    {CH2(OH)CH(OH)CH(ONO2)CH2CO(OO.)                                                                        3.NKO    }
+  GGN500N = 5C+9H+N+8O;    {CH2(OH)CH(OH)CH(ONO2)CH2CO(OOH)                                                                        GNOO     }
+  GPN500N = 5C+8H+2N+10O;  {CH2(OH)CH(OH)CH(ONO2)CH2CO(OONO2)                                                                      PNOO     }
+  GND400A = 4C+7H+N+6O;    {CH2(OH)CH(OH)CH(ONO2)CHO                                                                               NDOO     }
+  GAN400O = 4C+7H+N+7O;    {CH2(OH)CH(OH)CH(ONO2)CO(OH)                                                                            ANOO     }
+  G3N400F = 4C+6H+N+8O;    {CH2(OH)CH(OH)CH(ONO2)CO(OO.)                                                                           3.NKO    }
+  GGN400L = 4C+7H+N+8O;    {CH2(OH)CH(OH)CH(ONO2)CO(OOH)                                                                           GNOO     }
+  GPN400O = 4C+6H+2N+10O;  {CH2(OH)CH(OH)CH(ONO2)CO(OONO2)                                                                         PNOO     }
+  G1N505d = 5C+8H+N+7O;    {CH2(OH)CH(OH)CH(ONO2)COCH2(O.)                                                                         1.NKO    }
+  GNK5017 = 5C+9H+N+7O;    {CH2(OH)CH(OH)CH(ONO2)COCH2(OH)                                                                         NKOOO    }
+  GNN502E = 5C+8H+2N+9O;   {CH2(OH)CH(OH)CH(ONO2)COCH2(ONO2)                                                                       NNKOO    }
+  G2N505C = 5C+8H+N+8O;    {CH2(OH)CH(OH)CH(ONO2)COCH2(OO.)                                                                        2.NKO    }
+  GHN504S = 5C+9H+N+8O;    {CH2(OH)CH(OH)CH(ONO2)COCH2(OOH)                                                                        HNKOO    }
+  GND5012 = 5C+7H+N+7O;    {CH2(OH)CH(OH)CH(ONO2)COCHO                                                                             NDKOO    }
+  GAN501o = 5C+7H+N+8O;    {CH2(OH)CH(OH)CH(ONO2)COCO(OH)                                                                          ANKOO    }
+  G3N501Z = 5C+6H+N+9O;    {CH2(OH)CH(OH)CH(ONO2)COCO(OO.)                                                                         3.NKK    }
+  GGN501u = 5C+7H+N+9O;    {CH2(OH)CH(OH)CH(ONO2)COCO(OOH)                                                                         GNKOO    }
+  GPN500u = 5C+6H+2N+11O;  {CH2(OH)CH(OH)CH(ONO2)COCO(OONO2)                                                                       PNKOO    }
+  G2N501U = 5C+10H+N+8O;   {CH2(OH)CH(OH)CH(OO.)CH(OH)CH2(ONO2)                                                                    2.NOO    }
+  G2D5009 = 5C+9H+6O;      {CH2(OH)CH(OH)CH(OO.)CH(OH)CHO                                                                          2.DOO    }
+  G2A500d = 5C+9H+7O;      {CH2(OH)CH(OH)CH(OO.)CH(OH)CO(OH)                                                                       2.AOO    }
+  G2G500X = 5C+9H+8O;      {CH2(OH)CH(OH)CH(OO.)CH(OH)CO(OOH)                                                                      2.GOO    }
+  G2P500g = 5C+8H+N+10O;   {CH2(OH)CH(OH)CH(OO.)CH(OH)CO(OONO2)                                                                    2.POO    }
+  G2N505O = 5C+9H+2N+10O;  {CH2(OH)CH(OH)CH(OO.)CH(ONO2)CH2(ONO2)                                                                  2.NNO    }
+  G2H502Z = 5C+10H+N+9O;   {CH2(OH)CH(OH)CH(OO.)CH(ONO2)CH2(OOH)                                                                   2.HNO    }
+  G2N5055 = 5C+8H+N+8O;    {CH2(OH)CH(OH)CH(OO.)CH(ONO2)CHO                                                                        2.NDO    }
+  G2A503c = 5C+8H+N+9O;    {CH2(OH)CH(OH)CH(OO.)CH(ONO2)CO(OH)                                                                     2.ANO    }
+  G2G502h = 5C+8H+N+10O;   {CH2(OH)CH(OH)CH(OO.)CH(ONO2)CO(OOH)                                                                    2.GNO    }
+  G2P503f = 5C+7H+2N+12O;  {CH2(OH)CH(OH)CH(OO.)CH(ONO2)CO(OONO2)                                                                  2.PNO    }
+  G2H501A = 5C+10H+N+9O;   {CH2(OH)CH(OH)CH(OO.)CH(OOH)CH2(ONO2)                                                                   2.HNO    }
+  G2H501E = 5C+9H+7O;      {CH2(OH)CH(OH)CH(OO.)CH(OOH)CHO                                                                         2.HDO    }
+  G2O400A = 4C+9H+5O;      {CH2(OH)CH(OH)CH(OO.)CH2(OH)                                                                            2.OOO    }
+  G2N400z = 4C+8H+N+7O;    {CH2(OH)CH(OH)CH(OO.)CH2(ONO2)                                                                          2.NOO    }
+  G2O500L = 5C+11H+5O;     {CH2(OH)CH(OH)CH(OO.)CH2CH2(OH)                                                                         2.OOO    }
+  G2N5011 = 5C+10H+N+7O;   {CH2(OH)CH(OH)CH(OO.)CH2CH2(ONO2)                                                                       2.NOO    }
+  G2D5005 = 5C+9H+5O;      {CH2(OH)CH(OH)CH(OO.)CH2CHO                                                                             2.DOO    }
+  G2A500D = 5C+9H+6O;      {CH2(OH)CH(OH)CH(OO.)CH2CO(OH)                                                                          2.AOO    }
+  G2G500C = 5C+9H+7O;      {CH2(OH)CH(OH)CH(OO.)CH2CO(OOH)                                                                         2.GOO    }
+  G2P500D = 5C+8H+N+9O;    {CH2(OH)CH(OH)CH(OO.)CH2CO(OONO2)                                                                       2.POO    }
+  G2A400g = 4C+7H+6O;      {CH2(OH)CH(OH)CH(OO.)CO(OH)                                                                             2.AOO    }
+  G2G400S = 4C+7H+7O;      {CH2(OH)CH(OH)CH(OO.)CO(OOH)                                                                            2.GOO    }
+  G2P400J = 4C+6H+N+9O;    {CH2(OH)CH(OH)CH(OO.)CO(OONO2)                                                                          2.POO    }
+  G2K500m = 5C+9H+6O;      {CH2(OH)CH(OH)CH(OO.)COCH2(OH)                                                                          2.KOO    }
+  G2N504y = 5C+8H+N+8O;    {CH2(OH)CH(OH)CH(OO.)COCH2(ONO2)                                                                        2.NKO    }
+  G2A504O = 5C+7H+7O;      {CH2(OH)CH(OH)CH(OO.)COCO(OH)                                                                           2.AKO    }
+  G2G502i = 5C+7H+8O;      {CH2(OH)CH(OH)CH(OO.)COCO(OOH)                                                                          2.GKO    }
+  G2P503g = 5C+6H+N+10O;   {CH2(OH)CH(OH)CH(OO.)COCO(OONO2)                                                                        2.PKO    }
+  G1H502D = 5C+11H+6O;     {CH2(OH)CH(OH)CH(OOH)CH(O.)CH2(OH)                                                                      1.HOO    }
+  G1H506U = 5C+10H+N+8O;   {CH2(OH)CH(OH)CH(OOH)CH(O.)CH2(ONO2)                                                                    1.HNO    }
+  G1H502N = 5C+11H+7O;     {CH2(OH)CH(OH)CH(OOH)CH(O.)CH2(OOH)                                                                     1.HHO    }
+  G1H502U = 5C+9H+6O;      {CH2(OH)CH(OH)CH(OOH)CH(O.)CHO                                                                          1.HDO    }
+  G1A504U = 5C+9H+7O;      {CH2(OH)CH(OH)CH(OOH)CH(O.)CO(OH)                                                                       1.AHO    }
+  G1G501G = 5C+9H+8O;      {CH2(OH)CH(OH)CH(OOH)CH(O.)CO(OOH)                                                                      1.GHO    }
+  G1P501Q = 5C+8H+N+10O;   {CH2(OH)CH(OH)CH(OOH)CH(O.)CO(OONO2)                                                                    1.PHO    }
+  G1H503O = 5C+11H+6O;     {CH2(OH)CH(OH)CH(OOH)CH(OH)CH2(O.)                                                                      1.HOO    }
+  GHO500U = 5C+12H+6O;     {CH2(OH)CH(OH)CH(OOH)CH(OH)CH2(OH)                                                                      HOOOO    }
+  GHN501s = 5C+11H+N+8O;   {CH2(OH)CH(OH)CH(OOH)CH(OH)CH2(ONO2)                                                                    HNOOO    }
+  GHH501G = 5C+12H+7O;     {CH2(OH)CH(OH)CH(OOH)CH(OH)CH2(OOH)                                                                     HHOOO    }
+  GHD500H = 5C+10H+6O;     {CH2(OH)CH(OH)CH(OOH)CH(OH)CHO                                                                          HDOOO    }
+  GAH500m = 5C+10H+7O;     {CH2(OH)CH(OH)CH(OOH)CH(OH)CO(OH)                                                                       AHOOO    }
+  G3H500Q = 5C+9H+8O;      {CH2(OH)CH(OH)CH(OOH)CH(OH)CO(OO.)                                                                      3.HKO    }
+  GGH500h = 5C+10H+8O;     {CH2(OH)CH(OH)CH(OOH)CH(OH)CO(OOH)                                                                      GHOOO    }
+  GPH500o = 5C+9H+N+10O;   {CH2(OH)CH(OH)CH(OOH)CH(OH)CO(OONO2)                                                                    PHOOO    }
+  G1H506v = 5C+10H+N+8O;   {CH2(OH)CH(OH)CH(OOH)CH(ONO2)CH2(O.)                                                                    1.HNO    }
+  GHN5052 = 5C+10H+2N+10O; {CH2(OH)CH(OH)CH(OOH)CH(ONO2)CH2(ONO2)                                                                  HNNOO    }
+  G2H502a = 5C+10H+N+9O;   {CH2(OH)CH(OH)CH(OOH)CH(ONO2)CH2(OO.)                                                                   2.HNO    }
+  GHH501E = 5C+11H+N+9O;   {CH2(OH)CH(OH)CH(OOH)CH(ONO2)CH2(OOH)                                                                   HHNOO    }
+  GHN5042 = 5C+9H+N+8O;    {CH2(OH)CH(OH)CH(OOH)CH(ONO2)CHO                                                                        HNDOO    }
+  GAH501m = 5C+9H+N+9O;    {CH2(OH)CH(OH)CH(OOH)CH(ONO2)CO(OH)                                                                     AHNOO    }
+  G3H501M = 5C+8H+N+10O;   {CH2(OH)CH(OH)CH(OOH)CH(ONO2)CO(OO.)                                                                    3.HNK    }
+  GGH501e = 5C+9H+N+10O;   {CH2(OH)CH(OH)CH(OOH)CH(ONO2)CO(OOH)                                                                    GHNOO    }
+  GPH501k = 5C+8H+2N+12O;  {CH2(OH)CH(OH)CH(OOH)CH(ONO2)CO(OONO2)                                                                  PHNOO    }
+  G2H501F = 5C+11H+7O;     {CH2(OH)CH(OH)CH(OOH)CH(OO.)CH2(OH)                                                                     2.HOO    }
+  G2H502W = 5C+10H+N+9O;   {CH2(OH)CH(OH)CH(OOH)CH(OO.)CH2(ONO2)                                                                   2.HNO    }
+  G2H501J = 5C+11H+8O;     {CH2(OH)CH(OH)CH(OOH)CH(OO.)CH2(OOH)                                                                    2.HHO    }
+  G2H501M = 5C+9H+7O;      {CH2(OH)CH(OH)CH(OOH)CH(OO.)CHO                                                                         2.HDO    }
+  G2G5012 = 5C+9H+9O;      {CH2(OH)CH(OH)CH(OOH)CH(OO.)CO(OOH)                                                                     2.GHO    }
+  G2P501F = 5C+8H+N+11O;   {CH2(OH)CH(OH)CH(OOH)CH(OO.)CO(OONO2)                                                                   2.PHO    }
+  G1H506W = 5C+11H+7O;     {CH2(OH)CH(OH)CH(OOH)CH(OOH)CH2(O.)                                                                     1.HHO    }
+  GHH5016 = 5C+12H+7O;     {CH2(OH)CH(OH)CH(OOH)CH(OOH)CH2(OH)                                                                     HHOOO    }
+  GHH5013 = 5C+11H+N+9O;   {CH2(OH)CH(OH)CH(OOH)CH(OOH)CH2(ONO2)                                                                   HHNOO    }
+  GHH501F = 5C+12H+8O;     {CH2(OH)CH(OH)CH(OOH)CH(OOH)CH2(OOH)                                                                    HHHOO    }
+  GHH5018 = 5C+10H+7O;     {CH2(OH)CH(OH)CH(OOH)CH(OOH)CHO                                                                         HHDOO    }
+  GAH501b = 5C+10H+8O;     {CH2(OH)CH(OH)CH(OOH)CH(OOH)CO(OH)                                                                      AHHOO    }
+  G3H501A = 5C+9H+9O;      {CH2(OH)CH(OH)CH(OOH)CH(OOH)CO(OO.)                                                                     3.HHK    }
+  GGH501Q = 5C+10H+9O;     {CH2(OH)CH(OH)CH(OOH)CH(OOH)CO(OOH)                                                                     GHHOO    }
+  GPH501a = 5C+9H+N+11O;   {CH2(OH)CH(OH)CH(OOH)CH(OOH)CO(OONO2)                                                                   PHHOO    }
+  G1H400P = 4C+9H+5O;      {CH2(OH)CH(OH)CH(OOH)CH2(O.)                                                                            1.HOO    }
+  GHO4009 = 4C+10H+5O;     {CH2(OH)CH(OH)CH(OOH)CH2(OH)                                                                            HOOO     }
+  GHN400b = 4C+9H+N+7O;    {CH2(OH)CH(OH)CH(OOH)CH2(ONO2)                                                                          HNOO     }
+  G2H400N = 4C+9H+6O;      {CH2(OH)CH(OH)CH(OOH)CH2(OO.)                                                                           2.HOO    }
+  GHH400K = 4C+10H+6O;     {CH2(OH)CH(OH)CH(OOH)CH2(OOH)                                                                           HHOO     }
+  G1H502h = 5C+11H+5O;     {CH2(OH)CH(OH)CH(OOH)CH2CH2(O.)                                                                         1.HOO    }
+  GHO500L = 5C+12H+5O;     {CH2(OH)CH(OH)CH(OOH)CH2CH2(OH)                                                                         HOOO     }
+  GHN501M = 5C+11H+N+7O;   {CH2(OH)CH(OH)CH(OOH)CH2CH2(ONO2)                                                                       HNOO     }
+  G2H501X = 5C+11H+6O;     {CH2(OH)CH(OH)CH(OOH)CH2CH2(OO.)                                                                        2.HOO    }
+  GHH501Y = 5C+12H+6O;     {CH2(OH)CH(OH)CH(OOH)CH2CH2(OOH)                                                                        HHOO     }
+  GHD500D = 5C+10H+5O;     {CH2(OH)CH(OH)CH(OOH)CH2CHO                                                                             HDOO     }
+  GAH500K = 5C+10H+6O;     {CH2(OH)CH(OH)CH(OOH)CH2CO(OH)                                                                          AHOO     }
+  G3H500I = 5C+9H+7O;      {CH2(OH)CH(OH)CH(OOH)CH2CO(OO.)                                                                         3.HKO    }
+  GGH500K = 5C+10H+7O;     {CH2(OH)CH(OH)CH(OOH)CH2CO(OOH)                                                                         GHOO     }
+  GPH500K = 5C+9H+N+9O;    {CH2(OH)CH(OH)CH(OOH)CH2CO(OONO2)                                                                       PHOO     }
+  GHD400A = 4C+8H+5O;      {CH2(OH)CH(OH)CH(OOH)CHO                                                                                HDOO     }
+  GAH400K = 4C+8H+6O;      {CH2(OH)CH(OH)CH(OOH)CO(OH)                                                                             AHOO     }
+  G3H400C = 4C+7H+7O;      {CH2(OH)CH(OH)CH(OOH)CO(OO.)                                                                            3.HKO    }
+  GGH400H = 4C+8H+7O;      {CH2(OH)CH(OH)CH(OOH)CO(OOH)                                                                            GHOO     }
+  GPH400K = 4C+7H+N+9O;    {CH2(OH)CH(OH)CH(OOH)CO(OONO2)                                                                          PHOO     }
+  G1H506i = 5C+9H+6O;      {CH2(OH)CH(OH)CH(OOH)COCH2(O.)                                                                          1.HKO    }
+  GHK500f = 5C+10H+6O;     {CH2(OH)CH(OH)CH(OOH)COCH2(OH)                                                                          HKOOO    }
+  GHN503p = 5C+9H+N+8O;    {CH2(OH)CH(OH)CH(OOH)COCH2(ONO2)                                                                        HNKOO    }
+  GHH501H = 5C+10H+7O;     {CH2(OH)CH(OH)CH(OOH)COCH2(OOH)                                                                         HHKOO    }
+  GHD500h = 5C+8H+6O;      {CH2(OH)CH(OH)CH(OOH)COCHO                                                                              HDKOO    }
+  GAH502n = 5C+8H+7O;      {CH2(OH)CH(OH)CH(OOH)COCO(OH)                                                                           AHKOO    }
+  G3H503h = 5C+7H+8O;      {CH2(OH)CH(OH)CH(OOH)COCO(OO.)                                                                          3.HKK    }
+  GGH501f = 5C+8H+8O;      {CH2(OH)CH(OH)CH(OOH)COCO(OOH)                                                                          GHKOO    }
+  GPH501l = 5C+7H+N+10O;   {CH2(OH)CH(OH)CH(OOH)COCO(OONO2)                                                                        PHKOO    }
+  G1O3003 = 3C+7H+3O;      {CH2(OH)CH(OH)CH2(O.)                                                                                   1.OO     }
+  GOO3002 = 3C+8H+3O;      {CH2(OH)CH(OH)CH2(OH)                                                                                   OOO      }
+  GNO3003 = 3C+7H+N+5O;    {CH2(OH)CH(OH)CH2(ONO2)                                                                                 NOO      }
+  G2O3003 = 3C+7H+4O;      {CH2(OH)CH(OH)CH2(OO.)                                                                                  2.OO     }
+  GHO3003 = 3C+8H+4O;      {CH2(OH)CH(OH)CH2(OOH)                                                                                  HOO      }
+  G1O500J = 5C+11H+4O;     {CH2(OH)CH(OH)CH2CH(O.)CH2(OH)                                                                          1.OOO    }
+  G1N500v = 5C+10H+N+6O;   {CH2(OH)CH(OH)CH2CH(O.)CH2(ONO2)                                                                        1.NOO    }
+  G1H500L = 5C+11H+5O;     {CH2(OH)CH(OH)CH2CH(O.)CH2(OOH)                                                                         1.HOO    }
+  G1D5005 = 5C+9H+4O;      {CH2(OH)CH(OH)CH2CH(O.)CHO                                                                              1.DOO    }
+  G1A500D = 5C+9H+5O;      {CH2(OH)CH(OH)CH2CH(O.)CO(OH)                                                                           1.AOO    }
+  G1G500C = 5C+9H+6O;      {CH2(OH)CH(OH)CH2CH(O.)CO(OOH)                                                                          1.GOO    }
+  G1P500D = 5C+8H+N+8O;    {CH2(OH)CH(OH)CH2CH(O.)CO(OONO2)                                                                        1.POO    }
+  G1O500B = 5C+11H+4O;     {CH2(OH)CH(OH)CH2CH(OH)CH2(O.)                                                                          1.OOO    }
+  GOO5008 = 5C+12H+4O;     {CH2(OH)CH(OH)CH2CH(OH)CH2(OH)                                                                          OOOO     }
+  GNO500G = 5C+11H+N+6O;   {CH2(OH)CH(OH)CH2CH(OH)CH2(ONO2)                                                                        NOOO     }
+  G2O500B = 5C+11H+5O;     {CH2(OH)CH(OH)CH2CH(OH)CH2(OO.)                                                                         2.OOO    }
+  GHO500E = 5C+12H+5O;     {CH2(OH)CH(OH)CH2CH(OH)CH2(OOH)                                                                         HOOO     }
+  GDO5004 = 5C+10H+4O;     {CH2(OH)CH(OH)CH2CH(OH)CHO                                                                              DOOO     }
+  GAO5005 = 5C+10H+5O;     {CH2(OH)CH(OH)CH2CH(OH)CO(OH)                                                                           AOOO     }
+  G3K5006 = 5C+9H+6O;      {CH2(OH)CH(OH)CH2CH(OH)CO(OO.)                                                                          3.KOO    }
+  GGO5005 = 5C+10H+6O;     {CH2(OH)CH(OH)CH2CH(OH)CO(OOH)                                                                          GOOO     }
+  GPO5005 = 5C+9H+N+8O;    {CH2(OH)CH(OH)CH2CH(OH)CO(OONO2)                                                                        POOO     }
+  G1N5038 = 5C+10H+N+6O;   {CH2(OH)CH(OH)CH2CH(ONO2)CH2(O.)                                                                        1.NOO    }
+  GNO500M = 5C+11H+N+6O;   {CH2(OH)CH(OH)CH2CH(ONO2)CH2(OH)                                                                        NOOO     }
+  GNN500k = 5C+10H+2N+8O;  {CH2(OH)CH(OH)CH2CH(ONO2)CH2(ONO2)                                                                      NNOO     }
+  G2N5033 = 5C+10H+N+7O;   {CH2(OH)CH(OH)CH2CH(ONO2)CH2(OO.)                                                                       2.NOO    }
+  GHN501B = 5C+11H+N+7O;   {CH2(OH)CH(OH)CH2CH(ONO2)CH2(OOH)                                                                       HNOO     }
+  GND500B = 5C+9H+N+6O;    {CH2(OH)CH(OH)CH2CH(ONO2)CHO                                                                            NDOO     }
+  GAN500I = 5C+9H+N+7O;    {CH2(OH)CH(OH)CH2CH(ONO2)CO(OH)                                                                         ANOO     }
+  G3N500D = 5C+8H+N+8O;    {CH2(OH)CH(OH)CH2CH(ONO2)CO(OO.)                                                                        3.NKO    }
+  GGN500H = 5C+9H+N+8O;    {CH2(OH)CH(OH)CH2CH(ONO2)CO(OOH)                                                                        GNOO     }
+  GPN500I = 5C+8H+2N+10O;  {CH2(OH)CH(OH)CH2CH(ONO2)CO(OONO2)                                                                      PNOO     }
+  G2O500F = 5C+11H+5O;     {CH2(OH)CH(OH)CH2CH(OO.)CH2(OH)                                                                         2.OOO    }
+  G2N500s = 5C+10H+N+7O;   {CH2(OH)CH(OH)CH2CH(OO.)CH2(ONO2)                                                                       2.NOO    }
+  G2H500F = 5C+11H+6O;     {CH2(OH)CH(OH)CH2CH(OO.)CH2(OOH)                                                                        2.HOO    }
+  G2D5003 = 5C+9H+5O;      {CH2(OH)CH(OH)CH2CH(OO.)CHO                                                                             2.DOO    }
+  G2A500B = 5C+9H+6O;      {CH2(OH)CH(OH)CH2CH(OO.)CO(OH)                                                                          2.AOO    }
+  G2G500A = 5C+9H+7O;      {CH2(OH)CH(OH)CH2CH(OO.)CO(OOH)                                                                         2.GOO    }
+  G2P500B = 5C+8H+N+9O;    {CH2(OH)CH(OH)CH2CH(OO.)CO(OONO2)                                                                       2.POO    }
+  G1H501h = 5C+11H+5O;     {CH2(OH)CH(OH)CH2CH(OOH)CH2(O.)                                                                         1.HOO    }
+  GHO500I = 5C+12H+5O;     {CH2(OH)CH(OH)CH2CH(OOH)CH2(OH)                                                                         HOOO     }
+  GHN500w = 5C+11H+N+7O;   {CH2(OH)CH(OH)CH2CH(OOH)CH2(ONO2)                                                                       HNOO     }
+  G2H500y = 5C+11H+6O;     {CH2(OH)CH(OH)CH2CH(OOH)CH2(OO.)                                                                        2.HOO    }
+  GHH500F = 5C+12H+6O;     {CH2(OH)CH(OH)CH2CH(OOH)CH2(OOH)                                                                        HHOO     }
+  GHD5006 = 5C+10H+5O;     {CH2(OH)CH(OH)CH2CH(OOH)CHO                                                                             HDOO     }
+  GAH500A = 5C+10H+6O;     {CH2(OH)CH(OH)CH2CH(OOH)CO(OH)                                                                          AHOO     }
+  G3H5008 = 5C+9H+7O;      {CH2(OH)CH(OH)CH2CH(OOH)CO(OO.)                                                                         3.HKO    }
+  GGH500A = 5C+10H+7O;     {CH2(OH)CH(OH)CH2CH(OOH)CO(OOH)                                                                         GHOO     }
+  GPH500A = 5C+9H+N+9O;    {CH2(OH)CH(OH)CH2CH(OOH)CO(OONO2)                                                                       PHOO     }
+  G1O4003 = 4C+9H+3O;      {CH2(OH)CH(OH)CH2CH2(O.)                                                                                1.OO     }
+  GNO4003 = 4C+9H+N+5O;    {CH2(OH)CH(OH)CH2CH2(ONO2)                                                                              NOO      }
+  G2O4003 = 4C+9H+4O;      {CH2(OH)CH(OH)CH2CH2(OO.)                                                                               2.OO     }
+  GHO4003 = 4C+10H+4O;     {CH2(OH)CH(OH)CH2CH2(OOH)                                                                               HOO      }
+  G1O5004 = 5C+11H+3O;     {CH2(OH)CH(OH)CH2CH2CH2(O.)                                                                             1.OO     }
+  GNO5008 = 5C+11H+N+5O;   {CH2(OH)CH(OH)CH2CH2CH2(ONO2)                                                                           NOO      }
+  G2O5004 = 5C+11H+4O;     {CH2(OH)CH(OH)CH2CH2CH2(OO.)                                                                            2.OO     }
+  GHO5007 = 5C+12H+4O;     {CH2(OH)CH(OH)CH2CH2CH2(OOH)                                                                            HOO      }
+  GDO5001 = 5C+10H+3O;     {CH2(OH)CH(OH)CH2CH2CHO                                                                                 DOO      }
+  GAO5001 = 5C+10H+4O;     {CH2(OH)CH(OH)CH2CH2CO(OH)                                                                              AOO      }
+  G3K5002 = 5C+9H+5O;      {CH2(OH)CH(OH)CH2CH2CO(OO.)                                                                             3.KOO    }
+  GGO5001 = 5C+10H+5O;     {CH2(OH)CH(OH)CH2CH2CO(OOH)                                                                             GOO      }
+  GPO5001 = 5C+9H+N+7O;    {CH2(OH)CH(OH)CH2CH2CO(OONO2)                                                                           POO      }
+  GDO4002 = 4C+8H+3O;      {CH2(OH)CH(OH)CH2CHO                                                                                    DOO      }
+  GAO4004 = 4C+8H+4O;      {CH2(OH)CH(OH)CH2CO(OH)                                                                                 AOO      }
+  G3K4005 = 4C+7H+5O;      {CH2(OH)CH(OH)CH2CO(OO.)                                                                                3.KOO    }
+  GGO4004 = 4C+8H+5O;      {CH2(OH)CH(OH)CH2CO(OOH)                                                                                GOO      }
+  GPO4004 = 4C+7H+N+7O;    {CH2(OH)CH(OH)CH2CO(OONO2)                                                                              POO      }
+  G1K500b = 5C+9H+4O;      {CH2(OH)CH(OH)CH2COCH2(O.)                                                                              1.KOO    }
+  GKO500A = 5C+10H+4O;     {CH2(OH)CH(OH)CH2COCH2(OH)                                                                              KOOO     }
+  GNK500P = 5C+9H+N+6O;    {CH2(OH)CH(OH)CH2COCH2(ONO2)                                                                            NKOO     }
+  G2K500T = 5C+9H+5O;      {CH2(OH)CH(OH)CH2COCH2(OO.)                                                                             2.KOO    }
+  GHK500C = 5C+10H+5O;     {CH2(OH)CH(OH)CH2COCH2(OOH)                                                                             HKOO     }
+  GDK5005 = 5C+8H+4O;      {CH2(OH)CH(OH)CH2COCHO                                                                                  DKOO     }
+  GAK5006 = 5C+8H+5O;      {CH2(OH)CH(OH)CH2COCO(OH)                                                                               AKOO     }
+  G3K500U = 5C+7H+6O;      {CH2(OH)CH(OH)CH2COCO(OO.)                                                                              3.KKO    }
+  GGK5006 = 5C+8H+6O;      {CH2(OH)CH(OH)CH2COCO(OOH)                                                                              GKOO     }
+  GPK5006 = 5C+7H+N+8O;    {CH2(OH)CH(OH)CH2COCO(OONO2)                                                                            PKOO     }
+  GDO3002 = 3C+6H+3O;      {CH2(OH)CH(OH)CHO                                                                                       DOO      }
+  GAO3002 = 3C+6H+4O;      {CH2(OH)CH(OH)CO(OH)                                                                                    AOO      }
+  G3K3003 = 3C+5H+5O;      {CH2(OH)CH(OH)CO(OO.)                                                                                   3.KOO    }
+  GGO3002 = 3C+6H+5O;      {CH2(OH)CH(OH)CO(OOH)                                                                                   GOO      }
+  GPO3002 = 3C+5H+N+7O;    {CH2(OH)CH(OH)CO(OONO2)                                                                                 POO      }
+  G1K5018 = 5C+9H+5O;      {CH2(OH)CH(OH)COCH(O.)CH2(OH)                                                                           1.KOO    }
+  G1N505u = 5C+8H+N+7O;    {CH2(OH)CH(OH)COCH(O.)CH2(ONO2)                                                                         1.NKO    }
+  G1H50At = 5C+9H+6O;      {CH2(OH)CH(OH)COCH(O.)CH2(OOH)                                                                          1.HKO    }
+  G1D500z = 5C+7H+5O;      {CH2(OH)CH(OH)COCH(O.)CHO                                                                               1.DKO    }
+  G1A504X = 5C+7H+6O;      {CH2(OH)CH(OH)COCH(O.)CO(OH)                                                                            1.AKO    }
+  G1G503Z = 5C+7H+7O;      {CH2(OH)CH(OH)COCH(O.)CO(OOH)                                                                           1.GKO    }
+  G1P504c = 5C+6H+N+9O;    {CH2(OH)CH(OH)COCH(O.)CO(OONO2)                                                                         1.PKO    }
+  G1K500s = 5C+9H+5O;      {CH2(OH)CH(OH)COCH(OH)CH2(O.)                                                                           1.KOO    }
+  GKO500M = 5C+10H+5O;     {CH2(OH)CH(OH)COCH(OH)CH2(OH)                                                                           KOOOO    }
+  GNK500l = 5C+9H+N+7O;    {CH2(OH)CH(OH)COCH(OH)CH2(ONO2)                                                                         NKOOO    }
+  GHK500u = 5C+10H+6O;     {CH2(OH)CH(OH)COCH(OH)CH2(OOH)                                                                          HKOOO    }
+  GDK500G = 5C+8H+5O;      {CH2(OH)CH(OH)COCH(OH)CHO                                                                               DKOOO    }
+  GAK500L = 5C+8H+6O;      {CH2(OH)CH(OH)COCH(OH)CO(OH)                                                                            AKOOO    }
+  G3K500N = 5C+7H+7O;      {CH2(OH)CH(OH)COCH(OH)CO(OO.)                                                                           3.KKO    }
+  GGK500M = 5C+8H+7O;      {CH2(OH)CH(OH)COCH(OH)CO(OOH)                                                                           GKOOO    }
+  GPK500M = 5C+7H+N+9O;    {CH2(OH)CH(OH)COCH(OH)CO(OONO2)                                                                         PKOOO    }
+  G1N5078 = 5C+8H+N+7O;    {CH2(OH)CH(OH)COCH(ONO2)CH2(O.)                                                                         1.NKO    }
+  GNK5018 = 5C+9H+N+7O;    {CH2(OH)CH(OH)COCH(ONO2)CH2(OH)                                                                         NKOOO    }
+  GNN503E = 5C+8H+2N+9O;   {CH2(OH)CH(OH)COCH(ONO2)CH2(ONO2)                                                                       NNKOO    }
+  G2N5069 = 5C+8H+N+8O;    {CH2(OH)CH(OH)COCH(ONO2)CH2(OO.)                                                                        2.NKO    }
+  GHN506G = 5C+9H+N+8O;    {CH2(OH)CH(OH)COCH(ONO2)CH2(OOH)                                                                        HNKOO    }
+  GND501S = 5C+7H+N+7O;    {CH2(OH)CH(OH)COCH(ONO2)CHO                                                                             NDKOO    }
+  GAN5021 = 5C+7H+N+8O;    {CH2(OH)CH(OH)COCH(ONO2)CO(OH)                                                                          ANKOO    }
+  G3N502I = 5C+6H+N+9O;    {CH2(OH)CH(OH)COCH(ONO2)CO(OO.)                                                                         3.NKK    }
+  GGN501y = 5C+7H+N+9O;    {CH2(OH)CH(OH)COCH(ONO2)CO(OOH)                                                                         GNKOO    }
+  GPN502A = 5C+6H+2N+11O;  {CH2(OH)CH(OH)COCH(ONO2)CO(OONO2)                                                                       PNKOO    }
+  G2K500t = 5C+9H+6O;      {CH2(OH)CH(OH)COCH(OO.)CH2(OH)                                                                          2.KOO    }
+  G2N504u = 5C+8H+N+8O;    {CH2(OH)CH(OH)COCH(OO.)CH2(ONO2)                                                                        2.NKO    }
+  G2A503Y = 5C+7H+7O;      {CH2(OH)CH(OH)COCH(OO.)CO(OH)                                                                           2.AKO    }
+  G2G502a = 5C+7H+8O;      {CH2(OH)CH(OH)COCH(OO.)CO(OOH)                                                                          2.GKO    }
+  G2P503b = 5C+6H+N+10O;   {CH2(OH)CH(OH)COCH(OO.)CO(OONO2)                                                                        2.PKO    }
+  G1H506Y = 5C+9H+6O;      {CH2(OH)CH(OH)COCH(OOH)CH2(O.)                                                                          1.HKO    }
+  GHK500t = 5C+10H+6O;     {CH2(OH)CH(OH)COCH(OOH)CH2(OH)                                                                          HKOOO    }
+  GHN503f = 5C+9H+N+8O;    {CH2(OH)CH(OH)COCH(OOH)CH2(ONO2)                                                                        HNKOO    }
+  GHH502T = 5C+10H+7O;     {CH2(OH)CH(OH)COCH(OOH)CH2(OOH)                                                                         HHKOO    }
+  GHD500c = 5C+8H+6O;      {CH2(OH)CH(OH)COCH(OOH)CHO                                                                              HDKOO    }
+  GAH501d = 5C+8H+7O;      {CH2(OH)CH(OH)COCH(OOH)CO(OH)                                                                           AHKOO    }
+  G3H501C = 5C+7H+8O;      {CH2(OH)CH(OH)COCH(OOH)CO(OO.)                                                                          3.HKK    }
+  GGH501S = 5C+8H+8O;      {CH2(OH)CH(OH)COCH(OOH)CO(OOH)                                                                          GHKOO    }
+  GPH501c = 5C+7H+N+10O;   {CH2(OH)CH(OH)COCH(OOH)CO(OONO2)                                                                        PHKOO    }
+  G1K4004 = 4C+7H+4O;      {CH2(OH)CH(OH)COCH2(O.)                                                                                 1.KOO    }
+  GKO4004 = 4C+8H+4O;      {CH2(OH)CH(OH)COCH2(OH)                                                                                 KOOO     }
+  GNK4006 = 4C+7H+N+6O;    {CH2(OH)CH(OH)COCH2(ONO2)                                                                               NKOO     }
+  G2K4004 = 4C+7H+5O;      {CH2(OH)CH(OH)COCH2(OO.)                                                                                2.KOO    }
+  GHK4006 = 4C+8H+5O;      {CH2(OH)CH(OH)COCH2(OOH)                                                                                HKOO     }
+  G1K500i = 5C+9H+4O;      {CH2(OH)CH(OH)COCH2CH2(O.)                                                                              1.KOO    }
+  GKO500E = 5C+10H+4O;     {CH2(OH)CH(OH)COCH2CH2(OH)                                                                              KOOO     }
+  GNK500X = 5C+9H+N+6O;    {CH2(OH)CH(OH)COCH2CH2(ONO2)                                                                            NKOO     }
+  GHK500y = 5C+10H+5O;     {CH2(OH)CH(OH)COCH2CH2(OOH)                                                                             HKOO     }
+  GDK5008 = 5C+8H+4O;      {CH2(OH)CH(OH)COCH2CHO                                                                                  DKOO     }
+  GAK5008 = 5C+8H+5O;      {CH2(OH)CH(OH)COCH2CO(OH)                                                                               AKOO     }
+  G3K500E = 5C+7H+6O;      {CH2(OH)CH(OH)COCH2CO(OO.)                                                                              3.KKO    }
+  GGK5008 = 5C+8H+6O;      {CH2(OH)CH(OH)COCH2CO(OOH)                                                                              GKOO     }
+  GPK5008 = 5C+7H+N+8O;    {CH2(OH)CH(OH)COCH2CO(OONO2)                                                                            PKOO     }
+  GDK4007 = 4C+6H+4O;      {CH2(OH)CH(OH)COCHO                                                                                     DKOO     }
+  GAK4007 = 4C+6H+5O;      {CH2(OH)CH(OH)COCO(OH)                                                                                  AKOO     }
+  G3K400G = 4C+5H+6O;      {CH2(OH)CH(OH)COCO(OO.)                                                                                 3.KKO    }
+  GGK4007 = 4C+6H+6O;      {CH2(OH)CH(OH)COCO(OOH)                                                                                 GKOO     }
+  GPK4007 = 4C+5H+N+8O;    {CH2(OH)CH(OH)COCO(OONO2)                                                                               PKOO     }
+  G1K5016 = 5C+7H+5O;      {CH2(OH)CH(OH)COCOCH2(O.)                                                                               1.KKO    }
+  GKK500G = 5C+8H+5O;      {CH2(OH)CH(OH)COCOCH2(OH)                                                                               KKOOO    }
+  GNK5012 = 5C+7H+N+7O;    {CH2(OH)CH(OH)COCOCH2(ONO2)                                                                             NKKOO    }
+  G2K500u = 5C+7H+6O;      {CH2(OH)CH(OH)COCOCH2(OO.)                                                                              2.KKO    }
+  GHK500v = 5C+8H+6O;      {CH2(OH)CH(OH)COCOCH2(OOH)                                                                              HKKOO    }
+  GDK500b = 5C+6H+5O;      {CH2(OH)CH(OH)COCOCHO                                                                                   DKKOO    }
+  GAK500W = 5C+6H+6O;      {CH2(OH)CH(OH)COCOCO(OH)                                                                                AKKOO    }
+  G3K500p = 5C+5H+7O;      {CH2(OH)CH(OH)COCOCO(OO.)                                                                               3.KKK    }
+  GGK500b = 5C+6H+7O;      {CH2(OH)CH(OH)COCOCO(OOH)                                                                               GKKOO    }
+  GPK500a = 5C+5H+N+9O;    {CH2(OH)CH(OH)COCOCO(OONO2)                                                                             PKKOO    }
+  G1N505W = 5C+10H+N+7O;   {CH2(OH)CH(ONO2)CH(O.)CH(OH)CH2(OH)                                                                     1.NOO    }
+  G1N502F = 5C+9H+2N+9O;   {CH2(OH)CH(ONO2)CH(O.)CH(OH)CH2(ONO2)                                                                   1.NNO    }
+  G1H507h = 5C+10H+N+8O;   {CH2(OH)CH(ONO2)CH(O.)CH(OH)CH2(OOH)                                                                    1.HNO    }
+  G1N506H = 5C+8H+N+7O;    {CH2(OH)CH(ONO2)CH(O.)CH(OH)CHO                                                                         1.NDO    }
+  G1A505k = 5C+8H+N+8O;    {CH2(OH)CH(ONO2)CH(O.)CH(OH)CO(OH)                                                                      1.ANO    }
+  G1G504f = 5C+8H+N+9O;    {CH2(OH)CH(ONO2)CH(O.)CH(OH)CO(OOH)                                                                     1.GNO    }
+  G1P505G = 5C+7H+2N+11O;  {CH2(OH)CH(ONO2)CH(O.)CH(OH)CO(OONO2)                                                                   1.PNO    }
+  G1N505U = 5C+9H+2N+9O;   {CH2(OH)CH(ONO2)CH(O.)CH(ONO2)CH2(OH)                                                                   1.NNO    }
+  G1N504g = 5C+8H+3N+11O;  {CH2(OH)CH(ONO2)CH(O.)CH(ONO2)CH2(ONO2)                                                                 1.NNN    }
+  G1H508m = 5C+9H+2N+10O;  {CH2(OH)CH(ONO2)CH(O.)CH(ONO2)CH2(OOH)                                                                  1.HNN    }
+  G1N506X = 5C+7H+2N+9O;   {CH2(OH)CH(ONO2)CH(O.)CH(ONO2)CHO                                                                       1.NND    }
+  G1A505B = 5C+7H+2N+10O;  {CH2(OH)CH(ONO2)CH(O.)CH(ONO2)CO(OH)                                                                    1.ANN    }
+  G1G505B = 5C+7H+2N+11O;  {CH2(OH)CH(ONO2)CH(O.)CH(ONO2)CO(OOH)                                                                   1.GNN    }
+  G1P505B = 5C+6H+3N+13O;  {CH2(OH)CH(ONO2)CH(O.)CH(ONO2)CO(OONO2)                                                                 1.PNN    }
+  G1H505Q = 5C+10H+N+8O;   {CH2(OH)CH(ONO2)CH(O.)CH(OOH)CH2(OH)                                                                    1.HNO    }
+  G1H504W = 5C+9H+2N+10O;  {CH2(OH)CH(ONO2)CH(O.)CH(OOH)CH2(ONO2)                                                                  1.HNN    }
+  G1H509o = 5C+10H+N+9O;   {CH2(OH)CH(ONO2)CH(O.)CH(OOH)CH2(OOH)                                                                   1.HHN    }
+  G1H509s = 5C+8H+N+8O;    {CH2(OH)CH(ONO2)CH(O.)CH(OOH)CHO                                                                        1.HND    }
+  G1A506C = 5C+8H+N+9O;    {CH2(OH)CH(ONO2)CH(O.)CH(OOH)CO(OH)                                                                     1.AHN    }
+  G1G5064 = 5C+8H+N+10O;   {CH2(OH)CH(ONO2)CH(O.)CH(OOH)CO(OOH)                                                                    1.GHN    }
+  G1P505D = 5C+7H+2N+12O;  {CH2(OH)CH(ONO2)CH(O.)CH(OOH)CO(OONO2)                                                                  1.PHN    }
+  G1N400R = 4C+8H+N+6O;    {CH2(OH)CH(ONO2)CH(O.)CH2(OH)                                                                           1.NOO    }
+  G1N400l = 4C+7H+2N+8O;   {CH2(OH)CH(ONO2)CH(O.)CH2(ONO2)                                                                         1.NNO    }
+  G1H401K = 4C+8H+N+7O;    {CH2(OH)CH(ONO2)CH(O.)CH2(OOH)                                                                          1.HNO    }
+  G1N504Z = 5C+10H+N+6O;   {CH2(OH)CH(ONO2)CH(O.)CH2CH2(OH)                                                                        1.NOO    }
+  G1N501m = 5C+9H+2N+8O;   {CH2(OH)CH(ONO2)CH(O.)CH2CH2(ONO2)                                                                      1.NNO    }
+  G1H5079 = 5C+10H+N+7O;   {CH2(OH)CH(ONO2)CH(O.)CH2CH2(OOH)                                                                       1.HNO    }
+  G1N5061 = 5C+8H+N+6O;    {CH2(OH)CH(ONO2)CH(O.)CH2CHO                                                                            1.NDO    }
+  G1A501c = 5C+8H+N+7O;    {CH2(OH)CH(ONO2)CH(O.)CH2CO(OH)                                                                         1.ANO    }
+  G1G503z = 5C+8H+N+8O;    {CH2(OH)CH(ONO2)CH(O.)CH2CO(OOH)                                                                        1.GNO    }
+  G1P501e = 5C+7H+2N+10O;  {CH2(OH)CH(ONO2)CH(O.)CH2CO(OONO2)                                                                      1.PNO    }
+  G1N400y = 4C+6H+N+6O;    {CH2(OH)CH(ONO2)CH(O.)CHO                                                                               1.NDO    }
+  G1A400C = 4C+6H+N+7O;    {CH2(OH)CH(ONO2)CH(O.)CO(OH)                                                                            1.ANO    }
+  G1G400a = 4C+6H+N+8O;    {CH2(OH)CH(ONO2)CH(O.)CO(OOH)                                                                           1.GNO    }
+  G1P400C = 4C+5H+2N+10O;  {CH2(OH)CH(ONO2)CH(O.)CO(OONO2)                                                                         1.PNO    }
+  G1N505Y = 5C+8H+N+7O;    {CH2(OH)CH(ONO2)CH(O.)COCH2(OH)                                                                         1.NKO    }
+  G1N502I = 5C+7H+2N+9O;   {CH2(OH)CH(ONO2)CH(O.)COCH2(ONO2)                                                                       1.NNK    }
+  G1H507k = 5C+8H+N+8O;    {CH2(OH)CH(ONO2)CH(O.)COCH2(OOH)                                                                        1.HNK    }
+  G1N506J = 5C+6H+N+7O;    {CH2(OH)CH(ONO2)CH(O.)COCHO                                                                             1.NDK    }
+  G1A503f = 5C+6H+N+8O;    {CH2(OH)CH(ONO2)CH(O.)COCO(OH)                                                                          1.ANK    }
+  G1G505E = 5C+6H+N+9O;    {CH2(OH)CH(ONO2)CH(O.)COCO(OOH)                                                                         1.GNK    }
+  G1P503i = 5C+5H+2N+11O;  {CH2(OH)CH(ONO2)CH(O.)COCO(OONO2)                                                                       1.PNK    }
+  G1N504R = 5C+10H+N+7O;   {CH2(OH)CH(ONO2)CH(OH)CH(O.)CH2(OH)                                                                     1.NOO    }
+  G1N504D = 5C+9H+2N+9O;   {CH2(OH)CH(ONO2)CH(OH)CH(O.)CH2(ONO2)                                                                   1.NNO    }
+  G1H508v = 5C+10H+N+8O;   {CH2(OH)CH(ONO2)CH(OH)CH(O.)CH2(OOH)                                                                    1.HNO    }
+  G1N506M = 5C+8H+N+7O;    {CH2(OH)CH(ONO2)CH(OH)CH(O.)CHO                                                                         1.NDO    }
+  G1A503d = 5C+8H+N+8O;    {CH2(OH)CH(ONO2)CH(OH)CH(O.)CO(OH)                                                                      1.ANO    }
+  G1G503D = 5C+8H+N+9O;    {CH2(OH)CH(ONO2)CH(OH)CH(O.)CO(OOH)                                                                     1.GNO    }
+  G1P503a = 5C+7H+2N+11O;  {CH2(OH)CH(ONO2)CH(OH)CH(O.)CO(OONO2)                                                                   1.PNO    }
+  G1N504y = 5C+10H+N+7O;   {CH2(OH)CH(ONO2)CH(OH)CH(OH)CH2(O.)                                                                     1.NOO    }
+  GNN501p = 5C+10H+2N+9O;  {CH2(OH)CH(ONO2)CH(OH)CH(OH)CH2(ONO2)                                                                   NNOOO    }
+  GND501P = 5C+9H+N+7O;    {CH2(OH)CH(ONO2)CH(OH)CH(OH)CHO                                                                         NDOOO    }
+  GAN502P = 5C+9H+N+8O;    {CH2(OH)CH(ONO2)CH(OH)CH(OH)CO(OH)                                                                      ANOOO    }
+  G3N502G = 5C+8H+N+9O;    {CH2(OH)CH(ONO2)CH(OH)CH(OH)CO(OO.)                                                                     3.NKO    }
+  GGN501f = 5C+9H+N+9O;    {CH2(OH)CH(ONO2)CH(OH)CH(OH)CO(OOH)                                                                     GNOOO    }
+  GPN501y = 5C+8H+2N+11O;  {CH2(OH)CH(ONO2)CH(OH)CH(OH)CO(OONO2)                                                                   PNOOO    }
+  G1N506P = 5C+9H+2N+9O;   {CH2(OH)CH(ONO2)CH(OH)CH(ONO2)CH2(O.)                                                                   1.NNO    }
+  GNN502q = 5C+10H+2N+9O;  {CH2(OH)CH(ONO2)CH(OH)CH(ONO2)CH2(OH)                                                                   NNOOO    }
+  GNN502l = 5C+9H+3N+11O;  {CH2(OH)CH(ONO2)CH(OH)CH(ONO2)CH2(ONO2)                                                                 NNNOO    }
+  G2N505S = 5C+9H+2N+10O;  {CH2(OH)CH(ONO2)CH(OH)CH(ONO2)CH2(OO.)                                                                  2.NNO    }
+  GHN5056 = 5C+10H+2N+10O; {CH2(OH)CH(ONO2)CH(OH)CH(ONO2)CH2(OOH)                                                                  HNNOO    }
+  GNN502u = 5C+8H+2N+9O;   {CH2(OH)CH(ONO2)CH(OH)CH(ONO2)CHO                                                                       NNDOO    }
+  GAN502N = 5C+8H+2N+10O;  {CH2(OH)CH(ONO2)CH(OH)CH(ONO2)CO(OH)                                                                    ANNOO    }
+  G3N501n = 5C+7H+2N+11O;  {CH2(OH)CH(ONO2)CH(OH)CH(ONO2)CO(OO.)                                                                   3.NNK    }
+  GGN5029 = 5C+8H+2N+11O;  {CH2(OH)CH(ONO2)CH(OH)CH(ONO2)CO(OOH)                                                                   GNNOO    }
+  GPN502W = 5C+7H+3N+13O;  {CH2(OH)CH(ONO2)CH(OH)CH(ONO2)CO(OONO2)                                                                 PNNOO    }
+  G2N503v = 5C+10H+N+8O;   {CH2(OH)CH(ONO2)CH(OH)CH(OO.)CH2(OH)                                                                    2.NOO    }
+  G2N503j = 5C+9H+2N+10O;  {CH2(OH)CH(ONO2)CH(OH)CH(OO.)CH2(ONO2)                                                                  2.NNO    }
+  G2N505L = 5C+8H+N+8O;    {CH2(OH)CH(ONO2)CH(OH)CH(OO.)CHO                                                                        2.NDO    }
+  G2A502r = 5C+8H+N+9O;    {CH2(OH)CH(ONO2)CH(OH)CH(OO.)CO(OH)                                                                     2.ANO    }
+  G2G502I = 5C+8H+N+10O;   {CH2(OH)CH(ONO2)CH(OH)CH(OO.)CO(OOH)                                                                    2.GNO    }
+  G2P502t = 5C+7H+2N+12O;  {CH2(OH)CH(ONO2)CH(OH)CH(OO.)CO(OONO2)                                                                  2.PNO    }
+  G1H506Z = 5C+10H+N+8O;   {CH2(OH)CH(ONO2)CH(OH)CH(OOH)CH2(O.)                                                                    1.HNO    }
+  GHN503i = 5C+11H+N+8O;   {CH2(OH)CH(ONO2)CH(OH)CH(OOH)CH2(OH)                                                                    HNOOO    }
+  GHN503g = 5C+10H+2N+10O; {CH2(OH)CH(ONO2)CH(OH)CH(OOH)CH2(ONO2)                                                                  HNNOO    }
+  GHN506A = 5C+9H+N+8O;    {CH2(OH)CH(ONO2)CH(OH)CH(OOH)CHO                                                                        HNDOO    }
+  GAH503j = 5C+9H+N+9O;    {CH2(OH)CH(ONO2)CH(OH)CH(OOH)CO(OH)                                                                     AHNOO    }
+  G3H503W = 5C+8H+N+10O;   {CH2(OH)CH(ONO2)CH(OH)CH(OOH)CO(OO.)                                                                    3.HNK    }
+  GGH503l = 5C+9H+N+10O;   {CH2(OH)CH(ONO2)CH(OH)CH(OOH)CO(OOH)                                                                    GHNOO    }
+  GPH503l = 5C+8H+2N+12O;  {CH2(OH)CH(ONO2)CH(OH)CH(OOH)CO(OONO2)                                                                  PHNOO    }
+  G1N400A = 4C+8H+N+6O;    {CH2(OH)CH(ONO2)CH(OH)CH2(O.)                                                                           1.NOO    }
+  GNN400A = 4C+8H+2N+8O;   {CH2(OH)CH(ONO2)CH(OH)CH2(ONO2)                                                                         NNOO     }
+  G2N400A = 4C+8H+N+7O;    {CH2(OH)CH(ONO2)CH(OH)CH2(OO.)                                                                          2.NOO    }
+  GHN400C = 4C+9H+N+7O;    {CH2(OH)CH(ONO2)CH(OH)CH2(OOH)                                                                          HNOO     }
+  G1N504U = 5C+10H+N+6O;   {CH2(OH)CH(ONO2)CH(OH)CH2CH2(O.)                                                                        1.NOO    }
+  GNN501O = 5C+10H+2N+8O;  {CH2(OH)CH(ONO2)CH(OH)CH2CH2(ONO2)                                                                      NNOO     }
+  GND501B = 5C+9H+N+6O;    {CH2(OH)CH(ONO2)CH(OH)CH2CHO                                                                            NDOO     }
+  GAN501a = 5C+9H+N+7O;    {CH2(OH)CH(ONO2)CH(OH)CH2CO(OH)                                                                         ANOO     }
+  G3N501f = 5C+8H+N+8O;    {CH2(OH)CH(ONO2)CH(OH)CH2CO(OO.)                                                                        3.NKO    }
+  GGN5021 = 5C+9H+N+8O;    {CH2(OH)CH(ONO2)CH(OH)CH2CO(OOH)                                                                        GNOO     }
+  GPN501c = 5C+8H+2N+10O;  {CH2(OH)CH(ONO2)CH(OH)CH2CO(OONO2)                                                                      PNOO     }
+  GND4009 = 4C+7H+N+6O;    {CH2(OH)CH(ONO2)CH(OH)CHO                                                                               NDOO     }
+  GAN400K = 4C+7H+N+7O;    {CH2(OH)CH(ONO2)CH(OH)CO(OH)                                                                            ANOO     }
+  G3N400E = 4C+6H+N+8O;    {CH2(OH)CH(ONO2)CH(OH)CO(OO.)                                                                           3.NKO    }
+  GGN400K = 4C+7H+N+8O;    {CH2(OH)CH(ONO2)CH(OH)CO(OOH)                                                                           GNOO     }
+  GPN400K = 4C+6H+2N+10O;  {CH2(OH)CH(ONO2)CH(OH)CO(OONO2)                                                                         PNOO     }
+  G1N5052 = 5C+8H+N+7O;    {CH2(OH)CH(ONO2)CH(OH)COCH2(O.)                                                                         1.NKO    }
+  GNN501r = 5C+8H+2N+9O;   {CH2(OH)CH(ONO2)CH(OH)COCH2(ONO2)                                                                       NNKOO    }
+  G2N505U = 5C+8H+N+8O;    {CH2(OH)CH(ONO2)CH(OH)COCH2(OO.)                                                                        2.NKO    }
+  GHN5058 = 5C+9H+N+8O;    {CH2(OH)CH(ONO2)CH(OH)COCH2(OOH)                                                                        HNKOO    }
+  GND501F = 5C+7H+N+7O;    {CH2(OH)CH(ONO2)CH(OH)COCHO                                                                             NDKOO    }
+  GAN502Q = 5C+7H+N+8O;    {CH2(OH)CH(ONO2)CH(OH)COCO(OH)                                                                          ANKOO    }
+  G3N502U = 5C+6H+N+9O;    {CH2(OH)CH(ONO2)CH(OH)COCO(OO.)                                                                         3.NKK    }
+  GGN501g = 5C+7H+N+9O;    {CH2(OH)CH(ONO2)CH(OH)COCO(OOH)                                                                         GNKOO    }
+  GPN501z = 5C+6H+2N+11O;  {CH2(OH)CH(ONO2)CH(OH)COCO(OONO2)                                                                       PNKOO    }
+  G1N502h = 5C+9H+2N+9O;   {CH2(OH)CH(ONO2)CH(ONO2)CH(O.)CH2(OH)                                                                   1.NNO    }
+  G1N501z = 5C+8H+3N+11O;  {CH2(OH)CH(ONO2)CH(ONO2)CH(O.)CH2(ONO2)                                                                 1.NNN    }
+  G1H505B = 5C+9H+2N+10O;  {CH2(OH)CH(ONO2)CH(ONO2)CH(O.)CH2(OOH)                                                                  1.HNN    }
+  G1N505L = 5C+7H+2N+9O;   {CH2(OH)CH(ONO2)CH(ONO2)CH(O.)CHO                                                                       1.NND    }
+  G1A502n = 5C+7H+2N+10O;  {CH2(OH)CH(ONO2)CH(ONO2)CH(O.)CO(OH)                                                                    1.ANN    }
+  G1G502q = 5C+7H+2N+11O;  {CH2(OH)CH(ONO2)CH(ONO2)CH(O.)CO(OOH)                                                                   1.GNN    }
+  G1P501n = 5C+6H+3N+13O;  {CH2(OH)CH(ONO2)CH(ONO2)CH(O.)CO(OONO2)                                                                 1.PNN    }
+  G1N503s = 5C+9H+2N+9O;   {CH2(OH)CH(ONO2)CH(ONO2)CH(OH)CH2(O.)                                                                   1.NNO    }
+  GNN501a = 5C+9H+3N+11O;  {CH2(OH)CH(ONO2)CH(ONO2)CH(OH)CH2(ONO2)                                                                 NNNOO    }
+  G2N503S = 5C+9H+2N+10O;  {CH2(OH)CH(ONO2)CH(ONO2)CH(OH)CH2(OO.)                                                                  2.NNO    }
+  GHN504T = 5C+10H+2N+10O; {CH2(OH)CH(ONO2)CH(ONO2)CH(OH)CH2(OOH)                                                                  HNNOO    }
+  GNN502b = 5C+8H+2N+9O;   {CH2(OH)CH(ONO2)CH(ONO2)CH(OH)CHO                                                                       NNDOO    }
+  GAN5027 = 5C+8H+2N+10O;  {CH2(OH)CH(ONO2)CH(ONO2)CH(OH)CO(OH)                                                                    ANNOO    }
+  G3N501S = 5C+7H+2N+11O;  {CH2(OH)CH(ONO2)CH(ONO2)CH(OH)CO(OO.)                                                                   3.NNK    }
+  GGN501t = 5C+8H+2N+11O;  {CH2(OH)CH(ONO2)CH(ONO2)CH(OH)CO(OOH)                                                                   GNNOO    }
+  GPN501i = 5C+7H+3N+13O;  {CH2(OH)CH(ONO2)CH(ONO2)CH(OH)CO(OONO2)                                                                 PNNOO    }
+  G1N504h = 5C+8H+3N+11O;  {CH2(OH)CH(ONO2)CH(ONO2)CH(ONO2)CH2(O.)                                                                 1.NNN    }
+  GNN502A = 5C+9H+3N+11O;  {CH2(OH)CH(ONO2)CH(ONO2)CH(ONO2)CH2(OH)                                                                 NNNOO    }
+  GNN501Z = 5C+8H+4N+13O;  {CH2(OH)CH(ONO2)CH(ONO2)CH(ONO2)CH2(ONO2)                                                               NNNNO    }
+  G2N505l = 5C+8H+3N+12O;  {CH2(OH)CH(ONO2)CH(ONO2)CH(ONO2)CH2(OO.)                                                                2.NNN    }
+  GHN505f = 5C+9H+3N+12O;  {CH2(OH)CH(ONO2)CH(ONO2)CH(ONO2)CH2(OOH)                                                                HNNNO    }
+  GNN502y = 5C+7H+3N+11O;  {CH2(OH)CH(ONO2)CH(ONO2)CH(ONO2)CHO                                                                     NNNDO    }
+  GAN501l = 5C+7H+3N+12O;  {CH2(OH)CH(ONO2)CH(ONO2)CH(ONO2)CO(OH)                                                                  ANNNO    }
+  G3N501y = 5C+6H+3N+13O;  {CH2(OH)CH(ONO2)CH(ONO2)CH(ONO2)CO(OO.)                                                                 3.NNN    }
+  GGN502K = 5C+7H+3N+13O;  {CH2(OH)CH(ONO2)CH(ONO2)CH(ONO2)CO(OOH)                                                                 GNNNO    }
+  GPN501h = 5C+6H+4N+15O;  {CH2(OH)CH(ONO2)CH(ONO2)CH(ONO2)CO(OONO2)                                                               PNNNO    }
+  G2N502S = 5C+9H+2N+10O;  {CH2(OH)CH(ONO2)CH(ONO2)CH(OO.)CH2(OH)                                                                  2.NNO    }
+  G2N501u = 5C+8H+3N+12O;  {CH2(OH)CH(ONO2)CH(ONO2)CH(OO.)CH2(ONO2)                                                                2.NNN    }
+  G2H5028 = 5C+9H+2N+11O;  {CH2(OH)CH(ONO2)CH(ONO2)CH(OO.)CH2(OOH)                                                                 2.HNN    }
+  G2N504Q = 5C+7H+2N+10O;  {CH2(OH)CH(ONO2)CH(ONO2)CH(OO.)CHO                                                                      2.NND    }
+  G2A502O = 5C+7H+2N+11O;  {CH2(OH)CH(ONO2)CH(ONO2)CH(OO.)CO(OH)                                                                   2.ANN    }
+  G2G5026 = 5C+7H+2N+12O;  {CH2(OH)CH(ONO2)CH(ONO2)CH(OO.)CO(OOH)                                                                  2.GNN    }
+  G2P501X = 5C+6H+3N+14O;  {CH2(OH)CH(ONO2)CH(ONO2)CH(OO.)CO(OONO2)                                                                2.PNN    }
+  G1H504X = 5C+9H+2N+10O;  {CH2(OH)CH(ONO2)CH(ONO2)CH(OOH)CH2(O.)                                                                  1.HNN    }
+  GHN5033 = 5C+10H+2N+10O; {CH2(OH)CH(ONO2)CH(ONO2)CH(OOH)CH2(OH)                                                                  HNNOO    }
+  GHN502W = 5C+9H+3N+12O;  {CH2(OH)CH(ONO2)CH(ONO2)CH(OOH)CH2(ONO2)                                                                HNNNO    }
+  G2H503H = 5C+9H+2N+11O;  {CH2(OH)CH(ONO2)CH(ONO2)CH(OOH)CH2(OO.)                                                                 2.HNN    }
+  GHH5022 = 5C+10H+2N+11O; {CH2(OH)CH(ONO2)CH(ONO2)CH(OOH)CH2(OOH)                                                                 HHNNO    }
+  GHN505h = 5C+8H+2N+10O;  {CH2(OH)CH(ONO2)CH(ONO2)CH(OOH)CHO                                                                      HNNDO    }
+  GAH5034 = 5C+8H+2N+11O;  {CH2(OH)CH(ONO2)CH(ONO2)CH(OOH)CO(OH)                                                                   AHNNO    }
+  G3H502l = 5C+7H+2N+12O;  {CH2(OH)CH(ONO2)CH(ONO2)CH(OOH)CO(OO.)                                                                  3.HNN    }
+  GGH503M = 5C+8H+2N+12O;  {CH2(OH)CH(ONO2)CH(ONO2)CH(OOH)CO(OOH)                                                                  GHNNO    }
+  GPH5028 = 5C+7H+3N+14O;  {CH2(OH)CH(ONO2)CH(ONO2)CH(OOH)CO(OONO2)                                                                PHNNO    }
+  G1N400c = 4C+7H+2N+8O;   {CH2(OH)CH(ONO2)CH(ONO2)CH2(O.)                                                                         1.NNO    }
+  GNN400O = 4C+8H+2N+8O;   {CH2(OH)CH(ONO2)CH(ONO2)CH2(OH)                                                                         NNOO     }
+  GNN400S = 4C+7H+3N+10O;  {CH2(OH)CH(ONO2)CH(ONO2)CH2(ONO2)                                                                       NNNO     }
+  G2N400a = 4C+7H+2N+9O;   {CH2(OH)CH(ONO2)CH(ONO2)CH2(OO.)                                                                        2.NNO    }
+  GHN400o = 4C+8H+2N+9O;   {CH2(OH)CH(ONO2)CH(ONO2)CH2(OOH)                                                                        HNNO     }
+  G1N503Q = 5C+9H+2N+8O;   {CH2(OH)CH(ONO2)CH(ONO2)CH2CH2(O.)                                                                      1.NNO    }
+  GNN501N = 5C+9H+3N+10O;  {CH2(OH)CH(ONO2)CH(ONO2)CH2CH2(ONO2)                                                                    NNNO     }
+  G2N5037 = 5C+9H+2N+9O;   {CH2(OH)CH(ONO2)CH(ONO2)CH2CH2(OO.)                                                                     2.NNO    }
+  GHN5049 = 5C+10H+2N+9O;  {CH2(OH)CH(ONO2)CH(ONO2)CH2CH2(OOH)                                                                     HNNO     }
+  GNN502S = 5C+8H+2N+8O;   {CH2(OH)CH(ONO2)CH(ONO2)CH2CHO                                                                          NNDO     }
+  GAN501X = 5C+8H+2N+9O;   {CH2(OH)CH(ONO2)CH(ONO2)CH2CO(OH)                                                                       ANNO     }
+  G3N501E = 5C+7H+2N+10O;  {CH2(OH)CH(ONO2)CH(ONO2)CH2CO(OO.)                                                                      3.NNK    }
+  GGN501X = 5C+8H+2N+10O;  {CH2(OH)CH(ONO2)CH(ONO2)CH2CO(OOH)                                                                      GNNO     }
+  GPN501Z = 5C+7H+3N+12O;  {CH2(OH)CH(ONO2)CH(ONO2)CH2CO(OONO2)                                                                    PNNO     }
+  GNN400E = 4C+6H+2N+8O;   {CH2(OH)CH(ONO2)CH(ONO2)CHO                                                                             NNDO     }
+  GAN400I = 4C+6H+2N+9O;   {CH2(OH)CH(ONO2)CH(ONO2)CO(OH)                                                                          ANNO     }
+  G3N400B = 4C+5H+2N+10O;  {CH2(OH)CH(ONO2)CH(ONO2)CO(OO.)                                                                         3.NNK    }
+  GGN400H = 4C+6H+2N+10O;  {CH2(OH)CH(ONO2)CH(ONO2)CO(OOH)                                                                         GNNO     }
+  GPN400J = 4C+5H+3N+12O;  {CH2(OH)CH(ONO2)CH(ONO2)CO(OONO2)                                                                       PNNO     }
+  G1N503y = 5C+7H+2N+9O;   {CH2(OH)CH(ONO2)CH(ONO2)COCH2(O.)                                                                       1.NNK    }
+  GNN501b = 5C+7H+3N+11O;  {CH2(OH)CH(ONO2)CH(ONO2)COCH2(ONO2)                                                                     NNNKO    }
+  G2N503W = 5C+7H+2N+10O;  {CH2(OH)CH(ONO2)CH(ONO2)COCH2(OO.)                                                                      2.NNK    }
+  GHN504U = 5C+8H+2N+10O;  {CH2(OH)CH(ONO2)CH(ONO2)COCH2(OOH)                                                                      HNNKO    }
+  GNN502c = 5C+6H+2N+9O;   {CH2(OH)CH(ONO2)CH(ONO2)COCHO                                                                           NNDKO    }
+  GAN501n = 5C+6H+2N+10O;  {CH2(OH)CH(ONO2)CH(ONO2)COCO(OH)                                                                        ANNKO    }
+  G3N502P = 5C+5H+2N+11O;  {CH2(OH)CH(ONO2)CH(ONO2)COCO(OO.)                                                                       3.NNK    }
+  GGN502S = 5C+6H+2N+11O;  {CH2(OH)CH(ONO2)CH(ONO2)COCO(OOH)                                                                       GNNKO    }
+  GPN501j = 5C+5H+3N+13O;  {CH2(OH)CH(ONO2)CH(ONO2)COCO(OONO2)                                                                     PNNKO    }
+  G2N504v = 5C+10H+N+8O;   {CH2(OH)CH(ONO2)CH(OO.)CH(OH)CH2(OH)                                                                    2.NOO    }
+  G2N5026 = 5C+9H+2N+10O;  {CH2(OH)CH(ONO2)CH(OO.)CH(OH)CH2(ONO2)                                                                  2.NNO    }
+  G2N5067 = 5C+8H+N+8O;    {CH2(OH)CH(ONO2)CH(OO.)CH(OH)CHO                                                                        2.NDO    }
+  G2A5051 = 5C+8H+N+9O;    {CH2(OH)CH(ONO2)CH(OO.)CH(OH)CO(OH)                                                                     2.ANO    }
+  G2G504L = 5C+8H+N+10O;   {CH2(OH)CH(ONO2)CH(OO.)CH(OH)CO(OOH)                                                                    2.GNO    }
+  G2P505Q = 5C+7H+2N+12O;  {CH2(OH)CH(ONO2)CH(OO.)CH(OH)CO(OONO2)                                                                  2.PNO    }
+  G2N505P = 5C+9H+2N+10O;  {CH2(OH)CH(ONO2)CH(OO.)CH(ONO2)CH2(OH)                                                                  2.NNO    }
+  G2N505J = 5C+8H+3N+12O;  {CH2(OH)CH(ONO2)CH(OO.)CH(ONO2)CH2(ONO2)                                                                2.NNN    }
+  G2H5033 = 5C+9H+2N+11O;  {CH2(OH)CH(ONO2)CH(OO.)CH(ONO2)CH2(OOH)                                                                 2.HNN    }
+  G2N505c = 5C+7H+2N+10O;  {CH2(OH)CH(ONO2)CH(OO.)CH(ONO2)CHO                                                                      2.NND    }
+  G2A504g = 5C+7H+2N+11O;  {CH2(OH)CH(ONO2)CH(OO.)CH(ONO2)CO(OH)                                                                   2.ANN    }
+  G2G503j = 5C+7H+2N+12O;  {CH2(OH)CH(ONO2)CH(OO.)CH(ONO2)CO(OOH)                                                                  2.GNN    }
+  G2P5051 = 5C+6H+3N+14O;  {CH2(OH)CH(ONO2)CH(OO.)CH(ONO2)CO(OONO2)                                                                2.PNN    }
+  G2H502X = 5C+10H+N+9O;   {CH2(OH)CH(ONO2)CH(OO.)CH(OOH)CH2(OH)                                                                   2.HNO    }
+  G2H502v = 5C+9H+2N+11O;  {CH2(OH)CH(ONO2)CH(OO.)CH(OOH)CH2(ONO2)                                                                 2.HNN    }
+  G2A504z = 5C+8H+N+10O;   {CH2(OH)CH(ONO2)CH(OO.)CH(OOH)CO(OH)                                                                    2.AHN    }
+  G2G504K = 5C+8H+N+11O;   {CH2(OH)CH(ONO2)CH(OO.)CH(OOH)CO(OOH)                                                                   2.GHN    }
+  G2P505P = 5C+7H+2N+13O;  {CH2(OH)CH(ONO2)CH(OO.)CH(OOH)CO(OONO2)                                                                 2.PHN    }
+  G2N400Q = 4C+8H+N+7O;    {CH2(OH)CH(ONO2)CH(OO.)CH2(OH)                                                                          2.NOO    }
+  G2N4013 = 4C+7H+2N+9O;   {CH2(OH)CH(ONO2)CH(OO.)CH2(ONO2)                                                                        2.NNO    }
+  G2H400y = 4C+8H+N+8O;    {CH2(OH)CH(ONO2)CH(OO.)CH2(OOH)                                                                         2.HNO    }
+  G2N504B = 5C+10H+N+7O;   {CH2(OH)CH(ONO2)CH(OO.)CH2CH2(OH)                                                                       2.NOO    }
+  G2N501j = 5C+9H+2N+9O;   {CH2(OH)CH(ONO2)CH(OO.)CH2CH2(ONO2)                                                                     2.NNO    }
+  G2N505Y = 5C+8H+N+7O;    {CH2(OH)CH(ONO2)CH(OO.)CH2CHO                                                                           2.NDO    }
+  G2A501O = 5C+8H+N+8O;    {CH2(OH)CH(ONO2)CH(OO.)CH2CO(OH)                                                                        2.ANO    }
+  G2G503c = 5C+8H+N+9O;    {CH2(OH)CH(ONO2)CH(OO.)CH2CO(OOH)                                                                       2.GNO    }
+  G2P501Q = 5C+7H+2N+11O;  {CH2(OH)CH(ONO2)CH(OO.)CH2CO(OONO2)                                                                     2.PNO    }
+  G2N4011 = 4C+6H+N+7O;    {CH2(OH)CH(ONO2)CH(OO.)CHO                                                                              2.NDO    }
+  G2A400A = 4C+6H+N+8O;    {CH2(OH)CH(ONO2)CH(OO.)CO(OH)                                                                           2.ANO    }
+  G2G400Z = 4C+6H+N+9O;    {CH2(OH)CH(ONO2)CH(OO.)CO(OOH)                                                                          2.GNO    }
+  G2P400B = 4C+5H+2N+11O;  {CH2(OH)CH(ONO2)CH(OO.)CO(OONO2)                                                                        2.PNO    }
+  G2N505B = 5C+8H+N+8O;    {CH2(OH)CH(ONO2)CH(OO.)COCH2(OH)                                                                        2.NKO    }
+  G2N5027 = 5C+7H+2N+10O;  {CH2(OH)CH(ONO2)CH(OO.)COCH2(ONO2)                                                                      2.NNK    }
+  G2H5039 = 5C+8H+N+9O;    {CH2(OH)CH(ONO2)CH(OO.)COCH2(OOH)                                                                       2.HNK    }
+  G2N505e = 5C+6H+N+8O;    {CH2(OH)CH(ONO2)CH(OO.)COCHO                                                                            2.NDK    }
+  G2A502s = 5C+6H+N+9O;    {CH2(OH)CH(ONO2)CH(OO.)COCO(OH)                                                                         2.ANK    }
+  G2G503m = 5C+6H+N+10O;   {CH2(OH)CH(ONO2)CH(OO.)COCO(OOH)                                                                        2.GNK    }
+  G2P502w = 5C+5H+2N+12O;  {CH2(OH)CH(ONO2)CH(OO.)COCO(OONO2)                                                                      2.PNK    }
+  G1H503s = 5C+10H+N+8O;   {CH2(OH)CH(ONO2)CH(OOH)CH(O.)CH2(OH)                                                                    1.HNO    }
+  G1H503X = 5C+9H+2N+10O;  {CH2(OH)CH(ONO2)CH(OOH)CH(O.)CH2(ONO2)                                                                  1.HNN    }
+  G1H508n = 5C+10H+N+9O;   {CH2(OH)CH(ONO2)CH(OOH)CH(O.)CH2(OOH)                                                                   1.HHN    }
+  G1H5089 = 5C+8H+N+8O;    {CH2(OH)CH(ONO2)CH(OOH)CH(O.)CHO                                                                        1.HND    }
+  G1A503Z = 5C+8H+N+9O;    {CH2(OH)CH(ONO2)CH(OOH)CH(O.)CO(OH)                                                                     1.AHN    }
+  G1G5039 = 5C+8H+N+10O;   {CH2(OH)CH(ONO2)CH(OOH)CH(O.)CO(OOH)                                                                    1.GHN    }
+  G1P503W = 5C+7H+2N+12O;  {CH2(OH)CH(ONO2)CH(OOH)CH(O.)CO(OONO2)                                                                  1.PHN    }
+  G1H504s = 5C+10H+N+8O;   {CH2(OH)CH(ONO2)CH(OOH)CH(OH)CH2(O.)                                                                    1.HNO    }
+  GHN503j = 5C+11H+N+8O;   {CH2(OH)CH(ONO2)CH(OOH)CH(OH)CH2(OH)                                                                    HNOOO    }
+  GHN502i = 5C+10H+2N+10O; {CH2(OH)CH(ONO2)CH(OOH)CH(OH)CH2(ONO2)                                                                  HNNOO    }
+  GHN506B = 5C+9H+N+8O;    {CH2(OH)CH(ONO2)CH(OOH)CH(OH)CHO                                                                        HNDOO    }
+  GAH503g = 5C+9H+N+9O;    {CH2(OH)CH(ONO2)CH(OOH)CH(OH)CO(OH)                                                                     AHNOO    }
+  G3H503Y = 5C+8H+N+10O;   {CH2(OH)CH(ONO2)CH(OOH)CH(OH)CO(OO.)                                                                    3.HNK    }
+  GGH503i = 5C+9H+N+10O;   {CH2(OH)CH(ONO2)CH(OOH)CH(OH)CO(OOH)                                                                    GHNOO    }
+  GPH503i = 5C+8H+2N+12O;  {CH2(OH)CH(ONO2)CH(OOH)CH(OH)CO(OONO2)                                                                  PHNOO    }
+  G1H508A = 5C+9H+2N+10O;  {CH2(OH)CH(ONO2)CH(OOH)CH(ONO2)CH2(O.)                                                                  1.HNN    }
+  GHN5053 = 5C+10H+2N+10O; {CH2(OH)CH(ONO2)CH(OOH)CH(ONO2)CH2(OH)                                                                  HNNOO    }
+  GHN504m = 5C+9H+3N+12O;  {CH2(OH)CH(ONO2)CH(OOH)CH(ONO2)CH2(ONO2)                                                                HNNNO    }
+  G2H5034 = 5C+9H+2N+11O;  {CH2(OH)CH(ONO2)CH(OOH)CH(ONO2)CH2(OO.)                                                                 2.HNN    }
+  GHH501n = 5C+10H+2N+11O; {CH2(OH)CH(ONO2)CH(OOH)CH(ONO2)CH2(OOH)                                                                 HHNNO    }
+  GHN505J = 5C+8H+2N+10O;  {CH2(OH)CH(ONO2)CH(OOH)CH(ONO2)CHO                                                                      HNNDO    }
+  GAH503B = 5C+8H+2N+11O;  {CH2(OH)CH(ONO2)CH(OOH)CH(ONO2)CO(OH)                                                                   AHNNO    }
+  G3H502O = 5C+7H+2N+12O;  {CH2(OH)CH(ONO2)CH(OOH)CH(ONO2)CO(OO.)                                                                  3.HNN    }
+  GGH502w = 5C+8H+2N+12O;  {CH2(OH)CH(ONO2)CH(OOH)CH(ONO2)CO(OOH)                                                                  GHNNO    }
+  GPH503H = 5C+7H+3N+14O;  {CH2(OH)CH(ONO2)CH(OOH)CH(ONO2)CO(OONO2)                                                                PHNNO    }
+  G2H501q = 5C+10H+N+9O;   {CH2(OH)CH(ONO2)CH(OOH)CH(OO.)CH2(OH)                                                                   2.HNO    }
+  G2H501i = 5C+9H+2N+11O;  {CH2(OH)CH(ONO2)CH(OOH)CH(OO.)CH2(ONO2)                                                                 2.HNN    }
+  G2H502u = 5C+8H+N+9O;    {CH2(OH)CH(ONO2)CH(OOH)CH(OO.)CHO                                                                       2.HND    }
+  G2A502p = 5C+8H+N+10O;   {CH2(OH)CH(ONO2)CH(OOH)CH(OO.)CO(OH)                                                                    2.AHN    }
+  G2G502G = 5C+8H+N+11O;   {CH2(OH)CH(ONO2)CH(OOH)CH(OO.)CO(OOH)                                                                   2.GHN    }
+  G2P502r = 5C+7H+2N+13O;  {CH2(OH)CH(ONO2)CH(OOH)CH(OO.)CO(OONO2)                                                                 2.PHN    }
+  G1H508C = 5C+10H+N+9O;   {CH2(OH)CH(ONO2)CH(OOH)CH(OOH)CH2(O.)                                                                   1.HHN    }
+  GHH5014 = 5C+11H+N+9O;   {CH2(OH)CH(ONO2)CH(OOH)CH(OOH)CH2(OH)                                                                   HHNOO    }
+  GHH501e = 5C+10H+2N+11O; {CH2(OH)CH(ONO2)CH(OOH)CH(OOH)CH2(ONO2)                                                                 HHNNO    }
+  GHH502N = 5C+9H+N+9O;    {CH2(OH)CH(ONO2)CH(OOH)CH(OOH)CHO                                                                       HHNDO    }
+  GAH503f = 5C+9H+N+10O;   {CH2(OH)CH(ONO2)CH(OOH)CH(OOH)CO(OH)                                                                    AHHNO    }
+  G3H503R = 5C+8H+N+11O;   {CH2(OH)CH(ONO2)CH(OOH)CH(OOH)CO(OO.)                                                                   3.HHN    }
+  GGH503h = 5C+9H+N+11O;   {CH2(OH)CH(ONO2)CH(OOH)CH(OOH)CO(OOH)                                                                   GHHNO    }
+  GPH503h = 5C+8H+2N+13O;  {CH2(OH)CH(ONO2)CH(OOH)CH(OOH)CO(OONO2)                                                                 PHHNO    }
+  G1H400U = 4C+8H+N+7O;    {CH2(OH)CH(ONO2)CH(OOH)CH2(O.)                                                                          1.HNO    }
+  GHN400e = 4C+9H+N+7O;    {CH2(OH)CH(ONO2)CH(OOH)CH2(OH)                                                                          HNOO     }
+  GHN400s = 4C+8H+2N+9O;   {CH2(OH)CH(ONO2)CH(OOH)CH2(ONO2)                                                                        HNNO     }
+  G2H400S = 4C+8H+N+8O;    {CH2(OH)CH(ONO2)CH(OOH)CH2(OO.)                                                                         2.HNO    }
+  GHH400O = 4C+9H+N+8O;    {CH2(OH)CH(ONO2)CH(OOH)CH2(OOH)                                                                         HHNO     }
+  G1H504D = 5C+10H+N+7O;   {CH2(OH)CH(ONO2)CH(OOH)CH2CH2(O.)                                                                       1.HNO    }
+  GHN502N = 5C+11H+N+7O;   {CH2(OH)CH(ONO2)CH(OOH)CH2CH2(OH)                                                                       HNOO     }
+  GHN502J = 5C+10H+2N+9O;  {CH2(OH)CH(ONO2)CH(OOH)CH2CH2(ONO2)                                                                     HNNO     }
+  GHN505D = 5C+9H+N+7O;    {CH2(OH)CH(ONO2)CH(OOH)CH2CHO                                                                           HNDO     }
+  GAH5026 = 5C+9H+N+8O;    {CH2(OH)CH(ONO2)CH(OOH)CH2CO(OH)                                                                        AHNO     }
+  G3H502E = 5C+8H+N+9O;    {CH2(OH)CH(ONO2)CH(OOH)CH2CO(OO.)                                                                       3.HNK    }
+  GGH502o = 5C+9H+N+9O;    {CH2(OH)CH(ONO2)CH(OOH)CH2CO(OOH)                                                                       GHNO     }
+  GPH5023 = 5C+8H+2N+11O;  {CH2(OH)CH(ONO2)CH(OOH)CH2CO(OONO2)                                                                     PHNO     }
+  GHN400h = 4C+7H+N+7O;    {CH2(OH)CH(ONO2)CH(OOH)CHO                                                                              HNDO     }
+  GAH400C = 4C+7H+N+8O;    {CH2(OH)CH(ONO2)CH(OOH)CO(OH)                                                                           AHNO     }
+  G3H400G = 4C+6H+N+9O;    {CH2(OH)CH(ONO2)CH(OOH)CO(OO.)                                                                          3.HNK    }
+  GGH400K = 4C+7H+N+9O;    {CH2(OH)CH(ONO2)CH(OOH)CO(OOH)                                                                          GHNO     }
+  GPH400D = 4C+6H+2N+11O;  {CH2(OH)CH(ONO2)CH(OOH)CO(OONO2)                                                                        PHNO     }
+  G1H504t = 5C+8H+N+8O;    {CH2(OH)CH(ONO2)CH(OOH)COCH2(O.)                                                                        1.HNK    }
+  GHN504E = 5C+9H+N+8O;    {CH2(OH)CH(ONO2)CH(OOH)COCH2(OH)                                                                        HNKOO    }
+  GHN502j = 5C+8H+2N+10O;  {CH2(OH)CH(ONO2)CH(OOH)COCH2(ONO2)                                                                      HNNKO    }
+  G2H503A = 5C+8H+N+9O;    {CH2(OH)CH(ONO2)CH(OOH)COCH2(OO.)                                                                       2.HNK    }
+  GHH501q = 5C+9H+N+9O;    {CH2(OH)CH(ONO2)CH(OOH)COCH2(OOH)                                                                       HHNKO    }
+  GHN505L = 5C+7H+N+8O;    {CH2(OH)CH(ONO2)CH(OOH)COCHO                                                                            HNDKO    }
+  GAH503G = 5C+7H+N+9O;    {CH2(OH)CH(ONO2)CH(OOH)COCO(OH)                                                                         AHNKO    }
+  G3H504X = 5C+6H+N+10O;   {CH2(OH)CH(ONO2)CH(OOH)COCO(OO.)                                                                        3.HNK    }
+  GGH5031 = 5C+7H+N+10O;   {CH2(OH)CH(ONO2)CH(OOH)COCO(OOH)                                                                        GHNKO    }
+  GPH503M = 5C+6H+2N+12O;  {CH2(OH)CH(ONO2)CH(OOH)COCO(OONO2)                                                                      PHNKO    }
+  G1N3008 = 3C+6H+N+5O;    {CH2(OH)CH(ONO2)CH2(O.)                                                                                 1.NO     }
+  GNO3004 = 3C+7H+N+5O;    {CH2(OH)CH(ONO2)CH2(OH)                                                                                 NOO      }
+  GNN3004 = 3C+6H+2N+7O;   {CH2(OH)CH(ONO2)CH2(ONO2)                                                                               NNO      }
+  G2N3008 = 3C+6H+N+6O;    {CH2(OH)CH(ONO2)CH2(OO.)                                                                                2.NO     }
+  GHN3009 = 3C+7H+N+6O;    {CH2(OH)CH(ONO2)CH2(OOH)                                                                                HNO      }
+  G1N500n = 5C+10H+N+6O;   {CH2(OH)CH(ONO2)CH2CH(O.)CH2(OH)                                                                        1.NOO    }
+  G1N501d = 5C+9H+2N+8O;   {CH2(OH)CH(ONO2)CH2CH(O.)CH2(ONO2)                                                                      1.NNO    }
+  G1H501X = 5C+10H+N+7O;   {CH2(OH)CH(ONO2)CH2CH(O.)CH2(OOH)                                                                       1.HNO    }
+  G1N502z = 5C+8H+N+6O;    {CH2(OH)CH(ONO2)CH2CH(O.)CHO                                                                            1.NDO    }
+  G1A5013 = 5C+8H+N+7O;    {CH2(OH)CH(ONO2)CH2CH(O.)CO(OH)                                                                         1.ANO    }
+  G1G5016 = 5C+8H+N+8O;    {CH2(OH)CH(ONO2)CH2CH(O.)CO(OOH)                                                                        1.GNO    }
+  G1P500w = 5C+7H+2N+10O;  {CH2(OH)CH(ONO2)CH2CH(O.)CO(OONO2)                                                                      1.PNO    }
+  G1N502E = 5C+10H+N+6O;   {CH2(OH)CH(ONO2)CH2CH(OH)CH2(O.)                                                                        1.NOO    }
+  GNN500R = 5C+10H+2N+8O;  {CH2(OH)CH(ONO2)CH2CH(OH)CH2(ONO2)                                                                      NNOO     }
+  G2N503D = 5C+10H+N+7O;   {CH2(OH)CH(ONO2)CH2CH(OH)CH2(OO.)                                                                       2.NOO    }
+  GHN501P = 5C+11H+N+7O;   {CH2(OH)CH(ONO2)CH2CH(OH)CH2(OOH)                                                                       HNOO     }
+  GND500l = 5C+9H+N+6O;    {CH2(OH)CH(ONO2)CH2CH(OH)CHO                                                                            NDOO     }
+  GAN501C = 5C+9H+N+7O;    {CH2(OH)CH(ONO2)CH2CH(OH)CO(OH)                                                                         ANOO     }
+  G3N5012 = 5C+8H+N+8O;    {CH2(OH)CH(ONO2)CH2CH(OH)CO(OO.)                                                                        3.NKO    }
+  GGN5017 = 5C+9H+N+8O;    {CH2(OH)CH(ONO2)CH2CH(OH)CO(OOH)                                                                        GNOO     }
+  GPN501E = 5C+8H+2N+10O;  {CH2(OH)CH(ONO2)CH2CH(OH)CO(OONO2)                                                                      PNOO     }
+  G1N5037 = 5C+9H+2N+8O;   {CH2(OH)CH(ONO2)CH2CH(ONO2)CH2(O.)                                                                      1.NNO    }
+  GNN500m = 5C+10H+2N+8O;  {CH2(OH)CH(ONO2)CH2CH(ONO2)CH2(OH)                                                                      NNOO     }
+  GNN500j = 5C+9H+3N+10O;  {CH2(OH)CH(ONO2)CH2CH(ONO2)CH2(ONO2)                                                                    NNNO     }
+  G2N5046 = 5C+9H+2N+9O;   {CH2(OH)CH(ONO2)CH2CH(ONO2)CH2(OO.)                                                                     2.NNO    }
+  GHN502H = 5C+10H+2N+9O;  {CH2(OH)CH(ONO2)CH2CH(ONO2)CH2(OOH)                                                                     HNNO     }
+  GNN501T = 5C+8H+2N+8O;   {CH2(OH)CH(ONO2)CH2CH(ONO2)CHO                                                                          NNDO     }
+  GAN501B = 5C+8H+2N+9O;   {CH2(OH)CH(ONO2)CH2CH(ONO2)CO(OH)                                                                       ANNO     }
+  G3N500m = 5C+7H+2N+10O;  {CH2(OH)CH(ONO2)CH2CH(ONO2)CO(OO.)                                                                      3.NNK    }
+  GGN5015 = 5C+8H+2N+10O;  {CH2(OH)CH(ONO2)CH2CH(ONO2)CO(OOH)                                                                      GNNO     }
+  GPN501D = 5C+7H+3N+12O;  {CH2(OH)CH(ONO2)CH2CH(ONO2)CO(OONO2)                                                                    PNNO     }
+  G2N500l = 5C+10H+N+7O;   {CH2(OH)CH(ONO2)CH2CH(OO.)CH2(OH)                                                                       2.NOO    }
+  G2N501Z = 5C+9H+2N+9O;   {CH2(OH)CH(ONO2)CH2CH(OO.)CH2(ONO2)                                                                     2.NNO    }
+  G2H500t = 5C+10H+N+8O;   {CH2(OH)CH(ONO2)CH2CH(OO.)CH2(OOH)                                                                      2.HNO    }
+  G2N502g = 5C+8H+N+7O;    {CH2(OH)CH(ONO2)CH2CH(OO.)CHO                                                                           2.NDO    }
+  G2A500v = 5C+8H+N+8O;    {CH2(OH)CH(ONO2)CH2CH(OO.)CO(OH)                                                                        2.ANO    }
+  G2G500t = 5C+8H+N+9O;    {CH2(OH)CH(ONO2)CH2CH(OO.)CO(OOH)                                                                       2.GNO    }
+  G2P500s = 5C+7H+2N+11O;  {CH2(OH)CH(ONO2)CH2CH(OO.)CO(OONO2)                                                                     2.PNO    }
+  G1H501z = 5C+10H+N+7O;   {CH2(OH)CH(ONO2)CH2CH(OOH)CH2(O.)                                                                       1.HNO    }
+  GHN500t = 5C+11H+N+7O;   {CH2(OH)CH(ONO2)CH2CH(OOH)CH2(OH)                                                                       HNOO     }
+  GHN500v = 5C+10H+2N+9O;  {CH2(OH)CH(ONO2)CH2CH(OOH)CH2(ONO2)                                                                     HNNO     }
+  G2H502H = 5C+10H+N+8O;   {CH2(OH)CH(ONO2)CH2CH(OOH)CH2(OO.)                                                                      2.HNO    }
+  GHH500p = 5C+11H+N+8O;   {CH2(OH)CH(ONO2)CH2CH(OOH)CH2(OOH)                                                                      HHNO     }
+  GHN503M = 5C+9H+N+7O;    {CH2(OH)CH(ONO2)CH2CH(OOH)CHO                                                                           HNDO     }
+  GAH501D = 5C+9H+N+8O;    {CH2(OH)CH(ONO2)CH2CH(OOH)CO(OH)                                                                        AHNO     }
+  G3H500s = 5C+8H+N+9O;    {CH2(OH)CH(ONO2)CH2CH(OOH)CO(OO.)                                                                       3.HNK    }
+  GGH501E = 5C+9H+N+9O;    {CH2(OH)CH(ONO2)CH2CH(OOH)CO(OOH)                                                                       GHNO     }
+  GPH5018 = 5C+8H+2N+11O;  {CH2(OH)CH(ONO2)CH2CH(OOH)CO(OONO2)                                                                     PHNO     }
+  G1N4003 = 4C+8H+N+5O;    {CH2(OH)CH(ONO2)CH2CH2(O.)                                                                              1.NO     }
+  GNN4004 = 4C+8H+2N+7O;   {CH2(OH)CH(ONO2)CH2CH2(ONO2)                                                                            NNO      }
+  G2N4003 = 4C+8H+N+6O;    {CH2(OH)CH(ONO2)CH2CH2(OO.)                                                                             2.NO     }
+  GHN4005 = 4C+9H+N+6O;    {CH2(OH)CH(ONO2)CH2CH2(OOH)                                                                             HNO      }
+  G1N500z = 5C+10H+N+5O;   {CH2(OH)CH(ONO2)CH2CH2CH2(O.)                                                                           1.NO     }
+  GNN500H = 5C+10H+2N+7O;  {CH2(OH)CH(ONO2)CH2CH2CH2(ONO2)                                                                         NNO      }
+  G2N500y = 5C+10H+N+6O;   {CH2(OH)CH(ONO2)CH2CH2CH2(OO.)                                                                          2.NO     }
+  GHN501K = 5C+11H+N+6O;   {CH2(OH)CH(ONO2)CH2CH2CH2(OOH)                                                                          HNO      }
+  GND500J = 5C+9H+N+5O;    {CH2(OH)CH(ONO2)CH2CH2CHO                                                                               NDO      }
+  GAN500O = 5C+9H+N+6O;    {CH2(OH)CH(ONO2)CH2CH2CO(OH)                                                                            ANO      }
+  G3N500L = 5C+8H+N+7O;    {CH2(OH)CH(ONO2)CH2CH2CO(OO.)                                                                           3.NKO    }
+  GGN500O = 5C+9H+N+7O;    {CH2(OH)CH(ONO2)CH2CH2CO(OOH)                                                                           GNO      }
+  GPN500O = 5C+8H+2N+9O;   {CH2(OH)CH(ONO2)CH2CH2CO(OONO2)                                                                         PNO      }
+  GND4002 = 4C+7H+N+5O;    {CH2(OH)CH(ONO2)CH2CHO                                                                                  NDO      }
+  GAN4003 = 4C+7H+N+6O;    {CH2(OH)CH(ONO2)CH2CO(OH)                                                                               ANO      }
+  G3N4003 = 4C+6H+N+7O;    {CH2(OH)CH(ONO2)CH2CO(OO.)                                                                              3.NKO    }
+  GGN4003 = 4C+7H+N+7O;    {CH2(OH)CH(ONO2)CH2CO(OOH)                                                                              GNO      }
+  GPN4003 = 4C+6H+2N+9O;   {CH2(OH)CH(ONO2)CH2CO(OONO2)                                                                            PNO      }
+  G1N501I = 5C+8H+N+6O;    {CH2(OH)CH(ONO2)CH2COCH2(O.)                                                                            1.NKO    }
+  GNN500T = 5C+8H+2N+8O;   {CH2(OH)CH(ONO2)CH2COCH2(ONO2)                                                                          NNKO     }
+  G2N501G = 5C+8H+N+7O;    {CH2(OH)CH(ONO2)CH2COCH2(OO.)                                                                           2.NKO    }
+  GHN501H = 5C+9H+N+7O;    {CH2(OH)CH(ONO2)CH2COCH2(OOH)                                                                           HNKO     }
+  GND500N = 5C+7H+N+6O;    {CH2(OH)CH(ONO2)CH2COCHO                                                                                NDKO     }
+  GAN501D = 5C+7H+N+7O;    {CH2(OH)CH(ONO2)CH2COCO(OH)                                                                             ANKO     }
+  G3N501u = 5C+6H+N+8O;    {CH2(OH)CH(ONO2)CH2COCO(OO.)                                                                            3.NKK    }
+  GGN5018 = 5C+7H+N+8O;    {CH2(OH)CH(ONO2)CH2COCO(OOH)                                                                            GNKO     }
+  GPN501F = 5C+6H+2N+10O;  {CH2(OH)CH(ONO2)CH2COCO(OONO2)                                                                          PNKO     }
+  GND3004 = 3C+5H+N+5O;    {CH2(OH)CH(ONO2)CHO                                                                                     NDO      }
+  GAN3002 = 3C+5H+N+6O;    {CH2(OH)CH(ONO2)CO(OH)                                                                                  ANO      }
+  G3N3004 = 3C+4H+N+7O;    {CH2(OH)CH(ONO2)CO(OO.)                                                                                 3.NKO    }
+  GGN3002 = 3C+5H+N+7O;    {CH2(OH)CH(ONO2)CO(OOH)                                                                                 GNO      }
+  GPN3002 = 3C+4H+2N+9O;   {CH2(OH)CH(ONO2)CO(OONO2)                                                                               PNO      }
+  G1N504T = 5C+8H+N+7O;    {CH2(OH)CH(ONO2)COCH(O.)CH2(OH)                                                                         1.NKO    }
+  G1N504W = 5C+7H+2N+9O;   {CH2(OH)CH(ONO2)COCH(O.)CH2(ONO2)                                                                       1.NNK    }
+  G1H505e = 5C+8H+N+8O;    {CH2(OH)CH(ONO2)COCH(O.)CH2(OOH)                                                                        1.HNK    }
+  G1N505i = 5C+6H+N+7O;    {CH2(OH)CH(ONO2)COCH(O.)CHO                                                                             1.NDK    }
+  G1A5037 = 5C+6H+N+8O;    {CH2(OH)CH(ONO2)COCH(O.)CO(OH)                                                                          1.ANK    }
+  G1G5032 = 5C+6H+N+9O;    {CH2(OH)CH(ONO2)COCH(O.)CO(OOH)                                                                         1.GNK    }
+  G1P502D = 5C+5H+2N+11O;  {CH2(OH)CH(ONO2)COCH(O.)CO(OONO2)                                                                       1.PNK    }
+  G1N504z = 5C+8H+N+7O;    {CH2(OH)CH(ONO2)COCH(OH)CH2(O.)                                                                         1.NKO    }
+  GNN501q = 5C+8H+2N+9O;   {CH2(OH)CH(ONO2)COCH(OH)CH2(ONO2)                                                                       NNKOO    }
+  G2N504g = 5C+8H+N+8O;    {CH2(OH)CH(ONO2)COCH(OH)CH2(OO.)                                                                        2.NKO    }
+  GHN505v = 5C+9H+N+8O;    {CH2(OH)CH(ONO2)COCH(OH)CH2(OOH)                                                                        HNKOO    }
+  GND501H = 5C+7H+N+7O;    {CH2(OH)CH(ONO2)COCH(OH)CHO                                                                             NDKOO    }
+  GAN502Z = 5C+7H+N+8O;    {CH2(OH)CH(ONO2)COCH(OH)CO(OH)                                                                          ANKOO    }
+  G3N5025 = 5C+6H+N+9O;    {CH2(OH)CH(ONO2)COCH(OH)CO(OO.)                                                                         3.NKK    }
+  GGN502O = 5C+7H+N+9O;    {CH2(OH)CH(ONO2)COCH(OH)CO(OOH)                                                                         GNKOO    }
+  GPN5026 = 5C+6H+2N+11O;  {CH2(OH)CH(ONO2)COCH(OH)CO(OONO2)                                                                       PNKOO    }
+  G1N506T = 5C+7H+2N+9O;   {CH2(OH)CH(ONO2)COCH(ONO2)CH2(O.)                                                                       1.NNK    }
+  GNN502r = 5C+8H+2N+9O;   {CH2(OH)CH(ONO2)COCH(ONO2)CH2(OH)                                                                       NNKOO    }
+  GNN502s = 5C+7H+3N+11O;  {CH2(OH)CH(ONO2)COCH(ONO2)CH2(ONO2)                                                                     NNNKO    }
+  G2N505x = 5C+7H+2N+10O;  {CH2(OH)CH(ONO2)COCH(ONO2)CH2(OO.)                                                                      2.NNK    }
+  GHN505u = 5C+8H+2N+10O;  {CH2(OH)CH(ONO2)COCH(ONO2)CH2(OOH)                                                                      HNNKO    }
+  GNN503F = 5C+6H+2N+9O;   {CH2(OH)CH(ONO2)COCH(ONO2)CHO                                                                           NNDKO    }
+  GAN501z = 5C+6H+2N+10O;  {CH2(OH)CH(ONO2)COCH(ONO2)CO(OH)                                                                        ANNKO    }
+  G3N502E = 5C+5H+2N+11O;  {CH2(OH)CH(ONO2)COCH(ONO2)CO(OO.)                                                                       3.NNK    }
+  GGN502Y = 5C+6H+2N+11O;  {CH2(OH)CH(ONO2)COCH(ONO2)CO(OOH)                                                                       GNNKO    }
+  GPN5025 = 5C+5H+3N+13O;  {CH2(OH)CH(ONO2)COCH(ONO2)CO(OONO2)                                                                     PNNKO    }
+  G2N5043 = 5C+8H+N+8O;    {CH2(OH)CH(ONO2)COCH(OO.)CH2(OH)                                                                        2.NKO    }
+  G2N5048 = 5C+7H+2N+10O;  {CH2(OH)CH(ONO2)COCH(OO.)CH2(ONO2)                                                                      2.NNK    }
+  G2H502D = 5C+8H+N+9O;    {CH2(OH)CH(ONO2)COCH(OO.)CH2(OOH)                                                                       2.HNK    }
+  G2N504c = 5C+6H+N+8O;    {CH2(OH)CH(ONO2)COCH(OO.)CHO                                                                            2.NDK    }
+  G2A502d = 5C+6H+N+9O;    {CH2(OH)CH(ONO2)COCH(OO.)CO(OH)                                                                         2.ANK    }
+  G2G502C = 5C+6H+N+10O;   {CH2(OH)CH(ONO2)COCH(OO.)CO(OOH)                                                                        2.GNK    }
+  G2P501r = 5C+5H+2N+12O;  {CH2(OH)CH(ONO2)COCH(OO.)CO(OONO2)                                                                      2.PNK    }
+  G1H5096 = 5C+8H+N+8O;    {CH2(OH)CH(ONO2)COCH(OOH)CH2(O.)                                                                        1.HNK    }
+  GHN505A = 5C+9H+N+8O;    {CH2(OH)CH(ONO2)COCH(OOH)CH2(OH)                                                                        HNKOO    }
+  GHN505E = 5C+8H+2N+10O;  {CH2(OH)CH(ONO2)COCH(OOH)CH2(ONO2)                                                                      HNNKO    }
+  GHH5027 = 5C+9H+N+9O;    {CH2(OH)CH(ONO2)COCH(OOH)CH2(OOH)                                                                       HHNKO    }
+  GHN505x = 5C+7H+N+8O;    {CH2(OH)CH(ONO2)COCH(OOH)CHO                                                                            HNDKO    }
+  GAH503U = 5C+7H+N+9O;    {CH2(OH)CH(ONO2)COCH(OOH)CO(OH)                                                                         AHNKO    }
+  G3H502z = 5C+6H+N+10O;   {CH2(OH)CH(ONO2)COCH(OOH)CO(OO.)                                                                        3.HNK    }
+  GGH503Z = 5C+7H+N+10O;   {CH2(OH)CH(ONO2)COCH(OOH)CO(OOH)                                                                        GHNKO    }
+  GPH502T = 5C+6H+2N+12O;  {CH2(OH)CH(ONO2)COCH(OOH)CO(OONO2)                                                                      PHNKO    }
+  G1N4018 = 4C+6H+N+6O;    {CH2(OH)CH(ONO2)COCH2(O.)                                                                               1.NKO    }
+  GNN400U = 4C+6H+2N+8O;   {CH2(OH)CH(ONO2)COCH2(ONO2)                                                                             NNKO     }
+  G2N400y = 4C+6H+N+7O;    {CH2(OH)CH(ONO2)COCH2(OO.)                                                                              2.NKO    }
+  GHN400t = 4C+7H+N+7O;    {CH2(OH)CH(ONO2)COCH2(OOH)                                                                              HNKO     }
+  G1N503T = 5C+8H+N+6O;    {CH2(OH)CH(ONO2)COCH2CH2(O.)                                                                            1.NKO    }
+  GNN501P = 5C+8H+2N+8O;   {CH2(OH)CH(ONO2)COCH2CH2(ONO2)                                                                          NNKO     }
+  G2N503A = 5C+8H+N+7O;    {CH2(OH)CH(ONO2)COCH2CH2(OO.)                                                                           2.NKO    }
+  GHN504C = 5C+9H+N+7O;    {CH2(OH)CH(ONO2)COCH2CH2(OOH)                                                                           HNKO     }
+  GND500x = 5C+7H+N+6O;    {CH2(OH)CH(ONO2)COCH2CHO                                                                                NDKO     }
+  GAN501Z = 5C+7H+N+7O;    {CH2(OH)CH(ONO2)COCH2CO(OH)                                                                             ANKO     }
+  G3N501H = 5C+6H+N+8O;    {CH2(OH)CH(ONO2)COCH2CO(OO.)                                                                            3.NKK    }
+  GGN501Z = 5C+7H+N+8O;    {CH2(OH)CH(ONO2)COCH2CO(OOH)                                                                            GNKO     }
+  GPN501b = 5C+6H+2N+10O;  {CH2(OH)CH(ONO2)COCH2CO(OONO2)                                                                          PNKO     }
+  GND400K = 4C+5H+N+6O;    {CH2(OH)CH(ONO2)COCHO                                                                                   NDKO     }
+  GAN400L = 4C+5H+N+7O;    {CH2(OH)CH(ONO2)COCO(OH)                                                                                ANKO     }
+  G3N400W = 4C+4H+N+8O;    {CH2(OH)CH(ONO2)COCO(OO.)                                                                               3.NKK    }
+  GGN400Y = 4C+5H+N+8O;    {CH2(OH)CH(ONO2)COCO(OOH)                                                                               GNKO     }
+  GPN400L = 4C+4H+2N+10O;  {CH2(OH)CH(ONO2)COCO(OONO2)                                                                             PNKO     }
+  G1N5041 = 5C+6H+N+7O;    {CH2(OH)CH(ONO2)COCOCH2(O.)                                                                             1.NKK    }
+  GNN501s = 5C+6H+2N+9O;   {CH2(OH)CH(ONO2)COCOCH2(ONO2)                                                                           NNKKO    }
+  G2N503Z = 5C+6H+N+8O;    {CH2(OH)CH(ONO2)COCOCH2(OO.)                                                                            2.NKK    }
+  GHN504Y = 5C+7H+N+8O;    {CH2(OH)CH(ONO2)COCOCH2(OOH)                                                                            HNKKO    }
+  GND5016 = 5C+5H+N+7O;    {CH2(OH)CH(ONO2)COCOCHO                                                                                 NDKKO    }
+  GAN5023 = 5C+5H+N+8O;    {CH2(OH)CH(ONO2)COCOCO(OH)                                                                              ANKKO    }
+  G3N502X = 5C+4H+N+9O;    {CH2(OH)CH(ONO2)COCOCO(OO.)                                                                             3.NKK    }
+  GGN502Z = 5C+5H+N+9O;    {CH2(OH)CH(ONO2)COCOCO(OOH)                                                                             GNKKO    }
+  GPN5027 = 5C+4H+2N+11O;  {CH2(OH)CH(ONO2)COCOCO(OONO2)                                                                           PNKKO    }
+  G2N502q = 5C+10H+N+8O;   {CH2(OH)CH(OO.)CH(OH)CH(OH)CH2(ONO2)                                                                    2.NOO    }
+  G2A502Y = 5C+9H+7O;      {CH2(OH)CH(OO.)CH(OH)CH(OH)CO(OH)                                                                       2.AOO    }
+  G2G501K = 5C+9H+8O;      {CH2(OH)CH(OO.)CH(OH)CH(OH)CO(OOH)                                                                      2.GOO    }
+  G2P501m = 5C+8H+N+10O;   {CH2(OH)CH(OO.)CH(OH)CH(OH)CO(OONO2)                                                                    2.POO    }
+  G2N503u = 5C+9H+2N+10O;  {CH2(OH)CH(OO.)CH(OH)CH(ONO2)CH2(ONO2)                                                                  2.NNO    }
+  G2H501y = 5C+10H+N+9O;   {CH2(OH)CH(OO.)CH(OH)CH(ONO2)CH2(OOH)                                                                   2.HNO    }
+  G2N504D = 5C+8H+N+8O;    {CH2(OH)CH(OO.)CH(OH)CH(ONO2)CHO                                                                        2.NDO    }
+  G2A502X = 5C+8H+N+9O;    {CH2(OH)CH(OO.)CH(OH)CH(ONO2)CO(OH)                                                                     2.ANO    }
+  G2G501s = 5C+8H+N+10O;   {CH2(OH)CH(OO.)CH(OH)CH(ONO2)CO(OOH)                                                                    2.GNO    }
+  G2P502d = 5C+7H+2N+12O;  {CH2(OH)CH(OO.)CH(OH)CH(ONO2)CO(OONO2)                                                                  2.PNO    }
+  G2H501C = 5C+10H+N+9O;   {CH2(OH)CH(OO.)CH(OH)CH(OOH)CH2(ONO2)                                                                   2.HNO    }
+  G2N400B = 4C+8H+N+7O;    {CH2(OH)CH(OO.)CH(OH)CH2(ONO2)                                                                          2.NOO    }
+  G2N501o = 5C+10H+N+7O;   {CH2(OH)CH(OO.)CH(OH)CH2CH2(ONO2)                                                                       2.NOO    }
+  G2A504a = 5C+9H+6O;      {CH2(OH)CH(OO.)CH(OH)CH2CO(OH)                                                                          2.AOO    }
+  G2G503e = 5C+9H+7O;      {CH2(OH)CH(OO.)CH(OH)CH2CO(OOH)                                                                         2.GOO    }
+  G2P504u = 5C+8H+N+9O;    {CH2(OH)CH(OO.)CH(OH)CH2CO(OONO2)                                                                       2.POO    }
+  G2D4002 = 4C+7H+5O;      {CH2(OH)CH(OO.)CH(OH)CHO                                                                                2.DOO    }
+  G2A400I = 4C+7H+6O;      {CH2(OH)CH(OO.)CH(OH)CO(OH)                                                                             2.AOO    }
+  G2G400C = 4C+7H+7O;      {CH2(OH)CH(OO.)CH(OH)CO(OOH)                                                                            2.GOO    }
+  G2P400K = 4C+6H+N+9O;    {CH2(OH)CH(OO.)CH(OH)CO(OONO2)                                                                          2.POO    }
+  G2N502v = 5C+8H+N+8O;    {CH2(OH)CH(OO.)CH(OH)COCH2(ONO2)                                                                        2.NKO    }
+  G2H501z = 5C+9H+7O;      {CH2(OH)CH(OO.)CH(OH)COCH2(OOH)                                                                         2.HKO    }
+  G2D500X = 5C+7H+6O;      {CH2(OH)CH(OO.)CH(OH)COCHO                                                                              2.DKO    }
+  G2A502Z = 5C+7H+7O;      {CH2(OH)CH(OO.)CH(OH)COCO(OH)                                                                           2.AKO    }
+  G2G501L = 5C+7H+8O;      {CH2(OH)CH(OO.)CH(OH)COCO(OOH)                                                                          2.GKO    }
+  G2P501n = 5C+6H+N+10O;   {CH2(OH)CH(OO.)CH(OH)COCO(OONO2)                                                                        2.PKO    }
+  G2N502T = 5C+9H+2N+10O;  {CH2(OH)CH(OO.)CH(ONO2)CH(OH)CH2(ONO2)                                                                  2.NNO    }
+  G2N505q = 5C+8H+N+8O;    {CH2(OH)CH(OO.)CH(ONO2)CH(OH)CHO                                                                        2.NDO    }
+  G2A504c = 5C+8H+N+9O;    {CH2(OH)CH(OO.)CH(ONO2)CH(OH)CO(OH)                                                                     2.ANO    }
+  G2G5048 = 5C+8H+N+10O;   {CH2(OH)CH(OO.)CH(ONO2)CH(OH)CO(OOH)                                                                    2.GNO    }
+  G2P504w = 5C+7H+2N+12O;  {CH2(OH)CH(OO.)CH(ONO2)CH(OH)CO(OONO2)                                                                  2.PNO    }
+  G2N502R = 5C+8H+3N+12O;  {CH2(OH)CH(OO.)CH(ONO2)CH(ONO2)CH2(ONO2)                                                                2.NNN    }
+  G2H503u = 5C+9H+2N+11O;  {CH2(OH)CH(OO.)CH(ONO2)CH(ONO2)CH2(OOH)                                                                 2.HNN    }
+  G2N505p = 5C+7H+2N+10O;  {CH2(OH)CH(OO.)CH(ONO2)CH(ONO2)CHO                                                                      2.NND    }
+  G2A501b = 5C+7H+2N+11O;  {CH2(OH)CH(OO.)CH(ONO2)CH(ONO2)CO(OH)                                                                   2.ANN    }
+  G2G5046 = 5C+7H+2N+12O;  {CH2(OH)CH(OO.)CH(ONO2)CH(ONO2)CO(OOH)                                                                  2.GNN    }
+  G2P501f = 5C+6H+3N+14O;  {CH2(OH)CH(OO.)CH(ONO2)CH(ONO2)CO(OONO2)                                                                2.PNN    }
+  G2H502w = 5C+9H+2N+11O;  {CH2(OH)CH(OO.)CH(ONO2)CH(OOH)CH2(ONO2)                                                                 2.HNN    }
+  G2H503L = 5C+8H+N+9O;    {CH2(OH)CH(OO.)CH(ONO2)CH(OOH)CHO                                                                       2.HND    }
+  G2A504b = 5C+8H+N+10O;   {CH2(OH)CH(OO.)CH(ONO2)CH(OOH)CO(OH)                                                                    2.AHN    }
+  G2G5047 = 5C+8H+N+11O;   {CH2(OH)CH(OO.)CH(ONO2)CH(OOH)CO(OOH)                                                                   2.GHN    }
+  G2P504v = 5C+7H+2N+13O;  {CH2(OH)CH(OO.)CH(ONO2)CH(OOH)CO(OONO2)                                                                 2.PHN    }
+  G2N400Y = 4C+7H+2N+9O;   {CH2(OH)CH(OO.)CH(ONO2)CH2(ONO2)                                                                        2.NNO    }
+  G2H401R = 4C+8H+N+8O;    {CH2(OH)CH(OO.)CH(ONO2)CH2(OOH)                                                                         2.HNO    }
+  G2N501m = 5C+9H+2N+9O;   {CH2(OH)CH(OO.)CH(ONO2)CH2CH2(ONO2)                                                                     2.NNO    }
+  G2N505Z = 5C+8H+N+7O;    {CH2(OH)CH(OO.)CH(ONO2)CH2CHO                                                                           2.NDO    }
+  G2A501R = 5C+8H+N+8O;    {CH2(OH)CH(OO.)CH(ONO2)CH2CO(OH)                                                                        2.ANO    }
+  G2G503d = 5C+8H+N+9O;    {CH2(OH)CH(OO.)CH(ONO2)CH2CO(OOH)                                                                       2.GNO    }
+  G2P501T = 5C+7H+2N+11O;  {CH2(OH)CH(OO.)CH(ONO2)CH2CO(OONO2)                                                                     2.PNO    }
+  G2N400r = 4C+6H+N+7O;    {CH2(OH)CH(OO.)CH(ONO2)CHO                                                                              2.NDO    }
+  G2A400Q = 4C+6H+N+8O;    {CH2(OH)CH(OO.)CH(ONO2)CO(OH)                                                                           2.ANO    }
+  G2G400g = 4C+6H+N+9O;    {CH2(OH)CH(OO.)CH(ONO2)CO(OOH)                                                                          2.GNO    }
+  G2P400S = 4C+5H+2N+11O;  {CH2(OH)CH(OO.)CH(ONO2)CO(OONO2)                                                                        2.PNO    }
+  G2N502U = 5C+7H+2N+10O;  {CH2(OH)CH(OO.)CH(ONO2)COCH2(ONO2)                                                                      2.NNK    }
+  G2N505r = 5C+6H+N+8O;    {CH2(OH)CH(OO.)CH(ONO2)COCHO                                                                            2.NDK    }
+  G2A501c = 5C+6H+N+9O;    {CH2(OH)CH(OO.)CH(ONO2)COCO(OH)                                                                         2.ANK    }
+  G2G5049 = 5C+6H+N+10O;   {CH2(OH)CH(OO.)CH(ONO2)COCO(OOH)                                                                        2.GNK    }
+  G2P501g = 5C+5H+2N+12O;  {CH2(OH)CH(OO.)CH(ONO2)COCO(OONO2)                                                                      2.PNK    }
+  G2H501p = 5C+9H+2N+11O;  {CH2(OH)CH(OO.)CH(OOH)CH(ONO2)CH2(ONO2)                                                                 2.HNN    }
+  G2H501s = 5C+10H+N+10O;  {CH2(OH)CH(OO.)CH(OOH)CH(ONO2)CH2(OOH)                                                                  2.HHN    }
+  G2H5025 = 5C+8H+N+9O;    {CH2(OH)CH(OO.)CH(OOH)CH(ONO2)CHO                                                                       2.HND    }
+  G2A502R = 5C+8H+N+10O;   {CH2(OH)CH(OO.)CH(OOH)CH(ONO2)CO(OH)                                                                    2.AHN    }
+  G2G501o = 5C+8H+N+11O;   {CH2(OH)CH(OO.)CH(OOH)CH(ONO2)CO(OOH)                                                                   2.GHN    }
+  G2P502Y = 5C+7H+2N+13O;  {CH2(OH)CH(OO.)CH(OOH)CH(ONO2)CO(OONO2)                                                                 2.PHN    }
+  G2H400Y = 4C+8H+N+8O;    {CH2(OH)CH(OO.)CH(OOH)CH2(ONO2)                                                                         2.HNO    }
+  G2H400Q = 4C+7H+6O;      {CH2(OH)CH(OO.)CH(OOH)CHO                                                                               2.HDO    }
+  G2A400s = 4C+7H+7O;      {CH2(OH)CH(OO.)CH(OOH)CO(OH)                                                                            2.AHO    }
+  G2H501G = 5C+8H+N+9O;    {CH2(OH)CH(OO.)CH(OOH)COCH2(ONO2)                                                                       2.HNK    }
+  G2H501v = 5C+9H+8O;      {CH2(OH)CH(OO.)CH(OOH)COCH2(OOH)                                                                        2.HHK    }
+  G2H5026 = 5C+7H+7O;      {CH2(OH)CH(OO.)CH(OOH)COCHO                                                                             2.HDK    }
+  G2A502T = 5C+7H+8O;      {CH2(OH)CH(OO.)CH(OOH)COCO(OH)                                                                          2.AHK    }
+  G2G501q = 5C+7H+9O;      {CH2(OH)CH(OO.)CH(OOH)COCO(OOH)                                                                         2.GHK    }
+  G2P502a = 5C+6H+N+11O;   {CH2(OH)CH(OO.)CH(OOH)COCO(OONO2)                                                                       2.PHK    }
+  G2O3004 = 3C+7H+4O;      {CH2(OH)CH(OO.)CH2(OH)                                                                                  2.OO     }
+  G2N3007 = 3C+6H+N+6O;    {CH2(OH)CH(OO.)CH2(ONO2)                                                                                2.NO     }
+  G2H3005 = 3C+7H+5O;      {CH2(OH)CH(OO.)CH2(OOH)                                                                                 2.HO     }
+  G2N500m = 5C+10H+N+7O;   {CH2(OH)CH(OO.)CH2CH(OH)CH2(ONO2)                                                                       2.NOO    }
+  G2A5013 = 5C+9H+6O;      {CH2(OH)CH(OO.)CH2CH(OH)CO(OH)                                                                          2.AOO    }
+  G2G500l = 5C+9H+7O;      {CH2(OH)CH(OO.)CH2CH(OH)CO(OOH)                                                                         2.GOO    }
+  G2P5015 = 5C+8H+N+9O;    {CH2(OH)CH(OO.)CH2CH(OH)CO(OONO2)                                                                       2.POO    }
+  G2N500k = 5C+9H+2N+9O;   {CH2(OH)CH(OO.)CH2CH(ONO2)CH2(ONO2)                                                                     2.NNO    }
+  G2H500i = 5C+10H+N+8O;   {CH2(OH)CH(OO.)CH2CH(ONO2)CH2(OOH)                                                                      2.HNO    }
+  G2N501r = 5C+8H+N+7O;    {CH2(OH)CH(OO.)CH2CH(ONO2)CHO                                                                           2.NDO    }
+  G2A5012 = 5C+8H+N+8O;    {CH2(OH)CH(OO.)CH2CH(ONO2)CO(OH)                                                                        2.ANO    }
+  G2G500k = 5C+8H+N+9O;    {CH2(OH)CH(OO.)CH2CH(ONO2)CO(OOH)                                                                       2.GNO    }
+  G2P5014 = 5C+7H+2N+11O;  {CH2(OH)CH(OO.)CH2CH(ONO2)CO(OONO2)                                                                     2.PNO    }
+  G2H500A = 5C+10H+N+8O;   {CH2(OH)CH(OO.)CH2CH(OOH)CH2(ONO2)                                                                      2.HNO    }
+  G2N4006 = 4C+8H+N+6O;    {CH2(OH)CH(OO.)CH2CH2(ONO2)                                                                             2.NO     }
+  G2H4005 = 4C+9H+5O;      {CH2(OH)CH(OO.)CH2CH2(OOH)                                                                              2.HO     }
+  G2N500I = 5C+10H+N+6O;   {CH2(OH)CH(OO.)CH2CH2CH2(ONO2)                                                                          2.NO     }
+  G2A502K = 5C+9H+5O;      {CH2(OH)CH(OO.)CH2CH2CO(OH)                                                                             2.AO     }
+  G2G501n = 5C+9H+6O;      {CH2(OH)CH(OO.)CH2CH2CO(OOH)                                                                            2.GO     }
+  G2P502R = 5C+8H+N+8O;    {CH2(OH)CH(OO.)CH2CH2CO(OONO2)                                                                          2.PO     }
+  G2D4001 = 4C+7H+4O;      {CH2(OH)CH(OO.)CH2CHO                                                                                   2.DO     }
+  G2A4007 = 4C+7H+5O;      {CH2(OH)CH(OO.)CH2CO(OH)                                                                                2.AO     }
+  G2G4006 = 4C+7H+6O;      {CH2(OH)CH(OO.)CH2CO(OOH)                                                                               2.GO     }
+  G2P4007 = 4C+6H+N+8O;    {CH2(OH)CH(OO.)CH2CO(OONO2)                                                                             2.PO     }
+  G2N500o = 5C+8H+N+7O;    {CH2(OH)CH(OO.)CH2COCH2(ONO2)                                                                           2.NKO    }
+  G2H500M = 5C+9H+6O;      {CH2(OH)CH(OO.)CH2COCH2(OOH)                                                                            2.HKO    }
+  G2D500F = 5C+7H+5O;      {CH2(OH)CH(OO.)CH2COCHO                                                                                 2.DKO    }
+  G2A5015 = 5C+7H+6O;      {CH2(OH)CH(OO.)CH2COCO(OH)                                                                              2.AKO    }
+  G2G500n = 5C+7H+7O;      {CH2(OH)CH(OO.)CH2COCO(OOH)                                                                             2.GKO    }
+  G2P5017 = 5C+6H+N+9O;    {CH2(OH)CH(OO.)CH2COCO(OONO2)                                                                           2.PKO    }
+  G2D3004 = 3C+5H+4O;      {CH2(OH)CH(OO.)CHO                                                                                      2.DO     }
+  G2A3002 = 3C+5H+5O;      {CH2(OH)CH(OO.)CO(OH)                                                                                   2.AO     }
+  G2G3002 = 3C+5H+6O;      {CH2(OH)CH(OO.)CO(OOH)                                                                                  2.GO     }
+  G2P3002 = 3C+4H+N+8O;    {CH2(OH)CH(OO.)CO(OONO2)                                                                                2.PO     }
+  G2N502r = 5C+8H+N+8O;    {CH2(OH)CH(OO.)COCH(OH)CH2(ONO2)                                                                        2.NKO    }
+  G2A505H = 5C+7H+7O;      {CH2(OH)CH(OO.)COCH(OH)CO(OH)                                                                           2.AKO    }
+  G2G504O = 5C+7H+8O;      {CH2(OH)CH(OO.)COCH(OH)CO(OOH)                                                                          2.GKO    }
+  G2P505k = 5C+6H+N+10O;   {CH2(OH)CH(OO.)COCH(OH)CO(OONO2)                                                                        2.PKO    }
+  G2N504b = 5C+7H+2N+10O;  {CH2(OH)CH(OO.)COCH(ONO2)CH2(ONO2)                                                                      2.NNK    }
+  G2H503s = 5C+8H+N+9O;    {CH2(OH)CH(OO.)COCH(ONO2)CH2(OOH)                                                                       2.HNK    }
+  G2N506Y = 5C+6H+N+8O;    {CH2(OH)CH(OO.)COCH(ONO2)CHO                                                                            2.NDK    }
+  G2A501p = 5C+6H+N+9O;    {CH2(OH)CH(OO.)COCH(ONO2)CO(OH)                                                                         2.ANK    }
+  G2G5054 = 5C+6H+N+10O;   {CH2(OH)CH(OO.)COCH(ONO2)CO(OOH)                                                                        2.GNK    }
+  G2P5021 = 5C+5H+2N+12O;  {CH2(OH)CH(OO.)COCH(ONO2)CO(OONO2)                                                                      2.PNK    }
+  G2H503W = 5C+8H+N+9O;    {CH2(OH)CH(OO.)COCH(OOH)CH2(ONO2)                                                                       2.HNK    }
+  G2A506h = 5C+7H+8O;      {CH2(OH)CH(OO.)COCH(OOH)CO(OH)                                                                          2.AHK    }
+  G2G505n = 5C+7H+9O;      {CH2(OH)CH(OO.)COCH(OOH)CO(OOH)                                                                         2.GHK    }
+  G2P507W = 5C+6H+N+11O;   {CH2(OH)CH(OO.)COCH(OOH)CO(OONO2)                                                                       2.PHK    }
+  G2N400h = 4C+6H+N+7O;    {CH2(OH)CH(OO.)COCH2(ONO2)                                                                              2.NKO    }
+  G2H4014 = 4C+7H+6O;      {CH2(OH)CH(OO.)COCH2(OOH)                                                                               2.HKO    }
+  G2N501p = 5C+8H+N+7O;    {CH2(OH)CH(OO.)COCH2CH2(ONO2)                                                                           2.NKO    }
+  G2A501f = 5C+7H+6O;      {CH2(OH)CH(OO.)COCH2CO(OH)                                                                              2.AKO    }
+  G2G503f = 5C+7H+7O;      {CH2(OH)CH(OO.)COCH2CO(OOH)                                                                             2.GKO    }
+  G2P501o = 5C+6H+N+9O;    {CH2(OH)CH(OO.)COCH2CO(OONO2)                                                                           2.PKO    }
+  G2D400G = 4C+5H+5O;      {CH2(OH)CH(OO.)COCHO                                                                                    2.DKO    }
+  G2A400W = 4C+5H+6O;      {CH2(OH)CH(OO.)COCO(OH)                                                                                 2.AKO    }
+  G2G400s = 4C+5H+7O;      {CH2(OH)CH(OO.)COCO(OOH)                                                                                2.GKO    }
+  G2P400Y = 4C+4H+N+9O;    {CH2(OH)CH(OO.)COCO(OONO2)                                                                              2.PKO    }
+  G2N502w = 5C+6H+N+8O;    {CH2(OH)CH(OO.)COCOCH2(ONO2)                                                                            2.NKK    }
+  G2H503y = 5C+7H+7O;      {CH2(OH)CH(OO.)COCOCH2(OOH)                                                                             2.HKK    }
+  G2D500p = 5C+5H+6O;      {CH2(OH)CH(OO.)COCOCHO                                                                                  2.DKK    }
+  G2A501q = 5C+5H+7O;      {CH2(OH)CH(OO.)COCOCO(OH)                                                                               2.AKK    }
+  G2G5055 = 5C+5H+8O;      {CH2(OH)CH(OO.)COCOCO(OOH)                                                                              2.GKK    }
+  G2P5022 = 5C+4H+N+10O;   {CH2(OH)CH(OO.)COCOCO(OONO2)                                                                            2.PKK    }
+  G1H505U = 5C+11H+6O;     {CH2(OH)CH(OOH)CH(O.)CH(OH)CH2(OH)                                                                      1.HOO    }
+  G1H505X = 5C+10H+N+8O;   {CH2(OH)CH(OOH)CH(O.)CH(OH)CH2(ONO2)                                                                    1.HNO    }
+  G1H506M = 5C+9H+6O;      {CH2(OH)CH(OOH)CH(O.)CH(OH)CHO                                                                          1.HDO    }
+  G1A506G = 5C+9H+7O;      {CH2(OH)CH(OOH)CH(O.)CH(OH)CO(OH)                                                                       1.AHO    }
+  G1G506G = 5C+9H+8O;      {CH2(OH)CH(OOH)CH(O.)CH(OH)CO(OOH)                                                                      1.GHO    }
+  G1P506o = 5C+8H+N+10O;   {CH2(OH)CH(OOH)CH(O.)CH(OH)CO(OONO2)                                                                    1.PHO    }
+  G1H505O = 5C+9H+2N+10O;  {CH2(OH)CH(OOH)CH(O.)CH(ONO2)CH2(ONO2)                                                                  1.HNN    }
+  G1H508o = 5C+10H+N+9O;   {CH2(OH)CH(OOH)CH(O.)CH(ONO2)CH2(OOH)                                                                   1.HHN    }
+  G1H5099 = 5C+8H+N+8O;    {CH2(OH)CH(OOH)CH(O.)CH(ONO2)CHO                                                                        1.HND    }
+  G1A505C = 5C+8H+N+9O;    {CH2(OH)CH(OOH)CH(O.)CH(ONO2)CO(OH)                                                                     1.AHN    }
+  G1G505C = 5C+8H+N+10O;   {CH2(OH)CH(OOH)CH(O.)CH(ONO2)CO(OOH)                                                                    1.GHN    }
+  G1P505Z = 5C+7H+2N+12O;  {CH2(OH)CH(OOH)CH(O.)CH(ONO2)CO(OONO2)                                                                  1.PHN    }
+  G1H505T = 5C+11H+7O;     {CH2(OH)CH(OOH)CH(O.)CH(OOH)CH2(OH)                                                                     1.HHO    }
+  G1H508L = 5C+10H+N+9O;   {CH2(OH)CH(OOH)CH(O.)CH(OOH)CH2(ONO2)                                                                   1.HHN    }
+  G1H50A2 = 5C+9H+7O;      {CH2(OH)CH(OOH)CH(O.)CH(OOH)CHO                                                                         1.HHD    }
+  G1A506F = 5C+9H+8O;      {CH2(OH)CH(OOH)CH(O.)CH(OOH)CO(OH)                                                                      1.AHH    }
+  G1G506F = 5C+9H+9O;      {CH2(OH)CH(OOH)CH(O.)CH(OOH)CO(OOH)                                                                     1.GHH    }
+  G1P506n = 5C+8H+N+11O;   {CH2(OH)CH(OOH)CH(O.)CH(OOH)CO(OONO2)                                                                   1.PHH    }
+  G1H401C = 4C+9H+5O;      {CH2(OH)CH(OOH)CH(O.)CH2(OH)                                                                            1.HOO    }
+  G1H401F = 4C+8H+N+7O;    {CH2(OH)CH(OOH)CH(O.)CH2(ONO2)                                                                          1.HNO    }
+  G1H401R = 4C+9H+6O;      {CH2(OH)CH(OOH)CH(O.)CH2(OOH)                                                                           1.HHO    }
+  G1H504H = 5C+11H+5O;     {CH2(OH)CH(OOH)CH(O.)CH2CH2(OH)                                                                         1.HOO    }
+  G1H504F = 5C+10H+N+7O;   {CH2(OH)CH(OOH)CH(O.)CH2CH2(ONO2)                                                                       1.HNO    }
+  G1H504K = 5C+9H+5O;      {CH2(OH)CH(OOH)CH(O.)CH2CHO                                                                             1.HDO    }
+  G1A504o = 5C+9H+6O;      {CH2(OH)CH(OOH)CH(O.)CH2CO(OH)                                                                          1.AHO    }
+  G1G5053 = 5C+9H+7O;      {CH2(OH)CH(OOH)CH(O.)CH2CO(OOH)                                                                         1.GHO    }
+  G1P504y = 5C+8H+N+9O;    {CH2(OH)CH(OOH)CH(O.)CH2CO(OONO2)                                                                       1.PHO    }
+  G1H400n = 4C+7H+5O;      {CH2(OH)CH(OOH)CH(O.)CHO                                                                                1.HDO    }
+  G1A4013 = 4C+7H+6O;      {CH2(OH)CH(OOH)CH(O.)CO(OH)                                                                             1.AHO    }
+  G1G400w = 4C+7H+7O;      {CH2(OH)CH(OOH)CH(O.)CO(OOH)                                                                            1.GHO    }
+  G1P4018 = 4C+6H+N+9O;    {CH2(OH)CH(OOH)CH(O.)CO(OONO2)                                                                          1.PHO    }
+  G1H505W = 5C+9H+6O;      {CH2(OH)CH(OOH)CH(O.)COCH2(OH)                                                                          1.HKO    }
+  G1H505Z = 5C+8H+N+8O;    {CH2(OH)CH(OOH)CH(O.)COCH2(ONO2)                                                                        1.HNK    }
+  G1H508s = 5C+9H+7O;      {CH2(OH)CH(OOH)CH(O.)COCH2(OOH)                                                                         1.HHK    }
+  G1H509B = 5C+7H+6O;      {CH2(OH)CH(OOH)CH(O.)COCHO                                                                              1.HDK    }
+  G1A505F = 5C+7H+7O;      {CH2(OH)CH(OOH)CH(O.)COCO(OH)                                                                           1.AHK    }
+  G1G505F = 5C+7H+8O;      {CH2(OH)CH(OOH)CH(O.)COCO(OOH)                                                                          1.GHK    }
+  G1P505a = 5C+6H+N+10O;   {CH2(OH)CH(OOH)CH(O.)COCO(OONO2)                                                                        1.PHK    }
+  G1H5028 = 5C+11H+6O;     {CH2(OH)CH(OOH)CH(OH)CH(O.)CH2(OH)                                                                      1.HOO    }
+  G1H503g = 5C+10H+N+8O;   {CH2(OH)CH(OOH)CH(OH)CH(O.)CH2(ONO2)                                                                    1.HNO    }
+  G1H508w = 5C+11H+7O;     {CH2(OH)CH(OOH)CH(OH)CH(O.)CH2(OOH)                                                                     1.HHO    }
+  G1H506L = 5C+9H+6O;      {CH2(OH)CH(OOH)CH(OH)CH(O.)CHO                                                                          1.HDO    }
+  G1A503k = 5C+9H+7O;      {CH2(OH)CH(OOH)CH(OH)CH(O.)CO(OH)                                                                       1.AHO    }
+  G1G503S = 5C+9H+8O;      {CH2(OH)CH(OOH)CH(OH)CH(O.)CO(OOH)                                                                      1.GHO    }
+  G1P503n = 5C+8H+N+10O;   {CH2(OH)CH(OOH)CH(OH)CH(O.)CO(OONO2)                                                                    1.PHO    }
+  G1H506c = 5C+11H+6O;     {CH2(OH)CH(OOH)CH(OH)CH(OH)CH2(O.)                                                                      1.HOO    }
+  GHN503k = 5C+11H+N+8O;   {CH2(OH)CH(OOH)CH(OH)CH(OH)CH2(ONO2)                                                                    HNOOO    }
+  GHD501C = 5C+10H+6O;     {CH2(OH)CH(OOH)CH(OH)CH(OH)CHO                                                                          HDOOO    }
+  GAH503P = 5C+10H+7O;     {CH2(OH)CH(OOH)CH(OH)CH(OH)CO(OH)                                                                       AHOOO    }
+  G3H503D = 5C+9H+8O;      {CH2(OH)CH(OOH)CH(OH)CH(OH)CO(OO.)                                                                      3.HKO    }
+  GGH5026 = 5C+10H+8O;     {CH2(OH)CH(OOH)CH(OH)CH(OH)CO(OOH)                                                                      GHOOO    }
+  GPH502O = 5C+9H+N+10O;   {CH2(OH)CH(OOH)CH(OH)CH(OH)CO(OONO2)                                                                    PHOOO    }
+  G1H508S = 5C+10H+N+8O;   {CH2(OH)CH(OOH)CH(OH)CH(ONO2)CH2(O.)                                                                    1.HNO    }
+  GHN504r = 5C+10H+2N+10O; {CH2(OH)CH(OOH)CH(OH)CH(ONO2)CH2(ONO2)                                                                  HNNOO    }
+  G2H503D = 5C+10H+N+9O;   {CH2(OH)CH(OOH)CH(OH)CH(ONO2)CH2(OO.)                                                                   2.HNO    }
+  GHH501t = 5C+11H+N+9O;   {CH2(OH)CH(OOH)CH(OH)CH(ONO2)CH2(OOH)                                                                   HHNOO    }
+  GHN505M = 5C+9H+N+8O;    {CH2(OH)CH(OOH)CH(OH)CH(ONO2)CHO                                                                        HNDOO    }
+  GAH503N = 5C+9H+N+9O;    {CH2(OH)CH(OOH)CH(OH)CH(ONO2)CO(OH)                                                                     AHNOO    }
+  G3H502S = 5C+8H+N+10O;   {CH2(OH)CH(OOH)CH(OH)CH(ONO2)CO(OO.)                                                                    3.HNK    }
+  GGH5037 = 5C+9H+N+10O;   {CH2(OH)CH(OOH)CH(OH)CH(ONO2)CO(OOH)                                                                    GHNOO    }
+  GPH503T = 5C+8H+2N+12O;  {CH2(OH)CH(OOH)CH(OH)CH(ONO2)CO(OONO2)                                                                  PHNOO    }
+  G2H501D = 5C+11H+7O;     {CH2(OH)CH(OOH)CH(OH)CH(OO.)CH2(OH)                                                                     2.HOO    }
+  G2H501m = 5C+10H+N+9O;   {CH2(OH)CH(OOH)CH(OH)CH(OO.)CH2(ONO2)                                                                   2.HNO    }
+  G2H502O = 5C+9H+7O;      {CH2(OH)CH(OOH)CH(OH)CH(OO.)CHO                                                                         2.HDO    }
+  G2A502w = 5C+9H+8O;      {CH2(OH)CH(OOH)CH(OH)CH(OO.)CO(OH)                                                                      2.AHO    }
+  G2G502Q = 5C+9H+9O;      {CH2(OH)CH(OOH)CH(OH)CH(OO.)CO(OOH)                                                                     2.GHO    }
+  G2P5031 = 5C+8H+N+11O;   {CH2(OH)CH(OOH)CH(OH)CH(OO.)CO(OONO2)                                                                   2.PHO    }
+  G1H506a = 5C+11H+7O;     {CH2(OH)CH(OOH)CH(OH)CH(OOH)CH2(O.)                                                                     1.HHO    }
+  GHH501A = 5C+12H+7O;     {CH2(OH)CH(OOH)CH(OH)CH(OOH)CH2(OH)                                                                     HHOOO    }
+  GHH5019 = 5C+11H+N+9O;   {CH2(OH)CH(OOH)CH(OH)CH(OOH)CH2(ONO2)                                                                   HHNOO    }
+  GHH502G = 5C+10H+7O;     {CH2(OH)CH(OOH)CH(OH)CH(OOH)CHO                                                                         HHDOO    }
+  GAH503n = 5C+10H+8O;     {CH2(OH)CH(OOH)CH(OH)CH(OOH)CO(OH)                                                                      AHHOO    }
+  G3H503C = 5C+9H+9O;      {CH2(OH)CH(OOH)CH(OH)CH(OOH)CO(OO.)                                                                     3.HHK    }
+  GGH503s = 5C+10H+9O;     {CH2(OH)CH(OOH)CH(OH)CH(OOH)CO(OOH)                                                                     GHHOO    }
+  GPH503p = 5C+9H+N+11O;   {CH2(OH)CH(OOH)CH(OH)CH(OOH)CO(OONO2)                                                                   PHHOO    }
+  G1H400A = 4C+9H+5O;      {CH2(OH)CH(OOH)CH(OH)CH2(O.)                                                                            1.HOO    }
+  GHN400F = 4C+9H+N+7O;    {CH2(OH)CH(OOH)CH(OH)CH2(ONO2)                                                                          HNOO     }
+  G2H400A = 4C+9H+6O;      {CH2(OH)CH(OOH)CH(OH)CH2(OO.)                                                                           2.HOO    }
+  GHH4006 = 4C+10H+6O;     {CH2(OH)CH(OOH)CH(OH)CH2(OOH)                                                                           HHOO     }
+  G1H504I = 5C+11H+5O;     {CH2(OH)CH(OOH)CH(OH)CH2CH2(O.)                                                                         1.HOO    }
+  GHN502O = 5C+11H+N+7O;   {CH2(OH)CH(OOH)CH(OH)CH2CH2(ONO2)                                                                       HNOO     }
+  GHD5011 = 5C+10H+5O;     {CH2(OH)CH(OOH)CH(OH)CH2CHO                                                                             HDOO     }
+  GAH502y = 5C+10H+6O;     {CH2(OH)CH(OOH)CH(OH)CH2CO(OH)                                                                          AHOO     }
+  G3H502G = 5C+9H+7O;      {CH2(OH)CH(OOH)CH(OH)CH2CO(OO.)                                                                         3.HKO    }
+  GGH502q = 5C+10H+7O;     {CH2(OH)CH(OOH)CH(OH)CH2CO(OOH)                                                                         GHOO     }
+  GPH5036 = 5C+9H+N+9O;    {CH2(OH)CH(OOH)CH(OH)CH2CO(OONO2)                                                                       PHOO     }
+  GHD4009 = 4C+8H+5O;      {CH2(OH)CH(OOH)CH(OH)CHO                                                                                HDOO     }
+  GAH400J = 4C+8H+6O;      {CH2(OH)CH(OOH)CH(OH)CO(OH)                                                                             AHOO     }
+  G3H400B = 4C+7H+7O;      {CH2(OH)CH(OOH)CH(OH)CO(OO.)                                                                            3.HKO    }
+  GGH400G = 4C+8H+7O;      {CH2(OH)CH(OOH)CH(OH)CO(OOH)                                                                            GHOO     }
+  GPH400L = 4C+7H+N+9O;    {CH2(OH)CH(OOH)CH(OH)CO(OONO2)                                                                          PHOO     }
+  G1H506j = 5C+9H+6O;      {CH2(OH)CH(OOH)CH(OH)COCH2(O.)                                                                          1.HKO    }
+  GHN503q = 5C+9H+N+8O;    {CH2(OH)CH(OOH)CH(OH)COCH2(ONO2)                                                                        HNKOO    }
+  GHH501u = 5C+10H+7O;     {CH2(OH)CH(OOH)CH(OH)COCH2(OOH)                                                                         HHKOO    }
+  GHD5015 = 5C+8H+6O;      {CH2(OH)CH(OOH)CH(OH)COCHO                                                                              HDKOO    }
+  GAH503Q = 5C+8H+7O;      {CH2(OH)CH(OOH)CH(OH)COCO(OH)                                                                           AHKOO    }
+  G3H5041 = 5C+7H+8O;      {CH2(OH)CH(OOH)CH(OH)COCO(OO.)                                                                          3.HKK    }
+  GGH5027 = 5C+8H+8O;      {CH2(OH)CH(OOH)CH(OH)COCO(OOH)                                                                          GHKOO    }
+  GPH502P = 5C+7H+N+10O;   {CH2(OH)CH(OOH)CH(OH)COCO(OONO2)                                                                        PHKOO    }
+  G1H501L = 5C+10H+N+8O;   {CH2(OH)CH(OOH)CH(ONO2)CH(O.)CH2(OH)                                                                    1.HNO    }
+  G1H503a = 5C+9H+2N+10O;  {CH2(OH)CH(OOH)CH(ONO2)CH(O.)CH2(ONO2)                                                                  1.HNN    }
+  G1H50BY = 5C+10H+N+9O;   {CH2(OH)CH(OOH)CH(ONO2)CH(O.)CH2(OOH)                                                                   1.HHN    }
+  G1H505S = 5C+8H+N+8O;    {CH2(OH)CH(OOH)CH(ONO2)CH(O.)CHO                                                                        1.HND    }
+  G1A502p = 5C+8H+N+9O;    {CH2(OH)CH(OOH)CH(ONO2)CH(O.)CO(OH)                                                                     1.AHN    }
+  G1G502w = 5C+8H+N+10O;   {CH2(OH)CH(OOH)CH(ONO2)CH(O.)CO(OOH)                                                                    1.GHN    }
+  G1P502z = 5C+7H+2N+12O;  {CH2(OH)CH(OOH)CH(ONO2)CH(O.)CO(OONO2)                                                                  1.PHN    }
+  G1H505Y = 5C+10H+N+8O;   {CH2(OH)CH(OOH)CH(ONO2)CH(OH)CH2(O.)                                                                    1.HNO    }
+  GHN5038 = 5C+10H+2N+10O; {CH2(OH)CH(OOH)CH(ONO2)CH(OH)CH2(ONO2)                                                                  HNNOO    }
+  GHN505m = 5C+9H+N+8O;    {CH2(OH)CH(OOH)CH(ONO2)CH(OH)CHO                                                                        HNDOO    }
+  GAH5036 = 5C+9H+N+9O;    {CH2(OH)CH(OOH)CH(ONO2)CH(OH)CO(OH)                                                                     AHNOO    }
+  G3H502q = 5C+8H+N+10O;   {CH2(OH)CH(OOH)CH(ONO2)CH(OH)CO(OO.)                                                                    3.HNK    }
+  GGH503R = 5C+9H+N+10O;   {CH2(OH)CH(OOH)CH(ONO2)CH(OH)CO(OOH)                                                                    GHNOO    }
+  GPH503A = 5C+8H+2N+12O;  {CH2(OH)CH(OOH)CH(ONO2)CH(OH)CO(OONO2)                                                                  PHNOO    }
+  G1H505P = 5C+9H+2N+10O;  {CH2(OH)CH(OOH)CH(ONO2)CH(ONO2)CH2(O.)                                                                  1.HNN    }
+  GHN5032 = 5C+9H+3N+12O;  {CH2(OH)CH(OOH)CH(ONO2)CH(ONO2)CH2(ONO2)                                                                HNNNO    }
+  G2H503v = 5C+9H+2N+11O;  {CH2(OH)CH(OOH)CH(ONO2)CH(ONO2)CH2(OO.)                                                                 2.HNN    }
+  GHH502r = 5C+10H+2N+11O; {CH2(OH)CH(OOH)CH(ONO2)CH(ONO2)CH2(OOH)                                                                 HHNNO    }
+  GHN505l = 5C+8H+2N+10O;  {CH2(OH)CH(OOH)CH(ONO2)CH(ONO2)CHO                                                                      HNNDO    }
+  GAH502G = 5C+8H+2N+11O;  {CH2(OH)CH(OOH)CH(ONO2)CH(ONO2)CO(OH)                                                                   AHNNO    }
+  G3H502o = 5C+7H+2N+12O;  {CH2(OH)CH(OOH)CH(ONO2)CH(ONO2)CO(OO.)                                                                  3.HNN    }
+  GGH503P = 5C+8H+2N+12O;  {CH2(OH)CH(OOH)CH(ONO2)CH(ONO2)CO(OOH)                                                                  GHNNO    }
+  GPH502F = 5C+7H+3N+14O;  {CH2(OH)CH(OOH)CH(ONO2)CH(ONO2)CO(OONO2)                                                                PHNNO    }
+  G2H500o = 5C+10H+N+9O;   {CH2(OH)CH(OOH)CH(ONO2)CH(OO.)CH2(OH)                                                                   2.HNO    }
+  G2H501j = 5C+9H+2N+11O;  {CH2(OH)CH(OOH)CH(ONO2)CH(OO.)CH2(ONO2)                                                                 2.HNN    }
+  G2H502B = 5C+8H+N+9O;    {CH2(OH)CH(OOH)CH(ONO2)CH(OO.)CHO                                                                       2.HND    }
+  G2A502P = 5C+8H+N+10O;   {CH2(OH)CH(OOH)CH(ONO2)CH(OO.)CO(OH)                                                                    2.AHN    }
+  G2G5029 = 5C+8H+N+11O;   {CH2(OH)CH(OOH)CH(ONO2)CH(OO.)CO(OOH)                                                                   2.GHN    }
+  G2P502T = 5C+7H+2N+13O;  {CH2(OH)CH(OOH)CH(ONO2)CH(OO.)CO(OONO2)                                                                 2.PHN    }
+  G1H508M = 5C+10H+N+9O;   {CH2(OH)CH(OOH)CH(ONO2)CH(OOH)CH2(O.)                                                                   1.HHN    }
+  GHH500k = 5C+11H+N+9O;   {CH2(OH)CH(OOH)CH(ONO2)CH(OOH)CH2(OH)                                                                   HHNOO    }
+  GHH501f = 5C+10H+2N+11O; {CH2(OH)CH(OOH)CH(ONO2)CH(OOH)CH2(ONO2)                                                                 HHNNO    }
+  GHH5025 = 5C+9H+N+9O;    {CH2(OH)CH(OOH)CH(ONO2)CH(OOH)CHO                                                                       HHNDO    }
+  GAH5035 = 5C+9H+N+10O;   {CH2(OH)CH(OOH)CH(ONO2)CH(OOH)CO(OH)                                                                    AHHNO    }
+  G3H502p = 5C+8H+N+11O;   {CH2(OH)CH(OOH)CH(ONO2)CH(OOH)CO(OO.)                                                                   3.HHN    }
+  GGH503Q = 5C+9H+N+11O;   {CH2(OH)CH(OOH)CH(ONO2)CH(OOH)CO(OOH)                                                                   GHHNO    }
+  GPH5039 = 5C+8H+2N+13O;  {CH2(OH)CH(OOH)CH(ONO2)CH(OOH)CO(OONO2)                                                                 PHHNO    }
+  G1H401G = 4C+8H+N+7O;    {CH2(OH)CH(OOH)CH(ONO2)CH2(O.)                                                                          1.HNO    }
+  GHN400m = 4C+8H+2N+9O;   {CH2(OH)CH(OOH)CH(ONO2)CH2(ONO2)                                                                        HNNO     }
+  G2H401E = 4C+8H+N+8O;    {CH2(OH)CH(OOH)CH(ONO2)CH2(OO.)                                                                         2.HNO    }
+  GHH400v = 4C+9H+N+8O;    {CH2(OH)CH(OOH)CH(ONO2)CH2(OOH)                                                                         HHNO     }
+  G1H504G = 5C+10H+N+7O;   {CH2(OH)CH(OOH)CH(ONO2)CH2CH2(O.)                                                                       1.HNO    }
+  GHN502L = 5C+10H+2N+9O;  {CH2(OH)CH(OOH)CH(ONO2)CH2CH2(ONO2)                                                                     HNNO     }
+  GHN505G = 5C+9H+N+7O;    {CH2(OH)CH(OOH)CH(ONO2)CH2CHO                                                                           HNDO     }
+  GAH5028 = 5C+9H+N+8O;    {CH2(OH)CH(OOH)CH(ONO2)CH2CO(OH)                                                                        AHNO     }
+  G3H502F = 5C+8H+N+9O;    {CH2(OH)CH(OOH)CH(ONO2)CH2CO(OO.)                                                                       3.HNK    }
+  GGH502p = 5C+9H+N+9O;    {CH2(OH)CH(OOH)CH(ONO2)CH2CO(OOH)                                                                       GHNO     }
+  GPH5025 = 5C+8H+2N+11O;  {CH2(OH)CH(OOH)CH(ONO2)CH2CO(OONO2)                                                                     PHNO     }
+  GHN400L = 4C+7H+N+7O;    {CH2(OH)CH(OOH)CH(ONO2)CHO                                                                              HNDO     }
+  GAH400U = 4C+7H+N+8O;    {CH2(OH)CH(OOH)CH(ONO2)CO(OH)                                                                           AHNO     }
+  G3H400K = 4C+6H+N+9O;    {CH2(OH)CH(OOH)CH(ONO2)CO(OO.)                                                                          3.HNK    }
+  GGH400T = 4C+7H+N+9O;    {CH2(OH)CH(OOH)CH(ONO2)CO(OOH)                                                                          GHNO     }
+  GPH400W = 4C+6H+2N+11O;  {CH2(OH)CH(OOH)CH(ONO2)CO(OONO2)                                                                        PHNO     }
+  G1H505a = 5C+8H+N+8O;    {CH2(OH)CH(OOH)CH(ONO2)COCH2(O.)                                                                        1.HNK    }
+  GHN5039 = 5C+8H+2N+10O;  {CH2(OH)CH(OOH)CH(ONO2)COCH2(ONO2)                                                                      HNNKO    }
+  GHN505n = 5C+7H+N+8O;    {CH2(OH)CH(OOH)CH(ONO2)COCHO                                                                            HNDKO    }
+  GAH502I = 5C+7H+N+9O;    {CH2(OH)CH(OOH)CH(ONO2)COCO(OH)                                                                         AHNKO    }
+  G3H503x = 5C+6H+N+10O;   {CH2(OH)CH(OOH)CH(ONO2)COCO(OO.)                                                                        3.HNK    }
+  GGH503S = 5C+7H+N+10O;   {CH2(OH)CH(OOH)CH(ONO2)COCO(OOH)                                                                        GHNKO    }
+  GPH502H = 5C+6H+2N+12O;  {CH2(OH)CH(OOH)CH(ONO2)COCO(OONO2)                                                                      PHNKO    }
+  G2H502P = 5C+9H+7O;      {CH2(OH)CH(OOH)CH(OO.)CH(OH)CHO                                                                         2.HDO    }
+  G2H502x = 5C+9H+2N+11O;  {CH2(OH)CH(OOH)CH(OO.)CH(ONO2)CH2(ONO2)                                                                 2.HNN    }
+  G2H5035 = 5C+10H+N+10O;  {CH2(OH)CH(OOH)CH(OO.)CH(ONO2)CH2(OOH)                                                                  2.HHN    }
+  G2H503G = 5C+8H+N+9O;    {CH2(OH)CH(OOH)CH(OO.)CH(ONO2)CHO                                                                       2.HND    }
+  G2A504h = 5C+8H+N+10O;   {CH2(OH)CH(OOH)CH(OO.)CH(ONO2)CO(OH)                                                                    2.AHN    }
+  G2G503k = 5C+8H+N+11O;   {CH2(OH)CH(OOH)CH(OO.)CH(ONO2)CO(OOH)                                                                   2.GHN    }
+  G2P5052 = 5C+7H+2N+13O;  {CH2(OH)CH(OOH)CH(OO.)CH(ONO2)CO(OONO2)                                                                 2.PHN    }
+  G2H4012 = 4C+9H+6O;      {CH2(OH)CH(OOH)CH(OO.)CH2(OH)                                                                           2.HOO    }
+  G2H4011 = 4C+8H+N+8O;    {CH2(OH)CH(OOH)CH(OO.)CH2(ONO2)                                                                         2.HNO    }
+  G2H5024 = 5C+9H+6O;      {CH2(OH)CH(OOH)CH(OO.)CH2CHO                                                                            2.HDO    }
+  G2A400t = 4C+7H+7O;      {CH2(OH)CH(OOH)CH(OO.)CO(OH)                                                                            2.AHO    }
+  G1H5025 = 5C+11H+7O;     {CH2(OH)CH(OOH)CH(OOH)CH(O.)CH2(OH)                                                                     1.HHO    }
+  G1H503d = 5C+10H+N+9O;   {CH2(OH)CH(OOH)CH(OOH)CH(O.)CH2(ONO2)                                                                   1.HHN    }
+  G1H508p = 5C+11H+8O;     {CH2(OH)CH(OOH)CH(OOH)CH(O.)CH2(OOH)                                                                    1.HHH    }
+  G1H506J = 5C+9H+7O;      {CH2(OH)CH(OOH)CH(OOH)CH(O.)CHO                                                                         1.HHD    }
+  G1A503i = 5C+9H+8O;      {CH2(OH)CH(OOH)CH(OOH)CH(O.)CO(OH)                                                                      1.AHH    }
+  G1G503Q = 5C+9H+9O;      {CH2(OH)CH(OOH)CH(OOH)CH(O.)CO(OOH)                                                                     1.GHH    }
+  G1P503l = 5C+8H+N+11O;   {CH2(OH)CH(OOH)CH(OOH)CH(O.)CO(OONO2)                                                                   1.PHH    }
+  G1H508Q = 5C+11H+7O;     {CH2(OH)CH(OOH)CH(OOH)CH(OH)CH2(O.)                                                                     1.HHO    }
+  GHH501i = 5C+11H+N+9O;   {CH2(OH)CH(OOH)CH(OOH)CH(OH)CH2(ONO2)                                                                   HHNOO    }
+  GHH502E = 5C+10H+7O;     {CH2(OH)CH(OOH)CH(OOH)CH(OH)CHO                                                                         HHDOO    }
+  GAH503l = 5C+10H+8O;     {CH2(OH)CH(OOH)CH(OOH)CH(OH)CO(OH)                                                                      AHHOO    }
+  G3H5039 = 5C+9H+9O;      {CH2(OH)CH(OOH)CH(OOH)CH(OH)CO(OO.)                                                                     3.HHK    }
+  GGH503p = 5C+10H+9O;     {CH2(OH)CH(OOH)CH(OOH)CH(OH)CO(OOH)                                                                     GHHOO    }
+  GPH503n = 5C+9H+N+11O;   {CH2(OH)CH(OOH)CH(OOH)CH(OH)CO(OONO2)                                                                   PHHOO    }
+  G1H508O = 5C+10H+N+9O;   {CH2(OH)CH(OOH)CH(OOH)CH(ONO2)CH2(O.)                                                                   1.HHN    }
+  GHH501g = 5C+10H+2N+11O; {CH2(OH)CH(OOH)CH(OOH)CH(ONO2)CH2(ONO2)                                                                 HHNNO    }
+  G2H5036 = 5C+10H+N+10O;  {CH2(OH)CH(OOH)CH(OOH)CH(ONO2)CH2(OO.)                                                                  2.HHN    }
+  GHH501o = 5C+11H+N+10O;  {CH2(OH)CH(OOH)CH(OOH)CH(ONO2)CH2(OOH)                                                                  HHHNO    }
+  GHH501y = 5C+9H+N+9O;    {CH2(OH)CH(OOH)CH(OOH)CH(ONO2)CHO                                                                       HHNDO    }
+  GAH503C = 5C+9H+N+10O;   {CH2(OH)CH(OOH)CH(OOH)CH(ONO2)CO(OH)                                                                    AHHNO    }
+  G3H502P = 5C+8H+N+11O;   {CH2(OH)CH(OOH)CH(OOH)CH(ONO2)CO(OO.)                                                                   3.HHN    }
+  GGH502x = 5C+9H+N+11O;   {CH2(OH)CH(OOH)CH(OOH)CH(ONO2)CO(OOH)                                                                   GHHNO    }
+  GPH503I = 5C+8H+2N+13O;  {CH2(OH)CH(OOH)CH(OOH)CH(ONO2)CO(OONO2)                                                                 PHHNO    }
+  G2H501B = 5C+11H+8O;     {CH2(OH)CH(OOH)CH(OOH)CH(OO.)CH2(OH)                                                                    2.HHO    }
+  G2H501l = 5C+10H+N+10O;  {CH2(OH)CH(OOH)CH(OOH)CH(OO.)CH2(ONO2)                                                                  2.HHN    }
+  G2H502N = 5C+9H+8O;      {CH2(OH)CH(OOH)CH(OOH)CH(OO.)CHO                                                                        2.HHD    }
+  G2A502u = 5C+9H+9O;      {CH2(OH)CH(OOH)CH(OOH)CH(OO.)CO(OH)                                                                     2.AHH    }
+  G2G502O = 5C+9H+10O;     {CH2(OH)CH(OOH)CH(OOH)CH(OO.)CO(OOH)                                                                    2.GHH    }
+  G2P502y = 5C+8H+N+12O;   {CH2(OH)CH(OOH)CH(OOH)CH(OO.)CO(OONO2)                                                                  2.PHH    }
+  G1H508P = 5C+11H+8O;     {CH2(OH)CH(OOH)CH(OOH)CH(OOH)CH2(O.)                                                                    1.HHH    }
+  GHH5015 = 5C+12H+8O;     {CH2(OH)CH(OOH)CH(OOH)CH(OOH)CH2(OH)                                                                    HHHOO    }
+  GHH501h = 5C+11H+N+10O;  {CH2(OH)CH(OOH)CH(OOH)CH(OOH)CH2(ONO2)                                                                  HHHNO    }
+  GHH502D = 5C+10H+8O;     {CH2(OH)CH(OOH)CH(OOH)CH(OOH)CHO                                                                        HHHDO    }
+  GAH503k = 5C+10H+9O;     {CH2(OH)CH(OOH)CH(OOH)CH(OOH)CO(OH)                                                                     AHHHO    }
+  G3H5038 = 5C+9H+10O;     {CH2(OH)CH(OOH)CH(OOH)CH(OOH)CO(OO.)                                                                    3.HHH    }
+  GGH503o = 5C+10H+10O;    {CH2(OH)CH(OOH)CH(OOH)CH(OOH)CO(OOH)                                                                    GHHHO    }
+  GPH503m = 5C+9H+N+12O;   {CH2(OH)CH(OOH)CH(OOH)CH(OOH)CO(OONO2)                                                                  PHHHO    }
+  G1H400a = 4C+9H+6O;      {CH2(OH)CH(OOH)CH(OOH)CH2(O.)                                                                           1.HHO    }
+  GHH400U = 4C+10H+6O;     {CH2(OH)CH(OOH)CH(OOH)CH2(OH)                                                                           HHOO     }
+  GHH400S = 4C+9H+N+8O;    {CH2(OH)CH(OOH)CH(OOH)CH2(ONO2)                                                                         HHNO     }
+  G2H400W = 4C+9H+7O;      {CH2(OH)CH(OOH)CH(OOH)CH2(OO.)                                                                          2.HHO    }
+  GHH400T = 4C+10H+7O;     {CH2(OH)CH(OOH)CH(OOH)CH2(OOH)                                                                          HHHO     }
+  GHH501x = 5C+10H+6O;     {CH2(OH)CH(OOH)CH(OOH)CH2CHO                                                                            HHDO     }
+  GAH502z = 5C+10H+7O;     {CH2(OH)CH(OOH)CH(OOH)CH2CO(OH)                                                                         AHHO     }
+  G3H502I = 5C+9H+8O;      {CH2(OH)CH(OOH)CH(OOH)CH2CO(OO.)                                                                        3.HHK    }
+  GGH502s = 5C+10H+8O;     {CH2(OH)CH(OOH)CH(OOH)CH2CO(OOH)                                                                        GHHO     }
+  GPH5037 = 5C+9H+N+10O;   {CH2(OH)CH(OOH)CH(OOH)CH2CO(OONO2)                                                                      PHHO     }
+  GHH4009 = 4C+8H+6O;      {CH2(OH)CH(OOH)CH(OOH)CHO                                                                               HHDO     }
+  GAH400a = 4C+8H+7O;      {CH2(OH)CH(OOH)CH(OOH)CO(OH)                                                                            AHHO     }
+  G3H400N = 4C+7H+8O;      {CH2(OH)CH(OOH)CH(OOH)CO(OO.)                                                                           3.HHK    }
+  GGH400Y = 4C+8H+8O;      {CH2(OH)CH(OOH)CH(OOH)CO(OOH)                                                                           GHHO     }
+  GPH400b = 4C+7H+N+10O;   {CH2(OH)CH(OOH)CH(OOH)CO(OONO2)                                                                         PHHO     }
+  G1H506h = 5C+9H+7O;      {CH2(OH)CH(OOH)CH(OOH)COCH2(O.)                                                                         1.HHK    }
+  GHH501B = 5C+9H+N+9O;    {CH2(OH)CH(OOH)CH(OOH)COCH2(ONO2)                                                                       HHNKO    }
+  GHH501r = 5C+10H+8O;     {CH2(OH)CH(OOH)CH(OOH)COCH2(OOH)                                                                        HHHKO    }
+  GHH501z = 5C+8H+7O;      {CH2(OH)CH(OOH)CH(OOH)COCHO                                                                             HHDKO    }
+  GAH503H = 5C+8H+8O;      {CH2(OH)CH(OOH)CH(OOH)COCO(OH)                                                                          AHHKO    }
+  G3H504a = 5C+7H+9O;      {CH2(OH)CH(OOH)CH(OOH)COCO(OO.)                                                                         3.HHK    }
+  GGH5032 = 5C+8H+9O;      {CH2(OH)CH(OOH)CH(OOH)COCO(OOH)                                                                         GHHKO    }
+  GPH503N = 5C+7H+N+11O;   {CH2(OH)CH(OOH)CH(OOH)COCO(OONO2)                                                                       PHHKO    }
+  G1H3005 = 3C+7H+4O;      {CH2(OH)CH(OOH)CH2(O.)                                                                                  1.HO     }
+  GHO3004 = 3C+8H+4O;      {CH2(OH)CH(OOH)CH2(OH)                                                                                  HOO      }
+  GHN3006 = 3C+7H+N+6O;    {CH2(OH)CH(OOH)CH2(ONO2)                                                                                HNO      }
+  G2H3004 = 3C+7H+5O;      {CH2(OH)CH(OOH)CH2(OO.)                                                                                 2.HO     }
+  GHH3003 = 3C+8H+5O;      {CH2(OH)CH(OOH)CH2(OOH)                                                                                 HHO      }
+  G1H500H = 5C+11H+5O;     {CH2(OH)CH(OOH)CH2CH(O.)CH2(OH)                                                                         1.HOO    }
+  G1H500l = 5C+10H+N+7O;   {CH2(OH)CH(OOH)CH2CH(O.)CH2(ONO2)                                                                       1.HNO    }
+  G1H504B = 5C+11H+6O;     {CH2(OH)CH(OOH)CH2CH(O.)CH2(OOH)                                                                        1.HHO    }
+  G1H501y = 5C+9H+5O;      {CH2(OH)CH(OOH)CH2CH(O.)CHO                                                                             1.HDO    }
+  G1A5016 = 5C+9H+6O;      {CH2(OH)CH(OOH)CH2CH(O.)CO(OH)                                                                          1.AHO    }
+  G1G5019 = 5C+9H+7O;      {CH2(OH)CH(OOH)CH2CH(O.)CO(OOH)                                                                         1.GHO    }
+  G1P5011 = 5C+8H+N+9O;    {CH2(OH)CH(OOH)CH2CH(O.)CO(OONO2)                                                                       1.PHO    }
+  G1H502B = 5C+11H+5O;     {CH2(OH)CH(OOH)CH2CH(OH)CH2(O.)                                                                         1.HOO    }
+  GHN5011 = 5C+11H+N+7O;   {CH2(OH)CH(OOH)CH2CH(OH)CH2(ONO2)                                                                       HNOO     }
+  GHH501N = 5C+12H+6O;     {CH2(OH)CH(OOH)CH2CH(OH)CH2(OOH)                                                                        HHOO     }
+  GHD500Y = 5C+10H+5O;     {CH2(OH)CH(OOH)CH2CH(OH)CHO                                                                             HDOO     }
+  GAH501I = 5C+10H+6O;     {CH2(OH)CH(OOH)CH2CH(OH)CO(OH)                                                                          AHOO     }
+  G3H5013 = 5C+9H+7O;      {CH2(OH)CH(OOH)CH2CH(OH)CO(OO.)                                                                         3.HKO    }
+  GGH5015 = 5C+10H+7O;     {CH2(OH)CH(OOH)CH2CH(OH)CO(OOH)                                                                         GHOO     }
+  GPH501H = 5C+9H+N+9O;    {CH2(OH)CH(OOH)CH2CH(OH)CO(OONO2)                                                                       PHOO     }
+  G1H501v = 5C+10H+N+7O;   {CH2(OH)CH(OOH)CH2CH(ONO2)CH2(O.)                                                                       1.HNO    }
+  GHN500s = 5C+10H+2N+9O;  {CH2(OH)CH(OOH)CH2CH(ONO2)CH2(ONO2)                                                                     HNNO     }
+  G2H5023 = 5C+10H+N+8O;   {CH2(OH)CH(OOH)CH2CH(ONO2)CH2(OO.)                                                                      2.HNO    }
+  GHH500f = 5C+11H+N+8O;   {CH2(OH)CH(OOH)CH2CH(ONO2)CH2(OOH)                                                                      HHNO     }
+  GHN502S = 5C+9H+N+7O;    {CH2(OH)CH(OOH)CH2CH(ONO2)CHO                                                                           HNDO     }
+  GAH501G = 5C+9H+N+8O;    {CH2(OH)CH(OOH)CH2CH(ONO2)CO(OH)                                                                        AHNO     }
+  G3H500j = 5C+8H+N+9O;    {CH2(OH)CH(OOH)CH2CH(ONO2)CO(OO.)                                                                       3.HNK    }
+  GGH5013 = 5C+9H+N+9O;    {CH2(OH)CH(OOH)CH2CH(ONO2)CO(OOH)                                                                       GHNO     }
+  GPH501F = 5C+8H+2N+11O;  {CH2(OH)CH(OOH)CH2CH(ONO2)CO(OONO2)                                                                     PHNO     }
+  G2H500C = 5C+11H+6O;     {CH2(OH)CH(OOH)CH2CH(OO.)CH2(OH)                                                                        2.HOO    }
+  G2H500Y = 5C+10H+N+8O;   {CH2(OH)CH(OOH)CH2CH(OO.)CH2(ONO2)                                                                      2.HNO    }
+  G2H5019 = 5C+9H+6O;      {CH2(OH)CH(OOH)CH2CH(OO.)CHO                                                                            2.HDO    }
+  G2A500x = 5C+9H+7O;      {CH2(OH)CH(OOH)CH2CH(OO.)CO(OH)                                                                         2.AHO    }
+  G2G500w = 5C+9H+8O;      {CH2(OH)CH(OOH)CH2CH(OO.)CO(OOH)                                                                        2.GHO    }
+  G2P500v = 5C+8H+N+10O;   {CH2(OH)CH(OOH)CH2CH(OO.)CO(OONO2)                                                                      2.PHO    }
+  G1H5021 = 5C+11H+6O;     {CH2(OH)CH(OOH)CH2CH(OOH)CH2(O.)                                                                        1.HHO    }
+  GHH500C = 5C+12H+6O;     {CH2(OH)CH(OOH)CH2CH(OOH)CH2(OH)                                                                        HHOO     }
+  GHH500A = 5C+11H+N+8O;   {CH2(OH)CH(OOH)CH2CH(OOH)CH2(ONO2)                                                                      HHNO     }
+  GHH5011 = 5C+10H+6O;     {CH2(OH)CH(OOH)CH2CH(OOH)CHO                                                                            HHDO     }
+  GAH501H = 5C+10H+7O;     {CH2(OH)CH(OOH)CH2CH(OOH)CO(OH)                                                                         AHHO     }
+  G3H5012 = 5C+9H+8O;      {CH2(OH)CH(OOH)CH2CH(OOH)CO(OO.)                                                                        3.HHK    }
+  GGH501K = 5C+10H+8O;     {CH2(OH)CH(OOH)CH2CH(OOH)CO(OOH)                                                                        GHHO     }
+  GPH501G = 5C+9H+N+10O;   {CH2(OH)CH(OOH)CH2CH(OOH)CO(OONO2)                                                                      PHHO     }
+  G1H4002 = 4C+9H+4O;      {CH2(OH)CH(OOH)CH2CH2(O.)                                                                               1.HO     }
+  GHN4007 = 4C+9H+N+6O;    {CH2(OH)CH(OOH)CH2CH2(ONO2)                                                                             HNO      }
+  G2H4002 = 4C+9H+5O;      {CH2(OH)CH(OOH)CH2CH2(OO.)                                                                              2.HO     }
+  GHH4002 = 4C+10H+5O;     {CH2(OH)CH(OOH)CH2CH2(OOH)                                                                              HHO      }
+  G1H5013 = 5C+11H+4O;     {CH2(OH)CH(OOH)CH2CH2CH2(O.)                                                                            1.HO     }
+  GHN500Q = 5C+11H+N+6O;   {CH2(OH)CH(OOH)CH2CH2CH2(ONO2)                                                                          HNO      }
+  GHD500L = 5C+10H+4O;     {CH2(OH)CH(OOH)CH2CH2CHO                                                                                HDO      }
+  GAH500q = 5C+10H+5O;     {CH2(OH)CH(OOH)CH2CH2CO(OH)                                                                             AHO      }
+  G3H500a = 5C+9H+6O;      {CH2(OH)CH(OOH)CH2CH2CO(OO.)                                                                            3.HKO    }
+  GGH500m = 5C+10H+6O;     {CH2(OH)CH(OOH)CH2CH2CO(OOH)                                                                            GHO      }
+  GPH500s = 5C+9H+N+8O;    {CH2(OH)CH(OOH)CH2CH2CO(OONO2)                                                                          PHO      }
+  GHD4000 = 4C+8H+4O;      {CH2(OH)CH(OOH)CH2CHO                                                                                   HDO      }
+  GAH4007 = 4C+8H+5O;      {CH2(OH)CH(OOH)CH2CO(OH)                                                                                AHO      }
+  G3H4003 = 4C+7H+6O;      {CH2(OH)CH(OOH)CH2CO(OO.)                                                                               3.HKO    }
+  GGH4006 = 4C+8H+6O;      {CH2(OH)CH(OOH)CH2CO(OOH)                                                                               GHO      }
+  GPH4007 = 4C+7H+N+8O;    {CH2(OH)CH(OOH)CH2CO(OONO2)                                                                             PHO      }
+  G1H502E = 5C+9H+5O;      {CH2(OH)CH(OOH)CH2COCH2(O.)                                                                             1.HKO    }
+  GHN5013 = 5C+9H+N+7O;    {CH2(OH)CH(OOH)CH2COCH2(ONO2)                                                                           HNKO     }
+  GHH500K = 5C+10H+6O;     {CH2(OH)CH(OOH)CH2COCH2(OOH)                                                                            HHKO     }
+  GHD500S = 5C+8H+5O;      {CH2(OH)CH(OOH)CH2COCHO                                                                                 HDKO     }
+  GAH501J = 5C+8H+6O;      {CH2(OH)CH(OOH)CH2COCO(OH)                                                                              AHKO     }
+  G3H502Y = 5C+7H+7O;      {CH2(OH)CH(OOH)CH2COCO(OO.)                                                                             3.HKK    }
+  GGH5016 = 5C+8H+7O;      {CH2(OH)CH(OOH)CH2COCO(OOH)                                                                             GHKO     }
+  GPH501I = 5C+7H+N+9O;    {CH2(OH)CH(OOH)CH2COCO(OONO2)                                                                           PHKO     }
+  GHD3003 = 3C+6H+4O;      {CH2(OH)CH(OOH)CHO                                                                                      HDO      }
+  GAH3002 = 3C+6H+5O;      {CH2(OH)CH(OOH)CO(OH)                                                                                   AHO      }
+  G3H3004 = 3C+5H+6O;      {CH2(OH)CH(OOH)CO(OO.)                                                                                  3.HKO    }
+  GGH3002 = 3C+6H+6O;      {CH2(OH)CH(OOH)CO(OOH)                                                                                  GHO      }
+  GPH3002 = 3C+5H+N+8O;    {CH2(OH)CH(OOH)CO(OONO2)                                                                                PHO      }
+  G1H508z = 5C+9H+6O;      {CH2(OH)CH(OOH)COCH(O.)CH2(OH)                                                                          1.HKO    }
+  G1H50AD = 5C+8H+N+8O;    {CH2(OH)CH(OOH)COCH(O.)CH2(ONO2)                                                                        1.HNK    }
+  G1H50BX = 5C+9H+7O;      {CH2(OH)CH(OOH)COCH(O.)CH2(OOH)                                                                         1.HHK    }
+  G1H50Bk = 5C+7H+6O;      {CH2(OH)CH(OOH)COCH(O.)CHO                                                                              1.HDK    }
+  G1A505U = 5C+7H+7O;      {CH2(OH)CH(OOH)COCH(O.)CO(OH)                                                                           1.AHK    }
+  G1G507N = 5C+7H+8O;      {CH2(OH)CH(OOH)COCH(O.)CO(OOH)                                                                          1.GHK    }
+  G1P5066 = 5C+6H+N+10O;   {CH2(OH)CH(OOH)COCH(O.)CO(OONO2)                                                                        1.PHK    }
+  G1H506d = 5C+9H+6O;      {CH2(OH)CH(OOH)COCH(OH)CH2(O.)                                                                          1.HKO    }
+  GHN503l = 5C+9H+N+8O;    {CH2(OH)CH(OOH)COCH(OH)CH2(ONO2)                                                                        HNKOO    }
+  GHD501E = 5C+8H+6O;      {CH2(OH)CH(OOH)COCH(OH)CHO                                                                              HDKOO    }
+  GAH5049 = 5C+8H+7O;      {CH2(OH)CH(OOH)COCH(OH)CO(OH)                                                                           AHKOO    }
+  G3H503G = 5C+7H+8O;      {CH2(OH)CH(OOH)COCH(OH)CO(OO.)                                                                          3.HKK    }
+  GGH503w = 5C+8H+8O;      {CH2(OH)CH(OOH)COCH(OH)CO(OOH)                                                                          GHKOO    }
+  GPH504G = 5C+7H+N+10O;   {CH2(OH)CH(OOH)COCH(OH)CO(OONO2)                                                                        PHKOO    }
+  G1H50AE = 5C+8H+N+8O;    {CH2(OH)CH(OOH)COCH(ONO2)CH2(O.)                                                                        1.HNK    }
+  GHN505w = 5C+8H+2N+10O;  {CH2(OH)CH(OOH)COCH(ONO2)CH2(ONO2)                                                                      HNNKO    }
+  G2H503t = 5C+8H+N+9O;    {CH2(OH)CH(OOH)COCH(ONO2)CH2(OO.)                                                                       2.HNK    }
+  GHH502q = 5C+9H+N+9O;    {CH2(OH)CH(OOH)COCH(ONO2)CH2(OOH)                                                                       HHNKO    }
+  GHN506h = 5C+7H+N+8O;    {CH2(OH)CH(OOH)COCH(ONO2)CHO                                                                            HNDKO    }
+  GAH502T = 5C+7H+N+9O;    {CH2(OH)CH(OOH)COCH(ONO2)CO(OH)                                                                         AHNKO    }
+  G3H5044 = 5C+6H+N+10O;   {CH2(OH)CH(OOH)COCH(ONO2)CO(OO.)                                                                        3.HNK    }
+  GGH504i = 5C+7H+N+10O;   {CH2(OH)CH(OOH)COCH(ONO2)CO(OOH)                                                                        GHNKO    }
+  GPH502b = 5C+6H+2N+12O;  {CH2(OH)CH(OOH)COCH(ONO2)CO(OONO2)                                                                      PHNKO    }
+  G2H503U = 5C+9H+7O;      {CH2(OH)CH(OOH)COCH(OO.)CH2(OH)                                                                         2.HKO    }
+  G2H503X = 5C+8H+N+9O;    {CH2(OH)CH(OOH)COCH(OO.)CH2(ONO2)                                                                       2.HNK    }
+  G2A506i = 5C+7H+8O;      {CH2(OH)CH(OOH)COCH(OO.)CO(OH)                                                                          2.AHK    }
+  G2G505o = 5C+7H+9O;      {CH2(OH)CH(OOH)COCH(OO.)CO(OOH)                                                                         2.GHK    }
+  G2P507X = 5C+6H+N+11O;   {CH2(OH)CH(OOH)COCH(OO.)CO(OONO2)                                                                       2.PHK    }
+  G1H50Ak = 5C+9H+7O;      {CH2(OH)CH(OOH)COCH(OOH)CH2(O.)                                                                         1.HHK    }
+  GHH502O = 5C+10H+7O;     {CH2(OH)CH(OOH)COCH(OOH)CH2(OH)                                                                         HHKOO    }
+  GHH502Q = 5C+9H+N+9O;    {CH2(OH)CH(OOH)COCH(OOH)CH2(ONO2)                                                                       HHNKO    }
+  GHH502z = 5C+8H+7O;      {CH2(OH)CH(OOH)COCH(OOH)CHO                                                                             HHDKO    }
+  GAH505J = 5C+8H+8O;      {CH2(OH)CH(OOH)COCH(OOH)CO(OH)                                                                          AHHKO    }
+  G3H504v = 5C+7H+9O;      {CH2(OH)CH(OOH)COCH(OOH)CO(OO.)                                                                         3.HHK    }
+  GGH505J = 5C+8H+9O;      {CH2(OH)CH(OOH)COCH(OOH)CO(OOH)                                                                         GHHKO    }
+  GPH505Q = 5C+7H+N+11O;   {CH2(OH)CH(OOH)COCH(OOH)CO(OONO2)                                                                       PHHKO    }
+  G1H401T = 4C+7H+5O;      {CH2(OH)CH(OOH)COCH2(O.)                                                                                1.HKO    }
+  GHN400u = 4C+7H+N+7O;    {CH2(OH)CH(OOH)COCH2(ONO2)                                                                              HNKO     }
+  G2H4015 = 4C+7H+6O;      {CH2(OH)CH(OOH)COCH2(OO.)                                                                               2.HKO    }
+  GHH400Y = 4C+8H+6O;      {CH2(OH)CH(OOH)COCH2(OOH)                                                                               HHKO     }
+  G1H504J = 5C+9H+5O;      {CH2(OH)CH(OOH)COCH2CH2(O.)                                                                             1.HKO    }
+  GHN502P = 5C+9H+N+7O;    {CH2(OH)CH(OOH)COCH2CH2(ONO2)                                                                           HNKO     }
+  GHD5012 = 5C+8H+5O;      {CH2(OH)CH(OOH)COCH2CHO                                                                                 HDKO     }
+  GAH502L = 5C+8H+6O;      {CH2(OH)CH(OOH)COCH2CO(OH)                                                                              AHKO     }
+  G3H502H = 5C+7H+7O;      {CH2(OH)CH(OOH)COCH2CO(OO.)                                                                             3.HKK    }
+  GGH502r = 5C+8H+7O;      {CH2(OH)CH(OOH)COCH2CO(OOH)                                                                             GHKO     }
+  GPH502Q = 5C+7H+N+9O;    {CH2(OH)CH(OOH)COCH2CO(OONO2)                                                                           PHKO     }
+  GHD400M = 4C+6H+5O;      {CH2(OH)CH(OOH)COCHO                                                                                    HDKO     }
+  GAH400c = 4C+6H+6O;      {CH2(OH)CH(OOH)COCO(OH)                                                                                 AHKO     }
+  G3H400s = 4C+5H+7O;      {CH2(OH)CH(OOH)COCO(OO.)                                                                                3.HKK    }
+  GGH400j = 4C+6H+7O;      {CH2(OH)CH(OOH)COCO(OOH)                                                                                GHKO     }
+  GPH400d = 4C+5H+N+9O;    {CH2(OH)CH(OOH)COCO(OONO2)                                                                              PHKO     }
+  G1H506k = 5C+7H+6O;      {CH2(OH)CH(OOH)COCOCH2(O.)                                                                              1.HKK    }
+  GHN503r = 5C+7H+N+8O;    {CH2(OH)CH(OOH)COCOCH2(ONO2)                                                                            HNKKO    }
+  G2H503z = 5C+7H+7O;      {CH2(OH)CH(OOH)COCOCH2(OO.)                                                                             2.HKK    }
+  GHH502t = 5C+8H+7O;      {CH2(OH)CH(OOH)COCOCH2(OOH)                                                                             HHKKO    }
+  GHD501N = 5C+6H+6O;      {CH2(OH)CH(OOH)COCOCHO                                                                                  HDKKO    }
+  GAH502W = 5C+6H+7O;      {CH2(OH)CH(OOH)COCOCO(OH)                                                                               AHKKO    }
+  G3H5045 = 5C+5H+8O;      {CH2(OH)CH(OOH)COCOCO(OO.)                                                                              3.HKK    }
+  GGH504j = 5C+6H+8O;      {CH2(OH)CH(OOH)COCOCO(OOH)                                                                              GHKKO    }
+  GPH502d = 5C+5H+N+10O;   {CH2(OH)CH(OOH)COCOCO(OONO2)                                                                            PHKKO    }
+  G1O2000 = 2C+5H+2O;      {CH2(OH)CH2(O.)                                                                                         1.O      }
+  GOO2000 = 2C+6H+2O;      {CH2(OH)CH2(OH)                                                                                         OO       }
+  GNO2000 = 2C+5H+N+4O;    {CH2(OH)CH2(ONO2)                                                                                       NO       }
+  G2O2000 = 2C+5H+3O;      {CH2(OH)CH2(OO.)                                                                                        2.O      }
+  GHO2000 = 2C+6H+3O;      {CH2(OH)CH2(OOH)                                                                                        HO       }
+  G1N500p = 5C+10H+N+6O;   {CH2(OH)CH2CH(O.)CH(OH)CH2(ONO2)                                                                        1.NOO    }
+  G1H503w = 5C+11H+5O;     {CH2(OH)CH2CH(O.)CH(OH)CH2(OOH)                                                                         1.HOO    }
+  G1D500I = 5C+9H+4O;      {CH2(OH)CH2CH(O.)CH(OH)CHO                                                                              1.DOO    }
+  G1A501D = 5C+9H+5O;      {CH2(OH)CH2CH(O.)CH(OH)CO(OH)                                                                           1.AOO    }
+  G1G500u = 5C+9H+6O;      {CH2(OH)CH2CH(O.)CH(OH)CO(OOH)                                                                          1.GOO    }
+  G1P501F = 5C+8H+N+8O;    {CH2(OH)CH2CH(O.)CH(OH)CO(OONO2)                                                                        1.POO    }
+  G1N502e = 5C+9H+2N+8O;   {CH2(OH)CH2CH(O.)CH(ONO2)CH2(ONO2)                                                                      1.NNO    }
+  G1H503u = 5C+10H+N+7O;   {CH2(OH)CH2CH(O.)CH(ONO2)CH2(OOH)                                                                       1.HNO    }
+  G1N504a = 5C+8H+N+6O;    {CH2(OH)CH2CH(O.)CH(ONO2)CHO                                                                            1.NDO    }
+  G1A501r = 5C+8H+N+7O;    {CH2(OH)CH2CH(O.)CH(ONO2)CO(OH)                                                                         1.ANO    }
+  G1G502B = 5C+8H+N+8O;    {CH2(OH)CH2CH(O.)CH(ONO2)CO(OOH)                                                                        1.GNO    }
+  G1P501x = 5C+7H+2N+10O;  {CH2(OH)CH2CH(O.)CH(ONO2)CO(OONO2)                                                                      1.PNO    }
+  G1H500G = 5C+10H+N+7O;   {CH2(OH)CH2CH(O.)CH(OOH)CH2(ONO2)                                                                       1.HNO    }
+  G1H503v = 5C+11H+6O;     {CH2(OH)CH2CH(O.)CH(OOH)CH2(OOH)                                                                        1.HHO    }
+  G1H5018 = 5C+9H+5O;      {CH2(OH)CH2CH(O.)CH(OOH)CHO                                                                             1.HDO    }
+  G1A501t = 5C+9H+6O;      {CH2(OH)CH2CH(O.)CH(OOH)CO(OH)                                                                          1.AHO    }
+  G1G502C = 5C+9H+7O;      {CH2(OH)CH2CH(O.)CH(OOH)CO(OOH)                                                                         1.GHO    }
+  G1P501z = 5C+8H+N+9O;    {CH2(OH)CH2CH(O.)CH(OOH)CO(OONO2)                                                                       1.PHO    }
+  G1O4007 = 4C+9H+3O;      {CH2(OH)CH2CH(O.)CH2(OH)                                                                                1.OO     }
+  G1N400Z = 4C+8H+N+5O;    {CH2(OH)CH2CH(O.)CH2(ONO2)                                                                              1.NO     }
+  G1H4006 = 4C+9H+4O;      {CH2(OH)CH2CH(O.)CH2(OOH)                                                                               1.HO     }
+  G1N500J = 5C+10H+N+5O;   {CH2(OH)CH2CH(O.)CH2CH2(ONO2)                                                                           1.NO     }
+  G1D500j = 5C+9H+3O;      {CH2(OH)CH2CH(O.)CH2CHO                                                                                 1.DO     }
+  G1A501g = 5C+9H+4O;      {CH2(OH)CH2CH(O.)CH2CO(OH)                                                                              1.AO     }
+  G1G5029 = 5C+9H+5O;      {CH2(OH)CH2CH(O.)CH2CO(OOH)                                                                             1.GO     }
+  G1P501i = 5C+8H+N+7O;    {CH2(OH)CH2CH(O.)CH2CO(OONO2)                                                                           1.PO     }
+  G1D4009 = 4C+7H+3O;      {CH2(OH)CH2CH(O.)CHO                                                                                    1.DO     }
+  G1A4009 = 4C+7H+4O;      {CH2(OH)CH2CH(O.)CO(OH)                                                                                 1.AO     }
+  G1G4009 = 4C+7H+5O;      {CH2(OH)CH2CH(O.)CO(OOH)                                                                                1.GO     }
+  G1P4009 = 4C+6H+N+7O;    {CH2(OH)CH2CH(O.)CO(OONO2)                                                                              1.PO     }
+  G1K500F = 5C+9H+4O;      {CH2(OH)CH2CH(O.)COCH2(OH)                                                                              1.KOO    }
+  G1N500r = 5C+8H+N+6O;    {CH2(OH)CH2CH(O.)COCH2(ONO2)                                                                            1.NKO    }
+  G1H503x = 5C+9H+5O;      {CH2(OH)CH2CH(O.)COCH2(OOH)                                                                             1.HKO    }
+  G1D500l = 5C+7H+4O;      {CH2(OH)CH2CH(O.)COCHO                                                                                  1.DKO    }
+  G1A501F = 5C+7H+5O;      {CH2(OH)CH2CH(O.)COCO(OH)                                                                               1.AKO    }
+  G1G500w = 5C+7H+6O;      {CH2(OH)CH2CH(O.)COCO(OOH)                                                                              1.GKO    }
+  G1P501H = 5C+6H+N+8O;    {CH2(OH)CH2CH(O.)COCO(OONO2)                                                                            1.PKO    }
+  G1O500T = 5C+11H+4O;     {CH2(OH)CH2CH(OH)CH(O.)CH2(OH)                                                                          1.OOO    }
+  G1N501k = 5C+10H+N+6O;   {CH2(OH)CH2CH(OH)CH(O.)CH2(ONO2)                                                                        1.NOO    }
+  G1H500t = 5C+11H+5O;     {CH2(OH)CH2CH(OH)CH(O.)CH2(OOH)                                                                         1.HOO    }
+  G1D500F = 5C+9H+4O;      {CH2(OH)CH2CH(OH)CH(O.)CHO                                                                              1.DOO    }
+  G1A500n = 5C+9H+5O;      {CH2(OH)CH2CH(OH)CH(O.)CO(OH)                                                                           1.AOO    }
+  G1G500h = 5C+9H+6O;      {CH2(OH)CH2CH(OH)CH(O.)CO(OOH)                                                                          1.GOO    }
+  G1P500q = 5C+8H+N+8O;    {CH2(OH)CH2CH(OH)CH(O.)CO(OONO2)                                                                        1.POO    }
+  G1O500X = 5C+11H+4O;     {CH2(OH)CH2CH(OH)CH(OH)CH2(O.)                                                                          1.OOO    }
+  GOO500A = 5C+12H+4O;     {CH2(OH)CH2CH(OH)CH(OH)CH2(OH)                                                                          OOOO     }
+  GNO500N = 5C+11H+N+6O;   {CH2(OH)CH2CH(OH)CH(OH)CH2(ONO2)                                                                        NOOO     }
+  G2O500T = 5C+11H+5O;     {CH2(OH)CH2CH(OH)CH(OH)CH2(OO.)                                                                         2.OOO    }
+  GHO500Q = 5C+12H+5O;     {CH2(OH)CH2CH(OH)CH(OH)CH2(OOH)                                                                         HOOO     }
+  GDO500B = 5C+10H+4O;     {CH2(OH)CH2CH(OH)CH(OH)CHO                                                                              DOOO     }
+  GAO500C = 5C+10H+5O;     {CH2(OH)CH2CH(OH)CH(OH)CO(OH)                                                                           AOOO     }
+  G3K500R = 5C+9H+6O;      {CH2(OH)CH2CH(OH)CH(OH)CO(OO.)                                                                          3.KOO    }
+  GGO500A = 5C+10H+6O;     {CH2(OH)CH2CH(OH)CH(OH)CO(OOH)                                                                          GOOO     }
+  GPO500A = 5C+9H+N+8O;    {CH2(OH)CH2CH(OH)CH(OH)CO(OONO2)                                                                        POOO     }
+  G1N504P = 5C+10H+N+6O;   {CH2(OH)CH2CH(OH)CH(ONO2)CH2(O.)                                                                        1.NOO    }
+  GNO500Z = 5C+11H+N+6O;   {CH2(OH)CH2CH(OH)CH(ONO2)CH2(OH)                                                                        NOOO     }
+  GNN501M = 5C+10H+2N+8O;  {CH2(OH)CH2CH(OH)CH(ONO2)CH2(ONO2)                                                                      NNOO     }
+  G2N5041 = 5C+10H+N+7O;   {CH2(OH)CH2CH(OH)CH(ONO2)CH2(OO.)                                                                       2.NOO    }
+  GHN5029 = 5C+11H+N+7O;   {CH2(OH)CH2CH(OH)CH(ONO2)CH2(OOH)                                                                       HNOO     }
+  GND500b = 5C+9H+N+6O;    {CH2(OH)CH2CH(OH)CH(ONO2)CHO                                                                            NDOO     }
+  GAN500z = 5C+9H+N+7O;    {CH2(OH)CH2CH(OH)CH(ONO2)CO(OH)                                                                         ANOO     }
+  G3N500h = 5C+8H+N+8O;    {CH2(OH)CH2CH(OH)CH(ONO2)CO(OO.)                                                                        3.NKO    }
+  GGN500u = 5C+9H+N+8O;    {CH2(OH)CH2CH(OH)CH(ONO2)CO(OOH)                                                                        GNOO     }
+  GPN5014 = 5C+8H+2N+10O;  {CH2(OH)CH2CH(OH)CH(ONO2)CO(OONO2)                                                                      PNOO     }
+  G2O500Q = 5C+11H+5O;     {CH2(OH)CH2CH(OH)CH(OO.)CH2(OH)                                                                         2.OOO    }
+  G2N501e = 5C+10H+N+7O;   {CH2(OH)CH2CH(OH)CH(OO.)CH2(ONO2)                                                                       2.NOO    }
+  G2H500d = 5C+11H+6O;     {CH2(OH)CH2CH(OH)CH(OO.)CH2(OOH)                                                                        2.HOO    }
+  G2D500C = 5C+9H+5O;      {CH2(OH)CH2CH(OH)CH(OO.)CHO                                                                             2.DOO    }
+  G2A500k = 5C+9H+6O;      {CH2(OH)CH2CH(OH)CH(OO.)CO(OH)                                                                          2.AOO    }
+  G2G500d = 5C+9H+7O;      {CH2(OH)CH2CH(OH)CH(OO.)CO(OOH)                                                                         2.GOO    }
+  G2P500n = 5C+8H+N+9O;    {CH2(OH)CH2CH(OH)CH(OO.)CO(OONO2)                                                                       2.POO    }
+  G1H5026 = 5C+11H+5O;     {CH2(OH)CH2CH(OH)CH(OOH)CH2(O.)                                                                         1.HOO    }
+  GHO500R = 5C+12H+5O;     {CH2(OH)CH2CH(OH)CH(OOH)CH2(OH)                                                                         HOOO     }
+  GHN500y = 5C+11H+N+7O;   {CH2(OH)CH2CH(OH)CH(OOH)CH2(ONO2)                                                                       HNOO     }
+  GHH500b = 5C+12H+6O;     {CH2(OH)CH2CH(OH)CH(OOH)CH2(OOH)                                                                        HHOO     }
+  GHD500P = 5C+10H+5O;     {CH2(OH)CH2CH(OH)CH(OOH)CHO                                                                             HDOO     }
+  GAH5012 = 5C+10H+6O;     {CH2(OH)CH2CH(OH)CH(OOH)CO(OH)                                                                          AHOO     }
+  G3H500h = 5C+9H+7O;      {CH2(OH)CH2CH(OH)CH(OOH)CO(OO.)                                                                         3.HKO    }
+  GGH500v = 5C+10H+7O;     {CH2(OH)CH2CH(OH)CH(OOH)CO(OOH)                                                                         GHOO     }
+  GPH5013 = 5C+9H+N+9O;    {CH2(OH)CH2CH(OH)CH(OOH)CO(OONO2)                                                                       PHOO     }
+  G1O4002 = 4C+9H+3O;      {CH2(OH)CH2CH(OH)CH2(O.)                                                                                1.OO     }
+  GOO4002 = 4C+10H+3O;     {CH2(OH)CH2CH(OH)CH2(OH)                                                                                OOO      }
+  GNO4002 = 4C+9H+N+5O;    {CH2(OH)CH2CH(OH)CH2(ONO2)                                                                              NOO      }
+  G2O4002 = 4C+9H+4O;      {CH2(OH)CH2CH(OH)CH2(OO.)                                                                               2.OO     }
+  GHO4002 = 4C+10H+4O;     {CH2(OH)CH2CH(OH)CH2(OOH)                                                                               HOO      }
+  G1O500S = 5C+11H+3O;     {CH2(OH)CH2CH(OH)CH2CH2(O.)                                                                             1.OO     }
+  GNO500I = 5C+11H+N+5O;   {CH2(OH)CH2CH(OH)CH2CH2(ONO2)                                                                           NOO      }
+  GDO4003 = 4C+8H+3O;      {CH2(OH)CH2CH(OH)CHO                                                                                    DOO      }
+  GAO4005 = 4C+8H+4O;      {CH2(OH)CH2CH(OH)CO(OH)                                                                                 AOO      }
+  G3K4006 = 4C+7H+5O;      {CH2(OH)CH2CH(OH)CO(OO.)                                                                                3.KOO    }
+  GGO4005 = 4C+8H+5O;      {CH2(OH)CH2CH(OH)CO(OOH)                                                                                GOO      }
+  GPO4005 = 4C+7H+N+7O;    {CH2(OH)CH2CH(OH)CO(OONO2)                                                                              POO      }
+  G1K500d = 5C+9H+4O;      {CH2(OH)CH2CH(OH)COCH2(O.)                                                                              1.KOO    }
+  GKO500F = 5C+10H+4O;     {CH2(OH)CH2CH(OH)COCH2(OH)                                                                              KOOO     }
+  GNK500R = 5C+9H+N+6O;    {CH2(OH)CH2CH(OH)COCH2(ONO2)                                                                            NKOO     }
+  G2K500k = 5C+9H+5O;      {CH2(OH)CH2CH(OH)COCH2(OO.)                                                                             2.KOO    }
+  GHK500a = 5C+10H+5O;     {CH2(OH)CH2CH(OH)COCH2(OOH)                                                                             HKOO     }
+  GDK500J = 5C+8H+4O;      {CH2(OH)CH2CH(OH)COCHO                                                                                  DKOO     }
+  GAK500N = 5C+8H+5O;      {CH2(OH)CH2CH(OH)COCO(OH)                                                                               AKOO     }
+  G3K500a = 5C+7H+6O;      {CH2(OH)CH2CH(OH)COCO(OO.)                                                                              3.KKO    }
+  GGK500B = 5C+8H+6O;      {CH2(OH)CH2CH(OH)COCO(OOH)                                                                              GKOO     }
+  GPK500B = 5C+7H+N+8O;    {CH2(OH)CH2CH(OH)COCO(OONO2)                                                                            PKOO     }
+  G1N501r = 5C+10H+N+6O;   {CH2(OH)CH2CH(ONO2)CH(O.)CH2(OH)                                                                        1.NOO    }
+  G1N500W = 5C+9H+2N+8O;   {CH2(OH)CH2CH(ONO2)CH(O.)CH2(ONO2)                                                                      1.NNO    }
+  G1H500p = 5C+10H+N+7O;   {CH2(OH)CH2CH(ONO2)CH(O.)CH2(OOH)                                                                       1.HNO    }
+  G1N501v = 5C+8H+N+6O;    {CH2(OH)CH2CH(ONO2)CH(O.)CHO                                                                            1.NDO    }
+  G1A500I = 5C+8H+N+7O;    {CH2(OH)CH2CH(ONO2)CH(O.)CO(OH)                                                                         1.ANO    }
+  G1G500c = 5C+8H+N+8O;    {CH2(OH)CH2CH(ONO2)CH(O.)CO(OOH)                                                                        1.GNO    }
+  G1P500I = 5C+7H+2N+10O;  {CH2(OH)CH2CH(ONO2)CH(O.)CO(OONO2)                                                                      1.PNO    }
+  G1N502i = 5C+10H+N+6O;   {CH2(OH)CH2CH(ONO2)CH(OH)CH2(O.)                                                                        1.NOO    }
+  GNN500c = 5C+10H+2N+8O;  {CH2(OH)CH2CH(ONO2)CH(OH)CH2(ONO2)                                                                      NNOO     }
+  G2N503y = 5C+10H+N+7O;   {CH2(OH)CH2CH(ONO2)CH(OH)CH2(OO.)                                                                       2.NOO    }
+  GHN5027 = 5C+11H+N+7O;   {CH2(OH)CH2CH(ONO2)CH(OH)CH2(OOH)                                                                       HNOO     }
+  GND500Y = 5C+9H+N+6O;    {CH2(OH)CH2CH(ONO2)CH(OH)CHO                                                                            NDOO     }
+  GAN500Y = 5C+9H+N+7O;    {CH2(OH)CH2CH(ONO2)CH(OH)CO(OH)                                                                         ANOO     }
+  G3N500e = 5C+8H+N+8O;    {CH2(OH)CH2CH(ONO2)CH(OH)CO(OO.)                                                                        3.NKO    }
+  GGN500o = 5C+9H+N+8O;    {CH2(OH)CH2CH(ONO2)CH(OH)CO(OOH)                                                                        GNOO     }
+  GPN500Y = 5C+8H+2N+10O;  {CH2(OH)CH2CH(ONO2)CH(OH)CO(OONO2)                                                                      PNOO     }
+  G1N502f = 5C+9H+2N+8O;   {CH2(OH)CH2CH(ONO2)CH(ONO2)CH2(O.)                                                                      1.NNO    }
+  GNN501R = 5C+10H+2N+8O;  {CH2(OH)CH2CH(ONO2)CH(ONO2)CH2(OH)                                                                      NNOO     }
+  GNN500b = 5C+9H+3N+10O;  {CH2(OH)CH2CH(ONO2)CH(ONO2)CH2(ONO2)                                                                    NNNO     }
+  G2N503x = 5C+9H+2N+9O;   {CH2(OH)CH2CH(ONO2)CH(ONO2)CH2(OO.)                                                                     2.NNO    }
+  GHN5026 = 5C+10H+2N+9O;  {CH2(OH)CH2CH(ONO2)CH(ONO2)CH2(OOH)                                                                     HNNO     }
+  GNN501S = 5C+8H+2N+8O;   {CH2(OH)CH2CH(ONO2)CH(ONO2)CHO                                                                          NNDO     }
+  GAN500X = 5C+8H+2N+9O;   {CH2(OH)CH2CH(ONO2)CH(ONO2)CO(OH)                                                                       ANNO     }
+  G3N500d = 5C+7H+2N+10O;  {CH2(OH)CH2CH(ONO2)CH(ONO2)CO(OO.)                                                                      3.NNK    }
+  GGN500n = 5C+8H+2N+10O;  {CH2(OH)CH2CH(ONO2)CH(ONO2)CO(OOH)                                                                      GNNO     }
+  GPN500X = 5C+7H+3N+12O;  {CH2(OH)CH2CH(ONO2)CH(ONO2)CO(OONO2)                                                                    PNNO     }
+  G2N501n = 5C+10H+N+7O;   {CH2(OH)CH2CH(ONO2)CH(OO.)CH2(OH)                                                                       2.NOO    }
+  G2N500W = 5C+9H+2N+9O;   {CH2(OH)CH2CH(ONO2)CH(OO.)CH2(ONO2)                                                                     2.NNO    }
+  G2H500a = 5C+10H+N+8O;   {CH2(OH)CH2CH(ONO2)CH(OO.)CH2(OOH)                                                                      2.HNO    }
+  G2N501q = 5C+8H+N+7O;    {CH2(OH)CH2CH(ONO2)CH(OO.)CHO                                                                           2.NDO    }
+  G2A500H = 5C+8H+N+8O;    {CH2(OH)CH2CH(ONO2)CH(OO.)CO(OH)                                                                        2.ANO    }
+  G2G500a = 5C+8H+N+9O;    {CH2(OH)CH2CH(ONO2)CH(OO.)CO(OOH)                                                                       2.GNO    }
+  G2P500H = 5C+7H+2N+11O;  {CH2(OH)CH2CH(ONO2)CH(OO.)CO(OONO2)                                                                     2.PNO    }
+  G1H501K = 5C+10H+N+7O;   {CH2(OH)CH2CH(ONO2)CH(OOH)CH2(O.)                                                                       1.HNO    }
+  GHN502M = 5C+11H+N+7O;   {CH2(OH)CH2CH(ONO2)CH(OOH)CH2(OH)                                                                       HNOO     }
+  GHN500c = 5C+10H+2N+9O;  {CH2(OH)CH2CH(ONO2)CH(OOH)CH2(ONO2)                                                                     HNNO     }
+  G2H501r = 5C+10H+N+8O;   {CH2(OH)CH2CH(ONO2)CH(OOH)CH2(OO.)                                                                      2.HNO    }
+  GHH500W = 5C+11H+N+8O;   {CH2(OH)CH2CH(ONO2)CH(OOH)CH2(OOH)                                                                      HHNO     }
+  GHN502Q = 5C+9H+N+7O;    {CH2(OH)CH2CH(ONO2)CH(OOH)CHO                                                                           HNDO     }
+  GAH500O = 5C+9H+N+8O;    {CH2(OH)CH2CH(ONO2)CH(OOH)CO(OH)                                                                        AHNO     }
+  G3H500b = 5C+8H+N+9O;    {CH2(OH)CH2CH(ONO2)CH(OOH)CO(OO.)                                                                       3.HNK    }
+  GGH500n = 5C+9H+N+9O;    {CH2(OH)CH2CH(ONO2)CH(OOH)CO(OOH)                                                                       GHNO     }
+  GPH500O = 5C+8H+2N+11O;  {CH2(OH)CH2CH(ONO2)CH(OOH)CO(OONO2)                                                                     PHNO     }
+  G1N4008 = 4C+8H+N+5O;    {CH2(OH)CH2CH(ONO2)CH2(O.)                                                                              1.NO     }
+  GNO4005 = 4C+9H+N+5O;    {CH2(OH)CH2CH(ONO2)CH2(OH)                                                                              NOO      }
+  GNN4006 = 4C+8H+2N+7O;   {CH2(OH)CH2CH(ONO2)CH2(ONO2)                                                                            NNO      }
+  G2N4008 = 4C+8H+N+6O;    {CH2(OH)CH2CH(ONO2)CH2(OO.)                                                                             2.NO     }
+  GHN400A = 4C+9H+N+6O;    {CH2(OH)CH2CH(ONO2)CH2(OOH)                                                                             HNO      }
+  G1N501p = 5C+10H+N+5O;   {CH2(OH)CH2CH(ONO2)CH2CH2(O.)                                                                           1.NO     }
+  GNN500I = 5C+10H+2N+7O;  {CH2(OH)CH2CH(ONO2)CH2CH2(ONO2)                                                                         NNO      }
+  GND500W = 5C+9H+N+5O;    {CH2(OH)CH2CH(ONO2)CH2CHO                                                                               NDO      }
+  GAN500P = 5C+9H+N+6O;    {CH2(OH)CH2CH(ONO2)CH2CO(OH)                                                                            ANO      }
+  G3N500b = 5C+8H+N+7O;    {CH2(OH)CH2CH(ONO2)CH2CO(OO.)                                                                           3.NKO    }
+  GGN500l = 5C+9H+N+7O;    {CH2(OH)CH2CH(ONO2)CH2CO(OOH)                                                                           GNO      }
+  GPN500P = 5C+8H+2N+9O;   {CH2(OH)CH2CH(ONO2)CH2CO(OONO2)                                                                         PNO      }
+  GND4006 = 4C+7H+N+5O;    {CH2(OH)CH2CH(ONO2)CHO                                                                                  NDO      }
+  GAN400E = 4C+7H+N+6O;    {CH2(OH)CH2CH(ONO2)CO(OH)                                                                               ANO      }
+  G3N4008 = 4C+6H+N+7O;    {CH2(OH)CH2CH(ONO2)CO(OO.)                                                                              3.NKO    }
+  GGN400E = 4C+7H+N+7O;    {CH2(OH)CH2CH(ONO2)CO(OOH)                                                                              GNO      }
+  GPN400E = 4C+6H+2N+9O;   {CH2(OH)CH2CH(ONO2)CO(OONO2)                                                                            PNO      }
+  G1N502k = 5C+8H+N+6O;    {CH2(OH)CH2CH(ONO2)COCH2(O.)                                                                            1.NKO    }
+  GNK500U = 5C+9H+N+6O;    {CH2(OH)CH2CH(ONO2)COCH2(OH)                                                                            NKOO     }
+  GNN500d = 5C+8H+2N+8O;   {CH2(OH)CH2CH(ONO2)COCH2(ONO2)                                                                          NNKO     }
+  G2N503z = 5C+8H+N+7O;    {CH2(OH)CH2CH(ONO2)COCH2(OO.)                                                                           2.NKO    }
+  GHN5028 = 5C+9H+N+7O;    {CH2(OH)CH2CH(ONO2)COCH2(OOH)                                                                           HNKO     }
+  GND500Z = 5C+7H+N+6O;    {CH2(OH)CH2CH(ONO2)COCHO                                                                                NDKO     }
+  GAN500Z = 5C+7H+N+7O;    {CH2(OH)CH2CH(ONO2)COCO(OH)                                                                             ANKO     }
+  G3N501J = 5C+6H+N+8O;    {CH2(OH)CH2CH(ONO2)COCO(OO.)                                                                            3.NKK    }
+  GGN500p = 5C+7H+N+8O;    {CH2(OH)CH2CH(ONO2)COCO(OOH)                                                                            GNKO     }
+  GPN500Z = 5C+6H+2N+10O;  {CH2(OH)CH2CH(ONO2)COCO(OONO2)                                                                          PNKO     }
+  G2N500n = 5C+10H+N+7O;   {CH2(OH)CH2CH(OO.)CH(OH)CH2(ONO2)                                                                       2.NOO    }
+  G2D500E = 5C+9H+5O;      {CH2(OH)CH2CH(OO.)CH(OH)CHO                                                                             2.DOO    }
+  G2A5014 = 5C+9H+6O;      {CH2(OH)CH2CH(OO.)CH(OH)CO(OH)                                                                          2.AOO    }
+  G2G500m = 5C+9H+7O;      {CH2(OH)CH2CH(OO.)CH(OH)CO(OOH)                                                                         2.GOO    }
+  G2P5016 = 5C+8H+N+9O;    {CH2(OH)CH2CH(OO.)CH(OH)CO(OONO2)                                                                       2.POO    }
+  G2N503t = 5C+9H+2N+9O;   {CH2(OH)CH2CH(OO.)CH(ONO2)CH2(ONO2)                                                                     2.NNO    }
+  G2H501t = 5C+10H+N+8O;   {CH2(OH)CH2CH(OO.)CH(ONO2)CH2(OOH)                                                                      2.HNO    }
+  G2N504C = 5C+8H+N+7O;    {CH2(OH)CH2CH(OO.)CH(ONO2)CHO                                                                           2.NDO    }
+  G2A502S = 5C+8H+N+8O;    {CH2(OH)CH2CH(OO.)CH(ONO2)CO(OH)                                                                        2.ANO    }
+  G2G501p = 5C+8H+N+9O;    {CH2(OH)CH2CH(OO.)CH(ONO2)CO(OOH)                                                                       2.GNO    }
+  G2P502Z = 5C+7H+2N+11O;  {CH2(OH)CH2CH(OO.)CH(ONO2)CO(OONO2)                                                                     2.PNO    }
+  G2H500B = 5C+10H+N+8O;   {CH2(OH)CH2CH(OO.)CH(OOH)CH2(ONO2)                                                                      2.HNO    }
+  G2H500m = 5C+9H+6O;      {CH2(OH)CH2CH(OO.)CH(OOH)CHO                                                                            2.HDO    }
+  G2O4007 = 4C+9H+4O;      {CH2(OH)CH2CH(OO.)CH2(OH)                                                                               2.OO     }
+  G2N400e = 4C+8H+N+6O;    {CH2(OH)CH2CH(OO.)CH2(ONO2)                                                                             2.NO     }
+  G2H4006 = 4C+9H+5O;      {CH2(OH)CH2CH(OO.)CH2(OOH)                                                                              2.HO     }
+  G2N500J = 5C+10H+N+6O;   {CH2(OH)CH2CH(OO.)CH2CH2(ONO2)                                                                          2.NO     }
+  G2D4007 = 4C+7H+4O;      {CH2(OH)CH2CH(OO.)CHO                                                                                   2.DO     }
+  G2A4008 = 4C+7H+5O;      {CH2(OH)CH2CH(OO.)CO(OH)                                                                                2.AO     }
+  G2G4007 = 4C+7H+6O;      {CH2(OH)CH2CH(OO.)CO(OOH)                                                                               2.GO     }
+  G2P4008 = 4C+6H+N+8O;    {CH2(OH)CH2CH(OO.)CO(OONO2)                                                                             2.PO     }
+  G2K500E = 5C+9H+5O;      {CH2(OH)CH2CH(OO.)COCH2(OH)                                                                             2.KOO    }
+  G2N500p = 5C+8H+N+7O;    {CH2(OH)CH2CH(OO.)COCH2(ONO2)                                                                           2.NKO    }
+  G2H501w = 5C+9H+6O;      {CH2(OH)CH2CH(OO.)COCH2(OOH)                                                                            2.HKO    }
+  G2D500W = 5C+7H+5O;      {CH2(OH)CH2CH(OO.)COCHO                                                                                 2.DKO    }
+  G2A5016 = 5C+7H+6O;      {CH2(OH)CH2CH(OO.)COCO(OH)                                                                              2.AKO    }
+  G2G500o = 5C+7H+7O;      {CH2(OH)CH2CH(OO.)COCO(OOH)                                                                             2.GKO    }
+  G2P5018 = 5C+6H+N+9O;    {CH2(OH)CH2CH(OO.)COCO(OONO2)                                                                           2.PKO    }
+  G1H5015 = 5C+11H+5O;     {CH2(OH)CH2CH(OOH)CH(O.)CH2(OH)                                                                         1.HOO    }
+  G1H500n = 5C+10H+N+7O;   {CH2(OH)CH2CH(OOH)CH(O.)CH2(ONO2)                                                                       1.HNO    }
+  G1H500r = 5C+11H+6O;     {CH2(OH)CH2CH(OOH)CH(O.)CH2(OOH)                                                                        1.HHO    }
+  G1H5017 = 5C+9H+5O;      {CH2(OH)CH2CH(OOH)CH(O.)CHO                                                                             1.HDO    }
+  G1A500k = 5C+9H+6O;      {CH2(OH)CH2CH(OOH)CH(O.)CO(OH)                                                                          1.AHO    }
+  G1G500e = 5C+9H+7O;      {CH2(OH)CH2CH(OOH)CH(O.)CO(OOH)                                                                         1.GHO    }
+  G1P500n = 5C+8H+N+9O;    {CH2(OH)CH2CH(OOH)CH(O.)CO(OONO2)                                                                       1.PHO    }
+  G1H502C = 5C+11H+5O;     {CH2(OH)CH2CH(OOH)CH(OH)CH2(O.)                                                                         1.HOO    }
+  GHN5012 = 5C+11H+N+7O;   {CH2(OH)CH2CH(OOH)CH(OH)CH2(ONO2)                                                                       HNOO     }
+  GHH500Z = 5C+12H+6O;     {CH2(OH)CH2CH(OOH)CH(OH)CH2(OOH)                                                                        HHOO     }
+  GHD500M = 5C+10H+5O;     {CH2(OH)CH2CH(OOH)CH(OH)CHO                                                                             HDOO     }
+  GAH500w = 5C+10H+6O;     {CH2(OH)CH2CH(OOH)CH(OH)CO(OH)                                                                          AHOO     }
+  G3H500e = 5C+9H+7O;      {CH2(OH)CH2CH(OOH)CH(OH)CO(OO.)                                                                         3.HKO    }
+  GGH500q = 5C+10H+7O;     {CH2(OH)CH2CH(OOH)CH(OH)CO(OOH)                                                                         GHOO     }
+  GPH500x = 5C+9H+N+9O;    {CH2(OH)CH2CH(OOH)CH(OH)CO(OONO2)                                                                       PHOO     }
+  G1H503q = 5C+10H+N+7O;   {CH2(OH)CH2CH(OOH)CH(ONO2)CH2(O.)                                                                       1.HNO    }
+  GHN5024 = 5C+10H+2N+9O;  {CH2(OH)CH2CH(OOH)CH(ONO2)CH2(ONO2)                                                                     HNNO     }
+  G2H501u = 5C+10H+N+8O;   {CH2(OH)CH2CH(OOH)CH(ONO2)CH2(OO.)                                                                      2.HNO    }
+  GHH500X = 5C+11H+N+8O;   {CH2(OH)CH2CH(OOH)CH(ONO2)CH2(OOH)                                                                      HHNO     }
+  GHN502R = 5C+9H+N+7O;    {CH2(OH)CH2CH(OOH)CH(ONO2)CHO                                                                           HNDO     }
+  GAH500u = 5C+9H+N+8O;    {CH2(OH)CH2CH(OOH)CH(ONO2)CO(OH)                                                                        AHNO     }
+  G3H500c = 5C+8H+N+9O;    {CH2(OH)CH2CH(OOH)CH(ONO2)CO(OO.)                                                                       3.HNK    }
+  GGH500o = 5C+9H+N+9O;    {CH2(OH)CH2CH(OOH)CH(ONO2)CO(OOH)                                                                       GHNO     }
+  GPH500v = 5C+8H+2N+11O;  {CH2(OH)CH2CH(OOH)CH(ONO2)CO(OONO2)                                                                     PHNO     }
+  G2H500k = 5C+11H+6O;     {CH2(OH)CH2CH(OOH)CH(OO.)CH2(OH)                                                                        2.HOO    }
+  G2H500Z = 5C+10H+N+8O;   {CH2(OH)CH2CH(OOH)CH(OO.)CH2(ONO2)                                                                      2.HNO    }
+  G2H500c = 5C+11H+7O;     {CH2(OH)CH2CH(OOH)CH(OO.)CH2(OOH)                                                                       2.HHO    }
+  G2H500l = 5C+9H+6O;      {CH2(OH)CH2CH(OOH)CH(OO.)CHO                                                                            2.HDO    }
+  G2A500i = 5C+9H+7O;      {CH2(OH)CH2CH(OOH)CH(OO.)CO(OH)                                                                         2.AHO    }
+  G2G500b = 5C+9H+8O;      {CH2(OH)CH2CH(OOH)CH(OO.)CO(OOH)                                                                        2.GHO    }
+  G2P500l = 5C+8H+N+10O;   {CH2(OH)CH2CH(OOH)CH(OO.)CO(OONO2)                                                                      2.PHO    }
+  G1H5024 = 5C+11H+6O;     {CH2(OH)CH2CH(OOH)CH(OOH)CH2(O.)                                                                        1.HHO    }
+  GHH500h = 5C+12H+6O;     {CH2(OH)CH2CH(OOH)CH(OOH)CH2(OH)                                                                        HHOO     }
+  GHH500B = 5C+11H+N+8O;   {CH2(OH)CH2CH(OOH)CH(OOH)CH2(ONO2)                                                                      HHNO     }
+  GHH500Y = 5C+12H+7O;     {CH2(OH)CH2CH(OOH)CH(OOH)CH2(OOH)                                                                       HHHO     }
+  GHH500i = 5C+10H+6O;     {CH2(OH)CH2CH(OOH)CH(OOH)CHO                                                                            HHDO     }
+  GAH500v = 5C+10H+7O;     {CH2(OH)CH2CH(OOH)CH(OOH)CO(OH)                                                                         AHHO     }
+  G3H500d = 5C+9H+8O;      {CH2(OH)CH2CH(OOH)CH(OOH)CO(OO.)                                                                        3.HHK    }
+  GGH500p = 5C+10H+8O;     {CH2(OH)CH2CH(OOH)CH(OOH)CO(OOH)                                                                        GHHO     }
+  GPH500w = 5C+9H+N+10O;   {CH2(OH)CH2CH(OOH)CH(OOH)CO(OONO2)                                                                      PHHO     }
+  G1H4008 = 4C+9H+4O;      {CH2(OH)CH2CH(OOH)CH2(O.)                                                                               1.HO     }
+  GHO4005 = 4C+10H+4O;     {CH2(OH)CH2CH(OOH)CH2(OH)                                                                               HOO      }
+  GHN400D = 4C+9H+N+6O;    {CH2(OH)CH2CH(OOH)CH2(ONO2)                                                                             HNO      }
+  G2H4008 = 4C+9H+5O;      {CH2(OH)CH2CH(OOH)CH2(OO.)                                                                              2.HO     }
+  GHH4004 = 4C+10H+5O;     {CH2(OH)CH2CH(OOH)CH2(OOH)                                                                              HHO      }
+  G1H5014 = 5C+11H+4O;     {CH2(OH)CH2CH(OOH)CH2CH2(O.)                                                                            1.HO     }
+  GHN500R = 5C+11H+N+6O;   {CH2(OH)CH2CH(OOH)CH2CH2(ONO2)                                                                          HNO      }
+  GHD4006 = 4C+8H+4O;      {CH2(OH)CH2CH(OOH)CHO                                                                                   HDO      }
+  GAH4008 = 4C+8H+5O;      {CH2(OH)CH2CH(OOH)CO(OH)                                                                                AHO      }
+  G3H4004 = 4C+7H+6O;      {CH2(OH)CH2CH(OOH)CO(OO.)                                                                               3.HKO    }
+  GGH4007 = 4C+8H+6O;      {CH2(OH)CH2CH(OOH)CO(OOH)                                                                               GHO      }
+  GPH4008 = 4C+7H+N+8O;    {CH2(OH)CH2CH(OOH)CO(OONO2)                                                                             PHO      }
+  G1H502F = 5C+9H+5O;      {CH2(OH)CH2CH(OOH)COCH2(O.)                                                                             1.HKO    }
+  GHK500J = 5C+10H+5O;     {CH2(OH)CH2CH(OOH)COCH2(OH)                                                                             HKOO     }
+  GHN5014 = 5C+9H+N+7O;    {CH2(OH)CH2CH(OOH)COCH2(ONO2)                                                                           HNKO     }
+  G2H501x = 5C+9H+6O;      {CH2(OH)CH2CH(OOH)COCH2(OO.)                                                                            2.HKO    }
+  GHH500a = 5C+10H+6O;     {CH2(OH)CH2CH(OOH)COCH2(OOH)                                                                            HHKO     }
+  GHD500N = 5C+8H+5O;      {CH2(OH)CH2CH(OOH)COCHO                                                                                 HDKO     }
+  GAH500x = 5C+8H+6O;      {CH2(OH)CH2CH(OOH)COCO(OH)                                                                              AHKO     }
+  G3H502L = 5C+7H+7O;      {CH2(OH)CH2CH(OOH)COCO(OO.)                                                                             3.HKK    }
+  GGH500r = 5C+8H+7O;      {CH2(OH)CH2CH(OOH)COCO(OOH)                                                                             GHKO     }
+  GPH500y = 5C+7H+N+9O;    {CH2(OH)CH2CH(OOH)COCO(OONO2)                                                                           PHKO     }
+  G1O3001 = 3C+7H+2O;      {CH2(OH)CH2CH2(O.)                                                                                      1.O      }
+  GOO3001 = 3C+8H+2O;      {CH2(OH)CH2CH2(OH)                                                                                      OO       }
+  GNO3000 = 3C+7H+N+4O;    {CH2(OH)CH2CH2(ONO2)                                                                                    NO       }
+  G2O3001 = 3C+7H+3O;      {CH2(OH)CH2CH2(OO.)                                                                                     2.O      }
+  GHO3001 = 3C+8H+3O;      {CH2(OH)CH2CH2(OOH)                                                                                     HO       }
+  G1O500D = 5C+11H+3O;     {CH2(OH)CH2CH2CH(O.)CH2(OH)                                                                             1.OO     }
+  G1N5004 = 5C+10H+N+5O;   {CH2(OH)CH2CH2CH(O.)CH2(ONO2)                                                                           1.NO     }
+  G1H5006 = 5C+11H+4O;     {CH2(OH)CH2CH2CH(O.)CH2(OOH)                                                                            1.HO     }
+  G1D5003 = 5C+9H+3O;      {CH2(OH)CH2CH2CH(O.)CHO                                                                                 1.DO     }
+  G1A5009 = 5C+9H+4O;      {CH2(OH)CH2CH2CH(O.)CO(OH)                                                                              1.AO     }
+  G1G5008 = 5C+9H+5O;      {CH2(OH)CH2CH2CH(O.)CO(OOH)                                                                             1.GO     }
+  G1P5009 = 5C+8H+N+7O;    {CH2(OH)CH2CH2CH(O.)CO(OONO2)                                                                           1.PO     }
+  G1O500I = 5C+11H+3O;     {CH2(OH)CH2CH2CH(OH)CH2(O.)                                                                             1.OO     }
+  GOO5003 = 5C+12H+3O;     {CH2(OH)CH2CH2CH(OH)CH2(OH)                                                                             OOO      }
+  GNO5005 = 5C+11H+N+5O;   {CH2(OH)CH2CH2CH(OH)CH2(ONO2)                                                                           NOO      }
+  G2O500I = 5C+11H+4O;     {CH2(OH)CH2CH2CH(OH)CH2(OO.)                                                                            2.OO     }
+  GHO5004 = 5C+12H+4O;     {CH2(OH)CH2CH2CH(OH)CH2(OOH)                                                                            HOO      }
+  GDO5006 = 5C+10H+3O;     {CH2(OH)CH2CH2CH(OH)CHO                                                                                 DOO      }
+  GAO5007 = 5C+10H+4O;     {CH2(OH)CH2CH2CH(OH)CO(OH)                                                                              AOO      }
+  G3K500A = 5C+9H+5O;      {CH2(OH)CH2CH2CH(OH)CO(OO.)                                                                             3.KOO    }
+  GGO5007 = 5C+10H+5O;     {CH2(OH)CH2CH2CH(OH)CO(OOH)                                                                             GOO      }
+  GPO5007 = 5C+9H+N+7O;    {CH2(OH)CH2CH2CH(OH)CO(OONO2)                                                                           POO      }
+  G1N500l = 5C+10H+N+5O;   {CH2(OH)CH2CH2CH(ONO2)CH2(O.)                                                                           1.NO     }
+  GNO500J = 5C+11H+N+5O;   {CH2(OH)CH2CH2CH(ONO2)CH2(OH)                                                                           NOO      }
+  GNN5004 = 5C+10H+2N+7O;  {CH2(OH)CH2CH2CH(ONO2)CH2(ONO2)                                                                         NNO      }
+  G2N501i = 5C+10H+N+6O;   {CH2(OH)CH2CH2CH(ONO2)CH2(OO.)                                                                          2.NO     }
+  GHN500P = 5C+11H+N+6O;   {CH2(OH)CH2CH2CH(ONO2)CH2(OOH)                                                                          HNO      }
+  GND5008 = 5C+9H+N+5O;    {CH2(OH)CH2CH2CH(ONO2)CHO                                                                               NDO      }
+  GAN500F = 5C+9H+N+6O;    {CH2(OH)CH2CH2CH(ONO2)CO(OH)                                                                            ANO      }
+  G3N5009 = 5C+8H+N+7O;    {CH2(OH)CH2CH2CH(ONO2)CO(OO.)                                                                           3.NKO    }
+  GGN500D = 5C+9H+N+7O;    {CH2(OH)CH2CH2CH(ONO2)CO(OOH)                                                                           GNO      }
+  GPN500F = 5C+8H+2N+9O;   {CH2(OH)CH2CH2CH(ONO2)CO(OONO2)                                                                         PNO      }
+  G2O500C = 5C+11H+4O;     {CH2(OH)CH2CH2CH(OO.)CH2(OH)                                                                            2.OO     }
+  G2N5004 = 5C+10H+N+6O;   {CH2(OH)CH2CH2CH(OO.)CH2(ONO2)                                                                          2.NO     }
+  G2H5005 = 5C+11H+5O;     {CH2(OH)CH2CH2CH(OO.)CH2(OOH)                                                                           2.HO     }
+  G2D5002 = 5C+9H+4O;      {CH2(OH)CH2CH2CH(OO.)CHO                                                                                2.DO     }
+  G2A5008 = 5C+9H+5O;      {CH2(OH)CH2CH2CH(OO.)CO(OH)                                                                             2.AO     }
+  G2G5007 = 5C+9H+6O;      {CH2(OH)CH2CH2CH(OO.)CO(OOH)                                                                            2.GO     }
+  G2P5008 = 5C+8H+N+8O;    {CH2(OH)CH2CH2CH(OO.)CO(OONO2)                                                                          2.PO     }
+  G1H500E = 5C+11H+4O;     {CH2(OH)CH2CH2CH(OOH)CH2(O.)                                                                            1.HO     }
+  GHO500F = 5C+12H+4O;     {CH2(OH)CH2CH2CH(OOH)CH2(OH)                                                                            HOO      }
+  GHN5004 = 5C+11H+N+6O;   {CH2(OH)CH2CH2CH(OOH)CH2(ONO2)                                                                          HNO      }
+  G2H500j = 5C+11H+5O;     {CH2(OH)CH2CH2CH(OOH)CH2(OO.)                                                                           2.HO     }
+  GHH5005 = 5C+12H+5O;     {CH2(OH)CH2CH2CH(OOH)CH2(OOH)                                                                           HHO      }
+  GHD5004 = 5C+10H+4O;     {CH2(OH)CH2CH2CH(OOH)CHO                                                                                HDO      }
+  GAH5009 = 5C+10H+5O;     {CH2(OH)CH2CH2CH(OOH)CO(OH)                                                                             AHO      }
+  G3H5005 = 5C+9H+6O;      {CH2(OH)CH2CH2CH(OOH)CO(OO.)                                                                            3.HKO    }
+  GGH5008 = 5C+10H+6O;     {CH2(OH)CH2CH2CH(OOH)CO(OOH)                                                                            GHO      }
+  GPH5009 = 5C+9H+N+8O;    {CH2(OH)CH2CH2CH(OOH)CO(OONO2)                                                                          PHO      }
+  G1O4000 = 4C+9H+2O;      {CH2(OH)CH2CH2CH2(O.)                                                                                   1.O      }
+  GOO4000 = 4C+10H+2O;     {CH2(OH)CH2CH2CH2(OH)                                                                                   OO       }
+  GNO4000 = 4C+9H+N+4O;    {CH2(OH)CH2CH2CH2(ONO2)                                                                                 NO       }
+  G2O4000 = 4C+9H+3O;      {CH2(OH)CH2CH2CH2(OO.)                                                                                  2.O      }
+  GHO4000 = 4C+10H+3O;     {CH2(OH)CH2CH2CH2(OOH)                                                                                  HO       }
+  G1O500C = 5C+11H+2O;     {CH2(OH)CH2CH2CH2CH2(O.)                                                                                1.O      }
+  GNO5002 = 5C+11H+N+4O;   {CH2(OH)CH2CH2CH2CH2(ONO2)                                                                              NO       }
+  GDO4000 = 4C+8H+2O;      {CH2(OH)CH2CH2CHO                                                                                       DO       }
+  GAO4001 = 4C+8H+3O;      {CH2(OH)CH2CH2CO(OH)                                                                                    AO       }
+  G3K4002 = 4C+7H+4O;      {CH2(OH)CH2CH2CO(OO.)                                                                                   3.KO     }
+  GGO4001 = 4C+8H+4O;      {CH2(OH)CH2CH2CO(OOH)                                                                                   GO       }
+  GPO4001 = 4C+7H+N+6O;    {CH2(OH)CH2CH2CO(OONO2)                                                                                 PO       }
+  G1K500A = 5C+9H+3O;      {CH2(OH)CH2CH2COCH2(O.)                                                                                 1.KO     }
+  GKO5003 = 5C+10H+3O;     {CH2(OH)CH2CH2COCH2(OH)                                                                                 KOO      }
+  GNK5003 = 5C+9H+N+5O;    {CH2(OH)CH2CH2COCH2(ONO2)                                                                               NKO      }
+  G2K5009 = 5C+9H+4O;      {CH2(OH)CH2CH2COCH2(OO.)                                                                                2.KO     }
+  GHK5002 = 5C+10H+4O;     {CH2(OH)CH2CH2COCH2(OOH)                                                                                HKO      }
+  GDK5004 = 5C+8H+3O;      {CH2(OH)CH2CH2COCHO                                                                                     DKO      }
+  GAK5005 = 5C+8H+4O;      {CH2(OH)CH2CH2COCO(OH)                                                                                  AKO      }
+  G3K500T = 5C+7H+5O;      {CH2(OH)CH2CH2COCO(OO.)                                                                                 3.KKO    }
+  GGK5005 = 5C+8H+5O;      {CH2(OH)CH2CH2COCO(OOH)                                                                                 GKO      }
+  GPK5005 = 5C+7H+N+7O;    {CH2(OH)CH2CH2COCO(OONO2)                                                                               PKO      }
+  GDO3000 = 3C+6H+2O;      {CH2(OH)CH2CHO                                                                                          DO       }
+  GAO3000 = 3C+6H+3O;      {CH2(OH)CH2CO(OH)                                                                                       AO       }
+  G3K3001 = 3C+5H+4O;      {CH2(OH)CH2CO(OO.)                                                                                      3.KO     }
+  GGO3000 = 3C+6H+4O;      {CH2(OH)CH2CO(OOH)                                                                                      GO       }
+  GPO3000 = 3C+5H+N+6O;    {CH2(OH)CH2CO(OONO2)                                                                                    PO       }
+  G1K500U = 5C+9H+4O;      {CH2(OH)CH2COCH(O.)CH2(OH)                                                                              1.KOO    }
+  G1N503B = 5C+8H+N+6O;    {CH2(OH)CH2COCH(O.)CH2(ONO2)                                                                            1.NKO    }
+  G1H500v = 5C+9H+5O;      {CH2(OH)CH2COCH(O.)CH2(OOH)                                                                             1.HKO    }
+  G1D500H = 5C+7H+4O;      {CH2(OH)CH2COCH(O.)CHO                                                                                  1.DKO    }
+  G1A500O = 5C+7H+5O;      {CH2(OH)CH2COCH(O.)CO(OH)                                                                               1.AKO    }
+  G1G500L = 5C+7H+6O;      {CH2(OH)CH2COCH(O.)CO(OOH)                                                                              1.GKO    }
+  G1P500Q = 5C+6H+N+8O;    {CH2(OH)CH2COCH(O.)CO(OONO2)                                                                            1.PKO    }
+  G1K500a = 5C+9H+4O;      {CH2(OH)CH2COCH(OH)CH2(O.)                                                                              1.KOO    }
+  GNK500O = 5C+9H+N+6O;    {CH2(OH)CH2COCH(OH)CH2(ONO2)                                                                            NKOO     }
+  GHK500b = 5C+10H+5O;     {CH2(OH)CH2COCH(OH)CH2(OOH)                                                                             HKOO     }
+  GDK500K = 5C+8H+4O;      {CH2(OH)CH2COCH(OH)CHO                                                                                  DKOO     }
+  GAK500E = 5C+8H+5O;      {CH2(OH)CH2COCH(OH)CO(OH)                                                                               AKOO     }
+  G3K500S = 5C+7H+6O;      {CH2(OH)CH2COCH(OH)CO(OO.)                                                                              3.KKO    }
+  GGK500G = 5C+8H+6O;      {CH2(OH)CH2COCH(OH)CO(OOH)                                                                              GKOO     }
+  GPK500G = 5C+7H+N+8O;    {CH2(OH)CH2COCH(OH)CO(OONO2)                                                                            PKOO     }
+  G1N504S = 5C+8H+N+6O;    {CH2(OH)CH2COCH(ONO2)CH2(O.)                                                                            1.NKO    }
+  GNK500o = 5C+9H+N+6O;    {CH2(OH)CH2COCH(ONO2)CH2(OH)                                                                            NKOO     }
+  GNN502J = 5C+8H+2N+8O;   {CH2(OH)CH2COCH(ONO2)CH2(ONO2)                                                                          NNKO     }
+  G2N5042 = 5C+8H+N+7O;    {CH2(OH)CH2COCH(ONO2)CH2(OO.)                                                                           2.NKO    }
+  GHN502A = 5C+9H+N+7O;    {CH2(OH)CH2COCH(ONO2)CH2(OOH)                                                                           HNKO     }
+  GND500c = 5C+7H+N+6O;    {CH2(OH)CH2COCH(ONO2)CHO                                                                                NDKO     }
+  GAN500f = 5C+7H+N+7O;    {CH2(OH)CH2COCH(ONO2)CO(OH)                                                                             ANKO     }
+  G3N500i = 5C+6H+N+8O;    {CH2(OH)CH2COCH(ONO2)CO(OO.)                                                                            3.NKK    }
+  GGN500X = 5C+7H+N+8O;    {CH2(OH)CH2COCH(ONO2)CO(OOH)                                                                            GNKO     }
+  GPN500h = 5C+6H+2N+10O;  {CH2(OH)CH2COCH(ONO2)CO(OONO2)                                                                          PNKO     }
+  G2K500S = 5C+9H+5O;      {CH2(OH)CH2COCH(OO.)CH2(OH)                                                                             2.KOO    }
+  G2N502p = 5C+8H+N+7O;    {CH2(OH)CH2COCH(OO.)CH2(ONO2)                                                                           2.NKO    }
+  G2H500e = 5C+9H+6O;      {CH2(OH)CH2COCH(OO.)CH2(OOH)                                                                            2.HKO    }
+  G2D500D = 5C+7H+5O;      {CH2(OH)CH2COCH(OO.)CHO                                                                                 2.DKO    }
+  G2A500N = 5C+7H+6O;      {CH2(OH)CH2COCH(OO.)CO(OH)                                                                              2.AKO    }
+  G2G500K = 5C+7H+7O;      {CH2(OH)CH2COCH(OO.)CO(OOH)                                                                             2.GKO    }
+  G2P500P = 5C+6H+N+9O;    {CH2(OH)CH2COCH(OO.)CO(OONO2)                                                                           2.PKO    }
+  G1H5029 = 5C+9H+5O;      {CH2(OH)CH2COCH(OOH)CH2(O.)                                                                             1.HKO    }
+  GHK500d = 5C+10H+5O;     {CH2(OH)CH2COCH(OOH)CH2(OH)                                                                             HKOO     }
+  GHN500z = 5C+9H+N+7O;    {CH2(OH)CH2COCH(OOH)CH2(ONO2)                                                                           HNKO     }
+  GHH500c = 5C+10H+6O;     {CH2(OH)CH2COCH(OOH)CH2(OOH)                                                                            HHKO     }
+  GHD500Q = 5C+8H+5O;      {CH2(OH)CH2COCH(OOH)CHO                                                                                 HDKO     }
+  GAH500U = 5C+8H+6O;      {CH2(OH)CH2COCH(OOH)CO(OH)                                                                              AHKO     }
+  G3H500i = 5C+7H+7O;      {CH2(OH)CH2COCH(OOH)CO(OO.)                                                                             3.HKK    }
+  GGH500S = 5C+8H+7O;      {CH2(OH)CH2COCH(OOH)CO(OOH)                                                                             GHKO     }
+  GPH500X = 5C+7H+N+9O;    {CH2(OH)CH2COCH(OOH)CO(OONO2)                                                                           PHKO     }
+  G1K4007 = 4C+7H+3O;      {CH2(OH)CH2COCH2(O.)                                                                                    1.KO     }
+  GKO4002 = 4C+8H+3O;      {CH2(OH)CH2COCH2(OH)                                                                                    KOO      }
+  GNK4004 = 4C+7H+N+5O;    {CH2(OH)CH2COCH2(ONO2)                                                                                  NKO      }
+  G2K4007 = 4C+7H+4O;      {CH2(OH)CH2COCH2(OO.)                                                                                   2.KO     }
+  GHK4003 = 4C+8H+4O;      {CH2(OH)CH2COCH2(OOH)                                                                                   HKO      }
+  G1K500T = 5C+9H+3O;      {CH2(OH)CH2COCH2CH2(O.)                                                                                 1.KO     }
+  GNK500E = 5C+9H+N+5O;    {CH2(OH)CH2COCH2CH2(ONO2)                                                                               NKO      }
+  GDK500I = 5C+8H+3O;      {CH2(OH)CH2COCH2CHO                                                                                     DKO      }
+  GAK500A = 5C+8H+4O;      {CH2(OH)CH2COCH2CO(OH)                                                                                  AKO      }
+  G3K500Q = 5C+7H+5O;      {CH2(OH)CH2COCH2CO(OO.)                                                                                 3.KKO    }
+  GGK500C = 5C+8H+5O;      {CH2(OH)CH2COCH2CO(OOH)                                                                                 GKO      }
+  GPK500C = 5C+7H+N+7O;    {CH2(OH)CH2COCH2CO(OONO2)                                                                               PKO      }
+  GDK4005 = 4C+6H+3O;      {CH2(OH)CH2COCHO                                                                                        DKO      }
+  GAK4004 = 4C+6H+4O;      {CH2(OH)CH2COCO(OH)                                                                                     AKO      }
+  G3K400E = 4C+5H+5O;      {CH2(OH)CH2COCO(OO.)                                                                                    3.KKO    }
+  GGK4004 = 4C+6H+5O;      {CH2(OH)CH2COCO(OOH)                                                                                    GKO      }
+  GPK4004 = 4C+5H+N+7O;    {CH2(OH)CH2COCO(OONO2)                                                                                  PKO      }
+  G1K500e = 5C+7H+4O;      {CH2(OH)CH2COCOCH2(O.)                                                                                  1.KKO    }
+  GKK5006 = 5C+8H+4O;      {CH2(OH)CH2COCOCH2(OH)                                                                                  KKOO     }
+  GNK500S = 5C+7H+N+6O;    {CH2(OH)CH2COCOCH2(ONO2)                                                                                NKKO     }
+  G2K500l = 5C+7H+5O;      {CH2(OH)CH2COCOCH2(OO.)                                                                                 2.KKO    }
+  GHK500c = 5C+8H+5O;      {CH2(OH)CH2COCOCH2(OOH)                                                                                 HKKO     }
+  GDK500L = 5C+6H+4O;      {CH2(OH)CH2COCOCHO                                                                                      DKKO     }
+  GAK500F = 5C+6H+5O;      {CH2(OH)CH2COCOCO(OH)                                                                                   AKKO     }
+  G3K500c = 5C+5H+6O;      {CH2(OH)CH2COCOCO(OO.)                                                                                  3.KKK    }
+  GGK500H = 5C+6H+6O;      {CH2(OH)CH2COCOCO(OOH)                                                                                  GKKO     }
+  GPK500H = 5C+5H+N+8O;    {CH2(OH)CH2COCOCO(OONO2)                                                                                PKKO     }
+  GDO2000 = 2C+4H+2O;      {CH2(OH)CHO                                                                                             DO       }
+  GAO2000 = 2C+4H+3O;      {CH2(OH)CO(OH)                                                                                          AO       }
+  G3K2001 = 2C+3H+4O;      {CH2(OH)CO(OO.)                                                                                         3.KO     }
+  GGO2000 = 2C+4H+4O;      {CH2(OH)CO(OOH)                                                                                         GO       }
+  GPO2000 = 2C+3H+N+6O;    {CH2(OH)CO(OONO2)                                                                                       PO       }
+  G1N502Y = 5C+8H+N+7O;    {CH2(OH)COCH(O.)CH(OH)CH2(ONO2)                                                                         1.NKO    }
+  G1H50Av = 5C+9H+6O;      {CH2(OH)COCH(O.)CH(OH)CH2(OOH)                                                                          1.HKO    }
+  G1D500g = 5C+7H+5O;      {CH2(OH)COCH(O.)CH(OH)CHO                                                                               1.DKO    }
+  G1A505p = 5C+7H+6O;      {CH2(OH)COCH(O.)CH(OH)CO(OH)                                                                            1.AKO    }
+  G1G504h = 5C+7H+7O;      {CH2(OH)COCH(O.)CH(OH)CO(OOH)                                                                           1.GKO    }
+  G1P506Z = 5C+6H+N+9O;    {CH2(OH)COCH(O.)CH(OH)CO(OONO2)                                                                         1.PKO    }
+  G1N503A = 5C+7H+2N+9O;   {CH2(OH)COCH(O.)CH(ONO2)CH2(ONO2)                                                                       1.NNK    }
+  G1H508q = 5C+8H+N+8O;    {CH2(OH)COCH(O.)CH(ONO2)CH2(OOH)                                                                        1.HNK    }
+  G1N506Y = 5C+6H+N+7O;    {CH2(OH)COCH(O.)CH(ONO2)CHO                                                                             1.NDK    }
+  G1A505D = 5C+6H+N+8O;    {CH2(OH)COCH(O.)CH(ONO2)CO(OH)                                                                          1.ANK    }
+  G1G505D = 5C+6H+N+9O;    {CH2(OH)COCH(O.)CH(ONO2)CO(OOH)                                                                         1.GNK    }
+  G1P5048 = 5C+5H+2N+11O;  {CH2(OH)COCH(O.)CH(ONO2)CO(OONO2)                                                                       1.PNK    }
+  G1H50Ag = 5C+8H+N+8O;    {CH2(OH)COCH(O.)CH(OOH)CH2(ONO2)                                                                        1.HNK    }
+  G1H50Au = 5C+9H+7O;      {CH2(OH)COCH(O.)CH(OOH)CH2(OOH)                                                                         1.HHK    }
+  G1H50A3 = 5C+7H+6O;      {CH2(OH)COCH(O.)CH(OOH)CHO                                                                              1.HDK    }
+  G1A507Q = 5C+7H+7O;      {CH2(OH)COCH(O.)CH(OOH)CO(OH)                                                                           1.AHK    }
+  G1G506H = 5C+7H+8O;      {CH2(OH)COCH(O.)CH(OOH)CO(OOH)                                                                          1.GHK    }
+  G1P5086 = 5C+6H+N+10O;   {CH2(OH)COCH(O.)CH(OOH)CO(OONO2)                                                                        1.PHK    }
+  G1K4008 = 4C+7H+4O;      {CH2(OH)COCH(O.)CH2(OH)                                                                                 1.KOO    }
+  G1N400Y = 4C+6H+N+6O;    {CH2(OH)COCH(O.)CH2(ONO2)                                                                               1.NKO    }
+  G1H401w = 4C+7H+5O;      {CH2(OH)COCH(O.)CH2(OOH)                                                                                1.HKO    }
+  G1N501n = 5C+8H+N+6O;    {CH2(OH)COCH(O.)CH2CH2(ONO2)                                                                            1.NKO    }
+  G1H507A = 5C+9H+5O;      {CH2(OH)COCH(O.)CH2CH2(OOH)                                                                             1.HKO    }
+  G1D500Y = 5C+7H+4O;      {CH2(OH)COCH(O.)CH2CHO                                                                                  1.DKO    }
+  G1A501d = 5C+7H+5O;      {CH2(OH)COCH(O.)CH2CO(OH)                                                                               1.AKO    }
+  G1G501S = 5C+7H+6O;      {CH2(OH)COCH(O.)CH2CO(OOH)                                                                              1.GKO    }
+  G1P501f = 5C+6H+N+8O;    {CH2(OH)COCH(O.)CH2CO(OONO2)                                                                            1.PKO    }
+  G1D400J = 4C+5H+4O;      {CH2(OH)COCH(O.)CHO                                                                                     1.DKO    }
+  G1A400b = 4C+5H+5O;      {CH2(OH)COCH(O.)CO(OH)                                                                                  1.AKO    }
+  G1G400T = 4C+5H+6O;      {CH2(OH)COCH(O.)CO(OOH)                                                                                 1.GKO    }
+  G1P400c = 4C+4H+N+8O;    {CH2(OH)COCH(O.)CO(OONO2)                                                                               1.PKO    }
+  G1K500j = 5C+7H+5O;      {CH2(OH)COCH(O.)COCH2(OH)                                                                               1.KKO    }
+  G1N503G = 5C+6H+N+7O;    {CH2(OH)COCH(O.)COCH2(ONO2)                                                                             1.NKK    }
+  G1H508t = 5C+7H+6O;      {CH2(OH)COCH(O.)COCH2(OOH)                                                                              1.HKK    }
+  G1D501H = 5C+5H+5O;      {CH2(OH)COCH(O.)COCHO                                                                                   1.DKK    }
+  G1A503z = 5C+5H+6O;      {CH2(OH)COCH(O.)COCO(OH)                                                                                1.AKK    }
+  G1G502e = 5C+5H+7O;      {CH2(OH)COCH(O.)COCO(OOH)                                                                               1.GKK    }
+  G1P504A = 5C+4H+N+9O;    {CH2(OH)COCH(O.)COCO(OONO2)                                                                             1.PKK    }
+  G1K500k = 5C+9H+5O;      {CH2(OH)COCH(OH)CH(O.)CH2(OH)                                                                           1.KOO    }
+  G1N504X = 5C+8H+N+7O;    {CH2(OH)COCH(OH)CH(O.)CH2(ONO2)                                                                         1.NKO    }
+  G1H508x = 5C+9H+6O;      {CH2(OH)COCH(OH)CH(O.)CH2(OOH)                                                                          1.HKO    }
+  G1D501B = 5C+7H+5O;      {CH2(OH)COCH(OH)CH(O.)CHO                                                                               1.DKO    }
+  G1A504n = 5C+7H+6O;      {CH2(OH)COCH(OH)CH(O.)CO(OH)                                                                            1.AKO    }
+  G1G5044 = 5C+7H+7O;      {CH2(OH)COCH(OH)CH(O.)CO(OOH)                                                                           1.GKO    }
+  G1P504u = 5C+6H+N+9O;    {CH2(OH)COCH(OH)CH(O.)CO(OONO2)                                                                         1.PKO    }
+  G1K500w = 5C+9H+5O;      {CH2(OH)COCH(OH)CH(OH)CH2(O.)                                                                           1.KOO    }
+  GNK500t = 5C+9H+N+7O;    {CH2(OH)COCH(OH)CH(OH)CH2(ONO2)                                                                         NKOOO    }
+  G2K500v = 5C+9H+6O;      {CH2(OH)COCH(OH)CH(OH)CH2(OO.)                                                                          2.KOO    }
+  GHK500w = 5C+10H+6O;     {CH2(OH)COCH(OH)CH(OH)CH2(OOH)                                                                          HKOOO    }
+  GDK500X = 5C+8H+5O;      {CH2(OH)COCH(OH)CH(OH)CHO                                                                               DKOOO    }
+  GAK500Z = 5C+8H+6O;      {CH2(OH)COCH(OH)CH(OH)CO(OH)                                                                            AKOOO    }
+  G3K500g = 5C+7H+7O;      {CH2(OH)COCH(OH)CH(OH)CO(OO.)                                                                           3.KKO    }
+  GGK500W = 5C+8H+7O;      {CH2(OH)COCH(OH)CH(OH)CO(OOH)                                                                           GKOOO    }
+  GPK500W = 5C+7H+N+9O;    {CH2(OH)COCH(OH)CH(OH)CO(OONO2)                                                                         PKOOO    }
+  G1N505q = 5C+8H+N+7O;    {CH2(OH)COCH(OH)CH(ONO2)CH2(O.)                                                                         1.NKO    }
+  GNK5015 = 5C+9H+N+7O;    {CH2(OH)COCH(OH)CH(ONO2)CH2(OH)                                                                         NKOOO    }
+  GNN502O = 5C+8H+2N+9O;   {CH2(OH)COCH(OH)CH(ONO2)CH2(ONO2)                                                                       NNKOO    }
+  G2N505T = 5C+8H+N+8O;    {CH2(OH)COCH(OH)CH(ONO2)CH2(OO.)                                                                        2.NKO    }
+  GHN5057 = 5C+9H+N+8O;    {CH2(OH)COCH(OH)CH(ONO2)CH2(OOH)                                                                        HNKOO    }
+  GND501E = 5C+7H+N+7O;    {CH2(OH)COCH(OH)CH(ONO2)CHO                                                                             NDKOO    }
+  GAN502O = 5C+7H+N+8O;    {CH2(OH)COCH(OH)CH(ONO2)CO(OH)                                                                          ANKOO    }
+  G3N501o = 5C+6H+N+9O;    {CH2(OH)COCH(OH)CH(ONO2)CO(OO.)                                                                         3.NKK    }
+  GGN502A = 5C+7H+N+9O;    {CH2(OH)COCH(OH)CH(ONO2)CO(OOH)                                                                         GNKOO    }
+  GPN502X = 5C+6H+2N+11O;  {CH2(OH)COCH(OH)CH(ONO2)CO(OONO2)                                                                       PNKOO    }
+  G2K500b = 5C+9H+6O;      {CH2(OH)COCH(OH)CH(OO.)CH2(OH)                                                                          2.KOO    }
+  G2N5049 = 5C+8H+N+8O;    {CH2(OH)COCH(OH)CH(OO.)CH2(ONO2)                                                                        2.NKO    }
+  G2H5048 = 5C+9H+7O;      {CH2(OH)COCH(OH)CH(OO.)CH2(OOH)                                                                         2.HKO    }
+  G2D500j = 5C+7H+6O;      {CH2(OH)COCH(OH)CH(OO.)CHO                                                                              2.DKO    }
+  G2A503s = 5C+7H+7O;      {CH2(OH)COCH(OH)CH(OO.)CO(OH)                                                                           2.AKO    }
+  G2G5032 = 5C+7H+8O;      {CH2(OH)COCH(OH)CH(OO.)CO(OOH)                                                                          2.GKO    }
+  G2P503w = 5C+6H+N+10O;   {CH2(OH)COCH(OH)CH(OO.)CO(OONO2)                                                                        2.PKO    }
+  G1H506b = 5C+9H+6O;      {CH2(OH)COCH(OH)CH(OOH)CH2(O.)                                                                          1.HKO    }
+  GHK500e = 5C+10H+6O;     {CH2(OH)COCH(OH)CH(OOH)CH2(OH)                                                                          HKOOO    }
+  GHN503h = 5C+9H+N+8O;    {CH2(OH)COCH(OH)CH(OOH)CH2(ONO2)                                                                        HNKOO    }
+  GHH502Y = 5C+10H+7O;     {CH2(OH)COCH(OH)CH(OOH)CH2(OOH)                                                                         HHKOO    }
+  GHD501G = 5C+8H+6O;      {CH2(OH)COCH(OH)CH(OOH)CHO                                                                              HDKOO    }
+  GAH504K = 5C+8H+7O;      {CH2(OH)COCH(OH)CH(OOH)CO(OH)                                                                           AHKOO    }
+  G3H503U = 5C+7H+8O;      {CH2(OH)COCH(OH)CH(OOH)CO(OO.)                                                                          3.HKK    }
+  GGH5049 = 5C+8H+8O;      {CH2(OH)COCH(OH)CH(OOH)CO(OOH)                                                                          GHKOO    }
+  GPH504M = 5C+7H+N+10O;   {CH2(OH)COCH(OH)CH(OOH)CO(OONO2)                                                                        PHKOO    }
+  G1K400B = 4C+7H+4O;      {CH2(OH)COCH(OH)CH2(O.)                                                                                 1.KOO    }
+  GNK4005 = 4C+7H+N+6O;    {CH2(OH)COCH(OH)CH2(ONO2)                                                                               NKOO     }
+  G2K400B = 4C+7H+5O;      {CH2(OH)COCH(OH)CH2(OO.)                                                                                2.KOO    }
+  GHK4005 = 4C+8H+5O;      {CH2(OH)COCH(OH)CH2(OOH)                                                                                HKOO     }
+  G1K500t = 5C+9H+4O;      {CH2(OH)COCH(OH)CH2CH2(O.)                                                                              1.KOO    }
+  GNK500m = 5C+9H+N+6O;    {CH2(OH)COCH(OH)CH2CH2(ONO2)                                                                            NKOO     }
+  G2K500y = 5C+9H+5O;      {CH2(OH)COCH(OH)CH2CH2(OO.)                                                                             2.KOO    }
+  GHK5012 = 5C+10H+5O;     {CH2(OH)COCH(OH)CH2CH2(OOH)                                                                             HKOO     }
+  GDK500Q = 5C+8H+4O;      {CH2(OH)COCH(OH)CH2CHO                                                                                  DKOO     }
+  GAK500Q = 5C+8H+5O;      {CH2(OH)COCH(OH)CH2CO(OH)                                                                               AKOO     }
+  G3K500Y = 5C+7H+6O;      {CH2(OH)COCH(OH)CH2CO(OO.)                                                                              3.KKO    }
+  GGK500R = 5C+8H+6O;      {CH2(OH)COCH(OH)CH2CO(OOH)                                                                              GKOO     }
+  GPK500R = 5C+7H+N+8O;    {CH2(OH)COCH(OH)CH2CO(OONO2)                                                                            PKOO     }
+  GDK4006 = 4C+6H+4O;      {CH2(OH)COCH(OH)CHO                                                                                     DKOO     }
+  GAK4008 = 4C+6H+5O;      {CH2(OH)COCH(OH)CO(OH)                                                                                  AKOO     }
+  G3K400C = 4C+5H+6O;      {CH2(OH)COCH(OH)CO(OO.)                                                                                 3.KKO    }
+  GGK4008 = 4C+6H+6O;      {CH2(OH)COCH(OH)CO(OOH)                                                                                 GKOO     }
+  GPK4008 = 4C+5H+N+8O;    {CH2(OH)COCH(OH)CO(OONO2)                                                                               PKOO     }
+  G1K5013 = 5C+7H+5O;      {CH2(OH)COCH(OH)COCH2(O.)                                                                               1.KKO    }
+  GKK500E = 5C+8H+5O;      {CH2(OH)COCH(OH)COCH2(OH)                                                                               KKOOO    }
+  GNK500y = 5C+7H+N+7O;    {CH2(OH)COCH(OH)COCH2(ONO2)                                                                             NKKOO    }
+  G2K500r = 5C+7H+6O;      {CH2(OH)COCH(OH)COCH2(OO.)                                                                              2.KKO    }
+  GHK500r = 5C+8H+6O;      {CH2(OH)COCH(OH)COCH2(OOH)                                                                              HKKOO    }
+  GDK500a = 5C+6H+5O;      {CH2(OH)COCH(OH)COCHO                                                                                   DKKOO    }
+  GAK500c = 5C+6H+6O;      {CH2(OH)COCH(OH)COCO(OH)                                                                                AKKOO    }
+  G3K500n = 5C+5H+7O;      {CH2(OH)COCH(OH)COCO(OO.)                                                                               3.KKK    }
+  GGK500X = 5C+6H+7O;      {CH2(OH)COCH(OH)COCO(OOH)                                                                               GKKOO    }
+  GPK500X = 5C+5H+N+9O;    {CH2(OH)COCH(OH)COCO(OONO2)                                                                             PKKOO    }
+  G1N505Z = 5C+8H+N+7O;    {CH2(OH)COCH(ONO2)CH(O.)CH2(OH)                                                                         1.NKO    }
+  G1N505S = 5C+7H+2N+9O;   {CH2(OH)COCH(ONO2)CH(O.)CH2(ONO2)                                                                       1.NNK    }
+  G1H50BG = 5C+8H+N+8O;    {CH2(OH)COCH(ONO2)CH(O.)CH2(OOH)                                                                        1.HNK    }
+  G1N5077 = 5C+6H+N+7O;    {CH2(OH)COCH(ONO2)CH(O.)CHO                                                                             1.NDK    }
+  G1A505E = 5C+6H+N+8O;    {CH2(OH)COCH(ONO2)CH(O.)CO(OH)                                                                          1.ANK    }
+  G1G506E = 5C+6H+N+9O;    {CH2(OH)COCH(ONO2)CH(O.)CO(OOH)                                                                         1.GNK    }
+  G1P504p = 5C+5H+2N+11O;  {CH2(OH)COCH(ONO2)CH(O.)CO(OONO2)                                                                       1.PNK    }
+  G1N505H = 5C+8H+N+7O;    {CH2(OH)COCH(ONO2)CH(OH)CH2(O.)                                                                         1.NKO    }
+  GNN5024 = 5C+8H+2N+9O;   {CH2(OH)COCH(ONO2)CH(OH)CH2(ONO2)                                                                       NNKOO    }
+  G2N506I = 5C+8H+N+8O;    {CH2(OH)COCH(ONO2)CH(OH)CH2(OO.)                                                                        2.NKO    }
+  GHN506Q = 5C+9H+N+8O;    {CH2(OH)COCH(ONO2)CH(OH)CH2(OOH)                                                                        HNKOO    }
+  GND501A = 5C+7H+N+7O;    {CH2(OH)COCH(ONO2)CH(OH)CHO                                                                             NDKOO    }
+  GAN5029 = 5C+7H+N+8O;    {CH2(OH)COCH(ONO2)CH(OH)CO(OH)                                                                          ANKOO    }
+  G3N501b = 5C+6H+N+9O;    {CH2(OH)COCH(ONO2)CH(OH)CO(OO.)                                                                         3.NKK    }
+  GGN501x = 5C+7H+N+9O;    {CH2(OH)COCH(ONO2)CH(OH)CO(OOH)                                                                         GNKOO    }
+  GPN502J = 5C+6H+2N+11O;  {CH2(OH)COCH(ONO2)CH(OH)CO(OONO2)                                                                       PNKOO    }
+  G1N505T = 5C+7H+2N+9O;   {CH2(OH)COCH(ONO2)CH(ONO2)CH2(O.)                                                                       1.NNK    }
+  GNN502C = 5C+8H+2N+9O;   {CH2(OH)COCH(ONO2)CH(ONO2)CH2(OH)                                                                       NNKOO    }
+  GNN5029 = 5C+7H+3N+11O;  {CH2(OH)COCH(ONO2)CH(ONO2)CH2(ONO2)                                                                     NNNKO    }
+  G2N506S = 5C+7H+2N+10O;  {CH2(OH)COCH(ONO2)CH(ONO2)CH2(OO.)                                                                      2.NNK    }
+  GHN506c = 5C+8H+2N+10O;  {CH2(OH)COCH(ONO2)CH(ONO2)CH2(OOH)                                                                      HNNKO    }
+  GNN503D = 5C+6H+2N+9O;   {CH2(OH)COCH(ONO2)CH(ONO2)CHO                                                                           NNDKO    }
+  GAN501m = 5C+6H+2N+10O;  {CH2(OH)COCH(ONO2)CH(ONO2)CO(OH)                                                                        ANNKO    }
+  G3N502B = 5C+5H+2N+11O;  {CH2(OH)COCH(ONO2)CH(ONO2)CO(OO.)                                                                       3.NNK    }
+  GGN502W = 5C+6H+2N+11O;  {CH2(OH)COCH(ONO2)CH(ONO2)CO(OOH)                                                                       GNNKO    }
+  GPN501r = 5C+5H+3N+13O;  {CH2(OH)COCH(ONO2)CH(ONO2)CO(OONO2)                                                                     PNNKO    }
+  G2N504X = 5C+8H+N+8O;    {CH2(OH)COCH(ONO2)CH(OO.)CH2(OH)                                                                        2.NKO    }
+  G2N5064 = 5C+7H+2N+10O;  {CH2(OH)COCH(ONO2)CH(OO.)CH2(ONO2)                                                                      2.NNK    }
+  G2H503m = 5C+8H+N+9O;    {CH2(OH)COCH(ONO2)CH(OO.)CH2(OOH)                                                                       2.HNK    }
+  G2N505t = 5C+6H+N+8O;    {CH2(OH)COCH(ONO2)CH(OO.)CHO                                                                            2.NDK    }
+  G2A5059 = 5C+6H+N+9O;    {CH2(OH)COCH(ONO2)CH(OO.)CO(OH)                                                                         2.ANK    }
+  G2G504C = 5C+6H+N+10O;   {CH2(OH)COCH(ONO2)CH(OO.)CO(OOH)                                                                        2.GNK    }
+  G2P503t = 5C+5H+2N+12O;  {CH2(OH)COCH(ONO2)CH(OO.)CO(OONO2)                                                                      2.PNK    }
+  G1H50Ah = 5C+8H+N+8O;    {CH2(OH)COCH(ONO2)CH(OOH)CH2(O.)                                                                        1.HNK    }
+  GHN5036 = 5C+9H+N+8O;    {CH2(OH)COCH(ONO2)CH(OOH)CH2(OH)                                                                        HNKOO    }
+  GHN5067 = 5C+8H+2N+10O;  {CH2(OH)COCH(ONO2)CH(OOH)CH2(ONO2)                                                                      HNNKO    }
+  G2H503n = 5C+8H+N+9O;    {CH2(OH)COCH(ONO2)CH(OOH)CH2(OO.)                                                                       2.HNK    }
+  GHH502l = 5C+9H+N+9O;    {CH2(OH)COCH(ONO2)CH(OOH)CH2(OOH)                                                                       HHNKO    }
+  GHN505p = 5C+7H+N+8O;    {CH2(OH)COCH(ONO2)CH(OOH)CHO                                                                            HNDKO    }
+  GAH5041 = 5C+7H+N+9O;    {CH2(OH)COCH(ONO2)CH(OOH)CO(OH)                                                                         AHNKO    }
+  G3H502t = 5C+6H+N+10O;   {CH2(OH)COCH(ONO2)CH(OOH)CO(OO.)                                                                        3.HNK    }
+  GGH503W = 5C+7H+N+10O;   {CH2(OH)COCH(ONO2)CH(OOH)CO(OOH)                                                                        GHNKO    }
+  GPH504A = 5C+6H+2N+12O;  {CH2(OH)COCH(ONO2)CH(OOH)CO(OONO2)                                                                      PHNKO    }
+  G1N4016 = 4C+6H+N+6O;    {CH2(OH)COCH(ONO2)CH2(O.)                                                                               1.NKO    }
+  GNK4008 = 4C+7H+N+6O;    {CH2(OH)COCH(ONO2)CH2(OH)                                                                               NKOO     }
+  GNN400R = 4C+6H+2N+8O;   {CH2(OH)COCH(ONO2)CH2(ONO2)                                                                             NNKO     }
+  G2N400x = 4C+6H+N+7O;    {CH2(OH)COCH(ONO2)CH2(OO.)                                                                              2.NKO    }
+  GHN401B = 4C+7H+N+7O;    {CH2(OH)COCH(ONO2)CH2(OOH)                                                                              HNKO     }
+  G1N503R = 5C+8H+N+6O;    {CH2(OH)COCH(ONO2)CH2CH2(O.)                                                                            1.NKO    }
+  GNN501Q = 5C+8H+2N+8O;   {CH2(OH)COCH(ONO2)CH2CH2(ONO2)                                                                          NNKO     }
+  G2N5038 = 5C+8H+N+7O;    {CH2(OH)COCH(ONO2)CH2CH2(OO.)                                                                           2.NKO    }
+  GHN504A = 5C+9H+N+7O;    {CH2(OH)COCH(ONO2)CH2CH2(OOH)                                                                           HNKO     }
+  GND500u = 5C+7H+N+6O;    {CH2(OH)COCH(ONO2)CH2CHO                                                                                NDKO     }
+  GAN501Y = 5C+7H+N+7O;    {CH2(OH)COCH(ONO2)CH2CO(OH)                                                                             ANKO     }
+  G3N501F = 5C+6H+N+8O;    {CH2(OH)COCH(ONO2)CH2CO(OO.)                                                                            3.NKK    }
+  GGN501Y = 5C+7H+N+8O;    {CH2(OH)COCH(ONO2)CH2CO(OOH)                                                                            GNKO     }
+  GPN501a = 5C+6H+2N+10O;  {CH2(OH)COCH(ONO2)CH2CO(OONO2)                                                                          PNKO     }
+  GND400L = 4C+5H+N+6O;    {CH2(OH)COCH(ONO2)CHO                                                                                   NDKO     }
+  GAN400X = 4C+5H+N+7O;    {CH2(OH)COCH(ONO2)CO(OH)                                                                                ANKO     }
+  G3N400Q = 4C+4H+N+8O;    {CH2(OH)COCH(ONO2)CO(OO.)                                                                               3.NKK    }
+  GGN400S = 4C+5H+N+8O;    {CH2(OH)COCH(ONO2)CO(OOH)                                                                               GNKO     }
+  GPN400Y = 4C+4H+2N+10O;  {CH2(OH)COCH(ONO2)CO(OONO2)                                                                             PNKO     }
+  G1N505e = 5C+6H+N+7O;    {CH2(OH)COCH(ONO2)COCH2(O.)                                                                             1.NKK    }
+  GNK5014 = 5C+7H+N+7O;    {CH2(OH)COCH(ONO2)COCH2(OH)                                                                             NKKOO    }
+  GNN502F = 5C+6H+2N+9O;   {CH2(OH)COCH(ONO2)COCH2(ONO2)                                                                           NNKKO    }
+  G2N506K = 5C+6H+N+8O;    {CH2(OH)COCH(ONO2)COCH2(OO.)                                                                            2.NKK    }
+  GHN506S = 5C+7H+N+8O;    {CH2(OH)COCH(ONO2)COCH2(OOH)                                                                            HNKKO    }
+  GND501W = 5C+5H+N+7O;    {CH2(OH)COCH(ONO2)COCHO                                                                                 NDKKO    }
+  GAN501p = 5C+5H+N+8O;    {CH2(OH)COCH(ONO2)COCO(OH)                                                                              ANKKO    }
+  G3N502S = 5C+4H+N+9O;    {CH2(OH)COCH(ONO2)COCO(OO.)                                                                             3.NKK    }
+  GGN502H = 5C+5H+N+9O;    {CH2(OH)COCH(ONO2)COCO(OOH)                                                                             GNKKO    }
+  GPN501s = 5C+4H+2N+11O;  {CH2(OH)COCH(ONO2)COCO(OONO2)                                                                           PNKKO    }
+  G2N502L = 5C+8H+N+8O;    {CH2(OH)COCH(OO.)CH(OH)CH2(ONO2)                                                                        2.NKO    }
+  G2D500T = 5C+7H+6O;      {CH2(OH)COCH(OO.)CH(OH)CHO                                                                              2.DKO    }
+  G2A504N = 5C+7H+7O;      {CH2(OH)COCH(OO.)CH(OH)CO(OH)                                                                           2.AKO    }
+  G2G503M = 5C+7H+8O;      {CH2(OH)COCH(OO.)CH(OH)CO(OOH)                                                                          2.GKO    }
+  G2P504m = 5C+6H+N+10O;   {CH2(OH)COCH(OO.)CH(OH)CO(OONO2)                                                                        2.PKO    }
+  G2N502n = 5C+7H+2N+10O;  {CH2(OH)COCH(OO.)CH(ONO2)CH2(ONO2)                                                                      2.NNK    }
+  G2H5037 = 5C+8H+N+9O;    {CH2(OH)COCH(OO.)CH(ONO2)CH2(OOH)                                                                       2.HNK    }
+  G2N505d = 5C+6H+N+8O;    {CH2(OH)COCH(OO.)CH(ONO2)CHO                                                                            2.NDK    }
+  G2A504i = 5C+6H+N+9O;    {CH2(OH)COCH(OO.)CH(ONO2)CO(OH)                                                                         2.ANK    }
+  G2G503l = 5C+6H+N+10O;   {CH2(OH)COCH(OO.)CH(ONO2)CO(OOH)                                                                        2.GNK    }
+  G2P503D = 5C+5H+2N+12O;  {CH2(OH)COCH(OO.)CH(ONO2)CO(OONO2)                                                                      2.PNK    }
+  G2H503S = 5C+8H+N+9O;    {CH2(OH)COCH(OO.)CH(OOH)CH2(ONO2)                                                                       2.HNK    }
+  G2K4008 = 4C+7H+5O;      {CH2(OH)COCH(OO.)CH2(OH)                                                                                2.KOO    }
+  G2N400X = 4C+6H+N+7O;    {CH2(OH)COCH(OO.)CH2(ONO2)                                                                              2.NKO    }
+  G2N501k = 5C+8H+N+7O;    {CH2(OH)COCH(OO.)CH2CH2(ONO2)                                                                           2.NKO    }
+  G2H503g = 5C+9H+6O;      {CH2(OH)COCH(OO.)CH2CH2(OOH)                                                                            2.HKO    }
+  G2D500P = 5C+7H+5O;      {CH2(OH)COCH(OO.)CH2CHO                                                                                 2.DKO    }
+  G2A501P = 5C+7H+6O;      {CH2(OH)COCH(OO.)CH2CO(OH)                                                                              2.AKO    }
+  G2G501D = 5C+7H+7O;      {CH2(OH)COCH(OO.)CH2CO(OOH)                                                                             2.GKO    }
+  G2P501R = 5C+6H+N+9O;    {CH2(OH)COCH(OO.)CH2CO(OONO2)                                                                           2.PKO    }
+  G2A400U = 4C+5H+6O;      {CH2(OH)COCH(OO.)CO(OH)                                                                                 2.AKO    }
+  G2G400J = 4C+5H+7O;      {CH2(OH)COCH(OO.)CO(OOH)                                                                                2.GKO    }
+  G2P400X = 4C+4H+N+9O;    {CH2(OH)COCH(OO.)CO(OONO2)                                                                              2.PKO    }
+  G2K500a = 5C+7H+6O;      {CH2(OH)COCH(OO.)COCH2(OH)                                                                              2.KKO    }
+  G2N502u = 5C+6H+N+8O;    {CH2(OH)COCH(OO.)COCH2(ONO2)                                                                            2.NKK    }
+  G2H503B = 5C+7H+7O;      {CH2(OH)COCH(OO.)COCH2(OOH)                                                                             2.HKK    }
+  G2D500l = 5C+5H+6O;      {CH2(OH)COCH(OO.)COCHO                                                                                  2.DKK    }
+  G2A503A = 5C+5H+7O;      {CH2(OH)COCH(OO.)COCO(OH)                                                                               2.AKK    }
+  G2G501y = 5C+5H+8O;      {CH2(OH)COCH(OO.)COCO(OOH)                                                                              2.GKK    }
+  G2P503G = 5C+4H+N+10O;   {CH2(OH)COCH(OO.)COCO(OONO2)                                                                            2.PKK    }
+  G1H502k = 5C+9H+6O;      {CH2(OH)COCH(OOH)CH(O.)CH2(OH)                                                                          1.HKO    }
+  G1H506F = 5C+8H+N+8O;    {CH2(OH)COCH(OOH)CH(O.)CH2(ONO2)                                                                        1.HNK    }
+  G1H508r = 5C+9H+7O;      {CH2(OH)COCH(OOH)CH(O.)CH2(OOH)                                                                         1.HHK    }
+  G1H509A = 5C+7H+6O;      {CH2(OH)COCH(OOH)CH(O.)CHO                                                                              1.HDK    }
+  G1A504m = 5C+7H+7O;      {CH2(OH)COCH(OOH)CH(O.)CO(OH)                                                                           1.AHK    }
+  G1G5043 = 5C+7H+8O;      {CH2(OH)COCH(OOH)CH(O.)CO(OOH)                                                                          1.GHK    }
+  G1P504t = 5C+6H+N+10O;   {CH2(OH)COCH(OOH)CH(O.)CO(OONO2)                                                                        1.PHK    }
+  G1H5057 = 5C+9H+6O;      {CH2(OH)COCH(OOH)CH(OH)CH2(O.)                                                                          1.HKO    }
+  GHN502t = 5C+9H+N+8O;    {CH2(OH)COCH(OOH)CH(OH)CH2(ONO2)                                                                        HNKOO    }
+  GHH502U = 5C+10H+7O;     {CH2(OH)COCH(OOH)CH(OH)CH2(OOH)                                                                         HHKOO    }
+  GHD500x = 5C+8H+6O;      {CH2(OH)COCH(OOH)CH(OH)CHO                                                                              HDKOO    }
+  GAH502m = 5C+8H+7O;      {CH2(OH)COCH(OOH)CH(OH)CO(OH)                                                                           AHKOO    }
+  G3H501s = 5C+7H+8O;      {CH2(OH)COCH(OOH)CH(OH)CO(OO.)                                                                          3.HKK    }
+  GGH502X = 5C+8H+8O;      {CH2(OH)COCH(OOH)CH(OH)CO(OOH)                                                                          GHKOO    }
+  GPH502v = 5C+7H+N+10O;   {CH2(OH)COCH(OOH)CH(OH)CO(OONO2)                                                                        PHKOO    }
+  G1H506G = 5C+8H+N+8O;    {CH2(OH)COCH(OOH)CH(ONO2)CH2(O.)                                                                        1.HNK    }
+  GHN503Z = 5C+8H+2N+10O;  {CH2(OH)COCH(OOH)CH(ONO2)CH2(ONO2)                                                                      HNNKO    }
+  G2H5038 = 5C+8H+N+9O;    {CH2(OH)COCH(OOH)CH(ONO2)CH2(OO.)                                                                       2.HNK    }
+  GHH501p = 5C+9H+N+9O;    {CH2(OH)COCH(OOH)CH(ONO2)CH2(OOH)                                                                       HHNKO    }
+  GHN505K = 5C+7H+N+8O;    {CH2(OH)COCH(OOH)CH(ONO2)CHO                                                                            HNDKO    }
+  GAH503D = 5C+7H+N+9O;    {CH2(OH)COCH(OOH)CH(ONO2)CO(OH)                                                                         AHNKO    }
+  G3H502Q = 5C+6H+N+10O;   {CH2(OH)COCH(OOH)CH(ONO2)CO(OO.)                                                                        3.HNK    }
+  GGH502y = 5C+7H+N+10O;   {CH2(OH)COCH(OOH)CH(ONO2)CO(OOH)                                                                        GHNKO    }
+  GPH503J = 5C+6H+2N+12O;  {CH2(OH)COCH(OOH)CH(ONO2)CO(OONO2)                                                                      PHNKO    }
+  G2H501a = 5C+9H+7O;      {CH2(OH)COCH(OOH)CH(OO.)CH2(OH)                                                                         2.HKO    }
+  G2H503T = 5C+8H+N+9O;    {CH2(OH)COCH(OOH)CH(OO.)CH2(ONO2)                                                                       2.HNK    }
+  G2H503f = 5C+9H+8O;      {CH2(OH)COCH(OOH)CH(OO.)CH2(OOH)                                                                        2.HHK    }
+  G2A503r = 5C+7H+8O;      {CH2(OH)COCH(OOH)CH(OO.)CO(OH)                                                                          2.AHK    }
+  G2G5031 = 5C+7H+9O;      {CH2(OH)COCH(OOH)CH(OO.)CO(OOH)                                                                         2.GHK    }
+  G2P503v = 5C+6H+N+11O;   {CH2(OH)COCH(OOH)CH(OO.)CO(OONO2)                                                                       2.PHK    }
+  G1H50Ai = 5C+9H+7O;      {CH2(OH)COCH(OOH)CH(OOH)CH2(O.)                                                                         1.HHK    }
+  GHH5017 = 5C+10H+7O;     {CH2(OH)COCH(OOH)CH(OOH)CH2(OH)                                                                         HHKOO    }
+  GHH502M = 5C+9H+N+9O;    {CH2(OH)COCH(OOH)CH(OOH)CH2(ONO2)                                                                       HHNKO    }
+  GHH502S = 5C+10H+8O;     {CH2(OH)COCH(OOH)CH(OOH)CH2(OOH)                                                                        HHHKO    }
+  GHH502P = 5C+8H+7O;      {CH2(OH)COCH(OOH)CH(OOH)CHO                                                                             HHDKO    }
+  GAH504J = 5C+8H+8O;      {CH2(OH)COCH(OOH)CH(OOH)CO(OH)                                                                          AHHKO    }
+  G3H503S = 5C+7H+9O;      {CH2(OH)COCH(OOH)CH(OOH)CO(OO.)                                                                         3.HHK    }
+  GGH5047 = 5C+8H+9O;      {CH2(OH)COCH(OOH)CH(OOH)CO(OOH)                                                                         GHHKO    }
+  GPH504L = 5C+7H+N+11O;   {CH2(OH)COCH(OOH)CH(OOH)CO(OONO2)                                                                       PHHKO    }
+  G1H4019 = 4C+7H+5O;      {CH2(OH)COCH(OOH)CH2(O.)                                                                                1.HKO    }
+  GHK4009 = 4C+8H+5O;      {CH2(OH)COCH(OOH)CH2(OH)                                                                                HKOO     }
+  GHN400l = 4C+7H+N+7O;    {CH2(OH)COCH(OOH)CH2(ONO2)                                                                              HNKO     }
+  G2H400v = 4C+7H+6O;      {CH2(OH)COCH(OOH)CH2(OO.)                                                                               2.HKO    }
+  GHH400p = 4C+8H+6O;      {CH2(OH)COCH(OOH)CH2(OOH)                                                                               HHKO     }
+  G1H504E = 5C+9H+5O;      {CH2(OH)COCH(OOH)CH2CH2(O.)                                                                             1.HKO    }
+  GHN502K = 5C+9H+N+7O;    {CH2(OH)COCH(OOH)CH2CH2(ONO2)                                                                           HNKO     }
+  G2H503h = 5C+9H+6O;      {CH2(OH)COCH(OOH)CH2CH2(OO.)                                                                            2.HKO    }
+  GHH502g = 5C+10H+6O;     {CH2(OH)COCH(OOH)CH2CH2(OOH)                                                                            HHKO     }
+  GHD500t = 5C+8H+5O;      {CH2(OH)COCH(OOH)CH2CHO                                                                                 HDKO     }
+  GAH5027 = 5C+8H+6O;      {CH2(OH)COCH(OOH)CH2CO(OH)                                                                              AHKO     }
+  G3H501h = 5C+7H+7O;      {CH2(OH)COCH(OOH)CH2CO(OO.)                                                                             3.HKK    }
+  GGH501y = 5C+8H+7O;      {CH2(OH)COCH(OOH)CH2CO(OOH)                                                                             GHKO     }
+  GPH5024 = 5C+7H+N+9O;    {CH2(OH)COCH(OOH)CH2CO(OONO2)                                                                           PHKO     }
+  GHD400G = 4C+6H+5O;      {CH2(OH)COCH(OOH)CHO                                                                                    HDKO     }
+  GAH400b = 4C+6H+6O;      {CH2(OH)COCH(OOH)CO(OH)                                                                                 AHKO     }
+  G3H400Q = 4C+5H+7O;      {CH2(OH)COCH(OOH)CO(OO.)                                                                                3.HKK    }
+  GGH400Z = 4C+6H+7O;      {CH2(OH)COCH(OOH)CO(OOH)                                                                                GHKO     }
+  GPH400c = 4C+5H+N+9O;    {CH2(OH)COCH(OOH)CO(OONO2)                                                                              PHKO     }
+  G1H506g = 5C+7H+6O;      {CH2(OH)COCH(OOH)COCH2(O.)                                                                              1.HKK    }
+  GHK500l = 5C+8H+6O;      {CH2(OH)COCH(OOH)COCH2(OH)                                                                              HKKOO    }
+  GHN503o = 5C+7H+N+8O;    {CH2(OH)COCH(OOH)COCH2(ONO2)                                                                            HNKKO    }
+  G2H503C = 5C+7H+7O;      {CH2(OH)COCH(OOH)COCH2(OO.)                                                                             2.HKK    }
+  GHH501s = 5C+8H+7O;      {CH2(OH)COCH(OOH)COCH2(OOH)                                                                             HHKKO    }
+  GHD5014 = 5C+6H+6O;      {CH2(OH)COCH(OOH)COCHO                                                                                  HDKKO    }
+  GAH503I = 5C+6H+7O;      {CH2(OH)COCH(OOH)COCO(OH)                                                                               AHKKO    }
+  G3H504Y = 5C+5H+8O;      {CH2(OH)COCH(OOH)COCO(OO.)                                                                              3.HKK    }
+  GGH5033 = 5C+6H+8O;      {CH2(OH)COCH(OOH)COCO(OOH)                                                                              GHKKO    }
+  GPH503O = 5C+5H+N+10O;   {CH2(OH)COCH(OOH)COCO(OONO2)                                                                            PHKKO    }
+  G1K3001 = 3C+5H+3O;      {CH2(OH)COCH2(O.)                                                                                       1.KO     }
+  GKO3001 = 3C+6H+3O;      {CH2(OH)COCH2(OH)                                                                                       KOO      }
+  GNK3001 = 3C+5H+N+5O;    {CH2(OH)COCH2(ONO2)                                                                                     NKO      }
+  G2K3001 = 3C+5H+4O;      {CH2(OH)COCH2(OO.)                                                                                      2.KO     }
+  GHK3001 = 3C+6H+4O;      {CH2(OH)COCH2(OOH)                                                                                      HKO      }
+  G1K500E = 5C+9H+4O;      {CH2(OH)COCH2CH(O.)CH2(OH)                                                                              1.KOO    }
+  G1N501o = 5C+8H+N+6O;    {CH2(OH)COCH2CH(O.)CH2(ONO2)                                                                            1.NKO    }
+  G1H502j = 5C+9H+5O;      {CH2(OH)COCH2CH(O.)CH2(OOH)                                                                             1.HKO    }
+  G1D500Z = 5C+7H+4O;      {CH2(OH)COCH2CH(O.)CHO                                                                                  1.DKO    }
+  G1A501e = 5C+7H+5O;      {CH2(OH)COCH2CH(O.)CO(OH)                                                                               1.AKO    }
+  G1G501T = 5C+7H+6O;      {CH2(OH)COCH2CH(O.)CO(OOH)                                                                              1.GKO    }
+  G1P501g = 5C+6H+N+8O;    {CH2(OH)COCH2CH(O.)CO(OONO2)                                                                            1.PKO    }
+  G1K500Y = 5C+9H+4O;      {CH2(OH)COCH2CH(OH)CH2(O.)                                                                              1.KOO    }
+  GNK500J = 5C+9H+N+6O;    {CH2(OH)COCH2CH(OH)CH2(ONO2)                                                                            NKOO     }
+  G2K500i = 5C+9H+5O;      {CH2(OH)COCH2CH(OH)CH2(OO.)                                                                             2.KOO    }
+  GHK500W = 5C+10H+5O;     {CH2(OH)COCH2CH(OH)CH2(OOH)                                                                             HKOO     }
+  GDK500F = 5C+8H+4O;      {CH2(OH)COCH2CH(OH)CHO                                                                                  DKOO     }
+  GAK500K = 5C+8H+5O;      {CH2(OH)COCH2CH(OH)CO(OH)                                                                               AKOO     }
+  G3K500L = 5C+7H+6O;      {CH2(OH)COCH2CH(OH)CO(OO.)                                                                              3.KKO    }
+  GGK500L = 5C+8H+6O;      {CH2(OH)COCH2CH(OH)CO(OOH)                                                                              GKOO     }
+  GPK500L = 5C+7H+N+8O;    {CH2(OH)COCH2CH(OH)CO(OONO2)                                                                            PKOO     }
+  G1N5039 = 5C+8H+N+6O;    {CH2(OH)COCH2CH(ONO2)CH2(O.)                                                                            1.NKO    }
+  GNK500N = 5C+9H+N+6O;    {CH2(OH)COCH2CH(ONO2)CH2(OH)                                                                            NKOO     }
+  GNN500l = 5C+8H+2N+8O;   {CH2(OH)COCH2CH(ONO2)CH2(ONO2)                                                                          NNKO     }
+  G2N5047 = 5C+8H+N+7O;    {CH2(OH)COCH2CH(ONO2)CH2(OO.)                                                                           2.NKO    }
+  GHN502I = 5C+9H+N+7O;    {CH2(OH)COCH2CH(ONO2)CH2(OOH)                                                                           HNKO     }
+  GND500e = 5C+7H+N+6O;    {CH2(OH)COCH2CH(ONO2)CHO                                                                                NDKO     }
+  GAN501H = 5C+7H+N+7O;    {CH2(OH)COCH2CH(ONO2)CO(OH)                                                                             ANKO     }
+  G3N500n = 5C+6H+N+8O;    {CH2(OH)COCH2CH(ONO2)CO(OO.)                                                                            3.NKK    }
+  GGN5016 = 5C+7H+N+8O;    {CH2(OH)COCH2CH(ONO2)CO(OOH)                                                                            GNKO     }
+  GPN501L = 5C+6H+2N+10O;  {CH2(OH)COCH2CH(ONO2)CO(OONO2)                                                                          PNKO     }
+  G2K500D = 5C+9H+5O;      {CH2(OH)COCH2CH(OO.)CH2(OH)                                                                             2.KOO    }
+  G2N501l = 5C+8H+N+7O;    {CH2(OH)COCH2CH(OO.)CH2(ONO2)                                                                           2.NKO    }
+  G2H501Z = 5C+9H+6O;      {CH2(OH)COCH2CH(OO.)CH2(OOH)                                                                            2.HKO    }
+  G2D500Q = 5C+7H+5O;      {CH2(OH)COCH2CH(OO.)CHO                                                                                 2.DKO    }
+  G2A501Q = 5C+7H+6O;      {CH2(OH)COCH2CH(OO.)CO(OH)                                                                              2.AKO    }
+  G2G501E = 5C+7H+7O;      {CH2(OH)COCH2CH(OO.)CO(OOH)                                                                             2.GKO    }
+  G2P501S = 5C+6H+N+9O;    {CH2(OH)COCH2CH(OO.)CO(OONO2)                                                                           2.PKO    }
+  G1H5023 = 5C+9H+5O;      {CH2(OH)COCH2CH(OOH)CH2(O.)                                                                             1.HKO    }
+  GHK500B = 5C+10H+5O;     {CH2(OH)COCH2CH(OOH)CH2(OH)                                                                             HKOO     }
+  GHN500x = 5C+9H+N+7O;    {CH2(OH)COCH2CH(OOH)CH2(ONO2)                                                                           HNKO     }
+  GHH501K = 5C+10H+6O;     {CH2(OH)COCH2CH(OOH)CH2(OOH)                                                                            HHKO     }
+  GHD500a = 5C+8H+5O;      {CH2(OH)COCH2CH(OOH)CHO                                                                                 HDKO     }
+  GAH501a = 5C+8H+6O;      {CH2(OH)COCH2CH(OOH)CO(OH)                                                                              AHKO     }
+  G3H5019 = 5C+7H+7O;      {CH2(OH)COCH2CH(OOH)CO(OO.)                                                                             3.HKK    }
+  GGH501P = 5C+8H+7O;      {CH2(OH)COCH2CH(OOH)CO(OOH)                                                                             GHKO     }
+  GPH501Z = 5C+7H+N+9O;    {CH2(OH)COCH2CH(OOH)CO(OONO2)                                                                           PHKO     }
+  G1K4003 = 4C+7H+3O;      {CH2(OH)COCH2CH2(O.)                                                                                    1.KO     }
+  GNK4002 = 4C+7H+N+5O;    {CH2(OH)COCH2CH2(ONO2)                                                                                  NKO      }
+  G2K4003 = 4C+7H+4O;      {CH2(OH)COCH2CH2(OO.)                                                                                   2.KO     }
+  GHK4002 = 4C+8H+4O;      {CH2(OH)COCH2CH2(OOH)                                                                                   HKO      }
+  G1K500S = 5C+9H+3O;      {CH2(OH)COCH2CH2CH2(O.)                                                                                 1.KO     }
+  GNK500D = 5C+9H+N+5O;    {CH2(OH)COCH2CH2CH2(ONO2)                                                                               NKO      }
+  G2K500Z = 5C+9H+4O;      {CH2(OH)COCH2CH2CH2(OO.)                                                                                2.KO     }
+  GHK500I = 5C+10H+4O;     {CH2(OH)COCH2CH2CH2(OOH)                                                                                HKO      }
+  GDK5007 = 5C+8H+3O;      {CH2(OH)COCH2CH2CHO                                                                                     DKO      }
+  GAK5007 = 5C+8H+4O;      {CH2(OH)COCH2CH2CO(OH)                                                                                  AKO      }
+  G3K500C = 5C+7H+5O;      {CH2(OH)COCH2CH2CO(OO.)                                                                                 3.KKO    }
+  GGK5007 = 5C+8H+5O;      {CH2(OH)COCH2CH2CO(OOH)                                                                                 GKO      }
+  GPK5007 = 5C+7H+N+7O;    {CH2(OH)COCH2CH2CO(OONO2)                                                                               PKO      }
+  GDK4001 = 4C+6H+3O;      {CH2(OH)COCH2CHO                                                                                        DKO      }
+  GAK4003 = 4C+6H+4O;      {CH2(OH)COCH2CO(OH)                                                                                     AKO      }
+  G3K4007 = 4C+5H+5O;      {CH2(OH)COCH2CO(OO.)                                                                                    3.KKO    }
+  GGK4003 = 4C+6H+5O;      {CH2(OH)COCH2CO(OOH)                                                                                    GKO      }
+  GPK4003 = 4C+5H+N+7O;    {CH2(OH)COCH2CO(OONO2)                                                                                  PKO      }
+  G1K500c = 5C+7H+4O;      {CH2(OH)COCH2COCH2(O.)                                                                                  1.KKO    }
+  GKK5005 = 5C+8H+4O;      {CH2(OH)COCH2COCH2(OH)                                                                                  KKOO     }
+  GNK500Q = 5C+7H+N+6O;    {CH2(OH)COCH2COCH2(ONO2)                                                                                NKKO     }
+  G2K500U = 5C+7H+5O;      {CH2(OH)COCH2COCH2(OO.)                                                                                 2.KKO    }
+  GHK500E = 5C+8H+5O;      {CH2(OH)COCH2COCH2(OOH)                                                                                 HKKO     }
+  GDK500M = 5C+6H+4O;      {CH2(OH)COCH2COCHO                                                                                      DKKO     }
+  GAK500O = 5C+6H+5O;      {CH2(OH)COCH2COCO(OH)                                                                                   AKKO     }
+  G3K500j = 5C+5H+6O;      {CH2(OH)COCH2COCO(OO.)                                                                                  3.KKK    }
+  GGK500O = 5C+6H+6O;      {CH2(OH)COCH2COCO(OOH)                                                                                  GKKO     }
+  GPK500O = 5C+5H+N+8O;    {CH2(OH)COCH2COCO(OONO2)                                                                                PKKO     }
+  GDK3001 = 3C+4H+3O;      {CH2(OH)COCHO                                                                                           DKO      }
+  GAK3001 = 3C+4H+4O;      {CH2(OH)COCO(OH)                                                                                        AKO      }
+  G3K3005 = 3C+3H+5O;      {CH2(OH)COCO(OO.)                                                                                       3.KKO    }
+  GGK3001 = 3C+4H+5O;      {CH2(OH)COCO(OOH)                                                                                       GKO      }
+  GPK3001 = 3C+3H+N+7O;    {CH2(OH)COCO(OONO2)                                                                                     PKO      }
+  G1K500l = 5C+7H+5O;      {CH2(OH)COCOCH(O.)CH2(OH)                                                                               1.KKO    }
+  G1N504Y = 5C+6H+N+7O;    {CH2(OH)COCOCH(O.)CH2(ONO2)                                                                             1.NKK    }
+  G1H50Bb = 5C+7H+6O;      {CH2(OH)COCOCH(O.)CH2(OOH)                                                                              1.HKK    }
+  G1D501Q = 5C+5H+5O;      {CH2(OH)COCOCH(O.)CHO                                                                                   1.DKK    }
+  G1A504j = 5C+5H+6O;      {CH2(OH)COCOCH(O.)CO(OH)                                                                                1.AKK    }
+  G1G5042 = 5C+5H+7O;      {CH2(OH)COCOCH(O.)CO(OOH)                                                                               1.GKK    }
+  G1P504q = 5C+4H+N+9O;    {CH2(OH)COCOCH(O.)CO(OONO2)                                                                             1.PKK    }
+  G1K500x = 5C+7H+5O;      {CH2(OH)COCOCH(OH)CH2(O.)                                                                               1.KKO    }
+  GNK500u = 5C+7H+N+7O;    {CH2(OH)COCOCH(OH)CH2(ONO2)                                                                             NKKOO    }
+  G2K500o = 5C+7H+6O;      {CH2(OH)COCOCH(OH)CH2(OO.)                                                                              2.KKO    }
+  GHK500x = 5C+8H+6O;      {CH2(OH)COCOCH(OH)CH2(OOH)                                                                              HKKOO    }
+  GDK500Y = 5C+6H+5O;      {CH2(OH)COCOCH(OH)CHO                                                                                   DKKOO    }
+  GAK500a = 5C+6H+6O;      {CH2(OH)COCOCH(OH)CO(OH)                                                                                AKKOO    }
+  G3K500h = 5C+5H+7O;      {CH2(OH)COCOCH(OH)CO(OO.)                                                                               3.KKK    }
+  GGK500a = 5C+6H+7O;      {CH2(OH)COCOCH(OH)CO(OOH)                                                                               GKKOO    }
+  GPK500c = 5C+5H+N+9O;    {CH2(OH)COCOCH(OH)CO(OONO2)                                                                             PKKOO    }
+  G1N505r = 5C+6H+N+7O;    {CH2(OH)COCOCH(ONO2)CH2(O.)                                                                             1.NKK    }
+  GNK5016 = 5C+7H+N+7O;    {CH2(OH)COCOCH(ONO2)CH2(OH)                                                                             NKKOO    }
+  GNN502P = 5C+6H+2N+9O;   {CH2(OH)COCOCH(ONO2)CH2(ONO2)                                                                           NNKKO    }
+  G2N506R = 5C+6H+N+8O;    {CH2(OH)COCOCH(ONO2)CH2(OO.)                                                                            2.NKK    }
+  GHN506b = 5C+7H+N+8O;    {CH2(OH)COCOCH(ONO2)CH2(OOH)                                                                            HNKKO    }
+  GND501O = 5C+5H+N+7O;    {CH2(OH)COCOCH(ONO2)CHO                                                                                 NDKKO    }
+  GAN5022 = 5C+5H+N+8O;    {CH2(OH)COCOCH(ONO2)CO(OH)                                                                              ANKKO    }
+  G3N502F = 5C+4H+N+9O;    {CH2(OH)COCOCH(ONO2)CO(OO.)                                                                             3.NKK    }
+  GGN502d = 5C+5H+N+9O;    {CH2(OH)COCOCH(ONO2)CO(OOH)                                                                             GNKKO    }
+  GPN502B = 5C+4H+2N+11O;  {CH2(OH)COCOCH(ONO2)CO(OONO2)                                                                           PNKKO    }
+  G2K500c = 5C+7H+6O;      {CH2(OH)COCOCH(OO.)CH2(OH)                                                                              2.KKO    }
+  G2N504A = 5C+6H+N+8O;    {CH2(OH)COCOCH(OO.)CH2(ONO2)                                                                            2.NKK    }
+  G2A503q = 5C+5H+7O;      {CH2(OH)COCOCH(OO.)CO(OH)                                                                               2.AKK    }
+  G2G502z = 5C+5H+8O;      {CH2(OH)COCOCH(OO.)CO(OOH)                                                                              2.GKK    }
+  G2P503u = 5C+4H+N+10O;   {CH2(OH)COCOCH(OO.)CO(OONO2)                                                                            2.PKK    }
+  G1H5097 = 5C+7H+6O;      {CH2(OH)COCOCH(OOH)CH2(O.)                                                                              1.HKK    }
+  GHK500m = 5C+8H+6O;      {CH2(OH)COCOCH(OOH)CH2(OH)                                                                              HKKOO    }
+  GHN505F = 5C+7H+N+8O;    {CH2(OH)COCOCH(OOH)CH2(ONO2)                                                                            HNKKO    }
+  GHH5033 = 5C+8H+7O;      {CH2(OH)COCOCH(OOH)CH2(OOH)                                                                             HHKKO    }
+  GHD501H = 5C+6H+6O;      {CH2(OH)COCOCH(OOH)CHO                                                                                  HDKKO    }
+  GAH504L = 5C+6H+7O;      {CH2(OH)COCOCH(OOH)CO(OH)                                                                               AHKKO    }
+  G3H503X = 5C+5H+8O;      {CH2(OH)COCOCH(OOH)CO(OO.)                                                                              3.HKK    }
+  GGH504A = 5C+6H+8O;      {CH2(OH)COCOCH(OOH)CO(OOH)                                                                              GHKKO    }
+  GPH504N = 5C+5H+N+10O;   {CH2(OH)COCOCH(OOH)CO(OONO2)                                                                            PHKKO    }
+  G1K400C = 4C+5H+4O;      {CH2(OH)COCOCH2(O.)                                                                                     1.KKO    }
+  GKK4001 = 4C+6H+4O;      {CH2(OH)COCOCH2(OH)                                                                                     KKOO     }
+  GNK400C = 4C+5H+N+6O;    {CH2(OH)COCOCH2(ONO2)                                                                                   NKKO     }
+  G2K400C = 4C+5H+5O;      {CH2(OH)COCOCH2(OO.)                                                                                    2.KKO    }
+  GHK400C = 4C+6H+5O;      {CH2(OH)COCOCH2(OOH)                                                                                    HKKO     }
+  G1K500g = 5C+7H+4O;      {CH2(OH)COCOCH2CH2(O.)                                                                                  1.KKO    }
+  GNK500n = 5C+7H+N+6O;    {CH2(OH)COCOCH2CH2(ONO2)                                                                                NKKO     }
+  G2K500X = 5C+7H+5O;      {CH2(OH)COCOCH2CH2(OO.)                                                                                 2.KKO    }
+  GHK500i = 5C+8H+5O;      {CH2(OH)COCOCH2CH2(OOH)                                                                                 HKKO     }
+  GDK500P = 5C+6H+4O;      {CH2(OH)COCOCH2CHO                                                                                      DKKO     }
+  GAK500P = 5C+6H+5O;      {CH2(OH)COCOCH2CO(OH)                                                                                   AKKO     }
+  G3K500X = 5C+5H+6O;      {CH2(OH)COCOCH2CO(OO.)                                                                                  3.KKK    }
+  GGK500Q = 5C+6H+6O;      {CH2(OH)COCOCH2CO(OOH)                                                                                  GKKO     }
+  GPK500Q = 5C+5H+N+8O;    {CH2(OH)COCOCH2CO(OONO2)                                                                                PKKO     }
+  GDK4009 = 4C+4H+4O;      {CH2(OH)COCOCHO                                                                                         DKKO     }
+  GAK4009 = 4C+4H+5O;      {CH2(OH)COCOCO(OH)                                                                                      AKKO     }
+  G3K400H = 4C+3H+6O;      {CH2(OH)COCOCO(OO.)                                                                                     3.KKK    }
+  GGK4009 = 4C+4H+6O;      {CH2(OH)COCOCO(OOH)                                                                                     GKKO     }
+  GPK4009 = 4C+3H+N+8O;    {CH2(OH)COCOCO(OONO2)                                                                                   PKKO     }
+  G1K5014 = 5C+5H+5O;      {CH2(OH)COCOCOCH2(O.)                                                                                   1.KKK    }
+  GKK500F = 5C+6H+5O;      {CH2(OH)COCOCOCH2(OH)                                                                                   KKKOO    }
+  GNK500z = 5C+5H+N+7O;    {CH2(OH)COCOCOCH2(ONO2)                                                                                 NKKKO    }
+  G2K500x = 5C+5H+6O;      {CH2(OH)COCOCOCH2(OO.)                                                                                  2.KKK    }
+  GHK5011 = 5C+6H+6O;      {CH2(OH)COCOCOCH2(OOH)                                                                                  HKKKO    }
+  GDK500c = 5C+4H+5O;      {CH2(OH)COCOCOCHO                                                                                       DKKKO    }
+  GAK500X = 5C+4H+6O;      {CH2(OH)COCOCOCO(OH)                                                                                    AKKKO    }
+  G3K500q = 5C+3H+7O;      {CH2(OH)COCOCOCO(OO.)                                                                                   3.KKK    }
+  GGK500c = 5C+4H+7O;      {CH2(OH)COCOCOCO(OOH)                                                                                   GKKKO    }
+  GPK500b = 5C+3H+N+9O;    {CH2(OH)COCOCOCO(OONO2)                                                                                 PKKKO    }
+  GUO3000 = 3C+6H+O;       {CH2(OH)CdH=CdH2                                                                                        UO       }
+  G1N507A = 5C+8H+N+7O;    {CH2(ONO2)CH(O.)CH(OH)CH(OH)CHO                                                                         1.NDO    }
+  G1G506k = 5C+8H+N+9O;    {CH2(ONO2)CH(O.)CH(OH)CH(OH)CO(OOH)                                                                     1.GNO    }
+  G1P507n = 5C+7H+2N+11O;  {CH2(ONO2)CH(O.)CH(OH)CH(OH)CO(OONO2)                                                                   1.PNO    }
+  G1N507B = 5C+7H+2N+9O;   {CH2(ONO2)CH(O.)CH(OH)CH(ONO2)CHO                                                                       1.NND    }
+  G1G506g = 5C+7H+2N+11O;  {CH2(ONO2)CH(O.)CH(OH)CH(ONO2)CO(OOH)                                                                   1.GNN    }
+  G1P5039 = 5C+6H+3N+13O;  {CH2(ONO2)CH(O.)CH(OH)CH(ONO2)CO(OONO2)                                                                 1.PNN    }
+  G1H50AX = 5C+8H+N+8O;    {CH2(ONO2)CH(O.)CH(OH)CH(OOH)CHO                                                                        1.HND    }
+  G1G506i = 5C+8H+N+10O;   {CH2(ONO2)CH(O.)CH(OH)CH(OOH)CO(OOH)                                                                    1.GHN    }
+  G1P507l = 5C+7H+2N+12O;  {CH2(ONO2)CH(O.)CH(OH)CH(OOH)CO(OONO2)                                                                  1.PHN    }
+  G1H4015 = 4C+8H+N+7O;    {CH2(ONO2)CH(O.)CH(OH)CH2(OOH)                                                                          1.HNO    }
+  G1N505s = 5C+8H+N+6O;    {CH2(ONO2)CH(O.)CH(OH)CH2CHO                                                                            1.NDO    }
+  G1G503B = 5C+8H+N+8O;    {CH2(ONO2)CH(O.)CH(OH)CH2CO(OOH)                                                                        1.GNO    }
+  G1P503Y = 5C+7H+2N+10O;  {CH2(ONO2)CH(O.)CH(OH)CH2CO(OONO2)                                                                      1.PNO    }
+  G1N4019 = 4C+6H+N+6O;    {CH2(ONO2)CH(O.)CH(OH)CHO                                                                               1.NDO    }
+  G1G400m = 4C+6H+N+8O;    {CH2(ONO2)CH(O.)CH(OH)CO(OOH)                                                                           1.GNO    }
+  G1P4011 = 4C+5H+2N+10O;  {CH2(ONO2)CH(O.)CH(OH)CO(OONO2)                                                                         1.PNO    }
+  G1H509e = 5C+8H+N+8O;    {CH2(ONO2)CH(O.)CH(OH)COCH2(OOH)                                                                        1.HNK    }
+  G1N5071 = 5C+6H+N+7O;    {CH2(ONO2)CH(O.)CH(OH)COCHO                                                                             1.NDK    }
+  G1G502I = 5C+6H+N+9O;    {CH2(ONO2)CH(O.)CH(OH)COCO(OOH)                                                                         1.GNK    }
+  G1P503C = 5C+5H+2N+11O;  {CH2(ONO2)CH(O.)CH(OH)COCO(OONO2)                                                                       1.PNK    }
+  G1H507c = 5C+9H+2N+10O;  {CH2(ONO2)CH(O.)CH(ONO2)CH(OH)CH2(OOH)                                                                  1.HNN    }
+  G1N506E = 5C+7H+2N+9O;   {CH2(ONO2)CH(O.)CH(ONO2)CH(OH)CHO                                                                       1.NND    }
+  G1G504c = 5C+7H+2N+11O;  {CH2(ONO2)CH(O.)CH(ONO2)CH(OH)CO(OOH)                                                                   1.GNN    }
+  G1P502q = 5C+6H+3N+13O;  {CH2(ONO2)CH(O.)CH(ONO2)CH(OH)CO(OONO2)                                                                 1.PNN    }
+  G1H509E = 5C+8H+3N+12O;  {CH2(ONO2)CH(O.)CH(ONO2)CH(ONO2)CH2(OOH)                                                                1.HNN    }
+  G1N506b = 5C+6H+3N+11O;  {CH2(ONO2)CH(O.)CH(ONO2)CH(ONO2)CHO                                                                     1.NNN    }
+  G1G505d = 5C+6H+3N+13O;  {CH2(ONO2)CH(O.)CH(ONO2)CH(ONO2)CO(OOH)                                                                 1.GNN    }
+  G1P5032 = 5C+5H+4N+15O;  {CH2(ONO2)CH(O.)CH(ONO2)CH(ONO2)CO(OONO2)                                                               1.PNN    }
+  G1H509z = 5C+7H+2N+10O;  {CH2(ONO2)CH(O.)CH(ONO2)CH(OOH)CHO                                                                      1.HNN    }
+  G1G506C = 5C+7H+2N+12O;  {CH2(ONO2)CH(O.)CH(ONO2)CH(OOH)CO(OOH)                                                                  1.GHN    }
+  G1P506l = 5C+6H+3N+14O;  {CH2(ONO2)CH(O.)CH(ONO2)CH(OOH)CO(OONO2)                                                                1.PHN    }
+  G1H401n = 4C+7H+2N+9O;   {CH2(ONO2)CH(O.)CH(ONO2)CH2(OOH)                                                                        1.HNN    }
+  G1H5059 = 5C+9H+2N+9O;   {CH2(ONO2)CH(O.)CH(ONO2)CH2CH2(OOH)                                                                     1.HNN    }
+  G1N505J = 5C+7H+2N+8O;   {CH2(ONO2)CH(O.)CH(ONO2)CH2CHO                                                                          1.NND    }
+  G1G502p = 5C+7H+2N+10O;  {CH2(ONO2)CH(O.)CH(ONO2)CH2CO(OOH)                                                                      1.GNN    }
+  G1P500k = 5C+6H+3N+12O;  {CH2(ONO2)CH(O.)CH(ONO2)CH2CO(OONO2)                                                                    1.PNN    }
+  G1N400v = 4C+5H+2N+8O;   {CH2(ONO2)CH(O.)CH(ONO2)CHO                                                                             1.NND    }
+  G1G400j = 4C+5H+2N+10O;  {CH2(ONO2)CH(O.)CH(ONO2)CO(OOH)                                                                         1.GNN    }
+  G1P400N = 4C+4H+3N+12O;  {CH2(ONO2)CH(O.)CH(ONO2)CO(OONO2)                                                                       1.PNN    }
+  G1H509X = 5C+7H+2N+10O;  {CH2(ONO2)CH(O.)CH(ONO2)COCH2(OOH)                                                                      1.HNN    }
+  G1N506t = 5C+5H+2N+9O;   {CH2(ONO2)CH(O.)CH(ONO2)COCHO                                                                           1.NND    }
+  G1G507S = 5C+5H+2N+11O;  {CH2(ONO2)CH(O.)CH(ONO2)COCO(OOH)                                                                       1.GNN    }
+  G1P5035 = 5C+4H+3N+13O;  {CH2(ONO2)CH(O.)CH(ONO2)COCO(OONO2)                                                                     1.PNN    }
+  G1H50Ad = 5C+8H+N+8O;    {CH2(ONO2)CH(O.)CH(OOH)CH(OH)CHO                                                                        1.HND    }
+  G1G506Y = 5C+8H+N+10O;   {CH2(ONO2)CH(O.)CH(OOH)CH(OH)CO(OOH)                                                                    1.GHN    }
+  G1P507e = 5C+7H+2N+12O;  {CH2(ONO2)CH(O.)CH(OOH)CH(OH)CO(OONO2)                                                                  1.PHN    }
+  G1H50BL = 5C+7H+2N+10O;  {CH2(ONO2)CH(O.)CH(OOH)CH(ONO2)CHO                                                                      1.HNN    }
+  G1G506T = 5C+7H+2N+12O;  {CH2(ONO2)CH(O.)CH(OOH)CH(ONO2)CO(OOH)                                                                  1.GHN    }
+  G1P507a = 5C+6H+3N+14O;  {CH2(ONO2)CH(O.)CH(OOH)CH(ONO2)CO(OONO2)                                                                1.PHN    }
+  G1H50AT = 5C+8H+N+9O;    {CH2(ONO2)CH(O.)CH(OOH)CH(OOH)CHO                                                                       1.HHN    }
+  G1G506W = 5C+8H+N+11O;   {CH2(ONO2)CH(O.)CH(OOH)CH(OOH)CO(OOH)                                                                   1.GHH    }
+  G1P507c = 5C+7H+2N+13O;  {CH2(ONO2)CH(O.)CH(OOH)CH(OOH)CO(OONO2)                                                                 1.PHH    }
+  G1H401t = 4C+8H+N+8O;    {CH2(ONO2)CH(O.)CH(OOH)CH2(OOH)                                                                         1.HHN    }
+  G1H506I = 5C+8H+N+7O;    {CH2(ONO2)CH(O.)CH(OOH)CH2CHO                                                                           1.HND    }
+  G1G5037 = 5C+8H+N+9O;    {CH2(ONO2)CH(O.)CH(OOH)CH2CO(OOH)                                                                       1.GHN    }
+  G1P503T = 5C+7H+2N+11O;  {CH2(ONO2)CH(O.)CH(OOH)CH2CO(OONO2)                                                                     1.PHN    }
+  G1H401X = 4C+6H+N+7O;    {CH2(ONO2)CH(O.)CH(OOH)CHO                                                                              1.HND    }
+  G1G400r = 4C+6H+N+9O;    {CH2(ONO2)CH(O.)CH(OOH)CO(OOH)                                                                          1.GHN    }
+  G1P4013 = 4C+5H+2N+11O;  {CH2(ONO2)CH(O.)CH(OOH)CO(OONO2)                                                                        1.PHN    }
+  G1H50AM = 5C+6H+N+8O;    {CH2(ONO2)CH(O.)CH(OOH)COCHO                                                                            1.HND    }
+  G1G506a = 5C+6H+N+10O;   {CH2(ONO2)CH(O.)CH(OOH)COCO(OOH)                                                                        1.GHN    }
+  G1P507g = 5C+5H+2N+12O;  {CH2(ONO2)CH(O.)CH(OOH)COCO(OONO2)                                                                      1.PHN    }
+  G1N3006 = 3C+5H+2N+7O;   {CH2(ONO2)CH(O.)CH2(ONO2)                                                                               1.NN     }
+  G1H3009 = 3C+6H+N+6O;    {CH2(ONO2)CH(O.)CH2(OOH)                                                                                1.HN     }
+  G1H502n = 5C+10H+N+7O;   {CH2(ONO2)CH(O.)CH2CH(OH)CH2(OOH)                                                                       1.HNO    }
+  G1N505p = 5C+8H+N+6O;    {CH2(ONO2)CH(O.)CH2CH(OH)CHO                                                                            1.NDO    }
+  G1G503H = 5C+8H+N+8O;    {CH2(ONO2)CH(O.)CH2CH(OH)CO(OOH)                                                                        1.GNO    }
+  G1P503f = 5C+7H+2N+10O;  {CH2(ONO2)CH(O.)CH2CH(OH)CO(OONO2)                                                                      1.PNO    }
+  G1H504h = 5C+9H+2N+9O;   {CH2(ONO2)CH(O.)CH2CH(ONO2)CH2(OOH)                                                                     1.HNN    }
+  G1N504H = 5C+7H+2N+8O;   {CH2(ONO2)CH(O.)CH2CH(ONO2)CHO                                                                          1.NND    }
+  G1G500k = 5C+7H+2N+10O;  {CH2(ONO2)CH(O.)CH2CH(ONO2)CO(OOH)                                                                      1.GNN    }
+  G1P5015 = 5C+6H+3N+12O;  {CH2(ONO2)CH(O.)CH2CH(ONO2)CO(OONO2)                                                                    1.PNN    }
+  G1H505q = 5C+10H+N+8O;   {CH2(ONO2)CH(O.)CH2CH(OOH)CH2(OOH)                                                                      1.HHN    }
+  G1H506E = 5C+8H+N+7O;    {CH2(ONO2)CH(O.)CH2CH(OOH)CHO                                                                           1.HND    }
+  G1G503F = 5C+8H+N+9O;    {CH2(ONO2)CH(O.)CH2CH(OOH)CO(OOH)                                                                       1.GHN    }
+  G1P503d = 5C+7H+2N+11O;  {CH2(ONO2)CH(O.)CH2CH(OOH)CO(OONO2)                                                                     1.PHN    }
+  G1H400r = 4C+8H+N+6O;    {CH2(ONO2)CH(O.)CH2CH2(OOH)                                                                             1.HN     }
+  G1H501U = 5C+10H+N+6O;   {CH2(ONO2)CH(O.)CH2CH2CH2(OOH)                                                                          1.HN     }
+  G1N502y = 5C+8H+N+5O;    {CH2(ONO2)CH(O.)CH2CH2CHO                                                                               1.ND     }
+  G1G5013 = 5C+8H+N+7O;    {CH2(ONO2)CH(O.)CH2CH2CO(OOH)                                                                           1.GN     }
+  G1P5006 = 5C+7H+2N+9O;   {CH2(ONO2)CH(O.)CH2CH2CO(OONO2)                                                                         1.PN     }
+  G1N400J = 4C+6H+N+5O;    {CH2(ONO2)CH(O.)CH2CHO                                                                                  1.ND     }
+  G1G4002 = 4C+6H+N+7O;    {CH2(ONO2)CH(O.)CH2CO(OOH)                                                                              1.GN     }
+  G1P4002 = 4C+5H+2N+9O;   {CH2(ONO2)CH(O.)CH2CO(OONO2)                                                                            1.PN     }
+  G1H500z = 5C+8H+N+7O;    {CH2(ONO2)CH(O.)CH2COCH2(OOH)                                                                           1.HNK    }
+  G1N502J = 5C+6H+N+6O;    {CH2(ONO2)CH(O.)CH2COCHO                                                                                1.NDK    }
+  G1G500q = 5C+6H+N+8O;    {CH2(ONO2)CH(O.)CH2COCO(OOH)                                                                            1.GNK    }
+  G1P501B = 5C+5H+2N+10O;  {CH2(ONO2)CH(O.)CH2COCO(OONO2)                                                                          1.PNK    }
+  G1N3009 = 3C+4H+N+5O;    {CH2(ONO2)CH(O.)CHO                                                                                     1.ND     }
+  G1G3006 = 3C+4H+N+7O;    {CH2(ONO2)CH(O.)CO(OOH)                                                                                 1.GN     }
+  G1P3003 = 3C+3H+2N+9O;   {CH2(ONO2)CH(O.)CO(OONO2)                                                                               1.PN     }
+  G1H50AI = 5C+8H+N+8O;    {CH2(ONO2)CH(O.)COCH(OH)CH2(OOH)                                                                        1.HNK    }
+  G1N506o = 5C+6H+N+7O;    {CH2(ONO2)CH(O.)COCH(OH)CHO                                                                             1.NDK    }
+  G1G505r = 5C+6H+N+9O;    {CH2(ONO2)CH(O.)COCH(OH)CO(OOH)                                                                         1.GNK    }
+  G1P507G = 5C+5H+2N+11O;  {CH2(ONO2)CH(O.)COCH(OH)CO(OONO2)                                                                       1.PNK    }
+  G1H509O = 5C+7H+2N+10O;  {CH2(ONO2)CH(O.)COCH(ONO2)CH2(OOH)                                                                      1.HNN    }
+  G1N506j = 5C+5H+2N+9O;   {CH2(ONO2)CH(O.)COCH(ONO2)CHO                                                                           1.NND    }
+  G1G505o = 5C+5H+2N+11O;  {CH2(ONO2)CH(O.)COCH(ONO2)CO(OOH)                                                                       1.GNN    }
+  G1P503I = 5C+4H+3N+13O;  {CH2(ONO2)CH(O.)COCH(ONO2)CO(OONO2)                                                                     1.PNN    }
+  G1H50Aa = 5C+6H+N+8O;    {CH2(ONO2)CH(O.)COCH(OOH)CHO                                                                            1.HND    }
+  G1G506L = 5C+6H+N+10O;   {CH2(ONO2)CH(O.)COCH(OOH)CO(OOH)                                                                        1.GHN    }
+  G1P507E = 5C+5H+2N+12O;  {CH2(ONO2)CH(O.)COCH(OOH)CO(OONO2)                                                                      1.PHN    }
+  G1H401r = 4C+6H+N+7O;    {CH2(ONO2)CH(O.)COCH2(OOH)                                                                              1.HNK    }
+  G1H505d = 5C+8H+N+7O;    {CH2(ONO2)CH(O.)COCH2CH2(OOH)                                                                           1.HNK    }
+  G1N505h = 5C+6H+N+6O;    {CH2(ONO2)CH(O.)COCH2CHO                                                                                1.NDK    }
+  G1G502z = 5C+6H+N+8O;    {CH2(ONO2)CH(O.)COCH2CO(OOH)                                                                            1.GNK    }
+  G1P500r = 5C+5H+2N+10O;  {CH2(ONO2)CH(O.)COCH2CO(OONO2)                                                                          1.PNK    }
+  G1N401C = 4C+4H+N+6O;    {CH2(ONO2)CH(O.)COCHO                                                                                   1.NDK    }
+  G1G400t = 4C+4H+N+8O;    {CH2(ONO2)CH(O.)COCO(OOH)                                                                               1.GNK    }
+  G1P400U = 4C+3H+2N+10O;  {CH2(ONO2)CH(O.)COCO(OONO2)                                                                             1.PNK    }
+  G1H509g = 5C+6H+N+8O;    {CH2(ONO2)CH(O.)COCOCH2(OOH)                                                                            1.HNK    }
+  G1N5073 = 5C+4H+N+7O;    {CH2(ONO2)CH(O.)COCOCHO                                                                                 1.NDK    }
+  G1G506N = 5C+4H+N+9O;    {CH2(ONO2)CH(O.)COCOCO(OOH)                                                                             1.GNK    }
+  G1P503K = 5C+3H+2N+11O;  {CH2(ONO2)CH(O.)COCOCO(OONO2)                                                                           1.PNK    }
+  G1N503J = 5C+9H+2N+9O;   {CH2(ONO2)CH(OH)CH(O.)CH(OH)CH2(ONO2)                                                                   1.NNO    }
+  G1H507e = 5C+10H+N+8O;   {CH2(ONO2)CH(OH)CH(O.)CH(OH)CH2(OOH)                                                                    1.HNO    }
+  G1N503N = 5C+8H+N+7O;    {CH2(ONO2)CH(OH)CH(O.)CH(OH)CHO                                                                         1.NDO    }
+  G1G501E = 5C+8H+N+9O;    {CH2(ONO2)CH(OH)CH(O.)CH(OH)CO(OOH)                                                                     1.GNO    }
+  G1P501O = 5C+7H+2N+11O;  {CH2(ONO2)CH(OH)CH(O.)CH(OH)CO(OONO2)                                                                   1.PNO    }
+  G1H504Z = 5C+9H+2N+10O;  {CH2(ONO2)CH(OH)CH(O.)CH(ONO2)CH2(OOH)                                                                  1.HNN    }
+  G1N504j = 5C+7H+2N+9O;   {CH2(ONO2)CH(OH)CH(O.)CH(ONO2)CHO                                                                       1.NND    }
+  G1G502m = 5C+7H+2N+11O;  {CH2(ONO2)CH(OH)CH(O.)CH(ONO2)CO(OOH)                                                                   1.GNN    }
+  G1P501L = 5C+6H+3N+13O;  {CH2(ONO2)CH(OH)CH(O.)CH(ONO2)CO(OONO2)                                                                 1.PNN    }
+  G1H509u = 5C+10H+N+9O;   {CH2(ONO2)CH(OH)CH(O.)CH(OOH)CH2(OOH)                                                                   1.HHN    }
+  G1H503l = 5C+8H+N+8O;    {CH2(ONO2)CH(OH)CH(O.)CH(OOH)CHO                                                                        1.HND    }
+  G1G504n = 5C+8H+N+10O;   {CH2(ONO2)CH(OH)CH(O.)CH(OOH)CO(OOH)                                                                    1.GHN    }
+  G1P504U = 5C+7H+2N+12O;  {CH2(ONO2)CH(OH)CH(O.)CH(OOH)CO(OONO2)                                                                  1.PHN    }
+  G1N400N = 4C+7H+2N+8O;   {CH2(ONO2)CH(OH)CH(O.)CH2(ONO2)                                                                         1.NNO    }
+  G1H400J = 4C+8H+N+7O;    {CH2(ONO2)CH(OH)CH(O.)CH2(OOH)                                                                          1.HNO    }
+  G1N500u = 5C+9H+2N+8O;   {CH2(ONO2)CH(OH)CH(O.)CH2CH2(ONO2)                                                                      1.NNO    }
+  G1H500J = 5C+10H+N+7O;   {CH2(ONO2)CH(OH)CH(O.)CH2CH2(OOH)                                                                       1.HNO    }
+  G1N500w = 5C+8H+N+6O;    {CH2(ONO2)CH(OH)CH(O.)CH2CHO                                                                            1.NDO    }
+  G1G500A = 5C+8H+N+8O;    {CH2(ONO2)CH(OH)CH(O.)CH2CO(OOH)                                                                        1.GNO    }
+  G1P500B = 5C+7H+2N+10O;  {CH2(ONO2)CH(OH)CH(O.)CH2CO(OONO2)                                                                      1.PNO    }
+  G1N4011 = 4C+6H+N+6O;    {CH2(ONO2)CH(OH)CH(O.)CHO                                                                               1.NDO    }
+  G1G4005 = 4C+6H+N+8O;    {CH2(ONO2)CH(OH)CH(O.)CO(OOH)                                                                           1.GNO    }
+  G1P4005 = 4C+5H+2N+10O;  {CH2(ONO2)CH(OH)CH(O.)CO(OONO2)                                                                         1.PNO    }
+  G1N502X = 5C+7H+2N+9O;   {CH2(ONO2)CH(OH)CH(O.)COCH2(ONO2)                                                                       1.NNK    }
+  G1H509a = 5C+8H+N+8O;    {CH2(ONO2)CH(OH)CH(O.)COCH2(OOH)                                                                        1.HNK    }
+  G1N506w = 5C+6H+N+7O;    {CH2(ONO2)CH(OH)CH(O.)COCHO                                                                             1.NDK    }
+  G1G501N = 5C+6H+N+9O;    {CH2(ONO2)CH(OH)CH(O.)COCO(OOH)                                                                         1.GNK    }
+  G1P501Y = 5C+5H+2N+11O;  {CH2(ONO2)CH(OH)CH(O.)COCO(OONO2)                                                                       1.PNK    }
+  G1N504u = 5C+9H+2N+9O;   {CH2(ONO2)CH(OH)CH(OH)CH(O.)CH2(ONO2)                                                                   1.NNO    }
+  G1N506Q = 5C+8H+N+7O;    {CH2(ONO2)CH(OH)CH(OH)CH(O.)CHO                                                                         1.NDO    }
+  G1G501I = 5C+8H+N+9O;    {CH2(ONO2)CH(OH)CH(OH)CH(O.)CO(OOH)                                                                     1.GNO    }
+  G1P501S = 5C+7H+2N+11O;  {CH2(ONO2)CH(OH)CH(OH)CH(O.)CO(OONO2)                                                                   1.PNO    }
+  G1N505x = 5C+10H+N+7O;   {CH2(ONO2)CH(OH)CH(OH)CH(OH)CH2(O.)                                                                     1.NOO    }
+  GNN502Q = 5C+10H+2N+9O;  {CH2(ONO2)CH(OH)CH(OH)CH(OH)CH2(ONO2)                                                                   NNOOO    }
+  GND500p = 5C+9H+N+7O;    {CH2(ONO2)CH(OH)CH(OH)CH(OH)CHO                                                                         NDOOO    }
+  G3N5018 = 5C+8H+N+9O;    {CH2(ONO2)CH(OH)CH(OH)CH(OH)CO(OO.)                                                                     3.NKO    }
+  GGN501N = 5C+9H+N+9O;    {CH2(ONO2)CH(OH)CH(OH)CH(OH)CO(OOH)                                                                     GNOOO    }
+  GPN501T = 5C+8H+2N+11O;  {CH2(ONO2)CH(OH)CH(OH)CH(OH)CO(OONO2)                                                                   PNOOO    }
+  G1N504v = 5C+9H+2N+9O;   {CH2(ONO2)CH(OH)CH(OH)CH(ONO2)CH2(O.)                                                                   1.NNO    }
+  GNN501n = 5C+9H+3N+11O;  {CH2(ONO2)CH(OH)CH(OH)CH(ONO2)CH2(ONO2)                                                                 NNNOO    }
+  GNN5034 = 5C+8H+2N+9O;   {CH2(ONO2)CH(OH)CH(OH)CH(ONO2)CHO                                                                       NNDOO    }
+  G3N5024 = 5C+7H+2N+11O;  {CH2(ONO2)CH(OH)CH(OH)CH(ONO2)CO(OO.)                                                                   3.NNK    }
+  GGN501P = 5C+8H+2N+11O;  {CH2(ONO2)CH(OH)CH(OH)CH(ONO2)CO(OOH)                                                                   GNNOO    }
+  GPN501O = 5C+7H+3N+13O;  {CH2(ONO2)CH(OH)CH(OH)CH(ONO2)CO(OONO2)                                                                 PNNOO    }
+  G2N504z = 5C+9H+2N+10O;  {CH2(ONO2)CH(OH)CH(OH)CH(OO.)CH2(ONO2)                                                                  2.NNO    }
+  G2G5013 = 5C+8H+N+10O;   {CH2(ONO2)CH(OH)CH(OH)CH(OO.)CO(OOH)                                                                    2.GNO    }
+  G2P501G = 5C+7H+2N+12O;  {CH2(ONO2)CH(OH)CH(OH)CH(OO.)CO(OONO2)                                                                  2.PNO    }
+  G1H506o = 5C+10H+N+8O;   {CH2(ONO2)CH(OH)CH(OH)CH(OOH)CH2(O.)                                                                    1.HNO    }
+  GHN503s = 5C+10H+2N+10O; {CH2(ONO2)CH(OH)CH(OH)CH(OOH)CH2(ONO2)                                                                  HNNOO    }
+  GHN504v = 5C+9H+N+8O;    {CH2(ONO2)CH(OH)CH(OH)CH(OOH)CHO                                                                        HNDOO    }
+  G3H5024 = 5C+8H+N+10O;   {CH2(ONO2)CH(OH)CH(OH)CH(OOH)CO(OO.)                                                                    3.HNK    }
+  GGH501h = 5C+9H+N+10O;   {CH2(ONO2)CH(OH)CH(OH)CH(OOH)CO(OOH)                                                                    GHNOO    }
+  GPH501n = 5C+8H+2N+12O;  {CH2(ONO2)CH(OH)CH(OH)CH(OOH)CO(OONO2)                                                                  PHNOO    }
+  G1N400L = 4C+8H+N+6O;    {CH2(ONO2)CH(OH)CH(OH)CH2(O.)                                                                           1.NOO    }
+  GNN400I = 4C+8H+2N+8O;   {CH2(ONO2)CH(OH)CH(OH)CH2(ONO2)                                                                         NNOO     }
+  G2N400K = 4C+8H+N+7O;    {CH2(ONO2)CH(OH)CH(OH)CH2(OO.)                                                                          2.NOO    }
+  GHN400U = 4C+9H+N+7O;    {CH2(ONO2)CH(OH)CH(OH)CH2(OOH)                                                                          HNOO     }
+  G1N503K = 5C+10H+N+6O;   {CH2(ONO2)CH(OH)CH(OH)CH2CH2(O.)                                                                        1.NOO    }
+  G2N5032 = 5C+10H+N+7O;   {CH2(ONO2)CH(OH)CH(OH)CH2CH2(OO.)                                                                       2.NOO    }
+  GHN5018 = 5C+11H+N+7O;   {CH2(ONO2)CH(OH)CH(OH)CH2CH2(OOH)                                                                       HNOO     }
+  GND500E = 5C+9H+N+6O;    {CH2(ONO2)CH(OH)CH(OH)CH2CHO                                                                            NDOO     }
+  G3N500G = 5C+8H+N+8O;    {CH2(ONO2)CH(OH)CH(OH)CH2CO(OO.)                                                                        3.NKO    }
+  GGN500K = 5C+9H+N+8O;    {CH2(ONO2)CH(OH)CH(OH)CH2CO(OOH)                                                                        GNOO     }
+  GPN500K = 5C+8H+2N+10O;  {CH2(ONO2)CH(OH)CH(OH)CH2CO(OONO2)                                                                      PNOO     }
+  GND400F = 4C+7H+N+6O;    {CH2(ONO2)CH(OH)CH(OH)CHO                                                                               NDOO     }
+  G3N400O = 4C+6H+N+8O;    {CH2(ONO2)CH(OH)CH(OH)CO(OO.)                                                                           3.NKO    }
+  GGN400C = 4C+7H+N+8O;    {CH2(ONO2)CH(OH)CH(OH)CO(OOH)                                                                           GNOO     }
+  GPN400C = 4C+6H+2N+10O;  {CH2(ONO2)CH(OH)CH(OH)CO(OONO2)                                                                         PNOO     }
+  G1N505F = 5C+8H+N+7O;    {CH2(ONO2)CH(OH)CH(OH)COCH2(O.)                                                                         1.NKO    }
+  GNN5022 = 5C+8H+2N+9O;   {CH2(ONO2)CH(OH)CH(OH)COCH2(ONO2)                                                                       NNKOO    }
+  GND501L = 5C+7H+N+7O;    {CH2(ONO2)CH(OH)CH(OH)COCHO                                                                             NDKOO    }
+  G3N502J = 5C+6H+N+9O;    {CH2(ONO2)CH(OH)CH(OH)COCO(OO.)                                                                         3.NKK    }
+  GGN501Q = 5C+7H+N+9O;    {CH2(ONO2)CH(OH)CH(OH)COCO(OOH)                                                                         GNKOO    }
+  GPN501W = 5C+6H+2N+11O;  {CH2(ONO2)CH(OH)CH(OH)COCO(OONO2)                                                                       PNKOO    }
+  G1N502m = 5C+8H+3N+11O;  {CH2(ONO2)CH(OH)CH(ONO2)CH(O.)CH2(ONO2)                                                                 1.NNN    }
+  G1H504a = 5C+9H+2N+10O;  {CH2(ONO2)CH(OH)CH(ONO2)CH(O.)CH2(OOH)                                                                  1.HNN    }
+  G1N504k = 5C+7H+2N+9O;   {CH2(ONO2)CH(OH)CH(ONO2)CH(O.)CHO                                                                       1.NND    }
+  G1G502n = 5C+7H+2N+11O;  {CH2(ONO2)CH(OH)CH(ONO2)CH(O.)CO(OOH)                                                                   1.GNN    }
+  G1P501M = 5C+6H+3N+13O;  {CH2(ONO2)CH(OH)CH(ONO2)CH(O.)CO(OONO2)                                                                 1.PNN    }
+  G1N503p = 5C+9H+2N+9O;   {CH2(ONO2)CH(OH)CH(ONO2)CH(OH)CH2(O.)                                                                   1.NNO    }
+  GNN502G = 5C+9H+3N+11O;  {CH2(ONO2)CH(OH)CH(ONO2)CH(OH)CH2(ONO2)                                                                 NNNOO    }
+  G2N503R = 5C+9H+2N+10O;  {CH2(ONO2)CH(OH)CH(ONO2)CH(OH)CH2(OO.)                                                                  2.NNO    }
+  GHN504Q = 5C+10H+2N+10O; {CH2(ONO2)CH(OH)CH(ONO2)CH(OH)CH2(OOH)                                                                  HNNOO    }
+  GNN502H = 5C+8H+2N+9O;   {CH2(ONO2)CH(OH)CH(ONO2)CH(OH)CHO                                                                       NNDOO    }
+  G3N500x = 5C+7H+2N+11O;  {CH2(ONO2)CH(OH)CH(ONO2)CH(OH)CO(OO.)                                                                   3.NNK    }
+  GGN501E = 5C+8H+2N+11O;  {CH2(ONO2)CH(OH)CH(ONO2)CH(OH)CO(OOH)                                                                   GNNOO    }
+  GPN500r = 5C+7H+3N+13O;  {CH2(ONO2)CH(OH)CH(ONO2)CH(OH)CO(OONO2)                                                                 PNNOO    }
+  G1N5021 = 5C+8H+3N+11O;  {CH2(ONO2)CH(OH)CH(ONO2)CH(ONO2)CH2(O.)                                                                 1.NNN    }
+  GNN501c = 5C+8H+4N+13O;  {CH2(ONO2)CH(OH)CH(ONO2)CH(ONO2)CH2(ONO2)                                                               NNNNO    }
+  G2N501v = 5C+8H+3N+12O;  {CH2(ONO2)CH(OH)CH(ONO2)CH(ONO2)CH2(OO.)                                                                2.NNN    }
+  GHN502X = 5C+9H+3N+12O;  {CH2(ONO2)CH(OH)CH(ONO2)CH(ONO2)CH2(OOH)                                                                HNNNO    }
+  GNN501d = 5C+7H+3N+11O;  {CH2(ONO2)CH(OH)CH(ONO2)CH(ONO2)CHO                                                                     NNNDO    }
+  G3N500p = 5C+6H+3N+13O;  {CH2(ONO2)CH(OH)CH(ONO2)CH(ONO2)CO(OO.)                                                                 3.NNN    }
+  GGN501A = 5C+7H+3N+13O;  {CH2(ONO2)CH(OH)CH(ONO2)CH(ONO2)CO(OOH)                                                                 GNNNO    }
+  GPN501N = 5C+6H+4N+15O;  {CH2(ONO2)CH(OH)CH(ONO2)CH(ONO2)CO(OONO2)                                                               PNNNO    }
+  G2N502W = 5C+8H+3N+12O;  {CH2(ONO2)CH(OH)CH(ONO2)CH(OO.)CH2(ONO2)                                                                2.NNN    }
+  G2H503I = 5C+9H+2N+11O;  {CH2(ONO2)CH(OH)CH(ONO2)CH(OO.)CH2(OOH)                                                                 2.HNN    }
+  G2N505M = 5C+7H+2N+10O;  {CH2(ONO2)CH(OH)CH(ONO2)CH(OO.)CHO                                                                      2.NND    }
+  G2G503O = 5C+7H+2N+12O;  {CH2(ONO2)CH(OH)CH(ONO2)CH(OO.)CO(OOH)                                                                  2.GNN    }
+  G2P501C = 5C+6H+3N+14O;  {CH2(ONO2)CH(OH)CH(ONO2)CH(OO.)CO(OONO2)                                                                2.PNN    }
+  G1H505F = 5C+9H+2N+10O;  {CH2(ONO2)CH(OH)CH(ONO2)CH(OOH)CH2(O.)                                                                  1.HNN    }
+  GHN503A = 5C+9H+3N+12O;  {CH2(ONO2)CH(OH)CH(ONO2)CH(OOH)CH2(ONO2)                                                                HNNNO    }
+  G2H5029 = 5C+9H+2N+11O;  {CH2(ONO2)CH(OH)CH(ONO2)CH(OOH)CH2(OO.)                                                                 2.HNN    }
+  GHH5023 = 5C+10H+2N+11O; {CH2(ONO2)CH(OH)CH(ONO2)CH(OOH)CH2(OOH)                                                                 HHNNO    }
+  GHN504q = 5C+8H+2N+10O;  {CH2(ONO2)CH(OH)CH(ONO2)CH(OOH)CHO                                                                      HNNDO    }
+  G3H501x = 5C+7H+2N+12O;  {CH2(ONO2)CH(OH)CH(ONO2)CH(OOH)CO(OO.)                                                                  3.HNN    }
+  GGH502b = 5C+8H+2N+12O;  {CH2(ONO2)CH(OH)CH(ONO2)CH(OOH)CO(OOH)                                                                  GHNNO    }
+  GPH501T = 5C+7H+3N+14O;  {CH2(ONO2)CH(OH)CH(ONO2)CH(OOH)CO(OONO2)                                                                PHNNO    }
+  G1N400G = 4C+7H+2N+8O;   {CH2(ONO2)CH(OH)CH(ONO2)CH2(O.)                                                                         1.NNO    }
+  GNN400H = 4C+7H+3N+10O;  {CH2(ONO2)CH(OH)CH(ONO2)CH2(ONO2)                                                                       NNNO     }
+  G2N400G = 4C+7H+2N+9O;   {CH2(ONO2)CH(OH)CH(ONO2)CH2(OO.)                                                                        2.NNO    }
+  GHN400N = 4C+8H+2N+9O;   {CH2(ONO2)CH(OH)CH(ONO2)CH2(OOH)                                                                        HNNO     }
+  G1N500X = 5C+9H+2N+8O;   {CH2(ONO2)CH(OH)CH(ONO2)CH2CH2(O.)                                                                      1.NNO    }
+  GNN500e = 5C+9H+3N+10O;  {CH2(ONO2)CH(OH)CH(ONO2)CH2CH2(ONO2)                                                                    NNNO     }
+  G2N500X = 5C+9H+2N+9O;   {CH2(ONO2)CH(OH)CH(ONO2)CH2CH2(OO.)                                                                     2.NNO    }
+  GHN500d = 5C+10H+2N+9O;  {CH2(ONO2)CH(OH)CH(ONO2)CH2CH2(OOH)                                                                     HNNO     }
+  GNN500f = 5C+8H+2N+8O;   {CH2(ONO2)CH(OH)CH(ONO2)CH2CHO                                                                          NNDO     }
+  G3N500B = 5C+7H+2N+10O;  {CH2(ONO2)CH(OH)CH(ONO2)CH2CO(OO.)                                                                      3.NNK    }
+  GGN500F = 5C+8H+2N+10O;  {CH2(ONO2)CH(OH)CH(ONO2)CH2CO(OOH)                                                                      GNNO     }
+  GPN500H = 5C+7H+3N+12O;  {CH2(ONO2)CH(OH)CH(ONO2)CH2CO(OONO2)                                                                    PNNO     }
+  GNN400F = 4C+6H+2N+8O;   {CH2(ONO2)CH(OH)CH(ONO2)CHO                                                                             NNDO     }
+  G3N400K = 4C+5H+2N+10O;  {CH2(ONO2)CH(OH)CH(ONO2)CO(OO.)                                                                         3.NNK    }
+  GGN400B = 4C+6H+2N+10O;  {CH2(ONO2)CH(OH)CH(ONO2)CO(OOH)                                                                         GNNO     }
+  GPN400B = 4C+5H+3N+12O;  {CH2(ONO2)CH(OH)CH(ONO2)CO(OONO2)                                                                       PNNO     }
+  G1N5056 = 5C+7H+2N+9O;   {CH2(ONO2)CH(OH)CH(ONO2)COCH2(O.)                                                                       1.NNK    }
+  GNN5021 = 5C+7H+3N+11O;  {CH2(ONO2)CH(OH)CH(ONO2)COCH2(ONO2)                                                                     NNNKO    }
+  G2N504K = 5C+7H+2N+10O;  {CH2(ONO2)CH(OH)CH(ONO2)COCH2(OO.)                                                                      2.NNK    }
+  GHN505X = 5C+8H+2N+10O;  {CH2(ONO2)CH(OH)CH(ONO2)COCH2(OOH)                                                                      HNNKO    }
+  GNN5037 = 5C+6H+2N+9O;   {CH2(ONO2)CH(OH)CH(ONO2)COCHO                                                                           NNDKO    }
+  G3N502C = 5C+5H+2N+11O;  {CH2(ONO2)CH(OH)CH(ONO2)COCO(OO.)                                                                       3.NNK    }
+  GGN501U = 5C+6H+2N+11O;  {CH2(ONO2)CH(OH)CH(ONO2)COCO(OOH)                                                                       GNNKO    }
+  GPN501R = 5C+5H+3N+13O;  {CH2(ONO2)CH(OH)CH(ONO2)COCO(OONO2)                                                                     PNNKO    }
+  G2N502x = 5C+9H+2N+10O;  {CH2(ONO2)CH(OH)CH(OO.)CH(OH)CH2(ONO2)                                                                  2.NNO    }
+  G2N502z = 5C+8H+N+8O;    {CH2(ONO2)CH(OH)CH(OO.)CH(OH)CHO                                                                        2.NDO    }
+  G2G500z = 5C+8H+N+10O;   {CH2(ONO2)CH(OH)CH(OO.)CH(OH)CO(OOH)                                                                    2.GNO    }
+  G2P501D = 5C+7H+2N+12O;  {CH2(ONO2)CH(OH)CH(OO.)CH(OH)CO(OONO2)                                                                  2.PNO    }
+  G2N505K = 5C+7H+2N+10O;  {CH2(ONO2)CH(OH)CH(OO.)CH(ONO2)CHO                                                                      2.NND    }
+  G2G503N = 5C+7H+2N+12O;  {CH2(ONO2)CH(OH)CH(OO.)CH(ONO2)CO(OOH)                                                                  2.GNN    }
+  G2P501B = 5C+6H+3N+14O;  {CH2(ONO2)CH(OH)CH(OO.)CH(ONO2)CO(OONO2)                                                                2.PNN    }
+  G2H501o = 5C+8H+N+9O;    {CH2(ONO2)CH(OH)CH(OO.)CH(OOH)CHO                                                                       2.HND    }
+  G2N400M = 4C+7H+2N+9O;   {CH2(ONO2)CH(OH)CH(OO.)CH2(ONO2)                                                                        2.NNO    }
+  G2H400G = 4C+8H+N+8O;    {CH2(ONO2)CH(OH)CH(OO.)CH2(OOH)                                                                         2.HNO    }
+  G2N500r = 5C+9H+2N+9O;   {CH2(ONO2)CH(OH)CH(OO.)CH2CH2(ONO2)                                                                     2.NNO    }
+  G2H500D = 5C+10H+N+8O;   {CH2(ONO2)CH(OH)CH(OO.)CH2CH2(OOH)                                                                      2.HNO    }
+  G2N500t = 5C+8H+N+7O;    {CH2(ONO2)CH(OH)CH(OO.)CH2CHO                                                                           2.NDO    }
+  G2G5008 = 5C+8H+N+9O;    {CH2(ONO2)CH(OH)CH(OO.)CH2CO(OOH)                                                                       2.GNO    }
+  G2P5009 = 5C+7H+2N+11O;  {CH2(ONO2)CH(OH)CH(OO.)CH2CO(OONO2)                                                                     2.PNO    }
+  G2N400v = 4C+6H+N+7O;    {CH2(ONO2)CH(OH)CH(OO.)CHO                                                                              2.NDO    }
+  G2G4003 = 4C+6H+N+9O;    {CH2(ONO2)CH(OH)CH(OO.)CO(OOH)                                                                          2.GNO    }
+  G2P4003 = 4C+5H+2N+11O;  {CH2(ONO2)CH(OH)CH(OO.)CO(OONO2)                                                                        2.PNO    }
+  G2N502K = 5C+7H+2N+10O;  {CH2(ONO2)CH(OH)CH(OO.)COCH2(ONO2)                                                                      2.NNK    }
+  G2N505j = 5C+6H+N+8O;    {CH2(ONO2)CH(OH)CH(OO.)COCHO                                                                            2.NDK    }
+  G2G5016 = 5C+6H+N+10O;   {CH2(ONO2)CH(OH)CH(OO.)COCO(OOH)                                                                        2.GNK    }
+  G2P501J = 5C+5H+2N+12O;  {CH2(ONO2)CH(OH)CH(OO.)COCO(OONO2)                                                                      2.PNK    }
+  G1H504p = 5C+9H+2N+10O;  {CH2(ONO2)CH(OH)CH(OOH)CH(O.)CH2(ONO2)                                                                  1.HNN    }
+  G1H508E = 5C+8H+N+8O;    {CH2(ONO2)CH(OH)CH(OOH)CH(O.)CHO                                                                        1.HND    }
+  G1G504l = 5C+8H+N+10O;   {CH2(ONO2)CH(OH)CH(OOH)CH(O.)CO(OOH)                                                                    1.GHN    }
+  G1P504O = 5C+7H+2N+12O;  {CH2(ONO2)CH(OH)CH(OOH)CH(O.)CO(OONO2)                                                                  1.PHN    }
+  G1H506r = 5C+10H+N+8O;   {CH2(ONO2)CH(OH)CH(OOH)CH(OH)CH2(O.)                                                                    1.HNO    }
+  GHN503u = 5C+10H+2N+10O; {CH2(ONO2)CH(OH)CH(OOH)CH(OH)CH2(ONO2)                                                                  HNNOO    }
+  GHN503v = 5C+9H+N+8O;    {CH2(ONO2)CH(OH)CH(OOH)CH(OH)CHO                                                                        HNDOO    }
+  G3H501F = 5C+8H+N+10O;   {CH2(ONO2)CH(OH)CH(OOH)CH(OH)CO(OO.)                                                                    3.HNK    }
+  GGH501W = 5C+9H+N+10O;   {CH2(ONO2)CH(OH)CH(OOH)CH(OH)CO(OOH)                                                                    GHNOO    }
+  GPH501d = 5C+8H+2N+12O;  {CH2(ONO2)CH(OH)CH(OOH)CH(OH)CO(OONO2)                                                                  PHNOO    }
+  G1H504o = 5C+9H+2N+10O;  {CH2(ONO2)CH(OH)CH(OOH)CH(ONO2)CH2(O.)                                                                  1.HNN    }
+  GHN504n = 5C+8H+2N+10O;  {CH2(ONO2)CH(OH)CH(OOH)CH(ONO2)CHO                                                                      HNNDO    }
+  G3H501w = 5C+7H+2N+12O;  {CH2(ONO2)CH(OH)CH(OOH)CH(ONO2)CO(OO.)                                                                  3.HNN    }
+  GGH502a = 5C+8H+2N+12O;  {CH2(ONO2)CH(OH)CH(OOH)CH(ONO2)CO(OOH)                                                                  GHNNO    }
+  GPH501R = 5C+7H+3N+14O;  {CH2(ONO2)CH(OH)CH(OOH)CH(ONO2)CO(OONO2)                                                                PHNNO    }
+  G2H502Y = 5C+9H+2N+11O;  {CH2(ONO2)CH(OH)CH(OOH)CH(OO.)CH2(ONO2)                                                                 2.HNN    }
+  G1H506m = 5C+10H+N+9O;   {CH2(ONO2)CH(OH)CH(OOH)CH(OOH)CH2(O.)                                                                   1.HHN    }
+  GHH501C = 5C+10H+2N+11O; {CH2(ONO2)CH(OH)CH(OOH)CH(OOH)CH2(ONO2)                                                                 HHNNO    }
+  GHH501j = 5C+9H+N+9O;    {CH2(ONO2)CH(OH)CH(OOH)CH(OOH)CHO                                                                       HHNDO    }
+  G3H501y = 5C+8H+N+11O;   {CH2(ONO2)CH(OH)CH(OOH)CH(OOH)CO(OO.)                                                                   3.HHN    }
+  GGH502c = 5C+9H+N+11O;   {CH2(ONO2)CH(OH)CH(OOH)CH(OOH)CO(OOH)                                                                   GHHNO    }
+  GPH502y = 5C+8H+2N+13O;  {CH2(ONO2)CH(OH)CH(OOH)CH(OOH)CO(OONO2)                                                                 PHHNO    }
+  G1H400H = 4C+8H+N+7O;    {CH2(ONO2)CH(OH)CH(OOH)CH2(O.)                                                                          1.HNO    }
+  GHN400S = 4C+8H+2N+9O;   {CH2(ONO2)CH(OH)CH(OOH)CH2(ONO2)                                                                        HNNO     }
+  G2H400F = 4C+8H+N+8O;    {CH2(ONO2)CH(OH)CH(OOH)CH2(OO.)                                                                         2.HNO    }
+  GHH400C = 4C+9H+N+8O;    {CH2(ONO2)CH(OH)CH(OOH)CH2(OOH)                                                                         HHNO     }
+  G1H501e = 5C+10H+N+7O;   {CH2(ONO2)CH(OH)CH(OOH)CH2CH2(O.)                                                                       1.HNO    }
+  GHN5016 = 5C+10H+2N+9O;  {CH2(ONO2)CH(OH)CH(OOH)CH2CH2(ONO2)                                                                     HNNO     }
+  G2H500w = 5C+10H+N+8O;   {CH2(ONO2)CH(OH)CH(OOH)CH2CH2(OO.)                                                                      2.HNO    }
+  GHH500D = 5C+11H+N+8O;   {CH2(ONO2)CH(OH)CH(OOH)CH2CH2(OOH)                                                                      HHNO     }
+  GHN501C = 5C+9H+N+7O;    {CH2(ONO2)CH(OH)CH(OOH)CH2CHO                                                                           HNDO     }
+  G3H500A = 5C+8H+N+9O;    {CH2(ONO2)CH(OH)CH(OOH)CH2CO(OO.)                                                                       3.HNK    }
+  GGH500C = 5C+9H+N+9O;    {CH2(ONO2)CH(OH)CH(OOH)CH2CO(OOH)                                                                       GHNO     }
+  GPH500C = 5C+8H+2N+11O;  {CH2(ONO2)CH(OH)CH(OOH)CH2CO(OONO2)                                                                     PHNO     }
+  GHN400T = 4C+7H+N+7O;    {CH2(ONO2)CH(OH)CH(OOH)CHO                                                                              HNDO     }
+  G3H400H = 4C+6H+N+9O;    {CH2(ONO2)CH(OH)CH(OOH)CO(OO.)                                                                          3.HNK    }
+  GGH4004 = 4C+7H+N+9O;    {CH2(ONO2)CH(OH)CH(OOH)CO(OOH)                                                                          GHNO     }
+  GPH4004 = 4C+6H+2N+11O;  {CH2(ONO2)CH(OH)CH(OOH)CO(OONO2)                                                                        PHNO     }
+  G1H5056 = 5C+8H+N+8O;    {CH2(ONO2)CH(OH)CH(OOH)COCH2(O.)                                                                        1.HNK    }
+  GHN502s = 5C+8H+2N+10O;  {CH2(ONO2)CH(OH)CH(OOH)COCH2(ONO2)                                                                      HNNKO    }
+  GHN505d = 5C+7H+N+8O;    {CH2(ONO2)CH(OH)CH(OOH)COCHO                                                                            HNDKO    }
+  G3H503l = 5C+6H+N+10O;   {CH2(ONO2)CH(OH)CH(OOH)COCO(OO.)                                                                        3.HNK    }
+  GGH501j = 5C+7H+N+10O;   {CH2(ONO2)CH(OH)CH(OOH)COCO(OOH)                                                                        GHNKO    }
+  GPH501p = 5C+6H+2N+12O;  {CH2(ONO2)CH(OH)CH(OOH)COCO(OONO2)                                                                      PHNKO    }
+  G1N3003 = 3C+6H+N+5O;    {CH2(ONO2)CH(OH)CH2(O.)                                                                                 1.NO     }
+  GNN3002 = 3C+6H+2N+7O;   {CH2(ONO2)CH(OH)CH2(ONO2)                                                                               NNO      }
+  G2N3003 = 3C+6H+N+6O;    {CH2(ONO2)CH(OH)CH2(OO.)                                                                                2.NO     }
+  GHN3003 = 3C+7H+N+6O;    {CH2(ONO2)CH(OH)CH2(OOH)                                                                                HNO      }
+  G1N500t = 5C+9H+2N+8O;   {CH2(ONO2)CH(OH)CH2CH(O.)CH2(ONO2)                                                                      1.NNO    }
+  G1H500K = 5C+10H+N+7O;   {CH2(ONO2)CH(OH)CH2CH(O.)CH2(OOH)                                                                       1.HNO    }
+  G1N502H = 5C+8H+N+6O;    {CH2(ONO2)CH(OH)CH2CH(O.)CHO                                                                            1.NDO    }
+  G1G500B = 5C+8H+N+8O;    {CH2(ONO2)CH(OH)CH2CH(O.)CO(OOH)                                                                        1.GNO    }
+  G1P500C = 5C+7H+2N+10O;  {CH2(ONO2)CH(OH)CH2CH(O.)CO(OONO2)                                                                      1.PNO    }
+  G1N501H = 5C+10H+N+6O;   {CH2(ONO2)CH(OH)CH2CH(OH)CH2(O.)                                                                        1.NOO    }
+  GNN500n = 5C+10H+2N+8O;  {CH2(ONO2)CH(OH)CH2CH(OH)CH2(ONO2)                                                                      NNOO     }
+  G2N501F = 5C+10H+N+7O;   {CH2(ONO2)CH(OH)CH2CH(OH)CH2(OO.)                                                                       2.NOO    }
+  GHN501A = 5C+11H+N+7O;   {CH2(ONO2)CH(OH)CH2CH(OH)CH2(OOH)                                                                       HNOO     }
+  GND500D = 5C+9H+N+6O;    {CH2(ONO2)CH(OH)CH2CH(OH)CHO                                                                            NDOO     }
+  G3N500F = 5C+8H+N+8O;    {CH2(ONO2)CH(OH)CH2CH(OH)CO(OO.)                                                                        3.NKO    }
+  GGN500J = 5C+9H+N+8O;    {CH2(ONO2)CH(OH)CH2CH(OH)CO(OOH)                                                                        GNOO     }
+  GPN500J = 5C+8H+2N+10O;  {CH2(ONO2)CH(OH)CH2CH(OH)CO(OONO2)                                                                      PNOO     }
+  G1N500N = 5C+9H+2N+8O;   {CH2(ONO2)CH(OH)CH2CH(ONO2)CH2(O.)                                                                      1.NNO    }
+  GNN500Q = 5C+9H+3N+10O;  {CH2(ONO2)CH(OH)CH2CH(ONO2)CH2(ONO2)                                                                    NNNO     }
+  G2N500N = 5C+9H+2N+9O;   {CH2(ONO2)CH(OH)CH2CH(ONO2)CH2(OO.)                                                                     2.NNO    }
+  GHN500W = 5C+10H+2N+9O;  {CH2(ONO2)CH(OH)CH2CH(ONO2)CH2(OOH)                                                                     HNNO     }
+  GNN500S = 5C+8H+2N+8O;   {CH2(ONO2)CH(OH)CH2CH(ONO2)CHO                                                                          NNDO     }
+  G3N500A = 5C+7H+2N+10O;  {CH2(ONO2)CH(OH)CH2CH(ONO2)CO(OO.)                                                                      3.NNK    }
+  GGN500E = 5C+8H+2N+10O;  {CH2(ONO2)CH(OH)CH2CH(ONO2)CO(OOH)                                                                      GNNO     }
+  GPN500G = 5C+7H+3N+12O;  {CH2(ONO2)CH(OH)CH2CH(ONO2)CO(OONO2)                                                                    PNNO     }
+  G2N500q = 5C+9H+2N+9O;   {CH2(ONO2)CH(OH)CH2CH(OO.)CH2(ONO2)                                                                     2.NNO    }
+  G2H500E = 5C+10H+N+8O;   {CH2(ONO2)CH(OH)CH2CH(OO.)CH2(OOH)                                                                      2.HNO    }
+  G2N503o = 5C+8H+N+7O;    {CH2(ONO2)CH(OH)CH2CH(OO.)CHO                                                                           2.NDO    }
+  G2G5009 = 5C+8H+N+9O;    {CH2(ONO2)CH(OH)CH2CH(OO.)CO(OOH)                                                                       2.GNO    }
+  G2P500A = 5C+7H+2N+11O;  {CH2(ONO2)CH(OH)CH2CH(OO.)CO(OONO2)                                                                     2.PNO    }
+  G1H501a = 5C+10H+N+7O;   {CH2(ONO2)CH(OH)CH2CH(OOH)CH2(O.)                                                                       1.HNO    }
+  GHN5015 = 5C+10H+2N+9O;  {CH2(ONO2)CH(OH)CH2CH(OOH)CH2(ONO2)                                                                     HNNO     }
+  G2H500u = 5C+10H+N+8O;   {CH2(ONO2)CH(OH)CH2CH(OOH)CH2(OO.)                                                                      2.HNO    }
+  GHH500E = 5C+11H+N+8O;   {CH2(ONO2)CH(OH)CH2CH(OOH)CH2(OOH)                                                                      HHNO     }
+  GHN5021 = 5C+9H+N+7O;    {CH2(ONO2)CH(OH)CH2CH(OOH)CHO                                                                           HNDO     }
+  G3H500U = 5C+8H+N+9O;    {CH2(ONO2)CH(OH)CH2CH(OOH)CO(OO.)                                                                       3.HNK    }
+  GGH500D = 5C+9H+N+9O;    {CH2(ONO2)CH(OH)CH2CH(OOH)CO(OOH)                                                                       GHNO     }
+  GPH500D = 5C+8H+2N+11O;  {CH2(ONO2)CH(OH)CH2CH(OOH)CO(OONO2)                                                                     PHNO     }
+  G1N4001 = 4C+8H+N+5O;    {CH2(ONO2)CH(OH)CH2CH2(O.)                                                                              1.NO     }
+  G2N4001 = 4C+8H+N+6O;    {CH2(ONO2)CH(OH)CH2CH2(OO.)                                                                             2.NO     }
+  GHN4002 = 4C+9H+N+6O;    {CH2(ONO2)CH(OH)CH2CH2(OOH)                                                                             HNO      }
+  G1N5005 = 5C+10H+N+5O;   {CH2(ONO2)CH(OH)CH2CH2CH2(O.)                                                                           1.NO     }
+  G2N5005 = 5C+10H+N+6O;   {CH2(ONO2)CH(OH)CH2CH2CH2(OO.)                                                                          2.NO     }
+  GHN5005 = 5C+11H+N+6O;   {CH2(ONO2)CH(OH)CH2CH2CH2(OOH)                                                                          HNO      }
+  GND5001 = 5C+9H+N+5O;    {CH2(ONO2)CH(OH)CH2CH2CHO                                                                               NDO      }
+  G3N5001 = 5C+8H+N+7O;    {CH2(ONO2)CH(OH)CH2CH2CO(OO.)                                                                           3.NKO    }
+  GGN5001 = 5C+9H+N+7O;    {CH2(ONO2)CH(OH)CH2CH2CO(OOH)                                                                           GNO      }
+  GPN5001 = 5C+8H+2N+9O;   {CH2(ONO2)CH(OH)CH2CH2CO(OONO2)                                                                         PNO      }
+  GND4003 = 4C+7H+N+5O;    {CH2(ONO2)CH(OH)CH2CHO                                                                                  NDO      }
+  G3N4001 = 4C+6H+N+7O;    {CH2(ONO2)CH(OH)CH2CO(OO.)                                                                              3.NKO    }
+  GGN4001 = 4C+7H+N+7O;    {CH2(ONO2)CH(OH)CH2CO(OOH)                                                                              GNO      }
+  GPN4001 = 4C+6H+2N+9O;   {CH2(ONO2)CH(OH)CH2CO(OONO2)                                                                            PNO      }
+  G1N500R = 5C+8H+N+6O;    {CH2(ONO2)CH(OH)CH2COCH2(O.)                                                                            1.NKO    }
+  GNN500X = 5C+8H+2N+8O;   {CH2(ONO2)CH(OH)CH2COCH2(ONO2)                                                                          NNKO     }
+  G2N500R = 5C+8H+N+7O;    {CH2(ONO2)CH(OH)CH2COCH2(OO.)                                                                           2.NKO    }
+  GHN500Z = 5C+9H+N+7O;    {CH2(ONO2)CH(OH)CH2COCH2(OOH)                                                                           HNKO     }
+  GND500A = 5C+7H+N+6O;    {CH2(ONO2)CH(OH)CH2COCHO                                                                                NDKO     }
+  G3N501B = 5C+6H+N+8O;    {CH2(ONO2)CH(OH)CH2COCO(OO.)                                                                            3.NKK    }
+  GGN500M = 5C+7H+N+8O;    {CH2(ONO2)CH(OH)CH2COCO(OOH)                                                                            GNKO     }
+  GPN500M = 5C+6H+2N+10O;  {CH2(ONO2)CH(OH)CH2COCO(OONO2)                                                                          PNKO     }
+  GND3002 = 3C+5H+N+5O;    {CH2(ONO2)CH(OH)CHO                                                                                     NDO      }
+  G3N3002 = 3C+4H+N+7O;    {CH2(ONO2)CH(OH)CO(OO.)                                                                                 3.NKO    }
+  GGN3003 = 3C+5H+N+7O;    {CH2(ONO2)CH(OH)CO(OOH)                                                                                 GNO      }
+  GPN3003 = 3C+4H+2N+9O;   {CH2(ONO2)CH(OH)CO(OONO2)                                                                               PNO      }
+  G1N503M = 5C+7H+2N+9O;   {CH2(ONO2)CH(OH)COCH(O.)CH2(ONO2)                                                                       1.NNK    }
+  G1N506R = 5C+6H+N+7O;    {CH2(ONO2)CH(OH)COCH(O.)CHO                                                                             1.NDK    }
+  G1G501K = 5C+6H+N+9O;    {CH2(ONO2)CH(OH)COCH(O.)CO(OOH)                                                                         1.GNK    }
+  G1P501U = 5C+5H+2N+11O;  {CH2(ONO2)CH(OH)COCH(O.)CO(OONO2)                                                                       1.PNK    }
+  G1N5043 = 5C+8H+N+7O;    {CH2(ONO2)CH(OH)COCH(OH)CH2(O.)                                                                         1.NKO    }
+  GNN502R = 5C+8H+2N+9O;   {CH2(ONO2)CH(OH)COCH(OH)CH2(ONO2)                                                                       NNKOO    }
+  G2N503b = 5C+8H+N+8O;    {CH2(ONO2)CH(OH)COCH(OH)CH2(OO.)                                                                        2.NKO    }
+  GHN504b = 5C+9H+N+8O;    {CH2(ONO2)CH(OH)COCH(OH)CH2(OOH)                                                                        HNKOO    }
+  GND500q = 5C+7H+N+7O;    {CH2(ONO2)CH(OH)COCH(OH)CHO                                                                             NDKOO    }
+  G3N5019 = 5C+6H+N+9O;    {CH2(ONO2)CH(OH)COCH(OH)CO(OO.)                                                                         3.NKK    }
+  GGN501O = 5C+7H+N+9O;    {CH2(ONO2)CH(OH)COCH(OH)CO(OOH)                                                                         GNKOO    }
+  GPN501U = 5C+6H+2N+11O;  {CH2(ONO2)CH(OH)COCH(OH)CO(OONO2)                                                                       PNKOO    }
+  G1N504x = 5C+7H+2N+9O;   {CH2(ONO2)CH(OH)COCH(ONO2)CH2(O.)                                                                       1.NNK    }
+  GNN501o = 5C+7H+3N+11O;  {CH2(ONO2)CH(OH)COCH(ONO2)CH2(ONO2)                                                                     NNNKO    }
+  GNN5033 = 5C+6H+2N+9O;   {CH2(ONO2)CH(OH)COCH(ONO2)CHO                                                                           NNDKO    }
+  G3N5023 = 5C+5H+2N+11O;  {CH2(ONO2)CH(OH)COCH(ONO2)CO(OO.)                                                                       3.NNK    }
+  GGN501S = 5C+6H+2N+11O;  {CH2(ONO2)CH(OH)COCH(ONO2)CO(OOH)                                                                       GNNKO    }
+  GPN501P = 5C+5H+3N+13O;  {CH2(ONO2)CH(OH)COCH(ONO2)CO(OONO2)                                                                     PNNKO    }
+  G2N502y = 5C+7H+2N+10O;  {CH2(ONO2)CH(OH)COCH(OO.)CH2(ONO2)                                                                      2.NNK    }
+  G2G5015 = 5C+6H+N+10O;   {CH2(ONO2)CH(OH)COCH(OO.)CO(OOH)                                                                        2.GNK    }
+  G2P501I = 5C+5H+2N+12O;  {CH2(ONO2)CH(OH)COCH(OO.)CO(OONO2)                                                                      2.PNK    }
+  G1H506q = 5C+8H+N+8O;    {CH2(ONO2)CH(OH)COCH(OOH)CH2(O.)                                                                        1.HNK    }
+  GHN503t = 5C+8H+2N+10O;  {CH2(ONO2)CH(OH)COCH(OOH)CH2(ONO2)                                                                      HNNKO    }
+  GHN504w = 5C+7H+N+8O;    {CH2(ONO2)CH(OH)COCH(OOH)CHO                                                                            HNDKO    }
+  G3H5025 = 5C+6H+N+10O;   {CH2(ONO2)CH(OH)COCH(OOH)CO(OO.)                                                                        3.HNK    }
+  GGH501i = 5C+7H+N+10O;   {CH2(ONO2)CH(OH)COCH(OOH)CO(OOH)                                                                        GHNKO    }
+  GPH501o = 5C+6H+2N+12O;  {CH2(ONO2)CH(OH)COCH(OOH)CO(OONO2)                                                                      PHNKO    }
+  G1N400M = 4C+6H+N+6O;    {CH2(ONO2)CH(OH)COCH2(O.)                                                                               1.NKO    }
+  GNN400J = 4C+6H+2N+8O;   {CH2(ONO2)CH(OH)COCH2(ONO2)                                                                             NNKO     }
+  G2N400L = 4C+6H+N+7O;    {CH2(ONO2)CH(OH)COCH2(OO.)                                                                              2.NKO    }
+  GHN400W = 4C+7H+N+7O;    {CH2(ONO2)CH(OH)COCH2(OOH)                                                                              HNKO     }
+  G1N502t = 5C+8H+N+6O;    {CH2(ONO2)CH(OH)COCH2CH2(O.)                                                                            1.NKO    }
+  GNN500p = 5C+8H+2N+8O;   {CH2(ONO2)CH(OH)COCH2CH2(ONO2)                                                                          NNKO     }
+  G2N502c = 5C+8H+N+7O;    {CH2(ONO2)CH(OH)COCH2CH2(OO.)                                                                           2.NKO    }
+  GHN5019 = 5C+9H+N+7O;    {CH2(ONO2)CH(OH)COCH2CH2(OOH)                                                                           HNKO     }
+  GND500F = 5C+7H+N+6O;    {CH2(ONO2)CH(OH)COCH2CHO                                                                                NDKO     }
+  G3N500H = 5C+6H+N+8O;    {CH2(ONO2)CH(OH)COCH2CO(OO.)                                                                            3.NKK    }
+  GGN500L = 5C+7H+N+8O;    {CH2(ONO2)CH(OH)COCH2CO(OOH)                                                                            GNKO     }
+  GPN500L = 5C+6H+2N+10O;  {CH2(ONO2)CH(OH)COCH2CO(OONO2)                                                                          PNKO     }
+  GND400G = 4C+5H+N+6O;    {CH2(ONO2)CH(OH)COCHO                                                                                   NDKO     }
+  G3N400P = 4C+4H+N+8O;    {CH2(ONO2)CH(OH)COCO(OO.)                                                                               3.NKK    }
+  GGN400D = 4C+5H+N+8O;    {CH2(ONO2)CH(OH)COCO(OOH)                                                                               GNKO     }
+  GPN400D = 4C+4H+2N+10O;  {CH2(ONO2)CH(OH)COCO(OONO2)                                                                             PNKO     }
+  G1N505B = 5C+6H+N+7O;    {CH2(ONO2)CH(OH)COCOCH2(O.)                                                                             1.NKK    }
+  GNN5023 = 5C+6H+2N+9O;   {CH2(ONO2)CH(OH)COCOCH2(ONO2)                                                                           NNKKO    }
+  G2N504O = 5C+6H+N+8O;    {CH2(ONO2)CH(OH)COCOCH2(OO.)                                                                            2.NKK    }
+  GHN505b = 5C+7H+N+8O;    {CH2(ONO2)CH(OH)COCOCH2(OOH)                                                                            HNKKO    }
+  GND501I = 5C+5H+N+7O;    {CH2(ONO2)CH(OH)COCOCHO                                                                                 NDKKO    }
+  G3N502M = 5C+4H+N+9O;    {CH2(ONO2)CH(OH)COCOCO(OO.)                                                                             3.NKK    }
+  GGN501T = 5C+5H+N+9O;    {CH2(ONO2)CH(OH)COCOCO(OOH)                                                                             GNKKO    }
+  GPN501Y = 5C+4H+2N+11O;  {CH2(ONO2)CH(OH)COCOCO(OONO2)                                                                           PNKKO    }
+  G1N502D = 5C+8H+3N+11O;  {CH2(ONO2)CH(ONO2)CH(O.)CH(OH)CH2(ONO2)                                                                 1.NNN    }
+  G1H507d = 5C+9H+2N+10O;  {CH2(ONO2)CH(ONO2)CH(O.)CH(OH)CH2(OOH)                                                                  1.HNN    }
+  G1N506F = 5C+7H+2N+9O;   {CH2(ONO2)CH(ONO2)CH(O.)CH(OH)CHO                                                                       1.NND    }
+  G1G504d = 5C+7H+2N+11O;  {CH2(ONO2)CH(ONO2)CH(O.)CH(OH)CO(OOH)                                                                   1.GNN    }
+  G1P506Q = 5C+6H+3N+13O;  {CH2(ONO2)CH(ONO2)CH(O.)CH(OH)CO(OONO2)                                                                 1.PNN    }
+  G1N5047 = 5C+7H+4N+13O;  {CH2(ONO2)CH(ONO2)CH(O.)CH(ONO2)CH2(ONO2)                                                               1.NNN    }
+  G1H509F = 5C+8H+3N+12O;  {CH2(ONO2)CH(ONO2)CH(O.)CH(ONO2)CH2(OOH)                                                                1.HNN    }
+  G1N506c = 5C+6H+3N+11O;  {CH2(ONO2)CH(ONO2)CH(O.)CH(ONO2)CHO                                                                     1.NNN    }
+  G1G505e = 5C+6H+3N+13O;  {CH2(ONO2)CH(ONO2)CH(O.)CH(ONO2)CO(OOH)                                                                 1.GNN    }
+  G1P503b = 5C+5H+4N+15O;  {CH2(ONO2)CH(ONO2)CH(O.)CH(ONO2)CO(OONO2)                                                               1.PNN    }
+  G1H5084 = 5C+8H+3N+12O;  {CH2(ONO2)CH(ONO2)CH(O.)CH(OOH)CH2(ONO2)                                                                1.HNN    }
+  G1H50A1 = 5C+7H+2N+10O;  {CH2(ONO2)CH(ONO2)CH(O.)CH(OOH)CHO                                                                      1.HNN    }
+  G1G506D = 5C+7H+2N+12O;  {CH2(ONO2)CH(ONO2)CH(O.)CH(OOH)CO(OOH)                                                                  1.GHN    }
+  G1P506m = 5C+6H+3N+14O;  {CH2(ONO2)CH(ONO2)CH(O.)CH(OOH)CO(OONO2)                                                                1.PHN    }
+  G1N400o = 4C+6H+3N+10O;  {CH2(ONO2)CH(ONO2)CH(O.)CH2(ONO2)                                                                       1.NNN    }
+  G1H401o = 4C+7H+2N+9O;   {CH2(ONO2)CH(ONO2)CH(O.)CH2(OOH)                                                                        1.HNN    }
+  G1N501c = 5C+8H+3N+10O;  {CH2(ONO2)CH(ONO2)CH(O.)CH2CH2(ONO2)                                                                    1.NNN    }
+  G1H505A = 5C+9H+2N+9O;   {CH2(ONO2)CH(ONO2)CH(O.)CH2CH2(OOH)                                                                     1.HNN    }
+  G1N505K = 5C+7H+2N+8O;   {CH2(ONO2)CH(ONO2)CH(O.)CH2CHO                                                                          1.NND    }
+  G1G5014 = 5C+7H+2N+10O;  {CH2(ONO2)CH(ONO2)CH(O.)CH2CO(OOH)                                                                      1.GNN    }
+  G1P500u = 5C+6H+3N+12O;  {CH2(ONO2)CH(ONO2)CH(O.)CH2CO(OONO2)                                                                    1.PNN    }
+  G1N400w = 4C+5H+2N+8O;   {CH2(ONO2)CH(ONO2)CH(O.)CHO                                                                             1.NND    }
+  G1G400k = 4C+5H+2N+10O;  {CH2(ONO2)CH(ONO2)CH(O.)CO(OOH)                                                                         1.GNN    }
+  G1P400O = 4C+4H+3N+12O;  {CH2(ONO2)CH(ONO2)CH(O.)CO(OONO2)                                                                       1.PNN    }
+  G1N5048 = 5C+6H+3N+11O;  {CH2(ONO2)CH(ONO2)CH(O.)COCH2(ONO2)                                                                     1.NNN    }
+  G1H509Y = 5C+7H+2N+10O;  {CH2(ONO2)CH(ONO2)CH(O.)COCH2(OOH)                                                                      1.HNN    }
+  G1N506u = 5C+5H+2N+9O;   {CH2(ONO2)CH(ONO2)CH(O.)COCHO                                                                           1.NND    }
+  G1G506b = 5C+5H+2N+11O;  {CH2(ONO2)CH(ONO2)CH(O.)COCO(OOH)                                                                       1.GNN    }
+  G1P503g = 5C+4H+3N+13O;  {CH2(ONO2)CH(ONO2)CH(O.)COCO(OONO2)                                                                     1.PNN    }
+  G1N504C = 5C+8H+3N+11O;  {CH2(ONO2)CH(ONO2)CH(OH)CH(O.)CH2(ONO2)                                                                 1.NNN    }
+  G1N507G = 5C+7H+2N+9O;   {CH2(ONO2)CH(ONO2)CH(OH)CH(O.)CHO                                                                       1.NND    }
+  G1G503C = 5C+7H+2N+11O;  {CH2(ONO2)CH(ONO2)CH(OH)CH(O.)CO(OOH)                                                                   1.GNN    }
+  G1P503Z = 5C+6H+3N+13O;  {CH2(ONO2)CH(ONO2)CH(OH)CH(O.)CO(OONO2)                                                                 1.PNN    }
+  G1N504t = 5C+9H+2N+9O;   {CH2(ONO2)CH(ONO2)CH(OH)CH(OH)CH2(O.)                                                                   1.NNO    }
+  GNN503I = 5C+8H+2N+9O;   {CH2(ONO2)CH(ONO2)CH(OH)CH(OH)CHO                                                                       NNDOO    }
+  G3N502e = 5C+7H+2N+11O;  {CH2(ONO2)CH(ONO2)CH(OH)CH(OH)CO(OO.)                                                                   3.NNK    }
+  GGN502b = 5C+8H+2N+11O;  {CH2(ONO2)CH(ONO2)CH(OH)CH(OH)CO(OOH)                                                                   GNNOO    }
+  GPN502f = 5C+7H+3N+13O;  {CH2(ONO2)CH(ONO2)CH(OH)CH(OH)CO(OONO2)                                                                 PNNOO    }
+  G1N506K = 5C+8H+3N+11O;  {CH2(ONO2)CH(ONO2)CH(OH)CH(ONO2)CH2(O.)                                                                 1.NNN    }
+  GNN502e = 5C+8H+4N+13O;  {CH2(ONO2)CH(ONO2)CH(OH)CH(ONO2)CH2(ONO2)                                                               NNNNO    }
+  GNN503H = 5C+7H+3N+11O;  {CH2(ONO2)CH(ONO2)CH(OH)CH(ONO2)CHO                                                                     NNNDO    }
+  G3N502d = 5C+6H+3N+13O;  {CH2(ONO2)CH(ONO2)CH(OH)CH(ONO2)CO(OO.)                                                                 3.NNN    }
+  GGN502a = 5C+7H+3N+13O;  {CH2(ONO2)CH(ONO2)CH(OH)CH(ONO2)CO(OOH)                                                                 GNNNO    }
+  GPN502Q = 5C+6H+4N+15O;  {CH2(ONO2)CH(ONO2)CH(OH)CH(ONO2)CO(OONO2)                                                               PNNNO    }
+  G2N503i = 5C+8H+3N+12O;  {CH2(ONO2)CH(ONO2)CH(OH)CH(OO.)CH2(ONO2)                                                                2.NNN    }
+  G2N506P = 5C+7H+2N+10O;  {CH2(ONO2)CH(ONO2)CH(OH)CH(OO.)CHO                                                                      2.NND    }
+  G2G502H = 5C+7H+2N+12O;  {CH2(ONO2)CH(ONO2)CH(OH)CH(OO.)CO(OOH)                                                                  2.GNN    }
+  G2P502s = 5C+6H+3N+14O;  {CH2(ONO2)CH(ONO2)CH(OH)CH(OO.)CO(OONO2)                                                                2.PNN    }
+  G1H508H = 5C+9H+2N+10O;  {CH2(ONO2)CH(ONO2)CH(OH)CH(OOH)CH2(O.)                                                                  1.HNN    }
+  GHN504o = 5C+9H+3N+12O;  {CH2(ONO2)CH(ONO2)CH(OH)CH(OOH)CH2(ONO2)                                                                HNNNO    }
+  GHN506Z = 5C+8H+2N+10O;  {CH2(ONO2)CH(ONO2)CH(OH)CH(OOH)CHO                                                                      HNNDO    }
+  G3H504O = 5C+7H+2N+12O;  {CH2(ONO2)CH(ONO2)CH(OH)CH(OOH)CO(OO.)                                                                  3.HNN    }
+  GGH503k = 5C+8H+2N+12O;  {CH2(ONO2)CH(ONO2)CH(OH)CH(OOH)CO(OOH)                                                                  GHNNO    }
+  GPH503k = 5C+7H+3N+14O;  {CH2(ONO2)CH(ONO2)CH(OH)CH(OOH)CO(OONO2)                                                                PHNNO    }
+  G1N400k = 4C+7H+2N+8O;   {CH2(ONO2)CH(ONO2)CH(OH)CH2(O.)                                                                         1.NNO    }
+  G2N400d = 4C+7H+2N+9O;   {CH2(ONO2)CH(ONO2)CH(OH)CH2(OO.)                                                                        2.NNO    }
+  GHN400X = 4C+8H+2N+9O;   {CH2(ONO2)CH(ONO2)CH(OH)CH2(OOH)                                                                        HNNO     }
+  G1N504A = 5C+9H+2N+8O;   {CH2(ONO2)CH(ONO2)CH(OH)CH2CH2(O.)                                                                      1.NNO    }
+  GNN502j = 5C+8H+2N+8O;   {CH2(ONO2)CH(ONO2)CH(OH)CH2CHO                                                                          NNDO     }
+  G3N501d = 5C+7H+2N+10O;  {CH2(ONO2)CH(ONO2)CH(OH)CH2CO(OO.)                                                                      3.NNK    }
+  GGN501H = 5C+8H+2N+10O;  {CH2(ONO2)CH(ONO2)CH(OH)CH2CO(OOH)                                                                      GNNO     }
+  GPN5019 = 5C+7H+3N+12O;  {CH2(ONO2)CH(ONO2)CH(OH)CH2CO(OONO2)                                                                    PNNO     }
+  GNN400T = 4C+6H+2N+8O;   {CH2(ONO2)CH(ONO2)CH(OH)CHO                                                                             NNDO     }
+  G3N400M = 4C+5H+2N+10O;  {CH2(ONO2)CH(ONO2)CH(OH)CO(OO.)                                                                         3.NNK    }
+  GGN400P = 4C+6H+2N+10O;  {CH2(ONO2)CH(ONO2)CH(OH)CO(OOH)                                                                         GNNO     }
+  GPN400T = 4C+5H+3N+12O;  {CH2(ONO2)CH(ONO2)CH(OH)CO(OONO2)                                                                       PNNO     }
+  G1N5059 = 5C+7H+2N+9O;   {CH2(ONO2)CH(ONO2)CH(OH)COCH2(O.)                                                                       1.NNK    }
+  G2N504M = 5C+7H+2N+10O;  {CH2(ONO2)CH(ONO2)CH(OH)COCH2(OO.)                                                                      2.NNK    }
+  GHN505Z = 5C+8H+2N+10O;  {CH2(ONO2)CH(ONO2)CH(OH)COCH2(OOH)                                                                      HNNKO    }
+  GNN5039 = 5C+6H+2N+9O;   {CH2(ONO2)CH(ONO2)CH(OH)COCHO                                                                           NNDKO    }
+  G3N502h = 5C+5H+2N+11O;  {CH2(ONO2)CH(ONO2)CH(OH)COCO(OO.)                                                                       3.NNK    }
+  GGN5027 = 5C+6H+2N+11O;  {CH2(ONO2)CH(ONO2)CH(OH)COCO(OOH)                                                                       GNNKO    }
+  GPN502T = 5C+5H+3N+13O;  {CH2(ONO2)CH(ONO2)CH(OH)COCO(OONO2)                                                                     PNNKO    }
+  G1N5049 = 5C+7H+4N+13O;  {CH2(ONO2)CH(ONO2)CH(ONO2)CH(O.)CH2(ONO2)                                                               1.NNN    }
+  G1H509G = 5C+8H+3N+12O;  {CH2(ONO2)CH(ONO2)CH(ONO2)CH(O.)CH2(OOH)                                                                1.HNN    }
+  G1N506d = 5C+6H+3N+11O;  {CH2(ONO2)CH(ONO2)CH(ONO2)CH(O.)CHO                                                                     1.NNN    }
+  G1G505f = 5C+6H+3N+13O;  {CH2(ONO2)CH(ONO2)CH(ONO2)CH(O.)CO(OOH)                                                                 1.GNN    }
+  G1P502x = 5C+5H+4N+15O;  {CH2(ONO2)CH(ONO2)CH(ONO2)CH(O.)CO(OONO2)                                                               1.PNN    }
+  G1N503o = 5C+8H+3N+11O;  {CH2(ONO2)CH(ONO2)CH(ONO2)CH(OH)CH2(O.)                                                                 1.NNN    }
+  G2N503Q = 5C+8H+3N+12O;  {CH2(ONO2)CH(ONO2)CH(ONO2)CH(OH)CH2(OO.)                                                                2.NNN    }
+  GHN504P = 5C+9H+3N+12O;  {CH2(ONO2)CH(ONO2)CH(ONO2)CH(OH)CH2(OOH)                                                                HNNNO    }
+  GNN502a = 5C+7H+3N+11O;  {CH2(ONO2)CH(ONO2)CH(ONO2)CH(OH)CHO                                                                     NNNDO    }
+  G3N501R = 5C+6H+3N+13O;  {CH2(ONO2)CH(ONO2)CH(ONO2)CH(OH)CO(OO.)                                                                 3.NNN    }
+  GGN501s = 5C+7H+3N+13O;  {CH2(ONO2)CH(ONO2)CH(ONO2)CH(OH)CO(OOH)                                                                 GNNNO    }
+  GPN502F = 5C+6H+4N+15O;  {CH2(ONO2)CH(ONO2)CH(ONO2)CH(OH)CO(OONO2)                                                               PNNNO    }
+  G1N504e = 5C+7H+4N+13O;  {CH2(ONO2)CH(ONO2)CH(ONO2)CH(ONO2)CH2(O.)                                                               1.NNN    }
+  GNN502d = 5C+7H+5N+15O;  {CH2(ONO2)CH(ONO2)CH(ONO2)CH(ONO2)CH2(ONO2)                                                             NNNNN    }
+  G2N504E = 5C+7H+4N+14O;  {CH2(ONO2)CH(ONO2)CH(ONO2)CH(ONO2)CH2(OO.)                                                              2.NNN    }
+  GHN505O = 5C+8H+4N+14O;  {CH2(ONO2)CH(ONO2)CH(ONO2)CH(ONO2)CH2(OOH)                                                              HNNNN    }
+  GNN502w = 5C+6H+4N+13O;  {CH2(ONO2)CH(ONO2)CH(ONO2)CH(ONO2)CHO                                                                   NNNND    }
+  G3N501w = 5C+5H+4N+15O;  {CH2(ONO2)CH(ONO2)CH(ONO2)CH(ONO2)CO(OO.)                                                               3.NNN    }
+  GGN502I = 5C+6H+4N+15O;  {CH2(ONO2)CH(ONO2)CH(ONO2)CH(ONO2)CO(OOH)                                                               GNNNN    }
+  GPN502M = 5C+5H+5N+17O;  {CH2(ONO2)CH(ONO2)CH(ONO2)CH(ONO2)CO(OONO2)                                                             PNNNN    }
+  G2N503h = 5C+7H+4N+14O;  {CH2(ONO2)CH(ONO2)CH(ONO2)CH(OO.)CH2(ONO2)                                                              2.NNN    }
+  G2N505o = 5C+6H+3N+12O;  {CH2(ONO2)CH(ONO2)CH(ONO2)CH(OO.)CHO                                                                    2.NNN    }
+  G2G5045 = 5C+6H+3N+14O;  {CH2(ONO2)CH(ONO2)CH(ONO2)CH(OO.)CO(OOH)                                                                2.GNN    }
+  G2P502S = 5C+5H+4N+16O;  {CH2(ONO2)CH(ONO2)CH(ONO2)CH(OO.)CO(OONO2)                                                              2.PNN    }
+  G1H5085 = 5C+8H+3N+12O;  {CH2(ONO2)CH(ONO2)CH(ONO2)CH(OOH)CH2(O.)                                                                1.HNN    }
+  GHN504j = 5C+8H+4N+14O;  {CH2(ONO2)CH(ONO2)CH(ONO2)CH(OOH)CH2(ONO2)                                                              HNNNN    }
+  GHN505k = 5C+7H+3N+12O;  {CH2(ONO2)CH(ONO2)CH(ONO2)CH(OOH)CHO                                                                    HNNND    }
+  G3H502n = 5C+6H+3N+14O;  {CH2(ONO2)CH(ONO2)CH(ONO2)CH(OOH)CO(OO.)                                                                3.HNN    }
+  GGH503O = 5C+7H+3N+14O;  {CH2(ONO2)CH(ONO2)CH(ONO2)CH(OOH)CO(OOH)                                                                GHNNN    }
+  GPH5038 = 5C+6H+4N+16O;  {CH2(ONO2)CH(ONO2)CH(ONO2)CH(OOH)CO(OONO2)                                                              PHNNN    }
+  G1N400s = 4C+6H+3N+10O;  {CH2(ONO2)CH(ONO2)CH(ONO2)CH2(O.)                                                                       1.NNN    }
+  GNN400W = 4C+6H+4N+12O;  {CH2(ONO2)CH(ONO2)CH(ONO2)CH2(ONO2)                                                                     NNNN     }
+  G2N400p = 4C+6H+3N+11O;  {CH2(ONO2)CH(ONO2)CH(ONO2)CH2(OO.)                                                                      2.NNN    }
+  GHN4015 = 4C+7H+3N+11O;  {CH2(ONO2)CH(ONO2)CH(ONO2)CH2(OOH)                                                                      HNNN     }
+  G1N502Z = 5C+8H+3N+10O;  {CH2(ONO2)CH(ONO2)CH(ONO2)CH2CH2(O.)                                                                    1.NNN    }
+  G2N502M = 5C+8H+3N+11O;  {CH2(ONO2)CH(ONO2)CH(ONO2)CH2CH2(OO.)                                                                   2.NNN    }
+  GHN502u = 5C+9H+3N+11O;  {CH2(ONO2)CH(ONO2)CH(ONO2)CH2CH2(OOH)                                                                   HNNN     }
+  GNN5025 = 5C+7H+3N+10O;  {CH2(ONO2)CH(ONO2)CH(ONO2)CH2CHO                                                                        NNND     }
+  G3N500u = 5C+6H+3N+12O;  {CH2(ONO2)CH(ONO2)CH(ONO2)CH2CO(OO.)                                                                    3.NNN    }
+  GGN501B = 5C+7H+3N+12O;  {CH2(ONO2)CH(ONO2)CH(ONO2)CH2CO(OOH)                                                                    GNNN     }
+  GPN500x = 5C+6H+4N+14O;  {CH2(ONO2)CH(ONO2)CH(ONO2)CH2CO(OONO2)                                                                  PNNN     }
+  GNN400D = 4C+5H+3N+10O;  {CH2(ONO2)CH(ONO2)CH(ONO2)CHO                                                                           NNND     }
+  G3N400J = 4C+4H+3N+12O;  {CH2(ONO2)CH(ONO2)CH(ONO2)CO(OO.)                                                                       3.NNN    }
+  GGN400N = 4C+5H+3N+12O;  {CH2(ONO2)CH(ONO2)CH(ONO2)CO(OOH)                                                                       GNNN     }
+  GPN400R = 4C+4H+4N+14O;  {CH2(ONO2)CH(ONO2)CH(ONO2)CO(OONO2)                                                                     PNNN     }
+  G1N5055 = 5C+6H+3N+11O;  {CH2(ONO2)CH(ONO2)CH(ONO2)COCH2(O.)                                                                     1.NNN    }
+  G2N504J = 5C+6H+3N+12O;  {CH2(ONO2)CH(ONO2)CH(ONO2)COCH2(OO.)                                                                    2.NNN    }
+  GHN505W = 5C+7H+3N+12O;  {CH2(ONO2)CH(ONO2)CH(ONO2)COCH2(OOH)                                                                    HNNNK    }
+  GNN5036 = 5C+5H+3N+11O;  {CH2(ONO2)CH(ONO2)CH(ONO2)COCHO                                                                         NNNDK    }
+  G3N502f = 5C+4H+3N+13O;  {CH2(ONO2)CH(ONO2)CH(ONO2)COCO(OO.)                                                                     3.NNN    }
+  GGN502j = 5C+5H+3N+13O;  {CH2(ONO2)CH(ONO2)CH(ONO2)COCO(OOH)                                                                     GNNNK    }
+  GPN502N = 5C+4H+4N+15O;  {CH2(ONO2)CH(ONO2)CH(ONO2)COCO(OONO2)                                                                   PNNNK    }
+  G2N5025 = 5C+8H+3N+12O;  {CH2(ONO2)CH(ONO2)CH(OO.)CH(OH)CH2(ONO2)                                                                2.NNN    }
+  G2N506Q = 5C+7H+2N+10O;  {CH2(ONO2)CH(ONO2)CH(OO.)CH(OH)CHO                                                                      2.NND    }
+  G2G504I = 5C+7H+2N+12O;  {CH2(ONO2)CH(ONO2)CH(OO.)CH(OH)CO(OOH)                                                                  2.GNN    }
+  G2P505O = 5C+6H+3N+14O;  {CH2(ONO2)CH(ONO2)CH(OO.)CH(OH)CO(OONO2)                                                                2.PNN    }
+  G2N503f = 5C+7H+4N+14O;  {CH2(ONO2)CH(ONO2)CH(OO.)CH(ONO2)CH2(ONO2)                                                              2.NNN    }
+  G2N506N = 5C+6H+3N+12O;  {CH2(ONO2)CH(ONO2)CH(OO.)CH(ONO2)CHO                                                                    2.NNN    }
+  G2G504G = 5C+6H+3N+14O;  {CH2(ONO2)CH(ONO2)CH(OO.)CH(ONO2)CO(OOH)                                                                2.GNN    }
+  G2P502u = 5C+5H+4N+16O;  {CH2(ONO2)CH(ONO2)CH(OO.)CH(ONO2)CO(OONO2)                                                              2.PNN    }
+  G2G504H = 5C+7H+2N+13O;  {CH2(ONO2)CH(ONO2)CH(OO.)CH(OOH)CO(OOH)                                                                 2.GHN    }
+  G2P505N = 5C+6H+3N+15O;  {CH2(ONO2)CH(ONO2)CH(OO.)CH(OOH)CO(OONO2)                                                               2.PHN    }
+  G2N400j = 4C+6H+3N+11O;  {CH2(ONO2)CH(ONO2)CH(OO.)CH2(ONO2)                                                                      2.NNN    }
+  G2H401O = 4C+7H+2N+10O;  {CH2(ONO2)CH(ONO2)CH(OO.)CH2(OOH)                                                                       2.HNN    }
+  G2N501Y = 5C+8H+3N+11O;  {CH2(ONO2)CH(ONO2)CH(OO.)CH2CH2(ONO2)                                                                   2.NNN    }
+  G2N505I = 5C+7H+2N+9O;   {CH2(ONO2)CH(ONO2)CH(OO.)CH2CHO                                                                         2.NND    }
+  G2G500r = 5C+7H+2N+11O;  {CH2(ONO2)CH(ONO2)CH(OO.)CH2CO(OOH)                                                                     2.GNN    }
+  G2P500q = 5C+6H+3N+13O;  {CH2(ONO2)CH(ONO2)CH(OO.)CH2CO(OONO2)                                                                   2.PNN    }
+  G2N4014 = 4C+5H+2N+9O;   {CH2(ONO2)CH(ONO2)CH(OO.)CHO                                                                            2.NND    }
+  G2G400t = 4C+5H+2N+11O;  {CH2(ONO2)CH(ONO2)CH(OO.)CO(OOH)                                                                        2.GNN    }
+  G2P400N = 4C+4H+3N+13O;  {CH2(ONO2)CH(ONO2)CH(OO.)CO(OONO2)                                                                      2.PNN    }
+  G2N503g = 5C+6H+3N+12O;  {CH2(ONO2)CH(ONO2)CH(OO.)COCH2(ONO2)                                                                    2.NNN    }
+  G2N5061 = 5C+5H+2N+10O;  {CH2(ONO2)CH(ONO2)CH(OO.)COCHO                                                                          2.NND    }
+  G2G504J = 5C+5H+2N+12O;  {CH2(ONO2)CH(ONO2)CH(OO.)COCO(OOH)                                                                      2.GNN    }
+  G2P502v = 5C+4H+3N+14O;  {CH2(ONO2)CH(ONO2)CH(OO.)COCO(OONO2)                                                                    2.PNN    }
+  G1H507x = 5C+8H+3N+12O;  {CH2(ONO2)CH(ONO2)CH(OOH)CH(O.)CH2(ONO2)                                                                1.HNN    }
+  G1H50BM = 5C+7H+2N+10O;  {CH2(ONO2)CH(ONO2)CH(OOH)CH(O.)CHO                                                                      1.HNN    }
+  G1G5038 = 5C+7H+2N+12O;  {CH2(ONO2)CH(ONO2)CH(OOH)CH(O.)CO(OOH)                                                                  1.GHN    }
+  G1P503U = 5C+6H+3N+14O;  {CH2(ONO2)CH(ONO2)CH(OOH)CH(O.)CO(OONO2)                                                                1.PHN    }
+  G1H504q = 5C+9H+2N+10O;  {CH2(ONO2)CH(ONO2)CH(OOH)CH(OH)CH2(O.)                                                                  1.HNN    }
+  GHN502h = 5C+9H+3N+12O;  {CH2(ONO2)CH(ONO2)CH(OOH)CH(OH)CH2(ONO2)                                                                HNNNO    }
+  GHN506a = 5C+8H+2N+10O;  {CH2(ONO2)CH(ONO2)CH(OOH)CH(OH)CHO                                                                      HNNDO    }
+  G3H504P = 5C+7H+2N+12O;  {CH2(ONO2)CH(ONO2)CH(OOH)CH(OH)CO(OO.)                                                                  3.HNN    }
+  GGH503f = 5C+8H+2N+12O;  {CH2(ONO2)CH(ONO2)CH(OOH)CH(OH)CO(OOH)                                                                  GHNNO    }
+  GPH503f = 5C+7H+3N+14O;  {CH2(ONO2)CH(ONO2)CH(OOH)CH(OH)CO(OONO2)                                                                PHNNO    }
+  G1H507w = 5C+8H+3N+12O;  {CH2(ONO2)CH(ONO2)CH(OOH)CH(ONO2)CH2(O.)                                                                1.HNN    }
+  GHN504h = 5C+8H+4N+14O;  {CH2(ONO2)CH(ONO2)CH(OOH)CH(ONO2)CH2(ONO2)                                                              HNNNN    }
+  GHN506W = 5C+7H+3N+12O;  {CH2(ONO2)CH(ONO2)CH(OOH)CH(ONO2)CHO                                                                    HNNND    }
+  G3H504K = 5C+6H+3N+14O;  {CH2(ONO2)CH(ONO2)CH(OOH)CH(ONO2)CO(OO.)                                                                3.HNN    }
+  GGH503d = 5C+7H+3N+14O;  {CH2(ONO2)CH(ONO2)CH(OOH)CH(ONO2)CO(OOH)                                                                GHNNN    }
+  GPH503d = 5C+6H+4N+16O;  {CH2(ONO2)CH(ONO2)CH(OOH)CH(ONO2)CO(OONO2)                                                              PHNNN    }
+  G2G502F = 5C+7H+2N+13O;  {CH2(ONO2)CH(ONO2)CH(OOH)CH(OO.)CO(OOH)                                                                 2.GHN    }
+  G2P502q = 5C+6H+3N+15O;  {CH2(ONO2)CH(ONO2)CH(OOH)CH(OO.)CO(OONO2)                                                               2.PHN    }
+  GHH502m = 5C+8H+2N+11O;  {CH2(ONO2)CH(ONO2)CH(OOH)CH(OOH)CHO                                                                     HHNND    }
+  G3H504N = 5C+7H+2N+13O;  {CH2(ONO2)CH(ONO2)CH(OOH)CH(OOH)CO(OO.)                                                                 3.HHN    }
+  GGH503e = 5C+8H+2N+13O;  {CH2(ONO2)CH(ONO2)CH(OOH)CH(OOH)CO(OOH)                                                                 GHHNN    }
+  GPH503e = 5C+7H+3N+15O;  {CH2(ONO2)CH(ONO2)CH(OOH)CH(OOH)CO(OONO2)                                                               PHHNN    }
+  G1H401U = 4C+7H+2N+9O;   {CH2(ONO2)CH(ONO2)CH(OOH)CH2(O.)                                                                        1.HNN    }
+  GHN400w = 4C+7H+3N+11O;  {CH2(ONO2)CH(ONO2)CH(OOH)CH2(ONO2)                                                                      HNNN     }
+  G2H4016 = 4C+7H+2N+10O;  {CH2(ONO2)CH(ONO2)CH(OOH)CH2(OO.)                                                                       2.HNN    }
+  GHH400q = 4C+8H+2N+10O;  {CH2(ONO2)CH(ONO2)CH(OOH)CH2(OOH)                                                                       HHNN     }
+  G1H503W = 5C+9H+2N+9O;   {CH2(ONO2)CH(ONO2)CH(OOH)CH2CH2(O.)                                                                     1.HNN    }
+  GHN501v = 5C+9H+3N+11O;  {CH2(ONO2)CH(ONO2)CH(OOH)CH2CH2(ONO2)                                                                   HNNN     }
+  GHN504l = 5C+8H+2N+9O;   {CH2(ONO2)CH(ONO2)CH(OOH)CH2CHO                                                                         HNND     }
+  G3H501v = 5C+7H+2N+11O;  {CH2(ONO2)CH(ONO2)CH(OOH)CH2CO(OO.)                                                                     3.HNN    }
+  GGH501C = 5C+8H+2N+11O;  {CH2(ONO2)CH(ONO2)CH(OOH)CH2CO(OOH)                                                                     GHNN     }
+  GPH5016 = 5C+7H+3N+13O;  {CH2(ONO2)CH(ONO2)CH(OOH)CH2CO(OONO2)                                                                   PHNN     }
+  GHN400v = 4C+6H+2N+9O;   {CH2(ONO2)CH(ONO2)CH(OOH)CHO                                                                            HNND     }
+  G3H400Z = 4C+5H+2N+11O;  {CH2(ONO2)CH(ONO2)CH(OOH)CO(OO.)                                                                        3.HNN    }
+  GGH400k = 4C+6H+2N+11O;  {CH2(ONO2)CH(ONO2)CH(OOH)CO(OOH)                                                                        GHNN     }
+  GPH400O = 4C+5H+3N+13O;  {CH2(ONO2)CH(ONO2)CH(OOH)CO(OONO2)                                                                      PHNN     }
+  G1H5081 = 5C+7H+2N+10O;  {CH2(ONO2)CH(ONO2)CH(OOH)COCH2(O.)                                                                      1.HNN    }
+  GHN504i = 5C+7H+3N+12O;  {CH2(ONO2)CH(ONO2)CH(OOH)COCH2(ONO2)                                                                    HNNNK    }
+  GHN5063 = 5C+6H+2N+10O;  {CH2(ONO2)CH(ONO2)CH(OOH)COCHO                                                                          HNNDK    }
+  G3H504k = 5C+5H+2N+12O;  {CH2(ONO2)CH(ONO2)CH(OOH)COCO(OO.)                                                                      3.HNN    }
+  GGH503g = 5C+6H+2N+12O;  {CH2(ONO2)CH(ONO2)CH(OOH)COCO(OOH)                                                                      GHNNK    }
+  GPH503g = 5C+5H+3N+14O;  {CH2(ONO2)CH(ONO2)CH(OOH)COCO(OONO2)                                                                    PHNNK    }
+  G1N3004 = 3C+5H+2N+7O;   {CH2(ONO2)CH(ONO2)CH2(O.)                                                                               1.NN     }
+  GNN3003 = 3C+5H+3N+9O;   {CH2(ONO2)CH(ONO2)CH2(ONO2)                                                                             NNN      }
+  G2N3004 = 3C+5H+2N+8O;   {CH2(ONO2)CH(ONO2)CH2(OO.)                                                                              2.NN     }
+  GHN3004 = 3C+6H+2N+8O;   {CH2(ONO2)CH(ONO2)CH2(OOH)                                                                              HNN      }
+  G1N501b = 5C+8H+3N+10O;  {CH2(ONO2)CH(ONO2)CH2CH(O.)CH2(ONO2)                                                                    1.NNN    }
+  G1H501W = 5C+9H+2N+9O;   {CH2(ONO2)CH(ONO2)CH2CH(O.)CH2(OOH)                                                                     1.HNN    }
+  G1N504r = 5C+7H+2N+8O;   {CH2(ONO2)CH(ONO2)CH2CH(O.)CHO                                                                          1.NND    }
+  G1G5015 = 5C+7H+2N+10O;  {CH2(ONO2)CH(ONO2)CH2CH(O.)CO(OOH)                                                                      1.GNN    }
+  G1P500v = 5C+6H+3N+12O;  {CH2(ONO2)CH(ONO2)CH2CH(O.)CO(OONO2)                                                                    1.PNN    }
+  G1N502C = 5C+9H+2N+8O;   {CH2(ONO2)CH(ONO2)CH2CH(OH)CH2(O.)                                                                      1.NNO    }
+  G2N503C = 5C+9H+2N+9O;   {CH2(ONO2)CH(ONO2)CH2CH(OH)CH2(OO.)                                                                     2.NNO    }
+  GHN501O = 5C+10H+2N+9O;  {CH2(ONO2)CH(ONO2)CH2CH(OH)CH2(OOH)                                                                     HNNO     }
+  GNN502N = 5C+8H+2N+8O;   {CH2(ONO2)CH(ONO2)CH2CH(OH)CHO                                                                          NNDO     }
+  G3N5015 = 5C+7H+2N+10O;  {CH2(ONO2)CH(ONO2)CH2CH(OH)CO(OO.)                                                                      3.NNK    }
+  GGN501I = 5C+8H+2N+10O;  {CH2(ONO2)CH(ONO2)CH2CH(OH)CO(OOH)                                                                      GNNO     }
+  GPN501B = 5C+7H+3N+12O;  {CH2(ONO2)CH(ONO2)CH2CH(OH)CO(OONO2)                                                                    PNNO     }
+  G1N5026 = 5C+8H+3N+10O;  {CH2(ONO2)CH(ONO2)CH2CH(ONO2)CH2(O.)                                                                    1.NNN    }
+  GNN501C = 5C+8H+4N+12O;  {CH2(ONO2)CH(ONO2)CH2CH(ONO2)CH2(ONO2)                                                                  NNNN     }
+  G2N501z = 5C+8H+3N+11O;  {CH2(ONO2)CH(ONO2)CH2CH(ONO2)CH2(OO.)                                                                   2.NNN    }
+  GHN502c = 5C+9H+3N+11O;  {CH2(ONO2)CH(ONO2)CH2CH(ONO2)CH2(OOH)                                                                   HNNN     }
+  GNN501l = 5C+7H+3N+10O;  {CH2(ONO2)CH(ONO2)CH2CH(ONO2)CHO                                                                        NNND     }
+  G3N500s = 5C+6H+3N+12O;  {CH2(ONO2)CH(ONO2)CH2CH(ONO2)CO(OO.)                                                                    3.NNN    }
+  GGN500x = 5C+7H+3N+12O;  {CH2(ONO2)CH(ONO2)CH2CH(ONO2)CO(OOH)                                                                    GNNN     }
+  GPN501A = 5C+6H+4N+14O;  {CH2(ONO2)CH(ONO2)CH2CH(ONO2)CO(OONO2)                                                                  PNNN     }
+  G2N501X = 5C+8H+3N+11O;  {CH2(ONO2)CH(ONO2)CH2CH(OO.)CH2(ONO2)                                                                   2.NNN    }
+  G2H500s = 5C+9H+2N+10O;  {CH2(ONO2)CH(ONO2)CH2CH(OO.)CH2(OOH)                                                                    2.HNN    }
+  G2N504p = 5C+7H+2N+9O;   {CH2(ONO2)CH(ONO2)CH2CH(OO.)CHO                                                                         2.NND    }
+  G2G500s = 5C+7H+2N+11O;  {CH2(ONO2)CH(ONO2)CH2CH(OO.)CO(OOH)                                                                     2.GNN    }
+  G2P500r = 5C+6H+3N+13O;  {CH2(ONO2)CH(ONO2)CH2CH(OO.)CO(OONO2)                                                                   2.PNN    }
+  G1H503S = 5C+9H+2N+9O;   {CH2(ONO2)CH(ONO2)CH2CH(OOH)CH2(O.)                                                                     1.HNN    }
+  GHN501u = 5C+9H+3N+11O;  {CH2(ONO2)CH(ONO2)CH2CH(OOH)CH2(ONO2)                                                                   HNNN     }
+  G2H502G = 5C+9H+2N+10O;  {CH2(ONO2)CH(ONO2)CH2CH(OOH)CH2(OO.)                                                                    2.HNN    }
+  GHH500o = 5C+10H+2N+10O; {CH2(ONO2)CH(ONO2)CH2CH(OOH)CH2(OOH)                                                                    HHNN     }
+  GHN503Y = 5C+8H+2N+9O;   {CH2(ONO2)CH(ONO2)CH2CH(OOH)CHO                                                                         HNND     }
+  G3H500y = 5C+7H+2N+11O;  {CH2(ONO2)CH(ONO2)CH2CH(OOH)CO(OO.)                                                                     3.HNN    }
+  GGH501D = 5C+8H+2N+11O;  {CH2(ONO2)CH(ONO2)CH2CH(OOH)CO(OOH)                                                                     GHNN     }
+  GPH5017 = 5C+7H+3N+13O;  {CH2(ONO2)CH(ONO2)CH2CH(OOH)CO(OONO2)                                                                   PHNN     }
+  G1N400H = 4C+7H+2N+7O;   {CH2(ONO2)CH(ONO2)CH2CH2(O.)                                                                            1.NN     }
+  G2N400H = 4C+7H+2N+8O;   {CH2(ONO2)CH(ONO2)CH2CH2(OO.)                                                                           2.NN     }
+  GHN400P = 4C+8H+2N+8O;   {CH2(ONO2)CH(ONO2)CH2CH2(OOH)                                                                           HNN      }
+  G1N500d = 5C+9H+2N+7O;   {CH2(ONO2)CH(ONO2)CH2CH2CH2(O.)                                                                         1.NN     }
+  G2N500c = 5C+9H+2N+8O;   {CH2(ONO2)CH(ONO2)CH2CH2CH2(OO.)                                                                        2.NN     }
+  GHN500i = 5C+10H+2N+8O;  {CH2(ONO2)CH(ONO2)CH2CH2CH2(OOH)                                                                        HNN      }
+  GNN500h = 5C+8H+2N+7O;   {CH2(ONO2)CH(ONO2)CH2CH2CHO                                                                             NND      }
+  G3N500C = 5C+7H+2N+9O;   {CH2(ONO2)CH(ONO2)CH2CH2CO(OO.)                                                                         3.NNK    }
+  GGN500G = 5C+8H+2N+9O;   {CH2(ONO2)CH(ONO2)CH2CH2CO(OOH)                                                                         GNN      }
+  GPN500A = 5C+7H+3N+11O;  {CH2(ONO2)CH(ONO2)CH2CH2CO(OONO2)                                                                       PNN      }
+  GNN4001 = 4C+6H+2N+7O;   {CH2(ONO2)CH(ONO2)CH2CHO                                                                                NND      }
+  G3N4006 = 4C+5H+2N+9O;   {CH2(ONO2)CH(ONO2)CH2CO(OO.)                                                                            3.NNK    }
+  GGN4007 = 4C+6H+2N+9O;   {CH2(ONO2)CH(ONO2)CH2CO(OOH)                                                                            GNN      }
+  GPN4007 = 4C+5H+3N+11O;  {CH2(ONO2)CH(ONO2)CH2CO(OONO2)                                                                          PNN      }
+  G1N502Q = 5C+7H+2N+8O;   {CH2(ONO2)CH(ONO2)CH2COCH2(O.)                                                                          1.NNK    }
+  G2N502F = 5C+7H+2N+9O;   {CH2(ONO2)CH(ONO2)CH2COCH2(OO.)                                                                         2.NNK    }
+  GHN502C = 5C+8H+2N+9O;   {CH2(ONO2)CH(ONO2)CH2COCH2(OOH)                                                                         HNNK     }
+  GNN501t = 5C+6H+2N+8O;   {CH2(ONO2)CH(ONO2)CH2COCHO                                                                              NNDK     }
+  G3N501s = 5C+5H+2N+10O;  {CH2(ONO2)CH(ONO2)CH2COCO(OO.)                                                                          3.NNK    }
+  GGN5012 = 5C+6H+2N+10O;  {CH2(ONO2)CH(ONO2)CH2COCO(OOH)                                                                          GNNK     }
+  GPN501C = 5C+5H+3N+12O;  {CH2(ONO2)CH(ONO2)CH2COCO(OONO2)                                                                        PNNK     }
+  GNN3005 = 3C+4H+2N+7O;   {CH2(ONO2)CH(ONO2)CHO                                                                                   NND      }
+  G3N3003 = 3C+3H+2N+9O;   {CH2(ONO2)CH(ONO2)CO(OO.)                                                                               3.NNK    }
+  GGN3004 = 3C+4H+2N+9O;   {CH2(ONO2)CH(ONO2)CO(OOH)                                                                               GNN      }
+  GPN3004 = 3C+3H+3N+11O;  {CH2(ONO2)CH(ONO2)CO(OONO2)                                                                             PNN      }
+  G1N504E = 5C+6H+3N+11O;  {CH2(ONO2)CH(ONO2)COCH(O.)CH2(ONO2)                                                                     1.NNN    }
+  G1H509P = 5C+7H+2N+10O;  {CH2(ONO2)CH(ONO2)COCH(O.)CH2(OOH)                                                                      1.HNN    }
+  G1N506k = 5C+5H+2N+9O;   {CH2(ONO2)CH(ONO2)COCH(O.)CHO                                                                           1.NND    }
+  G1G5031 = 5C+5H+2N+11O;  {CH2(ONO2)CH(ONO2)COCH(O.)CO(OOH)                                                                       1.GNN    }
+  G1P503E = 5C+4H+3N+13O;  {CH2(ONO2)CH(ONO2)COCH(O.)CO(OONO2)                                                                     1.PNN    }
+  G1N504w = 5C+7H+2N+9O;   {CH2(ONO2)CH(ONO2)COCH(OH)CH2(O.)                                                                       1.NNK    }
+  G2N504d = 5C+7H+2N+10O;  {CH2(ONO2)CH(ONO2)COCH(OH)CH2(OO.)                                                                      2.NNK    }
+  GHN505z = 5C+8H+2N+10O;  {CH2(ONO2)CH(ONO2)COCH(OH)CH2(OOH)                                                                      HNNKO    }
+  GNN5032 = 5C+6H+2N+9O;   {CH2(ONO2)CH(ONO2)COCH(OH)CHO                                                                           NNDKO    }
+  G3N5022 = 5C+5H+2N+11O;  {CH2(ONO2)CH(ONO2)COCH(OH)CO(OO.)                                                                       3.NNK    }
+  GGN502N = 5C+6H+2N+11O;  {CH2(ONO2)CH(ONO2)COCH(OH)CO(OOH)                                                                       GNNKO    }
+  GPN502a = 5C+5H+3N+13O;  {CH2(ONO2)CH(ONO2)COCH(OH)CO(OONO2)                                                                     PNNKO    }
+  G1N504o = 5C+6H+3N+11O;  {CH2(ONO2)CH(ONO2)COCH(ONO2)CH2(O.)                                                                     1.NNN    }
+  GNN502f = 5C+6H+4N+13O;  {CH2(ONO2)CH(ONO2)COCH(ONO2)CH2(ONO2)                                                                   NNNNK    }
+  G2N504H = 5C+6H+3N+12O;  {CH2(ONO2)CH(ONO2)COCH(ONO2)CH2(OO.)                                                                    2.NNN    }
+  GHN505R = 5C+7H+3N+12O;  {CH2(ONO2)CH(ONO2)COCH(ONO2)CH2(OOH)                                                                    HNNNK    }
+  GNN502z = 5C+5H+3N+11O;  {CH2(ONO2)CH(ONO2)COCH(ONO2)CHO                                                                         NNNDK    }
+  G3N501z = 5C+4H+3N+13O;  {CH2(ONO2)CH(ONO2)COCH(ONO2)CO(OO.)                                                                     3.NNN    }
+  GGN502L = 5C+5H+3N+13O;  {CH2(ONO2)CH(ONO2)COCH(ONO2)CO(OOH)                                                                     GNNNK    }
+  GPN502Z = 5C+4H+4N+15O;  {CH2(ONO2)CH(ONO2)COCH(ONO2)CO(OONO2)                                                                   PNNNK    }
+  G2N503k = 5C+6H+3N+12O;  {CH2(ONO2)CH(ONO2)COCH(OO.)CH2(ONO2)                                                                    2.NNN    }
+  G2G502B = 5C+5H+2N+12O;  {CH2(ONO2)CH(ONO2)COCH(OO.)CO(OOH)                                                                      2.GNN    }
+  G2P502e = 5C+4H+3N+14O;  {CH2(ONO2)CH(ONO2)COCH(OO.)CO(OONO2)                                                                    2.PNN    }
+  G1H508K = 5C+7H+2N+10O;  {CH2(ONO2)CH(ONO2)COCH(OOH)CH2(O.)                                                                      1.HNN    }
+  GHN504p = 5C+7H+3N+12O;  {CH2(ONO2)CH(ONO2)COCH(OOH)CH2(ONO2)                                                                    HNNNK    }
+  GHN506Y = 5C+6H+2N+10O;  {CH2(ONO2)CH(ONO2)COCH(OOH)CHO                                                                          HNNDK    }
+  G3H504M = 5C+5H+2N+12O;  {CH2(ONO2)CH(ONO2)COCH(OOH)CO(OO.)                                                                      3.HNN    }
+  GGH503Y = 5C+6H+2N+12O;  {CH2(ONO2)CH(ONO2)COCH(OOH)CO(OOH)                                                                      GHNNK    }
+  GPH503W = 5C+5H+3N+14O;  {CH2(ONO2)CH(ONO2)COCH(OOH)CO(OONO2)                                                                    PHNNK    }
+  G1N4014 = 4C+5H+2N+8O;   {CH2(ONO2)CH(ONO2)COCH2(O.)                                                                             1.NNK    }
+  G2N400t = 4C+5H+2N+9O;   {CH2(ONO2)CH(ONO2)COCH2(OO.)                                                                            2.NNK    }
+  GHN4017 = 4C+6H+2N+9O;   {CH2(ONO2)CH(ONO2)COCH2(OOH)                                                                            HNNK     }
+  G1N502q = 5C+7H+2N+8O;   {CH2(ONO2)CH(ONO2)COCH2CH2(O.)                                                                          1.NNK    }
+  G2N502Z = 5C+7H+2N+9O;   {CH2(ONO2)CH(ONO2)COCH2CH2(OO.)                                                                         2.NNK    }
+  GHN503E = 5C+8H+2N+9O;   {CH2(ONO2)CH(ONO2)COCH2CH2(OOH)                                                                         HNNK     }
+  GNN502K = 5C+6H+2N+8O;   {CH2(ONO2)CH(ONO2)COCH2CHO                                                                              NNDK     }
+  G3N500y = 5C+5H+2N+10O;  {CH2(ONO2)CH(ONO2)COCH2CO(OO.)                                                                          3.NNK    }
+  GGN501F = 5C+6H+2N+10O;  {CH2(ONO2)CH(ONO2)COCH2CO(OOH)                                                                          GNNK     }
+  GPN5015 = 5C+5H+3N+12O;  {CH2(ONO2)CH(ONO2)COCH2CO(OONO2)                                                                        PNNK     }
+  GNN400a = 4C+4H+2N+8O;   {CH2(ONO2)CH(ONO2)COCHO                                                                                 NNDK     }
+  G3N400Z = 4C+3H+2N+10O;  {CH2(ONO2)CH(ONO2)COCO(OO.)                                                                             3.NNK    }
+  GGN400a = 4C+4H+2N+10O;  {CH2(ONO2)CH(ONO2)COCO(OOH)                                                                             GNNK     }
+  GPN400U = 4C+3H+3N+12O;  {CH2(ONO2)CH(ONO2)COCO(OONO2)                                                                           PNNK     }
+  G1N505A = 5C+5H+2N+9O;   {CH2(ONO2)CH(ONO2)COCOCH2(O.)                                                                           1.NNK    }
+  G2N504N = 5C+5H+2N+10O;  {CH2(ONO2)CH(ONO2)COCOCH2(OO.)                                                                          2.NNK    }
+  GHN505a = 5C+6H+2N+10O;  {CH2(ONO2)CH(ONO2)COCOCH2(OOH)                                                                          HNNKK    }
+  GNN503A = 5C+4H+2N+9O;   {CH2(ONO2)CH(ONO2)COCOCHO                                                                               NNDKK    }
+  G3N502l = 5C+3H+2N+11O;  {CH2(ONO2)CH(ONO2)COCOCO(OO.)                                                                           3.NNK    }
+  GGN502X = 5C+4H+2N+11O;  {CH2(ONO2)CH(ONO2)COCOCO(OOH)                                                                           GNNKK    }
+  GPN502b = 5C+3H+3N+13O;  {CH2(ONO2)CH(ONO2)COCOCO(OONO2)                                                                         PNNKK    }
+  G2N5063 = 5C+8H+N+8O;    {CH2(ONO2)CH(OO.)CH(OH)CH(OH)CHO                                                                        2.NDO    }
+  G2G504Y = 5C+8H+N+10O;   {CH2(ONO2)CH(OO.)CH(OH)CH(OH)CO(OOH)                                                                    2.GNO    }
+  G2P505W = 5C+7H+2N+12O;  {CH2(ONO2)CH(OO.)CH(OH)CH(OH)CO(OONO2)                                                                  2.PNO    }
+  G2N5065 = 5C+7H+2N+10O;  {CH2(ONO2)CH(OO.)CH(OH)CH(ONO2)CHO                                                                      2.NND    }
+  G2G504a = 5C+7H+2N+12O;  {CH2(ONO2)CH(OO.)CH(OH)CH(ONO2)CO(OOH)                                                                  2.GNN    }
+  G2P502b = 5C+6H+3N+14O;  {CH2(ONO2)CH(OO.)CH(OH)CH(ONO2)CO(OONO2)                                                                2.PNN    }
+  G2G504R = 5C+8H+N+11O;   {CH2(ONO2)CH(OO.)CH(OH)CH(OOH)CO(OOH)                                                                   2.GHN    }
+  G2P505n = 5C+7H+2N+13O;  {CH2(ONO2)CH(OO.)CH(OH)CH(OOH)CO(OONO2)                                                                 2.PHN    }
+  G2H400u = 4C+8H+N+8O;    {CH2(ONO2)CH(OO.)CH(OH)CH2(OOH)                                                                         2.HNO    }
+  G2N504q = 5C+8H+N+7O;    {CH2(ONO2)CH(OO.)CH(OH)CH2CHO                                                                           2.NDO    }
+  G2G502P = 5C+8H+N+9O;    {CH2(ONO2)CH(OO.)CH(OH)CH2CO(OOH)                                                                       2.GNO    }
+  G2P502z = 5C+7H+2N+11O;  {CH2(ONO2)CH(OO.)CH(OH)CH2CO(OONO2)                                                                     2.PNO    }
+  G2N4018 = 4C+6H+N+7O;    {CH2(ONO2)CH(OO.)CH(OH)CHO                                                                              2.NDO    }
+  G2G400c = 4C+6H+N+9O;    {CH2(ONO2)CH(OO.)CH(OH)CO(OOH)                                                                          2.GNO    }
+  G2P400r = 4C+5H+2N+11O;  {CH2(ONO2)CH(OO.)CH(OH)CO(OONO2)                                                                        2.PNO    }
+  G2N5066 = 5C+6H+N+8O;    {CH2(ONO2)CH(OO.)CH(OH)COCHO                                                                            2.NDK    }
+  G2G501r = 5C+6H+N+10O;   {CH2(ONO2)CH(OO.)CH(OH)COCO(OOH)                                                                        2.GNK    }
+  G2P502c = 5C+5H+2N+12O;  {CH2(ONO2)CH(OO.)CH(OH)COCO(OONO2)                                                                      2.PNK    }
+  G2N5062 = 5C+7H+2N+10O;  {CH2(ONO2)CH(OO.)CH(ONO2)CH(OH)CHO                                                                      2.NND    }
+  G2G504W = 5C+7H+2N+12O;  {CH2(ONO2)CH(OO.)CH(ONO2)CH(OH)CO(OOH)                                                                  2.GNN    }
+  G2P505T = 5C+6H+3N+14O;  {CH2(ONO2)CH(OO.)CH(ONO2)CH(OH)CO(OONO2)                                                                2.PNN    }
+  G2N505g = 5C+6H+3N+12O;  {CH2(ONO2)CH(OO.)CH(ONO2)CH(ONO2)CHO                                                                    2.NNN    }
+  G2G503y = 5C+6H+3N+14O;  {CH2(ONO2)CH(OO.)CH(ONO2)CH(ONO2)CO(OOH)                                                                2.GNN    }
+  G2P502W = 5C+5H+4N+16O;  {CH2(ONO2)CH(OO.)CH(ONO2)CH(ONO2)CO(OONO2)                                                              2.PNN    }
+  G2H503Q = 5C+7H+2N+11O;  {CH2(ONO2)CH(OO.)CH(ONO2)CH(OOH)CHO                                                                     2.HNN    }
+  G2G504P = 5C+7H+2N+13O;  {CH2(ONO2)CH(OO.)CH(ONO2)CH(OOH)CO(OOH)                                                                 2.GHN    }
+  G2P505l = 5C+6H+3N+15O;  {CH2(ONO2)CH(OO.)CH(ONO2)CH(OOH)CO(OONO2)                                                               2.PHN    }
+  G2H401L = 4C+7H+2N+10O;  {CH2(ONO2)CH(OO.)CH(ONO2)CH2(OOH)                                                                       2.HNN    }
+  G2N504U = 5C+7H+2N+9O;   {CH2(ONO2)CH(OO.)CH(ONO2)CH2CHO                                                                         2.NND    }
+  G2G5028 = 5C+7H+2N+11O;  {CH2(ONO2)CH(OO.)CH(ONO2)CH2CO(OOH)                                                                     2.GNN    }
+  G2P500j = 5C+6H+3N+13O;  {CH2(ONO2)CH(OO.)CH(ONO2)CH2CO(OONO2)                                                                   2.PNN    }
+  G2N401A = 4C+5H+2N+9O;   {CH2(ONO2)CH(OO.)CH(ONO2)CHO                                                                            2.NND    }
+  G2G400a = 4C+5H+2N+11O;  {CH2(ONO2)CH(OO.)CH(ONO2)CO(OOH)                                                                        2.GNN    }
+  G2P400M = 4C+4H+3N+13O;  {CH2(ONO2)CH(OO.)CH(ONO2)CO(OONO2)                                                                      2.PNN    }
+  G2N506g = 5C+5H+2N+10O;  {CH2(ONO2)CH(OO.)CH(ONO2)COCHO                                                                          2.NND    }
+  G2G505N = 5C+5H+2N+12O;  {CH2(ONO2)CH(OO.)CH(ONO2)COCO(OOH)                                                                      2.GNN    }
+  G2P502X = 5C+4H+3N+14O;  {CH2(ONO2)CH(OO.)CH(ONO2)COCO(OONO2)                                                                    2.PNN    }
+  G2G504X = 5C+8H+N+11O;   {CH2(ONO2)CH(OO.)CH(OOH)CH(OH)CO(OOH)                                                                   2.GHN    }
+  G2P505U = 5C+7H+2N+13O;  {CH2(ONO2)CH(OO.)CH(OOH)CH(OH)CO(OONO2)                                                                 2.PHN    }
+  G2G502N = 5C+8H+N+10O;   {CH2(ONO2)CH(OO.)CH(OOH)CH2CO(OOH)                                                                      2.GHN    }
+  G2P502x = 5C+7H+2N+12O;  {CH2(ONO2)CH(OO.)CH(OOH)CH2CO(OONO2)                                                                    2.PHN    }
+  G2G400b = 4C+6H+N+10O;   {CH2(ONO2)CH(OO.)CH(OOH)CO(OOH)                                                                         2.GHN    }
+  G2P400q = 4C+5H+2N+12O;  {CH2(ONO2)CH(OO.)CH(OOH)CO(OONO2)                                                                       2.PHN    }
+  G2H5046 = 5C+6H+N+9O;    {CH2(ONO2)CH(OO.)CH(OOH)COCHO                                                                           2.HND    }
+  G2G505r = 5C+6H+N+11O;   {CH2(ONO2)CH(OO.)CH(OOH)COCO(OOH)                                                                       2.GHN    }
+  G2P507b = 5C+5H+2N+13O;  {CH2(ONO2)CH(OO.)CH(OOH)COCO(OONO2)                                                                     2.PHN    }
+  G2N3006 = 3C+5H+2N+8O;   {CH2(ONO2)CH(OO.)CH2(ONO2)                                                                              2.NN     }
+  G2H3007 = 3C+6H+N+7O;    {CH2(ONO2)CH(OO.)CH2(OOH)                                                                               2.HN     }
+  G2H502d = 5C+10H+N+8O;   {CH2(ONO2)CH(OO.)CH2CH(OH)CH2(OOH)                                                                      2.HNO    }
+  G2N504r = 5C+8H+N+7O;    {CH2(ONO2)CH(OO.)CH2CH(OH)CHO                                                                           2.NDO    }
+  G2G502Z = 5C+8H+N+9O;    {CH2(ONO2)CH(OO.)CH2CH(OH)CO(OOH)                                                                       2.GNO    }
+  G2P5034 = 5C+7H+2N+11O;  {CH2(ONO2)CH(OO.)CH2CH(OH)CO(OONO2)                                                                     2.PNO    }
+  G2N503l = 5C+7H+2N+9O;   {CH2(ONO2)CH(OO.)CH2CH(ONO2)CHO                                                                         2.NND    }
+  G2G500f = 5C+7H+2N+11O;  {CH2(ONO2)CH(OO.)CH2CH(ONO2)CO(OOH)                                                                     2.GNN    }
+  G2P500y = 5C+6H+3N+13O;  {CH2(ONO2)CH(OO.)CH2CH(ONO2)CO(OONO2)                                                                   2.PNN    }
+  G2H502S = 5C+8H+N+8O;    {CH2(ONO2)CH(OO.)CH2CH(OOH)CHO                                                                          2.HND    }
+  G2G502W = 5C+8H+N+10O;   {CH2(ONO2)CH(OO.)CH2CH(OOH)CO(OOH)                                                                      2.GHN    }
+  G2P5032 = 5C+7H+2N+12O;  {CH2(ONO2)CH(OO.)CH2CH(OOH)CO(OONO2)                                                                    2.PHN    }
+  G2H400m = 4C+8H+N+7O;    {CH2(ONO2)CH(OO.)CH2CH2(OOH)                                                                            2.HN     }
+  G2N502o = 5C+8H+N+6O;    {CH2(ONO2)CH(OO.)CH2CH2CHO                                                                              2.ND     }
+  G2G500v = 5C+8H+N+8O;    {CH2(ONO2)CH(OO.)CH2CH2CO(OOH)                                                                          2.GN     }
+  G2P5005 = 5C+7H+2N+10O;  {CH2(ONO2)CH(OO.)CH2CH2CO(OONO2)                                                                        2.PN     }
+  G2N400I = 4C+6H+N+6O;    {CH2(ONO2)CH(OO.)CH2CHO                                                                                 2.ND     }
+  G2G4001 = 4C+6H+N+8O;    {CH2(ONO2)CH(OO.)CH2CO(OOH)                                                                             2.GN     }
+  G2P4001 = 4C+5H+2N+10O;  {CH2(ONO2)CH(OO.)CH2CO(OONO2)                                                                           2.PN     }
+  G2H500g = 5C+8H+N+8O;    {CH2(ONO2)CH(OO.)CH2COCH2(OOH)                                                                          2.HNK    }
+  G2N5028 = 5C+6H+N+7O;    {CH2(ONO2)CH(OO.)CH2COCHO                                                                               2.NDK    }
+  G2G500i = 5C+6H+N+9O;    {CH2(ONO2)CH(OO.)CH2COCO(OOH)                                                                           2.GNK    }
+  G2P5012 = 5C+5H+2N+11O;  {CH2(ONO2)CH(OO.)CH2COCO(OONO2)                                                                         2.PNK    }
+  G2N3009 = 3C+4H+N+6O;    {CH2(ONO2)CH(OO.)CHO                                                                                    2.ND     }
+  G2G3006 = 3C+4H+N+8O;    {CH2(ONO2)CH(OO.)CO(OOH)                                                                                2.GN     }
+  G2P3003 = 3C+3H+2N+10O;  {CH2(ONO2)CH(OO.)CO(OONO2)                                                                              2.PN     }
+  G2G504Z = 5C+6H+N+10O;   {CH2(ONO2)CH(OO.)COCH(OH)CO(OOH)                                                                        2.GNK    }
+  G2P505B = 5C+5H+2N+12O;  {CH2(ONO2)CH(OO.)COCH(OH)CO(OONO2)                                                                      2.PNK    }
+  G2N506O = 5C+5H+2N+10O;  {CH2(ONO2)CH(OO.)COCH(ONO2)CHO                                                                          2.NND    }
+  G2G505C = 5C+5H+2N+12O;  {CH2(ONO2)CH(OO.)COCH(ONO2)CO(OOH)                                                                      2.GNN    }
+  G2P502h = 5C+4H+3N+14O;  {CH2(ONO2)CH(OO.)COCH(ONO2)CO(OONO2)                                                                    2.PNN    }
+  G2G504T = 5C+6H+N+11O;   {CH2(ONO2)CH(OO.)COCH(OOH)CO(OOH)                                                                       2.GHN    }
+  G2P505A = 5C+5H+2N+13O;  {CH2(ONO2)CH(OO.)COCH(OOH)CO(OONO2)                                                                     2.PHN    }
+  G2H401M = 4C+6H+N+8O;    {CH2(ONO2)CH(OO.)COCH2(OOH)                                                                             2.HNK    }
+  G2H502E = 5C+8H+N+8O;    {CH2(ONO2)CH(OO.)COCH2CH2(OOH)                                                                          2.HNK    }
+  G2G502D = 5C+6H+N+9O;    {CH2(ONO2)CH(OO.)COCH2CO(OOH)                                                                           2.GNK    }
+  G2P500o = 5C+5H+2N+11O;  {CH2(ONO2)CH(OO.)COCH2CO(OONO2)                                                                         2.PNK    }
+  G2N401B = 4C+4H+N+7O;    {CH2(ONO2)CH(OO.)COCHO                                                                                  2.NDK    }
+  G2G400d = 4C+4H+N+9O;    {CH2(ONO2)CH(OO.)COCO(OOH)                                                                              2.GNK    }
+  G2P400Q = 4C+3H+2N+11O;  {CH2(ONO2)CH(OO.)COCO(OONO2)                                                                            2.PNK    }
+  G2N506W = 5C+4H+N+8O;    {CH2(ONO2)CH(OO.)COCOCHO                                                                                2.NDK    }
+  G2G505Y = 5C+4H+N+10O;   {CH2(ONO2)CH(OO.)COCOCO(OOH)                                                                            2.GNK    }
+  G2P502i = 5C+3H+2N+12O;  {CH2(ONO2)CH(OO.)COCOCO(OONO2)                                                                          2.PNK    }
+  G1H502I = 5C+9H+2N+10O;  {CH2(ONO2)CH(OOH)CH(O.)CH(OH)CH2(ONO2)                                                                  1.HNN    }
+  G1H506T = 5C+8H+N+8O;    {CH2(ONO2)CH(OOH)CH(O.)CH(OH)CHO                                                                        1.HND    }
+  G1G503Y = 5C+8H+N+10O;   {CH2(ONO2)CH(OOH)CH(O.)CH(OH)CO(OOH)                                                                    1.GHN    }
+  G1P503r = 5C+7H+2N+12O;  {CH2(ONO2)CH(OOH)CH(O.)CH(OH)CO(OONO2)                                                                  1.PHN    }
+  G1H509L = 5C+7H+2N+10O;  {CH2(ONO2)CH(OOH)CH(O.)CH(ONO2)CHO                                                                      1.HNN    }
+  G1G505l = 5C+7H+2N+12O;  {CH2(ONO2)CH(OOH)CH(O.)CH(ONO2)CO(OOH)                                                                  1.GHN    }
+  G1P506s = 5C+6H+3N+14O;  {CH2(ONO2)CH(OOH)CH(O.)CH(ONO2)CO(OONO2)                                                                1.PHN    }
+  G1H506R = 5C+8H+N+9O;    {CH2(ONO2)CH(OOH)CH(O.)CH(OOH)CHO                                                                       1.HHN    }
+  G1G506s = 5C+8H+N+11O;   {CH2(ONO2)CH(OOH)CH(O.)CH(OOH)CO(OOH)                                                                   1.GHH    }
+  G1P508A = 5C+7H+2N+13O;  {CH2(ONO2)CH(OOH)CH(O.)CH(OOH)CO(OONO2)                                                                 1.PHH    }
+  G1H401g = 4C+7H+2N+9O;   {CH2(ONO2)CH(OOH)CH(O.)CH2(ONO2)                                                                        1.HNN    }
+  G1H401q = 4C+8H+N+8O;    {CH2(ONO2)CH(OOH)CH(O.)CH2(OOH)                                                                         1.HHN    }
+  G1H500k = 5C+9H+2N+9O;   {CH2(ONO2)CH(OOH)CH(O.)CH2CH2(ONO2)                                                                     1.HNN    }
+  G1H501x = 5C+8H+N+7O;    {CH2(ONO2)CH(OOH)CH(O.)CH2CHO                                                                           1.HND    }
+  G1G5018 = 5C+8H+N+9O;    {CH2(ONO2)CH(OOH)CH(O.)CH2CO(OOH)                                                                       1.GHN    }
+  G1P500y = 5C+7H+2N+11O;  {CH2(ONO2)CH(OOH)CH(O.)CH2CO(OONO2)                                                                     1.PHN    }
+  G1H401l = 4C+6H+N+7O;    {CH2(ONO2)CH(OOH)CH(O.)CHO                                                                              1.HND    }
+  G1G400L = 4C+6H+N+9O;    {CH2(ONO2)CH(OOH)CH(O.)CO(OOH)                                                                          1.GHN    }
+  G1P400R = 4C+5H+2N+11O;  {CH2(ONO2)CH(OOH)CH(O.)CO(OONO2)                                                                        1.PHN    }
+  G1H508c = 5C+7H+2N+10O;  {CH2(ONO2)CH(OOH)CH(O.)COCH2(ONO2)                                                                      1.HNN    }
+  G1H50Bw = 5C+6H+N+8O;    {CH2(ONO2)CH(OOH)CH(O.)COCHO                                                                            1.HND    }
+  G1G507m = 5C+6H+N+10O;   {CH2(ONO2)CH(OOH)CH(O.)COCO(OOH)                                                                        1.GHN    }
+  G1P506v = 5C+5H+2N+12O;  {CH2(ONO2)CH(OOH)CH(O.)COCO(OONO2)                                                                      1.PHN    }
+  G1H508G = 5C+9H+2N+10O;  {CH2(ONO2)CH(OOH)CH(OH)CH(O.)CH2(ONO2)                                                                  1.HNN    }
+  G1H50AY = 5C+8H+N+8O;    {CH2(ONO2)CH(OOH)CH(OH)CH(O.)CHO                                                                        1.HND    }
+  G1G506w = 5C+8H+N+10O;   {CH2(ONO2)CH(OOH)CH(OH)CH(O.)CO(OOH)                                                                    1.GHN    }
+  G1P5076 = 5C+7H+2N+12O;  {CH2(ONO2)CH(OOH)CH(OH)CH(O.)CO(OONO2)                                                                  1.PHN    }
+  G1H506n = 5C+10H+N+8O;   {CH2(ONO2)CH(OOH)CH(OH)CH(OH)CH2(O.)                                                                    1.HNO    }
+  GHN5065 = 5C+9H+N+8O;    {CH2(ONO2)CH(OOH)CH(OH)CH(OH)CHO                                                                        HNDOO    }
+  G3H503P = 5C+8H+N+10O;   {CH2(ONO2)CH(OOH)CH(OH)CH(OH)CO(OO.)                                                                    3.HNK    }
+  GGH5045 = 5C+9H+N+10O;   {CH2(ONO2)CH(OOH)CH(OH)CH(OH)CO(OOH)                                                                    GHNOO    }
+  GPH503u = 5C+8H+2N+12O;  {CH2(ONO2)CH(OOH)CH(OH)CH(OH)CO(OONO2)                                                                  PHNOO    }
+  G1H508F = 5C+9H+2N+10O;  {CH2(ONO2)CH(OOH)CH(OH)CH(ONO2)CH2(O.)                                                                  1.HNN    }
+  GHN5068 = 5C+8H+2N+10O;  {CH2(ONO2)CH(OOH)CH(OH)CH(ONO2)CHO                                                                      HNNDO    }
+  G3H503T = 5C+7H+2N+12O;  {CH2(ONO2)CH(OOH)CH(OH)CH(ONO2)CO(OO.)                                                                  3.HNN    }
+  GGH5048 = 5C+8H+2N+12O;  {CH2(ONO2)CH(OOH)CH(OH)CH(ONO2)CO(OOH)                                                                  GHNNO    }
+  GPH503R = 5C+7H+3N+14O;  {CH2(ONO2)CH(OOH)CH(OH)CH(ONO2)CO(OONO2)                                                                PHNNO    }
+  G2G504S = 5C+8H+N+11O;   {CH2(ONO2)CH(OOH)CH(OH)CH(OO.)CO(OOH)                                                                   2.GHN    }
+  G2P505o = 5C+7H+2N+13O;  {CH2(ONO2)CH(OOH)CH(OH)CH(OO.)CO(OONO2)                                                                 2.PHN    }
+  GHH502J = 5C+9H+N+9O;    {CH2(ONO2)CH(OOH)CH(OH)CH(OOH)CHO                                                                       HHNDO    }
+  G3H503L = 5C+8H+N+11O;   {CH2(ONO2)CH(OOH)CH(OH)CH(OOH)CO(OO.)                                                                   3.HHN    }
+  GGH5041 = 5C+9H+N+11O;   {CH2(ONO2)CH(OOH)CH(OH)CH(OOH)CO(OOH)                                                                   GHHNO    }
+  GPH504K = 5C+8H+2N+13O;  {CH2(ONO2)CH(OOH)CH(OH)CH(OOH)CO(OONO2)                                                                 PHHNO    }
+  G1H400t = 4C+8H+N+7O;    {CH2(ONO2)CH(OOH)CH(OH)CH2(O.)                                                                          1.HNO    }
+  G2H400l = 4C+8H+N+8O;    {CH2(ONO2)CH(OOH)CH(OH)CH2(OO.)                                                                         2.HNO    }
+  GHH400F = 4C+9H+N+8O;    {CH2(ONO2)CH(OOH)CH(OH)CH2(OOH)                                                                         HHNO     }
+  G1H503e = 5C+10H+N+7O;   {CH2(ONO2)CH(OOH)CH(OH)CH2CH2(O.)                                                                       1.HNO    }
+  GHN503a = 5C+9H+N+7O;    {CH2(ONO2)CH(OOH)CH(OH)CH2CHO                                                                           HNDO     }
+  G3H5011 = 5C+8H+N+9O;    {CH2(ONO2)CH(OOH)CH(OH)CH2CO(OO.)                                                                       3.HNK    }
+  GGH501J = 5C+9H+N+9O;    {CH2(ONO2)CH(OOH)CH(OH)CH2CO(OOH)                                                                       GHNO     }
+  GPH501A = 5C+8H+2N+11O;  {CH2(ONO2)CH(OOH)CH(OH)CH2CO(OONO2)                                                                     PHNO     }
+  GHN400z = 4C+7H+N+7O;    {CH2(ONO2)CH(OOH)CH(OH)CHO                                                                              HNDO     }
+  G3H400b = 4C+6H+N+9O;    {CH2(ONO2)CH(OOH)CH(OH)CO(OO.)                                                                          3.HNK    }
+  GGH400O = 4C+7H+N+9O;    {CH2(ONO2)CH(OOH)CH(OH)CO(OOH)                                                                          GHNO     }
+  GPH400R = 4C+6H+2N+11O;  {CH2(ONO2)CH(OOH)CH(OH)CO(OONO2)                                                                        PHNO     }
+  G1H508e = 5C+8H+N+8O;    {CH2(ONO2)CH(OOH)CH(OH)COCH2(O.)                                                                        1.HNK    }
+  GHN5069 = 5C+7H+N+8O;    {CH2(ONO2)CH(OOH)CH(OH)COCHO                                                                            HNDKO    }
+  G3H504f = 5C+6H+N+10O;   {CH2(ONO2)CH(OOH)CH(OH)COCO(OO.)                                                                        3.HNK    }
+  GGH5036 = 5C+7H+N+10O;   {CH2(ONO2)CH(OOH)CH(OH)COCO(OOH)                                                                        GHNKO    }
+  GPH503S = 5C+6H+2N+12O;  {CH2(ONO2)CH(OOH)CH(OH)COCO(OONO2)                                                                      PHNKO    }
+  G1H5083 = 5C+8H+3N+12O;  {CH2(ONO2)CH(OOH)CH(ONO2)CH(O.)CH2(ONO2)                                                                1.HNN    }
+  G1H509M = 5C+7H+2N+10O;  {CH2(ONO2)CH(OOH)CH(ONO2)CH(O.)CHO                                                                      1.HNN    }
+  G1G505m = 5C+7H+2N+12O;  {CH2(ONO2)CH(OOH)CH(ONO2)CH(O.)CO(OOH)                                                                  1.GHN    }
+  G1P506t = 5C+6H+3N+14O;  {CH2(ONO2)CH(OOH)CH(ONO2)CH(O.)CO(OONO2)                                                                1.PHN    }
+  G1H505b = 5C+9H+2N+10O;  {CH2(ONO2)CH(OOH)CH(ONO2)CH(OH)CH2(O.)                                                                  1.HNN    }
+  GHN5064 = 5C+8H+2N+10O;  {CH2(ONO2)CH(OOH)CH(ONO2)CH(OH)CHO                                                                      HNNDO    }
+  G3H503N = 5C+7H+2N+12O;  {CH2(ONO2)CH(OOH)CH(ONO2)CH(OH)CO(OO.)                                                                  3.HNN    }
+  GGH5043 = 5C+8H+2N+12O;  {CH2(ONO2)CH(OOH)CH(ONO2)CH(OH)CO(OOH)                                                                  GHNNO    }
+  GPH503s = 5C+7H+3N+14O;  {CH2(ONO2)CH(OOH)CH(ONO2)CH(OH)CO(OONO2)                                                                PHNNO    }
+  G1H5082 = 5C+8H+3N+12O;  {CH2(ONO2)CH(OOH)CH(ONO2)CH(ONO2)CH2(O.)                                                                1.HNN    }
+  GHN505Q = 5C+7H+3N+12O;  {CH2(ONO2)CH(OOH)CH(ONO2)CH(ONO2)CHO                                                                    HNNND    }
+  G3H502g = 5C+6H+3N+14O;  {CH2(ONO2)CH(OOH)CH(ONO2)CH(ONO2)CO(OO.)                                                                3.HNN    }
+  GGH503I = 5C+7H+3N+14O;  {CH2(ONO2)CH(OOH)CH(ONO2)CH(ONO2)CO(OOH)                                                                GHNNN    }
+  GPH503D = 5C+6H+4N+16O;  {CH2(ONO2)CH(OOH)CH(ONO2)CH(ONO2)CO(OONO2)                                                              PHNNN    }
+  G2H503R = 5C+7H+2N+11O;  {CH2(ONO2)CH(OOH)CH(ONO2)CH(OO.)CHO                                                                     2.HNN    }
+  G2G504Q = 5C+7H+2N+13O;  {CH2(ONO2)CH(OOH)CH(ONO2)CH(OO.)CO(OOH)                                                                 2.GHN    }
+  G2P505m = 5C+6H+3N+15O;  {CH2(ONO2)CH(OOH)CH(ONO2)CH(OO.)CO(OONO2)                                                               2.PHN    }
+  GHH502H = 5C+8H+2N+11O;  {CH2(ONO2)CH(OOH)CH(ONO2)CH(OOH)CHO                                                                     HHNND    }
+  G3H503J = 5C+7H+2N+13O;  {CH2(ONO2)CH(OOH)CH(ONO2)CH(OOH)CO(OO.)                                                                 3.HHN    }
+  GGH503y = 5C+8H+2N+13O;  {CH2(ONO2)CH(OOH)CH(ONO2)CH(OOH)CO(OOH)                                                                 GHHNN    }
+  GPH504I = 5C+7H+3N+15O;  {CH2(ONO2)CH(OOH)CH(ONO2)CH(OOH)CO(OONO2)                                                               PHHNN    }
+  G1H400m = 4C+7H+2N+9O;   {CH2(ONO2)CH(OOH)CH(ONO2)CH2(O.)                                                                        1.HNN    }
+  G2H400i = 4C+7H+2N+10O;  {CH2(ONO2)CH(OOH)CH(ONO2)CH2(OO.)                                                                       2.HNN    }
+  GHH400f = 4C+8H+2N+10O;  {CH2(ONO2)CH(OOH)CH(ONO2)CH2(OOH)                                                                       HHNN     }
+  G1H503Y = 5C+9H+2N+9O;   {CH2(ONO2)CH(OOH)CH(ONO2)CH2CH2(O.)                                                                     1.HNN    }
+  GHN5034 = 5C+8H+2N+9O;   {CH2(ONO2)CH(OOH)CH(ONO2)CH2CHO                                                                         HNND     }
+  G3H500o = 5C+7H+2N+11O;  {CH2(ONO2)CH(OOH)CH(ONO2)CH2CO(OO.)                                                                     3.HNN    }
+  GGH5019 = 5C+8H+2N+11O;  {CH2(ONO2)CH(OOH)CH(ONO2)CH2CO(OOH)                                                                     GHNN     }
+  GPH500t = 5C+7H+3N+13O;  {CH2(ONO2)CH(OOH)CH(ONO2)CH2CO(OONO2)                                                                   PHNN     }
+  GHN4012 = 4C+6H+2N+9O;   {CH2(ONO2)CH(OOH)CH(ONO2)CHO                                                                            HNND     }
+  G3H400a = 4C+5H+2N+11O;  {CH2(ONO2)CH(OOH)CH(ONO2)CO(OO.)                                                                        3.HNN    }
+  GGH400M = 4C+6H+2N+11O;  {CH2(ONO2)CH(OOH)CH(ONO2)CO(OOH)                                                                        GHNN     }
+  GPH400N = 4C+5H+3N+13O;  {CH2(ONO2)CH(OOH)CH(ONO2)CO(OONO2)                                                                      PHNN     }
+  G1H508b = 5C+7H+2N+10O;  {CH2(ONO2)CH(OOH)CH(ONO2)COCH2(O.)                                                                      1.HNN    }
+  GHN506q = 5C+6H+2N+10O;  {CH2(ONO2)CH(OOH)CH(ONO2)COCHO                                                                          HNNDK    }
+  G3H504W = 5C+5H+2N+12O;  {CH2(ONO2)CH(OOH)CH(ONO2)COCO(OO.)                                                                      3.HNN    }
+  GGH504x = 5C+6H+2N+12O;  {CH2(ONO2)CH(OOH)CH(ONO2)COCO(OOH)                                                                      GHNNK    }
+  GPH503E = 5C+5H+3N+14O;  {CH2(ONO2)CH(OOH)CH(ONO2)COCO(OONO2)                                                                    PHNNK    }
+  G2H501H = 5C+9H+2N+11O;  {CH2(ONO2)CH(OOH)CH(OO.)CH(OH)CH2(ONO2)                                                                 2.HNN    }
+  G2H502U = 5C+8H+N+9O;    {CH2(ONO2)CH(OOH)CH(OO.)CH(OH)CHO                                                                       2.HND    }
+  G2G502Y = 5C+8H+N+11O;   {CH2(ONO2)CH(OOH)CH(OO.)CH(OH)CO(OOH)                                                                   2.GHN    }
+  G2P5033 = 5C+7H+2N+13O;  {CH2(ONO2)CH(OOH)CH(OO.)CH(OH)CO(OONO2)                                                                 2.PHN    }
+  G2H502R = 5C+8H+N+10O;   {CH2(ONO2)CH(OOH)CH(OO.)CH(OOH)CHO                                                                      2.HHN    }
+  G2H401N = 4C+7H+2N+10O;  {CH2(ONO2)CH(OOH)CH(OO.)CH2(ONO2)                                                                       2.HNN    }
+  G2H500X = 5C+9H+2N+10O;  {CH2(ONO2)CH(OOH)CH(OO.)CH2CH2(ONO2)                                                                    2.HNN    }
+  G2H5018 = 5C+8H+N+8O;    {CH2(ONO2)CH(OOH)CH(OO.)CH2CHO                                                                          2.HND    }
+  G2G500u = 5C+8H+N+10O;   {CH2(ONO2)CH(OOH)CH(OO.)CH2CO(OOH)                                                                      2.GHN    }
+  G2P500t = 5C+7H+2N+12O;  {CH2(ONO2)CH(OOH)CH(OO.)CH2CO(OONO2)                                                                    2.PHN    }
+  G2G400F = 4C+6H+N+10O;   {CH2(ONO2)CH(OOH)CH(OO.)CO(OOH)                                                                         2.GHN    }
+  G2P400P = 4C+5H+2N+12O;  {CH2(ONO2)CH(OOH)CH(OO.)CO(OONO2)                                                                       2.PHN    }
+  G2H5047 = 5C+6H+N+9O;    {CH2(ONO2)CH(OOH)CH(OO.)COCHO                                                                           2.HND    }
+  G2G505s = 5C+6H+N+11O;   {CH2(ONO2)CH(OOH)CH(OO.)COCO(OOH)                                                                       2.GHN    }
+  G2P507c = 5C+5H+2N+13O;  {CH2(ONO2)CH(OOH)CH(OO.)COCO(OONO2)                                                                     2.PHN    }
+  G1H50AU = 5C+8H+N+9O;    {CH2(ONO2)CH(OOH)CH(OOH)CH(O.)CHO                                                                       1.HHN    }
+  G1G506u = 5C+8H+N+11O;   {CH2(ONO2)CH(OOH)CH(OOH)CH(O.)CO(OOH)                                                                   1.GHH    }
+  G1P508C = 5C+7H+2N+13O;  {CH2(ONO2)CH(OOH)CH(OOH)CH(O.)CO(OONO2)                                                                 1.PHH    }
+  G1H506l = 5C+10H+N+9O;   {CH2(ONO2)CH(OOH)CH(OOH)CH(OH)CH2(O.)                                                                   1.HHN    }
+  GHH502L = 5C+9H+N+9O;    {CH2(ONO2)CH(OOH)CH(OOH)CH(OH)CHO                                                                       HHNDO    }
+  G3H503O = 5C+8H+N+11O;   {CH2(ONO2)CH(OOH)CH(OOH)CH(OH)CO(OO.)                                                                   3.HHN    }
+  GGH5044 = 5C+9H+N+11O;   {CH2(ONO2)CH(OOH)CH(OOH)CH(OH)CO(OOH)                                                                   GHHNO    }
+  GPH503t = 5C+8H+2N+13O;  {CH2(ONO2)CH(OOH)CH(OOH)CH(OH)CO(OONO2)                                                                 PHHNO    }
+  GHH502I = 5C+9H+N+10O;   {CH2(ONO2)CH(OOH)CH(OOH)CH(OOH)CHO                                                                      HHHND    }
+  G3H503K = 5C+8H+N+12O;   {CH2(ONO2)CH(OOH)CH(OOH)CH(OOH)CO(OO.)                                                                  3.HHH    }
+  GGH503z = 5C+9H+N+12O;   {CH2(ONO2)CH(OOH)CH(OOH)CH(OOH)CO(OOH)                                                                  GHHHN    }
+  GPH504J = 5C+8H+2N+14O;  {CH2(ONO2)CH(OOH)CH(OOH)CH(OOH)CO(OONO2)                                                                PHHHN    }
+  G1H400s = 4C+8H+N+8O;    {CH2(ONO2)CH(OOH)CH(OOH)CH2(O.)                                                                         1.HHN    }
+  GHH400h = 4C+8H+2N+10O;  {CH2(ONO2)CH(OOH)CH(OOH)CH2(ONO2)                                                                       HHNN     }
+  G2H400k = 4C+8H+N+9O;    {CH2(ONO2)CH(OOH)CH(OOH)CH2(OO.)                                                                        2.HHN    }
+  GHH400i = 4C+9H+N+9O;    {CH2(ONO2)CH(OOH)CH(OOH)CH2(OOH)                                                                        HHHN     }
+  G1H503b = 5C+10H+N+8O;   {CH2(ONO2)CH(OOH)CH(OOH)CH2CH2(O.)                                                                      1.HHN    }
+  GHH500z = 5C+9H+N+8O;    {CH2(ONO2)CH(OOH)CH(OOH)CH2CHO                                                                          HHND     }
+  G3H500z = 5C+8H+N+10O;   {CH2(ONO2)CH(OOH)CH(OOH)CH2CO(OO.)                                                                      3.HHN    }
+  GGH501I = 5C+9H+N+10O;   {CH2(ONO2)CH(OOH)CH(OOH)CH2CO(OOH)                                                                      GHHN     }
+  GPH5019 = 5C+8H+2N+12O;  {CH2(ONO2)CH(OOH)CH(OOH)CH2CO(OONO2)                                                                    PHHN     }
+  GHH400j = 4C+7H+N+8O;    {CH2(ONO2)CH(OOH)CH(OOH)CHO                                                                             HHND     }
+  G3H400o = 4C+6H+N+10O;   {CH2(ONO2)CH(OOH)CH(OOH)CO(OO.)                                                                         3.HHN    }
+  GGH400N = 4C+7H+N+10O;   {CH2(ONO2)CH(OOH)CH(OOH)CO(OOH)                                                                         GHHN     }
+  GPH400Q = 4C+6H+2N+12O;  {CH2(ONO2)CH(OOH)CH(OOH)CO(OONO2)                                                                       PHHN     }
+  GHH5031 = 5C+7H+N+9O;    {CH2(ONO2)CH(OOH)CH(OOH)COCHO                                                                           HHNDK    }
+  G3H505Z = 5C+6H+N+11O;   {CH2(ONO2)CH(OOH)CH(OOH)COCO(OO.)                                                                       3.HHN    }
+  GGH505K = 5C+7H+N+11O;   {CH2(ONO2)CH(OOH)CH(OOH)COCO(OOH)                                                                       GHHNK    }
+  GPH505R = 5C+6H+2N+13O;  {CH2(ONO2)CH(OOH)CH(OOH)COCO(OONO2)                                                                     PHHNK    }
+  G1H3001 = 3C+6H+N+6O;    {CH2(ONO2)CH(OOH)CH2(O.)                                                                                1.HN     }
+  GHN3005 = 3C+6H+2N+8O;   {CH2(ONO2)CH(OOH)CH2(ONO2)                                                                              HNN      }
+  G2H3001 = 3C+6H+N+7O;    {CH2(ONO2)CH(OOH)CH2(OO.)                                                                               2.HN     }
+  GHH3001 = 3C+7H+N+7O;    {CH2(ONO2)CH(OOH)CH2(OOH)                                                                               HHN      }
+  G1H503R = 5C+9H+2N+9O;   {CH2(ONO2)CH(OOH)CH2CH(O.)CH2(ONO2)                                                                     1.HNN    }
+  G1H506P = 5C+8H+N+7O;    {CH2(ONO2)CH(OOH)CH2CH(O.)CHO                                                                           1.HND    }
+  G1G502N = 5C+8H+N+9O;    {CH2(ONO2)CH(OOH)CH2CH(O.)CO(OOH)                                                                       1.GHN    }
+  G1P500z = 5C+7H+2N+11O;  {CH2(ONO2)CH(OOH)CH2CH(O.)CO(OONO2)                                                                     1.PHN    }
+  G1H502H = 5C+10H+N+7O;   {CH2(ONO2)CH(OOH)CH2CH(OH)CH2(O.)                                                                       1.HNO    }
+  G2H502e = 5C+10H+N+8O;   {CH2(ONO2)CH(OOH)CH2CH(OH)CH2(OO.)                                                                      2.HNO    }
+  GHH501L = 5C+11H+N+8O;   {CH2(ONO2)CH(OOH)CH2CH(OH)CH2(OOH)                                                                      HHNO     }
+  GHN503c = 5C+9H+N+7O;    {CH2(ONO2)CH(OOH)CH2CH(OH)CHO                                                                           HNDO     }
+  G3H5018 = 5C+8H+N+9O;    {CH2(ONO2)CH(OOH)CH2CH(OH)CO(OO.)                                                                       3.HNK    }
+  GGH501O = 5C+9H+N+9O;    {CH2(ONO2)CH(OOH)CH2CH(OH)CO(OOH)                                                                       GHNO     }
+  GPH501D = 5C+8H+2N+11O;  {CH2(ONO2)CH(OOH)CH2CH(OH)CO(OONO2)                                                                     PHNO     }
+  G1H503Q = 5C+9H+2N+9O;   {CH2(ONO2)CH(OOH)CH2CH(ONO2)CH2(O.)                                                                     1.HNN    }
+  GHN503b = 5C+8H+2N+9O;   {CH2(ONO2)CH(OOH)CH2CH(ONO2)CHO                                                                         HNND     }
+  G3H5016 = 5C+7H+2N+11O;  {CH2(ONO2)CH(OOH)CH2CH(ONO2)CO(OO.)                                                                     3.HNN    }
+  GGH500x = 5C+8H+2N+11O;  {CH2(ONO2)CH(OOH)CH2CH(ONO2)CO(OOH)                                                                     GHNN     }
+  GPH501B = 5C+7H+3N+13O;  {CH2(ONO2)CH(OOH)CH2CH(ONO2)CO(OONO2)                                                                   PHNN     }
+  G2H502T = 5C+8H+N+8O;    {CH2(ONO2)CH(OOH)CH2CH(OO.)CHO                                                                          2.HND    }
+  G2G502X = 5C+8H+N+10O;   {CH2(ONO2)CH(OOH)CH2CH(OO.)CO(OOH)                                                                      2.GHN    }
+  G2P500u = 5C+7H+2N+12O;  {CH2(ONO2)CH(OOH)CH2CH(OO.)CO(OONO2)                                                                    2.PHN    }
+  GHH5012 = 5C+9H+N+8O;    {CH2(ONO2)CH(OOH)CH2CH(OOH)CHO                                                                          HHND     }
+  G3H5017 = 5C+8H+N+10O;   {CH2(ONO2)CH(OOH)CH2CH(OOH)CO(OO.)                                                                      3.HHN    }
+  GGH501N = 5C+9H+N+10O;   {CH2(ONO2)CH(OOH)CH2CH(OOH)CO(OOH)                                                                      GHHN     }
+  GPH501C = 5C+8H+2N+12O;  {CH2(ONO2)CH(OOH)CH2CH(OOH)CO(OONO2)                                                                    PHHN     }
+  G1H400E = 4C+8H+N+6O;    {CH2(ONO2)CH(OOH)CH2CH2(O.)                                                                             1.HN     }
+  G2H400D = 4C+8H+N+7O;    {CH2(ONO2)CH(OOH)CH2CH2(OO.)                                                                            2.HN     }
+  GHH4008 = 4C+9H+N+7O;    {CH2(ONO2)CH(OOH)CH2CH2(OOH)                                                                            HHN      }
+  G1H500i = 5C+10H+N+6O;   {CH2(ONO2)CH(OOH)CH2CH2CH2(O.)                                                                          1.HN     }
+  GHN500u = 5C+9H+N+6O;    {CH2(ONO2)CH(OOH)CH2CH2CHO                                                                              HND      }
+  G3H5007 = 5C+8H+N+8O;    {CH2(ONO2)CH(OOH)CH2CH2CO(OO.)                                                                          3.HNK    }
+  GGH5009 = 5C+9H+N+8O;    {CH2(ONO2)CH(OOH)CH2CH2CO(OOH)                                                                          GHN      }
+  GPH5007 = 5C+8H+2N+10O;  {CH2(ONO2)CH(OOH)CH2CH2CO(OONO2)                                                                        PHN      }
+  GHN4001 = 4C+7H+N+6O;    {CH2(ONO2)CH(OOH)CH2CHO                                                                                 HND      }
+  G3H4002 = 4C+6H+N+8O;    {CH2(ONO2)CH(OOH)CH2CO(OO.)                                                                             3.HNK    }
+  GGH4002 = 4C+7H+N+8O;    {CH2(ONO2)CH(OOH)CH2CO(OOH)                                                                             GHN      }
+  GPH4002 = 4C+6H+2N+10O;  {CH2(ONO2)CH(OOH)CH2CO(OONO2)                                                                           PHN      }
+  G1H503m = 5C+8H+N+7O;    {CH2(ONO2)CH(OOH)CH2COCH2(O.)                                                                           1.HNK    }
+  G2H5021 = 5C+8H+N+8O;    {CH2(ONO2)CH(OOH)CH2COCH2(OO.)                                                                          2.HNK    }
+  GHH500d = 5C+9H+N+8O;    {CH2(ONO2)CH(OOH)CH2COCH2(OOH)                                                                          HHNK     }
+  GHN502k = 5C+7H+N+7O;    {CH2(ONO2)CH(OOH)CH2COCHO                                                                               HNDK     }
+  G3H502W = 5C+6H+N+9O;    {CH2(ONO2)CH(OOH)CH2COCO(OO.)                                                                           3.HNK    }
+  GGH5011 = 5C+7H+N+9O;    {CH2(ONO2)CH(OOH)CH2COCO(OOH)                                                                           GHNK     }
+  GPH501E = 5C+6H+2N+11O;  {CH2(ONO2)CH(OOH)CH2COCO(OONO2)                                                                         PHNK     }
+  GHN3007 = 3C+5H+N+6O;    {CH2(ONO2)CH(OOH)CHO                                                                                    HND      }
+  G3H3002 = 3C+4H+N+8O;    {CH2(ONO2)CH(OOH)CO(OO.)                                                                                3.HNK    }
+  GGH3003 = 3C+5H+N+8O;    {CH2(ONO2)CH(OOH)CO(OOH)                                                                                GHN      }
+  GPH3003 = 3C+4H+2N+10O;  {CH2(ONO2)CH(OOH)CO(OONO2)                                                                              PHN      }
+  G1H508J = 5C+7H+2N+10O;  {CH2(ONO2)CH(OOH)COCH(O.)CH2(ONO2)                                                                      1.HNN    }
+  G1H50Ab = 5C+6H+N+8O;    {CH2(ONO2)CH(OOH)COCH(O.)CHO                                                                            1.HND    }
+  G1G506y = 5C+6H+N+10O;   {CH2(ONO2)CH(OOH)COCH(O.)CO(OOH)                                                                        1.GHN    }
+  G1P503G = 5C+5H+2N+12O;  {CH2(ONO2)CH(OOH)COCH(O.)CO(OONO2)                                                                      1.PHN    }
+  G1H506p = 5C+8H+N+8O;    {CH2(ONO2)CH(OOH)COCH(OH)CH2(O.)                                                                        1.HNK    }
+  GHN5066 = 5C+7H+N+8O;    {CH2(ONO2)CH(OOH)COCH(OH)CHO                                                                            HNDKO    }
+  G3H503Q = 5C+6H+N+10O;   {CH2(ONO2)CH(OOH)COCH(OH)CO(OO.)                                                                        3.HNK    }
+  GGH5046 = 5C+7H+N+10O;   {CH2(ONO2)CH(OOH)COCH(OH)CO(OOH)                                                                        GHNKO    }
+  GPH503Z = 5C+6H+2N+12O;  {CH2(ONO2)CH(OOH)COCH(OH)CO(OONO2)                                                                      PHNKO    }
+  G1H508I = 5C+7H+2N+10O;  {CH2(ONO2)CH(OOH)COCH(ONO2)CH2(O.)                                                                      1.HNN    }
+  GHN506X = 5C+6H+2N+10O;  {CH2(ONO2)CH(OOH)COCH(ONO2)CHO                                                                          HNNDK    }
+  G3H504L = 5C+5H+2N+12O;  {CH2(ONO2)CH(OOH)COCH(ONO2)CO(OO.)                                                                      3.HNN    }
+  GGH504r = 5C+6H+2N+12O;  {CH2(ONO2)CH(OOH)COCH(ONO2)CO(OOH)                                                                      GHNNK    }
+  GPH503X = 5C+5H+3N+14O;  {CH2(ONO2)CH(OOH)COCH(ONO2)CO(OONO2)                                                                    PHNNK    }
+  G2G504U = 5C+6H+N+11O;   {CH2(ONO2)CH(OOH)COCH(OO.)CO(OOH)                                                                       2.GHN    }
+  G2P502f = 5C+5H+2N+13O;  {CH2(ONO2)CH(OOH)COCH(OO.)CO(OONO2)                                                                     2.PHN    }
+  GHH502K = 5C+7H+N+9O;    {CH2(ONO2)CH(OOH)COCH(OOH)CHO                                                                           HHNDK    }
+  G3H503M = 5C+6H+N+11O;   {CH2(ONO2)CH(OOH)COCH(OOH)CO(OO.)                                                                       3.HHN    }
+  GGH5042 = 5C+7H+N+11O;   {CH2(ONO2)CH(OOH)COCH(OOH)CO(OOH)                                                                       GHHNK    }
+  GPH503Y = 5C+6H+2N+13O;  {CH2(ONO2)CH(OOH)COCH(OOH)CO(OONO2)                                                                     PHHNK    }
+  G1H400q = 4C+6H+N+7O;    {CH2(ONO2)CH(OOH)COCH2(O.)                                                                              1.HNK    }
+  G2H400j = 4C+6H+N+8O;    {CH2(ONO2)CH(OOH)COCH2(OO.)                                                                             2.HNK    }
+  GHH400g = 4C+7H+N+8O;    {CH2(ONO2)CH(OOH)COCH2(OOH)                                                                             HHNK     }
+  G1H501R = 5C+8H+N+7O;    {CH2(ONO2)CH(OOH)COCH2CH2(O.)                                                                           1.HNK    }
+  G2H500q = 5C+8H+N+8O;    {CH2(ONO2)CH(OOH)COCH2CH2(OO.)                                                                          2.HNK    }
+  GHH500m = 5C+9H+N+8O;    {CH2(ONO2)CH(OOH)COCH2CH2(OOH)                                                                          HHNK     }
+  GHN503H = 5C+7H+N+7O;    {CH2(ONO2)CH(OOH)COCH2CHO                                                                               HNDK     }
+  G3H500q = 5C+6H+N+9O;    {CH2(ONO2)CH(OOH)COCH2CO(OO.)                                                                           3.HNK    }
+  GGH501B = 5C+7H+N+9O;    {CH2(ONO2)CH(OOH)COCH2CO(OOH)                                                                           GHNK     }
+  GPH5014 = 5C+6H+2N+11O;  {CH2(ONO2)CH(OOH)COCH2CO(OONO2)                                                                         PHNK     }
+  GHN4018 = 4C+5H+N+7O;    {CH2(ONO2)CH(OOH)COCHO                                                                                  HNDK     }
+  G3H400p = 4C+4H+N+9O;    {CH2(ONO2)CH(OOH)COCO(OO.)                                                                              3.HNK    }
+  GGH400P = 4C+5H+N+9O;    {CH2(ONO2)CH(OOH)COCO(OOH)                                                                              GHNK     }
+  GPH400S = 4C+4H+2N+11O;  {CH2(ONO2)CH(OOH)COCO(OONO2)                                                                            PHNK     }
+  G1H508g = 5C+6H+N+8O;    {CH2(ONO2)CH(OOH)COCOCH2(O.)                                                                            1.HNK    }
+  GHN506f = 5C+5H+N+8O;    {CH2(ONO2)CH(OOH)COCOCHO                                                                                HNDKK    }
+  G3H504i = 5C+4H+N+10O;   {CH2(ONO2)CH(OOH)COCOCO(OO.)                                                                            3.HNK    }
+  GGH5056 = 5C+5H+N+10O;   {CH2(ONO2)CH(OOH)COCOCO(OOH)                                                                            GHNKK    }
+  GPH503a = 5C+4H+2N+12O;  {CH2(ONO2)CH(OOH)COCOCO(OONO2)                                                                          PHNKK    }
+  G1N2000 = 2C+4H+N+4O;    {CH2(ONO2)CH2(O.)                                                                                       1.N      }
+  GNN2000 = 2C+4H+2N+6O;   {CH2(ONO2)CH2(ONO2)                                                                                     NN       }
+  G2N2000 = 2C+4H+N+5O;    {CH2(ONO2)CH2(OO.)                                                                                      2.N      }
+  GHN2000 = 2C+5H+N+5O;    {CH2(ONO2)CH2(OOH)                                                                                      HN       }
+  G1H503K = 5C+10H+N+7O;   {CH2(ONO2)CH2CH(O.)CH(OH)CH2(OOH)                                                                       1.HNO    }
+  G1N503P = 5C+8H+N+6O;    {CH2(ONO2)CH2CH(O.)CH(OH)CHO                                                                            1.NDO    }
+  G1G500o = 5C+8H+N+8O;    {CH2(ONO2)CH2CH(O.)CH(OH)CO(OOH)                                                                        1.GNO    }
+  G1P5019 = 5C+7H+2N+10O;  {CH2(ONO2)CH2CH(O.)CH(OH)CO(OONO2)                                                                      1.PNO    }
+  G1H504P = 5C+9H+2N+9O;   {CH2(ONO2)CH2CH(O.)CH(ONO2)CH2(OOH)                                                                     1.HNN    }
+  G1N504I = 5C+7H+2N+8O;   {CH2(ONO2)CH2CH(O.)CH(ONO2)CHO                                                                          1.NND    }
+  G1G500l = 5C+7H+2N+10O;  {CH2(ONO2)CH2CH(O.)CH(ONO2)CO(OOH)                                                                      1.GNN    }
+  G1P5016 = 5C+6H+3N+12O;  {CH2(ONO2)CH2CH(O.)CH(ONO2)CO(OONO2)                                                                    1.PNN    }
+  G1H503j = 5C+8H+N+7O;    {CH2(ONO2)CH2CH(O.)CH(OOH)CHO                                                                           1.HND    }
+  G1G504q = 5C+8H+N+9O;    {CH2(ONO2)CH2CH(O.)CH(OOH)CO(OOH)                                                                       1.GHN    }
+  G1P5034 = 5C+7H+2N+11O;  {CH2(ONO2)CH2CH(O.)CH(OOH)CO(OONO2)                                                                     1.PHN    }
+  G1N400F = 4C+7H+2N+7O;   {CH2(ONO2)CH2CH(O.)CH2(ONO2)                                                                            1.NN     }
+  G1H400D = 4C+8H+N+6O;    {CH2(ONO2)CH2CH(O.)CH2(OOH)                                                                             1.HN     }
+  G1N500H = 5C+9H+2N+7O;   {CH2(ONO2)CH2CH(O.)CH2CH2(ONO2)                                                                         1.NN     }
+  G1H5004 = 5C+10H+N+6O;   {CH2(ONO2)CH2CH(O.)CH2CH2(OOH)                                                                          1.HN     }
+  G1N500K = 5C+8H+N+5O;    {CH2(ONO2)CH2CH(O.)CH2CHO                                                                               1.ND     }
+  G1G5006 = 5C+8H+N+7O;    {CH2(ONO2)CH2CH(O.)CH2CO(OOH)                                                                           1.GN     }
+  G1P5007 = 5C+7H+2N+9O;   {CH2(ONO2)CH2CH(O.)CH2CO(OONO2)                                                                         1.PN     }
+  G1N400i = 4C+6H+N+5O;    {CH2(ONO2)CH2CH(O.)CHO                                                                                  1.ND     }
+  G1G4003 = 4C+6H+N+7O;    {CH2(ONO2)CH2CH(O.)CO(OOH)                                                                              1.GN     }
+  G1P4003 = 4C+5H+2N+9O;   {CH2(ONO2)CH2CH(O.)CO(OONO2)                                                                            1.PN     }
+  G1N501g = 5C+7H+2N+8O;   {CH2(ONO2)CH2CH(O.)COCH2(ONO2)                                                                          1.NNK    }
+  G1H5011 = 5C+8H+N+7O;    {CH2(ONO2)CH2CH(O.)COCH2(OOH)                                                                           1.HNK    }
+  G1N502K = 5C+6H+N+6O;    {CH2(ONO2)CH2CH(O.)COCHO                                                                                1.NDK    }
+  G1G500r = 5C+6H+N+8O;    {CH2(ONO2)CH2CH(O.)COCO(OOH)                                                                            1.GNK    }
+  G1P501C = 5C+5H+2N+10O;  {CH2(ONO2)CH2CH(O.)COCO(OONO2)                                                                          1.PNK    }
+  G1N501j = 5C+9H+2N+8O;   {CH2(ONO2)CH2CH(OH)CH(O.)CH2(ONO2)                                                                      1.NNO    }
+  G1N506O = 5C+8H+N+6O;    {CH2(ONO2)CH2CH(OH)CH(O.)CHO                                                                            1.NDO    }
+  G1G500g = 5C+8H+N+8O;    {CH2(ONO2)CH2CH(OH)CH(O.)CO(OOH)                                                                        1.GNO    }
+  G1P500p = 5C+7H+2N+10O;  {CH2(ONO2)CH2CH(OH)CH(O.)CO(OONO2)                                                                      1.PNO    }
+  G1N503L = 5C+10H+N+6O;   {CH2(ONO2)CH2CH(OH)CH(OH)CH2(O.)                                                                        1.NOO    }
+  GNN500o = 5C+10H+2N+8O;  {CH2(ONO2)CH2CH(OH)CH(OH)CH2(ONO2)                                                                      NNOO     }
+  GND500t = 5C+9H+N+6O;    {CH2(ONO2)CH2CH(OH)CH(OH)CHO                                                                            NDOO     }
+  G3N501D = 5C+8H+N+8O;    {CH2(ONO2)CH2CH(OH)CH(OH)CO(OO.)                                                                        3.NKO    }
+  GGN500T = 5C+9H+N+8O;    {CH2(ONO2)CH2CH(OH)CH(OH)CO(OOH)                                                                        GNOO     }
+  GPN500e = 5C+8H+2N+10O;  {CH2(ONO2)CH2CH(OH)CH(OH)CO(OONO2)                                                                      PNOO     }
+  G1N504B = 5C+9H+2N+8O;   {CH2(ONO2)CH2CH(OH)CH(ONO2)CH2(O.)                                                                      1.NNO    }
+  GNN501F = 5C+9H+3N+10O;  {CH2(ONO2)CH2CH(OH)CH(ONO2)CH2(ONO2)                                                                    NNNO     }
+  GNN502k = 5C+8H+2N+8O;   {CH2(ONO2)CH2CH(OH)CH(ONO2)CHO                                                                          NNDO     }
+  G3N501e = 5C+7H+2N+10O;  {CH2(ONO2)CH2CH(OH)CH(ONO2)CO(OO.)                                                                      3.NNK    }
+  GGN500s = 5C+8H+2N+10O;  {CH2(ONO2)CH2CH(OH)CH(ONO2)CO(OOH)                                                                      GNNO     }
+  GPN5012 = 5C+7H+3N+12O;  {CH2(ONO2)CH2CH(OH)CH(ONO2)CO(OONO2)                                                                    PNNO     }
+  G2N501d = 5C+9H+2N+9O;   {CH2(ONO2)CH2CH(OH)CH(OO.)CH2(ONO2)                                                                     2.NNO    }
+  G2G500c = 5C+8H+N+9O;    {CH2(ONO2)CH2CH(OH)CH(OO.)CO(OOH)                                                                       2.GNO    }
+  G2P500m = 5C+7H+2N+11O;  {CH2(ONO2)CH2CH(OH)CH(OO.)CO(OONO2)                                                                     2.PNO    }
+  G1H503f = 5C+10H+N+7O;   {CH2(ONO2)CH2CH(OH)CH(OOH)CH2(O.)                                                                       1.HNO    }
+  GHN501x = 5C+10H+2N+9O;  {CH2(ONO2)CH2CH(OH)CH(OOH)CH2(ONO2)                                                                     HNNO     }
+  GHN504u = 5C+9H+N+7O;    {CH2(ONO2)CH2CH(OH)CH(OOH)CHO                                                                           HNDO     }
+  G3H5023 = 5C+8H+N+9O;    {CH2(ONO2)CH2CH(OH)CH(OOH)CO(OO.)                                                                       3.HNK    }
+  GGH500u = 5C+9H+N+9O;    {CH2(ONO2)CH2CH(OH)CH(OOH)CO(OOH)                                                                       GHNO     }
+  GPH5012 = 5C+8H+2N+11O;  {CH2(ONO2)CH2CH(OH)CH(OOH)CO(OONO2)                                                                     PHNO     }
+  G1N400D = 4C+8H+N+5O;    {CH2(ONO2)CH2CH(OH)CH2(O.)                                                                              1.NO     }
+  GNN4002 = 4C+8H+2N+7O;   {CH2(ONO2)CH2CH(OH)CH2(ONO2)                                                                            NNO      }
+  G2N400D = 4C+8H+N+6O;    {CH2(ONO2)CH2CH(OH)CH2(OO.)                                                                             2.NO     }
+  GHN4003 = 4C+9H+N+6O;    {CH2(ONO2)CH2CH(OH)CH2(OOH)                                                                             HNO      }
+  G1N501i = 5C+10H+N+5O;   {CH2(ONO2)CH2CH(OH)CH2CH2(O.)                                                                           1.NO     }
+  GNN500F = 5C+10H+2N+7O;  {CH2(ONO2)CH2CH(OH)CH2CH2(ONO2)                                                                         NNO      }
+  G2N501g = 5C+10H+N+6O;   {CH2(ONO2)CH2CH(OH)CH2CH2(OO.)                                                                          2.NO     }
+  GHN500L = 5C+11H+N+6O;   {CH2(ONO2)CH2CH(OH)CH2CH2(OOH)                                                                          HNO      }
+  GND5006 = 5C+9H+N+5O;    {CH2(ONO2)CH2CH(OH)CH2CHO                                                                               NDO      }
+  G3N5007 = 5C+8H+N+7O;    {CH2(ONO2)CH2CH(OH)CH2CO(OO.)                                                                           3.NKO    }
+  GGN5008 = 5C+9H+N+7O;    {CH2(ONO2)CH2CH(OH)CH2CO(OOH)                                                                           GNO      }
+  GPN5008 = 5C+8H+2N+9O;   {CH2(ONO2)CH2CH(OH)CH2CO(OONO2)                                                                         PNO      }
+  GND400C = 4C+7H+N+5O;    {CH2(ONO2)CH2CH(OH)CHO                                                                                  NDO      }
+  G3N400G = 4C+6H+N+7O;    {CH2(ONO2)CH2CH(OH)CO(OO.)                                                                              3.NKO    }
+  GGN4009 = 4C+7H+N+7O;    {CH2(ONO2)CH2CH(OH)CO(OOH)                                                                              GNO      }
+  GPN4009 = 4C+6H+2N+9O;   {CH2(ONO2)CH2CH(OH)CO(OONO2)                                                                            PNO      }
+  G1N504M = 5C+8H+N+6O;    {CH2(ONO2)CH2CH(OH)COCH2(O.)                                                                            1.NKO    }
+  GNN501K = 5C+8H+2N+8O;   {CH2(ONO2)CH2CH(OH)COCH2(ONO2)                                                                          NNKO     }
+  G2N5045 = 5C+8H+N+7O;    {CH2(ONO2)CH2CH(OH)COCH2(OO.)                                                                           2.NKO    }
+  GHN502F = 5C+9H+N+7O;    {CH2(ONO2)CH2CH(OH)COCH2(OOH)                                                                           HNKO     }
+  GND500h = 5C+7H+N+6O;    {CH2(ONO2)CH2CH(OH)COCHO                                                                                NDKO     }
+  G3N501k = 5C+6H+N+8O;    {CH2(ONO2)CH2CH(OH)COCO(OO.)                                                                            3.NKK    }
+  GGN500t = 5C+7H+N+8O;    {CH2(ONO2)CH2CH(OH)COCO(OOH)                                                                            GNKO     }
+  GPN5013 = 5C+6H+2N+10O;  {CH2(ONO2)CH2CH(OH)COCO(OONO2)                                                                          PNKO     }
+  G1N501h = 5C+8H+3N+10O;  {CH2(ONO2)CH2CH(ONO2)CH(O.)CH2(ONO2)                                                                    1.NNN    }
+  G1H504Q = 5C+9H+2N+9O;   {CH2(ONO2)CH2CH(ONO2)CH(O.)CH2(OOH)                                                                     1.HNN    }
+  G1N504d = 5C+7H+2N+8O;   {CH2(ONO2)CH2CH(ONO2)CH(O.)CHO                                                                          1.NND    }
+  G1G502Q = 5C+7H+2N+10O;  {CH2(ONO2)CH2CH(ONO2)CH(O.)CO(OOH)                                                                      1.GNN    }
+  G1P500l = 5C+6H+3N+12O;  {CH2(ONO2)CH2CH(ONO2)CH(O.)CO(OONO2)                                                                    1.PNN    }
+  G1N501U = 5C+9H+2N+8O;   {CH2(ONO2)CH2CH(ONO2)CH(OH)CH2(O.)                                                                      1.NNO    }
+  G2N501R = 5C+9H+2N+9O;   {CH2(ONO2)CH2CH(ONO2)CH(OH)CH2(OO.)                                                                     2.NNO    }
+  GHN501o = 5C+10H+2N+9O;  {CH2(ONO2)CH2CH(ONO2)CH(OH)CH2(OOH)                                                                     HNNO     }
+  GNN5019 = 5C+8H+2N+8O;   {CH2(ONO2)CH2CH(ONO2)CH(OH)CHO                                                                          NNDO     }
+  G3N500W = 5C+7H+2N+10O;  {CH2(ONO2)CH2CH(ONO2)CH(OH)CO(OO.)                                                                      3.NNK    }
+  GGN500h = 5C+8H+2N+10O;  {CH2(ONO2)CH2CH(ONO2)CH(OH)CO(OOH)                                                                      GNNO     }
+  GPN500a = 5C+7H+3N+12O;  {CH2(ONO2)CH2CH(ONO2)CH(OH)CO(OONO2)                                                                    PNNO     }
+  G1N501x = 5C+8H+3N+10O;  {CH2(ONO2)CH2CH(ONO2)CH(ONO2)CH2(O.)                                                                    1.NNN    }
+  GNN501E = 5C+8H+4N+12O;  {CH2(ONO2)CH2CH(ONO2)CH(ONO2)CH2(ONO2)                                                                  NNNN     }
+  G2N501s = 5C+8H+3N+11O;  {CH2(ONO2)CH2CH(ONO2)CH(ONO2)CH2(OO.)                                                                   2.NNN    }
+  GHN502T = 5C+9H+3N+11O;  {CH2(ONO2)CH2CH(ONO2)CH(ONO2)CH2(OOH)                                                                   HNNN     }
+  GNN501U = 5C+7H+3N+10O;  {CH2(ONO2)CH2CH(ONO2)CH(ONO2)CHO                                                                        NNND     }
+  G3N500o = 5C+6H+3N+12O;  {CH2(ONO2)CH2CH(ONO2)CH(ONO2)CO(OO.)                                                                    3.NNN    }
+  GGN500z = 5C+7H+3N+12O;  {CH2(ONO2)CH2CH(ONO2)CH(ONO2)CO(OOH)                                                                    GNNN     }
+  GPN500z = 5C+6H+4N+14O;  {CH2(ONO2)CH2CH(ONO2)CH(ONO2)CO(OONO2)                                                                  PNNN     }
+  G2N501c = 5C+8H+3N+11O;  {CH2(ONO2)CH2CH(ONO2)CH(OO.)CH2(ONO2)                                                                   2.NNN    }
+  G2N505N = 5C+7H+2N+9O;   {CH2(ONO2)CH2CH(ONO2)CH(OO.)CHO                                                                         2.NND    }
+  G2G503P = 5C+7H+2N+11O;  {CH2(ONO2)CH2CH(ONO2)CH(OO.)CO(OOH)                                                                     2.GNN    }
+  G2P500k = 5C+6H+3N+13O;  {CH2(ONO2)CH2CH(ONO2)CH(OO.)CO(OONO2)                                                                   2.PNN    }
+  G1H503Z = 5C+9H+2N+9O;   {CH2(ONO2)CH2CH(ONO2)CH(OOH)CH2(O.)                                                                     1.HNN    }
+  GHN501w = 5C+9H+3N+11O;  {CH2(ONO2)CH2CH(ONO2)CH(OOH)CH2(ONO2)                                                                   HNNN     }
+  GHN504t = 5C+8H+2N+9O;   {CH2(ONO2)CH2CH(ONO2)CH(OOH)CHO                                                                         HNND     }
+  G3H5021 = 5C+7H+2N+11O;  {CH2(ONO2)CH2CH(ONO2)CH(OOH)CO(OO.)                                                                     3.HNN    }
+  GGH502d = 5C+8H+2N+11O;  {CH2(ONO2)CH2CH(ONO2)CH(OOH)CO(OOH)                                                                     GHNN     }
+  GPH500u = 5C+7H+3N+13O;  {CH2(ONO2)CH2CH(ONO2)CH(OOH)CO(OONO2)                                                                   PHNN     }
+  G1N400C = 4C+7H+2N+7O;   {CH2(ONO2)CH2CH(ONO2)CH2(O.)                                                                            1.NN     }
+  GNN400B = 4C+7H+3N+9O;   {CH2(ONO2)CH2CH(ONO2)CH2(ONO2)                                                                          NNN      }
+  G2N400C = 4C+7H+2N+8O;   {CH2(ONO2)CH2CH(ONO2)CH2(OO.)                                                                           2.NN     }
+  GHN400H = 4C+8H+2N+8O;   {CH2(ONO2)CH2CH(ONO2)CH2(OOH)                                                                           HNN      }
+  G1N500S = 5C+9H+2N+7O;   {CH2(ONO2)CH2CH(ONO2)CH2CH2(O.)                                                                         1.NN     }
+  GNN500E = 5C+9H+3N+9O;   {CH2(ONO2)CH2CH(ONO2)CH2CH2(ONO2)                                                                       NNN      }
+  G2N500S = 5C+9H+2N+8O;   {CH2(ONO2)CH2CH(ONO2)CH2CH2(OO.)                                                                        2.NN     }
+  GHN500K = 5C+10H+2N+8O;  {CH2(ONO2)CH2CH(ONO2)CH2CH2(OOH)                                                                        HNN      }
+  GNN500J = 5C+8H+2N+7O;   {CH2(ONO2)CH2CH(ONO2)CH2CHO                                                                             NND      }
+  G3N5006 = 5C+7H+2N+9O;   {CH2(ONO2)CH2CH(ONO2)CH2CO(OO.)                                                                         3.NNK    }
+  GGN5007 = 5C+8H+2N+9O;   {CH2(ONO2)CH2CH(ONO2)CH2CO(OOH)                                                                         GNN      }
+  GPN5007 = 5C+7H+3N+11O;  {CH2(ONO2)CH2CH(ONO2)CH2CO(OONO2)                                                                       PNN      }
+  GNN4008 = 4C+6H+2N+7O;   {CH2(ONO2)CH2CH(ONO2)CHO                                                                                NND      }
+  G3N4005 = 4C+5H+2N+9O;   {CH2(ONO2)CH2CH(ONO2)CO(OO.)                                                                            3.NNK    }
+  GGN4006 = 4C+6H+2N+9O;   {CH2(ONO2)CH2CH(ONO2)CO(OOH)                                                                            GNN      }
+  GPN4006 = 4C+5H+3N+11O;  {CH2(ONO2)CH2CH(ONO2)CO(OONO2)                                                                          PNN      }
+  G1N502L = 5C+7H+2N+8O;   {CH2(ONO2)CH2CH(ONO2)COCH2(O.)                                                                          1.NNK    }
+  GNN501J = 5C+7H+3N+10O;  {CH2(ONO2)CH2CH(ONO2)COCH2(ONO2)                                                                        NNNK     }
+  G2N502A = 5C+7H+2N+9O;   {CH2(ONO2)CH2CH(ONO2)COCH2(OO.)                                                                         2.NNK    }
+  GHN502E = 5C+8H+2N+9O;   {CH2(ONO2)CH2CH(ONO2)COCH2(OOH)                                                                         HNNK     }
+  GNN501u = 5C+6H+2N+8O;   {CH2(ONO2)CH2CH(ONO2)COCHO                                                                              NNDK     }
+  G3N501g = 5C+5H+2N+10O;  {CH2(ONO2)CH2CH(ONO2)COCO(OO.)                                                                          3.NNK    }
+  GGN5014 = 5C+6H+2N+10O;  {CH2(ONO2)CH2CH(ONO2)COCO(OOH)                                                                          GNNK     }
+  GPN5011 = 5C+5H+3N+12O;  {CH2(ONO2)CH2CH(ONO2)COCO(OONO2)                                                                        PNNK     }
+  G2N5035 = 5C+8H+N+7O;    {CH2(ONO2)CH2CH(OO.)CH(OH)CHO                                                                           2.NDO    }
+  G2G500h = 5C+8H+N+9O;    {CH2(ONO2)CH2CH(OO.)CH(OH)CO(OOH)                                                                       2.GNO    }
+  G2P5011 = 5C+7H+2N+11O;  {CH2(ONO2)CH2CH(OO.)CH(OH)CO(OONO2)                                                                     2.PNO    }
+  G2N503m = 5C+7H+2N+9O;   {CH2(ONO2)CH2CH(OO.)CH(ONO2)CHO                                                                         2.NND    }
+  G2G500g = 5C+7H+2N+11O;  {CH2(ONO2)CH2CH(OO.)CH(ONO2)CO(OOH)                                                                     2.GNN    }
+  G2P500z = 5C+6H+3N+13O;  {CH2(ONO2)CH2CH(OO.)CH(ONO2)CO(OONO2)                                                                   2.PNN    }
+  G2H501n = 5C+8H+N+8O;    {CH2(ONO2)CH2CH(OO.)CH(OOH)CHO                                                                          2.HND    }
+  G2N400F = 4C+7H+2N+8O;   {CH2(ONO2)CH2CH(OO.)CH2(ONO2)                                                                           2.NN     }
+  G2H400C = 4C+8H+N+7O;    {CH2(ONO2)CH2CH(OO.)CH2(OOH)                                                                            2.HN     }
+  G2N500H = 5C+9H+2N+8O;   {CH2(ONO2)CH2CH(OO.)CH2CH2(ONO2)                                                                        2.NN     }
+  G2H5003 = 5C+10H+N+7O;   {CH2(ONO2)CH2CH(OO.)CH2CH2(OOH)                                                                         2.HN     }
+  G2N500K = 5C+8H+N+6O;    {CH2(ONO2)CH2CH(OO.)CH2CHO                                                                              2.ND     }
+  G2G5005 = 5C+8H+N+8O;    {CH2(ONO2)CH2CH(OO.)CH2CO(OOH)                                                                          2.GN     }
+  G2P5006 = 5C+7H+2N+10O;  {CH2(ONO2)CH2CH(OO.)CH2CO(OONO2)                                                                        2.PN     }
+  G2N400l = 4C+6H+N+6O;    {CH2(ONO2)CH2CH(OO.)CHO                                                                                 2.ND     }
+  G2G4002 = 4C+6H+N+8O;    {CH2(ONO2)CH2CH(OO.)CO(OOH)                                                                             2.GN     }
+  G2P4002 = 4C+5H+2N+10O;  {CH2(ONO2)CH2CH(OO.)CO(OONO2)                                                                           2.PN     }
+  G2N501b = 5C+7H+2N+9O;   {CH2(ONO2)CH2CH(OO.)COCH2(ONO2)                                                                         2.NNK    }
+  G2H500h = 5C+8H+N+8O;    {CH2(ONO2)CH2CH(OO.)COCH2(OOH)                                                                          2.HNK    }
+  G2N5029 = 5C+6H+N+7O;    {CH2(ONO2)CH2CH(OO.)COCHO                                                                               2.NDK    }
+  G2G500j = 5C+6H+N+9O;    {CH2(ONO2)CH2CH(OO.)COCO(OOH)                                                                           2.GNK    }
+  G2P5013 = 5C+5H+2N+11O;  {CH2(ONO2)CH2CH(OO.)COCO(OONO2)                                                                         2.PNK    }
+  G1H503U = 5C+9H+2N+9O;   {CH2(ONO2)CH2CH(OOH)CH(O.)CH2(ONO2)                                                                     1.HNN    }
+  G1H5087 = 5C+8H+N+7O;    {CH2(ONO2)CH2CH(OOH)CH(O.)CHO                                                                           1.HND    }
+  G1G502S = 5C+8H+N+9O;    {CH2(ONO2)CH2CH(OOH)CH(O.)CO(OOH)                                                                       1.GHN    }
+  G1P5044 = 5C+7H+2N+11O;  {CH2(ONO2)CH2CH(OOH)CH(O.)CO(OONO2)                                                                     1.PHN    }
+  G1H502J = 5C+10H+N+7O;   {CH2(ONO2)CH2CH(OOH)CH(OH)CH2(O.)                                                                       1.HNO    }
+  GHN5045 = 5C+9H+N+7O;    {CH2(ONO2)CH2CH(OOH)CH(OH)CHO                                                                           HNDO     }
+  G3H501U = 5C+8H+N+9O;    {CH2(ONO2)CH2CH(OOH)CH(OH)CO(OO.)                                                                       3.HNK    }
+  GGH500z = 5C+9H+N+9O;    {CH2(ONO2)CH2CH(OOH)CH(OH)CO(OOH)                                                                       GHNO     }
+  GPH501N = 5C+8H+2N+11O;  {CH2(ONO2)CH2CH(OOH)CH(OH)CO(OONO2)                                                                     PHNO     }
+  G1H503T = 5C+9H+2N+9O;   {CH2(ONO2)CH2CH(OOH)CH(ONO2)CH2(O.)                                                                     1.HNN    }
+  GHN504k = 5C+8H+2N+9O;   {CH2(ONO2)CH2CH(OOH)CH(ONO2)CHO                                                                         HNND     }
+  G3H501u = 5C+7H+2N+11O;  {CH2(ONO2)CH2CH(OOH)CH(ONO2)CO(OO.)                                                                     3.HNN    }
+  GGH500y = 5C+8H+2N+11O;  {CH2(ONO2)CH2CH(OOH)CH(ONO2)CO(OOH)                                                                     GHNN     }
+  GPH501M = 5C+7H+3N+13O;  {CH2(ONO2)CH2CH(OOH)CH(ONO2)CO(OONO2)                                                                   PHNN     }
+  G2H501k = 5C+9H+2N+10O;  {CH2(ONO2)CH2CH(OOH)CH(OO.)CH2(ONO2)                                                                    2.HNN    }
+  G1H503c = 5C+10H+N+8O;   {CH2(ONO2)CH2CH(OOH)CH(OOH)CH2(O.)                                                                      1.HHN    }
+  GHH500U = 5C+10H+2N+10O; {CH2(ONO2)CH2CH(OOH)CH(OOH)CH2(ONO2)                                                                    HHNN     }
+  GHH501k = 5C+9H+N+8O;    {CH2(ONO2)CH2CH(OOH)CH(OOH)CHO                                                                          HHND     }
+  G3H5022 = 5C+8H+N+10O;   {CH2(ONO2)CH2CH(OOH)CH(OOH)CO(OO.)                                                                      3.HHN    }
+  GGH502e = 5C+9H+N+10O;   {CH2(ONO2)CH2CH(OOH)CH(OOH)CO(OOH)                                                                      GHHN     }
+  GPH502z = 5C+8H+2N+12O;  {CH2(ONO2)CH2CH(OOH)CH(OOH)CO(OONO2)                                                                    PHHN     }
+  G1H400B = 4C+8H+N+6O;    {CH2(ONO2)CH2CH(OOH)CH2(O.)                                                                             1.HN     }
+  GHN400I = 4C+8H+2N+8O;   {CH2(ONO2)CH2CH(OOH)CH2(ONO2)                                                                           HNN      }
+  G2H400B = 4C+8H+N+7O;    {CH2(ONO2)CH2CH(OOH)CH2(OO.)                                                                            2.HN     }
+  GHH4007 = 4C+9H+N+7O;    {CH2(ONO2)CH2CH(OOH)CH2(OOH)                                                                            HHN      }
+  G1H500m = 5C+10H+N+6O;   {CH2(ONO2)CH2CH(OOH)CH2CH2(O.)                                                                          1.HN     }
+  GHN500J = 5C+10H+2N+8O;  {CH2(ONO2)CH2CH(OOH)CH2CH2(ONO2)                                                                        HNN      }
+  G2H500b = 5C+10H+N+7O;   {CH2(ONO2)CH2CH(OOH)CH2CH2(OO.)                                                                         2.HN     }
+  GHH5003 = 5C+11H+N+7O;   {CH2(ONO2)CH2CH(OOH)CH2CH2(OOH)                                                                         HHN      }
+  GHN500S = 5C+9H+N+6O;    {CH2(ONO2)CH2CH(OOH)CH2CHO                                                                              HND      }
+  G3H5004 = 5C+8H+N+8O;    {CH2(ONO2)CH2CH(OOH)CH2CO(OO.)                                                                          3.HNK    }
+  GGH5006 = 5C+9H+N+8O;    {CH2(ONO2)CH2CH(OOH)CH2CO(OOH)                                                                          GHN      }
+  GPH5006 = 5C+8H+2N+10O;  {CH2(ONO2)CH2CH(OOH)CH2CO(OONO2)                                                                        PHN      }
+  GHN400J = 4C+7H+N+6O;    {CH2(ONO2)CH2CH(OOH)CHO                                                                                 HND      }
+  G3H400D = 4C+6H+N+8O;    {CH2(ONO2)CH2CH(OOH)CO(OO.)                                                                             3.HNK    }
+  GGH4003 = 4C+7H+N+8O;    {CH2(ONO2)CH2CH(OOH)CO(OOH)                                                                             GHN      }
+  GPH4003 = 4C+6H+2N+10O;  {CH2(ONO2)CH2CH(OOH)CO(OONO2)                                                                           PHN      }
+  G1H503p = 5C+8H+N+7O;    {CH2(ONO2)CH2CH(OOH)COCH2(O.)                                                                           1.HNK    }
+  GHN5023 = 5C+8H+2N+9O;   {CH2(ONO2)CH2CH(OOH)COCH2(ONO2)                                                                         HNNK     }
+  G2H5022 = 5C+8H+N+8O;    {CH2(ONO2)CH2CH(OOH)COCH2(OO.)                                                                          2.HNK    }
+  GHH500e = 5C+9H+N+8O;    {CH2(ONO2)CH2CH(OOH)COCH2(OOH)                                                                          HHNK     }
+  GHN502l = 5C+7H+N+7O;    {CH2(ONO2)CH2CH(OOH)COCHO                                                                               HNDK     }
+  G3H502X = 5C+6H+N+9O;    {CH2(ONO2)CH2CH(OOH)COCO(OO.)                                                                           3.HNK    }
+  GGH5012 = 5C+7H+N+9O;    {CH2(ONO2)CH2CH(OOH)COCO(OOH)                                                                           GHNK     }
+  GPH501O = 5C+6H+2N+11O;  {CH2(ONO2)CH2CH(OOH)COCO(OONO2)                                                                         PHNK     }
+  G1N3000 = 3C+6H+N+4O;    {CH2(ONO2)CH2CH2(O.)                                                                                    1.N      }
+  GNN3000 = 3C+6H+2N+6O;   {CH2(ONO2)CH2CH2(ONO2)                                                                                  NN       }
+  G2N3000 = 3C+6H+N+5O;    {CH2(ONO2)CH2CH2(OO.)                                                                                   2.N      }
+  GHN3000 = 3C+7H+N+5O;    {CH2(ONO2)CH2CH2(OOH)                                                                                   HN       }
+  G1N500G = 5C+9H+2N+7O;   {CH2(ONO2)CH2CH2CH(O.)CH2(ONO2)                                                                         1.NN     }
+  G1H5005 = 5C+10H+N+6O;   {CH2(ONO2)CH2CH2CH(O.)CH2(OOH)                                                                          1.HN     }
+  G1N504G = 5C+8H+N+5O;    {CH2(ONO2)CH2CH2CH(O.)CHO                                                                               1.ND     }
+  G1G5007 = 5C+8H+N+7O;    {CH2(ONO2)CH2CH2CH(O.)CO(OOH)                                                                           1.GN     }
+  G1P5008 = 5C+7H+2N+9O;   {CH2(ONO2)CH2CH2CH(O.)CO(OONO2)                                                                         1.PN     }
+  G1N500s = 5C+10H+N+5O;   {CH2(ONO2)CH2CH2CH(OH)CH2(O.)                                                                           1.NO     }
+  GNN5005 = 5C+10H+2N+7O;  {CH2(ONO2)CH2CH2CH(OH)CH2(ONO2)                                                                         NNO      }
+  G2N500v = 5C+10H+N+6O;   {CH2(ONO2)CH2CH2CH(OH)CH2(OO.)                                                                          2.NO     }
+  GHN5008 = 5C+11H+N+6O;   {CH2(ONO2)CH2CH2CH(OH)CH2(OOH)                                                                          HNO      }
+  GND500H = 5C+9H+N+5O;    {CH2(ONO2)CH2CH2CH(OH)CHO                                                                               NDO      }
+  G3N500J = 5C+8H+N+7O;    {CH2(ONO2)CH2CH2CH(OH)CO(OO.)                                                                           3.NKO    }
+  GGN500B = 5C+9H+N+7O;    {CH2(ONO2)CH2CH2CH(OH)CO(OOH)                                                                           GNO      }
+  GPN500D = 5C+8H+2N+9O;   {CH2(ONO2)CH2CH2CH(OH)CO(OONO2)                                                                         PNO      }
+  G1N501a = 5C+9H+2N+7O;   {CH2(ONO2)CH2CH2CH(ONO2)CH2(O.)                                                                         1.NN     }
+  GNN500C = 5C+9H+3N+9O;   {CH2(ONO2)CH2CH2CH(ONO2)CH2(ONO2)                                                                       NNN      }
+  G2N501h = 5C+9H+2N+8O;   {CH2(ONO2)CH2CH2CH(ONO2)CH2(OO.)                                                                        2.NN     }
+  GHN500N = 5C+10H+2N+8O;  {CH2(ONO2)CH2CH2CH(ONO2)CH2(OOH)                                                                        HNN      }
+  GNN501H = 5C+8H+2N+7O;   {CH2(ONO2)CH2CH2CH(ONO2)CHO                                                                             NND      }
+  G3N500a = 5C+7H+2N+9O;   {CH2(ONO2)CH2CH2CH(ONO2)CO(OO.)                                                                         3.NNK    }
+  GGN500A = 5C+8H+2N+9O;   {CH2(ONO2)CH2CH2CH(ONO2)CO(OOH)                                                                         GNN      }
+  GPN500C = 5C+7H+3N+11O;  {CH2(ONO2)CH2CH2CH(ONO2)CO(OONO2)                                                                       PNN      }
+  G2N500G = 5C+9H+2N+8O;   {CH2(ONO2)CH2CH2CH(OO.)CH2(ONO2)                                                                        2.NN     }
+  G2H5004 = 5C+10H+N+7O;   {CH2(ONO2)CH2CH2CH(OO.)CH2(OOH)                                                                         2.HN     }
+  G2N503n = 5C+8H+N+6O;    {CH2(ONO2)CH2CH2CH(OO.)CHO                                                                              2.ND     }
+  G2G5006 = 5C+8H+N+8O;    {CH2(ONO2)CH2CH2CH(OO.)CO(OOH)                                                                          2.GN     }
+  G2P5007 = 5C+7H+2N+10O;  {CH2(ONO2)CH2CH2CH(OO.)CO(OONO2)                                                                        2.PN     }
+  G1H500j = 5C+10H+N+6O;   {CH2(ONO2)CH2CH2CH(OOH)CH2(O.)                                                                          1.HN     }
+  GHN500I = 5C+10H+2N+8O;  {CH2(ONO2)CH2CH2CH(OOH)CH2(ONO2)                                                                        HNN      }
+  G2H500f = 5C+10H+N+7O;   {CH2(ONO2)CH2CH2CH(OOH)CH2(OO.)                                                                         2.HN     }
+  GHH5004 = 5C+11H+N+7O;   {CH2(ONO2)CH2CH2CH(OOH)CH2(OOH)                                                                         HHN      }
+  GHN501z = 5C+9H+N+6O;    {CH2(ONO2)CH2CH2CH(OOH)CHO                                                                              HND      }
+  G3H500T = 5C+8H+N+8O;    {CH2(ONO2)CH2CH2CH(OOH)CO(OO.)                                                                          3.HNK    }
+  GGH5007 = 5C+9H+N+8O;    {CH2(ONO2)CH2CH2CH(OOH)CO(OOH)                                                                          GHN      }
+  GPH5008 = 5C+8H+2N+10O;  {CH2(ONO2)CH2CH2CH(OOH)CO(OONO2)                                                                        PHN      }
+  G1N4000 = 4C+8H+N+4O;    {CH2(ONO2)CH2CH2CH2(O.)                                                                                 1.N      }
+  GNN4000 = 4C+8H+2N+6O;   {CH2(ONO2)CH2CH2CH2(ONO2)                                                                               NN       }
+  G2N4000 = 4C+8H+N+5O;    {CH2(ONO2)CH2CH2CH2(OO.)                                                                                2.N      }
+  GHN4000 = 4C+9H+N+5O;    {CH2(ONO2)CH2CH2CH2(OOH)                                                                                HN       }
+  G1N5000 = 5C+10H+N+4O;   {CH2(ONO2)CH2CH2CH2CH2(O.)                                                                              1.N      }
+  GNN5000 = 5C+10H+2N+6O;  {CH2(ONO2)CH2CH2CH2CH2(ONO2)                                                                            NN       }
+  G2N5000 = 5C+10H+N+5O;   {CH2(ONO2)CH2CH2CH2CH2(OO.)                                                                             2.N      }
+  GHN5000 = 5C+11H+N+5O;   {CH2(ONO2)CH2CH2CH2CH2(OOH)                                                                             HN       }
+  GND5000 = 5C+9H+N+4O;    {CH2(ONO2)CH2CH2CH2CHO                                                                                  ND       }
+  G3N5000 = 5C+8H+N+6O;    {CH2(ONO2)CH2CH2CH2CO(OO.)                                                                              3.NK     }
+  GGN5000 = 5C+9H+N+6O;    {CH2(ONO2)CH2CH2CH2CO(OOH)                                                                              GN       }
+  GPN5000 = 5C+8H+2N+8O;   {CH2(ONO2)CH2CH2CH2CO(OONO2)                                                                            PN       }
+  GND4001 = 4C+7H+N+4O;    {CH2(ONO2)CH2CH2CHO                                                                                     ND       }
+  G3N4000 = 4C+6H+N+6O;    {CH2(ONO2)CH2CH2CO(OO.)                                                                                 3.NK     }
+  GGN4000 = 4C+7H+N+6O;    {CH2(ONO2)CH2CH2CO(OOH)                                                                                 GN       }
+  GPN4000 = 4C+6H+2N+8O;   {CH2(ONO2)CH2CH2CO(OONO2)                                                                               PN       }
+  G1N500O = 5C+8H+N+5O;    {CH2(ONO2)CH2CH2COCH2(O.)                                                                               1.NK     }
+  GNN500D = 5C+8H+2N+7O;   {CH2(ONO2)CH2CH2COCH2(ONO2)                                                                             NNK      }
+  G2N500O = 5C+8H+N+6O;    {CH2(ONO2)CH2CH2COCH2(OO.)                                                                              2.NK     }
+  GHN500O = 5C+9H+N+6O;    {CH2(ONO2)CH2CH2COCH2(OOH)                                                                              HNK      }
+  GND5009 = 5C+7H+N+5O;    {CH2(ONO2)CH2CH2COCHO                                                                                   NDK      }
+  G3N500j = 5C+6H+N+7O;    {CH2(ONO2)CH2CH2COCO(OO.)                                                                               3.NKK    }
+  GGN500C = 5C+7H+N+7O;    {CH2(ONO2)CH2CH2COCO(OOH)                                                                               GNK      }
+  GPN500E = 5C+6H+2N+9O;   {CH2(ONO2)CH2CH2COCO(OONO2)                                                                             PNK      }
+  GND3000 = 3C+5H+N+4O;    {CH2(ONO2)CH2CHO                                                                                        ND       }
+  G3N3000 = 3C+4H+N+6O;    {CH2(ONO2)CH2CO(OO.)                                                                                    3.NK     }
+  GGN3000 = 3C+5H+N+6O;    {CH2(ONO2)CH2CO(OOH)                                                                                    GN       }
+  GPN3000 = 3C+4H+2N+8O;   {CH2(ONO2)CH2CO(OONO2)                                                                                  PN       }
+  G1N501l = 5C+7H+2N+8O;   {CH2(ONO2)CH2COCH(O.)CH2(ONO2)                                                                          1.NNK    }
+  G1H504e = 5C+8H+N+7O;    {CH2(ONO2)CH2COCH(O.)CH2(OOH)                                                                           1.HNK    }
+  G1N504n = 5C+6H+N+6O;    {CH2(ONO2)CH2COCH(O.)CHO                                                                                1.NDK    }
+  G1G500i = 5C+6H+N+8O;    {CH2(ONO2)CH2COCH(O.)CO(OOH)                                                                            1.GNK    }
+  G1P500s = 5C+5H+2N+10O;  {CH2(ONO2)CH2COCH(O.)CO(OONO2)                                                                          1.PNK    }
+  G1N501Z = 5C+8H+N+6O;    {CH2(ONO2)CH2COCH(OH)CH2(O.)                                                                            1.NKO    }
+  G2N501W = 5C+8H+N+7O;    {CH2(ONO2)CH2COCH(OH)CH2(OO.)                                                                           2.NKO    }
+  GHN501t = 5C+9H+N+7O;    {CH2(ONO2)CH2COCH(OH)CH2(OOH)                                                                           HNKO     }
+  GND500U = 5C+7H+N+6O;    {CH2(ONO2)CH2COCH(OH)CHO                                                                                NDKO     }
+  G3N500Z = 5C+6H+N+8O;    {CH2(ONO2)CH2COCH(OH)CO(OO.)                                                                            3.NKK    }
+  GGN500j = 5C+7H+N+8O;    {CH2(ONO2)CH2COCH(OH)CO(OOH)                                                                            GNKO     }
+  GPN500v = 5C+6H+2N+10O;  {CH2(ONO2)CH2COCH(OH)CO(OONO2)                                                                          PNKO     }
+  G1N5024 = 5C+7H+2N+8O;   {CH2(ONO2)CH2COCH(ONO2)CH2(O.)                                                                          1.NNK    }
+  GNN501G = 5C+7H+3N+10O;  {CH2(ONO2)CH2COCH(ONO2)CH2(ONO2)                                                                        NNNK     }
+  G2N501x = 5C+7H+2N+9O;   {CH2(ONO2)CH2COCH(ONO2)CH2(OO.)                                                                         2.NNK    }
+  GHN502a = 5C+8H+2N+9O;   {CH2(ONO2)CH2COCH(ONO2)CH2(OOH)                                                                         HNNK     }
+  GNN501h = 5C+6H+2N+8O;   {CH2(ONO2)CH2COCH(ONO2)CHO                                                                              NNDK     }
+  G3N500r = 5C+5H+2N+10O;  {CH2(ONO2)CH2COCH(ONO2)CO(OO.)                                                                          3.NNK    }
+  GGN500v = 5C+6H+2N+10O;  {CH2(ONO2)CH2COCH(ONO2)CO(OOH)                                                                          GNNK     }
+  GPN5017 = 5C+5H+3N+12O;  {CH2(ONO2)CH2COCH(ONO2)CO(OONO2)                                                                        PNNK     }
+  G2N501f = 5C+7H+2N+9O;   {CH2(ONO2)CH2COCH(OO.)CH2(ONO2)                                                                         2.NNK    }
+  G2G500e = 5C+6H+N+9O;    {CH2(ONO2)CH2COCH(OO.)CO(OOH)                                                                           2.GNK    }
+  G2P500p = 5C+5H+2N+11O;  {CH2(ONO2)CH2COCH(OO.)CO(OONO2)                                                                         2.PNK    }
+  G1H503h = 5C+8H+N+7O;    {CH2(ONO2)CH2COCH(OOH)CH2(O.)                                                                           1.HNK    }
+  GHN501y = 5C+8H+2N+9O;   {CH2(ONO2)CH2COCH(OOH)CH2(ONO2)                                                                         HNNK     }
+  GHN504s = 5C+7H+N+7O;    {CH2(ONO2)CH2COCH(OOH)CHO                                                                               HNDK     }
+  G3H501z = 5C+6H+N+9O;    {CH2(ONO2)CH2COCH(OOH)CO(OO.)                                                                           3.HNK    }
+  GGH500w = 5C+7H+N+9O;    {CH2(ONO2)CH2COCH(OOH)CO(OOH)                                                                           GHNK     }
+  GPH5015 = 5C+6H+2N+11O;  {CH2(ONO2)CH2COCH(OOH)CO(OONO2)                                                                         PHNK     }
+  G1N400E = 4C+6H+N+5O;    {CH2(ONO2)CH2COCH2(O.)                                                                                  1.NK     }
+  GNN400C = 4C+6H+2N+7O;   {CH2(ONO2)CH2COCH2(ONO2)                                                                                NNK      }
+  G2N400E = 4C+6H+N+6O;    {CH2(ONO2)CH2COCH2(OO.)                                                                                 2.NK     }
+  GHN400K = 4C+7H+N+6O;    {CH2(ONO2)CH2COCH2(OOH)                                                                                 HNK      }
+  G1N500Z = 5C+8H+N+5O;    {CH2(ONO2)CH2COCH2CH2(O.)                                                                               1.NK     }
+  GNN500G = 5C+8H+2N+7O;   {CH2(ONO2)CH2COCH2CH2(ONO2)                                                                             NNK      }
+  G2N500Z = 5C+8H+N+6O;    {CH2(ONO2)CH2COCH2CH2(OO.)                                                                              2.NK     }
+  GHN500M = 5C+9H+N+6O;    {CH2(ONO2)CH2COCH2CH2(OOH)                                                                              HNK      }
+  GND5007 = 5C+7H+N+5O;    {CH2(ONO2)CH2COCH2CHO                                                                                   NDK      }
+  G3N5008 = 5C+6H+N+7O;    {CH2(ONO2)CH2COCH2CO(OO.)                                                                               3.NKK    }
+  GGN5009 = 5C+7H+N+7O;    {CH2(ONO2)CH2COCH2CO(OOH)                                                                               GNK      }
+  GPN5009 = 5C+6H+2N+9O;   {CH2(ONO2)CH2COCH2CO(OONO2)                                                                             PNK      }
+  GND400B = 4C+5H+N+5O;    {CH2(ONO2)CH2COCHO                                                                                      NDK      }
+  G3N400N = 4C+4H+N+7O;    {CH2(ONO2)CH2COCO(OO.)                                                                                  3.NKK    }
+  GGN400A = 4C+5H+N+7O;    {CH2(ONO2)CH2COCO(OOH)                                                                                  GNK      }
+  GPN400A = 4C+4H+2N+9O;   {CH2(ONO2)CH2COCO(OONO2)                                                                                PNK      }
+  G1N502O = 5C+6H+N+6O;    {CH2(ONO2)CH2COCOCH2(O.)                                                                                1.NKK    }
+  GNN501L = 5C+6H+2N+8O;   {CH2(ONO2)CH2COCOCH2(ONO2)                                                                              NNKK     }
+  G2N502D = 5C+6H+N+7O;    {CH2(ONO2)CH2COCOCH2(OO.)                                                                               2.NKK    }
+  GHN502G = 5C+7H+N+7O;    {CH2(ONO2)CH2COCOCH2(OOH)                                                                               HNKK     }
+  GND500i = 5C+5H+N+6O;    {CH2(ONO2)CH2COCOCHO                                                                                    NDKK     }
+  G3N501p = 5C+4H+N+8O;    {CH2(ONO2)CH2COCOCO(OO.)                                                                                3.NKK    }
+  GGN500w = 5C+5H+N+8O;    {CH2(ONO2)CH2COCOCO(OOH)                                                                                GNKK     }
+  GPN5018 = 5C+4H+2N+10O;  {CH2(ONO2)CH2COCOCO(OONO2)                                                                              PNKK     }
+  GND2000 = 2C+3H+N+4O;    {CH2(ONO2)CHO                                                                                           ND       }
+  G3N2000 = 2C+2H+N+6O;    {CH2(ONO2)CO(OO.)                                                                                       3.NK     }
+  GGN2000 = 2C+3H+N+6O;    {CH2(ONO2)CO(OOH)                                                                                       GN       }
+  GPN2000 = 2C+2H+2N+8O;   {CH2(ONO2)CO(OONO2)                                                                                     PN       }
+  G1H509x = 5C+8H+N+8O;    {CH2(ONO2)COCH(O.)CH(OH)CH2(OOH)                                                                        1.HNK    }
+  G1N505w = 5C+6H+N+7O;    {CH2(ONO2)COCH(O.)CH(OH)CHO                                                                             1.NDK    }
+  G1G505w = 5C+6H+N+9O;    {CH2(ONO2)COCH(O.)CH(OH)CO(OOH)                                                                         1.GNK    }
+  G1P506X = 5C+5H+2N+11O;  {CH2(ONO2)COCH(O.)CH(OH)CO(OONO2)                                                                       1.PNK    }
+  G1H509I = 5C+7H+2N+10O;  {CH2(ONO2)COCH(O.)CH(ONO2)CH2(OOH)                                                                      1.HNN    }
+  G1N506f = 5C+5H+2N+9O;   {CH2(ONO2)COCH(O.)CH(ONO2)CHO                                                                           1.NND    }
+  G1G505h = 5C+5H+2N+11O;  {CH2(ONO2)COCH(O.)CH(ONO2)CO(OOH)                                                                       1.GNN    }
+  G1P503y = 5C+4H+3N+13O;  {CH2(ONO2)COCH(O.)CH(ONO2)CO(OONO2)                                                                     1.PNN    }
+  G1H50A5 = 5C+6H+N+8O;    {CH2(ONO2)COCH(O.)CH(OOH)CHO                                                                            1.HND    }
+  G1G506J = 5C+6H+N+10O;   {CH2(ONO2)COCH(O.)CH(OOH)CO(OOH)                                                                        1.GHN    }
+  G1P506q = 5C+5H+2N+12O;  {CH2(ONO2)COCH(O.)CH(OOH)CO(OONO2)                                                                      1.PHN    }
+  G1N400q = 4C+5H+2N+8O;   {CH2(ONO2)COCH(O.)CH2(ONO2)                                                                             1.NNK    }
+  G1H401p = 4C+6H+N+7O;    {CH2(ONO2)COCH(O.)CH2(OOH)                                                                              1.HNK    }
+  G1H505L = 5C+8H+N+7O;    {CH2(ONO2)COCH(O.)CH2CH2(OOH)                                                                           1.HNK    }
+  G1N503E = 5C+6H+N+6O;    {CH2(ONO2)COCH(O.)CH2CHO                                                                                1.NDK    }
+  G1G501B = 5C+6H+N+8O;    {CH2(ONO2)COCH(O.)CH2CO(OOH)                                                                            1.GNK    }
+  G1P5013 = 5C+5H+2N+10O;  {CH2(ONO2)COCH(O.)CH2CO(OONO2)                                                                          1.PNK    }
+  G1N4013 = 4C+4H+N+6O;    {CH2(ONO2)COCH(O.)CHO                                                                                   1.NDK    }
+  G1G400J = 4C+4H+N+8O;    {CH2(ONO2)COCH(O.)CO(OOH)                                                                               1.GNK    }
+  G1P400P = 4C+3H+2N+10O;  {CH2(ONO2)COCH(O.)CO(OONO2)                                                                             1.PNK    }
+  G1N504J = 5C+5H+2N+9O;   {CH2(ONO2)COCH(O.)COCH2(ONO2)                                                                           1.NNK    }
+  G1H509c = 5C+6H+N+8O;    {CH2(ONO2)COCH(O.)COCH2(OOH)                                                                            1.HNK    }
+  G1N506y = 5C+4H+N+7O;    {CH2(ONO2)COCH(O.)COCHO                                                                                 1.NDK    }
+  G1G502Y = 5C+4H+N+9O;    {CH2(ONO2)COCH(O.)COCO(OOH)                                                                             1.GNK    }
+  G1P5042 = 5C+3H+2N+11O;  {CH2(ONO2)COCH(O.)COCO(OONO2)                                                                           1.PNK    }
+  G1N504N = 5C+7H+2N+9O;   {CH2(ONO2)COCH(OH)CH(O.)CH2(ONO2)                                                                       1.NNK    }
+  G1H5071 = 5C+8H+N+8O;    {CH2(ONO2)COCH(OH)CH(O.)CH2(OOH)                                                                        1.HNK    }
+  G1N505v = 5C+6H+N+7O;    {CH2(ONO2)COCH(OH)CH(O.)CHO                                                                             1.NDK    }
+  G1G503d = 5C+6H+N+9O;    {CH2(ONO2)COCH(OH)CH(O.)CO(OOH)                                                                         1.GNK    }
+  G1P503x = 5C+5H+2N+11O;  {CH2(ONO2)COCH(OH)CH(O.)CO(OONO2)                                                                       1.PNK    }
+  G1N505E = 5C+8H+N+7O;    {CH2(ONO2)COCH(OH)CH(OH)CH2(O.)                                                                         1.NKO    }
+  G2N506C = 5C+8H+N+8O;    {CH2(ONO2)COCH(OH)CH(OH)CH2(OO.)                                                                        2.NKO    }
+  GHN506J = 5C+9H+N+8O;    {CH2(ONO2)COCH(OH)CH(OH)CH2(OOH)                                                                        HNKOO    }
+  GND501Q = 5C+7H+N+7O;    {CH2(ONO2)COCH(OH)CH(OH)CHO                                                                             NDKOO    }
+  G3N502H = 5C+6H+N+9O;    {CH2(ONO2)COCH(OH)CH(OH)CO(OO.)                                                                         3.NKK    }
+  GGN502e = 5C+7H+N+9O;    {CH2(ONO2)COCH(OH)CH(OH)CO(OOH)                                                                         GNKOO    }
+  GPN502h = 5C+6H+2N+11O;  {CH2(ONO2)COCH(OH)CH(OH)CO(OONO2)                                                                       PNKOO    }
+  G1N5051 = 5C+7H+2N+9O;   {CH2(ONO2)COCH(OH)CH(ONO2)CH2(O.)                                                                       1.NNK    }
+  GNN502h = 5C+7H+3N+11O;  {CH2(ONO2)COCH(OH)CH(ONO2)CH2(ONO2)                                                                     NNNKO    }
+  G2N506B = 5C+7H+2N+10O;  {CH2(ONO2)COCH(OH)CH(ONO2)CH2(OO.)                                                                      2.NNK    }
+  GHN506I = 5C+8H+2N+10O;  {CH2(ONO2)COCH(OH)CH(ONO2)CH2(OOH)                                                                      HNNKO    }
+  GNN5035 = 5C+6H+2N+9O;   {CH2(ONO2)COCH(OH)CH(ONO2)CHO                                                                           NNDKO    }
+  G3N5026 = 5C+5H+2N+11O;  {CH2(ONO2)COCH(OH)CH(ONO2)CO(OO.)                                                                       3.NNK    }
+  GGN502P = 5C+6H+2N+11O;  {CH2(ONO2)COCH(OH)CH(ONO2)CO(OOH)                                                                       GNNKO    }
+  GPN502R = 5C+5H+3N+13O;  {CH2(ONO2)COCH(OH)CH(ONO2)CO(OONO2)                                                                     PNNKO    }
+  G2N503r = 5C+7H+2N+10O;  {CH2(ONO2)COCH(OH)CH(OO.)CH2(ONO2)                                                                      2.NNK    }
+  G2H502b = 5C+8H+N+9O;    {CH2(ONO2)COCH(OH)CH(OO.)CH2(OOH)                                                                       2.HNK    }
+  G2N504w = 5C+6H+N+8O;    {CH2(ONO2)COCH(OH)CH(OO.)CHO                                                                            2.NDK    }
+  G2G502c = 5C+6H+N+10O;   {CH2(ONO2)COCH(OH)CH(OO.)CO(OOH)                                                                        2.GNK    }
+  G2P5038 = 5C+5H+2N+12O;  {CH2(ONO2)COCH(OH)CH(OO.)CO(OONO2)                                                                      2.PNK    }
+  G1H508f = 5C+8H+N+8O;    {CH2(ONO2)COCH(OH)CH(OOH)CH2(O.)                                                                        1.HNK    }
+  GHN504z = 5C+8H+2N+10O;  {CH2(ONO2)COCH(OH)CH(OOH)CH2(ONO2)                                                                      HNNKO    }
+  GHH502X = 5C+9H+N+9O;    {CH2(ONO2)COCH(OH)CH(OOH)CH2(OOH)                                                                       HHNKO    }
+  GHN506C = 5C+7H+N+8O;    {CH2(ONO2)COCH(OH)CH(OOH)CHO                                                                            HNDKO    }
+  G3H503Z = 5C+6H+N+10O;   {CH2(ONO2)COCH(OH)CH(OOH)CO(OO.)                                                                        3.HNK    }
+  GGH504D = 5C+7H+N+10O;   {CH2(ONO2)COCH(OH)CH(OOH)CO(OOH)                                                                        GHNKO    }
+  GPH5043 = 5C+6H+2N+12O;  {CH2(ONO2)COCH(OH)CH(OOH)CO(OONO2)                                                                      PHNKO    }
+  G1N400m = 4C+6H+N+6O;    {CH2(ONO2)COCH(OH)CH2(O.)                                                                               1.NKO    }
+  G2N400g = 4C+6H+N+7O;    {CH2(ONO2)COCH(OH)CH2(OO.)                                                                              2.NKO    }
+  GHN400Z = 4C+7H+N+7O;    {CH2(ONO2)COCH(OH)CH2(OOH)                                                                              HNKO     }
+  G1N504L = 5C+8H+N+6O;    {CH2(ONO2)COCH(OH)CH2CH2(O.)                                                                            1.NKO    }
+  G2N5052 = 5C+8H+N+7O;    {CH2(ONO2)COCH(OH)CH2CH2(OO.)                                                                           2.NKO    }
+  GHN503x = 5C+9H+N+7O;    {CH2(ONO2)COCH(OH)CH2CH2(OOH)                                                                           HNKO     }
+  GND500n = 5C+7H+N+6O;    {CH2(ONO2)COCH(OH)CH2CHO                                                                                NDKO     }
+  G3N5016 = 5C+6H+N+8O;    {CH2(ONO2)COCH(OH)CH2CO(OO.)                                                                            3.NKK    }
+  GGN501L = 5C+7H+N+8O;    {CH2(ONO2)COCH(OH)CH2CO(OOH)                                                                            GNKO     }
+  GPN501H = 5C+6H+2N+10O;  {CH2(ONO2)COCH(OH)CH2CO(OONO2)                                                                          PNKO     }
+  GND400E = 4C+5H+N+6O;    {CH2(ONO2)COCH(OH)CHO                                                                                   NDKO     }
+  G3N400R = 4C+4H+N+8O;    {CH2(ONO2)COCH(OH)CO(OO.)                                                                               3.NKK    }
+  GGN400Q = 4C+5H+N+8O;    {CH2(ONO2)COCH(OH)CO(OOH)                                                                               GNKO     }
+  GPN400W = 4C+4H+2N+10O;  {CH2(ONO2)COCH(OH)CO(OONO2)                                                                             PNKO     }
+  G1N506S = 5C+6H+N+7O;    {CH2(ONO2)COCH(OH)COCH2(O.)                                                                             1.NKK    }
+  GNN502n = 5C+6H+2N+9O;   {CH2(ONO2)COCH(OH)COCH2(ONO2)                                                                           NNKKO    }
+  G2N506D = 5C+6H+N+8O;    {CH2(ONO2)COCH(OH)COCH2(OO.)                                                                            2.NKK    }
+  GHN506K = 5C+7H+N+8O;    {CH2(ONO2)COCH(OH)COCH2(OOH)                                                                            HNKKO    }
+  GND501R = 5C+5H+N+7O;    {CH2(ONO2)COCH(OH)COCHO                                                                                 NDKKO    }
+  G3N502i = 5C+4H+N+9O;    {CH2(ONO2)COCH(OH)COCO(OO.)                                                                             3.NKK    }
+  GGN5028 = 5C+5H+N+9O;    {CH2(ONO2)COCH(OH)COCO(OOH)                                                                             GNKKO    }
+  GPN502U = 5C+4H+2N+11O;  {CH2(ONO2)COCH(OH)COCO(OONO2)                                                                           PNKKO    }
+  G1N504K = 5C+6H+3N+11O;  {CH2(ONO2)COCH(ONO2)CH(O.)CH2(ONO2)                                                                     1.NNN    }
+  G1H509J = 5C+7H+2N+10O;  {CH2(ONO2)COCH(ONO2)CH(O.)CH2(OOH)                                                                      1.HNN    }
+  G1N506g = 5C+5H+2N+9O;   {CH2(ONO2)COCH(ONO2)CH(O.)CHO                                                                           1.NND    }
+  G1G505i = 5C+5H+2N+11O;  {CH2(ONO2)COCH(ONO2)CH(O.)CO(OOH)                                                                       1.GNN    }
+  G1P5031 = 5C+4H+3N+13O;  {CH2(ONO2)COCH(ONO2)CH(O.)CO(OONO2)                                                                     1.PNN    }
+  G1N505D = 5C+7H+2N+9O;   {CH2(ONO2)COCH(ONO2)CH(OH)CH2(O.)                                                                       1.NNK    }
+  G2N504T = 5C+7H+2N+10O;  {CH2(ONO2)COCH(ONO2)CH(OH)CH2(OO.)                                                                      2.NNK    }
+  GHN505j = 5C+8H+2N+10O;  {CH2(ONO2)COCH(ONO2)CH(OH)CH2(OOH)                                                                      HNNKO    }
+  GNN503B = 5C+6H+2N+9O;   {CH2(ONO2)COCH(ONO2)CH(OH)CHO                                                                           NNDKO    }
+  G3N5027 = 5C+5H+2N+11O;  {CH2(ONO2)COCH(ONO2)CH(OH)CO(OO.)                                                                       3.NNK    }
+  GGN502Q = 5C+6H+2N+11O;  {CH2(ONO2)COCH(ONO2)CH(OH)CO(OOH)                                                                       GNNKO    }
+  GPN502I = 5C+5H+3N+13O;  {CH2(ONO2)COCH(ONO2)CH(OH)CO(OONO2)                                                                     PNNKO    }
+  G1N504f = 5C+6H+3N+11O;  {CH2(ONO2)COCH(ONO2)CH(ONO2)CH2(O.)                                                                     1.NNN    }
+  GNN502g = 5C+6H+4N+13O;  {CH2(ONO2)COCH(ONO2)CH(ONO2)CH2(ONO2)                                                                   NNNNK    }
+  G2N504F = 5C+6H+3N+12O;  {CH2(ONO2)COCH(ONO2)CH(ONO2)CH2(OO.)                                                                    2.NNN    }
+  GHN505P = 5C+7H+3N+12O;  {CH2(ONO2)COCH(ONO2)CH(ONO2)CH2(OOH)                                                                    HNNNK    }
+  GNN502x = 5C+5H+3N+11O;  {CH2(ONO2)COCH(ONO2)CH(ONO2)CHO                                                                         NNNDK    }
+  G3N501x = 5C+4H+3N+13O;  {CH2(ONO2)COCH(ONO2)CH(ONO2)CO(OO.)                                                                     3.NNN    }
+  GGN502J = 5C+5H+3N+13O;  {CH2(ONO2)COCH(ONO2)CH(ONO2)CO(OOH)                                                                     GNNNK    }
+  GPN502O = 5C+4H+4N+15O;  {CH2(ONO2)COCH(ONO2)CH(ONO2)CO(OONO2)                                                                   PNNNK    }
+  G2N503q = 5C+6H+3N+12O;  {CH2(ONO2)COCH(ONO2)CH(OO.)CH2(ONO2)                                                                    2.NNN    }
+  G2N505u = 5C+5H+2N+10O;  {CH2(ONO2)COCH(ONO2)CH(OO.)CHO                                                                          2.NND    }
+  G2G504D = 5C+5H+2N+12O;  {CH2(ONO2)COCH(ONO2)CH(OO.)CO(OOH)                                                                      2.GNN    }
+  G2P502U = 5C+4H+3N+14O;  {CH2(ONO2)COCH(ONO2)CH(OO.)CO(OONO2)                                                                    2.PNN    }
+  G1H508d = 5C+7H+2N+10O;  {CH2(ONO2)COCH(ONO2)CH(OOH)CH2(O.)                                                                      1.HNN    }
+  GHN504y = 5C+7H+3N+12O;  {CH2(ONO2)COCH(ONO2)CH(OOH)CH2(ONO2)                                                                    HNNNK    }
+  GHN505q = 5C+6H+2N+10O;  {CH2(ONO2)COCH(ONO2)CH(OOH)CHO                                                                          HNNDK    }
+  G3H502u = 5C+5H+2N+12O;  {CH2(ONO2)COCH(ONO2)CH(OOH)CO(OO.)                                                                      3.HNN    }
+  GGH503X = 5C+6H+2N+12O;  {CH2(ONO2)COCH(ONO2)CH(OOH)CO(OOH)                                                                      GHNNK    }
+  GPH503C = 5C+5H+3N+14O;  {CH2(ONO2)COCH(ONO2)CH(OOH)CO(OONO2)                                                                    PHNNK    }
+  G1N400t = 4C+5H+2N+8O;   {CH2(ONO2)COCH(ONO2)CH2(O.)                                                                             1.NNK    }
+  GNN400X = 4C+5H+3N+10O;  {CH2(ONO2)COCH(ONO2)CH2(ONO2)                                                                           NNNK     }
+  G2N400q = 4C+5H+2N+9O;   {CH2(ONO2)COCH(ONO2)CH2(OO.)                                                                            2.NNK    }
+  GHN4016 = 4C+6H+2N+9O;   {CH2(ONO2)COCH(ONO2)CH2(OOH)                                                                            HNNK     }
+  G1N502c = 5C+7H+2N+8O;   {CH2(ONO2)COCH(ONO2)CH2CH2(O.)                                                                          1.NNK    }
+  G2N502P = 5C+7H+2N+9O;   {CH2(ONO2)COCH(ONO2)CH2CH2(OO.)                                                                         2.NNK    }
+  GHN502z = 5C+8H+2N+9O;   {CH2(ONO2)COCH(ONO2)CH2CH2(OOH)                                                                         HNNK     }
+  GNN5026 = 5C+6H+2N+8O;   {CH2(ONO2)COCH(ONO2)CH2CHO                                                                              NNDK     }
+  G3N500v = 5C+5H+2N+10O;  {CH2(ONO2)COCH(ONO2)CH2CO(OO.)                                                                          3.NNK    }
+  GGN501C = 5C+6H+2N+10O;  {CH2(ONO2)COCH(ONO2)CH2CO(OOH)                                                                          GNNK     }
+  GPN500y = 5C+5H+3N+12O;  {CH2(ONO2)COCH(ONO2)CH2CO(OONO2)                                                                        PNNK     }
+  GNN400G = 4C+4H+2N+8O;   {CH2(ONO2)COCH(ONO2)CHO                                                                                 NNDK     }
+  G3N400L = 4C+3H+2N+10O;  {CH2(ONO2)COCH(ONO2)CO(OO.)                                                                             3.NNK    }
+  GGN400O = 4C+4H+2N+10O;  {CH2(ONO2)COCH(ONO2)CO(OOH)                                                                             GNNK     }
+  GPN400S = 4C+3H+3N+12O;  {CH2(ONO2)COCH(ONO2)CO(OONO2)                                                                           PNNK     }
+  G1N5057 = 5C+5H+2N+9O;   {CH2(ONO2)COCH(ONO2)COCH2(O.)                                                                           1.NNK    }
+  GNN502m = 5C+5H+3N+11O;  {CH2(ONO2)COCH(ONO2)COCH2(ONO2)                                                                         NNNKK    }
+  G2N504L = 5C+5H+2N+10O;  {CH2(ONO2)COCH(ONO2)COCH2(OO.)                                                                          2.NNK    }
+  GHN505Y = 5C+6H+2N+10O;  {CH2(ONO2)COCH(ONO2)COCH2(OOH)                                                                          HNNKK    }
+  GNN5038 = 5C+4H+2N+9O;   {CH2(ONO2)COCH(ONO2)COCHO                                                                               NNDKK    }
+  G3N502g = 5C+3H+2N+11O;  {CH2(ONO2)COCH(ONO2)COCO(OO.)                                                                           3.NNK    }
+  GGN502F = 5C+4H+2N+11O;  {CH2(ONO2)COCH(ONO2)COCO(OOH)                                                                           GNNKK    }
+  GPN502P = 5C+3H+3N+13O;  {CH2(ONO2)COCH(ONO2)COCO(OONO2)                                                                         PNNKK    }
+  G2N504x = 5C+6H+N+8O;    {CH2(ONO2)COCH(OO.)CH(OH)CHO                                                                            2.NDK    }
+  G2G504b = 5C+6H+N+10O;   {CH2(ONO2)COCH(OO.)CH(OH)CO(OOH)                                                                        2.GNK    }
+  G2P505Y = 5C+5H+2N+12O;  {CH2(ONO2)COCH(OO.)CH(OH)CO(OONO2)                                                                      2.PNK    }
+  G2N505i = 5C+5H+2N+10O;  {CH2(ONO2)COCH(OO.)CH(ONO2)CHO                                                                          2.NND    }
+  G2G503z = 5C+5H+2N+12O;  {CH2(ONO2)COCH(OO.)CH(ONO2)CO(OOH)                                                                      2.GNN    }
+  G2P5039 = 5C+4H+3N+14O;  {CH2(ONO2)COCH(OO.)CH(ONO2)CO(OONO2)                                                                    2.PNN    }
+  G2N400m = 4C+5H+2N+9O;   {CH2(ONO2)COCH(OO.)CH2(ONO2)                                                                            2.NNK    }
+  G2N502s = 5C+6H+N+7O;    {CH2(ONO2)COCH(OO.)CH2CHO                                                                               2.NDK    }
+  G2G500x = 5C+6H+N+9O;    {CH2(ONO2)COCH(OO.)CH2CO(OOH)                                                                           2.GNK    }
+  G2P500w = 5C+5H+2N+11O;  {CH2(ONO2)COCH(OO.)CH2CO(OONO2)                                                                         2.PNK    }
+  G2G400E = 4C+4H+N+9O;    {CH2(ONO2)COCH(OO.)CO(OOH)                                                                              2.GNK    }
+  G2P400O = 4C+3H+2N+11O;  {CH2(ONO2)COCH(OO.)CO(OONO2)                                                                            2.PNK    }
+  G2N503p = 5C+5H+2N+10O;  {CH2(ONO2)COCH(OO.)COCH2(ONO2)                                                                          2.NNK    }
+  G2N5068 = 5C+4H+N+8O;    {CH2(ONO2)COCH(OO.)COCHO                                                                                2.NDK    }
+  G2G501t = 5C+4H+N+10O;   {CH2(ONO2)COCH(OO.)COCO(OOH)                                                                            2.GNK    }
+  G2P503A = 5C+3H+2N+12O;  {CH2(ONO2)COCH(OO.)COCO(OONO2)                                                                          2.PNK    }
+  G1H507z = 5C+7H+2N+10O;  {CH2(ONO2)COCH(OOH)CH(O.)CH2(ONO2)                                                                      1.HNN    }
+  G1H509U = 5C+6H+N+8O;    {CH2(ONO2)COCH(OOH)CH(O.)CHO                                                                            1.HND    }
+  G1G503b = 5C+6H+N+10O;   {CH2(ONO2)COCH(OOH)CH(O.)CO(OOH)                                                                        1.GHN    }
+  G1P503v = 5C+5H+2N+12O;  {CH2(ONO2)COCH(OOH)CH(O.)CO(OONO2)                                                                      1.PHN    }
+  G1H5055 = 5C+8H+N+8O;    {CH2(ONO2)COCH(OOH)CH(OH)CH2(O.)                                                                        1.HNK    }
+  GHN506D = 5C+7H+N+8O;    {CH2(ONO2)COCH(OOH)CH(OH)CHO                                                                            HNDKO    }
+  G3H503a = 5C+6H+N+10O;   {CH2(ONO2)COCH(OOH)CH(OH)CO(OO.)                                                                        3.HNK    }
+  GGH504C = 5C+7H+N+10O;   {CH2(ONO2)COCH(OOH)CH(OH)CO(OOH)                                                                        GHNKO    }
+  GPH5041 = 5C+6H+2N+12O;  {CH2(ONO2)COCH(OOH)CH(OH)CO(OONO2)                                                                      PHNKO    }
+  G1H507y = 5C+7H+2N+10O;  {CH2(ONO2)COCH(OOH)CH(ONO2)CH2(O.)                                                                      1.HNN    }
+  GHN505U = 5C+6H+2N+10O;  {CH2(ONO2)COCH(OOH)CH(ONO2)CHO                                                                          HNNDK    }
+  G3H502i = 5C+5H+2N+12O;  {CH2(ONO2)COCH(OOH)CH(ONO2)CO(OO.)                                                                      3.HNN    }
+  GGH503J = 5C+6H+2N+12O;  {CH2(ONO2)COCH(OOH)CH(ONO2)CO(OOH)                                                                      GHNNK    }
+  GPH503y = 5C+5H+3N+14O;  {CH2(ONO2)COCH(OOH)CH(ONO2)CO(OONO2)                                                                    PHNNK    }
+  G2G502b = 5C+6H+N+11O;   {CH2(ONO2)COCH(OOH)CH(OO.)CO(OOH)                                                                       2.GHN    }
+  G2P5037 = 5C+5H+2N+13O;  {CH2(ONO2)COCH(OOH)CH(OO.)CO(OONO2)                                                                     2.PHN    }
+  G3H504n = 5C+6H+N+11O;   {CH2(ONO2)COCH(OOH)CH(OOH)CO(OO.)                                                                       3.HHN    }
+  GGH504B = 5C+7H+N+11O;   {CH2(ONO2)COCH(OOH)CH(OOH)CO(OOH)                                                                       GHHNK    }
+  GPH503z = 5C+6H+2N+13O;  {CH2(ONO2)COCH(OOH)CH(OOH)CO(OONO2)                                                                     PHHNK    }
+  G1H400v = 4C+6H+N+7O;    {CH2(ONO2)COCH(OOH)CH2(O.)                                                                              1.HNK    }
+  GHN4011 = 4C+6H+2N+9O;   {CH2(ONO2)COCH(OOH)CH2(ONO2)                                                                            HNNK     }
+  G2H400n = 4C+6H+N+8O;    {CH2(ONO2)COCH(OOH)CH2(OO.)                                                                             2.HNK    }
+  GHH400k = 4C+7H+N+8O;    {CH2(ONO2)COCH(OOH)CH2(OOH)                                                                             HHNK     }
+  G1H503o = 5C+8H+N+7O;    {CH2(ONO2)COCH(OOH)CH2CH2(O.)                                                                           1.HNK    }
+  GHN503m = 5C+7H+N+7O;    {CH2(ONO2)COCH(OOH)CH2CHO                                                                               HNDK     }
+  G3H501D = 5C+6H+N+9O;    {CH2(ONO2)COCH(OOH)CH2CO(OO.)                                                                           3.HNK    }
+  GGH501T = 5C+7H+N+9O;    {CH2(ONO2)COCH(OOH)CH2CO(OOH)                                                                           GHNK     }
+  GPH501K = 5C+6H+2N+11O;  {CH2(ONO2)COCH(OOH)CH2CO(OONO2)                                                                         PHNK     }
+  GHN400R = 4C+5H+N+7O;    {CH2(ONO2)COCH(OOH)CHO                                                                                  HNDK     }
+  G3H400R = 4C+4H+N+9O;    {CH2(ONO2)COCH(OOH)CO(OO.)                                                                              3.HNK    }
+  GGH400L = 4C+5H+N+9O;    {CH2(ONO2)COCH(OOH)CO(OOH)                                                                              GHNK     }
+  GPH400P = 4C+4H+2N+11O;  {CH2(ONO2)COCH(OOH)CO(OONO2)                                                                            PHNK     }
+  G1H508a = 5C+6H+N+8O;    {CH2(ONO2)COCH(OOH)COCH2(O.)                                                                            1.HNK    }
+  GHN504x = 5C+6H+2N+10O;  {CH2(ONO2)COCH(OOH)COCH2(ONO2)                                                                          HNNKK    }
+  GHN506E = 5C+5H+N+8O;    {CH2(ONO2)COCH(OOH)COCHO                                                                                HNDKK    }
+  G3H504j = 5C+4H+N+10O;   {CH2(ONO2)COCH(OOH)COCO(OO.)                                                                            3.HNK    }
+  GGH503C = 5C+5H+N+10O;   {CH2(ONO2)COCH(OOH)COCO(OOH)                                                                            GHNKK    }
+  GPH5042 = 5C+4H+2N+12O;  {CH2(ONO2)COCH(OOH)COCO(OONO2)                                                                          PHNKK    }
+  G1N3005 = 3C+4H+N+5O;    {CH2(ONO2)COCH2(O.)                                                                                     1.NK     }
+  GNN3006 = 3C+4H+2N+7O;   {CH2(ONO2)COCH2(ONO2)                                                                                   NNK      }
+  G2N3005 = 3C+4H+N+6O;    {CH2(ONO2)COCH2(OO.)                                                                                    2.NK     }
+  GHN3008 = 3C+5H+N+6O;    {CH2(ONO2)COCH2(OOH)                                                                                    HNK      }
+  G1N501f = 5C+7H+2N+8O;   {CH2(ONO2)COCH2CH(O.)CH2(ONO2)                                                                          1.NNK    }
+  G1H502L = 5C+8H+N+7O;    {CH2(ONO2)COCH2CH(O.)CH2(OOH)                                                                           1.HNK    }
+  G1N503F = 5C+6H+N+6O;    {CH2(ONO2)COCH2CH(O.)CHO                                                                                1.NDK    }
+  G1G501C = 5C+6H+N+8O;    {CH2(ONO2)COCH2CH(O.)CO(OOH)                                                                            1.GNK    }
+  G1P5014 = 5C+5H+2N+10O;  {CH2(ONO2)COCH2CH(O.)CO(OONO2)                                                                          1.PNK    }
+  G1N502W = 5C+8H+N+6O;    {CH2(ONO2)COCH2CH(OH)CH2(O.)                                                                            1.NKO    }
+  G2N5051 = 5C+8H+N+7O;    {CH2(ONO2)COCH2CH(OH)CH2(OO.)                                                                           2.NKO    }
+  GHN503w = 5C+9H+N+7O;    {CH2(ONO2)COCH2CH(OH)CH2(OOH)                                                                           HNKO     }
+  GND500o = 5C+7H+N+6O;    {CH2(ONO2)COCH2CH(OH)CHO                                                                                NDKO     }
+  G3N5017 = 5C+6H+N+8O;    {CH2(ONO2)COCH2CH(OH)CO(OO.)                                                                            3.NKK    }
+  GGN501M = 5C+7H+N+8O;    {CH2(ONO2)COCH2CH(OH)CO(OOH)                                                                            GNKO     }
+  GPN501J = 5C+6H+2N+10O;  {CH2(ONO2)COCH2CH(OH)CO(OONO2)                                                                          PNKO     }
+  G1N502A = 5C+7H+2N+8O;   {CH2(ONO2)COCH2CH(ONO2)CH2(O.)                                                                          1.NNK    }
+  GNN501D = 5C+7H+3N+10O;  {CH2(ONO2)COCH2CH(ONO2)CH2(ONO2)                                                                        NNNK     }
+  G2N5023 = 5C+7H+2N+9O;   {CH2(ONO2)COCH2CH(ONO2)CH2(OO.)                                                                         2.NNK    }
+  GHN502f = 5C+8H+2N+9O;   {CH2(ONO2)COCH2CH(ONO2)CH2(OOH)                                                                         HNNK     }
+  GNN501m = 5C+6H+2N+8O;   {CH2(ONO2)COCH2CH(ONO2)CHO                                                                              NNDK     }
+  G3N500t = 5C+5H+2N+10O;  {CH2(ONO2)COCH2CH(ONO2)CO(OO.)                                                                          3.NNK    }
+  GGN500y = 5C+6H+2N+10O;  {CH2(ONO2)COCH2CH(ONO2)CO(OOH)                                                                          GNNK     }
+  GPN501I = 5C+5H+3N+12O;  {CH2(ONO2)COCH2CH(ONO2)CO(OONO2)                                                                        PNNK     }
+  G2N501a = 5C+7H+2N+9O;   {CH2(ONO2)COCH2CH(OO.)CH2(ONO2)                                                                         2.NNK    }
+  G2H501I = 5C+8H+N+8O;    {CH2(ONO2)COCH2CH(OO.)CH2(OOH)                                                                          2.HNK    }
+  G2N502t = 5C+6H+N+7O;    {CH2(ONO2)COCH2CH(OO.)CHO                                                                               2.NDK    }
+  G2G500y = 5C+6H+N+9O;    {CH2(ONO2)COCH2CH(OO.)CO(OOH)                                                                           2.GNK    }
+  G2P500x = 5C+5H+2N+11O;  {CH2(ONO2)COCH2CH(OO.)CO(OONO2)                                                                         2.PNK    }
+  G1H503n = 5C+8H+N+7O;    {CH2(ONO2)COCH2CH(OOH)CH2(O.)                                                                           1.HNK    }
+  GHN5022 = 5C+8H+2N+9O;   {CH2(ONO2)COCH2CH(OOH)CH2(ONO2)                                                                         HNNK     }
+  GHH501D = 5C+9H+N+8O;    {CH2(ONO2)COCH2CH(OOH)CH2(OOH)                                                                          HHNK     }
+  GHN503n = 5C+7H+N+7O;    {CH2(ONO2)COCH2CH(OOH)CHO                                                                               HNDK     }
+  G3H501E = 5C+6H+N+9O;    {CH2(ONO2)COCH2CH(OOH)CO(OO.)                                                                           3.HNK    }
+  GGH501U = 5C+7H+N+9O;    {CH2(ONO2)COCH2CH(OOH)CO(OOH)                                                                           GHNK     }
+  GPH501L = 5C+6H+2N+11O;  {CH2(ONO2)COCH2CH(OOH)CO(OONO2)                                                                         PHNK     }
+  G1N400K = 4C+6H+N+5O;    {CH2(ONO2)COCH2CH2(O.)                                                                                  1.NK     }
+  G2N400J = 4C+6H+N+6O;    {CH2(ONO2)COCH2CH2(OO.)                                                                                 2.NK     }
+  GHN400Q = 4C+7H+N+6O;    {CH2(ONO2)COCH2CH2(OOH)                                                                                 HNK      }
+  G1N501e = 5C+8H+N+5O;    {CH2(ONO2)COCH2CH2CH2(O.)                                                                               1.NK     }
+  G2N5031 = 5C+8H+N+6O;    {CH2(ONO2)COCH2CH2CH2(OO.)                                                                              2.NK     }
+  GHN5017 = 5C+9H+N+6O;    {CH2(ONO2)COCH2CH2CH2(OOH)                                                                              HNK      }
+  GND500C = 5C+7H+N+5O;    {CH2(ONO2)COCH2CH2CHO                                                                                   NDK      }
+  G3N500E = 5C+6H+N+7O;    {CH2(ONO2)COCH2CH2CO(OO.)                                                                               3.NKK    }
+  GGN500I = 5C+7H+N+7O;    {CH2(ONO2)COCH2CH2CO(OOH)                                                                               GNK      }
+  GPN500B = 5C+6H+2N+9O;   {CH2(ONO2)COCH2CH2CO(OONO2)                                                                             PNK      }
+  GND4004 = 4C+5H+N+5O;    {CH2(ONO2)COCH2CHO                                                                                      NDK      }
+  G3N4007 = 4C+4H+N+7O;    {CH2(ONO2)COCH2CO(OO.)                                                                                  3.NKK    }
+  GGN4008 = 4C+5H+N+7O;    {CH2(ONO2)COCH2CO(OOH)                                                                                  GNK      }
+  GPN4008 = 4C+4H+2N+9O;   {CH2(ONO2)COCH2CO(OONO2)                                                                                PNK      }
+  G1N502T = 5C+6H+N+6O;    {CH2(ONO2)COCH2COCH2(O.)                                                                                1.NKK    }
+  GNN501I = 5C+6H+2N+8O;   {CH2(ONO2)COCH2COCH2(ONO2)                                                                              NNKK     }
+  G2N502I = 5C+6H+N+7O;    {CH2(ONO2)COCH2COCH2(OO.)                                                                               2.NKK    }
+  GHN502D = 5C+7H+N+7O;    {CH2(ONO2)COCH2COCH2(OOH)                                                                               HNKK     }
+  GND500g = 5C+5H+N+6O;    {CH2(ONO2)COCH2COCHO                                                                                    NDKK     }
+  G3N501t = 5C+4H+N+8O;    {CH2(ONO2)COCH2COCO(OO.)                                                                                3.NKK    }
+  GGN5013 = 5C+5H+N+8O;    {CH2(ONO2)COCH2COCO(OOH)                                                                                GNKK     }
+  GPN501K = 5C+4H+2N+10O;  {CH2(ONO2)COCH2COCO(OONO2)                                                                              PNKK     }
+  GND3003 = 3C+3H+N+5O;    {CH2(ONO2)COCHO                                                                                         NDK      }
+  G3N3006 = 3C+2H+N+7O;    {CH2(ONO2)COCO(OO.)                                                                                     3.NKK    }
+  GGN3006 = 3C+3H+N+7O;    {CH2(ONO2)COCO(OOH)                                                                                     GNK      }
+  GPN3005 = 3C+2H+2N+9O;   {CH2(ONO2)COCO(OONO2)                                                                                   PNK      }
+  G1N504O = 5C+5H+2N+9O;   {CH2(ONO2)COCOCH(O.)CH2(ONO2)                                                                           1.NNK    }
+  G1H509R = 5C+6H+N+8O;    {CH2(ONO2)COCOCH(O.)CH2(OOH)                                                                            1.HNK    }
+  G1N506m = 5C+4H+N+7O;    {CH2(ONO2)COCOCH(O.)CHO                                                                                 1.NDK    }
+  G1G5035 = 5C+4H+N+9O;    {CH2(ONO2)COCOCH(O.)CO(OOH)                                                                             1.GNK    }
+  G1P503H = 5C+3H+2N+11O;  {CH2(ONO2)COCOCH(O.)CO(OONO2)                                                                           1.PNK    }
+  G1N505G = 5C+6H+N+7O;    {CH2(ONO2)COCOCH(OH)CH2(O.)                                                                             1.NKK    }
+  G2N504i = 5C+6H+N+8O;    {CH2(ONO2)COCOCH(OH)CH2(OO.)                                                                            2.NKK    }
+  GHN5061 = 5C+7H+N+8O;    {CH2(ONO2)COCOCH(OH)CH2(OOH)                                                                            HNKKO    }
+  GND501K = 5C+5H+N+7O;    {CH2(ONO2)COCOCH(OH)CHO                                                                                 NDKKO    }
+  G3N5028 = 5C+4H+N+9O;    {CH2(ONO2)COCOCH(OH)CO(OO.)                                                                             3.NKK    }
+  GGN502R = 5C+5H+N+9O;    {CH2(ONO2)COCOCH(OH)CO(OOH)                                                                             GNKKO    }
+  GPN502d = 5C+4H+2N+11O;  {CH2(ONO2)COCOCH(OH)CO(OONO2)                                                                           PNKKO    }
+  G1N504p = 5C+5H+2N+9O;   {CH2(ONO2)COCOCH(ONO2)CH2(O.)                                                                           1.NNK    }
+  GNN502i = 5C+5H+3N+11O;  {CH2(ONO2)COCOCH(ONO2)CH2(ONO2)                                                                         NNNKK    }
+  G2N504I = 5C+5H+2N+10O;  {CH2(ONO2)COCOCH(ONO2)CH2(OO.)                                                                          2.NNK    }
+  GHN505S = 5C+6H+2N+10O;  {CH2(ONO2)COCOCH(ONO2)CH2(OOH)                                                                          HNNKK    }
+  GNN5031 = 5C+4H+2N+9O;   {CH2(ONO2)COCOCH(ONO2)CHO                                                                               NNDKK    }
+  G3N5021 = 5C+3H+2N+11O;  {CH2(ONO2)COCOCH(ONO2)CO(OO.)                                                                           3.NNK    }
+  GGN502M = 5C+4H+2N+11O;  {CH2(ONO2)COCOCH(ONO2)CO(OOH)                                                                           GNNKK    }
+  GPN502c = 5C+3H+3N+13O;  {CH2(ONO2)COCOCH(ONO2)CO(OONO2)                                                                         PNNKK    }
+  G2N503s = 5C+5H+2N+10O;  {CH2(ONO2)COCOCH(OO.)CH2(ONO2)                                                                          2.NNK    }
+  G2G502E = 5C+4H+N+10O;   {CH2(ONO2)COCOCH(OO.)CO(OOH)                                                                            2.GNK    }
+  G2P502g = 5C+3H+2N+12O;  {CH2(ONO2)COCOCH(OO.)CO(OONO2)                                                                          2.PNK    }
+  G1H508h = 5C+6H+N+8O;    {CH2(ONO2)COCOCH(OOH)CH2(O.)                                                                            1.HNK    }
+  GHN5051 = 5C+6H+2N+10O;  {CH2(ONO2)COCOCH(OOH)CH2(ONO2)                                                                          HNNKK    }
+  GHN506F = 5C+5H+N+8O;    {CH2(ONO2)COCOCH(OOH)CHO                                                                                HNDKK    }
+  G3H503b = 5C+4H+N+10O;   {CH2(ONO2)COCOCH(OOH)CO(OO.)                                                                            3.HNK    }
+  GGH503c = 5C+5H+N+10O;   {CH2(ONO2)COCOCH(OOH)CO(OOH)                                                                            GHNKK    }
+  GPH503c = 5C+4H+2N+12O;  {CH2(ONO2)COCOCH(OOH)CO(OONO2)                                                                          PHNKK    }
+  G1N4015 = 4C+4H+N+6O;    {CH2(ONO2)COCOCH2(O.)                                                                                   1.NKK    }
+  GNN400Y = 4C+4H+2N+8O;   {CH2(ONO2)COCOCH2(ONO2)                                                                                 NNKK     }
+  G2N400u = 4C+4H+N+7O;    {CH2(ONO2)COCOCH2(OO.)                                                                                  2.NKK    }
+  GHN4019 = 4C+5H+N+7O;    {CH2(ONO2)COCOCH2(OOH)                                                                                  HNKK     }
+  G1N502v = 5C+6H+N+6O;    {CH2(ONO2)COCOCH2CH2(O.)                                                                                1.NKK    }
+  G2N502e = 5C+6H+N+7O;    {CH2(ONO2)COCOCH2CH2(OO.)                                                                               2.NKK    }
+  GHN503K = 5C+7H+N+7O;    {CH2(ONO2)COCOCH2CH2(OOH)                                                                               HNKK     }
+  GND500k = 5C+5H+N+6O;    {CH2(ONO2)COCOCH2CHO                                                                                    NDKK     }
+  G3N5011 = 5C+4H+N+8O;    {CH2(ONO2)COCOCH2CO(OO.)                                                                                3.NKK    }
+  GGN501G = 5C+5H+N+8O;    {CH2(ONO2)COCOCH2CO(OOH)                                                                                GNKK     }
+  GPN5016 = 5C+4H+2N+10O;  {CH2(ONO2)COCOCH2CO(OONO2)                                                                              PNKK     }
+  GND400M = 4C+3H+N+6O;    {CH2(ONO2)COCOCHO                                                                                       NDKK     }
+  G3N400a = 4C+2H+N+8O;    {CH2(ONO2)COCOCO(OO.)                                                                                   3.NKK    }
+  GGN400R = 4C+3H+N+8O;    {CH2(ONO2)COCOCO(OOH)                                                                                   GNKK     }
+  GPN400X = 4C+2H+2N+10O;  {CH2(ONO2)COCOCO(OONO2)                                                                                 PNKK     }
+  G1N505C = 5C+4H+N+7O;    {CH2(ONO2)COCOCOCH2(O.)                                                                                 1.NKK    }
+  GNN502o = 5C+4H+2N+9O;   {CH2(ONO2)COCOCOCH2(ONO2)                                                                               NNKKK    }
+  G2N504P = 5C+4H+N+8O;    {CH2(ONO2)COCOCOCH2(OO.)                                                                                2.NKK    }
+  GHN505c = 5C+5H+N+8O;    {CH2(ONO2)COCOCOCH2(OOH)                                                                                HNKKK    }
+  GND501J = 5C+3H+N+7O;    {CH2(ONO2)COCOCOCHO                                                                                     NDKKK    }
+  G3N502m = 5C+2H+N+9O;    {CH2(ONO2)COCOCOCO(OO.)                                                                                 3.NKK    }
+  GGN502G = 5C+3H+N+9O;    {CH2(ONO2)COCOCOCO(OOH)                                                                                 GNKKK    }
+  GPN502e = 5C+2H+2N+11O;  {CH2(ONO2)COCOCOCO(OONO2)                                                                               PNKKK    }
+  GNU3000 = 3C+5H+N+3O;    {CH2(ONO2)CdH=CdH2                                                                                      NU       }
+  G1H50B2 = 5C+9H+6O;      {CH2(OOH)CH(O.)CH(OH)CH(OH)CHO                                                                          1.HDO    }
+  G1G507A = 5C+9H+8O;      {CH2(OOH)CH(O.)CH(OH)CH(OH)CO(OOH)                                                                      1.GHO    }
+  G1P508G = 5C+8H+N+10O;   {CH2(OOH)CH(O.)CH(OH)CH(OH)CO(OONO2)                                                                    1.PHO    }
+  G1H50Bd = 5C+8H+N+8O;    {CH2(OOH)CH(O.)CH(OH)CH(ONO2)CHO                                                                        1.HND    }
+  G1G507g = 5C+8H+N+10O;   {CH2(OOH)CH(O.)CH(OH)CH(ONO2)CO(OOH)                                                                    1.GHN    }
+  G1P509z = 5C+7H+2N+12O;  {CH2(OOH)CH(O.)CH(OH)CH(ONO2)CO(OONO2)                                                                  1.PHN    }
+  G1H50Bf = 5C+9H+7O;      {CH2(OOH)CH(O.)CH(OH)CH(OOH)CHO                                                                         1.HHD    }
+  G1G507h = 5C+9H+9O;      {CH2(OOH)CH(O.)CH(OH)CH(OOH)CO(OOH)                                                                     1.GHH    }
+  G1P50A1 = 5C+8H+N+11O;   {CH2(OOH)CH(O.)CH(OH)CH(OOH)CO(OONO2)                                                                   1.PHH    }
+  G1H508u = 5C+9H+5O;      {CH2(OOH)CH(O.)CH(OH)CH2CHO                                                                             1.HDO    }
+  G1G504w = 5C+9H+7O;      {CH2(OOH)CH(O.)CH(OH)CH2CO(OOH)                                                                         1.GHO    }
+  G1P506h = 5C+8H+N+9O;    {CH2(OOH)CH(O.)CH(OH)CH2CO(OONO2)                                                                       1.PHO    }
+  G1H400k = 4C+7H+5O;      {CH2(OOH)CH(O.)CH(OH)CHO                                                                                1.HDO    }
+  G1G401A = 4C+7H+7O;      {CH2(OOH)CH(O.)CH(OH)CO(OOH)                                                                            1.GHO    }
+  G1P400y = 4C+6H+N+9O;    {CH2(OOH)CH(O.)CH(OH)CO(OONO2)                                                                          1.PHO    }
+  G1H50B6 = 5C+7H+6O;      {CH2(OOH)CH(O.)CH(OH)COCHO                                                                              1.HDK    }
+  G1G5048 = 5C+7H+8O;      {CH2(OOH)CH(O.)CH(OH)COCO(OOH)                                                                          1.GHK    }
+  G1P505h = 5C+6H+N+10O;   {CH2(OOH)CH(O.)CH(OH)COCO(OONO2)                                                                        1.PHK    }
+  G1H50BD = 5C+8H+N+8O;    {CH2(OOH)CH(O.)CH(ONO2)CH(OH)CHO                                                                        1.HND    }
+  G1G507O = 5C+8H+N+10O;   {CH2(OOH)CH(O.)CH(ONO2)CH(OH)CO(OOH)                                                                    1.GHN    }
+  G1P508v = 5C+7H+2N+12O;  {CH2(OOH)CH(O.)CH(ONO2)CH(OH)CO(OONO2)                                                                  1.PHN    }
+  G1H50Bn = 5C+7H+2N+10O;  {CH2(OOH)CH(O.)CH(ONO2)CH(ONO2)CHO                                                                      1.HNN    }
+  G1G508D = 5C+7H+2N+12O;  {CH2(OOH)CH(O.)CH(ONO2)CH(ONO2)CO(OOH)                                                                  1.GHN    }
+  G1P508a = 5C+6H+3N+14O;  {CH2(OOH)CH(O.)CH(ONO2)CH(ONO2)CO(OONO2)                                                                1.PHN    }
+  G1H50C9 = 5C+8H+N+9O;    {CH2(OOH)CH(O.)CH(ONO2)CH(OOH)CHO                                                                       1.HHN    }
+  G1G508d = 5C+8H+N+11O;   {CH2(OOH)CH(O.)CH(ONO2)CH(OOH)CO(OOH)                                                                   1.GHH    }
+  G1P50BC = 5C+7H+2N+13O;  {CH2(OOH)CH(O.)CH(ONO2)CH(OOH)CO(OONO2)                                                                 1.PHH    }
+  G1H508i = 5C+8H+N+7O;    {CH2(OOH)CH(O.)CH(ONO2)CH2CHO                                                                           1.HND    }
+  G1G504s = 5C+8H+N+9O;    {CH2(OOH)CH(O.)CH(ONO2)CH2CO(OOH)                                                                       1.GHN    }
+  G1P5053 = 5C+7H+2N+11O;  {CH2(OOH)CH(O.)CH(ONO2)CH2CO(OONO2)                                                                     1.PHN    }
+  G1H401m = 4C+6H+N+7O;    {CH2(OOH)CH(O.)CH(ONO2)CHO                                                                              1.HND    }
+  G1G401F = 4C+6H+N+9O;    {CH2(OOH)CH(O.)CH(ONO2)CO(OOH)                                                                          1.GHN    }
+  G1P401J = 4C+5H+2N+11O;  {CH2(OOH)CH(O.)CH(ONO2)CO(OONO2)                                                                        1.PHN    }
+  G1H50C5 = 5C+6H+N+8O;    {CH2(OOH)CH(O.)CH(ONO2)COCHO                                                                            1.HND    }
+  G1G508Z = 5C+6H+N+10O;   {CH2(OOH)CH(O.)CH(ONO2)COCO(OOH)                                                                        1.GHN    }
+  G1P508g = 5C+5H+2N+12O;  {CH2(OOH)CH(O.)CH(ONO2)COCO(OONO2)                                                                      1.PHN    }
+  G1H50Ar = 5C+9H+7O;      {CH2(OOH)CH(O.)CH(OOH)CH(OH)CHO                                                                         1.HHD    }
+  G1G5076 = 5C+9H+9O;      {CH2(OOH)CH(O.)CH(OOH)CH(OH)CO(OOH)                                                                     1.GHH    }
+  G1P508E = 5C+8H+N+11O;   {CH2(OOH)CH(O.)CH(OOH)CH(OH)CO(OONO2)                                                                   1.PHH    }
+  G1H50BR = 5C+8H+N+9O;    {CH2(OOH)CH(O.)CH(OOH)CH(ONO2)CHO                                                                       1.HHN    }
+  G1G507b = 5C+8H+N+11O;   {CH2(OOH)CH(O.)CH(OOH)CH(ONO2)CO(OOH)                                                                   1.GHH    }
+  G1P509v = 5C+7H+2N+13O;  {CH2(OOH)CH(O.)CH(OOH)CH(ONO2)CO(OONO2)                                                                 1.PHH    }
+  G1H50BU = 5C+9H+8O;      {CH2(OOH)CH(O.)CH(OOH)CH(OOH)CHO                                                                        1.HHH    }
+  G1G507e = 5C+9H+10O;     {CH2(OOH)CH(O.)CH(OOH)CH(OOH)CO(OOH)                                                                    1.GHH    }
+  G1P509x = 5C+8H+N+12O;   {CH2(OOH)CH(O.)CH(OOH)CH(OOH)CO(OONO2)                                                                  1.PHH    }
+  G1H508l = 5C+9H+6O;      {CH2(OOH)CH(O.)CH(OOH)CH2CHO                                                                            1.HHD    }
+  G1G504v = 5C+9H+8O;      {CH2(OOH)CH(O.)CH(OOH)CH2CO(OOH)                                                                        1.GHH    }
+  G1P506g = 5C+8H+N+10O;   {CH2(OOH)CH(O.)CH(OOH)CH2CO(OONO2)                                                                      1.PHH    }
+  G1H400x = 4C+7H+6O;      {CH2(OOH)CH(O.)CH(OOH)CHO                                                                               1.HHD    }
+  G1G4016 = 4C+7H+8O;      {CH2(OOH)CH(O.)CH(OOH)CO(OOH)                                                                           1.GHH    }
+  G1P401U = 4C+6H+N+10O;   {CH2(OOH)CH(O.)CH(OOH)CO(OONO2)                                                                         1.PHH    }
+  G1H50BZ = 5C+7H+7O;      {CH2(OOH)CH(O.)CH(OOH)COCHO                                                                             1.HHD    }
+  G1G507G = 5C+7H+9O;      {CH2(OOH)CH(O.)CH(OOH)COCO(OOH)                                                                         1.GHH    }
+  G1P508K = 5C+6H+N+11O;   {CH2(OOH)CH(O.)CH(OOH)COCO(OONO2)                                                                       1.PHH    }
+  G1H300D = 3C+7H+5O;      {CH2(OOH)CH(O.)CH2(OOH)                                                                                 1.HH     }
+  G1H5072 = 5C+9H+5O;      {CH2(OOH)CH(O.)CH2CH(OH)CHO                                                                             1.HDO    }
+  G1G503i = 5C+9H+7O;      {CH2(OOH)CH(O.)CH2CH(OH)CO(OOH)                                                                         1.GHO    }
+  G1P504d = 5C+8H+N+9O;    {CH2(OOH)CH(O.)CH2CH(OH)CO(OONO2)                                                                       1.PHO    }
+  G1H5091 = 5C+8H+N+7O;    {CH2(OOH)CH(O.)CH2CH(ONO2)CHO                                                                           1.HND    }
+  G1G504Z = 5C+8H+N+9O;    {CH2(OOH)CH(O.)CH2CH(ONO2)CO(OOH)                                                                       1.GHN    }
+  G1P502c = 5C+7H+2N+11O;  {CH2(OOH)CH(O.)CH2CH(ONO2)CO(OONO2)                                                                     1.PHN    }
+  G1H5093 = 5C+9H+6O;      {CH2(OOH)CH(O.)CH2CH(OOH)CHO                                                                            1.HHD    }
+  G1G504z = 5C+9H+8O;      {CH2(OOH)CH(O.)CH2CH(OOH)CO(OOH)                                                                        1.GHH    }
+  G1P506j = 5C+8H+N+10O;   {CH2(OOH)CH(O.)CH2CH(OOH)CO(OONO2)                                                                      1.PHH    }
+  G1H5043 = 5C+9H+4O;      {CH2(OOH)CH(O.)CH2CH2CHO                                                                                1.HD     }
+  G1G5027 = 5C+9H+6O;      {CH2(OOH)CH(O.)CH2CH2CO(OOH)                                                                            1.GH     }
+  G1P502v = 5C+8H+N+8O;    {CH2(OOH)CH(O.)CH2CH2CO(OONO2)                                                                          1.PH     }
+  G1H400G = 4C+7H+4O;      {CH2(OOH)CH(O.)CH2CHO                                                                                   1.HD     }
+  G1G400U = 4C+7H+6O;      {CH2(OOH)CH(O.)CH2CO(OOH)                                                                               1.GH     }
+  G1P400a = 4C+6H+N+8O;    {CH2(OOH)CH(O.)CH2CO(OONO2)                                                                             1.PH     }
+  G1H5077 = 5C+7H+5O;      {CH2(OOH)CH(O.)CH2COCHO                                                                                 1.HDK    }
+  G1G503u = 5C+7H+7O;      {CH2(OOH)CH(O.)CH2COCO(OOH)                                                                             1.GHK    }
+  G1P504m = 5C+6H+N+9O;    {CH2(OOH)CH(O.)CH2COCO(OONO2)                                                                           1.PHK    }
+  G1H300C = 3C+5H+4O;      {CH2(OOH)CH(O.)CHO                                                                                      1.HD     }
+  G1G300A = 3C+5H+6O;      {CH2(OOH)CH(O.)CO(OOH)                                                                                  1.GH     }
+  G1P300C = 3C+4H+N+8O;    {CH2(OOH)CH(O.)CO(OONO2)                                                                                1.PH     }
+  G1H50Bz = 5C+7H+6O;      {CH2(OOH)CH(O.)COCH(OH)CHO                                                                              1.HDK    }
+  G1G508U = 5C+7H+8O;      {CH2(OOH)CH(O.)COCH(OH)CO(OOH)                                                                          1.GHK    }
+  G1P509M = 5C+6H+N+10O;   {CH2(OOH)CH(O.)COCH(OH)CO(OONO2)                                                                        1.PHK    }
+  G1H50Bp = 5C+6H+N+8O;    {CH2(OOH)CH(O.)COCH(ONO2)CHO                                                                            1.HND    }
+  G1G508H = 5C+6H+N+10O;   {CH2(OOH)CH(O.)COCH(ONO2)CO(OOH)                                                                        1.GHN    }
+  G1P509K = 5C+5H+2N+12O;  {CH2(OOH)CH(O.)COCH(ONO2)CO(OONO2)                                                                      1.PHN    }
+  G1H50C8 = 5C+7H+7O;      {CH2(OOH)CH(O.)COCH(OOH)CHO                                                                             1.HHD    }
+  G1G508c = 5C+7H+9O;      {CH2(OOH)CH(O.)COCH(OOH)CO(OOH)                                                                         1.GHH    }
+  G1P509L = 5C+6H+N+11O;   {CH2(OOH)CH(O.)COCH(OOH)CO(OONO2)                                                                       1.PHH    }
+  G1H508y = 5C+7H+5O;      {CH2(OOH)CH(O.)COCH2CHO                                                                                 1.HDK    }
+  G1G504y = 5C+7H+7O;      {CH2(OOH)CH(O.)COCH2CO(OOH)                                                                             1.GHK    }
+  G1P505r = 5C+6H+N+9O;    {CH2(OOH)CH(O.)COCH2CO(OONO2)                                                                           1.PHK    }
+  G1H401z = 4C+5H+5O;      {CH2(OOH)CH(O.)COCHO                                                                                    1.HDK    }
+  G1G401H = 4C+5H+7O;      {CH2(OOH)CH(O.)COCO(OOH)                                                                                1.GHK    }
+  G1P401L = 4C+4H+N+9O;    {CH2(OOH)CH(O.)COCO(OONO2)                                                                              1.PHK    }
+  G1H50CA = 5C+5H+6O;      {CH2(OOH)CH(O.)COCOCHO                                                                                  1.HDK    }
+  G1G508a = 5C+5H+8O;      {CH2(OOH)CH(O.)COCOCO(OOH)                                                                              1.GHK    }
+  G1P509N = 5C+4H+N+10O;   {CH2(OOH)CH(O.)COCOCO(OONO2)                                                                            1.PHK    }
+  G1H507f = 5C+11H+7O;     {CH2(OOH)CH(OH)CH(O.)CH(OH)CH2(OOH)                                                                     1.HHO    }
+  G1H502S = 5C+9H+6O;      {CH2(OOH)CH(OH)CH(O.)CH(OH)CHO                                                                          1.HDO    }
+  G1G503h = 5C+9H+8O;      {CH2(OOH)CH(OH)CH(O.)CH(OH)CO(OOH)                                                                      1.GHO    }
+  G1P502r = 5C+8H+N+10O;   {CH2(OOH)CH(OH)CH(O.)CH(OH)CO(OONO2)                                                                    1.PHO    }
+  G1H509p = 5C+8H+N+8O;    {CH2(OOH)CH(OH)CH(O.)CH(ONO2)CHO                                                                        1.HND    }
+  G1G5061 = 5C+8H+N+10O;   {CH2(OOH)CH(OH)CH(O.)CH(ONO2)CO(OOH)                                                                    1.GHN    }
+  G1P506R = 5C+7H+2N+12O;  {CH2(OOH)CH(OH)CH(O.)CH(ONO2)CO(OONO2)                                                                  1.PHN    }
+  G1H5074 = 5C+9H+7O;      {CH2(OOH)CH(OH)CH(O.)CH(OOH)CHO                                                                         1.HHD    }
+  G1G507C = 5C+9H+9O;      {CH2(OOH)CH(OH)CH(O.)CH(OOH)CO(OOH)                                                                     1.GHH    }
+  G1P508H = 5C+8H+N+11O;   {CH2(OOH)CH(OH)CH(O.)CH(OOH)CO(OONO2)                                                                   1.PHH    }
+  G1H4016 = 4C+9H+6O;      {CH2(OOH)CH(OH)CH(O.)CH2(OOH)                                                                           1.HHO    }
+  G1H507Y = 5C+11H+6O;     {CH2(OOH)CH(OH)CH(O.)CH2CH2(OOH)                                                                        1.HHO    }
+  G1H500O = 5C+9H+5O;      {CH2(OOH)CH(OH)CH(O.)CH2CHO                                                                             1.HDO    }
+  G1G501Q = 5C+9H+7O;      {CH2(OOH)CH(OH)CH(O.)CH2CO(OOH)                                                                         1.GHO    }
+  G1P501c = 5C+8H+N+9O;    {CH2(OOH)CH(OH)CH(O.)CH2CO(OONO2)                                                                       1.PHO    }
+  G1H4017 = 4C+7H+5O;      {CH2(OOH)CH(OH)CH(O.)CHO                                                                                1.HDO    }
+  G1G400x = 4C+7H+7O;      {CH2(OOH)CH(OH)CH(O.)CO(OOH)                                                                            1.GHO    }
+  G1P400q = 4C+6H+N+9O;    {CH2(OOH)CH(OH)CH(O.)CO(OONO2)                                                                          1.PHO    }
+  G1H50BF = 5C+9H+7O;      {CH2(OOH)CH(OH)CH(O.)COCH2(OOH)                                                                         1.HHK    }
+  G1H50C1 = 5C+7H+6O;      {CH2(OOH)CH(OH)CH(O.)COCHO                                                                              1.HDK    }
+  G1G5079 = 5C+7H+8O;      {CH2(OOH)CH(OH)CH(O.)COCO(OOH)                                                                          1.GHK    }
+  G1P506W = 5C+6H+N+10O;   {CH2(OOH)CH(OH)CH(O.)COCO(OONO2)                                                                        1.PHK    }
+  G1H50B4 = 5C+9H+6O;      {CH2(OOH)CH(OH)CH(OH)CH(O.)CHO                                                                          1.HDO    }
+  G1G507E = 5C+9H+8O;      {CH2(OOH)CH(OH)CH(OH)CH(O.)CO(OOH)                                                                      1.GHO    }
+  G1P508J = 5C+8H+N+10O;   {CH2(OOH)CH(OH)CH(OH)CH(O.)CO(OONO2)                                                                    1.PHO    }
+  GHD500f = 5C+10H+6O;     {CH2(OOH)CH(OH)CH(OH)CH(OH)CHO                                                                          HDOOO    }
+  G3H501J = 5C+9H+8O;      {CH2(OOH)CH(OH)CH(OH)CH(OH)CO(OO.)                                                                      3.HKO    }
+  GGH501a = 5C+10H+8O;     {CH2(OOH)CH(OH)CH(OH)CH(OH)CO(OOH)                                                                      GHOOO    }
+  GPH501g = 5C+9H+N+10O;   {CH2(OOH)CH(OH)CH(OH)CH(OH)CO(OONO2)                                                                    PHOOO    }
+  GHN506w = 5C+9H+N+8O;    {CH2(OOH)CH(OH)CH(OH)CH(ONO2)CHO                                                                        HNDOO    }
+  G3H505S = 5C+8H+N+10O;   {CH2(OOH)CH(OH)CH(OH)CH(ONO2)CO(OO.)                                                                    3.HNK    }
+  GGH505b = 5C+9H+N+10O;   {CH2(OOH)CH(OH)CH(OH)CH(ONO2)CO(OOH)                                                                    GHNOO    }
+  GPH505b = 5C+8H+2N+12O;  {CH2(OOH)CH(OH)CH(OH)CH(ONO2)CO(OONO2)                                                                  PHNOO    }
+  G2P5063 = 5C+8H+N+11O;   {CH2(OOH)CH(OH)CH(OH)CH(OO.)CO(OONO2)                                                                   2.PHO    }
+  GHH502c = 5C+10H+7O;     {CH2(OOH)CH(OH)CH(OH)CH(OOH)CHO                                                                         HHDOO    }
+  G3H503p = 5C+9H+9O;      {CH2(OOH)CH(OH)CH(OH)CH(OOH)CO(OO.)                                                                     3.HHK    }
+  GGH504S = 5C+10H+9O;     {CH2(OOH)CH(OH)CH(OH)CH(OOH)CO(OOH)                                                                     GHHOO    }
+  GPH504c = 5C+9H+N+11O;   {CH2(OOH)CH(OH)CH(OH)CH(OOH)CO(OONO2)                                                                   PHHOO    }
+  G1H400N = 4C+9H+5O;      {CH2(OOH)CH(OH)CH(OH)CH2(O.)                                                                            1.HOO    }
+  G2H400K = 4C+9H+6O;      {CH2(OOH)CH(OH)CH(OH)CH2(OO.)                                                                           2.HOO    }
+  GHH400I = 4C+10H+6O;     {CH2(OOH)CH(OH)CH(OH)CH2(OOH)                                                                           HHOO     }
+  GHD500B = 5C+10H+5O;     {CH2(OOH)CH(OH)CH(OH)CH2CHO                                                                             HDOO     }
+  G3H500G = 5C+9H+7O;      {CH2(OOH)CH(OH)CH(OH)CH2CO(OO.)                                                                         3.HKO    }
+  GGH500I = 5C+10H+7O;     {CH2(OOH)CH(OH)CH(OH)CH2CO(OOH)                                                                         GHOO     }
+  GPH500I = 5C+9H+N+9O;    {CH2(OOH)CH(OH)CH(OH)CH2CO(OONO2)                                                                       PHOO     }
+  GHD400E = 4C+8H+5O;      {CH2(OOH)CH(OH)CH(OH)CHO                                                                                HDOO     }
+  G3H400X = 4C+7H+7O;      {CH2(OOH)CH(OH)CH(OH)CO(OO.)                                                                            3.HKO    }
+  GGH400e = 4C+8H+7O;      {CH2(OOH)CH(OH)CH(OH)CO(OOH)                                                                            GHOO     }
+  GPH400g = 4C+7H+N+9O;    {CH2(OOH)CH(OH)CH(OH)CO(OONO2)                                                                          PHOO     }
+  G1H50Az = 5C+9H+6O;      {CH2(OOH)CH(OH)CH(OH)COCH2(O.)                                                                          1.HKO    }
+  GHD501J = 5C+8H+6O;      {CH2(OOH)CH(OH)CH(OH)COCHO                                                                              HDKOO    }
+  G3H5054 = 5C+7H+8O;      {CH2(OOH)CH(OH)CH(OH)COCO(OO.)                                                                          3.HKK    }
+  GGH504K = 5C+8H+8O;      {CH2(OOH)CH(OH)CH(OH)COCO(OOH)                                                                          GHKOO    }
+  GPH504T = 5C+7H+N+10O;   {CH2(OOH)CH(OH)CH(OH)COCO(OONO2)                                                                        PHKOO    }
+  G1H50BC = 5C+10H+N+9O;   {CH2(OOH)CH(OH)CH(ONO2)CH(O.)CH2(OOH)                                                                   1.HHN    }
+  G1H509q = 5C+8H+N+8O;    {CH2(OOH)CH(OH)CH(ONO2)CH(O.)CHO                                                                        1.HND    }
+  G1G5062 = 5C+8H+N+10O;   {CH2(OOH)CH(OH)CH(ONO2)CH(O.)CO(OOH)                                                                    1.GHN    }
+  G1P506S = 5C+7H+2N+12O;  {CH2(OOH)CH(OH)CH(ONO2)CH(O.)CO(OONO2)                                                                  1.PHN    }
+  G1H5032 = 5C+10H+N+8O;   {CH2(OOH)CH(OH)CH(ONO2)CH(OH)CH2(O.)                                                                    1.HNO    }
+  G2H501f = 5C+10H+N+9O;   {CH2(OOH)CH(OH)CH(ONO2)CH(OH)CH2(OO.)                                                                   2.HNO    }
+  GHH501c = 5C+11H+N+9O;   {CH2(OOH)CH(OH)CH(ONO2)CH(OH)CH2(OOH)                                                                   HHNOO    }
+  GHN503z = 5C+9H+N+8O;    {CH2(OOH)CH(OH)CH(ONO2)CH(OH)CHO                                                                        HNDOO    }
+  G3H501I = 5C+8H+N+10O;   {CH2(OOH)CH(OH)CH(ONO2)CH(OH)CO(OO.)                                                                    3.HNK    }
+  GGH501Z = 5C+9H+N+10O;   {CH2(OOH)CH(OH)CH(ONO2)CH(OH)CO(OOH)                                                                    GHNOO    }
+  GPH500m = 5C+8H+2N+12O;  {CH2(OOH)CH(OH)CH(ONO2)CH(OH)CO(OONO2)                                                                  PHNOO    }
+  G1H507I = 5C+9H+2N+10O;  {CH2(OOH)CH(OH)CH(ONO2)CH(ONO2)CH2(O.)                                                                  1.HNN    }
+  G2H502p = 5C+9H+2N+11O;  {CH2(OOH)CH(OH)CH(ONO2)CH(ONO2)CH2(OO.)                                                                 2.HNN    }
+  GHH502i = 5C+10H+2N+11O; {CH2(OOH)CH(OH)CH(ONO2)CH(ONO2)CH2(OOH)                                                                 HHNNO    }
+  GHN505g = 5C+8H+2N+10O;  {CH2(OOH)CH(OH)CH(ONO2)CH(ONO2)CHO                                                                      HNNDO    }
+  G3H502k = 5C+7H+2N+12O;  {CH2(OOH)CH(OH)CH(ONO2)CH(ONO2)CO(OO.)                                                                  3.HNN    }
+  GGH503L = 5C+8H+2N+12O;  {CH2(OOH)CH(OH)CH(ONO2)CH(ONO2)CO(OOH)                                                                  GHNNO    }
+  GPH502s = 5C+7H+3N+14O;  {CH2(OOH)CH(OH)CH(ONO2)CH(ONO2)CO(OONO2)                                                                PHNNO    }
+  G2H503b = 5C+8H+N+9O;    {CH2(OOH)CH(OH)CH(ONO2)CH(OO.)CHO                                                                       2.HND    }
+  G2G504o = 5C+8H+N+11O;   {CH2(OOH)CH(OH)CH(ONO2)CH(OO.)CO(OOH)                                                                   2.GHN    }
+  G2P5061 = 5C+7H+2N+13O;  {CH2(OOH)CH(OH)CH(ONO2)CH(OO.)CO(OONO2)                                                                 2.PHN    }
+  GHH502a = 5C+9H+N+9O;    {CH2(OOH)CH(OH)CH(ONO2)CH(OOH)CHO                                                                       HHNDO    }
+  G3H503n = 5C+8H+N+11O;   {CH2(OOH)CH(OH)CH(ONO2)CH(OOH)CO(OO.)                                                                   3.HHN    }
+  GGH504Q = 5C+9H+N+11O;   {CH2(OOH)CH(OH)CH(ONO2)CH(OOH)CO(OOH)                                                                   GHHNO    }
+  GPH504a = 5C+8H+2N+13O;  {CH2(OOH)CH(OH)CH(ONO2)CH(OOH)CO(OONO2)                                                                 PHHNO    }
+  G1H400L = 4C+8H+N+7O;    {CH2(OOH)CH(OH)CH(ONO2)CH2(O.)                                                                          1.HNO    }
+  G2H400I = 4C+8H+N+8O;    {CH2(OOH)CH(OH)CH(ONO2)CH2(OO.)                                                                         2.HNO    }
+  GHH400E = 4C+9H+N+8O;    {CH2(OOH)CH(OH)CH(ONO2)CH2(OOH)                                                                         HHNO     }
+  G1H502y = 5C+10H+N+7O;   {CH2(OOH)CH(OH)CH(ONO2)CH2CH2(O.)                                                                       1.HNO    }
+  G2H501e = 5C+10H+N+8O;   {CH2(OOH)CH(OH)CH(ONO2)CH2CH2(OO.)                                                                      2.HNO    }
+  GHH501b = 5C+11H+N+8O;   {CH2(OOH)CH(OH)CH(ONO2)CH2CH2(OOH)                                                                      HHNO     }
+  GHN501G = 5C+9H+N+7O;    {CH2(OOH)CH(OH)CH(ONO2)CH2CHO                                                                           HNDO     }
+  G3H500E = 5C+8H+N+9O;    {CH2(OOH)CH(OH)CH(ONO2)CH2CO(OO.)                                                                       3.HNK    }
+  GGH500G = 5C+9H+N+9O;    {CH2(OOH)CH(OH)CH(ONO2)CH2CO(OOH)                                                                       GHNO     }
+  GPH500G = 5C+8H+2N+11O;  {CH2(OOH)CH(OH)CH(ONO2)CH2CO(OONO2)                                                                     PHNO     }
+  GHN400Y = 4C+7H+N+7O;    {CH2(OOH)CH(OH)CH(ONO2)CHO                                                                              HNDO     }
+  G3H400U = 4C+6H+N+9O;    {CH2(OOH)CH(OH)CH(ONO2)CO(OO.)                                                                          3.HNK    }
+  GGH400c = 4C+7H+N+9O;    {CH2(OOH)CH(OH)CH(ONO2)CO(OOH)                                                                          GHNO     }
+  GPH400I = 4C+6H+2N+11O;  {CH2(OOH)CH(OH)CH(ONO2)CO(OONO2)                                                                        PHNO     }
+  G1H509w = 5C+8H+N+8O;    {CH2(OOH)CH(OH)CH(ONO2)COCH2(O.)                                                                        1.HNK    }
+  G2H503l = 5C+8H+N+9O;    {CH2(OOH)CH(OH)CH(ONO2)COCH2(OO.)                                                                       2.HNK    }
+  GHH502k = 5C+9H+N+9O;    {CH2(OOH)CH(OH)CH(ONO2)COCH2(OOH)                                                                       HHNKO    }
+  GHN506t = 5C+7H+N+8O;    {CH2(OOH)CH(OH)CH(ONO2)COCHO                                                                            HNDKO    }
+  G3H504H = 5C+6H+N+10O;   {CH2(OOH)CH(OH)CH(ONO2)COCO(OO.)                                                                        3.HNK    }
+  GGH504p = 5C+7H+N+10O;   {CH2(OOH)CH(OH)CH(ONO2)COCO(OOH)                                                                        GHNKO    }
+  GPH502t = 5C+6H+2N+12O;  {CH2(OOH)CH(OH)CH(ONO2)COCO(OONO2)                                                                      PHNKO    }
+  G2H501L = 5C+9H+7O;      {CH2(OOH)CH(OH)CH(OO.)CH(OH)CHO                                                                         2.HDO    }
+  G2H503r = 5C+8H+N+9O;    {CH2(OOH)CH(OH)CH(OO.)CH(ONO2)CHO                                                                       2.HND    }
+  G2G505G = 5C+8H+N+11O;   {CH2(OOH)CH(OH)CH(OO.)CH(ONO2)CO(OOH)                                                                   2.GHN    }
+  G2P506u = 5C+7H+2N+13O;  {CH2(OOH)CH(OH)CH(OO.)CH(ONO2)CO(OONO2)                                                                 2.PHN    }
+  G2H502f = 5C+9H+8O;      {CH2(OOH)CH(OH)CH(OO.)CH(OOH)CHO                                                                        2.HHD    }
+  G2H500L = 5C+9H+6O;      {CH2(OOH)CH(OH)CH(OO.)CH2CHO                                                                            2.HDO    }
+  G2G400n = 4C+7H+8O;      {CH2(OOH)CH(OH)CH(OO.)CO(OOH)                                                                           2.GHO    }
+  G2P400z = 4C+6H+N+10O;   {CH2(OOH)CH(OH)CH(OO.)CO(OONO2)                                                                         2.PHO    }
+  G1H50B3 = 5C+9H+7O;      {CH2(OOH)CH(OH)CH(OOH)CH(O.)CHO                                                                         1.HHD    }
+  G1G507D = 5C+9H+9O;      {CH2(OOH)CH(OH)CH(OOH)CH(O.)CO(OOH)                                                                     1.GHH    }
+  G1P508I = 5C+8H+N+11O;   {CH2(OOH)CH(OH)CH(OOH)CH(O.)CO(OONO2)                                                                   1.PHH    }
+  GHH501I = 5C+10H+7O;     {CH2(OOH)CH(OH)CH(OOH)CH(OH)CHO                                                                         HHDOO    }
+  G3H501G = 5C+9H+9O;      {CH2(OOH)CH(OH)CH(OOH)CH(OH)CO(OO.)                                                                     3.HHK    }
+  GGH501X = 5C+10H+9O;     {CH2(OOH)CH(OH)CH(OOH)CH(OH)CO(OOH)                                                                     GHHOO    }
+  GPH501e = 5C+9H+N+11O;   {CH2(OOH)CH(OH)CH(OOH)CH(OH)CO(OONO2)                                                                   PHHOO    }
+  GHH502o = 5C+9H+N+9O;    {CH2(OOH)CH(OH)CH(OOH)CH(ONO2)CHO                                                                       HHNDO    }
+  G3H504R = 5C+8H+N+11O;   {CH2(OOH)CH(OH)CH(OOH)CH(ONO2)CO(OO.)                                                                   3.HHN    }
+  GGH504t = 5C+9H+N+11O;   {CH2(OOH)CH(OH)CH(OOH)CH(ONO2)CO(OOH)                                                                   GHHNO    }
+  GPH505A = 5C+8H+2N+13O;  {CH2(OOH)CH(OH)CH(OOH)CH(ONO2)CO(OONO2)                                                                 PHHNO    }
+  GHH502b = 5C+10H+8O;     {CH2(OOH)CH(OH)CH(OOH)CH(OOH)CHO                                                                        HHHDO    }
+  G3H503o = 5C+9H+10O;     {CH2(OOH)CH(OH)CH(OOH)CH(OOH)CO(OO.)                                                                    3.HHH    }
+  GGH504R = 5C+10H+10O;    {CH2(OOH)CH(OH)CH(OOH)CH(OOH)CO(OOH)                                                                    GHHHO    }
+  GPH504b = 5C+9H+N+12O;   {CH2(OOH)CH(OH)CH(OOH)CH(OOH)CO(OONO2)                                                                  PHHHO    }
+  G1H400M = 4C+9H+6O;      {CH2(OOH)CH(OH)CH(OOH)CH2(O.)                                                                           1.HHO    }
+  G2H400J = 4C+9H+7O;      {CH2(OOH)CH(OH)CH(OOH)CH2(OO.)                                                                          2.HHO    }
+  GHH400G = 4C+10H+7O;     {CH2(OOH)CH(OH)CH(OOH)CH2(OOH)                                                                          HHHO     }
+  GHH500J = 5C+10H+6O;     {CH2(OOH)CH(OH)CH(OOH)CH2CHO                                                                            HHDO     }
+  G3H500F = 5C+9H+8O;      {CH2(OOH)CH(OH)CH(OOH)CH2CO(OO.)                                                                        3.HHK    }
+  GGH500H = 5C+10H+8O;     {CH2(OOH)CH(OH)CH(OOH)CH2CO(OOH)                                                                        GHHO     }
+  GPH500H = 5C+9H+N+10O;   {CH2(OOH)CH(OH)CH(OOH)CH2CO(OONO2)                                                                      PHHO     }
+  GHH400H = 4C+8H+6O;      {CH2(OOH)CH(OH)CH(OOH)CHO                                                                               HHDO     }
+  G3H400W = 4C+7H+8O;      {CH2(OOH)CH(OH)CH(OOH)CO(OO.)                                                                           3.HHK    }
+  GGH400d = 4C+8H+8O;      {CH2(OOH)CH(OH)CH(OOH)CO(OOH)                                                                           GHHO     }
+  GPH400f = 4C+7H+N+10O;   {CH2(OOH)CH(OH)CH(OOH)CO(OONO2)                                                                         PHHO     }
+  GHH5035 = 5C+8H+7O;      {CH2(OOH)CH(OH)CH(OOH)COCHO                                                                             HHDKO    }
+  G3H5053 = 5C+7H+9O;      {CH2(OOH)CH(OH)CH(OOH)COCO(OO.)                                                                         3.HHK    }
+  GGH504G = 5C+8H+9O;      {CH2(OOH)CH(OH)CH(OOH)COCO(OOH)                                                                         GHHKO    }
+  GPH504Q = 5C+7H+N+11O;   {CH2(OOH)CH(OH)CH(OOH)COCO(OONO2)                                                                       PHHKO    }
+  G1H3007 = 3C+7H+4O;      {CH2(OOH)CH(OH)CH2(O.)                                                                                  1.HO     }
+  G2H3009 = 3C+7H+5O;      {CH2(OOH)CH(OH)CH2(OO.)                                                                                 2.HO     }
+  GHH3007 = 3C+8H+5O;      {CH2(OOH)CH(OH)CH2(OOH)                                                                                 HHO      }
+  G1H502o = 5C+11H+6O;     {CH2(OOH)CH(OH)CH2CH(O.)CH2(OOH)                                                                        1.HHO    }
+  G1H502q = 5C+9H+5O;      {CH2(OOH)CH(OH)CH2CH(O.)CHO                                                                             1.HDO    }
+  G1G501z = 5C+9H+7O;      {CH2(OOH)CH(OH)CH2CH(O.)CO(OOH)                                                                         1.GHO    }
+  G1P502j = 5C+8H+N+9O;    {CH2(OOH)CH(OH)CH2CH(O.)CO(OONO2)                                                                       1.PHO    }
+  G1H500Z = 5C+11H+5O;     {CH2(OOH)CH(OH)CH2CH(OH)CH2(O.)                                                                         1.HOO    }
+  G2H500R = 5C+11H+6O;     {CH2(OOH)CH(OH)CH2CH(OH)CH2(OO.)                                                                        2.HOO    }
+  GHH500P = 5C+12H+6O;     {CH2(OOH)CH(OH)CH2CH(OH)CH2(OOH)                                                                        HHOO     }
+  GHD5007 = 5C+10H+5O;     {CH2(OOH)CH(OH)CH2CH(OH)CHO                                                                             HDOO     }
+  G3H5009 = 5C+9H+7O;      {CH2(OOH)CH(OH)CH2CH(OH)CO(OO.)                                                                         3.HKO    }
+  GGH500B = 5C+10H+7O;     {CH2(OOH)CH(OH)CH2CH(OH)CO(OOH)                                                                         GHOO     }
+  GPH500B = 5C+9H+N+9O;    {CH2(OOH)CH(OH)CH2CH(OH)CO(OONO2)                                                                       PHOO     }
+  G1H500S = 5C+10H+N+7O;   {CH2(OOH)CH(OH)CH2CH(ONO2)CH2(O.)                                                                       1.HNO    }
+  G2H500O = 5C+10H+N+8O;   {CH2(OOH)CH(OH)CH2CH(ONO2)CH2(OO.)                                                                      2.HNO    }
+  GHH500M = 5C+11H+N+8O;   {CH2(OOH)CH(OH)CH2CH(ONO2)CH2(OOH)                                                                      HHNO     }
+  GHN501Q = 5C+9H+N+7O;    {CH2(OOH)CH(OH)CH2CH(ONO2)CHO                                                                           HNDO     }
+  G3H500J = 5C+8H+N+9O;    {CH2(OOH)CH(OH)CH2CH(ONO2)CO(OO.)                                                                       3.HNK    }
+  GGH500e = 5C+9H+N+9O;    {CH2(OOH)CH(OH)CH2CH(ONO2)CO(OOH)                                                                       GHNO     }
+  GPH500j = 5C+8H+2N+11O;  {CH2(OOH)CH(OH)CH2CH(ONO2)CO(OONO2)                                                                     PHNO     }
+  G2G502m = 5C+9H+8O;      {CH2(OOH)CH(OH)CH2CH(OO.)CO(OOH)                                                                        2.GHO    }
+  G2P503m = 5C+8H+N+10O;   {CH2(OOH)CH(OH)CH2CH(OO.)CO(OONO2)                                                                      2.PHO    }
+  G1H502X = 5C+11H+6O;     {CH2(OOH)CH(OH)CH2CH(OOH)CH2(O.)                                                                        1.HHO    }
+  G2H501O = 5C+11H+7O;     {CH2(OOH)CH(OH)CH2CH(OOH)CH2(OO.)                                                                       2.HHO    }
+  GHH501M = 5C+12H+7O;     {CH2(OOH)CH(OH)CH2CH(OOH)CH2(OOH)                                                                       HHHO     }
+  GHH501O = 5C+10H+6O;     {CH2(OOH)CH(OH)CH2CH(OOH)CHO                                                                            HHDO     }
+  G3H501P = 5C+9H+8O;      {CH2(OOH)CH(OH)CH2CH(OOH)CO(OO.)                                                                        3.HHK    }
+  GGH501k = 5C+10H+8O;     {CH2(OOH)CH(OH)CH2CH(OOH)CO(OOH)                                                                        GHHO     }
+  GPH501q = 5C+9H+N+10O;   {CH2(OOH)CH(OH)CH2CH(OOH)CO(OONO2)                                                                      PHHO     }
+  G1H4000 = 4C+9H+4O;      {CH2(OOH)CH(OH)CH2CH2(O.)                                                                               1.HO     }
+  G2H4000 = 4C+9H+5O;      {CH2(OOH)CH(OH)CH2CH2(OO.)                                                                              2.HO     }
+  G1H5002 = 5C+11H+4O;     {CH2(OOH)CH(OH)CH2CH2CH2(O.)                                                                            1.HO     }
+  G2H5002 = 5C+11H+5O;     {CH2(OOH)CH(OH)CH2CH2CH2(OO.)                                                                           2.HO     }
+  GHD5000 = 5C+10H+4O;     {CH2(OOH)CH(OH)CH2CH2CHO                                                                                HDO      }
+  G3H5000 = 5C+9H+6O;      {CH2(OOH)CH(OH)CH2CH2CO(OO.)                                                                            3.HKO    }
+  GGH5000 = 5C+10H+6O;     {CH2(OOH)CH(OH)CH2CH2CO(OOH)                                                                            GHO      }
+  GPH5000 = 5C+9H+N+8O;    {CH2(OOH)CH(OH)CH2CH2CO(OONO2)                                                                          PHO      }
+  GHD4003 = 4C+8H+4O;      {CH2(OOH)CH(OH)CH2CHO                                                                                   HDO      }
+  G3H4006 = 4C+7H+6O;      {CH2(OOH)CH(OH)CH2CO(OO.)                                                                               3.HKO    }
+  GGH4009 = 4C+8H+6O;      {CH2(OOH)CH(OH)CH2CO(OOH)                                                                               GHO      }
+  GPH4009 = 4C+7H+N+8O;    {CH2(OOH)CH(OH)CH2CO(OONO2)                                                                             PHO      }
+  G1H506t = 5C+9H+5O;      {CH2(OOH)CH(OH)CH2COCH2(O.)                                                                             1.HKO    }
+  G2H502l = 5C+9H+6O;      {CH2(OOH)CH(OH)CH2COCH2(OO.)                                                                            2.HKO    }
+  GHH501S = 5C+10H+6O;     {CH2(OOH)CH(OH)CH2COCH2(OOH)                                                                            HHKO     }
+  GHD500e = 5C+8H+5O;      {CH2(OOH)CH(OH)CH2COCHO                                                                                 HDKO     }
+  G3H503g = 5C+7H+7O;      {CH2(OOH)CH(OH)CH2COCO(OO.)                                                                             3.HKK    }
+  GGH501c = 5C+8H+7O;      {CH2(OOH)CH(OH)CH2COCO(OOH)                                                                             GHKO     }
+  GPH501i = 5C+7H+N+9O;    {CH2(OOH)CH(OH)CH2COCO(OONO2)                                                                           PHKO     }
+  GHD3005 = 3C+6H+4O;      {CH2(OOH)CH(OH)CHO                                                                                      HDO      }
+  G3H3003 = 3C+5H+6O;      {CH2(OOH)CH(OH)CO(OO.)                                                                                  3.HKO    }
+  GGH3004 = 3C+6H+6O;      {CH2(OOH)CH(OH)CO(OOH)                                                                                  GHO      }
+  GPH3004 = 3C+5H+N+8O;    {CH2(OOH)CH(OH)CO(OONO2)                                                                                PHO      }
+  G1H50B5 = 5C+7H+6O;      {CH2(OOH)CH(OH)COCH(O.)CHO                                                                              1.HDK    }
+  G1G504i = 5C+7H+8O;      {CH2(OOH)CH(OH)COCH(O.)CO(OOH)                                                                          1.GHK    }
+  G1P506b = 5C+6H+N+10O;   {CH2(OOH)CH(OH)COCH(O.)CO(OONO2)                                                                        1.PHK    }
+  G1H507q = 5C+9H+6O;      {CH2(OOH)CH(OH)COCH(OH)CH2(O.)                                                                          1.HKO    }
+  GHD500g = 5C+8H+6O;      {CH2(OOH)CH(OH)COCH(OH)CHO                                                                              HDKOO    }
+  G3H501K = 5C+7H+8O;      {CH2(OOH)CH(OH)COCH(OH)CO(OO.)                                                                          3.HKK    }
+  GGH501b = 5C+8H+8O;      {CH2(OOH)CH(OH)COCH(OH)CO(OOH)                                                                          GHKOO    }
+  GPH501h = 5C+7H+N+10O;   {CH2(OOH)CH(OH)COCH(OH)CO(OONO2)                                                                        PHKOO    }
+  G1H50AH = 5C+8H+N+8O;    {CH2(OOH)CH(OH)COCH(ONO2)CH2(O.)                                                                        1.HNK    }
+  GHN506p = 5C+7H+N+8O;    {CH2(OOH)CH(OH)COCH(ONO2)CHO                                                                            HNDKO    }
+  G3H504I = 5C+6H+N+10O;   {CH2(OOH)CH(OH)COCH(ONO2)CO(OO.)                                                                        3.HNK    }
+  GGH502Y = 5C+7H+N+10O;   {CH2(OOH)CH(OH)COCH(ONO2)CO(OOH)                                                                        GHNKO    }
+  GPH502w = 5C+6H+2N+12O;  {CH2(OOH)CH(OH)COCH(ONO2)CO(OONO2)                                                                      PHNKO    }
+  GHH502d = 5C+8H+7O;      {CH2(OOH)CH(OH)COCH(OOH)CHO                                                                             HHDKO    }
+  G3H503q = 5C+7H+9O;      {CH2(OOH)CH(OH)COCH(OOH)CO(OO.)                                                                         3.HHK    }
+  GGH504T = 5C+8H+9O;      {CH2(OOH)CH(OH)COCH(OOH)CO(OOH)                                                                         GHHKO    }
+  GPH504d = 5C+7H+N+11O;   {CH2(OOH)CH(OH)COCH(OOH)CO(OONO2)                                                                       PHHKO    }
+  G1H400O = 4C+7H+5O;      {CH2(OOH)CH(OH)COCH2(O.)                                                                                1.HKO    }
+  G2H400L = 4C+7H+6O;      {CH2(OOH)CH(OH)COCH2(OO.)                                                                               2.HKO    }
+  GHH400J = 4C+8H+6O;      {CH2(OOH)CH(OH)COCH2(OOH)                                                                               HHKO     }
+  G1H503P = 5C+9H+5O;      {CH2(OOH)CH(OH)COCH2CH2(O.)                                                                             1.HKO    }
+  GHD500C = 5C+8H+5O;      {CH2(OOH)CH(OH)COCH2CHO                                                                                 HDKO     }
+  G3H500H = 5C+7H+7O;      {CH2(OOH)CH(OH)COCH2CO(OO.)                                                                             3.HKK    }
+  GGH500J = 5C+8H+7O;      {CH2(OOH)CH(OH)COCH2CO(OOH)                                                                             GHKO     }
+  GPH500J = 5C+7H+N+9O;    {CH2(OOH)CH(OH)COCH2CO(OONO2)                                                                           PHKO     }
+  GHD400F = 4C+6H+5O;      {CH2(OOH)CH(OH)COCHO                                                                                    HDKO     }
+  G3H400Y = 4C+5H+7O;      {CH2(OOH)CH(OH)COCO(OO.)                                                                                3.HKK    }
+  GGH400F = 4C+6H+7O;      {CH2(OOH)CH(OH)COCO(OOH)                                                                                GHKO     }
+  GPH400J = 4C+5H+N+9O;    {CH2(OOH)CH(OH)COCO(OONO2)                                                                              PHKO     }
+  G1H50AJ = 5C+7H+6O;      {CH2(OOH)CH(OH)COCOCH2(O.)                                                                              1.HKK    }
+  GHD501T = 5C+6H+6O;      {CH2(OOH)CH(OH)COCOCHO                                                                                  HDKKO    }
+  G3H504J = 5C+5H+8O;      {CH2(OOH)CH(OH)COCOCO(OO.)                                                                              3.HKK    }
+  GGH502Z = 5C+6H+8O;      {CH2(OOH)CH(OH)COCOCO(OOH)                                                                              GHKKO    }
+  GPH502x = 5C+5H+N+10O;   {CH2(OOH)CH(OH)COCOCO(OONO2)                                                                            PHKKO    }
+  G1H50BB = 5C+10H+N+9O;   {CH2(OOH)CH(ONO2)CH(O.)CH(OH)CH2(OOH)                                                                   1.HHN    }
+  G1H50As = 5C+8H+N+8O;    {CH2(OOH)CH(ONO2)CH(O.)CH(OH)CHO                                                                        1.HND    }
+  G1G5077 = 5C+8H+N+10O;   {CH2(OOH)CH(ONO2)CH(O.)CH(OH)CO(OOH)                                                                    1.GHN    }
+  G1P508F = 5C+7H+2N+12O;  {CH2(OOH)CH(ONO2)CH(O.)CH(OH)CO(OONO2)                                                                  1.PHN    }
+  G1H50BS = 5C+7H+2N+10O;  {CH2(OOH)CH(ONO2)CH(O.)CH(ONO2)CHO                                                                      1.HNN    }
+  G1G507c = 5C+7H+2N+12O;  {CH2(OOH)CH(ONO2)CH(O.)CH(ONO2)CO(OOH)                                                                  1.GHN    }
+  G1P508b = 5C+6H+3N+14O;  {CH2(OOH)CH(ONO2)CH(O.)CH(ONO2)CO(OONO2)                                                                1.PHN    }
+  G1H50BW = 5C+8H+N+9O;    {CH2(OOH)CH(ONO2)CH(O.)CH(OOH)CHO                                                                       1.HHN    }
+  G1G507f = 5C+8H+N+11O;   {CH2(OOH)CH(ONO2)CH(O.)CH(OOH)CO(OOH)                                                                   1.GHH    }
+  G1P509y = 5C+7H+2N+13O;  {CH2(OOH)CH(ONO2)CH(O.)CH(OOH)CO(OONO2)                                                                 1.PHH    }
+  G1H401x = 4C+8H+N+8O;    {CH2(OOH)CH(ONO2)CH(O.)CH2(OOH)                                                                         1.HHN    }
+  G1H508j = 5C+8H+N+7O;    {CH2(OOH)CH(ONO2)CH(O.)CH2CHO                                                                           1.HND    }
+  G1G504t = 5C+8H+N+9O;    {CH2(OOH)CH(ONO2)CH(O.)CH2CO(OOH)                                                                       1.GHN    }
+  G1P5054 = 5C+7H+2N+11O;  {CH2(OOH)CH(ONO2)CH(O.)CH2CO(OONO2)                                                                     1.PHN    }
+  G1H401c = 4C+6H+N+7O;    {CH2(OOH)CH(ONO2)CH(O.)CHO                                                                              1.HND    }
+  G1G4017 = 4C+6H+N+9O;    {CH2(OOH)CH(ONO2)CH(O.)CO(OOH)                                                                          1.GHN    }
+  G1P401K = 4C+5H+2N+11O;  {CH2(OOH)CH(ONO2)CH(O.)CO(OONO2)                                                                        1.PHN    }
+  G1H50C2 = 5C+8H+N+9O;    {CH2(OOH)CH(ONO2)CH(O.)COCH2(OOH)                                                                       1.HHN    }
+  G1H50Ba = 5C+6H+N+8O;    {CH2(OOH)CH(ONO2)CH(O.)COCHO                                                                            1.HND    }
+  G1G508W = 5C+6H+N+10O;   {CH2(OOH)CH(ONO2)CH(O.)COCO(OOH)                                                                        1.GHN    }
+  G1P508h = 5C+5H+2N+12O;  {CH2(OOH)CH(ONO2)CH(O.)COCO(OONO2)                                                                      1.PHN    }
+  G1H50Be = 5C+8H+N+8O;    {CH2(OOH)CH(ONO2)CH(OH)CH(O.)CHO                                                                        1.HND    }
+  G1G504x = 5C+8H+N+10O;   {CH2(OOH)CH(ONO2)CH(OH)CH(O.)CO(OOH)                                                                    1.GHN    }
+  G1P506i = 5C+7H+2N+12O;  {CH2(OOH)CH(ONO2)CH(OH)CH(O.)CO(OONO2)                                                                  1.PHN    }
+  GHN506L = 5C+9H+N+8O;    {CH2(OOH)CH(ONO2)CH(OH)CH(OH)CHO                                                                        HNDOO    }
+  G3H503e = 5C+8H+N+10O;   {CH2(OOH)CH(ONO2)CH(OH)CH(OH)CO(OO.)                                                                    3.HNK    }
+  GGH504H = 5C+9H+N+10O;   {CH2(OOH)CH(ONO2)CH(OH)CH(OH)CO(OOH)                                                                    GHNOO    }
+  GPH504R = 5C+8H+2N+12O;  {CH2(OOH)CH(ONO2)CH(OH)CH(OH)CO(OONO2)                                                                  PHNOO    }
+  GHN506d = 5C+8H+2N+10O;  {CH2(OOH)CH(ONO2)CH(OH)CH(ONO2)CHO                                                                      HNNDO    }
+  G3H504T = 5C+7H+2N+12O;  {CH2(OOH)CH(ONO2)CH(OH)CH(ONO2)CO(OO.)                                                                  3.HNN    }
+  GGH504v = 5C+8H+2N+12O;  {CH2(OOH)CH(ONO2)CH(OH)CH(ONO2)CO(OOH)                                                                  GHNNO    }
+  GPH505C = 5C+7H+3N+14O;  {CH2(OOH)CH(ONO2)CH(OH)CH(ONO2)CO(OONO2)                                                                PHNNO    }
+  G2H5044 = 5C+8H+N+9O;    {CH2(OOH)CH(ONO2)CH(OH)CH(OO.)CHO                                                                       2.HND    }
+  G2G503W = 5C+8H+N+11O;   {CH2(OOH)CH(ONO2)CH(OH)CH(OO.)CO(OOH)                                                                   2.GHN    }
+  G2P504r = 5C+7H+2N+13O;  {CH2(OOH)CH(ONO2)CH(OH)CH(OO.)CO(OONO2)                                                                 2.PHN    }
+  GHH502v = 5C+9H+N+9O;    {CH2(OOH)CH(ONO2)CH(OH)CH(OOH)CHO                                                                       HHNDO    }
+  G3H504U = 5C+8H+N+11O;   {CH2(OOH)CH(ONO2)CH(OH)CH(OOH)CO(OO.)                                                                   3.HHN    }
+  GGH504w = 5C+9H+N+11O;   {CH2(OOH)CH(ONO2)CH(OH)CH(OOH)CO(OOH)                                                                   GHHNO    }
+  GPH505D = 5C+8H+2N+13O;  {CH2(OOH)CH(ONO2)CH(OH)CH(OOH)CO(OONO2)                                                                 PHHNO    }
+  G1H400p = 4C+8H+N+7O;    {CH2(OOH)CH(ONO2)CH(OH)CH2(O.)                                                                          1.HNO    }
+  G2H400t = 4C+8H+N+8O;    {CH2(OOH)CH(ONO2)CH(OH)CH2(OO.)                                                                         2.HNO    }
+  GHN5055 = 5C+9H+N+7O;    {CH2(OOH)CH(ONO2)CH(OH)CH2CHO                                                                           HNDO     }
+  G3H5029 = 5C+8H+N+9O;    {CH2(OOH)CH(ONO2)CH(OH)CH2CO(OO.)                                                                       3.HNK    }
+  GGH502i = 5C+9H+N+9O;    {CH2(OOH)CH(ONO2)CH(OH)CH2CO(OOH)                                                                       GHNO     }
+  GPH5033 = 5C+8H+2N+11O;  {CH2(OOH)CH(ONO2)CH(OH)CH2CO(OONO2)                                                                     PHNO     }
+  GHN400x = 4C+7H+N+7O;    {CH2(OOH)CH(ONO2)CH(OH)CHO                                                                              HNDO     }
+  G3H400f = 4C+6H+N+9O;    {CH2(OOH)CH(ONO2)CH(OH)CO(OO.)                                                                          3.HNK    }
+  GGH400n = 4C+7H+N+9O;    {CH2(OOH)CH(ONO2)CH(OH)CO(OOH)                                                                          GHNO     }
+  GPH400h = 4C+6H+2N+11O;  {CH2(OOH)CH(ONO2)CH(OH)CO(OONO2)                                                                        PHNO     }
+  G1H50Ax = 5C+8H+N+8O;    {CH2(OOH)CH(ONO2)CH(OH)COCH2(O.)                                                                        1.HNK    }
+  GHN506e = 5C+7H+N+8O;    {CH2(OOH)CH(ONO2)CH(OH)COCHO                                                                            HNDKO    }
+  G3H505I = 5C+6H+N+10O;   {CH2(OOH)CH(ONO2)CH(OH)COCO(OO.)                                                                        3.HNK    }
+  GGH504f = 5C+7H+N+10O;   {CH2(OOH)CH(ONO2)CH(OH)COCO(OOH)                                                                        GHNKO    }
+  GPH504v = 5C+6H+2N+12O;  {CH2(OOH)CH(ONO2)CH(OH)COCO(OONO2)                                                                      PHNKO    }
+  G1H50Bo = 5C+7H+2N+10O;  {CH2(OOH)CH(ONO2)CH(ONO2)CH(O.)CHO                                                                      1.HNN    }
+  G1G508E = 5C+7H+2N+12O;  {CH2(OOH)CH(ONO2)CH(ONO2)CH(O.)CO(OOH)                                                                  1.GHN    }
+  G1P508c = 5C+6H+3N+14O;  {CH2(OOH)CH(ONO2)CH(ONO2)CH(O.)CO(OONO2)                                                                1.PHN    }
+  G1H504Y = 5C+9H+2N+10O;  {CH2(OOH)CH(ONO2)CH(ONO2)CH(OH)CH2(O.)                                                                  1.HNN    }
+  G2H503i = 5C+9H+2N+11O;  {CH2(OOH)CH(ONO2)CH(ONO2)CH(OH)CH2(OO.)                                                                 2.HNN    }
+  GHN506s = 5C+8H+2N+10O;  {CH2(OOH)CH(ONO2)CH(ONO2)CH(OH)CHO                                                                      HNNDO    }
+  G3H504z = 5C+7H+2N+12O;  {CH2(OOH)CH(ONO2)CH(ONO2)CH(OH)CO(OO.)                                                                  3.HNN    }
+  GGH505P = 5C+8H+2N+12O;  {CH2(OOH)CH(ONO2)CH(ONO2)CH(OH)CO(OOH)                                                                  GHNNO    }
+  GPH505Y = 5C+7H+3N+14O;  {CH2(OOH)CH(ONO2)CH(ONO2)CH(OH)CO(OONO2)                                                                PHNNO    }
+  G1H509D = 5C+8H+3N+12O;  {CH2(OOH)CH(ONO2)CH(ONO2)CH(ONO2)CH2(O.)                                                                1.HNN    }
+  GHN506k = 5C+7H+3N+12O;  {CH2(OOH)CH(ONO2)CH(ONO2)CH(ONO2)CHO                                                                    HNNND    }
+  G3H504o = 5C+6H+3N+14O;  {CH2(OOH)CH(ONO2)CH(ONO2)CH(ONO2)CO(OO.)                                                                3.HNN    }
+  GGH505C = 5C+7H+3N+14O;  {CH2(OOH)CH(ONO2)CH(ONO2)CH(ONO2)CO(OOH)                                                                GHNNN    }
+  GPH504m = 5C+6H+4N+16O;  {CH2(OOH)CH(ONO2)CH(ONO2)CH(ONO2)CO(OONO2)                                                              PHNNN    }
+  G2H504H = 5C+7H+2N+11O;  {CH2(OOH)CH(ONO2)CH(ONO2)CH(OO.)CHO                                                                     2.HNN    }
+  G2G506B = 5C+7H+2N+13O;  {CH2(OOH)CH(ONO2)CH(ONO2)CH(OO.)CO(OOH)                                                                 2.GHN    }
+  G2P5088 = 5C+6H+3N+15O;  {CH2(OOH)CH(ONO2)CH(ONO2)CH(OO.)CO(OONO2)                                                               2.PHN    }
+  GHH503E = 5C+8H+2N+11O;  {CH2(OOH)CH(ONO2)CH(ONO2)CH(OOH)CHO                                                                     HHNND    }
+  G3H505T = 5C+7H+2N+13O;  {CH2(OOH)CH(ONO2)CH(ONO2)CH(OOH)CO(OO.)                                                                 3.HHN    }
+  GGH505c = 5C+8H+2N+13O;  {CH2(OOH)CH(ONO2)CH(ONO2)CH(OOH)CO(OOH)                                                                 GHHNN    }
+  GPH505e = 5C+7H+3N+15O;  {CH2(OOH)CH(ONO2)CH(ONO2)CH(OOH)CO(OONO2)                                                               PHHNN    }
+  G1H401Z = 4C+7H+2N+9O;   {CH2(OOH)CH(ONO2)CH(ONO2)CH2(O.)                                                                        1.HNN    }
+  G2H4017 = 4C+7H+2N+10O;  {CH2(OOH)CH(ONO2)CH(ONO2)CH2(OO.)                                                                       2.HNN    }
+  GHH400s = 4C+8H+2N+10O;  {CH2(OOH)CH(ONO2)CH(ONO2)CH2(OOH)                                                                       HHNN     }
+  G1H504O = 5C+9H+2N+9O;   {CH2(OOH)CH(ONO2)CH(ONO2)CH2CH2(O.)                                                                     1.HNN    }
+  GHN5054 = 5C+8H+2N+9O;   {CH2(OOH)CH(ONO2)CH(ONO2)CH2CHO                                                                         HNND     }
+  G3H5026 = 5C+7H+2N+11O;  {CH2(OOH)CH(ONO2)CH(ONO2)CH2CO(OO.)                                                                     3.HNN    }
+  GGH502f = 5C+8H+2N+11O;  {CH2(OOH)CH(ONO2)CH(ONO2)CH2CO(OOH)                                                                     GHNN     }
+  GPH5026 = 5C+7H+3N+13O;  {CH2(OOH)CH(ONO2)CH(ONO2)CH2CO(OONO2)                                                                   PHNN     }
+  GHN4013 = 4C+6H+2N+9O;   {CH2(OOH)CH(ONO2)CH(ONO2)CHO                                                                            HNND     }
+  G3H400m = 4C+5H+2N+11O;  {CH2(OOH)CH(ONO2)CH(ONO2)CO(OO.)                                                                        3.HNN    }
+  GGH400t = 4C+6H+2N+11O;  {CH2(OOH)CH(ONO2)CH(ONO2)CO(OOH)                                                                        GHNN     }
+  GPH400j = 4C+5H+3N+13O;  {CH2(OOH)CH(ONO2)CH(ONO2)CO(OONO2)                                                                      PHNN     }
+  G1H509H = 5C+7H+2N+10O;  {CH2(OOH)CH(ONO2)CH(ONO2)COCH2(O.)                                                                      1.HNN    }
+  G2H5049 = 5C+7H+2N+11O;  {CH2(OOH)CH(ONO2)CH(ONO2)COCH2(OO.)                                                                     2.HNN    }
+  GHN506y = 5C+6H+2N+10O;  {CH2(OOH)CH(ONO2)CH(ONO2)COCHO                                                                          HNNDK    }
+  G3H505F = 5C+5H+2N+12O;  {CH2(OOH)CH(ONO2)CH(ONO2)COCO(OO.)                                                                      3.HNN    }
+  GGH505W = 5C+6H+2N+12O;  {CH2(OOH)CH(ONO2)CH(ONO2)COCO(OOH)                                                                      GHNNK    }
+  GPH504n = 5C+5H+3N+14O;  {CH2(OOH)CH(ONO2)CH(ONO2)COCO(OONO2)                                                                    PHNNK    }
+  G2H503Z = 5C+8H+N+9O;    {CH2(OOH)CH(ONO2)CH(OO.)CH(OH)CHO                                                                       2.HND    }
+  G2G504d = 5C+8H+N+11O;   {CH2(OOH)CH(ONO2)CH(OO.)CH(OH)CO(OOH)                                                                   2.GHN    }
+  G2P505q = 5C+7H+2N+13O;  {CH2(OOH)CH(ONO2)CH(OO.)CH(OH)CO(OONO2)                                                                 2.PHN    }
+  G2H503p = 5C+7H+2N+11O;  {CH2(OOH)CH(ONO2)CH(OO.)CH(ONO2)CHO                                                                     2.HNN    }
+  G2G505E = 5C+7H+2N+13O;  {CH2(OOH)CH(ONO2)CH(OO.)CH(ONO2)CO(OOH)                                                                 2.GHN    }
+  G2P506s = 5C+6H+3N+15O;  {CH2(OOH)CH(ONO2)CH(OO.)CH(ONO2)CO(OONO2)                                                               2.PHN    }
+  G2G505I = 5C+8H+N+12O;   {CH2(OOH)CH(ONO2)CH(OO.)CH(OOH)CO(OOH)                                                                  2.GHH    }
+  G2P506w = 5C+7H+2N+14O;  {CH2(OOH)CH(ONO2)CH(OO.)CH(OOH)CO(OONO2)                                                                2.PHH    }
+  G2H401P = 4C+8H+N+9O;    {CH2(OOH)CH(ONO2)CH(OO.)CH2(OOH)                                                                        2.HHN    }
+  G2H5032 = 5C+8H+N+8O;    {CH2(OOH)CH(ONO2)CH(OO.)CH2CHO                                                                          2.HND    }
+  G2G503U = 5C+8H+N+10O;   {CH2(OOH)CH(ONO2)CH(OO.)CH2CO(OOH)                                                                      2.GHN    }
+  G2P504q = 5C+7H+2N+12O;  {CH2(OOH)CH(ONO2)CH(OO.)CH2CO(OONO2)                                                                    2.PHN    }
+  G2H401B = 4C+6H+N+8O;    {CH2(OOH)CH(ONO2)CH(OO.)CHO                                                                             2.HND    }
+  G2G400v = 4C+6H+N+10O;   {CH2(OOH)CH(ONO2)CH(OO.)CO(OOH)                                                                         2.GHN    }
+  G2P401H = 4C+5H+2N+12O;  {CH2(OOH)CH(ONO2)CH(OO.)CO(OONO2)                                                                       2.PHN    }
+  G2H503x = 5C+6H+N+9O;    {CH2(OOH)CH(ONO2)CH(OO.)COCHO                                                                           2.HND    }
+  G2G505w = 5C+6H+N+11O;   {CH2(OOH)CH(ONO2)CH(OO.)COCO(OOH)                                                                       2.GHN    }
+  G2P507n = 5C+5H+2N+13O;  {CH2(OOH)CH(ONO2)CH(OO.)COCO(OONO2)                                                                     2.PHN    }
+  G1H50BT = 5C+8H+N+9O;    {CH2(OOH)CH(ONO2)CH(OOH)CH(O.)CHO                                                                       1.HHN    }
+  G1G507d = 5C+8H+N+11O;   {CH2(OOH)CH(ONO2)CH(OOH)CH(O.)CO(OOH)                                                                   1.GHH    }
+  G1P509w = 5C+7H+2N+13O;  {CH2(OOH)CH(ONO2)CH(OOH)CH(O.)CO(OONO2)                                                                 1.PHH    }
+  GHH502R = 5C+9H+N+9O;    {CH2(OOH)CH(ONO2)CH(OOH)CH(OH)CHO                                                                       HHNDO    }
+  G3H503c = 5C+8H+N+11O;   {CH2(OOH)CH(ONO2)CH(OOH)CH(OH)CO(OO.)                                                                   3.HHN    }
+  GGH504E = 5C+9H+N+11O;   {CH2(OOH)CH(ONO2)CH(OOH)CH(OH)CO(OOH)                                                                   GHHNO    }
+  GPH504O = 5C+8H+2N+13O;  {CH2(OOH)CH(ONO2)CH(OOH)CH(OH)CO(OONO2)                                                                 PHHNO    }
+  GHH502n = 5C+8H+2N+11O;  {CH2(OOH)CH(ONO2)CH(OOH)CH(ONO2)CHO                                                                     HHNND    }
+  G3H504Q = 5C+7H+2N+13O;  {CH2(OOH)CH(ONO2)CH(OOH)CH(ONO2)CO(OO.)                                                                 3.HHN    }
+  GGH504s = 5C+8H+2N+13O;  {CH2(OOH)CH(ONO2)CH(OOH)CH(ONO2)CO(OOH)                                                                 GHHNN    }
+  GPH5059 = 5C+7H+3N+15O;  {CH2(OOH)CH(ONO2)CH(OOH)CH(ONO2)CO(OONO2)                                                               PHHNN    }
+  G2G505J = 5C+8H+N+12O;   {CH2(OOH)CH(ONO2)CH(OOH)CH(OO.)CO(OOH)                                                                  2.GHH    }
+  G2P506x = 5C+7H+2N+14O;  {CH2(OOH)CH(ONO2)CH(OOH)CH(OO.)CO(OONO2)                                                                2.PHH    }
+  GHH502p = 5C+9H+N+10O;   {CH2(OOH)CH(ONO2)CH(OOH)CH(OOH)CHO                                                                      HHHND    }
+  G3H504S = 5C+8H+N+12O;   {CH2(OOH)CH(ONO2)CH(OOH)CH(OOH)CO(OO.)                                                                  3.HHH    }
+  GGH504u = 5C+9H+N+12O;   {CH2(OOH)CH(ONO2)CH(OOH)CH(OOH)CO(OOH)                                                                  GHHHN    }
+  GPH505B = 5C+8H+2N+14O;  {CH2(OOH)CH(ONO2)CH(OOH)CH(OOH)CO(OONO2)                                                                PHHHN    }
+  G1H401b = 4C+8H+N+8O;    {CH2(OOH)CH(ONO2)CH(OOH)CH2(O.)                                                                         1.HHN    }
+  G2H4019 = 4C+8H+N+9O;    {CH2(OOH)CH(ONO2)CH(OOH)CH2(OO.)                                                                        2.HHN    }
+  GHH400t = 4C+9H+N+9O;    {CH2(OOH)CH(ONO2)CH(OOH)CH2(OOH)                                                                        HHHN     }
+  GHH501m = 5C+9H+N+8O;    {CH2(OOH)CH(ONO2)CH(OOH)CH2CHO                                                                          HHND     }
+  G3H5028 = 5C+8H+N+10O;   {CH2(OOH)CH(ONO2)CH(OOH)CH2CO(OO.)                                                                      3.HHN    }
+  GGH502h = 5C+9H+N+10O;   {CH2(OOH)CH(ONO2)CH(OOH)CH2CO(OOH)                                                                      GHHN     }
+  GPH5032 = 5C+8H+2N+12O;  {CH2(OOH)CH(ONO2)CH(OOH)CH2CO(OONO2)                                                                    PHHN     }
+  GHH400a = 4C+7H+N+8O;    {CH2(OOH)CH(ONO2)CH(OOH)CHO                                                                             HHND     }
+  G3H400c = 4C+6H+N+10O;   {CH2(OOH)CH(ONO2)CH(OOH)CO(OO.)                                                                         3.HHN    }
+  GGH400l = 4C+7H+N+10O;   {CH2(OOH)CH(ONO2)CH(OOH)CO(OOH)                                                                         GHHN     }
+  GPH400q = 4C+6H+2N+12O;  {CH2(OOH)CH(ONO2)CH(OOH)CO(OONO2)                                                                       PHHN     }
+  GHH502s = 5C+7H+N+9O;    {CH2(OOH)CH(ONO2)CH(OOH)COCHO                                                                           HHNDK    }
+  G3H505c = 5C+6H+N+11O;   {CH2(OOH)CH(ONO2)CH(OOH)COCO(OO.)                                                                       3.HHN    }
+  GGH505O = 5C+7H+N+11O;   {CH2(OOH)CH(ONO2)CH(OOH)COCO(OOH)                                                                       GHHNK    }
+  GPH505X = 5C+6H+2N+13O;  {CH2(OOH)CH(ONO2)CH(OOH)COCO(OONO2)                                                                     PHHNK    }
+  G1H3008 = 3C+6H+N+6O;    {CH2(OOH)CH(ONO2)CH2(O.)                                                                                1.HN     }
+  G2H3008 = 3C+6H+N+7O;    {CH2(OOH)CH(ONO2)CH2(OO.)                                                                               2.HN     }
+  GHH3006 = 3C+7H+N+7O;    {CH2(OOH)CH(ONO2)CH2(OOH)                                                                               HHN      }
+  G1H5092 = 5C+8H+N+7O;    {CH2(OOH)CH(ONO2)CH2CH(O.)CHO                                                                           1.HND    }
+  G1G5028 = 5C+8H+N+9O;    {CH2(OOH)CH(ONO2)CH2CH(O.)CO(OOH)                                                                       1.GHN    }
+  G1P502w = 5C+7H+2N+11O;  {CH2(OOH)CH(ONO2)CH2CH(O.)CO(OONO2)                                                                     1.PHN    }
+  G1H501C = 5C+10H+N+7O;   {CH2(OOH)CH(ONO2)CH2CH(OH)CH2(O.)                                                                       1.HNO    }
+  G2H501c = 5C+10H+N+8O;   {CH2(OOH)CH(ONO2)CH2CH(OH)CH2(OO.)                                                                      2.HNO    }
+  GHN5041 = 5C+9H+N+7O;    {CH2(OOH)CH(ONO2)CH2CH(OH)CHO                                                                           HNDO     }
+  G3H501L = 5C+8H+N+9O;    {CH2(OOH)CH(ONO2)CH2CH(OH)CO(OO.)                                                                       3.HNK    }
+  GGH501d = 5C+9H+N+9O;    {CH2(OOH)CH(ONO2)CH2CH(OH)CO(OOH)                                                                       GHNO     }
+  GPH501j = 5C+8H+2N+11O;  {CH2(OOH)CH(ONO2)CH2CH(OH)CO(OONO2)                                                                     PHNO     }
+  G1H504g = 5C+9H+2N+9O;   {CH2(OOH)CH(ONO2)CH2CH(ONO2)CH2(O.)                                                                     1.HNN    }
+  GHN505B = 5C+8H+2N+9O;   {CH2(OOH)CH(ONO2)CH2CH(ONO2)CHO                                                                         HNND     }
+  G3H502C = 5C+7H+2N+11O;  {CH2(OOH)CH(ONO2)CH2CH(ONO2)CO(OO.)                                                                     3.HNN    }
+  GGH502l = 5C+8H+2N+11O;  {CH2(OOH)CH(ONO2)CH2CH(ONO2)CO(OOH)                                                                     GHNN     }
+  GPH502i = 5C+7H+3N+13O;  {CH2(OOH)CH(ONO2)CH2CH(ONO2)CO(OONO2)                                                                   PHNN     }
+  G2H503F = 5C+8H+N+8O;    {CH2(OOH)CH(ONO2)CH2CH(OO.)CHO                                                                          2.HND    }
+  G2G501j = 5C+8H+N+10O;   {CH2(OOH)CH(ONO2)CH2CH(OO.)CO(OOH)                                                                      2.GHN    }
+  G2P502N = 5C+7H+2N+12O;  {CH2(OOH)CH(ONO2)CH2CH(OO.)CO(OONO2)                                                                    2.PHN    }
+  GHH501w = 5C+9H+N+8O;    {CH2(OOH)CH(ONO2)CH2CH(OOH)CHO                                                                          HHND     }
+  G3H502D = 5C+8H+N+10O;   {CH2(OOH)CH(ONO2)CH2CH(OOH)CO(OO.)                                                                      3.HHN    }
+  GGH502m = 5C+9H+N+10O;   {CH2(OOH)CH(ONO2)CH2CH(OOH)CO(OOH)                                                                      GHHN     }
+  GPH5035 = 5C+8H+2N+12O;  {CH2(OOH)CH(ONO2)CH2CH(OOH)CO(OONO2)                                                                    PHHN     }
+  G1H400g = 4C+8H+N+6O;    {CH2(OOH)CH(ONO2)CH2CH2(O.)                                                                             1.HN     }
+  G2H400c = 4C+8H+N+7O;    {CH2(OOH)CH(ONO2)CH2CH2(OO.)                                                                            2.HN     }
+  G1H500w = 5C+10H+N+6O;   {CH2(OOH)CH(ONO2)CH2CH2CH2(O.)                                                                          1.HN     }
+  GHN502B = 5C+9H+N+6O;    {CH2(OOH)CH(ONO2)CH2CH2CHO                                                                              HND      }
+  G3H500Y = 5C+8H+N+8O;    {CH2(OOH)CH(ONO2)CH2CH2CO(OO.)                                                                          3.HNK    }
+  GGH500k = 5C+9H+N+8O;    {CH2(OOH)CH(ONO2)CH2CH2CO(OOH)                                                                          GHN      }
+  GPH500q = 5C+8H+2N+10O;  {CH2(OOH)CH(ONO2)CH2CH2CO(OONO2)                                                                        PHN      }
+  GHN400G = 4C+7H+N+6O;    {CH2(OOH)CH(ONO2)CH2CHO                                                                                 HND      }
+  G3H400E = 4C+6H+N+8O;    {CH2(OOH)CH(ONO2)CH2CO(OO.)                                                                             3.HNK    }
+  GGH400I = 4C+7H+N+8O;    {CH2(OOH)CH(ONO2)CH2CO(OOH)                                                                             GHN      }
+  GPH400C = 4C+6H+2N+10O;  {CH2(OOH)CH(ONO2)CH2CO(OONO2)                                                                           PHN      }
+  G1H504m = 5C+8H+N+7O;    {CH2(OOH)CH(ONO2)CH2COCH2(O.)                                                                           1.HNK    }
+  G2H502i = 5C+8H+N+8O;    {CH2(OOH)CH(ONO2)CH2COCH2(OO.)                                                                          2.HNK    }
+  GHN505C = 5C+7H+N+7O;    {CH2(OOH)CH(ONO2)CH2COCHO                                                                               HNDK     }
+  G3H5049 = 5C+6H+N+9O;    {CH2(OOH)CH(ONO2)CH2COCO(OO.)                                                                           3.HNK    }
+  GGH502n = 5C+7H+N+9O;    {CH2(OOH)CH(ONO2)CH2COCO(OOH)                                                                           GHNK     }
+  GPH502j = 5C+6H+2N+11O;  {CH2(OOH)CH(ONO2)CH2COCO(OONO2)                                                                         PHNK     }
+  GHN300A = 3C+5H+N+6O;    {CH2(OOH)CH(ONO2)CHO                                                                                    HND      }
+  G3H3005 = 3C+4H+N+8O;    {CH2(OOH)CH(ONO2)CO(OO.)                                                                                3.HNK    }
+  GGH3005 = 3C+5H+N+8O;    {CH2(OOH)CH(ONO2)CO(OOH)                                                                                GHN      }
+  GPH3005 = 3C+4H+2N+10O;  {CH2(OOH)CH(ONO2)CO(OONO2)                                                                              PHN      }
+  G1H50Bq = 5C+6H+N+8O;    {CH2(OOH)CH(ONO2)COCH(O.)CHO                                                                            1.HND    }
+  G1G508I = 5C+6H+N+10O;   {CH2(OOH)CH(ONO2)COCH(O.)CO(OOH)                                                                        1.GHN    }
+  G1P505s = 5C+5H+2N+12O;  {CH2(OOH)CH(ONO2)COCH(O.)CO(OONO2)                                                                      1.PHN    }
+  GHN506r = 5C+7H+N+8O;    {CH2(OOH)CH(ONO2)COCH(OH)CHO                                                                            HNDKO    }
+  G3H504y = 5C+6H+N+10O;   {CH2(OOH)CH(ONO2)COCH(OH)CO(OO.)                                                                        3.HNK    }
+  GGH505N = 5C+7H+N+10O;   {CH2(OOH)CH(ONO2)COCH(OH)CO(OOH)                                                                        GHNKO    }
+  GPH5051 = 5C+6H+2N+12O;  {CH2(OOH)CH(ONO2)COCH(OH)CO(OONO2)                                                                      PHNKO    }
+  G1H509N = 5C+7H+2N+10O;  {CH2(OOH)CH(ONO2)COCH(ONO2)CH2(O.)                                                                      1.HNN    }
+  GHN506l = 5C+6H+2N+10O;  {CH2(OOH)CH(ONO2)COCH(ONO2)CHO                                                                          HNNDK    }
+  G3H504p = 5C+5H+2N+12O;  {CH2(OOH)CH(ONO2)COCH(ONO2)CO(OO.)                                                                      3.HNN    }
+  GGH505D = 5C+6H+2N+12O;  {CH2(OOH)CH(ONO2)COCH(ONO2)CO(OOH)                                                                      GHNNK    }
+  GPH504y = 5C+5H+3N+14O;  {CH2(OOH)CH(ONO2)COCH(ONO2)CO(OONO2)                                                                    PHNNK    }
+  G2G5068 = 5C+6H+N+11O;   {CH2(OOH)CH(ONO2)COCH(OO.)CO(OOH)                                                                       2.GHN    }
+  G2P504N = 5C+5H+2N+13O;  {CH2(OOH)CH(ONO2)COCH(OO.)CO(OONO2)                                                                     2.PHN    }
+  GHH503D = 5C+7H+N+9O;    {CH2(OOH)CH(ONO2)COCH(OOH)CHO                                                                           HHNDK    }
+  G3H505M = 5C+6H+N+11O;   {CH2(OOH)CH(ONO2)COCH(OOH)CO(OO.)                                                                       3.HHN    }
+  GGH505Z = 5C+7H+N+11O;   {CH2(OOH)CH(ONO2)COCH(OOH)CO(OOH)                                                                       GHHNK    }
+  GPH504z = 5C+6H+2N+13O;  {CH2(OOH)CH(ONO2)COCH(OOH)CO(OONO2)                                                                     PHHNK    }
+  G1H401e = 4C+6H+N+7O;    {CH2(OOH)CH(ONO2)COCH2(O.)                                                                              1.HNK    }
+  G2H401C = 4C+6H+N+8O;    {CH2(OOH)CH(ONO2)COCH2(OO.)                                                                             2.HNK    }
+  G1H504d = 5C+8H+N+7O;    {CH2(OOH)CH(ONO2)COCH2CH2(O.)                                                                           1.HNK    }
+  GHN5059 = 5C+7H+N+7O;    {CH2(OOH)CH(ONO2)COCH2CHO                                                                               HNDK     }
+  G3H502A = 5C+6H+N+9O;    {CH2(OOH)CH(ONO2)COCH2CO(OO.)                                                                           3.HNK    }
+  GGH502j = 5C+7H+N+9O;    {CH2(OOH)CH(ONO2)COCH2CO(OOH)                                                                           GHNK     }
+  GPH502R = 5C+6H+2N+11O;  {CH2(OOH)CH(ONO2)COCH2CO(OONO2)                                                                         PHNK     }
+  GHN401C = 4C+5H+N+7O;    {CH2(OOH)CH(ONO2)COCHO                                                                                  HNDK     }
+  G3H400u = 4C+4H+N+9O;    {CH2(OOH)CH(ONO2)COCO(OO.)                                                                              3.HNK    }
+  GGH400x = 4C+5H+N+9O;    {CH2(OOH)CH(ONO2)COCO(OOH)                                                                              GHNK     }
+  GPH400k = 4C+4H+2N+11O;  {CH2(OOH)CH(ONO2)COCO(OONO2)                                                                            PHNK     }
+  G1H509Q = 5C+6H+N+8O;    {CH2(OOH)CH(ONO2)COCOCH2(O.)                                                                            1.HNK    }
+  GHN506x = 5C+5H+N+8O;    {CH2(OOH)CH(ONO2)COCOCHO                                                                                HNDKK    }
+  G3H505N = 5C+4H+N+10O;   {CH2(OOH)CH(ONO2)COCOCO(OO.)                                                                            3.HNK    }
+  GGH505X = 5C+5H+N+10O;   {CH2(OOH)CH(ONO2)COCOCO(OOH)                                                                            GHNKK    }
+  GPH5052 = 5C+4H+2N+12O;  {CH2(OOH)CH(ONO2)COCOCO(OONO2)                                                                          PHNKK    }
+  G2H400g = 4C+7H+6O;      {CH2(OOH)CH(OO.)CH(OH)CHO                                                                               2.HDO    }
+  G2P400p = 4C+6H+N+10O;   {CH2(OOH)CH(OO.)CH(OH)CO(OONO2)                                                                         2.PHO    }
+  G2H503c = 5C+7H+7O;      {CH2(OOH)CH(OO.)CH(OH)COCHO                                                                             2.HDK    }
+  G2G5034 = 5C+7H+9O;      {CH2(OOH)CH(OO.)CH(OH)COCO(OOH)                                                                         2.GHK    }
+  G2P504D = 5C+6H+N+11O;   {CH2(OOH)CH(OO.)CH(OH)COCO(OONO2)                                                                       2.PHK    }
+  G2H503j = 5C+8H+N+9O;    {CH2(OOH)CH(OO.)CH(ONO2)CH(OH)CHO                                                                       2.HND    }
+  G2G5056 = 5C+8H+N+11O;   {CH2(OOH)CH(OO.)CH(ONO2)CH(OH)CO(OOH)                                                                   2.GHN    }
+  G2P506J = 5C+7H+2N+13O;  {CH2(OOH)CH(OO.)CH(ONO2)CH(OH)CO(OONO2)                                                                 2.PHN    }
+  G2H502z = 5C+8H+N+8O;    {CH2(OOH)CH(OO.)CH(ONO2)CH2CHO                                                                          2.HND    }
+  G2G503S = 5C+8H+N+10O;   {CH2(OOH)CH(OO.)CH(ONO2)CH2CO(OOH)                                                                      2.GHN    }
+  G2P504o = 5C+7H+2N+12O;  {CH2(OOH)CH(OO.)CH(ONO2)CH2CO(OONO2)                                                                    2.PHN    }
+  G2H401Q = 4C+6H+N+8O;    {CH2(OOH)CH(OO.)CH(ONO2)CHO                                                                             2.HND    }
+  G2G4017 = 4C+6H+N+10O;   {CH2(OOH)CH(OO.)CH(ONO2)CO(OOH)                                                                         2.GHN    }
+  G2P401Q = 4C+5H+2N+12O;  {CH2(OOH)CH(OO.)CH(ONO2)CO(OONO2)                                                                       2.PHN    }
+  G2H504D = 5C+6H+N+9O;    {CH2(OOH)CH(OO.)CH(ONO2)COCHO                                                                           2.HND    }
+  G2H400o = 4C+7H+7O;      {CH2(OOH)CH(OO.)CH(OOH)CHO                                                                              2.HHD    }
+  G2G504q = 5C+7H+10O;     {CH2(OOH)CH(OO.)CH(OOH)COCO(OOH)                                                                        2.GHH    }
+  G2P5064 = 5C+6H+N+12O;   {CH2(OOH)CH(OO.)CH(OOH)COCO(OONO2)                                                                      2.PHH    }
+  G2G503I = 5C+8H+N+10O;   {CH2(OOH)CH(OO.)CH2CH(ONO2)CO(OOH)                                                                      2.GHN    }
+  G2P502D = 5C+7H+2N+12O;  {CH2(OOH)CH(OO.)CH2CH(ONO2)CO(OONO2)                                                                    2.PHN    }
+  G2G501m = 5C+9H+7O;      {CH2(OOH)CH(OO.)CH2CH2CO(OOH)                                                                           2.GH     }
+  G2P502Q = 5C+8H+N+9O;    {CH2(OOH)CH(OO.)CH2CH2CO(OONO2)                                                                         2.PH     }
+  G2H400E = 4C+7H+5O;      {CH2(OOH)CH(OO.)CH2CHO                                                                                  2.HD     }
+  G2G400K = 4C+7H+7O;      {CH2(OOH)CH(OO.)CH2CO(OOH)                                                                              2.GH     }
+  G2P400T = 4C+6H+N+9O;    {CH2(OOH)CH(OO.)CH2CO(OONO2)                                                                            2.PH     }
+  G2H502h = 5C+7H+6O;      {CH2(OOH)CH(OO.)CH2COCHO                                                                                2.HDK    }
+  G2G502o = 5C+7H+8O;      {CH2(OOH)CH(OO.)CH2COCO(OOH)                                                                            2.GHK    }
+  G2P503n = 5C+6H+N+10O;   {CH2(OOH)CH(OO.)CH2COCO(OONO2)                                                                          2.PHK    }
+  G2H300C = 3C+5H+5O;      {CH2(OOH)CH(OO.)CHO                                                                                     2.HD     }
+  G2G300A = 3C+5H+7O;      {CH2(OOH)CH(OO.)CO(OOH)                                                                                 2.GH     }
+  G2P300C = 3C+4H+N+9O;    {CH2(OOH)CH(OO.)CO(OONO2)                                                                               2.PH     }
+  G1H50BE = 5C+9H+7O;      {CH2(OOH)CH(OOH)CH(O.)CH(OH)CHO                                                                         1.HHD    }
+  G1G507P = 5C+9H+9O;      {CH2(OOH)CH(OOH)CH(O.)CH(OH)CO(OOH)                                                                     1.GHH    }
+  G1P508w = 5C+8H+N+11O;   {CH2(OOH)CH(OOH)CH(O.)CH(OH)CO(OONO2)                                                                   1.PHH    }
+  G1H401y = 4C+9H+7O;      {CH2(OOH)CH(OOH)CH(O.)CH2(OOH)                                                                          1.HHH    }
+  G1H508k = 5C+9H+6O;      {CH2(OOH)CH(OOH)CH(O.)CH2CHO                                                                            1.HHD    }
+  G1G504u = 5C+9H+8O;      {CH2(OOH)CH(OOH)CH(O.)CH2CO(OOH)                                                                        1.GHH    }
+  G1P506f = 5C+8H+N+10O;   {CH2(OOH)CH(OOH)CH(O.)CH2CO(OONO2)                                                                      1.PHH    }
+  G1H401u = 4C+7H+6O;      {CH2(OOH)CH(OOH)CH(O.)CHO                                                                               1.HHD    }
+  G1G401G = 4C+7H+8O;      {CH2(OOH)CH(OOH)CH(O.)CO(OOH)                                                                           1.GHH    }
+  G1P401X = 4C+6H+N+10O;   {CH2(OOH)CH(OOH)CH(O.)CO(OONO2)                                                                         1.PHH    }
+  G1H50C6 = 5C+7H+7O;      {CH2(OOH)CH(OOH)CH(O.)COCHO                                                                             1.HHD    }
+  G1G508Y = 5C+7H+9O;      {CH2(OOH)CH(OOH)CH(O.)COCO(OOH)                                                                         1.GHH    }
+  G1P50Ac = 5C+6H+N+11O;   {CH2(OOH)CH(OOH)CH(O.)COCO(OONO2)                                                                       1.PHH    }
+  G3H505J = 5C+9H+9O;      {CH2(OOH)CH(OOH)CH(OH)CH(OH)CO(OO.)                                                                     3.HHK    }
+  GGH504e = 5C+10H+9O;     {CH2(OOH)CH(OOH)CH(OH)CH(OH)CO(OOH)                                                                     GHHOO    }
+  GPH504u = 5C+9H+N+11O;   {CH2(OOH)CH(OOH)CH(OH)CH(OH)CO(OONO2)                                                                   PHHOO    }
+  G1H400y = 4C+9H+6O;      {CH2(OOH)CH(OOH)CH(OH)CH2(O.)                                                                           1.HHO    }
+  GHH400d = 4C+8H+6O;      {CH2(OOH)CH(OOH)CH(OH)CHO                                                                               HHDO     }
+  G3H400j = 4C+7H+8O;      {CH2(OOH)CH(OOH)CH(OH)CO(OO.)                                                                           3.HHK    }
+  GGH400q = 4C+8H+8O;      {CH2(OOH)CH(OOH)CH(OH)CO(OOH)                                                                           GHHO     }
+  GPH400u = 4C+7H+N+10O;   {CH2(OOH)CH(OOH)CH(OH)CO(OONO2)                                                                         PHHO     }
+  G1H50Ay = 5C+9H+7O;      {CH2(OOH)CH(OOH)CH(OH)COCH2(O.)                                                                         1.HHK    }
+  GHH5037 = 5C+8H+7O;      {CH2(OOH)CH(OOH)CH(OH)COCHO                                                                             HHDKO    }
+  G3H505K = 5C+7H+9O;      {CH2(OOH)CH(OOH)CH(OH)COCO(OO.)                                                                         3.HHK    }
+  GGH504g = 5C+8H+9O;      {CH2(OOH)CH(OOH)CH(OH)COCO(OOH)                                                                         GHHKO    }
+  GPH504w = 5C+7H+N+11O;   {CH2(OOH)CH(OOH)CH(OH)COCO(OONO2)                                                                       PHHKO    }
+  G1H509t = 5C+10H+N+9O;   {CH2(OOH)CH(OOH)CH(ONO2)CH(OH)CH2(O.)                                                                   1.HHN    }
+  GHH502j = 5C+9H+N+9O;    {CH2(OOH)CH(OOH)CH(ONO2)CH(OH)CHO                                                                       HHNDO    }
+  G3H504D = 5C+8H+N+11O;   {CH2(OOH)CH(OOH)CH(ONO2)CH(OH)CO(OO.)                                                                   3.HHN    }
+  GGH504k = 5C+9H+N+11O;   {CH2(OOH)CH(OOH)CH(ONO2)CH(OH)CO(OOH)                                                                   GHHNO    }
+  GPH504r = 5C+8H+2N+13O;  {CH2(OOH)CH(OOH)CH(ONO2)CH(OH)CO(OONO2)                                                                 PHHNO    }
+  G1H401a = 4C+8H+N+8O;    {CH2(OOH)CH(OOH)CH(ONO2)CH2(O.)                                                                         1.HHN    }
+  G2H4018 = 4C+8H+N+9O;    {CH2(OOH)CH(OOH)CH(ONO2)CH2(OO.)                                                                        2.HHN    }
+  GHH501l = 5C+9H+N+8O;    {CH2(OOH)CH(OOH)CH(ONO2)CH2CHO                                                                          HHND     }
+  G3H5027 = 5C+8H+N+10O;   {CH2(OOH)CH(OOH)CH(ONO2)CH2CO(OO.)                                                                      3.HHN    }
+  GGH502g = 5C+9H+N+10O;   {CH2(OOH)CH(OOH)CH(ONO2)CH2CO(OOH)                                                                      GHHN     }
+  GPH5031 = 5C+8H+2N+12O;  {CH2(OOH)CH(OOH)CH(ONO2)CH2CO(OONO2)                                                                    PHHN     }
+  GHH400u = 4C+7H+N+8O;    {CH2(OOH)CH(OOH)CH(ONO2)CHO                                                                             HHND     }
+  G3H400x = 4C+6H+N+10O;   {CH2(OOH)CH(OOH)CH(ONO2)CO(OO.)                                                                         3.HHN    }
+  GGH400y = 4C+7H+N+10O;   {CH2(OOH)CH(OOH)CH(ONO2)CO(OOH)                                                                         GHHN     }
+  GPH400y = 4C+6H+2N+12O;  {CH2(OOH)CH(OOH)CH(ONO2)CO(OONO2)                                                                       PHHN     }
+  GHH503B = 5C+7H+N+9O;    {CH2(OOH)CH(OOH)CH(ONO2)COCHO                                                                           HHNDK    }
+  GHH5038 = 5C+10H+8O;     {CH2(OOH)CH(OOH)CH(OOH)CH(OH)CHO                                                                        HHHDO    }
+  G3H505D = 5C+9H+10O;     {CH2(OOH)CH(OOH)CH(OOH)CH(OH)CO(OO.)                                                                    3.HHH    }
+  GGH504l = 5C+10H+10O;    {CH2(OOH)CH(OOH)CH(OOH)CH(OH)CO(OOH)                                                                    GHHHO    }
+  GPH5058 = 5C+9H+N+12O;   {CH2(OOH)CH(OOH)CH(OOH)CH(OH)CO(OONO2)                                                                  PHHHO    }
+  G1H401s = 4C+9H+7O;      {CH2(OOH)CH(OOH)CH(OOH)CH2(O.)                                                                          1.HHH    }
+  GHH400l = 4C+8H+7O;      {CH2(OOH)CH(OOH)CH(OOH)CHO                                                                              HHHD     }
+  G3H400t = 4C+7H+9O;      {CH2(OOH)CH(OOH)CH(OOH)CO(OO.)                                                                          3.HHH    }
+  GGH400w = 4C+8H+9O;      {CH2(OOH)CH(OOH)CH(OOH)CO(OOH)                                                                          GHHH     }
+  GPH400x = 4C+7H+N+11O;   {CH2(OOH)CH(OOH)CH(OOH)CO(OONO2)                                                                        PHHH     }
+  G3H505e = 5C+7H+10O;     {CH2(OOH)CH(OOH)CH(OOH)COCO(OO.)                                                                        3.HHH    }
+  GGH505U = 5C+8H+10O;     {CH2(OOH)CH(OOH)CH(OOH)COCO(OOH)                                                                        GHHHK    }
+  GPH505d = 5C+7H+N+12O;   {CH2(OOH)CH(OOH)CH(OOH)COCO(OONO2)                                                                      PHHHK    }
+  G1H300A = 3C+7H+5O;      {CH2(OOH)CH(OOH)CH2(O.)                                                                                 1.HH     }
+  G2H300B = 3C+7H+6O;      {CH2(OOH)CH(OOH)CH2(OO.)                                                                                2.HH     }
+  GHH3008 = 3C+8H+6O;      {CH2(OOH)CH(OOH)CH2(OOH)                                                                                HHH      }
+  G1G507Q = 5C+9H+8O;      {CH2(OOH)CH(OOH)CH2CH(O.)CO(OOH)                                                                        1.GHH    }
+  G1P506F = 5C+8H+N+10O;   {CH2(OOH)CH(OOH)CH2CH(O.)CO(OONO2)                                                                      1.PHH    }
+  G1H502R = 5C+11H+6O;     {CH2(OOH)CH(OOH)CH2CH(OH)CH2(O.)                                                                        1.HHO    }
+  GHH502Z = 5C+10H+6O;     {CH2(OOH)CH(OOH)CH2CH(OH)CHO                                                                            HHDO     }
+  G3H503m = 5C+9H+8O;      {CH2(OOH)CH(OOH)CH2CH(OH)CO(OO.)                                                                        3.HHK    }
+  GGH504P = 5C+10H+8O;     {CH2(OOH)CH(OOH)CH2CH(OH)CO(OOH)                                                                        GHHO     }
+  GPH504Z = 5C+9H+N+10O;   {CH2(OOH)CH(OOH)CH2CH(OH)CO(OONO2)                                                                      PHHO     }
+  G1H505p = 5C+10H+N+8O;   {CH2(OOH)CH(OOH)CH2CH(ONO2)CH2(O.)                                                                      1.HHN    }
+  G3H504B = 5C+8H+N+10O;   {CH2(OOH)CH(OOH)CH2CH(ONO2)CO(OO.)                                                                      3.HHN    }
+  GGH504m = 5C+9H+N+10O;   {CH2(OOH)CH(OOH)CH2CH(ONO2)CO(OOH)                                                                      GHHN     }
+  GPH502o = 5C+8H+2N+12O;  {CH2(OOH)CH(OOH)CH2CH(ONO2)CO(OONO2)                                                                    PHHN     }
+  G1H400h = 4C+9H+5O;      {CH2(OOH)CH(OOH)CH2CH2(O.)                                                                              1.HH     }
+  G2H400d = 4C+9H+6O;      {CH2(OOH)CH(OOH)CH2CH2(OO.)                                                                             2.HH     }
+  G1H500x = 5C+11H+5O;     {CH2(OOH)CH(OOH)CH2CH2CH2(O.)                                                                           1.HH     }
+  GHH500g = 5C+10H+5O;     {CH2(OOH)CH(OOH)CH2CH2CHO                                                                               HHD      }
+  G3H500Z = 5C+9H+7O;      {CH2(OOH)CH(OOH)CH2CH2CO(OO.)                                                                           3.HHK    }
+  GGH500l = 5C+10H+7O;     {CH2(OOH)CH(OOH)CH2CH2CO(OOH)                                                                           GHH      }
+  GPH500r = 5C+9H+N+9O;    {CH2(OOH)CH(OOH)CH2CH2CO(OONO2)                                                                         PHH      }
+  GHH400B = 4C+8H+5O;      {CH2(OOH)CH(OOH)CH2CHO                                                                                  HHD      }
+  G3H400S = 4C+7H+7O;      {CH2(OOH)CH(OOH)CH2CO(OO.)                                                                              3.HHK    }
+  GGH400a = 4C+8H+7O;      {CH2(OOH)CH(OOH)CH2CO(OOH)                                                                              GHH      }
+  GPH400Y = 4C+7H+N+9O;    {CH2(OOH)CH(OOH)CH2CO(OONO2)                                                                            PHH      }
+  G1H506s = 5C+9H+6O;      {CH2(OOH)CH(OOH)CH2COCH2(O.)                                                                            1.HHK    }
+  GHH502e = 5C+8H+6O;      {CH2(OOH)CH(OOH)CH2COCHO                                                                                HHDK     }
+  G3H5058 = 5C+7H+8O;      {CH2(OOH)CH(OOH)CH2COCO(OO.)                                                                            3.HHK    }
+  GGH504X = 5C+8H+8O;      {CH2(OOH)CH(OOH)CH2COCO(OOH)                                                                            GHHK     }
+  GPH504f = 5C+7H+N+10O;   {CH2(OOH)CH(OOH)CH2COCO(OONO2)                                                                          PHHK     }
+  GHH3005 = 3C+6H+5O;      {CH2(OOH)CH(OOH)CHO                                                                                     HHD      }
+  G3H3007 = 3C+5H+7O;      {CH2(OOH)CH(OOH)CO(OO.)                                                                                 3.HHK    }
+  GGH3008 = 3C+6H+7O;      {CH2(OOH)CH(OOH)CO(OOH)                                                                                 GHH      }
+  GPH3008 = 3C+5H+N+9O;    {CH2(OOH)CH(OOH)CO(OONO2)                                                                               PHH      }
+  GHH5034 = 5C+8H+7O;      {CH2(OOH)CH(OOH)COCH(OH)CHO                                                                             HHDKO    }
+  G3H5051 = 5C+7H+9O;      {CH2(OOH)CH(OOH)COCH(OH)CO(OO.)                                                                         3.HHK    }
+  GGH505Q = 5C+8H+9O;      {CH2(OOH)CH(OOH)COCH(OH)CO(OOH)                                                                         GHHKO    }
+  GPH505Z = 5C+7H+N+11O;   {CH2(OOH)CH(OOH)COCH(OH)CO(OONO2)                                                                       PHHKO    }
+  G1H401f = 4C+7H+6O;      {CH2(OOH)CH(OOH)COCH2(O.)                                                                               1.HHK    }
+  G2H401D = 4C+7H+7O;      {CH2(OOH)CH(OOH)COCH2(OO.)                                                                              2.HHK    }
+  GHH501v = 5C+8H+6O;      {CH2(OOH)CH(OOH)COCH2CHO                                                                                HHDK     }
+  G3H502B = 5C+7H+8O;      {CH2(OOH)CH(OOH)COCH2CO(OO.)                                                                            3.HHK    }
+  GGH502k = 5C+8H+8O;      {CH2(OOH)CH(OOH)COCH2CO(OOH)                                                                            GHHK     }
+  GPH5034 = 5C+7H+N+10O;   {CH2(OOH)CH(OOH)COCH2CO(OONO2)                                                                          PHHK     }
+  GHH400w = 4C+6H+6O;      {CH2(OOH)CH(OOH)COCHO                                                                                   HHDK     }
+  G3H400z = 4C+5H+8O;      {CH2(OOH)CH(OOH)COCO(OO.)                                                                               3.HHK    }
+  GGH400z = 4C+6H+8O;      {CH2(OOH)CH(OOH)COCO(OOH)                                                                               GHHK     }
+  GPH400z = 4C+5H+N+10O;   {CH2(OOH)CH(OOH)COCO(OONO2)                                                                             PHHK     }
+  G3H505g = 5C+5H+9O;      {CH2(OOH)CH(OOH)COCOCO(OO.)                                                                             3.HHK    }
+  GGH505g = 5C+6H+9O;      {CH2(OOH)CH(OOH)COCOCO(OOH)                                                                             GHHKK    }
+  GPH505g = 5C+5H+N+11O;   {CH2(OOH)CH(OOH)COCOCO(OONO2)                                                                           PHHKK    }
+  G1H2000 = 2C+5H+3O;      {CH2(OOH)CH2(O.)                                                                                        1.H      }
+  G2H2000 = 2C+5H+4O;      {CH2(OOH)CH2(OO.)                                                                                       2.H      }
+  GHH2000 = 2C+6H+4O;      {CH2(OOH)CH2(OOH)                                                                                       HH       }
+  G1H502a = 5C+9H+5O;      {CH2(OOH)CH2CH(O.)CH(OH)CHO                                                                             1.HDO    }
+  G1G503t = 5C+9H+7O;      {CH2(OOH)CH2CH(O.)CH(OH)CO(OOH)                                                                         1.GHO    }
+  G1P5022 = 5C+8H+N+9O;    {CH2(OOH)CH2CH(O.)CH(OH)CO(OONO2)                                                                       1.PHO    }
+  G1H509k = 5C+8H+N+7O;    {CH2(OOH)CH2CH(O.)CH(ONO2)CHO                                                                           1.HND    }
+  G1G505y = 5C+8H+N+9O;    {CH2(OOH)CH2CH(O.)CH(ONO2)CO(OOH)                                                                       1.GHN    }
+  G1P505O = 5C+7H+2N+11O;  {CH2(OOH)CH2CH(O.)CH(ONO2)CO(OONO2)                                                                     1.PHN    }
+  G1H401Y = 4C+9H+5O;      {CH2(OOH)CH2CH(O.)CH2(OOH)                                                                              1.HH     }
+  G1H503t = 5C+9H+4O;      {CH2(OOH)CH2CH(O.)CH2CHO                                                                                1.HD     }
+  G1G5026 = 5C+9H+6O;      {CH2(OOH)CH2CH(O.)CH2CO(OOH)                                                                            1.GH     }
+  G1P501h = 5C+8H+N+8O;    {CH2(OOH)CH2CH(O.)CH2CO(OONO2)                                                                          1.PH     }
+  G1H400o = 4C+7H+4O;      {CH2(OOH)CH2CH(O.)CHO                                                                                   1.HD     }
+  G1G400v = 4C+7H+6O;      {CH2(OOH)CH2CH(O.)CO(OOH)                                                                               1.GH     }
+  G1P400o = 4C+6H+N+8O;    {CH2(OOH)CH2CH(O.)CO(OONO2)                                                                             1.PH     }
+  G1H50B7 = 5C+7H+5O;      {CH2(OOH)CH2CH(O.)COCHO                                                                                 1.HDK    }
+  G1G507F = 5C+7H+7O;      {CH2(OOH)CH2CH(O.)COCO(OOH)                                                                             1.GHK    }
+  G1P505X = 5C+6H+N+9O;    {CH2(OOH)CH2CH(O.)COCO(OONO2)                                                                           1.PHK    }
+  G1H502O = 5C+11H+5O;     {CH2(OOH)CH2CH(OH)CH(OH)CH2(O.)                                                                         1.HOO    }
+  GHD500n = 5C+10H+5O;     {CH2(OOH)CH2CH(OH)CH(OH)CHO                                                                             HDOO     }
+  G3H501Y = 5C+9H+7O;      {CH2(OOH)CH2CH(OH)CH(OH)CO(OO.)                                                                         3.HKO    }
+  GGH500O = 5C+10H+7O;     {CH2(OOH)CH2CH(OH)CH(OH)CO(OOH)                                                                         GHOO     }
+  GPH500S = 5C+9H+N+9O;    {CH2(OOH)CH2CH(OH)CH(OH)CO(OONO2)                                                                       PHOO     }
+  G1H400I = 4C+9H+4O;      {CH2(OOH)CH2CH(OH)CH2(O.)                                                                               1.HO     }
+  G2H400M = 4C+9H+5O;      {CH2(OOH)CH2CH(OH)CH2(OO.)                                                                              2.HO     }
+  GHH4000 = 4C+10H+5O;     {CH2(OOH)CH2CH(OH)CH2(OOH)                                                                              HHO      }
+  G1H500s = 5C+11H+4O;     {CH2(OOH)CH2CH(OH)CH2CH2(O.)                                                                            1.HO     }
+  GHD400B = 4C+8H+4O;      {CH2(OOH)CH2CH(OH)CHO                                                                                   HDO      }
+  G3H400F = 4C+7H+6O;      {CH2(OOH)CH2CH(OH)CO(OO.)                                                                               3.HKO    }
+  GGH400J = 4C+8H+6O;      {CH2(OOH)CH2CH(OH)CO(OOH)                                                                               GHO      }
+  GPH400M = 4C+7H+N+8O;    {CH2(OOH)CH2CH(OH)CO(OONO2)                                                                             PHO      }
+  G1H506z = 5C+9H+5O;      {CH2(OOH)CH2CH(OH)COCH2(O.)                                                                             1.HKO    }
+  GHD501L = 5C+8H+5O;      {CH2(OOH)CH2CH(OH)COCHO                                                                                 HDKO     }
+  G3H503y = 5C+7H+7O;      {CH2(OOH)CH2CH(OH)COCO(OO.)                                                                             3.HKK    }
+  GGH5025 = 5C+8H+7O;      {CH2(OOH)CH2CH(OH)COCO(OOH)                                                                             GHKO     }
+  GPH502N = 5C+7H+N+9O;    {CH2(OOH)CH2CH(OH)COCO(OONO2)                                                                           PHKO     }
+  G1H509l = 5C+8H+N+7O;    {CH2(OOH)CH2CH(ONO2)CH(O.)CHO                                                                           1.HND    }
+  G1G505z = 5C+8H+N+9O;    {CH2(OOH)CH2CH(ONO2)CH(O.)CO(OOH)                                                                       1.GHN    }
+  G1P505P = 5C+7H+2N+11O;  {CH2(OOH)CH2CH(ONO2)CH(O.)CO(OONO2)                                                                     1.PHN    }
+  G1H501M = 5C+10H+N+7O;   {CH2(OOH)CH2CH(ONO2)CH(OH)CH2(O.)                                                                       1.HNO    }
+  G2H502r = 5C+10H+N+8O;   {CH2(OOH)CH2CH(ONO2)CH(OH)CH2(OO.)                                                                      2.HNO    }
+  GHN5046 = 5C+9H+N+7O;    {CH2(OOH)CH2CH(ONO2)CH(OH)CHO                                                                           HNDO     }
+  G3H501W = 5C+8H+N+9O;    {CH2(OOH)CH2CH(ONO2)CH(OH)CO(OO.)                                                                       3.HNK    }
+  GGH501n = 5C+9H+N+9O;    {CH2(OOH)CH2CH(ONO2)CH(OH)CO(OOH)                                                                       GHNO     }
+  GPH500P = 5C+8H+2N+11O;  {CH2(OOH)CH2CH(ONO2)CH(OH)CO(OONO2)                                                                     PHNO     }
+  G1H5058 = 5C+9H+2N+9O;   {CH2(OOH)CH2CH(ONO2)CH(ONO2)CH2(O.)                                                                     1.HNN    }
+  GHN505e = 5C+8H+2N+9O;   {CH2(OOH)CH2CH(ONO2)CH(ONO2)CHO                                                                         HNND     }
+  G3H502j = 5C+7H+2N+11O;  {CH2(OOH)CH2CH(ONO2)CH(ONO2)CO(OO.)                                                                     3.HNN    }
+  GGH503K = 5C+8H+2N+11O;  {CH2(OOH)CH2CH(ONO2)CH(ONO2)CO(OOH)                                                                     GHNN     }
+  GPH502A = 5C+7H+3N+13O;  {CH2(OOH)CH2CH(ONO2)CH(ONO2)CO(OONO2)                                                                   PHNN     }
+  G1H400e = 4C+8H+N+6O;    {CH2(OOH)CH2CH(ONO2)CH2(O.)                                                                             1.HN     }
+  G2H400a = 4C+8H+N+7O;    {CH2(OOH)CH2CH(ONO2)CH2(OO.)                                                                            2.HN     }
+  GHH400Z = 4C+9H+N+7O;    {CH2(OOH)CH2CH(ONO2)CH2(OOH)                                                                            HHN      }
+  G1H500o = 5C+10H+N+6O;   {CH2(OOH)CH2CH(ONO2)CH2CH2(O.)                                                                          1.HN     }
+  GHN5025 = 5C+9H+N+6O;    {CH2(OOH)CH2CH(ONO2)CH2CHO                                                                              HND      }
+  G3H500W = 5C+8H+N+8O;    {CH2(OOH)CH2CH(ONO2)CH2CO(OO.)                                                                          3.HNK    }
+  GGH500j = 5C+9H+N+8O;    {CH2(OOH)CH2CH(ONO2)CH2CO(OOH)                                                                          GHN      }
+  GPH500L = 5C+8H+2N+10O;  {CH2(OOH)CH2CH(ONO2)CH2CO(OONO2)                                                                        PHN      }
+  GHN400M = 4C+7H+N+6O;    {CH2(OOH)CH2CH(ONO2)CHO                                                                                 HND      }
+  G3H400I = 4C+6H+N+8O;    {CH2(OOH)CH2CH(ONO2)CO(OO.)                                                                             3.HNK    }
+  GGH400S = 4C+7H+N+8O;    {CH2(OOH)CH2CH(ONO2)CO(OOH)                                                                             GHN      }
+  GPH400F = 4C+6H+2N+10O;  {CH2(OOH)CH2CH(ONO2)CO(OONO2)                                                                           PHN      }
+  G1H505K = 5C+8H+N+7O;    {CH2(OOH)CH2CH(ONO2)COCH2(O.)                                                                           1.HNK    }
+  GHN506N = 5C+7H+N+7O;    {CH2(OOH)CH2CH(ONO2)COCHO                                                                               HNDK     }
+  G3H503v = 5C+6H+N+9O;    {CH2(OOH)CH2CH(ONO2)COCO(OO.)                                                                           3.HNK    }
+  GGH504U = 5C+7H+N+9O;    {CH2(OOH)CH2CH(ONO2)COCO(OOH)                                                                           GHNK     }
+  GPH502D = 5C+6H+2N+11O;  {CH2(OOH)CH2CH(ONO2)COCO(OONO2)                                                                         PHNK     }
+  G2H501T = 5C+9H+6O;      {CH2(OOH)CH2CH(OO.)CH(OH)CHO                                                                            2.HDO    }
+  G2G400k = 4C+7H+7O;      {CH2(OOH)CH2CH(OO.)CO(OOH)                                                                              2.GH     }
+  G2P400x = 4C+6H+N+9O;    {CH2(OOH)CH2CH(OO.)CO(OONO2)                                                                            2.PH     }
+  G2G504s = 5C+7H+8O;      {CH2(OOH)CH2CH(OO.)COCO(OOH)                                                                            2.GHK    }
+  G2P5066 = 5C+6H+N+10O;   {CH2(OOH)CH2CH(OO.)COCO(OONO2)                                                                          2.PHK    }
+  G1H502M = 5C+11H+6O;     {CH2(OOH)CH2CH(OOH)CH(OH)CH2(O.)                                                                        1.HHO    }
+  GHH501U = 5C+10H+6O;     {CH2(OOH)CH2CH(OOH)CH(OH)CHO                                                                            HHDO     }
+  G3H501X = 5C+9H+8O;      {CH2(OOH)CH2CH(OOH)CH(OH)CO(OO.)                                                                        3.HHK    }
+  GGH501o = 5C+10H+8O;     {CH2(OOH)CH2CH(OOH)CH(OH)CO(OOH)                                                                        GHHO     }
+  GPH501s = 5C+9H+N+10O;   {CH2(OOH)CH2CH(OOH)CH(OH)CO(OONO2)                                                                      PHHO     }
+  G1H400u = 4C+9H+5O;      {CH2(OOH)CH2CH(OOH)CH2(O.)                                                                              1.HH     }
+  GHH400c = 4C+10H+6O;     {CH2(OOH)CH2CH(OOH)CH2(OOH)                                                                             HHH      }
+  G1H500q = 5C+11H+5O;     {CH2(OOH)CH2CH(OOH)CH2CH2(O.)                                                                           1.HH     }
+  GHH400A = 4C+8H+5O;      {CH2(OOH)CH2CH(OOH)CHO                                                                                  HHD      }
+  G3H400T = 4C+7H+7O;      {CH2(OOH)CH2CH(OOH)CO(OO.)                                                                              3.HHK    }
+  GGH400b = 4C+8H+7O;      {CH2(OOH)CH2CH(OOH)CO(OOH)                                                                              GHH      }
+  GPH400e = 4C+7H+N+9O;    {CH2(OOH)CH2CH(OOH)CO(OONO2)                                                                            PHH      }
+  G3H5057 = 5C+7H+8O;      {CH2(OOH)CH2CH(OOH)COCO(OO.)                                                                            3.HHK    }
+  GGH504W = 5C+8H+8O;      {CH2(OOH)CH2CH(OOH)COCO(OOH)                                                                            GHHK     }
+  GPH504e = 5C+7H+N+10O;   {CH2(OOH)CH2CH(OOH)COCO(OONO2)                                                                          PHHK     }
+  G1H3002 = 3C+7H+3O;      {CH2(OOH)CH2CH2(O.)                                                                                     1.H      }
+  G2H3006 = 3C+7H+4O;      {CH2(OOH)CH2CH2(OO.)                                                                                    2.H      }
+  GHH3004 = 3C+8H+4O;      {CH2(OOH)CH2CH2(OOH)                                                                                    HH       }
+  G1G504Y = 5C+9H+6O;      {CH2(OOH)CH2CH2CH(O.)CO(OOH)                                                                            1.GH     }
+  G1P502b = 5C+8H+N+8O;    {CH2(OOH)CH2CH2CH(O.)CO(OONO2)                                                                          1.PH     }
+  G1H500I = 5C+11H+4O;     {CH2(OOH)CH2CH2CH(OH)CH2(O.)                                                                            1.HO     }
+  G2H500K = 5C+11H+5O;     {CH2(OOH)CH2CH2CH(OH)CH2(OO.)                                                                           2.HO     }
+  GHH5002 = 5C+12H+5O;     {CH2(OOH)CH2CH2CH(OH)CH2(OOH)                                                                           HHO      }
+  GHD5009 = 5C+10H+4O;     {CH2(OOH)CH2CH2CH(OH)CHO                                                                                HDO      }
+  G3H500C = 5C+9H+6O;      {CH2(OOH)CH2CH2CH(OH)CO(OO.)                                                                            3.HKO    }
+  GGH500E = 5C+10H+6O;     {CH2(OOH)CH2CH2CH(OH)CO(OOH)                                                                            GHO      }
+  GPH500E = 5C+9H+N+8O;    {CH2(OOH)CH2CH2CH(OH)CO(OONO2)                                                                          PHO      }
+  G1H501T = 5C+10H+N+6O;   {CH2(OOH)CH2CH2CH(ONO2)CH2(O.)                                                                          1.HN     }
+  G3H501j = 5C+8H+N+8O;    {CH2(OOH)CH2CH2CH(ONO2)CO(OO.)                                                                          3.HNK    }
+  GGH502T = 5C+9H+N+8O;    {CH2(OOH)CH2CH2CH(ONO2)CO(OOH)                                                                          GHN      }
+  GPH500c = 5C+8H+2N+10O;  {CH2(OOH)CH2CH2CH(ONO2)CO(OONO2)                                                                        PHN      }
+  G1H400C = 4C+9H+3O;      {CH2(OOH)CH2CH2CH2(O.)                                                                                  1.H      }
+  G1H5003 = 5C+11H+3O;     {CH2(OOH)CH2CH2CH2CH2(O.)                                                                               1.H      }
+  GHD4001 = 4C+8H+3O;      {CH2(OOH)CH2CH2CHO                                                                                      HD       }
+  G3H4005 = 4C+7H+5O;      {CH2(OOH)CH2CH2CO(OO.)                                                                                  3.HK     }
+  GGH4008 = 4C+8H+5O;      {CH2(OOH)CH2CH2CO(OOH)                                                                                  GH       }
+  GPH4006 = 4C+7H+N+7O;    {CH2(OOH)CH2CH2CO(OONO2)                                                                                PH       }
+  G1H502K = 5C+9H+4O;      {CH2(OOH)CH2CH2COCH2(O.)                                                                                1.HK     }
+  G2H501S = 5C+9H+5O;      {CH2(OOH)CH2CH2COCH2(OO.)                                                                               2.HK     }
+  GHH500I = 5C+10H+5O;     {CH2(OOH)CH2CH2COCH2(OOH)                                                                               HHK      }
+  GHD500m = 5C+8H+4O;      {CH2(OOH)CH2CH2COCHO                                                                                    HDK      }
+  G3H503r = 5C+7H+6O;      {CH2(OOH)CH2CH2COCO(OO.)                                                                                3.HKK    }
+  GGH501q = 5C+8H+6O;      {CH2(OOH)CH2CH2COCO(OOH)                                                                                GHK      }
+  GPH501u = 5C+7H+N+8O;    {CH2(OOH)CH2CH2COCO(OONO2)                                                                              PHK      }
+  GHD3000 = 3C+6H+3O;      {CH2(OOH)CH2CHO                                                                                         HD       }
+  G3H3000 = 3C+5H+5O;      {CH2(OOH)CH2CO(OO.)                                                                                     3.HK     }
+  GGH3000 = 3C+6H+5O;      {CH2(OOH)CH2CO(OOH)                                                                                     GH       }
+  GPH3000 = 3C+5H+N+7O;    {CH2(OOH)CH2CO(OONO2)                                                                                   PH       }
+  G1H50A9 = 5C+7H+5O;      {CH2(OOH)CH2COCH(O.)CHO                                                                                 1.HDK    }
+  G1G504C = 5C+7H+7O;      {CH2(OOH)CH2COCH(O.)CO(OOH)                                                                             1.GHK    }
+  G1P5063 = 5C+6H+N+9O;    {CH2(OOH)CH2COCH(O.)CO(OONO2)                                                                           1.PHK    }
+  G1H502Q = 5C+9H+5O;      {CH2(OOH)CH2COCH(OH)CH2(O.)                                                                             1.HKO    }
+  GHD500o = 5C+8H+5O;      {CH2(OOH)CH2COCH(OH)CHO                                                                                 HDKO     }
+  G3H501Z = 5C+7H+7O;      {CH2(OOH)CH2COCH(OH)CO(OO.)                                                                             3.HKK    }
+  GGH501p = 5C+8H+7O;      {CH2(OOH)CH2COCH(OH)CO(OOH)                                                                             GHKO     }
+  GPH501t = 5C+7H+N+9O;    {CH2(OOH)CH2COCH(OH)CO(OONO2)                                                                           PHKO     }
+  G1H505c = 5C+8H+N+7O;    {CH2(OOH)CH2COCH(ONO2)CH2(O.)                                                                           1.HNK    }
+  GHN505t = 5C+7H+N+7O;    {CH2(OOH)CH2COCH(ONO2)CHO                                                                               HNDK     }
+  G3H502y = 5C+6H+N+9O;    {CH2(OOH)CH2COCH(ONO2)CO(OO.)                                                                           3.HNK    }
+  GGH502A = 5C+7H+N+9O;    {CH2(OOH)CH2COCH(ONO2)CO(OOH)                                                                           GHNK     }
+  GPH502W = 5C+6H+2N+11O;  {CH2(OOH)CH2COCH(ONO2)CO(OONO2)                                                                         PHNK     }
+  G1H505i = 5C+9H+6O;      {CH2(OOH)CH2COCH(OOH)CH2(O.)                                                                            1.HHK    }
+  GHH5028 = 5C+8H+6O;      {CH2(OOH)CH2COCH(OOH)CHO                                                                                HHDK     }
+  G3H5032 = 5C+7H+8O;      {CH2(OOH)CH2COCH(OOH)CO(OO.)                                                                            3.HHK    }
+  GGH503a = 5C+8H+8O;      {CH2(OOH)CH2COCH(OOH)CO(OOH)                                                                            GHHK     }
+  GPH504B = 5C+7H+N+10O;   {CH2(OOH)CH2COCH(OOH)CO(OONO2)                                                                          PHHK     }
+  G1H400f = 4C+7H+4O;      {CH2(OOH)CH2COCH2(O.)                                                                                   1.HK     }
+  G2H400b = 4C+7H+5O;      {CH2(OOH)CH2COCH2(OO.)                                                                                  2.HK     }
+  GHH400D = 4C+8H+5O;      {CH2(OOH)CH2COCH2(OOH)                                                                                  HHK      }
+  G1H500u = 5C+9H+4O;      {CH2(OOH)CH2COCH2CH2(O.)                                                                                1.HK     }
+  GHD500K = 5C+8H+4O;      {CH2(OOH)CH2COCH2CHO                                                                                    HDK      }
+  G3H500X = 5C+7H+6O;      {CH2(OOH)CH2COCH2CO(OO.)                                                                                3.HKK    }
+  GGH500P = 5C+8H+6O;      {CH2(OOH)CH2COCH2CO(OOH)                                                                                GHK      }
+  GPH500T = 5C+7H+N+8O;    {CH2(OOH)CH2COCH2CO(OONO2)                                                                              PHK      }
+  GHD400D = 4C+6H+4O;      {CH2(OOH)CH2COCHO                                                                                       HDK      }
+  G3H400q = 4C+5H+6O;      {CH2(OOH)CH2COCO(OO.)                                                                                   3.HKK    }
+  GGH400W = 4C+6H+6O;      {CH2(OOH)CH2COCO(OOH)                                                                                   GHK      }
+  GPH400Z = 4C+5H+N+8O;    {CH2(OOH)CH2COCO(OONO2)                                                                                 PHK      }
+  G1H505n = 5C+7H+5O;      {CH2(OOH)CH2COCOCH2(O.)                                                                                 1.HKK    }
+  GHD501Q = 5C+6H+5O;      {CH2(OOH)CH2COCOCHO                                                                                     HDKK     }
+  G3H5042 = 5C+5H+7O;      {CH2(OOH)CH2COCOCO(OO.)                                                                                 3.HKK    }
+  GGH502D = 5C+6H+7O;      {CH2(OOH)CH2COCOCO(OOH)                                                                                 GHKK     }
+  GPH502Z = 5C+5H+N+9O;    {CH2(OOH)CH2COCOCO(OONO2)                                                                               PHKK     }
+  GHD2000 = 2C+4H+3O;      {CH2(OOH)CHO                                                                                            HD       }
+  G3H2000 = 2C+3H+5O;      {CH2(OOH)CO(OO.)                                                                                        3.HK     }
+  GGH2000 = 2C+4H+5O;      {CH2(OOH)CO(OOH)                                                                                        GH       }
+  GPH2000 = 2C+3H+N+7O;    {CH2(OOH)CO(OONO2)                                                                                      PH       }
+  G1H50Aw = 5C+7H+6O;      {CH2(OOH)COCH(O.)CH(OH)CHO                                                                              1.HDK    }
+  G1G5078 = 5C+7H+8O;      {CH2(OOH)COCH(O.)CH(OH)CO(OOH)                                                                          1.GHK    }
+  G1P506Y = 5C+6H+N+10O;   {CH2(OOH)COCH(O.)CH(OH)CO(OONO2)                                                                        1.PHK    }
+  G1H50BH = 5C+6H+N+8O;    {CH2(OOH)COCH(O.)CH(ONO2)CHO                                                                            1.HND    }
+  G1G507H = 5C+6H+N+10O;   {CH2(OOH)COCH(O.)CH(ONO2)CO(OOH)                                                                        1.GHN    }
+  G1P508L = 5C+5H+2N+12O;  {CH2(OOH)COCH(O.)CH(ONO2)CO(OONO2)                                                                      1.PHN    }
+  G1G507I = 5C+7H+9O;      {CH2(OOH)COCH(O.)CH(OOH)CO(OOH)                                                                         1.GHH    }
+  G1P508M = 5C+6H+N+11O;   {CH2(OOH)COCH(O.)CH(OOH)CO(OONO2)                                                                       1.PHH    }
+  G1H401v = 4C+7H+6O;      {CH2(OOH)COCH(O.)CH2(OOH)                                                                               1.HHK    }
+  G1H502b = 5C+7H+5O;      {CH2(OOH)COCH(O.)CH2CHO                                                                                 1.HDK    }
+  G1G503v = 5C+7H+7O;      {CH2(OOH)COCH(O.)CH2CO(OOH)                                                                             1.GHK    }
+  G1P501a = 5C+6H+N+9O;    {CH2(OOH)COCH(O.)CH2CO(OONO2)                                                                           1.PHK    }
+  G1H401d = 4C+5H+5O;      {CH2(OOH)COCH(O.)CHO                                                                                    1.HDK    }
+  G1G4018 = 4C+5H+7O;      {CH2(OOH)COCH(O.)CO(OOH)                                                                                1.GHK    }
+  G1P401S = 4C+4H+N+9O;    {CH2(OOH)COCH(O.)CO(OONO2)                                                                              1.PHK    }
+  G1H50C4 = 5C+7H+7O;      {CH2(OOH)COCH(O.)COCH2(OOH)                                                                             1.HHK    }
+  G1H50Bc = 5C+5H+6O;      {CH2(OOH)COCH(O.)COCHO                                                                                  1.HDK    }
+  G1G507J = 5C+5H+8O;      {CH2(OOH)COCH(O.)COCO(OOH)                                                                              1.GHK    }
+  G1P508N = 5C+4H+N+10O;   {CH2(OOH)COCH(O.)COCO(OONO2)                                                                            1.PHK    }
+  G1H50Br = 5C+7H+6O;      {CH2(OOH)COCH(OH)CH(O.)CHO                                                                              1.HDK    }
+  G1G503x = 5C+7H+8O;      {CH2(OOH)COCH(OH)CH(O.)CO(OOH)                                                                          1.GHK    }
+  G1P504o = 5C+6H+N+10O;   {CH2(OOH)COCH(OH)CH(O.)CO(OONO2)                                                                        1.PHK    }
+  GHD501I = 5C+8H+6O;      {CH2(OOH)COCH(OH)CH(OH)CHO                                                                              HDKOO    }
+  G3H503f = 5C+7H+8O;      {CH2(OOH)COCH(OH)CH(OH)CO(OO.)                                                                          3.HKK    }
+  GGH504I = 5C+8H+8O;      {CH2(OOH)COCH(OH)CH(OH)CO(OOH)                                                                          GHKOO    }
+  GPH504S = 5C+7H+N+10O;   {CH2(OOH)COCH(OH)CH(OH)CO(OONO2)                                                                        PHKOO    }
+  G1H509d = 5C+8H+N+8O;    {CH2(OOH)COCH(OH)CH(ONO2)CH2(O.)                                                                        1.HNK    }
+  GHN506m = 5C+7H+N+8O;    {CH2(OOH)COCH(OH)CH(ONO2)CHO                                                                            HNDKO    }
+  G3H504q = 5C+6H+N+10O;   {CH2(OOH)COCH(OH)CH(ONO2)CO(OO.)                                                                        3.HNK    }
+  GGH504b = 5C+7H+N+10O;   {CH2(OOH)COCH(OH)CH(ONO2)CO(OOH)                                                                        GHNKO    }
+  GPH504j = 5C+6H+2N+12O;  {CH2(OOH)COCH(OH)CH(ONO2)CO(OONO2)                                                                      PHNKO    }
+  G2G502u = 5C+7H+9O;      {CH2(OOH)COCH(OH)CH(OO.)CO(OOH)                                                                         2.GHK    }
+  G2P503r = 5C+6H+N+11O;   {CH2(OOH)COCH(OH)CH(OO.)CO(OONO2)                                                                       2.PHK    }
+  GHH5036 = 5C+8H+7O;      {CH2(OOH)COCH(OH)CH(OOH)CHO                                                                             HHDKO    }
+  G3H5056 = 5C+7H+9O;      {CH2(OOH)COCH(OH)CH(OOH)CO(OO.)                                                                         3.HHK    }
+  GGH504c = 5C+8H+9O;      {CH2(OOH)COCH(OH)CH(OOH)CO(OOH)                                                                         GHHKO    }
+  GPH504k = 5C+7H+N+11O;   {CH2(OOH)COCH(OH)CH(OOH)CO(OONO2)                                                                       PHHKO    }
+  G1H4011 = 4C+7H+5O;      {CH2(OOH)COCH(OH)CH2(O.)                                                                                1.HKO    }
+  G2H400r = 4C+7H+6O;      {CH2(OOH)COCH(OH)CH2(OO.)                                                                               2.HKO    }
+  G1H5049 = 5C+9H+5O;      {CH2(OOH)COCH(OH)CH2CH2(O.)                                                                             1.HKO    }
+  GHD500p = 5C+8H+5O;      {CH2(OOH)COCH(OH)CH2CHO                                                                                 HDKO     }
+  G3H501c = 5C+7H+7O;      {CH2(OOH)COCH(OH)CH2CO(OO.)                                                                             3.HKK    }
+  GGH501t = 5C+8H+7O;      {CH2(OOH)COCH(OH)CH2CO(OOH)                                                                             GHKO     }
+  GPH501x = 5C+7H+N+9O;    {CH2(OOH)COCH(OH)CH2CO(OONO2)                                                                           PHKO     }
+  GHD400J = 4C+6H+5O;      {CH2(OOH)COCH(OH)CHO                                                                                    HDKO     }
+  G3H400e = 4C+5H+7O;      {CH2(OOH)COCH(OH)CO(OO.)                                                                                3.HKK    }
+  GGH400f = 4C+6H+7O;      {CH2(OOH)COCH(OH)CO(OOH)                                                                                GHKO     }
+  GPH400i = 4C+5H+N+9O;    {CH2(OOH)COCH(OH)CO(OONO2)                                                                              PHKO     }
+  G1H50B1 = 5C+7H+6O;      {CH2(OOH)COCH(OH)COCH2(O.)                                                                              1.HKK    }
+  GHD501O = 5C+6H+6O;      {CH2(OOH)COCH(OH)COCHO                                                                                  HDKKO    }
+  G3H505C = 5C+5H+8O;      {CH2(OOH)COCH(OH)COCO(OO.)                                                                              3.HKK    }
+  GGH504d = 5C+6H+8O;      {CH2(OOH)COCH(OH)COCO(OOH)                                                                              GHKKO    }
+  GPH504l = 5C+5H+N+10O;   {CH2(OOH)COCH(OH)COCO(OONO2)                                                                            PHKKO    }
+  G1H50C3 = 5C+8H+N+9O;    {CH2(OOH)COCH(ONO2)CH(O.)CH2(OOH)                                                                       1.HHN    }
+  G1H50BI = 5C+6H+N+8O;    {CH2(OOH)COCH(ONO2)CH(O.)CHO                                                                            1.HND    }
+  G1G507T = 5C+6H+N+10O;   {CH2(OOH)COCH(ONO2)CH(O.)CO(OOH)                                                                        1.GHN    }
+  G1P508q = 5C+5H+2N+12O;  {CH2(OOH)COCH(ONO2)CH(O.)CO(OONO2)                                                                      1.PHN    }
+  G1H509Z = 5C+8H+N+8O;    {CH2(OOH)COCH(ONO2)CH(OH)CH2(O.)                                                                        1.HNK    }
+  G2H503k = 5C+8H+N+9O;    {CH2(OOH)COCH(ONO2)CH(OH)CH2(OO.)                                                                       2.HNK    }
+  GHN506R = 5C+7H+N+8O;    {CH2(OOH)COCH(ONO2)CH(OH)CHO                                                                            HNDKO    }
+  G3H504E = 5C+6H+N+10O;   {CH2(OOH)COCH(ONO2)CH(OH)CO(OO.)                                                                        3.HNK    }
+  GGH504J = 5C+7H+N+10O;   {CH2(OOH)COCH(ONO2)CH(OH)CO(OOH)                                                                        GHNKO    }
+  GPH502u = 5C+6H+2N+12O;  {CH2(OOH)COCH(ONO2)CH(OH)CO(OONO2)                                                                      PHNKO    }
+  G1H509W = 5C+7H+2N+10O;  {CH2(OOH)COCH(ONO2)CH(ONO2)CH2(O.)                                                                      1.HNN    }
+  G2H504A = 5C+7H+2N+11O;  {CH2(OOH)COCH(ONO2)CH(ONO2)CH2(OO.)                                                                     2.HNN    }
+  GHH5039 = 5C+8H+2N+11O;  {CH2(OOH)COCH(ONO2)CH(ONO2)CH2(OOH)                                                                     HHNNK    }
+  GHN506T = 5C+6H+2N+10O;  {CH2(OOH)COCH(ONO2)CH(ONO2)CHO                                                                          HNNDK    }
+  G3H504F = 5C+5H+2N+12O;  {CH2(OOH)COCH(ONO2)CH(ONO2)CO(OO.)                                                                      3.HNN    }
+  GGH504n = 5C+6H+2N+12O;  {CH2(OOH)COCH(ONO2)CH(ONO2)CO(OOH)                                                                      GHNNK    }
+  GPH504p = 5C+5H+3N+14O;  {CH2(OOH)COCH(ONO2)CH(ONO2)CO(OONO2)                                                                    PHNNK    }
+  G2G5062 = 5C+6H+N+11O;   {CH2(OOH)COCH(ONO2)CH(OO.)CO(OOH)                                                                       2.GHN    }
+  G2P507u = 5C+5H+2N+13O;  {CH2(OOH)COCH(ONO2)CH(OO.)CO(OONO2)                                                                     2.PHN    }
+  G3H505d = 5C+6H+N+11O;   {CH2(OOH)COCH(ONO2)CH(OOH)CO(OO.)                                                                       3.HHN    }
+  GGH505S = 5C+7H+N+11O;   {CH2(OOH)COCH(ONO2)CH(OOH)CO(OOH)                                                                       GHHNK    }
+  GPH505a = 5C+6H+2N+13O;  {CH2(OOH)COCH(ONO2)CH(OOH)CO(OONO2)                                                                     PHHNK    }
+  G1H4012 = 4C+6H+N+7O;    {CH2(OOH)COCH(ONO2)CH2(O.)                                                                              1.HNK    }
+  G2H400p = 4C+6H+N+8O;    {CH2(OOH)COCH(ONO2)CH2(OO.)                                                                             2.HNK    }
+  GHH400m = 4C+7H+N+8O;    {CH2(OOH)COCH(ONO2)CH2(OOH)                                                                             HHNK     }
+  G1H5047 = 5C+8H+N+7O;    {CH2(OOH)COCH(ONO2)CH2CH2(O.)                                                                           1.HNK    }
+  GHN5047 = 5C+7H+N+7O;    {CH2(OOH)COCH(ONO2)CH2CHO                                                                               HNDK     }
+  G3H501a = 5C+6H+N+9O;    {CH2(OOH)COCH(ONO2)CH2CO(OO.)                                                                           3.HNK    }
+  GGH501r = 5C+7H+N+9O;    {CH2(OOH)COCH(ONO2)CH2CO(OOH)                                                                           GHNK     }
+  GPH501v = 5C+6H+2N+11O;  {CH2(OOH)COCH(ONO2)CH2CO(OONO2)                                                                         PHNK     }
+  GHN401A = 4C+5H+N+7O;    {CH2(OOH)COCH(ONO2)CHO                                                                                  HNDK     }
+  G3H400n = 4C+4H+N+9O;    {CH2(OOH)COCH(ONO2)CO(OO.)                                                                              3.HNK    }
+  GGH400u = 4C+5H+N+9O;    {CH2(OOH)COCH(ONO2)CO(OOH)                                                                              GHNK     }
+  GPH400n = 4C+4H+2N+11O;  {CH2(OOH)COCH(ONO2)CO(OONO2)                                                                            PHNK     }
+  G1H509b = 5C+6H+N+8O;    {CH2(OOH)COCH(ONO2)COCH2(O.)                                                                            1.HNK    }
+  G2H504B = 5C+6H+N+9O;    {CH2(OOH)COCH(ONO2)COCH2(OO.)                                                                           2.HNK    }
+  GHH503A = 5C+7H+N+9O;    {CH2(OOH)COCH(ONO2)COCH2(OOH)                                                                           HHNKK    }
+  GHN506u = 5C+5H+N+8O;    {CH2(OOH)COCH(ONO2)COCHO                                                                                HNDKK    }
+  G3H505G = 5C+4H+N+10O;   {CH2(OOH)COCH(ONO2)COCO(OO.)                                                                            3.HNK    }
+  GGH505R = 5C+5H+N+10O;   {CH2(OOH)COCH(ONO2)COCO(OOH)                                                                            GHNKK    }
+  GPH504q = 5C+4H+2N+12O;  {CH2(OOH)COCH(ONO2)COCO(OONO2)                                                                          PHNKK    }
+  G2G504f = 5C+7H+9O;      {CH2(OOH)COCH(OO.)CH(OH)CO(OOH)                                                                         2.GHK    }
+  G2P505s = 5C+6H+N+11O;   {CH2(OOH)COCH(OO.)CH(OH)CO(OONO2)                                                                       2.PHK    }
+  G2H504F = 5C+6H+N+9O;    {CH2(OOH)COCH(OO.)CH(ONO2)CHO                                                                           2.HND    }
+  G2G504u = 5C+6H+N+11O;   {CH2(OOH)COCH(OO.)CH(ONO2)CO(OOH)                                                                       2.GHN    }
+  G2P5068 = 5C+5H+2N+13O;  {CH2(OOH)COCH(OO.)CH(ONO2)CO(OONO2)                                                                     2.PHN    }
+  G2H501U = 5C+7H+6O;      {CH2(OOH)COCH(OO.)CH2CHO                                                                                2.HDK    }
+  G2G502t = 5C+7H+8O;      {CH2(OOH)COCH(OO.)CH2CO(OOH)                                                                            2.GHK    }
+  G2P501M = 5C+6H+N+10O;   {CH2(OOH)COCH(OO.)CH2CO(OONO2)                                                                          2.PHK    }
+  G2G400w = 4C+5H+8O;      {CH2(OOH)COCH(OO.)CO(OOH)                                                                               2.GHK    }
+  G2P401I = 4C+4H+N+10O;   {CH2(OOH)COCH(OO.)CO(OONO2)                                                                             2.PHK    }
+  G2H5042 = 5C+5H+7O;      {CH2(OOH)COCH(OO.)COCHO                                                                                 2.HDK    }
+  G2G504w = 5C+5H+9O;      {CH2(OOH)COCH(OO.)COCO(OOH)                                                                             2.GHK    }
+  G2P506A = 5C+4H+N+11O;   {CH2(OOH)COCH(OO.)COCO(OONO2)                                                                           2.PHK    }
+  G1H50C7 = 5C+7H+7O;      {CH2(OOH)COCH(OOH)CH(O.)CHO                                                                             1.HHD    }
+  G1G503w = 5C+7H+9O;      {CH2(OOH)COCH(OOH)CH(O.)CO(OOH)                                                                         1.GHH    }
+  G1P504n = 5C+6H+N+11O;   {CH2(OOH)COCH(OOH)CH(O.)CO(OONO2)                                                                       1.PHH    }
+  GHH502W = 5C+8H+7O;      {CH2(OOH)COCH(OOH)CH(OH)CHO                                                                             HHDKO    }
+  G3H503d = 5C+7H+9O;      {CH2(OOH)COCH(OOH)CH(OH)CO(OO.)                                                                         3.HHK    }
+  GGH504F = 5C+8H+9O;      {CH2(OOH)COCH(OOH)CH(OH)CO(OOH)                                                                         GHHKO    }
+  GPH504P = 5C+7H+N+11O;   {CH2(OOH)COCH(OOH)CH(OH)CO(OONO2)                                                                       PHHKO    }
+  GHH503C = 5C+7H+N+9O;    {CH2(OOH)COCH(OOH)CH(ONO2)CHO                                                                           HHNDK    }
+  G3H5059 = 5C+6H+N+11O;   {CH2(OOH)COCH(OOH)CH(ONO2)CO(OO.)                                                                       3.HHN    }
+  GGH504Y = 5C+7H+N+11O;   {CH2(OOH)COCH(OOH)CH(ONO2)CO(OOH)                                                                       GHHNK    }
+  GPH504g = 5C+6H+2N+13O;  {CH2(OOH)COCH(OOH)CH(ONO2)CO(OONO2)                                                                     PHHNK    }
+  G2G502r = 5C+7H+10O;     {CH2(OOH)COCH(OOH)CH(OO.)CO(OOH)                                                                        2.GHH    }
+  G2P503p = 5C+6H+N+12O;   {CH2(OOH)COCH(OOH)CH(OO.)CO(OONO2)                                                                      2.PHH    }
+  G3H505B = 5C+7H+10O;     {CH2(OOH)COCH(OOH)CH(OOH)CO(OO.)                                                                        3.HHH    }
+  GGH504Z = 5C+8H+10O;     {CH2(OOH)COCH(OOH)CH(OOH)CO(OOH)                                                                        GHHHK    }
+  GPH504h = 5C+7H+N+12O;   {CH2(OOH)COCH(OOH)CH(OOH)CO(OONO2)                                                                      PHHHK    }
+  G1H4013 = 4C+7H+6O;      {CH2(OOH)COCH(OOH)CH2(O.)                                                                               1.HHK    }
+  G2H400q = 4C+7H+7O;      {CH2(OOH)COCH(OOH)CH2(OO.)                                                                              2.HHK    }
+  GHH400n = 4C+8H+7O;      {CH2(OOH)COCH(OOH)CH2(OOH)                                                                              HHHK     }
+  G1H5048 = 5C+9H+6O;      {CH2(OOH)COCH(OOH)CH2CH2(O.)                                                                            1.HHK    }
+  GHH501W = 5C+8H+6O;      {CH2(OOH)COCH(OOH)CH2CHO                                                                                HHDK     }
+  G3H501b = 5C+7H+8O;      {CH2(OOH)COCH(OOH)CH2CO(OO.)                                                                            3.HHK    }
+  GGH501s = 5C+8H+8O;      {CH2(OOH)COCH(OOH)CH2CO(OOH)                                                                            GHHK     }
+  GPH501w = 5C+7H+N+10O;   {CH2(OOH)COCH(OOH)CH2CO(OONO2)                                                                          PHHK     }
+  GHH400b = 4C+6H+6O;      {CH2(OOH)COCH(OOH)CHO                                                                                   HHDK     }
+  G3H400d = 4C+5H+8O;      {CH2(OOH)COCH(OOH)CO(OO.)                                                                               3.HHK    }
+  GGH400m = 4C+6H+8O;      {CH2(OOH)COCH(OOH)CO(OOH)                                                                               GHHK     }
+  GPH400r = 4C+5H+N+10O;   {CH2(OOH)COCH(OOH)CO(OONO2)                                                                             PHHK     }
+  GHH502u = 5C+6H+7O;      {CH2(OOH)COCH(OOH)COCHO                                                                                 HHDKK    }
+  G3H505A = 5C+5H+9O;      {CH2(OOH)COCH(OOH)COCO(OO.)                                                                             3.HHK    }
+  GGH504a = 5C+6H+9O;      {CH2(OOH)COCH(OOH)COCO(OOH)                                                                             GHHKK    }
+  GPH504i = 5C+5H+N+11O;   {CH2(OOH)COCH(OOH)COCO(OONO2)                                                                           PHHKK    }
+  G1H3003 = 3C+5H+4O;      {CH2(OOH)COCH2(O.)                                                                                      1.HK     }
+  G2H3002 = 3C+5H+5O;      {CH2(OOH)COCH2(OO.)                                                                                     2.HK     }
+  GHH3002 = 3C+6H+5O;      {CH2(OOH)COCH2(OOH)                                                                                     HHK      }
+  G1H502Z = 5C+9H+6O;      {CH2(OOH)COCH2CH(O.)CH2(OOH)                                                                            1.HHK    }
+  G1H502c = 5C+7H+5O;      {CH2(OOH)COCH2CH(O.)CHO                                                                                 1.HDK    }
+  G1G501P = 5C+7H+7O;      {CH2(OOH)COCH2CH(O.)CO(OOH)                                                                             1.GHK    }
+  G1P501b = 5C+6H+N+9O;    {CH2(OOH)COCH2CH(O.)CO(OONO2)                                                                           1.PHK    }
+  G1H501F = 5C+9H+5O;      {CH2(OOH)COCH2CH(OH)CH2(O.)                                                                             1.HKO    }
+  G2H502k = 5C+9H+6O;      {CH2(OOH)COCH2CH(OH)CH2(OO.)                                                                            2.HKO    }
+  GHD500d = 5C+8H+5O;      {CH2(OOH)COCH2CH(OH)CHO                                                                                 HDKO     }
+  G3H501H = 5C+7H+7O;      {CH2(OOH)COCH2CH(OH)CO(OO.)                                                                             3.HKK    }
+  GGH501Y = 5C+8H+7O;      {CH2(OOH)COCH2CH(OH)CO(OOH)                                                                             GHKO     }
+  GPH501f = 5C+7H+N+9O;    {CH2(OOH)COCH2CH(OH)CO(OONO2)                                                                           PHKO     }
+  G1H5044 = 5C+8H+N+7O;    {CH2(OOH)COCH2CH(ONO2)CH2(O.)                                                                           1.HNK    }
+  G2H502j = 5C+8H+N+8O;    {CH2(OOH)COCH2CH(ONO2)CH2(OO.)                                                                          2.HNK    }
+  GHH501Q = 5C+9H+N+8O;    {CH2(OOH)COCH2CH(ONO2)CH2(OOH)                                                                          HHNK     }
+  GHN5048 = 5C+7H+N+7O;    {CH2(OOH)COCH2CH(ONO2)CHO                                                                               HNDK     }
+  G3H501e = 5C+6H+N+9O;    {CH2(OOH)COCH2CH(ONO2)CO(OO.)                                                                           3.HNK    }
+  GGH501v = 5C+7H+N+9O;    {CH2(OOH)COCH2CH(ONO2)CO(OOH)                                                                           GHNK     }
+  GPH501z = 5C+6H+2N+11O;  {CH2(OOH)COCH2CH(ONO2)CO(OONO2)                                                                         PHNK     }
+  G2H501Q = 5C+9H+7O;      {CH2(OOH)COCH2CH(OO.)CH2(OOH)                                                                           2.HHK    }
+  G2H501W = 5C+7H+6O;      {CH2(OOH)COCH2CH(OO.)CHO                                                                                2.HDK    }
+  G2G5019 = 5C+7H+8O;      {CH2(OOH)COCH2CH(OO.)CO(OOH)                                                                            2.GHK    }
+  G2P501N = 5C+6H+N+10O;   {CH2(OOH)COCH2CH(OO.)CO(OONO2)                                                                          2.PHK    }
+  G1H5045 = 5C+9H+6O;      {CH2(OOH)COCH2CH(OOH)CH2(O.)                                                                            1.HHK    }
+  GHH501R = 5C+10H+7O;     {CH2(OOH)COCH2CH(OOH)CH2(OOH)                                                                           HHHK     }
+  GHH501X = 5C+8H+6O;      {CH2(OOH)COCH2CH(OOH)CHO                                                                                HHDK     }
+  G3H501f = 5C+7H+8O;      {CH2(OOH)COCH2CH(OOH)CO(OO.)                                                                            3.HHK    }
+  GGH501w = 5C+8H+8O;      {CH2(OOH)COCH2CH(OOH)CO(OOH)                                                                            GHHK     }
+  GPH5021 = 5C+7H+N+10O;   {CH2(OOH)COCH2CH(OOH)CO(OONO2)                                                                          PHHK     }
+  G1H400K = 4C+7H+4O;      {CH2(OOH)COCH2CH2(O.)                                                                                   1.HK     }
+  G2H400H = 4C+7H+5O;      {CH2(OOH)COCH2CH2(OO.)                                                                                  2.HK     }
+  G1H500y = 5C+9H+4O;      {CH2(OOH)COCH2CH2CH2(O.)                                                                                1.HK     }
+  G2H501R = 5C+9H+5O;      {CH2(OOH)COCH2CH2CH2(OO.)                                                                               2.HK     }
+  GHD500A = 5C+8H+4O;      {CH2(OOH)COCH2CH2CHO                                                                                    HDK      }
+  G3H500D = 5C+7H+6O;      {CH2(OOH)COCH2CH2CO(OO.)                                                                                3.HKK    }
+  GGH500F = 5C+8H+6O;      {CH2(OOH)COCH2CH2CO(OOH)                                                                                GHK      }
+  GPH500F = 5C+7H+N+8O;    {CH2(OOH)COCH2CH2CO(OONO2)                                                                              PHK      }
+  GHD4004 = 4C+6H+4O;      {CH2(OOH)COCH2CHO                                                                                       HDK      }
+  G3H4007 = 4C+5H+6O;      {CH2(OOH)COCH2CO(OO.)                                                                                   3.HKK    }
+  GGH400A = 4C+6H+6O;      {CH2(OOH)COCH2CO(OOH)                                                                                   GHK      }
+  GPH400A = 4C+5H+N+8O;    {CH2(OOH)COCH2CO(OONO2)                                                                                 PHK      }
+  G1H5046 = 5C+7H+5O;      {CH2(OOH)COCH2COCH2(O.)                                                                                 1.HKK    }
+  G2H502m = 5C+7H+6O;      {CH2(OOH)COCH2COCH2(OO.)                                                                                2.HKK    }
+  GHH501T = 5C+8H+6O;      {CH2(OOH)COCH2COCH2(OOH)                                                                                HHKK     }
+  GHD500r = 5C+6H+5O;      {CH2(OOH)COCH2COCHO                                                                                     HDKK     }
+  G3H503s = 5C+5H+7O;      {CH2(OOH)COCH2COCO(OO.)                                                                                 3.HKK    }
+  GGH501x = 5C+6H+7O;      {CH2(OOH)COCH2COCO(OOH)                                                                                 GHKK     }
+  GPH5022 = 5C+5H+N+9O;    {CH2(OOH)COCH2COCO(OONO2)                                                                               PHKK     }
+  GHD3001 = 3C+4H+4O;      {CH2(OOH)COCHO                                                                                          HDK      }
+  G3H3008 = 3C+3H+6O;      {CH2(OOH)COCO(OO.)                                                                                      3.HKK    }
+  GGH3006 = 3C+4H+6O;      {CH2(OOH)COCO(OOH)                                                                                      GHK      }
+  GPH3006 = 3C+3H+N+8O;    {CH2(OOH)COCO(OONO2)                                                                                    PHK      }
+  G1H50BJ = 5C+5H+6O;      {CH2(OOH)COCOCH(O.)CHO                                                                                  1.HDK    }
+  G1G507X = 5C+5H+8O;      {CH2(OOH)COCOCH(O.)CO(OOH)                                                                              1.GHK    }
+  G1P509R = 5C+4H+N+10O;   {CH2(OOH)COCOCH(O.)CO(OONO2)                                                                            1.PHK    }
+  G1H509h = 5C+7H+6O;      {CH2(OOH)COCOCH(OH)CH2(O.)                                                                              1.HKK    }
+  GHD501S = 5C+6H+6O;      {CH2(OOH)COCOCH(OH)CHO                                                                                  HDKKO    }
+  G3H5052 = 5C+5H+8O;      {CH2(OOH)COCOCH(OH)CO(OO.)                                                                              3.HKK    }
+  GGH504L = 5C+6H+8O;      {CH2(OOH)COCOCH(OH)CO(OOH)                                                                              GHKKO    }
+  GPH504U = 5C+5H+N+10O;   {CH2(OOH)COCOCH(OH)CO(OONO2)                                                                            PHKKO    }
+  G1H509f = 5C+6H+N+8O;    {CH2(OOH)COCOCH(ONO2)CH2(O.)                                                                            1.HNK    }
+  GHN506U = 5C+5H+N+8O;    {CH2(OOH)COCOCH(ONO2)CHO                                                                                HNDKK    }
+  G3H504G = 5C+4H+N+10O;   {CH2(OOH)COCOCH(ONO2)CO(OO.)                                                                            3.HNK    }
+  GGH504o = 5C+5H+N+10O;   {CH2(OOH)COCOCH(ONO2)CO(OOH)                                                                            GHNKK    }
+  GPH5054 = 5C+4H+2N+12O;  {CH2(OOH)COCOCH(ONO2)CO(OONO2)                                                                          PHNKK    }
+  G2G5064 = 5C+5H+9O;      {CH2(OOH)COCOCH(OO.)CO(OOH)                                                                             2.GHK    }
+  G2P507x = 5C+4H+N+11O;   {CH2(OOH)COCOCH(OO.)CO(OONO2)                                                                           2.PHK    }
+  GHH503F = 5C+6H+7O;      {CH2(OOH)COCOCH(OOH)CHO                                                                                 HHDKK    }
+  G3H505U = 5C+5H+9O;      {CH2(OOH)COCOCH(OOH)CO(OO.)                                                                             3.HHK    }
+  GGH505T = 5C+6H+9O;      {CH2(OOH)COCOCH(OOH)CO(OOH)                                                                             GHHKK    }
+  GPH505c = 5C+5H+N+11O;   {CH2(OOH)COCOCH(OOH)CO(OONO2)                                                                           PHHKK    }
+  G1H4014 = 4C+5H+5O;      {CH2(OOH)COCOCH2(O.)                                                                                    1.HKK    }
+  G2H400s = 4C+5H+6O;      {CH2(OOH)COCOCH2(OO.)                                                                                   2.HKK    }
+  GHH400o = 4C+6H+6O;      {CH2(OOH)COCOCH2(OOH)                                                                                   HHKK     }
+  G1H504A = 5C+7H+5O;      {CH2(OOH)COCOCH2CH2(O.)                                                                                 1.HKK    }
+  GHD500q = 5C+6H+5O;      {CH2(OOH)COCOCH2CHO                                                                                     HDKK     }
+  G3H501d = 5C+5H+7O;      {CH2(OOH)COCOCH2CO(OO.)                                                                                 3.HKK    }
+  GGH501u = 5C+6H+7O;      {CH2(OOH)COCOCH2CO(OOH)                                                                                 GHKK     }
+  GPH501y = 5C+5H+N+9O;    {CH2(OOH)COCOCH2CO(OONO2)                                                                               PHKK     }
+  GHD400N = 4C+4H+5O;      {CH2(OOH)COCOCHO                                                                                        HDKK     }
+  G3H400v = 4C+3H+7O;      {CH2(OOH)COCOCO(OO.)                                                                                    3.HKK    }
+  GGH400h = 4C+4H+7O;      {CH2(OOH)COCOCO(OOH)                                                                                    GHKK     }
+  GPH400o = 4C+3H+N+9O;    {CH2(OOH)COCOCO(OONO2)                                                                                  PHKK     }
+  G1H509i = 5C+5H+6O;      {CH2(OOH)COCOCOCH2(O.)                                                                                  1.HKK    }
+  GHD501W = 5C+4H+6O;      {CH2(OOH)COCOCOCHO                                                                                      HDKKK    }
+  G3H505P = 5C+3H+8O;      {CH2(OOH)COCOCOCO(OO.)                                                                                  3.HKK    }
+  GGH504q = 5C+4H+8O;      {CH2(OOH)COCOCOCO(OOH)                                                                                  GHKKK    }
+  GPH5055 = 5C+3H+N+10O;   {CH2(OOH)COCOCOCO(OONO2)                                                                                PHKKK    }
+  GCH2O   = C+2H+O;        {CH2O                                                                                                    d       }
+  GCH3O   = C+3H+O;        {CH3(O.)                                                                                                 1.      }
+  GCH3OH  = C+4H+O;        {CH3(OH)                                                                                                 o       }
+  GN01001 = C+3H+N+3O;     {CH3(ONO2)                                                                                               n       }
+  GCH3O2  = C+3H+2O;       {CH3(OO.)                                                                                                2.      }
+  GCH3OOH = C+4H+2O;       {CH3(OOH)                                                                                                h       }
+  G1O500W = 5C+11H+4O;     {CH3CH(O.)CH(OH)CH(OH)CH2(OH)                                                                           1.OOO    }
+  G1N5035 = 5C+10H+N+6O;   {CH3CH(O.)CH(OH)CH(OH)CH2(ONO2)                                                                         1.NOO    }
+  G1D501P = 5C+9H+4O;      {CH3CH(O.)CH(OH)CH(OH)CHO                                                                               1.DOO    }
+  G1A502U = 5C+9H+5O;      {CH3CH(O.)CH(OH)CH(OH)CO(OH)                                                                            1.AOO    }
+  G1G501Z = 5C+9H+6O;      {CH3CH(O.)CH(OH)CH(OH)CO(OOH)                                                                           1.GOO    }
+  G1P5026 = 5C+8H+N+8O;    {CH3CH(O.)CH(OH)CH(OH)CO(OONO2)                                                                         1.POO    }
+  G1N5034 = 5C+10H+N+6O;   {CH3CH(O.)CH(OH)CH(ONO2)CH2(OH)                                                                         1.NOO    }
+  G1N5033 = 5C+9H+2N+8O;   {CH3CH(O.)CH(OH)CH(ONO2)CH2(ONO2)                                                                       1.NNO    }
+  G1H507J = 5C+10H+N+7O;   {CH3CH(O.)CH(OH)CH(ONO2)CH2(OOH)                                                                        1.HNO    }
+  G1N5062 = 5C+8H+N+6O;    {CH3CH(O.)CH(OH)CH(ONO2)CHO                                                                             1.NDO    }
+  G1A502S = 5C+8H+N+7O;    {CH3CH(O.)CH(OH)CH(ONO2)CO(OH)                                                                          1.ANO    }
+  G1G501Y = 5C+8H+N+8O;    {CH3CH(O.)CH(OH)CH(ONO2)CO(OOH)                                                                         1.GNO    }
+  G1P5025 = 5C+7H+2N+10O;  {CH3CH(O.)CH(OH)CH(ONO2)CO(OONO2)                                                                       1.PNO    }
+  G1H501n = 5C+11H+5O;     {CH3CH(O.)CH(OH)CH(OOH)CH2(OH)                                                                          1.HOO    }
+  G1H504b = 5C+10H+N+7O;   {CH3CH(O.)CH(OH)CH(OOH)CH2(ONO2)                                                                        1.HNO    }
+  G1H50A8 = 5C+9H+5O;      {CH3CH(O.)CH(OH)CH(OOH)CHO                                                                              1.HDO    }
+  G1A505I = 5C+9H+6O;      {CH3CH(O.)CH(OH)CH(OOH)CO(OH)                                                                           1.AHO    }
+  G1G5045 = 5C+9H+7O;      {CH3CH(O.)CH(OH)CH(OOH)CO(OOH)                                                                          1.GHO    }
+  G1P505d = 5C+8H+N+9O;    {CH3CH(O.)CH(OH)CH(OOH)CO(OONO2)                                                                        1.PHO    }
+  G1O400C = 4C+9H+3O;      {CH3CH(O.)CH(OH)CH2(OH)                                                                                 1.OO     }
+  G1N400S = 4C+8H+N+5O;    {CH3CH(O.)CH(OH)CH2(ONO2)                                                                               1.NO     }
+  G1H401S = 4C+9H+4O;      {CH3CH(O.)CH(OH)CH2(OOH)                                                                                1.HO     }
+  G1O500F = 5C+11H+3O;     {CH3CH(O.)CH(OH)CH2CH2(OH)                                                                              1.OO     }
+  G1N500Y = 5C+10H+N+5O;   {CH3CH(O.)CH(OH)CH2CH2(ONO2)                                                                            1.NO     }
+  G1D500f = 5C+9H+3O;      {CH3CH(O.)CH(OH)CH2CHO                                                                                  1.DO     }
+  G1A500K = 5C+9H+4O;      {CH3CH(O.)CH(OH)CH2CO(OH)                                                                               1.AO     }
+  G1G500F = 5C+9H+5O;      {CH3CH(O.)CH(OH)CH2CO(OOH)                                                                              1.GO     }
+  G1P500K = 5C+8H+N+7O;    {CH3CH(O.)CH(OH)CH2CO(OONO2)                                                                            1.PO     }
+  G1D400A = 4C+7H+3O;      {CH3CH(O.)CH(OH)CHO                                                                                     1.DO     }
+  G1A400H = 4C+7H+4O;      {CH3CH(O.)CH(OH)CO(OH)                                                                                  1.AO     }
+  G1G400C = 4C+7H+5O;      {CH3CH(O.)CH(OH)CO(OOH)                                                                                 1.GO     }
+  G1P400H = 4C+6H+N+7O;    {CH3CH(O.)CH(OH)CO(OONO2)                                                                               1.PO     }
+  G1K500f = 5C+9H+4O;      {CH3CH(O.)CH(OH)COCH2(OH)                                                                               1.KOO    }
+  G1N5036 = 5C+8H+N+6O;    {CH3CH(O.)CH(OH)COCH2(ONO2)                                                                             1.NKO    }
+  G1H507R = 5C+9H+5O;      {CH3CH(O.)CH(OH)COCH2(OOH)                                                                              1.HKO    }
+  G1D5019 = 5C+7H+4O;      {CH3CH(O.)CH(OH)COCHO                                                                                   1.DKO    }
+  G1A502X = 5C+7H+5O;      {CH3CH(O.)CH(OH)COCO(OH)                                                                                1.AKO    }
+  G1G501a = 5C+7H+6O;      {CH3CH(O.)CH(OH)COCO(OOH)                                                                               1.GKO    }
+  G1P5027 = 5C+6H+N+8O;    {CH3CH(O.)CH(OH)COCO(OONO2)                                                                             1.PKO    }
+  G1N5045 = 5C+10H+N+6O;   {CH3CH(O.)CH(ONO2)CH(OH)CH2(OH)                                                                         1.NOO    }
+  G1N502b = 5C+9H+2N+8O;   {CH3CH(O.)CH(ONO2)CH(OH)CH2(ONO2)                                                                       1.NNO    }
+  G1H507W = 5C+10H+N+7O;   {CH3CH(O.)CH(ONO2)CH(OH)CH2(OOH)                                                                        1.HNO    }
+  G1N506B = 5C+8H+N+6O;    {CH3CH(O.)CH(ONO2)CH(OH)CHO                                                                             1.NDO    }
+  G1A501o = 5C+8H+N+7O;    {CH3CH(O.)CH(ONO2)CH(OH)CO(OH)                                                                          1.ANO    }
+  G1G504a = 5C+8H+N+8O;    {CH3CH(O.)CH(ONO2)CH(OH)CO(OOH)                                                                         1.GNO    }
+  G1P501u = 5C+7H+2N+10O;  {CH3CH(O.)CH(ONO2)CH(OH)CO(OONO2)                                                                       1.PNO    }
+  G1N501C = 5C+9H+2N+8O;   {CH3CH(O.)CH(ONO2)CH(ONO2)CH2(OH)                                                                       1.NNO    }
+  G1N502a = 5C+8H+3N+10O;  {CH3CH(O.)CH(ONO2)CH(ONO2)CH2(ONO2)                                                                     1.NNN    }
+  G1H507F = 5C+9H+2N+9O;   {CH3CH(O.)CH(ONO2)CH(ONO2)CH2(OOH)                                                                      1.HNN    }
+  G1N503k = 5C+7H+2N+8O;   {CH3CH(O.)CH(ONO2)CH(ONO2)CHO                                                                           1.NND    }
+  G1A501n = 5C+7H+2N+9O;   {CH3CH(O.)CH(ONO2)CH(ONO2)CO(OH)                                                                        1.ANN    }
+  G1G501s = 5C+7H+2N+10O;  {CH3CH(O.)CH(ONO2)CH(ONO2)CO(OOH)                                                                       1.GNN    }
+  G1P501s = 5C+6H+3N+12O;  {CH3CH(O.)CH(ONO2)CH(ONO2)CO(OONO2)                                                                     1.PNN    }
+  G1H501J = 5C+10H+N+7O;   {CH3CH(O.)CH(ONO2)CH(OOH)CH2(OH)                                                                        1.HNO    }
+  G1H504R = 5C+9H+2N+9O;   {CH3CH(O.)CH(ONO2)CH(OOH)CH2(ONO2)                                                                      1.HNN    }
+  G1H507s = 5C+8H+N+7O;    {CH3CH(O.)CH(ONO2)CH(OOH)CHO                                                                            1.HND    }
+  G1A504r = 5C+8H+N+8O;    {CH3CH(O.)CH(ONO2)CH(OOH)CO(OH)                                                                         1.AHN    }
+  G1G504g = 5C+8H+N+9O;    {CH3CH(O.)CH(ONO2)CH(OOH)CO(OOH)                                                                        1.GHN    }
+  G1P5057 = 5C+7H+2N+11O;  {CH3CH(O.)CH(ONO2)CH(OOH)CO(OONO2)                                                                      1.PHN    }
+  G1N400Q = 4C+8H+N+5O;    {CH3CH(O.)CH(ONO2)CH2(OH)                                                                               1.NO     }
+  G1N400P = 4C+7H+2N+7O;   {CH3CH(O.)CH(ONO2)CH2(ONO2)                                                                             1.NN     }
+  G1H401H = 4C+8H+N+6O;    {CH3CH(O.)CH(ONO2)CH2(OOH)                                                                              1.HN     }
+  G1N500C = 5C+10H+N+5O;   {CH3CH(O.)CH(ONO2)CH2CH2(OH)                                                                            1.NO     }
+  G1N500T = 5C+9H+2N+7O;   {CH3CH(O.)CH(ONO2)CH2CH2(ONO2)                                                                          1.NN     }
+  G1H502r = 5C+10H+N+6O;   {CH3CH(O.)CH(ONO2)CH2CH2(OOH)                                                                           1.HN     }
+  G1N503e = 5C+8H+N+5O;    {CH3CH(O.)CH(ONO2)CH2CHO                                                                                1.ND     }
+  G1A500G = 5C+8H+N+6O;    {CH3CH(O.)CH(ONO2)CH2CO(OH)                                                                             1.AN     }
+  G1G500E = 5C+8H+N+7O;    {CH3CH(O.)CH(ONO2)CH2CO(OOH)                                                                            1.GN     }
+  G1P500G = 5C+7H+2N+9O;   {CH3CH(O.)CH(ONO2)CH2CO(OONO2)                                                                          1.PN     }
+  G1N400f = 4C+6H+N+5O;    {CH3CH(O.)CH(ONO2)CHO                                                                                   1.ND     }
+  G1A400G = 4C+6H+N+6O;    {CH3CH(O.)CH(ONO2)CO(OH)                                                                                1.AN     }
+  G1G400B = 4C+6H+N+7O;    {CH3CH(O.)CH(ONO2)CO(OOH)                                                                               1.GN     }
+  G1P400G = 4C+5H+2N+9O;   {CH3CH(O.)CH(ONO2)CO(OONO2)                                                                             1.PN     }
+  G1N503S = 5C+8H+N+6O;    {CH3CH(O.)CH(ONO2)COCH2(OH)                                                                             1.NKO    }
+  G1N502d = 5C+7H+2N+8O;   {CH3CH(O.)CH(ONO2)COCH2(ONO2)                                                                           1.NNK    }
+  G1H507N = 5C+8H+N+7O;    {CH3CH(O.)CH(ONO2)COCH2(OOH)                                                                            1.HNK    }
+  G1N5067 = 5C+6H+N+6O;    {CH3CH(O.)CH(ONO2)COCHO                                                                                 1.NDK    }
+  G1A501q = 5C+6H+N+7O;    {CH3CH(O.)CH(ONO2)COCO(OH)                                                                              1.ANK    }
+  G1G501x = 5C+6H+N+8O;    {CH3CH(O.)CH(ONO2)COCO(OOH)                                                                             1.GNK    }
+  G1P501w = 5C+5H+2N+10O;  {CH3CH(O.)CH(ONO2)COCO(OONO2)                                                                           1.PNK    }
+  G1H501r = 5C+11H+5O;     {CH3CH(O.)CH(OOH)CH(OH)CH2(OH)                                                                          1.HOO    }
+  G1H504k = 5C+10H+N+7O;   {CH3CH(O.)CH(OOH)CH(OH)CH2(ONO2)                                                                        1.HNO    }
+  G1H50A7 = 5C+9H+5O;      {CH3CH(O.)CH(OOH)CH(OH)CHO                                                                              1.HDO    }
+  G1A507S = 5C+9H+6O;      {CH3CH(O.)CH(OOH)CH(OH)CO(OH)                                                                           1.AHO    }
+  G1G504I = 5C+9H+7O;      {CH3CH(O.)CH(OOH)CH(OH)CO(OOH)                                                                          1.GHO    }
+  G1P506D = 5C+8H+N+9O;    {CH3CH(O.)CH(OOH)CH(OH)CO(OONO2)                                                                        1.PHO    }
+  G1H501f = 5C+10H+N+7O;   {CH3CH(O.)CH(OOH)CH(ONO2)CH2(OH)                                                                        1.HNO    }
+  G1H501d = 5C+9H+2N+9O;   {CH3CH(O.)CH(OOH)CH(ONO2)CH2(ONO2)                                                                      1.HNN    }
+  G1H507D = 5C+8H+N+7O;    {CH3CH(O.)CH(OOH)CH(ONO2)CHO                                                                            1.HND    }
+  G1A502P = 5C+8H+N+8O;    {CH3CH(O.)CH(OOH)CH(ONO2)CO(OH)                                                                         1.AHN    }
+  G1G501v = 5C+8H+N+9O;    {CH3CH(O.)CH(OOH)CH(ONO2)CO(OOH)                                                                        1.GHN    }
+  G1P502g = 5C+7H+2N+11O;  {CH3CH(O.)CH(OOH)CH(ONO2)CO(OONO2)                                                                      1.PHN    }
+  G1H501l = 5C+11H+6O;     {CH3CH(O.)CH(OOH)CH(OOH)CH2(OH)                                                                         1.HHO    }
+  G1H50A6 = 5C+9H+6O;      {CH3CH(O.)CH(OOH)CH(OOH)CHO                                                                             1.HHD    }
+  G1A507R = 5C+9H+7O;      {CH3CH(O.)CH(OOH)CH(OOH)CO(OH)                                                                          1.AHH    }
+  G1G504G = 5C+9H+8O;      {CH3CH(O.)CH(OOH)CH(OOH)CO(OOH)                                                                         1.GHH    }
+  G1P506C = 5C+8H+N+10O;   {CH3CH(O.)CH(OOH)CH(OOH)CO(OONO2)                                                                       1.PHH    }
+  G1H401E = 4C+9H+4O;      {CH3CH(O.)CH(OOH)CH2(OH)                                                                                1.HO     }
+  G1H400Q = 4C+8H+N+6O;    {CH3CH(O.)CH(OOH)CH2(ONO2)                                                                              1.HN     }
+  G1H401Q = 4C+9H+5O;      {CH3CH(O.)CH(OOH)CH2(OOH)                                                                               1.HH     }
+  G1H5009 = 5C+11H+4O;     {CH3CH(O.)CH(OOH)CH2CH2(OH)                                                                             1.HO     }
+  G1H5019 = 5C+10H+N+6O;   {CH3CH(O.)CH(OOH)CH2CH2(ONO2)                                                                           1.HN     }
+  G1H503N = 5C+9H+4O;      {CH3CH(O.)CH(OOH)CH2CHO                                                                                 1.HD     }
+  G1A502A = 5C+9H+5O;      {CH3CH(O.)CH(OOH)CH2CO(OH)                                                                              1.AH     }
+  G1G501l = 5C+9H+6O;      {CH3CH(O.)CH(OOH)CH2CO(OOH)                                                                             1.GH     }
+  G1P502O = 5C+8H+N+8O;    {CH3CH(O.)CH(OOH)CH2CO(OONO2)                                                                           1.PH     }
+  G1H400R = 4C+7H+4O;      {CH3CH(O.)CH(OOH)CHO                                                                                    1.HD     }
+  G1A400g = 4C+7H+5O;      {CH3CH(O.)CH(OOH)CO(OH)                                                                                 1.AH     }
+  G1G400Y = 4C+7H+6O;      {CH3CH(O.)CH(OOH)CO(OOH)                                                                                1.GH     }
+  G1P400h = 4C+6H+N+8O;    {CH3CH(O.)CH(OOH)CO(OONO2)                                                                              1.PH     }
+  G1H502i = 5C+9H+5O;      {CH3CH(O.)CH(OOH)COCH2(OH)                                                                              1.HKO    }
+  G1H501u = 5C+8H+N+7O;    {CH3CH(O.)CH(OOH)COCH2(ONO2)                                                                            1.HNK    }
+  G1H507E = 5C+7H+5O;      {CH3CH(O.)CH(OOH)COCHO                                                                                  1.HDK    }
+  G1A502W = 5C+7H+6O;      {CH3CH(O.)CH(OOH)COCO(OH)                                                                               1.AHK    }
+  G1G501y = 5C+7H+7O;      {CH3CH(O.)CH(OOH)COCO(OOH)                                                                              1.GHK    }
+  G1P502i = 5C+6H+N+9O;    {CH3CH(O.)CH(OOH)COCO(OONO2)                                                                            1.PHK    }
+  G1O3002 = 3C+7H+2O;      {CH3CH(O.)CH2(OH)                                                                                       1.O      }
+  G1N3002 = 3C+6H+N+4O;    {CH3CH(O.)CH2(ONO2)                                                                                     1.N      }
+  G1H3000 = 3C+7H+3O;      {CH3CH(O.)CH2(OOH)                                                                                      1.H      }
+  G1O500H = 5C+11H+3O;     {CH3CH(O.)CH2CH(OH)CH2(OH)                                                                              1.OO     }
+  G1N500h = 5C+10H+N+5O;   {CH3CH(O.)CH2CH(OH)CH2(ONO2)                                                                            1.NO     }
+  G1H502m = 5C+11H+4O;     {CH3CH(O.)CH2CH(OH)CH2(OOH)                                                                             1.HO     }
+  G1D500e = 5C+9H+3O;      {CH3CH(O.)CH2CH(OH)CHO                                                                                  1.DO     }
+  G1A500Y = 5C+9H+4O;      {CH3CH(O.)CH2CH(OH)CO(OH)                                                                               1.AO     }
+  G1G500S = 5C+9H+5O;      {CH3CH(O.)CH2CH(OH)CO(OOH)                                                                              1.GO     }
+  G1P500Z = 5C+8H+N+7O;    {CH3CH(O.)CH2CH(OH)CO(OONO2)                                                                            1.PO     }
+  G1N500g = 5C+10H+N+5O;   {CH3CH(O.)CH2CH(ONO2)CH2(OH)                                                                            1.NO     }
+  G1N500e = 5C+9H+2N+7O;   {CH3CH(O.)CH2CH(ONO2)CH2(ONO2)                                                                          1.NN     }
+  G1H500M = 5C+10H+N+6O;   {CH3CH(O.)CH2CH(ONO2)CH2(OOH)                                                                           1.HN     }
+  G1N503O = 5C+8H+N+5O;    {CH3CH(O.)CH2CH(ONO2)CHO                                                                                1.ND     }
+  G1A500U = 5C+8H+N+6O;    {CH3CH(O.)CH2CH(ONO2)CO(OH)                                                                             1.AN     }
+  G1G500Q = 5C+8H+N+7O;    {CH3CH(O.)CH2CH(ONO2)CO(OOH)                                                                            1.GN     }
+  G1P500X = 5C+7H+2N+9O;   {CH3CH(O.)CH2CH(ONO2)CO(OONO2)                                                                          1.PN     }
+  G1H500D = 5C+11H+4O;     {CH3CH(O.)CH2CH(OOH)CH2(OH)                                                                             1.HO     }
+  G1H500B = 5C+10H+N+6O;   {CH3CH(O.)CH2CH(OOH)CH2(ONO2)                                                                           1.HN     }
+  G1H502l = 5C+11H+5O;     {CH3CH(O.)CH2CH(OOH)CH2(OOH)                                                                            1.HH     }
+  G1H503M = 5C+9H+4O;      {CH3CH(O.)CH2CH(OOH)CHO                                                                                 1.HD     }
+  G1A502C = 5C+9H+5O;      {CH3CH(O.)CH2CH(OOH)CO(OH)                                                                              1.AH     }
+  G1G501n = 5C+9H+6O;      {CH3CH(O.)CH2CH(OOH)CO(OOH)                                                                             1.GH     }
+  G1P502S = 5C+8H+N+8O;    {CH3CH(O.)CH2CH(OOH)CO(OONO2)                                                                           1.PH     }
+  G1O4005 = 4C+9H+2O;      {CH3CH(O.)CH2CH2(OH)                                                                                    1.O      }
+  G1N4004 = 4C+8H+N+4O;    {CH3CH(O.)CH2CH2(ONO2)                                                                                  1.N      }
+  G1H4003 = 4C+9H+3O;      {CH3CH(O.)CH2CH2(OOH)                                                                                   1.H      }
+  G1O5000 = 5C+11H+2O;     {CH3CH(O.)CH2CH2CH2(OH)                                                                                 1.O      }
+  G1N5001 = 5C+10H+N+4O;   {CH3CH(O.)CH2CH2CH2(ONO2)                                                                               1.N      }
+  G1H500Q = 5C+11H+3O;     {CH3CH(O.)CH2CH2CH2(OOH)                                                                                1.H      }
+  G1D5007 = 5C+9H+2O;      {CH3CH(O.)CH2CH2CHO                                                                                     1.D      }
+  G1A5000 = 5C+9H+3O;      {CH3CH(O.)CH2CH2CO(OH)                                                                                  1.A      }
+  G1G5000 = 5C+9H+4O;      {CH3CH(O.)CH2CH2CO(OOH)                                                                                 1.G      }
+  G1P5000 = 5C+8H+N+6O;    {CH3CH(O.)CH2CH2CO(OONO2)                                                                               1.P      }
+  G1D4000 = 4C+7H+2O;      {CH3CH(O.)CH2CHO                                                                                        1.D      }
+  G1A4006 = 4C+7H+3O;      {CH3CH(O.)CH2CO(OH)                                                                                     1.A      }
+  G1G4006 = 4C+7H+4O;      {CH3CH(O.)CH2CO(OOH)                                                                                    1.G      }
+  G1P4006 = 4C+6H+N+6O;    {CH3CH(O.)CH2CO(OONO2)                                                                                  1.P      }
+  G1K500C = 5C+9H+3O;      {CH3CH(O.)CH2COCH2(OH)                                                                                  1.KO     }
+  G1N500j = 5C+8H+N+5O;    {CH3CH(O.)CH2COCH2(ONO2)                                                                                1.NK     }
+  G1H500N = 5C+9H+4O;      {CH3CH(O.)CH2COCH2(OOH)                                                                                 1.HK     }
+  G1D500W = 5C+7H+3O;      {CH3CH(O.)CH2COCHO                                                                                      1.DK     }
+  G1A500a = 5C+7H+4O;      {CH3CH(O.)CH2COCO(OH)                                                                                   1.AK     }
+  G1G500U = 5C+7H+5O;      {CH3CH(O.)CH2COCO(OOH)                                                                                  1.GK     }
+  G1P500b = 5C+6H+N+7O;    {CH3CH(O.)CH2COCO(OONO2)                                                                                1.PK     }
+  G103001 = 3C+7H+O;       {CH3CH(O.)CH3                                                                                           1.       }
+  G1D3001 = 3C+5H+2O;      {CH3CH(O.)CHO                                                                                           1.D      }
+  G1A3001 = 3C+5H+3O;      {CH3CH(O.)CO(OH)                                                                                        1.A      }
+  G1G3001 = 3C+5H+4O;      {CH3CH(O.)CO(OOH)                                                                                       1.G      }
+  G1P3001 = 3C+4H+N+6O;    {CH3CH(O.)CO(OONO2)                                                                                     1.P      }
+  G1K500r = 5C+9H+4O;      {CH3CH(O.)COCH(OH)CH2(OH)                                                                               1.KOO    }
+  G1N502u = 5C+8H+N+6O;    {CH3CH(O.)COCH(OH)CH2(ONO2)                                                                             1.NKO    }
+  G1H507l = 5C+9H+5O;      {CH3CH(O.)COCH(OH)CH2(OOH)                                                                              1.HKO    }
+  G1D501D = 5C+7H+4O;      {CH3CH(O.)COCH(OH)CHO                                                                                   1.DKO    }
+  G1A5025 = 5C+7H+5O;      {CH3CH(O.)COCH(OH)CO(OH)                                                                                1.AKO    }
+  G1G501i = 5C+7H+6O;      {CH3CH(O.)COCH(OH)CO(OOH)                                                                               1.GKO    }
+  G1P502J = 5C+6H+N+8O;    {CH3CH(O.)COCH(OH)CO(OONO2)                                                                             1.PKO    }
+  G1N502s = 5C+8H+N+6O;    {CH3CH(O.)COCH(ONO2)CH2(OH)                                                                             1.NKO    }
+  G1N502r = 5C+7H+2N+8O;   {CH3CH(O.)COCH(ONO2)CH2(ONO2)                                                                           1.NNK    }
+  G1H507L = 5C+8H+N+7O;    {CH3CH(O.)COCH(ONO2)CH2(OOH)                                                                            1.HNK    }
+  G1N505l = 5C+6H+N+6O;    {CH3CH(O.)COCH(ONO2)CHO                                                                                 1.NDK    }
+  G1A5023 = 5C+6H+N+7O;    {CH3CH(O.)COCH(ONO2)CO(OH)                                                                              1.ANK    }
+  G1G501g = 5C+6H+N+8O;    {CH3CH(O.)COCH(ONO2)CO(OOH)                                                                             1.GNK    }
+  G1P502H = 5C+5H+2N+10O;  {CH3CH(O.)COCH(ONO2)CO(OONO2)                                                                           1.PNK    }
+  G1H503L = 5C+9H+5O;      {CH3CH(O.)COCH(OOH)CH2(OH)                                                                              1.HKO    }
+  G1H501S = 5C+8H+N+7O;    {CH3CH(O.)COCH(OOH)CH2(ONO2)                                                                            1.HNK    }
+  G1H507v = 5C+7H+5O;      {CH3CH(O.)COCH(OOH)CHO                                                                                  1.HDK    }
+  G1A505N = 5C+7H+6O;      {CH3CH(O.)COCH(OOH)CO(OH)                                                                               1.AHK    }
+  G1G504B = 5C+7H+7O;      {CH3CH(O.)COCH(OOH)CO(OOH)                                                                              1.GHK    }
+  G1P505w = 5C+6H+N+9O;    {CH3CH(O.)COCH(OOH)CO(OONO2)                                                                            1.PHK    }
+  G1K4005 = 4C+7H+3O;      {CH3CH(O.)COCH2(OH)                                                                                     1.KO     }
+  G1N400T = 4C+6H+N+5O;    {CH3CH(O.)COCH2(ONO2)                                                                                   1.NK     }
+  G1H401L = 4C+7H+4O;      {CH3CH(O.)COCH2(OOH)                                                                                    1.HK     }
+  G1K5005 = 5C+9H+3O;      {CH3CH(O.)COCH2CH2(OH)                                                                                  1.KO     }
+  G1N500a = 5C+8H+N+5O;    {CH3CH(O.)COCH2CH2(ONO2)                                                                                1.NK     }
+  G1H5039 = 5C+9H+4O;      {CH3CH(O.)COCH2CH2(OOH)                                                                                 1.HK     }
+  G1D500a = 5C+7H+3O;      {CH3CH(O.)COCH2CHO                                                                                      1.DK     }
+  G1A500M = 5C+7H+4O;      {CH3CH(O.)COCH2CO(OH)                                                                                   1.AK     }
+  G1G500J = 5C+7H+5O;      {CH3CH(O.)COCH2CO(OOH)                                                                                  1.GK     }
+  G1P500O = 5C+6H+N+7O;    {CH3CH(O.)COCH2CO(OONO2)                                                                                1.PK     }
+  G1D400B = 4C+5H+3O;      {CH3CH(O.)COCHO                                                                                         1.DK     }
+  G1A400a = 4C+5H+4O;      {CH3CH(O.)COCO(OH)                                                                                      1.AK     }
+  G1G400S = 4C+5H+5O;      {CH3CH(O.)COCO(OOH)                                                                                     1.GK     }
+  G1P400b = 4C+4H+N+7O;    {CH3CH(O.)COCO(OONO2)                                                                                   1.PK     }
+  G1K500h = 5C+7H+4O;      {CH3CH(O.)COCOCH2(OH)                                                                                   1.KKO    }
+  G1N502w = 5C+6H+N+6O;    {CH3CH(O.)COCOCH2(ONO2)                                                                                 1.NKK    }
+  G1H507S = 5C+7H+5O;      {CH3CH(O.)COCOCH2(OOH)                                                                                  1.HKK    }
+  G1D500d = 5C+5H+4O;      {CH3CH(O.)COCOCHO                                                                                       1.DKK    }
+  G1A5027 = 5C+5H+5O;      {CH3CH(O.)COCOCO(OH)                                                                                    1.AKK    }
+  G1G501k = 5C+5H+6O;      {CH3CH(O.)COCOCO(OOH)                                                                                   1.GKK    }
+  G1P502L = 5C+4H+N+8O;    {CH3CH(O.)COCOCO(OONO2)                                                                                 1.PKK    }
+  G1O500P = 5C+11H+4O;     {CH3CH(OH)CH(O.)CH(OH)CH2(OH)                                                                           1.OOO    }
+  G1N501N = 5C+10H+N+6O;   {CH3CH(OH)CH(O.)CH(OH)CH2(ONO2)                                                                         1.NOO    }
+  G1H503D = 5C+11H+5O;     {CH3CH(OH)CH(O.)CH(OH)CH2(OOH)                                                                          1.HOO    }
+  G1O500N = 5C+11H+3O;     {CH3CH(OH)CH(O.)CH(OH)CH3                                                                               1.OO     }
+  G1D500A = 5C+9H+4O;      {CH3CH(OH)CH(O.)CH(OH)CHO                                                                               1.DOO    }
+  G1A500c = 5C+9H+5O;      {CH3CH(OH)CH(O.)CH(OH)CO(OH)                                                                            1.AOO    }
+  G1G500X = 5C+9H+6O;      {CH3CH(OH)CH(O.)CH(OH)CO(OOH)                                                                           1.GOO    }
+  G1P500d = 5C+8H+N+8O;    {CH3CH(OH)CH(O.)CH(OH)CO(OONO2)                                                                         1.POO    }
+  G1N503q = 5C+10H+N+6O;   {CH3CH(OH)CH(O.)CH(ONO2)CH2(OH)                                                                         1.NOO    }
+  G1N503m = 5C+9H+2N+8O;   {CH3CH(OH)CH(O.)CH(ONO2)CH2(ONO2)                                                                       1.NNO    }
+  G1H502z = 5C+10H+N+7O;   {CH3CH(OH)CH(O.)CH(ONO2)CH2(OOH)                                                                        1.HNO    }
+  G1N503u = 5C+8H+N+6O;    {CH3CH(OH)CH(O.)CH(ONO2)CHO                                                                             1.NDO    }
+  G1A502Z = 5C+8H+N+7O;    {CH3CH(OH)CH(O.)CH(ONO2)CO(OH)                                                                          1.ANO    }
+  G1G5021 = 5C+8H+N+8O;    {CH3CH(OH)CH(O.)CH(ONO2)CO(OOH)                                                                         1.GNO    }
+  G1P502k = 5C+7H+2N+10O;  {CH3CH(OH)CH(O.)CH(ONO2)CO(OONO2)                                                                       1.PNO    }
+  G1H505H = 5C+11H+5O;     {CH3CH(OH)CH(O.)CH(OOH)CH2(OH)                                                                          1.HOO    }
+  G1H501j = 5C+10H+N+7O;   {CH3CH(OH)CH(O.)CH(OOH)CH2(ONO2)                                                                        1.HNO    }
+  G1H507U = 5C+11H+6O;     {CH3CH(OH)CH(O.)CH(OOH)CH2(OOH)                                                                         1.HHO    }
+  G1H501o = 5C+9H+5O;      {CH3CH(OH)CH(O.)CH(OOH)CHO                                                                              1.HDO    }
+  G1A504E = 5C+9H+6O;      {CH3CH(OH)CH(O.)CH(OOH)CO(OH)                                                                           1.AHO    }
+  G1G502r = 5C+9H+7O;      {CH3CH(OH)CH(O.)CH(OOH)CO(OOH)                                                                          1.GHO    }
+  G1P502n = 5C+8H+N+9O;    {CH3CH(OH)CH(O.)CH(OOH)CO(OONO2)                                                                        1.PHO    }
+  G1O4009 = 4C+9H+3O;      {CH3CH(OH)CH(O.)CH2(OH)                                                                                 1.OO     }
+  G1N400j = 4C+8H+N+5O;    {CH3CH(OH)CH(O.)CH2(ONO2)                                                                               1.NO     }
+  G1H400W = 4C+9H+4O;      {CH3CH(OH)CH(O.)CH2(OOH)                                                                                1.HO     }
+  G1O5009 = 5C+11H+3O;     {CH3CH(OH)CH(O.)CH2CH2(OH)                                                                              1.OO     }
+  G1N500F = 5C+10H+N+5O;   {CH3CH(OH)CH(O.)CH2CH2(ONO2)                                                                            1.NO     }
+  G1H500d = 5C+11H+4O;     {CH3CH(OH)CH(O.)CH2CH2(OOH)                                                                             1.HO     }
+  G1O5006 = 5C+11H+2O;     {CH3CH(OH)CH(O.)CH2CH3                                                                                  1.O      }
+  G1D5001 = 5C+9H+3O;      {CH3CH(OH)CH(O.)CH2CHO                                                                                  1.DO     }
+  G1A5003 = 5C+9H+4O;      {CH3CH(OH)CH(O.)CH2CO(OH)                                                                               1.AO     }
+  G1G5003 = 5C+9H+5O;      {CH3CH(OH)CH(O.)CH2CO(OOH)                                                                              1.GO     }
+  G1P5003 = 5C+8H+N+7O;    {CH3CH(OH)CH(O.)CH2CO(OONO2)                                                                            1.PO     }
+  G1D400C = 4C+7H+3O;      {CH3CH(OH)CH(O.)CHO                                                                                     1.DO     }
+  G1A4000 = 4C+7H+4O;      {CH3CH(OH)CH(O.)CO(OH)                                                                                  1.AO     }
+  G1G4000 = 4C+7H+5O;      {CH3CH(OH)CH(O.)CO(OOH)                                                                                 1.GO     }
+  G1P4000 = 4C+6H+N+7O;    {CH3CH(OH)CH(O.)CO(OONO2)                                                                               1.PO     }
+  G1K5017 = 5C+9H+4O;      {CH3CH(OH)CH(O.)COCH2(OH)                                                                               1.KOO    }
+  G1N505N = 5C+8H+N+6O;    {CH3CH(OH)CH(O.)COCH2(ONO2)                                                                             1.NKO    }
+  G1H507p = 5C+9H+5O;      {CH3CH(OH)CH(O.)COCH2(OOH)                                                                              1.HKO    }
+  G1K500n = 5C+9H+3O;      {CH3CH(OH)CH(O.)COCH3                                                                                   1.KO     }
+  G1D5018 = 5C+7H+4O;      {CH3CH(OH)CH(O.)COCHO                                                                                   1.DKO    }
+  G1A505A = 5C+7H+5O;      {CH3CH(OH)CH(O.)COCO(OH)                                                                                1.AKO    }
+  G1G504X = 5C+7H+6O;      {CH3CH(OH)CH(O.)COCO(OOH)                                                                               1.GKO    }
+  G1P502o = 5C+6H+N+8O;    {CH3CH(OH)CH(O.)COCO(OONO2)                                                                             1.PKO    }
+  G1O500Q = 5C+11H+4O;     {CH3CH(OH)CH(OH)CH(O.)CH2(OH)                                                                           1.OOO    }
+  G1N505m = 5C+10H+N+6O;   {CH3CH(OH)CH(OH)CH(O.)CH2(ONO2)                                                                         1.NOO    }
+  G1O500O = 5C+11H+3O;     {CH3CH(OH)CH(OH)CH(O.)CH3                                                                               1.OO     }
+  G1D500x = 5C+9H+4O;      {CH3CH(OH)CH(OH)CH(O.)CHO                                                                               1.DOO    }
+  G1A504O = 5C+9H+5O;      {CH3CH(OH)CH(OH)CH(O.)CO(OH)                                                                            1.AOO    }
+  G1G503N = 5C+9H+6O;      {CH3CH(OH)CH(OH)CH(O.)CO(OOH)                                                                           1.GOO    }
+  G1P504Z = 5C+8H+N+8O;    {CH3CH(OH)CH(OH)CH(O.)CO(OONO2)                                                                         1.POO    }
+  G1O500a = 5C+11H+4O;     {CH3CH(OH)CH(OH)CH(OH)CH2(O.)                                                                           1.OOO    }
+  GOO500C = 5C+12H+4O;     {CH3CH(OH)CH(OH)CH(OH)CH2(OH)                                                                           OOOO     }
+  GNO500W = 5C+11H+N+6O;   {CH3CH(OH)CH(OH)CH(OH)CH2(ONO2)                                                                         NOOO     }
+  GOO500B = 5C+12H+3O;     {CH3CH(OH)CH(OH)CH(OH)CH3                                                                               OOO      }
+  GDO5009 = 5C+10H+4O;     {CH3CH(OH)CH(OH)CH(OH)CHO                                                                               DOOO     }
+  GAO500A = 5C+10H+5O;     {CH3CH(OH)CH(OH)CH(OH)CO(OH)                                                                            AOOO     }
+  G3K500I = 5C+9H+6O;      {CH3CH(OH)CH(OH)CH(OH)CO(OO.)                                                                           3.KOO    }
+  GGO500B = 5C+10H+6O;     {CH3CH(OH)CH(OH)CH(OH)CO(OOH)                                                                           GOOO     }
+  GPO500B = 5C+9H+N+8O;    {CH3CH(OH)CH(OH)CH(OH)CO(OONO2)                                                                         POOO     }
+  G1N505n = 5C+10H+N+6O;   {CH3CH(OH)CH(OH)CH(ONO2)CH2(O.)                                                                         1.NOO    }
+  GNO500X = 5C+11H+N+6O;   {CH3CH(OH)CH(OH)CH(ONO2)CH2(OH)                                                                         NOOO     }
+  GNN502M = 5C+10H+2N+8O;  {CH3CH(OH)CH(OH)CH(ONO2)CH2(ONO2)                                                                       NNOO     }
+  GNO500S = 5C+11H+N+5O;   {CH3CH(OH)CH(OH)CH(ONO2)CH3                                                                             NOO      }
+  GND5019 = 5C+9H+N+6O;    {CH3CH(OH)CH(OH)CH(ONO2)CHO                                                                             NDOO     }
+  GAN5025 = 5C+9H+N+7O;    {CH3CH(OH)CH(OH)CH(ONO2)CO(OH)                                                                          ANOO     }
+  G3N501a = 5C+8H+N+8O;    {CH3CH(OH)CH(OH)CH(ONO2)CO(OO.)                                                                         3.NKO    }
+  GGN501e = 5C+9H+N+8O;    {CH3CH(OH)CH(OH)CH(ONO2)CO(OOH)                                                                         GNOO     }
+  GPN501x = 5C+8H+2N+10O;  {CH3CH(OH)CH(OH)CH(ONO2)CO(OONO2)                                                                       PNOO     }
+  G2O500P = 5C+11H+5O;     {CH3CH(OH)CH(OH)CH(OO.)CH2(OH)                                                                          2.OOO    }
+  G2N504n = 5C+10H+N+7O;   {CH3CH(OH)CH(OH)CH(OO.)CH2(ONO2)                                                                        2.NOO    }
+  G2O500N = 5C+11H+4O;     {CH3CH(OH)CH(OH)CH(OO.)CH3                                                                              2.OO     }
+  G2A503O = 5C+9H+6O;      {CH3CH(OH)CH(OH)CH(OO.)CO(OH)                                                                           2.AOO    }
+  G2G502L = 5C+9H+7O;      {CH3CH(OH)CH(OH)CH(OO.)CO(OOH)                                                                          2.GOO    }
+  G2P503X = 5C+8H+N+9O;    {CH3CH(OH)CH(OH)CH(OO.)CO(OONO2)                                                                        2.POO    }
+  G1H5066 = 5C+11H+5O;     {CH3CH(OH)CH(OH)CH(OOH)CH2(O.)                                                                          1.HOO    }
+  GHO500P = 5C+12H+5O;     {CH3CH(OH)CH(OH)CH(OOH)CH2(OH)                                                                          HOOO     }
+  GHN503T = 5C+11H+N+7O;   {CH3CH(OH)CH(OH)CH(OOH)CH2(ONO2)                                                                        HNOO     }
+  GHO500N = 5C+12H+4O;     {CH3CH(OH)CH(OH)CH(OOH)CH3                                                                              HOO      }
+  GHD500U = 5C+10H+5O;     {CH3CH(OH)CH(OH)CH(OOH)CHO                                                                              HDOO     }
+  GAH501W = 5C+10H+6O;     {CH3CH(OH)CH(OH)CH(OOH)CO(OH)                                                                           AHOO     }
+  G3H500v = 5C+9H+7O;      {CH3CH(OH)CH(OH)CH(OOH)CO(OO.)                                                                          3.HKO    }
+  GGH501H = 5C+10H+7O;     {CH3CH(OH)CH(OH)CH(OOH)CO(OOH)                                                                          GHOO     }
+  GPH501X = 5C+9H+N+9O;    {CH3CH(OH)CH(OH)CH(OOH)CO(OONO2)                                                                        PHOO     }
+  G1O4008 = 4C+9H+3O;      {CH3CH(OH)CH(OH)CH2(O.)                                                                                 1.OO     }
+  GOO4004 = 4C+10H+3O;     {CH3CH(OH)CH(OH)CH2(OH)                                                                                 OOO      }
+  GNO400A = 4C+9H+N+5O;    {CH3CH(OH)CH(OH)CH2(ONO2)                                                                               NOO      }
+  G2O4008 = 4C+9H+4O;      {CH3CH(OH)CH(OH)CH2(OO.)                                                                                2.OO     }
+  GHO400A = 4C+10H+4O;     {CH3CH(OH)CH(OH)CH2(OOH)                                                                                HOO      }
+  G1O500R = 5C+11H+3O;     {CH3CH(OH)CH(OH)CH2CH2(O.)                                                                              1.OO     }
+  GOO5007 = 5C+12H+3O;     {CH3CH(OH)CH(OH)CH2CH2(OH)                                                                              OOO      }
+  GNO500H = 5C+11H+N+5O;   {CH3CH(OH)CH(OH)CH2CH2(ONO2)                                                                            NOO      }
+  GDO5005 = 5C+10H+3O;     {CH3CH(OH)CH(OH)CH2CHO                                                                                  DOO      }
+  GAO5006 = 5C+10H+4O;     {CH3CH(OH)CH(OH)CH2CO(OH)                                                                               AOO      }
+  G3K5008 = 5C+9H+5O;      {CH3CH(OH)CH(OH)CH2CO(OO.)                                                                              3.KOO    }
+  GGO5006 = 5C+10H+5O;     {CH3CH(OH)CH(OH)CH2CO(OOH)                                                                              GOO      }
+  GPO5006 = 5C+9H+N+7O;    {CH3CH(OH)CH(OH)CH2CO(OONO2)                                                                            POO      }
+  GDO4005 = 4C+8H+3O;      {CH3CH(OH)CH(OH)CHO                                                                                     DOO      }
+  GAO4003 = 4C+8H+4O;      {CH3CH(OH)CH(OH)CO(OH)                                                                                  AOO      }
+  G3K4008 = 4C+7H+5O;      {CH3CH(OH)CH(OH)CO(OO.)                                                                                 3.KOO    }
+  GGO4003 = 4C+8H+5O;      {CH3CH(OH)CH(OH)CO(OOH)                                                                                 GOO      }
+  GPO4003 = 4C+7H+N+7O;    {CH3CH(OH)CH(OH)CO(OONO2)                                                                               POO      }
+  G1K5011 = 5C+9H+4O;      {CH3CH(OH)CH(OH)COCH2(O.)                                                                               1.KOO    }
+  GKO500J = 5C+10H+4O;     {CH3CH(OH)CH(OH)COCH2(OH)                                                                               KOOO     }
+  GNK500x = 5C+9H+N+6O;    {CH3CH(OH)CH(OH)COCH2(ONO2)                                                                             NKOO     }
+  GKO500H = 5C+10H+3O;     {CH3CH(OH)CH(OH)COCH3                                                                                   KOO      }
+  GDK500T = 5C+8H+4O;      {CH3CH(OH)CH(OH)COCHO                                                                                   DKOO     }
+  GAK500Y = 5C+8H+5O;      {CH3CH(OH)CH(OH)COCO(OH)                                                                                AKOO     }
+  G3K500m = 5C+7H+6O;      {CH3CH(OH)CH(OH)COCO(OO.)                                                                               3.KKO    }
+  GGK500U = 5C+8H+6O;      {CH3CH(OH)CH(OH)COCO(OOH)                                                                               GKOO     }
+  GPK500U = 5C+7H+N+8O;    {CH3CH(OH)CH(OH)COCO(OONO2)                                                                             PKOO     }
+  G1N503r = 5C+10H+N+6O;   {CH3CH(OH)CH(ONO2)CH(O.)CH2(OH)                                                                         1.NOO    }
+  G1N503n = 5C+9H+2N+8O;   {CH3CH(OH)CH(ONO2)CH(O.)CH2(ONO2)                                                                       1.NNO    }
+  G1H5031 = 5C+10H+N+7O;   {CH3CH(OH)CH(ONO2)CH(O.)CH2(OOH)                                                                        1.HNO    }
+  G1N501L = 5C+10H+N+5O;   {CH3CH(OH)CH(ONO2)CH(O.)CH3                                                                             1.NO     }
+  G1N503v = 5C+8H+N+6O;    {CH3CH(OH)CH(ONO2)CH(O.)CHO                                                                             1.NDO    }
+  G1A502a = 5C+8H+N+7O;    {CH3CH(OH)CH(ONO2)CH(O.)CO(OH)                                                                          1.ANO    }
+  G1G5022 = 5C+8H+N+8O;    {CH3CH(OH)CH(ONO2)CH(O.)CO(OOH)                                                                         1.GNO    }
+  G1P500f = 5C+7H+2N+10O;  {CH3CH(OH)CH(ONO2)CH(O.)CO(OONO2)                                                                       1.PNO    }
+  G1N501M = 5C+10H+N+6O;   {CH3CH(OH)CH(ONO2)CH(OH)CH2(O.)                                                                         1.NOO    }
+  GNO500U = 5C+11H+N+6O;   {CH3CH(OH)CH(ONO2)CH(OH)CH2(OH)                                                                         NOOO     }
+  GNN5016 = 5C+10H+2N+8O;  {CH3CH(OH)CH(ONO2)CH(OH)CH2(ONO2)                                                                       NNOO     }
+  G2N501K = 5C+10H+N+7O;   {CH3CH(OH)CH(ONO2)CH(OH)CH2(OO.)                                                                        2.NOO    }
+  GHN501g = 5C+11H+N+7O;   {CH3CH(OH)CH(ONO2)CH(OH)CH2(OOH)                                                                        HNOO     }
+  GNO500T = 5C+11H+N+5O;   {CH3CH(OH)CH(ONO2)CH(OH)CH3                                                                             NOO      }
+  GND500P = 5C+9H+N+6O;    {CH3CH(OH)CH(ONO2)CH(OH)CHO                                                                             NDOO     }
+  GAN500n = 5C+9H+N+7O;    {CH3CH(OH)CH(ONO2)CH(OH)CO(OH)                                                                          ANOO     }
+  G3N500T = 5C+8H+N+8O;    {CH3CH(OH)CH(ONO2)CH(OH)CO(OO.)                                                                         3.NKO    }
+  GGN500g = 5C+9H+N+8O;    {CH3CH(OH)CH(ONO2)CH(OH)CO(OOH)                                                                         GNOO     }
+  GPN500o = 5C+8H+2N+10O;  {CH3CH(OH)CH(ONO2)CH(OH)CO(OONO2)                                                                       PNOO     }
+  G1N501B = 5C+9H+2N+8O;   {CH3CH(OH)CH(ONO2)CH(ONO2)CH2(O.)                                                                       1.NNO    }
+  GNN5012 = 5C+10H+2N+8O;  {CH3CH(OH)CH(ONO2)CH(ONO2)CH2(OH)                                                                       NNOO     }
+  GNN5011 = 5C+9H+3N+10O;  {CH3CH(OH)CH(ONO2)CH(ONO2)CH2(ONO2)                                                                     NNNO     }
+  G2N501A = 5C+9H+2N+9O;   {CH3CH(OH)CH(ONO2)CH(ONO2)CH2(OO.)                                                                      2.NNO    }
+  GHN501X = 5C+10H+2N+9O;  {CH3CH(OH)CH(ONO2)CH(ONO2)CH2(OOH)                                                                      HNNO     }
+  GNN500y = 5C+10H+2N+7O;  {CH3CH(OH)CH(ONO2)CH(ONO2)CH3                                                                           NNO      }
+  GNN5013 = 5C+8H+2N+8O;   {CH3CH(OH)CH(ONO2)CH(ONO2)CHO                                                                           NNDO     }
+  GAN500m = 5C+8H+2N+9O;   {CH3CH(OH)CH(ONO2)CH(ONO2)CO(OH)                                                                        ANNO     }
+  G3N500Q = 5C+7H+2N+10O;  {CH3CH(OH)CH(ONO2)CH(ONO2)CO(OO.)                                                                       3.NNK    }
+  GGN500f = 5C+8H+2N+10O;  {CH3CH(OH)CH(ONO2)CH(ONO2)CO(OOH)                                                                       GNNO     }
+  GPN500n = 5C+7H+3N+12O;  {CH3CH(OH)CH(ONO2)CH(ONO2)CO(OONO2)                                                                     PNNO     }
+  G2N504R = 5C+10H+N+7O;   {CH3CH(OH)CH(ONO2)CH(OO.)CH2(OH)                                                                        2.NOO    }
+  G2N504m = 5C+9H+2N+9O;   {CH3CH(OH)CH(ONO2)CH(OO.)CH2(ONO2)                                                                      2.NNO    }
+  G2H502q = 5C+10H+N+8O;   {CH3CH(OH)CH(ONO2)CH(OO.)CH2(OOH)                                                                       2.HNO    }
+  G2N501J = 5C+10H+N+6O;   {CH3CH(OH)CH(ONO2)CH(OO.)CH3                                                                            2.NO     }
+  G2N504S = 5C+8H+N+7O;    {CH3CH(OH)CH(ONO2)CH(OO.)CHO                                                                            2.NDO    }
+  G2A503K = 5C+8H+N+8O;    {CH3CH(OH)CH(ONO2)CH(OO.)CO(OH)                                                                         2.ANO    }
+  G2G5027 = 5C+8H+N+9O;    {CH3CH(OH)CH(ONO2)CH(OO.)CO(OOH)                                                                        2.GNO    }
+  G2P500e = 5C+7H+2N+11O;  {CH3CH(OH)CH(ONO2)CH(OO.)CO(OONO2)                                                                      2.PNO    }
+  G1H502v = 5C+10H+N+7O;   {CH3CH(OH)CH(ONO2)CH(OOH)CH2(O.)                                                                        1.HNO    }
+  GHN502w = 5C+11H+N+7O;   {CH3CH(OH)CH(ONO2)CH(OOH)CH2(OH)                                                                        HNOO     }
+  GHN503S = 5C+10H+2N+9O;  {CH3CH(OH)CH(ONO2)CH(OOH)CH2(ONO2)                                                                      HNNO     }
+  G2H501d = 5C+10H+N+8O;   {CH3CH(OH)CH(ONO2)CH(OOH)CH2(OO.)                                                                       2.HNO    }
+  GHH501a = 5C+11H+N+8O;   {CH3CH(OH)CH(ONO2)CH(OOH)CH2(OOH)                                                                       HHNO     }
+  GHN501f = 5C+11H+N+6O;   {CH3CH(OH)CH(ONO2)CH(OOH)CH3                                                                            HNO      }
+  GHN502x = 5C+9H+N+7O;    {CH3CH(OH)CH(ONO2)CH(OOH)CHO                                                                            HNDO     }
+  GAH501Q = 5C+9H+N+8O;    {CH3CH(OH)CH(ONO2)CH(OOH)CO(OH)                                                                         AHNO     }
+  G3H500n = 5C+8H+N+9O;    {CH3CH(OH)CH(ONO2)CH(OOH)CO(OO.)                                                                        3.HNK    }
+  GGH5018 = 5C+9H+N+9O;    {CH3CH(OH)CH(ONO2)CH(OOH)CO(OOH)                                                                        GHNO     }
+  GPH500l = 5C+8H+2N+11O;  {CH3CH(OH)CH(ONO2)CH(OOH)CO(OONO2)                                                                      PHNO     }
+  G1N4009 = 4C+8H+N+5O;    {CH3CH(OH)CH(ONO2)CH2(O.)                                                                               1.NO     }
+  GNO4008 = 4C+9H+N+5O;    {CH3CH(OH)CH(ONO2)CH2(OH)                                                                               NOO      }
+  GNN4009 = 4C+8H+2N+7O;   {CH3CH(OH)CH(ONO2)CH2(ONO2)                                                                             NNO      }
+  G2N4009 = 4C+8H+N+6O;    {CH3CH(OH)CH(ONO2)CH2(OO.)                                                                              2.NO     }
+  GHN400B = 4C+9H+N+6O;    {CH3CH(OH)CH(ONO2)CH2(OOH)                                                                              HNO      }
+  G1N500D = 5C+10H+N+5O;   {CH3CH(OH)CH(ONO2)CH2CH2(O.)                                                                            1.NO     }
+  GNO500E = 5C+11H+N+5O;   {CH3CH(OH)CH(ONO2)CH2CH2(OH)                                                                            NOO      }
+  GNN500A = 5C+10H+2N+7O;  {CH3CH(OH)CH(ONO2)CH2CH2(ONO2)                                                                          NNO      }
+  G2N500D = 5C+10H+N+6O;   {CH3CH(OH)CH(ONO2)CH2CH2(OO.)                                                                           2.NO     }
+  GHN500F = 5C+11H+N+6O;   {CH3CH(OH)CH(ONO2)CH2CH2(OOH)                                                                           HNO      }
+  GNO500C = 5C+11H+N+4O;   {CH3CH(OH)CH(ONO2)CH2CH3                                                                                NO       }
+  GND5005 = 5C+9H+N+5O;    {CH3CH(OH)CH(ONO2)CH2CHO                                                                                NDO      }
+  GAN5006 = 5C+9H+N+6O;    {CH3CH(OH)CH(ONO2)CH2CO(OH)                                                                             ANO      }
+  G3N5005 = 5C+8H+N+7O;    {CH3CH(OH)CH(ONO2)CH2CO(OO.)                                                                            3.NKO    }
+  GGN5006 = 5C+9H+N+7O;    {CH3CH(OH)CH(ONO2)CH2CO(OOH)                                                                            GNO      }
+  GPN5006 = 5C+8H+2N+9O;   {CH3CH(OH)CH(ONO2)CH2CO(OONO2)                                                                          PNO      }
+  GND4007 = 4C+7H+N+5O;    {CH3CH(OH)CH(ONO2)CHO                                                                                   NDO      }
+  GAN4005 = 4C+7H+N+6O;    {CH3CH(OH)CH(ONO2)CO(OH)                                                                                ANO      }
+  G3N400C = 4C+6H+N+7O;    {CH3CH(OH)CH(ONO2)CO(OO.)                                                                               3.NKO    }
+  GGN4005 = 4C+7H+N+7O;    {CH3CH(OH)CH(ONO2)CO(OOH)                                                                               GNO      }
+  GPN4005 = 4C+6H+2N+9O;   {CH3CH(OH)CH(ONO2)CO(OONO2)                                                                             PNO      }
+  G1N505O = 5C+8H+N+6O;    {CH3CH(OH)CH(ONO2)COCH2(O.)                                                                             1.NKO    }
+  GNK5013 = 5C+9H+N+6O;    {CH3CH(OH)CH(ONO2)COCH2(OH)                                                                             NKOO     }
+  GNN5027 = 5C+8H+2N+8O;   {CH3CH(OH)CH(ONO2)COCH2(ONO2)                                                                           NNKO     }
+  G2N505E = 5C+8H+N+7O;    {CH3CH(OH)CH(ONO2)COCH2(OO.)                                                                            2.NKO    }
+  GHN504a = 5C+9H+N+7O;    {CH3CH(OH)CH(ONO2)COCH2(OOH)                                                                            HNKO     }
+  GNK500d = 5C+9H+N+5O;    {CH3CH(OH)CH(ONO2)COCH3                                                                                 NKO      }
+  GND500v = 5C+7H+N+6O;    {CH3CH(OH)CH(ONO2)COCHO                                                                                 NDKO     }
+  GAN501k = 5C+7H+N+7O;    {CH3CH(OH)CH(ONO2)COCO(OH)                                                                              ANKO     }
+  G3N501Y = 5C+6H+N+8O;    {CH3CH(OH)CH(ONO2)COCO(OO.)                                                                             3.NKK    }
+  GGN501q = 5C+7H+N+8O;    {CH3CH(OH)CH(ONO2)COCO(OOH)                                                                             GNKO     }
+  GPN500q = 5C+6H+2N+10O;  {CH3CH(OH)CH(ONO2)COCO(OONO2)                                                                           PNKO     }
+  G2O500O = 5C+11H+5O;     {CH3CH(OH)CH(OO.)CH(OH)CH2(OH)                                                                          2.OOO    }
+  G2N501L = 5C+10H+N+7O;   {CH3CH(OH)CH(OO.)CH(OH)CH2(ONO2)                                                                        2.NOO    }
+  G2O500M = 5C+11H+4O;     {CH3CH(OH)CH(OO.)CH(OH)CH3                                                                              2.OO     }
+  G2D5007 = 5C+9H+5O;      {CH3CH(OH)CH(OO.)CH(OH)CHO                                                                              2.DOO    }
+  G2A500b = 5C+9H+6O;      {CH3CH(OH)CH(OO.)CH(OH)CO(OH)                                                                           2.AOO    }
+  G2G500W = 5C+9H+7O;      {CH3CH(OH)CH(OO.)CH(OH)CO(OOH)                                                                          2.GOO    }
+  G2P500c = 5C+8H+N+9O;    {CH3CH(OH)CH(OO.)CH(OH)CO(OONO2)                                                                        2.POO    }
+  G2N504k = 5C+10H+N+7O;   {CH3CH(OH)CH(OO.)CH(ONO2)CH2(OH)                                                                        2.NOO    }
+  G2N504j = 5C+9H+2N+9O;   {CH3CH(OH)CH(OO.)CH(ONO2)CH2(ONO2)                                                                      2.NNO    }
+  G2N504l = 5C+8H+N+7O;    {CH3CH(OH)CH(OO.)CH(ONO2)CHO                                                                            2.NDO    }
+  G2A503M = 5C+8H+N+8O;    {CH3CH(OH)CH(OO.)CH(ONO2)CO(OH)                                                                         2.ANO    }
+  G2G502J = 5C+8H+N+9O;    {CH3CH(OH)CH(OO.)CH(ONO2)CO(OOH)                                                                        2.GNO    }
+  G2P503U = 5C+7H+2N+11O;  {CH3CH(OH)CH(OO.)CH(ONO2)CO(OONO2)                                                                      2.PNO    }
+  G2H5011 = 5C+10H+N+8O;   {CH3CH(OH)CH(OO.)CH(OOH)CH2(ONO2)                                                                       2.HNO    }
+  G2H5015 = 5C+9H+6O;      {CH3CH(OH)CH(OO.)CH(OOH)CHO                                                                             2.HDO    }
+  G2O4009 = 4C+9H+4O;      {CH3CH(OH)CH(OO.)CH2(OH)                                                                                2.OO     }
+  G2N400f = 4C+8H+N+6O;    {CH3CH(OH)CH(OO.)CH2(ONO2)                                                                              2.NO     }
+  G2O5009 = 5C+11H+4O;     {CH3CH(OH)CH(OO.)CH2CH2(OH)                                                                             2.OO     }
+  G2N500F = 5C+10H+N+6O;   {CH3CH(OH)CH(OO.)CH2CH2(ONO2)                                                                           2.NO     }
+  G2O5006 = 5C+11H+3O;     {CH3CH(OH)CH(OO.)CH2CH3                                                                                 2.O      }
+  G2D5001 = 5C+9H+4O;      {CH3CH(OH)CH(OO.)CH2CHO                                                                                 2.DO     }
+  G2A5003 = 5C+9H+5O;      {CH3CH(OH)CH(OO.)CH2CO(OH)                                                                              2.AO     }
+  G2G5003 = 5C+9H+6O;      {CH3CH(OH)CH(OO.)CH2CO(OOH)                                                                             2.GO     }
+  G2P5003 = 5C+8H+N+8O;    {CH3CH(OH)CH(OO.)CH2CO(OONO2)                                                                           2.PO     }
+  G2A4000 = 4C+7H+5O;      {CH3CH(OH)CH(OO.)CO(OH)                                                                                 2.AO     }
+  G2G4000 = 4C+7H+6O;      {CH3CH(OH)CH(OO.)CO(OOH)                                                                                2.GO     }
+  G2P4000 = 4C+6H+N+8O;    {CH3CH(OH)CH(OO.)CO(OONO2)                                                                              2.PO     }
+  G2K500p = 5C+9H+5O;      {CH3CH(OH)CH(OO.)COCH2(OH)                                                                              2.KOO    }
+  G2N504o = 5C+8H+N+7O;    {CH3CH(OH)CH(OO.)COCH2(ONO2)                                                                            2.NKO    }
+  G2K500h = 5C+9H+4O;      {CH3CH(OH)CH(OO.)COCH3                                                                                  2.KO     }
+  G2D500m = 5C+7H+5O;      {CH3CH(OH)CH(OO.)COCHO                                                                                  2.DKO    }
+  G2A504M = 5C+7H+6O;      {CH3CH(OH)CH(OO.)COCO(OH)                                                                               2.AKO    }
+  G2G503H = 5C+7H+7O;      {CH3CH(OH)CH(OO.)COCO(OOH)                                                                              2.GKO    }
+  G2P504l = 5C+6H+N+9O;    {CH3CH(OH)CH(OO.)COCO(OONO2)                                                                            2.PKO    }
+  G1H505y = 5C+11H+5O;     {CH3CH(OH)CH(OOH)CH(O.)CH2(OH)                                                                          1.HOO    }
+  G1H505v = 5C+10H+N+7O;   {CH3CH(OH)CH(OOH)CH(O.)CH2(ONO2)                                                                        1.HNO    }
+  G1H5037 = 5C+11H+4O;     {CH3CH(OH)CH(OOH)CH(O.)CH3                                                                              1.HO     }
+  G1H505z = 5C+9H+5O;      {CH3CH(OH)CH(OOH)CH(O.)CHO                                                                              1.HDO    }
+  G1A504M = 5C+9H+6O;      {CH3CH(OH)CH(OOH)CH(O.)CO(OH)                                                                           1.AHO    }
+  G1G503L = 5C+9H+7O;      {CH3CH(OH)CH(OOH)CH(O.)CO(OOH)                                                                          1.GHO    }
+  G1P504X = 5C+8H+N+9O;    {CH3CH(OH)CH(OOH)CH(O.)CO(OONO2)                                                                        1.PHO    }
+  G1H503E = 5C+11H+5O;     {CH3CH(OH)CH(OOH)CH(OH)CH2(O.)                                                                          1.HOO    }
+  GHO500O = 5C+12H+5O;     {CH3CH(OH)CH(OOH)CH(OH)CH2(OH)                                                                          HOOO     }
+  GHN501h = 5C+11H+N+7O;   {CH3CH(OH)CH(OOH)CH(OH)CH2(ONO2)                                                                        HNOO     }
+  GHO500M = 5C+12H+4O;     {CH3CH(OH)CH(OOH)CH(OH)CH3                                                                              HOO      }
+  GHD500E = 5C+10H+5O;     {CH3CH(OH)CH(OOH)CH(OH)CHO                                                                              HDOO     }
+  GAH500k = 5C+10H+6O;     {CH3CH(OH)CH(OOH)CH(OH)CO(OH)                                                                           AHOO     }
+  G3H500K = 5C+9H+7O;      {CH3CH(OH)CH(OOH)CH(OH)CO(OO.)                                                                          3.HKO    }
+  GGH500f = 5C+10H+7O;     {CH3CH(OH)CH(OOH)CH(OH)CO(OOH)                                                                          GHOO     }
+  GPH500k = 5C+9H+N+9O;    {CH3CH(OH)CH(OOH)CH(OH)CO(OONO2)                                                                        PHOO     }
+  G1H505w = 5C+10H+N+7O;   {CH3CH(OH)CH(OOH)CH(ONO2)CH2(O.)                                                                        1.HNO    }
+  GHN503O = 5C+11H+N+7O;   {CH3CH(OH)CH(OOH)CH(ONO2)CH2(OH)                                                                        HNOO     }
+  GHN503N = 5C+10H+2N+9O;  {CH3CH(OH)CH(OOH)CH(ONO2)CH2(ONO2)                                                                      HNNO     }
+  GHN503P = 5C+9H+N+7O;    {CH3CH(OH)CH(OOH)CH(ONO2)CHO                                                                            HNDO     }
+  GAH501T = 5C+9H+N+8O;    {CH3CH(OH)CH(OOH)CH(ONO2)CO(OH)                                                                         AHNO     }
+  G3H500t = 5C+8H+N+9O;    {CH3CH(OH)CH(OOH)CH(ONO2)CO(OO.)                                                                        3.HNK    }
+  GGH501F = 5C+9H+N+9O;    {CH3CH(OH)CH(OOH)CH(ONO2)CO(OOH)                                                                        GHNO     }
+  GPH501U = 5C+8H+2N+11O;  {CH3CH(OH)CH(OOH)CH(ONO2)CO(OONO2)                                                                      PHNO     }
+  G2H502L = 5C+10H+N+8O;   {CH3CH(OH)CH(OOH)CH(OO.)CH2(ONO2)                                                                       2.HNO    }
+  G1H5065 = 5C+11H+6O;     {CH3CH(OH)CH(OOH)CH(OOH)CH2(O.)                                                                         1.HHO    }
+  GHH500u = 5C+12H+6O;     {CH3CH(OH)CH(OOH)CH(OOH)CH2(OH)                                                                         HHOO     }
+  GHH500s = 5C+11H+N+8O;   {CH3CH(OH)CH(OOH)CH(OOH)CH2(ONO2)                                                                       HHNO     }
+  GHH500v = 5C+10H+6O;     {CH3CH(OH)CH(OOH)CH(OOH)CHO                                                                             HHDO     }
+  GAH501U = 5C+10H+7O;     {CH3CH(OH)CH(OOH)CH(OOH)CO(OH)                                                                          AHHO     }
+  G3H500u = 5C+9H+8O;      {CH3CH(OH)CH(OOH)CH(OOH)CO(OO.)                                                                         3.HHK    }
+  GGH501G = 5C+10H+8O;     {CH3CH(OH)CH(OOH)CH(OOH)CO(OOH)                                                                         GHHO     }
+  GPH501W = 5C+9H+N+10O;   {CH3CH(OH)CH(OOH)CH(OOH)CO(OONO2)                                                                       PHHO     }
+  G1H4009 = 4C+9H+4O;      {CH3CH(OH)CH(OOH)CH2(O.)                                                                                1.HO     }
+  GHO4008 = 4C+10H+4O;     {CH3CH(OH)CH(OOH)CH2(OH)                                                                                HOO      }
+  GHN400E = 4C+9H+N+6O;    {CH3CH(OH)CH(OOH)CH2(ONO2)                                                                              HNO      }
+  G2H4009 = 4C+9H+5O;      {CH3CH(OH)CH(OOH)CH2(OO.)                                                                               2.HO     }
+  GHH4005 = 4C+10H+5O;     {CH3CH(OH)CH(OOH)CH2(OOH)                                                                               HHO      }
+  G1H500g = 5C+11H+4O;     {CH3CH(OH)CH(OOH)CH2CH2(O.)                                                                             1.HO     }
+  GHO500C = 5C+12H+4O;     {CH3CH(OH)CH(OOH)CH2CH2(OH)                                                                             HOO      }
+  GHN500H = 5C+11H+N+6O;   {CH3CH(OH)CH(OOH)CH2CH2(ONO2)                                                                           HNO      }
+  GHO5009 = 5C+12H+3O;     {CH3CH(OH)CH(OOH)CH2CH3                                                                                 HO       }
+  GHD5003 = 5C+10H+4O;     {CH3CH(OH)CH(OOH)CH2CHO                                                                                 HDO      }
+  GAH5004 = 5C+10H+5O;     {CH3CH(OH)CH(OOH)CH2CO(OH)                                                                              AHO      }
+  G3H5003 = 5C+9H+6O;      {CH3CH(OH)CH(OOH)CH2CO(OO.)                                                                             3.HKO    }
+  GGH5004 = 5C+10H+6O;     {CH3CH(OH)CH(OOH)CH2CO(OOH)                                                                             GHO      }
+  GPH5004 = 5C+9H+N+8O;    {CH3CH(OH)CH(OOH)CH2CO(OONO2)                                                                           PHO      }
+  GHD4008 = 4C+8H+4O;      {CH3CH(OH)CH(OOH)CHO                                                                                    HDO      }
+  GAH4001 = 4C+8H+5O;      {CH3CH(OH)CH(OOH)CO(OH)                                                                                 AHO      }
+  G3H400A = 4C+7H+6O;      {CH3CH(OH)CH(OOH)CO(OO.)                                                                                3.HKO    }
+  GGH4001 = 4C+8H+6O;      {CH3CH(OH)CH(OOH)CO(OOH)                                                                                GHO      }
+  GPH4001 = 4C+7H+N+8O;    {CH3CH(OH)CH(OOH)CO(OONO2)                                                                              PHO      }
+  G1H506B = 5C+9H+5O;      {CH3CH(OH)CH(OOH)COCH2(O.)                                                                              1.HKO    }
+  GHK500k = 5C+10H+5O;     {CH3CH(OH)CH(OOH)COCH2(OH)                                                                              HKOO     }
+  GHN503W = 5C+9H+N+7O;    {CH3CH(OH)CH(OOH)COCH2(ONO2)                                                                            HNKO     }
+  GHK500P = 5C+10H+4O;     {CH3CH(OH)CH(OOH)COCH3                                                                                  HKO      }
+  GHD5019 = 5C+8H+5O;      {CH3CH(OH)CH(OOH)COCHO                                                                                  HDKO     }
+  GAH502j = 5C+8H+6O;      {CH3CH(OH)CH(OOH)COCO(OH)                                                                               AHKO     }
+  G3H5048 = 5C+7H+7O;      {CH3CH(OH)CH(OOH)COCO(OO.)                                                                              3.HKK    }
+  GGH502S = 5C+8H+7O;      {CH3CH(OH)CH(OOH)COCO(OOH)                                                                              GHKO     }
+  GPH502r = 5C+7H+N+9O;    {CH3CH(OH)CH(OOH)COCO(OONO2)                                                                            PHKO     }
+  G1O3000 = 3C+7H+2O;      {CH3CH(OH)CH2(O.)                                                                                       1.O      }
+  GOO3000 = 3C+8H+2O;      {CH3CH(OH)CH2(OH)                                                                                       OO       }
+  GNO3002 = 3C+7H+N+4O;    {CH3CH(OH)CH2(ONO2)                                                                                     NO       }
+  G2O3000 = 3C+7H+3O;      {CH3CH(OH)CH2(OO.)                                                                                      2.O      }
+  GHO3000 = 3C+8H+3O;      {CH3CH(OH)CH2(OOH)                                                                                      HO       }
+  G1O500A = 5C+11H+3O;     {CH3CH(OH)CH2CH(O.)CH2(OH)                                                                              1.OO     }
+  G1N501G = 5C+10H+N+5O;   {CH3CH(OH)CH2CH(O.)CH2(ONO2)                                                                            1.NO     }
+  G1H500Y = 5C+11H+4O;     {CH3CH(OH)CH2CH(O.)CH2(OOH)                                                                             1.HO     }
+  G1O5005 = 5C+11H+2O;     {CH3CH(OH)CH2CH(O.)CH3                                                                                  1.O      }
+  G1D5008 = 5C+9H+3O;      {CH3CH(OH)CH2CH(O.)CHO                                                                                  1.DO     }
+  G1A5004 = 5C+9H+4O;      {CH3CH(OH)CH2CH(O.)CO(OH)                                                                               1.AO     }
+  G1G5004 = 5C+9H+5O;      {CH3CH(OH)CH2CH(O.)CO(OOH)                                                                              1.GO     }
+  G1P5004 = 5C+8H+N+7O;    {CH3CH(OH)CH2CH(O.)CO(OONO2)                                                                            1.PO     }
+  G1O5007 = 5C+11H+3O;     {CH3CH(OH)CH2CH(OH)CH2(O.)                                                                              1.OO     }
+  GOO5006 = 5C+12H+3O;     {CH3CH(OH)CH2CH(OH)CH2(OH)                                                                              OOO      }
+  GNO500D = 5C+11H+N+5O;   {CH3CH(OH)CH2CH(OH)CH2(ONO2)                                                                            NOO      }
+  G2O5007 = 5C+11H+4O;     {CH3CH(OH)CH2CH(OH)CH2(OO.)                                                                             2.OO     }
+  GHO500A = 5C+12H+4O;     {CH3CH(OH)CH2CH(OH)CH2(OOH)                                                                             HOO      }
+  GOO5004 = 5C+12H+2O;     {CH3CH(OH)CH2CH(OH)CH3                                                                                  OO       }
+  GDO5003 = 5C+10H+3O;     {CH3CH(OH)CH2CH(OH)CHO                                                                                  DOO      }
+  GAO5004 = 5C+10H+4O;     {CH3CH(OH)CH2CH(OH)CO(OH)                                                                               AOO      }
+  G3K5005 = 5C+9H+5O;      {CH3CH(OH)CH2CH(OH)CO(OO.)                                                                              3.KOO    }
+  GGO5004 = 5C+10H+5O;     {CH3CH(OH)CH2CH(OH)CO(OOH)                                                                              GOO      }
+  GPO5004 = 5C+9H+N+7O;    {CH3CH(OH)CH2CH(OH)CO(OONO2)                                                                            POO      }
+  G1N5009 = 5C+10H+N+5O;   {CH3CH(OH)CH2CH(ONO2)CH2(O.)                                                                            1.NO     }
+  GNO500B = 5C+11H+N+5O;   {CH3CH(OH)CH2CH(ONO2)CH2(OH)                                                                            NOO      }
+  GNN5008 = 5C+10H+2N+7O;  {CH3CH(OH)CH2CH(ONO2)CH2(ONO2)                                                                          NNO      }
+  G2N5009 = 5C+10H+N+6O;   {CH3CH(OH)CH2CH(ONO2)CH2(OO.)                                                                           2.NO     }
+  GHN500C = 5C+11H+N+6O;   {CH3CH(OH)CH2CH(ONO2)CH2(OOH)                                                                           HNO      }
+  GNO5009 = 5C+11H+N+4O;   {CH3CH(OH)CH2CH(ONO2)CH3                                                                                NO       }
+  GND5004 = 5C+9H+N+5O;    {CH3CH(OH)CH2CH(ONO2)CHO                                                                                NDO      }
+  GAN5005 = 5C+9H+N+6O;    {CH3CH(OH)CH2CH(ONO2)CO(OH)                                                                             ANO      }
+  G3N5004 = 5C+8H+N+7O;    {CH3CH(OH)CH2CH(ONO2)CO(OO.)                                                                            3.NKO    }
+  GGN5005 = 5C+9H+N+7O;    {CH3CH(OH)CH2CH(ONO2)CO(OOH)                                                                            GNO      }
+  GPN5005 = 5C+8H+2N+9O;   {CH3CH(OH)CH2CH(ONO2)CO(OONO2)                                                                          PNO      }
+  G2O500A = 5C+11H+4O;     {CH3CH(OH)CH2CH(OO.)CH2(OH)                                                                             2.OO     }
+  G2N502j = 5C+10H+N+6O;   {CH3CH(OH)CH2CH(OO.)CH2(ONO2)                                                                           2.NO     }
+  G2O5005 = 5C+11H+3O;     {CH3CH(OH)CH2CH(OO.)CH3                                                                                 2.O      }
+  G2D500H = 5C+9H+4O;      {CH3CH(OH)CH2CH(OO.)CHO                                                                                 2.DO     }
+  G2A5004 = 5C+9H+5O;      {CH3CH(OH)CH2CH(OO.)CO(OH)                                                                              2.AO     }
+  G2G5004 = 5C+9H+6O;      {CH3CH(OH)CH2CH(OO.)CO(OOH)                                                                             2.GO     }
+  G2P5004 = 5C+8H+N+8O;    {CH3CH(OH)CH2CH(OO.)CO(OONO2)                                                                           2.PO     }
+  G1H500U = 5C+11H+4O;     {CH3CH(OH)CH2CH(OOH)CH2(O.)                                                                             1.HO     }
+  GHO500D = 5C+12H+4O;     {CH3CH(OH)CH2CH(OOH)CH2(OH)                                                                             HOO      }
+  GHN500m = 5C+11H+N+6O;   {CH3CH(OH)CH2CH(OOH)CH2(ONO2)                                                                           HNO      }
+  G2H500P = 5C+11H+5O;     {CH3CH(OH)CH2CH(OOH)CH2(OO.)                                                                            2.HO     }
+  GHH500N = 5C+12H+5O;     {CH3CH(OH)CH2CH(OOH)CH2(OOH)                                                                            HHO      }
+  GHO5008 = 5C+12H+3O;     {CH3CH(OH)CH2CH(OOH)CH3                                                                                 HO       }
+  GHD5005 = 5C+10H+4O;     {CH3CH(OH)CH2CH(OOH)CHO                                                                                 HDO      }
+  GAH5005 = 5C+10H+5O;     {CH3CH(OH)CH2CH(OOH)CO(OH)                                                                              AHO      }
+  G3H5006 = 5C+9H+6O;      {CH3CH(OH)CH2CH(OOH)CO(OO.)                                                                             3.HKO    }
+  GGH5005 = 5C+10H+6O;     {CH3CH(OH)CH2CH(OOH)CO(OOH)                                                                             GHO      }
+  GPH5005 = 5C+9H+N+8O;    {CH3CH(OH)CH2CH(OOH)CO(OONO2)                                                                           PHO      }
+  G1O4001 = 4C+9H+2O;      {CH3CH(OH)CH2CH2(O.)                                                                                    1.O      }
+  GOO4001 = 4C+10H+2O;     {CH3CH(OH)CH2CH2(OH)                                                                                    OO       }
+  GNO4001 = 4C+9H+N+4O;    {CH3CH(OH)CH2CH2(ONO2)                                                                                  NO       }
+  G2O4001 = 4C+9H+3O;      {CH3CH(OH)CH2CH2(OO.)                                                                                   2.O      }
+  GHO4001 = 4C+10H+3O;     {CH3CH(OH)CH2CH2(OOH)                                                                                   HO       }
+  G1O5001 = 5C+11H+2O;     {CH3CH(OH)CH2CH2CH2(O.)                                                                                 1.O      }
+  GOO5000 = 5C+12H+2O;     {CH3CH(OH)CH2CH2CH2(OH)                                                                                 OO       }
+  GNO5001 = 5C+11H+N+4O;   {CH3CH(OH)CH2CH2CH2(ONO2)                                                                               NO       }
+  G2O5001 = 5C+11H+3O;     {CH3CH(OH)CH2CH2CH2(OO.)                                                                                2.O      }
+  GHO5001 = 5C+12H+3O;     {CH3CH(OH)CH2CH2CH2(OOH)                                                                                HO       }
+  GDO5000 = 5C+10H+2O;     {CH3CH(OH)CH2CH2CHO                                                                                     DO       }
+  GAO5000 = 5C+10H+3O;     {CH3CH(OH)CH2CH2CO(OH)                                                                                  AO       }
+  G3K5001 = 5C+9H+4O;      {CH3CH(OH)CH2CH2CO(OO.)                                                                                 3.KO     }
+  GGO5000 = 5C+10H+4O;     {CH3CH(OH)CH2CH2CO(OOH)                                                                                 GO       }
+  GPO5000 = 5C+9H+N+6O;    {CH3CH(OH)CH2CH2CO(OONO2)                                                                               PO       }
+  GDO4001 = 4C+8H+2O;      {CH3CH(OH)CH2CHO                                                                                        DO       }
+  GAO4000 = 4C+8H+3O;      {CH3CH(OH)CH2CO(OH)                                                                                     AO       }
+  G3K4000 = 4C+7H+4O;      {CH3CH(OH)CH2CO(OO.)                                                                                    3.KO     }
+  GGO4000 = 4C+8H+4O;      {CH3CH(OH)CH2CO(OOH)                                                                                    GO       }
+  GPO4000 = 4C+7H+N+6O;    {CH3CH(OH)CH2CO(OONO2)                                                                                  PO       }
+  G1K5002 = 5C+9H+3O;      {CH3CH(OH)CH2COCH2(O.)                                                                                  1.KO     }
+  GKO5008 = 5C+10H+3O;     {CH3CH(OH)CH2COCH2(OH)                                                                                  KOO      }
+  GNK5008 = 5C+9H+N+5O;    {CH3CH(OH)CH2COCH2(ONO2)                                                                                NKO      }
+  G2K5002 = 5C+9H+4O;      {CH3CH(OH)CH2COCH2(OO.)                                                                                 2.KO     }
+  GHK5005 = 5C+10H+4O;     {CH3CH(OH)CH2COCH2(OOH)                                                                                 HKO      }
+  GKO5004 = 5C+10H+2O;     {CH3CH(OH)CH2COCH3                                                                                      KO       }
+  GDK5001 = 5C+8H+3O;      {CH3CH(OH)CH2COCHO                                                                                      DKO      }
+  GAK5004 = 5C+8H+4O;      {CH3CH(OH)CH2COCO(OH)                                                                                   AKO      }
+  G3K500P = 5C+7H+5O;      {CH3CH(OH)CH2COCO(OO.)                                                                                  3.KKO    }
+  GGK5004 = 5C+8H+5O;      {CH3CH(OH)CH2COCO(OOH)                                                                                  GKO      }
+  GPK5004 = 5C+7H+N+7O;    {CH3CH(OH)CH2COCO(OONO2)                                                                                PKO      }
+  GO03001 = 3C+8H+O;       {CH3CH(OH)CH3                                                                                           O        }
+  GDO3001 = 3C+6H+2O;      {CH3CH(OH)CHO                                                                                           DO       }
+  GAO3001 = 3C+6H+3O;      {CH3CH(OH)CO(OH)                                                                                        AO       }
+  G3K3002 = 3C+5H+4O;      {CH3CH(OH)CO(OO.)                                                                                       3.KO     }
+  GGO3001 = 3C+6H+4O;      {CH3CH(OH)CO(OOH)                                                                                       GO       }
+  GPO3001 = 3C+5H+N+6O;    {CH3CH(OH)CO(OONO2)                                                                                     PO       }
+  G1K500y = 5C+9H+4O;      {CH3CH(OH)COCH(O.)CH2(OH)                                                                               1.KOO    }
+  G1N505j = 5C+8H+N+6O;    {CH3CH(OH)COCH(O.)CH2(ONO2)                                                                             1.NKO    }
+  G1K500H = 5C+9H+3O;      {CH3CH(OH)COCH(O.)CH3                                                                                   1.KO     }
+  G1D500y = 5C+7H+4O;      {CH3CH(OH)COCH(O.)CHO                                                                                   1.DKO    }
+  G1A500g = 5C+7H+5O;      {CH3CH(OH)COCH(O.)CO(OH)                                                                                1.AKO    }
+  G1G500a = 5C+7H+6O;      {CH3CH(OH)COCH(O.)CO(OOH)                                                                               1.GKO    }
+  G1P500j = 5C+6H+N+8O;    {CH3CH(OH)COCH(O.)CO(OONO2)                                                                             1.PKO    }
+  G1K500m = 5C+9H+4O;      {CH3CH(OH)COCH(OH)CH2(O.)                                                                               1.KOO    }
+  GKO500I = 5C+10H+4O;     {CH3CH(OH)COCH(OH)CH2(OH)                                                                               KOOO     }
+  GNK500f = 5C+9H+N+6O;    {CH3CH(OH)COCH(OH)CH2(ONO2)                                                                             NKOO     }
+  G2K500d = 5C+9H+5O;      {CH3CH(OH)COCH(OH)CH2(OO.)                                                                              2.KOO    }
+  GHK500n = 5C+10H+5O;     {CH3CH(OH)COCH(OH)CH2(OOH)                                                                              HKOO     }
+  GKO500G = 5C+10H+3O;     {CH3CH(OH)COCH(OH)CH3                                                                                   KOO      }
+  GDK500B = 5C+8H+4O;      {CH3CH(OH)COCH(OH)CHO                                                                                   DKOO     }
+  GAK500J = 5C+8H+5O;      {CH3CH(OH)COCH(OH)CO(OH)                                                                                AKOO     }
+  G3K500J = 5C+7H+6O;      {CH3CH(OH)COCH(OH)CO(OO.)                                                                               3.KKO    }
+  GGK500K = 5C+8H+6O;      {CH3CH(OH)COCH(OH)CO(OOH)                                                                               GKOO     }
+  GPK500K = 5C+7H+N+8O;    {CH3CH(OH)COCH(OH)CO(OONO2)                                                                             PKOO     }
+  G1N505k = 5C+8H+N+6O;    {CH3CH(OH)COCH(ONO2)CH2(O.)                                                                             1.NKO    }
+  GNK500v = 5C+9H+N+6O;    {CH3CH(OH)COCH(ONO2)CH2(OH)                                                                             NKOO     }
+  GNN502L = 5C+8H+2N+8O;   {CH3CH(OH)COCH(ONO2)CH2(ONO2)                                                                           NNKO     }
+  GNK500a = 5C+9H+N+5O;    {CH3CH(OH)COCH(ONO2)CH3                                                                                 NKO      }
+  GND501N = 5C+7H+N+6O;    {CH3CH(OH)COCH(ONO2)CHO                                                                                 NDKO     }
+  GAN500r = 5C+7H+N+7O;    {CH3CH(OH)COCH(ONO2)CO(OH)                                                                              ANKO     }
+  G3N501c = 5C+6H+N+8O;    {CH3CH(OH)COCH(ONO2)CO(OO.)                                                                             3.NKK    }
+  GGN500k = 5C+7H+N+8O;    {CH3CH(OH)COCH(ONO2)CO(OOH)                                                                             GNKO     }
+  GPN500w = 5C+6H+2N+10O;  {CH3CH(OH)COCH(ONO2)CO(OONO2)                                                                           PNKO     }
+  G2K500q = 5C+9H+5O;      {CH3CH(OH)COCH(OO.)CH2(OH)                                                                              2.KOO    }
+  G2N504h = 5C+8H+N+7O;    {CH3CH(OH)COCH(OO.)CH2(ONO2)                                                                            2.NKO    }
+  G2K500G = 5C+9H+4O;      {CH3CH(OH)COCH(OO.)CH3                                                                                  2.KO     }
+  G2A500f = 5C+7H+6O;      {CH3CH(OH)COCH(OO.)CO(OH)                                                                               2.AKO    }
+  G2G500Z = 5C+7H+7O;      {CH3CH(OH)COCH(OO.)CO(OOH)                                                                              2.GKO    }
+  G2P500i = 5C+6H+N+9O;    {CH3CH(OH)COCH(OO.)CO(OONO2)                                                                            2.PKO    }
+  G1H505l = 5C+9H+5O;      {CH3CH(OH)COCH(OOH)CH2(O.)                                                                              1.HKO    }
+  GHK500q = 5C+10H+5O;     {CH3CH(OH)COCH(OOH)CH2(OH)                                                                              HKOO     }
+  GHN503I = 5C+9H+N+7O;    {CH3CH(OH)COCH(OOH)CH2(ONO2)                                                                            HNKO     }
+  GHK500L = 5C+10H+4O;     {CH3CH(OH)COCH(OOH)CH3                                                                                  HKO      }
+  GHD500W = 5C+8H+5O;      {CH3CH(OH)COCH(OOH)CHO                                                                                  HDKO     }
+  GAH500n = 5C+8H+6O;      {CH3CH(OH)COCH(OOH)CO(OH)                                                                               AHKO     }
+  G3H500w = 5C+7H+7O;      {CH3CH(OH)COCH(OOH)CO(OO.)                                                                              3.HKK    }
+  GGH500i = 5C+8H+7O;      {CH3CH(OH)COCH(OOH)CO(OOH)                                                                              GHKO     }
+  GPH500p = 5C+7H+N+9O;    {CH3CH(OH)COCH(OOH)CO(OONO2)                                                                            PHKO     }
+  G1K4002 = 4C+7H+3O;      {CH3CH(OH)COCH2(O.)                                                                                     1.KO     }
+  GKO4003 = 4C+8H+3O;      {CH3CH(OH)COCH2(OH)                                                                                     KOO      }
+  GNK4003 = 4C+7H+N+5O;    {CH3CH(OH)COCH2(ONO2)                                                                                   NKO      }
+  G2K4002 = 4C+7H+4O;      {CH3CH(OH)COCH2(OO.)                                                                                    2.KO     }
+  GHK4004 = 4C+8H+4O;      {CH3CH(OH)COCH2(OOH)                                                                                    HKO      }
+  G1K500I = 5C+9H+3O;      {CH3CH(OH)COCH2CH2(O.)                                                                                  1.KO     }
+  GKO5009 = 5C+10H+3O;     {CH3CH(OH)COCH2CH2(OH)                                                                                  KOO      }
+  GNK500C = 5C+9H+N+5O;    {CH3CH(OH)COCH2CH2(ONO2)                                                                                NKO      }
+  G2K500H = 5C+9H+4O;      {CH3CH(OH)COCH2CH2(OO.)                                                                                 2.KO     }
+  GHK500M = 5C+10H+4O;     {CH3CH(OH)COCH2CH2(OOH)                                                                                 HKO      }
+  GKO5005 = 5C+10H+2O;     {CH3CH(OH)COCH2CH3                                                                                      KO       }
+  GDK5003 = 5C+8H+3O;      {CH3CH(OH)COCH2CHO                                                                                      DKO      }
+  GAK5003 = 5C+8H+4O;      {CH3CH(OH)COCH2CO(OH)                                                                                   AKO      }
+  G3K5009 = 5C+7H+5O;      {CH3CH(OH)COCH2CO(OO.)                                                                                  3.KKO    }
+  GGK5003 = 5C+8H+5O;      {CH3CH(OH)COCH2CO(OOH)                                                                                  GKO      }
+  GPK5003 = 5C+7H+N+7O;    {CH3CH(OH)COCH2CO(OONO2)                                                                                PKO      }
+  GDK4004 = 4C+6H+3O;      {CH3CH(OH)COCHO                                                                                         DKO      }
+  GAK4001 = 4C+6H+4O;      {CH3CH(OH)COCO(OH)                                                                                      AKO      }
+  G3K400A = 4C+5H+5O;      {CH3CH(OH)COCO(OO.)                                                                                     3.KKO    }
+  GGK4001 = 4C+6H+5O;      {CH3CH(OH)COCO(OOH)                                                                                     GKO      }
+  GPK4001 = 4C+5H+N+7O;    {CH3CH(OH)COCO(OONO2)                                                                                   PKO      }
+  G1K500z = 5C+7H+4O;      {CH3CH(OH)COCOCH2(O.)                                                                                   1.KKO    }
+  GKK500D = 5C+8H+4O;      {CH3CH(OH)COCOCH2(OH)                                                                                   KKOO     }
+  GNK500w = 5C+7H+N+6O;    {CH3CH(OH)COCOCH2(ONO2)                                                                                 NKKO     }
+  G2K500w = 5C+7H+5O;      {CH3CH(OH)COCOCH2(OO.)                                                                                  2.KKO    }
+  GHK500z = 5C+8H+5O;      {CH3CH(OH)COCOCH2(OOH)                                                                                  HKKO     }
+  GKK5007 = 5C+8H+3O;      {CH3CH(OH)COCOCH3                                                                                       KKO      }
+  GDK500U = 5C+6H+4O;      {CH3CH(OH)COCOCHO                                                                                       DKKO     }
+  GAK500M = 5C+6H+5O;      {CH3CH(OH)COCOCO(OH)                                                                                    AKKO     }
+  G3K500i = 5C+5H+6O;      {CH3CH(OH)COCOCO(OO.)                                                                                   3.KKK    }
+  GGK500N = 5C+6H+6O;      {CH3CH(OH)COCOCO(OOH)                                                                                   GKKO     }
+  GPK500N = 5C+5H+N+8O;    {CH3CH(OH)COCOCO(OONO2)                                                                                 PKKO     }
+  G1N5046 = 5C+10H+N+6O;   {CH3CH(ONO2)CH(O.)CH(OH)CH2(OH)                                                                         1.NOO    }
+  G1N5029 = 5C+9H+2N+8O;   {CH3CH(ONO2)CH(O.)CH(OH)CH2(ONO2)                                                                       1.NNO    }
+  G1H507X = 5C+10H+N+7O;   {CH3CH(ONO2)CH(O.)CH(OH)CH2(OOH)                                                                        1.HNO    }
+  G1N503g = 5C+10H+N+5O;   {CH3CH(ONO2)CH(O.)CH(OH)CH3                                                                             1.NO     }
+  G1N506C = 5C+8H+N+6O;    {CH3CH(ONO2)CH(O.)CH(OH)CHO                                                                             1.NDO    }
+  G1A504t = 5C+8H+N+7O;    {CH3CH(ONO2)CH(O.)CH(OH)CO(OH)                                                                          1.ANO    }
+  G1G504J = 5C+8H+N+8O;    {CH3CH(ONO2)CH(O.)CH(OH)CO(OOH)                                                                         1.GNO    }
+  G1P5059 = 5C+7H+2N+10O;  {CH3CH(ONO2)CH(O.)CH(OH)CO(OONO2)                                                                       1.PNO    }
+  G1N503x = 5C+9H+2N+8O;   {CH3CH(ONO2)CH(O.)CH(ONO2)CH2(OH)                                                                       1.NNO    }
+  G1N5027 = 5C+8H+3N+10O;  {CH3CH(ONO2)CH(O.)CH(ONO2)CH2(ONO2)                                                                     1.NNN    }
+  G1H507G = 5C+9H+2N+9O;   {CH3CH(ONO2)CH(O.)CH(ONO2)CH2(OOH)                                                                      1.HNN    }
+  G1N5014 = 5C+9H+2N+7O;   {CH3CH(ONO2)CH(O.)CH(ONO2)CH3                                                                           1.NN     }
+  G1N5063 = 5C+7H+2N+8O;   {CH3CH(ONO2)CH(O.)CH(ONO2)CHO                                                                           1.NND    }
+  G1A502B = 5C+7H+2N+9O;   {CH3CH(ONO2)CH(O.)CH(ONO2)CO(OH)                                                                        1.ANN    }
+  G1G504F = 5C+7H+2N+10O;  {CH3CH(ONO2)CH(O.)CH(ONO2)CO(OOH)                                                                       1.GNN    }
+  G1P502R = 5C+6H+3N+12O;  {CH3CH(ONO2)CH(O.)CH(ONO2)CO(OONO2)                                                                     1.PNN    }
+  G1H503I = 5C+10H+N+7O;   {CH3CH(ONO2)CH(O.)CH(OOH)CH2(OH)                                                                        1.HNO    }
+  G1H504S = 5C+9H+2N+9O;   {CH3CH(ONO2)CH(O.)CH(OOH)CH2(ONO2)                                                                      1.HNN    }
+  G1H502u = 5C+10H+N+6O;   {CH3CH(ONO2)CH(O.)CH(OOH)CH3                                                                            1.HN     }
+  G1H507t = 5C+8H+N+7O;    {CH3CH(ONO2)CH(O.)CH(OOH)CHO                                                                            1.HND    }
+  G1A504s = 5C+8H+N+8O;    {CH3CH(ONO2)CH(O.)CH(OOH)CO(OH)                                                                         1.AHN    }
+  G1G504H = 5C+8H+N+9O;    {CH3CH(ONO2)CH(O.)CH(OOH)CO(OOH)                                                                        1.GHN    }
+  G1P5058 = 5C+7H+2N+11O;  {CH3CH(ONO2)CH(O.)CH(OOH)CO(OONO2)                                                                      1.PHN    }
+  G1N400X = 4C+8H+N+5O;    {CH3CH(ONO2)CH(O.)CH2(OH)                                                                               1.NO     }
+  G1N400U = 4C+7H+2N+7O;   {CH3CH(ONO2)CH(O.)CH2(ONO2)                                                                             1.NN     }
+  G1H401I = 4C+8H+N+6O;    {CH3CH(ONO2)CH(O.)CH2(OOH)                                                                              1.HN     }
+  G1N501R = 5C+10H+N+5O;   {CH3CH(ONO2)CH(O.)CH2CH2(OH)                                                                            1.NO     }
+  G1N500L = 5C+9H+2N+7O;   {CH3CH(ONO2)CH(O.)CH2CH2(ONO2)                                                                          1.NN     }
+  G1H502s = 5C+10H+N+6O;   {CH3CH(ONO2)CH(O.)CH2CH2(OOH)                                                                           1.HN     }
+  G1N5008 = 5C+10H+N+4O;   {CH3CH(ONO2)CH(O.)CH2CH3                                                                                1.N      }
+  G1N503f = 5C+8H+N+5O;    {CH3CH(ONO2)CH(O.)CH2CHO                                                                                1.ND     }
+  G1A500P = 5C+8H+N+6O;    {CH3CH(ONO2)CH(O.)CH2CO(OH)                                                                             1.AN     }
+  G1G500M = 5C+8H+N+7O;    {CH3CH(ONO2)CH(O.)CH2CO(OOH)                                                                            1.GN     }
+  G1P500R = 5C+7H+2N+9O;   {CH3CH(ONO2)CH(O.)CH2CO(OONO2)                                                                          1.PN     }
+  G1N400g = 4C+6H+N+5O;    {CH3CH(ONO2)CH(O.)CHO                                                                                   1.ND     }
+  G1A400A = 4C+6H+N+6O;    {CH3CH(ONO2)CH(O.)CO(OH)                                                                                1.AN     }
+  G1G400X = 4C+6H+N+7O;    {CH3CH(ONO2)CH(O.)CO(OOH)                                                                               1.GN     }
+  G1P400B = 4C+5H+2N+9O;   {CH3CH(ONO2)CH(O.)CO(OONO2)                                                                             1.PN     }
+  G1N501X = 5C+8H+N+6O;    {CH3CH(ONO2)CH(O.)COCH2(OH)                                                                             1.NKO    }
+  G1N502B = 5C+7H+2N+8O;   {CH3CH(ONO2)CH(O.)COCH2(ONO2)                                                                           1.NNK    }
+  G1H507O = 5C+8H+N+7O;    {CH3CH(ONO2)CH(O.)COCH2(OOH)                                                                            1.HNK    }
+  G1N5016 = 5C+8H+N+5O;    {CH3CH(ONO2)CH(O.)COCH3                                                                                 1.NK     }
+  G1N5068 = 5C+6H+N+6O;    {CH3CH(ONO2)CH(O.)COCHO                                                                                 1.NDK    }
+  G1A502D = 5C+6H+N+7O;    {CH3CH(ONO2)CH(O.)COCO(OH)                                                                              1.ANK    }
+  G1G504K = 5C+6H+N+8O;    {CH3CH(ONO2)CH(O.)COCO(OOH)                                                                             1.GNK    }
+  G1P502U = 5C+5H+2N+10O;  {CH3CH(ONO2)CH(O.)COCO(OONO2)                                                                           1.PNK    }
+  G1N502o = 5C+10H+N+6O;   {CH3CH(ONO2)CH(OH)CH(O.)CH2(OH)                                                                         1.NOO    }
+  G1N5023 = 5C+9H+2N+8O;   {CH3CH(ONO2)CH(OH)CH(O.)CH2(ONO2)                                                                       1.NNO    }
+  G1H507K = 5C+10H+N+7O;   {CH3CH(ONO2)CH(OH)CH(O.)CH2(OOH)                                                                        1.HNO    }
+  G1N501D = 5C+10H+N+5O;   {CH3CH(ONO2)CH(OH)CH(O.)CH3                                                                             1.NO     }
+  G1N5065 = 5C+8H+N+6O;    {CH3CH(ONO2)CH(OH)CH(O.)CHO                                                                             1.NDO    }
+  G1A501v = 5C+8H+N+7O;    {CH3CH(ONO2)CH(OH)CH(O.)CO(OH)                                                                          1.ANO    }
+  G1G501W = 5C+8H+N+8O;    {CH3CH(ONO2)CH(OH)CH(O.)CO(OOH)                                                                         1.GNO    }
+  G1P5023 = 5C+7H+2N+10O;  {CH3CH(ONO2)CH(OH)CH(O.)CO(OONO2)                                                                       1.PNO    }
+  G1N504l = 5C+10H+N+6O;   {CH3CH(ONO2)CH(OH)CH(OH)CH2(O.)                                                                         1.NOO    }
+  GNO500a = 5C+11H+N+6O;   {CH3CH(ONO2)CH(OH)CH(OH)CH2(OH)                                                                         NOOO     }
+  GNN501f = 5C+10H+2N+8O;  {CH3CH(ONO2)CH(OH)CH(OH)CH2(ONO2)                                                                       NNOO     }
+  GND501M = 5C+9H+N+6O;    {CH3CH(ONO2)CH(OH)CH(OH)CHO                                                                             NDOO     }
+  GAN501r = 5C+9H+N+7O;    {CH3CH(ONO2)CH(OH)CH(OH)CO(OH)                                                                          ANOO     }
+  G3N502D = 5C+8H+N+8O;    {CH3CH(ONO2)CH(OH)CH(OH)CO(OO.)                                                                         3.NKO    }
+  GGN501b = 5C+9H+N+8O;    {CH3CH(ONO2)CH(OH)CH(OH)CO(OOH)                                                                         GNOO     }
+  GPN501u = 5C+8H+2N+10O;  {CH3CH(ONO2)CH(OH)CH(OH)CO(OONO2)                                                                       PNOO     }
+  G1N503X = 5C+9H+2N+8O;   {CH3CH(ONO2)CH(OH)CH(ONO2)CH2(O.)                                                                       1.NNO    }
+  GNN502I = 5C+10H+2N+8O;  {CH3CH(ONO2)CH(OH)CH(ONO2)CH2(OH)                                                                       NNOO     }
+  GNN501e = 5C+9H+3N+10O;  {CH3CH(ONO2)CH(OH)CH(ONO2)CH2(ONO2)                                                                     NNNO     }
+  G2N503G = 5C+9H+2N+9O;   {CH3CH(ONO2)CH(OH)CH(ONO2)CH2(OO.)                                                                      2.NNO    }
+  GHN504G = 5C+10H+2N+9O;  {CH3CH(ONO2)CH(OH)CH(ONO2)CH2(OOH)                                                                      HNNO     }
+  GNN500u = 5C+10H+2N+7O;  {CH3CH(ONO2)CH(OH)CH(ONO2)CH3                                                                           NNO      }
+  GNN502U = 5C+8H+2N+8O;   {CH3CH(ONO2)CH(OH)CH(ONO2)CHO                                                                           NNDO     }
+  GAN501q = 5C+8H+2N+9O;   {CH3CH(ONO2)CH(OH)CH(ONO2)CO(OH)                                                                        ANNO     }
+  G3N501M = 5C+7H+2N+10O;  {CH3CH(ONO2)CH(OH)CH(ONO2)CO(OO.)                                                                       3.NNK    }
+  GGN501a = 5C+8H+2N+10O;  {CH3CH(ONO2)CH(OH)CH(ONO2)CO(OOH)                                                                       GNNO     }
+  GPN501t = 5C+7H+3N+12O;  {CH3CH(ONO2)CH(OH)CH(ONO2)CO(OONO2)                                                                     PNNO     }
+  G2N502Y = 5C+10H+N+7O;   {CH3CH(ONO2)CH(OH)CH(OO.)CH2(OH)                                                                        2.NOO    }
+  G2N501w = 5C+9H+2N+9O;   {CH3CH(ONO2)CH(OH)CH(OO.)CH2(ONO2)                                                                      2.NNO    }
+  G2N501C = 5C+10H+N+6O;   {CH3CH(ONO2)CH(OH)CH(OO.)CH3                                                                            2.NO     }
+  G2N505w = 5C+8H+N+7O;    {CH3CH(ONO2)CH(OH)CH(OO.)CHO                                                                            2.NDO    }
+  G2A501d = 5C+8H+N+8O;    {CH3CH(ONO2)CH(OH)CH(OO.)CO(OH)                                                                         2.ANO    }
+  G2G501F = 5C+8H+N+9O;    {CH3CH(ONO2)CH(OH)CH(OO.)CO(OOH)                                                                        2.GNO    }
+  G2P501h = 5C+7H+2N+11O;  {CH3CH(ONO2)CH(OH)CH(OO.)CO(OONO2)                                                                      2.PNO    }
+  G1H504c = 5C+10H+N+7O;   {CH3CH(ONO2)CH(OH)CH(OOH)CH2(O.)                                                                        1.HNO    }
+  GHN503D = 5C+11H+N+7O;   {CH3CH(ONO2)CH(OH)CH(OOH)CH2(OH)                                                                        HNOO     }
+  GHN502Z = 5C+10H+2N+9O;  {CH3CH(ONO2)CH(OH)CH(OOH)CH2(ONO2)                                                                      HNNO     }
+  GHN501a = 5C+11H+N+6O;   {CH3CH(ONO2)CH(OH)CH(OOH)CH3                                                                            HNO      }
+  GHN505s = 5C+9H+N+7O;    {CH3CH(ONO2)CH(OH)CH(OOH)CHO                                                                            HNDO     }
+  GAH502J = 5C+9H+N+8O;    {CH3CH(ONO2)CH(OH)CH(OOH)CO(OH)                                                                         AHNO     }
+  G3H502x = 5C+8H+N+9O;    {CH3CH(ONO2)CH(OH)CH(OOH)CO(OO.)                                                                        3.HNK    }
+  GGH501z = 5C+9H+N+9O;    {CH3CH(ONO2)CH(OH)CH(OOH)CO(OOH)                                                                        GHNO     }
+  GPH502I = 5C+8H+2N+11O;  {CH3CH(ONO2)CH(OH)CH(OOH)CO(OONO2)                                                                      PHNO     }
+  G1N400r = 4C+8H+N+5O;    {CH3CH(ONO2)CH(OH)CH2(O.)                                                                               1.NO     }
+  GNO400C = 4C+9H+N+5O;    {CH3CH(ONO2)CH(OH)CH2(OH)                                                                               NOO      }
+  GNN400P = 4C+8H+2N+7O;   {CH3CH(ONO2)CH(OH)CH2(ONO2)                                                                             NNO      }
+  G2N400o = 4C+8H+N+6O;    {CH3CH(ONO2)CH(OH)CH2(OO.)                                                                              2.NO     }
+  GHN4014 = 4C+9H+N+6O;    {CH3CH(ONO2)CH(OH)CH2(OOH)                                                                              HNO      }
+  G1N5022 = 5C+10H+N+5O;   {CH3CH(ONO2)CH(OH)CH2CH2(O.)                                                                            1.NO     }
+  GNO500K = 5C+11H+N+5O;   {CH3CH(ONO2)CH(OH)CH2CH2(OH)                                                                            NOO      }
+  GNN500L = 5C+10H+2N+7O;  {CH3CH(ONO2)CH(OH)CH2CH2(ONO2)                                                                          NNO      }
+  GND500f = 5C+9H+N+5O;    {CH3CH(ONO2)CH(OH)CH2CHO                                                                                NDO      }
+  GAN500c = 5C+9H+N+6O;    {CH3CH(ONO2)CH(OH)CH2CO(OH)                                                                             ANO      }
+  G3N500q = 5C+8H+N+7O;    {CH3CH(ONO2)CH(OH)CH2CO(OO.)                                                                            3.NKO    }
+  GGN500R = 5C+9H+N+7O;    {CH3CH(ONO2)CH(OH)CH2CO(OOH)                                                                            GNO      }
+  GPN500c = 5C+8H+2N+9O;   {CH3CH(ONO2)CH(OH)CH2CO(OONO2)                                                                          PNO      }
+  GND400H = 4C+7H+N+5O;    {CH3CH(ONO2)CH(OH)CHO                                                                                   NDO      }
+  GAN400G = 4C+7H+N+6O;    {CH3CH(ONO2)CH(OH)CO(OH)                                                                                ANO      }
+  G3N400A = 4C+6H+N+7O;    {CH3CH(ONO2)CH(OH)CO(OO.)                                                                               3.NKO    }
+  GGN400G = 4C+7H+N+7O;    {CH3CH(ONO2)CH(OH)CO(OOH)                                                                               GNO      }
+  GPN400G = 4C+6H+2N+9O;   {CH3CH(ONO2)CH(OH)CO(OONO2)                                                                             PNO      }
+  G1N503b = 5C+8H+N+6O;    {CH3CH(ONO2)CH(OH)COCH2(O.)                                                                             1.NKO    }
+  GNK500k = 5C+9H+N+6O;    {CH3CH(ONO2)CH(OH)COCH2(OH)                                                                             NKOO     }
+  GNN501g = 5C+8H+2N+8O;   {CH3CH(ONO2)CH(OH)COCH2(ONO2)                                                                           NNKO     }
+  G2N503K = 5C+8H+N+7O;    {CH3CH(ONO2)CH(OH)COCH2(OO.)                                                                            2.NKO    }
+  GHN504K = 5C+9H+N+7O;    {CH3CH(ONO2)CH(OH)COCH2(OOH)                                                                            HNKO     }
+  GND500y = 5C+7H+N+6O;    {CH3CH(ONO2)CH(OH)COCHO                                                                                 NDKO     }
+  GAN501s = 5C+7H+N+7O;    {CH3CH(ONO2)CH(OH)COCO(OH)                                                                              ANKO     }
+  G3N502T = 5C+6H+N+8O;    {CH3CH(ONO2)CH(OH)COCO(OO.)                                                                             3.NKK    }
+  GGN501c = 5C+7H+N+8O;    {CH3CH(ONO2)CH(OH)COCO(OOH)                                                                             GNKO     }
+  GPN501v = 5C+6H+2N+10O;  {CH3CH(ONO2)CH(OH)COCO(OONO2)                                                                           PNKO     }
+  G1N501S = 5C+9H+2N+8O;   {CH3CH(ONO2)CH(ONO2)CH(O.)CH2(OH)                                                                       1.NNO    }
+  G1N501y = 5C+8H+3N+10O;  {CH3CH(ONO2)CH(ONO2)CH(O.)CH2(ONO2)                                                                     1.NNN    }
+  G1H507H = 5C+9H+2N+9O;   {CH3CH(ONO2)CH(ONO2)CH(O.)CH2(OOH)                                                                      1.HNN    }
+  G1N5019 = 5C+9H+2N+7O;   {CH3CH(ONO2)CH(ONO2)CH(O.)CH3                                                                           1.NN     }
+  G1N5064 = 5C+7H+2N+8O;   {CH3CH(ONO2)CH(ONO2)CH(O.)CHO                                                                           1.NND    }
+  G1A501i = 5C+7H+2N+9O;   {CH3CH(ONO2)CH(ONO2)CH(O.)CO(OH)                                                                        1.ANN    }
+  G1G504O = 5C+7H+2N+10O;  {CH3CH(ONO2)CH(ONO2)CH(O.)CO(OOH)                                                                       1.GNN    }
+  G1P501m = 5C+6H+3N+12O;  {CH3CH(ONO2)CH(ONO2)CH(O.)CO(OONO2)                                                                     1.PNN    }
+  G1N503h = 5C+9H+2N+8O;   {CH3CH(ONO2)CH(ONO2)CH(OH)CH2(O.)                                                                       1.NNO    }
+  GNN5017 = 5C+10H+2N+8O;  {CH3CH(ONO2)CH(ONO2)CH(OH)CH2(OH)                                                                       NNOO     }
+  GNN501X = 5C+9H+3N+10O;  {CH3CH(ONO2)CH(ONO2)CH(OH)CH2(ONO2)                                                                     NNNO     }
+  G2N503N = 5C+9H+2N+9O;   {CH3CH(ONO2)CH(ONO2)CH(OH)CH2(OO.)                                                                      2.NNO    }
+  GHN504N = 5C+10H+2N+9O;  {CH3CH(ONO2)CH(ONO2)CH(OH)CH2(OOH)                                                                      HNNO     }
+  GNN502Z = 5C+8H+2N+8O;   {CH3CH(ONO2)CH(ONO2)CH(OH)CHO                                                                           NNDO     }
+  GAN501c = 5C+8H+2N+9O;   {CH3CH(ONO2)CH(ONO2)CH(OH)CO(OH)                                                                        ANNO     }
+  G3N501Q = 5C+7H+2N+10O;  {CH3CH(ONO2)CH(ONO2)CH(OH)CO(OO.)                                                                       3.NNK    }
+  GGN501r = 5C+8H+2N+10O;  {CH3CH(ONO2)CH(ONO2)CH(OH)CO(OOH)                                                                       GNNO     }
+  GPN501f = 5C+7H+3N+12O;  {CH3CH(ONO2)CH(ONO2)CH(OH)CO(OONO2)                                                                     PNNO     }
+  G1N503W = 5C+8H+3N+10O;  {CH3CH(ONO2)CH(ONO2)CH(ONO2)CH2(O.)                                                                     1.NNN    }
+  GNN5014 = 5C+9H+3N+10O;  {CH3CH(ONO2)CH(ONO2)CH(ONO2)CH2(OH)                                                                     NNNO     }
+  GNN501W = 5C+8H+4N+12O;  {CH3CH(ONO2)CH(ONO2)CH(ONO2)CH2(ONO2)                                                                   NNNN     }
+  G2N503F = 5C+8H+3N+11O;  {CH3CH(ONO2)CH(ONO2)CH(ONO2)CH2(OO.)                                                                    2.NNN    }
+  GHN504F = 5C+9H+3N+11O;  {CH3CH(ONO2)CH(ONO2)CH(ONO2)CH2(OOH)                                                                    HNNN     }
+  GNN500t = 5C+9H+3N+9O;   {CH3CH(ONO2)CH(ONO2)CH(ONO2)CH3                                                                         NNN      }
+  GNN502T = 5C+7H+3N+10O;  {CH3CH(ONO2)CH(ONO2)CH(ONO2)CHO                                                                         NNND     }
+  GAN501b = 5C+7H+3N+11O;  {CH3CH(ONO2)CH(ONO2)CH(ONO2)CO(OH)                                                                      ANNN     }
+  G3N501L = 5C+6H+3N+12O;  {CH3CH(ONO2)CH(ONO2)CH(ONO2)CO(OO.)                                                                     3.NNN    }
+  GGN501n = 5C+7H+3N+12O;  {CH3CH(ONO2)CH(ONO2)CH(ONO2)CO(OOH)                                                                     GNNN     }
+  GPN501e = 5C+6H+4N+14O;  {CH3CH(ONO2)CH(ONO2)CH(ONO2)CO(OONO2)                                                                   PNNN     }
+  G2N501P = 5C+9H+2N+9O;   {CH3CH(ONO2)CH(ONO2)CH(OO.)CH2(OH)                                                                      2.NNO    }
+  G2N501t = 5C+8H+3N+11O;  {CH3CH(ONO2)CH(ONO2)CH(OO.)CH2(ONO2)                                                                    2.NNN    }
+  G2N5018 = 5C+9H+2N+8O;   {CH3CH(ONO2)CH(ONO2)CH(OO.)CH3                                                                          2.NN     }
+  G2N505F = 5C+7H+2N+9O;   {CH3CH(ONO2)CH(ONO2)CH(OO.)CHO                                                                          2.NND    }
+  G2A501S = 5C+7H+2N+10O;  {CH3CH(ONO2)CH(ONO2)CH(OO.)CO(OH)                                                                       2.ANN    }
+  G2G503K = 5C+7H+2N+11O;  {CH3CH(ONO2)CH(ONO2)CH(OO.)CO(OOH)                                                                      2.GNN    }
+  G2P501W = 5C+6H+3N+13O;  {CH3CH(ONO2)CH(ONO2)CH(OO.)CO(OONO2)                                                                    2.PNN    }
+  G1H504T = 5C+9H+2N+9O;   {CH3CH(ONO2)CH(ONO2)CH(OOH)CH2(O.)                                                                      1.HNN    }
+  GHN501l = 5C+10H+2N+9O;  {CH3CH(ONO2)CH(ONO2)CH(OOH)CH2(OH)                                                                      HNNO     }
+  GHN502U = 5C+9H+3N+11O;  {CH3CH(ONO2)CH(ONO2)CH(OOH)CH2(ONO2)                                                                    HNNN     }
+  GHN501U = 5C+10H+2N+8O;  {CH3CH(ONO2)CH(ONO2)CH(OOH)CH3                                                                          HNN      }
+  GHN504d = 5C+8H+2N+9O;   {CH3CH(ONO2)CH(ONO2)CH(OOH)CHO                                                                          HNND     }
+  GAH5029 = 5C+8H+2N+10O;  {CH3CH(ONO2)CH(ONO2)CH(OOH)CO(OH)                                                                       AHNN     }
+  G3H501o = 5C+7H+2N+11O;  {CH3CH(ONO2)CH(ONO2)CH(OOH)CO(OO.)                                                                      3.HNN    }
+  GGH502U = 5C+8H+2N+11O;  {CH3CH(ONO2)CH(ONO2)CH(OOH)CO(OOH)                                                                      GHNN     }
+  GPH5027 = 5C+7H+3N+13O;  {CH3CH(ONO2)CH(ONO2)CH(OOH)CO(OONO2)                                                                    PHNN     }
+  G1N400b = 4C+7H+2N+7O;   {CH3CH(ONO2)CH(ONO2)CH2(O.)                                                                             1.NN     }
+  GNN400N = 4C+8H+2N+7O;   {CH3CH(ONO2)CH(ONO2)CH2(OH)                                                                             NNO      }
+  GNN400L = 4C+7H+3N+9O;   {CH3CH(ONO2)CH(ONO2)CH2(ONO2)                                                                           NNN      }
+  G2N400Z = 4C+7H+2N+8O;   {CH3CH(ONO2)CH(ONO2)CH2(OO.)                                                                            2.NN     }
+  GHN400n = 4C+8H+2N+8O;   {CH3CH(ONO2)CH(ONO2)CH2(OOH)                                                                            HNN      }
+  G1N5018 = 5C+9H+2N+7O;   {CH3CH(ONO2)CH(ONO2)CH2CH2(O.)                                                                          1.NN     }
+  GNN5009 = 5C+10H+2N+7O;  {CH3CH(ONO2)CH(ONO2)CH2CH2(OH)                                                                          NNO      }
+  GNN500K = 5C+9H+3N+9O;   {CH3CH(ONO2)CH(ONO2)CH2CH2(ONO2)                                                                        NNN      }
+  G2N5017 = 5C+9H+2N+8O;   {CH3CH(ONO2)CH(ONO2)CH2CH2(OO.)                                                                         2.NN     }
+  GHN501T = 5C+10H+2N+8O;  {CH3CH(ONO2)CH(ONO2)CH2CH2(OOH)                                                                         HNN      }
+  GNN500x = 5C+8H+2N+7O;   {CH3CH(ONO2)CH(ONO2)CH2CHO                                                                              NND      }
+  GAN500R = 5C+8H+2N+8O;   {CH3CH(ONO2)CH(ONO2)CH2CO(OH)                                                                           ANN      }
+  G3N500O = 5C+7H+2N+9O;   {CH3CH(ONO2)CH(ONO2)CH2CO(OO.)                                                                          3.NNK    }
+  GGN500P = 5C+8H+2N+9O;   {CH3CH(ONO2)CH(ONO2)CH2CO(OOH)                                                                          GNN      }
+  GPN500R = 5C+7H+3N+11O;  {CH3CH(ONO2)CH(ONO2)CH2CO(OONO2)                                                                        PNN      }
+  GNN4007 = 4C+6H+2N+7O;   {CH3CH(ONO2)CH(ONO2)CHO                                                                                 NND      }
+  GAN400F = 4C+6H+2N+8O;   {CH3CH(ONO2)CH(ONO2)CO(OH)                                                                              ANN      }
+  G3N4009 = 4C+5H+2N+9O;   {CH3CH(ONO2)CH(ONO2)CO(OO.)                                                                             3.NNK    }
+  GGN400F = 4C+6H+2N+9O;   {CH3CH(ONO2)CH(ONO2)CO(OOH)                                                                             GNN      }
+  GPN400F = 4C+5H+3N+11O;  {CH3CH(ONO2)CH(ONO2)CO(OONO2)                                                                           PNN      }
+  G1N503Z = 5C+7H+2N+8O;   {CH3CH(ONO2)CH(ONO2)COCH2(O.)                                                                           1.NNK    }
+  GNN5018 = 5C+8H+2N+8O;   {CH3CH(ONO2)CH(ONO2)COCH2(OH)                                                                           NNKO     }
+  GNN501Y = 5C+7H+3N+10O;  {CH3CH(ONO2)CH(ONO2)COCH2(ONO2)                                                                         NNNK     }
+  G2N503I = 5C+7H+2N+9O;   {CH3CH(ONO2)CH(ONO2)COCH2(OO.)                                                                          2.NNK    }
+  GHN504I = 5C+8H+2N+9O;   {CH3CH(ONO2)CH(ONO2)COCH2(OOH)                                                                          HNNK     }
+  GNN502X = 5C+6H+2N+8O;   {CH3CH(ONO2)CH(ONO2)COCHO                                                                               NNDK     }
+  GAN501d = 5C+6H+2N+9O;   {CH3CH(ONO2)CH(ONO2)COCO(OH)                                                                            ANNK     }
+  G3N502O = 5C+5H+2N+10O;  {CH3CH(ONO2)CH(ONO2)COCO(OO.)                                                                           3.NNK    }
+  GGN501p = 5C+6H+2N+10O;  {CH3CH(ONO2)CH(ONO2)COCO(OOH)                                                                           GNNK     }
+  GPN501g = 5C+5H+3N+12O;  {CH3CH(ONO2)CH(ONO2)COCO(OONO2)                                                                         PNNK     }
+  G2N504a = 5C+10H+N+7O;   {CH3CH(ONO2)CH(OO.)CH(OH)CH2(OH)                                                                        2.NOO    }
+  G2N5022 = 5C+9H+2N+9O;   {CH3CH(ONO2)CH(OO.)CH(OH)CH2(ONO2)                                                                      2.NNO    }
+  G2N503X = 5C+10H+N+6O;   {CH3CH(ONO2)CH(OO.)CH(OH)CH3                                                                            2.NO     }
+  G2N505v = 5C+8H+N+7O;    {CH3CH(ONO2)CH(OO.)CH(OH)CHO                                                                            2.NDO    }
+  G2A505C = 5C+8H+N+8O;    {CH3CH(ONO2)CH(OO.)CH(OH)CO(OH)                                                                         2.ANO    }
+  G2G503A = 5C+8H+N+9O;    {CH3CH(ONO2)CH(OO.)CH(OH)CO(OOH)                                                                        2.GNO    }
+  G2P504a = 5C+7H+2N+11O;  {CH3CH(ONO2)CH(OO.)CH(OH)CO(OONO2)                                                                      2.PNO    }
+  G2N504Z = 5C+9H+2N+9O;   {CH3CH(ONO2)CH(OO.)CH(ONO2)CH2(OH)                                                                      2.NNO    }
+  G2N5021 = 5C+8H+3N+11O;  {CH3CH(ONO2)CH(OO.)CH(ONO2)CH2(ONO2)                                                                    2.NNN    }
+  G2N5013 = 5C+9H+2N+8O;   {CH3CH(ONO2)CH(OO.)CH(ONO2)CH3                                                                          2.NN     }
+  G2N505h = 5C+7H+2N+9O;   {CH3CH(ONO2)CH(OO.)CH(ONO2)CHO                                                                          2.NND    }
+  G2A501r = 5C+7H+2N+10O;  {CH3CH(ONO2)CH(OO.)CH(ONO2)CO(OH)                                                                       2.ANN    }
+  G2G5038 = 5C+7H+2N+11O;  {CH3CH(ONO2)CH(OO.)CH(ONO2)CO(OOH)                                                                      2.GNN    }
+  G2P5025 = 5C+6H+3N+13O;  {CH3CH(ONO2)CH(OO.)CH(ONO2)CO(OONO2)                                                                    2.PNN    }
+  G2H502C = 5C+10H+N+8O;   {CH3CH(ONO2)CH(OO.)CH(OOH)CH2(OH)                                                                       2.HNO    }
+  G2H501h = 5C+10H+N+7O;   {CH3CH(ONO2)CH(OO.)CH(OOH)CH3                                                                           2.HN     }
+  G2A505A = 5C+8H+N+9O;    {CH3CH(ONO2)CH(OO.)CH(OOH)CO(OH)                                                                        2.AHN    }
+  G2G5039 = 5C+8H+N+10O;   {CH3CH(ONO2)CH(OO.)CH(OOH)CO(OOH)                                                                       2.GHN    }
+  G2P504Z = 5C+7H+2N+12O;  {CH3CH(ONO2)CH(OO.)CH(OOH)CO(OONO2)                                                                     2.PHN    }
+  G2N400W = 4C+8H+N+6O;    {CH3CH(ONO2)CH(OO.)CH2(OH)                                                                              2.NO     }
+  G2N400T = 4C+7H+2N+8O;   {CH3CH(ONO2)CH(OO.)CH2(ONO2)                                                                            2.NN     }
+  G2H401K = 4C+8H+N+7O;    {CH3CH(ONO2)CH(OO.)CH2(OOH)                                                                             2.HN     }
+  G2N502X = 5C+10H+N+6O;   {CH3CH(ONO2)CH(OO.)CH2CH2(OH)                                                                           2.NO     }
+  G2N500L = 5C+9H+2N+8O;   {CH3CH(ONO2)CH(OO.)CH2CH2(ONO2)                                                                         2.NN     }
+  G2N5008 = 5C+10H+N+5O;   {CH3CH(ONO2)CH(OO.)CH2CH3                                                                               2.N      }
+  G2N504G = 5C+8H+N+6O;    {CH3CH(ONO2)CH(OO.)CH2CHO                                                                               2.ND     }
+  G2A500O = 5C+8H+N+7O;    {CH3CH(ONO2)CH(OO.)CH2CO(OH)                                                                            2.AN     }
+  G2G500L = 5C+8H+N+8O;    {CH3CH(ONO2)CH(OO.)CH2CO(OOH)                                                                           2.GN     }
+  G2P500Q = 5C+7H+2N+10O;  {CH3CH(ONO2)CH(OO.)CH2CO(OONO2)                                                                         2.PN     }
+  G2N400s = 4C+6H+N+6O;    {CH3CH(ONO2)CH(OO.)CHO                                                                                  2.ND     }
+  G2A4009 = 4C+6H+N+7O;    {CH3CH(ONO2)CH(OO.)CO(OH)                                                                               2.AN     }
+  G2G400Q = 4C+6H+N+8O;    {CH3CH(ONO2)CH(OO.)CO(OOH)                                                                              2.GN     }
+  G2P400A = 4C+5H+2N+10O;  {CH3CH(ONO2)CH(OO.)CO(OONO2)                                                                            2.PN     }
+  G2N501T = 5C+8H+N+7O;    {CH3CH(ONO2)CH(OO.)COCH2(OH)                                                                            2.NKO    }
+  G2N5024 = 5C+7H+2N+9O;   {CH3CH(ONO2)CH(OO.)COCH2(ONO2)                                                                          2.NNK    }
+  G2N5015 = 5C+8H+N+6O;    {CH3CH(ONO2)CH(OO.)COCH3                                                                                2.NK     }
+  G2N505H = 5C+6H+N+7O;    {CH3CH(ONO2)CH(OO.)COCHO                                                                                2.NDK    }
+  G2A501s = 5C+6H+N+8O;    {CH3CH(ONO2)CH(OO.)COCO(OH)                                                                             2.ANK    }
+  G2G503B = 5C+6H+N+9O;    {CH3CH(ONO2)CH(OO.)COCO(OOH)                                                                            2.GNK    }
+  G2P5027 = 5C+5H+2N+11O;  {CH3CH(ONO2)CH(OO.)COCO(OONO2)                                                                          2.PNK    }
+  G1H501N = 5C+10H+N+7O;   {CH3CH(ONO2)CH(OOH)CH(O.)CH2(OH)                                                                        1.HNO    }
+  G1H504i = 5C+9H+2N+9O;   {CH3CH(ONO2)CH(OOH)CH(O.)CH2(ONO2)                                                                      1.HNN    }
+  G1H500X = 5C+10H+N+6O;   {CH3CH(ONO2)CH(OOH)CH(O.)CH3                                                                            1.HN     }
+  G1H509S = 5C+8H+N+7O;    {CH3CH(ONO2)CH(OOH)CH(O.)CHO                                                                            1.HND    }
+  G1A505Y = 5C+8H+N+8O;    {CH3CH(ONO2)CH(OOH)CH(O.)CO(OH)                                                                         1.AHN    }
+  G1G501m = 5C+8H+N+9O;    {CH3CH(ONO2)CH(OOH)CH(O.)CO(OOH)                                                                        1.GHN    }
+  G1P502P = 5C+7H+2N+11O;  {CH3CH(ONO2)CH(OOH)CH(O.)CO(OONO2)                                                                      1.PHN    }
+  G1H504l = 5C+10H+N+7O;   {CH3CH(ONO2)CH(OOH)CH(OH)CH2(O.)                                                                        1.HNO    }
+  GHN503C = 5C+11H+N+7O;   {CH3CH(ONO2)CH(OOH)CH(OH)CH2(OH)                                                                        HNOO     }
+  GHN502e = 5C+10H+2N+9O;  {CH3CH(ONO2)CH(OOH)CH(OH)CH2(ONO2)                                                                      HNNO     }
+  GHN501Z = 5C+11H+N+6O;   {CH3CH(ONO2)CH(OOH)CH(OH)CH3                                                                            HNO      }
+  GHN505r = 5C+9H+N+7O;    {CH3CH(ONO2)CH(OOH)CH(OH)CHO                                                                            HNDO     }
+  GAH5043 = 5C+9H+N+8O;    {CH3CH(ONO2)CH(OOH)CH(OH)CO(OH)                                                                         AHNO     }
+  G3H502w = 5C+8H+N+9O;    {CH3CH(ONO2)CH(OOH)CH(OH)CO(OO.)                                                                        3.HNK    }
+  GGH502I = 5C+9H+N+9O;    {CH3CH(ONO2)CH(OOH)CH(OH)CO(OOH)                                                                        GHNO     }
+  GPH502g = 5C+8H+2N+11O;  {CH3CH(ONO2)CH(OOH)CH(OH)CO(OONO2)                                                                      PHNO     }
+  G1H504j = 5C+9H+2N+9O;   {CH3CH(ONO2)CH(OOH)CH(ONO2)CH2(O.)                                                                      1.HNN    }
+  GHN503B = 5C+10H+2N+9O;  {CH3CH(ONO2)CH(OOH)CH(ONO2)CH2(OH)                                                                      HNNO     }
+  GHN502d = 5C+9H+3N+11O;  {CH3CH(ONO2)CH(OOH)CH(ONO2)CH2(ONO2)                                                                    HNNN     }
+  GHN501R = 5C+10H+2N+8O;  {CH3CH(ONO2)CH(OOH)CH(ONO2)CH3                                                                          HNN      }
+  GHN505T = 5C+8H+2N+9O;   {CH3CH(ONO2)CH(OOH)CH(ONO2)CHO                                                                          HNND     }
+  GAH502X = 5C+8H+2N+10O;  {CH3CH(ONO2)CH(OOH)CH(ONO2)CO(OH)                                                                       AHNN     }
+  G3H502h = 5C+7H+2N+11O;  {CH3CH(ONO2)CH(OOH)CH(ONO2)CO(OO.)                                                                      3.HNN    }
+  GGH502G = 5C+8H+2N+11O;  {CH3CH(ONO2)CH(OOH)CH(ONO2)CO(OOH)                                                                      GHNN     }
+  GPH502e = 5C+7H+3N+13O;  {CH3CH(ONO2)CH(OOH)CH(ONO2)CO(OONO2)                                                                    PHNN     }
+  G2H500p = 5C+10H+N+8O;   {CH3CH(ONO2)CH(OOH)CH(OO.)CH2(OH)                                                                       2.HNO    }
+  G2H500Q = 5C+10H+N+7O;   {CH3CH(ONO2)CH(OOH)CH(OO.)CH3                                                                           2.HN     }
+  G2A505B = 5C+8H+N+9O;    {CH3CH(ONO2)CH(OOH)CH(OO.)CO(OH)                                                                        2.AHN    }
+  G2G501U = 5C+8H+N+10O;   {CH3CH(ONO2)CH(OOH)CH(OO.)CO(OOH)                                                                       2.GHN    }
+  G2P5023 = 5C+7H+2N+12O;  {CH3CH(ONO2)CH(OOH)CH(OO.)CO(OONO2)                                                                     2.PHN    }
+  GHH500l = 5C+11H+N+8O;   {CH3CH(ONO2)CH(OOH)CH(OOH)CH2(OH)                                                                       HHNO     }
+  GHH500O = 5C+11H+N+7O;   {CH3CH(ONO2)CH(OOH)CH(OOH)CH3                                                                           HHN      }
+  GHH5026 = 5C+9H+N+8O;    {CH3CH(ONO2)CH(OOH)CH(OOH)CHO                                                                           HHND     }
+  GAH5042 = 5C+9H+N+9O;    {CH3CH(ONO2)CH(OOH)CH(OOH)CO(OH)                                                                        AHHN     }
+  G3H502v = 5C+8H+N+10O;   {CH3CH(ONO2)CH(OOH)CH(OOH)CO(OO.)                                                                       3.HHN    }
+  GGH502H = 5C+9H+N+10O;   {CH3CH(ONO2)CH(OOH)CH(OOH)CO(OOH)                                                                       GHHN     }
+  GPH502f = 5C+8H+2N+12O;  {CH3CH(ONO2)CH(OOH)CH(OOH)CO(OONO2)                                                                     PHHN     }
+  G1H400l = 4C+8H+N+6O;    {CH3CH(ONO2)CH(OOH)CH2(O.)                                                                              1.HN     }
+  GHN400k = 4C+9H+N+6O;    {CH3CH(ONO2)CH(OOH)CH2(OH)                                                                              HNO      }
+  GHN400f = 4C+8H+2N+8O;   {CH3CH(ONO2)CH(OOH)CH2(ONO2)                                                                            HNN      }
+  G2H400h = 4C+8H+N+7O;    {CH3CH(ONO2)CH(OOH)CH2(OO.)                                                                             2.HN     }
+  GHH400e = 4C+9H+N+7O;    {CH3CH(ONO2)CH(OOH)CH2(OOH)                                                                             HHN      }
+  G1H501A = 5C+10H+N+6O;   {CH3CH(ONO2)CH(OOH)CH2CH2(O.)                                                                           1.HN     }
+  GHN500e = 5C+11H+N+6O;   {CH3CH(ONO2)CH(OOH)CH2CH2(OH)                                                                           HNO      }
+  GHN500T = 5C+10H+2N+8O;  {CH3CH(ONO2)CH(OOH)CH2CH2(ONO2)                                                                         HNN      }
+  GHN500B = 5C+11H+N+5O;   {CH3CH(ONO2)CH(OOH)CH2CH3                                                                               HN       }
+  GHN502Y = 5C+9H+N+6O;    {CH3CH(ONO2)CH(OOH)CH2CHO                                                                               HND      }
+  GAH500W = 5C+9H+N+7O;    {CH3CH(ONO2)CH(OOH)CH2CO(OH)                                                                            AHN      }
+  G3H500m = 5C+8H+N+8O;    {CH3CH(ONO2)CH(OOH)CH2CO(OO.)                                                                           3.HNK    }
+  GGH500T = 5C+9H+N+8O;    {CH3CH(ONO2)CH(OOH)CH2CO(OOH)                                                                           GHN      }
+  GPH500Y = 5C+8H+2N+10O;  {CH3CH(ONO2)CH(OOH)CH2CO(OONO2)                                                                         PHN      }
+  GHN400O = 4C+7H+N+6O;    {CH3CH(ONO2)CH(OOH)CHO                                                                                  HND      }
+  GAH400B = 4C+7H+N+7O;    {CH3CH(ONO2)CH(OOH)CO(OH)                                                                               AHN      }
+  G3H4008 = 4C+6H+N+8O;    {CH3CH(ONO2)CH(OOH)CO(OO.)                                                                              3.HNK    }
+  GGH400B = 4C+7H+N+8O;    {CH3CH(ONO2)CH(OOH)CO(OOH)                                                                              GHN      }
+  GPH400B = 4C+6H+2N+10O;  {CH3CH(ONO2)CH(OOH)CO(OONO2)                                                                            PHN      }
+  G1H504n = 5C+8H+N+7O;    {CH3CH(ONO2)CH(OOH)COCH2(O.)                                                                            1.HNK    }
+  GHN501r = 5C+9H+N+7O;    {CH3CH(ONO2)CH(OOH)COCH2(OH)                                                                            HNKO     }
+  GHN502g = 5C+8H+2N+9O;   {CH3CH(ONO2)CH(OOH)COCH2(ONO2)                                                                          HNNK     }
+  GHN501S = 5C+9H+N+6O;    {CH3CH(ONO2)CH(OOH)COCH3                                                                                HNK      }
+  GHN504g = 5C+7H+N+7O;    {CH3CH(ONO2)CH(OOH)COCHO                                                                                HNDK     }
+  GAH502Y = 5C+7H+N+8O;    {CH3CH(ONO2)CH(OOH)COCO(OH)                                                                             AHNK     }
+  G3H5046 = 5C+6H+N+9O;    {CH3CH(ONO2)CH(OOH)COCO(OO.)                                                                            3.HNK    }
+  GGH502J = 5C+7H+N+9O;    {CH3CH(ONO2)CH(OOH)COCO(OOH)                                                                            GHNK     }
+  GPH502h = 5C+6H+2N+11O;  {CH3CH(ONO2)CH(OOH)COCO(OONO2)                                                                          PHNK     }
+  G1N3001 = 3C+6H+N+4O;    {CH3CH(ONO2)CH2(O.)                                                                                     1.N      }
+  GNO3001 = 3C+7H+N+4O;    {CH3CH(ONO2)CH2(OH)                                                                                     NO       }
+  GNN3001 = 3C+6H+2N+6O;   {CH3CH(ONO2)CH2(ONO2)                                                                                   NN       }
+  G2N3001 = 3C+6H+N+5O;    {CH3CH(ONO2)CH2(OO.)                                                                                    2.N      }
+  GHN3001 = 3C+7H+N+5O;    {CH3CH(ONO2)CH2(OOH)                                                                                    HN       }
+  G1N500E = 5C+10H+N+5O;   {CH3CH(ONO2)CH2CH(O.)CH2(OH)                                                                            1.NO     }
+  G1N500M = 5C+9H+2N+7O;   {CH3CH(ONO2)CH2CH(O.)CH2(ONO2)                                                                          1.NN     }
+  G1H500R = 5C+10H+N+6O;   {CH3CH(ONO2)CH2CH(O.)CH2(OOH)                                                                           1.HN     }
+  G1N5007 = 5C+10H+N+4O;   {CH3CH(ONO2)CH2CH(O.)CH3                                                                                1.N      }
+  G1N503U = 5C+8H+N+5O;    {CH3CH(ONO2)CH2CH(O.)CHO                                                                                1.ND     }
+  G1A500Q = 5C+8H+N+6O;    {CH3CH(ONO2)CH2CH(O.)CO(OH)                                                                             1.AN     }
+  G1G500N = 5C+8H+N+7O;    {CH3CH(ONO2)CH2CH(O.)CO(OOH)                                                                            1.GN     }
+  G1P500S = 5C+7H+2N+9O;   {CH3CH(ONO2)CH2CH(O.)CO(OONO2)                                                                          1.PN     }
+  G1N5028 = 5C+10H+N+5O;   {CH3CH(ONO2)CH2CH(OH)CH2(O.)                                                                            1.NO     }
+  GNO500F = 5C+11H+N+5O;   {CH3CH(ONO2)CH2CH(OH)CH2(OH)                                                                            NOO      }
+  GNN500O = 5C+10H+2N+7O;  {CH3CH(ONO2)CH2CH(OH)CH2(ONO2)                                                                          NNO      }
+  G2N503B = 5C+10H+N+6O;   {CH3CH(ONO2)CH2CH(OH)CH2(OO.)                                                                           2.NO     }
+  GHN501N = 5C+11H+N+6O;   {CH3CH(ONO2)CH2CH(OH)CH2(OOH)                                                                           HNO      }
+  GND500S = 5C+9H+N+5O;    {CH3CH(ONO2)CH2CH(OH)CHO                                                                                NDO      }
+  GAN500h = 5C+9H+N+6O;    {CH3CH(ONO2)CH2CH(OH)CO(OH)                                                                             ANO      }
+  G3N500X = 5C+8H+N+7O;    {CH3CH(ONO2)CH2CH(OH)CO(OO.)                                                                            3.NKO    }
+  GGN500Z = 5C+9H+N+7O;    {CH3CH(ONO2)CH2CH(OH)CO(OOH)                                                                            GNO      }
+  GPN500j = 5C+8H+2N+9O;   {CH3CH(ONO2)CH2CH(OH)CO(OONO2)                                                                          PNO      }
+  G1N5013 = 5C+9H+2N+7O;   {CH3CH(ONO2)CH2CH(ONO2)CH2(O.)                                                                          1.NN     }
+  GNN500B = 5C+10H+2N+7O;  {CH3CH(ONO2)CH2CH(ONO2)CH2(OH)                                                                          NNO      }
+  GNN500N = 5C+9H+3N+9O;   {CH3CH(ONO2)CH2CH(ONO2)CH2(ONO2)                                                                        NNN      }
+  G2N5012 = 5C+9H+2N+8O;   {CH3CH(ONO2)CH2CH(ONO2)CH2(OO.)                                                                         2.NN     }
+  GHN501D = 5C+10H+2N+8O;  {CH3CH(ONO2)CH2CH(ONO2)CH2(OOH)                                                                         HNN      }
+  GNN5006 = 5C+10H+2N+6O;  {CH3CH(ONO2)CH2CH(ONO2)CH3                                                                              NN       }
+  GNN500s = 5C+8H+2N+7O;   {CH3CH(ONO2)CH2CH(ONO2)CHO                                                                              NND      }
+  GAN500g = 5C+8H+2N+8O;   {CH3CH(ONO2)CH2CH(ONO2)CO(OH)                                                                           ANN      }
+  G3N500M = 5C+7H+2N+9O;   {CH3CH(ONO2)CH2CH(ONO2)CO(OO.)                                                                          3.NNK    }
+  GGN500Y = 5C+8H+2N+9O;   {CH3CH(ONO2)CH2CH(ONO2)CO(OOH)                                                                          GNN      }
+  GPN500i = 5C+7H+3N+11O;  {CH3CH(ONO2)CH2CH(ONO2)CO(OONO2)                                                                        PNN      }
+  G2N500E = 5C+10H+N+6O;   {CH3CH(ONO2)CH2CH(OO.)CH2(OH)                                                                           2.NO     }
+  G2N500M = 5C+9H+2N+8O;   {CH3CH(ONO2)CH2CH(OO.)CH2(ONO2)                                                                         2.NN     }
+  G2H500N = 5C+10H+N+7O;   {CH3CH(ONO2)CH2CH(OO.)CH2(OOH)                                                                          2.HN     }
+  G2N5007 = 5C+10H+N+5O;   {CH3CH(ONO2)CH2CH(OO.)CH3                                                                               2.N      }
+  G2N503e = 5C+8H+N+6O;    {CH3CH(ONO2)CH2CH(OO.)CHO                                                                               2.ND     }
+  G2A500P = 5C+8H+N+7O;    {CH3CH(ONO2)CH2CH(OO.)CO(OH)                                                                            2.AN     }
+  G2G500M = 5C+8H+N+8O;    {CH3CH(ONO2)CH2CH(OO.)CO(OOH)                                                                           2.GN     }
+  G2P500R = 5C+7H+2N+10O;  {CH3CH(ONO2)CH2CH(OO.)CO(OONO2)                                                                         2.PN     }
+  G1H501B = 5C+10H+N+6O;   {CH3CH(ONO2)CH2CH(OOH)CH2(O.)                                                                           1.HN     }
+  GHN500G = 5C+11H+N+6O;   {CH3CH(ONO2)CH2CH(OOH)CH2(OH)                                                                           HNO      }
+  GHN500U = 5C+10H+2N+8O;  {CH3CH(ONO2)CH2CH(OOH)CH2(ONO2)                                                                         HNN      }
+  G2H501b = 5C+10H+N+7O;   {CH3CH(ONO2)CH2CH(OOH)CH2(OO.)                                                                          2.HN     }
+  GHH500L = 5C+11H+N+7O;   {CH3CH(ONO2)CH2CH(OOH)CH2(OOH)                                                                          HHN      }
+  GHN500A = 5C+11H+N+5O;   {CH3CH(ONO2)CH2CH(OOH)CH3                                                                               HN       }
+  GHN501q = 5C+9H+N+6O;    {CH3CH(ONO2)CH2CH(OOH)CHO                                                                               HND      }
+  GAH500X = 5C+9H+N+7O;    {CH3CH(ONO2)CH2CH(OOH)CO(OH)                                                                            AHN      }
+  G3H500N = 5C+8H+N+8O;    {CH3CH(ONO2)CH2CH(OOH)CO(OO.)                                                                           3.HNK    }
+  GGH500U = 5C+9H+N+8O;    {CH3CH(ONO2)CH2CH(OOH)CO(OOH)                                                                           GHN      }
+  GPH500Z = 5C+8H+2N+10O;  {CH3CH(ONO2)CH2CH(OOH)CO(OONO2)                                                                         PHN      }
+  G1N4007 = 4C+8H+N+4O;    {CH3CH(ONO2)CH2CH2(O.)                                                                                  1.N      }
+  GNO4007 = 4C+9H+N+4O;    {CH3CH(ONO2)CH2CH2(OH)                                                                                  NO       }
+  GNN4005 = 4C+8H+2N+6O;   {CH3CH(ONO2)CH2CH2(ONO2)                                                                                NN       }
+  G2N4007 = 4C+8H+N+5O;    {CH3CH(ONO2)CH2CH2(OO.)                                                                                 2.N      }
+  GHN4009 = 4C+9H+N+5O;    {CH3CH(ONO2)CH2CH2(OOH)                                                                                 HN       }
+  G1N5006 = 5C+10H+N+4O;   {CH3CH(ONO2)CH2CH2CH2(O.)                                                                               1.N      }
+  GNO5000 = 5C+11H+N+4O;   {CH3CH(ONO2)CH2CH2CH2(OH)                                                                               NO       }
+  GNN5001 = 5C+10H+2N+6O;  {CH3CH(ONO2)CH2CH2CH2(ONO2)                                                                             NN       }
+  G2N5006 = 5C+10H+N+5O;   {CH3CH(ONO2)CH2CH2CH2(OO.)                                                                              2.N      }
+  GHN5009 = 5C+11H+N+5O;   {CH3CH(ONO2)CH2CH2CH2(OOH)                                                                              HN       }
+  GND5003 = 5C+9H+N+4O;    {CH3CH(ONO2)CH2CH2CHO                                                                                   ND       }
+  GAN5003 = 5C+9H+N+5O;    {CH3CH(ONO2)CH2CH2CO(OH)                                                                                AN       }
+  G3N5003 = 5C+8H+N+6O;    {CH3CH(ONO2)CH2CH2CO(OO.)                                                                               3.NK     }
+  GGN5003 = 5C+9H+N+6O;    {CH3CH(ONO2)CH2CH2CO(OOH)                                                                               GN       }
+  GPN5003 = 5C+8H+2N+8O;   {CH3CH(ONO2)CH2CH2CO(OONO2)                                                                             PN       }
+  GND4000 = 4C+7H+N+4O;    {CH3CH(ONO2)CH2CHO                                                                                      ND       }
+  GAN4002 = 4C+7H+N+5O;    {CH3CH(ONO2)CH2CO(OH)                                                                                   AN       }
+  G3N4002 = 4C+6H+N+6O;    {CH3CH(ONO2)CH2CO(OO.)                                                                                  3.NK     }
+  GGN4002 = 4C+7H+N+6O;    {CH3CH(ONO2)CH2CO(OOH)                                                                                  GN       }
+  GPN4002 = 4C+6H+2N+8O;   {CH3CH(ONO2)CH2CO(OONO2)                                                                                PN       }
+  G1N5015 = 5C+8H+N+5O;    {CH3CH(ONO2)CH2COCH2(O.)                                                                                1.NK     }
+  GNK500B = 5C+9H+N+5O;    {CH3CH(ONO2)CH2COCH2(OH)                                                                                NKO      }
+  GNN500P = 5C+8H+2N+7O;   {CH3CH(ONO2)CH2COCH2(ONO2)                                                                              NNK      }
+  G2N5014 = 5C+8H+N+6O;    {CH3CH(ONO2)CH2COCH2(OO.)                                                                               2.NK     }
+  GHN501F = 5C+9H+N+6O;    {CH3CH(ONO2)CH2COCH2(OOH)                                                                               HNK      }
+  GND500K = 5C+7H+N+5O;    {CH3CH(ONO2)CH2COCHO                                                                                    NDK      }
+  GAN500i = 5C+7H+N+6O;    {CH3CH(ONO2)CH2COCO(OH)                                                                                 ANK      }
+  G3N501K = 5C+6H+N+7O;    {CH3CH(ONO2)CH2COCO(OO.)                                                                                3.NKK    }
+  GGN500a = 5C+7H+N+7O;    {CH3CH(ONO2)CH2COCO(OOH)                                                                                GNK      }
+  GPN500k = 5C+6H+2N+9O;   {CH3CH(ONO2)CH2COCO(OONO2)                                                                              PNK      }
+  GN03001 = 3C+7H+N+3O;    {CH3CH(ONO2)CH3                                                                                         N        }
+  GND3001 = 3C+5H+N+4O;    {CH3CH(ONO2)CHO                                                                                         ND       }
+  GAN3001 = 3C+5H+N+5O;    {CH3CH(ONO2)CO(OH)                                                                                      AN       }
+  G3N3001 = 3C+4H+N+6O;    {CH3CH(ONO2)CO(OO.)                                                                                     3.NK     }
+  GGN3001 = 3C+5H+N+6O;    {CH3CH(ONO2)CO(OOH)                                                                                     GN       }
+  GPN3001 = 3C+4H+2N+8O;   {CH3CH(ONO2)CO(OONO2)                                                                                   PN       }
+  G1N501W = 5C+8H+N+6O;    {CH3CH(ONO2)COCH(O.)CH2(OH)                                                                             1.NKO    }
+  G1N5025 = 5C+7H+2N+8O;   {CH3CH(ONO2)COCH(O.)CH2(ONO2)                                                                           1.NNK    }
+  G1H507M = 5C+8H+N+7O;    {CH3CH(ONO2)COCH(O.)CH2(OOH)                                                                            1.HNK    }
+  G1N501F = 5C+8H+N+5O;    {CH3CH(ONO2)COCH(O.)CH3                                                                                 1.NK     }
+  G1N5066 = 5C+6H+N+6O;    {CH3CH(ONO2)COCH(O.)CHO                                                                                 1.NDK    }
+  G1A501y = 5C+6H+N+7O;    {CH3CH(ONO2)COCH(O.)CO(OH)                                                                              1.ANK    }
+  G1G501d = 5C+6H+N+8O;    {CH3CH(ONO2)COCH(O.)CO(OOH)                                                                             1.GNK    }
+  G1P502C = 5C+5H+2N+10O;  {CH3CH(ONO2)COCH(O.)CO(OONO2)                                                                           1.PNK    }
+  G1N503z = 5C+8H+N+6O;    {CH3CH(ONO2)COCH(OH)CH2(O.)                                                                             1.NKO    }
+  GNK500i = 5C+9H+N+6O;    {CH3CH(ONO2)COCH(OH)CH2(OH)                                                                             NKOO     }
+  GNN501j = 5C+8H+2N+8O;   {CH3CH(ONO2)COCH(OH)CH2(ONO2)                                                                           NNKO     }
+  G2N503Y = 5C+8H+N+7O;    {CH3CH(ONO2)COCH(OH)CH2(OO.)                                                                            2.NKO    }
+  GHN504W = 5C+9H+N+7O;    {CH3CH(ONO2)COCH(OH)CH2(OOH)                                                                            HNKO     }
+  GND5013 = 5C+7H+N+6O;    {CH3CH(ONO2)COCH(OH)CHO                                                                                 NDKO     }
+  GAN501v = 5C+7H+N+7O;    {CH3CH(ONO2)COCH(OH)CO(OH)                                                                              ANKO     }
+  G3N501T = 5C+6H+N+8O;    {CH3CH(ONO2)COCH(OH)CO(OO.)                                                                             3.NKK    }
+  GGN501i = 5C+7H+N+8O;    {CH3CH(ONO2)COCH(OH)CO(OOH)                                                                             GNKO     }
+  GPN5023 = 5C+6H+2N+10O;  {CH3CH(ONO2)COCH(OH)CO(OONO2)                                                                           PNKO     }
+  G1N503Y = 5C+7H+2N+8O;   {CH3CH(ONO2)COCH(ONO2)CH2(O.)                                                                           1.NNK    }
+  GNN501A = 5C+8H+2N+8O;   {CH3CH(ONO2)COCH(ONO2)CH2(OH)                                                                           NNKO     }
+  GNN501i = 5C+7H+3N+10O;  {CH3CH(ONO2)COCH(ONO2)CH2(ONO2)                                                                         NNNK     }
+  G2N503H = 5C+7H+2N+9O;   {CH3CH(ONO2)COCH(ONO2)CH2(OO.)                                                                          2.NNK    }
+  GHN504H = 5C+8H+2N+9O;   {CH3CH(ONO2)COCH(ONO2)CH2(OOH)                                                                          HNNK     }
+  GNN500v = 5C+8H+2N+7O;   {CH3CH(ONO2)COCH(ONO2)CH3                                                                               NNK      }
+  GNN502W = 5C+6H+2N+8O;   {CH3CH(ONO2)COCH(ONO2)CHO                                                                               NNDK     }
+  GAN501u = 5C+6H+2N+9O;   {CH3CH(ONO2)COCH(ONO2)CO(OH)                                                                            ANNK     }
+  G3N501N = 5C+5H+2N+10O;  {CH3CH(ONO2)COCH(ONO2)CO(OO.)                                                                           3.NNK    }
+  GGN501h = 5C+6H+2N+10O;  {CH3CH(ONO2)COCH(ONO2)CO(OOH)                                                                           GNNK     }
+  GPN5022 = 5C+5H+3N+12O;  {CH3CH(ONO2)COCH(ONO2)CO(OONO2)                                                                         PNNK     }
+  G2N501S = 5C+8H+N+7O;    {CH3CH(ONO2)COCH(OO.)CH2(OH)                                                                            2.NKO    }
+  G2N501y = 5C+7H+2N+9O;   {CH3CH(ONO2)COCH(OO.)CH2(ONO2)                                                                          2.NNK    }
+  G2N501E = 5C+8H+N+6O;    {CH3CH(ONO2)COCH(OO.)CH3                                                                                2.NK     }
+  G2A501g = 5C+6H+N+8O;    {CH3CH(ONO2)COCH(OO.)CO(OH)                                                                             2.ANK    }
+  G2G501M = 5C+6H+N+9O;    {CH3CH(ONO2)COCH(OO.)CO(OOH)                                                                            2.GNK    }
+  G2P501q = 5C+5H+2N+11O;  {CH3CH(ONO2)COCH(OO.)CO(OONO2)                                                                          2.PNK    }
+  G1H504f = 5C+8H+N+7O;    {CH3CH(ONO2)COCH(OOH)CH2(O.)                                                                            1.HNK    }
+  GHN501p = 5C+9H+N+7O;    {CH3CH(ONO2)COCH(OOH)CH2(OH)                                                                            HNKO     }
+  GHN502b = 5C+8H+2N+9O;   {CH3CH(ONO2)COCH(OOH)CH2(ONO2)                                                                          HNNK     }
+  GHN501c = 5C+9H+N+6O;    {CH3CH(ONO2)COCH(OOH)CH3                                                                                HNK      }
+  GHN504f = 5C+7H+N+7O;    {CH3CH(ONO2)COCH(OOH)CHO                                                                                HNDK     }
+  GAH502M = 5C+7H+N+8O;    {CH3CH(ONO2)COCH(OOH)CO(OH)                                                                             AHNK     }
+  G3H501q = 5C+6H+N+9O;    {CH3CH(ONO2)COCH(OOH)CO(OO.)                                                                            3.HNK    }
+  GGH5028 = 5C+7H+N+9O;    {CH3CH(ONO2)COCH(OOH)CO(OOH)                                                                            GHNK     }
+  GPH502S = 5C+6H+2N+11O;  {CH3CH(ONO2)COCH(OOH)CO(OONO2)                                                                          PHNK     }
+  G1N400d = 4C+6H+N+5O;    {CH3CH(ONO2)COCH2(O.)                                                                                   1.NK     }
+  GNK400B = 4C+7H+N+5O;    {CH3CH(ONO2)COCH2(OH)                                                                                   NKO      }
+  GNN400Q = 4C+6H+2N+7O;   {CH3CH(ONO2)COCH2(ONO2)                                                                                 NNK      }
+  G2N400b = 4C+6H+N+6O;    {CH3CH(ONO2)COCH2(OO.)                                                                                  2.NK     }
+  GHN400q = 4C+7H+N+6O;    {CH3CH(ONO2)COCH2(OOH)                                                                                  HNK      }
+  G1N501E = 5C+8H+N+5O;    {CH3CH(ONO2)COCH2CH2(O.)                                                                                1.NK     }
+  GNK500A = 5C+9H+N+5O;    {CH3CH(ONO2)COCH2CH2(OH)                                                                                NKO      }
+  GNN500M = 5C+8H+2N+7O;   {CH3CH(ONO2)COCH2CH2(ONO2)                                                                              NNK      }
+  G2N501D = 5C+8H+N+6O;    {CH3CH(ONO2)COCH2CH2(OO.)                                                                               2.NK     }
+  GHN501b = 5C+9H+N+6O;    {CH3CH(ONO2)COCH2CH2(OOH)                                                                               HNK      }
+  GND500M = 5C+7H+N+5O;    {CH3CH(ONO2)COCH2CHO                                                                                    NDK      }
+  GAN500d = 5C+7H+N+6O;    {CH3CH(ONO2)COCH2CO(OH)                                                                                 ANK      }
+  G3N500R = 5C+6H+N+7O;    {CH3CH(ONO2)COCH2CO(OO.)                                                                                3.NKK    }
+  GGN500U = 5C+7H+N+7O;    {CH3CH(ONO2)COCH2CO(OOH)                                                                                GNK      }
+  GPN500f = 5C+6H+2N+9O;   {CH3CH(ONO2)COCH2CO(OONO2)                                                                              PNK      }
+  GND400I = 4C+5H+N+5O;    {CH3CH(ONO2)COCHO                                                                                       NDK      }
+  GAN400H = 4C+5H+N+6O;    {CH3CH(ONO2)COCO(OH)                                                                                    ANK      }
+  G3N400S = 4C+4H+N+7O;    {CH3CH(ONO2)COCO(OO.)                                                                                   3.NKK    }
+  GGN400T = 4C+5H+N+7O;    {CH3CH(ONO2)COCO(OOH)                                                                                   GNK      }
+  GPN400I = 4C+4H+2N+9O;   {CH3CH(ONO2)COCO(OONO2)                                                                                 PNK      }
+  G1N503c = 5C+6H+N+6O;    {CH3CH(ONO2)COCOCH2(O.)                                                                                 1.NKK    }
+  GNK500j = 5C+7H+N+6O;    {CH3CH(ONO2)COCOCH2(OH)                                                                                 NKKO     }
+  GNN501k = 5C+6H+2N+8O;   {CH3CH(ONO2)COCOCH2(ONO2)                                                                               NNKK     }
+  G2N503L = 5C+6H+N+7O;    {CH3CH(ONO2)COCOCH2(OO.)                                                                                2.NKK    }
+  GHN504L = 5C+7H+N+7O;    {CH3CH(ONO2)COCOCH2(OOH)                                                                                HNKK     }
+  GND500z = 5C+5H+N+6O;    {CH3CH(ONO2)COCOCHO                                                                                     NDKK     }
+  GAN501w = 5C+5H+N+7O;    {CH3CH(ONO2)COCOCO(OH)                                                                                  ANKK     }
+  G3N502W = 5C+4H+N+8O;    {CH3CH(ONO2)COCOCO(OO.)                                                                                 3.NKK    }
+  GGN501j = 5C+5H+N+8O;    {CH3CH(ONO2)COCOCO(OOH)                                                                                 GNKK     }
+  GPN5024 = 5C+4H+2N+10O;  {CH3CH(ONO2)COCOCO(OONO2)                                                                               PNKK     }
+  G2O500R = 5C+11H+5O;     {CH3CH(OO.)CH(OH)CH(OH)CH2(OH)                                                                          2.OOO    }
+  G2N502l = 5C+10H+N+7O;   {CH3CH(OO.)CH(OH)CH(OH)CH2(ONO2)                                                                        2.NOO    }
+  G2A5027 = 5C+9H+6O;      {CH3CH(OO.)CH(OH)CH(OH)CO(OH)                                                                           2.AOO    }
+  G2G501I = 5C+9H+7O;      {CH3CH(OO.)CH(OH)CH(OH)CO(OOH)                                                                          2.GOO    }
+  G2P501k = 5C+8H+N+9O;    {CH3CH(OO.)CH(OH)CH(OH)CO(OONO2)                                                                        2.POO    }
+  G2N502i = 5C+10H+N+7O;   {CH3CH(OO.)CH(OH)CH(ONO2)CH2(OH)                                                                        2.NOO    }
+  G2N502h = 5C+9H+2N+9O;   {CH3CH(OO.)CH(OH)CH(ONO2)CH2(ONO2)                                                                      2.NNO    }
+  G2N5059 = 5C+8H+N+7O;    {CH3CH(OO.)CH(OH)CH(ONO2)CHO                                                                            2.NDO    }
+  G2A5023 = 5C+8H+N+8O;    {CH3CH(OO.)CH(OH)CH(ONO2)CO(OH)                                                                         2.ANO    }
+  G2G501H = 5C+8H+N+9O;    {CH3CH(OO.)CH(OH)CH(ONO2)CO(OOH)                                                                        2.GNO    }
+  G2P501j = 5C+7H+2N+11O;  {CH3CH(OO.)CH(OH)CH(ONO2)CO(OONO2)                                                                      2.PNO    }
+  G2H5014 = 5C+11H+6O;     {CH3CH(OO.)CH(OH)CH(OOH)CH2(OH)                                                                         2.HOO    }
+  G2O400C = 4C+9H+4O;      {CH3CH(OO.)CH(OH)CH2(OH)                                                                                2.OO     }
+  G2N400R = 4C+8H+N+6O;    {CH3CH(OO.)CH(OH)CH2(ONO2)                                                                              2.NO     }
+  G2H4013 = 4C+9H+5O;      {CH3CH(OO.)CH(OH)CH2(OOH)                                                                               2.HO     }
+  G2O500D = 5C+11H+4O;     {CH3CH(OO.)CH(OH)CH2CH2(OH)                                                                             2.OO     }
+  G2N500Y = 5C+10H+N+6O;   {CH3CH(OO.)CH(OH)CH2CH2(ONO2)                                                                           2.NO     }
+  G2A500J = 5C+9H+5O;      {CH3CH(OO.)CH(OH)CH2CO(OH)                                                                              2.AO     }
+  G2G500E = 5C+9H+6O;      {CH3CH(OO.)CH(OH)CH2CO(OOH)                                                                             2.GO     }
+  G2P500J = 5C+8H+N+8O;    {CH3CH(OO.)CH(OH)CH2CO(OONO2)                                                                           2.PO     }
+  G2D4008 = 4C+7H+4O;      {CH3CH(OO.)CH(OH)CHO                                                                                    2.DO     }
+  G2A400F = 4C+7H+5O;      {CH3CH(OO.)CH(OH)CO(OH)                                                                                 2.AO     }
+  G2G400A = 4C+7H+6O;      {CH3CH(OO.)CH(OH)CO(OOH)                                                                                2.GO     }
+  G2P400G = 4C+6H+N+8O;    {CH3CH(OO.)CH(OH)CO(OONO2)                                                                              2.PO     }
+  G2K500W = 5C+9H+5O;      {CH3CH(OO.)CH(OH)COCH2(OH)                                                                              2.KOO    }
+  G2N502m = 5C+8H+N+7O;    {CH3CH(OO.)CH(OH)COCH2(ONO2)                                                                            2.NKO    }
+  G2D500h = 5C+7H+5O;      {CH3CH(OO.)CH(OH)COCHO                                                                                  2.DKO    }
+  G2A5029 = 5C+7H+6O;      {CH3CH(OO.)CH(OH)COCO(OH)                                                                               2.AKO    }
+  G2G501J = 5C+7H+7O;      {CH3CH(OO.)CH(OH)COCO(OOH)                                                                              2.GKO    }
+  G2P501l = 5C+6H+N+9O;    {CH3CH(OO.)CH(OH)COCO(OONO2)                                                                            2.PKO    }
+  G2N505n = 5C+10H+N+7O;   {CH3CH(OO.)CH(ONO2)CH(OH)CH2(OH)                                                                        2.NOO    }
+  G2N502O = 5C+9H+2N+9O;   {CH3CH(OO.)CH(ONO2)CH(OH)CH2(ONO2)                                                                      2.NNO    }
+  G2N505z = 5C+8H+N+7O;    {CH3CH(OO.)CH(ONO2)CH(OH)CHO                                                                            2.NDO    }
+  G2A501Y = 5C+8H+N+8O;    {CH3CH(OO.)CH(ONO2)CH(OH)CO(OH)                                                                         2.ANO    }
+  G2G504N = 5C+8H+N+9O;    {CH3CH(OO.)CH(ONO2)CH(OH)CO(OOH)                                                                        2.GNO    }
+  G2P501c = 5C+7H+2N+11O;  {CH3CH(OO.)CH(ONO2)CH(OH)CO(OONO2)                                                                      2.PNO    }
+  G2N501B = 5C+9H+2N+9O;   {CH3CH(OO.)CH(ONO2)CH(ONO2)CH2(OH)                                                                      2.NNO    }
+  G2N502N = 5C+8H+3N+11O;  {CH3CH(OO.)CH(ONO2)CH(ONO2)CH2(ONO2)                                                                    2.NNN    }
+  G2N503O = 5C+7H+2N+9O;   {CH3CH(OO.)CH(ONO2)CH(ONO2)CHO                                                                          2.NND    }
+  G2A501X = 5C+7H+2N+10O;  {CH3CH(OO.)CH(ONO2)CH(ONO2)CO(OH)                                                                       2.ANN    }
+  G2G501Y = 5C+7H+2N+11O;  {CH3CH(OO.)CH(ONO2)CH(ONO2)CO(OOH)                                                                      2.GNN    }
+  G2P501b = 5C+6H+3N+13O;  {CH3CH(OO.)CH(ONO2)CH(ONO2)CO(OONO2)                                                                    2.PNN    }
+  G2H500n = 5C+10H+N+8O;   {CH3CH(OO.)CH(ONO2)CH(OOH)CH2(OH)                                                                       2.HNO    }
+  G2H503J = 5C+8H+N+8O;    {CH3CH(OO.)CH(ONO2)CH(OOH)CHO                                                                           2.HND    }
+  G2A5056 = 5C+8H+N+9O;    {CH3CH(OO.)CH(ONO2)CH(OOH)CO(OH)                                                                        2.AHN    }
+  G2G5043 = 5C+8H+N+10O;   {CH3CH(OO.)CH(ONO2)CH(OOH)CO(OOH)                                                                       2.GHN    }
+  G2P505f = 5C+7H+2N+12O;  {CH3CH(OO.)CH(ONO2)CH(OOH)CO(OONO2)                                                                     2.PHN    }
+  G2N400P = 4C+8H+N+6O;    {CH3CH(OO.)CH(ONO2)CH2(OH)                                                                              2.NO     }
+  G2N400O = 4C+7H+2N+8O;   {CH3CH(OO.)CH(ONO2)CH2(ONO2)                                                                            2.NN     }
+  G2H400x = 4C+8H+N+7O;    {CH3CH(OO.)CH(ONO2)CH2(OOH)                                                                             2.HN     }
+  G2N500C = 5C+10H+N+6O;   {CH3CH(OO.)CH(ONO2)CH2CH2(OH)                                                                           2.NO     }
+  G2N500T = 5C+9H+2N+8O;   {CH3CH(OO.)CH(ONO2)CH2CH2(ONO2)                                                                         2.NN     }
+  G2N503d = 5C+8H+N+6O;    {CH3CH(OO.)CH(ONO2)CH2CHO                                                                               2.ND     }
+  G2A500F = 5C+8H+N+7O;    {CH3CH(OO.)CH(ONO2)CH2CO(OH)                                                                            2.AN     }
+  G2G500D = 5C+8H+N+8O;    {CH3CH(OO.)CH(ONO2)CH2CO(OOH)                                                                           2.GN     }
+  G2P500F = 5C+7H+2N+10O;  {CH3CH(OO.)CH(ONO2)CH2CO(OONO2)                                                                         2.PN     }
+  G2N4012 = 4C+6H+N+6O;    {CH3CH(OO.)CH(ONO2)CHO                                                                                  2.ND     }
+  G2A400E = 4C+6H+N+7O;    {CH3CH(OO.)CH(ONO2)CO(OH)                                                                               2.AN     }
+  G2G4009 = 4C+6H+N+8O;    {CH3CH(OO.)CH(ONO2)CO(OOH)                                                                              2.GN     }
+  G2P400F = 4C+5H+2N+10O;  {CH3CH(OO.)CH(ONO2)CO(OONO2)                                                                            2.PN     }
+  G2N5039 = 5C+8H+N+7O;    {CH3CH(OO.)CH(ONO2)COCH2(OH)                                                                            2.NKO    }
+  G2N502Q = 5C+7H+2N+9O;   {CH3CH(OO.)CH(ONO2)COCH2(ONO2)                                                                          2.NNK    }
+  G2N506H = 5C+6H+N+7O;    {CH3CH(OO.)CH(ONO2)COCHO                                                                                2.NDK    }
+  G2A501a = 5C+6H+N+8O;    {CH3CH(OO.)CH(ONO2)COCO(OH)                                                                             2.ANK    }
+  G2G501c = 5C+6H+N+9O;    {CH3CH(OO.)CH(ONO2)COCO(OOH)                                                                            2.GNK    }
+  G2P501e = 5C+5H+2N+11O;  {CH3CH(OO.)CH(ONO2)COCO(OONO2)                                                                          2.PNK    }
+  G2H5016 = 5C+11H+6O;     {CH3CH(OO.)CH(OOH)CH(OH)CH2(OH)                                                                         2.HOO    }
+  G2H500x = 5C+10H+N+8O;   {CH3CH(OO.)CH(OOH)CH(ONO2)CH2(OH)                                                                       2.HNO    }
+  G2H500v = 5C+9H+2N+10O;  {CH3CH(OO.)CH(OOH)CH(ONO2)CH2(ONO2)                                                                     2.HNN    }
+  G2H502n = 5C+8H+N+8O;    {CH3CH(OO.)CH(OOH)CH(ONO2)CHO                                                                           2.HND    }
+  G2A5021 = 5C+8H+N+9O;    {CH3CH(OO.)CH(OOH)CH(ONO2)CO(OH)                                                                        2.AHN    }
+  G2G501a = 5C+8H+N+10O;   {CH3CH(OO.)CH(OOH)CH(ONO2)CO(OOH)                                                                       2.GHN    }
+  G2P502E = 5C+7H+2N+12O;  {CH3CH(OO.)CH(OOH)CH(ONO2)CO(OONO2)                                                                     2.PHN    }
+  G2H5013 = 5C+11H+7O;     {CH3CH(OO.)CH(OOH)CH(OOH)CH2(OH)                                                                        2.HHO    }
+  G2H400O = 4C+8H+N+7O;    {CH3CH(OO.)CH(OOH)CH2(ONO2)                                                                             2.HN     }
+  G2H5006 = 5C+11H+5O;     {CH3CH(OO.)CH(OOH)CH2CH2(OH)                                                                            2.HO     }
+  G2H400P = 4C+7H+5O;      {CH3CH(OO.)CH(OOH)CHO                                                                                   2.HD     }
+  G2A400q = 4C+7H+6O;      {CH3CH(OO.)CH(OOH)CO(OH)                                                                                2.AH     }
+  G2G400h = 4C+7H+7O;      {CH3CH(OO.)CH(OOH)CO(OOH)                                                                               2.GH     }
+  G2P400u = 4C+6H+N+9O;    {CH3CH(OO.)CH(OOH)CO(OONO2)                                                                             2.PH     }
+  G2H501Y = 5C+9H+6O;      {CH3CH(OO.)CH(OOH)COCH2(OH)                                                                             2.HKO    }
+  G2H5017 = 5C+8H+N+8O;    {CH3CH(OO.)CH(OOH)COCH2(ONO2)                                                                           2.HNK    }
+  G2H502o = 5C+7H+6O;      {CH3CH(OO.)CH(OOH)COCHO                                                                                 2.HDK    }
+  G2A5028 = 5C+7H+7O;      {CH3CH(OO.)CH(OOH)COCO(OH)                                                                              2.AHK    }
+  G2G501d = 5C+7H+8O;      {CH3CH(OO.)CH(OOH)COCO(OOH)                                                                             2.GHK    }
+  G2P502G = 5C+6H+N+10O;   {CH3CH(OO.)CH(OOH)COCO(OONO2)                                                                           2.PHK    }
+  G2O3002 = 3C+7H+3O;      {CH3CH(OO.)CH2(OH)                                                                                      2.O      }
+  G2N3002 = 3C+6H+N+5O;    {CH3CH(OO.)CH2(ONO2)                                                                                    2.N      }
+  G2H3000 = 3C+7H+4O;      {CH3CH(OO.)CH2(OOH)                                                                                     2.H      }
+  G2O500E = 5C+11H+4O;     {CH3CH(OO.)CH2CH(OH)CH2(OH)                                                                             2.OO     }
+  G2N500g = 5C+10H+N+6O;   {CH3CH(OO.)CH2CH(OH)CH2(ONO2)                                                                           2.NO     }
+  G2D500a = 5C+9H+4O;      {CH3CH(OO.)CH2CH(OH)CHO                                                                                 2.DO     }
+  G2A500X = 5C+9H+5O;      {CH3CH(OO.)CH2CH(OH)CO(OH)                                                                              2.AO     }
+  G2G500R = 5C+9H+6O;      {CH3CH(OO.)CH2CH(OH)CO(OOH)                                                                             2.GO     }
+  G2P500Y = 5C+8H+N+8O;    {CH3CH(OO.)CH2CH(OH)CO(OONO2)                                                                           2.PO     }
+  G2N500f = 5C+10H+N+6O;   {CH3CH(OO.)CH2CH(ONO2)CH2(OH)                                                                           2.NO     }
+  G2N500d = 5C+9H+2N+8O;   {CH3CH(OO.)CH2CH(ONO2)CH2(ONO2)                                                                         2.NN     }
+  G2H500H = 5C+10H+N+7O;   {CH3CH(OO.)CH2CH(ONO2)CH2(OOH)                                                                          2.HN     }
+  G2N5034 = 5C+8H+N+6O;    {CH3CH(OO.)CH2CH(ONO2)CHO                                                                               2.ND     }
+  G2A500T = 5C+8H+N+7O;    {CH3CH(OO.)CH2CH(ONO2)CO(OH)                                                                            2.AN     }
+  G2G500P = 5C+8H+N+8O;    {CH3CH(OO.)CH2CH(ONO2)CO(OOH)                                                                           2.GN     }
+  G2P500W = 5C+7H+2N+10O;  {CH3CH(OO.)CH2CH(ONO2)CO(OONO2)                                                                         2.PN     }
+  G2H5009 = 5C+11H+5O;     {CH3CH(OO.)CH2CH(OOH)CH2(OH)                                                                            2.HO     }
+  G2H5007 = 5C+10H+N+7O;   {CH3CH(OO.)CH2CH(OOH)CH2(ONO2)                                                                          2.HN     }
+  G2O4005 = 4C+9H+3O;      {CH3CH(OO.)CH2CH2(OH)                                                                                   2.O      }
+  G2N4004 = 4C+8H+N+5O;    {CH3CH(OO.)CH2CH2(ONO2)                                                                                 2.N      }
+  G2H4003 = 4C+9H+4O;      {CH3CH(OO.)CH2CH2(OOH)                                                                                  2.H      }
+  G2O5000 = 5C+11H+3O;     {CH3CH(OO.)CH2CH2CH2(OH)                                                                                2.O      }
+  G2N5001 = 5C+10H+N+5O;   {CH3CH(OO.)CH2CH2CH2(ONO2)                                                                              2.N      }
+  G2D5008 = 5C+9H+3O;      {CH3CH(OO.)CH2CH2CHO                                                                                    2.D      }
+  G2A5000 = 5C+9H+4O;      {CH3CH(OO.)CH2CH2CO(OH)                                                                                 2.A      }
+  G2G5000 = 5C+9H+5O;      {CH3CH(OO.)CH2CH2CO(OOH)                                                                                2.G      }
+  G2P5000 = 5C+8H+N+7O;    {CH3CH(OO.)CH2CH2CO(OONO2)                                                                              2.P      }
+  G2D4000 = 4C+7H+3O;      {CH3CH(OO.)CH2CHO                                                                                       2.D      }
+  G2A4005 = 4C+7H+4O;      {CH3CH(OO.)CH2CO(OH)                                                                                    2.A      }
+  G2G4004 = 4C+7H+5O;      {CH3CH(OO.)CH2CO(OOH)                                                                                   2.G      }
+  G2P4005 = 4C+6H+N+7O;    {CH3CH(OO.)CH2CO(OONO2)                                                                                 2.P      }
+  G2K500B = 5C+9H+4O;      {CH3CH(OO.)CH2COCH2(OH)                                                                                 2.KO     }
+  G2N500i = 5C+8H+N+6O;    {CH3CH(OO.)CH2COCH2(ONO2)                                                                               2.NK     }
+  G2H500J = 5C+9H+5O;      {CH3CH(OO.)CH2COCH2(OOH)                                                                                2.HK     }
+  G2D500N = 5C+7H+4O;      {CH3CH(OO.)CH2COCHO                                                                                     2.DK     }
+  G2A500Z = 5C+7H+5O;      {CH3CH(OO.)CH2COCO(OH)                                                                                  2.AK     }
+  G2G500T = 5C+7H+6O;      {CH3CH(OO.)CH2COCO(OOH)                                                                                 2.GK     }
+  G2P500a = 5C+6H+N+8O;    {CH3CH(OO.)CH2COCO(OONO2)                                                                               2.PK     }
+  G203001 = 3C+7H+2O;      {CH3CH(OO.)CH3                                                                                          2.       }
+  G2D3000 = 3C+5H+3O;      {CH3CH(OO.)CHO                                                                                          2.D      }
+  G2A3001 = 3C+5H+4O;      {CH3CH(OO.)CO(OH)                                                                                       2.A      }
+  G2G3001 = 3C+5H+5O;      {CH3CH(OO.)CO(OOH)                                                                                      2.G      }
+  G2P3001 = 3C+4H+N+7O;    {CH3CH(OO.)CO(OONO2)                                                                                    2.P      }
+  G2K500s = 5C+9H+5O;      {CH3CH(OO.)COCH(OH)CH2(OH)                                                                              2.KOO    }
+  G2N502d = 5C+8H+N+7O;    {CH3CH(OO.)COCH(OH)CH2(ONO2)                                                                            2.NKO    }
+  G2A501m = 5C+7H+6O;      {CH3CH(OO.)COCH(OH)CO(OH)                                                                               2.AKO    }
+  G2G501R = 5C+7H+7O;      {CH3CH(OO.)COCH(OH)CO(OOH)                                                                              2.GKO    }
+  G2P501x = 5C+6H+N+9O;    {CH3CH(OO.)COCH(OH)CO(OONO2)                                                                            2.PKO    }
+  G2N502b = 5C+8H+N+7O;    {CH3CH(OO.)COCH(ONO2)CH2(OH)                                                                            2.NKO    }
+  G2N502a = 5C+7H+2N+9O;   {CH3CH(OO.)COCH(ONO2)CH2(ONO2)                                                                          2.NNK    }
+  G2N504f = 5C+6H+N+7O;    {CH3CH(OO.)COCH(ONO2)CHO                                                                                2.NDK    }
+  G2A501k = 5C+6H+N+8O;    {CH3CH(OO.)COCH(ONO2)CO(OH)                                                                             2.ANK    }
+  G2G501P = 5C+6H+N+9O;    {CH3CH(OO.)COCH(ONO2)CO(OOH)                                                                            2.GNK    }
+  G2P501v = 5C+5H+2N+11O;  {CH3CH(OO.)COCH(ONO2)CO(OONO2)                                                                          2.PNK    }
+  G2H503O = 5C+9H+6O;      {CH3CH(OO.)COCH(OOH)CH2(OH)                                                                             2.HKO    }
+  G2H500r = 5C+8H+N+8O;    {CH3CH(OO.)COCH(OOH)CH2(ONO2)                                                                           2.HNK    }
+  G2A505F = 5C+7H+7O;      {CH3CH(OO.)COCH(OOH)CO(OH)                                                                              2.AHK    }
+  G2G504E = 5C+7H+8O;      {CH3CH(OO.)COCH(OOH)CO(OOH)                                                                             2.GHK    }
+  G2P505i = 5C+6H+N+10O;   {CH3CH(OO.)COCH(OOH)CO(OONO2)                                                                           2.PHK    }
+  G2K4005 = 4C+7H+4O;      {CH3CH(OO.)COCH2(OH)                                                                                    2.KO     }
+  G2N400S = 4C+6H+N+6O;    {CH3CH(OO.)COCH2(ONO2)                                                                                  2.NK     }
+  G2H400z = 4C+7H+5O;      {CH3CH(OO.)COCH2(OOH)                                                                                   2.HK     }
+  G2K5005 = 5C+9H+4O;      {CH3CH(OO.)COCH2CH2(OH)                                                                                 2.KO     }
+  G2N500a = 5C+8H+N+6O;    {CH3CH(OO.)COCH2CH2(ONO2)                                                                               2.NK     }
+  G2A500L = 5C+7H+5O;      {CH3CH(OO.)COCH2CO(OH)                                                                                  2.AK     }
+  G2G500I = 5C+7H+6O;      {CH3CH(OO.)COCH2CO(OOH)                                                                                 2.GK     }
+  G2P500N = 5C+6H+N+8O;    {CH3CH(OO.)COCH2CO(OONO2)                                                                               2.PK     }
+  G2D4009 = 4C+5H+4O;      {CH3CH(OO.)COCHO                                                                                        2.DK     }
+  G2A400T = 4C+5H+5O;      {CH3CH(OO.)COCO(OH)                                                                                     2.AK     }
+  G2G400I = 4C+5H+6O;      {CH3CH(OO.)COCO(OOH)                                                                                    2.GK     }
+  G2P400W = 4C+4H+N+8O;    {CH3CH(OO.)COCO(OONO2)                                                                                  2.PK     }
+  G2K500Y = 5C+7H+5O;      {CH3CH(OO.)COCOCH2(OH)                                                                                  2.KKO    }
+  G2N502f = 5C+6H+N+7O;    {CH3CH(OO.)COCOCH2(ONO2)                                                                                2.NKK    }
+  G2D500S = 5C+5H+5O;      {CH3CH(OO.)COCOCHO                                                                                      2.DKK    }
+  G2A501o = 5C+5H+6O;      {CH3CH(OO.)COCOCO(OH)                                                                                   2.AKK    }
+  G2G501T = 5C+5H+7O;      {CH3CH(OO.)COCOCO(OOH)                                                                                  2.GKK    }
+  G2P501z = 5C+4H+N+9O;    {CH3CH(OO.)COCOCO(OONO2)                                                                                2.PKK    }
+  G1H5067 = 5C+11H+5O;     {CH3CH(OOH)CH(O.)CH(OH)CH2(OH)                                                                          1.HOO    }
+  G1H505I = 5C+10H+N+7O;   {CH3CH(OOH)CH(O.)CH(OH)CH2(ONO2)                                                                        1.HNO    }
+  G1H503C = 5C+11H+4O;     {CH3CH(OOH)CH(O.)CH(OH)CH3                                                                              1.HO     }
+  G1H5069 = 5C+9H+5O;      {CH3CH(OOH)CH(O.)CH(OH)CHO                                                                              1.HDO    }
+  G1A5057 = 5C+9H+6O;      {CH3CH(OOH)CH(O.)CH(OH)CO(OH)                                                                           1.AHO    }
+  G1G506n = 5C+9H+7O;      {CH3CH(OOH)CH(O.)CH(OH)CO(OOH)                                                                          1.GHO    }
+  G1P505W = 5C+8H+N+9O;    {CH3CH(OOH)CH(O.)CH(OH)CO(OONO2)                                                                        1.PHO    }
+  G1H5033 = 5C+10H+N+7O;   {CH3CH(OOH)CH(O.)CH(ONO2)CH2(OH)                                                                        1.HNO    }
+  G1H505C = 5C+9H+2N+9O;   {CH3CH(OOH)CH(O.)CH(ONO2)CH2(ONO2)                                                                      1.HNN    }
+  G1H507Z = 5C+8H+N+7O;    {CH3CH(OOH)CH(O.)CH(ONO2)CHO                                                                            1.HND    }
+  G1A5054 = 5C+8H+N+8O;    {CH3CH(OOH)CH(O.)CH(ONO2)CO(OH)                                                                         1.AHN    }
+  G1G504P = 5C+8H+N+9O;    {CH3CH(OOH)CH(O.)CH(ONO2)CO(OOH)                                                                        1.GHN    }
+  G1P505S = 5C+7H+2N+11O;  {CH3CH(OOH)CH(O.)CH(ONO2)CO(OONO2)                                                                      1.PHN    }
+  G1H505G = 5C+11H+6O;     {CH3CH(OOH)CH(O.)CH(OOH)CH2(OH)                                                                         1.HHO    }
+  G1H509v = 5C+9H+6O;      {CH3CH(OOH)CH(O.)CH(OOH)CHO                                                                             1.HHD    }
+  G1A507P = 5C+9H+7O;      {CH3CH(OOH)CH(O.)CH(OOH)CO(OH)                                                                          1.AHH    }
+  G1G506A = 5C+9H+8O;      {CH3CH(OOH)CH(O.)CH(OOH)CO(OOH)                                                                         1.GHH    }
+  G1P5085 = 5C+8H+N+10O;   {CH3CH(OOH)CH(O.)CH(OOH)CO(OONO2)                                                                       1.PHH    }
+  G1H401B = 4C+9H+4O;      {CH3CH(OOH)CH(O.)CH2(OH)                                                                                1.HO     }
+  G1H401A = 4C+8H+N+6O;    {CH3CH(OOH)CH(O.)CH2(ONO2)                                                                              1.HN     }
+  G1H401N = 4C+9H+5O;      {CH3CH(OOH)CH(O.)CH2(OOH)                                                                               1.HH     }
+  G1H500c = 5C+11H+4O;     {CH3CH(OOH)CH(O.)CH2CH2(OH)                                                                             1.HO     }
+  G1H501G = 5C+10H+N+6O;   {CH3CH(OOH)CH(O.)CH2CH2(ONO2)                                                                           1.HN     }
+  G1H500b = 5C+11H+3O;     {CH3CH(OOH)CH(O.)CH2CH3                                                                                 1.H      }
+  G1H500e = 5C+9H+4O;      {CH3CH(OOH)CH(O.)CH2CHO                                                                                 1.HD     }
+  G1A501j = 5C+9H+5O;      {CH3CH(OOH)CH(O.)CH2CO(OH)                                                                              1.AH     }
+  G1G501U = 5C+9H+6O;      {CH3CH(OOH)CH(O.)CH2CO(OOH)                                                                             1.GH     }
+  G1P501o = 5C+8H+N+8O;    {CH3CH(OOH)CH(O.)CH2CO(OONO2)                                                                           1.PH     }
+  G1H401D = 4C+7H+4O;      {CH3CH(OOH)CH(O.)CHO                                                                                    1.HD     }
+  G1A400o = 4C+7H+5O;      {CH3CH(OOH)CH(O.)CO(OH)                                                                                 1.AH     }
+  G1G400d = 4C+7H+6O;      {CH3CH(OOH)CH(O.)CO(OOH)                                                                                1.GH     }
+  G1P400p = 4C+6H+N+8O;    {CH3CH(OOH)CH(O.)CO(OONO2)                                                                              1.PH     }
+  G1H507B = 5C+9H+5O;      {CH3CH(OOH)CH(O.)COCH2(OH)                                                                              1.HKO    }
+  G1H505M = 5C+8H+N+7O;    {CH3CH(OOH)CH(O.)COCH2(ONO2)                                                                            1.HNK    }
+  G1H503G = 5C+9H+4O;      {CH3CH(OOH)CH(O.)COCH3                                                                                  1.HK     }
+  G1H50B8 = 5C+7H+5O;      {CH3CH(OOH)CH(O.)COCHO                                                                                  1.HDK    }
+  G1A5059 = 5C+7H+6O;      {CH3CH(OOH)CH(O.)COCO(OH)                                                                               1.AHK    }
+  G1G504W = 5C+7H+7O;      {CH3CH(OOH)CH(O.)COCO(OOH)                                                                              1.GHK    }
+  G1P505Y = 5C+6H+N+9O;    {CH3CH(OOH)CH(O.)COCO(OONO2)                                                                            1.PHK    }
+  G1H5064 = 5C+11H+5O;     {CH3CH(OOH)CH(OH)CH(O.)CH2(OH)                                                                          1.HOO    }
+  G1H5062 = 5C+10H+N+7O;   {CH3CH(OOH)CH(OH)CH(O.)CH2(ONO2)                                                                        1.HNO    }
+  G1H5038 = 5C+11H+4O;     {CH3CH(OOH)CH(OH)CH(O.)CH3                                                                              1.HO     }
+  G1H50B9 = 5C+9H+5O;      {CH3CH(OOH)CH(OH)CH(O.)CHO                                                                              1.HDO    }
+  G1A505g = 5C+9H+6O;      {CH3CH(OOH)CH(OH)CH(O.)CO(OH)                                                                           1.AHO    }
+  G1G5046 = 5C+9H+7O;      {CH3CH(OOH)CH(OH)CH(O.)CO(OOH)                                                                          1.GHO    }
+  G1P505f = 5C+8H+N+9O;    {CH3CH(OOH)CH(OH)CH(O.)CO(OONO2)                                                                        1.PHO    }
+  G1H5068 = 5C+11H+5O;     {CH3CH(OOH)CH(OH)CH(OH)CH2(O.)                                                                          1.HOO    }
+  GHO500S = 5C+12H+5O;     {CH3CH(OOH)CH(OH)CH(OH)CH2(OH)                                                                          HOOO     }
+  GHN503U = 5C+11H+N+7O;   {CH3CH(OOH)CH(OH)CH(OH)CH2(ONO2)                                                                        HNOO     }
+  GHD501A = 5C+10H+5O;     {CH3CH(OOH)CH(OH)CH(OH)CHO                                                                              HDOO     }
+  GAH502h = 5C+10H+6O;     {CH3CH(OOH)CH(OH)CH(OH)CO(OH)                                                                           AHOO     }
+  G3H5034 = 5C+9H+7O;      {CH3CH(OOH)CH(OH)CH(OH)CO(OO.)                                                                          3.HKO    }
+  GGH5023 = 5C+10H+7O;     {CH3CH(OOH)CH(OH)CH(OH)CO(OOH)                                                                          GHOO     }
+  GPH502L = 5C+9H+N+9O;    {CH3CH(OOH)CH(OH)CH(OH)CO(OONO2)                                                                        PHOO     }
+  G1H5063 = 5C+10H+N+7O;   {CH3CH(OOH)CH(OH)CH(ONO2)CH2(O.)                                                                        1.HNO    }
+  GHN503R = 5C+11H+N+7O;   {CH3CH(OOH)CH(OH)CH(ONO2)CH2(OH)                                                                        HNOO     }
+  GHN503Q = 5C+10H+2N+9O;  {CH3CH(OOH)CH(OH)CH(ONO2)CH2(ONO2)                                                                      HNNO     }
+  GHN506P = 5C+9H+N+7O;    {CH3CH(OOH)CH(OH)CH(ONO2)CHO                                                                            HNDO     }
+  GAH502g = 5C+9H+N+8O;    {CH3CH(OOH)CH(OH)CH(ONO2)CO(OH)                                                                         AHNO     }
+  G3H503t = 5C+8H+N+9O;    {CH3CH(OOH)CH(OH)CH(ONO2)CO(OO.)                                                                        3.HNK    }
+  GGH5022 = 5C+9H+N+9O;    {CH3CH(OOH)CH(OH)CH(ONO2)CO(OOH)                                                                        GHNO     }
+  GPH502K = 5C+8H+2N+11O;  {CH3CH(OOH)CH(OH)CH(ONO2)CO(OONO2)                                                                      PHNO     }
+  GHH500w = 5C+12H+6O;     {CH3CH(OOH)CH(OH)CH(OOH)CH2(OH)                                                                         HHOO     }
+  G1H400b = 4C+9H+4O;      {CH3CH(OOH)CH(OH)CH2(O.)                                                                                1.HO     }
+  GHO400C = 4C+10H+4O;     {CH3CH(OOH)CH(OH)CH2(OH)                                                                                HOO      }
+  GHN400i = 4C+9H+N+6O;    {CH3CH(OOH)CH(OH)CH2(ONO2)                                                                              HNO      }
+  G2H400X = 4C+9H+5O;      {CH3CH(OOH)CH(OH)CH2(OO.)                                                                               2.HO     }
+  GHH400W = 4C+10H+5O;     {CH3CH(OOH)CH(OH)CH2(OOH)                                                                               HHO      }
+  G1H501O = 5C+11H+4O;     {CH3CH(OOH)CH(OH)CH2CH2(O.)                                                                             1.HO     }
+  GHO500G = 5C+12H+4O;     {CH3CH(OOH)CH(OH)CH2CH2(OH)                                                                             HOO      }
+  GHN500f = 5C+11H+N+6O;   {CH3CH(OOH)CH(OH)CH2CH2(ONO2)                                                                           HNO      }
+  GHD500G = 5C+10H+4O;     {CH3CH(OOH)CH(OH)CH2CHO                                                                                 HDO      }
+  GAH500Q = 5C+10H+5O;     {CH3CH(OOH)CH(OH)CH2CO(OH)                                                                              AHO      }
+  G3H500P = 5C+9H+6O;      {CH3CH(OOH)CH(OH)CH2CO(OO.)                                                                             3.HKO    }
+  GGH500M = 5C+10H+6O;     {CH3CH(OOH)CH(OH)CH2CO(OOH)                                                                             GHO      }
+  GPH500Q = 5C+9H+N+8O;    {CH3CH(OOH)CH(OH)CH2CO(OONO2)                                                                           PHO      }
+  GHD400H = 4C+8H+4O;      {CH3CH(OOH)CH(OH)CHO                                                                                    HDO      }
+  GAH400G = 4C+8H+5O;      {CH3CH(OOH)CH(OH)CO(OH)                                                                                 AHO      }
+  G3H400M = 4C+7H+6O;      {CH3CH(OOH)CH(OH)CO(OO.)                                                                                3.HKO    }
+  GGH400E = 4C+8H+6O;      {CH3CH(OOH)CH(OH)CO(OOH)                                                                                GHO      }
+  GPH400H = 4C+7H+N+8O;    {CH3CH(OOH)CH(OH)CO(OONO2)                                                                              PHO      }
+  G1H506C = 5C+9H+5O;      {CH3CH(OOH)CH(OH)COCH2(O.)                                                                              1.HKO    }
+  GHK500h = 5C+10H+5O;     {CH3CH(OOH)CH(OH)COCH2(OH)                                                                              HKOO     }
+  GHN503X = 5C+9H+N+7O;    {CH3CH(OOH)CH(OH)COCH2(ONO2)                                                                            HNKO     }
+  GHD501M = 5C+8H+5O;      {CH3CH(OOH)CH(OH)COCHO                                                                                  HDKO     }
+  GAH502k = 5C+8H+6O;      {CH3CH(OOH)CH(OH)COCO(OH)                                                                               AHKO     }
+  G3H503z = 5C+7H+7O;      {CH3CH(OOH)CH(OH)COCO(OO.)                                                                              3.HKK    }
+  GGH5024 = 5C+8H+7O;      {CH3CH(OOH)CH(OH)COCO(OOH)                                                                              GHKO     }
+  GPH502M = 5C+7H+N+9O;    {CH3CH(OOH)CH(OH)COCO(OONO2)                                                                            PHKO     }
+  G1H5034 = 5C+10H+N+7O;   {CH3CH(OOH)CH(ONO2)CH(O.)CH2(OH)                                                                        1.HNO    }
+  G1H505D = 5C+9H+2N+9O;   {CH3CH(OOH)CH(ONO2)CH(O.)CH2(ONO2)                                                                      1.HNN    }
+  G1H502t = 5C+10H+N+6O;   {CH3CH(OOH)CH(ONO2)CH(O.)CH3                                                                            1.HN     }
+  G1H507a = 5C+8H+N+7O;    {CH3CH(OOH)CH(ONO2)CH(O.)CHO                                                                            1.HND    }
+  G1A5055 = 5C+8H+N+8O;    {CH3CH(OOH)CH(ONO2)CH(O.)CO(OH)                                                                         1.AHN    }
+  G1G504Q = 5C+8H+N+9O;    {CH3CH(OOH)CH(ONO2)CH(O.)CO(OOH)                                                                        1.GHN    }
+  G1P505T = 5C+7H+2N+11O;  {CH3CH(OOH)CH(ONO2)CH(O.)CO(OONO2)                                                                      1.PHN    }
+  G1H505J = 5C+10H+N+7O;   {CH3CH(OOH)CH(ONO2)CH(OH)CH2(O.)                                                                        1.HNO    }
+  GHN505i = 5C+11H+N+7O;   {CH3CH(OOH)CH(ONO2)CH(OH)CH2(OH)                                                                        HNOO     }
+  GHN502y = 5C+10H+2N+9O;  {CH3CH(OOH)CH(ONO2)CH(OH)CH2(ONO2)                                                                      HNNO     }
+  GHN5062 = 5C+9H+N+7O;    {CH3CH(OOH)CH(ONO2)CH(OH)CHO                                                                            HNDO     }
+  GAH502D = 5C+9H+N+8O;    {CH3CH(OOH)CH(ONO2)CH(OH)CO(OH)                                                                         AHNO     }
+  G3H5035 = 5C+8H+N+9O;    {CH3CH(OOH)CH(ONO2)CH(OH)CO(OO.)                                                                        3.HNK    }
+  GGH503m = 5C+9H+N+9O;    {CH3CH(OOH)CH(ONO2)CH(OH)CO(OOH)                                                                        GHNO     }
+  GPH502C = 5C+8H+2N+11O;  {CH3CH(OOH)CH(ONO2)CH(OH)CO(OONO2)                                                                      PHNO     }
+  G1H505E = 5C+9H+2N+9O;   {CH3CH(OOH)CH(ONO2)CH(ONO2)CH2(O.)                                                                      1.HNN    }
+  GHN501Y = 5C+10H+2N+9O;  {CH3CH(OOH)CH(ONO2)CH(ONO2)CH2(OH)                                                                      HNNO     }
+  GHN502v = 5C+9H+3N+11O;  {CH3CH(OOH)CH(ONO2)CH(ONO2)CH2(ONO2)                                                                    HNNN     }
+  GHN504O = 5C+8H+2N+9O;   {CH3CH(OOH)CH(ONO2)CH(ONO2)CHO                                                                          HNND     }
+  GAH502C = 5C+8H+2N+10O;  {CH3CH(OOH)CH(ONO2)CH(ONO2)CO(OH)                                                                       AHNN     }
+  G3H501l = 5C+7H+2N+11O;  {CH3CH(OOH)CH(ONO2)CH(ONO2)CO(OO.)                                                                      3.HNN    }
+  GGH502O = 5C+8H+2N+11O;  {CH3CH(OOH)CH(ONO2)CH(ONO2)CO(OOH)                                                                      GHNN     }
+  GPH502B = 5C+7H+3N+13O;  {CH3CH(OOH)CH(ONO2)CH(ONO2)CO(OONO2)                                                                    PHNN     }
+  G2H502A = 5C+10H+N+8O;   {CH3CH(OOH)CH(ONO2)CH(OO.)CH2(OH)                                                                       2.HNO    }
+  G2H503K = 5C+8H+N+8O;    {CH3CH(OOH)CH(ONO2)CH(OO.)CHO                                                                           2.HND    }
+  G2A5057 = 5C+8H+N+9O;    {CH3CH(OOH)CH(ONO2)CH(OO.)CO(OH)                                                                        2.AHN    }
+  G2G5044 = 5C+8H+N+10O;   {CH3CH(OOH)CH(ONO2)CH(OO.)CO(OOH)                                                                       2.GHN    }
+  G2P505g = 5C+7H+2N+12O;  {CH3CH(OOH)CH(ONO2)CH(OO.)CO(OONO2)                                                                     2.PHN    }
+  GHH500j = 5C+11H+N+8O;   {CH3CH(OOH)CH(ONO2)CH(OOH)CH2(OH)                                                                       HHNO     }
+  GHH5024 = 5C+9H+N+8O;    {CH3CH(OOH)CH(ONO2)CH(OOH)CHO                                                                           HHND     }
+  GAH503y = 5C+9H+N+9O;    {CH3CH(OOH)CH(ONO2)CH(OOH)CO(OH)                                                                        AHHN     }
+  G3H502m = 5C+8H+N+10O;   {CH3CH(OOH)CH(ONO2)CH(OOH)CO(OO.)                                                                       3.HHN    }
+  GGH503N = 5C+9H+N+10O;   {CH3CH(OOH)CH(ONO2)CH(OOH)CO(OOH)                                                                       GHHN     }
+  GPH5048 = 5C+8H+2N+12O;  {CH3CH(OOH)CH(ONO2)CH(OOH)CO(OONO2)                                                                     PHHN     }
+  G1H400T = 4C+8H+N+6O;    {CH3CH(OOH)CH(ONO2)CH2(O.)                                                                              1.HN     }
+  GHN400d = 4C+9H+N+6O;    {CH3CH(OOH)CH(ONO2)CH2(OH)                                                                              HNO      }
+  GHN400c = 4C+8H+2N+8O;   {CH3CH(OOH)CH(ONO2)CH2(ONO2)                                                                            HNN      }
+  G2H400R = 4C+8H+N+7O;    {CH3CH(OOH)CH(ONO2)CH2(OO.)                                                                             2.HN     }
+  GHH400N = 4C+9H+N+7O;    {CH3CH(OOH)CH(ONO2)CH2(OOH)                                                                             HHN      }
+  G1H501H = 5C+10H+N+6O;   {CH3CH(OOH)CH(ONO2)CH2CH2(O.)                                                                           1.HN     }
+  GHN500E = 5C+11H+N+6O;   {CH3CH(OOH)CH(ONO2)CH2CH2(OH)                                                                           HNO      }
+  GHN500a = 5C+10H+2N+8O;  {CH3CH(OOH)CH(ONO2)CH2CH2(ONO2)                                                                         HNN      }
+  GHN501m = 5C+9H+N+6O;    {CH3CH(OOH)CH(ONO2)CH2CHO                                                                               HND      }
+  GAH500M = 5C+9H+N+7O;    {CH3CH(OOH)CH(ONO2)CH2CO(OH)                                                                            AHN      }
+  G3H500L = 5C+8H+N+8O;    {CH3CH(OOH)CH(ONO2)CH2CO(OO.)                                                                           3.HNK    }
+  GGH500L = 5C+9H+N+8O;    {CH3CH(OOH)CH(ONO2)CH2CO(OOH)                                                                           GHN      }
+  GPH500M = 5C+8H+2N+10O;  {CH3CH(OOH)CH(ONO2)CH2CO(OONO2)                                                                         PHN      }
+  GHN400p = 4C+7H+N+6O;    {CH3CH(OOH)CH(ONO2)CHO                                                                                  HND      }
+  GAH400F = 4C+7H+N+7O;    {CH3CH(OOH)CH(ONO2)CO(OH)                                                                               AHN      }
+  G3H400J = 4C+6H+N+8O;    {CH3CH(OOH)CH(ONO2)CO(OO.)                                                                              3.HNK    }
+  GGH400D = 4C+7H+N+8O;    {CH3CH(OOH)CH(ONO2)CO(OOH)                                                                              GHN      }
+  GPH400G = 4C+6H+2N+10O;  {CH3CH(OOH)CH(ONO2)CO(OONO2)                                                                            PHN      }
+  G1H505N = 5C+8H+N+7O;    {CH3CH(OOH)CH(ONO2)COCH2(O.)                                                                            1.HNK    }
+  GHN504B = 5C+9H+N+7O;    {CH3CH(OOH)CH(ONO2)COCH2(OH)                                                                            HNKO     }
+  GHN5031 = 5C+8H+2N+9O;   {CH3CH(OOH)CH(ONO2)COCH2(ONO2)                                                                          HNNK     }
+  GHN506O = 5C+7H+N+7O;    {CH3CH(OOH)CH(ONO2)COCHO                                                                                HNDK     }
+  GAH502F = 5C+7H+N+8O;    {CH3CH(OOH)CH(ONO2)COCO(OH)                                                                             AHNK     }
+  G3H503w = 5C+6H+N+9O;    {CH3CH(OOH)CH(ONO2)COCO(OO.)                                                                            3.HNK    }
+  GGH502Q = 5C+7H+N+9O;    {CH3CH(OOH)CH(ONO2)COCO(OOH)                                                                            GHNK     }
+  GPH502E = 5C+6H+2N+11O;  {CH3CH(OOH)CH(ONO2)COCO(OONO2)                                                                          PHNK     }
+  G2H502M = 5C+9H+6O;      {CH3CH(OOH)CH(OO.)CH(OH)CHO                                                                             2.HDO    }
+  G2H502J = 5C+10H+N+8O;   {CH3CH(OOH)CH(OO.)CH(ONO2)CH2(OH)                                                                       2.HNO    }
+  G2H502I = 5C+9H+2N+10O;  {CH3CH(OOH)CH(OO.)CH(ONO2)CH2(ONO2)                                                                     2.HNN    }
+  G2H503d = 5C+8H+N+8O;    {CH3CH(OOH)CH(OO.)CH(ONO2)CHO                                                                           2.HND    }
+  G2A504J = 5C+8H+N+9O;    {CH3CH(OOH)CH(OO.)CH(ONO2)CO(OH)                                                                        2.AHN    }
+  G2G503F = 5C+8H+N+10O;   {CH3CH(OOH)CH(OO.)CH(ONO2)CO(OOH)                                                                       2.GHN    }
+  G2P504j = 5C+7H+2N+12O;  {CH3CH(OOH)CH(OO.)CH(ONO2)CO(OONO2)                                                                     2.PHN    }
+  G2H400w = 4C+8H+N+7O;    {CH3CH(OOH)CH(OO.)CH2(ONO2)                                                                             2.HN     }
+  G2H500T = 5C+9H+5O;      {CH3CH(OOH)CH(OO.)CH2CHO                                                                                2.HD     }
+  G2A400r = 4C+7H+6O;      {CH3CH(OOH)CH(OO.)CO(OH)                                                                                2.AH     }
+  G2G400i = 4C+7H+7O;      {CH3CH(OOH)CH(OO.)CO(OOH)                                                                               2.GH     }
+  G2P400v = 4C+6H+N+9O;    {CH3CH(OOH)CH(OO.)CO(OONO2)                                                                             2.PH     }
+  G1H505x = 5C+11H+6O;     {CH3CH(OOH)CH(OOH)CH(O.)CH2(OH)                                                                         1.HHO    }
+  G1H505t = 5C+10H+N+8O;   {CH3CH(OOH)CH(OOH)CH(O.)CH2(ONO2)                                                                       1.HHN    }
+  G1H5036 = 5C+11H+5O;     {CH3CH(OOH)CH(OOH)CH(O.)CH3                                                                             1.HH     }
+  G1H50BA = 5C+9H+6O;      {CH3CH(OOH)CH(OOH)CH(O.)CHO                                                                             1.HHD    }
+  G1A505e = 5C+9H+7O;      {CH3CH(OOH)CH(OOH)CH(O.)CO(OH)                                                                          1.AHH    }
+  G1G504T = 5C+9H+8O;      {CH3CH(OOH)CH(OOH)CH(O.)CO(OOH)                                                                         1.GHH    }
+  G1P506O = 5C+8H+N+10O;   {CH3CH(OOH)CH(OOH)CH(O.)CO(OONO2)                                                                       1.PHH    }
+  GHH500x = 5C+12H+6O;     {CH3CH(OOH)CH(OOH)CH(OH)CH2(OH)                                                                         HHOO     }
+  GHH502C = 5C+10H+6O;     {CH3CH(OOH)CH(OOH)CH(OH)CHO                                                                             HHDO     }
+  GAH5046 = 5C+10H+7O;     {CH3CH(OOH)CH(OOH)CH(OH)CO(OH)                                                                          AHHO     }
+  G3H5036 = 5C+9H+8O;      {CH3CH(OOH)CH(OOH)CH(OH)CO(OO.)                                                                         3.HHK    }
+  GGH503n = 5C+10H+8O;     {CH3CH(OOH)CH(OOH)CH(OH)CO(OOH)                                                                         GHHO     }
+  GPH504D = 5C+9H+N+10O;   {CH3CH(OOH)CH(OOH)CH(OH)CO(OONO2)                                                                       PHHO     }
+  G1H505u = 5C+10H+N+8O;   {CH3CH(OOH)CH(OOH)CH(ONO2)CH2(O.)                                                                       1.HHN    }
+  GHH500r = 5C+11H+N+8O;   {CH3CH(OOH)CH(OOH)CH(ONO2)CH2(OH)                                                                       HHNO     }
+  GHH500q = 5C+10H+2N+10O; {CH3CH(OOH)CH(OOH)CH(ONO2)CH2(ONO2)                                                                     HHNN     }
+  GHH502f = 5C+9H+N+8O;    {CH3CH(OOH)CH(OOH)CH(ONO2)CHO                                                                           HHND     }
+  GAH502f = 5C+9H+N+9O;    {CH3CH(OOH)CH(OOH)CH(ONO2)CO(OH)                                                                        AHHN     }
+  G3H503u = 5C+8H+N+10O;   {CH3CH(OOH)CH(OOH)CH(ONO2)CO(OO.)                                                                       3.HHN    }
+  GGH502P = 5C+9H+N+10O;   {CH3CH(OOH)CH(OOH)CH(ONO2)CO(OOH)                                                                       GHHN     }
+  GPH502p = 5C+8H+2N+12O;  {CH3CH(OOH)CH(OOH)CH(ONO2)CO(OONO2)                                                                     PHHN     }
+  GHH500t = 5C+12H+7O;     {CH3CH(OOH)CH(OOH)CH(OOH)CH2(OH)                                                                        HHHO     }
+  G1H400Z = 4C+9H+5O;      {CH3CH(OOH)CH(OOH)CH2(O.)                                                                               1.HH     }
+  GHH400R = 4C+10H+5O;     {CH3CH(OOH)CH(OOH)CH2(OH)                                                                               HHO      }
+  GHH400L = 4C+9H+N+7O;    {CH3CH(OOH)CH(OOH)CH2(ONO2)                                                                             HHN      }
+  G2H400U = 4C+9H+6O;      {CH3CH(OOH)CH(OOH)CH2(OO.)                                                                              2.HH     }
+  GHH400Q = 4C+10H+6O;     {CH3CH(OOH)CH(OOH)CH2(OOH)                                                                              HHH      }
+  GHH5006 = 5C+12H+5O;     {CH3CH(OOH)CH(OOH)CH2CH2(OH)                                                                            HHO      }
+  GHH500R = 5C+10H+5O;     {CH3CH(OOH)CH(OOH)CH2CHO                                                                                HHD      }
+  GAH500l = 5C+10H+6O;     {CH3CH(OOH)CH(OOH)CH2CO(OH)                                                                             AHH      }
+  G3H500O = 5C+9H+7O;      {CH3CH(OOH)CH(OOH)CH2CO(OO.)                                                                            3.HHK    }
+  GGH500g = 5C+10H+7O;     {CH3CH(OOH)CH(OOH)CH2CO(OOH)                                                                            GHH      }
+  GPH500n = 5C+9H+N+9O;    {CH3CH(OOH)CH(OOH)CH2CO(OONO2)                                                                          PHH      }
+  GHH400M = 4C+8H+5O;      {CH3CH(OOH)CH(OOH)CHO                                                                                   HHD      }
+  GAH400W = 4C+8H+6O;      {CH3CH(OOH)CH(OOH)CO(OH)                                                                                AHH      }
+  G3H400L = 4C+7H+7O;      {CH3CH(OOH)CH(OOH)CO(OO.)                                                                               3.HHK    }
+  GGH400U = 4C+8H+7O;      {CH3CH(OOH)CH(OOH)CO(OOH)                                                                               GHH      }
+  GPH400X = 4C+7H+N+9O;    {CH3CH(OOH)CH(OOH)CO(OONO2)                                                                             PHH      }
+  G1H506A = 5C+9H+6O;      {CH3CH(OOH)CH(OOH)COCH2(O.)                                                                             1.HHK    }
+  GHH501Z = 5C+10H+6O;     {CH3CH(OOH)CH(OOH)COCH2(OH)                                                                             HHKO     }
+  GHH500y = 5C+9H+N+8O;    {CH3CH(OOH)CH(OOH)COCH2(ONO2)                                                                           HHNK     }
+  GHH502h = 5C+8H+6O;      {CH3CH(OOH)CH(OOH)COCHO                                                                                 HHDK     }
+  GAH502i = 5C+8H+7O;      {CH3CH(OOH)CH(OOH)COCO(OH)                                                                              AHHK     }
+  G3H504C = 5C+7H+8O;      {CH3CH(OOH)CH(OOH)COCO(OO.)                                                                             3.HHK    }
+  GGH502R = 5C+8H+8O;      {CH3CH(OOH)CH(OOH)COCO(OOH)                                                                             GHHK     }
+  GPH502q = 5C+7H+N+10O;   {CH3CH(OOH)CH(OOH)COCO(OONO2)                                                                           PHHK     }
+  G1H3004 = 3C+7H+3O;      {CH3CH(OOH)CH2(O.)                                                                                      1.H      }
+  GHO3002 = 3C+8H+3O;      {CH3CH(OOH)CH2(OH)                                                                                      HO       }
+  GHN3002 = 3C+7H+N+5O;    {CH3CH(OOH)CH2(ONO2)                                                                                    HN       }
+  G2H3003 = 3C+7H+4O;      {CH3CH(OOH)CH2(OO.)                                                                                     2.H      }
+  GHH3000 = 3C+8H+4O;      {CH3CH(OOH)CH2(OOH)                                                                                     HH       }
+  G1H501g = 5C+11H+4O;     {CH3CH(OOH)CH2CH(O.)CH2(OH)                                                                             1.HO     }
+  G1H501Y = 5C+10H+N+6O;   {CH3CH(OOH)CH2CH(O.)CH2(ONO2)                                                                           1.HN     }
+  G1H502W = 5C+11H+5O;     {CH3CH(OOH)CH2CH(O.)CH2(OOH)                                                                            1.HH     }
+  G1H500T = 5C+11H+3O;     {CH3CH(OOH)CH2CH(O.)CH3                                                                                 1.H      }
+  G1H5073 = 5C+9H+4O;      {CH3CH(OOH)CH2CH(O.)CHO                                                                                 1.HD     }
+  G1A502N = 5C+9H+5O;      {CH3CH(OOH)CH2CH(O.)CO(OH)                                                                              1.AH     }
+  G1G501q = 5C+9H+6O;      {CH3CH(OOH)CH2CH(O.)CO(OOH)                                                                             1.GH     }
+  G1P502e = 5C+8H+N+8O;    {CH3CH(OOH)CH2CH(O.)CO(OONO2)                                                                           1.PH     }
+  G1H501p = 5C+11H+4O;     {CH3CH(OOH)CH2CH(OH)CH2(O.)                                                                             1.HO     }
+  GHO500H = 5C+12H+4O;     {CH3CH(OOH)CH2CH(OH)CH2(OH)                                                                             HOO      }
+  GHN500o = 5C+11H+N+6O;   {CH3CH(OOH)CH2CH(OH)CH2(ONO2)                                                                           HNO      }
+  GHD500X = 5C+10H+4O;     {CH3CH(OOH)CH2CH(OH)CHO                                                                                 HDO      }
+  GAH500f = 5C+10H+5O;     {CH3CH(OOH)CH2CH(OH)CO(OH)                                                                              AHO      }
+  G3H500x = 5C+9H+6O;      {CH3CH(OOH)CH2CH(OH)CO(OO.)                                                                             3.HKO    }
+  GGH500a = 5C+10H+6O;     {CH3CH(OOH)CH2CH(OH)CO(OOH)                                                                             GHO      }
+  GPH500f = 5C+9H+N+8O;    {CH3CH(OOH)CH2CH(OH)CO(OONO2)                                                                           PHO      }
+  G1H501Z = 5C+10H+N+6O;   {CH3CH(OOH)CH2CH(ONO2)CH2(O.)                                                                           1.HN     }
+  GHN500l = 5C+11H+N+6O;   {CH3CH(OOH)CH2CH(ONO2)CH2(OH)                                                                           HNO      }
+  GHN500j = 5C+10H+2N+8O;  {CH3CH(OOH)CH2CH(ONO2)CH2(ONO2)                                                                         HNN      }
+  G2H501N = 5C+10H+N+7O;   {CH3CH(OOH)CH2CH(ONO2)CH2(OO.)                                                                          2.HN     }
+  GHH500G = 5C+11H+N+7O;   {CH3CH(OOH)CH2CH(ONO2)CH2(OOH)                                                                          HHN      }
+  GHN5043 = 5C+9H+N+6O;    {CH3CH(OOH)CH2CH(ONO2)CHO                                                                               HND      }
+  GAH500b = 5C+9H+N+7O;    {CH3CH(OOH)CH2CH(ONO2)CO(OH)                                                                            AHN      }
+  G3H501O = 5C+8H+N+8O;    {CH3CH(OOH)CH2CH(ONO2)CO(OO.)                                                                           3.HNK    }
+  GGH500Y = 5C+9H+N+8O;    {CH3CH(OOH)CH2CH(ONO2)CO(OOH)                                                                           GHN      }
+  GPH500d = 5C+8H+2N+10O;  {CH3CH(OOH)CH2CH(ONO2)CO(OONO2)                                                                         PHN      }
+  G2H500z = 5C+10H+N+7O;   {CH3CH(OOH)CH2CH(OO.)CH2(ONO2)                                                                          2.HN     }
+  G1H501i = 5C+11H+5O;     {CH3CH(OOH)CH2CH(OOH)CH2(O.)                                                                            1.HH     }
+  GHH5009 = 5C+12H+5O;     {CH3CH(OOH)CH2CH(OOH)CH2(OH)                                                                            HHO      }
+  GHH5007 = 5C+11H+N+7O;   {CH3CH(OOH)CH2CH(OOH)CH2(ONO2)                                                                          HHN      }
+  G1H4007 = 4C+9H+3O;      {CH3CH(OOH)CH2CH2(O.)                                                                                   1.H      }
+  GHO4007 = 4C+10H+3O;     {CH3CH(OOH)CH2CH2(OH)                                                                                   HO       }
+  GHN4008 = 4C+9H+N+5O;    {CH3CH(OOH)CH2CH2(ONO2)                                                                                 HN       }
+  G2H4007 = 4C+9H+4O;      {CH3CH(OOH)CH2CH2(OO.)                                                                                  2.H      }
+  GHH4003 = 4C+10H+4O;     {CH3CH(OOH)CH2CH2(OOH)                                                                                  HH       }
+  G1H5007 = 5C+11H+3O;     {CH3CH(OOH)CH2CH2CH2(O.)                                                                                1.H      }
+  GHO5000 = 5C+12H+3O;     {CH3CH(OOH)CH2CH2CH2(OH)                                                                                HO       }
+  GHN5001 = 5C+11H+N+5O;   {CH3CH(OOH)CH2CH2CH2(ONO2)                                                                              HN       }
+  GHD5002 = 5C+10H+3O;     {CH3CH(OOH)CH2CH2CHO                                                                                    HD       }
+  GAH5002 = 5C+10H+4O;     {CH3CH(OOH)CH2CH2CO(OH)                                                                                 AH       }
+  G3H5002 = 5C+9H+5O;      {CH3CH(OOH)CH2CH2CO(OO.)                                                                                3.HK     }
+  GGH5002 = 5C+10H+5O;     {CH3CH(OOH)CH2CH2CO(OOH)                                                                                GH       }
+  GPH5002 = 5C+9H+N+7O;    {CH3CH(OOH)CH2CH2CO(OONO2)                                                                              PH       }
+  GHD4002 = 4C+8H+3O;      {CH3CH(OOH)CH2CHO                                                                                       HD       }
+  GAH4005 = 4C+8H+4O;      {CH3CH(OOH)CH2CO(OH)                                                                                    AH       }
+  G3H4001 = 4C+7H+5O;      {CH3CH(OOH)CH2CO(OO.)                                                                                   3.HK     }
+  GGH4005 = 4C+8H+5O;      {CH3CH(OOH)CH2CO(OOH)                                                                                   GH       }
+  GPH4005 = 4C+7H+N+7O;    {CH3CH(OOH)CH2CO(OONO2)                                                                                 PH       }
+  G1H501s = 5C+9H+4O;      {CH3CH(OOH)CH2COCH2(O.)                                                                                 1.HK     }
+  GHK500G = 5C+10H+4O;     {CH3CH(OOH)CH2COCH2(OH)                                                                                 HKO      }
+  GHN500q = 5C+9H+N+6O;    {CH3CH(OOH)CH2COCH2(ONO2)                                                                               HNK      }
+  GHH500H = 5C+10H+5O;     {CH3CH(OOH)CH2COCH2(OOH)                                                                                HHK      }
+  GHD500l = 5C+8H+4O;      {CH3CH(OOH)CH2COCHO                                                                                     HDK      }
+  GAH500h = 5C+8H+5O;      {CH3CH(OOH)CH2COCO(OH)                                                                                  AHK      }
+  G3H501k = 5C+7H+6O;      {CH3CH(OOH)CH2COCO(OO.)                                                                                 3.HKK    }
+  GGH500c = 5C+8H+6O;      {CH3CH(OOH)CH2COCO(OOH)                                                                                 GHK      }
+  GPH500h = 5C+7H+N+8O;    {CH3CH(OOH)CH2COCO(OONO2)                                                                               PHK      }
+  GH03001 = 3C+8H+2O;      {CH3CH(OOH)CH3                                                                                          H        }
+  GHD3002 = 3C+6H+3O;      {CH3CH(OOH)CHO                                                                                          HD       }
+  GAH3001 = 3C+6H+4O;      {CH3CH(OOH)CO(OH)                                                                                       AH       }
+  G3H3001 = 3C+5H+5O;      {CH3CH(OOH)CO(OO.)                                                                                      3.HK     }
+  GGH3001 = 3C+6H+5O;      {CH3CH(OOH)CO(OOH)                                                                                      GH       }
+  GPH3001 = 3C+5H+N+7O;    {CH3CH(OOH)CO(OONO2)                                                                                    PH       }
+  G1H505h = 5C+9H+5O;      {CH3CH(OOH)COCH(O.)CH2(OH)                                                                              1.HKO    }
+  G1H505f = 5C+8H+N+7O;    {CH3CH(OOH)COCH(O.)CH2(ONO2)                                                                            1.HNK    }
+  G1H503A = 5C+9H+4O;      {CH3CH(OOH)COCH(O.)CH3                                                                                  1.HK     }
+  G1H50AG = 5C+7H+5O;      {CH3CH(OOH)COCH(O.)CHO                                                                                  1.HDK    }
+  G1A505T = 5C+7H+6O;      {CH3CH(OOH)COCH(O.)CO(OH)                                                                               1.AHK    }
+  G1G504E = 5C+7H+7O;      {CH3CH(OOH)COCH(O.)CO(OOH)                                                                              1.GHK    }
+  G1P5065 = 5C+6H+N+9O;    {CH3CH(OOH)COCH(O.)CO(OONO2)                                                                            1.PHK    }
+  G1H505m = 5C+9H+5O;      {CH3CH(OOH)COCH(OH)CH2(O.)                                                                              1.HKO    }
+  GHK500s = 5C+10H+5O;     {CH3CH(OOH)COCH(OH)CH2(OH)                                                                              HKOO     }
+  GHN503J = 5C+9H+N+7O;    {CH3CH(OOH)COCH(OH)CH2(ONO2)                                                                            HNKO     }
+  GHD501B = 5C+8H+5O;      {CH3CH(OOH)COCH(OH)CHO                                                                                  HDKO     }
+  GAH502Q = 5C+8H+6O;      {CH3CH(OOH)COCH(OH)CO(OH)                                                                               AHKO     }
+  G3H5037 = 5C+7H+7O;      {CH3CH(OOH)COCH(OH)CO(OO.)                                                                              3.HKK    }
+  GGH502C = 5C+8H+7O;      {CH3CH(OOH)COCH(OH)CO(OOH)                                                                              GHKO     }
+  GPH502Y = 5C+7H+N+9O;    {CH3CH(OOH)COCH(OH)CO(OONO2)                                                                            PHKO     }
+  G1H505g = 5C+8H+N+7O;    {CH3CH(OOH)COCH(ONO2)CH2(O.)                                                                            1.HNK    }
+  GHN503G = 5C+9H+N+7O;    {CH3CH(OOH)COCH(ONO2)CH2(OH)                                                                            HNKO     }
+  GHN503F = 5C+8H+2N+9O;   {CH3CH(OOH)COCH(ONO2)CH2(ONO2)                                                                          HNNK     }
+  GHN505y = 5C+7H+N+7O;    {CH3CH(OOH)COCH(ONO2)CHO                                                                                HNDK     }
+  GAH502P = 5C+7H+N+8O;    {CH3CH(OOH)COCH(ONO2)CO(OH)                                                                             AHNK     }
+  G3H5031 = 5C+6H+N+9O;    {CH3CH(OOH)COCH(ONO2)CO(OO.)                                                                            3.HNK    }
+  GGH502B = 5C+7H+N+9O;    {CH3CH(OOH)COCH(ONO2)CO(OOH)                                                                            GHNK     }
+  GPH502X = 5C+6H+2N+11O;  {CH3CH(OOH)COCH(ONO2)CO(OONO2)                                                                          PHNK     }
+  G2H503P = 5C+9H+6O;      {CH3CH(OOH)COCH(OO.)CH2(OH)                                                                             2.HKO    }
+  G2H502F = 5C+8H+N+8O;    {CH3CH(OOH)COCH(OO.)CH2(ONO2)                                                                           2.HNK    }
+  G2A505G = 5C+7H+7O;      {CH3CH(OOH)COCH(OO.)CO(OH)                                                                              2.AHK    }
+  G2G504F = 5C+7H+8O;      {CH3CH(OOH)COCH(OO.)CO(OOH)                                                                             2.GHK    }
+  G2P505j = 5C+6H+N+10O;   {CH3CH(OOH)COCH(OO.)CO(OONO2)                                                                           2.PHK    }
+  G1H505k = 5C+9H+6O;      {CH3CH(OOH)COCH(OOH)CH2(O.)                                                                             1.HHK    }
+  GHH502B = 5C+10H+6O;     {CH3CH(OOH)COCH(OOH)CH2(OH)                                                                             HHKO     }
+  GHH500n = 5C+9H+N+8O;    {CH3CH(OOH)COCH(OOH)CH2(ONO2)                                                                           HHNK     }
+  GHH5029 = 5C+8H+6O;      {CH3CH(OOH)COCH(OOH)CHO                                                                                 HHDK     }
+  GAH5045 = 5C+8H+7O;      {CH3CH(OOH)COCH(OOH)CO(OH)                                                                              AHHK     }
+  G3H5033 = 5C+7H+8O;      {CH3CH(OOH)COCH(OOH)CO(OO.)                                                                             3.HHK    }
+  GGH503b = 5C+8H+8O;      {CH3CH(OOH)COCH(OOH)CO(OOH)                                                                             GHHK     }
+  GPH504C = 5C+7H+N+10O;   {CH3CH(OOH)COCH(OOH)CO(OONO2)                                                                           PHHK     }
+  G1H400Y = 4C+7H+4O;      {CH3CH(OOH)COCH2(O.)                                                                                    1.HK     }
+  GHK4007 = 4C+8H+4O;      {CH3CH(OOH)COCH2(OH)                                                                                    HKO      }
+  GHN400j = 4C+7H+N+6O;    {CH3CH(OOH)COCH2(ONO2)                                                                                  HNK      }
+  G2H400T = 4C+7H+5O;      {CH3CH(OOH)COCH2(OO.)                                                                                   2.HK     }
+  GHH400P = 4C+8H+5O;      {CH3CH(OOH)COCH2(OOH)                                                                                   HHK      }
+  G1H501P = 5C+9H+4O;      {CH3CH(OOH)COCH2CH2(O.)                                                                                 1.HK     }
+  GHK5007 = 5C+10H+4O;     {CH3CH(OOH)COCH2CH2(OH)                                                                                 HKO      }
+  GHN500g = 5C+9H+N+6O;    {CH3CH(OOH)COCH2CH2(ONO2)                                                                               HNK      }
+  GHD500F = 5C+8H+4O;      {CH3CH(OOH)COCH2CHO                                                                                     HDK      }
+  GAH500S = 5C+8H+5O;      {CH3CH(OOH)COCH2CO(OH)                                                                                  AHK      }
+  G3H500M = 5C+7H+6O;      {CH3CH(OOH)COCH2CO(OO.)                                                                                 3.HKK    }
+  GGH500Q = 5C+8H+6O;      {CH3CH(OOH)COCH2CO(OOH)                                                                                 GHK      }
+  GPH500U = 5C+7H+N+8O;    {CH3CH(OOH)COCH2CO(OONO2)                                                                               PHK      }
+  GHD400I = 4C+6H+4O;      {CH3CH(OOH)COCHO                                                                                        HDK      }
+  GAH400Z = 4C+6H+5O;      {CH3CH(OOH)COCO(OH)                                                                                     AHK      }
+  G3H400r = 4C+5H+6O;      {CH3CH(OOH)COCO(OO.)                                                                                    3.HKK    }
+  GGH400X = 4C+6H+6O;      {CH3CH(OOH)COCO(OOH)                                                                                    GHK      }
+  GPH400a = 4C+5H+N+8O;    {CH3CH(OOH)COCO(OONO2)                                                                                  PHK      }
+  G1H505o = 5C+7H+5O;      {CH3CH(OOH)COCOCH2(O.)                                                                                  1.HKK    }
+  GHK500j = 5C+8H+5O;      {CH3CH(OOH)COCOCH2(OH)                                                                                  HKKO     }
+  GHN503L = 5C+7H+N+7O;    {CH3CH(OOH)COCOCH2(ONO2)                                                                                HNKK     }
+  GHD500v = 5C+6H+5O;      {CH3CH(OOH)COCOCHO                                                                                      HDKK     }
+  GAH502S = 5C+6H+6O;      {CH3CH(OOH)COCOCO(OH)                                                                                   AHKK     }
+  G3H5043 = 5C+5H+7O;      {CH3CH(OOH)COCOCO(OO.)                                                                                  3.HKK    }
+  GGH502E = 5C+6H+7O;      {CH3CH(OOH)COCOCO(OOH)                                                                                  GHKK     }
+  GPH502a = 5C+5H+N+9O;    {CH3CH(OOH)COCOCO(OONO2)                                                                                PHKK     }
+  G102000 = 2C+5H+O;       {CH3CH2(O.)                                                                                             1.       }
+  GO02000 = 2C+6H+O;       {CH3CH2(OH)                                                                                             O        }
+  GN02000 = 2C+5H+N+3O;    {CH3CH2(ONO2)                                                                                           N        }
+  G202000 = 2C+5H+2O;      {CH3CH2(OO.)                                                                                            2.       }
+  GH02000 = 2C+6H+2O;      {CH3CH2(OOH)                                                                                            H        }
+  G1O500L = 5C+11H+3O;     {CH3CH2CH(O.)CH(OH)CH2(OH)                                                                              1.OO     }
+  G1N500i = 5C+10H+N+5O;   {CH3CH2CH(O.)CH(OH)CH2(ONO2)                                                                            1.NO     }
+  G1H503B = 5C+11H+4O;     {CH3CH2CH(O.)CH(OH)CH2(OOH)                                                                             1.HO     }
+  G1D500U = 5C+9H+3O;      {CH3CH2CH(O.)CH(OH)CHO                                                                                  1.DO     }
+  G1A500Z = 5C+9H+4O;      {CH3CH2CH(O.)CH(OH)CO(OH)                                                                               1.AO     }
+  G1G500T = 5C+9H+5O;      {CH3CH2CH(O.)CH(OH)CO(OOH)                                                                              1.GO     }
+  G1P500a = 5C+8H+N+7O;    {CH3CH2CH(O.)CH(OH)CO(OONO2)                                                                            1.PO     }
+  G1N5011 = 5C+10H+N+5O;   {CH3CH2CH(O.)CH(ONO2)CH2(OH)                                                                            1.NO     }
+  G1N500f = 5C+9H+2N+7O;   {CH3CH2CH(O.)CH(ONO2)CH2(ONO2)                                                                          1.NN     }
+  G1H502w = 5C+10H+N+6O;   {CH3CH2CH(O.)CH(ONO2)CH2(OOH)                                                                           1.HN     }
+  G1N503i = 5C+8H+N+5O;    {CH3CH2CH(O.)CH(ONO2)CHO                                                                                1.ND     }
+  G1A500W = 5C+8H+N+6O;    {CH3CH2CH(O.)CH(ONO2)CO(OH)                                                                             1.AN     }
+  G1G500R = 5C+8H+N+7O;    {CH3CH2CH(O.)CH(ONO2)CO(OOH)                                                                            1.GN     }
+  G1P500Y = 5C+7H+2N+9O;   {CH3CH2CH(O.)CH(ONO2)CO(OONO2)                                                                          1.PN     }
+  G1H502d = 5C+11H+4O;     {CH3CH2CH(O.)CH(OOH)CH2(OH)                                                                             1.HO     }
+  G1H500C = 5C+10H+N+6O;   {CH3CH2CH(O.)CH(OOH)CH2(ONO2)                                                                           1.HN     }
+  G1H502Y = 5C+9H+4O;      {CH3CH2CH(O.)CH(OOH)CHO                                                                                 1.HD     }
+  G1A500X = 5C+9H+5O;      {CH3CH2CH(O.)CH(OOH)CO(OH)                                                                              1.AH     }
+  G1G503s = 5C+9H+6O;      {CH3CH2CH(O.)CH(OOH)CO(OOH)                                                                             1.GH     }
+  G1P501t = 5C+8H+N+8O;    {CH3CH2CH(O.)CH(OOH)CO(OONO2)                                                                           1.PH     }
+  G1O4006 = 4C+9H+2O;      {CH3CH2CH(O.)CH2(OH)                                                                                    1.O      }
+  G1N4005 = 4C+8H+N+4O;    {CH3CH2CH(O.)CH2(ONO2)                                                                                  1.N      }
+  G1H4004 = 4C+9H+3O;      {CH3CH2CH(O.)CH2(OOH)                                                                                   1.H      }
+  G1O5002 = 5C+11H+2O;     {CH3CH2CH(O.)CH2CH2(OH)                                                                                 1.O      }
+  G1N5002 = 5C+10H+N+4O;   {CH3CH2CH(O.)CH2CH2(ONO2)                                                                               1.N      }
+  G1H5000 = 5C+11H+3O;     {CH3CH2CH(O.)CH2CH2(OOH)                                                                                1.H      }
+  G105002 = 5C+11H+O;      {CH3CH2CH(O.)CH2CH3                                                                                     1.       }
+  G1D5000 = 5C+9H+2O;      {CH3CH2CH(O.)CH2CHO                                                                                     1.D      }
+  G1A5001 = 5C+9H+3O;      {CH3CH2CH(O.)CH2CO(OH)                                                                                  1.A      }
+  G1G5001 = 5C+9H+4O;      {CH3CH2CH(O.)CH2CO(OOH)                                                                                 1.G      }
+  G1P5001 = 5C+8H+N+6O;    {CH3CH2CH(O.)CH2CO(OONO2)                                                                               1.P      }
+  G1D4008 = 4C+7H+2O;      {CH3CH2CH(O.)CHO                                                                                        1.D      }
+  G1A4007 = 4C+7H+3O;      {CH3CH2CH(O.)CO(OH)                                                                                     1.A      }
+  G1G4007 = 4C+7H+4O;      {CH3CH2CH(O.)CO(OOH)                                                                                    1.G      }
+  G1P4007 = 4C+6H+N+6O;    {CH3CH2CH(O.)CO(OONO2)                                                                                  1.P      }
+  G1K500D = 5C+9H+3O;      {CH3CH2CH(O.)COCH2(OH)                                                                                  1.KO     }
+  G1N500k = 5C+8H+N+5O;    {CH3CH2CH(O.)COCH2(ONO2)                                                                                1.NK     }
+  G1H503H = 5C+9H+4O;      {CH3CH2CH(O.)COCH2(OOH)                                                                                 1.HK     }
+  G1K5001 = 5C+9H+2O;      {CH3CH2CH(O.)COCH3                                                                                      1.K      }
+  G1D500c = 5C+7H+3O;      {CH3CH2CH(O.)COCHO                                                                                      1.DK     }
+  G1A500b = 5C+7H+4O;      {CH3CH2CH(O.)COCO(OH)                                                                                   1.AK     }
+  G1G500W = 5C+7H+5O;      {CH3CH2CH(O.)COCO(OOH)                                                                                  1.GK     }
+  G1P500c = 5C+6H+N+7O;    {CH3CH2CH(O.)COCO(OONO2)                                                                                1.PK     }
+  G1O500K = 5C+11H+3O;     {CH3CH2CH(OH)CH(O.)CH2(OH)                                                                              1.OO     }
+  G1N5031 = 5C+10H+N+5O;   {CH3CH2CH(OH)CH(O.)CH2(ONO2)                                                                            1.NO     }
+  G1O5008 = 5C+11H+2O;     {CH3CH2CH(OH)CH(O.)CH3                                                                                  1.O      }
+  G1D5016 = 5C+9H+3O;      {CH3CH2CH(OH)CH(O.)CHO                                                                                  1.DO     }
+  G1A502R = 5C+9H+4O;      {CH3CH2CH(OH)CH(O.)CO(OH)                                                                               1.AO     }
+  G1G500G = 5C+9H+5O;      {CH3CH2CH(OH)CH(O.)CO(OOH)                                                                              1.GO     }
+  G1P500L = 5C+8H+N+7O;    {CH3CH2CH(OH)CH(O.)CO(OONO2)                                                                            1.PO     }
+  G1O500U = 5C+11H+3O;     {CH3CH2CH(OH)CH(OH)CH2(O.)                                                                              1.OO     }
+  GOO5009 = 5C+12H+3O;     {CH3CH2CH(OH)CH(OH)CH2(OH)                                                                              OOO      }
+  GNO500L = 5C+11H+N+5O;   {CH3CH2CH(OH)CH(OH)CH2(ONO2)                                                                            NOO      }
+  GOO5005 = 5C+12H+2O;     {CH3CH2CH(OH)CH(OH)CH3                                                                                  OO       }
+  GDO500C = 5C+10H+3O;     {CH3CH2CH(OH)CH(OH)CHO                                                                                  DOO      }
+  GAO5009 = 5C+10H+4O;     {CH3CH2CH(OH)CH(OH)CO(OH)                                                                               AOO      }
+  G3K500W = 5C+9H+5O;      {CH3CH2CH(OH)CH(OH)CO(OO.)                                                                              3.KOO    }
+  GGO5009 = 5C+10H+5O;     {CH3CH2CH(OH)CH(OH)CO(OOH)                                                                              GOO      }
+  GPO5009 = 5C+9H+N+7O;    {CH3CH2CH(OH)CH(OH)CO(OONO2)                                                                            POO      }
+  G1N5032 = 5C+10H+N+5O;   {CH3CH2CH(OH)CH(ONO2)CH2(O.)                                                                            1.NO     }
+  GNO500Q = 5C+11H+N+5O;   {CH3CH2CH(OH)CH(ONO2)CH2(OH)                                                                            NOO      }
+  GNN500i = 5C+10H+2N+7O;  {CH3CH2CH(OH)CH(ONO2)CH2(ONO2)                                                                          NNO      }
+  GNO500A = 5C+11H+N+4O;   {CH3CH2CH(OH)CH(ONO2)CH3                                                                                NO       }
+  GND500w = 5C+9H+N+5O;    {CH3CH2CH(OH)CH(ONO2)CHO                                                                                NDO      }
+  GAN500l = 5C+9H+N+6O;    {CH3CH2CH(OH)CH(ONO2)CO(OH)                                                                             ANO      }
+  G3N501G = 5C+8H+N+7O;    {CH3CH2CH(OH)CH(ONO2)CO(OO.)                                                                            3.NKO    }
+  GGN500S = 5C+9H+N+7O;    {CH3CH2CH(OH)CH(ONO2)CO(OOH)                                                                            GNO      }
+  GPN500d = 5C+8H+2N+9O;   {CH3CH2CH(OH)CH(ONO2)CO(OONO2)                                                                          PNO      }
+  G2O500J = 5C+11H+4O;     {CH3CH2CH(OH)CH(OO.)CH2(OH)                                                                             2.OO     }
+  G2N502k = 5C+10H+N+6O;   {CH3CH2CH(OH)CH(OO.)CH2(ONO2)                                                                           2.NO     }
+  G2O5008 = 5C+11H+3O;     {CH3CH2CH(OH)CH(OO.)CH3                                                                                 2.O      }
+  G2A5026 = 5C+9H+5O;      {CH3CH2CH(OH)CH(OO.)CO(OH)                                                                              2.AO     }
+  G2G500F = 5C+9H+6O;      {CH3CH2CH(OH)CH(OO.)CO(OOH)                                                                             2.GO     }
+  G2P500K = 5C+8H+N+8O;    {CH3CH2CH(OH)CH(OO.)CO(OONO2)                                                                           2.PO     }
+  G1H501m = 5C+11H+4O;     {CH3CH2CH(OH)CH(OOH)CH2(O.)                                                                             1.HO     }
+  GHO500J = 5C+12H+4O;     {CH3CH2CH(OH)CH(OOH)CH2(OH)                                                                             HOO      }
+  GHN500n = 5C+11H+N+6O;   {CH3CH2CH(OH)CH(OOH)CH2(ONO2)                                                                           HNO      }
+  GHO500B = 5C+12H+3O;     {CH3CH2CH(OH)CH(OOH)CH3                                                                                 HO       }
+  GHD500j = 5C+10H+4O;     {CH3CH2CH(OH)CH(OOH)CHO                                                                                 HDO      }
+  GAH500e = 5C+10H+5O;     {CH3CH2CH(OH)CH(OOH)CO(OH)                                                                              AHO      }
+  G3H501S = 5C+9H+6O;      {CH3CH2CH(OH)CH(OOH)CO(OO.)                                                                             3.HKO    }
+  GGH500N = 5C+10H+6O;     {CH3CH2CH(OH)CH(OOH)CO(OOH)                                                                             GHO      }
+  GPH500R = 5C+9H+N+8O;    {CH3CH2CH(OH)CH(OOH)CO(OONO2)                                                                           PHO      }
+  G1O4004 = 4C+9H+2O;      {CH3CH2CH(OH)CH2(O.)                                                                                    1.O      }
+  GOO4003 = 4C+10H+2O;     {CH3CH2CH(OH)CH2(OH)                                                                                    OO       }
+  GNO4006 = 4C+9H+N+4O;    {CH3CH2CH(OH)CH2(ONO2)                                                                                  NO       }
+  G2O4004 = 4C+9H+3O;      {CH3CH2CH(OH)CH2(OO.)                                                                                   2.O      }
+  GHO4006 = 4C+10H+3O;     {CH3CH2CH(OH)CH2(OOH)                                                                                   HO       }
+  G1O500E = 5C+11H+2O;     {CH3CH2CH(OH)CH2CH2(O.)                                                                                 1.O      }
+  GOO5001 = 5C+12H+2O;     {CH3CH2CH(OH)CH2CH2(OH)                                                                                 OO       }
+  GNO5003 = 5C+11H+N+4O;   {CH3CH2CH(OH)CH2CH2(ONO2)                                                                               NO       }
+  G2O500G = 5C+11H+3O;     {CH3CH2CH(OH)CH2CH2(OO.)                                                                                2.O      }
+  GHO5002 = 5C+12H+3O;     {CH3CH2CH(OH)CH2CH2(OOH)                                                                                HO       }
+  GO05002 = 5C+12H+O;      {CH3CH2CH(OH)CH2CH3                                                                                     O        }
+  GDO5002 = 5C+10H+2O;     {CH3CH2CH(OH)CH2CHO                                                                                     DO       }
+  GAO5002 = 5C+10H+3O;     {CH3CH2CH(OH)CH2CO(OH)                                                                                  AO       }
+  G3K5003 = 5C+9H+4O;      {CH3CH2CH(OH)CH2CO(OO.)                                                                                 3.KO     }
+  GGO5002 = 5C+10H+4O;     {CH3CH2CH(OH)CH2CO(OOH)                                                                                 GO       }
+  GPO5002 = 5C+9H+N+6O;    {CH3CH2CH(OH)CH2CO(OONO2)                                                                               PO       }
+  GDO4004 = 4C+8H+2O;      {CH3CH2CH(OH)CHO                                                                                        DO       }
+  GAO4002 = 4C+8H+3O;      {CH3CH2CH(OH)CO(OH)                                                                                     AO       }
+  G3K4004 = 4C+7H+4O;      {CH3CH2CH(OH)CO(OO.)                                                                                    3.KO     }
+  GGO4002 = 4C+8H+4O;      {CH3CH2CH(OH)CO(OOH)                                                                                    GO       }
+  GPO4002 = 4C+7H+N+6O;    {CH3CH2CH(OH)CO(OONO2)                                                                                  PO       }
+  G1K500Z = 5C+9H+3O;      {CH3CH2CH(OH)COCH2(O.)                                                                                  1.KO     }
+  GKO500C = 5C+10H+3O;     {CH3CH2CH(OH)COCH2(OH)                                                                                  KOO      }
+  GNK500M = 5C+9H+N+5O;    {CH3CH2CH(OH)COCH2(ONO2)                                                                                NKO      }
+  GKO5007 = 5C+10H+2O;     {CH3CH2CH(OH)COCH3                                                                                      KO       }
+  GDK500O = 5C+8H+3O;      {CH3CH2CH(OH)COCHO                                                                                      DKO      }
+  GAK500I = 5C+8H+4O;      {CH3CH2CH(OH)COCO(OH)                                                                                   AKO      }
+  G3K500Z = 5C+7H+5O;      {CH3CH2CH(OH)COCO(OO.)                                                                                  3.KKO    }
+  GGK500A = 5C+8H+5O;      {CH3CH2CH(OH)COCO(OOH)                                                                                  GKO      }
+  GPK500A = 5C+7H+N+7O;    {CH3CH2CH(OH)COCO(OONO2)                                                                                PKO      }
+  G1N500x = 5C+10H+N+5O;   {CH3CH2CH(ONO2)CH(O.)CH2(OH)                                                                            1.NO     }
+  G1N500U = 5C+9H+2N+7O;   {CH3CH2CH(ONO2)CH(O.)CH2(ONO2)                                                                          1.NN     }
+  G1H502x = 5C+10H+N+6O;   {CH3CH2CH(ONO2)CH(O.)CH2(OOH)                                                                           1.HN     }
+  G1N500B = 5C+10H+N+4O;   {CH3CH2CH(ONO2)CH(O.)CH3                                                                                1.N      }
+  G1N503j = 5C+8H+N+5O;    {CH3CH2CH(ONO2)CH(O.)CHO                                                                                1.ND     }
+  G1A500H = 5C+8H+N+6O;    {CH3CH2CH(ONO2)CH(O.)CO(OH)                                                                             1.AN     }
+  G1G501r = 5C+8H+N+7O;    {CH3CH2CH(ONO2)CH(O.)CO(OOH)                                                                            1.GN     }
+  G1P500H = 5C+7H+2N+9O;   {CH3CH2CH(ONO2)CH(O.)CO(OONO2)                                                                          1.PN     }
+  G1N501K = 5C+10H+N+5O;   {CH3CH2CH(ONO2)CH(OH)CH2(O.)                                                                            1.NO     }
+  GNO500O = 5C+11H+N+5O;   {CH3CH2CH(ONO2)CH(OH)CH2(OH)                                                                            NOO      }
+  GNN500Z = 5C+10H+2N+7O;  {CH3CH2CH(ONO2)CH(OH)CH2(ONO2)                                                                          NNO      }
+  G2N501I = 5C+10H+N+6O;   {CH3CH2CH(ONO2)CH(OH)CH2(OO.)                                                                           2.NO     }
+  GHN501e = 5C+11H+N+6O;   {CH3CH2CH(ONO2)CH(OH)CH2(OOH)                                                                           HNO      }
+  GND500O = 5C+9H+N+5O;    {CH3CH2CH(ONO2)CH(OH)CHO                                                                                NDO      }
+  GAN500U = 5C+9H+N+6O;    {CH3CH2CH(ONO2)CH(OH)CO(OH)                                                                             ANO      }
+  G3N500S = 5C+8H+N+7O;    {CH3CH2CH(ONO2)CH(OH)CO(OO.)                                                                            3.NKO    }
+  GGN500d = 5C+9H+N+7O;    {CH3CH2CH(ONO2)CH(OH)CO(OOH)                                                                            GNO      }
+  GPN500U = 5C+8H+2N+9O;   {CH3CH2CH(ONO2)CH(OH)CO(OONO2)                                                                          PNO      }
+  G1N501A = 5C+9H+2N+7O;   {CH3CH2CH(ONO2)CH(ONO2)CH2(O.)                                                                          1.NN     }
+  GNN500q = 5C+10H+2N+7O;  {CH3CH2CH(ONO2)CH(ONO2)CH2(OH)                                                                          NNO      }
+  GNN500Y = 5C+9H+3N+9O;   {CH3CH2CH(ONO2)CH(ONO2)CH2(ONO2)                                                                        NNN      }
+  G2N5019 = 5C+9H+2N+8O;   {CH3CH2CH(ONO2)CH(ONO2)CH2(OO.)                                                                         2.NN     }
+  GHN501W = 5C+10H+2N+8O;  {CH3CH2CH(ONO2)CH(ONO2)CH2(OOH)                                                                         HNN      }
+  GNN5007 = 5C+10H+2N+6O;  {CH3CH2CH(ONO2)CH(ONO2)CH3                                                                              NN       }
+  GNN500z = 5C+8H+2N+7O;   {CH3CH2CH(ONO2)CH(ONO2)CHO                                                                              NND      }
+  GAN500T = 5C+8H+2N+8O;   {CH3CH2CH(ONO2)CH(ONO2)CO(OH)                                                                           ANN      }
+  G3N500P = 5C+7H+2N+9O;   {CH3CH2CH(ONO2)CH(ONO2)CO(OO.)                                                                          3.NNK    }
+  GGN500c = 5C+8H+2N+9O;   {CH3CH2CH(ONO2)CH(ONO2)CO(OOH)                                                                          GNN      }
+  GPN500T = 5C+7H+3N+11O;  {CH3CH2CH(ONO2)CH(ONO2)CO(OONO2)                                                                        PNN      }
+  G2N500w = 5C+10H+N+6O;   {CH3CH2CH(ONO2)CH(OO.)CH2(OH)                                                                           2.NO     }
+  G2N500U = 5C+9H+2N+8O;   {CH3CH2CH(ONO2)CH(OO.)CH2(ONO2)                                                                         2.NN     }
+  G2N500B = 5C+10H+N+5O;   {CH3CH2CH(ONO2)CH(OO.)CH3                                                                               2.N      }
+  G2N5056 = 5C+8H+N+6O;    {CH3CH2CH(ONO2)CH(OO.)CHO                                                                               2.ND     }
+  G2A500G = 5C+8H+N+7O;    {CH3CH2CH(ONO2)CH(OO.)CO(OH)                                                                            2.AN     }
+  G2G502n = 5C+8H+N+8O;    {CH3CH2CH(ONO2)CH(OO.)CO(OOH)                                                                           2.GN     }
+  G2P500G = 5C+7H+2N+10O;  {CH3CH2CH(ONO2)CH(OO.)CO(OONO2)                                                                         2.PN     }
+  G1H501I = 5C+10H+N+6O;   {CH3CH2CH(ONO2)CH(OOH)CH2(O.)                                                                           1.HN     }
+  GHN501I = 5C+11H+N+6O;   {CH3CH2CH(ONO2)CH(OOH)CH2(OH)                                                                           HNO      }
+  GHN500b = 5C+10H+2N+8O;  {CH3CH2CH(ONO2)CH(OOH)CH2(ONO2)                                                                         HNN      }
+  GHN500D = 5C+11H+N+5O;   {CH3CH2CH(ONO2)CH(OOH)CH3                                                                               HN       }
+  GHN5044 = 5C+9H+N+6O;    {CH3CH2CH(ONO2)CH(OOH)CHO                                                                               HND      }
+  GAH500N = 5C+9H+N+7O;    {CH3CH2CH(ONO2)CH(OOH)CO(OH)                                                                            AHN      }
+  G3H501Q = 5C+8H+N+8O;    {CH3CH2CH(ONO2)CH(OOH)CO(OO.)                                                                           3.HNK    }
+  GGH501l = 5C+9H+N+8O;    {CH3CH2CH(ONO2)CH(OOH)CO(OOH)                                                                           GHN      }
+  GPH500N = 5C+8H+2N+10O;  {CH3CH2CH(ONO2)CH(OOH)CO(OONO2)                                                                         PHN      }
+  G1N4002 = 4C+8H+N+4O;    {CH3CH2CH(ONO2)CH2(O.)                                                                                  1.N      }
+  GNO4004 = 4C+9H+N+4O;    {CH3CH2CH(ONO2)CH2(OH)                                                                                  NO       }
+  GNN4003 = 4C+8H+2N+6O;   {CH3CH2CH(ONO2)CH2(ONO2)                                                                                NN       }
+  G2N4002 = 4C+8H+N+5O;    {CH3CH2CH(ONO2)CH2(OO.)                                                                                 2.N      }
+  GHN4004 = 4C+9H+N+5O;    {CH3CH2CH(ONO2)CH2(OOH)                                                                                 HN       }
+  G1N500A = 5C+10H+N+4O;   {CH3CH2CH(ONO2)CH2CH2(O.)                                                                               1.N      }
+  GNO5006 = 5C+11H+N+4O;   {CH3CH2CH(ONO2)CH2CH2(OH)                                                                               NO       }
+  GNN5002 = 5C+10H+2N+6O;  {CH3CH2CH(ONO2)CH2CH2(ONO2)                                                                             NN       }
+  G2N500A = 5C+10H+N+5O;   {CH3CH2CH(ONO2)CH2CH2(OO.)                                                                              2.N      }
+  GHN5006 = 5C+11H+N+5O;   {CH3CH2CH(ONO2)CH2CH2(OOH)                                                                              HN       }
+  GN05002 = 5C+11H+N+3O;   {CH3CH2CH(ONO2)CH2CH3                                                                                   N        }
+  GND5002 = 5C+9H+N+4O;    {CH3CH2CH(ONO2)CH2CHO                                                                                   ND       }
+  GAN5002 = 5C+9H+N+5O;    {CH3CH2CH(ONO2)CH2CO(OH)                                                                                AN       }
+  G3N5002 = 5C+8H+N+6O;    {CH3CH2CH(ONO2)CH2CO(OO.)                                                                               3.NK     }
+  GGN5002 = 5C+9H+N+6O;    {CH3CH2CH(ONO2)CH2CO(OOH)                                                                               GN       }
+  GPN5002 = 5C+8H+2N+8O;   {CH3CH2CH(ONO2)CH2CO(OONO2)                                                                             PN       }
+  GND4005 = 4C+7H+N+4O;    {CH3CH2CH(ONO2)CHO                                                                                      ND       }
+  GAN4004 = 4C+7H+N+5O;    {CH3CH2CH(ONO2)CO(OH)                                                                                   AN       }
+  G3N4004 = 4C+6H+N+6O;    {CH3CH2CH(ONO2)CO(OO.)                                                                                  3.NK     }
+  GGN4004 = 4C+7H+N+6O;    {CH3CH2CH(ONO2)CO(OOH)                                                                                  GN       }
+  GPN4004 = 4C+6H+2N+8O;   {CH3CH2CH(ONO2)CO(OONO2)                                                                                PN       }
+  G1N501Q = 5C+8H+N+5O;    {CH3CH2CH(ONO2)COCH2(O.)                                                                                1.NK     }
+  GNK500T = 5C+9H+N+5O;    {CH3CH2CH(ONO2)COCH2(OH)                                                                                NKO      }
+  GNN500a = 5C+8H+2N+7O;   {CH3CH2CH(ONO2)COCH2(ONO2)                                                                              NNK      }
+  G2N501O = 5C+8H+N+6O;    {CH3CH2CH(ONO2)COCH2(OO.)                                                                               2.NK     }
+  GHN501k = 5C+9H+N+6O;    {CH3CH2CH(ONO2)COCH2(OOH)                                                                               HNK      }
+  GNK5007 = 5C+9H+N+4O;    {CH3CH2CH(ONO2)COCH3                                                                                    NK       }
+  GND500R = 5C+7H+N+5O;    {CH3CH2CH(ONO2)COCHO                                                                                    NDK      }
+  GAN500W = 5C+7H+N+6O;    {CH3CH2CH(ONO2)COCO(OH)                                                                                 ANK      }
+  G3N501I = 5C+6H+N+7O;    {CH3CH2CH(ONO2)COCO(OO.)                                                                                3.NKK    }
+  GGN500e = 5C+7H+N+7O;    {CH3CH2CH(ONO2)COCO(OOH)                                                                                GNK      }
+  GPN500W = 5C+6H+2N+9O;   {CH3CH2CH(ONO2)COCO(OONO2)                                                                              PNK      }
+  G2O500K = 5C+11H+4O;     {CH3CH2CH(OO.)CH(OH)CH2(OH)                                                                             2.OO     }
+  G2N500h = 5C+10H+N+6O;   {CH3CH2CH(OO.)CH(OH)CH2(ONO2)                                                                           2.NO     }
+  G2D500M = 5C+9H+4O;      {CH3CH2CH(OO.)CH(OH)CHO                                                                                 2.DO     }
+  G2A500Y = 5C+9H+5O;      {CH3CH2CH(OO.)CH(OH)CO(OH)                                                                              2.AO     }
+  G2G500S = 5C+9H+6O;      {CH3CH2CH(OO.)CH(OH)CO(OOH)                                                                             2.GO     }
+  G2P500Z = 5C+8H+N+8O;    {CH3CH2CH(OO.)CH(OH)CO(OONO2)                                                                           2.PO     }
+  G2N500z = 5C+10H+N+6O;   {CH3CH2CH(OO.)CH(ONO2)CH2(OH)                                                                           2.NO     }
+  G2N500e = 5C+9H+2N+8O;   {CH3CH2CH(OO.)CH(ONO2)CH2(ONO2)                                                                         2.NN     }
+  G2N505A = 5C+8H+N+6O;    {CH3CH2CH(OO.)CH(ONO2)CHO                                                                               2.ND     }
+  G2A500U = 5C+8H+N+7O;    {CH3CH2CH(OO.)CH(ONO2)CO(OH)                                                                            2.AN     }
+  G2G500Q = 5C+8H+N+8O;    {CH3CH2CH(OO.)CH(ONO2)CO(OOH)                                                                           2.GN     }
+  G2P500X = 5C+7H+2N+10O;  {CH3CH2CH(OO.)CH(ONO2)CO(OONO2)                                                                         2.PN     }
+  G2H5008 = 5C+10H+N+7O;   {CH3CH2CH(OO.)CH(OOH)CH2(ONO2)                                                                          2.HN     }
+  G2H501P = 5C+9H+5O;      {CH3CH2CH(OO.)CH(OOH)CHO                                                                                2.HD     }
+  G2A500W = 5C+9H+6O;      {CH3CH2CH(OO.)CH(OOH)CO(OH)                                                                             2.AH     }
+  G2O4006 = 4C+9H+3O;      {CH3CH2CH(OO.)CH2(OH)                                                                                   2.O      }
+  G2N4005 = 4C+8H+N+5O;    {CH3CH2CH(OO.)CH2(ONO2)                                                                                 2.N      }
+  G2H4004 = 4C+9H+4O;      {CH3CH2CH(OO.)CH2(OOH)                                                                                  2.H      }
+  G2O5002 = 5C+11H+3O;     {CH3CH2CH(OO.)CH2CH2(OH)                                                                                2.O      }
+  G2N5002 = 5C+10H+N+5O;   {CH3CH2CH(OO.)CH2CH2(ONO2)                                                                              2.N      }
+  G2H5000 = 5C+11H+4O;     {CH3CH2CH(OO.)CH2CH2(OOH)                                                                               2.H      }
+  G205002 = 5C+11H+2O;     {CH3CH2CH(OO.)CH2CH3                                                                                    2.       }
+  G2D5000 = 5C+9H+3O;      {CH3CH2CH(OO.)CH2CHO                                                                                    2.D      }
+  G2A5001 = 5C+9H+4O;      {CH3CH2CH(OO.)CH2CO(OH)                                                                                 2.A      }
+  G2G5001 = 5C+9H+5O;      {CH3CH2CH(OO.)CH2CO(OOH)                                                                                2.G      }
+  G2P5001 = 5C+8H+N+7O;    {CH3CH2CH(OO.)CH2CO(OONO2)                                                                              2.P      }
+  G2D4006 = 4C+7H+3O;      {CH3CH2CH(OO.)CHO                                                                                       2.D      }
+  G2A4006 = 4C+7H+4O;      {CH3CH2CH(OO.)CO(OH)                                                                                    2.A      }
+  G2G4005 = 4C+7H+5O;      {CH3CH2CH(OO.)CO(OOH)                                                                                   2.G      }
+  G2P4006 = 4C+6H+N+7O;    {CH3CH2CH(OO.)CO(OONO2)                                                                                 2.P      }
+  G2K500C = 5C+9H+4O;      {CH3CH2CH(OO.)COCH2(OH)                                                                                 2.KO     }
+  G2N500j = 5C+8H+N+6O;    {CH3CH2CH(OO.)COCH2(ONO2)                                                                               2.NK     }
+  G2K5001 = 5C+9H+3O;      {CH3CH2CH(OO.)COCH3                                                                                     2.K      }
+  G2D500i = 5C+7H+4O;      {CH3CH2CH(OO.)COCHO                                                                                     2.DK     }
+  G2A500a = 5C+7H+5O;      {CH3CH2CH(OO.)COCO(OH)                                                                                  2.AK     }
+  G2G500U = 5C+7H+6O;      {CH3CH2CH(OO.)COCO(OOH)                                                                                 2.GK     }
+  G2P500b = 5C+6H+N+8O;    {CH3CH2CH(OO.)COCO(OONO2)                                                                               2.PK     }
+  G1H502g = 5C+11H+4O;     {CH3CH2CH(OOH)CH(O.)CH2(OH)                                                                             1.HO     }
+  G1H501b = 5C+10H+N+6O;   {CH3CH2CH(OOH)CH(O.)CH2(ONO2)                                                                           1.HN     }
+  G1H500W = 5C+11H+3O;     {CH3CH2CH(OOH)CH(O.)CH3                                                                                 1.H      }
+  G1H5075 = 5C+9H+4O;      {CH3CH2CH(OOH)CH(O.)CHO                                                                                 1.HD     }
+  G1A502O = 5C+9H+5O;      {CH3CH2CH(OOH)CH(O.)CO(OH)                                                                              1.AH     }
+  G1G501u = 5C+9H+6O;      {CH3CH2CH(OOH)CH(O.)CO(OOH)                                                                             1.GH     }
+  G1P502f = 5C+8H+N+8O;    {CH3CH2CH(OOH)CH(O.)CO(OONO2)                                                                           1.PH     }
+  G1H501q = 5C+11H+4O;     {CH3CH2CH(OOH)CH(OH)CH2(O.)                                                                             1.HO     }
+  GHO500K = 5C+12H+4O;     {CH3CH2CH(OOH)CH(OH)CH2(OH)                                                                             HOO      }
+  GHN500p = 5C+11H+N+6O;   {CH3CH2CH(OOH)CH(OH)CH2(ONO2)                                                                           HNO      }
+  GHD500k = 5C+10H+4O;     {CH3CH2CH(OOH)CH(OH)CHO                                                                                 HDO      }
+  GAH500g = 5C+10H+5O;     {CH3CH2CH(OOH)CH(OH)CO(OH)                                                                              AHO      }
+  G3H501T = 5C+9H+6O;      {CH3CH2CH(OOH)CH(OH)CO(OO.)                                                                             3.HKO    }
+  GGH500b = 5C+10H+6O;     {CH3CH2CH(OOH)CH(OH)CO(OOH)                                                                             GHO      }
+  GPH500g = 5C+9H+N+8O;    {CH3CH2CH(OOH)CH(OH)CO(OONO2)                                                                           PHO      }
+  G1H501c = 5C+10H+N+6O;   {CH3CH2CH(OOH)CH(ONO2)CH2(O.)                                                                           1.HN     }
+  GHN501L = 5C+11H+N+6O;   {CH3CH2CH(OOH)CH(ONO2)CH2(OH)                                                                           HNO      }
+  GHN500k = 5C+10H+2N+8O;  {CH3CH2CH(OOH)CH(ONO2)CH2(ONO2)                                                                         HNN      }
+  GHN504D = 5C+9H+N+6O;    {CH3CH2CH(OOH)CH(ONO2)CHO                                                                               HND      }
+  GAH500c = 5C+9H+N+7O;    {CH3CH2CH(OOH)CH(ONO2)CO(OH)                                                                            AHN      }
+  G3H501g = 5C+8H+N+8O;    {CH3CH2CH(OOH)CH(ONO2)CO(OO.)                                                                           3.HNK    }
+  GGH500Z = 5C+9H+N+8O;    {CH3CH2CH(OOH)CH(ONO2)CO(OOH)                                                                           GHN      }
+  GPH500e = 5C+8H+2N+10O;  {CH3CH2CH(OOH)CH(ONO2)CO(OONO2)                                                                         PHN      }
+  G2H5012 = 5C+10H+N+7O;   {CH3CH2CH(OOH)CH(OO.)CH2(ONO2)                                                                          2.HN     }
+  G2A5025 = 5C+9H+6O;      {CH3CH2CH(OOH)CH(OO.)CO(OH)                                                                             2.AH     }
+  G1H501k = 5C+11H+5O;     {CH3CH2CH(OOH)CH(OOH)CH2(O.)                                                                            1.HH     }
+  GHH5008 = 5C+11H+N+7O;   {CH3CH2CH(OOH)CH(OOH)CH2(ONO2)                                                                          HHN      }
+  GHH501P = 5C+10H+5O;     {CH3CH2CH(OOH)CH(OOH)CHO                                                                                HHD      }
+  GAH500d = 5C+10H+6O;     {CH3CH2CH(OOH)CH(OOH)CO(OH)                                                                             AHH      }
+  G3H501R = 5C+9H+7O;      {CH3CH2CH(OOH)CH(OOH)CO(OO.)                                                                            3.HHK    }
+  GGH501m = 5C+10H+7O;     {CH3CH2CH(OOH)CH(OOH)CO(OOH)                                                                            GHH      }
+  GPH501r = 5C+9H+N+9O;    {CH3CH2CH(OOH)CH(OOH)CO(OONO2)                                                                          PHH      }
+  G1H4001 = 4C+9H+3O;      {CH3CH2CH(OOH)CH2(O.)                                                                                   1.H      }
+  GHO4004 = 4C+10H+3O;     {CH3CH2CH(OOH)CH2(OH)                                                                                   HO       }
+  GHN4006 = 4C+9H+N+5O;    {CH3CH2CH(OOH)CH2(ONO2)                                                                                 HN       }
+  G2H4001 = 4C+9H+4O;      {CH3CH2CH(OOH)CH2(OO.)                                                                                  2.H      }
+  GHH4001 = 4C+10H+4O;     {CH3CH2CH(OOH)CH2(OOH)                                                                                  HH       }
+  G1H5008 = 5C+11H+3O;     {CH3CH2CH(OOH)CH2CH2(O.)                                                                                1.H      }
+  GHO5005 = 5C+12H+3O;     {CH3CH2CH(OOH)CH2CH2(OH)                                                                                HO       }
+  GHN5002 = 5C+11H+N+5O;   {CH3CH2CH(OOH)CH2CH2(ONO2)                                                                              HN       }
+  G2H500G = 5C+11H+4O;     {CH3CH2CH(OOH)CH2CH2(OO.)                                                                               2.H      }
+  GHH5000 = 5C+12H+4O;     {CH3CH2CH(OOH)CH2CH2(OOH)                                                                               HH       }
+  GH05002 = 5C+12H+2O;     {CH3CH2CH(OOH)CH2CH3                                                                                    H        }
+  GHD5001 = 5C+10H+3O;     {CH3CH2CH(OOH)CH2CHO                                                                                    HD       }
+  GAH5001 = 5C+10H+4O;     {CH3CH2CH(OOH)CH2CO(OH)                                                                                 AH       }
+  G3H5001 = 5C+9H+5O;      {CH3CH2CH(OOH)CH2CO(OO.)                                                                                3.HK     }
+  GGH5001 = 5C+10H+5O;     {CH3CH2CH(OOH)CH2CO(OOH)                                                                                GH       }
+  GPH5001 = 5C+9H+N+7O;    {CH3CH2CH(OOH)CH2CO(OONO2)                                                                              PH       }
+  GHD4005 = 4C+8H+3O;      {CH3CH2CH(OOH)CHO                                                                                       HD       }
+  GAH4000 = 4C+8H+4O;      {CH3CH2CH(OOH)CO(OH)                                                                                    AH       }
+  G3H4000 = 4C+7H+5O;      {CH3CH2CH(OOH)CO(OO.)                                                                                   3.HK     }
+  GGH4000 = 4C+8H+5O;      {CH3CH2CH(OOH)CO(OOH)                                                                                   GH       }
+  GPH4000 = 4C+7H+N+7O;    {CH3CH2CH(OOH)CO(OONO2)                                                                                 PH       }
+  G1H501t = 5C+9H+4O;      {CH3CH2CH(OOH)COCH2(O.)                                                                                 1.HK     }
+  GHK500H = 5C+10H+4O;     {CH3CH2CH(OOH)COCH2(OH)                                                                                 HKO      }
+  GHN500r = 5C+9H+N+6O;    {CH3CH2CH(OOH)COCH2(ONO2)                                                                               HNK      }
+  GHK5004 = 5C+10H+3O;     {CH3CH2CH(OOH)COCH3                                                                                     HK       }
+  GHD500s = 5C+8H+4O;      {CH3CH2CH(OOH)COCHO                                                                                     HDK      }
+  GAH500i = 5C+8H+5O;      {CH3CH2CH(OOH)COCO(OH)                                                                                  AHK      }
+  G3H501i = 5C+7H+6O;      {CH3CH2CH(OOH)COCO(OO.)                                                                                 3.HKK    }
+  GGH500d = 5C+8H+6O;      {CH3CH2CH(OOH)COCO(OOH)                                                                                 GHK      }
+  GPH500i = 5C+7H+N+8O;    {CH3CH2CH(OOH)COCO(OONO2)                                                                               PHK      }
+  G103000 = 3C+7H+O;       {CH3CH2CH2(O.)                                                                                          1.       }
+  GO03000 = 3C+8H+O;       {CH3CH2CH2(OH)                                                                                          O        }
+  GN03000 = 3C+7H+N+3O;    {CH3CH2CH2(ONO2)                                                                                        N        }
+  G203000 = 3C+7H+2O;      {CH3CH2CH2(OO.)                                                                                         2.       }
+  GH03000 = 3C+8H+2O;      {CH3CH2CH2(OOH)                                                                                         H        }
+  G1O5003 = 5C+11H+2O;     {CH3CH2CH2CH(O.)CH2(OH)                                                                                 1.O      }
+  G1N5003 = 5C+10H+N+4O;   {CH3CH2CH2CH(O.)CH2(ONO2)                                                                               1.N      }
+  G1H5001 = 5C+11H+3O;     {CH3CH2CH2CH(O.)CH2(OOH)                                                                                1.H      }
+  G105001 = 5C+11H+O;      {CH3CH2CH2CH(O.)CH3                                                                                     1.       }
+  G1D500S = 5C+9H+2O;      {CH3CH2CH2CH(O.)CHO                                                                                     1.D      }
+  G1A5002 = 5C+9H+3O;      {CH3CH2CH2CH(O.)CO(OH)                                                                                  1.A      }
+  G1G5002 = 5C+9H+4O;      {CH3CH2CH2CH(O.)CO(OOH)                                                                                 1.G      }
+  G1P5002 = 5C+8H+N+6O;    {CH3CH2CH2CH(O.)CO(OONO2)                                                                               1.P      }
+  G1O500G = 5C+11H+2O;     {CH3CH2CH2CH(OH)CH2(O.)                                                                                 1.O      }
+  GOO5002 = 5C+12H+2O;     {CH3CH2CH2CH(OH)CH2(OH)                                                                                 OO       }
+  GNO5004 = 5C+11H+N+4O;   {CH3CH2CH2CH(OH)CH2(ONO2)                                                                               NO       }
+  G2O500H = 5C+11H+3O;     {CH3CH2CH2CH(OH)CH2(OO.)                                                                                2.O      }
+  GHO5003 = 5C+12H+3O;     {CH3CH2CH2CH(OH)CH2(OOH)                                                                                HO       }
+  GO05001 = 5C+12H+O;      {CH3CH2CH2CH(OH)CH3                                                                                     O        }
+  GDO5007 = 5C+10H+2O;     {CH3CH2CH2CH(OH)CHO                                                                                     DO       }
+  GAO5003 = 5C+10H+3O;     {CH3CH2CH2CH(OH)CO(OH)                                                                                  AO       }
+  G3K500B = 5C+9H+4O;      {CH3CH2CH2CH(OH)CO(OO.)                                                                                 3.KO     }
+  GGO5003 = 5C+10H+4O;     {CH3CH2CH2CH(OH)CO(OOH)                                                                                 GO       }
+  GPO5003 = 5C+9H+N+6O;    {CH3CH2CH2CH(OH)CO(OONO2)                                                                               PO       }
+  G1N500c = 5C+10H+N+4O;   {CH3CH2CH2CH(ONO2)CH2(O.)                                                                               1.N      }
+  GNO5007 = 5C+11H+N+4O;   {CH3CH2CH2CH(ONO2)CH2(OH)                                                                               NO       }
+  GNN5003 = 5C+10H+2N+6O;  {CH3CH2CH2CH(ONO2)CH2(ONO2)                                                                             NN       }
+  G2N500u = 5C+10H+N+5O;   {CH3CH2CH2CH(ONO2)CH2(OO.)                                                                              2.N      }
+  GHN5007 = 5C+11H+N+5O;   {CH3CH2CH2CH(ONO2)CH2(OOH)                                                                              HN       }
+  GN05001 = 5C+11H+N+3O;   {CH3CH2CH2CH(ONO2)CH3                                                                                   N        }
+  GND500G = 5C+9H+N+4O;    {CH3CH2CH2CH(ONO2)CHO                                                                                   ND       }
+  GAN5004 = 5C+9H+N+5O;    {CH3CH2CH2CH(ONO2)CO(OH)                                                                                AN       }
+  G3N500I = 5C+8H+N+6O;    {CH3CH2CH2CH(ONO2)CO(OO.)                                                                               3.NK     }
+  GGN5004 = 5C+9H+N+6O;    {CH3CH2CH2CH(ONO2)CO(OOH)                                                                               GN       }
+  GPN5004 = 5C+8H+2N+8O;   {CH3CH2CH2CH(ONO2)CO(OONO2)                                                                             PN       }
+  G2O5003 = 5C+11H+3O;     {CH3CH2CH2CH(OO.)CH2(OH)                                                                                2.O      }
+  G2N5003 = 5C+10H+N+5O;   {CH3CH2CH2CH(OO.)CH2(ONO2)                                                                              2.N      }
+  G2H5001 = 5C+11H+4O;     {CH3CH2CH2CH(OO.)CH2(OOH)                                                                               2.H      }
+  G205001 = 5C+11H+2O;     {CH3CH2CH2CH(OO.)CH3                                                                                    2.       }
+  G2D500L = 5C+9H+3O;      {CH3CH2CH2CH(OO.)CHO                                                                                    2.D      }
+  G2A5002 = 5C+9H+4O;      {CH3CH2CH2CH(OO.)CO(OH)                                                                                 2.A      }
+  G2G5002 = 5C+9H+5O;      {CH3CH2CH2CH(OO.)CO(OOH)                                                                                2.G      }
+  G2P5002 = 5C+8H+N+7O;    {CH3CH2CH2CH(OO.)CO(OONO2)                                                                              2.P      }
+  G1H500A = 5C+11H+3O;     {CH3CH2CH2CH(OOH)CH2(O.)                                                                                1.H      }
+  GHO5006 = 5C+12H+3O;     {CH3CH2CH2CH(OOH)CH2(OH)                                                                                HO       }
+  GHN5003 = 5C+11H+N+5O;   {CH3CH2CH2CH(OOH)CH2(ONO2)                                                                              HN       }
+  G2H500I = 5C+11H+4O;     {CH3CH2CH2CH(OOH)CH2(OO.)                                                                               2.H      }
+  GHH5001 = 5C+12H+4O;     {CH3CH2CH2CH(OOH)CH2(OOH)                                                                               HH       }
+  GH05001 = 5C+12H+2O;     {CH3CH2CH2CH(OOH)CH3                                                                                    H        }
+  GHD5008 = 5C+10H+3O;     {CH3CH2CH2CH(OOH)CHO                                                                                    HD       }
+  GAH5003 = 5C+10H+4O;     {CH3CH2CH2CH(OOH)CO(OH)                                                                                 AH       }
+  G3H500B = 5C+9H+5O;      {CH3CH2CH2CH(OOH)CO(OO.)                                                                                3.HK     }
+  GGH5003 = 5C+10H+5O;     {CH3CH2CH2CH(OOH)CO(OOH)                                                                                GH       }
+  GPH5003 = 5C+9H+N+7O;    {CH3CH2CH2CH(OOH)CO(OONO2)                                                                              PH       }
+  G104000 = 4C+9H+O;       {CH3CH2CH2CH2(O.)                                                                                       1.       }
+  GO04000 = 4C+10H+O;      {CH3CH2CH2CH2(OH)                                                                                       O        }
+  GN04000 = 4C+9H+N+3O;    {CH3CH2CH2CH2(ONO2)                                                                                     N        }
+  G204000 = 4C+9H+2O;      {CH3CH2CH2CH2(OO.)                                                                                      2.       }
+  GH04000 = 4C+10H+2O;     {CH3CH2CH2CH2(OOH)                                                                                      H        }
+  G105000 = 5C+11H+O;      {CH3CH2CH2CH2CH2(O.)                                                                                    1.       }
+  GO05000 = 5C+12H+O;      {CH3CH2CH2CH2CH2(OH)                                                                                    O        }
+  GN05000 = 5C+11H+N+3O;   {CH3CH2CH2CH2CH2(ONO2)                                                                                  N        }
+  G205000 = 5C+11H+2O;     {CH3CH2CH2CH2CH2(OO.)                                                                                   2.       }
+  GH05000 = 5C+12H+2O;     {CH3CH2CH2CH2CH2(OOH)                                                                                   H        }
+  GC05000 = 5C+12H;        {CH3CH2CH2CH2CH3                                                                                        C        }
+  GD05000 = 5C+10H+O;      {CH3CH2CH2CH2CHO                                                                                        D        }
+  GA05000 = 5C+10H+2O;     {CH3CH2CH2CH2CO(OH)                                                                                     A        }
+  G3K5000 = 5C+9H+3O;      {CH3CH2CH2CH2CO(OO.)                                                                                    3.K      }
+  GG05000 = 5C+10H+3O;     {CH3CH2CH2CH2CO(OOH)                                                                                    G        }
+  GP05000 = 5C+9H+N+5O;    {CH3CH2CH2CH2CO(OONO2)                                                                                  P        }
+  GD04000 = 4C+8H+O;       {CH3CH2CH2CHO                                                                                           D        }
+  GA04000 = 4C+8H+2O;      {CH3CH2CH2CO(OH)                                                                                        A        }
+  G3K4001 = 4C+7H+3O;      {CH3CH2CH2CO(OO.)                                                                                       3.K      }
+  GG04000 = 4C+8H+3O;      {CH3CH2CH2CO(OOH)                                                                                       G        }
+  GP04000 = 4C+7H+N+5O;    {CH3CH2CH2CO(OONO2)                                                                                     P        }
+  G1K5009 = 5C+9H+2O;      {CH3CH2CH2COCH2(O.)                                                                                     1.K      }
+  GKO5002 = 5C+10H+2O;     {CH3CH2CH2COCH2(OH)                                                                                     KO       }
+  GNK5002 = 5C+9H+N+4O;    {CH3CH2CH2COCH2(ONO2)                                                                                   NK       }
+  G2K5008 = 5C+9H+3O;      {CH3CH2CH2COCH2(OO.)                                                                                    2.K      }
+  GHK5001 = 5C+10H+3O;     {CH3CH2CH2COCH2(OOH)                                                                                    HK       }
+  GK05000 = 5C+10H+O;      {CH3CH2CH2COCH3                                                                                         K        }
+  GDK5006 = 5C+8H+2O;      {CH3CH2CH2COCHO                                                                                         DK       }
+  GAK5002 = 5C+8H+3O;      {CH3CH2CH2COCO(OH)                                                                                      AK       }
+  G3K500F = 5C+7H+4O;      {CH3CH2CH2COCO(OO.)                                                                                     3.KK     }
+  GGK5002 = 5C+8H+4O;      {CH3CH2CH2COCO(OOH)                                                                                     GK       }
+  GPK5002 = 5C+7H+N+6O;    {CH3CH2CH2COCO(OONO2)                                                                                   PK       }
+  GC03000 = 3C+8H;         {CH3CH2CH3                                                                                              C        }
+  GD03000 = 3C+6H+O;       {CH3CH2CHO                                                                                              D        }
+  GA03000 = 3C+6H+2O;      {CH3CH2CO(OH)                                                                                           A        }
+  G3K3000 = 3C+5H+3O;      {CH3CH2CO(OO.)                                                                                          3.K      }
+  GG03000 = 3C+6H+3O;      {CH3CH2CO(OOH)                                                                                          G        }
+  GP03000 = 3C+5H+N+5O;    {CH3CH2CO(OONO2)                                                                                        P        }
+  G1K500B = 5C+9H+3O;      {CH3CH2COCH(O.)CH2(OH)                                                                                  1.KO     }
+  G1N500b = 5C+8H+N+5O;    {CH3CH2COCH(O.)CH2(ONO2)                                                                                1.NK     }
+  G1K5004 = 5C+9H+2O;      {CH3CH2COCH(O.)CH3                                                                                      1.K      }
+  G1D500t = 5C+7H+3O;      {CH3CH2COCH(O.)CHO                                                                                      1.DK     }
+  G1A500N = 5C+7H+4O;      {CH3CH2COCH(O.)CO(OH)                                                                                   1.AK     }
+  G1G500K = 5C+7H+5O;      {CH3CH2COCH(O.)CO(OOH)                                                                                  1.GK     }
+  G1P500P = 5C+6H+N+7O;    {CH3CH2COCH(O.)CO(OONO2)                                                                                1.PK     }
+  G1K500G = 5C+9H+3O;      {CH3CH2COCH(OH)CH2(O.)                                                                                  1.KO     }
+  GKO500D = 5C+10H+3O;     {CH3CH2COCH(OH)CH2(OH)                                                                                  KOO      }
+  GNK500K = 5C+9H+N+5O;    {CH3CH2COCH(OH)CH2(ONO2)                                                                                NKO      }
+  G2K500F = 5C+9H+4O;      {CH3CH2COCH(OH)CH2(OO.)                                                                                 2.KO     }
+  GHK500K = 5C+10H+4O;     {CH3CH2COCH(OH)CH2(OOH)                                                                                 HKO      }
+  GDK5009 = 5C+8H+3O;      {CH3CH2COCH(OH)CHO                                                                                      DKO      }
+  GAK500C = 5C+8H+4O;      {CH3CH2COCH(OH)CO(OH)                                                                                   AKO      }
+  G3K500G = 5C+7H+5O;      {CH3CH2COCH(OH)CO(OO.)                                                                                  3.KKO    }
+  GGK500E = 5C+8H+5O;      {CH3CH2COCH(OH)CO(OOH)                                                                                  GKO      }
+  GPK500E = 5C+7H+N+7O;    {CH3CH2COCH(OH)CO(OONO2)                                                                                PKO      }
+  G1N502p = 5C+8H+N+5O;    {CH3CH2COCH(ONO2)CH2(O.)                                                                                1.NK     }
+  GNK500W = 5C+9H+N+5O;    {CH3CH2COCH(ONO2)CH2(OH)                                                                                NKO      }
+  GNN500g = 5C+8H+2N+7O;   {CH3CH2COCH(ONO2)CH2(ONO2)                                                                              NNK      }
+  GNK5005 = 5C+9H+N+4O;    {CH3CH2COCH(ONO2)CH3                                                                                    NK       }
+  GND500j = 5C+7H+N+5O;    {CH3CH2COCH(ONO2)CHO                                                                                    NDK      }
+  GAN500e = 5C+7H+N+6O;    {CH3CH2COCH(ONO2)CO(OH)                                                                                 ANK      }
+  G3N500z = 5C+6H+N+7O;    {CH3CH2COCH(ONO2)CO(OO.)                                                                                3.NKK    }
+  GGN500W = 5C+7H+N+7O;    {CH3CH2COCH(ONO2)CO(OOH)                                                                                GNK      }
+  GPN500g = 5C+6H+2N+9O;   {CH3CH2COCH(ONO2)CO(OONO2)                                                                              PNK      }
+  G2K500A = 5C+9H+4O;      {CH3CH2COCH(OO.)CH2(OH)                                                                                 2.KO     }
+  G2N500b = 5C+8H+N+6O;    {CH3CH2COCH(OO.)CH2(ONO2)                                                                               2.NK     }
+  G2K5004 = 5C+9H+3O;      {CH3CH2COCH(OO.)CH3                                                                                     2.K      }
+  G2A500M = 5C+7H+5O;      {CH3CH2COCH(OO.)CO(OH)                                                                                  2.AK     }
+  G2G500J = 5C+7H+6O;      {CH3CH2COCH(OO.)CO(OOH)                                                                                 2.GK     }
+  G2P500O = 5C+6H+N+8O;    {CH3CH2COCH(OO.)CO(OONO2)                                                                               2.PK     }
+  G1H501Q = 5C+9H+4O;      {CH3CH2COCH(OOH)CH2(O.)                                                                                 1.HK     }
+  GHK500F = 5C+10H+4O;     {CH3CH2COCH(OOH)CH2(OH)                                                                                 HKO      }
+  GHN500h = 5C+9H+N+6O;    {CH3CH2COCH(OOH)CH2(ONO2)                                                                               HNK      }
+  GHK5006 = 5C+10H+3O;     {CH3CH2COCH(OOH)CH3                                                                                     HK       }
+  GHD500T = 5C+8H+4O;      {CH3CH2COCH(OOH)CHO                                                                                     HDK      }
+  GAH500T = 5C+8H+5O;      {CH3CH2COCH(OOH)CO(OH)                                                                                  AHK      }
+  G3H500r = 5C+7H+6O;      {CH3CH2COCH(OOH)CO(OO.)                                                                                 3.HKK    }
+  GGH500R = 5C+8H+6O;      {CH3CH2COCH(OOH)CO(OOH)                                                                                 GHK      }
+  GPH500W = 5C+7H+N+8O;    {CH3CH2COCH(OOH)CO(OONO2)                                                                               PHK      }
+  G1K4000 = 4C+7H+2O;      {CH3CH2COCH2(O.)                                                                                        1.K      }
+  GKO4000 = 4C+8H+2O;      {CH3CH2COCH2(OH)                                                                                        KO       }
+  GNK4000 = 4C+7H+N+4O;    {CH3CH2COCH2(ONO2)                                                                                      NK       }
+  G2K4000 = 4C+7H+3O;      {CH3CH2COCH2(OO.)                                                                                       2.K      }
+  GHK4000 = 4C+8H+3O;      {CH3CH2COCH2(OOH)                                                                                       HK       }
+  G1K5003 = 5C+9H+2O;      {CH3CH2COCH2CH2(O.)                                                                                     1.K      }
+  GKO5001 = 5C+10H+2O;     {CH3CH2COCH2CH2(OH)                                                                                     KO       }
+  GNK5001 = 5C+9H+N+4O;    {CH3CH2COCH2CH2(ONO2)                                                                                   NK       }
+  G2K5003 = 5C+9H+3O;      {CH3CH2COCH2CH2(OO.)                                                                                    2.K      }
+  GHK5000 = 5C+10H+3O;     {CH3CH2COCH2CH2(OOH)                                                                                    HK       }
+  GK05001 = 5C+10H+O;      {CH3CH2COCH2CH3                                                                                         K        }
+  GDK5000 = 5C+8H+2O;      {CH3CH2COCH2CHO                                                                                         DK       }
+  GAK5000 = 5C+8H+3O;      {CH3CH2COCH2CO(OH)                                                                                      AK       }
+  G3K5004 = 5C+7H+4O;      {CH3CH2COCH2CO(OO.)                                                                                     3.KK     }
+  GGK5000 = 5C+8H+4O;      {CH3CH2COCH2CO(OOH)                                                                                     GK       }
+  GPK5000 = 5C+7H+N+6O;    {CH3CH2COCH2CO(OONO2)                                                                                   PK       }
+  GDK4002 = 4C+6H+2O;      {CH3CH2COCHO                                                                                            DK       }
+  GAK4002 = 4C+6H+3O;      {CH3CH2COCO(OH)                                                                                         AK       }
+  G3K400D = 4C+5H+4O;      {CH3CH2COCO(OO.)                                                                                        3.KK     }
+  GGK4002 = 4C+6H+4O;      {CH3CH2COCO(OOH)                                                                                        GK       }
+  GPK4002 = 4C+5H+N+6O;    {CH3CH2COCO(OONO2)                                                                                      PK       }
+  G1K500O = 5C+7H+3O;      {CH3CH2COCOCH2(O.)                                                                                      1.KK     }
+  GKK5004 = 5C+8H+3O;      {CH3CH2COCOCH2(OH)                                                                                      KKO      }
+  GNK500L = 5C+7H+N+5O;    {CH3CH2COCOCH2(ONO2)                                                                                    NKK      }
+  G2K500N = 5C+7H+4O;      {CH3CH2COCOCH2(OO.)                                                                                     2.KK     }
+  GHK500T = 5C+8H+4O;      {CH3CH2COCOCH2(OOH)                                                                                     HKK      }
+  GKK5001 = 5C+8H+2O;      {CH3CH2COCOCH3                                                                                          KK       }
+  GDK500E = 5C+6H+3O;      {CH3CH2COCOCHO                                                                                          DKK      }
+  GAK500D = 5C+6H+4O;      {CH3CH2COCOCO(OH)                                                                                       AKK      }
+  G3K500b = 5C+5H+5O;      {CH3CH2COCOCO(OO.)                                                                                      3.KKK    }
+  GGK500F = 5C+6H+5O;      {CH3CH2COCOCO(OOH)                                                                                      GKK      }
+  GPK500F = 5C+5H+N+7O;    {CH3CH2COCOCO(OONO2)                                                                                    PKK      }
+  GC02000 = 2C+6H;         {CH3CH3                                                                                                 C        }
+  GD02000 = 2C+4H+O;       {CH3CHO                                                                                                 D        }
+  GA02000 = 2C+4H+2O;      {CH3CO(OH)                                                                                              A        }
+  G3K2000 = 2C+3H+3O;      {CH3CO(OO.)                                                                                             3.K      }
+  GG02000 = 2C+4H+3O;      {CH3CO(OOH)                                                                                             G        }
+  GP02000 = 2C+3H+N+5O;    {CH3CO(OONO2)                                                                                           P        }
+  G1K500o = 5C+9H+4O;      {CH3COCH(O.)CH(OH)CH2(OH)                                                                               1.KOO    }
+  G1N502S = 5C+8H+N+6O;    {CH3COCH(O.)CH(OH)CH2(ONO2)                                                                             1.NKO    }
+  G1H507o = 5C+9H+5O;      {CH3COCH(O.)CH(OH)CH2(OOH)                                                                              1.HKO    }
+  G1D500b = 5C+7H+4O;      {CH3COCH(O.)CH(OH)CHO                                                                                   1.DKO    }
+  G1A502H = 5C+7H+5O;      {CH3COCH(O.)CH(OH)CO(OH)                                                                                1.AKO    }
+  G1G504N = 5C+7H+6O;      {CH3COCH(O.)CH(OH)CO(OOH)                                                                               1.GKO    }
+  G1P505L = 5C+6H+N+8O;    {CH3COCH(O.)CH(OH)CO(OONO2)                                                                             1.PKO    }
+  G1N501J = 5C+8H+N+6O;    {CH3COCH(O.)CH(ONO2)CH2(OH)                                                                             1.NKO    }
+  G1N502R = 5C+7H+2N+8O;   {CH3COCH(O.)CH(ONO2)CH2(ONO2)                                                                           1.NNK    }
+  G1H507P = 5C+8H+N+7O;    {CH3COCH(O.)CH(ONO2)CH2(OOH)                                                                            1.HNK    }
+  G1N5069 = 5C+6H+N+6O;    {CH3COCH(O.)CH(ONO2)CHO                                                                                 1.NDK    }
+  G1A502G = 5C+6H+N+7O;    {CH3COCH(O.)CH(ONO2)CO(OH)                                                                              1.ANK    }
+  G1G504L = 5C+6H+N+8O;    {CH3COCH(O.)CH(ONO2)CO(OOH)                                                                             1.GNK    }
+  G1P502Y = 5C+5H+2N+10O;  {CH3COCH(O.)CH(ONO2)CO(OONO2)                                                                           1.PNK    }
+  G1H503J = 5C+9H+5O;      {CH3COCH(O.)CH(OOH)CH2(OH)                                                                              1.HKO    }
+  G1H504w = 5C+8H+N+7O;    {CH3COCH(O.)CH(OOH)CH2(ONO2)                                                                            1.HNK    }
+  G1H507u = 5C+7H+5O;      {CH3COCH(O.)CH(OOH)CHO                                                                                  1.HDK    }
+  G1A504w = 5C+7H+6O;      {CH3COCH(O.)CH(OOH)CO(OH)                                                                               1.AHK    }
+  G1G504M = 5C+7H+7O;      {CH3COCH(O.)CH(OOH)CO(OOH)                                                                              1.GHK    }
+  G1P505K = 5C+6H+N+9O;    {CH3COCH(O.)CH(OOH)CO(OONO2)                                                                            1.PHK    }
+  G1K4006 = 4C+7H+3O;      {CH3COCH(O.)CH2(OH)                                                                                     1.KO     }
+  G1N400W = 4C+6H+N+5O;    {CH3COCH(O.)CH2(ONO2)                                                                                   1.NK     }
+  G1H401M = 4C+7H+4O;      {CH3COCH(O.)CH2(OOH)                                                                                    1.HK     }
+  G1K5006 = 5C+9H+3O;      {CH3COCH(O.)CH2CH2(OH)                                                                                  1.KO     }
+  G1N500P = 5C+8H+N+5O;    {CH3COCH(O.)CH2CH2(ONO2)                                                                                1.NK     }
+  G1H503F = 5C+9H+4O;      {CH3COCH(O.)CH2CH2(OOH)                                                                                 1.HK     }
+  G1D500C = 5C+7H+3O;      {CH3COCH(O.)CH2CHO                                                                                      1.DK     }
+  G1A500R = 5C+7H+4O;      {CH3COCH(O.)CH2CO(OH)                                                                                   1.AK     }
+  G1G500O = 5C+7H+5O;      {CH3COCH(O.)CH2CO(OOH)                                                                                  1.GK     }
+  G1P500T = 5C+6H+N+7O;    {CH3COCH(O.)CH2CO(OONO2)                                                                                1.PK     }
+  G1D400D = 4C+5H+3O;      {CH3COCH(O.)CHO                                                                                         1.DK     }
+  G1A400E = 4C+5H+4O;      {CH3COCH(O.)CO(OH)                                                                                      1.AK     }
+  G1G400A = 4C+5H+5O;      {CH3COCH(O.)CO(OOH)                                                                                     1.GK     }
+  G1P400E = 4C+4H+N+7O;    {CH3COCH(O.)CO(OONO2)                                                                                   1.PK     }
+  G1K500R = 5C+7H+4O;      {CH3COCH(O.)COCH2(OH)                                                                                   1.KKO    }
+  G1N502U = 5C+6H+N+6O;    {CH3COCH(O.)COCH2(ONO2)                                                                                 1.NKK    }
+  G1H507r = 5C+7H+5O;      {CH3COCH(O.)COCH2(OOH)                                                                                  1.HKK    }
+  G1K500K = 5C+7H+3O;      {CH3COCH(O.)COCH3                                                                                       1.KK     }
+  G1D501F = 5C+5H+4O;      {CH3COCH(O.)COCHO                                                                                       1.DKK    }
+  G1A502J = 5C+5H+5O;      {CH3COCH(O.)COCO(OH)                                                                                    1.AKK    }
+  G1G501p = 5C+5H+6O;      {CH3COCH(O.)COCO(OOH)                                                                                   1.GKK    }
+  G1P502a = 5C+4H+N+8O;    {CH3COCH(O.)COCO(OONO2)                                                                                 1.PKK    }
+  G1K500Q = 5C+9H+4O;      {CH3COCH(OH)CH(O.)CH2(OH)                                                                               1.KOO    }
+  G1N502N = 5C+8H+N+6O;    {CH3COCH(OH)CH(O.)CH2(ONO2)                                                                             1.NKO    }
+  G1K500L = 5C+9H+3O;      {CH3COCH(OH)CH(O.)CH3                                                                                   1.KO     }
+  G1D500h = 5C+7H+4O;      {CH3COCH(OH)CH(O.)CHO                                                                                   1.DKO    }
+  G1A501w = 5C+7H+5O;      {CH3COCH(OH)CH(O.)CO(OH)                                                                                1.AKO    }
+  G1G501X = 5C+7H+6O;      {CH3COCH(OH)CH(O.)CO(OOH)                                                                               1.GKO    }
+  G1P5024 = 5C+6H+N+8O;    {CH3COCH(OH)CH(O.)CO(OONO2)                                                                             1.PKO    }
+  G1K500u = 5C+9H+4O;      {CH3COCH(OH)CH(OH)CH2(O.)                                                                               1.KOO    }
+  GKO500K = 5C+10H+4O;     {CH3COCH(OH)CH(OH)CH2(OH)                                                                               KOOO     }
+  GNK500p = 5C+9H+N+6O;    {CH3COCH(OH)CH(OH)CH2(ONO2)                                                                             NKOO     }
+  GDK500S = 5C+8H+4O;      {CH3COCH(OH)CH(OH)CHO                                                                                   DKOO     }
+  GAK500R = 5C+8H+5O;      {CH3COCH(OH)CH(OH)CO(OH)                                                                                AKOO     }
+  G3K500f = 5C+7H+6O;      {CH3COCH(OH)CH(OH)CO(OO.)                                                                               3.KKO    }
+  GGK500S = 5C+8H+6O;      {CH3COCH(OH)CH(OH)CO(OOH)                                                                               GKOO     }
+  GPK500S = 5C+7H+N+8O;    {CH3COCH(OH)CH(OH)CO(OONO2)                                                                             PKOO     }
+  G1N5058 = 5C+8H+N+6O;    {CH3COCH(OH)CH(ONO2)CH2(O.)                                                                             1.NKO    }
+  GNK500b = 5C+9H+N+6O;    {CH3COCH(OH)CH(ONO2)CH2(OH)                                                                             NKOO     }
+  GNN501y = 5C+8H+2N+8O;   {CH3COCH(OH)CH(ONO2)CH2(ONO2)                                                                           NNKO     }
+  GNK500Y = 5C+9H+N+5O;    {CH3COCH(OH)CH(ONO2)CH3                                                                                 NKO      }
+  GND5015 = 5C+7H+N+6O;    {CH3COCH(OH)CH(ONO2)CHO                                                                                 NDKO     }
+  GAN501t = 5C+7H+N+7O;    {CH3COCH(OH)CH(ONO2)CO(OH)                                                                              ANKO     }
+  G3N501W = 5C+6H+N+8O;    {CH3COCH(OH)CH(ONO2)CO(OO.)                                                                             3.NKK    }
+  GGN501d = 5C+7H+N+8O;    {CH3COCH(OH)CH(ONO2)CO(OOH)                                                                             GNKO     }
+  GPN501w = 5C+6H+2N+10O;  {CH3COCH(OH)CH(ONO2)CO(OONO2)                                                                           PNKO     }
+  G2K500P = 5C+9H+5O;      {CH3COCH(OH)CH(OO.)CH2(OH)                                                                              2.KOO    }
+  G2N502C = 5C+8H+N+7O;    {CH3COCH(OH)CH(OO.)CH2(ONO2)                                                                            2.NKO    }
+  G2K500K = 5C+9H+4O;      {CH3COCH(OH)CH(OO.)CH3                                                                                  2.KO     }
+  G2D500U = 5C+7H+5O;      {CH3COCH(OH)CH(OO.)CHO                                                                                  2.DKO    }
+  G2A501e = 5C+7H+6O;      {CH3COCH(OH)CH(OO.)CO(OH)                                                                               2.AKO    }
+  G2G501G = 5C+7H+7O;      {CH3COCH(OH)CH(OO.)CO(OOH)                                                                              2.GKO    }
+  G2P501i = 5C+6H+N+9O;    {CH3COCH(OH)CH(OO.)CO(OONO2)                                                                            2.PKO    }
+  G1H504y = 5C+9H+5O;      {CH3COCH(OH)CH(OOH)CH2(O.)                                                                              1.HKO    }
+  GHK500Z = 5C+10H+5O;     {CH3COCH(OH)CH(OOH)CH2(OH)                                                                              HKOO     }
+  GHN502n = 5C+9H+N+7O;    {CH3COCH(OH)CH(OOH)CH2(ONO2)                                                                            HNKO     }
+  GHK500Q = 5C+10H+4O;     {CH3COCH(OH)CH(OOH)CH3                                                                                  HKO      }
+  GHD500y = 5C+8H+5O;      {CH3COCH(OH)CH(OOH)CHO                                                                                  HDKO     }
+  GAH502K = 5C+8H+6O;      {CH3COCH(OH)CH(OOH)CO(OH)                                                                               AHKO     }
+  G3H501t = 5C+7H+7O;      {CH3COCH(OH)CH(OOH)CO(OO.)                                                                              3.HKK    }
+  GGH5021 = 5C+8H+7O;      {CH3COCH(OH)CH(OOH)CO(OOH)                                                                              GHKO     }
+  GPH502J = 5C+7H+N+9O;    {CH3COCH(OH)CH(OOH)CO(OONO2)                                                                            PHKO     }
+  G1K400A = 4C+7H+3O;      {CH3COCH(OH)CH2(O.)                                                                                     1.KO     }
+  GKO4005 = 4C+8H+3O;      {CH3COCH(OH)CH2(OH)                                                                                     KOO      }
+  GNK4009 = 4C+7H+N+5O;    {CH3COCH(OH)CH2(ONO2)                                                                                   NKO      }
+  G2K400A = 4C+7H+4O;      {CH3COCH(OH)CH2(OO.)                                                                                    2.KO     }
+  GHK400B = 4C+8H+4O;      {CH3COCH(OH)CH2(OOH)                                                                                    HKO      }
+  G1K500W = 5C+9H+3O;      {CH3COCH(OH)CH2CH2(O.)                                                                                  1.KO     }
+  GKO500B = 5C+10H+3O;     {CH3COCH(OH)CH2CH2(OH)                                                                                  KOO      }
+  GNK500F = 5C+9H+N+5O;    {CH3COCH(OH)CH2CH2(ONO2)                                                                                NKO      }
+  GDK500H = 5C+8H+3O;      {CH3COCH(OH)CH2CHO                                                                                      DKO      }
+  GAK5009 = 5C+8H+4O;      {CH3COCH(OH)CH2CO(OH)                                                                                   AKO      }
+  G3K500O = 5C+7H+5O;      {CH3COCH(OH)CH2CO(OO.)                                                                                  3.KKO    }
+  GGK5009 = 5C+8H+5O;      {CH3COCH(OH)CH2CO(OOH)                                                                                  GKO      }
+  GPK5009 = 5C+7H+N+7O;    {CH3COCH(OH)CH2CO(OONO2)                                                                                PKO      }
+  GDK4003 = 4C+6H+3O;      {CH3COCH(OH)CHO                                                                                         DKO      }
+  GAK4005 = 4C+6H+4O;      {CH3COCH(OH)CO(OH)                                                                                      AKO      }
+  G3K4009 = 4C+5H+5O;      {CH3COCH(OH)CO(OO.)                                                                                     3.KKO    }
+  GGK4005 = 4C+6H+5O;      {CH3COCH(OH)CO(OOH)                                                                                     GKO      }
+  GPK4005 = 4C+5H+N+7O;    {CH3COCH(OH)CO(OONO2)                                                                                   PKO      }
+  G1K500v = 5C+7H+4O;      {CH3COCH(OH)COCH2(O.)                                                                                   1.KKO    }
+  GKK500C = 5C+8H+4O;      {CH3COCH(OH)COCH2(OH)                                                                                   KKOO     }
+  GNK500q = 5C+7H+N+6O;    {CH3COCH(OH)COCH2(ONO2)                                                                                 NKKO     }
+  GKK5008 = 5C+8H+3O;      {CH3COCH(OH)COCH3                                                                                       KKO      }
+  GDK500Z = 5C+6H+4O;      {CH3COCH(OH)COCHO                                                                                       DKKO     }
+  GAK500S = 5C+6H+5O;      {CH3COCH(OH)COCO(OH)                                                                                    AKKO     }
+  G3K500l = 5C+5H+6O;      {CH3COCH(OH)COCO(OO.)                                                                                   3.KKK    }
+  GGK500T = 5C+6H+6O;      {CH3COCH(OH)COCO(OOH)                                                                                   GKKO     }
+  GPK500T = 5C+5H+N+8O;    {CH3COCH(OH)COCO(OONO2)                                                                                 PKKO     }
+  G1N501T = 5C+8H+N+6O;    {CH3COCH(ONO2)CH(O.)CH2(OH)                                                                             1.NKO    }
+  G1N502M = 5C+7H+2N+8O;   {CH3COCH(ONO2)CH(O.)CH2(ONO2)                                                                           1.NNK    }
+  G1H507Q = 5C+8H+N+7O;    {CH3COCH(ONO2)CH(O.)CH2(OOH)                                                                            1.HNK    }
+  G1N501P = 5C+8H+N+5O;    {CH3COCH(ONO2)CH(O.)CH3                                                                                 1.NK     }
+  G1N506A = 5C+6H+N+6O;    {CH3COCH(ONO2)CH(O.)CHO                                                                                 1.NDK    }
+  G1A501l = 5C+6H+N+7O;    {CH3COCH(ONO2)CH(O.)CO(OH)                                                                              1.ANK    }
+  G1G504S = 5C+6H+N+8O;    {CH3COCH(ONO2)CH(O.)CO(OOH)                                                                             1.GNK    }
+  G1P501q = 5C+5H+2N+10O;  {CH3COCH(ONO2)CH(O.)CO(OONO2)                                                                           1.PNK    }
+  G1N5042 = 5C+8H+N+6O;    {CH3COCH(ONO2)CH(OH)CH2(O.)                                                                             1.NKO    }
+  GNK500e = 5C+9H+N+6O;    {CH3COCH(ONO2)CH(OH)CH2(OH)                                                                             NKOO     }
+  GNN501w = 5C+8H+2N+8O;   {CH3COCH(ONO2)CH(OH)CH2(ONO2)                                                                           NNKO     }
+  G2N503a = 5C+8H+N+7O;    {CH3COCH(ONO2)CH(OH)CH2(OO.)                                                                            2.NKO    }
+  GHN504Z = 5C+9H+N+7O;    {CH3COCH(ONO2)CH(OH)CH2(OOH)                                                                            HNKO     }
+  GND5017 = 5C+7H+N+6O;    {CH3COCH(ONO2)CH(OH)CHO                                                                                 NDKO     }
+  GAN501g = 5C+7H+N+7O;    {CH3COCH(ONO2)CH(OH)CO(OH)                                                                              ANKO     }
+  G3N501X = 5C+6H+N+8O;    {CH3COCH(ONO2)CH(OH)CO(OO.)                                                                             3.NKK    }
+  GGN501w = 5C+7H+N+8O;    {CH3COCH(ONO2)CH(OH)CO(OOH)                                                                             GNKO     }
+  GPN501n = 5C+6H+2N+10O;  {CH3COCH(ONO2)CH(OH)CO(OONO2)                                                                           PNKO     }
+  G1N503a = 5C+7H+2N+8O;   {CH3COCH(ONO2)CH(ONO2)CH2(O.)                                                                           1.NNK    }
+  GNN5015 = 5C+8H+2N+8O;   {CH3COCH(ONO2)CH(ONO2)CH2(OH)                                                                           NNKO     }
+  GNN501v = 5C+7H+3N+10O;  {CH3COCH(ONO2)CH(ONO2)CH2(ONO2)                                                                         NNNK     }
+  G2N503J = 5C+7H+2N+9O;   {CH3COCH(ONO2)CH(ONO2)CH2(OO.)                                                                          2.NNK    }
+  GHN504J = 5C+8H+2N+9O;   {CH3COCH(ONO2)CH(ONO2)CH2(OOH)                                                                          HNNK     }
+  GNN500w = 5C+8H+2N+7O;   {CH3COCH(ONO2)CH(ONO2)CH3                                                                               NNK      }
+  GNN502Y = 5C+6H+2N+8O;   {CH3COCH(ONO2)CH(ONO2)CHO                                                                               NNDK     }
+  GAN501f = 5C+6H+2N+9O;   {CH3COCH(ONO2)CH(ONO2)CO(OH)                                                                            ANNK     }
+  G3N501O = 5C+5H+2N+10O;  {CH3COCH(ONO2)CH(ONO2)CO(OO.)                                                                           3.NNK    }
+  GGN501o = 5C+6H+2N+10O;  {CH3COCH(ONO2)CH(ONO2)CO(OOH)                                                                           GNNK     }
+  GPN501m = 5C+5H+3N+12O;  {CH3COCH(ONO2)CH(ONO2)CO(OONO2)                                                                         PNNK     }
+  G2N501Q = 5C+8H+N+7O;    {CH3COCH(ONO2)CH(OO.)CH2(OH)                                                                            2.NKO    }
+  G2N502B = 5C+7H+2N+9O;   {CH3COCH(ONO2)CH(OO.)CH2(ONO2)                                                                          2.NNK    }
+  G2N501N = 5C+8H+N+6O;    {CH3COCH(ONO2)CH(OO.)CH3                                                                                2.NK     }
+  G2N505G = 5C+6H+N+7O;    {CH3COCH(ONO2)CH(OO.)CHO                                                                                2.NDK    }
+  G2A501U = 5C+6H+N+8O;    {CH3COCH(ONO2)CH(OO.)CO(OH)                                                                             2.ANK    }
+  G2G503L = 5C+6H+N+9O;    {CH3COCH(ONO2)CH(OO.)CO(OOH)                                                                            2.GNK    }
+  G2P501Z = 5C+5H+2N+11O;  {CH3COCH(ONO2)CH(OO.)CO(OONO2)                                                                          2.PNK    }
+  G1H504x = 5C+8H+N+7O;    {CH3COCH(ONO2)CH(OOH)CH2(O.)                                                                            1.HNK    }
+  GHN501n = 5C+9H+N+7O;    {CH3COCH(ONO2)CH(OOH)CH2(OH)                                                                            HNKO     }
+  GHN502m = 5C+8H+2N+9O;   {CH3COCH(ONO2)CH(OOH)CH2(ONO2)                                                                          HNNK     }
+  GHN501j = 5C+9H+N+6O;    {CH3COCH(ONO2)CH(OOH)CH3                                                                                HNK      }
+  GHN504e = 5C+7H+N+7O;    {CH3COCH(ONO2)CH(OOH)CHO                                                                                HNDK     }
+  GAH502A = 5C+7H+N+8O;    {CH3COCH(ONO2)CH(OOH)CO(OH)                                                                             AHNK     }
+  G3H501p = 5C+6H+N+9O;    {CH3COCH(ONO2)CH(OOH)CO(OO.)                                                                            3.HNK    }
+  GGH502W = 5C+7H+N+9O;    {CH3COCH(ONO2)CH(OOH)CO(OOH)                                                                            GHNK     }
+  GPH5029 = 5C+6H+2N+11O;  {CH3COCH(ONO2)CH(OOH)CO(OONO2)                                                                          PHNK     }
+  G1N400e = 4C+6H+N+5O;    {CH3COCH(ONO2)CH2(O.)                                                                                   1.NK     }
+  GNK4007 = 4C+7H+N+5O;    {CH3COCH(ONO2)CH2(OH)                                                                                   NKO      }
+  GNN400M = 4C+6H+2N+7O;   {CH3COCH(ONO2)CH2(ONO2)                                                                                 NNK      }
+  G2N400c = 4C+6H+N+6O;    {CH3COCH(ONO2)CH2(OO.)                                                                                  2.NK     }
+  GHN400r = 4C+7H+N+6O;    {CH3COCH(ONO2)CH2(OOH)                                                                                  HNK      }
+  G1N501O = 5C+8H+N+5O;    {CH3COCH(ONO2)CH2CH2(O.)                                                                                1.NK     }
+  GNK5009 = 5C+9H+N+5O;    {CH3COCH(ONO2)CH2CH2(OH)                                                                                NKO      }
+  GNN500U = 5C+8H+2N+7O;   {CH3COCH(ONO2)CH2CH2(ONO2)                                                                              NNK      }
+  G2N501M = 5C+8H+N+6O;    {CH3COCH(ONO2)CH2CH2(OO.)                                                                               2.NK     }
+  GHN501i = 5C+9H+N+6O;    {CH3COCH(ONO2)CH2CH2(OOH)                                                                               HNK      }
+  GND500Q = 5C+7H+N+5O;    {CH3COCH(ONO2)CH2CHO                                                                                    NDK      }
+  GAN500S = 5C+7H+N+6O;    {CH3COCH(ONO2)CH2CO(OH)                                                                                 ANK      }
+  G3N500U = 5C+6H+N+7O;    {CH3COCH(ONO2)CH2CO(OO.)                                                                                3.NKK    }
+  GGN500Q = 5C+7H+N+7O;    {CH3COCH(ONO2)CH2CO(OOH)                                                                                GNK      }
+  GPN500S = 5C+6H+2N+9O;   {CH3COCH(ONO2)CH2CO(OONO2)                                                                              PNK      }
+  GND4008 = 4C+5H+N+5O;    {CH3COCH(ONO2)CHO                                                                                       NDK      }
+  GAN400M = 4C+5H+N+6O;    {CH3COCH(ONO2)CO(OH)                                                                                    ANK      }
+  G3N400D = 4C+4H+N+7O;    {CH3COCH(ONO2)CO(OO.)                                                                                   3.NKK    }
+  GGN400J = 4C+5H+N+7O;    {CH3COCH(ONO2)CO(OOH)                                                                                   GNK      }
+  GPN400M = 4C+4H+2N+9O;   {CH3COCH(ONO2)CO(OONO2)                                                                                 PNK      }
+  G1N5044 = 5C+6H+N+6O;    {CH3COCH(ONO2)COCH2(O.)                                                                                 1.NKK    }
+  GNK500h = 5C+7H+N+6O;    {CH3COCH(ONO2)COCH2(OH)                                                                                 NKKO     }
+  GNN501x = 5C+6H+2N+8O;   {CH3COCH(ONO2)COCH2(ONO2)                                                                               NNKK     }
+  G2N503c = 5C+6H+N+7O;    {CH3COCH(ONO2)COCH2(OO.)                                                                                2.NKK    }
+  GHN504c = 5C+7H+N+7O;    {CH3COCH(ONO2)COCH2(OOH)                                                                                HNKK     }
+  GNK500g = 5C+7H+N+5O;    {CH3COCH(ONO2)COCH3                                                                                     NKK      }
+  GND5018 = 5C+5H+N+6O;    {CH3COCH(ONO2)COCHO                                                                                     NDKK     }
+  GAN501h = 5C+5H+N+7O;    {CH3COCH(ONO2)COCO(OH)                                                                                  ANKK     }
+  G3N502Q = 5C+4H+N+8O;    {CH3COCH(ONO2)COCO(OO.)                                                                                 3.NKK    }
+  GGN501m = 5C+5H+N+8O;    {CH3COCH(ONO2)COCO(OOH)                                                                                 GNKK     }
+  GPN501o = 5C+4H+2N+10O;  {CH3COCH(ONO2)COCO(OONO2)                                                                               PNKK     }
+  G2K500j = 5C+9H+5O;      {CH3COCH(OO.)CH(OH)CH2(OH)                                                                              2.KOO    }
+  G2N502H = 5C+8H+N+7O;    {CH3COCH(OO.)CH(OH)CH2(ONO2)                                                                            2.NKO    }
+  G2D500R = 5C+7H+5O;      {CH3COCH(OO.)CH(OH)CHO                                                                                  2.DKO    }
+  G2A501w = 5C+7H+6O;      {CH3COCH(OO.)CH(OH)CO(OH)                                                                               2.AKO    }
+  G2G503D = 5C+7H+7O;      {CH3COCH(OO.)CH(OH)CO(OOH)                                                                              2.GKO    }
+  G2P504b = 5C+6H+N+9O;    {CH3COCH(OO.)CH(OH)CO(OONO2)                                                                            2.PKO    }
+  G2N501H = 5C+8H+N+7O;    {CH3COCH(OO.)CH(ONO2)CH2(OH)                                                                            2.NKO    }
+  G2N502G = 5C+7H+2N+9O;   {CH3COCH(OO.)CH(ONO2)CH2(ONO2)                                                                          2.NNK    }
+  G2N505D = 5C+6H+N+7O;    {CH3COCH(OO.)CH(ONO2)CHO                                                                                2.NDK    }
+  G2A501v = 5C+6H+N+8O;    {CH3COCH(OO.)CH(ONO2)CO(OH)                                                                             2.ANK    }
+  G2G503C = 5C+6H+N+9O;    {CH3COCH(OO.)CH(ONO2)CO(OOH)                                                                            2.GNK    }
+  G2P502A = 5C+5H+2N+11O;  {CH3COCH(OO.)CH(ONO2)CO(OONO2)                                                                          2.PNK    }
+  G2H503M = 5C+8H+N+8O;    {CH3COCH(OO.)CH(OOH)CH2(ONO2)                                                                           2.HNK    }
+  G2K4006 = 4C+7H+4O;      {CH3COCH(OO.)CH2(OH)                                                                                    2.KO     }
+  G2N400U = 4C+6H+N+6O;    {CH3COCH(OO.)CH2(ONO2)                                                                                  2.NK     }
+  G2K5006 = 5C+9H+4O;      {CH3COCH(OO.)CH2CH2(OH)                                                                                 2.KO     }
+  G2N500P = 5C+8H+N+6O;    {CH3COCH(OO.)CH2CH2(ONO2)                                                                               2.NK     }
+  G2D500A = 5C+7H+4O;      {CH3COCH(OO.)CH2CHO                                                                                     2.DK     }
+  G2A500Q = 5C+7H+5O;      {CH3COCH(OO.)CH2CO(OH)                                                                                  2.AK     }
+  G2G500N = 5C+7H+6O;      {CH3COCH(OO.)CH2CO(OOH)                                                                                 2.GK     }
+  G2P500S = 5C+6H+N+8O;    {CH3COCH(OO.)CH2CO(OONO2)                                                                               2.PK     }
+  G2A400C = 4C+5H+5O;      {CH3COCH(OO.)CO(OH)                                                                                     2.AK     }
+  G2G4008 = 4C+5H+6O;      {CH3COCH(OO.)CO(OOH)                                                                                    2.GK     }
+  G2P400D = 4C+4H+N+8O;    {CH3COCH(OO.)CO(OONO2)                                                                                  2.PK     }
+  G2K500Q = 5C+7H+5O;      {CH3COCH(OO.)COCH2(OH)                                                                                  2.KKO    }
+  G2N502J = 5C+6H+N+7O;    {CH3COCH(OO.)COCH2(ONO2)                                                                                2.NKK    }
+  G2K500J = 5C+7H+4O;      {CH3COCH(OO.)COCH3                                                                                      2.KK     }
+  G2D500k = 5C+5H+5O;      {CH3COCH(OO.)COCHO                                                                                      2.DKK    }
+  G2A501y = 5C+5H+6O;      {CH3COCH(OO.)COCO(OH)                                                                                   2.AKK    }
+  G2G501X = 5C+5H+7O;      {CH3COCH(OO.)COCO(OOH)                                                                                  2.GKK    }
+  G2P502C = 5C+4H+N+9O;    {CH3COCH(OO.)COCO(OONO2)                                                                                2.PKK    }
+  G1H500f = 5C+9H+5O;      {CH3COCH(OOH)CH(O.)CH2(OH)                                                                              1.HKO    }
+  G1H5051 = 5C+8H+N+7O;    {CH3COCH(OOH)CH(O.)CH2(ONO2)                                                                            1.HNK    }
+  G1H500a = 5C+9H+4O;      {CH3COCH(OOH)CH(O.)CH3                                                                                  1.HK     }
+  G1H507m = 5C+7H+5O;      {CH3COCH(OOH)CH(O.)CHO                                                                                  1.HDK    }
+  G1A502E = 5C+7H+6O;      {CH3COCH(OOH)CH(O.)CO(OH)                                                                               1.AHK    }
+  G1G501o = 5C+7H+7O;      {CH3COCH(OOH)CH(O.)CO(OOH)                                                                              1.GHK    }
+  G1P502W = 5C+6H+N+9O;    {CH3COCH(OOH)CH(O.)CO(OONO2)                                                                            1.PHK    }
+  G1H5053 = 5C+9H+5O;      {CH3COCH(OOH)CH(OH)CH2(O.)                                                                              1.HKO    }
+  GHK500X = 5C+10H+5O;     {CH3COCH(OOH)CH(OH)CH2(OH)                                                                              HKOO     }
+  GHN502q = 5C+9H+N+7O;    {CH3COCH(OOH)CH(OH)CH2(ONO2)                                                                            HNKO     }
+  GHD500u = 5C+8H+5O;      {CH3COCH(OOH)CH(OH)CHO                                                                                  HDKO     }
+  GAH502b = 5C+8H+6O;      {CH3COCH(OOH)CH(OH)CO(OH)                                                                               AHKO     }
+  G3H501n = 5C+7H+7O;      {CH3COCH(OOH)CH(OH)CO(OO.)                                                                              3.HKK    }
+  GGH502M = 5C+8H+7O;      {CH3COCH(OOH)CH(OH)CO(OOH)                                                                              GHKO     }
+  GPH502m = 5C+7H+N+9O;    {CH3COCH(OOH)CH(OH)CO(OONO2)                                                                            PHKO     }
+  G1H5052 = 5C+8H+N+7O;    {CH3COCH(OOH)CH(ONO2)CH2(O.)                                                                            1.HNK    }
+  GHN501d = 5C+9H+N+7O;    {CH3COCH(OOH)CH(ONO2)CH2(OH)                                                                            HNKO     }
+  GHN502p = 5C+8H+2N+9O;   {CH3COCH(OOH)CH(ONO2)CH2(ONO2)                                                                          HNNK     }
+  GHN504X = 5C+7H+N+7O;    {CH3COCH(OOH)CH(ONO2)CHO                                                                                HNDK     }
+  GAH502Z = 5C+7H+N+8O;    {CH3COCH(OOH)CH(ONO2)CO(OH)                                                                             AHNK     }
+  G3H501m = 5C+6H+N+9O;    {CH3COCH(OOH)CH(ONO2)CO(OO.)                                                                            3.HNK    }
+  GGH502K = 5C+7H+N+9O;    {CH3COCH(OOH)CH(ONO2)CO(OOH)                                                                            GHNK     }
+  GPH502k = 5C+6H+2N+11O;  {CH3COCH(OOH)CH(ONO2)CO(OONO2)                                                                          PHNK     }
+  G2H500U = 5C+9H+6O;      {CH3COCH(OOH)CH(OO.)CH2(OH)                                                                             2.HKO    }
+  G2H503N = 5C+8H+N+8O;    {CH3COCH(OOH)CH(OO.)CH2(ONO2)                                                                           2.HNK    }
+  G2H500S = 5C+9H+5O;      {CH3COCH(OOH)CH(OO.)CH3                                                                                 2.HK     }
+  G2A501t = 5C+7H+7O;      {CH3COCH(OOH)CH(OO.)CO(OH)                                                                              2.AHK    }
+  G2G501W = 5C+7H+8O;      {CH3COCH(OOH)CH(OO.)CO(OOH)                                                                             2.GHK    }
+  G2P5028 = 5C+6H+N+10O;   {CH3COCH(OOH)CH(OO.)CO(OONO2)                                                                           2.PHK    }
+  G1H50AK = 5C+9H+6O;      {CH3COCH(OOH)CH(OOH)CH2(O.)                                                                             1.HHK    }
+  GHH500S = 5C+10H+6O;     {CH3COCH(OOH)CH(OOH)CH2(OH)                                                                             HHKO     }
+  GHH502A = 5C+9H+N+8O;    {CH3COCH(OOH)CH(OOH)CH2(ONO2)                                                                           HHNK     }
+  GHH500Q = 5C+10H+5O;     {CH3COCH(OOH)CH(OOH)CH3                                                                                 HHK      }
+  GHH502y = 5C+8H+6O;      {CH3COCH(OOH)CH(OOH)CHO                                                                                 HHDK     }
+  GAH502a = 5C+8H+7O;      {CH3COCH(OOH)CH(OOH)CO(OH)                                                                              AHHK     }
+  G3H504A = 5C+7H+8O;      {CH3COCH(OOH)CH(OOH)CO(OO.)                                                                             3.HHK    }
+  GGH502L = 5C+8H+8O;      {CH3COCH(OOH)CH(OOH)CO(OOH)                                                                             GHHK     }
+  GPH502l = 5C+7H+N+10O;   {CH3COCH(OOH)CH(OOH)CO(OONO2)                                                                           PHHK     }
+  G1H400d = 4C+7H+4O;      {CH3COCH(OOH)CH2(O.)                                                                                    1.HK     }
+  GHK4008 = 4C+8H+4O;      {CH3COCH(OOH)CH2(OH)                                                                                    HKO      }
+  GHN400g = 4C+7H+N+6O;    {CH3COCH(OOH)CH2(ONO2)                                                                                  HNK      }
+  G2H400Z = 4C+7H+5O;      {CH3COCH(OOH)CH2(OO.)                                                                                   2.HK     }
+  GHH400X = 4C+8H+5O;      {CH3COCH(OOH)CH2(OOH)                                                                                   HHK      }
+  G1H501D = 5C+9H+4O;      {CH3COCH(OOH)CH2CH2(O.)                                                                                 1.HK     }
+  GHK5008 = 5C+10H+4O;     {CH3COCH(OOH)CH2CH2(OH)                                                                                 HKO      }
+  GHN500X = 5C+9H+N+6O;    {CH3COCH(OOH)CH2CH2(ONO2)                                                                               HNK      }
+  GHD500I = 5C+8H+4O;      {CH3COCH(OOH)CH2CHO                                                                                     HDK      }
+  GAH500Y = 5C+8H+5O;      {CH3COCH(OOH)CH2CO(OH)                                                                                  AHK      }
+  G3H500R = 5C+7H+6O;      {CH3COCH(OOH)CH2CO(OO.)                                                                                 3.HKK    }
+  GGH500W = 5C+8H+6O;      {CH3COCH(OOH)CH2CO(OOH)                                                                                 GHK      }
+  GPH500a = 5C+7H+N+8O;    {CH3COCH(OOH)CH2CO(OONO2)                                                                               PHK      }
+  GHD4007 = 4C+6H+4O;      {CH3COCH(OOH)CHO                                                                                        HDK      }
+  GAH400D = 4C+6H+5O;      {CH3COCH(OOH)CO(OH)                                                                                     AHK      }
+  G3H4009 = 4C+5H+6O;      {CH3COCH(OOH)CO(OO.)                                                                                    3.HKK    }
+  GGH400C = 4C+6H+6O;      {CH3COCH(OOH)CO(OOH)                                                                                    GHK      }
+  GPH400E = 4C+5H+N+8O;    {CH3COCH(OOH)CO(OONO2)                                                                                  PHK      }
+  G1H5054 = 5C+7H+5O;      {CH3COCH(OOH)COCH2(O.)                                                                                  1.HKK    }
+  GHK500Y = 5C+8H+5O;      {CH3COCH(OOH)COCH2(OH)                                                                                  HKKO     }
+  GHN502r = 5C+7H+N+7O;    {CH3COCH(OOH)COCH2(ONO2)                                                                                HNKK     }
+  GHK500O = 5C+8H+4O;      {CH3COCH(OOH)COCH3                                                                                      HKK      }
+  GHD500z = 5C+6H+5O;      {CH3COCH(OOH)COCHO                                                                                      HDKK     }
+  GAH502c = 5C+6H+6O;      {CH3COCH(OOH)COCO(OH)                                                                                   AHKK     }
+  G3H5047 = 5C+5H+7O;      {CH3COCH(OOH)COCO(OO.)                                                                                  3.HKK    }
+  GGH502N = 5C+6H+7O;      {CH3COCH(OOH)COCO(OOH)                                                                                  GHKK     }
+  GPH502n = 5C+5H+N+9O;    {CH3COCH(OOH)COCO(OONO2)                                                                                PHKK     }
+  G1K3000 = 3C+5H+2O;      {CH3COCH2(O.)                                                                                           1.K      }
+  GKO3000 = 3C+6H+2O;      {CH3COCH2(OH)                                                                                           KO       }
+  GNK3000 = 3C+5H+N+4O;    {CH3COCH2(ONO2)                                                                                         NK       }
+  G2K3000 = 3C+5H+3O;      {CH3COCH2(OO.)                                                                                          2.K      }
+  GHK3000 = 3C+6H+3O;      {CH3COCH2(OOH)                                                                                          HK       }
+  G1K5007 = 5C+9H+3O;      {CH3COCH2CH(O.)CH2(OH)                                                                                  1.KO     }
+  G1N500Q = 5C+8H+N+5O;    {CH3COCH2CH(O.)CH2(ONO2)                                                                                1.NK     }
+  G1H500h = 5C+9H+4O;      {CH3COCH2CH(O.)CH2(OOH)                                                                                 1.HK     }
+  G1K5000 = 5C+9H+2O;      {CH3COCH2CH(O.)CH3                                                                                      1.K      }
+  G1D500D = 5C+7H+3O;      {CH3COCH2CH(O.)CHO                                                                                      1.DK     }
+  G1A500S = 5C+7H+4O;      {CH3COCH2CH(O.)CO(OH)                                                                                   1.AK     }
+  G1G500P = 5C+7H+5O;      {CH3COCH2CH(O.)CO(OOH)                                                                                  1.GK     }
+  G1P500U = 5C+6H+N+7O;    {CH3COCH2CH(O.)CO(OONO2)                                                                                1.PK     }
+  G1K500X = 5C+9H+3O;      {CH3COCH2CH(OH)CH2(O.)                                                                                  1.KO     }
+  GKO5006 = 5C+10H+3O;     {CH3COCH2CH(OH)CH2(OH)                                                                                  KOO      }
+  GNK500H = 5C+9H+N+5O;    {CH3COCH2CH(OH)CH2(ONO2)                                                                                NKO      }
+  G2K500f = 5C+9H+4O;      {CH3COCH2CH(OH)CH2(OO.)                                                                                 2.KO     }
+  GHK500N = 5C+10H+4O;     {CH3COCH2CH(OH)CH2(OOH)                                                                                 HKO      }
+  GDK500A = 5C+8H+3O;      {CH3COCH2CH(OH)CHO                                                                                      DKO      }
+  GAK500G = 5C+8H+4O;      {CH3COCH2CH(OH)CO(OH)                                                                                   AKO      }
+  G3K500H = 5C+7H+5O;      {CH3COCH2CH(OH)CO(OO.)                                                                                  3.KKO    }
+  GGK500I = 5C+8H+5O;      {CH3COCH2CH(OH)CO(OOH)                                                                                  GKO      }
+  GPK500I = 5C+7H+N+7O;    {CH3COCH2CH(OH)CO(OONO2)                                                                                PKO      }
+  G1N5017 = 5C+8H+N+5O;    {CH3COCH2CH(ONO2)CH2(O.)                                                                                1.NK     }
+  GNK5006 = 5C+9H+N+5O;    {CH3COCH2CH(ONO2)CH2(OH)                                                                                NKO      }
+  GNN500W = 5C+8H+2N+7O;   {CH3COCH2CH(ONO2)CH2(ONO2)                                                                              NNK      }
+  G2N5016 = 5C+8H+N+6O;    {CH3COCH2CH(ONO2)CH2(OO.)                                                                               2.NK     }
+  GHN501E = 5C+9H+N+6O;    {CH3COCH2CH(ONO2)CH2(OOH)                                                                               HNK      }
+  GNK5004 = 5C+9H+N+4O;    {CH3COCH2CH(ONO2)CH3                                                                                    NK       }
+  GND500L = 5C+7H+N+5O;    {CH3COCH2CH(ONO2)CHO                                                                                    NDK      }
+  GAN500j = 5C+7H+N+6O;    {CH3COCH2CH(ONO2)CO(OH)                                                                                 ANK      }
+  G3N500N = 5C+6H+N+7O;    {CH3COCH2CH(ONO2)CO(OO.)                                                                                3.NKK    }
+  GGN500b = 5C+7H+N+7O;    {CH3COCH2CH(ONO2)CO(OOH)                                                                                GNK      }
+  GPN500l = 5C+6H+2N+9O;   {CH3COCH2CH(ONO2)CO(OONO2)                                                                              PNK      }
+  G2K5007 = 5C+9H+4O;      {CH3COCH2CH(OO.)CH2(OH)                                                                                 2.KO     }
+  G2N500Q = 5C+8H+N+6O;    {CH3COCH2CH(OO.)CH2(ONO2)                                                                               2.NK     }
+  G2H500W = 5C+9H+5O;      {CH3COCH2CH(OO.)CH2(OOH)                                                                                2.HK     }
+  G2K5000 = 5C+9H+3O;      {CH3COCH2CH(OO.)CH3                                                                                     2.K      }
+  G2D500B = 5C+7H+4O;      {CH3COCH2CH(OO.)CHO                                                                                     2.DK     }
+  G2A500R = 5C+7H+5O;      {CH3COCH2CH(OO.)CO(OH)                                                                                  2.AK     }
+  G2G500O = 5C+7H+6O;      {CH3COCH2CH(OO.)CO(OOH)                                                                                 2.GK     }
+  G2P500T = 5C+6H+N+8O;    {CH3COCH2CH(OO.)CO(OONO2)                                                                               2.PK     }
+  G1H501E = 5C+9H+4O;      {CH3COCH2CH(OOH)CH2(O.)                                                                                 1.HK     }
+  GHK5009 = 5C+10H+4O;     {CH3COCH2CH(OOH)CH2(OH)                                                                                 HKO      }
+  GHN500Y = 5C+9H+N+6O;    {CH3COCH2CH(OOH)CH2(ONO2)                                                                               HNK      }
+  GHH500T = 5C+10H+5O;     {CH3COCH2CH(OOH)CH2(OOH)                                                                                HHK      }
+  GHK5003 = 5C+10H+3O;     {CH3COCH2CH(OOH)CH3                                                                                     HK       }
+  GHD500J = 5C+8H+4O;      {CH3COCH2CH(OOH)CHO                                                                                     HDK      }
+  GAH500Z = 5C+8H+5O;      {CH3COCH2CH(OOH)CO(OH)                                                                                  AHK      }
+  G3H500S = 5C+7H+6O;      {CH3COCH2CH(OOH)CO(OO.)                                                                                 3.HKK    }
+  GGH500X = 5C+8H+6O;      {CH3COCH2CH(OOH)CO(OOH)                                                                                 GHK      }
+  GPH500b = 5C+7H+N+8O;    {CH3COCH2CH(OOH)CO(OONO2)                                                                               PHK      }
+  G1K4001 = 4C+7H+2O;      {CH3COCH2CH2(O.)                                                                                        1.K      }
+  GKO4001 = 4C+8H+2O;      {CH3COCH2CH2(OH)                                                                                        KO       }
+  GNK4001 = 4C+7H+N+4O;    {CH3COCH2CH2(ONO2)                                                                                      NK       }
+  G2K4001 = 4C+7H+3O;      {CH3COCH2CH2(OO.)                                                                                       2.K      }
+  GHK4001 = 4C+8H+3O;      {CH3COCH2CH2(OOH)                                                                                       HK       }
+  G1K5008 = 5C+9H+2O;      {CH3COCH2CH2CH2(O.)                                                                                     1.K      }
+  GKO5000 = 5C+10H+2O;     {CH3COCH2CH2CH2(OH)                                                                                     KO       }
+  GNK5000 = 5C+9H+N+4O;    {CH3COCH2CH2CH2(ONO2)                                                                                   NK       }
+  G2K500R = 5C+9H+3O;      {CH3COCH2CH2CH2(OO.)                                                                                    2.K      }
+  GHK500A = 5C+10H+3O;     {CH3COCH2CH2CH2(OOH)                                                                                    HK       }
+  GDK5002 = 5C+8H+2O;      {CH3COCH2CH2CHO                                                                                         DK       }
+  GAK5001 = 5C+8H+3O;      {CH3COCH2CH2CO(OH)                                                                                      AK       }
+  G3K5007 = 5C+7H+4O;      {CH3COCH2CH2CO(OO.)                                                                                     3.KK     }
+  GGK5001 = 5C+8H+4O;      {CH3COCH2CH2CO(OOH)                                                                                     GK       }
+  GPK5001 = 5C+7H+N+6O;    {CH3COCH2CH2CO(OONO2)                                                                                   PK       }
+  GDK4000 = 4C+6H+2O;      {CH3COCH2CHO                                                                                            DK       }
+  GAK4000 = 4C+6H+3O;      {CH3COCH2CO(OH)                                                                                         AK       }
+  G3K4003 = 4C+5H+4O;      {CH3COCH2CO(OO.)                                                                                        3.KK     }
+  GGK4000 = 4C+6H+4O;      {CH3COCH2CO(OOH)                                                                                        GK       }
+  GPK4000 = 4C+5H+N+6O;    {CH3COCH2CO(OONO2)                                                                                      PK       }
+  G1K500J = 5C+7H+3O;      {CH3COCH2COCH2(O.)                                                                                      1.KK     }
+  GKK5003 = 5C+8H+3O;      {CH3COCH2COCH2(OH)                                                                                      KKO      }
+  GNK500I = 5C+7H+N+5O;    {CH3COCH2COCH2(ONO2)                                                                                    NKK      }
+  G2K500I = 5C+7H+4O;      {CH3COCH2COCH2(OO.)                                                                                     2.KK     }
+  GHK500D = 5C+8H+4O;      {CH3COCH2COCH2(OOH)                                                                                     HKK      }
+  GKK5000 = 5C+8H+2O;      {CH3COCH2COCH3                                                                                          KK       }
+  GDK500C = 5C+6H+3O;      {CH3COCH2COCHO                                                                                          DKK      }
+  GAK500H = 5C+6H+4O;      {CH3COCH2COCO(OH)                                                                                       AKK      }
+  G3K500d = 5C+5H+5O;      {CH3COCH2COCO(OO.)                                                                                      3.KKK    }
+  GGK500J = 5C+6H+5O;      {CH3COCH2COCO(OOH)                                                                                      GKK      }
+  GPK500J = 5C+5H+N+7O;    {CH3COCH2COCO(OONO2)                                                                                    PKK      }
+  GK03000 = 3C+6H+O;       {CH3COCH3                                                                                               K        }
+  GDK3000 = 3C+4H+2O;      {CH3COCHO                                                                                               DK       }
+  GAK3000 = 3C+4H+3O;      {CH3COCO(OH)                                                                                            AK       }
+  G3K3004 = 3C+3H+4O;      {CH3COCO(OO.)                                                                                           3.KK     }
+  GGK3000 = 3C+4H+4O;      {CH3COCO(OOH)                                                                                           GK       }
+  GPK3000 = 3C+3H+N+6O;    {CH3COCO(OONO2)                                                                                         PK       }
+  G1K500P = 5C+7H+4O;      {CH3COCOCH(O.)CH2(OH)                                                                                   1.KKO    }
+  G1N502P = 5C+6H+N+6O;    {CH3COCOCH(O.)CH2(ONO2)                                                                                 1.NKK    }
+  G1H507T = 5C+7H+5O;      {CH3COCOCH(O.)CH2(OOH)                                                                                  1.HKK    }
+  G1K500N = 5C+7H+3O;      {CH3COCOCH(O.)CH3                                                                                       1.KK     }
+  G1D501C = 5C+5H+4O;      {CH3COCOCH(O.)CHO                                                                                       1.DKK    }
+  G1A5021 = 5C+5H+5O;      {CH3COCOCH(O.)CO(OH)                                                                                    1.AKK    }
+  G1G501e = 5C+5H+6O;      {CH3COCOCH(O.)CO(OOH)                                                                                   1.GKK    }
+  G1P502F = 5C+4H+N+8O;    {CH3COCOCH(O.)CO(OONO2)                                                                                 1.PKK    }
+  G1K500p = 5C+7H+4O;      {CH3COCOCH(OH)CH2(O.)                                                                                   1.KKO    }
+  GKK500A = 5C+8H+4O;      {CH3COCOCH(OH)CH2(OH)                                                                                   KKOO     }
+  GNK500r = 5C+7H+N+6O;    {CH3COCOCH(OH)CH2(ONO2)                                                                                 NKKO     }
+  G2K500e = 5C+7H+5O;      {CH3COCOCH(OH)CH2(OO.)                                                                                  2.KKO    }
+  GHK500o = 5C+8H+5O;      {CH3COCOCH(OH)CH2(OOH)                                                                                  HKKO     }
+  GDK500R = 5C+6H+4O;      {CH3COCOCH(OH)CHO                                                                                       DKKO     }
+  GAK500T = 5C+6H+5O;      {CH3COCOCH(OH)CO(OH)                                                                                    AKKO     }
+  G3K500e = 5C+5H+6O;      {CH3COCOCH(OH)CO(OO.)                                                                                   3.KKK    }
+  GGK500Y = 5C+6H+6O;      {CH3COCOCH(OH)CO(OOH)                                                                                   GKKO     }
+  GPK500Y = 5C+5H+N+8O;    {CH3COCOCH(OH)CO(OONO2)                                                                                 PKKO     }
+  G1N503d = 5C+6H+N+6O;    {CH3COCOCH(ONO2)CH2(O.)                                                                                 1.NKK    }
+  GNK500c = 5C+7H+N+6O;    {CH3COCOCH(ONO2)CH2(OH)                                                                                 NKKO     }
+  GNN501z = 5C+6H+2N+8O;   {CH3COCOCH(ONO2)CH2(ONO2)                                                                               NNKK     }
+  G2N503M = 5C+6H+N+7O;    {CH3COCOCH(ONO2)CH2(OO.)                                                                                2.NKK    }
+  GHN504M = 5C+7H+N+7O;    {CH3COCOCH(ONO2)CH2(OOH)                                                                                HNKK     }
+  GNK500Z = 5C+7H+N+5O;    {CH3COCOCH(ONO2)CH3                                                                                     NKK      }
+  GND5011 = 5C+5H+N+6O;    {CH3COCOCH(ONO2)CHO                                                                                     NDKK     }
+  GAN501x = 5C+5H+N+7O;    {CH3COCOCH(ONO2)CO(OH)                                                                                  ANKK     }
+  G3N501P = 5C+4H+N+8O;    {CH3COCOCH(ONO2)CO(OO.)                                                                                 3.NKK    }
+  GGN501k = 5C+5H+N+8O;    {CH3COCOCH(ONO2)CO(OOH)                                                                                 GNKK     }
+  GPN5028 = 5C+4H+2N+10O;  {CH3COCOCH(ONO2)CO(OONO2)                                                                               PNKK     }
+  G2K500O = 5C+7H+5O;      {CH3COCOCH(OO.)CH2(OH)                                                                                  2.KKO    }
+  G2N502E = 5C+6H+N+7O;    {CH3COCOCH(OO.)CH2(ONO2)                                                                                2.NKK    }
+  G2K500M = 5C+7H+4O;      {CH3COCOCH(OO.)CH3                                                                                      2.KK     }
+  G2A501i = 5C+5H+6O;      {CH3COCOCH(OO.)CO(OH)                                                                                   2.AKK    }
+  G2G501N = 5C+5H+7O;      {CH3COCOCH(OO.)CO(OOH)                                                                                  2.GKK    }
+  G2P501t = 5C+4H+N+9O;    {CH3COCOCH(OO.)CO(OONO2)                                                                                2.PKK    }
+  G1H504z = 5C+7H+5O;      {CH3COCOCH(OOH)CH2(O.)                                                                                  1.HKK    }
+  GHK500U = 5C+8H+5O;      {CH3COCOCH(OOH)CH2(OH)                                                                                  HKKO     }
+  GHN502o = 5C+7H+N+7O;    {CH3COCOCH(OOH)CH2(ONO2)                                                                                HNKK     }
+  GHK500S = 5C+8H+4O;      {CH3COCOCH(OOH)CH3                                                                                      HKK      }
+  GHD500w = 5C+6H+5O;      {CH3COCOCH(OOH)CHO                                                                                      HDKK     }
+  GAH502N = 5C+6H+6O;      {CH3COCOCH(OOH)CO(OH)                                                                                   AHKK     }
+  G3H501r = 5C+5H+7O;      {CH3COCOCH(OOH)CO(OO.)                                                                                  3.HKK    }
+  GGH5029 = 5C+6H+7O;      {CH3COCOCH(OOH)CO(OOH)                                                                                  GHKK     }
+  GPH502U = 5C+5H+N+9O;    {CH3COCOCH(OOH)CO(OONO2)                                                                                PHKK     }
+  G1K4009 = 4C+5H+3O;      {CH3COCOCH2(O.)                                                                                         1.KK     }
+  GKK4000 = 4C+6H+3O;      {CH3COCOCH2(OH)                                                                                         KKO      }
+  GNK400A = 4C+5H+N+5O;    {CH3COCOCH2(ONO2)                                                                                       NKK      }
+  G2K4009 = 4C+5H+4O;      {CH3COCOCH2(OO.)                                                                                        2.KK     }
+  GHK400A = 4C+6H+4O;      {CH3COCOCH2(OOH)                                                                                        HKK      }
+  G1K500M = 5C+7H+3O;      {CH3COCOCH2CH2(O.)                                                                                      1.KK     }
+  GKK5002 = 5C+8H+3O;      {CH3COCOCH2CH2(OH)                                                                                      KKO      }
+  GNK500G = 5C+7H+N+5O;    {CH3COCOCH2CH2(ONO2)                                                                                    NKK      }
+  G2K500L = 5C+7H+4O;      {CH3COCOCH2CH2(OO.)                                                                                     2.KK     }
+  GHK500R = 5C+8H+4O;      {CH3COCOCH2CH2(OOH)                                                                                     HKK      }
+  GDK500D = 5C+6H+3O;      {CH3COCOCH2CHO                                                                                          DKK      }
+  GAK500B = 5C+6H+4O;      {CH3COCOCH2CO(OH)                                                                                       AKK      }
+  G3K500K = 5C+5H+5O;      {CH3COCOCH2CO(OO.)                                                                                      3.KKK    }
+  GGK500D = 5C+6H+5O;      {CH3COCOCH2CO(OOH)                                                                                      GKK      }
+  GPK500D = 5C+5H+N+7O;    {CH3COCOCH2CO(OONO2)                                                                                    PKK      }
+  GDK4008 = 4C+4H+3O;      {CH3COCOCHO                                                                                             DKK      }
+  GAK4006 = 4C+4H+4O;      {CH3COCOCO(OH)                                                                                          AKK      }
+  G3K400F = 4C+3H+5O;      {CH3COCOCO(OO.)                                                                                         3.KKK    }
+  GGK4006 = 4C+4H+5O;      {CH3COCOCO(OOH)                                                                                         GKK      }
+  GPK4006 = 4C+3H+N+7O;    {CH3COCOCO(OONO2)                                                                                       PKK      }
+  G1K500q = 5C+5H+4O;      {CH3COCOCOCH2(O.)                                                                                       1.KKK    }
+  GKK500B = 5C+6H+4O;      {CH3COCOCOCH2(OH)                                                                                       KKKO     }
+  GNK500s = 5C+5H+N+6O;    {CH3COCOCOCH2(ONO2)                                                                                     NKKK     }
+  G2K500g = 5C+5H+5O;      {CH3COCOCOCH2(OO.)                                                                                      2.KKK    }
+  GHK500p = 5C+6H+5O;      {CH3COCOCOCH2(OOH)                                                                                      HKKK     }
+  GKK5009 = 5C+6H+3O;      {CH3COCOCOCH3                                                                                           KKK      }
+  GDK500W = 5C+4H+4O;      {CH3COCOCOCHO                                                                                           DKKK     }
+  GAK500U = 5C+4H+5O;      {CH3COCOCOCO(OH)                                                                                        AKKK     }
+  G3K500o = 5C+3H+6O;      {CH3COCOCOCO(OO.)                                                                                       3.KKK    }
+  GGK500Z = 5C+4H+6O;      {CH3COCOCOCO(OOH)                                                                                       GKKK     }
+  GPK500Z = 5C+3H+N+8O;    {CH3COCOCOCO(OONO2)                                                                                     PKKK     }
+  GU03000 = 3C+6H;         {CH3CdH=CdH2                                                                                            U        }
+  GCH4    = C+4H;          {CH4                                                                                                     C       }
+  GHCOOH  = C+2H+2O;       {CHO(OH)                                                                                                 a       }
+  GN01002 = C+H+N+4O;      {CHO(ONO2)                                                                                               n       }
+  GHCOO2  = C+H+3O;        {CHO(OO.)                                                                                                d3.     }
+  GHCOO2H = C+2H+3O;       {CHO(OOH)                                                                                                g       }
+  GP01001 = C+H+N+5O;      {CHO(OONO2)                                                                                              P       }
+  G1D3005 = 3C+3H+3O;      {CHOCH(O.)CHO                                                                                           1.DD     }
+  G1D500R = 5C+7H+5O;      {CHOCH(OH)CH(O.)CH(OH)CHO                                                                               1.DDO    }
+  G1D500K = 5C+7H+4O;      {CHOCH(OH)CH(O.)CH2CHO                                                                                  1.DDO    }
+  G1D400K = 4C+5H+4O;      {CHOCH(OH)CH(O.)CHO                                                                                     1.DDO    }
+  G1D501X = 5C+5H+5O;      {CHOCH(OH)CH(O.)COCHO                                                                                   1.DDK    }
+  G1D501S = 5C+7H+5O;      {CHOCH(OH)CH(OH)CH(O.)CHO                                                                               1.DDO    }
+  G1D5013 = 5C+9H+5O;      {CHOCH(OH)CH(OH)CH(OH)CH2(O.)                                                                           1.DOO    }
+  GDD5006 = 5C+8H+5O;      {CHOCH(OH)CH(OH)CH(OH)CHO                                                                               DDOOO    }
+  G3D5009 = 5C+7H+7O;      {CHOCH(OH)CH(OH)CH(OH)CO(OO.)                                                                           3.DKO    }
+  G1N507C = 5C+8H+N+7O;    {CHOCH(OH)CH(OH)CH(ONO2)CH2(O.)                                                                         1.NDO    }
+  G2N506E = 5C+8H+N+8O;    {CHOCH(OH)CH(OH)CH(ONO2)CH2(OO.)                                                                        2.NDO    }
+  GND501T = 5C+7H+N+7O;    {CHOCH(OH)CH(OH)CH(ONO2)CHO                                                                             NDDOO    }
+  G3N502L = 5C+6H+N+9O;    {CHOCH(OH)CH(OH)CH(ONO2)CO(OO.)                                                                         3.NDK    }
+  G1H50Ae = 5C+9H+6O;      {CHOCH(OH)CH(OH)CH(OOH)CH2(O.)                                                                          1.HDO    }
+  GHD501D = 5C+8H+6O;      {CHOCH(OH)CH(OH)CH(OOH)CHO                                                                              HDDOO    }
+  G3H503F = 5C+7H+8O;      {CHOCH(OH)CH(OH)CH(OOH)CO(OO.)                                                                          3.HDK    }
+  G1D400G = 4C+7H+4O;      {CHOCH(OH)CH(OH)CH2(O.)                                                                                 1.DOO    }
+  G2D400A = 4C+7H+5O;      {CHOCH(OH)CH(OH)CH2(OO.)                                                                                2.DOO    }
+  G1D5017 = 5C+9H+4O;      {CHOCH(OH)CH(OH)CH2CH2(O.)                                                                              1.DOO    }
+  G2D500d = 5C+9H+5O;      {CHOCH(OH)CH(OH)CH2CH2(OO.)                                                                             2.DOO    }
+  G3D5003 = 5C+7H+6O;      {CHOCH(OH)CH(OH)CH2CO(OO.)                                                                              3.DKO    }
+  GDD4003 = 4C+6H+4O;      {CHOCH(OH)CH(OH)CHO                                                                                     DDOO     }
+  G3D4005 = 4C+5H+6O;      {CHOCH(OH)CH(OH)CO(OO.)                                                                                 3.DKO    }
+  G1D501U = 5C+7H+5O;      {CHOCH(OH)CH(OH)COCH2(O.)                                                                               1.DKO    }
+  GDD500C = 5C+6H+5O;      {CHOCH(OH)CH(OH)COCHO                                                                                   DDKOO    }
+  G3D500M = 5C+5H+7O;      {CHOCH(OH)CH(OH)COCO(OO.)                                                                               3.DKK    }
+  G1N5076 = 5C+6H+N+7O;    {CHOCH(OH)CH(ONO2)CH(O.)CHO                                                                             1.NDD    }
+  G1N503w = 5C+8H+N+7O;    {CHOCH(OH)CH(ONO2)CH(OH)CH2(O.)                                                                         1.NDO    }
+  G2N503U = 5C+8H+N+8O;    {CHOCH(OH)CH(ONO2)CH(OH)CH2(OO.)                                                                        2.NDO    }
+  GND500s = 5C+7H+N+7O;    {CHOCH(OH)CH(ONO2)CH(OH)CHO                                                                             NDDOO    }
+  G3N501C = 5C+6H+N+9O;    {CHOCH(OH)CH(ONO2)CH(OH)CO(OO.)                                                                         3.NDK    }
+  G1N506D = 5C+7H+2N+9O;   {CHOCH(OH)CH(ONO2)CH(ONO2)CH2(O.)                                                                       1.NND    }
+  G2N506h = 5C+7H+2N+10O;  {CHOCH(OH)CH(ONO2)CH(ONO2)CH2(OO.)                                                                      2.NND    }
+  GNN503C = 5C+6H+2N+9O;   {CHOCH(OH)CH(ONO2)CH(ONO2)CHO                                                                           NNDDO    }
+  G3N502A = 5C+5H+2N+11O;  {CHOCH(OH)CH(ONO2)CH(ONO2)CO(OO.)                                                                       3.NND    }
+  G2N505s = 5C+6H+N+8O;    {CHOCH(OH)CH(ONO2)CH(OO.)CHO                                                                            2.NDD    }
+  G1H507b = 5C+8H+N+8O;    {CHOCH(OH)CH(ONO2)CH(OOH)CH2(O.)                                                                        1.HND    }
+  G2H502s = 5C+8H+N+9O;    {CHOCH(OH)CH(ONO2)CH(OOH)CH2(OO.)                                                                       2.HND    }
+  GHN505o = 5C+7H+N+8O;    {CHOCH(OH)CH(ONO2)CH(OOH)CHO                                                                            HNDDO    }
+  G3H502s = 5C+6H+N+10O;   {CHOCH(OH)CH(ONO2)CH(OOH)CO(OO.)                                                                        3.HND    }
+  G1N400p = 4C+6H+N+6O;    {CHOCH(OH)CH(ONO2)CH2(O.)                                                                               1.NDO    }
+  G2N400k = 4C+6H+N+7O;    {CHOCH(OH)CH(ONO2)CH2(OO.)                                                                              2.NDO    }
+  G1N503l = 5C+8H+N+6O;    {CHOCH(OH)CH(ONO2)CH2CH2(O.)                                                                            1.NDO    }
+  G2N503P = 5C+8H+N+7O;    {CHOCH(OH)CH(ONO2)CH2CH2(OO.)                                                                           2.NDO    }
+  GND500a = 5C+7H+N+6O;    {CHOCH(OH)CH(ONO2)CH2CHO                                                                                NDDO     }
+  G3N500g = 5C+6H+N+8O;    {CHOCH(OH)CH(ONO2)CH2CO(OO.)                                                                            3.NDK    }
+  GND400J = 4C+5H+N+6O;    {CHOCH(OH)CH(ONO2)CHO                                                                                   NDDO     }
+  G3N400U = 4C+4H+N+8O;    {CHOCH(OH)CH(ONO2)CO(OO.)                                                                               3.NDK    }
+  G1N5074 = 5C+6H+N+7O;    {CHOCH(OH)CH(ONO2)COCH2(O.)                                                                             1.NDK    }
+  G2N506J = 5C+6H+N+8O;    {CHOCH(OH)CH(ONO2)COCH2(OO.)                                                                            2.NDK    }
+  GND501U = 5C+5H+N+7O;    {CHOCH(OH)CH(ONO2)COCHO                                                                                 NDDKO    }
+  G3N502b = 5C+4H+N+9O;    {CHOCH(OH)CH(ONO2)COCO(OO.)                                                                             3.NDK    }
+  G2D500J = 5C+7H+6O;      {CHOCH(OH)CH(OO.)CH(OH)CHO                                                                              2.DDO    }
+  G2D500G = 5C+7H+5O;      {CHOCH(OH)CH(OO.)CH2CHO                                                                                 2.DDO    }
+  G1H50AP = 5C+7H+6O;      {CHOCH(OH)CH(OOH)CH(O.)CHO                                                                              1.HDD    }
+  G1H5061 = 5C+9H+6O;      {CHOCH(OH)CH(OOH)CH(OH)CH2(O.)                                                                          1.HDO    }
+  G2H502K = 5C+9H+7O;      {CHOCH(OH)CH(OOH)CH(OH)CH2(OO.)                                                                         2.HDO    }
+  GHD500i = 5C+8H+6O;      {CHOCH(OH)CH(OOH)CH(OH)CHO                                                                              HDDOO    }
+  G3H501N = 5C+7H+8O;      {CHOCH(OH)CH(OOH)CH(OH)CO(OO.)                                                                          3.HDK    }
+  G1H50Aq = 5C+8H+N+8O;    {CHOCH(OH)CH(OOH)CH(ONO2)CH2(O.)                                                                        1.HND    }
+  G2H503Y = 5C+8H+N+9O;    {CHOCH(OH)CH(OOH)CH(ONO2)CH2(OO.)                                                                       2.HND    }
+  G3H503i = 5C+6H+N+10O;   {CHOCH(OH)CH(OOH)CH(ONO2)CO(OO.)                                                                        3.HND    }
+  G1H50Ac = 5C+9H+7O;      {CHOCH(OH)CH(OOH)CH(OOH)CH2(O.)                                                                         1.HHD    }
+  G2H503e = 5C+9H+8O;      {CHOCH(OH)CH(OOH)CH(OOH)CH2(OO.)                                                                        2.HHD    }
+  GHH502F = 5C+8H+7O;      {CHOCH(OH)CH(OOH)CH(OOH)CHO                                                                             HHDDO    }
+  G3H503B = 5C+7H+9O;      {CHOCH(OH)CH(OOH)CH(OOH)CO(OO.)                                                                         3.HHD    }
+  G1H400j = 4C+7H+5O;      {CHOCH(OH)CH(OOH)CH2(O.)                                                                                1.HDO    }
+  G2H400e = 4C+7H+6O;      {CHOCH(OH)CH(OOH)CH2(OO.)                                                                               2.HDO    }
+  G1H5076 = 5C+9H+5O;      {CHOCH(OH)CH(OOH)CH2CH2(O.)                                                                             1.HDO    }
+  G2H502g = 5C+9H+6O;      {CHOCH(OH)CH(OOH)CH2CH2(OO.)                                                                            2.HDO    }
+  GHD500O = 5C+8H+5O;      {CHOCH(OH)CH(OOH)CH2CHO                                                                                 HDDO     }
+  G3H500g = 5C+7H+7O;      {CHOCH(OH)CH(OOH)CH2CO(OO.)                                                                             3.HDK    }
+  GHD400L = 4C+6H+5O;      {CHOCH(OH)CH(OOH)CHO                                                                                    HDDO     }
+  G3H400l = 4C+5H+7O;      {CHOCH(OH)CH(OOH)CO(OO.)                                                                                3.HDK    }
+  G1H50An = 5C+7H+6O;      {CHOCH(OH)CH(OOH)COCH2(O.)                                                                              1.HDK    }
+  GHD501K = 5C+6H+6O;      {CHOCH(OH)CH(OOH)COCHO                                                                                  HDDKO    }
+  G3H5055 = 5C+5H+8O;      {CHOCH(OH)CH(OOH)COCO(OO.)                                                                              3.HDK    }
+  G1D3003 = 3C+5H+3O;      {CHOCH(OH)CH2(O.)                                                                                       1.DO     }
+  G2D3003 = 3C+5H+4O;      {CHOCH(OH)CH2(OO.)                                                                                      2.DO     }
+  G1D500w = 5C+7H+4O;      {CHOCH(OH)CH2CH(O.)CHO                                                                                  1.DDO    }
+  G1D5009 = 5C+9H+4O;      {CHOCH(OH)CH2CH(OH)CH2(O.)                                                                              1.DOO    }
+  G2D5006 = 5C+9H+5O;      {CHOCH(OH)CH2CH(OH)CH2(OO.)                                                                             2.DOO    }
+  GDD5001 = 5C+8H+4O;      {CHOCH(OH)CH2CH(OH)CHO                                                                                  DDOO     }
+  G3D5002 = 5C+7H+6O;      {CHOCH(OH)CH2CH(OH)CO(OO.)                                                                              3.DKO    }
+  G1N505o = 5C+8H+N+6O;    {CHOCH(OH)CH2CH(ONO2)CH2(O.)                                                                            1.NDO    }
+  G2N5054 = 5C+8H+N+7O;    {CHOCH(OH)CH2CH(ONO2)CH2(OO.)                                                                           2.NDO    }
+  GND500m = 5C+7H+N+6O;    {CHOCH(OH)CH2CH(ONO2)CHO                                                                                NDDO     }
+  G3N5014 = 5C+6H+N+8O;    {CHOCH(OH)CH2CH(ONO2)CO(OO.)                                                                            3.NDK    }
+  G1H506S = 5C+9H+5O;      {CHOCH(OH)CH2CH(OOH)CH2(O.)                                                                             1.HDO    }
+  G2H502c = 5C+9H+6O;      {CHOCH(OH)CH2CH(OOH)CH2(OO.)                                                                            2.HDO    }
+  GHD500Z = 5C+8H+5O;      {CHOCH(OH)CH2CH(OOH)CHO                                                                                 HDDO     }
+  G3H5015 = 5C+7H+7O;      {CHOCH(OH)CH2CH(OOH)CO(OO.)                                                                             3.HDK    }
+  G1D4004 = 4C+7H+3O;      {CHOCH(OH)CH2CH2(O.)                                                                                    1.DO     }
+  G2D4003 = 4C+7H+4O;      {CHOCH(OH)CH2CH2(OO.)                                                                                   2.DO     }
+  G1D500T = 5C+9H+3O;      {CHOCH(OH)CH2CH2CH2(O.)                                                                                 1.DO     }
+  G2D500K = 5C+9H+4O;      {CHOCH(OH)CH2CH2CH2(OO.)                                                                                2.DO     }
+  G3D5000 = 5C+7H+5O;      {CHOCH(OH)CH2CH2CO(OO.)                                                                                 3.DKO    }
+  G3D4001 = 4C+5H+5O;      {CHOCH(OH)CH2CO(OO.)                                                                                    3.DKO    }
+  G1D5012 = 5C+7H+4O;      {CHOCH(OH)CH2COCH2(O.)                                                                                  1.DKO    }
+  G2D500b = 5C+7H+5O;      {CHOCH(OH)CH2COCH2(OO.)                                                                                 2.DKO    }
+  GDD5007 = 5C+6H+4O;      {CHOCH(OH)CH2COCHO                                                                                      DDKO     }
+  G3D500G = 5C+5H+6O;      {CHOCH(OH)CH2COCO(OO.)                                                                                  3.DKK    }
+  GDD3001 = 3C+4H+3O;      {CHOCH(OH)CHO                                                                                           DDO      }
+  G3D3001 = 3C+3H+5O;      {CHOCH(OH)CO(OO.)                                                                                       3.DKO    }
+  G1D501T = 5C+5H+5O;      {CHOCH(OH)COCH(O.)CHO                                                                                   1.DDK    }
+  G1D5014 = 5C+7H+5O;      {CHOCH(OH)COCH(OH)CH2(O.)                                                                               1.DKO    }
+  GDD5008 = 5C+6H+5O;      {CHOCH(OH)COCH(OH)CHO                                                                                   DDKOO    }
+  G3D500B = 5C+5H+7O;      {CHOCH(OH)COCH(OH)CO(OO.)                                                                               3.DKK    }
+  G1N506n = 5C+6H+N+7O;    {CHOCH(OH)COCH(ONO2)CH2(O.)                                                                             1.NDK    }
+  GND501Z = 5C+5H+N+7O;    {CHOCH(OH)COCH(ONO2)CHO                                                                                 NDDKO    }
+  G3N502c = 5C+4H+N+9O;    {CHOCH(OH)COCH(ONO2)CO(OO.)                                                                             3.NDK    }
+  G1H50Af = 5C+7H+6O;      {CHOCH(OH)COCH(OOH)CH2(O.)                                                                              1.HDK    }
+  GHD501F = 5C+6H+6O;      {CHOCH(OH)COCH(OOH)CHO                                                                                  HDDKO    }
+  G3H503I = 5C+5H+8O;      {CHOCH(OH)COCH(OOH)CO(OO.)                                                                              3.HDK    }
+  G1D400H = 4C+5H+4O;      {CHOCH(OH)COCH2(O.)                                                                                     1.DKO    }
+  G2D400D = 4C+5H+5O;      {CHOCH(OH)COCH2(OO.)                                                                                    2.DKO    }
+  G1D500i = 5C+7H+4O;      {CHOCH(OH)COCH2CH2(O.)                                                                                  1.DKO    }
+  GDD5005 = 5C+6H+4O;      {CHOCH(OH)COCH2CHO                                                                                      DDKO     }
+  G3D5008 = 5C+5H+6O;      {CHOCH(OH)COCH2CO(OO.)                                                                                  3.DKK    }
+  GDD4004 = 4C+4H+4O;      {CHOCH(OH)COCHO                                                                                         DDKO     }
+  G3D4004 = 4C+3H+6O;      {CHOCH(OH)COCO(OO.)                                                                                     3.DKK    }
+  G1D501N = 5C+5H+5O;      {CHOCH(OH)COCOCH2(O.)                                                                                   1.DKK    }
+  GDD500D = 5C+4H+5O;      {CHOCH(OH)COCOCHO                                                                                       DDKKO    }
+  G3D500L = 5C+3H+7O;      {CHOCH(OH)COCOCO(OO.)                                                                                   3.DKK    }
+  G1N5075 = 5C+6H+N+7O;    {CHOCH(ONO2)CH(O.)CH(OH)CHO                                                                             1.NDD    }
+  G1N507H = 5C+5H+2N+9O;   {CHOCH(ONO2)CH(O.)CH(ONO2)CHO                                                                           1.NND    }
+  G1H50Bj = 5C+6H+N+8O;    {CHOCH(ONO2)CH(O.)CH(OOH)CHO                                                                            1.HND    }
+  G1N506U = 5C+6H+N+6O;    {CHOCH(ONO2)CH(O.)CH2CHO                                                                                1.NDD    }
+  G1N401B = 4C+4H+N+6O;    {CHOCH(ONO2)CH(O.)CHO                                                                                   1.NDD    }
+  G1N507D = 5C+4H+N+7O;    {CHOCH(ONO2)CH(O.)COCHO                                                                                 1.NDD    }
+  G1N507I = 5C+6H+N+7O;    {CHOCH(ONO2)CH(OH)CH(O.)CHO                                                                             1.NDD    }
+  G1N506q = 5C+8H+N+7O;    {CHOCH(ONO2)CH(OH)CH(OH)CH2(O.)                                                                         1.NDO    }
+  G2N506k = 5C+8H+N+8O;    {CHOCH(ONO2)CH(OH)CH(OH)CH2(OO.)                                                                        2.NDO    }
+  G3N502K = 5C+6H+N+9O;    {CHOCH(ONO2)CH(OH)CH(OH)CO(OO.)                                                                         3.NDK    }
+  G1N507F = 5C+7H+2N+9O;   {CHOCH(ONO2)CH(OH)CH(ONO2)CH2(O.)                                                                       1.NND    }
+  G2N506T = 5C+7H+2N+10O;  {CHOCH(ONO2)CH(OH)CH(ONO2)CH2(OO.)                                                                      2.NND    }
+  GNN503J = 5C+6H+2N+9O;   {CHOCH(ONO2)CH(OH)CH(ONO2)CHO                                                                           NNDDO    }
+  G3N502j = 5C+5H+2N+11O;  {CHOCH(ONO2)CH(OH)CH(ONO2)CO(OO.)                                                                       3.NND    }
+  G2N506a = 5C+6H+N+8O;    {CHOCH(ONO2)CH(OH)CH(OO.)CHO                                                                            2.NDD    }
+  G1H50Aj = 5C+8H+N+8O;    {CHOCH(ONO2)CH(OH)CH(OOH)CH2(O.)                                                                        1.HND    }
+  GHN506j = 5C+7H+N+8O;    {CHOCH(ONO2)CH(OH)CH(OOH)CHO                                                                            HNDDO    }
+  G3H504h = 5C+6H+N+10O;   {CHOCH(ONO2)CH(OH)CH(OOH)CO(OO.)                                                                        3.HND    }
+  G1N400z = 4C+6H+N+6O;    {CHOCH(ONO2)CH(OH)CH2(O.)                                                                               1.NDO    }
+  G2N400w = 4C+6H+N+7O;    {CHOCH(ONO2)CH(OH)CH2(OO.)                                                                              2.NDO    }
+  G1N506N = 5C+8H+N+6O;    {CHOCH(ONO2)CH(OH)CH2CH2(O.)                                                                            1.NDO    }
+  G3N501l = 5C+6H+N+8O;    {CHOCH(ONO2)CH(OH)CH2CO(OO.)                                                                            3.NDK    }
+  G3N400T = 4C+4H+N+8O;    {CHOCH(ONO2)CH(OH)CO(OO.)                                                                               3.NDK    }
+  G1N506r = 5C+6H+N+7O;    {CHOCH(ONO2)CH(OH)COCH2(O.)                                                                             1.NDK    }
+  G2N506d = 5C+6H+N+8O;    {CHOCH(ONO2)CH(OH)COCH2(OO.)                                                                            2.NDK    }
+  G3N502s = 5C+4H+N+9O;    {CHOCH(ONO2)CH(OH)COCO(OO.)                                                                             3.NDK    }
+  G1N507J = 5C+5H+2N+9O;   {CHOCH(ONO2)CH(ONO2)CH(O.)CHO                                                                           1.NND    }
+  G1N504i = 5C+7H+2N+9O;   {CHOCH(ONO2)CH(ONO2)CH(OH)CH2(O.)                                                                       1.NND    }
+  G2N505m = 5C+7H+2N+10O;  {CHOCH(ONO2)CH(ONO2)CH(OH)CH2(OO.)                                                                      2.NND    }
+  G3N5029 = 5C+5H+2N+11O;  {CHOCH(ONO2)CH(ONO2)CH(OH)CO(OO.)                                                                       3.NND    }
+  G1N506a = 5C+6H+3N+11O;  {CHOCH(ONO2)CH(ONO2)CH(ONO2)CH2(O.)                                                                     1.NNN    }
+  G2N506b = 5C+6H+3N+12O;  {CHOCH(ONO2)CH(ONO2)CH(ONO2)CH2(OO.)                                                                    2.NNN    }
+  GNN503K = 5C+5H+3N+11O;  {CHOCH(ONO2)CH(ONO2)CH(ONO2)CHO                                                                         NNNDD    }
+  G3N502n = 5C+4H+3N+13O;  {CHOCH(ONO2)CH(ONO2)CH(ONO2)CO(OO.)                                                                     3.NNN    }
+  G2N506e = 5C+5H+2N+10O;  {CHOCH(ONO2)CH(ONO2)CH(OO.)CHO                                                                          2.NND    }
+  G1H509K = 5C+7H+2N+10O;  {CHOCH(ONO2)CH(ONO2)CH(OOH)CH2(O.)                                                                      1.HNN    }
+  GHN506n = 5C+6H+2N+10O;  {CHOCH(ONO2)CH(ONO2)CH(OOH)CHO                                                                          HNNDD    }
+  G3H504s = 5C+5H+2N+12O;  {CHOCH(ONO2)CH(ONO2)CH(OOH)CO(OO.)                                                                      3.HNN    }
+  G1N400u = 4C+5H+2N+8O;   {CHOCH(ONO2)CH(ONO2)CH2(O.)                                                                             1.NND    }
+  G2N4015 = 4C+5H+2N+9O;   {CHOCH(ONO2)CH(ONO2)CH2(OO.)                                                                            2.NND    }
+  G1N504c = 5C+7H+2N+8O;   {CHOCH(ONO2)CH(ONO2)CH2CH2(O.)                                                                          1.NND    }
+  G2N505k = 5C+7H+2N+9O;   {CHOCH(ONO2)CH(ONO2)CH2CH2(OO.)                                                                         2.NND    }
+  G3N501h = 5C+5H+2N+10O;  {CHOCH(ONO2)CH(ONO2)CH2CO(OO.)                                                                          3.NND    }
+  GNN400Z = 4C+4H+2N+8O;   {CHOCH(ONO2)CH(ONO2)CHO                                                                                 NNDD     }
+  G3N400X = 4C+3H+2N+10O;  {CHOCH(ONO2)CH(ONO2)CO(OO.)                                                                             3.NND    }
+  G1N506e = 5C+5H+2N+9O;   {CHOCH(ONO2)CH(ONO2)COCH2(O.)                                                                           1.NND    }
+  G2N506L = 5C+5H+2N+10O;  {CHOCH(ONO2)CH(ONO2)COCH2(OO.)                                                                          2.NND    }
+  G3N502q = 5C+3H+2N+11O;  {CHOCH(ONO2)CH(ONO2)COCO(OO.)                                                                           3.NND    }
+  G2N506F = 5C+6H+N+8O;    {CHOCH(ONO2)CH(OO.)CH(OH)CHO                                                                            2.NDD    }
+  G2N506X = 5C+5H+2N+10O;  {CHOCH(ONO2)CH(OO.)CH(ONO2)CHO                                                                          2.NND    }
+  G2N505b = 5C+6H+N+7O;    {CHOCH(ONO2)CH(OO.)CH2CHO                                                                               2.NDD    }
+  G2N4017 = 4C+4H+N+7O;    {CHOCH(ONO2)CH(OO.)CHO                                                                                  2.NDD    }
+  G2N506Z = 5C+4H+N+8O;    {CHOCH(ONO2)CH(OO.)COCHO                                                                                2.NDD    }
+  G1H50Bh = 5C+6H+N+8O;    {CHOCH(ONO2)CH(OOH)CH(O.)CHO                                                                            1.HND    }
+  G1H508D = 5C+8H+N+8O;    {CHOCH(ONO2)CH(OOH)CH(OH)CH2(O.)                                                                        1.HND    }
+  G2H503q = 5C+8H+N+9O;    {CHOCH(ONO2)CH(OOH)CH(OH)CH2(OO.)                                                                       2.HND    }
+  GHN506M = 5C+7H+N+8O;    {CHOCH(ONO2)CH(OOH)CH(OH)CHO                                                                            HNDDO    }
+  G3H503j = 5C+6H+N+10O;   {CHOCH(ONO2)CH(OOH)CH(OH)CO(OO.)                                                                        3.HND    }
+  G1H50BK = 5C+7H+2N+10O;  {CHOCH(ONO2)CH(OOH)CH(ONO2)CH2(O.)                                                                      1.HNN    }
+  G2H503o = 5C+7H+2N+11O;  {CHOCH(ONO2)CH(OOH)CH(ONO2)CH2(OO.)                                                                     2.HNN    }
+  GHN506g = 5C+6H+2N+10O;  {CHOCH(ONO2)CH(OOH)CH(ONO2)CHO                                                                          HNNDD    }
+  G3H504b = 5C+5H+2N+12O;  {CHOCH(ONO2)CH(OOH)CH(ONO2)CO(OO.)                                                                      3.HNN    }
+  GHH502w = 5C+7H+N+9O;    {CHOCH(ONO2)CH(OOH)CH(OOH)CHO                                                                           HHNDD    }
+  G3H504c = 5C+6H+N+11O;   {CHOCH(ONO2)CH(OOH)CH(OOH)CO(OO.)                                                                       3.HHN    }
+  G1H401h = 4C+6H+N+7O;    {CHOCH(ONO2)CH(OOH)CH2(O.)                                                                              1.HND    }
+  G2H401F = 4C+6H+N+8O;    {CHOCH(ONO2)CH(OOH)CH2(OO.)                                                                             2.HND    }
+  G1H5086 = 5C+8H+N+7O;    {CHOCH(ONO2)CH(OOH)CH2CH2(O.)                                                                           1.HND    }
+  GHN505I = 5C+7H+N+7O;    {CHOCH(ONO2)CH(OOH)CH2CHO                                                                               HNDD     }
+  G3H502N = 5C+6H+N+9O;    {CHOCH(ONO2)CH(OOH)CH2CO(OO.)                                                                           3.HND    }
+  GHN400y = 4C+5H+N+7O;    {CHOCH(ONO2)CH(OOH)CHO                                                                                  HNDD     }
+  G3H400h = 4C+4H+N+9O;    {CHOCH(ONO2)CH(OOH)CO(OO.)                                                                              3.HND    }
+  G1H509T = 5C+6H+N+8O;    {CHOCH(ONO2)CH(OOH)COCH2(O.)                                                                            1.HND    }
+  G2H504E = 5C+6H+N+9O;    {CHOCH(ONO2)CH(OOH)COCH2(OO.)                                                                           2.HND    }
+  GHN506i = 5C+5H+N+8O;    {CHOCH(ONO2)CH(OOH)COCHO                                                                                HNDDK    }
+  G3H505W = 5C+4H+N+10O;   {CHOCH(ONO2)CH(OOH)COCO(OO.)                                                                            3.HND    }
+  G1N300A = 3C+4H+N+5O;    {CHOCH(ONO2)CH2(O.)                                                                                     1.ND     }
+  G2N300A = 3C+4H+N+6O;    {CHOCH(ONO2)CH2(OO.)                                                                                    2.ND     }
+  G1N506Z = 5C+6H+N+6O;    {CHOCH(ONO2)CH2CH(O.)CHO                                                                                1.NDD    }
+  G1N502G = 5C+8H+N+6O;    {CHOCH(ONO2)CH2CH(OH)CH2(O.)                                                                            1.NDO    }
+  G2N503E = 5C+8H+N+7O;    {CHOCH(ONO2)CH2CH(OH)CH2(OO.)                                                                           2.NDO    }
+  G3N5013 = 5C+6H+N+8O;    {CHOCH(ONO2)CH2CH(OH)CO(OO.)                                                                            3.NDK    }
+  G1N504q = 5C+7H+2N+8O;   {CHOCH(ONO2)CH2CH(ONO2)CH2(O.)                                                                          1.NND    }
+  G2N505W = 5C+7H+2N+9O;   {CHOCH(ONO2)CH2CH(ONO2)CH2(OO.)                                                                         2.NND    }
+  GNN502v = 5C+6H+2N+8O;   {CHOCH(ONO2)CH2CH(ONO2)CHO                                                                              NNDD     }
+  G3N501v = 5C+5H+2N+10O;  {CHOCH(ONO2)CH2CH(ONO2)CO(OO.)                                                                          3.NND    }
+  G2N505f = 5C+6H+N+7O;    {CHOCH(ONO2)CH2CH(OO.)CHO                                                                               2.NDD    }
+  G1H506O = 5C+8H+N+7O;    {CHOCH(ONO2)CH2CH(OOH)CH2(O.)                                                                           1.HND    }
+  GHN505N = 5C+7H+N+7O;    {CHOCH(ONO2)CH2CH(OOH)CHO                                                                               HNDD     }
+  G3H502a = 5C+6H+N+9O;    {CHOCH(ONO2)CH2CH(OOH)CO(OO.)                                                                           3.HND    }
+  G1N400h = 4C+6H+N+5O;    {CHOCH(ONO2)CH2CH2(O.)                                                                                  1.ND     }
+  G2N400n = 4C+6H+N+6O;    {CHOCH(ONO2)CH2CH2(OO.)                                                                                 2.ND     }
+  G1N504F = 5C+8H+N+5O;    {CHOCH(ONO2)CH2CH2CH2(O.)                                                                               1.ND     }
+  G3N500k = 5C+6H+N+7O;    {CHOCH(ONO2)CH2CH2CO(OO.)                                                                               3.NDK    }
+  G3N400H = 4C+4H+N+7O;    {CHOCH(ONO2)CH2CO(OO.)                                                                                  3.NDK    }
+  G1N504s = 5C+6H+N+6O;    {CHOCH(ONO2)CH2COCH2(O.)                                                                                1.NDK    }
+  G2N5058 = 5C+6H+N+7O;    {CHOCH(ONO2)CH2COCH2(OO.)                                                                               2.NDK    }
+  G3N502Y = 5C+4H+N+8O;    {CHOCH(ONO2)CH2COCO(OO.)                                                                                3.NDK    }
+  GND3005 = 3C+3H+N+5O;    {CHOCH(ONO2)CHO                                                                                         NDD      }
+  G3N3005 = 3C+2H+N+7O;    {CHOCH(ONO2)CO(OO.)                                                                                     3.NDK    }
+  G1N507K = 5C+4H+N+7O;    {CHOCH(ONO2)COCH(O.)CHO                                                                                 1.NDD    }
+  G1N506p = 5C+6H+N+7O;    {CHOCH(ONO2)COCH(OH)CH2(O.)                                                                             1.NDK    }
+  G2N505y = 5C+6H+N+8O;    {CHOCH(ONO2)COCH(OH)CH2(OO.)                                                                            2.NDK    }
+  G3N502p = 5C+4H+N+9O;    {CHOCH(ONO2)COCH(OH)CO(OO.)                                                                             3.NDK    }
+  G1N506i = 5C+5H+2N+9O;   {CHOCH(ONO2)COCH(ONO2)CH2(O.)                                                                           1.NND    }
+  G2N506c = 5C+5H+2N+10O;  {CHOCH(ONO2)COCH(ONO2)CH2(OO.)                                                                          2.NND    }
+  GNN503L = 5C+4H+2N+9O;   {CHOCH(ONO2)COCH(ONO2)CHO                                                                               NNDDK    }
+  G3N502o = 5C+3H+2N+11O;  {CHOCH(ONO2)COCH(ONO2)CO(OO.)                                                                           3.NND    }
+  G1H50BN = 5C+6H+N+8O;    {CHOCH(ONO2)COCH(OOH)CH2(O.)                                                                            1.HND    }
+  GHN506v = 5C+5H+N+8O;    {CHOCH(ONO2)COCH(OOH)CHO                                                                                HNDDK    }
+  G3H505O = 5C+4H+N+10O;   {CHOCH(ONO2)COCH(OOH)CO(OO.)                                                                            3.HND    }
+  G1N4012 = 4C+4H+N+6O;    {CHOCH(ONO2)COCH2(O.)                                                                                   1.NDK    }
+  G2N4019 = 4C+4H+N+7O;    {CHOCH(ONO2)COCH2(OO.)                                                                                  2.NDK    }
+  G1N504m = 5C+6H+N+6O;    {CHOCH(ONO2)COCH2CH2(O.)                                                                                1.NDK    }
+  G2N504e = 5C+6H+N+7O;    {CHOCH(ONO2)COCH2CH2(OO.)                                                                               2.NDK    }
+  G3N501q = 5C+4H+N+8O;    {CHOCH(ONO2)COCH2CO(OO.)                                                                                3.NDK    }
+  G3N400b = 4C+2H+N+8O;    {CHOCH(ONO2)COCO(OO.)                                                                                   3.NDK    }
+  G1N506l = 5C+4H+N+7O;    {CHOCH(ONO2)COCOCH2(O.)                                                                                 1.NDK    }
+  G2N506M = 5C+4H+N+8O;    {CHOCH(ONO2)COCOCH2(OO.)                                                                                2.NDK    }
+  G3N502t = 5C+2H+N+9O;    {CHOCH(ONO2)COCOCO(OO.)                                                                                 3.NDK    }
+  G2D3005 = 3C+3H+4O;      {CHOCH(OO.)CHO                                                                                          2.DD     }
+  G1H506N = 5C+7H+6O;      {CHOCH(OOH)CH(O.)CH(OH)CHO                                                                              1.HDD    }
+  G1H50Bt = 5C+7H+7O;      {CHOCH(OOH)CH(O.)CH(OOH)CHO                                                                             1.HHD    }
+  G1H504N = 5C+7H+5O;      {CHOCH(OOH)CH(O.)CH2CHO                                                                                 1.HDD    }
+  G1H401i = 4C+5H+5O;      {CHOCH(OOH)CH(O.)CHO                                                                                    1.HDD    }
+  G1H50Bu = 5C+5H+6O;      {CHOCH(OOH)CH(O.)COCHO                                                                                  1.HDD    }
+  G1H50Bm = 5C+7H+6O;      {CHOCH(OOH)CH(OH)CH(O.)CHO                                                                              1.HDD    }
+  G1H508Y = 5C+9H+6O;      {CHOCH(OOH)CH(OH)CH(OH)CH2(O.)                                                                          1.HDO    }
+  G3H503E = 5C+7H+8O;      {CHOCH(OOH)CH(OH)CH(OH)CO(OO.)                                                                          3.HDK    }
+  G1H50BQ = 5C+8H+N+8O;    {CHOCH(OOH)CH(OH)CH(ONO2)CH2(O.)                                                                        1.HND    }
+  G2H5043 = 5C+8H+N+9O;    {CHOCH(OOH)CH(OH)CH(ONO2)CH2(OO.)                                                                       2.HND    }
+  G3H504g = 5C+6H+N+10O;   {CHOCH(OOH)CH(OH)CH(ONO2)CO(OO.)                                                                        3.HND    }
+  G1H50AW = 5C+9H+7O;      {CHOCH(OOH)CH(OH)CH(OOH)CH2(O.)                                                                         1.HHD    }
+  G3H505b = 5C+7H+9O;      {CHOCH(OOH)CH(OH)CH(OOH)CO(OO.)                                                                         3.HHD    }
+  G1H400z = 4C+7H+5O;      {CHOCH(OOH)CH(OH)CH2(O.)                                                                                1.HDO    }
+  G2H401J = 4C+7H+6O;      {CHOCH(OOH)CH(OH)CH2(OO.)                                                                               2.HDO    }
+  G1H508X = 5C+9H+5O;      {CHOCH(OOH)CH(OH)CH2CH2(O.)                                                                             1.HDO    }
+  G3H502d = 5C+7H+7O;      {CHOCH(OOH)CH(OH)CH2CO(OO.)                                                                             3.HDK    }
+  G3H400k = 4C+5H+7O;      {CHOCH(OOH)CH(OH)CO(OO.)                                                                                3.HDK    }
+  G1H50Am = 5C+7H+6O;      {CHOCH(OOH)CH(OH)COCH2(O.)                                                                              1.HDK    }
+  G3H505L = 5C+5H+8O;      {CHOCH(OOH)CH(OH)COCO(OO.)                                                                              3.HDK    }
+  G1H50Bs = 5C+6H+N+8O;    {CHOCH(OOH)CH(ONO2)CH(O.)CHO                                                                            1.HND    }
+  G1H508N = 5C+8H+N+8O;    {CHOCH(OOH)CH(ONO2)CH(OH)CH2(O.)                                                                        1.HND    }
+  G2H503a = 5C+8H+N+9O;    {CHOCH(OOH)CH(ONO2)CH(OH)CH2(OO.)                                                                       2.HND    }
+  G3H502r = 5C+6H+N+10O;   {CHOCH(OOH)CH(ONO2)CH(OH)CO(OO.)                                                                        3.HND    }
+  G1H509y = 5C+7H+2N+10O;  {CHOCH(OOH)CH(ONO2)CH(ONO2)CH2(O.)                                                                      1.HNN    }
+  G2H504G = 5C+7H+2N+11O;  {CHOCH(OOH)CH(ONO2)CH(ONO2)CH2(OO.)                                                                     2.HNN    }
+  G3H504r = 5C+5H+2N+12O;  {CHOCH(OOH)CH(ONO2)CH(ONO2)CO(OO.)                                                                      3.HNN    }
+  G2H5045 = 5C+6H+N+9O;    {CHOCH(OOH)CH(ONO2)CH(OO.)CHO                                                                           2.HND    }
+  G1H50AR = 5C+8H+N+9O;    {CHOCH(OOH)CH(ONO2)CH(OOH)CH2(O.)                                                                       1.HHN    }
+  GHH502x = 5C+7H+N+9O;    {CHOCH(OOH)CH(ONO2)CH(OOH)CHO                                                                           HHNDD    }
+  G3H504t = 5C+6H+N+11O;   {CHOCH(OOH)CH(ONO2)CH(OOH)CO(OO.)                                                                       3.HHN    }
+  G1H401W = 4C+6H+N+7O;    {CHOCH(OOH)CH(ONO2)CH2(O.)                                                                              1.HND    }
+  G2H401A = 4C+6H+N+8O;    {CHOCH(OOH)CH(ONO2)CH2(OO.)                                                                             2.HND    }
+  G1H508U = 5C+8H+N+7O;    {CHOCH(OOH)CH(ONO2)CH2CH2(O.)                                                                           1.HND    }
+  G3H502J = 5C+6H+N+9O;    {CHOCH(OOH)CH(ONO2)CH2CO(OO.)                                                                           3.HND    }
+  G3H400g = 4C+4H+N+9O;    {CHOCH(OOH)CH(ONO2)CO(OO.)                                                                              3.HND    }
+  G1H50A4 = 5C+6H+N+8O;    {CHOCH(OOH)CH(ONO2)COCH2(O.)                                                                            1.HND    }
+  G3H505H = 5C+4H+N+10O;   {CHOCH(OOH)CH(ONO2)COCO(OO.)                                                                            3.HND    }
+  G2H502Q = 5C+7H+7O;      {CHOCH(OOH)CH(OO.)CH(OH)CHO                                                                             2.HDD    }
+  G2H5027 = 5C+7H+6O;      {CHOCH(OOH)CH(OO.)CH2CHO                                                                                2.HDD    }
+  G1H50Bi = 5C+7H+7O;      {CHOCH(OOH)CH(OOH)CH(O.)CHO                                                                             1.HHD    }
+  G1H508R = 5C+9H+7O;      {CHOCH(OOH)CH(OOH)CH(OH)CH2(O.)                                                                         1.HHD    }
+  G3H503A = 5C+7H+9O;      {CHOCH(OOH)CH(OOH)CH(OH)CO(OO.)                                                                         3.HHD    }
+  G1H50BP = 5C+8H+N+9O;    {CHOCH(OOH)CH(OOH)CH(ONO2)CH2(O.)                                                                       1.HHN    }
+  G3H504d = 5C+6H+N+11O;   {CHOCH(OOH)CH(OOH)CH(ONO2)CO(OO.)                                                                       3.HHN    }
+  G1H50AS = 5C+9H+8O;      {CHOCH(OOH)CH(OOH)CH(OOH)CH2(O.)                                                                        1.HHH    }
+  G3H505a = 5C+7H+10O;     {CHOCH(OOH)CH(OOH)CH(OOH)CO(OO.)                                                                        3.HHH    }
+  G1H401k = 4C+7H+6O;      {CHOCH(OOH)CH(OOH)CH2(O.)                                                                               1.HHD    }
+  G2H401I = 4C+7H+7O;      {CHOCH(OOH)CH(OOH)CH2(OO.)                                                                              2.HHD    }
+  G1H508W = 5C+9H+6O;      {CHOCH(OOH)CH(OOH)CH2CH2(O.)                                                                            1.HHD    }
+  G3H502b = 5C+7H+8O;      {CHOCH(OOH)CH(OOH)CH2CO(OO.)                                                                            3.HHD    }
+  GHH400r = 4C+6H+6O;      {CHOCH(OOH)CH(OOH)CHO                                                                                   HHDD     }
+  G3H400w = 4C+5H+8O;      {CHOCH(OOH)CH(OOH)CO(OO.)                                                                               3.HHD    }
+  G3H505f = 5C+5H+9O;      {CHOCH(OOH)CH(OOH)COCO(OO.)                                                                             3.HHD    }
+  G1H300B = 3C+5H+4O;      {CHOCH(OOH)CH2(O.)                                                                                      1.HD     }
+  G2H300A = 3C+5H+5O;      {CHOCH(OOH)CH2(OO.)                                                                                     2.HD     }
+  G1H509C = 5C+7H+5O;      {CHOCH(OOH)CH2CH(O.)CHO                                                                                 1.HDD    }
+  G1H503k = 5C+9H+5O;      {CHOCH(OOH)CH2CH(OH)CH2(O.)                                                                             1.HDO    }
+  G3H5014 = 5C+7H+7O;      {CHOCH(OOH)CH2CH(OH)CO(OO.)                                                                             3.HDK    }
+  G1H506D = 5C+8H+N+7O;    {CHOCH(OOH)CH2CH(ONO2)CH2(O.)                                                                           1.HND    }
+  G2H503E = 5C+8H+N+8O;    {CHOCH(OOH)CH2CH(ONO2)CH2(OO.)                                                                          2.HND    }
+  G3H502Z = 5C+6H+N+9O;    {CHOCH(OOH)CH2CH(ONO2)CO(OO.)                                                                           3.HND    }
+  G1H506Q = 5C+9H+6O;      {CHOCH(OOH)CH2CH(OOH)CH2(O.)                                                                            1.HHD    }
+  G3H504m = 5C+7H+8O;      {CHOCH(OOH)CH2CH(OOH)CO(OO.)                                                                            3.HHD    }
+  G1H400i = 4C+7H+4O;      {CHOCH(OOH)CH2CH2(O.)                                                                                   1.HD     }
+  G2H400f = 4C+7H+5O;      {CHOCH(OOH)CH2CH2(OO.)                                                                                  2.HD     }
+  G1H503i = 5C+9H+4O;      {CHOCH(OOH)CH2CH2CH2(O.)                                                                                1.HD     }
+  G3H500k = 5C+7H+6O;      {CHOCH(OOH)CH2CH2CO(OO.)                                                                                3.HDK    }
+  G3H400O = 4C+5H+6O;      {CHOCH(OOH)CH2CO(OO.)                                                                                   3.HDK    }
+  G1H506f = 5C+7H+5O;      {CHOCH(OOH)CH2COCH2(O.)                                                                                 1.HDK    }
+  G3H504l = 5C+5H+7O;      {CHOCH(OOH)CH2COCO(OO.)                                                                                 3.HDK    }
+  GHD3004 = 3C+4H+4O;      {CHOCH(OOH)CHO                                                                                          HDD      }
+  G3H3006 = 3C+3H+6O;      {CHOCH(OOH)CO(OO.)                                                                                      3.HDK    }
+  G1H50By = 5C+5H+6O;      {CHOCH(OOH)COCH(O.)CHO                                                                                  1.HDD    }
+  G1H508Z = 5C+7H+6O;      {CHOCH(OOH)COCH(OH)CH2(O.)                                                                              1.HDK    }
+  G3H503H = 5C+5H+8O;      {CHOCH(OOH)COCH(OH)CO(OO.)                                                                              3.HDK    }
+  G1H50BO = 5C+6H+N+8O;    {CHOCH(OOH)COCH(ONO2)CH2(O.)                                                                            1.HND    }
+  G3H505Q = 5C+4H+N+10O;   {CHOCH(OOH)COCH(ONO2)CO(OO.)                                                                            3.HND    }
+  G1H50AZ = 5C+7H+7O;      {CHOCH(OOH)COCH(OOH)CH2(O.)                                                                             1.HHD    }
+  GHH5032 = 5C+6H+7O;      {CHOCH(OOH)COCH(OOH)CHO                                                                                 HHDDK    }
+  G3H504w = 5C+5H+9O;      {CHOCH(OOH)COCH(OOH)CO(OO.)                                                                             3.HHD    }
+  G1H400w = 4C+5H+5O;      {CHOCH(OOH)COCH2(O.)                                                                                    1.HDK    }
+  G2H401H = 4C+5H+6O;      {CHOCH(OOH)COCH2(OO.)                                                                                   2.HDK    }
+  G1H508T = 5C+7H+5O;      {CHOCH(OOH)COCH2CH2(O.)                                                                                 1.HDK    }
+  G3H502T = 5C+5H+7O;      {CHOCH(OOH)COCH2CO(OO.)                                                                                 3.HDK    }
+  G3H400y = 4C+3H+7O;      {CHOCH(OOH)COCO(OO.)                                                                                    3.HDK    }
+  G1H50Ap = 5C+5H+6O;      {CHOCH(OOH)COCOCH2(O.)                                                                                  1.HDK    }
+  G3H505R = 5C+3H+8O;      {CHOCH(OOH)COCOCO(OO.)                                                                                  3.HDK    }
+  G1D2000 = 2C+3H+2O;      {CHOCH2(O.)                                                                                             1.D      }
+  G2D2000 = 2C+3H+3O;      {CHOCH2(OO.)                                                                                            2.D      }
+  G1D500k = 5C+7H+3O;      {CHOCH2CH(O.)CH2CHO                                                                                     1.DD     }
+  G1D4007 = 4C+5H+3O;      {CHOCH2CH(O.)CHO                                                                                        1.DD     }
+  G1D500p = 5C+5H+4O;      {CHOCH2CH(O.)COCHO                                                                                      1.DDK    }
+  G1D501I = 5C+7H+4O;      {CHOCH2CH(OH)CH(O.)CHO                                                                                  1.DDO    }
+  G1D500O = 5C+9H+4O;      {CHOCH2CH(OH)CH(OH)CH2(O.)                                                                              1.DOO    }
+  GDD5002 = 5C+8H+4O;      {CHOCH2CH(OH)CH(OH)CHO                                                                                  DDOO     }
+  G3D5004 = 5C+7H+6O;      {CHOCH2CH(OH)CH(OH)CO(OO.)                                                                              3.DKO    }
+  G1N506L = 5C+8H+N+6O;    {CHOCH2CH(OH)CH(ONO2)CH2(O.)                                                                            1.NDO    }
+  G2N505R = 5C+8H+N+7O;    {CHOCH2CH(OH)CH(ONO2)CH2(OO.)                                                                           2.NDO    }
+  GND501D = 5C+7H+N+6O;    {CHOCH2CH(OH)CH(ONO2)CHO                                                                                NDDO     }
+  G3N501m = 5C+6H+N+8O;    {CHOCH2CH(OH)CH(ONO2)CO(OO.)                                                                            3.NDK    }
+  G1H506K = 5C+9H+5O;      {CHOCH2CH(OH)CH(OOH)CH2(O.)                                                                             1.HDO    }
+  GHD5017 = 5C+8H+5O;      {CHOCH2CH(OH)CH(OOH)CHO                                                                                 HDDO     }
+  G3H502e = 5C+7H+7O;      {CHOCH2CH(OH)CH(OOH)CO(OO.)                                                                             3.HDK    }
+  G1D4005 = 4C+7H+3O;      {CHOCH2CH(OH)CH2(O.)                                                                                    1.DO     }
+  G1D500E = 5C+9H+3O;      {CHOCH2CH(OH)CH2CH2(O.)                                                                                 1.DO     }
+  GDD4001 = 4C+6H+3O;      {CHOCH2CH(OH)CHO                                                                                        DDO      }
+  G3D4002 = 4C+5H+5O;      {CHOCH2CH(OH)CO(OO.)                                                                                    3.DKO    }
+  G1D5011 = 5C+7H+4O;      {CHOCH2CH(OH)COCH2(O.)                                                                                  1.DKO    }
+  G2D500f = 5C+7H+5O;      {CHOCH2CH(OH)COCH2(OO.)                                                                                 2.DKO    }
+  GDD5009 = 5C+6H+4O;      {CHOCH2CH(OH)COCHO                                                                                      DDKO     }
+  G3D500I = 5C+5H+6O;      {CHOCH2CH(OH)COCO(OO.)                                                                                  3.DKK    }
+  G1N506W = 5C+6H+N+6O;    {CHOCH2CH(ONO2)CH(O.)CHO                                                                                1.NDD    }
+  G1N502n = 5C+8H+N+6O;    {CHOCH2CH(ONO2)CH(OH)CH2(O.)                                                                            1.NDO    }
+  G2N5036 = 5C+8H+N+7O;    {CHOCH2CH(ONO2)CH(OH)CH2(OO.)                                                                           2.NDO    }
+  G3N500f = 5C+6H+N+8O;    {CHOCH2CH(ONO2)CH(OH)CO(OO.)                                                                            3.NDK    }
+  G1N505I = 5C+7H+2N+8O;   {CHOCH2CH(ONO2)CH(ONO2)CH2(O.)                                                                          1.NND    }
+  G2N505Q = 5C+7H+2N+9O;   {CHOCH2CH(ONO2)CH(ONO2)CH2(OO.)                                                                         2.NND    }
+  GNN502t = 5C+6H+2N+8O;   {CHOCH2CH(ONO2)CH(ONO2)CHO                                                                              NNDD     }
+  G3N501i = 5C+5H+2N+10O;  {CHOCH2CH(ONO2)CH(ONO2)CO(OO.)                                                                          3.NND    }
+  G2N505a = 5C+6H+N+7O;    {CHOCH2CH(ONO2)CH(OO.)CHO                                                                               2.NDD    }
+  G1H505R = 5C+8H+N+7O;    {CHOCH2CH(ONO2)CH(OOH)CH2(O.)                                                                           1.HND    }
+  G2H502y = 5C+8H+N+8O;    {CHOCH2CH(ONO2)CH(OOH)CH2(OO.)                                                                          2.HND    }
+  GHN505H = 5C+7H+N+7O;    {CHOCH2CH(ONO2)CH(OOH)CHO                                                                               HNDD     }
+  G3H502K = 5C+6H+N+9O;    {CHOCH2CH(ONO2)CH(OOH)CO(OO.)                                                                           3.HND    }
+  G1N400I = 4C+6H+N+5O;    {CHOCH2CH(ONO2)CH2(O.)                                                                                  1.ND     }
+  G2N400i = 4C+6H+N+6O;    {CHOCH2CH(ONO2)CH2(OO.)                                                                                 2.ND     }
+  G1N501u = 5C+8H+N+5O;    {CHOCH2CH(ONO2)CH2CH2(O.)                                                                               1.ND     }
+  G2N503w = 5C+8H+N+6O;    {CHOCH2CH(ONO2)CH2CH2(OO.)                                                                              2.ND     }
+  GND500X = 5C+7H+N+5O;    {CHOCH2CH(ONO2)CH2CHO                                                                                   NDD      }
+  G3N500c = 5C+6H+N+7O;    {CHOCH2CH(ONO2)CH2CO(OO.)                                                                               3.NDK    }
+  GND400D = 4C+5H+N+5O;    {CHOCH2CH(ONO2)CHO                                                                                      NDD      }
+  G3N400I = 4C+4H+N+7O;    {CHOCH2CH(ONO2)CO(OO.)                                                                                  3.NDK    }
+  G1N505M = 5C+6H+N+6O;    {CHOCH2CH(ONO2)COCH2(O.)                                                                                1.NDK    }
+  G2N5057 = 5C+6H+N+7O;    {CHOCH2CH(ONO2)COCH2(OO.)                                                                               2.NDK    }
+  GND501C = 5C+5H+N+6O;    {CHOCH2CH(ONO2)COCHO                                                                                    NDDK     }
+  G3N502R = 5C+4H+N+8O;    {CHOCH2CH(ONO2)COCO(OO.)                                                                                3.NDK    }
+  G2D4005 = 4C+5H+4O;      {CHOCH2CH(OO.)CHO                                                                                       2.DD     }
+  G2D500Z = 5C+5H+5O;      {CHOCH2CH(OO.)COCHO                                                                                     2.DDK    }
+  G1H5098 = 5C+7H+5O;      {CHOCH2CH(OOH)CH(O.)CHO                                                                                 1.HDD    }
+  G1H502T = 5C+9H+5O;      {CHOCH2CH(OOH)CH(OH)CH2(O.)                                                                             1.HDO    }
+  G3H500f = 5C+7H+7O;      {CHOCH2CH(OOH)CH(OH)CO(OO.)                                                                             3.HDK    }
+  G1H5088 = 5C+8H+N+7O;    {CHOCH2CH(OOH)CH(ONO2)CH2(O.)                                                                           1.HND    }
+  G2H5031 = 5C+8H+N+8O;    {CHOCH2CH(OOH)CH(ONO2)CH2(OO.)                                                                          2.HND    }
+  G3H502M = 5C+6H+N+9O;    {CHOCH2CH(OOH)CH(ONO2)CO(OO.)                                                                           3.HND    }
+  G1H506H = 5C+9H+6O;      {CHOCH2CH(OOH)CH(OOH)CH2(O.)                                                                            1.HHD    }
+  GHH5021 = 5C+8H+6O;      {CHOCH2CH(OOH)CH(OOH)CHO                                                                                HHDD     }
+  G3H502c = 5C+7H+8O;      {CHOCH2CH(OOH)CH(OOH)CO(OO.)                                                                            3.HHD    }
+  G1H400F = 4C+7H+4O;      {CHOCH2CH(OOH)CH2(O.)                                                                                   1.HD     }
+  G1H5016 = 5C+9H+4O;      {CHOCH2CH(OOH)CH2CH2(O.)                                                                                1.HD     }
+  GHD400C = 4C+6H+4O;      {CHOCH2CH(OOH)CHO                                                                                       HDD      }
+  G3H400P = 4C+5H+6O;      {CHOCH2CH(OOH)CO(OO.)                                                                                   3.HDK    }
+  G1H506e = 5C+7H+5O;      {CHOCH2CH(OOH)COCH2(O.)                                                                                 1.HDK    }
+  GHD5013 = 5C+6H+5O;      {CHOCH2CH(OOH)COCHO                                                                                     HDDK     }
+  G3H504Z = 5C+5H+7O;      {CHOCH2CH(OOH)COCO(OO.)                                                                                 3.HDK    }
+  G1D3000 = 3C+5H+2O;      {CHOCH2CH2(O.)                                                                                          1.D      }
+  G2D3001 = 3C+5H+3O;      {CHOCH2CH2(OO.)                                                                                         2.D      }
+  G1D500n = 5C+7H+3O;      {CHOCH2CH2CH(O.)CHO                                                                                     1.DD     }
+  G1D5004 = 5C+9H+3O;      {CHOCH2CH2CH(OH)CH2(O.)                                                                                 1.DO     }
+  G2D5004 = 5C+9H+4O;      {CHOCH2CH2CH(OH)CH2(OO.)                                                                                2.DO     }
+  GDD5000 = 5C+8H+3O;      {CHOCH2CH2CH(OH)CHO                                                                                     DDO      }
+  G3D5001 = 5C+7H+5O;      {CHOCH2CH2CH(OH)CO(OO.)                                                                                 3.DKO    }
+  G1N502x = 5C+8H+N+5O;    {CHOCH2CH2CH(ONO2)CH2(O.)                                                                               1.ND     }
+  G2N5044 = 5C+8H+N+6O;    {CHOCH2CH2CH(ONO2)CH2(OO.)                                                                              2.ND     }
+  GND500d = 5C+7H+N+5O;    {CHOCH2CH2CH(ONO2)CHO                                                                                   NDD      }
+  G3N500l = 5C+6H+N+7O;    {CHOCH2CH2CH(ONO2)CO(OO.)                                                                               3.NDK    }
+  G1H501w = 5C+9H+4O;      {CHOCH2CH2CH(OOH)CH2(O.)                                                                                1.HD     }
+  GHD500R = 5C+8H+4O;      {CHOCH2CH2CH(OOH)CHO                                                                                    HDD      }
+  G3H500l = 5C+7H+6O;      {CHOCH2CH2CH(OOH)CO(OO.)                                                                                3.HDK    }
+  G1D4003 = 4C+7H+2O;      {CHOCH2CH2CH2(O.)                                                                                       1.D      }
+  G2D4004 = 4C+7H+3O;      {CHOCH2CH2CH2(OO.)                                                                                      2.D      }
+  G1D5002 = 5C+9H+2O;      {CHOCH2CH2CH2CH2(O.)                                                                                    1.D      }
+  GDD4000 = 4C+6H+2O;      {CHOCH2CH2CHO                                                                                           DD       }
+  G3D4000 = 4C+5H+4O;      {CHOCH2CH2CO(OO.)                                                                                       3.DK     }
+  G1D500N = 5C+7H+3O;      {CHOCH2CH2COCH2(O.)                                                                                     1.DK     }
+  G2D500O = 5C+7H+4O;      {CHOCH2CH2COCH2(OO.)                                                                                    2.DK     }
+  GDD5004 = 5C+6H+3O;      {CHOCH2CH2COCHO                                                                                         DDK      }
+  G3D500E = 5C+5H+5O;      {CHOCH2CH2COCO(OO.)                                                                                     3.DKK    }
+  GDD3000 = 3C+4H+2O;      {CHOCH2CHO                                                                                              DD       }
+  G3D3000 = 3C+3H+4O;      {CHOCH2CO(OO.)                                                                                          3.DK     }
+  G1D501J = 5C+5H+4O;      {CHOCH2COCH(O.)CHO                                                                                      1.DDK    }
+  G1D500Q = 5C+7H+4O;      {CHOCH2COCH(OH)CH2(O.)                                                                                  1.DKO    }
+  G3D5007 = 5C+5H+6O;      {CHOCH2COCH(OH)CO(OO.)                                                                                  3.DKK    }
+  G1N505g = 5C+6H+N+6O;    {CHOCH2COCH(ONO2)CH2(O.)                                                                                1.NDK    }
+  GND501G = 5C+5H+N+6O;    {CHOCH2COCH(ONO2)CHO                                                                                    NDDK     }
+  G3N501r = 5C+4H+N+8O;    {CHOCH2COCH(ONO2)CO(OO.)                                                                                3.NDK    }
+  G1H505j = 5C+7H+5O;      {CHOCH2COCH(OOH)CH2(O.)                                                                                 1.HDK    }
+  GHD5016 = 5C+6H+5O;      {CHOCH2COCH(OOH)CHO                                                                                     HDDK     }
+  G3H502U = 5C+5H+7O;      {CHOCH2COCH(OOH)CO(OO.)                                                                                 3.HDK    }
+  G1D4006 = 4C+5H+3O;      {CHOCH2COCH2(O.)                                                                                        1.DK     }
+  G2D400B = 4C+5H+4O;      {CHOCH2COCH2(OO.)                                                                                       2.DK     }
+  G1D500G = 5C+7H+3O;      {CHOCH2COCH2CH2(O.)                                                                                     1.DK     }
+  GDD5003 = 5C+6H+3O;      {CHOCH2COCH2CHO                                                                                         DDK      }
+  G3D5005 = 5C+5H+5O;      {CHOCH2COCH2CO(OO.)                                                                                     3.DKK    }
+  GDD4002 = 4C+4H+3O;      {CHOCH2COCHO                                                                                            DDK      }
+  G3D4007 = 4C+3H+5O;      {CHOCH2COCO(OO.)                                                                                        3.DKK    }
+  G1D500u = 5C+5H+4O;      {CHOCH2COCOCH2(O.)                                                                                      1.DKK    }
+  GDD500A = 5C+4H+4O;      {CHOCH2COCOCHO                                                                                          DDKK     }
+  G3D500J = 5C+3H+6O;      {CHOCH2COCOCO(OO.)                                                                                      3.DKK    }
+  GDD2000 = 2C+2H+2O;      {CHOCHO                                                                                                 DD       }
+  G3D2000 = 2C+H+4O;       {CHOCO(OO.)                                                                                             3.DK     }
+  G1D400M = 4C+3H+4O;      {CHOCOCH(O.)CHO                                                                                         1.DDK    }
+  G1D501Z = 5C+3H+5O;      {CHOCOCH(O.)COCHO                                                                                       1.DDK    }
+  G1D501a = 5C+5H+5O;      {CHOCOCH(OH)CH(O.)CHO                                                                                   1.DDK    }
+  G1D501O = 5C+7H+5O;      {CHOCOCH(OH)CH(OH)CH2(O.)                                                                               1.DKO    }
+  G2D500n = 5C+7H+6O;      {CHOCOCH(OH)CH(OH)CH2(OO.)                                                                              2.DKO    }
+  G3D500F = 5C+5H+7O;      {CHOCOCH(OH)CH(OH)CO(OO.)                                                                               3.DKK    }
+  G1N506z = 5C+6H+N+7O;    {CHOCOCH(OH)CH(ONO2)CH2(O.)                                                                             1.NDK    }
+  G2N506U = 5C+6H+N+8O;    {CHOCOCH(OH)CH(ONO2)CH2(OO.)                                                                            2.NDK    }
+  GND501Y = 5C+5H+N+7O;    {CHOCOCH(OH)CH(ONO2)CHO                                                                                 NDDKO    }
+  G3N502k = 5C+4H+N+9O;    {CHOCOCH(OH)CH(ONO2)CO(OO.)                                                                             3.NDK    }
+  G1H50Al = 5C+7H+6O;      {CHOCOCH(OH)CH(OOH)CH2(O.)                                                                              1.HDK    }
+  GHD501R = 5C+6H+6O;      {CHOCOCH(OH)CH(OOH)CHO                                                                                  HDDKO    }
+  G3H504x = 5C+5H+8O;      {CHOCOCH(OH)CH(OOH)CO(OO.)                                                                              3.HDK    }
+  G1D400I = 4C+5H+4O;      {CHOCOCH(OH)CH2(O.)                                                                                     1.DKO    }
+  G2D400E = 4C+5H+5O;      {CHOCOCH(OH)CH2(OO.)                                                                                    2.DKO    }
+  G1D500r = 5C+7H+4O;      {CHOCOCH(OH)CH2CH2(O.)                                                                                  1.DKO    }
+  G2D500o = 5C+7H+5O;      {CHOCOCH(OH)CH2CH2(OO.)                                                                                 2.DKO    }
+  G3D500C = 5C+5H+6O;      {CHOCOCH(OH)CH2CO(OO.)                                                                                  3.DKK    }
+  G3D4006 = 4C+3H+6O;      {CHOCOCH(OH)CO(OO.)                                                                                     3.DKK    }
+  G1D501W = 5C+5H+5O;      {CHOCOCH(OH)COCH2(O.)                                                                                   1.DKK    }
+  G2D500q = 5C+5H+6O;      {CHOCOCH(OH)COCH2(OO.)                                                                                  2.DKK    }
+  GDD500E = 5C+4H+5O;      {CHOCOCH(OH)COCHO                                                                                       DDKKO    }
+  G3D500N = 5C+3H+7O;      {CHOCOCH(OH)COCO(OO.)                                                                                   3.DKK    }
+  G1N507E = 5C+4H+N+7O;    {CHOCOCH(ONO2)CH(O.)CHO                                                                                 1.NDD    }
+  G1N506v = 5C+6H+N+7O;    {CHOCOCH(ONO2)CH(OH)CH2(O.)                                                                             1.NDK    }
+  G2N506i = 5C+6H+N+8O;    {CHOCOCH(ONO2)CH(OH)CH2(OO.)                                                                            2.NDK    }
+  G3N502N = 5C+4H+N+9O;    {CHOCOCH(ONO2)CH(OH)CO(OO.)                                                                             3.NDK    }
+  G1N506s = 5C+5H+2N+9O;   {CHOCOCH(ONO2)CH(ONO2)CH2(O.)                                                                           1.NND    }
+  G2N506m = 5C+5H+2N+10O;  {CHOCOCH(ONO2)CH(ONO2)CH2(OO.)                                                                          2.NND    }
+  GNN503G = 5C+4H+2N+9O;   {CHOCOCH(ONO2)CH(ONO2)CHO                                                                               NNDDK    }
+  G3N502Z = 5C+3H+2N+11O;  {CHOCOCH(ONO2)CH(ONO2)CO(OO.)                                                                           3.NND    }
+  G2N506f = 5C+4H+N+8O;    {CHOCOCH(ONO2)CH(OO.)CHO                                                                                2.NDD    }
+  G1H50Bv = 5C+6H+N+8O;    {CHOCOCH(ONO2)CH(OOH)CH2(O.)                                                                            1.HND    }
+  G2H504C = 5C+6H+N+9O;    {CHOCOCH(ONO2)CH(OOH)CH2(OO.)                                                                           2.HND    }
+  GHN506o = 5C+5H+N+8O;    {CHOCOCH(ONO2)CH(OOH)CHO                                                                                HNDDK    }
+  G3H504u = 5C+4H+N+10O;   {CHOCOCH(ONO2)CH(OOH)CO(OO.)                                                                            3.HND    }
+  G1N401A = 4C+4H+N+6O;    {CHOCOCH(ONO2)CH2(O.)                                                                                   1.NDK    }
+  G2N4016 = 4C+4H+N+7O;    {CHOCOCH(ONO2)CH2(OO.)                                                                                  2.NDK    }
+  G1N5054 = 5C+6H+N+6O;    {CHOCOCH(ONO2)CH2CH2(O.)                                                                                1.NDK    }
+  G2N506G = 5C+6H+N+7O;    {CHOCOCH(ONO2)CH2CH2(OO.)                                                                               2.NDK    }
+  G3N501j = 5C+4H+N+8O;    {CHOCOCH(ONO2)CH2CO(OO.)                                                                                3.NDK    }
+  GND400N = 4C+3H+N+6O;    {CHOCOCH(ONO2)CHO                                                                                       NDDK     }
+  G3N400Y = 4C+2H+N+8O;    {CHOCOCH(ONO2)CO(OO.)                                                                                   3.NDK    }
+  G1N506x = 5C+4H+N+7O;    {CHOCOCH(ONO2)COCH2(O.)                                                                                 1.NDK    }
+  G2N506j = 5C+4H+N+8O;    {CHOCOCH(ONO2)COCH2(OO.)                                                                                2.NDK    }
+  GND501a = 5C+3H+N+7O;    {CHOCOCH(ONO2)COCHO                                                                                     NDDKK    }
+  G3N502r = 5C+2H+N+9O;    {CHOCOCH(ONO2)COCO(OO.)                                                                                 3.NDK    }
+  G2D500r = 5C+3H+6O;      {CHOCOCH(OO.)COCHO                                                                                      2.DDK    }
+  G1H50Bl = 5C+5H+6O;      {CHOCOCH(OOH)CH(O.)CHO                                                                                  1.HDD    }
+  G1H509j = 5C+7H+6O;      {CHOCOCH(OOH)CH(OH)CH2(O.)                                                                              1.HDK    }
+  G3H503k = 5C+5H+8O;      {CHOCOCH(OOH)CH(OH)CO(OO.)                                                                              3.HDK    }
+  G1H50AL = 5C+6H+N+8O;    {CHOCOCH(OOH)CH(ONO2)CH2(O.)                                                                            1.HND    }
+  G2H503w = 5C+6H+N+9O;    {CHOCOCH(OOH)CH(ONO2)CH2(OO.)                                                                           2.HND    }
+  G3H504e = 5C+4H+N+10O;   {CHOCOCH(OOH)CH(ONO2)CO(OO.)                                                                            3.HND    }
+  G1H50Bx = 5C+7H+7O;      {CHOCOCH(OOH)CH(OOH)CH2(O.)                                                                             1.HHD    }
+  GHH503G = 5C+6H+7O;      {CHOCOCH(OOH)CH(OOH)CHO                                                                                 HHDDK    }
+  G3H505Y = 5C+5H+9O;      {CHOCOCH(OOH)CH(OOH)CO(OO.)                                                                             3.HHD    }
+  G1H401j = 4C+5H+5O;      {CHOCOCH(OOH)CH2(O.)                                                                                    1.HDK    }
+  G2H401G = 4C+5H+6O;      {CHOCOCH(OOH)CH2(OO.)                                                                                   2.HDK    }
+  G1H504v = 5C+7H+5O;      {CHOCOCH(OOH)CH2CH2(O.)                                                                                 1.HDK    }
+  G3H502R = 5C+5H+7O;      {CHOCOCH(OOH)CH2CO(OO.)                                                                                 3.HDK    }
+  GHD400K = 4C+4H+5O;      {CHOCOCH(OOH)CHO                                                                                        HDDK     }
+  G3H400i = 4C+3H+7O;      {CHOCOCH(OOH)CO(OO.)                                                                                    3.HDK    }
+  G1H50Ao = 5C+5H+6O;      {CHOCOCH(OOH)COCH2(O.)                                                                                  1.HDK    }
+  G2H5041 = 5C+5H+7O;      {CHOCOCH(OOH)COCH2(OO.)                                                                                 2.HDK    }
+  GHD501P = 5C+4H+6O;      {CHOCOCH(OOH)COCHO                                                                                      HDDKK    }
+  G3H505X = 5C+3H+8O;      {CHOCOCH(OOH)COCO(OO.)                                                                                  3.HDK    }
+  G1D3002 = 3C+3H+3O;      {CHOCOCH2(O.)                                                                                           1.DK     }
+  G2D3002 = 3C+3H+4O;      {CHOCOCH2(OO.)                                                                                          2.DK     }
+  G1D500o = 5C+5H+4O;      {CHOCOCH2CH(O.)CHO                                                                                      1.DDK    }
+  G1D500M = 5C+7H+4O;      {CHOCOCH2CH(OH)CH2(O.)                                                                                  1.DKO    }
+  G2D500c = 5C+7H+5O;      {CHOCOCH2CH(OH)CH2(OO.)                                                                                 2.DKO    }
+  G3D500A = 5C+5H+6O;      {CHOCOCH2CH(OH)CO(OO.)                                                                                  3.DKK    }
+  G1N5053 = 5C+6H+N+6O;    {CHOCOCH2CH(ONO2)CH2(O.)                                                                                1.NDK    }
+  G2N505X = 5C+6H+N+7O;    {CHOCOCH2CH(ONO2)CH2(OO.)                                                                               2.NDK    }
+  GND5014 = 5C+5H+N+6O;    {CHOCOCH2CH(ONO2)CHO                                                                                    NDDK     }
+  G3N501U = 5C+4H+N+8O;    {CHOCOCH2CH(ONO2)CO(OO.)                                                                                3.NDK    }
+  G2D500Y = 5C+5H+5O;      {CHOCOCH2CH(OO.)CHO                                                                                     2.DDK    }
+  G1H504u = 5C+7H+5O;      {CHOCOCH2CH(OOH)CH2(O.)                                                                                 1.HDK    }
+  GHD5018 = 5C+6H+5O;      {CHOCOCH2CH(OOH)CHO                                                                                     HDDK     }
+  G3H502f = 5C+5H+7O;      {CHOCOCH2CH(OOH)CO(OO.)                                                                                 3.HDK    }
+  G1D400F = 4C+5H+3O;      {CHOCOCH2CH2(O.)                                                                                        1.DK     }
+  G2D400C = 4C+5H+4O;      {CHOCOCH2CH2(OO.)                                                                                       2.DK     }
+  G1D500L = 5C+7H+3O;      {CHOCOCH2CH2CH2(O.)                                                                                     1.DK     }
+  G2D500e = 5C+7H+4O;      {CHOCOCH2CH2CH2(OO.)                                                                                    2.DK     }
+  G3D5006 = 5C+5H+5O;      {CHOCOCH2CH2CO(OO.)                                                                                     3.DKK    }
+  G3D4003 = 4C+3H+5O;      {CHOCOCH2CO(OO.)                                                                                        3.DKK    }
+  G1D500q = 5C+5H+4O;      {CHOCOCH2COCH2(O.)                                                                                      1.DKK    }
+  G2D500g = 5C+5H+5O;      {CHOCOCH2COCH2(OO.)                                                                                     2.DKK    }
+  GDD500B = 5C+4H+4O;      {CHOCOCH2COCHO                                                                                          DDKK     }
+  G3D500K = 5C+3H+6O;      {CHOCOCH2COCO(OO.)                                                                                      3.DKK    }
+  GDD3002 = 3C+2H+3O;      {CHOCOCHO                                                                                               DDK      }
+  G3D3002 = 3C+H+5O;       {CHOCOCO(OO.)                                                                                           3.DKK    }
+  G1D501Y = 5C+3H+5O;      {CHOCOCOCH(O.)CHO                                                                                       1.DDK    }
+  G1D501L = 5C+5H+5O;      {CHOCOCOCH(OH)CH2(O.)                                                                                   1.DKK    }
+  G3D500H = 5C+3H+7O;      {CHOCOCOCH(OH)CO(OO.)                                                                                   3.DKK    }
+  G1N5072 = 5C+4H+N+7O;    {CHOCOCOCH(ONO2)CH2(O.)                                                                                 1.NDK    }
+  G2N506l = 5C+4H+N+8O;    {CHOCOCOCH(ONO2)CH2(OO.)                                                                                2.NDK    }
+  GND501X = 5C+3H+N+7O;    {CHOCOCOCH(ONO2)CHO                                                                                     NDDKK    }
+  G3N502a = 5C+2H+N+9O;    {CHOCOCOCH(ONO2)CO(OO.)                                                                                 3.NDK    }
+  G1H50Bg = 5C+5H+6O;      {CHOCOCOCH(OOH)CH2(O.)                                                                                  1.HDK    }
+  GHD501U = 5C+4H+6O;      {CHOCOCOCH(OOH)CHO                                                                                      HDDKK    }
+  G3H505E = 5C+3H+8O;      {CHOCOCOCH(OOH)CO(OO.)                                                                                  3.HDK    }
+  G1D400N = 4C+3H+4O;      {CHOCOCOCH2(O.)                                                                                         1.DKK    }
+  G2D400F = 4C+3H+5O;      {CHOCOCOCH2(OO.)                                                                                        2.DKK    }
+  G1D500s = 5C+5H+4O;      {CHOCOCOCH2CH2(O.)                                                                                      1.DKK    }
+  G2D500s = 5C+5H+5O;      {CHOCOCOCH2CH2(OO.)                                                                                     2.DKK    }
+  G3D500D = 5C+3H+6O;      {CHOCOCOCH2CO(OO.)                                                                                      3.DKK    }
+  GDD4005 = 4C+2H+4O;      {CHOCOCOCHO                                                                                             DDKK     }
+  G3D4008 = 4C+H+6O;       {CHOCOCOCO(OO.)                                                                                         3.DKK    }
+  G1D501M = 5C+3H+5O;      {CHOCOCOCOCH2(O.)                                                                                       1.DKK    }
+  G2D500t = 5C+3H+6O;      {CHOCOCOCOCH2(OO.)                                                                                      2.DKK    }
+  GDD500F = 5C+2H+5O;      {CHOCOCOCOCHO                                                                                           DDKKK    }
+  G3D500O = 5C+H+7O;       {CHOCOCOCOCO(OO.)                                                                                       3.DKK    }
+  GUD3000 = 3C+4H+O;       {CHOCdH=CdH2                                                                                            UD       }
+  GCO     = C+O;           {CO                                                                                                              }
+  G1A504C = 5C+8H+N+8O;    {CO(OH)CH(O.)CH(OH)CH(OH)CH2(ONO2)                                                                      1.ANO    }
+  G1A507m = 5C+9H+7O;      {CO(OH)CH(O.)CH(OH)CH(OH)CH2(OOH)                                                                       1.AHO    }
+  G1A507U = 5C+7H+6O;      {CO(OH)CH(O.)CH(OH)CH(OH)CHO                                                                            1.ADO    }
+  G1A509P = 5C+7H+8O;      {CO(OH)CH(O.)CH(OH)CH(OH)CO(OOH)                                                                        1.AGO    }
+  G1P50AU = 5C+6H+N+10O;   {CO(OH)CH(O.)CH(OH)CH(OH)CO(OONO2)                                                                      1.PAO    }
+  G1A503c = 5C+7H+2N+10O;  {CO(OH)CH(O.)CH(OH)CH(ONO2)CH2(ONO2)                                                                    1.ANN    }
+  G1A505x = 5C+8H+N+9O;    {CO(OH)CH(O.)CH(OH)CH(ONO2)CH2(OOH)                                                                     1.AHN    }
+  G1A506Y = 5C+6H+N+8O;    {CO(OH)CH(O.)CH(OH)CH(ONO2)CHO                                                                          1.AND    }
+  G1A5098 = 5C+6H+N+10O;   {CO(OH)CH(O.)CH(OH)CH(ONO2)CO(OOH)                                                                      1.AGN    }
+  G1P509l = 5C+5H+2N+12O;  {CO(OH)CH(O.)CH(OH)CH(ONO2)CO(OONO2)                                                                    1.PAN    }
+  G1A506M = 5C+8H+N+9O;    {CO(OH)CH(O.)CH(OH)CH(OOH)CH2(ONO2)                                                                     1.AHN    }
+  G1A509C = 5C+7H+7O;      {CO(OH)CH(O.)CH(OH)CH(OOH)CHO                                                                           1.AHD    }
+  G1A509r = 5C+7H+9O;      {CO(OH)CH(O.)CH(OH)CH(OOH)CO(OOH)                                                                       1.AGH    }
+  G1P50B4 = 5C+6H+N+11O;   {CO(OH)CH(O.)CH(OH)CH(OOH)CO(OONO2)                                                                     1.PAH    }
+  G1A4005 = 4C+6H+N+7O;    {CO(OH)CH(O.)CH(OH)CH2(ONO2)                                                                            1.ANO    }
+  G1A400p = 4C+7H+6O;      {CO(OH)CH(O.)CH(OH)CH2(OOH)                                                                             1.AHO    }
+  G1A500m = 5C+8H+N+7O;    {CO(OH)CH(O.)CH(OH)CH2CH2(ONO2)                                                                         1.ANO    }
+  G1A506P = 5C+7H+5O;      {CO(OH)CH(O.)CH(OH)CH2CHO                                                                               1.ADO    }
+  G1A508Z = 5C+7H+7O;      {CO(OH)CH(O.)CH(OH)CH2CO(OOH)                                                                           1.AGO    }
+  G1P5071 = 5C+6H+N+9O;    {CO(OH)CH(O.)CH(OH)CH2CO(OONO2)                                                                         1.PAO    }
+  G1A400i = 4C+5H+5O;      {CO(OH)CH(O.)CH(OH)CHO                                                                                  1.ADO    }
+  G1A401F = 4C+5H+7O;      {CO(OH)CH(O.)CH(OH)CO(OOH)                                                                              1.AGO    }
+  G1P401N = 4C+4H+N+9O;    {CO(OH)CH(O.)CH(OH)CO(OONO2)                                                                            1.PAO    }
+  G1A503s = 5C+6H+N+8O;    {CO(OH)CH(O.)CH(OH)COCH2(ONO2)                                                                          1.ANK    }
+  G1A504i = 5C+7H+7O;      {CO(OH)CH(O.)CH(OH)COCH2(OOH)                                                                           1.AHK    }
+  G1A506Z = 5C+5H+6O;      {CO(OH)CH(O.)CH(OH)COCHO                                                                                1.ADK    }
+  G1A508H = 5C+5H+8O;      {CO(OH)CH(O.)CH(OH)COCO(OOH)                                                                            1.AGK    }
+  G1P5098 = 5C+4H+N+10O;   {CO(OH)CH(O.)CH(OH)COCO(OONO2)                                                                          1.PAK    }
+  G1A501K = 5C+7H+2N+10O;  {CO(OH)CH(O.)CH(ONO2)CH(OH)CH2(ONO2)                                                                    1.ANN    }
+  G1A505l = 5C+8H+N+9O;    {CO(OH)CH(O.)CH(ONO2)CH(OH)CH2(OOH)                                                                     1.AHN    }
+  G1A505n = 5C+6H+N+8O;    {CO(OH)CH(O.)CH(ONO2)CH(OH)CHO                                                                          1.AND    }
+  G1A508g = 5C+6H+N+10O;   {CO(OH)CH(O.)CH(ONO2)CH(OH)CO(OOH)                                                                      1.AGN    }
+  G1P505b = 5C+5H+2N+12O;  {CO(OH)CH(O.)CH(ONO2)CH(OH)CO(OONO2)                                                                    1.PAN    }
+  G1A502m = 5C+6H+3N+12O;  {CO(OH)CH(O.)CH(ONO2)CH(ONO2)CH2(ONO2)                                                                  1.ANN    }
+  G1A507r = 5C+7H+2N+11O;  {CO(OH)CH(O.)CH(ONO2)CH(ONO2)CH2(OOH)                                                                   1.AHN    }
+  G1A507u = 5C+5H+2N+10O;  {CO(OH)CH(O.)CH(ONO2)CH(ONO2)CHO                                                                        1.ANN    }
+  G1A509c = 5C+5H+2N+12O;  {CO(OH)CH(O.)CH(ONO2)CH(ONO2)CO(OOH)                                                                    1.AGN    }
+  G1P508Q = 5C+4H+3N+14O;  {CO(OH)CH(O.)CH(ONO2)CH(ONO2)CO(OONO2)                                                                  1.PAN    }
+  G1A5061 = 5C+7H+2N+11O;  {CO(OH)CH(O.)CH(ONO2)CH(OOH)CH2(ONO2)                                                                   1.AHN    }
+  G1A508B = 5C+6H+N+9O;    {CO(OH)CH(O.)CH(ONO2)CH(OOH)CHO                                                                         1.AHN    }
+  G1A509h = 5C+6H+N+11O;   {CO(OH)CH(O.)CH(ONO2)CH(OOH)CO(OOH)                                                                     1.AGH    }
+  G1P50Ad = 5C+5H+2N+13O;  {CO(OH)CH(O.)CH(ONO2)CH(OOH)CO(OONO2)                                                                   1.PAH    }
+  G1A400N = 4C+5H+2N+9O;   {CO(OH)CH(O.)CH(ONO2)CH2(ONO2)                                                                          1.ANN    }
+  G1A401B = 4C+6H+N+8O;    {CO(OH)CH(O.)CH(ONO2)CH2(OOH)                                                                           1.AHN    }
+  G1A500h = 5C+7H+2N+9O;   {CO(OH)CH(O.)CH(ONO2)CH2CH2(ONO2)                                                                       1.ANN    }
+  G1A504z = 5C+8H+N+8O;    {CO(OH)CH(O.)CH(ONO2)CH2CH2(OOH)                                                                        1.AHN    }
+  G1A5052 = 5C+6H+N+7O;    {CO(OH)CH(O.)CH(ONO2)CH2CHO                                                                             1.AND    }
+  G1A5088 = 5C+6H+N+9O;    {CO(OH)CH(O.)CH(ONO2)CH2CO(OOH)                                                                         1.AGN    }
+  G1P504v = 5C+5H+2N+11O;  {CO(OH)CH(O.)CH(ONO2)CH2CO(OONO2)                                                                       1.PAN    }
+  G1A4015 = 4C+4H+N+7O;    {CO(OH)CH(O.)CH(ONO2)CHO                                                                                1.AND    }
+  G1A401P = 4C+4H+N+9O;    {CO(OH)CH(O.)CH(ONO2)CO(OOH)                                                                            1.AGN    }
+  G1P4019 = 4C+3H+2N+11O;  {CO(OH)CH(O.)CH(ONO2)CO(OONO2)                                                                          1.PAN    }
+  G1A502q = 5C+5H+2N+10O;  {CO(OH)CH(O.)CH(ONO2)COCH2(ONO2)                                                                        1.ANN    }
+  G1A5082 = 5C+6H+N+9O;    {CO(OH)CH(O.)CH(ONO2)COCH2(OOH)                                                                         1.AHN    }
+  G1A5084 = 5C+4H+N+8O;    {CO(OH)CH(O.)CH(ONO2)COCHO                                                                              1.AND    }
+  G1A509t = 5C+4H+N+10O;   {CO(OH)CH(O.)CH(ONO2)COCO(OOH)                                                                          1.AGN    }
+  G1P508S = 5C+3H+2N+12O;  {CO(OH)CH(O.)CH(ONO2)COCO(OONO2)                                                                        1.PAN    }
+  G1A504A = 5C+8H+N+9O;    {CO(OH)CH(O.)CH(OOH)CH(OH)CH2(ONO2)                                                                     1.AHN    }
+  G1A507l = 5C+9H+8O;      {CO(OH)CH(O.)CH(OOH)CH(OH)CH2(OOH)                                                                      1.AHH    }
+  G1A507T = 5C+7H+7O;      {CO(OH)CH(O.)CH(OOH)CH(OH)CHO                                                                           1.AHD    }
+  G1A509O = 5C+7H+9O;      {CO(OH)CH(O.)CH(OOH)CH(OH)CO(OOH)                                                                       1.AGH    }
+  G1P50AR = 5C+6H+N+11O;   {CO(OH)CH(O.)CH(OOH)CH(OH)CO(OONO2)                                                                     1.PAH    }
+  G1A506r = 5C+7H+2N+11O;  {CO(OH)CH(O.)CH(OOH)CH(ONO2)CH2(ONO2)                                                                   1.AHN    }
+  G1A508k = 5C+8H+N+10O;   {CO(OH)CH(O.)CH(OOH)CH(ONO2)CH2(OOH)                                                                    1.AHH    }
+  G1A508z = 5C+6H+N+9O;    {CO(OH)CH(O.)CH(OOH)CH(ONO2)CHO                                                                         1.AHN    }
+  G1A509o = 5C+6H+N+11O;   {CO(OH)CH(O.)CH(OOH)CH(ONO2)CO(OOH)                                                                     1.AGH    }
+  G1P50B2 = 5C+5H+2N+13O;  {CO(OH)CH(O.)CH(OOH)CH(ONO2)CO(OONO2)                                                                   1.PAH    }
+  G1A507Y = 5C+8H+N+10O;   {CO(OH)CH(O.)CH(OOH)CH(OOH)CH2(ONO2)                                                                    1.AHH    }
+  G1A5092 = 5C+7H+8O;      {CO(OH)CH(O.)CH(OOH)CH(OOH)CHO                                                                          1.AHH    }
+  G1A509p = 5C+7H+10O;     {CO(OH)CH(O.)CH(OOH)CH(OOH)CO(OOH)                                                                      1.AGH    }
+  G1P50B3 = 5C+6H+N+12O;   {CO(OH)CH(O.)CH(OOH)CH(OOH)CO(OONO2)                                                                    1.PAH    }
+  G1A400w = 4C+6H+N+8O;    {CO(OH)CH(O.)CH(OOH)CH2(ONO2)                                                                           1.AHN    }
+  G1A401O = 4C+7H+7O;      {CO(OH)CH(O.)CH(OOH)CH2(OOH)                                                                            1.AHH    }
+  G1A503C = 5C+8H+N+8O;    {CO(OH)CH(O.)CH(OOH)CH2CH2(ONO2)                                                                        1.AHN    }
+  G1A506J = 5C+7H+6O;      {CO(OH)CH(O.)CH(OOH)CH2CHO                                                                              1.AHD    }
+  G1A508X = 5C+7H+8O;      {CO(OH)CH(O.)CH(OOH)CH2CO(OOH)                                                                          1.AGH    }
+  G1P509U = 5C+6H+N+10O;   {CO(OH)CH(O.)CH(OOH)CH2CO(OONO2)                                                                        1.PAH    }
+  G1A401L = 4C+5H+6O;      {CO(OH)CH(O.)CH(OOH)CHO                                                                                 1.AHD    }
+  G1A401T = 4C+5H+8O;      {CO(OH)CH(O.)CH(OOH)CO(OOH)                                                                             1.AGH    }
+  G1P401b = 4C+4H+N+10O;   {CO(OH)CH(O.)CH(OOH)CO(OONO2)                                                                           1.PAH    }
+  G1A503q = 5C+6H+N+9O;    {CO(OH)CH(O.)CH(OOH)COCH2(ONO2)                                                                         1.AHN    }
+  G1A509W = 5C+7H+8O;      {CO(OH)CH(O.)CH(OOH)COCH2(OOH)                                                                          1.AHH    }
+  G1A5093 = 5C+5H+7O;      {CO(OH)CH(O.)CH(OOH)COCHO                                                                               1.AHD    }
+  G1A508y = 5C+5H+9O;      {CO(OH)CH(O.)CH(OOH)COCO(OOH)                                                                           1.AGH    }
+  G1P50AB = 5C+4H+N+11O;   {CO(OH)CH(O.)CH(OOH)COCO(OONO2)                                                                         1.PAH    }
+  G1A3003 = 3C+4H+N+6O;    {CO(OH)CH(O.)CH2(ONO2)                                                                                  1.AN     }
+  G1A300B = 3C+5H+5O;      {CO(OH)CH(O.)CH2(OOH)                                                                                   1.AH     }
+  G1A500B = 5C+8H+N+7O;    {CO(OH)CH(O.)CH2CH(OH)CH2(ONO2)                                                                         1.ANO    }
+  G1A502Y = 5C+9H+6O;      {CO(OH)CH(O.)CH2CH(OH)CH2(OOH)                                                                          1.AHO    }
+  G1A504L = 5C+7H+5O;      {CO(OH)CH(O.)CH2CH(OH)CHO                                                                               1.ADO    }
+  G1A503A = 5C+7H+7O;      {CO(OH)CH(O.)CH2CH(OH)CO(OOH)                                                                           1.AGO    }
+  G1P504D = 5C+6H+N+9O;    {CO(OH)CH(O.)CH2CH(OH)CO(OONO2)                                                                         1.PAO    }
+  G1A5011 = 5C+7H+2N+9O;   {CO(OH)CH(O.)CH2CH(ONO2)CH2(ONO2)                                                                       1.ANN    }
+  G1A502h = 5C+8H+N+8O;    {CO(OH)CH(O.)CH2CH(ONO2)CH2(OOH)                                                                        1.AHN    }
+  G1A5046 = 5C+6H+N+7O;    {CO(OH)CH(O.)CH2CH(ONO2)CHO                                                                             1.AND    }
+  G1A506n = 5C+6H+N+9O;    {CO(OH)CH(O.)CH2CH(ONO2)CO(OOH)                                                                         1.AGN    }
+  G1P506J = 5C+5H+2N+11O;  {CO(OH)CH(O.)CH2CH(ONO2)CO(OONO2)                                                                       1.PAN    }
+  G1A503G = 5C+8H+N+8O;    {CO(OH)CH(O.)CH2CH(OOH)CH2(ONO2)                                                                        1.AHN    }
+  G1A505Z = 5C+9H+7O;      {CO(OH)CH(O.)CH2CH(OOH)CH2(OOH)                                                                         1.AHH    }
+  G1A506v = 5C+7H+6O;      {CO(OH)CH(O.)CH2CH(OOH)CHO                                                                              1.AHD    }
+  G1A508b = 5C+7H+8O;      {CO(OH)CH(O.)CH2CH(OOH)CO(OOH)                                                                          1.AGH    }
+  G1P509Z = 5C+6H+N+10O;   {CO(OH)CH(O.)CH2CH(OOH)CO(OONO2)                                                                        1.PAH    }
+  G1A4002 = 4C+6H+N+6O;    {CO(OH)CH(O.)CH2CH2(ONO2)                                                                               1.AN     }
+  G1A400n = 4C+7H+5O;      {CO(OH)CH(O.)CH2CH2(OOH)                                                                                1.AH     }
+  G1A5006 = 5C+8H+N+6O;    {CO(OH)CH(O.)CH2CH2CH2(ONO2)                                                                            1.AN     }
+  G1A502K = 5C+9H+5O;      {CO(OH)CH(O.)CH2CH2CH2(OOH)                                                                             1.AH     }
+  G1A502M = 5C+7H+4O;      {CO(OH)CH(O.)CH2CH2CHO                                                                                  1.AD     }
+  G1A503t = 5C+7H+6O;      {CO(OH)CH(O.)CH2CH2CO(OOH)                                                                              1.AG     }
+  G1P503N = 5C+6H+N+8O;    {CO(OH)CH(O.)CH2CH2CO(OONO2)                                                                            1.PA     }
+  G1A400U = 4C+5H+4O;      {CO(OH)CH(O.)CH2CHO                                                                                     1.AD     }
+  G1A400s = 4C+5H+6O;      {CO(OH)CH(O.)CH2CO(OOH)                                                                                 1.AG     }
+  G1P400t = 4C+4H+N+8O;    {CO(OH)CH(O.)CH2CO(OONO2)                                                                               1.PA     }
+  G1A5018 = 5C+6H+N+7O;    {CO(OH)CH(O.)CH2COCH2(ONO2)                                                                             1.ANK    }
+  G1A501Y = 5C+7H+6O;      {CO(OH)CH(O.)CH2COCH2(OOH)                                                                              1.AHK    }
+  G1A5048 = 5C+5H+5O;      {CO(OH)CH(O.)CH2COCHO                                                                                   1.ADK    }
+  G1A506p = 5C+5H+7O;      {CO(OH)CH(O.)CH2COCO(OOH)                                                                               1.AGK    }
+  G1P507W = 5C+4H+N+9O;    {CO(OH)CH(O.)CH2COCO(OONO2)                                                                             1.PAK    }
+  G1A3008 = 3C+3H+4O;      {CO(OH)CH(O.)CHO                                                                                        1.AD     }
+  G1A300A = 3C+3H+5O;      {CO(OH)CH(O.)CO(OH)                                                                                     1.AA     }
+  G1A3009 = 3C+3H+6O;      {CO(OH)CH(O.)CO(OOH)                                                                                    1.AG     }
+  G1P300A = 3C+2H+N+8O;    {CO(OH)CH(O.)CO(OONO2)                                                                                  1.PA     }
+  G1A501P = 5C+6H+N+8O;    {CO(OH)CH(O.)COCH(OH)CH2(ONO2)                                                                          1.ANK    }
+  G1A505q = 5C+7H+7O;      {CO(OH)CH(O.)COCH(OH)CH2(OOH)                                                                           1.AHK    }
+  G1A505r = 5C+5H+6O;      {CO(OH)CH(O.)COCH(OH)CHO                                                                                1.ADK    }
+  G1A508i = 5C+5H+8O;      {CO(OH)CH(O.)COCH(OH)CO(OOH)                                                                            1.AGK    }
+  G1P5068 = 5C+4H+N+10O;   {CO(OH)CH(O.)COCH(OH)CO(OONO2)                                                                          1.PAK    }
+  G1A5036 = 5C+5H+2N+10O;  {CO(OH)CH(O.)COCH(ONO2)CH2(ONO2)                                                                        1.ANN    }
+  G1A508O = 5C+6H+N+9O;    {CO(OH)CH(O.)COCH(ONO2)CH2(OOH)                                                                         1.AHN    }
+  G1A506i = 5C+4H+N+8O;    {CO(OH)CH(O.)COCH(ONO2)CHO                                                                              1.AND    }
+  G1A508K = 5C+4H+N+10O;   {CO(OH)CH(O.)COCH(ONO2)CO(OOH)                                                                          1.AGN    }
+  G1P509G = 5C+3H+2N+12O;  {CO(OH)CH(O.)COCH(ONO2)CO(OONO2)                                                                        1.PAN    }
+  G1A506a = 5C+6H+N+9O;    {CO(OH)CH(O.)COCH(OOH)CH2(ONO2)                                                                         1.AHN    }
+  G1A508W = 5C+5H+7O;      {CO(OH)CH(O.)COCH(OOH)CHO                                                                               1.AHD    }
+  G1A509k = 5C+5H+9O;      {CO(OH)CH(O.)COCH(OOH)CO(OOH)                                                                           1.AGH    }
+  G1P50Ay = 5C+4H+N+11O;   {CO(OH)CH(O.)COCH(OOH)CO(OONO2)                                                                         1.PAH    }
+  G1A400O = 4C+4H+N+7O;    {CO(OH)CH(O.)COCH2(ONO2)                                                                                1.ANK    }
+  G1A401I = 4C+5H+6O;      {CO(OH)CH(O.)COCH2(OOH)                                                                                 1.AHK    }
+  G1A500o = 5C+6H+N+7O;    {CO(OH)CH(O.)COCH2CH2(ONO2)                                                                             1.ANK    }
+  G1A505R = 5C+7H+6O;      {CO(OH)CH(O.)COCH2CH2(OOH)                                                                              1.AHK    }
+  G1A505S = 5C+5H+5O;      {CO(OH)CH(O.)COCH2CHO                                                                                   1.ADK    }
+  G1A505J = 5C+5H+7O;      {CO(OH)CH(O.)COCH2CO(OOH)                                                                               1.AGK    }
+  G1P505n = 5C+4H+N+9O;    {CO(OH)CH(O.)COCH2CO(OONO2)                                                                             1.PAK    }
+  G1A401J = 4C+3H+5O;      {CO(OH)CH(O.)COCHO                                                                                      1.ADK    }
+  G1A401N = 4C+3H+7O;      {CO(OH)CH(O.)COCO(OOH)                                                                                  1.AGK    }
+  G1P401H = 4C+2H+N+9O;    {CO(OH)CH(O.)COCO(OONO2)                                                                                1.PAK    }
+  G1A5039 = 5C+4H+N+8O;    {CO(OH)CH(O.)COCOCH2(ONO2)                                                                              1.ANK    }
+  G1A508T = 5C+5H+7O;      {CO(OH)CH(O.)COCOCH2(OOH)                                                                               1.AHK    }
+  G1A508U = 5C+3H+6O;      {CO(OH)CH(O.)COCOCHO                                                                                    1.ADK    }
+  G1A508L = 5C+3H+8O;      {CO(OH)CH(O.)COCOCO(OOH)                                                                                1.AGK    }
+  G1P509H = 5C+2H+N+10O;   {CO(OH)CH(O.)COCOCO(OONO2)                                                                              1.PAK    }
+  G1A501M = 5C+8H+N+8O;    {CO(OH)CH(OH)CH(O.)CH(OH)CH2(ONO2)                                                                      1.ANO    }
+  G1A504Y = 5C+9H+7O;      {CO(OH)CH(OH)CH(O.)CH(OH)CH2(OOH)                                                                       1.AHO    }
+  G1A501U = 5C+7H+6O;      {CO(OH)CH(OH)CH(O.)CH(OH)CHO                                                                            1.ADO    }
+  G1A504g = 5C+7H+7O;      {CO(OH)CH(OH)CH(O.)CH(OH)CO(OH)                                                                         1.AAO    }
+  G1A504a = 5C+7H+8O;      {CO(OH)CH(OH)CH(O.)CH(OH)CO(OOH)                                                                        1.AGO    }
+  G1P504i = 5C+6H+N+10O;   {CO(OH)CH(OH)CH(O.)CH(OH)CO(OONO2)                                                                      1.PAO    }
+  G1A503W = 5C+7H+2N+10O;  {CO(OH)CH(OH)CH(O.)CH(ONO2)CH2(ONO2)                                                                    1.ANN    }
+  G1A507e = 5C+8H+N+9O;    {CO(OH)CH(OH)CH(O.)CH(ONO2)CH2(OOH)                                                                     1.AHN    }
+  G1A506D = 5C+6H+N+8O;    {CO(OH)CH(OH)CH(O.)CH(ONO2)CHO                                                                          1.AND    }
+  G1A508u = 5C+6H+N+10O;   {CO(OH)CH(OH)CH(O.)CH(ONO2)CO(OOH)                                                                      1.AGN    }
+  G1P508T = 5C+5H+2N+12O;  {CO(OH)CH(OH)CH(O.)CH(ONO2)CO(OONO2)                                                                    1.PAN    }
+  G1A504T = 5C+8H+N+9O;    {CO(OH)CH(OH)CH(O.)CH(OOH)CH2(ONO2)                                                                     1.AHN    }
+  G1A5089 = 5C+9H+8O;      {CO(OH)CH(OH)CH(O.)CH(OOH)CH2(OOH)                                                                      1.AHH    }
+  G1A503l = 5C+7H+7O;      {CO(OH)CH(OH)CH(O.)CH(OOH)CHO                                                                           1.AHD    }
+  G1A508w = 5C+7H+9O;      {CO(OH)CH(OH)CH(O.)CH(OOH)CO(OOH)                                                                       1.AGH    }
+  G1P508U = 5C+6H+N+11O;   {CO(OH)CH(OH)CH(O.)CH(OOH)CO(OONO2)                                                                     1.PAH    }
+  G1A400Q = 4C+6H+N+7O;    {CO(OH)CH(OH)CH(O.)CH2(ONO2)                                                                            1.ANO    }
+  G1A400v = 4C+7H+6O;      {CO(OH)CH(OH)CH(O.)CH2(OOH)                                                                             1.AHO    }
+  G1A500v = 5C+8H+N+7O;    {CO(OH)CH(OH)CH(O.)CH2CH2(ONO2)                                                                         1.ANO    }
+  G1A501W = 5C+9H+6O;      {CO(OH)CH(OH)CH(O.)CH2CH2(OOH)                                                                          1.AHO    }
+  G1A501G = 5C+7H+5O;      {CO(OH)CH(OH)CH(O.)CH2CHO                                                                               1.ADO    }
+  G1A5044 = 5C+7H+6O;      {CO(OH)CH(OH)CH(O.)CH2CO(OH)                                                                            1.AAO    }
+  G1A5041 = 5C+7H+7O;      {CO(OH)CH(OH)CH(O.)CH2CO(OOH)                                                                           1.AGO    }
+  G1P503Q = 5C+6H+N+9O;    {CO(OH)CH(OH)CH(O.)CH2CO(OONO2)                                                                         1.PAO    }
+  G1A4018 = 4C+5H+5O;      {CO(OH)CH(OH)CH(O.)CHO                                                                                  1.ADO    }
+  G1A401G = 4C+5H+6O;      {CO(OH)CH(OH)CH(O.)CO(OH)                                                                               1.AAO    }
+  G1A401E = 4C+5H+7O;      {CO(OH)CH(OH)CH(O.)CO(OOH)                                                                              1.AGO    }
+  G1P401P = 4C+4H+N+9O;    {CO(OH)CH(OH)CH(O.)CO(OONO2)                                                                            1.PAO    }
+  G1A503o = 5C+6H+N+8O;    {CO(OH)CH(OH)CH(O.)COCH2(ONO2)                                                                          1.ANK    }
+  G1A507g = 5C+7H+7O;      {CO(OH)CH(OH)CH(O.)COCH2(OOH)                                                                           1.AHK    }
+  G1A507j = 5C+5H+6O;      {CO(OH)CH(OH)CH(O.)COCHO                                                                                1.ADK    }
+  G1A507O = 5C+5H+7O;      {CO(OH)CH(OH)CH(O.)COCO(OH)                                                                             1.AAK    }
+  G1A509S = 5C+5H+8O;      {CO(OH)CH(OH)CH(O.)COCO(OOH)                                                                            1.AGK    }
+  G1P507Y = 5C+4H+N+10O;   {CO(OH)CH(OH)CH(O.)COCO(OONO2)                                                                          1.PAK    }
+  G1A5077 = 5C+8H+N+8O;    {CO(OH)CH(OH)CH(OH)CH(O.)CH2(ONO2)                                                                      1.ANO    }
+  G1A507i = 5C+9H+7O;      {CO(OH)CH(OH)CH(OH)CH(O.)CH2(OOH)                                                                       1.AHO    }
+  G1A507F = 5C+7H+6O;      {CO(OH)CH(OH)CH(OH)CH(O.)CHO                                                                            1.ADO    }
+  G1A509L = 5C+7H+7O;      {CO(OH)CH(OH)CH(OH)CH(O.)CO(OH)                                                                         1.AAO    }
+  G1A509K = 5C+7H+8O;      {CO(OH)CH(OH)CH(OH)CH(O.)CO(OOH)                                                                        1.AGO    }
+  G1P5073 = 5C+6H+N+10O;   {CO(OH)CH(OH)CH(OH)CH(O.)CO(OONO2)                                                                      1.PAO    }
+  G1A504P = 5C+9H+6O;      {CO(OH)CH(OH)CH(OH)CH(OH)CH2(O.)                                                                        1.AOO    }
+  GAN501Q = 5C+9H+N+8O;    {CO(OH)CH(OH)CH(OH)CH(OH)CH2(ONO2)                                                                      ANOOO    }
+  G2A503P = 5C+9H+7O;      {CO(OH)CH(OH)CH(OH)CH(OH)CH2(OO.)                                                                       2.AOO    }
+  GAH501i = 5C+10H+7O;     {CO(OH)CH(OH)CH(OH)CH(OH)CH2(OOH)                                                                       AHOOO    }
+  GAD500C = 5C+8H+6O;      {CO(OH)CH(OH)CH(OH)CH(OH)CHO                                                                            ADOOO    }
+  GAA500I = 5C+8H+7O;      {CO(OH)CH(OH)CH(OH)CH(OH)CO(OH)                                                                         AAOOO    }
+  G3A500Q = 5C+7H+8O;      {CO(OH)CH(OH)CH(OH)CH(OH)CO(OO.)                                                                        3.AKO    }
+  GAG500T = 5C+8H+8O;      {CO(OH)CH(OH)CH(OH)CH(OH)CO(OOH)                                                                        AGOOO    }
+  GPA500U = 5C+7H+N+10O;   {CO(OH)CH(OH)CH(OH)CH(OH)CO(OONO2)                                                                      PAOOO    }
+  G1A5078 = 5C+8H+N+8O;    {CO(OH)CH(OH)CH(OH)CH(ONO2)CH2(O.)                                                                      1.ANO    }
+  GAN502d = 5C+8H+2N+10O;  {CO(OH)CH(OH)CH(OH)CH(ONO2)CH2(ONO2)                                                                    ANNOO    }
+  G2A505X = 5C+8H+N+9O;    {CO(OH)CH(OH)CH(OH)CH(ONO2)CH2(OO.)                                                                     2.ANO    }
+  GAH504P = 5C+9H+N+9O;    {CO(OH)CH(OH)CH(OH)CH(ONO2)CH2(OOH)                                                                     AHNOO    }
+  GAN502e = 5C+7H+N+8O;    {CO(OH)CH(OH)CH(OH)CH(ONO2)CHO                                                                          ANDOO    }
+  GAA500k = 5C+7H+N+9O;    {CO(OH)CH(OH)CH(OH)CH(ONO2)CO(OH)                                                                       AANOO    }
+  G3A500y = 5C+6H+N+10O;   {CO(OH)CH(OH)CH(OH)CH(ONO2)CO(OO.)                                                                      3.ANK    }
+  GAG501D = 5C+7H+N+10O;   {CO(OH)CH(OH)CH(OH)CH(ONO2)CO(OOH)                                                                      AGNOO    }
+  GPA501D = 5C+6H+2N+12O;  {CO(OH)CH(OH)CH(OH)CH(ONO2)CO(OONO2)                                                                    PANOO    }
+  G2A505Q = 5C+8H+N+9O;    {CO(OH)CH(OH)CH(OH)CH(OO.)CH2(ONO2)                                                                     2.ANO    }
+  G2A506k = 5C+7H+8O;      {CO(OH)CH(OH)CH(OH)CH(OO.)CO(OH)                                                                        2.AAO    }
+  G2A506j = 5C+7H+9O;      {CO(OH)CH(OH)CH(OH)CH(OO.)CO(OOH)                                                                       2.AGO    }
+  G2P5057 = 5C+6H+N+11O;   {CO(OH)CH(OH)CH(OH)CH(OO.)CO(OONO2)                                                                     2.PAO    }
+  G1A505h = 5C+9H+7O;      {CO(OH)CH(OH)CH(OH)CH(OOH)CH2(O.)                                                                       1.AHO    }
+  GAH504H = 5C+9H+N+9O;    {CO(OH)CH(OH)CH(OH)CH(OOH)CH2(ONO2)                                                                     AHNOO    }
+  G2A504L = 5C+9H+8O;      {CO(OH)CH(OH)CH(OH)CH(OOH)CH2(OO.)                                                                      2.AHO    }
+  GAH504x = 5C+10H+8O;     {CO(OH)CH(OH)CH(OH)CH(OOH)CH2(OOH)                                                                      AHHOO    }
+  GAH503o = 5C+8H+7O;      {CO(OH)CH(OH)CH(OH)CH(OOH)CHO                                                                           AHDOO    }
+  GAA500m = 5C+8H+8O;      {CO(OH)CH(OH)CH(OH)CH(OOH)CO(OH)                                                                        AAHOO    }
+  G3A5011 = 5C+7H+9O;      {CO(OH)CH(OH)CH(OH)CH(OOH)CO(OO.)                                                                       3.AHK    }
+  GAG501F = 5C+8H+9O;      {CO(OH)CH(OH)CH(OH)CH(OOH)CO(OOH)                                                                       AGHOO    }
+  GPA501E = 5C+7H+N+11O;   {CO(OH)CH(OH)CH(OH)CH(OOH)CO(OONO2)                                                                     PAHOO    }
+  G1A400X = 4C+7H+5O;      {CO(OH)CH(OH)CH(OH)CH2(O.)                                                                              1.AOO    }
+  GAN400C = 4C+7H+N+7O;    {CO(OH)CH(OH)CH(OH)CH2(ONO2)                                                                            ANOO     }
+  G2A400j = 4C+7H+6O;      {CO(OH)CH(OH)CH(OH)CH2(OO.)                                                                             2.AOO    }
+  GAH400f = 4C+8H+6O;      {CO(OH)CH(OH)CH(OH)CH2(OOH)                                                                             AHOO     }
+  G1A502T = 5C+9H+5O;      {CO(OH)CH(OH)CH(OH)CH2CH2(O.)                                                                           1.AOO    }
+  GAN500x = 5C+9H+N+7O;    {CO(OH)CH(OH)CH(OH)CH2CH2(ONO2)                                                                         ANOO     }
+  G2A5024 = 5C+9H+6O;      {CO(OH)CH(OH)CH(OH)CH2CH2(OO.)                                                                          2.AOO    }
+  GAH501u = 5C+10H+6O;     {CO(OH)CH(OH)CH(OH)CH2CH2(OOH)                                                                          AHOO     }
+  GAD5008 = 5C+8H+5O;      {CO(OH)CH(OH)CH(OH)CH2CHO                                                                               ADOO     }
+  G3A500F = 5C+7H+7O;      {CO(OH)CH(OH)CH(OH)CH2CO(OO.)                                                                           3.AKO    }
+  GAG500G = 5C+8H+7O;      {CO(OH)CH(OH)CH(OH)CH2CO(OOH)                                                                           AGOO     }
+  GPA500I = 5C+7H+N+9O;    {CO(OH)CH(OH)CH(OH)CH2CO(OONO2)                                                                         PAOO     }
+  GAD4007 = 4C+6H+5O;      {CO(OH)CH(OH)CH(OH)CHO                                                                                  ADOO     }
+  GAA400D = 4C+6H+6O;      {CO(OH)CH(OH)CH(OH)CO(OH)                                                                               AAOO     }
+  G3A400F = 4C+5H+7O;      {CO(OH)CH(OH)CH(OH)CO(OO.)                                                                              3.AKO    }
+  GAG400F = 4C+6H+7O;      {CO(OH)CH(OH)CH(OH)CO(OOH)                                                                              AGOO     }
+  GPA400I = 4C+5H+N+9O;    {CO(OH)CH(OH)CH(OH)CO(OONO2)                                                                            PAOO     }
+  G1A507K = 5C+7H+6O;      {CO(OH)CH(OH)CH(OH)COCH2(O.)                                                                            1.AKO    }
+  GAN502f = 5C+7H+N+8O;    {CO(OH)CH(OH)CH(OH)COCH2(ONO2)                                                                          ANKOO    }
+  G2A505Y = 5C+7H+7O;      {CO(OH)CH(OH)CH(OH)COCH2(OO.)                                                                           2.AKO    }
+  GAH504Q = 5C+8H+7O;      {CO(OH)CH(OH)CH(OH)COCH2(OOH)                                                                           AHKOO    }
+  GAD500M = 5C+6H+6O;      {CO(OH)CH(OH)CH(OH)COCHO                                                                                ADKOO    }
+  GAA500p = 5C+6H+7O;      {CO(OH)CH(OH)CH(OH)COCO(OH)                                                                             AAKOO    }
+  G3A501i = 5C+5H+8O;      {CO(OH)CH(OH)CH(OH)COCO(OO.)                                                                            3.AKK    }
+  GAG501P = 5C+6H+8O;      {CO(OH)CH(OH)CH(OH)COCO(OOH)                                                                            AGKOO    }
+  GPA501F = 5C+5H+N+10O;   {CO(OH)CH(OH)CH(OH)COCO(OONO2)                                                                          PAKOO    }
+  G1A504I = 5C+7H+2N+10O;  {CO(OH)CH(OH)CH(ONO2)CH(O.)CH2(ONO2)                                                                    1.ANN    }
+  G1A508A = 5C+8H+N+9O;    {CO(OH)CH(OH)CH(ONO2)CH(O.)CH2(OOH)                                                                     1.AHN    }
+  G1A506E = 5C+6H+N+8O;    {CO(OH)CH(OH)CH(ONO2)CH(O.)CHO                                                                          1.AND    }
+  G1A505H = 5C+6H+N+9O;    {CO(OH)CH(OH)CH(ONO2)CH(O.)CO(OH)                                                                       1.AAN    }
+  G1A508v = 5C+6H+N+10O;   {CO(OH)CH(OH)CH(ONO2)CH(O.)CO(OOH)                                                                      1.AGN    }
+  G1P504x = 5C+5H+2N+12O;  {CO(OH)CH(OH)CH(ONO2)CH(O.)CO(OONO2)                                                                    1.PAN    }
+  G1A502c = 5C+8H+N+8O;    {CO(OH)CH(OH)CH(ONO2)CH(OH)CH2(O.)                                                                      1.ANO    }
+  GAN501N = 5C+8H+2N+10O;  {CO(OH)CH(OH)CH(ONO2)CH(OH)CH2(ONO2)                                                                    ANNOO    }
+  G2A502C = 5C+8H+N+9O;    {CO(OH)CH(OH)CH(ONO2)CH(OH)CH2(OO.)                                                                     2.ANO    }
+  GAH501h = 5C+9H+N+9O;    {CO(OH)CH(OH)CH(ONO2)CH(OH)CH2(OOH)                                                                     AHNOO    }
+  GAN501W = 5C+7H+N+8O;    {CO(OH)CH(OH)CH(ONO2)CH(OH)CHO                                                                          ANDOO    }
+  GAA500J = 5C+7H+N+9O;    {CO(OH)CH(OH)CH(ONO2)CH(OH)CO(OH)                                                                       AANOO    }
+  G3A500S = 5C+6H+N+10O;   {CO(OH)CH(OH)CH(ONO2)CH(OH)CO(OO.)                                                                      3.ANK    }
+  GAG500U = 5C+7H+N+10O;   {CO(OH)CH(OH)CH(ONO2)CH(OH)CO(OOH)                                                                      AGNOO    }
+  GPA500D = 5C+6H+2N+12O;  {CO(OH)CH(OH)CH(ONO2)CH(OH)CO(OONO2)                                                                    PANOO    }
+  G1A505i = 5C+7H+2N+10O;  {CO(OH)CH(OH)CH(ONO2)CH(ONO2)CH2(O.)                                                                    1.ANN    }
+  GAN5026 = 5C+7H+3N+12O;  {CO(OH)CH(OH)CH(ONO2)CH(ONO2)CH2(ONO2)                                                                  ANNNO    }
+  G2A506z = 5C+7H+2N+11O;  {CO(OH)CH(OH)CH(ONO2)CH(ONO2)CH2(OO.)                                                                   2.ANN    }
+  GAH505S = 5C+8H+2N+11O;  {CO(OH)CH(OH)CH(ONO2)CH(ONO2)CH2(OOH)                                                                   AHNNO    }
+  GAN502G = 5C+6H+2N+10O;  {CO(OH)CH(OH)CH(ONO2)CH(ONO2)CHO                                                                        ANNDO    }
+  GAA500O = 5C+6H+2N+11O;  {CO(OH)CH(OH)CH(ONO2)CH(ONO2)CO(OH)                                                                     AANNO    }
+  G3A500f = 5C+5H+2N+12O;  {CO(OH)CH(OH)CH(ONO2)CH(ONO2)CO(OO.)                                                                    3.ANN    }
+  GAG500v = 5C+6H+2N+12O;  {CO(OH)CH(OH)CH(ONO2)CH(ONO2)CO(OOH)                                                                    AGNNO    }
+  GPA500d = 5C+5H+3N+14O;  {CO(OH)CH(OH)CH(ONO2)CH(ONO2)CO(OONO2)                                                                  PANNO    }
+  G2A505O = 5C+7H+2N+11O;  {CO(OH)CH(OH)CH(ONO2)CH(OO.)CH2(ONO2)                                                                   2.ANN    }
+  G2A505q = 5C+8H+N+10O;   {CO(OH)CH(OH)CH(ONO2)CH(OO.)CH2(OOH)                                                                    2.AHN    }
+  G2A504d = 5C+6H+N+9O;    {CO(OH)CH(OH)CH(ONO2)CH(OO.)CHO                                                                         2.AND    }
+  G2A5043 = 5C+6H+N+10O;   {CO(OH)CH(OH)CH(ONO2)CH(OO.)CO(OH)                                                                      2.AAN    }
+  G2A506M = 5C+6H+N+11O;   {CO(OH)CH(OH)CH(ONO2)CH(OO.)CO(OOH)                                                                     2.AGN    }
+  G2P503z = 5C+5H+2N+13O;  {CO(OH)CH(OH)CH(ONO2)CH(OO.)CO(OONO2)                                                                   2.PAN    }
+  G1A5056 = 5C+8H+N+9O;    {CO(OH)CH(OH)CH(ONO2)CH(OOH)CH2(O.)                                                                     1.AHN    }
+  GAH504F = 5C+8H+2N+11O;  {CO(OH)CH(OH)CH(ONO2)CH(OOH)CH2(ONO2)                                                                   AHNNO    }
+  G2A503z = 5C+8H+N+10O;   {CO(OH)CH(OH)CH(ONO2)CH(OOH)CH2(OO.)                                                                    2.AHN    }
+  GAH504m = 5C+9H+N+10O;   {CO(OH)CH(OH)CH(ONO2)CH(OOH)CH2(OOH)                                                                    AHHNO    }
+  GAH5037 = 5C+7H+N+9O;    {CO(OH)CH(OH)CH(ONO2)CH(OOH)CHO                                                                         AHNDO    }
+  GAA500P = 5C+7H+N+10O;   {CO(OH)CH(OH)CH(ONO2)CH(OOH)CO(OH)                                                                      AAHNO    }
+  G3A500g = 5C+6H+N+11O;   {CO(OH)CH(OH)CH(ONO2)CH(OOH)CO(OO.)                                                                     3.AHN    }
+  GAG500w = 5C+7H+N+11O;   {CO(OH)CH(OH)CH(ONO2)CH(OOH)CO(OOH)                                                                     AGHNO    }
+  GPA500e = 5C+6H+2N+13O;  {CO(OH)CH(OH)CH(ONO2)CH(OOH)CO(OONO2)                                                                   PAHNO    }
+  G1A400d = 4C+6H+N+7O;    {CO(OH)CH(OH)CH(ONO2)CH2(O.)                                                                            1.ANO    }
+  GAN400S = 4C+6H+2N+9O;   {CO(OH)CH(OH)CH(ONO2)CH2(ONO2)                                                                          ANNO     }
+  G2A400Z = 4C+6H+N+8O;    {CO(OH)CH(OH)CH(ONO2)CH2(OO.)                                                                           2.ANO    }
+  GAH400g = 4C+7H+N+8O;    {CO(OH)CH(OH)CH(ONO2)CH2(OOH)                                                                           AHNO     }
+  G1A500J = 5C+8H+N+7O;    {CO(OH)CH(OH)CH(ONO2)CH2CH2(O.)                                                                         1.ANO    }
+  GAN500a = 5C+8H+2N+9O;   {CO(OH)CH(OH)CH(ONO2)CH2CH2(ONO2)                                                                       ANNO     }
+  G2A500I = 5C+8H+N+8O;    {CO(OH)CH(OH)CH(ONO2)CH2CH2(OO.)                                                                        2.ANO    }
+  GAH500P = 5C+9H+N+8O;    {CO(OH)CH(OH)CH(ONO2)CH2CH2(OOH)                                                                        AHNO     }
+  GAN500b = 5C+7H+N+7O;    {CO(OH)CH(OH)CH(ONO2)CH2CHO                                                                             ANDO     }
+  GAA5004 = 5C+7H+N+8O;    {CO(OH)CH(OH)CH(ONO2)CH2CO(OH)                                                                          AANO     }
+  G3A5005 = 5C+6H+N+9O;    {CO(OH)CH(OH)CH(ONO2)CH2CO(OO.)                                                                         3.ANK    }
+  GAG5005 = 5C+7H+N+9O;    {CO(OH)CH(OH)CH(ONO2)CH2CO(OOH)                                                                         AGNO     }
+  GPA5005 = 5C+6H+2N+11O;  {CO(OH)CH(OH)CH(ONO2)CH2CO(OONO2)                                                                       PANO     }
+  GAN400a = 4C+5H+N+7O;    {CO(OH)CH(OH)CH(ONO2)CHO                                                                                ANDO     }
+  GAA4004 = 4C+5H+N+8O;    {CO(OH)CH(OH)CH(ONO2)CO(OH)                                                                             AANO     }
+  G3A400B = 4C+4H+N+9O;    {CO(OH)CH(OH)CH(ONO2)CO(OO.)                                                                            3.ANK    }
+  GAG400D = 4C+5H+N+9O;    {CO(OH)CH(OH)CH(ONO2)CO(OOH)                                                                            AGNO     }
+  GPA4009 = 4C+4H+2N+11O;  {CO(OH)CH(OH)CH(ONO2)CO(OONO2)                                                                          PANO     }
+  G1A504x = 5C+6H+N+8O;    {CO(OH)CH(OH)CH(ONO2)COCH2(O.)                                                                          1.ANK    }
+  GAN502H = 5C+6H+2N+10O;  {CO(OH)CH(OH)CH(ONO2)COCH2(ONO2)                                                                        ANNKO    }
+  G2A503x = 5C+6H+N+9O;    {CO(OH)CH(OH)CH(ONO2)COCH2(OO.)                                                                         2.ANK    }
+  GAH504R = 5C+7H+N+9O;    {CO(OH)CH(OH)CH(ONO2)COCH2(OOH)                                                                         AHNKO    }
+  GAN502i = 5C+5H+N+8O;    {CO(OH)CH(OH)CH(ONO2)COCHO                                                                              ANDKO    }
+  GAA500Q = 5C+5H+N+9O;    {CO(OH)CH(OH)CH(ONO2)COCO(OH)                                                                           AANKO    }
+  G3A501M = 5C+4H+N+10O;   {CO(OH)CH(OH)CH(ONO2)COCO(OO.)                                                                          3.ANK    }
+  GAG501R = 5C+5H+N+10O;   {CO(OH)CH(OH)CH(ONO2)COCO(OOH)                                                                          AGNKO    }
+  GPA500f = 5C+4H+2N+12O;  {CO(OH)CH(OH)CH(ONO2)COCO(OONO2)                                                                        PANKO    }
+  G2A501B = 5C+8H+N+9O;    {CO(OH)CH(OH)CH(OO.)CH(OH)CH2(ONO2)                                                                     2.ANO    }
+  G2A501G = 5C+7H+7O;      {CO(OH)CH(OH)CH(OO.)CH(OH)CHO                                                                           2.ADO    }
+  G2A503h = 5C+7H+8O;      {CO(OH)CH(OH)CH(OO.)CH(OH)CO(OH)                                                                        2.AAO    }
+  G2A503d = 5C+7H+9O;      {CO(OH)CH(OH)CH(OO.)CH(OH)CO(OOH)                                                                       2.AGO    }
+  G2P503i = 5C+6H+N+11O;   {CO(OH)CH(OH)CH(OO.)CH(OH)CO(OONO2)                                                                     2.PAO    }
+  G2A502o = 5C+7H+2N+11O;  {CO(OH)CH(OH)CH(OO.)CH(ONO2)CH2(ONO2)                                                                   2.ANN    }
+  G2A505S = 5C+8H+N+10O;   {CO(OH)CH(OH)CH(OO.)CH(ONO2)CH2(OOH)                                                                    2.AHN    }
+  G2A5052 = 5C+6H+N+9O;    {CO(OH)CH(OH)CH(OO.)CH(ONO2)CHO                                                                         2.AND    }
+  G2A506f = 5C+6H+N+11O;   {CO(OH)CH(OH)CH(OO.)CH(ONO2)CO(OOH)                                                                     2.AGN    }
+  G2P507P = 5C+5H+2N+13O;  {CO(OH)CH(OH)CH(OO.)CH(ONO2)CO(OONO2)                                                                   2.PAN    }
+  G2A503U = 5C+8H+N+10O;   {CO(OH)CH(OH)CH(OO.)CH(OOH)CH2(ONO2)                                                                    2.AHN    }
+  G2A502x = 5C+7H+8O;      {CO(OH)CH(OH)CH(OO.)CH(OOH)CHO                                                                          2.AHD    }
+  G2A400N = 4C+6H+N+8O;    {CO(OH)CH(OH)CH(OO.)CH2(ONO2)                                                                           2.ANO    }
+  G2A400o = 4C+7H+7O;      {CO(OH)CH(OH)CH(OO.)CH2(OOH)                                                                            2.AHO    }
+  G2A500q = 5C+8H+N+8O;    {CO(OH)CH(OH)CH(OO.)CH2CH2(ONO2)                                                                        2.ANO    }
+  G2A501H = 5C+9H+7O;      {CO(OH)CH(OH)CH(OO.)CH2CH2(OOH)                                                                         2.AHO    }
+  G2A5017 = 5C+7H+6O;      {CO(OH)CH(OH)CH(OO.)CH2CHO                                                                              2.ADO    }
+  G2A503E = 5C+7H+7O;      {CO(OH)CH(OH)CH(OO.)CH2CO(OH)                                                                           2.AAO    }
+  G2A503B = 5C+7H+8O;      {CO(OH)CH(OH)CH(OO.)CH2CO(OOH)                                                                          2.AGO    }
+  G2P502o = 5C+6H+N+10O;   {CO(OH)CH(OH)CH(OO.)CH2CO(OONO2)                                                                        2.PAO    }
+  G2A4017 = 4C+5H+6O;      {CO(OH)CH(OH)CH(OO.)CHO                                                                                 2.ADO    }
+  G2A4015 = 4C+5H+7O;      {CO(OH)CH(OH)CH(OO.)CO(OH)                                                                              2.AAO    }
+  G2A4013 = 4C+5H+8O;      {CO(OH)CH(OH)CH(OO.)CO(OOH)                                                                             2.AGO    }
+  G2P401D = 4C+4H+N+10O;   {CO(OH)CH(OH)CH(OO.)CO(OONO2)                                                                           2.PAO    }
+  G2A502z = 5C+6H+N+9O;    {CO(OH)CH(OH)CH(OO.)COCH2(ONO2)                                                                         2.ANK    }
+  G2A505U = 5C+7H+8O;      {CO(OH)CH(OH)CH(OO.)COCH2(OOH)                                                                          2.AHK    }
+  G2A505c = 5C+5H+7O;      {CO(OH)CH(OH)CH(OO.)COCHO                                                                               2.ADK    }
+  G2A5055 = 5C+5H+8O;      {CO(OH)CH(OH)CH(OO.)COCO(OH)                                                                            2.AAK    }
+  G2A5073 = 5C+5H+9O;      {CO(OH)CH(OH)CH(OO.)COCO(OOH)                                                                           2.AGK    }
+  G2P505M = 5C+4H+N+11O;   {CO(OH)CH(OH)CH(OO.)COCO(OONO2)                                                                         2.PAK    }
+  G1A5075 = 5C+8H+N+9O;    {CO(OH)CH(OH)CH(OOH)CH(O.)CH2(ONO2)                                                                     1.AHN    }
+  G1A507f = 5C+9H+8O;      {CO(OH)CH(OH)CH(OOH)CH(O.)CH2(OOH)                                                                      1.AHH    }
+  G1A507B = 5C+7H+7O;      {CO(OH)CH(OH)CH(OOH)CH(O.)CHO                                                                           1.AHD    }
+  G1A509J = 5C+7H+8O;      {CO(OH)CH(OH)CH(OOH)CH(O.)CO(OH)                                                                        1.AAH    }
+  G1A509I = 5C+7H+9O;      {CO(OH)CH(OH)CH(OOH)CH(O.)CO(OOH)                                                                       1.AGH    }
+  G1P50AP = 5C+6H+N+11O;   {CO(OH)CH(OH)CH(OOH)CH(O.)CO(OONO2)                                                                     1.PAH    }
+  G1A504N = 5C+9H+7O;      {CO(OH)CH(OH)CH(OOH)CH(OH)CH2(O.)                                                                       1.AHO    }
+  GAH501e = 5C+9H+N+9O;    {CO(OH)CH(OH)CH(OOH)CH(OH)CH2(ONO2)                                                                     AHNOO    }
+  G2A503N = 5C+9H+8O;      {CO(OH)CH(OH)CH(OOH)CH(OH)CH2(OO.)                                                                      2.AHO    }
+  GAH501f = 5C+10H+8O;     {CO(OH)CH(OH)CH(OOH)CH(OH)CH2(OOH)                                                                      AHHOO    }
+  GAH501n = 5C+8H+7O;      {CO(OH)CH(OH)CH(OOH)CH(OH)CHO                                                                           AHDOO    }
+  GAA500H = 5C+8H+8O;      {CO(OH)CH(OH)CH(OOH)CH(OH)CO(OH)                                                                        AAHOO    }
+  G3A500P = 5C+7H+9O;      {CO(OH)CH(OH)CH(OOH)CH(OH)CO(OO.)                                                                       3.AHK    }
+  GAG500S = 5C+8H+9O;      {CO(OH)CH(OH)CH(OOH)CH(OH)CO(OOH)                                                                       AGHOO    }
+  GPA500T = 5C+7H+N+11O;   {CO(OH)CH(OH)CH(OOH)CH(OH)CO(OONO2)                                                                     PAHOO    }
+  G1A5076 = 5C+8H+N+9O;    {CO(OH)CH(OH)CH(OOH)CH(ONO2)CH2(O.)                                                                     1.AHN    }
+  GAH503e = 5C+8H+2N+11O;  {CO(OH)CH(OH)CH(OOH)CH(ONO2)CH2(ONO2)                                                                   AHNNO    }
+  G2A505T = 5C+8H+N+10O;   {CO(OH)CH(OH)CH(OOH)CH(ONO2)CH2(OO.)                                                                    2.AHN    }
+  GAH504M = 5C+9H+N+10O;   {CO(OH)CH(OH)CH(OOH)CH(ONO2)CH2(OOH)                                                                    AHHNO    }
+  GAH503h = 5C+7H+N+9O;    {CO(OH)CH(OH)CH(OOH)CH(ONO2)CHO                                                                         AHNDO    }
+  G3A500x = 5C+6H+N+11O;   {CO(OH)CH(OH)CH(OOH)CH(ONO2)CO(OO.)                                                                     3.AHN    }
+  GAG501C = 5C+7H+N+11O;   {CO(OH)CH(OH)CH(OOH)CH(ONO2)CO(OOH)                                                                     AGHNO    }
+  GPA501I = 5C+6H+2N+13O;  {CO(OH)CH(OH)CH(OOH)CH(ONO2)CO(OONO2)                                                                   PAHNO    }
+  G2A505P = 5C+8H+N+10O;   {CO(OH)CH(OH)CH(OOH)CH(OO.)CH2(ONO2)                                                                    2.AHN    }
+  G1A505f = 5C+9H+8O;      {CO(OH)CH(OH)CH(OOH)CH(OOH)CH2(O.)                                                                      1.AHH    }
+  GAH504G = 5C+9H+N+10O;   {CO(OH)CH(OH)CH(OOH)CH(OOH)CH2(ONO2)                                                                    AHHNO    }
+  G2A504K = 5C+9H+9O;      {CO(OH)CH(OH)CH(OOH)CH(OOH)CH2(OO.)                                                                     2.AHH    }
+  GAH504w = 5C+10H+9O;     {CO(OH)CH(OH)CH(OOH)CH(OOH)CH2(OOH)                                                                     AHHHO    }
+  GAH503m = 5C+8H+8O;      {CO(OH)CH(OH)CH(OOH)CH(OOH)CHO                                                                          AHHDO    }
+  GAA500l = 5C+8H+9O;      {CO(OH)CH(OH)CH(OOH)CH(OOH)CO(OH)                                                                       AAHHO    }
+  G3A500z = 5C+7H+10O;     {CO(OH)CH(OH)CH(OOH)CH(OOH)CO(OO.)                                                                      3.AHH    }
+  GAG501E = 5C+8H+10O;     {CO(OH)CH(OH)CH(OOH)CH(OOH)CO(OOH)                                                                      AGHHO    }
+  GPA501J = 5C+7H+N+12O;   {CO(OH)CH(OH)CH(OOH)CH(OOH)CO(OONO2)                                                                    PAHHO    }
+  G1A400r = 4C+7H+6O;      {CO(OH)CH(OH)CH(OOH)CH2(O.)                                                                             1.AHO    }
+  GAH400R = 4C+7H+N+8O;    {CO(OH)CH(OH)CH(OOH)CH2(ONO2)                                                                           AHNO     }
+  G2A400i = 4C+7H+7O;      {CO(OH)CH(OH)CH(OOH)CH2(OO.)                                                                            2.AHO    }
+  GAH400t = 4C+8H+7O;      {CO(OH)CH(OH)CH(OOH)CH2(OOH)                                                                            AHHO     }
+  G1A502Q = 5C+9H+6O;      {CO(OH)CH(OH)CH(OOH)CH2CH2(O.)                                                                          1.AHO    }
+  GAH5018 = 5C+9H+N+8O;    {CO(OH)CH(OH)CH(OOH)CH2CH2(ONO2)                                                                        AHNO     }
+  G2A5022 = 5C+9H+7O;      {CO(OH)CH(OH)CH(OOH)CH2CH2(OO.)                                                                         2.AHO    }
+  GAH501t = 5C+10H+7O;     {CO(OH)CH(OH)CH(OOH)CH2CH2(OOH)                                                                         AHHO     }
+  GAH500y = 5C+8H+6O;      {CO(OH)CH(OH)CH(OOH)CH2CHO                                                                              AHDO     }
+  GAA5009 = 5C+8H+7O;      {CO(OH)CH(OH)CH(OOH)CH2CO(OH)                                                                           AAHO     }
+  G3A500C = 5C+7H+8O;      {CO(OH)CH(OH)CH(OOH)CH2CO(OO.)                                                                          3.AHK    }
+  GAG500E = 5C+8H+8O;      {CO(OH)CH(OH)CH(OOH)CH2CO(OOH)                                                                          AGHO     }
+  GPA500F = 5C+7H+N+10O;   {CO(OH)CH(OH)CH(OOH)CH2CO(OONO2)                                                                        PAHO     }
+  GAH400o = 4C+6H+6O;      {CO(OH)CH(OH)CH(OOH)CHO                                                                                 AHDO     }
+  GAA400C = 4C+6H+7O;      {CO(OH)CH(OH)CH(OOH)CO(OH)                                                                              AAHO     }
+  G3A400I = 4C+5H+8O;      {CO(OH)CH(OH)CH(OOH)CO(OO.)                                                                             3.AHK    }
+  GAG400I = 4C+6H+8O;      {CO(OH)CH(OH)CH(OOH)CO(OOH)                                                                             AGHO     }
+  GPA400N = 4C+5H+N+10O;   {CO(OH)CH(OH)CH(OOH)CO(OONO2)                                                                           PAHO     }
+  G1A507J = 5C+7H+7O;      {CO(OH)CH(OH)CH(OOH)COCH2(O.)                                                                           1.AHK    }
+  GAH503r = 5C+7H+N+9O;    {CO(OH)CH(OH)CH(OOH)COCH2(ONO2)                                                                         AHNKO    }
+  G2A505W = 5C+7H+8O;      {CO(OH)CH(OH)CH(OOH)COCH2(OO.)                                                                          2.AHK    }
+  GAH504N = 5C+8H+8O;      {CO(OH)CH(OH)CH(OOH)COCH2(OOH)                                                                          AHHKO    }
+  GAH504W = 5C+6H+7O;      {CO(OH)CH(OH)CH(OOH)COCHO                                                                               AHDKO    }
+  GAA500o = 5C+6H+8O;      {CO(OH)CH(OH)CH(OOH)COCO(OH)                                                                            AAHKO    }
+  G3A501q = 5C+5H+9O;      {CO(OH)CH(OH)CH(OOH)COCO(OO.)                                                                           3.AHK    }
+  GAG501N = 5C+6H+9O;      {CO(OH)CH(OH)CH(OOH)COCO(OOH)                                                                           AGHKO    }
+  GPA501M = 5C+5H+N+11O;   {CO(OH)CH(OH)CH(OOH)COCO(OONO2)                                                                         PAHKO    }
+  G1A3005 = 3C+5H+4O;      {CO(OH)CH(OH)CH2(O.)                                                                                    1.AO     }
+  GAN3003 = 3C+5H+N+6O;    {CO(OH)CH(OH)CH2(ONO2)                                                                                  ANO      }
+  G2A3005 = 3C+5H+5O;      {CO(OH)CH(OH)CH2(OO.)                                                                                   2.AO     }
+  GAH3004 = 3C+6H+5O;      {CO(OH)CH(OH)CH2(OOH)                                                                                   AHO      }
+  G1A503T = 5C+8H+N+7O;    {CO(OH)CH(OH)CH2CH(O.)CH2(ONO2)                                                                         1.ANO    }
+  G1A501X = 5C+9H+6O;      {CO(OH)CH(OH)CH2CH(O.)CH2(OOH)                                                                          1.AHO    }
+  G1A503g = 5C+7H+5O;      {CO(OH)CH(OH)CH2CH(O.)CHO                                                                               1.ADO    }
+  G1A5043 = 5C+7H+6O;      {CO(OH)CH(OH)CH2CH(O.)CO(OH)                                                                            1.AAO    }
+  G1A5042 = 5C+7H+7O;      {CO(OH)CH(OH)CH2CH(O.)CO(OOH)                                                                           1.AGO    }
+  G1P503R = 5C+6H+N+9O;    {CO(OH)CH(OH)CH2CH(O.)CO(OONO2)                                                                         1.PAO    }
+  G1A501L = 5C+9H+5O;      {CO(OH)CH(OH)CH2CH(OH)CH2(O.)                                                                           1.AOO    }
+  GAN500J = 5C+9H+N+7O;    {CO(OH)CH(OH)CH2CH(OH)CH2(ONO2)                                                                         ANOO     }
+  G2A501C = 5C+9H+6O;      {CO(OH)CH(OH)CH2CH(OH)CH2(OO.)                                                                          2.AOO    }
+  GAH500B = 5C+10H+6O;     {CO(OH)CH(OH)CH2CH(OH)CH2(OOH)                                                                          AHOO     }
+  GAD5003 = 5C+8H+5O;      {CO(OH)CH(OH)CH2CH(OH)CHO                                                                               ADOO     }
+  GAA5002 = 5C+8H+6O;      {CO(OH)CH(OH)CH2CH(OH)CO(OH)                                                                            AAOO     }
+  G3A5003 = 5C+7H+7O;      {CO(OH)CH(OH)CH2CH(OH)CO(OO.)                                                                           3.AKO    }
+  GAG5003 = 5C+8H+7O;      {CO(OH)CH(OH)CH2CH(OH)CO(OOH)                                                                           AGOO     }
+  GPA5003 = 5C+7H+N+9O;    {CO(OH)CH(OH)CH2CH(OH)CO(OONO2)                                                                         PAOO     }
+  G1A503U = 5C+8H+N+7O;    {CO(OH)CH(OH)CH2CH(ONO2)CH2(O.)                                                                         1.ANO    }
+  GAN5019 = 5C+8H+2N+9O;   {CO(OH)CH(OH)CH2CH(ONO2)CH2(ONO2)                                                                       ANNO     }
+  G2A503b = 5C+8H+N+8O;    {CO(OH)CH(OH)CH2CH(ONO2)CH2(OO.)                                                                        2.ANO    }
+  GAH501l = 5C+9H+N+8O;    {CO(OH)CH(OH)CH2CH(ONO2)CH2(OOH)                                                                        AHNO     }
+  GAN501E = 5C+7H+N+7O;    {CO(OH)CH(OH)CH2CH(ONO2)CHO                                                                             ANDO     }
+  GAA500D = 5C+7H+N+8O;    {CO(OH)CH(OH)CH2CH(ONO2)CO(OH)                                                                          AANO     }
+  G3A500I = 5C+6H+N+9O;    {CO(OH)CH(OH)CH2CH(ONO2)CO(OO.)                                                                         3.ANK    }
+  GAG500O = 5C+7H+N+9O;    {CO(OH)CH(OH)CH2CH(ONO2)CO(OOH)                                                                         AGNO     }
+  GPA500K = 5C+6H+2N+11O;  {CO(OH)CH(OH)CH2CH(ONO2)CO(OONO2)                                                                       PANO     }
+  G2A503W = 5C+8H+N+8O;    {CO(OH)CH(OH)CH2CH(OO.)CH2(ONO2)                                                                        2.ANO    }
+  G2A501I = 5C+9H+7O;      {CO(OH)CH(OH)CH2CH(OO.)CH2(OOH)                                                                         2.AHO    }
+  G2A502y = 5C+7H+6O;      {CO(OH)CH(OH)CH2CH(OO.)CHO                                                                              2.ADO    }
+  G2A503D = 5C+7H+7O;      {CO(OH)CH(OH)CH2CH(OO.)CO(OH)                                                                           2.AAO    }
+  G2A503C = 5C+7H+8O;      {CO(OH)CH(OH)CH2CH(OO.)CO(OOH)                                                                          2.AGO    }
+  G2P502p = 5C+6H+N+10O;   {CO(OH)CH(OH)CH2CH(OO.)CO(OONO2)                                                                        2.PAO    }
+  G1A504S = 5C+9H+6O;      {CO(OH)CH(OH)CH2CH(OOH)CH2(O.)                                                                          1.AHO    }
+  GAH501Z = 5C+9H+N+8O;    {CO(OH)CH(OH)CH2CH(OOH)CH2(ONO2)                                                                        AHNO     }
+  G2A503m = 5C+9H+7O;      {CO(OH)CH(OH)CH2CH(OOH)CH2(OO.)                                                                         2.AHO    }
+  GAH501x = 5C+10H+7O;     {CO(OH)CH(OH)CH2CH(OOH)CH2(OOH)                                                                         AHHO     }
+  GAH501K = 5C+8H+6O;      {CO(OH)CH(OH)CH2CH(OOH)CHO                                                                              AHDO     }
+  GAA500E = 5C+8H+7O;      {CO(OH)CH(OH)CH2CH(OOH)CO(OH)                                                                           AAHO     }
+  G3A500J = 5C+7H+8O;      {CO(OH)CH(OH)CH2CH(OOH)CO(OO.)                                                                          3.AHK    }
+  GAG500P = 5C+8H+8O;      {CO(OH)CH(OH)CH2CH(OOH)CO(OOH)                                                                          AGHO     }
+  GPA500L = 5C+7H+N+10O;   {CO(OH)CH(OH)CH2CH(OOH)CO(OONO2)                                                                        PAHO     }
+  G1A400L = 4C+7H+4O;      {CO(OH)CH(OH)CH2CH2(O.)                                                                                 1.AO     }
+  GAN4009 = 4C+7H+N+6O;    {CO(OH)CH(OH)CH2CH2(ONO2)                                                                               ANO      }
+  G2A400J = 4C+7H+5O;      {CO(OH)CH(OH)CH2CH2(OO.)                                                                                2.AO     }
+  GAH400M = 4C+8H+5O;      {CO(OH)CH(OH)CH2CH2(OOH)                                                                                AHO      }
+  G1A500u = 5C+9H+4O;      {CO(OH)CH(OH)CH2CH2CH2(O.)                                                                              1.AO     }
+  GAN500B = 5C+9H+N+6O;    {CO(OH)CH(OH)CH2CH2CH2(ONO2)                                                                            ANO      }
+  G2A501J = 5C+9H+5O;      {CO(OH)CH(OH)CH2CH2CH2(OO.)                                                                             2.AO     }
+  GAH500E = 5C+10H+5O;     {CO(OH)CH(OH)CH2CH2CH2(OOH)                                                                             AHO      }
+  GAD5001 = 5C+8H+4O;      {CO(OH)CH(OH)CH2CH2CHO                                                                                  ADO      }
+  G3A5001 = 5C+7H+6O;      {CO(OH)CH(OH)CH2CH2CO(OO.)                                                                              3.AKO    }
+  GAG5002 = 5C+8H+6O;      {CO(OH)CH(OH)CH2CH2CO(OOH)                                                                              AGO      }
+  GPA5001 = 5C+7H+N+8O;    {CO(OH)CH(OH)CH2CH2CO(OONO2)                                                                            PAO      }
+  GAD4002 = 4C+6H+4O;      {CO(OH)CH(OH)CH2CHO                                                                                     ADO      }
+  G3A4005 = 4C+5H+6O;      {CO(OH)CH(OH)CH2CO(OO.)                                                                                 3.AKO    }
+  GAG4004 = 4C+6H+6O;      {CO(OH)CH(OH)CH2CO(OOH)                                                                                 AGO      }
+  GPA4006 = 4C+5H+N+8O;    {CO(OH)CH(OH)CH2CO(OONO2)                                                                               PAO      }
+  G1A503n = 5C+7H+5O;      {CO(OH)CH(OH)CH2COCH2(O.)                                                                               1.AKO    }
+  GAN501F = 5C+7H+N+7O;    {CO(OH)CH(OH)CH2COCH2(ONO2)                                                                             ANKO     }
+  G2A503Z = 5C+7H+6O;      {CO(OH)CH(OH)CH2COCH2(OO.)                                                                              2.AKO    }
+  GAH501g = 5C+8H+6O;      {CO(OH)CH(OH)CH2COCH2(OOH)                                                                              AHKO     }
+  GAD500E = 5C+6H+5O;      {CO(OH)CH(OH)CH2COCHO                                                                                   ADKO     }
+  GAA500G = 5C+6H+6O;      {CO(OH)CH(OH)CH2COCO(OH)                                                                                AAKO     }
+  G3A5014 = 5C+5H+7O;      {CO(OH)CH(OH)CH2COCO(OO.)                                                                               3.AKK    }
+  GAG500R = 5C+6H+7O;      {CO(OH)CH(OH)CH2COCO(OOH)                                                                               AGKO     }
+  GPA500P = 5C+5H+N+9O;    {CO(OH)CH(OH)CH2COCO(OONO2)                                                                             PAKO     }
+  GAD3001 = 3C+4H+4O;      {CO(OH)CH(OH)CHO                                                                                        ADO      }
+  GAA3002 = 3C+4H+5O;      {CO(OH)CH(OH)CO(OH)                                                                                     AAO      }
+  G3A3002 = 3C+3H+6O;      {CO(OH)CH(OH)CO(OO.)                                                                                    3.AKO    }
+  GAG3002 = 3C+4H+6O;      {CO(OH)CH(OH)CO(OOH)                                                                                    AGO      }
+  GPA3002 = 3C+3H+N+8O;    {CO(OH)CH(OH)CO(OONO2)                                                                                  PAO      }
+  G1A506f = 5C+6H+N+8O;    {CO(OH)CH(OH)COCH(O.)CH2(ONO2)                                                                          1.ANK    }
+  G1A509R = 5C+7H+7O;      {CO(OH)CH(OH)COCH(O.)CH2(OOH)                                                                           1.AHK    }
+  G1A507I = 5C+5H+6O;      {CO(OH)CH(OH)COCH(O.)CHO                                                                                1.ADK    }
+  G1A505X = 5C+5H+7O;      {CO(OH)CH(OH)COCH(O.)CO(OH)                                                                             1.AAK    }
+  G1A505W = 5C+5H+8O;      {CO(OH)CH(OH)COCH(O.)CO(OOH)                                                                            1.AGK    }
+  G1P505p = 5C+4H+N+10O;   {CO(OH)CH(OH)COCH(O.)CO(OONO2)                                                                          1.PAK    }
+  G1A502d = 5C+7H+6O;      {CO(OH)CH(OH)COCH(OH)CH2(O.)                                                                            1.AKO    }
+  GAN501R = 5C+7H+N+8O;    {CO(OH)CH(OH)COCH(OH)CH2(ONO2)                                                                          ANKOO    }
+  G2A502D = 5C+7H+7O;      {CO(OH)CH(OH)COCH(OH)CH2(OO.)                                                                           2.AKO    }
+  GAH501j = 5C+8H+7O;      {CO(OH)CH(OH)COCH(OH)CH2(OOH)                                                                           AHKOO    }
+  GAD500F = 5C+6H+6O;      {CO(OH)CH(OH)COCH(OH)CHO                                                                                ADKOO    }
+  GAA500K = 5C+6H+7O;      {CO(OH)CH(OH)COCH(OH)CO(OH)                                                                             AAKOO    }
+  G3A500T = 5C+5H+8O;      {CO(OH)CH(OH)COCH(OH)CO(OO.)                                                                            3.AKK    }
+  GAG500W = 5C+6H+8O;      {CO(OH)CH(OH)COCH(OH)CO(OOH)                                                                            AGKOO    }
+  GPA500W = 5C+5H+N+10O;   {CO(OH)CH(OH)COCH(OH)CO(OONO2)                                                                          PAKOO    }
+  G1A506g = 5C+6H+N+8O;    {CO(OH)CH(OH)COCH(ONO2)CH2(O.)                                                                          1.ANK    }
+  GAN502X = 5C+6H+2N+10O;  {CO(OH)CH(OH)COCH(ONO2)CH2(ONO2)                                                                        ANNKO    }
+  G2A506w = 5C+6H+N+9O;    {CO(OH)CH(OH)COCH(ONO2)CH2(OO.)                                                                         2.ANK    }
+  GAH505Q = 5C+7H+N+9O;    {CO(OH)CH(OH)COCH(ONO2)CH2(OOH)                                                                         AHNKO    }
+  GAN502t = 5C+5H+N+8O;    {CO(OH)CH(OH)COCH(ONO2)CHO                                                                              ANDKO    }
+  GAA500U = 5C+5H+N+9O;    {CO(OH)CH(OH)COCH(ONO2)CO(OH)                                                                           AANKO    }
+  G3A501T = 5C+4H+N+10O;   {CO(OH)CH(OH)COCH(ONO2)CO(OO.)                                                                          3.ANK    }
+  GAG500h = 5C+5H+N+10O;   {CO(OH)CH(OH)COCH(ONO2)CO(OOH)                                                                          AGNKO    }
+  GPA500q = 5C+4H+2N+12O;  {CO(OH)CH(OH)COCH(ONO2)CO(OONO2)                                                                        PANKO    }
+  G2A505R = 5C+6H+N+9O;    {CO(OH)CH(OH)COCH(OO.)CH2(ONO2)                                                                         2.ANK    }
+  G2A504C = 5C+5H+8O;      {CO(OH)CH(OH)COCH(OO.)CO(OH)                                                                            2.AAK    }
+  G2A504B = 5C+5H+9O;      {CO(OH)CH(OH)COCH(OO.)CO(OOH)                                                                           2.AGK    }
+  G2P504L = 5C+4H+N+11O;   {CO(OH)CH(OH)COCH(OO.)CO(OONO2)                                                                         2.PAK    }
+  G1A507d = 5C+7H+7O;      {CO(OH)CH(OH)COCH(OOH)CH2(O.)                                                                           1.AHK    }
+  GAH504I = 5C+7H+N+9O;    {CO(OH)CH(OH)COCH(OOH)CH2(ONO2)                                                                         AHNKO    }
+  GAH505T = 5C+8H+8O;      {CO(OH)CH(OH)COCH(OOH)CH2(OOH)                                                                          AHHKO    }
+  GAH503q = 5C+6H+7O;      {CO(OH)CH(OH)COCH(OOH)CHO                                                                               AHDKO    }
+  GAA500W = 5C+6H+8O;      {CO(OH)CH(OH)COCH(OOH)CO(OH)                                                                            AAHKO    }
+  G3A5013 = 5C+5H+9O;      {CO(OH)CH(OH)COCH(OOH)CO(OO.)                                                                           3.AHK    }
+  GAG500i = 5C+6H+9O;      {CO(OH)CH(OH)COCH(OOH)CO(OOH)                                                                           AGHKO    }
+  GPA500r = 5C+5H+N+11O;   {CO(OH)CH(OH)COCH(OOH)CO(OONO2)                                                                         PAHKO    }
+  G1A400e = 4C+5H+5O;      {CO(OH)CH(OH)COCH2(O.)                                                                                  1.AKO    }
+  GAN400U = 4C+5H+N+7O;    {CO(OH)CH(OH)COCH2(ONO2)                                                                                ANKO     }
+  G2A400a = 4C+5H+6O;      {CO(OH)CH(OH)COCH2(OO.)                                                                                 2.AKO    }
+  GAH400h = 4C+6H+6O;      {CO(OH)CH(OH)COCH2(OOH)                                                                                 AHKO     }
+  G1A5024 = 5C+7H+5O;      {CO(OH)CH(OH)COCH2CH2(O.)                                                                               1.AKO    }
+  GAN500q = 5C+7H+N+7O;    {CO(OH)CH(OH)COCH2CH2(ONO2)                                                                             ANKO     }
+  G2A501l = 5C+7H+6O;      {CO(OH)CH(OH)COCH2CH2(OO.)                                                                              2.AKO    }
+  GAH501v = 5C+8H+6O;      {CO(OH)CH(OH)COCH2CH2(OOH)                                                                              AHKO     }
+  GAD5005 = 5C+6H+5O;      {CO(OH)CH(OH)COCH2CHO                                                                                   ADKO     }
+  GAA5006 = 5C+6H+6O;      {CO(OH)CH(OH)COCH2CO(OH)                                                                                AAKO     }
+  G3A5007 = 5C+5H+7O;      {CO(OH)CH(OH)COCH2CO(OO.)                                                                               3.AKK    }
+  GAG5009 = 5C+6H+7O;      {CO(OH)CH(OH)COCH2CO(OOH)                                                                               AGKO     }
+  GPA5009 = 5C+5H+N+9O;    {CO(OH)CH(OH)COCH2CO(OONO2)                                                                             PAKO     }
+  GAD4006 = 4C+4H+5O;      {CO(OH)CH(OH)COCHO                                                                                      ADKO     }
+  GAA4005 = 4C+4H+6O;      {CO(OH)CH(OH)COCO(OH)                                                                                   AAKO     }
+  G3A400H = 4C+3H+7O;      {CO(OH)CH(OH)COCO(OO.)                                                                                  3.AKK    }
+  GAG4006 = 4C+4H+7O;      {CO(OH)CH(OH)COCO(OOH)                                                                                  AGKO     }
+  GPA400A = 4C+3H+N+9O;    {CO(OH)CH(OH)COCO(OONO2)                                                                                PAKO     }
+  G1A506m = 5C+5H+6O;      {CO(OH)CH(OH)COCOCH2(O.)                                                                                1.AKK    }
+  GAN502a = 5C+5H+N+8O;    {CO(OH)CH(OH)COCOCH2(ONO2)                                                                              ANKKO    }
+  G2A505a = 5C+5H+7O;      {CO(OH)CH(OH)COCOCH2(OO.)                                                                               2.AKK    }
+  GAH504T = 5C+6H+7O;      {CO(OH)CH(OH)COCOCH2(OOH)                                                                               AHKKO    }
+  GAD500O = 5C+4H+6O;      {CO(OH)CH(OH)COCOCHO                                                                                    ADKKO    }
+  GAA500X = 5C+4H+7O;      {CO(OH)CH(OH)COCOCO(OH)                                                                                 AAKKO    }
+  G3A501U = 5C+3H+8O;      {CO(OH)CH(OH)COCOCO(OO.)                                                                                3.AKK    }
+  GAG500j = 5C+4H+8O;      {CO(OH)CH(OH)COCOCO(OOH)                                                                                AGKKO    }
+  GPA500s = 5C+3H+N+10O;   {CO(OH)CH(OH)COCOCO(OONO2)                                                                              PAKKO    }
+  G1A501J = 5C+7H+2N+10O;  {CO(OH)CH(ONO2)CH(O.)CH(OH)CH2(ONO2)                                                                    1.ANN    }
+  G1A505m = 5C+8H+N+9O;    {CO(OH)CH(ONO2)CH(O.)CH(OH)CH2(OOH)                                                                     1.AHN    }
+  G1A505o = 5C+6H+N+8O;    {CO(OH)CH(ONO2)CH(O.)CH(OH)CHO                                                                          1.AND    }
+  G1A508F = 5C+6H+N+9O;    {CO(OH)CH(ONO2)CH(O.)CH(OH)CO(OH)                                                                       1.AAN    }
+  G1A508h = 5C+6H+N+10O;   {CO(OH)CH(ONO2)CH(O.)CH(OH)CO(OOH)                                                                      1.AGN    }
+  G1P508o = 5C+5H+2N+12O;  {CO(OH)CH(ONO2)CH(O.)CH(OH)CO(OONO2)                                                                    1.PAN    }
+  G1A503F = 5C+6H+3N+12O;  {CO(OH)CH(ONO2)CH(O.)CH(ONO2)CH2(ONO2)                                                                  1.ANN    }
+  G1A507s = 5C+7H+2N+11O;  {CO(OH)CH(ONO2)CH(O.)CH(ONO2)CH2(OOH)                                                                   1.AHN    }
+  G1A507v = 5C+5H+2N+10O;  {CO(OH)CH(ONO2)CH(O.)CH(ONO2)CHO                                                                        1.ANN    }
+  G1A509Y = 5C+5H+2N+11O;  {CO(OH)CH(ONO2)CH(O.)CH(ONO2)CO(OH)                                                                     1.AAN    }
+  G1A509d = 5C+5H+2N+12O;  {CO(OH)CH(ONO2)CH(O.)CH(ONO2)CO(OOH)                                                                    1.AGN    }
+  G1P509Y = 5C+4H+3N+14O;  {CO(OH)CH(ONO2)CH(O.)CH(ONO2)CO(OONO2)                                                                  1.PAN    }
+  G1A5062 = 5C+7H+2N+11O;  {CO(OH)CH(ONO2)CH(O.)CH(OOH)CH2(ONO2)                                                                   1.AHN    }
+  G1A508C = 5C+6H+N+9O;    {CO(OH)CH(ONO2)CH(O.)CH(OOH)CHO                                                                         1.AHN    }
+  G1A509a = 5C+6H+N+10O;   {CO(OH)CH(ONO2)CH(O.)CH(OOH)CO(OH)                                                                      1.AAH    }
+  G1A509i = 5C+6H+N+11O;   {CO(OH)CH(ONO2)CH(O.)CH(OOH)CO(OOH)                                                                     1.AGH    }
+  G1P50Ae = 5C+5H+2N+13O;  {CO(OH)CH(ONO2)CH(O.)CH(OOH)CO(OONO2)                                                                   1.PAH    }
+  G1A400M = 4C+5H+2N+9O;   {CO(OH)CH(ONO2)CH(O.)CH2(ONO2)                                                                          1.ANN    }
+  G1A401C = 4C+6H+N+8O;    {CO(OH)CH(ONO2)CH(O.)CH2(OOH)                                                                           1.AHN    }
+  G1A500q = 5C+7H+2N+9O;   {CO(OH)CH(ONO2)CH(O.)CH2CH2(ONO2)                                                                       1.ANN    }
+  G1A5051 = 5C+8H+N+8O;    {CO(OH)CH(ONO2)CH(O.)CH2CH2(OOH)                                                                        1.AHN    }
+  G1A5053 = 5C+6H+N+7O;    {CO(OH)CH(ONO2)CH(O.)CH2CHO                                                                             1.AND    }
+  G1A505d = 5C+6H+N+8O;    {CO(OH)CH(ONO2)CH(O.)CH2CO(OH)                                                                          1.AAN    }
+  G1A505a = 5C+6H+N+9O;    {CO(OH)CH(ONO2)CH(O.)CH2CO(OOH)                                                                         1.AGN    }
+  G1P506A = 5C+5H+2N+11O;  {CO(OH)CH(ONO2)CH(O.)CH2CO(OONO2)                                                                       1.PAN    }
+  G1A4016 = 4C+4H+N+7O;    {CO(OH)CH(ONO2)CH(O.)CHO                                                                                1.AND    }
+  G1A4014 = 4C+4H+N+8O;    {CO(OH)CH(ONO2)CH(O.)CO(OH)                                                                             1.AAN    }
+  G1A401Q = 4C+4H+N+9O;    {CO(OH)CH(ONO2)CH(O.)CO(OOH)                                                                            1.AGN    }
+  G1P401A = 4C+3H+2N+11O;  {CO(OH)CH(ONO2)CH(O.)CO(OONO2)                                                                          1.PAN    }
+  G1A503I = 5C+5H+2N+10O;  {CO(OH)CH(ONO2)CH(O.)COCH2(ONO2)                                                                        1.ANN    }
+  G1A5083 = 5C+6H+N+9O;    {CO(OH)CH(ONO2)CH(O.)COCH2(OOH)                                                                         1.AHN    }
+  G1A5085 = 5C+4H+N+8O;    {CO(OH)CH(ONO2)CH(O.)COCHO                                                                              1.AND    }
+  G1A508d = 5C+4H+N+9O;    {CO(OH)CH(ONO2)CH(O.)COCO(OH)                                                                           1.AAN    }
+  G1A509q = 5C+4H+N+10O;   {CO(OH)CH(ONO2)CH(O.)COCO(OOH)                                                                          1.AGN    }
+  G1P509a = 5C+3H+2N+12O;  {CO(OH)CH(ONO2)CH(O.)COCO(OONO2)                                                                        1.PAN    }
+  G1A502u = 5C+7H+2N+10O;  {CO(OH)CH(ONO2)CH(OH)CH(O.)CH2(ONO2)                                                                    1.ANN    }
+  G1A508o = 5C+8H+N+9O;    {CO(OH)CH(ONO2)CH(OH)CH(O.)CH2(OOH)                                                                     1.AHN    }
+  G1A5099 = 5C+6H+N+8O;    {CO(OH)CH(ONO2)CH(OH)CH(O.)CHO                                                                          1.AND    }
+  G1A508f = 5C+6H+N+9O;    {CO(OH)CH(ONO2)CH(OH)CH(O.)CO(OH)                                                                       1.AAN    }
+  G1A508a = 5C+6H+N+10O;   {CO(OH)CH(ONO2)CH(OH)CH(O.)CO(OOH)                                                                      1.AGN    }
+  G1P509X = 5C+5H+2N+12O;  {CO(OH)CH(ONO2)CH(OH)CH(O.)CO(OONO2)                                                                    1.PAN    }
+  G1A504D = 5C+8H+N+8O;    {CO(OH)CH(ONO2)CH(OH)CH(OH)CH2(O.)                                                                      1.ANO    }
+  GAN501K = 5C+8H+2N+10O;  {CO(OH)CH(ONO2)CH(OH)CH(OH)CH2(ONO2)                                                                    ANNOO    }
+  G2A5077 = 5C+8H+N+9O;    {CO(OH)CH(ONO2)CH(OH)CH(OH)CH2(OO.)                                                                     2.ANO    }
+  GAH505Y = 5C+9H+N+9O;    {CO(OH)CH(ONO2)CH(OH)CH(OH)CH2(OOH)                                                                     AHNOO    }
+  GAN502g = 5C+7H+N+8O;    {CO(OH)CH(ONO2)CH(OH)CH(OH)CHO                                                                          ANDOO    }
+  G3A501D = 5C+6H+N+10O;   {CO(OH)CH(ONO2)CH(OH)CH(OH)CO(OO.)                                                                      3.ANK    }
+  GAG501J = 5C+7H+N+10O;   {CO(OH)CH(ONO2)CH(OH)CH(OH)CO(OOH)                                                                      AGNOO    }
+  GPA501O = 5C+6H+2N+12O;  {CO(OH)CH(ONO2)CH(OH)CH(OH)CO(OONO2)                                                                    PANOO    }
+  G1A506L = 5C+7H+2N+10O;  {CO(OH)CH(ONO2)CH(OH)CH(ONO2)CH2(O.)                                                                    1.ANN    }
+  GAN502I = 5C+7H+3N+12O;  {CO(OH)CH(ONO2)CH(OH)CH(ONO2)CH2(ONO2)                                                                  ANNNO    }
+  G2A506F = 5C+7H+2N+11O;  {CO(OH)CH(ONO2)CH(OH)CH(ONO2)CH2(OO.)                                                                   2.ANN    }
+  GAH5053 = 5C+8H+2N+11O;  {CO(OH)CH(ONO2)CH(OH)CH(ONO2)CH2(OOH)                                                                   AHNNO    }
+  GAN502q = 5C+6H+2N+10O;  {CO(OH)CH(ONO2)CH(OH)CH(ONO2)CHO                                                                        ANNDO    }
+  GAA5013 = 5C+6H+2N+11O;  {CO(OH)CH(ONO2)CH(OH)CH(ONO2)CO(OH)                                                                     AANNO    }
+  G3A501e = 5C+5H+2N+12O;  {CO(OH)CH(ONO2)CH(OH)CH(ONO2)CO(OO.)                                                                    3.ANN    }
+  GAG501m = 5C+6H+2N+12O;  {CO(OH)CH(ONO2)CH(OH)CH(ONO2)CO(OOH)                                                                    AGNNO    }
+  GPA501q = 5C+5H+3N+14O;  {CO(OH)CH(ONO2)CH(OH)CH(ONO2)CO(OONO2)                                                                  PANNO    }
+  G2A502U = 5C+7H+2N+11O;  {CO(OH)CH(ONO2)CH(OH)CH(OO.)CH2(ONO2)                                                                   2.ANN    }
+  G2A506b = 5C+6H+N+9O;    {CO(OH)CH(ONO2)CH(OH)CH(OO.)CHO                                                                         2.AND    }
+  G2A5065 = 5C+6H+N+10O;   {CO(OH)CH(ONO2)CH(OH)CH(OO.)CO(OH)                                                                      2.AAN    }
+  G2A5063 = 5C+6H+N+11O;   {CO(OH)CH(ONO2)CH(OH)CH(OO.)CO(OOH)                                                                     2.AGN    }
+  G2P506g = 5C+5H+2N+13O;  {CO(OH)CH(ONO2)CH(OH)CH(OO.)CO(OONO2)                                                                   2.PAN    }
+  G1A506N = 5C+8H+N+9O;    {CO(OH)CH(ONO2)CH(OH)CH(OOH)CH2(O.)                                                                     1.AHN    }
+  GAH503L = 5C+8H+2N+11O;  {CO(OH)CH(ONO2)CH(OH)CH(OOH)CH2(ONO2)                                                                   AHNNO    }
+  GAH505F = 5C+7H+N+9O;    {CO(OH)CH(ONO2)CH(OH)CH(OOH)CHO                                                                         AHNDO    }
+  GAA5014 = 5C+7H+N+10O;   {CO(OH)CH(ONO2)CH(OH)CH(OOH)CO(OH)                                                                      AAHNO    }
+  G3A501h = 5C+6H+N+11O;   {CO(OH)CH(ONO2)CH(OH)CH(OOH)CO(OO.)                                                                     3.AHN    }
+  GAG501n = 5C+7H+N+11O;   {CO(OH)CH(ONO2)CH(OH)CH(OOH)CO(OOH)                                                                     AGHNO    }
+  GPA501r = 5C+6H+2N+13O;  {CO(OH)CH(ONO2)CH(OH)CH(OOH)CO(OONO2)                                                                   PAHNO    }
+  G1A400I = 4C+6H+N+7O;    {CO(OH)CH(ONO2)CH(OH)CH2(O.)                                                                            1.ANO    }
+  GAN400B = 4C+6H+2N+9O;   {CO(OH)CH(ONO2)CH(OH)CH2(ONO2)                                                                          ANNO     }
+  G2A400G = 4C+6H+N+8O;    {CO(OH)CH(ONO2)CH(OH)CH2(OO.)                                                                           2.ANO    }
+  GAH400H = 4C+7H+N+8O;    {CO(OH)CH(ONO2)CH(OH)CH2(OOH)                                                                           AHNO     }
+  G1A502t = 5C+8H+N+7O;    {CO(OH)CH(ONO2)CH(OH)CH2CH2(O.)                                                                         1.ANO    }
+  GAN500w = 5C+8H+2N+9O;   {CO(OH)CH(ONO2)CH(OH)CH2CH2(ONO2)                                                                       ANNO     }
+  GAN502K = 5C+7H+N+7O;    {CO(OH)CH(ONO2)CH(OH)CH2CHO                                                                             ANDO     }
+  G3A500m = 5C+6H+N+9O;    {CO(OH)CH(ONO2)CH(OH)CH2CO(OO.)                                                                         3.ANK    }
+  GAG500l = 5C+7H+N+9O;    {CO(OH)CH(ONO2)CH(OH)CH2CO(OOH)                                                                         AGNO     }
+  GPA500x = 5C+6H+2N+11O;  {CO(OH)CH(ONO2)CH(OH)CH2CO(OONO2)                                                                       PANO     }
+  GAN400P = 4C+5H+N+7O;    {CO(OH)CH(ONO2)CH(OH)CHO                                                                                ANDO     }
+  G3A4006 = 4C+4H+N+9O;    {CO(OH)CH(ONO2)CH(OH)CO(OO.)                                                                            3.ANK    }
+  GAG4007 = 4C+5H+N+9O;    {CO(OH)CH(ONO2)CH(OH)CO(OOH)                                                                            AGNO     }
+  GPA4007 = 4C+4H+2N+11O;  {CO(OH)CH(ONO2)CH(OH)CO(OONO2)                                                                          PANO     }
+  G1A506O = 5C+6H+N+8O;    {CO(OH)CH(ONO2)CH(OH)COCH2(O.)                                                                          1.ANK    }
+  GAN502J = 5C+6H+2N+10O;  {CO(OH)CH(ONO2)CH(OH)COCH2(ONO2)                                                                        ANNKO    }
+  G2A505m = 5C+6H+N+9O;    {CO(OH)CH(ONO2)CH(OH)COCH2(OO.)                                                                         2.ANK    }
+  GAH504f = 5C+7H+N+9O;    {CO(OH)CH(ONO2)CH(OH)COCH2(OOH)                                                                         AHNKO    }
+  GAN502s = 5C+5H+N+8O;    {CO(OH)CH(ONO2)CH(OH)COCHO                                                                              ANDKO    }
+  G3A501u = 5C+4H+N+10O;   {CO(OH)CH(ONO2)CH(OH)COCO(OO.)                                                                          3.ANK    }
+  GAG501Y = 5C+5H+N+10O;   {CO(OH)CH(ONO2)CH(OH)COCO(OOH)                                                                          AGNKO    }
+  GPA501c = 5C+4H+2N+12O;  {CO(OH)CH(ONO2)CH(OH)COCO(OONO2)                                                                        PANKO    }
+  G1A502i = 5C+6H+3N+12O;  {CO(OH)CH(ONO2)CH(ONO2)CH(O.)CH2(ONO2)                                                                  1.ANN    }
+  G1A507t = 5C+7H+2N+11O;  {CO(OH)CH(ONO2)CH(ONO2)CH(O.)CH2(OOH)                                                                   1.AHN    }
+  G1A507w = 5C+5H+2N+10O;  {CO(OH)CH(ONO2)CH(ONO2)CH(O.)CHO                                                                        1.ANN    }
+  G1A507p = 5C+5H+2N+11O;  {CO(OH)CH(ONO2)CH(ONO2)CH(O.)CO(OH)                                                                     1.AAN    }
+  G1A509e = 5C+5H+2N+12O;  {CO(OH)CH(ONO2)CH(ONO2)CH(O.)CO(OOH)                                                                    1.AGN    }
+  G1P508O = 5C+4H+3N+14O;  {CO(OH)CH(ONO2)CH(ONO2)CH(O.)CO(OONO2)                                                                  1.PAN    }
+  G1A502b = 5C+7H+2N+10O;  {CO(OH)CH(ONO2)CH(ONO2)CH(OH)CH2(O.)                                                                    1.ANN    }
+  GAN501J = 5C+7H+3N+12O;  {CO(OH)CH(ONO2)CH(ONO2)CH(OH)CH2(ONO2)                                                                  ANNNO    }
+  G2A502B = 5C+7H+2N+11O;  {CO(OH)CH(ONO2)CH(ONO2)CH(OH)CH2(OO.)                                                                   2.ANN    }
+  GAH502l = 5C+8H+2N+11O;  {CO(OH)CH(ONO2)CH(ONO2)CH(OH)CH2(OOH)                                                                   AHNNO    }
+  GAN5028 = 5C+6H+2N+10O;  {CO(OH)CH(ONO2)CH(ONO2)CH(OH)CHO                                                                        ANNDO    }
+  G3A500b = 5C+5H+2N+12O;  {CO(OH)CH(ONO2)CH(ONO2)CH(OH)CO(OO.)                                                                    3.ANN    }
+  GAG500p = 5C+6H+2N+12O;  {CO(OH)CH(ONO2)CH(ONO2)CH(OH)CO(OOH)                                                                    AGNNO    }
+  GPA500g = 5C+5H+3N+14O;  {CO(OH)CH(ONO2)CH(ONO2)CH(OH)CO(OONO2)                                                                  PANNO    }
+  G1A504q = 5C+6H+3N+12O;  {CO(OH)CH(ONO2)CH(ONO2)CH(ONO2)CH2(O.)                                                                  1.ANN    }
+  GAN502B = 5C+6H+4N+14O;  {CO(OH)CH(ONO2)CH(ONO2)CH(ONO2)CH2(ONO2)                                                                ANNNN    }
+  G2A503u = 5C+6H+3N+13O;  {CO(OH)CH(ONO2)CH(ONO2)CH(ONO2)CH2(OO.)                                                                 2.ANN    }
+  GAH504i = 5C+7H+3N+13O;  {CO(OH)CH(ONO2)CH(ONO2)CH(ONO2)CH2(OOH)                                                                 AHNNN    }
+  GAN502j = 5C+5H+3N+12O;  {CO(OH)CH(ONO2)CH(ONO2)CH(ONO2)CHO                                                                      ANNND    }
+  GAA500q = 5C+5H+3N+13O;  {CO(OH)CH(ONO2)CH(ONO2)CH(ONO2)CO(OH)                                                                   AANNN    }
+  G3A501I = 5C+4H+3N+14O;  {CO(OH)CH(ONO2)CH(ONO2)CH(ONO2)CO(OO.)                                                                  3.ANN    }
+  GAG501T = 5C+5H+3N+14O;  {CO(OH)CH(ONO2)CH(ONO2)CH(ONO2)CO(OOH)                                                                  AGNNN    }
+  GPA501T = 5C+4H+4N+16O;  {CO(OH)CH(ONO2)CH(ONO2)CH(ONO2)CO(OONO2)                                                                PANNN    }
+  G2A502L = 5C+6H+3N+13O;  {CO(OH)CH(ONO2)CH(ONO2)CH(OO.)CH2(ONO2)                                                                 2.ANN    }
+  G2A505r = 5C+5H+2N+11O;  {CO(OH)CH(ONO2)CH(ONO2)CH(OO.)CHO                                                                       2.ANN    }
+  G2A505o = 5C+5H+2N+12O;  {CO(OH)CH(ONO2)CH(ONO2)CH(OO.)CO(OH)                                                                    2.AAN    }
+  G2A507C = 5C+5H+2N+13O;  {CO(OH)CH(ONO2)CH(ONO2)CH(OO.)CO(OOH)                                                                   2.AGN    }
+  G2P506C = 5C+4H+3N+15O;  {CO(OH)CH(ONO2)CH(ONO2)CH(OO.)CO(OONO2)                                                                 2.PAN    }
+  G1A5063 = 5C+7H+2N+11O;  {CO(OH)CH(ONO2)CH(ONO2)CH(OOH)CH2(O.)                                                                   1.AHN    }
+  GAH5031 = 5C+7H+3N+13O;  {CO(OH)CH(ONO2)CH(ONO2)CH(OOH)CH2(ONO2)                                                                 AHNNN    }
+  GAH504o = 5C+6H+2N+11O;  {CO(OH)CH(ONO2)CH(ONO2)CH(OOH)CHO                                                                       AHNND    }
+  GAA500r = 5C+6H+2N+12O;  {CO(OH)CH(ONO2)CH(ONO2)CH(OOH)CO(OH)                                                                    AAHNN    }
+  G3A501K = 5C+5H+2N+13O;  {CO(OH)CH(ONO2)CH(ONO2)CH(OOH)CO(OO.)                                                                   3.AHN    }
+  GAG501W = 5C+6H+2N+13O;  {CO(OH)CH(ONO2)CH(ONO2)CH(OOH)CO(OOH)                                                                   AGHNN    }
+  GPA501U = 5C+5H+3N+15O;  {CO(OH)CH(ONO2)CH(ONO2)CH(OOH)CO(OONO2)                                                                 PAHNN    }
+  G1A400f = 4C+5H+2N+9O;   {CO(OH)CH(ONO2)CH(ONO2)CH2(O.)                                                                          1.ANN    }
+  GAN400Q = 4C+5H+3N+11O;  {CO(OH)CH(ONO2)CH(ONO2)CH2(ONO2)                                                                        ANNN     }
+  G2A400b = 4C+5H+2N+10O;  {CO(OH)CH(ONO2)CH(ONO2)CH2(OO.)                                                                         2.ANN    }
+  GAH400i = 4C+6H+2N+10O;  {CO(OH)CH(ONO2)CH(ONO2)CH2(OOH)                                                                         AHNN     }
+  G1A501m = 5C+7H+2N+9O;   {CO(OH)CH(ONO2)CH(ONO2)CH2CH2(O.)                                                                       1.ANN    }
+  GAN500s = 5C+7H+3N+11O;  {CO(OH)CH(ONO2)CH(ONO2)CH2CH2(ONO2)                                                                     ANNN     }
+  G2A501W = 5C+7H+2N+10O;  {CO(OH)CH(ONO2)CH(ONO2)CH2CH2(OO.)                                                                      2.ANN    }
+  GAH502B = 5C+8H+2N+10O;  {CO(OH)CH(ONO2)CH(ONO2)CH2CH2(OOH)                                                                      AHNN     }
+  GAN501i = 5C+6H+2N+9O;   {CO(OH)CH(ONO2)CH(ONO2)CH2CHO                                                                           ANND     }
+  G3A500U = 5C+5H+2N+11O;  {CO(OH)CH(ONO2)CH(ONO2)CH2CO(OO.)                                                                       3.ANN    }
+  GAG500X = 5C+6H+2N+11O;  {CO(OH)CH(ONO2)CH(ONO2)CH2CO(OOH)                                                                       AGNN     }
+  GPA500X = 5C+5H+3N+13O;  {CO(OH)CH(ONO2)CH(ONO2)CH2CO(OONO2)                                                                     PANN     }
+  GAN400Y = 4C+4H+2N+9O;   {CO(OH)CH(ONO2)CH(ONO2)CHO                                                                              ANND     }
+  GAA4007 = 4C+4H+2N+10O;  {CO(OH)CH(ONO2)CH(ONO2)CO(OH)                                                                           AANN     }
+  G3A400A = 4C+3H+2N+11O;  {CO(OH)CH(ONO2)CH(ONO2)CO(OO.)                                                                          3.ANN    }
+  GAG400C = 4C+4H+2N+11O;  {CO(OH)CH(ONO2)CH(ONO2)CO(OOH)                                                                          AGNN     }
+  GPA400D = 4C+3H+3N+13O;  {CO(OH)CH(ONO2)CH(ONO2)CO(OONO2)                                                                        PANN     }
+  G1A504v = 5C+5H+2N+10O;  {CO(OH)CH(ONO2)CH(ONO2)COCH2(O.)                                                                        1.ANN    }
+  GAN502C = 5C+5H+3N+12O;  {CO(OH)CH(ONO2)CH(ONO2)COCH2(ONO2)                                                                      ANNNK    }
+  G2A503w = 5C+5H+2N+11O;  {CO(OH)CH(ONO2)CH(ONO2)COCH2(OO.)                                                                       2.ANN    }
+  GAH504k = 5C+6H+2N+11O;  {CO(OH)CH(ONO2)CH(ONO2)COCH2(OOH)                                                                       AHNNK    }
+  GAN502l = 5C+4H+2N+10O;  {CO(OH)CH(ONO2)CH(ONO2)COCHO                                                                            ANNDK    }
+  G3A501r = 5C+3H+2N+12O;  {CO(OH)CH(ONO2)CH(ONO2)COCO(OO.)                                                                        3.ANN    }
+  GAG501o = 5C+4H+2N+12O;  {CO(OH)CH(ONO2)CH(ONO2)COCO(OOH)                                                                        AGNNK    }
+  GPA501W = 5C+3H+3N+14O;  {CO(OH)CH(ONO2)CH(ONO2)COCO(OONO2)                                                                      PANNK    }
+  G2A5019 = 5C+7H+2N+11O;  {CO(OH)CH(ONO2)CH(OO.)CH(OH)CH2(ONO2)                                                                   2.ANN    }
+  G2A506A = 5C+8H+N+10O;   {CO(OH)CH(ONO2)CH(OO.)CH(OH)CH2(OOH)                                                                    2.AHN    }
+  G2A505b = 5C+6H+N+9O;    {CO(OH)CH(ONO2)CH(OO.)CH(OH)CHO                                                                         2.AND    }
+  G2A506g = 5C+6H+N+10O;   {CO(OH)CH(ONO2)CH(OO.)CH(OH)CO(OH)                                                                      2.AAN    }
+  G2A506q = 5C+6H+N+11O;   {CO(OH)CH(ONO2)CH(OO.)CH(OH)CO(OOH)                                                                     2.AGN    }
+  G2P507T = 5C+5H+2N+13O;  {CO(OH)CH(ONO2)CH(OO.)CH(OH)CO(OONO2)                                                                   2.PAN    }
+  G2A502h = 5C+6H+3N+13O;  {CO(OH)CH(ONO2)CH(OO.)CH(ONO2)CH2(ONO2)                                                                 2.ANN    }
+  G2A5068 = 5C+7H+2N+12O;  {CO(OH)CH(ONO2)CH(OO.)CH(ONO2)CH2(OOH)                                                                  2.AHN    }
+  G2A506O = 5C+5H+2N+11O;  {CO(OH)CH(ONO2)CH(OO.)CH(ONO2)CHO                                                                       2.ANN    }
+  G2A507R = 5C+5H+2N+12O;  {CO(OH)CH(ONO2)CH(OO.)CH(ONO2)CO(OH)                                                                    2.AAN    }
+  G2A507G = 5C+5H+2N+13O;  {CO(OH)CH(ONO2)CH(OO.)CH(ONO2)CO(OOH)                                                                   2.AGN    }
+  G2P506h = 5C+4H+3N+15O;  {CO(OH)CH(ONO2)CH(OO.)CH(ONO2)CO(OONO2)                                                                 2.PAN    }
+  G2A507S = 5C+6H+N+11O;   {CO(OH)CH(ONO2)CH(OO.)CH(OOH)CO(OH)                                                                     2.AAH    }
+  G2A507H = 5C+6H+N+12O;   {CO(OH)CH(ONO2)CH(OO.)CH(OOH)CO(OOH)                                                                    2.AGH    }
+  G2P5082 = 5C+5H+2N+14O;  {CO(OH)CH(ONO2)CH(OO.)CH(OOH)CO(OONO2)                                                                  2.PAH    }
+  G2A400K = 4C+5H+2N+10O;  {CO(OH)CH(ONO2)CH(OO.)CH2(ONO2)                                                                         2.ANN    }
+  G2A401J = 4C+6H+N+9O;    {CO(OH)CH(ONO2)CH(OO.)CH2(OOH)                                                                          2.AHN    }
+  G2A500n = 5C+7H+2N+10O;  {CO(OH)CH(ONO2)CH(OO.)CH2CH2(ONO2)                                                                      2.ANN    }
+  G2A504f = 5C+6H+N+8O;    {CO(OH)CH(ONO2)CH(OO.)CH2CHO                                                                            2.AND    }
+  G2A504I = 5C+6H+N+9O;    {CO(OH)CH(ONO2)CH(OO.)CH2CO(OH)                                                                         2.AAN    }
+  G2A504F = 5C+6H+N+10O;   {CO(OH)CH(ONO2)CH(OO.)CH2CO(OOH)                                                                        2.AGN    }
+  G2P504X = 5C+5H+2N+12O;  {CO(OH)CH(ONO2)CH(OO.)CH2CO(OONO2)                                                                      2.PAN    }
+  G2A401B = 4C+4H+N+8O;    {CO(OH)CH(ONO2)CH(OO.)CHO                                                                               2.AND    }
+  G2A400x = 4C+4H+N+9O;    {CO(OH)CH(ONO2)CH(OO.)CO(OH)                                                                            2.AAN    }
+  G2A401K = 4C+4H+N+10O;   {CO(OH)CH(ONO2)CH(OO.)CO(OOH)                                                                           2.AGN    }
+  G2P4012 = 4C+3H+2N+12O;  {CO(OH)CH(ONO2)CH(OO.)CO(OONO2)                                                                         2.PAN    }
+  G2A502i = 5C+5H+2N+11O;  {CO(OH)CH(ONO2)CH(OO.)COCH2(ONO2)                                                                       2.ANN    }
+  G2A507A = 5C+6H+N+10O;   {CO(OH)CH(ONO2)CH(OO.)COCH2(OOH)                                                                        2.AHN    }
+  G2A506P = 5C+4H+N+9O;    {CO(OH)CH(ONO2)CH(OO.)COCHO                                                                             2.AND    }
+  G2A5064 = 5C+4H+N+10O;   {CO(OH)CH(ONO2)CH(OO.)COCO(OH)                                                                          2.AAN    }
+  G2A507I = 5C+4H+N+11O;   {CO(OH)CH(ONO2)CH(OO.)COCO(OOH)                                                                         2.AGN    }
+  G2P506i = 5C+3H+2N+13O;  {CO(OH)CH(ONO2)CH(OO.)COCO(OONO2)                                                                       2.PAN    }
+  G1A506s = 5C+7H+2N+11O;  {CO(OH)CH(ONO2)CH(OOH)CH(O.)CH2(ONO2)                                                                   1.AHN    }
+  G1A508l = 5C+8H+N+10O;   {CO(OH)CH(ONO2)CH(OOH)CH(O.)CH2(OOH)                                                                    1.AHH    }
+  G1A5091 = 5C+6H+N+9O;    {CO(OH)CH(ONO2)CH(OOH)CH(O.)CHO                                                                         1.AHN    }
+  G1A50A2 = 5C+6H+N+10O;   {CO(OH)CH(ONO2)CH(OOH)CH(O.)CO(OH)                                                                      1.AAH    }
+  G1A508Y = 5C+6H+N+11O;   {CO(OH)CH(ONO2)CH(OOH)CH(O.)CO(OOH)                                                                     1.AGH    }
+  G1P509W = 5C+5H+2N+13O;  {CO(OH)CH(ONO2)CH(OOH)CH(O.)CO(OONO2)                                                                   1.PAH    }
+  G1A504B = 5C+8H+N+9O;    {CO(OH)CH(ONO2)CH(OOH)CH(OH)CH2(O.)                                                                     1.AHN    }
+  GAH501P = 5C+8H+2N+11O;  {CO(OH)CH(ONO2)CH(OOH)CH(OH)CH2(ONO2)                                                                   AHNNO    }
+  G2A506B = 5C+8H+N+10O;   {CO(OH)CH(ONO2)CH(OOH)CH(OH)CH2(OO.)                                                                    2.AHN    }
+  GAH5051 = 5C+9H+N+10O;   {CO(OH)CH(ONO2)CH(OOH)CH(OH)CH2(OOH)                                                                    AHHNO    }
+  GAH504U = 5C+7H+N+9O;    {CO(OH)CH(ONO2)CH(OOH)CH(OH)CHO                                                                         AHNDO    }
+  GAA500j = 5C+7H+N+10O;   {CO(OH)CH(ONO2)CH(OOH)CH(OH)CO(OH)                                                                      AAHNO    }
+  G3A501C = 5C+6H+N+11O;   {CO(OH)CH(ONO2)CH(OOH)CH(OH)CO(OO.)                                                                     3.AHN    }
+  GAG501I = 5C+7H+N+11O;   {CO(OH)CH(ONO2)CH(OOH)CH(OH)CO(OOH)                                                                     AGHNO    }
+  GPA501N = 5C+6H+2N+13O;  {CO(OH)CH(ONO2)CH(OOH)CH(OH)CO(OONO2)                                                                   PAHNO    }
+  G1A506t = 5C+7H+2N+11O;  {CO(OH)CH(ONO2)CH(OOH)CH(ONO2)CH2(O.)                                                                   1.AHN    }
+  GAH503Y = 5C+7H+3N+13O;  {CO(OH)CH(ONO2)CH(OOH)CH(ONO2)CH2(ONO2)                                                                 AHNNN    }
+  G2A5069 = 5C+7H+2N+12O;  {CO(OH)CH(ONO2)CH(OOH)CH(ONO2)CH2(OO.)                                                                  2.AHN    }
+  GAH504z = 5C+8H+2N+12O;  {CO(OH)CH(ONO2)CH(OOH)CH(ONO2)CH2(OOH)                                                                  AHHNN    }
+  GAH5058 = 5C+6H+2N+11O;  {CO(OH)CH(ONO2)CH(OOH)CH(ONO2)CHO                                                                       AHNND    }
+  GAA5016 = 5C+6H+2N+12O;  {CO(OH)CH(ONO2)CH(OOH)CH(ONO2)CO(OH)                                                                    AAHNN    }
+  G3A501a = 5C+5H+2N+13O;  {CO(OH)CH(ONO2)CH(OOH)CH(ONO2)CO(OO.)                                                                   3.AHN    }
+  GAG501j = 5C+6H+2N+13O;  {CO(OH)CH(ONO2)CH(OOH)CH(ONO2)CO(OOH)                                                                   AGHNN    }
+  GPA501n = 5C+5H+3N+15O;  {CO(OH)CH(ONO2)CH(OOH)CH(ONO2)CO(OONO2)                                                                 PAHNN    }
+  G2A507T = 5C+6H+N+11O;   {CO(OH)CH(ONO2)CH(OOH)CH(OO.)CO(OH)                                                                     2.AAH    }
+  G2A5062 = 5C+6H+N+12O;   {CO(OH)CH(ONO2)CH(OOH)CH(OO.)CO(OOH)                                                                    2.AGH    }
+  G2P506f = 5C+5H+2N+14O;  {CO(OH)CH(ONO2)CH(OOH)CH(OO.)CO(OONO2)                                                                  2.PAH    }
+  GAH5059 = 5C+7H+N+10O;   {CO(OH)CH(ONO2)CH(OOH)CH(OOH)CHO                                                                        AHHND    }
+  GAA5017 = 5C+7H+N+11O;   {CO(OH)CH(ONO2)CH(OOH)CH(OOH)CO(OH)                                                                     AAHHN    }
+  G3A501b = 5C+6H+N+12O;   {CO(OH)CH(ONO2)CH(OOH)CH(OOH)CO(OO.)                                                                    3.AHH    }
+  GAG501k = 5C+7H+N+12O;   {CO(OH)CH(ONO2)CH(OOH)CH(OOH)CO(OOH)                                                                    AGHHN    }
+  GPA501o = 5C+6H+2N+14O;  {CO(OH)CH(ONO2)CH(OOH)CH(OOH)CO(OONO2)                                                                  PAHHN    }
+  G1A400x = 4C+6H+N+8O;    {CO(OH)CH(ONO2)CH(OOH)CH2(O.)                                                                           1.AHN    }
+  GAH400N = 4C+6H+2N+10O;  {CO(OH)CH(ONO2)CH(OOH)CH2(ONO2)                                                                         AHNN     }
+  G2A401A = 4C+6H+N+9O;    {CO(OH)CH(ONO2)CH(OOH)CH2(OO.)                                                                          2.AHN    }
+  GAH400y = 4C+7H+N+9O;    {CO(OH)CH(ONO2)CH(OOH)CH2(OOH)                                                                          AHHN     }
+  G1A503D = 5C+8H+N+8O;    {CO(OH)CH(ONO2)CH(OOH)CH2CH2(O.)                                                                        1.AHN    }
+  GAH5015 = 5C+8H+2N+10O;  {CO(OH)CH(ONO2)CH(OOH)CH2CH2(ONO2)                                                                      AHNN     }
+  GAH503A = 5C+7H+N+8O;    {CO(OH)CH(ONO2)CH(OOH)CH2CHO                                                                            AHND     }
+  GAA500b = 5C+7H+N+9O;    {CO(OH)CH(ONO2)CH(OOH)CH2CO(OH)                                                                         AAHN     }
+  G3A500i = 5C+6H+N+10O;   {CO(OH)CH(ONO2)CH(OOH)CH2CO(OO.)                                                                        3.AHN    }
+  GAG500k = 5C+7H+N+10O;   {CO(OH)CH(ONO2)CH(OOH)CH2CO(OOH)                                                                        AGHN     }
+  GPA500w = 5C+6H+2N+12O;  {CO(OH)CH(ONO2)CH(OOH)CH2CO(OONO2)                                                                      PAHN     }
+  GAH400r = 4C+5H+N+8O;    {CO(OH)CH(ONO2)CH(OOH)CHO                                                                               AHND     }
+  GAA4009 = 4C+5H+N+9O;    {CO(OH)CH(ONO2)CH(OOH)CO(OH)                                                                            AAHN     }
+  G3A400J = 4C+4H+N+10O;   {CO(OH)CH(ONO2)CH(OOH)CO(OO.)                                                                           3.AHN    }
+  GAG400N = 4C+5H+N+10O;   {CO(OH)CH(ONO2)CH(OOH)CO(OOH)                                                                           AGHN     }
+  GPA400H = 4C+4H+2N+12O;  {CO(OH)CH(ONO2)CH(OOH)CO(OONO2)                                                                         PAHN     }
+  G1A506w = 5C+6H+N+9O;    {CO(OH)CH(ONO2)CH(OOH)COCH2(O.)                                                                         1.AHN    }
+  GAH503a = 5C+6H+2N+11O;  {CO(OH)CH(ONO2)CH(OOH)COCH2(ONO2)                                                                       AHNNK    }
+  G2A507B = 5C+6H+N+10O;   {CO(OH)CH(ONO2)CH(OOH)COCH2(OO.)                                                                        2.AHN    }
+  GAH505c = 5C+7H+N+10O;   {CO(OH)CH(ONO2)CH(OOH)COCH2(OOH)                                                                        AHHNK    }
+  GAH505A = 5C+5H+N+9O;    {CO(OH)CH(ONO2)CH(OOH)COCHO                                                                             AHNDK    }
+  GAA5011 = 5C+5H+N+10O;   {CO(OH)CH(ONO2)CH(OOH)COCO(OH)                                                                          AAHNK    }
+  G3A5021 = 5C+4H+N+11O;   {CO(OH)CH(ONO2)CH(OOH)COCO(OO.)                                                                         3.AHN    }
+  GAG501l = 5C+5H+N+11O;   {CO(OH)CH(ONO2)CH(OOH)COCO(OOH)                                                                         AGHNK    }
+  GPA501p = 5C+4H+2N+13O;  {CO(OH)CH(ONO2)CH(OOH)COCO(OONO2)                                                                       PAHNK    }
+  G1A3004 = 3C+4H+N+6O;    {CO(OH)CH(ONO2)CH2(O.)                                                                                  1.AN     }
+  GAN3004 = 3C+4H+2N+8O;   {CO(OH)CH(ONO2)CH2(ONO2)                                                                                ANN      }
+  G2A3004 = 3C+4H+N+7O;    {CO(OH)CH(ONO2)CH2(OO.)                                                                                 2.AN     }
+  GAH3005 = 3C+5H+N+7O;    {CO(OH)CH(ONO2)CH2(OOH)                                                                                 AHN      }
+  G1A500r = 5C+7H+2N+9O;   {CO(OH)CH(ONO2)CH2CH(O.)CH2(ONO2)                                                                       1.ANN    }
+  G1A502L = 5C+8H+N+8O;    {CO(OH)CH(ONO2)CH2CH(O.)CH2(OOH)                                                                        1.AHN    }
+  G1A506u = 5C+6H+N+7O;    {CO(OH)CH(ONO2)CH2CH(O.)CHO                                                                             1.AND    }
+  G1A505c = 5C+6H+N+8O;    {CO(OH)CH(ONO2)CH2CH(O.)CO(OH)                                                                          1.AAN    }
+  G1A505b = 5C+6H+N+9O;    {CO(OH)CH(ONO2)CH2CH(O.)CO(OOH)                                                                         1.AGN    }
+  G1P506B = 5C+5H+2N+11O;  {CO(OH)CH(ONO2)CH2CH(O.)CO(OONO2)                                                                       1.PAN    }
+  G1A501I = 5C+8H+N+7O;    {CO(OH)CH(ONO2)CH2CH(OH)CH2(O.)                                                                         1.ANO    }
+  GAN500G = 5C+8H+2N+9O;   {CO(OH)CH(ONO2)CH2CH(OH)CH2(ONO2)                                                                       ANNO     }
+  G2A502A = 5C+8H+N+8O;    {CO(OH)CH(ONO2)CH2CH(OH)CH2(OO.)                                                                        2.ANO    }
+  GAH500j = 5C+9H+N+8O;    {CO(OH)CH(ONO2)CH2CH(OH)CH2(OOH)                                                                        AHNO     }
+  GAN501P = 5C+7H+N+7O;    {CO(OH)CH(ONO2)CH2CH(OH)CHO                                                                             ANDO     }
+  G3A500N = 5C+6H+N+9O;    {CO(OH)CH(ONO2)CH2CH(OH)CO(OO.)                                                                         3.ANK    }
+  GAG500K = 5C+7H+N+9O;    {CO(OH)CH(ONO2)CH2CH(OH)CO(OOH)                                                                         AGNO     }
+  GPA500Q = 5C+6H+2N+11O;  {CO(OH)CH(ONO2)CH2CH(OH)CO(OONO2)                                                                       PANO     }
+  G1A503E = 5C+7H+2N+9O;   {CO(OH)CH(ONO2)CH2CH(ONO2)CH2(O.)                                                                       1.ANN    }
+  GAN5015 = 5C+7H+3N+11O;  {CO(OH)CH(ONO2)CH2CH(ONO2)CH2(ONO2)                                                                     ANNN     }
+  G2A504D = 5C+7H+2N+10O;  {CO(OH)CH(ONO2)CH2CH(ONO2)CH2(OO.)                                                                      2.ANN    }
+  GAH502d = 5C+8H+2N+10O;  {CO(OH)CH(ONO2)CH2CH(ONO2)CH2(OOH)                                                                      AHNN     }
+  GAN502b = 5C+6H+2N+9O;   {CO(OH)CH(ONO2)CH2CH(ONO2)CHO                                                                           ANND     }
+  GAA500Y = 5C+6H+2N+10O;  {CO(OH)CH(ONO2)CH2CH(ONO2)CO(OH)                                                                        AANN     }
+  G3A500t = 5C+5H+2N+11O;  {CO(OH)CH(ONO2)CH2CH(ONO2)CO(OO.)                                                                       3.ANN    }
+  GAG500m = 5C+6H+2N+11O;  {CO(OH)CH(ONO2)CH2CH(ONO2)CO(OOH)                                                                       AGNN     }
+  GPA500y = 5C+5H+3N+13O;  {CO(OH)CH(ONO2)CH2CH(ONO2)CO(OONO2)                                                                     PANN     }
+  G2A500o = 5C+7H+2N+10O;  {CO(OH)CH(ONO2)CH2CH(OO.)CH2(ONO2)                                                                      2.ANN    }
+  G2A501z = 5C+8H+N+9O;    {CO(OH)CH(ONO2)CH2CH(OO.)CH2(OOH)                                                                       2.AHN    }
+  G2A504u = 5C+6H+N+8O;    {CO(OH)CH(ONO2)CH2CH(OO.)CHO                                                                            2.AND    }
+  G2A504H = 5C+6H+N+9O;    {CO(OH)CH(ONO2)CH2CH(OO.)CO(OH)                                                                         2.AAN    }
+  G2A504G = 5C+6H+N+10O;   {CO(OH)CH(ONO2)CH2CH(OO.)CO(OOH)                                                                        2.AGN    }
+  G2P504Y = 5C+5H+2N+12O;  {CO(OH)CH(ONO2)CH2CH(OO.)CO(OONO2)                                                                      2.PAN    }
+  G1A503H = 5C+8H+N+8O;    {CO(OH)CH(ONO2)CH2CH(OOH)CH2(O.)                                                                        1.AHN    }
+  GAH5016 = 5C+8H+2N+10O;  {CO(OH)CH(ONO2)CH2CH(OOH)CH2(ONO2)                                                                      AHNN     }
+  G2A504E = 5C+8H+N+9O;    {CO(OH)CH(ONO2)CH2CH(OOH)CH2(OO.)                                                                       2.AHN    }
+  GAH502e = 5C+9H+N+9O;    {CO(OH)CH(ONO2)CH2CH(OOH)CH2(OOH)                                                                       AHHN     }
+  GAH503Z = 5C+7H+N+8O;    {CO(OH)CH(ONO2)CH2CH(OOH)CHO                                                                            AHND     }
+  GAA500Z = 5C+7H+N+9O;    {CO(OH)CH(ONO2)CH2CH(OOH)CO(OH)                                                                         AAHN     }
+  G3A500u = 5C+6H+N+10O;   {CO(OH)CH(ONO2)CH2CH(OOH)CO(OO.)                                                                        3.AHN    }
+  GAG500n = 5C+7H+N+10O;   {CO(OH)CH(ONO2)CH2CH(OOH)CO(OOH)                                                                        AGHN     }
+  GPA500z = 5C+6H+2N+12O;  {CO(OH)CH(ONO2)CH2CH(OOH)CO(OONO2)                                                                      PAHN     }
+  G1A400F = 4C+6H+N+6O;    {CO(OH)CH(ONO2)CH2CH2(O.)                                                                               1.AN     }
+  GAN4006 = 4C+6H+2N+8O;   {CO(OH)CH(ONO2)CH2CH2(ONO2)                                                                             ANN      }
+  G2A400D = 4C+6H+N+7O;    {CO(OH)CH(ONO2)CH2CH2(OO.)                                                                              2.AN     }
+  GAH400E = 4C+7H+N+7O;    {CO(OH)CH(ONO2)CH2CH2(OOH)                                                                              AHN      }
+  G1A500T = 5C+8H+N+6O;    {CO(OH)CH(ONO2)CH2CH2CH2(O.)                                                                            1.AN     }
+  GAN500A = 5C+8H+2N+8O;   {CO(OH)CH(ONO2)CH2CH2CH2(ONO2)                                                                          ANN      }
+  G2A500S = 5C+8H+N+7O;    {CO(OH)CH(ONO2)CH2CH2CH2(OO.)                                                                           2.AN     }
+  GAH500a = 5C+9H+N+7O;    {CO(OH)CH(ONO2)CH2CH2CH2(OOH)                                                                           AHN      }
+  GAN500k = 5C+7H+N+6O;    {CO(OH)CH(ONO2)CH2CH2CHO                                                                                AND      }
+  G3A5008 = 5C+6H+N+8O;    {CO(OH)CH(ONO2)CH2CH2CO(OO.)                                                                            3.ANK    }
+  GAG500A = 5C+7H+N+8O;    {CO(OH)CH(ONO2)CH2CH2CO(OOH)                                                                            AGN      }
+  GPA500B = 5C+6H+2N+10O;  {CO(OH)CH(ONO2)CH2CH2CO(OONO2)                                                                          PAN      }
+  GAN400N = 4C+5H+N+6O;    {CO(OH)CH(ONO2)CH2CHO                                                                                   AND      }
+  G3A4002 = 4C+4H+N+8O;    {CO(OH)CH(ONO2)CH2CO(OO.)                                                                               3.ANK    }
+  GAG4002 = 4C+5H+N+8O;    {CO(OH)CH(ONO2)CH2CO(OOH)                                                                               AGN      }
+  GPA4002 = 4C+4H+2N+10O;  {CO(OH)CH(ONO2)CH2CO(OONO2)                                                                             PAN      }
+  G1A502F = 5C+6H+N+7O;    {CO(OH)CH(ONO2)CH2COCH2(O.)                                                                             1.ANK    }
+  GAN5016 = 5C+6H+2N+9O;   {CO(OH)CH(ONO2)CH2COCH2(ONO2)                                                                           ANNK     }
+  G2A501u = 5C+6H+N+8O;    {CO(OH)CH(ONO2)CH2COCH2(OO.)                                                                            2.ANK    }
+  GAH5023 = 5C+7H+N+8O;    {CO(OH)CH(ONO2)CH2COCH2(OOH)                                                                            AHNK     }
+  GAN5024 = 5C+5H+N+7O;    {CO(OH)CH(ONO2)CH2COCHO                                                                                 ANDK     }
+  G3A501W = 5C+4H+N+9O;    {CO(OH)CH(ONO2)CH2COCO(OO.)                                                                             3.ANK    }
+  GAG500o = 5C+5H+N+9O;    {CO(OH)CH(ONO2)CH2COCO(OOH)                                                                             AGNK     }
+  GPA5011 = 5C+4H+2N+11O;  {CO(OH)CH(ONO2)CH2COCO(OONO2)                                                                           PANK     }
+  GAN3006 = 3C+3H+N+6O;    {CO(OH)CH(ONO2)CHO                                                                                      AND      }
+  GAA3001 = 3C+3H+N+7O;    {CO(OH)CH(ONO2)CO(OH)                                                                                   AAN      }
+  G3A3001 = 3C+2H+N+8O;    {CO(OH)CH(ONO2)CO(OO.)                                                                                  3.ANK    }
+  GAG3001 = 3C+3H+N+8O;    {CO(OH)CH(ONO2)CO(OOH)                                                                                  AGN      }
+  GPA3001 = 3C+2H+2N+10O;  {CO(OH)CH(ONO2)CO(OONO2)                                                                                PAN      }
+  G1A5032 = 5C+5H+2N+10O;  {CO(OH)CH(ONO2)COCH(O.)CH2(ONO2)                                                                        1.ANN    }
+  G1A508P = 5C+6H+N+9O;    {CO(OH)CH(ONO2)COCH(O.)CH2(OOH)                                                                         1.AHN    }
+  G1A508Q = 5C+4H+N+8O;    {CO(OH)CH(ONO2)COCH(O.)CHO                                                                              1.AND    }
+  G1A508M = 5C+4H+N+9O;    {CO(OH)CH(ONO2)COCH(O.)CO(OH)                                                                           1.AAN    }
+  G1A508I = 5C+4H+N+10O;   {CO(OH)CH(ONO2)COCH(O.)CO(OOH)                                                                          1.AGN    }
+  G1P509E = 5C+3H+2N+12O;  {CO(OH)CH(ONO2)COCH(O.)CO(OONO2)                                                                        1.PAN    }
+  G1A502e = 5C+6H+N+8O;    {CO(OH)CH(ONO2)COCH(OH)CH2(O.)                                                                          1.ANK    }
+  GAN501L = 5C+6H+2N+10O;  {CO(OH)CH(ONO2)COCH(OH)CH2(ONO2)                                                                        ANNKO    }
+  G2A502E = 5C+6H+N+9O;    {CO(OH)CH(ONO2)COCH(OH)CH2(OO.)                                                                         2.ANK    }
+  GAH502o = 5C+7H+N+9O;    {CO(OH)CH(ONO2)COCH(OH)CH2(OOH)                                                                         AHNKO    }
+  GAN502A = 5C+5H+N+8O;    {CO(OH)CH(ONO2)COCH(OH)CHO                                                                              ANDKO    }
+  G3A500c = 5C+4H+N+10O;   {CO(OH)CH(ONO2)COCH(OH)CO(OO.)                                                                          3.ANK    }
+  GAG500r = 5C+5H+N+10O;   {CO(OH)CH(ONO2)COCH(OH)CO(OOH)                                                                          AGNKO    }
+  GPA500t = 5C+4H+2N+12O;  {CO(OH)CH(ONO2)COCH(OH)CO(OONO2)                                                                        PANKO    }
+  G1A505M = 5C+5H+2N+10O;  {CO(OH)CH(ONO2)COCH(ONO2)CH2(O.)                                                                        1.ANN    }
+  GAN502S = 5C+5H+3N+12O;  {CO(OH)CH(ONO2)COCH(ONO2)CH2(ONO2)                                                                      ANNNK    }
+  G2A5047 = 5C+5H+2N+11O;  {CO(OH)CH(ONO2)COCH(ONO2)CH2(OO.)                                                                       2.ANN    }
+  GAH504q = 5C+6H+2N+11O;  {CO(OH)CH(ONO2)COCH(ONO2)CH2(OOH)                                                                       AHNNK    }
+  GAN502n = 5C+4H+2N+10O;  {CO(OH)CH(ONO2)COCH(ONO2)CHO                                                                            ANNDK    }
+  GAA500v = 5C+4H+2N+11O;  {CO(OH)CH(ONO2)COCH(ONO2)CO(OH)                                                                         AANNK    }
+  G3A501P = 5C+3H+2N+12O;  {CO(OH)CH(ONO2)COCH(ONO2)CO(OO.)                                                                        3.ANN    }
+  GAG501b = 5C+4H+2N+12O;  {CO(OH)CH(ONO2)COCH(ONO2)CO(OOH)                                                                        AGNNK    }
+  GPA501f = 5C+3H+3N+14O;  {CO(OH)CH(ONO2)COCH(ONO2)CO(OONO2)                                                                      PANNK    }
+  G2A502a = 5C+5H+2N+11O;  {CO(OH)CH(ONO2)COCH(OO.)CH2(ONO2)                                                                       2.ANN    }
+  G2A505z = 5C+4H+N+10O;   {CO(OH)CH(ONO2)COCH(OO.)CO(OH)                                                                          2.AAN    }
+  G2A505v = 5C+4H+N+11O;   {CO(OH)CH(ONO2)COCH(OO.)CO(OOH)                                                                         2.AGN    }
+  G2P506X = 5C+3H+2N+13O;  {CO(OH)CH(ONO2)COCH(OO.)CO(OONO2)                                                                       2.PAN    }
+  G1A506b = 5C+6H+N+9O;    {CO(OH)CH(ONO2)COCH(OOH)CH2(O.)                                                                         1.AHN    }
+  GAH503R = 5C+6H+2N+11O;  {CO(OH)CH(ONO2)COCH(OOH)CH2(ONO2)                                                                       AHNNK    }
+  GAH504u = 5C+5H+N+9O;    {CO(OH)CH(ONO2)COCH(OOH)CHO                                                                             AHNDK    }
+  GAA500w = 5C+5H+N+10O;   {CO(OH)CH(ONO2)COCH(OOH)CO(OH)                                                                          AAHNK    }
+  G3A501R = 5C+4H+N+11O;   {CO(OH)CH(ONO2)COCH(OOH)CO(OO.)                                                                         3.AHN    }
+  GAG501c = 5C+5H+N+11O;   {CO(OH)CH(ONO2)COCH(OOH)CO(OOH)                                                                         AGHNK    }
+  GPA501g = 5C+4H+2N+13O;  {CO(OH)CH(ONO2)COCH(OOH)CO(OONO2)                                                                       PAHNK    }
+  G1A400l = 4C+4H+N+7O;    {CO(OH)CH(ONO2)COCH2(O.)                                                                                1.ANK    }
+  GAN400R = 4C+4H+2N+9O;   {CO(OH)CH(ONO2)COCH2(ONO2)                                                                              ANNK     }
+  G2A400e = 4C+4H+N+8O;    {CO(OH)CH(ONO2)COCH2(OO.)                                                                               2.ANK    }
+  GAH400m = 4C+5H+N+8O;    {CO(OH)CH(ONO2)COCH2(OOH)                                                                               AHNK     }
+  G1A5022 = 5C+6H+N+7O;    {CO(OH)CH(ONO2)COCH2CH2(O.)                                                                             1.ANK    }
+  GAN5011 = 5C+6H+2N+9O;   {CO(OH)CH(ONO2)COCH2CH2(ONO2)                                                                           ANNK     }
+  G2A501j = 5C+6H+N+8O;    {CO(OH)CH(ONO2)COCH2CH2(OO.)                                                                            2.ANK    }
+  GAH502O = 5C+7H+N+8O;    {CO(OH)CH(ONO2)COCH2CH2(OOH)                                                                            AHNK     }
+  GAN501y = 5C+5H+N+7O;    {CO(OH)CH(ONO2)COCH2CHO                                                                                 ANDK     }
+  G3A500Y = 5C+4H+N+9O;    {CO(OH)CH(ONO2)COCH2CO(OO.)                                                                             3.ANK    }
+  GAG500b = 5C+5H+N+9O;    {CO(OH)CH(ONO2)COCH2CO(OOH)                                                                             AGNK     }
+  GPA500k = 5C+4H+2N+11O;  {CO(OH)CH(ONO2)COCH2CO(OONO2)                                                                           PANK     }
+  GAN400b = 4C+3H+N+7O;    {CO(OH)CH(ONO2)COCHO                                                                                    ANDK     }
+  G3A400M = 4C+2H+N+9O;    {CO(OH)CH(ONO2)COCO(OO.)                                                                                3.ANK    }
+  GAG400L = 4C+3H+N+9O;    {CO(OH)CH(ONO2)COCO(OOH)                                                                                AGNK     }
+  GPA400G = 4C+2H+2N+11O;  {CO(OH)CH(ONO2)COCO(OONO2)                                                                              PANK     }
+  G1A505P = 5C+4H+N+8O;    {CO(OH)CH(ONO2)COCOCH2(O.)                                                                              1.ANK    }
+  GAN502T = 5C+4H+2N+10O;  {CO(OH)CH(ONO2)COCOCH2(ONO2)                                                                            ANNKK    }
+  G2A5049 = 5C+4H+N+9O;    {CO(OH)CH(ONO2)COCOCH2(OO.)                                                                             2.ANK    }
+  GAH504s = 5C+5H+N+9O;    {CO(OH)CH(ONO2)COCOCH2(OOH)                                                                             AHNKK    }
+  GAN502p = 5C+3H+N+8O;    {CO(OH)CH(ONO2)COCOCHO                                                                                  ANDKK    }
+  G3A501x = 5C+2H+N+10O;   {CO(OH)CH(ONO2)COCOCO(OO.)                                                                              3.ANK    }
+  GAG501d = 5C+3H+N+10O;   {CO(OH)CH(ONO2)COCOCO(OOH)                                                                              AGNKK    }
+  GPA501h = 5C+2H+2N+12O;  {CO(OH)CH(ONO2)COCOCO(OONO2)                                                                            PANKK    }
+  G2A503f = 5C+8H+N+9O;    {CO(OH)CH(OO.)CH(OH)CH(OH)CH2(ONO2)                                                                     2.ANO    }
+  G2A505f = 5C+9H+8O;      {CO(OH)CH(OO.)CH(OH)CH(OH)CH2(OOH)                                                                      2.AHO    }
+  G2A506r = 5C+7H+9O;      {CO(OH)CH(OO.)CH(OH)CH(OH)CO(OOH)                                                                       2.AGO    }
+  G2P507Z = 5C+6H+N+11O;   {CO(OH)CH(OO.)CH(OH)CH(OH)CO(OONO2)                                                                     2.PAO    }
+  G2A502q = 5C+7H+2N+11O;  {CO(OH)CH(OO.)CH(OH)CH(ONO2)CH2(ONO2)                                                                   2.ANN    }
+  G2A504U = 5C+8H+N+10O;   {CO(OH)CH(OO.)CH(OH)CH(ONO2)CH2(OOH)                                                                    2.AHN    }
+  G2A504n = 5C+6H+N+9O;    {CO(OH)CH(OO.)CH(OH)CH(ONO2)CHO                                                                         2.AND    }
+  G2A506Y = 5C+6H+N+11O;   {CO(OH)CH(OO.)CH(OH)CH(ONO2)CO(OOH)                                                                     2.AGN    }
+  G2P506o = 5C+5H+2N+13O;  {CO(OH)CH(OO.)CH(OH)CH(ONO2)CO(OONO2)                                                                   2.PAN    }
+  G2A505K = 5C+8H+N+10O;   {CO(OH)CH(OO.)CH(OH)CH(OOH)CH2(ONO2)                                                                    2.AHN    }
+  G2A507X = 5C+7H+10O;     {CO(OH)CH(OO.)CH(OH)CH(OOH)CO(OOH)                                                                      2.AGH    }
+  G2P508N = 5C+6H+N+12O;   {CO(OH)CH(OO.)CH(OH)CH(OOH)CO(OONO2)                                                                    2.PAH    }
+  G2A4003 = 4C+6H+N+8O;    {CO(OH)CH(OO.)CH(OH)CH2(ONO2)                                                                           2.ANO    }
+  G2A400v = 4C+7H+7O;      {CO(OH)CH(OO.)CH(OH)CH2(OOH)                                                                            2.AHO    }
+  G2A500j = 5C+8H+N+8O;    {CO(OH)CH(OO.)CH(OH)CH2CH2(ONO2)                                                                        2.ANO    }
+  G2A506c = 5C+7H+8O;      {CO(OH)CH(OO.)CH(OH)CH2CO(OOH)                                                                          2.AGO    }
+  G2P5055 = 5C+6H+N+10O;   {CO(OH)CH(OO.)CH(OH)CH2CO(OONO2)                                                                        2.PAO    }
+  G2A400d = 4C+5H+6O;      {CO(OH)CH(OO.)CH(OH)CHO                                                                                 2.ADO    }
+  G2A4014 = 4C+5H+8O;      {CO(OH)CH(OO.)CH(OH)CO(OOH)                                                                             2.AGO    }
+  G2P401B = 4C+4H+N+10O;   {CO(OH)CH(OO.)CH(OH)CO(OONO2)                                                                           2.PAO    }
+  G2A5032 = 5C+6H+N+9O;    {CO(OH)CH(OO.)CH(OH)COCH2(ONO2)                                                                         2.ANK    }
+  G2A503o = 5C+7H+8O;      {CO(OH)CH(OO.)CH(OH)COCH2(OOH)                                                                          2.AHK    }
+  G2A504o = 5C+5H+7O;      {CO(OH)CH(OO.)CH(OH)COCHO                                                                               2.ADK    }
+  G2A505u = 5C+5H+9O;      {CO(OH)CH(OO.)CH(OH)COCO(OOH)                                                                           2.AGK    }
+  G2P506Q = 5C+4H+N+11O;   {CO(OH)CH(OO.)CH(OH)COCO(OONO2)                                                                         2.PAK    }
+  G2A501A = 5C+7H+2N+11O;  {CO(OH)CH(OO.)CH(ONO2)CH(OH)CH2(ONO2)                                                                   2.ANN    }
+  G2A505d = 5C+8H+N+10O;   {CO(OH)CH(OO.)CH(ONO2)CH(OH)CH2(OOH)                                                                    2.AHN    }
+  G2A5058 = 5C+6H+N+9O;    {CO(OH)CH(OO.)CH(ONO2)CH(OH)CHO                                                                         2.AND    }
+  G2A506o = 5C+6H+N+11O;   {CO(OH)CH(OO.)CH(ONO2)CH(OH)CO(OOH)                                                                     2.AGN    }
+  G2P5049 = 5C+5H+2N+13O;  {CO(OH)CH(OO.)CH(ONO2)CH(OH)CO(OONO2)                                                                   2.PAN    }
+  G2A502N = 5C+6H+3N+13O;  {CO(OH)CH(OO.)CH(ONO2)CH(ONO2)CH2(ONO2)                                                                 2.ANN    }
+  G2A507J = 5C+7H+2N+12O;  {CO(OH)CH(OO.)CH(ONO2)CH(ONO2)CH2(OOH)                                                                  2.AHN    }
+  G2A506J = 5C+5H+2N+11O;  {CO(OH)CH(OO.)CH(ONO2)CH(ONO2)CHO                                                                       2.ANN    }
+  G2A507L = 5C+5H+2N+13O;  {CO(OH)CH(OO.)CH(ONO2)CH(ONO2)CO(OOH)                                                                   2.AGN    }
+  G2P506E = 5C+4H+3N+15O;  {CO(OH)CH(OO.)CH(ONO2)CH(ONO2)CO(OONO2)                                                                 2.PAN    }
+  G2A505I = 5C+7H+2N+12O;  {CO(OH)CH(OO.)CH(ONO2)CH(OOH)CH2(ONO2)                                                                  2.AHN    }
+  G2A506K = 5C+6H+N+10O;   {CO(OH)CH(OO.)CH(ONO2)CH(OOH)CHO                                                                        2.AHN    }
+  G2A507M = 5C+6H+N+12O;   {CO(OH)CH(OO.)CH(ONO2)CH(OOH)CO(OOH)                                                                    2.AGH    }
+  G2P5089 = 5C+5H+2N+14O;  {CO(OH)CH(OO.)CH(ONO2)CH(OOH)CO(OONO2)                                                                  2.PAH    }
+  G2A400L = 4C+5H+2N+10O;  {CO(OH)CH(OO.)CH(ONO2)CH2(ONO2)                                                                         2.ANN    }
+  G2A4018 = 4C+6H+N+9O;    {CO(OH)CH(OO.)CH(ONO2)CH2(OOH)                                                                          2.AHN    }
+  G2A500g = 5C+7H+2N+10O;  {CO(OH)CH(OO.)CH(ONO2)CH2CH2(ONO2)                                                                      2.ANN    }
+  G2A5042 = 5C+6H+N+8O;    {CO(OH)CH(OO.)CH(ONO2)CH2CHO                                                                            2.AND    }
+  G2A505s = 5C+6H+N+10O;   {CO(OH)CH(OO.)CH(ONO2)CH2CO(OOH)                                                                        2.AGN    }
+  G2P503x = 5C+5H+2N+12O;  {CO(OH)CH(OO.)CH(ONO2)CH2CO(OONO2)                                                                      2.PAN    }
+  G2A4016 = 4C+4H+N+8O;    {CO(OH)CH(OO.)CH(ONO2)CHO                                                                               2.AND    }
+  G2A401I = 4C+4H+N+10O;   {CO(OH)CH(OO.)CH(ONO2)CO(OOH)                                                                           2.AGN    }
+  G2P4011 = 4C+3H+2N+12O;  {CO(OH)CH(OO.)CH(ONO2)CO(OONO2)                                                                         2.PAN    }
+  G2A502Q = 5C+5H+2N+11O;  {CO(OH)CH(OO.)CH(ONO2)COCH2(ONO2)                                                                       2.ANN    }
+  G2A5075 = 5C+6H+N+10O;   {CO(OH)CH(OO.)CH(ONO2)COCH2(OOH)                                                                        2.AHN    }
+  G2A506p = 5C+4H+N+9O;    {CO(OH)CH(OO.)CH(ONO2)COCHO                                                                             2.AND    }
+  G2A507d = 5C+4H+N+11O;   {CO(OH)CH(OO.)CH(ONO2)COCO(OOH)                                                                         2.AGN    }
+  G2P506F = 5C+3H+2N+13O;  {CO(OH)CH(OO.)CH(ONO2)COCO(OONO2)                                                                       2.PAN    }
+  G2A503e = 5C+8H+N+10O;   {CO(OH)CH(OO.)CH(OOH)CH(OH)CH2(ONO2)                                                                    2.AHN    }
+  G2A5066 = 5C+7H+2N+12O;  {CO(OH)CH(OO.)CH(OOH)CH(ONO2)CH2(ONO2)                                                                  2.AHN    }
+  G2A506C = 5C+8H+N+11O;   {CO(OH)CH(OO.)CH(OOH)CH(ONO2)CH2(OOH)                                                                   2.AHH    }
+  G2A506W = 5C+6H+N+10O;   {CO(OH)CH(OO.)CH(OOH)CH(ONO2)CHO                                                                        2.AHN    }
+  G2A507P = 5C+6H+N+12O;   {CO(OH)CH(OO.)CH(OOH)CH(ONO2)CO(OOH)                                                                    2.AGH    }
+  G2P508G = 5C+5H+2N+14O;  {CO(OH)CH(OO.)CH(OOH)CH(ONO2)CO(OONO2)                                                                  2.PAH    }
+  G2A401G = 4C+6H+N+9O;    {CO(OH)CH(OO.)CH(OOH)CH2(ONO2)                                                                          2.AHN    }
+  G2A502j = 5C+8H+N+9O;    {CO(OH)CH(OO.)CH(OOH)CH2CH2(ONO2)                                                                       2.AHN    }
+  G2P5077 = 5C+6H+N+11O;   {CO(OH)CH(OO.)CH(OOH)CH2CO(OONO2)                                                                       2.PAH    }
+  G2A401L = 4C+5H+9O;      {CO(OH)CH(OO.)CH(OOH)CO(OOH)                                                                            2.AGH    }
+  G2P401S = 4C+4H+N+11O;   {CO(OH)CH(OO.)CH(OOH)CO(OONO2)                                                                          2.PAH    }
+  G2A5031 = 5C+6H+N+10O;   {CO(OH)CH(OO.)CH(OOH)COCH2(ONO2)                                                                        2.AHN    }
+  G2A506N = 5C+5H+10O;     {CO(OH)CH(OO.)CH(OOH)COCO(OOH)                                                                          2.AGH    }
+  G2P507C = 5C+4H+N+12O;   {CO(OH)CH(OO.)CH(OOH)COCO(OONO2)                                                                        2.PAH    }
+  G2A3003 = 3C+4H+N+7O;    {CO(OH)CH(OO.)CH2(ONO2)                                                                                 2.AN     }
+  G2A300B = 3C+5H+6O;      {CO(OH)CH(OO.)CH2(OOH)                                                                                  2.AH     }
+  G2A5009 = 5C+8H+N+8O;    {CO(OH)CH(OO.)CH2CH(OH)CH2(ONO2)                                                                        2.ANO    }
+  G2A503i = 5C+9H+7O;      {CO(OH)CH(OO.)CH2CH(OH)CH2(OOH)                                                                         2.AHO    }
+  G2A503R = 5C+7H+6O;      {CO(OH)CH(OO.)CH2CH(OH)CHO                                                                              2.ADO    }
+  G2A502f = 5C+7H+8O;      {CO(OH)CH(OO.)CH2CH(OH)CO(OOH)                                                                          2.AGO    }
+  G2P503J = 5C+6H+N+10O;   {CO(OH)CH(OO.)CH2CH(OH)CO(OONO2)                                                                        2.PAO    }
+  G2A500t = 5C+7H+2N+10O;  {CO(OH)CH(OO.)CH2CH(ONO2)CH2(ONO2)                                                                      2.ANN    }
+  G2A502G = 5C+8H+N+9O;    {CO(OH)CH(OO.)CH2CH(ONO2)CH2(OOH)                                                                       2.AHN    }
+  G2A503F = 5C+6H+N+8O;    {CO(OH)CH(OO.)CH2CH(ONO2)CHO                                                                            2.AND    }
+  G2A504q = 5C+6H+N+10O;   {CO(OH)CH(OO.)CH2CH(ONO2)CO(OOH)                                                                        2.AGN    }
+  G2P504f = 5C+5H+2N+12O;  {CO(OH)CH(OO.)CH2CH(ONO2)CO(OONO2)                                                                      2.PAN    }
+  G2A503S = 5C+8H+N+9O;    {CO(OH)CH(OO.)CH2CH(OOH)CH2(ONO2)                                                                       2.AHN    }
+  G2A506l = 5C+7H+9O;      {CO(OH)CH(OO.)CH2CH(OOH)CO(OOH)                                                                         2.AGH    }
+  G2P507Q = 5C+6H+N+11O;   {CO(OH)CH(OO.)CH2CH(OOH)CO(OONO2)                                                                       2.PAH    }
+  G2A4001 = 4C+6H+N+7O;    {CO(OH)CH(OO.)CH2CH2(ONO2)                                                                              2.AN     }
+  G2A400u = 4C+7H+6O;      {CO(OH)CH(OO.)CH2CH2(OOH)                                                                               2.AH     }
+  G2A5005 = 5C+8H+N+7O;    {CO(OH)CH(OO.)CH2CH2CH2(ONO2)                                                                           2.AN     }
+  G2A5039 = 5C+7H+5O;      {CO(OH)CH(OO.)CH2CH2CHO                                                                                 2.AD     }
+  G2A5033 = 5C+7H+7O;      {CO(OH)CH(OO.)CH2CH2CO(OOH)                                                                             2.AG     }
+  G2P502l = 5C+6H+N+9O;    {CO(OH)CH(OO.)CH2CH2CO(OONO2)                                                                           2.PA     }
+  G2A400P = 4C+5H+5O;      {CO(OH)CH(OO.)CH2CHO                                                                                    2.AD     }
+  G2A400k = 4C+5H+7O;      {CO(OH)CH(OO.)CH2CO(OOH)                                                                                2.AG     }
+  G2P400j = 4C+4H+N+9O;    {CO(OH)CH(OO.)CH2CO(OONO2)                                                                              2.PA     }
+  G2A500y = 5C+6H+N+8O;    {CO(OH)CH(OO.)CH2COCH2(ONO2)                                                                            2.ANK    }
+  G2A501K = 5C+7H+7O;      {CO(OH)CH(OO.)CH2COCH2(OOH)                                                                             2.AHK    }
+  G2A503I = 5C+5H+6O;      {CO(OH)CH(OO.)CH2COCHO                                                                                  2.ADK    }
+  G2A504s = 5C+5H+8O;      {CO(OH)CH(OO.)CH2COCO(OOH)                                                                              2.AGK    }
+  G2P505K = 5C+4H+N+10O;   {CO(OH)CH(OO.)CH2COCO(OONO2)                                                                            2.PAK    }
+  G2A3007 = 3C+3H+5O;      {CO(OH)CH(OO.)CHO                                                                                       2.AD     }
+  G2A3009 = 3C+3H+6O;      {CO(OH)CH(OO.)CO(OH)                                                                                    2.AA     }
+  G2A3008 = 3C+3H+7O;      {CO(OH)CH(OO.)CO(OOH)                                                                                   2.AG     }
+  G2P3009 = 3C+2H+N+9O;    {CO(OH)CH(OO.)CO(OONO2)                                                                                 2.PA     }
+  G2A501D = 5C+6H+N+9O;    {CO(OH)CH(OO.)COCH(OH)CH2(ONO2)                                                                         2.ANK    }
+  G2A506s = 5C+5H+9O;      {CO(OH)CH(OO.)COCH(OH)CO(OOH)                                                                           2.AGK    }
+  G2P504U = 5C+4H+N+11O;   {CO(OH)CH(OO.)COCH(OH)CO(OONO2)                                                                         2.PAK    }
+  G2A502c = 5C+5H+2N+11O;  {CO(OH)CH(OO.)COCH(ONO2)CH2(ONO2)                                                                       2.ANN    }
+  G2A507E = 5C+6H+N+10O;   {CO(OH)CH(OO.)COCH(ONO2)CH2(OOH)                                                                        2.AHN    }
+  G2A504p = 5C+4H+N+9O;    {CO(OH)CH(OO.)COCH(ONO2)CHO                                                                             2.AND    }
+  G2A505x = 5C+4H+N+11O;   {CO(OH)CH(OO.)COCH(ONO2)CO(OOH)                                                                         2.AGN    }
+  G2P506Z = 5C+3H+2N+13O;  {CO(OH)CH(OO.)COCH(ONO2)CO(OONO2)                                                                       2.PAN    }
+  G2A505M = 5C+6H+N+10O;   {CO(OH)CH(OO.)COCH(OOH)CH2(ONO2)                                                                        2.AHN    }
+  G2A507a = 5C+5H+10O;     {CO(OH)CH(OO.)COCH(OOH)CO(OOH)                                                                          2.AGH    }
+  G2P508K = 5C+4H+N+12O;   {CO(OH)CH(OO.)COCH(OOH)CO(OONO2)                                                                        2.PAH    }
+  G2A400M = 4C+4H+N+8O;    {CO(OH)CH(OO.)COCH2(ONO2)                                                                               2.ANK    }
+  G2A4019 = 4C+5H+7O;      {CO(OH)CH(OO.)COCH2(OOH)                                                                                2.AHK    }
+  G2A500l = 5C+6H+N+8O;    {CO(OH)CH(OO.)COCH2CH2(ONO2)                                                                            2.ANK    }
+  G2A505D = 5C+7H+7O;      {CO(OH)CH(OO.)COCH2CH2(OOH)                                                                             2.AHK    }
+  G2A5044 = 5C+5H+8O;      {CO(OH)CH(OO.)COCH2CO(OOH)                                                                              2.AGK    }
+  G2P504J = 5C+4H+N+10O;   {CO(OH)CH(OO.)COCH2CO(OONO2)                                                                            2.PAK    }
+  G2A401E = 4C+3H+6O;      {CO(OH)CH(OO.)COCHO                                                                                     2.ADK    }
+  G2A401F = 4C+3H+8O;      {CO(OH)CH(OO.)COCO(OOH)                                                                                 2.AGK    }
+  G2P4018 = 4C+2H+N+10O;   {CO(OH)CH(OO.)COCO(OONO2)                                                                               2.PAK    }
+  G2A502e = 5C+4H+N+9O;    {CO(OH)CH(OO.)COCOCH2(ONO2)                                                                             2.ANK    }
+  G2A5078 = 5C+5H+8O;      {CO(OH)CH(OO.)COCOCH2(OOH)                                                                              2.AHK    }
+  G2A506v = 5C+3H+7O;      {CO(OH)CH(OO.)COCOCHO                                                                                   2.ADK    }
+  G2A505y = 5C+3H+9O;      {CO(OH)CH(OO.)COCOCO(OOH)                                                                               2.AGK    }
+  G2P506a = 5C+2H+N+11O;   {CO(OH)CH(OO.)COCOCO(OONO2)                                                                             2.PAK    }
+  G1A501R = 5C+8H+N+9O;    {CO(OH)CH(OOH)CH(O.)CH(OH)CH2(ONO2)                                                                     1.AHN    }
+  G1A507k = 5C+9H+8O;      {CO(OH)CH(OOH)CH(O.)CH(OH)CH2(OOH)                                                                      1.AHH    }
+  G1A504Q = 5C+7H+7O;      {CO(OH)CH(OOH)CH(O.)CH(OH)CHO                                                                           1.AHD    }
+  G1A508G = 5C+7H+8O;      {CO(OH)CH(OOH)CH(O.)CH(OH)CO(OH)                                                                        1.AAH    }
+  G1A509M = 5C+7H+9O;      {CO(OH)CH(OOH)CH(O.)CH(OH)CO(OOH)                                                                       1.AGH    }
+  G1P5092 = 5C+6H+N+11O;   {CO(OH)CH(OOH)CH(O.)CH(OH)CO(OONO2)                                                                     1.PAH    }
+  G1A5066 = 5C+7H+2N+11O;  {CO(OH)CH(OOH)CH(O.)CH(ONO2)CH2(ONO2)                                                                   1.AHN    }
+  G1A508m = 5C+8H+N+10O;   {CO(OH)CH(OOH)CH(O.)CH(ONO2)CH2(OOH)                                                                    1.AHH    }
+  G1A508s = 5C+6H+N+9O;    {CO(OH)CH(OOH)CH(O.)CH(ONO2)CHO                                                                         1.AHN    }
+  G1A509v = 5C+6H+N+11O;   {CO(OH)CH(OOH)CH(O.)CH(ONO2)CO(OOH)                                                                     1.AGH    }
+  G1P50Ag = 5C+5H+2N+13O;  {CO(OH)CH(OOH)CH(O.)CH(ONO2)CO(OONO2)                                                                   1.PAH    }
+  G1A507W = 5C+8H+N+10O;   {CO(OH)CH(OOH)CH(O.)CH(OOH)CH2(ONO2)                                                                    1.AHH    }
+  G1A507H = 5C+7H+8O;      {CO(OH)CH(OOH)CH(O.)CH(OOH)CHO                                                                          1.AHH    }
+  G1A509y = 5C+7H+9O;      {CO(OH)CH(OOH)CH(O.)CH(OOH)CO(OH)                                                                       1.AAH    }
+  G1A509x = 5C+7H+10O;     {CO(OH)CH(OOH)CH(O.)CH(OOH)CO(OOH)                                                                      1.AGH    }
+  G1P50BD = 5C+6H+N+12O;   {CO(OH)CH(OOH)CH(O.)CH(OOH)CO(OONO2)                                                                    1.PAH    }
+  G1A400y = 4C+6H+N+8O;    {CO(OH)CH(OOH)CH(O.)CH2(ONO2)                                                                           1.AHN    }
+  G1A401K = 4C+7H+7O;      {CO(OH)CH(OOH)CH(O.)CH2(OOH)                                                                            1.AHH    }
+  G1A500t = 5C+8H+N+8O;    {CO(OH)CH(OOH)CH(O.)CH2CH2(ONO2)                                                                        1.AHN    }
+  G1A503y = 5C+7H+6O;      {CO(OH)CH(OOH)CH(O.)CH2CHO                                                                              1.AHD    }
+  G1A507N = 5C+7H+7O;      {CO(OH)CH(OOH)CH(O.)CH2CO(OH)                                                                           1.AAH    }
+  G1A508D = 5C+7H+8O;      {CO(OH)CH(OOH)CH(O.)CH2CO(OOH)                                                                          1.AGH    }
+  G1P507U = 5C+6H+N+10O;   {CO(OH)CH(OOH)CH(O.)CH2CO(OONO2)                                                                        1.PAH    }
+  G1A401H = 4C+5H+6O;      {CO(OH)CH(OOH)CH(O.)CHO                                                                                 1.AHD    }
+  G1A401R = 4C+5H+7O;      {CO(OH)CH(OOH)CH(O.)CO(OH)                                                                              1.AAH    }
+  G1A401S = 4C+5H+8O;      {CO(OH)CH(OOH)CH(O.)CO(OOH)                                                                             1.AGH    }
+  G1P401Y = 4C+4H+N+10O;   {CO(OH)CH(OOH)CH(O.)CO(OONO2)                                                                           1.PAH    }
+  G1A506H = 5C+6H+N+9O;    {CO(OH)CH(OOH)CH(O.)COCH2(ONO2)                                                                         1.AHN    }
+  G1A509U = 5C+7H+8O;      {CO(OH)CH(OOH)CH(O.)COCH2(OOH)                                                                          1.AHH    }
+  G1A509N = 5C+5H+7O;      {CO(OH)CH(OOH)CH(O.)COCHO                                                                               1.AHD    }
+  G1A509b = 5C+5H+8O;      {CO(OH)CH(OOH)CH(O.)COCO(OH)                                                                            1.AAH    }
+  G1A50A1 = 5C+5H+9O;      {CO(OH)CH(OOH)CH(O.)COCO(OOH)                                                                           1.AGH    }
+  G1P50Ai = 5C+4H+N+11O;   {CO(OH)CH(OOH)CH(O.)COCO(OONO2)                                                                         1.PAH    }
+  G1A507C = 5C+8H+N+9O;    {CO(OH)CH(OOH)CH(OH)CH(O.)CH2(ONO2)                                                                     1.AHN    }
+  G1A508p = 5C+9H+8O;      {CO(OH)CH(OOH)CH(OH)CH(O.)CH2(OOH)                                                                      1.AHH    }
+  G1A509D = 5C+7H+7O;      {CO(OH)CH(OOH)CH(OH)CH(O.)CHO                                                                           1.AHD    }
+  G1A509s = 5C+7H+8O;      {CO(OH)CH(OOH)CH(OH)CH(O.)CO(OH)                                                                        1.AAH    }
+  G1A50A4 = 5C+7H+9O;      {CO(OH)CH(OOH)CH(OH)CH(O.)CO(OOH)                                                                       1.AGH    }
+  G1P50B8 = 5C+6H+N+11O;   {CO(OH)CH(OOH)CH(OH)CH(O.)CO(OONO2)                                                                     1.PAH    }
+  G1A504c = 5C+9H+7O;      {CO(OH)CH(OOH)CH(OH)CH(OH)CH2(O.)                                                                       1.AHO    }
+  GAH501q = 5C+9H+N+9O;    {CO(OH)CH(OOH)CH(OH)CH(OH)CH2(ONO2)                                                                     AHNOO    }
+  G2A505g = 5C+9H+8O;      {CO(OH)CH(OOH)CH(OH)CH(OH)CH2(OO.)                                                                      2.AHO    }
+  GAH504a = 5C+10H+8O;     {CO(OH)CH(OOH)CH(OH)CH(OH)CH2(OOH)                                                                      AHHOO    }
+  GAH5048 = 5C+8H+7O;      {CO(OH)CH(OOH)CH(OH)CH(OH)CHO                                                                           AHDOO    }
+  G3A501A = 5C+7H+9O;      {CO(OH)CH(OOH)CH(OH)CH(OH)CO(OO.)                                                                       3.AHK    }
+  GAG501L = 5C+8H+9O;      {CO(OH)CH(OOH)CH(OH)CH(OH)CO(OOH)                                                                       AGHOO    }
+  GPA501Q = 5C+7H+N+11O;   {CO(OH)CH(OOH)CH(OH)CH(OH)CO(OONO2)                                                                     PAHOO    }
+  G1A507D = 5C+8H+N+9O;    {CO(OH)CH(OOH)CH(OH)CH(ONO2)CH2(O.)                                                                     1.AHN    }
+  GAH503i = 5C+8H+2N+11O;  {CO(OH)CH(OOH)CH(OH)CH(ONO2)CH2(ONO2)                                                                   AHNNO    }
+  G2A506G = 5C+8H+N+10O;   {CO(OH)CH(OOH)CH(OH)CH(ONO2)CH2(OO.)                                                                    2.AHN    }
+  GAH5054 = 5C+9H+N+10O;   {CO(OH)CH(OOH)CH(OH)CH(ONO2)CH2(OOH)                                                                    AHHNO    }
+  GAH505G = 5C+7H+N+9O;    {CO(OH)CH(OOH)CH(OH)CH(ONO2)CHO                                                                         AHNDO    }
+  G3A501j = 5C+6H+N+11O;   {CO(OH)CH(OOH)CH(OH)CH(ONO2)CO(OO.)                                                                     3.AHN    }
+  GAG501w = 5C+7H+N+11O;   {CO(OH)CH(OOH)CH(OH)CH(ONO2)CO(OOH)                                                                     AGHNO    }
+  GPA501u = 5C+6H+2N+13O;  {CO(OH)CH(OOH)CH(OH)CH(ONO2)CO(OONO2)                                                                   PAHNO    }
+  G2A505L = 5C+8H+N+10O;   {CO(OH)CH(OOH)CH(OH)CH(OO.)CH2(ONO2)                                                                    2.AHN    }
+  G2A507Z = 5C+7H+9O;      {CO(OH)CH(OOH)CH(OH)CH(OO.)CO(OH)                                                                       2.AAH    }
+  G2A507Y = 5C+7H+10O;     {CO(OH)CH(OOH)CH(OH)CH(OO.)CO(OOH)                                                                      2.AGH    }
+  G2P508O = 5C+6H+N+12O;   {CO(OH)CH(OOH)CH(OH)CH(OO.)CO(OONO2)                                                                    2.PAH    }
+  G1A507b = 5C+9H+8O;      {CO(OH)CH(OOH)CH(OH)CH(OOH)CH2(O.)                                                                      1.AHH    }
+  GAH504D = 5C+9H+N+10O;   {CO(OH)CH(OOH)CH(OH)CH(OOH)CH2(ONO2)                                                                    AHHNO    }
+  GAH505L = 5C+8H+8O;      {CO(OH)CH(OOH)CH(OH)CH(OOH)CHO                                                                          AHHDO    }
+  GAA501D = 5C+8H+9O;      {CO(OH)CH(OOH)CH(OH)CH(OOH)CO(OH)                                                                       AAHHO    }
+  G3A501o = 5C+7H+10O;     {CO(OH)CH(OOH)CH(OH)CH(OOH)CO(OO.)                                                                      3.AHH    }
+  GAG5022 = 5C+8H+10O;     {CO(OH)CH(OOH)CH(OH)CH(OOH)CO(OOH)                                                                      AGHHO    }
+  GPA5024 = 5C+7H+N+12O;   {CO(OH)CH(OOH)CH(OH)CH(OOH)CO(OONO2)                                                                    PAHHO    }
+  G1A400W = 4C+7H+6O;      {CO(OH)CH(OOH)CH(OH)CH2(O.)                                                                             1.AHO    }
+  GAH4004 = 4C+7H+N+8O;    {CO(OH)CH(OOH)CH(OH)CH2(ONO2)                                                                           AHNO     }
+  G2A400w = 4C+7H+7O;      {CO(OH)CH(OOH)CH(OH)CH2(OO.)                                                                            2.AHO    }
+  GAH400e = 4C+8H+7O;      {CO(OH)CH(OOH)CH(OH)CH2(OOH)                                                                            AHHO     }
+  G1A502v = 5C+9H+6O;      {CO(OH)CH(OOH)CH(OH)CH2CH2(O.)                                                                          1.AHO    }
+  GAH5011 = 5C+9H+N+8O;    {CO(OH)CH(OOH)CH(OH)CH2CH2(ONO2)                                                                        AHNO     }
+  GAH503O = 5C+8H+6O;      {CO(OH)CH(OOH)CH(OH)CH2CHO                                                                              AHDO     }
+  G3A500o = 5C+7H+8O;      {CO(OH)CH(OOH)CH(OH)CH2CO(OO.)                                                                          3.AHK    }
+  GAG5015 = 5C+8H+8O;      {CO(OH)CH(OOH)CH(OH)CH2CO(OOH)                                                                          AGHO     }
+  GPA501B = 5C+7H+N+10O;   {CO(OH)CH(OOH)CH(OH)CH2CO(OONO2)                                                                        PAHO     }
+  GAH400k = 4C+6H+6O;      {CO(OH)CH(OOH)CH(OH)CHO                                                                                 AHDO     }
+  G3A400E = 4C+5H+8O;      {CO(OH)CH(OOH)CH(OH)CO(OO.)                                                                             3.AHK    }
+  GAG400J = 4C+6H+8O;      {CO(OH)CH(OOH)CH(OH)CO(OOH)                                                                             AGHO     }
+  GPA400M = 4C+5H+N+10O;   {CO(OH)CH(OOH)CH(OH)CO(OONO2)                                                                           PAHO     }
+  G1A507M = 5C+7H+7O;      {CO(OH)CH(OOH)CH(OH)COCH2(O.)                                                                           1.AHK    }
+  GAH503t = 5C+7H+N+9O;    {CO(OH)CH(OOH)CH(OH)COCH2(ONO2)                                                                         AHNKO    }
+  GAH504g = 5C+8H+8O;      {CO(OH)CH(OOH)CH(OH)COCH2(OOH)                                                                          AHHKO    }
+  GAH505H = 5C+6H+7O;      {CO(OH)CH(OOH)CH(OH)COCHO                                                                               AHDKO    }
+  G3A501w = 5C+5H+9O;      {CO(OH)CH(OOH)CH(OH)COCO(OO.)                                                                           3.AHK    }
+  GAG501Z = 5C+6H+9O;      {CO(OH)CH(OOH)CH(OH)COCO(OOH)                                                                           AGHKO    }
+  GPA501d = 5C+5H+N+11O;   {CO(OH)CH(OOH)CH(OH)COCO(OONO2)                                                                         PAHKO    }
+  G1A5067 = 5C+7H+2N+11O;  {CO(OH)CH(OOH)CH(ONO2)CH(O.)CH2(ONO2)                                                                   1.AHN    }
+  G1A509u = 5C+8H+N+10O;   {CO(OH)CH(OOH)CH(ONO2)CH(O.)CH2(OOH)                                                                    1.AHH    }
+  G1A508t = 5C+6H+N+9O;    {CO(OH)CH(OOH)CH(ONO2)CH(O.)CHO                                                                         1.AHN    }
+  G1A509Z = 5C+6H+N+10O;   {CO(OH)CH(OOH)CH(ONO2)CH(O.)CO(OH)                                                                      1.AAH    }
+  G1A509w = 5C+6H+N+11O;   {CO(OH)CH(OOH)CH(ONO2)CH(O.)CO(OOH)                                                                     1.AGH    }
+  G1P50Ah = 5C+5H+2N+13O;  {CO(OH)CH(OOH)CH(ONO2)CH(O.)CO(OONO2)                                                                   1.PAH    }
+  G1A504J = 5C+8H+N+9O;    {CO(OH)CH(OOH)CH(ONO2)CH(OH)CH2(O.)                                                                     1.AHN    }
+  GAH501S = 5C+8H+2N+11O;  {CO(OH)CH(OOH)CH(ONO2)CH(OH)CH2(ONO2)                                                                   AHNNO    }
+  G2A505e = 5C+8H+N+10O;   {CO(OH)CH(OOH)CH(ONO2)CH(OH)CH2(OO.)                                                                    2.AHN    }
+  GAH504Y = 5C+9H+N+10O;   {CO(OH)CH(OOH)CH(ONO2)CH(OH)CH2(OOH)                                                                    AHHNO    }
+  GAH503z = 5C+7H+N+9O;    {CO(OH)CH(OOH)CH(ONO2)CH(OH)CHO                                                                         AHNDO    }
+  G3A5018 = 5C+6H+N+11O;   {CO(OH)CH(OOH)CH(ONO2)CH(OH)CO(OO.)                                                                     3.AHN    }
+  GAG501H = 5C+7H+N+11O;   {CO(OH)CH(OOH)CH(ONO2)CH(OH)CO(OOH)                                                                     AGHNO    }
+  GPA500h = 5C+6H+2N+13O;  {CO(OH)CH(OOH)CH(ONO2)CH(OH)CO(OONO2)                                                                   PAHNO    }
+  G1A5068 = 5C+7H+2N+11O;  {CO(OH)CH(OOH)CH(ONO2)CH(ONO2)CH2(O.)                                                                   1.AHN    }
+  GAH5033 = 5C+7H+3N+13O;  {CO(OH)CH(OOH)CH(ONO2)CH(ONO2)CH2(ONO2)                                                                 AHNNN    }
+  G2A507K = 5C+7H+2N+12O;  {CO(OH)CH(OOH)CH(ONO2)CH(ONO2)CH2(OO.)                                                                  2.AHN    }
+  GAH505e = 5C+8H+2N+12O;  {CO(OH)CH(OOH)CH(ONO2)CH(ONO2)CH2(OOH)                                                                  AHHNN    }
+  GAH5056 = 5C+6H+2N+11O;  {CO(OH)CH(OOH)CH(ONO2)CH(ONO2)CHO                                                                       AHNND    }
+  G3A501X = 5C+5H+2N+13O;  {CO(OH)CH(OOH)CH(ONO2)CH(ONO2)CO(OO.)                                                                   3.AHN    }
+  GAG501p = 5C+6H+2N+13O;  {CO(OH)CH(OOH)CH(ONO2)CH(ONO2)CO(OOH)                                                                   AGHNN    }
+  GPA501a = 5C+5H+3N+15O;  {CO(OH)CH(OOH)CH(ONO2)CH(ONO2)CO(OONO2)                                                                 PAHNN    }
+  G2A505J = 5C+7H+2N+12O;  {CO(OH)CH(OOH)CH(ONO2)CH(OO.)CH2(ONO2)                                                                  2.AHN    }
+  G2A506L = 5C+6H+N+10O;   {CO(OH)CH(OOH)CH(ONO2)CH(OO.)CHO                                                                        2.AHN    }
+  G2A507O = 5C+6H+N+11O;   {CO(OH)CH(OOH)CH(ONO2)CH(OO.)CO(OH)                                                                     2.AAH    }
+  G2A507N = 5C+6H+N+12O;   {CO(OH)CH(OOH)CH(ONO2)CH(OO.)CO(OOH)                                                                    2.AGH    }
+  G2P508A = 5C+5H+2N+14O;  {CO(OH)CH(OOH)CH(ONO2)CH(OO.)CO(OONO2)                                                                  2.PAH    }
+  G1A507X = 5C+8H+N+10O;   {CO(OH)CH(OOH)CH(ONO2)CH(OOH)CH2(O.)                                                                    1.AHH    }
+  GAH504B = 5C+8H+2N+12O;  {CO(OH)CH(OOH)CH(ONO2)CH(OOH)CH2(ONO2)                                                                  AHHNN    }
+  GAH5057 = 5C+7H+N+10O;   {CO(OH)CH(OOH)CH(ONO2)CH(OOH)CHO                                                                        AHHND    }
+  GAA5015 = 5C+7H+N+11O;   {CO(OH)CH(OOH)CH(ONO2)CH(OOH)CO(OH)                                                                     AAHHN    }
+  G3A501Y = 5C+6H+N+12O;   {CO(OH)CH(OOH)CH(ONO2)CH(OOH)CO(OO.)                                                                    3.AHH    }
+  GAG501q = 5C+7H+N+12O;   {CO(OH)CH(OOH)CH(ONO2)CH(OOH)CO(OOH)                                                                    AGHHN    }
+  GPA501v = 5C+6H+2N+14O;  {CO(OH)CH(OOH)CH(ONO2)CH(OOH)CO(OONO2)                                                                  PAHHN    }
+  G1A400z = 4C+6H+N+8O;    {CO(OH)CH(OOH)CH(ONO2)CH2(O.)                                                                           1.AHN    }
+  GAH400O = 4C+6H+2N+10O;  {CO(OH)CH(OOH)CH(ONO2)CH2(ONO2)                                                                         AHNN     }
+  G2A400y = 4C+6H+N+9O;    {CO(OH)CH(OOH)CH(ONO2)CH2(OO.)                                                                          2.AHN    }
+  GAH400p = 4C+7H+N+9O;    {CO(OH)CH(OOH)CH(ONO2)CH2(OOH)                                                                          AHHN     }
+  G1A502j = 5C+8H+N+8O;    {CO(OH)CH(OOH)CH(ONO2)CH2CH2(O.)                                                                        1.AHN    }
+  GAH500r = 5C+8H+2N+10O;  {CO(OH)CH(OOH)CH(ONO2)CH2CH2(ONO2)                                                                      AHNN     }
+  GAH502H = 5C+7H+N+8O;    {CO(OH)CH(OOH)CH(ONO2)CH2CHO                                                                            AHND     }
+  G3A500X = 5C+6H+N+10O;   {CO(OH)CH(OOH)CH(ONO2)CH2CO(OO.)                                                                        3.AHN    }
+  GAG500Z = 5C+7H+N+10O;   {CO(OH)CH(OOH)CH(ONO2)CH2CO(OOH)                                                                        AGHN     }
+  GPA500Y = 5C+6H+2N+12O;  {CO(OH)CH(OOH)CH(ONO2)CH2CO(OONO2)                                                                      PAHN     }
+  GAH400l = 4C+5H+N+8O;    {CO(OH)CH(OOH)CH(ONO2)CHO                                                                               AHND     }
+  G3A400G = 4C+4H+N+10O;   {CO(OH)CH(OOH)CH(ONO2)CO(OO.)                                                                           3.AHN    }
+  GAG400K = 4C+5H+N+10O;   {CO(OH)CH(OOH)CH(ONO2)CO(OOH)                                                                           AGHN     }
+  GPA400F = 4C+4H+2N+12O;  {CO(OH)CH(OOH)CH(ONO2)CO(OONO2)                                                                         PAHN     }
+  G1A506I = 5C+6H+N+9O;    {CO(OH)CH(OOH)CH(ONO2)COCH2(O.)                                                                         1.AHN    }
+  GAH5038 = 5C+6H+2N+11O;  {CO(OH)CH(OOH)CH(ONO2)COCH2(ONO2)                                                                       AHNNK    }
+  G2A5076 = 5C+6H+N+10O;   {CO(OH)CH(OOH)CH(ONO2)COCH2(OO.)                                                                        2.AHN    }
+  GAH505W = 5C+7H+N+10O;   {CO(OH)CH(OOH)CH(ONO2)COCH2(OOH)                                                                        AHHNK    }
+  GAH505N = 5C+5H+N+9O;    {CO(OH)CH(OOH)CH(ONO2)COCHO                                                                             AHNDK    }
+  G3A501t = 5C+4H+N+11O;   {CO(OH)CH(OOH)CH(ONO2)COCO(OO.)                                                                         3.AHN    }
+  GAG5024 = 5C+5H+N+11O;   {CO(OH)CH(OOH)CH(ONO2)COCO(OOH)                                                                         AGHNK    }
+  GPA501b = 5C+4H+2N+13O;  {CO(OH)CH(OOH)CH(ONO2)COCO(OONO2)                                                                       PAHNK    }
+  G2A501E = 5C+8H+N+10O;   {CO(OH)CH(OOH)CH(OO.)CH(OH)CH2(ONO2)                                                                    2.AHN    }
+  G2A503Q = 5C+7H+8O;      {CO(OH)CH(OOH)CH(OO.)CH(OH)CHO                                                                          2.AHD    }
+  G2A5067 = 5C+7H+2N+12O;  {CO(OH)CH(OOH)CH(OO.)CH(ONO2)CH2(ONO2)                                                                  2.AHN    }
+  G2A506D = 5C+8H+N+11O;   {CO(OH)CH(OOH)CH(OO.)CH(ONO2)CH2(OOH)                                                                   2.AHH    }
+  G2A506X = 5C+6H+N+10O;   {CO(OH)CH(OOH)CH(OO.)CH(ONO2)CHO                                                                        2.AHN    }
+  G2A507Q = 5C+6H+N+12O;   {CO(OH)CH(OOH)CH(OO.)CH(ONO2)CO(OOH)                                                                    2.AGH    }
+  G2P508H = 5C+5H+2N+14O;  {CO(OH)CH(OOH)CH(OO.)CH(ONO2)CO(OONO2)                                                                  2.PAH    }
+  G2A5053 = 5C+7H+9O;      {CO(OH)CH(OOH)CH(OO.)CH(OOH)CHO                                                                         2.AHH    }
+  G2A401H = 4C+6H+N+9O;    {CO(OH)CH(OOH)CH(OO.)CH2(ONO2)                                                                          2.AHN    }
+  G2A500p = 5C+8H+N+9O;    {CO(OH)CH(OOH)CH(OO.)CH2CH2(ONO2)                                                                       2.AHN    }
+  G2A5038 = 5C+7H+7O;      {CO(OH)CH(OOH)CH(OO.)CH2CHO                                                                             2.AHD    }
+  G2A5054 = 5C+7H+8O;      {CO(OH)CH(OOH)CH(OO.)CH2CO(OH)                                                                          2.AAH    }
+  G2P505J = 5C+6H+N+11O;   {CO(OH)CH(OOH)CH(OO.)CH2CO(OONO2)                                                                       2.PAH    }
+  G2A401N = 4C+5H+8O;      {CO(OH)CH(OOH)CH(OO.)CO(OH)                                                                             2.AAH    }
+  G2A401M = 4C+5H+9O;      {CO(OH)CH(OOH)CH(OO.)CO(OOH)                                                                            2.AGH    }
+  G2P401T = 4C+4H+N+11O;   {CO(OH)CH(OOH)CH(OO.)CO(OONO2)                                                                          2.PAH    }
+  G1A507Z = 5C+8H+N+10O;   {CO(OH)CH(OOH)CH(OOH)CH(O.)CH2(ONO2)                                                                    1.AHH    }
+  G1A508n = 5C+9H+9O;      {CO(OH)CH(OOH)CH(OOH)CH(O.)CH2(OOH)                                                                     1.AHH    }
+  G1A5097 = 5C+7H+8O;      {CO(OH)CH(OOH)CH(OOH)CH(O.)CHO                                                                          1.AHH    }
+  G1A50A3 = 5C+7H+9O;      {CO(OH)CH(OOH)CH(OOH)CH(O.)CO(OH)                                                                       1.AAH    }
+  G1A509z = 5C+7H+10O;     {CO(OH)CH(OOH)CH(OOH)CH(O.)CO(OOH)                                                                      1.AGH    }
+  G1P50BI = 5C+6H+N+12O;   {CO(OH)CH(OOH)CH(OOH)CH(O.)CO(OONO2)                                                                    1.PAH    }
+  G1A504b = 5C+9H+8O;      {CO(OH)CH(OOH)CH(OOH)CH(OH)CH2(O.)                                                                      1.AHH    }
+  GAH501p = 5C+9H+N+10O;   {CO(OH)CH(OOH)CH(OOH)CH(OH)CH2(ONO2)                                                                    AHHNO    }
+  GAH504Z = 5C+10H+9O;     {CO(OH)CH(OOH)CH(OOH)CH(OH)CH2(OOH)                                                                     AHHHO    }
+  GAH5047 = 5C+8H+8O;      {CO(OH)CH(OOH)CH(OOH)CH(OH)CHO                                                                          AHHDO    }
+  G3A5019 = 5C+7H+10O;     {CO(OH)CH(OOH)CH(OOH)CH(OH)CO(OO.)                                                                      3.AHH    }
+  GAG501K = 5C+8H+10O;     {CO(OH)CH(OOH)CH(OOH)CH(OH)CO(OOH)                                                                      AGHHO    }
+  GPA501P = 5C+7H+N+12O;   {CO(OH)CH(OOH)CH(OOH)CH(OH)CO(OONO2)                                                                    PAHHO    }
+  G1A508j = 5C+8H+N+10O;   {CO(OH)CH(OOH)CH(OOH)CH(ONO2)CH2(O.)                                                                    1.AHH    }
+  GAH504y = 5C+8H+2N+12O;  {CO(OH)CH(OOH)CH(OOH)CH(ONO2)CH2(ONO2)                                                                  AHHNN    }
+  G2A506E = 5C+8H+N+11O;   {CO(OH)CH(OOH)CH(OOH)CH(ONO2)CH2(OO.)                                                                   2.AHH    }
+  GAH5052 = 5C+9H+N+11O;   {CO(OH)CH(OOH)CH(OOH)CH(ONO2)CH2(OOH)                                                                   AHHHN    }
+  GAH505D = 5C+7H+N+10O;   {CO(OH)CH(OOH)CH(OOH)CH(ONO2)CHO                                                                        AHHND    }
+  G3A501d = 5C+6H+N+12O;   {CO(OH)CH(OOH)CH(OOH)CH(ONO2)CO(OO.)                                                                    3.AHH    }
+  GAG501r = 5C+7H+N+12O;   {CO(OH)CH(OOH)CH(OOH)CH(ONO2)CO(OOH)                                                                    AGHHN    }
+  GPA501y = 5C+6H+2N+14O;  {CO(OH)CH(OOH)CH(OOH)CH(ONO2)CO(OONO2)                                                                  PAHHN    }
+  G2A507W = 5C+7H+10O;     {CO(OH)CH(OOH)CH(OOH)CH(OO.)CO(OH)                                                                      2.AAH    }
+  G1A507a = 5C+9H+9O;      {CO(OH)CH(OOH)CH(OOH)CH(OOH)CH2(O.)                                                                     1.AHH    }
+  GAH504C = 5C+9H+N+11O;   {CO(OH)CH(OOH)CH(OOH)CH(OOH)CH2(ONO2)                                                                   AHHHN    }
+  GAH505K = 5C+8H+9O;      {CO(OH)CH(OOH)CH(OOH)CH(OOH)CHO                                                                         AHHHD    }
+  GAA501C = 5C+8H+10O;     {CO(OH)CH(OOH)CH(OOH)CH(OOH)CO(OH)                                                                      AAHHH    }
+  G3A501n = 5C+7H+11O;     {CO(OH)CH(OOH)CH(OOH)CH(OOH)CO(OO.)                                                                     3.AHH    }
+  GAG5021 = 5C+8H+11O;     {CO(OH)CH(OOH)CH(OOH)CH(OOH)CO(OOH)                                                                     AGHHH    }
+  GPA5023 = 5C+7H+N+13O;   {CO(OH)CH(OOH)CH(OOH)CH(OOH)CO(OONO2)                                                                   PAHHH    }
+  G1A401M = 4C+7H+7O;      {CO(OH)CH(OOH)CH(OOH)CH2(O.)                                                                            1.AHH    }
+  GAH400v = 4C+7H+N+9O;    {CO(OH)CH(OOH)CH(OOH)CH2(ONO2)                                                                          AHHN     }
+  G2A401C = 4C+7H+8O;      {CO(OH)CH(OOH)CH(OOH)CH2(OO.)                                                                           2.AHH    }
+  GAH400x = 4C+8H+8O;      {CO(OH)CH(OOH)CH(OOH)CH2(OOH)                                                                           AHHH     }
+  G1A503J = 5C+9H+7O;      {CO(OH)CH(OOH)CH(OOH)CH2CH2(O.)                                                                         1.AHH    }
+  GAH5017 = 5C+9H+N+9O;    {CO(OH)CH(OOH)CH(OOH)CH2CH2(ONO2)                                                                       AHHN     }
+  GAH503E = 5C+8H+7O;      {CO(OH)CH(OOH)CH(OOH)CH2CHO                                                                             AHHD     }
+  G3A500j = 5C+7H+9O;      {CO(OH)CH(OOH)CH(OOH)CH2CO(OO.)                                                                         3.AHH    }
+  GAG500z = 5C+8H+9O;      {CO(OH)CH(OOH)CH(OOH)CH2CO(OOH)                                                                         AGHH     }
+  GPA5016 = 5C+7H+N+11O;   {CO(OH)CH(OOH)CH(OOH)CH2CO(OONO2)                                                                       PAHH     }
+  GAH400w = 4C+6H+7O;      {CO(OH)CH(OOH)CH(OOH)CHO                                                                                AHHD     }
+  GAA400E = 4C+6H+8O;      {CO(OH)CH(OOH)CH(OOH)CO(OH)                                                                             AAHH     }
+  G3A400L = 4C+5H+9O;      {CO(OH)CH(OOH)CH(OOH)CO(OO.)                                                                            3.AHH    }
+  GAG400O = 4C+6H+9O;      {CO(OH)CH(OOH)CH(OOH)CO(OOH)                                                                            AGHH     }
+  GPA400O = 4C+5H+N+11O;   {CO(OH)CH(OOH)CH(OOH)CO(OONO2)                                                                          PAHH     }
+  G1A507L = 5C+7H+8O;      {CO(OH)CH(OOH)CH(OOH)COCH2(O.)                                                                          1.AHH    }
+  GAH503s = 5C+7H+N+10O;   {CO(OH)CH(OOH)CH(OOH)COCH2(ONO2)                                                                        AHHNK    }
+  GAH505X = 5C+8H+9O;      {CO(OH)CH(OOH)CH(OOH)COCH2(OOH)                                                                         AHHHK    }
+  GAH505f = 5C+6H+8O;      {CO(OH)CH(OOH)CH(OOH)COCHO                                                                              AHHDK    }
+  G3A5024 = 5C+5H+10O;     {CO(OH)CH(OOH)CH(OOH)COCO(OO.)                                                                          3.AHH    }
+  GAG501s = 5C+6H+10O;     {CO(OH)CH(OOH)CH(OOH)COCO(OOH)                                                                          AGHHK    }
+  GPA501z = 5C+5H+N+12O;   {CO(OH)CH(OOH)CH(OOH)COCO(OONO2)                                                                        PAHHK    }
+  G1A3007 = 3C+5H+5O;      {CO(OH)CH(OOH)CH2(O.)                                                                                   1.AH     }
+  GAH3003 = 3C+5H+N+7O;    {CO(OH)CH(OOH)CH2(ONO2)                                                                                 AHN      }
+  G2A300A = 3C+5H+6O;      {CO(OH)CH(OOH)CH2(OO.)                                                                                  2.AH     }
+  GAH3008 = 3C+6H+6O;      {CO(OH)CH(OOH)CH2(OOH)                                                                                  AHH      }
+  G1A503R = 5C+8H+N+8O;    {CO(OH)CH(OOH)CH2CH(O.)CH2(ONO2)                                                                        1.AHN    }
+  G1A505z = 5C+9H+7O;      {CO(OH)CH(OOH)CH2CH(O.)CH2(OOH)                                                                         1.AHH    }
+  G1A507G = 5C+7H+6O;      {CO(OH)CH(OOH)CH2CH(O.)CHO                                                                              1.AHD    }
+  G1A508c = 5C+7H+7O;      {CO(OH)CH(OOH)CH2CH(O.)CO(OH)                                                                           1.AAH    }
+  G1A509F = 5C+7H+8O;      {CO(OH)CH(OOH)CH2CH(O.)CO(OOH)                                                                          1.AGH    }
+  G1P509i = 5C+6H+N+10O;   {CO(OH)CH(OOH)CH2CH(O.)CO(OONO2)                                                                        1.PAH    }
+  G1A501Q = 5C+9H+6O;      {CO(OH)CH(OOH)CH2CH(OH)CH2(O.)                                                                          1.AHO    }
+  GAH500D = 5C+9H+N+8O;    {CO(OH)CH(OOH)CH2CH(OH)CH2(ONO2)                                                                        AHNO     }
+  G2A503j = 5C+9H+7O;      {CO(OH)CH(OOH)CH2CH(OH)CH2(OO.)                                                                         2.AHO    }
+  GAH501s = 5C+10H+7O;     {CO(OH)CH(OOH)CH2CH(OH)CH2(OOH)                                                                         AHHO     }
+  GAH501X = 5C+8H+6O;      {CO(OH)CH(OOH)CH2CH(OH)CHO                                                                              AHDO     }
+  G3A500O = 5C+7H+8O;      {CO(OH)CH(OOH)CH2CH(OH)CO(OO.)                                                                          3.AHK    }
+  GAG500L = 5C+8H+8O;      {CO(OH)CH(OOH)CH2CH(OH)CO(OOH)                                                                          AGHO     }
+  GPA500R = 5C+7H+N+10O;   {CO(OH)CH(OOH)CH2CH(OH)CO(OONO2)                                                                        PAHO     }
+  G1A503S = 5C+8H+N+8O;    {CO(OH)CH(OOH)CH2CH(ONO2)CH2(O.)                                                                        1.AHN    }
+  GAH501B = 5C+8H+2N+10O;  {CO(OH)CH(OOH)CH2CH(ONO2)CH2(ONO2)                                                                      AHNN     }
+  G2A504Y = 5C+8H+N+9O;    {CO(OH)CH(OOH)CH2CH(ONO2)CH2(OO.)                                                                       2.AHN    }
+  GAH502w = 5C+9H+N+9O;    {CO(OH)CH(OOH)CH2CH(ONO2)CH2(OOH)                                                                       AHHN     }
+  GAH503u = 5C+7H+N+8O;    {CO(OH)CH(OOH)CH2CH(ONO2)CHO                                                                            AHND     }
+  G3A5015 = 5C+6H+N+10O;   {CO(OH)CH(OOH)CH2CH(ONO2)CO(OO.)                                                                        3.AHN    }
+  GAG5016 = 5C+7H+N+10O;   {CO(OH)CH(OOH)CH2CH(ONO2)CO(OOH)                                                                        AGHN     }
+  GPA5012 = 5C+6H+2N+12O;  {CO(OH)CH(OOH)CH2CH(ONO2)CO(OONO2)                                                                      PAHN     }
+  G2A503T = 5C+8H+N+9O;    {CO(OH)CH(OOH)CH2CH(OO.)CH2(ONO2)                                                                       2.AHN    }
+  G2A506n = 5C+7H+8O;      {CO(OH)CH(OOH)CH2CH(OO.)CO(OH)                                                                          2.AAH    }
+  G2A506m = 5C+7H+9O;      {CO(OH)CH(OOH)CH2CH(OO.)CO(OOH)                                                                         2.AGH    }
+  G2P507R = 5C+6H+N+11O;   {CO(OH)CH(OOH)CH2CH(OO.)CO(OONO2)                                                                       2.PAH    }
+  G1A504R = 5C+9H+7O;      {CO(OH)CH(OOH)CH2CH(OOH)CH2(O.)                                                                         1.AHH    }
+  GAH501Y = 5C+9H+N+9O;    {CO(OH)CH(OOH)CH2CH(OOH)CH2(ONO2)                                                                       AHHN     }
+  GAH503p = 5C+8H+7O;      {CO(OH)CH(OOH)CH2CH(OOH)CHO                                                                             AHHD     }
+  GAA500n = 5C+8H+8O;      {CO(OH)CH(OOH)CH2CH(OOH)CO(OH)                                                                          AAHH     }
+  G3A5012 = 5C+7H+9O;      {CO(OH)CH(OOH)CH2CH(OOH)CO(OO.)                                                                         3.AHH    }
+  GAG501G = 5C+8H+9O;      {CO(OH)CH(OOH)CH2CH(OOH)CO(OOH)                                                                         AGHH     }
+  GPA501K = 5C+7H+N+11O;   {CO(OH)CH(OOH)CH2CH(OOH)CO(OONO2)                                                                       PAHH     }
+  G1A400P = 4C+7H+5O;      {CO(OH)CH(OOH)CH2CH2(O.)                                                                                1.AH     }
+  GAH4002 = 4C+7H+N+7O;    {CO(OH)CH(OOH)CH2CH2(ONO2)                                                                              AHN      }
+  G2A400n = 4C+7H+6O;      {CO(OH)CH(OOH)CH2CH2(OO.)                                                                               2.AH     }
+  GAH400d = 4C+8H+6O;      {CO(OH)CH(OOH)CH2CH2(OOH)                                                                               AHH      }
+  G1A500s = 5C+9H+5O;      {CO(OH)CH(OOH)CH2CH2CH2(O.)                                                                             1.AH     }
+  GAH5007 = 5C+9H+N+7O;    {CO(OH)CH(OOH)CH2CH2CH2(ONO2)                                                                           AHN      }
+  GAH501N = 5C+8H+5O;      {CO(OH)CH(OOH)CH2CH2CHO                                                                                 AHD      }
+  G3A500K = 5C+7H+7O;      {CO(OH)CH(OOH)CH2CH2CO(OO.)                                                                             3.AHK    }
+  GAG500Q = 5C+8H+7O;      {CO(OH)CH(OOH)CH2CH2CO(OOH)                                                                             AGH      }
+  GPA500M = 5C+7H+N+9O;    {CO(OH)CH(OOH)CH2CH2CO(OONO2)                                                                           PAH      }
+  GAH400Q = 4C+6H+5O;      {CO(OH)CH(OOH)CH2CHO                                                                                    AHD      }
+  G3A4008 = 4C+5H+7O;      {CO(OH)CH(OOH)CH2CO(OO.)                                                                                3.AHK    }
+  GAG400A = 4C+6H+7O;      {CO(OH)CH(OOH)CH2CO(OOH)                                                                                AGH      }
+  GPA400B = 4C+5H+N+9O;    {CO(OH)CH(OOH)CH2CO(OONO2)                                                                              PAH      }
+  G1A503m = 5C+7H+6O;      {CO(OH)CH(OOH)CH2COCH2(O.)                                                                              1.AHK    }
+  GAH501L = 5C+7H+N+8O;    {CO(OH)CH(OOH)CH2COCH2(ONO2)                                                                            AHNK     }
+  GAH5024 = 5C+8H+7O;      {CO(OH)CH(OOH)CH2COCH2(OOH)                                                                             AHHK     }
+  GAH503x = 5C+6H+6O;      {CO(OH)CH(OOH)CH2COCHO                                                                                  AHDK     }
+  G3A501l = 5C+5H+8O;      {CO(OH)CH(OOH)CH2COCO(OO.)                                                                              3.AHK    }
+  GAG5018 = 5C+6H+8O;      {CO(OH)CH(OOH)CH2COCO(OOH)                                                                              AGHK     }
+  GPA501L = 5C+5H+N+10O;   {CO(OH)CH(OOH)CH2COCO(OONO2)                                                                            PAHK     }
+  GAH3007 = 3C+4H+5O;      {CO(OH)CH(OOH)CHO                                                                                       AHD      }
+  GAA3003 = 3C+4H+6O;      {CO(OH)CH(OOH)CO(OH)                                                                                    AAH      }
+  G3A3003 = 3C+3H+7O;      {CO(OH)CH(OOH)CO(OO.)                                                                                   3.AHK    }
+  GAG3003 = 3C+4H+7O;      {CO(OH)CH(OOH)CO(OOH)                                                                                   AGH      }
+  GPA3003 = 3C+3H+N+9O;    {CO(OH)CH(OOH)CO(OONO2)                                                                                 PAH      }
+  G1A506d = 5C+6H+N+9O;    {CO(OH)CH(OOH)COCH(O.)CH2(ONO2)                                                                         1.AHN    }
+  G1A509n = 5C+7H+8O;      {CO(OH)CH(OOH)COCH(O.)CH2(OOH)                                                                          1.AHH    }
+  G1A509E = 5C+5H+7O;      {CO(OH)CH(OOH)COCH(O.)CHO                                                                               1.AHD    }
+  G1A509m = 5C+5H+8O;      {CO(OH)CH(OOH)COCH(O.)CO(OH)                                                                            1.AAH    }
+  G1A509l = 5C+5H+9O;      {CO(OH)CH(OOH)COCH(O.)CO(OOH)                                                                           1.AGH    }
+  G1P50Az = 5C+4H+N+11O;   {CO(OH)CH(OOH)COCH(O.)CO(OONO2)                                                                         1.PAH    }
+  G1A504Z = 5C+7H+7O;      {CO(OH)CH(OOH)COCH(OH)CH2(O.)                                                                           1.AHK    }
+  GAH501o = 5C+7H+N+9O;    {CO(OH)CH(OOH)COCH(OH)CH2(ONO2)                                                                         AHNKO    }
+  GAH504b = 5C+8H+8O;      {CO(OH)CH(OOH)COCH(OH)CH2(OOH)                                                                          AHHKO    }
+  GAH504A = 5C+6H+7O;      {CO(OH)CH(OOH)COCH(OH)CHO                                                                               AHDKO    }
+  G3A501B = 5C+5H+9O;      {CO(OH)CH(OOH)COCH(OH)CO(OO.)                                                                           3.AHK    }
+  GAG501M = 5C+6H+9O;      {CO(OH)CH(OOH)COCH(OH)CO(OOH)                                                                           AGHKO    }
+  GPA500u = 5C+5H+N+11O;   {CO(OH)CH(OOH)COCH(OH)CO(OONO2)                                                                         PAHKO    }
+  G1A506e = 5C+6H+N+9O;    {CO(OH)CH(OOH)COCH(ONO2)CH2(O.)                                                                         1.AHN    }
+  GAH503T = 5C+6H+2N+11O;  {CO(OH)CH(OOH)COCH(ONO2)CH2(ONO2)                                                                       AHNNK    }
+  G2A507F = 5C+6H+N+10O;   {CO(OH)CH(OOH)COCH(ONO2)CH2(OO.)                                                                        2.AHN    }
+  GAH505d = 5C+7H+N+10O;   {CO(OH)CH(OOH)COCH(ONO2)CH2(OOH)                                                                        AHHNK    }
+  GAH505I = 5C+5H+N+9O;    {CO(OH)CH(OOH)COCH(ONO2)CHO                                                                             AHNDK    }
+  G3A501k = 5C+4H+N+11O;   {CO(OH)CH(OOH)COCH(ONO2)CO(OO.)                                                                         3.AHN    }
+  GAG501h = 5C+5H+N+11O;   {CO(OH)CH(OOH)COCH(ONO2)CO(OOH)                                                                         AGHNK    }
+  GPA501l = 5C+4H+2N+13O;  {CO(OH)CH(OOH)COCH(ONO2)CO(OONO2)                                                                       PAHNK    }
+  G2A505N = 5C+6H+N+10O;   {CO(OH)CH(OOH)COCH(OO.)CH2(ONO2)                                                                        2.AHN    }
+  G2A507c = 5C+5H+9O;      {CO(OH)CH(OOH)COCH(OO.)CO(OH)                                                                           2.AAH    }
+  G2A507b = 5C+5H+10O;     {CO(OH)CH(OOH)COCH(OO.)CO(OOH)                                                                          2.AGH    }
+  G2P508L = 5C+4H+N+12O;   {CO(OH)CH(OOH)COCH(OO.)CO(OONO2)                                                                        2.PAH    }
+  G1A507c = 5C+7H+8O;      {CO(OH)CH(OOH)COCH(OOH)CH2(O.)                                                                          1.AHH    }
+  GAH504E = 5C+7H+N+10O;   {CO(OH)CH(OOH)COCH(OOH)CH2(ONO2)                                                                        AHHNK    }
+  GAH505M = 5C+6H+8O;      {CO(OH)CH(OOH)COCH(OOH)CHO                                                                              AHHDK    }
+  GAA501E = 5C+6H+9O;      {CO(OH)CH(OOH)COCH(OOH)CO(OH)                                                                           AAHHK    }
+  G3A501p = 5C+5H+10O;     {CO(OH)CH(OOH)COCH(OOH)CO(OO.)                                                                          3.AHH    }
+  GAG5023 = 5C+6H+10O;     {CO(OH)CH(OOH)COCH(OOH)CO(OOH)                                                                          AGHHK    }
+  GPA5022 = 5C+5H+N+12O;   {CO(OH)CH(OOH)COCH(OOH)CO(OONO2)                                                                        PAHHK    }
+  G1A4011 = 4C+5H+6O;      {CO(OH)CH(OOH)COCH2(O.)                                                                                 1.AHK    }
+  GAH400P = 4C+5H+N+8O;    {CO(OH)CH(OOH)COCH2(ONO2)                                                                               AHNK     }
+  G2A400z = 4C+5H+7O;      {CO(OH)CH(OOH)COCH2(OO.)                                                                                2.AHK    }
+  GAH400q = 4C+6H+7O;      {CO(OH)CH(OOH)COCH2(OOH)                                                                                AHHK     }
+  G1A5033 = 5C+7H+6O;      {CO(OH)CH(OOH)COCH2CH2(O.)                                                                              1.AHK    }
+  GAH5013 = 5C+7H+N+8O;    {CO(OH)CH(OOH)COCH2CH2(ONO2)                                                                            AHNK     }
+  G2A505E = 5C+7H+7O;      {CO(OH)CH(OOH)COCH2CH2(OO.)                                                                             2.AHK    }
+  GAH5044 = 5C+8H+7O;      {CO(OH)CH(OOH)COCH2CH2(OOH)                                                                             AHHK     }
+  GAH502U = 5C+6H+6O;      {CO(OH)CH(OOH)COCH2CHO                                                                                  AHDK     }
+  G3A500a = 5C+5H+8O;      {CO(OH)CH(OOH)COCH2CO(OO.)                                                                              3.AHK    }
+  GAG500c = 5C+6H+8O;      {CO(OH)CH(OOH)COCH2CO(OOH)                                                                              AGHK     }
+  GPA500l = 5C+5H+N+10O;   {CO(OH)CH(OOH)COCH2CO(OONO2)                                                                            PAHK     }
+  GAH400u = 4C+4H+6O;      {CO(OH)CH(OOH)COCHO                                                                                     AHDK     }
+  G3A400O = 4C+3H+8O;      {CO(OH)CH(OOH)COCO(OO.)                                                                                 3.AHK    }
+  GAG400M = 4C+4H+8O;      {CO(OH)CH(OOH)COCO(OOH)                                                                                 AGHK     }
+  GPA400L = 4C+3H+N+10O;   {CO(OH)CH(OOH)COCO(OONO2)                                                                               PAHK     }
+  G1A506l = 5C+5H+7O;      {CO(OH)CH(OOH)COCOCH2(O.)                                                                               1.AHK    }
+  GAH503X = 5C+5H+N+9O;    {CO(OH)CH(OOH)COCOCH2(ONO2)                                                                             AHNKK    }
+  G2A5079 = 5C+5H+8O;      {CO(OH)CH(OOH)COCOCH2(OO.)                                                                              2.AHK    }
+  GAH505Z = 5C+6H+8O;      {CO(OH)CH(OOH)COCOCH2(OOH)                                                                              AHHKK    }
+  GAH505P = 5C+4H+7O;      {CO(OH)CH(OOH)COCOCHO                                                                                   AHDKK    }
+  G3A501z = 5C+3H+9O;      {CO(OH)CH(OOH)COCOCO(OO.)                                                                               3.AHK    }
+  GAG501i = 5C+4H+9O;      {CO(OH)CH(OOH)COCOCO(OOH)                                                                               AGHKK    }
+  GPA501m = 5C+3H+N+11O;   {CO(OH)CH(OOH)COCOCO(OONO2)                                                                             PAHKK    }
+  G1A2000 = 2C+3H+3O;      {CO(OH)CH2(O.)                                                                                          1.A      }
+  GAN2000 = 2C+3H+N+5O;    {CO(OH)CH2(ONO2)                                                                                        AN       }
+  G2A2000 = 2C+3H+4O;      {CO(OH)CH2(OO.)                                                                                         2.A      }
+  GAH2000 = 2C+4H+4O;      {CO(OH)CH2(OOH)                                                                                         AH       }
+  G1A500C = 5C+8H+N+7O;    {CO(OH)CH2CH(O.)CH(OH)CH2(ONO2)                                                                         1.ANO    }
+  G1A501a = 5C+9H+6O;      {CO(OH)CH2CH(O.)CH(OH)CH2(OOH)                                                                          1.AHO    }
+  G1A501H = 5C+7H+5O;      {CO(OH)CH2CH(O.)CH(OH)CHO                                                                               1.ADO    }
+  G1A503B = 5C+7H+7O;      {CO(OH)CH2CH(O.)CH(OH)CO(OOH)                                                                           1.AGO    }
+  G1P504E = 5C+6H+N+9O;    {CO(OH)CH2CH(O.)CH(OH)CO(OONO2)                                                                         1.PAO    }
+  G1A5012 = 5C+7H+2N+9O;   {CO(OH)CH2CH(O.)CH(ONO2)CH2(ONO2)                                                                       1.ANN    }
+  G1A505s = 5C+8H+N+8O;    {CO(OH)CH2CH(O.)CH(ONO2)CH2(OOH)                                                                        1.AHN    }
+  G1A5069 = 5C+6H+N+7O;    {CO(OH)CH2CH(O.)CH(ONO2)CHO                                                                             1.AND    }
+  G1A506o = 5C+6H+N+9O;    {CO(OH)CH2CH(O.)CH(ONO2)CO(OOH)                                                                         1.AGN    }
+  G1P506K = 5C+5H+2N+11O;  {CO(OH)CH2CH(O.)CH(ONO2)CO(OONO2)                                                                       1.PAN    }
+  G1A5015 = 5C+8H+N+8O;    {CO(OH)CH2CH(O.)CH(OOH)CH2(ONO2)                                                                        1.AHN    }
+  G1A505u = 5C+9H+7O;      {CO(OH)CH2CH(O.)CH(OOH)CH2(OOH)                                                                         1.AHH    }
+  G1A5047 = 5C+7H+6O;      {CO(OH)CH2CH(O.)CH(OOH)CHO                                                                              1.AHD    }
+  G1A508r = 5C+7H+8O;      {CO(OH)CH2CH(O.)CH(OOH)CO(OOH)                                                                          1.AGH    }
+  G1P508R = 5C+6H+N+10O;   {CO(OH)CH2CH(O.)CH(OOH)CO(OONO2)                                                                        1.PAH    }
+  G1A4003 = 4C+6H+N+6O;    {CO(OH)CH2CH(O.)CH2(ONO2)                                                                               1.AN     }
+  G1A400Z = 4C+7H+5O;      {CO(OH)CH2CH(O.)CH2(OOH)                                                                                1.AH     }
+  G1A5007 = 5C+8H+N+6O;    {CO(OH)CH2CH(O.)CH2CH2(ONO2)                                                                            1.AN     }
+  G1A501f = 5C+9H+5O;      {CO(OH)CH2CH(O.)CH2CH2(OOH)                                                                             1.AH     }
+  G1A501A = 5C+7H+4O;      {CO(OH)CH2CH(O.)CH2CHO                                                                                  1.AD     }
+  G1A503x = 5C+7H+5O;      {CO(OH)CH2CH(O.)CH2CO(OH)                                                                               1.AA     }
+  G1A503u = 5C+7H+6O;      {CO(OH)CH2CH(O.)CH2CO(OOH)                                                                              1.AG     }
+  G1P503O = 5C+6H+N+8O;    {CO(OH)CH2CH(O.)CH2CO(OONO2)                                                                            1.PA     }
+  G1A400j = 4C+5H+4O;      {CO(OH)CH2CH(O.)CHO                                                                                     1.AD     }
+  G1A400u = 4C+5H+5O;      {CO(OH)CH2CH(O.)CO(OH)                                                                                  1.AA     }
+  G1A400t = 4C+5H+6O;      {CO(OH)CH2CH(O.)CO(OOH)                                                                                 1.AG     }
+  G1P400u = 4C+4H+N+8O;    {CO(OH)CH2CH(O.)CO(OONO2)                                                                               1.PA     }
+  G1A5019 = 5C+6H+N+7O;    {CO(OH)CH2CH(O.)COCH2(ONO2)                                                                             1.ANK    }
+  G1A501Z = 5C+7H+6O;      {CO(OH)CH2CH(O.)COCH2(OOH)                                                                              1.AHK    }
+  G1A5049 = 5C+5H+5O;      {CO(OH)CH2CH(O.)COCHO                                                                                   1.ADK    }
+  G1A5074 = 5C+5H+6O;      {CO(OH)CH2CH(O.)COCO(OH)                                                                                1.AAK    }
+  G1A506q = 5C+5H+7O;      {CO(OH)CH2CH(O.)COCO(OOH)                                                                               1.AGK    }
+  G1P507X = 5C+4H+N+9O;    {CO(OH)CH2CH(O.)COCO(OONO2)                                                                             1.PAK    }
+  G1A503a = 5C+8H+N+7O;    {CO(OH)CH2CH(OH)CH(O.)CH2(ONO2)                                                                         1.ANO    }
+  G1A505w = 5C+9H+6O;      {CO(OH)CH2CH(OH)CH(O.)CH2(OOH)                                                                          1.AHO    }
+  G1A506X = 5C+7H+5O;      {CO(OH)CH2CH(OH)CH(O.)CHO                                                                               1.ADO    }
+  G1A506W = 5C+7H+6O;      {CO(OH)CH2CH(OH)CH(O.)CO(OH)                                                                            1.AAO    }
+  G1A506U = 5C+7H+7O;      {CO(OH)CH2CH(OH)CH(O.)CO(OOH)                                                                           1.AGO    }
+  G1P5072 = 5C+6H+N+9O;    {CO(OH)CH2CH(OH)CH(O.)CO(OONO2)                                                                         1.PAO    }
+  G1A501O = 5C+9H+5O;      {CO(OH)CH2CH(OH)CH(OH)CH2(O.)                                                                           1.AOO    }
+  GAN500K = 5C+9H+N+7O;    {CO(OH)CH2CH(OH)CH(OH)CH2(ONO2)                                                                         ANOO     }
+  G2A501N = 5C+9H+6O;      {CO(OH)CH2CH(OH)CH(OH)CH2(OO.)                                                                          2.AOO    }
+  GAH500I = 5C+10H+6O;     {CO(OH)CH2CH(OH)CH(OH)CH2(OOH)                                                                          AHOO     }
+  GAD5009 = 5C+8H+5O;      {CO(OH)CH2CH(OH)CH(OH)CHO                                                                               ADOO     }
+  GAA500B = 5C+8H+6O;      {CO(OH)CH2CH(OH)CH(OH)CO(OH)                                                                            AAOO     }
+  G3A500G = 5C+7H+7O;      {CO(OH)CH2CH(OH)CH(OH)CO(OO.)                                                                           3.AKO    }
+  GAG5006 = 5C+8H+7O;      {CO(OH)CH2CH(OH)CH(OH)CO(OOH)                                                                           AGOO     }
+  GPA5007 = 5C+7H+N+9O;    {CO(OH)CH2CH(OH)CH(OH)CO(OONO2)                                                                         PAOO     }
+  G1A503b = 5C+8H+N+7O;    {CO(OH)CH2CH(OH)CH(ONO2)CH2(O.)                                                                         1.ANO    }
+  GAN501A = 5C+8H+2N+9O;   {CO(OH)CH2CH(OH)CH(ONO2)CH2(ONO2)                                                                       ANNO     }
+  G2A504W = 5C+8H+N+8O;    {CO(OH)CH2CH(OH)CH(ONO2)CH2(OO.)                                                                        2.ANO    }
+  GAH502t = 5C+9H+N+8O;    {CO(OH)CH2CH(OH)CH(ONO2)CH2(OOH)                                                                        AHNO     }
+  GAN502R = 5C+7H+N+7O;    {CO(OH)CH2CH(OH)CH(ONO2)CHO                                                                             ANDO     }
+  GAA500c = 5C+7H+N+8O;    {CO(OH)CH2CH(OH)CH(ONO2)CO(OH)                                                                          AANO     }
+  G3A500p = 5C+6H+N+9O;    {CO(OH)CH2CH(OH)CH(ONO2)CO(OO.)                                                                         3.ANK    }
+  GAG5012 = 5C+7H+N+9O;    {CO(OH)CH2CH(OH)CH(ONO2)CO(OOH)                                                                         AGNO     }
+  GPA5015 = 5C+6H+2N+11O;  {CO(OH)CH2CH(OH)CH(ONO2)CO(OONO2)                                                                       PANO     }
+  G2A502v = 5C+8H+N+8O;    {CO(OH)CH2CH(OH)CH(OO.)CH2(ONO2)                                                                        2.ANO    }
+  G2A504m = 5C+7H+7O;      {CO(OH)CH2CH(OH)CH(OO.)CO(OH)                                                                           2.AAO    }
+  G2A504l = 5C+7H+8O;      {CO(OH)CH2CH(OH)CH(OO.)CO(OOH)                                                                          2.AGO    }
+  G2P5056 = 5C+6H+N+10O;   {CO(OH)CH2CH(OH)CH(OO.)CO(OONO2)                                                                        2.PAO    }
+  G1A503j = 5C+9H+6O;      {CO(OH)CH2CH(OH)CH(OOH)CH2(O.)                                                                          1.AHO    }
+  GAH501F = 5C+9H+N+8O;    {CO(OH)CH2CH(OH)CH(OOH)CH2(ONO2)                                                                        AHNO     }
+  GAH503w = 5C+8H+6O;      {CO(OH)CH2CH(OH)CH(OOH)CHO                                                                              AHDO     }
+  GAA500g = 5C+8H+7O;      {CO(OH)CH2CH(OH)CH(OOH)CO(OH)                                                                           AAHO     }
+  G3A5017 = 5C+7H+8O;      {CO(OH)CH2CH(OH)CH(OOH)CO(OO.)                                                                          3.AHK    }
+  GAG5013 = 5C+8H+8O;      {CO(OH)CH2CH(OH)CH(OOH)CO(OOH)                                                                          AGHO     }
+  GPA501C = 5C+7H+N+10O;   {CO(OH)CH2CH(OH)CH(OOH)CO(OONO2)                                                                        PAHO     }
+  G1A4004 = 4C+7H+4O;      {CO(OH)CH2CH(OH)CH2(O.)                                                                                 1.AO     }
+  GAN4001 = 4C+7H+N+6O;    {CO(OH)CH2CH(OH)CH2(ONO2)                                                                               ANO      }
+  G2A400X = 4C+7H+5O;      {CO(OH)CH2CH(OH)CH2(OO.)                                                                                2.AO     }
+  GAH4009 = 4C+8H+5O;      {CO(OH)CH2CH(OH)CH2(OOH)                                                                                AHO      }
+  G1A500l = 5C+9H+4O;      {CO(OH)CH2CH(OH)CH2CH2(O.)                                                                              1.AO     }
+  GAN5008 = 5C+9H+N+6O;    {CO(OH)CH2CH(OH)CH2CH2(ONO2)                                                                            ANO      }
+  GAD5007 = 5C+8H+4O;      {CO(OH)CH2CH(OH)CH2CHO                                                                                  ADO      }
+  GAA500A = 5C+8H+5O;      {CO(OH)CH2CH(OH)CH2CO(OH)                                                                               AAO      }
+  G3A500E = 5C+7H+6O;      {CO(OH)CH2CH(OH)CH2CO(OO.)                                                                              3.AKO    }
+  GAG500F = 5C+8H+6O;      {CO(OH)CH2CH(OH)CH2CO(OOH)                                                                              AGO      }
+  GPA500H = 5C+7H+N+8O;    {CO(OH)CH2CH(OH)CH2CO(OONO2)                                                                            PAO      }
+  GAD4001 = 4C+6H+4O;      {CO(OH)CH2CH(OH)CHO                                                                                     ADO      }
+  GAA4003 = 4C+6H+5O;      {CO(OH)CH2CH(OH)CO(OH)                                                                                  AAO      }
+  G3A4004 = 4C+5H+6O;      {CO(OH)CH2CH(OH)CO(OO.)                                                                                 3.AKO    }
+  GAG4005 = 4C+6H+6O;      {CO(OH)CH2CH(OH)CO(OOH)                                                                                 AGO      }
+  GPA4005 = 4C+5H+N+8O;    {CO(OH)CH2CH(OH)CO(OONO2)                                                                               PAO      }
+  G1A503r = 5C+7H+5O;      {CO(OH)CH2CH(OH)COCH2(O.)                                                                               1.AKO    }
+  GAN501G = 5C+7H+N+7O;    {CO(OH)CH2CH(OH)COCH2(ONO2)                                                                             ANKO     }
+  G2A503p = 5C+7H+6O;      {CO(OH)CH2CH(OH)COCH2(OO.)                                                                              2.AKO    }
+  GAH5021 = 5C+8H+6O;      {CO(OH)CH2CH(OH)COCH2(OOH)                                                                              AHKO     }
+  GAD500L = 5C+6H+5O;      {CO(OH)CH2CH(OH)COCHO                                                                                   ADKO     }
+  GAA500f = 5C+6H+6O;      {CO(OH)CH2CH(OH)COCO(OH)                                                                                AAKO     }
+  G3A501N = 5C+5H+7O;      {CO(OH)CH2CH(OH)COCO(OO.)                                                                               3.AKK    }
+  GAG500a = 5C+6H+7O;      {CO(OH)CH2CH(OH)COCO(OOH)                                                                               AGKO     }
+  GPA500j = 5C+5H+N+9O;    {CO(OH)CH2CH(OH)COCO(OONO2)                                                                             PAKO     }
+  G1A500i = 5C+7H+2N+9O;   {CO(OH)CH2CH(ONO2)CH(O.)CH2(ONO2)                                                                       1.ANN    }
+  G1A505t = 5C+8H+N+8O;    {CO(OH)CH2CH(ONO2)CH(O.)CH2(OOH)                                                                        1.AHN    }
+  G1A506A = 5C+6H+N+7O;    {CO(OH)CH2CH(ONO2)CH(O.)CHO                                                                             1.AND    }
+  G1A504p = 5C+6H+N+8O;    {CO(OH)CH2CH(ONO2)CH(O.)CO(OH)                                                                          1.AAN    }
+  G1A508q = 5C+6H+N+9O;    {CO(OH)CH2CH(ONO2)CH(O.)CO(OOH)                                                                         1.AGN    }
+  G1P504w = 5C+5H+2N+11O;  {CO(OH)CH2CH(ONO2)CH(O.)CO(OONO2)                                                                       1.PAN    }
+  G1A500d = 5C+8H+N+7O;    {CO(OH)CH2CH(ONO2)CH(OH)CH2(O.)                                                                         1.ANO    }
+  GAN500H = 5C+8H+2N+9O;   {CO(OH)CH2CH(ONO2)CH(OH)CH2(ONO2)                                                                       ANNO     }
+  G2A500c = 5C+8H+N+8O;    {CO(OH)CH2CH(ONO2)CH(OH)CH2(OO.)                                                                        2.ANO    }
+  GAH500G = 5C+9H+N+8O;    {CO(OH)CH2CH(ONO2)CH(OH)CH2(OOH)                                                                        AHNO     }
+  GAN500o = 5C+7H+N+7O;    {CO(OH)CH2CH(ONO2)CH(OH)CHO                                                                             ANDO     }
+  G3A5009 = 5C+6H+N+9O;    {CO(OH)CH2CH(ONO2)CH(OH)CO(OO.)                                                                         3.ANK    }
+  GAG500B = 5C+7H+N+9O;    {CO(OH)CH2CH(ONO2)CH(OH)CO(OOH)                                                                         AGNO     }
+  GPA5006 = 5C+6H+2N+11O;  {CO(OH)CH2CH(ONO2)CH(OH)CO(OONO2)                                                                       PANO     }
+  G1A502l = 5C+7H+2N+9O;   {CO(OH)CH2CH(ONO2)CH(ONO2)CH2(O.)                                                                       1.ANN    }
+  GAN500u = 5C+7H+3N+11O;  {CO(OH)CH2CH(ONO2)CH(ONO2)CH2(ONO2)                                                                     ANNN     }
+  G2A504P = 5C+7H+2N+10O;  {CO(OH)CH2CH(ONO2)CH(ONO2)CH2(OO.)                                                                      2.ANN    }
+  GAH502q = 5C+8H+2N+10O;  {CO(OH)CH2CH(ONO2)CH(ONO2)CH2(OOH)                                                                      AHNN     }
+  GAN502F = 5C+6H+2N+9O;   {CO(OH)CH2CH(ONO2)CH(ONO2)CHO                                                                           ANND     }
+  GAA500L = 5C+6H+2N+10O;  {CO(OH)CH2CH(ONO2)CH(ONO2)CO(OH)                                                                        AANN     }
+  G3A500e = 5C+5H+2N+11O;  {CO(OH)CH2CH(ONO2)CH(ONO2)CO(OO.)                                                                       3.ANN    }
+  GAG500t = 5C+6H+2N+11O;  {CO(OH)CH2CH(ONO2)CH(ONO2)CO(OOH)                                                                       AGNN     }
+  GPA500a = 5C+5H+3N+13O;  {CO(OH)CH2CH(ONO2)CH(ONO2)CO(OONO2)                                                                     PANN     }
+  G2A500h = 5C+7H+2N+10O;  {CO(OH)CH2CH(ONO2)CH(OO.)CH2(ONO2)                                                                      2.ANN    }
+  G2A504Q = 5C+8H+N+9O;    {CO(OH)CH2CH(ONO2)CH(OO.)CH2(OOH)                                                                       2.AHN    }
+  G2A504e = 5C+6H+N+8O;    {CO(OH)CH2CH(ONO2)CH(OO.)CHO                                                                            2.AND    }
+  G2A503t = 5C+6H+N+9O;    {CO(OH)CH2CH(ONO2)CH(OO.)CO(OH)                                                                         2.AAN    }
+  G2A506I = 5C+6H+N+10O;   {CO(OH)CH2CH(ONO2)CH(OO.)CO(OOH)                                                                        2.AGN    }
+  G2P503y = 5C+5H+2N+12O;  {CO(OH)CH2CH(ONO2)CH(OO.)CO(OONO2)                                                                      2.PAN    }
+  G1A502o = 5C+8H+N+8O;    {CO(OH)CH2CH(ONO2)CH(OOH)CH2(O.)                                                                        1.AHN    }
+  GAH500s = 5C+8H+2N+10O;  {CO(OH)CH2CH(ONO2)CH(OOH)CH2(ONO2)                                                                      AHNN     }
+  G2A504R = 5C+8H+N+9O;    {CO(OH)CH2CH(ONO2)CH(OOH)CH2(OO.)                                                                       2.AHN    }
+  GAH502r = 5C+9H+N+9O;    {CO(OH)CH2CH(ONO2)CH(OOH)CH2(OOH)                                                                       AHHN     }
+  GAH5039 = 5C+7H+N+8O;    {CO(OH)CH2CH(ONO2)CH(OOH)CHO                                                                            AHND     }
+  GAA500M = 5C+7H+N+9O;    {CO(OH)CH2CH(ONO2)CH(OOH)CO(OH)                                                                         AAHN     }
+  G3A500h = 5C+6H+N+10O;   {CO(OH)CH2CH(ONO2)CH(OOH)CO(OO.)                                                                        3.AHN    }
+  GAG500u = 5C+7H+N+10O;   {CO(OH)CH2CH(ONO2)CH(OOH)CO(OOH)                                                                        AGHN     }
+  GPA500b = 5C+6H+2N+12O;  {CO(OH)CH2CH(ONO2)CH(OOH)CO(OONO2)                                                                      PAHN     }
+  G1A400B = 4C+6H+N+6O;    {CO(OH)CH2CH(ONO2)CH2(O.)                                                                               1.AN     }
+  GAN4007 = 4C+6H+2N+8O;   {CO(OH)CH2CH(ONO2)CH2(ONO2)                                                                             ANN      }
+  G2A400Y = 4C+6H+N+7O;    {CO(OH)CH2CH(ONO2)CH2(OO.)                                                                              2.AN     }
+  GAH400L = 4C+7H+N+7O;    {CO(OH)CH2CH(ONO2)CH2(OOH)                                                                              AHN      }
+  G1A500F = 5C+8H+N+6O;    {CO(OH)CH2CH(ONO2)CH2CH2(O.)                                                                            1.AN     }
+  GAN5007 = 5C+8H+2N+8O;   {CO(OH)CH2CH(ONO2)CH2CH2(ONO2)                                                                          ANN      }
+  G2A500E = 5C+8H+N+7O;    {CO(OH)CH2CH(ONO2)CH2CH2(OO.)                                                                           2.AN     }
+  GAH500L = 5C+9H+N+7O;    {CO(OH)CH2CH(ONO2)CH2CH2(OOH)                                                                           AHN      }
+  GAN500Q = 5C+7H+N+6O;    {CO(OH)CH2CH(ONO2)CH2CHO                                                                                AND      }
+  GAA5003 = 5C+7H+N+7O;    {CO(OH)CH2CH(ONO2)CH2CO(OH)                                                                             AAN      }
+  G3A5004 = 5C+6H+N+8O;    {CO(OH)CH2CH(ONO2)CH2CO(OO.)                                                                            3.ANK    }
+  GAG5004 = 5C+7H+N+8O;    {CO(OH)CH2CH(ONO2)CH2CO(OOH)                                                                            AGN      }
+  GPA5004 = 5C+6H+2N+10O;  {CO(OH)CH2CH(ONO2)CH2CO(OONO2)                                                                          PAN      }
+  GAN400J = 4C+5H+N+6O;    {CO(OH)CH2CH(ONO2)CHO                                                                                   AND      }
+  GAA4001 = 4C+5H+N+7O;    {CO(OH)CH2CH(ONO2)CO(OH)                                                                                AAN      }
+  G3A4001 = 4C+4H+N+8O;    {CO(OH)CH2CH(ONO2)CO(OO.)                                                                               3.ANK    }
+  GAG4001 = 4C+5H+N+8O;    {CO(OH)CH2CH(ONO2)CO(OOH)                                                                               AGN      }
+  GPA4001 = 4C+4H+2N+10O;  {CO(OH)CH2CH(ONO2)CO(OONO2)                                                                             PAN      }
+  G1A501k = 5C+6H+N+7O;    {CO(OH)CH2CH(ONO2)COCH2(O.)                                                                             1.ANK    }
+  GAN500v = 5C+6H+2N+9O;   {CO(OH)CH2CH(ONO2)COCH2(ONO2)                                                                           ANNK     }
+  G2A501T = 5C+6H+N+8O;    {CO(OH)CH2CH(ONO2)COCH2(OO.)                                                                            2.ANK    }
+  GAH501y = 5C+7H+N+8O;    {CO(OH)CH2CH(ONO2)COCH2(OOH)                                                                            AHNK     }
+  GAN501e = 5C+5H+N+7O;    {CO(OH)CH2CH(ONO2)COCHO                                                                                 ANDK     }
+  GAA500N = 5C+5H+N+8O;    {CO(OH)CH2CH(ONO2)COCO(OH)                                                                              AANK     }
+  G3A501H = 5C+4H+N+9O;    {CO(OH)CH2CH(ONO2)COCO(OO.)                                                                             3.ANK    }
+  GAG500q = 5C+5H+N+9O;    {CO(OH)CH2CH(ONO2)COCO(OOH)                                                                             AGNK     }
+  GPA500c = 5C+4H+2N+11O;  {CO(OH)CH2CH(ONO2)COCO(OONO2)                                                                           PANK     }
+  G2A500A = 5C+8H+N+8O;    {CO(OH)CH2CH(OO.)CH(OH)CH2(ONO2)                                                                        2.ANO    }
+  G2A5018 = 5C+7H+6O;      {CO(OH)CH2CH(OO.)CH(OH)CHO                                                                              2.ADO    }
+  G2A502g = 5C+7H+8O;      {CO(OH)CH2CH(OO.)CH(OH)CO(OOH)                                                                          2.AGO    }
+  G2P503K = 5C+6H+N+10O;   {CO(OH)CH2CH(OO.)CH(OH)CO(OONO2)                                                                        2.PAO    }
+  G2A500u = 5C+7H+2N+10O;  {CO(OH)CH2CH(OO.)CH(ONO2)CH2(ONO2)                                                                      2.ANN    }
+  G2A504S = 5C+8H+N+9O;    {CO(OH)CH2CH(OO.)CH(ONO2)CH2(OOH)                                                                       2.AHN    }
+  G2A504j = 5C+6H+N+8O;    {CO(OH)CH2CH(OO.)CH(ONO2)CHO                                                                            2.AND    }
+  G2A504r = 5C+6H+N+10O;   {CO(OH)CH2CH(OO.)CH(ONO2)CO(OOH)                                                                        2.AGN    }
+  G2P504g = 5C+5H+2N+12O;  {CO(OH)CH2CH(OO.)CH(ONO2)CO(OONO2)                                                                      2.PAN    }
+  G2A500w = 5C+8H+N+9O;    {CO(OH)CH2CH(OO.)CH(OOH)CH2(ONO2)                                                                       2.AHN    }
+  G2A503G = 5C+7H+7O;      {CO(OH)CH2CH(OO.)CH(OOH)CHO                                                                             2.AHD    }
+  G2A4002 = 4C+6H+N+7O;    {CO(OH)CH2CH(OO.)CH2(ONO2)                                                                              2.AN     }
+  G2A400R = 4C+7H+6O;      {CO(OH)CH2CH(OO.)CH2(OOH)                                                                               2.AH     }
+  G2A5006 = 5C+8H+N+7O;    {CO(OH)CH2CH(OO.)CH2CH2(ONO2)                                                                           2.AN     }
+  G2A5011 = 5C+7H+5O;      {CO(OH)CH2CH(OO.)CH2CHO                                                                                 2.AD     }
+  G2A5037 = 5C+7H+6O;      {CO(OH)CH2CH(OO.)CH2CO(OH)                                                                              2.AA     }
+  G2A5034 = 5C+7H+7O;      {CO(OH)CH2CH(OO.)CH2CO(OOH)                                                                             2.AG     }
+  G2P502m = 5C+6H+N+9O;    {CO(OH)CH2CH(OO.)CH2CO(OONO2)                                                                           2.PA     }
+  G2A400p = 4C+5H+5O;      {CO(OH)CH2CH(OO.)CHO                                                                                    2.AD     }
+  G2A400m = 4C+5H+6O;      {CO(OH)CH2CH(OO.)CO(OH)                                                                                 2.AA     }
+  G2A400l = 4C+5H+7O;      {CO(OH)CH2CH(OO.)CO(OOH)                                                                                2.AG     }
+  G2P400k = 4C+4H+N+9O;    {CO(OH)CH2CH(OO.)CO(OONO2)                                                                              2.PA     }
+  G2A500z = 5C+6H+N+8O;    {CO(OH)CH2CH(OO.)COCH2(ONO2)                                                                            2.ANK    }
+  G2A501L = 5C+7H+7O;      {CO(OH)CH2CH(OO.)COCH2(OOH)                                                                             2.AHK    }
+  G2A503J = 5C+5H+6O;      {CO(OH)CH2CH(OO.)COCHO                                                                                  2.ADK    }
+  G2A504y = 5C+5H+7O;      {CO(OH)CH2CH(OO.)COCO(OH)                                                                               2.AAK    }
+  G2A504t = 5C+5H+8O;      {CO(OH)CH2CH(OO.)COCO(OOH)                                                                              2.AGK    }
+  G2P505L = 5C+4H+N+10O;   {CO(OH)CH2CH(OO.)COCO(OONO2)                                                                            2.PAK    }
+  G1A503X = 5C+8H+N+8O;    {CO(OH)CH2CH(OOH)CH(O.)CH2(ONO2)                                                                        1.AHN    }
+  G1A505v = 5C+9H+7O;      {CO(OH)CH2CH(OOH)CH(O.)CH2(OOH)                                                                         1.AHH    }
+  G1A506K = 5C+7H+6O;      {CO(OH)CH2CH(OOH)CH(O.)CHO                                                                              1.AHD    }
+  G1A508e = 5C+7H+7O;      {CO(OH)CH2CH(OOH)CH(O.)CO(OH)                                                                           1.AAH    }
+  G1A508x = 5C+7H+8O;      {CO(OH)CH2CH(OOH)CH(O.)CO(OOH)                                                                          1.AGH    }
+  G1P509k = 5C+6H+N+10O;   {CO(OH)CH2CH(OOH)CH(O.)CO(OONO2)                                                                        1.PAH    }
+  G1A501N = 5C+9H+6O;      {CO(OH)CH2CH(OOH)CH(OH)CH2(O.)                                                                          1.AHO    }
+  GAH500C = 5C+9H+N+8O;    {CO(OH)CH2CH(OOH)CH(OH)CH2(ONO2)                                                                        AHNO     }
+  GAH500H = 5C+10H+7O;     {CO(OH)CH2CH(OOH)CH(OH)CH2(OOH)                                                                         AHHO     }
+  GAH500z = 5C+8H+6O;      {CO(OH)CH2CH(OOH)CH(OH)CHO                                                                              AHDO     }
+  G3A500D = 5C+7H+8O;      {CO(OH)CH2CH(OOH)CH(OH)CO(OO.)                                                                          3.AHK    }
+  GAG500C = 5C+8H+8O;      {CO(OH)CH2CH(OOH)CH(OH)CO(OOH)                                                                          AGHO     }
+  GPA500G = 5C+7H+N+10O;   {CO(OH)CH2CH(OOH)CH(OH)CO(OONO2)                                                                        PAHO     }
+  G1A503Y = 5C+8H+N+8O;    {CO(OH)CH2CH(OOH)CH(ONO2)CH2(O.)                                                                        1.AHN    }
+  GAH501C = 5C+8H+2N+10O;  {CO(OH)CH2CH(OOH)CH(ONO2)CH2(ONO2)                                                                      AHNN     }
+  G2A504T = 5C+8H+N+9O;    {CO(OH)CH2CH(OOH)CH(ONO2)CH2(OO.)                                                                       2.AHN    }
+  GAH502s = 5C+9H+N+9O;    {CO(OH)CH2CH(OOH)CH(ONO2)CH2(OOH)                                                                       AHHN     }
+  GAH503J = 5C+7H+N+8O;    {CO(OH)CH2CH(OOH)CH(ONO2)CHO                                                                            AHND     }
+  G3A500l = 5C+6H+N+10O;   {CO(OH)CH2CH(OOH)CH(ONO2)CO(OO.)                                                                        3.AHN    }
+  GAG500x = 5C+7H+N+10O;   {CO(OH)CH2CH(OOH)CH(ONO2)CO(OOH)                                                                        AGHN     }
+  GPA5014 = 5C+6H+2N+12O;  {CO(OH)CH2CH(OOH)CH(ONO2)CO(OONO2)                                                                      PAHN     }
+  G2A502t = 5C+8H+N+9O;    {CO(OH)CH2CH(OOH)CH(OO.)CH2(ONO2)                                                                       2.AHN    }
+  G2A506Q = 5C+7H+8O;      {CO(OH)CH2CH(OOH)CH(OO.)CO(OH)                                                                          2.AAH    }
+  G1A503h = 5C+9H+7O;      {CO(OH)CH2CH(OOH)CH(OOH)CH2(O.)                                                                         1.AHH    }
+  GAH501E = 5C+9H+N+9O;    {CO(OH)CH2CH(OOH)CH(OOH)CH2(ONO2)                                                                       AHHN     }
+  GAH503v = 5C+8H+7O;      {CO(OH)CH2CH(OOH)CH(OOH)CHO                                                                             AHHD     }
+  GAA500d = 5C+8H+8O;      {CO(OH)CH2CH(OOH)CH(OOH)CO(OH)                                                                          AAHH     }
+  G3A5016 = 5C+7H+9O;      {CO(OH)CH2CH(OOH)CH(OOH)CO(OO.)                                                                         3.AHH    }
+  GAG501A = 5C+8H+9O;      {CO(OH)CH2CH(OOH)CH(OOH)CO(OOH)                                                                         AGHH     }
+  GPA5018 = 5C+7H+N+11O;   {CO(OH)CH2CH(OOH)CH(OOH)CO(OONO2)                                                                       PAHH     }
+  G1A400T = 4C+7H+5O;      {CO(OH)CH2CH(OOH)CH2(O.)                                                                                1.AH     }
+  GAH4003 = 4C+7H+N+7O;    {CO(OH)CH2CH(OOH)CH2(ONO2)                                                                              AHN      }
+  G2A400h = 4C+7H+6O;      {CO(OH)CH2CH(OOH)CH2(OO.)                                                                               2.AH     }
+  GAH400X = 4C+8H+6O;      {CO(OH)CH2CH(OOH)CH2(OOH)                                                                               AHH      }
+  G1A500j = 5C+9H+5O;      {CO(OH)CH2CH(OOH)CH2CH2(O.)                                                                             1.AH     }
+  GAH5006 = 5C+9H+N+7O;    {CO(OH)CH2CH(OOH)CH2CH2(ONO2)                                                                           AHN      }
+  GAH500t = 5C+8H+5O;      {CO(OH)CH2CH(OOH)CH2CHO                                                                                 AHD      }
+  GAA5008 = 5C+8H+6O;      {CO(OH)CH2CH(OOH)CH2CO(OH)                                                                              AAH      }
+  G3A500B = 5C+7H+7O;      {CO(OH)CH2CH(OOH)CH2CO(OO.)                                                                             3.AHK    }
+  GAG500D = 5C+8H+7O;      {CO(OH)CH2CH(OOH)CH2CO(OOH)                                                                             AGH      }
+  GPA500E = 5C+7H+N+9O;    {CO(OH)CH2CH(OOH)CH2CO(OONO2)                                                                           PAH      }
+  GAH400T = 4C+6H+5O;      {CO(OH)CH2CH(OOH)CHO                                                                                    AHD      }
+  GAA4006 = 4C+6H+6O;      {CO(OH)CH2CH(OOH)CO(OH)                                                                                 AAH      }
+  G3A4009 = 4C+5H+7O;      {CO(OH)CH2CH(OOH)CO(OO.)                                                                                3.AHK    }
+  GAG400B = 4C+6H+7O;      {CO(OH)CH2CH(OOH)CO(OOH)                                                                                AGH      }
+  GPA400C = 4C+5H+N+9O;    {CO(OH)CH2CH(OOH)CO(OONO2)                                                                              PAH      }
+  G1A503p = 5C+7H+6O;      {CO(OH)CH2CH(OOH)COCH2(O.)                                                                              1.AHK    }
+  GAH501M = 5C+7H+N+8O;    {CO(OH)CH2CH(OOH)COCH2(ONO2)                                                                            AHNK     }
+  G2A503n = 5C+7H+7O;      {CO(OH)CH2CH(OOH)COCH2(OO.)                                                                             2.AHK    }
+  GAH501z = 5C+8H+7O;      {CO(OH)CH2CH(OOH)COCH2(OOH)                                                                             AHHK     }
+  GAH503K = 5C+6H+6O;      {CO(OH)CH2CH(OOH)COCHO                                                                                  AHDK     }
+  GAA500e = 5C+6H+7O;      {CO(OH)CH2CH(OOH)COCO(OH)                                                                               AAHK     }
+  G3A501Z = 5C+5H+8O;      {CO(OH)CH2CH(OOH)COCO(OO.)                                                                              3.AHK    }
+  GAG500y = 5C+6H+8O;      {CO(OH)CH2CH(OOH)COCO(OOH)                                                                              AGHK     }
+  GPA5019 = 5C+5H+N+10O;   {CO(OH)CH2CH(OOH)COCO(OONO2)                                                                            PAHK     }
+  G1A3000 = 3C+5H+3O;      {CO(OH)CH2CH2(O.)                                                                                       1.A      }
+  GAN3000 = 3C+5H+N+5O;    {CO(OH)CH2CH2(ONO2)                                                                                     AN       }
+  G2A3000 = 3C+5H+4O;      {CO(OH)CH2CH2(OO.)                                                                                      2.A      }
+  GAH3000 = 3C+6H+4O;      {CO(OH)CH2CH2(OOH)                                                                                      AH       }
+  G1A5008 = 5C+8H+N+6O;    {CO(OH)CH2CH2CH(O.)CH2(ONO2)                                                                            1.AN     }
+  G1A502g = 5C+9H+5O;      {CO(OH)CH2CH2CH(O.)CH2(OOH)                                                                             1.AH     }
+  G1A5045 = 5C+7H+4O;      {CO(OH)CH2CH2CH(O.)CHO                                                                                  1.AD     }
+  G1A503w = 5C+7H+5O;      {CO(OH)CH2CH2CH(O.)CO(OH)                                                                               1.AA     }
+  G1A503v = 5C+7H+6O;      {CO(OH)CH2CH2CH(O.)CO(OOH)                                                                              1.AG     }
+  G1P503P = 5C+6H+N+8O;    {CO(OH)CH2CH2CH(O.)CO(OONO2)                                                                            1.PA     }
+  G1A500A = 5C+9H+4O;      {CO(OH)CH2CH2CH(OH)CH2(O.)                                                                              1.AO     }
+  GAN5001 = 5C+9H+N+6O;    {CO(OH)CH2CH2CH(OH)CH2(ONO2)                                                                            ANO      }
+  G2A500C = 5C+9H+5O;      {CO(OH)CH2CH2CH(OH)CH2(OO.)                                                                             2.AO     }
+  GAH5000 = 5C+10H+5O;     {CO(OH)CH2CH2CH(OH)CH2(OOH)                                                                             AHO      }
+  GAD5002 = 5C+8H+4O;      {CO(OH)CH2CH2CH(OH)CHO                                                                                  ADO      }
+  GAA5001 = 5C+8H+5O;      {CO(OH)CH2CH2CH(OH)CO(OH)                                                                               AAO      }
+  G3A5002 = 5C+7H+6O;      {CO(OH)CH2CH2CH(OH)CO(OO.)                                                                              3.AKO    }
+  GAG5000 = 5C+8H+6O;      {CO(OH)CH2CH2CH(OH)CO(OOH)                                                                              AGO      }
+  GPA5002 = 5C+7H+N+8O;    {CO(OH)CH2CH2CH(OH)CO(OONO2)                                                                            PAO      }
+  G1A500z = 5C+8H+N+6O;    {CO(OH)CH2CH2CH(ONO2)CH2(O.)                                                                            1.AN     }
+  GAN500D = 5C+8H+2N+8O;   {CO(OH)CH2CH2CH(ONO2)CH2(ONO2)                                                                          ANN      }
+  G2A502H = 5C+8H+N+7O;    {CO(OH)CH2CH2CH(ONO2)CH2(OO.)                                                                           2.AN     }
+  GAH500o = 5C+9H+N+7O;    {CO(OH)CH2CH2CH(ONO2)CH2(OOH)                                                                           AHN      }
+  GAN501I = 5C+7H+N+6O;    {CO(OH)CH2CH2CH(ONO2)CHO                                                                                AND      }
+  GAA5007 = 5C+7H+N+7O;    {CO(OH)CH2CH2CH(ONO2)CO(OH)                                                                             AAN      }
+  G3A500L = 5C+6H+N+8O;    {CO(OH)CH2CH2CH(ONO2)CO(OO.)                                                                            3.ANK    }
+  GAG500H = 5C+7H+N+8O;    {CO(OH)CH2CH2CH(ONO2)CO(OOH)                                                                            AGN      }
+  GPA500C = 5C+6H+2N+10O;  {CO(OH)CH2CH2CH(ONO2)CO(OONO2)                                                                          PAN      }
+  G2A5007 = 5C+8H+N+7O;    {CO(OH)CH2CH2CH(OO.)CH2(ONO2)                                                                           2.AN     }
+  G2A502I = 5C+9H+6O;      {CO(OH)CH2CH2CH(OO.)CH2(OOH)                                                                            2.AH     }
+  G2A503H = 5C+7H+5O;      {CO(OH)CH2CH2CH(OO.)CHO                                                                                 2.AD     }
+  G2A5036 = 5C+7H+6O;      {CO(OH)CH2CH2CH(OO.)CO(OH)                                                                              2.AA     }
+  G2A5035 = 5C+7H+7O;      {CO(OH)CH2CH2CH(OO.)CO(OOH)                                                                             2.AG     }
+  G2P502n = 5C+6H+N+9O;    {CO(OH)CH2CH2CH(OO.)CO(OONO2)                                                                           2.PA     }
+  G1A5014 = 5C+9H+5O;      {CO(OH)CH2CH2CH(OOH)CH2(O.)                                                                             1.AH     }
+  GAH5008 = 5C+9H+N+7O;    {CO(OH)CH2CH2CH(OOH)CH2(ONO2)                                                                           AHN      }
+  G2A502J = 5C+9H+6O;      {CO(OH)CH2CH2CH(OOH)CH2(OO.)                                                                            2.AH     }
+  GAH500p = 5C+10H+6O;     {CO(OH)CH2CH2CH(OOH)CH2(OOH)                                                                            AHH      }
+  GAH501O = 5C+8H+5O;      {CO(OH)CH2CH2CH(OOH)CHO                                                                                 AHD      }
+  GAA500F = 5C+8H+6O;      {CO(OH)CH2CH2CH(OOH)CO(OH)                                                                              AAH      }
+  G3A500M = 5C+7H+7O;      {CO(OH)CH2CH2CH(OOH)CO(OO.)                                                                             3.AHK    }
+  GAG500J = 5C+8H+7O;      {CO(OH)CH2CH2CH(OOH)CO(OOH)                                                                             AGH      }
+  GPA500N = 5C+7H+N+9O;    {CO(OH)CH2CH2CH(OOH)CO(OONO2)                                                                           PAH      }
+  G1A4001 = 4C+7H+3O;      {CO(OH)CH2CH2CH2(O.)                                                                                    1.A      }
+  GAN4000 = 4C+7H+N+5O;    {CO(OH)CH2CH2CH2(ONO2)                                                                                  AN       }
+  G2A4004 = 4C+7H+4O;      {CO(OH)CH2CH2CH2(OO.)                                                                                   2.A      }
+  GAH4006 = 4C+8H+4O;      {CO(OH)CH2CH2CH2(OOH)                                                                                   AH       }
+  G1A5005 = 5C+9H+3O;      {CO(OH)CH2CH2CH2CH2(O.)                                                                                 1.A      }
+  GAN5000 = 5C+9H+N+5O;    {CO(OH)CH2CH2CH2CH2(ONO2)                                                                               AN       }
+  GAD5000 = 5C+8H+3O;      {CO(OH)CH2CH2CH2CHO                                                                                     AD       }
+  GAA5000 = 5C+8H+4O;      {CO(OH)CH2CH2CH2CO(OH)                                                                                  AA       }
+  G3A5000 = 5C+7H+5O;      {CO(OH)CH2CH2CH2CO(OO.)                                                                                 3.AK     }
+  GAG5001 = 5C+8H+5O;      {CO(OH)CH2CH2CH2CO(OOH)                                                                                 AG       }
+  GPA5000 = 5C+7H+N+7O;    {CO(OH)CH2CH2CH2CO(OONO2)                                                                               PA       }
+  GAD4000 = 4C+6H+3O;      {CO(OH)CH2CH2CHO                                                                                        AD       }
+  GAA4000 = 4C+6H+4O;      {CO(OH)CH2CH2CO(OH)                                                                                     AA       }
+  G3A4000 = 4C+5H+5O;      {CO(OH)CH2CH2CO(OO.)                                                                                    3.AK     }
+  GAG4000 = 4C+6H+5O;      {CO(OH)CH2CH2CO(OOH)                                                                                    AG       }
+  GPA4000 = 4C+5H+N+7O;    {CO(OH)CH2CH2CO(OONO2)                                                                                  PA       }
+  G1A5017 = 5C+7H+4O;      {CO(OH)CH2CH2COCH2(O.)                                                                                  1.AK     }
+  GAN500E = 5C+7H+N+6O;    {CO(OH)CH2CH2COCH2(ONO2)                                                                                ANK      }
+  G2A501M = 5C+7H+5O;      {CO(OH)CH2CH2COCH2(OO.)                                                                                 2.AK     }
+  GAH500F = 5C+8H+5O;      {CO(OH)CH2CH2COCH2(OOH)                                                                                 AHK      }
+  GAD500B = 5C+6H+4O;      {CO(OH)CH2CH2COCHO                                                                                      ADK      }
+  GAA500C = 5C+6H+5O;      {CO(OH)CH2CH2COCO(OH)                                                                                   AAK      }
+  G3A500s = 5C+5H+6O;      {CO(OH)CH2CH2COCO(OO.)                                                                                  3.AKK    }
+  GAG500I = 5C+6H+6O;      {CO(OH)CH2CH2COCO(OOH)                                                                                  AGK      }
+  GPA500O = 5C+5H+N+8O;    {CO(OH)CH2CH2COCO(OONO2)                                                                                PAK      }
+  GAD3000 = 3C+4H+3O;      {CO(OH)CH2CHO                                                                                           AD       }
+  GAA3000 = 3C+4H+4O;      {CO(OH)CH2CO(OH)                                                                                        AA       }
+  G3A3000 = 3C+3H+5O;      {CO(OH)CH2CO(OO.)                                                                                       3.AK     }
+  GAG3000 = 3C+4H+5O;      {CO(OH)CH2CO(OOH)                                                                                       AG       }
+  GPA3000 = 3C+3H+N+7O;    {CO(OH)CH2CO(OONO2)                                                                                     PA       }
+  G1A500p = 5C+6H+N+7O;    {CO(OH)CH2COCH(O.)CH2(ONO2)                                                                             1.ANK    }
+  G1A505y = 5C+7H+6O;      {CO(OH)CH2COCH(O.)CH2(OOH)                                                                              1.AHK    }
+  G1A506h = 5C+5H+5O;      {CO(OH)CH2COCH(O.)CHO                                                                                   1.ADK    }
+  G1A505L = 5C+5H+6O;      {CO(OH)CH2COCH(O.)CO(OH)                                                                                1.AAK    }
+  G1A505K = 5C+5H+7O;      {CO(OH)CH2COCH(O.)CO(OOH)                                                                               1.AGK    }
+  G1P505o = 5C+4H+N+9O;    {CO(OH)CH2COCH(O.)CO(OONO2)                                                                             1.PAK    }
+  G1A500f = 5C+7H+5O;      {CO(OH)CH2COCH(OH)CH2(O.)                                                                               1.AKO    }
+  GAN500L = 5C+7H+N+7O;    {CO(OH)CH2COCH(OH)CH2(ONO2)                                                                             ANKO     }
+  G2A500e = 5C+7H+6O;      {CO(OH)CH2COCH(OH)CH2(OO.)                                                                              2.AKO    }
+  GAH500J = 5C+8H+6O;      {CO(OH)CH2COCH(OH)CH2(OOH)                                                                              AHKO     }
+  GAD5006 = 5C+6H+5O;      {CO(OH)CH2COCH(OH)CHO                                                                                   ADKO     }
+  G3A500A = 5C+5H+7O;      {CO(OH)CH2COCH(OH)CO(OO.)                                                                               3.AKK    }
+  GAG5008 = 5C+6H+7O;      {CO(OH)CH2COCH(OH)CO(OOH)                                                                               AGKO     }
+  GPA500A = 5C+5H+N+9O;    {CO(OH)CH2COCH(OH)CO(OONO2)                                                                             PAKO     }
+  G1A5035 = 5C+6H+N+7O;    {CO(OH)CH2COCH(ONO2)CH2(O.)                                                                             1.ANK    }
+  GAN5013 = 5C+6H+2N+9O;   {CO(OH)CH2COCH(ONO2)CH2(ONO2)                                                                           ANNK     }
+  G2A504X = 5C+6H+N+8O;    {CO(OH)CH2COCH(ONO2)CH2(OO.)                                                                            2.ANK    }
+  GAH502u = 5C+7H+N+8O;    {CO(OH)CH2COCH(ONO2)CH2(OOH)                                                                            AHNK     }
+  GAN502Y = 5C+5H+N+7O;    {CO(OH)CH2COCH(ONO2)CHO                                                                                 ANDK     }
+  GAA500R = 5C+5H+N+8O;    {CO(OH)CH2COCH(ONO2)CO(OH)                                                                              AANK     }
+  G3A500q = 5C+4H+N+9O;    {CO(OH)CH2COCH(ONO2)CO(OO.)                                                                             3.ANK    }
+  GAG500e = 5C+5H+N+9O;    {CO(OH)CH2COCH(ONO2)CO(OOH)                                                                             AGNK     }
+  GPA500n = 5C+4H+2N+11O;  {CO(OH)CH2COCH(ONO2)CO(OONO2)                                                                           PANK     }
+  G2A500m = 5C+6H+N+8O;    {CO(OH)CH2COCH(OO.)CH2(ONO2)                                                                            2.ANK    }
+  G2A5046 = 5C+5H+7O;      {CO(OH)CH2COCH(OO.)CO(OH)                                                                               2.AAK    }
+  G2A5045 = 5C+5H+8O;      {CO(OH)CH2COCH(OO.)CO(OOH)                                                                              2.AGK    }
+  G2P504K = 5C+4H+N+10O;   {CO(OH)CH2COCH(OO.)CO(OONO2)                                                                            2.PAK    }
+  G1A5038 = 5C+7H+6O;      {CO(OH)CH2COCH(OOH)CH2(O.)                                                                              1.AHK    }
+  GAH5014 = 5C+7H+N+8O;    {CO(OH)CH2COCH(OOH)CH2(ONO2)                                                                            AHNK     }
+  GAH502v = 5C+8H+7O;      {CO(OH)CH2COCH(OOH)CH2(OOH)                                                                             AHHK     }
+  GAH503W = 5C+6H+6O;      {CO(OH)CH2COCH(OOH)CHO                                                                                  AHDK     }
+  GAA500S = 5C+6H+7O;      {CO(OH)CH2COCH(OOH)CO(OH)                                                                               AAHK     }
+  G3A500r = 5C+5H+8O;      {CO(OH)CH2COCH(OOH)CO(OO.)                                                                              3.AHK    }
+  GAG500f = 5C+6H+8O;      {CO(OH)CH2COCH(OOH)CO(OOH)                                                                              AGHK     }
+  GPA500o = 5C+5H+N+10O;   {CO(OH)CH2COCH(OOH)CO(OONO2)                                                                            PAHK     }
+  G1A400D = 4C+5H+4O;      {CO(OH)CH2COCH2(O.)                                                                                     1.AK     }
+  GAN4008 = 4C+5H+N+6O;    {CO(OH)CH2COCH2(ONO2)                                                                                   ANK      }
+  G2A400B = 4C+5H+5O;      {CO(OH)CH2COCH2(OO.)                                                                                    2.AK     }
+  GAH400A = 4C+6H+5O;      {CO(OH)CH2COCH2(OOH)                                                                                    AHK      }
+  G1A500L = 5C+7H+4O;      {CO(OH)CH2COCH2CH2(O.)                                                                                  1.AK     }
+  GAN5009 = 5C+7H+N+6O;    {CO(OH)CH2COCH2CH2(ONO2)                                                                                ANK      }
+  G2A500K = 5C+7H+5O;      {CO(OH)CH2COCH2CH2(OO.)                                                                                 2.AK     }
+  GAH500R = 5C+8H+5O;      {CO(OH)CH2COCH2CH2(OOH)                                                                                 AHK      }
+  GAD5004 = 5C+6H+4O;      {CO(OH)CH2COCH2CHO                                                                                      ADK      }
+  GAA5005 = 5C+6H+5O;      {CO(OH)CH2COCH2CO(OH)                                                                                   AAK      }
+  G3A5006 = 5C+5H+6O;      {CO(OH)CH2COCH2CO(OO.)                                                                                  3.AKK    }
+  GAG5007 = 5C+6H+6O;      {CO(OH)CH2COCH2CO(OOH)                                                                                  AGK      }
+  GPA5008 = 5C+5H+N+8O;    {CO(OH)CH2COCH2CO(OONO2)                                                                                PAK      }
+  GAD4003 = 4C+4H+4O;      {CO(OH)CH2COCHO                                                                                         ADK      }
+  GAA4002 = 4C+4H+5O;      {CO(OH)CH2COCO(OH)                                                                                      AAK      }
+  G3A400D = 4C+3H+6O;      {CO(OH)CH2COCO(OO.)                                                                                     3.AKK    }
+  GAG4009 = 4C+4H+6O;      {CO(OH)CH2COCO(OOH)                                                                                     AGK      }
+  GPA4004 = 4C+3H+N+8O;    {CO(OH)CH2COCO(OONO2)                                                                                   PAK      }
+  G1A501z = 5C+5H+5O;      {CO(OH)CH2COCOCH2(O.)                                                                                   1.AKK    }
+  GAN5014 = 5C+5H+N+7O;    {CO(OH)CH2COCOCH2(ONO2)                                                                                 ANKK     }
+  G2A501h = 5C+5H+6O;      {CO(OH)CH2COCOCH2(OO.)                                                                                  2.AKK    }
+  GAH5022 = 5C+6H+6O;      {CO(OH)CH2COCOCH2(OOH)                                                                                  AHKK     }
+  GAD500G = 5C+4H+5O;      {CO(OH)CH2COCOCHO                                                                                       ADKK     }
+  GAA500T = 5C+4H+6O;      {CO(OH)CH2COCOCO(OH)                                                                                    AAKK     }
+  G3A501O = 5C+3H+7O;      {CO(OH)CH2COCOCO(OO.)                                                                                   3.AKK    }
+  GAG500g = 5C+4H+7O;      {CO(OH)CH2COCOCO(OOH)                                                                                   AGKK     }
+  GPA500p = 5C+3H+N+9O;    {CO(OH)CH2COCOCO(OONO2)                                                                                 PAKK     }
+  GAD2000 = 2C+2H+3O;      {CO(OH)CHO                                                                                              AD       }
+  GAA2000 = 2C+2H+4O;      {CO(OH)CO(OH)                                                                                           AA       }
+  G3A2000 = 2C+H+5O;       {CO(OH)CO(OO.)                                                                                          3.AK     }
+  GAG2000 = 2C+2H+5O;      {CO(OH)CO(OOH)                                                                                          AG       }
+  GPA2000 = 2C+H+N+7O;     {CO(OH)CO(OONO2)                                                                                        PA       }
+  G1A501T = 5C+6H+N+8O;    {CO(OH)COCH(O.)CH(OH)CH2(ONO2)                                                                          1.ANK    }
+  G1A507h = 5C+7H+7O;      {CO(OH)COCH(O.)CH(OH)CH2(OOH)                                                                           1.AHK    }
+  G1A504f = 5C+5H+6O;      {CO(OH)COCH(O.)CH(OH)CHO                                                                                1.ADK    }
+  G1A509T = 5C+5H+8O;      {CO(OH)COCH(O.)CH(OH)CO(OOH)                                                                            1.AGK    }
+  G1P5093 = 5C+4H+N+10O;   {CO(OH)COCH(O.)CH(OH)CO(OONO2)                                                                          1.PAK    }
+  G1A503M = 5C+5H+2N+10O;  {CO(OH)COCH(O.)CH(ONO2)CH2(ONO2)                                                                        1.ANN    }
+  G1A507x = 5C+6H+N+9O;    {CO(OH)COCH(O.)CH(ONO2)CH2(OOH)                                                                         1.AHN    }
+  G1A507z = 5C+4H+N+8O;    {CO(OH)COCH(O.)CH(ONO2)CHO                                                                              1.AND    }
+  G1A509f = 5C+4H+N+10O;   {CO(OH)COCH(O.)CH(ONO2)CO(OOH)                                                                          1.AGN    }
+  G1P509j = 5C+3H+2N+12O;  {CO(OH)COCH(O.)CH(ONO2)CO(OONO2)                                                                        1.PAN    }
+  G1A5064 = 5C+6H+N+9O;    {CO(OH)COCH(O.)CH(OOH)CH2(ONO2)                                                                         1.AHN    }
+  G1A509X = 5C+7H+8O;      {CO(OH)COCH(O.)CH(OOH)CH2(OOH)                                                                          1.AHH    }
+  G1A508E = 5C+5H+7O;      {CO(OH)COCH(O.)CH(OOH)CHO                                                                               1.AHD    }
+  G1A509j = 5C+5H+9O;      {CO(OH)COCH(O.)CH(OOH)CO(OOH)                                                                           1.AGH    }
+  G1P50Af = 5C+4H+N+11O;   {CO(OH)COCH(O.)CH(OOH)CO(OONO2)                                                                         1.PAH    }
+  G1A400S = 4C+4H+N+7O;    {CO(OH)COCH(O.)CH2(ONO2)                                                                                1.ANK    }
+  G1A401D = 4C+5H+6O;      {CO(OH)COCH(O.)CH2(OOH)                                                                                 1.AHK    }
+  G1A500x = 5C+6H+N+7O;    {CO(OH)COCH(O.)CH2CH2(ONO2)                                                                             1.ANK    }
+  G1A5058 = 5C+7H+6O;      {CO(OH)COCH(O.)CH2CH2(OOH)                                                                              1.AHK    }
+  G1A503P = 5C+5H+5O;      {CO(OH)COCH(O.)CH2CHO                                                                                   1.ADK    }
+  G1A5071 = 5C+5H+7O;      {CO(OH)COCH(O.)CH2CO(OOH)                                                                               1.AGK    }
+  G1P507S = 5C+4H+N+9O;    {CO(OH)COCH(O.)CH2CO(OONO2)                                                                             1.PAK    }
+  G1A4017 = 4C+3H+5O;      {CO(OH)COCH(O.)CHO                                                                                      1.ADK    }
+  G1A401A = 4C+3H+6O;      {CO(OH)COCH(O.)CO(OH)                                                                                   1.AAK    }
+  G1A4019 = 4C+3H+7O;      {CO(OH)COCH(O.)CO(OOH)                                                                                  1.AGK    }
+  G1P401F = 4C+2H+N+9O;    {CO(OH)COCH(O.)CO(OONO2)                                                                                1.PAK    }
+  G1A503O = 5C+4H+N+8O;    {CO(OH)COCH(O.)COCH2(ONO2)                                                                              1.ANK    }
+  G1A5086 = 5C+5H+7O;      {CO(OH)COCH(O.)COCH2(OOH)                                                                               1.AHK    }
+  G1A5087 = 5C+3H+6O;      {CO(OH)COCH(O.)COCHO                                                                                    1.ADK    }
+  G1A509H = 5C+3H+7O;      {CO(OH)COCH(O.)COCO(OH)                                                                                 1.AAK    }
+  G1A509G = 5C+3H+8O;      {CO(OH)COCH(O.)COCO(OOH)                                                                                1.AGK    }
+  G1P50AO = 5C+2H+N+10O;   {CO(OH)COCH(O.)COCO(OONO2)                                                                              1.PAK    }
+  G1A502x = 5C+6H+N+8O;    {CO(OH)COCH(OH)CH(O.)CH2(ONO2)                                                                          1.ANK    }
+  G1A507o = 5C+7H+7O;      {CO(OH)COCH(OH)CH(O.)CH2(OOH)                                                                           1.AHK    }
+  G1A506T = 5C+5H+6O;      {CO(OH)COCH(OH)CH(O.)CHO                                                                                1.ADK    }
+  G1A509B = 5C+5H+7O;      {CO(OH)COCH(OH)CH(O.)CO(OH)                                                                             1.AAK    }
+  G1A509A = 5C+5H+8O;      {CO(OH)COCH(OH)CH(O.)CO(OOH)                                                                            1.AGK    }
+  G1P50AI = 5C+4H+N+10O;   {CO(OH)COCH(OH)CH(O.)CO(OONO2)                                                                          1.PAK    }
+  G1A504e = 5C+7H+6O;      {CO(OH)COCH(OH)CH(OH)CH2(O.)                                                                            1.AKO    }
+  GAN501U = 5C+7H+N+8O;    {CO(OH)COCH(OH)CH(OH)CH2(ONO2)                                                                          ANKOO    }
+  G2A505Z = 5C+7H+7O;      {CO(OH)COCH(OH)CH(OH)CH2(OO.)                                                                           2.AKO    }
+  GAH504S = 5C+8H+7O;      {CO(OH)COCH(OH)CH(OH)CH2(OOH)                                                                           AHKOO    }
+  GAD500N = 5C+6H+6O;      {CO(OH)COCH(OH)CH(OH)CHO                                                                                ADKOO    }
+  G3A501E = 5C+5H+8O;      {CO(OH)COCH(OH)CH(OH)CO(OO.)                                                                            3.AKK    }
+  GAG501Q = 5C+6H+8O;      {CO(OH)COCH(OH)CH(OH)CO(OOH)                                                                            AGKOO    }
+  GPA501S = 5C+5H+N+10O;   {CO(OH)COCH(OH)CH(OH)CO(OONO2)                                                                          PAKOO    }
+  G1A506Q = 5C+6H+N+8O;    {CO(OH)COCH(OH)CH(ONO2)CH2(O.)                                                                          1.ANK    }
+  GAN502L = 5C+6H+2N+10O;  {CO(OH)COCH(OH)CH(ONO2)CH2(ONO2)                                                                        ANNKO    }
+  G2A506H = 5C+6H+N+9O;    {CO(OH)COCH(OH)CH(ONO2)CH2(OO.)                                                                         2.ANK    }
+  GAH5055 = 5C+7H+N+9O;    {CO(OH)COCH(OH)CH(ONO2)CH2(OOH)                                                                         AHNKO    }
+  GAN502r = 5C+5H+N+8O;    {CO(OH)COCH(OH)CH(ONO2)CHO                                                                              ANDKO    }
+  GAA5012 = 5C+5H+N+9O;    {CO(OH)COCH(OH)CH(ONO2)CO(OH)                                                                           AANKO    }
+  G3A501f = 5C+4H+N+10O;   {CO(OH)COCH(OH)CH(ONO2)CO(OO.)                                                                          3.ANK    }
+  GAG501x = 5C+5H+N+10O;   {CO(OH)COCH(OH)CH(ONO2)CO(OOH)                                                                          AGNKO    }
+  GPA501t = 5C+4H+2N+12O;  {CO(OH)COCH(OH)CH(ONO2)CO(OONO2)                                                                        PANKO    }
+  G2A502W = 5C+6H+N+9O;    {CO(OH)COCH(OH)CH(OO.)CH2(ONO2)                                                                         2.ANK    }
+  G2A505k = 5C+7H+8O;      {CO(OH)COCH(OH)CH(OO.)CH2(OOH)                                                                          2.AHK    }
+  G2A504k = 5C+5H+7O;      {CO(OH)COCH(OH)CH(OO.)CHO                                                                               2.ADK    }
+  G2A506a = 5C+5H+8O;      {CO(OH)COCH(OH)CH(OO.)CO(OH)                                                                            2.AAK    }
+  G2A506Z = 5C+5H+9O;      {CO(OH)COCH(OH)CH(OO.)CO(OOH)                                                                           2.AGK    }
+  G2P507J = 5C+4H+N+11O;   {CO(OH)COCH(OH)CH(OO.)CO(OONO2)                                                                         2.PAK    }
+  G1A506R = 5C+7H+7O;      {CO(OH)COCH(OH)CH(OOH)CH2(O.)                                                                           1.AHK    }
+  GAH503M = 5C+7H+N+9O;    {CO(OH)COCH(OH)CH(OOH)CH2(ONO2)                                                                         AHNKO    }
+  GAH505b = 5C+8H+8O;      {CO(OH)COCH(OH)CH(OOH)CH2(OOH)                                                                          AHHKO    }
+  GAH505E = 5C+6H+7O;      {CO(OH)COCH(OH)CH(OOH)CHO                                                                               AHDKO    }
+  GAA501A = 5C+6H+8O;      {CO(OH)COCH(OH)CH(OOH)CO(OH)                                                                            AAHKO    }
+  G3A501g = 5C+5H+9O;      {CO(OH)COCH(OH)CH(OOH)CO(OO.)                                                                           3.AHK    }
+  GAG501y = 5C+6H+9O;      {CO(OH)COCH(OH)CH(OOH)CO(OOH)                                                                           AGHKO    }
+  GPA5021 = 5C+5H+N+11O;   {CO(OH)COCH(OH)CH(OOH)CO(OONO2)                                                                         PAHKO    }
+  G1A400J = 4C+5H+5O;      {CO(OH)COCH(OH)CH2(O.)                                                                                  1.AKO    }
+  GAN400D = 4C+5H+N+7O;    {CO(OH)COCH(OH)CH2(ONO2)                                                                                ANKO     }
+  G2A400H = 4C+5H+6O;      {CO(OH)COCH(OH)CH2(OO.)                                                                                 2.AKO    }
+  GAH400I = 4C+6H+6O;      {CO(OH)COCH(OH)CH2(OOH)                                                                                 AHKO     }
+  G1A502w = 5C+7H+5O;      {CO(OH)COCH(OH)CH2CH2(O.)                                                                               1.AKO    }
+  GAN500y = 5C+7H+N+7O;    {CO(OH)COCH(OH)CH2CH2(ONO2)                                                                             ANKO     }
+  G2A505l = 5C+7H+6O;      {CO(OH)COCH(OH)CH2CH2(OO.)                                                                              2.AKO    }
+  GAH504d = 5C+8H+6O;      {CO(OH)COCH(OH)CH2CH2(OOH)                                                                              AHKO     }
+  GAD500K = 5C+6H+5O;      {CO(OH)COCH(OH)CH2CHO                                                                                   ADKO     }
+  G3A500n = 5C+5H+7O;      {CO(OH)COCH(OH)CH2CO(OO.)                                                                               3.AKK    }
+  GAG5014 = 5C+6H+7O;      {CO(OH)COCH(OH)CH2CO(OOH)                                                                               AGKO     }
+  GPA501A = 5C+5H+N+9O;    {CO(OH)COCH(OH)CH2CO(OONO2)                                                                             PAKO     }
+  GAD4004 = 4C+4H+5O;      {CO(OH)COCH(OH)CHO                                                                                      ADKO     }
+  G3A4007 = 4C+3H+7O;      {CO(OH)COCH(OH)CO(OO.)                                                                                  3.AKK    }
+  GAG4008 = 4C+4H+7O;      {CO(OH)COCH(OH)CO(OOH)                                                                                  AGKO     }
+  GPA4008 = 4C+3H+N+9O;    {CO(OH)COCH(OH)CO(OONO2)                                                                                PAKO     }
+  G1A506S = 5C+5H+6O;      {CO(OH)COCH(OH)COCH2(O.)                                                                                1.AKK    }
+  GAN502M = 5C+5H+N+8O;    {CO(OH)COCH(OH)COCH2(ONO2)                                                                              ANKKO    }
+  G2A505n = 5C+5H+7O;      {CO(OH)COCH(OH)COCH2(OO.)                                                                               2.AKK    }
+  GAH504h = 5C+6H+7O;      {CO(OH)COCH(OH)COCH2(OOH)                                                                               AHKKO    }
+  GAD500Q = 5C+4H+6O;      {CO(OH)COCH(OH)COCHO                                                                                    ADKKO    }
+  GAA501B = 5C+4H+7O;      {CO(OH)COCH(OH)COCO(OH)                                                                                 AAKKO    }
+  G3A501v = 5C+3H+8O;      {CO(OH)COCH(OH)COCO(OO.)                                                                                3.AKK    }
+  GAG501a = 5C+4H+8O;      {CO(OH)COCH(OH)COCO(OOH)                                                                                AGKKO    }
+  GPA501e = 5C+3H+N+10O;   {CO(OH)COCH(OH)COCO(OONO2)                                                                              PAKKO    }
+  G1A502k = 5C+5H+2N+10O;  {CO(OH)COCH(ONO2)CH(O.)CH2(ONO2)                                                                        1.ANN    }
+  G1A507y = 5C+6H+N+9O;    {CO(OH)COCH(ONO2)CH(O.)CH2(OOH)                                                                         1.AHN    }
+  G1A5081 = 5C+4H+N+8O;    {CO(OH)COCH(ONO2)CH(O.)CHO                                                                              1.AND    }
+  G1A507q = 5C+4H+N+9O;    {CO(OH)COCH(ONO2)CH(O.)CO(OH)                                                                           1.AAN    }
+  G1A509g = 5C+4H+N+10O;   {CO(OH)COCH(ONO2)CH(O.)CO(OOH)                                                                          1.AGN    }
+  G1P508P = 5C+3H+2N+12O;  {CO(OH)COCH(ONO2)CH(O.)CO(OONO2)                                                                        1.PAN    }
+  G1A504K = 5C+6H+N+8O;    {CO(OH)COCH(ONO2)CH(OH)CH2(O.)                                                                          1.ANK    }
+  GAN501O = 5C+6H+2N+10O;  {CO(OH)COCH(ONO2)CH(OH)CH2(ONO2)                                                                        ANNKO    }
+  G2A5041 = 5C+6H+N+9O;    {CO(OH)COCH(ONO2)CH(OH)CH2(OO.)                                                                         2.ANK    }
+  GAH504n = 5C+7H+N+9O;    {CO(OH)COCH(ONO2)CH(OH)CH2(OOH)                                                                         AHNKO    }
+  GAN502h = 5C+5H+N+8O;    {CO(OH)COCH(ONO2)CH(OH)CHO                                                                              ANDKO    }
+  G3A501F = 5C+4H+N+10O;   {CO(OH)COCH(ONO2)CH(OH)CO(OO.)                                                                          3.ANK    }
+  GAG501S = 5C+5H+N+10O;   {CO(OH)COCH(ONO2)CH(OH)CO(OOH)                                                                          AGNKO    }
+  GPA500i = 5C+4H+2N+12O;  {CO(OH)COCH(ONO2)CH(OH)CO(OONO2)                                                                        PANKO    }
+  G1A504u = 5C+5H+2N+10O;  {CO(OH)COCH(ONO2)CH(ONO2)CH2(O.)                                                                        1.ANN    }
+  GAN502D = 5C+5H+3N+12O;  {CO(OH)COCH(ONO2)CH(ONO2)CH2(ONO2)                                                                      ANNNK    }
+  G2A503v = 5C+5H+2N+11O;  {CO(OH)COCH(ONO2)CH(ONO2)CH2(OO.)                                                                       2.ANN    }
+  GAH504j = 5C+6H+2N+11O;  {CO(OH)COCH(ONO2)CH(ONO2)CH2(OOH)                                                                       AHNNK    }
+  GAN502k = 5C+4H+2N+10O;  {CO(OH)COCH(ONO2)CH(ONO2)CHO                                                                            ANNDK    }
+  GAA500s = 5C+4H+2N+11O;  {CO(OH)COCH(ONO2)CH(ONO2)CO(OH)                                                                         AANNK    }
+  G3A501J = 5C+3H+2N+12O;  {CO(OH)COCH(ONO2)CH(ONO2)CO(OO.)                                                                        3.ANN    }
+  GAG501U = 5C+4H+2N+12O;  {CO(OH)COCH(ONO2)CH(ONO2)CO(OOH)                                                                        AGNNK    }
+  GPA501X = 5C+3H+3N+14O;  {CO(OH)COCH(ONO2)CH(ONO2)CO(OONO2)                                                                      PANNK    }
+  G2A502M = 5C+5H+2N+11O;  {CO(OH)COCH(ONO2)CH(OO.)CH2(ONO2)                                                                       2.ANN    }
+  G2A505t = 5C+4H+N+9O;    {CO(OH)COCH(ONO2)CH(OO.)CHO                                                                             2.AND    }
+  G2A505p = 5C+4H+N+10O;   {CO(OH)COCH(ONO2)CH(OO.)CO(OH)                                                                          2.AAN    }
+  G2A507D = 5C+4H+N+11O;   {CO(OH)COCH(ONO2)CH(OO.)CO(OOH)                                                                         2.AGN    }
+  G2P506D = 5C+3H+2N+13O;  {CO(OH)COCH(ONO2)CH(OO.)CO(OONO2)                                                                       2.PAN    }
+  G1A5065 = 5C+6H+N+9O;    {CO(OH)COCH(ONO2)CH(OOH)CH2(O.)                                                                         1.AHN    }
+  GAH5032 = 5C+6H+2N+11O;  {CO(OH)COCH(ONO2)CH(OOH)CH2(ONO2)                                                                       AHNNK    }
+  GAH504p = 5C+5H+N+9O;    {CO(OH)COCH(ONO2)CH(OOH)CHO                                                                             AHNDK    }
+  GAA500t = 5C+5H+N+10O;   {CO(OH)COCH(ONO2)CH(OOH)CO(OH)                                                                          AAHNK    }
+  G3A501L = 5C+4H+N+11O;   {CO(OH)COCH(ONO2)CH(OOH)CO(OO.)                                                                         3.AHN    }
+  GAG501X = 5C+5H+N+11O;   {CO(OH)COCH(ONO2)CH(OOH)CO(OOH)                                                                         AGHNK    }
+  GPA501Y = 5C+4H+2N+13O;  {CO(OH)COCH(ONO2)CH(OOH)CO(OONO2)                                                                       PAHNK    }
+  G1A400h = 4C+4H+N+7O;    {CO(OH)COCH(ONO2)CH2(O.)                                                                                1.ANK    }
+  GAN400T = 4C+4H+2N+9O;   {CO(OH)COCH(ONO2)CH2(ONO2)                                                                              ANNK     }
+  G2A400c = 4C+4H+N+8O;    {CO(OH)COCH(ONO2)CH2(OO.)                                                                               2.ANK    }
+  GAH400j = 4C+5H+N+8O;    {CO(OH)COCH(ONO2)CH2(OOH)                                                                               AHNK     }
+  G1A501p = 5C+6H+N+7O;    {CO(OH)COCH(ONO2)CH2CH2(O.)                                                                             1.ANK    }
+  GAN500t = 5C+6H+2N+9O;   {CO(OH)COCH(ONO2)CH2CH2(ONO2)                                                                           ANNK     }
+  G2A501Z = 5C+6H+N+8O;    {CO(OH)COCH(ONO2)CH2CH2(OO.)                                                                            2.ANK    }
+  GAH502E = 5C+7H+N+8O;    {CO(OH)COCH(ONO2)CH2CH2(OOH)                                                                            AHNK     }
+  GAN501j = 5C+5H+N+7O;    {CO(OH)COCH(ONO2)CH2CHO                                                                                 ANDK     }
+  G3A500W = 5C+4H+N+9O;    {CO(OH)COCH(ONO2)CH2CO(OO.)                                                                             3.ANK    }
+  GAG500Y = 5C+5H+N+9O;    {CO(OH)COCH(ONO2)CH2CO(OOH)                                                                             AGNK     }
+  GPA500Z = 5C+4H+2N+11O;  {CO(OH)COCH(ONO2)CH2CO(OONO2)                                                                           PANK     }
+  GAN400Z = 4C+3H+N+7O;    {CO(OH)COCH(ONO2)CHO                                                                                    ANDK     }
+  GAA4008 = 4C+3H+N+8O;    {CO(OH)COCH(ONO2)CO(OH)                                                                                 AANK     }
+  G3A400C = 4C+2H+N+9O;    {CO(OH)COCH(ONO2)CO(OO.)                                                                                3.ANK    }
+  GAG400E = 4C+3H+N+9O;    {CO(OH)COCH(ONO2)CO(OOH)                                                                                AGNK     }
+  GPA400E = 4C+2H+2N+11O;  {CO(OH)COCH(ONO2)CO(OONO2)                                                                              PANK     }
+  G1A504y = 5C+4H+N+8O;    {CO(OH)COCH(ONO2)COCH2(O.)                                                                              1.ANK    }
+  GAN502E = 5C+4H+2N+10O;  {CO(OH)COCH(ONO2)COCH2(ONO2)                                                                            ANNKK    }
+  G2A503y = 5C+4H+N+9O;    {CO(OH)COCH(ONO2)COCH2(OO.)                                                                             2.ANK    }
+  GAH504l = 5C+5H+N+9O;    {CO(OH)COCH(ONO2)COCH2(OOH)                                                                             AHNKK    }
+  GAN502m = 5C+3H+N+8O;    {CO(OH)COCH(ONO2)COCHO                                                                                  ANDKK    }
+  GAA500u = 5C+3H+N+9O;    {CO(OH)COCH(ONO2)COCO(OH)                                                                               AANKK    }
+  G3A501s = 5C+2H+N+10O;   {CO(OH)COCH(ONO2)COCO(OO.)                                                                              3.ANK    }
+  GAG501z = 5C+3H+N+10O;   {CO(OH)COCH(ONO2)COCO(OOH)                                                                              AGNKK    }
+  GPA501Z = 5C+2H+2N+12O;  {CO(OH)COCH(ONO2)COCO(OONO2)                                                                            PANKK    }
+  G2A501F = 5C+6H+N+9O;    {CO(OH)COCH(OO.)CH(OH)CH2(ONO2)                                                                         2.ANK    }
+  G2A503g = 5C+5H+7O;      {CO(OH)COCH(OO.)CH(OH)CHO                                                                               2.ADK    }
+  G2A5074 = 5C+5H+9O;      {CO(OH)COCH(OO.)CH(OH)CO(OOH)                                                                           2.AGK    }
+  G2P507s = 5C+4H+N+11O;   {CO(OH)COCH(OO.)CH(OH)CO(OONO2)                                                                         2.PAK    }
+  G2A502k = 5C+5H+2N+11O;  {CO(OH)COCH(OO.)CH(ONO2)CH2(ONO2)                                                                       2.ANN    }
+  G2A506x = 5C+6H+N+10O;   {CO(OH)COCH(OO.)CH(ONO2)CH2(OOH)                                                                        2.AHN    }
+  G2A506T = 5C+4H+N+9O;    {CO(OH)COCH(OO.)CH(ONO2)CHO                                                                             2.AND    }
+  G2A507U = 5C+4H+N+11O;   {CO(OH)COCH(OO.)CH(ONO2)CO(OOH)                                                                         2.AGN    }
+  G2P506n = 5C+3H+2N+13O;  {CO(OH)COCH(OO.)CH(ONO2)CO(OONO2)                                                                       2.PAN    }
+  G2A506t = 5C+6H+N+10O;   {CO(OH)COCH(OO.)CH(OOH)CH2(ONO2)                                                                        2.AHN    }
+  G2A400O = 4C+4H+N+8O;    {CO(OH)COCH(OO.)CH2(ONO2)                                                                               2.ANK    }
+  G2A500r = 5C+6H+N+8O;    {CO(OH)COCH(OO.)CH2CH2(ONO2)                                                                            2.ANK    }
+  G2A505i = 5C+7H+7O;      {CO(OH)COCH(OO.)CH2CH2(OOH)                                                                             2.AHK    }
+  G2A502m = 5C+5H+6O;      {CO(OH)COCH(OO.)CH2CHO                                                                                  2.ADK    }
+  G2A504v = 5C+5H+8O;      {CO(OH)COCH(OO.)CH2CO(OOH)                                                                              2.AGK    }
+  G2P505H = 5C+4H+N+10O;   {CO(OH)COCH(OO.)CH2CO(OONO2)                                                                            2.PAK    }
+  G2A4012 = 4C+3H+7O;      {CO(OH)COCH(OO.)CO(OH)                                                                                  2.AAK    }
+  G2A4011 = 4C+3H+8O;      {CO(OH)COCH(OO.)CO(OOH)                                                                                 2.AGK    }
+  G2P4016 = 4C+2H+N+10O;   {CO(OH)COCH(OO.)CO(OONO2)                                                                               2.PAK    }
+  G2A502l = 5C+4H+N+9O;    {CO(OH)COCH(OO.)COCH2(ONO2)                                                                             2.ANK    }
+  G2A5071 = 5C+5H+8O;      {CO(OH)COCH(OO.)COCH2(OOH)                                                                              2.AHK    }
+  G2A506U = 5C+3H+7O;      {CO(OH)COCH(OO.)COCHO                                                                                   2.ADK    }
+  G2A506e = 5C+3H+8O;      {CO(OH)COCH(OO.)COCO(OH)                                                                                2.AAK    }
+  G2A506d = 5C+3H+9O;      {CO(OH)COCH(OO.)COCO(OOH)                                                                               2.AGK    }
+  G2P507O = 5C+2H+N+11O;   {CO(OH)COCH(OO.)COCO(OONO2)                                                                             2.PAK    }
+  G1A506x = 5C+6H+N+9O;    {CO(OH)COCH(OOH)CH(O.)CH2(ONO2)                                                                         1.AHN    }
+  G1A507n = 5C+7H+8O;      {CO(OH)COCH(OOH)CH(O.)CH2(OOH)                                                                          1.AHH    }
+  G1A5096 = 5C+5H+7O;      {CO(OH)COCH(OOH)CH(O.)CHO                                                                               1.AHD    }
+  G1A5095 = 5C+5H+8O;      {CO(OH)COCH(OOH)CH(O.)CO(OH)                                                                            1.AAH    }
+  G1A5094 = 5C+5H+9O;      {CO(OH)COCH(OOH)CH(O.)CO(OOH)                                                                           1.AGH    }
+  G1P50A7 = 5C+4H+N+11O;   {CO(OH)COCH(OOH)CH(O.)CO(OONO2)                                                                         1.PAH    }
+  G1A504d = 5C+7H+7O;      {CO(OH)COCH(OOH)CH(OH)CH2(O.)                                                                           1.AHK    }
+  GAH501r = 5C+7H+N+9O;    {CO(OH)COCH(OOH)CH(OH)CH2(ONO2)                                                                         AHNKO    }
+  GAH504O = 5C+8H+8O;      {CO(OH)COCH(OOH)CH(OH)CH2(OOH)                                                                          AHHKO    }
+  GAH504X = 5C+6H+7O;      {CO(OH)COCH(OOH)CH(OH)CHO                                                                               AHDKO    }
+  G3A501G = 5C+5H+9O;      {CO(OH)COCH(OOH)CH(OH)CO(OO.)                                                                           3.AHK    }
+  GAG501O = 5C+6H+9O;      {CO(OH)COCH(OOH)CH(OH)CO(OOH)                                                                           AGHKO    }
+  GPA501R = 5C+5H+N+11O;   {CO(OH)COCH(OOH)CH(OH)CO(OONO2)                                                                         PAHKO    }
+  G1A506y = 5C+6H+N+9O;    {CO(OH)COCH(OOH)CH(ONO2)CH2(O.)                                                                         1.AHN    }
+  GAH503b = 5C+6H+2N+11O;  {CO(OH)COCH(OOH)CH(ONO2)CH2(ONO2)                                                                       AHNNK    }
+  G2A506y = 5C+6H+N+10O;   {CO(OH)COCH(OOH)CH(ONO2)CH2(OO.)                                                                        2.AHN    }
+  GAH505R = 5C+7H+N+10O;   {CO(OH)COCH(OOH)CH(ONO2)CH2(OOH)                                                                        AHHNK    }
+  GAH505B = 5C+5H+N+9O;    {CO(OH)COCH(OOH)CH(ONO2)CHO                                                                             AHNDK    }
+  G3A501c = 5C+4H+N+11O;   {CO(OH)COCH(OOH)CH(ONO2)CO(OO.)                                                                         3.AHN    }
+  GAG501u = 5C+5H+N+11O;   {CO(OH)COCH(OOH)CH(ONO2)CO(OOH)                                                                         AGHNK    }
+  GPA501s = 5C+4H+2N+13O;  {CO(OH)COCH(OOH)CH(ONO2)CO(OONO2)                                                                       PAHNK    }
+  G2A506u = 5C+6H+N+10O;   {CO(OH)COCH(OOH)CH(OO.)CH2(ONO2)                                                                        2.AHN    }
+  G2A505h = 5C+7H+9O;      {CO(OH)COCH(OOH)CH(OO.)CH2(OOH)                                                                         2.AHH    }
+  G2A506S = 5C+5H+9O;      {CO(OH)COCH(OOH)CH(OO.)CO(OH)                                                                           2.AAH    }
+  G2A506R = 5C+5H+10O;     {CO(OH)COCH(OOH)CH(OO.)CO(OOH)                                                                          2.AGH    }
+  G2P5078 = 5C+4H+N+12O;   {CO(OH)COCH(OOH)CH(OO.)CO(OONO2)                                                                        2.PAH    }
+  G1A509Q = 5C+7H+8O;      {CO(OH)COCH(OOH)CH(OOH)CH2(O.)                                                                          1.AHH    }
+  GAH505O = 5C+7H+N+10O;   {CO(OH)COCH(OOH)CH(OOH)CH2(ONO2)                                                                        AHHNK    }
+  GAH505a = 5C+8H+9O;      {CO(OH)COCH(OOH)CH(OOH)CH2(OOH)                                                                         AHHHK    }
+  GAH505g = 5C+6H+8O;      {CO(OH)COCH(OOH)CH(OOH)CHO                                                                              AHHDK    }
+  GAA5018 = 5C+6H+9O;      {CO(OH)COCH(OOH)CH(OOH)CO(OH)                                                                           AAHHK    }
+  G3A5023 = 5C+5H+10O;     {CO(OH)COCH(OOH)CH(OOH)CO(OO.)                                                                          3.AHH    }
+  GAG501v = 5C+6H+10O;     {CO(OH)COCH(OOH)CH(OOH)CO(OOH)                                                                          AGHHK    }
+  GPA501w = 5C+5H+N+12O;   {CO(OH)COCH(OOH)CH(OOH)CO(OONO2)                                                                        PAHHK    }
+  G1A4012 = 4C+5H+6O;      {CO(OH)COCH(OOH)CH2(O.)                                                                                 1.AHK    }
+  GAH400S = 4C+5H+N+8O;    {CO(OH)COCH(OOH)CH2(ONO2)                                                                               AHNK     }
+  G2A401D = 4C+5H+7O;      {CO(OH)COCH(OOH)CH2(OO.)                                                                                2.AHK    }
+  GAH400z = 4C+6H+7O;      {CO(OH)COCH(OOH)CH2(OOH)                                                                                AHHK     }
+  G1A503K = 5C+7H+6O;      {CO(OH)COCH(OOH)CH2CH2(O.)                                                                              1.AHK    }
+  GAH5019 = 5C+7H+N+8O;    {CO(OH)COCH(OOH)CH2CH2(ONO2)                                                                            AHNK     }
+  G2A505j = 5C+7H+7O;      {CO(OH)COCH(OOH)CH2CH2(OO.)                                                                             2.AHK    }
+  GAH504c = 5C+8H+7O;      {CO(OH)COCH(OOH)CH2CH2(OOH)                                                                             AHHK     }
+  GAH503F = 5C+6H+6O;      {CO(OH)COCH(OOH)CH2CHO                                                                                  AHDK     }
+  G3A500k = 5C+5H+8O;      {CO(OH)COCH(OOH)CH2CO(OO.)                                                                              3.AHK    }
+  GAG5011 = 5C+6H+8O;      {CO(OH)COCH(OOH)CH2CO(OOH)                                                                              AGHK     }
+  GPA5017 = 5C+5H+N+10O;   {CO(OH)COCH(OOH)CH2CO(OONO2)                                                                            PAHK     }
+  GAH400s = 4C+4H+6O;      {CO(OH)COCH(OOH)CHO                                                                                     AHDK     }
+  GAA400A = 4C+4H+7O;      {CO(OH)COCH(OOH)CO(OH)                                                                                  AAHK     }
+  G3A400K = 4C+3H+8O;      {CO(OH)COCH(OOH)CO(OO.)                                                                                 3.AHK    }
+  GAG400G = 4C+4H+8O;      {CO(OH)COCH(OOH)CO(OOH)                                                                                 AGHK     }
+  GPA400J = 4C+3H+N+10O;   {CO(OH)COCH(OOH)CO(OONO2)                                                                               PAHK     }
+  G1A506z = 5C+5H+7O;      {CO(OH)COCH(OOH)COCH2(O.)                                                                               1.AHK    }
+  GAH503d = 5C+5H+N+9O;    {CO(OH)COCH(OOH)COCH2(ONO2)                                                                             AHNKK    }
+  G2A5072 = 5C+5H+8O;      {CO(OH)COCH(OOH)COCH2(OO.)                                                                              2.AHK    }
+  GAH505U = 5C+6H+8O;      {CO(OH)COCH(OOH)COCH2(OOH)                                                                              AHHKK    }
+  GAH505C = 5C+4H+7O;      {CO(OH)COCH(OOH)COCHO                                                                                   AHDKK    }
+  GAA5019 = 5C+4H+8O;      {CO(OH)COCH(OOH)COCO(OH)                                                                                AAHKK    }
+  G3A5022 = 5C+3H+9O;      {CO(OH)COCH(OOH)COCO(OO.)                                                                               3.AHK    }
+  GAG501t = 5C+4H+9O;      {CO(OH)COCH(OOH)COCO(OOH)                                                                               AGHKK    }
+  GPA501x = 5C+3H+N+11O;   {CO(OH)COCH(OOH)COCO(OONO2)                                                                             PAHKK    }
+  G1A3006 = 3C+3H+4O;      {CO(OH)COCH2(O.)                                                                                        1.AK     }
+  GAN3005 = 3C+3H+N+6O;    {CO(OH)COCH2(ONO2)                                                                                      ANK      }
+  G2A3006 = 3C+3H+5O;      {CO(OH)COCH2(OO.)                                                                                       2.AK     }
+  GAH3006 = 3C+4H+5O;      {CO(OH)COCH2(OOH)                                                                                       AHK      }
+  G1A500y = 5C+6H+N+7O;    {CO(OH)COCH2CH(O.)CH2(ONO2)                                                                             1.ANK    }
+  G1A504h = 5C+7H+6O;      {CO(OH)COCH2CH(O.)CH2(OOH)                                                                              1.AHK    }
+  G1A503Q = 5C+5H+5O;      {CO(OH)COCH2CH(O.)CHO                                                                                   1.ADK    }
+  G1A5073 = 5C+5H+6O;      {CO(OH)COCH2CH(O.)CO(OH)                                                                                1.AAK    }
+  G1A5072 = 5C+5H+7O;      {CO(OH)COCH2CH(O.)CO(OOH)                                                                               1.AGK    }
+  G1P507T = 5C+4H+N+9O;    {CO(OH)COCH2CH(O.)CO(OONO2)                                                                             1.PAK    }
+  G1A501S = 5C+7H+5O;      {CO(OH)COCH2CH(OH)CH2(O.)                                                                               1.AKO    }
+  GAN500M = 5C+7H+N+7O;    {CO(OH)COCH2CH(OH)CH2(ONO2)                                                                             ANKO     }
+  G2A503a = 5C+7H+6O;      {CO(OH)COCH2CH(OH)CH2(OO.)                                                                              2.AKO    }
+  GAH501k = 5C+8H+6O;      {CO(OH)COCH2CH(OH)CH2(OOH)                                                                              AHKO     }
+  GAD500D = 5C+6H+5O;      {CO(OH)COCH2CH(OH)CHO                                                                                   ADKO     }
+  G3A500R = 5C+5H+7O;      {CO(OH)COCH2CH(OH)CO(OO.)                                                                               3.AKK    }
+  GAG500M = 5C+6H+7O;      {CO(OH)COCH2CH(OH)CO(OOH)                                                                               AGKO     }
+  GPA500S = 5C+5H+N+9O;    {CO(OH)COCH2CH(OH)CO(OONO2)                                                                             PAKO     }
+  G1A503L = 5C+6H+N+7O;    {CO(OH)COCH2CH(ONO2)CH2(O.)                                                                             1.ANK    }
+  GAN5017 = 5C+6H+2N+9O;   {CO(OH)COCH2CH(ONO2)CH2(ONO2)                                                                           ANNK     }
+  G2A504Z = 5C+6H+N+8O;    {CO(OH)COCH2CH(ONO2)CH2(OO.)                                                                            2.ANK    }
+  GAH502x = 5C+7H+N+8O;    {CO(OH)COCH2CH(ONO2)CH2(OOH)                                                                            AHNK     }
+  GAN502c = 5C+5H+N+7O;    {CO(OH)COCH2CH(ONO2)CHO                                                                                 ANDK     }
+  GAA500a = 5C+5H+N+8O;    {CO(OH)COCH2CH(ONO2)CO(OH)                                                                              AANK     }
+  G3A500v = 5C+4H+N+9O;    {CO(OH)COCH2CH(ONO2)CO(OO.)                                                                             3.ANK    }
+  GAG5017 = 5C+5H+N+9O;    {CO(OH)COCH2CH(ONO2)CO(OOH)                                                                             AGNK     }
+  GPA5013 = 5C+4H+2N+11O;  {CO(OH)COCH2CH(ONO2)CO(OONO2)                                                                           PANK     }
+  G2A500s = 5C+6H+N+8O;    {CO(OH)COCH2CH(OO.)CH2(ONO2)                                                                            2.ANK    }
+  G2A503k = 5C+7H+7O;      {CO(OH)COCH2CH(OO.)CH2(OOH)                                                                             2.AHK    }
+  G2A502n = 5C+5H+6O;      {CO(OH)COCH2CH(OO.)CHO                                                                                  2.ADK    }
+  G2A504x = 5C+5H+7O;      {CO(OH)COCH2CH(OO.)CO(OH)                                                                               2.AAK    }
+  G2A504w = 5C+5H+8O;      {CO(OH)COCH2CH(OO.)CO(OOH)                                                                              2.AGK    }
+  G2P505I = 5C+4H+N+10O;   {CO(OH)COCH2CH(OO.)CO(OONO2)                                                                            2.PAK    }
+  G1A503N = 5C+7H+6O;      {CO(OH)COCH2CH(OOH)CH2(O.)                                                                              1.AHK    }
+  GAH501A = 5C+7H+N+8O;    {CO(OH)COCH2CH(OOH)CH2(ONO2)                                                                            AHNK     }
+  GAH504e = 5C+8H+7O;      {CO(OH)COCH2CH(OOH)CH2(OOH)                                                                             AHHK     }
+  GAH503c = 5C+6H+6O;      {CO(OH)COCH2CH(OOH)CHO                                                                                  AHDK     }
+  GAA500h = 5C+6H+7O;      {CO(OH)COCH2CH(OOH)CO(OH)                                                                               AAHK     }
+  G3A500w = 5C+5H+8O;      {CO(OH)COCH2CH(OOH)CO(OO.)                                                                              3.AHK    }
+  GAG501B = 5C+6H+8O;      {CO(OH)COCH2CH(OOH)CO(OOH)                                                                              AGHK     }
+  GPA501G = 5C+5H+N+10O;   {CO(OH)COCH2CH(OOH)CO(OONO2)                                                                            PAHK     }
+  G1A400R = 4C+5H+4O;      {CO(OH)COCH2CH2(O.)                                                                                     1.AK     }
+  GAN400A = 4C+5H+N+6O;    {CO(OH)COCH2CH2(ONO2)                                                                                   ANK      }
+  G2A400S = 4C+5H+5O;      {CO(OH)COCH2CH2(OO.)                                                                                    2.AK     }
+  GAH400Y = 4C+6H+5O;      {CO(OH)COCH2CH2(OOH)                                                                                    AHK      }
+  G1A500w = 5C+7H+4O;      {CO(OH)COCH2CH2CH2(O.)                                                                                  1.AK     }
+  GAN500C = 5C+7H+N+6O;    {CO(OH)COCH2CH2CH2(ONO2)                                                                                ANK      }
+  G2A503l = 5C+7H+5O;      {CO(OH)COCH2CH2CH2(OO.)                                                                                 2.AK     }
+  GAH501w = 5C+8H+5O;      {CO(OH)COCH2CH2CH2(OOH)                                                                                 AHK      }
+  GAD500A = 5C+6H+4O;      {CO(OH)COCH2CH2CHO                                                                                      ADK      }
+  G3A500H = 5C+5H+6O;      {CO(OH)COCH2CH2CO(OO.)                                                                                  3.AKK    }
+  GAG500N = 5C+6H+6O;      {CO(OH)COCH2CH2CO(OOH)                                                                                  AGK      }
+  GPA500J = 5C+5H+N+8O;    {CO(OH)COCH2CH2CO(OONO2)                                                                                PAK      }
+  GAD4005 = 4C+4H+4O;      {CO(OH)COCH2CHO                                                                                         ADK      }
+  G3A4003 = 4C+3H+6O;      {CO(OH)COCH2CO(OO.)                                                                                     3.AKK    }
+  GAG4003 = 4C+4H+6O;      {CO(OH)COCH2CO(OOH)                                                                                     AGK      }
+  GPA4003 = 4C+3H+N+8O;    {CO(OH)COCH2CO(OONO2)                                                                                   PAK      }
+  G1A502I = 5C+5H+5O;      {CO(OH)COCH2COCH2(O.)                                                                                   1.AKK    }
+  GAN5018 = 5C+5H+N+7O;    {CO(OH)COCH2COCH2(ONO2)                                                                                 ANKK     }
+  G2A501x = 5C+5H+6O;      {CO(OH)COCH2COCH2(OO.)                                                                                  2.AKK    }
+  GAH5025 = 5C+6H+6O;      {CO(OH)COCH2COCH2(OOH)                                                                                  AHKK     }
+  GAD500I = 5C+4H+5O;      {CO(OH)COCH2COCHO                                                                                       ADKK     }
+  GAA500i = 5C+4H+6O;      {CO(OH)COCH2COCO(OH)                                                                                    AAKK     }
+  G3A501m = 5C+3H+7O;      {CO(OH)COCH2COCO(OO.)                                                                                   3.AKK    }
+  GAG5019 = 5C+4H+7O;      {CO(OH)COCH2COCO(OOH)                                                                                   AGKK     }
+  GPA501H = 5C+3H+N+9O;    {CO(OH)COCH2COCO(OONO2)                                                                                 PAKK     }
+  GAD3002 = 3C+2H+4O;      {CO(OH)COCHO                                                                                            ADK      }
+  GAA3004 = 3C+2H+5O;      {CO(OH)COCO(OH)                                                                                         AAK      }
+  G3A3004 = 3C+H+6O;       {CO(OH)COCO(OO.)                                                                                        3.AKK    }
+  GAG3004 = 3C+2H+6O;      {CO(OH)COCO(OOH)                                                                                        AGK      }
+  GPA3004 = 3C+H+N+8O;     {CO(OH)COCO(OONO2)                                                                                      PAK      }
+  G1A5034 = 5C+4H+N+8O;    {CO(OH)COCOCH(O.)CH2(ONO2)                                                                              1.ANK    }
+  G1A508R = 5C+5H+7O;      {CO(OH)COCOCH(O.)CH2(OOH)                                                                               1.AHK    }
+  G1A508S = 5C+3H+6O;      {CO(OH)COCOCH(O.)CHO                                                                                    1.ADK    }
+  G1A508N = 5C+3H+7O;      {CO(OH)COCOCH(O.)CO(OH)                                                                                 1.AAK    }
+  G1A508J = 5C+3H+8O;      {CO(OH)COCOCH(O.)CO(OOH)                                                                                1.AGK    }
+  G1P509F = 5C+2H+N+10O;   {CO(OH)COCOCH(O.)CO(OONO2)                                                                              1.PAK    }
+  G1A502f = 5C+5H+6O;      {CO(OH)COCOCH(OH)CH2(O.)                                                                                1.AKK    }
+  GAN501T = 5C+5H+N+8O;    {CO(OH)COCOCH(OH)CH2(ONO2)                                                                              ANKKO    }
+  G2A502F = 5C+5H+7O;      {CO(OH)COCOCH(OH)CH2(OO.)                                                                               2.AKK    }
+  GAH502p = 5C+6H+7O;      {CO(OH)COCOCH(OH)CH2(OOH)                                                                               AHKKO    }
+  GAD500J = 5C+4H+6O;      {CO(OH)COCOCH(OH)CHO                                                                                    ADKKO    }
+  G3A500d = 5C+3H+8O;      {CO(OH)COCOCH(OH)CO(OO.)                                                                                3.AKK    }
+  GAG500s = 5C+4H+8O;      {CO(OH)COCOCH(OH)CO(OOH)                                                                                AGKKO    }
+  GPA500v = 5C+3H+N+10O;   {CO(OH)COCOCH(OH)CO(OONO2)                                                                              PAKKO    }
+  G1A505O = 5C+4H+N+8O;    {CO(OH)COCOCH(ONO2)CH2(O.)                                                                              1.ANK    }
+  GAN502U = 5C+4H+2N+10O;  {CO(OH)COCOCH(ONO2)CH2(ONO2)                                                                            ANNKK    }
+  G2A5048 = 5C+4H+N+9O;    {CO(OH)COCOCH(ONO2)CH2(OO.)                                                                             2.ANK    }
+  GAH504r = 5C+5H+N+9O;    {CO(OH)COCOCH(ONO2)CH2(OOH)                                                                             AHNKK    }
+  GAN502o = 5C+3H+N+8O;    {CO(OH)COCOCH(ONO2)CHO                                                                                  ANDKK    }
+  GAA500x = 5C+3H+N+9O;    {CO(OH)COCOCH(ONO2)CO(OH)                                                                               AANKK    }
+  G3A501Q = 5C+2H+N+10O;   {CO(OH)COCOCH(ONO2)CO(OO.)                                                                              3.ANK    }
+  GAG501e = 5C+3H+N+10O;   {CO(OH)COCOCH(ONO2)CO(OOH)                                                                              AGNKK    }
+  GPA501i = 5C+2H+2N+12O;  {CO(OH)COCOCH(ONO2)CO(OONO2)                                                                            PANKK    }
+  G2A502b = 5C+4H+N+9O;    {CO(OH)COCOCH(OO.)CH2(ONO2)                                                                             2.ANK    }
+  G2A5061 = 5C+3H+8O;      {CO(OH)COCOCH(OO.)CO(OH)                                                                                2.AAK    }
+  G2A505w = 5C+3H+9O;      {CO(OH)COCOCH(OO.)CO(OOH)                                                                               2.AGK    }
+  G2P506Y = 5C+2H+N+11O;   {CO(OH)COCOCH(OO.)CO(OONO2)                                                                             2.PAK    }
+  G1A506c = 5C+5H+7O;      {CO(OH)COCOCH(OOH)CH2(O.)                                                                               1.AHK    }
+  GAH503S = 5C+5H+N+9O;    {CO(OH)COCOCH(OOH)CH2(ONO2)                                                                             AHNKK    }
+  GAH505h = 5C+6H+8O;      {CO(OH)COCOCH(OOH)CH2(OOH)                                                                              AHHKK    }
+  GAH504v = 5C+4H+7O;      {CO(OH)COCOCH(OOH)CHO                                                                                   AHDKK    }
+  GAA500y = 5C+4H+8O;      {CO(OH)COCOCH(OOH)CO(OH)                                                                                AAHKK    }
+  G3A501S = 5C+3H+9O;      {CO(OH)COCOCH(OOH)CO(OO.)                                                                               3.AHK    }
+  GAG501f = 5C+4H+9O;      {CO(OH)COCOCH(OOH)CO(OOH)                                                                               AGHKK    }
+  GPA501j = 5C+3H+N+11O;   {CO(OH)COCOCH(OOH)CO(OONO2)                                                                             PAHKK    }
+  G1A400m = 4C+3H+5O;      {CO(OH)COCOCH2(O.)                                                                                      1.AKK    }
+  GAN400W = 4C+3H+N+7O;    {CO(OH)COCOCH2(ONO2)                                                                                    ANKK     }
+  G2A400f = 4C+3H+6O;      {CO(OH)COCOCH2(OO.)                                                                                     2.AKK    }
+  GAH400n = 4C+4H+6O;      {CO(OH)COCOCH2(OOH)                                                                                     AHKK     }
+  G1A5026 = 5C+5H+5O;      {CO(OH)COCOCH2CH2(O.)                                                                                   1.AKK    }
+  GAN5012 = 5C+5H+N+7O;    {CO(OH)COCOCH2CH2(ONO2)                                                                                 ANKK     }
+  G2A501n = 5C+5H+6O;      {CO(OH)COCOCH2CH2(OO.)                                                                                  2.AKK    }
+  GAH502R = 5C+6H+6O;      {CO(OH)COCOCH2CH2(OOH)                                                                                  AHKK     }
+  GAD500H = 5C+4H+5O;      {CO(OH)COCOCH2CHO                                                                                       ADKK     }
+  G3A500Z = 5C+3H+7O;      {CO(OH)COCOCH2CO(OO.)                                                                                   3.AKK    }
+  GAG500d = 5C+4H+7O;      {CO(OH)COCOCH2CO(OOH)                                                                                   AGKK     }
+  GPA500m = 5C+3H+N+9O;    {CO(OH)COCOCH2CO(OONO2)                                                                                 PAKK     }
+  GAD4008 = 4C+2H+5O;      {CO(OH)COCOCHO                                                                                          ADKK     }
+  GAA400B = 4C+2H+6O;      {CO(OH)COCOCO(OH)                                                                                       AAKK     }
+  G3A400N = 4C+H+7O;       {CO(OH)COCOCO(OO.)                                                                                      3.AKK    }
+  GAG400H = 4C+2H+7O;      {CO(OH)COCOCO(OOH)                                                                                      AGKK     }
+  GPA400K = 4C+H+N+9O;     {CO(OH)COCOCO(OONO2)                                                                                    PAKK     }
+  G1A505Q = 5C+3H+6O;      {CO(OH)COCOCOCH2(O.)                                                                                    1.AKK    }
+  GAN502W = 5C+3H+N+8O;    {CO(OH)COCOCOCH2(ONO2)                                                                                  ANKKK    }
+  G2A504A = 5C+3H+7O;      {CO(OH)COCOCOCH2(OO.)                                                                                   2.AKK    }
+  GAH504t = 5C+4H+7O;      {CO(OH)COCOCOCH2(OOH)                                                                                   AHKKK    }
+  GAD500P = 5C+2H+6O;      {CO(OH)COCOCOCHO                                                                                        ADKKK    }
+  GAA500z = 5C+2H+7O;      {CO(OH)COCOCOCO(OH)                                                                                     AAKKK    }
+  G3A501y = 5C+H+8O;       {CO(OH)COCOCOCO(OO.)                                                                                    3.AKK    }
+  GAG501g = 5C+2H+8O;      {CO(OH)COCOCOCO(OOH)                                                                                    AGKKK    }
+  GPA501k = 5C+H+N+10O;    {CO(OH)COCOCOCO(OONO2)                                                                                  PAKKK    }
+  GAU3000 = 3C+4H+2O;      {CO(OH)CdH=CdH2                                                                                         AU       }
+  G1G506p = 5C+7H+7O;      {CO(OOH)CH(O.)CH(OH)CH(OH)CHO                                                                           1.GDO    }
+  G1P50AT = 5C+6H+N+11O;   {CO(OOH)CH(O.)CH(OH)CH(OH)CO(OONO2)                                                                     1.PGO    }
+  G1G505N = 5C+6H+N+9O;    {CO(OOH)CH(O.)CH(OH)CH(ONO2)CHO                                                                         1.GND    }
+  G1P509h = 5C+5H+2N+13O;  {CO(OOH)CH(O.)CH(OH)CH(ONO2)CO(OONO2)                                                                   1.PGN    }
+  G1G5085 = 5C+7H+8O;      {CO(OOH)CH(O.)CH(OH)CH(OOH)CHO                                                                          1.GHD    }
+  G1P50BJ = 5C+6H+N+12O;   {CO(OOH)CH(O.)CH(OH)CH(OOH)CO(OONO2)                                                                    1.PGH    }
+  G1G505I = 5C+7H+6O;      {CO(OOH)CH(O.)CH(OH)CH2CHO                                                                              1.GDO    }
+  G1P50AG = 5C+6H+N+10O;   {CO(OOH)CH(O.)CH(OH)CH2CO(OONO2)                                                                        1.PGO    }
+  G1G400b = 4C+5H+6O;      {CO(OOH)CH(O.)CH(OH)CHO                                                                                 1.GDO    }
+  G1P401M = 4C+4H+N+10O;   {CO(OOH)CH(O.)CH(OH)CO(OONO2)                                                                           1.PGO    }
+  G1G505O = 5C+5H+7O;      {CO(OOH)CH(O.)CH(OH)COCHO                                                                               1.GDK    }
+  G1P5097 = 5C+4H+N+11O;   {CO(OOH)CH(O.)CH(OH)COCO(OONO2)                                                                         1.PGK    }
+  G1G5068 = 5C+6H+N+9O;    {CO(OOH)CH(O.)CH(ONO2)CH(OH)CHO                                                                         1.GND    }
+  G1P508m = 5C+5H+2N+13O;  {CO(OOH)CH(O.)CH(ONO2)CH(OH)CO(OONO2)                                                                   1.PGN    }
+  G1G508F = 5C+5H+2N+11O;  {CO(OOH)CH(O.)CH(ONO2)CH(ONO2)CHO                                                                       1.GNN    }
+  G1P50Am = 5C+4H+3N+15O;  {CO(OOH)CH(O.)CH(ONO2)CH(ONO2)CO(OONO2)                                                                 1.PGN    }
+  G1G508N = 5C+6H+N+10O;   {CO(OOH)CH(O.)CH(ONO2)CH(OOH)CHO                                                                        1.GHN    }
+  G1P50Ar = 5C+5H+2N+14O;  {CO(OOH)CH(O.)CH(ONO2)CH(OOH)CO(OONO2)                                                                  1.PGH    }
+  G1G5055 = 5C+6H+N+8O;    {CO(OOH)CH(O.)CH(ONO2)CH2CHO                                                                            1.GND    }
+  G1P508Z = 5C+5H+2N+12O;  {CO(OOH)CH(O.)CH(ONO2)CH2CO(OONO2)                                                                      1.PGN    }
+  G1G400z = 4C+4H+N+8O;    {CO(OOH)CH(O.)CH(ONO2)CHO                                                                               1.GND    }
+  G1P401Z = 4C+3H+2N+12O;  {CO(OOH)CH(O.)CH(ONO2)CO(OONO2)                                                                         1.PGN    }
+  G1G507U = 5C+4H+N+9O;    {CO(OOH)CH(O.)CH(ONO2)COCHO                                                                             1.GND    }
+  G1P50Ap = 5C+3H+2N+13O;  {CO(OOH)CH(O.)CH(ONO2)COCO(OONO2)                                                                       1.PGN    }
+  G1G506o = 5C+7H+8O;      {CO(OOH)CH(O.)CH(OOH)CH(OH)CHO                                                                          1.GHD    }
+  G1P50AQ = 5C+6H+N+12O;   {CO(OOH)CH(O.)CH(OOH)CH(OH)CO(OONO2)                                                                    1.PGH    }
+  G1G507o = 5C+6H+N+10O;   {CO(OOH)CH(O.)CH(OOH)CH(ONO2)CHO                                                                        1.GHN    }
+  G1P509f = 5C+5H+2N+14O;  {CO(OOH)CH(O.)CH(OOH)CH(ONO2)CO(OONO2)                                                                  1.PGH    }
+  G1G507r = 5C+7H+9O;      {CO(OOH)CH(O.)CH(OOH)CH(OOH)CHO                                                                         1.GHH    }
+  G1P50BG = 5C+6H+N+13O;   {CO(OOH)CH(O.)CH(OOH)CH(OOH)CO(OONO2)                                                                   1.PGH    }
+  G1G505A = 5C+7H+7O;      {CO(OOH)CH(O.)CH(OOH)CH2CHO                                                                             1.GHD    }
+  G1P50A4 = 5C+6H+N+11O;   {CO(OOH)CH(O.)CH(OOH)CH2CO(OONO2)                                                                       1.PGH    }
+  G1G401B = 4C+5H+7O;      {CO(OOH)CH(O.)CH(OOH)CHO                                                                                1.GHD    }
+  G1P401d = 4C+4H+N+11O;   {CO(OOH)CH(O.)CH(OOH)CO(OONO2)                                                                          1.PGH    }
+  G1G505H = 5C+5H+8O;      {CO(OOH)CH(O.)CH(OOH)COCHO                                                                              1.GHD    }
+  G1P50AA = 5C+4H+N+12O;   {CO(OOH)CH(O.)CH(OOH)COCO(OONO2)                                                                        1.PGH    }
+  G1G503K = 5C+7H+6O;      {CO(OOH)CH(O.)CH2CH(OH)CHO                                                                              1.GDO    }
+  G1P504B = 5C+6H+N+10O;   {CO(OOH)CH(O.)CH2CH(OH)CO(OONO2)                                                                        1.PGO    }
+  G1G502i = 5C+6H+N+8O;    {CO(OOH)CH(O.)CH2CH(ONO2)CHO                                                                            1.GND    }
+  G1P506H = 5C+5H+2N+12O;  {CO(OOH)CH(O.)CH2CH(ONO2)CO(OONO2)                                                                      1.PGN    }
+  G1G505S = 5C+7H+7O;      {CO(OOH)CH(O.)CH2CH(OOH)CHO                                                                             1.GHD    }
+  G1P50AM = 5C+6H+N+11O;   {CO(OOH)CH(O.)CH2CH(OOH)CO(OONO2)                                                                       1.PGH    }
+  G1G502T = 5C+7H+5O;      {CO(OOH)CH(O.)CH2CH2CHO                                                                                 1.GD     }
+  G1P507N = 5C+6H+N+9O;    {CO(OOH)CH(O.)CH2CH2CO(OONO2)                                                                           1.PG     }
+  G1G400O = 4C+5H+5O;      {CO(OOH)CH(O.)CH2CHO                                                                                    1.GD     }
+  G1P400v = 4C+4H+N+9O;    {CO(OOH)CH(O.)CH2CO(OONO2)                                                                              1.PG     }
+  G1G502k = 5C+5H+6O;      {CO(OOH)CH(O.)CH2COCHO                                                                                  1.GDK    }
+  G1P5081 = 5C+4H+N+10O;   {CO(OOH)CH(O.)CH2COCO(OONO2)                                                                            1.PGK    }
+  G1G3009 = 3C+3H+5O;      {CO(OOH)CH(O.)CHO                                                                                       1.GD     }
+  G1G3008 = 3C+3H+7O;      {CO(OOH)CH(O.)CO(OOH)                                                                                   1.GG     }
+  G1P3009 = 3C+2H+N+9O;    {CO(OOH)CH(O.)CO(OONO2)                                                                                 1.PG     }
+  G1G504j = 5C+5H+7O;      {CO(OOH)CH(O.)COCH(OH)CHO                                                                               1.GDK    }
+  G1P5067 = 5C+4H+N+11O;   {CO(OOH)CH(O.)COCH(OH)CO(OONO2)                                                                         1.PGK    }
+  G1G505Q = 5C+4H+N+9O;    {CO(OOH)CH(O.)COCH(ONO2)CHO                                                                             1.GND    }
+  G1P509C = 5C+3H+2N+13O;  {CO(OOH)CH(O.)COCH(ONO2)CO(OONO2)                                                                       1.PGN    }
+  G1G508T = 5C+5H+8O;      {CO(OOH)CH(O.)COCH(OOH)CHO                                                                              1.GHD    }
+  G1P50Aw = 5C+4H+N+12O;   {CO(OOH)CH(O.)COCH(OOH)CO(OONO2)                                                                        1.PGH    }
+  G1G504D = 5C+5H+6O;      {CO(OOH)CH(O.)COCH2CHO                                                                                  1.GDK    }
+  G1P505k = 5C+4H+N+10O;   {CO(OOH)CH(O.)COCH2CO(OONO2)                                                                            1.PGK    }
+  G1G4014 = 4C+3H+6O;      {CO(OOH)CH(O.)COCHO                                                                                     1.GDK    }
+  G1P401G = 4C+2H+N+10O;   {CO(OOH)CH(O.)COCO(OONO2)                                                                               1.PGK    }
+  G1G507Y = 5C+3H+7O;      {CO(OOH)CH(O.)COCOCHO                                                                                   1.GDK    }
+  G1P509D = 5C+2H+N+11O;   {CO(OOH)CH(O.)COCOCO(OONO2)                                                                             1.PGK    }
+  G1G501O = 5C+7H+7O;      {CO(OOH)CH(OH)CH(O.)CH(OH)CHO                                                                           1.GDO    }
+  G1G503r = 5C+7H+9O;      {CO(OOH)CH(OH)CH(O.)CH(OH)CO(OOH)                                                                       1.GGO    }
+  G1P504h = 5C+6H+N+11O;   {CO(OOH)CH(OH)CH(O.)CH(OH)CO(OONO2)                                                                     1.PGO    }
+  G1G5066 = 5C+6H+N+9O;    {CO(OOH)CH(OH)CH(O.)CH(ONO2)CHO                                                                         1.GND    }
+  G1P509r = 5C+5H+2N+13O;  {CO(OOH)CH(OH)CH(O.)CH(ONO2)CO(OONO2)                                                                   1.PGN    }
+  G1G503T = 5C+7H+8O;      {CO(OOH)CH(OH)CH(O.)CH(OOH)CHO                                                                          1.GHD    }
+  G1P50AZ = 5C+6H+N+12O;   {CO(OOH)CH(OH)CH(O.)CH(OOH)CO(OONO2)                                                                    1.PGH    }
+  G1G500x = 5C+7H+6O;      {CO(OOH)CH(OH)CH(O.)CH2CHO                                                                              1.GDO    }
+  G1G502g = 5C+7H+8O;      {CO(OOH)CH(OH)CH(O.)CH2CO(OOH)                                                                          1.GGO    }
+  G1P503L = 5C+6H+N+10O;   {CO(OOH)CH(OH)CH(O.)CH2CO(OONO2)                                                                        1.PGO    }
+  G1G400y = 4C+5H+6O;      {CO(OOH)CH(OH)CH(O.)CHO                                                                                 1.GDO    }
+  G1G4012 = 4C+5H+8O;      {CO(OOH)CH(OH)CH(O.)CO(OOH)                                                                             1.GGO    }
+  G1P401O = 4C+4H+N+10O;   {CO(OOH)CH(OH)CH(O.)CO(OONO2)                                                                           1.PGO    }
+  G1G507B = 5C+5H+7O;      {CO(OOH)CH(OH)CH(O.)COCHO                                                                               1.GDK    }
+  G1G508X = 5C+5H+9O;      {CO(OOH)CH(OH)CH(O.)COCO(OOH)                                                                           1.GGK    }
+  G1P509t = 5C+4H+N+11O;   {CO(OOH)CH(OH)CH(O.)COCO(OONO2)                                                                         1.PGK    }
+  G1G506m = 5C+7H+7O;      {CO(OOH)CH(OH)CH(OH)CH(O.)CHO                                                                           1.GDO    }
+  G1G508R = 5C+7H+9O;      {CO(OOH)CH(OH)CH(OH)CH(O.)CO(OOH)                                                                       1.GGO    }
+  G1P50Ab = 5C+6H+N+11O;   {CO(OOH)CH(OH)CH(OH)CH(O.)CO(OONO2)                                                                     1.PGO    }
+  G1G503O = 5C+9H+7O;      {CO(OOH)CH(OH)CH(OH)CH(OH)CH2(O.)                                                                       1.GOO    }
+  G2G502M = 5C+9H+8O;      {CO(OOH)CH(OH)CH(OH)CH(OH)CH2(OO.)                                                                      2.GOO    }
+  GGD500A = 5C+8H+7O;      {CO(OOH)CH(OH)CH(OH)CH(OH)CHO                                                                           GDOOO    }
+  G3G500N = 5C+7H+9O;      {CO(OOH)CH(OH)CH(OH)CH(OH)CO(OO.)                                                                       3.GKO    }
+  GGG500F = 5C+8H+9O;      {CO(OOH)CH(OH)CH(OH)CH(OH)CO(OOH)                                                                       GGOOO    }
+  GPG500R = 5C+7H+N+11O;   {CO(OOH)CH(OH)CH(OH)CH(OH)CO(OONO2)                                                                     PGOOO    }
+  G1G506j = 5C+8H+N+9O;    {CO(OOH)CH(OH)CH(OH)CH(ONO2)CH2(O.)                                                                     1.GNO    }
+  G2G504g = 5C+8H+N+10O;   {CO(OOH)CH(OH)CH(OH)CH(ONO2)CH2(OO.)                                                                    2.GNO    }
+  GGN502c = 5C+7H+N+9O;    {CO(OOH)CH(OH)CH(OH)CH(ONO2)CHO                                                                         GNDOO    }
+  G3G5011 = 5C+6H+N+11O;   {CO(OOH)CH(OH)CH(OH)CH(ONO2)CO(OO.)                                                                     3.GNK    }
+  GGG500f = 5C+7H+N+11O;   {CO(OOH)CH(OH)CH(OH)CH(ONO2)CO(OOH)                                                                     GGNOO    }
+  GPG501J = 5C+6H+2N+13O;  {CO(OOH)CH(OH)CH(OH)CH(ONO2)CO(OONO2)                                                                   PGNOO    }
+  G2G505p = 5C+7H+10O;     {CO(OOH)CH(OH)CH(OH)CH(OO.)CO(OOH)                                                                      2.GGO    }
+  G2P507k = 5C+6H+N+12O;   {CO(OOH)CH(OH)CH(OH)CH(OO.)CO(OONO2)                                                                    2.PGO    }
+  G1G5047 = 5C+9H+8O;      {CO(OOH)CH(OH)CH(OH)CH(OOH)CH2(O.)                                                                      1.GHO    }
+  G2G5033 = 5C+9H+9O;      {CO(OOH)CH(OH)CH(OH)CH(OOH)CH2(OO.)                                                                     2.GHO    }
+  GGH503t = 5C+8H+8O;      {CO(OOH)CH(OH)CH(OH)CH(OOH)CHO                                                                          GHDOO    }
+  G3G5014 = 5C+7H+10O;     {CO(OOH)CH(OH)CH(OH)CH(OOH)CO(OO.)                                                                      3.GHK    }
+  GGG500h = 5C+8H+10O;     {CO(OOH)CH(OH)CH(OH)CH(OOH)CO(OOH)                                                                      GGHOO    }
+  GPG501L = 5C+7H+N+12O;   {CO(OOH)CH(OH)CH(OH)CH(OOH)CO(OONO2)                                                                    PGHOO    }
+  G1G400R = 4C+7H+6O;      {CO(OOH)CH(OH)CH(OH)CH2(O.)                                                                             1.GOO    }
+  G2G400O = 4C+7H+7O;      {CO(OOH)CH(OH)CH(OH)CH2(OO.)                                                                            2.GOO    }
+  G1G500H = 5C+9H+6O;      {CO(OOH)CH(OH)CH(OH)CH2CH2(O.)                                                                          1.GOO    }
+  G2G500G = 5C+9H+7O;      {CO(OOH)CH(OH)CH(OH)CH2CH2(OO.)                                                                         2.GOO    }
+  GGD5003 = 5C+8H+6O;      {CO(OOH)CH(OH)CH(OH)CH2CHO                                                                              GDOO     }
+  G3G5003 = 5C+7H+8O;      {CO(OOH)CH(OH)CH(OH)CH2CO(OO.)                                                                          3.GKO    }
+  GPG5005 = 5C+7H+N+10O;   {CO(OOH)CH(OH)CH(OH)CH2CO(OONO2)                                                                        PGOO     }
+  GGD4006 = 4C+6H+6O;      {CO(OOH)CH(OH)CH(OH)CHO                                                                                 GDOO     }
+  G3G4009 = 4C+5H+8O;      {CO(OOH)CH(OH)CH(OH)CO(OO.)                                                                             3.GKO    }
+  GGG4006 = 4C+6H+8O;      {CO(OOH)CH(OH)CH(OH)CO(OOH)                                                                             GGOO     }
+  GPG400F = 4C+5H+N+10O;   {CO(OOH)CH(OH)CH(OH)CO(OONO2)                                                                           PGOO     }
+  G1G5075 = 5C+7H+7O;      {CO(OOH)CH(OH)CH(OH)COCH2(O.)                                                                           1.GKO    }
+  G2G504h = 5C+7H+8O;      {CO(OOH)CH(OH)CH(OH)COCH2(OO.)                                                                          2.GKO    }
+  GGD500L = 5C+6H+7O;      {CO(OOH)CH(OH)CH(OH)COCHO                                                                               GDKOO    }
+  G3G501j = 5C+5H+9O;      {CO(OOH)CH(OH)CH(OH)COCO(OO.)                                                                           3.GKK    }
+  GGG500k = 5C+6H+9O;      {CO(OOH)CH(OH)CH(OH)COCO(OOH)                                                                           GGKOO    }
+  GPG501P = 5C+5H+N+11O;   {CO(OOH)CH(OH)CH(OH)COCO(OONO2)                                                                         PGKOO    }
+  G1G5067 = 5C+6H+N+9O;    {CO(OOH)CH(OH)CH(ONO2)CH(O.)CHO                                                                         1.GND    }
+  G1G508M = 5C+6H+N+11O;   {CO(OOH)CH(OH)CH(ONO2)CH(O.)CO(OOH)                                                                     1.GGN    }
+  G1P509s = 5C+5H+2N+13O;  {CO(OOH)CH(OH)CH(ONO2)CH(O.)CO(OONO2)                                                                   1.PGN    }
+  G1G5023 = 5C+8H+N+9O;    {CO(OOH)CH(OH)CH(ONO2)CH(OH)CH2(O.)                                                                     1.GNO    }
+  G2G501f = 5C+8H+N+10O;   {CO(OOH)CH(OH)CH(ONO2)CH(OH)CH2(OO.)                                                                    2.GNO    }
+  GGN501W = 5C+7H+N+9O;    {CO(OOH)CH(OH)CH(ONO2)CH(OH)CHO                                                                         GNDOO    }
+  G3G500P = 5C+6H+N+11O;   {CO(OOH)CH(OH)CH(ONO2)CH(OH)CO(OO.)                                                                     3.GNK    }
+  GGG500G = 5C+7H+N+11O;   {CO(OOH)CH(OH)CH(ONO2)CH(OH)CO(OOH)                                                                     GGNOO    }
+  GPG500C = 5C+6H+2N+13O;  {CO(OOH)CH(OH)CH(ONO2)CH(OH)CO(OONO2)                                                                   PGNOO    }
+  G1G504b = 5C+7H+2N+11O;  {CO(OOH)CH(OH)CH(ONO2)CH(ONO2)CH2(O.)                                                                   1.GNN    }
+  G2G505x = 5C+7H+2N+12O;  {CO(OOH)CH(OH)CH(ONO2)CH(ONO2)CH2(OO.)                                                                  2.GNN    }
+  GGN502T = 5C+6H+2N+11O;  {CO(OOH)CH(OH)CH(ONO2)CH(ONO2)CHO                                                                       GNNDO    }
+  G3G500v = 5C+5H+2N+13O;  {CO(OOH)CH(OH)CH(ONO2)CH(ONO2)CO(OO.)                                                                   3.GNN    }
+  GGG500c = 5C+6H+2N+13O;  {CO(OOH)CH(OH)CH(ONO2)CH(ONO2)CO(OOH)                                                                   GGNNO    }
+  GPG500t = 5C+5H+3N+15O;  {CO(OOH)CH(OH)CH(ONO2)CH(ONO2)CO(OONO2)                                                                 PGNNO    }
+  G2G504A = 5C+6H+N+10O;   {CO(OOH)CH(OH)CH(ONO2)CH(OO.)CHO                                                                        2.GND    }
+  G2G505k = 5C+6H+N+12O;   {CO(OOH)CH(OH)CH(ONO2)CH(OO.)CO(OOH)                                                                    2.GGN    }
+  G2P507h = 5C+5H+2N+14O;  {CO(OOH)CH(OH)CH(ONO2)CH(OO.)CO(OONO2)                                                                  2.PGN    }
+  G1G504R = 5C+8H+N+10O;   {CO(OOH)CH(OH)CH(ONO2)CH(OOH)CH2(O.)                                                                    1.GHN    }
+  G2G503E = 5C+8H+N+11O;   {CO(OOH)CH(OH)CH(ONO2)CH(OOH)CH2(OO.)                                                                   2.GHN    }
+  GGH503T = 5C+7H+N+10O;   {CO(OOH)CH(OH)CH(ONO2)CH(OOH)CHO                                                                        GHNDO    }
+  G3G500x = 5C+6H+N+12O;   {CO(OOH)CH(OH)CH(ONO2)CH(OOH)CO(OO.)                                                                    3.GHN    }
+  GGG500d = 5C+7H+N+12O;   {CO(OOH)CH(OH)CH(ONO2)CH(OOH)CO(OOH)                                                                    GGHNO    }
+  GPG501H = 5C+6H+2N+14O;  {CO(OOH)CH(OH)CH(ONO2)CH(OOH)CO(OONO2)                                                                  PGHNO    }
+  G1G400f = 4C+6H+N+8O;    {CO(OOH)CH(OH)CH(ONO2)CH2(O.)                                                                           1.GNO    }
+  G2G400U = 4C+6H+N+9O;    {CO(OOH)CH(OH)CH(ONO2)CH2(OO.)                                                                          2.GNO    }
+  G1G501t = 5C+8H+N+8O;    {CO(OOH)CH(OH)CH(ONO2)CH2CH2(O.)                                                                        1.GNO    }
+  G2G501Z = 5C+8H+N+9O;    {CO(OOH)CH(OH)CH(ONO2)CH2CH2(OO.)                                                                       2.GNO    }
+  GGN500q = 5C+7H+N+8O;    {CO(OOH)CH(OH)CH(ONO2)CH2CHO                                                                            GNDO     }
+  G3G5008 = 5C+6H+N+10O;   {CO(OOH)CH(OH)CH(ONO2)CH2CO(OO.)                                                                        3.GNK    }
+  GGG5006 = 5C+7H+N+10O;   {CO(OOH)CH(OH)CH(ONO2)CH2CO(OOH)                                                                        GGNO     }
+  GPG500B = 5C+6H+2N+12O;  {CO(OOH)CH(OH)CH(ONO2)CH2CO(OONO2)                                                                      PGNO     }
+  GGN400U = 4C+5H+N+8O;    {CO(OOH)CH(OH)CH(ONO2)CHO                                                                               GNDO     }
+  G3G400B = 4C+4H+N+10O;   {CO(OOH)CH(OH)CH(ONO2)CO(OO.)                                                                           3.GNK    }
+  GGG4007 = 4C+5H+N+10O;   {CO(OOH)CH(OH)CH(ONO2)CO(OOH)                                                                           GGNO     }
+  GPG4007 = 4C+4H+2N+12O;  {CO(OOH)CH(OH)CH(ONO2)CO(OONO2)                                                                         PGNO     }
+  G1G505v = 5C+6H+N+9O;    {CO(OOH)CH(OH)CH(ONO2)COCH2(O.)                                                                         1.GNK    }
+  G2G504i = 5C+6H+N+10O;   {CO(OOH)CH(OH)CH(ONO2)COCH2(OO.)                                                                        2.GNK    }
+  GGN502h = 5C+5H+N+9O;    {CO(OOH)CH(OH)CH(ONO2)COCHO                                                                             GNDKO    }
+  G3G501L = 5C+4H+N+11O;   {CO(OOH)CH(OH)CH(ONO2)COCO(OO.)                                                                         3.GNK    }
+  GGG500l = 5C+5H+N+11O;   {CO(OOH)CH(OH)CH(ONO2)COCO(OOH)                                                                         GGNKO    }
+  GPG500v = 5C+4H+2N+13O;  {CO(OOH)CH(OH)CH(ONO2)COCO(OONO2)                                                                       PGNKO    }
+  G2G5017 = 5C+7H+8O;      {CO(OOH)CH(OH)CH(OO.)CH(OH)CHO                                                                          2.GDO    }
+  G2G502k = 5C+7H+10O;     {CO(OOH)CH(OH)CH(OO.)CH(OH)CO(OOH)                                                                      2.GGO    }
+  G2P503h = 5C+6H+N+12O;   {CO(OOH)CH(OH)CH(OO.)CH(OH)CO(OONO2)                                                                    2.PGO    }
+  G2G504M = 5C+6H+N+10O;   {CO(OOH)CH(OH)CH(OO.)CH(ONO2)CHO                                                                        2.GND    }
+  G2P507j = 5C+5H+2N+14O;  {CO(OOH)CH(OH)CH(OO.)CH(ONO2)CO(OONO2)                                                                  2.PGN    }
+  G2G502R = 5C+7H+9O;      {CO(OOH)CH(OH)CH(OO.)CH(OOH)CHO                                                                         2.GHD    }
+  G2G500p = 5C+7H+7O;      {CO(OOH)CH(OH)CH(OO.)CH2CHO                                                                             2.GDO    }
+  G2G5021 = 5C+7H+9O;      {CO(OOH)CH(OH)CH(OO.)CH2CO(OOH)                                                                         2.GGO    }
+  G2P502j = 5C+6H+N+11O;   {CO(OOH)CH(OH)CH(OO.)CH2CO(OONO2)                                                                       2.PGO    }
+  G2G400r = 4C+5H+9O;      {CO(OOH)CH(OH)CH(OO.)CO(OOH)                                                                            2.GGO    }
+  G2P401C = 4C+4H+N+11O;   {CO(OOH)CH(OH)CH(OO.)CO(OONO2)                                                                          2.PGO    }
+  G2G504m = 5C+5H+8O;      {CO(OOH)CH(OH)CH(OO.)COCHO                                                                              2.GDK    }
+  G2G505z = 5C+5H+10O;     {CO(OOH)CH(OH)CH(OO.)COCO(OOH)                                                                          2.GGK    }
+  G2P507q = 5C+4H+N+12O;   {CO(OOH)CH(OH)CH(OO.)COCO(OONO2)                                                                        2.PGK    }
+  G1G506e = 5C+7H+8O;      {CO(OOH)CH(OH)CH(OOH)CH(O.)CHO                                                                          1.GHD    }
+  G1G508Q = 5C+7H+10O;     {CO(OOH)CH(OH)CH(OOH)CH(O.)CO(OOH)                                                                      1.GGH    }
+  G1P50Aa = 5C+6H+N+12O;   {CO(OOH)CH(OH)CH(OOH)CH(O.)CO(OONO2)                                                                    1.PGH    }
+  G1G503M = 5C+9H+8O;      {CO(OOH)CH(OH)CH(OOH)CH(OH)CH2(O.)                                                                      1.GHO    }
+  G2G502K = 5C+9H+9O;      {CO(OOH)CH(OH)CH(OOH)CH(OH)CH2(OO.)                                                                     2.GHO    }
+  GGH501g = 5C+8H+8O;      {CO(OOH)CH(OH)CH(OOH)CH(OH)CHO                                                                          GHDOO    }
+  G3G500M = 5C+7H+10O;     {CO(OOH)CH(OH)CH(OOH)CH(OH)CO(OO.)                                                                      3.GHK    }
+  GGG500E = 5C+8H+10O;     {CO(OOH)CH(OH)CH(OOH)CH(OH)CO(OOH)                                                                      GGHOO    }
+  GPG500Q = 5C+7H+N+12O;   {CO(OOH)CH(OH)CH(OOH)CH(OH)CO(OONO2)                                                                    PGHOO    }
+  G1G506X = 5C+8H+N+10O;   {CO(OOH)CH(OH)CH(OOH)CH(ONO2)CH2(O.)                                                                    1.GHN    }
+  G2G504c = 5C+8H+N+11O;   {CO(OOH)CH(OH)CH(OOH)CH(ONO2)CH2(OO.)                                                                   2.GHN    }
+  GGH503j = 5C+7H+N+10O;   {CO(OOH)CH(OH)CH(OOH)CH(ONO2)CHO                                                                        GHNDO    }
+  G3G500z = 5C+6H+N+12O;   {CO(OOH)CH(OH)CH(OOH)CH(ONO2)CO(OO.)                                                                    3.GHN    }
+  GPG501I = 5C+6H+2N+14O;  {CO(OOH)CH(OH)CH(OOH)CH(ONO2)CO(OONO2)                                                                  PGHNO    }
+  G1G504U = 5C+9H+9O;      {CO(OOH)CH(OH)CH(OOH)CH(OOH)CH2(O.)                                                                     1.GHH    }
+  G2G503G = 5C+9H+10O;     {CO(OOH)CH(OH)CH(OOH)CH(OOH)CH2(OO.)                                                                    2.GHH    }
+  GGH503q = 5C+8H+9O;      {CO(OOH)CH(OH)CH(OOH)CH(OOH)CHO                                                                         GHHDO    }
+  G3G5012 = 5C+7H+11O;     {CO(OOH)CH(OH)CH(OOH)CH(OOH)CO(OO.)                                                                     3.GHH    }
+  GGG500g = 5C+8H+11O;     {CO(OOH)CH(OH)CH(OOH)CH(OOH)CO(OOH)                                                                     GGHHO    }
+  GPG501K = 5C+7H+N+13O;   {CO(OOH)CH(OH)CH(OOH)CH(OOH)CO(OONO2)                                                                   PGHHO    }
+  G1G400g = 4C+7H+7O;      {CO(OOH)CH(OH)CH(OOH)CH2(O.)                                                                            1.GHO    }
+  G2G400W = 4C+7H+8O;      {CO(OOH)CH(OH)CH(OOH)CH2(OO.)                                                                           2.GHO    }
+  G1G501w = 5C+9H+7O;      {CO(OOH)CH(OH)CH(OOH)CH2CH2(O.)                                                                         1.GHO    }
+  G2G501b = 5C+9H+8O;      {CO(OOH)CH(OH)CH(OOH)CH2CH2(OO.)                                                                        2.GHO    }
+  GGH500s = 5C+8H+7O;      {CO(OOH)CH(OH)CH(OOH)CH2CHO                                                                             GHDO     }
+  G3G500A = 5C+7H+9O;      {CO(OOH)CH(OH)CH(OOH)CH2CO(OO.)                                                                         3.GHK    }
+  GGG5007 = 5C+8H+9O;      {CO(OOH)CH(OH)CH(OOH)CH2CO(OOH)                                                                         GGHO     }
+  GPG500D = 5C+7H+N+11O;   {CO(OOH)CH(OH)CH(OOH)CH2CO(OONO2)                                                                       PGHO     }
+  GGH400i = 4C+6H+7O;      {CO(OOH)CH(OH)CH(OOH)CHO                                                                                GHDO     }
+  G3G400G = 4C+5H+9O;      {CO(OOH)CH(OH)CH(OOH)CO(OO.)                                                                            3.GHK    }
+  GGG4009 = 4C+6H+9O;      {CO(OOH)CH(OH)CH(OOH)CO(OOH)                                                                            GGHO     }
+  GPG400J = 4C+5H+N+11O;   {CO(OOH)CH(OH)CH(OOH)CO(OONO2)                                                                          PGHO     }
+  G1G5073 = 5C+7H+8O;      {CO(OOH)CH(OH)CH(OOH)COCH2(O.)                                                                          1.GHK    }
+  G2G504e = 5C+7H+9O;      {CO(OOH)CH(OH)CH(OOH)COCH2(OO.)                                                                         2.GHK    }
+  GGH504O = 5C+6H+8O;      {CO(OOH)CH(OH)CH(OOH)COCHO                                                                              GHDKO    }
+  G3G501i = 5C+5H+10O;     {CO(OOH)CH(OH)CH(OOH)COCO(OO.)                                                                          3.GHK    }
+  GGG500j = 5C+6H+10O;     {CO(OOH)CH(OH)CH(OOH)COCO(OOH)                                                                          GGHKO    }
+  GPG501N = 5C+5H+N+12O;   {CO(OOH)CH(OH)CH(OOH)COCO(OONO2)                                                                        PGHKO    }
+  G1G3004 = 3C+5H+5O;      {CO(OOH)CH(OH)CH2(O.)                                                                                   1.GO     }
+  G2G3004 = 3C+5H+6O;      {CO(OOH)CH(OH)CH2(OO.)                                                                                  2.GO     }
+  G1G503J = 5C+7H+6O;      {CO(OOH)CH(OH)CH2CH(O.)CHO                                                                              1.GDO    }
+  G1G502f = 5C+7H+8O;      {CO(OOH)CH(OH)CH2CH(O.)CO(OOH)                                                                          1.GGO    }
+  G1P503M = 5C+6H+N+10O;   {CO(OOH)CH(OH)CH2CH(O.)CO(OONO2)                                                                        1.PGO    }
+  G1G501D = 5C+9H+6O;      {CO(OOH)CH(OH)CH2CH(OH)CH2(O.)                                                                          1.GOO    }
+  G2G5011 = 5C+9H+7O;      {CO(OOH)CH(OH)CH2CH(OH)CH2(OO.)                                                                         2.GOO    }
+  GGD5002 = 5C+8H+6O;      {CO(OOH)CH(OH)CH2CH(OH)CHO                                                                              GDOO     }
+  G3G5002 = 5C+7H+8O;      {CO(OOH)CH(OH)CH2CH(OH)CO(OO.)                                                                          3.GKO    }
+  GGG5001 = 5C+8H+8O;      {CO(OOH)CH(OH)CH2CH(OH)CO(OOH)                                                                          GGOO     }
+  GPG5002 = 5C+7H+N+10O;   {CO(OOH)CH(OH)CH2CH(OH)CO(OONO2)                                                                        PGOO     }
+  G1G503G = 5C+8H+N+8O;    {CO(OOH)CH(OH)CH2CH(ONO2)CH2(O.)                                                                        1.GNO    }
+  G2G502g = 5C+8H+N+9O;    {CO(OOH)CH(OH)CH2CH(ONO2)CH2(OO.)                                                                       2.GNO    }
+  GGN501J = 5C+7H+N+8O;    {CO(OOH)CH(OH)CH2CH(ONO2)CHO                                                                            GNDO     }
+  G3G500I = 5C+6H+N+10O;   {CO(OOH)CH(OH)CH2CH(ONO2)CO(OO.)                                                                        3.GNK    }
+  GGG500B = 5C+7H+N+10O;   {CO(OOH)CH(OH)CH2CH(ONO2)CO(OOH)                                                                        GGNO     }
+  GPG500I = 5C+6H+2N+12O;  {CO(OOH)CH(OH)CH2CH(ONO2)CO(OONO2)                                                                      PGNO     }
+  G2G502S = 5C+7H+7O;      {CO(OOH)CH(OH)CH2CH(OO.)CHO                                                                             2.GDO    }
+  G2G501z = 5C+7H+9O;      {CO(OOH)CH(OH)CH2CH(OO.)CO(OOH)                                                                         2.GGO    }
+  G2P502k = 5C+6H+N+11O;   {CO(OOH)CH(OH)CH2CH(OO.)CO(OONO2)                                                                       2.PGO    }
+  G1G503X = 5C+9H+7O;      {CO(OOH)CH(OH)CH2CH(OOH)CH2(O.)                                                                         1.GHO    }
+  GGH501L = 5C+8H+7O;      {CO(OOH)CH(OH)CH2CH(OOH)CHO                                                                             GHDO     }
+  G3G500K = 5C+7H+9O;      {CO(OOH)CH(OH)CH2CH(OOH)CO(OO.)                                                                         3.GHK    }
+  GGG500C = 5C+8H+9O;      {CO(OOH)CH(OH)CH2CH(OOH)CO(OOH)                                                                         GGHO     }
+  GPG500J = 5C+7H+N+11O;   {CO(OOH)CH(OH)CH2CH(OOH)CO(OONO2)                                                                       PGHO     }
+  G1G400F = 4C+7H+5O;      {CO(OOH)CH(OH)CH2CH2(O.)                                                                                1.GO     }
+  G2G400D = 4C+7H+6O;      {CO(OOH)CH(OH)CH2CH2(OO.)                                                                               2.GO     }
+  G1G500n = 5C+9H+5O;      {CO(OOH)CH(OH)CH2CH2CH2(O.)                                                                             1.GO     }
+  G2G5018 = 5C+9H+6O;      {CO(OOH)CH(OH)CH2CH2CH2(OO.)                                                                            2.GO     }
+  GGD5000 = 5C+8H+5O;      {CO(OOH)CH(OH)CH2CH2CHO                                                                                 GDO      }
+  G3G5000 = 5C+7H+7O;      {CO(OOH)CH(OH)CH2CH2CO(OO.)                                                                             3.GKO    }
+  GPG5000 = 5C+7H+N+9O;    {CO(OOH)CH(OH)CH2CH2CO(OONO2)                                                                           PGO      }
+  GGD4002 = 4C+6H+5O;      {CO(OOH)CH(OH)CH2CHO                                                                                    GDO      }
+  G3G4002 = 4C+5H+7O;      {CO(OOH)CH(OH)CH2CO(OO.)                                                                                3.GKO    }
+  GPG4005 = 4C+5H+N+9O;    {CO(OOH)CH(OH)CH2CO(OONO2)                                                                              PGO      }
+  G1G503f = 5C+7H+6O;      {CO(OOH)CH(OH)CH2COCH2(O.)                                                                              1.GKO    }
+  G2G502d = 5C+7H+7O;      {CO(OOH)CH(OH)CH2COCH2(OO.)                                                                             2.GKO    }
+  GGD500C = 5C+6H+6O;      {CO(OOH)CH(OH)CH2COCHO                                                                                  GDKO     }
+  G3G500r = 5C+5H+8O;      {CO(OOH)CH(OH)CH2COCO(OO.)                                                                              3.GKK    }
+  GGG500D = 5C+6H+8O;      {CO(OOH)CH(OH)CH2COCO(OOH)                                                                              GGKO     }
+  GPG500K = 5C+5H+N+10O;   {CO(OOH)CH(OH)CH2COCO(OONO2)                                                                            PGKO     }
+  GGD3001 = 3C+4H+5O;      {CO(OOH)CH(OH)CHO                                                                                       GDO      }
+  G3G3002 = 3C+3H+7O;      {CO(OOH)CH(OH)CO(OO.)                                                                                   3.GKO    }
+  GGG3002 = 3C+4H+7O;      {CO(OOH)CH(OH)CO(OOH)                                                                                   GGO      }
+  GPG3002 = 3C+3H+N+9O;    {CO(OOH)CH(OH)CO(OONO2)                                                                                 PGO      }
+  G1G506q = 5C+5H+7O;      {CO(OOH)CH(OH)COCH(O.)CHO                                                                               1.GDK    }
+  G1G507Z = 5C+5H+9O;      {CO(OOH)CH(OH)COCH(O.)CO(OOH)                                                                           1.GGK    }
+  G1P505m = 5C+4H+N+11O;   {CO(OOH)CH(OH)COCH(O.)CO(OONO2)                                                                         1.PGK    }
+  G1G503g = 5C+7H+7O;      {CO(OOH)CH(OH)COCH(OH)CH2(O.)                                                                           1.GKO    }
+  G2G502e = 5C+7H+8O;      {CO(OOH)CH(OH)COCH(OH)CH2(OO.)                                                                          2.GKO    }
+  GGD500D = 5C+6H+7O;      {CO(OOH)CH(OH)COCH(OH)CHO                                                                               GDKOO    }
+  G3G500Q = 5C+5H+9O;      {CO(OOH)CH(OH)COCH(OH)CO(OO.)                                                                           3.GKK    }
+  GGG500H = 5C+6H+9O;      {CO(OOH)CH(OH)COCH(OH)CO(OOH)                                                                           GGKOO    }
+  GPG500S = 5C+5H+N+11O;   {CO(OOH)CH(OH)COCH(OH)CO(OONO2)                                                                         PGKOO    }
+  G1G505q = 5C+6H+N+9O;    {CO(OOH)CH(OH)COCH(ONO2)CH2(O.)                                                                         1.GNK    }
+  G2G505u = 5C+6H+N+10O;   {CO(OOH)CH(OH)COCH(ONO2)CH2(OO.)                                                                        2.GNK    }
+  GGN502p = 5C+5H+N+9O;    {CO(OOH)CH(OH)COCH(ONO2)CHO                                                                             GNDKO    }
+  G3G501I = 5C+4H+N+11O;   {CO(OOH)CH(OH)COCH(ONO2)CO(OO.)                                                                         3.GNK    }
+  GGG500M = 5C+5H+N+11O;   {CO(OOH)CH(OH)COCH(ONO2)CO(OOH)                                                                         GGNKO    }
+  GPG500h = 5C+4H+2N+13O;  {CO(OOH)CH(OH)COCH(ONO2)CO(OONO2)                                                                       PGNKO    }
+  G2G505q = 5C+5H+10O;     {CO(OOH)CH(OH)COCH(OO.)CO(OOH)                                                                          2.GGK    }
+  G2P504I = 5C+4H+N+12O;   {CO(OOH)CH(OH)COCH(OO.)CO(OONO2)                                                                        2.PGK    }
+  G1G506z = 5C+7H+8O;      {CO(OOH)CH(OH)COCH(OOH)CH2(O.)                                                                          1.GHK    }
+  GGH503v = 5C+6H+8O;      {CO(OOH)CH(OH)COCH(OOH)CHO                                                                              GHDKO    }
+  G3G5016 = 5C+5H+10O;     {CO(OOH)CH(OH)COCH(OOH)CO(OO.)                                                                          3.GHK    }
+  GGG500i = 5C+6H+10O;     {CO(OOH)CH(OH)COCH(OOH)CO(OOH)                                                                          GGHKO    }
+  GPG500i = 5C+5H+N+12O;   {CO(OOH)CH(OH)COCH(OOH)CO(OONO2)                                                                        PGHKO    }
+  G1G400W = 4C+5H+6O;      {CO(OOH)CH(OH)COCH2(O.)                                                                                 1.GKO    }
+  G2G400P = 4C+5H+7O;      {CO(OOH)CH(OH)COCH2(OO.)                                                                                2.GKO    }
+  G1G501h = 5C+7H+6O;      {CO(OOH)CH(OH)COCH2CH2(O.)                                                                              1.GKO    }
+  G2G501Q = 5C+7H+7O;      {CO(OOH)CH(OH)COCH2CH2(OO.)                                                                             2.GKO    }
+  GGD5005 = 5C+6H+6O;      {CO(OOH)CH(OH)COCH2CHO                                                                                  GDKO     }
+  G3G5005 = 5C+5H+8O;      {CO(OOH)CH(OH)COCH2CO(OO.)                                                                              3.GKK    }
+  GGG5004 = 5C+6H+8O;      {CO(OOH)CH(OH)COCH2CO(OOH)                                                                              GGKO     }
+  GPG5008 = 5C+5H+N+10O;   {CO(OOH)CH(OH)COCH2CO(OONO2)                                                                            PGKO     }
+  GGD4007 = 4C+4H+6O;      {CO(OOH)CH(OH)COCHO                                                                                     GDKO     }
+  G3G400F = 4C+3H+8O;      {CO(OOH)CH(OH)COCO(OO.)                                                                                 3.GKK    }
+  GGG4003 = 4C+4H+8O;      {CO(OOH)CH(OH)COCO(OOH)                                                                                 GGKO     }
+  GPG4008 = 4C+3H+N+10O;   {CO(OOH)CH(OH)COCO(OONO2)                                                                               PGKO     }
+  G1G505x = 5C+5H+7O;      {CO(OOH)CH(OH)COCOCH2(O.)                                                                               1.GKK    }
+  G2G504k = 5C+5H+8O;      {CO(OOH)CH(OH)COCOCH2(OO.)                                                                              2.GKK    }
+  GGD500M = 5C+4H+7O;      {CO(OOH)CH(OH)COCOCHO                                                                                   GDKKO    }
+  G3G501J = 5C+3H+9O;      {CO(OOH)CH(OH)COCOCO(OO.)                                                                               3.GKK    }
+  GGG500N = 5C+4H+9O;      {CO(OOH)CH(OH)COCOCO(OOH)                                                                               GGKKO    }
+  GPG500j = 5C+3H+N+11O;   {CO(OOH)CH(OH)COCOCO(OONO2)                                                                             PGKKO    }
+  G1G5069 = 5C+6H+N+9O;    {CO(OOH)CH(ONO2)CH(O.)CH(OH)CHO                                                                         1.GND    }
+  G1G508L = 5C+6H+N+11O;   {CO(OOH)CH(ONO2)CH(O.)CH(OH)CO(OOH)                                                                     1.GGN    }
+  G1P508n = 5C+5H+2N+13O;  {CO(OOH)CH(ONO2)CH(O.)CH(OH)CO(OONO2)                                                                   1.PGN    }
+  G1G507p = 5C+5H+2N+11O;  {CO(OOH)CH(ONO2)CH(O.)CH(ONO2)CHO                                                                       1.GNN    }
+  G1G508f = 5C+5H+2N+13O;  {CO(OOH)CH(ONO2)CH(O.)CH(ONO2)CO(OOH)                                                                   1.GGN    }
+  G1P50An = 5C+4H+3N+15O;  {CO(OOH)CH(ONO2)CH(O.)CH(ONO2)CO(OONO2)                                                                 1.PGN    }
+  G1G507s = 5C+6H+N+10O;   {CO(OOH)CH(ONO2)CH(O.)CH(OOH)CHO                                                                        1.GHN    }
+  G1G508h = 5C+6H+N+12O;   {CO(OOH)CH(ONO2)CH(O.)CH(OOH)CO(OOH)                                                                    1.GGH    }
+  G1P50As = 5C+5H+2N+14O;  {CO(OOH)CH(ONO2)CH(O.)CH(OOH)CO(OONO2)                                                                  1.PGH    }
+  G1G5056 = 5C+6H+N+8O;    {CO(OOH)CH(ONO2)CH(O.)CH2CHO                                                                            1.GND    }
+  G1G507i = 5C+6H+N+10O;   {CO(OOH)CH(ONO2)CH(O.)CH2CO(OOH)                                                                        1.GGN    }
+  G1P507O = 5C+5H+2N+12O;  {CO(OOH)CH(ONO2)CH(O.)CH2CO(OONO2)                                                                      1.PGN    }
+  G1G4011 = 4C+4H+N+8O;    {CO(OOH)CH(ONO2)CH(O.)CHO                                                                               1.GND    }
+  G1G401I = 4C+4H+N+10O;   {CO(OOH)CH(ONO2)CH(O.)CO(OOH)                                                                           1.GGN    }
+  G1P401a = 4C+3H+2N+12O;  {CO(OOH)CH(ONO2)CH(O.)CO(OONO2)                                                                         1.PGN    }
+  G1G507W = 5C+4H+N+9O;    {CO(OOH)CH(ONO2)CH(O.)COCHO                                                                             1.GND    }
+  G1G508i = 5C+4H+N+11O;   {CO(OOH)CH(ONO2)CH(O.)COCO(OOH)                                                                         1.GGN    }
+  G1P50Aq = 5C+3H+2N+13O;  {CO(OOH)CH(ONO2)CH(O.)COCO(OONO2)                                                                       1.PGN    }
+  G1G5084 = 5C+6H+N+9O;    {CO(OOH)CH(ONO2)CH(OH)CH(O.)CHO                                                                         1.GND    }
+  G1G5082 = 5C+6H+N+11O;   {CO(OOH)CH(ONO2)CH(OH)CH(O.)CO(OOH)                                                                     1.GGN    }
+  G1P50AH = 5C+5H+2N+13O;  {CO(OOH)CH(ONO2)CH(OH)CH(O.)CO(OONO2)                                                                   1.PGN    }
+  G1G503k = 5C+8H+N+9O;    {CO(OOH)CH(ONO2)CH(OH)CH(OH)CH2(O.)                                                                     1.GNO    }
+  G2G5069 = 5C+8H+N+10O;   {CO(OOH)CH(ONO2)CH(OH)CH(OH)CH2(OO.)                                                                    2.GNO    }
+  GGN502f = 5C+7H+N+9O;    {CO(OOH)CH(ONO2)CH(OH)CH(OH)CHO                                                                         GNDOO    }
+  G3G501A = 5C+6H+N+11O;   {CO(OOH)CH(ONO2)CH(OH)CH(OH)CO(OO.)                                                                     3.GNK    }
+  GPG501C = 5C+6H+2N+13O;  {CO(OOH)CH(ONO2)CH(OH)CH(OH)CO(OONO2)                                                                   PGNOO    }
+  G1G506f = 5C+7H+2N+11O;  {CO(OOH)CH(ONO2)CH(OH)CH(ONO2)CH2(O.)                                                                   1.GNN    }
+  G2G505K = 5C+7H+2N+12O;  {CO(OOH)CH(ONO2)CH(OH)CH(ONO2)CH2(OO.)                                                                  2.GNN    }
+  GGN502m = 5C+6H+2N+11O;  {CO(OOH)CH(ONO2)CH(OH)CH(ONO2)CHO                                                                       GNNDO    }
+  G3G501R = 5C+5H+2N+13O;  {CO(OOH)CH(ONO2)CH(OH)CH(ONO2)CO(OO.)                                                                   3.GNN    }
+  GGG500z = 5C+6H+2N+13O;  {CO(OOH)CH(ONO2)CH(OH)CH(ONO2)CO(OOH)                                                                   GGNNO    }
+  GPG501m = 5C+5H+3N+15O;  {CO(OOH)CH(ONO2)CH(OH)CH(ONO2)CO(OONO2)                                                                 PGNNO    }
+  G2G505Z = 5C+6H+N+10O;   {CO(OOH)CH(ONO2)CH(OH)CH(OO.)CHO                                                                        2.GND    }
+  G2G505X = 5C+6H+N+12O;   {CO(OOH)CH(ONO2)CH(OH)CH(OO.)CO(OOH)                                                                    2.GGN    }
+  G2P507H = 5C+5H+2N+14O;  {CO(OOH)CH(ONO2)CH(OH)CH(OO.)CO(OONO2)                                                                  2.PGN    }
+  G1G5071 = 5C+8H+N+10O;   {CO(OOH)CH(ONO2)CH(OH)CH(OOH)CH2(O.)                                                                    1.GHN    }
+  GGH5057 = 5C+7H+N+10O;   {CO(OOH)CH(ONO2)CH(OH)CH(OOH)CHO                                                                        GHNDO    }
+  G3G501S = 5C+6H+N+12O;   {CO(OOH)CH(ONO2)CH(OH)CH(OOH)CO(OO.)                                                                    3.GHN    }
+  GGG5011 = 5C+7H+N+12O;   {CO(OOH)CH(ONO2)CH(OH)CH(OOH)CO(OOH)                                                                    GGHNO    }
+  GPG501w = 5C+6H+2N+14O;  {CO(OOH)CH(ONO2)CH(OH)CH(OOH)CO(OONO2)                                                                  PGHNO    }
+  G1G400P = 4C+6H+N+8O;    {CO(OOH)CH(ONO2)CH(OH)CH2(O.)                                                                           1.GNO    }
+  G2G400l = 4C+6H+N+9O;    {CO(OOH)CH(ONO2)CH(OH)CH2(OO.)                                                                          2.GNO    }
+  G1G502F = 5C+8H+N+8O;    {CO(OOH)CH(ONO2)CH(OH)CH2CH2(O.)                                                                        1.GNO    }
+  GGN5026 = 5C+7H+N+8O;    {CO(OOH)CH(ONO2)CH(OH)CH2CHO                                                                            GNDO     }
+  G3G500g = 5C+6H+N+10O;   {CO(OOH)CH(ONO2)CH(OH)CH2CO(OO.)                                                                        3.GNK    }
+  GPG5014 = 5C+6H+2N+12O;  {CO(OOH)CH(ONO2)CH(OH)CH2CO(OONO2)                                                                      PGNO     }
+  GGN400W = 4C+5H+N+8O;    {CO(OOH)CH(ONO2)CH(OH)CHO                                                                               GNDO     }
+  G3G400C = 4C+4H+N+10O;   {CO(OOH)CH(ONO2)CH(OH)CO(OO.)                                                                           3.GNK    }
+  GPG4009 = 4C+4H+2N+12O;  {CO(OOH)CH(ONO2)CH(OH)CO(OONO2)                                                                         PGNO     }
+  G1G505u = 5C+6H+N+9O;    {CO(OOH)CH(ONO2)CH(OH)COCH2(O.)                                                                         1.GNK    }
+  G2G504x = 5C+6H+N+10O;   {CO(OOH)CH(ONO2)CH(OH)COCH2(OO.)                                                                        2.GNK    }
+  GGN502n = 5C+5H+N+9O;    {CO(OOH)CH(ONO2)CH(OH)COCHO                                                                             GNDKO    }
+  G3G501m = 5C+4H+N+11O;   {CO(OOH)CH(ONO2)CH(OH)COCO(OO.)                                                                         3.GNK    }
+  GPG501Z = 5C+4H+2N+13O;  {CO(OOH)CH(ONO2)CH(OH)COCO(OONO2)                                                                       PGNKO    }
+  G1G508G = 5C+5H+2N+11O;  {CO(OOH)CH(ONO2)CH(ONO2)CH(O.)CHO                                                                       1.GNN    }
+  G1G508l = 5C+5H+2N+13O;  {CO(OOH)CH(ONO2)CH(ONO2)CH(O.)CO(OOH)                                                                   1.GGN    }
+  G1P50Ao = 5C+4H+3N+15O;  {CO(OOH)CH(ONO2)CH(ONO2)CH(O.)CO(OONO2)                                                                 1.PGN    }
+  G1G502l = 5C+7H+2N+11O;  {CO(OOH)CH(ONO2)CH(ONO2)CH(OH)CH2(O.)                                                                   1.GNN    }
+  G2G5042 = 5C+7H+2N+12O;  {CO(OOH)CH(ONO2)CH(ONO2)CH(OH)CH2(OO.)                                                                  2.GNN    }
+  GGN502U = 5C+6H+2N+11O;  {CO(OOH)CH(ONO2)CH(ONO2)CH(OH)CHO                                                                       GNNDO    }
+  G3G500w = 5C+5H+2N+13O;  {CO(OOH)CH(ONO2)CH(ONO2)CH(OH)CO(OO.)                                                                   3.GNN    }
+  GPG500U = 5C+5H+3N+15O;  {CO(OOH)CH(ONO2)CH(ONO2)CH(OH)CO(OONO2)                                                                 PGNNO    }
+  G1G505c = 5C+6H+3N+13O;  {CO(OOH)CH(ONO2)CH(ONO2)CH(ONO2)CH2(O.)                                                                 1.GNN    }
+  G2G505d = 5C+6H+3N+14O;  {CO(OOH)CH(ONO2)CH(ONO2)CH(ONO2)CH2(OO.)                                                                2.GNN    }
+  GGN502s = 5C+5H+3N+13O;  {CO(OOH)CH(ONO2)CH(ONO2)CH(ONO2)CHO                                                                     GNNND    }
+  G3G501b = 5C+4H+3N+15O;  {CO(OOH)CH(ONO2)CH(ONO2)CH(ONO2)CO(OO.)                                                                 3.GNN    }
+  GGG5014 = 5C+5H+3N+15O;  {CO(OOH)CH(ONO2)CH(ONO2)CH(ONO2)CO(OOH)                                                                 GGNNN    }
+  GPG501Q = 5C+4H+4N+17O;  {CO(OOH)CH(ONO2)CH(ONO2)CH(ONO2)CO(OONO2)                                                               PGNNN    }
+  G2G505g = 5C+5H+2N+12O;  {CO(OOH)CH(ONO2)CH(ONO2)CH(OO.)CHO                                                                      2.GNN    }
+  G2G506H = 5C+5H+2N+14O;  {CO(OOH)CH(ONO2)CH(ONO2)CH(OO.)CO(OOH)                                                                  2.GGN    }
+  G2P507y = 5C+4H+3N+16O;  {CO(OOH)CH(ONO2)CH(ONO2)CH(OO.)CO(OONO2)                                                                2.PGN    }
+  G1G505k = 5C+7H+2N+12O;  {CO(OOH)CH(ONO2)CH(ONO2)CH(OOH)CH2(O.)                                                                  1.GHN    }
+  GGH505F = 5C+6H+2N+12O;  {CO(OOH)CH(ONO2)CH(ONO2)CH(OOH)CHO                                                                      GHNND    }
+  G3G501e = 5C+5H+2N+14O;  {CO(OOH)CH(ONO2)CH(ONO2)CH(OOH)CO(OO.)                                                                  3.GHN    }
+  GGG5015 = 5C+6H+2N+14O;  {CO(OOH)CH(ONO2)CH(ONO2)CH(OOH)CO(OOH)                                                                  GGHNN    }
+  GPG501S = 5C+5H+3N+16O;  {CO(OOH)CH(ONO2)CH(ONO2)CH(OOH)CO(OONO2)                                                                PGHNN    }
+  G1G400i = 4C+5H+2N+10O;  {CO(OOH)CH(ONO2)CH(ONO2)CH2(O.)                                                                         1.GNN    }
+  G2G400x = 4C+5H+2N+11O;  {CO(OOH)CH(ONO2)CH(ONO2)CH2(OO.)                                                                        2.GNN    }
+  G1G502P = 5C+7H+2N+10O;  {CO(OOH)CH(ONO2)CH(ONO2)CH2CH2(O.)                                                                      1.GNN    }
+  G2G5041 = 5C+7H+2N+11O;  {CO(OOH)CH(ONO2)CH(ONO2)CH2CH2(OO.)                                                                     2.GNN    }
+  GGN5022 = 5C+6H+2N+10O;  {CO(OOH)CH(ONO2)CH(ONO2)CH2CHO                                                                          GNND     }
+  G3G500Y = 5C+5H+2N+12O;  {CO(OOH)CH(ONO2)CH(ONO2)CH2CO(OO.)                                                                      3.GNN    }
+  GPG500T = 5C+5H+3N+14O;  {CO(OOH)CH(ONO2)CH(ONO2)CH2CO(OONO2)                                                                    PGNN     }
+  GGN400X = 4C+4H+2N+10O;  {CO(OOH)CH(ONO2)CH(ONO2)CHO                                                                             GNND     }
+  G3G400D = 4C+3H+2N+12O;  {CO(OOH)CH(ONO2)CH(ONO2)CO(OO.)                                                                         3.GNN    }
+  GGG4008 = 4C+4H+2N+12O;  {CO(OOH)CH(ONO2)CH(ONO2)CO(OOH)                                                                         GGNN     }
+  GPG400D = 4C+3H+3N+14O;  {CO(OOH)CH(ONO2)CH(ONO2)CO(OONO2)                                                                       PGNN     }
+  G1G505g = 5C+5H+2N+11O;  {CO(OOH)CH(ONO2)CH(ONO2)COCH2(O.)                                                                       1.GNN    }
+  G2G5058 = 5C+5H+2N+12O;  {CO(OOH)CH(ONO2)CH(ONO2)COCH2(OO.)                                                                      2.GNN    }
+  GGN502k = 5C+4H+2N+11O;  {CO(OOH)CH(ONO2)CH(ONO2)COCHO                                                                           GNNDK    }
+  G3G501k = 5C+3H+2N+13O;  {CO(OOH)CH(ONO2)CH(ONO2)COCO(OO.)                                                                       3.GNN    }
+  GPG501R = 5C+3H+3N+15O;  {CO(OOH)CH(ONO2)CH(ONO2)COCO(OONO2)                                                                     PGNNK    }
+  G2G504l = 5C+6H+N+10O;   {CO(OOH)CH(ONO2)CH(OO.)CH(OH)CHO                                                                        2.GND    }
+  G2G505m = 5C+6H+N+12O;   {CO(OOH)CH(ONO2)CH(OO.)CH(OH)CO(OOH)                                                                    2.GGN    }
+  G2P507S = 5C+5H+2N+14O;  {CO(OOH)CH(ONO2)CH(OO.)CH(OH)CO(OONO2)                                                                  2.PGN    }
+  G2G505P = 5C+5H+2N+12O;  {CO(OOH)CH(ONO2)CH(OO.)CH(ONO2)CHO                                                                      2.GNN    }
+  G2G506C = 5C+5H+2N+14O;  {CO(OOH)CH(ONO2)CH(OO.)CH(ONO2)CO(OOH)                                                                  2.GGN    }
+  G2P5083 = 5C+4H+3N+16O;  {CO(OOH)CH(ONO2)CH(OO.)CH(ONO2)CO(OONO2)                                                                2.PGN    }
+  G2G506D = 5C+6H+N+13O;   {CO(OOH)CH(ONO2)CH(OO.)CH(OOH)CO(OOH)                                                                   2.GGH    }
+  G2P508E = 5C+5H+2N+15O;  {CO(OOH)CH(ONO2)CH(OO.)CH(OOH)CO(OONO2)                                                                 2.PGH    }
+  G2G503i = 5C+6H+N+9O;    {CO(OOH)CH(ONO2)CH(OO.)CH2CHO                                                                           2.GND    }
+  G2G505O = 5C+6H+N+11O;   {CO(OOH)CH(ONO2)CH(OO.)CH2CO(OOH)                                                                       2.GGN    }
+  G2P505C = 5C+5H+2N+13O;  {CO(OOH)CH(ONO2)CH(OO.)CH2CO(OONO2)                                                                     2.PGN    }
+  G2G4011 = 4C+4H+N+9O;    {CO(OOH)CH(ONO2)CH(OO.)CHO                                                                              2.GND    }
+  G2G4018 = 4C+4H+N+11O;   {CO(OOH)CH(ONO2)CH(OO.)CO(OOH)                                                                          2.GGN    }
+  G2P401P = 4C+3H+2N+13O;  {CO(OOH)CH(ONO2)CH(OO.)CO(OONO2)                                                                        2.PGN    }
+  G2G505Q = 5C+4H+N+10O;   {CO(OOH)CH(ONO2)CH(OO.)COCHO                                                                            2.GND    }
+  G2G506F = 5C+4H+N+12O;   {CO(OOH)CH(ONO2)CH(OO.)COCO(OOH)                                                                        2.GGN    }
+  G2P508F = 5C+3H+2N+14O;  {CO(OOH)CH(ONO2)CH(OO.)COCO(OONO2)                                                                      2.PGN    }
+  G1G507q = 5C+6H+N+10O;   {CO(OOH)CH(ONO2)CH(OOH)CH(O.)CHO                                                                        1.GHN    }
+  G1G508e = 5C+6H+N+12O;   {CO(OOH)CH(ONO2)CH(OOH)CH(O.)CO(OOH)                                                                    1.GGH    }
+  G1P50A5 = 5C+5H+2N+14O;  {CO(OOH)CH(ONO2)CH(OOH)CH(O.)CO(OONO2)                                                                  1.PGH    }
+  G1G504k = 5C+8H+N+10O;   {CO(OOH)CH(ONO2)CH(OOH)CH(OH)CH2(O.)                                                                    1.GHN    }
+  G2G505F = 5C+8H+N+11O;   {CO(OOH)CH(ONO2)CH(OOH)CH(OH)CH2(OO.)                                                                   2.GHN    }
+  GGH504M = 5C+7H+N+10O;   {CO(OOH)CH(ONO2)CH(OOH)CH(OH)CHO                                                                        GHNDO    }
+  G3G5018 = 5C+6H+N+12O;   {CO(OOH)CH(ONO2)CH(OOH)CH(OH)CO(OO.)                                                                    3.GHN    }
+  GGG500e = 5C+7H+N+12O;   {CO(OOH)CH(ONO2)CH(OOH)CH(OH)CO(OOH)                                                                    GGHNO    }
+  GPG501B = 5C+6H+2N+14O;  {CO(OOH)CH(ONO2)CH(OOH)CH(OH)CO(OONO2)                                                                  PGHNO    }
+  G1G506S = 5C+7H+2N+12O;  {CO(OOH)CH(ONO2)CH(OOH)CH(ONO2)CH2(O.)                                                                  1.GHN    }
+  G2G505D = 5C+7H+2N+13O;  {CO(OOH)CH(ONO2)CH(OOH)CH(ONO2)CH2(OO.)                                                                 2.GHN    }
+  GGH504y = 5C+6H+2N+12O;  {CO(OOH)CH(ONO2)CH(OOH)CH(ONO2)CHO                                                                      GHNND    }
+  G3G501M = 5C+5H+2N+14O;  {CO(OOH)CH(ONO2)CH(OOH)CH(ONO2)CO(OO.)                                                                  3.GHN    }
+  GGG500u = 5C+6H+2N+14O;  {CO(OOH)CH(ONO2)CH(OOH)CH(ONO2)CO(OOH)                                                                  GGHNN    }
+  GPG501j = 5C+5H+3N+16O;  {CO(OOH)CH(ONO2)CH(OOH)CH(ONO2)CO(OONO2)                                                                PGHNN    }
+  G2G506E = 5C+6H+N+13O;   {CO(OOH)CH(ONO2)CH(OOH)CH(OO.)CO(OOH)                                                                   2.GGH    }
+  G2P5075 = 5C+5H+2N+15O;  {CO(OOH)CH(ONO2)CH(OOH)CH(OO.)CO(OONO2)                                                                 2.PGH    }
+  GGH504z = 5C+7H+N+11O;   {CO(OOH)CH(ONO2)CH(OOH)CH(OOH)CHO                                                                       GHHND    }
+  G3G501N = 5C+6H+N+13O;   {CO(OOH)CH(ONO2)CH(OOH)CH(OOH)CO(OO.)                                                                   3.GHH    }
+  GGG500v = 5C+7H+N+13O;   {CO(OOH)CH(ONO2)CH(OOH)CH(OOH)CO(OOH)                                                                   GGHHN    }
+  GPG501r = 5C+6H+2N+15O;  {CO(OOH)CH(ONO2)CH(OOH)CH(OOH)CO(OONO2)                                                                 PGHHN    }
+  G1G400p = 4C+6H+N+9O;    {CO(OOH)CH(ONO2)CH(OOH)CH2(O.)                                                                          1.GHN    }
+  G2G400z = 4C+6H+N+10O;   {CO(OOH)CH(ONO2)CH(OOH)CH2(OO.)                                                                         2.GHN    }
+  G1G502R = 5C+8H+N+9O;    {CO(OOH)CH(ONO2)CH(OOH)CH2CH2(O.)                                                                       1.GHN    }
+  GGH502v = 5C+7H+N+9O;    {CO(OOH)CH(ONO2)CH(OOH)CH2CHO                                                                           GHND     }
+  G3G500d = 5C+6H+N+11O;   {CO(OOH)CH(ONO2)CH(OOH)CH2CO(OO.)                                                                       3.GHN    }
+  GGG500R = 5C+7H+N+11O;   {CO(OOH)CH(ONO2)CH(OOH)CH2CO(OOH)                                                                       GGHN     }
+  GPG500z = 5C+6H+2N+13O;  {CO(OOH)CH(ONO2)CH(OOH)CH2CO(OONO2)                                                                     PGHN     }
+  GGH400o = 4C+5H+N+9O;    {CO(OOH)CH(ONO2)CH(OOH)CHO                                                                              GHND     }
+  G3G400H = 4C+4H+N+11O;   {CO(OOH)CH(ONO2)CH(OOH)CO(OO.)                                                                          3.GHN    }
+  GGG400B = 4C+5H+N+11O;   {CO(OOH)CH(ONO2)CH(OOH)CO(OOH)                                                                          GGHN     }
+  GPG400K = 4C+4H+2N+13O;  {CO(OOH)CH(ONO2)CH(OOH)CO(OONO2)                                                                        PGHN     }
+  G1G505t = 5C+6H+N+10O;   {CO(OOH)CH(ONO2)CH(OOH)COCH2(O.)                                                                        1.GHN    }
+  G2G504t = 5C+6H+N+11O;   {CO(OOH)CH(ONO2)CH(OOH)COCH2(OO.)                                                                       2.GHN    }
+  GGH5051 = 5C+5H+N+10O;   {CO(OOH)CH(ONO2)CH(OOH)COCHO                                                                            GHNDK    }
+  G3G501v = 5C+4H+N+12O;   {CO(OOH)CH(ONO2)CH(OOH)COCO(OO.)                                                                        3.GHN    }
+  GGG500w = 5C+5H+N+12O;   {CO(OOH)CH(ONO2)CH(OOH)COCO(OOH)                                                                        GGHNK    }
+  GPG501s = 5C+4H+2N+14O;  {CO(OOH)CH(ONO2)CH(OOH)COCO(OONO2)                                                                      PGHNK    }
+  G1G3003 = 3C+4H+N+7O;    {CO(OOH)CH(ONO2)CH2(O.)                                                                                 1.GN     }
+  G2G3003 = 3C+4H+N+8O;    {CO(OOH)CH(ONO2)CH2(OO.)                                                                                2.GN     }
+  G1G505R = 5C+6H+N+8O;    {CO(OOH)CH(ONO2)CH2CH(O.)CHO                                                                            1.GND    }
+  G1G505U = 5C+6H+N+10O;   {CO(OOH)CH(ONO2)CH2CH(O.)CO(OOH)                                                                        1.GGN    }
+  G1P507P = 5C+5H+2N+12O;  {CO(OOH)CH(ONO2)CH2CH(O.)CO(OONO2)                                                                      1.PGN    }
+  G1G500z = 5C+8H+N+8O;    {CO(OOH)CH(ONO2)CH2CH(OH)CH2(O.)                                                                        1.GNO    }
+  G2G501e = 5C+8H+N+9O;    {CO(OOH)CH(ONO2)CH2CH(OH)CH2(OO.)                                                                       2.GNO    }
+  GGN501K = 5C+7H+N+8O;    {CO(OOH)CH(ONO2)CH2CH(OH)CHO                                                                            GNDO     }
+  G3G500J = 5C+6H+N+10O;   {CO(OOH)CH(ONO2)CH2CH(OH)CO(OO.)                                                                        3.GNK    }
+  GPG500L = 5C+6H+2N+12O;  {CO(OOH)CH(ONO2)CH2CH(OH)CO(OONO2)                                                                      PGNO     }
+  G1G502L = 5C+7H+2N+10O;  {CO(OOH)CH(ONO2)CH2CH(ONO2)CH2(O.)                                                                      1.GNN    }
+  G2G503Z = 5C+7H+2N+11O;  {CO(OOH)CH(ONO2)CH2CH(ONO2)CH2(OO.)                                                                     2.GNN    }
+  GGN502D = 5C+6H+2N+10O;  {CO(OOH)CH(ONO2)CH2CH(ONO2)CHO                                                                          GNND     }
+  G3G500l = 5C+5H+2N+12O;  {CO(OOH)CH(ONO2)CH2CH(ONO2)CO(OO.)                                                                      3.GNN    }
+  GGG500W = 5C+6H+2N+12O;  {CO(OOH)CH(ONO2)CH2CH(ONO2)CO(OOH)                                                                      GGNN     }
+  GPG500n = 5C+5H+3N+14O;  {CO(OOH)CH(ONO2)CH2CH(ONO2)CO(OONO2)                                                                    PGNN     }
+  G2G503t = 5C+6H+N+9O;    {CO(OOH)CH(ONO2)CH2CH(OO.)CHO                                                                           2.GND    }
+  G2G503u = 5C+6H+N+11O;   {CO(OOH)CH(ONO2)CH2CH(OO.)CO(OOH)                                                                       2.GGN    }
+  G2P505D = 5C+5H+2N+13O;  {CO(OOH)CH(ONO2)CH2CH(OO.)CO(OONO2)                                                                     2.PGN    }
+  G1G502M = 5C+8H+N+9O;    {CO(OOH)CH(ONO2)CH2CH(OOH)CH2(O.)                                                                       1.GHN    }
+  G2G5057 = 5C+8H+N+10O;   {CO(OOH)CH(ONO2)CH2CH(OOH)CH2(OO.)                                                                      2.GHN    }
+  GGH503A = 5C+7H+N+9O;    {CO(OOH)CH(ONO2)CH2CH(OOH)CHO                                                                           GHND     }
+  G3G500m = 5C+6H+N+11O;   {CO(OOH)CH(ONO2)CH2CH(OOH)CO(OO.)                                                                       3.GHN    }
+  GGG500X = 5C+7H+N+11O;   {CO(OOH)CH(ONO2)CH2CH(OOH)CO(OOH)                                                                       GGHN     }
+  GPG5017 = 5C+6H+2N+13O;  {CO(OOH)CH(ONO2)CH2CH(OOH)CO(OONO2)                                                                     PGHN     }
+  G1G400G = 4C+6H+N+7O;    {CO(OOH)CH(ONO2)CH2CH2(O.)                                                                              1.GN     }
+  G2G400X = 4C+6H+N+8O;    {CO(OOH)CH(ONO2)CH2CH2(OO.)                                                                             2.GN     }
+  G1G500j = 5C+8H+N+7O;    {CO(OOH)CH(ONO2)CH2CH2CH2(O.)                                                                           1.GN     }
+  G2G503J = 5C+8H+N+8O;    {CO(OOH)CH(ONO2)CH2CH2CH2(OO.)                                                                          2.GN     }
+  GGN5011 = 5C+7H+N+7O;    {CO(OOH)CH(ONO2)CH2CH2CHO                                                                               GND      }
+  G3G500D = 5C+6H+N+9O;    {CO(OOH)CH(ONO2)CH2CH2CO(OO.)                                                                           3.GNK    }
+  GPG500F = 5C+6H+2N+11O;  {CO(OOH)CH(ONO2)CH2CH2CO(OONO2)                                                                         PGN      }
+  GGN400M = 4C+5H+N+7O;    {CO(OOH)CH(ONO2)CH2CHO                                                                                  GND      }
+  G3G4005 = 4C+4H+N+9O;    {CO(OOH)CH(ONO2)CH2CO(OO.)                                                                              3.GNK    }
+  GPG4001 = 4C+4H+2N+11O;  {CO(OOH)CH(ONO2)CH2CO(OONO2)                                                                            PGN      }
+  G1G502O = 5C+6H+N+8O;    {CO(OOH)CH(ONO2)CH2COCH2(O.)                                                                            1.GNK    }
+  G2G502x = 5C+6H+N+9O;    {CO(OOH)CH(ONO2)CH2COCH2(OO.)                                                                           2.GNK    }
+  GGN501v = 5C+5H+N+8O;    {CO(OOH)CH(ONO2)CH2COCHO                                                                                GNDK     }
+  G3G501K = 5C+4H+N+10O;   {CO(OOH)CH(ONO2)CH2COCO(OO.)                                                                            3.GNK    }
+  GPG500o = 5C+4H+2N+12O;  {CO(OOH)CH(ONO2)CH2COCO(OONO2)                                                                          PGNK     }
+  GGN3005 = 3C+3H+N+7O;    {CO(OOH)CH(ONO2)CHO                                                                                     GND      }
+  G3G3001 = 3C+2H+N+9O;    {CO(OOH)CH(ONO2)CO(OO.)                                                                                 3.GNK    }
+  GGG3001 = 3C+3H+N+9O;    {CO(OOH)CH(ONO2)CO(OOH)                                                                                 GGN      }
+  GPG3001 = 3C+2H+2N+11O;  {CO(OOH)CH(ONO2)CO(OONO2)                                                                               PGN      }
+  G1G5087 = 5C+4H+N+9O;    {CO(OOH)CH(ONO2)COCH(O.)CHO                                                                             1.GND    }
+  G1G507L = 5C+4H+N+11O;   {CO(OOH)CH(ONO2)COCH(O.)CO(OOH)                                                                         1.GGN    }
+  G1P509A = 5C+3H+2N+13O;  {CO(OOH)CH(ONO2)COCH(O.)CO(OONO2)                                                                       1.PGN    }
+  G1G5024 = 5C+6H+N+9O;    {CO(OOH)CH(ONO2)COCH(OH)CH2(O.)                                                                         1.GNK    }
+  G2G501g = 5C+6H+N+10O;   {CO(OOH)CH(ONO2)COCH(OH)CH2(OO.)                                                                        2.GNK    }
+  GGN501z = 5C+5H+N+9O;    {CO(OOH)CH(ONO2)COCH(OH)CHO                                                                             GNDKO    }
+  G3G500W = 5C+4H+N+11O;   {CO(OOH)CH(ONO2)COCH(OH)CO(OO.)                                                                         3.GNK    }
+  GPG500k = 5C+4H+2N+13O;  {CO(OOH)CH(ONO2)COCH(OH)CO(OONO2)                                                                       PGNKO    }
+  G1G505n = 5C+5H+2N+11O;  {CO(OOH)CH(ONO2)COCH(ONO2)CH2(O.)                                                                       1.GNN    }
+  G2G505e = 5C+5H+2N+12O;  {CO(OOH)CH(ONO2)COCH(ONO2)CH2(OO.)                                                                      2.GNN    }
+  GGN502o = 5C+4H+2N+11O;  {CO(OOH)CH(ONO2)COCH(ONO2)CHO                                                                           GNNDK    }
+  G3G501U = 5C+3H+2N+13O;  {CO(OOH)CH(ONO2)COCH(ONO2)CO(OO.)                                                                       3.GNN    }
+  GGG500p = 5C+4H+2N+13O;  {CO(OOH)CH(ONO2)COCH(ONO2)CO(OOH)                                                                       GGNNK    }
+  GPG501b = 5C+3H+3N+15O;  {CO(OOH)CH(ONO2)COCH(ONO2)CO(OONO2)                                                                     PGNNK    }
+  G2G5052 = 5C+4H+N+12O;   {CO(OOH)CH(ONO2)COCH(OO.)CO(OOH)                                                                        2.GGN    }
+  G2P506S = 5C+3H+2N+14O;  {CO(OOH)CH(ONO2)COCH(OO.)CO(OONO2)                                                                      2.PGN    }
+  G1G507a = 5C+6H+N+10O;   {CO(OOH)CH(ONO2)COCH(OOH)CH2(O.)                                                                        1.GHN    }
+  GGH505a = 5C+5H+N+10O;   {CO(OOH)CH(ONO2)COCH(OOH)CHO                                                                            GHNDK    }
+  G3G501q = 5C+4H+N+12O;   {CO(OOH)CH(ONO2)COCH(OOH)CO(OO.)                                                                        3.GHN    }
+  GGG500q = 5C+5H+N+12O;   {CO(OOH)CH(ONO2)COCH(OOH)CO(OOH)                                                                        GGHNK    }
+  GPG501c = 5C+4H+2N+14O;  {CO(OOH)CH(ONO2)COCH(OOH)CO(OONO2)                                                                      PGHNK    }
+  G1G400l = 4C+4H+N+8O;    {CO(OOH)CH(ONO2)COCH2(O.)                                                                               1.GNK    }
+  G2G400o = 4C+4H+N+9O;    {CO(OOH)CH(ONO2)COCH2(OO.)                                                                              2.GNK    }
+  G1G501f = 5C+6H+N+8O;    {CO(OOH)CH(ONO2)COCH2CH2(O.)                                                                            1.GNK    }
+  G2G501O = 5C+6H+N+9O;    {CO(OOH)CH(ONO2)COCH2CH2(OO.)                                                                           2.GNK    }
+  GGN501l = 5C+5H+N+8O;    {CO(OOH)CH(ONO2)COCH2CHO                                                                                GNDK     }
+  G3G500S = 5C+4H+N+10O;   {CO(OOH)CH(ONO2)COCH2CO(OO.)                                                                            3.GNK    }
+  GPG500b = 5C+4H+2N+12O;  {CO(OOH)CH(ONO2)COCH2CO(OONO2)                                                                          PGNK     }
+  GGN400Z = 4C+3H+N+8O;    {CO(OOH)CH(ONO2)COCHO                                                                                   GNDK     }
+  G3G400M = 4C+2H+N+10O;   {CO(OOH)CH(ONO2)COCO(OO.)                                                                               3.GNK    }
+  GPG400E = 4C+2H+2N+12O;  {CO(OOH)CH(ONO2)COCO(OONO2)                                                                             PGNK     }
+  G1G505p = 5C+4H+N+9O;    {CO(OOH)CH(ONO2)COCOCH2(O.)                                                                             1.GNK    }
+  G2G5059 = 5C+4H+N+10O;   {CO(OOH)CH(ONO2)COCOCH2(OO.)                                                                            2.GNK    }
+  GGN502l = 5C+3H+N+9O;    {CO(OOH)CH(ONO2)COCOCHO                                                                                 GNDKK    }
+  G3G501r = 5C+2H+N+11O;   {CO(OOH)CH(ONO2)COCOCO(OO.)                                                                             3.GNK    }
+  GPG501d = 5C+2H+2N+13O;  {CO(OOH)CH(ONO2)COCOCO(OONO2)                                                                           PGNKK    }
+  G2P507Y = 5C+6H+N+12O;   {CO(OOH)CH(OO.)CH(OH)CH(OH)CO(OONO2)                                                                    2.PGO    }
+  G2G503q = 5C+6H+N+10O;   {CO(OOH)CH(OO.)CH(OH)CH(ONO2)CHO                                                                        2.GND    }
+  G2P506m = 5C+5H+2N+14O;  {CO(OOH)CH(OO.)CH(OH)CH(ONO2)CO(OONO2)                                                                  2.PGN    }
+  G2P508Q = 5C+6H+N+13O;   {CO(OOH)CH(OO.)CH(OH)CH(OOH)CO(OONO2)                                                                   2.PGH    }
+  G2P507I = 5C+6H+N+11O;   {CO(OOH)CH(OO.)CH(OH)CH2CO(OONO2)                                                                       2.PGO    }
+  G2G400R = 4C+5H+7O;      {CO(OOH)CH(OO.)CH(OH)CHO                                                                                2.GDO    }
+  G2P401A = 4C+4H+N+11O;   {CO(OOH)CH(OO.)CH(OH)CO(OONO2)                                                                          2.PGO    }
+  G2G503r = 5C+5H+8O;      {CO(OOH)CH(OO.)CH(OH)COCHO                                                                              2.GDK    }
+  G2P506P = 5C+4H+N+12O;   {CO(OOH)CH(OO.)CH(OH)COCO(OONO2)                                                                        2.PGK    }
+  G2G504B = 5C+6H+N+10O;   {CO(OOH)CH(OO.)CH(ONO2)CH(OH)CHO                                                                        2.GND    }
+  G2P5074 = 5C+5H+2N+14O;  {CO(OOH)CH(OO.)CH(ONO2)CH(OH)CO(OONO2)                                                                  2.PGN    }
+  G2G505f = 5C+5H+2N+12O;  {CO(OOH)CH(OO.)CH(ONO2)CH(ONO2)CHO                                                                      2.GNN    }
+  G2P507z = 5C+4H+3N+16O;  {CO(OOH)CH(OO.)CH(ONO2)CH(ONO2)CO(OONO2)                                                                2.PGN    }
+  G2G505h = 5C+6H+N+11O;   {CO(OOH)CH(OO.)CH(ONO2)CH(OOH)CHO                                                                       2.GHN    }
+  G2P508B = 5C+5H+2N+15O;  {CO(OOH)CH(OO.)CH(ONO2)CH(OOH)CO(OONO2)                                                                 2.PGH    }
+  G2G503g = 5C+6H+N+9O;    {CO(OOH)CH(OO.)CH(ONO2)CH2CHO                                                                           2.GND    }
+  G2P5071 = 5C+5H+2N+13O;  {CO(OOH)CH(OO.)CH(ONO2)CH2CO(OONO2)                                                                     2.PGN    }
+  G2G4013 = 4C+4H+N+9O;    {CO(OOH)CH(OO.)CH(ONO2)CHO                                                                              2.GND    }
+  G2P401R = 4C+3H+2N+13O;  {CO(OOH)CH(OO.)CH(ONO2)CO(OONO2)                                                                        2.PGN    }
+  G2G505l = 5C+4H+N+10O;   {CO(OOH)CH(OO.)CH(ONO2)COCHO                                                                            2.GND    }
+  G2P5081 = 5C+3H+2N+14O;  {CO(OOH)CH(OO.)CH(ONO2)COCO(OONO2)                                                                      2.PGN    }
+  G2G505U = 5C+6H+N+11O;   {CO(OOH)CH(OO.)CH(OOH)CH(ONO2)CHO                                                                       2.GHN    }
+  G2P506l = 5C+5H+2N+15O;  {CO(OOH)CH(OO.)CH(OOH)CH(ONO2)CO(OONO2)                                                                 2.PGH    }
+  G2P401U = 4C+4H+N+12O;   {CO(OOH)CH(OO.)CH(OOH)CO(OONO2)                                                                         2.PGH    }
+  G2G503o = 5C+5H+9O;      {CO(OOH)CH(OO.)CH(OOH)COCHO                                                                             2.GHD    }
+  G2P507B = 5C+4H+N+13O;   {CO(OOH)CH(OO.)CH(OOH)COCO(OONO2)                                                                       2.PGH    }
+  G2G502U = 5C+7H+7O;      {CO(OOH)CH(OO.)CH2CH(OH)CHO                                                                             2.GDO    }
+  G2P503H = 5C+6H+N+11O;   {CO(OOH)CH(OO.)CH2CH(OH)CO(OONO2)                                                                       2.PGO    }
+  G2G5022 = 5C+6H+N+9O;    {CO(OOH)CH(OO.)CH2CH(ONO2)CHO                                                                           2.GND    }
+  G2P504d = 5C+5H+2N+13O;  {CO(OOH)CH(OO.)CH2CH(ONO2)CO(OONO2)                                                                     2.PGN    }
+  G2P507d = 5C+6H+N+12O;   {CO(OOH)CH(OO.)CH2CH(OOH)CO(OONO2)                                                                      2.PGH    }
+  G2G501x = 5C+7H+6O;      {CO(OOH)CH(OO.)CH2CH2CHO                                                                                2.GD     }
+  G2P505G = 5C+6H+N+10O;   {CO(OOH)CH(OO.)CH2CH2CO(OONO2)                                                                          2.PG     }
+  G2G400G = 4C+5H+6O;      {CO(OOH)CH(OO.)CH2CHO                                                                                   2.GD     }
+  G2P400l = 4C+4H+N+10O;   {CO(OOH)CH(OO.)CH2CO(OONO2)                                                                             2.PG     }
+  G2G5025 = 5C+5H+7O;      {CO(OOH)CH(OO.)CH2COCHO                                                                                 2.GDK    }
+  G2P505Z = 5C+4H+N+11O;   {CO(OOH)CH(OO.)CH2COCO(OONO2)                                                                           2.PGK    }
+  G2G3009 = 3C+3H+6O;      {CO(OOH)CH(OO.)CHO                                                                                      2.GD     }
+  G2G3007 = 3C+3H+8O;      {CO(OOH)CH(OO.)CO(OOH)                                                                                  2.GG     }
+  G2P3008 = 3C+2H+N+10O;   {CO(OOH)CH(OO.)CO(OONO2)                                                                                2.PG     }
+  G2P504T = 5C+4H+N+12O;   {CO(OOH)CH(OO.)COCH(OH)CO(OONO2)                                                                        2.PGK    }
+  G2G503s = 5C+4H+N+10O;   {CO(OOH)CH(OO.)COCH(ONO2)CHO                                                                            2.GND    }
+  G2P506U = 5C+3H+2N+14O;  {CO(OOH)CH(OO.)COCH(ONO2)CO(OONO2)                                                                      2.PGN    }
+  G2P508I = 5C+4H+N+13O;   {CO(OOH)CH(OO.)COCH(OOH)CO(OONO2)                                                                       2.PGH    }
+  G2P504G = 5C+4H+N+11O;   {CO(OOH)CH(OO.)COCH2CO(OONO2)                                                                           2.PGK    }
+  G2G4014 = 4C+3H+7O;      {CO(OOH)CH(OO.)COCHO                                                                                    2.GDK    }
+  G2P4017 = 4C+2H+N+11O;   {CO(OOH)CH(OO.)COCO(OONO2)                                                                              2.PGK    }
+  G2G505t = 5C+3H+8O;      {CO(OOH)CH(OO.)COCOCHO                                                                                  2.GDK    }
+  G2P506W = 5C+2H+N+12O;   {CO(OOH)CH(OO.)COCOCO(OONO2)                                                                            2.PGK    }
+  G1G503U = 5C+7H+8O;      {CO(OOH)CH(OOH)CH(O.)CH(OH)CHO                                                                          1.GHD    }
+  G1G508P = 5C+7H+10O;     {CO(OOH)CH(OOH)CH(O.)CH(OH)CO(OOH)                                                                      1.GGH    }
+  G1P50A3 = 5C+6H+N+12O;   {CO(OOH)CH(OOH)CH(O.)CH(OH)CO(OONO2)                                                                    1.PGH    }
+  G1G507x = 5C+6H+N+10O;   {CO(OOH)CH(OOH)CH(O.)CH(ONO2)CHO                                                                        1.GHN    }
+  G1P50At = 5C+5H+2N+14O;  {CO(OOH)CH(OOH)CH(O.)CH(ONO2)CO(OONO2)                                                                  1.PGH    }
+  G1G508C = 5C+7H+9O;      {CO(OOH)CH(OOH)CH(O.)CH(OOH)CHO                                                                         1.GHH    }
+  G1G508o = 5C+7H+11O;     {CO(OOH)CH(OOH)CH(O.)CH(OOH)CO(OOH)                                                                     1.GGH    }
+  G1P50BE = 5C+6H+N+13O;   {CO(OOH)CH(OOH)CH(O.)CH(OOH)CO(OONO2)                                                                   1.PGH    }
+  G1G502d = 5C+7H+7O;      {CO(OOH)CH(OOH)CH(O.)CH2CHO                                                                             1.GHD    }
+  G1G507k = 5C+7H+9O;      {CO(OOH)CH(OOH)CH(O.)CH2CO(OOH)                                                                         1.GGH    }
+  G1P50A2 = 5C+6H+N+11O;   {CO(OOH)CH(OOH)CH(O.)CH2CO(OONO2)                                                                       1.PGH    }
+  G1G401D = 4C+5H+7O;      {CO(OOH)CH(OOH)CH(O.)CHO                                                                                1.GHD    }
+  G1G401J = 4C+5H+9O;      {CO(OOH)CH(OOH)CH(O.)CO(OOH)                                                                            1.GGH    }
+  G1P401e = 4C+4H+N+11O;   {CO(OOH)CH(OOH)CH(O.)CO(OONO2)                                                                          1.PGH    }
+  G1G507z = 5C+5H+8O;      {CO(OOH)CH(OOH)CH(O.)COCHO                                                                              1.GHD    }
+  G1G508j = 5C+5H+10O;     {CO(OOH)CH(OOH)CH(O.)COCO(OOH)                                                                          1.GGH    }
+  G1P50Av = 5C+4H+N+12O;   {CO(OOH)CH(OOH)CH(O.)COCO(OONO2)                                                                        1.PGH    }
+  G1G5086 = 5C+7H+8O;      {CO(OOH)CH(OOH)CH(OH)CH(O.)CHO                                                                          1.GHD    }
+  G1G508k = 5C+7H+10O;     {CO(OOH)CH(OOH)CH(OH)CH(O.)CO(OOH)                                                                      1.GGH    }
+  G1P50B7 = 5C+6H+N+12O;   {CO(OOH)CH(OOH)CH(OH)CH(O.)CO(OONO2)                                                                    1.PGH    }
+  G1G503l = 5C+9H+8O;      {CO(OOH)CH(OOH)CH(OH)CH(OH)CH2(O.)                                                                      1.GHO    }
+  GGH503u = 5C+8H+8O;      {CO(OOH)CH(OOH)CH(OH)CH(OH)CHO                                                                          GHDOO    }
+  G3G5015 = 5C+7H+10O;     {CO(OOH)CH(OOH)CH(OH)CH(OH)CO(OO.)                                                                      3.GHK    }
+  GPG501E = 5C+7H+N+12O;   {CO(OOH)CH(OOH)CH(OH)CH(OH)CO(OONO2)                                                                    PGHOO    }
+  G1G506h = 5C+8H+N+10O;   {CO(OOH)CH(OOH)CH(OH)CH(ONO2)CH2(O.)                                                                    1.GHN    }
+  G2G505L = 5C+8H+N+11O;   {CO(OOH)CH(OOH)CH(OH)CH(ONO2)CH2(OO.)                                                                   2.GHN    }
+  GGH5058 = 5C+7H+N+10O;   {CO(OOH)CH(OOH)CH(OH)CH(ONO2)CHO                                                                        GHNDO    }
+  G3G501T = 5C+6H+N+12O;   {CO(OOH)CH(OOH)CH(OH)CH(ONO2)CO(OO.)                                                                    3.GHN    }
+  GPG501n = 5C+6H+2N+14O;  {CO(OOH)CH(OOH)CH(OH)CH(ONO2)CO(OONO2)                                                                  PGHNO    }
+  G2G506M = 5C+7H+11O;     {CO(OOH)CH(OOH)CH(OH)CH(OO.)CO(OOH)                                                                     2.GGH    }
+  G2P508R = 5C+6H+N+13O;   {CO(OOH)CH(OOH)CH(OH)CH(OO.)CO(OONO2)                                                                   2.PGH    }
+  G1G506v = 5C+9H+9O;      {CO(OOH)CH(OOH)CH(OH)CH(OOH)CH2(O.)                                                                     1.GHH    }
+  GGH505e = 5C+8H+9O;      {CO(OOH)CH(OOH)CH(OH)CH(OOH)CHO                                                                         GHHDO    }
+  G3G5021 = 5C+7H+11O;     {CO(OOH)CH(OOH)CH(OH)CH(OOH)CO(OO.)                                                                     3.GHH    }
+  GGG501B = 5C+8H+11O;     {CO(OOH)CH(OOH)CH(OH)CH(OOH)CO(OOH)                                                                     GGHHO    }
+  GPG501z = 5C+7H+N+13O;   {CO(OOH)CH(OOH)CH(OH)CH(OOH)CO(OONO2)                                                                   PGHHO    }
+  G1G400Q = 4C+7H+7O;      {CO(OOH)CH(OOH)CH(OH)CH2(O.)                                                                            1.GHO    }
+  G2G400m = 4C+7H+8O;      {CO(OOH)CH(OOH)CH(OH)CH2(OO.)                                                                           2.GHO    }
+  G1G502G = 5C+9H+7O;      {CO(OOH)CH(OOH)CH(OH)CH2CH2(O.)                                                                         1.GHO    }
+  GGH5038 = 5C+8H+7O;      {CO(OOH)CH(OOH)CH(OH)CH2CHO                                                                             GHDO     }
+  G3G500h = 5C+7H+9O;      {CO(OOH)CH(OOH)CH(OH)CH2CO(OO.)                                                                         3.GHK    }
+  GPG5015 = 5C+7H+N+11O;   {CO(OOH)CH(OOH)CH(OH)CH2CO(OONO2)                                                                       PGHO     }
+  GGH400g = 4C+6H+7O;      {CO(OOH)CH(OOH)CH(OH)CHO                                                                                GHDO     }
+  G3G400E = 4C+5H+9O;      {CO(OOH)CH(OOH)CH(OH)CO(OO.)                                                                            3.GHK    }
+  GPG400I = 4C+5H+N+11O;   {CO(OOH)CH(OOH)CH(OH)CO(OONO2)                                                                          PGHO     }
+  G1G5074 = 5C+7H+8O;      {CO(OOH)CH(OOH)CH(OH)COCH2(O.)                                                                          1.GHK    }
+  GGH5059 = 5C+6H+8O;      {CO(OOH)CH(OOH)CH(OH)COCHO                                                                              GHDKO    }
+  G3G501p = 5C+5H+10O;     {CO(OOH)CH(OOH)CH(OH)COCO(OO.)                                                                          3.GHK    }
+  GPG501a = 5C+5H+N+12O;   {CO(OOH)CH(OOH)CH(OH)COCO(OONO2)                                                                        PGHKO    }
+  G1G508J = 5C+6H+N+10O;   {CO(OOH)CH(OOH)CH(ONO2)CH(O.)CHO                                                                        1.GHN    }
+  G1G508m = 5C+6H+N+12O;   {CO(OOH)CH(OOH)CH(ONO2)CH(O.)CO(OOH)                                                                    1.GGH    }
+  G1P50Au = 5C+5H+2N+14O;  {CO(OOH)CH(OOH)CH(ONO2)CH(O.)CO(OONO2)                                                                  1.PGH    }
+  G1G504m = 5C+8H+N+10O;   {CO(OOH)CH(OOH)CH(ONO2)CH(OH)CH2(O.)                                                                    1.GHN    }
+  G2G504n = 5C+8H+N+11O;   {CO(OOH)CH(OOH)CH(ONO2)CH(OH)CH2(OO.)                                                                   2.GHN    }
+  GGH503U = 5C+7H+N+10O;   {CO(OOH)CH(OOH)CH(ONO2)CH(OH)CHO                                                                        GHNDO    }
+  G3G500y = 5C+6H+N+12O;   {CO(OOH)CH(OOH)CH(ONO2)CH(OH)CO(OO.)                                                                    3.GHN    }
+  GPG500y = 5C+6H+2N+14O;  {CO(OOH)CH(OOH)CH(ONO2)CH(OH)CO(OONO2)                                                                  PGHNO    }
+  G1G506B = 5C+7H+2N+12O;  {CO(OOH)CH(OOH)CH(ONO2)CH(ONO2)CH2(O.)                                                                  1.GHN    }
+  G2G506A = 5C+7H+2N+13O;  {CO(OOH)CH(OOH)CH(ONO2)CH(ONO2)CH2(OO.)                                                                 2.GHN    }
+  GGH505E = 5C+6H+2N+12O;  {CO(OOH)CH(OOH)CH(ONO2)CH(ONO2)CHO                                                                      GHNND    }
+  G3G501c = 5C+5H+2N+14O;  {CO(OOH)CH(OOH)CH(ONO2)CH(ONO2)CO(OO.)                                                                  3.GHN    }
+  GPG501T = 5C+5H+3N+16O;  {CO(OOH)CH(OOH)CH(ONO2)CH(ONO2)CO(OONO2)                                                                PGHNN    }
+  G2G505i = 5C+6H+N+11O;   {CO(OOH)CH(OOH)CH(ONO2)CH(OO.)CHO                                                                       2.GHN    }
+  G2G506I = 5C+6H+N+13O;   {CO(OOH)CH(OOH)CH(ONO2)CH(OO.)CO(OOH)                                                                   2.GGH    }
+  G2P508C = 5C+5H+2N+15O;  {CO(OOH)CH(OOH)CH(ONO2)CH(OO.)CO(OONO2)                                                                 2.PGH    }
+  G1G506r = 5C+8H+N+11O;   {CO(OOH)CH(OOH)CH(ONO2)CH(OOH)CH2(O.)                                                                   1.GHH    }
+  GGH505G = 5C+7H+N+11O;   {CO(OOH)CH(OOH)CH(ONO2)CH(OOH)CHO                                                                       GHHND    }
+  G3G501f = 5C+6H+N+13O;   {CO(OOH)CH(OOH)CH(ONO2)CH(OOH)CO(OO.)                                                                   3.GHH    }
+  GGG5017 = 5C+7H+N+13O;   {CO(OOH)CH(OOH)CH(ONO2)CH(OOH)CO(OOH)                                                                   GGHHN    }
+  GPG501q = 5C+6H+2N+15O;  {CO(OOH)CH(OOH)CH(ONO2)CH(OOH)CO(OONO2)                                                                 PGHHN    }
+  G1G4015 = 4C+6H+N+9O;    {CO(OOH)CH(OOH)CH(ONO2)CH2(O.)                                                                          1.GHN    }
+  G2G400u = 4C+6H+N+10O;   {CO(OOH)CH(OOH)CH(ONO2)CH2(OO.)                                                                         2.GHN    }
+  G1G504p = 5C+8H+N+9O;    {CO(OOH)CH(OOH)CH(ONO2)CH2CH2(O.)                                                                       1.GHN    }
+  GGH502t = 5C+7H+N+9O;    {CO(OOH)CH(OOH)CH(ONO2)CH2CHO                                                                           GHND     }
+  G3G500Z = 5C+6H+N+11O;   {CO(OOH)CH(OOH)CH(ONO2)CH2CO(OO.)                                                                       3.GHN    }
+  GPG500x = 5C+6H+2N+13O;  {CO(OOH)CH(OOH)CH(ONO2)CH2CO(OONO2)                                                                     PGHN     }
+  GGH400r = 4C+5H+N+9O;    {CO(OOH)CH(OOH)CH(ONO2)CHO                                                                              GHND     }
+  G3G400J = 4C+4H+N+11O;   {CO(OOH)CH(OOH)CH(ONO2)CO(OO.)                                                                          3.GHN    }
+  GPG400N = 4C+4H+2N+13O;  {CO(OOH)CH(OOH)CH(ONO2)CO(OONO2)                                                                        PGHN     }
+  G1G506I = 5C+6H+N+10O;   {CO(OOH)CH(OOH)CH(ONO2)COCH2(O.)                                                                        1.GHN    }
+  G2G5061 = 5C+6H+N+11O;   {CO(OOH)CH(OOH)CH(ONO2)COCH2(OO.)                                                                       2.GHN    }
+  GGH505I = 5C+5H+N+10O;   {CO(OOH)CH(OOH)CH(ONO2)COCHO                                                                            GHNDK    }
+  G3G501l = 5C+4H+N+12O;   {CO(OOH)CH(OOH)CH(ONO2)COCO(OO.)                                                                        3.GHN    }
+  GPG501U = 5C+4H+2N+14O;  {CO(OOH)CH(OOH)CH(ONO2)COCO(OONO2)                                                                      PGHNK    }
+  G2G502T = 5C+7H+9O;      {CO(OOH)CH(OOH)CH(OO.)CH(OH)CHO                                                                         2.GHD    }
+  G2G505W = 5C+6H+N+11O;   {CO(OOH)CH(OOH)CH(OO.)CH(ONO2)CHO                                                                       2.GHN    }
+  G2P5084 = 5C+5H+2N+15O;  {CO(OOH)CH(OOH)CH(OO.)CH(ONO2)CO(OONO2)                                                                 2.PGH    }
+  G2G505c = 5C+7H+10O;     {CO(OOH)CH(OOH)CH(OO.)CH(OOH)CHO                                                                        2.GHH    }
+  G2G501w = 5C+7H+8O;      {CO(OOH)CH(OOH)CH(OO.)CH2CHO                                                                            2.GHD    }
+  G2G4019 = 4C+5H+10O;     {CO(OOH)CH(OOH)CH(OO.)CO(OOH)                                                                           2.GGH    }
+  G2P401W = 4C+4H+N+12O;   {CO(OOH)CH(OOH)CH(OO.)CO(OONO2)                                                                         2.PGH    }
+  G1G507y = 5C+7H+9O;      {CO(OOH)CH(OOH)CH(OOH)CH(O.)CHO                                                                         1.GHH    }
+  G1G508g = 5C+7H+11O;     {CO(OOH)CH(OOH)CH(OOH)CH(O.)CO(OOH)                                                                     1.GGH    }
+  G1P50B5 = 5C+6H+N+13O;   {CO(OOH)CH(OOH)CH(OOH)CH(O.)CO(OONO2)                                                                   1.PGH    }
+  G1G504o = 5C+9H+9O;      {CO(OOH)CH(OOH)CH(OOH)CH(OH)CH2(O.)                                                                     1.GHH    }
+  GGH503r = 5C+8H+9O;      {CO(OOH)CH(OOH)CH(OOH)CH(OH)CHO                                                                         GHHDO    }
+  G3G5013 = 5C+7H+11O;     {CO(OOH)CH(OOH)CH(OOH)CH(OH)CO(OO.)                                                                     3.GHH    }
+  GPG501D = 5C+7H+N+13O;   {CO(OOH)CH(OOH)CH(OOH)CH(OH)CO(OONO2)                                                                   PGHHO    }
+  G1G506U = 5C+8H+N+11O;   {CO(OOH)CH(OOH)CH(OOH)CH(ONO2)CH2(O.)                                                                   1.GHH    }
+  G2G505H = 5C+8H+N+12O;   {CO(OOH)CH(OOH)CH(OOH)CH(ONO2)CH2(OO.)                                                                  2.GHH    }
+  GGH5054 = 5C+7H+N+11O;   {CO(OOH)CH(OOH)CH(OOH)CH(ONO2)CHO                                                                       GHHND    }
+  G3G501Q = 5C+6H+N+13O;   {CO(OOH)CH(OOH)CH(OOH)CH(ONO2)CO(OO.)                                                                   3.GHH    }
+  GPG501k = 5C+6H+2N+15O;  {CO(OOH)CH(OOH)CH(OOH)CH(ONO2)CO(OONO2)                                                                 PGHHN    }
+  G2G506L = 5C+7H+12O;     {CO(OOH)CH(OOH)CH(OOH)CH(OO.)CO(OOH)                                                                    2.GGH    }
+  G1G506t = 5C+9H+10O;     {CO(OOH)CH(OOH)CH(OOH)CH(OOH)CH2(O.)                                                                    1.GHH    }
+  GGH505d = 5C+8H+10O;     {CO(OOH)CH(OOH)CH(OOH)CH(OOH)CHO                                                                        GHHHD    }
+  G3G501z = 5C+7H+12O;     {CO(OOH)CH(OOH)CH(OOH)CH(OOH)CO(OO.)                                                                    3.GHH    }
+  GGG501A = 5C+8H+12O;     {CO(OOH)CH(OOH)CH(OOH)CH(OOH)CO(OOH)                                                                    GGHHH    }
+  GPG501y = 5C+7H+N+14O;   {CO(OOH)CH(OOH)CH(OOH)CH(OOH)CO(OONO2)                                                                  PGHHH    }
+  G1G400q = 4C+7H+8O;      {CO(OOH)CH(OOH)CH(OOH)CH2(O.)                                                                           1.GHH    }
+  G2G4016 = 4C+7H+9O;      {CO(OOH)CH(OOH)CH(OOH)CH2(OO.)                                                                          2.GHH    }
+  G1G504r = 5C+9H+8O;      {CO(OOH)CH(OOH)CH(OOH)CH2CH2(O.)                                                                        1.GHH    }
+  GGH503D = 5C+8H+8O;      {CO(OOH)CH(OOH)CH(OOH)CH2CHO                                                                            GHHD     }
+  G3G500q = 5C+7H+10O;     {CO(OOH)CH(OOH)CH(OOH)CH2CO(OO.)                                                                        3.GHH    }
+  GPG501A = 5C+7H+N+12O;   {CO(OOH)CH(OOH)CH(OOH)CH2CO(OONO2)                                                                      PGHH     }
+  GGH400v = 4C+6H+8O;      {CO(OOH)CH(OOH)CH(OOH)CHO                                                                               GHHD     }
+  G3G400L = 4C+5H+10O;     {CO(OOH)CH(OOH)CH(OOH)CO(OO.)                                                                           3.GHH    }
+  GGG400E = 4C+6H+10O;     {CO(OOH)CH(OOH)CH(OOH)CO(OOH)                                                                           GGHH     }
+  GPG400O = 4C+5H+N+12O;   {CO(OOH)CH(OOH)CH(OOH)CO(OONO2)                                                                         PGHH     }
+  G1G5072 = 5C+7H+9O;      {CO(OOH)CH(OOH)CH(OOH)COCH2(O.)                                                                         1.GHH    }
+  GGH5055 = 5C+6H+9O;      {CO(OOH)CH(OOH)CH(OOH)COCHO                                                                             GHHDK    }
+  G3G501y = 5C+5H+11O;     {CO(OOH)CH(OOH)CH(OOH)COCO(OO.)                                                                         3.GHH    }
+  GPG501v = 5C+5H+N+13O;   {CO(OOH)CH(OOH)CH(OOH)COCO(OONO2)                                                                       PGHHK    }
+  G1G3007 = 3C+5H+6O;      {CO(OOH)CH(OOH)CH2(O.)                                                                                  1.GH     }
+  G2G3008 = 3C+5H+7O;      {CO(OOH)CH(OOH)CH2(OO.)                                                                                 2.GH     }
+  G1G505b = 5C+7H+7O;      {CO(OOH)CH(OOH)CH2CH(O.)CHO                                                                             1.GHD    }
+  G1G508A = 5C+7H+9O;      {CO(OOH)CH(OOH)CH2CH(O.)CO(OOH)                                                                         1.GGH    }
+  G1P509d = 5C+6H+N+11O;   {CO(OOH)CH(OOH)CH2CH(O.)CO(OONO2)                                                                       1.PGH    }
+  G1G501L = 5C+9H+7O;      {CO(OOH)CH(OOH)CH2CH(OH)CH2(O.)                                                                         1.GHO    }
+  G2G502l = 5C+9H+8O;      {CO(OOH)CH(OOH)CH2CH(OH)CH2(OO.)                                                                        2.GHO    }
+  GGH501M = 5C+8H+7O;      {CO(OOH)CH(OOH)CH2CH(OH)CHO                                                                             GHDO     }
+  G3G500L = 5C+7H+9O;      {CO(OOH)CH(OOH)CH2CH(OH)CO(OO.)                                                                         3.GHK    }
+  GPG500M = 5C+7H+N+11O;   {CO(OOH)CH(OOH)CH2CH(OH)CO(OONO2)                                                                       PGHO     }
+  G1G503E = 5C+8H+N+9O;    {CO(OOH)CH(OOH)CH2CH(ONO2)CH2(O.)                                                                       1.GHN    }
+  G2G503a = 5C+8H+N+10O;   {CO(OOH)CH(OOH)CH2CH(ONO2)CH2(OO.)                                                                      2.GHN    }
+  GGH503E = 5C+7H+N+9O;    {CO(OOH)CH(OOH)CH2CH(ONO2)CHO                                                                           GHND     }
+  G3G500s = 5C+6H+N+11O;   {CO(OOH)CH(OOH)CH2CH(ONO2)CO(OO.)                                                                       3.GHN    }
+  GPG500p = 5C+6H+2N+13O;  {CO(OOH)CH(OOH)CH2CH(ONO2)CO(OONO2)                                                                     PGHN     }
+  G2G506G = 5C+7H+10O;     {CO(OOH)CH(OOH)CH2CH(OO.)CO(OOH)                                                                        2.GGH    }
+  G2P507e = 5C+6H+N+12O;   {CO(OOH)CH(OOH)CH2CH(OO.)CO(OONO2)                                                                      2.PGH    }
+  G1G503W = 5C+9H+8O;      {CO(OOH)CH(OOH)CH2CH(OOH)CH2(O.)                                                                        1.GHH    }
+  GGH505B = 5C+8H+8O;      {CO(OOH)CH(OOH)CH2CH(OOH)CHO                                                                            GHHD     }
+  G3G501a = 5C+7H+10O;     {CO(OOH)CH(OOH)CH2CH(OOH)CO(OO.)                                                                        3.GHH    }
+  GGG5013 = 5C+8H+10O;     {CO(OOH)CH(OOH)CH2CH(OOH)CO(OOH)                                                                        GGHH     }
+  GPG501G = 5C+7H+N+12O;   {CO(OOH)CH(OOH)CH2CH(OOH)CO(OONO2)                                                                      PGHH     }
+  G1G400M = 4C+7H+6O;      {CO(OOH)CH(OOH)CH2CH2(O.)                                                                               1.GH     }
+  G2G400Y = 4C+7H+7O;      {CO(OOH)CH(OOH)CH2CH2(OO.)                                                                              2.GH     }
+  G1G500m = 5C+9H+6O;      {CO(OOH)CH(OOH)CH2CH2CH2(O.)                                                                            1.GH     }
+  GGH5014 = 5C+8H+6O;      {CO(OOH)CH(OOH)CH2CH2CHO                                                                                GHD      }
+  G3G500F = 5C+7H+8O;      {CO(OOH)CH(OOH)CH2CH2CO(OO.)                                                                            3.GHK    }
+  GPG500H = 5C+7H+N+10O;   {CO(OOH)CH(OOH)CH2CH2CO(OONO2)                                                                          PGH      }
+  GGH400R = 4C+6H+6O;      {CO(OOH)CH(OOH)CH2CHO                                                                                   GHD      }
+  G3G4008 = 4C+5H+8O;      {CO(OOH)CH(OOH)CH2CO(OO.)                                                                               3.GHK    }
+  GPG400B = 4C+5H+N+10O;   {CO(OOH)CH(OOH)CH2CO(OONO2)                                                                             PGH      }
+  G1G503e = 5C+7H+7O;      {CO(OOH)CH(OOH)CH2COCH2(O.)                                                                             1.GHK    }
+  GGH503H = 5C+6H+7O;      {CO(OOH)CH(OOH)CH2COCHO                                                                                 GHDK     }
+  G3G501Z = 5C+5H+9O;      {CO(OOH)CH(OOH)CH2COCO(OO.)                                                                             3.GHK    }
+  GPG501F = 5C+5H+N+11O;   {CO(OOH)CH(OOH)CH2COCO(OONO2)                                                                           PGHK     }
+  GGH3007 = 3C+4H+6O;      {CO(OOH)CH(OOH)CHO                                                                                      GHD      }
+  G3G3003 = 3C+3H+8O;      {CO(OOH)CH(OOH)CO(OO.)                                                                                  3.GHK    }
+  GGG3003 = 3C+4H+8O;      {CO(OOH)CH(OOH)CO(OOH)                                                                                  GGH      }
+  GPG3003 = 3C+3H+N+10O;   {CO(OOH)CH(OOH)CO(OONO2)                                                                                PGH      }
+  G1G5088 = 5C+5H+8O;      {CO(OOH)CH(OOH)COCH(O.)CHO                                                                              1.GHD    }
+  G1G508b = 5C+5H+10O;     {CO(OOH)CH(OOH)COCH(O.)CO(OOH)                                                                          1.GGH    }
+  G1P50Ax = 5C+4H+N+12O;   {CO(OOH)CH(OOH)COCH(O.)CO(OONO2)                                                                        1.PGH    }
+  G1G503n = 5C+7H+8O;      {CO(OOH)CH(OOH)COCH(OH)CH2(O.)                                                                          1.GHK    }
+  GGH503x = 5C+6H+8O;      {CO(OOH)CH(OOH)COCH(OH)CHO                                                                              GHDKO    }
+  G3G5017 = 5C+5H+10O;     {CO(OOH)CH(OOH)COCH(OH)CO(OO.)                                                                          3.GHK    }
+  GPG500l = 5C+5H+N+12O;   {CO(OOH)CH(OOH)COCH(OH)CO(OONO2)                                                                        PGHKO    }
+  G1G506K = 5C+6H+N+10O;   {CO(OOH)CH(OOH)COCH(ONO2)CH2(O.)                                                                        1.GHN    }
+  G2G5067 = 5C+6H+N+11O;   {CO(OOH)CH(OOH)COCH(ONO2)CH2(OO.)                                                                       2.GHN    }
+  GGH505A = 5C+5H+N+10O;   {CO(OOH)CH(OOH)COCH(ONO2)CHO                                                                            GHNDK    }
+  G3G501W = 5C+4H+N+12O;   {CO(OOH)CH(OOH)COCH(ONO2)CO(OO.)                                                                        3.GHN    }
+  GPG501h = 5C+4H+2N+14O;  {CO(OOH)CH(OOH)COCH(ONO2)CO(OONO2)                                                                      PGHNK    }
+  G2G506K = 5C+5H+11O;     {CO(OOH)CH(OOH)COCH(OO.)CO(OOH)                                                                         2.GGH    }
+  G2P508J = 5C+4H+N+13O;   {CO(OOH)CH(OOH)COCH(OO.)CO(OONO2)                                                                       2.PGH    }
+  G1G506x = 5C+7H+9O;      {CO(OOH)CH(OOH)COCH(OOH)CH2(O.)                                                                         1.GHH    }
+  GGH505L = 5C+6H+9O;      {CO(OOH)CH(OOH)COCH(OOH)CHO                                                                             GHHDK    }
+  G3G501h = 5C+5H+11O;     {CO(OOH)CH(OOH)COCH(OOH)CO(OO.)                                                                         3.GHH    }
+  GGG5019 = 5C+6H+11O;     {CO(OOH)CH(OOH)COCH(OOH)CO(OOH)                                                                         GGHHK    }
+  GPG501x = 5C+5H+N+13O;   {CO(OOH)CH(OOH)COCH(OOH)CO(OONO2)                                                                       PGHHK    }
+  G1G400n = 4C+5H+7O;      {CO(OOH)CH(OOH)COCH2(O.)                                                                                1.GHK    }
+  G2G400q = 4C+5H+8O;      {CO(OOH)CH(OOH)COCH2(OO.)                                                                               2.GHK    }
+  G1G502K = 5C+7H+7O;      {CO(OOH)CH(OOH)COCH2CH2(O.)                                                                             1.GHK    }
+  GGH502F = 5C+6H+7O;      {CO(OOH)CH(OOH)COCH2CHO                                                                                 GHDK     }
+  G3G500U = 5C+5H+9O;      {CO(OOH)CH(OOH)COCH2CO(OO.)                                                                             3.GHK    }
+  GPG500c = 5C+5H+N+11O;   {CO(OOH)CH(OOH)COCH2CO(OONO2)                                                                           PGHK     }
+  GGH400s = 4C+4H+7O;      {CO(OOH)CH(OOH)COCHO                                                                                    GHDK     }
+  G3G400N = 4C+3H+9O;      {CO(OOH)CH(OOH)COCO(OO.)                                                                                3.GHK    }
+  GPG400G = 4C+3H+N+11O;   {CO(OOH)CH(OOH)COCO(OONO2)                                                                              PGHK     }
+  G1G506R = 5C+5H+8O;      {CO(OOH)CH(OOH)COCOCH2(O.)                                                                              1.GHK    }
+  G2G5063 = 5C+5H+9O;      {CO(OOH)CH(OOH)COCOCH2(OO.)                                                                             2.GHK    }
+  GGH505M = 5C+4H+8O;      {CO(OOH)CH(OOH)COCOCHO                                                                                  GHDKK    }
+  G3G501s = 5C+3H+10O;     {CO(OOH)CH(OOH)COCOCO(OO.)                                                                              3.GHK    }
+  GPG501i = 5C+3H+N+12O;   {CO(OOH)CH(OOH)COCOCO(OONO2)                                                                            PGHKK    }
+  G1G2000 = 2C+3H+4O;      {CO(OOH)CH2(O.)                                                                                         1.G      }
+  G2G2000 = 2C+3H+5O;      {CO(OOH)CH2(OO.)                                                                                        2.G      }
+  G1G500y = 5C+7H+6O;      {CO(OOH)CH2CH(O.)CH(OH)CHO                                                                              1.GDO    }
+  G1P504C = 5C+6H+N+10O;   {CO(OOH)CH2CH(O.)CH(OH)CO(OONO2)                                                                        1.PGO    }
+  G1G5057 = 5C+6H+N+8O;    {CO(OOH)CH2CH(O.)CH(ONO2)CHO                                                                            1.GND    }
+  G1P506I = 5C+5H+2N+12O;  {CO(OOH)CH2CH(O.)CH(ONO2)CO(OONO2)                                                                      1.PGN    }
+  G1G502j = 5C+7H+7O;      {CO(OOH)CH2CH(O.)CH(OOH)CHO                                                                             1.GHD    }
+  G1P508z = 5C+6H+N+11O;   {CO(OOH)CH2CH(O.)CH(OOH)CO(OONO2)                                                                       1.PGH    }
+  G1G502A = 5C+7H+5O;      {CO(OOH)CH2CH(O.)CH2CHO                                                                                 1.GD     }
+  G1G5054 = 5C+7H+7O;      {CO(OOH)CH2CH(O.)CH2CO(OOH)                                                                             1.GG     }
+  G1P504z = 5C+6H+N+9O;    {CO(OOH)CH2CH(O.)CH2CO(OONO2)                                                                           1.PG     }
+  G1G400c = 4C+5H+5O;      {CO(OOH)CH2CH(O.)CHO                                                                                    1.GD     }
+  G1G400u = 4C+5H+7O;      {CO(OOH)CH2CH(O.)CO(OOH)                                                                                1.GG     }
+  G1P400w = 4C+4H+N+9O;    {CO(OOH)CH2CH(O.)CO(OONO2)                                                                              1.PG     }
+  G1G5059 = 5C+5H+6O;      {CO(OOH)CH2CH(O.)COCHO                                                                                  1.GDK    }
+  G1G505a = 5C+5H+8O;      {CO(OOH)CH2CH(O.)COCO(OOH)                                                                              1.GGK    }
+  G1P5082 = 5C+4H+N+10O;   {CO(OOH)CH2CH(O.)COCO(OONO2)                                                                            1.PGK    }
+  G1G505M = 5C+7H+6O;      {CO(OOH)CH2CH(OH)CH(O.)CHO                                                                              1.GDO    }
+  G1G5081 = 5C+7H+8O;      {CO(OOH)CH2CH(OH)CH(O.)CO(OOH)                                                                          1.GGO    }
+  G1P509g = 5C+6H+N+10O;   {CO(OOH)CH2CH(OH)CH(O.)CO(OONO2)                                                                        1.PGO    }
+  G1G501H = 5C+9H+6O;      {CO(OOH)CH2CH(OH)CH(OH)CH2(O.)                                                                          1.GOO    }
+  G2G501C = 5C+9H+7O;      {CO(OOH)CH2CH(OH)CH(OH)CH2(OO.)                                                                         2.GOO    }
+  GGD5007 = 5C+8H+6O;      {CO(OOH)CH2CH(OH)CH(OH)CHO                                                                              GDOO     }
+  G3G500C = 5C+7H+8O;      {CO(OOH)CH2CH(OH)CH(OH)CO(OO.)                                                                          3.GKO    }
+  GGG5002 = 5C+8H+8O;      {CO(OOH)CH2CH(OH)CH(OH)CO(OOH)                                                                          GGOO     }
+  GPG5006 = 5C+7H+N+10O;   {CO(OOH)CH2CH(OH)CH(OH)CO(OONO2)                                                                        PGOO     }
+  G1G503A = 5C+8H+N+8O;    {CO(OOH)CH2CH(OH)CH(ONO2)CH2(O.)                                                                        1.GNO    }
+  G2G503X = 5C+8H+N+9O;    {CO(OOH)CH2CH(OH)CH(ONO2)CH2(OO.)                                                                       2.GNO    }
+  GGN502B = 5C+7H+N+8O;    {CO(OOH)CH2CH(OH)CH(ONO2)CHO                                                                            GNDO     }
+  G3G500i = 5C+6H+N+10O;   {CO(OOH)CH2CH(OH)CH(ONO2)CO(OO.)                                                                        3.GNK    }
+  GGG500T = 5C+7H+N+10O;   {CO(OOH)CH2CH(OH)CH(ONO2)CO(OOH)                                                                        GGNO     }
+  GPG500s = 5C+6H+2N+12O;  {CO(OOH)CH2CH(OH)CH(ONO2)CO(OONO2)                                                                      PGNO     }
+  G2G505a = 5C+7H+9O;      {CO(OOH)CH2CH(OH)CH(OO.)CO(OOH)                                                                         2.GGO    }
+  G2P507L = 5C+6H+N+11O;   {CO(OOH)CH2CH(OH)CH(OO.)CO(OONO2)                                                                       2.PGO    }
+  G1G503R = 5C+9H+7O;      {CO(OOH)CH2CH(OH)CH(OOH)CH2(O.)                                                                         1.GHO    }
+  GGH503G = 5C+8H+7O;      {CO(OOH)CH2CH(OH)CH(OOH)CHO                                                                             GHDO     }
+  G3G500u = 5C+7H+9O;      {CO(OOH)CH2CH(OH)CH(OOH)CO(OO.)                                                                         3.GHK    }
+  GGG500U = 5C+8H+9O;      {CO(OOH)CH2CH(OH)CH(OOH)CO(OOH)                                                                         GGHO     }
+  GPG5016 = 5C+7H+N+11O;   {CO(OOH)CH2CH(OH)CH(OOH)CO(OONO2)                                                                       PGHO     }
+  G1G4004 = 4C+7H+5O;      {CO(OOH)CH2CH(OH)CH2(O.)                                                                                1.GO     }
+  G2G400M = 4C+7H+6O;      {CO(OOH)CH2CH(OH)CH2(OO.)                                                                               2.GO     }
+  G1G500f = 5C+9H+5O;      {CO(OOH)CH2CH(OH)CH2CH2(O.)                                                                             1.GO     }
+  GGD4001 = 4C+6H+5O;      {CO(OOH)CH2CH(OH)CHO                                                                                    GDO      }
+  G3G4001 = 4C+5H+7O;      {CO(OOH)CH2CH(OH)CO(OO.)                                                                                3.GKO    }
+  GGG4001 = 4C+6H+7O;      {CO(OOH)CH2CH(OH)CO(OOH)                                                                                GGO      }
+  GPG4004 = 4C+5H+N+9O;    {CO(OOH)CH2CH(OH)CO(OONO2)                                                                              PGO      }
+  G1G503c = 5C+7H+6O;      {CO(OOH)CH2CH(OH)COCH2(O.)                                                                              1.GKO    }
+  G2G502v = 5C+7H+7O;      {CO(OOH)CH2CH(OH)COCH2(OO.)                                                                             2.GKO    }
+  GGD500I = 5C+6H+6O;      {CO(OOH)CH2CH(OH)COCHO                                                                                  GDKO     }
+  G3G501G = 5C+5H+8O;      {CO(OOH)CH2CH(OH)COCO(OO.)                                                                              3.GKK    }
+  GGG500I = 5C+6H+8O;      {CO(OOH)CH2CH(OH)COCO(OOH)                                                                              GGKO     }
+  GPG500a = 5C+5H+N+10O;   {CO(OOH)CH2CH(OH)COCO(OONO2)                                                                            PGKO     }
+  G1G5058 = 5C+6H+N+8O;    {CO(OOH)CH2CH(ONO2)CH(O.)CHO                                                                            1.GND    }
+  G1G507j = 5C+6H+N+10O;   {CO(OOH)CH2CH(ONO2)CH(O.)CO(OOH)                                                                        1.GGN    }
+  G1P508u = 5C+5H+2N+12O;  {CO(OOH)CH2CH(ONO2)CH(O.)CO(OONO2)                                                                      1.PGN    }
+  G1G5011 = 5C+8H+N+8O;    {CO(OOH)CH2CH(ONO2)CH(OH)CH2(O.)                                                                        1.GNO    }
+  G2G501B = 5C+8H+N+9O;    {CO(OOH)CH2CH(ONO2)CH(OH)CH2(OO.)                                                                       2.GNO    }
+  GGN500r = 5C+7H+N+8O;    {CO(OOH)CH2CH(ONO2)CH(OH)CHO                                                                            GNDO     }
+  G3G5009 = 5C+6H+N+10O;   {CO(OOH)CH2CH(ONO2)CH(OH)CO(OO.)                                                                        3.GNK    }
+  GPG5004 = 5C+6H+2N+12O;  {CO(OOH)CH2CH(ONO2)CH(OH)CO(OONO2)                                                                      PGNO     }
+  G1G502o = 5C+7H+2N+10O;  {CO(OOH)CH2CH(ONO2)CH(ONO2)CH2(O.)                                                                      1.GNN    }
+  G2G503Q = 5C+7H+2N+11O;  {CO(OOH)CH2CH(ONO2)CH(ONO2)CH2(OO.)                                                                     2.GNN    }
+  GGN5024 = 5C+6H+2N+10O;  {CO(OOH)CH2CH(ONO2)CH(ONO2)CHO                                                                          GNND     }
+  G3G500b = 5C+5H+2N+12O;  {CO(OOH)CH2CH(ONO2)CH(ONO2)CO(OO.)                                                                      3.GNN    }
+  GGG500O = 5C+6H+2N+12O;  {CO(OOH)CH2CH(ONO2)CH(ONO2)CO(OOH)                                                                      GGNN     }
+  GPG500W = 5C+5H+3N+14O;  {CO(OOH)CH2CH(ONO2)CH(ONO2)CO(OONO2)                                                                    PGNN     }
+  G2G503h = 5C+6H+N+9O;    {CO(OOH)CH2CH(ONO2)CH(OO.)CHO                                                                           2.GND    }
+  G2G505M = 5C+6H+N+11O;   {CO(OOH)CH2CH(ONO2)CH(OO.)CO(OOH)                                                                       2.GGN    }
+  G2P506L = 5C+5H+2N+13O;  {CO(OOH)CH2CH(ONO2)CH(OO.)CO(OONO2)                                                                     2.PGN    }
+  G1G502v = 5C+8H+N+9O;    {CO(OOH)CH2CH(ONO2)CH(OOH)CH2(O.)                                                                       1.GHN    }
+  G2G503R = 5C+8H+N+10O;   {CO(OOH)CH2CH(ONO2)CH(OOH)CH2(OO.)                                                                      2.GHN    }
+  GGH502u = 5C+7H+N+9O;    {CO(OOH)CH2CH(ONO2)CH(OOH)CHO                                                                           GHND     }
+  G3G500c = 5C+6H+N+11O;   {CO(OOH)CH2CH(ONO2)CH(OOH)CO(OO.)                                                                       3.GHN    }
+  GGG500P = 5C+7H+N+11O;   {CO(OOH)CH2CH(ONO2)CH(OOH)CO(OOH)                                                                       GGHN     }
+  GPG500Y = 5C+6H+2N+13O;  {CO(OOH)CH2CH(ONO2)CH(OOH)CO(OONO2)                                                                     PGHN     }
+  G1G400H = 4C+6H+N+7O;    {CO(OOH)CH2CH(ONO2)CH2(O.)                                                                              1.GN     }
+  G2G400T = 4C+6H+N+8O;    {CO(OOH)CH2CH(ONO2)CH2(OO.)                                                                             2.GN     }
+  G1G500b = 5C+8H+N+7O;    {CO(OOH)CH2CH(ONO2)CH2CH2(O.)                                                                           1.GN     }
+  G2G501i = 5C+8H+N+8O;    {CO(OOH)CH2CH(ONO2)CH2CH2(OO.)                                                                          2.GN     }
+  GGN500m = 5C+7H+N+7O;    {CO(OOH)CH2CH(ONO2)CH2CHO                                                                               GND      }
+  G3G5007 = 5C+6H+N+9O;    {CO(OOH)CH2CH(ONO2)CH2CO(OO.)                                                                           3.GNK    }
+  GGG5005 = 5C+7H+N+9O;    {CO(OOH)CH2CH(ONO2)CH2CO(OOH)                                                                           GGN      }
+  GPG5003 = 5C+6H+2N+11O;  {CO(OOH)CH2CH(ONO2)CH2CO(OONO2)                                                                         PGN      }
+  GGN400I = 4C+5H+N+7O;    {CO(OOH)CH2CH(ONO2)CHO                                                                                  GND      }
+  G3G4003 = 4C+4H+N+9O;    {CO(OOH)CH2CH(ONO2)CO(OO.)                                                                              3.GNK    }
+  GGG4002 = 4C+5H+N+9O;    {CO(OOH)CH2CH(ONO2)CO(OOH)                                                                              GGN      }
+  GPG4002 = 4C+4H+2N+11O;  {CO(OOH)CH2CH(ONO2)CO(OONO2)                                                                            PGN      }
+  G1G502s = 5C+6H+N+8O;    {CO(OOH)CH2CH(ONO2)COCH2(O.)                                                                            1.GNK    }
+  G2G502q = 5C+6H+N+9O;    {CO(OOH)CH2CH(ONO2)COCH2(OO.)                                                                           2.GNK    }
+  GGN5025 = 5C+5H+N+8O;    {CO(OOH)CH2CH(ONO2)COCHO                                                                                GNDK     }
+  G3G501D = 5C+4H+N+10O;   {CO(OOH)CH2CH(ONO2)COCO(OO.)                                                                            3.GNK    }
+  GGG500Q = 5C+5H+N+10O;   {CO(OOH)CH2CH(ONO2)COCO(OOH)                                                                            GGNK     }
+  GPG500X = 5C+4H+2N+12O;  {CO(OOH)CH2CH(ONO2)COCO(OONO2)                                                                          PGNK     }
+  G2G500q = 5C+7H+7O;      {CO(OOH)CH2CH(OO.)CH(OH)CHO                                                                             2.GDO    }
+  G2P503I = 5C+6H+N+11O;   {CO(OOH)CH2CH(OO.)CH(OH)CO(OONO2)                                                                       2.PGO    }
+  G2G503n = 5C+6H+N+9O;    {CO(OOH)CH2CH(OO.)CH(ONO2)CHO                                                                           2.GND    }
+  G2P504e = 5C+5H+2N+13O;  {CO(OOH)CH2CH(OO.)CH(ONO2)CO(OONO2)                                                                     2.PGN    }
+  G2G5023 = 5C+7H+8O;      {CO(OOH)CH2CH(OO.)CH(OOH)CHO                                                                            2.GHD    }
+  G2G400e = 4C+5H+6O;      {CO(OOH)CH2CH(OO.)CHO                                                                                   2.GD     }
+  G2G400f = 4C+5H+8O;      {CO(OOH)CH2CH(OO.)CO(OOH)                                                                               2.GG     }
+  G2P400m = 4C+4H+N+10O;   {CO(OOH)CH2CH(OO.)CO(OONO2)                                                                             2.PG     }
+  G2G503p = 5C+5H+7O;      {CO(OOH)CH2CH(OO.)COCHO                                                                                 2.GDK    }
+  G2G503w = 5C+5H+9O;      {CO(OOH)CH2CH(OO.)COCO(OOH)                                                                             2.GGK    }
+  G2P505a = 5C+4H+N+11O;   {CO(OOH)CH2CH(OO.)COCO(OONO2)                                                                           2.PGK    }
+  G1G505G = 5C+7H+7O;      {CO(OOH)CH2CH(OOH)CH(O.)CHO                                                                             1.GHD    }
+  G1G507n = 5C+7H+9O;      {CO(OOH)CH2CH(OOH)CH(O.)CO(OOH)                                                                         1.GGH    }
+  G1P509e = 5C+6H+N+11O;   {CO(OOH)CH2CH(OOH)CH(O.)CO(OONO2)                                                                       1.PGH    }
+  G1G501F = 5C+9H+7O;      {CO(OOH)CH2CH(OOH)CH(OH)CH2(O.)                                                                         1.GHO    }
+  GGH500t = 5C+8H+7O;      {CO(OOH)CH2CH(OOH)CH(OH)CHO                                                                             GHDO     }
+  G3G500B = 5C+7H+9O;      {CO(OOH)CH2CH(OOH)CH(OH)CO(OO.)                                                                         3.GHK    }
+  GPG500E = 5C+7H+N+11O;   {CO(OOH)CH2CH(OOH)CH(OH)CO(OONO2)                                                                       PGHO     }
+  G1G5036 = 5C+8H+N+9O;    {CO(OOH)CH2CH(OOH)CH(ONO2)CH2(O.)                                                                       1.GHN    }
+  G2G503T = 5C+8H+N+10O;   {CO(OOH)CH2CH(OOH)CH(ONO2)CH2(OO.)                                                                      2.GHN    }
+  GGH5034 = 5C+7H+N+9O;    {CO(OOH)CH2CH(OOH)CH(ONO2)CHO                                                                           GHND     }
+  G3G500f = 5C+6H+N+11O;   {CO(OOH)CH2CH(OOH)CH(ONO2)CO(OO.)                                                                       3.GHN    }
+  GPG500r = 5C+6H+2N+13O;  {CO(OOH)CH2CH(OOH)CH(ONO2)CO(OONO2)                                                                     PGHN     }
+  G1G503P = 5C+9H+8O;      {CO(OOH)CH2CH(OOH)CH(OOH)CH2(O.)                                                                        1.GHH    }
+  GGH503F = 5C+8H+8O;      {CO(OOH)CH2CH(OOH)CH(OOH)CHO                                                                            GHHD     }
+  G3G500t = 5C+7H+10O;     {CO(OOH)CH2CH(OOH)CH(OOH)CO(OO.)                                                                        3.GHH    }
+  GGG500b = 5C+8H+10O;     {CO(OOH)CH2CH(OOH)CH(OOH)CO(OOH)                                                                        GGHH     }
+  GPG5012 = 5C+7H+N+12O;   {CO(OOH)CH2CH(OOH)CH(OOH)CO(OONO2)                                                                      PGHH     }
+  G1G400K = 4C+7H+6O;      {CO(OOH)CH2CH(OOH)CH2(O.)                                                                               1.GH     }
+  G2G400j = 4C+7H+7O;      {CO(OOH)CH2CH(OOH)CH2(OO.)                                                                              2.GH     }
+  G1G500d = 5C+9H+6O;      {CO(OOH)CH2CH(OOH)CH2CH2(O.)                                                                            1.GH     }
+  GGH400Q = 4C+6H+6O;      {CO(OOH)CH2CH(OOH)CHO                                                                                   GHD      }
+  G3G4007 = 4C+5H+8O;      {CO(OOH)CH2CH(OOH)CO(OO.)                                                                               3.GHK    }
+  GGG4005 = 4C+6H+8O;      {CO(OOH)CH2CH(OOH)CO(OOH)                                                                               GGH      }
+  GPG400C = 4C+5H+N+10O;   {CO(OOH)CH2CH(OOH)CO(OONO2)                                                                             PGH      }
+  G1G503a = 5C+7H+7O;      {CO(OOH)CH2CH(OOH)COCH2(O.)                                                                             1.GHK    }
+  G2G502s = 5C+7H+8O;      {CO(OOH)CH2CH(OOH)COCH2(OO.)                                                                            2.GHK    }
+  GGH5035 = 5C+6H+7O;      {CO(OOH)CH2CH(OOH)COCHO                                                                                 GHDK     }
+  G3G501O = 5C+5H+9O;      {CO(OOH)CH2CH(OOH)COCO(OO.)                                                                             3.GHK    }
+  GGG500S = 5C+6H+9O;      {CO(OOH)CH2CH(OOH)COCO(OOH)                                                                             GGHK     }
+  GPG5013 = 5C+5H+N+11O;   {CO(OOH)CH2CH(OOH)COCO(OONO2)                                                                           PGHK     }
+  G1G3000 = 3C+5H+4O;      {CO(OOH)CH2CH2(O.)                                                                                      1.G      }
+  G2G3000 = 3C+5H+5O;      {CO(OOH)CH2CH2(OO.)                                                                                     2.G      }
+  G1G502h = 5C+7H+5O;      {CO(OOH)CH2CH2CH(O.)CHO                                                                                 1.GD     }
+  G1G505T = 5C+7H+7O;      {CO(OOH)CH2CH2CH(O.)CO(OOH)                                                                             1.GG     }
+  G1P506G = 5C+6H+N+9O;    {CO(OOH)CH2CH2CH(O.)CO(OONO2)                                                                           1.PG     }
+  G1G5009 = 5C+9H+5O;      {CO(OOH)CH2CH2CH(OH)CH2(O.)                                                                             1.GO     }
+  G2G500B = 5C+9H+6O;      {CO(OOH)CH2CH2CH(OH)CH2(OO.)                                                                            2.GO     }
+  GGD5001 = 5C+8H+5O;      {CO(OOH)CH2CH2CH(OH)CHO                                                                                 GDO      }
+  G3G5001 = 5C+7H+7O;      {CO(OOH)CH2CH2CH(OH)CO(OO.)                                                                             3.GKO    }
+  GGG5000 = 5C+8H+7O;      {CO(OOH)CH2CH2CH(OH)CO(OOH)                                                                             GGO      }
+  GPG5001 = 5C+7H+N+9O;    {CO(OOH)CH2CH2CH(OH)CO(OONO2)                                                                           PGO      }
+  G1G5012 = 5C+8H+N+7O;    {CO(OOH)CH2CH2CH(ONO2)CH2(O.)                                                                           1.GN     }
+  G2G501k = 5C+8H+N+8O;    {CO(OOH)CH2CH2CH(ONO2)CH2(OO.)                                                                          2.GN     }
+  GGN5019 = 5C+7H+N+7O;    {CO(OOH)CH2CH2CH(ONO2)CHO                                                                               GND      }
+  G3G500G = 5C+6H+N+9O;    {CO(OOH)CH2CH2CH(ONO2)CO(OO.)                                                                           3.GNK    }
+  GGG5008 = 5C+7H+N+9O;    {CO(OOH)CH2CH2CH(ONO2)CO(OOH)                                                                           GGN      }
+  GPG500A = 5C+6H+2N+11O;  {CO(OOH)CH2CH2CH(ONO2)CO(OONO2)                                                                         PGN      }
+  G2G5024 = 5C+7H+6O;      {CO(OOH)CH2CH2CH(OO.)CHO                                                                                2.GD     }
+  G2G503x = 5C+7H+8O;      {CO(OOH)CH2CH2CH(OO.)CO(OOH)                                                                            2.GG     }
+  G2P505d = 5C+6H+N+10O;   {CO(OOH)CH2CH2CH(OO.)CO(OONO2)                                                                          2.PG     }
+  G1G5017 = 5C+9H+6O;      {CO(OOH)CH2CH2CH(OOH)CH2(O.)                                                                            1.GH     }
+  G2G501l = 5C+9H+7O;      {CO(OOH)CH2CH2CH(OOH)CH2(OO.)                                                                           2.GH     }
+  GGH5017 = 5C+8H+6O;      {CO(OOH)CH2CH2CH(OOH)CHO                                                                                GHD      }
+  G3G500H = 5C+7H+8O;      {CO(OOH)CH2CH2CH(OOH)CO(OO.)                                                                            3.GHK    }
+  GGG500A = 5C+8H+8O;      {CO(OOH)CH2CH2CH(OOH)CO(OOH)                                                                            GGH      }
+  GPG500O = 5C+7H+N+10O;   {CO(OOH)CH2CH2CH(OOH)CO(OONO2)                                                                          PGH      }
+  G1G4001 = 4C+7H+4O;      {CO(OOH)CH2CH2CH2(O.)                                                                                   1.G      }
+  G2G400L = 4C+7H+5O;      {CO(OOH)CH2CH2CH2(OO.)                                                                                  2.G      }
+  G1G5005 = 5C+9H+4O;      {CO(OOH)CH2CH2CH2CH2(O.)                                                                                1.G      }
+  GGD4000 = 4C+6H+4O;      {CO(OOH)CH2CH2CHO                                                                                       GD       }
+  G3G4000 = 4C+5H+6O;      {CO(OOH)CH2CH2CO(OO.)                                                                                   3.GK     }
+  GGG4000 = 4C+6H+6O;      {CO(OOH)CH2CH2CO(OOH)                                                                                   GG       }
+  GPG4000 = 4C+5H+N+8O;    {CO(OOH)CH2CH2CO(OONO2)                                                                                 PG       }
+  G1G501A = 5C+7H+5O;      {CO(OOH)CH2CH2COCH2(O.)                                                                                 1.GK     }
+  G2G501A = 5C+7H+6O;      {CO(OOH)CH2CH2COCH2(OO.)                                                                                2.GK     }
+  GGD5009 = 5C+6H+5O;      {CO(OOH)CH2CH2COCHO                                                                                     GDK      }
+  G3G500p = 5C+5H+7O;      {CO(OOH)CH2CH2COCO(OO.)                                                                                 3.GKK    }
+  GGG5009 = 5C+6H+7O;      {CO(OOH)CH2CH2COCO(OOH)                                                                                 GGK      }
+  GPG500N = 5C+5H+N+9O;    {CO(OOH)CH2CH2COCO(OONO2)                                                                               PGK      }
+  GGD3000 = 3C+4H+4O;      {CO(OOH)CH2CHO                                                                                          GD       }
+  G3G3000 = 3C+3H+6O;      {CO(OOH)CH2CO(OO.)                                                                                      3.GK     }
+  GGG3000 = 3C+4H+6O;      {CO(OOH)CH2CO(OOH)                                                                                      GG       }
+  GPG3000 = 3C+3H+N+8O;    {CO(OOH)CH2CO(OONO2)                                                                                    PG       }
+  G1G505P = 5C+5H+6O;      {CO(OOH)CH2COCH(O.)CHO                                                                                  1.GDK    }
+  G1G504A = 5C+5H+8O;      {CO(OOH)CH2COCH(O.)CO(OOH)                                                                              1.GGK    }
+  G1P505l = 5C+4H+N+10O;   {CO(OOH)CH2COCH(O.)CO(OONO2)                                                                            1.PGK    }
+  G1G500Z = 5C+7H+6O;      {CO(OOH)CH2COCH(OH)CH2(O.)                                                                              1.GKO    }
+  G2G500Y = 5C+7H+7O;      {CO(OOH)CH2COCH(OH)CH2(OO.)                                                                             2.GKO    }
+  GGD5006 = 5C+6H+6O;      {CO(OOH)CH2COCH(OH)CHO                                                                                  GDKO     }
+  G3G5006 = 5C+5H+8O;      {CO(OOH)CH2COCH(OH)CO(OO.)                                                                              3.GKK    }
+  GPG5009 = 5C+5H+N+10O;   {CO(OOH)CH2COCH(OH)CO(OONO2)                                                                            PGKO     }
+  G1G502y = 5C+6H+N+8O;    {CO(OOH)CH2COCH(ONO2)CH2(O.)                                                                            1.GNK    }
+  G2G503Y = 5C+6H+N+9O;    {CO(OOH)CH2COCH(ONO2)CH2(OO.)                                                                           2.GNK    }
+  GGN502C = 5C+5H+N+8O;    {CO(OOH)CH2COCH(ONO2)CHO                                                                                GNDK     }
+  G3G500j = 5C+4H+N+10O;   {CO(OOH)CH2COCH(ONO2)CO(OO.)                                                                            3.GNK    }
+  GGG500J = 5C+5H+N+10O;   {CO(OOH)CH2COCH(ONO2)CO(OOH)                                                                            GGNK     }
+  GPG500e = 5C+4H+2N+12O;  {CO(OOH)CH2COCH(ONO2)CO(OONO2)                                                                          PGNK     }
+  G2G5037 = 5C+5H+9O;      {CO(OOH)CH2COCH(OO.)CO(OOH)                                                                             2.GGK    }
+  G2P504H = 5C+4H+N+11O;   {CO(OOH)CH2COCH(OO.)CO(OONO2)                                                                           2.PGK    }
+  G1G5033 = 5C+7H+7O;      {CO(OOH)CH2COCH(OOH)CH2(O.)                                                                             1.GHK    }
+  GGH5039 = 5C+6H+7O;      {CO(OOH)CH2COCH(OOH)CHO                                                                                 GHDK     }
+  G3G500k = 5C+5H+9O;      {CO(OOH)CH2COCH(OOH)CO(OO.)                                                                             3.GHK    }
+  GGG500K = 5C+6H+9O;      {CO(OOH)CH2COCH(OOH)CO(OOH)                                                                             GGHK     }
+  GPG500f = 5C+5H+N+11O;   {CO(OOH)CH2COCH(OOH)CO(OONO2)                                                                           PGHK     }
+  G1G400I = 4C+5H+5O;      {CO(OOH)CH2COCH2(O.)                                                                                    1.GK     }
+  G2G400N = 4C+5H+6O;      {CO(OOH)CH2COCH2(OO.)                                                                                   2.GK     }
+  G1G500I = 5C+7H+5O;      {CO(OOH)CH2COCH2CH2(O.)                                                                                 1.GK     }
+  G2G500H = 5C+7H+6O;      {CO(OOH)CH2COCH2CH2(OO.)                                                                                2.GK     }
+  GGD5004 = 5C+6H+5O;      {CO(OOH)CH2COCH2CHO                                                                                     GDK      }
+  G3G5004 = 5C+5H+7O;      {CO(OOH)CH2COCH2CO(OO.)                                                                                 3.GKK    }
+  GGG5003 = 5C+6H+7O;      {CO(OOH)CH2COCH2CO(OOH)                                                                                 GGK      }
+  GPG5007 = 5C+5H+N+9O;    {CO(OOH)CH2COCH2CO(OONO2)                                                                               PGK      }
+  GGD4004 = 4C+4H+5O;      {CO(OOH)CH2COCHO                                                                                        GDK      }
+  G3G400A = 4C+3H+7O;      {CO(OOH)CH2COCO(OO.)                                                                                    3.GKK    }
+  GGG4004 = 4C+4H+7O;      {CO(OOH)CH2COCO(OOH)                                                                                    GGK      }
+  GPG4003 = 4C+3H+N+9O;    {CO(OOH)CH2COCO(OONO2)                                                                                  PGK      }
+  G1G5034 = 5C+5H+6O;      {CO(OOH)CH2COCOCH2(O.)                                                                                  1.GKK    }
+  G2G502w = 5C+5H+7O;      {CO(OOH)CH2COCOCH2(OO.)                                                                                 2.GKK    }
+  GGD500G = 5C+4H+6O;      {CO(OOH)CH2COCOCHO                                                                                      GDKK     }
+  G3G501H = 5C+3H+8O;      {CO(OOH)CH2COCOCO(OO.)                                                                                  3.GKK    }
+  GGG500L = 5C+4H+8O;      {CO(OOH)CH2COCOCO(OOH)                                                                                  GGKK     }
+  GPG500g = 5C+3H+N+10O;   {CO(OOH)CH2COCOCO(OONO2)                                                                                PGKK     }
+  GGD2000 = 2C+2H+4O;      {CO(OOH)CHO                                                                                             GD       }
+  G1G503q = 5C+5H+7O;      {CO(OOH)COCH(O.)CH(OH)CHO                                                                               1.GDK    }
+  G1P509u = 5C+4H+N+11O;   {CO(OOH)COCH(O.)CH(OH)CO(OONO2)                                                                         1.PGK    }
+  G1G507u = 5C+4H+N+9O;    {CO(OOH)COCH(O.)CH(ONO2)CHO                                                                             1.GND    }
+  G1P50B6 = 5C+3H+2N+13O;  {CO(OOH)COCH(O.)CH(ONO2)CO(OONO2)                                                                       1.PGN    }
+  G1G508O = 5C+5H+8O;      {CO(OOH)COCH(O.)CH(OOH)CHO                                                                              1.GHD    }
+  G1P50BH = 5C+4H+N+12O;   {CO(OOH)COCH(O.)CH(OOH)CO(OONO2)                                                                        1.PGH    }
+  G1G502b = 5C+5H+6O;      {CO(OOH)COCH(O.)CH2CHO                                                                                  1.GDK    }
+  G1P507Q = 5C+4H+N+10O;   {CO(OOH)COCH(O.)CH2CO(OONO2)                                                                            1.PGK    }
+  G1G401C = 4C+3H+6O;      {CO(OOH)COCH(O.)CHO                                                                                     1.GDK    }
+  G1G401E = 4C+3H+8O;      {CO(OOH)COCH(O.)CO(OOH)                                                                                 1.GGK    }
+  G1P401W = 4C+2H+N+10O;   {CO(OOH)COCH(O.)CO(OONO2)                                                                               1.PGK    }
+  G1G507w = 5C+3H+7O;      {CO(OOH)COCH(O.)COCHO                                                                                   1.GDK    }
+  G1G508B = 5C+3H+9O;      {CO(OOH)COCH(O.)COCO(OOH)                                                                               1.GGK    }
+  G1P50AN = 5C+2H+N+11O;   {CO(OOH)COCH(O.)COCO(OONO2)                                                                             1.PGK    }
+  G1G5049 = 5C+5H+7O;      {CO(OOH)COCH(OH)CH(O.)CHO                                                                               1.GDK    }
+  G1G507K = 5C+5H+9O;      {CO(OOH)COCH(OH)CH(O.)CO(OOH)                                                                           1.GGK    }
+  G1P5096 = 5C+4H+N+11O;   {CO(OOH)COCH(OH)CH(O.)CO(OONO2)                                                                         1.PGK    }
+  G1G503m = 5C+7H+7O;      {CO(OOH)COCH(OH)CH(OH)CH2(O.)                                                                           1.GKO    }
+  G2G504j = 5C+7H+8O;      {CO(OOH)COCH(OH)CH(OH)CH2(OO.)                                                                          2.GKO    }
+  GGD500K = 5C+6H+7O;      {CO(OOH)COCH(OH)CH(OH)CHO                                                                               GDKOO    }
+  G3G501B = 5C+5H+9O;      {CO(OOH)COCH(OH)CH(OH)CO(OO.)                                                                           3.GKK    }
+  GPG501O = 5C+5H+N+11O;   {CO(OOH)COCH(OH)CH(OH)CO(OONO2)                                                                         PGKOO    }
+  G1G505J = 5C+6H+N+9O;    {CO(OOH)COCH(OH)CH(ONO2)CH2(O.)                                                                         1.GNK    }
+  G2G504z = 5C+6H+N+10O;   {CO(OOH)COCH(OH)CH(ONO2)CH2(OO.)                                                                        2.GNK    }
+  GGN502i = 5C+5H+N+9O;    {CO(OOH)COCH(OH)CH(ONO2)CHO                                                                             GNDKO    }
+  G3G501E = 5C+4H+N+11O;   {CO(OOH)COCH(OH)CH(ONO2)CO(OO.)                                                                         3.GNK    }
+  GGG500m = 5C+5H+N+11O;   {CO(OOH)COCH(OH)CH(ONO2)CO(OOH)                                                                         GGNKO    }
+  GPG501W = 5C+4H+2N+13O;  {CO(OOH)COCH(OH)CH(ONO2)CO(OONO2)                                                                       PGNKO    }
+  G2G5036 = 5C+5H+8O;      {CO(OOH)COCH(OH)CH(OO.)CHO                                                                              2.GDK    }
+  G2G5051 = 5C+5H+10O;     {CO(OOH)COCH(OH)CH(OO.)CO(OOH)                                                                          2.GGK    }
+  G2P506N = 5C+4H+N+12O;   {CO(OOH)COCH(OH)CH(OO.)CO(OONO2)                                                                        2.PGK    }
+  G1G505K = 5C+7H+8O;      {CO(OOH)COCH(OH)CH(OOH)CH2(O.)                                                                          1.GHK    }
+  GGH504h = 5C+6H+8O;      {CO(OOH)COCH(OH)CH(OOH)CHO                                                                              GHDKO    }
+  G3G501F = 5C+5H+10O;     {CO(OOH)COCH(OH)CH(OOH)CO(OO.)                                                                          3.GHK    }
+  GGG500n = 5C+6H+10O;     {CO(OOH)COCH(OH)CH(OOH)CO(OOH)                                                                          GGHKO    }
+  GPG501X = 5C+5H+N+12O;   {CO(OOH)COCH(OH)CH(OOH)CO(OONO2)                                                                        PGHKO    }
+  G1G400D = 4C+5H+6O;      {CO(OOH)COCH(OH)CH2(O.)                                                                                 1.GKO    }
+  G2G400B = 4C+5H+7O;      {CO(OOH)COCH(OH)CH2(OO.)                                                                                2.GKO    }
+  G1G502H = 5C+7H+6O;      {CO(OOH)COCH(OH)CH2CH2(O.)                                                                              1.GKO    }
+  G2G5035 = 5C+7H+7O;      {CO(OOH)COCH(OH)CH2CH2(OO.)                                                                             2.GKO    }
+  GGD500E = 5C+6H+6O;      {CO(OOH)COCH(OH)CH2CHO                                                                                  GDKO     }
+  G3G500R = 5C+5H+8O;      {CO(OOH)COCH(OH)CH2CO(OO.)                                                                              3.GKK    }
+  GPG500Z = 5C+5H+N+10O;   {CO(OOH)COCH(OH)CH2CO(OONO2)                                                                            PGKO     }
+  GGD4003 = 4C+4H+6O;      {CO(OOH)COCH(OH)CHO                                                                                     GDKO     }
+  G3G4004 = 4C+3H+8O;      {CO(OOH)COCH(OH)CO(OO.)                                                                                 3.GKK    }
+  GPG4006 = 4C+3H+N+10O;   {CO(OOH)COCH(OH)CO(OONO2)                                                                               PGKO     }
+  G1G505L = 5C+5H+7O;      {CO(OOH)COCH(OH)COCH2(O.)                                                                               1.GKK    }
+  G2G504y = 5C+5H+8O;      {CO(OOH)COCH(OH)COCH2(OO.)                                                                              2.GKK    }
+  GGD500N = 5C+4H+7O;      {CO(OOH)COCH(OH)COCHO                                                                                   GDKKO    }
+  G3G501o = 5C+3H+9O;      {CO(OOH)COCH(OH)COCO(OO.)                                                                               3.GKK    }
+  GGG500o = 5C+4H+9O;      {CO(OOH)COCH(OH)COCO(OOH)                                                                               GGKKO    }
+  GPG501Y = 5C+3H+N+11O;   {CO(OOH)COCH(OH)COCO(OONO2)                                                                             PGKKO    }
+  G1G508K = 5C+4H+N+9O;    {CO(OOH)COCH(ONO2)CH(O.)CHO                                                                             1.GND    }
+  G1G508n = 5C+4H+N+11O;   {CO(OOH)COCH(ONO2)CH(O.)CO(OOH)                                                                         1.GGN    }
+  G1P50BB = 5C+3H+2N+13O;  {CO(OOH)COCH(ONO2)CH(O.)CO(OONO2)                                                                       1.PGN    }
+  G1G503o = 5C+6H+N+9O;    {CO(OOH)COCH(ONO2)CH(OH)CH2(O.)                                                                         1.GNK    }
+  G2G505A = 5C+6H+N+10O;   {CO(OOH)COCH(ONO2)CH(OH)CH2(OO.)                                                                        2.GNK    }
+  GGN502g = 5C+5H+N+9O;    {CO(OOH)COCH(ONO2)CH(OH)CHO                                                                             GNDKO    }
+  G3G501C = 5C+4H+N+11O;   {CO(OOH)COCH(ONO2)CH(OH)CO(OO.)                                                                         3.GNK    }
+  GPG500w = 5C+4H+2N+13O;  {CO(OOH)COCH(ONO2)CH(OH)CO(OONO2)                                                                       PGNKO    }
+  G1G507R = 5C+5H+2N+11O;  {CO(OOH)COCH(ONO2)CH(ONO2)CH2(O.)                                                                       1.GNN    }
+  G2G5065 = 5C+5H+2N+12O;  {CO(OOH)COCH(ONO2)CH(ONO2)CH2(OO.)                                                                      2.GNN    }
+  GGN502t = 5C+4H+2N+11O;  {CO(OOH)COCH(ONO2)CH(ONO2)CHO                                                                           GNNDK    }
+  G3G501d = 5C+3H+2N+13O;  {CO(OOH)COCH(ONO2)CH(ONO2)CO(OO.)                                                                       3.GNN    }
+  GGG5016 = 5C+4H+2N+13O;  {CO(OOH)COCH(ONO2)CH(ONO2)CO(OOH)                                                                       GGNNK    }
+  GPG501o = 5C+3H+3N+15O;  {CO(OOH)COCH(ONO2)CH(ONO2)CO(OONO2)                                                                     PGNNK    }
+  G2G505j = 5C+4H+N+10O;   {CO(OOH)COCH(ONO2)CH(OO.)CHO                                                                            2.GND    }
+  G2G506J = 5C+4H+N+12O;   {CO(OOH)COCH(ONO2)CH(OO.)CO(OOH)                                                                        2.GGN    }
+  G2P508T = 5C+3H+2N+14O;  {CO(OOH)COCH(ONO2)CH(OO.)CO(OONO2)                                                                      2.PGN    }
+  G1G507l = 5C+6H+N+10O;   {CO(OOH)COCH(ONO2)CH(OOH)CH2(O.)                                                                        1.GHN    }
+  GGH505H = 5C+5H+N+10O;   {CO(OOH)COCH(ONO2)CH(OOH)CHO                                                                            GHNDK    }
+  G3G501g = 5C+4H+N+12O;   {CO(OOH)COCH(ONO2)CH(OOH)CO(OO.)                                                                        3.GHN    }
+  GGG5018 = 5C+5H+N+12O;   {CO(OOH)COCH(ONO2)CH(OOH)CO(OOH)                                                                        GGHNK    }
+  GPG5021 = 5C+4H+2N+14O;  {CO(OOH)COCH(ONO2)CH(OOH)CO(OONO2)                                                                      PGHNK    }
+  G1G4019 = 4C+4H+N+8O;    {CO(OOH)COCH(ONO2)CH2(O.)                                                                               1.GNK    }
+  G2G400y = 4C+4H+N+9O;    {CO(OOH)COCH(ONO2)CH2(OO.)                                                                              2.GNK    }
+  G1G502Z = 5C+6H+N+8O;    {CO(OOH)COCH(ONO2)CH2CH2(O.)                                                                            1.GNK    }
+  G2G504p = 5C+6H+N+9O;    {CO(OOH)COCH(ONO2)CH2CH2(OO.)                                                                           2.GNK    }
+  GGN5023 = 5C+5H+N+8O;    {CO(OOH)COCH(ONO2)CH2CHO                                                                                GNDK     }
+  G3G500a = 5C+4H+N+10O;   {CO(OOH)COCH(ONO2)CH2CO(OO.)                                                                            3.GNK    }
+  GPG500u = 5C+4H+2N+12O;  {CO(OOH)COCH(ONO2)CH2CO(OONO2)                                                                          PGNK     }
+  GGN400b = 4C+3H+N+8O;    {CO(OOH)COCH(ONO2)CHO                                                                                   GNDK     }
+  G3G400K = 4C+2H+N+10O;   {CO(OOH)COCH(ONO2)CO(OO.)                                                                               3.GNK    }
+  GGG400D = 4C+3H+N+10O;   {CO(OOH)COCH(ONO2)CO(OOH)                                                                               GGNK     }
+  GPG400L = 4C+2H+2N+12O;  {CO(OOH)COCH(ONO2)CO(OONO2)                                                                             PGNK     }
+  G1G505W = 5C+4H+N+9O;    {CO(OOH)COCH(ONO2)COCH2(O.)                                                                             1.GNK    }
+  G2G505y = 5C+4H+N+10O;   {CO(OOH)COCH(ONO2)COCH2(OO.)                                                                            2.GNK    }
+  GGN502r = 5C+3H+N+9O;    {CO(OOH)COCH(ONO2)COCHO                                                                                 GNDKK    }
+  G3G501u = 5C+2H+N+11O;   {CO(OOH)COCH(ONO2)COCO(OO.)                                                                             3.GNK    }
+  GGG5012 = 5C+3H+N+11O;   {CO(OOH)COCH(ONO2)COCO(OOH)                                                                             GGNKK    }
+  GPG501p = 5C+2H+2N+13O;  {CO(OOH)COCH(ONO2)COCO(OONO2)                                                                           PGNKK    }
+  G2G502j = 5C+5H+8O;      {CO(OOH)COCH(OO.)CH(OH)CHO                                                                              2.GDK    }
+  G2P507p = 5C+4H+N+12O;   {CO(OOH)COCH(OO.)CH(OH)CO(OONO2)                                                                        2.PGK    }
+  G2G505S = 5C+4H+N+10O;   {CO(OOH)COCH(OO.)CH(ONO2)CHO                                                                            2.GND    }
+  G2P5085 = 5C+3H+2N+14O;  {CO(OOH)COCH(OO.)CH(ONO2)CO(OONO2)                                                                      2.PGN    }
+  G2G501u = 5C+5H+7O;      {CO(OOH)COCH(OO.)CH2CHO                                                                                 2.GDK    }
+  G2P505E = 5C+4H+N+11O;   {CO(OOH)COCH(OO.)CH2CO(OONO2)                                                                           2.PGK    }
+  G2G4015 = 4C+3H+9O;      {CO(OOH)COCH(OO.)CO(OOH)                                                                                2.GGK    }
+  G2P401O = 4C+2H+N+11O;   {CO(OOH)COCH(OO.)CO(OONO2)                                                                              2.PGK    }
+  G2G505T = 5C+3H+8O;      {CO(OOH)COCH(OO.)COCHO                                                                                  2.GDK    }
+  G2G505b = 5C+3H+10O;     {CO(OOH)COCH(OO.)COCO(OOH)                                                                              2.GGK    }
+  G2P507N = 5C+2H+N+12O;   {CO(OOH)COCH(OO.)COCO(OONO2)                                                                            2.PGK    }
+  G1G507v = 5C+5H+8O;      {CO(OOH)COCH(OOH)CH(O.)CHO                                                                              1.GHD    }
+  G1G507t = 5C+5H+10O;     {CO(OOH)COCH(OOH)CH(O.)CO(OOH)                                                                          1.GGH    }
+  G1P50A6 = 5C+4H+N+12O;   {CO(OOH)COCH(OOH)CH(O.)CO(OONO2)                                                                        1.PGH    }
+  G1G503p = 5C+7H+8O;      {CO(OOH)COCH(OOH)CH(OH)CH2(O.)                                                                          1.GHK    }
+  GGH504N = 5C+6H+8O;      {CO(OOH)COCH(OOH)CH(OH)CHO                                                                              GHDKO    }
+  G3G5019 = 5C+5H+10O;     {CO(OOH)COCH(OOH)CH(OH)CO(OO.)                                                                          3.GHK    }
+  GPG501M = 5C+5H+N+12O;   {CO(OOH)COCH(OOH)CH(OH)CO(OONO2)                                                                        PGHKO    }
+  G1G506Z = 5C+6H+N+10O;   {CO(OOH)COCH(OOH)CH(ONO2)CH2(O.)                                                                        1.GHN    }
+  G2G505v = 5C+6H+N+11O;   {CO(OOH)COCH(OOH)CH(ONO2)CH2(OO.)                                                                       2.GHN    }
+  GGH5052 = 5C+5H+N+10O;   {CO(OOH)COCH(OOH)CH(ONO2)CHO                                                                            GHNDK    }
+  G3G501P = 5C+4H+N+12O;   {CO(OOH)COCH(OOH)CH(ONO2)CO(OO.)                                                                        3.GHN    }
+  GPG501l = 5C+4H+2N+14O;  {CO(OOH)COCH(OOH)CH(ONO2)CO(OONO2)                                                                      PGHNK    }
+  G2G505R = 5C+5H+11O;     {CO(OOH)COCH(OOH)CH(OO.)CO(OOH)                                                                         2.GGH    }
+  G2P5076 = 5C+4H+N+13O;   {CO(OOH)COCH(OOH)CH(OO.)CO(OONO2)                                                                       2.PGH    }
+  G1G508S = 5C+7H+9O;      {CO(OOH)COCH(OOH)CH(OOH)CH2(O.)                                                                         1.GHH    }
+  GGH505f = 5C+6H+9O;      {CO(OOH)COCH(OOH)CH(OOH)CHO                                                                             GHHDK    }
+  G3G501x = 5C+5H+11O;     {CO(OOH)COCH(OOH)CH(OOH)CO(OO.)                                                                         3.GHH    }
+  GGG500x = 5C+6H+11O;     {CO(OOH)COCH(OOH)CH(OOH)CO(OOH)                                                                         GGHHK    }
+  GPG501t = 5C+5H+N+13O;   {CO(OOH)COCH(OOH)CH(OOH)CO(OONO2)                                                                       PGHHK    }
+  G1G400s = 4C+5H+7O;      {CO(OOH)COCH(OOH)CH2(O.)                                                                                1.GHK    }
+  G2G4012 = 4C+5H+8O;      {CO(OOH)COCH(OOH)CH2(OO.)                                                                               2.GHK    }
+  G1G502a = 5C+7H+7O;      {CO(OOH)COCH(OOH)CH2CH2(O.)                                                                             1.GHK    }
+  G2G504r = 5C+7H+8O;      {CO(OOH)COCH(OOH)CH2CH2(OO.)                                                                            2.GHK    }
+  GGH502z = 5C+6H+7O;      {CO(OOH)COCH(OOH)CH2CHO                                                                                 GHDK     }
+  G3G500e = 5C+5H+9O;      {CO(OOH)COCH(OOH)CH2CO(OO.)                                                                             3.GHK    }
+  GPG5011 = 5C+5H+N+11O;   {CO(OOH)COCH(OOH)CH2CO(OONO2)                                                                           PGHK     }
+  GGH400p = 4C+4H+7O;      {CO(OOH)COCH(OOH)CHO                                                                                    GHDK     }
+  G3G400I = 4C+3H+9O;      {CO(OOH)COCH(OOH)CO(OO.)                                                                                3.GHK    }
+  GGG400C = 4C+4H+9O;      {CO(OOH)COCH(OOH)CO(OOH)                                                                                GGHK     }
+  GPG400M = 4C+3H+N+11O;   {CO(OOH)COCH(OOH)CO(OONO2)                                                                              PGHK     }
+  G1G505X = 5C+5H+8O;      {CO(OOH)COCH(OOH)COCH2(O.)                                                                              1.GHK    }
+  G2G504v = 5C+5H+9O;      {CO(OOH)COCH(OOH)COCH2(OO.)                                                                             2.GHK    }
+  GGH5053 = 5C+4H+8O;      {CO(OOH)COCH(OOH)COCHO                                                                                  GHDKK    }
+  G3G501w = 5C+3H+10O;     {CO(OOH)COCH(OOH)COCO(OO.)                                                                              3.GHK    }
+  GGG500y = 5C+4H+10O;     {CO(OOH)COCH(OOH)COCO(OOH)                                                                              GGHKK    }
+  GPG501u = 5C+3H+N+12O;   {CO(OOH)COCH(OOH)COCO(OONO2)                                                                            PGHKK    }
+  G1G3005 = 3C+3H+5O;      {CO(OOH)COCH2(O.)                                                                                       1.GK     }
+  G2G3005 = 3C+3H+6O;      {CO(OOH)COCH2(OO.)                                                                                      2.GK     }
+  G1G502c = 5C+5H+6O;      {CO(OOH)COCH2CH(O.)CHO                                                                                  1.GDK    }
+  G1G505Z = 5C+5H+8O;      {CO(OOH)COCH2CH(O.)CO(OOH)                                                                              1.GGK    }
+  G1P507R = 5C+4H+N+10O;   {CO(OOH)COCH2CH(O.)CO(OONO2)                                                                            1.PGK    }
+  G1G501M = 5C+7H+6O;      {CO(OOH)COCH2CH(OH)CH2(O.)                                                                              1.GKO    }
+  G2G502f = 5C+7H+7O;      {CO(OOH)COCH2CH(OH)CH2(OO.)                                                                             2.GKO    }
+  GGD500B = 5C+6H+6O;      {CO(OOH)COCH2CH(OH)CHO                                                                                  GDKO     }
+  G3G500O = 5C+5H+8O;      {CO(OOH)COCH2CH(OH)CO(OO.)                                                                              3.GKK    }
+  GPG500P = 5C+5H+N+10O;   {CO(OOH)COCH2CH(OH)CO(OONO2)                                                                            PGKO     }
+  G1G502U = 5C+6H+N+8O;    {CO(OOH)COCH2CH(ONO2)CH2(O.)                                                                            1.GNK    }
+  G2G503b = 5C+6H+N+9O;    {CO(OOH)COCH2CH(ONO2)CH2(OO.)                                                                           2.GNK    }
+  GGN502E = 5C+5H+N+8O;    {CO(OOH)COCH2CH(ONO2)CHO                                                                                GNDK     }
+  G3G500n = 5C+4H+N+10O;   {CO(OOH)COCH2CH(ONO2)CO(OO.)                                                                            3.GNK    }
+  GGG500Y = 5C+5H+N+10O;   {CO(OOH)COCH2CH(ONO2)CO(OOH)                                                                            GGNK     }
+  GPG500q = 5C+4H+2N+12O;  {CO(OOH)COCH2CH(ONO2)CO(OONO2)                                                                          PGNK     }
+  G2G501v = 5C+5H+7O;      {CO(OOH)COCH2CH(OO.)CHO                                                                                 2.GDK    }
+  G2G503v = 5C+5H+9O;      {CO(OOH)COCH2CH(OO.)CO(OOH)                                                                             2.GGK    }
+  G2P505F = 5C+4H+N+11O;   {CO(OOH)COCH2CH(OO.)CO(OONO2)                                                                           2.PGK    }
+  G1G502W = 5C+7H+7O;      {CO(OOH)COCH2CH(OOH)CH2(O.)                                                                             1.GHK    }
+  GGH503B = 5C+6H+7O;      {CO(OOH)COCH2CH(OOH)CHO                                                                                 GHDK     }
+  G3G500o = 5C+5H+9O;      {CO(OOH)COCH2CH(OOH)CO(OO.)                                                                             3.GHK    }
+  GGG500Z = 5C+6H+9O;      {CO(OOH)COCH2CH(OOH)CO(OOH)                                                                             GGHK     }
+  GPG5018 = 5C+5H+N+11O;   {CO(OOH)COCH2CH(OOH)CO(OONO2)                                                                           PGHK     }
+  G1G400N = 4C+5H+5O;      {CO(OOH)COCH2CH2(O.)                                                                                    1.GK     }
+  G2G400H = 4C+5H+6O;      {CO(OOH)COCH2CH2(OO.)                                                                                   2.GK     }
+  G1G500p = 5C+7H+5O;      {CO(OOH)COCH2CH2CH2(O.)                                                                                 1.GK     }
+  G2G502p = 5C+7H+6O;      {CO(OOH)COCH2CH2CH2(OO.)                                                                                2.GK     }
+  GGD5008 = 5C+6H+5O;      {CO(OOH)COCH2CH2CHO                                                                                     GDK      }
+  G3G500E = 5C+5H+7O;      {CO(OOH)COCH2CH2CO(OO.)                                                                                 3.GKK    }
+  GPG500G = 5C+5H+N+9O;    {CO(OOH)COCH2CH2CO(OONO2)                                                                               PGK      }
+  GGD4005 = 4C+4H+5O;      {CO(OOH)COCH2CHO                                                                                        GDK      }
+  G3G4006 = 4C+3H+7O;      {CO(OOH)COCH2CO(OO.)                                                                                    3.GKK    }
+  GPG400A = 4C+3H+N+9O;    {CO(OOH)COCH2CO(OONO2)                                                                                  PGK      }
+  G1G502X = 5C+5H+6O;      {CO(OOH)COCH2COCH2(O.)                                                                                  1.GKK    }
+  G2G502y = 5C+5H+7O;      {CO(OOH)COCH2COCH2(OO.)                                                                                 2.GKK    }
+  GGD500J = 5C+4H+6O;      {CO(OOH)COCH2COCHO                                                                                      GDKK     }
+  G3G501Y = 5C+3H+8O;      {CO(OOH)COCH2COCO(OO.)                                                                                  3.GKK    }
+  GGG500a = 5C+4H+8O;      {CO(OOH)COCH2COCO(OOH)                                                                                  GGKK     }
+  GPG5019 = 5C+3H+N+10O;   {CO(OOH)COCH2COCO(OONO2)                                                                                PGKK     }
+  GGD3002 = 3C+2H+5O;      {CO(OOH)COCHO                                                                                           GDK      }
+  G3G3004 = 3C+H+7O;       {CO(OOH)COCO(OO.)                                                                                       3.GKK    }
+  GGG3004 = 3C+2H+7O;      {CO(OOH)COCO(OOH)                                                                                       GGK      }
+  GPG3004 = 3C+H+N+9O;     {CO(OOH)COCO(OONO2)                                                                                     PGK      }
+  G1G5089 = 5C+3H+7O;      {CO(OOH)COCOCH(O.)CHO                                                                                   1.GDK    }
+  G1G507M = 5C+3H+9O;      {CO(OOH)COCOCH(O.)CO(OOH)                                                                               1.GGK    }
+  G1P509B = 5C+2H+N+11O;   {CO(OOH)COCOCH(O.)CO(OONO2)                                                                             1.PGK    }
+  G1G5025 = 5C+5H+7O;      {CO(OOH)COCOCH(OH)CH2(O.)                                                                               1.GKK    }
+  G2G501h = 5C+5H+8O;      {CO(OOH)COCOCH(OH)CH2(OO.)                                                                              2.GKK    }
+  GGD500H = 5C+4H+7O;      {CO(OOH)COCOCH(OH)CHO                                                                                   GDKKO    }
+  G3G500X = 5C+3H+9O;      {CO(OOH)COCOCH(OH)CO(OO.)                                                                               3.GKK    }
+  GPG500m = 5C+3H+N+11O;   {CO(OOH)COCOCH(OH)CO(OONO2)                                                                             PGKKO    }
+  G1G506M = 5C+4H+N+9O;    {CO(OOH)COCOCH(ONO2)CH2(O.)                                                                             1.GNK    }
+  G2G5066 = 5C+4H+N+10O;   {CO(OOH)COCOCH(ONO2)CH2(OO.)                                                                            2.GNK    }
+  GGN502q = 5C+3H+N+9O;    {CO(OOH)COCOCH(ONO2)CHO                                                                                 GNDKK    }
+  G3G501X = 5C+2H+N+11O;   {CO(OOH)COCOCH(ONO2)CO(OO.)                                                                             3.GNK    }
+  GGG500r = 5C+3H+N+11O;   {CO(OOH)COCOCH(ONO2)CO(OOH)                                                                             GGNKK    }
+  GPG501e = 5C+2H+2N+13O;  {CO(OOH)COCOCH(ONO2)CO(OONO2)                                                                           PGNKK    }
+  G2G5053 = 5C+3H+10O;     {CO(OOH)COCOCH(OO.)CO(OOH)                                                                              2.GGK    }
+  G2P506T = 5C+2H+N+12O;   {CO(OOH)COCOCH(OO.)CO(OONO2)                                                                            2.PGK    }
+  G1G5083 = 5C+5H+8O;      {CO(OOH)COCOCH(OOH)CH2(O.)                                                                              1.GHK    }
+  GGH505Y = 5C+4H+8O;      {CO(OOH)COCOCH(OOH)CHO                                                                                  GHDKK    }
+  G3G501n = 5C+3H+10O;     {CO(OOH)COCOCH(OOH)CO(OO.)                                                                              3.GHK    }
+  GGG500s = 5C+4H+10O;     {CO(OOH)COCOCH(OOH)CO(OOH)                                                                              GGHKK    }
+  GPG501f = 5C+3H+N+12O;   {CO(OOH)COCOCH(OOH)CO(OONO2)                                                                            PGHKK    }
+  G1G400o = 4C+3H+6O;      {CO(OOH)COCOCH2(O.)                                                                                     1.GKK    }
+  G2G400p = 4C+3H+7O;      {CO(OOH)COCOCH2(OO.)                                                                                    2.GKK    }
+  G1G501j = 5C+5H+6O;      {CO(OOH)COCOCH2CH2(O.)                                                                                  1.GKK    }
+  G2G501S = 5C+5H+7O;      {CO(OOH)COCOCH2CH2(OO.)                                                                                 2.GKK    }
+  GGD500F = 5C+4H+6O;      {CO(OOH)COCOCH2CHO                                                                                      GDKK     }
+  G3G500T = 5C+3H+8O;      {CO(OOH)COCOCH2CO(OO.)                                                                                  3.GKK    }
+  GPG500d = 5C+3H+N+10O;   {CO(OOH)COCOCH2CO(OONO2)                                                                                PGKK     }
+  GGD4008 = 4C+2H+6O;      {CO(OOH)COCOCHO                                                                                         GDKK     }
+  G3G400O = 4C+H+8O;       {CO(OOH)COCOCO(OO.)                                                                                     3.GKK    }
+  GGG400A = 4C+2H+8O;      {CO(OOH)COCOCO(OOH)                                                                                     GGKK     }
+  GPG400H = 4C+H+N+10O;    {CO(OOH)COCOCO(OONO2)                                                                                   PGKK     }
+  G1G505Y = 5C+3H+7O;      {CO(OOH)COCOCOCH2(O.)                                                                                   1.GKK    }
+  G2G505B = 5C+3H+8O;      {CO(OOH)COCOCOCH2(OO.)                                                                                  2.GKK    }
+  GGD500O = 5C+2H+7O;      {CO(OOH)COCOCOCHO                                                                                       GDKKK    }
+  G3G501t = 5C+H+9O;       {CO(OOH)COCOCOCO(OO.)                                                                                   3.GKK    }
+  GGG500t = 5C+2H+9O;      {CO(OOH)COCOCOCO(OOH)                                                                                   GGKKK    }
+  GPG501g = 5C+H+N+11O;    {CO(OOH)COCOCOCO(OONO2)                                                                                 PGKKK    }
+  GGU3000 = 3C+4H+3O;      {CO(OOH)CdH=CdH2                                                                                        GU       }
+  G1P5088 = 5C+6H+N+9O;    {CO(OONO2)CH(O.)CH(OH)CH(OH)CHO                                                                         1.PDO    }
+  G1P507B = 5C+5H+2N+11O;  {CO(OONO2)CH(O.)CH(OH)CH(ONO2)CHO                                                                       1.PND    }
+  G1P50AK = 5C+6H+N+10O;   {CO(OONO2)CH(O.)CH(OH)CH(OOH)CHO                                                                        1.PHD    }
+  G1P5077 = 5C+6H+N+8O;    {CO(OONO2)CH(O.)CH(OH)CH2CHO                                                                            1.PDO    }
+  G1P400k = 4C+4H+N+8O;    {CO(OONO2)CH(O.)CH(OH)CHO                                                                               1.PDO    }
+  G1P507C = 5C+4H+N+9O;    {CO(OONO2)CH(O.)CH(OH)COCHO                                                                             1.PDK    }
+  G1P506T = 5C+5H+2N+11O;  {CO(OONO2)CH(O.)CH(ONO2)CH(OH)CHO                                                                       1.PND    }
+  G1P508d = 5C+4H+3N+13O;  {CO(OONO2)CH(O.)CH(ONO2)CH(ONO2)CHO                                                                     1.PNN    }
+  G1P508x = 5C+5H+2N+12O;  {CO(OONO2)CH(O.)CH(ONO2)CH(OOH)CHO                                                                      1.PHN    }
+  G1P505Q = 5C+5H+2N+10O;  {CO(OONO2)CH(O.)CH(ONO2)CH2CHO                                                                          1.PND    }
+  G1P401C = 4C+3H+2N+10O;  {CO(OONO2)CH(O.)CH(ONO2)CHO                                                                             1.PND    }
+  G1P508r = 5C+3H+2N+11O;  {CO(OONO2)CH(O.)CH(ONO2)COCHO                                                                           1.PND    }
+  G1P5087 = 5C+6H+N+10O;   {CO(OONO2)CH(O.)CH(OOH)CH(OH)CHO                                                                        1.PHD    }
+  G1P506y = 5C+5H+2N+12O;  {CO(OONO2)CH(O.)CH(OOH)CH(ONO2)CHO                                                                      1.PHN    }
+  G1P50A9 = 5C+6H+N+11O;   {CO(OONO2)CH(O.)CH(OOH)CH(OOH)CHO                                                                       1.PHH    }
+  G1P506w = 5C+6H+N+9O;    {CO(OONO2)CH(O.)CH(OOH)CH2CHO                                                                           1.PHD    }
+  G1P4017 = 4C+4H+N+9O;    {CO(OONO2)CH(O.)CH(OOH)CHO                                                                              1.PHD    }
+  G1P506z = 5C+4H+N+10O;   {CO(OONO2)CH(O.)CH(OOH)COCHO                                                                            1.PHD    }
+  G1P504W = 5C+6H+N+8O;    {CO(OONO2)CH(O.)CH2CH(OH)CHO                                                                            1.PDO    }
+  G1P504I = 5C+5H+2N+10O;  {CO(OONO2)CH(O.)CH2CH(ONO2)CHO                                                                          1.PND    }
+  G1P507q = 5C+6H+N+9O;    {CO(OONO2)CH(O.)CH2CH(OOH)CHO                                                                           1.PHD    }
+  G1P502d = 5C+6H+N+7O;    {CO(OONO2)CH(O.)CH2CH2CHO                                                                               1.PD     }
+  G1P400W = 4C+4H+N+7O;    {CO(OONO2)CH(O.)CH2CHO                                                                                  1.PD     }
+  G1P504L = 5C+4H+N+8O;    {CO(OONO2)CH(O.)CH2COCHO                                                                                1.PDK    }
+  G1P3008 = 3C+2H+N+7O;    {CO(OONO2)CH(O.)CHO                                                                                     1.PD     }
+  G1P300B = 3C+H+2N+11O;   {CO(OONO2)CH(O.)CO(OONO2)                                                                               1.PP     }
+  G1P506c = 5C+4H+N+9O;    {CO(OONO2)CH(O.)COCH(OH)CHO                                                                             1.PDK    }
+  G1P505u = 5C+3H+2N+11O;  {CO(OONO2)CH(O.)COCH(ONO2)CHO                                                                           1.PND    }
+  G1P509T = 5C+4H+N+10O;   {CO(OONO2)CH(O.)COCH(OOH)CHO                                                                            1.PHD    }
+  G1P5064 = 5C+4H+N+8O;    {CO(OONO2)CH(O.)COCH2CHO                                                                                1.PDK    }
+  G1P401T = 4C+2H+N+8O;    {CO(OONO2)CH(O.)COCHO                                                                                   1.PDK    }
+  G1P509S = 5C+2H+N+9O;    {CO(OONO2)CH(O.)COCOCHO                                                                                 1.PDK    }
+  G1P501Z = 5C+6H+N+9O;    {CO(OONO2)CH(OH)CH(O.)CH(OH)CHO                                                                         1.PDO    }
+  G1P504l = 5C+5H+2N+13O;  {CO(OONO2)CH(OH)CH(O.)CH(OH)CO(OONO2)                                                                   1.PPO    }
+  G1P505H = 5C+5H+2N+11O;  {CO(OONO2)CH(OH)CH(O.)CH(ONO2)CHO                                                                       1.PND    }
+  G1P503t = 5C+6H+N+10O;   {CO(OONO2)CH(OH)CH(O.)CH(OOH)CHO                                                                        1.PHD    }
+  G1P501I = 5C+6H+N+8O;    {CO(OONO2)CH(OH)CH(O.)CH2CHO                                                                            1.PDO    }
+  G1P504G = 5C+5H+2N+12O;  {CO(OONO2)CH(OH)CH(O.)CH2CO(OONO2)                                                                      1.PPO    }
+  G1P400r = 4C+4H+N+8O;    {CO(OONO2)CH(OH)CH(O.)CHO                                                                               1.PDO    }
+  G1P401Q = 4C+3H+2N+12O;  {CO(OONO2)CH(OH)CH(O.)CO(OONO2)                                                                         1.PPO    }
+  G1P506a = 5C+4H+N+9O;    {CO(OONO2)CH(OH)CH(O.)COCHO                                                                             1.PDK    }
+  G1P5095 = 5C+3H+2N+13O;  {CO(OONO2)CH(OH)CH(O.)COCO(OONO2)                                                                       1.PPK    }
+  G1P507p = 5C+6H+N+9O;    {CO(OONO2)CH(OH)CH(OH)CH(O.)CHO                                                                         1.PDO    }
+  G1P50AW = 5C+5H+2N+13O;  {CO(OONO2)CH(OH)CH(OH)CH(O.)CO(OONO2)                                                                   1.PPO    }
+  G1P504a = 5C+8H+N+9O;    {CO(OONO2)CH(OH)CH(OH)CH(OH)CH2(O.)                                                                     1.POO    }
+  G2P503Y = 5C+8H+N+10O;   {CO(OONO2)CH(OH)CH(OH)CH(OH)CH2(OO.)                                                                    2.POO    }
+  GPD500A = 5C+7H+N+9O;    {CO(OONO2)CH(OH)CH(OH)CH(OH)CHO                                                                         PDOOO    }
+  G3P500O = 5C+6H+N+11O;   {CO(OONO2)CH(OH)CH(OH)CH(OH)CO(OO.)                                                                     3.PKO    }
+  GPP500G = 5C+6H+2N+13O;  {CO(OONO2)CH(OH)CH(OH)CH(OH)CO(OONO2)                                                                   PPOOO    }
+  G1P507m = 5C+7H+2N+11O;  {CO(OONO2)CH(OH)CH(OH)CH(ONO2)CH2(O.)                                                                   1.PNO    }
+  G2P505t = 5C+7H+2N+12O;  {CO(OONO2)CH(OH)CH(OH)CH(ONO2)CH2(OO.)                                                                  2.PNO    }
+  GPN502g = 5C+6H+2N+11O;  {CO(OONO2)CH(OH)CH(OH)CH(ONO2)CHO                                                                       PNDOO    }
+  G3P500u = 5C+5H+2N+13O;  {CO(OONO2)CH(OH)CH(OH)CH(ONO2)CO(OO.)                                                                   3.PNK    }
+  GPP500f = 5C+5H+3N+15O;  {CO(OONO2)CH(OH)CH(OH)CH(ONO2)CO(OONO2)                                                                 PPNOO    }
+  G2P507a = 5C+5H+2N+14O;  {CO(OONO2)CH(OH)CH(OH)CH(OO.)CO(OONO2)                                                                  2.PPO    }
+  G1P505g = 5C+8H+N+10O;   {CO(OONO2)CH(OH)CH(OH)CH(OOH)CH2(O.)                                                                    1.PHO    }
+  G2P504C = 5C+8H+N+11O;   {CO(OONO2)CH(OH)CH(OH)CH(OOH)CH2(OO.)                                                                   2.PHO    }
+  GPH503q = 5C+7H+N+10O;   {CO(OONO2)CH(OH)CH(OH)CH(OOH)CHO                                                                        PHDOO    }
+  G3P500w = 5C+6H+N+12O;   {CO(OONO2)CH(OH)CH(OH)CH(OOH)CO(OO.)                                                                    3.PHK    }
+  GPP500h = 5C+6H+2N+14O;  {CO(OONO2)CH(OH)CH(OH)CH(OOH)CO(OONO2)                                                                  PPHOO    }
+  G1P400Y = 4C+6H+N+8O;    {CO(OONO2)CH(OH)CH(OH)CH2(O.)                                                                           1.POO    }
+  G2P400b = 4C+6H+N+9O;    {CO(OONO2)CH(OH)CH(OH)CH2(OO.)                                                                          2.POO    }
+  G1P500M = 5C+8H+N+8O;    {CO(OONO2)CH(OH)CH(OH)CH2CH2(O.)                                                                        1.POO    }
+  G2P500L = 5C+8H+N+9O;    {CO(OONO2)CH(OH)CH(OH)CH2CH2(OO.)                                                                       2.POO    }
+  GPD5003 = 5C+7H+N+8O;    {CO(OONO2)CH(OH)CH(OH)CH2CHO                                                                            PDOO     }
+  G3P5005 = 5C+6H+N+10O;   {CO(OONO2)CH(OH)CH(OH)CH2CO(OO.)                                                                        3.PKO    }
+  GPD4006 = 4C+5H+N+8O;    {CO(OONO2)CH(OH)CH(OH)CHO                                                                               PDOO     }
+  G3P400D = 4C+4H+N+10O;   {CO(OONO2)CH(OH)CH(OH)CO(OO.)                                                                           3.PKO    }
+  GPP400A = 4C+4H+2N+12O;  {CO(OONO2)CH(OH)CH(OH)CO(OONO2)                                                                         PPOO     }
+  G1P507z = 5C+6H+N+9O;    {CO(OONO2)CH(OH)CH(OH)COCH2(O.)                                                                         1.PKO    }
+  G2P505u = 5C+6H+N+10O;   {CO(OONO2)CH(OH)CH(OH)COCH2(OO.)                                                                        2.PKO    }
+  GPD500L = 5C+5H+N+9O;    {CO(OONO2)CH(OH)CH(OH)COCHO                                                                             PDKOO    }
+  G3P501n = 5C+4H+N+11O;   {CO(OONO2)CH(OH)CH(OH)COCO(OO.)                                                                         3.PKK    }
+  GPP500m = 5C+4H+2N+13O;  {CO(OONO2)CH(OH)CH(OH)COCO(OONO2)                                                                       PPKOO    }
+  G1P505I = 5C+5H+2N+11O;  {CO(OONO2)CH(OH)CH(ONO2)CH(O.)CHO                                                                       1.PND    }
+  G1P505c = 5C+4H+3N+15O;  {CO(OONO2)CH(OH)CH(ONO2)CH(O.)CO(OONO2)                                                                 1.PPN    }
+  G1P500g = 5C+7H+2N+11O;  {CO(OONO2)CH(OH)CH(ONO2)CH(OH)CH2(O.)                                                                   1.PNO    }
+  G2P500f = 5C+7H+2N+12O;  {CO(OONO2)CH(OH)CH(ONO2)CH(OH)CH2(OO.)                                                                  2.PNO    }
+  GPN500t = 5C+6H+2N+11O;  {CO(OONO2)CH(OH)CH(ONO2)CH(OH)CHO                                                                       PNDOO    }
+  G3P500A = 5C+5H+2N+13O;  {CO(OONO2)CH(OH)CH(ONO2)CH(OH)CO(OO.)                                                                   3.PNK    }
+  GPP5008 = 5C+5H+3N+15O;  {CO(OONO2)CH(OH)CH(ONO2)CH(OH)CO(OONO2)                                                                 PPNOO    }
+  G1P505E = 5C+6H+3N+13O;  {CO(OONO2)CH(OH)CH(ONO2)CH(ONO2)CH2(O.)                                                                 1.PNN    }
+  G2P507o = 5C+6H+3N+14O;  {CO(OONO2)CH(OH)CH(ONO2)CH(ONO2)CH2(OO.)                                                                2.PNN    }
+  GPN501k = 5C+5H+3N+13O;  {CO(OONO2)CH(OH)CH(ONO2)CH(ONO2)CHO                                                                     PNNDO    }
+  G3P500S = 5C+4H+3N+15O;  {CO(OONO2)CH(OH)CH(ONO2)CH(ONO2)CO(OO.)                                                                 3.PNN    }
+  GPP500L = 5C+4H+4N+17O;  {CO(OONO2)CH(OH)CH(ONO2)CH(ONO2)CO(OONO2)                                                               PPNNO    }
+  G2P504x = 5C+5H+2N+12O;  {CO(OONO2)CH(OH)CH(ONO2)CH(OO.)CHO                                                                      2.PND    }
+  G2P504A = 5C+4H+3N+16O;  {CO(OONO2)CH(OH)CH(ONO2)CH(OO.)CO(OONO2)                                                                2.PPN    }
+  G1P505U = 5C+7H+2N+12O;  {CO(OONO2)CH(OH)CH(ONO2)CH(OOH)CH2(O.)                                                                  1.PHN    }
+  G2P5047 = 5C+7H+2N+13O;  {CO(OONO2)CH(OH)CH(ONO2)CH(OOH)CH2(OO.)                                                                 2.PHN    }
+  GPH503B = 5C+6H+2N+12O;  {CO(OONO2)CH(OH)CH(ONO2)CH(OOH)CHO                                                                      PHNDO    }
+  G3P500i = 5C+5H+2N+14O;  {CO(OONO2)CH(OH)CH(ONO2)CH(OOH)CO(OO.)                                                                  3.PHN    }
+  GPP500M = 5C+5H+3N+16O;  {CO(OONO2)CH(OH)CH(ONO2)CH(OOH)CO(OONO2)                                                                PPHNO    }
+  G1P400e = 4C+5H+2N+10O;  {CO(OONO2)CH(OH)CH(ONO2)CH2(O.)                                                                         1.PNO    }
+  G2P400a = 4C+5H+2N+11O;  {CO(OONO2)CH(OH)CH(ONO2)CH2(OO.)                                                                        2.PNO    }
+  G1P500J = 5C+7H+2N+10O;  {CO(OONO2)CH(OH)CH(ONO2)CH2CH2(O.)                                                                      1.PNO    }
+  G2P500I = 5C+7H+2N+11O;  {CO(OONO2)CH(OH)CH(ONO2)CH2CH2(OO.)                                                                     2.PNO    }
+  GPN500b = 5C+6H+2N+10O;  {CO(OONO2)CH(OH)CH(ONO2)CH2CHO                                                                          PNDO     }
+  G3P5004 = 5C+5H+2N+12O;  {CO(OONO2)CH(OH)CH(ONO2)CH2CO(OO.)                                                                      3.PNK    }
+  GPP5003 = 5C+5H+3N+14O;  {CO(OONO2)CH(OH)CH(ONO2)CH2CO(OONO2)                                                                    PPNO     }
+  GPN400Q = 4C+4H+2N+10O;  {CO(OONO2)CH(OH)CH(ONO2)CHO                                                                             PNDO     }
+  G3P4008 = 4C+3H+2N+12O;  {CO(OONO2)CH(OH)CH(ONO2)CO(OO.)                                                                         3.PNK    }
+  GPP4004 = 4C+3H+3N+14O;  {CO(OONO2)CH(OH)CH(ONO2)CO(OONO2)                                                                       PPNO     }
+  G1P505M = 5C+5H+2N+11O;  {CO(OONO2)CH(OH)CH(ONO2)COCH2(O.)                                                                       1.PNK    }
+  G2P5045 = 5C+5H+2N+12O;  {CO(OONO2)CH(OH)CH(ONO2)COCH2(OO.)                                                                      2.PNK    }
+  GPN502K = 5C+4H+2N+11O;  {CO(OONO2)CH(OH)CH(ONO2)COCHO                                                                           PNDKO    }
+  G3P501K = 5C+3H+2N+13O;  {CO(OONO2)CH(OH)CH(ONO2)COCO(OO.)                                                                       3.PNK    }
+  GPP500N = 5C+3H+3N+15O;  {CO(OONO2)CH(OH)CH(ONO2)COCO(OONO2)                                                                     PPNKO    }
+  G2P501K = 5C+6H+N+10O;   {CO(OONO2)CH(OH)CH(OO.)CH(OH)CHO                                                                        2.PDO    }
+  G2P503k = 5C+5H+2N+14O;  {CO(OONO2)CH(OH)CH(OO.)CH(OH)CO(OONO2)                                                                  2.PPO    }
+  G2P505R = 5C+5H+2N+12O;  {CO(OONO2)CH(OH)CH(OO.)CH(ONO2)CHO                                                                      2.PND    }
+  G2P5035 = 5C+6H+N+11O;   {CO(OONO2)CH(OH)CH(OO.)CH(OOH)CHO                                                                       2.PHD    }
+  G2P5019 = 5C+6H+N+9O;    {CO(OONO2)CH(OH)CH(OO.)CH2CHO                                                                           2.PDO    }
+  G2P503M = 5C+5H+2N+13O;  {CO(OONO2)CH(OH)CH(OO.)CH2CO(OONO2)                                                                     2.PPO    }
+  G2P401G = 4C+4H+N+9O;    {CO(OONO2)CH(OH)CH(OO.)CHO                                                                              2.PDO    }
+  G2P401E = 4C+3H+2N+13O;  {CO(OONO2)CH(OH)CH(OO.)CO(OONO2)                                                                        2.PPO    }
+  G2P505y = 5C+4H+N+10O;   {CO(OONO2)CH(OH)CH(OO.)COCHO                                                                            2.PDK    }
+  G2P507r = 5C+3H+2N+14O;  {CO(OONO2)CH(OH)CH(OO.)COCO(OONO2)                                                                      2.PPK    }
+  G1P507j = 5C+6H+N+10O;   {CO(OONO2)CH(OH)CH(OOH)CH(O.)CHO                                                                        1.PHD    }
+  G1P50AS = 5C+5H+2N+14O;  {CO(OONO2)CH(OH)CH(OOH)CH(O.)CO(OONO2)                                                                  1.PPH    }
+  G1P504Y = 5C+8H+N+10O;   {CO(OONO2)CH(OH)CH(OOH)CH(OH)CH2(O.)                                                                    1.PHO    }
+  G2P503W = 5C+8H+N+11O;   {CO(OONO2)CH(OH)CH(OOH)CH(OH)CH2(OO.)                                                                   2.PHO    }
+  GPH501m = 5C+7H+N+10O;   {CO(OONO2)CH(OH)CH(OOH)CH(OH)CHO                                                                        PHDOO    }
+  G3P500N = 5C+6H+N+12O;   {CO(OONO2)CH(OH)CH(OOH)CH(OH)CO(OO.)                                                                    3.PHK    }
+  GPP500F = 5C+6H+2N+14O;  {CO(OONO2)CH(OH)CH(OOH)CH(OH)CO(OONO2)                                                                  PPHOO    }
+  G1P507d = 5C+7H+2N+12O;  {CO(OONO2)CH(OH)CH(OOH)CH(ONO2)CH2(O.)                                                                  1.PHN    }
+  G2P505p = 5C+7H+2N+13O;  {CO(OONO2)CH(OH)CH(OOH)CH(ONO2)CH2(OO.)                                                                 2.PHN    }
+  GPH503j = 5C+6H+2N+12O;  {CO(OONO2)CH(OH)CH(OOH)CH(ONO2)CHO                                                                      PHNDO    }
+  G3P500t = 5C+5H+2N+14O;  {CO(OONO2)CH(OH)CH(OOH)CH(ONO2)CO(OO.)                                                                  3.PHN    }
+  G1P506P = 5C+8H+N+11O;   {CO(OONO2)CH(OH)CH(OOH)CH(OOH)CH2(O.)                                                                   1.PHH    }
+  G2P504k = 5C+8H+N+12O;   {CO(OONO2)CH(OH)CH(OOH)CH(OOH)CH2(OO.)                                                                  2.PHH    }
+  GPH503o = 5C+7H+N+11O;   {CO(OONO2)CH(OH)CH(OOH)CH(OOH)CHO                                                                       PHHDO    }
+  G3P500v = 5C+6H+N+13O;   {CO(OONO2)CH(OH)CH(OOH)CH(OOH)CO(OO.)                                                                   3.PHH    }
+  GPP500g = 5C+6H+2N+15O;  {CO(OONO2)CH(OH)CH(OOH)CH(OOH)CO(OONO2)                                                                 PPHHO    }
+  G1P400s = 4C+6H+N+9O;    {CO(OONO2)CH(OH)CH(OOH)CH2(O.)                                                                          1.PHO    }
+  G2P400i = 4C+6H+N+10O;   {CO(OONO2)CH(OH)CH(OOH)CH2(OO.)                                                                         2.PHO    }
+  G1P502h = 5C+8H+N+9O;    {CO(OONO2)CH(OH)CH(OOH)CH2CH2(O.)                                                                       1.PHO    }
+  G2P502F = 5C+8H+N+10O;   {CO(OONO2)CH(OH)CH(OOH)CH2CH2(OO.)                                                                      2.PHO    }
+  GPH500z = 5C+7H+N+9O;    {CO(OONO2)CH(OH)CH(OOH)CH2CHO                                                                           PHDO     }
+  G3P500C = 5C+6H+N+11O;   {CO(OONO2)CH(OH)CH(OOH)CH2CO(OO.)                                                                       3.PHK    }
+  GPP5009 = 5C+6H+2N+13O;  {CO(OONO2)CH(OH)CH(OOH)CH2CO(OONO2)                                                                     PPHO     }
+  GPH400p = 4C+5H+N+9O;    {CO(OONO2)CH(OH)CH(OOH)CHO                                                                              PHDO     }
+  G3P400I = 4C+4H+N+11O;   {CO(OONO2)CH(OH)CH(OOH)CO(OO.)                                                                          3.PHK    }
+  GPP400D = 4C+4H+2N+13O;  {CO(OONO2)CH(OH)CH(OOH)CO(OONO2)                                                                        PPHO     }
+  G1P507w = 5C+6H+N+10O;   {CO(OONO2)CH(OH)CH(OOH)COCH2(O.)                                                                        1.PHK    }
+  G2P505r = 5C+6H+N+11O;   {CO(OONO2)CH(OH)CH(OOH)COCH2(OO.)                                                                       2.PHK    }
+  GPH504Y = 5C+5H+N+10O;   {CO(OONO2)CH(OH)CH(OOH)COCHO                                                                            PHDKO    }
+  G3P501m = 5C+4H+N+12O;   {CO(OONO2)CH(OH)CH(OOH)COCO(OO.)                                                                        3.PHK    }
+  GPP500l = 5C+4H+2N+14O;  {CO(OONO2)CH(OH)CH(OOH)COCO(OONO2)                                                                      PPHKO    }
+  G1P3005 = 3C+4H+N+7O;    {CO(OONO2)CH(OH)CH2(O.)                                                                                 1.PO     }
+  G2P3005 = 3C+4H+N+8O;    {CO(OONO2)CH(OH)CH2(OO.)                                                                                2.PO     }
+  G1P503j = 5C+6H+N+8O;    {CO(OONO2)CH(OH)CH2CH(O.)CHO                                                                            1.PDO    }
+  G1P504F = 5C+5H+2N+12O;  {CO(OONO2)CH(OH)CH2CH(O.)CO(OONO2)                                                                      1.PPO    }
+  G1P501N = 5C+8H+N+8O;    {CO(OONO2)CH(OH)CH2CH(OH)CH2(O.)                                                                        1.POO    }
+  G2P501E = 5C+8H+N+9O;    {CO(OONO2)CH(OH)CH2CH(OH)CH2(OO.)                                                                       2.POO    }
+  GPD5002 = 5C+7H+N+8O;    {CO(OONO2)CH(OH)CH2CH(OH)CHO                                                                            PDOO     }
+  G3P5002 = 5C+6H+N+10O;   {CO(OONO2)CH(OH)CH2CH(OH)CO(OO.)                                                                        3.PKO    }
+  GPP5001 = 5C+6H+2N+12O;  {CO(OONO2)CH(OH)CH2CH(OH)CO(OONO2)                                                                      PPOO     }
+  G1P503e = 5C+7H+2N+10O;  {CO(OONO2)CH(OH)CH2CH(ONO2)CH2(O.)                                                                      1.PNO    }
+  G2P503e = 5C+7H+2N+11O;  {CO(OONO2)CH(OH)CH2CH(ONO2)CH2(OO.)                                                                     2.PNO    }
+  GPN501G = 5C+6H+2N+10O;  {CO(OONO2)CH(OH)CH2CH(ONO2)CHO                                                                          PNDO     }
+  G3P500F = 5C+5H+2N+12O;  {CO(OONO2)CH(OH)CH2CH(ONO2)CO(OO.)                                                                      3.PNK    }
+  GPP500A = 5C+5H+3N+14O;  {CO(OONO2)CH(OH)CH2CH(ONO2)CO(OONO2)                                                                    PPNO     }
+  G2P5036 = 5C+6H+N+9O;    {CO(OONO2)CH(OH)CH2CH(OO.)CHO                                                                           2.PDO    }
+  G2P503L = 5C+5H+2N+13O;  {CO(OONO2)CH(OH)CH2CH(OO.)CO(OONO2)                                                                     2.PPO    }
+  G1P503q = 5C+8H+N+9O;    {CO(OONO2)CH(OH)CH2CH(OOH)CH2(O.)                                                                       1.PHO    }
+  GPH501J = 5C+7H+N+9O;    {CO(OONO2)CH(OH)CH2CH(OOH)CHO                                                                           PHDO     }
+  G3P500G = 5C+6H+N+11O;   {CO(OONO2)CH(OH)CH2CH(OOH)CO(OO.)                                                                       3.PHK    }
+  GPP500B = 5C+6H+2N+13O;  {CO(OONO2)CH(OH)CH2CH(OOH)CO(OONO2)                                                                     PPHO     }
+  G1P400M = 4C+6H+N+7O;    {CO(OONO2)CH(OH)CH2CH2(O.)                                                                              1.PO     }
+  G2P400L = 4C+6H+N+8O;    {CO(OONO2)CH(OH)CH2CH2(OO.)                                                                             2.PO     }
+  G1P5018 = 5C+8H+N+7O;    {CO(OONO2)CH(OH)CH2CH2CH2(O.)                                                                           1.PO     }
+  G2P501L = 5C+8H+N+8O;    {CO(OONO2)CH(OH)CH2CH2CH2(OO.)                                                                          2.PO     }
+  GPD5000 = 5C+7H+N+7O;    {CO(OONO2)CH(OH)CH2CH2CHO                                                                               PDO      }
+  G3P5000 = 5C+6H+N+9O;    {CO(OONO2)CH(OH)CH2CH2CO(OO.)                                                                           3.PKO    }
+  GPD4002 = 4C+5H+N+7O;    {CO(OONO2)CH(OH)CH2CHO                                                                                  PDO      }
+  G3P4005 = 4C+4H+N+9O;    {CO(OONO2)CH(OH)CH2CO(OO.)                                                                              3.PKO    }
+  G1P5041 = 5C+6H+N+8O;    {CO(OONO2)CH(OH)CH2COCH2(O.)                                                                            1.PKO    }
+  G2P503c = 5C+6H+N+9O;    {CO(OONO2)CH(OH)CH2COCH2(OO.)                                                                           2.PKO    }
+  GPD500C = 5C+5H+N+8O;    {CO(OONO2)CH(OH)CH2COCHO                                                                                PDKO     }
+  G3P5012 = 5C+4H+N+10O;   {CO(OONO2)CH(OH)CH2COCO(OO.)                                                                            3.PKK    }
+  GPP500E = 5C+4H+2N+12O;  {CO(OONO2)CH(OH)CH2COCO(OONO2)                                                                          PPKO     }
+  GPD3001 = 3C+3H+N+7O;    {CO(OONO2)CH(OH)CHO                                                                                     PDO      }
+  G3P3002 = 3C+2H+N+9O;    {CO(OONO2)CH(OH)CO(OO.)                                                                                 3.PKO    }
+  GPP3002 = 3C+2H+2N+11O;  {CO(OONO2)CH(OH)CO(OONO2)                                                                               PPO      }
+  G1P507t = 5C+4H+N+9O;    {CO(OONO2)CH(OH)COCH(O.)CHO                                                                             1.PDK    }
+  G1P5069 = 5C+3H+2N+13O;  {CO(OONO2)CH(OH)COCH(O.)CO(OONO2)                                                                       1.PPK    }
+  G1P502m = 5C+6H+N+9O;    {CO(OONO2)CH(OH)COCH(OH)CH2(O.)                                                                         1.PKO    }
+  G2P502J = 5C+6H+N+10O;   {CO(OONO2)CH(OH)COCH(OH)CH2(OO.)                                                                        2.PKO    }
+  GPD500D = 5C+5H+N+9O;    {CO(OONO2)CH(OH)COCH(OH)CHO                                                                             PDKOO    }
+  G3P500Q = 5C+4H+N+11O;   {CO(OONO2)CH(OH)COCH(OH)CO(OO.)                                                                         3.PKK    }
+  GPP500H = 5C+4H+2N+13O;  {CO(OONO2)CH(OH)COCH(OH)CO(OONO2)                                                                       PPKOO    }
+  G1P507F = 5C+5H+2N+11O;  {CO(OONO2)CH(OH)COCH(ONO2)CH2(O.)                                                                       1.PNK    }
+  G2P506e = 5C+5H+2N+12O;  {CO(OONO2)CH(OH)COCH(ONO2)CH2(OO.)                                                                      2.PNK    }
+  GPN502q = 5C+4H+2N+11O;  {CO(OONO2)CH(OH)COCH(ONO2)CHO                                                                           PNDKO    }
+  G3P501R = 5C+3H+2N+13O;  {CO(OONO2)CH(OH)COCH(ONO2)CO(OO.)                                                                       3.PNK    }
+  GPP500S = 5C+3H+3N+15O;  {CO(OONO2)CH(OH)COCH(ONO2)CO(OONO2)                                                                     PPNKO    }
+  G2P504W = 5C+3H+2N+14O;  {CO(OONO2)CH(OH)COCH(OO.)CO(OONO2)                                                                      2.PPK    }
+  G1P507J = 5C+6H+N+10O;   {CO(OONO2)CH(OH)COCH(OOH)CH2(O.)                                                                        1.PHK    }
+  GPH503x = 5C+5H+N+10O;   {CO(OONO2)CH(OH)COCH(OOH)CHO                                                                            PHDKO    }
+  G3P5011 = 5C+4H+N+12O;   {CO(OONO2)CH(OH)COCH(OOH)CO(OO.)                                                                        3.PHK    }
+  GPP500T = 5C+4H+2N+14O;  {CO(OONO2)CH(OH)COCH(OOH)CO(OONO2)                                                                      PPHKO    }
+  G1P400f = 4C+4H+N+8O;    {CO(OONO2)CH(OH)COCH2(O.)                                                                               1.PKO    }
+  G2P400c = 4C+4H+N+9O;    {CO(OONO2)CH(OH)COCH2(OO.)                                                                              2.PKO    }
+  G1P502I = 5C+6H+N+8O;    {CO(OONO2)CH(OH)COCH2CH2(O.)                                                                            1.PKO    }
+  G2P501w = 5C+6H+N+9O;    {CO(OONO2)CH(OH)COCH2CH2(OO.)                                                                           2.PKO    }
+  GPD5005 = 5C+5H+N+8O;    {CO(OONO2)CH(OH)COCH2CHO                                                                                PDKO     }
+  G3P5007 = 5C+4H+N+10O;   {CO(OONO2)CH(OH)COCH2CO(OO.)                                                                            3.PKK    }
+  GPP5006 = 5C+4H+2N+12O;  {CO(OONO2)CH(OH)COCH2CO(OONO2)                                                                          PPKO     }
+  GPD4007 = 4C+3H+N+8O;    {CO(OONO2)CH(OH)COCHO                                                                                   PDKO     }
+  G3P400H = 4C+2H+N+10O;   {CO(OONO2)CH(OH)COCO(OO.)                                                                               3.PKK    }
+  GPP4005 = 4C+2H+2N+12O;  {CO(OONO2)CH(OH)COCO(OONO2)                                                                             PPKO     }
+  G1P507M = 5C+4H+N+9O;    {CO(OONO2)CH(OH)COCOCH2(O.)                                                                             1.PKK    }
+  G2P505w = 5C+4H+N+10O;   {CO(OONO2)CH(OH)COCOCH2(OO.)                                                                            2.PKK    }
+  GPD500M = 5C+3H+N+9O;    {CO(OONO2)CH(OH)COCOCHO                                                                                 PDKKO    }
+  G3P501W = 5C+2H+N+11O;   {CO(OONO2)CH(OH)COCOCO(OO.)                                                                             3.PKK    }
+  GPP500U = 5C+2H+2N+13O;  {CO(OONO2)CH(OH)COCOCO(OONO2)                                                                           PPKKO    }
+  G1P506U = 5C+5H+2N+11O;  {CO(OONO2)CH(ONO2)CH(O.)CH(OH)CHO                                                                       1.PND    }
+  G1P508p = 5C+4H+3N+15O;  {CO(OONO2)CH(ONO2)CH(O.)CH(OH)CO(OONO2)                                                                 1.PPN    }
+  G1P508e = 5C+4H+3N+13O;  {CO(OONO2)CH(ONO2)CH(O.)CH(ONO2)CHO                                                                     1.PNN    }
+  G1P509b = 5C+3H+4N+17O;  {CO(OONO2)CH(ONO2)CH(O.)CH(ONO2)CO(OONO2)                                                               1.PPN    }
+  G1P508y = 5C+5H+2N+12O;  {CO(OONO2)CH(ONO2)CH(O.)CH(OOH)CHO                                                                      1.PHN    }
+  G1P50Ak = 5C+4H+3N+16O;  {CO(OONO2)CH(ONO2)CH(O.)CH(OOH)CO(OONO2)                                                                1.PPH    }
+  G1P505R = 5C+5H+2N+10O;  {CO(OONO2)CH(ONO2)CH(O.)CH2CHO                                                                          1.PND    }
+  G1P506N = 5C+4H+3N+14O;  {CO(OONO2)CH(ONO2)CH(O.)CH2CO(OONO2)                                                                    1.PPN    }
+  G1P401D = 4C+3H+2N+10O;  {CO(OONO2)CH(ONO2)CH(O.)CHO                                                                             1.PND    }
+  G1P401B = 4C+2H+3N+14O;  {CO(OONO2)CH(ONO2)CH(O.)CO(OONO2)                                                                       1.PPN    }
+  G1P508s = 5C+3H+2N+11O;  {CO(OONO2)CH(ONO2)CH(O.)COCHO                                                                           1.PND    }
+  G1P509c = 5C+2H+3N+15O;  {CO(OONO2)CH(ONO2)CH(O.)COCO(OONO2)                                                                     1.PPN    }
+  G1P50AJ = 5C+5H+2N+11O;  {CO(OONO2)CH(ONO2)CH(OH)CH(O.)CHO                                                                       1.PND    }
+  G1P509q = 5C+4H+3N+15O;  {CO(OONO2)CH(ONO2)CH(OH)CH(O.)CO(OONO2)                                                                 1.PPN    }
+  G1P504P = 5C+7H+2N+11O;  {CO(OONO2)CH(ONO2)CH(OH)CH(OH)CH2(O.)                                                                   1.PNO    }
+  G2P507v = 5C+7H+2N+12O;  {CO(OONO2)CH(ONO2)CH(OH)CH(OH)CH2(OO.)                                                                  2.PNO    }
+  GPN502i = 5C+6H+2N+11O;  {CO(OONO2)CH(ONO2)CH(OH)CH(OH)CHO                                                                       PNDOO    }
+  G3P501C = 5C+5H+2N+13O;  {CO(OONO2)CH(ONO2)CH(OH)CH(OH)CO(OO.)                                                                   3.PNK    }
+  G1P5074 = 5C+6H+3N+13O;  {CO(OONO2)CH(ONO2)CH(OH)CH(ONO2)CH2(O.)                                                                 1.PNN    }
+  G2P506y = 5C+6H+3N+14O;  {CO(OONO2)CH(ONO2)CH(OH)CH(ONO2)CH2(OO.)                                                                2.PNN    }
+  GPN502t = 5C+5H+3N+13O;  {CO(OONO2)CH(ONO2)CH(OH)CH(ONO2)CHO                                                                     PNNDO    }
+  G3P501e = 5C+4H+3N+15O;  {CO(OONO2)CH(ONO2)CH(OH)CH(ONO2)CO(OO.)                                                                 3.PNN    }
+  GPP5012 = 5C+4H+4N+17O;  {CO(OONO2)CH(ONO2)CH(OH)CH(ONO2)CO(OONO2)                                                               PPNNO    }
+  G2P507K = 5C+5H+2N+12O;  {CO(OONO2)CH(ONO2)CH(OH)CH(OO.)CHO                                                                      2.PND    }
+  G2P506q = 5C+4H+3N+16O;  {CO(OONO2)CH(ONO2)CH(OH)CH(OO.)CO(OONO2)                                                                2.PPN    }
+  G1P5075 = 5C+7H+2N+12O;  {CO(OONO2)CH(ONO2)CH(OH)CH(OOH)CH2(O.)                                                                  1.PHN    }
+  GPH505M = 5C+6H+2N+12O;  {CO(OONO2)CH(ONO2)CH(OH)CH(OOH)CHO                                                                      PHNDO    }
+  G3P501f = 5C+5H+2N+14O;  {CO(OONO2)CH(ONO2)CH(OH)CH(OOH)CO(OO.)                                                                  3.PHN    }
+  GPP5015 = 5C+5H+3N+16O;  {CO(OONO2)CH(ONO2)CH(OH)CH(OOH)CO(OONO2)                                                                PPHNO    }
+  G1P400I = 4C+5H+2N+10O;  {CO(OONO2)CH(ONO2)CH(OH)CH2(O.)                                                                         1.PNO    }
+  G2P400H = 4C+5H+2N+11O;  {CO(OONO2)CH(ONO2)CH(OH)CH2(OO.)                                                                        2.PNO    }
+  G1P5038 = 5C+7H+2N+10O;  {CO(OONO2)CH(ONO2)CH(OH)CH2CH2(O.)                                                                      1.PNO    }
+  GPN502S = 5C+6H+2N+10O;  {CO(OONO2)CH(ONO2)CH(OH)CH2CHO                                                                          PNDO     }
+  G3P500o = 5C+5H+2N+12O;  {CO(OONO2)CH(ONO2)CH(OH)CH2CO(OO.)                                                                      3.PNK    }
+  GPN400P = 4C+4H+2N+10O;  {CO(OONO2)CH(ONO2)CH(OH)CHO                                                                             PNDO     }
+  G3P4006 = 4C+3H+2N+12O;  {CO(OONO2)CH(ONO2)CH(OH)CO(OO.)                                                                         3.PNK    }
+  G1P505e = 5C+5H+2N+11O;  {CO(OONO2)CH(ONO2)CH(OH)COCH2(O.)                                                                       1.PNK    }
+  G2P504B = 5C+5H+2N+12O;  {CO(OONO2)CH(ONO2)CH(OH)COCH2(OO.)                                                                      2.PNK    }
+  GPN502n = 5C+4H+2N+11O;  {CO(OONO2)CH(ONO2)CH(OH)COCHO                                                                           PNDKO    }
+  G3P501r = 5C+3H+2N+13O;  {CO(OONO2)CH(ONO2)CH(OH)COCO(OO.)                                                                       3.PNK    }
+  G1P508f = 5C+4H+3N+13O;  {CO(OONO2)CH(ONO2)CH(ONO2)CH(O.)CHO                                                                     1.PNN    }
+  G1P508W = 5C+3H+4N+17O;  {CO(OONO2)CH(ONO2)CH(ONO2)CH(O.)CO(OONO2)                                                               1.PPN    }
+  G1P502l = 5C+6H+3N+13O;  {CO(OONO2)CH(ONO2)CH(ONO2)CH(OH)CH2(O.)                                                                 1.PNN    }
+  G2P502I = 5C+6H+3N+14O;  {CO(OONO2)CH(ONO2)CH(ONO2)CH(OH)CH2(OO.)                                                                2.PNN    }
+  GPN502G = 5C+5H+3N+13O;  {CO(OONO2)CH(ONO2)CH(ONO2)CH(OH)CHO                                                                     PNNDO    }
+  G3P500e = 5C+4H+3N+15O;  {CO(OONO2)CH(ONO2)CH(ONO2)CH(OH)CO(OO.)                                                                 3.PNN    }
+  G1P5056 = 5C+5H+4N+15O;  {CO(OONO2)CH(ONO2)CH(ONO2)CH(ONO2)CH2(O.)                                                               1.PNN    }
+  G2P5042 = 5C+5H+4N+16O;  {CO(OONO2)CH(ONO2)CH(ONO2)CH(ONO2)CH2(OO.)                                                              2.PNN    }
+  GPN502j = 5C+4H+4N+15O;  {CO(OONO2)CH(ONO2)CH(ONO2)CH(ONO2)CHO                                                                   PNNND    }
+  G3P501F = 5C+3H+4N+17O;  {CO(OONO2)CH(ONO2)CH(ONO2)CH(ONO2)CO(OO.)                                                               3.PNN    }
+  GPP500n = 5C+3H+5N+19O;  {CO(OONO2)CH(ONO2)CH(ONO2)CH(ONO2)CO(OONO2)                                                             PPNNN    }
+  G2P506K = 5C+4H+3N+14O;  {CO(OONO2)CH(ONO2)CH(ONO2)CH(OO.)CHO                                                                    2.PNN    }
+  G2P506G = 5C+3H+4N+18O;  {CO(OONO2)CH(ONO2)CH(ONO2)CH(OO.)CO(OONO2)                                                              2.PPN    }
+  G1P506r = 5C+6H+3N+14O;  {CO(OONO2)CH(ONO2)CH(ONO2)CH(OOH)CH2(O.)                                                                1.PHN    }
+  GPH504s = 5C+5H+3N+14O;  {CO(OONO2)CH(ONO2)CH(ONO2)CH(OOH)CHO                                                                    PHNND    }
+  G3P501I = 5C+4H+3N+16O;  {CO(OONO2)CH(ONO2)CH(ONO2)CH(OOH)CO(OO.)                                                                3.PHN    }
+  GPP500o = 5C+4H+4N+18O;  {CO(OONO2)CH(ONO2)CH(ONO2)CH(OOH)CO(OONO2)                                                              PPHNN    }
+  G1P400g = 4C+4H+3N+12O;  {CO(OONO2)CH(ONO2)CH(ONO2)CH2(O.)                                                                       1.PNN    }
+  G2P400d = 4C+4H+3N+13O;  {CO(OONO2)CH(ONO2)CH(ONO2)CH2(OO.)                                                                      2.PNN    }
+  G1P501r = 5C+6H+3N+12O;  {CO(OONO2)CH(ONO2)CH(ONO2)CH2CH2(O.)                                                                    1.PNN    }
+  G2P501a = 5C+6H+3N+13O;  {CO(OONO2)CH(ONO2)CH(ONO2)CH2CH2(OO.)                                                                   2.PNN    }
+  GPN501p = 5C+5H+3N+12O;  {CO(OONO2)CH(ONO2)CH(ONO2)CH2CHO                                                                        PNND     }
+  G3P500T = 5C+4H+3N+14O;  {CO(OONO2)CH(ONO2)CH(ONO2)CH2CO(OO.)                                                                    3.PNN    }
+  GPN400Z = 4C+3H+3N+12O;  {CO(OONO2)CH(ONO2)CH(ONO2)CHO                                                                           PNND     }
+  G3P400B = 4C+2H+3N+14O;  {CO(OONO2)CH(ONO2)CH(ONO2)CO(OO.)                                                                       3.PNN    }
+  GPP4007 = 4C+2H+4N+16O;  {CO(OONO2)CH(ONO2)CH(ONO2)CO(OONO2)                                                                     PPNN     }
+  G1P505J = 5C+4H+3N+13O;  {CO(OONO2)CH(ONO2)CH(ONO2)COCH2(O.)                                                                     1.PNN    }
+  G2P5044 = 5C+4H+3N+14O;  {CO(OONO2)CH(ONO2)CH(ONO2)COCH2(OO.)                                                                    2.PNN    }
+  GPN502l = 5C+3H+3N+13O;  {CO(OONO2)CH(ONO2)CH(ONO2)COCHO                                                                         PNNDK    }
+  G3P501o = 5C+2H+3N+15O;  {CO(OONO2)CH(ONO2)CH(ONO2)COCO(OO.)                                                                     3.PNN    }
+  G2P505x = 5C+5H+2N+12O;  {CO(OONO2)CH(ONO2)CH(OO.)CH(OH)CHO                                                                      2.PND    }
+  G2P507U = 5C+4H+3N+16O;  {CO(OONO2)CH(ONO2)CH(OO.)CH(OH)CO(OONO2)                                                                2.PPN    }
+  G2P5079 = 5C+4H+3N+14O;  {CO(OONO2)CH(ONO2)CH(OO.)CH(ONO2)CHO                                                                    2.PNN    }
+  G2P506j = 5C+3H+4N+18O;  {CO(OONO2)CH(ONO2)CH(OO.)CH(ONO2)CO(OONO2)                                                              2.PPN    }
+  G2P5086 = 5C+4H+3N+17O;  {CO(OONO2)CH(ONO2)CH(OO.)CH(OOH)CO(OONO2)                                                               2.PPH    }
+  G2P504z = 5C+5H+2N+11O;  {CO(OONO2)CH(ONO2)CH(OO.)CH2CHO                                                                         2.PND    }
+  G2P504i = 5C+4H+3N+15O;  {CO(OONO2)CH(ONO2)CH(OO.)CH2CO(OONO2)                                                                   2.PPN    }
+  G2P401K = 4C+3H+2N+11O;  {CO(OONO2)CH(ONO2)CH(OO.)CHO                                                                            2.PND    }
+  G2P4013 = 4C+2H+3N+15O;  {CO(OONO2)CH(ONO2)CH(OO.)CO(OONO2)                                                                      2.PPN    }
+  G2P507A = 5C+3H+2N+12O;  {CO(OONO2)CH(ONO2)CH(OO.)COCHO                                                                          2.PND    }
+  G2P506k = 5C+2H+3N+16O;  {CO(OONO2)CH(ONO2)CH(OO.)COCO(OONO2)                                                                    2.PPN    }
+  G1P50A8 = 5C+5H+2N+12O;  {CO(OONO2)CH(ONO2)CH(OOH)CH(O.)CHO                                                                      1.PHN    }
+  G1P509o = 5C+4H+3N+16O;  {CO(OONO2)CH(ONO2)CH(OOH)CH(O.)CO(OONO2)                                                                1.PPH    }
+  G1P504N = 5C+7H+2N+12O;  {CO(OONO2)CH(ONO2)CH(OOH)CH(OH)CH2(O.)                                                                  1.PHN    }
+  G2P506t = 5C+7H+2N+13O;  {CO(OONO2)CH(ONO2)CH(OOH)CH(OH)CH2(OO.)                                                                 2.PHN    }
+  GPH504W = 5C+6H+2N+12O;  {CO(OONO2)CH(ONO2)CH(OOH)CH(OH)CHO                                                                      PHNDO    }
+  G3P501A = 5C+5H+2N+14O;  {CO(OONO2)CH(ONO2)CH(OOH)CH(OH)CO(OO.)                                                                  3.PHN    }
+  GPP500e = 5C+5H+3N+16O;  {CO(OONO2)CH(ONO2)CH(OOH)CH(OH)CO(OONO2)                                                                PPHNO    }
+  G1P507Z = 5C+6H+3N+14O;  {CO(OONO2)CH(ONO2)CH(OOH)CH(ONO2)CH2(O.)                                                                1.PHN    }
+  G2P506r = 5C+6H+3N+15O;  {CO(OONO2)CH(ONO2)CH(OOH)CH(ONO2)CH2(OO.)                                                               2.PHN    }
+  GPH505F = 5C+5H+3N+14O;  {CO(OONO2)CH(ONO2)CH(OOH)CH(ONO2)CHO                                                                    PHNND    }
+  G3P501a = 5C+4H+3N+16O;  {CO(OONO2)CH(ONO2)CH(OOH)CH(ONO2)CO(OO.)                                                                3.PHN    }
+  GPP5011 = 5C+4H+4N+18O;  {CO(OONO2)CH(ONO2)CH(OOH)CH(ONO2)CO(OONO2)                                                              PPHNN    }
+  G2P506p = 5C+4H+3N+17O;  {CO(OONO2)CH(ONO2)CH(OOH)CH(OO.)CO(OONO2)                                                               2.PPH    }
+  GPH505G = 5C+6H+2N+13O;  {CO(OONO2)CH(ONO2)CH(OOH)CH(OOH)CHO                                                                     PHHND    }
+  G3P501b = 5C+5H+2N+15O;  {CO(OONO2)CH(ONO2)CH(OOH)CH(OOH)CO(OO.)                                                                 3.PHH    }
+  GPP5014 = 5C+5H+3N+17O;  {CO(OONO2)CH(ONO2)CH(OOH)CH(OOH)CO(OONO2)                                                               PPHHN    }
+  G1P400z = 4C+5H+2N+11O;  {CO(OONO2)CH(ONO2)CH(OOH)CH2(O.)                                                                        1.PHN    }
+  G2P401J = 4C+5H+2N+12O;  {CO(OONO2)CH(ONO2)CH(OOH)CH2(OO.)                                                                       2.PHN    }
+  G1P5043 = 5C+7H+2N+11O;  {CO(OONO2)CH(ONO2)CH(OOH)CH2CH2(O.)                                                                     1.PHN    }
+  GPH503G = 5C+6H+2N+11O;  {CO(OONO2)CH(ONO2)CH(OOH)CH2CHO                                                                         PHND     }
+  G3P500k = 5C+5H+2N+13O;  {CO(OONO2)CH(ONO2)CH(OOH)CH2CO(OO.)                                                                     3.PHN    }
+  GPP500Z = 5C+5H+3N+15O;  {CO(OONO2)CH(ONO2)CH(OOH)CH2CO(OONO2)                                                                   PPHN     }
+  GPH400s = 4C+4H+2N+11O;  {CO(OONO2)CH(ONO2)CH(OOH)CHO                                                                            PHND     }
+  G3P400J = 4C+3H+2N+13O;  {CO(OONO2)CH(ONO2)CH(OOH)CO(OO.)                                                                        3.PHN    }
+  GPP4009 = 4C+3H+3N+15O;  {CO(OONO2)CH(ONO2)CH(OOH)CO(OONO2)                                                                      PPHN     }
+  G1P507u = 5C+5H+2N+12O;  {CO(OONO2)CH(ONO2)CH(OOH)COCH2(O.)                                                                      1.PHN    }
+  G2P5067 = 5C+5H+2N+13O;  {CO(OONO2)CH(ONO2)CH(OOH)COCH2(OO.)                                                                     2.PHN    }
+  GPH505H = 5C+4H+2N+12O;  {CO(OONO2)CH(ONO2)CH(OOH)COCHO                                                                          PHNDK    }
+  G3P501x = 5C+3H+2N+14O;  {CO(OONO2)CH(ONO2)CH(OOH)COCO(OO.)                                                                      3.PHN    }
+  GPP5013 = 5C+3H+3N+16O;  {CO(OONO2)CH(ONO2)CH(OOH)COCO(OONO2)                                                                    PPHNK    }
+  G1P3004 = 3C+3H+2N+9O;   {CO(OONO2)CH(ONO2)CH2(O.)                                                                               1.PN     }
+  G2P3004 = 3C+3H+2N+10O;  {CO(OONO2)CH(ONO2)CH2(OO.)                                                                              2.PN     }
+  G1P506E = 5C+5H+2N+10O;  {CO(OONO2)CH(ONO2)CH2CH(O.)CHO                                                                          1.PND    }
+  G1P506M = 5C+4H+3N+14O;  {CO(OONO2)CH(ONO2)CH2CH(O.)CO(OONO2)                                                                    1.PPN    }
+  G1P501K = 5C+7H+2N+10O;  {CO(OONO2)CH(ONO2)CH2CH(OH)CH2(O.)                                                                      1.PNO    }
+  G2P502H = 5C+7H+2N+11O;  {CO(OONO2)CH(ONO2)CH2CH(OH)CH2(OO.)                                                                     2.PNO    }
+  GPN501S = 5C+6H+2N+10O;  {CO(OONO2)CH(ONO2)CH2CH(OH)CHO                                                                          PNDO     }
+  G3P500L = 5C+5H+2N+12O;  {CO(OONO2)CH(ONO2)CH2CH(OH)CO(OO.)                                                                      3.PNK    }
+  G1P502Q = 5C+6H+3N+12O;  {CO(OONO2)CH(ONO2)CH2CH(ONO2)CH2(O.)                                                                    1.PNN    }
+  G2P5024 = 5C+6H+3N+13O;  {CO(OONO2)CH(ONO2)CH2CH(ONO2)CH2(OO.)                                                                   2.PNN    }
+  GPN502C = 5C+5H+3N+12O;  {CO(OONO2)CH(ONO2)CH2CH(ONO2)CHO                                                                        PNND     }
+  G3P500c = 5C+4H+3N+14O;  {CO(OONO2)CH(ONO2)CH2CH(ONO2)CO(OO.)                                                                    3.PNN    }
+  GPP500W = 5C+4H+4N+16O;  {CO(OONO2)CH(ONO2)CH2CH(ONO2)CO(OONO2)                                                                  PPNN     }
+  G2P505S = 5C+5H+2N+11O;  {CO(OONO2)CH(ONO2)CH2CH(OO.)CHO                                                                         2.PND    }
+  G2P504h = 5C+4H+3N+15O;  {CO(OONO2)CH(ONO2)CH2CH(OO.)CO(OONO2)                                                                   2.PPN    }
+  G1P503o = 5C+7H+2N+11O;  {CO(OONO2)CH(ONO2)CH2CH(OOH)CH2(O.)                                                                     1.PHN    }
+  G2P504c = 5C+7H+2N+12O;  {CO(OONO2)CH(ONO2)CH2CH(OOH)CH2(OO.)                                                                    2.PHN    }
+  GPH503r = 5C+6H+2N+11O;  {CO(OONO2)CH(ONO2)CH2CH(OOH)CHO                                                                         PHND     }
+  G3P500x = 5C+5H+2N+13O;  {CO(OONO2)CH(ONO2)CH2CH(OOH)CO(OO.)                                                                     3.PHN    }
+  GPP500Y = 5C+5H+3N+15O;  {CO(OONO2)CH(ONO2)CH2CH(OOH)CO(OONO2)                                                                   PPHN     }
+  G1P400F = 4C+5H+2N+9O;   {CO(OONO2)CH(ONO2)CH2CH2(O.)                                                                            1.PN     }
+  G2P400E = 4C+5H+2N+10O;  {CO(OONO2)CH(ONO2)CH2CH2(OO.)                                                                           2.PN     }
+  G1P500W = 5C+7H+2N+9O;   {CO(OONO2)CH(ONO2)CH2CH2CH2(O.)                                                                         1.PN     }
+  G2P500U = 5C+7H+2N+10O;  {CO(OONO2)CH(ONO2)CH2CH2CH2(OO.)                                                                        2.PN     }
+  GPN500m = 5C+6H+2N+9O;   {CO(OONO2)CH(ONO2)CH2CH2CHO                                                                             PND      }
+  G3P5008 = 5C+5H+2N+11O;  {CO(OONO2)CH(ONO2)CH2CH2CO(OO.)                                                                         3.PNK    }
+  GPN400N = 4C+4H+2N+9O;   {CO(OONO2)CH(ONO2)CH2CHO                                                                                PND      }
+  G3P4002 = 4C+3H+2N+11O;  {CO(OONO2)CH(ONO2)CH2CO(OO.)                                                                            3.PNK    }
+  G1P502X = 5C+5H+2N+10O;  {CO(OONO2)CH(ONO2)CH2COCH2(O.)                                                                          1.PNK    }
+  G2P5029 = 5C+5H+2N+11O;  {CO(OONO2)CH(ONO2)CH2COCH2(OO.)                                                                         2.PNK    }
+  GPN502E = 5C+4H+2N+10O;  {CO(OONO2)CH(ONO2)CH2COCHO                                                                              PNDK     }
+  G3P501X = 5C+3H+2N+12O;  {CO(OONO2)CH(ONO2)CH2COCO(OO.)                                                                          3.PNK    }
+  GPN3006 = 3C+2H+2N+9O;   {CO(OONO2)CH(ONO2)CHO                                                                                   PND      }
+  G3P3001 = 3C+H+2N+11O;   {CO(OONO2)CH(ONO2)CO(OO.)                                                                               3.PNK    }
+  GPP3001 = 3C+H+3N+13O;   {CO(OONO2)CH(ONO2)CO(OONO2)                                                                             PPN      }
+  G1P509O = 5C+3H+2N+11O;  {CO(OONO2)CH(ONO2)COCH(O.)CHO                                                                           1.PND    }
+  G1P509I = 5C+2H+3N+15O;  {CO(OONO2)CH(ONO2)COCH(O.)CO(OONO2)                                                                     1.PPN    }
+  G1P502t = 5C+5H+2N+11O;  {CO(OONO2)CH(ONO2)COCH(OH)CH2(O.)                                                                       1.PNK    }
+  G2P502L = 5C+5H+2N+12O;  {CO(OONO2)CH(ONO2)COCH(OH)CH2(OO.)                                                                      2.PNK    }
+  GPN502L = 5C+4H+2N+11O;  {CO(OONO2)CH(ONO2)COCH(OH)CHO                                                                           PNDKO    }
+  G3P500g = 5C+3H+2N+13O;  {CO(OONO2)CH(ONO2)COCH(OH)CO(OO.)                                                                       3.PNK    }
+  G1P505v = 5C+4H+3N+13O;  {CO(OONO2)CH(ONO2)COCH(ONO2)CH2(O.)                                                                     1.PNN    }
+  G2P504P = 5C+4H+3N+14O;  {CO(OONO2)CH(ONO2)COCH(ONO2)CH2(OO.)                                                                    2.PNN    }
+  GPN502p = 5C+3H+3N+13O;  {CO(OONO2)CH(ONO2)COCH(ONO2)CHO                                                                         PNNDK    }
+  G3P501P = 5C+2H+3N+15O;  {CO(OONO2)CH(ONO2)COCH(ONO2)CO(OO.)                                                                     3.PNN    }
+  GPP500v = 5C+2H+4N+17O;  {CO(OONO2)CH(ONO2)COCH(ONO2)CO(OONO2)                                                                   PPNNK    }
+  G2P506b = 5C+2H+3N+16O;  {CO(OONO2)CH(ONO2)COCH(OO.)CO(OONO2)                                                                    2.PPN    }
+  G1P507H = 5C+5H+2N+12O;  {CO(OONO2)CH(ONO2)COCH(OOH)CH2(O.)                                                                      1.PHN    }
+  GPH5056 = 5C+4H+2N+12O;  {CO(OONO2)CH(ONO2)COCH(OOH)CHO                                                                          PHNDK    }
+  G3P501T = 5C+3H+2N+14O;  {CO(OONO2)CH(ONO2)COCH(OOH)CO(OO.)                                                                      3.PHN    }
+  GPP500w = 5C+3H+3N+16O;  {CO(OONO2)CH(ONO2)COCH(OOH)CO(OONO2)                                                                    PPHNK    }
+  G1P400m = 4C+3H+2N+10O;  {CO(OONO2)CH(ONO2)COCH2(O.)                                                                             1.PNK    }
+  G2P400g = 4C+3H+2N+11O;  {CO(OONO2)CH(ONO2)COCH2(OO.)                                                                            2.PNK    }
+  G1P502G = 5C+5H+2N+10O;  {CO(OONO2)CH(ONO2)COCH2CH2(O.)                                                                          1.PNK    }
+  G2P501u = 5C+5H+2N+11O;  {CO(OONO2)CH(ONO2)COCH2CH2(OO.)                                                                         2.PNK    }
+  GPN5029 = 5C+4H+2N+10O;  {CO(OONO2)CH(ONO2)COCH2CHO                                                                              PNDK     }
+  G3P500Z = 5C+3H+2N+12O;  {CO(OONO2)CH(ONO2)COCH2CO(OO.)                                                                          3.PNK    }
+  GPN400b = 4C+2H+2N+10O;  {CO(OONO2)CH(ONO2)COCHO                                                                                 PNDK     }
+  G3P400M = 4C+H+2N+12O;   {CO(OONO2)CH(ONO2)COCO(OO.)                                                                             3.PNK    }
+  G1P5061 = 5C+3H+2N+11O;  {CO(OONO2)CH(ONO2)COCOCH2(O.)                                                                           1.PNK    }
+  G2P504R = 5C+3H+2N+12O;  {CO(OONO2)CH(ONO2)COCOCH2(OO.)                                                                          2.PNK    }
+  GPN502s = 5C+2H+2N+11O;  {CO(OONO2)CH(ONO2)COCOCHO                                                                               PNDKK    }
+  G3P501u = 5C+H+2N+13O;   {CO(OONO2)CH(ONO2)COCOCO(OO.)                                                                           3.PNK    }
+  G2P5058 = 5C+5H+2N+12O;  {CO(OONO2)CH(OO.)CH(OH)CH(ONO2)CHO                                                                      2.PND    }
+  G2P400f = 4C+4H+N+9O;    {CO(OONO2)CH(OO.)CH(OH)CHO                                                                              2.PDO    }
+  G2P5059 = 5C+4H+N+10O;   {CO(OONO2)CH(OO.)CH(OH)COCHO                                                                            2.PDK    }
+  G2P505h = 5C+5H+2N+12O;  {CO(OONO2)CH(OO.)CH(ONO2)CH(OH)CHO                                                                      2.PND    }
+  G2P506I = 5C+4H+3N+14O;  {CO(OONO2)CH(OO.)CH(ONO2)CH(ONO2)CHO                                                                    2.PNN    }
+  G2P5072 = 5C+5H+2N+13O;  {CO(OONO2)CH(OO.)CH(ONO2)CH(OOH)CHO                                                                     2.PHN    }
+  G2P5048 = 5C+5H+2N+11O;  {CO(OONO2)CH(OO.)CH(ONO2)CH2CHO                                                                         2.PND    }
+  G2P401F = 4C+3H+2N+11O;  {CO(OONO2)CH(OO.)CH(ONO2)CHO                                                                            2.PND    }
+  G2P507i = 5C+3H+2N+12O;  {CO(OONO2)CH(OO.)CH(ONO2)COCHO                                                                          2.PND    }
+  G2P5053 = 5C+5H+2N+13O;  {CO(OONO2)CH(OO.)CH(OOH)CH(ONO2)CHO                                                                     2.PHN    }
+  G2P400s = 4C+4H+N+10O;   {CO(OONO2)CH(OO.)CH(OOH)CHO                                                                             2.PHD    }
+  G2P5054 = 5C+4H+N+11O;   {CO(OONO2)CH(OO.)CH(OOH)COCHO                                                                           2.PHD    }
+  G2P503a = 5C+6H+N+9O;    {CO(OONO2)CH(OO.)CH2CH(OH)CHO                                                                           2.PDO    }
+  G2P503N = 5C+5H+2N+11O;  {CO(OONO2)CH(OO.)CH2CH(ONO2)CHO                                                                         2.PND    }
+  G2P503F = 5C+6H+N+8O;    {CO(OONO2)CH(OO.)CH2CH2CHO                                                                              2.PD     }
+  G2P400R = 4C+4H+N+8O;    {CO(OONO2)CH(OO.)CH2CHO                                                                                 2.PD     }
+  G2P503R = 5C+4H+N+9O;    {CO(OONO2)CH(OO.)CH2COCHO                                                                               2.PDK    }
+  G2P3007 = 3C+2H+N+8O;    {CO(OONO2)CH(OO.)CHO                                                                                    2.PD     }
+  G2P300A = 3C+H+2N+12O;   {CO(OONO2)CH(OO.)CO(OONO2)                                                                              2.PP     }
+  G2P504O = 5C+3H+2N+12O;  {CO(OONO2)CH(OO.)COCH(ONO2)CHO                                                                          2.PND    }
+  G2P401N = 4C+2H+N+9O;    {CO(OONO2)CH(OO.)COCHO                                                                                  2.PDK    }
+  G2P507l = 5C+2H+N+10O;   {CO(OONO2)CH(OO.)COCOCHO                                                                                2.PDK    }
+  G1P504b = 5C+6H+N+10O;   {CO(OONO2)CH(OOH)CH(O.)CH(OH)CHO                                                                        1.PHD    }
+  G1P5094 = 5C+5H+2N+14O;  {CO(OONO2)CH(OOH)CH(O.)CH(OH)CO(OONO2)                                                                  1.PPH    }
+  G1P508k = 5C+5H+2N+12O;  {CO(OONO2)CH(OOH)CH(O.)CH(ONO2)CHO                                                                      1.PHN    }
+  G1P507s = 5C+6H+N+11O;   {CO(OONO2)CH(OOH)CH(O.)CH(OOH)CHO                                                                       1.PHH    }
+  G1P50BF = 5C+5H+2N+15O;  {CO(OONO2)CH(OOH)CH(O.)CH(OOH)CO(OONO2)                                                                 1.PPH    }
+  G1P5049 = 5C+6H+N+9O;    {CO(OONO2)CH(OOH)CH(O.)CH2CHO                                                                           1.PHD    }
+  G1P508X = 5C+5H+2N+13O;  {CO(OONO2)CH(OOH)CH(O.)CH2CO(OONO2)                                                                     1.PPH    }
+  G1P401R = 4C+4H+N+9O;    {CO(OONO2)CH(OOH)CH(O.)CHO                                                                              1.PHD    }
+  G1P401c = 4C+3H+2N+13O;  {CO(OONO2)CH(OOH)CH(O.)CO(OONO2)                                                                        1.PPH    }
+  G1P50AF = 5C+4H+N+10O;   {CO(OONO2)CH(OOH)CH(O.)COCHO                                                                            1.PHD    }
+  G1P50Al = 5C+3H+2N+14O;  {CO(OONO2)CH(OOH)CH(O.)COCO(OONO2)                                                                      1.PPH    }
+  G1P50AL = 5C+6H+N+10O;   {CO(OONO2)CH(OOH)CH(OH)CH(O.)CHO                                                                        1.PHD    }
+  G1P50BA = 5C+5H+2N+14O;  {CO(OONO2)CH(OOH)CH(OH)CH(O.)CO(OONO2)                                                                  1.PPH    }
+  G1P504e = 5C+8H+N+10O;   {CO(OONO2)CH(OOH)CH(OH)CH(OH)CH2(O.)                                                                    1.PHO    }
+  G2P5062 = 5C+8H+N+11O;   {CO(OONO2)CH(OOH)CH(OH)CH(OH)CH2(OO.)                                                                   2.PHO    }
+  GPH504F = 5C+7H+N+10O;   {CO(OONO2)CH(OOH)CH(OH)CH(OH)CHO                                                                        PHDOO    }
+  G3P5018 = 5C+6H+N+12O;   {CO(OONO2)CH(OOH)CH(OH)CH(OH)CO(OO.)                                                                    3.PHK    }
+  G1P507k = 5C+7H+2N+12O;  {CO(OONO2)CH(OOH)CH(OH)CH(ONO2)CH2(O.)                                                                  1.PHN    }
+  G2P506z = 5C+7H+2N+13O;  {CO(OONO2)CH(OOH)CH(OH)CH(ONO2)CH2(OO.)                                                                 2.PHN    }
+  GPH505N = 5C+6H+2N+12O;  {CO(OONO2)CH(OOH)CH(OH)CH(ONO2)CHO                                                                      PHNDO    }
+  G3P501g = 5C+5H+2N+14O;  {CO(OONO2)CH(OOH)CH(OH)CH(ONO2)CO(OO.)                                                                  3.PHN    }
+  G2P508S = 5C+5H+2N+15O;  {CO(OONO2)CH(OOH)CH(OH)CH(OO.)CO(OONO2)                                                                 2.PPH    }
+  G1P508D = 5C+8H+N+11O;   {CO(OONO2)CH(OOH)CH(OH)CH(OOH)CH2(O.)                                                                   1.PHH    }
+  GPH505T = 5C+7H+N+11O;   {CO(OONO2)CH(OOH)CH(OH)CH(OOH)CHO                                                                       PHHDO    }
+  G3P501l = 5C+6H+N+13O;   {CO(OONO2)CH(OOH)CH(OH)CH(OOH)CO(OO.)                                                                   3.PHH    }
+  GPP501B = 5C+6H+2N+15O;  {CO(OONO2)CH(OOH)CH(OH)CH(OOH)CO(OONO2)                                                                 PPHHO    }
+  G1P400X = 4C+6H+N+9O;    {CO(OONO2)CH(OOH)CH(OH)CH2(O.)                                                                          1.PHO    }
+  G2P400y = 4C+6H+N+10O;   {CO(OONO2)CH(OOH)CH(OH)CH2(OO.)                                                                         2.PHO    }
+  G1P503A = 5C+8H+N+9O;    {CO(OONO2)CH(OOH)CH(OH)CH2CH2(O.)                                                                       1.PHO    }
+  GPH503U = 5C+7H+N+9O;    {CO(OONO2)CH(OOH)CH(OH)CH2CHO                                                                           PHDO     }
+  G3P500p = 5C+6H+N+11O;   {CO(OONO2)CH(OOH)CH(OH)CH2CO(OO.)                                                                       3.PHK    }
+  GPH400l = 4C+5H+N+9O;    {CO(OONO2)CH(OOH)CH(OH)CHO                                                                              PHDO     }
+  G3P400F = 4C+4H+N+11O;   {CO(OONO2)CH(OOH)CH(OH)CO(OO.)                                                                          3.PHK    }
+  G1P507y = 5C+6H+N+10O;   {CO(OONO2)CH(OOH)CH(OH)COCH2(O.)                                                                        1.PHK    }
+  GPH505O = 5C+5H+N+10O;   {CO(OONO2)CH(OOH)CH(OH)COCHO                                                                            PHDKO    }
+  G3P501t = 5C+4H+N+12O;   {CO(OONO2)CH(OOH)CH(OH)COCO(OO.)                                                                        3.PHK    }
+  G1P508l = 5C+5H+2N+12O;  {CO(OONO2)CH(OOH)CH(ONO2)CH(O.)CHO                                                                      1.PHN    }
+  G1P50Aj = 5C+4H+3N+16O;  {CO(OONO2)CH(OOH)CH(ONO2)CH(O.)CO(OONO2)                                                                1.PPH    }
+  G1P504T = 5C+7H+2N+12O;  {CO(OONO2)CH(OOH)CH(ONO2)CH(OH)CH2(O.)                                                                  1.PHN    }
+  G2P505z = 5C+7H+2N+13O;  {CO(OONO2)CH(OOH)CH(ONO2)CH(OH)CH2(OO.)                                                                 2.PHN    }
+  GPH5049 = 5C+6H+2N+12O;  {CO(OONO2)CH(OOH)CH(ONO2)CH(OH)CHO                                                                      PHNDO    }
+  G3P5016 = 5C+5H+2N+14O;  {CO(OONO2)CH(OOH)CH(ONO2)CH(OH)CO(OO.)                                                                  3.PHN    }
+  G1P506k = 5C+6H+3N+14O;  {CO(OONO2)CH(OOH)CH(ONO2)CH(ONO2)CH2(O.)                                                                1.PHN    }
+  G2P5087 = 5C+6H+3N+15O;  {CO(OONO2)CH(OOH)CH(ONO2)CH(ONO2)CH2(OO.)                                                               2.PHN    }
+  GPH504o = 5C+5H+3N+14O;  {CO(OONO2)CH(OOH)CH(ONO2)CH(ONO2)CHO                                                                    PHNND    }
+  G3P501H = 5C+4H+3N+16O;  {CO(OONO2)CH(OOH)CH(ONO2)CH(ONO2)CO(OO.)                                                                3.PHN    }
+  G2P5073 = 5C+5H+2N+13O;  {CO(OONO2)CH(OOH)CH(ONO2)CH(OO.)CHO                                                                     2.PHN    }
+  G2P508D = 5C+4H+3N+17O;  {CO(OONO2)CH(OOH)CH(ONO2)CH(OO.)CO(OONO2)                                                               2.PPH    }
+  G1P5089 = 5C+7H+2N+13O;  {CO(OONO2)CH(OOH)CH(ONO2)CH(OOH)CH2(O.)                                                                 1.PHH    }
+  GPH505E = 5C+6H+2N+13O;  {CO(OONO2)CH(OOH)CH(ONO2)CH(OOH)CHO                                                                     PHHND    }
+  G3P501Y = 5C+5H+2N+15O;  {CO(OONO2)CH(OOH)CH(ONO2)CH(OOH)CO(OO.)                                                                 3.PHH    }
+  GPP5016 = 5C+5H+3N+17O;  {CO(OONO2)CH(OOH)CH(ONO2)CH(OOH)CO(OONO2)                                                               PPHHN    }
+  G1P4012 = 4C+5H+2N+11O;  {CO(OONO2)CH(OOH)CH(ONO2)CH2(O.)                                                                        1.PHN    }
+  G2P4014 = 4C+5H+2N+12O;  {CO(OONO2)CH(OOH)CH(ONO2)CH2(OO.)                                                                       2.PHN    }
+  G1P5033 = 5C+7H+2N+11O;  {CO(OONO2)CH(OOH)CH(ONO2)CH2CH2(O.)                                                                     1.PHN    }
+  GPH502G = 5C+6H+2N+11O;  {CO(OONO2)CH(OOH)CH(ONO2)CH2CHO                                                                         PHND     }
+  G3P500W = 5C+5H+2N+13O;  {CO(OONO2)CH(OOH)CH(ONO2)CH2CO(OO.)                                                                     3.PHN    }
+  GPH400m = 4C+4H+2N+11O;  {CO(OONO2)CH(OOH)CH(ONO2)CHO                                                                            PHND     }
+  G3P400G = 4C+3H+2N+13O;  {CO(OONO2)CH(OOH)CH(ONO2)CO(OO.)                                                                        3.PHN    }
+  G1P506p = 5C+5H+2N+12O;  {CO(OONO2)CH(OOH)CH(ONO2)COCH2(O.)                                                                      1.PHN    }
+  G2P507t = 5C+5H+2N+13O;  {CO(OONO2)CH(OOH)CH(ONO2)COCH2(OO.)                                                                     2.PHN    }
+  GPH505U = 5C+4H+2N+12O;  {CO(OONO2)CH(OOH)CH(ONO2)COCHO                                                                          PHNDK    }
+  G3P501p = 5C+3H+2N+14O;  {CO(OONO2)CH(OOH)CH(ONO2)COCO(OO.)                                                                      3.PHN    }
+  G2P503Z = 5C+6H+N+11O;   {CO(OONO2)CH(OOH)CH(OO.)CH(OH)CHO                                                                       2.PHD    }
+  G2P507G = 5C+5H+2N+13O;  {CO(OONO2)CH(OOH)CH(OO.)CH(ONO2)CHO                                                                     2.PHN    }
+  G2P505X = 5C+6H+N+12O;   {CO(OONO2)CH(OOH)CH(OO.)CH(OOH)CHO                                                                      2.PHH    }
+  G2P503E = 5C+6H+N+10O;   {CO(OONO2)CH(OOH)CH(OO.)CH2CHO                                                                          2.PHD    }
+  G2P401X = 4C+3H+2N+14O;  {CO(OONO2)CH(OOH)CH(OO.)CO(OONO2)                                                                       2.PPH    }
+  G1P50AE = 5C+6H+N+11O;   {CO(OONO2)CH(OOH)CH(OOH)CH(O.)CHO                                                                       1.PHH    }
+  G1P50B9 = 5C+5H+2N+15O;  {CO(OONO2)CH(OOH)CH(OOH)CH(O.)CO(OONO2)                                                                 1.PPH    }
+  G1P506d = 5C+8H+N+11O;   {CO(OONO2)CH(OOH)CH(OOH)CH(OH)CH2(O.)                                                                   1.PHH    }
+  GPH504E = 5C+7H+N+11O;   {CO(OONO2)CH(OOH)CH(OOH)CH(OH)CHO                                                                       PHHDO    }
+  G3P5017 = 5C+6H+N+13O;   {CO(OONO2)CH(OOH)CH(OOH)CH(OH)CO(OO.)                                                                   3.PHH    }
+  G1P507b = 5C+7H+2N+13O;  {CO(OONO2)CH(OOH)CH(OOH)CH(ONO2)CH2(O.)                                                                 1.PHH    }
+  G2P506v = 5C+7H+2N+14O;  {CO(OONO2)CH(OOH)CH(OOH)CH(ONO2)CH2(OO.)                                                                2.PHH    }
+  GPH505K = 5C+6H+2N+13O;  {CO(OONO2)CH(OOH)CH(OOH)CH(ONO2)CHO                                                                     PHHND    }
+  G3P501d = 5C+5H+2N+15O;  {CO(OONO2)CH(OOH)CH(OOH)CH(ONO2)CO(OO.)                                                                 3.PHH    }
+  G2P508P = 5C+5H+2N+16O;  {CO(OONO2)CH(OOH)CH(OOH)CH(OO.)CO(OONO2)                                                                2.PPH    }
+  G1P508B = 5C+8H+N+12O;   {CO(OONO2)CH(OOH)CH(OOH)CH(OOH)CH2(O.)                                                                  1.PHH    }
+  GPH505S = 5C+7H+N+12O;   {CO(OONO2)CH(OOH)CH(OOH)CH(OOH)CHO                                                                      PHHHD    }
+  G3P501k = 5C+6H+N+14O;   {CO(OONO2)CH(OOH)CH(OOH)CH(OOH)CO(OO.)                                                                  3.PHH    }
+  GPP501A = 5C+6H+2N+16O;  {CO(OONO2)CH(OOH)CH(OOH)CH(OOH)CO(OONO2)                                                                PPHHH    }
+  G1P4015 = 4C+6H+N+10O;   {CO(OONO2)CH(OOH)CH(OOH)CH2(O.)                                                                         1.PHH    }
+  G2P401L = 4C+6H+N+11O;   {CO(OONO2)CH(OOH)CH(OOH)CH2(OO.)                                                                        2.PHH    }
+  G1P506e = 5C+8H+N+10O;   {CO(OONO2)CH(OOH)CH(OOH)CH2CH2(O.)                                                                      1.PHH    }
+  GPH503K = 5C+7H+N+10O;   {CO(OONO2)CH(OOH)CH(OOH)CH2CHO                                                                          PHHD     }
+  G3P500l = 5C+6H+N+12O;   {CO(OONO2)CH(OOH)CH(OOH)CH2CO(OO.)                                                                      3.PHH    }
+  GPH400w = 4C+5H+N+10O;   {CO(OONO2)CH(OOH)CH(OOH)CHO                                                                             PHHD     }
+  G3P400L = 4C+4H+N+12O;   {CO(OONO2)CH(OOH)CH(OOH)CO(OO.)                                                                         3.PHH    }
+  GPP400E = 4C+4H+2N+14O;  {CO(OONO2)CH(OOH)CH(OOH)CO(OONO2)                                                                       PPHH     }
+  G1P507v = 5C+6H+N+11O;   {CO(OONO2)CH(OOH)CH(OOH)COCH2(O.)                                                                       1.PHH    }
+  GPH505L = 5C+5H+N+11O;   {CO(OONO2)CH(OOH)CH(OOH)COCHO                                                                           PHHDK    }
+  G3P501z = 5C+4H+N+13O;   {CO(OONO2)CH(OOH)CH(OOH)COCO(OO.)                                                                       3.PHH    }
+  G1P3007 = 3C+4H+N+8O;    {CO(OONO2)CH(OOH)CH2(O.)                                                                                1.PH     }
+  G2P300B = 3C+4H+N+9O;    {CO(OONO2)CH(OOH)CH2(OO.)                                                                               2.PH     }
+  G1P507r = 5C+6H+N+9O;    {CO(OONO2)CH(OOH)CH2CH(O.)CHO                                                                           1.PHD    }
+  G1P509m = 5C+5H+2N+13O;  {CO(OONO2)CH(OOH)CH2CH(O.)CO(OONO2)                                                                     1.PPH    }
+  G1P501W = 5C+8H+N+9O;    {CO(OONO2)CH(OOH)CH2CH(OH)CH2(O.)                                                                       1.PHO    }
+  G2P503l = 5C+8H+N+10O;   {CO(OONO2)CH(OOH)CH2CH(OH)CH2(OO.)                                                                      2.PHO    }
+  GPH501Y = 5C+7H+N+9O;    {CO(OONO2)CH(OOH)CH2CH(OH)CHO                                                                           PHDO     }
+  G3P500M = 5C+6H+N+11O;   {CO(OONO2)CH(OOH)CH2CH(OH)CO(OO.)                                                                       3.PHK    }
+  G1P503c = 5C+7H+2N+11O;  {CO(OONO2)CH(OOH)CH2CH(ONO2)CH2(O.)                                                                     1.PHN    }
+  G2P504t = 5C+7H+2N+12O;  {CO(OONO2)CH(OOH)CH2CH(ONO2)CH2(OO.)                                                                    2.PHN    }
+  GPH5044 = 5C+6H+2N+11O;  {CO(OONO2)CH(OOH)CH2CH(ONO2)CHO                                                                         PHND     }
+  G3P5013 = 5C+5H+2N+13O;  {CO(OONO2)CH(OOH)CH2CH(ONO2)CO(OO.)                                                                     3.PHN    }
+  G2P507f = 5C+5H+2N+14O;  {CO(OONO2)CH(OOH)CH2CH(OO.)CO(OONO2)                                                                    2.PPH    }
+  G1P503p = 5C+8H+N+10O;   {CO(OONO2)CH(OOH)CH2CH(OOH)CH2(O.)                                                                      1.PHH    }
+  GPH503w = 5C+7H+N+10O;   {CO(OONO2)CH(OOH)CH2CH(OOH)CHO                                                                          PHHD     }
+  G3P500z = 5C+6H+N+12O;   {CO(OONO2)CH(OOH)CH2CH(OOH)CO(OO.)                                                                      3.PHH    }
+  GPP500j = 5C+6H+2N+14O;  {CO(OONO2)CH(OOH)CH2CH(OOH)CO(OONO2)                                                                    PPHH     }
+  G1P400S = 4C+6H+N+8O;    {CO(OONO2)CH(OOH)CH2CH2(O.)                                                                             1.PH     }
+  G2P400o = 4C+6H+N+9O;    {CO(OONO2)CH(OOH)CH2CH2(OO.)                                                                            2.PH     }
+  G1P5017 = 5C+8H+N+8O;    {CO(OONO2)CH(OOH)CH2CH2CH2(O.)                                                                          1.PH     }
+  GPH501P = 5C+7H+N+8O;    {CO(OONO2)CH(OOH)CH2CH2CHO                                                                              PHD      }
+  G3P500I = 5C+6H+N+10O;   {CO(OONO2)CH(OOH)CH2CH2CO(OO.)                                                                          3.PHK    }
+  GPH400U = 4C+5H+N+8O;    {CO(OONO2)CH(OOH)CH2CHO                                                                                 PHD      }
+  G3P400A = 4C+4H+N+10O;   {CO(OONO2)CH(OOH)CH2CO(OO.)                                                                             3.PHK    }
+  G1P503z = 5C+6H+N+9O;    {CO(OONO2)CH(OOH)CH2COCH2(O.)                                                                           1.PHK    }
+  GPH5047 = 5C+5H+N+9O;    {CO(OONO2)CH(OOH)CH2COCHO                                                                               PHDK     }
+  G3P501j = 5C+4H+N+11O;   {CO(OONO2)CH(OOH)CH2COCO(OO.)                                                                           3.PHK    }
+  GPH3007 = 3C+3H+N+8O;    {CO(OONO2)CH(OOH)CHO                                                                                    PHD      }
+  G3P3003 = 3C+2H+N+10O;   {CO(OONO2)CH(OOH)CO(OO.)                                                                                3.PHK    }
+  GPP3003 = 3C+2H+2N+12O;  {CO(OONO2)CH(OOH)CO(OONO2)                                                                              PPH      }
+  G1P509P = 5C+4H+N+10O;   {CO(OONO2)CH(OOH)COCH(O.)CHO                                                                            1.PHD    }
+  G1P50B1 = 5C+3H+2N+14O;  {CO(OONO2)CH(OOH)COCH(O.)CO(OONO2)                                                                      1.PPH    }
+  G1P504g = 5C+6H+N+10O;   {CO(OONO2)CH(OOH)COCH(OH)CH2(O.)                                                                        1.PHK    }
+  GPH504H = 5C+5H+N+10O;   {CO(OONO2)CH(OOH)COCH(OH)CHO                                                                            PHDKO    }
+  G3P5019 = 5C+4H+N+12O;   {CO(OONO2)CH(OOH)COCH(OH)CO(OO.)                                                                        3.PHK    }
+  G1P507D = 5C+5H+2N+12O;  {CO(OONO2)CH(OOH)COCH(ONO2)CH2(O.)                                                                      1.PHN    }
+  G2P506d = 5C+5H+2N+13O;  {CO(OONO2)CH(OOH)COCH(ONO2)CH2(OO.)                                                                     2.PHN    }
+  GPH5053 = 5C+4H+2N+12O;  {CO(OONO2)CH(OOH)COCH(ONO2)CHO                                                                          PHNDK    }
+  G3P501Q = 5C+3H+2N+14O;  {CO(OONO2)CH(OOH)COCH(ONO2)CO(OO.)                                                                      3.PHN    }
+  G2P508M = 5C+3H+2N+15O;  {CO(OONO2)CH(OOH)COCH(OO.)CO(OONO2)                                                                     2.PPH    }
+  G1P507I = 5C+6H+N+11O;   {CO(OONO2)CH(OOH)COCH(OOH)CH2(O.)                                                                       1.PHH    }
+  GPH505P = 5C+5H+N+11O;   {CO(OONO2)CH(OOH)COCH(OOH)CHO                                                                           PHHDK    }
+  G3P501h = 5C+4H+N+13O;   {CO(OONO2)CH(OOH)COCH(OOH)CO(OO.)                                                                       3.PHH    }
+  GPP5019 = 5C+4H+2N+15O;  {CO(OONO2)CH(OOH)COCH(OOH)CO(OONO2)                                                                     PPHHK    }
+  G1P4014 = 4C+4H+N+9O;    {CO(OONO2)CH(OOH)COCH2(O.)                                                                              1.PHK    }
+  G2P4015 = 4C+4H+N+10O;   {CO(OONO2)CH(OOH)COCH2(OO.)                                                                             2.PHK    }
+  G1P503J = 5C+6H+N+9O;    {CO(OONO2)CH(OOH)COCH2CH2(O.)                                                                           1.PHK    }
+  GPH502c = 5C+5H+N+9O;    {CO(OONO2)CH(OOH)COCH2CHO                                                                               PHDK     }
+  G3P500b = 5C+4H+N+11O;   {CO(OONO2)CH(OOH)COCH2CO(OO.)                                                                           3.PHK    }
+  GPH400v = 4C+3H+N+9O;    {CO(OONO2)CH(OOH)COCHO                                                                                  PHDK     }
+  G3P400O = 4C+2H+N+11O;   {CO(OONO2)CH(OOH)COCO(OO.)                                                                              3.PHK    }
+  G1P507L = 5C+4H+N+10O;   {CO(OONO2)CH(OOH)COCOCH2(O.)                                                                            1.PHK    }
+  G2P507w = 5C+4H+N+11O;   {CO(OONO2)CH(OOH)COCOCH2(OO.)                                                                           2.PHK    }
+  GPH505W = 5C+3H+N+10O;   {CO(OONO2)CH(OOH)COCOCHO                                                                                PHDKK    }
+  G3P501v = 5C+2H+N+12O;   {CO(OONO2)CH(OOH)COCOCO(OO.)                                                                            3.PHK    }
+  G1P2000 = 2C+2H+N+6O;    {CO(OONO2)CH2(O.)                                                                                       1.P      }
+  G2P2000 = 2C+2H+N+7O;    {CO(OONO2)CH2(OO.)                                                                                      2.P      }
+  G1P501J = 5C+6H+N+8O;    {CO(OONO2)CH2CH(O.)CH(OH)CHO                                                                            1.PDO    }
+  G1P504J = 5C+5H+2N+10O;  {CO(OONO2)CH2CH(O.)CH(ONO2)CHO                                                                          1.PND    }
+  G1P504K = 5C+6H+N+9O;    {CO(OONO2)CH2CH(O.)CH(OOH)CHO                                                                           1.PHD    }
+  G1P501k = 5C+6H+N+7O;    {CO(OONO2)CH2CH(O.)CH2CHO                                                                               1.PD     }
+  G1P5051 = 5C+5H+2N+11O;  {CO(OONO2)CH2CH(O.)CH2CO(OONO2)                                                                         1.PP     }
+  G1P400i = 4C+4H+N+7O;    {CO(OONO2)CH2CH(O.)CHO                                                                                  1.PD     }
+  G1P400x = 4C+3H+2N+11O;  {CO(OONO2)CH2CH(O.)CO(OONO2)                                                                            1.PP     }
+  G1P504M = 5C+4H+N+8O;    {CO(OONO2)CH2CH(O.)COCHO                                                                                1.PDK    }
+  G1P5084 = 5C+3H+2N+12O;  {CO(OONO2)CH2CH(O.)COCO(OONO2)                                                                          1.PPK    }
+  G1P507A = 5C+6H+N+8O;    {CO(OONO2)CH2CH(OH)CH(O.)CHO                                                                            1.PDO    }
+  G1P509p = 5C+5H+2N+12O;  {CO(OONO2)CH2CH(OH)CH(O.)CO(OONO2)                                                                      1.PPO    }
+  G1P501R = 5C+8H+N+8O;    {CO(OONO2)CH2CH(OH)CH(OH)CH2(O.)                                                                        1.POO    }
+  G2P501P = 5C+8H+N+9O;    {CO(OONO2)CH2CH(OH)CH(OH)CH2(OO.)                                                                       2.POO    }
+  GPD5007 = 5C+7H+N+8O;    {CO(OONO2)CH2CH(OH)CH(OH)CHO                                                                            PDOO     }
+  G3P500E = 5C+6H+N+10O;   {CO(OONO2)CH2CH(OH)CH(OH)CO(OO.)                                                                        3.PKO    }
+  GPP5004 = 5C+6H+2N+12O;  {CO(OONO2)CH2CH(OH)CH(OH)CO(OONO2)                                                                      PPOO     }
+  G1P503X = 5C+7H+2N+10O;  {CO(OONO2)CH2CH(OH)CH(ONO2)CH2(O.)                                                                      1.PNO    }
+  G2P504s = 5C+7H+2N+11O;  {CO(OONO2)CH2CH(OH)CH(ONO2)CH2(OO.)                                                                     2.PNO    }
+  GPN502Y = 5C+6H+2N+10O;  {CO(OONO2)CH2CH(OH)CH(ONO2)CHO                                                                          PNDO     }
+  G3P500q = 5C+5H+2N+12O;  {CO(OONO2)CH2CH(OH)CH(ONO2)CO(OO.)                                                                      3.PNK    }
+  GPP500a = 5C+5H+3N+14O;  {CO(OONO2)CH2CH(OH)CH(ONO2)CO(OONO2)                                                                    PPNO     }
+  G2P507M = 5C+5H+2N+13O;  {CO(OONO2)CH2CH(OH)CH(OO.)CO(OONO2)                                                                     2.PPO    }
+  G1P503m = 5C+8H+N+9O;    {CO(OONO2)CH2CH(OH)CH(OOH)CH2(O.)                                                                       1.PHO    }
+  GPH5046 = 5C+7H+N+9O;    {CO(OONO2)CH2CH(OH)CH(OOH)CHO                                                                           PHDO     }
+  G3P5015 = 5C+6H+N+11O;   {CO(OONO2)CH2CH(OH)CH(OOH)CO(OO.)                                                                       3.PHK    }
+  GPP500d = 5C+6H+2N+13O;  {CO(OONO2)CH2CH(OH)CH(OOH)CO(OONO2)                                                                     PPHO     }
+  G1P4004 = 4C+6H+N+7O;    {CO(OONO2)CH2CH(OH)CH2(O.)                                                                              1.PO     }
+  G2P400Z = 4C+6H+N+8O;    {CO(OONO2)CH2CH(OH)CH2(OO.)                                                                             2.PO     }
+  G1P500o = 5C+8H+N+7O;    {CO(OONO2)CH2CH(OH)CH2CH2(O.)                                                                           1.PO     }
+  GPD4001 = 4C+5H+N+7O;    {CO(OONO2)CH2CH(OH)CHO                                                                                  PDO      }
+  G3P4004 = 4C+4H+N+9O;    {CO(OONO2)CH2CH(OH)CO(OO.)                                                                              3.PKO    }
+  GPP4003 = 4C+4H+2N+11O;  {CO(OONO2)CH2CH(OH)CO(OONO2)                                                                            PPO      }
+  G1P503w = 5C+6H+N+8O;    {CO(OONO2)CH2CH(OH)COCH2(O.)                                                                            1.PKO    }
+  G2P503s = 5C+6H+N+9O;    {CO(OONO2)CH2CH(OH)COCH2(OO.)                                                                           2.PKO    }
+  GPD500J = 5C+5H+N+8O;    {CO(OONO2)CH2CH(OH)COCHO                                                                                PDKO     }
+  G3P501L = 5C+4H+N+10O;   {CO(OONO2)CH2CH(OH)COCO(OO.)                                                                            3.PKK    }
+  GPP500O = 5C+4H+2N+12O;  {CO(OONO2)CH2CH(OH)COCO(OONO2)                                                                          PPKO     }
+  G1P5055 = 5C+5H+2N+10O;  {CO(OONO2)CH2CH(ONO2)CH(O.)CHO                                                                          1.PND    }
+  G1P5052 = 5C+4H+3N+14O;  {CO(OONO2)CH2CH(ONO2)CH(O.)CO(OONO2)                                                                    1.PPN    }
+  G1P500e = 5C+7H+2N+10O;  {CO(OONO2)CH2CH(ONO2)CH(OH)CH2(O.)                                                                      1.PNO    }
+  G2P500d = 5C+7H+2N+11O;  {CO(OONO2)CH2CH(ONO2)CH(OH)CH2(OO.)                                                                     2.PNO    }
+  GPN500p = 5C+6H+2N+10O;  {CO(OONO2)CH2CH(ONO2)CH(OH)CHO                                                                          PNDO     }
+  G3P5009 = 5C+5H+2N+12O;  {CO(OONO2)CH2CH(ONO2)CH(OH)CO(OO.)                                                                      3.PNK    }
+  G1P501l = 5C+6H+3N+12O;  {CO(OONO2)CH2CH(ONO2)CH(ONO2)CH2(O.)                                                                    1.PNN    }
+  G2P501U = 5C+6H+3N+13O;  {CO(OONO2)CH2CH(ONO2)CH(ONO2)CH2(OO.)                                                                   2.PNN    }
+  GPN501d = 5C+5H+3N+12O;  {CO(OONO2)CH2CH(ONO2)CH(ONO2)CHO                                                                        PNND     }
+  G3P500R = 5C+4H+3N+14O;  {CO(OONO2)CH2CH(ONO2)CH(ONO2)CO(OO.)                                                                    3.PNN    }
+  GPP500I = 5C+4H+4N+16O;  {CO(OONO2)CH2CH(ONO2)CH(ONO2)CO(OONO2)                                                                  PPNN     }
+  G2P504y = 5C+5H+2N+11O;  {CO(OONO2)CH2CH(ONO2)CH(OO.)CHO                                                                         2.PND    }
+  G2P5041 = 5C+4H+3N+15O;  {CO(OONO2)CH2CH(ONO2)CH(OO.)CO(OONO2)                                                                   2.PPN    }
+  G1P502y = 5C+7H+2N+11O;  {CO(OONO2)CH2CH(ONO2)CH(OOH)CH2(O.)                                                                     1.PHN    }
+  G2P504n = 5C+7H+2N+12O;  {CO(OONO2)CH2CH(ONO2)CH(OOH)CH2(OO.)                                                                    2.PHN    }
+  GPH503F = 5C+6H+2N+11O;  {CO(OONO2)CH2CH(ONO2)CH(OOH)CHO                                                                         PHND     }
+  G3P500j = 5C+5H+2N+13O;  {CO(OONO2)CH2CH(ONO2)CH(OOH)CO(OO.)                                                                     3.PHN    }
+  GPP500J = 5C+5H+3N+15O;  {CO(OONO2)CH2CH(ONO2)CH(OOH)CO(OONO2)                                                                   PPHN     }
+  G1P400A = 4C+5H+2N+9O;   {CO(OONO2)CH2CH(ONO2)CH2(O.)                                                                            1.PN     }
+  G2P4009 = 4C+5H+2N+10O;  {CO(OONO2)CH2CH(ONO2)CH2(OO.)                                                                           2.PN     }
+  G1P500F = 5C+7H+2N+9O;   {CO(OONO2)CH2CH(ONO2)CH2CH2(O.)                                                                         1.PN     }
+  G2P500E = 5C+7H+2N+10O;  {CO(OONO2)CH2CH(ONO2)CH2CH2(OO.)                                                                        2.PN     }
+  GPN500Q = 5C+6H+2N+9O;   {CO(OONO2)CH2CH(ONO2)CH2CHO                                                                             PND      }
+  G3P5003 = 5C+5H+2N+11O;  {CO(OONO2)CH2CH(ONO2)CH2CO(OO.)                                                                         3.PNK    }
+  GPP5002 = 5C+5H+3N+13O;  {CO(OONO2)CH2CH(ONO2)CH2CO(OONO2)                                                                       PPN      }
+  GPN400H = 4C+4H+2N+9O;   {CO(OONO2)CH2CH(ONO2)CHO                                                                                PND      }
+  G3P4001 = 4C+3H+2N+11O;  {CO(OONO2)CH2CH(ONO2)CO(OO.)                                                                            3.PNK    }
+  GPP4001 = 4C+3H+3N+13O;  {CO(OONO2)CH2CH(ONO2)CO(OONO2)                                                                          PPN      }
+  G1P501p = 5C+5H+2N+10O;  {CO(OONO2)CH2CH(ONO2)COCH2(O.)                                                                          1.PNK    }
+  G2P501Y = 5C+5H+2N+11O;  {CO(OONO2)CH2CH(ONO2)COCH2(OO.)                                                                         2.PNK    }
+  GPN501l = 5C+4H+2N+10O;  {CO(OONO2)CH2CH(ONO2)COCHO                                                                              PNDK     }
+  G3P501E = 5C+3H+2N+12O;  {CO(OONO2)CH2CH(ONO2)COCO(OO.)                                                                          3.PNK    }
+  GPP500K = 5C+3H+3N+14O;  {CO(OONO2)CH2CH(ONO2)COCO(OONO2)                                                                        PPNK     }
+  G2P501A = 5C+6H+N+9O;    {CO(OONO2)CH2CH(OO.)CH(OH)CHO                                                                           2.PDO    }
+  G2P503O = 5C+5H+2N+11O;  {CO(OONO2)CH2CH(OO.)CH(ONO2)CHO                                                                         2.PND    }
+  G2P503P = 5C+6H+N+10O;   {CO(OONO2)CH2CH(OO.)CH(OOH)CHO                                                                          2.PHD    }
+  G2P400t = 4C+4H+N+8O;    {CO(OONO2)CH2CH(OO.)CHO                                                                                 2.PD     }
+  G2P400n = 4C+3H+2N+12O;  {CO(OONO2)CH2CH(OO.)CO(OONO2)                                                                           2.PP     }
+  G2P503S = 5C+4H+N+9O;    {CO(OONO2)CH2CH(OO.)COCHO                                                                               2.PDK    }
+  G2P505c = 5C+3H+2N+13O;  {CO(OONO2)CH2CH(OO.)COCO(OONO2)                                                                         2.PPK    }
+  G1P506x = 5C+6H+N+9O;    {CO(OONO2)CH2CH(OOH)CH(O.)CHO                                                                           1.PHD    }
+  G1P509n = 5C+5H+2N+13O;  {CO(OONO2)CH2CH(OOH)CH(O.)CO(OONO2)                                                                     1.PPH    }
+  G1P501P = 5C+8H+N+9O;    {CO(OONO2)CH2CH(OOH)CH(OH)CH2(O.)                                                                       1.PHO    }
+  GPH5011 = 5C+7H+N+9O;    {CO(OONO2)CH2CH(OOH)CH(OH)CHO                                                                           PHDO     }
+  G3P500D = 5C+6H+N+11O;   {CO(OONO2)CH2CH(OOH)CH(OH)CO(OO.)                                                                       3.PHK    }
+  G1P503S = 5C+7H+2N+11O;  {CO(OONO2)CH2CH(OOH)CH(ONO2)CH2(O.)                                                                     1.PHN    }
+  G2P504p = 5C+7H+2N+12O;  {CO(OONO2)CH2CH(OOH)CH(ONO2)CH2(OO.)                                                                    2.PHN    }
+  GPH503P = 5C+6H+2N+11O;  {CO(OONO2)CH2CH(OOH)CH(ONO2)CHO                                                                         PHND     }
+  G3P500n = 5C+5H+2N+13O;  {CO(OONO2)CH2CH(OOH)CH(ONO2)CO(OO.)                                                                     3.PHN    }
+  G1P503k = 5C+8H+N+10O;   {CO(OONO2)CH2CH(OOH)CH(OOH)CH2(O.)                                                                      1.PHH    }
+  GPH5045 = 5C+7H+N+10O;   {CO(OONO2)CH2CH(OOH)CH(OOH)CHO                                                                          PHHD     }
+  G3P5014 = 5C+6H+N+12O;   {CO(OONO2)CH2CH(OOH)CH(OOH)CO(OO.)                                                                      3.PHH    }
+  GPP500b = 5C+6H+2N+14O;  {CO(OONO2)CH2CH(OOH)CH(OOH)CO(OONO2)                                                                    PPHH     }
+  G1P400Q = 4C+6H+N+8O;    {CO(OONO2)CH2CH(OOH)CH2(O.)                                                                             1.PH     }
+  G2P400w = 4C+6H+N+9O;    {CO(OONO2)CH2CH(OOH)CH2(OO.)                                                                            2.PH     }
+  G1P500m = 5C+8H+N+8O;    {CO(OONO2)CH2CH(OOH)CH2CH2(O.)                                                                          1.PH     }
+  GPH400T = 4C+5H+N+8O;    {CO(OONO2)CH2CH(OOH)CHO                                                                                 PHD      }
+  G3P4009 = 4C+4H+N+10O;   {CO(OONO2)CH2CH(OOH)CO(OO.)                                                                             3.PHK    }
+  GPP4006 = 4C+4H+2N+12O;  {CO(OONO2)CH2CH(OOH)CO(OONO2)                                                                           PPH      }
+  G1P503u = 5C+6H+N+9O;    {CO(OONO2)CH2CH(OOH)COCH2(O.)                                                                           1.PHK    }
+  G2P503q = 5C+6H+N+10O;   {CO(OONO2)CH2CH(OOH)COCH2(OO.)                                                                          2.PHK    }
+  GPH503Q = 5C+5H+N+9O;    {CO(OONO2)CH2CH(OOH)COCHO                                                                               PHDK     }
+  G3P501Z = 5C+4H+N+11O;   {CO(OONO2)CH2CH(OOH)COCO(OO.)                                                                           3.PHK    }
+  GPP500c = 5C+4H+2N+13O;  {CO(OONO2)CH2CH(OOH)COCO(OONO2)                                                                         PPHK     }
+  G1P3000 = 3C+4H+N+6O;    {CO(OONO2)CH2CH2(O.)                                                                                    1.P      }
+  G2P3000 = 3C+4H+N+7O;    {CO(OONO2)CH2CH2(OO.)                                                                                   2.P      }
+  G1P504H = 5C+6H+N+7O;    {CO(OONO2)CH2CH2CH(O.)CHO                                                                               1.PD     }
+  G1P506L = 5C+5H+2N+11O;  {CO(OONO2)CH2CH2CH(O.)CO(OONO2)                                                                         1.PP     }
+  G1P500A = 5C+8H+N+7O;    {CO(OONO2)CH2CH2CH(OH)CH2(O.)                                                                           1.PO     }
+  G2P500C = 5C+8H+N+8O;    {CO(OONO2)CH2CH2CH(OH)CH2(OO.)                                                                          2.PO     }
+  GPD5001 = 5C+7H+N+7O;    {CO(OONO2)CH2CH2CH(OH)CHO                                                                               PDO      }
+  G3P5001 = 5C+6H+N+9O;    {CO(OONO2)CH2CH2CH(OH)CO(OO.)                                                                           3.PKO    }
+  GPP5000 = 5C+6H+2N+11O;  {CO(OONO2)CH2CH2CH(OH)CO(OONO2)                                                                         PPO      }
+  G1P500t = 5C+7H+2N+9O;   {CO(OONO2)CH2CH2CH(ONO2)CH2(O.)                                                                         1.PN     }
+  G2P502O = 5C+7H+2N+10O;  {CO(OONO2)CH2CH2CH(ONO2)CH2(OO.)                                                                        2.PN     }
+  GPN501M = 5C+6H+2N+9O;   {CO(OONO2)CH2CH2CH(ONO2)CHO                                                                             PND      }
+  G3P500J = 5C+5H+2N+11O;  {CO(OONO2)CH2CH2CH(ONO2)CO(OO.)                                                                         3.PNK    }
+  GPP5007 = 5C+5H+3N+13O;  {CO(OONO2)CH2CH2CH(ONO2)CO(OONO2)                                                                       PPN      }
+  G2P503Q = 5C+6H+N+8O;    {CO(OONO2)CH2CH2CH(OO.)CHO                                                                              2.PD     }
+  G2P505e = 5C+5H+2N+12O;  {CO(OONO2)CH2CH2CH(OO.)CO(OONO2)                                                                        2.PP     }
+  G1P500x = 5C+8H+N+8O;    {CO(OONO2)CH2CH2CH(OOH)CH2(O.)                                                                          1.PH     }
+  G2P502P = 5C+8H+N+9O;    {CO(OONO2)CH2CH2CH(OOH)CH2(OO.)                                                                         2.PH     }
+  GPH501Q = 5C+7H+N+8O;    {CO(OONO2)CH2CH2CH(OOH)CHO                                                                              PHD      }
+  G3P500K = 5C+6H+N+10O;   {CO(OONO2)CH2CH2CH(OOH)CO(OO.)                                                                          3.PHK    }
+  GPP500D = 5C+6H+2N+12O;  {CO(OONO2)CH2CH2CH(OOH)CO(OONO2)                                                                        PPH      }
+  G1P4001 = 4C+6H+N+6O;    {CO(OONO2)CH2CH2CH2(O.)                                                                                 1.P      }
+  G2P4004 = 4C+6H+N+7O;    {CO(OONO2)CH2CH2CH2(OO.)                                                                                2.P      }
+  G1P5005 = 5C+8H+N+6O;    {CO(OONO2)CH2CH2CH2CH2(O.)                                                                              1.P      }
+  GPD4000 = 4C+5H+N+6O;    {CO(OONO2)CH2CH2CHO                                                                                     PD       }
+  G3P4000 = 4C+4H+N+8O;    {CO(OONO2)CH2CH2CO(OO.)                                                                                 3.PK     }
+  GPP4000 = 4C+4H+2N+10O;  {CO(OONO2)CH2CH2CO(OONO2)                                                                               PP       }
+  G1P5012 = 5C+6H+N+7O;    {CO(OONO2)CH2CH2COCH2(O.)                                                                               1.PK     }
+  G2P501O = 5C+6H+N+8O;    {CO(OONO2)CH2CH2COCH2(OO.)                                                                              2.PK     }
+  GPD5009 = 5C+5H+N+7O;    {CO(OONO2)CH2CH2COCHO                                                                                   PDK      }
+  G3P500s = 5C+4H+N+9O;    {CO(OONO2)CH2CH2COCO(OO.)                                                                               3.PKK    }
+  GPP500C = 5C+4H+2N+11O;  {CO(OONO2)CH2CH2COCO(OONO2)                                                                             PPK      }
+  GPD3000 = 3C+3H+N+6O;    {CO(OONO2)CH2CHO                                                                                        PD       }
+  G3P3000 = 3C+2H+N+8O;    {CO(OONO2)CH2CO(OO.)                                                                                    3.PK     }
+  GPP3000 = 3C+2H+2N+10O;  {CO(OONO2)CH2CO(OONO2)                                                                                  PP       }
+  G1P505t = 5C+4H+N+8O;    {CO(OONO2)CH2COCH(O.)CHO                                                                                1.PDK    }
+  G1P505q = 5C+3H+2N+12O;  {CO(OONO2)CH2COCH(O.)CO(OONO2)                                                                          1.PPK    }
+  G1P500i = 5C+6H+N+8O;    {CO(OONO2)CH2COCH(OH)CH2(O.)                                                                            1.PKO    }
+  G2P500h = 5C+6H+N+9O;    {CO(OONO2)CH2COCH(OH)CH2(OO.)                                                                           2.PKO    }
+  GPD5006 = 5C+5H+N+8O;    {CO(OONO2)CH2COCH(OH)CHO                                                                                PDKO     }
+  G3P500B = 5C+4H+N+10O;   {CO(OONO2)CH2COCH(OH)CO(OO.)                                                                            3.PKK    }
+  G1P502B = 5C+5H+2N+10O;  {CO(OONO2)CH2COCH(ONO2)CH2(O.)                                                                          1.PNK    }
+  G2P501p = 5C+5H+2N+11O;  {CO(OONO2)CH2COCH(ONO2)CH2(OO.)                                                                         2.PNK    }
+  GPN5021 = 5C+4H+2N+10O;  {CO(OONO2)CH2COCH(ONO2)CHO                                                                              PNDK     }
+  G3P500Y = 5C+3H+2N+12O;  {CO(OONO2)CH2COCH(ONO2)CO(OO.)                                                                          3.PNK    }
+  GPP500P = 5C+3H+3N+14O;  {CO(OONO2)CH2COCH(ONO2)CO(OONO2)                                                                        PPNK     }
+  G2P504M = 5C+3H+2N+13O;  {CO(OONO2)CH2COCH(OO.)CO(OONO2)                                                                         2.PPK    }
+  G1P503F = 5C+6H+N+9O;    {CO(OONO2)CH2COCH(OOH)CH2(O.)                                                                           1.PHK    }
+  GPH503b = 5C+5H+N+9O;    {CO(OONO2)CH2COCH(OOH)CHO                                                                               PHDK     }
+  G3P500r = 5C+4H+N+11O;   {CO(OONO2)CH2COCH(OOH)CO(OO.)                                                                           3.PHK    }
+  GPP500Q = 5C+4H+2N+13O;  {CO(OONO2)CH2COCH(OOH)CO(OONO2)                                                                         PPHK     }
+  G1P400D = 4C+4H+N+7O;    {CO(OONO2)CH2COCH2(O.)                                                                                  1.PK     }
+  G2P400C = 4C+4H+N+8O;    {CO(OONO2)CH2COCH2(OO.)                                                                                 2.PK     }
+  G1P500N = 5C+6H+N+7O;    {CO(OONO2)CH2COCH2CH2(O.)                                                                               1.PK     }
+  G2P500M = 5C+6H+N+8O;    {CO(OONO2)CH2COCH2CH2(OO.)                                                                              2.PK     }
+  GPD5004 = 5C+5H+N+7O;    {CO(OONO2)CH2COCH2CHO                                                                                   PDK      }
+  G3P5006 = 5C+4H+N+9O;    {CO(OONO2)CH2COCH2CO(OO.)                                                                               3.PKK    }
+  GPP5005 = 5C+4H+2N+11O;  {CO(OONO2)CH2COCH2CO(OONO2)                                                                             PPK      }
+  GPD4003 = 4C+3H+N+7O;    {CO(OONO2)CH2COCHO                                                                                      PDK      }
+  G3P400E = 4C+2H+N+9O;    {CO(OONO2)CH2COCO(OO.)                                                                                  3.PKK    }
+  GPP4002 = 4C+2H+2N+11O;  {CO(OONO2)CH2COCO(OONO2)                                                                                PPK      }
+  G1P502E = 5C+4H+N+8O;    {CO(OONO2)CH2COCOCH2(O.)                                                                                1.PKK    }
+  G2P501s = 5C+4H+N+9O;    {CO(OONO2)CH2COCOCH2(OO.)                                                                               2.PKK    }
+  GPD500F = 5C+3H+N+8O;    {CO(OONO2)CH2COCOCHO                                                                                    PDKK     }
+  G3P501O = 5C+2H+N+10O;   {CO(OONO2)CH2COCOCO(OO.)                                                                                3.PKK    }
+  GPP500R = 5C+2H+2N+12O;  {CO(OONO2)CH2COCOCO(OONO2)                                                                              PPKK     }
+  GPD2000 = 2C+H+N+6O;     {CO(OONO2)CHO                                                                                           PD       }
+  G1P504k = 5C+4H+N+9O;    {CO(OONO2)COCH(O.)CH(OH)CHO                                                                             1.PDK    }
+  G1P508i = 5C+3H+2N+11O;  {CO(OONO2)COCH(O.)CH(ONO2)CHO                                                                           1.PND    }
+  G1P5091 = 5C+4H+N+10O;   {CO(OONO2)COCH(O.)CH(OOH)CHO                                                                            1.PHD    }
+  G1P5046 = 5C+4H+N+8O;    {CO(OONO2)COCH(O.)CH2CHO                                                                                1.PDK    }
+  G1P401E = 4C+2H+N+8O;    {CO(OONO2)COCH(O.)CHO                                                                                   1.PDK    }
+  G1P401I = 4C+H+2N+12O;   {CO(OONO2)COCH(O.)CO(OONO2)                                                                             1.PPK    }
+  G1P508t = 5C+2H+N+9O;    {CO(OONO2)COCH(O.)COCHO                                                                                 1.PDK    }
+  G1P50AY = 5C+H+2N+13O;   {CO(OONO2)COCH(O.)COCO(OONO2)                                                                           1.PPK    }
+  G1P505i = 5C+4H+N+9O;    {CO(OONO2)COCH(OH)CH(O.)CHO                                                                             1.PDK    }
+  G1P5099 = 5C+3H+2N+13O;  {CO(OONO2)COCH(OH)CH(O.)CO(OONO2)                                                                       1.PPK    }
+  G1P504f = 5C+6H+N+9O;    {CO(OONO2)COCH(OH)CH(OH)CH2(O.)                                                                         1.PKO    }
+  G2P505v = 5C+6H+N+10O;   {CO(OONO2)COCH(OH)CH(OH)CH2(OO.)                                                                        2.PKO    }
+  GPD500K = 5C+5H+N+9O;    {CO(OONO2)COCH(OH)CH(OH)CHO                                                                             PDKOO    }
+  G3P501D = 5C+4H+N+11O;   {CO(OONO2)COCH(OH)CH(OH)CO(OO.)                                                                         3.PKK    }
+  G1P505j = 5C+5H+2N+11O;  {CO(OONO2)COCH(OH)CH(ONO2)CH2(O.)                                                                       1.PNK    }
+  G2P506O = 5C+5H+2N+12O;  {CO(OONO2)COCH(OH)CH(ONO2)CH2(OO.)                                                                      2.PNK    }
+  GPN502o = 5C+4H+2N+11O;  {CO(OONO2)COCH(OH)CH(ONO2)CHO                                                                           PNDKO    }
+  G3P501M = 5C+3H+2N+13O;  {CO(OONO2)COCH(OH)CH(ONO2)CO(OO.)                                                                       3.PNK    }
+  GPP500s = 5C+3H+3N+15O;  {CO(OONO2)COCH(OH)CH(ONO2)CO(OONO2)                                                                     PPNKO    }
+  G2P504F = 5C+4H+N+10O;   {CO(OONO2)COCH(OH)CH(OO.)CHO                                                                            2.PDK    }
+  G2P506R = 5C+3H+2N+14O;  {CO(OONO2)COCH(OH)CH(OO.)CO(OONO2)                                                                      2.PPK    }
+  G1P5078 = 5C+6H+N+10O;   {CO(OONO2)COCH(OH)CH(OOH)CH2(O.)                                                                        1.PHK    }
+  GPH504x = 5C+5H+N+10O;   {CO(OONO2)COCH(OH)CH(OOH)CHO                                                                            PHDKO    }
+  G3P501N = 5C+4H+N+12O;   {CO(OONO2)COCH(OH)CH(OOH)CO(OO.)                                                                        3.PHK    }
+  GPP500t = 5C+4H+2N+14O;  {CO(OONO2)COCH(OH)CH(OOH)CO(OONO2)                                                                      PPHKO    }
+  G1P400J = 4C+4H+N+8O;    {CO(OONO2)COCH(OH)CH2(O.)                                                                               1.PKO    }
+  G2P400I = 4C+4H+N+9O;    {CO(OONO2)COCH(OH)CH2(OO.)                                                                              2.PKO    }
+  G1P503B = 5C+6H+N+8O;    {CO(OONO2)COCH(OH)CH2CH2(O.)                                                                            1.PKO    }
+  G2P504E = 5C+6H+N+9O;    {CO(OONO2)COCH(OH)CH2CH2(OO.)                                                                           2.PKO    }
+  GPD500E = 5C+5H+N+8O;    {CO(OONO2)COCH(OH)CH2CHO                                                                                PDKO     }
+  G3P500X = 5C+4H+N+10O;   {CO(OONO2)COCH(OH)CH2CO(OO.)                                                                            3.PKK    }
+  GPD4004 = 4C+3H+N+8O;    {CO(OONO2)COCH(OH)CHO                                                                                   PDKO     }
+  G3P4007 = 4C+2H+N+10O;   {CO(OONO2)COCH(OH)CO(OO.)                                                                               3.PKK    }
+  G1P5079 = 5C+4H+N+9O;    {CO(OONO2)COCH(OH)COCH2(O.)                                                                             1.PKK    }
+  G2P506B = 5C+4H+N+10O;   {CO(OONO2)COCH(OH)COCH2(OO.)                                                                            2.PKK    }
+  GPD500N = 5C+3H+N+9O;    {CO(OONO2)COCH(OH)COCHO                                                                                 PDKKO    }
+  G3P501s = 5C+2H+N+11O;   {CO(OONO2)COCH(OH)COCO(OO.)                                                                             3.PKK    }
+  GPP500u = 5C+2H+2N+13O;  {CO(OONO2)COCH(OH)COCO(OONO2)                                                                           PPKKO    }
+  G1P508j = 5C+3H+2N+11O;  {CO(OONO2)COCH(ONO2)CH(O.)CHO                                                                           1.PND    }
+  G1P508Y = 5C+2H+3N+15O;  {CO(OONO2)COCH(ONO2)CH(O.)CO(OONO2)                                                                     1.PPN    }
+  G1P502p = 5C+5H+2N+11O;  {CO(OONO2)COCH(ONO2)CH(OH)CH2(O.)                                                                       1.PNK    }
+  G2P502K = 5C+5H+2N+12O;  {CO(OONO2)COCH(ONO2)CH(OH)CH2(OO.)                                                                      2.PNK    }
+  GPN502H = 5C+4H+2N+11O;  {CO(OONO2)COCH(ONO2)CH(OH)CHO                                                                           PNDKO    }
+  G3P500f = 5C+3H+2N+13O;  {CO(OONO2)COCH(ONO2)CH(OH)CO(OO.)                                                                       3.PNK    }
+  G1P505A = 5C+4H+3N+13O;  {CO(OONO2)COCH(ONO2)CH(ONO2)CH2(O.)                                                                     1.PNN    }
+  G2P5043 = 5C+4H+3N+14O;  {CO(OONO2)COCH(ONO2)CH(ONO2)CH2(OO.)                                                                    2.PNN    }
+  GPN502k = 5C+3H+3N+13O;  {CO(OONO2)COCH(ONO2)CH(ONO2)CHO                                                                         PNNDK    }
+  G3P501G = 5C+2H+3N+15O;  {CO(OONO2)COCH(ONO2)CH(ONO2)CO(OO.)                                                                     3.PNN    }
+  GPP500p = 5C+2H+4N+17O;  {CO(OONO2)COCH(ONO2)CH(ONO2)CO(OONO2)                                                                   PPNNK    }
+  G2P506M = 5C+3H+2N+12O;  {CO(OONO2)COCH(ONO2)CH(OO.)CHO                                                                          2.PND    }
+  G2P506H = 5C+2H+3N+16O;  {CO(OONO2)COCH(ONO2)CH(OO.)CO(OONO2)                                                                    2.PPN    }
+  G1P506u = 5C+5H+2N+12O;  {CO(OONO2)COCH(ONO2)CH(OOH)CH2(O.)                                                                      1.PHN    }
+  GPH504t = 5C+4H+2N+12O;  {CO(OONO2)COCH(ONO2)CH(OOH)CHO                                                                          PHNDK    }
+  G3P501J = 5C+3H+2N+14O;  {CO(OONO2)COCH(ONO2)CH(OOH)CO(OO.)                                                                      3.PHN    }
+  GPP500q = 5C+3H+3N+16O;  {CO(OONO2)COCH(ONO2)CH(OOH)CO(OONO2)                                                                    PPHNK    }
+  G1P400j = 4C+3H+2N+10O;  {CO(OONO2)COCH(ONO2)CH2(O.)                                                                             1.PNK    }
+  G2P400e = 4C+3H+2N+11O;  {CO(OONO2)COCH(ONO2)CH2(OO.)                                                                            2.PNK    }
+  G1P501v = 5C+5H+2N+10O;  {CO(OONO2)COCH(ONO2)CH2CH2(O.)                                                                          1.PNK    }
+  G2P501d = 5C+5H+2N+11O;  {CO(OONO2)COCH(ONO2)CH2CH2(OO.)                                                                         2.PNK    }
+  GPN501q = 5C+4H+2N+10O;  {CO(OONO2)COCH(ONO2)CH2CHO                                                                              PNDK     }
+  G3P500U = 5C+3H+2N+12O;  {CO(OONO2)COCH(ONO2)CH2CO(OO.)                                                                          3.PNK    }
+  GPN400a = 4C+2H+2N+10O;  {CO(OONO2)COCH(ONO2)CHO                                                                                 PNDK     }
+  G3P400C = 4C+H+2N+12O;   {CO(OONO2)COCH(ONO2)CO(OO.)                                                                             3.PNK    }
+  GPP4008 = 4C+H+3N+14O;   {CO(OONO2)COCH(ONO2)CO(OONO2)                                                                           PPNK     }
+  G1P505N = 5C+3H+2N+11O;  {CO(OONO2)COCH(ONO2)COCH2(O.)                                                                           1.PNK    }
+  G2P5046 = 5C+3H+2N+12O;  {CO(OONO2)COCH(ONO2)COCH2(OO.)                                                                          2.PNK    }
+  GPN502m = 5C+2H+2N+11O;  {CO(OONO2)COCH(ONO2)COCHO                                                                               PNDKK    }
+  G3P501q = 5C+H+2N+13O;   {CO(OONO2)COCH(ONO2)COCO(OO.)                                                                           3.PNK    }
+  GPP500r = 5C+H+3N+15O;   {CO(OONO2)COCH(ONO2)COCO(OONO2)                                                                         PPNKK    }
+  G2P503j = 5C+4H+N+10O;   {CO(OONO2)COCH(OO.)CH(OH)CHO                                                                            2.PDK    }
+  G2P507E = 5C+3H+2N+12O;  {CO(OONO2)COCH(OO.)CH(ONO2)CHO                                                                          2.PND    }
+  G2P503B = 5C+4H+N+9O;    {CO(OONO2)COCH(OO.)CH2CHO                                                                               2.PDK    }
+  G2P4019 = 4C+H+2N+13O;   {CO(OONO2)COCH(OO.)CO(OONO2)                                                                            2.PPK    }
+  G2P507F = 5C+2H+N+10O;   {CO(OONO2)COCH(OO.)COCHO                                                                                2.PDK    }
+  G2P507g = 5C+H+2N+14O;   {CO(OONO2)COCH(OO.)COCO(OONO2)                                                                          2.PPK    }
+  G1P50AD = 5C+4H+N+10O;   {CO(OONO2)COCH(OOH)CH(O.)CHO                                                                            1.PHD    }
+  G1P50AC = 5C+3H+2N+14O;  {CO(OONO2)COCH(OOH)CH(O.)CO(OONO2)                                                                      1.PPH    }
+  G1P504j = 5C+6H+N+10O;   {CO(OONO2)COCH(OOH)CH(OH)CH2(O.)                                                                        1.PHK    }
+  GPH504X = 5C+5H+N+10O;   {CO(OONO2)COCH(OOH)CH(OH)CHO                                                                            PHDKO    }
+  G3P501B = 5C+4H+N+12O;   {CO(OONO2)COCH(OOH)CH(OH)CO(OO.)                                                                        3.PHK    }
+  G1P507f = 5C+5H+2N+12O;  {CO(OONO2)COCH(OOH)CH(ONO2)CH2(O.)                                                                      1.PHN    }
+  G2P507m = 5C+5H+2N+13O;  {CO(OONO2)COCH(OOH)CH(ONO2)CH2(OO.)                                                                     2.PHN    }
+  GPH505I = 5C+4H+2N+12O;  {CO(OONO2)COCH(OOH)CH(ONO2)CHO                                                                          PHNDK    }
+  G3P501c = 5C+3H+2N+14O;  {CO(OONO2)COCH(OOH)CH(ONO2)CO(OO.)                                                                      3.PHN    }
+  G2P507D = 5C+3H+2N+15O;  {CO(OONO2)COCH(OOH)CH(OO.)CO(OONO2)                                                                     2.PPH    }
+  G1P50AX = 5C+6H+N+11O;   {CO(OONO2)COCH(OOH)CH(OOH)CH2(O.)                                                                       1.PHH    }
+  GPH505f = 5C+5H+N+11O;   {CO(OONO2)COCH(OOH)CH(OOH)CHO                                                                           PHHDK    }
+  G3P5021 = 5C+4H+N+13O;   {CO(OONO2)COCH(OOH)CH(OOH)CO(OO.)                                                                       3.PHH    }
+  GPP5017 = 5C+4H+2N+15O;  {CO(OONO2)COCH(OOH)CH(OOH)CO(OONO2)                                                                     PPHHK    }
+  G1P4016 = 4C+4H+N+9O;    {CO(OONO2)COCH(OOH)CH2(O.)                                                                              1.PHK    }
+  G2P401M = 4C+4H+N+10O;   {CO(OONO2)COCH(OOH)CH2(OO.)                                                                             2.PHK    }
+  G1P5045 = 5C+6H+N+9O;    {CO(OONO2)COCH(OOH)CH2CH2(O.)                                                                           1.PHK    }
+  G2P5065 = 5C+6H+N+10O;   {CO(OONO2)COCH(OOH)CH2CH2(OO.)                                                                          2.PHK    }
+  GPH503L = 5C+5H+N+9O;    {CO(OONO2)COCH(OOH)CH2CHO                                                                               PHDK     }
+  G3P500m = 5C+4H+N+11O;   {CO(OONO2)COCH(OOH)CH2CO(OO.)                                                                           3.PHK    }
+  GPH400t = 4C+3H+N+9O;    {CO(OONO2)COCH(OOH)CHO                                                                                  PHDK     }
+  G3P400K = 4C+2H+N+11O;   {CO(OONO2)COCH(OOH)CO(OO.)                                                                              3.PHK    }
+  GPP400B = 4C+2H+2N+13O;  {CO(OONO2)COCH(OOH)CO(OONO2)                                                                            PPHK     }
+  G1P507x = 5C+4H+N+10O;   {CO(OONO2)COCH(OOH)COCH2(O.)                                                                            1.PHK    }
+  G2P5069 = 5C+4H+N+11O;   {CO(OONO2)COCH(OOH)COCH2(OO.)                                                                           2.PHK    }
+  GPH505J = 5C+3H+N+10O;   {CO(OONO2)COCH(OOH)COCHO                                                                                PHDKK    }
+  G3P501y = 5C+2H+N+12O;   {CO(OONO2)COCH(OOH)COCO(OO.)                                                                            3.PHK    }
+  GPP5018 = 5C+2H+2N+14O;  {CO(OONO2)COCH(OOH)COCO(OONO2)                                                                          PPHKK    }
+  G1P3006 = 3C+2H+N+7O;    {CO(OONO2)COCH2(O.)                                                                                     1.PK     }
+  G2P3006 = 3C+2H+N+8O;    {CO(OONO2)COCH2(OO.)                                                                                    2.PK     }
+  G1P5047 = 5C+4H+N+8O;    {CO(OONO2)COCH2CH(O.)CHO                                                                                1.PDK    }
+  G1P5083 = 5C+3H+2N+12O;  {CO(OONO2)COCH2CH(O.)CO(OONO2)                                                                          1.PPK    }
+  G1P501X = 5C+6H+N+8O;    {CO(OONO2)COCH2CH(OH)CH2(O.)                                                                            1.PKO    }
+  G2P503d = 5C+6H+N+9O;    {CO(OONO2)COCH2CH(OH)CH2(OO.)                                                                           2.PKO    }
+  GPD500B = 5C+5H+N+8O;    {CO(OONO2)COCH2CH(OH)CHO                                                                                PDKO     }
+  G3P500P = 5C+4H+N+10O;   {CO(OONO2)COCH2CH(OH)CO(OO.)                                                                            3.PKK    }
+  G1P502T = 5C+5H+2N+10O;  {CO(OONO2)COCH2CH(ONO2)CH2(O.)                                                                          1.PNK    }
+  G2P5026 = 5C+5H+2N+11O;  {CO(OONO2)COCH2CH(ONO2)CH2(OO.)                                                                         2.PNK    }
+  GPN502D = 5C+4H+2N+10O;  {CO(OONO2)COCH2CH(ONO2)CHO                                                                              PNDK     }
+  G3P500d = 5C+3H+2N+12O;  {CO(OONO2)COCH2CH(ONO2)CO(OO.)                                                                          3.PNK    }
+  GPP500X = 5C+3H+3N+14O;  {CO(OONO2)COCH2CH(ONO2)CO(OONO2)                                                                        PPNK     }
+  G2P503C = 5C+4H+N+9O;    {CO(OONO2)COCH2CH(OO.)CHO                                                                               2.PDK    }
+  G2P505b = 5C+3H+2N+13O;  {CO(OONO2)COCH2CH(OO.)CO(OONO2)                                                                         2.PPK    }
+  G1P503s = 5C+6H+N+9O;    {CO(OONO2)COCH2CH(OOH)CH2(O.)                                                                           1.PHK    }
+  GPH503v = 5C+5H+N+9O;    {CO(OONO2)COCH2CH(OOH)CHO                                                                               PHDK     }
+  G3P500y = 5C+4H+N+11O;   {CO(OONO2)COCH2CH(OOH)CO(OO.)                                                                           3.PHK    }
+  GPP500i = 5C+4H+2N+13O;  {CO(OONO2)COCH2CH(OOH)CO(OONO2)                                                                         PPHK     }
+  G1P400T = 4C+4H+N+7O;    {CO(OONO2)COCH2CH2(O.)                                                                                  1.PK     }
+  G2P400U = 4C+4H+N+8O;    {CO(OONO2)COCH2CH2(OO.)                                                                                 2.PK     }
+  G1P501A = 5C+6H+N+7O;    {CO(OONO2)COCH2CH2CH2(O.)                                                                               1.PK     }
+  G2P503o = 5C+6H+N+8O;    {CO(OONO2)COCH2CH2CH2(OO.)                                                                              2.PK     }
+  GPD5008 = 5C+5H+N+7O;    {CO(OONO2)COCH2CH2CHO                                                                                   PDK      }
+  G3P500H = 5C+4H+N+9O;    {CO(OONO2)COCH2CH2CO(OO.)                                                                               3.PKK    }
+  GPD4005 = 4C+3H+N+7O;    {CO(OONO2)COCH2CHO                                                                                      PDK      }
+  G3P4003 = 4C+2H+N+9O;    {CO(OONO2)COCH2CO(OO.)                                                                                  3.PKK    }
+  G1P502Z = 5C+4H+N+8O;    {CO(OONO2)COCH2COCH2(O.)                                                                                1.PKK    }
+  G2P502B = 5C+4H+N+9O;    {CO(OONO2)COCH2COCH2(OO.)                                                                               2.PKK    }
+  GPD500H = 5C+3H+N+8O;    {CO(OONO2)COCH2COCHO                                                                                    PDKK     }
+  G3P501i = 5C+2H+N+10O;   {CO(OONO2)COCH2COCO(OO.)                                                                                3.PKK    }
+  GPP500k = 5C+2H+2N+12O;  {CO(OONO2)COCH2COCO(OONO2)                                                                              PPKK     }
+  GPD3002 = 3C+H+N+7O;     {CO(OONO2)COCHO                                                                                         PDK      }
+  G3P3004 = 3C+N+9O;       {CO(OONO2)COCO(OO.)                                                                                     3.PKK    }
+  GPP3004 = 3C+2N+11O;     {CO(OONO2)COCO(OONO2)                                                                                   PPK      }
+  G1P509Q = 5C+2H+N+9O;    {CO(OONO2)COCOCH(O.)CHO                                                                                 1.PDK    }
+  G1P509J = 5C+H+2N+13O;   {CO(OONO2)COCOCH(O.)CO(OONO2)                                                                           1.PPK    }
+  G1P502u = 5C+4H+N+9O;    {CO(OONO2)COCOCH(OH)CH2(O.)                                                                             1.PKK    }
+  G2P502M = 5C+4H+N+10O;   {CO(OONO2)COCOCH(OH)CH2(OO.)                                                                            2.PKK    }
+  GPD500I = 5C+3H+N+9O;    {CO(OONO2)COCOCH(OH)CHO                                                                                 PDKKO    }
+  G3P500h = 5C+2H+N+11O;   {CO(OONO2)COCOCH(OH)CO(OO.)                                                                             3.PKK    }
+  G1P505x = 5C+3H+2N+11O;  {CO(OONO2)COCOCH(ONO2)CH2(O.)                                                                           1.PNK    }
+  G2P504Q = 5C+3H+2N+12O;  {CO(OONO2)COCOCH(ONO2)CH2(OO.)                                                                          2.PNK    }
+  GPN502r = 5C+2H+2N+11O;  {CO(OONO2)COCOCH(ONO2)CHO                                                                               PNDKK    }
+  G3P501S = 5C+H+2N+13O;   {CO(OONO2)COCOCH(ONO2)CO(OO.)                                                                           3.PNK    }
+  GPP500x = 5C+H+3N+15O;   {CO(OONO2)COCOCH(ONO2)CO(OONO2)                                                                         PPNKK    }
+  G2P506c = 5C+H+2N+14O;   {CO(OONO2)COCOCH(OO.)CO(OONO2)                                                                          2.PPK    }
+  G1P507K = 5C+4H+N+10O;   {CO(OONO2)COCOCH(OOH)CH2(O.)                                                                            1.PHK    }
+  GPH5057 = 5C+3H+N+10O;   {CO(OONO2)COCOCH(OOH)CHO                                                                                PHDKK    }
+  G3P501U = 5C+2H+N+12O;   {CO(OONO2)COCOCH(OOH)CO(OO.)                                                                            3.PHK    }
+  GPP500y = 5C+2H+2N+14O;  {CO(OONO2)COCOCH(OOH)CO(OONO2)                                                                          PPHKK    }
+  G1P400n = 4C+2H+N+8O;    {CO(OONO2)COCOCH2(O.)                                                                                   1.PKK    }
+  G2P400h = 4C+2H+N+9O;    {CO(OONO2)COCOCH2(OO.)                                                                                  2.PKK    }
+  G1P502K = 5C+4H+N+8O;    {CO(OONO2)COCOCH2CH2(O.)                                                                                1.PKK    }
+  G2P501y = 5C+4H+N+9O;    {CO(OONO2)COCOCH2CH2(OO.)                                                                               2.PKK    }
+  GPD500G = 5C+3H+N+8O;    {CO(OONO2)COCOCH2CHO                                                                                    PDKK     }
+  G3P500a = 5C+2H+N+10O;   {CO(OONO2)COCOCH2CO(OO.)                                                                                3.PKK    }
+  GPD4008 = 4C+H+N+8O;     {CO(OONO2)COCOCHO                                                                                       PDKK     }
+  G3P400N = 4C+N+10O;      {CO(OONO2)COCOCO(OO.)                                                                                   3.PKK    }
+  GPP400C = 4C+2N+12O;     {CO(OONO2)COCOCO(OONO2)                                                                                 PPKK     }
+  G1P5062 = 5C+2H+N+9O;    {CO(OONO2)COCOCOCH2(O.)                                                                                 1.PKK    }
+  G2P504S = 5C+2H+N+10O;   {CO(OONO2)COCOCOCH2(OO.)                                                                                2.PKK    }
+  GPD500O = 5C+H+N+9O;     {CO(OONO2)COCOCOCHO                                                                                     PDKKK    }
+  G3P501w = 5C+N+11O;      {CO(OONO2)COCOCOCO(OO.)                                                                                 3.PKK    }
+  GPP500z = 5C+2N+13O;     {CO(OONO2)COCOCOCO(OONO2)                                                                               PPKKK    }
+  GPU3000 = 3C+3H+N+5O;    {CO(OONO2)CdH=CdH2                                                                                      PU       }
+  GCO2    = C+2O;          {CO2                                                                                                             }
+  GU02000 = 2C+4H;         {CdH2=CdH2                                                                                              U        }
+  G1U3000 = 3C+5H+O;       {CdH2=CdHCH2(O.)                                                                                        1.U      }
+  G3U3000 = 3C+3H+3O;      {CdH2=CdHCO(OO.)                                                                                        3.UK     }
+  MEPERO =              IGNORE;
+  PERO1  =              IGNORE;
+  PERO2  =              IGNORE;
+  PERO3  =              IGNORE;
+  PERO4  =              IGNORE;
+  PERO5  =              IGNORE;
+  PERO6  =              IGNORE;
+  PERO7  =              IGNORE;
+  PERO8  =              IGNORE;
+  PERO9  =              IGNORE;
+  EXTRA  =              IGNORE;
+  NOTHING =             IGNORE;
+  M      =              IGNORE;
+  OXYGEN  = 2O ;
+  
+#DEFFIX
+  GH2     = 2H;            {H2                  }
+  GH2O    = 2H+O;          {H2O                 }
+  GO2     = 2O;            {O2                  }
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/tropo.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/tropo.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/tropo.def	(revision 2696)
@@ -0,0 +1,57 @@
+#include tropo.spc
+#include tropo.eqn
+
+{#LANGUAGE Fortran77
+#INTEGRATOR rodas3
+#DRIVER general}
+
+#LOOKATALL
+
+#MONITOR O3;
+
+#INITVALUES
+  ALL_SPEC = 1.0E-8;
+  O3   = 100.0;
+  NO   = 0.05;
+  NO2  = 0.05;
+  H2O  = 500.0;
+  CO   = 100.0;
+  NO3  = 0.1;
+  SO2  = 5.0;
+  SO4  = 1.0;
+  CH4  = 1700;
+  H2O2 = 2.0;
+  HNO4 = 1E-8;
+  O2   = 2.E+8;
+  CO2  = 5.E+7;
+  H2   = 500;  
+
+
+#INLINE F77_INIT
+	TSTART = 12.D0*3600.D0
+	TEND = TSTART + 24.D0*3600.D0 * 5
+	DT = 3600.D0
+        TEMP = 288.15
+#ENDINLINE
+
+#INLINE F90_INIT
+	TSTART = 12.D0*3600.D0
+	TEND = TSTART + 24.D0*3600.D0 * 5
+	DT = 3600.D0
+        TEMP = 288.15
+#ENDINLINE
+
+#INLINE MATLAB_INIT
+   global TSTART TEND DT TEMP
+   TSTART = 12.D0*3600.0;
+   TEND = TSTART + 24.0*3600.0 * 5;
+   DT = 3600.0;
+   TEMP = 288.15;
+#ENDINLINE
+
+#INLINE C_INIT
+   TSTART = 12.D0*3600.0;
+   TEND = TSTART + 24.0*3600.0 * 5;
+   DT = 3600.0;
+   TEMP = 288.15;
+#ENDINLINE
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/tropo.eqn
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/tropo.eqn	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/tropo.eqn	(revision 2696)
@@ -0,0 +1,230 @@
+#EQUATIONS
+                
+{----NEXT KR APPROXIMATED BY ADRIAN---}
+{1} NO2 + hv = NO + O3 :                              1.765E-2*SUN ;
+{2} NO + O3 = NO2 + O2 :                              ARR2(2.2E-12,-1430.0) ;
+{3} NO2 + O3 = NO3 + O2 :                             ARR2(1.2E-13,-2450.0) ;
+{4} NO + NO3 = 2NO2 :                                 ARR2(1.7E-11,150.0) ;
+{----NEXT KR CORRECTED FROM LILING'S STEM----}
+{5} NO2 + NO3 = N2O5 :                                1.45E-12 ;
+{----NEXT KR CORRECTED FROM LILING'S STEM----}
+{6} N2O5 = NO2 + NO3 :                                5.00E-6 ;
+{7} NO2 + NO3 = NO + NO2 + O2 :                       ARR2(2.5E-14,-1230.0) ;
+{8} NO3 + hv = 0.15NO + 0.85NO2 + 0.85O3 + O2 :       3.29*RCONST(1) ;
+{9} NO3 + HO2 = HNO3 + O2 :                           2.50E-12 ;
+{---- NEXT KR APPROXIMATED BY ADRIAN ----}
+{10} O3 + hv = 2OH :                                  1.5796E-7*SUN ;
+{----NEXT KR CORRECTED FROM LILING'S STEM----}
+{11} NO + OH = HONO :                                 7.218E-12 ;
+{12} HONO + hv = NO + OH :                            0.205*RCONST(1) ;
+{----NEXT KR CORRECTED FROM LILING'S STEM----}
+{13} NO2 + OH = HNO3 :                                1.2794E-11 ;
+{---- NEXT KR APPROXIMATED BY ADRIAN ----}
+{14} HNO3 + hv = NO2 + OH :                           7.8E-7*SUN ;
+{15} HNO3 + OH = NO3 + H2O :                          ARR2(9.4E-15,778.0) ;
+{16} N2O5 + H2O = 2HNO3 :                             1.30E-21 ;
+{----NEXT KR CORRECTED FROM LILING'S STEM----}
+{17} CO + OH = HO2 + CO2 :                            1.7823E-13 ;
+{18} O3 + OH = HO2 + O2 :                             ARR2(1.6E-12,-1000.0) ;
+{19} NO + HO2 = NO2 + OH :                            ARR2(3.7E-12,240.0) ;
+{----NEXT KR CORRECTED FROM LILING'S STEM----}
+{20} NO2 + HO2 = HNO4 :                               1.7851E-12 ;
+{----NEXT KR CORRECTED FROM LILING'S STEM----}
+{21} HNO4 = NO2 + HO2 :                               6.8868E-6 ;
+{22} O3 + HO2 = OH + 2O2 :                            ARR2(1.4E-14,-600.0) ;
+{----NEXT KR CORRECTED FROM LILING'S STEM----}
+{23} HO2 + HO2 = H2O2 + O2 :                          4.7165E-12 ;
+{---- NEXT KR APPROXIMATED BY ADRIAN---- }
+{24} H2O2 + hv = 2OH :                                1.366E-5*SUN ;
+{25} H2O2 + OH = HO2 + H2O :                          ARR2(3.3E-12,-200.0) ;
+{26} NO2 + H2O = HONO + HNO3 - NO2 :                  4.00E-24 ;
+{27} HNO4 + hv = NO2 + HO2 :                          1E-4*RCONST(1) ;
+{28} HNO4 + OH = NO2 + H2O + O2 :                     ARR2(1.3E-12,380.0) ;
+{----NEXT KR CORRECTED FROM LILING'S STEM----}
+{29} SO2 + OH = SO4 + HO2 :                           1.E-20 ;
+{ NEXT KR APPROXIMATED BY ADRIAN }
+{30} HCHO + hv = 2HO2 + CO :                          2.7E-5*SUN ;
+{---- NEXT KR APPROXIMATED BY ADRIAN ----}
+{31} HCHO + hv = CO + H2 :                            1.1182E-4*SUN ;
+{32} HCHO + OH = HO2 + CO + H2O :                     1.00E-11 ;
+{33} HCHO + HO2 = AHO2 :                              1.00E-14 ;
+{34} AHO2 + NO = ACO2 + HO2 + NO2 :                   ARR2(4.2E-12,180.0) ;
+{35} AHO2 + HO2 = ACO2 + H2O + O2 :                   2.00E-12 ;
+{36} 2AHO2 = ACO2 + 2HO2 + 2O2 :                      1.00E-13 ;
+{37} ACO2 + OH = HO2 + H2O + CO2 :                    3.20E-13 ;
+{38} NO3 + HCHO = HNO3 + HO2 +CO :                    6.00E-16 ;
+{39} ALD2 + OH = MCO3 + H2O :                         ARR2(6.9E-12,250.0) ;
+{40} ALD2 + NO3 = HNO3 + MCO3 :                       2.70E-15 ;
+{---- NEXT KR APPROXIMATED BY ADRIAN ----}
+{41} ALD2 + hv = MO2 + HO2 + CO :                     4.556E-6*SUN ;
+{---- NEXT KR APPROXIMATED BY ADRIAN ----}
+{42} ALD2 + hv = CH4 + CO :                           1.118E-4*SUN ;
+{43} MCO3 + NO2 = PAN :                               4.70E-12 ;
+{44} PAN = MCO3 + NO2 :                               ARR2(2.2E16,-13435.0) ;
+{45} MCO3 + NO = MO2 + NO2 + CO2 :                    ARR2(4.2E-12,180.0) ;
+{46} MO2 + NO = HCHO + NO2 + HO2 :                    ARR2(4.2E-12,180.0);
+{47} CH4 + OH = MO2 + H2O :                           ARR2(2.4E-12,1710.0) ;
+{48} C2H6 + OH = ETO2 + H2O :                         ARR2(1.7E-11,-1232.0) ;
+{49} ETO2 + NO = ALD2 + HO2 + NO2 :                   ARR2(4.2E-12,180.0) ;
+{50} C3H8 + OH = R3O2 :                               ARR2(1.18E-11,-679.0) ;
+{51} R3O2 + NO = 0.03R3N2 + 0.46ALD2 + 0.97NO2 +
+            0.97HO2 + 0.49KET :                       ARR2(4.2E-12,180.0) ;
+{52} ALKA + OH = RAO2 :                                    ARR2(2E-11,-500.0) ;
+{---- IN THE NEXT REACTION
+  BETA 1...9 WHERE REPLACED BY NUMBERS,
+  AS READ FROM LILING STEM CODE ----}
+{53} RAO2 + NO = 0.9261NO2 - 0.1892NO + 0.263RAN2 +
+            1.0482ALD2 + 0.3KET +
+            0.1879ETO2 + 0.1116MO2 + 
+            0.28HO2 + 0.1057R3O2 + 0.06RAO2 :         ARR2(4.2E-12,180.0) ;
+{54} ALKA + NO3 = HNO3 + RAO2 :                       4.00E-17 ;
+{55} RAN2 + OH = RAN1 + H2O :                         2.00E-12 ;
+{56} RAN1 + NO = 2.5NO2  - 0.5NO + 0.8HCHO + 2.1ALD2 :ARR2(4.2E-12,180.0) ;
+{57} MO2 + MO2 = 1.4HCHO + 0.8HO2 + O2 :              ARR2(1.5E-13,220.0) ;
+{58} 2ETO2 = 1.6ALD2 + 1.2HO2 :                       5.00E-14 ;
+{59} R3O2 + R3O2 = 1.9ALD2 + 0.28KET + 0.37HO2 :      5.00E-14 ;
+{60} HO2 + MO2 = ROOH + O2 :                          3.00E-12 ;
+{61} HO2 + ETO2 = ROOH + O2 :                         3.00E-12 ;
+{62} HO2 + R3O2 = ROOH + O2 :                         3.00E-12 ;
+{63} HO2 + RAO2 = ROOH + O2 :                         3.00E-12 ;
+{64} HO2 + MCO3 = ROOH + O2 :                         3.00E-12 ;
+{65} KET + OH = KO2 :                                 ARR2(1.2E-11,-890.0) ;
+{66} KO2 + NO = 0.05RAN2 + 0.95NO2 + 0.94ALD2 +
+           0.94MCO3 :                                 ARR2(4.2E-12,180.0) ;
+{67} KET + hv = MCO3 + ETO2 + H2O :                   2.6E-4*RCONST(1) ;
+{68} KET + NO3 = HNO3 + KO2 :                         7.00E-16 ;
+{69} KO2 + HO2 = MGLY + MO2 + H2O :                   3.00E-12 ;
+{70} ETHE + OH = EO2 :                                ARR2(1.66E-12,474.0) ;
+{71} EO2 + NO = NO2 + 2.0HCHO + HO2 :                 ARR2(4.2E-12,180.0) ;
+{72} ALKE + OH = PO2 :                                ARR2(4.1E-12,537.0) ;
+{73} PO2 + NO = NO2 + ALD2 + HCHO + HO2 :             ARR2(4.2E-12,180.0) ;
+{74} ETHE + O3 = HCHO + 0.4CHO2 + 0.12HO2 + 0.42CO +
+            0.06CH4 :                                 ARR2(1.2E-14,-2633.0) ;
+{75} ALKE + O3 = 0.525HCHO + 0.5ALD2 + 0.2CHO2 +
+            0.2CRO2 + 0.23HO2 + 0.215MO2 :            ARR2(7.8E-14,-2105.0) ;
+{76} CHO2 + NO = HCHO + NO2 :                         7.00E-12 ;
+{77} CHO2 + NO2 = HCHO+ NO3 :                         7.00E-13 ;
+{78} CHO2 + H2O = ACO2 :                              4.00E-18 ;
+{79} CRO2 + NO = ALD2 + NO2 :                         7.00E-12 ;
+{80} CRO2 + NO2 = ALD2 + NO3 :                        7.00E-13 ;
+{81} CRO2 + H2O = ACTA :                              4.00E-18 ;
+{82} EO2 + EO2 = 2.4HCHO + 1.2HO2 + 0.4ALD2 :         5.00E-14 ;
+{83} PO2 + PO2 = 2.2ALD2 + 1.2HO2 :                   5.00E-14 ;
+{84} HO2 + EO2 = ROOH + O2 :                          3.00E-12 ;
+{85} HO2 + PO2 = ROOH + O2 :                          3.00E-12 ;
+{86} SO2 + CHO2 = SO4 + HCHO :                        7.00E-14 ;
+{87} SO2 + CRO2 = SO4 + ALD2 :                        7.00E-14 ;
+{88} ALKE + NO3 = PRN1 :                              1.26E-13 ;
+{89} PRN1 + NO2 = PRN2 :                              6.80E-12 ;
+{90} PRN1 + HO2 = PRPN + O2 :                         3.00E-12 ;
+{91} PRN1 + NO = 2NO2 + HCHO + ALD2 :                 ARR2(4.2E-12,180.0) ;
+{92} CHO2 + HCHO = OZID :                             1.36E-14 ;
+{93} CHO2 + ALD2 = OZID :                             1.36E-14 ;
+{94} CRO2 + HCHO = OZID :                             1.36E-14 ;
+{95} CRO2 + ALD2 = OZID :                             1.36E-14 ;
+{96} AROM + OH = 0.84TO2 + 0.16CRES + 0.16HO2 :       1.52E-11 ;
+{97} TO2 + NO = NO2 + HO2 + 0.72MGLY + 0.18GLYX + DIAL : ARR2(4.2E-12,180.0) ;
+{98} GLYX + hv = PROD :                               8.0E-3*RCONST(1) ;
+{99} GLYX + OH = HO2 + 2CO + H2O :                    1.15E-11 ;
+{100} MGLY + hv = MCO3 + HO2 + CO :                   1.9E-2*RCONST(1) ;
+{101} MGLY + OH = MCO3 + CO + H2O :                   1.73E-11 ;
+{---- IN THE NEXT REACTION
+  BETA 12, 13 WHERE REPLACED BY NUMBERS
+  AS GIVEN IN LILING'S STEM CODE ----}
+{102} CRES + OH = 0.83HO2 + 0.9ZO2 + 0.9TCO3 
+            -0.9OH - 0.0315NO2 :                      4.25E-11 ;
+{103} NO3 + CRES = HNO3 :                             1.00E-11 ;
+{104} OH + DIAL = TCO3 :                              2.80E-11 ;
+{105} TCO3 + NO2 = TPAN :                             4.70E-12 ;
+{106} TPAN = TCO3 + NO2:                              ARR2(2.2E16,-13435.0) ;
+{107} TCO3 + NO = NO2 + 0.92HO2 + 0.89GLYX + 0.11MGLY +
+            0.05MCO3 :                                ARR2(4.2E-12,180.0) ;
+{108} ZO2 + NO = NO2 :                                ARR2(4.2E-12,180.0) ;
+{109} DIAL + hv = 0.98HO2 + 0.02MCO3 + TCO3 :         1E-2*RCONST(1) ;
+{110} HO2 + TO2 = ROOH + O2 :                         4.00E-12 ;
+{111} HO2 + TCO3 = ROOH + O2 :                        4.00E-12 ;
+{112} HO2 + ZO2 = ROOH + O2 :                         1.00E-12 ;
+{---- HERE COMES AEROSOL PART ----}
+{113} AHO2 = HCHO + HO2 :                             1.5*1. ;
+{114} ISOP + OH = RIO2 :                              ARR2(2.5E-11,409.0) ;
+{115} RIO2 + NO = 0.9NO2 + 0.45MVK + 0.45MACR + 
+            0.9HO2 + 0.9HCHO :                        ARR2(4.2E-12,180.0) ;
+{116} RIO2 + HO2 = ROOH :                             3.00E-12 ;
+{117} MVK + OH = VRO2 :                               ARR2(3.0E-12,500.0) ;
+{118} VRO2 + NO = 0.9NO2 + 0.6MCO3 + 0.6HAC +
+            0.3HO2 + 0.3HCHO + 0.3MGGY :              ARR2(4.2E-12,180.0) ;
+{119} VRO2 + HO2 = ROOH :                             3.0E-12 ;
+{120} OH + MACR = MAO3 :                              1.02E-11 ;
+{121} MAO3 + NO2 = MPAN :                             4.7E-12 ;
+{122} MPAN = MAO3 + NO2 :                             ARR2(2.2E+16,-13435.0) ;
+{123} MAO3 + NO = 3NO3 - 2NO + HO2 + MGGY :           ARR2(4.2E-12,180.0) ;
+{124} MAO3 + HO2 = ROOH :                             3.00E-12 ;
+{125} MACR + OH = MRO2 :                              ARR2(3.86E-12,500.0) ;
+{126} MRO2 + NO = 0.9NO2 + 0.9HO2 +
+            0.9HCHO + 0.9MGGY :                       ARR2(4.2E-12,180.0) ;
+{127} MRO2 + HO2 = ROOH :                             3.00E-12 ;
+{128} HAC + OH = HACO :                               1.5E-11 ;
+{129} HACO + NO2 = IPAN :                             4.7E-12 ;
+{130} IPAN = HACO + NO2 :                             ARR2(2.2E+16,-13435.0) ;
+{131} HACO + NO = NO2 + HO2 + HCHO :                  ARR2(4.2E-12,180.0) ;
+{132} HACO + HO2 = ROOH :                             3.00E-12 ;
+{133} ISOP + O3 = 0.5HCHO + 0.2MVK + 0.3MACR + 0.2CHO2 +
+            0.06HO2 + 0.2MVKO + 0.3MAOO :             ARR2(7.0E-15,-1900.0) ;
+{134} MVK + O3  = 0.5HCHO + 0.2CHO2 + 0.21HO2 + 0.2MCRG +
+            0.15ALD2 + 0.5MGGY + 0.15MCO3 :           ARR2(4.0E-15,-2000.0) ;
+{135} MACR + O3 = 0.65HCHO + 0.2CHO2 + 0.36HO2 +
+            0.15NO2 - 0.15NO + 0.5MGGY + 0.2MCRG :    ARR2(4.4E-15,-2500.0) ;
+{136} MVKO + NO = MVK + NO2 :                         ARR2(4.2E-12,180.0) ;
+{137} MVKO + NO2 = MVK + NO3 :                        ARR2(4.2E-13,180.0) ;
+{138} MVKO + H2O = PROD :                             3.4E-18 ;
+{139} MAOO + NO = MACR + NO2 :                        ARR2(4.2E-12,180.0) ;
+{140} MAOO + NO2 = MACR + NO3 :                       ARR2(4.2E-13,180.0) ;
+{141} MAOO + H2O = MACA :                             3.4E-18 ;
+{142} MCRG + NO = MGGY + NO2 :                        ARR2(4.2E-12,180.0) ;
+{143} MCRG + NO2 = MGGY + NO3 :                       ARR2(4.2E-13,180.0) ;
+{144} MCRG + H2O = PYVA :                             3.4E-18 ;
+{145} HAC + hv = HCHO + 2HO2 :                        5E-4*RCONST(1) ;
+{146} MGGY + hv = MCO3 + HO2 :                        0.15*RCONST(1) ;
+{147} MGGY + OH = MCO3 :                              1.7E-11 ;
+{148} ISOP + NO3 = INO2 :                             ARR2(3.00E-12,-450.0) ;
+{149} INO2 + NO = 2NO2 + HCHO + 0.5MVK + 0.5MACR :    ARR2(4.2E-12,180.0) ;
+{150} INO2 + NO2 = PROD :                             ARR2(4.2E-13,180.0) ;
+{151} INO2 + HO2 = PROD :                             3.00E-12 ;
+{152} MVK + NO3 = MVN2 :                              6.00E-14 ;
+{153} MVN2 + NO = 2NO2 + HCHO + 0.5MCO3 +
+            0.5MGGY + 0.5HO2 :                        ARR2(4.2E-12,180.0) ;
+{154} MVN2 + HO2 = PROD :                             3.0E-12 ;
+{155} MACR + NO3 = MAO3 + HNO3 :                      3.3E-15 ;
+{156} MACR + NO3 = MAN2 :                             6.7E-15 ;
+{157} MAN2 + NO = 2NO2 + HCHO + MGGY :                ARR2(4.2E-12,180.0) ;
+{157} MAN2 + HO2 = PROD :                             3.00E-12 ;
+{159} HAC + NO3 = HNO3 + HACO :                       5.2E-16 ;
+{160} MAOO + HO2 = ROOH :                             3.00E-12 ;
+{161} MVKO + HO2 = ROOH :                             3.00E-12 ;
+{162} MVKO + SO2 = SO4 + MVK :                        7.00E-14 ;
+{163} MAOO + SO2 = SO4 + MACR :                       7.00E-14 ;
+{164} MCRG + SO2 = SO4 + MVK :                        7.00E-14 ;
+{165} MACA + OH = PROD :                              ARR2(1.2E-11,500.0) ;
+{166} PYVA + OH = PROD :                              5.00E-14 ;
+{167} DOL6 + O3 = 0.11SUCA :                          5.44E-17 ;
+{168} DOL7 + O3 = 0.19GLUA :                          3.46E-17 ;
+{169} DOL8 + O3 = 0.15ADIA :                          2.21E-17 ;
+{170} CPET + O3 = 0.39GLUA :                          1.03E-15 ;
+{171} CHEX + O3 = 0.15ADIA :                          2.16E-16 ;
+{172} OH + HO2 = H2O + O2 :                           ARR2(4.6E-11,230.0) ;
+{173} ROOH + hv = HCHO + OH + HO2 :                   5.00E-4*RCONST(1) ;
+{174} ROOH + OH = 0.5MO2 + 0.5OH + 0.5HCHO :          1.00E-11;
+{175} DMS + OH = SO2 + MSA :                          8.3E-12 ;
+{176} NO3 + NO3 = 2NO2 + O2 :                         ARR2(8.5E-13,-2450.0) ;
+{177} OH + PAN = PROD :                               ARR2(1.23E-12,-651.0) ;
+{178} NO3 + HO2 = 0.6OH + 0.6NO2 + 0.4HNO3 :          ARR2(2.3E-12,170.0) ;  
+ 
+ 
+    
+                                                  
+
+
+                       
+
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/tropo.spc
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/tropo.spc	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/tropo.spc	(revision 2696)
@@ -0,0 +1,99 @@
+#include atoms
+
+#DEFVAR                  
+    NO		= N + O;     
+    NO2		= N + 2O;   
+    HNO3	= H + N + 3O;   
+    NH3		= N + 3H;    
+    SO2		= S + 2O;    
+    SO4		= S + 4O;            
+    O3		= 3O;     
+    CH4		= C + 4H;   
+    C2H6	= 2C + 6H;   
+    C3H8	= 3C + 8H;   
+    ALKA	= 			IGNORE;   
+    ETHE	= 			IGNORE;             
+    ALKE	= 			IGNORE;   
+    AROM	= 			IGNORE;  
+    ACO2	= 2H + C + 2O; 			{ HCOOH }   
+    ACTA	= 2C + 4H + 2O; 		{ CH3COOH }
+    HCHO	= 2H + C + O;   
+    ALD2	= 			IGNORE;  
+    H2O2	= 2H + 2O;   
+    ROOH	= 			IGNORE;   
+    HONO	= H + 2O + N;   
+    PAN		= 2C + 3H + 5O + N;		{ CH3CO3NO2 }       
+    TPAN	= 4C + 3H + 6O + N;		{ CHOCH=CHCO3NO2 }   
+    KET		= 			IGNORE;   
+    CRES	= 			IGNORE;   
+    DIAL	= 			IGNORE;   
+    GLYX	= 2C + 2H + 2O;			{ CHOCHO }   
+    MGLY	= 3C + 4H + 2O; 	 	{ CH3COCHO }            
+    NH4NO3	= 2N + 4H + 3O;         	{ or AMNT }
+    HCL		= H + Cl;   
+    R3N2	= N + IGNORE;   
+    RAN1	= N + IGNORE;   
+    RAN2	= N + IGNORE;   
+    N2O5	= 2N + 5O;             
+    HNO4	= H + N + 4O;   
+    NO3		= N + 3O;   
+    ISOP	= 			IGNORE;   
+    MVK		= 			IGNORE;    
+    MACR	= 			IGNORE;   
+    HAC		= 			IGNORE;              
+    MGGY	= 			IGNORE;   
+    MPAN	= N + IGNORE;  
+    IPAN	= N + IGNORE;   
+    INO2	= N + IGNORE;   
+    MAN2	= N + IGNORE;   
+    MVN2	= N + IGNORE;             
+    MACA	= 			IGNORE;   
+    PYVA	= 			IGNORE;  
+    DOL6	= 			IGNORE;   
+    DOL7	= 			IGNORE;   
+    DOL8	= 			IGNORE;   
+    CPET	= 			IGNORE;             
+    CHEX	= 			IGNORE;   
+    SUCA	= 			IGNORE;  
+    GLUA	= 			IGNORE;   
+    ADIA	= 			IGNORE;                                   
+    PRN2	= 2N + IGNORE;   
+    PRPN	= N + IGNORE;  
+    OZID	= 			IGNORE;   
+    DMS		= 2C + 6H + S; 			{ CH3-S-CH3 }   
+    MSA		= S + IGNORE; 
+    CO		= C + O;      
+
+#DEFRAD                                                  
+    OH		= O + H;      
+    HO2		= H + 2O;                        
+    AHO2	= 3H + 3O + C; 			{ HOCH2O2 }    
+    MCO3	= 2C + 3H + 3O; 		{ CH3CO2 }   
+    MO2		= C + 3H + 2O;			{ CH3O2 }     
+    ETO2	= 2C + 5H + 2O;			{ C2H5O2 }   
+    KO2		= 			IGNORE;                        
+    R3O2	= 			IGNORE;    
+    RAO2	= 			IGNORE;   
+    TO2		= 			IGNORE;     
+    TCO3	= 4C + 3H + 4O; 		{ CHOCH=CHCO3 }  
+    ZO2		= 			IGNORE;                        
+    EO2		= 			IGNORE;     
+    PO2		= 			IGNORE;    
+    CHO2	= C + 2H + 2O;			{ CH2O2 }    
+    CRO2	= 2C + 4H + 2O;			{ CH3CHO2 }   
+    PRN1	= N + IGNORE;                       
+    RIO2	= 			IGNORE;    
+    VRO2	= 			IGNORE;   
+    MAO3	= 			IGNORE;    
+    MRO2	= 			IGNORE;   
+    HACO	= 			IGNORE;                       
+    MAOO	= 			IGNORE;    
+    MCRG	= 			IGNORE;   
+    MVKO	= 			IGNORE;                                             
+
+#DEFFIX
+    O2		= 2O;      
+    H2O		= H + 2O;    
+    CO2		= C + 2O;    
+    H2		= 2H;
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/wet.def
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/wet.def	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/wet.def	(revision 2696)
@@ -0,0 +1,109 @@
+#include wet.spc
+#include wet.eqn
+
+{#LANGUAGE Fortran77
+#INTEGRATOR rodas3
+#DRIVER general}
+
+#LOOKATALL
+
+#MONITOR O3;
+
+#INITVALUES
+  CFACTOR = 2.55E+10; {ppb-to-mcm}
+  ALL_SPEC= 1.0E-10;
+{Variable species}
+  NO2        = 0.5 ;
+  NO         = 0.2 ; 
+  O3         = 60.0 ;
+  HNO3       = 1.6594E-06 ;
+  HNO2       = 8.4898E-03 ;
+  H2O2       = 1.5 ;
+  CO         = 200 ;
+  HCHO       = 1.0 ;
+  ALD2       = 0.1 {3.2067E-02} ;
+  PAN        = 0.1 {1.5022E-02} ;
+  MGLY       = 7.3500E-03 ;
+  PAR        = 1.2 ;
+  OLE        = 6.6095E-03 ;
+  ETH        = 1.0 {2.4286E-02} ;
+  TOL        = 3.0184E-02 ;
+  CRES       = 6.4171E-03 ;
+  XYL        = 2.0E-02 ;
+  ROOH       = 7.0E-02 ;
+  SO2        = 3.3371E-02 ;
+  PNA        = 1.6736E-02 ;
+  OPEN       = 1.0E-03 ;
+  ISOP       = 1.0 ;
+  HONO       = 1.0E-3 ;
+  NO3        = 5.0E-05 ;
+  OH         = 6.0E-04 ;
+  HO2        = 2.8900E-02 ;
+  N2O5       = 4.6513E-05 ;
+  C2O3       = 6.1457E-05 ;
+  XO2        = 6.2020E-03 ;
+  XO2N       = 4.0E-3 ;
+  ROR        = 4.2461E-09 ;
+  TO2        = 8.6120E-07 ;
+  NH3        = 1.3637E-02 ;
+  CRO        = 3.1320E-06 ;
+  H2O        = 1.35e+7 ;
+  O2         = 2.1E+8 ;
+  CH4        = 1.7E+3 ;
+  CO2aq      = 3.0E-1 ;
+  HO2aq      = 4.2400E-04 ;
+  H2O2aq     = 9.6683E-01 ;
+  O3aq       = 4.8688E-06 ;
+  HCHOaq     = 2.0245E-02 ;
+  HCOOH      = 0.2 ;
+  HCOOHaq    = 2.0180E-03 ;
+  CH3O2Haq   = 1.1101E-04 ;
+  CH3O2aq    = 9.0994E-05 ;
+  HNO3aq     = 2.5563E-06 ;
+  NO3aq      = 5.2533E-09 ;
+  NH3aq      = 5.8021E-06 ;
+  SO2aq      = 3.0071E-07 ;
+  OHaq       = 4.0141E-05 ;
+  H2Oaq      = 4.3638E+05 ;
+  HPLUSaq    = 1.9654E-01 ;
+  OHaq       = 3.1392E-06 ;
+  HCOOMINaq  = 3.6325E-03 ;
+  O2MINaq    = 6.7840E-05 ;
+  HSO3MINaq  = 5.1188E-05 ;
+  SO32MINaq  = 3.4183E-08 ;
+  NH4aq      = 9.8636E-01 ;
+  NO3aq      = 3.9367E-01 ;
+  FE3PLUSaq  = 7.8548E-03 ;
+  FE2PLUSaq  = 3.1419E-02 ;
+  SO42MINaq  = 2.3564E+00 ;
+  CU2PLUSaq  = 2.1601E-04 ;
+
+#INLINE F77_INIT
+        TSTART = 12.D0*3600.D0
+        TEND = TSTART + 24.D0*3600.D0 * 5
+        DT = 3600.D0
+        TEMP = 288.15
+#ENDINLINE
+
+#INLINE F90_INIT
+        TSTART = 12.D0*3600.D0
+        TEND = TSTART + 24.D0*3600.D0 * 5
+        DT = 3600.D0
+        TEMP = 288.15
+#ENDINLINE
+
+#INLINE MATLAB_INIT
+  global TSTART TEND DT TEMP
+  TSTART = 12.0*3600.0;
+  TEND = TSTART + 24.0*3600.0*5;
+  DT = 3600.0;
+  TEMP = 288.15;
+#ENDINLINE
+
+#INLINE C_INIT
+  TSTART = 12.0*3600.0;
+  TEND = TSTART + 24.0*3600.0*5;
+  DT = 3600.0;
+  TEMP = 288.15;
+#ENDINLINE
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/wet.eqn
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/wet.eqn	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/wet.eqn	(revision 2696)
@@ -0,0 +1,233 @@
+#EQUATIONS
+{ 1.} NO2 + hv =  NO + O              :  8.89E-3*SUN ;
+{ 2.} O {+ O2 + M} = O3               :  ARR2(1.4E+3, 1175.0) ;
+{ 3.} O3 + NO = NO2                   :  ARR2(1.8E-12, -1370.0) ;
+{ 4.} O + NO2 = NO                    :  9.3E-12 ;
+{ 5.} O + NO2   = NO3                 :  ARR2(1.6E-13, 687.0) ;
+{ 6.} O + NO   =  NO2                 :  ARR2(2.2E-13, 602.0) ;
+{ 7.} O3 + NO2 =  NO3                 :  ARR2(1.2E-13, -2450.0) ;
+{ 8.} O3 + hv = O                     :  4.0E-2*RCONST(1) ;
+{ 9.} O3 + hv = O1D                   :  2.8E-3*RCONST(1) ;
+{10.} O1D   = O                       :  ARR2(1.9E+8, 390.0)  ;
+
+{11.} O1D + H2O = 2OH                 :  2.2E-10 ;
+{12.} O3 + OH = HO2                   :  ARR2(1.6E-12, -940.0) ;
+{13.} O3 + HO2 = OH                   :  ARR2(1.4E-14, -580.0) ;
+{14.} NO3 + hv = 0.89 NO2 + 0.89 O 
+                 + 0.11 NO            :  15.5*RCONST(1)  ;
+{15.} NO3 + NO = 2 NO2                :  ARR2(1.3E-11, 250.0) ;
+{16.} NO3 + NO2 = NO + NO2            :  ARR2(2.5E-14, -1230.0) ;
+{17.} NO3 + NO2   =  N2O5             :  ARR2(5.3E-13, 256.0) ;
+{18.} N2O5 + H2O = 2 HNO3             :  1.3E-21 ;
+{19.} N2O5   =  NO3 + NO2             :  ARR2(3.5E+14, -10897.0) ;
+{20.} 2 NO  =  2 NO2                  :  ARR2(1.8E-20, 530.0) ;
+
+
+{21.} NO + NO2 + H2O = 2 HONO         :  4.4E-40 ;
+{22.} OH + NO   =  HONO               :  ARR2(4.5E-13, 806.0) ;
+{23.} HONO + hv =  OH + NO            :  0.17*RCONST(1) ;
+{24.} OH + HONO =  NO2                :  6.6E-12 ;
+{25.} 2 HONO = NO + NO2               :  1.0E-20 ;
+{26.} OH + NO2   =  HNO3              :  ARR2(1.0E-12, 713.0) ;
+{27.} OH + HNO3   =  NO3              :  ARR2(5.1E-15, 1000.0) ;
+{28.} HO2 + NO = OH + NO2             :  ARR2(3.7E-12, 240.0) ;
+{29.} HO2 + NO2   =  PNA              :  ARR2(1.2E-13, 749.0) ;
+{30.} PNA   = HO2 + NO2               :  ARR2(4.8E+13, -10121.0) ;
+
+{31.} OH + PNA = NO2                  :  ARR2(1.3E-12, 380.0) ;
+{32.} 2 HO2 = H2O2                    :  ARR2(5.9E-14, 1150.0)  ;
+{33.} 2 HO2 + H2O = H2O2              :  ARR2(2.2E-38, 5800.0) ;
+{34.} H2O2 + hv = 2 OH                :  7.1E-4*RCONST(1) ;
+{35.} OH + H2O2 = HO2                 :  ARR2(3.1E-12, -187.0) ;
+{36.} OH + CO  = HO2                  :  2.2E-13 ;
+{37.} HCHO + OH  =  HO2 + CO    :  1.0E-11 ;
+{38.} HCHO + hv {+ 2 O2} = 2 HO2 + CO :  3.2E-3*RCONST(1) ;
+{39.} HCHO +  hv = CO                 :  4.2E-3*RCONST(1) ;
+{40.} HCHO + O = OH + HO2 + CO        :  ARR2(3.0E-11, -1550.0) ;
+
+{41.} HCHO + NO3  = HNO3 
+                        + HO2 + CO    :  6.3E-16 ;
+{42.} ALD2 + O  =  C2O3 + OH          :  ARR2(1.2E-11, -986.0) ;
+{43.} ALD2 + OH = C2O3                :  ARR2(7.0E-12, 250.0) ;
+{44.} ALD2 + NO3  = C2O3 + HNO3 :  2.5E-15  ;
+{45.} ALD2 + hv {+ 2 O2} = HCHO + XO2 
+                         + CO + 2 HO2 :  4.5E-4*RCONST(1) ;
+{46.} C2O3 + NO  = HCHO + XO2 
+                       + HO2 + NO2    :  ARR2(5.4E-12, 250.0) ;
+{47.} C2O3 + NO2 = PAN                :  ARR2(8.0E-20, 5500.0) ;
+{48.} PAN = C2O3 + NO2                :  ARR2(9.4E+16, -14000.0) ;
+{49.} 2 C2O3 = 2 HCHO + 2 XO2 + 2 HO2 : 2.0E-12  ;
+{50.} C2O3 + HO2 = 0.79 HCHO 
+   + 0.79 XO2 + 0.79 HO2 + 0.79 OH    :  6.5E-12 ;
+
+{51.} OH = HCHO + XO2 + HO2           :  ARR2(1.1E+2, -1710.0) ;
+{52.} PAR + OH =  0.87 XO2 + 0.13 XO2N 
+                  + 0.11 HO2 + 0.11 ALD2
+                  + 0.76 ROR - 0.11 PAR        :  8.1E-13 ;
+{53.} ROR = 1.1 ALD2 + 0.96 XO2 + 0.94 HO2 + 0.04 XO2N
+            + 0.02 ROR - 2.10 PAR     :  ARR2(1.0E+15, -8000.0) ;
+{54.} ROR = HO2                       :  1.6E+3 ;
+{55.} ROR + NO2 =  PROD               : 1.5E-11  ;
+{56.} O + OLE = 0.63 ALD2 + 0.38 HO2 
+                + 0.28 XO2 + 0.3 CO
+                + 0.2 HCHO + 0.02 XO2N 
+                + 0.22 PAR + 0.2 OH   :  ARR2(1.2E-11, -324.0) ;
+{57.} OH + OLE = HCHO + ALD2 + XO2 
+                 + HO2 - PAR          :  ARR2(5.2E-12, 504.0) ;
+{58.} O3 + OLE = 0.5 ALD2 + 0.74 HCHO 
+                 + 0.33 CO + 0.44 HO2 
+                 + 0.22 XO2
+                 + 0.1 OH - PAR       :   ARR2(1.4E-14, -2105.0)  ;
+{59.} NO3 + OLE = 0.91 XO2 + HCHO 
+                  + ALD2 + 0.09 XO2N                          
+                  + NO2 - PAR         :  7.7E-15 ;
+{60.} O + ETH = HCHO + 0.7 XO2 + CO + 1.7 HO2 + 0.3 OH    :  ARR2(1.0E-11, -792.0) ;
+
+{61.} OH + ETH = XO2 + 1.56 HCHO + HO2 + 0.22 ALD2        :  ARR2(2.0E-12, 411.0)  ;
+{62.} O3 + ETH = HCHO + 0.42 CO + 0.12 HO2                :  ARR2(1.3E-14, -2633.0) ;
+{63.} OH + TOL = 0.08 XO2 + 0.36 CRES 
+                 + 0.44 HO2 + 0.56 TO2                    :  ARR2(2.1E-12, 322.0) ;
+{64.} TO2 + NO =  0.9 NO2 + 0.9 OPEN + 0.9 HO2            :  8.1E-12 ;
+{65.} TO2 = HO2 + CRES                                    :  4.2 ;
+{66.} OH + CRES = 0.4 CRO + 0.6 XO2 + 0.6 HO2 + 0.3 OPEN  :  4.1E-11  ;
+{67.} NO3 + CRES = CRO + HNO3                             :  2.2E-11 ;
+{68.} CRO + NO2 = PROD                                    :  1.4E-11 ;
+{69.} OH + XYL = 0.7 HO2 + 0.5 XO2 + 0.2 CRES + 0.8 MGLY
+                 + 1.10 PAR + 0.3 TO2                     :  ARR2(1.7E-11, 116.0) ;
+{70.} OH + OPEN = XO2 + C2O3 + 2 HO2 + 2 CO + HCHO        :  3.0E-11 ;
+
+{71.} OPEN + hv = C2O3 + CO + HO2                         :  6.0E-3*RCONST(1) ;
+{72.} O3 + OPEN = 0.03 ALD2 + 0.62 C2O3 
+                  + 0.7 HCHO + 0.03 XO2 + 0.69 CO 
+                  + 0.08 OH + 0.76 HO2 + 0.2 MGLY         : ARR2(5.4E-17, -500.0)  ;
+{73.} OH + MGLY =  XO2 + C2O3                             : 1.7E-11 ;
+{74.} MGLY + hv = C2O3 + CO + HO2                         : 1.86E-2*RCONST(1)  ;
+{75.} O + ISOP =  0.6 HO2 + 0.8 ALD2 + 0.55 OLE + 0.5 XO2
+                  + 0.5 CO + 0.45 ETH + 0.9 PAR           :   1.8E-11  ;
+{76.} OH + ISOP = HCHO + XO2 + 0.67 HO2 
+                  + 0.4 MGLY + 0.2 C2O3
+                  + ETH + 0.2 ALD2 + 0.13 XO2N            :   9.6E-11  ;
+{77.} O3 + ISOP = HCHO + 0.4 ALD2 + 0.55 ETH + 0.2 MGLY 
+                  + 0.06 CO + 0.1 PAR + 0.44 HO2 + 0.1 OH :  1.2E-17 ;
+{78.} NO3 + ISOP =  XO2N                                  :  3.2E-13 ;
+{79.} XO2 + NO = NO2                                      :  8.1E-12 ;
+{80.} 2 XO2 =  PROD                                       :  ARR2(1.7E-14, 1300.0) ;
+{81.} XO2N + NO =  PROD                                   :  6.8E-13 ;
+ 
+{62/RG71}      SO2  + OH  = HO2  + PROD  :           1.0870e-12 ;
+{63/RG72}      SO2  = PROD  :                        1.3833e-06 ;
+
+{Methane and Methylperoxyl Radical Reactions}
+{}  CH4 + OH = CH3O2      :                        ARR2(2.4E-12,-1710.0) ;
+{}  CH3O2 + NO = CH3O + NO2 :                      ARR2(4.15E-12,180.0)  ;
+{}  CH3O2 + HO2 = PROD :                           ARR2(1.7E-13,1000.0) ;
+{}  2 CH3O2 = 0.76 CH3O + 0.62 HCHO + PROD :       ARR2(1.62E-13, 220.0) ;
+{}  CH3O + O2 = HCHO + HO2 :                       ARR2(7.12E-14,-1080.0);
+
+{82/RE21}      HO2  = HO2aq :                        3.3000e-01 ;
+{83/RE22}      HO2aq = HO2 :                         2.2492e+01 ;   
+{84/RE31}      H2O2  = H2O2aq  :                     3.3000e-01 ;     
+{85/RE32}      H2O2aq = H2O2  :                      6.0790e-01 ;     
+{86/RE41}      O3  = O3aq :                          1.0500e-02 ;        
+{87/RE42}      O3aq = O3  :                          1.3012e+05 ;       
+{88/RE51}      HCHO  = HCHOaq :                      2.4000e-01 ; 
+{89/RE52}      HCHOaq = HCHO :                       5.1931e+00 ;  
+{90/RE61}      HCOOH  = HCOOHaq  :                   2.4000e-01 ;       
+{91/RE62}      HCOOHaq = HCOOH :                     8.8422e+00 ;        
+{92/RE71}      ROOH  = CH3O2Haq :                    2.4000e-01 ;    
+{93/RE72}      CH3O2Haq = ROOH  :                    1.4871e+02 ;   
+{94/RE81}      XO2  = CH3O2aq :                      2.4000e-01 ;   
+{95/RE82}      CH3O2aq = XO2  :                      1.6358e+01 ;  
+{96/RE91}      HNO3  = HNO3aq  :                     2.4000e-01 ;  
+{97/RE92}      HNO3aq = HNO3  :                      1.5579e-01 ;  
+{98/RE101}     NO3  = NO3aq  :                       2.4000e-01 ;  
+{99/RE102}     NO3aq = NO3 :                         2.1811e+03 ;   
+{100/RE111}    NH3  = NH3aq :                        2.4000e-01 ; 
+{101/RE112}    NH3aq = NH3  :                        4.3622e+02 ;
+{102/RE121}    SO2  = SO2aq :                        2.4000e-01 ;         
+{103/RE122}    SO2aq = SO2 :                         2.6599e+04 ;         
+{104/RE131}    OH  = OHaq :                          2.4000e-01 ;         
+{105/RE132}    OHaq = OH  :                          3.6351e+00 ;        
+{106/RE141}    N2O5  = HNO3aq + HNO3aq :             7.5000e-02 ;
+{107/RE151}    H2Oaq = HPLUSaq + OHMINaq   :         2.3636e-05 ; 
+{108/RE152}    HPLUSaq + OHMINaq = H2Oaq  :          7.1958e-04 ; 
+{109/RE171}    HCOOHaq = HPLUSaq + HCOOMINaq  :      8.6000e+06 ;   
+{110/RE172}    HPLUSaq + HCOOMINaq = HCOOHaq  :      2.6016e-04 ;  
+{111/RE181}    HO2aq = HPLUSaq + O2MINaq :           1.6000e+05 ;      
+{112/RE182}    HPLUSaq + O2MINaq = HO2aq  :          5.5353e-05 ;    
+{113/RE191}    SO2aq = HSO3MINaq + HPLUSaq :         3.6000e+06 ;  
+{114/RE192}    HSO3MINaq + HPLUSaq = SO2aq  :        1.6606e-06 ;
+{115/RE201}    HSO3MINaq = SO32MINaq + HPLUSaq  :    1.0000e+04 ;   
+{116/RE202}    SO32MINaq + HPLUSaq = HSO3MINaq  :    8.3029e-04 ;  
+{117/RE211}    NH3aq = NH4aq + OHMINaq  :            6.0000e+05 ;     
+{118/RE212}    NH4aq + OHMINaq = NH3aq :             1.8820e-04 ;     
+{119/RE221}    HNO3aq = NO3MINaq + HPLUSaq :         2.2000e+09 ;    
+{120/RE222}    NO3MINaq + HPLUSaq = HNO3aq  :        7.7494e-07 ;  
+
+{121/RW01}      FE3PLUSaq = FE2PLUSaq + OHaq :       0.4583E-03  ; 
+{122/RW02}      H2O2aq = OHaq + OHaq :               0.7219E-05 ;         
+{123/RW03 }     HCHOaq + OHaq = HCOOHaq 
+                      + HO2aq + H2Oaq :              0.1107E-04  ;   
+{124/RW05}      HCOOMINaq + OHaq = O2MINaq + CO2aq : 0.1771E-04  ;   
+{125/RW06}      HCOOHaq + OHaq = O2MINaq 
+                    + HPLUSaq + CO2aq :              0.7196E-06  ; 
+{126/RW07}      HSO3MINaq + OHaq = SO42MINaq + HPLUSaq :  0.2491E-04  ;  
+{127/RW08}      HMSAaq + OHaq = SO42MINaq 
+                      + HCHOaq + HPLUSaq :            0.5535E-05  ;
+{128/RW09}      FE2PLUSaq + OHaq = FE3PLUSaq
+                      + OHMINaq:                      0.2380E-05  ;
+{129/RW10}      H2O2aq + OHaq = H2Oaq + HO2aq  :      0.1495E-06  ;      
+{130/RW11}      O3aq + OHaq = HO2aq  :                0.1661E-04  ;             
+
+{131/RW13}      O2MINaq + FE2PLUSaq = FE3PLUSaq
+                     + H2O2aq + OHMINaq + OHMINaq :   0.5535E-07  ;
+{132/RW14}      O2MINaq + FE3PLUSaq = FE2PLUSaq :     0.8303E-06  ;                      
+{133/RW15}      O2MINaq + CUPLUSaq = CU2PLUSaq 
+                  + H2O2aq + OHMINaq + OHMINaq :      0.4982E-04 ;
+{134/RW16}      O2MINaq + CU2PLUSaq = CUPLUSaq  :     0.4428E-04 ;                    
+{135/RW17}      O2MINaq + O3aq = OHaq + OHMINaq  :    0.8303E-05 ;                    
+{136/RW18}      HO2aq   + FE2PLUSaq = FE3PLUSaq 
+                    + H2O2aq + OHMINaq   :            0.6642E-08  ;   
+{137/RW19}      HO2aq + FE3PLUSaq = FE2PLUSaq + HPLUSaq : 0.5535E-10  ;              
+{138/RW20}      HO2aq + CUPLUSaq = CU2PLUSaq 
+                    + H2O2aq + OHMINaq  :             0.5535E-05 ;   
+{139/RW21}      HO2aq + CU2PLUSaq = CUPLUSaq + HPLUSaq :  0.2768E-06  ;              
+{140/RW22}      H2O2aq  + HSO3MINaq = SO42MINaq 
+                    + H2Oaq + HPLUSaq  :              0.5535E-14  ;    
+{141/RW23}      H2O2aq  + FE2PLUSaq = FE3PLUSaq 
+                   + OHaq + OHMINaq :                 0.5535E-14  ; 
+{142/RW24}      H2O2aq  + CUPLUSaq = CU2PLUSaq 
+                   + OHaq + OHMINaq  :                0.2214E-08  ;
+{143/RW25}      CUPLUSaq = CU2PLUSaq + O2MINaq :      0.2500E-03  ;            
+{144/RW26}      CUPLUSaq + FE3PLUSaq = CU2PLUSaq 
+                   + FE2PLUSaq :                      0.1661E-06 ;
+{145/RW27}      CUPLUSaq + O3aq = CU2PLUSaq
+                   + OHaq + OHMINaq :                 0.5535E-07  ;
+{146/RW28}      FE2PLUSaq + O3aq = FE3PLUSaq 
+                   + OHaq + OHMINaq :                 0.4539E-08  ;
+{147/RW29}      FE3PLUSaq + HSO3MINaq = FE2PLUSaq 
+                      + SO42MINaq + HPLUSaq  :        0.5535E-14  ;
+{148/RW30}      O3aq + HSO3MINaq = SO42MINaq + HPLUSaq  : 0.1716E-08  ;              
+{149/RW31}      O3aq + SO32MINaq = SO42MINaq  :       0.5535E-05  ;                 
+{150/RW32}      O3aq = H2O2aq  :                      0.2355E-04  ;          
+{151/RW34}      HO2aq + O2MINaq = H2O2aq + OHMINaq :  0.5535E-06  ;            
+{152/RW35}      HO2aq + HO2aq = H2O2aq  :             0.4594E-08  ;                    
+{153/RW39}      SO32MINaq + HCHOaq = HMSAaq 
+                     + OHMINaq  :                     0.1384E-06  ;      
+{154/RW40}      HMSAaq + OHMINaq = SO32MINaq 
+                     + HCHOaq :                       0.1993E-10  ;      
+{155/RW42}      CH3O2aq + O2MINaq = CH3O2Haq 
+                     + OHMINaq  :                     0.2768E-06  ;   
+{156/RW43}      CH3O2Haq + OHaq = CH3O2aq + H2Oaq  :  0.1495E-06  ;       
+{157/RW44}      CH3O2Haq + OHaq = HCHOaq + OHaq  :    0.1052E-06  ; 
+
+{CO2 reactions}
+CO2aq = HPLUSaq + HCO3MINaq :  1.0E-4 ;
+HPLUSaq + HCO3MINaq = CO2aq :  1.2178E-12 ;
+
+{CO2aq + H2Oaq = H2CO3aq :                    0*3.0E-2 ;
+H2CO3aq = CO2aq + H2Oaq :                     0*1.19E+1 ;
+H2CO3aq = HPLUSaq + HCO3MINaq :             0*8.0E+6  ;
+HPLUSaq + HCO3MINaq = H2CO3aq :             0*4.7E+10 ;
+HPLUSaq + HCO3MINaq  = CO2aq :              0*1.5E+4 ; 
+CO2aq  + H2Oaq = HPLUSaq + HCO3MINaq :      0*1.0E-2 ;} 
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/wet.spc
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/wet.spc	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/models/wet.spc	(revision 2696)
@@ -0,0 +1,87 @@
+#include atoms
+
+#DEFVAR
+    NO          = N + O ;       {nitric oxide}
+    NO2         = N + 2O ;      {nitrogen dioxide}
+    NO3         = N + 3O ;      {nitrogen trioxide}
+    N2O5        = 2N + 5O ;     {dinitrogen pentoxide}
+    HONO        = H + 2O + N ;  {nitrous acid}
+    HNO3        = H + N + 3O ;  { nitric acid }
+    PNA         = H + 4 O + N ; {HO2NO2 peroxynitric acid}
+    O1D         = O ;           {oxygen atomic first singlet state}
+    O           = O ;           {oxygen atomic ground state (3P)}
+    OH          = O + H ;       {hydroxyl radical}
+    O3          = 3O ;          {ozone}
+    HO2         = H + 2O ;      {perhydroxyl radical}
+    H2O2        = 2H + 2O ;     {hydrogen peroxide}
+    HCHO        = C + 2H + O ;  {formalydehyde}
+    ALD2        = IGNORE ;      {high molecular weight aldehides}
+    C2O3        = 2C + 3H + 3O ; {CH3CO(O)OO peroxyacyl radical}
+    PAN         = 2C + 3H + 5O + N ; {CH3C(O)OONO2, peroxyacyl nitrate}
+    PAR         = IGNORE ;      {parafin carbon bond}
+    ROR         = IGNORE ;      {secondary organic oxy radical}
+    OLE         = IGNORE ;      {olefinic carbon bond}
+    ETH         = 2C + 4H ;     {CH2=CH2 ethene}
+    TOL         = 7C + 8H ;     {C6H5-CH3 toluene}
+    CRES        = IGNORE ;      {cresol and h.m.w. phenols}
+    TO2         = IGNORE ;      {toluene-hydroxyl radical adduct}
+    CRO         = IGNORE ;      {methylphenoxy radical}
+    OPEN        = IGNORE ;      {h.m.w. aromatic oxidation ring fragment}
+    XYL         = 8C + 10H ;    {C6H4-(CH3)2 xylene}
+    MGLY        = 3C + 4H + 2O ; {CH3C(O)C(O)H methylglyoxal}
+    ISOP        = IGNORE ;      {isoprene}
+    XO2         = IGNORE ;      {NO-to-NO2 operation}
+    XO2N        = IGNORE ;      {NO-to-nitrate operation}          
+    CO          = C + O ;       {carbon monoxide}
+    HNO2        = H + N + 2O ;
+    ROOH        = IGNORE ;
+    SO2         = S + 2O ;
+    NH3         = N + 3H ;
+    CH3O2       = C + 3H + 2O ;
+    CH3O        = C + 3H + O ;
+    CH3OOH      = 4H + C + 2O ;
+    CH3OH       = 4H + C + O ;
+    HCOOH       = 2H + C + 2O ;
+
+
+HCHOaq = IGNORE ;
+HMSAaq = IGNORE ;
+OHMINaq  = IGNORE ;
+SO32MINaq  = IGNORE ;
+CH3O2aq = IGNORE ;
+O2MINaq = IGNORE ;
+O3aq = IGNORE ;
+HSO3MINaq = IGNORE ;
+SO42MINaq = IGNORE ;
+HPLUSaq = IGNORE ;
+H2O2aq  = IGNORE ;
+HO2aq  = IGNORE ;
+OHaq = IGNORE ;
+CH3O2Haq = IGNORE ;
+CUPLUSaq = IGNORE ;
+CU2PLUSaq = IGNORE ;
+FE2PLUSaq = IGNORE ;
+FE3PLUSaq = IGNORE ;
+HCOOHaq  = IGNORE ;
+HNO3aq = IGNORE ;
+NO3aq  = IGNORE ;
+HCOOMINaq  = IGNORE ;
+SO2aq  = IGNORE ;
+NH3aq = IGNORE ;
+NH4aq = IGNORE ;
+NO3MINaq = IGNORE ;
+HCO3MINaq = IGNORE ; 
+CO32MINUSaq = IGNORE ;
+H2CO3aq     = IGNORE ;
+
+
+#DEFFIX
+    H2O         = H + 2O ;      {water}
+    CO2aq       = C + 2O ;
+    H2Oaq       = H + 2O ;      {water}
+    H2          = 2H ;          {molecular hydrogen}
+    O2          = 2O ;          {molecular oxygen}
+    N2          = 2N ;          {molecular nitrogen}
+    CH4         = C + 4H ;      {methane}
+    CO2         = C + 2O ;      {carbon dioxide}
+    M           = IGNORE ;      {third body}
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/readme
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/readme	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/readme	(revision 2696)
@@ -0,0 +1,65 @@
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  KPP - symbolic chemistry Kinetics PreProcessor, Version 2.1
+        (http://www.cs.vt.edu/~asandu/Software/KPP)
+  KPP is distributed under GPL, the general public licence
+        (http://www.gnu.org/copyleft/gpl.html)
+    (C) 1995-1997, V. Damian & A. Sandu, CGRER, Univ. Iowa
+    (C) 1997-2005, A. Sandu, Michigan Tech, Virginia Tech
+        with contributions from:
+        R. Sander, Max-Planck Institute for Chemistry, Mainz, Germany
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+To get started with KPP:  Read user's manual (doc/kpp-UserManual.pdf)
+------------------------
+
+To install KPP:
+---------------
+
+1. Make sure that FLEX (public domain lexical analizer) is installed
+   on your machine. Type "flex --version" to test this.
+
+2. Note down the exact path name where the FLEX library is installed. The
+   library is called:
+	libfl.a or libfl.sh 
+
+3. Define the KPP_HOME environment variable to point to the complete 
+   path location of KPP. If, for example, KPP is installed in $HOME/kpp:
+
+   - with C shell (or tcsh) edit the file .cshrc (or .tcshrc) in your
+     home directory and add:
+	setenv KPP_HOME $HOME/kpp
+	set path=( $path $HOME/kpp/bin )
+     Execute 'source .cshrc' (or 'source .tcshrc') to make sure these
+     changes are in effect.
+
+   - with bash shell edit the file .bashrc in your home directory and add:
+	export KPP_HOME=$HOME/kpp
+	export PATH=$PATH:$HOME/kpp/bin
+
+3. In KPP_HOME directory edit: 
+	Makefile.defs 
+   and follow the instructions included to specify the compiler, 
+   the location of the FLEX library, etc.
+ 
+4. In KPP_HOME directory build the sources using:
+	make
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+To clean the KPP installation: 
+------------------------------
+
+1. Delete the KPP object files with:
+	make clean
+
+2. Delete the whole distribution (including the KPP binaries) with:
+	make distclean
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+If you have any problems please send the detailed error report and the machine
+environment to:
+
+	sandu@cs.vt.edu
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/site-lisp/kpp.el
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/site-lisp/kpp.el	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/site-lisp/kpp.el	(revision 2696)
@@ -0,0 +1,130 @@
+;; kpp.el --- kpp mode for GNU Emacs 21
+;; (c) Rolf Sander <sander@mpch-mainz.mpg.de>
+;; Time-stamp: <2005-02-15 15:18:42 sander>
+ 
+;; to activate it copy kpp.el to a place where emacs can find it and then
+;; add "(require 'kpp)" to your .emacs startup file
+
+;; known problem:
+;; ":" inside comments between reaction products confuses font-lock
+ 
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2 of the License, or
+;; (at your option) any later version.
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; start kpp-mode automatically when loading a *.eqn, *.spc, or *.kpp file
+(setq auto-mode-alist
+  (cons '("\\.eqn\\'" . kpp-mode) auto-mode-alist))
+(setq auto-mode-alist
+  (cons '("\\.spc\\'" . kpp-mode) auto-mode-alist))
+(setq auto-mode-alist
+  (cons '("\\.kpp\\'" . kpp-mode) auto-mode-alist))
+
+(setq kpp-font-lock-keywords
+ (list
+  '("^\\([^=\n]*=[^:\n]*\\):[^;\n]*;" 1 font-lock-constant-face) ; reaction
+  ;; alternatively, use another color for rate constant:
+  ;; '("^\\([^=\n]*=[^:\n]*\\):\\([^;\n]*\\);"
+  ;;     (1 font-lock-constant-face) (2 font-lock-keyword-face))
+  '("<[A-z0-9_#]+>" 0 font-lock-variable-name-face t) ; equation tag
+  '("{[^}\n]*}"     0 font-lock-comment-face t)       ; comment
+  '("!.*"           0 font-lock-comment-face t)       ; f90 comment
+  '("{@[^}]+}"      0 font-lock-doc-face t)           ; alternative LaTeX text
+  '("{$[^}]+}"      0 font-lock-string-face t)        ; alternative LaTeX text
+  '("{&[^}]+}"      0 font-lock-builtin-face t)       ; BibTeX reference
+  '("{%[A-z0-9#]+}" 0 font-lock-type-face t)          ; marker
+  ;; KPP sections (Tab. 3 in thesis), commands (Tab. 13 in thesis), and
+  ;; fragments (Tab. 17 in thesis)
+  (cons (concat 
+         "\\(#ATOMS\\|#CHECKALL\\|#CHECK\\|#DEFFIX\\|#DEFRAD"
+         "\\|#DEFVAR\\|#DOUBLE\\|#DRIVER\\|#DUMMYINDEX"
+         "\\|#ENDINLINE\\|#EQNTAGS\\|#EQUATIONS\\|#FUNCTION"
+         "\\|#HESSIAN\\|#INCLUDE\\|#INITIALIZE"
+         "\\|#INITVALUES\\|#INLINE\\|#INTEGRATOR\\|#INTFILE"
+         "\\|#JACOBIAN\\|#LANGUAGE\\|#LOOKATALL"
+         "\\|#LOOKAT\\|#LUMP\\|#MEX\\|#MODEL\\|#MONITOR"
+         "\\|#REORDER\\|#RUN\\|#SETFIX\\|#SETRAD\\|#SETVAR"
+         "\\|#SPARSEDATA\\|#STOCHASTIC\\|#STOICMAT\\|#TRANSPORTALL"
+         "\\|#TRANSPORT\\|#USE\\|#USES\\|#WRITE_ATM"
+         "\\|#WRITE_MAT\\|#WRITE_OPT\\|#WRITE_SPC"
+         "\\|#XGRID\\|#YGRID\\|#ZGRID\\)"
+         ) 'font-lock-keyword-face)
+  '("^//.*"         0 font-lock-comment-face t) ; comment
+  )
+)
+
+; comment a region (adopted from wave-comment-region)
+
+(defvar kpp-comment-region "// "
+  "*String inserted by \\[kpp-comment-region] at start of each line in region.")
+
+(defun kpp-comment-region (beg-region end-region arg)
+  "Comments every line in the region.
+Puts kpp-comment-region at the beginning of every line in the region. 
+BEG-REGION and END-REGION are args which specify the region boundaries. 
+With non-nil ARG, uncomments the region."
+  (interactive "*r\nP")
+  (let ((end-region-mark (make-marker)) (save-point (point-marker)))
+    (set-marker end-region-mark end-region)
+    (goto-char beg-region)
+    (beginning-of-line)
+    (if (not arg)			;comment the region
+	(progn (insert kpp-comment-region)
+	       (while (and  (= (forward-line 1) 0)
+			    (< (point) end-region-mark))
+		 (insert kpp-comment-region)))
+      (let ((com (regexp-quote kpp-comment-region))) ;uncomment the region
+	(if (looking-at com)
+	    (delete-region (point) (match-end 0)))
+	(while (and  (= (forward-line 1) 0)
+		     (< (point) end-region-mark))
+	  (if (looking-at com)
+	      (delete-region (point) (match-end 0))))))
+    (goto-char save-point)
+    (set-marker end-region-mark nil)
+    (set-marker save-point nil)))
+
+(defvar kpp-mode-map () 
+  "Keymap used in kpp mode.")
+
+(if kpp-mode-map
+    ()
+  (setq kpp-mode-map (make-sparse-keymap))
+  (define-key kpp-mode-map "\C-c;"    'kpp-comment-region)
+  ;; TAB inserts 8 spaces, not the TAB character
+  (define-key kpp-mode-map (kbd "TAB")
+    '(lambda () (interactive) (insert "        ")))
+)
+
+(defun kpp-mode ()
+  "Major mode for editing kpp code.
+Turning on kpp mode calls the value of the variable `kpp-mode-hook'
+with no args, if that value is non-nil.
+
+Command Table:
+\\{kpp-mode-map}"
+  (interactive)
+  (make-local-variable 'font-lock-defaults)
+  (setq font-lock-defaults '((kpp-font-lock-keywords) t t))
+  (make-local-variable 'comment-start)
+  (setq comment-start "{")
+  (make-local-variable 'comment-end)
+  (setq comment-end "}")
+  (use-local-map kpp-mode-map)
+  (setq mode-name "kpp")
+  (setq major-mode 'kpp-mode)
+  (turn-on-font-lock)
+  (set-syntax-table (copy-syntax-table))
+  (modify-syntax-entry ?_ "w") ; the underscore can be part of a word
+  (auto-fill-mode 0)           ; no automatic line breaks
+  (run-hooks 'kpp-mode-hook)
+)
+
+(provide 'kpp)
+
+;; kpp.el ends here
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/src/Makefile
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/src/Makefile	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/src/Makefile	(revision 2696)
@@ -0,0 +1,87 @@
+########################################################################################
+#
+#  KPP - The Kinetic PreProcessor
+#        Builds simulation code for chemical kinetic systems
+#
+#  Copyright (C) 1995-1996 Valeriu Damian and Adrian Sandu
+#  Copyright (C) 1997-2005 Adrian Sandu
+#      with contributions from: Mirela Damian, Rolf Sander 
+#
+#  KPP is free software; you can redistribute it and/or modify it under the
+#  terms of the GNU General Public License as published by the Free Software
+#  Foundation (http://www.gnu.org/copyleft/gpl.html); either version 2 of the
+#  License, or (at your option) any later version.
+#
+#  KPP is distributed in the hope that it will be useful, but WITHOUT ANY
+#  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+#  FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+#  details.
+#
+#  You should have received a copy of the GNU General Public License along
+##  with this program; if not, consult http://www.gnu.org/copyleft/gpl.html or
+#  write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+#  Boston, MA  02111-1307,  USA.
+#
+#  Adrian Sandu
+#  Computer Science Department
+#  Virginia Polytechnic Institute and State University
+#  Blacksburg, VA 24060
+#  E-mail: sandu@cs.vt.edu
+#
+#######################################################################################
+
+include ../Makefile.defs
+
+BISON=bison -d 
+CFLAGS=`cat ../cflags`
+
+all: kpp
+
+.c.o:
+	@echo "  "$(CC) $(CC_FLAGS) $(CFLAGS) -c $*.c
+	@$(CC) $(CC_FLAGS) $(CFLAGS) -I$(INCLUDE_DIR) -c $*.c
+
+OBJS  = \
+	y.tab.o \
+	lex.yy.o \
+	scanner.o \
+	scanutil.o \
+	kpp.o \
+	gen.o \
+	code.o \
+	code_c.o \
+	code_f77.o \
+	code_f90.o \
+	code_matlab.o \
+	debug.o
+
+kpp:    $(OBJS)
+	@echo "  "$(CC) $(CC_FLAGS) $(CFLAGS) $(OBJS) -L$(FLEX_LIB_DIR) -lfl -o kpp
+	@$(CC) $(CC_FLAGS) $(CFLAGS) $(OBJS) -L$(FLEX_LIB_DIR) -lfl -o kpp
+	@mv kpp ../bin
+
+clean:  
+	@rm -f *~ *.o cflags 
+
+maintainer-clean: clean
+	@rm -f lex.yy.c y.tab.c y.tab.h
+
+lex.yy.c: scan.l scan.h
+	@echo "  "$(FLEX) scan.l
+	@$(FLEX) -olex.yy.c scan.l 
+
+y.tab.c: scan.y scan.h
+	@echo "  "$(BISON) scan.y
+	@$(BISON) -o y.tab.c scan.y
+
+flex: lex.yy.c y.tab.c
+
+scanner.o: scan.h gdata.h
+scanutil.o: scan.h
+kpp.o: gdata.h
+gen.o: gdata.h code.h
+debug.o: gdata.h
+code.o: gdata.h code.h
+
+code_c.o: gdata.h code.h
+code_f.o: gdata.h code.h
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/src/code.c
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/src/code.c	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/src/code.c	(revision 2696)
@@ -0,0 +1,817 @@
+/******************************************************************************
+
+  KPP - The Kinetic PreProcessor
+        Builds simulation code for chemical kinetic systems
+
+  Copyright (C) 1995-1996 Valeriu Damian and Adrian Sandu
+  Copyright (C) 1997-2005 Adrian Sandu
+
+  KPP is free software; you can redistribute it and/or modify it under the
+  terms of the GNU General Public License as published by the Free Software
+  Foundation (http://www.gnu.org/copyleft/gpl.html); either version 2 of the
+  License, or (at your option) any later version.
+
+  KPP is distributed in the hope that it will be useful, but WITHOUT ANY
+  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+  FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+  details.
+
+  You should have received a copy of the GNU General Public License along
+  with this program; if not, consult http://www.gnu.org/copyleft/gpl.html or
+  write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+  Boston, MA  02111-1307,  USA.
+
+  Adrian Sandu
+  Computer Science Department
+  Virginia Polytechnic Institute and State University
+  Blacksburg, VA 24060
+  E-mail: sandu@cs.vt.edu
+
+******************************************************************************/
+
+
+#include "gdata.h"
+#include "code.h"
+#include <unistd.h>
+#include <string.h>
+
+/*            NONE, ADD, SUB, MUL, DIV, POW, CONST, ELM, VELM, MELM, EELM  */
+int PRI[] = {   10,   1,   1,   2,   2,   3,    10,  10,   10,   10,   10 };
+
+void (*WriteElm)( NODE *n );
+void (*WriteSymbol)( int op );
+void (*WriteAssign)( char* lval, char* rval );
+void (*WriteComment)( char *fmt, ...  );
+void (*Declare)( int v );
+void (*ExternDeclare)( int v );
+void (*GlobalDeclare)( int v );
+void (*InitDeclare)( int var, int nv, void * values );
+void (*DeclareConstant)( int v, char *val );
+void (*FunctionStart)( int f, int *vars );
+void (*FunctionPrototipe)( int f, ... );
+void (*FunctionBegin)( int f, ... );
+void (*FunctionEnd)( int f );
+
+NODE * substList;
+int substENABLED = 1;
+int crtop = NONE;
+char *outBuf;
+char *outBuffer;
+
+VARIABLE cnst = { "", CONST, REAL, 0, 0 };
+VARIABLE expr = { "", EELM, 0, 0, 0 };
+VARIABLE *varTable[ MAX_VAR ] = { &cnst, &expr };
+
+int IsConst( NODE *n, float val );
+NODE * BinaryOp( int op, NODE *n1, NODE *n2 );
+int NodeCmp( NODE *n1, NODE *n2 );
+NODE * NodeCopy( NODE *n1 );
+void WriteNode( NODE *n );
+void WriteOp( int op );
+void ExpandElm( NODE * n );
+int ExpandNode( NODE *n, int lastop );
+NODE * LookUpSubst( NODE *n );
+
+FILE * param_headerFile   = 0;
+FILE * initFile = 0; /*  mz_rs_20050117 */
+FILE * driverFile = 0;
+FILE * integratorFile = 0;
+FILE * linalgFile = 0;
+FILE * functionFile = 0;
+FILE * jacobianFile = 0;
+FILE * rateFile = 0;
+FILE * stoichiomFile = 0;
+FILE * utilFile = 0;
+FILE * sparse_dataFile = 0;
+FILE * sparse_jacFile = 0;
+FILE * sparse_hessFile = 0;
+FILE * sparse_stoicmFile = 0;
+FILE * stochasticFile = 0;
+FILE * global_dataFile = 0;
+FILE * hessianFile = 0;
+FILE * mapFile = 0;
+FILE * makeFile = 0;
+FILE * monitorFile = 0;
+FILE * mex_funFile = 0;
+FILE * mex_jacFile = 0;
+FILE * mex_hessFile = 0;
+
+FILE * currentFile;
+
+int ident = 0;
+
+FILE * UseFile( FILE * file )
+{
+FILE *oldf;
+    if (file == NULL) {
+      printf("\n\nKPP Warning (internal): trying to UseFile NULL file pointer!\n");
+    }
+    oldf = currentFile;
+    currentFile = file; 
+    return oldf;
+}
+  
+void OpenFile( FILE **fpp, char *name, char * ext, char * identity )
+{
+char bufname[200];
+char buf[200];
+time_t t;
+int blength;
+
+  time( &t );
+  sprintf( bufname, "%s%s", name, ext );  
+  if( *fpp ) fclose( *fpp );
+  *fpp = fopen( bufname, "w" );
+  if ( *fpp == 0 ) 
+    FatalError(3,"%s: Can't create file", bufname );
+ 
+  UseFile( *fpp );
+  
+  WriteDelim();
+  WriteComment("");
+  WriteComment("%s",identity);
+  WriteComment("");
+  WriteComment("Generated by KPP-%s symbolic chemistry Kinetics PreProcessor",
+                KPP_VERSION );
+  WriteComment("      (http://www.cs.vt.edu/~asandu/Software/KPP)");
+  WriteComment("KPP is distributed under GPL, the general public licence");
+  WriteComment("      (http://www.gnu.org/copyleft/gpl.html)");
+  WriteComment("(C) 1995-1997, V. Damian & A. Sandu, CGRER, Univ. Iowa" );
+  WriteComment("(C) 1997-2005, A. Sandu, Michigan Tech, Virginia Tech" );
+  WriteComment("    With important contributions from:" );
+  WriteComment("       M. Damian, Villanova University, USA");
+  WriteComment("       R. Sander, Max-Planck Institute for Chemistry, Mainz, Germany");
+  WriteComment("");
+  WriteComment("%-20s : %s", "File", bufname );
+  strcpy( buf, (char*)ctime( &t ) ); 
+  buf[ (int)strlen(buf) - 1 ] = 0;
+  WriteComment("%-20s : %s", "Time", buf );
+  WriteComment("%-20s : %s", "Working directory", getcwd(buf, 200) );
+  WriteComment("%-20s : %s", "Equation file", eqFileName );
+  WriteComment("%-20s : %s", "Output root filename", rootFileName );
+  WriteComment("");
+  WriteDelim();
+  NewLines(1);  
+/* Include Headers in .c  Files, except Makefile */
+  blength = strlen(bufname);
+  if ( (bufname[blength-2]=='.')&&(bufname[blength-1]=='c') ) {
+    C_Inline("#include <stdio.h>");
+    C_Inline("#include <stdlib.h>");
+    C_Inline("#include <math.h>");
+    C_Inline("#include <string.h>");
+    C_Inline("#include \"%s_Parameters.h\"", rootFileName);
+    C_Inline("#include \"%s_Global.h\"", rootFileName);
+    if( useJacSparse )
+       C_Inline("#include \"%s_Sparse.h\"", rootFileName);
+    }   
+  NewLines(2);
+}
+
+void AllowBreak()
+{
+  *(outBuffer-1) |= 0x80;
+}
+
+void bprintf( char *fmt, ... )
+{
+Va_list args;
+
+  if ( !fmt ) return;
+  Va_start( args, fmt );
+  vsprintf( outBuffer, fmt, args );
+  va_end( args );
+  outBuffer += strlen( outBuffer ); 
+}
+
+void FlushBuf()
+{
+char *p;
+
+  p = outBuf;
+  while( *p )
+    *p++ &= ~0x80;
+  fprintf( currentFile, outBuf );
+  outBuffer = outBuf;
+  *outBuffer = 0;
+}
+
+void FlushThisBuf( char * buf )
+{
+char *p;
+
+  p = buf;
+  while( *p )
+    *p++ &= ~0x80;
+  fprintf( currentFile, buf );
+}
+
+void WriteDelim()
+{
+/*
+  WriteComment("****************************************************************");
+*/ 
+  WriteComment("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
+}
+
+void NewLines( int n )
+{
+  for( ; n > 0; n-- ) 
+    bprintf("\n");
+
+  FlushBuf();  
+}
+
+void IncludeFile( char * fname ) 
+{
+FILE *fp;
+#define MAX_LINE 200
+char line[ MAX_LINE ];
+
+
+  fp = fopen( fname, "r" );
+  if ( fp == 0 )
+    FatalError(3,"%s: Can't read file", fname );
+
+  FlushBuf();
+  
+  while( !feof(fp) ) {
+    *line = '\0';
+    fgets( line, MAX_LINE, fp );
+    fputs( line, currentFile );
+  }
+  
+  fclose( fp );
+}
+
+void IncludeCode( char* fmt, ... )
+{
+Va_list args;
+char buf[200];
+char cmd[500];
+static char tmpfile[] = "kppfile.tmp";
+FILE * fp;
+
+  Va_start( args, fmt );
+  vsprintf( buf, fmt, args );
+  va_end( args );
+
+  switch( useLang ) { 
+    case F77_LANG: sprintf( buf, "%s.f", buf );
+                 break;
+    case F90_LANG: sprintf( buf, "%s.f90", buf );
+                 break;
+    case C_LANG: sprintf( buf, "%s.c", buf );
+                 break;
+    case MATLAB_LANG: sprintf( buf, "%s.m", buf );
+                 break;
+    default: printf("\n Language '%d' not implemented!\n",useLang); 
+                 exit(1);
+  }
+  fp = fopen( buf, "r" );
+  if ( fp == 0 )
+    FatalError(3,"%s: Can't read file", buf );
+  fclose(fp);
+    
+  strcpy( cmd, "sed " );
+  
+  sprintf( cmd, "%s -e 's/KPP_ROOT/%s/g'", cmd, rootFileName );  
+  sprintf( cmd, "%s -e 's/KPP_NVAR/%d/g'", cmd, VarNr );  
+  sprintf( cmd, "%s -e 's/KPP_NFIX/%d/g'", cmd, FixNr );  
+  sprintf( cmd, "%s -e 's/KPP_NSPEC/%d/g'", cmd,SpcNr );  
+  sprintf( cmd, "%s -e 's/KPP_NREACT/%d/g'", cmd, EqnNr );  
+  sprintf( cmd, "%s -e 's/KPP_NONZERO/%d/g'", cmd, Jac_NZ );  
+  sprintf( cmd, "%s -e 's/KPP_LU_NONZERO/%d/g'", cmd, LU_Jac_NZ );  
+  sprintf( cmd, "%s -e 's/KPP_NHESS/%d/g'", cmd, Hess_NZ );  
+  
+  switch( useLang ) { 
+    case F77_LANG: 
+                 sprintf( cmd, "%s -e 's/KPP_REAL/%s/g'", cmd, F77_types[real] );  
+                 break;
+    case F90_LANG: 
+                 sprintf( cmd, "%s -e 's/KPP_REAL/%s/g'", cmd, F90_types[real] );  
+                 break;
+    case C_LANG: 
+                 sprintf( cmd, "%s -e 's/KPP_REAL/%s/g'", cmd, C_types[real] );  
+                 break;  		             
+    case MATLAB_LANG: 
+                 break;  		             
+    default: printf("\n Language '%d' not implemented!\n",useLang); 
+                 exit(1);
+  }           
+      
+  sprintf( cmd, "%s %s > %s", cmd, buf, tmpfile );  
+
+  system( cmd );
+  IncludeFile( tmpfile );
+  sprintf( cmd, "rm %s", tmpfile );
+  system( cmd );
+}
+
+void MapFunctionComment( int f, int *vars )
+{
+FILE *oldf;
+ 
+  oldf = UseFile( mapFile );
+  FunctionStart( f, vars );
+  /*NewLines(1);
+  CommentFncBegin( f, vars );*/
+  FlushBuf();
+  UseFile( oldf );
+}
+
+int DefineVariable( char * name, int t, int bt, int maxi, int maxj, char * comment )
+{
+int i;
+VARIABLE * var;
+
+  for( i = 0; i < MAX_VAR; i++ ) 
+    if( varTable[ i ] == 0 ) break;
+  
+  if( varTable[ i ] != 0 ) { 
+    printf("\nVariable Table overflow");
+    return -1;
+  }
+
+  var = (VARIABLE*) malloc( sizeof( VARIABLE ) );
+  var->name = name;
+  var->type = t;
+  var->baseType = bt;
+  var->maxi = maxi;
+  var->maxj = maxj;
+  var->value = -1;
+  var->comment = comment;
+  
+  varTable[ i ] = var;
+  return i;   
+}
+
+void FreeVariable( int n )
+{
+  if( varTable[ n ] ) { 
+    free( varTable[ n ] );
+    varTable[ n ] = 0;
+  } 
+}
+ 
+NODE * Elm( int v, ... )
+{
+Va_list args;
+NODE *n;
+ELEMENT *elm;
+VARIABLE *var;
+int i, j;
+float val;
+char *expr;
+  
+  var = varTable[ v ];
+  n   = (NODE*)    malloc( sizeof(NODE) );
+  elm = (ELEMENT*) malloc( sizeof(ELEMENT) );
+  n->left = 0;
+  n->right = 0;
+  n->sign = 1;
+  n->type = var->type;
+  n->elm = elm;
+  elm->var = v;
+    
+  Va_start( args, v );
+  switch( var->type ) {
+    case CONST: switch( var->baseType ) {
+                  case REAL: elm->val.cnst = (float)va_arg( args, double );
+                             break;
+                  case INT:  elm->val.cnst = (float)va_arg( args, int );            
+                }
+                if( elm->val.cnst < 0 ) {
+                  elm->val.cnst = -elm->val.cnst;
+                  n->sign = -1;
+                }
+                break;
+    case ELM:   
+                break;
+    case VELM:  elm->val.idx.i = va_arg( args, int );
+                break;
+    case MELM:  elm->val.idx.i = va_arg( args, int );
+                elm->val.idx.j = va_arg( args, int );
+                break;
+    case EELM:  elm->val.expr = va_arg( args, char* );
+                break;
+  } 
+  va_end( args );
+  
+  return n;
+}
+
+int IsConst( NODE *n, float val )
+{
+  return ( ( n ) &&
+           ( n->type == CONST ) &&
+           ( n->elm->val.cnst == val ) 
+         );
+}
+
+NODE * BinaryOp( int op, NODE *n1, NODE *n2 )
+{
+NODE *n;
+  
+  n   = (NODE*)    malloc( sizeof(NODE) );
+  n->left = n1;
+  n->right = n2;
+  n->type = op;
+  n->sign = 1;
+  n->elm = 0;
+  return n;
+}
+
+NODE * Add( NODE *n1, NODE *n2 )
+{
+  if( n1 == 0 ) return n2;
+  if( n2 == 0 ) return n1;
+  
+  if( IsConst( n1, 0 ) ) {
+    FreeNode( n1 );
+    return n2;   
+  }
+  if( IsConst( n2, 0 ) ) {
+    FreeNode( n2 );
+    return n1;
+  }
+  return BinaryOp( ADD, n1, n2 );                                  
+}
+
+NODE * Sub( NODE *n1, NODE *n2 )
+{
+  if( n1 == 0 ) return BinaryOp( SUB, 0, n2 );
+  if( n2 == 0 ) return n1;
+  
+  if( IsConst( n1, 0 ) ) {
+    FreeNode( n1 );
+    return  BinaryOp( SUB, 0, n2 );   
+  }
+  if( IsConst( n2, 0 ) ) {
+    FreeNode( n2 );
+    return n1;
+  }
+  return BinaryOp( SUB, n1, n2 );                                  
+}
+
+NODE * Mul( NODE *n1, NODE *n2 )
+{
+  if( n1 == 0 ) return n2;
+  if( n2 == 0 ) return n1;
+  
+  if( IsConst( n1, 1 ) ) { 
+    n2->sign *= n1->sign;
+    FreeNode( n1 );
+    return n2;   
+  }
+  if( IsConst( n2, 1 ) ) {
+    n2->sign *= n1->sign;
+    FreeNode( n2 );
+    return n1;
+  }
+  if( IsConst( n1, 0 ) ) { 
+    FreeNode( n2 );
+    return n1;   
+  }
+  if( IsConst( n2, 0 ) ) {
+    FreeNode( n1 );
+    return n2;
+  }
+  
+  return BinaryOp( MUL, n1, n2 );                                  
+}
+
+NODE * Div( NODE *n1, NODE *n2 )
+{
+  if( n1 == 0 ) return BinaryOp( DIV, Const(1), n2 );
+  if( n2 == 0 ) return n1;
+
+  if( IsConst( n2, 1 ) ) {
+    n2->sign *= n1->sign;
+    FreeNode( n2 );
+    return n1;
+  }
+                  
+  return BinaryOp( DIV, n1, n2 );    
+}
+
+NODE * Pow( NODE *n1, NODE *n2 )
+{
+  if( n1 == 0 ) return n2;
+  if( n2 == 0 ) return n1;
+  return BinaryOp( POW, n1, n2 );    
+}
+
+void FreeNode( NODE * n )
+{
+  if( n == 0 ) return;
+  FreeNode( n->left );
+  FreeNode( n->right );
+  if( n->elm ) free( n->elm );
+  free( n );
+}
+
+int NodeCmp( NODE *n1, NODE *n2 )
+{
+ELEMENT *elm1;
+ELEMENT *elm2;
+
+  if( n1 == n2 ) return 1;
+  if( n1 == 0 ) return 0;
+  if( n2 == 0 ) return 0;
+
+  if( (n1->type % SUBST) != (n2->type % SUBST) ) return 0;
+
+  elm1 = n1->elm;
+  elm2 = n2->elm;
+
+  if( elm1 == elm2 ) return 1;
+  if( elm1 == 0 ) return 0;
+  if( elm2 == 0 ) return 0;
+
+  if( elm1->var != elm2->var )return 0;
+  switch( n1->type ) {
+    case CONST: if( elm1->val.cnst != elm2->val.cnst ) return 0;
+		break;
+    case ELM:   break;
+    case VELM:  if( elm1->val.idx.i != elm2->val.idx.i ) return 0;
+		break;
+    case MELM:  if( elm1->val.idx.i != elm2->val.idx.i ) return 0;
+		if( elm1->val.idx.j != elm2->val.idx.j ) return 0;
+		break;
+    case EELM:  if( strcmp( elm1->val.expr, elm2->val.expr ) != 0 ) return 0;
+		break;
+  }
+
+  return 1;
+}
+
+NODE * NodeCopy( NODE *n1 )
+{
+NODE *n;
+ELEMENT *elm;
+  
+  n   = (NODE*)    malloc( sizeof(NODE) );
+  elm = (ELEMENT*) malloc( sizeof(ELEMENT) );
+  *n = *n1;
+  n->elm = elm;
+  *n->elm = *n1->elm;
+  return n;
+}
+
+void WriteNode( NODE *n )
+{
+  crtop = NONE;
+  ExpandNode( n, NONE );
+}
+
+void WriteOp( int op )
+{
+  WriteSymbol( op );
+  crtop = NONE;
+}
+
+void ExpandElm( NODE * n )
+{
+NODE *cn;
+
+  if( substENABLED == 0 ) {
+    WriteElm( n );
+    return;
+  }   
+  cn = LookUpSubst( n );
+  if( cn == 0 ) {
+    WriteElm( n );
+  } else {
+    if( cn->type > SUBST ) {
+      WriteElm( n );
+    } else {
+      cn->type += SUBST;
+      WriteSymbol( O_PAREN );
+      WriteNode( cn->right );       
+      WriteSymbol( C_PAREN );
+      cn->type -= SUBST;
+    }
+  }
+}
+
+int ExpandNode( NODE *n, int lastop )
+{
+int needParen = 0;
+
+  if( n == 0 ) return lastop;
+
+  if( ( n->left ) &&
+      ( PRI[ n->left->type ] < PRI[ n->type ] ) )
+      needParen = 1;
+
+  if( needParen ) {
+    WriteOp( crtop );
+    WriteSymbol( O_PAREN );
+  }
+  lastop = ExpandNode( n->left, lastop );
+  if( needParen ) WriteSymbol( C_PAREN );
+
+  switch( n->type ) {
+    case ADD:  
+    case SUB:   
+    case MUL:   
+    case DIV:   
+    case POW:   crtop = n->type;
+                break;
+    case NONE:  printf("ERROR - null element"); 
+    		break;
+    case CONST: 
+    case ELM:
+    case VELM:
+    case MELM:
+    case EELM:
+		switch( crtop ) {
+		  case MUL: case DIV: case POW:
+		    WriteOp( crtop );
+		    if ( n->sign == -1 ) {
+		      WriteSymbol( O_PAREN );
+		      WriteOp( SUB );
+		      ExpandElm( n );
+		      WriteSymbol( C_PAREN );
+		    } else {
+		      ExpandElm( n );
+		    }
+		    break;
+		  case ADD:  if( n->sign == -1 )
+			       crtop = SUB;
+			     WriteOp( crtop );
+			     ExpandElm( n );
+			     break;
+		  case SUB:  if( n->sign == -1 )
+			       crtop = ADD;
+			     WriteOp( crtop );
+			     ExpandElm( n );
+			     break;
+		  case NONE: if( n->sign == -1 )
+			       WriteOp( SUB );
+			     ExpandElm( n );
+			     break;
+		}
+		break;
+  }
+
+  if( ( n->right ) &&
+      ( PRI[ n->right->type ] <= PRI[ n->type ] ) )
+      needParen = 1; 
+
+  if( needParen ) {
+    WriteOp( crtop );
+    WriteSymbol( O_PAREN );
+  }  
+  lastop = ExpandNode( n->right, n->type );
+  if( needParen ) WriteSymbol( C_PAREN );
+  return lastop;
+}
+
+void Assign( NODE *lval, NODE *rval )
+{
+char *ls;
+char *rs;
+char *olds;
+
+  ls = (char*)malloc( MAX_OUTBUF );
+  rs = (char*)malloc( MAX_OUTBUF );
+
+  olds = outBuffer;
+  outBuffer = ls;
+  WriteNode( lval );
+  outBuffer = rs;
+  WriteNode( rval );
+  outBuffer = olds;
+
+  WriteAssign( ls, rs );
+
+  free( rs );  
+  free( ls );  
+  FreeNode( lval );
+  FreeNode( rval );
+}
+
+NODE * LookUpSubst( NODE *n )
+{
+NODE *cn;
+ 
+  cn = substList;
+  while( cn != 0 ) {
+    if( NodeCmp( n, cn ) ) 
+      return cn;
+    cn = cn->left;  
+  }
+  return 0;
+}
+
+void MkSubst( NODE *n1, NODE *n2 )
+{
+NODE *n;
+
+  n = LookUpSubst( n1 );
+  if( n == 0 ) {
+    n = n1;
+    n->left = substList;
+    substList = n;
+  } else {
+    FreeNode( n->right );
+    FreeNode( n1 );
+  }
+  n->right = n2;
+}
+
+void RmSubst( NODE *n )
+{
+NODE *pn;
+NODE *cn;
+
+  pn = 0;
+  cn = substList;
+  while( cn != 0 ) {
+    if( NodeCmp( n, cn ) ) 
+      break;
+    pn = cn;
+    cn = cn->left;
+  }
+  if( cn == 0 ) return;
+
+  FreeNode( cn->right );
+  if( pn )
+    pn->left = cn->left;
+  else 
+    substList = cn->left;  
+  
+  cn->right = 0;
+  cn->left = 0;
+  FreeNode( cn );
+}
+
+void DisplaySubst()
+{
+NODE *n;
+
+  n = substList;
+  substENABLED = 0;
+  while( n != 0 ) {
+    printf("Subst: ");
+    WriteElm( n );
+    printf( " --> " );    
+    WriteNode( n->right );
+    printf("\n");
+    n = n->left;
+  }
+  substENABLED = 1;
+}
+
+void CommentFncBegin( int f, int *vars )
+{
+VARIABLE *var;
+char * name;
+int narg;
+int i;
+
+  name = varTable[ f ]->name;
+  narg = varTable[ f ]->maxi;
+  var = varTable[ f ];
+
+  WriteDelim();
+  WriteComment("");
+  WriteComment("%s - %s", var->name, var->comment );   
+  WriteComment("  Arguments :");
+  for( i = 0; i < narg; i++ ) {
+    var = varTable[vars[i]];
+    WriteComment("     %-10s- %s", var->name, var->comment ); 
+  }  
+  WriteComment("");
+  WriteDelim();
+  NewLines(1);
+}
+
+void CommentFunctionBegin( int f, ... )
+{
+Va_list args;
+int i;
+int vars[20];
+char * name;
+int narg;
+
+  name = varTable[ f ]->name;
+  narg = varTable[ f ]->maxi;
+
+  Va_start( args, f );  
+  for( i = 0; i < narg; i++ ) 
+    vars[i] = va_arg( args, int );
+  va_end( args );
+
+  CommentFncBegin( f, vars );
+  /* MapFunctionComment( f, vars ); */
+}
+
+void CommentFunctionEnd( int f )
+{
+  WriteComment("End of %s function", varTable[ f ]->name );   
+  WriteDelim();
+  NewLines(2);
+}
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/src/code.h
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/src/code.h	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/src/code.h	(revision 2696)
@@ -0,0 +1,191 @@
+/******************************************************************************
+
+  KPP - The Kinetic PreProcessor
+        Builds simulation code for chemical kinetic systems
+
+  Copyright (C) 1995-1996 Valeriu Damian and Adrian Sandu
+  Copyright (C) 1997-2005 Adrian Sandu
+
+  KPP is free software; you can redistribute it and/or modify it under the
+  terms of the GNU General Public License as published by the Free Software
+  Foundation (http://www.gnu.org/copyleft/gpl.html); either version 2 of the
+  License, or (at your option) any later version.
+
+  KPP is distributed in the hope that it will be useful, but WITHOUT ANY
+  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+  FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+  details.
+
+  You should have received a copy of the GNU General Public License along
+  with this program; if not, consult http://www.gnu.org/copyleft/gpl.html or
+  write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+  Boston, MA  02111-1307,  USA.
+
+  Adrian Sandu
+  Computer Science Department
+  Virginia Polytechnic Institute and State University
+  Blacksburg, VA 24060
+  E-mail: sandu@cs.vt.edu
+
+******************************************************************************/
+
+
+#ifndef _CODE_H_
+#define _CODE_H_
+
+#include <stdlib.h>
+#include <time.h>
+#include "gdef.h"
+
+#define MAX_DEPTH 	 10
+#define MAX_SUBST 	 20
+#define SUBST	  	100
+#define MAX_VAR 	150
+#define MAX_OUTBUF   200000
+#define MAX_COLS          8
+#define MAX_LINES        20
+
+#define WriteAll bprintf
+
+enum types  { NONE, ADD, SUB, MUL, DIV, POW, CONST, ELM, VELM, MELM, EELM, FNC };
+extern int PRI[];
+
+enum signs { O_PAREN = 20, C_PAREN };
+enum base_types { VOID, INT, REAL, DOUBLE, STRING, DOUBLESTRING };
+/*  mz_rs_20050117+ */
+extern FILE * initFile;
+/*  mz_rs_20050117- */
+extern FILE * driverFile;
+extern FILE * functionFile;
+extern FILE * global_dataFile;
+extern FILE * hessianFile;
+extern FILE * integratorFile;
+extern FILE * jacobianFile;
+extern FILE * linalgFile;
+extern FILE * mapFile;
+extern FILE * makeFile;
+extern FILE * monitorFile;
+extern FILE * mex_funFile;
+extern FILE * mex_jacFile;
+extern FILE * mex_hessFile;
+extern FILE * param_headerFile;
+extern FILE * rateFile;
+extern FILE * sparse_dataFile;
+extern FILE * sparse_jacFile;
+extern FILE * sparse_hessFile;
+extern FILE * sparse_stoicmFile;
+extern FILE * stoichiomFile;
+extern FILE * stochasticFile;
+extern FILE * utilFile;
+
+extern FILE * currentFile;
+
+extern int ident;
+extern int real;
+extern char * CommonName;
+
+void OpenFile( FILE **fpp, char *name, char * ext, char * identity );
+FILE * UseFile( FILE *fp );
+ 
+typedef struct {
+		 char *name;
+		 int type;
+		 int baseType;
+                 int maxi;
+                 int maxj;
+                 int value;
+                 char *comment;
+	       } VARIABLE;
+
+extern VARIABLE* varTable[];
+
+extern char *outBuf;
+extern char *outBuffer;
+
+void AllowBreak();
+void bprintf( char *fmt, ... );
+void FlushBuf();
+void FlushThisBuf( char * buf );
+void NewLines( int n );
+void C_Inline( char *fmt, ... );
+void F77_Inline( char *fmt, ... );
+void IncludeFile( char * fname );
+void IncludeCode( char *fmt, ... );
+void MapFunctionComment( int f, int *vars );
+      
+int DefineVariable( char * name, int t, int bt, int maxi, int maxj, char * comment );
+void FreeVariable( int n );
+
+#define DefConst( name, bt, cmt ) DefineVariable( name, CONST, bt, 0, 0, cmt )
+#define DefElm( name, bt, cmt ) DefineVariable( name, ELM, bt, 0, 0, cmt )
+#define DefvElm( name, bt, n, cmt ) DefineVariable( name, VELM, bt, n, 0, cmt )
+#define DefmElm( name, bt, m, n, cmt ) DefineVariable( name, MELM, bt, m, n, cmt )
+#define DefeElm( name, cmt ) DefineVariable( name, EELM, 0, 0, 0, cmt )
+#define DefFnc( name, n, cmt ) DefineVariable( name, FNC, 0, n, 0, cmt )
+  
+typedef struct {
+		 int var;
+		 union {
+		   char * expr;
+		   float cnst;
+		   struct {
+		     int i;
+		     int j;
+		   } idx;
+		 } val;
+	       } ELEMENT;
+
+typedef struct node {
+		      struct node * left;
+		      struct node * right;
+		      int type;
+		      int sign;
+		      ELEMENT *elm;
+		    } NODE;
+
+extern char *F77_types[];
+extern char *F90_types[];
+extern char *C_types[];
+extern char *MATLAB_types[];
+
+NODE * Elm( int v, ... );
+#define Const( x ) Elm( 0, (double)x )
+#define Expr( x ) Elm( 1, x )
+
+void FreeNode( NODE * n );
+
+NODE * Add( NODE *n1, NODE *n2 );
+NODE * Sub( NODE *n1, NODE *n2 );
+NODE * Mul( NODE *n1, NODE *n2 );
+NODE * Div( NODE *n1, NODE *n2 );
+NODE * Pow( NODE *n1, NODE *n2 );
+
+void Assign( NODE *lval, NODE *rval );
+void MkSubst( NODE *n1, NODE *n2 );
+void RmSubst( NODE *n );
+void CommentFncBegin( int f, int *vars );
+void CommentFunctionBegin( int f, ... );
+void CommentFunctionEnd( int f );
+
+void Use_C();
+void Use_F();
+void Use_F90();
+void Use_MATLAB();
+
+extern void (*WriteElm)( NODE *n );
+extern void (*WriteSymbol)( int op );
+extern void (*WriteAssign)( char* ls, char* rs );
+extern void (*WriteComment)( char *fmt, ...  );
+extern void (*Declare)( int v );
+extern void (*ExternDeclare)( int v );
+extern void (*GlobalDeclare)( int v );
+extern void (*InitDeclare)( int v, int n, void * values );
+extern void (*DeclareConstant)( int v, char *val );
+extern void (*FunctionStart)( int f, int *vars );
+extern void (*FunctionPrototipe)( int f, ... );
+extern void (*FunctionBegin)( int f, ... );
+extern void (*FunctionEnd)( int f );
+
+void WriteDelim();
+
+#endif
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/src/code_c.c
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/src/code_c.c	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/src/code_c.c	(revision 2696)
@@ -0,0 +1,544 @@
+/******************************************************************************
+
+  KPP - The Kinetic PreProcessor
+        Builds simulation code for chemical kinetic systems
+
+  Copyright (C) 1995-1996 Valeriu Damian and Adrian Sandu
+  Copyright (C) 1997-2005 Adrian Sandu
+
+  KPP is free software; you can redistribute it and/or modify it under the
+  terms of the GNU General Public License as published by the Free Software
+  Foundation (http://www.gnu.org/copyleft/gpl.html); either version 2 of the
+  License, or (at your option) any later version.
+
+  KPP is distributed in the hope that it will be useful, but WITHOUT ANY
+  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+  FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+  details.
+
+  You should have received a copy of the GNU General Public License along
+  with this program; if not, consult http://www.gnu.org/copyleft/gpl.html or
+  write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+  Boston, MA  02111-1307,  USA.
+
+  Adrian Sandu
+  Computer Science Department
+  Virginia Polytechnic Institute and State University
+  Blacksburg, VA 24060
+  E-mail: sandu@cs.vt.edu
+
+******************************************************************************/
+
+
+#include "gdata.h"
+#include "code.h"
+#include <string.h>
+
+#define MAX_LINE  120
+#define LINE_LENGTH 70
+
+int fncPrototipe = 0;
+
+char *C_types[] = { "void",     /* VOID */ 
+                    "int",    /* INT */
+                    "float",  /* FLOAT */
+                    "double", /* DOUBLE */
+                    "char *", /* STRING */
+                    "char *"  /* DOUBLESTRING */
+                  }; 
+
+void C_WriteElm( NODE * n )
+{
+ELEMENT *elm;
+char * name;
+char maxi[20];
+char maxj[20];
+
+  elm = n->elm;
+  name = varTable[ elm->var ]->name;
+
+  switch( n->type ) {
+    case CONST: bprintf("%g", elm->val.cnst);
+		break;
+    case ELM:   bprintf("%s", name);
+		break;
+    case VELM:  if( elm->val.idx.i >= 0 ) sprintf( maxi, "%d", elm->val.idx.i );
+                  else sprintf( maxi, "%s", varTable[ -elm->val.idx.i ]->name );
+                bprintf("%s[%s]", name, maxi );
+		break;
+    case MELM:  if( elm->val.idx.i >= 0 ) sprintf( maxi, "%d", elm->val.idx.i );
+                  else sprintf( maxi, "%s", varTable[ -elm->val.idx.i ]->name );
+                if( elm->val.idx.j >= 0 ) sprintf( maxj, "%d", elm->val.idx.j );
+                  else sprintf( maxj, "%s", varTable[ -elm->val.idx.j ]->name );
+                bprintf("%s[%s][%s]", name, maxi, maxj );
+		break;
+    case EELM:  bprintf("(%s)", elm->val.expr );
+		break;
+  }
+}
+
+void C_WriteSymbol( int op )
+{
+  switch( op ) {
+    case ADD:   bprintf("+");
+                AllowBreak(); 
+    		break;
+    case SUB:   bprintf("-"); 
+                AllowBreak(); 
+    		break;
+    case MUL:   bprintf("*"); 
+                AllowBreak(); 
+    		break;
+    case DIV:   bprintf("/"); 
+                AllowBreak(); 
+    		break;
+    case POW:   bprintf("power");
+                break;		
+    case O_PAREN: bprintf("(");
+                AllowBreak(); 
+                break;            
+    case C_PAREN: bprintf(")");
+                break;            
+    case NONE:
+                break;            
+  }
+}
+
+void C_WriteAssign( char *ls, char *rs )
+{
+int start;
+int crtident;
+int linelg;
+int i,j;
+char c;
+int first;
+int number_of_lines = 1, MAX_NO_OF_LINES = 99;
+int ifound, jfound;
+
+/*  Operator Mapping: 0xaa = '*' | 0xab = '+' | 0xac = ',' 
+                      0xad = '-' | 0xae ='.' | 0xaf = '/' */		      
+/* char op_mult=0xaa, op_plus=0xab, op_minus=0xad, op_dot=0xae, op_div=0xaf; */		      
+char op_mult='*', op_plus='+', op_minus='-', op_dot='.', op_div='/';		      
+
+  crtident = 2 + ident * 2;
+  bprintf("%*s%s = ", crtident, "", ls);
+  start = strlen( ls ) + crtident + 2;
+  linelg = LINE_LENGTH - start;
+
+  first = 1;
+  while( strlen(rs) > linelg ) {
+    ifound = 0; jfound = 0;
+    if ( number_of_lines >= MAX_NO_OF_LINES ) {/* if a new line needs to be started */
+     for( j=linelg; j>5; j-- ) /* split row here if +, -, or comma */
+       if ( ( rs[j] == op_plus )||( rs[j] == op_minus )||( rs[j]==',' ) ) { 
+        jfound = 1; i=j; break;
+	}
+    }
+    if ( ( number_of_lines < MAX_NO_OF_LINES )||( !jfound ) ) {
+     for( i=linelg; i>10; i-- ) /* split row here if operator or comma */
+       if ( ( rs[i] & 0x80 )||( rs[i]==',' ) ) {
+        ifound = 1; break;
+	}
+     if( i <= 10 ) {
+      printf("\n Warning: possible error in continuation lines for %s = ...",ls);
+      i = linelg;
+     }
+    } 
+    while ( rs[i-1] & 0x80 ) i--; /* put all operators on the next row */
+    while ( rs[i] == ',' ) i++; /* put commas on the current row */
+    
+    /*for( i=linelg; i>10; i-- )
+      if( ( rs[i] & 0x80 ) || ( rs[i] == ',' ) ) 
+        break;
+    if( i < 10 ) {
+      printf("\nPossible error when cutting lines");
+      i = linelg;
+    }*/
+    
+    c = rs[i]; 
+    rs[i] = 0;
+    if ( first ) { 
+      bprintf("%s", rs );
+      linelg++;
+      first = 0;
+    } else {
+      bprintf("\n%*s%s", start, "", rs );      
+      if ( jfound ) {
+         bprintf(";\n%*s%s = %s", crtident, "", ls, ls);
+	 number_of_lines = 1;
+	 }
+    }  
+    rs[i] = c;
+    rs += i;
+    number_of_lines++;
+  }
+
+  if ( number_of_lines > MAX_NO_OF_LINES )
+     printf("\n Warning: many continuation lines (%d) for %s = ...",number_of_lines,ls);
+  
+  if ( first ) bprintf("%s;\n", rs );
+          else bprintf("\n%*s%s;\n", start, "", rs );
+
+  FlushBuf();
+}
+
+void C_WriteComment( char *fmt, ... )
+{
+Va_list args;
+char buf[ MAX_LINE ];
+
+  Va_start( args, fmt );
+  vsprintf( buf, fmt, args );
+  va_end( args );
+
+  bprintf( "/* %-*s */\n", LINE_LENGTH - 6, buf );
+
+  FlushBuf();
+}
+
+
+char * C_Decl( int v )
+{ 
+static char buf[120];
+VARIABLE *var;
+char *baseType;
+char maxi[20];
+char maxj[20];
+
+  var = varTable[ v ];
+  baseType = C_types[ var->baseType ];
+  
+  *buf = 0;
+  
+  switch( var->type ) {
+    case ELM:   
+              sprintf( buf, "%s %s", baseType, var->name );
+		break;
+    case VELM:  
+              if( var->maxi > 0 ) sprintf( maxi, "%d", var->maxi );
+              if( var->maxi == 0 ) sprintf( maxi, "%d", 1 );
+                /*  else sprintf( maxi, "%s", varTable[ -var->maxi ]->name);  */
+              if ( var->maxi < 0 ) {
+		    if (varTable[ -var->maxi ]->value < 0) 
+		      sprintf( maxi, "%s", varTable[ -var->maxi ]->name );
+		    else  
+		      sprintf( maxi, "%d", (varTable[-var->maxi]->value)==0?
+		           1:varTable[-var->maxi]->value );
+	      }  
+                /*if( (var->maxi == 0) || 
+                    ((var->maxi < 0) && (varTable[ -var->maxi ]->maxi == 0)) )
+                  sprintf( maxi, "%s+1", maxi );*/
+              if( fncPrototipe ) 
+                  sprintf( buf, "%s %s[]", baseType, var->name );
+              else  
+                  sprintf( buf, "%s %s[%s]", baseType, var->name, maxi );
+              break;
+    case MELM:  
+              if( var->maxi > 0 ) sprintf( maxi, "%d", var->maxi );
+              else { 
+		 if (varTable[ -var->maxi ]->value < 0)
+		    sprintf( maxi, "%s", varTable[ -var->maxi ]->name );
+		 else  
+		    sprintf( maxi, "%d", (varTable[-var->maxi]->value)==0?
+		           1:varTable[-var->maxi]->value );
+	      }  
+                /* if( (var->maxi == 0) || 
+                    ((var->maxi < 0) && (varTable[ -var->maxi ]->maxi == 0)) )
+                  strcat( maxi, "+1"); */
+              if( var->maxj > 0 ) sprintf( maxj, "%d", var->maxj );
+              else {
+		  if (varTable[ -var->maxj ]->value < 0)
+		     sprintf( maxj, "%s", varTable[ -var->maxj ]->name );
+		  else  
+		     sprintf( maxj, "%d", (varTable[-var->maxj]->value)==0?
+		           1:varTable[-var->maxj]->value );
+	      }
+              if( fncPrototipe ) 
+                  sprintf( buf, "%s %s[][]", baseType, var->name );
+              else  
+                  sprintf( buf, "%s %s[%s][%s]",
+                        baseType, var->name, maxi, maxj );  
+		break;
+    default:
+                Message( "Can not declare type %d", var->type );
+                Message( "v = %d", v );
+                break;
+  }
+  return buf;
+}
+
+void C_Declare( int v )
+{
+  bprintf("%-40s", strcat( C_Decl(v), ";" ) ); 
+  if( varTable[ v ]->comment )
+    bprintf(" /* %s */\n", varTable[ v ]->comment );
+  else 
+    bprintf("\n");   
+
+  FlushBuf();
+}
+
+void C_ExternDeclare( int v )
+{
+  bprintf("extern %-40s", strcat( C_Decl(v), ";" ) ); 
+  if( varTable[ v ]->comment )
+    bprintf(" /* %s */\n", varTable[ v ]->comment );
+  else 
+    bprintf("\n");   
+
+  FlushBuf();
+}
+
+void C_GlobalDeclare( int v )
+{
+  C_Declare( v );
+}
+
+void C_InitDeclare( int v, int n, void * values )
+{
+int i;
+VARIABLE *var;
+int * ival;
+double * dval;
+char ** cval;
+int maxCols = MAX_COLS;
+
+  var = varTable[ v ];
+  ival = (int*) values;
+  dval = (double*) values;
+  cval = (char**) values;
+  
+  if( var->comment )
+      bprintf(" /* %s */\n\n", var->comment );
+        
+  switch( var->type ) {
+    case VELM: bprintf( "  %s  %s[] = {\n%5s", C_types[var->baseType], var->name, " " );
+               for( i = 0; i < n; i++ ) {
+                 switch( var->baseType ) {
+                   case INT: bprintf( "%3d",  ival[i] ); maxCols=12; break;
+                   case DOUBLE: 
+                   case REAL:bprintf( "%5lg", dval[i] ); maxCols=8; break;
+                   case STRING:bprintf( "\"%s\"", cval[i] ); maxCols=8; break;
+                   case DOUBLESTRING:bprintf( "\"%s\"", cval[i] ); maxCols=1; break;
+                 }
+                 if( i < n-1 ) bprintf( "," );
+                 if( (i+1) % maxCols == 0 ) bprintf( "\n%5s", " " );
+               }  
+               if( n == 0 ) bprintf( "0" );
+               bprintf( " }; \n\n" );
+               break;
+               
+    case ELM:  bprintf( "  %s %s = ", C_types[var->baseType], var->name );
+               switch( var->baseType ) {
+                 case INT: bprintf( "%d",  *ival ); break;
+                 case DOUBLE: 
+                 case REAL:bprintf( "%lg", *dval ); break;
+                 case STRING:bprintf( "\"%s\"", *cval ); break;
+                 case DOUBLESTRING:bprintf( "\"%s\"", *cval ); break;
+               }
+               bprintf( ";\n\n" );
+               break;
+               
+    default:   printf( "\n Function not defined !\n" );
+               break;
+  }
+
+  FlushBuf();
+}
+
+void C_DeclareConstant( int v, char *val ) 
+{
+VARIABLE *var;
+int ival;
+char dummy_val[100];           /* used just to avoid strange behaviour of
+                                  sscanf when compiled with gcc */
+                                  
+  strcpy(dummy_val,val);val = dummy_val;
+  
+  var = varTable[ v ];
+
+  if( sscanf(val, "%d", &ival) == 1 ) 
+    if( ival == 0 ) var->maxi = 0;
+               else var->maxi = 1;
+  else
+    var->maxi = -1;       
+
+  switch( var->type ) {
+    case CONST: bprintf("#define %-20s %-10s ", var->name, val );
+                break;       
+    default:
+                printf( "Invalid constant", var->type );
+                break;
+  }
+  if( varTable[ v ]->comment )
+    bprintf(" /* %s */\n", varTable[ v ]->comment );
+  else 
+    bprintf("\n");   
+
+  FlushBuf();
+}
+
+void C_FunctionStart( int f, int *vars )
+{
+int i;
+int v;
+char * name;
+int narg;
+
+  name = varTable[ f ]->name;
+  narg = varTable[ f ]->maxi;
+
+  fncPrototipe = 1;
+
+  bprintf("void %s( \n", name );
+  for( i = 0; i < narg-1; i++ ) {
+    v = vars[ i ];
+    bprintf("  %-38s", strcat( C_Decl(v), "," ) ); 
+    if( varTable[ v ]->comment )
+      bprintf(" /* %s */\n", varTable[ v ]->comment );
+    else 
+      bprintf("\n");   
+  }
+  if( narg >= 1 ) {
+    v = vars[ i ];
+    bprintf("  %-38s", C_Decl(v) );
+    if( varTable[ v ]->comment )
+      bprintf(" /* %s */\n", varTable[ v ]->comment );
+    else 
+      bprintf("\n");   
+  }
+  bprintf(")");
+
+  fncPrototipe = 0;
+  
+  FlushBuf();
+}
+
+void C_FunctionPrototipe( int f, ... )
+{
+Va_list args;
+int i;
+int vars[20];
+char * name;
+int narg;
+
+  name = varTable[ f ]->name;
+  narg = varTable[ f ]->maxi;
+
+  Va_start( args, f );  
+  for( i = 0; i < narg; i++ ) 
+    vars[i] = va_arg( args, int );
+  va_end( args );
+  C_FunctionStart( f, vars );
+  bprintf(";\n");
+
+  FlushBuf();
+}
+
+void C_FunctionBegin( int f, ... )
+{
+Va_list args;
+int i;
+int vars[20];
+char * name;
+int narg;
+
+  name = varTable[ f ]->name;
+  narg = varTable[ f ]->maxi;
+
+  Va_start( args, f );  
+  for( i = 0; i < narg; i++ ) 
+    vars[i] = va_arg( args, int );
+  va_end( args );
+  
+  CommentFncBegin( f, vars );
+  C_FunctionStart( f, vars );
+  bprintf("\n");
+  bprintf("{\n");
+  
+  FlushBuf();
+
+  MapFunctionComment( f, vars );
+}
+
+void C_FunctionEnd( int f )
+{
+  bprintf("}\n\n");
+
+  FlushBuf();
+
+  CommentFunctionEnd( f );
+}
+
+void C_Inline( char *fmt, ... )
+{
+Va_list args;
+char buf[ 1000 ];
+
+  if( useLang != C_LANG ) return;
+  
+  Va_start( args, fmt );
+  vsprintf( buf, fmt, args );
+  va_end( args );
+  bprintf( "%s\n",buf );
+  
+  FlushBuf();
+}
+
+void Use_C()
+{ 
+  WriteElm 	    = C_WriteElm;
+  WriteSymbol 	    = C_WriteSymbol;  
+  WriteAssign 	    = C_WriteAssign;
+  WriteComment 	    = C_WriteComment;
+  DeclareConstant   = C_DeclareConstant;
+  Declare           = C_Declare;
+  ExternDeclare     = C_ExternDeclare;
+  GlobalDeclare     = C_GlobalDeclare;
+  InitDeclare       = C_InitDeclare;
+  
+  FunctionStart     = C_FunctionStart;
+  FunctionPrototipe = C_FunctionPrototipe;
+  FunctionBegin     = C_FunctionBegin;
+  FunctionEnd       = C_FunctionEnd;
+
+  OpenFile( &param_headerFile,   rootFileName, "_Parameters.h", "Parameter Header File" );
+  OpenFile( &initFile, rootFileName, "_Initialize.c", "Initialization File" );
+  OpenFile( &driverFile, rootFileName, "_Main.c", "Main Program File" );
+  OpenFile( &integratorFile, rootFileName, "_Integrator.c", 
+                   "Numerical Integrator (Time-Stepping) File" );
+  OpenFile( &linalgFile, rootFileName, "_LinearAlgebra.c", 
+                   "Linear Algebra Data and Routines File" );
+  OpenFile( &functionFile, rootFileName, "_Function.c", 
+                   "The ODE Function of Chemical Model File" );
+  OpenFile( &jacobianFile, rootFileName, "_Jacobian.c", 
+                   "The ODE Jacobian of Chemical Model File" );
+  OpenFile( &rateFile, rootFileName, "_Rates.c", 
+                   "The Reaction Rates File" );
+  if ( useStochastic )
+    OpenFile( &stochasticFile, rootFileName, "_Stochastic.c", 
+                   "The Stochastic Chemical Model File" );
+  if ( useStoicmat ) {
+    OpenFile( &stoichiomFile, rootFileName, "_Stoichiom.c", 
+                   "The Stoichiometric Chemical Model File" );
+    OpenFile( &sparse_stoicmFile, rootFileName, "_StoichiomSP.c", 
+                   "Sparse Stoichiometric Data Structures File" );
+  }		   
+  OpenFile( &utilFile, rootFileName, "_Util.c", 
+                   "Auxiliary Routines File" );
+  OpenFile( &sparse_dataFile, rootFileName, "_Sparse.h", "Sparse Data Header File" );
+  OpenFile( &global_dataFile, rootFileName, "_Global.h", "Global Data Header File" );
+  if ( useJacSparse ) {
+     OpenFile( &sparse_jacFile, rootFileName, "_JacobianSP.c",
+        "Sparse Jacobian Data Structures File" );  
+  }
+  if ( useHessian ) {
+     OpenFile( &hessianFile, rootFileName, "_Hessian.c", "Hessian File" );
+     OpenFile( &sparse_hessFile, rootFileName, "_HessianSP.c",
+         "Sparse Hessian Data Structures File" );
+  }   
+  OpenFile( &mapFile, rootFileName, ".map", 
+                   "Map File with Human-Readable Information" );
+  OpenFile( &monitorFile, rootFileName, "_Monitor.c", 
+                   "Utility Data Initialization" );
+} 
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/src/code_f77.c
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/src/code_f77.c	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/src/code_f77.c	(revision 2696)
@@ -0,0 +1,589 @@
+/******************************************************************************
+
+  KPP - The Kinetic PreProcessor
+        Builds simulation code for chemical kinetic systems
+
+  Copyright (C) 1995-1996 Valeriu Damian and Adrian Sandu
+  Copyright (C) 1997-2005 Adrian Sandu
+
+  KPP is free software; you can redistribute it and/or modify it under the
+  terms of the GNU General Public License as published by the Free Software
+  Foundation (http://www.gnu.org/copyleft/gpl.html); either version 2 of the
+  License, or (at your option) any later version.
+
+  KPP is distributed in the hope that it will be useful, but WITHOUT ANY
+  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+  FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+  details.
+
+  You should have received a copy of the GNU General Public License along
+  with this program; if not, consult http://www.gnu.org/copyleft/gpl.html or
+  write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+  Boston, MA  02111-1307,  USA.
+
+  Adrian Sandu
+  Computer Science Department
+  Virginia Polytechnic Institute and State University
+  Blacksburg, VA 24060
+  E-mail: sandu@cs.vt.edu
+
+******************************************************************************/
+
+
+#include "gdata.h"
+#include "code.h"
+#include <string.h>
+#include <stdio.h>
+
+#define MAX_LINE 120
+
+char *F77_types[] = { "",                 /* VOID */ 
+                    "INTEGER",          /* INT */
+                    "REAL",             /* FLOAT */
+                    "REAL*8",           /* DOUBLE */
+                    "CHARACTER*12",     /* STRING */
+                    "CHARACTER*100"     /* DOUBLESTRING */
+                  };
+
+/*************************************************************************************************/
+void F77_WriteElm( NODE * n )
+{
+ELEMENT *elm;
+char * name;
+char maxi[20];
+char maxj[20];
+
+  elm = n->elm;
+  name = varTable[ elm->var ]->name;
+
+  switch( n->type ) {
+    case CONST: bprintf("%g", elm->val.cnst);
+		break;
+    case ELM:   bprintf("%s", name);
+		break;
+    case VELM:  if( elm->val.idx.i >= 0 ) sprintf( maxi, "%d", elm->val.idx.i+1 );
+                  else sprintf( maxi, "%s", varTable[ -elm->val.idx.i ]->name );
+                bprintf("%s(%s)", name, maxi );
+		break;
+    case MELM:  if( elm->val.idx.i >= 0 ) sprintf( maxi, "%d", elm->val.idx.i+1 );
+                  else sprintf( maxi, "%s", varTable[ -elm->val.idx.i ]->name );
+                if( elm->val.idx.j >= 0 ) sprintf( maxj, "%d", elm->val.idx.j+1 );
+                  else sprintf( maxj, "%s", varTable[ -elm->val.idx.j ]->name );
+                bprintf("%s(%s,%s)", name, maxi, maxj );
+		break;
+    case EELM:  bprintf("(%s)", elm->val.expr );
+		break;
+  }
+}
+
+/*************************************************************************************************/
+void F77_WriteSymbol( int op )
+{
+  switch( op ) {
+    case ADD:   bprintf("+"); 
+                AllowBreak();
+    		break;
+    case SUB:   bprintf("-"); 
+                AllowBreak();
+    		break;
+    case MUL:   bprintf("*"); 
+                AllowBreak();
+    		break;
+    case DIV:   bprintf("/"); 
+                AllowBreak();
+    		break;
+    case POW:   bprintf("power");
+                break;		
+    case O_PAREN: bprintf("(");
+                AllowBreak();
+                break;            
+    case C_PAREN: bprintf(")");
+                break;            
+    case NONE:
+                break;            
+  }
+}
+
+/*************************************************************************************************/
+void F77_WriteAssign( char *ls, char *rs )
+{
+int start;
+int linelg;
+int i,j;
+char c;
+int first;
+int crtident;
+int number_of_lines = 1, MAX_NO_OF_LINES = 36;
+int ifound, jfound;
+    
+/*  Operator Mapping: 0xaa = '*' | 0xab = '+' | 0xac = ',' 
+                      0xad = '-' | 0xae ='.' | 0xaf = '/' */		      
+/* char op_mult=0xaa, op_plus=0xab, op_minus=0xad, op_dot=0xae, op_div=0xaf; */		      
+char op_mult='*', op_plus='+', op_minus='-', op_dot='.', op_div='/';		      
+  
+  crtident = 6 + ident * 2;
+  bprintf("%*s%s = ", crtident, "", ls);
+  start = strlen( ls ) + 2;
+  linelg = 70 - crtident - start - 1;
+
+  first = 1;
+  while( strlen(rs) > linelg ) {
+    ifound = 0; jfound = 0;
+    if ( number_of_lines >= MAX_NO_OF_LINES ) {/* if a new line needs to be started */
+     for( j=linelg; j>5; j-- ) /* split row here if +, -, or comma */
+       if ( ( rs[j] == op_plus )||( rs[j] == op_minus )||( rs[j]==',' ) ) { 
+        jfound = 1; i=j; break;
+	}
+    }
+    if ( ( number_of_lines < MAX_NO_OF_LINES )||( !jfound ) ) {
+     for( i=linelg; i>10; i-- ) /* split row here if operator or comma */
+       if ( ( rs[i] & 0x80 )||( rs[i]==',' ) ) {
+        ifound = 1; break;
+	}
+     if( i <= 10 ) {
+      printf("\n Warning: possible error in continuation lines for %s = ...",ls);
+      i = linelg;
+     }
+    } 
+    while ( rs[i-1] & 0x80 ) i--; /* put all operators on the next row */
+    while ( rs[i] == ',' ) i++; /* put commas on the current row */
+    
+    /*for( i=linelg; i>10; i-- )
+      if( ( rs[i] & 0x80 )||( rs[i]==',' ) )
+        break;
+    if( i < 10 ) {
+      printf("\nPossible error when cutting lines");
+      i = linelg;
+    } */
+	
+    c = rs[i]; 
+    rs[i] = 0;
+    
+    if ( first ) { /* first line in a split row */
+      bprintf("%s", rs );
+      linelg++;
+      first = 0;
+    } else {/* continuation line in a split row - but not last line*/
+      bprintf("\n     &%*s%s", start, "", rs );
+      if ( jfound ) {
+         bprintf("\n%*s%s = %s", crtident, "", ls, ls);
+	 number_of_lines = 1;
+	 }
+    }  
+    rs[i] = c;
+    rs += i;
+    number_of_lines++;
+  }
+
+  if ( number_of_lines > MAX_NO_OF_LINES )
+     printf("\n Warning: many continuation lines (%d) for %s = ...",number_of_lines,ls);
+  
+  if ( first ) bprintf("%s\n", rs ); /* non-split row */
+          else bprintf("\n     &%*s%s\n", start, "", rs ); /* last line in a split row */
+
+  FlushBuf();
+}
+
+
+/*************************************************************************************************/
+void F77_WriteComment( char *fmt, ... )
+{
+Va_list args;
+char buf[ MAX_LINE ];
+
+  Va_start( args, fmt );
+  vsprintf( buf, fmt, args );
+  va_end( args );
+  bprintf( "C %-65s\n", buf );
+
+  FlushBuf();
+}
+
+/*************************************************************************************************/
+char * F77_Decl( int v )
+{
+static char buf[120];
+VARIABLE *var;
+char *baseType;
+char maxi[20];
+char maxj[20];
+
+  var = varTable[ v ];
+  baseType = F77_types[ var->baseType ];
+  
+  *buf = 0;
+
+  switch( var->type ) {
+    case ELM:   sprintf( buf, "%s %s",
+                        baseType, var->name );
+		break;
+    case VELM:  
+                if( var->maxi > 0 ) sprintf( maxi, "%d", var->maxi );
+                if( var->maxi == 0 ) sprintf( maxi, "%d", 1 );
+                /*  else sprintf( maxi, "%s", varTable[ -var->maxi ]->name);  */
+                if ( var->maxi < 0 ) {
+		    if (varTable[ -var->maxi ]->value < 0) 
+		      sprintf( maxi, "%s", varTable[ -var->maxi ]->name );
+		    else  
+		      sprintf( maxi, "%d", (varTable[-var->maxi]->value)==0?
+		           1:varTable[-var->maxi]->value );
+		  }  
+                /* if( (var->maxi == 0) || 
+                    ((var->maxi < 0) && (varTable[ -var->maxi ]->maxi == 0)) )
+                  strcat( maxi, "+1"); */
+                sprintf( buf, "%s %s(%s)",
+                        baseType, var->name, maxi );
+		break;
+    case MELM:  if( var->maxi > 0 ) sprintf( maxi, "%d", var->maxi );
+               else { 
+		 if (varTable[ -var->maxi ]->value < 0)
+		    sprintf( maxi, "%s", varTable[ -var->maxi ]->name );
+		 else  
+		    sprintf( maxi, "%d", (varTable[-var->maxi]->value)==0?
+		           1:varTable[-var->maxi]->value );
+	       }  
+                /* if( (var->maxi == 0) || 
+                    ((var->maxi < 0) && (varTable[ -var->maxi ]->maxi == 0)) )
+                  strcat( maxi, "+1"); */
+                if( var->maxj > 0 ) sprintf( maxj, "%d", var->maxj );
+                else {
+		  if (varTable[ -var->maxj ]->value < 0)
+		     sprintf( maxj, "%s", varTable[ -var->maxj ]->name );
+		  else  
+		     sprintf( maxj, "%d", (varTable[-var->maxj]->value)==0?
+		           1:varTable[-var->maxj]->value );
+		  }  
+                /*if( (var->maxj == 0) || 
+                    ((var->maxj < 0 ) && (varTable[ -var->maxj ]->maxi == 0)) )
+                  strcat( maxj, "+1");*/
+                sprintf( buf, "%s %s(%s,%s)",
+                         baseType, var->name, maxi, maxj );  
+		break;
+    default:
+                printf( "Can not declare type %d\n", var->type );
+                break;
+  }
+  return buf;
+}
+
+/*************************************************************************************************/
+void F77_Declare( int v )
+{
+  if( varTable[ v ]->comment ) {
+    F77_WriteComment( "%s - %s", 
+                    varTable[ v ]->name, varTable[ v ]->comment );
+  }
+  bprintf("      %s\n", F77_Decl(v) );
+
+  FlushBuf();
+}
+
+/*************************************************************************************************/
+void F77_ExternDeclare( int v )
+{
+  F77_Declare( v );
+  bprintf("      COMMON /%s/ %s\n", CommonName, varTable[ v ]->name );
+}
+
+/*************************************************************************************************/
+void F77_GlobalDeclare( int v )
+{
+}
+
+/*************************************************************************************************/
+void F77_DeclareConstant( int v, char *val ) 
+{
+VARIABLE *var;
+int ival;
+char dummy_val[100];           /* used just to avoid strange behaviour of
+                                  sscanf when compiled with gcc */
+                                  
+  strcpy(dummy_val,val);val = dummy_val;
+
+  var = varTable[ v ];
+  
+  if( sscanf(val, "%d", &ival) == 1 )
+    if( ival == 0 ) var->maxi = 0;
+               else var->maxi = 1;
+  else
+    var->maxi = -1;       
+  
+  if( var->comment ) 
+    F77_WriteComment( "%s - %s", var->name, var->comment );
+
+  switch( var->type ) {
+    case CONST: bprintf("      %s %s\n", 
+                       F77_types[ var->baseType ], var->name );
+                bprintf("      PARAMETER ( %s = %s )\n", 
+                       var->name, val);
+                break;       
+    default:
+                printf( "Invalid constant %d", var->type );
+                break;
+  }
+
+  FlushBuf();
+}
+
+/*************************************************************************************************/
+void WriteVecData( VARIABLE * var, int min, int max, int split )
+{
+char buf[80];
+char *p;
+
+  if( split )
+    sprintf( buf, "%6sDATA( %s(i), i = %d, %d ) /\n%5s*", 
+                " ", var->name, min, max, " " );
+  else
+    sprintf( buf, "%6sDATA %s /\n%5s*",
+                    " ", var->name, " " );
+                                      
+  FlushThisBuf( buf );
+  bprintf( " / \n\n" );
+  FlushBuf();        
+}
+
+/*************************************************************************************************/
+void F77_DeclareData( int v, int * values, int n )
+{
+int i, j;
+int nlines, min, max;
+int split;
+VARIABLE *var;
+int * ival;
+double * dval;
+char **cval;
+int maxCols = MAX_COLS;
+char dsbuf[55];
+
+  var = varTable[ v ];
+  ival = (int*) values;
+  dval = (double*) values;
+  cval = (char**) values;
+    
+  nlines = 1;
+  min = max = 1;
+  split = 0;
+
+  switch( var->type ) {
+    case VELM: if( n <= 0 ) break;
+    	       for( i = 0; i < n; i++ ) {
+                 switch( var->baseType ) {
+                   case INT: bprintf( "%3d",  ival[i] ); maxCols=12; break;
+                   case DOUBLE: 
+                   case REAL:bprintf( "%5lg", dval[i] ); maxCols=8; break;
+                   case STRING:bprintf( "'%s'", cval[i] ); maxCols=5; break;
+                   case DOUBLESTRING:
+		        strncpy( dsbuf, cval[i], 54 ); dsbuf[54]='\0';
+		        bprintf( "'%48s'", dsbuf ); maxCols=1; break;
+                 }
+                 if( ( (i+1) % 12 == 0 ) && ( nlines > MAX_LINES ) ) {
+                     split = 1; nlines = 1;
+                     WriteVecData( var, min, max, split );  
+                     min = max + 1;
+                 } 
+                 else { 
+                   if( i < n-1 ) bprintf( "," );
+                   if( (i+1) % maxCols == 0 ) { 
+                     bprintf( "\n%5s*", " " );
+                     nlines++;                 
+                   }  
+                 }  
+                 max ++;
+               }
+               WriteVecData( var, min, max-1, split );
+               break;
+                                                                 
+    case ELM:  bprintf( "%6sDATA %s / ", " ", var->name );
+               switch( var->baseType ) {
+                 case INT: bprintf( "%d",  *ival ); break;
+                 case DOUBLE: 
+                 case REAL:bprintf( "%lg", *dval ); break;
+                 case STRING:bprintf( "'%s'", *cval ); break;
+                 case DOUBLESTRING:		        
+		        strncpy( dsbuf, *cval, 54 ); dsbuf[54]='\0';
+		        bprintf( "'%s'", dsbuf ); maxCols=1; break;
+                        /* bprintf( "'%50s'", *cval ); break; */
+               }
+               bprintf( " / \n" );
+               FlushBuf();
+               break;
+    default:
+               printf( "\n Function not defined !\n" );
+               break;
+  }
+}
+
+/*************************************************************************************************/
+void F77_InitDeclare( int v, int n, void * values )
+{
+int i;
+VARIABLE * var;
+
+  var = varTable[ v ];
+  var->maxi = max( n, 1 );
+
+  NewLines(1);  
+  F77_DeclareData( v, values, n );
+}
+
+/*************************************************************************************************/
+void F77_FunctionStart( int f, int *vars )
+{
+int i;
+int v;
+char * name;
+int narg;
+
+  name = varTable[ f ]->name;
+  narg = varTable[ f ]->maxi;
+
+  bprintf("      SUBROUTINE %s ( ", name );
+  for( i = 0; i < narg-1; i++ ) {
+    v = vars[ i ];
+    bprintf("%s, ", varTable[ v ]->name );
+  }
+  if( narg >= 1 ) {
+    v = vars[ narg-1 ];
+    bprintf("%s ", varTable[ v ]->name );
+  }
+  bprintf(")\n");
+
+  FlushBuf();
+}                  
+
+/*************************************************************************************************/
+void F77_FunctionPrototipe( int f, ... )
+{
+char * name;
+int narg;
+
+  name = varTable[ f ]->name;
+  narg = varTable[ f ]->maxi;
+
+  bprintf("      EXTERNAL %s\n", name );
+
+  FlushBuf();
+}
+
+/*************************************************************************************************/
+void F77_FunctionBegin( int f, ... )
+{
+Va_list args;
+int i;
+int v;
+int vars[20];
+char * name;
+int narg;
+FILE *oldf;
+
+  name = varTable[ f ]->name;
+  narg = varTable[ f ]->maxi;
+    
+  Va_start( args, f );
+  for( i = 0; i < narg; i++ ) 
+    vars[ i ] = va_arg( args, int );
+  va_end( args );
+    
+  CommentFncBegin( f, vars );
+  F77_FunctionStart( f, vars );
+  NewLines(1);
+  bprintf("      IMPLICIT NONE\n" );
+  bprintf("      INCLUDE '%s_Parameters.h'\n\n", rootFileName );
+
+  FlushBuf();
+
+  for( i = 0; i < narg; i++ ) 
+    F77_Declare( vars[ i ] );
+
+  bprintf("\n");
+  FlushBuf();
+
+  MapFunctionComment( f, vars );
+}
+
+/*************************************************************************************************/
+void F77_FunctionEnd( int f )
+{
+  bprintf("      RETURN\n");
+  bprintf("      END\n\n");
+
+  FlushBuf();
+
+  CommentFunctionEnd( f );
+}
+
+/*************************************************************************************************/
+void F77_Inline( char *fmt, ... )
+{
+Va_list args;
+char buf[ 1000 ];
+
+  if( useLang != F77_LANG ) return;
+  
+  Va_start( args, fmt );
+  vsprintf( buf, fmt, args );
+  va_end( args );
+  bprintf( "%s\n", buf );
+  
+  FlushBuf();
+}
+
+/*************************************************************************************************/
+void Use_F()
+{ 
+  WriteElm 	    = F77_WriteElm;
+  WriteSymbol 	    = F77_WriteSymbol;  
+  WriteAssign 	    = F77_WriteAssign;
+  WriteComment 	    = F77_WriteComment;
+  DeclareConstant   = F77_DeclareConstant;
+  Declare           = F77_Declare;
+  ExternDeclare     = F77_ExternDeclare;
+  GlobalDeclare     = F77_GlobalDeclare;
+  InitDeclare       = F77_InitDeclare;
+
+  FunctionStart     = F77_FunctionStart;
+  FunctionPrototipe = F77_FunctionPrototipe;
+  FunctionBegin     = F77_FunctionBegin;
+  FunctionEnd       = F77_FunctionEnd;
+
+  OpenFile( &param_headerFile,   rootFileName, "_Parameters.h", "Parameter Header File" );
+  OpenFile( &initFile, rootFileName, "_Initialize.f", "Initialization File" );
+  OpenFile( &driverFile, rootFileName, "_Main.f", "Main Program File" );
+  OpenFile( &integratorFile, rootFileName, "_Integrator.f", 
+                   "Numerical Integrator (Time-Stepping) File" );
+  OpenFile( &linalgFile, rootFileName, "_LinearAlgebra.f", 
+                   "Linear Algebra Data and Routines File" );
+  OpenFile( &functionFile, rootFileName, "_Function.f", 
+                   "The ODE Function of Chemical Model File" );
+  OpenFile( &jacobianFile, rootFileName, "_Jacobian.f", 
+                   "The ODE Jacobian of Chemical Model File" );
+  OpenFile( &rateFile, rootFileName, "_Rates.f", 
+                   "The Reaction Rates File" );
+  if ( useStochastic )
+    OpenFile( &stochasticFile, rootFileName, "_Stochastic.f", 
+                   "The Stochastic Chemical Model File" );
+  if ( useStoicmat ) {
+     OpenFile( &stoichiomFile, rootFileName, "_Stoichiom.f", 
+                   "The Stoichiometric Chemical Model File" );
+     OpenFile( &sparse_stoicmFile, rootFileName, "_StoichiomSP.f", 
+                   "Sparse Stoichiometric Data Structures File" );
+  }		   
+  OpenFile( &utilFile, rootFileName, "_Util.f", 
+                   "Auxiliary Routines File" );
+  OpenFile( &sparse_dataFile, rootFileName, "_Sparse.h", "Sparse Data Header File" );
+  OpenFile( &global_dataFile, rootFileName, "_Global.h", "Global Data Header File" );
+  if ( useJacSparse ) {
+     OpenFile( &sparse_jacFile, rootFileName, "_JacobianSP.f",
+         "Sparse Jacobian Data Structures File" );  
+  }
+  if ( useHessian ) {
+     OpenFile( &hessianFile, rootFileName, "_Hessian.f", "Hessian File" );
+     OpenFile( &sparse_hessFile, rootFileName, "_HessianSP.f",
+         "Sparse Hessian Data Structures File" );
+  }     
+  OpenFile( &mapFile, rootFileName, ".map", 
+                   "Map File with Human-Readable Information" );
+  OpenFile( &monitorFile, rootFileName, "_Monitor.f", 
+                   "Initialization of Utility Data Structures" );
+} 
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/src/code_f90.c
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/src/code_f90.c	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/src/code_f90.c	(revision 2696)
@@ -0,0 +1,767 @@
+/******************************************************************************
+
+  KPP - The Kinetic PreProcessor
+        Builds simulation code for chemical kinetic systems
+
+  Copyright (C) 1995-1996 Valeriu Damian and Adrian Sandu
+  Copyright (C) 1997-2005 Adrian Sandu
+
+  KPP is free software; you can redistribute it and/or modify it under the
+  terms of the GNU General Public License as published by the Free Software
+  Foundation (http://www.gnu.org/copyleft/gpl.html); either version 2 of the
+  License, or (at your option) any later version.
+
+  KPP is distributed in the hope that it will be useful, but WITHOUT ANY
+  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+  FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+  details.
+
+  You should have received a copy of the GNU General Public License along
+  with this program; if not, consult http://www.gnu.org/copyleft/gpl.html or
+  write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+  Boston, MA  02111-1307,  USA.
+
+  Adrian Sandu
+  Computer Science Department
+  Virginia Polytechnic Institute and State University
+  Blacksburg, VA 24060
+  E-mail: sandu@cs.vt.edu
+
+******************************************************************************/
+
+
+#include "gdata.h"
+#include "code.h"
+#include <string.h>
+#include <stdio.h>
+
+#define MAX_LINE 120
+
+char *F90_types[] = { "",                   /* VOID */ 
+                    "INTEGER",            /* INT */
+                    "REAL(kind=sp)",      /* FLOAT */
+                    "REAL(kind=dp)",      /* DOUBLE */
+                    "CHARACTER(LEN=15)",  /* STRING */
+                    "CHARACTER(LEN=100)"  /* DOUBLESTRING */
+                  };
+
+/*************************************************************************************************/
+void F90_WriteElm( NODE * n )
+{
+ELEMENT *elm;
+char * name;
+char maxi[20];
+char maxj[20];
+
+  elm = n->elm;
+  name = varTable[ elm->var ]->name;
+
+  switch( n->type ) {
+    case CONST: bprintf("%g", elm->val.cnst);
+		break;
+    case ELM:   bprintf("%s", name);
+		break;
+    case VELM:  if( elm->val.idx.i >= 0 ) sprintf( maxi, "%d", elm->val.idx.i+1 );
+                  else sprintf( maxi, "%s", varTable[ -elm->val.idx.i ]->name );
+                bprintf("%s(%s)", name, maxi ); 
+		break;
+    case MELM:  if( elm->val.idx.i >= 0 ) sprintf( maxi, "%d", elm->val.idx.i+1 );
+                  else sprintf( maxi, "%s", varTable[ -elm->val.idx.i ]->name );
+                if( elm->val.idx.j >= 0 ) sprintf( maxj, "%d", elm->val.idx.j+1 );
+                  else sprintf( maxj, "%s", varTable[ -elm->val.idx.j ]->name );
+                bprintf("%s(%s,%s)", name, maxi, maxj );
+		break;
+    case EELM:  bprintf("(%s)", elm->val.expr );
+		break;
+  }
+}
+
+/*************************************************************************************************/
+void F90_WriteSymbol( int op )
+{
+  switch( op ) {
+    case ADD:   bprintf("+"); 
+                AllowBreak();
+    		break;
+    case SUB:   bprintf("-"); 
+                AllowBreak();
+    		break;
+    case MUL:   bprintf("*"); 
+                AllowBreak();
+    		break;
+    case DIV:   bprintf("/"); 
+                AllowBreak();
+    		break;
+    case POW:   bprintf("power");
+                break;		
+    case O_PAREN: bprintf("(");
+                AllowBreak();
+                break;            
+    case C_PAREN: bprintf(")");
+                break;            
+    case NONE:
+                break;            
+  }
+}
+
+/*************************************************************************************************/
+void F90_WriteAssign( char *ls, char *rs )
+{
+int start;
+int linelg;
+int i, j;
+int ifound, jfound;
+char c;
+int first;
+int crtident;
+
+/* Max no of continuation lines in F90/F95 differs with compilers, but 39
+                               should work for every compiler*/
+int number_of_lines = 1, MAX_NO_OF_LINES = 36;
+
+/*  Operator Mapping: 0xaa = '*' | 0xab = '+' | 0xac = ',' 
+                      0xad = '-' | 0xae ='.' | 0xaf = '/' */		      
+/* char op_mult=0xaa, op_plus=0xab, op_minus=0xad, op_dot=0xae, op_div=0xaf; */		      
+char op_mult='*', op_plus='+', op_minus='-', op_dot='.', op_div='/';		      
+  
+  crtident = 2 + ident * 2;
+  bprintf("%*s%s = ", crtident, "", ls);
+  start = strlen( ls ) + 2;
+  linelg = 120 - crtident - start - 1; /* F90 max line length is 132 */
+
+  first = 1;
+  while( strlen(rs) > linelg ) {
+    ifound = 0; jfound = 0;
+    if ( number_of_lines >= MAX_NO_OF_LINES ) {
+     /* If a new line needs to be started. 
+          Note: the approach below will create erroneous code if the +/- is within a subexpression, e.g. for
+          A*(B+C) one cannot start a new continuation line by splitting at the + sign */
+     for( j=linelg; j>5; j-- ) /* split row here if +, -, or comma */
+       if ( ( rs[j] == op_plus )||( rs[j] == op_minus )||( rs[j]==',' ) ) { 
+        jfound = 1; i=j; break;
+	}
+    }
+    if ( ( number_of_lines < MAX_NO_OF_LINES )||( !jfound ) ) {
+     for( i=linelg; i>10; i-- ) /* split row here if operator or comma */
+       if ( ( rs[i] & 0x80 )||( rs[i]==',' ) ) {
+        ifound = 1; break;
+	}
+     if( i <= 10 ) {
+       printf("\n Warning: double-check continuation lines for:\n   %s = %s\n",ls,rs);
+       i = linelg;
+     }
+    } 
+    while ( rs[i-1] & 0x80 ) i--; /* put all operators on the next row */
+    while ( rs[i] == ',' ) i++;   /* put commas on the current row */
+    
+    c = rs[i]; 
+    rs[i] = 0;
+    
+    if ( first ) { /* first line in a split row */
+      bprintf("%s", rs ); 
+      linelg++;
+      first = 0;
+    } else {/* continuation line in a split row - but not last line*/
+      bprintf("&\n     %*s&%s", start, "", rs );		
+      if ( jfound ) {
+         bprintf("\n%*s%s = %s", crtident, "", ls, ls);
+	 number_of_lines = 1;
+	 }
+    }  
+    rs[i] = c;
+    rs += i;  /* jump to the first not-yet-written character */
+    number_of_lines++;
+  }
+  
+  if ( number_of_lines > MAX_NO_OF_LINES ) {
+     printf("\n Warning: %d continuation lines for %s = ...",number_of_lines,ls);
+     }
+
+  if ( first ) bprintf("%s\n", rs );  /* non-split row */
+          else bprintf("&\n     %*s&%s\n", start, "", rs ); /* last line in a split row */
+
+
+  FlushBuf();
+}
+
+
+/*************************************************************************************************/
+void F90_WriteComment( char *fmt, ... )
+{
+Va_list args;
+int n;
+char buf[ MAX_LINE ];
+
+  Va_start( args, fmt );
+  vsprintf( buf, fmt, args );
+  va_end( args );
+  /* remove trailing spaces */
+  /* taken from http://www.cs.bath.ac.uk/~pjw/NOTES/ansi_c/ch10-idioms.pdf */
+  for (n= strlen(buf) - 1; n >= 0; n--) 
+    if (buf[n] != ' ') break; 
+  buf[n + 1]= '\0';
+  bprintf( "! %s\n", buf );
+  FlushBuf();
+}
+
+/*************************************************************************************************/
+char * F90_Decl( int v )
+{
+static char buf[120];
+VARIABLE *var;
+char *baseType;
+char maxi[20];
+char maxj[20];
+
+  var = varTable[ v ];
+  baseType = F90_types[ var->baseType ];
+  
+  *buf = 0;
+
+  switch( var->type ) {
+    case ELM:   
+                sprintf( buf, "%s :: %s", baseType, var->name );
+		break;
+    case VELM:  
+                if( var->maxi > 0 ) sprintf( maxi, "%d", var->maxi );
+                /*  else sprintf( maxi, "%s", varTable[ -var->maxi ]->name); */ 
+                /*sprintf( buf, "%s, DIMENSION(%s) :: %s", baseType, maxi, var->name );*/
+                if( var->maxi == 0 ) sprintf( maxi, "%d", 1 );
+                /*  else sprintf( maxi, "%s", varTable[ -var->maxi ]->name);  */
+                if ( var->maxi < 0 ) {
+		    if (varTable[ -var->maxi ]->value < 0) 
+		      sprintf( maxi, "%s", varTable[ -var->maxi ]->name );
+		    else  
+		      sprintf( maxi, "%d", (varTable[-var->maxi]->value)==0?
+		           1:varTable[-var->maxi]->value );
+		}  
+                sprintf( buf, "%s :: %s(%s)", baseType, var->name, maxi );
+ 		break;
+    case MELM:  
+                if( var->maxi > 0 ) sprintf( maxi, "%d", var->maxi );
+                else { 
+		 if (varTable[ -var->maxi ]->value < 0)
+		    sprintf( maxi, "%s", varTable[ -var->maxi ]->name );
+		 else  
+		    sprintf( maxi, "%d", (varTable[-var->maxi]->value)==0?
+		           1:varTable[-var->maxi]->value );
+	        }  
+                /*  else sprintf( maxi, "%s", varTable[ -var->maxi ]->name);  */
+                /* if( (var->maxi == 0) || 
+                    ((var->maxi < 0) && (varTable[ -var->maxi ]->maxi == 0)) )
+                  strcat( maxi, "+1"); */
+                if( var->maxj > 0 ) sprintf( maxj, "%d", var->maxj );
+                else { 
+		 if (varTable[ -var->maxj ]->value < 0)
+		    sprintf( maxj, "%s", varTable[ -var->maxj ]->name );
+		 else  
+		    sprintf( maxj, "%d", (varTable[-var->maxj]->value)==0?
+		           1:varTable[-var->maxj]->value );
+	        }  
+                /*  else sprintf( maxj, "%s", varTable[ -var->maxj ]->name);  */
+                /*if( (var->maxj == 0) || 
+                    ((var->maxj < 0 ) && (varTable[ -var->maxj ]->maxi == 0)) )
+                  strcat( maxj, "+1");*/
+                /*sprintf( buf, "%s, DIMENSION(%s,%s) :: %s",			
+                         baseType, maxi, maxj,var->name ); */ 
+                sprintf( buf, "%s :: %s(%s,%s)",			
+                         baseType, var->name, maxi, maxj );  
+		break;
+    default:
+                printf( "Can not declare type %d\n", var->type );
+                break;
+  }
+  return buf;
+}
+
+/*************************************************************************************************/
+char * F90_DeclareData( int v, void * values, int n)
+{
+int i, j;
+int nlines;
+int split;
+static char buf[120];
+VARIABLE *var;
+int * ival;
+double * dval;
+char ** cval;
+char *baseType;
+char maxi[20];
+char maxj[20];
+int maxCols = MAX_COLS;
+char dsbuf[200];
+ 
+ int i_from, i_to;
+ int isplit;
+ int splitsize;
+ int maxi_mod;
+ int maxi_div;
+ 
+ char mynumber[30];
+
+  var = varTable[ v ];
+  ival = (int*) values;
+  dval = (double *) values;
+  cval = (char **) values;
+
+  nlines = 1;
+  split = 0;
+  var -> maxi = max( n, 1 );
+
+  baseType = F90_types[ var->baseType ];
+  
+  *buf = 0;
+
+  switch( var->type ) {	
+    case ELM:   
+	    bprintf( "  %s :: %s = ", baseType, var->name );
+		switch ( var->baseType ) {
+		  case INT: bprintf( "%d", *ival ); break;
+		  case DOUBLE: bprintf( "%f", *dval); break;
+		  case REAL: bprintf( "%lg", *dval ); break;
+		  case STRING: bprintf( "'%3s'", *cval ); break;
+		}
+		break;
+    case VELM:
+      /* define maxCols here already and choose suitable splitsize */
+      switch( var -> baseType ) {
+      case INT:          maxCols =12; break;
+      case DOUBLE:       maxCols = 5; break;
+      case REAL:         maxCols = 5; break;
+      case STRING:       maxCols = 3; break;
+      case DOUBLESTRING: maxCols = 1; break;
+      }
+      splitsize = 30 * maxCols; /* elements = lines * columns */ 
+      maxi_mod = var->maxi % splitsize;
+      maxi_div = var->maxi / splitsize;
+      /* correction if var->maxi is a multiple of splitsize */
+      if ( (maxi_div>0) && (maxi_mod==0) ) {
+        maxi_mod = splitsize;
+        maxi_div--;
+      }
+      for ( isplit=0; isplit <= maxi_div; isplit++ ) {
+        if( var->maxi > 0 ) sprintf( maxi, "%d", var->maxi );
+        else sprintf( maxi, "%s", varTable[ -var->maxi ]->name );  
+        if( (var->maxi == 0) || 
+            ((var->maxi < 0) && (varTable[ -var->maxi ]->maxi == 0)) )
+          strcat( maxi, "+1");
+        bprintf( "  %s, " , baseType);
+        if( n>0 ) bprintf( "PARAMETER, " ); /* if values are assigned now */
+        if ( maxi_div==0 ) { /* define array in one piece */
+          bprintf( "DIMENSION(%s) :: %s", 
+                   maxi, var->name) ;
+        } else {/* define partial arrays */
+          if ( isplit==maxi_div ) { /* last part has size maxi_mod */
+            bprintf( "DIMENSION(%d) :: %s_%d", 
+                     maxi_mod, var->name, isplit) ;
+          } else { /* all other parts have size splitsize */
+            bprintf( "DIMENSION(%d) :: %s_%d", 
+                     splitsize, var->name, isplit) ;
+          }
+        }
+        if( n<=0 ) break;
+
+        /* now list values */
+        bprintf( " = (/ &\n     " );
+        /*   if the array is defined in one piece, then the for loop will
+                 go from 0 to n. Otherwise, there will be partial arrays from
+                 i_from to i_to which are of size splitsize except for the
+                 last one which is usually smaller and contains the rest */
+        i_from = isplit * splitsize;
+        i_to   = min(i_from+splitsize,n);
+        for ( i=i_from; i < i_to; i++ ) {
+          switch( var -> baseType ) {
+          case INT:
+            bprintf( "%3d", ival[i] ); break;
+          case DOUBLE:
+            /* bprintf( "%4f", dval[i] ); maxCols = 5; break; */
+	    sprintf(mynumber, "%12.6e_dp",dval[i]);
+            /* mynumber[ strlen(mynumber)-4 ] = 'd'; */
+            bprintf( "  %s", mynumber ); break;
+          case REAL:
+            bprintf( "%12.6e", dval[i] ); break;
+          case STRING:
+            bprintf( "'%-15s'", cval[i] ); break;
+          case DOUBLESTRING:
+            /* strncpy( dsbuf, cval[i], 54 ); dsbuf[54]='\0'; */
+            /* bprintf( "'%48s'", dsbuf ); break; */
+            bprintf( "'%-100.100s'", cval[i] ); break;
+          }
+          if( i < i_to-1 ) {
+            bprintf( "," );
+            if( (i+1) % maxCols == 0 ) {
+              bprintf( " &\n     " );
+              nlines++;
+            }
+          }
+        }
+        bprintf( " /)\n" );
+        /* mz_rs added FlushBuf, otherwise MAX_OUTBUF would have to be very large */
+        FlushBuf();
+      }
+
+      /* combine the partial arrays */
+      if ( maxi_div != 0 ) {
+        bprintf( "  %s, PARAMETER, DIMENSION(%s) :: %s = (/&\n    ", 
+                 baseType, maxi, var->name) ;
+        for ( isplit=0; isplit <= maxi_div; isplit++ ) {
+          bprintf( "%s_%d", var->name, isplit) ;
+          if( isplit < maxi_div ) { /* more parts will follow */
+            bprintf( ", " );
+            /* line break after 5 variables */
+            if( (isplit+1) % 5 == 0 ) bprintf( "&\n    " );
+          } else { /* after last part */
+            bprintf( " /)\n" );
+          }
+        }
+      }
+
+      break;
+				
+    case MELM:  if( var->maxi > 0 ) sprintf( maxi, "%d", var->maxi );
+                  else sprintf( maxi, "%s", varTable[ -var->maxi ]->name );  
+                if( (var->maxi == 0) || 
+                    ((var->maxi < 0) && (varTable[ -var->maxi ]->maxi == 0)) )
+                  strcat( maxi, "+1");
+                if( var->maxj > 0 ) sprintf( maxj, "%d", var->maxj );
+                  else sprintf( maxj, "%s", varTable[ -var->maxj ]->name );  
+                if( (var->maxj == 0) || 
+                    ((var->maxj < 0 ) && (varTable[ -var->maxj ]->maxi == 0)) )
+                  strcat( maxj, "+1");
+                sprintf( buf, "%s, DIMENSION(%s,%s) :: %s\n",	/* changed here */		
+                         baseType, maxi, maxj,var->name );  
+		break;
+    default:
+                printf( "Can not declare type %d", var->type );
+                break;
+  }
+  return buf;
+}
+
+/*************************************************************************************************/
+void F90_Declare( int v )
+{
+  if( varTable[ v ]->comment ) {
+    F90_WriteComment( "%s - %s", 
+                    varTable[ v ]->name, varTable[ v ]->comment );
+  }
+  bprintf("  %s\n", F90_Decl(v) );
+
+  FlushBuf();
+}
+
+/*************************************************************************************************/
+void F90_ExternDeclare( int v )
+{
+  F90_Declare( v );
+//  bprintf("      COMMON /%s/ %s\n", CommonName, varTable[ v ]->name );
+}
+
+/*************************************************************************************************/
+void F90_GlobalDeclare( int v )
+{
+}
+
+/*************************************************************************************************/
+void F90_DeclareConstant( int v, char *val ) 
+{
+VARIABLE *var;
+int ival;
+char dummy_val[100];           /* used just to avoid strange behaviour of
+                                  sscanf when compiled with gcc */
+                                  
+  strcpy(dummy_val,val);val = dummy_val;
+
+  var = varTable[ v ];
+  
+  if( sscanf(val, "%d", &ival) == 1 )
+    if( ival == 0 ) var->maxi = 0;
+               else var->maxi = 1;
+  else
+    var->maxi = -1;       
+  
+  if( var->comment ) 
+    F90_WriteComment( "%s - %s", var->name, var->comment );
+
+  switch( var->type ) {
+    case CONST: bprintf("  %s, PARAMETER :: %s = %s \n",	
+                       F90_types[ var->baseType ], var->name, val );
+                break;       
+    default:
+                printf( "Invalid constant %d", var->type );
+                break;
+  }
+
+  FlushBuf();
+}
+
+
+/*************************************************************************************************/
+void F90_WriteVecData( VARIABLE * var, int min, int max, int split )	
+{
+char buf[80];
+char *p;
+
+  if( split )
+    sprintf( buf, "%6sdata( %s(i), i = %d, %d ) / &\n%5s", 		
+                " ", var->name, min, max, " " );
+  else
+    sprintf( buf, "%6sdata %s / &\n%5s",
+                    " ", var->name, " " );
+                                      
+  FlushThisBuf( buf );
+  bprintf( " / \n\n" );
+  FlushBuf();        
+}
+
+/*************************************************************************************************/
+void F90_DeclareDataOld( int v, int * values, int n )
+{
+int i, j;
+int nlines, min, max;
+int split;
+VARIABLE *var;
+int * ival;
+double * dval;
+char **cval;
+int maxCols = MAX_COLS;
+char dsbuf[55];
+
+  var = varTable[ v ];
+  ival = (int*) values;
+  dval = (double*) values;
+  cval = (char**) values;
+    
+  nlines = 1;
+  min = max = 1;
+  split = 0;
+
+  switch( var->type ) {
+     case VELM: if( n <= 0 ) break;
+    	       for( i = 0; i < n; i++ ) {
+                 switch( var->baseType ) {
+                   case INT: bprintf( "%3d",  ival[i] ); maxCols=12; break;
+                   case DOUBLE: 
+                   case REAL:bprintf( "%5lg", dval[i] ); maxCols=8; break;
+                   case STRING:bprintf( "'%s'", cval[i] ); maxCols=5; break;
+                   case DOUBLESTRING:
+		        strncpy( dsbuf, cval[i], 54 ); dsbuf[54]='\0';
+		        bprintf( "'%48s'", dsbuf ); maxCols=1; break;
+                 }
+                 if( ( (i+1) % 12 == 0 ) && ( nlines > MAX_LINES ) ) {
+                     split = 1; nlines = 1;
+                     F90_WriteVecData( var, min, max, split );  
+                     min = max + 1;
+                 } 
+                 else { 
+                   if( i < n-1 ) bprintf( "," );
+                   if( (i+1) % maxCols == 0 ) { 
+                     bprintf( "\n%5s", " " );
+                     nlines++;                 
+                   }  
+                 }  
+                 max ++;
+               }
+               F90_WriteVecData( var, min, max-1, split );
+               break;
+                                                                 
+    case ELM:  bprintf( "%6sdata %s / ", " ", var->name );
+               switch( var->baseType ) {
+                 case INT: bprintf( "%d",  *ival ); break;
+                 case DOUBLE: 
+                 case REAL:bprintf( "%lg", *dval ); break;
+                 case STRING:bprintf( "'%s'", *cval ); break;
+                 case DOUBLESTRING:		        
+		        strncpy( dsbuf, *cval, 54 ); dsbuf[54]='\0';
+		        bprintf( "'%s'", dsbuf ); maxCols=1; break;
+                        /* bprintf( "'%50s'", *cval ); break; */
+               }
+               bprintf( " / \n" );
+               FlushBuf();
+               break;
+    default:
+               printf( "\n Function not defined !\n" );
+               break;
+  }
+}
+
+/*************************************************************************************************/
+void F90_InitDeclare( int v, int n, void * values )
+{
+int i;
+VARIABLE * var;
+
+  var = varTable[ v ];
+  var->maxi = max( n, 1 );
+
+  NewLines(1);  
+  F90_DeclareData( v, values, n );
+}
+
+/*************************************************************************************************/
+void F90_FunctionStart( int f, int *vars )
+{
+int i;
+int v;
+char * name;
+int narg;
+
+  name = varTable[ f ]->name;
+  narg = varTable[ f ]->maxi;
+
+  bprintf("SUBROUTINE %s ( ", name );
+  for( i = 0; i < narg-1; i++ ) {
+    v = vars[ i ];
+    bprintf("%s, ", varTable[ v ]->name );
+  }
+  if( narg >= 1 ) {
+    v = vars[ narg-1 ];
+    bprintf("%s ", varTable[ v ]->name );
+  }
+  bprintf(")\n");
+
+  FlushBuf();
+}                  
+
+/*************************************************************************************************/
+void F90_FunctionPrototipe( int f, ... )
+{
+char * name;
+int narg;
+
+  name = varTable[ f ]->name;
+  narg = varTable[ f ]->maxi;
+
+  bprintf("      EXTERNAL %s\n", name );
+
+  FlushBuf();
+}
+
+/*************************************************************************************************/
+void F90_FunctionBegin( int f, ... )
+{
+Va_list args;
+int i;
+int v;
+int vars[20];
+char * name;
+int narg;
+FILE *oldf;
+
+  name = varTable[ f ]->name;
+  narg = varTable[ f ]->maxi;
+    
+  Va_start( args, f );
+  for( i = 0; i < narg; i++ ) 
+    vars[ i ] = va_arg( args, int );
+  va_end( args );
+    
+  CommentFncBegin( f, vars );
+  F90_FunctionStart( f, vars );
+  NewLines(1);
+ /*  bprintf("  USE %s_Precision\n", rootFileName );
+  bprintf("  USE %s_Parameters\n\n", rootFileName ); */
+ /*  bprintf("      IMPLICIT NONE\n" ); */
+
+  FlushBuf();
+
+  for( i = 0; i < narg; i++ ) 
+    F90_Declare( vars[ i ] );
+
+  bprintf("\n");
+  FlushBuf();
+
+  MapFunctionComment( f, vars );
+}
+
+/*************************************************************************************************/
+void F90_FunctionEnd( int f )
+{
+  bprintf("      \nEND SUBROUTINE %s\n\n", varTable[ f ]->name );
+
+  FlushBuf();
+
+  CommentFunctionEnd( f );
+}
+
+/*************************************************************************************************/
+void F90_Inline( char *fmt, ... )
+{
+va_list args;
+char buf[ 1000 ];
+
+  if( useLang != F90_LANG ) return;
+  
+  va_start( args, fmt );
+  vsprintf( buf, fmt, args );
+  va_end( args );
+  bprintf( "%s\n", buf ); 
+  
+  FlushBuf();
+
+}
+
+/*************************************************************************************************/
+void Use_F90()
+{ 
+  WriteElm 	    = F90_WriteElm;
+  WriteSymbol 	    = F90_WriteSymbol;  
+  WriteAssign 	    = F90_WriteAssign;
+  WriteComment 	    = F90_WriteComment;
+  DeclareConstant   = F90_DeclareConstant;
+  Declare           = F90_Declare;
+  ExternDeclare     = F90_ExternDeclare;
+  GlobalDeclare     = F90_GlobalDeclare;
+  InitDeclare       = F90_InitDeclare;
+
+  FunctionStart     = F90_FunctionStart;
+  FunctionPrototipe = F90_FunctionPrototipe;
+  FunctionBegin     = F90_FunctionBegin;
+  FunctionEnd       = F90_FunctionEnd;
+
+  OpenFile( &param_headerFile,   rootFileName, "_Parameters.f90", "Parameter Module File" );
+  /*  mz_rs_20050117+ */
+  OpenFile( &initFile, rootFileName, "_Initialize.f90", "Initialization File" );
+  /*  mz_rs_20050117- */
+  /* mz_rs_20050518+ no driver file if driver = none */
+  if( strcmp( driver, "none" ) != 0 )
+    OpenFile( &driverFile, rootFileName, "_Main.f90", "Main Program File" );
+  /* mz_rs_20050518- */
+  OpenFile( &integratorFile, rootFileName, "_Integrator.f90", 
+                   "Numerical Integrator (Time-Stepping) File" );
+  OpenFile( &linalgFile, rootFileName, "_LinearAlgebra.f90", 
+                   "Linear Algebra Data and Routines File" );
+  OpenFile( &functionFile, rootFileName, "_Function.f90", 
+                   "The ODE Function of Chemical Model File" );
+  OpenFile( &jacobianFile, rootFileName, "_Jacobian.f90", 
+                   "The ODE Jacobian of Chemical Model File" );
+  OpenFile( &rateFile, rootFileName, "_Rates.f90", 
+                   "The Reaction Rates File" );
+  if ( useStochastic )
+    OpenFile( &stochasticFile, rootFileName, "_Stochastic.f90", 
+                   "The Stochastic Chemical Model File" );
+  if ( useStoicmat ) {
+     OpenFile( &stoichiomFile, rootFileName, "_Stoichiom.f90", 
+                   "The Stoichiometric Chemical Model File" );
+     OpenFile( &sparse_stoicmFile, rootFileName, "_StoichiomSP.f90", 
+                   "Sparse Stoichiometric Data Structures File" );
+  }		   
+  OpenFile( &utilFile, rootFileName, "_Util.f90", 
+                   "Auxiliary Routines File" );
+  /* OpenFile( &sparse_dataFile, rootFileName, "_Sparse.f90",
+                       "Sparse Data Module File" );*/
+  OpenFile( &global_dataFile, rootFileName, "_Global.f90", "Global Data Module File" );
+  if ( useJacSparse ) {
+     OpenFile( &sparse_jacFile, rootFileName, "_JacobianSP.f90",
+         "Sparse Jacobian Data Structures File" );  
+  }
+  if ( useHessian ) {
+     OpenFile( &hessianFile, rootFileName, "_Hessian.f90", "Hessian File" );
+     OpenFile( &sparse_hessFile, rootFileName, "_HessianSP.f90",
+         "Sparse Hessian Data Structures File" );
+  }     
+  OpenFile( &mapFile, rootFileName, ".map", 
+                   "Map File with Human-Readable Information" );
+  OpenFile( &monitorFile, rootFileName, "_Monitor.f90", 
+                   "Utility Data Module File" );
+} 
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/src/code_matlab.c
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/src/code_matlab.c	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/src/code_matlab.c	(revision 2696)
@@ -0,0 +1,718 @@
+/******************************************************************************
+
+  KPP - The Kinetic PreProcessor
+        Builds simulation code for chemical kinetic systems
+
+  Copyright (C) 1995-1996 Valeriu Damian and Adrian Sandu
+  Copyright (C) 1997-2005 Adrian Sandu
+
+  KPP is free software; you can redistribute it and/or modify it under the
+  terms of the GNU General Public License as published by the Free Software
+  Foundation (http://www.gnu.org/copyleft/gpl.html); either version 2 of the
+  License, or (at your option) any later version.
+
+  KPP is distributed in the hope that it will be useful, but WITHOUT ANY
+  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+  FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+  details.
+
+  You should have received a copy of the GNU General Public License along
+  with this program; if not, consult http://www.gnu.org/copyleft/gpl.html or
+  write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+  Boston, MA  02111-1307,  USA.
+
+  Adrian Sandu
+  Computer Science Department
+  Virginia Polytechnic Institute and State University
+  Blacksburg, VA 24060
+  E-mail: sandu@cs.vt.edu
+
+******************************************************************************/
+
+
+#include "gdata.h"
+#include "code.h"
+#include <unistd.h>
+#include <string.h>
+
+#define MAX_LINE 120
+
+void FatalError( int status, char *fmt, char *buf );
+
+char *MATLAB_types[] = { "",              /* VOID */ 
+                    "INTEGER",            /* INT */
+                    "REAL",               /* FLOAT */
+                    /*"REAL(dp)", */            /* DOUBLE */
+                    "DOUBLE PRECISION",   /* DOUBLE */
+                    "CHARACTER(LEN=12)",  /* STRING */
+                    "CHARACTER(LEN=100)"  /* DOUBLESTRING */
+                  };
+
+/*************************************************************************************************/
+void MATLAB_WriteElm( NODE * n )
+{
+ELEMENT *elm;
+char * name;
+char maxi[20];
+char maxj[20];
+
+  elm = n->elm;
+  name = varTable[ elm->var ]->name;
+
+  switch( n->type ) {
+    case CONST: bprintf("%g", elm->val.cnst);
+		break;
+    case ELM:   bprintf("%s", name);
+		break;
+    case VELM:  if( elm->val.idx.i >= 0 ) sprintf( maxi, "%d", elm->val.idx.i+1 );
+                  else sprintf( maxi, "%s", varTable[ -elm->val.idx.i ]->name );
+                bprintf("%s(%s)", name, maxi ); 
+		break;
+    case MELM:  if( elm->val.idx.i >= 0 ) sprintf( maxi, "%d", elm->val.idx.i+1 );
+                  else sprintf( maxi, "%s", varTable[ -elm->val.idx.i ]->name );
+                if( elm->val.idx.j >= 0 ) sprintf( maxj, "%d", elm->val.idx.j+1 );
+                  else sprintf( maxj, "%s", varTable[ -elm->val.idx.j ]->name );
+                bprintf("%s(%s,%s)", name, maxi, maxj );
+		break;
+    case EELM:  bprintf("(%s)", elm->val.expr );
+		break;
+  }
+}
+
+/*************************************************************************************************/
+void MATLAB_WriteSymbol( int op )
+{
+  switch( op ) {
+    case ADD:   bprintf("+"); 
+                AllowBreak();
+    		break;
+    case SUB:   bprintf("-"); 
+                AllowBreak();
+    		break;
+    case MUL:   bprintf("*"); 
+                AllowBreak();
+    		break;
+    case DIV:   bprintf("/"); 
+                AllowBreak();
+    		break;
+    case POW:   bprintf("^");
+                break;		
+    case O_PAREN: bprintf("(");
+                AllowBreak();
+                break;            
+    case C_PAREN: bprintf(")");
+                break;            
+    case NONE:
+                break;            
+  }
+}
+
+/*************************************************************************************************/
+void MATLAB_WriteAssign( char *ls, char *rs )
+{
+int start;
+int linelg;
+int i, j;
+int ifound, jfound;
+char c;
+int first;
+int crtident;
+
+/* Max no of continuation lines in F95 standard is 39 */
+int number_of_lines = 1, MAX_NO_OF_LINES = 36;
+
+/*  Operator Mapping: 0xaa = '*' | 0xab = '+' | 0xac = ',' 
+                      0xad = '-' | 0xae ='.' | 0xaf = '/' */		      
+/* char op_mult=0xaa, op_plus=0xab, op_minus=0xad, op_dot=0xae, op_div=0xaf; */		      
+char op_plus='+', op_minus='-'; /* op_mult='*', op_dot='.', op_div='/';	*/	      
+  
+  crtident = 3 + ident * 2;
+  bprintf("%*s%s = ", crtident, "", ls);
+  start = strlen( ls ) + 2;
+  linelg = 70 - crtident - start - 1;
+
+  first = 1;
+  while( strlen(rs) > linelg ) {
+    ifound = 0; jfound = 0;
+    if ( number_of_lines >= MAX_NO_OF_LINES ) {
+     /* If a new line needs to be started. 
+          Note: the approach below will create erroneous code if the +/- is within a subexpression, e.g. for
+          A*(B+C) one cannot start a new continuation line by splitting at the + sign */
+     for( j=linelg; j>5; j-- ) /* split row here if +, -, or comma */
+       if ( ( rs[j] == op_plus )||( rs[j] == op_minus )||( rs[j]==',' ) ) { 
+        jfound = 1; i=j; break;
+	}
+    }
+    if ( ( number_of_lines < MAX_NO_OF_LINES )||( !jfound ) ) {
+     for( i=linelg; i>10; i-- ) /* split row here if operator or comma */
+       if ( ( rs[i] & 0x80 )||( rs[i]==',' ) ) {
+        ifound = 1; break;
+	}
+     if( i <= 10 ) {
+      printf("\n Warning: possible error in continuation lines for %s = ...",ls);
+      i = linelg;
+     }
+    } 
+    while ( rs[i-1] & 0x80 ) i--; /* put all operators on the next row */
+    while ( rs[i] == ',' ) i++; /* put commas on the current row */
+    
+    c = rs[i]; 
+    rs[i] = 0;
+    
+    if ( first ) { /* first line in a split row */
+      bprintf("%s", rs ); 
+      linelg++;
+      first = 0;
+    } else {/* continuation line in a split row - but not last line*/
+      bprintf(" ...\n     %*s%s", start, "", rs ); 			
+      if ( jfound ) {
+         bprintf(" ;\n%*s%s = %s", crtident, "", ls, ls);
+	 number_of_lines = 1;
+	 }
+    }  
+    rs[i] = c;
+    rs += i;  /* jump to the first not-yet-written character */
+    number_of_lines++;
+  }
+  
+  if ( number_of_lines > MAX_NO_OF_LINES ) {
+     printf("\n Warning: %d continuation lines for %s = ...",number_of_lines,ls);
+     }
+
+  if ( first ) bprintf("%s ;\n", rs );  /* non-split row */
+          else bprintf(" ...\n     %*s%s;\n", start, "", rs ); /* last line in a split row */
+
+
+  FlushBuf();
+}
+
+
+/*************************************************************************************************/
+void MATLAB_WriteComment( char *fmt, ... )
+{
+Va_list args;
+char buf[ MAX_LINE ];
+
+  va_start( args, fmt );
+  vsprintf( buf, fmt, args );
+  va_end( args );
+  
+  fprintf( currentFile, "%c ", '%' );
+  bprintf( "%-65s\n", buf );
+
+  FlushBuf();
+}
+
+/*************************************************************************************************/
+char * MATLAB_Decl( int v )
+{
+static char buf[120];
+/* VARIABLE *var;
+char *baseType;
+char maxi[20];
+char maxj[20]; */
+
+  buf[0] = 0; return buf; /* Nothing to declare in matlab */
+/*  var = varTable[ v ];
+  baseType = MATLAB_types[ var->baseType ];
+  
+  *buf = 0;
+
+  switch( var->type ) {
+    case ELM:   sprintf( buf, "%s :: %s",
+                        baseType, var->name );
+		break;
+    case VELM:  
+                if( var->maxi > 0 ) sprintf( maxi, "%d", var->maxi );
+                  else sprintf( maxi, "%s", varTable[ -var->maxi ]->name );  
+                if( (var->maxi == 0) || 
+                    ((var->maxi < 0) && (varTable[ -var->maxi ]->maxi == 0)) )
+                  strcat( maxi, "+1");
+                sprintf( buf, "%s, DIMENSION(%s) :: %s",	
+                        baseType, maxi, var->name );
+ 		break;
+    case MELM:  if( var->maxi > 0 ) sprintf( maxi, "%d", var->maxi );
+                  else sprintf( maxi, "%s", varTable[ -var->maxi ]->name );  
+                if( (var->maxi == 0) || 
+                    ((var->maxi < 0) && (varTable[ -var->maxi ]->maxi == 0)) )
+                  strcat( maxi, "+1");
+                if( var->maxj > 0 ) sprintf( maxj, "%d", var->maxj );
+                  else sprintf( maxj, "%s", varTable[ -var->maxj ]->name );  
+                if( (var->maxj == 0) || 
+                    ((var->maxj < 0 ) && (varTable[ -var->maxj ]->maxi == 0)) )
+                  strcat( maxj, "+1");
+                sprintf( buf, "%s, DIMENSION(%s,%s) :: %s",			
+                         baseType, maxi, maxj,var->name );  
+		break;
+    default:
+                printf( "Can not declare type %d\n", var->type );
+                break;
+  }
+  return buf;
+*/
+}
+
+/*************************************************************************************************/
+char * MATLAB_DeclareData( int v, void * values, int n)
+{
+int i;
+int nlines, nmax;
+int split;
+static char buf[120];
+VARIABLE *var;
+int * ival;
+double * dval;
+char ** cval;
+char *baseType;
+char maxi[20];
+char maxj[20];
+int maxCols = MAX_COLS;
+char dsbuf[55];
+ 
+ int splitsize;
+ int maxi_mod;
+ int maxi_div;
+ 
+ char mynumber[30];
+
+  var = varTable[ v ];
+  ival = (int*) values;
+  dval = (double *) values;
+  cval = (char **) values;
+
+  nlines = 1;
+  nmax = 1;
+  split = 0;
+  var -> maxi = max( n, 1 );
+
+  baseType = MATLAB_types[ var->baseType ];
+  
+  *buf = 0;
+
+  switch( var->type ) {				/* changed here */
+    case ELM:   
+	   /* bprintf( "  %s :: %s = ", baseType, var->name );
+		switch ( var->baseType ) {
+		  case INT: bprintf( "%d", *ival ); break;
+		  case DOUBLE: bprintf( "%f", *dval); break;
+		  case REAL: bprintf( "%lg", *dval ); break;
+		  case STRING: bprintf( "'%3s'", *cval ); break;
+		} */
+		break;
+     case VELM:
+      splitsize = 36; /*elements*/
+      maxi_mod = var->maxi % splitsize;
+      maxi_div = var->maxi / splitsize;
+
+      if( var->maxi > 0 ) sprintf( maxi, "%d", var->maxi );
+                  else sprintf( maxi, "%s", varTable[ -var->maxi ]->name );  
+                if( (var->maxi == 0) || 
+                    ((var->maxi < 0) && (varTable[ -var->maxi ]->maxi == 0)) )
+                  strcat( maxi, "+1");
+                if( var->maxj > 0 ) sprintf( maxj, "%d", var->maxj );
+                  else sprintf( maxj, "%s", varTable[ -var->maxj ]->name );  
+                if( (var->maxj == 0) || 
+                    ((var->maxj < 0 ) && (varTable[ -var->maxj ]->maxi == 0)) )
+                  strcat( maxj, "+1");        
+		  /* now list values */
+        /* if ( (var->baseType==STRING)||(var->baseType==DOUBLESTRING) ) {
+           bprintf( "%s(1:%s,:) = [ ... \n", var->name, maxi) ;	
+	} else {
+           bprintf( "%s(1:%s) = [ ... \n", var->name, maxi) ;
+	}*/
+        if ( (var->baseType==STRING)||(var->baseType==DOUBLESTRING) ) {
+           bprintf( "%s = [ ... \n", var->name, maxi) ;	
+	} else {
+           bprintf( "%s = [ ... \n", var->name, maxi) ;
+	}
+        
+        /* if the array is defined in one piece, then the for loop will
+           go from 0 to n. Otherwise, there will be partial arrays from
+           i_from to i_to which are of size splitsize except for the
+           last one which is usually smaller and contains the rest */
+        for ( i=0; i < n; i++ ) {
+          switch( var -> baseType ) {
+          case INT:
+            bprintf( "%4d", ival[i] ); maxCols =12; break;
+          case DOUBLE:
+ 	    sprintf(mynumber, "%12.6e",dval[i]);
+            bprintf( "  %s", mynumber ); maxCols = 5; break;
+          case REAL:
+            bprintf( "%12.6e", dval[i] ); maxCols = 5; break;
+          case STRING:
+            bprintf( "'%12s'", cval[i] ); maxCols = 3; break;
+          case DOUBLESTRING:
+	    strncpy( dsbuf, cval[i], 54 ); dsbuf[54]='\0';
+	    bprintf( "'%48s'", dsbuf ); maxCols=1; break;
+          }
+          if( i < n-1 ) {
+            bprintf( ";" );
+            if( (i+1) % maxCols == 0 ) {
+              bprintf( " ... \n" );
+              nlines++;
+            }
+          }
+         }
+        bprintf( " ];\n" );
+        break;
+				
+    case MELM:  if( var->maxi > 0 ) sprintf( maxi, "%d", var->maxi );
+                  else sprintf( maxi, "%s", varTable[ -var->maxi ]->name );  
+                if( (var->maxi == 0) || 
+                    ((var->maxi < 0) && (varTable[ -var->maxi ]->maxi == 0)) )
+                  strcat( maxi, "+1");
+                if( var->maxj > 0 ) sprintf( maxj, "%d", var->maxj );
+                  else sprintf( maxj, "%s", varTable[ -var->maxj ]->name );  
+                if( (var->maxj == 0) || 
+                    ((var->maxj < 0 ) && (varTable[ -var->maxj ]->maxi == 0)) )
+                  strcat( maxj, "+1");
+                sprintf( buf, "%s, DIMENSION(%s,%s) :: %s\n",	/* changed here */		
+                         baseType, maxi, maxj,var->name );  
+		break;
+    default:
+                printf( "Can not declare type %d", var->type );
+                break;
+  }
+  return buf;
+}
+
+/*************************************************************************************************/
+void MATLAB_Declare( int v )
+{
+  if( varTable[ v ]->comment ) {
+    MATLAB_WriteComment( "%s - %s", 
+                    varTable[ v ]->name, varTable[ v ]->comment );
+  }
+  FlushBuf();
+  bprintf("  %s\n", MATLAB_Decl(v) );
+
+  FlushBuf();
+}
+
+/*************************************************************************************************/
+void MATLAB_ExternDeclare( int v )
+{
+  if( varTable[ v ]->comment ) {
+    MATLAB_WriteComment( "%s - %s", 
+                    varTable[ v ]->name, varTable[ v ]->comment );
+  }
+  FlushBuf();
+  bprintf(" global %s;\n", varTable[ v ]->name );
+  FlushBuf();
+}
+
+
+/*************************************************************************************************/
+void MATLAB_GlobalDeclare( int v )
+{
+}
+
+
+/*************************************************************************************************/
+void MATLAB_DeclareConstant( int v, char *val ) 
+{
+VARIABLE *var;
+int ival;
+char dummy_val[100];           /* used just to avoid strange behaviour of
+                                  sscanf when compiled with gcc */
+                                  
+  strcpy(dummy_val,val);val = dummy_val;
+
+  var = varTable[ v ];
+  
+  if( sscanf(val, "%d", &ival) == 1 )
+    if( ival == 0 ) var->maxi = 0;
+               else var->maxi = 1;
+  else
+    var->maxi = -1;       
+  
+  if( var->comment ) 
+    MATLAB_WriteComment( "%s - %s", var->name, var->comment );
+
+  switch( var->type ) {
+    case CONST: bprintf(" global %s;",var->name, val );
+	      bprintf(" %s = %s; \n", var->name, val );
+                break;       
+    default:
+                printf( "Invalid constant %d", var->type );
+                break;
+  }
+
+  FlushBuf();
+}
+
+
+/*************************************************************************************************/
+void MATLAB_WriteVecData( VARIABLE * var, int min, int max, int split )	
+{
+char buf[80];
+
+  if( split )
+    sprintf( buf, "%6sdata( %s(i), i = %d, %d ) / &\n%5s", 		
+                " ", var->name, min, max, " " );
+  else
+    sprintf( buf, "%6sdata %s / &\n%5s",
+                    " ", var->name, " " );
+                                      
+  FlushThisBuf( buf );
+  bprintf( " / \n\n" );
+  FlushBuf();        
+}
+
+/*************************************************************************************************/
+void MATLAB_DeclareDataOld( int v, int * values, int n )
+{
+int i;
+int nlines, min, max;
+int split;
+VARIABLE *var;
+int * ival;
+double * dval;
+char **cval;
+int maxCols = MAX_COLS;
+char dsbuf[55];
+
+  var = varTable[ v ];
+  ival = (int*) values;
+  dval = (double*) values;
+  cval = (char**) values;
+    
+  nlines = 1;
+  min = max = 1;
+  split = 0;
+
+  switch( var->type ) {
+     case VELM: if( n <= 0 ) break;
+    	       for( i = 0; i < n; i++ ) {
+                 switch( var->baseType ) {
+                   case INT: bprintf( "%3d",  ival[i] ); maxCols=12; break;
+                   case DOUBLE: 
+                   case REAL:bprintf( "%5lg", dval[i] ); maxCols=8; break;
+                   case STRING:bprintf( "'%s'", cval[i] ); maxCols=5; break;
+                   case DOUBLESTRING:
+		        strncpy( dsbuf, cval[i], 54 ); dsbuf[54]='\0';
+		        bprintf( "'%48s'", dsbuf ); maxCols=1; break;
+                 }
+                 if( ( (i+1) % 12 == 0 ) && ( nlines > MAX_LINES ) ) {
+                     split = 1; nlines = 1;
+                     MATLAB_WriteVecData( var, min, max, split );  
+                     min = max + 1;
+                 } 
+                 else { 
+                   if( i < n-1 ) bprintf( "," );
+                   if( (i+1) % maxCols == 0 ) { 
+                     bprintf( "\n%5s", " " );
+                     nlines++;                 
+                   }  
+                 }  
+                 max ++;
+               }
+               MATLAB_WriteVecData( var, min, max-1, split );
+               break;
+                                                                 
+    case ELM:  bprintf( "%6sdata %s / ", " ", var->name );
+               switch( var->baseType ) {
+                 case INT: bprintf( "%d",  *ival ); break;
+                 case DOUBLE: 
+                 case REAL:bprintf( "%lg", *dval ); break;
+                 case STRING:bprintf( "'%s'", *cval ); break;
+                 case DOUBLESTRING:		        
+		        strncpy( dsbuf, *cval, 54 ); dsbuf[54]='\0';
+		        bprintf( "'%s'", dsbuf ); maxCols=1; break;
+                        /* bprintf( "'%50s'", *cval ); break; */
+               }
+               bprintf( " / \n" );
+               FlushBuf();
+               break;
+    default:
+               printf( "\n Function not defined !\n" );
+               break;
+  }
+}
+
+/*************************************************************************************************/
+void MATLAB_InitDeclare( int v, int n, void * values )
+{
+VARIABLE * var;
+
+  var = varTable[ v ];
+  var->maxi = max( n, 1 );
+
+  NewLines(1);  
+  MATLAB_DeclareData( v, values, n );
+}
+
+/*************************************************************************************************/
+void MATLAB_FunctionStart( int f, int *vars )
+{
+int i;
+int v;
+char * name;
+int narg;
+
+  name = varTable[ f ]->name;
+  narg = varTable[ f ]->maxi;
+
+  bprintf("function  " );
+  if( narg >= 1 ) {
+    v = vars[ narg-1 ];
+    bprintf("[ %s ] = ", varTable[ v ]->name );
+  }
+  bprintf(" %s_%s ( ", rootFileName, name );
+  for( i = 0; i < narg-1; i++ ) {
+    v = vars[ i ];
+    bprintf("%s ", varTable[ v ]->name );
+    if (i<narg-2) bprintf(", ");
+  }
+  bprintf(")\n");
+
+  FlushBuf();
+}                  
+
+/*************************************************************************************************/
+void MATLAB_FunctionPrototipe( int f, ... )
+{
+char * name;
+int narg;
+
+  name = varTable[ f ]->name;
+  narg = varTable[ f ]->maxi;
+
+  bprintf("      EXTERNAL %s\n", name );
+
+  FlushBuf();
+}
+
+/*************************************************************************************************/
+void MATLAB_FunctionBegin( int f, ... )
+{
+Va_list args;
+int i;
+int vars[20];
+char * name;
+int narg;
+char buf[200];
+time_t t;
+
+  name = varTable[ f ]->name;
+  narg = varTable[ f ]->maxi;
+
+ /*Adi - each Matlab functin requires a separate file*/
+  sprintf( buf, "%s_%s.m", rootFileName, varTable[ f ]->name );  
+  mex_funFile = fopen(buf, "w");
+  if( mex_funFile == 0 ) {
+    FatalError(3,"%s: Can't create file", buf );
+  } 
+  UseFile( mex_funFile );
+ /*Adi*/
+  
+    
+  Va_start( args, f );
+  for( i = 0; i < narg; i++ ) 
+    vars[ i ] = va_arg( args, int );
+  va_end( args );
+    
+  CommentFncBegin( f, vars );
+  
+  WriteDelim();
+  WriteComment("");
+  WriteComment("Generated by KPP - symbolic chemistry Kinetics PreProcessor" );
+  WriteComment("    KPP is developed at CGRER labs University of Iowa by" );
+  WriteComment("    Valeriu Damian & Adrian Sandu" );
+  WriteComment("");
+  WriteComment("%-20s : %s", "File", buf  );
+  strcpy( buf, (char*)ctime( &t ) ); 
+  buf[ (int)strlen(buf) - 1 ] = 0;
+  WriteComment("%-20s : %s", "Time", buf );
+  WriteComment("%-20s : %s", "Working directory", getcwd(buf, 200) );
+  WriteComment("%-20s : %s", "Equation file", eqFileName );
+  WriteComment("%-20s : %s", "Output root filename", rootFileName );
+  WriteComment("");
+  WriteDelim();
+  NewLines(1);
+  
+  MATLAB_FunctionStart( f, vars );
+  NewLines(1);
+
+  FlushBuf();
+
+  MapFunctionComment( f, vars );
+}
+
+/*************************************************************************************************/
+void MATLAB_FunctionEnd( int f )
+{
+  bprintf("      \nreturn\n\n");
+
+  FlushBuf();
+
+  CommentFunctionEnd( f );
+  
+ /*Adi*/
+  fclose(mex_funFile);
+  
+
+}
+
+/*************************************************************************************************/
+void MATLAB_Inline( char *fmt, ... )
+{
+Va_list args;
+char buf[ 1000 ];
+
+  if( useLang != MATLAB_LANG ) return;
+  
+  Va_start( args, fmt );
+  vsprintf( buf, fmt, args );
+  va_end( args );
+  bprintf( "%s\n", buf );
+  
+  FlushBuf();
+}
+
+/*************************************************************************************************/
+void Use_MATLAB()
+{ 
+  WriteElm 	    = MATLAB_WriteElm;
+  WriteSymbol 	    = MATLAB_WriteSymbol;  
+  WriteAssign 	    = MATLAB_WriteAssign;
+  WriteComment 	    = MATLAB_WriteComment;
+  DeclareConstant   = MATLAB_DeclareConstant;
+  Declare           = MATLAB_Declare;
+  ExternDeclare     = MATLAB_ExternDeclare;
+  GlobalDeclare     = MATLAB_GlobalDeclare;
+  InitDeclare       = MATLAB_InitDeclare;
+
+  FunctionStart     = MATLAB_FunctionStart;
+  FunctionPrototipe = MATLAB_FunctionPrototipe;
+  FunctionBegin     = MATLAB_FunctionBegin;
+  FunctionEnd       = MATLAB_FunctionEnd;
+
+  OpenFile( &param_headerFile,   rootFileName, "_Parameters.m","Parameter Definition File" );
+  OpenFile( &driverFile, rootFileName, "_Main.m", "Main Program File" );
+  OpenFile( &rateFile, rootFileName, "_Rates.m", 
+                   "The Reaction Rates File" );
+  if ( useStoicmat ) {
+     OpenFile( &stoichiomFile, rootFileName, "_Stoichiom.m", 
+                   "The Stoichiometric Chemical Model File" );
+     OpenFile( &sparse_stoicmFile, rootFileName, "_StoichiomSP.m", 
+                   "Sparse Stoichiometric Data Structures File" );
+  }		   
+  OpenFile( &utilFile, rootFileName, "_Util.m", 
+                   "Auxiliary Routines File" );
+  OpenFile( &sparse_dataFile, rootFileName, "_Sparse.m",
+                       "Sparse Data Definition File" );
+  OpenFile( &global_dataFile, rootFileName, "_Global_defs.m", "Global Data Definition File" );
+  if ( useJacSparse ) {
+     OpenFile( &sparse_jacFile, rootFileName, "_JacobianSP.m",
+         "Sparse Jacobian Data Structures File" );  
+  }
+  if ( useHessian ) {
+     OpenFile( &sparse_hessFile, rootFileName, "_HessianSP.m",
+         "Sparse Hessian Data Structures File" );
+  }     
+  OpenFile( &mapFile, rootFileName, ".map", 
+                   "Map File with Human-Readable Information" );
+  OpenFile( &monitorFile, rootFileName, "_Monitor.m", 
+                   "Utility Data Definition File" );
+} 
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/src/copyright
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/src/copyright	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/src/copyright	(revision 2696)
@@ -0,0 +1,32 @@
+/******************************************************************************
+
+  KPP - The Kinetic PreProcessor
+        Builds simulation code for chemical kinetic systems
+
+  Copyright (C) 1995-1996 Valeriu Damian and Adrian Sandu
+  Copyright (C) 1997-2005 Adrian Sandu
+
+  KPP is free software; you can redistribute it and/or modify it under the
+  terms of the GNU General Public License as published by the Free Software
+  Foundation (http://www.gnu.org/copyleft/gpl.html); either version 2 of the
+  License, or (at your option) any later version.
+
+  KPP is distributed in the hope that it will be useful, but WITHOUT ANY
+  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+  FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+  details.
+
+  You should have received a copy of the GNU General Public License along
+  with this program; if not, consult http://www.gnu.org/copyleft/gpl.html or
+  write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+  Boston, MA  02111-1307,  USA.
+
+  Adrian Sandu
+  Computer Science Department
+  Virginia Polytechnic Institute and State University
+  Blacksburg, VA 24060
+  E-mail: sandu@cs.vt.edu
+
+******************************************************************************/
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/src/debug.c
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/src/debug.c	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/src/debug.c	(revision 2696)
@@ -0,0 +1,148 @@
+/******************************************************************************
+
+  KPP - The Kinetic PreProcessor
+        Builds simulation code for chemical kinetic systems
+
+  Copyright (C) 1995-1996 Valeriu Damian and Adrian Sandu
+  Copyright (C) 1997-2005 Adrian Sandu
+
+  KPP is free software; you can redistribute it and/or modify it under the
+  terms of the GNU General Public License as published by the Free Software
+  Foundation (http://www.gnu.org/copyleft/gpl.html); either version 2 of the
+  License, or (at your option) any later version.
+
+  KPP is distributed in the hope that it will be useful, but WITHOUT ANY
+  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+  FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+  details.
+
+  You should have received a copy of the GNU General Public License along
+  with this program; if not, consult http://www.gnu.org/copyleft/gpl.html or
+  write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+  Boston, MA  02111-1307,  USA.
+
+  Adrian Sandu
+  Computer Science Department
+  Virginia Polytechnic Institute and State University
+  Blacksburg, VA 24060
+  E-mail: sandu@cs.vt.edu
+
+******************************************************************************/
+
+
+#include "gdata.h"
+#include "scan.h"
+
+void WriteAtoms()
+{
+int i;
+
+  printf("\nATM -----------------------------------------------" );
+
+  for( i = 0; i < SpeciesNr; i++ ) {
+    switch( AtomTable[i].check ) {
+      case NO_CHECK:
+        printf( "\n(%3d) %6s, NO -- ------ ", i, AtomTable[i].name );
+        break;
+      case DO_CHECK:
+        printf( "\n(%3d) %6s, -- DO ------", i, AtomTable[i].name );
+        break;
+      case CANCEL_CHECK:
+        printf( "\n(%3d) %6s, -- -- CANCEL", i, AtomTable[i].name );
+        break;
+      default:
+        printf( "\n(%3d) %6s, -- -- ------ UNKNOWN [%d]", i, 
+                AtomTable[i].name, AtomTable[i].check );
+        break;
+    }
+  }  
+}
+
+void WriteSpecies()
+{
+int i;
+int j;
+char *type;
+char *lookat;
+
+  printf("\nSPC -----------------------------------------------" );
+  
+  for( i = 0; i < SpeciesNr; i++ ) {
+
+    switch( SpeciesTable[i].type ) {
+      case VAR_SPC: type = "V - -"; break;
+      case RAD_SPC:  type = "- R -"; break;
+      case FIX_SPC:    type = "- - F"; break;
+      default:       type = "? ? ?"; break;
+    }
+
+    switch( SpeciesTable[i].lookat ) {
+      case 0:	   lookat = "----"; break; 
+      case 1:	   lookat = "LOOK"; break; 
+      default:     lookat = "????"; break;
+    }
+
+    printf( "\n(%3d) %-10s, type %s,%s {", 
+             i, SpeciesTable[i].name, type, lookat );
+    for( j = 0; j < SpeciesTable[i].nratoms; j++ )
+      printf( " %d%s", SpeciesTable[i].atoms[j].nr, 
+                       AtomTable[ SpeciesTable[i].atoms[j].code ].name );
+    printf("}");
+  }  
+}
+
+void WriteMatrices()
+{
+int i, j;
+
+  printf("\nMAT ------------------ cc -------------------------" );
+  for( i = 0; i < SpcNr; i++ ) {
+    printf("\n %-6s (%d)[%d]  ", SpeciesTable[ Code[i] ].name,
+				 SpeciesTable[ Code[i] ].type, Code[i] );
+    for( j = 0; j < EqnNr; j++ ) {
+      printf( "%5.1f  ", Stoich_Left[i][j] );
+    }
+  }
+
+  printf("\nMAT ------------------ cd -------------------------" );
+  for( i = 0; i < SpcNr; i++ ) {
+    printf("\n %-6s (%d)[%d]  ", SpeciesTable[ Code[i] ].name,
+				 SpeciesTable[ Code[i] ].type, Code[i] );
+    for( j = 0; j < EqnNr; j++ ) {
+      printf( "%5.1f  ", Stoich_Right[i][j] );
+    }
+  }
+
+  printf("\nMAT ------------------ cf -------------------------" );
+  for( i = 0; i < SpcNr; i++ ) {
+    printf("\n %-6s (%d)[%d] <r%d> ", SpeciesTable[ Code[i] ].name,
+            SpeciesTable[ Code[i] ].type, Code[i], Reactive[i] );
+    for( j = 0; j < EqnNr; j++ ) {
+      printf( "%5.1f  ", Stoich[i][j] );
+    }
+  }
+}
+
+void WriteOptions()
+{
+  printf("\n### Options -------------------------------------------\n");
+  if( useAggregate )     printf("FUNCTION - AGGREGATE\n");
+		    else printf("FUNCTION - SPLIT\n");
+  switch ( useJacobian ) {
+     case JAC_OFF: printf("JACOBIAN - OFF\n"); break;
+     case JAC_FULL: printf("JACOBIAN - FULL\n"); break;
+     case JAC_LU_ROW: printf("JACOBIAN - SPARSE W/ ACCOUNT FOR LU DECOMPOSITION FILL-IN\n"); break;
+     case JAC_ROW: printf("JACOBIAN - SPARSE\n"); break;
+  }		    
+  if( useDouble )       printf("DOUBLE   - ON\n");
+		    else printf("DOUBLE   - OFF\n");
+  if( useReorder )      printf("REORDER  - ON\n");
+		    else printf("REORDER  - OFF\n");
+  if( useMex     )      printf("MEX      - ON\n");
+		    else printf("MEX      - OFF\n");
+  if( useDummyindex)    printf("DUMMYINDEX - ON\n");
+		    else printf("DUMMYINDEX - OFF\n");
+  if( useEqntags)        printf("EQNTAGS - ON\n");
+		    else printf("EQNTAGS - OFF\n");
+}
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/src/gdata.h
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/src/gdata.h	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/src/gdata.h	(revision 2696)
@@ -0,0 +1,212 @@
+/******************************************************************************
+
+  KPP - The Kinetic PreProcessor
+        Builds simulation code for chemical kinetic systems
+
+  Copyright (C) 1995-1996 Valeriu Damian and Adrian Sandu
+  Copyright (C) 1997-2005 Adrian Sandu
+
+  KPP is free software; you can redistribute it and/or modify it under the
+  terms of the GNU General Public License as published by the Free Software
+  Foundation (http://www.gnu.org/copyleft/gpl.html); either version 2 of the
+  License, or (at your option) any later version.
+
+  KPP is distributed in the hope that it will be useful, but WITHOUT ANY
+  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+  FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+  details.
+
+  You should have received a copy of the GNU General Public License along
+  with this program; if not, consult http://www.gnu.org/copyleft/gpl.html or
+  write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+  Boston, MA  02111-1307,  USA.
+
+  Adrian Sandu
+  Computer Science Department
+  Virginia Polytechnic Institute and State University
+  Blacksburg, VA 24060
+  E-mail: sandu@cs.vt.edu
+
+******************************************************************************/
+
+#define KPP_VERSION "2.2.3"
+
+#ifndef _GDATA_H_
+#define _GDATA_H_
+
+#include <stdio.h>
+
+#define MAX_EQN         400
+#define MAX_SPECIES     500
+#define MAX_SPNAME       30
+#define MAX_IVAL         40
+/* MAX_EQNTAG = max length of equation ID in eqn file */
+#define MAX_EQNTAG       12
+/* MAX_K = max length of rate expression in eqn file */
+#define MAX_K           150
+#define MAX_ATOMS	 10
+#define MAX_ATNAME	 10
+#define MAX_ATNR	250 
+#define MAX_PATH        120
+#define MAX_FILES	 20
+#define MAX_EQNLEN      100
+
+#define NO_CODE 	-1
+#define max( x, y ) (x) > (y) ? (x) : (y)
+#define min( x, y ) (x) < (y) ? (x) : (y)
+
+#define IncName(x)   FileName((x),"MODELS","models","")
+#define ModelName(x) FileName((x),"MODELS","models",".def")
+#define IntegName(x) FileName((x),"INTEG","int",".def")
+
+enum krtypes { NUMBER, EXPRESION, PHOTO };
+enum table_modes { F_TEXT, FC_TEXT, C_TEXT, S_TEXT }; 
+enum lang { NO_LANG, C_LANG, F77_LANG, F90_LANG, MATLAB_LANG };
+enum inl_code { F77_GLOBAL,    F77_INIT,    F77_DATA,    F77_UTIL,    F77_RATES,    F77_RCONST,
+	      F90_GLOBAL,    F90_INIT,    F90_DATA,    F90_UTIL,    F90_RATES,    F90_RCONST,
+              C_GLOBAL,      C_INIT,      C_DATA,      C_UTIL,      C_RATES,      C_RCONST,
+              MATLAB_GLOBAL, MATLAB_INIT, MATLAB_DATA, MATLAB_UTIL, MATLAB_RATES, MATLAB_RCONST,
+	      INLINE_OPT
+	      };
+
+enum jacobian_format { JAC_OFF, JAC_FULL, JAC_LU_ROW, JAC_ROW };	      
+
+               	      
+typedef short int CODE;
+typedef float EQ_VECT[ MAX_EQN ];
+
+typedef struct {
+                 char name[ MAX_ATNAME ];
+                 char check;
+                 char masscheck;
+               } ATOM_DEF;
+
+typedef struct {
+                 unsigned char code;
+                 unsigned char nr; 
+               } ATOM;
+
+typedef struct {
+		 char type;
+		 char lookat;
+		 char moni;
+		 char trans;
+                 short int nratoms;
+		 char name[ MAX_SPNAME ];
+                 char ival[ MAX_IVAL ];
+                 ATOM atoms[ MAX_ATOMS ]; 
+	       } SPECIES_DEF;
+
+typedef struct {
+		 char type;
+		 union {
+		   char st[ MAX_K ];
+		   float f;
+		 } val;
+                 char label[ MAX_EQNTAG ];
+	       } KREACT;
+
+typedef struct {
+		 char * code;
+		 int maxlen;
+	       } ICODE;
+
+
+extern int SpeciesNr;
+extern int EqnNr;
+extern int SpcNr;
+extern int AtomNr;
+extern int VarNr;
+extern int VarActiveNr;
+extern int FixNr;
+extern int VarStartNr;
+extern int FixStartNr;
+extern int Hess_NZ;
+extern int LU_Jac_NZ;
+extern int Jac_NZ;
+
+extern int generateSD;
+
+extern int initNr;
+extern int xNr;
+extern int yNr;
+extern int zNr;
+
+extern int falseSpcNr;
+
+extern int useAggregate;
+extern int useJacobian;
+extern int useJacSparse;
+extern int useHessian;
+extern int useStoicmat;
+extern int useDouble;
+extern int useReorder;
+extern int useMex;
+extern int useDummyindex;
+extern int useEqntags;
+extern int useLang;
+extern int useStochastic;
+
+/* if useValues=1 KPP replaces parameters like NVAR etc. 
+       by their values in vector/matrix declarations */
+extern int useDeclareValues; 
+
+extern char Home[ MAX_PATH ];
+extern char integrator[ MAX_PATH ];
+extern char driver[ MAX_PATH ];
+extern char runArgs[  MAX_PATH ];
+
+extern char *eqFileName;
+extern char *rootFileName;
+
+extern ATOM_DEF AtomTable[ MAX_ATNR ];
+extern SPECIES_DEF SpeciesTable[ MAX_SPECIES ];
+extern KREACT 	kr	 [ MAX_EQN ];
+extern CODE 	ReverseCode[ MAX_SPECIES ];
+extern CODE 	Code	 [ MAX_SPECIES ];
+extern float** 	Stoich_Left;
+extern float** 	Stoich;
+extern float**  Stoich_Right;
+extern int 	Reactive [ MAX_SPECIES ];
+
+extern int **structB;
+extern int **structJ;
+extern int **LUstructJ;
+
+extern ICODE InlineCode[ INLINE_OPT ];
+
+extern char *fileList[ MAX_FILES ];
+extern int fileNr;
+
+extern char varDefault[ MAX_IVAL ];
+extern char radDefault[ MAX_IVAL ];
+extern char fixDefault[ MAX_IVAL ];
+extern double cfactor;
+
+void CmdFunction( char *cmd );
+void CmdJacobian( char *cmd );
+void CmdHessian( char *cmd );
+void CmdDeclareValues( char *cmd );
+void CmdDouble( char *cmd );
+void CmdReorder( char *cmd );
+void CmdMex( char *cmd );
+void CmdDummyindex( char *cmd );
+void CmdEqntags( char *cmd );
+void CmdUse( char *cmd );
+void CmdLanguage( char *cmd );
+void CmdIntegrator( char *cmd );
+void CmdDriver( char *cmd );
+void CmdRun( char *cmd );
+void CmdStochastic( char *cmd );
+
+void Generate();
+
+char * FileName( char *name, char* env, char *dir, char *ext );
+
+int*  AllocIntegerVector( int n, char* message );
+int** AllocIntegerMatrix( int m, int n, char* message );
+void FreeIntegerMatrix ( int** mat, int m, int n );
+int Index( int i );
+
+#endif
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/src/gdef.h
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/src/gdef.h	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/src/gdef.h	(revision 2696)
@@ -0,0 +1,46 @@
+/******************************************************************************
+
+  KPP - The Kinetic PreProcessor
+        Builds simulation code for chemical kinetic systems
+
+  Copyright (C) 1995-1996 Valeriu Damian and Adrian Sandu
+  Copyright (C) 1997-2005 Adrian Sandu
+
+  KPP is free software; you can redistribute it and/or modify it under the
+  terms of the GNU General Public License as published by the Free Software
+  Foundation (http://www.gnu.org/copyleft/gpl.html); either version 2 of the
+  License, or (at your option) any later version.
+
+  KPP is distributed in the hope that it will be useful, but WITHOUT ANY
+  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+  FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+  details.
+
+  You should have received a copy of the GNU General Public License along
+  with this program; if not, consult http://www.gnu.org/copyleft/gpl.html or
+  write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+  Boston, MA  02111-1307,  USA.
+
+  Adrian Sandu
+  Computer Science Department
+  Virginia Polytechnic Institute and State University
+  Blacksburg, VA 24060
+  E-mail: sandu@cs.vt.edu
+
+******************************************************************************/
+
+
+#ifndef _GDEF_H_
+#define _GDEF_H_
+
+#include <stdio.h>
+
+#if   defined ( __BORLANDC__ )
+  #include <alloc.h>
+#endif
+
+#include <stdarg.h>
+#define Va_start( x, y ) va_start( x, y )
+#define Va_list va_list
+
+#endif
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/src/gen.c
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/src/gen.c	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/src/gen.c	(revision 2696)
@@ -0,0 +1,3349 @@
+/******************************************************************************
+
+  KPP - The Kinetic PreProcessor
+        Builds simulation code for chemical kinetic systems
+
+  Copyright (C) 1995-1996 Valeriu Damian and Adrian Sandu
+  Copyright (C) 1997-2005 Adrian Sandu
+
+  KPP is free software; you can redistribute it and/or modify it under the
+  terms of the GNU General Public License as published by the Free Software
+  Foundation (http://www.gnu.org/copyleft/gpl.html); either version 2 of the
+  License, or (at your option) any later version.
+
+  KPP is distributed in the hope that it will be useful, but WITHOUT ANY
+  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+  FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+  details.
+
+  You should have received a copy of the GNU General Public License along
+  with this program; if not, consult http://www.gnu.org/copyleft/gpl.html or
+  write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+  Boston, MA  02111-1307,  USA.
+
+  Adrian Sandu
+  Computer Science Department
+  Virginia Polytechnic Institute and State University
+  Blacksburg, VA 24060
+  E-mail: sandu@cs.vt.edu
+
+******************************************************************************/
+
+
+#include <string.h>
+#include <math.h>
+#include "gdata.h"
+#include "code.h"
+#include "scan.h"
+ 
+#define MAX_MONITOR 8
+enum strutypes { PLAIN, LU };
+
+int **structB;
+int **structJ;
+int **LUstructJ;
+
+ICODE InlineCode[ INLINE_OPT ];
+
+int NSPEC, NVAR, NVARACT, NFIX, NREACT;
+int NVARST, NFIXST;
+/* int PI; */ 
+int C_DEFAULT, C;
+int DC;
+int ARP, JVRP, NJVRP, CROW_JVRP, IROW_JVRP, ICOL_JVRP;
+int V, F, VAR, FIX;
+int RCONST, RCT;
+int Vdot, P_VAR, D_VAR;
+int KR, A, BV, BR, IV;
+int JV, UV, JUV, JTUV, JVS; 
+int JR, UR, JUR, JRS;
+int U1, U2, HU, HTU;
+int X, XX, NTMPB;
+int D2A, NTMPD2A, NHESS, HESS, IHESS_I, IHESS_J, IHESS_K;
+int DDMTYPE;
+int STOICM, NSTOICM, IROW_STOICM, ICOL_STOICM, CCOL_STOICM, CNEQN;
+int IROW, ICOL, CROW, DIAG;
+int LU_IROW, LU_ICOL, LU_CROW, LU_DIAG, CNVAR;   
+int LOOKAT, NLOOKAT, MONITOR, NMONITOR;
+int NMASS, SMASS;
+int SPC_NAMES, EQN_NAMES;
+int EQN_TAGS; 
+int NONZERO, LU_NONZERO;
+int TIME, SUN, TEMP;
+int RTOLS, TSTART, TEND, DT;
+int ATOL, RTOL, STEPMIN, STEPMAX, CFACTOR;
+int V_USER, CL;
+int NMLCV, NMLCF, SCT, PROPENSITY, VOLUME, IRCT;
+
+int Jac_NZ, LU_Jac_NZ, nzr;
+
+NODE *sum, *prod;
+int real;
+int nlookat;
+int nmoni;
+int ntrans;
+int nmass;
+char * CommonName;
+
+int Hess_NZ, *iHess_i, *iHess_j, *iHess_k;
+int nnz_stoicm;
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+char * ascii(int x)
+{
+static char s[40];
+ 
+  sprintf(s, "%d", x);
+  return s;  
+}
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+char * ascid(double x)
+{
+static char s[40];
+ 
+  sprintf(s, "%12.6e", x);
+  /* if (useDouble && ( (useLang==F77_LANG)||(useLang==F90_LANG) ) ) { */
+  if (useDouble && (useLang==F77_LANG)) 
+    s[strlen(s)-4] = 'd';
+  if (useDouble && (useLang==F90_LANG)) 
+    sprintf(s, "%s_dp",s);
+  return s;  
+}
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+NODE * RConst( int n )
+{
+  switch( kr[n].type ) {
+    case NUMBER:    return Const( kr[n].val.f );
+    case PHOTO: 
+    case EXPRESION: return Elm( RCT, n );
+  }
+  return 0;
+}
+
+
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void InitGen()
+{
+int i,j;
+
+  NSPEC   = DefConst( "NSPEC",   INT, "Number of chemical species" );
+  NVAR    = DefConst( "NVAR",    INT, "Number of Variable species" );
+  NVARACT = DefConst( "NVARACT", INT, "Number of Active species" );
+  NFIX    = DefConst( "NFIX",    INT, "Number of Fixed species" );
+  NREACT  = DefConst( "NREACT",  INT, "Number of reactions" );
+  NVARST  = DefConst( "NVARST",  INT, "Starting of variables in conc. vect." );
+  NFIXST  = DefConst( "NFIXST",  INT, "Starting of fixed in conc. vect." );
+  NONZERO = DefConst( "NONZERO", INT, "Number of nonzero entries in Jacobian" );
+  LU_NONZERO = DefConst( "LU_NONZERO", INT, "Number of nonzero entries in LU factoriz. of Jacobian" );
+  CNVAR   = DefConst( "CNVAR",   INT, "(NVAR+1) Number of elements in compressed row format" );
+  CNEQN   = DefConst( "CNEQN",   INT, "(NREACT+1) Number stoicm elements in compressed col format" );
+
+  /* PI      = DefConst( "PI",     real, "Value of pi" ); */
+
+  VAR = DefvElm( "VAR", real, -NVAR, "Concentrations of variable species (global)" );
+  FIX = DefvElm( "FIX", real, -NFIX, "Concentrations of fixed species (global)" );
+
+  V = DefvElm( "V", real, -NVAR, "Concentrations of variable species (local)" );
+  F = DefvElm( "F", real, -NFIX, "Concentrations of fixed species (local)" );
+
+  V_USER = DefvElm( "V_USER", real, -NVAR, "Concentration of variable species in USER's order" );
+ 
+  RCONST = DefvElm( "RCONST", real, -NREACT, "Rate constants (global)" );
+  RCT    = DefvElm( "RCT",    real, -NREACT, "Rate constants (local)" );
+
+  Vdot = DefvElm( "Vdot", real, -NVAR, "Time derivative of variable species concentrations" );
+  P_VAR = DefvElm( "P_VAR", real, -NVAR, "Production term" );
+  D_VAR = DefvElm( "D_VAR", real, -NVAR, "Destruction term" );
+
+
+  JVS   = DefvElm( "JVS", real, -LU_NONZERO, "sparse Jacobian of variables" );
+    
+  JV    = DefmElm( "JV",  real, -NVAR, -NVAR, "full Jacobian of variables" );
+
+  UV    = DefvElm( "UV",  real, -NVAR, "User vector for variables" );
+  JUV   = DefvElm( "JUV", real, -NVAR, "Jacobian times user vector" );
+  JTUV  = DefvElm( "JTUV",real, -NVAR, "Jacobian transposed times user vector" );
+
+  X     = DefvElm( "X",  real, -NVAR, "Vector for variables" );
+  XX    = DefvElm( "XX", real, -NVAR, "Vector for output variables" );
+
+  TIME  = DefElm( "TIME", real, "Current integration time");
+  SUN   = DefElm( "SUN", real, "Sunlight intensity between [0,1]");
+  TEMP  = DefElm( "TEMP", real, "Temperature");
+  
+  RTOLS  = DefElm( "RTOLS", real, "(scalar) Relative tolerance");
+  TSTART = DefElm( "TSTART", real, "Integration start time");
+  TEND   = DefElm( "TEND", real, "Integration end time");
+  DT     = DefElm( "DT", real, "Integration step");
+  
+  A  = DefvElm( "A", real, -NREACT, "Rate for each equation" );
+
+  ARP  = DefvElm( "ARP", real, -NREACT, "Reactant product in each equation" );
+  NJVRP    = DefConst( "NJVRP",   INT, "Length of sparse Jacobian JVRP" );
+  JVRP = DefvElm( "JVRP", real, -NJVRP, "d ARP(1:NREACT)/d VAR (1:NVAR)" );
+  CROW_JVRP= DefvElm( "CROW_JVRP", INT, -CNEQN, "Beginning of rows in JVRP" );
+  ICOL_JVRP= DefvElm( "ICOL_JVRP", INT, -NJVRP, "Column indices in JVRP" );  
+  IROW_JVRP= DefvElm( "IROW_JVRP", INT, -NJVRP, "Row indices in JVRP" );  
+
+  NTMPB  = DefConst( "NTMPB",   INT, "Length of Temporary Array B" );
+  BV = DefvElm( "B", real, -NTMPB, "Temporary array" );
+
+  NSTOICM      = DefConst("NSTOICM", INT, "Length of Sparse Stoichiometric Matrix" );
+  STOICM       = DefvElm( "STOICM", real, -NSTOICM, "Stoichiometric Matrix in compressed column format" );
+  IROW_STOICM  = DefvElm( "IROW_STOICM", INT, -NSTOICM, "Row indices in STOICM" );
+  ICOL_STOICM  = DefvElm( "ICOL_STOICM", INT, -NSTOICM, "Column indices in STOICM" );
+  CCOL_STOICM  = DefvElm( "CCOL_STOICM", INT, -CNEQN, "Beginning of columns in STOICM" );
+
+  DDMTYPE      = DefElm( "DDMTYPE", INT, "DDM sensitivity w.r.t.: 0=init.val., 1=params" );
+
+  NTMPD2A= DefConst( "NTMPD2A",   INT, "Length of Temporary Array D2A" );
+  D2A    = DefvElm( "D2A", real, -NTMPD2A, "Second derivatives of equation rates" );
+  NHESS = DefConst( "NHESS", INT, "Length of Sparse Hessian" );
+  HESS  = DefvElm( "HESS", real, -NHESS, "Hessian of Var (i.e. the 3-tensor d Jac / d Var)" );
+  IHESS_I  = DefvElm( "IHESS_I", INT, -NHESS, "Index i of Hessian element d^2 f_i/dv_j.dv_k" );
+  IHESS_J  = DefvElm( "IHESS_J", INT, -NHESS, "Index j of Hessian element d^2 f_i/dv_j.dv_k" );
+  IHESS_K  = DefvElm( "IHESS_K", INT, -NHESS, "Index k of Hessian element d^2 f_i/dv_j.dv_k" ); 
+  U1  = DefvElm( "U1",  real, -NVAR, "User vector" );
+  U2  = DefvElm( "U2",  real, -NVAR, "User vector" );
+  HU  = DefvElm( "HU", real, -NVAR, "Hessian times user vectors: (Hess x U2) * U1 = [d (Jac*U1)/d Var] * U2" );
+  HTU = DefvElm( "HTU", real, -NVAR, "Transposed Hessian times user vectors: (Hess x U2)^T * U1 = [d (Jac^T*U1)/d Var] * U2 " );
+
+  KR = DefeElm( "KR", 0 );
+
+  IROW  = DefvElm( "IROW", INT, -NONZERO, "Row indexes of the Jacobian of variables" );
+  ICOL  = DefvElm( "ICOL", INT, -NONZERO, "Column indexes of the Jacobian of variables" );
+  CROW  = DefvElm( "CROW", INT, -CNVAR, "Compressed row indexes of the Jacobian of variables" );
+  DIAG  = DefvElm( "DIAG", INT, -CNVAR, "Diagonal indexes of the Jacobian of variables" );
+  LU_IROW  = DefvElm( "LU_IROW", INT, -LU_NONZERO, "Row indexes of the LU Jacobian of variables" );
+  LU_ICOL  = DefvElm( "LU_ICOL", INT, -LU_NONZERO, "Column indexes of the LU Jacobian of variables" );
+  LU_CROW  = DefvElm( "LU_CROW", INT, -CNVAR, "Compressed row indexes of the LU Jacobian of variables" );
+  LU_DIAG  = DefvElm( "LU_DIAG", INT, -CNVAR, "Diagonal indexes of the LU Jacobian of variables" );
+
+  IV = DefeElm( "IV", 0 );
+
+  C_DEFAULT = DefvElm( "C_DEFAULT", real, -NSPEC, "Default concentration for all species" );
+  C = DefvElm( "C", real, -NSPEC, "Concentration of all species" );
+  CL = DefvElm( "CL", real, -NSPEC, "Concentration of all species (local)" );
+  DC = DefvElm( "DC", real, -NSPEC, "Fluxes of all species" );
+  ATOL = DefvElm( "ATOL", real, -NVAR, "Absolute tolerance" );
+  RTOL = DefvElm( "RTOL", real, -NVAR, "Relative tolerance" );
+
+  STEPMIN  = DefElm( "STEPMIN", real, "Lower bound for integration step");
+  STEPMAX  = DefElm( "STEPMAX", real, "Upper bound for integration step");
+
+  NLOOKAT = DefConst( "NLOOKAT", INT, "Number of species to look at" );
+  LOOKAT  = DefvElm( "LOOKAT", INT, -NLOOKAT, "Indexes of species to look at" );
+
+  NMONITOR = DefConst( "NMONITOR", INT, "Number of species to monitor" );
+  MONITOR  = DefvElm( "MONITOR", INT, -NMONITOR, "Indexes of species to monitor" );
+
+  NMASS  = DefConst( "NMASS", INT, "Number of atoms to check mass balance" );
+  SMASS  = DefvElm( "SMASS", STRING, -NMASS, "Names of atoms for mass balance" );
+
+  EQN_TAGS    = DefvElm( "EQN_TAGS", STRING, -NREACT, "Equation tags" );
+  EQN_NAMES  = DefvElm( "EQN_NAMES", DOUBLESTRING, -NREACT, "Equation names" );
+  SPC_NAMES  = DefvElm( "SPC_NAMES", STRING, -NSPEC, "Names of chemical species" );
+
+  CFACTOR  = DefElm( "CFACTOR", real, "Conversion factor for concentration units");
+
+  /* Elements of Stochastic simulation*/
+  NMLCV = DefvElm( "NmlcV", INT, -NVAR, "No. molecules of variable species" );
+  NMLCF = DefvElm( "NmlcF", INT, -NFIX, "No. molecules of fixed species" );
+  SCT   = DefvElm( "SCT",  real, -NREACT, "Stochastic rate constants" );
+  PROPENSITY  = DefvElm( "Prop",  real, -NREACT, "Propensity vector" );
+  VOLUME = DefElm( "Volume", real, "Volume of the reaction container" );
+  IRCT  = DefElm( "IRCT", INT, "Index of chemical reaction" );
+
+  for ( i=0; i<EqnNr; i++ ) 
+    for ( j=0; j<SpcNr; j++ ) 
+      structB[i][j] = ( Stoich_Left[j][i] != 0 ) ? 1 : 0;
+      
+  /* Constant values are useful to declare vectors of this size */ 
+  if (useDeclareValues) {   
+    varTable[ NSPEC ]   -> value  = max(SpcNr,1);
+    varTable[ NVAR  ]   -> value  = max(VarNr,1);
+    varTable[ NVARACT ] -> value  = max(VarActiveNr,1);
+    varTable[ NFIX   ]  -> value  = max(FixNr,1);
+    varTable[ NREACT ]  -> value  = max(EqnNr,1);
+    varTable[ NVARST ]  -> value  = Index(0);
+    varTable[ NFIXST ]  -> value  = Index(VarNr);
+  }
+}
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+int NonZero( int stru, int start, int end, 
+             int *row, int *col, int *crow, int *diag )
+{
+int nElm;
+int i,j;
+  
+  nElm = 0;
+  for (i = 0; i < end-start; i++) { 
+    crow[i] = Index(nElm);
+    for (j = 0; j < end-start; j++) {
+      if( (i == j) || ( (stru) ? LUstructJ[i+start][j+start] 
+                               : structJ[i+start][j+start] ) ) {
+        row[nElm] = Index(i);
+	col[nElm] = Index(j);
+        nElm++;
+      }
+      if( i == j ) {
+        diag[i] = Index(nElm-1);
+      }  
+    }
+  }
+  crow[i] = Index(nElm);
+  diag[i] = Index(nElm);
+  return nElm;
+}
+
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void GenerateGData()
+{
+int  i,j,k;
+int  *crow;
+int  *diag;
+int  nElm;
+int  *lookat;
+int  *moni;
+char *snames[MAX_SPECIES];
+int  *trans;
+char *strans[MAX_SPECIES];
+char *smass[MAX_ATOMS];
+char *EQN_NAMES[MAX_EQN];
+char *EQN_TAGS[MAX_EQN];
+char *bufeqn, *p;
+int dim;
+
+  if ( (useLang != C_LANG)&&(useLang != MATLAB_LANG) ) return;
+
+  UseFile( driverFile );
+
+  NewLines(1);
+
+  GlobalDeclare( C );
+  C_Inline("%s * %s = & %s[%d];", C_types[real], 
+            varTable[VAR]->name, varTable[C]->name, 0 );
+  C_Inline("%s * %s = & %s[%d];", C_types[real], 
+            varTable[FIX]->name, varTable[C]->name, VarNr );
+	     
+
+  GlobalDeclare( RCONST );
+  GlobalDeclare( TIME );
+  GlobalDeclare( SUN );
+  GlobalDeclare( TEMP );
+  GlobalDeclare( RTOLS );
+  GlobalDeclare( TSTART );
+  GlobalDeclare( TEND );
+  GlobalDeclare( DT );
+  GlobalDeclare( ATOL );
+  GlobalDeclare( RTOL );
+  GlobalDeclare( STEPMIN );
+  GlobalDeclare( STEPMAX );
+  GlobalDeclare( CFACTOR );
+  if (useStochastic)
+      GlobalDeclare( VOLUME );
+
+  MATLAB_Inline("  %s_Parameters;",rootFileName);
+  MATLAB_Inline("  %s_Global_defs;",rootFileName);
+  MATLAB_Inline("  %s_Sparse;",rootFileName);
+  MATLAB_Inline("  %s_Monitor;",rootFileName);
+  if (useJacSparse )
+    MATLAB_Inline("  %s_JacobianSP;",rootFileName);
+  if (useHessian )
+    MATLAB_Inline("  %s_HessianSP;",rootFileName);
+  if (useStoicmat )
+    MATLAB_Inline("  %s_StoichiomSP;",rootFileName);
+  
+  NewLines(1);
+
+}
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void GenerateMonitorData()
+{
+int  i,j,k;
+int  *crow;
+int  *diag;
+int  nElm;
+int  *lookat;
+int  *moni;
+char *snames[MAX_SPECIES];
+int  *trans;
+char *strans[MAX_SPECIES];
+char *smass[MAX_ATOMS];
+char *seqn[MAX_EQN];
+char *bufeqn, *p;
+int dim;
+
+
+  /* Allocate local data structures */
+  dim    = SpcNr+2;
+  crow   = AllocIntegerVector( dim, "crow in GenerateMonitorData");
+  diag   = AllocIntegerVector( dim, "diag in GenerateMonitorData");
+  lookat = AllocIntegerVector( dim, "lookat in GenerateMonitorData"); 
+  moni   = AllocIntegerVector( dim, "moni in GenerateMonitorData");
+  trans  = AllocIntegerVector( dim, "trans in GenerateMonitorData");
+
+  UseFile( monitorFile );
+
+  F77_Inline("%6sBLOCK DATA MONITOR_DATA\n", " " );
+  F77_Inline("%6sINCLUDE '%s_Parameters.h'", " ",rootFileName);
+  F77_Inline("%6sINCLUDE '%s_Global.h'", " ",rootFileName);
+  F77_Inline("%6sINTEGER i", " " );
+    
+   /* InitDeclare( CFACTOR, 0, (void*)&cfactor ); */
+  
+  NewLines(1);
+
+  for (i = 0; i < SpcNr; i++) {
+      snames[i] = SpeciesTable[Code[i]].name;
+  }  
+  InitDeclare( SPC_NAMES, SpcNr, (void*)snames );
+
+  nlookat = 0;
+  for (i = 0; i < SpcNr; i++)
+    if ( SpeciesTable[Code[i]].lookat ) {
+      lookat[nlookat] = Index(i);
+      nlookat++;  
+    } 
+  
+  if (useDeclareValues)  
+        varTable[ NLOOKAT ]  -> value  = max(nlookat,1);
+  InitDeclare( LOOKAT, nlookat, (void*)lookat );
+
+  nmoni = 0;
+  for (i = 0; i < SpcNr; i++)
+    if ( SpeciesTable[Code[i]].moni ) {
+      moni[nmoni] = Index(i);
+      nmoni++;
+    }  
+
+  if( nmoni > MAX_MONITOR ) {
+    Warning( "%d species to monitorize. Too many, keeping %d.", 
+             nmoni, MAX_MONITOR );
+    nmoni = MAX_MONITOR;         
+  }
+
+  if (useDeclareValues)  
+        varTable[ NMONITOR ] -> value  = max(nmoni,1);
+  InitDeclare( MONITOR, nmoni, (void*)moni );
+
+  ntrans = 0;
+  for (i = 0; i < SpcNr; i++)
+    if ( SpeciesTable[Code[i]].trans ) {
+      trans[ntrans] = Index(i);
+      strans[ntrans] = SpeciesTable[Code[i]].name;
+      ntrans++;  
+    } 
+
+  nmass = 0;
+  for (i = 0; i < AtomNr; i++)
+    if ( AtomTable[i].masscheck ) {
+      smass[nmass] = AtomTable[i].name;
+      nmass++;
+    }  
+  if (useDeclareValues)  
+        varTable[ NMASS ]    -> value  = max(nmass,1);
+  InitDeclare( SMASS, nmass, (void*)smass );
+
+  if ( (bufeqn = (char*)malloc(MAX_EQNLEN*EqnNr+2))==NULL ) {
+    FatalError(-30,"GenerateMonitorData: Cannot allocate bufeqn (%d chars)", 
+                    MAX_EQNLEN*EqnNr);
+  }
+
+  p = bufeqn; 
+  for (i = 0; i < EqnNr; i++) {
+    EqnString(i, p);
+    seqn[i] = p;
+    p += MAX_EQNLEN;
+  }  
+  InitDeclare( EQN_NAMES, EqnNr, (void*)seqn );
+
+  free( bufeqn );
+
+  if (useEqntags==1) {
+    for (i = 0; i < EqnNr; i++) {
+      seqn[i] = kr[i].label;  
+    }  
+    InitDeclare( EQN_TAGS, EqnNr, (void*)seqn );
+  }
+  
+  NewLines(1);
+  WriteComment("INLINED global variables");
+
+  switch( useLang ) {
+    case C_LANG:   bprintf( InlineCode[ C_DATA ].code ); 
+                 break;
+    case F77_LANG: bprintf( InlineCode[ F77_DATA ].code ); 
+                 break;
+    case F90_LANG: bprintf( InlineCode[ F90_DATA ].code ); 
+                 break; 
+    case MATLAB_LANG: bprintf( InlineCode[ MATLAB_DATA ].code ); 
+                 break; 
+  }
+  FlushBuf();
+
+  NewLines(1);
+  WriteComment("End INLINED global variables");
+  NewLines(1);
+
+  F77_Inline( "%6sEND\n\n", " " );
+
+  /* Free local data structures */
+  free(crow); free(diag); free(lookat); free(moni); free(trans);
+
+}
+
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void GenerateJacobianSparseData()
+{
+int* irow;
+int* icol;
+int* crow;
+int* diag;
+int nElm;
+int dim;
+
+  if( !useJacSparse ) return;
+
+  /* Allocate local arrays */
+  dim=MAX_SPECIES;
+  irow = AllocIntegerVector( dim*dim, "irow in GenerateJacobianSparseData" );
+  icol = AllocIntegerVector( dim*dim, "icol in GenerateJacobianSparseData" );
+  crow = AllocIntegerVector( dim,     "crow in GenerateJacobianSparseData" );
+  diag = AllocIntegerVector( dim,     "diag in GenerateJacobianSparseData" );
+    
+  UseFile( sparse_jacFile );
+
+  NewLines(1);  
+  WriteComment("Sparse Jacobian Data");
+  NewLines(1);  
+
+  F77_Inline("%6sBLOCK DATA JACOBIAN_SPARSE_DATA\n", " " );
+  F77_Inline("%6sINCLUDE '%s_Sparse.h'", " ",rootFileName);
+  F77_Inline("%6sINTEGER i"," ");
+  /* F90_Inline("   USE %s_Sparse", rootFileName); */
+
+ 
+  Jac_NZ = NonZero( PLAIN, 0, VarNr, irow, icol, crow, diag );
+  LU_Jac_NZ = NonZero( LU, 0, VarNr, irow, icol, crow, diag );
+  if (useDeclareValues) {
+     varTable[NONZERO] -> value = Jac_NZ;
+     varTable[LU_NONZERO] -> value = LU_Jac_NZ;
+  }   
+
+  switch (useJacobian) {
+  case JAC_ROW:
+    Jac_NZ = NonZero( PLAIN, 0, VarNr, irow, icol, crow, diag );
+    InitDeclare( IROW, Jac_NZ, (void*)irow );
+    InitDeclare( ICOL, Jac_NZ, (void*)icol );
+    InitDeclare( CROW, VarNr+1, (void*)crow );
+    InitDeclare( DIAG, VarNr+1, (void*)diag );
+    break;
+  case JAC_LU_ROW:
+    LU_Jac_NZ = NonZero( LU, 0, VarNr, irow, icol, crow, diag );
+    InitDeclare( LU_IROW, LU_Jac_NZ, (void*)irow );
+    InitDeclare( LU_ICOL, LU_Jac_NZ, (void*)icol );
+    InitDeclare( LU_CROW, VarNr+1, (void*)crow );
+    InitDeclare( LU_DIAG, VarNr+1, (void*)diag );
+  }
+  NewLines(1);
+  F77_Inline( "%6sEND\n\n", " " );
+  
+  /* Free local arrays */
+  free(irow); free(icol); free(crow); free(diag);
+}
+
+
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void GenerateJacobianSparseHeader()
+{
+  UseFile( sparse_dataFile );
+
+  CommonName = "SDATA";
+
+  NewLines(1);
+  WriteComment(" ----------> Sparse Jacobian Data");
+  NewLines(1);
+
+  switch (useJacobian) {
+  case JAC_ROW:
+    ExternDeclare( IROW );
+    ExternDeclare( ICOL );
+    ExternDeclare( CROW );
+    ExternDeclare( DIAG );
+     break;
+  case JAC_LU_ROW:
+    ExternDeclare( LU_IROW );
+    ExternDeclare( LU_ICOL );
+    ExternDeclare( LU_CROW );
+    ExternDeclare( LU_DIAG );
+  }
+  
+  NewLines(1);
+}
+
+
+
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void GenerateFun()
+{
+int i, j, k;
+int used;
+int l, m;
+int F_VAR, FSPLIT_VAR;
+
+  if( VarNr == 0 ) return;
+  
+  if (useLang != MATLAB_LANG)  /* Matlab generates an additional file per function */
+       UseFile( functionFile ); 
+
+  F_VAR      = DefFnc( "Fun",      4, "time derivatives of variables - Agregate form");
+  FSPLIT_VAR = DefFnc( "Fun_SPLIT", 5, "time derivatives of variables - Split form");
+
+  if( useAggregate )
+    FunctionBegin( F_VAR, V, F, RCT, Vdot );
+  else
+    FunctionBegin( FSPLIT_VAR, V, F, RCT, P_VAR, D_VAR );
+
+  if ( (useLang==MATLAB_LANG)&&(!useAggregate) )
+     printf("\nWarning: in the function definition move P_VAR to output vars\n");
+
+  
+  if ( useLang!=F90_LANG ) { /* A is a module variable in F90 */
+    NewLines(1);
+    WriteComment("Local variables");
+    Declare( A );
+  }  
+  NewLines(1);
+  WriteComment("Computation of equation rates");
+  
+  for(j=0; j<EqnNr; j++) {
+    used = 0;
+    if( useAggregate ) {
+      for (i = 0; i < VarNr; i++) 
+        if ( Stoich[i][j] != 0 ) { 
+          used = 1;
+          break;
+        }
+    } else {
+      for (i = 0; i < VarNr; i++) 
+        if ( Stoich_Right[i][j] != 0 ) { 
+          used = 1;
+	  break;
+        }
+    }  
+    
+    if ( used ) {    
+      prod = RConst( j );
+      for (i = 0; i < VarNr; i++) 
+        for (k = 1; k <= (int)Stoich_Left[i][j]; k++ )
+          prod = Mul( prod, Elm( V, i ) ); 
+      for ( ; i < SpcNr; i++) 
+        for (k = 1; k <= (int)Stoich_Left[i][j]; k++ )
+          prod = Mul( prod, Elm( F, i - VarNr ) );
+      Assign( Elm( A, j ), prod );
+    }
+  }
+
+  if( useAggregate ) {
+
+    NewLines(1);
+    WriteComment("Aggregate function");
+
+    for (i = 0; i < VarNr; i++) {
+      sum = Const(0);
+      for (j = 0; j < EqnNr; j++) 
+        sum = Add( sum, Mul( Const( Stoich[i][j] ), Elm( A, j ) ) );
+      Assign( Elm( Vdot, i ), sum );
+    }    
+
+  } else {
+    
+    NewLines(1);
+    WriteComment("Production function");
+
+    for (i = 0; i < VarNr; i++) {
+      sum = Const(0);
+      for (j = 0; j < EqnNr; j++) 
+        sum = Add( sum, Mul( Const( Stoich_Right[i][j] ), Elm( A, j ) ) );
+      Assign( Elm( P_VAR, i ), sum );
+    }
+    
+    NewLines(1);
+    WriteComment("Destruction function");
+
+    for (i = 0; i < VarNr; i++) {
+      sum = Const(0);       
+      for(j=0; j<EqnNr; j++) {
+        if ( Stoich_Left[i][j] == 0 ) continue;
+        prod = Mul( RConst( j ), Const( Stoich_Left[i][j] ) );
+        for (l = 0; l < VarNr; l++) {
+          m=(int)Stoich_Left[l][j] - (l==i);
+          for (k = 1; k <= m; k++ )
+            prod = Mul( prod, Elm( V, l ) );
+        }     
+        for ( ; l < SpcNr; l++) 
+          for (k = 1; k <= (int)Stoich_Left[l][j]; k++ )
+            prod = Mul( prod, Elm( F, l - VarNr  ) ); 
+        sum = Add( sum, prod );
+      }
+      Assign( Elm( D_VAR, i ), sum );
+    }
+  }   
+
+  if( useAggregate )
+    MATLAB_Inline("\n   Vdot = Vdot(:);\n");
+  else
+    MATLAB_Inline("\n   P_VAR = P_VAR(:);\n   D_VAR = D_VAR(:);\n");
+
+  if( useAggregate )
+    FunctionEnd( F_VAR );
+  else
+    FunctionEnd( FSPLIT_VAR );
+  
+  FreeVariable( F_VAR );
+  FreeVariable( FSPLIT_VAR );
+}
+
+
+
+
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void GenerateStochastic()
+{
+int i, j, k, l, m, n, jnr;
+int used;
+int F_VAR;
+
+  if( VarNr == 0 ) return;
+  
+  if (useLang != MATLAB_LANG)  /* Matlab generates an additional file per function */
+       UseFile( stochasticFile ); 
+
+  /* ~~~~~~~> 1. PROPENSITY FUNCTION  ~~~~~~~~~~~~ */
+  F_VAR = DefFnc( "Propensity", 4, "Propensity function");
+  FunctionBegin( F_VAR, NMLCV, NMLCF, SCT, PROPENSITY );
+
+  if ( (useLang==MATLAB_LANG)&&(!useAggregate) )
+     printf("\nWarning: in the function definition move P_VAR to output vars\n");
+
+  NewLines(1);
+  
+  for(j=0; j<EqnNr; j++) {
+    used = 0;
+    for (i = 0; i < VarNr; i++) 
+      if ( Stoich[i][j] != 0 ) { 
+        used = 1;
+        break;
+      }
+    if ( used ) {    
+      prod = Elm( SCT, j );
+      for (i = 0; i < VarNr; i++) 
+        for (k = 1; k <= (int)Stoich_Left[i][j]; k++ )
+	  if (k==1)
+             prod = Mul( prod, Elm( NMLCV, i ) );
+	  else
+	     prod = Mul( prod, Add( Elm( NMLCV, i ), Const(-k+1) ) );
+	     
+      for ( ; i < SpcNr; i++) 
+        for (k = 1; k <= (int)Stoich_Left[i][j]; k++ )
+	  if (k==1)
+             prod = Mul( prod, Elm( NMLCF, i - VarNr ) );
+	  else
+	     prod = Mul( prod, Add( Elm( NMLCF, i - VarNr ), Const(-k+1) ) );
+      Assign( Elm( PROPENSITY, j ), prod );
+    } /* if used */
+  } /* for j */
+
+  MATLAB_Inline("\n   Prop = Prop(:);\n");
+  FunctionEnd( F_VAR );
+  FreeVariable( F_VAR );
+
+  /* ~~~~~~~> 2. RATE CONVERSION ~~~~~~~~~~~~ */
+  F_VAR = DefFnc( "StochasticRates", 3, "Convert deterministic rates to stochastic");
+  FunctionBegin( F_VAR, RCT, VOLUME, SCT );
+  WriteComment("No. of molecules = Concentration x Volume");
+  WriteComment("For a reaction with k reactants:");
+  WriteComment("         RCT [ (molec/Volume)^(1-k) * sec^(-1) ]");
+  WriteComment("         SCT [ (molec)^(1-k) * sec^(-1) ] = RCT*Volume^(k-1)");
+  WriteComment("For p molecules of the same type:  SCT = SCT/(p!)");
+
+  NewLines(1);
+  
+  for(j=0; j<EqnNr; j++) {
+      prod = Elm( RCT, j );
+      m = 0;
+      for (i = 0; i < SpcNr; i++) 
+        m += (int)Stoich_Left[i][j];
+      for ( i=2 ; i <= m; i++)
+         prod = Mul( prod, Elm(VOLUME, 1) );
+      n = 1;
+      for (i = 0; i < SpcNr; i++) 
+        for (k = 2; k <= (int)Stoich_Left[i][j]; k++ )
+	  n *= k;
+      prod = Div( prod, Const( n ) );
+      Assign( Elm( SCT, j ), prod );
+  } /* for j */
+
+  MATLAB_Inline("\n   SCT = SCT(:);\n");
+  FunctionEnd( F_VAR );
+  FreeVariable( F_VAR );  
+  
+  /* ~~~~~~~> 3. THE CHANGE IN NUMBER OF MOLECULES */
+  if (useLang == MATLAB_LANG) {
+    F_VAR = DefFnc( "MoleculeChange", 3, "Change in the number of molecules");
+    FunctionBegin( F_VAR, IRCT, NMLCV, NMLCV );
+  } else {  
+    F_VAR = DefFnc( "MoleculeChange", 2, "Change in the number of molecules");
+    FunctionBegin( F_VAR, IRCT, NMLCV );
+  }  
+
+  NewLines(1);
+  
+  F90_Inline("\n SELECT CASE (IRCT)\n");
+  C_Inline  ("\n switch (IRCT) { \n");
+  MATLAB_Inline("\n switch (IRCT) \n");
+  for(j=0; j<EqnNr; j++) {
+      jnr = j+1;
+      if (j==0)
+        F77_Inline("\n%6sIF (IRCT.EQ.%d) THEN"," ",jnr);
+      else	
+        F77_Inline("\n%6sELSEIF (IRCT.EQ.%d) THEN "," ",jnr);
+      F90_Inline("\n  CASE (%d) ",jnr);
+      C_Inline("\n  case %d: ",jnr);
+      MATLAB_Inline("\n case %d, ",jnr);
+      for (i = 0; i < VarNr; i++) {
+        if ( Stoich_Left[i][j] || Stoich_Right[i][j] )
+          Assign( Elm( NMLCV, i ), Add(Elm( NMLCV, i ), 
+	       Const(Stoich_Right[i][j]-Stoich_Left[i][j])) );
+      } /* for i */
+      C_Inline("  break;",j);
+  } /* for j */
+  F77_Inline("\n%6sEND IF ! n\n"," ");
+  F90_Inline("\n END SELECT\n");
+  C_Inline("\n } /* switch (IRCT) */ \n");
+  MATLAB_Inline("\n end\n");
+
+  FunctionEnd( F_VAR );
+  FreeVariable( F_VAR );  
+ 
+}
+
+
+
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void GenerateReactantProd()
+{
+int i, j, k;
+int used;
+int l, m;
+int F_STOIC;
+
+  if( VarNr == 0 ) return;
+  
+  UseFile( stoichiomFile ); 
+
+  F_STOIC = DefFnc( "ReactantProd",3, "Reactant Products in each equation");
+
+  FunctionBegin( F_STOIC, V, F, ARP );
+  
+  NewLines(1);
+  WriteComment("Reactant Products in each equation are useful in the");
+  WriteComment("    stoichiometric formulation of mass action law");
+  
+  for(j=0; j<EqnNr; j++) {
+
+      prod = Const( 1 );
+      for (i = 0; i < VarNr; i++) 
+        for (k = 1; k <= (int)Stoich_Left[i][j]; k++ )
+          prod = Mul( prod, Elm( V, i ) ); 
+      for ( ; i < SpcNr; i++) 
+        for (k = 1; k <= (int)Stoich_Left[i][j]; k++ )
+          prod = Mul( prod, Elm( F, i - VarNr  ) );
+      Assign( Elm( ARP, j ), prod );
+    
+  } /* for j EqnNr */
+
+  FunctionEnd(  F_STOIC );
+  FreeVariable( F_STOIC );
+}
+
+
+
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void GenerateJacReactantProd()
+{
+int i, j, k, l, m, JVRP_NZ, newrow;
+int used;
+int F_STOIC;
+int crow_JVRP[MAX_EQN], icol_JVRP[MAX_EQN*MAX_SPECIES];
+int irow_JVRP[MAX_EQN*MAX_SPECIES];
+
+  if( VarNr == 0 ) return;
+  
+  if (useDeclareValues) {
+    JVRP_NZ = -1;
+    for ( i=0; i<EqnNr; i++ )
+      for ( j=0; j<VarNr; j++ )
+         if ( Stoich_Left[j][i] != 0 ) JVRP_NZ++;
+    varTable[ NJVRP ]  -> value  = JVRP_NZ + 1;
+  }
+
+  UseFile( stoichiomFile ); 
+
+  F_STOIC = DefFnc( "JacReactantProd",3, "Jacobian of Reactant Products vector");
+
+  FunctionBegin( F_STOIC, V, F, JVRP );
+
+  
+  NewLines(1);
+  WriteComment("Reactant Products in each equation are useful in the");
+  WriteComment("   stoichiometric formulation of mass action law");
+  WriteComment("Below we compute the Jacobian of the Reactant Products vector");
+  WriteComment("   w.r.t. variable species: d ARP(1:NREACT) / d Var(1:NVAR)");
+          
+  NewLines(1);
+
+  JVRP_NZ = -1;
+  for ( i=0; i<EqnNr; i++ ) {
+    newrow = 0;
+    crow_JVRP[i] = JVRP_NZ+1;
+    for ( j=0; j<VarNr; j++ ) {
+      if ( Stoich_Left[j][i] != 0 ) {
+        JVRP_NZ++;
+	icol_JVRP[JVRP_NZ] = j;
+	irow_JVRP[JVRP_NZ] = i;
+	if ( newrow == 0 ) { /* a new row begins here */
+	  crow_JVRP[i] = JVRP_NZ;
+	  newrow = 1;
+	}  
+        prod = Const( Stoich_Left[j][i] ) ;
+        for (l = 0; l < VarNr; l++) { 
+          m = (int)Stoich_Left[l][i] - (l==j);
+          for (k = 1; k <= m; k++ )
+            prod = Mul( prod, Elm( V, l ) ); 
+        }      
+        for ( ; l < SpcNr; l++) 
+          for (k = 1; k <= (int)Stoich_Left[l][i]; k++ )
+            prod = Mul( prod, Elm( F, l - VarNr ) );
+	/* Comment the B */
+	WriteComment("JVRP(%d) = dARP(%d)/dV(%d)",Index(JVRP_NZ),Index(i),Index(j));
+        Assign( Elm( JVRP, JVRP_NZ ), prod );
+      }
+    }
+  }
+  crow_JVRP[EqnNr] = JVRP_NZ + 1;
+
+  FunctionEnd(  F_STOIC );
+  FreeVariable( F_STOIC );
+
+
+  UseFile( sparse_stoicmFile ); 
+  NewLines(1);
+  WriteComment("Row-compressed sparse data for the Jacobian of reaction products JVRP");
+  F77_Inline("%6sBLOCK DATA JVRP_SPARSE_DATA\n", " " );
+  F77_Inline("%6sINCLUDE '%s_Sparse.h'", " ", rootFileName);
+  F77_Inline("%6sINTEGER i", " ");
+  /* F90_Inline("   USE %s_Sparse", rootFileName); */
+  if( (useLang==F77_LANG)||(useLang==F90_LANG) ) {
+        for (k=0; k<JVRP_NZ+1; k++) { 
+           irow_JVRP[k]++;
+           icol_JVRP[k]++;
+	   }
+	for (k=0; k<EqnNr+1; k++) 
+           crow_JVRP[k]++;
+  }  
+  InitDeclare( CROW_JVRP, EqnNr+1, (void*)crow_JVRP );
+  InitDeclare( ICOL_JVRP, JVRP_NZ + 1, (void*)icol_JVRP );
+  InitDeclare( IROW_JVRP, JVRP_NZ + 1, (void*)irow_JVRP );
+  NewLines(1);
+  F77_Inline( "%6sEND\n\n", " " );
+  NewLines(1);
+
+  
+  UseFile( param_headerFile );
+  CommonName = "GDATA";
+  NewLines(1);
+  DeclareConstant( NJVRP,   ascii( JVRP_NZ + 1 ) );
+
+}
+
+
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void GenerateJac()
+{
+int i,j,k,l,m;
+int nElm, nonzeros_B;
+int Jac_SP, Jac;
+  
+  if( VarNr == 0 ) return;
+  if (useJacobian == JAC_OFF) return;
+
+  if (useLang != MATLAB_LANG)  /* Matlab generates an additional file per function */
+       UseFile( jacobianFile );
+  
+  Jac_SP  = DefFnc( "Jac_SP", 4,
+                  "the Jacobian of Variables in sparse matrix representation");
+  Jac     = DefFnc( "Jac", 4, "the Jacobian of Variables");
+  
+  if( useJacSparse )
+    FunctionBegin( Jac_SP, V, F, RCT, JVS );
+  else
+    FunctionBegin( Jac, V, F, RCT, JV );
+
+  if (useLang == MATLAB_LANG) {
+    switch (useJacobian) {
+    case JAC_ROW:
+      ExternDeclare(IROW); ExternDeclare(ICOL);
+      break;
+    case JAC_LU_ROW:
+      ExternDeclare(LU_IROW); ExternDeclare(LU_ICOL);
+      break;    
+    }
+  }
+   
+  /* Each nonzero entry of B now counts its rank */
+  nonzeros_B = 0;
+  for ( i=0; i<EqnNr; i++ ) 
+    for ( j=0; j<SpcNr; j++ ) 
+       if ( structB[i][j] != 0 ) {
+	 nonzeros_B++;
+         structB[i][j] = nonzeros_B;
+	 }
+	 
+  if ( (useLang==C_LANG)||(useLang==F77_LANG)||(useLang==F90_LANG) ) {
+    NewLines(1);
+    WriteComment("Local variables");
+    /* DeclareConstant( NTMPB,   ascii( nonzeros_B ) ); */
+    varTable[ NTMPB ] -> value = nonzeros_B;
+    Declare( BV );
+  }
+        
+  NewLines(1);
+
+  for ( i=0; i<EqnNr; i++ ) {
+    for ( j=0; j<VarNr; j++ ) {
+      if ( Stoich_Left[j][i] != 0 ) {
+        prod = Mul( RConst( i ), Const( Stoich_Left[j][i] ) );
+        for (l = 0; l < VarNr; l++) { 
+          m = (int)Stoich_Left[l][i] - (l==j);
+          for (k = 1; k <= m; k++ )
+            prod = Mul( prod, Elm( V, l ) ); 
+        }      
+        for ( ; l < SpcNr; l++) 
+          for (k = 1; k <= (int)Stoich_Left[l][i]; k++ )
+            prod = Mul( prod, Elm( F, l - VarNr ) );
+	/* Comment the B */
+	WriteComment("B(%d) = dA(%d)/dV(%d)",Index(structB[i][j]-1),Index(i),Index(j));
+        Assign( Elm( BV, structB[i][j]-1 ), prod );
+      }
+    }
+  }
+
+  nElm = 0;
+  NewLines(1);
+  WriteComment("Construct the Jacobian terms from B's"); 
+
+  if ( useJacSparse ) {
+  for (i = 0; i < VarNr; i++) {
+    for (j = 0; j < VarNr; j++) {
+      if( LUstructJ[i][j] ) {
+        sum = Const(0);
+        for (k = 0; k < EqnNr; k++) {
+          if( Stoich[i][k]*structB[k][j] != 0 ) 
+            sum = Add( sum, Mul( Const( Stoich[i][k] ), Elm( BV, structB[k][j]-1 ) ) );
+        }
+	/* Comment the B */
+	 WriteComment("JVS(%d) = Jac_FULL(%d,%d)",
+	          Index(nElm),Index(i),Index(j));
+         Assign( Elm( JVS, nElm ), sum );
+         nElm++;
+      } else {
+        if( i == j ) {
+          Assign( Elm( JVS, nElm ), Const(0) );
+          nElm++;
+        }
+      }
+    }
+  }  
+  } else { /* full Jacobian */
+  for (i = 0; i < VarNr; i++) {
+    for (j = 0; j < VarNr; j++) {
+      if( structJ[i][j] ) {
+        sum = Const(0);
+        for (k = 0; k < EqnNr; k++) {
+          if( Stoich[i][k]*structB[k][j] != 0 ) 
+            sum = Add( sum, Mul( Const( Stoich[i][k] ), Elm( BV, structB[k][j]-1 ) ) );
+        }
+        Assign( Elm( JV, i, j ), sum );
+      } 
+    }
+  }
+  }  
+
+  if (useLang == MATLAB_LANG) {
+    switch (useJacobian) {
+    case JAC_ROW:
+      MATLAB_Inline("\n   JVS = sparse(IROW,ICOL,JVS,%d,%d);\n",VarNr,VarNr);
+      break;
+    case JAC_LU_ROW:
+      MATLAB_Inline("\n   JVS = sparse(LU_IROW,LU_ICOL,JVS,%d,%d);\n",VarNr,VarNr);
+      break;    
+    }
+  }
+  
+  if( useJacSparse )
+    FunctionEnd( Jac_SP );
+  else
+    FunctionEnd( Jac );
+
+  FreeVariable( Jac_SP );
+  FreeVariable( Jac );
+  
+} 
+
+
+
+
+
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void GenerateHessian()
+/* Unlike Hess, this function deffers the sparse Data structure generation */
+{
+int i, j, k;
+int used;
+int l, m, i1, i2, nElm;
+int F_Hess, F_Hess_VEC, F_HessTR_VEC;
+int *coeff_j, *coeff_i1, *coeff_i2;
+int Djv_isElm;
+
+  if ( VarNr == 0 ) return;
+  
+  if (useLang != MATLAB_LANG)  /* Matlab generates an additional file per function */
+      UseFile( hessianFile ); 
+
+/*  Calculate the number of nonzero terms of the form d^2 A(j)/ ( d v(i1) d v(i2) )*/
+  nElm = 0;
+  for(j=0; j<EqnNr; j++) 
+    for (i1 = 0; i1 < VarNr; i1++) 
+      for (i2 = i1; i2 < VarNr; i2++) 
+        if (i1==i2) {
+          if (Stoich_Left[i1][j]>=2) 
+	    nElm++;
+	} else {  /* i1 != i2 */
+          if ( (Stoich_Left[i1][j]>=1)&&(Stoich_Left[i2][j]>=1) ) 
+	    nElm++;
+	}  
+
+/* Allocate temporary index arrays */
+  coeff_j  = AllocIntegerVector(nElm, "coeff_j  in GenerateHess");  
+  coeff_i1 = AllocIntegerVector(nElm, "coeff_i1 in GenerateHess");  
+  coeff_i2 = AllocIntegerVector(nElm, "coeff_i2 in GenerateHess");  
+
+/*  Fill in temporary index arrays */
+  nElm = 0;
+  for(j=0; j<EqnNr; j++) 
+    for (i1 = 0; i1 < VarNr; i1++) 
+      for (i2 = i1; i2 < VarNr; i2++) 
+        if (i1==i2) {
+          if (Stoich_Left[i1][j]>=2) {
+	    coeff_j[nElm] = j; coeff_i1[nElm] = i1; coeff_i2[nElm] = i2;
+	    nElm++;
+	    }
+	} else {  /* i1 != i2 */
+          if ( (Stoich_Left[i1][j]>=1)&&(Stoich_Left[i2][j]>=1) ) {
+	    coeff_j[nElm] = j; coeff_i1[nElm] = i1; coeff_i2[nElm] = i2;
+	    nElm++;
+	    }
+	}  
+/*  Number of nonzero terms of the form d^2 f(i)/ ( d v(i1) d v(i2) ) */
+    Hess_NZ = 0; 
+    for (i = 0; i < VarNr; i++)     
+      for (i1 = 0; i1 < VarNr; i1++)
+         for (i2 = i1; i2 < VarNr; i2++) {
+	    Djv_isElm = 0; 
+            for (j = 0; j < EqnNr; j++) 
+	      if ( Stoich[i][j] != 0 ) 
+                for (k = 0; k < nElm; k++) 
+	          if ( (coeff_j[k]==j) && (coeff_i1[k]==i1) 
+		                      && (coeff_i2[k]==i2) ) { 
+		    Djv_isElm = 1; 
+		  }
+	    if (Djv_isElm == 1) Hess_NZ++ ; 
+    }  /* for i, i1, i2 */ 
+  if (useDeclareValues)   
+       varTable[ NHESS ] -> value = max( Hess_NZ, 1 );
+
+/* Allocate temporary index arrays */
+  iHess_i = AllocIntegerVector(Hess_NZ, "iHess_i in GenerateHess");  
+  iHess_j = AllocIntegerVector(Hess_NZ, "iHess_j in GenerateHess");  
+  iHess_k = AllocIntegerVector(Hess_NZ, "iHess_k in GenerateHess");  
+
+  F_Hess  = DefFnc( "Hessian", 4, "function for Hessian (Jac derivative w.r.t. variables)");
+  FunctionBegin( F_Hess, V, F, RCT, HESS );
+
+  WriteComment("--------------------------------------------------------");
+  WriteComment("Note: HESS is represented in coordinate sparse format: ");
+  WriteComment("      HESS(m) = d^2 f_i / dv_j dv_k = d Jac_{i,j} / dv_k");
+  WriteComment("      where i = IHESS_I(m), j = IHESS_J(m), k = IHESS_K(m).");
+  WriteComment("--------------------------------------------------------");
+  WriteComment("Note: d^2 f_i / dv_j dv_k = d^2 f_i / dv_k dv_j, ");
+  WriteComment("      therefore only the terms d^2 f_i / dv_j dv_k");
+  WriteComment("      with j <= k are computed and stored in HESS.");
+  WriteComment("--------------------------------------------------------");
+
+  if ( (useLang==C_LANG)||(useLang==F77_LANG)||(useLang==F90_LANG) ) {
+    NewLines(1);
+    WriteComment("Local variables");
+    /* DeclareConstant( NTMPD2A,   ascii( max( nElm, 1 ) ) ); */
+    varTable[ NTMPD2A ] -> value = max( nElm, 1 );
+    Declare( D2A );
+  }
+
+  NewLines(1);
+  WriteComment("Computation of the second derivatives of equation rates");
+  
+/*  Generate d^2 A(j)/ ( d v(i1) d v(i2) )*/
+  nElm = 0;
+  for(j=0; j<EqnNr; j++) 
+    for (i1 = 0; i1 < VarNr; i1++) 
+      for (i2 = i1; i2 < VarNr; i2++) {
+    
+        if (i1==i2) {
+     
+         if (Stoich_Left[i1][j]>=2) {
+            prod = RConst( j );
+            for (i = 0; i < i1; i++) 
+              for (k = 1; k <= (int)Stoich_Left[i][j]; k++ )
+                prod = Mul( prod, Elm( V, i ) ); 
+            prod = Mul( prod, Const( Stoich_Left[i1][j] ) );	      
+            prod = Mul( prod, Const( Stoich_Left[i1][j]-1 ) );	      
+            for (k = 1; k <= (int)Stoich_Left[i1][j]-2; k++ )
+              prod = Mul( prod, Elm( V, i1 ) ); 
+            for (i = i1+1; i < VarNr; i++) 
+              for (k = 1; k <= (int)Stoich_Left[i][j]; k++ )
+                prod = Mul( prod, Elm( V, i ) ); 
+            for ( ; i < SpcNr; i++) 
+              for (k = 1; k <= (int)Stoich_Left[i][j]; k++ )
+                prod = Mul( prod, Elm( F, i - VarNr ) );	      
+	    /* Comment the D2A */
+	    WriteComment("D2A(%d) = d^2 A(%d)/{dV(%d)dV(%d)}",Index(nElm),Index(j),Index(i1),Index(i2));
+            Assign( Elm( D2A, nElm ), prod );
+	    nElm++;
+	  } /* if (Stoich_Left[i1][j]>=2) */
+         
+	 } else {  /* i1 != i2 */
+            if ( (Stoich_Left[i1][j]>=1)&&(Stoich_Left[i2][j]>=1) ) {
+               prod = RConst( j );
+               for (i = 0; i < i1; i++) 
+                 for (k = 1; k <= (int)Stoich_Left[i][j]; k++ )
+                   prod = Mul( prod, Elm( V, i ) ); 
+               prod = Mul( prod, Const( Stoich_Left[i1][j] ) );	      
+               for (k = 1; k <= (int)Stoich_Left[i1][j]-1; k++ )
+                 prod = Mul( prod, Elm( V, i1 ) ); 
+               for (i = i1+1; i < i2; i++) 
+                 for (k = 1; k <= (int)Stoich_Left[i][j]; k++ )
+                   prod = Mul( prod, Elm( V, i ) ); 
+               prod = Mul( prod, Const( Stoich_Left[i2][j] ) );	      
+               for (k = 1; k <= (int)Stoich_Left[i2][j]-1; k++ )
+                 prod = Mul( prod, Elm( V, i2 ) ); 
+               for (i = i2+1; i < VarNr; i++) 
+                 for (k = 1; k <= (int)Stoich_Left[i][j]; k++ )
+                   prod = Mul( prod, Elm( V, i ) ); 
+               for ( ; i < SpcNr; i++) 
+                 for (k = 1; k <= (int)Stoich_Left[i][j]; k++ )
+                   prod = Mul( prod, Elm( F, i - VarNr ) );
+	    /* Comment the D2A */
+	       WriteComment("D2A(%d) = d^2 A(%d) / dV(%d)dV(%d)",
+	                         Index(nElm),Index(j),Index(i1),Index(i2));
+            Assign( Elm( D2A, nElm ), prod );
+	    nElm++;
+            } /* if ( (Stoich_Left[i1][j]>=1)&&(Stoich_Left[i2][j]>=1) )  */	 
+	 }  /* if i1==i2 */
+
+  } /* for j, i1, i2 */
+
+    NewLines(1);
+    WriteComment("Computation of the Jacobian derivative");
+
+/*  Generate d^2 f(i)/ ( d v(i1) d v(i2) ) */
+    Hess_NZ = 0; 
+    for (i = 0; i < VarNr; i++)     
+      for (i1 = 0; i1 < VarNr; i1++)
+         for (i2 = i1; i2 < VarNr; i2++) {
+            sum = Const(0);
+	    Djv_isElm = 0; 
+            for (j = 0; j < EqnNr; j++) 
+	      if ( Stoich[i][j] != 0 ) 
+                for (k = 0; k < nElm; k++) 
+	          if ( (coeff_j[k]==j) && (coeff_i1[k]==i1) 
+		                      && (coeff_i2[k]==i2) ) { 
+                    sum = Add( sum, 
+		            Mul( Const( Stoich[i][j] ), Elm( D2A, k ) ) ); 
+		    Djv_isElm = 1; 
+		  }
+	    if (Djv_isElm == 1) {
+	       WriteComment("HESS(%d) = d^2 Vdot(%d)/{dV(%d)dV(%d)} = d^2 Vdot(%d)/{dV(%d)dV(%d)}",
+		       Index(Hess_NZ),Index(i),Index(i1),Index(i2),Index(i),Index(i2),Index(i1));         
+	       Assign( Elm( HESS, Hess_NZ ), sum );
+               iHess_i[ Hess_NZ ] = i; 
+               iHess_j[ Hess_NZ ] = i1; 
+               iHess_k[ Hess_NZ ] = i2;   
+	       Hess_NZ++; 
+	       }
+	    
+    }  /* for i, i1, i2 */ 
+
+
+/* free temporary index arrays */
+  free(coeff_j);  free(coeff_i1);  free(coeff_i2);  
+  
+  MATLAB_Inline("\n   HESS = HESS(:);");
+  
+  FunctionEnd( F_Hess );
+  
+  FreeVariable( F_Hess );
+
+
+  F_HessTR_VEC  = DefFnc( "HessTR_Vec", 4, "Hessian transposed times user vectors");
+  FunctionBegin( F_HessTR_VEC, HESS, U1, U2, HTU );
+  WriteComment("Compute the vector HTU =(Hess x U2)^T * U1 = d (Jac^T*U1)/d Var * U2 ");
+
+  for (i=0; i<VarNr; i++) {
+      sum = Const(0);
+        for (k=0; k<Hess_NZ; k++) {
+          if (iHess_j[k]==i)
+             sum = Add( sum, 
+		   Mul( Elm( HESS, k ), 
+		   Mul( Elm( U1, iHess_i[k] ), Elm( U2, iHess_k[k] ) ) ) ); 
+	  else if (iHess_k[k]==i)
+             sum = Add( sum, 
+		   Mul( Elm( HESS, k ), 
+		   Mul( Elm( U1, iHess_i[k] ), Elm( U2, iHess_j[k] ) ) ) ); 
+        }
+      Assign( Elm( HTU, i ), sum );
+  }
+  
+  MATLAB_Inline("\n   HTU = HTU(:);");
+  
+  FunctionEnd(  F_HessTR_VEC );
+  FreeVariable( F_HessTR_VEC );
+
+
+  F_Hess_VEC  = DefFnc( "Hess_Vec", 4, "Hessian times user vectors");
+  FunctionBegin( F_HessTR_VEC, HESS, U1, U2, HU );
+  WriteComment("Compute the vector HU =(Hess x U2) * U1 = d (Jac*U1)/d Var * U2 ");
+
+  for (i=0; i<VarNr; i++) {
+      sum = Const(0);
+      for (m=0; m<Hess_NZ; m++) {
+          if (iHess_i[m]==i) {
+	     j = iHess_j[m];
+	     k = iHess_k[m];
+	     if (j==k) {
+               sum = Add( sum, 
+		     Mul( Elm( HESS, m ), 
+		     Mul( Elm( U1, k ), Elm( U2, k ) ) ) );
+	     }
+	     else {
+               /* This is the optimized code. It can lead to problems when
+	                  splitting for continuation lines. Therefore we
+			  use the non-optimized code below the comment.
+	       sum = Add( sum, 
+		     Mul( Elm( HESS, m ), 
+		     Add( Mul( Elm( U1, j ), Elm( U2, k ) ),
+		          Mul( Elm( U1, k ), Elm( U2, j ) ) ) ) ); */
+               sum = Add( sum, 
+		     Mul( Elm( HESS, m ), 
+		     Mul( Elm( U1, j ), Elm( U2, k ) )  ) );
+               sum = Add( sum, 
+		     Mul( Elm( HESS, m ), 
+		          Mul( Elm( U1, k ), Elm( U2, j ) ) ) );
+	     }
+	  }   	    
+      }
+      Assign( Elm( HU, i ), sum );
+  }
+  
+  MATLAB_Inline("\n   HU = HU(:);");
+  
+  FunctionEnd(  F_Hess_VEC );
+  FreeVariable( F_Hess_VEC );
+}
+
+
+
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void GenerateHessianSparseData()
+{
+int k;
+
+    
+  UseFile( sparse_hessFile );
+
+  NewLines(1);
+  
+  
+  WriteComment("Hessian Sparse Data");
+  WriteComment("");
+
+  F77_Inline("%6sBLOCK DATA HESSIAN_SPARSE_DATA\n", " " );
+  F77_Inline("%6sINCLUDE '%s_Sparse.h'", " ", rootFileName);
+  F77_Inline("%6sINTEGER i", " ");
+  /* F90_Inline("   USE %s_Sparse", rootFileName); */
+
+  if( (useLang==F77_LANG)||(useLang==F90_LANG)||(useLang==MATLAB_LANG) ) {
+        for (k=0; k<Hess_NZ; k++) {
+           iHess_i[k]++; iHess_j[k]++; iHess_k[k]++; 
+	}
+  }
+  
+  InitDeclare( IHESS_I, Hess_NZ, (void*)iHess_i );
+  InitDeclare( IHESS_J, Hess_NZ, (void*)iHess_j );
+  InitDeclare( IHESS_K, Hess_NZ, (void*)iHess_k );
+
+  if( (useLang==F77_LANG)||(useLang==F90_LANG) ) {
+        for (k=0; k<Hess_NZ; k++) {
+           iHess_i[k]--; iHess_j[k]--; iHess_k[k]--; 
+	}
+  }
+  
+  NewLines(1);
+  F77_Inline( "%6sEND\n\n", " " );
+  
+}
+
+
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void GenerateHessianSparseHeader()
+{
+  UseFile( sparse_dataFile );
+
+  CommonName = "HESSDATA";
+
+  NewLines(1);
+  WriteComment(" ----------> Sparse Hessian Data");
+  NewLines(1);
+
+  ExternDeclare( IHESS_I );
+  ExternDeclare( IHESS_J );
+  ExternDeclare( IHESS_K );
+  
+  NewLines(1);
+}
+
+
+
+
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void GenerateStoicmSparseData()
+{
+int i,j,k, nnz_stoicm;
+/*
+int irow_stoicm[MAX_SPECIES*MAX_EQN];
+int ccol_stoicm[MAX_EQN+2];
+int icol_stoicm[MAX_SPECIES*MAX_EQN];
+double stoicm[MAX_SPECIES*MAX_EQN];
+*/
+
+int *irow_stoicm;
+int *ccol_stoicm;
+int *icol_stoicm;
+double *stoicm;
+
+/* Compute the sparsity structure and allocate data structure vectors */
+  nnz_stoicm = 0;
+  for (j=0; j<EqnNr; j++)
+    for (i=0; i<VarNr; i++)
+      if ( Stoich[i][j] != 0.0 )
+         nnz_stoicm++;  
+  if ( (irow_stoicm=(int*)calloc(nnz_stoicm+2,sizeof(int)) ) == NULL ) 
+     FatalError(-30,"GenerateStoicmSparseData: Cannot allocate irow_stoicm"); 
+  if ( (ccol_stoicm=(int*)calloc(EqnNr+2,sizeof(int)) ) == NULL ) 
+     FatalError(-30,"GenerateStoicmSparseData: Cannot allocate ccol_stoicm"); 
+  if ( (icol_stoicm=(int*)calloc(nnz_stoicm+2,sizeof(int)) ) == NULL ) 
+     FatalError(-30,"GenerateStoicmSparseData: Cannot allocate icol_stoicm"); 
+  if ( (stoicm=(double*)calloc(nnz_stoicm+2,sizeof(double)) ) == NULL ) 
+     FatalError(-30,"GenerateStoicmSparseData: Cannot allocate stoicm"); 
+
+  UseFile( sparse_stoicmFile );
+  
+  nnz_stoicm = 0;
+  for (j=0; j<EqnNr; j++) {
+    ccol_stoicm[ j ] =  nnz_stoicm;
+    for (i=0; i<VarNr; i++) {
+      if ( Stoich[i][j] != 0 ) {
+	 irow_stoicm[ nnz_stoicm ] = i;	
+	 icol_stoicm[ nnz_stoicm ] = j;	
+	 stoicm[ nnz_stoicm ] = Stoich[i][j]; 
+         nnz_stoicm++;
+      }
+    }
+  }  
+  ccol_stoicm[ EqnNr ] =  nnz_stoicm;
+
+  if( (useLang==F77_LANG)||(useLang==F90_LANG) ) {
+        for (k=0; k<nnz_stoicm; k++) {
+           irow_stoicm[k]++; icol_stoicm[k]++; 
+	}
+        for (k=0; k<=EqnNr; k++) {
+           ccol_stoicm[k]++; 
+	}
+  }
+  
+
+  NewLines(1);
+  WriteComment(" Stoichiometric Matrix in Compressed Column Sparse Format");
+  NewLines(1);
+  F77_Inline("%6sBLOCK DATA STOICM_MATRIX\n", " " );
+  F77_Inline("%6sINCLUDE '%s_Sparse.h'", " ", rootFileName);  
+  F77_Inline("%6sINTEGER i", " ");
+  /* F90_Inline("   USE %s_Sparse", rootFileName);  */
+  InitDeclare( CCOL_STOICM, EqnNr+1, (void*)ccol_stoicm );
+  InitDeclare( IROW_STOICM, nnz_stoicm, (void*)irow_stoicm );
+  InitDeclare( ICOL_STOICM, nnz_stoicm, (void*)icol_stoicm );
+  InitDeclare( STOICM, nnz_stoicm, (void*)stoicm );
+  NewLines(1);
+  F77_Inline( "%6sEND\n\n", " " );
+
+
+  UseFile( param_headerFile );  
+  CommonName = "GDATA";
+  NewLines(1);
+  DeclareConstant( NSTOICM, ascii( max( nnz_stoicm, 1 ) ) );
+   
+/* Free data structure vectors */
+  free(irow_stoicm); free(ccol_stoicm); free(icol_stoicm); free(stoicm);
+}
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void GenerateStoicmSparseHeader()
+{
+  UseFile( sparse_dataFile );
+
+  NewLines(1);
+  WriteComment(" ----------> Sparse Stoichiometric Matrix");
+  NewLines(1);
+  CommonName = "STOICM_VALUES";
+  ExternDeclare( STOICM );
+  CommonName = "STOICM_DATA";
+  ExternDeclare( IROW_STOICM );
+  ExternDeclare( CCOL_STOICM );  
+  ExternDeclare( ICOL_STOICM );
+  NewLines(1);
+   
+  NewLines(1);
+  WriteComment(" ----------> Sparse Data for Jacobian of Reactant Products");
+  NewLines(1);
+  CommonName = "JVRP";
+  ExternDeclare( ICOL_JVRP );
+  ExternDeclare( IROW_JVRP );
+  ExternDeclare( CROW_JVRP );
+  NewLines(1);
+  
+}
+
+
+
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void GenerateJacVect()
+{
+int i, j, nElm;
+int Jac_VEC;
+int Jac_SP_VEC;
+
+  if( useLang == MATLAB_LANG ) return;
+
+  if( VarNr == 0 ) return;
+
+  UseFile( jacobianFile );
+  Jac_VEC = DefFnc( "Jac_Vec", 3, 
+       "function for sparse multiplication: square Jacobian times vector");
+  Jac_SP_VEC = DefFnc( "Jac_SP_Vec", 3, 
+        "function for sparse multiplication: sparse Jacobian times vector");
+
+  if ( useJacSparse ) {
+    FunctionBegin( Jac_SP_VEC, JVS, UV, JUV ); 
+    nElm = 0; 
+    for( i = 0; i < VarNr; i++) {
+      sum = Const(0);
+      for( j = 0; j < VarNr; j++ )
+        if( LUstructJ[i][j] ) {
+          if( structJ[i][j] != 0 )
+            sum = Add( sum, Mul( Elm( JVS, nElm ), Elm( UV, j ) ) ); 
+	  nElm++;
+	  }
+      Assign( Elm( JUV, i ), sum );
+    }  
+    FunctionEnd( Jac_SP_VEC );
+    }
+
+  else {
+    FunctionBegin( Jac_VEC, JV, UV, JUV );  
+    for( i = 0; i < VarNr; i++) {
+      sum = Const(0);
+      for( j = 0; j < VarNr; j++ )
+        if( structJ[i][j] != 0 )
+          sum = Add( sum, Mul( Elm( JV, i, j ), Elm( UV, j ) ) ); 
+      Assign( Elm( JUV, i ), sum );
+    }  
+    FunctionEnd( Jac_VEC );
+  }
+
+  FreeVariable( Jac_VEC );
+  FreeVariable( Jac_SP_VEC );
+}
+
+
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void GenerateJacTRVect()
+{
+int i, j, nElm;
+int JacTR_VEC;
+int JacTR_SP_VEC;
+int **TmpStruct;
+
+  if( useLang == MATLAB_LANG ) return;
+  
+  if ( VarNr == 0 ) return;
+
+  UseFile( jacobianFile );
+
+  JacTR_VEC = DefFnc( "JacTR_Vec", 3, 
+       "sparse multiplication: square Jacobian transposed times vector");
+  JacTR_SP_VEC = DefFnc( "JacTR_SP_Vec", 3, 
+        "sparse multiplication: sparse Jacobian transposed times vector");
+
+  if ( useJacSparse ) {
+  
+  /* The temporary array of structure */
+  TmpStruct = AllocIntegerMatrix( VarNr, VarNr, "TmpStruct in GenerateJacTRVect" );
+
+    nElm = 0; 
+    for( i = 0; i < VarNr; i++) 
+      for( j = 0; j < VarNr; j++ )
+        if( LUstructJ[i][j] ) {
+	  TmpStruct[i][j] = nElm; 
+	  nElm++;
+	}
+  
+    FunctionBegin( JacTR_SP_VEC, JVS, UV, JTUV ); 
+    nElm = 0; 
+    for( i = 0; i < VarNr; i++) {
+      sum = Const(0);
+      for( j = 0; j < VarNr; j++ )
+         if( structJ[j][i] != 0 )
+           sum = Add( sum, Mul( Elm( JVS, TmpStruct[j][i] ), Elm( UV, j ) ) ); 
+      Assign( Elm( JTUV, i ), sum );
+    }  
+    FunctionEnd( JacTR_SP_VEC );
+
+  /* Free the temporary array of structure */
+  FreeIntegerMatrix( TmpStruct, VarNr, VarNr );
+
+    } /* useJacSparse*/
+
+  else {
+    FunctionBegin( JacTR_VEC, JV, UV, JTUV );  
+    for( i = 0; i < VarNr; i++) {
+      sum = Const(0);
+      for( j = 0; j < VarNr; j++ )
+        if( structJ[j][i] != 0 )
+          sum = Add( sum, Mul( Elm( JV, j, i ), Elm( UV, j ) ) ); 
+      Assign( Elm( JTUV, i ), sum );
+    }  
+    FunctionEnd( JacTR_VEC );
+  }
+
+  FreeVariable( JacTR_VEC );
+  FreeVariable( JacTR_SP_VEC );
+}
+
+
+
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void GenerateSparseUtil()
+{
+int SUTIL;
+
+  if ( useLang == MATLAB_LANG ) return;
+
+  UseFile( linalgFile );
+
+  SUTIL = DefFnc( "SPARSE_UTIL", 0, "SPARSE utility functions");  
+  CommentFunctionBegin( SUTIL );
+
+  IncludeCode( "%s/util/sutil", Home );  
+  
+  CommentFunctionEnd( SUTIL );
+  FreeVariable( SUTIL );
+}
+
+
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void GenerateBlas()
+{
+int BLAS;
+
+  if ( useLang == MATLAB_LANG ) return;
+
+  UseFile( linalgFile );
+
+  BLAS = DefFnc( "BLAS_UTIL", 0, "BLAS-LIKE utility functions");  
+  CommentFunctionBegin( BLAS );
+
+  IncludeCode( "%s/util/blas", Home );  
+  
+  CommentFunctionEnd( BLAS );
+  FreeVariable( BLAS );
+}
+
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void GenerateDFunDRcoeff()
+{
+
+  UseFile( stoichiomFile );
+
+  NewLines(1);
+  WriteComment("Begin Derivative w.r.t. Rate Coefficients");
+  NewLines(1);
+  
+  IncludeCode( "%s/util/dFun_dRcoeff", Home );  
+
+  NewLines(1);
+  WriteComment("End Derivative w.r.t. Rate Coefficients");
+  NewLines(1);
+  
+}
+
+
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void GenerateDJacDRcoeff()
+{
+
+  UseFile( stoichiomFile );
+
+  NewLines(1);
+  WriteComment("Begin Jacobian Derivative w.r.t. Rate Coefficients");
+  NewLines(1);
+  
+  IncludeCode( "%s/util/dJac_dRcoeff", Home );  
+
+  NewLines(1);
+  WriteComment("End Jacobian Derivative w.r.t. Rate Coefficients");
+  NewLines(1);
+  
+}
+
+
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void GenerateSolve()
+{
+int i, j;
+int SOLVE;
+int *irow;
+int *icol;
+int *crow;
+int *diag;
+int nElm;
+int ibgn, iend;
+int useLangOld;
+int dim;
+
+  if( useLang == MATLAB_LANG ) return;
+  
+  /* Allocate local arrays for dimension dim */
+  dim  = VarNr+2;
+  irow = AllocIntegerVector( dim*dim, "irow in GenerateSolve" );
+  icol = AllocIntegerVector( dim*dim, "icol in GenerateSolve" );
+  crow = AllocIntegerVector( dim,     "crow in GenerateSolve" );
+  diag = AllocIntegerVector( dim,     "diag in GenerateSolve" );
+
+  useLangOld = useLang;
+  useLang = C_LANG;
+  nElm = NonZero( LU, 0, VarNr, irow, icol, crow, diag );
+  useLang = useLangOld;
+  
+  UseFile( linalgFile );
+
+  SOLVE = DefFnc( "KppSolve", 2, "sparse back substitution");
+  FunctionBegin( SOLVE, JVS, X );
+
+  for( i = 0; i < VarNr; i++) {
+    ibgn = crow[i];
+    iend = diag[i];
+    if( ibgn <= iend ) {
+      sum = Elm( X, i );
+      if ( ibgn < iend ) { 
+        for( j = ibgn; j < iend; j++ )
+          sum = Sub( sum, Mul( Elm( JVS, j ), Elm( X, icol[j] ) ) );
+        Assign( Elm( X, i ), sum );
+      }
+    }
+  }
+
+  for( i = VarNr-1; i >=0; i--) {
+    ibgn = diag[i] + 1;
+    iend = crow[i+1]; 
+    sum = Elm( X, i );
+    for( j = ibgn; j < iend; j++ )
+      sum = Sub( sum, Mul( Elm( JVS, j ), Elm( X, icol[j] ) ) );
+    sum = Div( sum, Elm( JVS, diag[i] ) );
+    Assign( Elm( X, i ), sum );
+  }
+
+  FunctionEnd( SOLVE );
+  FreeVariable( SOLVE );
+  
+  /* Free Local Arrays */
+  free(irow); 
+  free(icol); 
+  free(crow); 
+  free(diag); 
+}
+
+
+
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void GenerateTRSolve()
+{
+int i, j;
+int SOLVETR;
+int *irow;
+int *icol;
+int *crow;
+int *diag;
+int nElm;
+int ibgn, iend;
+int useLangOld;
+int **pos;
+int dim;
+
+  if( useLang == MATLAB_LANG ) return;
+  
+  /* Allocate local arrays for dimension dim */
+  dim  = VarNr+2;
+  irow = AllocIntegerVector( dim*dim, "irow in GenerateTRSolve" );
+  icol = AllocIntegerVector( dim*dim, "icol in GenerateTRSolve" );
+  crow = AllocIntegerVector( dim,     "crow in GenerateTRSolve" );
+  diag = AllocIntegerVector( dim,     "diag in GenerateTRSolve" );
+  pos  = AllocIntegerMatrix( dim+1, dim+1, "pos in GenerateTRSolve");    
+
+  useLangOld = useLang;
+  useLang = C_LANG;
+  nElm = NonZero( LU, 0, VarNr, irow, icol, crow, diag );
+  useLang = useLangOld;
+  
+  UseFile( linalgFile );
+
+  SOLVETR = DefFnc( "KppSolveTR", 3, "sparse, transposed back substitution");
+  FunctionBegin( SOLVETR, JVS, X, XX );
+  for( i = 0; i < VarNr; i++) {
+   for( j = 0; j < VarNr; j++) 
+    pos[i][j]=-1;
+  }  
+  for( i = 0; i < VarNr; i++) {
+    ibgn = crow[i];
+    iend = diag[i];
+    if( ibgn <= iend ) {
+      if ( ibgn < iend ) { 
+        for( j = ibgn; j < iend; j++ )
+          pos[icol[j]][i]=j;
+      }
+    }
+  }
+
+  for( i = VarNr-1; i >=0; i--) {
+    ibgn = diag[i] + 1;
+    iend = crow[i+1]; 
+    for( j = ibgn; j < iend; j++ )
+      pos[icol[j]][i]=j;
+    pos[i][i]=diag[i];  
+  }
+  
+  for( i = 0; i<VarNr; i++) { 
+    sum = Elm( X, i );
+    for (j=0; j<i; j++ ){
+     if(pos[i][j] >= 0) {
+      sum=Sub( sum, Mul ( Elm(JVS,pos[i][j] ), Elm( XX, j ) ) );
+     }
+    }
+    sum=Div( sum, Elm(JVS, diag[i] ) );
+    Assign( Elm( XX, i ), sum );
+  }
+  for( i = VarNr-1; i >=0; i--) {  
+    sum = Elm( XX, i );
+    for (j=i+1; j<VarNr; j++) {
+     if(pos[i][j] >= 0) { 
+      sum=Sub( sum, Mul ( Elm(JVS,pos[i][j] ), Elm( XX, j ) ) );
+     }
+    }
+    Assign( Elm( XX, i ), sum );               
+   }         
+
+  FunctionEnd( SOLVETR );
+  FreeVariable( SOLVETR );
+  /* Free Local Arrays */
+  free(irow); free(icol); free(crow); free(diag); 
+  FreeIntegerMatrix(pos, dim+1, dim+1);    
+}
+
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void GenerateRateLaws()
+{
+
+  UseFile( rateFile );
+
+  NewLines(1);
+  WriteComment("Begin Rate Law Functions from KPP_HOME/util/UserRateLaws");
+  NewLines(1);  
+  IncludeCode( "%s/util/UserRateLaws", Home );
+  NewLines(1);
+  WriteComment("End Rate Law Functions from KPP_HOME/util/UserRateLaws");
+  NewLines(1);
+    
+  NewLines(1);
+  WriteComment("Begin INLINED Rate Law Functions");
+  NewLines(1);
+  
+  switch( useLang ) {
+    case C_LANG:  bprintf( InlineCode[ C_RATES ].code ); 
+                 break;
+    case F77_LANG: bprintf( InlineCode[ F77_RATES ].code ); 
+                 break;
+    case F90_LANG: bprintf( InlineCode[ F90_RATES ].code ); 
+                 break;
+    case MATLAB_LANG: bprintf( InlineCode[ MATLAB_RATES ].code ); 
+                 break;
+  }
+  FlushBuf();
+
+  NewLines(1);
+  WriteComment("End INLINED Rate Law Functions");
+  NewLines(1);
+
+  
+}
+
+
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void GenerateUpdateSun()
+{
+int UPDATE_SUN;
+
+  UseFile( rateFile );
+    
+  UPDATE_SUN = DefFnc( "Update_SUN", 0, "update SUN light using TIME");  
+  CommentFunctionBegin( UPDATE_SUN );
+
+  IncludeCode( "%s/util/UpdateSun", Home );
+  
+  CommentFunctionEnd( UPDATE_SUN );
+  FreeVariable( UPDATE_SUN );
+}
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void GenerateUpdateRconst()
+{
+int i;
+int UPDATE_RCONST;
+
+  UseFile( rateFile );
+
+  UPDATE_RCONST = DefFnc( "Update_RCONST", 0, "function to update rate constants");
+  
+  FunctionBegin( UPDATE_RCONST );
+  F77_Inline("      INCLUDE '%s_Global.h'", rootFileName);
+  MATLAB_Inline("global SUN TEMP RCONST");
+  
+  if ( (useLang==F77_LANG) )
+      IncludeCode( "%s/util/UserRateLaws_FcnHeader", Home );
+      
+  NewLines(1);
+  
+  NewLines(1);
+  WriteComment("Begin INLINED RCONST");
+  NewLines(1);
+
+  switch( useLang ) {
+    case C_LANG:  bprintf( InlineCode[ C_RCONST ].code ); 
+                 break;
+    case F77_LANG: bprintf( InlineCode[ F77_RCONST ].code ); 
+                 break;
+    case F90_LANG: bprintf( InlineCode[ F90_RCONST ].code ); 
+                 break;
+    case MATLAB_LANG: bprintf( InlineCode[ MATLAB_RCONST ].code ); 
+                 break;
+  }
+  FlushBuf();
+
+  NewLines(1);
+  WriteComment("End INLINED RCONST");
+  NewLines(1);
+
+  for( i = 0; i < EqnNr; i++) {
+    if( kr[i].type == EXPRESION )
+      Assign( Elm( RCONST, i ), Elm( KR, kr[i].val.st ) );  
+    if( kr[i].type == PHOTO )
+      Assign( Elm( RCONST, i ), Elm( KR, kr[i].val.st ) );  
+    /* mz_rs_20050117+ */
+    if ( kr[i].type == NUMBER ) {
+      F90_Inline("! RCONST(%d) = constant rate coefficient", i+1);
+      /* WriteComment("Constant rate coefficient (value inlined in the code):"); */
+      /* Assign( Elm( RCONST, i ), Const( kr[i].val.f ) ); */
+    }
+    /* mz_rs_20050117- */
+  }
+  
+  MATLAB_Inline("   RCONST = RCONST(:);");
+  
+  FunctionEnd( UPDATE_RCONST );
+  FreeVariable( UPDATE_RCONST );
+}
+
+
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void GenerateUpdatePhoto()
+{
+int i;
+int UPDATE_PHOTO;
+
+  UseFile( rateFile );
+
+  UPDATE_PHOTO = DefFnc( "Update_PHOTO", 0, "function to update photolytical rate constants");
+  
+  FunctionBegin( UPDATE_PHOTO );
+  F77_Inline("      INCLUDE '%s_Global.h'", rootFileName);
+  F90_Inline("   USE %s_Global", rootFileName);
+  MATLAB_Inline("global SUN TEMP RCONST");
+    
+  NewLines(1);
+  
+  for( i = 0; i < EqnNr; i++) {
+    if( kr[i].type == PHOTO )
+      Assign( Elm( RCONST, i ), Elm( KR, kr[i].val.st ) );  
+  }
+  
+  FunctionEnd( UPDATE_PHOTO );
+  FreeVariable( UPDATE_PHOTO );
+}
+
+
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void GenerateIntegrator()
+{
+int TIN, TOUT, INTEGRATE;
+
+  UseFile( integratorFile );
+
+  TIN = DefElm( "TIN", real, "Start Time for Integration");
+  TOUT = DefElm( "TOUT", real, "End Time for Integration");
+  INTEGRATE = DefFnc( "INTEGRATE", 2, "Integrator routine");  
+  CommentFunctionBegin( INTEGRATE, TIN, TOUT );
+
+  if( strchr( integrator, '/' ) )
+    IncludeCode( integrator );
+  else 
+    IncludeCode( "%s/int/%s", Home, integrator );  
+  
+  CommentFunctionEnd( INTEGRATE );
+  FreeVariable( INTEGRATE );
+}
+
+
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void GenerateDriver()
+{
+int MAIN;
+
+  UseFile( driverFile );
+    
+  MAIN = DefFnc( "MAIN", 0, "Main program - driver routine");  
+  CommentFunctionBegin( MAIN );
+
+  if( strchr( driver, '/' ) )
+    IncludeCode( driver );
+  else 
+    IncludeCode( "%s/drv/%s", Home, driver );  
+  
+  CommentFunctionEnd( MAIN );
+  FreeVariable( MAIN );
+}
+
+
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void GenerateUtil()
+{
+int UTIL;
+
+/*  if (useLang == MATLAB_LANG) return;  */
+
+  UseFile( utilFile );
+  NewLines(1);
+  WriteComment("User INLINED Utility Functions");
+  
+  switch( useLang ) {
+    case C_LANG:  bprintf( InlineCode[ C_UTIL ].code ); 
+                 break;
+    case F77_LANG:  bprintf( InlineCode[ F77_UTIL ].code ); 
+                 break;
+    case F90_LANG:  bprintf( InlineCode[ F90_UTIL ].code ); 
+                 break;
+    case MATLAB_LANG:bprintf( InlineCode[ MATLAB_UTIL ].code ); 
+                 break;
+  }
+  FlushBuf();
+
+  NewLines(1);
+  WriteComment("End INLINED Utility Functions");
+  NewLines(1);
+
+  WriteComment("Utility Functions from KPP_HOME/util/util");
+  UTIL = DefFnc( "UTIL", 0, "Utility functions");  
+  CommentFunctionBegin( UTIL);
+
+  IncludeCode( "%s/util/util", Home );  
+
+  if ((useLang == F90_LANG) && (useEqntags==1)) {
+    IncludeCode( "%s/util/tag2num", Home );  
+  }
+  
+  WriteComment("End Utility Functions from KPP_HOME/util/util");
+  CommentFunctionEnd( UTIL );
+  FreeVariable( UTIL );
+}
+
+
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void GenerateParamHeader()
+{
+int spc;
+int i;
+char name[20];
+int offs;
+int mxyz;
+
+int j,dummy_species;
+
+/*  ---------->  First declaration of constants */
+  UseFile( param_headerFile );
+  
+  NewLines(1);
+  DeclareConstant( NSPEC,   ascii( max(SpcNr, 1) ) );
+  DeclareConstant( NVAR,    ascii( max(VarNr, 1) ) );
+  DeclareConstant( NVARACT, ascii( max(VarActiveNr, 1) ) );
+  DeclareConstant( NFIX,    ascii( max(FixNr, 1) ) );
+  DeclareConstant( NREACT,  ascii( max(EqnNr, 1) ) );
+  DeclareConstant( NVARST,  ascii( VarStartNr ) );
+  DeclareConstant( NFIXST,  ascii( FixStartNr ) ); 
+  DeclareConstant( NONZERO, ascii( max(Jac_NZ, 1) ) );
+  DeclareConstant( LU_NONZERO, ascii( max(LU_Jac_NZ, 1) ) );
+  DeclareConstant( CNVAR,   ascii( VarNr+1 ) );
+  if ( useStoicmat ) { 
+        DeclareConstant( CNEQN,   ascii( EqnNr+1 ) );
+  }	
+  if ( useHessian ) { 
+        DeclareConstant( NHESS,   ascii( max(Hess_NZ, 1) ) );
+  }
+
+  DeclareConstant( NLOOKAT,  ascii( nlookat ) );
+  DeclareConstant( NMONITOR,  ascii( nmoni ) );
+  DeclareConstant( NMASS, ascii( nmass ) );
+
+  /* DeclareConstant( PI, "3.14159265358979" ); */
+
+  NewLines(1);
+  WriteComment("Index declaration for variable species in C and VAR");
+  WriteComment("  VAR(ind_spc) = C(ind_spc)");
+  NewLines(1);
+  for( i = 0; i < VarNr; i++) {
+    sprintf( name, "ind_%s", SpeciesTable[ Code[i] ].name );
+    spc = DefConst( name, INT, 0 );
+    DeclareConstant( spc, ascii( Index(i) ) );
+    FreeVariable( spc );
+  }
+ 
+  NewLines(1);
+  WriteComment("Index declaration for fixed species in C");
+  WriteComment("  C(ind_spc)");
+  NewLines(1);
+  for( i = 0; i < FixNr; i++) {
+    sprintf( name, "ind_%s", SpeciesTable[ Code[i + VarNr] ].name );
+    spc = DefConst( name, INT, 0 );
+    DeclareConstant( spc, ascii( Index(i+VarNr) ) );
+    FreeVariable( spc );
+  }
+ 
+  if (useDummyindex==1) {
+    NewLines(1);
+    WriteComment("Index declaration for dummy species");
+    NewLines(1);
+    for( i = 0; i < MAX_SPECIES; i++) {
+      if (SpeciesTable[i].type == 0) continue;
+      dummy_species = 1;
+      for( j = 0; j < MAX_SPECIES; j++) 
+        if (Code[j] == i) dummy_species = 0;
+      if (dummy_species) {    
+        sprintf( name, "ind_%s", SpeciesTable[i].name );
+        spc = DefConst( name, INT, 0 );
+        DeclareConstant( spc, ascii( 0 ) );
+        FreeVariable( spc );
+      }
+    }
+  }
+
+  NewLines(1);
+  WriteComment("Index declaration for fixed species in FIX");
+  WriteComment("   FIX(indf_spc) = C(ind_spc) = C(NVAR+indf_spc)");
+  NewLines(1);
+  for( i = 0; i < FixNr; i++) {
+    sprintf( name, "indf_%s", SpeciesTable[ Code[i + VarNr] ].name );
+    spc = DefConst( name, INT, 0 );
+    DeclareConstant( spc, ascii( Index(i) ) );
+    FreeVariable( spc );
+  }
+}
+
+
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void GenerateGlobalHeader()
+{
+int spc;
+int i;
+char name[20];
+int offs;
+int mxyz;
+
+  UseFile( global_dataFile );
+  
+  CommonName = "GDATA";
+
+  NewLines(1);
+  WriteComment("Declaration of global variables");
+  NewLines(1);
+
+ /* ExternDeclare( C_DEFAULT ); */
+
+  ExternDeclare( C );
+  
+  if( useLang == F77_LANG ) {
+ 
+   Declare( VAR );
+   Declare( FIX );
+   WriteComment("VAR, FIX are chunks of array C");
+   F77_Inline("      EQUIVALENCE( %s(%d),%s(1) )", 
+            varTable[C]->name, 1, varTable[VAR]->name );
+   if ( FixNr > 0 ) { /*  mz_rs_20050121 */
+     F77_Inline("      EQUIVALENCE( %s(%d),%s(1) )", 
+       varTable[C]->name, VarNr+1, varTable[FIX]->name );
+   }
+  }
+  
+  if( useLang == F90_LANG ) { 
+     ExternDeclare( VAR );
+     ExternDeclare( FIX );
+     WriteComment("VAR, FIX are chunks of array C");
+     F90_Inline("      EQUIVALENCE( %s(%d),%s(1) )", 
+            varTable[C]->name, 1, varTable[VAR]->name );
+     if ( FixNr > 0 ) { /*  mz_rs_20050121 */
+       F90_Inline("      EQUIVALENCE( %s(%d),%s(1) )", 
+         varTable[C]->name, VarNr+1, varTable[FIX]->name );
+     }
+  }
+  
+  if( useLang == MATLAB_LANG ) { 
+     ExternDeclare( VAR );
+     ExternDeclare( FIX );
+  }
+
+  C_Inline("  extern %s * %s;", C_types[real], varTable[VAR]->name );
+  C_Inline("  extern %s * %s;", C_types[real], varTable[FIX]->name );
+
+
+  ExternDeclare( RCONST );
+  ExternDeclare( TIME );
+  ExternDeclare( SUN );
+  ExternDeclare( TEMP );
+  ExternDeclare( RTOLS );
+  ExternDeclare( TSTART );
+  ExternDeclare( TEND );
+  ExternDeclare( DT );
+  ExternDeclare( ATOL );
+  ExternDeclare( RTOL );
+  ExternDeclare( STEPMIN );
+  ExternDeclare( STEPMAX );
+  ExternDeclare( CFACTOR );
+  if (useStochastic)
+      ExternDeclare( VOLUME );
+  
+  CommonName = "INTGDATA";
+  if ( useHessian ) { 
+     ExternDeclare( DDMTYPE );
+  }
+  
+  
+  if ( (useLang == C_LANG) || (useLang == F77_LANG) ) { 
+     CommonName = "INTGDATA";
+     ExternDeclare( LOOKAT );
+     ExternDeclare( MONITOR );
+     CommonName = "CHARGDATA";
+     ExternDeclare( SPC_NAMES );
+     ExternDeclare( SMASS );
+     ExternDeclare( EQN_NAMES );  
+     ExternDeclare( EQN_TAGS );
+  }
+
+  NewLines(1);
+  WriteComment("INLINED global variable declarations");
+  
+  switch( useLang ) {
+    case C_LANG:  bprintf( InlineCode[ C_GLOBAL ].code ); 
+                 break;
+    case F77_LANG: bprintf( InlineCode[ F77_GLOBAL ].code );
+                 break;
+    case F90_LANG: bprintf( InlineCode[ F90_GLOBAL ].code );
+                 break;
+    case MATLAB_LANG: bprintf( InlineCode[ MATLAB_GLOBAL ].code );
+                 break;
+  }
+  FlushBuf();
+
+  NewLines(1);
+  WriteComment("INLINED global variable declarations");
+  NewLines(1);
+}
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void WriteSpec( int i, int j )
+{
+char buf[100];
+
+  if( Reactive[j] )
+    sprintf( buf, "%s (r)", SpeciesTable[ Code[j] ].name );
+  else  
+    sprintf( buf, "%s (n)", SpeciesTable[ Code[j] ].name );
+  WriteAll("%3d = %-10s", 1 + i, buf );
+  FlushBuf();
+}
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+int EqnStr( int eq, char * buf, float** mat )
+{
+int spc, first;
+
+/* bugfix if stoichiometric factor is not an integer */
+int n;
+char s[40];
+
+  first = 1;
+  *buf = 0;
+  for( spc = 0; spc < SpcNr; spc++ )
+    if( mat[spc][eq] != 0 ) {
+      if( ((mat[spc][eq] == 1)||(mat[spc][eq] == -1)) ) {
+          sprintf(s, "");
+      } else {
+        /* real */
+        /*  mz_rs_20050130+ */
+        /* sprintf(s, "%g", mat[spc][eq]); */
+        /* remove the minus sign with fabs(), it will be re-inserted later */
+        sprintf(s, "%g", mat[spc][eq]?mat[spc][eq]:(-mat[spc][eq]));
+        /*  mz_rs_20050130- */
+        /* remove trailing zeroes */
+        for (n= strlen(s) - 1; n >= 0; n--) 
+          if (s[n] != '0') break; 
+        s[n + 1]= '\0';
+        sprintf(s, "%s ", s);
+      }
+     
+      if( first ) {
+        if( mat[spc][eq] > 0 ) sprintf(buf, "%s%s", buf, s);
+                          else sprintf(buf, "%s- %s", buf, s);
+        first = 0;
+      } else {
+        if( mat[spc][eq] > 0 ) sprintf(buf, "%s + %s", buf, s);
+                          else sprintf(buf, "%s - %s", buf, s);
+      }
+      sprintf(buf, "%s%s", buf, SpeciesTable[ Code[spc] ].name);
+      if (strlen(buf)>MAX_EQNLEN/2) { /* truncate if eqn string too long */
+         sprintf(buf, "%s ... etc.",buf);
+	 break;
+      }
+    }
+
+  return strlen(buf);
+}
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+int EqnString( int eq, char * buf )
+{
+static int lhs = 0;
+static int rhs = 0;
+
+int i, l;
+char lhsbuf[MAX_EQNLEN], rhsbuf[MAX_EQNLEN];
+
+  if(lhs == 0) for( i = 0; i < EqnNr; i++ ) {
+                 l = EqnStr( i, lhsbuf, Stoich_Left);
+                 lhs = (lhs > l) ? lhs : l;
+               }
+
+  if(rhs == 0) for( i = 0; i < EqnNr; i++ ) {
+                 l = EqnStr( i, rhsbuf, Stoich_Right);
+                 rhs = (rhs > l) ? lhs : l;
+               }
+	       
+
+  EqnStr( eq, lhsbuf, Stoich_Left);  	       
+  EqnStr( eq, rhsbuf, Stoich_Right);  
+
+  sprintf(buf, "%*s --> %-*s", lhs, lhsbuf, rhs, rhsbuf);  
+  return strlen(buf);
+}
+
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void GenerateMap()
+{
+int i;
+int dn;
+
+  UseFile( mapFile );
+
+  WriteAll("### Options -------------------------------------------\n");
+  NewLines(1);
+  if( useAggregate )     WriteAll("FUNCTION - AGGREGATE\n");
+		    else WriteAll("FUNCTION - SPLIT\n");
+  switch ( useJacobian ) {
+     case JAC_OFF: WriteAll("JACOBIAN - OFF\n"); break;
+     case JAC_FULL: WriteAll("JACOBIAN - FULL\n"); break;
+     case JAC_LU_ROW: WriteAll("JACOBIAN - SPARSE W/ ACCOUNT FOR LU DECOMPOSITION FILL-IN\n"); break;
+     case JAC_ROW: WriteAll("JACOBIAN - SPARSE\n"); break;
+  }		    
+  if( useDouble )        WriteAll("DOUBLE   - ON\n");
+		    else WriteAll("DOUBLE   - OFF\n");
+  if( useReorder )        WriteAll("REORDER  - ON\n");
+		    else WriteAll("REORDER  - OFF\n");
+  NewLines(1);
+  
+  WriteAll("### Parameters ----------------------------------------\n");
+  NewLines(1);
+
+  VarStartNr = Index(0);
+  FixStartNr = Index(VarNr);
+  
+  DeclareConstant( NSPEC,   ascii( SpcNr ) );
+  DeclareConstant( NVAR,    ascii( max( VarNr, 1 ) ) );
+  DeclareConstant( NVARACT, ascii( max( VarActiveNr, 1 ) ) );
+  DeclareConstant( NFIX,    ascii( max( FixNr, 1 ) ) );
+  DeclareConstant( NREACT,  ascii( EqnNr ) );
+  DeclareConstant( NVARST,  ascii( VarStartNr ) );
+  DeclareConstant( NFIXST,  ascii( FixStartNr ) );
+
+  NewLines(1);
+  WriteAll("### Species -------------------------------------------\n");
+
+  NewLines(1);
+  WriteAll("Variable species\n");
+
+  dn = VarNr/3 + 1;
+  for( i = 0; i < dn; i++ ) {
+             if( i < VarNr ) WriteSpec( i, i );
+    i += dn; if( i < VarNr ) WriteSpec( i, i ); 
+    i += dn; if( i < VarNr ) WriteSpec( i, i );
+    i -= 2*dn; WriteAll("\n"); 
+  }
+    
+    
+  NewLines(1);
+  WriteAll("Fixed species\n");
+
+  dn = FixNr/3 + 1;
+  for( i = 0; i < dn; i++ ) {
+             if( i < FixNr ) WriteSpec( i, i + VarNr );
+    i += dn; if( i < FixNr ) WriteSpec( i, i + VarNr ); 
+    i += dn; if( i < FixNr ) WriteSpec( i, i + VarNr );
+    i -= 2*dn; WriteAll("\n"); 
+  }
+    
+  NewLines(1);
+  WriteAll("### Subroutines ---------------------------------------\n");
+  NewLines(1);
+  FlushBuf();
+}
+
+
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void GenerateInitialize()
+{
+int i;
+int I, X;
+int INITVAL;
+
+  if ( (useLang==C_LANG)||(useLang==F77_LANG)||(useLang==F90_LANG) )
+      UseFile( initFile );
+
+  INITVAL    = DefFnc( "Initialize",    0, "function to initialize concentrations");
+  FunctionBegin( INITVAL );
+  F77_Inline("      INCLUDE '%s_Global.h'", rootFileName);
+  F90_Inline("  USE %s_Global\n", rootFileName);
+  MATLAB_Inline("global CFACTOR VAR FIX NVAR NFIX", rootFileName);
+  
+  I = DefElm( "i", INT, 0);
+  X = DefElm( "x", real, 0);
+  Declare( I );
+  Declare( X );
+
+  NewLines(1);
+  WriteAssign( varTable[CFACTOR]->name , ascid( (double)cfactor ) );
+  NewLines(1);
+  
+  Assign( Elm( X ), Mul( Elm( IV, varDefault ), Elm( CFACTOR ) ) );
+  C_Inline("  for( i = 0; i < NVAR; i++ )" );
+  F77_Inline("      DO i = 1, NVAR" );
+  F90_Inline("  DO i = 1, NVAR" );
+  MATLAB_Inline("   for i = 1:NVAR" );
+  ident++;
+    Assign( Elm( VAR, -I ), Elm( X ) );
+  ident--;
+  F77_Inline("      END DO" );
+  F90_Inline("  END DO" );
+  MATLAB_Inline("   end" );
+
+
+  NewLines(1);
+  Assign( Elm( X ), Mul( Elm( IV, fixDefault ), Elm( CFACTOR ) ) );
+  C_Inline("  for( i = 0; i < NFIX; i++ )" );
+  F77_Inline("      DO i = 1, NFIX" );
+  F90_Inline("  DO i = 1, NFIX" );
+  MATLAB_Inline("   for i = 1:NFIX" );
+  ident++;
+    Assign( Elm( FIX, -I ), Elm( X ) );
+  ident--;
+  F77_Inline("      END DO" );
+  F90_Inline("  END DO" );
+  MATLAB_Inline("   end" );
+
+
+  NewLines(1);
+
+  for( i = 0; i < VarNr; i++) {
+    if( *SpeciesTable[ Code[i] ].ival == 0 ) continue;
+    Assign( Elm( VAR, i ), Mul( 
+              Elm( IV, SpeciesTable[ Code[i] ].ival ),
+              Elm( CFACTOR ) ) );
+  }              
+
+  
+  for( i = 0; i < FixNr; i++) {
+    if( *SpeciesTable[ Code[i + VarNr] ].ival == 0 ) continue;
+    Assign( Elm( FIX, i ), Mul(
+              Elm( IV, SpeciesTable[ Code[i + VarNr] ].ival ),
+              Elm( CFACTOR ) ) ); 
+  }             
+
+/*  NewLines(1);
+  C_Inline("  for( i = 0; i < NSPEC; i++ )" );
+  F77_Inline("      do i = 1, NSPEC" );
+  ident++;
+    Assign( Elm( C_DEFAULT, -I ), Elm( C, -I ) );
+  ident--;
+  F77_Inline("      end do" );
+*/
+
+  /*  mz_rs_20050117+ */
+  WriteComment("constant rate coefficients");
+  for( i = 0; i < EqnNr; i++) {
+    if ( kr[i].type == NUMBER )
+       Assign( Elm( RCONST, i ), Const( kr[i].val.f ) );
+  }  
+  WriteComment("END constant rate coefficients");
+  /*  mz_rs_20050117- */
+
+  NewLines(1);
+  WriteComment("INLINED initializations");
+  
+  switch( useLang ) {
+    case C_LANG: bprintf( InlineCode[ C_INIT ].code );
+                 break;
+    case F77_LANG:  bprintf( InlineCode[ F77_INIT ].code );
+                 break;
+    case F90_LANG:  bprintf( InlineCode[ F90_INIT ].code );
+                 break;
+    case MATLAB_LANG: bprintf( InlineCode[ MATLAB_INIT ].code );
+                 break;
+  }
+  FlushBuf();
+
+  NewLines(1);
+  WriteComment("End INLINED initializations");
+  NewLines(1);
+
+  MATLAB_Inline("   VAR = VAR(:);\n   FIX = FIX(:);\n" );
+
+  FreeVariable( X );
+  FreeVariable( I );
+  FunctionEnd( INITVAL );
+  FreeVariable( INITVAL );
+}
+
+
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void GenerateShuffle_user2kpp()
+{
+int i,k,l;
+int Shuffle_user2kpp;
+
+  UseFile( utilFile );
+
+  Shuffle_user2kpp    = DefFnc( "Shuffle_user2kpp", 2, "function to copy concentrations from USER to KPP");
+  FunctionBegin( Shuffle_user2kpp, V_USER, V );
+  
+  k = 0;l = 0;
+  for( i = 1; i < SpcNr; i++) {
+    if( ReverseCode[i] < 0 ) { 
+      if( SpeciesTable[i].type == VAR_SPC ) k++; 
+      continue;
+    }  
+    switch( SpeciesTable[i].type ) {
+      case VAR_SPC: 
+                     if( k < initNr ) {
+                       Assign( Elm( V, ReverseCode[i] ), Elm( V_USER, k++ ) ); 
+                       break;
+                     }  
+      case FIX_SPC:
+      case DUMMY_SPC:    
+      default:       break;
+    }
+  }  
+
+  FunctionEnd( Shuffle_user2kpp );
+  FreeVariable( Shuffle_user2kpp );
+}
+
+
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void GenerateShuffle_kpp2user()
+{
+int i,k,l;
+int Shuffle_kpp2user;
+
+  UseFile( utilFile );
+
+  Shuffle_kpp2user    = DefFnc( "Shuffle_kpp2user", 2, "function to restore concentrations from KPP to USER");
+  FunctionBegin( Shuffle_kpp2user, V, V_USER );
+  
+  k = 0; l = 0;
+  for( i = 0; i < SpcNr; i++) {
+    if( ReverseCode[i] < 0 ) { 
+      if( SpeciesTable[i].type == VAR_SPC ) k++; 
+      continue;
+    }  
+    switch( SpeciesTable[i].type ) {
+      case VAR_SPC: 
+                     if( k < initNr )
+                       Assign( Elm( V_USER, k++ ), Elm( V, ReverseCode[i] ) ); 
+                     break;
+      case FIX_SPC:    
+      case DUMMY_SPC:    
+      default:       break;
+    }
+  }  
+
+  FunctionEnd( Shuffle_kpp2user );
+  FreeVariable( Shuffle_kpp2user );
+}
+
+
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void GenerateGetMass()
+{
+int i;
+int atm, spc;
+int GETMASS, MASS;
+SPECIES_DEF *sp;
+int numass;
+
+  UseFile( utilFile );
+
+  nmass = 0;
+  for( atm = 0; atm < AtomNr; atm++ )
+    if( AtomTable[atm].masscheck ) nmass++;
+  if( nmass == 0 ) nmass = 1;
+  
+  MASS  = DefvElm( "Mass", real, nmass, "value of mass balance" );
+  GETMASS = DefFnc( "GetMass", 2, "compute total mass of selected atoms");
+  FunctionBegin( GETMASS, CL, MASS);
+
+  numass = 0;
+  for( atm = 0; atm < AtomNr; atm++ ) {
+    if( AtomTable[atm].masscheck ) {
+      sum = Const( 0 );
+      for( spc = 0; spc < SpcNr; spc++ ) {
+        sp = &SpeciesTable[ Code[spc] ]; 
+        for( i = 0; i < sp->nratoms; i++ ) {
+          if( sp->atoms[i].code == atm ) {
+            sum = Add( sum, Mul( Const( sp->atoms[i].nr ), 
+                                 Elm( CL, spc ) ) ); 
+          }
+        }  
+      }
+      Assign( Elm( MASS, numass ), sum );
+      numass++;
+    }
+  } 
+  
+  FunctionEnd( GETMASS );
+  FreeVariable( GETMASS );
+}
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void GenerateMakefile()
+{
+char buf[100];
+
+  if ( useLang == MATLAB_LANG ) return;
+
+  sprintf( buf, "Makefile_%s", rootFileName );  
+  makeFile = fopen(buf, "w");
+  if( makeFile == 0 ) {
+    FatalError(3,"%s: Can't create file", buf );
+  } 
+
+  UseFile( makeFile );
+  
+  IncludeCode( "%s/util/Makefile", Home );  
+
+}
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void GenerateMex()
+{
+char buf[100], suffix[5];
+
+  if (useLang == MATLAB_LANG) return;
+  if (useMex == 0) return; 
+
+  switch( useLang ) {
+    case F77_LANG: sprintf( suffix, "f"); 
+                 break; 
+    case F90_LANG: sprintf( suffix, "f90"); 
+                 break; 
+    case C_LANG:   sprintf( suffix, "c"); 
+                 break; 
+    default: printf("\nCannot create mex files for language %d\n", useLang); 
+                 exit(1);
+                 break; 
+  }
+  
+  sprintf( buf, "%s_mex_Fun.%s", rootFileName, suffix );  
+  mex_funFile = fopen(buf, "w");
+  if( mex_funFile == 0 ) {
+    FatalError(3,"%s: Can't create file", buf );
+  } 
+  UseFile( mex_funFile );
+  IncludeCode( "%s/util/Mex_Fun", Home ); 
+
+  if (useJacSparse) { 
+    sprintf( buf, "%s_mex_Jac_SP.%s", rootFileName, suffix );  
+    mex_jacFile = fopen(buf, "w");
+    if( mex_jacFile == 0 ) {
+      FatalError(3,"%s: Can't create file", buf );
+    } 
+    UseFile( mex_jacFile );
+    IncludeCode( "%s/util/Mex_Jac_SP", Home );  
+  }
+
+  if (useHessian) { 
+    sprintf( buf, "%s_mex_Hessian.%s", rootFileName, suffix );  
+    mex_hessFile = fopen(buf, "w");
+    if( mex_hessFile == 0 ) {
+      FatalError(3,"%s: Can't create file", buf );
+    } 
+    UseFile( mex_hessFile );
+    IncludeCode( "%s/util/Mex_Hessian", Home );  
+  }
+  
+}
+
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void GenerateMatlabTemplates()
+{
+char buf[200], suffix[5];
+
+  if (useLang != MATLAB_LANG) return;
+
+  
+  sprintf( buf, "%s_Fun_Chem.m", rootFileName );  
+  mex_funFile = fopen(buf, "w");
+  if( mex_funFile == 0 ) {
+    FatalError(3,"%s: Can't create file", buf );
+  } 
+  UseFile( mex_funFile );
+  IncludeCode( "%s/util/Template_Fun_Chem", Home ); 
+  
+  sprintf( buf, "%s_Update_SUN.m", rootFileName );  
+  mex_funFile = fopen(buf, "w");
+  if( mex_funFile == 0 ) {
+    FatalError(3,"%s: Can't create file", buf );
+  } 
+  UseFile( mex_funFile );
+  IncludeCode( "%s/util/UpdateSun", Home ); 
+
+  if (useJacSparse) { 
+    sprintf( buf, "%s_Jac_Chem.m", rootFileName );  
+    mex_jacFile = fopen(buf, "w");
+    if( mex_jacFile == 0 ) {
+      FatalError(3,"%s: Can't create file", buf );
+    } 
+    UseFile( mex_jacFile );
+    IncludeCode( "%s/util/Template_Jac_Chem", Home );  
+  }
+
+  if (useHessian) { 
+  }
+  
+}
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void GenerateF90Modules(char where)
+{
+char buf[200];
+
+if (useLang != F90_LANG) return;
+
+switch (where) {
+case 'h':
+
+  sprintf( buf, "%s_Precision.f90", rootFileName );  
+  sparse_dataFile = fopen(buf, "w");
+  if( sparse_dataFile == 0 ) {
+    FatalError(3,"%s: Can't create file", buf );
+  } 
+  UseFile( sparse_dataFile );
+  F90_Inline("\nMODULE %s_Precision\n", rootFileName );
+  F90_Inline("!");
+  F90_Inline("! Definition of different levels of accuracy");
+  F90_Inline("! for REAL variables using KIND parameterization");
+  F90_Inline("!");
+  F90_Inline("! KPP SP - Single precision kind");
+  F90_Inline("  INTEGER, PARAMETER :: sp = SELECTED_REAL_KIND(6,30)");
+  F90_Inline("! KPP DP - Double precision kind");
+  F90_Inline("  INTEGER, PARAMETER :: dp = SELECTED_REAL_KIND(14,300)");
+  F90_Inline("! KPP QP - Quadruple precision kind");
+  F90_Inline("  INTEGER, PARAMETER :: qp = SELECTED_REAL_KIND(18,400)");
+  F90_Inline("\nEND MODULE %s_Precision\n\n", rootFileName );
+
+  UseFile( initFile ); 
+    F90_Inline("MODULE %s_Initialize\n", rootFileName );
+    F90_Inline("  USE %s_Parameters, ONLY: dp, NVAR, NFIX", rootFileName);
+    F90_Inline("  IMPLICIT NONE\n", rootFileName );
+    F90_Inline("CONTAINS\n\n");
+
+  UseFile( param_headerFile );
+    F90_Inline("MODULE %s_Parameters\n", rootFileName );
+    F90_Inline("  USE %s_Precision", rootFileName );
+    F90_Inline("  PUBLIC\n  SAVE\n");
+
+  UseFile( global_dataFile );
+    F90_Inline("MODULE %s_Global\n", rootFileName );
+    if ( useDeclareValues )
+      F90_Inline("  USE %s_Precision", rootFileName );
+    else
+      F90_Inline("  USE %s_Parameters, ONLY: dp, NSPEC, NVAR, NFIX, NREACT", rootFileName);
+    F90_Inline("  PUBLIC\n  SAVE\n");
+ 
+  UseFile( functionFile ); 
+    F90_Inline("MODULE %s_Function\n", rootFileName );
+    if ( useDeclareValues )
+      F90_Inline("  USE %s_Precision", rootFileName );
+    else
+      F90_Inline("  USE %s_Parameters", rootFileName );
+    F90_Inline("  IMPLICIT NONE\n", rootFileName );
+    Declare( A ); /*  mz_rs_20050117 */
+    F90_Inline("\nCONTAINS\n\n");
+
+  UseFile( rateFile );
+    F90_Inline("MODULE %s_Rates\n", rootFileName );
+    if ( useDeclareValues )
+      F90_Inline("  USE %s_Precision", rootFileName );
+    else
+      F90_Inline("  USE %s_Parameters", rootFileName );
+    F90_Inline("  USE %s_Global", rootFileName );
+    F90_Inline("  IMPLICIT NONE", rootFileName );
+    F90_Inline("\nCONTAINS\n\n");
+
+  if ( useStochastic ) {
+    UseFile(stochasticFile);
+    F90_Inline("MODULE %s_Stochastic\n", rootFileName);
+    if ( useDeclareValues )
+      F90_Inline("  USE %s_Precision", rootFileName );
+    else
+      F90_Inline("  USE %s_Parameters, ONLY: NVAR, NFIX, NREACT", rootFileName );
+    F90_Inline("  PUBLIC\n  SAVE\n");
+    F90_Inline("\nCONTAINS\n\n");
+  }
+
+  if ( useJacSparse ) {
+    UseFile(sparse_jacFile);
+    F90_Inline("MODULE %s_JacobianSP\n", rootFileName);
+    F90_Inline("  PUBLIC\n  SAVE\n");
+  }
+ 
+  UseFile( jacobianFile ); 
+    F90_Inline("MODULE %s_Jacobian\n", rootFileName );
+    if ( useDeclareValues )
+      F90_Inline("  USE %s_Precision", rootFileName );
+    else
+      F90_Inline("  USE %s_Parameters", rootFileName );
+    if ( useJacSparse )
+      F90_Inline("  USE %s_JacobianSP\n", rootFileName);
+    F90_Inline("  IMPLICIT NONE", rootFileName );
+    F90_Inline("\nCONTAINS\n\n");
+  
+  if ( useStoicmat ) {
+    UseFile(sparse_stoicmFile);
+    F90_Inline("MODULE %s_StoichiomSP\n", rootFileName); 
+    F90_Inline("  USE %s_Precision", rootFileName);
+    F90_Inline("  PUBLIC\n  SAVE\n"); 
+
+    UseFile( stoichiomFile ); 
+    F90_Inline("MODULE %s_Stoichiom\n", rootFileName);
+    if ( useDeclareValues )
+      F90_Inline("  USE %s_Precision", rootFileName );
+    else
+      F90_Inline("  USE %s_Parameters", rootFileName );
+    F90_Inline("  USE %s_StoichiomSP\n", rootFileName);
+    F90_Inline("  IMPLICIT NONE", rootFileName );
+    F90_Inline("\nCONTAINS\n\n");
+  }
+
+  if ( useHessian ) {
+    UseFile(sparse_hessFile);
+    F90_Inline("MODULE %s_HessianSP\n", rootFileName);
+    /* F90_Inline("  USE %s_Precision", rootFileName ); */ /* mz_rs_20050321 */
+    F90_Inline("  PUBLIC\n  SAVE\n");
+
+    UseFile( hessianFile ); 
+    F90_Inline("MODULE %s_Hessian\n", rootFileName);
+    if ( useDeclareValues )
+      F90_Inline("  USE %s_Precision", rootFileName );
+    else
+      F90_Inline("  USE %s_Parameters", rootFileName );
+    F90_Inline("  USE %s_HessianSP\n", rootFileName);
+    F90_Inline("  IMPLICIT NONE", rootFileName );
+    F90_Inline("\nCONTAINS\n\n");
+  }
+  
+   UseFile( monitorFile );
+     F90_Inline("MODULE %s_Monitor", rootFileName);
+
+   UseFile( linalgFile ); 
+    F90_Inline("MODULE %s_LinearAlgebra\n", rootFileName);
+    F90_Inline("  USE %s_Parameters", rootFileName );
+    /* mz_rs_20050511+ if( useJacSparse ) added */
+    if ( useJacSparse )
+      F90_Inline("  USE %s_JacobianSP\n", rootFileName);
+    /* mz_rs_20050511- */
+    /* mz_rs_20050321+ */
+    /* if (useHessian) */
+    /*   F90_Inline("  USE %s_HessianSP\n", rootFileName); */
+    /* mz_rs_20050321- */
+    F90_Inline("  IMPLICIT NONE", rootFileName );
+    F90_Inline("\nCONTAINS\n\n");
+
+   UseFile( utilFile ); 
+    F90_Inline("MODULE %s_Util\n", rootFileName);
+    F90_Inline("  USE %s_Parameters", rootFileName );
+    F90_Inline("  IMPLICIT NONE", rootFileName );
+    F90_Inline("\nCONTAINS\n\n");
+    
+    /* Here we define the model module which aggregates everything */ 
+    /* put module rootFileName_Model into separate file */
+    /* (reusing "sparse_dataFile" as done above for _Precision file) */
+    sprintf( buf, "%s_Model.f90", rootFileName );  
+    sparse_dataFile = fopen(buf, "w");
+    if( sparse_dataFile == 0 ) {
+      FatalError(3,"%s: Can't create file", buf );
+    } 
+    UseFile( sparse_dataFile );
+    F90_Inline("MODULE %s_Model\n", rootFileName);
+    F90_Inline("!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
+    F90_Inline("!  Completely defines the model %s",  rootFileName);
+    F90_Inline("!    by using all the associated modules");
+    F90_Inline("!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
+    F90_Inline("\n  USE %s_Precision", rootFileName );
+    F90_Inline("  USE %s_Parameters", rootFileName );
+    F90_Inline("  USE %s_Global", rootFileName );
+    F90_Inline("  USE %s_Function", rootFileName );
+    F90_Inline("  USE %s_Integrator", rootFileName );
+    F90_Inline("  USE %s_Rates", rootFileName );
+    if ( useStochastic )
+       F90_Inline("  USE %s_Stochastic", rootFileName );
+    if ( useJacobian )
+       F90_Inline("  USE %s_Jacobian", rootFileName );
+    if ( useHessian )
+       F90_Inline("  USE %s_Hessian", rootFileName);
+    if ( useStoicmat )
+       F90_Inline("  USE %s_Stoichiom", rootFileName); 
+    F90_Inline("  USE %s_LinearAlgebra", rootFileName);
+    F90_Inline("  USE %s_Monitor", rootFileName);
+    F90_Inline("  USE %s_Util", rootFileName);
+    F90_Inline("\nEND MODULE %s_Model\n", rootFileName);
+
+    /* mz_rs_20050518+ */
+    /* UseFile( driverFile ); */
+    /* WriteDelim(); */
+    /* mz_rs_20050518- */
+
+  break;
+  
+case 't':
+
+  /*  mz_rs_20050117+ */
+  UseFile( initFile ); 
+  F90_Inline("\nEND MODULE %s_Initialize\n", rootFileName );
+  /*  mz_rs_20050117- */
+
+  UseFile( param_headerFile );
+  F90_Inline("\nEND MODULE %s_Parameters\n", rootFileName );
+  
+  UseFile( global_dataFile );
+  F90_Inline("\nEND MODULE %s_Global\n", rootFileName );
+
+  UseFile( functionFile ); 
+  F90_Inline("\nEND MODULE %s_Function\n", rootFileName );
+
+  UseFile( rateFile );
+  F90_Inline("\nEND MODULE %s_Rates\n", rootFileName );
+  
+  if ( useStochastic ) {
+    UseFile(stochasticFile);
+    F90_Inline("\nEND MODULE %s_Stochastic\n", rootFileName);
+  }
+  
+  if ( useJacSparse ) {
+    UseFile(sparse_jacFile);
+    F90_Inline("\nEND MODULE %s_JacobianSP\n", rootFileName);
+  }
+
+  UseFile( jacobianFile ); 
+  F90_Inline("\nEND MODULE %s_Jacobian\n", rootFileName );
+  
+  if ( useStoicmat ) {
+    UseFile(sparse_stoicmFile);
+    F90_Inline("\nEND MODULE %s_StoichiomSP\n", rootFileName);
+    
+    UseFile( stoichiomFile ); 
+    F90_Inline("\nEND MODULE %s_Stoichiom\n", rootFileName);
+  }
+  
+  if ( useHessian ) {
+    UseFile(sparse_hessFile);
+    F90_Inline("\nEND MODULE %s_HessianSP\n", rootFileName);
+
+    UseFile( hessianFile ); 
+    F90_Inline("\nEND MODULE %s_Hessian\n", rootFileName );
+  }  
+  
+   UseFile(monitorFile);
+     F90_Inline("\nEND MODULE %s_Monitor", rootFileName);
+
+   UseFile( linalgFile ); 
+    F90_Inline("\nEND MODULE %s_LinearAlgebra\n", rootFileName);
+
+   UseFile( utilFile ); 
+    F90_Inline("\nEND MODULE %s_Util\n", rootFileName);
+     
+  break;
+  
+default:
+  printf("\n Unrecognized option '%s' in GenerateF90Modules\n", where);
+  break;
+}  
+}
+
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void Generate()
+{
+int i, j;
+int n;
+
+  VarStartNr = 0;
+  FixStartNr = VarNr;
+  
+  real = useDouble ? DOUBLE : REAL;
+
+  n = MAX_OUTBUF;
+  for( i = 1; i < INLINE_OPT; i++ ) 
+    if( InlineCode[i].maxlen > n ) 
+      n = InlineCode[i].maxlen;
+    
+  outBuf = (char*)malloc( n );
+  outBuffer = outBuf;
+
+  switch( useLang ) {
+    case F77_LANG: Use_F( rootFileName ); 
+                 break; 
+    case F90_LANG: Use_F90( rootFileName );
+                 break; 
+    case C_LANG: Use_C( rootFileName ); 
+                 break; 
+    case MATLAB_LANG: Use_MATLAB( rootFileName ); 
+                 break; 
+    default: printf("\n Language no '%s' unknown\n",useLang );		 
+  }
+  printf("\nKPP is initializing the code generation.");
+  InitGen();
+
+  if ( useLang == F90_LANG )
+      GenerateF90Modules('h');
+      
+  GenerateMap();
+  
+/*  if( (useLang == F77_LANG)||(useLang == F90_LANG)||(useLang == C_LANG) )
+{*/
+    printf("\nKPP is generating the monitor data:");
+    printf("\n    - %s_Monitor",rootFileName);
+    GenerateMonitorData();
+/*  }*/
+  
+  printf("\nKPP is generating the utility data:");
+  printf("\n    - %s_Util",rootFileName);
+  GenerateUtil();
+  
+  printf("\nKPP is generating the global declarations:");
+  printf("\n    - %s_Main",rootFileName);
+  GenerateGData();
+  
+
+  printf("\nKPP is generating the ODE function:");
+  printf("\n    - %s_Function",rootFileName);
+  GenerateFun();  
+
+  if ( useStochastic ) {
+    printf("\nKPP is generating the Stochastic description:");
+    printf("\n    - %s_Function",rootFileName);
+    GenerateStochastic();  
+  }  
+  
+  if ( useJacobian ) {
+    printf("\nKPP is generating the ODE Jacobian:");
+    printf("\n    - %s_Jacobian\n    - %s_JacobianSP",rootFileName,rootFileName);
+    GenerateJacobianSparseData();
+    GenerateJac();
+    if ( (useLang == F77_LANG)||(useLang == F90_LANG)||(useLang == C_LANG) ) {
+       GenerateJacVect();
+       GenerateJacTRVect();
+       if( useJacSparse ) {
+          printf("\nKPP is generating the linear algebra routines:");
+          printf("\n    - %s_LinearAlgebra",rootFileName);
+          GenerateSparseUtil();
+          GenerateSolve();
+          GenerateTRSolve();
+       }  
+    }
+ }
+ 
+ GenerateBlas();
+
+  if( useHessian ) { 
+    printf("\nKPP is generating the Hessian:");
+    printf("\n    - %s_Hessian\n    - %s_HessianSP",rootFileName,rootFileName);
+    GenerateHessian(); 
+    GenerateHessianSparseData();  
+  }   
+  
+  printf("\nKPP is generating the utility functions:");
+  printf("\n    - %s_Util",rootFileName);
+  
+  GenerateInitialize();
+
+  GenerateShuffle_user2kpp();
+  GenerateShuffle_kpp2user();  
+
+  printf("\nKPP is generating the rate laws:");
+  printf("\n    - %s_Rates",rootFileName);  
+  
+  GenerateRateLaws();  
+  GenerateUpdateSun();  
+  GenerateUpdateRconst();  
+  GenerateUpdatePhoto();
+  GenerateGetMass(); 
+
+
+  printf("\nKPP is generating the parameters:");
+  printf("\n    - %s_Parameters",rootFileName);  
+
+  GenerateParamHeader();
+  
+  printf("\nKPP is generating the global data:");
+  printf("\n    - %s_Global",rootFileName);  
+
+  GenerateGlobalHeader();
+  
+  if ( (useLang == F77_LANG)||(useLang == C_LANG)||(useLang == MATLAB_LANG) ) {
+    printf("\nKPP is generating the sparsity data:");
+    if( useJacSparse ) {
+        GenerateJacobianSparseHeader();
+        printf("\n    - %s_JacobianSP",rootFileName); 
+	} 
+    if( useHessian ) {  
+        GenerateHessianSparseHeader(); 
+        printf("\n    - %s_HessianSP",rootFileName);  
+	}
+    }
+
+  if ( useStoicmat ) {
+    printf("\nKPP is generating the stoichiometric description files:");
+    printf("\n    - %s_Stoichiom\n    - %s_StoichiomSP",rootFileName,rootFileName);
+    GenerateReactantProd(); 
+    GenerateJacReactantProd(); 
+    GenerateStoicmSparseData(); 
+    if ( (useLang == F77_LANG)||(useLang == C_LANG)||(useLang == MATLAB_LANG) )
+        GenerateStoicmSparseHeader(); 
+    GenerateDFunDRcoeff();
+    GenerateDJacDRcoeff();
+  }  
+
+  printf("\nKPP is generating the driver from %s.f90:", driver);
+  printf("\n    - %s_Main",rootFileName);
+  
+  if ( (useLang == F77_LANG)||(useLang == F90_LANG)||(useLang == C_LANG) )
+    GenerateIntegrator();
+  
+  /* mz_rs_20050518+ no driver file if driver = none */
+  if( strcmp( driver, "none" ) != 0 )
+    GenerateDriver();
+  /* mz_rs_20050518- */
+
+  if ( (useLang == F77_LANG)||(useLang == F90_LANG)||(useLang == C_LANG) )
+      GenerateMakefile();
+  
+  if ( useLang == F90_LANG )
+      GenerateF90Modules('t');
+  
+  if ( useLang == MATLAB_LANG )
+      GenerateMatlabTemplates();
+
+  if ( (useLang == F77_LANG)||(useLang == F90_LANG)||(useLang == C_LANG) )
+      GenerateMex();
+  
+  /*  mz_rs_20050117+ */
+  if( initFile )          fclose( initFile );
+  /*  mz_rs_20050117- */
+  if( driverFile )        fclose( driverFile );
+  if( functionFile )      fclose( functionFile );
+  if( global_dataFile )   fclose( global_dataFile );
+  if( hessianFile )       fclose( hessianFile );
+  if( integratorFile )    fclose( integratorFile );
+  if( jacobianFile )      fclose( jacobianFile );
+  if( linalgFile )        fclose( linalgFile );
+  if( mapFile )           fclose( mapFile );
+  if( makeFile )          fclose( makeFile );
+  if( monitorFile )       fclose( monitorFile );
+  if( mex_funFile )       fclose( mex_funFile );
+  if( mex_jacFile )       fclose( mex_jacFile );
+  if( mex_hessFile )      fclose( mex_hessFile );
+  if( param_headerFile )  fclose( param_headerFile );
+  if( rateFile )          fclose( rateFile );
+  if( sparse_dataFile )   fclose( sparse_dataFile );
+  if( sparse_jacFile )    fclose( sparse_jacFile );
+  if( sparse_hessFile )   fclose( sparse_hessFile );
+  if( sparse_stoicmFile ) fclose( sparse_stoicmFile );
+  if( stoichiomFile )     fclose( stoichiomFile );
+  if( utilFile )          fclose( utilFile );
+  if( stochasticFile )    fclose( stochasticFile );
+    
+}
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+int* AllocIntegerVector(int n, char* message)
+{
+int* vec;
+if ( ( vec=(int*)calloc(n,sizeof(int)) ) == NULL ) 
+   FatalError(-30,"%s: Cannot allocate vector.",message); 
+return vec;
+}
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+/* Allocates a matrix of integers */
+int** AllocIntegerMatrix(int m, int n, char* message)
+{
+int** mat;
+int i;
+if ( (mat = (int**)calloc(m,sizeof(int*)))==NULL ) {
+    FatalError(-30,"%s: Cannot allocate matrix.", message);
+    }
+for (i=0; i<m; i++)
+  if ( (mat[i] = (int*)calloc(n,sizeof(int)))==NULL ) {
+    FatalError(-30,"%s: Cannot allocate matrix[%d].", message, i);
+    }
+return mat;
+}
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+/* Frees the memory allocated by AllocIntegerMatrix */
+void FreeIntegerMatrix(int** mat, int m, int n)
+{
+int i;
+for (i=0; i<m; i++)
+  free(mat[i]);
+free(mat);
+}
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+/* i = C-type index; returns language-appropriate index */
+int Index( int i )
+{
+        switch( useLang ) {
+           case C_LANG:  
+	     return i;
+           case F77_LANG: 
+	     return i+1;
+           case F90_LANG: 
+	     return i+1;
+           case MATLAB_LANG: 
+	     return i+1;
+	   default: printf("\n Unknown language no %d\n",useLang);
+	     exit(1);  
+        }
+}
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/src/kpp.c
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/src/kpp.c	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/src/kpp.c	(revision 2696)
@@ -0,0 +1,571 @@
+/******************************************************************************
+
+  KPP - The Kinetic PreProcessor
+        Builds simulation code for chemical kinetic systems
+
+  Copyright (C) 1995-1996 Valeriu Damian and Adrian Sandu
+  Copyright (C) 1997-2005 Adrian Sandu
+
+  KPP is free software; you can redistribute it and/or modify it under the
+  terms of the GNU General Public License as published by the Free Software
+  Foundation (http://www.gnu.org/copyleft/gpl.html); either version 2 of the
+  License, or (at your option) any later version.
+
+  KPP is distributed in the hope that it will be useful, but WITHOUT ANY
+  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+  FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+  details.
+
+  You should have received a copy of the GNU General Public License along
+  with this program; if not, consult http://www.gnu.org/copyleft/gpl.html or
+  write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+  Boston, MA  02111-1307,  USA.
+
+  Adrian Sandu
+  Computer Science Department
+  Virginia Polytechnic Institute and State University
+  Blacksburg, VA 24060
+  E-mail: sandu@cs.vt.edu
+
+******************************************************************************/
+
+
+#include <stdlib.h>
+#include <string.h>
+#include "gdata.h"
+#include "scan.h"
+
+char *eqFileName;
+char *rootFileName = "ff";
+char Home[ MAX_PATH ] = ""; 
+
+short int linStru[ MAX_SPECIES ];
+short int colStru[ MAX_SPECIES ];
+short int bestStru[ MAX_SPECIES ];
+short int *Stru;
+
+enum stru_criteria { UNSORT, LINSORT, COLSORT, BESTSORT };
+
+void EqCopy( EQ_VECT e1, EQ_VECT e2 )
+{
+int i;
+
+  for( i = 0; i < EqnNr; i++ ) e2[i] = e1[i];
+}
+
+int NoSort( const void *p1, const void *p2 )
+{
+  return -1;
+}
+
+int CodeCmp( const void *p1, const void *p2 )
+{
+CODE *c1, *c2;
+
+  c1 = (CODE*)p1;  
+  c2 = (CODE*)p2;  
+  
+  if ( *c1 < *c2 ) return -1;
+  if ( *c1 > *c2 ) return 1;
+  return 0;
+}
+
+int CodeRCmp( const void *p1, const void *p2 )
+{
+int rc1, rc2;
+CODE *c1, *c2;
+
+  c1 = (CODE*)p1;  
+  c2 = (CODE*)p2;  
+
+  rc1 = Reactive[ ReverseCode[ *c1 ] ]; 
+  rc2 = Reactive[ ReverseCode[ *c2 ] ];
+  if ( rc1 > rc2 ) return -1; 
+  if ( rc1 < rc2 ) return 1;
+  if ( *c1 < *c2 ) return -1;
+  if ( *c1 > *c2 ) return 1;
+  return 0;
+}
+
+int CodeSSCmp( const void *p1, const void *p2 )
+{
+  return -CodeRCmp(p1,p2);
+}
+
+int CodeSCmp( const void *p1, const void *p2 )
+{
+CODE *c1, *c2;
+short int sc1, sc2;
+
+  c1 = (CODE*)p1;  
+  c2 = (CODE*)p2;  
+  
+  sc1 = Stru[ ReverseCode[ *c1 ] ];
+  sc2 = Stru[ ReverseCode[ *c2 ] ];
+  
+  if ( sc1 > sc2 ) return 1; 
+  if ( sc1 < sc2 ) return -1;
+  if ( *c1 < *c2 ) return 1;
+  if ( *c1 > *c2 ) return -1;
+  return 0;
+}
+
+void UpdateStructJ()
+{
+int i,j,k;
+
+  for ( i=0; i<VarNr; i++ )
+    for ( j=0; j<VarNr; j++ )
+      structJ[i][j]=(i==j)?1:0;
+              
+  for (i = 0; i < VarNr; i++)
+    for (j = 0; j < VarNr; j++)
+      for (k = 0; k < EqnNr; k++)
+        if ( Stoich[i][k]*((Stoich_Left[j][k])?1:0) != 0.0 )
+          structJ[i][j]=1;
+
+  for ( i=0; i<VarNr; i++ )
+    for ( j=0; j<VarNr; j++ )
+      LUstructJ[i][j]=structJ[i][j];
+              
+}
+
+int ComputeLUStructJ()
+{
+int i,j,k;
+int nu,nl;
+
+  for (j = 0; j < VarNr-1; j++) {
+    for (i = j+1; i < VarNr; i++) {
+      if( LUstructJ[i][j] ) {
+        for (k = j; k < VarNr; k++) 
+         /*   LUstructJ[i][k] += LUstructJ[j][k]; */
+	   if ( LUstructJ[j][k] != 0 )
+              LUstructJ[i][k] = 1; 
+      }   
+    }
+  }  
+
+  
+  nu = 0; nl = 0;
+  for (i = 0; i < VarNr; i++) 
+    for (j = 0; j < VarNr; j++)
+      if( LUstructJ[i][j] ) {
+        if(i > j) nl++;
+        if(i <= j) nu++;     
+      }          
+
+  return nu+nl;
+}
+
+int LUnonZero()
+{
+CODE v[MAX_SPECIES];
+CODE *var;
+int i,j,k;
+int nu,nl;
+
+  var = v;
+  if( Stru != bestStru ) {
+    for( i=0; i<VarNr; i++ )
+      var[i] = Code[i];
+    qsort( (void*)var, VarNr, sizeof(CODE), CodeSCmp );
+  } else {
+    var = bestStru;
+  }
+          
+  for (i = 0; i < VarNr; i++)
+    for (j = 0; j < VarNr; j++)
+      LUstructJ[i][j] = structJ[ ReverseCode[var[i]] ][ ReverseCode[var[j]] ];  
+
+  return ComputeLUStructJ();
+}
+
+void LinColSparsity()
+{
+int i,j,k;
+int nlin, ncol;
+FILE * fff;
+
+  for ( i=0; i<VarNr; i++ )
+    for ( j=0; j<VarNr; j++ )
+      structJ[i][j]=(i==j)?1:0;
+              
+  for (i = 0; i < VarNr; i++)
+    for (j = 0; j < VarNr; j++)
+      for (k = 0; k < EqnNr; k++)
+        if ( Stoich[i][k]*((Stoich_Left[j][k])?1:0) != 0.0 )
+          structJ[i][j]=1;
+
+  for ( i=0; i<VarNr; i++ ) {
+    linStru[i] = 0;
+    for (j = 0; j < VarNr; j++)
+      linStru[i] += structJ[i][j];
+  }
+
+  for ( i=0; i<VarNr; i++ ) {
+    colStru[i] = 0;
+    for (j = 0; j < VarNr; j++)
+      colStru[i] += structJ[j][i];
+    colStru[i] *= linStru[i];  
+  }
+
+  Stru = linStru;
+  nlin = LUnonZero();
+  Stru = colStru;
+  ncol = LUnonZero();
+  if( nlin <= ncol ) { 
+    Stru = linStru;
+    LUnonZero();
+  } 
+}
+
+void BestSparsity()
+{
+int i,j,k;
+int cnz, lnz;
+int best, crt;
+int best_i;
+int tmp;
+int s;
+
+  UpdateStructJ();
+      
+  for ( i=0; i<VarNr; i++ )
+    bestStru[i] = Code[i];
+
+  for ( s=0; s<VarNr-1; s++ ) {
+    best = MAX_SPECIES*MAX_SPECIES; best_i = 0;
+    for ( i=s; i<VarNr; i++ ) {
+      cnz = 0;lnz = 0;
+      for (j = s; j < VarNr; j++) {
+        cnz += (LUstructJ[i][j]?1:0);
+        lnz += (LUstructJ[j][i]?1:0);
+      }
+      crt = (cnz-1)*(lnz-1);
+      if( crt < best ) {
+        best = crt;
+        best_i = i;
+      }    
+    }
+    for ( i=0; i<VarNr; i++ ) {
+      tmp = LUstructJ[s][i];
+      LUstructJ[s][i] = LUstructJ[best_i][i];
+      LUstructJ[best_i][i] = tmp;      
+    }   
+    for ( i=0; i<VarNr; i++ ) {
+      tmp = LUstructJ[i][s];
+      LUstructJ[i][s] = LUstructJ[i][best_i];
+      LUstructJ[i][best_i] = tmp;      
+    }   
+    tmp = bestStru[s];
+    bestStru[s] = bestStru[best_i];
+    bestStru[best_i] = tmp;
+    
+    for (i = s+1; i < VarNr; i++) {
+      if( LUstructJ[i][s] ) {
+        for (k = s; k < VarNr; k++) 
+          LUstructJ[i][k] += LUstructJ[s][k];
+      }   
+    }
+  }
+
+  Stru = bestStru;
+}
+
+void ReorderSpecies( int criteria )
+{
+CODE *var;
+CODE *fix;
+CODE *dummy;
+EQ_VECT *tmpStoich_Left;
+EQ_VECT *tmpStoich_Right;
+EQ_VECT *tmpStoich;
+CODE *tmpCode;
+CODE *tmpReact;
+int i, k;
+int new;
+int (*cmpVar)(const void *, const void *);
+int (*cmpFix)(const void *, const void *);
+int dummyNr;
+
+  cmpVar = CodeCmp;
+  cmpFix = CodeCmp;
+
+  switch( criteria ) {
+    case UNSORT:   cmpVar = useJacobian ? CodeRCmp : CodeCmp;
+                   break;  
+    case LINSORT:  cmpVar = useJacobian ? CodeSCmp : CodeCmp;
+                   Stru = linStru;  
+                   break;  
+    case COLSORT:  cmpVar = useJacobian ? CodeSCmp : CodeCmp;
+                   Stru = colStru;
+                   break;  
+    case BESTSORT: cmpVar = useJacobian ? NoSort : CodeCmp;
+                   break;  
+  }
+
+  VarNr = 0;
+  VarActiveNr = 0;
+  FixNr = 0;
+  dummyNr = 0;
+
+  var = (CODE*)malloc( SpcNr * sizeof(CODE) );
+  fix = (CODE*)malloc( SpcNr * sizeof(CODE) );
+  dummy = (CODE*)malloc( 5 * sizeof(CODE) );
+  tmpStoich_Left = (EQ_VECT*)malloc( SpcNr * sizeof(EQ_VECT) );
+  tmpStoich_Right = (EQ_VECT*)malloc( SpcNr * sizeof(EQ_VECT) );
+  tmpStoich = (EQ_VECT*)malloc( SpcNr * sizeof(EQ_VECT) );
+  tmpCode = (CODE*)malloc( SpcNr * sizeof(CODE) );
+  tmpReact = (CODE*)malloc( SpcNr * sizeof(CODE) );
+
+  for( i = 0; i < SpcNr; i++ ) {
+    switch( SpeciesTable[ Code[i] ].type ) {
+      case VAR_SPC:  var[ VarNr++ ] = Code[ i ];
+		     break;
+      case FIX_SPC:  fix[ FixNr++ ] = Code[ i ]; 
+		     break;
+      case DUMMY_SPC:dummy[ dummyNr++ ] = Code[ i ]; 
+		     break;
+    }
+  }
+
+  if( Stru != bestStru ) {
+    qsort( (void*)var, VarNr, sizeof(CODE), cmpVar );
+  } else {
+    for( i = 0; i < SpcNr; i++ )
+      var[i] = bestStru[i];
+  }  
+  qsort( (void*)fix, FixNr, sizeof(CODE), cmpFix );
+
+  for( i = 0; i < SpcNr; i++ ) {
+    EqCopy( Stoich_Left[i], tmpStoich_Left[i] );
+    EqCopy( Stoich_Right[i], tmpStoich_Right[i] );
+    EqCopy( Stoich[i], tmpStoich[i] );
+    tmpCode[i] = Code[i];
+    tmpReact[i] = Reactive[i];
+  }
+
+  SpcNr -= dummyNr;
+  dummyNr = 0;
+
+  k = 0;
+  for( i = 0; i < VarNr; i++ ) {
+    new = ReverseCode[ var[i] ];
+    EqCopy( tmpStoich_Left[ new ], Stoich_Left[ k ] );
+    EqCopy( tmpStoich_Right[ new ], Stoich_Right[ k ] );
+    EqCopy( tmpStoich[ new ], Stoich[ k ] );
+    Code[ k ] = tmpCode[ new ];
+    Reactive[ k ] = tmpReact[ new ];
+    if( Reactive[ k ] ) VarActiveNr++; 
+    k++;
+  }
+  for( i = 0; i < FixNr; i++ ) {
+    new = ReverseCode[ fix[i] ];
+    EqCopy( tmpStoich_Left[ new ], Stoich_Left[ k ] );
+    EqCopy( tmpStoich_Right[ new ], Stoich_Right[ k ] );
+    EqCopy( tmpStoich[ new ], Stoich[ k ] );
+    Code[ k ] = tmpCode[ new ];
+    Reactive[ k ] = tmpReact[ new ];
+    k++;
+  }
+  for( i = 0; i < dummyNr; i++ ) {
+    new = ReverseCode[ dummy[i] ];
+    EqCopy( tmpStoich_Left[ new ], Stoich_Left[ k ] );
+    EqCopy( tmpStoich_Right[ new ], Stoich_Right[ k ] );
+    EqCopy( tmpStoich[ new ], Stoich[ k ] );
+    Code[ k ] = tmpCode[ new ];
+    Reactive[ k ] = tmpReact[ new ];
+    k++;
+  }
+
+
+  for( i = 0; i < SpcNr+dummyNr; i++ )
+    ReverseCode[ Code[i] ] = i;
+
+  free( tmpReact );
+  free( tmpCode );
+  free( tmpStoich );
+  free( tmpStoich_Right );
+  free( tmpStoich_Left );
+  free( dummy );
+  free( fix );
+  free( var );   
+
+  fflush(stdout);
+}
+
+/* Allocate Internal Arrays */
+void  AllocInternalArrays( void )
+{
+int i;
+
+if ( (Stoich_Left =(float**)calloc(MAX_SPECIES,sizeof(float*)))==NULL ) 
+    FatalError(-30,"Cannot allocate Stoich_Left.\n");
+
+for (i=0; i<MAX_SPECIES; i++)    
+    if ( (Stoich_Left[i] = (float*)calloc(MAX_EQN,sizeof(float)))==NULL ) {
+        FatalError(-30,"Cannot allocate Stoich_Left[%d]",i,MAX_SPECIES);
+    }
+
+if ( (Stoich_Right = (float**)calloc(MAX_SPECIES,sizeof(float*)))==NULL ) 
+    FatalError(-30,"Cannot allocate Stoich_Right.\n");
+
+for (i=0; i<MAX_SPECIES; i++)    
+    if ( (Stoich_Right[i] = (float*)calloc(MAX_EQN,sizeof(float)))==NULL ) {
+        FatalError(-30,"Cannot allocate Stoich_Right[%d].",i);
+    }
+
+if ( (Stoich = (float**)calloc(MAX_SPECIES,sizeof(float*)))==NULL ) 
+    FatalError(-30,"Cannot allocate Stoich.\n");
+
+for (i=0; i<MAX_SPECIES; i++)    
+    if ( (Stoich[i] = (float*)calloc(MAX_EQN,sizeof(float)))==NULL ) {
+        FatalError(-30,"Cannot allocate Stoich[%d].",i);
+    }
+
+}
+
+
+/* Allocate Structure Arrays */
+void  AllocStructArrays( void )
+{
+int i;
+
+
+if ( (structB = (int**)calloc(EqnNr,sizeof(int*)))==NULL ) 
+    FatalError(-30, "Cannot allocate structB.");
+
+for (i=0; i<EqnNr; i++)    
+    if ( (structB[i] =(int*) calloc(SpcNr,sizeof(int)))==NULL )
+        FatalError(-30, "Cannot allocate structB[%d].\n",i);
+    
+if ( (structJ = (int**)calloc(SpcNr,sizeof(int*)))==NULL ) 
+    FatalError(-30, "Cannot allocate structJ.");
+
+for (i=0; i<SpcNr; i++)    
+    if ( (structJ[i] =(int*) calloc(SpcNr,sizeof(int)))==NULL ) 
+        FatalError(-30, "Cannot allocate structJ[%d].\n",i);
+    
+if ( (LUstructJ = (int**)calloc(SpcNr,sizeof(int*)))==NULL ) 
+    FatalError(-30, "Cannot allocate LUstructJ.");
+
+for (i=0; i<SpcNr; i++)    
+    if ( (LUstructJ[i] = (int*)calloc(SpcNr,sizeof(int)))==NULL ) 
+        FatalError(-30, "Cannot allocate LUstructJ[%d].\n",i);
+
+}
+
+/*******************************************************************/                    
+int Postprocess( char * root )
+{
+char buf[ 200 ];
+char cmd[500];
+char cmdexe[500];
+static char tmpfile[] = "kppfile.tmp";
+FILE * fp;
+
+  if ( useLang == MATLAB_LANG ) {
+ /*  Add rate function definitions as internal functions to the Update_RCONST file*/
+    sprintf( buf, "cat %s_Update_RCONST.m %s_Rates.m > tmp; mv tmp %s_Update_RCONST.m;", 
+        root, root, root ); 
+    system( buf );	 
+  }
+
+/*    Postprocessing to replace parameter names by values in the declarations
+  strcpy( cmd, "sed " );
+  sprintf( cmd, "%s -e 's/(NVAR)/(%d)/g'", cmd, VarNr );  
+  sprintf( cmd, "%s -e 's/(NFIX)/(%d)/g'", cmd, FixNr );  
+  sprintf( cmd, "%s -e 's/(NSPEC)/(%d)/g'", cmd,SpcNr );  
+  sprintf( cmd, "%s -e 's/(NREACT)/(%d)/g'", cmd, EqnNr );  
+  sprintf( cmd, "%s -e 's/(NONZERO)/(%d)/g'", cmd, Jac_NZ );  
+  sprintf( cmd, "%s -e 's/(LU_NONZERO)/(%d)/g'", cmd, LU_Jac_NZ );  
+  sprintf( cmd, "%s -e 's/(NHESS)/(%)/g'", cmd, Hess_NZ );  
+   
+  sprintf( buf, "%s_Function", rootFileName );  
+  switch( useLang ) { 
+    case F77_LANG: sprintf( buf, "%s.f", buf );
+                 break;
+    case F90_LANG: sprintf( buf, "%s.f90", buf );
+                 break;
+    case C_LANG: sprintf( buf, "%s.c", buf );
+                 break;
+    case MATLAB_LANG: sprintf( buf, "%s.m", buf );
+                 break;
+    default: printf("\n Language '%d' not implemented!\n",useLang); 
+                 exit(1);
+  }
+  sprintf( cmdexe, "%s %s > %s; mv %s %s;", cmd, buf, tmpfile, tmpfile, buf );  
+  printf("\n\nCMDEXE='%s'\n",cmdexe);
+  system( cmdexe );
+*/
+} 
+ 
+/*******************************************************************/                    
+int main( int argc, char * argv[] )
+{
+int status;
+char name[ 200 ];
+char *p;
+int i,j;
+  
+  AllocInternalArrays();
+
+  p = getenv("KPP_HOME");
+  if( p ) strcpy( Home, p );
+
+  switch( argc ) {
+    case 3: eqFileName = argv[1];
+            rootFileName = argv[2];
+            break;
+    case 2: eqFileName = argv[1];
+            strcpy( name, eqFileName );
+            p = name + strlen(name);
+            while( p > name ) {
+              if( *p == '.') { 
+                *p = '\0';
+                break;
+              }
+              p--;  
+            } 
+	    rootFileName = name;
+	    break;
+    default: FatalError(1,"\nUsage :"
+		          "\n        kpp <equations file> [output file]\n");
+  }
+
+  printf("\nThis is KPP-%s.\n", KPP_VERSION);
+
+  printf("\nKPP is parsing the equation file.");
+  status = ParseEquationFile( argv[1] );
+
+  if( status ) FatalError(2,"%d errors and %d warnings encountered.", 
+                           nError, nWarning ); 
+  /* Allocate some internal data structures */
+  AllocStructArrays();
+
+  printf("\nKPP is computing Jacobian sparsity structure.");
+  ReorderSpecies( UNSORT );
+  if (useReorder==1){
+    BestSparsity(); 
+    ReorderSpecies( BESTSORT );
+    }
+  UpdateStructJ();
+  ComputeLUStructJ();
+
+  if( initNr == -1 ) initNr = VarNr;
+
+
+  printf("\nKPP is starting the code generation.");
+  Generate( rootFileName );
+  
+  printf("\nKPP is starting the code post-processing.");
+  Postprocess( rootFileName );
+  
+  printf("\n\nKPP has succesfully created the model \"%s\".\n\n",rootFileName);
+
+  if( nError ) exit(4);
+  if( nWarning ) exit(5);
+  
+  exit(0);
+}
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/src/lex.yy.c
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/src/lex.yy.c	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/src/lex.yy.c	(revision 2696)
@@ -0,0 +1,2648 @@
+#line 2 "lex.yy.c"
+
+#line 4 "lex.yy.c"
+
+#define  YY_INT_ALIGNED short int
+
+/* A lexical scanner generated by flex */
+
+#define FLEX_SCANNER
+#define YY_FLEX_MAJOR_VERSION 2
+#define YY_FLEX_MINOR_VERSION 5
+#define YY_FLEX_SUBMINOR_VERSION 37
+#if YY_FLEX_SUBMINOR_VERSION > 0
+#define FLEX_BETA
+#endif
+
+/* First, we deal with  platform-specific or compiler-specific issues. */
+
+/* begin standard C headers. */
+#include <stdio.h>
+#include <string.h>
+#include <errno.h>
+#include <stdlib.h>
+
+/* end standard C headers. */
+
+/* flex integer type definitions */
+
+#ifndef FLEXINT_H
+#define FLEXINT_H
+
+/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
+
+#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+
+/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
+ * if you want the limit (max/min) macros for int types. 
+ */
+#ifndef __STDC_LIMIT_MACROS
+#define __STDC_LIMIT_MACROS 1
+#endif
+
+#include <inttypes.h>
+typedef int8_t flex_int8_t;
+typedef uint8_t flex_uint8_t;
+typedef int16_t flex_int16_t;
+typedef uint16_t flex_uint16_t;
+typedef int32_t flex_int32_t;
+typedef uint32_t flex_uint32_t;
+#else
+typedef signed char flex_int8_t;
+typedef short int flex_int16_t;
+typedef int flex_int32_t;
+typedef unsigned char flex_uint8_t; 
+typedef unsigned short int flex_uint16_t;
+typedef unsigned int flex_uint32_t;
+
+/* Limits of integral types. */
+#ifndef INT8_MIN
+#define INT8_MIN               (-128)
+#endif
+#ifndef INT16_MIN
+#define INT16_MIN              (-32767-1)
+#endif
+#ifndef INT32_MIN
+#define INT32_MIN              (-2147483647-1)
+#endif
+#ifndef INT8_MAX
+#define INT8_MAX               (127)
+#endif
+#ifndef INT16_MAX
+#define INT16_MAX              (32767)
+#endif
+#ifndef INT32_MAX
+#define INT32_MAX              (2147483647)
+#endif
+#ifndef UINT8_MAX
+#define UINT8_MAX              (255U)
+#endif
+#ifndef UINT16_MAX
+#define UINT16_MAX             (65535U)
+#endif
+#ifndef UINT32_MAX
+#define UINT32_MAX             (4294967295U)
+#endif
+
+#endif /* ! C99 */
+
+#endif /* ! FLEXINT_H */
+
+#ifdef __cplusplus
+
+/* The "const" storage-class-modifier is valid. */
+#define YY_USE_CONST
+
+#else	/* ! __cplusplus */
+
+/* C99 requires __STDC__ to be defined as 1. */
+#if defined (__STDC__)
+
+#define YY_USE_CONST
+
+#endif	/* defined (__STDC__) */
+#endif	/* ! __cplusplus */
+
+#ifdef YY_USE_CONST
+#define yyconst const
+#else
+#define yyconst
+#endif
+
+/* Returned upon end-of-file. */
+#define YY_NULL 0
+
+/* Promotes a possibly negative, possibly signed char to an unsigned
+ * integer for use as an array index.  If the signed char is negative,
+ * we want to instead treat it as an 8-bit unsigned char, hence the
+ * double cast.
+ */
+#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
+
+/* Enter a start condition.  This macro really ought to take a parameter,
+ * but we do it the disgusting crufty way forced on us by the ()-less
+ * definition of BEGIN.
+ */
+#define BEGIN (yy_start) = 1 + 2 *
+
+/* Translate the current start state into a value that can be later handed
+ * to BEGIN to return to the state.  The YYSTATE alias is for lex
+ * compatibility.
+ */
+#define YY_START (((yy_start) - 1) / 2)
+#define YYSTATE YY_START
+
+/* Action number for EOF rule of a given start state. */
+#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
+
+/* Special action meaning "start processing a new file". */
+#define YY_NEW_FILE yyrestart(yyin  )
+
+#define YY_END_OF_BUFFER_CHAR 0
+
+/* Size of default input buffer. */
+#ifndef YY_BUF_SIZE
+#define YY_BUF_SIZE 16384
+#endif
+
+/* The state buf must be large enough to hold one state per character in the main buffer.
+ */
+#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
+
+#ifndef YY_TYPEDEF_YY_BUFFER_STATE
+#define YY_TYPEDEF_YY_BUFFER_STATE
+typedef struct yy_buffer_state *YY_BUFFER_STATE;
+#endif
+
+#ifndef YY_TYPEDEF_YY_SIZE_T
+#define YY_TYPEDEF_YY_SIZE_T
+typedef size_t yy_size_t;
+#endif
+
+extern yy_size_t yyleng;
+
+extern FILE *yyin, *yyout;
+
+#define EOB_ACT_CONTINUE_SCAN 0
+#define EOB_ACT_END_OF_FILE 1
+#define EOB_ACT_LAST_MATCH 2
+
+    #define YY_LESS_LINENO(n)
+    
+/* Return all but the first "n" matched characters back to the input stream. */
+#define yyless(n) \
+	do \
+		{ \
+		/* Undo effects of setting up yytext. */ \
+        int yyless_macro_arg = (n); \
+        YY_LESS_LINENO(yyless_macro_arg);\
+		*yy_cp = (yy_hold_char); \
+		YY_RESTORE_YY_MORE_OFFSET \
+		(yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
+		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
+		} \
+	while ( 0 )
+
+#define unput(c) yyunput( c, (yytext_ptr)  )
+
+#ifndef YY_STRUCT_YY_BUFFER_STATE
+#define YY_STRUCT_YY_BUFFER_STATE
+struct yy_buffer_state
+	{
+	FILE *yy_input_file;
+
+	char *yy_ch_buf;		/* input buffer */
+	char *yy_buf_pos;		/* current position in input buffer */
+
+	/* Size of input buffer in bytes, not including room for EOB
+	 * characters.
+	 */
+	yy_size_t yy_buf_size;
+
+	/* Number of characters read into yy_ch_buf, not including EOB
+	 * characters.
+	 */
+	yy_size_t yy_n_chars;
+
+	/* Whether we "own" the buffer - i.e., we know we created it,
+	 * and can realloc() it to grow it, and should free() it to
+	 * delete it.
+	 */
+	int yy_is_our_buffer;
+
+	/* Whether this is an "interactive" input source; if so, and
+	 * if we're using stdio for input, then we want to use getc()
+	 * instead of fread(), to make sure we stop fetching input after
+	 * each newline.
+	 */
+	int yy_is_interactive;
+
+	/* Whether we're considered to be at the beginning of a line.
+	 * If so, '^' rules will be active on the next match, otherwise
+	 * not.
+	 */
+	int yy_at_bol;
+
+    int yy_bs_lineno; /**< The line count. */
+    int yy_bs_column; /**< The column count. */
+    
+	/* Whether to try to fill the input buffer when we reach the
+	 * end of it.
+	 */
+	int yy_fill_buffer;
+
+	int yy_buffer_status;
+
+#define YY_BUFFER_NEW 0
+#define YY_BUFFER_NORMAL 1
+	/* When an EOF's been seen but there's still some text to process
+	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
+	 * shouldn't try reading from the input source any more.  We might
+	 * still have a bunch of tokens to match, though, because of
+	 * possible backing-up.
+	 *
+	 * When we actually see the EOF, we change the status to "new"
+	 * (via yyrestart()), so that the user can continue scanning by
+	 * just pointing yyin at a new input file.
+	 */
+#define YY_BUFFER_EOF_PENDING 2
+
+	};
+#endif /* !YY_STRUCT_YY_BUFFER_STATE */
+
+/* Stack of input buffers. */
+static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
+static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
+static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
+
+/* We provide macros for accessing buffer states in case in the
+ * future we want to put the buffer states in a more general
+ * "scanner state".
+ *
+ * Returns the top of the stack, or NULL.
+ */
+#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
+                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
+                          : NULL)
+
+/* Same as previous macro, but useful when we know that the buffer stack is not
+ * NULL or when we need an lvalue. For internal use only.
+ */
+#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
+
+/* yy_hold_char holds the character lost when yytext is formed. */
+static char yy_hold_char;
+static yy_size_t yy_n_chars;		/* number of characters read into yy_ch_buf */
+yy_size_t yyleng;
+
+/* Points to current character in buffer. */
+static char *yy_c_buf_p = (char *) 0;
+static int yy_init = 0;		/* whether we need to initialize */
+static int yy_start = 0;	/* start state number */
+
+/* Flag which is used to allow yywrap()'s to do buffer switches
+ * instead of setting up a fresh yyin.  A bit of a hack ...
+ */
+static int yy_did_buffer_switch_on_eof;
+
+void yyrestart (FILE *input_file  );
+void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
+YY_BUFFER_STATE yy_create_buffer (FILE *file,int size  );
+void yy_delete_buffer (YY_BUFFER_STATE b  );
+void yy_flush_buffer (YY_BUFFER_STATE b  );
+void yypush_buffer_state (YY_BUFFER_STATE new_buffer  );
+void yypop_buffer_state (void );
+
+static void yyensure_buffer_stack (void );
+static void yy_load_buffer_state (void );
+static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file  );
+
+#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
+
+YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size  );
+YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str  );
+YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len  );
+
+void *yyalloc (yy_size_t  );
+void *yyrealloc (void *,yy_size_t  );
+void yyfree (void *  );
+
+#define yy_new_buffer yy_create_buffer
+
+#define yy_set_interactive(is_interactive) \
+	{ \
+	if ( ! YY_CURRENT_BUFFER ){ \
+        yyensure_buffer_stack (); \
+		YY_CURRENT_BUFFER_LVALUE =    \
+            yy_create_buffer(yyin,YY_BUF_SIZE ); \
+	} \
+	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
+	}
+
+#define yy_set_bol(at_bol) \
+	{ \
+	if ( ! YY_CURRENT_BUFFER ){\
+        yyensure_buffer_stack (); \
+		YY_CURRENT_BUFFER_LVALUE =    \
+            yy_create_buffer(yyin,YY_BUF_SIZE ); \
+	} \
+	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
+	}
+
+#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
+
+/* Begin user sect3 */
+
+typedef unsigned char YY_CHAR;
+
+FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
+
+typedef int yy_state_type;
+
+extern int yylineno;
+
+int yylineno = 1;
+
+extern char *yytext;
+#define yytext_ptr yytext
+
+static yy_state_type yy_get_previous_state (void );
+static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
+static int yy_get_next_buffer (void );
+static void yy_fatal_error (yyconst char msg[]  );
+
+/* Done after the current pattern has been matched and before the
+ * corresponding action - sets up yytext.
+ */
+#define YY_DO_BEFORE_ACTION \
+	(yytext_ptr) = yy_bp; \
+	yyleng = (size_t) (yy_cp - yy_bp); \
+	(yy_hold_char) = *yy_cp; \
+	*yy_cp = '\0'; \
+	(yy_c_buf_p) = yy_cp;
+
+#define YY_NUM_RULES 58
+#define YY_END_OF_BUFFER 59
+/* This struct is not used in this scanner,
+   but its presence is necessary. */
+struct yy_trans_info
+	{
+	flex_int32_t yy_verify;
+	flex_int32_t yy_nxt;
+	};
+static yyconst flex_int16_t yy_accept[199] =
+    {   0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,   19,   19,    0,    0,   29,   29,   33,   33,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    5,    5,    7,    7,    0,    0,   57,   57,
+       59,   58,    1,    9,    2,   58,    3,   10,   10,   11,
+       11,   12,   12,   13,   13,   14,   14,   23,    1,    9,
+       21,   23,   19,   22,   20,   18,    3,   25,   24,   30,
+        1,    9,   30,   29,   30,   29,   28,   27,   26,   26,
+        3,   35,   33,   33,   34,   36,   32,   31,   31,   37,
+
+       38,   39,   39,   40,   45,    1,    9,   42,   45,   43,
+       44,   41,    3,   15,   15,   17,   16,   47,   46,   54,
+       54,   53,   52,   49,   48,   50,   50,   51,    5,    1,
+        2,    5,    3,    6,    7,    1,    8,    2,    7,    3,
+       57,   56,   55,    1,    4,   10,    4,   11,    4,   12,
+        4,   13,    4,   14,    4,   19,   18,   24,   29,   29,
+        0,   29,   29,   26,    0,   26,   33,    0,   33,   33,
+       31,    0,   31,   37,   39,    4,   41,   15,    4,   16,
+       46,   54,    4,   52,   48,   50,    4,    5,    1,    4,
+        7,    1,    4,   57,   55,   29,   33,    0
+
+    } ;
+
+static yyconst flex_int32_t yy_ec[256] =
+    {   0,
+        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    2,    1,    1,    4,    1,    1,    1,    1,    1,
+        1,    1,    5,    1,    6,    7,    8,    9,    9,    9,
+        9,    9,    9,    9,    9,    9,    9,   10,   11,   12,
+       13,   14,    1,    1,   15,   15,   15,   15,   16,   15,
+       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
+       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
+        1,    1,    1,    1,   15,    1,   15,   15,   15,   15,
+
+       16,   15,   15,   15,   15,   15,   15,   15,   15,   15,
+       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
+       15,   15,   17,    1,   18,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1
+    } ;
+
+static yyconst flex_int32_t yy_meta[19] =
+    {   0,
+        1,    2,    3,    4,    5,    5,    1,    1,    6,    1,
+        7,    1,    1,    1,    8,    8,    7,    9
+    } ;
+
+static yyconst flex_int16_t yy_base[237] =
+    {   0,
+        0,   16,   32,   49,   66,   83,  100,  117,  134,  151,
+      168,  185,  203,    0,  211,  217,  233,    0,  247,    0,
+      255,    0,  270,  287,  305,    0,  322,  339,    0,    0,
+      347,  353,  359,  365,  380,  397,  405,  411,  417,  423,
+      438,  455,  472,  489,  506,  522,    0,    0,    2,    6,
+       88,  842,   80,  842,  842,   73,  842,    0,   72,    0,
+       71,    0,   70,    0,   68,    0,   67,  842,   71,  842,
+      842,   64,   62,  842,  842,    0,  842,  842,    0,  842,
+       63,  842,   55,    5,   55,  533,  842,  842,    0,  545,
+      842,  842,    6,  555,  842,  842,  842,    0,  567,    0,
+
+      842,    0,   54,  842,  842,   59,  842,  842,   51,  842,
+      842,    0,  842,    0,   50,  842,    0,  842,    0,    0,
+       48,  842,    0,  842,    0,    0,   47,  842,    0,   52,
+        0,   40,    0,  842,    0,   45,  842,    0,   38,    0,
+        0,  842,    0,   43,  842,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,   35,    0,    0,    0,    7,
+       33,   16,    0,    0,   32,   30,   21,   20,   22,    0,
+        0,   19,   18,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,   24,    0,
+        0,   11,    0,    0,    0,    3,    2,  842,  583,  592,
+
+      601,  610,  619,  628,  637,  646,  655,  664,  673,  682,
+      691,  700,  708,  716,  724,  732,  735,  738,  741,  744,
+      747,  755,  758,  766,  769,  772,  780,  783,  786,  794,
+      802,  810,  819,  828,  833,  835
+    } ;
+
+static yyconst flex_int16_t yy_def[237] =
+    {   0,
+      199,  199,  200,  200,  201,  201,  202,  202,  203,  203,
+      204,  204,  198,   13,    2,    2,  198,   17,    2,   19,
+        2,   21,  205,  205,  198,   25,  206,  206,    2,    2,
+        2,    2,    2,    2,  207,  207,    2,    2,    2,    2,
+      208,  208,  209,  209,  210,  210,    2,    2,  211,  211,
+      198,  198,  198,  198,  198,  198,  198,  212,  212,  213,
+      213,  214,  214,  215,  215,  216,  216,  198,  198,  198,
+      198,  198,  198,  198,  198,  217,  198,  198,  218,  198,
+      198,  198,  198,  198,  198,  198,  198,  198,  219,  198,
+      198,  198,  198,  198,  198,  198,  198,  220,  198,  221,
+
+      198,  222,  222,  198,  198,  198,  198,  198,  198,  198,
+      198,  223,  198,  224,  224,  198,  225,  198,  226,  227,
+      227,  198,  228,  198,  229,  230,  230,  198,  231,  231,
+      231,  231,  231,  198,  232,  232,  198,  232,  232,  232,
+      233,  198,  234,  198,  198,  212,  212,  213,  213,  214,
+      214,  215,  215,  216,  216,  198,  217,  218,   86,  198,
+      235,  198,   86,  219,  198,  219,  198,  236,  198,   94,
+      220,  198,  220,  221,  222,  222,  223,  224,  224,  225,
+      226,  227,  227,  228,  229,  230,  230,  231,  231,  231,
+      232,  232,  232,  233,  234,  198,  198,    0,  198,  198,
+
+      198,  198,  198,  198,  198,  198,  198,  198,  198,  198,
+      198,  198,  198,  198,  198,  198,  198,  198,  198,  198,
+      198,  198,  198,  198,  198,  198,  198,  198,  198,  198,
+      198,  198,  198,  198,  198,  198
+    } ;
+
+static yyconst flex_int16_t yy_nxt[861] =
+    {   0,
+      198,   53,   54,   55,  142,  143,  198,   56,  142,  143,
+      197,  196,  192,  160,  167,  160,   57,   53,   54,   55,
+      161,  168,  161,   56,  160,  189,  173,  197,  197,  167,
+      167,  161,   57,   53,   54,   55,  168,  168,  166,   59,
+      196,  196,   52,  156,  144,  193,  192,  190,   57,   52,
+       53,   54,   55,  189,  187,  183,   59,  179,  145,   52,
+      144,  176,  145,  159,  144,   57,   52,   53,   54,   55,
+      156,  145,  144,   61,  155,  153,   52,  151,  149,  147,
+      145,  144,   57,   52,   53,   54,   55,  198,  198,  198,
+       61,  198,  198,   52,  198,  198,  198,  198,  198,   57,
+
+       52,   53,   54,   55,  198,  198,  198,   63,  198,  198,
+       52,  198,  198,  198,  198,  198,   57,   52,   53,   54,
+       55,  198,  198,  198,   63,  198,  198,   52,  198,  198,
+      198,  198,  198,   57,   52,   53,   54,   55,  198,  198,
+      198,   65,  198,  198,   52,  198,  198,  198,  198,  198,
+       57,   52,   53,   54,   55,  198,  198,  198,   65,  198,
+      198,   52,  198,  198,  198,  198,  198,   57,   52,   53,
+       54,   55,  198,  198,  198,   67,  198,  198,   52,  198,
+      198,  198,  198,  198,   57,   52,   53,   54,   55,  198,
+      198,  198,   67,  198,  198,   52,  198,  198,  198,  198,
+
+      198,   57,   52,   68,   69,   70,   55,   71,   68,   68,
+       72,   73,   68,   74,   68,   75,   68,   76,   76,   77,
+       68,   78,  198,  198,  198,   79,   79,   78,  198,  198,
+      198,   79,   79,   80,   81,   82,   55,   83,   83,   84,
+       85,   86,   80,   87,   80,   88,   80,   89,   90,   91,
+       80,   92,   92,   93,  198,   94,   95,  198,   96,   97,
+      198,   98,   99,  100,  198,  198,  198,  198,  101,  100,
+      100,   53,   54,   55,  198,  198,  198,  103,  198,  198,
+      104,  198,  198,  198,  198,  198,   57,   52,   53,   54,
+       55,  198,  198,  198,  103,  198,  198,  104,  198,  198,
+
+      198,  198,  198,   57,   52,  105,  106,  107,   55,  108,
+      105,  105,  109,  105,  110,  111,  105,  105,  105,  112,
+      112,  113,  105,   53,   54,   55,  198,  198,  198,  115,
+      198,  198,   52,  198,  198,  198,  198,  198,   57,   52,
+       53,   54,   55,  198,  198,  198,  115,  198,  198,   52,
+      198,  198,  198,  198,  198,   57,   52,  116,  198,  198,
+      198,  117,  117,  116,  198,  198,  198,  117,  117,  118,
+      198,  198,  198,  119,  119,  118,  198,  198,  198,  119,
+      119,   53,   54,   55,  198,  198,  198,  121,  198,  198,
+       52,  198,  198,  198,  198,  198,   57,   52,   53,   54,
+
+       55,  198,  198,  198,  121,  198,  198,   52,  198,  198,
+      198,  198,  198,   57,   52,  122,  198,  198,  198,  123,
+      123,  122,  198,  198,  198,  123,  123,  124,  198,  198,
+      198,  125,  125,  124,  198,  198,  198,  125,  125,   53,
+       54,   55,  198,  198,  198,  127,  198,  198,  128,  198,
+      198,  198,  198,  198,   57,   52,   53,   54,   55,  198,
+      198,  198,  127,  198,  198,  128,  198,  198,  198,  198,
+      198,   57,   52,  130,   54,  131,  198,  198,  198,  132,
+      198,  198,  198,  198,  198,  198,  198,  198,  133,  134,
+      130,   54,  131,  198,  198,  198,  132,  198,  198,  198,
+
+      198,  198,  198,  198,  198,  133,  134,  136,  137,  138,
+      198,  198,  198,  139,  198,  198,  198,  198,  198,  198,
+      198,  198,  140,  136,  137,  138,  198,  198,  198,  139,
+      198,  198,  198,  198,  198,  198,  198,  198,  140,  162,
+      198,  163,  198,  198,  198,  198,  198,  198,  161,  165,
+      165,  198,  198,  166,  198,  198,  198,  198,  198,  164,
+      164,  169,  198,  170,  198,  198,  198,  198,  198,  198,
+      168,  172,  172,  198,  198,  173,  198,  198,  198,  198,
+      198,  171,  171,   52,   52,   52,   52,   52,   52,   52,
+       52,   52,   58,   58,   58,   58,   58,   58,   58,   58,
+
+       58,   60,   60,   60,   60,   60,   60,   60,   60,   60,
+       62,   62,   62,   62,   62,   62,   62,   62,   62,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   66,   66,
+       66,   66,   66,   66,   66,   66,   66,  102,  102,  102,
+      102,  102,  102,  102,  102,  102,  114,  114,  114,  114,
+      114,  114,  114,  114,  114,  120,  120,  120,  120,  120,
+      120,  120,  120,  120,  126,  126,  126,  126,  126,  126,
+      126,  126,  126,  129,  129,  129,  129,  129,  129,  129,
+      129,  129,  135,  135,  135,  135,  135,  135,  135,  135,
+      135,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+
+      146,  198,  198,  198,  146,  146,  198,  146,  148,  198,
+      198,  198,  148,  148,  198,  148,  150,  198,  198,  198,
+      150,  150,  198,  150,  152,  198,  198,  198,  152,  152,
+      198,  152,  154,  198,  198,  198,  154,  154,  198,  154,
+      157,  198,  157,  158,  198,  158,  164,  198,  164,  171,
+      198,  171,  174,  198,  174,  175,  198,  198,  198,  175,
+      175,  198,  175,  177,  198,  177,  178,  198,  198,  198,
+      178,  178,  198,  178,  180,  198,  180,  181,  198,  181,
+      182,  198,  198,  198,  182,  182,  198,  182,  184,  198,
+      184,  185,  198,  185,  186,  198,  198,  198,  186,  186,
+
+      198,  186,  188,  188,  198,  188,  188,  188,  188,  188,
+      191,  191,  198,  191,  191,  191,  191,  191,  191,  194,
+      194,  198,  198,  194,  194,  194,  194,  194,  195,  198,
+      198,  195,  195,  195,  195,  195,  195,  165,  165,  172,
+      172,   51,  198,  198,  198,  198,  198,  198,  198,  198,
+      198,  198,  198,  198,  198,  198,  198,  198,  198,  198
+    } ;
+
+static yyconst flex_int16_t yy_chk[861] =
+    {   0,
+        0,    1,    1,    1,   49,   49,    0,    1,   50,   50,
+      197,  196,  192,   84,   93,  160,    1,    2,    2,    2,
+       84,   93,  160,    2,  162,  189,  173,  172,  168,  167,
+      169,  162,    2,    3,    3,    3,  167,  169,  166,    3,
+      165,  161,    3,  156,  144,  139,  136,  132,    3,    3,
+        4,    4,    4,  130,  127,  121,    4,  115,  109,    4,
+      106,  103,   85,   83,   81,    4,    4,    5,    5,    5,
+       73,   72,   69,    5,   67,   65,    5,   63,   61,   59,
+       56,   53,    5,    5,    6,    6,    6,   51,    0,    0,
+        6,    0,    0,    6,    0,    0,    0,    0,    0,    6,
+
+        6,    7,    7,    7,    0,    0,    0,    7,    0,    0,
+        7,    0,    0,    0,    0,    0,    7,    7,    8,    8,
+        8,    0,    0,    0,    8,    0,    0,    8,    0,    0,
+        0,    0,    0,    8,    8,    9,    9,    9,    0,    0,
+        0,    9,    0,    0,    9,    0,    0,    0,    0,    0,
+        9,    9,   10,   10,   10,    0,    0,    0,   10,    0,
+        0,   10,    0,    0,    0,    0,    0,   10,   10,   11,
+       11,   11,    0,    0,    0,   11,    0,    0,   11,    0,
+        0,    0,    0,    0,   11,   11,   12,   12,   12,    0,
+        0,    0,   12,    0,    0,   12,    0,    0,    0,    0,
+
+        0,   12,   12,   13,   13,   13,   13,   13,   13,   13,
+       13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
+       13,   15,    0,    0,    0,   15,   15,   16,    0,    0,
+        0,   16,   16,   17,   17,   17,   17,   17,   17,   17,
+       17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
+       17,   19,   19,   19,    0,   19,   19,    0,   19,   19,
+        0,   19,   19,   21,    0,    0,    0,    0,   21,   21,
+       21,   23,   23,   23,    0,    0,    0,   23,    0,    0,
+       23,    0,    0,    0,    0,    0,   23,   23,   24,   24,
+       24,    0,    0,    0,   24,    0,    0,   24,    0,    0,
+
+        0,    0,    0,   24,   24,   25,   25,   25,   25,   25,
+       25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
+       25,   25,   25,   27,   27,   27,    0,    0,    0,   27,
+        0,    0,   27,    0,    0,    0,    0,    0,   27,   27,
+       28,   28,   28,    0,    0,    0,   28,    0,    0,   28,
+        0,    0,    0,    0,    0,   28,   28,   31,    0,    0,
+        0,   31,   31,   32,    0,    0,    0,   32,   32,   33,
+        0,    0,    0,   33,   33,   34,    0,    0,    0,   34,
+       34,   35,   35,   35,    0,    0,    0,   35,    0,    0,
+       35,    0,    0,    0,    0,    0,   35,   35,   36,   36,
+
+       36,    0,    0,    0,   36,    0,    0,   36,    0,    0,
+        0,    0,    0,   36,   36,   37,    0,    0,    0,   37,
+       37,   38,    0,    0,    0,   38,   38,   39,    0,    0,
+        0,   39,   39,   40,    0,    0,    0,   40,   40,   41,
+       41,   41,    0,    0,    0,   41,    0,    0,   41,    0,
+        0,    0,    0,    0,   41,   41,   42,   42,   42,    0,
+        0,    0,   42,    0,    0,   42,    0,    0,    0,    0,
+        0,   42,   42,   43,   43,   43,    0,    0,    0,   43,
+        0,    0,    0,    0,    0,    0,    0,    0,   43,   43,
+       44,   44,   44,    0,    0,    0,   44,    0,    0,    0,
+
+        0,    0,    0,    0,    0,   44,   44,   45,   45,   45,
+        0,    0,    0,   45,    0,    0,    0,    0,    0,    0,
+        0,    0,   45,   46,   46,   46,    0,    0,    0,   46,
+        0,    0,    0,    0,    0,    0,    0,    0,   46,   86,
+        0,   86,    0,    0,    0,    0,    0,    0,   86,   90,
+       90,    0,    0,   90,    0,    0,    0,    0,    0,   90,
+       90,   94,    0,   94,    0,    0,    0,    0,    0,    0,
+       94,   99,   99,    0,    0,   99,    0,    0,    0,    0,
+        0,   99,   99,  199,  199,  199,  199,  199,  199,  199,
+      199,  199,  200,  200,  200,  200,  200,  200,  200,  200,
+
+      200,  201,  201,  201,  201,  201,  201,  201,  201,  201,
+      202,  202,  202,  202,  202,  202,  202,  202,  202,  203,
+      203,  203,  203,  203,  203,  203,  203,  203,  204,  204,
+      204,  204,  204,  204,  204,  204,  204,  205,  205,  205,
+      205,  205,  205,  205,  205,  205,  206,  206,  206,  206,
+      206,  206,  206,  206,  206,  207,  207,  207,  207,  207,
+      207,  207,  207,  207,  208,  208,  208,  208,  208,  208,
+      208,  208,  208,  209,  209,  209,  209,  209,  209,  209,
+      209,  209,  210,  210,  210,  210,  210,  210,  210,  210,
+      210,  211,  211,  211,  211,  211,  211,  211,  211,  211,
+
+      212,    0,    0,    0,  212,  212,    0,  212,  213,    0,
+        0,    0,  213,  213,    0,  213,  214,    0,    0,    0,
+      214,  214,    0,  214,  215,    0,    0,    0,  215,  215,
+        0,  215,  216,    0,    0,    0,  216,  216,    0,  216,
+      217,    0,  217,  218,    0,  218,  219,    0,  219,  220,
+        0,  220,  221,    0,  221,  222,    0,    0,    0,  222,
+      222,    0,  222,  223,    0,  223,  224,    0,    0,    0,
+      224,  224,    0,  224,  225,    0,  225,  226,    0,  226,
+      227,    0,    0,    0,  227,  227,    0,  227,  228,    0,
+      228,  229,    0,  229,  230,    0,    0,    0,  230,  230,
+
+        0,  230,  231,  231,    0,  231,  231,  231,  231,  231,
+      232,  232,    0,  232,  232,  232,  232,  232,  232,  233,
+      233,    0,    0,  233,  233,  233,  233,  233,  234,    0,
+        0,  234,  234,  234,  234,  234,  234,  235,  235,  236,
+      236,  198,  198,  198,  198,  198,  198,  198,  198,  198,
+      198,  198,  198,  198,  198,  198,  198,  198,  198,  198
+    } ;
+
+static yy_state_type yy_last_accepting_state;
+static char *yy_last_accepting_cpos;
+
+extern int yy_flex_debug;
+int yy_flex_debug = 0;
+
+/* The intent behind this definition is that it'll catch
+ * any uses of REJECT which flex missed.
+ */
+#define REJECT reject_used_but_not_detected
+#define yymore() yymore_used_but_not_detected
+#define YY_MORE_ADJ 0
+#define YY_RESTORE_YY_MORE_OFFSET
+char *yytext;
+#line 1 "scan.l"
+/******************************************************************************
+
+  KPP - The Kinetic PreProcessor
+        Builds simulation code for chemical kinetic systems
+
+  Copyright (C) 1995-1996 Valeriu Damian and Adrian Sandu
+  Copyright (C) 1997-2005 Adrian Sandu
+
+  KPP is free software; you can redistribute it and/or modify it under the
+  terms of the GNU General Public License as published by the Free Software
+  Foundation (http://www.gnu.org/copyleft/gpl.html); either version 2 of the
+  License, or (at your option) any later version.
+
+  KPP is distributed in the hope that it will be useful, but WITHOUT ANY
+  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+  FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+  details.
+
+  You should have received a copy of the GNU General Public License along
+  with this program; if not, consult http://www.gnu.org/copyleft/gpl.html or
+  write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+  Boston, MA  02111-1307,  USA.
+
+  Adrian Sandu
+  Computer Science Department
+  Virginia Polytechnic Institute and State University
+  Blacksburg, VA 24060
+  E-mail: sandu@cs.vt.edu
+
+******************************************************************************/
+/******************************************************************************
+  bug fixes for upgrading from yacc to bison implemented by Rolf Sander,
+  following suggestions from Jason Lander <jason@env.leeds.ac.uk>
+******************************************************************************/
+ 
+ 
+ 
+
+
+
+#line 45 "scan.l"
+  #include <string.h> /* strcpy, strlen */
+  #include "gdata.h" 
+  #include "scan.h" 
+  #include "y.tab.h"
+
+  void Include ( char * filename );
+  int EndInclude();
+
+  int crt_line_no = 1;
+  char *crt_filename;
+
+  #define MAX_INCLUDE 10
+  
+  YY_BUFFER_STATE yy_buffers[ MAX_INCLUDE ];
+  int yy_line_no[ MAX_INCLUDE ];
+  char *yy_filename[ MAX_INCLUDE ];
+  int yy_buf_level = 0;
+  
+  char crtToken[100];
+  char nextToken[100];
+  int crtTokType;
+  int nextTokType;
+  int crtLine;
+  char crtFile[100];
+  char crt_rate[100];
+
+  int oldnErr = 0;
+
+  int idx;
+  int oldstate;
+  extern int yyerrflag;
+
+  typedef struct {
+                   char *name;
+                   int next;
+                   int cmd; 
+                 } KEYWORD;
+
+  KEYWORD keywords[];
+
+  int CheckKeyword( char *cmd );
+
+#define RETURN( x ) \
+        if(1) { \
+          if ( yyerrflag == 0) { \
+            strcpy( crtToken, nextToken ); \
+            crtTokType = nextTokType; \
+            crtLine = crt_line_no; \
+            strcpy( crtFile, crt_filename ); \
+          } \
+          strcpy( nextToken, yytext); \
+          nextTokType = x; \
+          return (x); \
+        }
+#line 804 "lex.yy.c"
+
+#define INITIAL 0
+#define CMD_STATE 1
+#define INC_STATE 2
+#define MOD_STATE 3
+#define INT_STATE 4
+#define PRM_STATE 5
+#define DSP_STATE 6
+#define SSP_STATE 7
+#define INI_STATE 8
+#define EQN_STATE 9
+#define EQNTAG_STATE 10
+#define RATE_STATE 11
+#define LMP_STATE 12
+#define CR_IGNORE 13
+#define SC_IGNORE 14
+#define ATM_STATE 15
+#define LKT_STATE 16
+#define INL_STATE 17
+#define MNI_STATE 18
+#define TPT_STATE 19
+#define USE_STATE 20
+#define COMMENT 21
+#define COMMENT2 22
+#define EQN_ID 23
+#define INL_CODE 24
+
+#ifndef YY_NO_UNISTD_H
+/* Special case for "unistd.h", since it is non-ANSI. We include it way
+ * down here because we want the user's section 1 to have been scanned first.
+ * The user has a chance to override it with an option.
+ */
+#include <unistd.h>
+#endif
+
+#ifndef YY_EXTRA_TYPE
+#define YY_EXTRA_TYPE void *
+#endif
+
+static int yy_init_globals (void );
+
+/* Accessor methods to globals.
+   These are made visible to non-reentrant scanners for convenience. */
+
+int yylex_destroy (void );
+
+int yyget_debug (void );
+
+void yyset_debug (int debug_flag  );
+
+YY_EXTRA_TYPE yyget_extra (void );
+
+void yyset_extra (YY_EXTRA_TYPE user_defined  );
+
+FILE *yyget_in (void );
+
+void yyset_in  (FILE * in_str  );
+
+FILE *yyget_out (void );
+
+void yyset_out  (FILE * out_str  );
+
+yy_size_t yyget_leng (void );
+
+char *yyget_text (void );
+
+int yyget_lineno (void );
+
+void yyset_lineno (int line_number  );
+
+/* Macros after this point can all be overridden by user definitions in
+ * section 1.
+ */
+
+#ifndef YY_SKIP_YYWRAP
+#ifdef __cplusplus
+extern "C" int yywrap (void );
+#else
+extern int yywrap (void );
+#endif
+#endif
+
+    static void yyunput (int c,char *buf_ptr  );
+    
+#ifndef yytext_ptr
+static void yy_flex_strncpy (char *,yyconst char *,int );
+#endif
+
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen (yyconst char * );
+#endif
+
+#ifndef YY_NO_INPUT
+
+#ifdef __cplusplus
+static int yyinput (void );
+#else
+static int input (void );
+#endif
+
+#endif
+
+/* Amount of stuff to slurp up with each read. */
+#ifndef YY_READ_BUF_SIZE
+#define YY_READ_BUF_SIZE 8192
+#endif
+
+/* Copy whatever the last rule matched to the standard output. */
+#ifndef ECHO
+/* This used to be an fputs(), but since the string might contain NUL's,
+ * we now use fwrite().
+ */
+#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
+#endif
+
+/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
+ * is returned in "result".
+ */
+#ifndef YY_INPUT
+#define YY_INPUT(buf,result,max_size) \
+	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
+		{ \
+		int c = '*'; \
+		size_t n; \
+		for ( n = 0; n < max_size && \
+			     (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
+			buf[n] = (char) c; \
+		if ( c == '\n' ) \
+			buf[n++] = (char) c; \
+		if ( c == EOF && ferror( yyin ) ) \
+			YY_FATAL_ERROR( "input in flex scanner failed" ); \
+		result = n; \
+		} \
+	else \
+		{ \
+		errno=0; \
+		while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
+			{ \
+			if( errno != EINTR) \
+				{ \
+				YY_FATAL_ERROR( "input in flex scanner failed" ); \
+				break; \
+				} \
+			errno=0; \
+			clearerr(yyin); \
+			} \
+		}\
+\
+
+#endif
+
+/* No semi-colon after return; correct usage is to write "yyterminate();" -
+ * we don't want an extra ';' after the "return" because that will cause
+ * some compilers to complain about unreachable statements.
+ */
+#ifndef yyterminate
+#define yyterminate() return YY_NULL
+#endif
+
+/* Number of entries by which start-condition stack grows. */
+#ifndef YY_START_STACK_INCR
+#define YY_START_STACK_INCR 25
+#endif
+
+/* Report a fatal error. */
+#ifndef YY_FATAL_ERROR
+#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
+#endif
+
+/* end tables serialization structures and prototypes */
+
+/* Default declaration of generated scanner - a define so the user can
+ * easily add parameters.
+ */
+#ifndef YY_DECL
+#define YY_DECL_IS_OURS 1
+
+extern int yylex (void);
+
+#define YY_DECL int yylex (void)
+#endif /* !YY_DECL */
+
+/* Code executed at the beginning of each rule, after yytext and yyleng
+ * have been set up.
+ */
+#ifndef YY_USER_ACTION
+#define YY_USER_ACTION
+#endif
+
+/* Code executed at the end of each rule. */
+#ifndef YY_BREAK
+#define YY_BREAK break;
+#endif
+
+#define YY_RULE_SETUP \
+	YY_USER_ACTION
+
+/** The main scanner function which does all the work.
+ */
+YY_DECL
+{
+	register yy_state_type yy_current_state;
+	register char *yy_cp, *yy_bp;
+	register int yy_act;
+    
+#line 120 "scan.l"
+
+#line 1012 "lex.yy.c"
+
+	if ( !(yy_init) )
+		{
+		(yy_init) = 1;
+
+#ifdef YY_USER_INIT
+		YY_USER_INIT;
+#endif
+
+		if ( ! (yy_start) )
+			(yy_start) = 1;	/* first start state */
+
+		if ( ! yyin )
+			yyin = stdin;
+
+		if ( ! yyout )
+			yyout = stdout;
+
+		if ( ! YY_CURRENT_BUFFER ) {
+			yyensure_buffer_stack ();
+			YY_CURRENT_BUFFER_LVALUE =
+				yy_create_buffer(yyin,YY_BUF_SIZE );
+		}
+
+		yy_load_buffer_state( );
+		}
+
+	while ( 1 )		/* loops until end-of-file is reached */
+		{
+		yy_cp = (yy_c_buf_p);
+
+		/* Support of yytext. */
+		*yy_cp = (yy_hold_char);
+
+		/* yy_bp points to the position in yy_ch_buf of the start of
+		 * the current run.
+		 */
+		yy_bp = yy_cp;
+
+		yy_current_state = (yy_start);
+yy_match:
+		do
+			{
+			register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
+			if ( yy_accept[yy_current_state] )
+				{
+				(yy_last_accepting_state) = yy_current_state;
+				(yy_last_accepting_cpos) = yy_cp;
+				}
+			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
+				{
+				yy_current_state = (int) yy_def[yy_current_state];
+				if ( yy_current_state >= 199 )
+					yy_c = yy_meta[(unsigned int) yy_c];
+				}
+			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
+			++yy_cp;
+			}
+		while ( yy_base[yy_current_state] != 842 );
+
+yy_find_action:
+		yy_act = yy_accept[yy_current_state];
+		if ( yy_act == 0 )
+			{ /* have to back up */
+			yy_cp = (yy_last_accepting_cpos);
+			yy_current_state = (yy_last_accepting_state);
+			yy_act = yy_accept[yy_current_state];
+			}
+
+		YY_DO_BEFORE_ACTION;
+
+do_action:	/* This label is used only to access EOF actions. */
+
+		switch ( yy_act )
+	{ /* beginning of action switch */
+			case 0: /* must back up */
+			/* undo the effects of YY_DO_BEFORE_ACTION */
+			*yy_cp = (yy_hold_char);
+			yy_cp = (yy_last_accepting_cpos);
+			yy_current_state = (yy_last_accepting_state);
+			goto yy_find_action;
+
+case 1:
+YY_RULE_SETUP
+#line 121 "scan.l"
+{
+                        }  
+	YY_BREAK
+case 2:
+YY_RULE_SETUP
+#line 123 "scan.l"
+{ BEGIN CMD_STATE; 
+                        }
+	YY_BREAK
+case 3:
+YY_RULE_SETUP
+#line 125 "scan.l"
+{ oldstate = (yy_start - 1) / 2;
+                          BEGIN COMMENT;
+			}
+	YY_BREAK
+case 4:
+YY_RULE_SETUP
+#line 128 "scan.l"
+{ oldstate = (yy_start - 1) / 2;
+                          BEGIN COMMENT2;
+                        }
+	YY_BREAK
+case 5:
+YY_RULE_SETUP
+#line 131 "scan.l"
+{
+                        } 
+	YY_BREAK
+case 6:
+YY_RULE_SETUP
+#line 133 "scan.l"
+{ BEGIN oldstate;
+                        }    
+	YY_BREAK
+case 7:
+YY_RULE_SETUP
+#line 135 "scan.l"
+{
+                        } 
+	YY_BREAK
+case 8:
+/* rule 8 can match eol */
+YY_RULE_SETUP
+#line 137 "scan.l"
+{ crt_line_no++; 
+			  BEGIN oldstate;
+                        }    
+	YY_BREAK
+case 9:
+/* rule 9 can match eol */
+YY_RULE_SETUP
+#line 140 "scan.l"
+{ crt_line_no++; 
+                        }
+	YY_BREAK
+case 10:
+YY_RULE_SETUP
+#line 142 "scan.l"
+{ idx = CheckKeyword( yytext );
+                          if ( idx < 0 ) { 
+                            BEGIN CR_IGNORE;
+                            break; 
+                          } 
+                          BEGIN keywords[idx].next;
+                          if ( keywords[idx].cmd ) {
+                            crt_section = keywords[idx].cmd;
+                            RETURN( keywords[idx].cmd );
+                          }
+                        } 
+	YY_BREAK
+case 11:
+YY_RULE_SETUP
+#line 153 "scan.l"
+{ Include( IncName(yytext) );
+                          BEGIN CR_IGNORE;
+                        } 
+	YY_BREAK
+case 12:
+YY_RULE_SETUP
+#line 156 "scan.l"
+{ Include( ModelName(yytext) );
+                          BEGIN CR_IGNORE;
+                        } 
+	YY_BREAK
+case 13:
+YY_RULE_SETUP
+#line 159 "scan.l"
+{ Include( IntegName(yytext) );
+                          BEGIN CR_IGNORE;
+                        } 
+	YY_BREAK
+case 14:
+YY_RULE_SETUP
+#line 162 "scan.l"
+{ strcpy( yylval.str, yytext );
+                          BEGIN CR_IGNORE;                         
+                          RETURN( PARAMETER ); 
+                        }
+	YY_BREAK
+case 15:
+YY_RULE_SETUP
+#line 166 "scan.l"
+{ ScanError("Extra parameter on command line '%s'", yytext);
+                        }
+	YY_BREAK
+case 16:
+YY_RULE_SETUP
+#line 168 "scan.l"
+{ strcpy( yylval.str, yytext );
+                          RETURN( ATOMID );
+                        }
+	YY_BREAK
+case 17:
+YY_RULE_SETUP
+#line 171 "scan.l"
+{ RETURN( yytext[0] );
+                        } 
+	YY_BREAK
+case 18:
+YY_RULE_SETUP
+#line 173 "scan.l"
+{ strcpy( yylval.str, yytext );
+                          RETURN( SPCSPC );
+                        }
+	YY_BREAK
+case 19:
+YY_RULE_SETUP
+#line 176 "scan.l"
+{ strcpy( yylval.str, yytext );
+                          RETURN( SPCNR );
+                        }
+	YY_BREAK
+case 20:
+YY_RULE_SETUP
+#line 179 "scan.l"
+{ RETURN( SPCEQUAL );
+                        } 
+	YY_BREAK
+case 21:
+YY_RULE_SETUP
+#line 181 "scan.l"
+{ RETURN( SPCPLUS );
+                        } 
+	YY_BREAK
+case 22:
+YY_RULE_SETUP
+#line 183 "scan.l"
+{ RETURN( yytext[0] );
+                        } 
+	YY_BREAK
+case 23:
+/* rule 23 can match eol */
+YY_RULE_SETUP
+#line 185 "scan.l"
+{ ScanError("Invalid character '%c' in species definition", yytext[0] );
+                        }
+	YY_BREAK
+case 24:
+YY_RULE_SETUP
+#line 187 "scan.l"
+{ strcpy( yylval.str, yytext );
+                          RETURN( SSPID );
+                        }
+	YY_BREAK
+case 25:
+YY_RULE_SETUP
+#line 190 "scan.l"
+{ RETURN( yytext[0] );
+                        } 
+	YY_BREAK
+case 26:
+YY_RULE_SETUP
+#line 192 "scan.l"
+{ strcpy( yylval.str, yytext );
+                          RETURN( INISPC ); 
+                        } 
+	YY_BREAK
+case 27:
+YY_RULE_SETUP
+#line 195 "scan.l"
+{ RETURN( INIEQUAL );
+                        } 
+	YY_BREAK
+case 28:
+YY_RULE_SETUP
+#line 197 "scan.l"
+{ RETURN( yytext[0] );
+                        } 
+	YY_BREAK
+case 29:
+YY_RULE_SETUP
+#line 199 "scan.l"
+{ strcpy( yylval.str, yytext );
+                          RETURN( INIVALUE ); 
+                        } 
+	YY_BREAK
+case 30:
+/* rule 30 can match eol */
+YY_RULE_SETUP
+#line 202 "scan.l"
+{ ScanError("Invalid character '%c' in initial values", yytext[0] );
+                        }
+	YY_BREAK
+case 31:
+YY_RULE_SETUP
+#line 204 "scan.l"
+{ strcpy( yylval.str, yytext );
+                          RETURN( EQNSPC );
+                        } 
+	YY_BREAK
+case 32:
+YY_RULE_SETUP
+#line 207 "scan.l"
+{ RETURN( EQNEQUAL );
+                        } 
+	YY_BREAK
+case 33:
+YY_RULE_SETUP
+#line 209 "scan.l"
+{ strcpy( yylval.str, yytext );
+                          RETURN( EQNCOEF ); 
+                        } 
+	YY_BREAK
+case 34:
+YY_RULE_SETUP
+#line 212 "scan.l"
+{ BEGIN RATE_STATE;
+                          *crt_rate = 0;
+                          RETURN( EQNCOLON );
+                        } 
+	YY_BREAK
+case 35:
+YY_RULE_SETUP
+#line 216 "scan.l"
+{ strcpy( yylval.str, yytext );
+                          RETURN( EQNSIGN );
+                        } 
+	YY_BREAK
+case 36:
+YY_RULE_SETUP
+#line 219 "scan.l"
+{ BEGIN EQNTAG_STATE;
+                          RETURN( EQNLESS );
+			}
+	YY_BREAK
+case 37:
+YY_RULE_SETUP
+#line 222 "scan.l"
+{ strcpy( yylval.str, yytext );
+                          RETURN( EQNTAG );
+                        } 
+	YY_BREAK
+case 38:
+YY_RULE_SETUP
+#line 225 "scan.l"
+{ BEGIN EQN_STATE;
+                          RETURN( EQNGREATER );
+                        }    
+	YY_BREAK
+case 39:
+YY_RULE_SETUP
+#line 228 "scan.l"
+{ strcpy( yylval.str, yytext );
+                          RETURN( RATE );
+                        } 
+	YY_BREAK
+case 40:
+YY_RULE_SETUP
+#line 231 "scan.l"
+{ BEGIN EQN_STATE;
+                          RETURN( yytext[0] );
+                        } 
+	YY_BREAK
+case 41:
+YY_RULE_SETUP
+#line 234 "scan.l"
+{ strcpy( yylval.str, yytext );
+                          RETURN( LMPSPC );
+                        }
+	YY_BREAK
+case 42:
+YY_RULE_SETUP
+#line 237 "scan.l"
+{ RETURN( LMPPLUS );
+                        } 
+	YY_BREAK
+case 43:
+YY_RULE_SETUP
+#line 239 "scan.l"
+{ RETURN( LMPCOLON );
+                        } 
+	YY_BREAK
+case 44:
+YY_RULE_SETUP
+#line 241 "scan.l"
+{ RETURN( yytext[0] );
+                        } 
+	YY_BREAK
+case 45:
+/* rule 45 can match eol */
+YY_RULE_SETUP
+#line 243 "scan.l"
+{ ScanError("Invalid character '%c' in species definition", yytext[0] );
+                        }
+	YY_BREAK
+case 46:
+YY_RULE_SETUP
+#line 245 "scan.l"
+{ strcpy( yylval.str, yytext );
+                          RETURN( LKTID );
+                        }
+	YY_BREAK
+case 47:
+YY_RULE_SETUP
+#line 248 "scan.l"
+{ RETURN( yytext[0] );
+                        } 
+	YY_BREAK
+case 48:
+YY_RULE_SETUP
+#line 250 "scan.l"
+{ strcpy( yylval.str, yytext );
+                          RETURN( TPTID );
+                        }
+	YY_BREAK
+case 49:
+YY_RULE_SETUP
+#line 253 "scan.l"
+{ RETURN( yytext[0] );
+                        } 
+	YY_BREAK
+case 50:
+YY_RULE_SETUP
+#line 255 "scan.l"
+{ strcpy( yylval.str, yytext );
+                          RETURN( USEID );
+                        }
+	YY_BREAK
+case 51:
+YY_RULE_SETUP
+#line 258 "scan.l"
+{ RETURN( yytext[0] );
+                        } 
+	YY_BREAK
+case 52:
+YY_RULE_SETUP
+#line 260 "scan.l"
+{ strcpy( yylval.str, yytext );
+                          RETURN( MNIID );
+                        }
+	YY_BREAK
+case 53:
+YY_RULE_SETUP
+#line 263 "scan.l"
+{ RETURN( yytext[0] );
+                        } 
+	YY_BREAK
+case 54:
+YY_RULE_SETUP
+#line 265 "scan.l"
+{ strcpy( yylval.str, yytext );
+                          BEGIN INL_CODE;
+			  RETURN( INLCTX );
+			}
+	YY_BREAK
+case 55:
+YY_RULE_SETUP
+#line 269 "scan.l"
+{ if ( EqNoCase( yytext+1, "ENDINLINE" ) ){
+                            BEGIN INITIAL;
+                            RETURN( ENDINLINE );
+			  }
+			  else {
+                            strcpy( yylval.str, yytext );
+                            RETURN( INCODE );
+			  }
+			}
+	YY_BREAK
+case 56:
+/* rule 56 can match eol */
+YY_RULE_SETUP
+#line 278 "scan.l"
+{ crt_line_no++;
+			  strcpy( yylval.str,yytext );
+			  RETURN( INCODE );
+			}
+	YY_BREAK
+case 57:
+YY_RULE_SETUP
+#line 282 "scan.l"
+{ strcpy( yylval.str,yytext );
+		          RETURN( INCODE );
+			}
+	YY_BREAK
+case YY_STATE_EOF(INITIAL):
+case YY_STATE_EOF(CMD_STATE):
+case YY_STATE_EOF(INC_STATE):
+case YY_STATE_EOF(MOD_STATE):
+case YY_STATE_EOF(INT_STATE):
+case YY_STATE_EOF(PRM_STATE):
+case YY_STATE_EOF(DSP_STATE):
+case YY_STATE_EOF(SSP_STATE):
+case YY_STATE_EOF(INI_STATE):
+case YY_STATE_EOF(EQN_STATE):
+case YY_STATE_EOF(EQNTAG_STATE):
+case YY_STATE_EOF(RATE_STATE):
+case YY_STATE_EOF(LMP_STATE):
+case YY_STATE_EOF(CR_IGNORE):
+case YY_STATE_EOF(SC_IGNORE):
+case YY_STATE_EOF(ATM_STATE):
+case YY_STATE_EOF(LKT_STATE):
+case YY_STATE_EOF(INL_STATE):
+case YY_STATE_EOF(MNI_STATE):
+case YY_STATE_EOF(TPT_STATE):
+case YY_STATE_EOF(USE_STATE):
+case YY_STATE_EOF(COMMENT):
+case YY_STATE_EOF(COMMENT2):
+case YY_STATE_EOF(EQN_ID):
+case YY_STATE_EOF(INL_CODE):
+#line 285 "scan.l"
+{ if ( ! EndInclude() ) {
+                            RETURN( INITIAL );
+                          }
+                        }  
+	YY_BREAK
+case 58:
+YY_RULE_SETUP
+#line 289 "scan.l"
+ECHO;
+	YY_BREAK
+#line 1529 "lex.yy.c"
+
+	case YY_END_OF_BUFFER:
+		{
+		/* Amount of text matched not including the EOB char. */
+		int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
+
+		/* Undo the effects of YY_DO_BEFORE_ACTION. */
+		*yy_cp = (yy_hold_char);
+		YY_RESTORE_YY_MORE_OFFSET
+
+		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
+			{
+			/* We're scanning a new file or input source.  It's
+			 * possible that this happened because the user
+			 * just pointed yyin at a new source and called
+			 * yylex().  If so, then we have to assure
+			 * consistency between YY_CURRENT_BUFFER and our
+			 * globals.  Here is the right place to do so, because
+			 * this is the first action (other than possibly a
+			 * back-up) that will match for the new input source.
+			 */
+			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+			YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
+			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
+			}
+
+		/* Note that here we test for yy_c_buf_p "<=" to the position
+		 * of the first EOB in the buffer, since yy_c_buf_p will
+		 * already have been incremented past the NUL character
+		 * (since all states make transitions on EOB to the
+		 * end-of-buffer state).  Contrast this with the test
+		 * in input().
+		 */
+		if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
+			{ /* This was really a NUL. */
+			yy_state_type yy_next_state;
+
+			(yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
+
+			yy_current_state = yy_get_previous_state(  );
+
+			/* Okay, we're now positioned to make the NUL
+			 * transition.  We couldn't have
+			 * yy_get_previous_state() go ahead and do it
+			 * for us because it doesn't know how to deal
+			 * with the possibility of jamming (and we don't
+			 * want to build jamming into it because then it
+			 * will run more slowly).
+			 */
+
+			yy_next_state = yy_try_NUL_trans( yy_current_state );
+
+			yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+
+			if ( yy_next_state )
+				{
+				/* Consume the NUL. */
+				yy_cp = ++(yy_c_buf_p);
+				yy_current_state = yy_next_state;
+				goto yy_match;
+				}
+
+			else
+				{
+				yy_cp = (yy_c_buf_p);
+				goto yy_find_action;
+				}
+			}
+
+		else switch ( yy_get_next_buffer(  ) )
+			{
+			case EOB_ACT_END_OF_FILE:
+				{
+				(yy_did_buffer_switch_on_eof) = 0;
+
+				if ( yywrap( ) )
+					{
+					/* Note: because we've taken care in
+					 * yy_get_next_buffer() to have set up
+					 * yytext, we can now set up
+					 * yy_c_buf_p so that if some total
+					 * hoser (like flex itself) wants to
+					 * call the scanner after we return the
+					 * YY_NULL, it'll still work - another
+					 * YY_NULL will get returned.
+					 */
+					(yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
+
+					yy_act = YY_STATE_EOF(YY_START);
+					goto do_action;
+					}
+
+				else
+					{
+					if ( ! (yy_did_buffer_switch_on_eof) )
+						YY_NEW_FILE;
+					}
+				break;
+				}
+
+			case EOB_ACT_CONTINUE_SCAN:
+				(yy_c_buf_p) =
+					(yytext_ptr) + yy_amount_of_matched_text;
+
+				yy_current_state = yy_get_previous_state(  );
+
+				yy_cp = (yy_c_buf_p);
+				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+				goto yy_match;
+
+			case EOB_ACT_LAST_MATCH:
+				(yy_c_buf_p) =
+				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
+
+				yy_current_state = yy_get_previous_state(  );
+
+				yy_cp = (yy_c_buf_p);
+				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+				goto yy_find_action;
+			}
+		break;
+		}
+
+	default:
+		YY_FATAL_ERROR(
+			"fatal flex scanner internal error--no action found" );
+	} /* end of action switch */
+		} /* end of scanning one token */
+} /* end of yylex */
+
+/* yy_get_next_buffer - try to read in a new buffer
+ *
+ * Returns a code representing an action:
+ *	EOB_ACT_LAST_MATCH -
+ *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
+ *	EOB_ACT_END_OF_FILE - end of file
+ */
+static int yy_get_next_buffer (void)
+{
+    	register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
+	register char *source = (yytext_ptr);
+	register int number_to_move, i;
+	int ret_val;
+
+	if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
+		YY_FATAL_ERROR(
+		"fatal flex scanner internal error--end of buffer missed" );
+
+	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
+		{ /* Don't try to fill the buffer, so this is an EOF. */
+		if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
+			{
+			/* We matched a single character, the EOB, so
+			 * treat this as a final EOF.
+			 */
+			return EOB_ACT_END_OF_FILE;
+			}
+
+		else
+			{
+			/* We matched some text prior to the EOB, first
+			 * process it.
+			 */
+			return EOB_ACT_LAST_MATCH;
+			}
+		}
+
+	/* Try to read more data. */
+
+	/* First move last chars to start of buffer. */
+	number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
+
+	for ( i = 0; i < number_to_move; ++i )
+		*(dest++) = *(source++);
+
+	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
+		/* don't do the read, it's not guaranteed to return an EOF,
+		 * just force an EOF
+		 */
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
+
+	else
+		{
+			yy_size_t num_to_read =
+			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
+
+		while ( num_to_read <= 0 )
+			{ /* Not enough room in the buffer - grow it. */
+
+			/* just a shorter name for the current buffer */
+			YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
+
+			int yy_c_buf_p_offset =
+				(int) ((yy_c_buf_p) - b->yy_ch_buf);
+
+			if ( b->yy_is_our_buffer )
+				{
+				yy_size_t new_size = b->yy_buf_size * 2;
+
+				if ( new_size <= 0 )
+					b->yy_buf_size += b->yy_buf_size / 8;
+				else
+					b->yy_buf_size *= 2;
+
+				b->yy_ch_buf = (char *)
+					/* Include room in for 2 EOB chars. */
+					yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
+				}
+			else
+				/* Can't grow it, we don't own it. */
+				b->yy_ch_buf = 0;
+
+			if ( ! b->yy_ch_buf )
+				YY_FATAL_ERROR(
+				"fatal error - scanner input buffer overflow" );
+
+			(yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
+
+			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
+						number_to_move - 1;
+
+			}
+
+		if ( num_to_read > YY_READ_BUF_SIZE )
+			num_to_read = YY_READ_BUF_SIZE;
+
+		/* Read in more data. */
+		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
+			(yy_n_chars), num_to_read );
+
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	if ( (yy_n_chars) == 0 )
+		{
+		if ( number_to_move == YY_MORE_ADJ )
+			{
+			ret_val = EOB_ACT_END_OF_FILE;
+			yyrestart(yyin  );
+			}
+
+		else
+			{
+			ret_val = EOB_ACT_LAST_MATCH;
+			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
+				YY_BUFFER_EOF_PENDING;
+			}
+		}
+
+	else
+		ret_val = EOB_ACT_CONTINUE_SCAN;
+
+	if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
+		/* Extend the array by 50%, plus the number we really need. */
+		yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
+		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
+		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
+			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
+	}
+
+	(yy_n_chars) += number_to_move;
+	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
+	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
+
+	(yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
+
+	return ret_val;
+}
+
+/* yy_get_previous_state - get the state just before the EOB char was reached */
+
+    static yy_state_type yy_get_previous_state (void)
+{
+	register yy_state_type yy_current_state;
+	register char *yy_cp;
+    
+	yy_current_state = (yy_start);
+
+	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
+		{
+		register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
+		if ( yy_accept[yy_current_state] )
+			{
+			(yy_last_accepting_state) = yy_current_state;
+			(yy_last_accepting_cpos) = yy_cp;
+			}
+		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
+			{
+			yy_current_state = (int) yy_def[yy_current_state];
+			if ( yy_current_state >= 199 )
+				yy_c = yy_meta[(unsigned int) yy_c];
+			}
+		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
+		}
+
+	return yy_current_state;
+}
+
+/* yy_try_NUL_trans - try to make a transition on the NUL character
+ *
+ * synopsis
+ *	next_state = yy_try_NUL_trans( current_state );
+ */
+    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
+{
+	register int yy_is_jam;
+    	register char *yy_cp = (yy_c_buf_p);
+
+	register YY_CHAR yy_c = 1;
+	if ( yy_accept[yy_current_state] )
+		{
+		(yy_last_accepting_state) = yy_current_state;
+		(yy_last_accepting_cpos) = yy_cp;
+		}
+	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
+		{
+		yy_current_state = (int) yy_def[yy_current_state];
+		if ( yy_current_state >= 199 )
+			yy_c = yy_meta[(unsigned int) yy_c];
+		}
+	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
+	yy_is_jam = (yy_current_state == 198);
+
+		return yy_is_jam ? 0 : yy_current_state;
+}
+
+    static void yyunput (int c, register char * yy_bp )
+{
+	register char *yy_cp;
+    
+    yy_cp = (yy_c_buf_p);
+
+	/* undo effects of setting up yytext */
+	*yy_cp = (yy_hold_char);
+
+	if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
+		{ /* need to shift things up to make room */
+		/* +2 for EOB chars. */
+		register yy_size_t number_to_move = (yy_n_chars) + 2;
+		register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
+					YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
+		register char *source =
+				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
+
+		while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
+			*--dest = *--source;
+
+		yy_cp += (int) (dest - source);
+		yy_bp += (int) (dest - source);
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
+			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
+
+		if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
+			YY_FATAL_ERROR( "flex scanner push-back overflow" );
+		}
+
+	*--yy_cp = (char) c;
+
+	(yytext_ptr) = yy_bp;
+	(yy_hold_char) = *yy_cp;
+	(yy_c_buf_p) = yy_cp;
+}
+
+#ifndef YY_NO_INPUT
+#ifdef __cplusplus
+    static int yyinput (void)
+#else
+    static int input  (void)
+#endif
+
+{
+	int c;
+    
+	*(yy_c_buf_p) = (yy_hold_char);
+
+	if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
+		{
+		/* yy_c_buf_p now points to the character we want to return.
+		 * If this occurs *before* the EOB characters, then it's a
+		 * valid NUL; if not, then we've hit the end of the buffer.
+		 */
+		if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
+			/* This was really a NUL. */
+			*(yy_c_buf_p) = '\0';
+
+		else
+			{ /* need more input */
+			yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
+			++(yy_c_buf_p);
+
+			switch ( yy_get_next_buffer(  ) )
+				{
+				case EOB_ACT_LAST_MATCH:
+					/* This happens because yy_g_n_b()
+					 * sees that we've accumulated a
+					 * token and flags that we need to
+					 * try matching the token before
+					 * proceeding.  But for input(),
+					 * there's no matching to consider.
+					 * So convert the EOB_ACT_LAST_MATCH
+					 * to EOB_ACT_END_OF_FILE.
+					 */
+
+					/* Reset buffer status. */
+					yyrestart(yyin );
+
+					/*FALLTHROUGH*/
+
+				case EOB_ACT_END_OF_FILE:
+					{
+					if ( yywrap( ) )
+						return EOF;
+
+					if ( ! (yy_did_buffer_switch_on_eof) )
+						YY_NEW_FILE;
+#ifdef __cplusplus
+					return yyinput();
+#else
+					return input();
+#endif
+					}
+
+				case EOB_ACT_CONTINUE_SCAN:
+					(yy_c_buf_p) = (yytext_ptr) + offset;
+					break;
+				}
+			}
+		}
+
+	c = *(unsigned char *) (yy_c_buf_p);	/* cast for 8-bit char's */
+	*(yy_c_buf_p) = '\0';	/* preserve yytext */
+	(yy_hold_char) = *++(yy_c_buf_p);
+
+	return c;
+}
+#endif	/* ifndef YY_NO_INPUT */
+
+/** Immediately switch to a different input stream.
+ * @param input_file A readable stream.
+ * 
+ * @note This function does not reset the start condition to @c INITIAL .
+ */
+    void yyrestart  (FILE * input_file )
+{
+    
+	if ( ! YY_CURRENT_BUFFER ){
+        yyensure_buffer_stack ();
+		YY_CURRENT_BUFFER_LVALUE =
+            yy_create_buffer(yyin,YY_BUF_SIZE );
+	}
+
+	yy_init_buffer(YY_CURRENT_BUFFER,input_file );
+	yy_load_buffer_state( );
+}
+
+/** Switch to a different input buffer.
+ * @param new_buffer The new input buffer.
+ * 
+ */
+    void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
+{
+    
+	/* TODO. We should be able to replace this entire function body
+	 * with
+	 *		yypop_buffer_state();
+	 *		yypush_buffer_state(new_buffer);
+     */
+	yyensure_buffer_stack ();
+	if ( YY_CURRENT_BUFFER == new_buffer )
+		return;
+
+	if ( YY_CURRENT_BUFFER )
+		{
+		/* Flush out information for old buffer. */
+		*(yy_c_buf_p) = (yy_hold_char);
+		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	YY_CURRENT_BUFFER_LVALUE = new_buffer;
+	yy_load_buffer_state( );
+
+	/* We don't actually know whether we did this switch during
+	 * EOF (yywrap()) processing, but the only time this flag
+	 * is looked at is after yywrap() is called, so it's safe
+	 * to go ahead and always set it.
+	 */
+	(yy_did_buffer_switch_on_eof) = 1;
+}
+
+static void yy_load_buffer_state  (void)
+{
+    	(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+	(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
+	yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
+	(yy_hold_char) = *(yy_c_buf_p);
+}
+
+/** Allocate and initialize an input buffer state.
+ * @param file A readable stream.
+ * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
+ * 
+ * @return the allocated buffer state.
+ */
+    YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
+{
+	YY_BUFFER_STATE b;
+    
+	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
+	if ( ! b )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+	b->yy_buf_size = size;
+
+	/* yy_ch_buf has to be 2 characters longer than the size given because
+	 * we need to put in 2 end-of-buffer characters.
+	 */
+	b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2  );
+	if ( ! b->yy_ch_buf )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+	b->yy_is_our_buffer = 1;
+
+	yy_init_buffer(b,file );
+
+	return b;
+}
+
+/** Destroy the buffer.
+ * @param b a buffer created with yy_create_buffer()
+ * 
+ */
+    void yy_delete_buffer (YY_BUFFER_STATE  b )
+{
+    
+	if ( ! b )
+		return;
+
+	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
+		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
+
+	if ( b->yy_is_our_buffer )
+		yyfree((void *) b->yy_ch_buf  );
+
+	yyfree((void *) b  );
+}
+
+/* Initializes or reinitializes a buffer.
+ * This function is sometimes called more than once on the same buffer,
+ * such as during a yyrestart() or at EOF.
+ */
+    static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
+
+{
+	int oerrno = errno;
+    
+	yy_flush_buffer(b );
+
+	b->yy_input_file = file;
+	b->yy_fill_buffer = 1;
+
+    /* If b is the current buffer, then yy_init_buffer was _probably_
+     * called from yyrestart() or through yy_get_next_buffer.
+     * In that case, we don't want to reset the lineno or column.
+     */
+    if (b != YY_CURRENT_BUFFER){
+        b->yy_bs_lineno = 1;
+        b->yy_bs_column = 0;
+    }
+
+        b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
+    
+	errno = oerrno;
+}
+
+/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
+ * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
+ * 
+ */
+    void yy_flush_buffer (YY_BUFFER_STATE  b )
+{
+    	if ( ! b )
+		return;
+
+	b->yy_n_chars = 0;
+
+	/* We always need two end-of-buffer characters.  The first causes
+	 * a transition to the end-of-buffer state.  The second causes
+	 * a jam in that state.
+	 */
+	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
+	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
+
+	b->yy_buf_pos = &b->yy_ch_buf[0];
+
+	b->yy_at_bol = 1;
+	b->yy_buffer_status = YY_BUFFER_NEW;
+
+	if ( b == YY_CURRENT_BUFFER )
+		yy_load_buffer_state( );
+}
+
+/** Pushes the new state onto the stack. The new state becomes
+ *  the current state. This function will allocate the stack
+ *  if necessary.
+ *  @param new_buffer The new state.
+ *  
+ */
+void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
+{
+    	if (new_buffer == NULL)
+		return;
+
+	yyensure_buffer_stack();
+
+	/* This block is copied from yy_switch_to_buffer. */
+	if ( YY_CURRENT_BUFFER )
+		{
+		/* Flush out information for old buffer. */
+		*(yy_c_buf_p) = (yy_hold_char);
+		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	/* Only push if top exists. Otherwise, replace top. */
+	if (YY_CURRENT_BUFFER)
+		(yy_buffer_stack_top)++;
+	YY_CURRENT_BUFFER_LVALUE = new_buffer;
+
+	/* copied from yy_switch_to_buffer. */
+	yy_load_buffer_state( );
+	(yy_did_buffer_switch_on_eof) = 1;
+}
+
+/** Removes and deletes the top of the stack, if present.
+ *  The next element becomes the new top.
+ *  
+ */
+void yypop_buffer_state (void)
+{
+    	if (!YY_CURRENT_BUFFER)
+		return;
+
+	yy_delete_buffer(YY_CURRENT_BUFFER );
+	YY_CURRENT_BUFFER_LVALUE = NULL;
+	if ((yy_buffer_stack_top) > 0)
+		--(yy_buffer_stack_top);
+
+	if (YY_CURRENT_BUFFER) {
+		yy_load_buffer_state( );
+		(yy_did_buffer_switch_on_eof) = 1;
+	}
+}
+
+/* Allocates the stack if it does not exist.
+ *  Guarantees space for at least one push.
+ */
+static void yyensure_buffer_stack (void)
+{
+	yy_size_t num_to_alloc;
+    
+	if (!(yy_buffer_stack)) {
+
+		/* First allocation is just for 2 elements, since we don't know if this
+		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
+		 * immediate realloc on the next call.
+         */
+		num_to_alloc = 1;
+		(yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
+								(num_to_alloc * sizeof(struct yy_buffer_state*)
+								);
+		if ( ! (yy_buffer_stack) )
+			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
+								  
+		memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
+				
+		(yy_buffer_stack_max) = num_to_alloc;
+		(yy_buffer_stack_top) = 0;
+		return;
+	}
+
+	if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
+
+		/* Increase the buffer to prepare for a possible push. */
+		int grow_size = 8 /* arbitrary grow size */;
+
+		num_to_alloc = (yy_buffer_stack_max) + grow_size;
+		(yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
+								((yy_buffer_stack),
+								num_to_alloc * sizeof(struct yy_buffer_state*)
+								);
+		if ( ! (yy_buffer_stack) )
+			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
+
+		/* zero only the new slots.*/
+		memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
+		(yy_buffer_stack_max) = num_to_alloc;
+	}
+}
+
+/** Setup the input buffer state to scan directly from a user-specified character buffer.
+ * @param base the character buffer
+ * @param size the size in bytes of the character buffer
+ * 
+ * @return the newly allocated buffer state object. 
+ */
+YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
+{
+	YY_BUFFER_STATE b;
+    
+	if ( size < 2 ||
+	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
+	     base[size-1] != YY_END_OF_BUFFER_CHAR )
+		/* They forgot to leave room for the EOB's. */
+		return 0;
+
+	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
+	if ( ! b )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
+
+	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
+	b->yy_buf_pos = b->yy_ch_buf = base;
+	b->yy_is_our_buffer = 0;
+	b->yy_input_file = 0;
+	b->yy_n_chars = b->yy_buf_size;
+	b->yy_is_interactive = 0;
+	b->yy_at_bol = 1;
+	b->yy_fill_buffer = 0;
+	b->yy_buffer_status = YY_BUFFER_NEW;
+
+	yy_switch_to_buffer(b  );
+
+	return b;
+}
+
+/** Setup the input buffer state to scan a string. The next call to yylex() will
+ * scan from a @e copy of @a str.
+ * @param yystr a NUL-terminated string to scan
+ * 
+ * @return the newly allocated buffer state object.
+ * @note If you want to scan bytes that may contain NUL values, then use
+ *       yy_scan_bytes() instead.
+ */
+YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
+{
+    
+	return yy_scan_bytes(yystr,strlen(yystr) );
+}
+
+/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
+ * scan from a @e copy of @a bytes.
+ * @param yybytes the byte buffer to scan
+ * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
+ * 
+ * @return the newly allocated buffer state object.
+ */
+YY_BUFFER_STATE yy_scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
+{
+	YY_BUFFER_STATE b;
+	char *buf;
+	yy_size_t n;
+	int i;
+    
+	/* Get memory for full buffer, including space for trailing EOB's. */
+	n = _yybytes_len + 2;
+	buf = (char *) yyalloc(n  );
+	if ( ! buf )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
+
+	for ( i = 0; i < _yybytes_len; ++i )
+		buf[i] = yybytes[i];
+
+	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
+
+	b = yy_scan_buffer(buf,n );
+	if ( ! b )
+		YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
+
+	/* It's okay to grow etc. this buffer, and we should throw it
+	 * away when we're done.
+	 */
+	b->yy_is_our_buffer = 1;
+
+	return b;
+}
+
+#ifndef YY_EXIT_FAILURE
+#define YY_EXIT_FAILURE 2
+#endif
+
+static void yy_fatal_error (yyconst char* msg )
+{
+    	(void) fprintf( stderr, "%s\n", msg );
+	exit( YY_EXIT_FAILURE );
+}
+
+/* Redefine yyless() so it works in section 3 code. */
+
+#undef yyless
+#define yyless(n) \
+	do \
+		{ \
+		/* Undo effects of setting up yytext. */ \
+        int yyless_macro_arg = (n); \
+        YY_LESS_LINENO(yyless_macro_arg);\
+		yytext[yyleng] = (yy_hold_char); \
+		(yy_c_buf_p) = yytext + yyless_macro_arg; \
+		(yy_hold_char) = *(yy_c_buf_p); \
+		*(yy_c_buf_p) = '\0'; \
+		yyleng = yyless_macro_arg; \
+		} \
+	while ( 0 )
+
+/* Accessor  methods (get/set functions) to struct members. */
+
+/** Get the current line number.
+ * 
+ */
+int yyget_lineno  (void)
+{
+        
+    return yylineno;
+}
+
+/** Get the input stream.
+ * 
+ */
+FILE *yyget_in  (void)
+{
+        return yyin;
+}
+
+/** Get the output stream.
+ * 
+ */
+FILE *yyget_out  (void)
+{
+        return yyout;
+}
+
+/** Get the length of the current token.
+ * 
+ */
+yy_size_t yyget_leng  (void)
+{
+        return yyleng;
+}
+
+/** Get the current token.
+ * 
+ */
+
+char *yyget_text  (void)
+{
+        return yytext;
+}
+
+/** Set the current line number.
+ * @param line_number
+ * 
+ */
+void yyset_lineno (int  line_number )
+{
+    
+    yylineno = line_number;
+}
+
+/** Set the input stream. This does not discard the current
+ * input buffer.
+ * @param in_str A readable stream.
+ * 
+ * @see yy_switch_to_buffer
+ */
+void yyset_in (FILE *  in_str )
+{
+        yyin = in_str ;
+}
+
+void yyset_out (FILE *  out_str )
+{
+        yyout = out_str ;
+}
+
+int yyget_debug  (void)
+{
+        return yy_flex_debug;
+}
+
+void yyset_debug (int  bdebug )
+{
+        yy_flex_debug = bdebug ;
+}
+
+static int yy_init_globals (void)
+{
+        /* Initialization is the same as for the non-reentrant scanner.
+     * This function is called from yylex_destroy(), so don't allocate here.
+     */
+
+    (yy_buffer_stack) = 0;
+    (yy_buffer_stack_top) = 0;
+    (yy_buffer_stack_max) = 0;
+    (yy_c_buf_p) = (char *) 0;
+    (yy_init) = 0;
+    (yy_start) = 0;
+
+/* Defined in main.c */
+#ifdef YY_STDINIT
+    yyin = stdin;
+    yyout = stdout;
+#else
+    yyin = (FILE *) 0;
+    yyout = (FILE *) 0;
+#endif
+
+    /* For future reference: Set errno on error, since we are called by
+     * yylex_init()
+     */
+    return 0;
+}
+
+/* yylex_destroy is for both reentrant and non-reentrant scanners. */
+int yylex_destroy  (void)
+{
+    
+    /* Pop the buffer stack, destroying each element. */
+	while(YY_CURRENT_BUFFER){
+		yy_delete_buffer(YY_CURRENT_BUFFER  );
+		YY_CURRENT_BUFFER_LVALUE = NULL;
+		yypop_buffer_state();
+	}
+
+	/* Destroy the stack itself. */
+	yyfree((yy_buffer_stack) );
+	(yy_buffer_stack) = NULL;
+
+    /* Reset the globals. This is important in a non-reentrant scanner so the next time
+     * yylex() is called, initialization will occur. */
+    yy_init_globals( );
+
+    return 0;
+}
+
+/*
+ * Internal utility routines.
+ */
+
+#ifndef yytext_ptr
+static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
+{
+	register int i;
+	for ( i = 0; i < n; ++i )
+		s1[i] = s2[i];
+}
+#endif
+
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen (yyconst char * s )
+{
+	register int n;
+	for ( n = 0; s[n]; ++n )
+		;
+
+	return n;
+}
+#endif
+
+void *yyalloc (yy_size_t  size )
+{
+	return (void *) malloc( size );
+}
+
+void *yyrealloc  (void * ptr, yy_size_t  size )
+{
+	/* The cast to (char *) in the following accommodates both
+	 * implementations that use char* generic pointers, and those
+	 * that use void* generic pointers.  It works with the latter
+	 * because both ANSI C and C++ allow castless assignment from
+	 * any pointer type to void*, and deal with argument conversions
+	 * as though doing an assignment.
+	 */
+	return (void *) realloc( (char *) ptr, size );
+}
+
+void yyfree (void * ptr )
+{
+	free( (char *) ptr );	/* see yyrealloc() for (char *) cast */
+}
+
+#define YYTABLES_NAME "yytables"
+
+#line 289 "scan.l"
+
+
+
+  KEYWORD keywords[] = { { "INCLUDE",    INC_STATE, 0 },
+                         { "MODEL",      MOD_STATE, 0 },
+                         { "INTEGRATOR", INT_STATE, 0 },
+                         { "JACOBIAN",   PRM_STATE, JACOBIAN }, 
+                         { "HESSIAN",    PRM_STATE, HESSIAN }, 
+                         { "DECLARE",    PRM_STATE, DECLARE }, 
+                         { "STOICMAT",   PRM_STATE, STOICMAT }, 
+                         { "STOCHASTIC", PRM_STATE, STOCHASTIC }, 
+                         { "DOUBLE",     PRM_STATE, DOUBLE }, 
+                         { "REORDER",    PRM_STATE, REORDER }, 
+                         { "MEX",        PRM_STATE, MEX }, 
+                         { "DUMMYINDEX", PRM_STATE, DUMMYINDEX}, 
+                         { "EQNTAGS",    PRM_STATE, EQNTAGS}, 
+                         { "FUNCTION",   PRM_STATE, FUNCTION }, 
+                         { "ATOMS",      ATM_STATE, ATOMDECL },   
+                         { "CHECK",      ATM_STATE, CHECK },
+                         { "CHECKALL",   INITIAL,   CHECKALL },
+                         { "DEFVAR",     DSP_STATE, DEFVAR }, 
+                         { "DEFRAD",     DSP_STATE, DEFVAR }, 
+                         { "DEFFIX",     DSP_STATE, DEFFIX }, 
+                         { "SETVAR",     SSP_STATE, SETVAR }, 
+                         { "SETRAD",     SSP_STATE, SETVAR }, 
+                         { "SETFIX",     SSP_STATE, SETFIX }, 
+                         { "INITVALUES", INI_STATE, INITVALUES }, 
+                         { "EQUATIONS",  EQN_STATE, EQUATIONS }, 
+                         { "LUMP",       LMP_STATE, LUMP }, 
+                         { "LOOKAT", 	 LKT_STATE, LOOKAT },
+                         { "LOOKATALL",  INITIAL,   LOOKATALL },
+                         { "TRANSPORT",  TPT_STATE, TRANSPORT },
+                         { "TRANSPORTALL", INITIAL,   TRANSPORTALL },
+                         { "INITIALIZE", PRM_STATE, INITIALIZE },
+                         { "XGRID",  	 PRM_STATE, XGRID },
+                         { "YGRID",  	 PRM_STATE, YGRID },
+                         { "ZGRID",  	 PRM_STATE, ZGRID },
+                         { "MONITOR", 	 MNI_STATE, MONITOR },
+                         { "WRITE_ATM",  INITIAL,   WRITE_ATM },
+                         { "WRITE_SPC",  INITIAL,   WRITE_SPC },
+                         { "WRITE_MAT",  INITIAL,   WRITE_MAT },
+                         { "WRITE_OPT",  INITIAL,   WRITE_OPT },
+                         { "USE",        PRM_STATE, USE },
+                         { "LANGUAGE",   PRM_STATE, LANGUAGE },
+                         { "INLINE",     INL_STATE, INLINE },
+                         { "ENDINLINE",  INITIAL,   ENDINLINE },
+                         { "INTFILE",    PRM_STATE, INTFILE },
+                         { "DRIVER",     PRM_STATE, DRIVER },
+                         { "RUN",        PRM_STATE, RUN },
+                         { "USES",       USE_STATE, USES },
+                         { "SPARSEDATA", PRM_STATE, SPARSEDATA },
+                         { 0, 0, 0 } 
+                       };
+
+void Include ( char * name )
+{
+FILE *f;
+YY_BUFFER_STATE newb;
+
+  if ( yy_buf_level == MAX_INCLUDE ) {
+    printf("\nInclude nested too deep. Include %s ignored", name);
+    return;
+  }
+
+  yy_buffers[ yy_buf_level ]  = YY_CURRENT_BUFFER;
+  yy_line_no[ yy_buf_level ]  = crt_line_no;
+  yy_filename[ yy_buf_level ] = crt_filename;
+  yy_buf_level++;
+  
+  crt_line_no = 1;  
+
+  crt_filename = malloc( 1 + strlen( name ) );
+  strcpy( crt_filename, name ); 
+
+ 
+  f = fopen( name, "r" );
+  if( f == 0 )
+    FatalError(3,"%s: Can't read file", name );
+
+  newb = yy_create_buffer(f,YY_BUF_SIZE);
+  yy_switch_to_buffer(newb );
+}
+
+int EndInclude()
+{
+YY_BUFFER_STATE oldb;
+char * oldn;
+
+  if ( yy_buf_level > 0 ) {
+    oldb = YY_CURRENT_BUFFER;
+    oldn = crt_filename; 
+    yy_buf_level--;
+    yy_switch_to_buffer(yy_buffers[yy_buf_level] );
+    crt_line_no = yy_line_no[ yy_buf_level ];
+    crt_filename = yy_filename[ yy_buf_level ]; 
+    yy_delete_buffer(oldb ); 
+    free( oldn );
+    return 1;
+  } 
+  return 0;
+}
+
+int EqNoCase( char *s1, char *s2 )
+{
+  while( *s1 ) {
+    if ( toupper(*s1++) != toupper(*s2++) ) return 0;
+  }
+  return *s1 == *s2;
+}
+
+int CheckKeyword( char *cmd )
+{
+int i;
+
+  i = 0;
+  while( 1 ) {
+    if( keywords[i].name == 0 ) {
+      ScanError( "'%s': Unknown command (ignored)", cmd);
+      return -1;
+    }
+    if( EqNoCase( cmd, keywords[i].name ) ) {
+      return i;
+    }
+    i++;
+  }
+}
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/src/scan.h
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/src/scan.h	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/src/scan.h	(revision 2696)
@@ -0,0 +1,103 @@
+/******************************************************************************
+
+  KPP - The Kinetic PreProcessor
+        Builds simulation code for chemical kinetic systems
+
+  Copyright (C) 1995-1996 Valeriu Damian and Adrian Sandu
+  Copyright (C) 1997-2005 Adrian Sandu
+
+  KPP is free software; you can redistribute it and/or modify it under the
+  terms of the GNU General Public License as published by the Free Software
+  Foundation (http://www.gnu.org/copyleft/gpl.html); either version 2 of the
+  License, or (at your option) any later version.
+
+  KPP is distributed in the hope that it will be useful, but WITHOUT ANY
+  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+  FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+  details.
+
+  You should have received a copy of the GNU General Public License along
+  with this program; if not, consult http://www.gnu.org/copyleft/gpl.html or
+  write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+  Boston, MA  02111-1307,  USA.
+
+  Adrian Sandu
+  Computer Science Department
+  Virginia Polytechnic Institute and State University
+  Blacksburg, VA 24060
+  E-mail: sandu@cs.vt.edu
+
+******************************************************************************/
+
+
+
+#ifndef _SCAN_H_
+#define _SCAN_H_
+
+#include <stdio.h>
+#include "gdef.h"
+
+/*  mz_rs_20050518+ value increased */
+#define MAX_INLINE 10000
+/* #define MAX_INLINE 4000 */
+/*  mz_rs_20050518- */
+          
+enum eq_state { LHS, RHS, RAT };
+enum sptypes { DUMMY_SPC, VAR_SPC, RAD_SPC, FIX_SPC };
+enum atomcheck { NO_CHECK, DO_CHECK, CANCEL_CHECK };
+enum codetype { APPEND, REPLACE };
+
+typedef struct {
+                 int key;
+                 int type;
+                 char * kname;
+               } INLINE_KEY;
+
+extern int eqState;
+extern int isPhoto;
+extern int crt_line_no;
+extern char *crt_filename;
+extern int crtLine;
+extern char crtFile[];
+extern char crtToken[];
+extern char nextToken[];
+extern int crtTokType;
+extern int nextTokType;
+extern int nError;
+extern int nWarning;
+extern int crt_section;
+
+int Parser( char * filename );  
+void ScanError( char *fmt, ...  );
+void ParserError( char *fmt, ...  );
+void ScanWarning( char *fmt, ...  );
+void ParserWarning( char *fmt, ...  );
+void Error( char *fmt, ...  );
+void Warning( char *fmt, ...  );
+void Message( char *fmt, ...  );
+void FatalError( int status, char *fmt, ... );
+
+void DeclareAtom( char *atname );
+void SetAtomType( char *atname, int type );
+void AddAtom( char *atname, char *nr );
+void DeclareSpecies( int type, char* spname );
+void SetSpcType( int type, char *spname );
+void AssignInitialValue( char *spname , char *spval ); 
+void StoreEquationRate( char *rate, char *label );
+void CheckEquation(); 
+void ProcessTerm( int side, char *sign, char *coef, char *spname  );
+void AddLumpSpecies( char *spname );
+void CheckLump( char *spname );
+void AddLookAt( char *spname );
+void AddMonitor( char *spname );
+void AddTransport( char *spname );
+
+void WriteAtoms();
+void WriteSpecies();
+void WriteMatrices();
+void WriteOptions();
+
+char * AppendString( char * s1, char * s2, int * len, int addlen );
+void AddInlineCode( char * context, char * code );
+
+#endif
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/src/scan.l
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/src/scan.l	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/src/scan.l	(revision 2696)
@@ -0,0 +1,414 @@
+/******************************************************************************
+
+  KPP - The Kinetic PreProcessor
+        Builds simulation code for chemical kinetic systems
+
+  Copyright (C) 1995-1996 Valeriu Damian and Adrian Sandu
+  Copyright (C) 1997-2005 Adrian Sandu
+
+  KPP is free software; you can redistribute it and/or modify it under the
+  terms of the GNU General Public License as published by the Free Software
+  Foundation (http://www.gnu.org/copyleft/gpl.html); either version 2 of the
+  License, or (at your option) any later version.
+
+  KPP is distributed in the hope that it will be useful, but WITHOUT ANY
+  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+  FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+  details.
+
+  You should have received a copy of the GNU General Public License along
+  with this program; if not, consult http://www.gnu.org/copyleft/gpl.html or
+  write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+  Boston, MA  02111-1307,  USA.
+
+  Adrian Sandu
+  Computer Science Department
+  Virginia Polytechnic Institute and State University
+  Blacksburg, VA 24060
+  E-mail: sandu@cs.vt.edu
+
+******************************************************************************/
+
+/******************************************************************************
+  bug fixes for upgrading from yacc to bison implemented by Rolf Sander,
+  following suggestions from Jason Lander <jason@env.leeds.ac.uk>
+******************************************************************************/
+
+%s CMD_STATE INC_STATE MOD_STATE INT_STATE 
+%s PRM_STATE DSP_STATE SSP_STATE INI_STATE EQN_STATE EQNTAG_STATE 
+%s RATE_STATE LMP_STATE CR_IGNORE SC_IGNORE ATM_STATE LKT_STATE INL_STATE 
+%s MNI_STATE TPT_STATE USE_STATE
+%s COMMENT COMMENT2 EQN_ID
+%x INL_CODE
+
+%{
+  #include <string.h> /* strcpy, strlen */
+  #include "gdata.h" 
+  #include "scan.h" 
+  #include "y.tab.h"
+
+  void Include ( char * filename );
+  int EndInclude();
+
+  int crt_line_no = 1;
+  char *crt_filename;
+
+  #define MAX_INCLUDE 10
+  
+  YY_BUFFER_STATE yy_buffers[ MAX_INCLUDE ];
+  int yy_line_no[ MAX_INCLUDE ];
+  char *yy_filename[ MAX_INCLUDE ];
+  int yy_buf_level = 0;
+  
+  char crtToken[100];
+  char nextToken[100];
+  int crtTokType;
+  int nextTokType;
+  int crtLine;
+  char crtFile[100];
+  char crt_rate[100];
+
+  int oldnErr = 0;
+
+  int idx;
+  int oldstate;
+  extern int yyerrflag;
+
+  typedef struct {
+                   char *name;
+                   int next;
+                   int cmd; 
+                 } KEYWORD;
+
+  KEYWORD keywords[];
+
+  int CheckKeyword( char *cmd );
+
+#define RETURN( x ) \
+        if(1) { \
+          if ( yyerrflag == 0) { \
+            strcpy( crtToken, nextToken ); \
+            crtTokType = nextTokType; \
+            crtLine = crt_line_no; \
+            strcpy( crtFile, crt_filename ); \
+          } \
+          strcpy( nextToken, yytext); \
+          nextTokType = x; \
+          return (x); \
+        }
+%}
+
+
+BT    	[ \t]
+SPACE 	[ \t]
+CR      [\n] 
+TAG     [a-zA-Z_0-9]+
+STRING 	[^ \t\n{}#;]+
+
+LIT   	[a-zA-Z_]
+CIF   	[0-9]
+
+IDSPC   {LIT}[a-zA-Z_0-9]*
+
+NR  	{CIF}*
+NRS 	[+-]?{CIF}+
+REAL  	{NRS}?"."?{NR}
+UREAL  	{NR}?"."?{NR}
+FLOAT   {REAL}([eE]{NRS})?
+UFLOAT  {UREAL}([eE]{NRS})?
+
+%%
+{SPACE}+                {
+                        }  
+#		        { BEGIN CMD_STATE; 
+                        }
+\{                      { oldstate = (yy_start - 1) / 2;
+                          BEGIN COMMENT;
+			}
+\/\/                    { oldstate = (yy_start - 1) / 2;
+                          BEGIN COMMENT2;
+                        }
+<COMMENT>[^\}\n]*       {
+                        } 
+<COMMENT>\}             { BEGIN oldstate;
+                        }    
+<COMMENT2>[^\n]*        {
+                        } 
+<COMMENT2>{CR}          { crt_line_no++; 
+			  BEGIN oldstate;
+                        }    
+{CR}			{ crt_line_no++; 
+                        }
+<CMD_STATE>{STRING}     { idx = CheckKeyword( yytext );
+                          if ( idx < 0 ) { 
+                            BEGIN CR_IGNORE;
+                            break; 
+                          } 
+                          BEGIN keywords[idx].next;
+                          if ( keywords[idx].cmd ) {
+                            crt_section = keywords[idx].cmd;
+                            RETURN( keywords[idx].cmd );
+                          }
+                        } 
+<INC_STATE>{STRING}     { Include( IncName(yytext) );
+                          BEGIN CR_IGNORE;
+                        } 
+<MOD_STATE>{STRING}     { Include( ModelName(yytext) );
+                          BEGIN CR_IGNORE;
+                        } 
+<INT_STATE>{STRING}     { Include( IntegName(yytext) );
+                          BEGIN CR_IGNORE;
+                        } 
+<PRM_STATE>{STRING}     { strcpy( yylval.str, yytext );
+                          BEGIN CR_IGNORE;                         
+                          RETURN( PARAMETER ); 
+                        }
+<CR_IGNORE>{STRING}     { ScanError("Extra parameter on command line '%s'", yytext);
+                        }
+<ATM_STATE>{IDSPC}      { strcpy( yylval.str, yytext );
+                          RETURN( ATOMID );
+                        }
+<ATM_STATE>;            { RETURN( yytext[0] );
+                        } 
+<DSP_STATE>{IDSPC}      { strcpy( yylval.str, yytext );
+                          RETURN( SPCSPC );
+                        }
+<DSP_STATE>{NR}         { strcpy( yylval.str, yytext );
+                          RETURN( SPCNR );
+                        }
+<DSP_STATE>[=]          { RETURN( SPCEQUAL );
+                        } 
+<DSP_STATE>[+]          { RETURN( SPCPLUS );
+                        } 
+<DSP_STATE>;            { RETURN( yytext[0] );
+                        } 
+<DSP_STATE>[^;#]        { ScanError("Invalid character '%c' in species definition", yytext[0] );
+                        }
+<SSP_STATE>{IDSPC}      { strcpy( yylval.str, yytext );
+                          RETURN( SSPID );
+                        }
+<SSP_STATE>;            { RETURN( yytext[0] );
+                        } 
+<INI_STATE>{IDSPC}      { strcpy( yylval.str, yytext );
+                          RETURN( INISPC ); 
+                        } 
+<INI_STATE>[=]          { RETURN( INIEQUAL );
+                        } 
+<INI_STATE>;            { RETURN( yytext[0] );
+                        } 
+<INI_STATE>{FLOAT}      { strcpy( yylval.str, yytext );
+                          RETURN( INIVALUE ); 
+                        } 
+<INI_STATE>[^=;#]       { ScanError("Invalid character '%c' in initial values", yytext[0] );
+                        }
+<EQN_STATE>{IDSPC}      { strcpy( yylval.str, yytext );
+                          RETURN( EQNSPC );
+                        } 
+<EQN_STATE>[=]          { RETURN( EQNEQUAL );
+                        } 
+<EQN_STATE>{UFLOAT}     { strcpy( yylval.str, yytext );
+                          RETURN( EQNCOEF ); 
+                        } 
+<EQN_STATE>[:]          { BEGIN RATE_STATE;
+                          *crt_rate = 0;
+                          RETURN( EQNCOLON );
+                        } 
+<EQN_STATE>[+-]         { strcpy( yylval.str, yytext );
+                          RETURN( EQNSIGN );
+                        } 
+<EQN_STATE>[<]          { BEGIN EQNTAG_STATE;
+                          RETURN( EQNLESS );
+			}
+<EQNTAG_STATE>{TAG}     { strcpy( yylval.str, yytext );
+                          RETURN( EQNTAG );
+                        } 
+<EQNTAG_STATE>[>]       { BEGIN EQN_STATE;
+                          RETURN( EQNGREATER );
+                        }    
+<RATE_STATE>{STRING}    { strcpy( yylval.str, yytext );
+                          RETURN( RATE );
+                        } 
+<RATE_STATE>;           { BEGIN EQN_STATE;
+                          RETURN( yytext[0] );
+                        } 
+<LMP_STATE>{IDSPC}      { strcpy( yylval.str, yytext );
+                          RETURN( LMPSPC );
+                        }
+<LMP_STATE>[+]          { RETURN( LMPPLUS );
+                        } 
+<LMP_STATE>[:]          { RETURN( LMPCOLON );
+                        } 
+<LMP_STATE>;            { RETURN( yytext[0] );
+                        } 
+<LMP_STATE>[^;#]        { ScanError("Invalid character '%c' in species definition", yytext[0] );
+                        }
+<LKT_STATE>{IDSPC}      { strcpy( yylval.str, yytext );
+                          RETURN( LKTID );
+                        }
+<LKT_STATE>;            { RETURN( yytext[0] );
+                        } 
+<TPT_STATE>{IDSPC}      { strcpy( yylval.str, yytext );
+                          RETURN( TPTID );
+                        }
+<TPT_STATE>;            { RETURN( yytext[0] );
+                        } 
+<USE_STATE>{STRING}     { strcpy( yylval.str, yytext );
+                          RETURN( USEID );
+                        }
+<USE_STATE>;            { RETURN( yytext[0] );
+                        } 
+<MNI_STATE>{IDSPC}      { strcpy( yylval.str, yytext );
+                          RETURN( MNIID );
+                        }
+<MNI_STATE>;            { RETURN( yytext[0] );
+                        } 
+<INL_STATE>{STRING}	{ strcpy( yylval.str, yytext );
+                          BEGIN INL_CODE;
+			  RETURN( INLCTX );
+			}
+<INL_CODE>#[^ \t\n]*    { if ( EqNoCase( yytext+1, "ENDINLINE" ) ){
+                            BEGIN INITIAL;
+                            RETURN( ENDINLINE );
+			  }
+			  else {
+                            strcpy( yylval.str, yytext );
+                            RETURN( INCODE );
+			  }
+			}
+<INL_CODE>\n		{ crt_line_no++;
+			  strcpy( yylval.str,yytext );
+			  RETURN( INCODE );
+			}
+<INL_CODE>[^#\n]*	{ strcpy( yylval.str,yytext );
+		          RETURN( INCODE );
+			}
+<<EOF>>			{ if ( ! EndInclude() ) {
+                            RETURN( INITIAL );
+                          }
+                        }  
+%%
+
+  KEYWORD keywords[] = { { "INCLUDE",    INC_STATE, 0 },
+                         { "MODEL",      MOD_STATE, 0 },
+                         { "INTEGRATOR", INT_STATE, 0 },
+                         { "JACOBIAN",   PRM_STATE, JACOBIAN }, 
+                         { "HESSIAN",    PRM_STATE, HESSIAN }, 
+                         { "DECLARE",    PRM_STATE, DECLARE }, 
+                         { "STOICMAT",   PRM_STATE, STOICMAT }, 
+                         { "STOCHASTIC", PRM_STATE, STOCHASTIC }, 
+                         { "DOUBLE",     PRM_STATE, DOUBLE }, 
+                         { "REORDER",    PRM_STATE, REORDER }, 
+                         { "MEX",        PRM_STATE, MEX }, 
+                         { "DUMMYINDEX", PRM_STATE, DUMMYINDEX}, 
+                         { "EQNTAGS",    PRM_STATE, EQNTAGS}, 
+                         { "FUNCTION",   PRM_STATE, FUNCTION }, 
+                         { "ATOMS",      ATM_STATE, ATOMDECL },   
+                         { "CHECK",      ATM_STATE, CHECK },
+                         { "CHECKALL",   INITIAL,   CHECKALL },
+                         { "DEFVAR",     DSP_STATE, DEFVAR }, 
+                         { "DEFRAD",     DSP_STATE, DEFVAR }, 
+                         { "DEFFIX",     DSP_STATE, DEFFIX }, 
+                         { "SETVAR",     SSP_STATE, SETVAR }, 
+                         { "SETRAD",     SSP_STATE, SETVAR }, 
+                         { "SETFIX",     SSP_STATE, SETFIX }, 
+                         { "INITVALUES", INI_STATE, INITVALUES }, 
+                         { "EQUATIONS",  EQN_STATE, EQUATIONS }, 
+                         { "LUMP",       LMP_STATE, LUMP }, 
+                         { "LOOKAT", 	 LKT_STATE, LOOKAT },
+                         { "LOOKATALL",  INITIAL,   LOOKATALL },
+                         { "TRANSPORT",  TPT_STATE, TRANSPORT },
+                         { "TRANSPORTALL", INITIAL,   TRANSPORTALL },
+                         { "INITIALIZE", PRM_STATE, INITIALIZE },
+                         { "XGRID",  	 PRM_STATE, XGRID },
+                         { "YGRID",  	 PRM_STATE, YGRID },
+                         { "ZGRID",  	 PRM_STATE, ZGRID },
+                         { "MONITOR", 	 MNI_STATE, MONITOR },
+                         { "WRITE_ATM",  INITIAL,   WRITE_ATM },
+                         { "WRITE_SPC",  INITIAL,   WRITE_SPC },
+                         { "WRITE_MAT",  INITIAL,   WRITE_MAT },
+                         { "WRITE_OPT",  INITIAL,   WRITE_OPT },
+                         { "USE",        PRM_STATE, USE },
+                         { "LANGUAGE",   PRM_STATE, LANGUAGE },
+                         { "INLINE",     INL_STATE, INLINE },
+                         { "ENDINLINE",  INITIAL,   ENDINLINE },
+                         { "INTFILE",    PRM_STATE, INTFILE },
+                         { "DRIVER",     PRM_STATE, DRIVER },
+                         { "RUN",        PRM_STATE, RUN },
+                         { "USES",       USE_STATE, USES },
+                         { "SPARSEDATA", PRM_STATE, SPARSEDATA },
+                         { 0, 0, 0 } 
+                       };
+
+void Include ( char * name )
+{
+FILE *f;
+YY_BUFFER_STATE newb;
+
+  if ( yy_buf_level == MAX_INCLUDE ) {
+    printf("\nInclude nested too deep. Include %s ignored", name);
+    return;
+  }
+
+  yy_buffers[ yy_buf_level ]  = YY_CURRENT_BUFFER;
+  yy_line_no[ yy_buf_level ]  = crt_line_no;
+  yy_filename[ yy_buf_level ] = crt_filename;
+  yy_buf_level++;
+  
+  crt_line_no = 1;  
+
+  crt_filename = malloc( 1 + strlen( name ) );
+  strcpy( crt_filename, name ); 
+
+ 
+  f = fopen( name, "r" );
+  if( f == 0 )
+    FatalError(3,"%s: Can't read file", name );
+
+  newb = yy_create_buffer(f, YY_BUF_SIZE);
+  yy_switch_to_buffer( newb );
+}
+
+int EndInclude()
+{
+YY_BUFFER_STATE oldb;
+char * oldn;
+
+  if ( yy_buf_level > 0 ) {
+    oldb = YY_CURRENT_BUFFER;
+    oldn = crt_filename; 
+    yy_buf_level--;
+    yy_switch_to_buffer( yy_buffers[yy_buf_level] );
+    crt_line_no = yy_line_no[ yy_buf_level ];
+    crt_filename = yy_filename[ yy_buf_level ]; 
+    yy_delete_buffer( oldb ); 
+    free( oldn );
+    return 1;
+  } 
+  return 0;
+}
+
+int EqNoCase( char *s1, char *s2 )
+{
+  while( *s1 ) {
+    if ( toupper(*s1++) != toupper(*s2++) ) return 0;
+  }
+  return *s1 == *s2;
+}
+
+int CheckKeyword( char *cmd )
+{
+int i;
+
+  i = 0;
+  while( 1 ) {
+    if( keywords[i].name == 0 ) {
+      ScanError( "'%s': Unknown command (ignored)", cmd);
+      return -1;
+    }
+    if( EqNoCase( cmd, keywords[i].name ) ) {
+      return i;
+    }
+    i++;
+  }
+}
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/src/scan.y
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/src/scan.y	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/src/scan.y	(revision 2696)
@@ -0,0 +1,496 @@
+/******************************************************************************
+
+  KPP - The Kinetic PreProcessor
+        Builds simulation code for chemical kinetic systems
+
+  Copyright (C) 1995-1996 Valeriu Damian and Adrian Sandu
+  Copyright (C) 1997-2005 Adrian Sandu
+
+  KPP is free software; you can redistribute it and/or modify it under the
+  terms of the GNU General Public License as published by the Free Software
+  Foundation (http://www.gnu.org/copyleft/gpl.html); either version 2 of the
+  License, or (at your option) any later version.
+
+  KPP is distributed in the hope that it will be useful, but WITHOUT ANY
+  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+  FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+  details.
+
+  You should have received a copy of the GNU General Public License along
+  with this program; if not, consult http://www.gnu.org/copyleft/gpl.html or
+  write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+  Boston, MA  02111-1307,  USA.
+
+  Adrian Sandu
+  Computer Science Department
+  Virginia Polytechnic Institute and State University
+  Blacksburg, VA 24060
+  E-mail: sandu@cs.vt.edu
+
+******************************************************************************/
+
+/******************************************************************************
+  bug fixes for upgrading from yacc to bison implemented by Rolf Sander,
+  following suggestions from Jason Lander <jason@env.leeds.ac.uk>
+******************************************************************************/
+
+%{
+  #include <stdio.h>
+  #include <stdlib.h>
+  #include <malloc.h>
+  #include <string.h>
+  #include <unistd.h>
+  #include "scan.h"
+
+  #define __YYSCLASS
+
+  #define YYDEBUG 1
+  extern char yytext[];
+  extern FILE * yyin;
+  
+  int nError   = 0;
+  int nWarning = 0;
+
+  int crt_section;
+  int eqState;
+  int isPhoto = 0;
+
+  char crt_term[ 30 ];
+  char crt_coef[ 30 ];
+
+  char * InlineBuf;
+  int InlineLen;
+
+  void SemicolonError();
+  int yyerrflag=0;
+
+  void ParserErrorMessage();
+  void yyerror(char *);
+
+%}
+
+%union{
+  char str[80];
+};
+
+%token JACOBIAN DOUBLE FUNCTION DEFVAR DEFRAD DEFFIX SETVAR SETRAD SETFIX 
+%token HESSIAN STOICMAT STOCHASTIC DECLARE
+%token INITVALUES EQUATIONS LUMP INIEQUAL EQNEQUAL EQNCOLON 
+%token LMPCOLON LMPPLUS SPCPLUS SPCEQUAL ATOMDECL CHECK CHECKALL REORDER
+%token MEX DUMMYINDEX EQNTAGS
+%token LOOKAT LOOKATALL TRANSPORT TRANSPORTALL MONITOR USES SPARSEDATA
+%token WRITE_ATM WRITE_SPC WRITE_MAT WRITE_OPT INITIALIZE XGRID YGRID ZGRID
+%token USE LANGUAGE INTFILE DRIVER RUN INLINE ENDINLINE
+%token      PARAMETER SPCSPC INISPC INIVALUE EQNSPC EQNSIGN EQNCOEF
+%type <str> PARAMETER SPCSPC INISPC INIVALUE EQNSPC EQNSIGN EQNCOEF
+%token      RATE LMPSPC SPCNR ATOMID LKTID MNIID INLCTX INCODE SSPID 
+%type <str> RATE LMPSPC SPCNR ATOMID LKTID MNIID INLCTX INCODE SSPID
+%token      EQNLESS EQNTAG EQNGREATER
+%type <str> EQNLESS EQNTAG EQNGREATER
+%token      TPTID USEID
+%type <str> TPTID USEID
+%type <str> rate eqntag
+
+%%
+
+program		: section
+		| section program
+		;
+section	        : JACOBIAN PARAMETER
+		  { CmdJacobian( $2 );
+                  }
+                | HESSIAN PARAMETER
+		  { CmdHessian( $2 );
+                  }
+                | DECLARE PARAMETER
+		  { CmdDeclareValues( $2 );
+                  }
+                | STOICMAT PARAMETER
+		  { CmdStoicmat( $2 );
+                  }
+                | DOUBLE PARAMETER
+		  { CmdDouble( $2 );
+                  }
+                | REORDER PARAMETER
+		  { CmdReorder( $2 );
+                  }
+                | MEX PARAMETER
+		  { CmdMex( $2 );
+                  }
+                | DUMMYINDEX PARAMETER
+		  { CmdDummyindex( $2 );
+                  }
+                | EQNTAGS PARAMETER
+		  { CmdEqntags( $2 );
+                  }
+                | FUNCTION PARAMETER
+		  { CmdFunction( $2 );
+                  }
+                | STOCHASTIC PARAMETER
+		  { CmdStochastic( $2 );
+                  }
+                | ATOMDECL atomlist
+                  {}  
+                | CHECK atomlist
+                  {}
+                | DEFVAR species
+                  {}  
+                | DEFRAD species
+                  {}  
+                | DEFFIX species
+                  {}  
+                | SETVAR setspclist
+                  {}  
+                | SETRAD setspclist
+                  {}  
+                | SETFIX setspclist
+                  {}  
+                | INITVALUES initvalues
+                  {}
+                | EQUATIONS equations
+                  {}
+                | LUMP lumps  
+                  {}
+                | LOOKAT lookatlist  
+                  {}
+                | MONITOR monitorlist  
+                  {}
+                | TRANSPORT translist  
+                  {}
+                | CHECKALL
+                  { CheckAll(); }
+                | LOOKATALL
+                  { LookAtAll(); }
+                | TRANSPORTALL
+                  { TransportAll(); }
+                | WRITE_ATM
+                  { WriteAtoms(); }
+                | WRITE_SPC
+                  { WriteSpecies(); }
+                | WRITE_MAT
+                  { WriteMatrices(); }
+                | WRITE_OPT
+                  { WriteOptions(); }
+                | USE PARAMETER
+		  { CmdUse( $2 ); }
+                | LANGUAGE PARAMETER
+		  { CmdLanguage( $2 ); }
+                | INITIALIZE PARAMETER
+                  { DefineInitializeNbr( $2 ); }
+                | XGRID PARAMETER
+                  { DefineXGrid( $2 ); }
+                | YGRID PARAMETER
+                  { DefineYGrid( $2 ); }
+                | ZGRID PARAMETER
+                  { DefineZGrid( $2 ); }
+		| INLINE INLCTX inlinecode ENDINLINE
+		  { 
+		    AddInlineCode( $2, InlineBuf );
+                    free( InlineBuf );
+		  }
+		| INLINE error
+		  { ParserErrorMessage(); }
+                | INTFILE PARAMETER
+		  { CmdIntegrator( $2 ); }
+                | DRIVER PARAMETER
+		  { CmdDriver( $2 ); }
+                | RUN PARAMETER
+		  { CmdRun( $2 ); }
+                | USES uselist  
+                  {}
+                | SPARSEDATA PARAMETER
+		  { SparseData( $2 );
+                  }
+                ;  
+semicolon       : semicolon ';'
+                  { ScanWarning("Unnecessary ';'");
+                  }
+                | ';'
+                ;
+atomlist	: atomlist atomdef semicolon
+                | atomdef semicolon
+                | error semicolon
+                  { ParserErrorMessage(); }
+                ;
+atomdef		: ATOMID
+                  { switch( crt_section ) {
+                      case ATOMDECL: DeclareAtom( $1 ); break;
+                      case CHECK:    SetAtomType( $1, DO_CHECK ); break;
+                    }
+                  }
+                ;     
+lookatlist	: lookatlist lookatspc semicolon
+                | lookatspc semicolon
+                | error semicolon
+                  { ParserErrorMessage(); }
+                ;
+lookatspc	: LKTID
+                  { AddLookAt( $1 );
+                  }
+                ;     
+monitorlist	: monitorlist monitorspc semicolon
+                | monitorspc semicolon
+                | error semicolon
+                  { ParserErrorMessage(); }
+                ;
+monitorspc	: MNIID
+                  { AddMonitor( $1 );
+                  }
+                ;     
+translist	: translist transspc semicolon
+                | transspc semicolon
+                | error semicolon
+                  { ParserErrorMessage(); }
+                ;
+transspc	: TPTID
+                  { AddTransport( $1 );
+                  }
+                ;     
+uselist		: uselist usefile semicolon
+                | usefile semicolon
+                | error semicolon
+                  { ParserErrorMessage(); }
+                ;
+usefile		: USEID
+                  { AddUseFile( $1 );
+                  }
+                ;     
+setspclist	: setspclist setspcspc semicolon
+                | setspcspc semicolon
+                | error semicolon
+                  { ParserErrorMessage(); }
+                ;
+setspcspc	: SSPID
+                  { switch( crt_section ) {
+                      case SETVAR: SetSpcType( VAR_SPC, $1 ); break;
+                      case SETRAD: SetSpcType( RAD_SPC, $1 ); break;
+                      case SETFIX: SetSpcType( FIX_SPC, $1 ); break;
+                    }
+                  }
+                ;     
+species         : species spc semicolon
+                | spc semicolon 
+                | error semicolon
+                  { ParserErrorMessage(); }
+                ;
+spc             : spcname
+                | spcdef
+                ;
+spcname         : SPCSPC SPCEQUAL atoms
+                  { switch( crt_section ) {
+                      case DEFVAR: DeclareSpecies( VAR_SPC, $1 ); break;
+                      case DEFRAD: DeclareSpecies( RAD_SPC, $1 ); break;
+                      case DEFFIX: DeclareSpecies( FIX_SPC, $1 ); break;
+                    } 
+                  }
+                ;
+spcdef          : SPCSPC
+                  { switch( crt_section ) {
+                      case DEFVAR: DeclareSpecies( VAR_SPC, $1 ); break;
+                      case DEFRAD: DeclareSpecies( RAD_SPC, $1 ); break;
+                      case DEFFIX: DeclareSpecies( FIX_SPC, $1 ); break;
+                    } 
+                  }
+                ;
+atoms           : atoms SPCPLUS atom 
+                | atom
+                ; 
+atom            : SPCNR SPCSPC
+                  { AddAtom( $2, $1 );
+                  }
+                | SPCSPC
+                  { AddAtom( $1, "1" );
+                  }
+                ;   
+initvalues      : initvalues assignment semicolon
+                | assignment semicolon
+                | error semicolon
+                  { ParserErrorMessage(); }
+                ;
+assignment      : INISPC INIEQUAL INIVALUE
+                  { AssignInitialValue( $1, $3 ); }
+                ;
+equations       : equations equation semicolon
+                | equation semicolon
+                | error semicolon
+                  { ParserErrorMessage();
+                    eqState = LHS; 
+                  }
+                ;
+equation        : eqntag lefths righths rate
+                  { eqState = LHS;
+                    StoreEquationRate( $4, $1 ); 
+                    CheckEquation();
+                  }
+                | lefths righths rate
+                  { eqState = LHS;
+                    StoreEquationRate( $3, "          " ); 
+                    CheckEquation();
+                  }
+rate            : RATE rate
+                  { strcpy( $$, $1 );
+                    strcat( $$, $2 ); 
+                  } 
+                | RATE
+                  { strcpy( $$, $1 );
+                  } 
+                ;                  
+eqntag           : EQNLESS EQNTAG EQNGREATER
+                  { strcpy( $$, $2 );
+                  } 
+                ;                  
+lefths          : expresion EQNEQUAL
+                  { eqState = RHS; }
+                ;   
+righths         : expresion EQNCOLON
+                  { eqState = RAT; }
+                ;
+expresion       : expresion EQNSIGN term
+                  { ProcessTerm( eqState, $2, crt_coef, crt_term ); 
+                  }
+                | EQNSIGN term 
+                  { ProcessTerm( eqState, $1, crt_coef, crt_term );
+                  }
+                | term
+                  { ProcessTerm( eqState, "+", crt_coef, crt_term );
+                  }
+                ;
+term            : EQNCOEF EQNSPC
+                  { strcpy( crt_term, $2 );
+                    strcpy( crt_coef, $1 );  
+                  }
+                | EQNSPC
+                  { strcpy( crt_term, $1 );         
+                    strcpy( crt_coef, "1" ); 
+                  }
+                ;
+lumps           : lumps lump semicolon
+                | lump semicolon 
+                | error semicolon
+                  { ParserErrorMessage(); }
+                ;
+lump            : LMPSPC LMPPLUS lump
+                  { AddLumpSpecies( $1 );
+                  }
+                | LMPSPC LMPCOLON LMPSPC
+                  {
+                    AddLumpSpecies( $1 );
+                    CheckLump( $3 );  
+                  }
+inlinecode      : inlinecode INCODE
+		  {
+		    InlineBuf = AppendString( InlineBuf, $2, &InlineLen, MAX_INLINE );
+		  }
+                | INCODE 
+		  {
+		    InlineBuf = malloc( MAX_INLINE ); 
+                    InlineLen = MAX_INLINE;
+		    strcpy( InlineBuf, $1);
+		  }
+                ;  
+%%
+
+void yyerror( char * str )
+{
+}
+
+void ParserErrorMessage()
+{
+  /* yyerrok; */
+/*
+  Message("[%d,%s] -> [%d,%s]", crtTokType, crtToken, nextTokType, nextToken );  
+*/
+  if( crtToken[0] == ';' ) {
+    ParserError("Misplaced ';'");
+    return;
+  }
+  switch( crtTokType ) {
+    case ATOMID:
+      ParserError("Missing ';' after '%s'", crtToken );
+      break; 
+
+    case SPCSPC: 
+      ParserError("Missing ';' or '+' after '%s'", crtToken );
+      break; 
+    case SPCNR:
+      ParserError("Missing species after '%s'", crtToken );
+      break; 
+    case SPCPLUS:
+      ParserError("Missing atom after '%s'", crtToken );
+      break; 
+    case SPCEQUAL:
+      ParserError("Invalid '=' after '%s'", crtToken );
+      break; 
+
+    case INISPC: 
+      ParserError("Missing '=' after '%s'", crtToken );
+      break; 
+    case INIEQUAL: 
+      ParserError("Missing value after '%s'", crtToken );
+      break; 
+    case INIVALUE: 
+      ParserError("Missing ';' after '%s'", crtToken );
+      break; 
+
+    case EQNSPC: 
+      ParserError("Missing '+' or '=' after '%s'", crtToken );
+      break; 
+    case EQNEQUAL: 
+      ParserError("Invalid right hand side of equation");
+      break; 
+    case EQNCOLON: 
+      ParserError("Missing rate after '%s'", crtToken );
+      break; 
+    case EQNSIGN: 
+      ParserError("Missing coeficient after '%s'", crtToken );
+      break; 
+    case EQNCOEF: 
+      ParserError("Missing species after '%s'", crtToken );
+      break; 
+    case RATE: 
+      ParserError("Missing ';' after '%s'", crtToken );
+      break; 
+
+    case LMPSPC: 
+      ParserError("Missing '+' or ':' or ';' after '%s'", crtToken );
+      break; 
+    case LMPPLUS: 
+      ParserError("Missing species after '%s'", crtToken );
+      break; 
+    case LMPCOLON: 
+      ParserError("Missing species after '%s'", crtToken );
+      break; 
+    case INLINE:
+      ParserError("Missing inline option after '%s'", crtToken );
+      break;
+
+    default:
+      ParserError("Syntax error after '%s'", crtToken ); 
+  }
+}
+
+
+int Parser( char * filename )
+{
+extern int yydebug;
+FILE *f;
+
+  crt_filename = filename;
+
+  f = fopen( crt_filename, "r" );
+  if( f == 0 ) {
+    FatalError(7,"%s: File not found", crt_filename);
+  } 
+  
+  yyin = f;
+  nError   = 0;
+  nWarning = 0;
+  yydebug = 0;
+
+  yyparse();
+
+  fclose( f );
+
+  return nError;
+}          
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/src/scanner.c
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/src/scanner.c	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/src/scanner.c	(revision 2696)
@@ -0,0 +1,922 @@
+/******************************************************************************
+
+  KPP - The Kinetic PreProcessor
+        Builds simulation code for chemical kinetic systems
+
+  Copyright (C) 1995-1996 Valeriu Damian and Adrian Sandu
+  Copyright (C) 1997-2005 Adrian Sandu
+
+  KPP is free software; you can redistribute it and/or modify it under the
+  terms of the GNU General Public License as published by the Free Software
+  Foundation (http://www.gnu.org/copyleft/gpl.html); either version 2 of the
+  License, or (at your option) any later version.
+
+  KPP is distributed in the hope that it will be useful, but WITHOUT ANY
+  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+  FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+  details.
+
+  You should have received a copy of the GNU General Public License along
+  with this program; if not, consult http://www.gnu.org/copyleft/gpl.html or
+  write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+  Boston, MA  02111-1307,  USA.
+
+  Adrian Sandu
+  Computer Science Department
+  Virginia Polytechnic Institute and State University
+  Blacksburg, VA 24060
+  E-mail: sandu@cs.vt.edu
+
+******************************************************************************/
+
+
+#include "gdata.h"
+#include "scan.h"
+#include "y.tab.h"
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+
+int AtomNr    = 0;
+int SpeciesNr = 0;
+int EqnNr     = 0;
+int SpcNr     = 0;
+int VarNr     = 0;
+int VarActiveNr  = 0;
+int FixNr     = 0;
+int VarStartNr   = 0;
+int FixStartNr   = 0;
+
+
+int initNr = -1;
+int xNr = 0;
+int yNr = 0;
+int zNr = 0;
+
+int falseSpcNr = 0;
+
+ATOM_DEF AtomTable[ MAX_ATNR ];
+SPECIES_DEF SpeciesTable[ MAX_SPECIES ];
+CODE ReverseCode[ MAX_SPECIES ];
+CODE Code[ MAX_SPECIES ];
+KREACT kr[ MAX_EQN ];
+
+float** Stoich_Left;
+float** Stoich;
+float** Stoich_Right;
+int Reactive[ MAX_SPECIES ];
+
+INLINE_KEY InlineKeys[] = { { F77_GLOBAL,   APPEND,  "F77_GLOBAL" },
+                            { F77_INIT,   APPEND,  "F77_INIT" },
+                            { F77_DATA,   APPEND,  "F77_DATA" },
+                            { F77_UTIL,   APPEND,  "F77_UTIL" }, 
+                            { F77_RATES, APPEND,  "F77_RATES" }, 
+                            { F77_RCONST, APPEND,  "F77_RCONST" }, 
+			    { F90_GLOBAL,   APPEND,  "F90_GLOBAL" },
+                            { F90_INIT,   APPEND,  "F90_INIT" },
+                            { F90_DATA,   APPEND,  "F90_DATA" },
+                            { F90_UTIL,   APPEND,  "F90_UTIL" },
+                            { F90_RATES, APPEND,  "F90_RATES" }, 
+                            { F90_RCONST, APPEND,  "F90_RCONST" }, 
+                            { C_GLOBAL,     APPEND,  "C_GLOBAL" },
+                            { C_INIT,     APPEND,  "C_INIT" },
+                            { C_DATA,     APPEND,  "C_DATA" },
+                            { C_UTIL,     APPEND,  "C_UTIL" },
+                            { C_RATES,   APPEND,  "C_RATES" }, 
+                            { C_RCONST,   APPEND,  "C_RCONST" }, 
+                            { MATLAB_GLOBAL,     APPEND,  "MATLAB_GLOBAL" },
+                            { MATLAB_INIT,     APPEND,  "MATLAB_INIT" },
+                            { MATLAB_DATA,     APPEND,  "MATLAB_DATA" },
+                            { MATLAB_UTIL,     APPEND,  "MATLAB_UTIL" },
+                            { MATLAB_RATES,   APPEND,  "MATLAB_RATES" }, 
+                            { MATLAB_RCONST,   APPEND,  "MATLAB_RCONST" } 
+		 	  };
+
+int useAggregate   = 1;
+int useJacobian    = JAC_LU_ROW;
+int useJacSparse   = 1;
+int useHessian     = 1;
+int useStoicmat    = 1;
+int useDouble      = 1;
+int useReorder     = 1;
+int useMex         = 1;
+int useDummyindex  = 0;
+int useEqntags     = 0;
+int useLang        = F77_LANG;
+int useStochastic  = 0;
+/* if useValues=1 KPP replaces parameters like NVAR etc. 
+       by their values in vector/matrix declarations */
+int useDeclareValues = 0; 
+
+char integrator[ MAX_PATH ] = "none";
+char driver[ MAX_PATH ] = "none";
+char runArgs[  MAX_PATH ] = "";
+
+/*  mz_rs_20050701+ */
+/* char varDefault[ MAX_IVAL ] = "1.E-8"; */
+/* char fixDefault[ MAX_IVAL ] = "1.E-8"; */
+/* double cfactor = 1.09E+10; */
+char varDefault[ MAX_IVAL ] = "0.";
+char fixDefault[ MAX_IVAL ] = "0.";
+double cfactor = 1.;
+/*  mz_rs_20050701- */
+
+ATOM crtAtoms[ MAX_ATOMS ];
+int crtAtomNr = 0;
+
+char *fileList[ MAX_FILES ];
+int fileNr = 0;
+
+double Abs( double x ) 
+{
+  return x > 0 ? x : -x;
+}
+
+void DefineInitializeNbr( char *cmd )
+{
+int n;
+
+  n = sscanf( cmd, "%d", &initNr);
+  if( n != 1 )
+    ScanError("Bad number of species to initialize <%s>", cmd);
+}
+
+void DefineXGrid( char *cmd )
+{
+int n;
+
+  xNr = 1;
+  n = sscanf( cmd, "%d", &xNr);
+  if( n != 1 )
+    ScanError("Bad X grid number <%s>", cmd);
+}
+
+void DefineYGrid( char *cmd )
+{
+int n;
+
+  yNr = 1;
+  n = sscanf( cmd, "%d", &yNr);
+  if( n != 1 )
+    ScanError("Bad Y grid number <%s>", cmd);
+}
+
+void DefineZGrid( char *cmd )
+{
+int n;
+
+  zNr = 1;
+  n = sscanf( cmd, "%d", &zNr);
+  if( n != 1 )
+    ScanError("Bad Z grid number <%s>", cmd);
+}
+
+void CmdFunction( char *cmd )
+{
+  if( EqNoCase( cmd, "AGGREGATE" ) ) {
+    useAggregate = 1;
+    return;
+  }
+  if( EqNoCase( cmd, "SPLIT" ) ) {
+    useAggregate = 0;
+    return;
+  }
+  ScanError("'%s': Unknown parameter for #FUNCTION [AGGREGATE|SPLIT]", cmd );
+}
+
+void CmdDeclareValues( char *cmd )
+{
+  if( EqNoCase( cmd, "SYMBOL" ) ) {
+    useDeclareValues = 0;
+    return;
+  }
+  if( EqNoCase( cmd, "VALUE" ) ) {
+    useDeclareValues = 1;
+    return;
+  }
+  ScanError("'%s': Unknown parameter for #DECLARE [SYMBOL|VALUE]", cmd );
+}
+
+void CmdJacobian( char *cmd )
+{
+  if( EqNoCase( cmd, "OFF" ) ) {
+    useJacobian = JAC_OFF;
+    useJacSparse = 0;
+    return;
+  }
+  if( EqNoCase( cmd, "FULL" ) ) {
+    useJacobian = JAC_FULL;
+    useJacSparse = 0;
+    return;
+  }
+  if( EqNoCase( cmd, "SPARSE_LU_ROW" ) ) {
+    useJacobian = JAC_LU_ROW;
+    useJacSparse = 1;
+    return;
+  }
+  if( EqNoCase( cmd, "SPARSE_ROW" ) ) {
+    useJacobian = JAC_ROW;
+    useJacSparse = 1;
+    return;
+  }
+  ScanError("'%s': Unknown parameter for #JACOBIAN [OFF|FULL|SPARSE_LU_ROW|SPARSE_ROW]", cmd );
+}
+
+void SparseData( char *cmd ) {
+  ScanError("Deprecated use of #SPARSEDATA %s: see #JACOBIAN for equivalent functionality", cmd );
+}
+
+void CmdHessian( char *cmd )
+{
+  if( EqNoCase( cmd, "OFF" ) ) {
+    useHessian = 0;
+    return;
+  }
+  if( EqNoCase( cmd, "ON" ) ) {
+    useHessian = 1;
+    return;
+  }
+  ScanError("'%s': Unknown parameter for #HESSIAN [ON|OFF]", cmd );
+}
+
+void CmdStoicmat( char *cmd )
+{
+  if( EqNoCase( cmd, "OFF" ) ) {
+    useStoicmat = 0;
+    return;
+  }
+  if( EqNoCase( cmd, "ON" ) ) {
+    useStoicmat = 1;
+    return;
+  }
+  ScanError("'%s': Unknown parameter for #STOICMAT [ON|OFF]", cmd );
+}
+
+void CmdDouble( char *cmd )
+{
+  if( EqNoCase( cmd, "OFF" ) ) {
+    useDouble = 0;
+    return;
+  }
+  if( EqNoCase( cmd, "ON" ) ) {
+    useDouble = 1;
+    return;
+  }
+  ScanError("'%s': Unknown parameter for #DOUBLE [ON|OFF]", cmd );
+}
+
+void CmdReorder( char *cmd )
+{
+  if( EqNoCase( cmd, "OFF" ) ) {
+    useReorder = 0;
+    return;
+  }
+  if( EqNoCase( cmd, "ON" ) ) {
+    useReorder = 1;
+    return;
+  }
+  ScanError("'%s': Unknown parameter for #REORDER [ON|OFF]", cmd );
+}
+
+void CmdMex( char *cmd )
+{
+  if( EqNoCase( cmd, "OFF" ) ) {
+    useMex = 0;
+    return;
+  }
+  if( EqNoCase( cmd, "ON" ) ) {
+    useMex = 1;
+    return;
+  }
+  ScanError("'%s': Unknown parameter for #MEX [ON|OFF]", cmd );
+}
+
+void CmdDummyindex( char *cmd )
+{
+  if( EqNoCase( cmd, "OFF" ) ) {
+    useDummyindex = 0;
+    return;
+  }
+  if( EqNoCase( cmd, "ON" ) ) {
+    useDummyindex = 1;
+    return;
+  }
+  ScanError("'%s': Unknown parameter for #DUMMYINDEX [ON|OFF]", cmd );
+}
+
+void CmdEqntags( char *cmd )
+{
+  if( EqNoCase( cmd, "OFF" ) ) {
+    useEqntags = 0;
+    return;
+  }
+  if( EqNoCase( cmd, "ON" ) ) {
+    useEqntags = 1;
+    return;
+  }
+  ScanError("'%s': Unknown parameter for #EQNTAGS [ON|OFF]", cmd );
+}
+
+void CmdUse( char *cmd )
+{
+  ScanError("Deprecated command '#USE %s';\nReplace with '#LANGUAGE %s'.",cmd,cmd );
+}
+
+
+void CmdLanguage( char *cmd )
+{
+  if( EqNoCase( cmd, "FORTRAN77" ) ) {
+    useLang = F77_LANG;
+    return;
+  }
+  if( EqNoCase( cmd, "FORTRAN" ) ) {
+    ScanWarning("Fortran version not specified in '#LANGUAGE %s'. Will use Fortran 77.", cmd);
+    useLang = F77_LANG;
+    return;
+  }
+  if( EqNoCase( cmd, "FORTRAN90" ) ) {
+    useLang = F90_LANG;
+    return;
+  }
+  if( EqNoCase( cmd, "MATLAB" ) ) {
+    useLang = MATLAB_LANG;
+    return;
+  }
+  if( EqNoCase( cmd, "C" ) ) {
+    useLang = C_LANG;
+    return;
+  }
+  ScanError("'%s': Unknown parameter for #LANGUAGE [Fortran77|Fortran90|C|Matlab]", cmd );
+}
+
+void CmdStochastic( char *cmd )
+{
+  if( EqNoCase( cmd, "ON" ) ) {
+    useStochastic = 1;
+    return;
+  }
+  if( EqNoCase( cmd, "OFF" ) ) {
+    useStochastic = 0;
+    return;
+  }
+  ScanError("'%s': Unknown parameter for #STOCHASTIC [OFF|ON]", cmd );
+}
+
+void CmdIntegrator( char *cmd )
+{
+  strcpy( integrator, cmd );
+}
+
+void CmdDriver( char *cmd )
+{
+  strcpy( driver, cmd );
+}
+
+void CmdRun( char *cmd )
+{
+  strcpy( runArgs, cmd );
+}
+
+int FindAtom( char *atname )
+{
+int i;
+  
+  for( i=0; i<AtomNr; i++ )
+    if( EqNoCase( AtomTable[ i ].name, atname ) ) {
+      return i;   
+    }
+  return -1;      
+}
+
+void DeclareAtom( char *atname )
+{
+int code;
+
+  code = FindAtom( atname );
+  if ( code >= 0 ) {
+    ScanError("Multiple declaration for atom %s.", atname );
+    return;
+  }
+  if( AtomNr >= MAX_ATNR ) {
+    Error("Too many atoms");
+    return;
+  }
+  
+  strcpy( AtomTable[ AtomNr ].name, atname );
+  AtomTable[ AtomNr ].check = NO_CHECK;
+  AtomTable[ AtomNr ].masscheck = 0;
+  AtomNr++;
+}
+
+void SetAtomType( char *atname, int type )
+{
+int code;
+
+  code = FindAtom( atname );
+  if ( code < 0 ) {
+    ScanError("Undefined atom %s.", atname );
+    return;
+  }
+  AtomTable[ code ].check = type;
+}
+
+void CheckAll()
+{
+int i;
+  
+  for( i=0; i<AtomNr; i++ ) {
+    if( AtomTable[ i ].check != CANCEL_CHECK )
+      AtomTable[ i ].check = DO_CHECK;
+  }   
+  SetAtomType( "IGNORE", NO_CHECK );
+}
+
+void AddAtom( char *atname, char *nr )
+{
+int code;
+
+  code = FindAtom( atname );
+  if ( code < 0 ) {
+    ScanError("Undefined atom %s.", atname );
+    return;
+  }
+  crtAtoms[ crtAtomNr ].code = (unsigned char)code;
+  crtAtoms[ crtAtomNr ].nr = (unsigned char)atoi(nr);
+  crtAtomNr++;
+}
+
+int FindSpecies( char *spname )
+{
+int i;
+  
+  for( i=0; i<SpeciesNr; i++ )
+    if( EqNoCase( SpeciesTable[ i ].name, spname ) ) {
+      return i;   
+    }
+  for( i=0; i<2; i++ )
+    if( EqNoCase( SpeciesTable[ MAX_SPECIES -1 - i ].name, spname ) ) {
+      return MAX_SPECIES -1 - i;   
+    }
+  return -1;      
+}
+
+void StoreSpecies( int index, int type, char *spname )
+{
+int i;
+
+  strcpy( SpeciesTable[ index ].name, spname );
+  SpeciesTable[ index ].type = type; 
+  *SpeciesTable[ index ].ival = '\0'; 
+  SpeciesTable[ index ].lookat = 0;
+  SpeciesTable[ index ].moni = 0;
+  SpeciesTable[ index ].trans = 0;
+  if( (SpeciesTable[ index ].nratoms == 0) || ( crtAtomNr > 0 ) ) {
+    SpeciesTable[ index ].nratoms = crtAtomNr;
+    for( i = 0; i < crtAtomNr; i++ )
+      SpeciesTable[ index ].atoms[i] = crtAtoms[i];
+  }
+  crtAtomNr = 0;
+}
+
+void DeclareSpecies( int type, char *spname )
+{
+int code;
+
+  code = FindSpecies( spname );
+  if ( code >= 0 ) {
+    ScanError("Multiple declaration for species %s.", spname );
+    return;
+  }
+  if( SpeciesNr >= MAX_SPECIES ) {
+    Error("Too many species");
+    return;
+  }
+  StoreSpecies( SpeciesNr, type, spname );
+  SpeciesNr++;
+}
+
+void SetSpcType( int type, char *spname )
+{
+int code;
+int i;
+
+  if( EqNoCase( spname, "VAR_SPEC" ) ) {
+    for( i = 0; i < SpeciesNr; i++ ) 
+      if( SpeciesTable[i].type == VAR_SPC ) 
+        SpeciesTable[i].type = type;
+    return;
+  }
+  if( EqNoCase( spname, "FIX_SPEC" ) ) {
+    for( i = 0; i < SpeciesNr; i++ ) 
+      if( SpeciesTable[i].type == FIX_SPC ) 
+        SpeciesTable[i].type = type;
+    return;
+  }
+  if( EqNoCase( spname, "ALL_SPEC" ) ) {
+    for( i = 0; i < SpeciesNr; i++ )
+        SpeciesTable[i].type = type;
+    return;
+  }
+
+  code = FindSpecies( spname );
+  if ( code < 0 ) {
+    ScanError("Undefined species %s.", spname );
+    return;
+  }
+  SpeciesTable[ code ].type = type; 
+}
+
+void AssignInitialValue( char *spname , char *spval )
+{
+int code;  
+double cf;
+  
+  if( EqNoCase( spname, "CFACTOR" ) ) {
+    code = sscanf( spval, "%lg", &cf );
+    if( code != 1 ) {
+      ScanWarning("Invalid CFACTOR value: %s", spval);
+      return;
+    }
+    cfactor = cf;
+    return;
+  }
+  
+  if( EqNoCase( spname, "VAR_SPEC" ) ) {
+    strcpy( varDefault, spval );
+    return;
+  }
+  
+  
+  if( EqNoCase( spname, "FIX_SPEC" ) ) {
+    strcpy( fixDefault, spval );
+    return;
+  }
+  
+  if( EqNoCase( spname, "ALL_SPEC" ) ) {
+    strcpy( varDefault, spval );
+    strcpy( fixDefault, spval );
+    return;
+  }
+  
+  code = FindSpecies( spname );
+  if ( code < 0 ) {
+    ScanError("Undefined species %s.", spname );
+    return; 
+  }     
+  strcpy( SpeciesTable[ code ].ival, spval );  
+}
+
+void StoreEquationRate( char *rate, char *label )
+{
+double f;
+char buf[ MAX_K ];
+int n;
+KREACT *kreact;
+
+  kreact = &kr[ EqnNr ]; 
+  strcpy( kreact->label, label );
+  if( isPhoto ) {
+    kreact->type = PHOTO;
+    strcpy( kreact->val.st, rate );
+    isPhoto = 0;
+    return;
+  }
+  n = sscanf( rate, "%lf%s", &f, buf );
+  if ( n == 1 ) {
+    kreact->type = NUMBER;
+    kreact->val.f = f;
+    return;
+  }
+  kreact->type = EXPRESION;
+  strcpy( kreact->val.st, rate );
+  return;
+}
+
+void CheckEquation()
+{
+int i,j;
+int equal, index;
+double r1, r2;
+float atcnt[ MAX_ATNR ];
+int spc;
+SPECIES_DEF *sp;
+char errmsg[80];
+int err;
+
+  if( EqnNr >= MAX_EQN ) {
+    Error("Too many equations");
+    return;
+  }
+  
+  for( i = 0; i < AtomNr; i++ )
+    atcnt[i] = 0;
+    
+  for( spc = 0; spc < SpcNr; spc++ ) {
+    sp = &SpeciesTable[ Code[spc] ];
+    if( Stoich_Left[spc][EqnNr] != 0 ) {
+      for( i = 0; i < sp->nratoms; i++ )  
+        atcnt[ sp->atoms[i].code ] += Stoich_Left[spc][EqnNr] * sp->atoms[i].nr;
+    }
+    if( Stoich_Right[spc][EqnNr] != 0 ) {
+      for( i = 0; i < sp->nratoms; i++ ) 
+        atcnt[ sp->atoms[i].code ] -= Stoich_Right[spc][EqnNr] * sp->atoms[i].nr; 
+    }
+  } 
+  
+  *errmsg = 0;
+  err = 0;
+  
+  for( i = 0; i < AtomNr; i++ ) {
+    if ( Abs( atcnt[i] ) > 1e-5 ) {
+      if ( AtomTable[i].check == CANCEL_CHECK ) {
+        err = 0;
+        break;
+      }
+      if ( AtomTable[i].check == NO_CHECK ) {
+        continue;
+      }
+      if ( AtomTable[i].check == DO_CHECK ) {
+        err = 1;
+        sprintf(errmsg, "%s %s", errmsg, AtomTable[i].name );
+        continue;
+      }
+    }
+  } 
+   
+  if ( err ) 
+    ScanWarning( "(eqn %d) Atom balance mismatch for:%s.", EqnNr+1, errmsg );    
+        
+  for( j = 0; j < SpcNr; j++ )
+    if( Stoich_Left[j][EqnNr] != 0 )
+      { index = j; break; }
+  for( i = 0; i < EqnNr; i++ ) {
+    equal = 1;
+    r1 = Stoich_Left[index][EqnNr];
+    r2 = Stoich_Left[index][i];
+    for( j = 0; j < SpcNr; j++ ) {
+      if( r1 * Stoich_Left[j][i] != r2 * Stoich_Left[j][EqnNr] )
+	{ equal = 0; break; }
+      if( r1 * Stoich_Right[j][i] != r2 * Stoich_Right[j][EqnNr] )
+	{ equal = 0; break; }
+    }
+    if ( equal ) {
+      if( r1 == r2 )
+        ScanError( "Duplicate equation: "
+        	   " (eqn<%d> = eqn<%d> )", i+1, EqnNr+1 );
+      else
+	ScanError( "Linearly dependent equations: "
+		   "( %.0f eqn<%d> = %.0f eqn<%d> )",
+		   r1, i+1, r2, EqnNr+1 );
+      break;
+    }
+  }
+  EqnNr++;
+}
+
+void ProcessTerm( int side, char *sign, char *coef, char *spname  )
+{
+int code;  
+CODE crtSpec;
+double val;
+char buf[40];
+
+
+  code = FindSpecies( spname );
+  if ( code < 0 ) {
+    ScanError("Undefined species %s.", spname );
+    return;
+  }
+  
+  crtSpec = ReverseCode[ code ];
+
+  if(EqNoCase(spname,"HV")) isPhoto = 1;
+
+  if ( crtSpec == NO_CODE ) {
+    if( MAX_SPECIES - code <= 2 ) falseSpcNr++;
+    crtSpec = SpcNr++;
+    Code[ crtSpec ] = code;
+    ReverseCode[ code ] = crtSpec;
+  }
+  
+  strcpy( buf, sign ); 
+  strcat( buf, coef ); 
+  sscanf( buf, "%lf", &val );
+
+  switch( side ) {
+    case LHS: Stoich_Left[ crtSpec ][ EqnNr ] += val;
+	      Stoich[ crtSpec ][ EqnNr ] -= val;
+	      Reactive[ crtSpec ] = 1;
+	      break;
+    case RHS: Stoich_Right[ crtSpec ][ EqnNr ] += val;
+	      Stoich[ crtSpec ][ EqnNr ] += val;
+	      break;
+  }
+}
+           
+void AddLumpSpecies( char *spname )
+{
+int code;  
+  
+  code = FindSpecies( spname );
+  if ( code < 0 ) {
+    ScanError("Undefined species %s.", spname );
+    return;
+  }
+
+  /* ... */                
+
+}
+
+void CheckLump( char *spname )
+{
+int code;  
+  
+  code = FindSpecies( spname );
+  if ( code < 0 ) {
+    ScanError("Undefined species %s.", spname );
+    return;
+  }
+
+  /* ... */                
+
+}
+
+void AddLookAt( char *spname )
+{
+int code;  
+  
+  code = FindSpecies( spname );
+  if ( code < 0 ) {
+    ScanError("Undefined species %s.", spname );
+    return;
+  }
+
+  SpeciesTable[ code ].lookat = 1;   
+}
+
+void LookAtAll()
+{
+int i;
+
+  for( i=0; i<SpeciesNr; i++ )
+    SpeciesTable[ i ].lookat = 1;  
+}
+
+void AddMonitor( char *spname )
+{
+int code;  
+  
+  code = FindSpecies( spname );
+  if ( code >= 0 ) {
+    SpeciesTable[ code ].moni = 1;
+    return;
+  } 
+  
+  code = FindAtom( spname );
+  if ( code >= 0 ) {
+    AtomTable[ code ].masscheck = 1;
+    return;
+  }
+    
+  ScanError("Undefined species or atom %s.", spname );
+}
+
+void AddTransport( char *spname )
+{
+int code;  
+  
+  code = FindSpecies( spname );
+  if ( code < 0 ) {
+    ScanError("Undefined species %s.", spname );
+    return;
+  }
+
+  SpeciesTable[ code ].trans = 1;   
+}
+
+void TransportAll()
+{
+int i;
+
+  for( i=0; i<SpeciesNr; i++ )
+    SpeciesTable[ i ].trans = 1;  
+}
+
+void AddUseFile( char *fname )
+{
+  fileList[fileNr] = (char*)malloc(strlen(fname)+1);
+  strcpy(fileList[fileNr], fname);
+  fileNr++;
+}
+
+char * AppendString( char * s1, char * s2, int * maxlen, int addlen ) 
+{
+char * tmp;
+
+  *maxlen += addlen;
+
+  if( !s1 ) {
+    s1 = (char*)malloc( *maxlen );
+    *s1 = 0;
+  }    
+  
+  if( strlen( s1 ) + strlen( s2 ) >= *maxlen ) {
+    s1 = (char*)realloc( (void*)s1, *maxlen );
+  }
+  strcat( s1, s2 ); 
+  return s1;
+}
+
+char * ReplaceString( char * s1, char * s2, int * maxlen, int addlen ) 
+{
+char * tmp;
+
+  if( s1 ) free(s1);
+
+  *maxlen = strlen( s2 );
+  s1 = (char*)malloc( 1+*maxlen );
+  strcpy( s1, s2 );
+
+  return s1;
+}
+
+void AddInlineCode( char * ctx, char * s )
+{
+ICODE * c;
+int i, key, type;
+int totallength; /* mz_rs_20050607 */
+  
+  c = NULL;
+  
+  for( i = 0; i < INLINE_OPT; i++ ) 
+    if( EqNoCase( ctx, InlineKeys[i].kname ) ) {
+      key = InlineKeys[i].key;
+      c = &InlineCode[key];
+      type = InlineKeys[i].type;
+      break;
+    }
+  if( !c ) {
+    printf( "\n'%s': Unknown inline option (ignored)", ctx );
+    return;
+  }
+
+  /*  mz_rs_20050607+ */
+  if (c->code) 
+    totallength = strlen( c->code )+strlen( s );
+  else
+    totallength = strlen( s );
+  if (totallength>MAX_INLINE)
+    ScanError("\nInline code for %s is too long (%d>%d).\nIncrease MAX_INLINE in scan.h and recompile kpp!", 
+              ctx, totallength, MAX_INLINE);    
+  /*  mz_rs_20050607- */
+
+  switch( type ) {
+    case APPEND:  c->code = AppendString( c->code, s, &c->maxlen, MAX_INLINE );
+                  break;
+    case REPLACE: c->code = ReplaceString( c->code, s, &c->maxlen, MAX_INLINE );
+                  break;
+  }
+}
+
+int ParseEquationFile( char * filename )
+{
+int i,j;
+int code;
+
+  for( i = 0; i < MAX_SPECIES; i++ ) {
+    ReverseCode[i] = NO_CODE;
+    Reactive[i] = 0;
+  }
+  for( i = 0; i < MAX_SPECIES; i++ ) {
+    for( j = 0; j < MAX_EQN; j++ ) {
+      Stoich_Left[i][j] = 0;
+      Stoich[i][j] = 0;
+      Stoich_Right[i][j] = 0;
+    }
+  }
+  for( i = 0; i < MAX_SPECIES; i++ ) {
+    SpeciesTable[ i ].nratoms = 0;
+  }
+  
+  for( i = 0; i < INLINE_OPT; i++ ) {
+    InlineCode[i].code = NULL;
+    InlineCode[i].maxlen = 0;
+  }  
+  
+  EqnNr = 0;
+  SpcNr = 0;
+  
+  DeclareAtom( "CANCEL" );   
+  SetAtomType( "CANCEL", CANCEL_CHECK );
+  DeclareAtom( "IGNORE" );   
+  SetAtomType( "IGNORE", NO_CHECK );
+  DeclareSpecies( DUMMY_SPC, "???" );
+  StoreSpecies( MAX_SPECIES-1, DUMMY_SPC, "HV" );
+  AddAtom( "CANCEL", "1" );
+  StoreSpecies( MAX_SPECIES-2, DUMMY_SPC, "PROD" );
+
+  code = Parser( filename );
+
+  return code;
+}
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/src/scanutil.c
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/src/scanutil.c	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/src/scanutil.c	(revision 2696)
@@ -0,0 +1,202 @@
+/******************************************************************************
+
+  KPP - The Kinetic PreProcessor
+        Builds simulation code for chemical kinetic systems
+
+  Copyright (C) 1995-1996 Valeriu Damian and Adrian Sandu
+  Copyright (C) 1997-2005 Adrian Sandu
+
+  KPP is free software; you can redistribute it and/or modify it under the
+  terms of the GNU General Public License as published by the Free Software
+  Foundation (http://www.gnu.org/copyleft/gpl.html); either version 2 of the
+  License, or (at your option) any later version.
+
+  KPP is distributed in the hope that it will be useful, but WITHOUT ANY
+  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+  FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+  details.
+
+  You should have received a copy of the GNU General Public License along
+  with this program; if not, consult http://www.gnu.org/copyleft/gpl.html or
+  write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+  Boston, MA  02111-1307,  USA.
+
+  Adrian Sandu
+  Computer Science Department
+  Virginia Polytechnic Institute and State University
+  Blacksburg, VA 24060
+  E-mail: sandu@cs.vt.edu
+
+******************************************************************************/
+
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <malloc.h>
+#include <unistd.h>
+#include <string.h>
+#include "gdata.h"
+#include "scan.h"
+
+#define MAX_BUFFER 200
+
+void ScanError( char *fmt, ... )
+{
+Va_list args;
+char buf[ MAX_BUFFER ];
+
+  Va_start( args, fmt );
+  vsprintf( buf, fmt, args );
+  va_end( args );
+  fprintf( stdout, "Error :%s:%d: %s\n", crt_filename, crt_line_no, buf );
+  nError++;
+}
+
+void ParserError( char *fmt, ...  )
+{
+Va_list args;
+char buf[ MAX_BUFFER ];
+
+  Va_start( args, fmt );
+  vsprintf( buf, fmt, args );
+  va_end( args );
+  fprintf( stdout, "Error :%s:%d: %s\n", crtFile, crtLine, buf );
+  nError++;
+}
+
+void ScanWarning( char *fmt, ...  )
+{
+Va_list args;
+char buf[ MAX_BUFFER ];
+
+  Va_start( args, fmt );
+  vsprintf( buf, fmt, args );
+  va_end( args );
+  fprintf( stdout, "Warning :%s:%d: %s\n", crt_filename, crt_line_no, buf );
+  nWarning++;
+}
+
+void ParserWarning( char *fmt, ...  )
+{
+Va_list args;
+char buf[ MAX_BUFFER ];
+
+  Va_start( args, fmt );
+  vsprintf( buf, fmt, args );
+  va_end( args );
+  fprintf( stdout, "Warning :%s:%d: %s\n", crtFile, crtLine, buf );
+  nWarning++;
+}
+
+void Error( char *fmt, ...  )
+{
+Va_list args;
+char buf[ MAX_BUFFER ];
+
+  Va_start( args, fmt );
+  vsprintf( buf, fmt, args );
+  va_end( args );
+  fprintf( stdout, "Error : %s\n", buf );
+  nError++;
+}
+
+void Warning( char *fmt, ...  )
+{
+Va_list args;
+char buf[ MAX_BUFFER ];
+
+  Va_start( args, fmt );
+  vsprintf( buf, fmt, args );
+  va_end( args );
+  fprintf( stdout, "Warning : %s\n", buf );
+  nWarning++;
+}
+
+void Message( char *fmt, ...  )
+{
+Va_list args;
+char buf[ MAX_BUFFER ];
+
+  Va_start( args, fmt );
+  vsprintf( buf, fmt, args );
+  va_end( args );
+  fprintf( stdout, "    Message :%s:%d: %s\n", crt_filename, crt_line_no, buf );
+}
+
+void FatalError( int status, char *fmt, ... )
+{
+Va_list args;
+char buf[ MAX_BUFFER ];
+
+  Va_start( args, fmt );
+  vsprintf( buf, fmt, args );
+  va_end( args );
+  fprintf( stdout, "\nFatal error : %s\nProgram aborted\n", buf );
+  exit(status);
+}
+
+char * FileName( char *fname, char *env, char *dir, char *ext )
+{
+static char pathname[MAX_PATH];
+char *path;
+char *crtpath;
+char *p;
+FILE *fp;
+static char name[MAX_PATH];
+int noext;
+
+  strcpy(name, fname);
+  p = name + strlen(name);
+  noext = 1;
+  while( p > name ) {  
+    if( *p == '.') {
+      noext = 0; 
+      break;
+    }
+    if( *p == '/' ) break;
+    p--;
+  } 
+
+  if( noext ) strcat(name, ext);
+
+  fp = fopen(name,"r");
+  if( fp ) {
+    fclose(fp);
+    return name;
+  }  
+   
+  path = getenv(env); 
+  if( path ) {
+    crtpath = path;
+    p = pathname;
+    while( 1 ) {
+      if( isspace(*crtpath) ) {
+        crtpath++;
+        continue;
+      }
+      if((*crtpath == ':')||(*crtpath==0)) {
+        *p = 0;
+        sprintf(pathname,"%s/%s",pathname,name);
+        fp = fopen(pathname,"r");
+        if( fp ) {
+          fclose(fp);
+          return pathname;
+        }  
+        if (*crtpath==0) break;
+        crtpath++;
+        p = pathname;
+        continue;
+      }
+      *p++ = *crtpath++;
+    }
+  }
+  
+  sprintf(pathname, "%s/%s/%s", Home, dir, name);
+  fp = fopen(pathname,"r");
+  if( fp ) {
+    fclose(fp);
+    return pathname;
+  }  
+    
+  return name;
+}
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/src/y.tab.c
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/src/y.tab.c	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/src/y.tab.c	(revision 2696)
@@ -0,0 +1,2547 @@
+/* A Bison parser, made by GNU Bison 2.7.  */
+
+/* Bison implementation for Yacc-like parsers in C
+   
+      Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc.
+   
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation, either version 3 of the License, or
+   (at your option) any later version.
+   
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+   
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* As a special exception, you may create a larger work that contains
+   part or all of the Bison parser skeleton and distribute that work
+   under terms of your choice, so long as that work isn't itself a
+   parser generator using the skeleton or a modified version thereof
+   as a parser skeleton.  Alternatively, if you modify or redistribute
+   the parser skeleton itself, you may (at your option) remove this
+   special exception, which will cause the skeleton and the resulting
+   Bison output files to be licensed under the GNU General Public
+   License without this special exception.
+   
+   This special exception was added by the Free Software Foundation in
+   version 2.2 of Bison.  */
+
+/* C LALR(1) parser skeleton written by Richard Stallman, by
+   simplifying the original so-called "semantic" parser.  */
+
+/* All symbols defined below should begin with yy or YY, to avoid
+   infringing on user name space.  This should be done even for local
+   variables, as they might otherwise be expanded by user macros.
+   There are some unavoidable exceptions within include files to
+   define necessary library symbols; they are noted "INFRINGES ON
+   USER NAME SPACE" below.  */
+
+/* Identify Bison output.  */
+#define YYBISON 1
+
+/* Bison version.  */
+#define YYBISON_VERSION "2.7"
+
+/* Skeleton name.  */
+#define YYSKELETON_NAME "yacc.c"
+
+/* Pure parsers.  */
+#define YYPURE 0
+
+/* Push parsers.  */
+#define YYPUSH 0
+
+/* Pull parsers.  */
+#define YYPULL 1
+
+
+
+
+/* Copy the first part of user declarations.  */
+/* Line 371 of yacc.c  */
+#line 37 "scan.y"
+
+  #include <stdio.h>
+  #include <stdlib.h>
+  #include <malloc.h>
+  #include <string.h>
+  #include <unistd.h>
+  #include "scan.h"
+
+  #define __YYSCLASS
+
+  #define YYDEBUG 1
+  extern char yytext[];
+  extern FILE * yyin;
+  
+  int nError   = 0;
+  int nWarning = 0;
+
+  int crt_section;
+  int eqState;
+  int isPhoto = 0;
+
+  char crt_term[ 30 ];
+  char crt_coef[ 30 ];
+
+  char * InlineBuf;
+  int InlineLen;
+
+  void SemicolonError();
+  int yyerrflag=0;
+
+  void ParserErrorMessage();
+  void yyerror(char *);
+
+
+/* Line 371 of yacc.c  */
+#line 103 "y.tab.c"
+
+# ifndef YY_NULL
+#  if defined __cplusplus && 201103L <= __cplusplus
+#   define YY_NULL nullptr
+#  else
+#   define YY_NULL 0
+#  endif
+# endif
+
+/* Enabling verbose error messages.  */
+#ifdef YYERROR_VERBOSE
+# undef YYERROR_VERBOSE
+# define YYERROR_VERBOSE 1
+#else
+# define YYERROR_VERBOSE 0
+#endif
+
+/* In a future release of Bison, this section will be replaced
+   by #include "y.tab.h".  */
+#ifndef YY_YY_Y_TAB_H_INCLUDED
+# define YY_YY_Y_TAB_H_INCLUDED
+/* Enabling traces.  */
+#ifndef YYDEBUG
+# define YYDEBUG 0
+#endif
+#if YYDEBUG
+extern int yydebug;
+#endif
+
+/* Tokens.  */
+#ifndef YYTOKENTYPE
+# define YYTOKENTYPE
+   /* Put the tokens into the symbol table, so that GDB and other debuggers
+      know about them.  */
+   enum yytokentype {
+     JACOBIAN = 258,
+     DOUBLE = 259,
+     FUNCTION = 260,
+     DEFVAR = 261,
+     DEFRAD = 262,
+     DEFFIX = 263,
+     SETVAR = 264,
+     SETRAD = 265,
+     SETFIX = 266,
+     HESSIAN = 267,
+     STOICMAT = 268,
+     STOCHASTIC = 269,
+     DECLARE = 270,
+     INITVALUES = 271,
+     EQUATIONS = 272,
+     LUMP = 273,
+     INIEQUAL = 274,
+     EQNEQUAL = 275,
+     EQNCOLON = 276,
+     LMPCOLON = 277,
+     LMPPLUS = 278,
+     SPCPLUS = 279,
+     SPCEQUAL = 280,
+     ATOMDECL = 281,
+     CHECK = 282,
+     CHECKALL = 283,
+     REORDER = 284,
+     MEX = 285,
+     DUMMYINDEX = 286,
+     EQNTAGS = 287,
+     LOOKAT = 288,
+     LOOKATALL = 289,
+     TRANSPORT = 290,
+     TRANSPORTALL = 291,
+     MONITOR = 292,
+     USES = 293,
+     SPARSEDATA = 294,
+     WRITE_ATM = 295,
+     WRITE_SPC = 296,
+     WRITE_MAT = 297,
+     WRITE_OPT = 298,
+     INITIALIZE = 299,
+     XGRID = 300,
+     YGRID = 301,
+     ZGRID = 302,
+     USE = 303,
+     LANGUAGE = 304,
+     INTFILE = 305,
+     DRIVER = 306,
+     RUN = 307,
+     INLINE = 308,
+     ENDINLINE = 309,
+     PARAMETER = 310,
+     SPCSPC = 311,
+     INISPC = 312,
+     INIVALUE = 313,
+     EQNSPC = 314,
+     EQNSIGN = 315,
+     EQNCOEF = 316,
+     RATE = 317,
+     LMPSPC = 318,
+     SPCNR = 319,
+     ATOMID = 320,
+     LKTID = 321,
+     MNIID = 322,
+     INLCTX = 323,
+     INCODE = 324,
+     SSPID = 325,
+     EQNLESS = 326,
+     EQNTAG = 327,
+     EQNGREATER = 328,
+     TPTID = 329,
+     USEID = 330
+   };
+#endif
+
+
+#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
+typedef union YYSTYPE
+{
+/* Line 387 of yacc.c  */
+#line 72 "scan.y"
+
+  char str[80];
+
+
+/* Line 387 of yacc.c  */
+#line 226 "y.tab.c"
+} YYSTYPE;
+# define YYSTYPE_IS_TRIVIAL 1
+# define yystype YYSTYPE /* obsolescent; will be withdrawn */
+# define YYSTYPE_IS_DECLARED 1
+#endif
+
+extern YYSTYPE yylval;
+
+#ifdef YYPARSE_PARAM
+#if defined __STDC__ || defined __cplusplus
+int yyparse (void *YYPARSE_PARAM);
+#else
+int yyparse ();
+#endif
+#else /* ! YYPARSE_PARAM */
+#if defined __STDC__ || defined __cplusplus
+int yyparse (void);
+#else
+int yyparse ();
+#endif
+#endif /* ! YYPARSE_PARAM */
+
+#endif /* !YY_YY_Y_TAB_H_INCLUDED  */
+
+/* Copy the second part of user declarations.  */
+
+/* Line 390 of yacc.c  */
+#line 254 "y.tab.c"
+
+#ifdef short
+# undef short
+#endif
+
+#ifdef YYTYPE_UINT8
+typedef YYTYPE_UINT8 yytype_uint8;
+#else
+typedef unsigned char yytype_uint8;
+#endif
+
+#ifdef YYTYPE_INT8
+typedef YYTYPE_INT8 yytype_int8;
+#elif (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+typedef signed char yytype_int8;
+#else
+typedef short int yytype_int8;
+#endif
+
+#ifdef YYTYPE_UINT16
+typedef YYTYPE_UINT16 yytype_uint16;
+#else
+typedef unsigned short int yytype_uint16;
+#endif
+
+#ifdef YYTYPE_INT16
+typedef YYTYPE_INT16 yytype_int16;
+#else
+typedef short int yytype_int16;
+#endif
+
+#ifndef YYSIZE_T
+# ifdef __SIZE_TYPE__
+#  define YYSIZE_T __SIZE_TYPE__
+# elif defined size_t
+#  define YYSIZE_T size_t
+# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
+#  define YYSIZE_T size_t
+# else
+#  define YYSIZE_T unsigned int
+# endif
+#endif
+
+#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
+
+#ifndef YY_
+# if defined YYENABLE_NLS && YYENABLE_NLS
+#  if ENABLE_NLS
+#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
+#   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
+#  endif
+# endif
+# ifndef YY_
+#  define YY_(Msgid) Msgid
+# endif
+#endif
+
+/* Suppress unused-variable warnings by "using" E.  */
+#if ! defined lint || defined __GNUC__
+# define YYUSE(E) ((void) (E))
+#else
+# define YYUSE(E) /* empty */
+#endif
+
+/* Identity function, used to suppress warnings about constant conditions.  */
+#ifndef lint
+# define YYID(N) (N)
+#else
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+static int
+YYID (int yyi)
+#else
+static int
+YYID (yyi)
+    int yyi;
+#endif
+{
+  return yyi;
+}
+#endif
+
+#if ! defined yyoverflow || YYERROR_VERBOSE
+
+/* The parser invokes alloca or malloc; define the necessary symbols.  */
+
+# ifdef YYSTACK_USE_ALLOCA
+#  if YYSTACK_USE_ALLOCA
+#   ifdef __GNUC__
+#    define YYSTACK_ALLOC __builtin_alloca
+#   elif defined __BUILTIN_VA_ARG_INCR
+#    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
+#   elif defined _AIX
+#    define YYSTACK_ALLOC __alloca
+#   elif defined _MSC_VER
+#    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
+#    define alloca _alloca
+#   else
+#    define YYSTACK_ALLOC alloca
+#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
+      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
+#     ifndef EXIT_SUCCESS
+#      define EXIT_SUCCESS 0
+#     endif
+#    endif
+#   endif
+#  endif
+# endif
+
+# ifdef YYSTACK_ALLOC
+   /* Pacify GCC's `empty if-body' warning.  */
+#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
+#  ifndef YYSTACK_ALLOC_MAXIMUM
+    /* The OS might guarantee only one guard page at the bottom of the stack,
+       and a page size can be as small as 4096 bytes.  So we cannot safely
+       invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
+       to allow for a few compiler-allocated temporary stack slots.  */
+#   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
+#  endif
+# else
+#  define YYSTACK_ALLOC YYMALLOC
+#  define YYSTACK_FREE YYFREE
+#  ifndef YYSTACK_ALLOC_MAXIMUM
+#   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
+#  endif
+#  if (defined __cplusplus && ! defined EXIT_SUCCESS \
+       && ! ((defined YYMALLOC || defined malloc) \
+	     && (defined YYFREE || defined free)))
+#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
+#   ifndef EXIT_SUCCESS
+#    define EXIT_SUCCESS 0
+#   endif
+#  endif
+#  ifndef YYMALLOC
+#   define YYMALLOC malloc
+#   if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
+#   endif
+#  endif
+#  ifndef YYFREE
+#   define YYFREE free
+#   if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+void free (void *); /* INFRINGES ON USER NAME SPACE */
+#   endif
+#  endif
+# endif
+#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
+
+
+#if (! defined yyoverflow \
+     && (! defined __cplusplus \
+	 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
+
+/* A type that is properly aligned for any stack member.  */
+union yyalloc
+{
+  yytype_int16 yyss_alloc;
+  YYSTYPE yyvs_alloc;
+};
+
+/* The size of the maximum gap between one aligned stack and the next.  */
+# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
+
+/* The size of an array large to enough to hold all stacks, each with
+   N elements.  */
+# define YYSTACK_BYTES(N) \
+     ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
+      + YYSTACK_GAP_MAXIMUM)
+
+# define YYCOPY_NEEDED 1
+
+/* Relocate STACK from its old location to the new one.  The
+   local variables YYSIZE and YYSTACKSIZE give the old and new number of
+   elements in the stack, and YYPTR gives the new location of the
+   stack.  Advance YYPTR to a properly aligned location for the next
+   stack.  */
+# define YYSTACK_RELOCATE(Stack_alloc, Stack)				\
+    do									\
+      {									\
+	YYSIZE_T yynewbytes;						\
+	YYCOPY (&yyptr->Stack_alloc, Stack, yysize);			\
+	Stack = &yyptr->Stack_alloc;					\
+	yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
+	yyptr += yynewbytes / sizeof (*yyptr);				\
+      }									\
+    while (YYID (0))
+
+#endif
+
+#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
+/* Copy COUNT objects from SRC to DST.  The source and destination do
+   not overlap.  */
+# ifndef YYCOPY
+#  if defined __GNUC__ && 1 < __GNUC__
+#   define YYCOPY(Dst, Src, Count) \
+      __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
+#  else
+#   define YYCOPY(Dst, Src, Count)              \
+      do                                        \
+        {                                       \
+          YYSIZE_T yyi;                         \
+          for (yyi = 0; yyi < (Count); yyi++)   \
+            (Dst)[yyi] = (Src)[yyi];            \
+        }                                       \
+      while (YYID (0))
+#  endif
+# endif
+#endif /* !YYCOPY_NEEDED */
+
+/* YYFINAL -- State number of the termination state.  */
+#define YYFINAL  124
+/* YYLAST -- Last index in YYTABLE.  */
+#define YYLAST   192
+
+/* YYNTOKENS -- Number of terminals.  */
+#define YYNTOKENS  77
+/* YYNNTS -- Number of nonterminals.  */
+#define YYNNTS  35
+/* YYNRULES -- Number of rules.  */
+#define YYNRULES  111
+/* YYNRULES -- Number of states.  */
+#define YYNSTATES  202
+
+/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
+#define YYUNDEFTOK  2
+#define YYMAXUTOK   330
+
+#define YYTRANSLATE(YYX)						\
+  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
+
+/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
+static const yytype_uint8 yytranslate[] =
+{
+       0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,    76,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
+       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
+      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
+      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
+      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
+      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
+      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
+      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
+      75
+};
+
+#if YYDEBUG
+/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
+   YYRHS.  */
+static const yytype_uint16 yyprhs[] =
+{
+       0,     0,     3,     5,     8,    11,    14,    17,    20,    23,
+      26,    29,    32,    35,    38,    41,    44,    47,    50,    53,
+      56,    59,    62,    65,    68,    71,    74,    77,    80,    83,
+      85,    87,    89,    91,    93,    95,    97,   100,   103,   106,
+     109,   112,   115,   120,   123,   126,   129,   132,   135,   138,
+     141,   143,   147,   150,   153,   155,   159,   162,   165,   167,
+     171,   174,   177,   179,   183,   186,   189,   191,   195,   198,
+     201,   203,   207,   210,   213,   215,   219,   222,   225,   227,
+     229,   233,   235,   239,   241,   244,   246,   250,   253,   256,
+     260,   264,   267,   270,   275,   279,   282,   284,   288,   291,
+     294,   298,   301,   303,   306,   308,   312,   315,   318,   322,
+     326,   329
+};
+
+/* YYRHS -- A `-1'-separated list of the rules' RHS.  */
+static const yytype_int8 yyrhs[] =
+{
+      78,     0,    -1,    79,    -1,    79,    78,    -1,     3,    55,
+      -1,    12,    55,    -1,    15,    55,    -1,    13,    55,    -1,
+       4,    55,    -1,    29,    55,    -1,    30,    55,    -1,    31,
+      55,    -1,    32,    55,    -1,     5,    55,    -1,    14,    55,
+      -1,    26,    81,    -1,    27,    81,    -1,     6,    93,    -1,
+       7,    93,    -1,     8,    93,    -1,     9,    91,    -1,    10,
+      91,    -1,    11,    91,    -1,    16,    99,    -1,    17,   101,
+      -1,    18,   109,    -1,    33,    83,    -1,    37,    85,    -1,
+      35,    87,    -1,    28,    -1,    34,    -1,    36,    -1,    40,
+      -1,    41,    -1,    42,    -1,    43,    -1,    48,    55,    -1,
+      49,    55,    -1,    44,    55,    -1,    45,    55,    -1,    46,
+      55,    -1,    47,    55,    -1,    53,    68,   111,    54,    -1,
+      53,     1,    -1,    50,    55,    -1,    51,    55,    -1,    52,
+      55,    -1,    38,    89,    -1,    39,    55,    -1,    80,    76,
+      -1,    76,    -1,    81,    82,    80,    -1,    82,    80,    -1,
+       1,    80,    -1,    65,    -1,    83,    84,    80,    -1,    84,
+      80,    -1,     1,    80,    -1,    66,    -1,    85,    86,    80,
+      -1,    86,    80,    -1,     1,    80,    -1,    67,    -1,    87,
+      88,    80,    -1,    88,    80,    -1,     1,    80,    -1,    74,
+      -1,    89,    90,    80,    -1,    90,    80,    -1,     1,    80,
+      -1,    75,    -1,    91,    92,    80,    -1,    92,    80,    -1,
+       1,    80,    -1,    70,    -1,    93,    94,    80,    -1,    94,
+      80,    -1,     1,    80,    -1,    95,    -1,    96,    -1,    56,
+      25,    97,    -1,    56,    -1,    97,    24,    98,    -1,    98,
+      -1,    64,    56,    -1,    56,    -1,    99,   100,    80,    -1,
+     100,    80,    -1,     1,    80,    -1,    57,    19,    58,    -1,
+     101,   102,    80,    -1,   102,    80,    -1,     1,    80,    -1,
+     104,   105,   106,   103,    -1,   105,   106,   103,    -1,    62,
+     103,    -1,    62,    -1,    71,    72,    73,    -1,   107,    20,
+      -1,   107,    21,    -1,   107,    60,   108,    -1,    60,   108,
+      -1,   108,    -1,    61,    59,    -1,    59,    -1,   109,   110,
+      80,    -1,   110,    80,    -1,     1,    80,    -1,    63,    23,
+     110,    -1,    63,    22,    63,    -1,   111,    69,    -1,    69,
+      -1
+};
+
+/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
+static const yytype_uint16 yyrline[] =
+{
+       0,    96,    96,    97,    99,   102,   105,   108,   111,   114,
+     117,   120,   123,   126,   129,   132,   134,   136,   138,   140,
+     142,   144,   146,   148,   150,   152,   154,   156,   158,   160,
+     162,   164,   166,   168,   170,   172,   174,   176,   178,   180,
+     182,   184,   186,   191,   193,   195,   197,   199,   201,   205,
+     208,   210,   211,   212,   215,   222,   223,   224,   227,   231,
+     232,   233,   236,   240,   241,   242,   245,   249,   250,   251,
+     254,   258,   259,   260,   263,   271,   272,   273,   276,   277,
+     279,   287,   295,   296,   298,   301,   305,   306,   307,   310,
+     313,   314,   315,   320,   325,   330,   334,   338,   342,   345,
+     348,   351,   354,   358,   362,   367,   368,   369,   372,   375,
+     380,   384
+};
+#endif
+
+#if YYDEBUG || YYERROR_VERBOSE || 0
+/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
+   First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
+static const char *const yytname[] =
+{
+  "$end", "error", "$undefined", "JACOBIAN", "DOUBLE", "FUNCTION",
+  "DEFVAR", "DEFRAD", "DEFFIX", "SETVAR", "SETRAD", "SETFIX", "HESSIAN",
+  "STOICMAT", "STOCHASTIC", "DECLARE", "INITVALUES", "EQUATIONS", "LUMP",
+  "INIEQUAL", "EQNEQUAL", "EQNCOLON", "LMPCOLON", "LMPPLUS", "SPCPLUS",
+  "SPCEQUAL", "ATOMDECL", "CHECK", "CHECKALL", "REORDER", "MEX",
+  "DUMMYINDEX", "EQNTAGS", "LOOKAT", "LOOKATALL", "TRANSPORT",
+  "TRANSPORTALL", "MONITOR", "USES", "SPARSEDATA", "WRITE_ATM",
+  "WRITE_SPC", "WRITE_MAT", "WRITE_OPT", "INITIALIZE", "XGRID", "YGRID",
+  "ZGRID", "USE", "LANGUAGE", "INTFILE", "DRIVER", "RUN", "INLINE",
+  "ENDINLINE", "PARAMETER", "SPCSPC", "INISPC", "INIVALUE", "EQNSPC",
+  "EQNSIGN", "EQNCOEF", "RATE", "LMPSPC", "SPCNR", "ATOMID", "LKTID",
+  "MNIID", "INLCTX", "INCODE", "SSPID", "EQNLESS", "EQNTAG", "EQNGREATER",
+  "TPTID", "USEID", "';'", "$accept", "program", "section", "semicolon",
+  "atomlist", "atomdef", "lookatlist", "lookatspc", "monitorlist",
+  "monitorspc", "translist", "transspc", "uselist", "usefile",
+  "setspclist", "setspcspc", "species", "spc", "spcname", "spcdef",
+  "atoms", "atom", "initvalues", "assignment", "equations", "equation",
+  "rate", "eqntag", "lefths", "righths", "expresion", "term", "lumps",
+  "lump", "inlinecode", YY_NULL
+};
+#endif
+
+# ifdef YYPRINT
+/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
+   token YYLEX-NUM.  */
+static const yytype_uint16 yytoknum[] =
+{
+       0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
+     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
+     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
+     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
+     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
+     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
+     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
+     325,   326,   327,   328,   329,   330,    59
+};
+# endif
+
+/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
+static const yytype_uint8 yyr1[] =
+{
+       0,    77,    78,    78,    79,    79,    79,    79,    79,    79,
+      79,    79,    79,    79,    79,    79,    79,    79,    79,    79,
+      79,    79,    79,    79,    79,    79,    79,    79,    79,    79,
+      79,    79,    79,    79,    79,    79,    79,    79,    79,    79,
+      79,    79,    79,    79,    79,    79,    79,    79,    79,    80,
+      80,    81,    81,    81,    82,    83,    83,    83,    84,    85,
+      85,    85,    86,    87,    87,    87,    88,    89,    89,    89,
+      90,    91,    91,    91,    92,    93,    93,    93,    94,    94,
+      95,    96,    97,    97,    98,    98,    99,    99,    99,   100,
+     101,   101,   101,   102,   102,   103,   103,   104,   105,   106,
+     107,   107,   107,   108,   108,   109,   109,   109,   110,   110,
+     111,   111
+};
+
+/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
+static const yytype_uint8 yyr2[] =
+{
+       0,     2,     1,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     1,
+       1,     1,     1,     1,     1,     1,     2,     2,     2,     2,
+       2,     2,     4,     2,     2,     2,     2,     2,     2,     2,
+       1,     3,     2,     2,     1,     3,     2,     2,     1,     3,
+       2,     2,     1,     3,     2,     2,     1,     3,     2,     2,
+       1,     3,     2,     2,     1,     3,     2,     2,     1,     1,
+       3,     1,     3,     1,     2,     1,     3,     2,     2,     3,
+       3,     2,     2,     4,     3,     2,     1,     3,     2,     2,
+       3,     2,     1,     2,     1,     3,     2,     2,     3,     3,
+       2,     1
+};
+
+/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
+   Performed when YYTABLE doesn't specify something else to do.  Zero
+   means the default is an error.  */
+static const yytype_uint8 yydefact[] =
+{
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,    29,
+       0,     0,     0,     0,     0,    30,     0,    31,     0,     0,
+       0,    32,    33,    34,    35,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     2,     4,     8,    13,
+       0,    81,    17,     0,    78,    79,    18,    19,     0,    74,
+      20,     0,    21,    22,     5,     7,    14,     6,     0,     0,
+      23,     0,     0,   104,     0,     0,     0,    24,     0,     0,
+       0,     0,   102,     0,     0,    25,     0,     0,    54,    15,
+       0,    16,     9,    10,    11,    12,     0,    58,    26,     0,
+       0,    66,    28,     0,     0,    62,    27,     0,     0,    70,
+      47,     0,    48,    38,    39,    40,    41,    36,    37,    44,
+      45,    46,    43,     0,     1,     3,    50,    77,     0,     0,
+      76,    73,     0,    72,    88,     0,     0,    87,    92,   101,
+     103,     0,     0,    91,     0,     0,     0,    98,     0,   107,
+       0,     0,     0,   106,    53,     0,    52,    57,     0,    56,
+      65,     0,    64,    61,     0,    60,    69,     0,    68,   111,
+       0,    49,    85,     0,    80,    83,    75,    71,    89,    86,
+      97,    90,     0,    96,    94,    99,   100,   109,   108,   105,
+      51,    55,    63,    59,    67,    42,   110,    84,     0,    93,
+      95,    82
+};
+
+/* YYDEFGOTO[NTERM-NUM].  */
+static const yytype_int16 yydefgoto[] =
+{
+      -1,    45,    46,   127,    89,    90,    98,    99,   106,   107,
+     102,   103,   110,   111,    60,    61,    52,    53,    54,    55,
+     174,   175,    70,    71,    77,    78,   184,    79,    80,   145,
+      81,    82,    85,    86,   170
+};
+
+/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
+   STATE-NUM.  */
+#define YYPACT_NINF -91
+static const yytype_int16 yypact[] =
+{
+     112,    -6,    -3,     4,    11,    11,    11,     3,     3,     3,
+      30,    33,    39,    40,     8,     1,    21,     9,     9,   -91,
+      41,    42,    43,    45,     5,   -91,     6,   -91,    15,     0,
+      46,   -91,   -91,   -91,   -91,    48,    49,    51,    52,    54,
+      55,    57,    58,    76,    10,    63,   112,   -91,   -91,   -91,
+      56,   108,    14,    56,   -91,   -91,    14,    14,    56,   -91,
+      64,    56,    64,    64,   -91,   -91,   -91,   -91,    56,   116,
+      79,    56,    56,   -91,   -38,    78,    94,   -33,    56,   -20,
+     -20,    -7,   -91,    56,    34,   104,    56,    56,   -91,   103,
+      56,   103,   -91,   -91,   -91,   -91,    56,   -91,   105,    56,
+      56,   -91,    95,    56,    56,   -91,   106,    56,    56,   -91,
+      97,    56,   -91,   -91,   -91,   -91,   -91,   -91,   -91,   -91,
+     -91,   -91,   -91,   101,   -91,   -91,   -91,    98,   -32,    56,
+      98,    98,    56,    98,    98,   117,    56,    98,    98,   -91,
+     -91,   107,    56,    98,   -20,   114,    27,   -91,   -38,    98,
+     115,   104,    56,    98,    98,    56,    98,    98,    56,    98,
+      98,    56,    98,    98,    56,    98,    98,    56,    98,   -91,
+     -40,   -91,   -91,   121,   155,   -91,    98,    98,   -91,    98,
+     -91,    98,   114,   114,   -91,   -91,   -91,   -91,   -91,    98,
+      98,    98,    98,    98,    98,   -91,   -91,   -91,   -32,   -91,
+     -91,   -91
+};
+
+/* YYPGOTO[NTERM-NUM].  */
+static const yytype_int16 yypgoto[] =
+{
+     -91,   135,   -91,   -53,   164,   -25,   -91,    86,   -91,    77,
+     -91,    83,   -91,    80,    60,   -18,    85,   -21,   -91,   -91,
+     -91,   -12,   -91,   118,   -91,   110,   -90,   -91,   113,    47,
+     -63,   -71,   -91,   -65,   -91
+};
+
+/* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
+   positive, shift that token.  If negative, reduce the rule which
+   number is the opposite.  If YYTABLE_NINF, syntax error.  */
+#define YYTABLE_NINF -1
+static const yytype_uint8 yytable[] =
+{
+     130,   108,    72,   139,    58,   131,    96,   100,   133,    68,
+      87,   122,    50,   147,   195,   134,   104,   146,   137,   138,
+     152,    73,    83,    75,   172,   143,    73,    74,    75,   196,
+     149,   129,   173,   153,   154,   129,   129,   156,    76,    73,
+      74,    75,   132,   157,   132,   132,   159,   160,   185,    47,
+     162,   163,    48,   148,   165,   166,   150,   151,   168,    49,
+      73,    74,    75,   124,   155,    69,   155,    51,    62,    63,
+      51,    97,    76,    59,    88,   109,   176,   186,   123,   177,
+     101,   146,   105,   179,    84,    64,   188,   148,    65,   181,
+      56,    57,   199,   200,    66,    67,    92,    93,    94,   189,
+      95,   112,   190,   113,   114,   191,   115,   116,   192,   117,
+     118,   193,   119,   120,   194,     1,     2,     3,     4,     5,
+       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
+      16,   121,   126,   128,    59,   135,    69,   140,    17,    18,
+      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
+      29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
+      39,    40,    41,    42,    43,    44,   141,    84,    88,   101,
+     169,    97,   109,   105,   171,   178,   183,   197,   187,   198,
+     180,   125,    91,   164,   158,   161,   201,   142,   136,     0,
+     167,   182,   144
+};
+
+#define yypact_value_is_default(Yystate) \
+  (!!((Yystate) == (-91)))
+
+#define yytable_value_is_error(Yytable_value) \
+  YYID (0)
+
+static const yytype_int16 yycheck[] =
+{
+      53,     1,     1,    74,     1,    58,     1,     1,    61,     1,
+       1,     1,     1,    20,    54,    68,     1,    80,    71,    72,
+      85,    59,     1,    61,    56,    78,    59,    60,    61,    69,
+      83,    52,    64,    86,    87,    56,    57,    90,    71,    59,
+      60,    61,    60,    96,    62,    63,    99,   100,    21,    55,
+     103,   104,    55,    60,   107,   108,    22,    23,   111,    55,
+      59,    60,    61,     0,    89,    57,    91,    56,     8,     9,
+      56,    66,    71,    70,    65,    75,   129,   148,    68,   132,
+      74,   144,    67,   136,    63,    55,   151,    60,    55,   142,
+       5,     6,   182,   183,    55,    55,    55,    55,    55,   152,
+      55,    55,   155,    55,    55,   158,    55,    55,   161,    55,
+      55,   164,    55,    55,   167,     3,     4,     5,     6,     7,
+       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
+      18,    55,    76,    25,    70,    19,    57,    59,    26,    27,
+      28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
+      38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
+      48,    49,    50,    51,    52,    53,    72,    63,    65,    74,
+      69,    66,    75,    67,    76,    58,    62,    56,    63,    24,
+      73,    46,    18,   106,    98,   102,   198,    77,    70,    -1,
+     110,   144,    79
+};
+
+/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
+   symbol of state STATE-NUM.  */
+static const yytype_uint8 yystos[] =
+{
+       0,     3,     4,     5,     6,     7,     8,     9,    10,    11,
+      12,    13,    14,    15,    16,    17,    18,    26,    27,    28,
+      29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
+      39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
+      49,    50,    51,    52,    53,    78,    79,    55,    55,    55,
+       1,    56,    93,    94,    95,    96,    93,    93,     1,    70,
+      91,    92,    91,    91,    55,    55,    55,    55,     1,    57,
+      99,   100,     1,    59,    60,    61,    71,   101,   102,   104,
+     105,   107,   108,     1,    63,   109,   110,     1,    65,    81,
+      82,    81,    55,    55,    55,    55,     1,    66,    83,    84,
+       1,    74,    87,    88,     1,    67,    85,    86,     1,    75,
+      89,    90,    55,    55,    55,    55,    55,    55,    55,    55,
+      55,    55,     1,    68,     0,    78,    76,    80,    25,    94,
+      80,    80,    92,    80,    80,    19,   100,    80,    80,   108,
+      59,    72,   102,    80,   105,   106,   107,    20,    60,    80,
+      22,    23,   110,    80,    80,    82,    80,    80,    84,    80,
+      80,    88,    80,    80,    86,    80,    80,    90,    80,    69,
+     111,    76,    56,    64,    97,    98,    80,    80,    58,    80,
+      73,    80,   106,    62,   103,    21,   108,    63,   110,    80,
+      80,    80,    80,    80,    80,    54,    69,    56,    24,   103,
+     103,    98
+};
+
+#define yyerrok		(yyerrstatus = 0)
+#define yyclearin	(yychar = YYEMPTY)
+#define YYEMPTY		(-2)
+#define YYEOF		0
+
+#define YYACCEPT	goto yyacceptlab
+#define YYABORT		goto yyabortlab
+#define YYERROR		goto yyerrorlab
+
+
+/* Like YYERROR except do call yyerror.  This remains here temporarily
+   to ease the transition to the new meaning of YYERROR, for GCC.
+   Once GCC version 2 has supplanted version 1, this can go.  However,
+   YYFAIL appears to be in use.  Nevertheless, it is formally deprecated
+   in Bison 2.4.2's NEWS entry, where a plan to phase it out is
+   discussed.  */
+
+#define YYFAIL		goto yyerrlab
+#if defined YYFAIL
+  /* This is here to suppress warnings from the GCC cpp's
+     -Wunused-macros.  Normally we don't worry about that warning, but
+     some users do, and we want to make it easy for users to remove
+     YYFAIL uses, which will produce warnings from Bison 2.5.  */
+#endif
+
+#define YYRECOVERING()  (!!yyerrstatus)
+
+#define YYBACKUP(Token, Value)                                  \
+do                                                              \
+  if (yychar == YYEMPTY)                                        \
+    {                                                           \
+      yychar = (Token);                                         \
+      yylval = (Value);                                         \
+      YYPOPSTACK (yylen);                                       \
+      yystate = *yyssp;                                         \
+      goto yybackup;                                            \
+    }                                                           \
+  else                                                          \
+    {                                                           \
+      yyerror (YY_("syntax error: cannot back up")); \
+      YYERROR;							\
+    }								\
+while (YYID (0))
+
+/* Error token number */
+#define YYTERROR	1
+#define YYERRCODE	256
+
+
+/* This macro is provided for backward compatibility. */
+#ifndef YY_LOCATION_PRINT
+# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
+#endif
+
+
+/* YYLEX -- calling `yylex' with the right arguments.  */
+#ifdef YYLEX_PARAM
+# define YYLEX yylex (YYLEX_PARAM)
+#else
+# define YYLEX yylex ()
+#endif
+
+/* Enable debugging if requested.  */
+#if YYDEBUG
+
+# ifndef YYFPRINTF
+#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
+#  define YYFPRINTF fprintf
+# endif
+
+# define YYDPRINTF(Args)			\
+do {						\
+  if (yydebug)					\
+    YYFPRINTF Args;				\
+} while (YYID (0))
+
+# define YY_SYMBOL_PRINT(Title, Type, Value, Location)			  \
+do {									  \
+  if (yydebug)								  \
+    {									  \
+      YYFPRINTF (stderr, "%s ", Title);					  \
+      yy_symbol_print (stderr,						  \
+		  Type, Value); \
+      YYFPRINTF (stderr, "\n");						  \
+    }									  \
+} while (YYID (0))
+
+
+/*--------------------------------.
+| Print this symbol on YYOUTPUT.  |
+`--------------------------------*/
+
+/*ARGSUSED*/
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+static void
+yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
+#else
+static void
+yy_symbol_value_print (yyoutput, yytype, yyvaluep)
+    FILE *yyoutput;
+    int yytype;
+    YYSTYPE const * const yyvaluep;
+#endif
+{
+  FILE *yyo = yyoutput;
+  YYUSE (yyo);
+  if (!yyvaluep)
+    return;
+# ifdef YYPRINT
+  if (yytype < YYNTOKENS)
+    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
+# else
+  YYUSE (yyoutput);
+# endif
+  switch (yytype)
+    {
+      default:
+        break;
+    }
+}
+
+
+/*--------------------------------.
+| Print this symbol on YYOUTPUT.  |
+`--------------------------------*/
+
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+static void
+yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
+#else
+static void
+yy_symbol_print (yyoutput, yytype, yyvaluep)
+    FILE *yyoutput;
+    int yytype;
+    YYSTYPE const * const yyvaluep;
+#endif
+{
+  if (yytype < YYNTOKENS)
+    YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
+  else
+    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
+
+  yy_symbol_value_print (yyoutput, yytype, yyvaluep);
+  YYFPRINTF (yyoutput, ")");
+}
+
+/*------------------------------------------------------------------.
+| yy_stack_print -- Print the state stack from its BOTTOM up to its |
+| TOP (included).                                                   |
+`------------------------------------------------------------------*/
+
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+static void
+yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
+#else
+static void
+yy_stack_print (yybottom, yytop)
+    yytype_int16 *yybottom;
+    yytype_int16 *yytop;
+#endif
+{
+  YYFPRINTF (stderr, "Stack now");
+  for (; yybottom <= yytop; yybottom++)
+    {
+      int yybot = *yybottom;
+      YYFPRINTF (stderr, " %d", yybot);
+    }
+  YYFPRINTF (stderr, "\n");
+}
+
+# define YY_STACK_PRINT(Bottom, Top)				\
+do {								\
+  if (yydebug)							\
+    yy_stack_print ((Bottom), (Top));				\
+} while (YYID (0))
+
+
+/*------------------------------------------------.
+| Report that the YYRULE is going to be reduced.  |
+`------------------------------------------------*/
+
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+static void
+yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
+#else
+static void
+yy_reduce_print (yyvsp, yyrule)
+    YYSTYPE *yyvsp;
+    int yyrule;
+#endif
+{
+  int yynrhs = yyr2[yyrule];
+  int yyi;
+  unsigned long int yylno = yyrline[yyrule];
+  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
+	     yyrule - 1, yylno);
+  /* The symbols being reduced.  */
+  for (yyi = 0; yyi < yynrhs; yyi++)
+    {
+      YYFPRINTF (stderr, "   $%d = ", yyi + 1);
+      yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
+		       &(yyvsp[(yyi + 1) - (yynrhs)])
+		       		       );
+      YYFPRINTF (stderr, "\n");
+    }
+}
+
+# define YY_REDUCE_PRINT(Rule)		\
+do {					\
+  if (yydebug)				\
+    yy_reduce_print (yyvsp, Rule); \
+} while (YYID (0))
+
+/* Nonzero means print parse trace.  It is left uninitialized so that
+   multiple parsers can coexist.  */
+int yydebug;
+#else /* !YYDEBUG */
+# define YYDPRINTF(Args)
+# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
+# define YY_STACK_PRINT(Bottom, Top)
+# define YY_REDUCE_PRINT(Rule)
+#endif /* !YYDEBUG */
+
+
+/* YYINITDEPTH -- initial size of the parser's stacks.  */
+#ifndef	YYINITDEPTH
+# define YYINITDEPTH 200
+#endif
+
+/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
+   if the built-in stack extension method is used).
+
+   Do not make this value too large; the results are undefined if
+   YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
+   evaluated with infinite-precision integer arithmetic.  */
+
+#ifndef YYMAXDEPTH
+# define YYMAXDEPTH 10000
+#endif
+
+
+#if YYERROR_VERBOSE
+
+# ifndef yystrlen
+#  if defined __GLIBC__ && defined _STRING_H
+#   define yystrlen strlen
+#  else
+/* Return the length of YYSTR.  */
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+static YYSIZE_T
+yystrlen (const char *yystr)
+#else
+static YYSIZE_T
+yystrlen (yystr)
+    const char *yystr;
+#endif
+{
+  YYSIZE_T yylen;
+  for (yylen = 0; yystr[yylen]; yylen++)
+    continue;
+  return yylen;
+}
+#  endif
+# endif
+
+# ifndef yystpcpy
+#  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
+#   define yystpcpy stpcpy
+#  else
+/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
+   YYDEST.  */
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+static char *
+yystpcpy (char *yydest, const char *yysrc)
+#else
+static char *
+yystpcpy (yydest, yysrc)
+    char *yydest;
+    const char *yysrc;
+#endif
+{
+  char *yyd = yydest;
+  const char *yys = yysrc;
+
+  while ((*yyd++ = *yys++) != '\0')
+    continue;
+
+  return yyd - 1;
+}
+#  endif
+# endif
+
+# ifndef yytnamerr
+/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
+   quotes and backslashes, so that it's suitable for yyerror.  The
+   heuristic is that double-quoting is unnecessary unless the string
+   contains an apostrophe, a comma, or backslash (other than
+   backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
+   null, do not copy; instead, return the length of what the result
+   would have been.  */
+static YYSIZE_T
+yytnamerr (char *yyres, const char *yystr)
+{
+  if (*yystr == '"')
+    {
+      YYSIZE_T yyn = 0;
+      char const *yyp = yystr;
+
+      for (;;)
+	switch (*++yyp)
+	  {
+	  case '\'':
+	  case ',':
+	    goto do_not_strip_quotes;
+
+	  case '\\':
+	    if (*++yyp != '\\')
+	      goto do_not_strip_quotes;
+	    /* Fall through.  */
+	  default:
+	    if (yyres)
+	      yyres[yyn] = *yyp;
+	    yyn++;
+	    break;
+
+	  case '"':
+	    if (yyres)
+	      yyres[yyn] = '\0';
+	    return yyn;
+	  }
+    do_not_strip_quotes: ;
+    }
+
+  if (! yyres)
+    return yystrlen (yystr);
+
+  return yystpcpy (yyres, yystr) - yyres;
+}
+# endif
+
+/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
+   about the unexpected token YYTOKEN for the state stack whose top is
+   YYSSP.
+
+   Return 0 if *YYMSG was successfully written.  Return 1 if *YYMSG is
+   not large enough to hold the message.  In that case, also set
+   *YYMSG_ALLOC to the required number of bytes.  Return 2 if the
+   required number of bytes is too large to store.  */
+static int
+yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
+                yytype_int16 *yyssp, int yytoken)
+{
+  YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]);
+  YYSIZE_T yysize = yysize0;
+  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
+  /* Internationalized format string. */
+  const char *yyformat = YY_NULL;
+  /* Arguments of yyformat. */
+  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
+  /* Number of reported tokens (one for the "unexpected", one per
+     "expected"). */
+  int yycount = 0;
+
+  /* There are many possibilities here to consider:
+     - Assume YYFAIL is not used.  It's too flawed to consider.  See
+       <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
+       for details.  YYERROR is fine as it does not invoke this
+       function.
+     - If this state is a consistent state with a default action, then
+       the only way this function was invoked is if the default action
+       is an error action.  In that case, don't check for expected
+       tokens because there are none.
+     - The only way there can be no lookahead present (in yychar) is if
+       this state is a consistent state with a default action.  Thus,
+       detecting the absence of a lookahead is sufficient to determine
+       that there is no unexpected or expected token to report.  In that
+       case, just report a simple "syntax error".
+     - Don't assume there isn't a lookahead just because this state is a
+       consistent state with a default action.  There might have been a
+       previous inconsistent state, consistent state with a non-default
+       action, or user semantic action that manipulated yychar.
+     - Of course, the expected token list depends on states to have
+       correct lookahead information, and it depends on the parser not
+       to perform extra reductions after fetching a lookahead from the
+       scanner and before detecting a syntax error.  Thus, state merging
+       (from LALR or IELR) and default reductions corrupt the expected
+       token list.  However, the list is correct for canonical LR with
+       one exception: it will still contain any token that will not be
+       accepted due to an error action in a later state.
+  */
+  if (yytoken != YYEMPTY)
+    {
+      int yyn = yypact[*yyssp];
+      yyarg[yycount++] = yytname[yytoken];
+      if (!yypact_value_is_default (yyn))
+        {
+          /* Start YYX at -YYN if negative to avoid negative indexes in
+             YYCHECK.  In other words, skip the first -YYN actions for
+             this state because they are default actions.  */
+          int yyxbegin = yyn < 0 ? -yyn : 0;
+          /* Stay within bounds of both yycheck and yytname.  */
+          int yychecklim = YYLAST - yyn + 1;
+          int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
+          int yyx;
+
+          for (yyx = yyxbegin; yyx < yyxend; ++yyx)
+            if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
+                && !yytable_value_is_error (yytable[yyx + yyn]))
+              {
+                if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
+                  {
+                    yycount = 1;
+                    yysize = yysize0;
+                    break;
+                  }
+                yyarg[yycount++] = yytname[yyx];
+                {
+                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
+                  if (! (yysize <= yysize1
+                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
+                    return 2;
+                  yysize = yysize1;
+                }
+              }
+        }
+    }
+
+  switch (yycount)
+    {
+# define YYCASE_(N, S)                      \
+      case N:                               \
+        yyformat = S;                       \
+      break
+      YYCASE_(0, YY_("syntax error"));
+      YYCASE_(1, YY_("syntax error, unexpected %s"));
+      YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
+      YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
+      YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
+      YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
+# undef YYCASE_
+    }
+
+  {
+    YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
+    if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
+      return 2;
+    yysize = yysize1;
+  }
+
+  if (*yymsg_alloc < yysize)
+    {
+      *yymsg_alloc = 2 * yysize;
+      if (! (yysize <= *yymsg_alloc
+             && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
+        *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
+      return 1;
+    }
+
+  /* Avoid sprintf, as that infringes on the user's name space.
+     Don't have undefined behavior even if the translation
+     produced a string with the wrong number of "%s"s.  */
+  {
+    char *yyp = *yymsg;
+    int yyi = 0;
+    while ((*yyp = *yyformat) != '\0')
+      if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
+        {
+          yyp += yytnamerr (yyp, yyarg[yyi++]);
+          yyformat += 2;
+        }
+      else
+        {
+          yyp++;
+          yyformat++;
+        }
+  }
+  return 0;
+}
+#endif /* YYERROR_VERBOSE */
+
+/*-----------------------------------------------.
+| Release the memory associated to this symbol.  |
+`-----------------------------------------------*/
+
+/*ARGSUSED*/
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+static void
+yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
+#else
+static void
+yydestruct (yymsg, yytype, yyvaluep)
+    const char *yymsg;
+    int yytype;
+    YYSTYPE *yyvaluep;
+#endif
+{
+  YYUSE (yyvaluep);
+
+  if (!yymsg)
+    yymsg = "Deleting";
+  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
+
+  switch (yytype)
+    {
+
+      default:
+        break;
+    }
+}
+
+
+
+
+/* The lookahead symbol.  */
+int yychar;
+
+
+#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
+# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
+# define YY_IGNORE_MAYBE_UNINITIALIZED_END
+#endif
+#ifndef YY_INITIAL_VALUE
+# define YY_INITIAL_VALUE(Value) /* Nothing. */
+#endif
+
+/* The semantic value of the lookahead symbol.  */
+YYSTYPE yylval YY_INITIAL_VALUE(yyval_default);
+
+/* Number of syntax errors so far.  */
+int yynerrs;
+
+
+/*----------.
+| yyparse.  |
+`----------*/
+
+#ifdef YYPARSE_PARAM
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+int
+yyparse (void *YYPARSE_PARAM)
+#else
+int
+yyparse (YYPARSE_PARAM)
+    void *YYPARSE_PARAM;
+#endif
+#else /* ! YYPARSE_PARAM */
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+int
+yyparse (void)
+#else
+int
+yyparse ()
+
+#endif
+#endif
+{
+    int yystate;
+    /* Number of tokens to shift before error messages enabled.  */
+    int yyerrstatus;
+
+    /* The stacks and their tools:
+       `yyss': related to states.
+       `yyvs': related to semantic values.
+
+       Refer to the stacks through separate pointers, to allow yyoverflow
+       to reallocate them elsewhere.  */
+
+    /* The state stack.  */
+    yytype_int16 yyssa[YYINITDEPTH];
+    yytype_int16 *yyss;
+    yytype_int16 *yyssp;
+
+    /* The semantic value stack.  */
+    YYSTYPE yyvsa[YYINITDEPTH];
+    YYSTYPE *yyvs;
+    YYSTYPE *yyvsp;
+
+    YYSIZE_T yystacksize;
+
+  int yyn;
+  int yyresult;
+  /* Lookahead token as an internal (translated) token number.  */
+  int yytoken = 0;
+  /* The variables used to return semantic value and location from the
+     action routines.  */
+  YYSTYPE yyval;
+
+#if YYERROR_VERBOSE
+  /* Buffer for error messages, and its allocated size.  */
+  char yymsgbuf[128];
+  char *yymsg = yymsgbuf;
+  YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
+#endif
+
+#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
+
+  /* The number of symbols on the RHS of the reduced rule.
+     Keep to zero when no symbol should be popped.  */
+  int yylen = 0;
+
+  yyssp = yyss = yyssa;
+  yyvsp = yyvs = yyvsa;
+  yystacksize = YYINITDEPTH;
+
+  YYDPRINTF ((stderr, "Starting parse\n"));
+
+  yystate = 0;
+  yyerrstatus = 0;
+  yynerrs = 0;
+  yychar = YYEMPTY; /* Cause a token to be read.  */
+  goto yysetstate;
+
+/*------------------------------------------------------------.
+| yynewstate -- Push a new state, which is found in yystate.  |
+`------------------------------------------------------------*/
+ yynewstate:
+  /* In all cases, when you get here, the value and location stacks
+     have just been pushed.  So pushing a state here evens the stacks.  */
+  yyssp++;
+
+ yysetstate:
+  *yyssp = yystate;
+
+  if (yyss + yystacksize - 1 <= yyssp)
+    {
+      /* Get the current used size of the three stacks, in elements.  */
+      YYSIZE_T yysize = yyssp - yyss + 1;
+
+#ifdef yyoverflow
+      {
+	/* Give user a chance to reallocate the stack.  Use copies of
+	   these so that the &'s don't force the real ones into
+	   memory.  */
+	YYSTYPE *yyvs1 = yyvs;
+	yytype_int16 *yyss1 = yyss;
+
+	/* Each stack pointer address is followed by the size of the
+	   data in use in that stack, in bytes.  This used to be a
+	   conditional around just the two extra args, but that might
+	   be undefined if yyoverflow is a macro.  */
+	yyoverflow (YY_("memory exhausted"),
+		    &yyss1, yysize * sizeof (*yyssp),
+		    &yyvs1, yysize * sizeof (*yyvsp),
+		    &yystacksize);
+
+	yyss = yyss1;
+	yyvs = yyvs1;
+      }
+#else /* no yyoverflow */
+# ifndef YYSTACK_RELOCATE
+      goto yyexhaustedlab;
+# else
+      /* Extend the stack our own way.  */
+      if (YYMAXDEPTH <= yystacksize)
+	goto yyexhaustedlab;
+      yystacksize *= 2;
+      if (YYMAXDEPTH < yystacksize)
+	yystacksize = YYMAXDEPTH;
+
+      {
+	yytype_int16 *yyss1 = yyss;
+	union yyalloc *yyptr =
+	  (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
+	if (! yyptr)
+	  goto yyexhaustedlab;
+	YYSTACK_RELOCATE (yyss_alloc, yyss);
+	YYSTACK_RELOCATE (yyvs_alloc, yyvs);
+#  undef YYSTACK_RELOCATE
+	if (yyss1 != yyssa)
+	  YYSTACK_FREE (yyss1);
+      }
+# endif
+#endif /* no yyoverflow */
+
+      yyssp = yyss + yysize - 1;
+      yyvsp = yyvs + yysize - 1;
+
+      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
+		  (unsigned long int) yystacksize));
+
+      if (yyss + yystacksize - 1 <= yyssp)
+	YYABORT;
+    }
+
+  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
+
+  if (yystate == YYFINAL)
+    YYACCEPT;
+
+  goto yybackup;
+
+/*-----------.
+| yybackup.  |
+`-----------*/
+yybackup:
+
+  /* Do appropriate processing given the current state.  Read a
+     lookahead token if we need one and don't already have one.  */
+
+  /* First try to decide what to do without reference to lookahead token.  */
+  yyn = yypact[yystate];
+  if (yypact_value_is_default (yyn))
+    goto yydefault;
+
+  /* Not known => get a lookahead token if don't already have one.  */
+
+  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
+  if (yychar == YYEMPTY)
+    {
+      YYDPRINTF ((stderr, "Reading a token: "));
+      yychar = YYLEX;
+    }
+
+  if (yychar <= YYEOF)
+    {
+      yychar = yytoken = YYEOF;
+      YYDPRINTF ((stderr, "Now at end of input.\n"));
+    }
+  else
+    {
+      yytoken = YYTRANSLATE (yychar);
+      YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
+    }
+
+  /* If the proper action on seeing token YYTOKEN is to reduce or to
+     detect an error, take that action.  */
+  yyn += yytoken;
+  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
+    goto yydefault;
+  yyn = yytable[yyn];
+  if (yyn <= 0)
+    {
+      if (yytable_value_is_error (yyn))
+        goto yyerrlab;
+      yyn = -yyn;
+      goto yyreduce;
+    }
+
+  /* Count tokens shifted since error; after three, turn off error
+     status.  */
+  if (yyerrstatus)
+    yyerrstatus--;
+
+  /* Shift the lookahead token.  */
+  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
+
+  /* Discard the shifted token.  */
+  yychar = YYEMPTY;
+
+  yystate = yyn;
+  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
+  *++yyvsp = yylval;
+  YY_IGNORE_MAYBE_UNINITIALIZED_END
+
+  goto yynewstate;
+
+
+/*-----------------------------------------------------------.
+| yydefault -- do the default action for the current state.  |
+`-----------------------------------------------------------*/
+yydefault:
+  yyn = yydefact[yystate];
+  if (yyn == 0)
+    goto yyerrlab;
+  goto yyreduce;
+
+
+/*-----------------------------.
+| yyreduce -- Do a reduction.  |
+`-----------------------------*/
+yyreduce:
+  /* yyn is the number of a rule to reduce with.  */
+  yylen = yyr2[yyn];
+
+  /* If YYLEN is nonzero, implement the default value of the action:
+     `$$ = $1'.
+
+     Otherwise, the following line sets YYVAL to garbage.
+     This behavior is undocumented and Bison
+     users should not rely upon it.  Assigning to YYVAL
+     unconditionally makes the parser a bit smaller, and it avoids a
+     GCC warning that YYVAL may be used uninitialized.  */
+  yyval = yyvsp[1-yylen];
+
+
+  YY_REDUCE_PRINT (yyn);
+  switch (yyn)
+    {
+        case 4:
+/* Line 1792 of yacc.c  */
+#line 100 "scan.y"
+    { CmdJacobian( (yyvsp[(2) - (2)].str) );
+                  }
+    break;
+
+  case 5:
+/* Line 1792 of yacc.c  */
+#line 103 "scan.y"
+    { CmdHessian( (yyvsp[(2) - (2)].str) );
+                  }
+    break;
+
+  case 6:
+/* Line 1792 of yacc.c  */
+#line 106 "scan.y"
+    { CmdDeclareValues( (yyvsp[(2) - (2)].str) );
+                  }
+    break;
+
+  case 7:
+/* Line 1792 of yacc.c  */
+#line 109 "scan.y"
+    { CmdStoicmat( (yyvsp[(2) - (2)].str) );
+                  }
+    break;
+
+  case 8:
+/* Line 1792 of yacc.c  */
+#line 112 "scan.y"
+    { CmdDouble( (yyvsp[(2) - (2)].str) );
+                  }
+    break;
+
+  case 9:
+/* Line 1792 of yacc.c  */
+#line 115 "scan.y"
+    { CmdReorder( (yyvsp[(2) - (2)].str) );
+                  }
+    break;
+
+  case 10:
+/* Line 1792 of yacc.c  */
+#line 118 "scan.y"
+    { CmdMex( (yyvsp[(2) - (2)].str) );
+                  }
+    break;
+
+  case 11:
+/* Line 1792 of yacc.c  */
+#line 121 "scan.y"
+    { CmdDummyindex( (yyvsp[(2) - (2)].str) );
+                  }
+    break;
+
+  case 12:
+/* Line 1792 of yacc.c  */
+#line 124 "scan.y"
+    { CmdEqntags( (yyvsp[(2) - (2)].str) );
+                  }
+    break;
+
+  case 13:
+/* Line 1792 of yacc.c  */
+#line 127 "scan.y"
+    { CmdFunction( (yyvsp[(2) - (2)].str) );
+                  }
+    break;
+
+  case 14:
+/* Line 1792 of yacc.c  */
+#line 130 "scan.y"
+    { CmdStochastic( (yyvsp[(2) - (2)].str) );
+                  }
+    break;
+
+  case 15:
+/* Line 1792 of yacc.c  */
+#line 133 "scan.y"
+    {}
+    break;
+
+  case 16:
+/* Line 1792 of yacc.c  */
+#line 135 "scan.y"
+    {}
+    break;
+
+  case 17:
+/* Line 1792 of yacc.c  */
+#line 137 "scan.y"
+    {}
+    break;
+
+  case 18:
+/* Line 1792 of yacc.c  */
+#line 139 "scan.y"
+    {}
+    break;
+
+  case 19:
+/* Line 1792 of yacc.c  */
+#line 141 "scan.y"
+    {}
+    break;
+
+  case 20:
+/* Line 1792 of yacc.c  */
+#line 143 "scan.y"
+    {}
+    break;
+
+  case 21:
+/* Line 1792 of yacc.c  */
+#line 145 "scan.y"
+    {}
+    break;
+
+  case 22:
+/* Line 1792 of yacc.c  */
+#line 147 "scan.y"
+    {}
+    break;
+
+  case 23:
+/* Line 1792 of yacc.c  */
+#line 149 "scan.y"
+    {}
+    break;
+
+  case 24:
+/* Line 1792 of yacc.c  */
+#line 151 "scan.y"
+    {}
+    break;
+
+  case 25:
+/* Line 1792 of yacc.c  */
+#line 153 "scan.y"
+    {}
+    break;
+
+  case 26:
+/* Line 1792 of yacc.c  */
+#line 155 "scan.y"
+    {}
+    break;
+
+  case 27:
+/* Line 1792 of yacc.c  */
+#line 157 "scan.y"
+    {}
+    break;
+
+  case 28:
+/* Line 1792 of yacc.c  */
+#line 159 "scan.y"
+    {}
+    break;
+
+  case 29:
+/* Line 1792 of yacc.c  */
+#line 161 "scan.y"
+    { CheckAll(); }
+    break;
+
+  case 30:
+/* Line 1792 of yacc.c  */
+#line 163 "scan.y"
+    { LookAtAll(); }
+    break;
+
+  case 31:
+/* Line 1792 of yacc.c  */
+#line 165 "scan.y"
+    { TransportAll(); }
+    break;
+
+  case 32:
+/* Line 1792 of yacc.c  */
+#line 167 "scan.y"
+    { WriteAtoms(); }
+    break;
+
+  case 33:
+/* Line 1792 of yacc.c  */
+#line 169 "scan.y"
+    { WriteSpecies(); }
+    break;
+
+  case 34:
+/* Line 1792 of yacc.c  */
+#line 171 "scan.y"
+    { WriteMatrices(); }
+    break;
+
+  case 35:
+/* Line 1792 of yacc.c  */
+#line 173 "scan.y"
+    { WriteOptions(); }
+    break;
+
+  case 36:
+/* Line 1792 of yacc.c  */
+#line 175 "scan.y"
+    { CmdUse( (yyvsp[(2) - (2)].str) ); }
+    break;
+
+  case 37:
+/* Line 1792 of yacc.c  */
+#line 177 "scan.y"
+    { CmdLanguage( (yyvsp[(2) - (2)].str) ); }
+    break;
+
+  case 38:
+/* Line 1792 of yacc.c  */
+#line 179 "scan.y"
+    { DefineInitializeNbr( (yyvsp[(2) - (2)].str) ); }
+    break;
+
+  case 39:
+/* Line 1792 of yacc.c  */
+#line 181 "scan.y"
+    { DefineXGrid( (yyvsp[(2) - (2)].str) ); }
+    break;
+
+  case 40:
+/* Line 1792 of yacc.c  */
+#line 183 "scan.y"
+    { DefineYGrid( (yyvsp[(2) - (2)].str) ); }
+    break;
+
+  case 41:
+/* Line 1792 of yacc.c  */
+#line 185 "scan.y"
+    { DefineZGrid( (yyvsp[(2) - (2)].str) ); }
+    break;
+
+  case 42:
+/* Line 1792 of yacc.c  */
+#line 187 "scan.y"
+    { 
+		    AddInlineCode( (yyvsp[(2) - (4)].str), InlineBuf );
+                    free( InlineBuf );
+		  }
+    break;
+
+  case 43:
+/* Line 1792 of yacc.c  */
+#line 192 "scan.y"
+    { ParserErrorMessage(); }
+    break;
+
+  case 44:
+/* Line 1792 of yacc.c  */
+#line 194 "scan.y"
+    { CmdIntegrator( (yyvsp[(2) - (2)].str) ); }
+    break;
+
+  case 45:
+/* Line 1792 of yacc.c  */
+#line 196 "scan.y"
+    { CmdDriver( (yyvsp[(2) - (2)].str) ); }
+    break;
+
+  case 46:
+/* Line 1792 of yacc.c  */
+#line 198 "scan.y"
+    { CmdRun( (yyvsp[(2) - (2)].str) ); }
+    break;
+
+  case 47:
+/* Line 1792 of yacc.c  */
+#line 200 "scan.y"
+    {}
+    break;
+
+  case 48:
+/* Line 1792 of yacc.c  */
+#line 202 "scan.y"
+    { SparseData( (yyvsp[(2) - (2)].str) );
+                  }
+    break;
+
+  case 49:
+/* Line 1792 of yacc.c  */
+#line 206 "scan.y"
+    { ScanWarning("Unnecessary ';'");
+                  }
+    break;
+
+  case 53:
+/* Line 1792 of yacc.c  */
+#line 213 "scan.y"
+    { ParserErrorMessage(); }
+    break;
+
+  case 54:
+/* Line 1792 of yacc.c  */
+#line 216 "scan.y"
+    { switch( crt_section ) {
+                      case ATOMDECL: DeclareAtom( (yyvsp[(1) - (1)].str) ); break;
+                      case CHECK:    SetAtomType( (yyvsp[(1) - (1)].str), DO_CHECK ); break;
+                    }
+                  }
+    break;
+
+  case 57:
+/* Line 1792 of yacc.c  */
+#line 225 "scan.y"
+    { ParserErrorMessage(); }
+    break;
+
+  case 58:
+/* Line 1792 of yacc.c  */
+#line 228 "scan.y"
+    { AddLookAt( (yyvsp[(1) - (1)].str) );
+                  }
+    break;
+
+  case 61:
+/* Line 1792 of yacc.c  */
+#line 234 "scan.y"
+    { ParserErrorMessage(); }
+    break;
+
+  case 62:
+/* Line 1792 of yacc.c  */
+#line 237 "scan.y"
+    { AddMonitor( (yyvsp[(1) - (1)].str) );
+                  }
+    break;
+
+  case 65:
+/* Line 1792 of yacc.c  */
+#line 243 "scan.y"
+    { ParserErrorMessage(); }
+    break;
+
+  case 66:
+/* Line 1792 of yacc.c  */
+#line 246 "scan.y"
+    { AddTransport( (yyvsp[(1) - (1)].str) );
+                  }
+    break;
+
+  case 69:
+/* Line 1792 of yacc.c  */
+#line 252 "scan.y"
+    { ParserErrorMessage(); }
+    break;
+
+  case 70:
+/* Line 1792 of yacc.c  */
+#line 255 "scan.y"
+    { AddUseFile( (yyvsp[(1) - (1)].str) );
+                  }
+    break;
+
+  case 73:
+/* Line 1792 of yacc.c  */
+#line 261 "scan.y"
+    { ParserErrorMessage(); }
+    break;
+
+  case 74:
+/* Line 1792 of yacc.c  */
+#line 264 "scan.y"
+    { switch( crt_section ) {
+                      case SETVAR: SetSpcType( VAR_SPC, (yyvsp[(1) - (1)].str) ); break;
+                      case SETRAD: SetSpcType( RAD_SPC, (yyvsp[(1) - (1)].str) ); break;
+                      case SETFIX: SetSpcType( FIX_SPC, (yyvsp[(1) - (1)].str) ); break;
+                    }
+                  }
+    break;
+
+  case 77:
+/* Line 1792 of yacc.c  */
+#line 274 "scan.y"
+    { ParserErrorMessage(); }
+    break;
+
+  case 80:
+/* Line 1792 of yacc.c  */
+#line 280 "scan.y"
+    { switch( crt_section ) {
+                      case DEFVAR: DeclareSpecies( VAR_SPC, (yyvsp[(1) - (3)].str) ); break;
+                      case DEFRAD: DeclareSpecies( RAD_SPC, (yyvsp[(1) - (3)].str) ); break;
+                      case DEFFIX: DeclareSpecies( FIX_SPC, (yyvsp[(1) - (3)].str) ); break;
+                    } 
+                  }
+    break;
+
+  case 81:
+/* Line 1792 of yacc.c  */
+#line 288 "scan.y"
+    { switch( crt_section ) {
+                      case DEFVAR: DeclareSpecies( VAR_SPC, (yyvsp[(1) - (1)].str) ); break;
+                      case DEFRAD: DeclareSpecies( RAD_SPC, (yyvsp[(1) - (1)].str) ); break;
+                      case DEFFIX: DeclareSpecies( FIX_SPC, (yyvsp[(1) - (1)].str) ); break;
+                    } 
+                  }
+    break;
+
+  case 84:
+/* Line 1792 of yacc.c  */
+#line 299 "scan.y"
+    { AddAtom( (yyvsp[(2) - (2)].str), (yyvsp[(1) - (2)].str) );
+                  }
+    break;
+
+  case 85:
+/* Line 1792 of yacc.c  */
+#line 302 "scan.y"
+    { AddAtom( (yyvsp[(1) - (1)].str), "1" );
+                  }
+    break;
+
+  case 88:
+/* Line 1792 of yacc.c  */
+#line 308 "scan.y"
+    { ParserErrorMessage(); }
+    break;
+
+  case 89:
+/* Line 1792 of yacc.c  */
+#line 311 "scan.y"
+    { AssignInitialValue( (yyvsp[(1) - (3)].str), (yyvsp[(3) - (3)].str) ); }
+    break;
+
+  case 92:
+/* Line 1792 of yacc.c  */
+#line 316 "scan.y"
+    { ParserErrorMessage();
+                    eqState = LHS; 
+                  }
+    break;
+
+  case 93:
+/* Line 1792 of yacc.c  */
+#line 321 "scan.y"
+    { eqState = LHS;
+                    StoreEquationRate( (yyvsp[(4) - (4)].str), (yyvsp[(1) - (4)].str) ); 
+                    CheckEquation();
+                  }
+    break;
+
+  case 94:
+/* Line 1792 of yacc.c  */
+#line 326 "scan.y"
+    { eqState = LHS;
+                    StoreEquationRate( (yyvsp[(3) - (3)].str), "          " ); 
+                    CheckEquation();
+                  }
+    break;
+
+  case 95:
+/* Line 1792 of yacc.c  */
+#line 331 "scan.y"
+    { strcpy( (yyval.str), (yyvsp[(1) - (2)].str) );
+                    strcat( (yyval.str), (yyvsp[(2) - (2)].str) ); 
+                  }
+    break;
+
+  case 96:
+/* Line 1792 of yacc.c  */
+#line 335 "scan.y"
+    { strcpy( (yyval.str), (yyvsp[(1) - (1)].str) );
+                  }
+    break;
+
+  case 97:
+/* Line 1792 of yacc.c  */
+#line 339 "scan.y"
+    { strcpy( (yyval.str), (yyvsp[(2) - (3)].str) );
+                  }
+    break;
+
+  case 98:
+/* Line 1792 of yacc.c  */
+#line 343 "scan.y"
+    { eqState = RHS; }
+    break;
+
+  case 99:
+/* Line 1792 of yacc.c  */
+#line 346 "scan.y"
+    { eqState = RAT; }
+    break;
+
+  case 100:
+/* Line 1792 of yacc.c  */
+#line 349 "scan.y"
+    { ProcessTerm( eqState, (yyvsp[(2) - (3)].str), crt_coef, crt_term ); 
+                  }
+    break;
+
+  case 101:
+/* Line 1792 of yacc.c  */
+#line 352 "scan.y"
+    { ProcessTerm( eqState, (yyvsp[(1) - (2)].str), crt_coef, crt_term );
+                  }
+    break;
+
+  case 102:
+/* Line 1792 of yacc.c  */
+#line 355 "scan.y"
+    { ProcessTerm( eqState, "+", crt_coef, crt_term );
+                  }
+    break;
+
+  case 103:
+/* Line 1792 of yacc.c  */
+#line 359 "scan.y"
+    { strcpy( crt_term, (yyvsp[(2) - (2)].str) );
+                    strcpy( crt_coef, (yyvsp[(1) - (2)].str) );  
+                  }
+    break;
+
+  case 104:
+/* Line 1792 of yacc.c  */
+#line 363 "scan.y"
+    { strcpy( crt_term, (yyvsp[(1) - (1)].str) );         
+                    strcpy( crt_coef, "1" ); 
+                  }
+    break;
+
+  case 107:
+/* Line 1792 of yacc.c  */
+#line 370 "scan.y"
+    { ParserErrorMessage(); }
+    break;
+
+  case 108:
+/* Line 1792 of yacc.c  */
+#line 373 "scan.y"
+    { AddLumpSpecies( (yyvsp[(1) - (3)].str) );
+                  }
+    break;
+
+  case 109:
+/* Line 1792 of yacc.c  */
+#line 376 "scan.y"
+    {
+                    AddLumpSpecies( (yyvsp[(1) - (3)].str) );
+                    CheckLump( (yyvsp[(3) - (3)].str) );  
+                  }
+    break;
+
+  case 110:
+/* Line 1792 of yacc.c  */
+#line 381 "scan.y"
+    {
+		    InlineBuf = AppendString( InlineBuf, (yyvsp[(2) - (2)].str), &InlineLen, MAX_INLINE );
+		  }
+    break;
+
+  case 111:
+/* Line 1792 of yacc.c  */
+#line 385 "scan.y"
+    {
+		    InlineBuf = malloc( MAX_INLINE ); 
+                    InlineLen = MAX_INLINE;
+		    strcpy( InlineBuf, (yyvsp[(1) - (1)].str));
+		  }
+    break;
+
+
+/* Line 1792 of yacc.c  */
+#line 2210 "y.tab.c"
+      default: break;
+    }
+  /* User semantic actions sometimes alter yychar, and that requires
+     that yytoken be updated with the new translation.  We take the
+     approach of translating immediately before every use of yytoken.
+     One alternative is translating here after every semantic action,
+     but that translation would be missed if the semantic action invokes
+     YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
+     if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
+     incorrect destructor might then be invoked immediately.  In the
+     case of YYERROR or YYBACKUP, subsequent parser actions might lead
+     to an incorrect destructor call or verbose syntax error message
+     before the lookahead is translated.  */
+  YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
+
+  YYPOPSTACK (yylen);
+  yylen = 0;
+  YY_STACK_PRINT (yyss, yyssp);
+
+  *++yyvsp = yyval;
+
+  /* Now `shift' the result of the reduction.  Determine what state
+     that goes to, based on the state we popped back to and the rule
+     number reduced by.  */
+
+  yyn = yyr1[yyn];
+
+  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
+  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
+    yystate = yytable[yystate];
+  else
+    yystate = yydefgoto[yyn - YYNTOKENS];
+
+  goto yynewstate;
+
+
+/*------------------------------------.
+| yyerrlab -- here on detecting error |
+`------------------------------------*/
+yyerrlab:
+  /* Make sure we have latest lookahead translation.  See comments at
+     user semantic actions for why this is necessary.  */
+  yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
+
+  /* If not already recovering from an error, report this error.  */
+  if (!yyerrstatus)
+    {
+      ++yynerrs;
+#if ! YYERROR_VERBOSE
+      yyerror (YY_("syntax error"));
+#else
+# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
+                                        yyssp, yytoken)
+      {
+        char const *yymsgp = YY_("syntax error");
+        int yysyntax_error_status;
+        yysyntax_error_status = YYSYNTAX_ERROR;
+        if (yysyntax_error_status == 0)
+          yymsgp = yymsg;
+        else if (yysyntax_error_status == 1)
+          {
+            if (yymsg != yymsgbuf)
+              YYSTACK_FREE (yymsg);
+            yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
+            if (!yymsg)
+              {
+                yymsg = yymsgbuf;
+                yymsg_alloc = sizeof yymsgbuf;
+                yysyntax_error_status = 2;
+              }
+            else
+              {
+                yysyntax_error_status = YYSYNTAX_ERROR;
+                yymsgp = yymsg;
+              }
+          }
+        yyerror (yymsgp);
+        if (yysyntax_error_status == 2)
+          goto yyexhaustedlab;
+      }
+# undef YYSYNTAX_ERROR
+#endif
+    }
+
+
+
+  if (yyerrstatus == 3)
+    {
+      /* If just tried and failed to reuse lookahead token after an
+	 error, discard it.  */
+
+      if (yychar <= YYEOF)
+	{
+	  /* Return failure if at end of input.  */
+	  if (yychar == YYEOF)
+	    YYABORT;
+	}
+      else
+	{
+	  yydestruct ("Error: discarding",
+		      yytoken, &yylval);
+	  yychar = YYEMPTY;
+	}
+    }
+
+  /* Else will try to reuse lookahead token after shifting the error
+     token.  */
+  goto yyerrlab1;
+
+
+/*---------------------------------------------------.
+| yyerrorlab -- error raised explicitly by YYERROR.  |
+`---------------------------------------------------*/
+yyerrorlab:
+
+  /* Pacify compilers like GCC when the user code never invokes
+     YYERROR and the label yyerrorlab therefore never appears in user
+     code.  */
+  if (/*CONSTCOND*/ 0)
+     goto yyerrorlab;
+
+  /* Do not reclaim the symbols of the rule which action triggered
+     this YYERROR.  */
+  YYPOPSTACK (yylen);
+  yylen = 0;
+  YY_STACK_PRINT (yyss, yyssp);
+  yystate = *yyssp;
+  goto yyerrlab1;
+
+
+/*-------------------------------------------------------------.
+| yyerrlab1 -- common code for both syntax error and YYERROR.  |
+`-------------------------------------------------------------*/
+yyerrlab1:
+  yyerrstatus = 3;	/* Each real token shifted decrements this.  */
+
+  for (;;)
+    {
+      yyn = yypact[yystate];
+      if (!yypact_value_is_default (yyn))
+	{
+	  yyn += YYTERROR;
+	  if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
+	    {
+	      yyn = yytable[yyn];
+	      if (0 < yyn)
+		break;
+	    }
+	}
+
+      /* Pop the current state because it cannot handle the error token.  */
+      if (yyssp == yyss)
+	YYABORT;
+
+
+      yydestruct ("Error: popping",
+		  yystos[yystate], yyvsp);
+      YYPOPSTACK (1);
+      yystate = *yyssp;
+      YY_STACK_PRINT (yyss, yyssp);
+    }
+
+  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
+  *++yyvsp = yylval;
+  YY_IGNORE_MAYBE_UNINITIALIZED_END
+
+
+  /* Shift the error token.  */
+  YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
+
+  yystate = yyn;
+  goto yynewstate;
+
+
+/*-------------------------------------.
+| yyacceptlab -- YYACCEPT comes here.  |
+`-------------------------------------*/
+yyacceptlab:
+  yyresult = 0;
+  goto yyreturn;
+
+/*-----------------------------------.
+| yyabortlab -- YYABORT comes here.  |
+`-----------------------------------*/
+yyabortlab:
+  yyresult = 1;
+  goto yyreturn;
+
+#if !defined yyoverflow || YYERROR_VERBOSE
+/*-------------------------------------------------.
+| yyexhaustedlab -- memory exhaustion comes here.  |
+`-------------------------------------------------*/
+yyexhaustedlab:
+  yyerror (YY_("memory exhausted"));
+  yyresult = 2;
+  /* Fall through.  */
+#endif
+
+yyreturn:
+  if (yychar != YYEMPTY)
+    {
+      /* Make sure we have latest lookahead translation.  See comments at
+         user semantic actions for why this is necessary.  */
+      yytoken = YYTRANSLATE (yychar);
+      yydestruct ("Cleanup: discarding lookahead",
+                  yytoken, &yylval);
+    }
+  /* Do not reclaim the symbols of the rule which action triggered
+     this YYABORT or YYACCEPT.  */
+  YYPOPSTACK (yylen);
+  YY_STACK_PRINT (yyss, yyssp);
+  while (yyssp != yyss)
+    {
+      yydestruct ("Cleanup: popping",
+		  yystos[*yyssp], yyvsp);
+      YYPOPSTACK (1);
+    }
+#ifndef yyoverflow
+  if (yyss != yyssa)
+    YYSTACK_FREE (yyss);
+#endif
+#if YYERROR_VERBOSE
+  if (yymsg != yymsgbuf)
+    YYSTACK_FREE (yymsg);
+#endif
+  /* Make sure YYID is used.  */
+  return YYID (yyresult);
+}
+
+
+/* Line 2055 of yacc.c  */
+#line 391 "scan.y"
+
+
+void yyerror( char * str )
+{
+}
+
+void ParserErrorMessage()
+{
+  /* yyerrok; */
+/*
+  Message("[%d,%s] -> [%d,%s]", crtTokType, crtToken, nextTokType, nextToken );  
+*/
+  if( crtToken[0] == ';' ) {
+    ParserError("Misplaced ';'");
+    return;
+  }
+  switch( crtTokType ) {
+    case ATOMID:
+      ParserError("Missing ';' after '%s'", crtToken );
+      break; 
+
+    case SPCSPC: 
+      ParserError("Missing ';' or '+' after '%s'", crtToken );
+      break; 
+    case SPCNR:
+      ParserError("Missing species after '%s'", crtToken );
+      break; 
+    case SPCPLUS:
+      ParserError("Missing atom after '%s'", crtToken );
+      break; 
+    case SPCEQUAL:
+      ParserError("Invalid '=' after '%s'", crtToken );
+      break; 
+
+    case INISPC: 
+      ParserError("Missing '=' after '%s'", crtToken );
+      break; 
+    case INIEQUAL: 
+      ParserError("Missing value after '%s'", crtToken );
+      break; 
+    case INIVALUE: 
+      ParserError("Missing ';' after '%s'", crtToken );
+      break; 
+
+    case EQNSPC: 
+      ParserError("Missing '+' or '=' after '%s'", crtToken );
+      break; 
+    case EQNEQUAL: 
+      ParserError("Invalid right hand side of equation");
+      break; 
+    case EQNCOLON: 
+      ParserError("Missing rate after '%s'", crtToken );
+      break; 
+    case EQNSIGN: 
+      ParserError("Missing coeficient after '%s'", crtToken );
+      break; 
+    case EQNCOEF: 
+      ParserError("Missing species after '%s'", crtToken );
+      break; 
+    case RATE: 
+      ParserError("Missing ';' after '%s'", crtToken );
+      break; 
+
+    case LMPSPC: 
+      ParserError("Missing '+' or ':' or ';' after '%s'", crtToken );
+      break; 
+    case LMPPLUS: 
+      ParserError("Missing species after '%s'", crtToken );
+      break; 
+    case LMPCOLON: 
+      ParserError("Missing species after '%s'", crtToken );
+      break; 
+    case INLINE:
+      ParserError("Missing inline option after '%s'", crtToken );
+      break;
+
+    default:
+      ParserError("Syntax error after '%s'", crtToken ); 
+  }
+}
+
+
+int Parser( char * filename )
+{
+extern int yydebug;
+FILE *f;
+
+  crt_filename = filename;
+
+  f = fopen( crt_filename, "r" );
+  if( f == 0 ) {
+    FatalError(7,"%s: File not found", crt_filename);
+  } 
+  
+  yyin = f;
+  nError   = 0;
+  nWarning = 0;
+  yydebug = 0;
+
+  yyparse();
+
+  fclose( f );
+
+  return nError;
+}          
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/src/y.tab.h
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/src/y.tab.h	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/src/y.tab.h	(revision 2696)
@@ -0,0 +1,159 @@
+/* A Bison parser, made by GNU Bison 2.7.  */
+
+/* Bison interface for Yacc-like parsers in C
+   
+      Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc.
+   
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation, either version 3 of the License, or
+   (at your option) any later version.
+   
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+   
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* As a special exception, you may create a larger work that contains
+   part or all of the Bison parser skeleton and distribute that work
+   under terms of your choice, so long as that work isn't itself a
+   parser generator using the skeleton or a modified version thereof
+   as a parser skeleton.  Alternatively, if you modify or redistribute
+   the parser skeleton itself, you may (at your option) remove this
+   special exception, which will cause the skeleton and the resulting
+   Bison output files to be licensed under the GNU General Public
+   License without this special exception.
+   
+   This special exception was added by the Free Software Foundation in
+   version 2.2 of Bison.  */
+
+#ifndef YY_YY_Y_TAB_H_INCLUDED
+# define YY_YY_Y_TAB_H_INCLUDED
+/* Enabling traces.  */
+#ifndef YYDEBUG
+# define YYDEBUG 0
+#endif
+#if YYDEBUG
+extern int yydebug;
+#endif
+
+/* Tokens.  */
+#ifndef YYTOKENTYPE
+# define YYTOKENTYPE
+   /* Put the tokens into the symbol table, so that GDB and other debuggers
+      know about them.  */
+   enum yytokentype {
+     JACOBIAN = 258,
+     DOUBLE = 259,
+     FUNCTION = 260,
+     DEFVAR = 261,
+     DEFRAD = 262,
+     DEFFIX = 263,
+     SETVAR = 264,
+     SETRAD = 265,
+     SETFIX = 266,
+     HESSIAN = 267,
+     STOICMAT = 268,
+     STOCHASTIC = 269,
+     DECLARE = 270,
+     INITVALUES = 271,
+     EQUATIONS = 272,
+     LUMP = 273,
+     INIEQUAL = 274,
+     EQNEQUAL = 275,
+     EQNCOLON = 276,
+     LMPCOLON = 277,
+     LMPPLUS = 278,
+     SPCPLUS = 279,
+     SPCEQUAL = 280,
+     ATOMDECL = 281,
+     CHECK = 282,
+     CHECKALL = 283,
+     REORDER = 284,
+     MEX = 285,
+     DUMMYINDEX = 286,
+     EQNTAGS = 287,
+     LOOKAT = 288,
+     LOOKATALL = 289,
+     TRANSPORT = 290,
+     TRANSPORTALL = 291,
+     MONITOR = 292,
+     USES = 293,
+     SPARSEDATA = 294,
+     WRITE_ATM = 295,
+     WRITE_SPC = 296,
+     WRITE_MAT = 297,
+     WRITE_OPT = 298,
+     INITIALIZE = 299,
+     XGRID = 300,
+     YGRID = 301,
+     ZGRID = 302,
+     USE = 303,
+     LANGUAGE = 304,
+     INTFILE = 305,
+     DRIVER = 306,
+     RUN = 307,
+     INLINE = 308,
+     ENDINLINE = 309,
+     PARAMETER = 310,
+     SPCSPC = 311,
+     INISPC = 312,
+     INIVALUE = 313,
+     EQNSPC = 314,
+     EQNSIGN = 315,
+     EQNCOEF = 316,
+     RATE = 317,
+     LMPSPC = 318,
+     SPCNR = 319,
+     ATOMID = 320,
+     LKTID = 321,
+     MNIID = 322,
+     INLCTX = 323,
+     INCODE = 324,
+     SSPID = 325,
+     EQNLESS = 326,
+     EQNTAG = 327,
+     EQNGREATER = 328,
+     TPTID = 329,
+     USEID = 330
+   };
+#endif
+
+
+#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
+typedef union YYSTYPE
+{
+/* Line 2058 of yacc.c  */
+#line 72 "scan.y"
+
+  char str[80];
+
+
+/* Line 2058 of yacc.c  */
+#line 137 "y.tab.h"
+} YYSTYPE;
+# define YYSTYPE_IS_TRIVIAL 1
+# define yystype YYSTYPE /* obsolescent; will be withdrawn */
+# define YYSTYPE_IS_DECLARED 1
+#endif
+
+extern YYSTYPE yylval;
+
+#ifdef YYPARSE_PARAM
+#if defined __STDC__ || defined __cplusplus
+int yyparse (void *YYPARSE_PARAM);
+#else
+int yyparse ();
+#endif
+#else /* ! YYPARSE_PARAM */
+#if defined __STDC__ || defined __cplusplus
+int yyparse (void);
+#else
+int yyparse ();
+#endif
+#endif /* ! YYPARSE_PARAM */
+
+#endif /* !YY_YY_Y_TAB_H_INCLUDED  */
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/Makefile.c
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/Makefile.c	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/Makefile.c	(revision 2696)
@@ -0,0 +1,103 @@
+# Set here the desired C compiler and its optimization options
+CC   = gcc
+COPT = -O -Wall  
+
+# To create Matlab gateway routines
+# Note: use $(CC) as the mex C compiler
+MEX  = mex
+
+HEADERS = KPP_ROOT_Global.h  KPP_ROOT_Parameters.h  KPP_ROOT_Sparse.h
+
+SPSRC = KPP_ROOT_JacobianSP.c \
+	KPP_ROOT_HessianSP.c  \
+	KPP_ROOT_StoichiomSP.c
+
+SPOBJ = KPP_ROOT_JacobianSP.o \
+	KPP_ROOT_HessianSP.o  \
+	KPP_ROOT_StoichiomSP.o
+
+
+SRC =   KPP_ROOT_Main.c      KPP_ROOT_Integrator.c   \
+	KPP_ROOT_Function.c  KPP_ROOT_Initialize.c   \
+	KPP_ROOT_Jacobian.c  KPP_ROOT_LinearAlgebra.c\
+	KPP_ROOT_Rates.c     KPP_ROOT_Hessian.c      \
+	KPP_ROOT_Stoichiom.c KPP_ROOT_Util.c         \
+	KPP_ROOT_Monitor.c
+
+OBJ =   KPP_ROOT_Main.o      KPP_ROOT_Integrator.o   \
+	KPP_ROOT_Function.o  KPP_ROOT_Initialize.o   \
+	KPP_ROOT_Jacobian.o  KPP_ROOT_LinearAlgebra.o\
+	KPP_ROOT_Rates.o     KPP_ROOT_Hessian.o      \
+	KPP_ROOT_Stoichiom.o KPP_ROOT_Util.o         \
+	KPP_ROOT_Monitor.o
+
+STOCHSRC = KPP_ROOT_Stochastic.c 
+STOCHOBJ = KPP_ROOT_Stochastic.o 
+
+all:    exe
+
+exe:	$(HEADERS) $(SPOBJ) $(OBJ)
+	$(CC) $(COPT) $(SPOBJ) $(OBJ) -lm -o KPP_ROOT.exe	
+
+stochastic:$(HEADERS) $(SPOBJ) $(OBJ) $(STOCHOBJ)
+	$(CC) $(COPT) $(SPOBJ) $(OBJ) $(STOCHOBJ) -lm \
+	-o KPP_ROOT_stochastic.exe	
+
+mex:    $(HEADERS) $(SPOBJ) $(OBJ)
+	$(MEX) CC#$(CC) -O KPP_ROOT_mex_Fun.c     -lm $(SPOBJ) $(OBJ)
+	$(MEX) CC#$(CC) -O KPP_ROOT_mex_Jac_SP.c  -lm $(SPOBJ) $(OBJ)
+	$(MEX) CC#$(CC) -O KPP_ROOT_mex_Hessian.c -lm $(SPOBJ) $(OBJ)
+
+
+clean:
+	rm -f $(SPOBJ) $(OBJ) KPP_ROOT.exe KPP_ROOT_*.mexglx KPP_ROOT*.dat
+
+distclean:
+	rm -f $(SPOBJ) $(OBJ) KPP_ROOT.exe KPP_ROOT*.dat \
+	KPP_ROOT_*.c KPP_ROOT_*.h KPP_ROOT_*.map KPP_ROOT_*.mexglx
+
+KPP_ROOT_Monitor.o: KPP_ROOT_Monitor.c $(HEADERS)
+	$(CC) $(COPT) -c $<
+
+KPP_ROOT_JacobianSP.o: KPP_ROOT_JacobianSP.c $(HEADERS)
+	$(CC) $(COPT) -c $<
+
+KPP_ROOT_HessianSP.o: KPP_ROOT_HessianSP.c  $(HEADERS)
+	$(CC) $(COPT) -c $<
+
+KPP_ROOT_StoichiomSP.o: KPP_ROOT_StoichiomSP.c $(HEADERS)
+	$(CC) $(COPT) -c $<
+
+KPP_ROOT_Main.o: KPP_ROOT_Main.c KPP_ROOT_Initialize.o $(HEADERS) $(SPOBJ)
+	$(CC) $(COPT) -c $<
+
+KPP_ROOT_Integrator.o: KPP_ROOT_Integrator.c  $(HEADERS) $(SPOBJ)
+	$(CC) $(COPT) -c $<
+
+KPP_ROOT_Initialize.o: KPP_ROOT_Initialize.c  $(HEADERS) $(SPOBJ)
+	$(CC) $(COPT) -c $<
+
+KPP_ROOT_Function.o: KPP_ROOT_Function.c  $(HEADERS) $(SPOBJ)
+	$(CC) $(COPT) -c $<
+
+KPP_ROOT_Stochastic.o: KPP_ROOT_Stochastic.c  $(HEADERS) $(SPOBJ)
+	$(CC) $(COPT) -c $<
+
+KPP_ROOT_Jacobian.o: KPP_ROOT_Jacobian.c  $(HEADERS) $(SPOBJ)
+	$(CC) $(COPT) -c $<
+
+KPP_ROOT_LinearAlgebra.o: KPP_ROOT_LinearAlgebra.c  $(HEADERS) $(SPOBJ)
+	$(CC) $(COPT) -c $<
+
+KPP_ROOT_Rates.o: KPP_ROOT_Rates.c  $(HEADERS) $(SPOBJ)
+	$(CC) $(COPT) -c $<
+
+KPP_ROOT_Hessian.o:  KPP_ROOT_Hessian.c $(HEADERS) $(SPOBJ)
+	$(CC) $(COPT) -c $<
+
+KPP_ROOT_Stoichiom.o: KPP_ROOT_Stoichiom.c  $(HEADERS) $(SPOBJ)
+	$(CC) $(COPT) -c $<
+
+KPP_ROOT_Util.o: KPP_ROOT_Util.c  $(HEADERS) $(SPOBJ)
+	$(CC) $(COPT) -c $<
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/Makefile.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/Makefile.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/Makefile.f	(revision 2696)
@@ -0,0 +1,109 @@
+# Set here the Fortran77 compiler and the desired optimization options
+COMPILER = GNU
+
+FC_INTEL   = ifort
+FOPT_INTEL = -O -f77rtl -mp -pc80 -prec_div -tpp7
+FC_PGF     = pgf77
+FOPT_PGF   = -O -fast -pc 80 -Kieee
+FC_GNU     = g77
+FOPT_GNU   = -O -Wall -Wimplicit -ffast-math -funroll-loops \
+	         -malign-double -ffortran-bounds-check
+FC_HPUX    = f90
+FOPT_HPUX  = -O
+
+FC   = $(FC_$(COMPILER))
+FOPT = $(FOPT_$(COMPILER)) 
+
+# Mathematical libraries: blas and lapack
+# MATHLIB   = -L/usr/local/lib  -llapack_g77  -L/usr/lib -lblas_g77
+MATHLIB   = -llapack  -lblas 
+
+# To create Matlab mex gateway routines
+# Note: use $(FC) as the mex Fortran compiler
+MEX  = mex
+
+HEADERS = KPP_ROOT_Global.h  KPP_ROOT_Parameters.h  KPP_ROOT_Sparse.h
+
+SPSRC = KPP_ROOT_JacobianSP.f \
+	KPP_ROOT_HessianSP.f  \
+	KPP_ROOT_StoichiomSP.f
+
+SPOBJ = KPP_ROOT_JacobianSP.o \
+	KPP_ROOT_HessianSP.o  \
+	KPP_ROOT_StoichiomSP.o
+
+
+SRC =   KPP_ROOT_Main.f      KPP_ROOT_Integrator.f   \
+        KPP_ROOT_Function.f  KPP_ROOT_Initialize.f   \
+	KPP_ROOT_Jacobian.f  KPP_ROOT_LinearAlgebra.f\
+	KPP_ROOT_Rates.f     KPP_ROOT_Hessian.f      \
+	KPP_ROOT_Stoichiom.f KPP_ROOT_Util.f         \
+	KPP_ROOT_Monitor.f   
+
+OBJ =   KPP_ROOT_Main.o      KPP_ROOT_Integrator.o   \
+        KPP_ROOT_Function.o  KPP_ROOT_Initialize.o   \
+	KPP_ROOT_Jacobian.o  KPP_ROOT_LinearAlgebra.o\
+	KPP_ROOT_Rates.o     KPP_ROOT_Hessian.o      \
+	KPP_ROOT_Stoichiom.o KPP_ROOT_Util.o         \
+	KPP_ROOT_Monitor.o
+
+all:    exe mex
+
+exe:	$(HEADERS) $(SPOBJ) $(OBJ)
+	$(FC) $(FOPT) $(SPOBJ) $(OBJ) $(MATHLIB) -o KPP_ROOT.exe
+
+mex:    $(HEADERS) $(SPOBJ) $(OBJ)
+	$(MEX) FC#$(FC) -fortran -O KPP_ROOT_mex_Fun.f     $(SPOBJ) $(OBJ)
+	$(MEX) FC#$(FC) -fortran -O KPP_ROOT_mex_Jac_SP.f  $(SPOBJ) $(OBJ)
+	$(MEX) FC#$(FC) -fortran -O KPP_ROOT_mex_Hessian.f $(SPOBJ) $(OBJ)
+	
+clean:
+	rm -f $(SPOBJ) $(OBJ) KPP_ROOT.exe KPP_ROOT.map  \
+	KPP_ROOT.dat 
+
+distclean:
+	rm -f $(SPOBJ) $(OBJ) KPP_ROOT.exe KPP_ROOT.map  \
+	KPP_ROOT.dat KPP_ROOT*.f  KPP_ROOT*.h 
+
+KPP_ROOT_Monitor.o: KPP_ROOT_Monitor.f $(HEADERS)
+	$(FC) $(FOPT) -c $<
+
+KPP_ROOT_JacobianSP.o: KPP_ROOT_JacobianSP.f $(HEADERS)
+	$(FC) $(FOPT) -c $<
+
+KPP_ROOT_HessianSP.o: KPP_ROOT_HessianSP.f  $(HEADERS)
+	$(FC) $(FOPT) -c $<
+
+KPP_ROOT_StoichiomSP.o: KPP_ROOT_StoichiomSP.f $(HEADERS)
+	$(FC) $(FOPT) -c $<
+
+KPP_ROOT_Main.o: KPP_ROOT_Main.f  KPP_ROOT_Initialize.o $(HEADERS) $(SPOBJ)
+	$(FC) $(FOPT) -c $<
+
+KPP_ROOT_Integrator.o: KPP_ROOT_Integrator.f  $(HEADERS) $(SPOBJ)
+	$(FC) $(FOPT) -c $<
+
+KPP_ROOT_Initialize.o: KPP_ROOT_Initialize.f  $(HEADERS) $(SPOBJ)
+	$(FC) $(FOPT) -c $<
+
+KPP_ROOT_Function.o: KPP_ROOT_Function.f  $(HEADERS) $(SPOBJ)
+	$(FC) $(FOPT) -c $<
+
+KPP_ROOT_Jacobian.o: KPP_ROOT_Jacobian.f  $(HEADERS) $(SPOBJ)
+	$(FC) $(FOPT) -c $<
+
+KPP_ROOT_LinearAlgebra.o: KPP_ROOT_LinearAlgebra.f  $(HEADERS) $(SPOBJ)
+	$(FC) $(FOPT) -c $<
+
+KPP_ROOT_Rates.o: KPP_ROOT_Rates.f  $(HEADERS) $(SPOBJ)
+	$(FC) $(FOPT) -c $<
+
+KPP_ROOT_Hessian.o:  KPP_ROOT_Hessian.f $(HEADERS) $(SPOBJ)
+	$(FC) $(FOPT) -c $<
+
+KPP_ROOT_Stoichiom.o: KPP_ROOT_Stoichiom.f  $(HEADERS) $(SPOBJ)
+	$(FC) $(FOPT) -c $<
+
+KPP_ROOT_Util.o: KPP_ROOT_Util.f  $(HEADERS) $(SPOBJ)
+	$(FC) $(FOPT) -c $<
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/Makefile.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/Makefile.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/Makefile.f90	(revision 2696)
@@ -0,0 +1,178 @@
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+# User: Set here the F90 compiler and options
+#       Pedefined compilers: INTEL, PGF, HPUX, LAHEY
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+#COMPILER = G95
+#COMPILER = LAHEY
+COMPILER = INTEL
+#COMPILER = PGF
+#COMPILER = HPUX
+#COMPILER = GFORTRAN
+
+FC_G95     = g95
+FOPT_G95   = -cpp -O -pg -fbounds-check -fimplicit-none  -Wall -ftrace=full
+
+FC_LAHEY   = lf95
+# More aggressive for production runs:
+#FOPT_LAHEY = -Cpp --pca -O
+# More checking for debugging:
+FOPT_LAHEY = -Cpp --chk a,e,s,u --pca --ap -O0 -g --trap --trace --chkglobal
+
+FC_INTEL   = ifort 
+# More aggressive for production runs:
+#FOPT_INTEL = -cpp -O -fp-model precise -pc80 -prec_div
+# More checking for debugging:
+FOPT_INTEL = -cpp -O0 -fp-model strict -implicitnone -ftrapuv \
+              -debug all -check all -warn all
+
+FC_PGF     = pgf90
+# More aggressive for production runs:
+FOPT_PGF   = -Mpreprocess -O -fast -pc 80 -Kieee
+# More checking for debugging:
+#FOPT_PGF   = -Mpreprocess -O0 -Mbounds -Mchkfpstk -Mchkptr -Mchkstk \
+#             -Ktrap=fp -pc 80 -Kieee
+
+FC_HPUX    = f90
+FOPT_HPUX  = -O -u +Oall +check=on
+
+FC_GFORTRAN     = gfortran
+FOPT_GFORTRAN   = -cpp -O
+
+# define FULL_ALGEBRA for non-sparse integration
+FC   = $(FC_$(COMPILER))
+FOPT = $(FOPT_$(COMPILER)) # -DFULL_ALGEBRA
+
+LIBS =
+#LIBS = -llapack -lblas
+
+# Command to create Matlab mex gateway routines 
+# Note: use $(FC) as the mex Fortran compiler
+MEX  = mex
+
+GENSRC = KPP_ROOT_Precision.f90  \
+	 KPP_ROOT_Parameters.f90     \
+	 KPP_ROOT_Global.f90  
+
+GENOBJ = KPP_ROOT_Precision.o    \
+	 KPP_ROOT_Parameters.o       \
+	 KPP_ROOT_Global.o     
+
+FUNSRC = KPP_ROOT_Function.f90 
+FUNOBJ = KPP_ROOT_Function.o 
+
+JACSRC = KPP_ROOT_JacobianSP.f90  KPP_ROOT_Jacobian.f90
+JACOBJ = KPP_ROOT_JacobianSP.o    KPP_ROOT_Jacobian.o
+
+HESSRC = KPP_ROOT_HessianSP.f90   KPP_ROOT_Hessian.f90
+HESOBJ = KPP_ROOT_HessianSP.o     KPP_ROOT_Hessian.o
+
+STMSRC = KPP_ROOT_StoichiomSP.f90 KPP_ROOT_Stoichiom.f90 
+STMOBJ = KPP_ROOT_StoichiomSP.o   KPP_ROOT_Stoichiom.o
+
+UTLSRC = KPP_ROOT_Rates.f90 KPP_ROOT_Util.f90 KPP_ROOT_Monitor.f90
+UTLOBJ = KPP_ROOT_Rates.o   KPP_ROOT_Util.o   KPP_ROOT_Monitor.o
+
+LASRC  = KPP_ROOT_LinearAlgebra.f90 
+LAOBJ  = KPP_ROOT_LinearAlgebra.o   
+
+STOCHSRC = KPP_ROOT_Stochastic.f90 
+STOCHOBJ = KPP_ROOT_Stochastic.o 
+
+MAINSRC = KPP_ROOT_Main.f90   KPP_ROOT_Initialize.f90   KPP_ROOT_Integrator.f90 KPP_ROOT_Model.f90
+MAINOBJ = KPP_ROOT_Main.o     KPP_ROOT_Initialize.o     KPP_ROOT_Integrator.o   KPP_ROOT_Model.o 
+
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+# User: modify the line below to include only the
+#       objects needed by your application
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ALLOBJ = $(GENOBJ) $(FUNOBJ) $(JACOBJ) $(HESOBJ) $(STMOBJ) \
+	 $(UTLOBJ) $(LAOBJ)
+
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+# User: modify the line below to include only the
+#       executables needed by your application
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+all:    exe
+
+exe:	$(ALLOBJ) $(MAINOBJ) 
+	$(FC) $(FOPT) $(ALLOBJ) $(MAINOBJ) $(LIBS) -o KPP_ROOT.exe
+
+stochastic:$(ALLOBJ) $(STOCHOBJ) $(MAINOBJ)
+	$(FC) $(FOPT) $(ALLOBJ) $(STOCHOBJ) $(MAINOBJ) $(LIBS) \
+	-o KPP_ROOT_stochastic.exe
+
+mex:    $(ALLOBJ)
+	$(MEX) FC#$(FC) -fortran -O KPP_ROOT_mex_Fun.f90     $(ALLOBJ)
+	$(MEX) FC#$(FC) -fortran -O KPP_ROOT_mex_Jac_SP.f90  $(ALLOBJ)
+	$(MEX) FC#$(FC) -fortran -O KPP_ROOT_mex_Hessian.f90 $(ALLOBJ)
+
+clean:
+	rm -f KPP_ROOT*.o KPP_ROOT*.mod \
+	KPP_ROOT*.dat KPP_ROOT.exe KPP_ROOT*.mexglx \
+	KPP_ROOT.map
+
+distclean:
+	rm -f KPP_ROOT*.o KPP_ROOT*.mod \
+	KPP_ROOT*.dat KPP_ROOT.exe KPP_ROOT.map \
+	KPP_ROOT*.f90 KPP_ROOT_*.mexglx
+
+KPP_ROOT_Precision.o: KPP_ROOT_Precision.f90 
+	$(FC) $(FOPT) -c $<
+
+KPP_ROOT_Parameters.o: KPP_ROOT_Parameters.f90 \
+	            KPP_ROOT_Precision.o
+	$(FC) $(FOPT) -c $<
+
+KPP_ROOT_Monitor.o: KPP_ROOT_Monitor.f90 \
+	             KPP_ROOT_Precision.o
+	$(FC) $(FOPT) -c $<
+
+KPP_ROOT_Global.o: KPP_ROOT_Global.f90 \
+	            KPP_ROOT_Parameters.o KPP_ROOT_Precision.o
+	$(FC) $(FOPT) -c $<
+
+KPP_ROOT_Initialize.o: KPP_ROOT_Initialize.f90  $(GENOBJ) 
+	$(FC) $(FOPT) -c $<
+
+KPP_ROOT_Function.o: KPP_ROOT_Function.f90  $(GENOBJ) 
+	$(FC) $(FOPT) -c $<
+
+KPP_ROOT_Stochastic.o: KPP_ROOT_Stochastic.f90  $(GENOBJ) 
+	$(FC) $(FOPT) -c $<
+
+KPP_ROOT_JacobianSP.o: KPP_ROOT_JacobianSP.f90 $(GENOBJ)
+	$(FC) $(FOPT) -c $<
+
+KPP_ROOT_Jacobian.o: KPP_ROOT_Jacobian.f90  $(GENOBJ) KPP_ROOT_JacobianSP.o
+	$(FC) $(FOPT) -c $<
+
+KPP_ROOT_LinearAlgebra.o: KPP_ROOT_LinearAlgebra.f90 $(GENOBJ) KPP_ROOT_JacobianSP.o
+	$(FC) $(FOPT) -c $<
+
+KPP_ROOT_Rates.o: KPP_ROOT_Rates.f90  $(GENOBJ) 
+	$(FC) $(FOPT) -c $<
+
+KPP_ROOT_HessianSP.o: KPP_ROOT_HessianSP.f90  $(GENOBJ)
+	$(FC) $(FOPT) -c $<
+
+KPP_ROOT_Hessian.o:  KPP_ROOT_Hessian.f90 $(GENOBJ) KPP_ROOT_HessianSP.o
+	$(FC) $(FOPT) -c $<
+
+KPP_ROOT_StoichiomSP.o: KPP_ROOT_StoichiomSP.f90 $(GENOBJ)
+	$(FC) $(FOPT) -c $<
+
+KPP_ROOT_Stoichiom.o: KPP_ROOT_Stoichiom.f90  $(GENOBJ) KPP_ROOT_StoichiomSP.o
+	$(FC) $(FOPT) -c $<
+
+KPP_ROOT_Util.o: KPP_ROOT_Util.f90  $(GENOBJ) KPP_ROOT_Monitor.o
+	$(FC) $(FOPT) -c $<
+
+KPP_ROOT_Main.o: KPP_ROOT_Main.f90  $(ALLOBJ) KPP_ROOT_Initialize.o KPP_ROOT_Model.o KPP_ROOT_Integrator.o
+	$(FC) $(FOPT) -c $<
+
+KPP_ROOT_Model.o: KPP_ROOT_Model.f90  $(ALLOBJ) KPP_ROOT_Integrator.o
+	$(FC) $(FOPT) -c $<
+
+KPP_ROOT_Integrator.o: KPP_ROOT_Integrator.f90  $(ALLOBJ)
+	$(FC) $(FOPT) -c $<
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/Mex_Fun.c
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/Mex_Fun.c	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/Mex_Fun.c	(revision 2696)
@@ -0,0 +1,52 @@
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
+Matlab Gateway for the Derivative Function Fun 
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+#include "mex.h"
+#define min( x, y ) (x) < (y) ? (x) : (y)
+#define max( x, y ) (x) > (y) ? (x) : (y)
+
+void mexFunction( int nlhs, mxArray *plhs[], 
+                     int nrhs, const mxArray *prhs[] )
+{
+ int mrows, mcols;
+ KPP_REAL *V, *F, *RCT, *Vdot;
+
+/* Check for the right number and size of input arguments */
+ if ( nrhs != 3 ) {
+   mexErrMsgTxt("KPP_ROOT_Fun requires 3 input vectors: V(KPP_NVAR), F(KPP_NFIX), RCT(KPP_NREACT)");
+ }
+ mrows =  mxGetM(prhs[0]); mcols = mxGetN(prhs[0]);
+ if ( ( mrows != KPP_NVAR )||( mcols != 1 ) ) {
+   mexPrintf("First KPP_ROOT_Fun input argument is of size V(%d,%d).",  
+               mrows, mcols);
+   mexErrMsgTxt("First KPP_ROOT_Fun input argument should be a column vector V(KPP_NVAR,1)");
+ }
+ mrows =  mxGetM(prhs[1]); mcols = mxGetN(prhs[1]);
+ if ( ( mrows != KPP_NFIX )||( mcols != 1 ) ) {
+   mexPrintf("Second KPP_ROOT_Fun input argument is of size F(%d,%d).",  
+               mrows, mcols);
+   mexErrMsgTxt("Second KPP_ROOT_Fun input argument should be a column vector F(KPP_NFIX,1)");
+ }
+ mrows =  mxGetM(prhs[2]); mcols = mxGetN(prhs[2]);
+ if ( (  mrows != KPP_NREACT )||( mcols != 1 ) ) {
+   mexPrintf("Third KPP_ROOT_Fun input argument is of size RCT(%d,%d).",  
+               mrows, mcols);
+   mexErrMsgTxt("Third KPP_ROOT_Fun input argument should be a column vector RCT(KPP_NREACT,1)");
+ }
+ 
+/* Check for the right number of output arguments */
+ if ( nlhs != 1 ) {
+   mexErrMsgTxt("KPP_ROOT_Fun requires 1 output column vector: Vdot(KPP_NVAR)");
+ }
+
+ V   = mxGetPr(prhs[0]);
+ F   = mxGetPr(prhs[1]);
+ RCT = mxGetPr(prhs[2]);
+
+ plhs[0] = mxCreateDoubleMatrix(KPP_NVAR,1,mxREAL);
+ Vdot = mxGetPr(plhs[0]);
+
+ Fun( V, F, RCT, Vdot );
+
+}
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/Mex_Fun.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/Mex_Fun.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/Mex_Fun.f	(revision 2696)
@@ -0,0 +1,44 @@
+
+C~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE mexFunction( nlhs, plhs, nrhs, prhs )
+C~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+C             Matlab Gateway for the Derivative Function Fun
+C~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      INTEGER nlhs, nrhs
+      INTEGER plhs(*), prhs(*)
+      INTEGER mxGetPr, mxCreateFull, mxGetM, mxgetN
+      INTEGER VPtr, FPtr, RPtr, VdotPtr
+      KPP_REAL V(KPP_NVAR), F(KPP_NFIX), RCT(KPP_NREACT)
+      KPP_REAL Vdot(KPP_NVAR)
+
+C Check for the right number of input arguments
+      IF ( nrhs .ne. 3 ) THEN
+         CALL mexErrMsgTxt('Fun requires 3 input vectors: 
+     &V(KPP_NVAR), F(KPP_NFIX), RCT(KPP_NREACT)')
+      END IF 
+C Check for the right number of output arguments
+      IF ( nlhs .ne. 1 ) THEN
+         CALL mexErrMsgTxt('Fun requires 1 output vector: 
+     &Vdot(KPP_NVAR)')
+      END IF 
+
+      plhs(1) = mxCreateDoubleMatrix(KPP_NVAR,1,0)
+
+      VPtr = mxGetPr(prhs(1))
+      CALL mxCopyPtrToReal8(VPtr,V,KPP_NVAR)
+      
+      FPtr = mxGetPr(prhs(2))
+      CALL mxCopyPtrToReal8(FPtr,F,KPP_NFIX)
+      
+      RPtr = mxGetPr(prhs(3))
+      CALL mxCopyPtrToReal8(RPtr,RCT,KPP_NREACT)
+
+      VdotPtr = mxGetPr(plhs(1))
+
+      CALL Fun( V, F, RCT, Vdot )
+
+      CALL mxCopyReal8ToPtr(Vdot, VdotPtr, KPP_NVAR)
+
+      RETURN 
+      END
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/Mex_Fun.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/Mex_Fun.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/Mex_Fun.f90	(revision 2696)
@@ -0,0 +1,45 @@
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE mexFunction( nlhs, plhs, nrhs, prhs )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!                 Matlab Gateway for the Derivative Function Fun
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+ USE KPP_ROOT_Model
+
+      INTEGER nlhs, nrhs
+      INTEGER plhs(*), prhs(*)
+      INTEGER mxGetPr, mxCreateFull, mxGetM, mxgetN
+      INTEGER VPtr, FPtr, RPtr, VdotPtr
+      KPP_REAL V(KPP_NVAR), F(KPP_NFIX), RCT(KPP_NREACT)
+      KPP_REAL Vdot(KPP_NVAR)
+
+! Check for the right number of input arguments
+      IF ( nrhs .ne. 3 ) THEN
+         CALL mexErrMsgTxt('Fun requires 3 input vectors: &
+     &V(KPP_NVAR), F(KPP_NFIX), RCT(KPP_NREACT)')
+      END IF 
+! Check for the right number of output arguments
+      IF ( nlhs .ne. 1 ) THEN
+         CALL mexErrMsgTxt('Fun requires 1 output vector: &
+     &Vdot(KPP_NVAR)')
+      END IF 
+
+      plhs(1) = mxCreateDoubleMatrix(KPP_NVAR,1,0)
+
+      VPtr = mxGetPr(prhs(1))
+      CALL mxCopyPtrToReal8(VPtr,V,KPP_NVAR)
+      
+      FPtr = mxGetPr(prhs(2))
+      CALL mxCopyPtrToReal8(FPtr,F,KPP_NFIX)
+      
+      RPtr = mxGetPr(prhs(3))
+      CALL mxCopyPtrToReal8(RPtr,RCT,KPP_NREACT)
+
+      VdotPtr = mxGetPr(plhs(1))
+
+      CALL Fun( V, F, RCT, Vdot )
+
+      CALL mxCopyReal8ToPtr(Vdot, VdotPtr, KPP_NVAR)
+
+ END SUBROUTINE mexFunction
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/Mex_Hessian.c
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/Mex_Hessian.c	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/Mex_Hessian.c	(revision 2696)
@@ -0,0 +1,54 @@
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
+                   Matlab Gateway for the Hessian 
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+#include "mex.h"
+#define min( x, y ) (x) < (y) ? (x) : (y)
+#define max( x, y ) (x) > (y) ? (x) : (y)
+
+void mexFunction( int nlhs, mxArray *plhs[], 
+                     int nrhs, const mxArray *prhs[] )
+{
+ int mrows, mcols;
+ KPP_REAL *V, *F, *RCT, *HESS;
+
+
+/* Check for the right number and size of input arguments */
+ if ( nrhs != 3 ) {
+   mexErrMsgTxt("KPP_ROOT_Hessian requires 3 input vectors: V(KPP_NVAR), F(KPP_NFIX), RCT(KPP_NREACT)");
+ }
+ mrows =  mxGetM(prhs[0]); mcols = mxGetN(prhs[0]);
+ if ( ( mrows != KPP_NVAR )||( mcols != 1 ) ) {
+   mexPrintf("First KPP_ROOT_Hessian input argument is of size V(%d,%d).",  
+               mrows, mcols);
+   mexErrMsgTxt("First KPP_ROOT_Hessian input argument should be a column vector V(KPP_NVAR,1)");
+ }
+ mrows =  mxGetM(prhs[1]); mcols = mxGetN(prhs[1]);
+ if ( ( mrows != KPP_NFIX )||( mcols != 1 ) ) {
+   mexPrintf("Second KPP_ROOT_Hessian input argument is of size F(%d,%d).",  
+               mrows, mcols);
+   mexErrMsgTxt("Second KPP_ROOT_Hessian input argument should be a column vector F(KPP_NFIX,1)");
+ }
+ mrows =  mxGetM(prhs[2]); mcols = mxGetN(prhs[2]);
+ if ( (  mrows != KPP_NREACT )||( mcols != 1 ) ) {
+   mexPrintf("Third KPP_ROOT_Hessian input argument is of size RCT(%d,%d).",  
+               mrows, mcols);
+   mexErrMsgTxt("Third KPP_ROOT_Hessian input argument should be a column vector RCT(KPP_NREACT,1)");
+ }
+ 
+/* Check for the right number of output arguments */
+ if ( nlhs != 1 ) {
+   mexErrMsgTxt("KPP_ROOT_Hessian requires 1 output column vector: HESS(KPP_NHESS)");
+ }
+
+
+ V   = mxGetPr(prhs[0]);
+ F   = mxGetPr(prhs[1]);
+ RCT = mxGetPr(prhs[2]);
+
+ plhs[0] = mxCreateDoubleMatrix(KPP_NHESS,1,mxREAL);
+ HESS = mxGetPr(plhs[0]);
+
+ Hessian( V, F, RCT, HESS );
+
+}
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/Mex_Hessian.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/Mex_Hessian.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/Mex_Hessian.f	(revision 2696)
@@ -0,0 +1,43 @@
+C~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE mexFunction( nlhs, plhs, nrhs, prhs )
+C~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+C                      Matlab Gateway for the Sparse Hessian
+C~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      INTEGER nlhs, nrhs
+      INTEGER plhs(*), prhs(*)
+      INTEGER mxGetPr, mxCreateFull, mxGetM, mxgetN
+      INTEGER VPtr, FPtr, RPtr, HESSPtr
+      KPP_REAL V(KPP_NVAR), F(KPP_NFIX), RCT(KPP_NREACT)
+      KPP_REAL HESS(KPP_NHESS)
+
+C Check for the right number of input arguments
+      IF ( nrhs .ne. 3 ) THEN
+         CALL mexErrMsgTxt('Hessian requires 3 input vectors: 
+     &V(KPP_NVAR), F(KPP_NFIX), RCT(KPP_NREACT)')
+      END IF 
+C Check for the right number of output arguments
+      IF ( nlhs .ne. 1 ) THEN
+         CALL mexErrMsgTxt('Hessian requires 1 output vector: 
+     &HESS(KPP_NHESS)')
+      END IF 
+
+      plhs(1) = mxCreateDoubleMatrix(KPP_NHESS,1,0)
+
+      VPtr = mxGetPr(prhs(1))
+      CALL mxCopyPtrToReal8(VPtr,V,KPP_NVAR)
+      
+      FPtr = mxGetPr(prhs(2))
+      CALL mxCopyPtrToReal8(FPtr,F,KPP_NFIX)
+      
+      RPtr = mxGetPr(prhs(3))
+      CALL mxCopyPtrToReal8(RPtr,RCT,KPP_NREACT)
+
+      HESSPtr = mxGetPr(plhs(1))
+
+      CALL Hessian( V, F, RCT, HESS )
+
+      CALL mxCopyReal8ToPtr(HESS, HESSPtr, KPP_NHESS)
+
+      RETURN 
+      END
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/Mex_Hessian.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/Mex_Hessian.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/Mex_Hessian.f90	(revision 2696)
@@ -0,0 +1,45 @@
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE mexFunction( nlhs, plhs, nrhs, prhs )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!                  Matlab Gateway for the Function Hessian
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+ USE KPP_ROOT_Model
+
+      INTEGER nlhs, nrhs
+      INTEGER plhs(*), prhs(*)
+      INTEGER mxGetPr, mxCreateFull, mxGetM, mxgetN
+      INTEGER VPtr, FPtr, RPtr, HESSPtr
+      KPP_REAL V(KPP_NVAR), F(KPP_NFIX), RCT(KPP_NREACT)
+      KPP_REAL HESS(KPP_NHESS)
+
+! Check for the right number of input arguments
+      IF ( nrhs .ne. 3 ) THEN
+         CALL mexErrMsgTxt('Hessian requires 3 input vectors: &
+     &V(KPP_NVAR), F(KPP_NFIX), RCT(KPP_NREACT)')
+      END IF 
+! Check for the right number of output arguments
+      IF ( nlhs .ne. 1 ) THEN
+         CALL mexErrMsgTxt('Hessian requires 1 output vector: &
+     &HESS(KPP_NHESS)')
+      END IF 
+
+      plhs(1) = mxCreateDoubleMatrix(KPP_NHESS,1,0)
+
+      VPtr = mxGetPr(prhs(1));
+      CALL mxCopyPtrToReal8(VPtr,V,KPP_NVAR)
+      
+      FPtr = mxGetPr(prhs(2));
+      CALL mxCopyPtrToReal8(FPtr,F,KPP_NFIX)
+      
+      RPtr = mxGetPr(prhs(3));
+      CALL mxCopyPtrToReal8(RPtr,RCT,KPP_NREACT)
+
+      HESSPtr = mxGetPr(plhs(1))
+
+      CALL Hessian( V, F, RCT, HESS )
+
+      CALL mxCopyReal8ToPtr(HESS, HESSPtr, KPP_NHESS)
+
+ END SUBROUTINE mexFunction
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/Mex_Jac_SP.c
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/Mex_Jac_SP.c	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/Mex_Jac_SP.c	(revision 2696)
@@ -0,0 +1,53 @@
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
+            Matlab Gateway for the Jacobian Jac_SP 
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+#include "mex.h"
+#define min( x, y ) (x) < (y) ? (x) : (y)
+#define max( x, y ) (x) > (y) ? (x) : (y)
+
+void mexFunction( int nlhs, mxArray *plhs[], 
+                int nrhs, const mxArray *prhs[] )
+{
+ int mrows, mcols;
+ KPP_REAL *V, *F, *RCT, *JVS;
+
+/* Check for the right number and size of input arguments */
+ if ( nrhs != 3 ) {
+   mexErrMsgTxt("KPP_ROOT_Jac_SP requires 3 input vectors: V(KPP_NVAR), F(KPP_NFIX), RCT(KPP_NREACT)");
+ }
+ mrows =  mxGetM(prhs[0]); mcols = mxGetN(prhs[0]);
+ if ( ( mrows != KPP_NVAR )||( mcols != 1 ) ) {
+   mexPrintf("First KPP_ROOT_Jac_SP input argument is of size V(%d,%d).",  
+               mrows, mcols);
+   mexErrMsgTxt("First KPP_ROOT_Jac_SP input argument should be a column vector V(KPP_NVAR,1)");
+ }
+ mrows =  mxGetM(prhs[1]); mcols = mxGetN(prhs[1]);
+ if ( ( mrows != KPP_NFIX )||( mcols != 1 ) ) {
+   mexPrintf("Second KPP_ROOT_Jac_SP input argument is of size F(%d,%d).",  
+               mrows, mcols);
+   mexErrMsgTxt("Second KPP_ROOT_Jac_SP input argument should be a column vector F(KPP_NFIX,1)");
+ }
+ mrows =  mxGetM(prhs[2]); mcols = mxGetN(prhs[2]);
+ if ( (  mrows != KPP_NREACT )||( mcols != 1 ) ) {
+   mexPrintf("Third KPP_ROOT_Jac_SP input argument is of size RCT(%d,%d).",  
+               mrows, mcols);
+   mexErrMsgTxt("Third KPP_ROOT_Jac_SP input argument should be a column vector RCT(KPP_NREACT,1)");
+ }
+ 
+/* Check for the right number of output arguments */
+ if ( nlhs != 1 ) {
+   mexErrMsgTxt("KPP_ROOT_Jac_SP requires 1 output column vector: JVS(KPP_LU_NONZERO)");
+ }
+
+
+ V   = mxGetPr(prhs[0]);
+ F   = mxGetPr(prhs[1]);
+ RCT = mxGetPr(prhs[2]);
+
+ plhs[0] = mxCreateDoubleMatrix(KPP_LU_NONZERO,1,mxREAL);
+ JVS = mxGetPr(plhs[0]);
+
+ Jac_SP( V, F, RCT, JVS );
+
+}
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/Mex_Jac_SP.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/Mex_Jac_SP.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/Mex_Jac_SP.f	(revision 2696)
@@ -0,0 +1,43 @@
+
+      SUBROUTINE mexFunction( nlhs, plhs, nrhs, prhs )
+C~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+C               Matlab Gateway for the Sparse Jacobian Function Jac_SP
+C~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      INTEGER nlhs, nrhs
+      INTEGER plhs(*), prhs(*)
+      INTEGER mxGetPr, mxCreateFull, mxGetM, mxgetN
+      INTEGER VPtr, FPtr, RPtr, JVSPtr
+      KPP_REAL V(KPP_NVAR), F(KPP_NFIX), RCT(KPP_NREACT)
+      KPP_REAL JVS(KPP_LU_NONZERO)
+
+C Check for the right number of input arguments
+      IF ( nrhs .ne. 3 ) THEN
+         CALL mexErrMsgTxt('Jac_SP requires 3 input vectors: 
+     &V(KPP_NVAR), F(KPP_NFIX), RCT(KPP_NREACT)')
+      END IF 
+C Check for the right number of output arguments
+      IF ( nlhs .ne. 1 ) THEN
+         CALL mexErrMsgTxt('Jac_SP requires 1 output vector: 
+     &JVS(KPP_LU_NONZERO)')
+      END IF 
+
+      plhs(1) = mxCreateDoubleMatrix(KPP_LU_NONZERO,1,0)
+
+      VPtr = mxGetPr(prhs(1))
+      CALL mxCopyPtrToReal8(VPtr,V,KPP_NVAR)
+      
+      FPtr = mxGetPr(prhs(2))
+      CALL mxCopyPtrToReal8(FPtr,F,KPP_NFIX)
+      
+      RPtr = mxGetPr(prhs(3))
+      CALL mxCopyPtrToReal8(RPtr,RCT,KPP_NREACT)
+
+      JVSPtr = mxGetPr(plhs(1))
+
+      CALL Jac_SP( V, F, RCT, JVS )
+
+      CALL mxCopyReal8ToPtr(JVS, JVSPtr, KPP_LU_NONZERO)
+
+      RETURN 
+      END
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/Mex_Jac_SP.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/Mex_Jac_SP.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/Mex_Jac_SP.f90	(revision 2696)
@@ -0,0 +1,44 @@
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE mexFunction( nlhs, plhs, nrhs, prhs )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!          Matlab Gateway for the Sparse Jacobian Function Jac_SP
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+ USE KPP_ROOT_Model
+
+      INTEGER nlhs, nrhs
+      INTEGER plhs(*), prhs(*)
+      INTEGER mxGetPr, mxCreateFull, mxGetM, mxgetN
+      INTEGER VPtr, FPtr, RPtr, JVSPtr
+      KPP_REAL V(KPP_NVAR), F(KPP_NFIX), RCT(KPP_NREACT)
+      KPP_REAL JVS(KPP_LU_NONZERO)
+
+! Check for the right number of input arguments
+      IF ( nrhs .ne. 3 ) THEN
+         CALL mexErrMsgTxt('Jac_SP requires 3 input vectors: &
+     &V(KPP_NVAR), F(KPP_NFIX), RCT(KPP_NREACT)')
+      END IF 
+! Check for the right number of output arguments
+      IF ( nlhs .ne. 1 ) THEN
+         CALL mexErrMsgTxt('Jac_SP requires 1 output vector: &
+     &JVS(KPP_LU_NONZERO)')
+      END IF 
+
+      plhs(1) = mxCreateDoubleMatrix(KPP_LU_NONZERO,1,0)
+
+      VPtr = mxGetPr(prhs(1))
+      CALL mxCopyPtrToReal8(VPtr,V,KPP_NVAR)
+      
+      FPtr = mxGetPr(prhs(2))
+      CALL mxCopyPtrToReal8(FPtr,F,KPP_NFIX)
+      
+      RPtr = mxGetPr(prhs(3))
+      CALL mxCopyPtrToReal8(RPtr,RCT,KPP_NREACT)
+
+      JVSPtr = mxGetPr(plhs(1))
+
+      CALL Jac_SP( V, F, RCT, JVS )
+
+      CALL mxCopyReal8ToPtr(JVS, JVSPtr, KPP_LU_NONZERO)
+
+ END SUBROUTINE mexFunction
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/Template_Fun_Chem.m
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/Template_Fun_Chem.m	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/Template_Fun_Chem.m	(revision 2696)
@@ -0,0 +1,22 @@
+
+% Wrapper for calling the ODE function routine
+% in a format required by Matlab's ODE integrators
+
+function P = KPP_ROOT_Fun_Chem(T, Y) 
+     
+  global TIME FIX RCONST  
+ 
+  Told = TIME;
+  TIME = T;
+  KPP_ROOT_Update_SUN;
+  KPP_ROOT_Update_RCONST;
+  
+%  This line calls the Matlab ODE function routine  
+  P = KPP_ROOT_Fun( Y, FIX, RCONST );
+  
+%  To call the mex routine instead, comment the line above and uncomment the following line:
+%  P = KPP_ROOT_mex_Fun( Y, FIX, RCONST );
+
+  TIME = Told;
+
+return
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/Template_Jac_Chem.m
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/Template_Jac_Chem.m	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/Template_Jac_Chem.m	(revision 2696)
@@ -0,0 +1,32 @@
+
+% Wrapper for calling the sparse ODE Jacobian routine
+% in a format required by Matlab's ODE integrators
+
+function J =  KPP_ROOT_Jac_Chem(T, Y)   
+  
+  global TIME FIX RCONST 
+%  To call the mex file uncomment one of the following lines:
+%     1) LU prefix if SPARSE_LU_ROW option was used in code generation
+%  global LU_IROW LU_ICOL 
+%     2) if SPARSE_ROW option was used in code generation
+%  global IROW ICOL 
+  
+  Told = TIME;
+  TIME = T;
+  KPP_ROOT_Update_SUN;
+  KPP_ROOT_Update_RCONST;
+  
+%  This line calls the Matlab ODE Jacobian routine  
+  J = KPP_ROOT_Jac_SP( Y, FIX, RCONST );
+  
+%  To call the mex routine instead, comment the line above and uncomment one of the following lines:
+%     1) LU prefix if SPARSE_LU_ROW option was used in code generation
+%  J = sparse( LU_IROW, LU_ICOL, ...
+%        KPP_ROOT_mex_Jac_SP( Y, FIX, RCONST ), KPP_NVAR, KPP_NVAR); 
+%     2) if SPARSE_ROW option was used in code generation
+%  J = sparse( IROW, ICOL, ...
+%        KPP_ROOT_mex_Jac_SP( Y, FIX, RCONST ), KPP_NVAR, KPP_NVAR); 
+
+  TIME = Told;
+  
+return              
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/UpdateSun.c
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/UpdateSun.c	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/UpdateSun.c	(revision 2696)
@@ -0,0 +1,20 @@
+void Update_SUN()
+{
+KPP_REAL SunRise, SunSet;
+KPP_REAL Thour, Tlocal, Ttmp; 
+const KPP_REAL PI = 3.14159265358979;  
+
+  SunRise = 4.5;
+  SunSet  = 19.5;
+  Thour = TIME/3600.0;
+  Tlocal = Thour - ((int)Thour/24)*24;
+
+  if ( (Tlocal >= SunRise) && (Tlocal <= SunSet) ) {
+    Ttmp = (2.0*Tlocal-SunRise-SunSet)/(SunSet-SunRise);
+    if (Ttmp > 0) Ttmp =  Ttmp*Ttmp;
+             else Ttmp = -Ttmp*Ttmp;
+    SUN = ( 1.0 + cos(PI*Ttmp) )/2.0; 
+  } else {
+    SUN=0.0;
+  }
+}
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/UpdateSun.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/UpdateSun.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/UpdateSun.f	(revision 2696)
@@ -0,0 +1,30 @@
+      SUBROUTINE Update_SUN()
+
+      IMPLICIT NONE
+      INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Global.h'
+
+      KPP_REAL SunRise, SunSet
+      KPP_REAL Thour, Tlocal, Ttmp, PI
+      PARAMETER (PI = 3.14159265358979d0) 
+   
+      SunRise = 4.5
+      SunSet  = 19.5
+      Thour = TIME/3600.
+      Tlocal = Thour - (INT(Thour)/24)*24
+
+      IF ((Tlocal.GE.SunRise).AND.(Tlocal.LE.SunSet)) THEN
+        Ttmp = (2.0*Tlocal-SunRise-SunSet)/(SunSet-SunRise)
+        IF (Ttmp.GT.0) THEN
+          Ttmp =  Ttmp*Ttmp
+        ELSE
+          Ttmp = -Ttmp*Ttmp
+        END IF
+        SUN = ( 1.0 + COS(PI*Ttmp) )/2.0 
+      ELSE
+        SUN = 0.0
+      END IF
+
+      RETURN
+      END
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/UpdateSun.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/UpdateSun.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/UpdateSun.f90	(revision 2696)
@@ -0,0 +1,30 @@
+  SUBROUTINE Update_SUN()
+      !USE KPP_ROOT_Parameters
+      !USE KPP_ROOT_Global
+
+    IMPLICIT NONE
+
+    KPP_REAL :: SunRise, SunSet
+    KPP_REAL :: Thour, Tlocal, Ttmp 
+    ! PI - Value of pi
+    KPP_REAL, PARAMETER :: PI = 3.14159265358979d0
+    
+    SunRise = 4.5_dp 
+    SunSet  = 19.5_dp 
+    Thour = TIME/3600.0_dp 
+    Tlocal = Thour - (INT(Thour)/24)*24
+
+    IF ((Tlocal>=SunRise).AND.(Tlocal<=SunSet)) THEN
+       Ttmp = (2.0*Tlocal-SunRise-SunSet)/(SunSet-SunRise)
+       IF (Ttmp.GT.0) THEN
+          Ttmp =  Ttmp*Ttmp
+       ELSE
+          Ttmp = -Ttmp*Ttmp
+       END IF
+       SUN = ( 1.0_dp + COS(PI*Ttmp) )/2.0_dp 
+    ELSE
+       SUN = 0.0_dp 
+    END IF
+
+ END SUBROUTINE Update_SUN
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/UpdateSun.m
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/UpdateSun.m	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/UpdateSun.m	(revision 2696)
@@ -0,0 +1,23 @@
+function Update_SUN( )
+
+global TIME SUN
+ 
+   SunRise = 4.5;
+   SunSet  = 19.5;
+   Thour = TIME/3600.;
+   Tlocal = Thour - floor(Thour/24)*24;
+
+   if ( (Tlocal>=SunRise) & (Tlocal<=SunSet) ) 
+     Ttmp = (2.0*Tlocal-SunRise-SunSet)/(SunSet-SunRise);
+     if (Ttmp>0) 
+       Ttmp =  Ttmp*Ttmp;
+     else
+       Ttmp = -Ttmp*Ttmp;
+     end 
+     SUN = ( 1.0 + cos(pi*Ttmp) )/2.0 ;
+   else
+     SUN = 0.0;
+   end 
+
+return % Update_SUN
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/UserRateLaws.c
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/UserRateLaws.c	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/UserRateLaws.c	(revision 2696)
@@ -0,0 +1,67 @@
+/*  User-defined Rate Law functions
+    Note: the default argument type for rate laws, as read from the equations file, is single precision
+         but all the internal calculations are performed in double precision
+*/
+/* Arrhenius */
+KPP_REAL  ARR( float A0, float B0, float C0 )
+      {
+      double ARR_RES;
+                 
+      ARR_RES = (double)A0 * exp( -(double)B0/TEMP ) 
+                * pow( (TEMP/300.0), (double)C0 );   
+           
+      return (KPP_REAL)ARR_RES;
+      }           
+
+
+/* Simplified Arrhenius, with two arguments */
+/* Note that the argument B0 has a changed sign when compared to ARR */
+KPP_REAL  ARR2(  float A0, float B0 )
+      {
+      double ARR_RES;           
+
+      ARR_RES =  (double)A0 * exp( (double)B0/TEMP );   
+           
+      return (KPP_REAL)ARR_RES;
+      }           
+
+
+KPP_REAL  EP2( float A0, float C0, float A2, float C2, float A3, float C3)
+      {                       
+      double K0, K2, K3, EP2_RES;
+      
+      K0 = (double)A0 * exp( -(double)C0/TEMP );
+      K2 = (double)A2 * exp( -(double)C2/TEMP );
+      K3 = (double)A3 * exp( -(double)C3/TEMP );
+      K3 = K3*CFACTOR*1.0e+6;
+      EP2_RES = K0 + K3/( 1.0+K3/K2 );
+        
+      return (KPP_REAL)EP2_RES;
+      }  
+
+
+KPP_REAL  EP3( float A1, float C1, float A2, float C2) 
+      {               
+      double K1, K2, EP3_RES;
+      
+      K1 = (double)A1 * exp(-(double)C1/TEMP);
+      K2 = (double)A2 * exp(-(double)C2/TEMP);
+      EP3_RES = K1 + K2*(1.0e+6*CFACTOR);
+      
+      return (KPP_REAL)EP3_RES;
+      }    
+
+
+KPP_REAL  FALL (  float A0, float B0, float C0, float A1, float B1, float C1, float CF)
+      {                      
+      double K0, K1, FALL_RES;
+      
+      K0 = (double)A0 * exp(-(double)B0/TEMP)* pow( (TEMP/300.0), (double)C0 );
+      K1 = (double)A1 * exp(-(double)B1/TEMP)* pow( (TEMP/300.0), (double)C1 );
+      K0 = K0*CFACTOR*1.0e+6;
+      K1 = K0/K1;
+      FALL_RES = (K0/(1.0+K1))*
+           pow( (double)CF, ( 1.0/( 1.0+pow( (log10(K1)),2 ) ) ) );
+        
+      return (KPP_REAL)FALL_RES;
+      }
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/UserRateLaws.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/UserRateLaws.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/UserRateLaws.f	(revision 2696)
@@ -0,0 +1,76 @@
+C  User-defined Rate Law functions
+C  Note: the default argument type for rate laws, as read from the equations file, is single precision
+C        but all the internal calculations are performed in REAL*8
+
+C Arrhenius
+      KPP_REAL FUNCTION ARR( A0,B0,C0 )
+      INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Global.h'
+                 
+      REAL A0,B0,C0      
+      ARR =  DBLE(A0) * EXP(-DBLE(B0)/TEMP) * (TEMP/300.0D0)**DBLE(C0)   
+           
+      RETURN
+      END           
+
+
+C Simplified Arrhenius, with two arguments
+C Note: The argument B0 has a changed sign when compared to ARR
+      KPP_REAL FUNCTION ARR2( A0,B0 )
+      INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Global.h'
+                 
+      REAL A0,B0     
+      ARR2 =  DBLE(A0) * EXP( DBLE(B0)/TEMP )   
+           
+      RETURN
+      END           
+
+      KPP_REAL FUNCTION EP2(A0,C0,A2,C2,A3,C3)
+      INCLUDE 'KPP_ROOT_Parameters.h'                       
+      INCLUDE 'KPP_ROOT_Global.h'
+      
+      REAL A0,C0,A2,C2,A3,C3
+      REAL*8 K0,K2,K3
+      
+      K0 = DBLE(A0) * EXP(-DBLE(C0)/TEMP)
+      K2 = DBLE(A2) * EXP(-DBLE(C2)/TEMP)
+      K3 = DBLE(A3) * EXP(-DBLE(C3)/TEMP)
+      K3 = K3*CFACTOR*1.0d6
+      EP2 = K0 + K3/(1.0d0+K3/K2 )
+        
+      RETURN
+      END  
+
+
+      KPP_REAL FUNCTION EP3(A1,C1,A2,C2) 
+      INCLUDE 'KPP_ROOT_Parameters.h'               
+      INCLUDE 'KPP_ROOT_Global.h'
+      
+      REAL A1, C1, A2, C2
+      REAL*8 K1, K2
+      
+      K1 = DBLE(A1) * EXP(-DBLE(C1)/TEMP)
+      K2 = DBLE(A2) * EXP(-DBLE(C2)/TEMP)
+      EP3 = K1 + K2*(1.0d6*CFACTOR)
+      
+      RETURN
+      END    
+
+
+      KPP_REAL FUNCTION FALL ( A0,B0,C0,A1,B1,C1,CF)
+      INCLUDE 'KPP_ROOT_Parameters.h'                      
+      INCLUDE 'KPP_ROOT_Global.h'
+      
+      REAL A0,B0,C0,A1,B1,C1,CF
+      REAL*8 K0, K1
+      
+      K0 = DBLE(A0) * EXP(-DBLE(B0)/TEMP)* (TEMP/300.0D0)**DBLE(C0)
+      K1 = DBLE(A1) * EXP(-DBLE(B1)/TEMP)* (TEMP/300.0D0)**DBLE(C1)
+      K0 = K0*CFACTOR*1.0D6
+      K1 = K0/K1
+      FALL = (K0/(1.0d0+K1))*
+     *      DBLE(CF)**(1.0d0/(1.0d0+(DLOG10(K1))**2))
+        
+      RETURN
+      END
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/UserRateLaws.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/UserRateLaws.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/UserRateLaws.f90	(revision 2696)
@@ -0,0 +1,106 @@
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!  User-defined Rate Law functions
+!  Note: the default argument type for rate laws, as read from the equations file, is single precision
+!        but all the internal calculations are performed in double precision
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+! RFo: IMPORTANT: Comments must ALWAYS stand BEFORE the code to be processed
+!
+!      This is just the working copy of UserRateLaws.f90 which is actually used. 
+!      It is copied from GASPASE_PREPROC/mechanisms/UserRateLaws.f90 to kpp/util/UserRateLaws.f90
+!      each time when run_kpp4palm.ksh is run. 
+
+
+!~~~>  Arrhenius
+   KPP_REAL FUNCTION ARR( A0,B0,C0 )
+      REAL A0,B0,C0      
+      ARR =  DBLE(A0) * EXP(-DBLE(B0)/TEMP) * (TEMP/300.0_dp)**DBLE(C0)
+   END FUNCTION ARR        
+
+
+!~~~> Simplified Arrhenius, with two arguments, fixed TEMP=20 deg C
+!~~~> Note: The argument B0 has a changed sign when compared to ARR
+!
+!~~~> Simplified Arrhenius, with two arguments
+! RFo: same as above, but with TEMP in parameter list and _dp
+!  KPP_REAL (kind=dp) FUNCTION ARR2( A0, B0 )
+!     REAL (kind=dp) A0,B0
+!     ARR2 =  A0 * EXP( B0 / 20.0_dp )
+!  END FUNCTION ARR2
+REAL(kind=dp) FUNCTION ARR2( a0, b0, temp )
+    REAL(kind=dp) :: temp
+    REAL(kind=dp) :: a0,b0
+    ARR2 = a0 * EXP( -b0 / temp )
+END FUNCTION ARR2
+
+
+   KPP_REAL FUNCTION EP2(A0,C0,A2,C2,A3,C3)
+      REAL A0,C0,A2,C2,A3,C3
+      REAL(kind=dp) K0,K2,K3            
+      K0 = DBLE(A0) * EXP(-DBLE(C0)/TEMP)
+      K2 = DBLE(A2) * EXP(-DBLE(C2)/TEMP)
+      K3 = DBLE(A3) * EXP(-DBLE(C3)/TEMP)
+      K3 = K3*CFACTOR*1.0E6_dp
+      EP2 = K0 + K3/(1.0_dp+K3/K2 )
+   END FUNCTION EP2
+
+   KPP_REAL FUNCTION EP3(A1,C1,A2,C2) 
+      REAL A1, C1, A2, C2
+      REAL(kind=dp) K1, K2      
+      K1 = DBLE(A1) * EXP(-DBLE(C1)/TEMP)
+      K2 = DBLE(A2) * EXP(-DBLE(C2)/TEMP)
+      EP3 = K1 + K2*(1.0E6_dp*CFACTOR)
+   END FUNCTION EP3 
+
+   KPP_REAL FUNCTION FALL ( A0,B0,C0,A1,B1,C1,CF)
+      REAL A0,B0,C0,A1,B1,C1,CF
+      REAL(kind=dp) K0, K1     
+      K0 = DBLE(A0) * EXP(-DBLE(B0)/TEMP)* (TEMP/300.0_dp)**DBLE(C0)
+      K1 = DBLE(A1) * EXP(-DBLE(B1)/TEMP)* (TEMP/300.0_dp)**DBLE(C1)
+      K0 = K0*CFACTOR*1.0E6_dp
+      K1 = K0/K1
+      FALL = (K0/(1.0_dp+K1))*   &
+           DBLE(CF)**(1.0_dp/(1.0_dp+(LOG10(K1))**2))
+   END FUNCTION FALL
+
+  !---------------------------------------------------------------------------
+
+  ELEMENTAL REAL(kind=dp) FUNCTION k_3rd(temp,cair,k0_300K,n,kinf_300K,m,fc)
+
+    INTRINSIC LOG10
+
+    REAL(kind=dp), INTENT(IN) :: temp      ! temperature [K]
+    REAL(kind=dp), INTENT(IN) :: cair      ! air concentration [molecules/cm3]
+    REAL, INTENT(IN) :: k0_300K   ! low pressure limit at 300 K
+    REAL, INTENT(IN) :: n         ! exponent for low pressure limit
+    REAL, INTENT(IN) :: kinf_300K ! high pressure limit at 300 K
+    REAL, INTENT(IN) :: m         ! exponent for high pressure limit
+    REAL, INTENT(IN) :: fc        ! broadening factor (usually fc=0.6)
+    REAL(kind=dp) :: zt_help, k0_T, kinf_T, k_ratio
+
+    zt_help = 300._dp/temp
+    k0_T    = k0_300K   * zt_help**(n) * cair ! k_0   at current T
+    kinf_T  = kinf_300K * zt_help**(m)        ! k_inf at current T
+    k_ratio = k0_T/kinf_T
+    k_3rd   = k0_T/(1._dp+k_ratio)*fc**(1._dp/(1._dp+LOG10(k_ratio)**2))
+
+  END FUNCTION k_3rd
+
+  !---------------------------------------------------------------------------
+
+  ELEMENTAL REAL(kind=dp) FUNCTION k_arr (k_298,tdep,temp)
+    ! Arrhenius function
+
+    REAL,     INTENT(IN) :: k_298 ! k at T = 298.15K
+    REAL,     INTENT(IN) :: tdep  ! temperature dependence
+    REAL(kind=dp), INTENT(IN) :: temp  ! temperature
+
+    INTRINSIC EXP
+
+    k_arr = k_298 * EXP(tdep*(1._dp/temp-3.3540E-3_dp)) ! 1/298.15=3.3540e-3
+
+  END FUNCTION k_arr
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!  End of User-defined Rate Law functions
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/UserRateLaws.f90_orig
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/UserRateLaws.f90_orig	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/UserRateLaws.f90_orig	(revision 2696)
@@ -0,0 +1,104 @@
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!  User-defined Rate Law functions
+!  Note: the default argument type for rate laws, as read from the equations file, is single precision
+!        but all the internal calculations are performed in double precision
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+! RFo: IMPORTANT: Comments must ALWAYS stand BEFORE the code to be processed
+!      This is just a savety copy. The UserRateLaws.f90 which is actually used 
+!      is copied from GASPASE_PREPROC/mechanisms/UserRateLaws.f90 to kpp/util/UserRateLaws.f90
+!      each time when run_kpp4palm.ksh is run 
+
+!~~~>  Arrhenius
+   KPP_REAL FUNCTION ARR( A0,B0,C0 )
+      REAL A0,B0,C0      
+      ARR =  DBLE(A0) * EXP(-DBLE(B0)/TEMP) * (TEMP/300.0_dp)**DBLE(C0)
+   END FUNCTION ARR        
+
+
+!~~~> Simplified Arrhenius, with two arguments, fixed TEMP=20 deg C
+!~~~> Note: The argument B0 has a changed sign when compared to ARR
+!
+!~~~> Simplified Arrhenius, with two arguments
+! RFo: same as above, but with TEMP in parameter list and _dp
+!  KPP_REAL (kind=dp) FUNCTION ARR2( A0, B0 )
+!     REAL (kind=dp) A0,B0
+!     ARR2 =  A0 * EXP( B0 / 20.0_dp )
+!  END FUNCTION ARR2
+REAL(kind=dp) FUNCTION ARR2( a0, b0, temp )
+    REAL(kind=dp) :: temp
+    REAL(kind=dp) :: a0,b0
+    ARR2 = a0 * EXP( -b0 / temp )
+END FUNCTION ARR2
+
+
+   KPP_REAL FUNCTION EP2(A0,C0,A2,C2,A3,C3)
+      REAL A0,C0,A2,C2,A3,C3
+      REAL(kind=dp) K0,K2,K3            
+      K0 = DBLE(A0) * EXP(-DBLE(C0)/TEMP)
+      K2 = DBLE(A2) * EXP(-DBLE(C2)/TEMP)
+      K3 = DBLE(A3) * EXP(-DBLE(C3)/TEMP)
+      K3 = K3*CFACTOR*1.0E6_dp
+      EP2 = K0 + K3/(1.0_dp+K3/K2 )
+   END FUNCTION EP2
+
+   KPP_REAL FUNCTION EP3(A1,C1,A2,C2) 
+      REAL A1, C1, A2, C2
+      REAL(kind=dp) K1, K2      
+      K1 = DBLE(A1) * EXP(-DBLE(C1)/TEMP)
+      K2 = DBLE(A2) * EXP(-DBLE(C2)/TEMP)
+      EP3 = K1 + K2*(1.0E6_dp*CFACTOR)
+   END FUNCTION EP3 
+
+   KPP_REAL FUNCTION FALL ( A0,B0,C0,A1,B1,C1,CF)
+      REAL A0,B0,C0,A1,B1,C1,CF
+      REAL(kind=dp) K0, K1     
+      K0 = DBLE(A0) * EXP(-DBLE(B0)/TEMP)* (TEMP/300.0_dp)**DBLE(C0)
+      K1 = DBLE(A1) * EXP(-DBLE(B1)/TEMP)* (TEMP/300.0_dp)**DBLE(C1)
+      K0 = K0*CFACTOR*1.0E6_dp
+      K1 = K0/K1
+      FALL = (K0/(1.0_dp+K1))*   &
+           DBLE(CF)**(1.0_dp/(1.0_dp+(LOG10(K1))**2))
+   END FUNCTION FALL
+
+  !---------------------------------------------------------------------------
+
+  ELEMENTAL REAL(kind=dp) FUNCTION k_3rd(temp,cair,k0_300K,n,kinf_300K,m,fc)
+
+    INTRINSIC LOG10
+
+    REAL(kind=dp), INTENT(IN) :: temp      ! temperature [K]
+    REAL(kind=dp), INTENT(IN) :: cair      ! air concentration [molecules/cm3]
+    REAL, INTENT(IN) :: k0_300K   ! low pressure limit at 300 K
+    REAL, INTENT(IN) :: n         ! exponent for low pressure limit
+    REAL, INTENT(IN) :: kinf_300K ! high pressure limit at 300 K
+    REAL, INTENT(IN) :: m         ! exponent for high pressure limit
+    REAL, INTENT(IN) :: fc        ! broadening factor (usually fc=0.6)
+    REAL(kind=dp) :: zt_help, k0_T, kinf_T, k_ratio
+
+    zt_help = 300._dp/temp
+    k0_T    = k0_300K   * zt_help**(n) * cair ! k_0   at current T
+    kinf_T  = kinf_300K * zt_help**(m)        ! k_inf at current T
+    k_ratio = k0_T/kinf_T
+    k_3rd   = k0_T/(1._dp+k_ratio)*fc**(1._dp/(1._dp+LOG10(k_ratio)**2))
+
+  END FUNCTION k_3rd
+
+  !---------------------------------------------------------------------------
+
+  ELEMENTAL REAL(kind=dp) FUNCTION k_arr (k_298,tdep,temp)
+    ! Arrhenius function
+
+    REAL,     INTENT(IN) :: k_298 ! k at T = 298.15K
+    REAL,     INTENT(IN) :: tdep  ! temperature dependence
+    REAL(kind=dp), INTENT(IN) :: temp  ! temperature
+
+    INTRINSIC EXP
+
+    k_arr = k_298 * EXP(tdep*(1._dp/temp-3.3540E-3_dp)) ! 1/298.15=3.3540e-3
+
+  END FUNCTION k_arr
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!  End of User-defined Rate Law functions
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/UserRateLaws.m
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/UserRateLaws.m	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/UserRateLaws.m	(revision 2696)
@@ -0,0 +1,41 @@
+%  User-defined Rate Law functions
+%  Note: insert this file at the end of Update_RCONST
+
+%---  Arrhenius
+   function [rate] =  ARR( A0,B0,C0 )
+      global TEMP CFACTOR
+      rate =  (A0) * exp(-(B0)/TEMP) * (TEMP/300.0)^(C0) ;            
+   return %  ARR        
+
+%--- Simplified Arrhenius, with two arguments
+%--- Note: The argument B0 has a changed sign when compared to ARR
+   function [rate] =  ARR2( A0,B0 )
+      global TEMP CFACTOR
+      rate =  (A0) * exp( (B0)/TEMP ) ;             
+   return %  ARR2          
+
+   function [rate] =  EP2(A0,C0,A2,C2,A3,C3)
+      global TEMP CFACTOR                       
+      K0 = (A0) * exp(-C0/TEMP);
+      K2 = (A2) * exp(-C2/TEMP);
+      K3 = (A3) * exp(-C3/TEMP);
+      K3 = K3*CFACTOR*1.0e+6;
+      rate = K0 + K3/(1.0+K3/K2) ;       
+   return %  EP2
+
+   function [rate] =  EP3(A1,C1,A2,C2) 
+      global TEMP CFACTOR               
+      K1 = (A1) * exp(-(C1)/TEMP);
+      K2 = (A2) * exp(-(C2)/TEMP);
+      rate = K1 + K2*(1.0e+6*CFACTOR);      
+   return %  EP3 
+
+   function [rate] =  FALL ( A0,B0,C0,A1,B1,C1,CF)
+      global TEMP CFACTOR                      
+      K0 = A0 * exp(-B0/TEMP)* (TEMP/300.0)^(C0);
+      K1 = A1 * exp(-B1/TEMP)* (TEMP/300.0)^(C1);
+      K0 = K0*CFACTOR*1.0e+6;
+      K1 = K0/K1;
+      rate = (K0/(1.0+K1))*(CF)^(1.0/(1.0+(log(K1))^2));        
+   return %  FALL
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/UserRateLaws_FcnHeader.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/UserRateLaws_FcnHeader.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/UserRateLaws_FcnHeader.f	(revision 2696)
@@ -0,0 +1,6 @@
+C  Definitions for User-defined Rate Law functions
+C  To be inserted in funcions that call rate laws
+
+      KPP_REAL ARR, ARR2
+      KPP_REAL EP2, EP3, FALL
+      EXTERNAL ARR, ARR2, EP2, EP3, FALL
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/blas.c
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/blas.c	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/blas.c	(revision 2696)
@@ -0,0 +1,242 @@
+/*--------------------------------------------------------------
+ 
+  BLAS/LAPACK-like subroutines used by the integration algorithms
+  It is recommended to replace them by calls to the optimized
+       BLAS/LAPACK library for your machine
+ 
+   (C) Adrian Sandu, Aug. 2004
+ 
+--------------------------------------------------------------*/
+
+#define ZERO  (KPP_REAL)0.0
+#define ONE   (KPP_REAL)1.0
+#define HALF  (KPP_REAL)0.5
+#define TWO   (KPP_REAL)2.0
+#define MOD(A,B) (int)((A)%(B))
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void WCOPY(int N, KPP_REAL X[], int incX, KPP_REAL Y[], int incY)
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    copies a vector, x, to a vector, y:  y <- x
+    only for incX=incY=1
+    after BLAS
+    replace this by the function from the optimized BLAS implementation:
+        CALL  SCOPY(N,X,1,Y,1)   or   CALL  DCOPY(N,X,1,Y,1)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+{
+      int i, M;
+      if (N <= 0) return;
+
+      M = MOD(N,8);
+      if( M != 0 ) {
+        for ( i = 0; i < M; i++ )
+          Y[i] = X[i];
+        if( N < 8 ) return;
+      } /* end if */	
+      for ( i = M; i<N; i+=8 ) {
+        Y[i] = X[i];
+        Y[i + 1] = X[i + 1];
+        Y[i + 2] = X[i + 2];
+        Y[i + 3] = X[i + 3];
+        Y[i + 4] = X[i + 4];
+        Y[i + 5] = X[i + 5];
+        Y[i + 6] = X[i + 6];
+        Y[i + 7] = X[i + 7];
+      } /* end for */
+
+} /* end function WCOPY */
+
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void WAXPY(int N, KPP_REAL Alpha, 
+         KPP_REAL X[], int incX, 
+	 KPP_REAL Y[], int incY )
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    constant times a vector plus a vector: y <- y + Alpha*x
+    only for incX=incY=1
+    after BLAS
+    replace this by the function from the optimized BLAS implementation:
+        CALL SAXPY(N,Alpha,X,1,Y,1) or  CALL DAXPY(N,Alpha,X,1,Y,1)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+{
+      int i, M;
+
+      if (Alpha == ZERO) return;
+      if (N  <=  0) return;
+
+      M = MOD(N,4);
+      if( M != 0 ) {
+        for ( i = 0; i < M; i++ )
+          Y[i] = Y[i] + Alpha*X[i];
+        if ( N < 4 ) return;
+      } /* end if */
+      
+      for ( i = M; i < N; i += 4 ) {
+        Y[i] = Y[i] + Alpha*X[i];
+        Y[i + 1] = Y[i + 1] + Alpha*X[i + 1];
+        Y[i + 2] = Y[i + 2] + Alpha*X[i + 2];
+        Y[i + 3] = Y[i + 3] + Alpha*X[i + 3];
+      } /* end for */
+
+} /* end function  WAXPY */
+
+
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void WSCAL(int N, KPP_REAL Alpha, KPP_REAL X[], int incX)
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    constant times a vector: x(1:N) <- Alpha*x(1:N) 
+    only for incX=incY=1
+    after BLAS
+    replace this by the function from the optimized BLAS implementation:
+        CALL SSCAL(N,Alpha,X,1) or  CALL DSCAL(N,Alpha,X,1)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+{
+      int i, M;
+      
+      if (Alpha == ONE) return;
+      if (N  <=  0) return;
+
+      M = MOD(N,5);
+      if( M  !=  0 ) {
+        if (Alpha == (-ONE))
+          for ( i = 0; i < M; i++ )  X[i] = -X[i];
+        else {
+	  if (Alpha == ZERO)
+            for ( i = 0; i < M; i++ ) X[i] = ZERO;
+          else
+            for ( i = 0; i < M; i++ ) X[i] = Alpha*X[i];
+        } /* end else */
+        if( N < 5 ) return;
+      } /* end if */
+      
+      if (Alpha == (-ONE))
+        for ( i = M; i<N; i+=5 ) {
+          X[i]     = -X[i];
+          X[i + 1] = -X[i + 1];
+          X[i + 2] = -X[i + 2];
+          X[i + 3] = -X[i + 3];
+          X[i + 4] = -X[i + 4];
+        } /* end for */
+      else {
+        if (Alpha == ZERO)
+          for ( i = M; i < N; i += 5 ) {
+            X[i]     = ZERO;
+            X[i + 1] = ZERO;
+            X[i + 2] = ZERO;
+            X[i + 3] = ZERO;
+            X[i + 4] = ZERO;
+          } /* end for */
+        else
+          for ( i = M; i < N; i += 5 ) {
+            X[i]     = Alpha*X[i];
+            X[i + 1] = Alpha*X[i + 1];
+            X[i + 2] = Alpha*X[i + 2];
+            X[i + 3] = Alpha*X[i + 3];
+            X[i + 4] = Alpha*X[i + 4];
+           } /* end for */
+      }  /* else  */
+      
+} /* end function WSCAL */
+   
+     
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+KPP_REAL WLAMCH_ADD( KPP_REAL  A, KPP_REAL  B )
+{
+      return (A + B);
+} /* end function  WLAMCH_ADD */
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+KPP_REAL WLAMCH( char C )
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    returns epsilon machine
+    after LAPACK
+    replace this by the function from the optimized LAPACK implementation:
+         CALL SLAMCH('E') or CALL DLAMCH('E')
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+{
+      int i;
+      KPP_REAL Suma;
+      static KPP_REAL Eps;
+      static char First = 1;
+      
+      if (First) {
+        First = 0;
+        Eps = pow(HALF,16);
+        for ( i = 17; i <= 80; i++ ) {
+          Eps = Eps*HALF;
+	  Suma = WLAMCH_ADD(ONE,Eps);
+	  if (Suma <= ONE) break;
+        } /* end for */
+        if (i==80) {
+	   printf("\nERROR IN WLAMCH. Very small EPS = %g\n",Eps);
+           return (double)2.2e-16;
+	}
+        Eps *= TWO; i--;      
+      } /* end if First */
+
+      return Eps;
+
+} /* end function WLAMCH */
+
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ 	copies zeros into the vector y:  y <- 0 after BLAS
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void Set2Zero(int N, KPP_REAL Y[])
+{
+   int i,M;
+	
+   if (N <= 0) return;
+
+   M = MOD(N,8);
+   if  (M != 0)
+   {
+	for (i = 0; i < M; i++)
+	{
+	   Y[i] = ZERO;
+	}
+	if (N < 8) 
+	   return;
+   } /* end if */
+   for (i = M; i < N; i += 8)
+   {
+   	Y[i] = ZERO;
+	Y[i + 1] = ZERO;
+        Y[i + 2] = ZERO;
+	Y[i + 3] = ZERO;
+	Y[i + 4] = ZERO;
+	Y[i + 5] = ZERO;
+	Y[i + 6] = ZERO;
+	Y[i + 7] = ZERO;
+   } /* end for */
+} /* end function Set2Zero */
+
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+	adds two vectors: z <- x + y     BLAS - like
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void WADD(int N, KPP_REAL X[], KPP_REAL Y[], KPP_REAL Z[])
+{
+	int i, M;
+
+	if ( N <= 0 ) return;
+	
+	M = MOD(N,5);
+	if ( M != 0 )
+	{
+	   for(i = 0; i < M; i++)
+	   {
+		Z[i] = X[i] + Y[i];
+	   }
+	   if ( N < 5 ) return;
+	} /* end if */
+	for (i = M; i < N; i += 5)
+	{
+	   Z[i] = X[i] + Y[i];
+	   Z[i + 1] = X[i + 1] + Y[i + 1];
+	   Z[i + 2] = X[i + 2] + Y[i + 2];
+	   Z[i + 3] = X[i + 3] + Y[i + 3];
+	   Z[i + 4] = X[i + 4] + Y[i + 4];
+	} /* end for */
+} /* end function WADD */
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/blas.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/blas.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/blas.f	(revision 2696)
@@ -0,0 +1,319 @@
+!--------------------------------------------------------------
+!
+! BLAS/LAPACK-like subroutines used by the integration algorithms
+! It is recommended to replace them by calls to the optimized
+!      BLAS/LAPACK library for your machine
+!
+!  (C) Adrian Sandu, Aug. 2004
+!      Virginia Polytechnic Institute and State University
+!--------------------------------------------------------------
+
+
+!--------------------------------------------------------------
+      SUBROUTINE  WCOPY(N,X,incX,Y,incY)
+!--------------------------------------------------------------
+!     copies a vector, x, to a vector, y:  y <- x
+!     only for incX=incY=1
+!     after BLAS
+!     replace this by the function from the optimized BLAS implementation:
+!         CALL  SCOPY(N,X,1,Y,1)   or   CALL  DCOPY(N,X,1,Y,1)
+!--------------------------------------------------------------
+      
+      INTEGER i,incX,incY,M,MP1,N
+      KPP_REAL X(N),Y(N)
+
+      IF (N.LE.0) RETURN
+
+      M = MOD(N,8)
+      IF( M .NE. 0 ) THEN
+        DO i = 1,M
+          Y(i) = X(i)
+        END DO
+        IF( N .LT. 8 ) RETURN
+      END IF	
+      MP1 = M+1
+      DO i = MP1,N,8
+        Y(i) = X(i)
+        Y(i + 1) = X(i + 1)
+        Y(i + 2) = X(i + 2)
+        Y(i + 3) = X(i + 3)
+        Y(i + 4) = X(i + 4)
+        Y(i + 5) = X(i + 5)
+        Y(i + 6) = X(i + 6)
+        Y(i + 7) = X(i + 7)
+      END DO
+      RETURN
+      END
+
+
+!--------------------------------------------------------------
+      SUBROUTINE WAXPY(N,Alpha,X,incX,Y,incY)
+!--------------------------------------------------------------
+!     constant times a vector plus a vector: y <- y + Alpha*x
+!     only for incX=incY=1
+!     after BLAS
+!     replace this by the function from the optimized BLAS implementation:
+!         CALL SAXPY(N,Alpha,X,1,Y,1) or  CALL DAXPY(N,Alpha,X,1,Y,1)
+!--------------------------------------------------------------
+
+      INTEGER i,incX,incY,M,MP1,N
+      KPP_REAL X(N),Y(N),Alpha
+      KPP_REAL ZERO
+      PARAMETER( ZERO = 0.0d0 )
+
+      IF (Alpha .EQ. ZERO) RETURN
+      IF (N .LE. 0) RETURN
+
+      M = MOD(N,4)
+      IF( M .NE. 0 ) THEN
+        DO i = 1,M
+          Y(i) = Y(i) + Alpha*X(i)
+        END DO
+        IF( N .LT. 4 ) RETURN
+      END IF
+      MP1 = M + 1
+      DO i = MP1,N,4
+        Y(i) = Y(i) + Alpha*X(i)
+        Y(i + 1) = Y(i + 1) + Alpha*X(i + 1)
+        Y(i + 2) = Y(i + 2) + Alpha*X(i + 2)
+        Y(i + 3) = Y(i + 3) + Alpha*X(i + 3)
+      END DO
+      RETURN
+      END
+
+
+
+!--------------------------------------------------------------
+      SUBROUTINE WSCAL(N,Alpha,X,incX)
+!--------------------------------------------------------------
+!     constant times a vector: x(1:N) <- Alpha*x(1:N) 
+!     only for incX=incY=1
+!     after BLAS
+!     replace this by the function from the optimized BLAS implementation:
+!         CALL SSCAL(N,Alpha,X,1) or  CALL DSCAL(N,Alpha,X,1)
+!--------------------------------------------------------------
+
+      INTEGER i,incX,M,MP1,N
+      KPP_REAL X(N),Alpha
+      KPP_REAL ZERO, ONE
+      PARAMETER( ZERO = 0.0d0 )
+      PARAMETER( ONE  = 1.0d0 )
+
+      IF (Alpha .EQ. ONE) RETURN
+      IF (N .LE. 0) RETURN
+
+      M = MOD(N,5)
+      IF( M .NE. 0 ) THEN
+        IF (Alpha .EQ. (-ONE)) THEN
+          DO i = 1,M
+            X(i) = -X(i)
+          END DO
+        ELSEIF (Alpha .EQ. ZERO) THEN
+          DO i = 1,M
+            X(i) = ZERO
+          END DO
+        ELSE
+          DO i = 1,M
+            X(i) = Alpha*X(i)
+          END DO
+        END IF
+        IF( N .LT. 5 ) RETURN
+      END IF
+      MP1 = M + 1
+      IF (Alpha .EQ. (-ONE)) THEN
+        DO i = MP1,N,5
+          X(i)     = -X(i)
+          X(i + 1) = -X(i + 1)
+          X(i + 2) = -X(i + 2)
+          X(i + 3) = -X(i + 3)
+          X(i + 4) = -X(i + 4)
+        END DO
+      ELSEIF (Alpha .EQ. ZERO) THEN
+        DO i = MP1,N,5
+          X(i)     = ZERO
+          X(i + 1) = ZERO
+          X(i + 2) = ZERO
+          X(i + 3) = ZERO
+          X(i + 4) = ZERO
+        END DO
+      ELSE
+        DO i = MP1,N,5
+          X(i)     = Alpha*X(i)
+          X(i + 1) = Alpha*X(i + 1)
+          X(i + 2) = Alpha*X(i + 2)
+          X(i + 3) = Alpha*X(i + 3)
+          X(i + 4) = Alpha*X(i + 4)
+        END DO
+      END IF
+      RETURN
+      END
+
+!--------------------------------------------------------------
+      KPP_REAL FUNCTION WLAMCH( C )
+!--------------------------------------------------------------
+!     returns epsilon machine
+!     after LAPACK
+!     replace this by the function from the optimized LAPACK implementation:
+!          CALL SLAMCH('E') or CALL DLAMCH('E')
+!--------------------------------------------------------------
+
+      CHARACTER C
+      INTEGER   i
+      KPP_REAL  ONE, HALF, Eps, Suma
+      PARAMETER (ONE  = 1.0d0)
+      PARAMETER (HALF = 0.5d0)
+      LOGICAL   First
+      SAVE     First, Eps
+      DATA     First /.TRUE./
+      
+      IF (First) THEN
+        First = .FALSE.
+        Eps = HALF**(16)
+        DO i = 17, 80
+          Eps = Eps*HALF
+	  CALL WLAMCH_ADD(ONE,Eps,Suma)
+	  IF (Suma.LE.ONE) GOTO 10
+        END DO
+        PRINT*,'ERROR IN WLAMCH. EPS < ',Eps
+        RETURN
+10      Eps = Eps*2
+        i = i-1      
+      END IF
+
+      WLAMCH = Eps
+
+      RETURN
+      END
+     
+      SUBROUTINE WLAMCH_ADD( A, B, Suma )
+      KPP_REAL A, B, Suma
+      Suma = A + B
+      RETURN
+      END
+
+!--------------------------------------------------------------
+      SUBROUTINE SET2ZERO(N,Y)
+!--------------------------------------------------------------
+!     copies zeros into the vector y:  y <- 0
+!     after BLAS
+!--------------------------------------------------------------
+      
+      INTEGER   i,M,MP1,N
+      KPP_REAL  Y(N)
+
+      IF (N.LE.0) RETURN
+
+      M = MOD(N,8)
+      IF( M .NE. 0 ) THEN
+        DO i = 1,M
+          Y(i) = 0.0d0
+        END DO
+        IF( N .LT. 8 ) RETURN
+      END IF    
+      MP1 = M+1
+      DO i = MP1,N,8
+        Y(i)     = 0.0d0
+        Y(i + 1) = 0.0d0
+        Y(i + 2) = 0.0d0
+        Y(i + 3) = 0.0d0
+        Y(i + 4) = 0.0d0
+        Y(i + 5) = 0.0d0
+        Y(i + 6) = 0.0d0
+        Y(i + 7) = 0.0d0
+      END DO
+
+      END SUBROUTINE SET2ZERO
+
+
+!--------------------------------------------------------------
+      KPP_REAL FUNCTION WDOT (N, DX, incX, DY, incY) 
+!--------------------------------------------------------------
+!     dot produce: wdot = x(1:N)*y(1:N) 
+!     only for incX=incY=1
+!     after BLAS
+!     replace this by the function from the optimized BLAS implementation:
+!         CALL SDOT(N,X,1,Y,1) or  CALL DDOT(N,X,1,Y,1)
+!--------------------------------------------------------------
+!      USE messy_mecca_kpp_Precision
+!--------------------------------------------------------------
+      IMPLICIT NONE
+      INTEGER  N, incX, incY
+      KPP_REAL DX(N), DY(N) 
+
+      INTEGER  i, IX, IY, M, MP1, NS
+                                 
+      WDOT = 0.0D0 
+      IF (N .LE. 0) RETURN 
+      IF (incX .EQ. incY) IF (incX-1) 5,20,60 
+!                                                                       
+!     Code for unequal or nonpositive increments.                       
+!                                                                       
+    5 IX = 1 
+      IY = 1 
+      IF (incX .LT. 0) IX = (-N+1)*incX + 1 
+      IF (incY .LT. 0) IY = (-N+1)*incY + 1 
+      DO i = 1,N 
+        WDOT = WDOT + DX(IX)*DY(IY) 
+        IX = IX + incX 
+        IY = IY + incY 
+      END DO 
+      RETURN 
+!                                                                       
+!     Code for both increments equal to 1.                              
+!                                                                       
+!     Clean-up loop so remaining vector length is a multiple of 5.      
+!                                                                       
+   20 M = MOD(N,5) 
+      IF (M .EQ. 0) GO TO 40 
+      DO i = 1,M 
+         WDOT = WDOT + DX(i)*DY(i) 
+      END DO 
+      IF (N .LT. 5) RETURN 
+   40 MP1 = M + 1 
+      DO i = MP1,N,5 
+          WDOT = WDOT + DX(i)*DY(i) 
+     &            + DX(i+1)*DY(i+1) + DX(i+2)*DY(i+2) 
+     &            + DX(i+3)*DY(i+3) + DX(i+4)*DY(i+4)                   
+      END DO 
+      RETURN 
+!                                                                       
+!     Code for equal, positive, non-unit increments.                    
+!                                                                       
+   60 NS = N*incX 
+      DO i = 1,NS,incX 
+        WDOT = WDOT + DX(i)*DY(i) 
+      END DO 
+
+      END FUNCTION WDOT                                          
+
+
+!--------------------------------------------------------------
+      SUBROUTINE WADD(N,X,Y,Z)
+!--------------------------------------------------------------
+!     adds two vectors: z <- x + y
+!     BLAS - like
+!--------------------------------------------------------------
+      
+      INTEGER  i, M, MP1, N
+      KPP_REAL  X(N),Y(N),Z(N)
+
+      IF (N.LE.0) RETURN
+
+      M = MOD(N,5)
+      IF( M .NE. 0 ) THEN
+         DO i = 1,M
+            Z(i) = X(i) + Y(i)
+         END DO
+         IF( N .LT. 5 ) RETURN
+      END IF    
+      MP1 = M+1
+      DO i = MP1,N,5
+         Z(i)     = X(i)     + Y(i)
+         Z(i + 1) = X(i + 1) + Y(i + 1)
+         Z(i + 2) = X(i + 2) + Y(i + 2)
+         Z(i + 3) = X(i + 3) + Y(i + 3)
+         Z(i + 4) = X(i + 4) + Y(i + 4)
+      END DO
+
+      END SUBROUTINE WADD
+!--------------------------------------------------------------
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/blas.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/blas.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/blas.f90	(revision 2696)
@@ -0,0 +1,447 @@
+!--------------------------------------------------------------
+!
+! BLAS/LAPACK-like subroutines used by the integration algorithms
+! It is recommended to replace them by calls to the optimized
+!      BLAS/LAPACK library for your machine
+!
+!  (C) Adrian Sandu, Aug. 2004
+!      Virginia Polytechnic Institute and State University
+!--------------------------------------------------------------
+
+
+!--------------------------------------------------------------
+      SUBROUTINE WCOPY(N,X,incX,Y,incY)
+!--------------------------------------------------------------
+!     copies a vector, x, to a vector, y:  y <- x
+!     only for incX=incY=1
+!     after BLAS
+!     replace this by the function from the optimized BLAS implementation:
+!         CALL  SCOPY(N,X,1,Y,1)   or   CALL  DCOPY(N,X,1,Y,1)
+!--------------------------------------------------------------
+!     USE KPP_ROOT_Precision
+      
+      INTEGER  :: i,incX,incY,M,MP1,N
+      KPP_REAL :: X(N),Y(N)
+
+      IF (N.LE.0) RETURN
+
+      M = MOD(N,8)
+      IF( M .NE. 0 ) THEN
+        DO i = 1,M
+          Y(i) = X(i)
+        END DO
+        IF( N .LT. 8 ) RETURN
+      END IF    
+      MP1 = M+1
+      DO i = MP1,N,8
+        Y(i) = X(i)
+        Y(i + 1) = X(i + 1)
+        Y(i + 2) = X(i + 2)
+        Y(i + 3) = X(i + 3)
+        Y(i + 4) = X(i + 4)
+        Y(i + 5) = X(i + 5)
+        Y(i + 6) = X(i + 6)
+        Y(i + 7) = X(i + 7)
+      END DO
+
+      END SUBROUTINE WCOPY
+
+
+!--------------------------------------------------------------
+      SUBROUTINE WAXPY(N,Alpha,X,incX,Y,incY)
+!--------------------------------------------------------------
+!     constant times a vector plus a vector: y <- y + Alpha*x
+!     only for incX=incY=1
+!     after BLAS
+!     replace this by the function from the optimized BLAS implementation:
+!         CALL SAXPY(N,Alpha,X,1,Y,1) or  CALL DAXPY(N,Alpha,X,1,Y,1)
+!--------------------------------------------------------------
+
+      INTEGER  :: i,incX,incY,M,MP1,N
+      KPP_REAL :: X(N),Y(N),Alpha
+      KPP_REAL, PARAMETER :: ZERO = 0.0_dp
+
+      IF (Alpha .EQ. ZERO) RETURN
+      IF (N .LE. 0) RETURN
+
+      M = MOD(N,4)
+      IF( M .NE. 0 ) THEN
+        DO i = 1,M
+          Y(i) = Y(i) + Alpha*X(i)
+        END DO
+        IF( N .LT. 4 ) RETURN
+      END IF
+      MP1 = M + 1
+      DO i = MP1,N,4
+        Y(i) = Y(i) + Alpha*X(i)
+        Y(i + 1) = Y(i + 1) + Alpha*X(i + 1)
+        Y(i + 2) = Y(i + 2) + Alpha*X(i + 2)
+        Y(i + 3) = Y(i + 3) + Alpha*X(i + 3)
+      END DO
+      
+      END SUBROUTINE WAXPY
+
+
+
+!--------------------------------------------------------------
+      SUBROUTINE WSCAL(N,Alpha,X,incX)
+!--------------------------------------------------------------
+!     constant times a vector: x(1:N) <- Alpha*x(1:N) 
+!     only for incX=incY=1
+!     after BLAS
+!     replace this by the function from the optimized BLAS implementation:
+!         CALL SSCAL(N,Alpha,X,1) or  CALL DSCAL(N,Alpha,X,1)
+!--------------------------------------------------------------
+
+      INTEGER  :: i,incX,M,MP1,N
+      KPP_REAL  :: X(N),Alpha
+      KPP_REAL, PARAMETER  :: ZERO=0.0_dp, ONE=1.0_dp
+
+      IF (Alpha .EQ. ONE) RETURN
+      IF (N .LE. 0) RETURN
+
+      M = MOD(N,5)
+      IF( M .NE. 0 ) THEN
+        IF (Alpha .EQ. (-ONE)) THEN
+          DO i = 1,M
+            X(i) = -X(i)
+          END DO
+        ELSEIF (Alpha .EQ. ZERO) THEN
+          DO i = 1,M
+            X(i) = ZERO
+          END DO
+        ELSE
+          DO i = 1,M
+            X(i) = Alpha*X(i)
+          END DO
+        END IF
+        IF( N .LT. 5 ) RETURN
+      END IF
+      MP1 = M + 1
+      IF (Alpha .EQ. (-ONE)) THEN
+        DO i = MP1,N,5
+          X(i)     = -X(i)
+          X(i + 1) = -X(i + 1)
+          X(i + 2) = -X(i + 2)
+          X(i + 3) = -X(i + 3)
+          X(i + 4) = -X(i + 4)
+        END DO
+      ELSEIF (Alpha .EQ. ZERO) THEN
+        DO i = MP1,N,5
+          X(i)     = ZERO
+          X(i + 1) = ZERO
+          X(i + 2) = ZERO
+          X(i + 3) = ZERO
+          X(i + 4) = ZERO
+        END DO
+      ELSE
+        DO i = MP1,N,5
+          X(i)     = Alpha*X(i)
+          X(i + 1) = Alpha*X(i + 1)
+          X(i + 2) = Alpha*X(i + 2)
+          X(i + 3) = Alpha*X(i + 3)
+          X(i + 4) = Alpha*X(i + 4)
+        END DO
+      END IF
+
+      END SUBROUTINE WSCAL
+
+!--------------------------------------------------------------
+      KPP_REAL FUNCTION WLAMCH( C )
+!--------------------------------------------------------------
+!     returns epsilon machine
+!     after LAPACK
+!     replace this by the function from the optimized LAPACK implementation:
+!          CALL SLAMCH('E') or CALL DLAMCH('E')
+!--------------------------------------------------------------
+!      USE KPP_ROOT_Precision
+
+      CHARACTER ::  C
+      INTEGER    :: i
+      KPP_REAL, SAVE  ::  Eps
+      KPP_REAL  ::  Suma
+      KPP_REAL, PARAMETER  ::  ONE=1.0_dp, HALF=0.5_dp
+      LOGICAL, SAVE   ::  First=.TRUE.
+      
+      IF (First) THEN
+        First = .FALSE.
+        Eps = HALF**(16)
+        DO i = 17, 80
+          Eps = Eps*HALF
+          CALL WLAMCH_ADD(ONE,Eps,Suma)
+          IF (Suma.LE.ONE) GOTO 10
+        END DO
+        PRINT*,'ERROR IN WLAMCH. EPS < ',Eps
+        RETURN
+10      Eps = Eps*2
+        i = i-1      
+      END IF
+
+      WLAMCH = Eps
+
+      END FUNCTION WLAMCH
+     
+      SUBROUTINE WLAMCH_ADD( A, B, Suma )
+!      USE KPP_ROOT_Precision
+      
+      KPP_REAL A, B, Suma
+      Suma = A + B
+
+      END SUBROUTINE WLAMCH_ADD
+!--------------------------------------------------------------
+
+
+!--------------------------------------------------------------
+      SUBROUTINE SET2ZERO(N,Y)
+!--------------------------------------------------------------
+!     copies zeros into the vector y:  y <- 0
+!     after BLAS
+!--------------------------------------------------------------
+      
+      INTEGER ::  i,M,MP1,N
+      KPP_REAL ::  Y(N)
+      KPP_REAL, PARAMETER :: ZERO = 0.0d0
+
+      IF (N.LE.0) RETURN
+
+      M = MOD(N,8)
+      IF( M .NE. 0 ) THEN
+        DO i = 1,M
+          Y(i) = ZERO
+        END DO
+        IF( N .LT. 8 ) RETURN
+      END IF    
+      MP1 = M+1
+      DO i = MP1,N,8
+        Y(i)     = ZERO
+        Y(i + 1) = ZERO
+        Y(i + 2) = ZERO
+        Y(i + 3) = ZERO
+        Y(i + 4) = ZERO
+        Y(i + 5) = ZERO
+        Y(i + 6) = ZERO
+        Y(i + 7) = ZERO
+      END DO
+
+      END SUBROUTINE SET2ZERO
+
+
+!--------------------------------------------------------------
+      KPP_REAL FUNCTION WDOT (N, DX, incX, DY, incY) 
+!--------------------------------------------------------------
+!     dot produce: wdot = x(1:N)*y(1:N) 
+!     only for incX=incY=1
+!     after BLAS
+!     replace this by the function from the optimized BLAS implementation:
+!         CALL SDOT(N,X,1,Y,1) or  CALL DDOT(N,X,1,Y,1)
+!--------------------------------------------------------------
+!      USE messy_mecca_kpp_Precision
+!--------------------------------------------------------------
+      IMPLICIT NONE
+      INTEGER :: N, incX, incY
+      KPP_REAL :: DX(N), DY(N) 
+
+      INTEGER :: i, IX, IY, M, MP1, NS
+                                 
+      WDOT = 0.0D0 
+      IF (N .LE. 0) RETURN 
+      IF (incX .EQ. incY) IF (incX-1) 5,20,60 
+!                                                                       
+!     Code for unequal or nonpositive increments.                       
+!                                                                       
+    5 IX = 1 
+      IY = 1 
+      IF (incX .LT. 0) IX = (-N+1)*incX + 1 
+      IF (incY .LT. 0) IY = (-N+1)*incY + 1 
+      DO i = 1,N 
+        WDOT = WDOT + DX(IX)*DY(IY) 
+        IX = IX + incX 
+        IY = IY + incY 
+      END DO 
+      RETURN 
+!                                                                       
+!     Code for both increments equal to 1.                              
+!                                                                       
+!     Clean-up loop so remaining vector length is a multiple of 5.      
+!                                                                       
+   20 M = MOD(N,5) 
+      IF (M .EQ. 0) GO TO 40 
+      DO i = 1,M 
+         WDOT = WDOT + DX(i)*DY(i) 
+      END DO 
+      IF (N .LT. 5) RETURN 
+   40 MP1 = M + 1 
+      DO i = MP1,N,5 
+          WDOT = WDOT + DX(i)*DY(i) + DX(i+1)*DY(i+1) + DX(i+2)*DY(i+2) +  &
+                   DX(i+3)*DY(i+3) + DX(i+4)*DY(i+4)                   
+      END DO 
+      RETURN 
+!                                                                       
+!     Code for equal, positive, non-unit increments.                    
+!                                                                       
+   60 NS = N*incX 
+      DO i = 1,NS,incX 
+        WDOT = WDOT + DX(i)*DY(i) 
+      END DO 
+
+      END FUNCTION WDOT                                          
+
+
+!--------------------------------------------------------------
+      SUBROUTINE WADD(N,X,Y,Z)
+!--------------------------------------------------------------
+!     adds two vectors: z <- x + y
+!     BLAS - like
+!--------------------------------------------------------------
+!     USE KPP_ROOT_Precision
+      
+      INTEGER :: i, M, MP1, N
+      KPP_REAL :: X(N),Y(N),Z(N)
+
+      IF (N.LE.0) RETURN
+
+      M = MOD(N,5)
+      IF( M /= 0 ) THEN
+         DO i = 1,M
+            Z(i) = X(i) + Y(i)
+         END DO
+         IF( N < 5 ) RETURN
+      END IF    
+      MP1 = M+1
+      DO i = MP1,N,5
+         Z(i)     = X(i)     + Y(i)
+         Z(i + 1) = X(i + 1) + Y(i + 1)
+         Z(i + 2) = X(i + 2) + Y(i + 2)
+         Z(i + 3) = X(i + 3) + Y(i + 3)
+         Z(i + 4) = X(i + 4) + Y(i + 4)
+      END DO
+
+      END SUBROUTINE WADD
+      
+      
+      
+!--------------------------------------------------------------
+      SUBROUTINE WGEFA(N,A,Ipvt,info)
+!--------------------------------------------------------------
+!     WGEFA FACTORS THE MATRIX A (N,N) BY
+!           GAUSS ELIMINATION WITH PARTIAL PIVOTING
+!     LINPACK - LIKE 
+!--------------------------------------------------------------
+!
+      INTEGER       :: N,Ipvt(N),info
+      KPP_REAL :: A(N,N)
+      KPP_REAL :: t, dmax, da
+      INTEGER       :: j,k,l
+      KPP_REAL, PARAMETER :: ZERO = 0.0, ONE = 1.0
+
+      info = 0
+
+size: IF (n > 1) THEN
+      
+col:  DO k = 1, n-1
+
+!        find l = pivot index
+!        l = idamax(n-k+1,A(k,k),1) + k - 1
+         l = k; dmax = abs(A(k,k))
+         DO j = k+1,n
+            da = ABS(A(j,k))
+            IF (da > dmax) THEN
+              l = j; dmax = da
+            END IF
+         END DO
+         Ipvt(k) = l
+
+!        zero pivot implies this column already triangularized
+         IF (ABS(A(l,k)) < TINY(ZERO)) THEN
+            info = k
+            return
+         ELSE   
+            IF (l /= k) THEN
+               t = A(l,k); A(l,k) = A(k,k); A(k,k) = t
+            END IF
+            t = -ONE/A(k,k)
+            CALL WSCAL(n-k,t,A(k+1,k),1)
+            DO j = k+1, n
+               t = A(l,j)
+               IF (l /= k) THEN
+                  A(l,j) = A(k,j); A(k,j) = t
+               END IF
+               CALL WAXPY(n-k,t,A(k+1,k),1,A(k+1,j),1)
+            END DO         
+         END IF
+         
+       END DO col
+       
+      END IF size
+      
+      Ipvt(N) = N
+      IF (ABS(A(N,N)) == ZERO) info = N
+      
+      END SUBROUTINE WGEFA
+
+
+!--------------------------------------------------------------
+      SUBROUTINE WGESL(Trans,N,A,Ipvt,b)
+!--------------------------------------------------------------
+!     WGESL solves the system
+!     a * x = b  or  trans(a) * x = b
+!     using the factors computed by WGEFA.
+!
+!     Trans      = 'N'   to solve  A*x = b ,
+!                = 'T'   to solve  transpose(A)*x = b
+!     LINPACK - LIKE 
+!--------------------------------------------------------------
+
+      INTEGER       :: N,Ipvt(N)
+      CHARACTER     :: trans
+      KPP_REAL :: A(N,N),b(N)
+      KPP_REAL :: t
+      INTEGER       :: k,kb,l
+
+      
+      SELECT CASE (Trans)
+
+      CASE ('n','N')  !  Solve  A * x = b
+
+!        first solve  L*y = b
+         IF (n >= 2) THEN
+          DO k = 1, n-1
+            l = Ipvt(k)
+            t = b(l)
+            IF (l /= k) THEN
+               b(l) = b(k)
+               b(k) = t
+            END IF
+            CALL WAXPY(n-k,t,a(k+1,k),1,b(k+1),1)
+          END DO
+         END IF
+!        now solve  U*x = y
+         DO kb = 1, n
+            k = n + 1 - kb
+            b(k) = b(k)/a(k,k)
+            t = -b(k)
+            CALL WAXPY(k-1,t,a(1,k),1,b(1),1)
+         END DO
+      
+      CASE ('t','T')  !  Solve transpose(A) * x = b
+
+!        first solve  trans(U)*y = b
+         DO k = 1, n
+            t = WDOT(k-1,a(1,k),1,b(1),1)
+            b(k) = (b(k) - t)/a(k,k)
+         END DO
+!        now solve trans(L)*x = y
+         IF (n >= 2) THEN
+         DO kb = 1, n-1
+            k = n - kb
+            b(k) = b(k) + WDOT(n-k,a(k+1,k),1,b(k+1),1)
+            l = Ipvt(k)
+            IF (l /= k) THEN
+               t = b(l); b(l) = b(k); b(k) = t
+            END IF
+         END DO
+         END IF
+   
+      END SELECT
+
+      END SUBROUTINE WGESL
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/dFun_dRcoeff.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/dFun_dRcoeff.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/dFun_dRcoeff.f	(revision 2696)
@@ -0,0 +1,48 @@
+C ------------------------------------------------------------------------------
+C Subroutine for the derivative of Fun with respect to rate coefficients
+C -----------------------------------------------------------------------------
+
+      SUBROUTINE  dFun_dRcoeff( V, F, NCOEFF, JCOEFF, DFDR )
+       
+      IMPLICIT NONE 
+      INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Sparse.h'
+
+C V - Concentrations of variable/radical/fixed species            
+      KPP_REAL V(NVAR), F(NFIX)
+C NCOEFF - the number of rate coefficients with respect to which we differentiate
+      INTEGER NCOEFF       
+C JCOEFF - a vector of integers containing the indices of reactions (rate
+C          coefficients) with respect to which we differentiate
+      INTEGER JCOEFF(NCOEFF)       
+C DFDR  - a matrix containg derivative values; specifically, 
+C         column j contains d Fun(1:NVAR) / d RCT( JCOEFF(j) )
+C         for each 1 <= j <= NCOEFF
+C         This matrix is stored in a column-wise linearized format
+      KPP_REAL DFDR(NVAR*NCOEFF)
+
+C Local vector with reactant products
+      KPP_REAL A_RPROD(NREACT)
+      KPP_REAL aj
+      INTEGER i,j,k
+      
+C Compute the reactant products of all reactions     
+      CALL ReactantProd ( V, F, A_RPROD )
+
+C Compute the derivatives by multiplying column JCOEFF(j) of the stoichiometric matrix with A_RPROD       
+      DO j=1,NCOEFF
+C                  Initialize the j-th column of derivative matrix to zero       
+         DO i=1,NVAR
+           DFDR(i+NVAR*(j-1)) = 0.0D0
+         END DO
+C                  Column JCOEFF(j) in the stoichiometric matrix times the
+C                  reactant product  of the JCOEFF(j)-th reaction      
+C                  give the j-th column of the derivative matrix   
+         aj = A_RPROD(JCOEFF(j))
+         DO k=CCOL_STOICM(JCOEFF(j)),CCOL_STOICM(JCOEFF(j)+1)-1
+           DFDR(IROW_STOICM(k)+NVAR*(j-1)) = STOICM(k)*aj
+         END DO
+      END DO
+      
+      RETURN
+      END
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/dFun_dRcoeff.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/dFun_dRcoeff.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/dFun_dRcoeff.f90	(revision 2696)
@@ -0,0 +1,47 @@
+! ------------------------------------------------------------------------------
+! Subroutine for the derivative of Fun with respect to rate coefficients
+! -----------------------------------------------------------------------------
+
+      SUBROUTINE  dFun_dRcoeff( V, F, NCOEFF, JCOEFF, DFDR )
+       
+      USE KPP_ROOT_Parameters
+      USE KPP_ROOT_StoichiomSP
+      IMPLICIT NONE 
+
+! V - Concentrations of variable/radical/fixed species            
+      KPP_REAL V(NVAR), F(NFIX)
+! NCOEFF - the number of rate coefficients with respect to which we differentiate
+      INTEGER NCOEFF       
+! JCOEFF - a vector of integers containing the indices of reactions (rate
+!          coefficients) with respect to which we differentiate
+      INTEGER JCOEFF(NCOEFF)       
+! DFDR  - a matrix containg derivative values; specifically, 
+!         column j contains d Fun(1:NVAR) / d RCT( JCOEFF(j) )
+!         for each 1 <= j <= NCOEFF
+!         This matrix is stored in a column-wise linearized format
+      KPP_REAL DFDR(NVAR*NCOEFF)
+
+! Local vector with reactant products
+      KPP_REAL A_RPROD(NREACT)
+      KPP_REAL aj
+      INTEGER i,j,k
+      
+! Compute the reactant products of all reactions     
+      CALL ReactantProd ( V, F, A_RPROD )
+
+! Compute the derivatives by multiplying column JCOEFF(j) of the stoichiometric matrix with A_RPROD       
+      DO j=1,NCOEFF
+!                  Initialize the j-th column of derivative matrix to zero       
+         DO i=1,NVAR
+           DFDR(i+NVAR*(j-1)) = 0.0_dp 
+         END DO
+!                  Column JCOEFF(j) in the stoichiometric matrix times the
+!                  reactant product  of the JCOEFF(j)-th reaction      
+!                  give the j-th column of the derivative matrix   
+         aj = A_RPROD(JCOEFF(j))
+         DO k=CCOL_STOICM(JCOEFF(j)),CCOL_STOICM(JCOEFF(j)+1)-1
+           DFDR(IROW_STOICM(k)+NVAR*(j-1)) = STOICM(k)*aj
+         END DO
+      END DO
+      
+      END SUBROUTINE  dFun_dRcoeff
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/dFun_dRcoeff.m
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/dFun_dRcoeff.m	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/dFun_dRcoeff.m	(revision 2696)
@@ -0,0 +1,37 @@
+% ------------------------------------------------------------------------------
+% Subroutine for the derivative of Fun with respect to rate coefficients
+% -----------------------------------------------------------------------------
+
+DFDR = function dFun_dRcoeff( V, F, NCOEFF, JCOEFF )
+
+% V/F - Concentrations of variable/fixed species            
+% NCOEFF - the number of rate coefficients with respect to which we differentiate
+% JCOEFF - a vector of integers containing the indices of reactions (rate
+%          coefficients) with respect to which we differentiate
+%      INTEGER JCOEFF(NCOEFF)       
+% DFDR  - a matrix containg derivative values; specifically, 
+%         column j contains d Fun(1:KPP_NVAR) / d RCT( JCOEFF(j) )
+%         for each 1 <= j <= NCOEFF
+%         This matrix is stored in a column-wise linearized format
+%      KPP_REAL DFDR(KPP_NVAR*NCOEFF)
+
+% A_RPROD - Local vector with reactant products      
+% Compute the reactant products of all reactions     
+      A_RPROD = ReactantProd ( V, F );
+
+% Compute the derivatives by multiplying column JCOEFF(j) of the stoichiometric matrix with A_RPROD       
+      for j=1:NCOEFF
+%                  Initialize the j-th column of derivative matrix to zero       
+         for i=1:KPP_NVAR
+           DFDR(i+KPP_NVAR*(j-1)) = 0.0;
+         end
+%                  Column JCOEFF(j) in the stoichiometric matrix times the
+%                  reactant product  of the JCOEFF(j)-th reaction      
+%                  give the j-th column of the derivative matrix   
+         aj = A_RPROD(JCOEFF(j));
+         for k=CCOL_STOICM(JCOEFF(j)):CCOL_STOICM(JCOEFF(j)+1)-1
+           DFDR(IROW_STOICM(k)+KPP_NVAR*(j-1)) = STOICM(k)*aj;
+         end
+      end
+      
+return % dFun_dRcoeff
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/dJac_dRcoeff.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/dJac_dRcoeff.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/dJac_dRcoeff.f	(revision 2696)
@@ -0,0 +1,57 @@
+C ------------------------------------------------------------------------------
+C Subroutine for the derivative of Jac with respect to rate coefficients
+C Times a user vector
+C -----------------------------------------------------------------------------
+
+      SUBROUTINE  dJac_dRcoeff( V, F, U, NCOEFF, JCOEFF, DJDR )
+       
+      IMPLICIT NONE 
+      INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Sparse.h'
+
+C V - Concentrations of variable/radical/fixed species            
+      KPP_REAL V(NVAR), F(NFIX)
+C U - User-supplied Vector           
+      KPP_REAL U(NVAR)
+C NCOEFF - the number of rate coefficients with respect to which we differentiate
+      INTEGER NCOEFF       
+C JCOEFF - a vector of integers containing the indices of reactions (rate
+C          coefficients) with respect to which we differentiate
+      INTEGER JCOEFF(NCOEFF)       
+C DFDR  - a matrix containg derivative values; specifically, 
+C         column j contains d Jac(1:NVAR) / d RCT( JCOEFF(j) ) * U
+C                     for each 1 <= j <= NCOEFF
+C         This matrix is stored in a column-wise linearized format
+      KPP_REAL DJDR(NVAR*NCOEFF)
+
+C Local vector for Jacobian of reactant products
+      KPP_REAL JV_RPROD(NJVRP)
+      KPP_REAL aj
+      INTEGER i,j,k
+      
+C Compute the Jacobian of all reactant products   
+      CALL JacReactantProd( V, F, JV_RPROD )
+
+C Compute the derivatives by multiplying column JCOEFF(j) of the stoichiometric matrix with A_PROD       
+      DO j=1,NCOEFF
+C                  Initialize the j-th column of derivative matrix to zero       
+         DO i=1,NVAR
+           DJDR(i+NVAR*(j-1)) = 0.0D0
+         END DO
+C                  Column JCOEFF(j) in the stoichiometric matrix times the
+C                  ( Gradient of reactant product of the JCOEFF(j)-th reaction X user vector )    
+C                  give the j-th column of the derivative matrix   
+C
+C          Row JCOEFF(j) of JV_RPROD times the user vector
+         aj = 0.d0
+         DO k=CROW_JVRP(JCOEFF(j)),CROW_JVRP(JCOEFF(j)+1)-1
+	    aj = aj + JV_RPROD(k)*U(ICOL_JVRP(k))
+	 END DO
+C          Column JCOEFF(j) of Stoichiom. matrix times aj         
+         DO k=CCOL_STOICM(JCOEFF(j)),CCOL_STOICM(JCOEFF(j)+1)-1
+           DJDR(IROW_STOICM(k)+NVAR*(j-1)) = STOICM(k)*aj
+         END DO
+      END DO
+      
+      RETURN
+      END
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/dJac_dRcoeff.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/dJac_dRcoeff.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/dJac_dRcoeff.f90	(revision 2696)
@@ -0,0 +1,56 @@
+! ------------------------------------------------------------------------------
+! Subroutine for the derivative of Jac with respect to rate coefficients
+! Times a user vector
+! -----------------------------------------------------------------------------
+
+      SUBROUTINE  dJac_dRcoeff( V, F, U, NCOEFF, JCOEFF, DJDR )
+       
+      USE KPP_ROOT_Parameters
+      USE KPP_ROOT_StoichiomSP
+      IMPLICIT NONE 
+
+! V - Concentrations of variable/fixed species            
+      KPP_REAL V(NVAR), F(NFIX)
+! U - User-supplied Vector           
+      KPP_REAL U(NVAR)
+! NCOEFF - the number of rate coefficients with respect to which we differentiate
+      INTEGER NCOEFF       
+! JCOEFF - a vector of integers containing the indices of reactions (rate
+!          coefficients) with respect to which we differentiate
+      INTEGER JCOEFF(NCOEFF)       
+! DFDR  - a matrix containg derivative values; specifically, 
+!         column j contains d Jac(1:NVAR) / d RCT( JCOEFF(j) ) * U
+!                     for each 1 <= j <= NCOEFF
+!         This matrix is stored in a column-wise linearized format
+      KPP_REAL DJDR(NVAR*NCOEFF)
+
+! Local vector for Jacobian of reactant products
+      KPP_REAL JV_RPROD(NJVRP)
+      KPP_REAL aj
+      INTEGER i,j,k
+      
+! Compute the Jacobian of all reactant products   
+      CALL JacReactantProd( V, F, JV_RPROD )
+
+! Compute the derivatives by multiplying column JCOEFF(j) of the stoichiometric matrix with A_PROD       
+      DO j=1,NCOEFF
+!                  Initialize the j-th column of derivative matrix to zero       
+         DO i=1,NVAR
+           DJDR(i+NVAR*(j-1)) = 0.0_dp
+         END DO
+!                  Column JCOEFF(j) in the stoichiometric matrix times the
+!                  ( Gradient of reactant product of the JCOEFF(j)-th reaction X user vector )    
+!                  give the j-th column of the derivative matrix   
+!
+!          Row JCOEFF(j) of JV_RPROD times the user vector
+         aj = 0.0_dp
+         DO k=CROW_JVRP(JCOEFF(j)),CROW_JVRP(JCOEFF(j)+1)-1
+             aj = aj + JV_RPROD(k)*U(ICOL_JVRP(k))
+         END DO
+!          Column JCOEFF(j) of Stoichiom. matrix times aj         
+         DO k=CCOL_STOICM(JCOEFF(j)),CCOL_STOICM(JCOEFF(j)+1)-1
+           DJDR(IROW_STOICM(k)+NVAR*(j-1)) = STOICM(k)*aj
+         END DO
+      END DO
+      
+      END SUBROUTINE  dJac_dRcoeff
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/dJac_dRcoeff.m
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/dJac_dRcoeff.m	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/dJac_dRcoeff.m	(revision 2696)
@@ -0,0 +1,49 @@
+% ------------------------------------------------------------------------------
+% Subroutine for the derivative of Jac with respect to rate coefficients
+% Times a user vector
+% -----------------------------------------------------------------------------
+
+DJDR = function dJac_dRcoeff( V, F, U, NCOEFF, JCOEFF )
+
+% V - Concentrations of variable/fixed species            
+%        KPP_REAL V(KPP_NVAR), F(NFIX)
+% U - User-supplied Vector           
+%         KPP_REAL U(KPP_NVAR)
+% NCOEFF - the number of rate coefficients with respect to which we differentiate
+%       INTEGER NCOEFF       
+% JCOEFF - a vector of integers containing the indices of reactions (rate
+%          coefficients) with respect to which we differentiate
+%          INTEGER JCOEFF(NCOEFF)       
+% DFDR  - a matrix containg derivative values; specifiy, 
+%         column j contains d Jac(1:KPP_NVAR) / d RCT( JCOEFF(j) ) * U
+%                     for each 1 <= j <= NCOEFF
+%         This matrix is stored in a column-wise linearized format
+%         KPP_REAL DJDR(KPP_NVAR*NCOEFF)
+
+% Local vector for Jacobian of reactant products
+%         KPP_REAL JV_RPROD(NJVRP)
+% Compute the Jacobian of all reactant products   
+      JV_RPROD = JacReactantProd( V, F );
+
+% Compute the derivatives by multiplying column JCOEFF(j) of the stoichiometric matrix with A_PROD       
+      for j=1:NCOEFF
+%                  Initialize the j-th column of derivative matrix to zero       
+         for i=1,KPP_NVAR
+           DJDR(i+KPP_NVAR*(j-1)) = 0.0;
+         end
+%                  Column JCOEFF(j) in the stoichiometric matrix times the
+%                  ( Gradient of reactant product of the JCOEFF(j)-th reaction X user vector )    
+%                  give the j-th column of the derivative matrix   
+%
+%          Row JCOEFF(j) of JV_RPROD times the user vector
+         aj = 0.0;
+         for k=CROW_JVRP(JCOEFF(j)):CROW_JVRP(JCOEFF(j)+1)-1
+             aj = aj + JV_RPROD(k)*U(ICOL_JVRP(k));
+         end
+%          Column JCOEFF(j) of Stoichiom. matrix times aj         
+         for k=CCOL_STOICM(JCOEFF(j)):CCOL_STOICM(JCOEFF(j)+1)-1
+           DJDR(IROW_STOICM(k)+KPP_NVAR*(j-1)) = STOICM(k)*aj;
+         end
+      end
+      
+return % dJac_dRcoeff
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/mex.c
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/mex.c	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/mex.c	(revision 2696)
@@ -0,0 +1,377 @@
+/* #include <math.h> */
+#include "mex.h"
+#include <stdarg.h>
+
+#define MAX_BUF 200
+
+void Usage()
+{
+  mexPrintf("                                                                    \n"
+            "To get this help message use:                KPP_ROOT ?            \n"
+            "                                                                    \n"
+            "To initialize default values use:            KPP_ROOT              \n"
+            "   (type who to see the variables created)                          \n"
+            "                                                                    \n"
+            "To integrate the model use:                                         \n"
+            "          [ c, m, f ] = KPP_ROOT( t, c0, k, p, fn, tfn );          \n"
+            "                                                                    \n"
+            "  input :                                                           \n"
+            "         t   - Time vector, contains the time at which results      \n" 
+            "               should be reported;                                  \n"
+            "         c0  - Vector with the initial concentrations for all       \n"
+            "               species;                                             \n"
+            "         k   - Vector with all rate constants;                      \n"
+            "         p   - Vector of parameters for the integration;            \n"
+            "                 p(1) holds the relative tolerance                  \n"
+            "                 p(2) holds the absolute tolerance                  \n"
+            "                 p(3) holds the minimum step size allowed           \n"
+            "                 p(4) holds the maximum step size allowed           \n"
+            "               If any of the above is zero the default value is     \n"
+            "               used;                                                \n"
+            "         fn  - (optional) Name of a matlab function to be called    \n"
+            "               to update the values of k's and concentrations       \n"                   
+            "               If not present no update is performed.               \n"
+            "                                                                    \n"
+            "         tfn - (optional) Time at which the fn function should      \n"
+            "               be called. If missing <t> is assumed.                \n"
+            "                                                                    \n"
+            "  output:                                                           \n"
+            "         c   - Matrix of concentrations of all species vs. time;    \n"
+            "         m   - (optional) Mass conservation of all atoms vs. time;  \n"
+            "         f   - (optional) Matrix of fluxes of all species vs. time; \n"
+            "                                                                    \n"
+           );
+}
+
+int giveusage;
+
+void F9Error( char *fmt, ... )
+{
+va_list args;
+char buf[ MAX_BUF ];
+char errmsg[ MAX_BUF ];
+
+  va_start( args, fmt );
+  vsprintf( buf, fmt, args );
+  va_end( args );
+  
+  if( giveusage ) Usage();
+  
+  mexPrintf("Error: %s\n", buf);  
+  mexErrMsgTxt( 0 );
+}
+
+char allvars[1000];
+
+int CreateVar(char *name, KPP_REAL val)
+{
+mxArray *GA;
+double  *pga;
+
+  sprintf(allvars, "%s %s",allvars, name);
+  GA = mxCreateDoubleMatrix(1,1,mxREAL);
+  pga = mxGetPr(GA);
+  *pga = (double)val;
+  mxSetName(GA,name);
+  return mexPutArray(GA,"global");
+}
+
+int CreateVec(char *name, int len, KPP_REAL *val)
+{
+mxArray *GA;
+double  *pga;
+int i;
+
+  sprintf(allvars, "%s %s",allvars, name);
+  GA = mxCreateDoubleMatrix(1,len,mxREAL);
+  pga = mxGetPr(GA);
+  if( sizeof(KPP_REAL) == sizeof(double) ) {
+    memmove( pga, val, len*sizeof(double) );
+  } else {
+    for( i = 0; i < len; i++ ) pga[i] = (double)val[i];
+  }   
+  mxSetName(GA,name);
+  return mexPutArray(GA,"global");
+}
+
+int CreateStrVec(char *name, int len, char **val)
+{
+mxArray *GA;
+
+  sprintf(allvars, "%s %s",allvars, name);
+  GA = mxCreateCharMatrixFromStrings( len, (const char **)val );
+  mxSetName(GA,name);
+  return mexPutArray(GA,"global");
+}
+
+int CreateStr(char *name, char *val)
+{
+mxArray *GA;
+
+  sprintf(allvars, "%s %s",allvars, name);
+  GA = mxCreateString( val );
+  mxSetName(GA,name);
+  return mexPutArray(GA,"global");
+}
+
+#define	  T_PRM	          prhs[0]
+#define  C0_PRM           prhs[1]
+#define   K_PRM           prhs[2]
+#define   P_PRM           prhs[3]
+#define  FN_PRM           prhs[4]
+#define TFN_PRM           prhs[5]
+
+#define	  C_PRM	          plhs[0]
+#define	  M_PRM	          plhs[1]
+#define	  F_PRM	          plhs[2]
+
+#define  HAS_FN           (nrhs >= 5)
+#define  HAS_TFN          (nrhs >= 6)
+
+#define  HAS_M            (nlhs >= 2)
+#define  HAS_F            (nlhs >= 3)
+
+#define  DBL  (sizeof(KPP_REAL) == sizeof(double))
+
+void mexFunction(
+                 int nlhs,       mxArray *plhs[],
+                 int nrhs, const mxArray *prhs[]
+		 )
+{
+double *  tp; 
+double * c0p;
+double *  kp;
+double *  pp;
+char     fnp[ MAX_BUF ];
+double *tfnp;
+
+double *  cp;
+double *  mp;
+double *  fp;
+double ATOLS;
+double  dval[ NMASS+NSPEC ];
+
+mxArray *Carr, *Karr, *Tarr;
+double  *fcp;
+double  *fkp;
+double  *ftp, *ftp1;
+
+int i,j,m,n,nd,t;
+int nsteps, nspc, nreact, ncb;
+int tcb, CallBack;
+KPP_REAL prm[4];
+
+  giveusage = 1;
+
+  if(nrhs == 0) {
+
+    InitVal();
+    Update_RCONST();
+    
+    prm[0] = 1e-4; 
+    prm[1] = 1.0E-18;
+    prm[2] = 0.01;
+    prm[3] = 900;
+
+    sprintf(allvars,"global ");
+    
+    CreateVec("PRM",4, prm);
+    
+    CreateVar("NSPEC",NSPEC);
+    CreateVar("NREACT",NREACT);
+    CreateVar("NMASS",NMASS);
+ 
+    CreateVec("C0", NSPEC, C);
+    CreateVec("K0", NREACT, RCONST);
+
+    for( i = 0; i < NLOOKAT; i++ )  
+      CreateVar( SLOOKAT[i], (double)(i+1) );
+    
+    for( i = 0; i < NMASS; i++ )  
+      CreateVar( SMASS[i], (double)(i+1) );
+
+    CreateStrVec("SSPEC", NSPEC, SLOOKAT);
+    CreateStrVec("SMASS", NMASS, SMASS);
+    CreateStrVec("SEQN", NREACT, SEQN);
+
+    CreateStr("GLOBALCMD", allvars);
+ 
+    mexEvalString(allvars);
+/*
+    mexPrintf("The KPP_ROOT model parameters were sucessfully initialized.\n");    
+*/
+    return;
+  }
+
+  if( nrhs < 4 ) 
+    F9Error("First 4 parameters are REQUIRED only %d received.", nrhs);
+  if( nlhs < 1 ) 
+    F9Error("At least one output parameter REQUIRED.");
+
+  if(! mxIsDouble(T_PRM))   F9Error("<t> must be of type double.");
+  if(! mxIsDouble(C0_PRM))  F9Error("<c0> must be of type double."); 
+  if(! mxIsDouble(K_PRM))   F9Error("<k> must be of type double.");
+  if(! mxIsDouble(P_PRM))   F9Error("<p> must be of type double.");
+  if((nrhs > 4) && (! mxIsChar(FN_PRM))) F9Error("<fn> must be of type char.");     
+  if((nrhs > 5) && (! mxIsDouble(TFN_PRM))) F9Error("<tfn> must be of type double.");     
+      
+  nd = mxGetNumberOfDimensions( T_PRM );
+  m  =                  mxGetM( T_PRM ); 
+  n  =                  mxGetN( T_PRM );    
+  if( !( (nd == 2) && ((m == 1) || (n == 1)) ) ) F9Error("<t> must be a column vector.");
+  nsteps = (m == 1) ? n : m;
+  tp = mxGetPr( T_PRM );  
+
+  nd = mxGetNumberOfDimensions( C0_PRM );
+  m  =                  mxGetM( C0_PRM ); 
+  n  =                  mxGetN( C0_PRM );    
+  if( !( (nd == 2) && ((m == 1) || (n == 1)) ) ) F9Error("<c0> must be a column vector.");
+  nspc = (m == 1) ? n : m;
+  c0p = mxGetPr( C0_PRM );  
+
+  nd = mxGetNumberOfDimensions( K_PRM );
+  m  =                  mxGetM( K_PRM ); 
+  n  =                  mxGetN( K_PRM );    
+  if( !( (nd == 2) && ((m == 1) || (n == 1)) ) ) F9Error("<k> must be a column vector.");
+  nreact = (m == 1) ? n : m;
+  kp = mxGetPr( K_PRM );  
+
+  nd = mxGetNumberOfDimensions( P_PRM );
+  m  =                  mxGetM( P_PRM ); 
+  n  =                  mxGetN( P_PRM );    
+  if( !( (nd == 2) && ((m == 1) || (n == 1)) && (n*m == 4) ) ) 
+    F9Error("<p> must be a column vectorof length 4.");
+  pp = mxGetPr( P_PRM );  
+
+  *fnp = 0;
+  if( HAS_FN ) {
+    nd = mxGetNumberOfDimensions( FN_PRM );
+    m  =                  mxGetM( FN_PRM ); 
+    n  =                  mxGetN( FN_PRM );    
+    if( !( (nd == 2) && ((m == 1) || (n == 1)) ) ) F9Error("<fn> must be a character string.");
+    if( mxGetString( FN_PRM, fnp, MAX_BUF ) ) 
+      F9Error("Can not read function mane (too long?)");  
+
+    Carr = mxCreateDoubleMatrix(1,NSPEC,mxREAL);
+    fcp = mxGetPr(Carr);
+    mxSetName(Carr,"C");
+    mexPutArray(Carr,"base");
+    
+    Karr = mxCreateDoubleMatrix(1,NREACT,mxREAL);
+    fkp = mxGetPr(Karr);
+    mxSetName(Karr,"K");
+    mexPutArray(Karr,"base");
+    
+    Tarr = mxCreateDoubleMatrix(1,1,mxREAL);
+    ftp = mxGetPr(Tarr);
+    mxSetName(Tarr,"T");
+    mexPutArray(Tarr,"base");
+  }
+
+  tfnp = 0; ncb = 0;
+  if( HAS_TFN ) {
+    nd = mxGetNumberOfDimensions( TFN_PRM );
+    m  =                  mxGetM( TFN_PRM ); 
+    n  =                  mxGetN( TFN_PRM );    
+    if( !( (nd == 2) && ((m == 1) || (n == 1)) ) ) F9Error("<tfn> must be a column vector.");
+    ncb = (m == 1) ? n : m; 
+    tfnp = mxGetPr( TFN_PRM );
+  }
+
+  giveusage = 0;
+
+  if( !((nspc == NSPEC) && (nreact == NREACT)) ) {
+    F9Error("Size of parameters do not match the model:\n\n"
+            "  Number of species was %d and should be %d;\n"             
+            "  Number of rections (rate constants) was %d and should be %d;\n",
+            nspc, NSPEC, nreact, NREACT);    
+  }
+
+  if( DBL ) { memmove( C, c0p, sizeof(double)*NSPEC );
+              memmove( RCONST, kp, sizeof(double)*NREACT ); }
+       else { for( i = 0; i < NSPEC; i++ ) C[i] = (KPP_REAL)c0p[i];
+              for( i = 0; i < NREACT; i++ ) RCONST[i] = (KPP_REAL)kp[i]; }
+  
+  RTOLS = 1e-4;
+  ATOLS = 1e-18;
+  STEPMIN = 0.01;
+  STEPMAX = 900.0;
+          
+  if( pp[0] ) RTOLS = pp[0];
+  if( pp[1] ) ATOLS = pp[1];
+  if( pp[2] ) STEPMIN = pp[2];
+  if( pp[3] ) STEPMAX = pp[3];
+  
+  for( i = 0; i < NVAR; i++ ) {
+    RTOL[i] = RTOLS;
+    ATOL[i] = ATOLS;
+  }
+  
+  C_PRM = mxCreateDoubleMatrix(NSPEC,nsteps,mxREAL); 
+  cp = mxGetPr(C_PRM);
+  
+  if( HAS_M ) {
+    M_PRM = mxCreateDoubleMatrix(NMASS,nsteps,mxREAL);
+    mp = mxGetPr(M_PRM);
+  }
+  
+  if( HAS_F ) {
+    F_PRM = mxCreateDoubleMatrix(NSPEC,nsteps,mxREAL);
+    fp = mxGetPr(F_PRM);
+  }
+
+  tcb = 0;
+
+  for( t = 0; t < nsteps; t++ ) {              
+    if( t ) {
+      TIME = tp[t-1];
+
+      CallBack = 0;
+      if( HAS_TFN ) {
+        if( tcb < ncb )
+          if( tfnp[tcb] <= TIME ) { CallBack = 1; tcb++; }
+      } else {
+        CallBack = HAS_FN;
+      } 
+
+      if( CallBack ) {
+        if( DBL ) { memmove( fcp, C, sizeof(double)*NSPEC ); 
+                    memmove( fkp, RCONST, sizeof(double)*NREACT ); }
+             else { for( i = 0; i < NSPEC; i++ ) fcp[i] = (double)C[i]; 
+                    for( i = 0; i < NREACT; i++ ) fkp[i] = (double)RCONST[i]; }
+        *ftp = TIME; 
+
+        mexPutArray(Carr,"base");
+        mexPutArray(Karr,"base");
+        mexPutArray(Tarr,"base");
+
+        mexCallMATLAB( 0, 0, 0, 0, fnp );
+
+        mxDestroyArray(Carr); Carr = mexGetArray("C","base"); fcp = mxGetPr(Carr);
+        mxDestroyArray(Karr); Karr = mexGetArray("K","base"); fkp = mxGetPr(Karr);
+        mxDestroyArray(Tarr); Tarr = mexGetArray("T","base"); ftp = mxGetPr(Tarr);
+
+        if( DBL ) { memmove( C, fcp, sizeof(double)*NSPEC ); 
+                    memmove( RCONST, fkp, sizeof(double)*NREACT ); }
+             else { for( i = 0; i < NSPEC; i++ ) C[i] = (KPP_REAL)fcp[i]; 
+                    for( i = 0; i < NREACT; i++ ) RCONST[i] = (KPP_REAL)fkp[i]; }
+ 
+      }
+
+      INTEGRATE( tp[t-1], tp[t] );
+    }
+    if( DBL ) { memmove( cp, C, sizeof(double)*NSPEC ); cp += NSPEC; } 
+         else { for( i = 0; i < NSPEC; i++ ) *cp++ = (double)C[i]; }
+    if( HAS_M ) {
+      if( DBL ) { GetMass( mp ); mp += NMASS; } 
+           else { GetMass( dval );
+                  for( i = 0; i < NMASS; i++ ) *mp++ = (double)dval[i]; }
+    }
+    if( HAS_F ) {
+      if( DBL ) { FLUX( fp ); fp += NSPEC; }
+           else { FLUX( dval );
+                  for( i = 0; i < NSPEC; i++ ) *fp++ = (double)dval[i]; }           
+    }
+  }
+}
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/mex.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/mex.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/mex.f	(revision 2696)
@@ -0,0 +1,377 @@
+/* #include <math.h> */
+#include "mex.h"
+#include <stdarg.h>
+
+#define MAX_BUF 200
+
+void Usage()
+{
+  mexPrintf("                                                                    \n"
+            "To get this help message use:                KPP_ROOT ?            \n"
+            "                                                                    \n"
+            "To initialize default values use:            KPP_ROOT              \n"
+            "   (type who to see the variables created)                          \n"
+            "                                                                    \n"
+            "To integrate the model use:                                         \n"
+            "          [ c, m, f ] = KPP_ROOT( t, c0, k, p, fn, tfn );          \n"
+            "                                                                    \n"
+            "  input :                                                           \n"
+            "         t   - Time vector, contains the time at which results      \n" 
+            "               should be reported;                                  \n"
+            "         c0  - Vector with the initial concentrations for all       \n"
+            "               species;                                             \n"
+            "         k   - Vector with all rate constants;                      \n"
+            "         p   - Vector of parameters for the integration;            \n"
+            "                 p(1) holds the relative tolerance                  \n"
+            "                 p(2) holds the absolute tolerance                  \n"
+            "                 p(3) holds the minimum step size allowed           \n"
+            "                 p(4) holds the maximum step size allowed           \n"
+            "               If any of the above is zero the default value is     \n"
+            "               used;                                                \n"
+            "         fn  - (optional) Name of a matlab function to be called    \n"
+            "               to update the values of k's and concentrations       \n"                   
+            "               If not present no update is performed.               \n"
+            "                                                                    \n"
+            "         tfn - (optional) Time at which the fn function should      \n"
+            "               be called. If missing <t> is assumed.                \n"
+            "                                                                    \n"
+            "  output:                                                           \n"
+            "         c   - Matrix of concentrations of all species vs. time;    \n"
+            "         m   - (optional) Mass conservation of all atoms vs. time;  \n"
+            "         f   - (optional) Matrix of fluxes of all species vs. time; \n"
+            "                                                                    \n"
+           );
+}
+
+int giveusage;
+
+void F9Error( char *fmt, ... )
+{
+va_list args;
+char buf[ MAX_BUF ];
+char errmsg[ MAX_BUF ];
+
+  va_start( args, fmt );
+  vsprintf( buf, fmt, args );
+  va_end( args );
+  
+  if( giveusage ) Usage();
+  
+  mexPrintf("Error: %s\n", buf);  
+  mexErrMsgTxt( 0 );
+}
+
+char allvars[1000];
+
+int CreateVar(char *name, KPP_REAL val)
+{
+mxArray *GA;
+double  *pga;
+
+  sprintf(allvars, "%s %s",allvars, name);
+  GA = mxCreateDoubleMatrix(1,1,mxREAL);
+  pga = mxGetPr(GA);
+  *pga = (double)val;
+  mxSetName(GA,name);
+  return mexPutArray(GA,"global");
+}
+
+int CreateVec(char *name, int len, KPP_REAL *val)
+{
+mxArray *GA;
+double  *pga;
+int i;
+
+  sprintf(allvars, "%s %s",allvars, name);
+  GA = mxCreateDoubleMatrix(1,len,mxREAL);
+  pga = mxGetPr(GA);
+  if( sizeof(KPP_REAL) == sizeof(double) ) {
+    memmove( pga, val, len*sizeof(double) );
+  } else {
+    for( i = 0; i < len; i++ ) pga[i] = (double)val[i];
+  }   
+  mxSetName(GA,name);
+  return mexPutArray(GA,"global");
+}
+
+int CreateStrVec(char *name, int len, char **val)
+{
+mxArray *GA;
+
+  sprintf(allvars, "%s %s",allvars, name);
+  GA = mxCreateCharMatrixFromStrings( len, (const char **)val );
+  mxSetName(GA,name);
+  return mexPutArray(GA,"global");
+}
+
+int CreateStr(char *name, char *val)
+{
+mxArray *GA;
+
+  sprintf(allvars, "%s %s",allvars, name);
+  GA = mxCreateString( val );
+  mxSetName(GA,name);
+  return mexPutArray(GA,"global");
+}
+
+#define	  T_PRM	          prhs[0]
+#define  C0_PRM           prhs[1]
+#define   K_PRM           prhs[2]
+#define   P_PRM           prhs[3]
+#define  FN_PRM           prhs[4]
+#define TFN_PRM           prhs[5]
+
+#define	  C_PRM	          plhs[0]
+#define	  M_PRM	          plhs[1]
+#define	  F_PRM	          plhs[2]
+
+#define  HAS_FN           (nrhs >= 5)
+#define  HAS_TFN          (nrhs >= 6)
+
+#define  HAS_M            (nlhs >= 2)
+#define  HAS_F            (nlhs >= 3)
+
+#define  DBL  (sizeof(KPP_REAL) == sizeof(double))
+
+void mexFunction(
+                 int nlhs,       mxArray *plhs[],
+                 int nrhs, const mxArray *prhs[]
+		 )
+{
+double *  tp; 
+double * c0p;
+double *  kp;
+double *  pp;
+char     fnp[ MAX_BUF ];
+double *tfnp;
+
+double *  cp;
+double *  mp;
+double *  fp;
+double ATOLS;
+double  dval[ NMASS+NSPEC ];
+
+mxArray *Carr, *Karr, *Tarr;
+double  *fcp;
+double  *fkp;
+double  *ftp, *ftp1;
+
+int i,j,m,n,nd,t;
+int nsteps, nspc, nreact, ncb;
+int tcb, CallBack;
+KPP_REAL prm[4];
+
+  giveusage = 1;
+
+  if(nrhs == 0) {
+
+    InitVal();
+    Update_RCONST();
+    
+    prm[0] = 1e-4; 
+    prm[1] = 1.0E-18;
+    prm[2] = 0.01;
+    prm[3] = 900;
+
+    sprintf(allvars,"global ");
+    
+    CreateVec("PRM",4, prm);
+    
+    CreateVar("NSPEC",NSPEC);
+    CreateVar("NREACT",NREACT);
+    CreateVar("NMASS",NMASS);
+ 
+    CreateVec("C0", NSPEC, C);
+    CreateVec("K0", NREACT, RCONST);
+
+    for( i = 0; i < NLOOKAT; i++ )  
+      CreateVar( SLOOKAT[i], (double)(i+1) );
+    
+    for( i = 0; i < NMASS; i++ )  
+      CreateVar( SMASS[i], (double)(i+1) );
+
+    CreateStrVec("SSPEC", NSPEC, SLOOKAT);
+    CreateStrVec("SMASS", NMASS, SMASS);
+    CreateStrVec("SEQN", NREACT, SEQN);
+
+    CreateStr("GLOBALCMD", allvars);
+ 
+    mexEvalString(allvars);
+/*
+    mexPrintf("The KPP_ROOT model parameters were sucessfully initialized.\n");    
+*/
+    return;
+  }
+
+  if( nrhs < 4 ) 
+    F9Error("First 4 parameters are REQUIRED only %d received.", nrhs);
+  if( nlhs < 1 ) 
+    F9Error("At least one output parameter REQUIRED.");
+
+  if(! mxIsDouble(T_PRM))   F9Error("<t> must be of type double.");
+  if(! mxIsDouble(C0_PRM))  F9Error("<c0> must be of type double."); 
+  if(! mxIsDouble(K_PRM))   F9Error("<k> must be of type double.");
+  if(! mxIsDouble(P_PRM))   F9Error("<p> must be of type double.");
+  if((nrhs > 4) && (! mxIsChar(FN_PRM))) F9Error("<fn> must be of type char.");     
+  if((nrhs > 5) && (! mxIsDouble(TFN_PRM))) F9Error("<tfn> must be of type double.");     
+      
+  nd = mxGetNumberOfDimensions( T_PRM );
+  m  =                  mxGetM( T_PRM ); 
+  n  =                  mxGetN( T_PRM );    
+  if( !( (nd == 2) && ((m == 1) || (n == 1)) ) ) F9Error("<t> must be a column vector.");
+  nsteps = (m == 1) ? n : m;
+  tp = mxGetPr( T_PRM );  
+
+  nd = mxGetNumberOfDimensions( C0_PRM );
+  m  =                  mxGetM( C0_PRM ); 
+  n  =                  mxGetN( C0_PRM );    
+  if( !( (nd == 2) && ((m == 1) || (n == 1)) ) ) F9Error("<c0> must be a column vector.");
+  nspc = (m == 1) ? n : m;
+  c0p = mxGetPr( C0_PRM );  
+
+  nd = mxGetNumberOfDimensions( K_PRM );
+  m  =                  mxGetM( K_PRM ); 
+  n  =                  mxGetN( K_PRM );    
+  if( !( (nd == 2) && ((m == 1) || (n == 1)) ) ) F9Error("<k> must be a column vector.");
+  nreact = (m == 1) ? n : m;
+  kp = mxGetPr( K_PRM );  
+
+  nd = mxGetNumberOfDimensions( P_PRM );
+  m  =                  mxGetM( P_PRM ); 
+  n  =                  mxGetN( P_PRM );    
+  if( !( (nd == 2) && ((m == 1) || (n == 1)) && (n*m == 4) ) ) 
+    F9Error("<p> must be a column vectorof length 4.");
+  pp = mxGetPr( P_PRM );  
+
+  *fnp = 0;
+  if( HAS_FN ) {
+    nd = mxGetNumberOfDimensions( FN_PRM );
+    m  =                  mxGetM( FN_PRM ); 
+    n  =                  mxGetN( FN_PRM );    
+    if( !( (nd == 2) && ((m == 1) || (n == 1)) ) ) F9Error("<fn> must be a character string.");
+    if( mxGetString( FN_PRM, fnp, MAX_BUF ) ) 
+      F9Error("Can not read function mane (too long?)");  
+
+    Carr = mxCreateDoubleMatrix(1,NSPEC,mxREAL);
+    fcp = mxGetPr(Carr);
+    mxSetName(Carr,"C");
+    mexPutArray(Carr,"base");
+    
+    Karr = mxCreateDoubleMatrix(1,NREACT,mxREAL);
+    fkp = mxGetPr(Karr);
+    mxSetName(Karr,"K");
+    mexPutArray(Karr,"base");
+    
+    Tarr = mxCreateDoubleMatrix(1,1,mxREAL);
+    ftp = mxGetPr(Tarr);
+    mxSetName(Tarr,"T");
+    mexPutArray(Tarr,"base");
+  }
+
+  tfnp = 0; ncb = 0;
+  if( HAS_TFN ) {
+    nd = mxGetNumberOfDimensions( TFN_PRM );
+    m  =                  mxGetM( TFN_PRM ); 
+    n  =                  mxGetN( TFN_PRM );    
+    if( !( (nd == 2) && ((m == 1) || (n == 1)) ) ) F9Error("<tfn> must be a column vector.");
+    ncb = (m == 1) ? n : m; 
+    tfnp = mxGetPr( TFN_PRM );
+  }
+
+  giveusage = 0;
+
+  if( !((nspc == NSPEC) && (nreact == NREACT)) ) {
+    F9Error("Size of parameters do not match the model:\n\n"
+            "  Number of species was %d and should be %d;\n"             
+            "  Number of rections (rate constants) was %d and should be %d;\n",
+            nspc, NSPEC, nreact, NREACT);    
+  }
+
+  if( DBL ) { memmove( C, c0p, sizeof(double)*NSPEC );
+              memmove( RCONST, kp, sizeof(double)*NREACT ); }
+       else { for( i = 0; i < NSPEC; i++ ) C[i] = (KPP_REAL)c0p[i];
+              for( i = 0; i < NREACT; i++ ) RCONST[i] = (KPP_REAL)kp[i]; }
+  
+  RTOLS = 1e-4;
+  ATOLS = 1e-18;
+  STEPMIN = 0.01;
+  STEPMAX = 900.0;
+          
+  if( pp[0] ) RTOLS = pp[0];
+  if( pp[1] ) ATOLS = pp[1];
+  if( pp[2] ) STEPMIN = pp[2];
+  if( pp[3] ) STEPMAX = pp[3];
+  
+  for( i = 0; i < NVAR; i++ ) {
+    RTOL[i] = RTOLS;
+    ATOL[i] = ATOLS;
+  }
+  
+  C_PRM = mxCreateDoubleMatrix(NSPEC,nsteps,mxREAL); 
+  cp = mxGetPr(C_PRM);
+  
+  if( HAS_M ) {
+    M_PRM = mxCreateDoubleMatrix(NMASS,nsteps,mxREAL);
+    mp = mxGetPr(M_PRM);
+  }
+  
+  if( HAS_F ) {
+    F_PRM = mxCreateDoubleMatrix(NSPEC,nsteps,mxREAL);
+    fp = mxGetPr(F_PRM);
+  }
+
+  tcb = 0;
+
+  for( t = 0; t < nsteps; t++ ) {              
+    if( t ) {
+      TIME = tp[t-1];
+
+      CallBack = 0;
+      if( HAS_TFN ) {
+        if( tcb < ncb )
+          if( tfnp[tcb] <= TIME ) { CallBack = 1; tcb++; }
+      } else {
+        CallBack = HAS_FN;
+      } 
+
+      if( CallBack ) {
+        if( DBL ) { memmove( fcp, C, sizeof(double)*NSPEC ); 
+                    memmove( fkp, RCONST, sizeof(double)*NREACT ); }
+             else { for( i = 0; i < NSPEC; i++ ) fcp[i] = (double)C[i]; 
+                    for( i = 0; i < NREACT; i++ ) fkp[i] = (double)RCONST[i]; }
+        *ftp = TIME; 
+
+        mexPutArray(Carr,"base");
+        mexPutArray(Karr,"base");
+        mexPutArray(Tarr,"base");
+
+        mexCallMATLAB( 0, 0, 0, 0, fnp );
+
+        mxDestroyArray(Carr); Carr = mexGetArray("C","base"); fcp = mxGetPr(Carr);
+        mxDestroyArray(Karr); Karr = mexGetArray("K","base"); fkp = mxGetPr(Karr);
+        mxDestroyArray(Tarr); Tarr = mexGetArray("T","base"); ftp = mxGetPr(Tarr);
+
+        if( DBL ) { memmove( C, fcp, sizeof(double)*NSPEC ); 
+                    memmove( RCONST, fkp, sizeof(double)*NREACT ); }
+             else { for( i = 0; i < NSPEC; i++ ) C[i] = (KPP_REAL)fcp[i]; 
+                    for( i = 0; i < NREACT; i++ ) RCONST[i] = (KPP_REAL)fkp[i]; }
+ 
+      }
+
+      INTEGRATE( tp[t-1], tp[t] );
+    }
+    if( DBL ) { memmove( cp, C, sizeof(double)*NSPEC ); cp += NSPEC; } 
+         else { for( i = 0; i < NSPEC; i++ ) *cp++ = (double)C[i]; }
+    if( HAS_M ) {
+      if( DBL ) { GetMass( mp ); mp += NMASS; } 
+           else { GetMass( dval );
+                  for( i = 0; i < NMASS; i++ ) *mp++ = (double)dval[i]; }
+    }
+    if( HAS_F ) {
+      if( DBL ) { FLUX( fp ); fp += NSPEC; }
+           else { FLUX( dval );
+                  for( i = 0; i < NSPEC; i++ ) *fp++ = (double)dval[i]; }           
+    }
+  }
+}
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/ncar.c
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/ncar.c	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/ncar.c	(revision 2696)
@@ -0,0 +1,295 @@
+#include <stdio.h>
+#include <math.h>
+#include <ctype.h>
+#include <ncarg/ncargC.h>
+#include <ncarg/gks.h>
+#include "ncar.h"
+
+#define MAX_COLORS 9
+#define MAX_GRAPHS 8 
+#define WS_ID 1
+
+Grgb colors[] = {{ 0.0, 0.0, 0.0 },
+		 { 1.0, 1.0, 1.0 },
+		 { 0.0, 1.0, 0.0 },
+                 { 1.0, 1.0, 0.0 },
+                 { 0.0, 1.0, 1.0 }, 
+		 { 1.0, 0.4, 0.4 },
+                 { 1.0, 0.0, 1.0 }, 
+		 { 0.7, 1.0, 0.7 },
+		 { 0.5, 0.5, 1.0 }
+		};
+
+
+int nGraphs = 0;
+int nMax;
+int nCrt;
+int CrtGraph;
+
+char *graphName[ MAX_GRAPHS ];
+char *graphTitle;
+char * startMsg = "Working... Press CTRL-C to stop";
+char * endMsg   = "DONE ! Press <ENTER> when ready.";
+char * status = "S";
+
+float * Xval;
+float * Yval;
+float * scale;
+float * offset;
+float ch;
+
+float XminGraph, XmaxGraph;
+float Ybottom[ MAX_GRAPHS ];
+float Ytop[ MAX_GRAPHS ];
+float Ymin[ MAX_GRAPHS ];
+float Ymax[ MAX_GRAPHS ];
+float Ybase[ MAX_GRAPHS ];
+
+int crtState;
+int clean = 0;
+
+void Boundary();
+
+void OpenWin()
+{
+int i;
+Gcolr_rep colr;		
+
+  gopen_gks( "stdout", 0 );
+  gopen_ws( WS_ID, (char*)0, 8 );
+  gactivate_ws( WS_ID );
+   
+  for( i = 0; i < MAX_COLORS; i++ ) {
+    colr.rgb.red = colors[i].red;
+    colr.rgb.green = colors[i].green;
+    colr.rgb.blue = colors[i].blue;
+    gset_colr_rep( 1, i, &colr );
+  }  
+}
+
+
+int DefineGraph( char * label, float min, float max )
+{
+  graphName[ nGraphs ] = label;
+  Ymin[ nGraphs ] = min;
+  Ymax[ nGraphs ] = max;
+  nGraphs++;
+  return nGraphs;   
+}
+
+void SelectGraph( int i ) 
+{
+  CrtGraph = i;
+  
+  c_agsetf("GRID/BOTTOM.", Ybottom[i]);
+  c_agsetf("GRID/TOP."   , Ytop[i]);
+
+  c_agsetf("Y/MINIMUM.", Ymin[i]);
+  c_agsetf("Y/MAXIMUM.", Ymax[i]);
+/*
+  c_agsetf("LEFT/MAJOR/BASE.", Ybase[i] );   
+*/
+  if( i == 0 ) 
+    c_agsetf("BOTTOM/TYPE.", 3); 
+  else
+    c_agsetf("BOTTOM/TYPE.", 0);
+}
+
+void InitGraph( int n, float Xmin, float Xmax, char *title )
+{
+int i;
+float step;
+char buf[100];
+
+  nMax = n;
+  n = n + 1;
+  XminGraph = Xmin;
+  XmaxGraph = Xmax;
+  graphTitle = title;
+  
+  step = (Xmax - Xmin) / nMax;
+
+  Xval = (float*)malloc( n * sizeof(float) );
+  for( i = 0; i < n; i++ )
+    Xval[i] = Xmin + step*i;
+
+  Yval = (float*)malloc( nGraphs * n * sizeof(float) );
+  for( i = 0; i < nGraphs * n; i++ )
+    Yval[i] = NULL/1;
+
+  c_agseti("WINDOWING.",1);
+  c_agseti("FRAME.", 2 );
+  c_agseti("BACKGROUND.", 3 );
+
+  c_agsetf("GRID/LEFT."  ,.15);
+  c_agsetf("GRID/RIGHT." ,.90);
+  
+  for( i = 0; i < nGraphs; i++ ) {
+    Ybottom[i] = .08 + 0.02 + i*0.84/nGraphs;
+    Ytop[i] = .08 - 0.02 + (i+1)*0.84/nGraphs;
+  }  
+  ch = (Ytop[0] - Ybottom[0]);
+  ch = .02/ch;
+
+  c_agsetf("X/MINIMUM.", Xmin);
+  c_agsetf("X/MAXIMUM.", Xmax);
+
+  c_agsetc("LABEL/NAME.","T");
+  c_agseti("LINE/NUMBER.",100);
+  c_agsetf("LINE/CH.", 0.1 );
+
+  c_agsetc("LABEL/NAME.","B");
+  c_agseti("LINE/NUMBER.",-100);
+  c_agsetc("LINE/TEXT.", " " );
+
+  c_agsetf("BOTTOM/MAJOR/OUTWARD.", .02 ); 
+  c_agsetf("BOTTOM/WIDTH/MA.", 0.20 );
+  c_agsetf("BOTTOM/WIDTH/EX.", 0.15 );
+
+  c_agsetc("LABEL/NAME.","L");
+  c_agseti("LINE/NUMBER.",100);
+  c_agsetc("LINE/TEXT.", " " );
+
+  c_agseti("LEFT/MAJOR/TYPE.", 1 );
+  c_agsetf("LEFT/MAJOR/OUTWARD.", .02 ); 
+  c_agseti("LEFT/MINOR/SPACING.",4);
+  c_agsetf("LEFT/WIDTH/MA.", .7*ch );
+  c_agsetf("LEFT/WIDTH/EX.", .5*ch );
+  
+  c_agsetc("LABEL/NAME.", status );
+  c_agsetf("LABEL/BASEPOINT/X.", 0.5);
+  c_agsetf("LABEL/BASEPOINT/Y.", 1+2*ch);
+  c_agseti("LABEL/ANGLE.", 0);
+  c_agseti("LINE/NUMBER.", 0);
+  c_agsetc("LINE/TEXT.", startMsg );
+  c_agsetf("LINE/CH.", ch );      
+
+  Boundary();
+}
+
+float Round( float x )
+{
+float p;
+ 
+  if( x == 0 ) return x;
+  p = (float)pow( 10.0, -3.0 + (int)(.5+log10( (double)x ) ) );
+  return p * (int)(.5 + x/p); 
+}
+
+
+void UpdateGraph( float * val )
+{
+int i, j, n;
+static int init = 1;
+Gint err, oldcolor;
+int start;
+float v;
+
+  if( nCrt >= nMax ) return;
+  n = nMax+1; 
+
+  for( i = 0; i < nGraphs; i++ )
+    Yval[i*n+nCrt] = val[i];
+  nCrt++;
+
+  start = nGraphs-1;
+  
+  if( init ) {
+    init = 0;
+    ginq_text_colr_ind( &err, &oldcolor );
+
+    c_pcloqu( 0.9, 0.03 , "TIME [hours]", -0.9, 0, 0 );
+    c_pcloqu( 0.08,0.93, "CONC [ppb]", -0.8, 0, 0 );
+      
+    for( i = 0; i < nGraphs; i++ ) {
+      v = val[i] == 0 ? .001 : val[i];  
+      Ymin[i] = Round( v * (1 - Ymin[i]) );
+      Ymax[i] = Round( v * (1 + Ymax[i]) );
+/*
+      Ybase[i] = Round((Ymax[i] - Ymin[i])/2);
+      Ymin[i] = Ybase[i]*(int)(.5 + Ymin[i]/Ybase[i]);
+      Ymax[i] = Ymin[i]+2*Ybase[i];
+*/
+      gset_text_colr_ind( i % MAX_COLORS + 2 );
+      c_pcloqu( .86, Ytop[i]-0.01, graphName[i], -1.2, 0, -1 );
+    }
+    gupd_ws( WS_ID, GUPD_PEND );
+
+    gset_text_colr_ind( oldcolor );
+
+    SelectGraph(start);
+    c_ezxy ( Xval, &Yval[start*n], nCrt, "" );  
+    c_agsetc("LABEL/NAME.", status );
+    c_agsetf("LABEL/SU.", 1.);
+    start--;
+  }
+  
+  for( i = start; i >=0; i-- ) {
+    SelectGraph( i );
+    c_ezxy ( Xval, &Yval[i*n], nCrt, "" );  
+  }    
+}
+
+void CloseWin()
+{
+  c_agsetc("LABEL/NAME.", status );
+  c_agsetf("LABEL/SU.", 0. );
+  
+  clean = 1;
+  SelectGraph( nGraphs - 1 );
+  c_ezxy ( Xval, &Yval[(nGraphs - 1)*(nMax+1)], nCrt, "" );   
+  clean = 0;
+
+  c_agsetc("LABEL/NAME.", status );
+  c_agseti("LINE/NUMBER.", 0);
+  c_agsetc("LINE/TEXT.", endMsg );
+
+  c_ezxy ( Xval, &Yval[(nGraphs - 1)*(nMax+1)], nCrt, "" );   
+
+  getchar();
+  c_clsgks();
+}
+
+void Boundary()
+{
+  c_plotif(    0,    0,0);
+  c_plotif(32767,    0,1);
+  c_plotif(32767,32767,1);
+  c_plotif(    0,32767,1);
+  c_plotif(    0,    0,1);
+}
+
+
+void agchcu( int * iflag, int * n )
+{
+  c_plotif( 0., 0., 2 );
+  if( *iflag == 0 ) 
+    gset_line_colr_ind( CrtGraph % MAX_COLORS + 2 );
+  else 
+    gset_line_colr_ind( 1 );
+}
+
+int CmpLabelName( char * s1, char * s2 ) 
+{
+  while ( isspace( *s1 ) ) s1++;
+  while( *s1 == *s2 ) {
+    s1++; s2++;
+  }  
+  if( *s2 == '\0' )
+    return 1;
+  return 0;  
+}
+
+
+void agchil( int * iflag, char * lname, int * lnum ) 
+{
+  c_plotif( 0., 0., 2 );
+  switch( *iflag ) {
+    case 0:
+            if( CmpLabelName( lname, status ) )
+              gset_text_colr_ind( 1 - clean );
+    	    break;
+    case 1: gset_text_colr_ind( 1 );
+            break;
+  }          
+}
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/ncar.h
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/ncar.h	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/ncar.h	(revision 2696)
@@ -0,0 +1,5 @@
+void OpenWin();
+void CloseWin();
+int DefineGraph( char * label, float plus, float minus );
+void InitGraph( int n, float Xmin, float Xmax, char *title );
+void UpdateGraph( float * val );
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/sparsity_plots.m
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/sparsity_plots.m	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/sparsity_plots.m	(revision 2696)
@@ -0,0 +1,46 @@
+% Plots the sparsity patterns of the  Jacobian and the Hessian
+
+%%%%% JACOBIAN
+figure(1);
+
+J = zeros(NVAR,NVAR);
+for k=1:LU_NONZERO
+  J( LU_IROW(k), LU_ICOL(k) ) = 1;
+end
+spy(J);
+TK = floor( linspace(1,NVAR,5) );
+set(gca,'XTick',TK,'YTick',TK,'FontSize',14,'LineWidth',2);
+
+%%%%% HESSIAN
+figure(2);
+
+H = zeros(NVAR,NVAR,NVAR);
+for k=1:NHESS
+  H( IHESS_I(k), IHESS_J(k), IHESS_K(k) ) = 1;
+  H( IHESS_I(k), IHESS_K(k), IHESS_J(k) ) = 1;
+end
+
+M = ceil( sqrt(NVAR) );
+
+for i=1:M
+  for j=1:M
+    k = M*(i-1)+j;
+    if ( k <= NVAR )
+      subplot(M,M,k);
+      hold on
+      G = reshape( H(k,1:NVAR,1:NVAR), NVAR, NVAR );
+      % spy(G); figure;hold on
+      for iH=1:NVAR; for jH=1:NVAR
+         if( G(iH, jH) )
+	    plot(iH,NVAR+1-jH,'.'); 
+	 end;
+      end; end
+      text(NVAR/6,NVAR*0.6,int2str(k))
+      set(gca,'XLim',[1,NVAR],'YLim',[1,NVAR]);
+      set(gca,'XTick',[],'YTick',[]);
+      axis('square');
+      box on     
+      hold off;
+    end
+  end
+end    
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/sutil.c
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/sutil.c	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/sutil.c	(revision 2696)
@@ -0,0 +1,90 @@
+
+int KppDecomp( KPP_REAL *JVS )
+{
+KPP_REAL W[KPP_NVAR];
+KPP_REAL a;
+int k, kk, j, jj;
+
+  for( k = 0; k < KPP_NVAR; k++ ) {
+    if( JVS[ LU_DIAG[k] ] == 0.0 ) return k+1;
+    for( kk = LU_CROW[k]; kk < LU_CROW[k+1]; kk++ )
+      W[ LU_ICOL[kk] ] = JVS[kk];
+    for( kk = LU_CROW[k]; kk < LU_DIAG[k]; kk++ ) {
+      j = LU_ICOL[kk];
+      a = -W[j] / JVS[ LU_DIAG[j] ];
+      W[j] = -a;
+      for( jj = LU_DIAG[j]+1; jj < LU_CROW[j+1]; jj++ )
+        W[ LU_ICOL[jj] ] += a*JVS[jj];
+    }
+    for( kk = LU_CROW[k]; kk < LU_CROW[k+1]; kk++ )
+      JVS[kk] = W[ LU_ICOL[kk] ];
+  }
+  return 0;
+}
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+	Sparse LU factorization, complex
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+int KppDecompCmplxR( KPP_REAL JVSR[], KPP_REAL JVSI[] )
+{
+   KPP_REAL WR[NVAR], WI[NVAR];
+   KPP_REAL ar, ai, den;
+   int k, kk, j, jj;
+
+   for( k = 0; k < NVAR; k++ ) {
+	if( JVSR[ LU_DIAG[k] ] == 0.0 ) return k+1;
+	if( JVSI[ LU_DIAG[k] ] == 0.0 ) return k+1;
+	for( kk = LU_CROW[k]; kk < LU_CROW[k+1]; kk++ ) {
+		WR[ LU_ICOL[kk] ] = JVSR[kk];
+		WI[ LU_ICOL[kk] ] = JVSI[kk];
+	}
+	for( kk = LU_CROW[k]; kk < LU_DIAG[k]; kk++ ) {
+	   j = LU_ICOL[kk];
+	   den = JVSR[LU_DIAG[j]]*JVSR[LU_DIAG[j]] + JVSI[LU_DIAG[j]]*JVSI[LU_DIAG[j]];
+	   ar = -(WR[j]*JVSR[LU_DIAG[j]] + WI[j]*JVSI[LU_DIAG[j]])/den;
+	   ai = -(WI[j]*JVSR[LU_DIAG[j]] - WR[j]*JVSI[LU_DIAG[j]])/den;
+	   WR[j] = -ar;
+	   WI[j] = -ai;
+	   for( jj = LU_DIAG[j]+1; jj < LU_CROW[j+1]; jj++ ) {
+		   WR[ LU_ICOL[jj] ] = WR[ LU_ICOL[jj] ] + ar*JVSR[jj] - ai*JVSI[jj];
+		   WI[ LU_ICOL[jj] ] = WI[ LU_ICOL[jj] ] + ar*JVSI[jj] + ai*JVSR[jj];
+	   }
+	}
+	for( kk = LU_CROW[k]; kk < LU_CROW[k+1]; kk++ ) {
+	   JVSR[kk] = WR[ LU_ICOL[kk] ];
+	   JVSI[kk] = WI[ LU_ICOL[kk] ];
+	}
+   }
+   return 0;
+}
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+	Complex sparse solve subroutine using indirect addressing
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+void KppSolveCmplxR(KPP_REAL JVSR[], KPP_REAL JVSI[], KPP_REAL XR[], KPP_REAL XI[])
+{
+   int i, j;
+   KPP_REAL sumr, sumi, den;
+
+   for ( i = 0; i < NVAR; i++ ) {
+	for ( j = LU_CROW[i]; j < LU_DIAG[i]; j++ ) {
+	   XR[i] = XR[i] - (JVSR[j]*XR[LU_ICOL[j]] - JVSI[j]*XI[LU_ICOL[j]]);
+	   XI[i] = XI[i] - (JVSR[j]*XI[LU_ICOL[j]] + JVSI[j]*XR[LU_ICOL[j]]);
+	}
+   }
+   
+   for ( i = NVAR-1; i >= 0; i-- ) {
+	sumr = XR[i];
+	sumi = XI[i];
+	for ( j = LU_DIAG[i]+1; j < LU_CROW[i+1]; j++) {
+	   sumr = sumr - (JVSR[j]*XR[LU_ICOL[j]] - JVSI[j]*XI[LU_ICOL[j]]);
+	   sumi = sumi - (JVSR[j]*XI[LU_ICOL[j]] + JVSI[j]*XR[LU_ICOL[j]]);
+	}
+	den = JVSR[LU_DIAG[i]]*JVSR[LU_DIAG[i]] + JVSI[LU_DIAG[i]]*JVSI[LU_DIAG[i]];
+  	XR[i] = (sumr*JVSR[LU_DIAG[i]] + sumi*JVSI[LU_DIAG[i]])/den; 
+  	XI[i] = (sumi*JVSR[LU_DIAG[i]] - sumr*JVSI[LU_DIAG[i]])/den;
+   }
+}
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+	END FUNCTION KppSolveCmplxR
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/sutil.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/sutil.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/sutil.f	(revision 2696)
@@ -0,0 +1,131 @@
+
+C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE KppDecomp( JVS, IER )
+C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+C        Sparse LU factorization
+C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Sparse.h'
+
+      INTEGER  IER
+      KPP_REAL JVS(KPP_LU_NONZERO), W(KPP_NVAR)
+      INTEGER  k, kk, j, jj
+      KPP_REAL a 
+
+      IER = 0
+      DO k=1,NVAR
+        IF ( JVS( LU_DIAG(k) ) .EQ. 0. ) THEN
+            IER = k
+            RETURN
+        END IF
+        DO kk = LU_CROW(k), LU_CROW(k+1)-1
+              W( LU_ICOL(kk) ) = JVS(kk)
+        END DO
+        DO kk = LU_CROW(k), LU_DIAG(k)-1
+            j = LU_ICOL(kk)
+            a = -W(j) / JVS( LU_DIAG(j) )
+            W(j) = -a
+            DO jj = LU_DIAG(j)+1, LU_CROW(j+1)-1
+               W( LU_ICOL(jj) ) = W( LU_ICOL(jj) ) + a*JVS(jj)
+            END DO
+         END DO
+         DO kk = LU_CROW(k), LU_CROW(k+1)-1
+            JVS(kk) = W( LU_ICOL(kk) )
+         END DO
+      END DO
+      RETURN
+      END
+
+C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE KppDecompCmplx( JVS, IER )
+C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+C        Sparse LU factorization, complex
+C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+      INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Sparse.h'
+
+      INTEGER  IER
+      DOUBLE COMPLEX JVS(KPP_LU_NONZERO), W(KPP_NVAR), a
+      INTEGER  k, kk, j, jj
+
+      IER = 0
+      DO k=1,NVAR
+        IF ( JVS( LU_DIAG(k) ) .EQ. 0. ) THEN
+            IER = k
+            RETURN
+        END IF
+        DO kk = LU_CROW(k), LU_CROW(k+1)-1
+              W( LU_ICOL(kk) ) = JVS(kk)
+        END DO
+        DO kk = LU_CROW(k), LU_DIAG(k)-1
+            j = LU_ICOL(kk)
+            a = -W(j) / JVS( LU_DIAG(j) )
+            W(j) = -a
+            DO jj = LU_DIAG(j)+1, LU_CROW(j+1)-1
+               W( LU_ICOL(jj) ) = W( LU_ICOL(jj) ) + a*JVS(jj)
+            END DO
+         END DO
+         DO kk = LU_CROW(k), LU_CROW(k+1)-1
+            JVS(kk) = W( LU_ICOL(kk) )
+         END DO
+      END DO
+      RETURN
+      END
+
+C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE KppSolveIndirect( JVS, X )
+C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+C        Sparse solve subroutine using indirect addressing
+C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Sparse.h'
+
+      INTEGER i, j
+      KPP_REAL JVS(KPP_LU_NONZERO), X(KPP_NVAR), sum
+
+      DO i=1,NVAR
+         DO j = LU_CROW(i), LU_DIAG(i)-1 
+             X(i) = X(i) - JVS(j)*X(LU_ICOL(j));
+	 END DO  
+      END DO
+
+      DO i=NVAR,1,-1
+        sum = X(i);
+        DO j = LU_DIAG(i)+1, LU_CROW(i+1)-1
+          sum = sum - JVS(j)*X(LU_ICOL(j));
+	END DO
+        X(i) = sum/JVS(LU_DIAG(i));
+      END DO
+      
+      RETURN
+      END
+
+C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      SUBROUTINE KppSolveCmplx( JVS, X )
+C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+C        Complex sparse solve subroutine using indirect addressing
+C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Sparse.h'
+
+      INTEGER i, j
+      DOUBLE COMPLEX JVS(KPP_LU_NONZERO), X(KPP_NVAR), sum
+
+      DO i=1,NVAR
+         DO j = LU_CROW(i), LU_DIAG(i)-1 
+             X(i) = X(i) - JVS(j)*X(LU_ICOL(j));
+	 END DO  
+      END DO
+
+      DO i=NVAR,1,-1
+        sum = X(i);
+        DO j = LU_DIAG(i)+1, LU_CROW(i+1)-1
+          sum = sum - JVS(j)*X(LU_ICOL(j));
+	END DO
+        X(i) = sum/JVS(LU_DIAG(i));
+      END DO
+      
+      RETURN
+      END
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/sutil.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/sutil.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/sutil.f90	(revision 2696)
@@ -0,0 +1,587 @@
+
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+SUBROUTINE KppDecomp( JVS, IER )
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!        Sparse LU factorization
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  USE KPP_ROOT_Parameters
+  USE KPP_ROOT_JacobianSP
+
+      INTEGER  :: IER
+      KPP_REAL :: JVS(LU_NONZERO), W(NVAR), a
+      INTEGER  :: k, kk, j, jj
+
+      a = 0. ! mz_rs_20050606
+      IER = 0
+      DO k=1,NVAR
+        ! mz_rs_20050606: don't check if real value == 0
+        ! IF ( JVS( LU_DIAG(k) ) .EQ. 0. ) THEN
+        IF ( ABS(JVS(LU_DIAG(k))) < TINY(a) ) THEN
+            IER = k
+            RETURN
+        END IF
+        DO kk = LU_CROW(k), LU_CROW(k+1)-1
+              W( LU_ICOL(kk) ) = JVS(kk)
+        END DO
+        DO kk = LU_CROW(k), LU_DIAG(k)-1
+            j = LU_ICOL(kk)
+            a = -W(j) / JVS( LU_DIAG(j) )
+            W(j) = -a
+            DO jj = LU_DIAG(j)+1, LU_CROW(j+1)-1
+               W( LU_ICOL(jj) ) = W( LU_ICOL(jj) ) + a*JVS(jj)
+            END DO
+         END DO
+         DO kk = LU_CROW(k), LU_CROW(k+1)-1
+            JVS(kk) = W( LU_ICOL(kk) )
+         END DO
+      END DO
+      
+END SUBROUTINE KppDecomp
+
+
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+SUBROUTINE KppDecompCmplx( JVS, IER )
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!        Sparse LU factorization, complex
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  USE KPP_ROOT_Parameters
+  USE KPP_ROOT_JacobianSP
+
+      INTEGER        :: IER
+      DOUBLE COMPLEX :: JVS(LU_NONZERO), W(NVAR), a
+      KPP_REAL  :: b = 0.0
+      INTEGER        :: k, kk, j, jj
+
+      IER = 0
+      DO k=1,NVAR
+        IF ( ABS(JVS(LU_DIAG(k))) < TINY(b) ) THEN
+            IER = k
+            RETURN
+        END IF
+        DO kk = LU_CROW(k), LU_CROW(k+1)-1
+              W( LU_ICOL(kk) ) = JVS(kk)
+        END DO
+        DO kk = LU_CROW(k), LU_DIAG(k)-1
+            j = LU_ICOL(kk)
+            a = -W(j) / JVS( LU_DIAG(j) )
+            W(j) = -a
+            DO jj = LU_DIAG(j)+1, LU_CROW(j+1)-1
+               W( LU_ICOL(jj) ) = W( LU_ICOL(jj) ) + a*JVS(jj)
+            END DO
+         END DO
+         DO kk = LU_CROW(k), LU_CROW(k+1)-1
+            JVS(kk) = W( LU_ICOL(kk) )
+         END DO
+      END DO
+      
+END SUBROUTINE KppDecompCmplx
+
+
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+SUBROUTINE KppDecompCmplxR( JVSR, JVSI, IER )
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!    Sparse LU factorization, complex
+!   (Real and Imaginary parts are used instead of complex data type)     
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  USE KPP_ROOT_Parameters
+  USE KPP_ROOT_JacobianSP
+
+      INTEGER       :: IER
+      KPP_REAL :: JVSR(LU_NONZERO), JVSI(LU_NONZERO) 
+      KPP_REAL :: WR(NVAR), WI(NVAR), ar, ai, den
+      INTEGER       :: k, kk, j, jj
+
+      IER = 0
+      ar  = 0.0
+      DO k=1,NVAR
+        IF (  ( ABS(JVSR(LU_DIAG(k))) < TINY(ar) ) .AND. &
+              ( ABS(JVSI(LU_DIAG(k))) < TINY(ar) ) )  THEN
+            IER = k
+            RETURN
+        END IF
+        DO kk = LU_CROW(k), LU_CROW(k+1)-1
+              WR( LU_ICOL(kk) ) = JVSR(kk)
+              WI( LU_ICOL(kk) ) = JVSI(kk)
+        END DO
+        DO kk = LU_CROW(k), LU_DIAG(k)-1
+            j = LU_ICOL(kk)
+            den = JVSR(LU_DIAG(j))**2 + JVSI(LU_DIAG(j))**2
+            ar = -(WR(j)*JVSR(LU_DIAG(j)) + WI(j)*JVSI(LU_DIAG(j)))/den
+            ai = -(WI(j)*JVSR(LU_DIAG(j)) - WR(j)*JVSI(LU_DIAG(j)))/den
+            WR(j) = -ar
+            WI(j) = -ai
+            DO jj = LU_DIAG(j)+1, LU_CROW(j+1)-1
+               WR( LU_ICOL(jj) ) = WR( LU_ICOL(jj) ) + ar*JVSR(jj) - ai*JVSI(jj)
+               WI( LU_ICOL(jj) ) = WI( LU_ICOL(jj) ) + ar*JVSI(jj) + ai*JVSR(jj)
+            END DO
+         END DO
+         DO kk = LU_CROW(k), LU_CROW(k+1)-1
+            JVSR(kk) = WR( LU_ICOL(kk) )
+            JVSI(kk) = WI( LU_ICOL(kk) )
+         END DO
+      END DO
+
+END SUBROUTINE KppDecompCmplxR
+
+
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+SUBROUTINE KppSolveIndirect( JVS, X )
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!        Sparse solve subroutine using indirect addressing
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  USE KPP_ROOT_Parameters
+  USE KPP_ROOT_JacobianSP
+
+      INTEGER  :: i, j
+      KPP_REAL :: JVS(LU_NONZERO), X(NVAR), sum
+
+      DO i=1,NVAR
+         DO j = LU_CROW(i), LU_DIAG(i)-1 
+             X(i) = X(i) - JVS(j)*X(LU_ICOL(j));
+         END DO  
+      END DO
+
+      DO i=NVAR,1,-1
+        sum = X(i);
+        DO j = LU_DIAG(i)+1, LU_CROW(i+1)-1
+          sum = sum - JVS(j)*X(LU_ICOL(j));
+        END DO
+        X(i) = sum/JVS(LU_DIAG(i));
+      END DO
+      
+END SUBROUTINE KppSolveIndirect
+
+
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+SUBROUTINE KppSolveTRIndirect( JVS, X )
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!        Complex sparse solve transpose subroutine using indirect addressing
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  USE KPP_ROOT_Parameters
+  USE KPP_ROOT_JacobianSP
+
+      INTEGER       :: i, j
+      KPP_REAL :: JVS(LU_NONZERO), X(NVAR)
+
+      DO i=1,NVAR
+        X(i) = X(i)/JVS(LU_DIAG(i))
+	! subtract all nonzero elements in row i of JVS from X
+        DO j=LU_DIAG(i)+1,LU_CROW(i+1)-1
+	  X(LU_ICOL(j)) = X(LU_ICOL(j))-JVS(j)*X(i)
+	END DO
+      END DO
+
+      DO i=NVAR, 1, -1
+	! subtract all nonzero elements in row i of JVS from X
+        DO j=LU_CROW(i),LU_DIAG(i)-1
+	  X(LU_ICOL(j)) = X(LU_ICOL(j))-JVS(j)*X(i)
+	END DO
+      END DO
+      
+END SUBROUTINE KppSolveTRIndirect
+
+
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+SUBROUTINE KppSolveCmplx( JVS, X )
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!        Complex sparse solve subroutine using indirect addressing
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  USE KPP_ROOT_Parameters
+  USE KPP_ROOT_JacobianSP
+
+      INTEGER        :: i, j
+      DOUBLE COMPLEX :: JVS(LU_NONZERO), X(NVAR), sum
+
+      DO i=1,NVAR
+         DO j = LU_CROW(i), LU_DIAG(i)-1 
+             X(i) = X(i) - JVS(j)*X(LU_ICOL(j));
+         END DO  
+      END DO
+
+      DO i=NVAR,1,-1
+        sum = X(i);
+        DO j = LU_DIAG(i)+1, LU_CROW(i+1)-1
+          sum = sum - JVS(j)*X(LU_ICOL(j));
+        END DO
+        X(i) = sum/JVS(LU_DIAG(i));
+      END DO
+      
+END SUBROUTINE KppSolveCmplx
+
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+SUBROUTINE KppSolveCmplxR( JVSR, JVSI, XR, XI )
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!   Complex sparse solve subroutine using indirect addressing
+!   (Real and Imaginary parts are used instead of complex data type)     
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  USE KPP_ROOT_Parameters
+  USE KPP_ROOT_JacobianSP
+
+      INTEGER       ::  i, j
+      KPP_REAL ::  JVSR(LU_NONZERO), JVSI(LU_NONZERO), XR(NVAR), XI(NVAR), sumr, sumi, den
+
+      DO i=1,NVAR
+         DO j = LU_CROW(i), LU_DIAG(i)-1 
+             XR(i) = XR(i) - (JVSR(j)*XR(LU_ICOL(j)) - JVSI(j)*XI(LU_ICOL(j)))
+             XI(i) = XI(i) - (JVSR(j)*XI(LU_ICOL(j)) + JVSI(j)*XR(LU_ICOL(j)))
+         END DO  
+      END DO
+
+      DO i=NVAR,1,-1
+        sumr = XR(i); sumi = XI(i)
+        DO j = LU_DIAG(i)+1, LU_CROW(i+1)-1
+            sumr = sumr - (JVSR(j)*XR(LU_ICOL(j)) - JVSI(j)*XI(LU_ICOL(j)))
+            sumi = sumi - (JVSR(j)*XI(LU_ICOL(j)) + JVSI(j)*XR(LU_ICOL(j)))
+        END DO
+        den   = JVSR(LU_DIAG(i))**2 + JVSI(LU_DIAG(i))**2
+        XR(i) = (sumr*JVSR(LU_DIAG(i)) + sumi*JVSI(LU_DIAG(i)))/den
+        XI(i) = (sumi*JVSR(LU_DIAG(i)) - sumr*JVSI(LU_DIAG(i)))/den
+      END DO
+      
+END SUBROUTINE KppSolveCmplxR
+
+
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+SUBROUTINE KppSolveTRCmplx( JVS, X )
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!        Complex sparse solve transpose subroutine using indirect addressing
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  USE KPP_ROOT_Parameters
+  USE KPP_ROOT_JacobianSP
+
+      INTEGER        :: i, j
+      DOUBLE COMPLEX :: JVS(LU_NONZERO), X(NVAR)
+
+      DO i=1,NVAR
+        X(i) = X(i)/JVS(LU_DIAG(i))
+	! subtract all nonzero elements in row i of JVS from X
+        DO j=LU_DIAG(i)+1,LU_CROW(i+1)-1
+	  X(LU_ICOL(j)) = X(LU_ICOL(j))-JVS(j)*X(i)
+	END DO
+      END DO
+
+      DO i=NVAR, 1, -1
+	! subtract all nonzero elements in row i of JVS from X
+        DO j=LU_CROW(i),LU_DIAG(i)-1
+	  X(LU_ICOL(j)) = X(LU_ICOL(j))-JVS(j)*X(i)
+	END DO
+      END DO
+      
+END SUBROUTINE KppSolveTRCmplx
+
+
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+SUBROUTINE KppSolveTRCmplxR( JVSR, JVSI, XR, XI )
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!   Complex sparse solve transpose subroutine using indirect addressing
+!   (Real and Imaginary parts are used instead of complex data type)     
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  USE KPP_ROOT_Parameters
+  USE KPP_ROOT_JacobianSP
+
+      INTEGER       ::  i, j
+      KPP_REAL ::  JVSR(LU_NONZERO), JVSI(LU_NONZERO), XR(NVAR), XI(NVAR), den
+
+      DO i=1,NVAR
+        den   = JVSR(LU_DIAG(i))**2 + JVSI(LU_DIAG(i))**2
+        XR(i) = (XR(i)*JVSR(LU_DIAG(i)) + XI(i)*JVSI(LU_DIAG(i)))/den
+        XI(i) = (XI(i)*JVSR(LU_DIAG(i)) - XR(i)*JVSI(LU_DIAG(i)))/den
+	! subtract all nonzero elements in row i of JVS from X
+        DO j=LU_DIAG(i)+1,LU_CROW(i+1)-1
+	  XR(LU_ICOL(j)) = XR(LU_ICOL(j))-(JVSR(j)*XR(i) - JVSI(j)*XI(i))
+	  XI(LU_ICOL(j)) = XI(LU_ICOL(j))-(JVSI(j)*XR(i) + JVSR(j)*XI(i))
+	END DO
+      END DO
+
+      DO i=NVAR, 1, -1
+	! subtract all nonzero elements in row i of JVS from X
+        DO j=LU_CROW(i),LU_DIAG(i)-1
+	  XR(LU_ICOL(j)) = XR(LU_ICOL(j))-(JVSR(j)*XR(i) - JVSI(j)*XI(i))
+	  XI(LU_ICOL(j)) = XI(LU_ICOL(j))-(JVSI(j)*XR(i) + JVSR(j)*XI(i))
+	END DO
+      END DO
+      
+END SUBROUTINE KppSolveTRCmplxR
+
+
+!
+! Next few commented subroutines perform sparse big linear algebra
+!
+!! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!SUBROUTINE KppDecompBig( JVS, IP, IER )
+!! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!!        Sparse LU factorization
+!!        for the Runge Kutta (3n)x(3n) linear system
+!! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!  USE KPP_ROOT_Parameters
+!  USE KPP_ROOT_JacobianSP
+!
+!      INTEGER  :: IP3(3), IER, IP(3,NVAR)
+!      KPP_REAL :: JVS(3,3,LU_NONZERO), W(3,3,NVAR), a(3,3), E(3,3)
+!      INTEGER  :: k, kk, j, jj
+!
+!      a = 0.0d0
+!      IER = 0
+!      DO k=1,NVAR
+!        DO kk = LU_CROW(k), LU_CROW(k+1)-1
+!              W( 1:3,1:3,LU_ICOL(kk) ) = JVS(1:3,1:3,kk)
+!        END DO
+!        DO kk = LU_CROW(k), LU_DIAG(k)-1
+!            j = LU_ICOL(kk)
+!            E(1:3,1:3) = JVS( 1:3,1:3,LU_DIAG(j) )
+!            ! CALL DGETRF(3,3,E,3,IP3,IER) 
+!            CALL FAC3(E,IP3,IER)
+!            IF ( IER /= 0 )  RETURN
+!            ! a = W(j) / JVS( LU_DIAG(j) )
+!            a(1:3,1:3) = W( 1:3,1:3,j )
+!            ! CALL DGETRS ('N',3,3,E,3,IP3,a,3,IER) 
+!            CALL SOL3('N',E,IP3,a(1,1))
+!            CALL SOL3('N',E,IP3,a(1,2))
+!            CALL SOL3('N',E,IP3,a(1,3))
+!            W(1:3,1:3,j) = a(1:3,1:3)
+!            DO jj = LU_DIAG(j)+1, LU_CROW(j+1)-1
+!               W( 1:3,1:3,LU_ICOL(jj) ) = W( 1:3,1:3,LU_ICOL(jj) ) &
+!                        - MATMUL( a(1:3,1:3) , JVS(1:3,1:3,jj) )
+!            END DO
+!         END DO
+!         DO kk = LU_CROW(k), LU_CROW(k+1)-1
+!            JVS(1:3,1:3,kk) = W( 1:3,1:3,LU_ICOL(kk) )
+!         END DO
+!      END DO
+!
+!      DO k=1,NVAR
+!         ! CALL WGEFA(JVS(1,1,LU_DIAG(k)),3,3,IP(1,k),IER)
+!         ! CALL DGETRF(3,3,JVS(1,1,LU_DIAG(k)),3,IP(1,k),IER)
+!         CALL FAC3(JVS(1,1,LU_DIAG(k)),IP(1,k),IER)
+!         IF ( IER /= 0 )  RETURN
+!      END DO 
+!      
+!END SUBROUTINE KppDecompBig
+!
+!
+!! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!SUBROUTINE KppSolveBig( JVS, IP, X )
+!! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!!        Sparse solve subroutine using indirect addressing
+!!        for the Runge Kutta (3n)x(3n) linear system
+!! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!  USE KPP_ROOT_Parameters
+!  USE KPP_ROOT_JacobianSP
+!
+!      INTEGER  :: i, j, k, m, IP3(3), IP(3,NVAR), IER
+!      KPP_REAL :: JVS(3,3,LU_NONZERO), X(3,NVAR), sum(3)
+!
+!      DO i=1,NVAR
+!        DO j = LU_CROW(i), LU_DIAG(i)-1 
+!          !X(1:3,i) = X(1:3,i) - MATMUL(JVS(1:3,1:3,j),X(1:3,LU_ICOL(j)));
+!          DO k=1,3
+!            DO m=1,3
+!	       X(k,i) = X(k,i) - JVS(k,m,j)*X(m,LU_ICOL(j))
+!            END DO
+!          END DO
+!        END DO  
+!      END DO
+!
+!      DO i=NVAR,1,-1
+!        sum(1:3) = X(1:3,i);
+!        DO j = LU_DIAG(i)+1, LU_CROW(i+1)-1
+!          !sum(1:3) = sum(1:3) - MATMUL(JVS(1:3,1:3,j),X(1:3,LU_ICOL(j)));
+!          DO k=1,3
+!            DO m=1,3
+!	       sum(k) = sum(k) - JVS(k,m,j)*X(m,LU_ICOL(j))
+!            END DO
+!          END DO
+!        END DO
+!        ! X(i) = sum/JVS(LU_DIAG(i));
+!        ! CALL DGETRS ('N',3,1,JVS(1:3,1:3,LU_DIAG(i)),3,IP(1,i),sum,3,0) 
+!        ! CALL WGESL('N',JVS(1,1,LU_DIAG(i)),3,3,IP(1,i),sum)
+!        CALL SOL3('N',JVS(1,1,LU_DIAG(i)),IP(1,i),sum)
+!        X(1:3,i) = sum(1:3)
+!      END DO
+!      
+!END SUBROUTINE KppSolveBig
+!
+!
+!! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!SUBROUTINE KppSolveBigTR( JVS, IP, X )
+!! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!!        Big sparse transpose solve using indirect addressing
+!! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!  USE KPP_ROOT_Parameters
+!  USE KPP_ROOT_JacobianSP
+!
+!      INTEGER       :: i, j, k, m, IP(3,NVAR)
+!      KPP_REAL :: JVS(3,3,LU_NONZERO), X(3,NVAR)
+!
+!      DO i=1,NVAR
+!        ! X(i) = X(i)/JVS(LU_DIAG(i))
+!        CALL SOL3('T',JVS(1,1,LU_DIAG(i)),IP(1,i),X(1,i))
+!        DO j=LU_DIAG(i)+1,LU_CROW(i+1)-1
+!	  !X(1:3,LU_ICOL(j)) = X(1:3,LU_ICOL(j)) &
+!          !    - MATMUL( TRANSPOSE(JVS(1:3,1:3,j)), X(1:3,i) )
+!          DO k=1,3
+!            DO m=1,3
+!	       X(k,LU_ICOL(j)) = X(k,LU_ICOL(j)) - JVS(m,k,j)*X(m,i)
+!            END DO
+!          END DO
+!	END DO
+!      END DO
+!
+!      DO i=NVAR, 1, -1
+!        DO j=LU_CROW(i),LU_DIAG(i)-1
+!	  !X(1:3,LU_ICOL(j)) = X(1:3,LU_ICOL(j)) &
+!          !   - MATMUL( TRANSPOSE(JVS(1:3,1:3,j)), X(1:3,i) )
+!          DO k=1,3
+!            DO m=1,3
+!	       X(k,LU_ICOL(j)) = X(k,LU_ICOL(j)) - JVS(m,k,j)*X(m,i)
+!            END DO
+!          END DO
+!	END DO
+!      END DO
+!      
+!END SUBROUTINE KppSolveBigTR
+!
+!
+!
+!! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!SUBROUTINE FAC3(A,IPVT,INFO)
+!! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!!     FAC3 FACTORS THE MATRIX A (3,3) BY
+!!           GAUSS ELIMINATION WITH PARTIAL PIVOTING
+!!     LINPACK - LIKE 
+!!
+!!     Remove comments to perform pivoting
+!! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!!
+!      KPP_REAL :: A(3,3)
+!      INTEGER       :: IPVT(3),INFO
+!!      INTEGER       :: L
+!!      KPP_REAL :: t, dmax, da, TMP(3)
+!      KPP_REAL, PARAMETER :: ZERO = 0.0, ONE = 1.0
+!
+!      info = 0
+!!      t = TINY(da)
+!!      
+!!      da = ABS(A(1,1)); L = 1
+!!      IF ( ABS(A(2,1))>da ) THEN
+!!        da = ABS(A(2,1)); L = 2
+!!        IF ( ABS(A(3,1))>da ) THEN
+!!          L = 3
+!!        END IF  
+!!      END IF  
+!!      IPVT(1)  = L
+!!      IF (L /=1 ) THEN
+!!         TMP(1:3) = A(L,1:3)
+!!         A(L,1:3) = A(1,1:3)
+!!         A(1,1:3) = TMP(1:3)
+!!      END IF
+!!      IF (ABS(A(1,1)) < t) THEN
+!!         info = 1
+!!         return
+!!      END IF   
+!!
+!      A(2,1) = A(2,1)/A(1,1)
+!      A(2,2) = A(2,2) - A(2,1)*A(1,2)
+!      A(2,3) = A(2,3) - A(2,1)*A(1,3)
+!      A(3,1) = A(3,1)/A(1,1)
+!      A(3,2) = A(3,2) - A(3,1)*A(1,2)
+!      A(3,3) = A(3,3) - A(3,1)*A(1,3)
+!      
+!!      IPVT(2)  = 2
+!!      IF (ABS(A(3,2))>ABS(A(2,2))) THEN
+!!         IPVT(2)  = 3
+!!         TMP(2:3) = A(3,2:3)
+!!         A(3,2:3) = A(2,2:3)
+!!         A(2,2:3) = TMP(2:3)
+!!      END IF
+!!      IF (ABS(A(2,2)) < t) THEN
+!!         info = 1
+!!         return
+!!      END IF   
+!!      
+!      A(3,2)   = A(3,2)/A(2,2)
+!      A(3,3)   = A(3,3) - A(3,2)*A(2,3)
+!      IPVT(3)  = 3
+!      
+!END SUBROUTINE FAC3
+!
+!
+!! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!SUBROUTINE SOL3(Trans,A,IPVT,b)
+!! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!!     SOL3 solves the system 3x3
+!!     A * x = b  or  trans(a) * x = b
+!!     using the factors computed by WGEFA.
+!!
+!!     Trans      = 'N'   to solve  A*x = b ,
+!!                = 'T'   to solve  transpose(A)*x = b
+!!     LINPACK - LIKE 
+!!
+!!     Remove comments to use pivoting
+!! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!      CHARACTER     :: Trans
+!      KPP_REAL :: a(3,3),b(3)
+!      INTEGER       :: IPVT(3)
+!!      INTEGER       :: L
+!!      KPP_REAL :: TMP
+!      
+!      SELECT CASE (Trans)
+!
+!      CASE ('n','N')  !  Solve  A * x = b
+!
+!!     Solve  L*y = b
+!!         L = IPVT(1)
+!!         IF (L /= 1) THEN
+!!            TMP = B(1); B(1) = B(L); B(L) = TMP
+!!         END IF
+!         b(2) = b(2)-A(2,1)*b(1)
+!         b(3) = b(3)-A(3,1)*b(1)
+!         
+!!         L = IPVT(2)
+!!         IF (L /= 2) THEN
+!!            TMP = B(2); B(2) = B(L); B(L) = TMP
+!!         END IF
+!         b(3) = b(3)-A(3,2)*b(2)
+!
+!!     Solve  U*x = y
+!         b(3) = b(3)/A(3,3)
+!         b(2) = (b(2)-A(2,3)*b(3))/A(2,2)
+!         b(1) = (b(1)-A(1,3)*b(3)-A(1,2)*b(2))/A(1,1)
+!      
+!      
+!      CASE ('t','T')  !  Solve transpose(A) * x = b
+!
+!!      Solve transpose(U)*y = b
+!         b(1) = b(1)/A(1,1)
+!         b(2) = (b(2)-A(1,2)*b(1))/A(2,2)
+!         b(3) = (b(3)-A(1,3)*b(1)-A(2,3)*b(2))/A(3,3)
+!
+!!      Solve transpose(L)*x = y
+!         b(2) = b(2)-A(3,2)*b(3)
+!!         L = ipvt(2)
+!!         IF (L /= 2) THEN
+!!            TMP = B(2); B(2) = B(L); B(L) = TMP
+!!         END IF
+!         b(1) = b(1)-A(3,1)*b(3)-A(2,1)*b(2)
+!!         L = ipvt(1)
+!!         IF (L /= 1) THEN
+!!            TMP = B(1); B(1) = B(L); B(L) = TMP
+!!         END IF
+!   
+!      END SELECT
+!
+!END SUBROUTINE SOL3
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/tag2num.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/tag2num.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/tag2num.f90	(revision 2696)
@@ -0,0 +1,28 @@
+! ****************************************************************
+!                            
+! tag2num - convert equation tags to kpp reaction number
+!   Arguments :
+!      id        - string with the equation tag
+!
+! ****************************************************************
+
+ELEMENTAL INTEGER FUNCTION tag2num ( id )
+
+  USE KPP_ROOT_Monitor, ONLY: EQN_TAGS
+
+  CHARACTER(LEN=*), INTENT(IN) :: id
+  INTEGER i
+
+  tag2num = 0 ! mz_rs_20050115
+  DO i = 1, SIZE(EQN_TAGS)
+    IF (TRIM(EQN_TAGS(i)) == TRIM(id)) THEN
+      tag2num = i ! mz_rs_20050115
+      EXIT
+    ENDIF
+  END DO
+
+END FUNCTION tag2num
+
+! End of tag2num function
+! ****************************************************************
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/util.c
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/util.c	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/util.c	(revision 2696)
@@ -0,0 +1,70 @@
+/*
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+*/
+KPP_REAL min( KPP_REAL x, KPP_REAL y )
+{
+  return ( x <= y ) ? x : y;
+}
+
+KPP_REAL max( KPP_REAL x, KPP_REAL y )
+{
+  return ( x >= y ) ? x : y;
+}
+
+static FILE *fpDat = 0;
+
+int InitSaveData()
+{
+  fpDat = fopen("KPP_ROOT.dat", "w");
+  if( fpDat == 0 ) {
+    printf("\n Can't create file : KPP_ROOT.dat");
+    exit(1);
+  }
+  return 0;
+}
+
+int SaveData()
+{
+int i;
+
+  fprintf( fpDat, "%6.1f ", TIME/3600.0 );
+  for( i = 0; i < NLOOKAT; i++ )
+    fprintf( fpDat, "%24.16e ", C[ LOOKAT[i] ]/CFACTOR );
+  fprintf( fpDat, "\n");
+  return 0;
+}
+
+int CloseSaveData()
+{
+  fclose( fpDat );
+  return 0;
+}
+
+int GenerateMatlab( char * prefix )
+{
+int i;
+FILE *fpMatlab;
+  
+  fpMatlab = fopen("KPP_ROOT.m", "w");
+  if( fpMatlab == 0 ) {
+    printf("\n Can't create file : KPP_ROOT.m");
+    exit(1);
+  }
+
+  fprintf(fpMatlab, "load KPP_ROOT.dat;\n");
+  fprintf(fpMatlab, "%sc = KPP_ROOT;\n", prefix);
+  fprintf(fpMatlab, "clear KPP_ROOT;\n");
+  fprintf(fpMatlab, "%st=%sc(:,1);\n", prefix, prefix);
+  fprintf(fpMatlab, "%sc(:,1)=[];\n", prefix);
+  
+  for( i = 0; i < NLOOKAT; i++ )
+    fprintf( fpMatlab, "%s%s = %sc(:,%d);\n", 
+            prefix, SPC_NAMES[LOOKAT[i]], 
+            prefix, i+1 );
+  
+  fclose( fpMatlab );
+  return 0;
+}
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/util.f
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/util.f	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/util.f	(revision 2696)
@@ -0,0 +1,102 @@
+C ****************************************************************
+C                            
+C InitSaveData - Opens the data file for writing
+C   Parameters :                                                  
+C
+C ****************************************************************
+
+      SUBROUTINE InitSaveData ()
+
+      INCLUDE 'KPP_ROOT_Parameters.h'
+
+      open(10, file='KPP_ROOT.dat')
+
+      RETURN
+      END
+
+C End of InitSaveData function
+C ****************************************************************
+
+C ****************************************************************
+C                            
+C SaveData - Write LOOKAT species in the data file 
+C   Parameters :                                                  
+C
+C ****************************************************************
+
+      SUBROUTINE SaveData ()
+
+      INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Global.h'
+
+      INTEGER i
+
+      WRITE(10,999) (TIME-TSTART)/3600.D0,
+     *              (C(LOOKAT(i))/CFACTOR, i=1,NLOOKAT)
+999   FORMAT(E24.16,100(1X,E24.16))
+
+      RETURN
+      END
+
+C End of SaveData function
+C ****************************************************************
+
+C ****************************************************************
+C                            
+C CloseSaveData - Close the data file 
+C   Parameters :                                                  
+C
+C ****************************************************************
+
+      SUBROUTINE CloseSaveData ()
+
+      INCLUDE 'KPP_ROOT_Parameters.h'
+
+      CLOSE(10)
+
+      RETURN
+      END
+
+C End of CloseSaveData function
+C ****************************************************************
+
+C ****************************************************************
+C                            
+C GenerateMatlab - Generates MATLAB file to load the data file 
+C   Parameters : 
+C                It will have a character string to prefix each 
+C                species name with.                                                 
+C
+C ****************************************************************
+
+      SUBROUTINE GenerateMatlab ( PREFIX )
+
+      INCLUDE 'KPP_ROOT_Parameters.h'
+      INCLUDE 'KPP_ROOT_Global.h'
+      
+      CHARACTER*8 PREFIX 
+      INTEGER i
+
+      open(20, file='KPP_ROOT.m')
+      write(20,*) 'load KPP_ROOT.dat;'
+      write(20,990) PREFIX
+990   FORMAT(A1,'c = KPP_ROOT;')
+      write(20,*) 'clear KPP_ROOT;'
+      write(20,991) PREFIX, PREFIX
+991   FORMAT(A1,'t=',A1,'c(:,1);')
+      write(20,992) PREFIX
+992   FORMAT(A1,'c(:,1)=[];')
+
+      do i=1,NLOOKAT
+        write(20,993) PREFIX, SPC_NAMES(LOOKAT(i)), PREFIX, i
+993     FORMAT(A1,A6,' = ',A1,'c(:,',I2,');')
+      end do
+      
+      CLOSE(20)
+
+      RETURN
+      END
+
+C End of GenerateMatlab function
+C ****************************************************************
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/util.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/util.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/util.f90	(revision 2696)
@@ -0,0 +1,101 @@
+! ****************************************************************
+!                            
+! InitSaveData - Opens the data file for writing
+!   Parameters :                                                  
+!
+! ****************************************************************
+
+      SUBROUTINE InitSaveData ()
+
+      USE KPP_ROOT_Parameters
+
+      open(10, file='KPP_ROOT.dat')
+
+      END SUBROUTINE InitSaveData
+
+! End of InitSaveData function
+! ****************************************************************
+
+! ****************************************************************
+!                            
+! SaveData - Write LOOKAT species in the data file 
+!   Parameters :                                                  
+!
+! ****************************************************************
+
+      SUBROUTINE SaveData ()
+
+      USE KPP_ROOT_Global
+      USE KPP_ROOT_Monitor
+
+      INTEGER i
+
+      WRITE(10,999) (TIME-TSTART)/3600.D0,  &
+                   (C(LOOKAT(i))/CFACTOR, i=1,NLOOKAT)
+999   FORMAT(E24.16,100(1X,E24.16))
+
+      END SUBROUTINE SaveData
+
+! End of SaveData function
+! ****************************************************************
+
+! ****************************************************************
+!                            
+! CloseSaveData - Close the data file 
+!   Parameters :                                                  
+!
+! ****************************************************************
+
+      SUBROUTINE CloseSaveData ()
+
+      USE KPP_ROOT_Parameters
+
+      CLOSE(10)
+
+      END SUBROUTINE CloseSaveData
+
+! End of CloseSaveData function
+! ****************************************************************
+
+! ****************************************************************
+!                            
+! GenerateMatlab - Generates MATLAB file to load the data file 
+!   Parameters : 
+!                It will have a character string to prefix each 
+!                species name with.                                                 
+!
+! ****************************************************************
+
+      SUBROUTINE GenerateMatlab ( PREFIX )
+
+      USE KPP_ROOT_Parameters
+      USE KPP_ROOT_Global
+      USE KPP_ROOT_Monitor
+
+      
+      CHARACTER(LEN=8) PREFIX 
+      INTEGER i
+
+      open(20, file='KPP_ROOT.m')
+      write(20,*) 'load KPP_ROOT.dat;'
+      write(20,990) PREFIX
+990   FORMAT(A1,'c = KPP_ROOT;')
+      write(20,*) 'clear KPP_ROOT;'
+      write(20,991) PREFIX, PREFIX
+991   FORMAT(A1,'t=',A1,'c(:,1);')
+      write(20,992) PREFIX
+992   FORMAT(A1,'c(:,1)=[];')
+
+      do i=1,NLOOKAT
+        write(20,993) PREFIX, SPC_NAMES(LOOKAT(i)), PREFIX, i
+993     FORMAT(A1,A6,' = ',A1,'c(:,',I2,');')
+      end do
+      
+      CLOSE(20)
+
+      END SUBROUTINE GenerateMatlab
+
+! End of GenerateMatlab function
+! ****************************************************************
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/util.m
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/util.m	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp/util/util.m	(revision 2696)
@@ -0,0 +1,54 @@
+% ****************************************************************
+%                            
+% InitSaveData - Opens the data file for writing
+%
+% ****************************************************************
+
+function InitSaveData ()
+
+global KPP_ROOT_FID
+
+      KPP_ROOT_FID = fopen('KPP_ROOT.dat','w');
+
+return %  InitSaveData
+
+% End of InitSaveData function
+% ****************************************************************
+
+% ****************************************************************
+%                            
+% SaveData - Write LOOKAT species in the data file 
+%
+% ****************************************************************
+
+function SaveData ()
+
+global VAR FIX CFACTOR LOOKAT NLOOKAT KPP_ROOT_FID
+
+      C(1:KPP_NVAR) = VAR(1:KPP_NVAR);
+      C(KPP_NVAR+1:KPP_NSPEC) = FIX(1:KPP_NFIX);
+      
+      fprintf(KPP_ROOT_FID,'%12.5e,',C(LOOKAT(1:NLOOKAT)));
+
+return %  SaveData
+
+% End of SaveData function
+% ****************************************************************
+
+% ****************************************************************
+%                            
+% CloseSaveData - Close the data file 
+%
+% ****************************************************************
+
+function CloseSaveData ()
+global KPP_ROOT_FID
+
+      fclose( KPP_ROOT_FID );
+
+return %  CloseSaveData
+
+% End of CloseSaveData function
+% ****************************************************************
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/Makefile
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/Makefile	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/Makefile	(revision 2696)
@@ -0,0 +1,32 @@
+# -*- Makefile -*-
+# ----------------------------------------------
+export
+SHELL    = sh
+
+# ----------------------------------------------
+
+srcdir     = ./src
+bindir     = ./bin
+includedir = ./include
+PROG       = kpp4palm.exe
+
+# ----------------------------------------------
+
+all: $(PROG)
+
+$(PROG):
+	cd $(srcdir) ; \
+	$(MAKE)
+
+install: all
+	cp -pf $(srcdir)/$(PROG) $(bindir)/.
+
+clean:
+	rm -f $(srcdir)/*~
+	rm -f $(srcdir)/*.o
+	rm -f $(srcdir)/$(PROG)
+
+distclean: clean
+	rm -f $(bindir)/kp4.exe
+
+# ----------------------------------------------
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/bin/kpp4palm.ksh
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/bin/kpp4palm.ksh	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/bin/kpp4palm.ksh	(revision 2696)
@@ -0,0 +1,247 @@
+#!/usr/bin/ksh
+
+###########################################################################
+# 
+#     create_kpp_module 
+#
+#     create scalar code from .f90 sources created by KPP to be used in MECCA
+#
+#     COPYRIGHT Klaus Ketelsen and MPI-CH   April 2007
+# 
+###########################################################################
+#
+# Current revisions:
+# ------------------
+# 
+# 
+# Former revisions:
+# -----------------
+# $Id$
+#
+# 
+# Re-introduced relative path for KPP_HOME
+# Subroutine list adapted to lowercase subroutine names
+# Added arr2, removed update_sun and k_3rd from subroutine list
+# Renamed output file to chem_gasphase_mod
+# Renamed this fikle from kp4/ksh to kpp4kpp.ksh
+# changed location of def_mechanism directories to GASPHASE_PREPROC/mechanisms
+# 
+# 
+#
+# Nov. 2016: Initial Version of KPP chemistry convertor by Klaus Ketelsen
+#
+#
+
+set -eu
+
+
+########################### User SetUp ####################################
+
+export KPP_HOME=`pwd`/kpp
+export KPP=$KPP_HOME/bin/kpp
+
+BASE=`pwd`/kpp4palm
+
+########################## End User Setup ################################
+
+WORK=tmp_kpp4palm
+
+# Default
+
+OUTDIR=`pwd`/../SOURCE
+OUTFILE=chem_gasphase_mod
+DEFDIR=`pwd`/mechanisms/def_smog
+PREFIX=chem_gasphase_mod
+MODE="scalar"
+VLEN=1
+KEEP="NO"
+DE_INDEX="NO"
+DE_INDEX_FAST="NO"
+
+export KPP_SOLVER=Rosenbrock
+
+# get Command line option
+
+echo xxxxxxxxxx
+while  getopts :d:ifkp:o:s:v:w:  c     # get options
+do case $c in
+      d)   DEFDIR=$OPTARG;;          # directory of definition files
+
+      i)   DE_INDEX="YES";;          # if set, deindexing
+
+      f)   DE_INDEX_FAST="YES";;     # if set, fast deindexing
+
+      k)   KEEP="YES";;              # keep Working directory
+
+      o)   OUTDIR=$OPTARG;;          # Output directory of Generated Code
+
+      p)   PREFIX=$OPTARG;;          # Name Prefix
+
+      s)   KPP_SOLVER=$OPTARG;;      # Name Prefix
+
+      v)   MODE="vector"
+           VLEN=$OPTARG;;            # Set to vector Mode
+
+      w)   WORK=$OPTARG;;            # Working directory
+
+      \?)  print ${0##*/} "unknown option:" $OPTARG
+           print "USAGE: ${0##*/} [ -d dir -e -k -o dir -p name -s solver -v length -w dir ] "
+           exit 1;;
+   esac
+done
+shift OPTIND-1
+
+echo $DEFDIR
+
+DEF_PREFIX=${PREFIX}.kpp
+
+# Create or clean working directory
+
+MY_PWD=`pwd`
+mkdir -p $WORK
+rm -rf $WORK/*
+cd $WORK
+
+# kpp dependend, may be changed
+
+KPP_FILE_LIST="Initialize Integrator LinearAlgebra Jacobian Function Rates Util"
+
+
+KPP_SUBROUTINE_LIST="initialize"
+KPP_SUBROUTINE_LIST="$KPP_SUBROUTINE_LIST integrate fun"
+KPP_SUBROUTINE_LIST="$KPP_SUBROUTINE_LIST kppsolve kppdecomp wlamch wlamch_add"
+KPP_SUBROUTINE_LIST="$KPP_SUBROUTINE_LIST jac_sp k_arr "
+KPP_SUBROUTINE_LIST="$KPP_SUBROUTINE_LIST update_rconst arr2"
+KPP_SUBROUTINE_LIST="$KPP_SUBROUTINE_LIST initialize_kpp_ctrl error_output"
+
+# if [[ $MODE = "vector" && $KPP_SOLVER = "ROS2" ]]
+# then
+#   cp $BASE/templates/${KPP_SOLVER}_vec.f90 ${KPP_SOLVER}.f90    # get vector Solver 
+# else
+# #  KPP_SUBROUTINE_LIST="$KPP_SUBROUTINE_LIST FunTemplate JacTemplate Update_SUN "
+#   KPP_SUBROUTINE_LIST="$KPP_SUBROUTINE_LIST WCOPY WSCAL WAXPY"
+#   if [[ $MODE = "vector" ]]
+#   then
+#     cp $BASE/templates/${KPP_SOLVER}_vec.f90 ${KPP_SOLVER}.f90  # get vector Solver 
+#   else
+#     KPP_SUBROUTINE_LIST="$KPP_SUBROUTINE_LIST Rosenbrock  FunTemplate JacTemplate Update_SUN"
+#   fi
+# fi
+ if [[ $MODE = "vector" ]]
+ then
+   # get vector Solver 
+   cp $BASE/templates/${KPP_SOLVER}_vec.f90 ${KPP_SOLVER}.f90
+fi
+
+# Interface ignore list
+KPP_INTERFACE_IGNORE="waxpy wcopy"
+
+case $KPP_SOLVER in
+    ROS2) ;;
+
+    Rosenbrock)   
+      KPP_SUBROUTINE_LIST="$KPP_SUBROUTINE_LIST wcopy wscal waxpy"
+    if [[ $MODE != "vector" ]]
+    then
+      KPP_SUBROUTINE_LIST="$KPP_SUBROUTINE_LIST rosenbrock  funtemplate jactemplate"
+    fi;;
+
+    rosenbrock_mz)
+      KPP_SUBROUTINE_LIST="$KPP_SUBROUTINE_LIST WCOPY WSCAL WAXPY"
+      KPP_SUBROUTINE_LIST="$KPP_SUBROUTINE_LIST Rosenbrock  FunTemplate JacTemplate Update_SUN";;
+
+    rosenbrock)
+      KPP_SUBROUTINE_LIST="$KPP_SUBROUTINE_LIST WCOPY WSCAL WAXPY"
+      KPP_SUBROUTINE_LIST="$KPP_SUBROUTINE_LIST rosenbrock  funtemplate jactemplate";;
+
+    kpp_lsode)
+      KPP_SUBROUTINE_LIST="$KPP_SUBROUTINE_LIST WCOPY WSCAL WAXPY"
+      KPP_SUBROUTINE_LIST="$KPP_SUBROUTINE_LIST KppLsode DLSODE JAC_CHEM FUN_CHEM"
+      KPP_INTERFACE_IGNORE="$KPP_INTERFACE_IGNORE JAC_CHEM KppDecomp KppSolve";;
+
+    kpp_radau5)
+      KPP_SUBROUTINE_LIST="$KPP_SUBROUTINE_LIST WCOPY WSCAL WAXPY FUN_CHEM JAC_CHEM SET2ZERO"
+      KPP_SUBROUTINE_LIST="$KPP_SUBROUTINE_LIST RADAU5 Update_SUN"
+      KPP_SUBROUTINE_LIST="$KPP_SUBROUTINE_LIST KppSolveCmplx KppDecompCmplx";;
+
+    kpp_sdirk)
+       KPP_SUBROUTINE_LIST="$KPP_SUBROUTINE_LIST WCOPY WSCAL WAXPY"
+       KPP_SUBROUTINE_LIST="$KPP_SUBROUTINE_LIST SDIRK JAC_CHEM SET2ZERO FUN_CHEM"
+       KPP_INTERFACE_IGNORE="$KPP_INTERFACE_IGNORE Set2zero SET2ZERO FUN_CHEM";;
+
+    kpp_seulex)
+       KPP_SUBROUTINE_LIST="$KPP_SUBROUTINE_LIST WCOPY WSCAL WAXPY"
+       KPP_SUBROUTINE_LIST="$KPP_SUBROUTINE_LIST ATMSEULEX"
+       KPP_SUBROUTINE_LIST="$KPP_SUBROUTINE_LIST SEULEX_ErrorMsg SEULEX_Integrator FUN_CHEM JAC_CHEM SEUL"
+       KPP_INTERFACE_IGNORE="$KPP_INTERFACE_IGNORE SEULEX_Integrator SDIRK FUN_CHEM SEUL";;
+
+   \?)  print "SORRY ONLY ROSENBROCK METHODS WORK AT THE MOMENT:" $KPP_SOLVER
+        exit 1;;
+esac
+#mz-ak-20070509+
+
+KPP_INCLUDE_LIST="Parameters Global JacobianSP Monitor"
+
+#Get definition Files
+
+cp $DEFDIR/*.eqn         .
+cp $DEFDIR/*.spc         .
+cp $DEFDIR/${PREFIX}.kpp     .
+
+# Run kpp
+
+$KPP $DEF_PREFIX
+
+# Get templates for C++ program
+
+cp $BASE/templates/module_header* .           # Use fixed Module_header
+cp $BASE/templates/initialize_kpp_ctrl_template.f90 .  # CTRL kpp time stepping
+
+# file with subroutine list for c++ program create_kpp_module
+
+for i in $KPP_FILE_LIST
+do
+  echo ${PREFIX}_${i} >> file_list
+done
+echo initialize_kpp_ctrl_template >> file_list
+
+# file with subroutine list for c++ program create_kpp_module
+
+for i in $KPP_SUBROUTINE_LIST
+do
+  echo $i >> subroutine_list
+done
+
+# file with include list for c++ program create_kpp_module
+
+for i in $KPP_INCLUDE_LIST
+do
+  echo ${PREFIX}_${i} >> include_list
+done
+
+touch interface_ignore_list
+for i in $KPP_INTERFACE_IGNORE
+do
+  echo $i >> interface_ignore_list
+done
+
+$BASE/bin/kpp4palm.exe $PREFIX $MODE $VLEN $DE_INDEX $DE_INDEX_FAST
+
+
+if [[ -e $OUTDIR/${OUTFILE}.f90 ]] 
+then 
+ mv $OUTDIR/${OUTFILE}.f90 $OUTDIR/${OUTFILE}.f90.sav
+fi
+cp -p kk_kpp.f90    $OUTDIR/${OUTFILE}.f90
+#cp -p kk_kpp.f90    $MY_PWD/../SOURCE/${OUTFILE}.f90
+
+echo " "
+echo "Write kpp module -- > " $OUTDIR/${OUTFILE}.f90
+
+if [[ $KEEP = "NO" ]]
+then
+  cd  $MY_PWD
+  rm -rf $WORK
+fi
+exit
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/integr/kpp_lsode.kpp
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/integr/kpp_lsode.kpp	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/integr/kpp_lsode.kpp	(revision 2696)
@@ -0,0 +1,1 @@
+#INTEGRATOR kpp_lsode
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/integr/kpp_radau5.kpp
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/integr/kpp_radau5.kpp	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/integr/kpp_radau5.kpp	(revision 2696)
@@ -0,0 +1,1 @@
+#INTEGRATOR kpp_radau5
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/integr/kpp_sdirk.kpp
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/integr/kpp_sdirk.kpp	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/integr/kpp_sdirk.kpp	(revision 2696)
@@ -0,0 +1,1 @@
+#INTEGRATOR kpp_sdirk
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/integr/kpp_seulex.kpp
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/integr/kpp_seulex.kpp	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/integr/kpp_seulex.kpp	(revision 2696)
@@ -0,0 +1,1 @@
+#INTEGRATOR kpp_seulex
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/integr/rosenbrock.kpp
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/integr/rosenbrock.kpp	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/integr/rosenbrock.kpp	(revision 2696)
@@ -0,0 +1,1 @@
+#INTEGRATOR rosenbrock
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/integr/rosenbrock_mz.kpp
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/integr/rosenbrock_mz.kpp	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/integr/rosenbrock_mz.kpp	(revision 2696)
@@ -0,0 +1,1 @@
+#INTEGRATOR rosenbrock_mz
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/integr/rosenbrock_posdef.kpp
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/integr/rosenbrock_posdef.kpp	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/integr/rosenbrock_posdef.kpp	(revision 2696)
@@ -0,0 +1,1 @@
+#INTEGRATOR rosenbrock_posdef
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/integr/rosenbrock_posdef_h211b_qssa.kpp
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/integr/rosenbrock_posdef_h211b_qssa.kpp	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/integr/rosenbrock_posdef_h211b_qssa.kpp	(revision 2696)
@@ -0,0 +1,1 @@
+#INTEGRATOR rosenbrock_posdef_h211b_qssa
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/integr/rosenbrock_vec.kpp
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/integr/rosenbrock_vec.kpp	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/integr/rosenbrock_vec.kpp	(revision 2696)
@@ -0,0 +1,5 @@
+// NOTE: This is the vectorised version of the routine in rosenbrock_mz
+//       and can only be used with KP4; the files rosenbrock_mz.def and
+//       rosenbrock_mz.f90 from the kpp-directory are required.
+//       SUBROUTINE Rosenbrock will be exchanged by kp4.
+#INTEGRATOR rosenbrock_mz
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/src/Makefile
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/src/Makefile	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/src/Makefile	(revision 2696)
@@ -0,0 +1,24 @@
+
+.SUFFIXES: .o .C .x
+
+OBJ=create_kpp_module.o expand_decomp.o fortran_file.o fortran_file_vec.o program_line.o utils.o
+PROG=kpp4palm.exe
+
+.C.o:
+	$(CXX) -c $<
+
+$(PROG): main.o $(OBJ)
+	$(CXX) -o $(PROG) main.o $(OBJ)
+
+
+utils.o: utils.h utils.C
+program_line.o:  utils.o program_line.h program_line.C
+fortran_file.o: program_line.o fortran_file.h utils.h fortran_file.C
+fortran_file_vec.o: program_line.o fortran_file.h utils.h fortran_file_vec.C
+expand_decomp.o: fortran_file.o expand_decomp.h expand_decomp.C
+create_kpp_module.o: expand_decomp.o create_kpp_module.h create_kpp_module.C
+main.o: create_kpp_module.o main.C
+
+
+clean:
+	rm -f *.o $(PROG)
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/src/create_kpp_module.C
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/src/create_kpp_module.C	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/src/create_kpp_module.C	(revision 2696)
@@ -0,0 +1,639 @@
+
+// ############################################################################
+//
+//     create_kpp_module 
+//
+//     create scalar code from .f90 sources created by KPP
+//
+//     COPYRIGHT Klaus Ketelsen and MPI-CH   April 2007
+//
+// ############################################################################
+//
+//Current revisions:
+//------------------
+// 
+//
+//Former revisions:
+//-----------------
+//$Id: create_kpp_module.C 2470 2017-09-14 13:56:42Z forkel $
+//
+// 
+//added phot
+//change of some output to lowercase with uppercase Fortran
+//
+// Nov 2016: Intial version (Klaus Ketelsen)
+//
+
+#include <stdio.h>
+//  mz_rs_20090111+
+// stdlib is necessary to define getenv:
+#include <stdlib.h>
+//  mz_rs_20090111-
+
+#include "create_kpp_module.h"
+#include "utils.h"
+
+void create_kpp_module::do_work (string s) {
+   vector<fortran_file>::iterator  it;
+   vector<string>::iterator        ic;
+   vector<Vvar>::iterator          iv;
+
+   expand_decomp                   exp_de;
+
+   prefix = s;
+   module_name = prefix;
+
+   cout << "Create " << module_name << " from kpp Fortran sources" <<endl;
+   cout << "Vector mode " << kpp_switches.is_vector() <<endl;
+
+   create_fortran_files_and_read();
+   cout << "## after create_fortran_files_and_read " <<endl;
+
+// Generate first module lines 
+
+   string first_line="MODULE " + module_name;
+   mz_kpp.add_line(first_line);
+   mz_kpp.add_line(" ");
+   mz_kpp.add_line("#if defined( __chem )");
+   mz_kpp.add_line(" ");
+
+//    string e5_line = first_line +"_e5";
+//    e5_kpp.add_line(e5_line);
+//    e5_line = "  USE             " + module_name;
+//    e5_kpp.add_line(e5_line);
+//    e5_kpp.add_line(" ");
+
+// edit include files
+
+   for(it=kpp_includes.begin();it!=kpp_includes.end();it++) {
+     it->edit_inc(header_variables);
+
+//   Create variable Species list and vector variable list
+
+     if(it->get_name() == module_name + "_Parameters") {
+       it->create_species_list(species_list);
+     }
+     if(it->get_name() == module_name + "_Global") {
+       it->vector_variable_list(Vvar_list);
+     }
+   }
+
+// Prepare expansion of decomposition subroutine
+
+   if(kpp_switches.de_indexing () > 0 ) {
+     exp_de.create_sparse_info (kpp_includes, module_name);
+   }
+
+// edit FORTRAN files
+
+   for(it=kpp_files.begin();it!=kpp_files.end();it++) {
+     it->edit_fortran ();
+   }
+   cout << "## after edit FORTRAN files            " <<endl;
+
+// Generate a list of single subroutines from kpp-files
+// kpp files are modules containing several subroutines
+
+   copy_files_to_subroutines ();
+
+// All header_variables to include list
+
+   kpp_includes.push_back(header_variables);
+
+// Create decomposition subroutine
+   if(kpp_switches.de_indexing () > 0 ) {
+     exp_de.create_routine (kpp_subroutines);
+   }
+
+
+   if(kpp_switches.is_vector()) {
+
+//   Change header section
+     for(it=kpp_includes.begin();it!=kpp_includes.end();it++) {
+       it->edit_inc_vec(global_variable_list);
+     }
+
+//   Change global variables to vector
+     
+     for(it=kpp_subroutines.begin();it!=kpp_subroutines.end();it++) {
+       it->global_variables2vector (global_variable_list);
+     }
+
+//   Edit individual subroutines 
+
+     for(it=kpp_subroutines.begin();it!=kpp_subroutines.end();it++) {
+       if(it->get_name() == "KppDecomp") {
+         it->edit_KppDecomp();
+       }
+       if(it->get_name() == "KppSolve") {
+         it->edit_KppSolve();
+       }
+       if(it->get_name() == "Jac_SP" ) {
+         it->edit_Jac_SP();
+       }
+       if(it->get_name() == "Fun" ) {
+         it->edit_Fun();
+       }
+     }
+   cout << "## after Edit individual subroutines    " <<endl;
+
+   }
+
+// Update_RCONST has to be changed also in scalar mode
+
+   for(it=kpp_subroutines.begin();it!=kpp_subroutines.end();it++) {
+     if(it->get_name() == "update_rconst") {
+       it->edit_Update_RCONST(Vvar_list);
+     }
+   }
+
+// Add Solver template to subroutine list
+   if(kpp_switches.is_vector()) {
+     add_solver_to_subroutine_list ();
+   }
+
+// The module header will be taken from ../templates/module_header.
+// Please edit if header has to be changed.
+
+   generate_module_header();
+
+// Create kpp_integrate subroutine (chem_gasphase_integrate) for skalar and vector mode
+
+   create_kpp_integrate();
+// Copy include files
+
+   for(it=kpp_includes.begin();it!=kpp_includes.end();it++) {
+     it->copy_to_MZ_KPP(mz_kpp);
+   }
+
+   mz_kpp.add_line(" ");
+   mz_kpp.add_line("! Interface Block ");
+   mz_kpp.add_line(" ");
+   for(it=kpp_subroutines.begin();it!=kpp_subroutines.end();it++) {
+     string          buf;
+
+     string prefix = "  ";
+     for(ic=interface_ignore.begin();ic!=interface_ignore.end();ic++) {
+       if(it->get_name() == *ic) {
+         prefix = "!interface not working  ";
+         break;
+       }
+     }
+
+     buf = prefix + "INTERFACE            " + it->get_name() ;
+     mz_kpp.add_line(buf);
+     buf = prefix + "  MODULE PROCEDURE   " + it->get_name();
+     mz_kpp.add_line(buf);
+     buf = prefix + "END INTERFACE        " + it->get_name();
+     mz_kpp.add_line(buf);
+     mz_kpp.add_line(" ");
+   }
+   for(iv=Vvar_list.begin();iv!=Vvar_list.end();iv++) {
+     string          buf;
+
+     string sub_name = "fill_" + iv->name;
+     buf = "  INTERFACE            " + sub_name;
+     mz_kpp.add_line(buf);
+     buf = "    MODULE PROCEDURE   " + sub_name;
+     mz_kpp.add_line(buf);
+     buf = "  END INTERFACE        " + sub_name;
+     mz_kpp.add_line(buf);
+     buf = "  PUBLIC               " + sub_name;
+     mz_kpp.add_line(buf);
+     mz_kpp.add_line(" ");
+   }
+
+   mz_kpp.add_line(" ");
+
+   for(iv=Vvar_list.begin();iv!=Vvar_list.end();iv++) {
+     create_fill_routine(kpp_subroutines, *iv);
+   }
+
+// Copy FORTRAN subroutines to mz_kpp
+
+   mz_kpp.add_line(" CONTAINS");
+   
+   for(it=kpp_subroutines.begin();it!=kpp_subroutines.end();it++) {
+     mz_kpp.add_line(" ");
+     it->copy_to_MZ_KPP(mz_kpp);
+   }
+
+// Finish module
+
+   mz_kpp.add_line("#endif");
+   string last_line="END MODULE " + module_name;
+   mz_kpp.add_line("");
+   mz_kpp.add_line(last_line);
+
+// Handle e5 module
+
+//    for(it=e5_subroutines.begin();it!=e5_subroutines.end();it++) {
+//      e5_kpp.add_line(" ");
+//      it->copy_to_MZ_KPP(e5_kpp);
+//    }
+
+//    last_line = last_line + "_e5";
+//    e5_kpp.add_line(" ");
+//    e5_kpp.add_line(last_line);
+
+// Write the complete module to file: mz_kpp.f
+
+   write_module_file();
+
+   return;
+}
+
+void create_kpp_module::create_fortran_files_and_read() {
+
+   string                          name;
+   ifstream                        in,in_c,in_b,in_i;
+   fortran_file                    f_file;
+   vector<fortran_file>::iterator  it;
+
+// Open file with list of FORTRAN routines
+
+   in.open("file_list");
+   if( !in ) {
+      cout << "cannot open " << endl; my_abort("file_list");
+   }
+   
+// Create kpp_fortran routines
+   while ( 1 ) {
+     in >> name;
+     if( in.eof() ) break;
+     if( in.bad() ) my_abort("ERROR_READ_1");
+     f_file.set_name(name);
+     kpp_files.push_back(f_file);
+   }
+   in.close();
+
+// Read FORTRAN code
+
+   for(it=kpp_files.begin();it!=kpp_files.end();it++) {
+     it->read();
+   }
+
+// Open file with list of include files
+
+   in_c.open("include_list");
+   if( !in_c ) {
+      cout << "cannot open " << endl; my_abort("include_list");
+   }
+
+// Create kpp_includes vector
+   while ( 1 ) {
+     in_c >> name;
+     if( in_c.eof() ) break;
+     if( in_c.bad() ) my_abort("ERROR_READ_3");
+     f_file.set_name(name);
+     kpp_includes.push_back(f_file);
+   }
+   in_c.close();
+
+// Read include files
+
+   for(it=kpp_includes.begin();it!=kpp_includes.end();it++) {
+     it->read();
+   }
+
+// Read Ignore list
+
+   in_i.open("interface_ignore_list");
+   if( !in_i ) {
+      cout << "cannot open " << endl; my_abort("include_list");
+   }
+
+// Create kpp_includes vector
+   while ( 1 ) {
+     in_i >> name;
+     if( in_i.eof() ) break;
+     if( in_i.bad() ) my_abort("ERROR_READ_4");
+     interface_ignore.push_back(name);
+   }
+   in_c.close();
+
+}
+
+void create_kpp_module::copy_files_to_subroutines () {
+   string                          name;
+   ifstream                        in;
+   fortran_file                    s_file;
+   vector<fortran_file>::iterator  it;
+
+// Open file with list of FORTRAN routines
+
+   in.open("subroutine_list");
+   if( !in ) {
+      cout << "cannot open " << endl; my_abort("subroutine_list");
+   }
+
+// Create vector kpp_subroutines
+
+   while ( 1 ) {
+     in >> name;
+     if( in.eof() ) break;
+     if( in.bad() ) my_abort("ERROR_READ_S1");
+     s_file.set_name(name);
+     kpp_subroutines.push_back(s_file);
+   }
+   in.close();
+
+   header_variables.add_line(" ");
+   header_variables.add_line("!  variable definations from  individual module headers ");
+   header_variables.add_line(" ");
+
+//  Loop over all FORTRAN Files
+
+   for(it=kpp_files.begin();it!=kpp_files.end();it++) {
+     it->copy_to_subroutine_vector(kpp_subroutines, header_variables);
+   }
+}
+
+void create_kpp_module::add_solver_to_subroutine_list () {
+   fortran_file                    s_file;
+
+   string solver_name = getenv("KPP_SOLVER");
+   cout << "KPP_SOLVER " <<solver_name <<endl;
+   
+   s_file.set_name(solver_name);
+   s_file.read();
+   kpp_subroutines.push_back(s_file);
+
+   return;
+}
+
+void create_kpp_module::generate_module_header() {
+
+   string                          buf;
+   ifstream                        in;
+   ifstream                        in_e5;
+   program_line                    line;
+   vector<fortran_file>::iterator  it;
+   char                            distr[2];
+   string                          diline;
+
+// Read Modul Header from file $MZ_KPP_HOME/templates/module_header
+
+   in.open("module_header");
+   if( !in ) {
+      cout << "cannot open " << endl; my_abort("module_header");
+   }
+
+   while ( 1 ) {
+     getline (in, buf);
+     if( in.eof() ) break;
+     if( in.bad() ) my_abort("ERROR_READ_4");
+     line.set_line(buf);
+     mz_kpp.add_line(line); 
+   }
+   mz_kpp.add_line("                                                                 "); 
+   mz_kpp.add_line("! Variables used for vector mode                                 "); 
+   mz_kpp.add_line("                                                                 "); 
+   if(kpp_switches.is_vector()) {
+       mz_kpp.add_line("  LOGICAL,  PARAMETER          :: l_vector = .TRUE.             ");
+   } else {
+       mz_kpp.add_line("  LOGICAL,  PARAMETER          :: l_vector = .FALSE.            ");
+   }
+//  mz_pj_20070531+
+   sprintf(distr,"%i",kpp_switches.de_indexing());
+   diline = distr ;
+   mz_kpp.add_line("  INTEGER,  PARAMETER          :: i_lu_di = " + diline );
+//  mz_pj_20070531-
+
+   mz_kpp.add_line("  INTEGER,  PARAMETER          :: vl_dim = " 
+                   + kpp_switches.get_vector_length() ); 
+   mz_kpp.add_line("  INTEGER                     :: vl                              "); 
+   mz_kpp.add_line("                                                                 "); 
+   mz_kpp.add_line("  INTEGER                     :: vl_glo                          "); 
+   mz_kpp.add_line("  INTEGER                     :: is,ie                           "); 
+   mz_kpp.add_line("                                                                 "); 
+   mz_kpp.add_line("  INTEGER,  DIMENSION(vl_dim)  :: kacc, krej                      "); 
+   mz_kpp.add_line("  INTEGER,  DIMENSION(vl_dim)  :: ierrv                           "); 
+   mz_kpp.add_line("  LOGICAL                     :: data_loaded = .false.             "); 
+   
+   in.close();
+
+//    in_e5.open("module_header_e5");
+//    if( !in_e5 ) {
+//       cout << "cannot open " << endl; my_abort("module_header_e5");
+//    }
+
+//    while ( 1 ) {
+//      getline (in_e5, buf);
+//      if( in_e5.eof() ) break;
+//      if( in_e5.bad() ) my_abort("ERROR_READ_4");
+//      line.set_line(buf);
+//      e5_kpp.add_line(line);
+//    }
+//    in_e5.close();
+
+   return;
+}
+
+void create_kpp_module::write_module_file() {
+   ofstream                    out;
+   ofstream                    out_e5;
+
+   string out_file  = "kk_kpp.f90";
+   out.open(out_file.c_str(), ios::out);
+   if( !out ) {
+      cout << "cannot open " << endl; my_abort(out_file);
+   }
+
+   mz_kpp.write_file (out);
+
+   out.close();
+   
+//    out_file  = "kk_mecca_kpp_e5.f90";
+//    out_e5.open(out_file.c_str(), ios::out);
+//    if( !out_e5 ) {
+//       cout << "cannot open " << endl; my_abort(out_file);
+//    }
+
+//    e5_kpp.write_file (out_e5);
+
+//    out_e5.close();
+
+   return;
+}
+
+void create_kpp_module::create_kpp_integrate() {
+   fortran_file          kppi;
+   vector<Vvar>::iterator               iv;
+   string                               line;
+
+   kppi.set_name("chem_gasphase_integrate");
+
+   kppi.add_line("SUBROUTINE chem_gasphase_integrate (time_step_len, conc, tempk, photo, ierrf, xnacc, xnrej, istatus, l_debug, pe )  ");
+   kppi.add_line("                                                                    ");
+   kppi.add_line("  IMPLICIT NONE                                                     ");
+   kppi.add_line("                                                                    ");
+
+   kppi.add_line("  REAL(dp),  INTENT(IN)                    :: time_step_len           ");
+   kppi.add_line("  REAL(dp),  DIMENSION(:,:),  INTENT(INOUT) :: conc                    ");
+   kppi.add_line("  REAL(dp),  DIMENSION(:,:),  INTENT(INOUT) :: photo                   ");
+   kppi.add_line("  REAL(dp),  DIMENSION(:),  INTENT(IN)      :: tempk                   ");
+   kppi.add_line("  INTEGER,  INTENT(OUT),  OPTIONAL          :: ierrf(:)                ");
+   kppi.add_line("  INTEGER,  INTENT(OUT),  OPTIONAL          :: xnacc(:)                ");
+   kppi.add_line("  INTEGER,  INTENT(OUT),  OPTIONAL          :: xnrej(:)                ");
+   kppi.add_line("  INTEGER,  INTENT(INOUT),  OPTIONAL        :: istatus(:)              ");
+   kppi.add_line("  INTEGER,  INTENT(IN),  OPTIONAL           :: pe                      ");
+   kppi.add_line("  LOGICAL,  INTENT(IN),  OPTIONAL           :: l_debug                 ");
+   kppi.add_line("                                                                    ");
+   kppi.add_line("  INTEGER                                 :: k   ! loop variable     ");
+   kppi.add_line("  REAL(dp)                                :: dt                      ");
+   kppi.add_line("  INTEGER,  DIMENSION(20)                  :: istatus_u               ");
+   kppi.add_line("  INTEGER                                 :: ierr_u                  ");
+   kppi.add_line("                                                                    ");
+   kppi.add_line("                                                                    ");
+   kppi.add_line("  if (present (istatus) )  istatus = 0                              ");
+   kppi.add_line("                                                                    ");
+// kppi.add_line("  vk_glo = size(tempk,1)                                            ");
+// kppi.add_line("                                                                    ");
+
+   kppi.add_line("  DO k=1,vl_glo,vl_dim                                              ");
+   kppi.add_line("    is = k                                                          ");
+   kppi.add_line("    ie = min(k+vl_dim-1,vl_glo)                                     ");
+   kppi.add_line("    vl = ie-is+1                                                    ");
+
+   kppi.add_line("                                                                    ");
+   if(kpp_switches.is_vector()) {
+     kppi.add_line("    c(1:vl,:) = conc(is:ie,:)                                     ");
+   } else {
+     kppi.add_line("    c(:) = conc(is,:)                                             ");
+   }
+   kppi.add_line("                                                                    ");
+   if(kpp_switches.is_vector()) {
+     kppi.add_line("    temp(1:vl) = tempk(is:ie)                                     ");
+   } else {
+     kppi.add_line("    temp = tempk(is)                                              ");
+   }
+   kppi.add_line("                                                                    ");
+   if(kpp_switches.is_vector()) {
+     kppi.add_line("    phot(1:vl,:) = photo(is:ie,:)                                     ");
+   } else {
+     kppi.add_line("    phot(:) = photo(is,:)                                             ");
+   }
+   kppi.add_line("                                                                    ");
+   kppi.add_line("    CALL update_rconst                                              ");
+   kppi.add_line("                                                                    ");
+   kppi.add_line("    dt = time_step_len                                              ");
+   kppi.add_line("                                                                    ");
+   kppi.add_line("    ! integrate from t=0 to t=dt                                    ");
+   kppi.add_line("    CALL integrate(0._dp, dt, icntrl, rcntrl, istatus_u = istatus_u, ierr_u=ierr_u)");
+   kppi.add_line("                                                                    ");
+   kppi.add_line("                                                                    ");
+   if(kpp_switches.is_vector()) {
+     kppi.add_line("    conc(is:ie,:) = c(1:VL,:)                                     ");
+   } else {
+     kppi.add_line("    IF (PRESENT(l_debug) .AND. PRESENT(pe)) THEN                       ");
+     kppi.add_line("       IF (l_debug) CALL error_output(conc(is,:),ierr_u, pe)           ");
+     kppi.add_line("    ENDIF                                                              ");
+     kppi.add_line("    conc(is,:) = c(:)                                                  ");
+   }
+
+   kppi.add_line("                                                                    ");
+   kppi.add_line("    ! Return Diagnostic Information                                 ");
+   kppi.add_line("                                                                    ");
+   if(kpp_switches.is_vector()) {
+     kppi.add_line("    if(PRESENT(ierrf))    ierrf(is:ie) = ierrv(1:vl)              ");
+     kppi.add_line("    if(PRESENT(xnacc))    xnacc(is:ie) = kacc(1:vl)               ");
+     kppi.add_line("    if(PRESENT(xnrej))    xnrej(is:ie) = krej(1:vl)               ");
+   } else {
+     kppi.add_line("    if(PRESENT(ierrf))    ierrf(is) = ierr_u                      ");
+     kppi.add_line("    if(PRESENT(xnacc))    xnacc(is) = istatus_u(4)                ");
+     kppi.add_line("    if(PRESENT(xnrej))    xnrej(is) = istatus_u(5)                ");
+   }
+   kppi.add_line("                                                                    ");
+   kppi.add_line("    if (PRESENT (istatus) )  then                                   ");
+   if(kpp_switches.is_vector()) {
+     kppi.add_line("      istatus(4) =   istatus(4) + sum(kacc(1:vl))                  ");
+     kppi.add_line("      istatus(5) =   istatus(5) + sum(krej(1:vl))                  ");
+     kppi.add_line("      istatus(3) =   istatus(4) + istatus(5)                       ");
+     kppi.add_line("      istatus(6) =   istatus(6) + istatus_u(6)                     ");
+     kppi.add_line("      istatus(7) =   istatus(7) + istatus_u(7)                     ");
+   } else {
+     kppi.add_line("      istatus(1:8) = istatus(1:8) + istatus_u(1:8)                 ");
+   }
+   kppi.add_line("    ENDIF                                                          ");
+   kppi.add_line("                                                                    ");
+   kppi.add_line("  END DO                                                            ");
+   kppi.add_line(" ");
+
+   kppi.add_line("                                                                    ");
+   kppi.add_line("! Deallocate input arrays                                           ");
+   kppi.add_line("                                                                    ");
+   for(iv=Vvar_list.begin();iv!=Vvar_list.end();iv++) {
+     kppi.add_line("  if (ALLOCATED("+ iv->name +"))   DEALLOCATE("+ iv->name +" )    ");
+   }
+
+   kppi.add_line("                                                                    ");
+   kppi.add_line("  data_loaded = .false.                                             ");
+   kppi.add_line("                                                                    ");
+   kppi.add_line("  RETURN                                                            ");
+   kppi.add_line("END SUBROUTINE chem_gasphase_integrate                                        ");
+
+//   e5_subroutines.push_back(kppi);
+   kpp_subroutines.push_back(kppi);
+
+   return;
+}
+
+void create_kpp_module::create_fill_routine(vector<fortran_file> &fi_list, Vvar & var) {
+   fortran_file                         fi;
+   vector<string>::iterator             is;
+   string                               line;
+
+   cout << "Generate fill subroutine for " << var.name << endl;
+
+   fi.set_name(var.name);
+   line = "  SUBROUTINE fill_" + var.name;
+   fi.add_line(line + "(status, array) ");
+     fi.add_line(" ");
+     fi.add_line("    INTEGER,  INTENT(OUT)               :: status ");
+   if(var.nr_dim() == 0) {
+     fi.add_line("    REAL(dp),  INTENT(IN),  DIMENSION(:) :: array ");
+     fi.add_line(" ");
+     fi.add_line("    status = 0");
+     fi.add_line("    IF (.not. ALLOCATED("+var.name+")) & ");
+     fi.add_line("       ALLOCATE("+var.name+"(size(array))) ");
+   } else if(var.nr_dim() == 1) {
+     fi.add_line("    REAL (dp), INTENT(IN), DIMENSION(:,:) :: array ");
+     fi.add_line(" ");
+     fi.add_line("    status = 0 ");
+     fi.add_line("    if (.not. ALLOCATED("+var.name+")) & ");
+     fi.add_line("        ALLOCATE("+var.name+"(size(array,1),"+var.dim_var[0]+")) ");
+   } else if(var.nr_dim() == 2) {
+     fi.add_line(" ");
+     fi.add_line("    REAL (dp), INTENT(IN), DIMENSION(:,:,:) :: array ");
+     fi.add_line(" ");
+     fi.add_line("    status = 0 ");
+     fi.add_line("    if (.not. ALLOCATED("+var.name+")) & ");
+     fi.add_line("        ALLOCATE("+var.name+"(size(array,1),"+var.dim_var[0]+var.dim_var[1]+")) ");
+   } else {
+     fi.add_line("    REAL (dp), INTENT(IN), DIMENSION(:,:,:,:) :: array ");
+     fi.add_line(" ");
+     fi.add_line("    status = 0 ");
+     fi.add_line("    IF (.not. ALLOCATED("+var.name+")) & ");
+     fi.add_line("        ALLOCATE("+var.name+"(size(array,1),"+var.dim_var[0]
+                               +var.dim_var[1]+var.dim_var[3]+")) ");
+   }
+
+   fi.add_line(" ");
+   fi.add_line("    IF (data_loaded .AND. (vl_glo /= size(array,1)) )  THEN ");
+   fi.add_line("       status = 1 ");
+   fi.add_line("       RETURN ");
+   fi.add_line("    END IF ");
+   fi.add_line(" ");
+   fi.add_line("    vl_glo = size(array,1) ");
+   fi.add_line("    "+var.name+ " = array ");
+   fi.add_line("    data_loaded = .TRUE. ");
+   fi.add_line(" ");
+   fi.add_line("    RETURN");
+   fi.add_line(" ");
+   fi.add_line("  END " + line);
+
+   fi_list.push_back(fi);
+
+   return;
+}
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/src/create_kpp_module.h
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/src/create_kpp_module.h	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/src/create_kpp_module.h	(revision 2696)
@@ -0,0 +1,64 @@
+#ifndef mecca
+#define mecca 1
+
+// ############################################################################
+//
+//     create_mz_kpp_module 
+//
+//     create scalar code from .f90 sources created by KPP to be used in MESSy
+//
+//     COPYRIGHT Klaus Ketelsen and MPI-CH   April 2007
+//
+// ############################################################################
+
+#include <iostream>
+#include <fstream>
+
+#include <string>
+#include <list>
+#include <vector>
+
+#include "fortran_file.h"
+#include "expand_decomp.h"
+
+// Class to create module which contains code generated by kpp.
+
+class create_kpp_module {
+
+  vector <fortran_file>         kpp_files;
+  vector <fortran_file>         kpp_subroutines;
+  vector <fortran_file>         kpp_includes;
+  vector <fortran_file>         e5_subroutines;
+  fortran_file                  mz_kpp;
+  fortran_file                  e5_kpp;
+  fortran_file                  header_variables;
+  string                        prefix;
+  string                        module_name;
+  vector<string>                global_variable_list;
+  vector<string>                species_list;
+  vector<string>                interface_ignore;
+  vector<Vvar>                  Vvar_list;
+
+
+  void create_fortran_files_and_read();
+  void copy_files_to_subroutines();
+  void add_solver_to_subroutine_list();
+  void generate_module_header();
+  void write_module_file();
+
+  void create_kpp_integrate();
+  void create_fill_routine(vector<fortran_file> &e5_list, Vvar &var );
+ public:
+
+  void do_work (string s) ;
+
+  create_kpp_module () {
+    global_variable_list.push_back("C");
+    global_variable_list.push_back("VAR");
+    global_variable_list.push_back("FIX");
+    global_variable_list.push_back("A");
+    global_variable_list.push_back("RCONST");
+  }
+};
+
+#endif
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/src/expand_decomp.C
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/src/expand_decomp.C	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/src/expand_decomp.C	(revision 2696)
@@ -0,0 +1,371 @@
+
+// ############################################################################
+//
+//     create_mz_kpp_module                       
+//
+//     create scalar code from .f90 sources created by KPP to be used in MESSy
+//
+//     COPYRIGHT Klaus Ketelsen and MPI-CH   April 2007
+//
+// ############################################################################
+
+#include <fstream>
+#include <stdio.h>
+
+ 
+#include "expand_decomp.h"
+#include "utils.h"
+
+void expand_decomp::create_sparse_info (vector<fortran_file> & include_list, string module_name) {
+  vector<fortran_file>::iterator  it;
+  vector<program_line>::iterator  ip;
+  bool                            done;
+  int                             number;
+  
+// Generate a dummy vector entry [0] to be compatable with FORTRAN indexing
+  number = 0;
+  LU_IROW.push_back(number); 
+  LU_ICOL.push_back(number); 
+  LU_CROW.push_back(number); 
+  LU_DIAG.push_back(number); 
+  
+  cout <<endl;
+  cout << "Sparse matrix: " ;
+
+// Get NVAR
+
+  for(it=include_list.begin();it!=include_list.end();it++) {
+    if(it->get_name() == module_name + "_Parameters") {
+      for (ip=it->pline.begin(); ip != it->pline.end(); ip++) {
+        if(ip->get_token(0).substr(0,7) == "INTEGER" && ip->get_token(3) == "NVAR") {
+          sscanf (ip->get_token(5).c_str(),"%i",&NVAR);
+          cout << "      NVAR = "<< NVAR <<endl;
+        }
+      }
+    }
+  }
+ 
+// Get LU_IROW
+
+  for(it=include_list.begin();it!=include_list.end();it++) {
+    if(it->get_name() == module_name + "_JacobianSP") {
+      for (ip=it->pline.begin(); ip != it->pline.end(); ip++) {
+        if(ip->get_token(0).substr(0,7) == "INTEGER" && 
+                                   ip->get_token(7).substr(0,7) == "LU_IROW") {
+          done = false;
+          while(1) {
+            ip++;
+            for(int i=0; i<ip->get_token_size (); i++) {
+              if(ip->get_token(i).substr(0,1) == "/") {
+                done = true;
+                break;
+              } else if(ip->get_token(i).substr(0,1) != "&")  {
+		  if ( sscanf (ip->get_token(i).c_str(),"%i",&number) == 1)
+		      LU_IROW.push_back(number); 
+              }
+            }
+            if(done)   break;
+          }
+        }
+      }
+    }
+  }
+  cout << "extracted LU_IROW:   " << LU_IROW.size()-1 << " values " <<endl;
+
+// Get LU_ICOL
+
+  for(it=include_list.begin();it!=include_list.end();it++) {
+    if(it->get_name() == module_name + "_JacobianSP") {
+      for (ip=it->pline.begin(); ip != it->pline.end(); ip++) {
+        if(ip->get_token(0).substr(0,7) == "INTEGER" &&
+                                   ip->get_token(7).substr(0,7) == "LU_ICOL") {
+          done = false;
+          while(1) {
+            ip++;
+            for(int i=0; i<ip->get_token_size (); i++) {
+              if(ip->get_token(i).substr(0,1) == "/") {
+                done = true;
+                break;
+              } else if(ip->get_token(i).substr(0,1) != "&")  {
+		  if (sscanf (ip->get_token(i).c_str(),"%i",&number) == 1)
+		      LU_ICOL.push_back(number);
+              }
+            }
+            if(done)   break;
+          }
+        }
+      }
+    }
+  }
+  cout << "extracted LU_ICOL:   " << LU_ICOL.size()-1 << " values " <<endl;
+
+// Get LU_CROW
+// In case of large system, for LU_CROW and LU_DIAG might be the same logic
+// necessary like LU_IROW and LU_ICOL
+
+  for(it=include_list.begin();it!=include_list.end();it++) {
+    if(it->get_name() == module_name + "_JacobianSP") {
+      for (ip=it->pline.begin(); ip != it->pline.end(); ip++) {
+        if(ip->get_token(0).substr(0,7) == "INTEGER" &&
+                                   ip->get_token(7).substr(0,7) == "LU_CROW") {
+          done = false;
+          while(1) {
+            ip++;
+            for(int i=0; i<ip->get_token_size (); i++) {
+              if(ip->get_token(i).substr(0,1) == "/") {
+                done = true;
+                break;
+              } else if(ip->get_token(i).substr(0,1) != "&")  {
+		  if (sscanf (ip->get_token(i).c_str(),"%i",&number) == 1)
+		      LU_CROW.push_back(number);
+              }
+            }
+            if(done)   break;
+          }
+        }
+      }
+    }
+  }
+  cout << "extracted LU_CROW:   " << LU_CROW.size()-1 << " values " <<endl;
+
+// Get LU_DIAG
+
+  for(it=include_list.begin();it!=include_list.end();it++) {
+    if(it->get_name() == module_name + "_JacobianSP") {
+      for (ip=it->pline.begin(); ip != it->pline.end(); ip++) {
+        if(ip->get_token(0).substr(0,7) == "INTEGER" &&
+                                   ip->get_token(7).substr(0,7) == "LU_DIAG") {
+          done = false;
+          while(1) {
+            ip++;
+            for(int i=0; i<ip->get_token_size (); i++) {
+              if(ip->get_token(i).substr(0,1) == "/") {
+                done = true;
+                break;
+              } else if(ip->get_token(i).substr(0,1) != "&")  {
+		  if (sscanf (ip->get_token(i).c_str(),"%i",&number) == 1)
+		      LU_DIAG.push_back(number);
+              }
+            }
+            if(done)   break;
+          }
+        }
+      }
+    }
+  }
+  cout << "extracted LU_DIAG:   " << LU_DIAG.size()-1 << " values " <<endl;
+
+  cout <<endl;
+
+  return;
+}
+
+void expand_decomp::create_routine (vector<fortran_file> & routine_list) {
+
+  vector<fortran_file>::iterator  it;
+  fortran_file                    de;
+  int                             k,kk,j,jj,i,ii;
+  string                          line;
+  char                            cline[80];
+
+// Delete original KppDecomp from subroutine list
+
+  for(it=routine_list.begin();it!=routine_list.end();it++) {
+    if(it->get_name() == "KppDecomp") {
+      routine_list.erase(it);
+    }
+  }
+
+  de.set_name("KppDecomp");
+
+  de.add_line ("  SUBROUTINE KppDecomp( JVS, IER)                                     ");
+  de.add_line ("  ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ");
+  de.add_line ("  !        Sparse LU factorization                                    ");
+  de.add_line ("  ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ");
+  de.add_line ("  ! Loop expansion generated by kp4                                   ");
+  de.add_line ("                                                                      ");
+  de.add_line ("    INTEGER  :: IER                                                   ");
+//  de.add_line ("    REAL ( kind=dp ) :: JVS (:), W ( NVAR ), a                        ");
+  de.add_line ("    REAL ( kind=dp ) :: JVS ( LU_NONZERO ), W ( NVAR ), a             ");
+  de.add_line ("    INTEGER  :: k, kk, j, jj                                          ");
+  de.add_line ("                                                                      ");
+  de.add_line ("    a = 0.                                                            ");
+  de.add_line ("    IER = 0                                                           ");
+  de.add_line ("                                                                      ");
+
+  if( kpp_switches.de_indexing () == 1 ) {
+    cout << " *** de-indexing of deomposition algorithm: 1 "  <<endl;
+    for (k=1; k<= NVAR; k++) {
+      if(LU_CROW[k] <= LU_DIAG[k]-1)   {
+        sprintf(cline,"!   k = %i",k);  
+        line = cline;    de.add_line(line);
+        for (kk=LU_CROW[k]; kk<=LU_CROW[k+1]-1; kk++) {
+          sprintf(cline,"    W ( %i )= JVS ( %i )",LU_ICOL[kk],kk);  
+          line = cline;    de.add_line(line);
+        }
+        for (kk=LU_CROW[k]; kk<=LU_DIAG[k]-1; kk++) {
+          j = LU_ICOL[kk];
+          sprintf(cline,"    a = - W ( %i ) / JVS ( %i )",j,LU_DIAG[j]);  
+          line = cline;    de.add_line(line);
+          sprintf(cline,"    W ( %i ) = -a",j);  
+          line = cline;    de.add_line(line);
+          for (jj=LU_DIAG[j]+1; jj<=LU_CROW[j+1]-1; jj++) {
+            sprintf(cline,"      W ( %i ) = W ( %i ) + a * JVS ( %i )",LU_ICOL[jj],LU_ICOL[jj],jj);  
+            line = cline;    de.add_line(line);
+          }
+        }
+        for (kk=LU_CROW[k]; kk<=LU_CROW[k+1]-1; kk++) {
+          sprintf(cline,"    JVS ( %i )= W ( %i )",kk,LU_ICOL[kk]);  
+          line = cline;    de.add_line(line);
+        }
+      } else {
+        sprintf(cline,"!   k = %i     Nothing to do    LU_CROW[k] > LU_DIAG[k]-1   (%i %i)",
+                                                                    k,LU_CROW[k],LU_DIAG[k]-1);  
+        line = cline;    de.add_line(line);
+      }
+    }
+  }
+
+  if( kpp_switches.de_indexing () == 2 ) {
+
+//  No W array required
+//  No data copying
+//  better data reuse
+
+    int           flag  [NVAR+1] [NVAR+1];
+    int           index [NVAR+1] [NVAR+1];
+    int           ij,ji,jk,ki;
+    int           count;
+    bool          term;
+
+    cout << " *** de-indexing of decomposition algorithm: 2 (fast) " <<endl;
+
+    for (i=1; i<= NVAR; i++) {
+      for (j=1; j<= NVAR; j++) {
+        flag[i][j] = 0;
+      }
+    }
+    for (k=1; k<= LU_ICOL.size()-1; k++) {
+      i = LU_IROW[k];
+      j = LU_ICOL[k];
+      flag [j][i] = 1;
+      index[j][i] = k;
+    }
+
+//    for (i=1; i<= NVAR; i++) {
+//      cout << "  " <<i << "    ";
+//      for (j=1; j<= NVAR; j++) {
+//        cout  << flag[i][j] << " ";
+//      }
+//      cout << endl;
+//    }
+
+    for (i=1; i<= NVAR; i++) {
+      sprintf(cline,"!   i = %i",i);  
+      line = cline;    de.add_line(line);
+      for (j=1; j<= i-1; j++) {
+        if(flag[j][i] == 1)  {
+          sprintf(cline,"    a = 0.0; a = a ");  
+          line = cline;
+          term = false;
+          count=0;
+          for (k=1; k<= j-1; k++) {
+            if(flag[j][k] == 1 && flag[k][i] == 1) {
+              term = true;
+              count++;
+              if(count == 5) {
+                line += "&";
+                de.add_line(line);
+                count = 0;
+                line="         ";
+              }
+              jk = index [j][k];
+              ki = index [k][i];
+              sprintf(cline," - JVS ( %i ) * JVS ( %i )",jk,ki);  
+              line += cline;
+            }
+          }
+          ji = index [j][i];
+          jj = index [j][j];
+          if(term) {
+            de.add_line(line);
+            sprintf(cline,"    JVS ( %i ) =  ( JVS ( %i ) +a ) / JVS ( %i )  ",ji,ji,jj);  
+          } else {
+            sprintf(cline,"    JVS ( %i ) =  ( JVS ( %i ) ) / JVS ( %i )  ",ji,ji,jj);  
+          }
+          line = cline; de.add_line(line);
+        }
+      }
+      for (j=i; j<= NVAR; j++) {
+        if(flag[j][i] == 1)  {
+          ij = index [j][i];
+          sprintf(cline,"    JVS ( %i )= JVS ( %i )",ij,ij);  
+          line = cline;
+          term = false;
+          count=0;
+          for (k=1; k<= i-1; k++) {
+            if(flag[j][k] == 1 && flag[k][i] == 1) {
+              term = true;
+              count++;
+              if(count == 5) {
+                line += "&";
+                de.add_line(line);
+                count = 0;
+                line="         ";
+              }
+              jk = index [j][k];
+              ki = index [k][i];
+              sprintf(cline," - JVS ( %i ) * JVS ( %i )",jk,ki);  
+              line += cline;
+            }
+          }
+          if(term) {
+            de.add_line(line);
+          }
+        }
+      }
+    }
+  }
+
+  if( kpp_switches.de_indexing () == 3 ) {
+      cout << " *** de-indexing of decomposition algorithm: 3 (old method)"
+           <<endl;
+      for (k=1; k<= NVAR; k++) {
+	  for (kk=LU_CROW[k]; kk<=LU_CROW[k+1]-1; kk++) {
+	      sprintf(cline," W ( %i ) = JVS ( %i )", LU_ICOL[kk], kk);
+	      line = cline;    de.add_line(line);
+	  }
+
+	  for (kk=LU_CROW[k]; kk<=LU_DIAG[k]-1; kk++) {
+	      j = LU_ICOL[kk] ;
+	      sprintf(cline, " a = - W ( %i ) / JVS ( %i )", j, LU_DIAG[j]);
+	      line = cline;    de.add_line(line);
+
+	      sprintf(cline, " W ( %i ) = -a ", j);
+	      line = cline;    de.add_line(line);
+
+	      for (jj=LU_DIAG[j]+1; jj<=LU_CROW[j+1]-1; jj++) {
+		  sprintf(cline," W ( %i ) = W ( %i ) + a * JVS ( %i )",
+			  LU_ICOL[jj], LU_ICOL[jj], jj);
+		  line = cline;    de.add_line(line);
+	      }
+	  }
+
+	  if ( LU_DIAG[k]-1 >= LU_CROW[k] ) {
+	      // removes unnecessary statements
+	      for (kk=LU_CROW[k]; kk<=LU_CROW[k+1]-1; kk++) {
+		  sprintf(cline, " JVS ( %i ) = W ( %i )",kk, LU_ICOL[kk]);
+		  line = cline;    de.add_line(line);
+
+	      }
+	  }
+      }
+  }
+
+  de.add_line ("    return                                                            ");
+  de.add_line ("                                                                      ");
+  de.add_line ("  End SUBROUTINE KppDecomp                                            ");
+  routine_list.push_back(de);
+
+  return;
+}
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/src/expand_decomp.h
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/src/expand_decomp.h	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/src/expand_decomp.h	(revision 2696)
@@ -0,0 +1,38 @@
+#ifndef EXPDE
+#define EXPDE 1
+
+// ############################################################################
+//
+//     create mz_kpp_module                       
+//
+//     create code from .f90 sources created by KPP to be used in MESSy
+//
+//     COPYRIGHT Klaus Ketelsen and MPI-CH   April 2007
+//
+// ############################################################################
+
+#include <iostream>
+
+#include <string>
+#include <list>
+#include <vector>
+
+#include "fortran_file.h"
+#include "program_line.h"
+
+class expand_decomp {
+
+  int                   NVAR;
+  vector<int>           LU_IROW;
+  vector<int>           LU_ICOL;
+  vector<int>           LU_CROW;
+  vector<int>           LU_DIAG;
+
+  public:
+
+  void create_sparse_info (vector<fortran_file> & include_list, string module_name);
+  void create_routine (vector<fortran_file> & routine_list);
+
+};
+
+#endif
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/src/fortran_file.C
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/src/fortran_file.C	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/src/fortran_file.C	(revision 2696)
@@ -0,0 +1,633 @@
+
+// ############################################################################
+//
+//     create_mz_kpp_module                       
+//
+//     create scalar code from .f90 sources created by KPP to be used in MESSy
+//
+//     COPYRIGHT Klaus Ketelsen and MPI-CH   April 2007
+//
+// ############################################################################
+//
+//
+//Current revisions:
+//------------------
+// 
+// 
+//Former revisions:
+//-----------------
+//$Id: fortran_file.C 2470 2017-09-14 13:56:42Z forkel $
+//
+// 
+//changed KPP-generated code to lowercase with uppercase Fortran  expressions
+//added photolysis variables
+//
+//
+//
+//
+// Nov 2016: Intial version (Klaus Ketelsen)
+//
+
+
+#include <fstream>
+#include "fortran_file.h"
+
+#include "utils.h"
+#include "ctype.h"
+void fortran_file::read () {
+
+  ifstream                        in;
+  program_line                    pl;
+  string                          line;
+
+// Note: FORTRAN77 and include files are internally named .f90
+
+  string file_name = name + ".f90";
+  in.open(file_name.c_str() );
+  if( !in ) {
+    cout << "cannot open " << endl; my_abort(file_name);
+  }
+
+// Read kpp_fortran routines;
+  while ( 1 ) {
+     getline(in,line);
+     if( in.eof() ) break;
+     if( in.bad() ) my_abort("ERROR_READ_2");
+
+// Remove trailing blanks
+     while (1) {
+       if(line.size() < 100) break;
+       if(line.substr(line.size()-1,1) != " ")  break;
+       line.erase(line.size()-1,1);
+     }
+
+// Now do some cosmetics to adapt the KPP generated output a bit o the looks of PALM, 
+// i.e. add some blanks, convert all to lowercase except Fortran language elements, etc.
+       if(line.find("'",0) == string::npos)  {     // No substitution in line with strings
+        if(line.substr(0,2) =="! ") {
+         global_substitute(line,"#","#");      // just a dummy so comments do not get lost
+         } else {
+         global_substitute(line,"("," ( ");
+         global_substitute(line,")"," ) ");
+         global_substitute(line,",",", ");
+         global_substitute(line,",  ",", ");
+         global_substitute(line,")  ",") ");
+         global_substitute(line,"*","* ");
+         global_substitute(line,"* *","**");
+         global_substitute(line,"/JVS","/ JVS");
+         global_substitute(line,"-","- ");
+         global_substitute(line,"e- ","e-");
+         global_substitute(line,"+","+ ");
+         global_substitute(line,"+  ","+ ");
+         global_substitute(line,"d- ","d-");
+         global_substitute(line,"D- ","D-");
+         global_substitute(line,"e+ ","e+");
+         global_substitute(line,"E+ ","E+");
+         global_substitute(line,"E- ","E-");
+         global_substitute(line,")=",") =");
+         global_subtolower(line);
+         global_substitute(line,"call ","CALL ");
+         global_substitute(line,"case","CASE");
+         global_substitute(line,"character","CHARACTER");
+         global_substitute(line,"contains","CONTAINS");
+         global_substitute(line,"dimension","DIMENSION");
+         global_substitute(line,"do ","DO ");
+         global_substitute(line,"elseif","ELSEIF");
+         global_substitute(line,"else","ELSE");
+         global_substitute(line,"#ELSE","#else");
+         global_substitute(line,"end do","ENDDO");
+         global_substitute(line,"end if","ENDIF");
+         global_substitute(line,"end ","END ");    // Modify "end" after all other strings containing "end..." are done!
+         global_substitute(line,"#ENDIF","#endif");
+         global_substitute(line,"function","FUNCTION");
+         global_substitute(line,"if(","IF (");
+         global_substitute(line," if "," IF ");
+         global_substitute(line,"implicit","IMPLICIT");
+         global_substitute(line,"include","INCLUDE");
+         global_substitute(line,"intent","INTENT");
+         global_substitute(line,"integer","INTEGER");
+         global_substitute(line,"logical","LOGICAL");
+         global_substitute(line,"module","MODULE");
+         global_substitute(line,"none","NONE");
+         global_substitute(line,"optional","OPTIONAL");
+         global_substitute(line,"parameter","PARAMETER");
+         global_substitute(line,"public","PUBLIC");
+         global_substitute(line,"real","REAL");
+         global_substitute(line,"return","RETURN");
+         global_substitute(line,"use ","USE ");
+         global_substitute(line,"save","SAVE");
+         global_substitute(line,"subroutine","SUBROUTINE");
+         global_substitute(line,"then","THEN");
+         global_substitute(line,"while","WHILE");
+       }
+     }
+
+     pl.set_line(line);
+     pline.push_back(pl);
+   }
+   in.close();
+
+  return;
+}
+void fortran_file::edit_fortran () {
+
+  vector<program_line>::iterator     ip;
+  string                             lo_line;
+  bool                               deleted;
+
+  for (ip=pline.begin(); ip != pline.end(); ip++) {
+    if(ip->get_token(0) =="!")   continue;           // No editing of Comments
+    deleted = false;
+    lo_line = ip->get_line() ;
+    if(ip->get_token(0) == "MODULE" && ip->get_token_size() >= 1) {
+      lo_line.insert(0,"!DELETE ");
+    }
+    if(ip->get_token(0) == "USE" && ip->get_token_size() >= 1) {
+      deleted = true;
+      lo_line.insert(0,"!DELETE ");
+    }
+    if(ip->get_token(0) == "PUBLIC" && ip->get_token_size() >= 1) {
+      deleted = true;
+      lo_line.insert(0,"!DELETE ");
+    }
+//    if(ip->get_token(0) == "SAVE" && ip->get_token_size() >= 1) {
+//      lo_line.insert(0,"!DELETE ");
+//    }
+
+//  Only IMPLICIT none, not IMPLICIT REAL (A-H,O-Z)
+    if(ip->get_token(0) == "IMPLICIT" && ip->get_token_size() == 2) {
+      lo_line.insert(0,"!DELETE ");
+    }
+
+//  Delete INCLUDE lines
+    if(ip->get_token(0) == "INCLUDE" && ip->get_token_size() >= 1) {
+      lo_line.insert(0,"!DELETE ");
+    }
+
+//  Update_RCONST has only to be called once per outer timeloop in KPP_FOR_PALM
+
+//  if(ip->get_token(0) == "CALL" && ip->get_token(1) == "Update_RCONST" ) {
+    if(ip->get_token(0) == "CALL" && ip->get_token(1) == "update_rconst" ) {
+      lo_line.insert(0,"!DELETE ");
+    cout << lo_line << endl;
+    }
+
+//  Update_SUN must not be called within in KPP_FOR_PALM
+
+//  if(ip->get_token(0) == "CALL" && ip->get_token(1) == "Update_SUN" ) {
+    if(ip->get_token(0) == "CALL" && ip->get_token(1) == "update_sun" ) {
+      lo_line.insert(0,"!DELETE ");
+    cout << lo_line << endl;
+    }
+
+
+    ip->set_line(lo_line);
+
+//  Delete continuation lines
+
+    if(deleted) {
+      while( ip->get_token_number_from_string("&") > 1) {
+        ip++;
+        lo_line = ip->get_line() ;
+        lo_line.insert(0,"!DELETE ");
+        ip->set_line(lo_line);
+      }
+    }
+  }
+
+  return;
+}
+
+void fortran_file::copy_to_subroutine_vector (vector<fortran_file> &subvec, 
+                                                         fortran_file & header_var) {
+  vector<program_line>::iterator     ip;
+  vector<fortran_file>::iterator     iv;
+  bool                               active_subroutine;
+  string                             active_name;
+  int                                name_pos;
+
+// loop over all lines in a fortran file
+
+
+// First, copy Module variables into header_var 
+// This variables wil later copied into the kpp-moduzle header
+
+  for (ip=pline.begin(); ip != pline.end(); ip++) {
+    if(ip->get_token(0) == "CONTAINS")   break;          // Header done 
+
+//  Special Treatment of defining variables in PARAMETER context
+//  The intel compiler creates fatal error, if blanks are embedded between / /
+//  The SX-6 Compiler gives a warning 
+
+    ip->substitute("( / &","(/&");
+    ip->substitute(",  & !",",& !");
+    ip->substitute(" / )","/)");
+
+
+    header_var.add_line(ip->get_line());
+  }
+
+//  look for SUBROUTINE statement
+  active_subroutine = false;
+
+  for (ip=pline.begin(); ip != pline.end(); ip++) {
+
+//  look for SUBROUTINE statement
+    if(ip->get_token(0) == "SUBROUTINE" && !active_subroutine) {
+
+      for(iv=subvec.begin();iv!=subvec.end();iv++) {
+        if(ip->get_token(1) == iv->get_name() ) { 
+//        Subroutine is in list
+          active_subroutine = true;
+          active_name = ip->get_token(1);
+          cout << "SUBROUTINE: " << active_name << " found in file " << name << endl;
+          break;
+        }
+      }
+    }
+
+//  look for FUNCTION statement
+    name_pos = ip->get_token_number_from_string("FUNCTION");
+    if(name_pos != -1 && !active_subroutine) {
+      name_pos++;
+      for(iv=subvec.begin();iv!=subvec.end();iv++) {
+        if(ip->get_token(name_pos) == iv->get_name() ) { 
+//        Subroutine is in list
+          active_subroutine = true;
+          active_name = ip->get_token(name_pos);
+          cout << "FUNCTION  : " << active_name << " found in file " << name << endl;
+          break;
+        }
+      }
+    }
+
+    if(active_subroutine)  {
+//    copy FORTRAN line from file to subroutine
+      iv->add_line(ip->get_line());
+    }
+    if(ip->get_token(1) == "SUBROUTINE" && ip->get_token(2) == active_name) {
+      cout << "SUBROUTINE: " << active_name << " done " << endl;
+      active_subroutine = false;
+      active_name = " ";
+    }
+    if(ip->get_token(1) == "FUNCTION" && ip->get_token(2) == active_name) {
+      cout << "FUNCTION  : " << active_name << " done " << endl;
+      active_subroutine = false;
+      active_name = " ";
+    }
+  }
+
+  return;
+}
+
+void fortran_file::edit_FUNC () {
+
+  vector<program_line>::iterator     ip;
+  string                             lo_line;
+
+  for (ip=pline.begin(); ip != pline.end(); ip++) {
+    ip->substitute("REAL*8   Y(NVAR), J(LU_NONZERO)","real (kind=8),dimension(:,:)  :: y,j");
+    ip->substitute("REAL*8   Y(NVAR), P(NVAR)",      "real (kind=8),dimension(:,:)  :: y,p");
+    lo_line = ip->get_line() ;
+    if(ip->get_token(0) == "Told" && ip->get_token(1) == "=") {
+      lo_line.insert(0,"!DELETE ");
+    }
+    if(ip->get_token(0) == "TIME" && ip->get_token(1) == "=") {
+      lo_line.insert(0,"!DELETE ");
+    }
+    ip->set_line(lo_line);
+  }
+
+  return;
+}
+
+void fortran_file::edit_inc (fortran_file & header_var) {
+
+  vector<program_line>::iterator     ip;
+  string                             lo_line;
+  string                             lo_line_2;
+  string                             lo_line_3;
+  bool                               deleted;
+  int                                i,nr_var;
+  string                             public_line;
+
+// Delete module and end module lines
+
+  header_var.add_line("! Automatic generated PUBLIC Statements for ip_ and ihs_ variables ");
+  header_var.add_line(" ");
+
+  for (ip=pline.begin(); ip != pline.end(); ip++) {
+    deleted = false;
+    lo_line = ip->get_line() ;
+    if(ip->get_token(0) == "MODULE" && ip->get_token_size() >= 1) {
+      lo_line.insert(0,"!DELETE ");
+    }
+    if(ip->get_token(0) == "END" && ip->get_token_size() >= 1) {
+      lo_line.insert(0,"!DELETE ");
+    }
+    if(ip->get_token(0) == "USE" && ip->get_token_size() >= 1) {
+      deleted = true;
+      lo_line.insert(0,"!DELETE ");
+    }
+    if(ip->get_token(0) == "PUBLIC" && ip->get_token_size() >= 1) {
+      deleted = true;
+      lo_line.insert(0,"!DELETE ");
+    }
+    if(ip->get_token(0) == "SAVE" && ip->get_token_size() >= 1) {
+      lo_line.insert(0,"!DELETE ");
+    }
+
+//  Make ind_ variables public
+    if(ip->get_token(3).substr(0,4) == "ind_") {
+      global_substitute (lo_line,"PARAMETER","PARAMETER, PUBLIC");
+    }
+ 
+// Make ip_ variables public
+
+//  mz_rs_20070907+
+// ip_* are already public
+// Make ip_ variables public
+//     nr_var=0;
+//     for(i=0;i<ip->get_token_size();i++) {
+//       if(ip->get_token(i).substr(0,3) == "ip_" && ip->get_token(0).substr(0,1) != "!") {
+//         nr_var++;
+//         if(nr_var == 1)  {
+//           public_line.clear();
+//           public_line = "  PUBLIC  " + ip->get_token(i);
+
+//         } else {
+//           public_line += ", " + ip->get_token(i);
+//         }
+//       }
+//     }
+//     if(nr_var > 0) {
+//       header_var.add_line(public_line);
+//     }
+//  mz_rs_20070907-
+
+// Make ihs_ variables public
+
+    nr_var=0;
+    for(i=0;i<ip->get_token_size();i++) {
+      if(ip->get_token(i).substr(0,4) == "ihs_" && ip->get_token(0).substr(0,1) != "!") {
+        nr_var++;
+        if(nr_var == 1)  {
+          public_line.clear();
+          public_line = "  PUBLIC  " + ip->get_token(i);
+
+        } else {
+          public_line += ", " + ip->get_token(i);
+        }
+      }
+    }
+    if(nr_var > 0) {
+      header_var.add_line(public_line);
+    }
+
+    ip->set_line(lo_line);
+
+//  Delete continuation lines
+
+    if(deleted) {
+      while( ip->get_token_number_from_string("&") > 1) {
+        ip++;
+        lo_line = ip->get_line() ;
+        lo_line.insert(0,"!DELETE ");
+        ip->set_line(lo_line);
+      }
+    }
+  }
+
+  for (ip=pline.begin(); ip != pline.end(); ip++) {
+//  Special Treatment of defining variables in PARAMETER context
+//  The intel compiler creates fatal error, if blanks are embedded between / /
+//  The SX-6 Compiler gives a warning 
+
+    if(ip->get_token(7) == "substep" && ip->get_token(9) == "nsubsteps") {
+      ip->substitute("( / 0. / )","0.0");
+    }
+    ip->substitute("( /","(/");
+    ip->substitute("/ )","/)");
+  }
+
+  return;
+}
+
+void fortran_file::create_species_list(vector <string> &species_list) {
+  vector<program_line>::iterator     ip;
+  string                             lo_line;
+  string                             specname;
+  string                             longname;
+
+  bool to_do = false;
+
+  for (ip=pline.begin(); ip != pline.end(); ip++) {
+    if(ip->get_token(2) == "declaration" && ip->get_token(5) == "species") {
+      to_do = true;
+    }
+    if(ip->get_token(5) == "0" && ip->get_token_size() > 5 ) {
+       to_do = false;
+    }
+    if(ip->get_token(0) == "INTEGER," && to_do) {
+      lo_line = ip->get_line() ;
+      int pos = lo_line.find("ind_",0);
+      int end = lo_line.find(" ",pos+1);
+      if(pos > 1) {
+        specname.clear();
+        longname.clear();
+        specname = lo_line.substr(pos+4,end-pos-4);
+        longname = specname + "                 ";
+	//        if(specname != "H2O")  {                     // NO idt_variable for H2O
+          species_list.push_back(specname);
+        //}
+      }
+    }
+  }
+
+  return;
+}
+
+void fortran_file::vector_variable_list(vector <Vvar> &var_list) {
+  vector<program_line>::iterator     ip;
+  string                             lo_line;
+  Vvar                               vari;
+  bool                               todo_1;
+
+  bool to_do = false;
+  for (ip=pline.begin(); ip != pline.end(); ip++) {
+    todo_1 = false;
+    if(ip->get_token(0) == "!KPPPP_DIRECTIVE" && ip->get_token(4) == "start") {
+      to_do = true;
+      ip++;
+    }
+    if(ip->get_token(0) == "!KPPPP_DIRECTIVE" && ip->get_token(4) == "end") {
+       to_do = false;
+    }
+    if(ip->get_token(0).substr(0,1) != "!" && ip->get_token_number_from_string("temp") > 2) {
+//  if(ip->get_token(0).substr(0,1) != "!" && ip->get_token_number_from_string("XXXX") > 2) {
+      todo_1 = true;
+    }
+    if(to_do || todo_1) {
+      if(ip->get_token(0).substr(0,1) == "!") continue;       // skip comment limes
+      vari.clear();
+      int pos1 = ip->get_token_number_from_string_upper ("DimensioN");
+      int pos  = ip->get_token_number_from_string("::");
+      vari.name = ip->get_token(pos+1);
+      if(pos1 > 1) {
+        for (int i=pos1+2; i< ip->get_token_size(); i++) {
+          if(ip->get_token(i).substr(0,1) == "!" || ip->get_token(i) == ")" ) {
+            break;
+          } else {
+            ip->substitute(","," "); 
+            vari.dim_var.push_back(ip->get_token(i));
+          }
+        }
+      } else {
+        if(ip->get_token_size() > pos+1 && ip->get_token(pos+2).substr(0,1) != "!" 
+                          && ip->get_token(pos+2).substr(0,1) != "=" )  {
+          for (int i=pos+3; i< ip->get_token_size(); i++) {
+            if(ip->get_token(i).substr(0,1) == "!" || ip->get_token(i) == ")" ) {
+              break;
+            } else {
+              ip->substitute(","," "); 
+              vari.dim_var.push_back(ip->get_token(i));
+            }
+          }
+        }
+      }
+      var_list.push_back(vari);
+      cout << "Vector variable " << ip->get_token(pos+1) <<" " << vari.nr_dim() <<endl;
+      lo_line = ip->get_line() ;
+      if(vari.nr_dim() == 0) {
+        lo_line.clear();
+        lo_line = "  REAL(dp),dimension(:),allocatable             :: " + vari.name;
+      }
+      if(vari.nr_dim() == 1) {
+        lo_line.clear();
+        lo_line = "  REAL(dp),dimension(:,:),allocatable           :: " + vari.name;
+      }
+      if(vari.nr_dim() == 2) {
+        lo_line.clear();
+        lo_line = "  REAL(dp),dimension(:,:,:),allocatable         :: " + vari.name;
+      }
+      if(vari.nr_dim() == 3) {
+        lo_line.clear();
+        lo_line = "  REAL(dp),dimension(:,:,:,:),allocatable       :: " + vari.name;
+      }
+      ip->set_line(lo_line);
+    }
+  }
+
+  return;
+}
+
+void fortran_file::print () {
+
+  vector<program_line>::iterator     ip;
+
+  cout << " " <<endl;
+  cout << "FORTRAN file " << name << endl;
+
+  for (ip=pline.begin(); ip != pline.end(); ip++) {
+    cout << ip->get_line() <<endl;
+  }
+
+  cout << " " <<endl;
+
+  return;
+}
+
+void fortran_file::write_file (ofstream & out) {
+
+  vector<program_line>::iterator     ip;
+  string                             lo_line;
+
+  for (ip=pline.begin(); ip != pline.end(); ip++) {
+    ip->global_substitute(" ( ","(");
+    ip->global_substitute(" ) ",")");
+    ip->global_substitute(" )",")");
+    ip->global_substitute("A (","A(");
+    ip->global_substitute("B (","B(");
+    ip->global_substitute("V (","V(");
+    ip->global_substitute("Vdot (","Vdot(");
+    ip->global_substitute("JVS (","JVS(");
+    ip->global_substitute("RCT (","RCT(");
+    ip->global_substitute("* ","*");
+    ip->global_substitute("* ","*");
+    ip->global_substitute("d- ","d-");
+    ip->global_substitute("d+ ","d+");
+    ip->global_substitute(", ",",");
+    ip->global_substitute(")=",") =");
+    ip->global_substitute("dp,","dp, ");
+    ip->global_substitute(", - ",", -");
+
+//  line break if more than 130 character
+
+    lo_line = ip->get_line();
+    if( lo_line.size() < 130 ) {
+      out << ip->get_line() <<endl;
+    } else {
+      int cp  = lo_line.rfind("!",129);
+      int pos = lo_line.rfind(" ",129);
+      out << lo_line.substr(0,pos) << " &"<<endl;
+      lo_line.erase (0,pos);
+      if(ip->get_token (0).substr(0,1)  == "!" || cp != string::npos ) {
+        out << "!   " << lo_line   <<endl;                 // comment also in next line
+      } else {
+        out << "                    " << lo_line   <<endl;
+      }
+    }
+  }
+
+  out << " " <<endl;
+
+  return;
+}
+
+void fortran_file::copy_to_MZ_KPP (fortran_file & ka) {
+
+  vector<program_line>::iterator     ip;
+
+  for (ip=pline.begin(); ip != pline.end(); ip++) {
+//  Do not copy lines marked for delete
+    if(ip->get_token(0) != "!DELETE") {
+      ka.add_line( ip->get_line() );
+    }
+  }
+
+  return;
+}
+void  fortran_file::global_substitute(string &line, string old_s, string new_s) {
+   int         pos;
+
+   int start = line.size()-1;
+
+   while (1) {
+     pos = line.rfind (old_s, start);       // look for string
+
+     if (pos == string::npos) {
+       break;
+     }
+
+     line.replace(pos,old_s.size(),new_s);
+
+     start = pos-1;
+   }
+
+   return;
+}
+
+void  fortran_file::global_subtolower(string &line) {
+
+   int start = line.size()-1;
+   char c;
+
+    int i = 0;
+    while (line[i])
+    {
+      c = line[i];
+      line[i] = tolower(c);
+      i++;
+    }
+   return;
+}
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/src/fortran_file.h
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/src/fortran_file.h	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/src/fortran_file.h	(revision 2696)
@@ -0,0 +1,61 @@
+#ifndef FFILE
+#define FFILE 1
+
+// ############################################################################
+//
+//     create mz_kpp_module                       
+//
+//     create code from .f90 sources created by KPP to be used in MESSy
+//
+//     COPYRIGHT Klaus Ketelsen and MPI-CH   April 2007
+//
+// ############################################################################
+//
+//  Modifications:
+//    RFo added global_subtolower
+
+#include <iostream>
+
+#include <string>
+#include <list>
+#include <vector>
+
+#include "program_line.h"
+
+class fortran_file {
+
+  string                    name;
+
+  public:
+  vector<program_line>      pline;
+
+  void   set_name(string s)       {name=s;return;};
+  string get_name()                {return name;};
+  void   add_line(program_line &s) {pline.push_back(s);return;};
+  void   add_line(string s)        {program_line p; p.set_line(s); pline.push_back(p);return;};
+
+  void read () ;
+  void edit_fortran () ;
+  void copy_to_subroutine_vector (vector<fortran_file> &subvec, fortran_file & header_var) ;
+  void edit_Jac_SP () ;
+  void edit_KppDecomp () ;
+  void edit_KppSolve () ;
+  void edit_Fun () ;
+  void edit_FUNC () ;
+  void edit_Update_RCONST (vector <Vvar> &var_list) ;
+  void edit_inc (fortran_file & header_var) ;
+  void create_species_list(vector <string> &species_list);
+  void vector_variable_list(vector <Vvar> &var_list);
+  void print () ;
+  void write_file (ofstream & out);
+  void copy_to_MZ_KPP (fortran_file & ka);
+  void global_substitute(string &line, string old_s, string new_s);
+  void global_subtolower(string &line);
+
+// Routines for FORTRAN vector Mode
+  void edit_inc_vec (vector<string> &gvl);
+  void global_variables2vector (vector<string> &gvl);
+
+};
+
+#endif
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/src/fortran_file_vec.C
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/src/fortran_file_vec.C	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/src/fortran_file_vec.C	(revision 2696)
@@ -0,0 +1,237 @@
+
+// ############################################################################
+//
+//     create_mz_kpp_module                       
+//
+//     create vectorcode from .90 sources created by KPP to be used in MESSy
+//
+//     COPYRIGHT Klaus Ketelsen and MPI-CH   April 2007
+//
+// ############################################################################
+
+#include <fstream>
+#include "fortran_file.h"
+
+#include "utils.h"
+
+
+void fortran_file::edit_inc_vec (vector<string> &gvl) {
+  vector<program_line>::iterator     ip;
+  vector<string>::iterator           ig;
+
+  cout << "Handling include: " <<name <<endl;
+
+  for (ip=pline.begin(); ip != pline.end(); ip++) {
+    if(ip->get_token(0) == "REAL")  {
+      int pos = ip->get_token_number_from_string("::");
+      if(pos > 1) { 
+        pos ++;
+        for (ig=gvl.begin(); ig != gvl.end(); ig++) {
+          string var_name = *ig;
+          if(ip->get_token(pos) == var_name)  {
+            ip->update_token(pos+1,"(VL_DIM,"); 
+          }
+        }
+      }
+    }
+    if(ip->get_token(0) == "EQUIVALENCE" && ip->get_token(2) == "C" )  {
+      ip->update_token(3,"(1,");
+      ip->update_token(9,"(1,");
+    }
+  }
+
+  return;
+}
+
+void fortran_file::global_variables2vector (vector<string> &gvl) {
+  vector<program_line>::iterator     ip;
+  vector<string>::iterator           ig;
+
+  cout << "Handling subroutine: " <<name <<endl;
+
+  for (ip=pline.begin(); ip != pline.end(); ip++) {
+    for (ig=gvl.begin(); ig != gvl.end(); ig++) {
+      string var_name = *ig;
+      ip->change_variable_to_vector (var_name);
+    }
+  }
+
+  return;
+}
+
+void fortran_file::edit_Update_RCONST (vector <Vvar> &var_list) { 
+  vector<program_line>::iterator     ip;
+  vector<Vvar>::iterator             iv;
+  string                             lo_line; 
+
+  for (ip=pline.begin(); ip != pline.end(); ip++) {
+    ip->global_substitute ("*"," *");
+    ip->global_substitute ("* *","**");
+    ip->global_substitute (","," , ");
+    ip->global_substitute ("/"," / ");
+    ip->global_substitute ("1:VL","j");
+  }
+  for (ip=pline.begin(); ip != pline.end(); ip++) {
+    for (iv=var_list.begin(); iv != var_list.end(); iv++) {
+      ip->change_variable_to_vector_g (*iv);
+    }
+  }
+  ip = pline.begin()+1 ;
+  lo_line = ip->get_line() ;
+  lo_line.erase();
+  lo_line = " INTEGER         :: j,k";
+  ip->set_line(lo_line);
+  
+  if(kpp_switches.is_vector() ) {
+    ip = pline.begin()+2 ;
+    lo_line = ip->get_line() ;
+    lo_line.erase();
+    lo_line = " do k=is,ie";
+    ip->set_line(lo_line);
+
+    ip = pline.begin()+3 ;
+    lo_line = ip->get_line() ;
+    lo_line.erase();
+    lo_line = "  j = k-is+1";
+    ip->set_line(lo_line);
+
+    ip = pline.end()-2 ;
+    lo_line = ip->get_line() ;
+    lo_line.erase();
+    lo_line = " end do";
+    ip->set_line(lo_line);
+  } else {
+    ip = pline.begin()+3 ;
+    lo_line = ip->get_line() ;
+    lo_line.erase();
+    lo_line = "  k = is";
+    ip->set_line(lo_line);
+  }
+
+  return;
+}
+
+
+void fortran_file::edit_KppDecomp () {
+
+  vector<program_line>::iterator     ip;
+  string                             lo_line;
+
+  bool declaration = true;
+
+  for (ip=pline.begin(); ip != pline.end(); ip++) {
+
+    if(ip->get_token(0) == "IER") {
+      declaration = false;
+    }
+    if ( declaration ) {
+      if(ip->get_token(0) == "REAL") {
+        lo_line = ip->get_line() ;
+        lo_line.erase();
+         if(kpp_switches.de_indexing () == 2) {
+           lo_line = "      REAL(kind=dp) :: JVS(:,:), a(VL)";
+         } else {
+           lo_line = "      REAL(kind=dp) :: JVS(:,:), W(VL,NVAR), a(VL)";
+         }
+        ip->set_line(lo_line);
+      }
+
+    } else {
+      ip->change_variable_to_vector ("W");
+      ip->change_variable_to_vector ("JVS");
+
+      if(ip->get_token(0) == "IF" || ip->get_token(1) == "IF") {
+        lo_line = ip->get_line() ;
+        lo_line.insert(0,"! Not in vector Mode ");
+        ip->set_line(lo_line);
+      }
+      if(ip->get_token(0) == "IER" && ip->get_token(2) == "k") {
+        lo_line = ip->get_line() ;
+        lo_line.insert(0,"! Not in vector Mode ");
+        ip->set_line(lo_line);
+      }
+      if(ip->get_token(0) == "RETURN") {
+        lo_line = ip->get_line() ;
+        lo_line.insert(0,"! Not in vector Mode ");
+        ip->set_line(lo_line);
+      }
+    }
+  }
+
+  return;
+}
+
+void fortran_file::edit_KppSolve () {
+
+  vector<program_line>::iterator     ip;
+
+  for (ip=pline.begin(); ip != pline.end(); ip++) {
+    if(ip->get_token(0) == "REAL") {
+      ip->substitute("NVAR",":,:");
+      ip->substitute("LU_NONZERO",":,:");
+    } else {
+      ip->change_variable_to_vector ("JVS");
+      ip->change_variable_to_vector ("X");
+    }
+  }
+
+  return;
+}
+
+void fortran_file::edit_Jac_SP () {
+
+  vector<program_line>::iterator     ip;
+  string                             lo_line;
+
+  for (ip=pline.begin(); ip != pline.end(); ip++) {
+    if(ip->get_token(0) == "REAL") {
+      ip->substitute("NVAR",":,:");
+      ip->substitute("NFIX",":,:");
+      ip->substitute("NREACT",":,:");
+      ip->substitute("LU_NONZERO",":,:");
+      if(ip->get_token(5) == "B") {
+        lo_line = ip->get_line() ;
+        lo_line.erase();
+        lo_line = " REAL(kind=dp) :: B(VL," +ip->get_token(7)  +")";
+        ip->set_line(lo_line);
+      }
+    } else {
+      ip->change_variable_to_vector ("V");
+      ip->change_variable_to_vector ("F");
+      ip->change_variable_to_vector ("B");
+      ip->change_variable_to_vector ("RCT");
+      ip->change_variable_to_vector ("JVS");
+    }
+  }
+
+  return;
+}
+
+void fortran_file::edit_Fun () {
+
+  vector<program_line>::iterator     ip;
+
+  bool declaration = true;
+
+  for (ip=pline.begin(); ip != pline.end(); ip++) {
+
+    if(ip->get_token(1) == "Computation" || ip->get_token(1) == "Told" ) {
+      declaration = false;
+    }
+    if ( declaration ) {
+      if(ip->get_token(0) == "REAL") {
+        ip->substitute("NVAR",":,:");
+        ip->substitute("NFIX",":,:");
+        ip->substitute("NREACT",":,:");
+      }
+    } else {
+      ip->change_variable_to_vector ("V");
+      ip->change_variable_to_vector ("F");
+      ip->change_variable_to_vector ("RCT");
+      ip->change_variable_to_vector ("Vdot");
+    }
+  }
+
+  return;
+}
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/src/main.C
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/src/main.C	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/src/main.C	(revision 2696)
@@ -0,0 +1,66 @@
+
+// ############################################################################
+//
+//     create_mz_kpp_module 
+//
+//     create scalar code from .f90 sources created by KPP to be used in MESSy
+//
+//     COPYRIGHT Klaus Ketelsen and MPI-CH   April 2007
+//
+// ############################################################################
+
+//  mz_rs_20090111+
+// stdlib is necessary to define atoi:
+#include <stdlib.h>
+//  mz_rs_20090111-
+
+#include "create_kpp_module.h"
+control_switches kpp_switches;
+
+main (int argc, char *argv [] ) {
+   create_kpp_module         cm;
+   string                    inp_name;
+   char                      *lo_arg;
+
+   cout << "####################################################" <<endl ;
+   cout << "###             KP4 = KPP POST PROCESSOR         ###" <<endl ;
+   cout << "###                   Version 1.0                ###" <<endl ;
+   cout << "### (C) by Klaus Ketelsen and MPI-CH, April 2007 ###" <<endl ;
+   cout << "####################################################" <<endl ;
+
+   lo_arg = argv[1];
+
+   if(argc > 1) {
+     inp_name = lo_arg ;
+   } else {
+     inp_name = "kk_" ;
+   }
+
+   if(argc > 2) {
+     lo_arg = argv[2];
+     string vm = lo_arg;
+     if(vm == "vector") {
+       kpp_switches.set_vector_mode ();
+     }
+   }
+
+   if(argc > 3) {
+     lo_arg = argv[3];
+     string vl = lo_arg;
+     kpp_switches.set_vector_length (vl);
+   }
+
+   if(argc > 4) {
+     lo_arg = argv[4];
+     int de = atoi(lo_arg);
+     kpp_switches.set_de_index_mode (de);
+   }
+
+   cm.do_work(inp_name);
+
+   cout << "####################################################" <<endl ;
+   cout << "###                END OF KP4                    ###" <<endl ;
+   cout << "####################################################" <<endl ;
+
+   return 0;
+}
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/src/program_line.C
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/src/program_line.C	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/src/program_line.C	(revision 2696)
@@ -0,0 +1,136 @@
+
+// ############################################################################
+//
+//     create_mz_kpp_module                       
+//
+//     create vectorcode from .90 sources created by KPP to be used in MESSy
+//
+//     COPYRIGHT Klaus Ketelsen and MPI-CH   April 2007
+//
+// ############################################################################
+
+#include "program_line.h"
+
+void  program_line::set_line(string s) {
+
+   line = s;
+
+   tokens.fill_token(line);
+
+   return;
+}
+void  program_line::substitute(string old_s, string new_s) {
+
+   int pos = line.find (old_s, 0);       // look for string
+
+   if (pos != string::npos) {                // found
+     line.replace(pos,old_s.size(),new_s);
+   }   
+
+   return;
+}
+
+void  program_line::global_substitute(string old_s, string new_s) {
+   int         pos;
+
+   int start = line.size()-1;
+
+   while (1) {
+     pos = line.rfind (old_s, start);       // look for string
+
+     if (pos == string::npos) {
+       break;
+     }
+
+     line.replace(pos,old_s.size(),new_s);
+
+     start = pos-1;
+   }
+
+   return;
+}
+
+int  program_line::get_token_number_from_string (string s) {
+
+   for (int i=0; i<tokens.size(); i++) {
+     if(tokens.get_token_by_index(i) == s)  {
+       return i;
+     }
+   }
+
+   return -1;
+}
+
+int  program_line::get_token_number_from_string_upper (string s) {
+
+   string s1 = my_to_upper(s);
+   for (int i=0; i<tokens.size(); i++) {
+     if(my_to_upper(tokens.get_token_by_index(i)) == s1)  {
+       return i;
+     }
+   }
+
+   return -1;
+}
+
+void  program_line::update_token (int i, string s) {
+
+  string s_old=tokens.get_token_by_index(i);
+  tokens.update (i,s);
+  int pos=tokens.get_position(i);
+  line.replace(pos,s_old.size(),s);
+
+  return;
+}
+
+void  program_line::change_variable_to_vector (string var) {
+  string   U_token;
+
+  int     ind = tokens.size()-2;
+  for (int i=ind; i >= 0; i--) {
+    U_token.clear();
+    U_token = my_to_upper(tokens.get_token_by_index(i));
+    if(U_token == my_to_upper(var) && tokens.get_token_by_index(i+1) == "(" ) {
+      string new_s="(1:VL,";
+      tokens.update (i+1,new_s);
+      int pos=tokens.get_position(i+1);
+      line.replace(pos,1,new_s);
+      tokens.reset (line);
+    }
+  }
+
+  return;
+}
+
+void  program_line::change_variable_to_vector_g (Vvar &var) {
+  string   U_token;
+  string   new_s;
+
+  tokens.reset (line);
+
+  int     ind = tokens.size()-2;
+  for (int i=ind; i >= 0; i--) {
+    U_token.clear();
+    U_token = tokens.get_token_by_index(i);
+    if(var.nr_dim() == 0) {
+      if(my_to_upper(U_token) == my_to_upper(var.name) ) {
+        new_s=U_token + "(k)";
+        tokens.update (i,new_s);
+        int pos=tokens.get_position(i);
+        line.replace(pos,U_token.size(),new_s);
+        tokens.reset (line);
+      }
+    } else {
+      if(my_to_upper(U_token) == my_to_upper(var.name) && tokens.get_token_by_index(i+1) == "(" ) {
+        new_s="(k,";
+        tokens.update (i+1,new_s);
+        int pos=tokens.get_position(i+1);
+        line.replace(pos,1,new_s);
+        tokens.reset (line);
+      }
+    }
+  }
+
+  return;
+}
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/src/program_line.h
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/src/program_line.h	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/src/program_line.h	(revision 2696)
@@ -0,0 +1,46 @@
+#ifndef PLINE
+#define PLINE 1
+
+// ############################################################################
+//
+//     create_mz_kpp_module                       
+//
+//     create code from .90 sources created by KPP to be used in MESSy
+//
+//     COPYRIGHT Klaus Ketelsen and MPI-CH   April 2007
+//
+// ############################################################################
+
+#include <iostream>
+
+#include <string>
+#include <list>
+#include <vector>
+
+#include "utils.h"
+
+using namespace std;
+
+class program_line {
+
+   string            line;
+   string_token      tokens;
+
+  public:
+
+   string get_line()          {return line;};
+   string get_token(int i)    {return tokens.get_token_by_index(i);};
+   int    get_token_size()    {return tokens.size();};
+
+   void   set_line(string s);
+   void   substitute(string old_s, string new_s);
+   void   global_substitute(string old_s, string new_s);
+   int    get_token_number_from_string (string s);
+   int    get_token_number_from_string_upper (string s);
+
+   void   update_token                 (int i, string s);
+   void   change_variable_to_vector    (string var);
+   void   change_variable_to_vector_g  (Vvar  &var);
+};
+
+#endif
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/src/utils.C
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/src/utils.C	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/src/utils.C	(revision 2696)
@@ -0,0 +1,85 @@
+
+// ############################################################################
+//
+//     create_mz_kpp_module 
+//
+//     create scalar code from .f90 sources created by KPP to be used in MESSy
+//
+//     COPYRIGHT Klaus Ketelsen and MPI-CH   April 2007
+//
+// ############################################################################
+
+//  mz_rs_20090111+
+// stdlib is necessary to define abort():
+#include <stdlib.h>
+//  mz_rs_20090111-
+
+#include "utils.h"
+
+void string_token::fill_token (string s) {
+   int      ip,ib;
+
+   string buf=s+" ";
+   size_val  = 0;
+
+   tokens.clear();
+   position.clear();
+
+// extract fields from buffer
+
+   int i=0;
+   int pos=0;
+   while( 1 ) {
+     while (1) {
+        ib = buf.find(seperator,0);
+        if(ib == string::npos)   break;
+        if(ib != 0)   break;
+        buf.erase(0,1);
+        pos++;
+     }
+     ip = buf.find(seperator,0);
+     if(ip == string::npos)   break;
+     tokens.push_back(buf.substr(0,ip));
+     position.push_back(pos);
+     size_val++;
+     buf.erase(0,ip);
+     pos += ib;
+
+     i++;
+   }
+
+   is = tokens.begin();
+
+   return;
+};
+
+
+void my_abort (string s) {
+   cout << "*** ERROR: " << s  <<endl;
+   abort();
+
+   return;
+}
+
+string my_to_upper(string sinp) {
+  string       s1,s2;
+
+  const char   *c1;
+  char         c2[2];
+  int          i1,i2;
+
+  for(int i=0; i<sinp.size(); i++) {
+    s1.clear();
+    s1 = sinp.substr(i,1);
+    c1 = s1.c_str();
+
+    i1 = *c1;
+    i2 = toupper(i1);
+    *c2 = i2;
+    c2[1] = 0;
+
+    s2 += c2;
+  }
+
+  return s2;
+}
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/src/utils.h
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/src/utils.h	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/src/utils.h	(revision 2696)
@@ -0,0 +1,91 @@
+#ifndef UTIL
+#define UTIL 1
+
+// ############################################################################
+//
+//     create_mz_kpp_module 
+//
+//     create scalar code from .f90 sources created by KPP to be used in MESSy
+//
+//     COPYRIGHT Klaus Ketelsen and MPI-CH   April 2007
+//
+// ############################################################################
+
+#include <string>
+#include <list>
+#include <vector>
+
+#include <iostream>
+#include <string>
+
+using namespace std;
+
+extern void my_abort(string s);
+extern string my_to_upper(string sinp);
+
+class Vvar {
+ public:
+  string                name;
+  vector<string>        dim_var;
+
+  int nr_dim() {return dim_var.size(); };
+  void clear() {name.clear(); dim_var.clear(); return; };
+};
+
+class control_switches {
+ private:
+  bool   vector_mode;            // false     Generate scalar code
+                                 // true      Generate vector code
+
+  string vector_length;
+
+  int de_index_mode;              // 0: no de-indexing
+                                  // 1: normal de-indexing
+                                  // 2: 'fast' de-indexing  (LU)
+                                  // 3: 'old' de-indexing
+
+ public:
+
+  void   set_vector_mode()              {vector_mode = true; return;};
+  void   set_vector_length (string s)   {vector_length=s; return;};
+  void   set_de_index_mode(int i)       {de_index_mode = i; return;};
+
+
+  bool   is_vector()           {return vector_mode;};
+  string get_vector_length ()  {return vector_length;};
+  int de_indexing ()           {return de_index_mode;};
+
+  control_switches () {vector_mode = false; vector_length="1"; de_index_mode=0;} 
+};
+
+extern control_switches kpp_switches;
+
+class string_token {
+ private:
+  int                         size_val;
+  string                      seperator;
+  vector <string>             tokens;
+  vector <string>::iterator   is;
+  vector <int>                position;
+
+ public:
+    void set_separator (string s) {seperator.clear();seperator=s; return; };
+
+    void    fill_token (string s);
+    bool    get_next_token(string &s) { s=*is++; return (is == tokens.end()); };
+    string  get_token_by_index (int index) { if(index <= size_val-1) {
+                                               return tokens[index]; 
+                                             } else {
+                                               return " "; }; };
+    int     size()                         { return size_val; };
+    void    update (int i, string s)       { tokens[i].clear(); tokens[i] = s;return;};
+    int     get_position(int i)            { return position[i]; };
+    void    reset (string s)               { tokens.clear(); fill_token (s); return; };
+
+
+    string_token ()         {size_val=0;seperator=" ";};
+    string_token (string s) {size_val=0;seperator=s;};
+
+};
+
+#endif
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/templates/initialize_kpp_ctrl_template.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/templates/initialize_kpp_ctrl_template.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/templates/initialize_kpp_ctrl_template.f90	(revision 2696)
@@ -0,0 +1,100 @@
+MODULE initialize_kpp_ctrl_template
+
+  ! HEADER MODULE initialize_kpp_ctrl_template
+
+  ! NOTES:
+  ! - L_VECTOR is automatically defined by kp4
+  ! - VL_DIM is automatically defined by kp4
+  ! - I_LU_DI is automatically defined by kp4
+  ! - WANTED is automatically defined by xmecca
+  ! - ICNTRL RCNTRL are automatically defined by kpp
+  ! - "USE messy_main_tools" is in Module_header of messy_mecca_kpp.f90
+  ! - SAVE will be automatically added by kp4
+
+  IMPLICIT NONE
+  !SAVE
+
+  ! FOR FIXED TIME STEP CONTROL
+  ! ... max. number of fixed time steps (sum must be 1)
+  INTEGER, PARAMETER         :: NMAXFIXSTEPS = 50
+  ! ... switch for fixed time stepping
+  LOGICAL, PUBLIC            :: l_fixed_step = .FALSE.
+  INTEGER, PUBLIC            :: nfsteps = 1
+  ! ... number of kpp control parameters
+  INTEGER, PARAMETER, PUBLIC :: NKPPCTRL = 20
+  !
+  INTEGER,  DIMENSION(NKPPCTRL), PUBLIC     :: icntrl = 0
+  REAL(DP), DIMENSION(NKPPCTRL), PUBLIC     :: rcntrl = 0.0_dp
+  REAL(DP), DIMENSION(NMAXFIXSTEPS), PUBLIC :: t_steps = 0.0_dp
+
+  ! END HEADER MODULE initialize_kpp_ctrl_template
+
+CONTAINS
+
+SUBROUTINE initialize_kpp_ctrl(status, iou, modstr)
+
+  IMPLICIT NONE
+
+  ! I/O
+  INTEGER,          INTENT(OUT) :: status
+  INTEGER,          INTENT(IN)  :: iou     ! logical I/O unit
+  CHARACTER(LEN=*), INTENT(IN)  :: modstr  ! read <modstr>.nml
+
+  ! LOCAL
+  REAL(DP) :: tsum
+  INTEGER  :: i
+
+  ! check fixed time steps
+  tsum = 0.0_dp
+  DO i=1, NMAXFIXSTEPS
+     IF (t_steps(i) < TINY(0.0_DP)) EXIT
+     tsum = tsum + t_steps(i)
+  END DO
+
+  nfsteps = i-1
+
+  l_fixed_step = (nfsteps > 0) .AND. ( (tsum -1.0) < TINY(0.0_DP) )
+
+  IF (L_VECTOR) THEN
+     WRITE(*,*) ' MODE             : VECTOR (LENGTH=',VL_DIM,')'
+  ELSE
+     WRITE(*,*) ' MODE             : SCALAR'
+  END IF
+  !
+  WRITE(*,*) ' DE-INDEXING MODE :',I_LU_DI
+  !
+  WRITE(*,*) ' ICNTRL           : ',icntrl
+  WRITE(*,*) ' RCNTRL           : ',rcntrl
+  !
+  ! NOTE: THIS IS ONLY MEANINGFUL FOR VECTORIZED (kp4) ROSENBROCK-METHODS
+  IF (L_VECTOR) THEN
+     IF (l_fixed_step) THEN
+        WRITE(*,*) ' TIME STEPS       : FIXED (',t_steps(1:nfsteps),')'
+     ELSE
+        WRITE(*,*) ' TIME STEPS       : AUTOMATIC'
+     END IF
+  ELSE
+     WRITE(*,*) ' TIME STEPS       : AUTOMATIC '//&
+          &'(t_steps (CTRL_KPP) ignored in SCALAR MODE)'
+  END IF
+  ! mz_pj_20070531-
+
+  status = 0
+
+
+END SUBROUTINE initialize_kpp_ctrl
+
+SUBROUTINE error_output(C,ierr,PE)
+
+  IMPLICIT NONE
+
+  INTEGER, INTENT(IN) :: ierr
+  INTEGER, INTENT(IN) :: PE
+  REAL(dp), DIMENSION(:),INTENT(IN) :: C
+
+  write(6,*) 'ERROR in chem_gasphase_mod ',ierr,C(1)
+
+
+END SUBROUTINE error_output
+
+END MODULE initialize_kpp_ctrl_template
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/templates/messy_main_tools_kp4_compress.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/templates/messy_main_tools_kp4_compress.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/templates/messy_main_tools_kp4_compress.f90	(revision 2696)
@@ -0,0 +1,204 @@
+module messy_main_tools_kp4_compress
+!
+! Module to compress data for ros_Integrator using variable time step 
+! in vector mode. This module is not dependent on chemistry setup and
+! can be use for multiple chemistry setups in one job.
+!
+
+!     COPYRIGHT Klaus Ketelsen and MPI-CH              May 2007
+
+
+  implicit none
+  private
+  save
+
+! KPP DP - Double precision kind
+  INTEGER, PARAMETER :: dp = SELECTED_REAL_KIND(12,307)
+
+
+! variables
+  integer                                   :: kpoints
+  integer                                   :: kpoints_save
+  integer,dimension(:),allocatable,public   :: index_org
+  integer,dimension(:),allocatable          :: index_step
+  logical,dimension(:),allocatable,public   :: cell_done
+  logical,dimension(:),allocatable          :: done_check
+
+! Data arrays
+  real(kind=dp),dimension(:,:),allocatable  :: f_done
+  integer,      dimension(:),  allocatable  :: Kacc_done, Krej_done
+  integer,      dimension(:),  allocatable  :: ierr_done
+
+! interface block
+
+  interface kco_initialize
+    module procedure kco_initialize
+  end interface kco_initialize
+
+  interface kco_compress
+    module procedure kco_compress
+  end interface kco_compress
+
+  interface kco_finalize
+    module procedure kco_finalize
+  end interface kco_finalize
+
+  public kco_initialize,kco_compress
+  public kco_finalize
+
+ contains
+! Public subroutines
+
+  subroutine kco_initialize (npoints_initial, f, IERR, Kacc, Krej)
+    implicit    none
+    integer,intent(IN)                                  :: npoints_initial
+    real(kind=dp),intent(IN),dimension(:,:)             :: f     !Only to get dimension for f_done
+    integer,intent(IN),dimension(:)                     :: IERR
+    integer,intent(IN),dimension(:)                     :: Kacc, Krej
+
+!-- local variables
+    integer                          :: jl
+
+    kpoints      = npoints_initial
+    kpoints_save = kpoints
+
+    allocate(index_org(kpoints))
+    allocate(done_check(kpoints))
+    allocate(index_step(kpoints))
+    allocate(cell_done(kpoints))
+    
+    allocate(f_done(size(f,1),size(f,2)))
+    allocate(Kacc_done(size(Kacc)))
+    allocate(Krej_done(size(Krej)))
+    allocate(ierr_done(size(ierr)))
+
+    cell_done     = .false.
+    done_check    = .false.
+
+    do jl=1,kpoints
+      index_org(jl) = jl
+    end do
+
+    return
+  end subroutine kco_initialize
+
+  subroutine kco_compress (n_points, T, H, Hnew, IERR, f, RCONST, FIX,     &
+                                   RejectLastH, RejectMoreH, Kacc, Krej)
+    implicit    none
+    integer,intent(INOUT)                       :: n_points
+    real(kind=dp),intent(INOUT),dimension(:)    :: T, H, Hnew
+    INTEGER,intent(INOUT),dimension(:)          :: IERR
+    real(kind=dp),intent(INOUT),dimension(:,:)  :: f
+    real(kind=dp),intent(INOUT),dimension(:,:)  :: RCONST, FIX
+    LOGICAL,intent(INOUT),dimension(:)          :: RejectLastH, RejectMoreH
+    integer,intent(INOUT),dimension(:)          :: Kacc, Krej
+
+!-- local variables
+    integer                          :: i,jl
+    integer                          :: ic
+
+!   Check, if converged variables exist
+
+    if(.not. any(cell_done(1:kpoints)))   return
+
+!   Move converged cells to original position
+
+    do i=1,size(f,2)
+!CDIR NODEP
+      do jl=1,kpoints
+        if(cell_done(jl))   then
+          f_done(index_org(jl),i) = f(jl,i) 
+        end if
+      end do
+    end do
+    
+    do jl=1,kpoints
+      if(cell_done(jl))   then
+        ierr_done(index_org(jl)) = ierr(jl) 
+        Kacc_done(index_org(jl)) = Kacc(jl) 
+        Krej_done(index_org(jl)) = Krej(jl) 
+      end if
+    end do
+
+!CDIR NODEP
+    do jl=1,kpoints
+      if(cell_done(jl))   then
+        done_check(index_org(jl)) = .true.
+      end if
+    end do
+!kk    write(6,*) 'done check ',kpoints,count(done_check)
+        
+!   Compute new index vector
+
+    ic = 0
+    do jl=1,kpoints
+      if(.not.cell_done(jl))   then
+        ic = ic+1
+        index_step(ic) = jl
+      end if
+    end do
+
+!kk    write(6,*) 'new number of points: ',ic
+
+!   Set new number of Points
+
+    kpoints  = ic
+    n_points = ic
+
+!   Compress arrays
+
+    index_org(1:ic) = index_org(index_step(1:ic))
+
+    do i=1,size(f,2)
+      f(1:ic,i) = f(index_step(1:ic),i)
+    end do
+
+!   compress argument list arrays
+
+    T(1:ic)           = T(index_step(1:ic))
+    IERR(1:ic)        = IERR(index_step(1:ic))
+    H(1:ic)           = H(index_step(1:ic))
+    Hnew(1:ic)        = Hnew(index_step(1:ic))
+
+    do i=1,size(RCONST,2)
+       RCONST(1:ic,i) = RCONST(index_step(1:ic),i)
+    end do
+
+    do i=1,size(FIX,2)
+       FIX(1:ic,i)    = FIX(index_step(1:ic),i)
+    end do
+
+    RejectLastH(1:ic) = RejectLastH(index_step(1:ic))
+    RejectMoreH(1:ic) = RejectMoreH(index_step(1:ic))
+    Kacc(1:ic)        = Kacc(index_step(1:ic))
+    Krej(1:ic)        = Krej(index_step(1:ic))
+
+    return
+  end subroutine kco_compress
+
+  subroutine kco_finalize ( f, IERR, Kacc, Krej)
+    implicit    none
+    real(kind=dp),intent(INOUT),dimension(:,:)   :: f 
+    integer,      intent(INOUT),dimension(:)     :: IERR, Kacc, Krej
+
+    kpoints = kpoints_save
+
+    f(1:kpoints,:)  = f_done(1:kpoints,:)   ! mz_pj_20070903 (1:kpoints) added
+    ierr(1:kpoints) = ierr_done(1:kpoints)  ! mz_pj_20070903 ...
+    Kacc(1:kpoints) = Kacc_done(1:kpoints)  ! mz_pj_20070903 ...
+    Krej(1:kpoints) = Krej_done(1:kpoints)  ! mz_pj_20070903 ...
+
+    deallocate(index_org)
+    deallocate(index_step)
+    deallocate(cell_done)
+    deallocate(done_check)
+
+    deallocate(f_done)
+    deallocate(ierr_done)
+    deallocate(Kacc_done)
+    deallocate(Krej_done)
+
+    return
+  end subroutine kco_finalize
+
+end module messy_main_tools_kp4_compress
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/templates/module_header
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/templates/module_header	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/templates/module_header	(revision 2696)
@@ -0,0 +1,75 @@
+!------------------------------------------------------------------------------!
+!
+! ****** Module chem_gasphase_mod is automatically generated by kpp4palm ******
+!
+!           ********* Please do NOT change this Code *********
+!
+!------------------------------------------------------------------------------!
+! This file is part of PALM.
+!
+! PALM is free software: you can redistribute it and/or modify it under the
+! terms of the GNU General Public License as published by the Free Software
+! Foundation, either version 3 of the License, or (at your option) any later
+! version.
+!
+! PALM is distributed in the hope that it will be useful, but WITHOUT ANY
+! WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+! A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+!
+! You should have received a copy of the GNU General Public License along with
+! PALM. If not, see <http://www.gnu.org/licenses/>.
+!
+! Copyright 1997-2017 Leibniz Universitaet Hannover
+!--------------------------------------------------------------------------------!
+!
+! Current revisions:
+! ------------------
+! 
+! 
+! Former revisions:
+! -----------------
+! $Id: module_header 2460 2017-09-13 14:47:48Z forkel $
+!
+! 
+! Variables for photolyis added
+!
+!
+!
+!
+!
+! Nov. 2016: Intial version (Klaus Ketelsen)
+!
+!------------------------------------------------------------------------------!
+!
+
+
+! Set kpp Double Precision to PALM Default Precision
+
+  USE kinds,            ONLY: dp=>wp
+
+  USE pegrid,           ONLY: myid, threads_per_task
+
+  IMPLICIT        NONE
+  PRIVATE
+  !SAVE  ! NOTE: OCCURS AGAIN IN AUTOMATICALLY GENERATED CODE ...
+
+!  PUBLIC :: IERR_NAMES
+ 
+! PUBLIC :: SPC_NAMES, EQN_NAMES, EQN_TAGS, REQ_HET, REQ_AEROSOL, REQ_PHOTRAT &
+!         , REQ_MCFCT, IP_MAX, jname
+
+  PUBLIC :: eqn_names,  phot_names, spc_names
+  PUBLIC :: nmaxfixsteps
+  PUBLIC :: atol, rtol
+  PUBLIC :: nspec, nreact
+  PUBLIC :: temp
+  PUBLIC :: phot 
+  PUBLIC :: rconst
+  PUBLIC :: nvar
+  PUBLIC :: nphot
+ 
+  PUBLIC :: initialize, integrate, update_rconst
+  PUBLIC :: chem_gasphase_integrate
+  PUBLIC :: initialize_kpp_ctrl
+
+! END OF MODULE HEADER TEMPLATE
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/templates/rosenbrock_vec.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/templates/rosenbrock_vec.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/templates/rosenbrock_vec.f90	(revision 2696)
@@ -0,0 +1,1161 @@
+! NOTE: This routine is a vectorised version of the routine in
+!       rosenbrock_mz.f90 and can only be used with KP4.
+!
+SUBROUTINE Rosenbrock(Y,Tstart,Tend, &
+           AbsTol,RelTol,            &
+           RCNTRL,ICNTRL,RSTATUS,ISTATUS,IERR)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!    Solves the system y'=F(t,y) using a Rosenbrock method defined by:
+!
+!     G = 1/(H*gamma(1)) - Jac(t0,Y0)
+!     T_i = t0 + Alpha(i)*H
+!     Y_i = Y0 + \sum_{j=1}^{i-1} A(i,j)*K_j
+!     G * K_i = Fun( T_i, Y_i ) + \sum_{j=1}^S C(i,j)/H * K_j +
+!         gamma(i)*dF/dT(t0, Y0)
+!     Y1 = Y0 + \sum_{j=1}^S M(j)*K_j
+!
+!    For details on Rosenbrock methods and their implementation consult:
+!      E. Hairer and G. Wanner
+!      "Solving ODEs II. Stiff and differential-algebraic problems".
+!      Springer series in computational mathematics, Springer-Verlag, 1996.
+!    The codes contained in the book inspired this implementation.
+!
+!    (C)  Adrian Sandu, August 2004
+!    Virginia Polytechnic Institute and State University
+!    Contact: sandu@cs.vt.edu
+!    This implementation is part of KPP - the Kinetic PreProcessor
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>   INPUT ARGUMENTS:
+!
+!-     Y(NVAR)    = vector of initial conditions (at T=Tstart)
+!-    [Tstart,Tend]  = time range of integration
+!     (if Tstart>Tend the integration is performed backwards in time)
+!-    RelTol, AbsTol = user precribed accuracy
+!- SUBROUTINE  Fun( T, Y, Ydot ) = ODE function,
+!                       returns Ydot = Y' = F(T,Y)
+!- SUBROUTINE  Jac( T, Y, Jcb ) = Jacobian of the ODE function,
+!                       returns Jcb = dFun/dY
+!-    ICNTRL(1:20)    = integer inputs parameters
+!-    RCNTRL(1:20)    = real inputs parameters
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>     OUTPUT ARGUMENTS:
+!
+!-    Y(NVAR)    -> vector of final states (at T->Tend)
+!-    ISTATUS(1:20)   -> integer output parameters
+!-    RSTATUS(1:20)   -> real output parameters
+!-    IERR            -> job status upon return
+!                        success (positive value) or
+!                        failure (negative value)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>     INPUT PARAMETERS:
+!
+!    Note: For input parameters equal to zero the default values of the
+!       corresponding variables are used.
+!
+!    ICNTRL(1) = 1: F = F(y)   Independent of T (AUTONOMOUS)
+!              = 0: F = F(t,y) Depends on T (NON-AUTONOMOUS)
+!
+!    ICNTRL(2) = 0: AbsTol, RelTol are NVAR-dimensional vectors
+!              = 1: AbsTol, RelTol are scalars
+!
+!    ICNTRL(3)  -> selection of a particular Rosenbrock method
+!        = 0 :  default method is Rodas3
+!        = 1 :  method is  Ros2
+!        = 2 :  method is  Ros3
+!        = 3 :  method is  Ros4
+!        = 4 :  method is  Rodas3
+!        = 5:   method is  Rodas4
+!
+!    ICNTRL(4)  -> maximum number of integration steps
+!        For ICNTRL(4)=0) the default value of 100000 is used
+!
+!    RCNTRL(1)  -> Hmin, lower bound for the integration step size
+!          It is strongly recommended to keep Hmin = ZERO
+!    RCNTRL(2)  -> Hmax, upper bound for the integration step size
+!    RCNTRL(3)  -> Hstart, starting value for the integration step size
+!
+!    RCNTRL(4)  -> FacMin, lower bound on step decrease factor (default=0.2)
+!    RCNTRL(5)  -> FacMax, upper bound on step increase factor (default=6)
+!    RCNTRL(6)  -> FacRej, step decrease factor after multiple rejections
+!            (default=0.1)
+!    RCNTRL(7)  -> FacSafe, by which the new step is slightly smaller
+!         than the predicted value  (default=0.9)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>     OUTPUT PARAMETERS:
+!
+!    Note: each call to Rosenbrock adds the current no. of fcn calls
+!      to previous value of ISTATUS(1), and similar for the other params.
+!      Set ISTATUS(1:20) = 0 before call to avoid this accumulation.
+!
+!    ISTATUS(1) = No. of function calls
+!    ISTATUS(2) = No. of jacobian calls
+!    ISTATUS(3) = No. of steps
+!    ISTATUS(4) = No. of accepted steps
+!    ISTATUS(5) = No. of rejected steps (except at the beginning)
+!    ISTATUS(6) = No. of LU decompositions
+!    ISTATUS(7) = No. of forward/backward substitutions
+!    ISTATUS(8) = No. of singular matrix decompositions
+!
+!    RSTATUS(1)  -> Texit, the time corresponding to the
+!                   computed Y upon return
+!    RSTATUS(2)  -> Hexit, last accepted step before exit
+!    For multiple restarts, use Hexit as Hstart in the following run
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  IMPLICIT NONE
+
+!~~~>  Arguments
+   REAL(kind=dp), INTENT(INOUT) :: Y(:,:)
+   REAL(kind=dp), INTENT(IN)   :: Tstart,Tend
+   REAL(kind=dp), INTENT(IN)   :: AbsTol(NVAR),RelTol(NVAR)
+   INTEGER, INTENT(IN)    :: ICNTRL(20)
+   REAL(kind=dp), INTENT(IN)   :: RCNTRL(20)
+   INTEGER, INTENT(INOUT) :: ISTATUS(20)
+   REAL(kind=dp), INTENT(INOUT) :: RSTATUS(20)
+   INTEGER, INTENT(OUT)   :: IERR
+!~~~>  The method parameters
+   INTEGER, PARAMETER :: Smax = 6
+   INTEGER  :: Method, ros_S
+   REAL(kind=dp), DIMENSION(Smax) :: ros_M, ros_E, ros_Alpha, ros_Gamma
+   REAL(kind=dp), DIMENSION(Smax*(Smax-1)/2) :: ros_A, ros_C
+   REAL(kind=dp) :: ros_ELO
+   LOGICAL, DIMENSION(Smax) :: ros_NewF
+   CHARACTER(LEN=12) :: ros_Name
+!~~~>  Local variables
+   REAL(kind=dp) :: Roundoff, FacMin, FacMax, FacRej, FacSafe
+   REAL(kind=dp) :: Hmin, Hmax, Hstart, Hexit
+   REAL(kind=dp) :: Texit
+   INTEGER :: i, UplimTol, Max_no_steps
+   LOGICAL :: Autonomous, VectorTol
+!~~~>   Parameters
+   REAL(kind=dp), PARAMETER :: ZERO = 0.0_dp, ONE  = 1.0_dp
+   REAL(kind=dp), PARAMETER :: DeltaMin = 1.0E-5_dp
+
+!~~~>  Initialize statistics
+   Nfun = ISTATUS(ifun)
+   Njac = ISTATUS(ijac)
+   Nstp = ISTATUS(istp)
+   Nacc = ISTATUS(iacc)
+   Nrej = ISTATUS(irej)
+   Ndec = ISTATUS(idec)
+   Nsol = ISTATUS(isol)
+   Nsng = ISTATUS(isng)
+
+!~~~>  Autonomous or time dependent ODE. Default is time dependent.
+   Autonomous = .NOT.(ICNTRL(1) == 0)
+
+!~~~>  For Scalar tolerances (ICNTRL(2).NE.0)  the code uses AbsTol(1) and RelTol(1)
+!   For Vector tolerances (ICNTRL(2) == 0) the code uses AbsTol(1:NVAR) and RelTol(1:NVAR)
+   IF (ICNTRL(2) == 0) THEN
+      VectorTol = .TRUE.
+         UplimTol  = NVAR
+   ELSE
+      VectorTol = .FALSE.
+         UplimTol  = 1
+   END IF
+
+!~~~>  The particular Rosenbrock method chosen
+   IF (ICNTRL(3) == 0) THEN
+      Method = 4
+   ELSEIF ( (ICNTRL(3) >= 1).AND.(ICNTRL(3) <= 5) ) THEN
+      Method = ICNTRL(3)
+   ELSE
+      PRINT * , 'User-selected Rosenbrock method: ICNTRL(3)=', Method
+      !CALL ros_ErrorMsg(-2,Tstart,ZERO,IERR)
+      IERRV(:) = -2
+      RETURN
+   END IF
+
+!~~~>   The maximum number of steps admitted
+   IF (ICNTRL(4) == 0) THEN
+      Max_no_steps = 100000 ! 200
+   ELSEIF (ICNTRL(4) > 0) THEN
+      Max_no_steps=ICNTRL(4)
+   ELSE
+      PRINT * ,'User-selected max no. of steps: ICNTRL(4)=',ICNTRL(4)
+      !CALL ros_ErrorMsg(-1,Tstart,ZERO,IERR)
+      IERRV(:) = -1
+      RETURN
+   END IF
+
+!~~~>  Unit roundoff (1+Roundoff>1)
+   Roundoff = WLAMCH('E')
+
+!~~~>  Lower bound on the step size: (positive value)
+   IF (RCNTRL(1) == ZERO) THEN
+      Hmin = ZERO
+   ELSEIF (RCNTRL(1) > ZERO) THEN
+      Hmin = RCNTRL(1)
+   ELSE
+      PRINT * , 'User-selected Hmin: RCNTRL(1)=', RCNTRL(1)
+      !CALL ros_ErrorMsg(-3,Tstart,ZERO,IERR)
+      IERRV(:) = -3
+      RETURN
+   END IF
+!~~~>  Upper bound on the step size: (positive value)
+   IF (RCNTRL(2) == ZERO) THEN
+      Hmax = ABS(Tend-Tstart)
+   ELSEIF (RCNTRL(2) > ZERO) THEN
+      Hmax = MIN(ABS(RCNTRL(2)),ABS(Tend-Tstart))
+   ELSE
+      PRINT * , 'User-selected Hmax: RCNTRL(2)=', RCNTRL(2)
+      !CALL ros_ErrorMsg(-3,Tstart,ZERO,IERR)
+      IERRV(:) = -3
+      RETURN
+   END IF
+!~~~>  Starting step size: (positive value)
+   IF (RCNTRL(3) == ZERO) THEN
+      Hstart = MAX(Hmin,DeltaMin)
+   ELSEIF (RCNTRL(3) > ZERO) THEN
+      Hstart = MIN(ABS(RCNTRL(3)),ABS(Tend-Tstart))
+   ELSE
+      PRINT * , 'User-selected Hstart: RCNTRL(3)=', RCNTRL(3)
+      !CALL ros_ErrorMsg(-3,Tstart,ZERO,IERR)
+      IERRV(:) = -3
+      RETURN
+   END IF
+!~~~>  Step size can be changed s.t.  FacMin < Hnew/Hexit < FacMax
+   IF (RCNTRL(4) == ZERO) THEN
+      FacMin = 0.2_dp
+   ELSEIF (RCNTRL(4) > ZERO) THEN
+      FacMin = RCNTRL(4)
+   ELSE
+      PRINT * , 'User-selected FacMin: RCNTRL(4)=', RCNTRL(4)
+      !CALL ros_ErrorMsg(-4,Tstart,ZERO,IERR)
+      IERRV(:) = -4
+      RETURN
+   END IF
+   IF (RCNTRL(5) == ZERO) THEN
+      FacMax = 6.0_dp
+   ELSEIF (RCNTRL(5) > ZERO) THEN
+      FacMax = RCNTRL(5)
+   ELSE
+      PRINT * , 'User-selected FacMax: RCNTRL(5)=', RCNTRL(5)
+      !CALL ros_ErrorMsg(-4,Tstart,ZERO,IERR)
+      IERRV(:) = -4
+      RETURN
+   END IF
+!~~~>   FacRej: Factor to decrease step after 2 succesive rejections
+   IF (RCNTRL(6) == ZERO) THEN
+      FacRej = 0.1_dp
+   ELSEIF (RCNTRL(6) > ZERO) THEN
+      FacRej = RCNTRL(6)
+   ELSE
+      PRINT * , 'User-selected FacRej: RCNTRL(6)=', RCNTRL(6)
+      !CALL ros_ErrorMsg(-4,Tstart,ZERO,IERR)
+      IERRV(:) = -4
+      RETURN
+   END IF
+!~~~>   FacSafe: Safety Factor in the computation of new step size
+   IF (RCNTRL(7) == ZERO) THEN
+      FacSafe = 0.9_dp
+   ELSEIF (RCNTRL(7) > ZERO) THEN
+      FacSafe = RCNTRL(7)
+   ELSE
+      PRINT * , 'User-selected FacSafe: RCNTRL(7)=', RCNTRL(7)
+      !CALL ros_ErrorMsg(-4,Tstart,ZERO,IERR)
+      IERRV(:) = -4
+      RETURN
+   END IF
+!~~~>  Check if tolerances are reasonable
+    DO i=1,UplimTol
+      IF ( (AbsTol(i) <= ZERO) .OR. (RelTol(i) <= 10.0_dp*Roundoff) &
+         .OR. (RelTol(i) >= 1.0_dp) ) THEN
+        PRINT * , ' AbsTol(',i,') = ',AbsTol(i)
+        PRINT * , ' RelTol(',i,') = ',RelTol(i)
+        !CALL ros_ErrorMsg(-5,Tstart,ZERO,IERR)
+        IERRV(:) = -5
+        RETURN
+      END IF
+    END DO
+
+
+!~~~>   Initialize the particular Rosenbrock method
+   SELECT CASE (Method)
+     CASE (1)
+       CALL Ros2(ros_S, ros_A, ros_C, ros_M, ros_E,   &
+          ros_Alpha, ros_Gamma, ros_NewF, ros_ELO, ros_Name)
+     CASE (2)
+       CALL Ros3(ros_S, ros_A, ros_C, ros_M, ros_E,   &
+          ros_Alpha, ros_Gamma, ros_NewF, ros_ELO, ros_Name)
+     CASE (3)
+       CALL Ros4(ros_S, ros_A, ros_C, ros_M, ros_E,   &
+          ros_Alpha, ros_Gamma, ros_NewF, ros_ELO, ros_Name)
+     CASE (4)
+       CALL Rodas3(ros_S, ros_A, ros_C, ros_M, ros_E, &
+          ros_Alpha, ros_Gamma, ros_NewF, ros_ELO, ros_Name)
+     CASE (5)
+       CALL Rodas4(ros_S, ros_A, ros_C, ros_M, ros_E, &
+          ros_Alpha, ros_Gamma, ros_NewF, ros_ELO, ros_Name)
+     CASE DEFAULT
+       PRINT * , 'Unknown Rosenbrock method: ICNTRL(3)=', Method
+       !CALL ros_ErrorMsg(-2,Tstart,ZERO,IERR)
+       IERRV(:) = -2
+       RETURN
+   END SELECT
+
+!~~~>  CALL Rosenbrock method
+   CALL ros_Integrator(Y,Tstart,Tend,Texit,      &
+        AbsTol, RelTol,                          &
+!  Rosenbrock method coefficients
+        ros_S, ros_M, ros_E, ros_A, ros_C,       &
+        ros_Alpha, ros_Gamma, ros_ELO, ros_NewF, &
+!  Integration parameters
+        Autonomous, VectorTol, Max_no_steps,     &
+        Roundoff, Hmin, Hmax, Hstart, Hexit,     &
+        FacMin, FacMax, FacRej, FacSafe,         &
+!  Error indicator
+        IERR)
+
+
+!~~~>  Collect run statistics
+   ISTATUS(ifun) = Nfun
+   ISTATUS(ijac) = Njac
+   ISTATUS(istp) = Nstp
+   ISTATUS(iacc) = Nacc
+   ISTATUS(irej) = Nrej
+   ISTATUS(idec) = Ndec
+   ISTATUS(isol) = Nsol
+   ISTATUS(isng) = Nsng
+!~~~> Last T and H
+   RSTATUS(itexit) = Texit
+   RSTATUS(ihexit) = Hexit
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+CONTAINS !  SUBROUTINES internal to Rosenbrock
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE ros_ErrorMsg(Code,T,H,IERR)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!    Handles all error messages
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+   REAL(kind=dp), INTENT(IN) :: T, H
+   INTEGER, INTENT(IN)  :: Code
+   INTEGER, INTENT(INOUT) :: IERR
+
+   IERR = Code
+   PRINT * , &
+     'Forced exit from Rosenbrock due to the following error:'
+   IF ((Code>=-8).AND.(Code<=-1)) THEN
+     PRINT *, IERR_NAMES(Code)
+   ELSE
+     PRINT *, 'Unknown Error code: ', Code
+   ENDIF
+
+   PRINT *, "T=", T, "and H=", H
+
+ END SUBROUTINE ros_ErrorMsg
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE ros_Integrator (Y, Tstart, Tend, Tout,     &
+        AbsTol, RelTol,                          &
+!~~~> Rosenbrock method coefficients
+        ros_S, ros_M, ros_E, ros_A, ros_C,       &
+        ros_Alpha, ros_Gamma, ros_ELO, ros_NewF, &
+!~~~> Integration parameters
+        Autonomous, VectorTol, Max_no_steps,     &
+        Roundoff, Hmin, Hmax, Hstart, Hexit,     &
+        FacMin, FacMax, FacRej, FacSafe,         &
+!~~~> Error indicator
+        IERR )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!   Template for the implementation of a generic Rosenbrock method
+!      defined by ros_S (no of stages)
+!      and its coefficients ros_{A,C,M,E,Alpha,Gamma}
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  USE messy_main_tools_kp4_compress, ONLY: kco_initialize, kco_compress, &
+                                           kco_finalize, cell_done
+  IMPLICIT NONE
+
+!~~~> Input: the initial condition at Tstart; Output: the solution at T
+   REAL(kind=dp), INTENT(INOUT) :: Y(:,:)
+!~~~> Input: integration interval
+   REAL(kind=dp), INTENT(IN) :: Tstart,Tend
+!~~~> Output: time at which the solution is returned (T=Tend if success)
+   REAL(kind=dp), INTENT(OUT) ::  Tout
+!~~~> Input: tolerances
+   REAL(kind=dp), INTENT(IN) ::  AbsTol(NVAR), RelTol(NVAR)
+!~~~> Input: The Rosenbrock method parameters
+   INTEGER, INTENT(IN) ::  ros_S
+   REAL(kind=dp), INTENT(IN) :: ros_M(ros_S), ros_E(ros_S),  &
+       ros_Alpha(ros_S), ros_A(ros_S*(ros_S-1)/2), &
+       ros_Gamma(ros_S), ros_C(ros_S*(ros_S-1)/2), ros_ELO
+   LOGICAL, INTENT(IN) :: ros_NewF(ros_S)
+!~~~> Input: integration parameters
+   LOGICAL, INTENT(IN) :: Autonomous, VectorTol
+   REAL(kind=dp), INTENT(IN) :: Hstart, Hmin, Hmax
+   INTEGER, INTENT(IN) :: Max_no_steps
+   REAL(kind=dp), INTENT(IN) :: Roundoff, FacMin, FacMax, FacRej, FacSafe
+!~~~> Output: last accepted step
+   REAL(kind=dp), INTENT(OUT) :: Hexit
+!~~~> Output: Error indicator
+   INTEGER, INTENT(OUT) :: IERR
+! ~~~~ Local variables
+   REAL(kind=dp) :: Ynew(VL_DIM,NVAR), Fcn0(VL_DIM,NVAR), Fcn(VL_DIM,NVAR)
+   REAL(kind=dp) :: K(VL_DIM,NVAR*ros_S)
+   REAL(kind=dp) :: Jac0(VL_DIM,LU_NONZERO), Ghimj(VL_DIM,LU_NONZERO)
+   REAL(kind=dp) :: Yerr(VL_DIM,NVAR)
+
+!~~~>  Local parameters
+   INTEGER :: ioffset, i, j, istage
+   REAL(kind=dp), PARAMETER :: ZERO = 0.0_dp, ONE  = 1.0_dp
+   REAL(kind=dp), PARAMETER :: DeltaMin = 1.0E-5_dp
+!~~~>  Locally called functions
+!    REAL(kind=dp) WLAMCH
+!    EXTERNAL WLAMCH
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   real(kind=dp)                  :: deltat
+!kk   logical,parameter              :: fixed_step=.true.
+   
+   integer,save             :: icount=0
+
+!  vector compression algorithm
+
+   REAL(kind=dp), dimension(VL_dim)      :: T
+   REAL(kind=dp), dimension(VL_dim)      :: H, Hnew, HC, HC2, HG, Fac, Tau, Err
+   LOGICAL, dimension(VL_dim)            :: RejectLastH, RejectMoreH
+   LOGICAL, dimension(VL_dim)            :: Accept_step
+   integer                               :: vl_save
+
+   REAL(kind=dp), dimension(size(FIX,1),size(FIX,2))      :: FIX_lo
+
+!~~~>  Initial preparations
+   T(1:VL)  = Tstart
+   Hexit    = 0.0_dp
+   H(1:VL)  = MIN(Hstart,Hmax)
+   Tout     = Tend
+   icount   = icount+1
+   where (ABS(H(1:VL)) <= 10.0_dp*Roundoff) H(1:VL) = DeltaMin
+
+   deltat=Tend-Tstart
+
+   RejectLastH(1:VL)=.FALSE.
+   RejectMoreH(1:VL)=.FALSE.
+
+!~~~> Time loop begins below
+
+   Nstp       = 0
+   IERRV(1:VL) = 1  ! successful integration
+   vl_save          = VL
+   FIX_lo(1:VL,:)   = FIX(1:VL,:)
+   Kacc(1:VL)       = 0
+   Krej(1:VL)       = 0
+
+!  intialize compression algorithm
+
+   IF (.not. l_fixed_step) then
+      call kco_initialize (VL, y, IERRV, Kacc, Krej)
+   end if
+
+TimeLoop: DO 
+
+   IF ( Nstp > Max_no_steps ) THEN  ! Too many steps
+      !CALL ros_ErrorMsg(-6,T(1),H(1),IERR)
+      IERRV(1:VL) = -6
+!      call abort()                                   !Vorlaeufig
+      RETURN
+   END IF
+   
+   Where ( (T(1:VL)+0.1_dp*H(1:VL)) == T(1:VL))      ! Step size too small
+      IERRV(1:VL) = -7
+   endwhere
+
+!!$   if( any(error_flag))  then
+!!$      CALL ros_ErrorMsg(-7,T(1),H(1),IERR)
+!!$      call abort()                                   !Vorlaeufig
+!!$      RETURN
+!!$   end if
+
+!~~~>  Limit H if necessary to avoid going beyond Tend
+!kk   Hexit = H
+   H(1:VL) = MIN(H(1:VL),ABS(Tend-T(1:VL)))
+
+!~~~>   Compute the function at current time
+   CALL Fun( Y, FIX_lo, RCONST, Fcn0)
+
+
+!~~~>   Compute the Jacobian at current time
+   CALL Jac_SP( Y, FIX_lo, RCONST, Jac0)
+
+
+!~~~>  Repeat step calculation until current step accepted
+
+   CALL ros_PrepareMatrix(H,ros_Gamma(1), Jac0,Ghimj)
+
+!~~~>   Compute the stages
+Stage: DO istage = 1, ros_S
+
+      ! Current istage offset. Current istage vector is K(ioffset+1:ioffset+NVAR)
+       ioffset = NVAR*(istage-1)
+
+      ! For the 1st istage the function has been computed previously
+       IF ( istage == 1 ) THEN
+         Fcn(1:VL,1:NVAR) = Fcn0(1:VL,1:NVAR) 
+      ! istage>1 and a new function evaluation is needed at the current istage
+       ELSEIF ( ros_NewF(istage) ) THEN
+         select case (istage-1)
+          case (1)
+           Ynew(1:VL,1:NVAR) = Y(1:VL,1:NVAR)
+           Ynew(1:VL,1:NVAR) = Ynew(1:VL,1:NVAR) +  K(1:VL,NVAR*(1- 1)+ 1:NVAR*1) &
+                        *ros_A((istage-1)*(istage-2)/2+ 1)
+          case (2)
+           Ynew(1:VL,1:NVAR) = Y(1:VL,1:NVAR)
+           Ynew(1:VL,1:NVAR) = Ynew(1:VL,1:NVAR) +  K(1:VL,NVAR*(2- 1)+ 1:NVAR*2) &
+                        *ros_A((istage-1)*(istage-2)/2+ 2)
+           Ynew(1:VL,1:NVAR) = Ynew(1:VL,1:NVAR) +  K(1:VL,NVAR*(2- 1)+ 1:NVAR*2) &
+                        *ros_A((istage-1)*(istage-2)/2+ 2)
+          case DEFAULT
+           Ynew(1:VL,1:NVAR) = Y(1:VL,1:NVAR)
+           DO j = 1, istage-1
+             Ynew(1:VL,1:NVAR) = Ynew(1:VL,1:NVAR) +  K(1:VL,NVAR*(j- 1)+ 1:NVAR*j) &
+                          *ros_A((istage-1)*(istage-2)/2+ j)
+           END DO
+         end select
+
+         CALL Fun( Ynew, FIX_lo, RCONST, Fcn)
+       END IF ! if istage == 1 elseif ros_NewF(istage)
+
+       select case (istage-1)
+        case (1)
+         K(1:VL,ioffset+ 1:ioffset+ NVAR) = Fcn(1:VL,1:NVAR)
+         j = 1
+         HC(1:VL) = ros_C((istage-1)*(istage-2)/2+ j)/(H(1:VL))
+         do i=1,NVAR
+           K(1:VL,ioffset+ i) = K(1:VL,ioffset+ i) +  K(1:VL,NVAR*(j- 1)+ i) *HC(1:VL)
+         end do
+        case (2)
+         K(1:VL,ioffset+ 1:ioffset+ NVAR) = Fcn(1:VL,1:NVAR)
+         HC(1:VL)  = ros_C((istage-1)*(istage-2)/2+ 1)/(H(1:VL))
+         HC2(1:VL) = ros_C((istage-1)*(istage-2)/2+ 2)/(H(1:VL))
+         do i=1,NVAR
+           K(1:VL,ioffset+ i) = K(1:VL,ioffset+ i) +  K(1:VL,NVAR*(1- 1)+ i) *HC(1:VL)
+           K(1:VL,ioffset+ i) = K(1:VL,ioffset+ i) +  K(1:VL,NVAR*(2- 1)+ i) *HC2(1:VL)
+         end do
+        case DEFAULT
+         K(1:VL,ioffset+ 1:ioffset+ NVAR) = Fcn(1:VL,1:NVAR)
+         DO j = 1, istage-1
+           HC(1:VL) = ros_C((istage-1)*(istage-2)/2+ j)/(H(1:VL))
+           do i=1,NVAR
+             K(1:VL,ioffset+ i) = K(1:VL,ioffset+ i) +  K(1:VL,NVAR*(j- 1)+ i) *HC(1:VL)
+           end do
+         END DO
+       end select
+
+       CALL ros_Solve(Ghimj, K(:,ioffset+1:ioffset+NVAR))
+
+   END DO Stage
+
+
+   if(ros_S == 3)   then
+     YNEW(1:VL,1:NVAR) = Y(1:VL,1:NVAR)
+     Yerr(1:VL,1:NVAR) = ZERO
+
+!~~~>  Compute the new solution
+     Ynew(1:VL,1:NVAR) = Ynew(1:VL,1:NVAR) + K(1:VL,NVAR*(1-1)+1:NVAR*1) * ros_m(1)
+     Ynew(1:VL,1:NVAR) = Ynew(1:VL,1:NVAR) + K(1:VL,NVAR*(2-1)+1:NVAR*2) * ros_m(2)
+     Ynew(1:VL,1:NVAR) = Ynew(1:VL,1:NVAR) + K(1:VL,NVAR*(3-1)+1:NVAR*3) * ros_m(3)
+
+!~~~>  Compute the error estimation
+
+     Yerr(1:VL,1:NVAR) = Yerr(1:VL,1:NVAR) + K(1:VL,NVAR*(1-1)+1:NVAR*1) * ros_E(1)
+     Yerr(1:VL,1:NVAR) = Yerr(1:VL,1:NVAR) + K(1:VL,NVAR*(2-1)+1:NVAR*2) * ros_E(2)
+     Yerr(1:VL,1:NVAR) = Yerr(1:VL,1:NVAR) + K(1:VL,NVAR*(3-1)+1:NVAR*3) * ros_E(3)
+   else
+     YNEW(1:VL,1:NVAR) = Y(1:VL,1:NVAR)
+     Yerr(1:VL,1:NVAR) = ZERO
+     DO j=1,ros_S
+!~~~>  Compute the new solution
+         Ynew(1:VL,1:NVAR) = Ynew(1:VL,1:NVAR) + &
+                        K(1:VL,NVAR*(j-1)+1:NVAR*j) * ros_m(j)
+
+!~~~>  Compute the error estimation
+
+       Yerr(1:VL,1:NVAR) = Yerr(1:VL,1:NVAR) + &
+                    K(1:VL,NVAR*(j-1)+1:NVAR*j) * ros_E(j)
+     END DO
+   end if
+
+
+!~~~>  Check the error magnitude and adjust step size
+   Nstp = Nstp+1
+
+   if(l_fixed_step)   then
+     Err  = 0.0
+     H    = t_steps(Nstp)*deltat
+     Hnew = t_steps(Nstp)*deltat
+   else
+     Err(1:VL) = ros_ErrorNorm ( Y, Ynew, Yerr, AbsTol, RelTol, VectorTol )
+!~~~> New step size is bounded by FacMin <= Hnew/H <= FacMax
+     where(Err(1:VL) >= 10.0_dp*Roundoff)
+       Fac(1:VL)  = MIN(FacMax,MAX(FacMin,FacSafe/Err(1:VL)**(ONE/ros_ELO)))
+     elsewhere
+       Fac(1:VL)  = 1000.                        !Force large time step
+     endwhere
+     Hnew(1:VL) = H(1:VL)*Fac(1:VL)
+   end if
+
+   Accept_step(1:VL) = (Err(1:VL) <= ONE).OR.(H(1:VL) <= Hmin)
+   where (Accept_step(1:VL))
+      Kacc(1:VL) = Kacc(1:VL)+1
+      T(1:VL) = T(1:VL) + H(1:VL)
+      Hnew(1:VL) = MAX(Hmin,MIN(Hnew(1:VL),Hmax))
+   endwhere
+   do i=1,NVAR
+     where (Accept_step(1:VL))
+       Y(1:VL,i) = MAX(Ynew(1:VL,i),ZERO)
+     endwhere
+   end do
+   where (Accept_step(1:VL) .and. RejectLastH(1:VL))
+      Hnew(1:VL) = MIN(Hnew(1:VL),H(1:VL))
+   endwhere
+   where (Accept_step(1:VL))
+      RejectLastH(1:VL) = .FALSE.
+      RejectMoreH(1:VL) = .FALSE.
+      H(1:VL) = Hnew(1:VL)
+   endwhere
+!kk   ELSE           !~~~> Reject step
+   where (.NOT. Accept_step(1:VL) .and. RejectMoreH(1:VL))
+      Hnew(1:VL) = H(1:VL)*FacRej
+   endwhere
+   where (.NOT. Accept_step(1:VL))
+      RejectMoreH(1:VL) = RejectLastH(1:VL)
+      RejectLastH(1:VL) = .TRUE.
+      H(1:VL) = Hnew(1:VL)
+   endwhere
+   where ( .NOT. Accept_step(1:VL) .and. Kacc(1:VL) >= 1)
+      Krej(1:VL) = Krej(1:VL)+1
+   endwhere
+
+
+   if(l_fixed_step)   then
+      if(Nstp >= Nfsteps) EXIT
+   else
+     cell_done(1:VL) = ( .NOT. (T(1:VL)-Tend)+Roundoff <= ZERO  )  .OR. &
+          (IERRV(1:VL) < 0) ! mz_pj_20070516
+     call kco_compress (VL, T, H, Hnew, IERRV, y, RCONST, FIX_lo,         &
+                                     RejectLastH, RejectMoreH, Kacc, Krej)
+     if(VL == 0)   EXIT
+   end if
+
+!kk   write(0,*) '  aaa ',icount,Nstp,count(cell_done),count(Accept_step),VL,minval(T)
+   END DO TimeLoop
+
+!~~~> Succesful exit
+   IERR = 1  !~~~> The integration was successful
+
+   IF (.not. l_fixed_step) then
+     call kco_finalize (y, IERRV, Kacc, Krej)
+   end if
+
+   VL = VL_save
+
+!kk   write(0,*) 'bbb ',icount,Nstp,maxval(Kacc),maxval(Krej)
+!kk   if(icount >= 10)  call abort()
+
+  END SUBROUTINE ros_Integrator
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  FUNCTION ros_ErrorNorm ( Y, Ynew, Yerr, &
+               AbsTol, RelTol, VectorTol )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> Computes the "scaled norm" of the error vector Yerr
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   IMPLICIT NONE
+
+! Input arguments
+   REAL(kind=dp), INTENT(IN) :: Y(:,:), Ynew(:,:), &
+          Yerr(:,:), AbsTol(NVAR), RelTol(NVAR)
+   LOGICAL, INTENT(IN) ::  VectorTol
+! Local variables
+   REAL(kind=dp), dimension(VL)       :: Err, Scale, Ymax
+   INTEGER  :: i
+   REAL(kind=dp), PARAMETER           :: ZERO = 0.0_dp
+   REAL(kind=dp), dimension(VL)       :: ros_ErrorNorm
+
+   Err = ZERO
+   DO i=1,NVAR
+     Ymax = MAX( ABS(Y(1:VL,i)),ABS(Ynew(1:VL,i)))
+     IF (VectorTol) THEN
+       Scale = AbsTol(i)+ RelTol(i)*Ymax
+     ELSE
+       Scale = AbsTol(1)+ RelTol(1)*Ymax
+     END IF
+     Err = Err+ (Yerr(1:VL,i)/Scale)**2
+   END DO
+   Err  = SQRT(Err/NVAR)
+
+   ros_ErrorNorm = Err
+
+  END FUNCTION ros_ErrorNorm
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  SUBROUTINE ros_PrepareMatrix ( H, gam, Jac0, Ghimj )
+
+! --- --- --- --- --- --- --- --- --- --- --- --- ---
+!  Prepares the LHS matrix for stage calculations
+!  1.  Construct Ghimj = 1/(H*ham) - Jac0
+!      "(Gamma H) Inverse Minus Jacobian"
+!  2.  Repeat LU decomposition of Ghimj until successful.
+!       -half the step size if LU decomposition fails and retry
+!       -exit after 5 consecutive fails
+! --- --- --- --- --- --- --- --- --- --- --- --- ---
+   IMPLICIT NONE
+
+!~~~> Input arguments
+   REAL(kind=dp), INTENT(IN) ::  Jac0(:,:)
+   REAL(kind=dp), INTENT(IN) ::  gam
+!~~~> Output arguments
+   REAL(kind=dp), INTENT(OUT) :: Ghimj(:,:)
+!~~~> Inout arguments
+   REAL(kind=dp), INTENT(INOUT) :: H(:)   ! step size is decreased when LU fails
+!~~~> Local variables
+   INTEGER  :: i, ising, Nconsecutive
+   REAL(kind=dp), dimension(size(H)) :: ghinv
+   REAL(kind=dp), PARAMETER :: ONE  = 1.0_dp, HALF = 0.5_dp
+
+   Nconsecutive = 0
+
+
+!~~~>    Construct Ghimj = 1/(H*gam) - Jac0
+   Ghimj(1:VL,1:LU_NONZERO) = -ONE * JAC0(1:VL,1:LU_NONZERO)
+   ghinv(1:VL) = ONE/(H(1:VL)*gam)
+   DO i=1,NVAR
+     Ghimj(1:VL,LU_DIAG(i)) = Ghimj(1:VL,LU_DIAG(i))+ghinv(1:VL)
+   END DO
+
+!~~~>    Compute LU decomposition
+!CDIR noiexpand
+   CALL KppDecomp( Ghimj, ising )
+
+   Ndec = Ndec + VL
+
+  END SUBROUTINE ros_PrepareMatrix
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE ros_Solve( A, b )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!  Template for the forward/backward substitution (using pre-computed LU decomposition)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   IMPLICIT NONE
+!~~~> Input variables
+   REAL(kind=dp), INTENT(IN)         :: A(:,:)
+!~~~> InOut variables
+   REAL(kind=dp), INTENT(INOUT)      :: b(:,:)
+
+   CALL KppSolve( A, b )
+
+   Nsol = Nsol+VL
+
+  END SUBROUTINE ros_Solve
+
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE Ros2 (ros_S,ros_A,ros_C,ros_M,ros_E,ros_Alpha,&
+            ros_Gamma,ros_NewF,ros_ELO,ros_Name)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! --- AN L-STABLE METHOD, 2 stages, order 2
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  IMPLICIT NONE
+
+   INTEGER, PARAMETER :: S=2
+   INTEGER, INTENT(OUT) ::  ros_S
+   REAL(kind=dp), DIMENSION(S), INTENT(OUT) :: ros_M,ros_E,ros_Alpha,ros_Gamma
+   REAL(kind=dp), DIMENSION(S*(S-1)/2), INTENT(OUT) :: ros_A, ros_C
+   REAL(kind=dp), INTENT(OUT) :: ros_ELO
+   LOGICAL, DIMENSION(S), INTENT(OUT) :: ros_NewF
+   CHARACTER(LEN=12), INTENT(OUT) :: ros_Name
+   DOUBLE PRECISION g
+
+    g = 1.0_dp + 1.0_dp/SQRT(2.0_dp)
+
+!~~~> Name of the method
+    ros_Name = 'ROS-2'
+!~~~> Number of stages
+    ros_S = S
+
+!~~~> The coefficient matrices A and C are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+!   The general mapping formula is:
+!       A(i,j) = ros_A( (i-1)*(i-2)/2 + j )
+!       C(i,j) = ros_C( (i-1)*(i-2)/2 + j )
+
+    ros_A(1) = (1.0_dp)/g
+    ros_C(1) = (-2.0_dp)/g
+!~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+    ros_NewF(1) = .TRUE.
+    ros_NewF(2) = .TRUE.
+!~~~> M_i = Coefficients for new step solution
+    ros_M(1)= (3.0_dp)/(2.0_dp*g)
+    ros_M(2)= (1.0_dp)/(2.0_dp*g)
+! E_i = Coefficients for error estimator
+    ros_E(1) = 1.0_dp/(2.0_dp*g)
+    ros_E(2) = 1.0_dp/(2.0_dp*g)
+!~~~> ros_ELO = estimator of local order - the minimum between the
+!    main and the embedded scheme orders plus one
+    ros_ELO = 2.0_dp
+!~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+    ros_Alpha(1) = 0.0_dp
+    ros_Alpha(2) = 1.0_dp
+!~~~> Gamma_i = \sum_j  gamma_{i,j}
+    ros_Gamma(1) = g
+    ros_Gamma(2) =-g
+
+ END SUBROUTINE Ros2
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE Ros3 (ros_S,ros_A,ros_C,ros_M,ros_E,ros_Alpha,&
+           ros_Gamma,ros_NewF,ros_ELO,ros_Name)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! --- AN L-STABLE METHOD, 3 stages, order 3, 2 function evaluations
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  IMPLICIT NONE
+
+   INTEGER, PARAMETER :: S=3
+   INTEGER, INTENT(OUT) ::  ros_S
+   REAL(kind=dp), DIMENSION(S), INTENT(OUT) :: ros_M,ros_E,ros_Alpha,ros_Gamma
+   REAL(kind=dp), DIMENSION(S*(S-1)/2), INTENT(OUT) :: ros_A, ros_C
+   REAL(kind=dp), INTENT(OUT) :: ros_ELO
+   LOGICAL, DIMENSION(S), INTENT(OUT) :: ros_NewF
+   CHARACTER(LEN=12), INTENT(OUT) :: ros_Name
+
+!~~~> Name of the method
+   ros_Name = 'ROS-3'
+!~~~> Number of stages
+   ros_S = S
+
+!~~~> The coefficient matrices A and C are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+!   The general mapping formula is:
+!       A(i,j) = ros_A( (i-1)*(i-2)/2 + j )
+!       C(i,j) = ros_C( (i-1)*(i-2)/2 + j )
+
+   ros_A(1)= 1.0_dp
+   ros_A(2)= 1.0_dp
+   ros_A(3)= 0.0_dp
+
+   ros_C(1) = -0.10156171083877702091975600115545E+01_dp
+   ros_C(2) =  0.40759956452537699824805835358067E+01_dp
+   ros_C(3) =  0.92076794298330791242156818474003E+01_dp
+!~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+   ros_NewF(1) = .TRUE.
+   ros_NewF(2) = .TRUE.
+   ros_NewF(3) = .FALSE.
+!~~~> M_i = Coefficients for new step solution
+   ros_M(1) =  0.1E+01_dp
+   ros_M(2) =  0.61697947043828245592553615689730E+01_dp
+   ros_M(3) = -0.42772256543218573326238373806514E+00_dp
+! E_i = Coefficients for error estimator
+   ros_E(1) =  0.5E+00_dp
+   ros_E(2) = -0.29079558716805469821718236208017E+01_dp
+   ros_E(3) =  0.22354069897811569627360909276199E+00_dp
+!~~~> ros_ELO = estimator of local order - the minimum between the
+!    main and the embedded scheme orders plus 1
+   ros_ELO = 3.0_dp
+!~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+   ros_Alpha(1)= 0.0E+00_dp
+   ros_Alpha(2)= 0.43586652150845899941601945119356E+00_dp
+   ros_Alpha(3)= 0.43586652150845899941601945119356E+00_dp
+!~~~> Gamma_i = \sum_j  gamma_{i,j}
+   ros_Gamma(1)= 0.43586652150845899941601945119356E+00_dp
+   ros_Gamma(2)= 0.24291996454816804366592249683314E+00_dp
+   ros_Gamma(3)= 0.21851380027664058511513169485832E+01_dp
+
+  END SUBROUTINE Ros3
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE Ros4 (ros_S,ros_A,ros_C,ros_M,ros_E,ros_Alpha,&
+           ros_Gamma,ros_NewF,ros_ELO,ros_Name)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!     L-STABLE ROSENBROCK METHOD OF ORDER 4, WITH 4 STAGES
+!     L-STABLE EMBEDDED ROSENBROCK METHOD OF ORDER 3
+!
+!      E. HAIRER AND G. WANNER, SOLVING ORDINARY DIFFERENTIAL
+!      EQUATIONS II. STIFF AND DIFFERENTIAL-ALGEBRAIC PROBLEMS.
+!      SPRINGER SERIES IN COMPUTATIONAL MATHEMATICS,
+!      SPRINGER-VERLAG (1990)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  IMPLICIT NONE
+
+   INTEGER, PARAMETER :: S=4
+   INTEGER, INTENT(OUT) ::  ros_S
+   REAL(kind=dp), DIMENSION(4), INTENT(OUT) :: ros_M,ros_E,ros_Alpha,ros_Gamma
+   REAL(kind=dp), DIMENSION(6), INTENT(OUT) :: ros_A, ros_C
+   REAL(kind=dp), INTENT(OUT) :: ros_ELO
+   LOGICAL, DIMENSION(4), INTENT(OUT) :: ros_NewF
+   CHARACTER(LEN=12), INTENT(OUT) :: ros_Name
+   DOUBLE PRECISION g
+
+!~~~> Name of the method
+   ros_Name = 'ROS-4'
+!~~~> Number of stages
+   ros_S = S
+
+!~~~> The coefficient matrices A and C are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+!   The general mapping formula is:
+!       A(i,j) = ros_A( (i-1)*(i-2)/2 + j )
+!       C(i,j) = ros_C( (i-1)*(i-2)/2 + j )
+
+   ros_A(1) = 0.2000000000000000E+01_dp
+   ros_A(2) = 0.1867943637803922E+01_dp
+   ros_A(3) = 0.2344449711399156E+00_dp
+   ros_A(4) = ros_A(2)
+   ros_A(5) = ros_A(3)
+   ros_A(6) = 0.0_dp
+
+   ros_C(1) =-0.7137615036412310E+01_dp
+   ros_C(2) = 0.2580708087951457E+01_dp
+   ros_C(3) = 0.6515950076447975E+00_dp
+   ros_C(4) =-0.2137148994382534E+01_dp
+   ros_C(5) =-0.3214669691237626E+00_dp
+   ros_C(6) =-0.6949742501781779E+00_dp
+!~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+   ros_NewF(1)  = .TRUE.
+   ros_NewF(2)  = .TRUE.
+   ros_NewF(3)  = .TRUE.
+   ros_NewF(4)  = .FALSE.
+!~~~> M_i = Coefficients for new step solution
+   ros_M(1) = 0.2255570073418735E+01_dp
+   ros_M(2) = 0.2870493262186792E+00_dp
+   ros_M(3) = 0.4353179431840180E+00_dp
+   ros_M(4) = 0.1093502252409163E+01_dp
+!~~~> E_i  = Coefficients for error estimator
+   ros_E(1) =-0.2815431932141155E+00_dp
+   ros_E(2) =-0.7276199124938920E-01_dp
+   ros_E(3) =-0.1082196201495311E+00_dp
+   ros_E(4) =-0.1093502252409163E+01_dp
+!~~~> ros_ELO  = estimator of local order - the minimum between the
+!    main and the embedded scheme orders plus 1
+   ros_ELO  = 4.0_dp
+!~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+   ros_Alpha(1) = 0.0_dp
+   ros_Alpha(2) = 0.1145640000000000E+01_dp
+   ros_Alpha(3) = 0.6552168638155900E+00_dp
+   ros_Alpha(4) = ros_Alpha(3)
+!~~~> Gamma_i = \sum_j  gamma_{i,j}
+   ros_Gamma(1) = 0.5728200000000000E+00_dp
+   ros_Gamma(2) =-0.1769193891319233E+01_dp
+   ros_Gamma(3) = 0.7592633437920482E+00_dp
+   ros_Gamma(4) =-0.1049021087100450E+00_dp
+
+  END SUBROUTINE Ros4
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE Rodas3 (ros_S,ros_A,ros_C,ros_M,ros_E,ros_Alpha,&
+            ros_Gamma,ros_NewF,ros_ELO,ros_Name)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! --- A STIFFLY-STABLE METHOD, 4 stages, order 3
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  IMPLICIT NONE
+
+   INTEGER, PARAMETER :: S=4
+   INTEGER, INTENT(OUT) ::  ros_S
+   REAL(kind=dp), DIMENSION(S), INTENT(OUT) :: ros_M,ros_E,ros_Alpha,ros_Gamma
+   REAL(kind=dp), DIMENSION(S*(S-1)/2), INTENT(OUT) :: ros_A, ros_C
+   REAL(kind=dp), INTENT(OUT) :: ros_ELO
+   LOGICAL, DIMENSION(S), INTENT(OUT) :: ros_NewF
+   CHARACTER(LEN=12), INTENT(OUT) :: ros_Name
+   DOUBLE PRECISION g
+
+!~~~> Name of the method
+   ros_Name = 'RODAS-3'
+!~~~> Number of stages
+   ros_S = S
+
+!~~~> The coefficient matrices A and C are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+!   The general mapping formula is:
+!       A(i,j) = ros_A( (i-1)*(i-2)/2 + j )
+!       C(i,j) = ros_C( (i-1)*(i-2)/2 + j )
+
+   ros_A(1) = 0.0E+00_dp
+   ros_A(2) = 2.0E+00_dp
+   ros_A(3) = 0.0E+00_dp
+   ros_A(4) = 2.0E+00_dp
+   ros_A(5) = 0.0E+00_dp
+   ros_A(6) = 1.0E+00_dp
+
+   ros_C(1) = 4.0E+00_dp
+   ros_C(2) = 1.0E+00_dp
+   ros_C(3) =-1.0E+00_dp
+   ros_C(4) = 1.0E+00_dp
+   ros_C(5) =-1.0E+00_dp
+   ros_C(6) =-(8.0E+00_dp/3.0E+00_dp)
+
+!~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+   ros_NewF(1)  = .TRUE.
+   ros_NewF(2)  = .FALSE.
+   ros_NewF(3)  = .TRUE.
+   ros_NewF(4)  = .TRUE.
+!~~~> M_i = Coefficients for new step solution
+   ros_M(1) = 2.0E+00_dp
+   ros_M(2) = 0.0E+00_dp
+   ros_M(3) = 1.0E+00_dp
+   ros_M(4) = 1.0E+00_dp
+!~~~> E_i  = Coefficients for error estimator
+   ros_E(1) = 0.0E+00_dp
+   ros_E(2) = 0.0E+00_dp
+   ros_E(3) = 0.0E+00_dp
+   ros_E(4) = 1.0E+00_dp
+!~~~> ros_ELO  = estimator of local order - the minimum between the
+!    main and the embedded scheme orders plus 1
+   ros_ELO  = 3.0E+00_dp
+!~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+   ros_Alpha(1) = 0.0E+00_dp
+   ros_Alpha(2) = 0.0E+00_dp
+   ros_Alpha(3) = 1.0E+00_dp
+   ros_Alpha(4) = 1.0E+00_dp
+!~~~> Gamma_i = \sum_j  gamma_{i,j}
+   ros_Gamma(1) = 0.5E+00_dp
+   ros_Gamma(2) = 1.5E+00_dp
+   ros_Gamma(3) = 0.0E+00_dp
+   ros_Gamma(4) = 0.0E+00_dp
+
+  END SUBROUTINE Rodas3
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE Rodas4 (ros_S,ros_A,ros_C,ros_M,ros_E,ros_Alpha,&
+             ros_Gamma,ros_NewF,ros_ELO,ros_Name)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!     STIFFLY-STABLE ROSENBROCK METHOD OF ORDER 4, WITH 6 STAGES
+!
+!      E. HAIRER AND G. WANNER, SOLVING ORDINARY DIFFERENTIAL
+!      EQUATIONS II. STIFF AND DIFFERENTIAL-ALGEBRAIC PROBLEMS.
+!      SPRINGER SERIES IN COMPUTATIONAL MATHEMATICS,
+!      SPRINGER-VERLAG (1996)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  IMPLICIT NONE
+
+   INTEGER, PARAMETER :: S=6
+   INTEGER, INTENT(OUT) ::  ros_S
+   REAL(kind=dp), DIMENSION(S), INTENT(OUT) :: ros_M,ros_E,ros_Alpha,ros_Gamma
+   REAL(kind=dp), DIMENSION(S*(S-1)/2), INTENT(OUT) :: ros_A, ros_C
+   REAL(kind=dp), INTENT(OUT) :: ros_ELO
+   LOGICAL, DIMENSION(S), INTENT(OUT) :: ros_NewF
+   CHARACTER(LEN=12), INTENT(OUT) :: ros_Name
+   DOUBLE PRECISION g
+
+!~~~> Name of the method
+    ros_Name = 'RODAS-4'
+!~~~> Number of stages
+    ros_S = 6
+
+!~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+    ros_Alpha(1) = 0.000_dp
+    ros_Alpha(2) = 0.386_dp
+    ros_Alpha(3) = 0.210_dp
+    ros_Alpha(4) = 0.630_dp
+    ros_Alpha(5) = 1.000_dp
+    ros_Alpha(6) = 1.000_dp
+
+!~~~> Gamma_i = \sum_j  gamma_{i,j}
+    ros_Gamma(1) = 0.2500000000000000E+00_dp
+    ros_Gamma(2) =-0.1043000000000000E+00_dp
+    ros_Gamma(3) = 0.1035000000000000E+00_dp
+    ros_Gamma(4) =-0.3620000000000023E-01_dp
+    ros_Gamma(5) = 0.0_dp
+    ros_Gamma(6) = 0.0_dp
+
+!~~~> The coefficient matrices A and C are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+!   The general mapping formula is:  A(i,j) = ros_A( (i-1)*(i-2)/2 + j )
+!                  C(i,j) = ros_C( (i-1)*(i-2)/2 + j )
+
+    ros_A(1) = 0.1544000000000000E+01_dp
+    ros_A(2) = 0.9466785280815826E+00_dp
+    ros_A(3) = 0.2557011698983284E+00_dp
+    ros_A(4) = 0.3314825187068521E+01_dp
+    ros_A(5) = 0.2896124015972201E+01_dp
+    ros_A(6) = 0.9986419139977817E+00_dp
+    ros_A(7) = 0.1221224509226641E+01_dp
+    ros_A(8) = 0.6019134481288629E+01_dp
+    ros_A(9) = 0.1253708332932087E+02_dp
+    ros_A(10) =-0.6878860361058950E+00_dp
+    ros_A(11) = ros_A(7)
+    ros_A(12) = ros_A(8)
+    ros_A(13) = ros_A(9)
+    ros_A(14) = ros_A(10)
+    ros_A(15) = 1.0E+00_dp
+
+    ros_C(1) =-0.5668800000000000E+01_dp
+    ros_C(2) =-0.2430093356833875E+01_dp
+    ros_C(3) =-0.2063599157091915E+00_dp
+    ros_C(4) =-0.1073529058151375E+00_dp
+    ros_C(5) =-0.9594562251023355E+01_dp
+    ros_C(6) =-0.2047028614809616E+02_dp
+    ros_C(7) = 0.7496443313967647E+01_dp
+    ros_C(8) =-0.1024680431464352E+02_dp
+    ros_C(9) =-0.3399990352819905E+02_dp
+    ros_C(10) = 0.1170890893206160E+02_dp
+    ros_C(11) = 0.8083246795921522E+01_dp
+    ros_C(12) =-0.7981132988064893E+01_dp
+    ros_C(13) =-0.3152159432874371E+02_dp
+    ros_C(14) = 0.1631930543123136E+02_dp
+    ros_C(15) =-0.6058818238834054E+01_dp
+
+!~~~> M_i = Coefficients for new step solution
+    ros_M(1) = ros_A(7)
+    ros_M(2) = ros_A(8)
+    ros_M(3) = ros_A(9)
+    ros_M(4) = ros_A(10)
+    ros_M(5) = 1.0E+00_dp
+    ros_M(6) = 1.0E+00_dp
+
+!~~~> E_i  = Coefficients for error estimator
+    ros_E(1) = 0.0E+00_dp
+    ros_E(2) = 0.0E+00_dp
+    ros_E(3) = 0.0E+00_dp
+    ros_E(4) = 0.0E+00_dp
+    ros_E(5) = 0.0E+00_dp
+    ros_E(6) = 1.0E+00_dp
+
+!~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+    ros_NewF(1) = .TRUE.
+    ros_NewF(2) = .TRUE.
+    ros_NewF(3) = .TRUE.
+    ros_NewF(4) = .TRUE.
+    ros_NewF(5) = .TRUE.
+    ros_NewF(6) = .TRUE.
+
+!~~~> ros_ELO  = estimator of local order - the minimum between the
+!        main and the embedded scheme orders plus 1
+    ros_ELO = 4.0_dp
+
+  END SUBROUTINE Rodas4
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!   End of the set of internal Rosenbrock subroutines
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+END SUBROUTINE Rosenbrock
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/templates/rosenbrock_vec.f90.save
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/templates/rosenbrock_vec.f90.save	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/kpp4palm/templates/rosenbrock_vec.f90.save	(revision 2696)
@@ -0,0 +1,1152 @@
+SUBROUTINE Rosenbrock(Y,Tstart,Tend, &
+           AbsTol,RelTol,            &
+           RCNTRL,ICNTRL,RSTATUS,ISTATUS,IERR)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!    Solves the system y'=F(t,y) using a Rosenbrock method defined by:
+!
+!     G = 1/(H*gamma(1)) - Jac(t0,Y0)
+!     T_i = t0 + Alpha(i)*H
+!     Y_i = Y0 + \sum_{j=1}^{i-1} A(i,j)*K_j
+!     G * K_i = Fun( T_i, Y_i ) + \sum_{j=1}^S C(i,j)/H * K_j +
+!         gamma(i)*dF/dT(t0, Y0)
+!     Y1 = Y0 + \sum_{j=1}^S M(j)*K_j
+!
+!    For details on Rosenbrock methods and their implementation consult:
+!      E. Hairer and G. Wanner
+!      "Solving ODEs II. Stiff and differential-algebraic problems".
+!      Springer series in computational mathematics, Springer-Verlag, 1996.
+!    The codes contained in the book inspired this implementation.
+!
+!    (C)  Adrian Sandu, August 2004
+!    Virginia Polytechnic Institute and State University
+!    Contact: sandu@cs.vt.edu
+!    This implementation is part of KPP - the Kinetic PreProcessor
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>   INPUT ARGUMENTS:
+!
+!-     Y(NVAR)    = vector of initial conditions (at T=Tstart)
+!-    [Tstart,Tend]  = time range of integration
+!     (if Tstart>Tend the integration is performed backwards in time)
+!-    RelTol, AbsTol = user precribed accuracy
+!- SUBROUTINE  Fun( T, Y, Ydot ) = ODE function,
+!                       returns Ydot = Y' = F(T,Y)
+!- SUBROUTINE  Jac( T, Y, Jcb ) = Jacobian of the ODE function,
+!                       returns Jcb = dFun/dY
+!-    ICNTRL(1:20)    = integer inputs parameters
+!-    RCNTRL(1:20)    = real inputs parameters
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>     OUTPUT ARGUMENTS:
+!
+!-    Y(NVAR)    -> vector of final states (at T->Tend)
+!-    ISTATUS(1:20)   -> integer output parameters
+!-    RSTATUS(1:20)   -> real output parameters
+!-    IERR            -> job status upon return
+!                        success (positive value) or
+!                        failure (negative value)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>     INPUT PARAMETERS:
+!
+!    Note: For input parameters equal to zero the default values of the
+!       corresponding variables are used.
+!
+!    ICNTRL(1) = 1: F = F(y)   Independent of T (AUTONOMOUS)
+!              = 0: F = F(t,y) Depends on T (NON-AUTONOMOUS)
+!
+!    ICNTRL(2) = 0: AbsTol, RelTol are NVAR-dimensional vectors
+!              = 1: AbsTol, RelTol are scalars
+!
+!    ICNTRL(3)  -> selection of a particular Rosenbrock method
+!        = 0 :  default method is Rodas3
+!        = 1 :  method is  Ros2
+!        = 2 :  method is  Ros3
+!        = 3 :  method is  Ros4
+!        = 4 :  method is  Rodas3
+!        = 5:   method is  Rodas4
+!
+!    ICNTRL(4)  -> maximum number of integration steps
+!        For ICNTRL(4)=0) the default value of 100000 is used
+!
+!    RCNTRL(1)  -> Hmin, lower bound for the integration step size
+!          It is strongly recommended to keep Hmin = ZERO
+!    RCNTRL(2)  -> Hmax, upper bound for the integration step size
+!    RCNTRL(3)  -> Hstart, starting value for the integration step size
+!
+!    RCNTRL(4)  -> FacMin, lower bound on step decrease factor (default=0.2)
+!    RCNTRL(5)  -> FacMax, upper bound on step increase factor (default=6)
+!    RCNTRL(6)  -> FacRej, step decrease factor after multiple rejections
+!            (default=0.1)
+!    RCNTRL(7)  -> FacSafe, by which the new step is slightly smaller
+!         than the predicted value  (default=0.9)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>     OUTPUT PARAMETERS:
+!
+!    Note: each call to Rosenbrock adds the current no. of fcn calls
+!      to previous value of ISTATUS(1), and similar for the other params.
+!      Set ISTATUS(1:20) = 0 before call to avoid this accumulation.
+!
+!    ISTATUS(1) = No. of function calls
+!    ISTATUS(2) = No. of jacobian calls
+!    ISTATUS(3) = No. of steps
+!    ISTATUS(4) = No. of accepted steps
+!    ISTATUS(5) = No. of rejected steps (except at the beginning)
+!    ISTATUS(6) = No. of LU decompositions
+!    ISTATUS(7) = No. of forward/backward substitutions
+!    ISTATUS(8) = No. of singular matrix decompositions
+!
+!    RSTATUS(1)  -> Texit, the time corresponding to the
+!                   computed Y upon return
+!    RSTATUS(2)  -> Hexit, last accepted step before exit
+!    For multiple restarts, use Hexit as Hstart in the following run
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  IMPLICIT NONE
+
+!~~~>  Arguments
+   REAL(kind=dp), INTENT(INOUT) :: Y(:,:)
+   REAL(kind=dp), INTENT(IN)   :: Tstart,Tend
+   REAL(kind=dp), INTENT(IN)   :: AbsTol(NVAR),RelTol(NVAR)
+   INTEGER, INTENT(IN)    :: ICNTRL(20)
+   REAL(kind=dp), INTENT(IN)   :: RCNTRL(20)
+   INTEGER, INTENT(INOUT) :: ISTATUS(20)
+   REAL(kind=dp), INTENT(INOUT) :: RSTATUS(20)
+   INTEGER, INTENT(OUT)   :: IERR
+!~~~>  The method parameters
+   INTEGER, PARAMETER :: Smax = 6
+   INTEGER  :: Method, ros_S
+   REAL(kind=dp), DIMENSION(Smax) :: ros_M, ros_E, ros_Alpha, ros_Gamma
+   REAL(kind=dp), DIMENSION(Smax*(Smax-1)/2) :: ros_A, ros_C
+   REAL(kind=dp) :: ros_ELO
+   LOGICAL, DIMENSION(Smax) :: ros_NewF
+   CHARACTER(LEN=12) :: ros_Name
+!~~~>  Local variables
+   REAL(kind=dp) :: Roundoff, FacMin, FacMax, FacRej, FacSafe
+   REAL(kind=dp) :: Hmin, Hmax, Hstart, Hexit
+   REAL(kind=dp) :: Texit
+   INTEGER :: i, UplimTol, Max_no_steps
+   LOGICAL :: Autonomous, VectorTol
+!~~~>   Parameters
+   REAL(kind=dp), PARAMETER :: ZERO = 0.0_dp, ONE  = 1.0_dp
+   REAL(kind=dp), PARAMETER :: DeltaMin = 1.0E-5_dp
+
+!~~~>  Initialize statistics
+   Nfun = ISTATUS(ifun)
+   Njac = ISTATUS(ijac)
+   Nstp = ISTATUS(istp)
+   Nacc = ISTATUS(iacc)
+   Nrej = ISTATUS(irej)
+   Ndec = ISTATUS(idec)
+   Nsol = ISTATUS(isol)
+   Nsng = ISTATUS(isng)
+
+!~~~>  Autonomous or time dependent ODE. Default is time dependent.
+   Autonomous = .NOT.(ICNTRL(1) == 0)
+
+!~~~>  For Scalar tolerances (ICNTRL(2).NE.0)  the code uses AbsTol(1) and RelTol(1)
+!   For Vector tolerances (ICNTRL(2) == 0) the code uses AbsTol(1:NVAR) and RelTol(1:NVAR)
+   IF (ICNTRL(2) == 0) THEN
+      VectorTol = .TRUE.
+         UplimTol  = NVAR
+   ELSE
+      VectorTol = .FALSE.
+         UplimTol  = 1
+   END IF
+
+!~~~>  The particular Rosenbrock method chosen
+   IF (ICNTRL(3) == 0) THEN
+      Method = 4
+   ELSEIF ( (ICNTRL(3) >= 1).AND.(ICNTRL(3) <= 5) ) THEN
+      Method = ICNTRL(3)
+   ELSE
+      PRINT * , 'User-selected Rosenbrock method: ICNTRL(3)=', Method
+      CALL ros_ErrorMsg(-2,Tstart,ZERO,IERR)
+      RETURN
+   END IF
+
+!~~~>   The maximum number of steps admitted
+   IF (ICNTRL(4) == 0) THEN
+      Max_no_steps = 100000 ! 200
+   ELSEIF (ICNTRL(4) > 0) THEN
+      Max_no_steps=ICNTRL(4)
+   ELSE
+      PRINT * ,'User-selected max no. of steps: ICNTRL(4)=',ICNTRL(4)
+      CALL ros_ErrorMsg(-1,Tstart,ZERO,IERR)
+      RETURN
+   END IF
+
+!~~~>  Unit roundoff (1+Roundoff>1)
+   Roundoff = WLAMCH('E')
+
+!~~~>  Lower bound on the step size: (positive value)
+   IF (RCNTRL(1) == ZERO) THEN
+      Hmin = ZERO
+   ELSEIF (RCNTRL(1) > ZERO) THEN
+      Hmin = RCNTRL(1)
+   ELSE
+      PRINT * , 'User-selected Hmin: RCNTRL(1)=', RCNTRL(1)
+      CALL ros_ErrorMsg(-3,Tstart,ZERO,IERR)
+      RETURN
+   END IF
+!~~~>  Upper bound on the step size: (positive value)
+   IF (RCNTRL(2) == ZERO) THEN
+      Hmax = ABS(Tend-Tstart)
+   ELSEIF (RCNTRL(2) > ZERO) THEN
+      Hmax = MIN(ABS(RCNTRL(2)),ABS(Tend-Tstart))
+   ELSE
+      PRINT * , 'User-selected Hmax: RCNTRL(2)=', RCNTRL(2)
+      CALL ros_ErrorMsg(-3,Tstart,ZERO,IERR)
+      RETURN
+   END IF
+!~~~>  Starting step size: (positive value)
+   IF (RCNTRL(3) == ZERO) THEN
+      Hstart = MAX(Hmin,DeltaMin)
+   ELSEIF (RCNTRL(3) > ZERO) THEN
+      Hstart = MIN(ABS(RCNTRL(3)),ABS(Tend-Tstart))
+   ELSE
+      PRINT * , 'User-selected Hstart: RCNTRL(3)=', RCNTRL(3)
+      CALL ros_ErrorMsg(-3,Tstart,ZERO,IERR)
+      RETURN
+   END IF
+!~~~>  Step size can be changed s.t.  FacMin < Hnew/Hexit < FacMax
+   IF (RCNTRL(4) == ZERO) THEN
+      FacMin = 0.2_dp
+   ELSEIF (RCNTRL(4) > ZERO) THEN
+      FacMin = RCNTRL(4)
+   ELSE
+      PRINT * , 'User-selected FacMin: RCNTRL(4)=', RCNTRL(4)
+      CALL ros_ErrorMsg(-4,Tstart,ZERO,IERR)
+      RETURN
+   END IF
+   IF (RCNTRL(5) == ZERO) THEN
+      FacMax = 6.0_dp
+   ELSEIF (RCNTRL(5) > ZERO) THEN
+      FacMax = RCNTRL(5)
+   ELSE
+      PRINT * , 'User-selected FacMax: RCNTRL(5)=', RCNTRL(5)
+      CALL ros_ErrorMsg(-4,Tstart,ZERO,IERR)
+      RETURN
+   END IF
+!~~~>   FacRej: Factor to decrease step after 2 succesive rejections
+   IF (RCNTRL(6) == ZERO) THEN
+      FacRej = 0.1_dp
+   ELSEIF (RCNTRL(6) > ZERO) THEN
+      FacRej = RCNTRL(6)
+   ELSE
+      PRINT * , 'User-selected FacRej: RCNTRL(6)=', RCNTRL(6)
+      CALL ros_ErrorMsg(-4,Tstart,ZERO,IERR)
+      RETURN
+   END IF
+!~~~>   FacSafe: Safety Factor in the computation of new step size
+   IF (RCNTRL(7) == ZERO) THEN
+      FacSafe = 0.9_dp
+   ELSEIF (RCNTRL(7) > ZERO) THEN
+      FacSafe = RCNTRL(7)
+   ELSE
+      PRINT * , 'User-selected FacSafe: RCNTRL(7)=', RCNTRL(7)
+      CALL ros_ErrorMsg(-4,Tstart,ZERO,IERR)
+      RETURN
+   END IF
+!~~~>  Check if tolerances are reasonable
+    DO i=1,UplimTol
+      IF ( (AbsTol(i) <= ZERO) .OR. (RelTol(i) <= 10.0_dp*Roundoff) &
+         .OR. (RelTol(i) >= 1.0_dp) ) THEN
+        PRINT * , ' AbsTol(',i,') = ',AbsTol(i)
+        PRINT * , ' RelTol(',i,') = ',RelTol(i)
+        CALL ros_ErrorMsg(-5,Tstart,ZERO,IERR)
+        RETURN
+      END IF
+    END DO
+
+
+!~~~>   Initialize the particular Rosenbrock method
+   SELECT CASE (Method)
+     CASE (1)
+       CALL Ros2(ros_S, ros_A, ros_C, ros_M, ros_E,   &
+          ros_Alpha, ros_Gamma, ros_NewF, ros_ELO, ros_Name)
+     CASE (2)
+       CALL Ros3(ros_S, ros_A, ros_C, ros_M, ros_E,   &
+          ros_Alpha, ros_Gamma, ros_NewF, ros_ELO, ros_Name)
+     CASE (3)
+       CALL Ros4(ros_S, ros_A, ros_C, ros_M, ros_E,   &
+          ros_Alpha, ros_Gamma, ros_NewF, ros_ELO, ros_Name)
+     CASE (4)
+       CALL Rodas3(ros_S, ros_A, ros_C, ros_M, ros_E, &
+          ros_Alpha, ros_Gamma, ros_NewF, ros_ELO, ros_Name)
+     CASE (5)
+       CALL Rodas4(ros_S, ros_A, ros_C, ros_M, ros_E, &
+          ros_Alpha, ros_Gamma, ros_NewF, ros_ELO, ros_Name)
+     CASE DEFAULT
+       PRINT * , 'Unknown Rosenbrock method: ICNTRL(3)=', Method
+       CALL ros_ErrorMsg(-2,Tstart,ZERO,IERR)
+       RETURN
+   END SELECT
+
+!~~~>  CALL Rosenbrock method
+   CALL ros_Integrator(Y,Tstart,Tend,Texit,      &
+        AbsTol, RelTol,                          &
+!  Rosenbrock method coefficients
+        ros_S, ros_M, ros_E, ros_A, ros_C,       &
+        ros_Alpha, ros_Gamma, ros_ELO, ros_NewF, &
+!  Integration parameters
+        Autonomous, VectorTol, Max_no_steps,     &
+        Roundoff, Hmin, Hmax, Hstart, Hexit,     &
+        FacMin, FacMax, FacRej, FacSafe,         &
+!  Error indicator
+        IERR)
+
+
+!~~~>  Collect run statistics
+   ISTATUS(ifun) = Nfun
+   ISTATUS(ijac) = Njac
+   ISTATUS(istp) = Nstp
+   ISTATUS(iacc) = Nacc
+   ISTATUS(irej) = Nrej
+   ISTATUS(idec) = Ndec
+   ISTATUS(isol) = Nsol
+   ISTATUS(isng) = Nsng
+!~~~> Last T and H
+   RSTATUS(itexit) = Texit
+   RSTATUS(ihexit) = Hexit
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+CONTAINS !  SUBROUTINES internal to Rosenbrock
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE ros_ErrorMsg(Code,T,H,IERR)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!    Handles all error messages
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+   REAL(kind=dp), INTENT(IN) :: T, H
+   INTEGER, INTENT(IN)  :: Code
+   INTEGER, INTENT(OUT) :: IERR
+
+   IERR = Code
+   PRINT * , &
+     'Forced exit from Rosenbrock due to the following error:'
+   IF ((Code>=-8).AND.(Code<=-1)) THEN
+     PRINT *, IERR_NAMES(Code)
+   ELSE
+     PRINT *, 'Unknown Error code: ', Code
+   ENDIF
+
+   PRINT *, "T=", T, "and H=", H
+
+ END SUBROUTINE ros_ErrorMsg
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE ros_Integrator (Y, Tstart, Tend, Tout,     &
+        AbsTol, RelTol,                          &
+!~~~> Rosenbrock method coefficients
+        ros_S, ros_M, ros_E, ros_A, ros_C,       &
+        ros_Alpha, ros_Gamma, ros_ELO, ros_NewF, &
+!~~~> Integration parameters
+        Autonomous, VectorTol, Max_no_steps,     &
+        Roundoff, Hmin, Hmax, Hstart, Hexit,     &
+        FacMin, FacMax, FacRej, FacSafe,         &
+!~~~> Error indicator
+        IERR )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!   Template for the implementation of a generic Rosenbrock method
+!      defined by ros_S (no of stages)
+!      and its coefficients ros_{A,C,M,E,Alpha,Gamma}
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  USE      messy_kpp_compress,         ONLY: kco_initialize, kco_compress, &
+                                             kco_finalize, cell_done
+  IMPLICIT NONE
+
+!~~~> Input: the initial condition at Tstart; Output: the solution at T
+   REAL(kind=dp), INTENT(INOUT) :: Y(:,:)
+!~~~> Input: integration interval
+   REAL(kind=dp), INTENT(IN) :: Tstart,Tend
+!~~~> Output: time at which the solution is returned (T=Tend if success)
+   REAL(kind=dp), INTENT(OUT) ::  Tout
+!~~~> Input: tolerances
+   REAL(kind=dp), INTENT(IN) ::  AbsTol(NVAR), RelTol(NVAR)
+!~~~> Input: The Rosenbrock method parameters
+   INTEGER, INTENT(IN) ::  ros_S
+   REAL(kind=dp), INTENT(IN) :: ros_M(ros_S), ros_E(ros_S),  &
+       ros_Alpha(ros_S), ros_A(ros_S*(ros_S-1)/2), &
+       ros_Gamma(ros_S), ros_C(ros_S*(ros_S-1)/2), ros_ELO
+   LOGICAL, INTENT(IN) :: ros_NewF(ros_S)
+!~~~> Input: integration parameters
+   LOGICAL, INTENT(IN) :: Autonomous, VectorTol
+   REAL(kind=dp), INTENT(IN) :: Hstart, Hmin, Hmax
+   INTEGER, INTENT(IN) :: Max_no_steps
+   REAL(kind=dp), INTENT(IN) :: Roundoff, FacMin, FacMax, FacRej, FacSafe
+!~~~> Output: last accepted step
+   REAL(kind=dp), INTENT(OUT) :: Hexit
+!~~~> Output: Error indicator
+   INTEGER, INTENT(OUT) :: IERR
+! ~~~~ Local variables
+   REAL(kind=dp) :: Ynew(VL_DIM,NVAR), Fcn0(VL_DIM,NVAR), Fcn(VL_DIM,NVAR)
+   REAL(kind=dp) :: K(VL_DIM,NVAR*ros_S)
+   REAL(kind=dp) :: Jac0(VL_DIM,LU_NONZERO), Ghimj(VL_DIM,LU_NONZERO)
+   REAL(kind=dp) :: Yerr(VL_DIM,NVAR)
+
+!~~~>  Local parameters
+   INTEGER :: ioffset, i, j, istage
+   REAL(kind=dp), PARAMETER :: ZERO = 0.0_dp, ONE  = 1.0_dp
+   REAL(kind=dp), PARAMETER :: DeltaMin = 1.0E-5_dp
+!~~~>  Locally called functions
+!    REAL(kind=dp) WLAMCH
+!    EXTERNAL WLAMCH
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   real(kind=dp)                  :: deltat
+!kk   logical,parameter              :: fixed_step=.true.
+   
+   integer,save             :: icount=0
+
+!  vector compression algorithm
+
+   REAL(kind=dp), dimension(VL_dim)      :: T
+   REAL(kind=dp), dimension(VL_dim)      :: H, Hnew, HC, HC2, HG, Fac, Tau, Err
+   LOGICAL, dimension(VL_dim)            :: RejectLastH, RejectMoreH
+   LOGICAL, dimension(VL_dim)            :: Accept_step, error_flag
+   integer                               :: vl_save
+
+   REAL(kind=dp), dimension(size(FIX,1),size(FIX,2))      :: FIX_lo
+
+!~~~>  Initial preparations
+   T(1:VL)  = Tstart
+   Hexit    = 0.0_dp
+   H(1:VL)  = MIN(Hstart,Hmax)
+   Tout     = Tend
+   icount   = icount+1
+   where (ABS(H(1:VL)) <= 10.0_dp*Roundoff) H(1:VL) = DeltaMin
+
+   deltat=Tend-Tstart
+
+   RejectLastH(1:VL)=.FALSE.
+   RejectMoreH(1:VL)=.FALSE.
+
+!~~~> Time loop begins below
+
+   Nstp       = 0
+   error_flag(1:VL) = .false.
+   vl_save          = VL
+   FIX_lo(1:VL,:)   = FIX(1:VL,:)
+   Kacc(1:VL)       = 0
+   Krej(1:VL)       = 0
+
+!  intialize compression algorithm
+
+   IF (.not. l_fixed_step) then
+     if( return_A ) then
+       call kco_initialize (VL, y, Kacc, Krej, a=a)
+     else
+       call kco_initialize (VL, y, Kacc, Krej)
+     end if 
+   end if
+
+TimeLoop: DO 
+
+   IF ( Nstp > Max_no_steps ) THEN  ! Too many steps
+      CALL ros_ErrorMsg(-6,T(1),H(1),IERR)
+! mz_pj_20070514: replace 'call abort()' by
+!     error_flag(1:VL) = .TRUE.
+! NOTE: Nstp is the maximum number of steps of the remaining current vector
+      call abort()                                   !Vorlaeufig
+      RETURN
+   END IF
+   
+   Where ( (T(1:VL)+0.1_dp*H(1:VL)) == T(1:VL))      ! Step size too small
+      error_flag(1:VL) = .TRUE.  
+   endwhere
+
+   if( any(error_flag))  then
+      CALL ros_ErrorMsg(-7,T(1),H(1),IERR)
+      call abort()                                   !Vorlaeufig
+      RETURN
+   end if
+
+!~~~>  Limit H if necessary to avoid going beyond Tend
+!kk   Hexit = H
+   H(1:VL) = MIN(H(1:VL),ABS(Tend-T(1:VL)))
+
+!~~~>   Compute the function at current time
+   CALL Fun( Y, FIX_lo, RCONST, Fcn0)
+
+
+!~~~>   Compute the Jacobian at current time
+   CALL Jac_SP( Y, FIX_lo, RCONST, Jac0)
+
+
+!~~~>  Repeat step calculation until current step accepted
+
+   CALL ros_PrepareMatrix(H,ros_Gamma(1), Jac0,Ghimj)
+
+!~~~>   Compute the stages
+Stage: DO istage = 1, ros_S
+
+      ! Current istage offset. Current istage vector is K(ioffset+1:ioffset+NVAR)
+       ioffset = NVAR*(istage-1)
+
+      ! For the 1st istage the function has been computed previously
+       IF ( istage == 1 ) THEN
+         Fcn(1:VL,1:NVAR) = Fcn0(1:VL,1:NVAR) 
+      ! istage>1 and a new function evaluation is needed at the current istage
+       ELSEIF ( ros_NewF(istage) ) THEN
+         select case (istage-1)
+          case (1)
+           Ynew(1:VL,1:NVAR) = Y(1:VL,1:NVAR)
+           Ynew(1:VL,1:NVAR) = Ynew(1:VL,1:NVAR) +  K(1:VL,NVAR*(1- 1)+ 1:NVAR*1) &
+                        *ros_A((istage-1)*(istage-2)/2+ 1)
+          case (2)
+           Ynew(1:VL,1:NVAR) = Y(1:VL,1:NVAR)
+           Ynew(1:VL,1:NVAR) = Ynew(1:VL,1:NVAR) +  K(1:VL,NVAR*(2- 1)+ 1:NVAR*2) &
+                        *ros_A((istage-1)*(istage-2)/2+ 2)
+           Ynew(1:VL,1:NVAR) = Ynew(1:VL,1:NVAR) +  K(1:VL,NVAR*(2- 1)+ 1:NVAR*2) &
+                        *ros_A((istage-1)*(istage-2)/2+ 2)
+          case DEFAULT
+           Ynew(1:VL,1:NVAR) = Y(1:VL,1:NVAR)
+           DO j = 1, istage-1
+             Ynew(1:VL,1:NVAR) = Ynew(1:VL,1:NVAR) +  K(1:VL,NVAR*(j- 1)+ 1:NVAR*j) &
+                          *ros_A((istage-1)*(istage-2)/2+ j)
+           END DO
+         end select
+
+         CALL Fun( Ynew, FIX_lo, RCONST, Fcn)
+       END IF ! if istage == 1 elseif ros_NewF(istage)
+
+       select case (istage-1)
+        case (1)
+         K(1:VL,ioffset+ 1:ioffset+ NVAR) = Fcn(1:VL,1:NVAR)
+         j = 1
+         HC(1:VL) = ros_C((istage-1)*(istage-2)/2+ j)/(H(1:VL))
+         do i=1,NVAR
+           K(1:VL,ioffset+ i) = K(1:VL,ioffset+ i) +  K(1:VL,NVAR*(j- 1)+ i) *HC(1:VL)
+         end do
+        case (2)
+         K(1:VL,ioffset+ 1:ioffset+ NVAR) = Fcn(1:VL,1:NVAR)
+         HC(1:VL)  = ros_C((istage-1)*(istage-2)/2+ 1)/(H(1:VL))
+         HC2(1:VL) = ros_C((istage-1)*(istage-2)/2+ 2)/(H(1:VL))
+         do i=1,NVAR
+           K(1:VL,ioffset+ i) = K(1:VL,ioffset+ i) +  K(1:VL,NVAR*(1- 1)+ i) *HC(1:VL)
+           K(1:VL,ioffset+ i) = K(1:VL,ioffset+ i) +  K(1:VL,NVAR*(2- 1)+ i) *HC2(1:VL)
+         end do
+        case DEFAULT
+         K(1:VL,ioffset+ 1:ioffset+ NVAR) = Fcn(1:VL,1:NVAR)
+         DO j = 1, istage-1
+           HC(1:VL) = ros_C((istage-1)*(istage-2)/2+ j)/(H(1:VL))
+           do i=1,NVAR
+             K(1:VL,ioffset+ i) = K(1:VL,ioffset+ i) +  K(1:VL,NVAR*(j- 1)+ i) *HC(1:VL)
+           end do
+         END DO
+       end select
+
+       CALL ros_Solve(Ghimj, K(:,ioffset+1:ioffset+NVAR))
+
+   END DO Stage
+
+
+   if(ros_S == 3)   then
+     YNEW(1:VL,1:NVAR) = Y(1:VL,1:NVAR)
+     Yerr(1:VL,1:NVAR) = ZERO
+
+!~~~>  Compute the new solution
+     Ynew(1:VL,1:NVAR) = Ynew(1:VL,1:NVAR) + K(1:VL,NVAR*(1-1)+1:NVAR*1) * ros_m(1)
+     Ynew(1:VL,1:NVAR) = Ynew(1:VL,1:NVAR) + K(1:VL,NVAR*(2-1)+1:NVAR*2) * ros_m(2)
+     Ynew(1:VL,1:NVAR) = Ynew(1:VL,1:NVAR) + K(1:VL,NVAR*(3-1)+1:NVAR*3) * ros_m(3)
+
+!~~~>  Compute the error estimation
+
+     Yerr(1:VL,1:NVAR) = Yerr(1:VL,1:NVAR) + K(1:VL,NVAR*(1-1)+1:NVAR*1) * ros_E(1)
+     Yerr(1:VL,1:NVAR) = Yerr(1:VL,1:NVAR) + K(1:VL,NVAR*(2-1)+1:NVAR*2) * ros_E(2)
+     Yerr(1:VL,1:NVAR) = Yerr(1:VL,1:NVAR) + K(1:VL,NVAR*(3-1)+1:NVAR*3) * ros_E(3)
+   else
+     YNEW(1:VL,1:NVAR) = Y(1:VL,1:NVAR)
+     Yerr(1:VL,1:NVAR) = ZERO
+     DO j=1,ros_S
+!~~~>  Compute the new solution
+         Ynew(1:VL,1:NVAR) = Ynew(1:VL,1:NVAR) + &
+                        K(1:VL,NVAR*(j-1)+1:NVAR*j) * ros_m(j)
+
+!~~~>  Compute the error estimation
+
+       Yerr(1:VL,1:NVAR) = Yerr(1:VL,1:NVAR) + &
+                    K(1:VL,NVAR*(j-1)+1:NVAR*j) * ros_E(j)
+     END DO
+   end if
+
+
+!~~~>  Check the error magnitude and adjust step size
+   Nstp = Nstp+1
+
+   if(l_fixed_step)   then
+     Err  = 0.0
+     H    = t_steps(Nstp)*deltat
+     Hnew = t_steps(Nstp)*deltat
+   else
+     Err(1:VL) = ros_ErrorNorm ( Y, Ynew, Yerr, AbsTol, RelTol, VectorTol )
+!~~~> New step size is bounded by FacMin <= Hnew/H <= FacMax
+     where(Err(1:VL) >= 10.0_dp*Roundoff)
+       Fac(1:VL)  = MIN(FacMax,MAX(FacMin,FacSafe/Err(1:VL)**(ONE/ros_ELO)))
+     elsewhere
+       Fac(1:VL)  = 1000.                        !Force large time step
+     endwhere
+     Hnew(1:VL) = H(1:VL)*Fac(1:VL)
+   end if
+
+   Accept_step(1:VL) = (Err(1:VL) <= ONE).OR.(H(1:VL) <= Hmin)
+   where (Accept_step(1:VL))
+      Kacc(1:VL) = Kacc(1:VL)+1
+      T(1:VL) = T(1:VL) + H(1:VL)
+      Hnew(1:VL) = MAX(Hmin,MIN(Hnew(1:VL),Hmax))
+   endwhere
+   do i=1,NVAR
+     where (Accept_step(1:VL))
+       Y(1:VL,i) = MAX(Ynew(1:VL,i),ZERO)
+     endwhere
+   end do
+   where (Accept_step(1:VL) .and. RejectLastH(1:VL))
+      Hnew(1:VL) = MIN(Hnew(1:VL),H(1:VL))
+   endwhere
+   where (Accept_step(1:VL))
+      RejectLastH(1:VL) = .FALSE.
+      RejectMoreH(1:VL) = .FALSE.
+      H(1:VL) = Hnew(1:VL)
+   endwhere
+!kk   ELSE           !~~~> Reject step
+   where (.NOT. Accept_step(1:VL) .and. RejectMoreH(1:VL))
+      Hnew(1:VL) = H(1:VL)*FacRej
+   endwhere
+   where (.NOT. Accept_step(1:VL))
+      RejectMoreH(1:VL) = RejectLastH(1:VL)
+      RejectLastH(1:VL) = .TRUE.
+      H(1:VL) = Hnew(1:VL)
+   endwhere
+   where ( .NOT. Accept_step(1:VL) .and. Kacc(1:VL) >= 1)
+      Krej(1:VL) = Krej(1:VL)+1
+   endwhere
+
+
+   if(l_fixed_step)   then
+      if(Nstp >= Nfsteps) EXIT
+   else
+     cell_done(1:VL) = ( .NOT. (T(1:VL)-Tend)+Roundoff <= ZERO  )  
+     call kco_compress (VL, T, H, Hnew, error_flag, y, RCONST, FIX_lo,         &
+                                     RejectLastH, RejectMoreH, Kacc, Krej, a=a)
+     if(VL == 0)   EXIT
+   end if
+
+!kk   write(0,*) '  aaa ',icount,Nstp,count(cell_done),count(Accept_step),VL,minval(T)
+   END DO TimeLoop
+
+!~~~> Succesful exit
+   IERR = 1  !~~~> The integration was successful
+
+   IF (.not. l_fixed_step) then
+     call kco_finalize (y, Kacc, Krej, a=a)
+   end if
+
+   VL = VL_save
+
+!kk   write(0,*) 'bbb ',icount,Nstp,maxval(Kacc),maxval(Krej)
+!kk   if(icount >= 10)  call abort()
+
+  END SUBROUTINE ros_Integrator
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  FUNCTION ros_ErrorNorm ( Y, Ynew, Yerr, &
+               AbsTol, RelTol, VectorTol )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> Computes the "scaled norm" of the error vector Yerr
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   IMPLICIT NONE
+
+! Input arguments
+   REAL(kind=dp), INTENT(IN) :: Y(:,:), Ynew(:,:), &
+          Yerr(:,:), AbsTol(NVAR), RelTol(NVAR)
+   LOGICAL, INTENT(IN) ::  VectorTol
+! Local variables
+   REAL(kind=dp), dimension(VL)       :: Err, Scale, Ymax
+   INTEGER  :: i
+   REAL(kind=dp), PARAMETER           :: ZERO = 0.0_dp
+   REAL(kind=dp), dimension(VL)       :: ros_ErrorNorm
+
+   Err = ZERO
+   DO i=1,NVAR
+     Ymax = MAX( ABS(Y(1:VL,i)),ABS(Ynew(1:VL,i)))
+     IF (VectorTol) THEN
+       Scale = AbsTol(i)+ RelTol(i)*Ymax
+     ELSE
+       Scale = AbsTol(1)+ RelTol(1)*Ymax
+     END IF
+     Err = Err+ (Yerr(1:VL,i)/Scale)**2
+   END DO
+   Err  = SQRT(Err/NVAR)
+
+   ros_ErrorNorm = Err
+
+  END FUNCTION ros_ErrorNorm
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  SUBROUTINE ros_PrepareMatrix ( H, gam, Jac0, Ghimj )
+
+! --- --- --- --- --- --- --- --- --- --- --- --- ---
+!  Prepares the LHS matrix for stage calculations
+!  1.  Construct Ghimj = 1/(H*ham) - Jac0
+!      "(Gamma H) Inverse Minus Jacobian"
+!  2.  Repeat LU decomposition of Ghimj until successful.
+!       -half the step size if LU decomposition fails and retry
+!       -exit after 5 consecutive fails
+! --- --- --- --- --- --- --- --- --- --- --- --- ---
+   IMPLICIT NONE
+
+!~~~> Input arguments
+   REAL(kind=dp), INTENT(IN) ::  Jac0(:,:)
+   REAL(kind=dp), INTENT(IN) ::  gam
+!~~~> Output arguments
+   REAL(kind=dp), INTENT(OUT) :: Ghimj(:,:)
+!~~~> Inout arguments
+   REAL(kind=dp), INTENT(INOUT) :: H(:)   ! step size is decreased when LU fails
+!~~~> Local variables
+   INTEGER  :: i, ising, Nconsecutive
+   REAL(kind=dp), dimension(size(H)) :: ghinv
+   REAL(kind=dp), PARAMETER :: ONE  = 1.0_dp, HALF = 0.5_dp
+
+   Nconsecutive = 0
+
+
+!~~~>    Construct Ghimj = 1/(H*gam) - Jac0
+   Ghimj(1:VL,1:LU_NONZERO) = -ONE * JAC0(1:VL,1:LU_NONZERO)
+   ghinv(1:VL) = ONE/(H(1:VL)*gam)
+   DO i=1,NVAR
+     Ghimj(1:VL,LU_DIAG(i)) = Ghimj(1:VL,LU_DIAG(i))+ghinv(1:VL)
+   END DO
+
+!~~~>    Compute LU decomposition
+!CDIR noiexpand
+   CALL KppDecomp( Ghimj, ising )
+
+   Ndec = Ndec + VL
+
+  END SUBROUTINE ros_PrepareMatrix
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE ros_Solve( A, b )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!  Template for the forward/backward substitution (using pre-computed LU decomposition)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   IMPLICIT NONE
+!~~~> Input variables
+   REAL(kind=dp), INTENT(IN)         :: A(:,:)
+!~~~> InOut variables
+   REAL(kind=dp), INTENT(INOUT)      :: b(:,:)
+
+   CALL KppSolve( A, b )
+
+   Nsol = Nsol+VL
+
+  END SUBROUTINE ros_Solve
+
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE Ros2 (ros_S,ros_A,ros_C,ros_M,ros_E,ros_Alpha,&
+            ros_Gamma,ros_NewF,ros_ELO,ros_Name)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! --- AN L-STABLE METHOD, 2 stages, order 2
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  IMPLICIT NONE
+
+   INTEGER, PARAMETER :: S=2
+   INTEGER, INTENT(OUT) ::  ros_S
+   REAL(kind=dp), DIMENSION(S), INTENT(OUT) :: ros_M,ros_E,ros_Alpha,ros_Gamma
+   REAL(kind=dp), DIMENSION(S*(S-1)/2), INTENT(OUT) :: ros_A, ros_C
+   REAL(kind=dp), INTENT(OUT) :: ros_ELO
+   LOGICAL, DIMENSION(S), INTENT(OUT) :: ros_NewF
+   CHARACTER(LEN=12), INTENT(OUT) :: ros_Name
+   DOUBLE PRECISION g
+
+    g = 1.0_dp + 1.0_dp/SQRT(2.0_dp)
+
+!~~~> Name of the method
+    ros_Name = 'ROS-2'
+!~~~> Number of stages
+    ros_S = S
+
+!~~~> The coefficient matrices A and C are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+!   The general mapping formula is:
+!       A(i,j) = ros_A( (i-1)*(i-2)/2 + j )
+!       C(i,j) = ros_C( (i-1)*(i-2)/2 + j )
+
+    ros_A(1) = (1.0_dp)/g
+    ros_C(1) = (-2.0_dp)/g
+!~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+    ros_NewF(1) = .TRUE.
+    ros_NewF(2) = .TRUE.
+!~~~> M_i = Coefficients for new step solution
+    ros_M(1)= (3.0_dp)/(2.0_dp*g)
+    ros_M(2)= (1.0_dp)/(2.0_dp*g)
+! E_i = Coefficients for error estimator
+    ros_E(1) = 1.0_dp/(2.0_dp*g)
+    ros_E(2) = 1.0_dp/(2.0_dp*g)
+!~~~> ros_ELO = estimator of local order - the minimum between the
+!    main and the embedded scheme orders plus one
+    ros_ELO = 2.0_dp
+!~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+    ros_Alpha(1) = 0.0_dp
+    ros_Alpha(2) = 1.0_dp
+!~~~> Gamma_i = \sum_j  gamma_{i,j}
+    ros_Gamma(1) = g
+    ros_Gamma(2) =-g
+
+ END SUBROUTINE Ros2
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE Ros3 (ros_S,ros_A,ros_C,ros_M,ros_E,ros_Alpha,&
+           ros_Gamma,ros_NewF,ros_ELO,ros_Name)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! --- AN L-STABLE METHOD, 3 stages, order 3, 2 function evaluations
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  IMPLICIT NONE
+
+   INTEGER, PARAMETER :: S=3
+   INTEGER, INTENT(OUT) ::  ros_S
+   REAL(kind=dp), DIMENSION(S), INTENT(OUT) :: ros_M,ros_E,ros_Alpha,ros_Gamma
+   REAL(kind=dp), DIMENSION(S*(S-1)/2), INTENT(OUT) :: ros_A, ros_C
+   REAL(kind=dp), INTENT(OUT) :: ros_ELO
+   LOGICAL, DIMENSION(S), INTENT(OUT) :: ros_NewF
+   CHARACTER(LEN=12), INTENT(OUT) :: ros_Name
+
+!~~~> Name of the method
+   ros_Name = 'ROS-3'
+!~~~> Number of stages
+   ros_S = S
+
+!~~~> The coefficient matrices A and C are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+!   The general mapping formula is:
+!       A(i,j) = ros_A( (i-1)*(i-2)/2 + j )
+!       C(i,j) = ros_C( (i-1)*(i-2)/2 + j )
+
+   ros_A(1)= 1.0_dp
+   ros_A(2)= 1.0_dp
+   ros_A(3)= 0.0_dp
+
+   ros_C(1) = -0.10156171083877702091975600115545E+01_dp
+   ros_C(2) =  0.40759956452537699824805835358067E+01_dp
+   ros_C(3) =  0.92076794298330791242156818474003E+01_dp
+!~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+   ros_NewF(1) = .TRUE.
+   ros_NewF(2) = .TRUE.
+   ros_NewF(3) = .FALSE.
+!~~~> M_i = Coefficients for new step solution
+   ros_M(1) =  0.1E+01_dp
+   ros_M(2) =  0.61697947043828245592553615689730E+01_dp
+   ros_M(3) = -0.42772256543218573326238373806514E+00_dp
+! E_i = Coefficients for error estimator
+   ros_E(1) =  0.5E+00_dp
+   ros_E(2) = -0.29079558716805469821718236208017E+01_dp
+   ros_E(3) =  0.22354069897811569627360909276199E+00_dp
+!~~~> ros_ELO = estimator of local order - the minimum between the
+!    main and the embedded scheme orders plus 1
+   ros_ELO = 3.0_dp
+!~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+   ros_Alpha(1)= 0.0E+00_dp
+   ros_Alpha(2)= 0.43586652150845899941601945119356E+00_dp
+   ros_Alpha(3)= 0.43586652150845899941601945119356E+00_dp
+!~~~> Gamma_i = \sum_j  gamma_{i,j}
+   ros_Gamma(1)= 0.43586652150845899941601945119356E+00_dp
+   ros_Gamma(2)= 0.24291996454816804366592249683314E+00_dp
+   ros_Gamma(3)= 0.21851380027664058511513169485832E+01_dp
+
+  END SUBROUTINE Ros3
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE Ros4 (ros_S,ros_A,ros_C,ros_M,ros_E,ros_Alpha,&
+           ros_Gamma,ros_NewF,ros_ELO,ros_Name)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!     L-STABLE ROSENBROCK METHOD OF ORDER 4, WITH 4 STAGES
+!     L-STABLE EMBEDDED ROSENBROCK METHOD OF ORDER 3
+!
+!      E. HAIRER AND G. WANNER, SOLVING ORDINARY DIFFERENTIAL
+!      EQUATIONS II. STIFF AND DIFFERENTIAL-ALGEBRAIC PROBLEMS.
+!      SPRINGER SERIES IN COMPUTATIONAL MATHEMATICS,
+!      SPRINGER-VERLAG (1990)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  IMPLICIT NONE
+
+   INTEGER, PARAMETER :: S=4
+   INTEGER, INTENT(OUT) ::  ros_S
+   REAL(kind=dp), DIMENSION(4), INTENT(OUT) :: ros_M,ros_E,ros_Alpha,ros_Gamma
+   REAL(kind=dp), DIMENSION(6), INTENT(OUT) :: ros_A, ros_C
+   REAL(kind=dp), INTENT(OUT) :: ros_ELO
+   LOGICAL, DIMENSION(4), INTENT(OUT) :: ros_NewF
+   CHARACTER(LEN=12), INTENT(OUT) :: ros_Name
+   DOUBLE PRECISION g
+
+!~~~> Name of the method
+   ros_Name = 'ROS-4'
+!~~~> Number of stages
+   ros_S = S
+
+!~~~> The coefficient matrices A and C are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+!   The general mapping formula is:
+!       A(i,j) = ros_A( (i-1)*(i-2)/2 + j )
+!       C(i,j) = ros_C( (i-1)*(i-2)/2 + j )
+
+   ros_A(1) = 0.2000000000000000E+01_dp
+   ros_A(2) = 0.1867943637803922E+01_dp
+   ros_A(3) = 0.2344449711399156E+00_dp
+   ros_A(4) = ros_A(2)
+   ros_A(5) = ros_A(3)
+   ros_A(6) = 0.0_dp
+
+   ros_C(1) =-0.7137615036412310E+01_dp
+   ros_C(2) = 0.2580708087951457E+01_dp
+   ros_C(3) = 0.6515950076447975E+00_dp
+   ros_C(4) =-0.2137148994382534E+01_dp
+   ros_C(5) =-0.3214669691237626E+00_dp
+   ros_C(6) =-0.6949742501781779E+00_dp
+!~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+   ros_NewF(1)  = .TRUE.
+   ros_NewF(2)  = .TRUE.
+   ros_NewF(3)  = .TRUE.
+   ros_NewF(4)  = .FALSE.
+!~~~> M_i = Coefficients for new step solution
+   ros_M(1) = 0.2255570073418735E+01_dp
+   ros_M(2) = 0.2870493262186792E+00_dp
+   ros_M(3) = 0.4353179431840180E+00_dp
+   ros_M(4) = 0.1093502252409163E+01_dp
+!~~~> E_i  = Coefficients for error estimator
+   ros_E(1) =-0.2815431932141155E+00_dp
+   ros_E(2) =-0.7276199124938920E-01_dp
+   ros_E(3) =-0.1082196201495311E+00_dp
+   ros_E(4) =-0.1093502252409163E+01_dp
+!~~~> ros_ELO  = estimator of local order - the minimum between the
+!    main and the embedded scheme orders plus 1
+   ros_ELO  = 4.0_dp
+!~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+   ros_Alpha(1) = 0.0_dp
+   ros_Alpha(2) = 0.1145640000000000E+01_dp
+   ros_Alpha(3) = 0.6552168638155900E+00_dp
+   ros_Alpha(4) = ros_Alpha(3)
+!~~~> Gamma_i = \sum_j  gamma_{i,j}
+   ros_Gamma(1) = 0.5728200000000000E+00_dp
+   ros_Gamma(2) =-0.1769193891319233E+01_dp
+   ros_Gamma(3) = 0.7592633437920482E+00_dp
+   ros_Gamma(4) =-0.1049021087100450E+00_dp
+
+  END SUBROUTINE Ros4
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE Rodas3 (ros_S,ros_A,ros_C,ros_M,ros_E,ros_Alpha,&
+            ros_Gamma,ros_NewF,ros_ELO,ros_Name)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! --- A STIFFLY-STABLE METHOD, 4 stages, order 3
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  IMPLICIT NONE
+
+   INTEGER, PARAMETER :: S=4
+   INTEGER, INTENT(OUT) ::  ros_S
+   REAL(kind=dp), DIMENSION(S), INTENT(OUT) :: ros_M,ros_E,ros_Alpha,ros_Gamma
+   REAL(kind=dp), DIMENSION(S*(S-1)/2), INTENT(OUT) :: ros_A, ros_C
+   REAL(kind=dp), INTENT(OUT) :: ros_ELO
+   LOGICAL, DIMENSION(S), INTENT(OUT) :: ros_NewF
+   CHARACTER(LEN=12), INTENT(OUT) :: ros_Name
+   DOUBLE PRECISION g
+
+!~~~> Name of the method
+   ros_Name = 'RODAS-3'
+!~~~> Number of stages
+   ros_S = S
+
+!~~~> The coefficient matrices A and C are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+!   The general mapping formula is:
+!       A(i,j) = ros_A( (i-1)*(i-2)/2 + j )
+!       C(i,j) = ros_C( (i-1)*(i-2)/2 + j )
+
+   ros_A(1) = 0.0E+00_dp
+   ros_A(2) = 2.0E+00_dp
+   ros_A(3) = 0.0E+00_dp
+   ros_A(4) = 2.0E+00_dp
+   ros_A(5) = 0.0E+00_dp
+   ros_A(6) = 1.0E+00_dp
+
+   ros_C(1) = 4.0E+00_dp
+   ros_C(2) = 1.0E+00_dp
+   ros_C(3) =-1.0E+00_dp
+   ros_C(4) = 1.0E+00_dp
+   ros_C(5) =-1.0E+00_dp
+   ros_C(6) =-(8.0E+00_dp/3.0E+00_dp)
+
+!~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+   ros_NewF(1)  = .TRUE.
+   ros_NewF(2)  = .FALSE.
+   ros_NewF(3)  = .TRUE.
+   ros_NewF(4)  = .TRUE.
+!~~~> M_i = Coefficients for new step solution
+   ros_M(1) = 2.0E+00_dp
+   ros_M(2) = 0.0E+00_dp
+   ros_M(3) = 1.0E+00_dp
+   ros_M(4) = 1.0E+00_dp
+!~~~> E_i  = Coefficients for error estimator
+   ros_E(1) = 0.0E+00_dp
+   ros_E(2) = 0.0E+00_dp
+   ros_E(3) = 0.0E+00_dp
+   ros_E(4) = 1.0E+00_dp
+!~~~> ros_ELO  = estimator of local order - the minimum between the
+!    main and the embedded scheme orders plus 1
+   ros_ELO  = 3.0E+00_dp
+!~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+   ros_Alpha(1) = 0.0E+00_dp
+   ros_Alpha(2) = 0.0E+00_dp
+   ros_Alpha(3) = 1.0E+00_dp
+   ros_Alpha(4) = 1.0E+00_dp
+!~~~> Gamma_i = \sum_j  gamma_{i,j}
+   ros_Gamma(1) = 0.5E+00_dp
+   ros_Gamma(2) = 1.5E+00_dp
+   ros_Gamma(3) = 0.0E+00_dp
+   ros_Gamma(4) = 0.0E+00_dp
+
+  END SUBROUTINE Rodas3
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE Rodas4 (ros_S,ros_A,ros_C,ros_M,ros_E,ros_Alpha,&
+             ros_Gamma,ros_NewF,ros_ELO,ros_Name)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!     STIFFLY-STABLE ROSENBROCK METHOD OF ORDER 4, WITH 6 STAGES
+!
+!      E. HAIRER AND G. WANNER, SOLVING ORDINARY DIFFERENTIAL
+!      EQUATIONS II. STIFF AND DIFFERENTIAL-ALGEBRAIC PROBLEMS.
+!      SPRINGER SERIES IN COMPUTATIONAL MATHEMATICS,
+!      SPRINGER-VERLAG (1996)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  IMPLICIT NONE
+
+   INTEGER, PARAMETER :: S=6
+   INTEGER, INTENT(OUT) ::  ros_S
+   REAL(kind=dp), DIMENSION(S), INTENT(OUT) :: ros_M,ros_E,ros_Alpha,ros_Gamma
+   REAL(kind=dp), DIMENSION(S*(S-1)/2), INTENT(OUT) :: ros_A, ros_C
+   REAL(kind=dp), INTENT(OUT) :: ros_ELO
+   LOGICAL, DIMENSION(S), INTENT(OUT) :: ros_NewF
+   CHARACTER(LEN=12), INTENT(OUT) :: ros_Name
+   DOUBLE PRECISION g
+
+!~~~> Name of the method
+    ros_Name = 'RODAS-4'
+!~~~> Number of stages
+    ros_S = 6
+
+!~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+    ros_Alpha(1) = 0.000_dp
+    ros_Alpha(2) = 0.386_dp
+    ros_Alpha(3) = 0.210_dp
+    ros_Alpha(4) = 0.630_dp
+    ros_Alpha(5) = 1.000_dp
+    ros_Alpha(6) = 1.000_dp
+
+!~~~> Gamma_i = \sum_j  gamma_{i,j}
+    ros_Gamma(1) = 0.2500000000000000E+00_dp
+    ros_Gamma(2) =-0.1043000000000000E+00_dp
+    ros_Gamma(3) = 0.1035000000000000E+00_dp
+    ros_Gamma(4) =-0.3620000000000023E-01_dp
+    ros_Gamma(5) = 0.0_dp
+    ros_Gamma(6) = 0.0_dp
+
+!~~~> The coefficient matrices A and C are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+!   The general mapping formula is:  A(i,j) = ros_A( (i-1)*(i-2)/2 + j )
+!                  C(i,j) = ros_C( (i-1)*(i-2)/2 + j )
+
+    ros_A(1) = 0.1544000000000000E+01_dp
+    ros_A(2) = 0.9466785280815826E+00_dp
+    ros_A(3) = 0.2557011698983284E+00_dp
+    ros_A(4) = 0.3314825187068521E+01_dp
+    ros_A(5) = 0.2896124015972201E+01_dp
+    ros_A(6) = 0.9986419139977817E+00_dp
+    ros_A(7) = 0.1221224509226641E+01_dp
+    ros_A(8) = 0.6019134481288629E+01_dp
+    ros_A(9) = 0.1253708332932087E+02_dp
+    ros_A(10) =-0.6878860361058950E+00_dp
+    ros_A(11) = ros_A(7)
+    ros_A(12) = ros_A(8)
+    ros_A(13) = ros_A(9)
+    ros_A(14) = ros_A(10)
+    ros_A(15) = 1.0E+00_dp
+
+    ros_C(1) =-0.5668800000000000E+01_dp
+    ros_C(2) =-0.2430093356833875E+01_dp
+    ros_C(3) =-0.2063599157091915E+00_dp
+    ros_C(4) =-0.1073529058151375E+00_dp
+    ros_C(5) =-0.9594562251023355E+01_dp
+    ros_C(6) =-0.2047028614809616E+02_dp
+    ros_C(7) = 0.7496443313967647E+01_dp
+    ros_C(8) =-0.1024680431464352E+02_dp
+    ros_C(9) =-0.3399990352819905E+02_dp
+    ros_C(10) = 0.1170890893206160E+02_dp
+    ros_C(11) = 0.8083246795921522E+01_dp
+    ros_C(12) =-0.7981132988064893E+01_dp
+    ros_C(13) =-0.3152159432874371E+02_dp
+    ros_C(14) = 0.1631930543123136E+02_dp
+    ros_C(15) =-0.6058818238834054E+01_dp
+
+!~~~> M_i = Coefficients for new step solution
+    ros_M(1) = ros_A(7)
+    ros_M(2) = ros_A(8)
+    ros_M(3) = ros_A(9)
+    ros_M(4) = ros_A(10)
+    ros_M(5) = 1.0E+00_dp
+    ros_M(6) = 1.0E+00_dp
+
+!~~~> E_i  = Coefficients for error estimator
+    ros_E(1) = 0.0E+00_dp
+    ros_E(2) = 0.0E+00_dp
+    ros_E(3) = 0.0E+00_dp
+    ros_E(4) = 0.0E+00_dp
+    ros_E(5) = 0.0E+00_dp
+    ros_E(6) = 1.0E+00_dp
+
+!~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+    ros_NewF(1) = .TRUE.
+    ros_NewF(2) = .TRUE.
+    ros_NewF(3) = .TRUE.
+    ros_NewF(4) = .TRUE.
+    ros_NewF(5) = .TRUE.
+    ros_NewF(6) = .TRUE.
+
+!~~~> ros_ELO  = estimator of local order - the minimum between the
+!        main and the embedded scheme orders plus 1
+    ros_ELO = 4.0_dp
+
+  END SUBROUTINE Rodas4
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!   End of the set of internal Rosenbrock subroutines
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+END SUBROUTINE Rosenbrock
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/mechanisms/UserRateLaws.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/mechanisms/UserRateLaws.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/mechanisms/UserRateLaws.f90	(revision 2696)
@@ -0,0 +1,106 @@
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!  User-defined Rate Law functions
+!  Note: the default argument type for rate laws, as read from the equations file, is single precision
+!        but all the internal calculations are performed in double precision
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+! RFo: IMPORTANT: Comments must ALWAYS stand BEFORE the code to be processed
+!
+!      This is just the working copy of UserRateLaws.f90 which is actually used. 
+!      It is copied from GASPASE_PREPROC/mechanisms/UserRateLaws.f90 to kpp/util/UserRateLaws.f90
+!      each time when run_kpp4palm.ksh is run. 
+
+
+!~~~>  Arrhenius
+   KPP_REAL FUNCTION ARR( A0,B0,C0 )
+      REAL A0,B0,C0      
+      ARR =  DBLE(A0) * EXP(-DBLE(B0)/TEMP) * (TEMP/300.0_dp)**DBLE(C0)
+   END FUNCTION ARR        
+
+
+!~~~> Simplified Arrhenius, with two arguments, fixed TEMP=20 deg C
+!~~~> Note: The argument B0 has a changed sign when compared to ARR
+!
+!~~~> Simplified Arrhenius, with two arguments
+! RFo: same as above, but with TEMP in parameter list and _dp
+!  KPP_REAL (kind=dp) FUNCTION ARR2( A0, B0 )
+!     REAL (kind=dp) A0,B0
+!     ARR2 =  A0 * EXP( B0 / 20.0_dp )
+!  END FUNCTION ARR2
+REAL(kind=dp) FUNCTION ARR2( a0, b0, temp )
+    REAL(kind=dp) :: temp
+    REAL(kind=dp) :: a0,b0
+    ARR2 = a0 * EXP( -b0 / temp )
+END FUNCTION ARR2
+
+
+   KPP_REAL FUNCTION EP2(A0,C0,A2,C2,A3,C3)
+      REAL A0,C0,A2,C2,A3,C3
+      REAL(kind=dp) K0,K2,K3            
+      K0 = DBLE(A0) * EXP(-DBLE(C0)/TEMP)
+      K2 = DBLE(A2) * EXP(-DBLE(C2)/TEMP)
+      K3 = DBLE(A3) * EXP(-DBLE(C3)/TEMP)
+      K3 = K3*CFACTOR*1.0E6_dp
+      EP2 = K0 + K3/(1.0_dp+K3/K2 )
+   END FUNCTION EP2
+
+   KPP_REAL FUNCTION EP3(A1,C1,A2,C2) 
+      REAL A1, C1, A2, C2
+      REAL(kind=dp) K1, K2      
+      K1 = DBLE(A1) * EXP(-DBLE(C1)/TEMP)
+      K2 = DBLE(A2) * EXP(-DBLE(C2)/TEMP)
+      EP3 = K1 + K2*(1.0E6_dp*CFACTOR)
+   END FUNCTION EP3 
+
+   KPP_REAL FUNCTION FALL ( A0,B0,C0,A1,B1,C1,CF)
+      REAL A0,B0,C0,A1,B1,C1,CF
+      REAL(kind=dp) K0, K1     
+      K0 = DBLE(A0) * EXP(-DBLE(B0)/TEMP)* (TEMP/300.0_dp)**DBLE(C0)
+      K1 = DBLE(A1) * EXP(-DBLE(B1)/TEMP)* (TEMP/300.0_dp)**DBLE(C1)
+      K0 = K0*CFACTOR*1.0E6_dp
+      K1 = K0/K1
+      FALL = (K0/(1.0_dp+K1))*   &
+           DBLE(CF)**(1.0_dp/(1.0_dp+(LOG10(K1))**2))
+   END FUNCTION FALL
+
+  !---------------------------------------------------------------------------
+
+  ELEMENTAL REAL(kind=dp) FUNCTION k_3rd(temp,cair,k0_300K,n,kinf_300K,m,fc)
+
+    INTRINSIC LOG10
+
+    REAL(kind=dp), INTENT(IN) :: temp      ! temperature [K]
+    REAL(kind=dp), INTENT(IN) :: cair      ! air concentration [molecules/cm3]
+    REAL, INTENT(IN) :: k0_300K   ! low pressure limit at 300 K
+    REAL, INTENT(IN) :: n         ! exponent for low pressure limit
+    REAL, INTENT(IN) :: kinf_300K ! high pressure limit at 300 K
+    REAL, INTENT(IN) :: m         ! exponent for high pressure limit
+    REAL, INTENT(IN) :: fc        ! broadening factor (usually fc=0.6)
+    REAL(kind=dp) :: zt_help, k0_T, kinf_T, k_ratio
+
+    zt_help = 300._dp/temp
+    k0_T    = k0_300K   * zt_help**(n) * cair ! k_0   at current T
+    kinf_T  = kinf_300K * zt_help**(m)        ! k_inf at current T
+    k_ratio = k0_T/kinf_T
+    k_3rd   = k0_T/(1._dp+k_ratio)*fc**(1._dp/(1._dp+LOG10(k_ratio)**2))
+
+  END FUNCTION k_3rd
+
+  !---------------------------------------------------------------------------
+
+  ELEMENTAL REAL(kind=dp) FUNCTION k_arr (k_298,tdep,temp)
+    ! Arrhenius function
+
+    REAL,     INTENT(IN) :: k_298 ! k at T = 298.15K
+    REAL,     INTENT(IN) :: tdep  ! temperature dependence
+    REAL(kind=dp), INTENT(IN) :: temp  ! temperature
+
+    INTRINSIC EXP
+
+    k_arr = k_298 * EXP(tdep*(1._dp/temp-3.3540E-3_dp)) ! 1/298.15=3.3540e-3
+
+  END FUNCTION k_arr
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!  End of User-defined Rate Law functions
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/mechanisms/def_passive/chem_gasphase_mod.kpp
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/mechanisms/def_passive/chem_gasphase_mod.kpp	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/mechanisms/def_passive/chem_gasphase_mod.kpp	(revision 2696)
@@ -0,0 +1,36 @@
+//chem_gasphase_mod.kpp
+//
+//Former revisions
+//----------------
+// $Id: chem_gasphase_mod.kpp 2459 2017-09-13 14:10:33Z forkel $
+//
+#include      passive.spc
+#include      passive.eqn
+#INTEGRATOR rosenbrock
+#LANGUAGE   Fortran90
+#HESSIAN    on
+#STOICMAT   on
+#INLINE F90_GLOBAL
+  !   Declaration of global variable declarations for photolysis will come from INLINE F90_DATA
+#ENDINLINE
+//
+// *******************************************************************************************
+// *** adapt the lines below occurding to the photolysis reactions of your mechanism         *
+// *** adapt the number of photolysis frequencies NPHO                                       *
+// *** adapt/extend the indices in the INTEGER, PARAMETER,PUBLIC statement below             *
+// *** adapt/extend PHOT_NAMES: Note that the order of PHOT_NAMES and the indices must match *
+// *******************************************************************************************
+//
+#INLINE F90_DATA
+  !   INLINE F90_DATA: Declaration of global variables for photolysis
+  !   REAL(kind=dp) :: phot(nphot) must eventually be moved to GLOBAL later for vector version
+  INTEGER, PARAMETER :: nphot = 1
+  !   phot Photolysis frequencies
+  REAL(kind=dp) :: phot(nphot)
+
+  INTEGER, PARAMETER,PUBLIC :: j_no2 = 1
+
+  CHARACTER(LEN=15), PARAMETER, DIMENSION(NPHOT) :: phot_names =  (/ &
+     'J_NO2          '/)
+#ENDINLINE
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/mechanisms/def_passive/passive.eqn
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/mechanisms/def_passive/passive.eqn	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/mechanisms/def_passive/passive.eqn	(revision 2696)
@@ -0,0 +1,10 @@
+{passive.eqn
+Former revisions
+----------------
+ $Id$
+}
+#EQUATIONS
+
+{ passive: does nothing }
+  { 1.}  PM10 = PM10 :                   1.0_dp  ;
+  { 2.}  PM25 = PM25 :                   1.0_dp  ;
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/mechanisms/def_passive/passive.spc
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/mechanisms/def_passive/passive.spc	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/mechanisms/def_passive/passive.spc	(revision 2696)
@@ -0,0 +1,19 @@
+{passive.spc
+Former revisions
+----------------
+ $Id$
+}
+#include atoms
+
+ #DEFVAR
+    PM10    = ignore ;
+    PM25    = ignore ;
+
+#DEFFIX
+    H2O         = H + 2O ;      {water}
+    H2          = 2H ;          {molecular hydrogen}
+    O2      = 2O ;          {molecular oxygen}
+    N2      = 2N ;          {molecular nitrogen}
+    CH4         = C + 4H ;      {methane}
+    CO2     = C + 2O ;      {carbon dioxide}
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/mechanisms/def_simple/chem_gasphase_mod.kpp
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/mechanisms/def_simple/chem_gasphase_mod.kpp	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/mechanisms/def_simple/chem_gasphase_mod.kpp	(revision 2696)
@@ -0,0 +1,37 @@
+//chem_gasphase_mod.kpp
+//
+//Former revisions
+//----------------
+// $Id: chem_gasphase_mod.kpp 2459 2017-09-13 14:10:33Z forkel $
+//
+#include      simple.spc
+#include      simple.eqn
+#INTEGRATOR rosenbrock
+#LANGUAGE   Fortran90
+#HESSIAN    on
+#STOICMAT   on
+#INLINE F90_GLOBAL
+  !   Declaration of global variable declarations for photolysis will come from INLINE F90_DATA
+#ENDINLINE
+//
+// *******************************************************************************************
+// *** adapt the lines below occurding to the photolysis reactions of your mechanism         *
+// *** adapt the number of photolysis frequencies NPHO                                       *
+// *** adapt/extend the indices in the INTEGER, PARAMETER,PUBLIC statement below             *
+// *** adapt/extend PHOT_NAMES: Note that the order of PHOT_NAMES and the indices must match *
+// *******************************************************************************************
+//
+#INLINE F90_DATA
+  !   INLINE F90_DATA: Declaration of global variables for photolysis
+  !   REAL(kind=dp) :: phot(nphot) must eventually be moved to GLOBAL later for vector version
+  INTEGER, PARAMETER :: nphot = 2
+  !   phot Photolysis frequencies 
+  REAL(kind=dp) :: phot(nphot)
+
+  INTEGER, PARAMETER,PUBLIC :: j_no2 = 1
+  INTEGER, PARAMETER,PUBLIC :: j_o31d = 2
+
+  CHARACTER(LEN=15), PARAMETER, DIMENSION(NPHOT) :: phot_names =  (/ &
+     'J_NO2          ','J_O31D         '/)
+#ENDINLINE
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/mechanisms/def_simple/simple.eqn
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/mechanisms/def_simple/simple.eqn	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/mechanisms/def_simple/simple.eqn	(revision 2696)
@@ -0,0 +1,15 @@
+{simple.eqn
+Former revisions
+----------------
+ $Id: smog.eqn 2459 2017-09-13 14:10:33Z forkel $
+}
+#EQUATIONS
+
+{ very simple mechanism - do NOT show to a chemist! }
+
+  { 1.}  NO2 + hv = NO + O3 :                   phot(j_no2)  ;
+  { 2.}  O3 + hv = 2OH + O2 :                   phot(j_o31d)  ;
+  { 3.}  NO + O3 = NO2 :                     arr2(1.8E-12_dp, 1370.0_dp, temp) ;
+  { 4.}  RH + OH = RO2 + H2O :               arr2(2.E-11_dp, 500.0_dp, temp) ;
+  { 5.}  RO2 + NO = NO2 + RCHO + HO2 :       arr2(4.2E-12_dp, -180.0_dp, temp);
+  { 6.}  HO2 + NO = NO2 + OH :               arr2(3.7E-12_dp, -240.0_dp, temp) ;
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/mechanisms/def_simple/simple.spc
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/mechanisms/def_simple/simple.spc	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/mechanisms/def_simple/simple.spc	(revision 2696)
@@ -0,0 +1,42 @@
+{simple.spc
+Former revisions
+----------------
+ $Id: smog.spc 2459 2017-09-13 14:10:33Z forkel $
+}
+#include atoms
+
+ #DEFVAR  
+    O       = O ;      		{oxygen atomic ground state (3P)}
+    O3		= 3O ;          {ozone}  
+    NO		= N + O ;       {nitric oxide}  
+    NO2		= N + 2O ;      {nitrogen dioxide} 
+    NO3		= N + 3O ;      {nitrogen trioxide} 
+    N2O5	= 2N + 5O ;     {dinitrogen pentoxide}           
+    HNO3	= H + N + 3O ;  { nitric acid }
+    HNO4	= H + N + 4O ;  {HO2NO2 pernitric acid}
+    H           = H ;           {hydrogen atomic ground state (2S)}
+    OH		= O + H ;       {hydroxyl radical}  
+    HO2		= H + 2O ;      {perhydroxyl radical}                     
+    H2O2	= 2H + 2O ;     {hydrogen peroxide} 
+    CH3     = C + 3H ;      {methyl radical}
+    CH3O    = C + 3H + O ;  {methoxy radical}
+    CH3O2   = C + 3H + 2O ; {methylperoxy radical}
+    CH3OOH  = C + 4H + 2O ; {CH4O2      methylperoxy alcohol}
+    HCO     = H + C + O ;   {CHO  formyl radical}
+    CH2O    = C + 2H + O ;  {formalydehyde}
+    CO      = C + O ;       {carbon monoxide}   
+    
+    RH      = ignore ;
+    RO2     = ignore ;
+    RCHO    = ignore ;
+    RCOO2   = ignore ;
+    RCOO2NO2= ignore ;
+
+#DEFFIX
+    H2O		= H + 2O ;      {water}
+    H2		= 2H ;          {molecular hydrogen}
+    O2      = 2O ;          {molecular oxygen}              
+    N2      = 2N ;          {molecular nitrogen}              
+    CH4		= C + 4H ;      {methane} 
+    CO2     = C + 2O ;      {carbon dioxide}
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/mechanisms/def_smog/chem_gasphase_mod.kpp
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/mechanisms/def_smog/chem_gasphase_mod.kpp	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/mechanisms/def_smog/chem_gasphase_mod.kpp	(revision 2696)
@@ -0,0 +1,37 @@
+//chem_gasphase_mod.kpp
+//
+//Former revisions
+//----------------
+// $Id: chem_gasphase_mod.kpp 2459 2017-09-13 14:10:33Z forkel $
+//
+#include      smog.spc
+#include      smog.eqn
+#INTEGRATOR rosenbrock
+#LANGUAGE   Fortran90
+#HESSIAN    on
+#STOICMAT   on
+#INLINE F90_GLOBAL
+  !   Declaration of global variable declarations for photolysis will come from INLINE F90_DATA
+#ENDINLINE
+//
+// *******************************************************************************************
+// *** adapt the lines below occurding to the photolysis reactions of your mechanism         *
+// *** adapt the number of photolysis frequencies NPHO                                       *
+// *** adapt/extend the indices in the INTEGER, PARAMETER,PUBLIC statement below             *
+// *** adapt/extend PHOT_NAMES: Note that the order of PHOT_NAMES and the indices must match *
+// *******************************************************************************************
+//
+#INLINE F90_DATA
+  !   INLINE F90_DATA: Declaration of global variables for photolysis
+  !   REAL(kind=dp) :: phot(nphot) must eventually be moved to GLOBAL later for vector version
+  INTEGER, PARAMETER :: nphot = 2
+  !   phot Photolysis frequencies 
+  REAL(kind=dp) :: phot(nphot)
+
+  INTEGER, PARAMETER,PUBLIC :: j_no2 = 1
+  INTEGER, PARAMETER,PUBLIC :: j_rcho = 2
+
+  CHARACTER(LEN=15), PARAMETER, DIMENSION(NPHOT) :: phot_names =  (/ &
+     'J_NO2          ','J_RCHO         '/)
+#ENDINLINE
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/mechanisms/def_smog/smog.eqn
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/mechanisms/def_smog/smog.eqn	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/mechanisms/def_smog/smog.eqn	(revision 2696)
@@ -0,0 +1,22 @@
+{smog.eqn
+Former revisions
+----------------
+ $Id: smog.eqn 2612 2017-11-15 16:50:16Z forkel $
+}
+#EQUATIONS
+
+{ Photochemical Smog with photolysis}
+
+  { 1.}  NO2 + hv = NO + O :                   phot(j_no2)  ;
+  { 2.}  O + O2 = O3       :                 arr2(3.2e-11_dp,  -70.0_dp, temp) ;
+  { 3.}  NO + O3 = NO2 + O2 :                arr2(1.8E-12_dp, 1370.0_dp, temp) ;
+  { 4.}  RH + OH = RO2 + H2O :               arr2(2.E-11_dp, 500.0_dp, temp) ;
+  { 5.}  RCHO + OH = RCOO2 + H2O :           arr2(7.0E-12_dp, -250.0_dp, temp) ;
+  { 6.}  RCHO + hv = RO2 + HO2 + CO :        phot(j_rcho)    ;
+  { 7.}  HO2 + NO = NO2 + OH :               arr2(3.7E-12_dp, -240.0_dp, temp) ;
+  { 8.}  RO2 + NO = NO2 + RCHO + HO2 :       arr2(4.2E-12_dp, -180.0_dp, temp);
+  { 9.}  RCOO2 + NO = NO2 + RO2 + CO2 :      arr2(5.4E-12_dp, -250.0_dp, temp) ;
+  {10.}  OH + NO2 = HNO3 :                   arr2(1.0E-12_dp, -713.0_dp, temp) ;
+  {11.}  RCOO2 + NO2 = RCOO2NO2 :            arr2(1.2e-11_dp, 0.0_dp, temp) ;
+  {12.}  RCOO2NO2 = RCOO2 + NO2 :            arr2(9.4E+16_dp, 14000.0_dp, temp) ;
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/mechanisms/def_smog/smog.spc
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/mechanisms/def_smog/smog.spc	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/mechanisms/def_smog/smog.spc	(revision 2696)
@@ -0,0 +1,42 @@
+{smog.spc
+Former revisions
+----------------
+ $Id: smog.spc 2459 2017-09-13 14:10:33Z forkel $
+}
+#include atoms
+
+ #DEFVAR  
+    O       = O ;      		{oxygen atomic ground state (3P)}
+    O3		= 3O ;          {ozone}  
+    NO		= N + O ;       {nitric oxide}  
+    NO2		= N + 2O ;      {nitrogen dioxide} 
+    NO3		= N + 3O ;      {nitrogen trioxide} 
+    N2O5	= 2N + 5O ;     {dinitrogen pentoxide}           
+    HNO3	= H + N + 3O ;  { nitric acid }
+    HNO4	= H + N + 4O ;  {HO2NO2 pernitric acid}
+    H           = H ;           {hydrogen atomic ground state (2S)}
+    OH		= O + H ;       {hydroxyl radical}  
+    HO2		= H + 2O ;      {perhydroxyl radical}                     
+    H2O2	= 2H + 2O ;     {hydrogen peroxide} 
+    CH3     = C + 3H ;      {methyl radical}
+    CH3O    = C + 3H + O ;  {methoxy radical}
+    CH3O2   = C + 3H + 2O ; {methylperoxy radical}
+    CH3OOH  = C + 4H + 2O ; {CH4O2      methylperoxy alcohol}
+    HCO     = H + C + O ;   {CHO  formyl radical}
+    CH2O    = C + 2H + O ;  {formalydehyde}
+    CO      = C + O ;       {carbon monoxide}   
+    
+    RH      = ignore ;
+    RO2     = ignore ;
+    RCHO    = ignore ;
+    RCOO2   = ignore ;
+    RCOO2NO2= ignore ;
+
+#DEFFIX
+    H2O		= H + 2O ;      {water}
+    H2		= 2H ;          {molecular hydrogen}
+    O2      = 2O ;          {molecular oxygen}              
+    N2      = 2N ;          {molecular nitrogen}              
+    CH4		= C + 4H ;      {methane} 
+    CO2     = C + 2O ;      {carbon dioxide}
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/run_kpp4palm.ksh
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/run_kpp4palm.ksh	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/run_kpp4palm.ksh	(revision 2696)
@@ -0,0 +1,78 @@
+#!/bin/ksh
+#
+#--------------------------------------------------------------------------------#
+#
+# Current revisions:
+# ------------------
+# 
+# 
+# Former revisions:
+# -----------------
+# $Id: run_kpp4palm.ksh 2603 2017-11-03 17:44:45Z forkel $ 
+#
+# 
+# Small adaptations (added MECH as argument, re-introduced relative path,
+#                    adaption to changing kp4 to kpp4palm)
+# filename changed from run_kp4.ksh to run_kpp4palm.ksh
+# 
+# 
+# 
+#
+# Nov. 2016: Initial Version of KPP chemistry by Klaus Ketelsen
+#
+
+echo "\$1 = " $1 
+
+if [[ $1 == "clean" ]]
+then
+  cd kpp
+  make distclean
+  cd ..
+
+  cd kpp4palm
+  make distclean                 
+  cd ..
+  exit
+fi
+
+export PATH=$PATH:`pwd`/kpp4palm/bin
+
+# build kpp
+
+cp mechanisms/UserRateLaws.f90 kpp/util
+cd kpp
+make
+cd ..
+
+# build kpp4palm.exe
+
+cd kpp4palm
+make install                    
+cd ..
+
+# run kpp4palm with default Setup
+#    -d   DEFDIR=$OPTARG;;          # directory of definition files
+#    -i   DE_INDEX="YES";;          # if set, deindexing
+#    -f   DE_INDEX_FAST="YES";;     # if set, fast deindexing
+#    -k   KEEP="YES";;              # keep Working directory
+#    -o   OUTDIR=$OPTARG;;          # Output directory of Geneated Code
+#    -p   PREFIX=$OPTARG;;          # Name Prefix
+#    -s   KPP_SOLVER=$OPTARG;;      # Name Prefix
+
+ 
+echo $PATH
+# use smog mechnism as default
+MECH=smog
+
+while  getopts m:  opt   # get options
+do case $opt in
+      m)   MECH=$OPTARG;;          # mechanism name as part of mechanisms/def_[mechanism_name]
+
+      \?)  print ${0##*/} "unknown option:" $OPTARG
+           print "USAGE: ${0##*/} [ -m mechanism_name ] "
+           exit 1;;
+   esac
+done
+echo $MECH
+
+kpp4palm.ksh -d `pwd`/mechanisms/def_$MECH -k
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/Makefile_chem_gasphase_mod
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/Makefile_chem_gasphase_mod	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/Makefile_chem_gasphase_mod	(revision 2696)
@@ -0,0 +1,178 @@
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+# User: Set here the F90 compiler and options
+#       Pedefined compilers: INTEL, PGF, HPUX, LAHEY
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+#COMPILER = G95
+#COMPILER = LAHEY
+COMPILER = INTEL
+#COMPILER = PGF
+#COMPILER = HPUX
+#COMPILER = GFORTRAN
+
+FC_G95     = g95
+FOPT_G95   = -cpp -O -pg -fbounds-check -fimplicit-none  -Wall -ftrace=full
+
+FC_LAHEY   = lf95
+# More aggressive for production runs:
+#FOPT_LAHEY = -Cpp --pca -O
+# More checking for debugging:
+FOPT_LAHEY = -Cpp --chk a,e,s,u --pca --ap -O0 -g --trap --trace --chkglobal
+
+FC_INTEL   = ifort 
+# More aggressive for production runs:
+#FOPT_INTEL = -cpp -O -fp-model precise -pc80 -prec_div
+# More checking for debugging:
+FOPT_INTEL = -cpp -O0 -fp-model strict -implicitnone -ftrapuv \
+              -debug all -check all -warn all
+
+FC_PGF     = pgf90
+# More aggressive for production runs:
+FOPT_PGF   = -Mpreprocess -O -fast -pc 80 -Kieee
+# More checking for debugging:
+#FOPT_PGF   = -Mpreprocess -O0 -Mbounds -Mchkfpstk -Mchkptr -Mchkstk \
+#             -Ktrap=fp -pc 80 -Kieee
+
+FC_HPUX    = f90
+FOPT_HPUX  = -O -u +Oall +check=on
+
+FC_GFORTRAN     = gfortran
+FOPT_GFORTRAN   = -cpp -O
+
+# define FULL_ALGEBRA for non-sparse integration
+FC   = $(FC_$(COMPILER))
+FOPT = $(FOPT_$(COMPILER)) # -DFULL_ALGEBRA
+
+LIBS =
+#LIBS = -llapack -lblas
+
+# Command to create Matlab mex gateway routines 
+# Note: use $(FC) as the mex Fortran compiler
+MEX  = mex
+
+GENSRC = chem_gasphase_mod_Precision.f90  \
+	 chem_gasphase_mod_Parameters.f90     \
+	 chem_gasphase_mod_Global.f90  
+
+GENOBJ = chem_gasphase_mod_Precision.o    \
+	 chem_gasphase_mod_Parameters.o       \
+	 chem_gasphase_mod_Global.o     
+
+FUNSRC = chem_gasphase_mod_Function.f90 
+FUNOBJ = chem_gasphase_mod_Function.o 
+
+JACSRC = chem_gasphase_mod_JacobianSP.f90  chem_gasphase_mod_Jacobian.f90
+JACOBJ = chem_gasphase_mod_JacobianSP.o    chem_gasphase_mod_Jacobian.o
+
+HESSRC = chem_gasphase_mod_HessianSP.f90   chem_gasphase_mod_Hessian.f90
+HESOBJ = chem_gasphase_mod_HessianSP.o     chem_gasphase_mod_Hessian.o
+
+STMSRC = chem_gasphase_mod_StoichiomSP.f90 chem_gasphase_mod_Stoichiom.f90 
+STMOBJ = chem_gasphase_mod_StoichiomSP.o   chem_gasphase_mod_Stoichiom.o
+
+UTLSRC = chem_gasphase_mod_Rates.f90 chem_gasphase_mod_Util.f90 chem_gasphase_mod_Monitor.f90
+UTLOBJ = chem_gasphase_mod_Rates.o   chem_gasphase_mod_Util.o   chem_gasphase_mod_Monitor.o
+
+LASRC  = chem_gasphase_mod_LinearAlgebra.f90 
+LAOBJ  = chem_gasphase_mod_LinearAlgebra.o   
+
+STOCHSRC = chem_gasphase_mod_Stochastic.f90 
+STOCHOBJ = chem_gasphase_mod_Stochastic.o 
+
+MAINSRC = chem_gasphase_mod_Main.f90   chem_gasphase_mod_Initialize.f90   chem_gasphase_mod_Integrator.f90 chem_gasphase_mod_Model.f90
+MAINOBJ = chem_gasphase_mod_Main.o     chem_gasphase_mod_Initialize.o     chem_gasphase_mod_Integrator.o   chem_gasphase_mod_Model.o 
+
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+# User: modify the line below to include only the
+#       objects needed by your application
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ALLOBJ = $(GENOBJ) $(FUNOBJ) $(JACOBJ) $(HESOBJ) $(STMOBJ) \
+	 $(UTLOBJ) $(LAOBJ)
+
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+# User: modify the line below to include only the
+#       executables needed by your application
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+all:    exe
+
+exe:	$(ALLOBJ) $(MAINOBJ) 
+	$(FC) $(FOPT) $(ALLOBJ) $(MAINOBJ) $(LIBS) -o chem_gasphase_mod.exe
+
+stochastic:$(ALLOBJ) $(STOCHOBJ) $(MAINOBJ)
+	$(FC) $(FOPT) $(ALLOBJ) $(STOCHOBJ) $(MAINOBJ) $(LIBS) \
+	-o chem_gasphase_mod_stochastic.exe
+
+mex:    $(ALLOBJ)
+	$(MEX) FC#$(FC) -fortran -O chem_gasphase_mod_mex_Fun.f90     $(ALLOBJ)
+	$(MEX) FC#$(FC) -fortran -O chem_gasphase_mod_mex_Jac_SP.f90  $(ALLOBJ)
+	$(MEX) FC#$(FC) -fortran -O chem_gasphase_mod_mex_Hessian.f90 $(ALLOBJ)
+
+clean:
+	rm -f chem_gasphase_mod*.o chem_gasphase_mod*.mod \
+	chem_gasphase_mod*.dat chem_gasphase_mod.exe chem_gasphase_mod*.mexglx \
+	chem_gasphase_mod.map
+
+distclean:
+	rm -f chem_gasphase_mod*.o chem_gasphase_mod*.mod \
+	chem_gasphase_mod*.dat chem_gasphase_mod.exe chem_gasphase_mod.map \
+	chem_gasphase_mod*.f90 chem_gasphase_mod_*.mexglx
+
+chem_gasphase_mod_Precision.o: chem_gasphase_mod_Precision.f90 
+	$(FC) $(FOPT) -c $<
+
+chem_gasphase_mod_Parameters.o: chem_gasphase_mod_Parameters.f90 \
+	            chem_gasphase_mod_Precision.o
+	$(FC) $(FOPT) -c $<
+
+chem_gasphase_mod_Monitor.o: chem_gasphase_mod_Monitor.f90 \
+	             chem_gasphase_mod_Precision.o
+	$(FC) $(FOPT) -c $<
+
+chem_gasphase_mod_Global.o: chem_gasphase_mod_Global.f90 \
+	            chem_gasphase_mod_Parameters.o chem_gasphase_mod_Precision.o
+	$(FC) $(FOPT) -c $<
+
+chem_gasphase_mod_Initialize.o: chem_gasphase_mod_Initialize.f90  $(GENOBJ) 
+	$(FC) $(FOPT) -c $<
+
+chem_gasphase_mod_Function.o: chem_gasphase_mod_Function.f90  $(GENOBJ) 
+	$(FC) $(FOPT) -c $<
+
+chem_gasphase_mod_Stochastic.o: chem_gasphase_mod_Stochastic.f90  $(GENOBJ) 
+	$(FC) $(FOPT) -c $<
+
+chem_gasphase_mod_JacobianSP.o: chem_gasphase_mod_JacobianSP.f90 $(GENOBJ)
+	$(FC) $(FOPT) -c $<
+
+chem_gasphase_mod_Jacobian.o: chem_gasphase_mod_Jacobian.f90  $(GENOBJ) chem_gasphase_mod_JacobianSP.o
+	$(FC) $(FOPT) -c $<
+
+chem_gasphase_mod_LinearAlgebra.o: chem_gasphase_mod_LinearAlgebra.f90 $(GENOBJ) chem_gasphase_mod_JacobianSP.o
+	$(FC) $(FOPT) -c $<
+
+chem_gasphase_mod_Rates.o: chem_gasphase_mod_Rates.f90  $(GENOBJ) 
+	$(FC) $(FOPT) -c $<
+
+chem_gasphase_mod_HessianSP.o: chem_gasphase_mod_HessianSP.f90  $(GENOBJ)
+	$(FC) $(FOPT) -c $<
+
+chem_gasphase_mod_Hessian.o:  chem_gasphase_mod_Hessian.f90 $(GENOBJ) chem_gasphase_mod_HessianSP.o
+	$(FC) $(FOPT) -c $<
+
+chem_gasphase_mod_StoichiomSP.o: chem_gasphase_mod_StoichiomSP.f90 $(GENOBJ)
+	$(FC) $(FOPT) -c $<
+
+chem_gasphase_mod_Stoichiom.o: chem_gasphase_mod_Stoichiom.f90  $(GENOBJ) chem_gasphase_mod_StoichiomSP.o
+	$(FC) $(FOPT) -c $<
+
+chem_gasphase_mod_Util.o: chem_gasphase_mod_Util.f90  $(GENOBJ) chem_gasphase_mod_Monitor.o
+	$(FC) $(FOPT) -c $<
+
+chem_gasphase_mod_Main.o: chem_gasphase_mod_Main.f90  $(ALLOBJ) chem_gasphase_mod_Initialize.o chem_gasphase_mod_Model.o chem_gasphase_mod_Integrator.o
+	$(FC) $(FOPT) -c $<
+
+chem_gasphase_mod_Model.o: chem_gasphase_mod_Model.f90  $(ALLOBJ) chem_gasphase_mod_Integrator.o
+	$(FC) $(FOPT) -c $<
+
+chem_gasphase_mod_Integrator.o: chem_gasphase_mod_Integrator.f90  $(ALLOBJ)
+	$(FC) $(FOPT) -c $<
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/chem_gasphase_mod.kpp
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/chem_gasphase_mod.kpp	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/chem_gasphase_mod.kpp	(revision 2696)
@@ -0,0 +1,36 @@
+//chem_gasphase_mod.kpp
+//
+//Former revisions
+//----------------
+// $Id: chem_gasphase_mod.kpp 2459 2017-09-13 14:10:33Z forkel $
+//
+#include      passive.spc
+#include      passive.eqn
+#INTEGRATOR rosenbrock
+#LANGUAGE   Fortran90
+#HESSIAN    on
+#STOICMAT   on
+#INLINE F90_GLOBAL
+  !   Declaration of global variable declarations for photolysis will come from INLINE F90_DATA
+#ENDINLINE
+//
+// *******************************************************************************************
+// *** adapt the lines below occurding to the photolysis reactions of your mechanism         *
+// *** adapt the number of photolysis frequencies NPHO                                       *
+// *** adapt/extend the indices in the INTEGER, PARAMETER,PUBLIC statement below             *
+// *** adapt/extend PHOT_NAMES: Note that the order of PHOT_NAMES and the indices must match *
+// *******************************************************************************************
+//
+#INLINE F90_DATA
+  !   INLINE F90_DATA: Declaration of global variables for photolysis
+  !   REAL(kind=dp) :: phot(nphot) must eventually be moved to GLOBAL later for vector version
+  INTEGER, PARAMETER :: nphot = 1
+  !   phot Photolysis frequencies
+  REAL(kind=dp) :: phot(nphot)
+
+  INTEGER, PARAMETER,PUBLIC :: j_no2 = 1
+
+  CHARACTER(LEN=15), PARAMETER, DIMENSION(NPHOT) :: phot_names =  (/ &
+     'J_NO2          '/)
+#ENDINLINE
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/chem_gasphase_mod.map
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/chem_gasphase_mod.map	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/chem_gasphase_mod.map	(revision 2696)
@@ -0,0 +1,76 @@
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+! Map File with Human-Readable Information
+! 
+! Generated by KPP-2.2.3 symbolic chemistry Kinetics PreProcessor
+!       (http://www.cs.vt.edu/~asandu/Software/KPP)
+! KPP is distributed under GPL, the general public licence
+!       (http://www.gnu.org/copyleft/gpl.html)
+! (C) 1995-1997, V. Damian & A. Sandu, CGRER, Univ. Iowa
+! (C) 1997-2005, A. Sandu, Michigan Tech, Virginia Tech
+!     With important contributions from:
+!        M. Damian, Villanova University, USA
+!        R. Sander, Max-Planck Institute for Chemistry, Mainz, Germany
+! 
+! File                 : chem_gasphase_mod.map
+! Time                 : Fri Dec  1 18:10:53 2017
+! Working directory    : /data/kanani/branches/palm4u/GASPHASE_PREPROC/tmp_kpp4palm
+! Equation file        : chem_gasphase_mod.kpp
+! Output root filename : chem_gasphase_mod
+! 
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+
+### Options -------------------------------------------
+
+FUNCTION - AGGREGATE
+JACOBIAN - SPARSE W/ ACCOUNT FOR LU DECOMPOSITION FILL-IN
+DOUBLE   - ON
+REORDER  - ON
+
+### Parameters ----------------------------------------
+
+! NSPEC - Number of chemical species
+  INTEGER, PARAMETER :: NSPEC = 3 
+! NVAR - Number of Variable species
+  INTEGER, PARAMETER :: NVAR = 3 
+! NVARACT - Number of Active species
+  INTEGER, PARAMETER :: NVARACT = 3 
+! NFIX - Number of Fixed species
+  INTEGER, PARAMETER :: NFIX = 1 
+! NREACT - Number of reactions
+  INTEGER, PARAMETER :: NREACT = 3 
+! NVARST - Starting of variables in conc. vect.
+  INTEGER, PARAMETER :: NVARST = 1 
+! NFIXST - Starting of fixed in conc. vect.
+  INTEGER, PARAMETER :: NFIXST = 4 
+
+### Species -------------------------------------------
+
+Variable species
+  1 = CO (r)      3 = PM25 (r)  
+  2 = PM10 (r)  
+
+Fixed species
+
+
+### Subroutines ---------------------------------------
+
+SUBROUTINE Fun ( V, F, RCT, Vdot )
+SUBROUTINE Jac_SP ( V, F, RCT, JVS )
+SUBROUTINE Jac_SP_Vec ( JVS, UV, JUV )
+SUBROUTINE JacTR_SP_Vec ( JVS, UV, JTUV )
+SUBROUTINE KppSolve ( JVS, X )
+SUBROUTINE KppSolveTR ( JVS, X, XX )
+SUBROUTINE Hessian ( V, F, RCT, HESS )
+SUBROUTINE HessTR_Vec ( HESS, U1, U2, HTU )
+SUBROUTINE Hess_Vec ( HESS, U1, U2, HU )
+SUBROUTINE Initialize ( )
+SUBROUTINE Shuffle_user2kpp ( V_USER, V )
+SUBROUTINE Shuffle_kpp2user ( V, V_USER )
+SUBROUTINE Update_RCONST ( )
+SUBROUTINE Update_PHOTO ( )
+SUBROUTINE GetMass ( CL, Mass )
+SUBROUTINE ReactantProd ( V, F, ARP )
+SUBROUTINE JacReactantProd ( V, F, JVRP )
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/chem_gasphase_mod_Function.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/chem_gasphase_mod_Function.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/chem_gasphase_mod_Function.f90	(revision 2696)
@@ -0,0 +1,74 @@
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+! The ODE Function of Chemical Model File
+! 
+! Generated by KPP-2.2.3 symbolic chemistry Kinetics PreProcessor
+!       (http://www.cs.vt.edu/~asandu/Software/KPP)
+! KPP is distributed under GPL, the general public licence
+!       (http://www.gnu.org/copyleft/gpl.html)
+! (C) 1995-1997, V. Damian & A. Sandu, CGRER, Univ. Iowa
+! (C) 1997-2005, A. Sandu, Michigan Tech, Virginia Tech
+!     With important contributions from:
+!        M. Damian, Villanova University, USA
+!        R. Sander, Max-Planck Institute for Chemistry, Mainz, Germany
+! 
+! File                 : chem_gasphase_mod_Function.f90
+! Time                 : Fri Dec  1 18:10:53 2017
+! Working directory    : /data/kanani/branches/palm4u/GASPHASE_PREPROC/tmp_kpp4palm
+! Equation file        : chem_gasphase_mod.kpp
+! Output root filename : chem_gasphase_mod
+! 
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+
+MODULE chem_gasphase_mod_Function
+
+  USE chem_gasphase_mod_Parameters
+  IMPLICIT NONE
+
+! A - Rate for each equation
+  REAL(kind=dp) :: A(NREACT)
+
+CONTAINS
+
+
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+! Fun - time derivatives of variables - Agregate form
+!   Arguments :
+!      V         - Concentrations of variable species (local)
+!      F         - Concentrations of fixed species (local)
+!      RCT       - Rate constants (local)
+!      Vdot      - Time derivative of variable species concentrations
+! 
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+SUBROUTINE Fun ( V, F, RCT, Vdot )
+
+! V - Concentrations of variable species (local)
+  REAL(kind=dp) :: V(NVAR)
+! F - Concentrations of fixed species (local)
+  REAL(kind=dp) :: F(NFIX)
+! RCT - Rate constants (local)
+  REAL(kind=dp) :: RCT(NREACT)
+! Vdot - Time derivative of variable species concentrations
+  REAL(kind=dp) :: Vdot(NVAR)
+
+
+! Computation of equation rates
+
+! Aggregate function
+  Vdot(1) = 0
+  Vdot(2) = 0
+  Vdot(3) = 0
+      
+END SUBROUTINE Fun
+
+! End of Fun function
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+
+END MODULE chem_gasphase_mod_Function
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/chem_gasphase_mod_Global.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/chem_gasphase_mod_Global.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/chem_gasphase_mod_Global.f90	(revision 2696)
@@ -0,0 +1,79 @@
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+! Global Data Module File
+! 
+! Generated by KPP-2.2.3 symbolic chemistry Kinetics PreProcessor
+!       (http://www.cs.vt.edu/~asandu/Software/KPP)
+! KPP is distributed under GPL, the general public licence
+!       (http://www.gnu.org/copyleft/gpl.html)
+! (C) 1995-1997, V. Damian & A. Sandu, CGRER, Univ. Iowa
+! (C) 1997-2005, A. Sandu, Michigan Tech, Virginia Tech
+!     With important contributions from:
+!        M. Damian, Villanova University, USA
+!        R. Sander, Max-Planck Institute for Chemistry, Mainz, Germany
+! 
+! File                 : chem_gasphase_mod_Global.f90
+! Time                 : Fri Dec  1 18:10:53 2017
+! Working directory    : /data/kanani/branches/palm4u/GASPHASE_PREPROC/tmp_kpp4palm
+! Equation file        : chem_gasphase_mod.kpp
+! Output root filename : chem_gasphase_mod
+! 
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+
+MODULE chem_gasphase_mod_Global
+
+  USE chem_gasphase_mod_Parameters, ONLY: dp, NSPEC, NVAR, NFIX, NREACT
+  PUBLIC
+  SAVE
+
+
+! Declaration of global variables
+
+! C - Concentration of all species
+  REAL(kind=dp) :: C(NSPEC)
+! VAR - Concentrations of variable species (global)
+  REAL(kind=dp) :: VAR(NVAR)
+! FIX - Concentrations of fixed species (global)
+  REAL(kind=dp) :: FIX(NFIX)
+! VAR, FIX are chunks of array C
+      EQUIVALENCE( C(1),VAR(1) )
+! RCONST - Rate constants (global)
+  REAL(kind=dp) :: RCONST(NREACT)
+! TIME - Current integration time
+  REAL(kind=dp) :: TIME
+! SUN - Sunlight intensity between [0,1]
+  REAL(kind=dp) :: SUN
+! TEMP - Temperature
+  REAL(kind=dp) :: TEMP
+! RTOLS - (scalar) Relative tolerance
+  REAL(kind=dp) :: RTOLS
+! TSTART - Integration start time
+  REAL(kind=dp) :: TSTART
+! TEND - Integration end time
+  REAL(kind=dp) :: TEND
+! DT - Integration step
+  REAL(kind=dp) :: DT
+! ATOL - Absolute tolerance
+  REAL(kind=dp) :: ATOL(NVAR)
+! RTOL - Relative tolerance
+  REAL(kind=dp) :: RTOL(NVAR)
+! STEPMIN - Lower bound for integration step
+  REAL(kind=dp) :: STEPMIN
+! STEPMAX - Upper bound for integration step
+  REAL(kind=dp) :: STEPMAX
+! CFACTOR - Conversion factor for concentration units
+  REAL(kind=dp) :: CFACTOR
+! DDMTYPE - DDM sensitivity w.r.t.: 0=init.val., 1=params
+  INTEGER :: DDMTYPE
+
+! INLINED global variable declarations
+
+  !   Declaration of global variable declarations for photolysis will come from 
+
+! INLINED global variable declarations
+
+
+END MODULE chem_gasphase_mod_Global
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/chem_gasphase_mod_Hessian.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/chem_gasphase_mod_Hessian.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/chem_gasphase_mod_Hessian.f90	(revision 2696)
@@ -0,0 +1,149 @@
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+! Hessian File
+! 
+! Generated by KPP-2.2.3 symbolic chemistry Kinetics PreProcessor
+!       (http://www.cs.vt.edu/~asandu/Software/KPP)
+! KPP is distributed under GPL, the general public licence
+!       (http://www.gnu.org/copyleft/gpl.html)
+! (C) 1995-1997, V. Damian & A. Sandu, CGRER, Univ. Iowa
+! (C) 1997-2005, A. Sandu, Michigan Tech, Virginia Tech
+!     With important contributions from:
+!        M. Damian, Villanova University, USA
+!        R. Sander, Max-Planck Institute for Chemistry, Mainz, Germany
+! 
+! File                 : chem_gasphase_mod_Hessian.f90
+! Time                 : Fri Dec  1 18:10:53 2017
+! Working directory    : /data/kanani/branches/palm4u/GASPHASE_PREPROC/tmp_kpp4palm
+! Equation file        : chem_gasphase_mod.kpp
+! Output root filename : chem_gasphase_mod
+! 
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+
+MODULE chem_gasphase_mod_Hessian
+
+  USE chem_gasphase_mod_Parameters
+  USE chem_gasphase_mod_HessianSP
+
+  IMPLICIT NONE
+
+CONTAINS
+
+
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+! Hessian - function for Hessian (Jac derivative w.r.t. variables)
+!   Arguments :
+!      V         - Concentrations of variable species (local)
+!      F         - Concentrations of fixed species (local)
+!      RCT       - Rate constants (local)
+!      HESS      - Hessian of Var (i.e. the 3-tensor d Jac / d Var)
+! 
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+SUBROUTINE Hessian ( V, F, RCT, HESS )
+
+! V - Concentrations of variable species (local)
+  REAL(kind=dp) :: V(NVAR)
+! F - Concentrations of fixed species (local)
+  REAL(kind=dp) :: F(NFIX)
+! RCT - Rate constants (local)
+  REAL(kind=dp) :: RCT(NREACT)
+! HESS - Hessian of Var (i.e. the 3-tensor d Jac / d Var)
+  REAL(kind=dp) :: HESS(NHESS)
+
+! --------------------------------------------------------
+! Note: HESS is represented in coordinate sparse format:
+!       HESS(m) = d^2 f_i / dv_j dv_k = d Jac_{i,j} / dv_k
+!       where i = IHESS_I(m), j = IHESS_J(m), k = IHESS_K(m).
+! --------------------------------------------------------
+! Note: d^2 f_i / dv_j dv_k = d^2 f_i / dv_k dv_j,
+!       therefore only the terms d^2 f_i / dv_j dv_k
+!       with j <= k are computed and stored in HESS.
+! --------------------------------------------------------
+
+! Local variables
+! D2A - Second derivatives of equation rates
+  REAL(kind=dp) :: D2A(1)
+
+! Computation of the second derivatives of equation rates
+
+! Computation of the Jacobian derivative
+      
+END SUBROUTINE Hessian
+
+! End of Hessian function
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+! HessTR_Vec - Hessian transposed times user vectors
+!   Arguments :
+!      HESS      - Hessian of Var (i.e. the 3-tensor d Jac / d Var)
+!      U1        - User vector
+!      U2        - User vector
+!      HTU       - Transposed Hessian times user vectors: (Hess x U2)^T * U1 = [d (Jac^T*U1)/d Var] * U2
+! 
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+SUBROUTINE HessTR_Vec ( HESS, U1, U2, HTU )
+
+! HESS - Hessian of Var (i.e. the 3-tensor d Jac / d Var)
+  REAL(kind=dp) :: HESS(NHESS)
+! U1 - User vector
+  REAL(kind=dp) :: U1(NVAR)
+! U2 - User vector
+  REAL(kind=dp) :: U2(NVAR)
+! HTU - Transposed Hessian times user vectors: (Hess x U2)^T * U1 = [d (Jac^T*U1)/d Var] * U2
+  REAL(kind=dp) :: HTU(NVAR)
+
+! Compute the vector HTU =(Hess x U2)^T * U1 = d (Jac^T*U1)/d Var * U2
+  HTU(1) = 0
+  HTU(2) = 0
+  HTU(3) = 0
+      
+END SUBROUTINE HessTR_Vec
+
+! End of HessTR_Vec function
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+! Hess_Vec - Hessian times user vectors
+!   Arguments :
+!      HESS      - Hessian of Var (i.e. the 3-tensor d Jac / d Var)
+!      U1        - User vector
+!      U2        - User vector
+!      HU        - Hessian times user vectors: (Hess x U2) * U1 = [d (Jac*U1)/d Var] * U2
+! 
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+SUBROUTINE Hess_Vec ( HESS, U1, U2, HU )
+
+! HESS - Hessian of Var (i.e. the 3-tensor d Jac / d Var)
+  REAL(kind=dp) :: HESS(NHESS)
+! U1 - User vector
+  REAL(kind=dp) :: U1(NVAR)
+! U2 - User vector
+  REAL(kind=dp) :: U2(NVAR)
+! HU - Hessian times user vectors: (Hess x U2) * U1 = [d (Jac*U1)/d Var] * U2
+  REAL(kind=dp) :: HU(NVAR)
+
+! Compute the vector HU =(Hess x U2) * U1 = d (Jac*U1)/d Var * U2
+  HU(1) = 0
+  HU(2) = 0
+  HU(3) = 0
+      
+END SUBROUTINE Hess_Vec
+
+! End of Hess_Vec function
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+
+END MODULE chem_gasphase_mod_Hessian
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/chem_gasphase_mod_HessianSP.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/chem_gasphase_mod_HessianSP.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/chem_gasphase_mod_HessianSP.f90	(revision 2696)
@@ -0,0 +1,39 @@
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+! Sparse Hessian Data Structures File
+! 
+! Generated by KPP-2.2.3 symbolic chemistry Kinetics PreProcessor
+!       (http://www.cs.vt.edu/~asandu/Software/KPP)
+! KPP is distributed under GPL, the general public licence
+!       (http://www.gnu.org/copyleft/gpl.html)
+! (C) 1995-1997, V. Damian & A. Sandu, CGRER, Univ. Iowa
+! (C) 1997-2005, A. Sandu, Michigan Tech, Virginia Tech
+!     With important contributions from:
+!        M. Damian, Villanova University, USA
+!        R. Sander, Max-Planck Institute for Chemistry, Mainz, Germany
+! 
+! File                 : chem_gasphase_mod_HessianSP.f90
+! Time                 : Fri Dec  1 18:10:53 2017
+! Working directory    : /data/kanani/branches/palm4u/GASPHASE_PREPROC/tmp_kpp4palm
+! Equation file        : chem_gasphase_mod.kpp
+! Output root filename : chem_gasphase_mod
+! 
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+
+MODULE chem_gasphase_mod_HessianSP
+
+  PUBLIC
+  SAVE
+
+
+! Hessian Sparse Data
+! 
+
+  INTEGER, DIMENSION(1) :: IHESS_I
+  INTEGER, DIMENSION(1) :: IHESS_J
+  INTEGER, DIMENSION(1) :: IHESS_K
+
+END MODULE chem_gasphase_mod_HessianSP
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/chem_gasphase_mod_Initialize.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/chem_gasphase_mod_Initialize.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/chem_gasphase_mod_Initialize.f90	(revision 2696)
@@ -0,0 +1,76 @@
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+! Initialization File
+! 
+! Generated by KPP-2.2.3 symbolic chemistry Kinetics PreProcessor
+!       (http://www.cs.vt.edu/~asandu/Software/KPP)
+! KPP is distributed under GPL, the general public licence
+!       (http://www.gnu.org/copyleft/gpl.html)
+! (C) 1995-1997, V. Damian & A. Sandu, CGRER, Univ. Iowa
+! (C) 1997-2005, A. Sandu, Michigan Tech, Virginia Tech
+!     With important contributions from:
+!        M. Damian, Villanova University, USA
+!        R. Sander, Max-Planck Institute for Chemistry, Mainz, Germany
+! 
+! File                 : chem_gasphase_mod_Initialize.f90
+! Time                 : Fri Dec  1 18:10:53 2017
+! Working directory    : /data/kanani/branches/palm4u/GASPHASE_PREPROC/tmp_kpp4palm
+! Equation file        : chem_gasphase_mod.kpp
+! Output root filename : chem_gasphase_mod
+! 
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+
+MODULE chem_gasphase_mod_Initialize
+
+  USE chem_gasphase_mod_Parameters, ONLY: dp, NVAR, NFIX
+  IMPLICIT NONE
+
+CONTAINS
+
+
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+! Initialize - function to initialize concentrations
+!   Arguments :
+! 
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+SUBROUTINE Initialize ( )
+
+
+  USE chem_gasphase_mod_Global
+
+  INTEGER :: i
+  REAL(kind=dp) :: x
+
+  CFACTOR = 1.000000e+00_dp
+
+  x = (0.)*CFACTOR
+  DO i = 1, NVAR
+    VAR(i) = x
+  END DO
+
+  x = (0.)*CFACTOR
+  DO i = 1, NFIX
+    FIX(i) = x
+  END DO
+
+! constant rate coefficients
+! END constant rate coefficients
+
+! INLINED initializations
+
+! End INLINED initializations
+
+      
+END SUBROUTINE Initialize
+
+! End of Initialize function
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+
+END MODULE chem_gasphase_mod_Initialize
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/chem_gasphase_mod_Integrator.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/chem_gasphase_mod_Integrator.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/chem_gasphase_mod_Integrator.f90	(revision 2696)
@@ -0,0 +1,1365 @@
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+! Numerical Integrator (Time-Stepping) File
+! 
+! Generated by KPP-2.2.3 symbolic chemistry Kinetics PreProcessor
+!       (http://www.cs.vt.edu/~asandu/Software/KPP)
+! KPP is distributed under GPL, the general public licence
+!       (http://www.gnu.org/copyleft/gpl.html)
+! (C) 1995-1997, V. Damian & A. Sandu, CGRER, Univ. Iowa
+! (C) 1997-2005, A. Sandu, Michigan Tech, Virginia Tech
+!     With important contributions from:
+!        M. Damian, Villanova University, USA
+!        R. Sander, Max-Planck Institute for Chemistry, Mainz, Germany
+! 
+! File                 : chem_gasphase_mod_Integrator.f90
+! Time                 : Fri Dec  1 18:10:53 2017
+! Working directory    : /data/kanani/branches/palm4u/GASPHASE_PREPROC/tmp_kpp4palm
+! Equation file        : chem_gasphase_mod.kpp
+! Output root filename : chem_gasphase_mod
+! 
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+! INTEGRATE - Integrator routine
+!   Arguments :
+!      TIN       - Start Time for Integration
+!      TOUT      - End Time for Integration
+! 
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
+!  Rosenbrock - Implementation of several Rosenbrock methods:             !
+!               * Ros2                                                    !
+!               * Ros3                                                    !
+!               * Ros4                                                    !
+!               * Rodas3                                                  !
+!               * Rodas4                                                  !
+!  By default the code employs the KPP sparse linear algebra routines     !
+!  Compile with -DFULL_ALGEBRA to use full linear algebra (LAPACK)        !
+!                                                                         !
+!    (C)  Adrian Sandu, August 2004                                       !
+!    Virginia Polytechnic Institute and State University                  !
+!    Contact: sandu@cs.vt.edu                                             !
+!    Revised by Philipp Miehe and Adrian Sandu, May 2006                  !                               !
+!    This implementation is part of KPP - the Kinetic PreProcessor        !
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
+
+MODULE chem_gasphase_mod_Integrator
+
+  USE chem_gasphase_mod_Parameters, ONLY: NVAR, NFIX, NSPEC, LU_NONZERO
+  USE chem_gasphase_mod_Global
+  IMPLICIT NONE
+  PUBLIC
+  SAVE
+  
+!~~~>  Statistics on the work performed by the Rosenbrock method
+  INTEGER, PARAMETER :: Nfun=1, Njac=2, Nstp=3, Nacc=4, &
+                        Nrej=5, Ndec=6, Nsol=7, Nsng=8, &
+                        Ntexit=1, Nhexit=2, Nhnew = 3
+
+CONTAINS
+
+SUBROUTINE INTEGRATE( TIN, TOUT, &
+  ICNTRL_U, RCNTRL_U, ISTATUS_U, RSTATUS_U, IERR_U )
+
+   IMPLICIT NONE
+
+   REAL(kind=dp), INTENT(IN) :: TIN  ! Start Time
+   REAL(kind=dp), INTENT(IN) :: TOUT ! End Time
+   ! Optional input parameters and statistics
+   INTEGER,       INTENT(IN),  OPTIONAL :: ICNTRL_U(20)
+   REAL(kind=dp), INTENT(IN),  OPTIONAL :: RCNTRL_U(20)
+   INTEGER,       INTENT(OUT), OPTIONAL :: ISTATUS_U(20)
+   REAL(kind=dp), INTENT(OUT), OPTIONAL :: RSTATUS_U(20)
+   INTEGER,       INTENT(OUT), OPTIONAL :: IERR_U
+
+   REAL(kind=dp) :: RCNTRL(20), RSTATUS(20)
+   INTEGER       :: ICNTRL(20), ISTATUS(20), IERR
+
+   INTEGER, SAVE :: Ntotal = 0
+
+   ICNTRL(:)  = 0
+   RCNTRL(:)  = 0.0_dp
+   ISTATUS(:) = 0
+   RSTATUS(:) = 0.0_dp
+
+    !~~~> fine-tune the integrator:
+   ICNTRL(1) = 0	! 0 - non-autonomous, 1 - autonomous
+   ICNTRL(2) = 0	! 0 - vector tolerances, 1 - scalars
+
+   ! If optional parameters are given, and if they are >0, 
+   ! then they overwrite default settings. 
+   IF (PRESENT(ICNTRL_U)) THEN
+     WHERE(ICNTRL_U(:) > 0) ICNTRL(:) = ICNTRL_U(:)
+   END IF
+   IF (PRESENT(RCNTRL_U)) THEN
+     WHERE(RCNTRL_U(:) > 0) RCNTRL(:) = RCNTRL_U(:)
+   END IF
+
+
+   CALL Rosenbrock(NVAR,VAR,TIN,TOUT,   &
+         ATOL,RTOL,                &
+         RCNTRL,ICNTRL,RSTATUS,ISTATUS,IERR)
+
+   !~~~> Debug option: show no of steps
+   ! Ntotal = Ntotal + ISTATUS(Nstp)
+   ! PRINT*,'NSTEPS=',ISTATUS(Nstp),' (',Ntotal,')','  O3=', VAR(ind_O3)
+
+   STEPMIN = RSTATUS(Nhexit)
+   ! if optional parameters are given for output they 
+   ! are updated with the return information
+   IF (PRESENT(ISTATUS_U)) ISTATUS_U(:) = ISTATUS(:)
+   IF (PRESENT(RSTATUS_U)) RSTATUS_U(:) = RSTATUS(:)
+   IF (PRESENT(IERR_U))    IERR_U       = IERR
+
+END SUBROUTINE INTEGRATE
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+SUBROUTINE Rosenbrock(N,Y,Tstart,Tend, &
+           AbsTol,RelTol,              &
+           RCNTRL,ICNTRL,RSTATUS,ISTATUS,IERR)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!    Solves the system y'=F(t,y) using a Rosenbrock method defined by:
+!
+!     G = 1/(H*gamma(1)) - Jac(t0,Y0)
+!     T_i = t0 + Alpha(i)*H
+!     Y_i = Y0 + \sum_{j=1}^{i-1} A(i,j)*K_j
+!     G * K_i = Fun( T_i, Y_i ) + \sum_{j=1}^S C(i,j)/H * K_j +
+!         gamma(i)*dF/dT(t0, Y0)
+!     Y1 = Y0 + \sum_{j=1}^S M(j)*K_j
+!
+!    For details on Rosenbrock methods and their implementation consult:
+!      E. Hairer and G. Wanner
+!      "Solving ODEs II. Stiff and differential-algebraic problems".
+!      Springer series in computational mathematics, Springer-Verlag, 1996.
+!    The codes contained in the book inspired this implementation.
+!
+!    (C)  Adrian Sandu, August 2004
+!    Virginia Polytechnic Institute and State University
+!    Contact: sandu@cs.vt.edu
+!    Revised by Philipp Miehe and Adrian Sandu, May 2006                  
+!    This implementation is part of KPP - the Kinetic PreProcessor
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>   INPUT ARGUMENTS:
+!
+!-     Y(N)    = vector of initial conditions (at T=Tstart)
+!-    [Tstart,Tend]  = time range of integration
+!     (if Tstart>Tend the integration is performed backwards in time)
+!-    RelTol, AbsTol = user precribed accuracy
+!- SUBROUTINE  Fun( T, Y, Ydot ) = ODE function,
+!                       returns Ydot = Y' = F(T,Y)
+!- SUBROUTINE  Jac( T, Y, Jcb ) = Jacobian of the ODE function,
+!                       returns Jcb = dFun/dY
+!-    ICNTRL(1:20)    = integer inputs parameters
+!-    RCNTRL(1:20)    = real inputs parameters
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>     OUTPUT ARGUMENTS:
+!
+!-    Y(N)    -> vector of final states (at T->Tend)
+!-    ISTATUS(1:20)   -> integer output parameters
+!-    RSTATUS(1:20)   -> real output parameters
+!-    IERR            -> job status upon return
+!                        success (positive value) or
+!                        failure (negative value)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>     INPUT PARAMETERS:
+!
+!    Note: For input parameters equal to zero the default values of the
+!       corresponding variables are used.
+!
+!    ICNTRL(1) = 1: F = F(y)   Independent of T (AUTONOMOUS)
+!              = 0: F = F(t,y) Depends on T (NON-AUTONOMOUS)
+!
+!    ICNTRL(2) = 0: AbsTol, RelTol are N-dimensional vectors
+!              = 1: AbsTol, RelTol are scalars
+!
+!    ICNTRL(3)  -> selection of a particular Rosenbrock method
+!        = 0 :    Rodas3 (default)
+!        = 1 :    Ros2
+!        = 2 :    Ros3
+!        = 3 :    Ros4
+!        = 4 :    Rodas3
+!        = 5 :    Rodas4
+!
+!    ICNTRL(4)  -> maximum number of integration steps
+!        For ICNTRL(4)=0) the default value of 100000 is used
+!
+!    RCNTRL(1)  -> Hmin, lower bound for the integration step size
+!          It is strongly recommended to keep Hmin = ZERO
+!    RCNTRL(2)  -> Hmax, upper bound for the integration step size
+!    RCNTRL(3)  -> Hstart, starting value for the integration step size
+!
+!    RCNTRL(4)  -> FacMin, lower bound on step decrease factor (default=0.2)
+!    RCNTRL(5)  -> FacMax, upper bound on step increase factor (default=6)
+!    RCNTRL(6)  -> FacRej, step decrease factor after multiple rejections
+!                          (default=0.1)
+!    RCNTRL(7)  -> FacSafe, by which the new step is slightly smaller
+!         than the predicted value  (default=0.9)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!
+!    OUTPUT ARGUMENTS:
+!    -----------------
+!
+!    T           -> T value for which the solution has been computed
+!                     (after successful return T=Tend).
+!
+!    Y(N)        -> Numerical solution at T
+!
+!    IDID        -> Reports on successfulness upon return:
+!                    = 1 for success
+!                    < 0 for error (value equals error code)
+!
+!    ISTATUS(1)  -> No. of function calls
+!    ISTATUS(2)  -> No. of jacobian calls
+!    ISTATUS(3)  -> No. of steps
+!    ISTATUS(4)  -> No. of accepted steps
+!    ISTATUS(5)  -> No. of rejected steps (except at very beginning)
+!    ISTATUS(6)  -> No. of LU decompositions
+!    ISTATUS(7)  -> No. of forward/backward substitutions
+!    ISTATUS(8)  -> No. of singular matrix decompositions
+!
+!    RSTATUS(1)  -> Texit, the time corresponding to the
+!                     computed Y upon return
+!    RSTATUS(2)  -> Hexit, last accepted step before exit
+!    RSTATUS(3)  -> Hnew, last predicted step (not yet taken)
+!                   For multiple restarts, use Hnew as Hstart 
+!                     in the subsequent run
+!
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  USE chem_gasphase_mod_Parameters
+  USE chem_gasphase_mod_LinearAlgebra
+  IMPLICIT NONE
+
+!~~~>  Arguments
+   INTEGER,       INTENT(IN)    :: N
+   REAL(kind=dp), INTENT(INOUT) :: Y(N)
+   REAL(kind=dp), INTENT(IN)    :: Tstart,Tend
+   REAL(kind=dp), INTENT(IN)    :: AbsTol(N),RelTol(N)
+   INTEGER,       INTENT(IN)    :: ICNTRL(20)
+   REAL(kind=dp), INTENT(IN)    :: RCNTRL(20)
+   INTEGER,       INTENT(INOUT) :: ISTATUS(20)
+   REAL(kind=dp), INTENT(INOUT) :: RSTATUS(20)
+   INTEGER, INTENT(OUT)   :: IERR
+!~~~>  Parameters of the Rosenbrock method, up to 6 stages
+   INTEGER ::  ros_S, rosMethod
+   INTEGER, PARAMETER :: RS2=1, RS3=2, RS4=3, RD3=4, RD4=5, RG3=6
+   REAL(kind=dp) :: ros_A(15), ros_C(15), ros_M(6), ros_E(6), &
+                    ros_Alpha(6), ros_Gamma(6), ros_ELO
+   LOGICAL :: ros_NewF(6)
+   CHARACTER(LEN=12) :: ros_Name
+!~~~>  Local variables
+   REAL(kind=dp) :: Roundoff, FacMin, FacMax, FacRej, FacSafe
+   REAL(kind=dp) :: Hmin, Hmax, Hstart
+   REAL(kind=dp) :: Texit
+   INTEGER       :: i, UplimTol, Max_no_steps
+   LOGICAL       :: Autonomous, VectorTol
+!~~~>   Parameters
+   REAL(kind=dp), PARAMETER :: ZERO = 0.0_dp, ONE  = 1.0_dp
+   REAL(kind=dp), PARAMETER :: DeltaMin = 1.0E-5_dp
+
+!~~~>  Initialize statistics
+   ISTATUS(1:8) = 0
+   RSTATUS(1:3) = ZERO
+
+!~~~>  Autonomous or time dependent ODE. Default is time dependent.
+   Autonomous = .NOT.(ICNTRL(1) == 0)
+
+!~~~>  For Scalar tolerances (ICNTRL(2).NE.0)  the code uses AbsTol(1) and RelTol(1)
+!   For Vector tolerances (ICNTRL(2) == 0) the code uses AbsTol(1:N) and RelTol(1:N)
+   IF (ICNTRL(2) == 0) THEN
+      VectorTol = .TRUE.
+      UplimTol  = N
+   ELSE
+      VectorTol = .FALSE.
+      UplimTol  = 1
+   END IF
+
+!~~~>   Initialize the particular Rosenbrock method selected
+   SELECT CASE (ICNTRL(3))
+     CASE (1)
+       CALL Ros2
+     CASE (2)
+       CALL Ros3
+     CASE (3)
+       CALL Ros4
+     CASE (0,4)
+       CALL Rodas3
+     CASE (5)
+       CALL Rodas4
+     CASE (6)
+       CALL Rang3
+     CASE DEFAULT
+       PRINT * , 'Unknown Rosenbrock method: ICNTRL(3)=',ICNTRL(3) 
+       CALL ros_ErrorMsg(-2,Tstart,ZERO,IERR)
+       RETURN
+   END SELECT
+
+!~~~>   The maximum number of steps admitted
+   IF (ICNTRL(4) == 0) THEN
+      Max_no_steps = 200000
+   ELSEIF (ICNTRL(4) > 0) THEN
+      Max_no_steps=ICNTRL(4)
+   ELSE
+      PRINT * ,'User-selected max no. of steps: ICNTRL(4)=',ICNTRL(4)
+      CALL ros_ErrorMsg(-1,Tstart,ZERO,IERR)
+      RETURN
+   END IF
+
+!~~~>  Unit roundoff (1+Roundoff>1)
+   Roundoff = WLAMCH('E')
+
+!~~~>  Lower bound on the step size: (positive value)
+   IF (RCNTRL(1) == ZERO) THEN
+      Hmin = ZERO
+   ELSEIF (RCNTRL(1) > ZERO) THEN
+      Hmin = RCNTRL(1)
+   ELSE
+      PRINT * , 'User-selected Hmin: RCNTRL(1)=', RCNTRL(1)
+      CALL ros_ErrorMsg(-3,Tstart,ZERO,IERR)
+      RETURN
+   END IF
+!~~~>  Upper bound on the step size: (positive value)
+   IF (RCNTRL(2) == ZERO) THEN
+      Hmax = ABS(Tend-Tstart)
+   ELSEIF (RCNTRL(2) > ZERO) THEN
+      Hmax = MIN(ABS(RCNTRL(2)),ABS(Tend-Tstart))
+   ELSE
+      PRINT * , 'User-selected Hmax: RCNTRL(2)=', RCNTRL(2)
+      CALL ros_ErrorMsg(-3,Tstart,ZERO,IERR)
+      RETURN
+   END IF
+!~~~>  Starting step size: (positive value)
+   IF (RCNTRL(3) == ZERO) THEN
+      Hstart = MAX(Hmin,DeltaMin)
+   ELSEIF (RCNTRL(3) > ZERO) THEN
+      Hstart = MIN(ABS(RCNTRL(3)),ABS(Tend-Tstart))
+   ELSE
+      PRINT * , 'User-selected Hstart: RCNTRL(3)=', RCNTRL(3)
+      CALL ros_ErrorMsg(-3,Tstart,ZERO,IERR)
+      RETURN
+   END IF
+!~~~>  Step size can be changed s.t.  FacMin < Hnew/Hold < FacMax
+   IF (RCNTRL(4) == ZERO) THEN
+      FacMin = 0.2_dp
+   ELSEIF (RCNTRL(4) > ZERO) THEN
+      FacMin = RCNTRL(4)
+   ELSE
+      PRINT * , 'User-selected FacMin: RCNTRL(4)=', RCNTRL(4)
+      CALL ros_ErrorMsg(-4,Tstart,ZERO,IERR)
+      RETURN
+   END IF
+   IF (RCNTRL(5) == ZERO) THEN
+      FacMax = 6.0_dp
+   ELSEIF (RCNTRL(5) > ZERO) THEN
+      FacMax = RCNTRL(5)
+   ELSE
+      PRINT * , 'User-selected FacMax: RCNTRL(5)=', RCNTRL(5)
+      CALL ros_ErrorMsg(-4,Tstart,ZERO,IERR)
+      RETURN
+   END IF
+!~~~>   FacRej: Factor to decrease step after 2 succesive rejections
+   IF (RCNTRL(6) == ZERO) THEN
+      FacRej = 0.1_dp
+   ELSEIF (RCNTRL(6) > ZERO) THEN
+      FacRej = RCNTRL(6)
+   ELSE
+      PRINT * , 'User-selected FacRej: RCNTRL(6)=', RCNTRL(6)
+      CALL ros_ErrorMsg(-4,Tstart,ZERO,IERR)
+      RETURN
+   END IF
+!~~~>   FacSafe: Safety Factor in the computation of new step size
+   IF (RCNTRL(7) == ZERO) THEN
+      FacSafe = 0.9_dp
+   ELSEIF (RCNTRL(7) > ZERO) THEN
+      FacSafe = RCNTRL(7)
+   ELSE
+      PRINT * , 'User-selected FacSafe: RCNTRL(7)=', RCNTRL(7)
+      CALL ros_ErrorMsg(-4,Tstart,ZERO,IERR)
+      RETURN
+   END IF
+!~~~>  Check if tolerances are reasonable
+    DO i=1,UplimTol
+      IF ( (AbsTol(i) <= ZERO) .OR. (RelTol(i) <= 10.0_dp*Roundoff) &
+         .OR. (RelTol(i) >= 1.0_dp) ) THEN
+        PRINT * , ' AbsTol(',i,') = ',AbsTol(i)
+        PRINT * , ' RelTol(',i,') = ',RelTol(i)
+        CALL ros_ErrorMsg(-5,Tstart,ZERO,IERR)
+        RETURN
+      END IF
+    END DO
+
+
+!~~~>  CALL Rosenbrock method
+   CALL ros_Integrator(Y, Tstart, Tend, Texit,   &
+        AbsTol, RelTol,                          &
+!  Integration parameters
+        Autonomous, VectorTol, Max_no_steps,     &
+        Roundoff, Hmin, Hmax, Hstart,            &
+        FacMin, FacMax, FacRej, FacSafe,         &
+!  Error indicator
+        IERR)
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+CONTAINS !  SUBROUTINES internal to Rosenbrock
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+ SUBROUTINE ros_ErrorMsg(Code,T,H,IERR)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+!    Handles all error messages
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+  
+   REAL(kind=dp), INTENT(IN) :: T, H
+   INTEGER, INTENT(IN)  :: Code
+   INTEGER, INTENT(OUT) :: IERR
+   
+   IERR = Code
+   PRINT * , &
+     'Forced exit from Rosenbrock due to the following error:' 
+     
+   SELECT CASE (Code)
+    CASE (-1)    
+      PRINT * , '--> Improper value for maximal no of steps'
+    CASE (-2)    
+      PRINT * , '--> Selected Rosenbrock method not implemented'
+    CASE (-3)    
+      PRINT * , '--> Hmin/Hmax/Hstart must be positive'
+    CASE (-4)    
+      PRINT * , '--> FacMin/FacMax/FacRej must be positive'
+    CASE (-5) 
+      PRINT * , '--> Improper tolerance values'
+    CASE (-6) 
+      PRINT * , '--> No of steps exceeds maximum bound'
+    CASE (-7) 
+      PRINT * , '--> Step size too small: T + 10*H = T', &
+            ' or H < Roundoff'
+    CASE (-8)    
+      PRINT * , '--> Matrix is repeatedly singular'
+    CASE DEFAULT
+      PRINT *, 'Unknown Error code: ', Code
+   END SELECT
+   
+   PRINT *, "T=", T, "and H=", H
+     
+ END SUBROUTINE ros_ErrorMsg
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE ros_Integrator (Y, Tstart, Tend, T,  &
+        AbsTol, RelTol,                          &
+!~~~> Integration parameters
+        Autonomous, VectorTol, Max_no_steps,     &
+        Roundoff, Hmin, Hmax, Hstart,            &
+        FacMin, FacMax, FacRej, FacSafe,         &
+!~~~> Error indicator
+        IERR )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!   Template for the implementation of a generic Rosenbrock method
+!      defined by ros_S (no of stages)
+!      and its coefficients ros_{A,C,M,E,Alpha,Gamma}
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  IMPLICIT NONE
+
+!~~~> Input: the initial condition at Tstart; Output: the solution at T
+   REAL(kind=dp), INTENT(INOUT) :: Y(N)
+!~~~> Input: integration interval
+   REAL(kind=dp), INTENT(IN) :: Tstart,Tend
+!~~~> Output: time at which the solution is returned (T=Tend if success)
+   REAL(kind=dp), INTENT(OUT) ::  T
+!~~~> Input: tolerances
+   REAL(kind=dp), INTENT(IN) ::  AbsTol(N), RelTol(N)
+!~~~> Input: integration parameters
+   LOGICAL, INTENT(IN) :: Autonomous, VectorTol
+   REAL(kind=dp), INTENT(IN) :: Hstart, Hmin, Hmax
+   INTEGER, INTENT(IN) :: Max_no_steps
+   REAL(kind=dp), INTENT(IN) :: Roundoff, FacMin, FacMax, FacRej, FacSafe
+!~~~> Output: Error indicator
+   INTEGER, INTENT(OUT) :: IERR
+! ~~~~ Local variables
+   REAL(kind=dp) :: Ynew(N), Fcn0(N), Fcn(N)
+   REAL(kind=dp) :: K(N*ros_S), dFdT(N)
+#ifdef FULL_ALGEBRA    
+   REAL(kind=dp) :: Jac0(N,N), Ghimj(N,N)
+#else
+   REAL(kind=dp) :: Jac0(LU_NONZERO), Ghimj(LU_NONZERO)
+#endif
+   REAL(kind=dp) :: H, Hnew, HC, HG, Fac, Tau
+   REAL(kind=dp) :: Err, Yerr(N)
+   INTEGER :: Pivot(N), Direction, ioffset, j, istage
+   LOGICAL :: RejectLastH, RejectMoreH, Singular
+!~~~>  Local parameters
+   REAL(kind=dp), PARAMETER :: ZERO = 0.0_dp, ONE  = 1.0_dp
+   REAL(kind=dp), PARAMETER :: DeltaMin = 1.0E-5_dp
+!~~~>  Locally called functions
+!    REAL(kind=dp) WLAMCH
+!    EXTERNAL WLAMCH
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+!~~~>  Initial preparations
+   T = Tstart
+   RSTATUS(Nhexit) = ZERO
+   H = MIN( MAX(ABS(Hmin),ABS(Hstart)) , ABS(Hmax) )
+   IF (ABS(H) <= 10.0_dp*Roundoff) H = DeltaMin
+
+   IF (Tend  >=  Tstart) THEN
+     Direction = +1
+   ELSE
+     Direction = -1
+   END IF
+   H = Direction*H
+
+   RejectLastH=.FALSE.
+   RejectMoreH=.FALSE.
+
+!~~~> Time loop begins below
+
+TimeLoop: DO WHILE ( (Direction > 0).AND.((T-Tend)+Roundoff <= ZERO) &
+       .OR. (Direction < 0).AND.((Tend-T)+Roundoff <= ZERO) )
+
+   IF ( ISTATUS(Nstp) > Max_no_steps ) THEN  ! Too many steps
+      CALL ros_ErrorMsg(-6,T,H,IERR)
+      RETURN
+   END IF
+   IF ( ((T+0.1_dp*H) == T).OR.(H <= Roundoff) ) THEN  ! Step size too small
+      CALL ros_ErrorMsg(-7,T,H,IERR)
+      RETURN
+   END IF
+
+!~~~>  Limit H if necessary to avoid going beyond Tend
+   H = MIN(H,ABS(Tend-T))
+
+!~~~>   Compute the function at current time
+   CALL FunTemplate(T,Y,Fcn0)
+   ISTATUS(Nfun) = ISTATUS(Nfun) + 1
+
+!~~~>  Compute the function derivative with respect to T
+   IF (.NOT.Autonomous) THEN
+      CALL ros_FunTimeDerivative ( T, Roundoff, Y, &
+                Fcn0, dFdT )
+   END IF
+
+!~~~>   Compute the Jacobian at current time
+   CALL JacTemplate(T,Y,Jac0)
+   ISTATUS(Njac) = ISTATUS(Njac) + 1
+
+!~~~>  Repeat step calculation until current step accepted
+UntilAccepted: DO
+
+   CALL ros_PrepareMatrix(H,Direction,ros_Gamma(1), &
+          Jac0,Ghimj,Pivot,Singular)
+   IF (Singular) THEN ! More than 5 consecutive failed decompositions
+       CALL ros_ErrorMsg(-8,T,H,IERR)
+       RETURN
+   END IF
+
+!~~~>   Compute the stages
+Stage: DO istage = 1, ros_S
+
+      ! Current istage offset. Current istage vector is K(ioffset+1:ioffset+N)
+       ioffset = N*(istage-1)
+
+      ! For the 1st istage the function has been computed previously
+       IF ( istage == 1 ) THEN
+         !slim: CALL WCOPY(N,Fcn0,1,Fcn,1)
+	 Fcn(1:N) = Fcn0(1:N)
+      ! istage>1 and a new function evaluation is needed at the current istage
+       ELSEIF ( ros_NewF(istage) ) THEN
+         !slim: CALL WCOPY(N,Y,1,Ynew,1)
+	 Ynew(1:N) = Y(1:N)
+         DO j = 1, istage-1
+           CALL WAXPY(N,ros_A((istage-1)*(istage-2)/2+j), &
+            K(N*(j-1)+1),1,Ynew,1)
+         END DO
+         Tau = T + ros_Alpha(istage)*Direction*H
+         CALL FunTemplate(Tau,Ynew,Fcn)
+         ISTATUS(Nfun) = ISTATUS(Nfun) + 1
+       END IF ! if istage == 1 elseif ros_NewF(istage)
+       !slim: CALL WCOPY(N,Fcn,1,K(ioffset+1),1)
+       K(ioffset+1:ioffset+N) = Fcn(1:N)
+       DO j = 1, istage-1
+         HC = ros_C((istage-1)*(istage-2)/2+j)/(Direction*H)
+         CALL WAXPY(N,HC,K(N*(j-1)+1),1,K(ioffset+1),1)
+       END DO
+       IF ((.NOT. Autonomous).AND.(ros_Gamma(istage).NE.ZERO)) THEN
+         HG = Direction*H*ros_Gamma(istage)
+         CALL WAXPY(N,HG,dFdT,1,K(ioffset+1),1)
+       END IF
+       CALL ros_Solve(Ghimj, Pivot, K(ioffset+1))
+
+   END DO Stage
+
+
+!~~~>  Compute the new solution
+   !slim: CALL WCOPY(N,Y,1,Ynew,1)
+   Ynew(1:N) = Y(1:N)
+   DO j=1,ros_S
+         CALL WAXPY(N,ros_M(j),K(N*(j-1)+1),1,Ynew,1)
+   END DO
+
+!~~~>  Compute the error estimation
+   !slim: CALL WSCAL(N,ZERO,Yerr,1)
+   Yerr(1:N) = ZERO
+   DO j=1,ros_S
+        CALL WAXPY(N,ros_E(j),K(N*(j-1)+1),1,Yerr,1)
+   END DO
+   Err = ros_ErrorNorm ( Y, Ynew, Yerr, AbsTol, RelTol, VectorTol )
+
+!~~~> New step size is bounded by FacMin <= Hnew/H <= FacMax
+   Fac  = MIN(FacMax,MAX(FacMin,FacSafe/Err**(ONE/ros_ELO)))
+   Hnew = H*Fac
+
+!~~~>  Check the error magnitude and adjust step size
+   ISTATUS(Nstp) = ISTATUS(Nstp) + 1
+   IF ( (Err <= ONE).OR.(H <= Hmin) ) THEN  !~~~> Accept step
+      ISTATUS(Nacc) = ISTATUS(Nacc) + 1
+      !slim: CALL WCOPY(N,Ynew,1,Y,1)
+      Y(1:N) = Ynew(1:N)
+      T = T + Direction*H
+      Hnew = MAX(Hmin,MIN(Hnew,Hmax))
+      IF (RejectLastH) THEN  ! No step size increase after a rejected step
+         Hnew = MIN(Hnew,H)
+      END IF
+      RSTATUS(Nhexit) = H
+      RSTATUS(Nhnew)  = Hnew
+      RSTATUS(Ntexit) = T
+      RejectLastH = .FALSE.
+      RejectMoreH = .FALSE.
+      H = Hnew
+      EXIT UntilAccepted ! EXIT THE LOOP: WHILE STEP NOT ACCEPTED
+   ELSE           !~~~> Reject step
+      IF (RejectMoreH) THEN
+         Hnew = H*FacRej
+      END IF
+      RejectMoreH = RejectLastH
+      RejectLastH = .TRUE.
+      H = Hnew
+      IF (ISTATUS(Nacc) >= 1)  ISTATUS(Nrej) = ISTATUS(Nrej) + 1
+   END IF ! Err <= 1
+
+   END DO UntilAccepted
+
+   END DO TimeLoop
+
+!~~~> Succesful exit
+   IERR = 1  !~~~> The integration was successful
+
+  END SUBROUTINE ros_Integrator
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  REAL(kind=dp) FUNCTION ros_ErrorNorm ( Y, Ynew, Yerr, &
+                               AbsTol, RelTol, VectorTol )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> Computes the "scaled norm" of the error vector Yerr
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   IMPLICIT NONE
+
+! Input arguments
+   REAL(kind=dp), INTENT(IN) :: Y(N), Ynew(N), &
+          Yerr(N), AbsTol(N), RelTol(N)
+   LOGICAL, INTENT(IN) ::  VectorTol
+! Local variables
+   REAL(kind=dp) :: Err, Scale, Ymax
+   INTEGER  :: i
+   REAL(kind=dp), PARAMETER :: ZERO = 0.0_dp
+
+   Err = ZERO
+   DO i=1,N
+     Ymax = MAX(ABS(Y(i)),ABS(Ynew(i)))
+     IF (VectorTol) THEN
+       Scale = AbsTol(i)+RelTol(i)*Ymax
+     ELSE
+       Scale = AbsTol(1)+RelTol(1)*Ymax
+     END IF
+     Err = Err+(Yerr(i)/Scale)**2
+   END DO
+   Err  = SQRT(Err/N)
+
+   ros_ErrorNorm = MAX(Err,1.0d-10)
+
+  END FUNCTION ros_ErrorNorm
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE ros_FunTimeDerivative ( T, Roundoff, Y, &
+                Fcn0, dFdT )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> The time partial derivative of the function by finite differences
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   IMPLICIT NONE
+
+!~~~> Input arguments
+   REAL(kind=dp), INTENT(IN) :: T, Roundoff, Y(N), Fcn0(N)
+!~~~> Output arguments
+   REAL(kind=dp), INTENT(OUT) :: dFdT(N)
+!~~~> Local variables
+   REAL(kind=dp) :: Delta
+   REAL(kind=dp), PARAMETER :: ONE = 1.0_dp, DeltaMin = 1.0E-6_dp
+
+   Delta = SQRT(Roundoff)*MAX(DeltaMin,ABS(T))
+   CALL FunTemplate(T+Delta,Y,dFdT)
+   ISTATUS(Nfun) = ISTATUS(Nfun) + 1
+   CALL WAXPY(N,(-ONE),Fcn0,1,dFdT,1)
+   CALL WSCAL(N,(ONE/Delta),dFdT,1)
+
+  END SUBROUTINE ros_FunTimeDerivative
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE ros_PrepareMatrix ( H, Direction, gam, &
+             Jac0, Ghimj, Pivot, Singular )
+! --- --- --- --- --- --- --- --- --- --- --- --- ---
+!  Prepares the LHS matrix for stage calculations
+!  1.  Construct Ghimj = 1/(H*ham) - Jac0
+!      "(Gamma H) Inverse Minus Jacobian"
+!  2.  Repeat LU decomposition of Ghimj until successful.
+!       -half the step size if LU decomposition fails and retry
+!       -exit after 5 consecutive fails
+! --- --- --- --- --- --- --- --- --- --- --- --- ---
+   IMPLICIT NONE
+
+!~~~> Input arguments
+#ifdef FULL_ALGEBRA    
+   REAL(kind=dp), INTENT(IN) ::  Jac0(N,N)
+#else
+   REAL(kind=dp), INTENT(IN) ::  Jac0(LU_NONZERO)
+#endif   
+   REAL(kind=dp), INTENT(IN) ::  gam
+   INTEGER, INTENT(IN) ::  Direction
+!~~~> Output arguments
+#ifdef FULL_ALGEBRA    
+   REAL(kind=dp), INTENT(OUT) :: Ghimj(N,N)
+#else
+   REAL(kind=dp), INTENT(OUT) :: Ghimj(LU_NONZERO)
+#endif   
+   LOGICAL, INTENT(OUT) ::  Singular
+   INTEGER, INTENT(OUT) ::  Pivot(N)
+!~~~> Inout arguments
+   REAL(kind=dp), INTENT(INOUT) :: H   ! step size is decreased when LU fails
+!~~~> Local variables
+   INTEGER  :: i, ISING, Nconsecutive
+   REAL(kind=dp) :: ghinv
+   REAL(kind=dp), PARAMETER :: ONE  = 1.0_dp, HALF = 0.5_dp
+
+   Nconsecutive = 0
+   Singular = .TRUE.
+
+   DO WHILE (Singular)
+
+!~~~>    Construct Ghimj = 1/(H*gam) - Jac0
+#ifdef FULL_ALGEBRA    
+     !slim: CALL WCOPY(N*N,Jac0,1,Ghimj,1)
+     !slim: CALL WSCAL(N*N,(-ONE),Ghimj,1)
+     Ghimj = -Jac0
+     ghinv = ONE/(Direction*H*gam)
+     DO i=1,N
+       Ghimj(i,i) = Ghimj(i,i)+ghinv
+     END DO
+#else
+     !slim: CALL WCOPY(LU_NONZERO,Jac0,1,Ghimj,1)
+     !slim: CALL WSCAL(LU_NONZERO,(-ONE),Ghimj,1)
+     Ghimj(1:LU_NONZERO) = -Jac0(1:LU_NONZERO)
+     ghinv = ONE/(Direction*H*gam)
+     DO i=1,N
+       Ghimj(LU_DIAG(i)) = Ghimj(LU_DIAG(i))+ghinv
+     END DO
+#endif   
+!~~~>    Compute LU decomposition
+     CALL ros_Decomp( Ghimj, Pivot, ISING )
+     IF (ISING == 0) THEN
+!~~~>    If successful done
+        Singular = .FALSE.
+     ELSE ! ISING .ne. 0
+!~~~>    If unsuccessful half the step size; if 5 consecutive fails then return
+        ISTATUS(Nsng) = ISTATUS(Nsng) + 1
+        Nconsecutive = Nconsecutive+1
+        Singular = .TRUE.
+        PRINT*,'Warning: LU Decomposition returned ISING = ',ISING
+        IF (Nconsecutive <= 5) THEN ! Less than 5 consecutive failed decompositions
+           H = H*HALF
+        ELSE  ! More than 5 consecutive failed decompositions
+           RETURN
+        END IF  ! Nconsecutive
+      END IF    ! ISING
+
+   END DO ! WHILE Singular
+
+  END SUBROUTINE ros_PrepareMatrix
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE ros_Decomp( A, Pivot, ISING )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!  Template for the LU decomposition
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   IMPLICIT NONE
+!~~~> Inout variables
+#ifdef FULL_ALGEBRA    
+   REAL(kind=dp), INTENT(INOUT) :: A(N,N)
+#else   
+   REAL(kind=dp), INTENT(INOUT) :: A(LU_NONZERO)
+#endif
+!~~~> Output variables
+   INTEGER, INTENT(OUT) :: Pivot(N), ISING
+
+#ifdef FULL_ALGEBRA    
+   CALL  DGETRF( N, N, A, N, Pivot, ISING )
+#else   
+   CALL KppDecomp ( A, ISING )
+   Pivot(1) = 1
+#endif
+   ISTATUS(Ndec) = ISTATUS(Ndec) + 1
+
+  END SUBROUTINE ros_Decomp
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE ros_Solve( A, Pivot, b )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!  Template for the forward/backward substitution (using pre-computed LU decomposition)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   IMPLICIT NONE
+!~~~> Input variables
+#ifdef FULL_ALGEBRA    
+   REAL(kind=dp), INTENT(IN) :: A(N,N)
+   INTEGER :: ISING
+#else   
+   REAL(kind=dp), INTENT(IN) :: A(LU_NONZERO)
+#endif
+   INTEGER, INTENT(IN) :: Pivot(N)
+!~~~> InOut variables
+   REAL(kind=dp), INTENT(INOUT) :: b(N)
+
+#ifdef FULL_ALGEBRA    
+   CALL  DGETRS( 'N', N , 1, A, N, Pivot, b, N, ISING )
+   IF ( Info < 0 ) THEN
+      PRINT*,"Error in DGETRS. ISING=",ISING
+   END IF  
+#else   
+   CALL KppSolve( A, b )
+#endif
+
+   ISTATUS(Nsol) = ISTATUS(Nsol) + 1
+
+  END SUBROUTINE ros_Solve
+
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE Ros2
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! --- AN L-STABLE METHOD, 2 stages, order 2
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+   IMPLICIT NONE
+   DOUBLE PRECISION g
+
+    g = 1.0_dp + 1.0_dp/SQRT(2.0_dp)
+    rosMethod = RS2
+!~~~> Name of the method
+    ros_Name = 'ROS-2'
+!~~~> Number of stages
+    ros_S = 2
+
+!~~~> The coefficient matrices A and C are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+!   The general mapping formula is:
+!       A(i,j) = ros_A( (i-1)*(i-2)/2 + j )
+!       C(i,j) = ros_C( (i-1)*(i-2)/2 + j )
+
+    ros_A(1) = (1.0_dp)/g
+    ros_C(1) = (-2.0_dp)/g
+!~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+    ros_NewF(1) = .TRUE.
+    ros_NewF(2) = .TRUE.
+!~~~> M_i = Coefficients for new step solution
+    ros_M(1)= (3.0_dp)/(2.0_dp*g)
+    ros_M(2)= (1.0_dp)/(2.0_dp*g)
+! E_i = Coefficients for error estimator
+    ros_E(1) = 1.0_dp/(2.0_dp*g)
+    ros_E(2) = 1.0_dp/(2.0_dp*g)
+!~~~> ros_ELO = estimator of local order - the minimum between the
+!    main and the embedded scheme orders plus one
+    ros_ELO = 2.0_dp
+!~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+    ros_Alpha(1) = 0.0_dp
+    ros_Alpha(2) = 1.0_dp
+!~~~> Gamma_i = \sum_j  gamma_{i,j}
+    ros_Gamma(1) = g
+    ros_Gamma(2) =-g
+
+ END SUBROUTINE Ros2
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE Ros3
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! --- AN L-STABLE METHOD, 3 stages, order 3, 2 function evaluations
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+   IMPLICIT NONE
+   rosMethod = RS3
+!~~~> Name of the method
+   ros_Name = 'ROS-3'
+!~~~> Number of stages
+   ros_S = 3
+
+!~~~> The coefficient matrices A and C are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+!   The general mapping formula is:
+!       A(i,j) = ros_A( (i-1)*(i-2)/2 + j )
+!       C(i,j) = ros_C( (i-1)*(i-2)/2 + j )
+
+   ros_A(1)= 1.0_dp
+   ros_A(2)= 1.0_dp
+   ros_A(3)= 0.0_dp
+
+   ros_C(1) = -0.10156171083877702091975600115545E+01_dp
+   ros_C(2) =  0.40759956452537699824805835358067E+01_dp
+   ros_C(3) =  0.92076794298330791242156818474003E+01_dp
+!~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+   ros_NewF(1) = .TRUE.
+   ros_NewF(2) = .TRUE.
+   ros_NewF(3) = .FALSE.
+!~~~> M_i = Coefficients for new step solution
+   ros_M(1) =  0.1E+01_dp
+   ros_M(2) =  0.61697947043828245592553615689730E+01_dp
+   ros_M(3) = -0.42772256543218573326238373806514_dp
+! E_i = Coefficients for error estimator
+   ros_E(1) =  0.5_dp
+   ros_E(2) = -0.29079558716805469821718236208017E+01_dp
+   ros_E(3) =  0.22354069897811569627360909276199_dp
+!~~~> ros_ELO = estimator of local order - the minimum between the
+!    main and the embedded scheme orders plus 1
+   ros_ELO = 3.0_dp
+!~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+   ros_Alpha(1)= 0.0_dp
+   ros_Alpha(2)= 0.43586652150845899941601945119356_dp
+   ros_Alpha(3)= 0.43586652150845899941601945119356_dp
+!~~~> Gamma_i = \sum_j  gamma_{i,j}
+   ros_Gamma(1)= 0.43586652150845899941601945119356_dp
+   ros_Gamma(2)= 0.24291996454816804366592249683314_dp
+   ros_Gamma(3)= 0.21851380027664058511513169485832E+01_dp
+
+  END SUBROUTINE Ros3
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE Ros4
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!     L-STABLE ROSENBROCK METHOD OF ORDER 4, WITH 4 STAGES
+!     L-STABLE EMBEDDED ROSENBROCK METHOD OF ORDER 3
+!
+!      E. HAIRER AND G. WANNER, SOLVING ORDINARY DIFFERENTIAL
+!      EQUATIONS II. STIFF AND DIFFERENTIAL-ALGEBRAIC PROBLEMS.
+!      SPRINGER SERIES IN COMPUTATIONAL MATHEMATICS,
+!      SPRINGER-VERLAG (1990)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+   IMPLICIT NONE
+
+   rosMethod = RS4
+!~~~> Name of the method
+   ros_Name = 'ROS-4'
+!~~~> Number of stages
+   ros_S = 4
+
+!~~~> The coefficient matrices A and C are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+!   The general mapping formula is:
+!       A(i,j) = ros_A( (i-1)*(i-2)/2 + j )
+!       C(i,j) = ros_C( (i-1)*(i-2)/2 + j )
+
+   ros_A(1) = 0.2000000000000000E+01_dp
+   ros_A(2) = 0.1867943637803922E+01_dp
+   ros_A(3) = 0.2344449711399156_dp
+   ros_A(4) = ros_A(2)
+   ros_A(5) = ros_A(3)
+   ros_A(6) = 0.0_dp
+
+   ros_C(1) =-0.7137615036412310E+01_dp
+   ros_C(2) = 0.2580708087951457E+01_dp
+   ros_C(3) = 0.6515950076447975_dp
+   ros_C(4) =-0.2137148994382534E+01_dp
+   ros_C(5) =-0.3214669691237626_dp
+   ros_C(6) =-0.6949742501781779_dp
+!~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+   ros_NewF(1)  = .TRUE.
+   ros_NewF(2)  = .TRUE.
+   ros_NewF(3)  = .TRUE.
+   ros_NewF(4)  = .FALSE.
+!~~~> M_i = Coefficients for new step solution
+   ros_M(1) = 0.2255570073418735E+01_dp
+   ros_M(2) = 0.2870493262186792_dp
+   ros_M(3) = 0.4353179431840180_dp
+   ros_M(4) = 0.1093502252409163E+01_dp
+!~~~> E_i  = Coefficients for error estimator
+   ros_E(1) =-0.2815431932141155_dp
+   ros_E(2) =-0.7276199124938920E-01_dp
+   ros_E(3) =-0.1082196201495311_dp
+   ros_E(4) =-0.1093502252409163E+01_dp
+!~~~> ros_ELO  = estimator of local order - the minimum between the
+!    main and the embedded scheme orders plus 1
+   ros_ELO  = 4.0_dp
+!~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+   ros_Alpha(1) = 0.0_dp
+   ros_Alpha(2) = 0.1145640000000000E+01_dp
+   ros_Alpha(3) = 0.6552168638155900_dp
+   ros_Alpha(4) = ros_Alpha(3)
+!~~~> Gamma_i = \sum_j  gamma_{i,j}
+   ros_Gamma(1) = 0.5728200000000000_dp
+   ros_Gamma(2) =-0.1769193891319233E+01_dp
+   ros_Gamma(3) = 0.7592633437920482_dp
+   ros_Gamma(4) =-0.1049021087100450_dp
+
+  END SUBROUTINE Ros4
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE Rodas3
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! --- A STIFFLY-STABLE METHOD, 4 stages, order 3
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+   IMPLICIT NONE
+
+   rosMethod = RD3
+!~~~> Name of the method
+   ros_Name = 'RODAS-3'
+!~~~> Number of stages
+   ros_S = 4
+
+!~~~> The coefficient matrices A and C are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+!   The general mapping formula is:
+!       A(i,j) = ros_A( (i-1)*(i-2)/2 + j )
+!       C(i,j) = ros_C( (i-1)*(i-2)/2 + j )
+
+   ros_A(1) = 0.0_dp
+   ros_A(2) = 2.0_dp
+   ros_A(3) = 0.0_dp
+   ros_A(4) = 2.0_dp
+   ros_A(5) = 0.0_dp
+   ros_A(6) = 1.0_dp
+
+   ros_C(1) = 4.0_dp
+   ros_C(2) = 1.0_dp
+   ros_C(3) =-1.0_dp
+   ros_C(4) = 1.0_dp
+   ros_C(5) =-1.0_dp
+   ros_C(6) =-(8.0_dp/3.0_dp)
+
+!~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+   ros_NewF(1)  = .TRUE.
+   ros_NewF(2)  = .FALSE.
+   ros_NewF(3)  = .TRUE.
+   ros_NewF(4)  = .TRUE.
+!~~~> M_i = Coefficients for new step solution
+   ros_M(1) = 2.0_dp
+   ros_M(2) = 0.0_dp
+   ros_M(3) = 1.0_dp
+   ros_M(4) = 1.0_dp
+!~~~> E_i  = Coefficients for error estimator
+   ros_E(1) = 0.0_dp
+   ros_E(2) = 0.0_dp
+   ros_E(3) = 0.0_dp
+   ros_E(4) = 1.0_dp
+!~~~> ros_ELO  = estimator of local order - the minimum between the
+!    main and the embedded scheme orders plus 1
+   ros_ELO  = 3.0_dp
+!~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+   ros_Alpha(1) = 0.0_dp
+   ros_Alpha(2) = 0.0_dp
+   ros_Alpha(3) = 1.0_dp
+   ros_Alpha(4) = 1.0_dp
+!~~~> Gamma_i = \sum_j  gamma_{i,j}
+   ros_Gamma(1) = 0.5_dp
+   ros_Gamma(2) = 1.5_dp
+   ros_Gamma(3) = 0.0_dp
+   ros_Gamma(4) = 0.0_dp
+
+  END SUBROUTINE Rodas3
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE Rodas4
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!     STIFFLY-STABLE ROSENBROCK METHOD OF ORDER 4, WITH 6 STAGES
+!
+!      E. HAIRER AND G. WANNER, SOLVING ORDINARY DIFFERENTIAL
+!      EQUATIONS II. STIFF AND DIFFERENTIAL-ALGEBRAIC PROBLEMS.
+!      SPRINGER SERIES IN COMPUTATIONAL MATHEMATICS,
+!      SPRINGER-VERLAG (1996)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+   IMPLICIT NONE
+
+    rosMethod = RD4
+!~~~> Name of the method
+    ros_Name = 'RODAS-4'
+!~~~> Number of stages
+    ros_S = 6
+
+!~~~> Y_stage_i ~ Y( T + H*Alpha_i )
+    ros_Alpha(1) = 0.000_dp
+    ros_Alpha(2) = 0.386_dp
+    ros_Alpha(3) = 0.210_dp
+    ros_Alpha(4) = 0.630_dp
+    ros_Alpha(5) = 1.000_dp
+    ros_Alpha(6) = 1.000_dp
+
+!~~~> Gamma_i = \sum_j  gamma_{i,j}
+    ros_Gamma(1) = 0.2500000000000000_dp
+    ros_Gamma(2) =-0.1043000000000000_dp
+    ros_Gamma(3) = 0.1035000000000000_dp
+    ros_Gamma(4) =-0.3620000000000023E-01_dp
+    ros_Gamma(5) = 0.0_dp
+    ros_Gamma(6) = 0.0_dp
+
+!~~~> The coefficient matrices A and C are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1), A(3,1)=ros_A(2), A(3,2)=ros_A(3), etc.
+!   The general mapping formula is:  A(i,j) = ros_A( (i-1)*(i-2)/2 + j )
+!                  C(i,j) = ros_C( (i-1)*(i-2)/2 + j )
+
+    ros_A(1) = 0.1544000000000000E+01_dp
+    ros_A(2) = 0.9466785280815826_dp
+    ros_A(3) = 0.2557011698983284_dp
+    ros_A(4) = 0.3314825187068521E+01_dp
+    ros_A(5) = 0.2896124015972201E+01_dp
+    ros_A(6) = 0.9986419139977817_dp
+    ros_A(7) = 0.1221224509226641E+01_dp
+    ros_A(8) = 0.6019134481288629E+01_dp
+    ros_A(9) = 0.1253708332932087E+02_dp
+    ros_A(10) =-0.6878860361058950_dp
+    ros_A(11) = ros_A(7)
+    ros_A(12) = ros_A(8)
+    ros_A(13) = ros_A(9)
+    ros_A(14) = ros_A(10)
+    ros_A(15) = 1.0_dp
+
+    ros_C(1) =-0.5668800000000000E+01_dp
+    ros_C(2) =-0.2430093356833875E+01_dp
+    ros_C(3) =-0.2063599157091915_dp
+    ros_C(4) =-0.1073529058151375_dp
+    ros_C(5) =-0.9594562251023355E+01_dp
+    ros_C(6) =-0.2047028614809616E+02_dp
+    ros_C(7) = 0.7496443313967647E+01_dp
+    ros_C(8) =-0.1024680431464352E+02_dp
+    ros_C(9) =-0.3399990352819905E+02_dp
+    ros_C(10) = 0.1170890893206160E+02_dp
+    ros_C(11) = 0.8083246795921522E+01_dp
+    ros_C(12) =-0.7981132988064893E+01_dp
+    ros_C(13) =-0.3152159432874371E+02_dp
+    ros_C(14) = 0.1631930543123136E+02_dp
+    ros_C(15) =-0.6058818238834054E+01_dp
+
+!~~~> M_i = Coefficients for new step solution
+    ros_M(1) = ros_A(7)
+    ros_M(2) = ros_A(8)
+    ros_M(3) = ros_A(9)
+    ros_M(4) = ros_A(10)
+    ros_M(5) = 1.0_dp
+    ros_M(6) = 1.0_dp
+
+!~~~> E_i  = Coefficients for error estimator
+    ros_E(1) = 0.0_dp
+    ros_E(2) = 0.0_dp
+    ros_E(3) = 0.0_dp
+    ros_E(4) = 0.0_dp
+    ros_E(5) = 0.0_dp
+    ros_E(6) = 1.0_dp
+
+!~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+    ros_NewF(1) = .TRUE.
+    ros_NewF(2) = .TRUE.
+    ros_NewF(3) = .TRUE.
+    ros_NewF(4) = .TRUE.
+    ros_NewF(5) = .TRUE.
+    ros_NewF(6) = .TRUE.
+
+!~~~> ros_ELO  = estimator of local order - the minimum between the
+!        main and the embedded scheme orders plus 1
+    ros_ELO = 4.0_dp
+
+  END SUBROUTINE Rodas4
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE Rang3
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! STIFFLY-STABLE W METHOD OF ORDER 3, WITH 4 STAGES
+!
+! J. RANG and L. ANGERMANN
+! NEW ROSENBROCK W-METHODS OF ORDER 3
+! FOR PARTIAL DIFFERENTIAL ALGEBRAIC
+!        EQUATIONS OF INDEX 1                                             
+! BIT Numerical Mathematics (2005) 45: 761-787
+!  DOI: 10.1007/s10543-005-0035-y
+! Table 4.1-4.2
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+   IMPLICIT NONE
+
+    rosMethod = RG3
+!~~~> Name of the method
+    ros_Name = 'RANG-3'
+!~~~> Number of stages
+    ros_S = 4
+
+    ros_A(1) = 5.09052051067020d+00;
+    ros_A(2) = 5.09052051067020d+00;
+    ros_A(3) = 0.0d0;
+    ros_A(4) = 4.97628111010787d+00;
+    ros_A(5) = 2.77268164715849d-02;
+    ros_A(6) = 2.29428036027904d-01;
+
+    ros_C(1) = -1.16790812312283d+01;
+    ros_C(2) = -1.64057326467367d+01;
+    ros_C(3) = -2.77268164715850d-01;
+    ros_C(4) = -8.38103960500476d+00;
+    ros_C(5) = -8.48328409199343d-01;
+    ros_C(6) =  2.87009860433106d-01;
+
+    ros_M(1) =  5.22582761233094d+00;
+    ros_M(2) = -5.56971148154165d-01;
+    ros_M(3) =  3.57979469353645d-01;
+    ros_M(4) =  1.72337398521064d+00;
+
+    ros_E(1) = -5.16845212784040d+00;
+    ros_E(2) = -1.26351942603842d+00;
+    ros_E(3) = -1.11022302462516d-16;
+    ros_E(4) =  2.22044604925031d-16;
+
+    ros_Alpha(1) = 0.0d00;
+    ros_Alpha(2) = 2.21878746765329d+00;
+    ros_Alpha(3) = 2.21878746765329d+00;
+    ros_Alpha(4) = 1.55392337535788d+00;
+
+    ros_Gamma(1) =  4.35866521508459d-01;
+    ros_Gamma(2) = -1.78292094614483d+00;
+    ros_Gamma(3) = -2.46541900496934d+00;
+    ros_Gamma(4) = -8.05529997906370d-01;
+
+
+!~~~> Does the stage i require a new function evaluation (ros_NewF(i)=TRUE)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i)=FALSE)
+    ros_NewF(1) = .TRUE.
+    ros_NewF(2) = .TRUE.
+    ros_NewF(3) = .TRUE.
+    ros_NewF(4) = .TRUE.
+
+!~~~> ros_ELO  = estimator of local order - the minimum between the
+!        main and the embedded scheme orders plus 1
+    ros_ELO = 3.0_dp
+
+  END SUBROUTINE Rang3
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!   End of the set of internal Rosenbrock subroutines
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+END SUBROUTINE Rosenbrock
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+SUBROUTINE FunTemplate( T, Y, Ydot )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!  Template for the ODE function call.
+!  Updates the rate coefficients (and possibly the fixed species) at each call
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ USE chem_gasphase_mod_Parameters, ONLY: NVAR, LU_NONZERO
+ USE chem_gasphase_mod_Global, ONLY: FIX, RCONST, TIME
+ USE chem_gasphase_mod_Function, ONLY: Fun
+ USE chem_gasphase_mod_Rates, ONLY: Update_SUN, Update_RCONST
+!~~~> Input variables
+   REAL(kind=dp) :: T, Y(NVAR)
+!~~~> Output variables
+   REAL(kind=dp) :: Ydot(NVAR)
+!~~~> Local variables
+   REAL(kind=dp) :: Told
+
+   Told = TIME
+   TIME = T
+   CALL Update_SUN()
+   CALL Update_RCONST()
+   CALL Fun( Y, FIX, RCONST, Ydot )
+   TIME = Told
+
+END SUBROUTINE FunTemplate
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+SUBROUTINE JacTemplate( T, Y, Jcb )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!  Template for the ODE Jacobian call.
+!  Updates the rate coefficients (and possibly the fixed species) at each call
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ USE chem_gasphase_mod_Parameters, ONLY: NVAR, LU_NONZERO
+ USE chem_gasphase_mod_Global, ONLY: FIX, RCONST, TIME
+ USE chem_gasphase_mod_Jacobian, ONLY: Jac_SP, LU_IROW, LU_ICOL
+ USE chem_gasphase_mod_LinearAlgebra
+ USE chem_gasphase_mod_Rates, ONLY: Update_SUN, Update_RCONST
+!~~~> Input variables
+    REAL(kind=dp) :: T, Y(NVAR)
+!~~~> Output variables
+#ifdef FULL_ALGEBRA    
+    REAL(kind=dp) :: JV(LU_NONZERO), Jcb(NVAR,NVAR)
+#else
+    REAL(kind=dp) :: Jcb(LU_NONZERO)
+#endif   
+!~~~> Local variables
+    REAL(kind=dp) :: Told
+#ifdef FULL_ALGEBRA    
+    INTEGER :: i, j
+#endif   
+
+    Told = TIME
+    TIME = T
+    CALL Update_SUN()
+    CALL Update_RCONST()
+#ifdef FULL_ALGEBRA    
+    CALL Jac_SP(Y, FIX, RCONST, JV)
+    DO j=1,NVAR
+      DO i=1,NVAR
+         Jcb(i,j) = 0.0_dp
+      END DO
+    END DO
+    DO i=1,LU_NONZERO
+       Jcb(LU_IROW(i),LU_ICOL(i)) = JV(i)
+    END DO
+#else
+    CALL Jac_SP( Y, FIX, RCONST, Jcb )
+#endif   
+    TIME = Told
+
+END SUBROUTINE JacTemplate
+
+END MODULE chem_gasphase_mod_Integrator
+
+
+
+
+! End of INTEGRATE function
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/chem_gasphase_mod_Jacobian.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/chem_gasphase_mod_Jacobian.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/chem_gasphase_mod_Jacobian.f90	(revision 2696)
@@ -0,0 +1,143 @@
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+! The ODE Jacobian of Chemical Model File
+! 
+! Generated by KPP-2.2.3 symbolic chemistry Kinetics PreProcessor
+!       (http://www.cs.vt.edu/~asandu/Software/KPP)
+! KPP is distributed under GPL, the general public licence
+!       (http://www.gnu.org/copyleft/gpl.html)
+! (C) 1995-1997, V. Damian & A. Sandu, CGRER, Univ. Iowa
+! (C) 1997-2005, A. Sandu, Michigan Tech, Virginia Tech
+!     With important contributions from:
+!        M. Damian, Villanova University, USA
+!        R. Sander, Max-Planck Institute for Chemistry, Mainz, Germany
+! 
+! File                 : chem_gasphase_mod_Jacobian.f90
+! Time                 : Fri Dec  1 18:10:53 2017
+! Working directory    : /data/kanani/branches/palm4u/GASPHASE_PREPROC/tmp_kpp4palm
+! Equation file        : chem_gasphase_mod.kpp
+! Output root filename : chem_gasphase_mod
+! 
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+
+MODULE chem_gasphase_mod_Jacobian
+
+  USE chem_gasphase_mod_Parameters
+  USE chem_gasphase_mod_JacobianSP
+
+  IMPLICIT NONE
+
+CONTAINS
+
+
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+! Jac_SP - the Jacobian of Variables in sparse matrix representation
+!   Arguments :
+!      V         - Concentrations of variable species (local)
+!      F         - Concentrations of fixed species (local)
+!      RCT       - Rate constants (local)
+!      JVS       - sparse Jacobian of variables
+! 
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+SUBROUTINE Jac_SP ( V, F, RCT, JVS )
+
+! V - Concentrations of variable species (local)
+  REAL(kind=dp) :: V(NVAR)
+! F - Concentrations of fixed species (local)
+  REAL(kind=dp) :: F(NFIX)
+! RCT - Rate constants (local)
+  REAL(kind=dp) :: RCT(NREACT)
+! JVS - sparse Jacobian of variables
+  REAL(kind=dp) :: JVS(LU_NONZERO)
+
+
+! Local variables
+! B - Temporary array
+  REAL(kind=dp) :: B(3)
+
+! B(1) = dA(1)/dV(1)
+  B(1) = RCT(1)
+! B(2) = dA(2)/dV(2)
+  B(2) = RCT(2)
+! B(3) = dA(3)/dV(3)
+  B(3) = RCT(3)
+
+! Construct the Jacobian terms from B's
+! JVS(1) = Jac_FULL(1,1)
+  JVS(1) = 0
+! JVS(2) = Jac_FULL(2,2)
+  JVS(2) = 0
+! JVS(3) = Jac_FULL(3,3)
+  JVS(3) = 0
+      
+END SUBROUTINE Jac_SP
+
+! End of Jac_SP function
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+! Jac_SP_Vec - function for sparse multiplication: sparse Jacobian times vector
+!   Arguments :
+!      JVS       - sparse Jacobian of variables
+!      UV        - User vector for variables
+!      JUV       - Jacobian times user vector
+! 
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+SUBROUTINE Jac_SP_Vec ( JVS, UV, JUV )
+
+! JVS - sparse Jacobian of variables
+  REAL(kind=dp) :: JVS(LU_NONZERO)
+! UV - User vector for variables
+  REAL(kind=dp) :: UV(NVAR)
+! JUV - Jacobian times user vector
+  REAL(kind=dp) :: JUV(NVAR)
+
+  JUV(1) = JVS(1)*UV(1)
+  JUV(2) = JVS(2)*UV(2)
+  JUV(3) = JVS(3)*UV(3)
+      
+END SUBROUTINE Jac_SP_Vec
+
+! End of Jac_SP_Vec function
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+! JacTR_SP_Vec - sparse multiplication: sparse Jacobian transposed times vector
+!   Arguments :
+!      JVS       - sparse Jacobian of variables
+!      UV        - User vector for variables
+!      JTUV      - Jacobian transposed times user vector
+! 
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+SUBROUTINE JacTR_SP_Vec ( JVS, UV, JTUV )
+
+! JVS - sparse Jacobian of variables
+  REAL(kind=dp) :: JVS(LU_NONZERO)
+! UV - User vector for variables
+  REAL(kind=dp) :: UV(NVAR)
+! JTUV - Jacobian transposed times user vector
+  REAL(kind=dp) :: JTUV(NVAR)
+
+  JTUV(1) = JVS(1)*UV(1)
+  JTUV(2) = JVS(2)*UV(2)
+  JTUV(3) = JVS(3)*UV(3)
+      
+END SUBROUTINE JacTR_SP_Vec
+
+! End of JacTR_SP_Vec function
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+
+END MODULE chem_gasphase_mod_Jacobian
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/chem_gasphase_mod_JacobianSP.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/chem_gasphase_mod_JacobianSP.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/chem_gasphase_mod_JacobianSP.f90	(revision 2696)
@@ -0,0 +1,48 @@
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+! Sparse Jacobian Data Structures File
+! 
+! Generated by KPP-2.2.3 symbolic chemistry Kinetics PreProcessor
+!       (http://www.cs.vt.edu/~asandu/Software/KPP)
+! KPP is distributed under GPL, the general public licence
+!       (http://www.gnu.org/copyleft/gpl.html)
+! (C) 1995-1997, V. Damian & A. Sandu, CGRER, Univ. Iowa
+! (C) 1997-2005, A. Sandu, Michigan Tech, Virginia Tech
+!     With important contributions from:
+!        M. Damian, Villanova University, USA
+!        R. Sander, Max-Planck Institute for Chemistry, Mainz, Germany
+! 
+! File                 : chem_gasphase_mod_JacobianSP.f90
+! Time                 : Fri Dec  1 18:10:53 2017
+! Working directory    : /data/kanani/branches/palm4u/GASPHASE_PREPROC/tmp_kpp4palm
+! Equation file        : chem_gasphase_mod.kpp
+! Output root filename : chem_gasphase_mod
+! 
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+
+MODULE chem_gasphase_mod_JacobianSP
+
+  PUBLIC
+  SAVE
+
+
+! Sparse Jacobian Data
+
+
+  INTEGER, PARAMETER, DIMENSION(3) :: LU_IROW = (/ &
+       1,  2,  3 /)
+
+  INTEGER, PARAMETER, DIMENSION(3) :: LU_ICOL = (/ &
+       1,  2,  3 /)
+
+  INTEGER, PARAMETER, DIMENSION(4) :: LU_CROW = (/ &
+       1,  2,  3,  4 /)
+
+  INTEGER, PARAMETER, DIMENSION(4) :: LU_DIAG = (/ &
+       1,  2,  3,  4 /)
+
+
+END MODULE chem_gasphase_mod_JacobianSP
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/chem_gasphase_mod_LinearAlgebra.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/chem_gasphase_mod_LinearAlgebra.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/chem_gasphase_mod_LinearAlgebra.f90	(revision 2696)
@@ -0,0 +1,1151 @@
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+! Linear Algebra Data and Routines File
+! 
+! Generated by KPP-2.2.3 symbolic chemistry Kinetics PreProcessor
+!       (http://www.cs.vt.edu/~asandu/Software/KPP)
+! KPP is distributed under GPL, the general public licence
+!       (http://www.gnu.org/copyleft/gpl.html)
+! (C) 1995-1997, V. Damian & A. Sandu, CGRER, Univ. Iowa
+! (C) 1997-2005, A. Sandu, Michigan Tech, Virginia Tech
+!     With important contributions from:
+!        M. Damian, Villanova University, USA
+!        R. Sander, Max-Planck Institute for Chemistry, Mainz, Germany
+! 
+! File                 : chem_gasphase_mod_LinearAlgebra.f90
+! Time                 : Fri Dec  1 18:10:53 2017
+! Working directory    : /data/kanani/branches/palm4u/GASPHASE_PREPROC/tmp_kpp4palm
+! Equation file        : chem_gasphase_mod.kpp
+! Output root filename : chem_gasphase_mod
+! 
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+
+MODULE chem_gasphase_mod_LinearAlgebra
+
+  USE chem_gasphase_mod_Parameters
+  USE chem_gasphase_mod_JacobianSP
+
+  IMPLICIT NONE
+
+CONTAINS
+
+
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+! SPARSE_UTIL - SPARSE utility functions
+!   Arguments :
+! 
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+SUBROUTINE KppDecomp( JVS, IER )
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!        Sparse LU factorization
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  USE chem_gasphase_mod_Parameters
+  USE chem_gasphase_mod_JacobianSP
+
+      INTEGER  :: IER
+      REAL(kind=dp) :: JVS(LU_NONZERO), W(NVAR), a
+      INTEGER  :: k, kk, j, jj
+
+      a = 0. ! mz_rs_20050606
+      IER = 0
+      DO k=1,NVAR
+        ! mz_rs_20050606: don't check if real value == 0
+        ! IF ( JVS( LU_DIAG(k) ) .EQ. 0. ) THEN
+        IF ( ABS(JVS(LU_DIAG(k))) < TINY(a) ) THEN
+            IER = k
+            RETURN
+        END IF
+        DO kk = LU_CROW(k), LU_CROW(k+1)-1
+              W( LU_ICOL(kk) ) = JVS(kk)
+        END DO
+        DO kk = LU_CROW(k), LU_DIAG(k)-1
+            j = LU_ICOL(kk)
+            a = -W(j) / JVS( LU_DIAG(j) )
+            W(j) = -a
+            DO jj = LU_DIAG(j)+1, LU_CROW(j+1)-1
+               W( LU_ICOL(jj) ) = W( LU_ICOL(jj) ) + a*JVS(jj)
+            END DO
+         END DO
+         DO kk = LU_CROW(k), LU_CROW(k+1)-1
+            JVS(kk) = W( LU_ICOL(kk) )
+         END DO
+      END DO
+      
+END SUBROUTINE KppDecomp
+
+
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+SUBROUTINE KppDecompCmplx( JVS, IER )
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!        Sparse LU factorization, complex
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  USE chem_gasphase_mod_Parameters
+  USE chem_gasphase_mod_JacobianSP
+
+      INTEGER        :: IER
+      DOUBLE COMPLEX :: JVS(LU_NONZERO), W(NVAR), a
+      REAL(kind=dp)  :: b = 0.0
+      INTEGER        :: k, kk, j, jj
+
+      IER = 0
+      DO k=1,NVAR
+        IF ( ABS(JVS(LU_DIAG(k))) < TINY(b) ) THEN
+            IER = k
+            RETURN
+        END IF
+        DO kk = LU_CROW(k), LU_CROW(k+1)-1
+              W( LU_ICOL(kk) ) = JVS(kk)
+        END DO
+        DO kk = LU_CROW(k), LU_DIAG(k)-1
+            j = LU_ICOL(kk)
+            a = -W(j) / JVS( LU_DIAG(j) )
+            W(j) = -a
+            DO jj = LU_DIAG(j)+1, LU_CROW(j+1)-1
+               W( LU_ICOL(jj) ) = W( LU_ICOL(jj) ) + a*JVS(jj)
+            END DO
+         END DO
+         DO kk = LU_CROW(k), LU_CROW(k+1)-1
+            JVS(kk) = W( LU_ICOL(kk) )
+         END DO
+      END DO
+      
+END SUBROUTINE KppDecompCmplx
+
+
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+SUBROUTINE KppDecompCmplxR( JVSR, JVSI, IER )
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!    Sparse LU factorization, complex
+!   (Real and Imaginary parts are used instead of complex data type)     
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  USE chem_gasphase_mod_Parameters
+  USE chem_gasphase_mod_JacobianSP
+
+      INTEGER       :: IER
+      REAL(kind=dp) :: JVSR(LU_NONZERO), JVSI(LU_NONZERO) 
+      REAL(kind=dp) :: WR(NVAR), WI(NVAR), ar, ai, den
+      INTEGER       :: k, kk, j, jj
+
+      IER = 0
+      ar  = 0.0
+      DO k=1,NVAR
+        IF (  ( ABS(JVSR(LU_DIAG(k))) < TINY(ar) ) .AND. &
+              ( ABS(JVSI(LU_DIAG(k))) < TINY(ar) ) )  THEN
+            IER = k
+            RETURN
+        END IF
+        DO kk = LU_CROW(k), LU_CROW(k+1)-1
+              WR( LU_ICOL(kk) ) = JVSR(kk)
+              WI( LU_ICOL(kk) ) = JVSI(kk)
+        END DO
+        DO kk = LU_CROW(k), LU_DIAG(k)-1
+            j = LU_ICOL(kk)
+            den = JVSR(LU_DIAG(j))**2 + JVSI(LU_DIAG(j))**2
+            ar = -(WR(j)*JVSR(LU_DIAG(j)) + WI(j)*JVSI(LU_DIAG(j)))/den
+            ai = -(WI(j)*JVSR(LU_DIAG(j)) - WR(j)*JVSI(LU_DIAG(j)))/den
+            WR(j) = -ar
+            WI(j) = -ai
+            DO jj = LU_DIAG(j)+1, LU_CROW(j+1)-1
+               WR( LU_ICOL(jj) ) = WR( LU_ICOL(jj) ) + ar*JVSR(jj) - ai*JVSI(jj)
+               WI( LU_ICOL(jj) ) = WI( LU_ICOL(jj) ) + ar*JVSI(jj) + ai*JVSR(jj)
+            END DO
+         END DO
+         DO kk = LU_CROW(k), LU_CROW(k+1)-1
+            JVSR(kk) = WR( LU_ICOL(kk) )
+            JVSI(kk) = WI( LU_ICOL(kk) )
+         END DO
+      END DO
+
+END SUBROUTINE KppDecompCmplxR
+
+
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+SUBROUTINE KppSolveIndirect( JVS, X )
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!        Sparse solve subroutine using indirect addressing
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  USE chem_gasphase_mod_Parameters
+  USE chem_gasphase_mod_JacobianSP
+
+      INTEGER  :: i, j
+      REAL(kind=dp) :: JVS(LU_NONZERO), X(NVAR), sum
+
+      DO i=1,NVAR
+         DO j = LU_CROW(i), LU_DIAG(i)-1 
+             X(i) = X(i) - JVS(j)*X(LU_ICOL(j));
+         END DO  
+      END DO
+
+      DO i=NVAR,1,-1
+        sum = X(i);
+        DO j = LU_DIAG(i)+1, LU_CROW(i+1)-1
+          sum = sum - JVS(j)*X(LU_ICOL(j));
+        END DO
+        X(i) = sum/JVS(LU_DIAG(i));
+      END DO
+      
+END SUBROUTINE KppSolveIndirect
+
+
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+SUBROUTINE KppSolveTRIndirect( JVS, X )
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!        Complex sparse solve transpose subroutine using indirect addressing
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  USE chem_gasphase_mod_Parameters
+  USE chem_gasphase_mod_JacobianSP
+
+      INTEGER       :: i, j
+      REAL(kind=dp) :: JVS(LU_NONZERO), X(NVAR)
+
+      DO i=1,NVAR
+        X(i) = X(i)/JVS(LU_DIAG(i))
+	! subtract all nonzero elements in row i of JVS from X
+        DO j=LU_DIAG(i)+1,LU_CROW(i+1)-1
+	  X(LU_ICOL(j)) = X(LU_ICOL(j))-JVS(j)*X(i)
+	END DO
+      END DO
+
+      DO i=NVAR, 1, -1
+	! subtract all nonzero elements in row i of JVS from X
+        DO j=LU_CROW(i),LU_DIAG(i)-1
+	  X(LU_ICOL(j)) = X(LU_ICOL(j))-JVS(j)*X(i)
+	END DO
+      END DO
+      
+END SUBROUTINE KppSolveTRIndirect
+
+
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+SUBROUTINE KppSolveCmplx( JVS, X )
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!        Complex sparse solve subroutine using indirect addressing
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  USE chem_gasphase_mod_Parameters
+  USE chem_gasphase_mod_JacobianSP
+
+      INTEGER        :: i, j
+      DOUBLE COMPLEX :: JVS(LU_NONZERO), X(NVAR), sum
+
+      DO i=1,NVAR
+         DO j = LU_CROW(i), LU_DIAG(i)-1 
+             X(i) = X(i) - JVS(j)*X(LU_ICOL(j));
+         END DO  
+      END DO
+
+      DO i=NVAR,1,-1
+        sum = X(i);
+        DO j = LU_DIAG(i)+1, LU_CROW(i+1)-1
+          sum = sum - JVS(j)*X(LU_ICOL(j));
+        END DO
+        X(i) = sum/JVS(LU_DIAG(i));
+      END DO
+      
+END SUBROUTINE KppSolveCmplx
+
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+SUBROUTINE KppSolveCmplxR( JVSR, JVSI, XR, XI )
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!   Complex sparse solve subroutine using indirect addressing
+!   (Real and Imaginary parts are used instead of complex data type)     
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  USE chem_gasphase_mod_Parameters
+  USE chem_gasphase_mod_JacobianSP
+
+      INTEGER       ::  i, j
+      REAL(kind=dp) ::  JVSR(LU_NONZERO), JVSI(LU_NONZERO), XR(NVAR), XI(NVAR), sumr, sumi, den
+
+      DO i=1,NVAR
+         DO j = LU_CROW(i), LU_DIAG(i)-1 
+             XR(i) = XR(i) - (JVSR(j)*XR(LU_ICOL(j)) - JVSI(j)*XI(LU_ICOL(j)))
+             XI(i) = XI(i) - (JVSR(j)*XI(LU_ICOL(j)) + JVSI(j)*XR(LU_ICOL(j)))
+         END DO  
+      END DO
+
+      DO i=NVAR,1,-1
+        sumr = XR(i); sumi = XI(i)
+        DO j = LU_DIAG(i)+1, LU_CROW(i+1)-1
+            sumr = sumr - (JVSR(j)*XR(LU_ICOL(j)) - JVSI(j)*XI(LU_ICOL(j)))
+            sumi = sumi - (JVSR(j)*XI(LU_ICOL(j)) + JVSI(j)*XR(LU_ICOL(j)))
+        END DO
+        den   = JVSR(LU_DIAG(i))**2 + JVSI(LU_DIAG(i))**2
+        XR(i) = (sumr*JVSR(LU_DIAG(i)) + sumi*JVSI(LU_DIAG(i)))/den
+        XI(i) = (sumi*JVSR(LU_DIAG(i)) - sumr*JVSI(LU_DIAG(i)))/den
+      END DO
+      
+END SUBROUTINE KppSolveCmplxR
+
+
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+SUBROUTINE KppSolveTRCmplx( JVS, X )
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!        Complex sparse solve transpose subroutine using indirect addressing
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  USE chem_gasphase_mod_Parameters
+  USE chem_gasphase_mod_JacobianSP
+
+      INTEGER        :: i, j
+      DOUBLE COMPLEX :: JVS(LU_NONZERO), X(NVAR)
+
+      DO i=1,NVAR
+        X(i) = X(i)/JVS(LU_DIAG(i))
+	! subtract all nonzero elements in row i of JVS from X
+        DO j=LU_DIAG(i)+1,LU_CROW(i+1)-1
+	  X(LU_ICOL(j)) = X(LU_ICOL(j))-JVS(j)*X(i)
+	END DO
+      END DO
+
+      DO i=NVAR, 1, -1
+	! subtract all nonzero elements in row i of JVS from X
+        DO j=LU_CROW(i),LU_DIAG(i)-1
+	  X(LU_ICOL(j)) = X(LU_ICOL(j))-JVS(j)*X(i)
+	END DO
+      END DO
+      
+END SUBROUTINE KppSolveTRCmplx
+
+
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+SUBROUTINE KppSolveTRCmplxR( JVSR, JVSI, XR, XI )
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!   Complex sparse solve transpose subroutine using indirect addressing
+!   (Real and Imaginary parts are used instead of complex data type)     
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  USE chem_gasphase_mod_Parameters
+  USE chem_gasphase_mod_JacobianSP
+
+      INTEGER       ::  i, j
+      REAL(kind=dp) ::  JVSR(LU_NONZERO), JVSI(LU_NONZERO), XR(NVAR), XI(NVAR), den
+
+      DO i=1,NVAR
+        den   = JVSR(LU_DIAG(i))**2 + JVSI(LU_DIAG(i))**2
+        XR(i) = (XR(i)*JVSR(LU_DIAG(i)) + XI(i)*JVSI(LU_DIAG(i)))/den
+        XI(i) = (XI(i)*JVSR(LU_DIAG(i)) - XR(i)*JVSI(LU_DIAG(i)))/den
+	! subtract all nonzero elements in row i of JVS from X
+        DO j=LU_DIAG(i)+1,LU_CROW(i+1)-1
+	  XR(LU_ICOL(j)) = XR(LU_ICOL(j))-(JVSR(j)*XR(i) - JVSI(j)*XI(i))
+	  XI(LU_ICOL(j)) = XI(LU_ICOL(j))-(JVSI(j)*XR(i) + JVSR(j)*XI(i))
+	END DO
+      END DO
+
+      DO i=NVAR, 1, -1
+	! subtract all nonzero elements in row i of JVS from X
+        DO j=LU_CROW(i),LU_DIAG(i)-1
+	  XR(LU_ICOL(j)) = XR(LU_ICOL(j))-(JVSR(j)*XR(i) - JVSI(j)*XI(i))
+	  XI(LU_ICOL(j)) = XI(LU_ICOL(j))-(JVSI(j)*XR(i) + JVSR(j)*XI(i))
+	END DO
+      END DO
+      
+END SUBROUTINE KppSolveTRCmplxR
+
+
+!
+! Next few commented subroutines perform sparse big linear algebra
+!
+!! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!SUBROUTINE KppDecompBig( JVS, IP, IER )
+!! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!!        Sparse LU factorization
+!!        for the Runge Kutta (3n)x(3n) linear system
+!! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!  USE chem_gasphase_mod_Parameters
+!  USE chem_gasphase_mod_JacobianSP
+!
+!      INTEGER  :: IP3(3), IER, IP(3,NVAR)
+!      REAL(kind=dp) :: JVS(3,3,LU_NONZERO), W(3,3,NVAR), a(3,3), E(3,3)
+!      INTEGER  :: k, kk, j, jj
+!
+!      a = 0.0d0
+!      IER = 0
+!      DO k=1,NVAR
+!        DO kk = LU_CROW(k), LU_CROW(k+1)-1
+!              W( 1:3,1:3,LU_ICOL(kk) ) = JVS(1:3,1:3,kk)
+!        END DO
+!        DO kk = LU_CROW(k), LU_DIAG(k)-1
+!            j = LU_ICOL(kk)
+!            E(1:3,1:3) = JVS( 1:3,1:3,LU_DIAG(j) )
+!            ! CALL DGETRF(3,3,E,3,IP3,IER) 
+!            CALL FAC3(E,IP3,IER)
+!            IF ( IER /= 0 )  RETURN
+!            ! a = W(j) / JVS( LU_DIAG(j) )
+!            a(1:3,1:3) = W( 1:3,1:3,j )
+!            ! CALL DGETRS ('N',3,3,E,3,IP3,a,3,IER) 
+!            CALL SOL3('N',E,IP3,a(1,1))
+!            CALL SOL3('N',E,IP3,a(1,2))
+!            CALL SOL3('N',E,IP3,a(1,3))
+!            W(1:3,1:3,j) = a(1:3,1:3)
+!            DO jj = LU_DIAG(j)+1, LU_CROW(j+1)-1
+!               W( 1:3,1:3,LU_ICOL(jj) ) = W( 1:3,1:3,LU_ICOL(jj) ) &
+!                        - MATMUL( a(1:3,1:3) , JVS(1:3,1:3,jj) )
+!            END DO
+!         END DO
+!         DO kk = LU_CROW(k), LU_CROW(k+1)-1
+!            JVS(1:3,1:3,kk) = W( 1:3,1:3,LU_ICOL(kk) )
+!         END DO
+!      END DO
+!
+!      DO k=1,NVAR
+!         ! CALL WGEFA(JVS(1,1,LU_DIAG(k)),3,3,IP(1,k),IER)
+!         ! CALL DGETRF(3,3,JVS(1,1,LU_DIAG(k)),3,IP(1,k),IER)
+!         CALL FAC3(JVS(1,1,LU_DIAG(k)),IP(1,k),IER)
+!         IF ( IER /= 0 )  RETURN
+!      END DO 
+!      
+!END SUBROUTINE KppDecompBig
+!
+!
+!! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!SUBROUTINE KppSolveBig( JVS, IP, X )
+!! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!!        Sparse solve subroutine using indirect addressing
+!!        for the Runge Kutta (3n)x(3n) linear system
+!! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!  USE chem_gasphase_mod_Parameters
+!  USE chem_gasphase_mod_JacobianSP
+!
+!      INTEGER  :: i, j, k, m, IP3(3), IP(3,NVAR), IER
+!      REAL(kind=dp) :: JVS(3,3,LU_NONZERO), X(3,NVAR), sum(3)
+!
+!      DO i=1,NVAR
+!        DO j = LU_CROW(i), LU_DIAG(i)-1 
+!          !X(1:3,i) = X(1:3,i) - MATMUL(JVS(1:3,1:3,j),X(1:3,LU_ICOL(j)));
+!          DO k=1,3
+!            DO m=1,3
+!	       X(k,i) = X(k,i) - JVS(k,m,j)*X(m,LU_ICOL(j))
+!            END DO
+!          END DO
+!        END DO  
+!      END DO
+!
+!      DO i=NVAR,1,-1
+!        sum(1:3) = X(1:3,i);
+!        DO j = LU_DIAG(i)+1, LU_CROW(i+1)-1
+!          !sum(1:3) = sum(1:3) - MATMUL(JVS(1:3,1:3,j),X(1:3,LU_ICOL(j)));
+!          DO k=1,3
+!            DO m=1,3
+!	       sum(k) = sum(k) - JVS(k,m,j)*X(m,LU_ICOL(j))
+!            END DO
+!          END DO
+!        END DO
+!        ! X(i) = sum/JVS(LU_DIAG(i));
+!        ! CALL DGETRS ('N',3,1,JVS(1:3,1:3,LU_DIAG(i)),3,IP(1,i),sum,3,0) 
+!        ! CALL WGESL('N',JVS(1,1,LU_DIAG(i)),3,3,IP(1,i),sum)
+!        CALL SOL3('N',JVS(1,1,LU_DIAG(i)),IP(1,i),sum)
+!        X(1:3,i) = sum(1:3)
+!      END DO
+!      
+!END SUBROUTINE KppSolveBig
+!
+!
+!! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!SUBROUTINE KppSolveBigTR( JVS, IP, X )
+!! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!!        Big sparse transpose solve using indirect addressing
+!! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!  USE chem_gasphase_mod_Parameters
+!  USE chem_gasphase_mod_JacobianSP
+!
+!      INTEGER       :: i, j, k, m, IP(3,NVAR)
+!      REAL(kind=dp) :: JVS(3,3,LU_NONZERO), X(3,NVAR)
+!
+!      DO i=1,NVAR
+!        ! X(i) = X(i)/JVS(LU_DIAG(i))
+!        CALL SOL3('T',JVS(1,1,LU_DIAG(i)),IP(1,i),X(1,i))
+!        DO j=LU_DIAG(i)+1,LU_CROW(i+1)-1
+!	  !X(1:3,LU_ICOL(j)) = X(1:3,LU_ICOL(j)) &
+!          !    - MATMUL( TRANSPOSE(JVS(1:3,1:3,j)), X(1:3,i) )
+!          DO k=1,3
+!            DO m=1,3
+!	       X(k,LU_ICOL(j)) = X(k,LU_ICOL(j)) - JVS(m,k,j)*X(m,i)
+!            END DO
+!          END DO
+!	END DO
+!      END DO
+!
+!      DO i=NVAR, 1, -1
+!        DO j=LU_CROW(i),LU_DIAG(i)-1
+!	  !X(1:3,LU_ICOL(j)) = X(1:3,LU_ICOL(j)) &
+!          !   - MATMUL( TRANSPOSE(JVS(1:3,1:3,j)), X(1:3,i) )
+!          DO k=1,3
+!            DO m=1,3
+!	       X(k,LU_ICOL(j)) = X(k,LU_ICOL(j)) - JVS(m,k,j)*X(m,i)
+!            END DO
+!          END DO
+!	END DO
+!      END DO
+!      
+!END SUBROUTINE KppSolveBigTR
+!
+!
+!
+!! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!SUBROUTINE FAC3(A,IPVT,INFO)
+!! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!!     FAC3 FACTORS THE MATRIX A (3,3) BY
+!!           GAUSS ELIMINATION WITH PARTIAL PIVOTING
+!!     LINPACK - LIKE 
+!!
+!!     Remove comments to perform pivoting
+!! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!!
+!      REAL(kind=dp) :: A(3,3)
+!      INTEGER       :: IPVT(3),INFO
+!!      INTEGER       :: L
+!!      REAL(kind=dp) :: t, dmax, da, TMP(3)
+!      REAL(kind=dp), PARAMETER :: ZERO = 0.0, ONE = 1.0
+!
+!      info = 0
+!!      t = TINY(da)
+!!      
+!!      da = ABS(A(1,1)); L = 1
+!!      IF ( ABS(A(2,1))>da ) THEN
+!!        da = ABS(A(2,1)); L = 2
+!!        IF ( ABS(A(3,1))>da ) THEN
+!!          L = 3
+!!        END IF  
+!!      END IF  
+!!      IPVT(1)  = L
+!!      IF (L /=1 ) THEN
+!!         TMP(1:3) = A(L,1:3)
+!!         A(L,1:3) = A(1,1:3)
+!!         A(1,1:3) = TMP(1:3)
+!!      END IF
+!!      IF (ABS(A(1,1)) < t) THEN
+!!         info = 1
+!!         return
+!!      END IF   
+!!
+!      A(2,1) = A(2,1)/A(1,1)
+!      A(2,2) = A(2,2) - A(2,1)*A(1,2)
+!      A(2,3) = A(2,3) - A(2,1)*A(1,3)
+!      A(3,1) = A(3,1)/A(1,1)
+!      A(3,2) = A(3,2) - A(3,1)*A(1,2)
+!      A(3,3) = A(3,3) - A(3,1)*A(1,3)
+!      
+!!      IPVT(2)  = 2
+!!      IF (ABS(A(3,2))>ABS(A(2,2))) THEN
+!!         IPVT(2)  = 3
+!!         TMP(2:3) = A(3,2:3)
+!!         A(3,2:3) = A(2,2:3)
+!!         A(2,2:3) = TMP(2:3)
+!!      END IF
+!!      IF (ABS(A(2,2)) < t) THEN
+!!         info = 1
+!!         return
+!!      END IF   
+!!      
+!      A(3,2)   = A(3,2)/A(2,2)
+!      A(3,3)   = A(3,3) - A(3,2)*A(2,3)
+!      IPVT(3)  = 3
+!      
+!END SUBROUTINE FAC3
+!
+!
+!! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!SUBROUTINE SOL3(Trans,A,IPVT,b)
+!! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!!     SOL3 solves the system 3x3
+!!     A * x = b  or  trans(a) * x = b
+!!     using the factors computed by WGEFA.
+!!
+!!     Trans      = 'N'   to solve  A*x = b ,
+!!                = 'T'   to solve  transpose(A)*x = b
+!!     LINPACK - LIKE 
+!!
+!!     Remove comments to use pivoting
+!! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!      CHARACTER     :: Trans
+!      REAL(kind=dp) :: a(3,3),b(3)
+!      INTEGER       :: IPVT(3)
+!!      INTEGER       :: L
+!!      REAL(kind=dp) :: TMP
+!      
+!      SELECT CASE (Trans)
+!
+!      CASE ('n','N')  !  Solve  A * x = b
+!
+!!     Solve  L*y = b
+!!         L = IPVT(1)
+!!         IF (L /= 1) THEN
+!!            TMP = B(1); B(1) = B(L); B(L) = TMP
+!!         END IF
+!         b(2) = b(2)-A(2,1)*b(1)
+!         b(3) = b(3)-A(3,1)*b(1)
+!         
+!!         L = IPVT(2)
+!!         IF (L /= 2) THEN
+!!            TMP = B(2); B(2) = B(L); B(L) = TMP
+!!         END IF
+!         b(3) = b(3)-A(3,2)*b(2)
+!
+!!     Solve  U*x = y
+!         b(3) = b(3)/A(3,3)
+!         b(2) = (b(2)-A(2,3)*b(3))/A(2,2)
+!         b(1) = (b(1)-A(1,3)*b(3)-A(1,2)*b(2))/A(1,1)
+!      
+!      
+!      CASE ('t','T')  !  Solve transpose(A) * x = b
+!
+!!      Solve transpose(U)*y = b
+!         b(1) = b(1)/A(1,1)
+!         b(2) = (b(2)-A(1,2)*b(1))/A(2,2)
+!         b(3) = (b(3)-A(1,3)*b(1)-A(2,3)*b(2))/A(3,3)
+!
+!!      Solve transpose(L)*x = y
+!         b(2) = b(2)-A(3,2)*b(3)
+!!         L = ipvt(2)
+!!         IF (L /= 2) THEN
+!!            TMP = B(2); B(2) = B(L); B(L) = TMP
+!!         END IF
+!         b(1) = b(1)-A(3,1)*b(3)-A(2,1)*b(2)
+!!         L = ipvt(1)
+!!         IF (L /= 1) THEN
+!!            TMP = B(1); B(1) = B(L); B(L) = TMP
+!!         END IF
+!   
+!      END SELECT
+!
+!END SUBROUTINE SOL3
+
+! End of SPARSE_UTIL function
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+! KppSolve - sparse back substitution
+!   Arguments :
+!      JVS       - sparse Jacobian of variables
+!      X         - Vector for variables
+! 
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+SUBROUTINE KppSolve ( JVS, X )
+
+! JVS - sparse Jacobian of variables
+  REAL(kind=dp) :: JVS(LU_NONZERO)
+! X - Vector for variables
+  REAL(kind=dp) :: X(NVAR)
+
+  X(3) = X(3)/JVS(3)
+  X(2) = X(2)/JVS(2)
+  X(1) = X(1)/JVS(1)
+      
+END SUBROUTINE KppSolve
+
+! End of KppSolve function
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+! KppSolveTR - sparse, transposed back substitution
+!   Arguments :
+!      JVS       - sparse Jacobian of variables
+!      X         - Vector for variables
+!      XX        - Vector for output variables
+! 
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+SUBROUTINE KppSolveTR ( JVS, X, XX )
+
+! JVS - sparse Jacobian of variables
+  REAL(kind=dp) :: JVS(LU_NONZERO)
+! X - Vector for variables
+  REAL(kind=dp) :: X(NVAR)
+! XX - Vector for output variables
+  REAL(kind=dp) :: XX(NVAR)
+
+  XX(1) = X(1)/JVS(1)
+  XX(2) = X(2)/JVS(2)
+  XX(3) = X(3)/JVS(3)
+  XX(3) = XX(3)
+  XX(2) = XX(2)
+  XX(1) = XX(1)
+      
+END SUBROUTINE KppSolveTR
+
+! End of KppSolveTR function
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+! BLAS_UTIL - BLAS-LIKE utility functions
+!   Arguments :
+! 
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+!--------------------------------------------------------------
+!
+! BLAS/LAPACK-like subroutines used by the integration algorithms
+! It is recommended to replace them by calls to the optimized
+!      BLAS/LAPACK library for your machine
+!
+!  (C) Adrian Sandu, Aug. 2004
+!      Virginia Polytechnic Institute and State University
+!--------------------------------------------------------------
+
+
+!--------------------------------------------------------------
+      SUBROUTINE WCOPY(N,X,incX,Y,incY)
+!--------------------------------------------------------------
+!     copies a vector, x, to a vector, y:  y <- x
+!     only for incX=incY=1
+!     after BLAS
+!     replace this by the function from the optimized BLAS implementation:
+!         CALL  SCOPY(N,X,1,Y,1)   or   CALL  DCOPY(N,X,1,Y,1)
+!--------------------------------------------------------------
+!     USE chem_gasphase_mod_Precision
+      
+      INTEGER  :: i,incX,incY,M,MP1,N
+      REAL(kind=dp) :: X(N),Y(N)
+
+      IF (N.LE.0) RETURN
+
+      M = MOD(N,8)
+      IF( M .NE. 0 ) THEN
+        DO i = 1,M
+          Y(i) = X(i)
+        END DO
+        IF( N .LT. 8 ) RETURN
+      END IF    
+      MP1 = M+1
+      DO i = MP1,N,8
+        Y(i) = X(i)
+        Y(i + 1) = X(i + 1)
+        Y(i + 2) = X(i + 2)
+        Y(i + 3) = X(i + 3)
+        Y(i + 4) = X(i + 4)
+        Y(i + 5) = X(i + 5)
+        Y(i + 6) = X(i + 6)
+        Y(i + 7) = X(i + 7)
+      END DO
+
+      END SUBROUTINE WCOPY
+
+
+!--------------------------------------------------------------
+      SUBROUTINE WAXPY(N,Alpha,X,incX,Y,incY)
+!--------------------------------------------------------------
+!     constant times a vector plus a vector: y <- y + Alpha*x
+!     only for incX=incY=1
+!     after BLAS
+!     replace this by the function from the optimized BLAS implementation:
+!         CALL SAXPY(N,Alpha,X,1,Y,1) or  CALL DAXPY(N,Alpha,X,1,Y,1)
+!--------------------------------------------------------------
+
+      INTEGER  :: i,incX,incY,M,MP1,N
+      REAL(kind=dp) :: X(N),Y(N),Alpha
+      REAL(kind=dp), PARAMETER :: ZERO = 0.0_dp
+
+      IF (Alpha .EQ. ZERO) RETURN
+      IF (N .LE. 0) RETURN
+
+      M = MOD(N,4)
+      IF( M .NE. 0 ) THEN
+        DO i = 1,M
+          Y(i) = Y(i) + Alpha*X(i)
+        END DO
+        IF( N .LT. 4 ) RETURN
+      END IF
+      MP1 = M + 1
+      DO i = MP1,N,4
+        Y(i) = Y(i) + Alpha*X(i)
+        Y(i + 1) = Y(i + 1) + Alpha*X(i + 1)
+        Y(i + 2) = Y(i + 2) + Alpha*X(i + 2)
+        Y(i + 3) = Y(i + 3) + Alpha*X(i + 3)
+      END DO
+      
+      END SUBROUTINE WAXPY
+
+
+
+!--------------------------------------------------------------
+      SUBROUTINE WSCAL(N,Alpha,X,incX)
+!--------------------------------------------------------------
+!     constant times a vector: x(1:N) <- Alpha*x(1:N) 
+!     only for incX=incY=1
+!     after BLAS
+!     replace this by the function from the optimized BLAS implementation:
+!         CALL SSCAL(N,Alpha,X,1) or  CALL DSCAL(N,Alpha,X,1)
+!--------------------------------------------------------------
+
+      INTEGER  :: i,incX,M,MP1,N
+      REAL(kind=dp)  :: X(N),Alpha
+      REAL(kind=dp), PARAMETER  :: ZERO=0.0_dp, ONE=1.0_dp
+
+      IF (Alpha .EQ. ONE) RETURN
+      IF (N .LE. 0) RETURN
+
+      M = MOD(N,5)
+      IF( M .NE. 0 ) THEN
+        IF (Alpha .EQ. (-ONE)) THEN
+          DO i = 1,M
+            X(i) = -X(i)
+          END DO
+        ELSEIF (Alpha .EQ. ZERO) THEN
+          DO i = 1,M
+            X(i) = ZERO
+          END DO
+        ELSE
+          DO i = 1,M
+            X(i) = Alpha*X(i)
+          END DO
+        END IF
+        IF( N .LT. 5 ) RETURN
+      END IF
+      MP1 = M + 1
+      IF (Alpha .EQ. (-ONE)) THEN
+        DO i = MP1,N,5
+          X(i)     = -X(i)
+          X(i + 1) = -X(i + 1)
+          X(i + 2) = -X(i + 2)
+          X(i + 3) = -X(i + 3)
+          X(i + 4) = -X(i + 4)
+        END DO
+      ELSEIF (Alpha .EQ. ZERO) THEN
+        DO i = MP1,N,5
+          X(i)     = ZERO
+          X(i + 1) = ZERO
+          X(i + 2) = ZERO
+          X(i + 3) = ZERO
+          X(i + 4) = ZERO
+        END DO
+      ELSE
+        DO i = MP1,N,5
+          X(i)     = Alpha*X(i)
+          X(i + 1) = Alpha*X(i + 1)
+          X(i + 2) = Alpha*X(i + 2)
+          X(i + 3) = Alpha*X(i + 3)
+          X(i + 4) = Alpha*X(i + 4)
+        END DO
+      END IF
+
+      END SUBROUTINE WSCAL
+
+!--------------------------------------------------------------
+      REAL(kind=dp) FUNCTION WLAMCH( C )
+!--------------------------------------------------------------
+!     returns epsilon machine
+!     after LAPACK
+!     replace this by the function from the optimized LAPACK implementation:
+!          CALL SLAMCH('E') or CALL DLAMCH('E')
+!--------------------------------------------------------------
+!      USE chem_gasphase_mod_Precision
+
+      CHARACTER ::  C
+      INTEGER    :: i
+      REAL(kind=dp), SAVE  ::  Eps
+      REAL(kind=dp)  ::  Suma
+      REAL(kind=dp), PARAMETER  ::  ONE=1.0_dp, HALF=0.5_dp
+      LOGICAL, SAVE   ::  First=.TRUE.
+      
+      IF (First) THEN
+        First = .FALSE.
+        Eps = HALF**(16)
+        DO i = 17, 80
+          Eps = Eps*HALF
+          CALL WLAMCH_ADD(ONE,Eps,Suma)
+          IF (Suma.LE.ONE) GOTO 10
+        END DO
+        PRINT*,'ERROR IN WLAMCH. EPS < ',Eps
+        RETURN
+10      Eps = Eps*2
+        i = i-1      
+      END IF
+
+      WLAMCH = Eps
+
+      END FUNCTION WLAMCH
+     
+      SUBROUTINE WLAMCH_ADD( A, B, Suma )
+!      USE chem_gasphase_mod_Precision
+      
+      REAL(kind=dp) A, B, Suma
+      Suma = A + B
+
+      END SUBROUTINE WLAMCH_ADD
+!--------------------------------------------------------------
+
+
+!--------------------------------------------------------------
+      SUBROUTINE SET2ZERO(N,Y)
+!--------------------------------------------------------------
+!     copies zeros into the vector y:  y <- 0
+!     after BLAS
+!--------------------------------------------------------------
+      
+      INTEGER ::  i,M,MP1,N
+      REAL(kind=dp) ::  Y(N)
+      REAL(kind=dp), PARAMETER :: ZERO = 0.0d0
+
+      IF (N.LE.0) RETURN
+
+      M = MOD(N,8)
+      IF( M .NE. 0 ) THEN
+        DO i = 1,M
+          Y(i) = ZERO
+        END DO
+        IF( N .LT. 8 ) RETURN
+      END IF    
+      MP1 = M+1
+      DO i = MP1,N,8
+        Y(i)     = ZERO
+        Y(i + 1) = ZERO
+        Y(i + 2) = ZERO
+        Y(i + 3) = ZERO
+        Y(i + 4) = ZERO
+        Y(i + 5) = ZERO
+        Y(i + 6) = ZERO
+        Y(i + 7) = ZERO
+      END DO
+
+      END SUBROUTINE SET2ZERO
+
+
+!--------------------------------------------------------------
+      REAL(kind=dp) FUNCTION WDOT (N, DX, incX, DY, incY) 
+!--------------------------------------------------------------
+!     dot produce: wdot = x(1:N)*y(1:N) 
+!     only for incX=incY=1
+!     after BLAS
+!     replace this by the function from the optimized BLAS implementation:
+!         CALL SDOT(N,X,1,Y,1) or  CALL DDOT(N,X,1,Y,1)
+!--------------------------------------------------------------
+!      USE messy_mecca_kpp_Precision
+!--------------------------------------------------------------
+      IMPLICIT NONE
+      INTEGER :: N, incX, incY
+      REAL(kind=dp) :: DX(N), DY(N) 
+
+      INTEGER :: i, IX, IY, M, MP1, NS
+                                 
+      WDOT = 0.0D0 
+      IF (N .LE. 0) RETURN 
+      IF (incX .EQ. incY) IF (incX-1) 5,20,60 
+!                                                                       
+!     Code for unequal or nonpositive increments.                       
+!                                                                       
+    5 IX = 1 
+      IY = 1 
+      IF (incX .LT. 0) IX = (-N+1)*incX + 1 
+      IF (incY .LT. 0) IY = (-N+1)*incY + 1 
+      DO i = 1,N 
+        WDOT = WDOT + DX(IX)*DY(IY) 
+        IX = IX + incX 
+        IY = IY + incY 
+      END DO 
+      RETURN 
+!                                                                       
+!     Code for both increments equal to 1.                              
+!                                                                       
+!     Clean-up loop so remaining vector length is a multiple of 5.      
+!                                                                       
+   20 M = MOD(N,5) 
+      IF (M .EQ. 0) GO TO 40 
+      DO i = 1,M 
+         WDOT = WDOT + DX(i)*DY(i) 
+      END DO 
+      IF (N .LT. 5) RETURN 
+   40 MP1 = M + 1 
+      DO i = MP1,N,5 
+          WDOT = WDOT + DX(i)*DY(i) + DX(i+1)*DY(i+1) + DX(i+2)*DY(i+2) +  &
+                   DX(i+3)*DY(i+3) + DX(i+4)*DY(i+4)                   
+      END DO 
+      RETURN 
+!                                                                       
+!     Code for equal, positive, non-unit increments.                    
+!                                                                       
+   60 NS = N*incX 
+      DO i = 1,NS,incX 
+        WDOT = WDOT + DX(i)*DY(i) 
+      END DO 
+
+      END FUNCTION WDOT                                          
+
+
+!--------------------------------------------------------------
+      SUBROUTINE WADD(N,X,Y,Z)
+!--------------------------------------------------------------
+!     adds two vectors: z <- x + y
+!     BLAS - like
+!--------------------------------------------------------------
+!     USE chem_gasphase_mod_Precision
+      
+      INTEGER :: i, M, MP1, N
+      REAL(kind=dp) :: X(N),Y(N),Z(N)
+
+      IF (N.LE.0) RETURN
+
+      M = MOD(N,5)
+      IF( M /= 0 ) THEN
+         DO i = 1,M
+            Z(i) = X(i) + Y(i)
+         END DO
+         IF( N < 5 ) RETURN
+      END IF    
+      MP1 = M+1
+      DO i = MP1,N,5
+         Z(i)     = X(i)     + Y(i)
+         Z(i + 1) = X(i + 1) + Y(i + 1)
+         Z(i + 2) = X(i + 2) + Y(i + 2)
+         Z(i + 3) = X(i + 3) + Y(i + 3)
+         Z(i + 4) = X(i + 4) + Y(i + 4)
+      END DO
+
+      END SUBROUTINE WADD
+      
+      
+      
+!--------------------------------------------------------------
+      SUBROUTINE WGEFA(N,A,Ipvt,info)
+!--------------------------------------------------------------
+!     WGEFA FACTORS THE MATRIX A (N,N) BY
+!           GAUSS ELIMINATION WITH PARTIAL PIVOTING
+!     LINPACK - LIKE 
+!--------------------------------------------------------------
+!
+      INTEGER       :: N,Ipvt(N),info
+      REAL(kind=dp) :: A(N,N)
+      REAL(kind=dp) :: t, dmax, da
+      INTEGER       :: j,k,l
+      REAL(kind=dp), PARAMETER :: ZERO = 0.0, ONE = 1.0
+
+      info = 0
+
+size: IF (n > 1) THEN
+      
+col:  DO k = 1, n-1
+
+!        find l = pivot index
+!        l = idamax(n-k+1,A(k,k),1) + k - 1
+         l = k; dmax = abs(A(k,k))
+         DO j = k+1,n
+            da = ABS(A(j,k))
+            IF (da > dmax) THEN
+              l = j; dmax = da
+            END IF
+         END DO
+         Ipvt(k) = l
+
+!        zero pivot implies this column already triangularized
+         IF (ABS(A(l,k)) < TINY(ZERO)) THEN
+            info = k
+            return
+         ELSE   
+            IF (l /= k) THEN
+               t = A(l,k); A(l,k) = A(k,k); A(k,k) = t
+            END IF
+            t = -ONE/A(k,k)
+            CALL WSCAL(n-k,t,A(k+1,k),1)
+            DO j = k+1, n
+               t = A(l,j)
+               IF (l /= k) THEN
+                  A(l,j) = A(k,j); A(k,j) = t
+               END IF
+               CALL WAXPY(n-k,t,A(k+1,k),1,A(k+1,j),1)
+            END DO         
+         END IF
+         
+       END DO col
+       
+      END IF size
+      
+      Ipvt(N) = N
+      IF (ABS(A(N,N)) == ZERO) info = N
+      
+      END SUBROUTINE WGEFA
+
+
+!--------------------------------------------------------------
+      SUBROUTINE WGESL(Trans,N,A,Ipvt,b)
+!--------------------------------------------------------------
+!     WGESL solves the system
+!     a * x = b  or  trans(a) * x = b
+!     using the factors computed by WGEFA.
+!
+!     Trans      = 'N'   to solve  A*x = b ,
+!                = 'T'   to solve  transpose(A)*x = b
+!     LINPACK - LIKE 
+!--------------------------------------------------------------
+
+      INTEGER       :: N,Ipvt(N)
+      CHARACTER     :: trans
+      REAL(kind=dp) :: A(N,N),b(N)
+      REAL(kind=dp) :: t
+      INTEGER       :: k,kb,l
+
+      
+      SELECT CASE (Trans)
+
+      CASE ('n','N')  !  Solve  A * x = b
+
+!        first solve  L*y = b
+         IF (n >= 2) THEN
+          DO k = 1, n-1
+            l = Ipvt(k)
+            t = b(l)
+            IF (l /= k) THEN
+               b(l) = b(k)
+               b(k) = t
+            END IF
+            CALL WAXPY(n-k,t,a(k+1,k),1,b(k+1),1)
+          END DO
+         END IF
+!        now solve  U*x = y
+         DO kb = 1, n
+            k = n + 1 - kb
+            b(k) = b(k)/a(k,k)
+            t = -b(k)
+            CALL WAXPY(k-1,t,a(1,k),1,b(1),1)
+         END DO
+      
+      CASE ('t','T')  !  Solve transpose(A) * x = b
+
+!        first solve  trans(U)*y = b
+         DO k = 1, n
+            t = WDOT(k-1,a(1,k),1,b(1),1)
+            b(k) = (b(k) - t)/a(k,k)
+         END DO
+!        now solve trans(L)*x = y
+         IF (n >= 2) THEN
+         DO kb = 1, n-1
+            k = n - kb
+            b(k) = b(k) + WDOT(n-k,a(k+1,k),1,b(k+1),1)
+            l = Ipvt(k)
+            IF (l /= k) THEN
+               t = b(l); b(l) = b(k); b(k) = t
+            END IF
+         END DO
+         END IF
+   
+      END SELECT
+
+      END SUBROUTINE WGESL
+! End of BLAS_UTIL function
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+
+END MODULE chem_gasphase_mod_LinearAlgebra
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/chem_gasphase_mod_Model.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/chem_gasphase_mod_Model.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/chem_gasphase_mod_Model.f90	(revision 2696)
@@ -0,0 +1,22 @@
+MODULE chem_gasphase_mod_Model
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!  Completely defines the model chem_gasphase_mod
+!    by using all the associated modules
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  USE chem_gasphase_mod_Precision
+  USE chem_gasphase_mod_Parameters
+  USE chem_gasphase_mod_Global
+  USE chem_gasphase_mod_Function
+  USE chem_gasphase_mod_Integrator
+  USE chem_gasphase_mod_Rates
+  USE chem_gasphase_mod_Jacobian
+  USE chem_gasphase_mod_Hessian
+  USE chem_gasphase_mod_Stoichiom
+  USE chem_gasphase_mod_LinearAlgebra
+  USE chem_gasphase_mod_Monitor
+  USE chem_gasphase_mod_Util
+
+END MODULE chem_gasphase_mod_Model
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/chem_gasphase_mod_Monitor.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/chem_gasphase_mod_Monitor.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/chem_gasphase_mod_Monitor.f90	(revision 2696)
@@ -0,0 +1,55 @@
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+! Utility Data Module File
+! 
+! Generated by KPP-2.2.3 symbolic chemistry Kinetics PreProcessor
+!       (http://www.cs.vt.edu/~asandu/Software/KPP)
+! KPP is distributed under GPL, the general public licence
+!       (http://www.gnu.org/copyleft/gpl.html)
+! (C) 1995-1997, V. Damian & A. Sandu, CGRER, Univ. Iowa
+! (C) 1997-2005, A. Sandu, Michigan Tech, Virginia Tech
+!     With important contributions from:
+!        M. Damian, Villanova University, USA
+!        R. Sander, Max-Planck Institute for Chemistry, Mainz, Germany
+! 
+! File                 : chem_gasphase_mod_Monitor.f90
+! Time                 : Fri Dec  1 18:10:53 2017
+! Working directory    : /data/kanani/branches/palm4u/GASPHASE_PREPROC/tmp_kpp4palm
+! Equation file        : chem_gasphase_mod.kpp
+! Output root filename : chem_gasphase_mod
+! 
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+
+MODULE chem_gasphase_mod_Monitor
+
+
+  CHARACTER(LEN=15), PARAMETER, DIMENSION(3) :: SPC_NAMES = (/ &
+     'CO             ','PM10           ','PM25           ' /)
+
+  INTEGER, DIMENSION(1) :: LOOKAT
+  INTEGER, DIMENSION(1) :: MONITOR
+  CHARACTER(LEN=15), DIMENSION(1) :: SMASS
+  CHARACTER(LEN=100), PARAMETER, DIMENSION(3) :: EQN_NAMES = (/ &
+     '  CO --> CO                                                                                         ', &
+     'PM10 --> PM10                                                                                       ', &
+     'PM25 --> PM25                                                                                       ' /)
+
+! INLINED global variables
+
+  !   INLINE F90_DATA: Declaration of global variables for photolysis
+  !   REAL(kind=dp) :: phot(nphot) must eventually be moved to GLOBAL later for 
+  INTEGER, PARAMETER :: nphot = 1
+  !   phot Photolysis frequencies
+  REAL(kind=dp) :: phot(nphot)
+
+  INTEGER, PARAMETER,PUBLIC :: j_no2 = 1
+
+  CHARACTER(LEN=15), PARAMETER, DIMENSION(NPHOT) :: phot_names =  (/ &
+     'J_NO2          '/)
+
+! End INLINED global variables
+
+
+END MODULE chem_gasphase_mod_Monitor
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/chem_gasphase_mod_Parameters.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/chem_gasphase_mod_Parameters.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/chem_gasphase_mod_Parameters.f90	(revision 2696)
@@ -0,0 +1,85 @@
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+! Parameter Module File
+! 
+! Generated by KPP-2.2.3 symbolic chemistry Kinetics PreProcessor
+!       (http://www.cs.vt.edu/~asandu/Software/KPP)
+! KPP is distributed under GPL, the general public licence
+!       (http://www.gnu.org/copyleft/gpl.html)
+! (C) 1995-1997, V. Damian & A. Sandu, CGRER, Univ. Iowa
+! (C) 1997-2005, A. Sandu, Michigan Tech, Virginia Tech
+!     With important contributions from:
+!        M. Damian, Villanova University, USA
+!        R. Sander, Max-Planck Institute for Chemistry, Mainz, Germany
+! 
+! File                 : chem_gasphase_mod_Parameters.f90
+! Time                 : Fri Dec  1 18:10:53 2017
+! Working directory    : /data/kanani/branches/palm4u/GASPHASE_PREPROC/tmp_kpp4palm
+! Equation file        : chem_gasphase_mod.kpp
+! Output root filename : chem_gasphase_mod
+! 
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+
+MODULE chem_gasphase_mod_Parameters
+
+  USE chem_gasphase_mod_Precision
+  PUBLIC
+  SAVE
+
+
+! NSPEC - Number of chemical species
+  INTEGER, PARAMETER :: NSPEC = 3 
+! NVAR - Number of Variable species
+  INTEGER, PARAMETER :: NVAR = 3 
+! NVARACT - Number of Active species
+  INTEGER, PARAMETER :: NVARACT = 3 
+! NFIX - Number of Fixed species
+  INTEGER, PARAMETER :: NFIX = 1 
+! NREACT - Number of reactions
+  INTEGER, PARAMETER :: NREACT = 3 
+! NVARST - Starting of variables in conc. vect.
+  INTEGER, PARAMETER :: NVARST = 1 
+! NFIXST - Starting of fixed in conc. vect.
+  INTEGER, PARAMETER :: NFIXST = 4 
+! NONZERO - Number of nonzero entries in Jacobian
+  INTEGER, PARAMETER :: NONZERO = 3 
+! LU_NONZERO - Number of nonzero entries in LU factoriz. of Jacobian
+  INTEGER, PARAMETER :: LU_NONZERO = 3 
+! CNVAR - (NVAR+1) Number of elements in compressed row format
+  INTEGER, PARAMETER :: CNVAR = 4 
+! CNEQN - (NREACT+1) Number stoicm elements in compressed col format
+  INTEGER, PARAMETER :: CNEQN = 4 
+! NHESS - Length of Sparse Hessian
+  INTEGER, PARAMETER :: NHESS = 1 
+! NLOOKAT - Number of species to look at
+  INTEGER, PARAMETER :: NLOOKAT = 0 
+! NMONITOR - Number of species to monitor
+  INTEGER, PARAMETER :: NMONITOR = 0 
+! NMASS - Number of atoms to check mass balance
+  INTEGER, PARAMETER :: NMASS = 1 
+
+! Index declaration for variable species in C and VAR
+!   VAR(ind_spc) = C(ind_spc)
+
+  INTEGER, PARAMETER :: ind_CO = 1 
+  INTEGER, PARAMETER :: ind_PM10 = 2 
+  INTEGER, PARAMETER :: ind_PM25 = 3 
+
+! Index declaration for fixed species in C
+!   C(ind_spc)
+
+
+! Index declaration for fixed species in FIX
+!    FIX(indf_spc) = C(ind_spc) = C(NVAR+indf_spc)
+
+
+! NJVRP - Length of sparse Jacobian JVRP
+  INTEGER, PARAMETER :: NJVRP = 3 
+
+! NSTOICM - Length of Sparse Stoichiometric Matrix
+  INTEGER, PARAMETER :: NSTOICM = 1 
+
+END MODULE chem_gasphase_mod_Parameters
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/chem_gasphase_mod_Precision.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/chem_gasphase_mod_Precision.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/chem_gasphase_mod_Precision.f90	(revision 2696)
@@ -0,0 +1,17 @@
+
+MODULE chem_gasphase_mod_Precision
+
+!
+! Definition of different levels of accuracy
+! for REAL variables using KIND parameterization
+!
+! KPP SP - Single precision kind
+  INTEGER, PARAMETER :: sp = SELECTED_REAL_KIND(6,30)
+! KPP DP - Double precision kind
+  INTEGER, PARAMETER :: dp = SELECTED_REAL_KIND(14,300)
+! KPP QP - Quadruple precision kind
+  INTEGER, PARAMETER :: qp = SELECTED_REAL_KIND(18,400)
+
+END MODULE chem_gasphase_mod_Precision
+
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/chem_gasphase_mod_Rates.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/chem_gasphase_mod_Rates.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/chem_gasphase_mod_Rates.f90	(revision 2696)
@@ -0,0 +1,241 @@
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+! The Reaction Rates File
+! 
+! Generated by KPP-2.2.3 symbolic chemistry Kinetics PreProcessor
+!       (http://www.cs.vt.edu/~asandu/Software/KPP)
+! KPP is distributed under GPL, the general public licence
+!       (http://www.gnu.org/copyleft/gpl.html)
+! (C) 1995-1997, V. Damian & A. Sandu, CGRER, Univ. Iowa
+! (C) 1997-2005, A. Sandu, Michigan Tech, Virginia Tech
+!     With important contributions from:
+!        M. Damian, Villanova University, USA
+!        R. Sander, Max-Planck Institute for Chemistry, Mainz, Germany
+! 
+! File                 : chem_gasphase_mod_Rates.f90
+! Time                 : Fri Dec  1 18:10:53 2017
+! Working directory    : /data/kanani/branches/palm4u/GASPHASE_PREPROC/tmp_kpp4palm
+! Equation file        : chem_gasphase_mod.kpp
+! Output root filename : chem_gasphase_mod
+! 
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+
+MODULE chem_gasphase_mod_Rates
+
+  USE chem_gasphase_mod_Parameters
+  USE chem_gasphase_mod_Global
+  IMPLICIT NONE
+
+CONTAINS
+
+
+
+! Begin Rate Law Functions from KPP_HOME/util/UserRateLaws
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!  User-defined Rate Law functions
+!  Note: the default argument type for rate laws, as read from the equations file, is single precision
+!        but all the internal calculations are performed in double precision
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+! RFo: IMPORTANT: Comments must ALWAYS stand BEFORE the code to be processed
+!
+!      This is just the working copy of UserRateLaws.f90 which is actually used. 
+!      It is copied from GASPASE_PREPROC/mechanisms/UserRateLaws.f90 to kpp/util/UserRateLaws.f90
+!      each time when run_kpp4palm.ksh is run. 
+
+
+!~~~>  Arrhenius
+   REAL(kind=dp) FUNCTION ARR( A0,B0,C0 )
+      REAL A0,B0,C0      
+      ARR =  DBLE(A0) * EXP(-DBLE(B0)/TEMP) * (TEMP/300.0_dp)**DBLE(C0)
+   END FUNCTION ARR        
+
+
+!~~~> Simplified Arrhenius, with two arguments, fixed TEMP=20 deg C
+!~~~> Note: The argument B0 has a changed sign when compared to ARR
+!
+!~~~> Simplified Arrhenius, with two arguments
+! RFo: same as above, but with TEMP in parameter list and _dp
+!  REAL(kind=dp) (kind=dp) FUNCTION ARR2( A0, B0 )
+!     REAL (kind=dp) A0,B0
+!     ARR2 =  A0 * EXP( B0 / 20.0_dp )
+!  END FUNCTION ARR2
+REAL(kind=dp) FUNCTION ARR2( a0, b0, temp )
+    REAL(kind=dp) :: temp
+    REAL(kind=dp) :: a0,b0
+    ARR2 = a0 * EXP( -b0 / temp )
+END FUNCTION ARR2
+
+
+   REAL(kind=dp) FUNCTION EP2(A0,C0,A2,C2,A3,C3)
+      REAL A0,C0,A2,C2,A3,C3
+      REAL(kind=dp) K0,K2,K3            
+      K0 = DBLE(A0) * EXP(-DBLE(C0)/TEMP)
+      K2 = DBLE(A2) * EXP(-DBLE(C2)/TEMP)
+      K3 = DBLE(A3) * EXP(-DBLE(C3)/TEMP)
+      K3 = K3*CFACTOR*1.0E6_dp
+      EP2 = K0 + K3/(1.0_dp+K3/K2 )
+   END FUNCTION EP2
+
+   REAL(kind=dp) FUNCTION EP3(A1,C1,A2,C2) 
+      REAL A1, C1, A2, C2
+      REAL(kind=dp) K1, K2      
+      K1 = DBLE(A1) * EXP(-DBLE(C1)/TEMP)
+      K2 = DBLE(A2) * EXP(-DBLE(C2)/TEMP)
+      EP3 = K1 + K2*(1.0E6_dp*CFACTOR)
+   END FUNCTION EP3 
+
+   REAL(kind=dp) FUNCTION FALL ( A0,B0,C0,A1,B1,C1,CF)
+      REAL A0,B0,C0,A1,B1,C1,CF
+      REAL(kind=dp) K0, K1     
+      K0 = DBLE(A0) * EXP(-DBLE(B0)/TEMP)* (TEMP/300.0_dp)**DBLE(C0)
+      K1 = DBLE(A1) * EXP(-DBLE(B1)/TEMP)* (TEMP/300.0_dp)**DBLE(C1)
+      K0 = K0*CFACTOR*1.0E6_dp
+      K1 = K0/K1
+      FALL = (K0/(1.0_dp+K1))*   &
+           DBLE(CF)**(1.0_dp/(1.0_dp+(LOG10(K1))**2))
+   END FUNCTION FALL
+
+  !---------------------------------------------------------------------------
+
+  ELEMENTAL REAL(kind=dp) FUNCTION k_3rd(temp,cair,k0_300K,n,kinf_300K,m,fc)
+
+    INTRINSIC LOG10
+
+    REAL(kind=dp), INTENT(IN) :: temp      ! temperature [K]
+    REAL(kind=dp), INTENT(IN) :: cair      ! air concentration [molecules/cm3]
+    REAL, INTENT(IN) :: k0_300K   ! low pressure limit at 300 K
+    REAL, INTENT(IN) :: n         ! exponent for low pressure limit
+    REAL, INTENT(IN) :: kinf_300K ! high pressure limit at 300 K
+    REAL, INTENT(IN) :: m         ! exponent for high pressure limit
+    REAL, INTENT(IN) :: fc        ! broadening factor (usually fc=0.6)
+    REAL(kind=dp) :: zt_help, k0_T, kinf_T, k_ratio
+
+    zt_help = 300._dp/temp
+    k0_T    = k0_300K   * zt_help**(n) * cair ! k_0   at current T
+    kinf_T  = kinf_300K * zt_help**(m)        ! k_inf at current T
+    k_ratio = k0_T/kinf_T
+    k_3rd   = k0_T/(1._dp+k_ratio)*fc**(1._dp/(1._dp+LOG10(k_ratio)**2))
+
+  END FUNCTION k_3rd
+
+  !---------------------------------------------------------------------------
+
+  ELEMENTAL REAL(kind=dp) FUNCTION k_arr (k_298,tdep,temp)
+    ! Arrhenius function
+
+    REAL,     INTENT(IN) :: k_298 ! k at T = 298.15K
+    REAL,     INTENT(IN) :: tdep  ! temperature dependence
+    REAL(kind=dp), INTENT(IN) :: temp  ! temperature
+
+    INTRINSIC EXP
+
+    k_arr = k_298 * EXP(tdep*(1._dp/temp-3.3540E-3_dp)) ! 1/298.15=3.3540e-3
+
+  END FUNCTION k_arr
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!  End of User-defined Rate Law functions
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+! End Rate Law Functions from KPP_HOME/util/UserRateLaws
+
+
+! Begin INLINED Rate Law Functions
+
+
+! End INLINED Rate Law Functions
+
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+! Update_SUN - update SUN light using TIME
+!   Arguments :
+! 
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  SUBROUTINE Update_SUN()
+      !USE chem_gasphase_mod_Parameters
+      !USE chem_gasphase_mod_Global
+
+    IMPLICIT NONE
+
+    REAL(kind=dp) :: SunRise, SunSet
+    REAL(kind=dp) :: Thour, Tlocal, Ttmp 
+    ! PI - Value of pi
+    REAL(kind=dp), PARAMETER :: PI = 3.14159265358979d0
+    
+    SunRise = 4.5_dp 
+    SunSet  = 19.5_dp 
+    Thour = TIME/3600.0_dp 
+    Tlocal = Thour - (INT(Thour)/24)*24
+
+    IF ((Tlocal>=SunRise).AND.(Tlocal<=SunSet)) THEN
+       Ttmp = (2.0*Tlocal-SunRise-SunSet)/(SunSet-SunRise)
+       IF (Ttmp.GT.0) THEN
+          Ttmp =  Ttmp*Ttmp
+       ELSE
+          Ttmp = -Ttmp*Ttmp
+       END IF
+       SUN = ( 1.0_dp + COS(PI*Ttmp) )/2.0_dp 
+    ELSE
+       SUN = 0.0_dp 
+    END IF
+
+ END SUBROUTINE Update_SUN
+
+! End of Update_SUN function
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+! Update_RCONST - function to update rate constants
+!   Arguments :
+! 
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+SUBROUTINE Update_RCONST ( )
+
+
+
+
+! Begin INLINED RCONST
+
+
+! End INLINED RCONST
+
+  RCONST(1) = (1.0_wp)
+  RCONST(2) = (1.0_wp)
+  RCONST(3) = (1.0_wp)
+      
+END SUBROUTINE Update_RCONST
+
+! End of Update_RCONST function
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+! Update_PHOTO - function to update photolytical rate constants
+!   Arguments :
+! 
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+SUBROUTINE Update_PHOTO ( )
+
+
+   USE chem_gasphase_mod_Global
+
+      
+END SUBROUTINE Update_PHOTO
+
+! End of Update_PHOTO function
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+
+END MODULE chem_gasphase_mod_Rates
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/chem_gasphase_mod_Stoichiom.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/chem_gasphase_mod_Stoichiom.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/chem_gasphase_mod_Stoichiom.f90	(revision 2696)
@@ -0,0 +1,222 @@
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+! The Stoichiometric Chemical Model File
+! 
+! Generated by KPP-2.2.3 symbolic chemistry Kinetics PreProcessor
+!       (http://www.cs.vt.edu/~asandu/Software/KPP)
+! KPP is distributed under GPL, the general public licence
+!       (http://www.gnu.org/copyleft/gpl.html)
+! (C) 1995-1997, V. Damian & A. Sandu, CGRER, Univ. Iowa
+! (C) 1997-2005, A. Sandu, Michigan Tech, Virginia Tech
+!     With important contributions from:
+!        M. Damian, Villanova University, USA
+!        R. Sander, Max-Planck Institute for Chemistry, Mainz, Germany
+! 
+! File                 : chem_gasphase_mod_Stoichiom.f90
+! Time                 : Fri Dec  1 18:10:53 2017
+! Working directory    : /data/kanani/branches/palm4u/GASPHASE_PREPROC/tmp_kpp4palm
+! Equation file        : chem_gasphase_mod.kpp
+! Output root filename : chem_gasphase_mod
+! 
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+
+MODULE chem_gasphase_mod_Stoichiom
+
+  USE chem_gasphase_mod_Parameters
+  USE chem_gasphase_mod_StoichiomSP
+
+  IMPLICIT NONE
+
+CONTAINS
+
+
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+! ReactantProd - Reactant Products in each equation
+!   Arguments :
+!      V         - Concentrations of variable species (local)
+!      F         - Concentrations of fixed species (local)
+!      ARP       - Reactant product in each equation
+! 
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+SUBROUTINE ReactantProd ( V, F, ARP )
+
+! V - Concentrations of variable species (local)
+  REAL(kind=dp) :: V(NVAR)
+! F - Concentrations of fixed species (local)
+  REAL(kind=dp) :: F(NFIX)
+! ARP - Reactant product in each equation
+  REAL(kind=dp) :: ARP(NREACT)
+
+
+! Reactant Products in each equation are useful in the
+!     stoichiometric formulation of mass action law
+  ARP(1) = V(1)
+  ARP(2) = V(2)
+  ARP(3) = V(3)
+      
+END SUBROUTINE ReactantProd
+
+! End of ReactantProd function
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+! JacReactantProd - Jacobian of Reactant Products vector
+!   Arguments :
+!      V         - Concentrations of variable species (local)
+!      F         - Concentrations of fixed species (local)
+!      JVRP      - d ARP(1:NREACT)/d VAR (1:NVAR)
+! 
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+SUBROUTINE JacReactantProd ( V, F, JVRP )
+
+! V - Concentrations of variable species (local)
+  REAL(kind=dp) :: V(NVAR)
+! F - Concentrations of fixed species (local)
+  REAL(kind=dp) :: F(NFIX)
+! JVRP - d ARP(1:NREACT)/d VAR (1:NVAR)
+  REAL(kind=dp) :: JVRP(NJVRP)
+
+
+! Reactant Products in each equation are useful in the
+!    stoichiometric formulation of mass action law
+! Below we compute the Jacobian of the Reactant Products vector
+!    w.r.t. variable species: d ARP(1:NREACT) / d Var(1:NVAR)
+
+! JVRP(1) = dARP(1)/dV(1)
+  JVRP(1) = 1
+! JVRP(2) = dARP(2)/dV(2)
+  JVRP(2) = 1
+! JVRP(3) = dARP(3)/dV(3)
+  JVRP(3) = 1
+      
+END SUBROUTINE JacReactantProd
+
+! End of JacReactantProd function
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+
+! Begin Derivative w.r.t. Rate Coefficients
+
+! ------------------------------------------------------------------------------
+! Subroutine for the derivative of Fun with respect to rate coefficients
+! -----------------------------------------------------------------------------
+
+      SUBROUTINE  dFun_dRcoeff( V, F, NCOEFF, JCOEFF, DFDR )
+       
+      USE chem_gasphase_mod_Parameters
+      USE chem_gasphase_mod_StoichiomSP
+      IMPLICIT NONE 
+
+! V - Concentrations of variable/radical/fixed species            
+      REAL(kind=dp) V(NVAR), F(NFIX)
+! NCOEFF - the number of rate coefficients with respect to which we differentiate
+      INTEGER NCOEFF       
+! JCOEFF - a vector of integers containing the indices of reactions (rate
+!          coefficients) with respect to which we differentiate
+      INTEGER JCOEFF(NCOEFF)       
+! DFDR  - a matrix containg derivative values; specifically, 
+!         column j contains d Fun(1:NVAR) / d RCT( JCOEFF(j) )
+!         for each 1 <= j <= NCOEFF
+!         This matrix is stored in a column-wise linearized format
+      REAL(kind=dp) DFDR(NVAR*NCOEFF)
+
+! Local vector with reactant products
+      REAL(kind=dp) A_RPROD(NREACT)
+      REAL(kind=dp) aj
+      INTEGER i,j,k
+      
+! Compute the reactant products of all reactions     
+      CALL ReactantProd ( V, F, A_RPROD )
+
+! Compute the derivatives by multiplying column JCOEFF(j) of the stoichiometric matrix with A_RPROD       
+      DO j=1,NCOEFF
+!                  Initialize the j-th column of derivative matrix to zero       
+         DO i=1,NVAR
+           DFDR(i+NVAR*(j-1)) = 0.0_dp 
+         END DO
+!                  Column JCOEFF(j) in the stoichiometric matrix times the
+!                  reactant product  of the JCOEFF(j)-th reaction      
+!                  give the j-th column of the derivative matrix   
+         aj = A_RPROD(JCOEFF(j))
+         DO k=CCOL_STOICM(JCOEFF(j)),CCOL_STOICM(JCOEFF(j)+1)-1
+           DFDR(IROW_STOICM(k)+NVAR*(j-1)) = STOICM(k)*aj
+         END DO
+      END DO
+      
+      END SUBROUTINE  dFun_dRcoeff
+
+! End Derivative w.r.t. Rate Coefficients
+
+
+! Begin Jacobian Derivative w.r.t. Rate Coefficients
+
+! ------------------------------------------------------------------------------
+! Subroutine for the derivative of Jac with respect to rate coefficients
+! Times a user vector
+! -----------------------------------------------------------------------------
+
+      SUBROUTINE  dJac_dRcoeff( V, F, U, NCOEFF, JCOEFF, DJDR )
+       
+      USE chem_gasphase_mod_Parameters
+      USE chem_gasphase_mod_StoichiomSP
+      IMPLICIT NONE 
+
+! V - Concentrations of variable/fixed species            
+      REAL(kind=dp) V(NVAR), F(NFIX)
+! U - User-supplied Vector           
+      REAL(kind=dp) U(NVAR)
+! NCOEFF - the number of rate coefficients with respect to which we differentiate
+      INTEGER NCOEFF       
+! JCOEFF - a vector of integers containing the indices of reactions (rate
+!          coefficients) with respect to which we differentiate
+      INTEGER JCOEFF(NCOEFF)       
+! DFDR  - a matrix containg derivative values; specifically, 
+!         column j contains d Jac(1:NVAR) / d RCT( JCOEFF(j) ) * U
+!                     for each 1 <= j <= NCOEFF
+!         This matrix is stored in a column-wise linearized format
+      REAL(kind=dp) DJDR(NVAR*NCOEFF)
+
+! Local vector for Jacobian of reactant products
+      REAL(kind=dp) JV_RPROD(NJVRP)
+      REAL(kind=dp) aj
+      INTEGER i,j,k
+      
+! Compute the Jacobian of all reactant products   
+      CALL JacReactantProd( V, F, JV_RPROD )
+
+! Compute the derivatives by multiplying column JCOEFF(j) of the stoichiometric matrix with A_PROD       
+      DO j=1,NCOEFF
+!                  Initialize the j-th column of derivative matrix to zero       
+         DO i=1,NVAR
+           DJDR(i+NVAR*(j-1)) = 0.0_dp
+         END DO
+!                  Column JCOEFF(j) in the stoichiometric matrix times the
+!                  ( Gradient of reactant product of the JCOEFF(j)-th reaction X user vector )    
+!                  give the j-th column of the derivative matrix   
+!
+!          Row JCOEFF(j) of JV_RPROD times the user vector
+         aj = 0.0_dp
+         DO k=CROW_JVRP(JCOEFF(j)),CROW_JVRP(JCOEFF(j)+1)-1
+             aj = aj + JV_RPROD(k)*U(ICOL_JVRP(k))
+         END DO
+!          Column JCOEFF(j) of Stoichiom. matrix times aj         
+         DO k=CCOL_STOICM(JCOEFF(j)),CCOL_STOICM(JCOEFF(j)+1)-1
+           DJDR(IROW_STOICM(k)+NVAR*(j-1)) = STOICM(k)*aj
+         END DO
+      END DO
+      
+      END SUBROUTINE  dJac_dRcoeff
+
+! End Jacobian Derivative w.r.t. Rate Coefficients
+
+
+END MODULE chem_gasphase_mod_Stoichiom
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/chem_gasphase_mod_StoichiomSP.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/chem_gasphase_mod_StoichiomSP.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/chem_gasphase_mod_StoichiomSP.f90	(revision 2696)
@@ -0,0 +1,56 @@
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+! Sparse Stoichiometric Data Structures File
+! 
+! Generated by KPP-2.2.3 symbolic chemistry Kinetics PreProcessor
+!       (http://www.cs.vt.edu/~asandu/Software/KPP)
+! KPP is distributed under GPL, the general public licence
+!       (http://www.gnu.org/copyleft/gpl.html)
+! (C) 1995-1997, V. Damian & A. Sandu, CGRER, Univ. Iowa
+! (C) 1997-2005, A. Sandu, Michigan Tech, Virginia Tech
+!     With important contributions from:
+!        M. Damian, Villanova University, USA
+!        R. Sander, Max-Planck Institute for Chemistry, Mainz, Germany
+! 
+! File                 : chem_gasphase_mod_StoichiomSP.f90
+! Time                 : Fri Dec  1 18:10:53 2017
+! Working directory    : /data/kanani/branches/palm4u/GASPHASE_PREPROC/tmp_kpp4palm
+! Equation file        : chem_gasphase_mod.kpp
+! Output root filename : chem_gasphase_mod
+! 
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+
+MODULE chem_gasphase_mod_StoichiomSP
+
+  USE chem_gasphase_mod_Precision
+  PUBLIC
+  SAVE
+
+
+! Row-compressed sparse data for the Jacobian of reaction products JVRP
+
+  INTEGER, PARAMETER, DIMENSION(4) :: CROW_JVRP = (/ &
+       1,  2,  3,  4 /)
+
+  INTEGER, PARAMETER, DIMENSION(3) :: ICOL_JVRP = (/ &
+       1,  2,  3 /)
+
+  INTEGER, PARAMETER, DIMENSION(3) :: IROW_JVRP = (/ &
+       1,  2,  3 /)
+
+
+
+!  Stoichiometric Matrix in Compressed Column Sparse Format
+
+
+  INTEGER, PARAMETER, DIMENSION(4) :: CCOL_STOICM = (/ &
+       1,  1,  1,  1 /)
+
+  INTEGER, DIMENSION(1) :: IROW_STOICM
+  INTEGER, DIMENSION(1) :: ICOL_STOICM
+  REAL(kind=dp), DIMENSION(1) :: STOICM
+
+END MODULE chem_gasphase_mod_StoichiomSP
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/chem_gasphase_mod_Util.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/chem_gasphase_mod_Util.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/chem_gasphase_mod_Util.f90	(revision 2696)
@@ -0,0 +1,227 @@
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+! Auxiliary Routines File
+! 
+! Generated by KPP-2.2.3 symbolic chemistry Kinetics PreProcessor
+!       (http://www.cs.vt.edu/~asandu/Software/KPP)
+! KPP is distributed under GPL, the general public licence
+!       (http://www.gnu.org/copyleft/gpl.html)
+! (C) 1995-1997, V. Damian & A. Sandu, CGRER, Univ. Iowa
+! (C) 1997-2005, A. Sandu, Michigan Tech, Virginia Tech
+!     With important contributions from:
+!        M. Damian, Villanova University, USA
+!        R. Sander, Max-Planck Institute for Chemistry, Mainz, Germany
+! 
+! File                 : chem_gasphase_mod_Util.f90
+! Time                 : Fri Dec  1 18:10:53 2017
+! Working directory    : /data/kanani/branches/palm4u/GASPHASE_PREPROC/tmp_kpp4palm
+! Equation file        : chem_gasphase_mod.kpp
+! Output root filename : chem_gasphase_mod
+! 
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+
+MODULE chem_gasphase_mod_Util
+
+  USE chem_gasphase_mod_Parameters
+  IMPLICIT NONE
+
+CONTAINS
+
+
+
+! User INLINED Utility Functions
+
+! End INLINED Utility Functions
+
+! Utility Functions from KPP_HOME/util/util
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+! UTIL - Utility functions
+!   Arguments :
+! 
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+! ****************************************************************
+!                            
+! InitSaveData - Opens the data file for writing
+!   Parameters :                                                  
+!
+! ****************************************************************
+
+      SUBROUTINE InitSaveData ()
+
+      USE chem_gasphase_mod_Parameters
+
+      open(10, file='chem_gasphase_mod.dat')
+
+      END SUBROUTINE InitSaveData
+
+! End of InitSaveData function
+! ****************************************************************
+
+! ****************************************************************
+!                            
+! SaveData - Write LOOKAT species in the data file 
+!   Parameters :                                                  
+!
+! ****************************************************************
+
+      SUBROUTINE SaveData ()
+
+      USE chem_gasphase_mod_Global
+      USE chem_gasphase_mod_Monitor
+
+      INTEGER i
+
+      WRITE(10,999) (TIME-TSTART)/3600.D0,  &
+                   (C(LOOKAT(i))/CFACTOR, i=1,NLOOKAT)
+999   FORMAT(E24.16,100(1X,E24.16))
+
+      END SUBROUTINE SaveData
+
+! End of SaveData function
+! ****************************************************************
+
+! ****************************************************************
+!                            
+! CloseSaveData - Close the data file 
+!   Parameters :                                                  
+!
+! ****************************************************************
+
+      SUBROUTINE CloseSaveData ()
+
+      USE chem_gasphase_mod_Parameters
+
+      CLOSE(10)
+
+      END SUBROUTINE CloseSaveData
+
+! End of CloseSaveData function
+! ****************************************************************
+
+! ****************************************************************
+!                            
+! GenerateMatlab - Generates MATLAB file to load the data file 
+!   Parameters : 
+!                It will have a character string to prefix each 
+!                species name with.                                                 
+!
+! ****************************************************************
+
+      SUBROUTINE GenerateMatlab ( PREFIX )
+
+      USE chem_gasphase_mod_Parameters
+      USE chem_gasphase_mod_Global
+      USE chem_gasphase_mod_Monitor
+
+      
+      CHARACTER(LEN=8) PREFIX 
+      INTEGER i
+
+      open(20, file='chem_gasphase_mod.m')
+      write(20,*) 'load chem_gasphase_mod.dat;'
+      write(20,990) PREFIX
+990   FORMAT(A1,'c = chem_gasphase_mod;')
+      write(20,*) 'clear chem_gasphase_mod;'
+      write(20,991) PREFIX, PREFIX
+991   FORMAT(A1,'t=',A1,'c(:,1);')
+      write(20,992) PREFIX
+992   FORMAT(A1,'c(:,1)=[];')
+
+      do i=1,NLOOKAT
+        write(20,993) PREFIX, SPC_NAMES(LOOKAT(i)), PREFIX, i
+993     FORMAT(A1,A6,' = ',A1,'c(:,',I2,');')
+      end do
+      
+      CLOSE(20)
+
+      END SUBROUTINE GenerateMatlab
+
+! End of GenerateMatlab function
+! ****************************************************************
+
+
+! End Utility Functions from KPP_HOME/util/util
+! End of UTIL function
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+! Shuffle_user2kpp - function to copy concentrations from USER to KPP
+!   Arguments :
+!      V_USER    - Concentration of variable species in USER's order
+!      V         - Concentrations of variable species (local)
+! 
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+SUBROUTINE Shuffle_user2kpp ( V_USER, V )
+
+! V_USER - Concentration of variable species in USER's order
+  REAL(kind=dp) :: V_USER(NVAR)
+! V - Concentrations of variable species (local)
+  REAL(kind=dp) :: V(NVAR)
+
+  V(1) = V_USER(1)
+  V(2) = V_USER(2)
+      
+END SUBROUTINE Shuffle_user2kpp
+
+! End of Shuffle_user2kpp function
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+! Shuffle_kpp2user - function to restore concentrations from KPP to USER
+!   Arguments :
+!      V         - Concentrations of variable species (local)
+!      V_USER    - Concentration of variable species in USER's order
+! 
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+SUBROUTINE Shuffle_kpp2user ( V, V_USER )
+
+! V - Concentrations of variable species (local)
+  REAL(kind=dp) :: V(NVAR)
+! V_USER - Concentration of variable species in USER's order
+  REAL(kind=dp) :: V_USER(NVAR)
+
+  V_USER(1) = V(1)
+  V_USER(2) = V(2)
+      
+END SUBROUTINE Shuffle_kpp2user
+
+! End of Shuffle_kpp2user function
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+! GetMass - compute total mass of selected atoms
+!   Arguments :
+!      CL        - Concentration of all species (local)
+!      Mass      - value of mass balance
+! 
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+SUBROUTINE GetMass ( CL, Mass )
+
+! CL - Concentration of all species (local)
+  REAL(kind=dp) :: CL(NSPEC)
+! Mass - value of mass balance
+  REAL(kind=dp) :: Mass(1)
+
+      
+END SUBROUTINE GetMass
+
+! End of GetMass function
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+
+END MODULE chem_gasphase_mod_Util
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/chem_gasphase_mod_mex_Fun.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/chem_gasphase_mod_mex_Fun.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/chem_gasphase_mod_mex_Fun.f90	(revision 2696)
@@ -0,0 +1,45 @@
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE mexFunction( nlhs, plhs, nrhs, prhs )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!                 Matlab Gateway for the Derivative Function Fun
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+ USE chem_gasphase_mod_Model
+
+      INTEGER nlhs, nrhs
+      INTEGER plhs(*), prhs(*)
+      INTEGER mxGetPr, mxCreateFull, mxGetM, mxgetN
+      INTEGER VPtr, FPtr, RPtr, VdotPtr
+      REAL(kind=dp) V(3), F(0), RCT(3)
+      REAL(kind=dp) Vdot(3)
+
+! Check for the right number of input arguments
+      IF ( nrhs .ne. 3 ) THEN
+         CALL mexErrMsgTxt('Fun requires 3 input vectors: &
+     &V(3), F(0), RCT(3)')
+      END IF 
+! Check for the right number of output arguments
+      IF ( nlhs .ne. 1 ) THEN
+         CALL mexErrMsgTxt('Fun requires 1 output vector: &
+     &Vdot(3)')
+      END IF 
+
+      plhs(1) = mxCreateDoubleMatrix(3,1,0)
+
+      VPtr = mxGetPr(prhs(1))
+      CALL mxCopyPtrToReal8(VPtr,V,3)
+      
+      FPtr = mxGetPr(prhs(2))
+      CALL mxCopyPtrToReal8(FPtr,F,0)
+      
+      RPtr = mxGetPr(prhs(3))
+      CALL mxCopyPtrToReal8(RPtr,RCT,3)
+
+      VdotPtr = mxGetPr(plhs(1))
+
+      CALL Fun( V, F, RCT, Vdot )
+
+      CALL mxCopyReal8ToPtr(Vdot, VdotPtr, 3)
+
+ END SUBROUTINE mexFunction
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/chem_gasphase_mod_mex_Hessian.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/chem_gasphase_mod_mex_Hessian.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/chem_gasphase_mod_mex_Hessian.f90	(revision 2696)
@@ -0,0 +1,45 @@
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE mexFunction( nlhs, plhs, nrhs, prhs )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!                  Matlab Gateway for the Function Hessian
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+ USE chem_gasphase_mod_Model
+
+      INTEGER nlhs, nrhs
+      INTEGER plhs(*), prhs(*)
+      INTEGER mxGetPr, mxCreateFull, mxGetM, mxgetN
+      INTEGER VPtr, FPtr, RPtr, HESSPtr
+      REAL(kind=dp) V(3), F(0), RCT(3)
+      REAL(kind=dp) HESS(0)
+
+! Check for the right number of input arguments
+      IF ( nrhs .ne. 3 ) THEN
+         CALL mexErrMsgTxt('Hessian requires 3 input vectors: &
+     &V(3), F(0), RCT(3)')
+      END IF 
+! Check for the right number of output arguments
+      IF ( nlhs .ne. 1 ) THEN
+         CALL mexErrMsgTxt('Hessian requires 1 output vector: &
+     &HESS(0)')
+      END IF 
+
+      plhs(1) = mxCreateDoubleMatrix(0,1,0)
+
+      VPtr = mxGetPr(prhs(1));
+      CALL mxCopyPtrToReal8(VPtr,V,3)
+      
+      FPtr = mxGetPr(prhs(2));
+      CALL mxCopyPtrToReal8(FPtr,F,0)
+      
+      RPtr = mxGetPr(prhs(3));
+      CALL mxCopyPtrToReal8(RPtr,RCT,3)
+
+      HESSPtr = mxGetPr(plhs(1))
+
+      CALL Hessian( V, F, RCT, HESS )
+
+      CALL mxCopyReal8ToPtr(HESS, HESSPtr, 0)
+
+ END SUBROUTINE mexFunction
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/chem_gasphase_mod_mex_Jac_SP.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/chem_gasphase_mod_mex_Jac_SP.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/chem_gasphase_mod_mex_Jac_SP.f90	(revision 2696)
@@ -0,0 +1,44 @@
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE mexFunction( nlhs, plhs, nrhs, prhs )
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!          Matlab Gateway for the Sparse Jacobian Function Jac_SP
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+ USE chem_gasphase_mod_Model
+
+      INTEGER nlhs, nrhs
+      INTEGER plhs(*), prhs(*)
+      INTEGER mxGetPr, mxCreateFull, mxGetM, mxgetN
+      INTEGER VPtr, FPtr, RPtr, JVSPtr
+      REAL(kind=dp) V(3), F(0), RCT(3)
+      REAL(kind=dp) JVS(3)
+
+! Check for the right number of input arguments
+      IF ( nrhs .ne. 3 ) THEN
+         CALL mexErrMsgTxt('Jac_SP requires 3 input vectors: &
+     &V(3), F(0), RCT(3)')
+      END IF 
+! Check for the right number of output arguments
+      IF ( nlhs .ne. 1 ) THEN
+         CALL mexErrMsgTxt('Jac_SP requires 1 output vector: &
+     &JVS(3)')
+      END IF 
+
+      plhs(1) = mxCreateDoubleMatrix(3,1,0)
+
+      VPtr = mxGetPr(prhs(1))
+      CALL mxCopyPtrToReal8(VPtr,V,3)
+      
+      FPtr = mxGetPr(prhs(2))
+      CALL mxCopyPtrToReal8(FPtr,F,0)
+      
+      RPtr = mxGetPr(prhs(3))
+      CALL mxCopyPtrToReal8(RPtr,RCT,3)
+
+      JVSPtr = mxGetPr(plhs(1))
+
+      CALL Jac_SP( V, F, RCT, JVS )
+
+      CALL mxCopyReal8ToPtr(JVS, JVSPtr, 3)
+
+ END SUBROUTINE mexFunction
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/file_list
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/file_list	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/file_list	(revision 2696)
@@ -0,0 +1,8 @@
+chem_gasphase_mod_Initialize
+chem_gasphase_mod_Integrator
+chem_gasphase_mod_LinearAlgebra
+chem_gasphase_mod_Jacobian
+chem_gasphase_mod_Function
+chem_gasphase_mod_Rates
+chem_gasphase_mod_Util
+initialize_kpp_ctrl_template
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/include_list
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/include_list	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/include_list	(revision 2696)
@@ -0,0 +1,4 @@
+chem_gasphase_mod_Parameters
+chem_gasphase_mod_Global
+chem_gasphase_mod_JacobianSP
+chem_gasphase_mod_Monitor
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/initialize_kpp_ctrl_template.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/initialize_kpp_ctrl_template.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/initialize_kpp_ctrl_template.f90	(revision 2696)
@@ -0,0 +1,100 @@
+MODULE initialize_kpp_ctrl_template
+
+  ! HEADER MODULE initialize_kpp_ctrl_template
+
+  ! NOTES:
+  ! - L_VECTOR is automatically defined by kp4
+  ! - VL_DIM is automatically defined by kp4
+  ! - I_LU_DI is automatically defined by kp4
+  ! - WANTED is automatically defined by xmecca
+  ! - ICNTRL RCNTRL are automatically defined by kpp
+  ! - "USE messy_main_tools" is in Module_header of messy_mecca_kpp.f90
+  ! - SAVE will be automatically added by kp4
+
+  IMPLICIT NONE
+  !SAVE
+
+  ! FOR FIXED TIME STEP CONTROL
+  ! ... max. number of fixed time steps (sum must be 1)
+  INTEGER, PARAMETER         :: NMAXFIXSTEPS = 50
+  ! ... switch for fixed time stepping
+  LOGICAL, PUBLIC            :: l_fixed_step = .FALSE.
+  INTEGER, PUBLIC            :: nfsteps = 1
+  ! ... number of kpp control parameters
+  INTEGER, PARAMETER, PUBLIC :: NKPPCTRL = 20
+  !
+  INTEGER,  DIMENSION(NKPPCTRL), PUBLIC     :: icntrl = 0
+  REAL(DP), DIMENSION(NKPPCTRL), PUBLIC     :: rcntrl = 0.0_dp
+  REAL(DP), DIMENSION(NMAXFIXSTEPS), PUBLIC :: t_steps = 0.0_dp
+
+  ! END HEADER MODULE initialize_kpp_ctrl_template
+
+CONTAINS
+
+SUBROUTINE initialize_kpp_ctrl(status, iou, modstr)
+
+  IMPLICIT NONE
+
+  ! I/O
+  INTEGER,          INTENT(OUT) :: status
+  INTEGER,          INTENT(IN)  :: iou     ! logical I/O unit
+  CHARACTER(LEN=*), INTENT(IN)  :: modstr  ! read <modstr>.nml
+
+  ! LOCAL
+  REAL(DP) :: tsum
+  INTEGER  :: i
+
+  ! check fixed time steps
+  tsum = 0.0_dp
+  DO i=1, NMAXFIXSTEPS
+     IF (t_steps(i) < TINY(0.0_DP)) EXIT
+     tsum = tsum + t_steps(i)
+  END DO
+
+  nfsteps = i-1
+
+  l_fixed_step = (nfsteps > 0) .AND. ( (tsum -1.0) < TINY(0.0_DP) )
+
+  IF (L_VECTOR) THEN
+     WRITE(*,*) ' MODE             : VECTOR (LENGTH=',VL_DIM,')'
+  ELSE
+     WRITE(*,*) ' MODE             : SCALAR'
+  END IF
+  !
+  WRITE(*,*) ' DE-INDEXING MODE :',I_LU_DI
+  !
+  WRITE(*,*) ' ICNTRL           : ',icntrl
+  WRITE(*,*) ' RCNTRL           : ',rcntrl
+  !
+  ! NOTE: THIS IS ONLY MEANINGFUL FOR VECTORIZED (kp4) ROSENBROCK-METHODS
+  IF (L_VECTOR) THEN
+     IF (l_fixed_step) THEN
+        WRITE(*,*) ' TIME STEPS       : FIXED (',t_steps(1:nfsteps),')'
+     ELSE
+        WRITE(*,*) ' TIME STEPS       : AUTOMATIC'
+     END IF
+  ELSE
+     WRITE(*,*) ' TIME STEPS       : AUTOMATIC '//&
+          &'(t_steps (CTRL_KPP) ignored in SCALAR MODE)'
+  END IF
+  ! mz_pj_20070531-
+
+  status = 0
+
+
+END SUBROUTINE initialize_kpp_ctrl
+
+SUBROUTINE error_output(C,ierr,PE)
+
+  IMPLICIT NONE
+
+  INTEGER, INTENT(IN) :: ierr
+  INTEGER, INTENT(IN) :: PE
+  REAL(dp), DIMENSION(:),INTENT(IN) :: C
+
+  write(6,*) 'ERROR in chem_gasphase_mod ',ierr,C(1)
+
+
+END SUBROUTINE error_output
+
+END MODULE initialize_kpp_ctrl_template
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/interface_ignore_list
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/interface_ignore_list	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/interface_ignore_list	(revision 2696)
@@ -0,0 +1,2 @@
+waxpy
+wcopy
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/kk_kpp.f90
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/kk_kpp.f90	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/kk_kpp.f90	(revision 2696)
@@ -0,0 +1,2446 @@
+MODULE chem_gasphase_mod
+ 
+!------------------------------------------------------------------------------!
+!
+! ******Module chem_gasphase_mod is automatically generated by kpp4palm ******
+!
+!           *********Please do NOT change this Code *********
+!
+!------------------------------------------------------------------------------!
+! This file is part of PALM.
+!
+! PALM is free software: you can redistribute it and/or modify it under the
+! terms of the GNU General Public License as published by the Free Software
+! Foundation,either version 3 of the License,or (at your option) any later
+! version.
+!
+! PALM is distributed in the hope that it will be useful,but WITHOUT ANY
+! WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+! A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+!
+! You should have received a copy of the GNU General Public License along with
+! PALM. If not,see <http://www.gnu.org/licenses/>.
+!
+! Copyright 1997-2017 Leibniz Universitaet Hannover
+!--------------------------------------------------------------------------------!
+!
+! Current revisions:
+! ------------------
+! 
+! 
+! Former revisions:
+! -----------------
+! $Id: module_header 2460 2017-09-13 14:47:48Z forkel $
+!
+! 
+! Variables for photolyis added
+!
+!
+!
+!
+!
+! Nov. 2016: Intial version (Klaus Ketelsen)
+!
+!------------------------------------------------------------------------------!
+!
+
+
+! Set kpp Double Precision to PALM Default Precision
+
+  USE kinds,           ONLY: dp=>wp
+
+  USE pegrid,          ONLY: myid,threads_per_task
+
+  IMPLICIT        NONE
+  PRIVATE
+  !SAVE  ! NOTE: OCCURS AGAIN IN AUTOMATICALLY GENERATED CODE ...
+
+!  PUBLIC :: IERR_NAMES
+ 
+! PUBLIC :: SPC_NAMES,EQN_NAMES,EQN_TAGS,REQ_HET,REQ_AEROSOL,REQ_PHOTRAT &
+!         ,REQ_MCFCT,IP_MAX,jname
+
+  PUBLIC :: eqn_names, phot_names,spc_names
+  PUBLIC :: nmaxfixsteps
+  PUBLIC :: atol,rtol
+  PUBLIC :: nspec,nreact
+  PUBLIC :: temp
+  PUBLIC :: phot 
+  PUBLIC :: rconst
+  PUBLIC :: nvar
+  PUBLIC :: nphot
+ 
+  PUBLIC :: initialize,integrate,update_rconst
+  PUBLIC :: chem_gasphase_integrate
+  PUBLIC :: initialize_kpp_ctrl
+
+! END OF MODULE HEADER TEMPLATE
+                                                                 
+! Variables used for vector mode                                 
+                                                                 
+  LOGICAL, PARAMETER          :: l_vector = .FALSE.            
+  INTEGER, PARAMETER          :: i_lu_di = 0
+  INTEGER, PARAMETER          :: vl_dim = 1
+  INTEGER                     :: vl                              
+                                                                 
+  INTEGER                     :: vl_glo                          
+  INTEGER                     :: is,ie                           
+                                                                 
+  INTEGER, DIMENSION(vl_dim)  :: kacc,krej                      
+  INTEGER, DIMENSION(vl_dim)  :: ierrv                           
+  LOGICAL                     :: data_loaded = .false.             
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+! Parameter Module File
+! 
+! Generated by KPP-2.2.3 symbolic chemistry Kinetics PreProcessor
+!       (http://www.cs.vt.edu/~asandu/Software/KPP)
+! KPP is distributed under GPL,the general public licence
+!       (http://www.gnu.org/copyleft/gpl.html)
+! (C) 1995-1997,V. Damian & A. Sandu,CGRER,Univ. Iowa
+! (C) 1997-2005,A. Sandu,Michigan Tech,Virginia Tech
+!     With important contributions from:
+!        M. Damian,Villanova University,USA
+!        R. Sander,Max-Planck Institute for Chemistry,Mainz,Germany
+! 
+! File                 : chem_gasphase_mod_Parameters.f90
+! Time                 : Fri Dec  1 18:10:53 2017
+! Working directory    : /data/kanani/branches/palm4u/GASPHASE_PREPROC/tmp_kpp4palm
+! Equation file        : chem_gasphase_mod.kpp
+! Output root filename : chem_gasphase_mod
+! 
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+
+
+
+
+! NSPEC - Number of chemical species
+  INTEGER,PARAMETER :: nspec = 3 
+! NVAR - Number of Variable species
+  INTEGER,PARAMETER :: nvar = 3 
+! NVARACT - Number of Active species
+  INTEGER,PARAMETER :: nvaract = 3 
+! NFIX - Number of Fixed species
+  INTEGER,PARAMETER :: nfix = 1 
+! NREACT - Number of reactions
+  INTEGER,PARAMETER :: nreact = 3 
+! NVARST - Starting of variables in conc. vect.
+  INTEGER,PARAMETER :: nvarst = 1 
+! NFIXST - Starting of fixed in conc. vect.
+  INTEGER,PARAMETER :: nfixst = 4 
+! NONZERO - Number of nonzero entries in Jacobian
+  INTEGER,PARAMETER :: nonzero = 3 
+! LU_NONZERO - Number of nonzero entries in LU factoriz. of Jacobian
+  INTEGER,PARAMETER :: lu_nonzero = 3 
+! CNVAR - (NVAR+1) Number of elements in compressed row format
+  INTEGER,PARAMETER :: cnvar = 4 
+! CNEQN - (NREACT+1) Number stoicm elements in compressed col format
+  INTEGER,PARAMETER :: cneqn = 4 
+! NHESS - Length of Sparse Hessian
+  INTEGER,PARAMETER :: nhess = 1 
+! NLOOKAT - Number of species to look at
+  INTEGER,PARAMETER :: nlookat = 0 
+! NMONITOR - Number of species to monitor
+  INTEGER,PARAMETER :: nmonitor = 0 
+! NMASS - Number of atoms to check mass balance
+  INTEGER,PARAMETER :: nmass = 1 
+
+! Index declaration for variable species in C and VAR
+!   VAR(ind_spc) = C(ind_spc)
+
+  INTEGER,PARAMETER,PUBLIC :: ind_co = 1 
+  INTEGER,PARAMETER,PUBLIC :: ind_pm10 = 2 
+  INTEGER,PARAMETER,PUBLIC :: ind_pm25 = 3 
+
+! Index declaration for fixed species in C
+!   C(ind_spc)
+
+
+! Index declaration for fixed species in FIX
+!    FIX(indf_spc) = C(ind_spc) = C(NVAR+indf_spc)
+
+
+! NJVRP - Length of sparse Jacobian JVRP
+  INTEGER,PARAMETER :: njvrp = 3 
+
+! NSTOICM - Length of Sparse Stoichiometric Matrix
+  INTEGER,PARAMETER :: nstoicm = 1 
+
+
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+! Global Data Module File
+! 
+! Generated by KPP-2.2.3 symbolic chemistry Kinetics PreProcessor
+!       (http://www.cs.vt.edu/~asandu/Software/KPP)
+! KPP is distributed under GPL,the general public licence
+!       (http://www.gnu.org/copyleft/gpl.html)
+! (C) 1995-1997,V. Damian & A. Sandu,CGRER,Univ. Iowa
+! (C) 1997-2005,A. Sandu,Michigan Tech,Virginia Tech
+!     With important contributions from:
+!        M. Damian,Villanova University,USA
+!        R. Sander,Max-Planck Institute for Chemistry,Mainz,Germany
+! 
+! File                 : chem_gasphase_mod_Global.f90
+! Time                 : Fri Dec  1 18:10:53 2017
+! Working directory    : /data/kanani/branches/palm4u/GASPHASE_PREPROC/tmp_kpp4palm
+! Equation file        : chem_gasphase_mod.kpp
+! Output root filename : chem_gasphase_mod
+! 
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+
+
+
+
+! Declaration of global variables
+
+! C - Concentration of all species
+  REAL(kind=dp):: c(nspec)
+! VAR - Concentrations of variable species (global)
+  REAL(kind=dp):: var(nvar)
+! FIX - Concentrations of fixed species (global)
+  REAL(kind=dp):: fix(nfix)
+! VAR,FIX are chunks of array C
+      equivalence( c(1),var(1))
+! RCONST - Rate constants (global)
+  REAL(kind=dp):: rconst(nreact)
+! TIME - Current integration time
+  REAL(kind=dp):: time
+! SUN - Sunlight intensity between [0,1]
+  REAL(kind=dp):: sun
+! TEMP - Temperature
+  REAL(dp),dimension(:),allocatable             :: temp
+! RTOLS - (scalar) Relative tolerance
+  REAL(kind=dp):: rtols
+! TSTART - Integration start time
+  REAL(kind=dp):: tstart
+! TEND - Integration end time
+  REAL(kind=dp):: tend
+! DT - Integration step
+  REAL(kind=dp):: dt
+! ATOL - Absolute tolerance
+  REAL(kind=dp):: atol(nvar)
+! RTOL - Relative tolerance
+  REAL(kind=dp):: rtol(nvar)
+! STEPMIN - Lower bound for integration step
+  REAL(kind=dp):: stepmin
+! STEPMAX - Upper bound for integration step
+  REAL(kind=dp):: stepmax
+! CFACTOR - Conversion factor for concentration units
+  REAL(kind=dp):: cfactor
+! DDMTYPE - DDM sensitivity w.r.t.: 0=init.val.,1=params
+  INTEGER :: ddmtype
+
+! INLINED global variable declarations
+
+  !   declaration of global variable declarations for photolysis will come from 
+
+! INLINED global variable declarations
+
+
+
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+! Sparse Jacobian Data Structures File
+! 
+! Generated by KPP-2.2.3 symbolic chemistry Kinetics PreProcessor
+!       (http://www.cs.vt.edu/~asandu/Software/KPP)
+! KPP is distributed under GPL,the general public licence
+!       (http://www.gnu.org/copyleft/gpl.html)
+! (C) 1995-1997,V. Damian & A. Sandu,CGRER,Univ. Iowa
+! (C) 1997-2005,A. Sandu,Michigan Tech,Virginia Tech
+!     With important contributions from:
+!        M. Damian,Villanova University,USA
+!        R. Sander,Max-Planck Institute for Chemistry,Mainz,Germany
+! 
+! File                 : chem_gasphase_mod_JacobianSP.f90
+! Time                 : Fri Dec  1 18:10:53 2017
+! Working directory    : /data/kanani/branches/palm4u/GASPHASE_PREPROC/tmp_kpp4palm
+! Equation file        : chem_gasphase_mod.kpp
+! Output root filename : chem_gasphase_mod
+! 
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+
+
+
+
+! Sparse Jacobian Data
+
+
+  INTEGER,PARAMETER,DIMENSION(3):: lu_irow =  (/ &
+       1, 2, 3 /) 
+
+  INTEGER,PARAMETER,DIMENSION(3):: lu_icol =  (/ &
+       1, 2, 3 /) 
+
+  INTEGER,PARAMETER,DIMENSION(4):: lu_crow =  (/ &
+       1, 2, 3, 4 /) 
+
+  INTEGER,PARAMETER,DIMENSION(4):: lu_diag =  (/ &
+       1, 2, 3, 4 /) 
+
+
+
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+! Utility Data Module File
+! 
+! Generated by KPP-2.2.3 symbolic chemistry Kinetics PreProcessor
+!       (http://www.cs.vt.edu/~asandu/Software/KPP)
+! KPP is distributed under GPL,the general public licence
+!       (http://www.gnu.org/copyleft/gpl.html)
+! (C) 1995-1997,V. Damian & A. Sandu,CGRER,Univ. Iowa
+! (C) 1997-2005,A. Sandu,Michigan Tech,Virginia Tech
+!     With important contributions from:
+!        M. Damian,Villanova University,USA
+!        R. Sander,Max-Planck Institute for Chemistry,Mainz,Germany
+! 
+! File                 : chem_gasphase_mod_Monitor.f90
+! Time                 : Fri Dec  1 18:10:53 2017
+! Working directory    : /data/kanani/branches/palm4u/GASPHASE_PREPROC/tmp_kpp4palm
+! Equation file        : chem_gasphase_mod.kpp
+! Output root filename : chem_gasphase_mod
+! 
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+
+
+
+  CHARACTER(len=15),PARAMETER,DIMENSION(3):: spc_names =  (/ &
+     'CO             ','PM10           ','PM25           ' /)
+
+  INTEGER,DIMENSION(1):: lookat
+  INTEGER,DIMENSION(1):: monitor
+  CHARACTER(len=15),DIMENSION(1):: smass
+  CHARACTER(len=100),PARAMETER,DIMENSION(3):: eqn_names =  (/ &
+     '  CO --> CO                                                                                         ',&
+     'PM10 --> PM10                                                                                       ',&
+     'PM25 --> PM25                                                                                       ' /)
+
+! INLINED global variables
+
+  !   inline f90_data: declaration of global variables for photolysis
+  !   REAL(kind=dp):: phot(nphot)must eventually be moved to global later for 
+  INTEGER,PARAMETER :: nphot = 1
+  !   phot photolysis frequencies
+  REAL(kind=dp):: phot(nphot)
+
+  INTEGER,PARAMETER,PUBLIC :: j_no2 = 1
+
+  CHARACTER(len=15),PARAMETER,DIMENSION(nphot):: phot_names =   (/ &
+     'J_NO2          '/)
+
+! End INLINED global variables
+
+
+! Automatic generated PUBLIC Statements for ip_ and ihs_ variables 
+ 
+! Automatic generated PUBLIC Statements for ip_ and ihs_ variables 
+ 
+! Automatic generated PUBLIC Statements for ip_ and ihs_ variables 
+ 
+! Automatic generated PUBLIC Statements for ip_ and ihs_ variables 
+ 
+ 
+!  variable definations from  individual module headers 
+ 
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+! Initialization File
+! 
+! Generated by KPP-2.2.3 symbolic chemistry Kinetics PreProcessor
+!       (http://www.cs.vt.edu/~asandu/Software/KPP)
+! KPP is distributed under GPL,the general public licence
+!       (http://www.gnu.org/copyleft/gpl.html)
+! (C) 1995-1997,V. Damian & A. Sandu,CGRER,Univ. Iowa
+! (C) 1997-2005,A. Sandu,Michigan Tech,Virginia Tech
+!     With important contributions from:
+!        M. Damian,Villanova University,USA
+!        R. Sander,Max-Planck Institute for Chemistry,Mainz,Germany
+! 
+! File                 : chem_gasphase_mod_Initialize.f90
+! Time                 : Fri Dec  1 18:10:53 2017
+! Working directory    : /data/kanani/branches/palm4u/GASPHASE_PREPROC/tmp_kpp4palm
+! Equation file        : chem_gasphase_mod.kpp
+! Output root filename : chem_gasphase_mod
+! 
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+
+
+
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+! Numerical Integrator (Time-Stepping) File
+! 
+! Generated by KPP-2.2.3 symbolic chemistry Kinetics PreProcessor
+!       (http://www.cs.vt.edu/~asandu/Software/KPP)
+! KPP is distributed under GPL,the general public licence
+!       (http://www.gnu.org/copyleft/gpl.html)
+! (C) 1995-1997,V. Damian & A. Sandu,CGRER,Univ. Iowa
+! (C) 1997-2005,A. Sandu,Michigan Tech,Virginia Tech
+!     With important contributions from:
+!        M. Damian,Villanova University,USA
+!        R. Sander,Max-Planck Institute for Chemistry,Mainz,Germany
+! 
+! File                 : chem_gasphase_mod_Integrator.f90
+! Time                 : Fri Dec  1 18:10:53 2017
+! Working directory    : /data/kanani/branches/palm4u/GASPHASE_PREPROC/tmp_kpp4palm
+! Equation file        : chem_gasphase_mod.kpp
+! Output root filename : chem_gasphase_mod
+! 
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+! INTEGRATE - Integrator routine
+!   Arguments :
+!      TIN       - Start Time for Integration
+!      TOUT      - End Time for Integration
+! 
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
+!  Rosenbrock - Implementation of several Rosenbrock methods:             !
+!               *Ros2                                                    !
+!               *Ros3                                                    !
+!               *Ros4                                                    !
+!               *Rodas3                                                  !
+!               *Rodas4                                                  !
+!  By default the code employs the KPP sparse linear algebra routines     !
+!  Compile with -DFULL_ALGEBRA to use full linear algebra (LAPACK)        !
+!                                                                         !
+!    (C)  Adrian Sandu,August 2004                                       !
+!    Virginia Polytechnic Institute and State University                  !
+!    Contact: sandu@cs.vt.edu                                             !
+!    Revised by Philipp Miehe and Adrian Sandu,May 2006                  !                               !
+!    This implementation is part of KPP - the Kinetic PreProcessor        !
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
+
+
+  SAVE
+  
+!~~~>  statistics on the work performed by the rosenbrock method
+  INTEGER,PARAMETER :: nfun=1,njac=2,nstp=3,nacc=4,&
+                        nrej=5,ndec=6,nsol=7,nsng=8,&
+                        ntexit=1,nhexit=2,nhnew = 3
+
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+! Linear Algebra Data and Routines File
+! 
+! Generated by KPP-2.2.3 symbolic chemistry Kinetics PreProcessor
+!       (http://www.cs.vt.edu/~asandu/Software/KPP)
+! KPP is distributed under GPL,the general public licence
+!       (http://www.gnu.org/copyleft/gpl.html)
+! (C) 1995-1997,V. Damian & A. Sandu,CGRER,Univ. Iowa
+! (C) 1997-2005,A. Sandu,Michigan Tech,Virginia Tech
+!     With important contributions from:
+!        M. Damian,Villanova University,USA
+!        R. Sander,Max-Planck Institute for Chemistry,Mainz,Germany
+! 
+! File                 : chem_gasphase_mod_LinearAlgebra.f90
+! Time                 : Fri Dec  1 18:10:53 2017
+! Working directory    : /data/kanani/branches/palm4u/GASPHASE_PREPROC/tmp_kpp4palm
+! Equation file        : chem_gasphase_mod.kpp
+! Output root filename : chem_gasphase_mod
+! 
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+
+
+
+
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+! The ODE Jacobian of Chemical Model File
+! 
+! Generated by KPP-2.2.3 symbolic chemistry Kinetics PreProcessor
+!       (http://www.cs.vt.edu/~asandu/Software/KPP)
+! KPP is distributed under GPL,the general public licence
+!       (http://www.gnu.org/copyleft/gpl.html)
+! (C) 1995-1997,V. Damian & A. Sandu,CGRER,Univ. Iowa
+! (C) 1997-2005,A. Sandu,Michigan Tech,Virginia Tech
+!     With important contributions from:
+!        M. Damian,Villanova University,USA
+!        R. Sander,Max-Planck Institute for Chemistry,Mainz,Germany
+! 
+! File                 : chem_gasphase_mod_Jacobian.f90
+! Time                 : Fri Dec  1 18:10:53 2017
+! Working directory    : /data/kanani/branches/palm4u/GASPHASE_PREPROC/tmp_kpp4palm
+! Equation file        : chem_gasphase_mod.kpp
+! Output root filename : chem_gasphase_mod
+! 
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+
+
+
+
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+! The ODE Function of Chemical Model File
+! 
+! Generated by KPP-2.2.3 symbolic chemistry Kinetics PreProcessor
+!       (http://www.cs.vt.edu/~asandu/Software/KPP)
+! KPP is distributed under GPL,the general public licence
+!       (http://www.gnu.org/copyleft/gpl.html)
+! (C) 1995-1997,V. Damian & A. Sandu,CGRER,Univ. Iowa
+! (C) 1997-2005,A. Sandu,Michigan Tech,Virginia Tech
+!     With important contributions from:
+!        M. Damian,Villanova University,USA
+!        R. Sander,Max-Planck Institute for Chemistry,Mainz,Germany
+! 
+! File                 : chem_gasphase_mod_Function.f90
+! Time                 : Fri Dec  1 18:10:53 2017
+! Working directory    : /data/kanani/branches/palm4u/GASPHASE_PREPROC/tmp_kpp4palm
+! Equation file        : chem_gasphase_mod.kpp
+! Output root filename : chem_gasphase_mod
+! 
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+
+
+
+! A - Rate for each equation
+  REAL(kind=dp):: a(nreact)
+
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+! The Reaction Rates File
+! 
+! Generated by KPP-2.2.3 symbolic chemistry Kinetics PreProcessor
+!       (http://www.cs.vt.edu/~asandu/Software/KPP)
+! KPP is distributed under GPL,the general public licence
+!       (http://www.gnu.org/copyleft/gpl.html)
+! (C) 1995-1997,V. Damian & A. Sandu,CGRER,Univ. Iowa
+! (C) 1997-2005,A. Sandu,Michigan Tech,Virginia Tech
+!     With important contributions from:
+!        M. Damian,Villanova University,USA
+!        R. Sander,Max-Planck Institute for Chemistry,Mainz,Germany
+! 
+! File                 : chem_gasphase_mod_Rates.f90
+! Time                 : Fri Dec  1 18:10:53 2017
+! Working directory    : /data/kanani/branches/palm4u/GASPHASE_PREPROC/tmp_kpp4palm
+! Equation file        : chem_gasphase_mod.kpp
+! Output root filename : chem_gasphase_mod
+! 
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+
+
+
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! 
+! Auxiliary Routines File
+! 
+! Generated by KPP-2.2.3 symbolic chemistry Kinetics PreProcessor
+!       (http://www.cs.vt.edu/~asandu/Software/KPP)
+! KPP is distributed under GPL,the general public licence
+!       (http://www.gnu.org/copyleft/gpl.html)
+! (C) 1995-1997,V. Damian & A. Sandu,CGRER,Univ. Iowa
+! (C) 1997-2005,A. Sandu,Michigan Tech,Virginia Tech
+!     With important contributions from:
+!        M. Damian,Villanova University,USA
+!        R. Sander,Max-Planck Institute for Chemistry,Mainz,Germany
+! 
+! File                 : chem_gasphase_mod_Util.f90
+! Time                 : Fri Dec  1 18:10:53 2017
+! Working directory    : /data/kanani/branches/palm4u/GASPHASE_PREPROC/tmp_kpp4palm
+! Equation file        : chem_gasphase_mod.kpp
+! Output root filename : chem_gasphase_mod
+! 
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+
+
+
+
+  ! header MODULE initialize_kpp_ctrl_template
+
+  ! notes:
+  ! -  l_vector is automatically defined by kp4
+  ! -  vl_dim is automatically defined by kp4
+  ! -  i_lu_di is automatically defined by kp4
+  ! -  wanted is automatically defined by xmecca
+  ! -  icntrl rcntrl are automatically defined by kpp
+  ! -  "USE messy_main_tools" is in MODULE_header of messy_mecca_kpp.f90
+  ! -  SAVE will be automatically added by kp4
+
+  !SAVE
+
+  ! for fixed time step control
+  ! ... max. number of fixed time steps (sum must be 1)
+  INTEGER,PARAMETER         :: nmaxfixsteps = 50
+  ! ... switch for fixed time stepping
+  LOGICAL,PUBLIC            :: l_fixed_step = .false.
+  INTEGER,PUBLIC            :: nfsteps = 1
+  ! ... number of kpp control PARAMETERs
+  INTEGER,PARAMETER,PUBLIC :: nkppctrl = 20
+  !
+  INTEGER, DIMENSION(nkppctrl),PUBLIC     :: icntrl = 0
+  REAL(dp),DIMENSION(nkppctrl),PUBLIC     :: rcntrl = 0.0_dp
+  REAL(dp),DIMENSION(nmaxfixsteps),PUBLIC :: t_steps = 0.0_dp
+
+  ! END header MODULE initialize_kpp_ctrl_template
+
+ 
+! Interface Block 
+ 
+  INTERFACE            initialize
+    MODULE PROCEDURE   initialize
+  END INTERFACE        initialize
+ 
+  INTERFACE            integrate
+    MODULE PROCEDURE   integrate
+  END INTERFACE        integrate
+ 
+  INTERFACE            fun
+    MODULE PROCEDURE   fun
+  END INTERFACE        fun
+ 
+  INTERFACE            kppsolve
+    MODULE PROCEDURE   kppsolve
+  END INTERFACE        kppsolve
+ 
+  INTERFACE            kppdecomp
+    MODULE PROCEDURE   kppdecomp
+  END INTERFACE        kppdecomp
+ 
+  INTERFACE            wlamch
+    MODULE PROCEDURE   wlamch
+  END INTERFACE        wlamch
+ 
+  INTERFACE            wlamch_add
+    MODULE PROCEDURE   wlamch_add
+  END INTERFACE        wlamch_add
+ 
+  INTERFACE            jac_sp
+    MODULE PROCEDURE   jac_sp
+  END INTERFACE        jac_sp
+ 
+  INTERFACE            k_arr
+    MODULE PROCEDURE   k_arr
+  END INTERFACE        k_arr
+ 
+  INTERFACE            update_rconst
+    MODULE PROCEDURE   update_rconst
+  END INTERFACE        update_rconst
+ 
+  INTERFACE            arr2
+    MODULE PROCEDURE   arr2
+  END INTERFACE        arr2
+ 
+  INTERFACE            initialize_kpp_ctrl
+    MODULE PROCEDURE   initialize_kpp_ctrl
+  END INTERFACE        initialize_kpp_ctrl
+ 
+  INTERFACE            error_output
+    MODULE PROCEDURE   error_output
+  END INTERFACE        error_output
+ 
+!interface not working  INTERFACE            wcopy
+!interface not working    MODULE PROCEDURE   wcopy
+!interface not working  END INTERFACE        wcopy
+ 
+  INTERFACE            wscal
+    MODULE PROCEDURE   wscal
+  END INTERFACE        wscal
+ 
+!interface not working  INTERFACE            waxpy
+!interface not working    MODULE PROCEDURE   waxpy
+!interface not working  END INTERFACE        waxpy
+ 
+  INTERFACE            rosenbrock
+    MODULE PROCEDURE   rosenbrock
+  END INTERFACE        rosenbrock
+ 
+  INTERFACE            funtemplate
+    MODULE PROCEDURE   funtemplate
+  END INTERFACE        funtemplate
+ 
+  INTERFACE            jactemplate
+    MODULE PROCEDURE   jactemplate
+  END INTERFACE        jactemplate
+ 
+  INTERFACE            chem_gasphase_integrate
+    MODULE PROCEDURE   chem_gasphase_integrate
+  END INTERFACE        chem_gasphase_integrate
+ 
+  INTERFACE            fill_temp
+    MODULE PROCEDURE   fill_temp
+  END INTERFACE        fill_temp
+  PUBLIC               fill_temp
+ 
+ 
+ CONTAINS
+ 
+SUBROUTINE initialize()
+
+
+
+  INTEGER :: i
+  REAL(kind=dp):: x
+
+  cfactor = 1.000000e+00_dp
+
+  x = (0.)*cfactor
+  DO i = 1,nvar
+    var(i) = x
+  ENDDO
+
+  x = (0.)*cfactor
+  DO i = 1,nfix
+    fix(i) = x
+  ENDDO
+
+! constant rate coefficients
+! END constant rate coefficients
+
+! INLINED initializations
+
+! End INLINED initializations
+
+      
+END SUBROUTINE initialize
+ 
+SUBROUTINE integrate( tin,tout,&
+  icntrl_u,rcntrl_u,istatus_u,rstatus_u,ierr_u)
+
+
+   REAL(kind=dp),INTENT(in):: tin  ! start time
+   REAL(kind=dp),INTENT(in):: tout ! END time
+   ! OPTIONAL input PARAMETERs and statistics
+   INTEGER,      INTENT(in), OPTIONAL :: icntrl_u(20)
+   REAL(kind=dp),INTENT(in), OPTIONAL :: rcntrl_u(20)
+   INTEGER,      INTENT(out),OPTIONAL :: istatus_u(20)
+   REAL(kind=dp),INTENT(out),OPTIONAL :: rstatus_u(20)
+   INTEGER,      INTENT(out),OPTIONAL :: ierr_u
+
+   REAL(kind=dp):: rcntrl(20),rstatus(20)
+   INTEGER       :: icntrl(20),istatus(20),ierr
+
+   INTEGER,SAVE :: ntotal = 0
+
+   icntrl(:) = 0
+   rcntrl(:) = 0.0_dp
+   istatus(:) = 0
+   rstatus(:) = 0.0_dp
+
+    !~~~> fine-tune the integrator:
+   icntrl(1) = 0	! 0 -  non- autonomous,1 -  autonomous
+   icntrl(2) = 0	! 0 -  vector tolerances,1 -  scalars
+
+   ! IF OPTIONAL PARAMETERs are given,and IF they are >0,
+   ! THEN they overwrite default settings. 
+   IF (present(icntrl_u))THEN
+     where(icntrl_u(:)> 0)icntrl(:) = icntrl_u(:)
+   ENDIF
+   IF (present(rcntrl_u))THEN
+     where(rcntrl_u(:)> 0)rcntrl(:) = rcntrl_u(:)
+   ENDIF
+
+
+   CALL rosenbrock(nvar,var,tin,tout,  &
+         atol,rtol,               &
+         rcntrl,icntrl,rstatus,istatus,ierr)
+
+   !~~~> debug option: show no of steps
+   ! ntotal = ntotal + istatus(nstp)
+   ! PRINT*,'NSTEPS=',ISTATUS(Nstp),' (',Ntotal,')','  O3=',VAR(ind_O3)
+
+   stepmin = rstatus(nhexit)
+   ! IF OPTIONAL PARAMETERs are given for output they 
+   ! are updated with the RETURN information
+   IF (present(istatus_u))istatus_u(:) = istatus(:)
+   IF (present(rstatus_u))rstatus_u(:) = rstatus(:)
+   IF (present(ierr_u))   ierr_u       = ierr
+
+END SUBROUTINE integrate
+ 
+SUBROUTINE fun(v,f,rct,vdot)
+
+! V - Concentrations of variable species (local)
+  REAL(kind=dp):: v(nvar)
+! F - Concentrations of fixed species (local)
+  REAL(kind=dp):: f(nfix)
+! RCT - Rate constants (local)
+  REAL(kind=dp):: rct(nreact)
+! Vdot - Time derivative of variable species concentrations
+  REAL(kind=dp):: vdot(nvar)
+
+
+! Computation of equation rates
+
+! Aggregate function
+  vdot(1) = 0
+  vdot(2) = 0
+  vdot(3) = 0
+      
+END SUBROUTINE fun
+ 
+SUBROUTINE kppsolve(jvs,x)
+
+! JVS - sparse Jacobian of variables
+  REAL(kind=dp):: jvs(lu_nonzero)
+! X - Vector for variables
+  REAL(kind=dp):: x(nvar)
+
+  x(3) = x(3)/ jvs(3)
+  x(2) = x(2)/ jvs(2)
+  x(1) = x(1)/ jvs(1)
+      
+END SUBROUTINE kppsolve
+ 
+SUBROUTINE kppdecomp( jvs,ier)
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!        Sparse LU factorization
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+      INTEGER  :: ier
+      REAL(kind=dp):: jvs(lu_nonzero),w(nvar),a
+      INTEGER  :: k,kk,j,jj
+
+      a = 0. ! mz_rs_20050606
+      ier = 0
+      DO k=1,nvar
+        ! mz_rs_20050606: don't check if real value == 0
+        ! IF(jvs( lu_diag(k)).eq. 0.)THEN
+        IF(abs(jvs(lu_diag(k)))< tiny(a))THEN
+            ier = k
+            RETURN
+        ENDIF
+        DO kk = lu_crow(k),lu_crow(k+ 1)- 1
+              w( lu_icol(kk)) = jvs(kk)
+        ENDDO
+        DO kk = lu_crow(k),lu_diag(k)- 1
+            j = lu_icol(kk)
+            a = - w(j)/ jvs( lu_diag(j))
+            w(j) = - a
+            DO jj = lu_diag(j)+ 1,lu_crow(j+ 1)- 1
+               w( lu_icol(jj)) = w( lu_icol(jj))+ a*jvs(jj)
+            ENDDO
+         ENDDO
+         DO kk = lu_crow(k),lu_crow(k+ 1)- 1
+            jvs(kk) = w( lu_icol(kk))
+         ENDDO
+      ENDDO
+      
+END SUBROUTINE kppdecomp
+ 
+      REAL(kind=dp)FUNCTION wlamch( c)
+!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
+!     returns epsilon machine
+!     after LAPACK
+!     replace this by the function from the optimized LAPACK implementation:
+!          CALL SLAMCH('E') or CALL DLAMCH('E')
+!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
+!      USE chem_gasphase_mod_Precision
+
+      CHARACTER ::  c
+      INTEGER    :: i
+      REAL(kind=dp),SAVE  ::  eps
+      REAL(kind=dp) ::  suma
+      REAL(kind=dp),PARAMETER  ::  one=1.0_dp, half=0.5_dp
+      LOGICAL,SAVE   ::  first=.true.
+      
+      IF (first)THEN
+        first = .false.
+        eps = half**(16)
+        DO i = 17,80
+          eps = eps*half
+          CALL wlamch_add(one,eps,suma)
+          IF (suma.le.one)goto 10
+        ENDDO
+        PRINT*,'ERROR IN WLAMCH. EPS < ',Eps
+        RETURN
+10      eps = eps*2
+        i = i- 1      
+      ENDIF
+
+      wlamch = eps
+
+      END FUNCTION wlamch
+ 
+      SUBROUTINE wlamch_add( a,b,suma)
+!      USE chem_gasphase_mod_Precision
+      
+      REAL(kind=dp)a,b,suma
+      suma = a + b
+
+      END SUBROUTINE wlamch_add
+ 
+SUBROUTINE jac_sp(v,f,rct,jvs)
+
+! V - Concentrations of variable species (local)
+  REAL(kind=dp):: v(nvar)
+! F - Concentrations of fixed species (local)
+  REAL(kind=dp):: f(nfix)
+! RCT - Rate constants (local)
+  REAL(kind=dp):: rct(nreact)
+! JVS - sparse Jacobian of variables
+  REAL(kind=dp):: jvs(lu_nonzero)
+
+
+! Local variables
+! B - Temporary array
+  REAL(kind=dp):: b(3)
+
+! B(1) = dA(1)/dV(1)
+  b(1) = rct(1)
+! B(2) = dA(2)/dV(2)
+  b(2) = rct(2)
+! B(3) = dA(3)/dV(3)
+  b(3) = rct(3)
+
+! Construct the Jacobian terms from B's
+! JVS(1) = Jac_FULL(1,1)
+  jvs(1) = 0
+! JVS(2) = Jac_FULL(2,2)
+  jvs(2) = 0
+! JVS(3) = Jac_FULL(3,3)
+  jvs(3) = 0
+      
+END SUBROUTINE jac_sp
+ 
+  elemental REAL(kind=dp)FUNCTION k_arr (k_298,tdep,temp)
+    ! arrhenius FUNCTION
+
+    REAL,    INTENT(in):: k_298 ! k at t = 298.15k
+    REAL,    INTENT(in):: tdep  ! temperature dependence
+    REAL(kind=dp),INTENT(in):: temp  ! temperature
+
+    intrinsic exp
+
+    k_arr = k_298 *exp(tdep*(1._dp/temp- 3.3540e-3_dp))! 1/298.15=3.3540e-3
+
+  END FUNCTION k_arr
+ 
+SUBROUTINE update_rconst()
+ INTEGER         :: j,k
+
+  k = is
+
+! Begin INLINED RCONST
+
+
+! End INLINED RCONST
+
+  rconst(1) = (1.0_wp)
+  rconst(2) = (1.0_wp)
+  rconst(3) = (1.0_wp)
+      
+END SUBROUTINE update_rconst
+ 
+REAL(kind=dp)FUNCTION arr2( a0,b0,temp)
+    REAL(kind=dp):: temp
+    REAL(kind=dp):: a0,b0
+    arr2 = a0 *exp( - b0 / temp)
+END FUNCTION arr2
+ 
+SUBROUTINE initialize_kpp_ctrl(status,iou,modstr)
+
+
+  ! i/o
+  INTEGER,         INTENT(out):: status
+  INTEGER,         INTENT(in) :: iou     ! LOGICAL i/o unit
+  CHARACTER(len=*),INTENT(in) :: modstr  ! read <modstr>.nml
+
+  ! local
+  REAL(dp):: tsum
+  INTEGER  :: i
+
+  ! check fixed time steps
+  tsum = 0.0_dp
+  DO i=1,nmaxfixsteps
+     IF (t_steps(i)< tiny(0.0_dp))exit
+     tsum = tsum + t_steps(i)
+  ENDDO
+
+  nfsteps = i- 1
+
+  l_fixed_step = (nfsteps > 0).and.((tsum - 1.0)< tiny(0.0_dp))
+
+  IF (l_vector)THEN
+     WRITE(*,*) ' MODE             : VECTOR (LENGTH=',VL_DIM,')'
+  ELSE
+     WRITE(*,*) ' MODE             : SCALAR'
+  ENDIF
+  !
+  WRITE(*,*) ' DE-INDEXING MODE :',I_LU_DI
+  !
+  WRITE(*,*) ' ICNTRL           : ',icntrl
+  WRITE(*,*) ' RCNTRL           : ',rcntrl
+  !
+  ! note: this is only meaningful for vectorized (kp4)rosenbrock- methods
+  IF (l_vector)THEN
+     IF (l_fixed_step)THEN
+        WRITE(*,*) ' TIME STEPS       : FIXED (',t_steps(1:nfsteps),')'
+     ELSE
+        WRITE(*,*) ' TIME STEPS       : AUTOMATIC'
+     ENDIF
+  ELSE
+     WRITE(*,*) ' TIME STEPS       : AUTOMATIC '//&
+          &'(t_steps (CTRL_KPP) ignored in SCALAR MODE)'
+  ENDIF
+  ! mz_pj_20070531- 
+
+  status = 0
+
+
+END SUBROUTINE initialize_kpp_ctrl
+ 
+SUBROUTINE error_output(c,ierr,pe)
+
+
+  INTEGER,INTENT(in):: ierr
+  INTEGER,INTENT(in):: pe
+  REAL(dp),DIMENSION(:),INTENT(in):: c
+
+  write(6,*) 'ERROR in chem_gasphase_mod ',ierr,C(1)
+
+
+END SUBROUTINE error_output
+ 
+      SUBROUTINE wcopy(n,x,incx,y,incy)
+!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
+!     copies a vector,x,to a vector,y:  y <- x
+!     only for incX=incY=1
+!     after BLAS
+!     replace this by the function from the optimized BLAS implementation:
+!         CALL  SCOPY(N,X,1,Y,1)   or   CALL  DCOPY(N,X,1,Y,1)
+!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
+!     USE chem_gasphase_mod_Precision
+      
+      INTEGER  :: i,incx,incy,m,mp1,n
+      REAL(kind=dp):: x(n),y(n)
+
+      IF (n.le.0)RETURN
+
+      m = mod(n,8)
+      IF( m .ne. 0)THEN
+        DO i = 1,m
+          y(i) = x(i)
+        ENDDO
+        IF( n .lt. 8)RETURN
+      ENDIF    
+      mp1 = m+ 1
+      DO i = mp1,n,8
+        y(i) = x(i)
+        y(i + 1) = x(i + 1)
+        y(i + 2) = x(i + 2)
+        y(i + 3) = x(i + 3)
+        y(i + 4) = x(i + 4)
+        y(i + 5) = x(i + 5)
+        y(i + 6) = x(i + 6)
+        y(i + 7) = x(i + 7)
+      ENDDO
+
+      END SUBROUTINE wcopy
+ 
+      SUBROUTINE wscal(n,alpha,x,incx)
+!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
+!     constant times a vector: x(1:N) <- Alpha*x(1:N) 
+!     only for incX=incY=1
+!     after BLAS
+!     replace this by the function from the optimized BLAS implementation:
+!         CALL SSCAL(N,Alpha,X,1) or  CALL DSCAL(N,Alpha,X,1)
+!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
+
+      INTEGER  :: i,incx,m,mp1,n
+      REAL(kind=dp) :: x(n),alpha
+      REAL(kind=dp),PARAMETER  :: zero=0.0_dp, one=1.0_dp
+
+      IF (alpha .eq. one)RETURN
+      IF (n .le. 0)RETURN
+
+      m = mod(n,5)
+      IF( m .ne. 0)THEN
+        IF (alpha .eq. (- one))THEN
+          DO i = 1,m
+            x(i) = - x(i)
+          ENDDO
+        ELSEIF (alpha .eq. zero)THEN
+          DO i = 1,m
+            x(i) = zero
+          ENDDO
+        ELSE
+          DO i = 1,m
+            x(i) = alpha*x(i)
+          ENDDO
+        ENDIF
+        IF( n .lt. 5)RETURN
+      ENDIF
+      mp1 = m + 1
+      IF (alpha .eq. (- one))THEN
+        DO i = mp1,n,5
+          x(i)    = - x(i)
+          x(i + 1) = - x(i + 1)
+          x(i + 2) = - x(i + 2)
+          x(i + 3) = - x(i + 3)
+          x(i + 4) = - x(i + 4)
+        ENDDO
+      ELSEIF (alpha .eq. zero)THEN
+        DO i = mp1,n,5
+          x(i)    = zero
+          x(i + 1) = zero
+          x(i + 2) = zero
+          x(i + 3) = zero
+          x(i + 4) = zero
+        ENDDO
+      ELSE
+        DO i = mp1,n,5
+          x(i)    = alpha*x(i)
+          x(i + 1) = alpha*x(i + 1)
+          x(i + 2) = alpha*x(i + 2)
+          x(i + 3) = alpha*x(i + 3)
+          x(i + 4) = alpha*x(i + 4)
+        ENDDO
+      ENDIF
+
+      END SUBROUTINE wscal
+ 
+      SUBROUTINE waxpy(n,alpha,x,incx,y,incy)
+!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
+!     constant times a vector plus a vector: y <- y + Alpha*x
+!     only for incX=incY=1
+!     after BLAS
+!     replace this by the function from the optimized BLAS implementation:
+!         CALL SAXPY(N,Alpha,X,1,Y,1) or  CALL DAXPY(N,Alpha,X,1,Y,1)
+!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
+
+      INTEGER  :: i,incx,incy,m,mp1,n
+      REAL(kind=dp):: x(n),y(n),alpha
+      REAL(kind=dp),PARAMETER :: zero = 0.0_dp
+
+      IF (alpha .eq. zero)RETURN
+      IF (n .le. 0)RETURN
+
+      m = mod(n,4)
+      IF( m .ne. 0)THEN
+        DO i = 1,m
+          y(i) = y(i)+ alpha*x(i)
+        ENDDO
+        IF( n .lt. 4)RETURN
+      ENDIF
+      mp1 = m + 1
+      DO i = mp1,n,4
+        y(i) = y(i)+ alpha*x(i)
+        y(i + 1) = y(i + 1)+ alpha*x(i + 1)
+        y(i + 2) = y(i + 2)+ alpha*x(i + 2)
+        y(i + 3) = y(i + 3)+ alpha*x(i + 3)
+      ENDDO
+      
+      END SUBROUTINE waxpy
+ 
+SUBROUTINE rosenbrock(n,y,tstart,tend,&
+           abstol,reltol,             &
+           rcntrl,icntrl,rstatus,istatus,ierr)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!    Solves the system y'=F(t,y) using a Rosenbrock method defined by:
+!
+!     G = 1/(H*gamma(1)) - Jac(t0,Y0)
+!     T_i = t0 + Alpha(i)*H
+!     Y_i = Y0 + \sum_{j=1}^{i-1} A(i,j)*K_j
+!     G *K_i = Fun( T_i,Y_i)+ \sum_{j=1}^S C(i,j)/H *K_j +
+!         gamma(i)*dF/dT(t0,Y0)
+!     Y1 = Y0 + \sum_{j=1}^S M(j)*K_j
+!
+!    For details on Rosenbrock methods and their implementation consult:
+!      E. Hairer and G. Wanner
+!      "Solving ODEs II. Stiff and differential-algebraic problems".
+!      Springer series in computational mathematics,Springer-Verlag,1996.
+!    The codes contained in the book inspired this implementation.
+!
+!    (C)  Adrian Sandu,August 2004
+!    Virginia Polytechnic Institute and State University
+!    Contact: sandu@cs.vt.edu
+!    Revised by Philipp Miehe and Adrian Sandu,May 2006                  
+!    This implementation is part of KPP - the Kinetic PreProcessor
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>   input arguments:
+!
+!-      y(n)   = vector of initial conditions (at t=tstart)
+!-     [tstart,tend]  = time range of integration
+!     (if Tstart>Tend the integration is performed backwards in time)
+!-     reltol,abstol = user precribed accuracy
+!-  SUBROUTINE  fun( t,y,ydot) = ode FUNCTION,
+!                       returns Ydot = Y' = F(T,Y)
+!-  SUBROUTINE  jac( t,y,jcb) = jacobian of the ode FUNCTION,
+!                       returns Jcb = dFun/dY
+!-     icntrl(1:20)   = INTEGER inputs PARAMETERs
+!-     rcntrl(1:20)   = REAL inputs PARAMETERs
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>     output arguments:
+!
+!-     y(n)   - > vector of final states (at t- >tEND)
+!-     istatus(1:20)  - > INTEGER output PARAMETERs
+!-     rstatus(1:20)  - > REAL output PARAMETERs
+!-     ierr            - > job status upon RETURN
+!                        success (positive value) or
+!                        failure (negative value)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!~~~>     input PARAMETERs:
+!
+!    Note: For input parameters equal to zero the default values of the
+!       corresponding variables are used.
+!
+!    ICNTRL(1) = 1: F = F(y)   Independent of T (AUTONOMOUS)
+!              = 0: F = F(t,y) Depends on T (NON-AUTONOMOUS)
+!
+!    ICNTRL(2) = 0: AbsTol,RelTol are N-dimensional vectors
+!              = 1: AbsTol,RelTol are scalars
+!
+!    ICNTRL(3)  -> selection of a particular Rosenbrock method
+!        = 0 :    Rodas3 (default)
+!        = 1 :    Ros2
+!        = 2 :    Ros3
+!        = 3 :    Ros4
+!        = 4 :    Rodas3
+!        = 5 :    Rodas4
+!
+!    ICNTRL(4)  -> maximum number of integration steps
+!        For ICNTRL(4) =0) the default value of 100000 is used
+!
+!    RCNTRL(1)  -> Hmin,lower bound for the integration step size
+!          It is strongly recommended to keep Hmin = ZERO
+!    RCNTRL(2)  -> Hmax,upper bound for the integration step size
+!    RCNTRL(3)  -> Hstart,starting value for the integration step size
+!
+!    RCNTRL(4)  -> FacMin,lower bound on step decrease factor (default=0.2)
+!    RCNTRL(5)  -> FacMax,upper bound on step increase factor (default=6)
+!    RCNTRL(6)  -> FacRej,step decrease factor after multiple rejections
+!                          (default=0.1)
+!    RCNTRL(7)  -> FacSafe,by which the new step is slightly smaller
+!         than the predicted value  (default=0.9)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!
+!
+!    OUTPUT ARGUMENTS:
+!    -----------------
+!
+!    T           -> T value for which the solution has been computed
+!                     (after successful return T=Tend).
+!
+!    Y(N)        -> Numerical solution at T
+!
+!    IDID        -> Reports on successfulness upon return:
+!                    = 1 for success
+!                    < 0 for error (value equals error code)
+!
+!    ISTATUS(1)  -> No. of function calls
+!    ISTATUS(2)  -> No. of jacobian calls
+!    ISTATUS(3)  -> No. of steps
+!    ISTATUS(4)  -> No. of accepted steps
+!    ISTATUS(5)  -> No. of rejected steps (except at very beginning)
+!    ISTATUS(6)  -> No. of LU decompositions
+!    ISTATUS(7)  -> No. of forward/backward substitutions
+!    ISTATUS(8)  -> No. of singular matrix decompositions
+!
+!    RSTATUS(1)  -> Texit,the time corresponding to the
+!                     computed Y upon return
+!    RSTATUS(2)  -> Hexit,last accepted step before exit
+!    RSTATUS(3)  -> Hnew,last predicted step (not yet taken)
+!                   For multiple restarts,use Hnew as Hstart 
+!                     in the subsequent run
+!
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+!~~~>  arguments
+   INTEGER,      INTENT(in)   :: n
+   REAL(kind=dp),INTENT(inout):: y(n)
+   REAL(kind=dp),INTENT(in)   :: tstart,tend
+   REAL(kind=dp),INTENT(in)   :: abstol(n),reltol(n)
+   INTEGER,      INTENT(in)   :: icntrl(20)
+   REAL(kind=dp),INTENT(in)   :: rcntrl(20)
+   INTEGER,      INTENT(inout):: istatus(20)
+   REAL(kind=dp),INTENT(inout):: rstatus(20)
+   INTEGER,INTENT(out)  :: ierr
+!~~~>  PARAMETERs of the rosenbrock method,up to 6 stages
+   INTEGER ::  ros_s,rosmethod
+   INTEGER,PARAMETER :: rs2=1,rs3=2,rs4=3,rd3=4,rd4=5,rg3=6
+   REAL(kind=dp):: ros_a(15),ros_c(15),ros_m(6),ros_e(6),&
+                    ros_alpha(6),ros_gamma(6),ros_elo
+   LOGICAL :: ros_newf(6)
+   CHARACTER(len=12):: ros_name
+!~~~>  local variables
+   REAL(kind=dp):: roundoff,facmin,facmax,facrej,facsafe
+   REAL(kind=dp):: hmin,hmax,hstart
+   REAL(kind=dp):: texit
+   INTEGER       :: i,uplimtol,max_no_steps
+   LOGICAL       :: autonomous,vectortol
+!~~~>   PARAMETERs
+   REAL(kind=dp),PARAMETER :: zero = 0.0_dp, one  = 1.0_dp
+   REAL(kind=dp),PARAMETER :: deltamin = 1.0e-5_dp
+
+!~~~>  initialize statistics
+   istatus(1:8) = 0
+   rstatus(1:3) = zero
+
+!~~~>  autonomous or time dependent ode. default is time dependent.
+   autonomous = .not.(icntrl(1) == 0)
+
+!~~~>  for scalar tolerances (icntrl(2).ne.0) the code uses abstol(1)and reltol(1)
+!   For Vector tolerances (ICNTRL(2) == 0) the code uses AbsTol(1:N) and RelTol(1:N)
+   IF (icntrl(2) == 0)THEN
+      vectortol = .true.
+      uplimtol  = n
+   ELSE
+      vectortol = .false.
+      uplimtol  = 1
+   ENDIF
+
+!~~~>   initialize the particular rosenbrock method selected
+   select CASE (icntrl(3))
+     CASE (1)
+       CALL ros2
+     CASE (2)
+       CALL ros3
+     CASE (3)
+       CALL ros4
+     CASE (0,4)
+       CALL rodas3
+     CASE (5)
+       CALL rodas4
+     CASE (6)
+       CALL rang3
+     CASE default
+       PRINT *,'Unknown Rosenbrock method: ICNTRL(3) =',ICNTRL(3) 
+       CALL ros_errormsg(- 2,tstart,zero,ierr)
+       RETURN
+   END select
+
+!~~~>   the maximum number of steps admitted
+   IF (icntrl(4) == 0)THEN
+      max_no_steps = 200000
+   ELSEIF (icntrl(4)> 0)THEN
+      max_no_steps=icntrl(4)
+   ELSE
+      PRINT *,'User-selected max no. of steps: ICNTRL(4) =',ICNTRL(4)
+      CALL ros_errormsg(- 1,tstart,zero,ierr)
+      RETURN
+   ENDIF
+
+!~~~>  unit roundoff (1+ roundoff>1)
+   Roundoff = WLAMCH('E')
+
+!~~~>  lower bound on the step size: (positive value)
+   IF (rcntrl(1) == zero)THEN
+      hmin = zero
+   ELSEIF (rcntrl(1)> zero)THEN
+      hmin = rcntrl(1)
+   ELSE
+      PRINT *,'User-selected Hmin: RCNTRL(1) =',RCNTRL(1)
+      CALL ros_errormsg(- 3,tstart,zero,ierr)
+      RETURN
+   ENDIF
+!~~~>  upper bound on the step size: (positive value)
+   IF (rcntrl(2) == zero)THEN
+      hmax = abs(tend-tstart)
+   ELSEIF (rcntrl(2)> zero)THEN
+      hmax = min(abs(rcntrl(2)),abs(tend-tstart))
+   ELSE
+      PRINT *,'User-selected Hmax: RCNTRL(2) =',RCNTRL(2)
+      CALL ros_errormsg(- 3,tstart,zero,ierr)
+      RETURN
+   ENDIF
+!~~~>  starting step size: (positive value)
+   IF (rcntrl(3) == zero)THEN
+      hstart = max(hmin,deltamin)
+   ELSEIF (rcntrl(3)> zero)THEN
+      hstart = min(abs(rcntrl(3)),abs(tend-tstart))
+   ELSE
+      PRINT *,'User-selected Hstart: RCNTRL(3) =',RCNTRL(3)
+      CALL ros_errormsg(- 3,tstart,zero,ierr)
+      RETURN
+   ENDIF
+!~~~>  step size can be changed s.t.  facmin < hnew/hold < facmax
+   IF (rcntrl(4) == zero)THEN
+      facmin = 0.2_dp
+   ELSEIF (rcntrl(4)> zero)THEN
+      facmin = rcntrl(4)
+   ELSE
+      PRINT *,'User-selected FacMin: RCNTRL(4) =',RCNTRL(4)
+      CALL ros_errormsg(- 4,tstart,zero,ierr)
+      RETURN
+   ENDIF
+   IF (rcntrl(5) == zero)THEN
+      facmax = 6.0_dp
+   ELSEIF (rcntrl(5)> zero)THEN
+      facmax = rcntrl(5)
+   ELSE
+      PRINT *,'User-selected FacMax: RCNTRL(5) =',RCNTRL(5)
+      CALL ros_errormsg(- 4,tstart,zero,ierr)
+      RETURN
+   ENDIF
+!~~~>   facrej: factor to decrease step after 2 succesive rejections
+   IF (rcntrl(6) == zero)THEN
+      facrej = 0.1_dp
+   ELSEIF (rcntrl(6)> zero)THEN
+      facrej = rcntrl(6)
+   ELSE
+      PRINT *,'User-selected FacRej: RCNTRL(6) =',RCNTRL(6)
+      CALL ros_errormsg(- 4,tstart,zero,ierr)
+      RETURN
+   ENDIF
+!~~~>   facsafe: safety factor in the computation of new step size
+   IF (rcntrl(7) == zero)THEN
+      facsafe = 0.9_dp
+   ELSEIF (rcntrl(7)> zero)THEN
+      facsafe = rcntrl(7)
+   ELSE
+      PRINT *,'User-selected FacSafe: RCNTRL(7) =',RCNTRL(7)
+      CALL ros_errormsg(- 4,tstart,zero,ierr)
+      RETURN
+   ENDIF
+!~~~>  check IF tolerances are reasonable
+    DO i=1,uplimtol
+      IF((abstol(i)<= zero).or. (reltol(i)<= 10.0_dp*roundoff)&
+         .or. (reltol(i)>= 1.0_dp))THEN
+        PRINT *,' AbsTol(',i,') = ',AbsTol(i)
+        PRINT *,' RelTol(',i,') = ',RelTol(i)
+        CALL ros_errormsg(- 5,tstart,zero,ierr)
+        RETURN
+      ENDIF
+    ENDDO
+
+
+!~~~>  CALL rosenbrock method
+   CALL ros_integrator(y,tstart,tend,texit,  &
+        abstol,reltol,                         &
+!  Integration parameters
+        autonomous,vectortol,max_no_steps,    &
+        roundoff,hmin,hmax,hstart,           &
+        facmin,facmax,facrej,facsafe,        &
+!  Error indicator
+        ierr)
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+CONTAINS !  SUBROUTINEs internal to rosenbrock
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+ SUBROUTINE ros_errormsg(code,t,h,ierr)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+!    Handles all error messages
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
+  
+   REAL(kind=dp),INTENT(in):: t,h
+   INTEGER,INTENT(in) :: code
+   INTEGER,INTENT(out):: ierr
+   
+   ierr = code
+   print *,&
+     'Forced exit from Rosenbrock due to the following error:' 
+     
+   select CASE (code)
+    CASE (- 1)   
+      PRINT *,'--> Improper value for maximal no of steps'
+    CASE (- 2)   
+      PRINT *,'--> Selected Rosenbrock method not implemented'
+    CASE (- 3)   
+      PRINT *,'--> Hmin/Hmax/Hstart must be positive'
+    CASE (- 4)   
+      PRINT *,'--> FacMin/FacMax/FacRej must be positive'
+    CASE (- 5)
+      PRINT *,'--> Improper tolerance values'
+    CASE (- 6)
+      PRINT *,'--> No of steps exceeds maximum bound'
+    CASE (- 7)
+      PRINT *,'--> Step size too small: T + 10*H = T',&
+            ' or H < Roundoff'
+    CASE (- 8)   
+      PRINT *,'--> Matrix is repeatedly singular'
+    CASE default
+      PRINT *,'Unknown Error code: ',Code
+   END select
+   
+   print *,"t=",t,"and h=",h
+     
+ END SUBROUTINE ros_errormsg
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ SUBROUTINE ros_integrator (y,tstart,tend,t, &
+        abstol,reltol,                         &
+!~~~> integration PARAMETERs
+        autonomous,vectortol,max_no_steps,    &
+        roundoff,hmin,hmax,hstart,           &
+        facmin,facmax,facrej,facsafe,        &
+!~~~> error indicator
+        ierr)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!   Template for the implementation of a generic Rosenbrock method
+!      defined by ros_S (no of stages)
+!      and its coefficients ros_{A,C,M,E,Alpha,Gamma}
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+!~~~> input: the initial condition at tstart; output: the solution at t
+   REAL(kind=dp),INTENT(inout):: y(n)
+!~~~> input: integration interval
+   REAL(kind=dp),INTENT(in):: tstart,tend
+!~~~> output: time at which the solution is RETURNed (t=tENDIF success)
+   REAL(kind=dp),INTENT(out)::  t
+!~~~> input: tolerances
+   REAL(kind=dp),INTENT(in)::  abstol(n),reltol(n)
+!~~~> input: integration PARAMETERs
+   LOGICAL,INTENT(in):: autonomous,vectortol
+   REAL(kind=dp),INTENT(in):: hstart,hmin,hmax
+   INTEGER,INTENT(in):: max_no_steps
+   REAL(kind=dp),INTENT(in):: roundoff,facmin,facmax,facrej,facsafe
+!~~~> output: error indicator
+   INTEGER,INTENT(out):: ierr
+! ~~~~ Local variables
+   REAL(kind=dp):: ynew(n),fcn0(n),fcn(n)
+   REAL(kind=dp):: k(n*ros_s),dfdt(n)
+#ifdef full_algebra    
+   REAL(kind=dp):: jac0(n,n),ghimj(n,n)
+#else
+   REAL(kind=dp):: jac0(lu_nonzero),ghimj(lu_nonzero)
+#endif
+   REAL(kind=dp):: h,hnew,hc,hg,fac,tau
+   REAL(kind=dp):: err,yerr(n)
+   INTEGER :: pivot(n),direction,ioffset,j,istage
+   LOGICAL :: rejectlasth,rejectmoreh,singular
+!~~~>  local PARAMETERs
+   REAL(kind=dp),PARAMETER :: zero = 0.0_dp, one  = 1.0_dp
+   REAL(kind=dp),PARAMETER :: deltamin = 1.0e-5_dp
+!~~~>  locally called FUNCTIONs
+!    REAL(kind=dp) WLAMCH
+!    EXTERNAL WLAMCH
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+!~~~>  initial preparations
+   t = tstart
+   rstatus(nhexit) = zero
+   h = min( max(abs(hmin),abs(hstart)),abs(hmax))
+   IF (abs(h)<= 10.0_dp*roundoff)h = deltamin
+
+   IF (tEND  >=  tstart)THEN
+     direction = + 1
+   ELSE
+     direction = - 1
+   ENDIF
+   h = direction*h
+
+   rejectlasth=.false.
+   rejectmoreh=.false.
+
+!~~~> time loop begins below
+
+timeloop: DO WHILE((direction > 0).and.((t- tEND)+ roundoff <= zero)&
+       .or. (direction < 0).and.((tend-t)+ roundoff <= zero))
+
+   IF(istatus(nstp)> max_no_steps)THEN  ! too many steps
+      CALL ros_errormsg(- 6,t,h,ierr)
+      RETURN
+   ENDIF
+   IF(((t+ 0.1_dp*h) == t).or.(h <= roundoff))THEN  ! step size too small
+      CALL ros_errormsg(- 7,t,h,ierr)
+      RETURN
+   ENDIF
+
+!~~~>  limit h IF necessary to avoid going beyond tend
+   h = min(h,abs(tend-t))
+
+!~~~>   compute the FUNCTION at current time
+   CALL funtemplate(t,y,fcn0)
+   istatus(nfun) = istatus(nfun)+ 1
+
+!~~~>  compute the FUNCTION derivative with respect to t
+   IF (.not.autonomous)THEN
+      CALL ros_funtimederivative(t,roundoff,y,&
+                fcn0,dfdt)
+   ENDIF
+
+!~~~>   compute the jacobian at current time
+   CALL jactemplate(t,y,jac0)
+   istatus(njac) = istatus(njac)+ 1
+
+!~~~>  repeat step calculation until current step accepted
+untilaccepted: do
+
+   CALL ros_preparematrix(h,direction,ros_gamma(1),&
+          jac0,ghimj,pivot,singular)
+   IF (singular)THEN ! more than 5 consecutive failed decompositions
+       CALL ros_errormsg(- 8,t,h,ierr)
+       RETURN
+   ENDIF
+
+!~~~>   compute the stages
+stage: DO istage = 1,ros_s
+
+      ! current istage offset. current istage vector is k(ioffset+ 1:ioffset+ n)
+       ioffset = n*(istage-1)
+
+      ! for the 1st istage the FUNCTION has been computed previously
+       IF(istage == 1)THEN
+         !slim: CALL wcopy(n,fcn0,1,fcn,1)
+	 fcn(1:n) = fcn0(1:n)
+      ! istage>1 and a new FUNCTION evaluation is needed at the current istage
+       ELSEIF(ros_newf(istage))THEN
+         !slim: CALL wcopy(n,y,1,ynew,1)
+	 ynew(1:n) = y(1:n)
+         DO j = 1,istage-1
+           CALL waxpy(n,ros_a((istage-1)*(istage-2)/2+ j),&
+            k(n*(j- 1)+ 1),1,ynew,1)
+         ENDDO
+         tau = t + ros_alpha(istage)*direction*h
+         CALL funtemplate(tau,ynew,fcn)
+         istatus(nfun) = istatus(nfun)+ 1
+       ENDIF ! IF istage == 1 ELSEIF ros_newf(istage)
+       !slim: CALL wcopy(n,fcn,1,k(ioffset+ 1),1)
+       k(ioffset+ 1:ioffset+ n) = fcn(1:n)
+       DO j = 1,istage-1
+         hc = ros_c((istage-1)*(istage-2)/2+ j)/(direction*h)
+         CALL waxpy(n,hc,k(n*(j- 1)+ 1),1,k(ioffset+ 1),1)
+       ENDDO
+       IF ((.not. autonomous).and.(ros_gamma(istage).ne.zero))THEN
+         hg = direction*h*ros_gamma(istage)
+         CALL waxpy(n,hg,dfdt,1,k(ioffset+ 1),1)
+       ENDIF
+       CALL ros_solve(ghimj,pivot,k(ioffset+ 1))
+
+   END DO stage
+
+
+!~~~>  compute the new solution
+   !slim: CALL wcopy(n,y,1,ynew,1)
+   ynew(1:n) = y(1:n)
+   DO j=1,ros_s
+         CALL waxpy(n,ros_m(j),k(n*(j- 1)+ 1),1,ynew,1)
+   ENDDO
+
+!~~~>  compute the error estimation
+   !slim: CALL wscal(n,zero,yerr,1)
+   yerr(1:n) = zero
+   DO j=1,ros_s
+        CALL waxpy(n,ros_e(j),k(n*(j- 1)+ 1),1,yerr,1)
+   ENDDO
+   err = ros_errornorm(y,ynew,yerr,abstol,reltol,vectortol)
+
+!~~~> new step size is bounded by facmin <= hnew/h <= facmax
+   fac  = min(facmax,max(facmin,facsafe/err**(one/ros_elo)))
+   hnew = h*fac
+
+!~~~>  check the error magnitude and adjust step size
+   istatus(nstp) = istatus(nstp)+ 1
+   IF((err <= one).or.(h <= hmin))THEN  !~~~> accept step
+      istatus(nacc) = istatus(nacc)+ 1
+      !slim: CALL wcopy(n,ynew,1,y,1)
+      y(1:n) = ynew(1:n)
+      t = t + direction*h
+      hnew = max(hmin,min(hnew,hmax))
+      IF (rejectlasth)THEN  ! no step size increase after a rejected step
+         hnew = min(hnew,h)
+      ENDIF
+      rstatus(nhexit) = h
+      rstatus(nhnew) = hnew
+      rstatus(ntexit) = t
+      rejectlasth = .false.
+      rejectmoreh = .false.
+      h = hnew
+      exit untilaccepted ! exit the loop: WHILE step not accepted
+   ELSE           !~~~> reject step
+      IF (rejectmoreh)THEN
+         hnew = h*facrej
+      ENDIF
+      rejectmoreh = rejectlasth
+      rejectlasth = .true.
+      h = hnew
+      IF (istatus(nacc)>= 1) istatus(nrej) = istatus(nrej)+ 1
+   ENDIF ! err <= 1
+
+   END DO untilaccepted
+
+   END DO timeloop
+
+!~~~> succesful exit
+   ierr = 1  !~~~> the integration was successful
+
+  END SUBROUTINE ros_integrator
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  REAL(kind=dp)FUNCTION ros_errornorm(y,ynew,yerr,&
+                               abstol,reltol,vectortol)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> computes the "scaled norm" of the error vector yerr
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+! Input arguments
+   REAL(kind=dp),INTENT(in):: y(n),ynew(n),&
+          yerr(n),abstol(n),reltol(n)
+   LOGICAL,INTENT(in)::  vectortol
+! Local variables
+   REAL(kind=dp):: err,scale,ymax
+   INTEGER  :: i
+   REAL(kind=dp),PARAMETER :: zero = 0.0_dp
+
+   err = zero
+   DO i=1,n
+     ymax = max(abs(y(i)),abs(ynew(i)))
+     IF (vectortol)THEN
+       scale = abstol(i)+ reltol(i)*ymax
+     ELSE
+       scale = abstol(1)+ reltol(1)*ymax
+     ENDIF
+     err = err+(yerr(i)/scale)**2
+   ENDDO
+   err  = sqrt(err/n)
+
+   ros_errornorm = max(err,1.0d-10)
+
+  END FUNCTION ros_errornorm
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE ros_funtimederivative(t,roundoff,y,&
+                fcn0,dfdt)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> the time partial derivative of the FUNCTION by finite differences
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+!~~~> input arguments
+   REAL(kind=dp),INTENT(in):: t,roundoff,y(n),fcn0(n)
+!~~~> output arguments
+   REAL(kind=dp),INTENT(out):: dfdt(n)
+!~~~> local variables
+   REAL(kind=dp):: delta
+   REAL(kind=dp),PARAMETER :: one = 1.0_dp, deltamin = 1.0e-6_dp
+
+   delta = sqrt(roundoff)*max(deltamin,abs(t))
+   CALL funtemplate(t+ delta,y,dfdt)
+   istatus(nfun) = istatus(nfun)+ 1
+   CALL waxpy(n,(- one),fcn0,1,dfdt,1)
+   CALL wscal(n,(one/delta),dfdt,1)
+
+  END SUBROUTINE ros_funtimederivative
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE ros_preparematrix(h,direction,gam,&
+             jac0,ghimj,pivot,singular)
+! --- --- --- --- --- --- --- --- --- --- --- --- ---
+!  Prepares the LHS matrix for stage calculations
+!  1.  Construct Ghimj = 1/(H*ham) - Jac0
+!      "(Gamma H) Inverse Minus Jacobian"
+!  2.  Repeat LU decomposition of Ghimj until successful.
+!       -half the step size if LU decomposition fails and retry
+!       -exit after 5 consecutive fails
+! --- --- --- --- --- --- --- --- --- --- --- --- ---
+
+!~~~> input arguments
+#ifdef full_algebra    
+   REAL(kind=dp),INTENT(in)::  jac0(n,n)
+#else
+   REAL(kind=dp),INTENT(in)::  jac0(lu_nonzero)
+#endif   
+   REAL(kind=dp),INTENT(in)::  gam
+   INTEGER,INTENT(in)::  direction
+!~~~> output arguments
+#ifdef full_algebra    
+   REAL(kind=dp),INTENT(out):: ghimj(n,n)
+#else
+   REAL(kind=dp),INTENT(out):: ghimj(lu_nonzero)
+#endif   
+   LOGICAL,INTENT(out)::  singular
+   INTEGER,INTENT(out)::  pivot(n)
+!~~~> inout arguments
+   REAL(kind=dp),INTENT(inout):: h   ! step size is decreased when lu fails
+!~~~> local variables
+   INTEGER  :: i,ising,nconsecutive
+   REAL(kind=dp):: ghinv
+   REAL(kind=dp),PARAMETER :: one  = 1.0_dp, half = 0.5_dp
+
+   nconsecutive = 0
+   singular = .true.
+
+   DO WHILE (singular)
+
+!~~~>    construct ghimj = 1/(h*gam)-  jac0
+#ifdef full_algebra    
+     !slim: CALL wcopy(n*n,jac0,1,ghimj,1)
+     !slim: CALL wscal(n*n,(- one),ghimj,1)
+     ghimj = - jac0
+     ghinv = one/(direction*h*gam)
+     DO i=1,n
+       ghimj(i,i) = ghimj(i,i)+ ghinv
+     ENDDO
+#else
+     !slim: CALL wcopy(lu_nonzero,jac0,1,ghimj,1)
+     !slim: CALL wscal(lu_nonzero,(- one),ghimj,1)
+     ghimj(1:lu_nonzero) = - jac0(1:lu_nonzero)
+     ghinv = one/(direction*h*gam)
+     DO i=1,n
+       ghimj(lu_diag(i)) = ghimj(lu_diag(i))+ ghinv
+     ENDDO
+#endif   
+!~~~>    compute lu decomposition
+     CALL ros_decomp( ghimj,pivot,ising)
+     IF (ising == 0)THEN
+!~~~>    IF successful done
+        singular = .false.
+     ELSE ! ising .ne. 0
+!~~~>    IF unsuccessful half the step size; IF 5 consecutive fails THEN RETURN
+        istatus(nsng) = istatus(nsng)+ 1
+        nconsecutive = nconsecutive+1
+        singular = .true.
+        PRINT*,'Warning: LU Decomposition returned ISING = ',ISING
+        IF (nconsecutive <= 5)THEN ! less than 5 consecutive failed decompositions
+           h = h*half
+        ELSE  ! more than 5 consecutive failed decompositions
+           RETURN
+        ENDIF  ! nconsecutive
+      ENDIF    ! ising
+
+   END DO ! WHILE singular
+
+  END SUBROUTINE ros_preparematrix
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE ros_decomp( a,pivot,ising)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!  Template for the LU decomposition
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> inout variables
+#ifdef full_algebra    
+   REAL(kind=dp),INTENT(inout):: a(n,n)
+#else   
+   REAL(kind=dp),INTENT(inout):: a(lu_nonzero)
+#endif
+!~~~> output variables
+   INTEGER,INTENT(out):: pivot(n),ising
+
+#ifdef full_algebra    
+   CALL  dgetrf( n,n,a,n,pivot,ising)
+#else   
+   CALL kppdecomp(a,ising)
+   pivot(1) = 1
+#endif
+   istatus(ndec) = istatus(ndec)+ 1
+
+  END SUBROUTINE ros_decomp
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE ros_solve( a,pivot,b)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!  Template for the forward/backward substitution (using pre-computed LU decomposition)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> input variables
+#ifdef full_algebra    
+   REAL(kind=dp),INTENT(in):: a(n,n)
+   INTEGER :: ising
+#else   
+   REAL(kind=dp),INTENT(in):: a(lu_nonzero)
+#endif
+   INTEGER,INTENT(in):: pivot(n)
+!~~~> inout variables
+   REAL(kind=dp),INTENT(inout):: b(n)
+
+#ifdef full_algebra    
+   CALL  DGETRS( 'N',N ,1,A,N,Pivot,b,N,ISING)
+   IF(info < 0)THEN
+      print*,"error in dgetrs. ising=",ising
+   ENDIF  
+#else   
+   CALL kppsolve( a,b)
+#endif
+
+   istatus(nsol) = istatus(nsol)+ 1
+
+  END SUBROUTINE ros_solve
+
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE ros2
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! --- AN L-STABLE METHOD,2 stages,order 2
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+   double precision g
+
+    g = 1.0_dp + 1.0_dp/sqrt(2.0_dp)
+    rosmethod = rs2
+!~~~> name of the method
+    ros_Name = 'ROS-2'
+!~~~> number of stages
+    ros_s = 2
+
+!~~~> the coefficient matrices a and c are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1),A(3,1) =ros_A(2),A(3,2) =ros_A(3),etc.
+!   The general mapping formula is:
+!       A(i,j) = ros_A( (i-1)*(i-2)/2 + j)
+!       C(i,j) = ros_C( (i-1)*(i-2)/2 + j)
+
+    ros_a(1) = (1.0_dp)/g
+    ros_c(1) = (- 2.0_dp)/g
+!~~~> does the stage i require a new FUNCTION evaluation (ros_newf(i) =true)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i) =FALSE)
+    ros_newf(1) = .true.
+    ros_newf(2) = .true.
+!~~~> m_i = coefficients for new step solution
+    ros_m(1) = (3.0_dp)/(2.0_dp*g)
+    ros_m(2) = (1.0_dp)/(2.0_dp*g)
+! E_i = Coefficients for error estimator
+    ros_e(1) = 1.0_dp/(2.0_dp*g)
+    ros_e(2) = 1.0_dp/(2.0_dp*g)
+!~~~> ros_elo = estimator of local order -  the minimum between the
+!    main and the embedded scheme orders plus one
+    ros_elo = 2.0_dp
+!~~~> y_stage_i ~ y( t + h*alpha_i)
+    ros_alpha(1) = 0.0_dp
+    ros_alpha(2) = 1.0_dp
+!~~~> gamma_i = \sum_j  gamma_{i,j}
+    ros_gamma(1) = g
+    ros_gamma(2) =- g
+
+ END SUBROUTINE ros2
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE ros3
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! --- AN L-STABLE METHOD,3 stages,order 3,2 function evaluations
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+   rosmethod = rs3
+!~~~> name of the method
+   ros_Name = 'ROS-3'
+!~~~> number of stages
+   ros_s = 3
+
+!~~~> the coefficient matrices a and c are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1),A(3,1) =ros_A(2),A(3,2) =ros_A(3),etc.
+!   The general mapping formula is:
+!       A(i,j) = ros_A( (i-1)*(i-2)/2 + j)
+!       C(i,j) = ros_C( (i-1)*(i-2)/2 + j)
+
+   ros_a(1) = 1.0_dp
+   ros_a(2) = 1.0_dp
+   ros_a(3) = 0.0_dp
+
+   ros_c(1) = - 0.10156171083877702091975600115545e+01_dp
+   ros_c(2) =  0.40759956452537699824805835358067e+01_dp
+   ros_c(3) =  0.92076794298330791242156818474003e+01_dp
+!~~~> does the stage i require a new FUNCTION evaluation (ros_newf(i) =true)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i) =FALSE)
+   ros_newf(1) = .true.
+   ros_newf(2) = .true.
+   ros_newf(3) = .false.
+!~~~> m_i = coefficients for new step solution
+   ros_m(1) =  0.1e+01_dp
+   ros_m(2) =  0.61697947043828245592553615689730e+01_dp
+   ros_m(3) = - 0.42772256543218573326238373806514_dp
+! E_i = Coefficients for error estimator
+   ros_e(1) =  0.5_dp
+   ros_e(2) = - 0.29079558716805469821718236208017e+01_dp
+   ros_e(3) =  0.22354069897811569627360909276199_dp
+!~~~> ros_elo = estimator of local order -  the minimum between the
+!    main and the embedded scheme orders plus 1
+   ros_elo = 3.0_dp
+!~~~> y_stage_i ~ y( t + h*alpha_i)
+   ros_alpha(1) = 0.0_dp
+   ros_alpha(2) = 0.43586652150845899941601945119356_dp
+   ros_alpha(3) = 0.43586652150845899941601945119356_dp
+!~~~> gamma_i = \sum_j  gamma_{i,j}
+   ros_gamma(1) = 0.43586652150845899941601945119356_dp
+   ros_gamma(2) = 0.24291996454816804366592249683314_dp
+   ros_gamma(3) = 0.21851380027664058511513169485832e+01_dp
+
+  END SUBROUTINE ros3
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE ros4
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!     L-STABLE ROSENBROCK METHOD OF ORDER 4,WITH 4 STAGES
+!     L-STABLE EMBEDDED ROSENBROCK METHOD OF ORDER 3
+!
+!      E. HAIRER AND G. WANNER,SOLVING ORDINARY DIFFERENTIAL
+!      EQUATIONS II. STIFF AND DIFFERENTIAL-ALGEBRAIC PROBLEMS.
+!      SPRINGER SERIES IN COMPUTATIONAL MATHEMATICS,
+!      SPRINGER-VERLAG (1990)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+   rosmethod = rs4
+!~~~> name of the method
+   ros_Name = 'ROS-4'
+!~~~> number of stages
+   ros_s = 4
+
+!~~~> the coefficient matrices a and c are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1),A(3,1) =ros_A(2),A(3,2) =ros_A(3),etc.
+!   The general mapping formula is:
+!       A(i,j) = ros_A( (i-1)*(i-2)/2 + j)
+!       C(i,j) = ros_C( (i-1)*(i-2)/2 + j)
+
+   ros_a(1) = 0.2000000000000000e+01_dp
+   ros_a(2) = 0.1867943637803922e+01_dp
+   ros_a(3) = 0.2344449711399156_dp
+   ros_a(4) = ros_a(2)
+   ros_a(5) = ros_a(3)
+   ros_a(6) = 0.0_dp
+
+   ros_c(1) =- 0.7137615036412310e+01_dp
+   ros_c(2) = 0.2580708087951457e+01_dp
+   ros_c(3) = 0.6515950076447975_dp
+   ros_c(4) =- 0.2137148994382534e+01_dp
+   ros_c(5) =- 0.3214669691237626_dp
+   ros_c(6) =- 0.6949742501781779_dp
+!~~~> does the stage i require a new FUNCTION evaluation (ros_newf(i) =true)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i) =FALSE)
+   ros_newf(1) = .true.
+   ros_newf(2) = .true.
+   ros_newf(3) = .true.
+   ros_newf(4) = .false.
+!~~~> m_i = coefficients for new step solution
+   ros_m(1) = 0.2255570073418735e+01_dp
+   ros_m(2) = 0.2870493262186792_dp
+   ros_m(3) = 0.4353179431840180_dp
+   ros_m(4) = 0.1093502252409163e+01_dp
+!~~~> e_i  = coefficients for error estimator
+   ros_e(1) =- 0.2815431932141155_dp
+   ros_e(2) =- 0.7276199124938920e-01_dp
+   ros_e(3) =- 0.1082196201495311_dp
+   ros_e(4) =- 0.1093502252409163e+01_dp
+!~~~> ros_elo  = estimator of local order -  the minimum between the
+!    main and the embedded scheme orders plus 1
+   ros_elo  = 4.0_dp
+!~~~> y_stage_i ~ y( t + h*alpha_i)
+   ros_alpha(1) = 0.0_dp
+   ros_alpha(2) = 0.1145640000000000e+01_dp
+   ros_alpha(3) = 0.6552168638155900_dp
+   ros_alpha(4) = ros_alpha(3)
+!~~~> gamma_i = \sum_j  gamma_{i,j}
+   ros_gamma(1) = 0.5728200000000000_dp
+   ros_gamma(2) =- 0.1769193891319233e+01_dp
+   ros_gamma(3) = 0.7592633437920482_dp
+   ros_gamma(4) =- 0.1049021087100450_dp
+
+  END SUBROUTINE ros4
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE rodas3
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! --- A STIFFLY-STABLE METHOD,4 stages,order 3
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+   rosmethod = rd3
+!~~~> name of the method
+   ros_Name = 'RODAS-3'
+!~~~> number of stages
+   ros_s = 4
+
+!~~~> the coefficient matrices a and c are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1),A(3,1) =ros_A(2),A(3,2) =ros_A(3),etc.
+!   The general mapping formula is:
+!       A(i,j) = ros_A( (i-1)*(i-2)/2 + j)
+!       C(i,j) = ros_C( (i-1)*(i-2)/2 + j)
+
+   ros_a(1) = 0.0_dp
+   ros_a(2) = 2.0_dp
+   ros_a(3) = 0.0_dp
+   ros_a(4) = 2.0_dp
+   ros_a(5) = 0.0_dp
+   ros_a(6) = 1.0_dp
+
+   ros_c(1) = 4.0_dp
+   ros_c(2) = 1.0_dp
+   ros_c(3) =- 1.0_dp
+   ros_c(4) = 1.0_dp
+   ros_c(5) =- 1.0_dp
+   ros_c(6) =- (8.0_dp/3.0_dp)
+
+!~~~> does the stage i require a new FUNCTION evaluation (ros_newf(i) =true)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i) =FALSE)
+   ros_newf(1) = .true.
+   ros_newf(2) = .false.
+   ros_newf(3) = .true.
+   ros_newf(4) = .true.
+!~~~> m_i = coefficients for new step solution
+   ros_m(1) = 2.0_dp
+   ros_m(2) = 0.0_dp
+   ros_m(3) = 1.0_dp
+   ros_m(4) = 1.0_dp
+!~~~> e_i  = coefficients for error estimator
+   ros_e(1) = 0.0_dp
+   ros_e(2) = 0.0_dp
+   ros_e(3) = 0.0_dp
+   ros_e(4) = 1.0_dp
+!~~~> ros_elo  = estimator of local order -  the minimum between the
+!    main and the embedded scheme orders plus 1
+   ros_elo  = 3.0_dp
+!~~~> y_stage_i ~ y( t + h*alpha_i)
+   ros_alpha(1) = 0.0_dp
+   ros_alpha(2) = 0.0_dp
+   ros_alpha(3) = 1.0_dp
+   ros_alpha(4) = 1.0_dp
+!~~~> gamma_i = \sum_j  gamma_{i,j}
+   ros_gamma(1) = 0.5_dp
+   ros_gamma(2) = 1.5_dp
+   ros_gamma(3) = 0.0_dp
+   ros_gamma(4) = 0.0_dp
+
+  END SUBROUTINE rodas3
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE rodas4
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!     STIFFLY-STABLE ROSENBROCK METHOD OF ORDER 4,WITH 6 STAGES
+!
+!      E. HAIRER AND G. WANNER,SOLVING ORDINARY DIFFERENTIAL
+!      EQUATIONS II. STIFF AND DIFFERENTIAL-ALGEBRAIC PROBLEMS.
+!      SPRINGER SERIES IN COMPUTATIONAL MATHEMATICS,
+!      SPRINGER-VERLAG (1996)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+    rosmethod = rd4
+!~~~> name of the method
+    ros_Name = 'RODAS-4'
+!~~~> number of stages
+    ros_s = 6
+
+!~~~> y_stage_i ~ y( t + h*alpha_i)
+    ros_alpha(1) = 0.000_dp
+    ros_alpha(2) = 0.386_dp
+    ros_alpha(3) = 0.210_dp
+    ros_alpha(4) = 0.630_dp
+    ros_alpha(5) = 1.000_dp
+    ros_alpha(6) = 1.000_dp
+
+!~~~> gamma_i = \sum_j  gamma_{i,j}
+    ros_gamma(1) = 0.2500000000000000_dp
+    ros_gamma(2) =- 0.1043000000000000_dp
+    ros_gamma(3) = 0.1035000000000000_dp
+    ros_gamma(4) =- 0.3620000000000023e-01_dp
+    ros_gamma(5) = 0.0_dp
+    ros_gamma(6) = 0.0_dp
+
+!~~~> the coefficient matrices a and c are strictly lower triangular.
+!   The lower triangular (subdiagonal) elements are stored in row-wise order:
+!   A(2,1) = ros_A(1),A(3,1) =ros_A(2),A(3,2) =ros_A(3),etc.
+!   The general mapping formula is:  A(i,j) = ros_A( (i-1)*(i-2)/2 + j)
+!                  C(i,j) = ros_C( (i-1)*(i-2)/2 + j)
+
+    ros_a(1) = 0.1544000000000000e+01_dp
+    ros_a(2) = 0.9466785280815826_dp
+    ros_a(3) = 0.2557011698983284_dp
+    ros_a(4) = 0.3314825187068521e+01_dp
+    ros_a(5) = 0.2896124015972201e+01_dp
+    ros_a(6) = 0.9986419139977817_dp
+    ros_a(7) = 0.1221224509226641e+01_dp
+    ros_a(8) = 0.6019134481288629e+01_dp
+    ros_a(9) = 0.1253708332932087e+02_dp
+    ros_a(10) =- 0.6878860361058950_dp
+    ros_a(11) = ros_a(7)
+    ros_a(12) = ros_a(8)
+    ros_a(13) = ros_a(9)
+    ros_a(14) = ros_a(10)
+    ros_a(15) = 1.0_dp
+
+    ros_c(1) =- 0.5668800000000000e+01_dp
+    ros_c(2) =- 0.2430093356833875e+01_dp
+    ros_c(3) =- 0.2063599157091915_dp
+    ros_c(4) =- 0.1073529058151375_dp
+    ros_c(5) =- 0.9594562251023355e+01_dp
+    ros_c(6) =- 0.2047028614809616e+02_dp
+    ros_c(7) = 0.7496443313967647e+01_dp
+    ros_c(8) =- 0.1024680431464352e+02_dp
+    ros_c(9) =- 0.3399990352819905e+02_dp
+    ros_c(10) = 0.1170890893206160e+02_dp
+    ros_c(11) = 0.8083246795921522e+01_dp
+    ros_c(12) =- 0.7981132988064893e+01_dp
+    ros_c(13) =- 0.3152159432874371e+02_dp
+    ros_c(14) = 0.1631930543123136e+02_dp
+    ros_c(15) =- 0.6058818238834054e+01_dp
+
+!~~~> m_i = coefficients for new step solution
+    ros_m(1) = ros_a(7)
+    ros_m(2) = ros_a(8)
+    ros_m(3) = ros_a(9)
+    ros_m(4) = ros_a(10)
+    ros_m(5) = 1.0_dp
+    ros_m(6) = 1.0_dp
+
+!~~~> e_i  = coefficients for error estimator
+    ros_e(1) = 0.0_dp
+    ros_e(2) = 0.0_dp
+    ros_e(3) = 0.0_dp
+    ros_e(4) = 0.0_dp
+    ros_e(5) = 0.0_dp
+    ros_e(6) = 1.0_dp
+
+!~~~> does the stage i require a new FUNCTION evaluation (ros_newf(i) =true)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i) =FALSE)
+    ros_newf(1) = .true.
+    ros_newf(2) = .true.
+    ros_newf(3) = .true.
+    ros_newf(4) = .true.
+    ros_newf(5) = .true.
+    ros_newf(6) = .true.
+
+!~~~> ros_elo  = estimator of local order -  the minimum between the
+!        main and the embedded scheme orders plus 1
+    ros_elo = 4.0_dp
+
+  END SUBROUTINE rodas4
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  SUBROUTINE rang3
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! STIFFLY-STABLE W METHOD OF ORDER 3,WITH 4 STAGES
+!
+! J. RANG and L. ANGERMANN
+! NEW ROSENBROCK W-METHODS OF ORDER 3
+! FOR PARTIAL DIFFERENTIAL ALGEBRAIC
+!        EQUATIONS OF INDEX 1                                             
+! BIT Numerical Mathematics (2005) 45: 761-787
+!  DOI: 10.1007/s10543-005-0035-y
+! Table 4.1-4.2
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+    rosmethod = rg3
+!~~~> name of the method
+    ros_Name = 'RANG-3'
+!~~~> number of stages
+    ros_s = 4
+
+    ros_a(1) = 5.09052051067020d+00;
+    ros_a(2) = 5.09052051067020d+00;
+    ros_a(3) = 0.0d0;
+    ros_a(4) = 4.97628111010787d+00;
+    ros_a(5) = 2.77268164715849d-02;
+    ros_a(6) = 2.29428036027904d-01;
+
+    ros_c(1) = - 1.16790812312283d+01;
+    ros_c(2) = - 1.64057326467367d+01;
+    ros_c(3) = - 2.77268164715850d-01;
+    ros_c(4) = - 8.38103960500476d+00;
+    ros_c(5) = - 8.48328409199343d-01;
+    ros_c(6) =  2.87009860433106d-01;
+
+    ros_m(1) =  5.22582761233094d+00;
+    ros_m(2) = - 5.56971148154165d-01;
+    ros_m(3) =  3.57979469353645d-01;
+    ros_m(4) =  1.72337398521064d+00;
+
+    ros_e(1) = - 5.16845212784040d+00;
+    ros_e(2) = - 1.26351942603842d+00;
+    ros_e(3) = - 1.11022302462516d-16;
+    ros_e(4) =  2.22044604925031d-16;
+
+    ros_alpha(1) = 0.0d00;
+    ros_alpha(2) = 2.21878746765329d+00;
+    ros_alpha(3) = 2.21878746765329d+00;
+    ros_alpha(4) = 1.55392337535788d+00;
+
+    ros_gamma(1) =  4.35866521508459d-01;
+    ros_gamma(2) = - 1.78292094614483d+00;
+    ros_gamma(3) = - 2.46541900496934d+00;
+    ros_gamma(4) = - 8.05529997906370d-01;
+
+
+!~~~> does the stage i require a new FUNCTION evaluation (ros_newf(i) =true)
+!   or does it re-use the function evaluation from stage i-1 (ros_NewF(i) =FALSE)
+    ros_newf(1) = .true.
+    ros_newf(2) = .true.
+    ros_newf(3) = .true.
+    ros_newf(4) = .true.
+
+!~~~> ros_elo  = estimator of local order -  the minimum between the
+!        main and the embedded scheme orders plus 1
+    ros_elo = 3.0_dp
+
+  END SUBROUTINE rang3
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!   End of the set of internal Rosenbrock subroutines
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+END SUBROUTINE rosenbrock
+ 
+SUBROUTINE funtemplate( t,y,ydot)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!  Template for the ODE function call.
+!  Updates the rate coefficients (and possibly the fixed species) at each call
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> input variables
+   REAL(kind=dp):: t,y(nvar)
+!~~~> output variables
+   REAL(kind=dp):: ydot(nvar)
+!~~~> local variables
+   REAL(kind=dp):: told
+
+   told = time
+   time = t
+   CALL fun( y,fix,rconst,ydot)
+   time = told
+
+END SUBROUTINE funtemplate
+ 
+SUBROUTINE jactemplate( t,y,jcb)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!  Template for the ODE Jacobian call.
+!  Updates the rate coefficients (and possibly the fixed species) at each call
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!~~~> input variables
+    REAL(kind=dp):: t,y(nvar)
+!~~~> output variables
+#ifdef full_algebra    
+    REAL(kind=dp):: jv(lu_nonzero),jcb(nvar,nvar)
+#else
+    REAL(kind=dp):: jcb(lu_nonzero)
+#endif   
+!~~~> local variables
+    REAL(kind=dp):: told
+#ifdef full_algebra    
+    INTEGER :: i,j
+#endif   
+
+    told = time
+    time = t
+#ifdef full_algebra    
+    CALL jac_sp(y,fix,rconst,jv)
+    DO j=1,nvar
+      DO i=1,nvar
+         jcb(i,j) = 0.0_dp
+      ENDDO
+    ENDDO
+    DO i=1,lu_nonzero
+       jcb(lu_irow(i),lu_icol(i)) = jv(i)
+    ENDDO
+#else
+    CALL jac_sp( y,fix,rconst,jcb)
+#endif   
+    time = told
+
+END SUBROUTINE jactemplate
+ 
+SUBROUTINE chem_gasphase_integrate (time_step_len,conc,tempk,photo,ierrf,xnacc,xnrej,istatus,l_debug,pe) 
+                                                                    
+  IMPLICIT NONE                                                     
+                                                                    
+  REAL(dp), INTENT(IN)                    :: time_step_len           
+  REAL(dp), DIMENSION(:,:), INTENT(INOUT) :: conc                    
+  REAL(dp), DIMENSION(:,:), INTENT(INOUT) :: photo                   
+  REAL(dp), DIMENSION(:), INTENT(IN)      :: tempk                   
+  INTEGER, INTENT(OUT), OPTIONAL          :: ierrf(:)                
+  INTEGER, INTENT(OUT), OPTIONAL          :: xnacc(:)                
+  INTEGER, INTENT(OUT), OPTIONAL          :: xnrej(:)                
+  INTEGER, INTENT(INOUT), OPTIONAL        :: istatus(:)              
+  INTEGER, INTENT(IN), OPTIONAL           :: pe                      
+  LOGICAL, INTENT(IN), OPTIONAL           :: l_debug                 
+                                                                    
+  INTEGER                                 :: k   ! loop variable     
+  REAL(dp)                                :: dt                      
+  INTEGER, DIMENSION(20)                  :: istatus_u               
+  INTEGER                                 :: ierr_u                  
+                                                                    
+                                                                    
+  if (present (istatus)) istatus = 0                              
+                                                                    
+  DO k=1,vl_glo,vl_dim                                              
+    is = k                                                          
+    ie = min(k+vl_dim-1,vl_glo)                                     
+    vl = ie-is+1                                                    
+                                                                    
+    c(:) = conc(is,:)                                             
+                                                                    
+    temp = tempk(is)                                              
+                                                                    
+    phot(:) = photo(is,:)                                             
+                                                                    
+    CALL update_rconst                                              
+                                                                    
+    dt = time_step_len                                              
+                                                                    
+    ! integrate from t=0 to t=dt                                    
+    CALL integrate(0._dp, dt,icntrl,rcntrl,istatus_u = istatus_u,ierr_u=ierr_u)
+                                                                    
+                                                                    
+    IF (PRESENT(l_debug) .AND. PRESENT(pe)) THEN                       
+       IF (l_debug) CALL error_output(conc(is,:),ierr_u,pe)           
+    ENDIF                                                              
+    conc(is,:) = c(:)                                                  
+                                                                    
+    ! Return Diagnostic Information                                 
+                                                                    
+    if(PRESENT(ierrf))    ierrf(is) = ierr_u                      
+    if(PRESENT(xnacc))    xnacc(is) = istatus_u(4)                
+    if(PRESENT(xnrej))    xnrej(is) = istatus_u(5)                
+                                                                    
+    if (PRESENT (istatus)) then                                   
+      istatus(1:8) = istatus(1:8) + istatus_u(1:8)                 
+    ENDIF                                                          
+                                                                    
+  END DO                                                            
+ 
+                                                                    
+! Deallocate input arrays                                           
+                                                                    
+  if (ALLOCATED(temp))   DEALLOCATE(temp)   
+                                                                    
+  data_loaded = .false.                                             
+                                                                    
+  RETURN                                                            
+END SUBROUTINE chem_gasphase_integrate                                        
+ 
+  SUBROUTINE fill_temp(status,array) 
+ 
+    INTEGER, INTENT(OUT)               :: status 
+    REAL(dp), INTENT(IN), DIMENSION(:) :: array 
+ 
+    status = 0
+    IF (.not. ALLOCATED(temp)) & 
+       ALLOCATE(temp(size(array))) 
+ 
+    IF (data_loaded .AND. (vl_glo /= size(array,1))) THEN 
+       status = 1 
+       RETURN 
+    END IF 
+ 
+    vl_glo = size(array,1) 
+    temp = array 
+    data_loaded = .TRUE. 
+ 
+    RETURN
+ 
+  END   SUBROUTINE fill_temp
+
+END MODULE chem_gasphase_mod
+ 
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/module_header
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/module_header	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/module_header	(revision 2696)
@@ -0,0 +1,75 @@
+!------------------------------------------------------------------------------!
+!
+! ****** Module chem_gasphase_mod is automatically generated by kpp4palm ******
+!
+!           ********* Please do NOT change this Code *********
+!
+!------------------------------------------------------------------------------!
+! This file is part of PALM.
+!
+! PALM is free software: you can redistribute it and/or modify it under the
+! terms of the GNU General Public License as published by the Free Software
+! Foundation, either version 3 of the License, or (at your option) any later
+! version.
+!
+! PALM is distributed in the hope that it will be useful, but WITHOUT ANY
+! WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+! A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+!
+! You should have received a copy of the GNU General Public License along with
+! PALM. If not, see <http://www.gnu.org/licenses/>.
+!
+! Copyright 1997-2017 Leibniz Universitaet Hannover
+!--------------------------------------------------------------------------------!
+!
+! Current revisions:
+! ------------------
+! 
+! 
+! Former revisions:
+! -----------------
+! $Id: module_header 2460 2017-09-13 14:47:48Z forkel $
+!
+! 
+! Variables for photolyis added
+!
+!
+!
+!
+!
+! Nov. 2016: Intial version (Klaus Ketelsen)
+!
+!------------------------------------------------------------------------------!
+!
+
+
+! Set kpp Double Precision to PALM Default Precision
+
+  USE kinds,            ONLY: dp=>wp
+
+  USE pegrid,           ONLY: myid, threads_per_task
+
+  IMPLICIT        NONE
+  PRIVATE
+  !SAVE  ! NOTE: OCCURS AGAIN IN AUTOMATICALLY GENERATED CODE ...
+
+!  PUBLIC :: IERR_NAMES
+ 
+! PUBLIC :: SPC_NAMES, EQN_NAMES, EQN_TAGS, REQ_HET, REQ_AEROSOL, REQ_PHOTRAT &
+!         , REQ_MCFCT, IP_MAX, jname
+
+  PUBLIC :: eqn_names,  phot_names, spc_names
+  PUBLIC :: nmaxfixsteps
+  PUBLIC :: atol, rtol
+  PUBLIC :: nspec, nreact
+  PUBLIC :: temp
+  PUBLIC :: phot 
+  PUBLIC :: rconst
+  PUBLIC :: nvar
+  PUBLIC :: nphot
+ 
+  PUBLIC :: initialize, integrate, update_rconst
+  PUBLIC :: chem_gasphase_integrate
+  PUBLIC :: initialize_kpp_ctrl
+
+! END OF MODULE HEADER TEMPLATE
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/passive.eqn
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/passive.eqn	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/passive.eqn	(revision 2696)
@@ -0,0 +1,12 @@
+{passive.eqn
+Former revisions
+----------------
+ $Id$
+}
+#EQUATIONS
+
+{ passive: does nothing }
+
+  { 1.}  CO = CO :                       1.0_wp  ;
+  { 1.}  PM10 = PM10 :                   1.0_wp  ;
+  { 1.}  PM25 = PM25 :                   1.0_wp  ;
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/passive.spc
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/passive.spc	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/passive.spc	(revision 2696)
@@ -0,0 +1,21 @@
+{passive.spc
+Former revisions
+----------------
+ $Id$
+}
+#include atoms
+
+ #DEFVAR
+    CO      = C + O ;       {carbon monoxide}
+
+    PM10    = ignore ;
+    PM25    = ignore ;
+
+#DEFFIX
+    H2O         = H + 2O ;      {water}
+    H2          = 2H ;          {molecular hydrogen}
+    O2      = 2O ;          {molecular oxygen}
+    N2      = 2N ;          {molecular nitrogen}
+    CH4         = C + 4H ;      {methane}
+    CO2     = C + 2O ;      {carbon dioxide}
+
Index: palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/subroutine_list
===================================================================
--- palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/subroutine_list	(revision 2696)
+++ palm/trunk/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm/subroutine_list	(revision 2696)
@@ -0,0 +1,19 @@
+initialize
+integrate
+fun
+kppsolve
+kppdecomp
+wlamch
+wlamch_add
+jac_sp
+k_arr
+update_rconst
+arr2
+initialize_kpp_ctrl
+error_output
+wcopy
+wscal
+waxpy
+rosenbrock
+funtemplate
+jactemplate
Index: palm/trunk/UTIL/combine_plot_fields.f90
===================================================================
--- palm/trunk/UTIL/combine_plot_fields.f90	(revision 2693)
+++ palm/trunk/UTIL/combine_plot_fields.f90	(revision 2696)
@@ -2,9 +2,10 @@
 
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
-!
-! PALM is free software: you can redistribute it and/or modify it under the terms
-! of the GNU General Public License as published by the Free Software Foundation,
-! either version 3 of the License, or (at your option) any later version.
+! This file is part of the PALM model system.
+!
+! PALM is free software: you can redistribute it and/or modify it under the
+! terms of the GNU General Public License as published by the Free Software
+! Foundation, either version 3 of the License, or (at your option) any later
+! version.
 !
 ! PALM is distributed in the hope that it will be useful, but WITHOUT ANY
@@ -15,6 +16,6 @@
 ! PALM. If not, see <http://www.gnu.org/licenses/>.
 !
-! Copyright 1997-2014  Leibniz Universitaet Hannover
-!--------------------------------------------------------------------------------!
+! Copyright 1997-2017  Leibniz Universitaet Hannover
+!------------------------------------------------------------------------------!
 !
 ! Current revisions:
Index: palm/trunk/UTIL/combine_plot_fields_single_open.f90
===================================================================
--- palm/trunk/UTIL/combine_plot_fields_single_open.f90	(revision 2693)
+++ palm/trunk/UTIL/combine_plot_fields_single_open.f90	(revision 2696)
@@ -2,9 +2,10 @@
 
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
-!
-! PALM is free software: you can redistribute it and/or modify it under the terms
-! of the GNU General Public License as published by the Free Software Foundation,
-! either version 3 of the License, or (at your option) any later version.
+! This file is part of the PALM model system.
+!
+! PALM is free software: you can redistribute it and/or modify it under the
+! terms of the GNU General Public License as published by the Free Software
+! Foundation, either version 3 of the License, or (at your option) any later
+! version.
 !
 ! PALM is distributed in the hope that it will be useful, but WITHOUT ANY
@@ -15,6 +16,6 @@
 ! PALM. If not, see <http://www.gnu.org/licenses/>.
 !
-! Copyright 1997-2014  Leibniz Universitaet Hannover
-!--------------------------------------------------------------------------------!
+! Copyright 1997-2017  Leibniz Universitaet Hannover
+!------------------------------------------------------------------------------!
 !
 ! Current revisions:
@@ -40,5 +41,5 @@
 ! Vereinigung der von PARLES im Parallelbetrieb erzeugten Teilfelder zu
 ! gemeinsamen, das jeweilige Gesamtgebiet umfassenden Plotfeldern
-!-------------------------------------------------------------------------------!
+!------------------------------------------------------------------------------!
 
     IMPLICIT NONE
Index: palm/trunk/UTIL/compare_palm_logs.f90
===================================================================
--- palm/trunk/UTIL/compare_palm_logs.f90	(revision 2693)
+++ palm/trunk/UTIL/compare_palm_logs.f90	(revision 2696)
@@ -2,9 +2,10 @@
 
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
-!
-! PALM is free software: you can redistribute it and/or modify it under the terms
-! of the GNU General Public License as published by the Free Software Foundation,
-! either version 3 of the License, or (at your option) any later version.
+! This file is part of the PALM model system.
+!
+! PALM is free software: you can redistribute it and/or modify it under the
+! terms of the GNU General Public License as published by the Free Software
+! Foundation, either version 3 of the License, or (at your option) any later
+! version.
 !
 ! PALM is distributed in the hope that it will be useful, but WITHOUT ANY
@@ -15,6 +16,6 @@
 ! PALM. If not, see <http://www.gnu.org/licenses/>.
 !
-! Copyright 1997-2014  Leibniz Universitaet Hannover
-!--------------------------------------------------------------------------------!
+! Copyright 1997-2017  Leibniz Universitaet Hannover
+!------------------------------------------------------------------------------!
 !
 ! Current revisions:
Index: palm/trunk/UTIL/find_palm_config.f90
===================================================================
--- palm/trunk/UTIL/find_palm_config.f90	(revision 2693)
+++ palm/trunk/UTIL/find_palm_config.f90	(revision 2696)
@@ -2,9 +2,10 @@
 
 !------------------------------------------------------------------------------!
-! This file is part of PALM.
-!
-! PALM is free software: you can redistribute it and/or modify it under the terms
-! of the GNU General Public License as published by the Free Software Foundation,
-! either version 3 of the License, or (at your option) any later version.
+! This file is part of the PALM model system.
+!
+! PALM is free software: you can redistribute it and/or modify it under the
+! terms of the GNU General Public License as published by the Free Software
+! Foundation, either version 3 of the License, or (at your option) any later
+! version.
 !
 ! PALM is distributed in the hope that it will be useful, but WITHOUT ANY
@@ -15,6 +16,6 @@
 ! PALM. If not, see <http://www.gnu.org/licenses/>.
 !
-! Copyright 1997-2014  Leibniz Universitaet Hannover
-!--------------------------------------------------------------------------------!
+! Copyright 1997-2017  Leibniz Universitaet Hannover
+!------------------------------------------------------------------------------!
 !
 ! Current revisions:
Index: palm/trunk/UTIL/inifor/Makefile
===================================================================
--- palm/trunk/UTIL/inifor/Makefile	(revision 2696)
+++ palm/trunk/UTIL/inifor/Makefile	(revision 2696)
@@ -0,0 +1,105 @@
+#------------------------------------------------------------------------------#
+# This file is part of PALM/PALM-4U.
+#
+# PALM/PALM-4U is free software: you can redistribute it and/or modify it under 
+# the terms of the GNU General Public License as published by the Free Software
+# Foundation, either version 3 of the License, or (at your option) any later 
+# version.
+#
+# PALM/PALM-4U is distributed in the hope that it will be useful, but WITHOUT 
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# PALM. If not, see <http://www.gnu.org/licenses/>.
+#
+# Copyright 2017-2017 Leibniz Universitaet Hannover, Deutscher Wetterdienst
+# Offenbach
+#------------------------------------------------------------------------------#
+#
+# Current revisions:
+# -----------------
+# 
+# 
+# Former revisions:
+# -----------------
+# $Id$
+# Initial revision
+#
+# 
+#
+# Authors:
+# --------
+# @author Eckhard Kadasch
+#
+# Description:
+# ------------
+# This makefile may be used to exclusively compile INIFOR.
+#------------------------------------------------------------------------------#
+PROJECT = inifor
+PROJECT_PATH = .
+BIN_PATH  = $(PROJECT_PATH)/../../SCRIPTS
+SRC_PATH  = $(PROJECT_PATH)/src
+TEST_PATH = $(PROJECT_PATH)/tests
+
+MODULES = $(SRC_PATH)/defs.mod $(SRC_PATH)/util.mod $(SRC_PATH)/control.mod $(SRC_PATH)/types.mod $(SRC_PATH)/transform.mod $(SRC_PATH)/io.mod $(SRC_PATH)/grid.mod
+SOURCES = $(MODULES:%.mod=%.f90) $(SRC_PATH)/$(PROJECT).f90
+OBJECTS = $(SOURCES:%.f90=%.o)
+
+FC      = gfortran
+WRNGS   = -Wall -Wextra -Wsurprising -Waliasing -Wcharacter-truncation \
+		  -Wline-truncation -fbacktrace -fcheck=all -pedantic \
+		  -ffpe-trap=invalid,zero,underflow,overflow
+FFLAGS  = -fdefault-real-8 -Og -g $(WRNGS)
+INCLUDE = -I/home/ekadasch/local/include
+LIBRARY = -L/home/ekadasch/local/lib64 -lnetcdff
+
+.PHONY: all clean doc run tags test test-verbose $(PROJECT)
+
+$(PROJECT): $(OBJECTS) $(MODULES) tags
+	@echo ""
+	mkdir -p $(BIN_PATH)
+	$(FC) $(FFLAGS) $(OBJECTS) -o $(BIN_PATH)/$(PROJECT) -I$(SRC_PATH) $(LIBRARY)
+
+$(SRC_PATH)/%.o: $(SRC_PATH)/%.f90
+	@echo ""
+	$(FC) $(FFLAGS) -c $< -o $@ -J$(SRC_PATH) $(INCLUDE)
+
+$(SRC_PATH)/%.mod: $(SRC_PATH)/%.f90
+	@echo ""
+	$(FC) $(FFLAGS) -c $< -o $(@:%.mod=%.o) -J$(SRC_PATH) $(INCLUDE)
+
+all: clean $(PROJECT) test doc
+
+clean:
+	@echo ""
+	rm -rf $(OBJECTS) $(MODULES) $(BIN_PATH)/$(PROJECT)
+	rm -rf *.mod *.o
+	rm -rf ./doc/latex ./doc/html
+	rm -f $(SRC_PATH)/tags
+	rm -f *.files
+	rm -f palm-hsurf.nc
+	$(MAKE) -C $(TEST_PATH) clean
+	$(MAKE) -C $(SRC_PATH) clean
+
+doc:
+	@echo ""
+	doxygen ./doc/doxygen.config
+
+run: $(PROJECT)
+	@echo ""
+	$(BIN_PATH)/$(PROJECT)
+
+tags:
+	@echo ""
+	$(MAKE) -C $(SRC_PATH) tags
+
+test:
+	@echo "Running tests"
+	$(MAKE) -C $(TEST_PATH) test | grep Test
+	@echo "...done testing"
+
+test-verbose:
+	@echo "Running tests"
+	$(MAKE) -C $(TEST_PATH) test
+	@echo "...done testing"
Index: palm/trunk/UTIL/inifor/Makefile.gnu
===================================================================
--- palm/trunk/UTIL/inifor/Makefile.gnu	(revision 2696)
+++ palm/trunk/UTIL/inifor/Makefile.gnu	(revision 2696)
@@ -0,0 +1,105 @@
+#------------------------------------------------------------------------------#
+# This file is part of PALM/PALM-4U.
+#
+# PALM/PALM-4U is free software: you can redistribute it and/or modify it under 
+# the terms of the GNU General Public License as published by the Free Software
+# Foundation, either version 3 of the License, or (at your option) any later 
+# version.
+#
+# PALM/PALM-4U is distributed in the hope that it will be useful, but WITHOUT 
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# PALM. If not, see <http://www.gnu.org/licenses/>.
+#
+# Copyright 2017-2017 Leibniz Universitaet Hannover, Deutscher Wetterdienst
+# Offenbach
+#------------------------------------------------------------------------------#
+#
+# Current revisions:
+# -----------------
+# 
+# 
+# Former revisions:
+# -----------------
+# $Id$
+# Initial revision
+#
+# 
+#
+# Authors:
+# --------
+# @author Eckhard Kadasch
+#
+# Description:
+# ------------
+# This file serves as a templete makefile for compiling INIFOR with gfortran.
+#------------------------------------------------------------------------------#
+PROJECT = inifor
+PROJECT_PATH = .
+BIN_PATH  = $(PROJECT_PATH)/bin
+SRC_PATH  = $(PROJECT_PATH)/src
+TEST_PATH = $(PROJECT_PATH)/tests
+
+MODULES = $(SRC_PATH)/defs.mod $(SRC_PATH)/control.mod $(SRC_PATH)/util.mod $(SRC_PATH)/types.mod $(SRC_PATH)/transform.mod $(SRC_PATH)/io.mod $(SRC_PATH)/grid.mod
+SOURCES = $(MODULES:%.mod=%.f90) $(SRC_PATH)/$(PROJECT).f90
+OBJECTS = $(SOURCES:%.f90=%.o)
+
+FC      = gfortran
+WRNGS   = -Wall -Wextra -Wsurprising -Waliasing -Wcharacter-truncation \
+		  -Wline-truncation -fbacktrace -fcheck=all -pedantic \
+		  -ffpe-trap=invalid,zero,underflow,overflow
+FFLAGS  = -fdefault-real-8 -Og -g $(WRNGS)
+INCLUDE = -I/home/ekadasch/local/include
+LIBRARY = -L/home/ekadasch/local/lib64 -lnetcdff
+
+.PHONY: all clean doc run tags test test-verbose $(PROJECT)
+
+$(PROJECT): $(OBJECTS) $(MODULES)
+	@echo ""
+	mkdir -p $(BIN_PATH)
+	$(FC) $(FFLAGS) $(OBJECTS) -o $(BIN_PATH)/$(PROJECT) -I$(SRC_PATH) $(LIBRARY)
+
+$(SRC_PATH)/%.o: $(SRC_PATH)/%.f90
+	@echo ""
+	$(FC) $(FFLAGS) -c $< -o $@ -J$(SRC_PATH) $(INCLUDE)
+
+$(SRC_PATH)/%.mod: $(SRC_PATH)/%.f90
+	@echo ""
+	$(FC) $(FFLAGS) -c $< -o $(@:%.mod=%.o) -J$(SRC_PATH) $(INCLUDE)
+
+all: clean $(PROJECT) test doc
+
+clean:
+	@echo ""
+	rm -rf $(OBJECTS) $(MODULES) $(BIN_PATH)/$(PROJECT)
+	rm -rf *.mod *.o
+	rm -rf ./doc/latex ./doc/html
+	rm -f $(SRC_PATH)/tags
+	rm -f *.files
+	rm -f palm-hsurf.nc
+	$(MAKE) -C $(TEST_PATH) clean
+	$(MAKE) -C $(SRC_PATH) clean
+
+doc:
+	@echo ""
+	doxygen ./doc/doxygen.config
+
+run: $(PROJECT)
+	@echo ""
+	$(BIN_PATH)/$(PROJECT)
+
+tags:
+	@echo ""
+	$(MAKE) -C $(SRC_PATH) tags
+
+test:
+	@echo "Running tests"
+	$(MAKE) -C $(TEST_PATH) test | grep Test
+	@echo "...done testing"
+
+test-verbose:
+	@echo "Running tests"
+	$(MAKE) -C $(TEST_PATH) test
+	@echo "...done testing"
Index: palm/trunk/UTIL/inifor/Makefile.ifort
===================================================================
--- palm/trunk/UTIL/inifor/Makefile.ifort	(revision 2696)
+++ palm/trunk/UTIL/inifor/Makefile.ifort	(revision 2696)
@@ -0,0 +1,102 @@
+#------------------------------------------------------------------------------#
+# This file is part of PALM/PALM-4U.
+#
+# PALM/PALM-4U is free software: you can redistribute it and/or modify it under 
+# the terms of the GNU General Public License as published by the Free Software
+# Foundation, either version 3 of the License, or (at your option) any later 
+# version.
+#
+# PALM/PALM-4U is distributed in the hope that it will be useful, but WITHOUT 
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# PALM. If not, see <http://www.gnu.org/licenses/>.
+#
+# Copyright 2017-2017 Leibniz Universitaet Hannover, Deutscher Wetterdienst
+# Offenbach
+#------------------------------------------------------------------------------#
+#
+# Current revisions:
+# -----------------
+# 
+# 
+# Former revisions:
+# -----------------
+# $Id$
+# Initial revision
+#
+# 
+#
+# Authors:
+# --------
+# @author Eckhard Kadasch
+#
+# Description:
+# ------------
+# This file serves as a templete makefile for compiling INIFOR with ifort.
+#------------------------------------------------------------------------------#
+PROJECT = inifor
+PROJECT_PATH = .
+BIN_PATH  = $(PROJECT_PATH)/bin
+SRC_PATH  = $(PROJECT_PATH)/src
+TEST_PATH = $(PROJECT_PATH)/tests
+
+MODULES = $(SRC_PATH)/defs.mod $(SRC_PATH)/control.mod $(SRC_PATH)/util.mod $(SRC_PATH)/types.mod $(SRC_PATH)/transform.mod $(SRC_PATH)/io.mod $(SRC_PATH)/grid.mod
+SOURCES = $(MODULES:%.mod=%.f90) $(SRC_PATH)/$(PROJECT).f90
+OBJECTS = $(SOURCES:%.f90=%.o)
+
+FC      = ifort
+FFLAGS  = -g -real-size 64 -no-wrap-margin
+INCLUDE = -I/usr/local/pkg/netcdf/4.3.2/include
+LIBRARY = -L/usr/local/pkg/netcdf/4.3.2/lib -lnetcdff
+
+.PHONY: all clean doc run tags test test-verbose $(PROJECT)
+
+$(PROJECT): $(OBJECTS) $(MODULES)
+	@echo ""
+	mkdir -p $(BIN_PATH)
+	$(FC) $(FFLAGS) $(OBJECTS) -o $(BIN_PATH)/$(PROJECT) -I$(SRC_PATH) $(LIBRARY)
+
+$(SRC_PATH)/%.o: $(SRC_PATH)/%.f90
+	@echo ""
+	$(FC) $(FFLAGS) -c $< -o $@ -module $(SRC_PATH) $(INCLUDE)
+
+$(SRC_PATH)/%.mod: $(SRC_PATH)/%.f90
+	@echo ""
+	$(FC) $(FFLAGS) -c $< -o $(@:%.mod=%.o) -module $(SRC_PATH) $(INCLUDE)
+
+all: clean $(PROJECT) test doc
+
+clean:
+	@echo ""
+	rm -rf $(OBJECTS) $(MODULES) $(BIN_PATH)/$(PROJECT)
+	rm -rf *.mod *.o
+	rm -rf ./doc/latex ./doc/html
+	rm -f $(SRC_PATH)/tags
+	rm -f *.files
+	rm -f palm-hsurf.nc
+	$(MAKE) -C $(TEST_PATH) clean
+	$(MAKE) -C $(SRC_PATH) tags
+
+doc:
+	@echo ""
+	doxygen ./doc/doxygen.config
+
+run: $(PROJECT)
+	@echo ""
+	$(BIN_PATH)/$(PROJECT)
+
+tags:
+	@echo ""
+	$(MAKE) -C $(SRC_PATH) tags
+
+test:
+	@echo "Running tests"
+	$(MAKE) -C $(TEST_PATH) test | grep Test
+	@echo "...done testing"
+
+test-verbose:
+	@echo "Running tests"
+	$(MAKE) -C $(TEST_PATH) test
+	@echo "...done testing"
Index: palm/trunk/UTIL/inifor/README
===================================================================
--- palm/trunk/UTIL/inifor/README	(revision 2696)
+++ palm/trunk/UTIL/inifor/README	(revision 2696)
@@ -0,0 +1,58 @@
+INIFOR - Initialization and Forcing of PALM-4U (v1.1.5)
+
+INIFOR provides the meteorological fields required to initialize and drive the
+urban-climate model PALM-4U. The required meteorological fields are
+interpolated from output data of the meso-scale model COSMO.
+
+COMPILATION
+
+1. Customize ./Makefile and ./tests/Makefile (netCDF library location, compiler
+   and parameters, use Makefile.ifort as a template if you want to use the Intel
+   Fortran compiler)
+2. $ make
+
+USAGE
+
+1. Customize ./namelist (number or grid points and spacings, end_time)
+2. $ ./bin/inifor -path <scenario path> -date <YYYYMMDD> -clat <latitude> -clon <longitude>
+
+All COMMAND-LINE PARAMETERS
+
+-date <date>: Start date of the simulation in the form YYYMMDD. Currently,
+    INIFOR assumes that the simulation starts at O UTC on that day.
+    Default: 20130721
+
+-hhl <netCDF file>: Location of the netCDF file containing the vertical COSMO-DE
+    grid (hhh = height of half layers, i.e. vertical cell faces).
+    Default: <scenario path>/hhl.nc
+
+-mode profile: Produce average profiles instead of three-dimensional fields as 
+    initial conditions.
+
+-n <namelist file>: Location of the PALM-4U namelist file. INIFOR expects the
+    file to contain two namelists, inipar and d3par, from which it will read
+    grid parameters and the simulation time. Default: ./namelist
+
+-o <ouput file>: Name of the INIFOR output file. Default: ./palm-4u-input.nc
+
+-p0 <pressure>: Surface pressure at z=0 in the PALM-4U domain [Pa].
+    Default: 1e5 Pa = 1000 hPa
+
+-path <scenario path>: Scenario path, i.e. the path of the meteorological input
+    data. Default: ./
+
+-soil <netCDF file>: Location of the netCDF file containing the COSMO-DE soil type
+    map.
+    Default: <scenario path>/soil.nc
+
+-static <static driver file>: Location of the netCDF file containing the static
+    driver file for the case to be simulated with PALM-4U. Optional parameter.
+    Default: None
+
+-ug <velocity>: Specifies the geostrophic wind in x direction [m/s]. Default: 0
+
+-vg <velocity>: Specifies the geostrophic wind in y direction [m/s]. Default: 0
+
+-z0 <height>: Specifies the elevation of the the PALM-4U domain above sea level [m].
+    Default: 35 m
+
Index: palm/trunk/UTIL/inifor/doc/doxygen.config
===================================================================
--- palm/trunk/UTIL/inifor/doc/doxygen.config	(revision 2696)
+++ palm/trunk/UTIL/inifor/doc/doxygen.config	(revision 2696)
@@ -0,0 +1,2331 @@
+# Doxyfile 1.8.8
+
+# This file describes the settings to be used by the documentation system
+# doxygen (www.doxygen.org) for a project.
+#
+# All text after a double hash (##) is considered a comment and is placed in
+# front of the TAG it is preceding.
+#
+# All text after a single hash (#) is considered a comment and will be ignored.
+# The format is:
+# TAG = value [value, ...]
+# For lists, items can also be appended using:
+# TAG += value [value, ...]
+# Values that contain spaces should be placed between quotes (\" \").
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+
+# This tag specifies the encoding used for all characters in the config file
+# that follow. The default is UTF-8 which is also the encoding used for all text
+# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv
+# built into libc) for the transcoding. See http://www.gnu.org/software/libiconv
+# for the list of possible encodings.
+# The default value is: UTF-8.
+
+DOXYFILE_ENCODING      = UTF-8
+
+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by
+# double-quotes, unless you are using Doxywizard) that should identify the
+# project for which the documentation is generated. This name is used in the
+# title of most generated pages and in a few other places.
+# The default value is: My Project.
+
+PROJECT_NAME           = "INIFOR"
+
+# The PROJECT_NUMBER tag can be used to enter a project or revision number. This
+# could be handy for archiving the generated documentation or if some version
+# control system is used.
+
+PROJECT_NUMBER         =
+
+# Using the PROJECT_BRIEF tag one can provide an optional one line description
+# for a project that appears at the top of each page and should give viewer a
+# quick idea about the purpose of the project. Keep the description short.
+
+PROJECT_BRIEF          =
+
+# With the PROJECT_LOGO tag one can specify an logo or icon that is included in
+# the documentation. The maximum height of the logo should not exceed 55 pixels
+# and the maximum width should not exceed 200 pixels. Doxygen will copy the logo
+# to the output directory.
+
+PROJECT_LOGO           =
+
+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path
+# into which the generated documentation will be written. If a relative path is
+# entered, it will be relative to the location where doxygen was started. If
+# left blank the current directory will be used.
+
+OUTPUT_DIRECTORY       = ./doc/
+
+# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 4096 sub-
+# directories (in 2 levels) under the output directory of each output format and
+# will distribute the generated files over these directories. Enabling this
+# option can be useful when feeding doxygen a huge amount of source files, where
+# putting all generated files in the same directory would otherwise causes
+# performance problems for the file system.
+# The default value is: NO.
+
+CREATE_SUBDIRS         = NO
+
+# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII
+# characters to appear in the names of generated files. If set to NO, non-ASCII
+# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode
+# U+3044.
+# The default value is: NO.
+
+ALLOW_UNICODE_NAMES    = NO
+
+# The OUTPUT_LANGUAGE tag is used to specify the language in which all
+# documentation generated by doxygen is written. Doxygen will use this
+# information to generate all constant output in the proper language.
+# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese,
+# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States),
+# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian,
+# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages),
+# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian,
+# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian,
+# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish,
+# Ukrainian and Vietnamese.
+# The default value is: English.
+
+OUTPUT_LANGUAGE        = English
+
+# If the BRIEF_MEMBER_DESC tag is set to YES doxygen will include brief member
+# descriptions after the members that are listed in the file and class
+# documentation (similar to Javadoc). Set to NO to disable this.
+# The default value is: YES.
+
+BRIEF_MEMBER_DESC      = YES
+
+# If the REPEAT_BRIEF tag is set to YES doxygen will prepend the brief
+# description of a member or function before the detailed description
+#
+# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
+# brief descriptions will be completely suppressed.
+# The default value is: YES.
+
+REPEAT_BRIEF           = YES
+
+# This tag implements a quasi-intelligent brief description abbreviator that is
+# used to form the text in various listings. Each string in this list, if found
+# as the leading text of the brief description, will be stripped from the text
+# and the result, after processing the whole list, is used as the annotated
+# text. Otherwise, the brief description is used as-is. If left blank, the
+# following values are used ($name is automatically replaced with the name of
+# the entity):The $name class, The $name widget, The $name file, is, provides,
+# specifies, contains, represents, a, an and the.
+
+ABBREVIATE_BRIEF       =
+
+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
+# doxygen will generate a detailed section even if there is only a brief
+# description.
+# The default value is: NO.
+
+ALWAYS_DETAILED_SEC    = NO
+
+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
+# inherited members of a class in the documentation of that class as if those
+# members were ordinary class members. Constructors, destructors and assignment
+# operators of the base classes will not be shown.
+# The default value is: NO.
+
+INLINE_INHERITED_MEMB  = NO
+
+# If the FULL_PATH_NAMES tag is set to YES doxygen will prepend the full path
+# before files name in the file list and in the header files. If set to NO the
+# shortest path that makes the file name unique will be used
+# The default value is: YES.
+
+FULL_PATH_NAMES        = YES
+
+# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path.
+# Stripping is only done if one of the specified strings matches the left-hand
+# part of the path. The tag can be used to show relative paths in the file list.
+# If left blank the directory from which doxygen is run is used as the path to
+# strip.
+#
+# Note that you can specify absolute paths here, but also relative paths, which
+# will be relative from the directory where doxygen is started.
+# This tag requires that the tag FULL_PATH_NAMES is set to YES.
+
+STRIP_FROM_PATH        =
+
+# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the
+# path mentioned in the documentation of a class, which tells the reader which
+# header file to include in order to use a class. If left blank only the name of
+# the header file containing the class definition is used. Otherwise one should
+# specify the list of include paths that are normally passed to the compiler
+# using the -I flag.
+
+STRIP_FROM_INC_PATH    =
+
+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but
+# less readable) file names. This can be useful is your file systems doesn't
+# support long names like on DOS, Mac, or CD-ROM.
+# The default value is: NO.
+
+SHORT_NAMES            = NO
+
+# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the
+# first line (until the first dot) of a Javadoc-style comment as the brief
+# description. If set to NO, the Javadoc-style will behave just like regular Qt-
+# style comments (thus requiring an explicit @brief command for a brief
+# description.)
+# The default value is: NO.
+
+JAVADOC_AUTOBRIEF      = NO
+
+# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first
+# line (until the first dot) of a Qt-style comment as the brief description. If
+# set to NO, the Qt-style will behave just like regular Qt-style comments (thus
+# requiring an explicit \brief command for a brief description.)
+# The default value is: NO.
+
+QT_AUTOBRIEF           = NO
+
+# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a
+# multi-line C++ special comment block (i.e. a block of //! or /// comments) as
+# a brief description. This used to be the default behavior. The new default is
+# to treat a multi-line C++ comment block as a detailed description. Set this
+# tag to YES if you prefer the old behavior instead.
+#
+# Note that setting this tag to YES also means that rational rose comments are
+# not recognized any more.
+# The default value is: NO.
+
+MULTILINE_CPP_IS_BRIEF = NO
+
+# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the
+# documentation from any documented member that it re-implements.
+# The default value is: YES.
+
+INHERIT_DOCS           = YES
+
+# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce a
+# new page for each member. If set to NO, the documentation of a member will be
+# part of the file/class/namespace that contains it.
+# The default value is: NO.
+
+SEPARATE_MEMBER_PAGES  = NO
+
+# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen
+# uses this value to replace tabs by spaces in code fragments.
+# Minimum value: 1, maximum value: 16, default value: 4.
+
+TAB_SIZE               = 4
+
+# This tag can be used to specify a number of aliases that act as commands in
+# the documentation. An alias has the form:
+# name=value
+# For example adding
+# "sideeffect=@par Side Effects:\n"
+# will allow you to put the command \sideeffect (or @sideeffect) in the
+# documentation, which will result in a user-defined paragraph with heading
+# "Side Effects:". You can put \n's in the value part of an alias to insert
+# newlines.
+
+ALIASES                =
+
+# This tag can be used to specify a number of word-keyword mappings (TCL only).
+# A mapping has the form "name=value". For example adding "class=itcl::class"
+# will allow you to use the command class in the itcl::class meaning.
+
+TCL_SUBST              =
+
+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
+# only. Doxygen will then generate output that is more tailored for C. For
+# instance, some of the names that are used will be different. The list of all
+# members will be omitted, etc.
+# The default value is: NO.
+
+OPTIMIZE_OUTPUT_FOR_C  = NO
+
+# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or
+# Python sources only. Doxygen will then generate output that is more tailored
+# for that language. For instance, namespaces will be presented as packages,
+# qualified scopes will look different, etc.
+# The default value is: NO.
+
+OPTIMIZE_OUTPUT_JAVA   = NO
+
+# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
+# sources. Doxygen will then generate output that is tailored for Fortran.
+# The default value is: NO.
+
+OPTIMIZE_FOR_FORTRAN   = YES
+
+# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
+# sources. Doxygen will then generate output that is tailored for VHDL.
+# The default value is: NO.
+
+OPTIMIZE_OUTPUT_VHDL   = NO
+
+# Doxygen selects the parser to use depending on the extension of the files it
+# parses. With this tag you can assign which parser to use for a given
+# extension. Doxygen has a built-in mapping, but you can override or extend it
+# using this tag. The format is ext=language, where ext is a file extension, and
+# language is one of the parsers supported by doxygen: IDL, Java, Javascript,
+# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran:
+# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran:
+# Fortran. In the later case the parser tries to guess whether the code is fixed
+# or free formatted code, this is the default for Fortran type files), VHDL. For
+# instance to make doxygen treat .inc files as Fortran files (default is PHP),
+# and .f files as C (default is Fortran), use: inc=Fortran f=C.
+#
+# Note For files without extension you can use no_extension as a placeholder.
+#
+# Note that for custom extensions you also need to set FILE_PATTERNS otherwise
+# the files are not read by doxygen.
+
+EXTENSION_MAPPING      =
+
+# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments
+# according to the Markdown format, which allows for more readable
+# documentation. See http://daringfireball.net/projects/markdown/ for details.
+# The output of markdown processing is further processed by doxygen, so you can
+# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in
+# case of backward compatibilities issues.
+# The default value is: YES.
+
+MARKDOWN_SUPPORT       = YES
+
+# When enabled doxygen tries to link words that correspond to documented
+# classes, or namespaces to their corresponding documentation. Such a link can
+# be prevented in individual cases by by putting a % sign in front of the word
+# or globally by setting AUTOLINK_SUPPORT to NO.
+# The default value is: YES.
+
+AUTOLINK_SUPPORT       = YES
+
+# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
+# to include (a tag file for) the STL sources as input, then you should set this
+# tag to YES in order to let doxygen match functions declarations and
+# definitions whose arguments contain STL classes (e.g. func(std::string);
+# versus func(std::string) {}). This also make the inheritance and collaboration
+# diagrams that involve STL classes more complete and accurate.
+# The default value is: NO.
+
+BUILTIN_STL_SUPPORT    = NO
+
+# If you use Microsoft's C++/CLI language, you should set this option to YES to
+# enable parsing support.
+# The default value is: NO.
+
+CPP_CLI_SUPPORT        = NO
+
+# Set the SIP_SUPPORT tag to YES if your project consists of sip (see:
+# http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen
+# will parse them like normal C++ but will assume all classes use public instead
+# of private inheritance when no explicit protection keyword is present.
+# The default value is: NO.
+
+SIP_SUPPORT            = NO
+
+# For Microsoft's IDL there are propget and propput attributes to indicate
+# getter and setter methods for a property. Setting this option to YES will make
+# doxygen to replace the get and set methods by a property in the documentation.
+# This will only work if the methods are indeed getting or setting a simple
+# type. If this is not the case, or you want to show the methods anyway, you
+# should set this option to NO.
+# The default value is: YES.
+
+IDL_PROPERTY_SUPPORT   = YES
+
+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
+# tag is set to YES, then doxygen will reuse the documentation of the first
+# member in the group (if any) for the other members of the group. By default
+# all members of a group must be documented explicitly.
+# The default value is: NO.
+
+DISTRIBUTE_GROUP_DOC   = NO
+
+# Set the SUBGROUPING tag to YES to allow class member groups of the same type
+# (for instance a group of public functions) to be put as a subgroup of that
+# type (e.g. under the Public Functions section). Set it to NO to prevent
+# subgrouping. Alternatively, this can be done per class using the
+# \nosubgrouping command.
+# The default value is: YES.
+
+SUBGROUPING            = YES
+
+# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions
+# are shown inside the group in which they are included (e.g. using \ingroup)
+# instead of on a separate page (for HTML and Man pages) or section (for LaTeX
+# and RTF).
+#
+# Note that this feature does not work in combination with
+# SEPARATE_MEMBER_PAGES.
+# The default value is: NO.
+
+INLINE_GROUPED_CLASSES = NO
+
+# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions
+# with only public data fields or simple typedef fields will be shown inline in
+# the documentation of the scope in which they are defined (i.e. file,
+# namespace, or group documentation), provided this scope is documented. If set
+# to NO, structs, classes, and unions are shown on a separate page (for HTML and
+# Man pages) or section (for LaTeX and RTF).
+# The default value is: NO.
+
+INLINE_SIMPLE_STRUCTS  = NO
+
+# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or
+# enum is documented as struct, union, or enum with the name of the typedef. So
+# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
+# with name TypeT. When disabled the typedef will appear as a member of a file,
+# namespace, or class. And the struct will be named TypeS. This can typically be
+# useful for C code in case the coding convention dictates that all compound
+# types are typedef'ed and only the typedef is referenced, never the tag name.
+# The default value is: NO.
+
+TYPEDEF_HIDES_STRUCT   = NO
+
+# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This
+# cache is used to resolve symbols given their name and scope. Since this can be
+# an expensive process and often the same symbol appears multiple times in the
+# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small
+# doxygen will become slower. If the cache is too large, memory is wasted. The
+# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range
+# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536
+# symbols. At the end of a run doxygen will report the cache usage and suggest
+# the optimal cache size from a speed point of view.
+# Minimum value: 0, maximum value: 9, default value: 0.
+
+LOOKUP_CACHE_SIZE      = 0
+
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+
+# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
+# documentation are documented, even if no documentation was available. Private
+# class members and static file members will be hidden unless the
+# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES.
+# Note: This will also disable the warnings about undocumented members that are
+# normally produced when WARNINGS is set to YES.
+# The default value is: NO.
+
+EXTRACT_ALL            = YES
+
+# If the EXTRACT_PRIVATE tag is set to YES all private members of a class will
+# be included in the documentation.
+# The default value is: NO.
+
+EXTRACT_PRIVATE        = NO
+
+# If the EXTRACT_PACKAGE tag is set to YES all members with package or internal
+# scope will be included in the documentation.
+# The default value is: NO.
+
+EXTRACT_PACKAGE        = NO
+
+# If the EXTRACT_STATIC tag is set to YES all static members of a file will be
+# included in the documentation.
+# The default value is: NO.
+
+EXTRACT_STATIC         = YES
+
+# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) defined
+# locally in source files will be included in the documentation. If set to NO
+# only classes defined in header files are included. Does not have any effect
+# for Java sources.
+# The default value is: YES.
+
+EXTRACT_LOCAL_CLASSES  = YES
+
+# This flag is only useful for Objective-C code. When set to YES local methods,
+# which are defined in the implementation section but not in the interface are
+# included in the documentation. If set to NO only methods in the interface are
+# included.
+# The default value is: NO.
+
+EXTRACT_LOCAL_METHODS  = NO
+
+# If this flag is set to YES, the members of anonymous namespaces will be
+# extracted and appear in the documentation as a namespace called
+# 'anonymous_namespace{file}', where file will be replaced with the base name of
+# the file that contains the anonymous namespace. By default anonymous namespace
+# are hidden.
+# The default value is: NO.
+
+EXTRACT_ANON_NSPACES   = NO
+
+# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all
+# undocumented members inside documented classes or files. If set to NO these
+# members will be included in the various overviews, but no documentation
+# section is generated. This option has no effect if EXTRACT_ALL is enabled.
+# The default value is: NO.
+
+HIDE_UNDOC_MEMBERS     = NO
+
+# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all
+# undocumented classes that are normally visible in the class hierarchy. If set
+# to NO these classes will be included in the various overviews. This option has
+# no effect if EXTRACT_ALL is enabled.
+# The default value is: NO.
+
+HIDE_UNDOC_CLASSES     = NO
+
+# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend
+# (class|struct|union) declarations. If set to NO these declarations will be
+# included in the documentation.
+# The default value is: NO.
+
+HIDE_FRIEND_COMPOUNDS  = NO
+
+# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any
+# documentation blocks found inside the body of a function. If set to NO these
+# blocks will be appended to the function's detailed documentation block.
+# The default value is: NO.
+
+HIDE_IN_BODY_DOCS      = NO
+
+# The INTERNAL_DOCS tag determines if documentation that is typed after a
+# \internal command is included. If the tag is set to NO then the documentation
+# will be excluded. Set it to YES to include the internal documentation.
+# The default value is: NO.
+
+INTERNAL_DOCS          = NO
+
+# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file
+# names in lower-case letters. If set to YES upper-case letters are also
+# allowed. This is useful if you have classes or files whose names only differ
+# in case and if your file system supports case sensitive file names. Windows
+# and Mac users are advised to set this option to NO.
+# The default value is: system dependent.
+
+CASE_SENSE_NAMES       = YES
+
+# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with
+# their full class and namespace scopes in the documentation. If set to YES the
+# scope will be hidden.
+# The default value is: NO.
+
+HIDE_SCOPE_NAMES       = NO
+
+# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of
+# the files that are included by a file in the documentation of that file.
+# The default value is: YES.
+
+SHOW_INCLUDE_FILES     = YES
+
+# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each
+# grouped member an include statement to the documentation, telling the reader
+# which file to include in order to use the member.
+# The default value is: NO.
+
+SHOW_GROUPED_MEMB_INC  = NO
+
+# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include
+# files with double quotes in the documentation rather than with sharp brackets.
+# The default value is: NO.
+
+FORCE_LOCAL_INCLUDES   = NO
+
+# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the
+# documentation for inline members.
+# The default value is: YES.
+
+INLINE_INFO            = YES
+
+# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the
+# (detailed) documentation of file and class members alphabetically by member
+# name. If set to NO the members will appear in declaration order.
+# The default value is: YES.
+
+SORT_MEMBER_DOCS       = YES
+
+# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief
+# descriptions of file, namespace and class members alphabetically by member
+# name. If set to NO the members will appear in declaration order. Note that
+# this will also influence the order of the classes in the class list.
+# The default value is: NO.
+
+SORT_BRIEF_DOCS        = NO
+
+# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the
+# (brief and detailed) documentation of class members so that constructors and
+# destructors are listed first. If set to NO the constructors will appear in the
+# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS.
+# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief
+# member documentation.
+# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting
+# detailed member documentation.
+# The default value is: NO.
+
+SORT_MEMBERS_CTORS_1ST = NO
+
+# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy
+# of group names into alphabetical order. If set to NO the group names will
+# appear in their defined order.
+# The default value is: NO.
+
+SORT_GROUP_NAMES       = NO
+
+# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by
+# fully-qualified names, including namespaces. If set to NO, the class list will
+# be sorted only by class name, not including the namespace part.
+# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
+# Note: This option applies only to the class list, not to the alphabetical
+# list.
+# The default value is: NO.
+
+SORT_BY_SCOPE_NAME     = NO
+
+# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper
+# type resolution of all parameters of a function it will reject a match between
+# the prototype and the implementation of a member function even if there is
+# only one candidate or it is obvious which candidate to choose by doing a
+# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still
+# accept a match between prototype and implementation in such cases.
+# The default value is: NO.
+
+STRICT_PROTO_MATCHING  = NO
+
+# The GENERATE_TODOLIST tag can be used to enable ( YES) or disable ( NO) the
+# todo list. This list is created by putting \todo commands in the
+# documentation.
+# The default value is: YES.
+
+GENERATE_TODOLIST      = YES
+
+# The GENERATE_TESTLIST tag can be used to enable ( YES) or disable ( NO) the
+# test list. This list is created by putting \test commands in the
+# documentation.
+# The default value is: YES.
+
+GENERATE_TESTLIST      = YES
+
+# The GENERATE_BUGLIST tag can be used to enable ( YES) or disable ( NO) the bug
+# list. This list is created by putting \bug commands in the documentation.
+# The default value is: YES.
+
+GENERATE_BUGLIST       = YES
+
+# The GENERATE_DEPRECATEDLIST tag can be used to enable ( YES) or disable ( NO)
+# the deprecated list. This list is created by putting \deprecated commands in
+# the documentation.
+# The default value is: YES.
+
+GENERATE_DEPRECATEDLIST= YES
+
+# The ENABLED_SECTIONS tag can be used to enable conditional documentation
+# sections, marked by \if <section_label> ... \endif and \cond <section_label>
+# ... \endcond blocks.
+
+ENABLED_SECTIONS       =
+
+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the
+# initial value of a variable or macro / define can have for it to appear in the
+# documentation. If the initializer consists of more lines than specified here
+# it will be hidden. Use a value of 0 to hide initializers completely. The
+# appearance of the value of individual variables and macros / defines can be
+# controlled using \showinitializer or \hideinitializer command in the
+# documentation regardless of this setting.
+# Minimum value: 0, maximum value: 10000, default value: 30.
+
+MAX_INITIALIZER_LINES  = 30
+
+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at
+# the bottom of the documentation of classes and structs. If set to YES the list
+# will mention the files that were used to generate the documentation.
+# The default value is: YES.
+
+SHOW_USED_FILES        = YES
+
+# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This
+# will remove the Files entry from the Quick Index and from the Folder Tree View
+# (if specified).
+# The default value is: YES.
+
+SHOW_FILES             = YES
+
+# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces
+# page. This will remove the Namespaces entry from the Quick Index and from the
+# Folder Tree View (if specified).
+# The default value is: YES.
+
+SHOW_NAMESPACES        = YES
+
+# The FILE_VERSION_FILTER tag can be used to specify a program or script that
+# doxygen should invoke to get the current version for each file (typically from
+# the version control system). Doxygen will invoke the program by executing (via
+# popen()) the command command input-file, where command is the value of the
+# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided
+# by doxygen. Whatever the program writes to standard output is used as the file
+# version. For an example see the documentation.
+
+FILE_VERSION_FILTER    =
+
+# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
+# by doxygen. The layout file controls the global structure of the generated
+# output files in an output format independent way. To create the layout file
+# that represents doxygen's defaults, run doxygen with the -l option. You can
+# optionally specify a file name after the option, if omitted DoxygenLayout.xml
+# will be used as the name of the layout file.
+#
+# Note that if you run doxygen from a directory containing a file called
+# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE
+# tag is left empty.
+
+LAYOUT_FILE            =
+
+# The CITE_BIB_FILES tag can be used to specify one or more bib files containing
+# the reference definitions. This must be a list of .bib files. The .bib
+# extension is automatically appended if omitted. This requires the bibtex tool
+# to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info.
+# For LaTeX the style of the bibliography can be controlled using
+# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the
+# search path. See also \cite for info how to create references.
+
+CITE_BIB_FILES         =
+
+#---------------------------------------------------------------------------
+# Configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+
+# The QUIET tag can be used to turn on/off the messages that are generated to
+# standard output by doxygen. If QUIET is set to YES this implies that the
+# messages are off.
+# The default value is: NO.
+
+QUIET                  = NO
+
+# The WARNINGS tag can be used to turn on/off the warning messages that are
+# generated to standard error ( stderr) by doxygen. If WARNINGS is set to YES
+# this implies that the warnings are on.
+#
+# Tip: Turn warnings on while writing the documentation.
+# The default value is: YES.
+
+WARNINGS               = YES
+
+# If the WARN_IF_UNDOCUMENTED tag is set to YES, then doxygen will generate
+# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag
+# will automatically be disabled.
+# The default value is: YES.
+
+WARN_IF_UNDOCUMENTED   = YES
+
+# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for
+# potential errors in the documentation, such as not documenting some parameters
+# in a documented function, or documenting parameters that don't exist or using
+# markup commands wrongly.
+# The default value is: YES.
+
+WARN_IF_DOC_ERROR      = YES
+
+# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that
+# are documented, but have no documentation for their parameters or return
+# value. If set to NO doxygen will only warn about wrong or incomplete parameter
+# documentation, but not about the absence of documentation.
+# The default value is: NO.
+
+WARN_NO_PARAMDOC       = NO
+
+# The WARN_FORMAT tag determines the format of the warning messages that doxygen
+# can produce. The string should contain the $file, $line, and $text tags, which
+# will be replaced by the file and line number from which the warning originated
+# and the warning text. Optionally the format may contain $version, which will
+# be replaced by the version of the file (if it could be obtained via
+# FILE_VERSION_FILTER)
+# The default value is: $file:$line: $text.
+
+WARN_FORMAT            = "$file:$line: $text"
+
+# The WARN_LOGFILE tag can be used to specify a file to which warning and error
+# messages should be written. If left blank the output is written to standard
+# error (stderr).
+
+WARN_LOGFILE           =
+
+#---------------------------------------------------------------------------
+# Configuration options related to the input files
+#---------------------------------------------------------------------------
+
+# The INPUT tag is used to specify the files and/or directories that contain
+# documented source files. You may enter file names like myfile.cpp or
+# directories like /usr/src/myproject. Separate the files or directories with
+# spaces.
+# Note: If this tag is empty the current directory is searched.
+
+INPUT                  = ./src
+
+# This tag can be used to specify the character encoding of the source files
+# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
+# libiconv (or the iconv built into libc) for the transcoding. See the libiconv
+# documentation (see: http://www.gnu.org/software/libiconv) for the list of
+# possible encodings.
+# The default value is: UTF-8.
+
+INPUT_ENCODING         = UTF-8
+
+# If the value of the INPUT tag contains directories, you can use the
+# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and
+# *.h) to filter out the source-files in the directories. If left blank the
+# following patterns are tested:*.c, *.cc, *.cxx, *.cpp, *.c++, *.java, *.ii,
+# *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, *.hh, *.hxx, *.hpp,
+# *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown,
+# *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf,
+# *.qsf, *.as and *.js.
+
+FILE_PATTERNS          = *.f90
+
+# The RECURSIVE tag can be used to specify whether or not subdirectories should
+# be searched for input files as well.
+# The default value is: NO.
+
+RECURSIVE              = NO
+
+# The EXCLUDE tag can be used to specify files and/or directories that should be
+# excluded from the INPUT source files. This way you can easily exclude a
+# subdirectory from a directory tree whose root is specified with the INPUT tag.
+#
+# Note that relative paths are relative to the directory from which doxygen is
+# run.
+
+EXCLUDE                =
+
+# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
+# directories that are symbolic links (a Unix file system feature) are excluded
+# from the input.
+# The default value is: NO.
+
+EXCLUDE_SYMLINKS       = NO
+
+# If the value of the INPUT tag contains directories, you can use the
+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
+# certain files from those directories.
+#
+# Note that the wildcards are matched against the file with absolute path, so to
+# exclude all test directories for example use the pattern */test/*
+
+EXCLUDE_PATTERNS       =
+
+# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
+# (namespaces, classes, functions, etc.) that should be excluded from the
+# output. The symbol name can be a fully qualified name, a word, or if the
+# wildcard * is used, a substring. Examples: ANamespace, AClass,
+# AClass::ANamespace, ANamespace::*Test
+#
+# Note that the wildcards are matched against the file with absolute path, so to
+# exclude all test directories use the pattern */test/*
+
+EXCLUDE_SYMBOLS        =
+
+# The EXAMPLE_PATH tag can be used to specify one or more files or directories
+# that contain example code fragments that are included (see the \include
+# command).
+
+EXAMPLE_PATH           =
+
+# If the value of the EXAMPLE_PATH tag contains directories, you can use the
+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and
+# *.h) to filter out the source-files in the directories. If left blank all
+# files are included.
+
+EXAMPLE_PATTERNS       =
+
+# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
+# searched for input files to be used with the \include or \dontinclude commands
+# irrespective of the value of the RECURSIVE tag.
+# The default value is: NO.
+
+EXAMPLE_RECURSIVE      = NO
+
+# The IMAGE_PATH tag can be used to specify one or more files or directories
+# that contain images that are to be included in the documentation (see the
+# \image command).
+
+IMAGE_PATH             =
+
+# The INPUT_FILTER tag can be used to specify a program that doxygen should
+# invoke to filter for each input file. Doxygen will invoke the filter program
+# by executing (via popen()) the command:
+#
+# <filter> <input-file>
+#
+# where <filter> is the value of the INPUT_FILTER tag, and <input-file> is the
+# name of an input file. Doxygen will then use the output that the filter
+# program writes to standard output. If FILTER_PATTERNS is specified, this tag
+# will be ignored.
+#
+# Note that the filter must not add or remove lines; it is applied before the
+# code is scanned, but not when the output code is generated. If lines are added
+# or removed, the anchors will not be placed correctly.
+
+INPUT_FILTER           =
+
+# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
+# basis. Doxygen will compare the file name with each pattern and apply the
+# filter if there is a match. The filters are a list of the form: pattern=filter
+# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how
+# filters are used. If the FILTER_PATTERNS tag is empty or if none of the
+# patterns match the file name, INPUT_FILTER is applied.
+
+FILTER_PATTERNS        =
+
+# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
+# INPUT_FILTER ) will also be used to filter the input files that are used for
+# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES).
+# The default value is: NO.
+
+FILTER_SOURCE_FILES    = NO
+
+# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file
+# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and
+# it is also possible to disable source filtering for a specific pattern using
+# *.ext= (so without naming a filter).
+# This tag requires that the tag FILTER_SOURCE_FILES is set to YES.
+
+FILTER_SOURCE_PATTERNS =
+
+# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that
+# is part of the input, its contents will be placed on the main page
+# (index.html). This can be useful if you have a project on for instance GitHub
+# and want to reuse the introduction page also for the doxygen output.
+
+USE_MDFILE_AS_MAINPAGE =
+
+#---------------------------------------------------------------------------
+# Configuration options related to source browsing
+#---------------------------------------------------------------------------
+
+# If the SOURCE_BROWSER tag is set to YES then a list of source files will be
+# generated. Documented entities will be cross-referenced with these sources.
+#
+# Note: To get rid of all source code in the generated output, make sure that
+# also VERBATIM_HEADERS is set to NO.
+# The default value is: NO.
+
+SOURCE_BROWSER         = NO
+
+# Setting the INLINE_SOURCES tag to YES will include the body of functions,
+# classes and enums directly into the documentation.
+# The default value is: NO.
+
+INLINE_SOURCES         = NO
+
+# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any
+# special comment blocks from generated source code fragments. Normal C, C++ and
+# Fortran comments will always remain visible.
+# The default value is: YES.
+
+STRIP_CODE_COMMENTS    = YES
+
+# If the REFERENCED_BY_RELATION tag is set to YES then for each documented
+# function all documented functions referencing it will be listed.
+# The default value is: NO.
+
+REFERENCED_BY_RELATION = NO
+
+# If the REFERENCES_RELATION tag is set to YES then for each documented function
+# all documented entities called/used by that function will be listed.
+# The default value is: NO.
+
+REFERENCES_RELATION    = NO
+
+# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set
+# to YES, then the hyperlinks from functions in REFERENCES_RELATION and
+# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will
+# link to the documentation.
+# The default value is: YES.
+
+REFERENCES_LINK_SOURCE = YES
+
+# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the
+# source code will show a tooltip with additional information such as prototype,
+# brief description and links to the definition and documentation. Since this
+# will make the HTML file larger and loading of large files a bit slower, you
+# can opt to disable this feature.
+# The default value is: YES.
+# This tag requires that the tag SOURCE_BROWSER is set to YES.
+
+SOURCE_TOOLTIPS        = YES
+
+# If the USE_HTAGS tag is set to YES then the references to source code will
+# point to the HTML generated by the htags(1) tool instead of doxygen built-in
+# source browser. The htags tool is part of GNU's global source tagging system
+# (see http://www.gnu.org/software/global/global.html). You will need version
+# 4.8.6 or higher.
+#
+# To use it do the following:
+# - Install the latest version of global
+# - Enable SOURCE_BROWSER and USE_HTAGS in the config file
+# - Make sure the INPUT points to the root of the source tree
+# - Run doxygen as normal
+#
+# Doxygen will invoke htags (and that will in turn invoke gtags), so these
+# tools must be available from the command line (i.e. in the search path).
+#
+# The result: instead of the source browser generated by doxygen, the links to
+# source code will now point to the output of htags.
+# The default value is: NO.
+# This tag requires that the tag SOURCE_BROWSER is set to YES.
+
+USE_HTAGS              = NO
+
+# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a
+# verbatim copy of the header file for each class for which an include is
+# specified. Set to NO to disable this.
+# See also: Section \class.
+# The default value is: YES.
+
+VERBATIM_HEADERS       = YES
+
+#---------------------------------------------------------------------------
+# Configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+
+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all
+# compounds will be generated. Enable this if the project contains a lot of
+# classes, structs, unions or interfaces.
+# The default value is: YES.
+
+ALPHABETICAL_INDEX     = YES
+
+# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in
+# which the alphabetical index list will be split.
+# Minimum value: 1, maximum value: 20, default value: 5.
+# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
+
+COLS_IN_ALPHA_INDEX    = 5
+
+# In case all classes in a project start with a common prefix, all classes will
+# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag
+# can be used to specify a prefix (or a list of prefixes) that should be ignored
+# while generating the index headers.
+# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
+
+IGNORE_PREFIX          =
+
+#---------------------------------------------------------------------------
+# Configuration options related to the HTML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_HTML tag is set to YES doxygen will generate HTML output
+# The default value is: YES.
+
+GENERATE_HTML          = YES
+
+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: html.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_OUTPUT            = html
+
+# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each
+# generated HTML page (for example: .htm, .php, .asp).
+# The default value is: .html.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_FILE_EXTENSION    = .html
+
+# The HTML_HEADER tag can be used to specify a user-defined HTML header file for
+# each generated HTML page. If the tag is left blank doxygen will generate a
+# standard header.
+#
+# To get valid HTML the header file that includes any scripts and style sheets
+# that doxygen needs, which is dependent on the configuration options used (e.g.
+# the setting GENERATE_TREEVIEW). It is highly recommended to start with a
+# default header using
+# doxygen -w html new_header.html new_footer.html new_stylesheet.css
+# YourConfigFile
+# and then modify the file new_header.html. See also section "Doxygen usage"
+# for information on how to generate the default header that doxygen normally
+# uses.
+# Note: The header is subject to change so you typically have to regenerate the
+# default header when upgrading to a newer version of doxygen. For a description
+# of the possible markers and block names see the documentation.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_HEADER            =
+
+# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each
+# generated HTML page. If the tag is left blank doxygen will generate a standard
+# footer. See HTML_HEADER for more information on how to generate a default
+# footer and what special commands can be used inside the footer. See also
+# section "Doxygen usage" for information on how to generate the default footer
+# that doxygen normally uses.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_FOOTER            =
+
+# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style
+# sheet that is used by each HTML page. It can be used to fine-tune the look of
+# the HTML output. If left blank doxygen will generate a default style sheet.
+# See also section "Doxygen usage" for information on how to generate the style
+# sheet that doxygen normally uses.
+# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as
+# it is more robust and this tag (HTML_STYLESHEET) will in the future become
+# obsolete.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_STYLESHEET        =
+
+# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined
+# cascading style sheets that are included after the standard style sheets
+# created by doxygen. Using this option one can overrule certain style aspects.
+# This is preferred over using HTML_STYLESHEET since it does not replace the
+# standard style sheet and is therefor more robust against future updates.
+# Doxygen will copy the style sheet files to the output directory.
+# Note: The order of the extra stylesheet files is of importance (e.g. the last
+# stylesheet in the list overrules the setting of the previous ones in the
+# list). For an example see the documentation.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_EXTRA_STYLESHEET  =
+
+# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
+# other source files which should be copied to the HTML output directory. Note
+# that these files will be copied to the base HTML output directory. Use the
+# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these
+# files. In the HTML_STYLESHEET file, use the file name only. Also note that the
+# files will be copied as-is; there are no commands or markers available.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_EXTRA_FILES       =
+
+# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen
+# will adjust the colors in the stylesheet and background images according to
+# this color. Hue is specified as an angle on a colorwheel, see
+# http://en.wikipedia.org/wiki/Hue for more information. For instance the value
+# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300
+# purple, and 360 is red again.
+# Minimum value: 0, maximum value: 359, default value: 220.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_COLORSTYLE_HUE    = 220
+
+# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors
+# in the HTML output. For a value of 0 the output will use grayscales only. A
+# value of 255 will produce the most vivid colors.
+# Minimum value: 0, maximum value: 255, default value: 100.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_COLORSTYLE_SAT    = 100
+
+# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the
+# luminance component of the colors in the HTML output. Values below 100
+# gradually make the output lighter, whereas values above 100 make the output
+# darker. The value divided by 100 is the actual gamma applied, so 80 represents
+# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not
+# change the gamma.
+# Minimum value: 40, maximum value: 240, default value: 80.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_COLORSTYLE_GAMMA  = 80
+
+# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
+# page will contain the date and time when the page was generated. Setting this
+# to NO can help when comparing the output of multiple runs.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_TIMESTAMP         = YES
+
+# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
+# documentation will contain sections that can be hidden and shown after the
+# page has loaded.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_DYNAMIC_SECTIONS  = NO
+
+# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries
+# shown in the various tree structured indices initially; the user can expand
+# and collapse entries dynamically later on. Doxygen will expand the tree to
+# such a level that at most the specified number of entries are visible (unless
+# a fully collapsed tree already exceeds this amount). So setting the number of
+# entries 1 will produce a full collapsed tree by default. 0 is a special value
+# representing an infinite number of entries and will result in a full expanded
+# tree by default.
+# Minimum value: 0, maximum value: 9999, default value: 100.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_INDEX_NUM_ENTRIES = 100
+
+# If the GENERATE_DOCSET tag is set to YES, additional index files will be
+# generated that can be used as input for Apple's Xcode 3 integrated development
+# environment (see: http://developer.apple.com/tools/xcode/), introduced with
+# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a
+# Makefile in the HTML output directory. Running make will produce the docset in
+# that directory and running make install will install the docset in
+# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at
+# startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
+# for more information.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_DOCSET        = NO
+
+# This tag determines the name of the docset feed. A documentation feed provides
+# an umbrella under which multiple documentation sets from a single provider
+# (such as a company or product suite) can be grouped.
+# The default value is: Doxygen generated docs.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_FEEDNAME        = "Doxygen generated docs"
+
+# This tag specifies a string that should uniquely identify the documentation
+# set bundle. This should be a reverse domain-name style string, e.g.
+# com.mycompany.MyDocSet. Doxygen will append .docset to the name.
+# The default value is: org.doxygen.Project.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_BUNDLE_ID       = org.doxygen.Project
+
+# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify
+# the documentation publisher. This should be a reverse domain-name style
+# string, e.g. com.mycompany.MyDocSet.documentation.
+# The default value is: org.doxygen.Publisher.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_PUBLISHER_ID    = org.doxygen.Publisher
+
+# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
+# The default value is: Publisher.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_PUBLISHER_NAME  = Publisher
+
+# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three
+# additional HTML index files: index.hhp, index.hhc, and index.hhk. The
+# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop
+# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on
+# Windows.
+#
+# The HTML Help Workshop contains a compiler that can convert all HTML output
+# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML
+# files are now used as the Windows 98 help format, and will replace the old
+# Windows help format (.hlp) on all Windows platforms in the future. Compressed
+# HTML files also contain an index, a table of contents, and you can search for
+# words in the documentation. The HTML workshop also contains a viewer for
+# compressed HTML files.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_HTMLHELP      = NO
+
+# The CHM_FILE tag can be used to specify the file name of the resulting .chm
+# file. You can add a path in front of the file if the result should not be
+# written to the html output directory.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+CHM_FILE               =
+
+# The HHC_LOCATION tag can be used to specify the location (absolute path
+# including file name) of the HTML help compiler ( hhc.exe). If non-empty
+# doxygen will try to run the HTML help compiler on the generated index.hhp.
+# The file has to be specified with full path.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+HHC_LOCATION           =
+
+# The GENERATE_CHI flag controls if a separate .chi index file is generated (
+# YES) or that it should be included in the master .chm file ( NO).
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+GENERATE_CHI           = NO
+
+# The CHM_INDEX_ENCODING is used to encode HtmlHelp index ( hhk), content ( hhc)
+# and project file content.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+CHM_INDEX_ENCODING     =
+
+# The BINARY_TOC flag controls whether a binary table of contents is generated (
+# YES) or a normal table of contents ( NO) in the .chm file. Furthermore it
+# enables the Previous and Next buttons.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+BINARY_TOC             = NO
+
+# The TOC_EXPAND flag can be set to YES to add extra items for group members to
+# the table of contents of the HTML help documentation and to the tree view.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+TOC_EXPAND             = NO
+
+# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
+# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that
+# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help
+# (.qch) of the generated HTML documentation.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_QHP           = NO
+
+# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify
+# the file name of the resulting .qch file. The path specified is relative to
+# the HTML output folder.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QCH_FILE               =
+
+# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help
+# Project output. For more information please see Qt Help Project / Namespace
+# (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace).
+# The default value is: org.doxygen.Project.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_NAMESPACE          = org.doxygen.Project
+
+# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt
+# Help Project output. For more information please see Qt Help Project / Virtual
+# Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual-
+# folders).
+# The default value is: doc.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_VIRTUAL_FOLDER     = doc
+
+# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom
+# filter to add. For more information please see Qt Help Project / Custom
+# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
+# filters).
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_CUST_FILTER_NAME   =
+
+# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the
+# custom filter to add. For more information please see Qt Help Project / Custom
+# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
+# filters).
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_CUST_FILTER_ATTRS  =
+
+# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
+# project's filter section matches. Qt Help Project / Filter Attributes (see:
+# http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes).
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_SECT_FILTER_ATTRS  =
+
+# The QHG_LOCATION tag can be used to specify the location of Qt's
+# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the
+# generated .qhp file.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHG_LOCATION           =
+
+# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be
+# generated, together with the HTML files, they form an Eclipse help plugin. To
+# install this plugin and make it available under the help contents menu in
+# Eclipse, the contents of the directory containing the HTML and XML files needs
+# to be copied into the plugins directory of eclipse. The name of the directory
+# within the plugins directory should be the same as the ECLIPSE_DOC_ID value.
+# After copying Eclipse needs to be restarted before the help appears.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_ECLIPSEHELP   = NO
+
+# A unique identifier for the Eclipse help plugin. When installing the plugin
+# the directory name containing the HTML and XML files should also have this
+# name. Each documentation set should have its own identifier.
+# The default value is: org.doxygen.Project.
+# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES.
+
+ECLIPSE_DOC_ID         = org.doxygen.Project
+
+# If you want full control over the layout of the generated HTML pages it might
+# be necessary to disable the index and replace it with your own. The
+# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top
+# of each HTML page. A value of NO enables the index and the value YES disables
+# it. Since the tabs in the index contain the same information as the navigation
+# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+DISABLE_INDEX          = NO
+
+# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
+# structure should be generated to display hierarchical information. If the tag
+# value is set to YES, a side panel will be generated containing a tree-like
+# index structure (just like the one that is generated for HTML Help). For this
+# to work a browser that supports JavaScript, DHTML, CSS and frames is required
+# (i.e. any modern browser). Windows users are probably better off using the
+# HTML help feature. Via custom stylesheets (see HTML_EXTRA_STYLESHEET) one can
+# further fine-tune the look of the index. As an example, the default style
+# sheet generated by doxygen has an example that shows how to put an image at
+# the root of the tree instead of the PROJECT_NAME. Since the tree basically has
+# the same information as the tab index, you could consider setting
+# DISABLE_INDEX to YES when enabling this option.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_TREEVIEW      = NO
+
+# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that
+# doxygen will group on one line in the generated HTML documentation.
+#
+# Note that a value of 0 will completely suppress the enum values from appearing
+# in the overview section.
+# Minimum value: 0, maximum value: 20, default value: 4.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+ENUM_VALUES_PER_LINE   = 4
+
+# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used
+# to set the initial width (in pixels) of the frame in which the tree is shown.
+# Minimum value: 0, maximum value: 1500, default value: 250.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+TREEVIEW_WIDTH         = 250
+
+# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open links to
+# external symbols imported via tag files in a separate window.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+EXT_LINKS_IN_WINDOW    = NO
+
+# Use this tag to change the font size of LaTeX formulas included as images in
+# the HTML documentation. When you change the font size after a successful
+# doxygen run you need to manually remove any form_*.png images from the HTML
+# output directory to force them to be regenerated.
+# Minimum value: 8, maximum value: 50, default value: 10.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+FORMULA_FONTSIZE       = 10
+
+# Use the FORMULA_TRANPARENT tag to determine whether or not the images
+# generated for formulas are transparent PNGs. Transparent PNGs are not
+# supported properly for IE 6.0, but are supported on all modern browsers.
+#
+# Note that when changing this option you need to delete any form_*.png files in
+# the HTML output directory before the changes have effect.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+FORMULA_TRANSPARENT    = YES
+
+# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see
+# http://www.mathjax.org) which uses client side Javascript for the rendering
+# instead of using prerendered bitmaps. Use this if you do not have LaTeX
+# installed or if you want to formulas look prettier in the HTML output. When
+# enabled you may also need to install MathJax separately and configure the path
+# to it using the MATHJAX_RELPATH option.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+USE_MATHJAX            = NO
+
+# When MathJax is enabled you can set the default output format to be used for
+# the MathJax output. See the MathJax site (see:
+# http://docs.mathjax.org/en/latest/output.html) for more details.
+# Possible values are: HTML-CSS (which is slower, but has the best
+# compatibility), NativeMML (i.e. MathML) and SVG.
+# The default value is: HTML-CSS.
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_FORMAT         = HTML-CSS
+
+# When MathJax is enabled you need to specify the location relative to the HTML
+# output directory using the MATHJAX_RELPATH option. The destination directory
+# should contain the MathJax.js script. For instance, if the mathjax directory
+# is located at the same level as the HTML output directory, then
+# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax
+# Content Delivery Network so you can quickly see the result without installing
+# MathJax. However, it is strongly recommended to install a local copy of
+# MathJax from http://www.mathjax.org before deployment.
+# The default value is: http://cdn.mathjax.org/mathjax/latest.
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_RELPATH        = http://cdn.mathjax.org/mathjax/latest
+
+# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax
+# extension names that should be enabled during MathJax rendering. For example
+# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_EXTENSIONS     =
+
+# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces
+# of code that will be used on startup of the MathJax code. See the MathJax site
+# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an
+# example see the documentation.
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_CODEFILE       =
+
+# When the SEARCHENGINE tag is enabled doxygen will generate a search box for
+# the HTML output. The underlying search engine uses javascript and DHTML and
+# should work on any modern browser. Note that when using HTML help
+# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET)
+# there is already a search function so this one should typically be disabled.
+# For large projects the javascript based search engine can be slow, then
+# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to
+# search using the keyboard; to jump to the search box use <access key> + S
+# (what the <access key> is depends on the OS and browser, but it is typically
+# <CTRL>, <ALT>/<option>, or both). Inside the search box use the <cursor down
+# key> to jump into the search results window, the results can be navigated
+# using the <cursor keys>. Press <Enter> to select an item or <escape> to cancel
+# the search. The filter options can be selected when the cursor is inside the
+# search box by pressing <Shift>+<cursor down>. Also here use the <cursor keys>
+# to select a filter and <Enter> or <escape> to activate or cancel the filter
+# option.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+SEARCHENGINE           = YES
+
+# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
+# implemented using a web server instead of a web client using Javascript. There
+# are two flavors of web server based searching depending on the EXTERNAL_SEARCH
+# setting. When disabled, doxygen will generate a PHP script for searching and
+# an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing
+# and searching needs to be provided by external tools. See the section
+# "External Indexing and Searching" for details.
+# The default value is: NO.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+SERVER_BASED_SEARCH    = NO
+
+# When EXTERNAL_SEARCH tag is enabled doxygen will no longer generate the PHP
+# script for searching. Instead the search results are written to an XML file
+# which needs to be processed by an external indexer. Doxygen will invoke an
+# external search engine pointed to by the SEARCHENGINE_URL option to obtain the
+# search results.
+#
+# Doxygen ships with an example indexer ( doxyindexer) and search engine
+# (doxysearch.cgi) which are based on the open source search engine library
+# Xapian (see: http://xapian.org/).
+#
+# See the section "External Indexing and Searching" for details.
+# The default value is: NO.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+EXTERNAL_SEARCH        = NO
+
+# The SEARCHENGINE_URL should point to a search engine hosted by a web server
+# which will return the search results when EXTERNAL_SEARCH is enabled.
+#
+# Doxygen ships with an example indexer ( doxyindexer) and search engine
+# (doxysearch.cgi) which are based on the open source search engine library
+# Xapian (see: http://xapian.org/). See the section "External Indexing and
+# Searching" for details.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+SEARCHENGINE_URL       =
+
+# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed
+# search data is written to a file for indexing by an external tool. With the
+# SEARCHDATA_FILE tag the name of this file can be specified.
+# The default file is: searchdata.xml.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+SEARCHDATA_FILE        = searchdata.xml
+
+# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the
+# EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is
+# useful in combination with EXTRA_SEARCH_MAPPINGS to search through multiple
+# projects and redirect the results back to the right project.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+EXTERNAL_SEARCH_ID     =
+
+# The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen
+# projects other than the one defined by this configuration file, but that are
+# all added to the same external search index. Each project needs to have a
+# unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id of
+# to a relative location where the documentation can be found. The format is:
+# EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ...
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+EXTRA_SEARCH_MAPPINGS  =
+
+#---------------------------------------------------------------------------
+# Configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_LATEX tag is set to YES doxygen will generate LaTeX output.
+# The default value is: YES.
+
+GENERATE_LATEX         = YES
+
+# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: latex.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_OUTPUT           = latex
+
+# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
+# invoked.
+#
+# Note that when enabling USE_PDFLATEX this option is only used for generating
+# bitmaps for formulas in the HTML output, but not in the Makefile that is
+# written to the output directory.
+# The default file is: latex.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_CMD_NAME         = latex
+
+# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate
+# index for LaTeX.
+# The default file is: makeindex.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+MAKEINDEX_CMD_NAME     = makeindex
+
+# If the COMPACT_LATEX tag is set to YES doxygen generates more compact LaTeX
+# documents. This may be useful for small projects and may help to save some
+# trees in general.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+COMPACT_LATEX          = NO
+
+# The PAPER_TYPE tag can be used to set the paper type that is used by the
+# printer.
+# Possible values are: a4 (210 x 297 mm), letter (8.5 x 11 inches), legal (8.5 x
+# 14 inches) and executive (7.25 x 10.5 inches).
+# The default value is: a4.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+PAPER_TYPE             = a4
+
+# The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names
+# that should be included in the LaTeX output. To get the times font for
+# instance you can specify
+# EXTRA_PACKAGES=times
+# If left blank no extra packages will be included.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+EXTRA_PACKAGES         =
+
+# The LATEX_HEADER tag can be used to specify a personal LaTeX header for the
+# generated LaTeX document. The header should contain everything until the first
+# chapter. If it is left blank doxygen will generate a standard header. See
+# section "Doxygen usage" for information on how to let doxygen write the
+# default header to a separate file.
+#
+# Note: Only use a user-defined header if you know what you are doing! The
+# following commands have a special meaning inside the header: $title,
+# $datetime, $date, $doxygenversion, $projectname, $projectnumber,
+# $projectbrief, $projectlogo. Doxygen will replace $title with the empy string,
+# for the replacement values of the other commands the user is refered to
+# HTML_HEADER.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_HEADER           =
+
+# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the
+# generated LaTeX document. The footer should contain everything after the last
+# chapter. If it is left blank doxygen will generate a standard footer. See
+# LATEX_HEADER for more information on how to generate a default footer and what
+# special commands can be used inside the footer.
+#
+# Note: Only use a user-defined footer if you know what you are doing!
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_FOOTER           =
+
+# The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or
+# other source files which should be copied to the LATEX_OUTPUT output
+# directory. Note that the files will be copied as-is; there are no commands or
+# markers available.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_EXTRA_FILES      =
+
+# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated is
+# prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will
+# contain links (just like the HTML output) instead of page references. This
+# makes the output suitable for online browsing using a PDF viewer.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+PDF_HYPERLINKS         = YES
+
+# If the USE_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate
+# the PDF file directly from the LaTeX files. Set this option to YES to get a
+# higher quality PDF documentation.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+USE_PDFLATEX           = YES
+
+# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \batchmode
+# command to the generated LaTeX files. This will instruct LaTeX to keep running
+# if errors occur, instead of asking the user for help. This option is also used
+# when generating formulas in HTML.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_BATCHMODE        = NO
+
+# If the LATEX_HIDE_INDICES tag is set to YES then doxygen will not include the
+# index chapters (such as File Index, Compound Index, etc.) in the output.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_HIDE_INDICES     = NO
+
+# If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source
+# code with syntax highlighting in the LaTeX output.
+#
+# Note that which sources are shown also depends on other settings such as
+# SOURCE_BROWSER.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_SOURCE_CODE      = NO
+
+# The LATEX_BIB_STYLE tag can be used to specify the style to use for the
+# bibliography, e.g. plainnat, or ieeetr. See
+# http://en.wikipedia.org/wiki/BibTeX and \cite for more info.
+# The default value is: plain.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_BIB_STYLE        = plain
+
+#---------------------------------------------------------------------------
+# Configuration options related to the RTF output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_RTF tag is set to YES doxygen will generate RTF output. The
+# RTF output is optimized for Word 97 and may not look too pretty with other RTF
+# readers/editors.
+# The default value is: NO.
+
+GENERATE_RTF           = NO
+
+# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: rtf.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+RTF_OUTPUT             = rtf
+
+# If the COMPACT_RTF tag is set to YES doxygen generates more compact RTF
+# documents. This may be useful for small projects and may help to save some
+# trees in general.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+COMPACT_RTF            = NO
+
+# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated will
+# contain hyperlink fields. The RTF file will contain links (just like the HTML
+# output) instead of page references. This makes the output suitable for online
+# browsing using Word or some other Word compatible readers that support those
+# fields.
+#
+# Note: WordPad (write) and others do not support links.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+RTF_HYPERLINKS         = NO
+
+# Load stylesheet definitions from file. Syntax is similar to doxygen's config
+# file, i.e. a series of assignments. You only have to provide replacements,
+# missing definitions are set to their default value.
+#
+# See also section "Doxygen usage" for information on how to generate the
+# default style sheet that doxygen normally uses.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+RTF_STYLESHEET_FILE    =
+
+# Set optional variables used in the generation of an RTF document. Syntax is
+# similar to doxygen's config file. A template extensions file can be generated
+# using doxygen -e rtf extensionFile.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+RTF_EXTENSIONS_FILE    =
+
+#---------------------------------------------------------------------------
+# Configuration options related to the man page output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_MAN tag is set to YES doxygen will generate man pages for
+# classes and files.
+# The default value is: NO.
+
+GENERATE_MAN           = NO
+
+# The MAN_OUTPUT tag is used to specify where the man pages will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it. A directory man3 will be created inside the directory specified by
+# MAN_OUTPUT.
+# The default directory is: man.
+# This tag requires that the tag GENERATE_MAN is set to YES.
+
+MAN_OUTPUT             = man
+
+# The MAN_EXTENSION tag determines the extension that is added to the generated
+# man pages. In case the manual section does not start with a number, the number
+# 3 is prepended. The dot (.) at the beginning of the MAN_EXTENSION tag is
+# optional.
+# The default value is: .3.
+# This tag requires that the tag GENERATE_MAN is set to YES.
+
+MAN_EXTENSION          = .3
+
+# The MAN_SUBDIR tag determines the name of the directory created within
+# MAN_OUTPUT in which the man pages are placed. If defaults to man followed by
+# MAN_EXTENSION with the initial . removed.
+# This tag requires that the tag GENERATE_MAN is set to YES.
+
+MAN_SUBDIR             =
+
+# If the MAN_LINKS tag is set to YES and doxygen generates man output, then it
+# will generate one additional man file for each entity documented in the real
+# man page(s). These additional files only source the real man page, but without
+# them the man command would be unable to find the correct page.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_MAN is set to YES.
+
+MAN_LINKS              = NO
+
+#---------------------------------------------------------------------------
+# Configuration options related to the XML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_XML tag is set to YES doxygen will generate an XML file that
+# captures the structure of the code including all documentation.
+# The default value is: NO.
+
+GENERATE_XML           = NO
+
+# The XML_OUTPUT tag is used to specify where the XML pages will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: xml.
+# This tag requires that the tag GENERATE_XML is set to YES.
+
+XML_OUTPUT             = xml
+
+# If the XML_PROGRAMLISTING tag is set to YES doxygen will dump the program
+# listings (including syntax highlighting and cross-referencing information) to
+# the XML output. Note that enabling this will significantly increase the size
+# of the XML output.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_XML is set to YES.
+
+XML_PROGRAMLISTING     = YES
+
+#---------------------------------------------------------------------------
+# Configuration options related to the DOCBOOK output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_DOCBOOK tag is set to YES doxygen will generate Docbook files
+# that can be used to generate PDF.
+# The default value is: NO.
+
+GENERATE_DOCBOOK       = NO
+
+# The DOCBOOK_OUTPUT tag is used to specify where the Docbook pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be put in
+# front of it.
+# The default directory is: docbook.
+# This tag requires that the tag GENERATE_DOCBOOK is set to YES.
+
+DOCBOOK_OUTPUT         = docbook
+
+# If the DOCBOOK_PROGRAMLISTING tag is set to YES doxygen will include the
+# program listings (including syntax highlighting and cross-referencing
+# information) to the DOCBOOK output. Note that enabling this will significantly
+# increase the size of the DOCBOOK output.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_DOCBOOK is set to YES.
+
+DOCBOOK_PROGRAMLISTING = NO
+
+#---------------------------------------------------------------------------
+# Configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_AUTOGEN_DEF tag is set to YES doxygen will generate an AutoGen
+# Definitions (see http://autogen.sf.net) file that captures the structure of
+# the code including all documentation. Note that this feature is still
+# experimental and incomplete at the moment.
+# The default value is: NO.
+
+GENERATE_AUTOGEN_DEF   = NO
+
+#---------------------------------------------------------------------------
+# Configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_PERLMOD tag is set to YES doxygen will generate a Perl module
+# file that captures the structure of the code including all documentation.
+#
+# Note that this feature is still experimental and incomplete at the moment.
+# The default value is: NO.
+
+GENERATE_PERLMOD       = NO
+
+# If the PERLMOD_LATEX tag is set to YES doxygen will generate the necessary
+# Makefile rules, Perl scripts and LaTeX code to be able to generate PDF and DVI
+# output from the Perl module output.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_PERLMOD is set to YES.
+
+PERLMOD_LATEX          = NO
+
+# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be nicely
+# formatted so it can be parsed by a human reader. This is useful if you want to
+# understand what is going on. On the other hand, if this tag is set to NO the
+# size of the Perl module output will be much smaller and Perl will parse it
+# just the same.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_PERLMOD is set to YES.
+
+PERLMOD_PRETTY         = YES
+
+# The names of the make variables in the generated doxyrules.make file are
+# prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. This is useful
+# so different doxyrules.make files included by the same Makefile don't
+# overwrite each other's variables.
+# This tag requires that the tag GENERATE_PERLMOD is set to YES.
+
+PERLMOD_MAKEVAR_PREFIX =
+
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor
+#---------------------------------------------------------------------------
+
+# If the ENABLE_PREPROCESSING tag is set to YES doxygen will evaluate all
+# C-preprocessor directives found in the sources and include files.
+# The default value is: YES.
+
+ENABLE_PREPROCESSING   = YES
+
+# If the MACRO_EXPANSION tag is set to YES doxygen will expand all macro names
+# in the source code. If set to NO only conditional compilation will be
+# performed. Macro expansion can be done in a controlled way by setting
+# EXPAND_ONLY_PREDEF to YES.
+# The default value is: NO.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+MACRO_EXPANSION        = NO
+
+# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then
+# the macro expansion is limited to the macros specified with the PREDEFINED and
+# EXPAND_AS_DEFINED tags.
+# The default value is: NO.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+EXPAND_ONLY_PREDEF     = NO
+
+# If the SEARCH_INCLUDES tag is set to YES the includes files in the
+# INCLUDE_PATH will be searched if a #include is found.
+# The default value is: YES.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+SEARCH_INCLUDES        = YES
+
+# The INCLUDE_PATH tag can be used to specify one or more directories that
+# contain include files that are not input files but should be processed by the
+# preprocessor.
+# This tag requires that the tag SEARCH_INCLUDES is set to YES.
+
+INCLUDE_PATH           =
+
+# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
+# patterns (like *.h and *.hpp) to filter out the header-files in the
+# directories. If left blank, the patterns specified with FILE_PATTERNS will be
+# used.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+INCLUDE_FILE_PATTERNS  =
+
+# The PREDEFINED tag can be used to specify one or more macro names that are
+# defined before the preprocessor is started (similar to the -D option of e.g.
+# gcc). The argument of the tag is a list of macros of the form: name or
+# name=definition (no spaces). If the definition and the "=" are omitted, "=1"
+# is assumed. To prevent a macro definition from being undefined via #undef or
+# recursively expanded use the := operator instead of the = operator.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+PREDEFINED             =
+
+# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
+# tag can be used to specify a list of macro names that should be expanded. The
+# macro definition that is found in the sources will be used. Use the PREDEFINED
+# tag if you want to use a different macro definition that overrules the
+# definition found in the source code.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+EXPAND_AS_DEFINED      =
+
+# If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will
+# remove all references to function-like macros that are alone on a line, have
+# an all uppercase name, and do not end with a semicolon. Such function macros
+# are typically used for boiler-plate code, and will confuse the parser if not
+# removed.
+# The default value is: YES.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+SKIP_FUNCTION_MACROS   = YES
+
+#---------------------------------------------------------------------------
+# Configuration options related to external references
+#---------------------------------------------------------------------------
+
+# The TAGFILES tag can be used to specify one or more tag files. For each tag
+# file the location of the external documentation should be added. The format of
+# a tag file without this location is as follows:
+# TAGFILES = file1 file2 ...
+# Adding location for the tag files is done as follows:
+# TAGFILES = file1=loc1 "file2 = loc2" ...
+# where loc1 and loc2 can be relative or absolute paths or URLs. See the
+# section "Linking to external documentation" for more information about the use
+# of tag files.
+# Note: Each tag file must have a unique name (where the name does NOT include
+# the path). If a tag file is not located in the directory in which doxygen is
+# run, you must also specify the path to the tagfile here.
+
+TAGFILES               =
+
+# When a file name is specified after GENERATE_TAGFILE, doxygen will create a
+# tag file that is based on the input files it reads. See section "Linking to
+# external documentation" for more information about the usage of tag files.
+
+GENERATE_TAGFILE       =
+
+# If the ALLEXTERNALS tag is set to YES all external class will be listed in the
+# class index. If set to NO only the inherited external classes will be listed.
+# The default value is: NO.
+
+ALLEXTERNALS           = NO
+
+# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed in
+# the modules index. If set to NO, only the current project's groups will be
+# listed.
+# The default value is: YES.
+
+EXTERNAL_GROUPS        = YES
+
+# If the EXTERNAL_PAGES tag is set to YES all external pages will be listed in
+# the related pages index. If set to NO, only the current project's pages will
+# be listed.
+# The default value is: YES.
+
+EXTERNAL_PAGES         = YES
+
+# The PERL_PATH should be the absolute path and name of the perl script
+# interpreter (i.e. the result of 'which perl').
+# The default file (with absolute path) is: /usr/bin/perl.
+
+PERL_PATH              = /usr/bin/perl
+
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool
+#---------------------------------------------------------------------------
+
+# If the CLASS_DIAGRAMS tag is set to YES doxygen will generate a class diagram
+# (in HTML and LaTeX) for classes with base or super classes. Setting the tag to
+# NO turns the diagrams off. Note that this option also works with HAVE_DOT
+# disabled, but it is recommended to install and use dot, since it yields more
+# powerful graphs.
+# The default value is: YES.
+
+CLASS_DIAGRAMS         = YES
+
+# You can define message sequence charts within doxygen comments using the \msc
+# command. Doxygen will then run the mscgen tool (see:
+# http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the
+# documentation. The MSCGEN_PATH tag allows you to specify the directory where
+# the mscgen tool resides. If left empty the tool is assumed to be found in the
+# default search path.
+
+MSCGEN_PATH            =
+
+# You can include diagrams made with dia in doxygen documentation. Doxygen will
+# then run dia to produce the diagram and insert it in the documentation. The
+# DIA_PATH tag allows you to specify the directory where the dia binary resides.
+# If left empty dia is assumed to be found in the default search path.
+
+DIA_PATH               =
+
+# If set to YES, the inheritance and collaboration graphs will hide inheritance
+# and usage relations if the target is undocumented or is not a class.
+# The default value is: YES.
+
+HIDE_UNDOC_RELATIONS   = YES
+
+# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
+# available from the path. This tool is part of Graphviz (see:
+# http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent
+# Bell Labs. The other options in this section have no effect if this option is
+# set to NO
+# The default value is: NO.
+
+HAVE_DOT               = YES
+
+# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed
+# to run in parallel. When set to 0 doxygen will base this on the number of
+# processors available in the system. You can set it explicitly to a value
+# larger than 0 to get control over the balance between CPU load and processing
+# speed.
+# Minimum value: 0, maximum value: 32, default value: 0.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_NUM_THREADS        = 0
+
+# When you want a differently looking font in the dot files that doxygen
+# generates you can specify the font name using DOT_FONTNAME. You need to make
+# sure dot is able to find the font, which can be done by putting it in a
+# standard location or by setting the DOTFONTPATH environment variable or by
+# setting DOT_FONTPATH to the directory containing the font.
+# The default value is: Helvetica.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_FONTNAME           = Helvetica
+
+# The DOT_FONTSIZE tag can be used to set the size (in points) of the font of
+# dot graphs.
+# Minimum value: 4, maximum value: 24, default value: 10.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_FONTSIZE           = 10
+
+# By default doxygen will tell dot to use the default font as specified with
+# DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set
+# the path where dot can find it using this tag.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_FONTPATH           =
+
+# If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for
+# each documented class showing the direct and indirect inheritance relations.
+# Setting this tag to YES will force the CLASS_DIAGRAMS tag to NO.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+CLASS_GRAPH            = YES
+
+# If the COLLABORATION_GRAPH tag is set to YES then doxygen will generate a
+# graph for each documented class showing the direct and indirect implementation
+# dependencies (inheritance, containment, and class references variables) of the
+# class with other documented classes.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+COLLABORATION_GRAPH    = YES
+
+# If the GROUP_GRAPHS tag is set to YES then doxygen will generate a graph for
+# groups, showing the direct groups dependencies.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+GROUP_GRAPHS           = YES
+
+# If the UML_LOOK tag is set to YES doxygen will generate inheritance and
+# collaboration diagrams in a style similar to the OMG's Unified Modeling
+# Language.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+UML_LOOK               = YES
+
+# If the UML_LOOK tag is enabled, the fields and methods are shown inside the
+# class node. If there are many fields or methods and many nodes the graph may
+# become too big to be useful. The UML_LIMIT_NUM_FIELDS threshold limits the
+# number of items for each type to make the size more manageable. Set this to 0
+# for no limit. Note that the threshold may be exceeded by 50% before the limit
+# is enforced. So when you set the threshold to 10, up to 15 fields may appear,
+# but if the number exceeds 15, the total amount of fields shown is limited to
+# 10.
+# Minimum value: 0, maximum value: 100, default value: 10.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+UML_LIMIT_NUM_FIELDS   = 10
+
+# If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and
+# collaboration graphs will show the relations between templates and their
+# instances.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+TEMPLATE_RELATIONS     = YES
+
+# If the INCLUDE_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are set to
+# YES then doxygen will generate a graph for each documented file showing the
+# direct and indirect include dependencies of the file with other documented
+# files.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+INCLUDE_GRAPH          = YES
+
+# If the INCLUDED_BY_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are
+# set to YES then doxygen will generate a graph for each documented file showing
+# the direct and indirect include dependencies of the file with other documented
+# files.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+INCLUDED_BY_GRAPH      = YES
+
+# If the CALL_GRAPH tag is set to YES then doxygen will generate a call
+# dependency graph for every global function or class method.
+#
+# Note that enabling this option will significantly increase the time of a run.
+# So in most cases it will be better to enable call graphs for selected
+# functions only using the \callgraph command.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+CALL_GRAPH             = YES
+
+# If the CALLER_GRAPH tag is set to YES then doxygen will generate a caller
+# dependency graph for every global function or class method.
+#
+# Note that enabling this option will significantly increase the time of a run.
+# So in most cases it will be better to enable caller graphs for selected
+# functions only using the \callergraph command.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+CALLER_GRAPH           = YES
+
+# If the GRAPHICAL_HIERARCHY tag is set to YES then doxygen will graphical
+# hierarchy of all classes instead of a textual one.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+GRAPHICAL_HIERARCHY    = YES
+
+# If the DIRECTORY_GRAPH tag is set to YES then doxygen will show the
+# dependencies a directory has on other directories in a graphical way. The
+# dependency relations are determined by the #include relations between the
+# files in the directories.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DIRECTORY_GRAPH        = YES
+
+# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
+# generated by dot.
+# Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order
+# to make the SVG files visible in IE 9+ (other browsers do not have this
+# requirement).
+# Possible values are: png, jpg, gif and svg.
+# The default value is: png.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_IMAGE_FORMAT       = png
+
+# If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to
+# enable generation of interactive SVG images that allow zooming and panning.
+#
+# Note that this requires a modern browser other than Internet Explorer. Tested
+# and working are Firefox, Chrome, Safari, and Opera.
+# Note: For IE 9+ you need to set HTML_FILE_EXTENSION to xhtml in order to make
+# the SVG files visible. Older versions of IE do not have SVG support.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+INTERACTIVE_SVG        = NO
+
+# The DOT_PATH tag can be used to specify the path where the dot tool can be
+# found. If left blank, it is assumed the dot tool can be found in the path.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_PATH               =
+
+# The DOTFILE_DIRS tag can be used to specify one or more directories that
+# contain dot files that are included in the documentation (see the \dotfile
+# command).
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOTFILE_DIRS           =
+
+# The MSCFILE_DIRS tag can be used to specify one or more directories that
+# contain msc files that are included in the documentation (see the \mscfile
+# command).
+
+MSCFILE_DIRS           =
+
+# The DIAFILE_DIRS tag can be used to specify one or more directories that
+# contain dia files that are included in the documentation (see the \diafile
+# command).
+
+DIAFILE_DIRS           =
+
+# When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the
+# path where java can find the plantuml.jar file. If left blank, it is assumed
+# PlantUML is not used or called during a preprocessing step. Doxygen will
+# generate a warning when it encounters a \startuml command in this case and
+# will not generate output for the diagram.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+PLANTUML_JAR_PATH      =
+
+# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes
+# that will be shown in the graph. If the number of nodes in a graph becomes
+# larger than this value, doxygen will truncate the graph, which is visualized
+# by representing a node as a red box. Note that doxygen if the number of direct
+# children of the root node in a graph is already larger than
+# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note that
+# the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
+# Minimum value: 0, maximum value: 10000, default value: 50.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_GRAPH_MAX_NODES    = 50
+
+# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the graphs
+# generated by dot. A depth value of 3 means that only nodes reachable from the
+# root by following a path via at most 3 edges will be shown. Nodes that lay
+# further from the root node will be omitted. Note that setting this option to 1
+# or 2 may greatly reduce the computation time needed for large code bases. Also
+# note that the size of a graph can be further restricted by
+# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
+# Minimum value: 0, maximum value: 1000, default value: 0.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+MAX_DOT_GRAPH_DEPTH    = 0
+
+# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
+# background. This is disabled by default, because dot on Windows does not seem
+# to support this out of the box.
+#
+# Warning: Depending on the platform used, enabling this option may lead to
+# badly anti-aliased labels on the edges of a graph (i.e. they become hard to
+# read).
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_TRANSPARENT        = NO
+
+# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
+# files in one run (i.e. multiple -o and -T options on the command line). This
+# makes dot run faster, but since only newer versions of dot (>1.8.10) support
+# this, this feature is disabled by default.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_MULTI_TARGETS      = NO
+
+# If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page
+# explaining the meaning of the various boxes and arrows in the dot generated
+# graphs.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+GENERATE_LEGEND        = YES
+
+# If the DOT_CLEANUP tag is set to YES doxygen will remove the intermediate dot
+# files that are used to generate the various graphs.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_CLEANUP            = YES
Index: palm/trunk/UTIL/inifor/namelist
===================================================================
--- palm/trunk/UTIL/inifor/namelist	(revision 2696)
+++ palm/trunk/UTIL/inifor/namelist	(revision 2696)
@@ -0,0 +1,7 @@
+ &inipar nx = 4679, ny = 3939, nz = 10
+         dx = 10., dy = 10., dz = 10.
+         longitude = 13.082744, latitude = 52.325079
+ /
+
+ &d3par  end_time = 3600.0
+ /
Index: palm/trunk/UTIL/inifor/src/Makefile
===================================================================
--- palm/trunk/UTIL/inifor/src/Makefile	(revision 2696)
+++ palm/trunk/UTIL/inifor/src/Makefile	(revision 2696)
@@ -0,0 +1,48 @@
+#> @file src/Makefile
+#------------------------------------------------------------------------------!
+# This file is part of PALM/PALM-4U.
+#
+# PALM/PALM-4U is free software: you can redistribute it and/or modify it under 
+# the terms of the GNU General Public License as published by the Free Software
+# Foundation, either version 3 of the License, or (at your option) any later 
+# version.
+#
+# PALM/PALM-4U is distributed in the hope that it will be useful, but WITHOUT 
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# PALM. If not, see <http://www.gnu.org/licenses/>.
+#
+# Copyright 2017-2017 Leibniz Universitaet Hannover, Deutscher Wetterdienst
+# Offenbach
+#------------------------------------------------------------------------------!
+#
+# Current revisions:
+# -----------------
+# 
+# 
+# Former revisions:
+# -----------------
+# $Id$
+# Initial revision
+#
+# 
+#
+# Authors:
+# --------
+# @author Eckhard Kadasch
+#
+# Description:
+# ------------
+#> This makefile may be used to generate index files using ctags for easy source
+#> code navigation in text editors.
+#------------------------------------------------------------------------------!
+.PHONY: tags clean
+
+tags:
+	ctags *.f90
+
+clean:
+	rm -f tags
+
Index: palm/trunk/UTIL/inifor/src/control.f90
===================================================================
--- palm/trunk/UTIL/inifor/src/control.f90	(revision 2696)
+++ palm/trunk/UTIL/inifor/src/control.f90	(revision 2696)
@@ -0,0 +1,176 @@
+!> @file src/control.f90
+!------------------------------------------------------------------------------!
+! This file is part of PALM/PALM-4U.
+!
+! PALM/PALM-4U is free software: you can redistribute it and/or modify it under 
+! the terms of the GNU General Public License as published by the Free Software
+! Foundation, either version 3 of the License, or (at your option) any later 
+! version.
+!
+! PALM/PALM-4U is distributed in the hope that it will be useful, but WITHOUT 
+! ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+! FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+!
+! You should have received a copy of the GNU General Public License along with
+! PALM. If not, see <http://www.gnu.org/licenses/>.
+!
+! Copyright 2017-2017 Leibniz Universitaet Hannover, Deutscher Wetterdienst
+! Offenbach
+!------------------------------------------------------------------------------!
+!
+! Current revisions:
+! -----------------
+! 
+! 
+! Former revisions:
+! -----------------
+! $Id$
+! Initial revision
+!
+! 
+!
+! Authors:
+! --------
+! @author Eckhard Kadasch
+!
+! Description:
+! ------------
+!> The control module provides routines for timing INIFOR and writing runtime
+!> feedback to the terminal and a log file.
+!------------------------------------------------------------------------------!
+ MODULE control
+
+    USE defs,                                                                  &
+        ONLY:  LNAME, dp
+
+    USE util,                                                                  &
+        ONLY:  real_to_str, real_to_str_f
+
+    IMPLICIT NONE
+
+    CHARACTER (LEN=5000) ::  message = ''
+
+ CONTAINS
+
+    SUBROUTINE report(routine, message)
+
+       CHARACTER(LEN=*), INTENT(IN) ::  routine
+       CHARACTER(LEN=*), INTENT(IN) ::  message
+       INTEGER                      ::  u
+       LOGICAL, SAVE                ::  is_first_run = .TRUE.
+
+       PRINT *, "inifor: " // TRIM(message) // "  [ " // TRIM(routine) // " ]"
+
+       IF (is_first_run)  THEN
+          OPEN( NEWUNIT=u, FILE='inifor.log', STATUS='replace' )
+          is_first_run = .FALSE.
+       ELSE
+          OPEN( NEWUNIT=u, FILE='inifor.log', POSITION='append', STATUS='old' )
+       END IF
+          
+       WRITE(u, *)  TRIM(message) // "  [ " // TRIM(routine) // " ]"
+
+       CLOSE(u)
+
+    END SUBROUTINE report
+
+
+    SUBROUTINE warn(routine, message)
+
+       CHARACTER(LEN=*), INTENT(IN) ::  routine
+       CHARACTER(LEN=*), INTENT(IN) ::  message
+
+       CALL report(routine, "WARNING: " // TRIM(message))
+
+    END SUBROUTINE warn
+
+
+    SUBROUTINE abort(routine, message)
+
+       CHARACTER(LEN=*), INTENT(IN) ::  routine
+       CHARACTER(LEN=*), INTENT(IN) ::  message
+
+       CALL report(routine, "ERROR: " // TRIM(message) // " Stopping.")
+       STOP
+
+    END SUBROUTINE abort
+
+
+    SUBROUTINE run_control(mode, budget)
+
+       CHARACTER(LEN=*), INTENT(IN) ::  mode, budget
+       REAL(dp), SAVE               ::  t0, t1
+       REAL(dp), SAVE               ::  t_comp=0.0_dp, &
+                                        t_alloc=0.0_dp, &
+                                        t_init=0.0_dp, &
+                                        t_read=0.0_dp, &
+                                        t_total=0.0_dp, &
+                                        t_write=0.0_dp
+       CHARACTER(LEN=*), PARAMETER  ::  fmt='(F6.2)'
+
+
+       SELECT CASE(TRIM(mode))
+
+       CASE('init')
+          CALL CPU_TIME(t0)
+
+       CASE('time')
+
+          CALL CPU_TIME(t1)
+
+          SELECT CASE(TRIM(budget))
+
+             CASE('alloc')
+                t_alloc = t_alloc + t1 - t0
+
+             CASE('init')
+                t_init = t_init + t1 - t0
+
+             CASE('read')
+                t_read = t_read + t1 - t0
+
+             CASE('write')
+                t_write = t_write + t1 - t0
+
+             CASE('comp')
+                t_comp = t_comp + t1 - t0
+
+             CASE DEFAULT
+                CALL abort('run_control', "Time Budget '" // TRIM(mode) // "' is not supported.")
+
+          END SELECT
+
+          t0 = t1
+
+       CASE('report')
+           t_total = t_init + t_read + t_write + t_comp
+
+           CALL report('run_control', " *** CPU time ***")
+
+           CALL report('run_control', "Initialization: " // real_to_str(t_init)  // &
+                       " s (" // TRIM(real_to_str(100*t_init/t_total, fmt))      // " %)")
+
+           CALL report('run_control', "(De-)Allocation:" // real_to_str(t_alloc)  // &
+                       " s (" // TRIM(real_to_str(100*t_alloc/t_total, fmt))      // " %)")
+
+           CALL report('run_control', "Reading data:   " // real_to_str(t_read)  // &
+                       " s (" // TRIM(real_to_str(100*t_read/t_total, fmt))      // " %)")
+
+           CALL report('run_control', "Writing data:   " // real_to_str(t_write) // &
+                       " s (" // TRIM(real_to_str(100*t_write/t_total, fmt))     // " %)")
+
+           CALL report('run_control', "Computation:    " // real_to_str(t_comp)  // &
+                       " s (" // TRIM(real_to_str(100*t_comp/t_total, fmt))      // " %)")
+
+           CALL report('run_control', "Total:          " // real_to_str(t_total) // &
+                       " s (" // TRIM(real_to_str(100*t_total/t_total, fmt))     // " %)")
+
+       CASE DEFAULT
+          CALL abort('run_control', "Mode '" // TRIM(mode) // "' is not supported.")
+
+       END SELECT
+
+    END SUBROUTINE run_control
+
+ END MODULE
+
Index: palm/trunk/UTIL/inifor/src/defs.f90
===================================================================
--- palm/trunk/UTIL/inifor/src/defs.f90	(revision 2696)
+++ palm/trunk/UTIL/inifor/src/defs.f90	(revision 2696)
@@ -0,0 +1,78 @@
+!> @file src/defs.f90
+!------------------------------------------------------------------------------!
+! This file is part of PALM/PALM-4U.
+!
+! PALM/PALM-4U is free software: you can redistribute it and/or modify it under 
+! the terms of the GNU General Public License as published by the Free Software
+! Foundation, either version 3 of the License, or (at your option) any later 
+! version.
+!
+! PALM/PALM-4U is distributed in the hope that it will be useful, but WITHOUT 
+! ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+! FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+!
+! You should have received a copy of the GNU General Public License along with
+! PALM. If not, see <http://www.gnu.org/licenses/>.
+!
+! Copyright 2017-2017 Leibniz Universitaet Hannover, Deutscher Wetterdienst
+! Offenbach
+!------------------------------------------------------------------------------!
+!
+! Current revisions:
+! -----------------
+! 
+! 
+! Former revisions:
+! -----------------
+! $Id$
+! Initial revision
+!
+! 
+!
+! Authors:
+! --------
+! @author Eckhard Kadasch
+!
+! Description:
+! ------------
+!> The defs module provides global constants used in INIFOR.
+!------------------------------------------------------------------------------!
+ MODULE defs
+ 
+ IMPLICIT NONE
+ 
+ ! Parameters for type definitions
+ INTEGER, PARAMETER  ::  dp    = 8   !< double precision (8 bytes = 64 bits)
+ INTEGER, PARAMETER  ::  sp    = 4   !< single precision (4 bytes = 32 bits)
+ INTEGER, PARAMETER  ::  hp    = 2   !< half precision (2 bytes = 16 bits)
+ INTEGER, PARAMETER  ::  PATH  = 140 !< length of file path strings
+ INTEGER, PARAMETER  ::  LNAME = 150 !< length of long name strings
+ INTEGER, PARAMETER  ::  SNAME = 40  !< length of short name strings
+ INTEGER, PARAMETER  ::  DATE  = 10  !< length of date strings
+
+ ! Trigonomentry
+ REAL(dp), PARAMETER ::  PI = 3.14159265358979323846264338_dp !< Ratio of a circle's circumference to its diamter [-]
+ REAL(dp), PARAMETER ::  TO_RADIANS = PI / 180.0_dp           !< Conversion factor from degrees to radiant [-]
+ REAL(dp), PARAMETER ::  TO_DEGREES = 180.0_dp / PI           !< Conversion factor from radians to degrees [-]
+
+ ! COSMO-DE parameters
+ INTEGER, PARAMETER  ::  WATER_ID = 9                         !< Integer corresponding to the water soil type in COSMO-DE [-]
+ REAL(dp), PARAMETER ::  EARTH_RADIUS = 6371229.0_dp          !< Earth radius used in COSMO-DE [m]
+ REAL(dp), PARAMETER ::  P_SL = 1e5_dp                        !< Reference pressure for computation of COSMO-DE's basic state pressure [Pa]
+ REAL(dp), PARAMETER ::  T_SL = 288.15_dp                     !< Reference temperature for computation of COSMO-DE's basic state pressure [K]
+ REAL(dp), PARAMETER ::  BETA = 42.0_dp                       !< logarithmic lapse rate, dT / d ln(p), for computation of COSMO-DE's basic state pressure [K]
+ REAL(dp), PARAMETER ::  RD   = 287.05_dp                     !< specific gar constant of dry air, used in computation of COSMO-DE's basic state [J/kg/K]
+ REAL(dp), PARAMETER ::  G    = 9.80665_dp                    !< acceleration of Earth's gravity, used in computation of COSMO-DE's basic state [m/s/s]
+ REAL(dp), PARAMETER ::  RHO_L = 1e3_dp                       !< density of liquid water, used to convert W_SO from [kg/m^2] to [m^3/m^3], in [kg/m^3]
+
+ ! PALM-4U parameters
+ REAL(dp), PARAMETER ::  P_REF   = 1e5_dp                     !< Reference pressure for potential temperature [Pa]
+ REAL(dp), PARAMETER ::  RD_PALM = 287.0_dp                   !< specific gas constant of dry air, used in computation of PALM-4U's potential temperature [J/kg/K]
+ REAL(dp), PARAMETER ::  CP_PALM = 1005.0_dp                  !< heat capacity of dry air at constant pressure, used in computation of PALM-4U's potential temperature [J/kg/K]
+
+ ! INIFOR parameters
+ INTEGER, PARAMETER          ::  FILL_ITERATIONS = 10         !< Number of iterations for extrapolating soil data into COSMO-DE water cells [-]
+ REAL(dp), PARAMETER         ::  FORCING_FREQ = 3600.0_dp     !< Reference pressure for potential temperature [Pa]
+ CHARACTER(LEN=*), PARAMETER ::  VERSION = '1.1.4'            !< path to script for generating input file names
+
+ END MODULE defs
Index: palm/trunk/UTIL/inifor/src/grid.f90
===================================================================
--- palm/trunk/UTIL/inifor/src/grid.f90	(revision 2696)
+++ palm/trunk/UTIL/inifor/src/grid.f90	(revision 2696)
@@ -0,0 +1,2929 @@
+!> @file src/grid.f90
+!------------------------------------------------------------------------------!
+! This file is part of PALM/PALM-4U.
+!
+! PALM/PALM-4U is free software: you can redistribute it and/or modify it under 
+! the terms of the GNU General Public License as published by the Free Software
+! Foundation, either version 3 of the License, or (at your option) any later 
+! version.
+!
+! PALM/PALM-4U is distributed in the hope that it will be useful, but WITHOUT 
+! ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+! FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+!
+! You should have received a copy of the GNU General Public License along with
+! PALM. If not, see <http://www.gnu.org/licenses/>.
+!
+! Copyright 2017-2017 Leibniz Universitaet Hannover, Deutscher Wetterdienst
+! Offenbach
+!------------------------------------------------------------------------------!
+!
+! Current revisions:
+! -----------------
+! 
+! 
+! Former revisions:
+! -----------------
+! $Id$
+! Initial revision
+!
+! 
+!
+! Authors:
+! --------
+! @author Eckhard Kadasch
+!
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> The grid module contains all variables and routines to specify and work with
+!> the numerical grids in INIFOR. By convention, all angles are stored in
+!> radians.
+!------------------------------------------------------------------------------!
+
+ MODULE grid
+
+    USE control
+    USE defs,                                                                  &
+        ONLY:  DATE, EARTH_RADIUS, TO_RADIANS, TO_DEGREES, PI, dp, hp, sp,     &
+               SNAME, LNAME, PATH, FORCING_FREQ, WATER_ID, FILL_ITERATIONS,    &
+               BETA, P_SL, T_SL, BETA, RD, G, P_REF, RD_PALM, CP_PALM, RHO_L
+    USE io,                                                                    &
+        ONLY:  get_netcdf_variable, get_netcdf_attribute,                      &
+               parse_command_line_arguments
+    USE netcdf,                                                                &
+        ONLY:  NF90_MAX_NAME, NF90_MAX_VAR_DIMS
+    USE transform,                                                             &
+        ONLY:  rotate_to_cosmo, find_horizontal_neighbours,                    &
+               compute_horizontal_interp_weights,                              &
+               find_vertical_neighbours_and_weights, interpolate_2d,           &
+               gamma_from_hemisphere, phic_to_phin, lamc_to_lamn, average_2d,  &
+               project, centre_velocities, phi2phirot, rla2rlarot, uv2uvrot
+    USE types
+    USE util
+    
+    IMPLICIT NONE
+    
+    SAVE
+    
+    REAL(dp) ::  phi_equat = 0.0_dp    !< latitude of rotated equator of COSMO-DE grid [rad]
+    REAL(dp) ::  phi_n     = 0.0_dp    !< latitude of rotated pole of COSMO-DE grid [rad]
+    REAL(dp) ::  lambda_n  = 0.0_dp    !< longitude of rotaded pole of COSMO-DE grid [rad]
+    REAL(dp) ::  phi_c     = 0.0_dp    !< rotated-grid latitude of the center of the PALM domain [rad]
+    REAL(dp) ::  lambda_c  = 0.0_dp    !< rotated-grid longitude of the centre of the PALM domain [rad]
+    REAL(dp) ::  phi_cn    = 0.0_dp    !< latitude of the rotated pole relative to the COSMO-DE grid [rad]
+    REAL(dp) ::  lambda_cn = 0.0_dp    !< longitude of the rotated pole relative to the COSMO-DE grid [rad]
+    REAL(dp) ::  gam       = 0.0_dp    !< angle for working around phirot2phi/rlarot2rla bug
+    REAL(dp) ::  dx        = 0.0_dp    !< PALM-4U grid spacing in x direction [m]
+    REAL(dp) ::  dy        = 0.0_dp    !< PALM-4U grid spacing in y direction [m]
+    REAL(dp) ::  dz        = 0.0_dp    !< PALM-4U grid spacing in z direction [m]
+    REAL(dp) ::  dxi       = 0.0_dp    !< inverse PALM-4U grid spacing in x direction [m^-1]
+    REAL(dp) ::  dyi       = 0.0_dp    !< inverse PALM-4U grid spacing in y direction [m^-1]
+    REAL(dp) ::  dzi       = 0.0_dp    !< inverse PALM-4U grid spacing in z direction [m^-1]
+    REAL(dp) ::  lx        = 0.0_dp    !< PALM-4U domain size in x direction [m]
+    REAL(dp) ::  ly        = 0.0_dp    !< PALM-4U domain size in y direction [m]
+    REAL(dp) ::  lz        = 0.0_dp    !< PALM-4U domain size in z direction [m]
+    REAL(dp) ::  ug        = 0.0_dp    !< geostrophic wind in x direction [m/s]
+    REAL(dp) ::  vg        = 0.0_dp    !< geostrophic wind in y direction [m/s]
+    REAL(dp) ::  p0        = 0.0_dp    !< PALM-4U surface pressure, at z0 [Pa]
+    REAL(dp) ::  x0        = 0.0_dp    !< x coordinate of PALM-4U Earth tangent [m] 
+    REAL(dp) ::  y0        = 0.0_dp    !< y coordinate of PALM-4U Earth tangent [m] 
+    REAL(dp) ::  z0        = 0.0_dp    !< Elevation of the PALM-4U domain above sea level [m]
+    REAL(dp) ::  lonmin    = 0.0_dp    !< Minimunm longitude of COSMO-DE's rotated-pole grid
+    REAL(dp) ::  lonmax    = 0.0_dp    !< Maximum longitude of COSMO-DE's rotated-pole grid
+    REAL(dp) ::  latmin    = 0.0_dp    !< Minimunm latitude of COSMO-DE's rotated-pole grid
+    REAL(dp) ::  latmax    = 0.0_dp    !< Maximum latitude of COSMO-DE's rotated-pole grid
+    REAL(dp) ::  latitude  = 0.0_dp    !< geograpohical latitude of the PALM-4U origin, from inipar namelist [deg]
+    REAL(dp) ::  longitude = 0.0_dp    !< geograpohical longitude of the PALM-4U origin, from inipar namelist [deg]
+    REAL(dp) ::  origin_lat= 0.0_dp    !< geograpohical latitude of the PALM-4U origin, from static driver netCDF file [deg]
+    REAL(dp) ::  origin_lon= 0.0_dp    !< geograpohical longitude of the PALM-4U origin, from static driver netCDF file [deg]
+    REAL(dp) ::  end_time  = 0.0_dp    !< PALM-4U simulation time [s]
+
+    REAL(dp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  hhl             !< heights of half layers (cell faces) above sea level in COSMO-DE, read in from external file
+    REAL(dp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  hfl             !< heights of full layers (cell centres) above sea level in COSMO-DE, computed as arithmetic average of hhl
+    REAL(dp), DIMENSION(:), ALLOCATABLE, TARGET     ::  depths          !< COSMO-DE's TERRA-ML soil layer depths
+    REAL(dp), DIMENSION(:), ALLOCATABLE, TARGET     ::  d_depth_rho_inv !< COSMO-DE's TERRA-ML soil layer thicknesses
+    REAL(dp), DIMENSION(:), ALLOCATABLE, TARGET     ::  rlon            !< longitudes of COSMO-DE's rotated-pole grid
+    REAL(dp), DIMENSION(:), ALLOCATABLE, TARGET     ::  rlat            !< latitudes of COSMO-DE's rotated-pole grid
+    REAL(dp), DIMENSION(:), ALLOCATABLE, TARGET     ::  time
+
+    INTEGER(hp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  soiltyp      !< COSMO-DE soil type map
+    INTEGER ::  i     !< indexing variable
+    INTEGER ::  imin, imax, jmin, jmax !< index ranges for profile averaging
+    INTEGER ::  k     !< indexing variable
+    INTEGER ::  nt    !< number of output time steps
+    INTEGER ::  nx    !< number of PALM-4U grid points in x direction
+    INTEGER ::  ny    !< number of PALM-4U grid points in y direction
+    INTEGER ::  nz    !< number of PALM-4U grid points in z direction
+    INTEGER ::  nlon  !< number of longitudal points in target grid (COSMO-DE)
+    INTEGER ::  nlat  !< number of latitudal points in target grid (COSMO-DE)
+    INTEGER ::  nlev  !< number of levels in target grid (COSMO-DE)
+    INTEGER ::  layers !< number of COSMO-DE soil layers
+    INTEGER ::  start_hour_flow         !< start of flow forcing in number of hours relative to start_date
+    INTEGER ::  start_hour_soil         !< start of soil forcing in number of hours relative to start_date, typically equals start_hour_flow
+    INTEGER ::  start_hour_radiation    !< start of radiation forcing in number of hours relative to start_date, 0 to 2 hours before start_hour_flow to reconstruct hourly averages from one- to three hourly averages of the input data
+    INTEGER ::  start_hour_soilmoisture !< start of forcing for the soil moisture spin-up in number of hours relative to start_date, typically -672 (-4 weeks)
+    INTEGER ::  end_hour  !< simulation time in hours
+    INTEGER ::  end_hour_soilmoisture  !< end of soil moisture spin-up in hours relative to start_hour_flow
+    INTEGER ::  step_hour !< number of hours between forcing time steps
+
+    LOGICAL ::  init_variables_required
+    LOGICAL ::  boundary_variables_required
+
+    INTEGER ::  n_invar = 0 !< number of variables in the input variable table
+    INTEGER ::  n_outvar = 0 !< number of variables in the output variable table
+    TYPE(nc_var), ALLOCATABLE, TARGET ::  input_var_table(:)  !< table of input variables
+    TYPE(nc_var), ALLOCATABLE, TARGET ::  output_var_table(:) !< table of input variables
+    TYPE(nc_var)                      ::  cosmo_var           !< COSMO-DE dummy variable, used for reading HHL, rlon, rlat
+
+    TYPE(grid_definition), TARGET ::  palm_grid                       !< PALM-4U grid in the target system (COSMO-DE rotated-pole)
+    TYPE(grid_definition), TARGET ::  palm_intermediate               !< PALM-4U grid with coarse vertical grid wiht levels interpolated from COSMO-DE grid
+    TYPE(grid_definition), TARGET ::  cosmo_grid                      !< target system (COSMO-DE rotated-pole)
+    TYPE(grid_definition), TARGET ::  scalars_east_grid               !< 
+    TYPE(grid_definition), TARGET ::  scalars_west_grid               !< 
+    TYPE(grid_definition), TARGET ::  scalars_north_grid              !< 
+    TYPE(grid_definition), TARGET ::  scalars_south_grid              !< 
+    TYPE(grid_definition), TARGET ::  scalars_top_grid                !< 
+    TYPE(grid_definition), TARGET ::  scalars_east_intermediate       !< 
+    TYPE(grid_definition), TARGET ::  scalars_west_intermediate       !< 
+    TYPE(grid_definition), TARGET ::  scalars_north_intermediate      !< 
+    TYPE(grid_definition), TARGET ::  scalars_south_intermediate      !< 
+    TYPE(grid_definition), TARGET ::  scalars_top_intermediate        !< 
+    TYPE(grid_definition), TARGET ::  u_initial_grid                  !< 
+    TYPE(grid_definition), TARGET ::  u_east_grid                     !< 
+    TYPE(grid_definition), TARGET ::  u_west_grid                     !< 
+    TYPE(grid_definition), TARGET ::  u_north_grid                    !< 
+    TYPE(grid_definition), TARGET ::  u_south_grid                    !< 
+    TYPE(grid_definition), TARGET ::  u_top_grid                      !< 
+    TYPE(grid_definition), TARGET ::  u_initial_intermediate          !<
+    TYPE(grid_definition), TARGET ::  u_east_intermediate             !< 
+    TYPE(grid_definition), TARGET ::  u_west_intermediate             !< 
+    TYPE(grid_definition), TARGET ::  u_north_intermediate            !< 
+    TYPE(grid_definition), TARGET ::  u_south_intermediate            !< 
+    TYPE(grid_definition), TARGET ::  u_top_intermediate              !< 
+    TYPE(grid_definition), TARGET ::  v_initial_grid                  !< 
+    TYPE(grid_definition), TARGET ::  v_east_grid                     !< 
+    TYPE(grid_definition), TARGET ::  v_west_grid                     !< 
+    TYPE(grid_definition), TARGET ::  v_north_grid                    !< 
+    TYPE(grid_definition), TARGET ::  v_south_grid                    !< 
+    TYPE(grid_definition), TARGET ::  v_top_grid                      !< 
+    TYPE(grid_definition), TARGET ::  v_initial_intermediate          !<
+    TYPE(grid_definition), TARGET ::  v_east_intermediate             !< 
+    TYPE(grid_definition), TARGET ::  v_west_intermediate             !< 
+    TYPE(grid_definition), TARGET ::  v_north_intermediate            !< 
+    TYPE(grid_definition), TARGET ::  v_south_intermediate            !< 
+    TYPE(grid_definition), TARGET ::  v_top_intermediate              !< 
+    TYPE(grid_definition), TARGET ::  w_initial_grid                  !< 
+    TYPE(grid_definition), TARGET ::  w_east_grid                     !< 
+    TYPE(grid_definition), TARGET ::  w_west_grid                     !< 
+    TYPE(grid_definition), TARGET ::  w_north_grid                    !< 
+    TYPE(grid_definition), TARGET ::  w_south_grid                    !< 
+    TYPE(grid_definition), TARGET ::  w_top_grid                      !< 
+    TYPE(grid_definition), TARGET ::  w_initial_intermediate          !<
+    TYPE(grid_definition), TARGET ::  w_east_intermediate             !< 
+    TYPE(grid_definition), TARGET ::  w_west_intermediate             !< 
+    TYPE(grid_definition), TARGET ::  w_north_intermediate            !< 
+    TYPE(grid_definition), TARGET ::  w_south_intermediate            !< 
+    TYPE(grid_definition), TARGET ::  w_top_intermediate              !< 
+    TYPE(grid_definition), TARGET ::  scalar_profile_grid             !< 
+    TYPE(grid_definition), TARGET ::  scalar_profile_intermediate     !< 
+    TYPE(grid_definition), TARGET ::  w_profile_grid                  !< 
+    TYPE(grid_definition), TARGET ::  w_profile_intermediate          !< 
+
+    TYPE(io_group), ALLOCATABLE, TARGET ::  io_group_list(:)  !< List of I/O groups, which group together output variables that share the same input variable
+ 
+    NAMELIST /inipar/ nx, ny, nz, dx, dy, dz, longitude, latitude
+    NAMELIST /d3par/  end_time
+    
+    CHARACTER(LEN=LNAME) ::  nc_source_text     = ''  !< Text describing the source of the output data, e.g. 'COSMO-DE analysis from ...'
+    CHARACTER(LEN=DATE)  ::  start_date         = ''  !< String of the FORMAT YYYYMMDDHH indicating the start of the intended PALM-4U simulation
+    CHARACTER(LEN=PATH)  ::  hhl_file           = ''  !< Path to the file containing the COSMO-DE HHL variable (height of half layers, i.e. vertical cell faces)
+    CHARACTER(LEN=PATH)  ::  namelist_file      = ''  !< Path to the PALM-4U namelist file
+    CHARACTER(LEN=PATH)  ::  static_driver_file = ''  !< Path to the file containing the COSMO-DE SOILTYP variable (map of COSMO-DE soil types)
+    CHARACTER(LEN=PATH)  ::  soiltyp_file       = ''  !< Path to the file containing the COSMO-DE SOILTYP variable (map of COSMO-DE soil types)
+    CHARACTER(LEN=PATH)  ::  input_path         = ''  !< Path to the input data file directory
+    CHARACTER(LEN=PATH), ALLOCATABLE, DIMENSION(:) ::  flow_files
+    CHARACTER(LEN=PATH), ALLOCATABLE, DIMENSION(:) ::  soil_moisture_files
+    CHARACTER(LEN=PATH), ALLOCATABLE, DIMENSION(:) ::  soil_files
+    CHARACTER(LEN=PATH), ALLOCATABLE, DIMENSION(:) ::  radiation_files
+    CHARACTER(LEN=SNAME) ::  input_prefix         !< Prefix of input files, e.g. 'laf' for COSMO-DE analyses
+    CHARACTER(LEN=SNAME) ::  flow_suffix          !< Suffix of flow input files, e.g. 'flow'
+    CHARACTER(LEN=SNAME) ::  soil_suffix          !< Suffix of soil input files, e.g. 'soil'
+    CHARACTER(LEN=SNAME) ::  radiation_suffix     !< Suffix of radiation input files, e.g. 'radiation'
+    CHARACTER(LEN=SNAME) ::  soilmoisture_suffix  !< Suffix of input files for soil moisture spin-up, e.g. 'soilmoisture'
+    CHARACTER(LEN=SNAME) ::  mode                 !< INIFOR's initialization mode, 'profile' or 'volume'
+                          
+    TYPE(nc_file) ::  output_file
+
+ CONTAINS
+    
+    SUBROUTINE setup_parameters()
+
+!
+!------------------------------------------------------------------------------
+! Section 1: Define default parameters
+!------------------------------------------------------------------------------
+       start_date = '2013072100'
+       end_hour = 2
+       start_hour_soil = -2
+       start_hour_soilmoisture = - (4 * 7 * 24) - 2
+
+       lonmin =  -5.0_dp * TO_RADIANS
+       lonmax =   5.5_dp * TO_RADIANS
+       latmin =  -5.0_dp * TO_RADIANS
+       latmax =   6.5_dp * TO_RADIANS
+
+       ! COSMO-DE default rotated pole
+       phi_n     =   40.0_dp * TO_RADIANS
+       phi_equat =   50.0_dp * TO_RADIANS
+       lambda_n  = -170.0_dp * TO_RADIANS
+
+       ! COMSMO-DE soil layers
+       layers = 8    
+       ALLOCATE( depths(layers), d_depth_rho_inv(layers) )
+       depths = (/0.005_dp, 0.02_dp, 0.06_dp, 0.18_dp, 0.54_dp, 1.62_dp, 4.86_dp, 14.58_dp/)
+       d_depth_rho_inv = 1.0_dp / &
+          ( (/0.01_dp, 0.02_dp, 0.06_dp, 0.18_dp, 0.54_dp, 1.62_dp, 4.86_dp, 14.58_dp/) * RHO_L )
+
+       ! Defaultmain centre (_c) of the PALM-4U grid in the geographical system (_g)
+       origin_lat = 52.325079_dp * TO_RADIANS ! south-west of Berlin, origin used for the Dec 2017 showcase simulation
+       origin_lon = 13.082744_dp * TO_RADIANS
+       z0 = 35.0_dp
+
+       ! Default atmospheric parameters
+       ug = 0.0_dp
+       vg = 0.0_dp
+       p0 = P_SL
+
+       ! Parameters for file names
+       start_hour_flow = 0
+       start_hour_soil = 0
+       start_hour_radiation = 0
+       start_hour_soilmoisture = start_hour_flow - 2
+       end_hour_soilmoisture = start_hour_flow
+       step_hour = 1
+       input_prefix = 'laf'  ! 'laf' for COSMO-DE analyses
+       flow_suffix = '-flow'
+       soil_suffix = '-soil'
+       radiation_suffix = '-rad'
+       soilmoisture_suffix = '-soilmoisture'
+!
+!------------------------------------------------------------------------------
+! Section 2: Read command-line arguments, namelist, and grid parameters
+!------------------------------------------------------------------------------
+
+       ! Set default paths
+       input_path         = './'
+       hhl_file           = ''
+       soiltyp_file       = ''
+       namelist_file      = './namelist'
+       output_file % name = './palm-4u-input.nc'
+
+       ! Update default file names and domain centre
+       CALL parse_command_line_arguments( start_date, hhl_file, soiltyp_file,  &
+               static_driver_file, input_path, output_file % name,             &
+               namelist_file, ug, vg, p0, z0, mode )
+
+       init_variables_required     = .TRUE.
+       boundary_variables_required = (TRIM(mode) .NE. 'profile')
+
+       CALL normalize_path(input_path)
+       IF (TRIM(hhl_file) == '')  hhl_file = TRIM(input_path) // 'hhl.nc'
+       IF (TRIM(soiltyp_file) == '')  soiltyp_file = TRIM(input_path) // 'soil.nc'
+
+       CALL report('setup_parameters', "       data path: " // TRIM(input_path))
+       CALL report('setup_parameters', "        hhl file: " // TRIM(hhl_file))
+       CALL report('setup_parameters', "    soiltyp file: " // TRIM(soiltyp_file))
+       CALL report('setup_parameters', "   namelist file: " // TRIM(namelist_file))
+       CALL report('setup_parameters', "output data file: " // TRIM(output_file % name))
+
+ CALL run_control('time', 'init')
+       ! Read in namelist parameters
+       OPEN(10, FILE=namelist_file)
+       READ(10, NML=inipar) ! nx, ny, nz, dx, dy, dz
+       READ(10, NML=d3par)  ! end_time
+       CLOSE(10)
+ CALL run_control('time', 'read')
+
+       end_hour = CEILING(end_time / FORCING_FREQ)
+
+       ! Generate input file lists
+       CALL input_file_list(start_date, start_hour_flow, end_hour, step_hour,  &
+          input_path, input_prefix, flow_suffix, flow_files)
+       CALL input_file_list(start_date, start_hour_soil, end_hour, step_hour,  &
+          input_path, input_prefix, soil_suffix, soil_files)
+       CALL input_file_list(start_date, start_hour_radiation, end_hour, step_hour, &
+          input_path, input_prefix, radiation_suffix, radiation_files)
+       CALL input_file_list(start_date, start_hour_soilmoisture, end_hour_soilmoisture, step_hour, &
+          input_path, input_prefix, soilmoisture_suffix, soil_moisture_files)
+
+!
+!------------------------------------------------------------------------------
+! Section 3: Check for consistency
+!------------------------------------------------------------------------------
+       IF (dx*dy*dz .EQ. 0.0_dp)  THEN
+          message = "Grid cells have zero volume. Grid spacings are probably"//&
+             " set incorrectly in namelist file '" // TRIM(namelist_file) // "'."
+          CALL abort('setup_parameters', message) 
+       END IF
+!
+!------------------------------------------------------------------------------
+! Section 4: Compute additional parameters
+!------------------------------------------------------------------------------
+!------------------------------------------------------------------------------
+! Section 4.1: COSMO-DE parameters
+!------------------------------------------------------------------------------
+
+
+ CALL run_control('time', 'init')
+       ! Read COSMO-DE soil type map
+       cosmo_var % name = 'SOILTYP'
+       soiltyp = NINT(get_netcdf_variable(soiltyp_file, cosmo_var), hp)
+
+       message = 'Reading PALM-4U origin from'
+       IF (TRIM(static_driver_file) .NE. '')  THEN
+
+          origin_lon = get_netcdf_attribute(static_driver_file, 'origin_lon')
+          origin_lat = get_netcdf_attribute(static_driver_file, 'origin_lat')
+
+          message = TRIM(message) // " static driver file '"                   &
+                                  // TRIM(static_driver_file) // "'"
+
+
+       ELSE
+
+          origin_lon = longitude
+          origin_lat = latitude
+
+          message = TRIM(message) // " namlist file '"                         &
+                                  // TRIM(namelist_file) // "'"
+
+       END IF
+       origin_lon = origin_lon * TO_RADIANS
+       origin_lat = origin_lat * TO_RADIANS
+
+       CALL report('setup_parameters', message)
+
+
+       ! Read in COSMO-DE heights of half layers (vertical cell faces)
+       cosmo_var % name = 'HHL'
+       hhl = get_netcdf_variable(hhl_file, cosmo_var)
+ CALL run_control('time', 'read')
+
+       CALL reverse(hhl)
+       nlon = SIZE(hhl, 1)
+       nlat = SIZE(hhl, 2)
+       nlev = SIZE(hhl, 3)
+
+ CALL run_control('time', 'comp')
+
+       ! Appoximate COSMO-DE heights of full layers (cell centres)
+       ALLOCATE( hfl(nlon, nlat, nlev-1) )
+ CALL run_control('time', 'alloc')
+       DO k = 1, nlev-1
+          hfl(:,:,k) = 0.5_dp * ( hhl(:,:,k) +                                 &
+                                  hhl(:,:,k+1) )
+       END DO
+
+!------------------------------------------------------------------------------
+! Section 4.2: PALM-4U parameters
+!------------------------------------------------------------------------------
+       ! PALM-4U domain extents
+       lx = (nx+1) * dx
+       ly = (ny+1) * dy
+       lz = (nz+1) * dz
+       
+       ! PALM-4U point of Earth tangency
+       x0 = 0.0_dp
+       y0 = 0.0_dp
+
+       ! time vector
+       nt = CEILING(end_time / FORCING_FREQ) + 1
+       ALLOCATE( time(nt) )
+       CALL linspace(0.0_dp, 3600.0_dp * (nt-1), time)
+       output_file % time => time
+ CALL run_control('time', 'init')
+
+! Convert the PALM-4U origin coordinates to COSMO's rotated-pole grid
+       phi_c    = TO_RADIANS *                                                 &
+                  phi2phirot( origin_lat * TO_DEGREES, origin_lon * TO_DEGREES,&
+                              phi_n * TO_DEGREES, lambda_n * TO_DEGREES )
+       lambda_c = TO_RADIANS *                                                 &
+                  rla2rlarot( origin_lat * TO_DEGREES, origin_lon * TO_DEGREES,&
+                              phi_n * TO_DEGREES, lambda_n * TO_DEGREES,     &
+                              0.0_dp )
+
+! Set gamma according to whether PALM domain is in the northern or southern
+! hemisphere of the COSMO-DE rotated-pole system. Gamma assumes either the
+! value 0 or PI and is needed to work around around a bug in the rotated-pole
+! coordinate transformations.
+       gam = gamma_from_hemisphere(origin_lat, phi_equat)
+
+! Compute the north pole of the rotated-pole grid centred at the PALM-4U domain
+! centre. The resulting (phi_cn, lambda_cn) are coordinates in COSMO-DE's
+! rotated-pole grid.
+       phi_cn    = phic_to_phin(phi_c) 
+       lambda_cn = lamc_to_lamn(phi_c, lambda_c) 
+
+       message =   "PALM-4U origin:" // NEW_LINE('') // &
+          "           lon (lambda) = " // &
+          TRIM(real_to_str_f(origin_lon * TO_DEGREES)) // " deg"// NEW_LINE(' ') //&
+          "           lat (phi   ) = " // &
+          TRIM(real_to_str_f(origin_lat * TO_DEGREES)) // " deg (geographical)" // NEW_LINE(' ') //&
+          "           lon (lambda) = " // &
+          TRIM(real_to_str_f(lambda_c * TO_DEGREES)) // " deg" // NEW_LINE(' ') // &
+          "           lat (phi   ) = " // &
+          TRIM(real_to_str_f(phi_c * TO_DEGREES)) // " deg (COSMO-DE rotated-pole)"
+      CALL report ('setup_parameters', message)
+
+       message = "North pole of the rotated COSMO-DE system:" // NEW_LINE(' ') // &
+          "           lon (lambda) = " // &
+          TRIM(real_to_str_f(lambda_n * TO_DEGREES)) // " deg" // NEW_LINE(' ') //&
+          "           lat (phi   ) = " // &
+          TRIM(real_to_str_f(phi_n * TO_DEGREES)) // " deg (geographical)"
+       CALL report ('setup_parameters', message)
+          
+       message = "North pole of the rotated palm system:" // NEW_LINE(' ') // &
+          "           lon (lambda) = " // &
+          TRIM(real_to_str_f(lambda_cn * TO_DEGREES)) // " deg" // NEW_LINE(' ') // &
+          "           lat (phi   ) = " // &
+          TRIM(real_to_str_f(phi_cn * TO_DEGREES)) // " deg (COSMO-DE rotated-pole)"
+       CALL report ('setup_parameters', message)
+
+ CALL run_control('time', 'comp')
+
+    END SUBROUTINE setup_parameters
+
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Initializes the COSMO-DE, PALM-4U, PALM-4U boundary grids.
+!------------------------------------------------------------------------------!
+    SUBROUTINE setup_grids() ! setup_grids(inifor_settings(with nx, ny, nz,...))
+       CHARACTER ::  interp_mode
+        
+!------------------------------------------------------------------------------
+! Section 1: Define model and initialization grids
+!------------------------------------------------------------------------------
+       CALL init_grid_definition('palm', grid=palm_grid,                       &
+               xmin=0.0_dp, xmax=lx,                                           &
+               ymin=0.0_dp, ymax=ly,                                           &
+               zmin=0.0_dp, zmax=lz, x0=x0, y0=y0, z0=z0,                      &
+               nx=nx, ny=ny, nz=nz, mode=mode)
+
+       ! Subtracting 1 because arrays will be allocated with nlon + 1 elements.
+       CALL init_grid_definition('cosmo-de', grid=cosmo_grid,                  &
+               xmin=lonmin, xmax=lonmax,                                       &
+               ymin=latmin, ymax=latmax,                                       &
+               zmin=0.0_dp, zmax=51.0_dp, x0=x0, y0=y0, z0=0.0_dp,             &
+               nx=nlon-1, ny=nlat-1, nz=nlev-1)
+
+! Define intermediate grid. This is the same as palm_grid except with a much
+! coarser vertical grid. The vertical levels are interpolated in each PALM-4U
+! column from COSMO-DE's secondary levels. The main levels are then computed as
+! the averages of the bounding secondary levels.
+       CALL init_grid_definition('palm intermediate', grid=palm_intermediate,  &
+               xmin=0.0_dp, xmax=lx,                                           &
+               ymin=0.0_dp, ymax=ly,                                           &
+               zmin=0.0_dp, zmax=lz, x0=x0, y0=y0, z0=z0,                      &
+               nx=nx, ny=ny, nz=nlev-2)
+
+       CALL init_grid_definition('boundary', grid=u_initial_grid,              &
+               xmin = dx, xmax = lx - dx,                                      &
+               ymin = 0.5_dp * dy, ymax = ly - 0.5_dp * dy,                    &
+               zmin = 0.5_dp * dz, zmax = lz - 0.5_dp * dz,                    &
+               x0=x0, y0=y0, z0 = z0,                                          &
+               nx = nx-1, ny = ny, nz = nz,                                    &
+               dx = dx, dy = dy, dz = dz, mode=mode)
+
+       CALL init_grid_definition('boundary', grid=v_initial_grid,              &
+               xmin = 0.5_dp * dx, xmax = lx - 0.5_dp * dx,                    &
+               ymin = dy, ymax = ly - dy,                                      &
+               zmin = 0.5_dp * dz, zmax = lz - 0.5_dp * dz,                    &
+               x0=x0, y0=y0, z0 = z0,                                          &
+               nx = nx, ny = ny-1, nz = nz,                                    &
+               dx = dx, dy = dy, dz = dz, mode=mode)
+
+       CALL init_grid_definition('boundary', grid=w_initial_grid,              &
+               xmin = 0.5_dp * dx, xmax = lx - 0.5_dp * dx,                    &
+               ymin = 0.5_dp * dy, ymax = ly - 0.5_dp * dy,                    &
+               zmin = dz, zmax = lz - dz,                                      &
+               x0=x0, y0=y0, z0 = z0,                                          &
+               nx = nx, ny = ny, nz = nz-1,                                    &
+               dx = dx, dy = dy, dz = dz, mode=mode)
+
+       CALL init_grid_definition('boundary intermediate', grid=u_initial_intermediate,      &
+               xmin = dx, xmax = lx - dx,                                      &
+               ymin = 0.5_dp * dy, ymax = ly - 0.5_dp * dy,                    &
+               zmin = 0.5_dp * dz, zmax = lz - 0.5_dp * dz,                    &
+               x0=x0, y0=y0, z0 = z0,                                          &
+               nx = nx-1, ny = ny, nz = nlev - 2,                              &
+               dx = dx, dy = dy, dz = dz)
+
+       CALL init_grid_definition('boundary intermediate', grid=v_initial_intermediate,      &
+               xmin = 0.5_dp * dx, xmax = lx - 0.5_dp * dx,                    &
+               ymin = dy, ymax = ly - dy,                                      &
+               zmin = 0.5_dp * dz, zmax = lz - 0.5_dp * dz,                    &
+               x0=x0, y0=y0, z0 = z0,                                          &
+               nx = nx, ny = ny-1, nz = nlev - 2,                              &
+               dx = dx, dy = dy, dz = dz)
+
+       CALL init_grid_definition('boundary intermediate', grid=w_initial_intermediate,      &
+               xmin = 0.5_dp * dx, xmax = lx - 0.5_dp * dx,                    &
+               ymin = 0.5_dp * dy, ymax = ly - 0.5_dp * dy,                    &
+               zmin = 0.5_dp * dz, zmax = lz - 0.5_dp * dz,                    &
+               x0=x0, y0=y0, z0 = z0,                                          &
+               nx = nx, ny = ny, nz = nlev - 2,                                &
+               dx = dx, dy = dy, dz = dz)
+
+      IF (boundary_variables_required)  THEN
+!
+!------------------------------------------------------------------------------
+! Section 2: Define PALM-4U boundary grids
+!------------------------------------------------------------------------------
+          CALL init_grid_definition('boundary', grid=scalars_east_grid,           &
+                  xmin = lx + 0.5_dp * dx, xmax = lx + 0.5_dp * dx,               &
+                  ymin =  0.5_dp * dy, ymax = ly - 0.5_dp * dy,                   &
+                  zmin =  0.5_dp * dz, zmax = lz - 0.5_dp * dz,                   &
+                  x0=x0, y0=y0, z0 = z0,                                          &
+                  nx = 0, ny = ny, nz = nz,                                       &
+                  dx = dx, dy = dy, dz = dz)
+
+          CALL init_grid_definition('boundary', grid=scalars_west_grid,           &
+                  xmin = -0.5_dp * dx, xmax = -0.5_dp * dx,                       &
+                  ymin =  0.5_dp * dy, ymax = ly - 0.5_dp * dy,                   &
+                  zmin =  0.5_dp * dz, zmax = lz - 0.5_dp * dz,                   &
+                  x0=x0, y0=y0, z0 = z0,                                          &
+                  nx = 0, ny = ny, nz = nz,                                       &
+                  dx = dx, dy = dy, dz = dz)
+
+          CALL init_grid_definition('boundary', grid=scalars_north_grid,          &
+                  xmin = 0.5_dp * dx, xmax = lx - 0.5_dp * dx,                    &
+                  ymin = ly + 0.5_dp * dy, ymax = ly + 0.5_dp * dy,               &
+                  zmin = 0.5_dp * dz, zmax = lz - 0.5_dp * dz,                    &
+                  x0=x0, y0=y0, z0 = z0,                                          &
+                  nx = nx, ny = 0, nz = nz,                                       &
+                  dx = dx, dy = dy, dz = dz)
+
+          CALL init_grid_definition('boundary', grid=scalars_south_grid,          &
+                  xmin =  0.5_dp * dx, xmax = lx - 0.5_dp * dx,                   &
+                  ymin = -0.5_dp * dy, ymax = -0.5_dp * dy,                       &
+                  zmin =  0.5_dp * dz, zmax = lz - 0.5_dp * dz,                   &
+                  x0=x0, y0=y0, z0 = z0,                                          &
+                  nx = nx, ny = 0, nz = nz,                                       &
+                  dx = dx, dy = dy, dz = dz)
+
+          CALL init_grid_definition('boundary', grid=scalars_top_grid,            &
+                  xmin =  0.5_dp * dx, xmax = lx - 0.5_dp * dx,                   &
+                  ymin =  0.5_dp * dy, ymax = ly - 0.5_dp * dy,                   &
+                  zmin =  lz + 0.5_dp * dz, zmax = lz + 0.5_dp * dz,              &
+                  x0=x0, y0=y0, z0 = z0,                                          &
+                  nx = nx, ny = ny, nz = 0,                                       &
+                  dx = dx, dy = dy, dz = dz)
+
+          CALL init_grid_definition('boundary', grid=u_east_grid,                 &
+                  xmin = lx, xmax = lx,                                           &
+                  ymin = 0.5_dp * dy, ymax = ly - 0.5_dp * dy,                    &
+                  zmin = 0.5_dp * dz, zmax = lz - 0.5_dp * dz,                    &
+                  x0=x0, y0=y0, z0 = z0,                                          &
+                  nx = 0, ny = ny, nz = nz,                                       &
+                  dx = dx, dy = dy, dz = dz)
+
+          CALL init_grid_definition('boundary', grid=u_west_grid,                 &
+                  xmin = 0.0_dp, xmax = 0.0_dp,                                   &
+                  ymin = 0.5_dp * dy, ymax = ly - 0.5_dp * dy,                    &
+                  zmin = 0.5_dp * dz, zmax = lz - 0.5_dp * dz,                    &
+                  x0=x0, y0=y0, z0 = z0,                                          &
+                  nx = 0, ny = ny, nz = nz,                                       &
+                  dx = dx, dy = dy, dz = dz)
+
+          CALL init_grid_definition('boundary', grid=u_north_grid,                &
+                  xmin = dx, xmax = lx - dx,                                      &
+                  ymin = ly + 0.5_dp * dy, ymax = ly + 0.5_dp * dy,               &
+                  zmin = 0.5_dp * dz, zmax = lz - 0.5_dp * dz,                    &
+                  x0=x0, y0=y0, z0 = z0,                                          &
+                  nx = nx-1, ny = 0, nz = nz,                                     &
+                  dx = dx, dy = dy, dz = dz)
+
+          CALL init_grid_definition('boundary', grid=u_south_grid,                &
+                  xmin = dx, xmax = lx - dx,                                      &
+                  ymin = -0.5_dp * dy, ymax = -0.5_dp * dy,                       &
+                  zmin = 0.5_dp * dz, zmax = lz - 0.5_dp * dz,                    &
+                  x0=x0, y0=y0, z0 = z0,                                          &
+                  nx = nx-1, ny = 0, nz = nz,                                     &
+                  dx = dx, dy = dy, dz = dz)
+
+          CALL init_grid_definition('boundary', grid=u_top_grid,                  &
+                  xmin = dx, xmax = lx - dx,                                      &
+                  ymin = 0.5_dp * dy, ymax = ly - 0.5_dp * dy,                    &
+                  zmin = lz + 0.5_dp * dz, zmax = lz + 0.5_dp * dz,               &
+                  x0=x0, y0=y0, z0 = z0,                                          &
+                  nx = nx-1, ny = ny, nz = 0,                                     &
+                  dx = dx, dy = dy, dz = dz)
+
+          CALL init_grid_definition('boundary', grid=v_east_grid,                 &
+                  xmin = lx + 0.5_dp * dx, xmax = lx + 0.5_dp * dx,               &
+                  ymin = dy, ymax = ly - dy,                                      &
+                  zmin = 0.5_dp * dz, zmax = lz - 0.5_dp * dz,                    &
+                  x0=x0, y0=y0, z0 = z0,                                          &
+                  nx = 0, ny = ny-1, nz = nz,                                     &
+                  dx = dx, dy = dy, dz = dz)
+
+          CALL init_grid_definition('boundary', grid=v_west_grid,                 &
+                  xmin = -0.5_dp * dx, xmax = -0.5_dp * dx,                       &
+                  ymin = dy, ymax = ly - dy,                                      &
+                  zmin = 0.5_dp * dz, zmax = lz - 0.5_dp * dz,                    &
+                  x0=x0, y0=y0, z0 = z0,                                          &
+                  nx = 0, ny = ny-1, nz = nz,                                     &
+                  dx = dx, dy = dy, dz = dz)
+
+          CALL init_grid_definition('boundary', grid=v_north_grid,                &
+                  xmin = 0.5_dp * dx, xmax = lx - 0.5_dp * dx,                    &
+                  ymin = ly, ymax = ly,                                           &
+                  zmin = 0.5_dp * dz, zmax = lz - 0.5_dp * dz,                    &
+                  x0=x0, y0=y0, z0 = z0,                                          &
+                  nx = nx, ny = 0, nz = nz,                                       &
+                  dx = dx, dy = dy, dz = dz)
+
+          CALL init_grid_definition('boundary', grid=v_south_grid,                &
+                  xmin = 0.5_dp * dx, xmax = lx - 0.5_dp * dx,                    &
+                  ymin = 0.0_dp, ymax = 0.0_dp,                                   &
+                  zmin = 0.5_dp * dz, zmax = lz - 0.5_dp * dz,                    &
+                  x0=x0, y0=y0, z0 = z0,                                          &
+                  nx = nx, ny = 0, nz = nz,                                       &
+                  dx = dx, dy = dy, dz = dz)
+
+          CALL init_grid_definition('boundary', grid=v_top_grid,                  &
+                  xmin = 0.5_dp * dx, xmax = lx - 0.5_dp * dx,                    &
+                  ymin = dy, ymax = ly - dy,                                      &
+                  zmin = lz + 0.5_dp * dz, zmax = lz + 0.5_dp * dz,               &
+                  x0=x0, y0=y0, z0 = z0,                                          &
+                  nx = nx, ny = ny-1, nz = 0,                                     &
+                  dx = dx, dy = dy, dz = dz)
+
+          CALL init_grid_definition('boundary', grid=w_east_grid,                 &
+                  xmin = lx + 0.5_dp * dx, xmax = lx + 0.5_dp * dx,               &
+                  ymin =  0.5_dp * dy, ymax = ly - 0.5_dp * dy,                   &
+                  zmin =  dz, zmax = lz - dz,                                     &
+                  x0=x0, y0=y0, z0 = z0,                                          &
+                  nx = 0, ny = ny, nz = nz - 1,                                   &
+                  dx = dx, dy = dy, dz = dz)
+
+          CALL init_grid_definition('boundary', grid=w_west_grid,                 &
+                  xmin = -0.5_dp * dx, xmax = -0.5_dp * dx,                       &
+                  ymin = 0.5_dp * dy, ymax = ly - 0.5_dp * dy,                    &
+                  zmin = dz, zmax = lz - dz,                                      &
+                  x0=x0, y0=y0, z0 = z0,                                          &
+                  nx = 0, ny = ny, nz = nz - 1,                                   &
+                  dx = dx, dy = dy, dz = dz)
+
+          CALL init_grid_definition('boundary', grid=w_north_grid,                &
+                  xmin = 0.5_dp * dx, xmax = lx - 0.5_dp * dx,                    &
+                  ymin = ly + 0.5_dp * dy, ymax = ly + 0.5_dp * dy,               &
+                  zmin = dz, zmax = lz - dz,                                      &
+                  x0=x0, y0=y0, z0 = z0,                                          &
+                  nx = nx, ny = 0, nz = nz - 1,                                   &
+                  dx = dx, dy = dy, dz = dz)
+
+          CALL init_grid_definition('boundary', grid=w_south_grid,                &
+                  xmin =  0.5_dp * dx, xmax = lx - 0.5_dp * dx,                   &
+                  ymin = -0.5_dp * dy, ymax = -0.5_dp * dy,                       &
+                  zmin = dz, zmax = lz - dz,                                      &
+                  x0=x0, y0=y0, z0 = z0,                                          &
+                  nx = nx, ny = 0, nz = nz - 1,                                   &
+                  dx = dx, dy = dy, dz = dz)
+
+          CALL init_grid_definition('boundary', grid=w_top_grid,                  &
+                  xmin = 0.5_dp * dx, xmax = lx - 0.5_dp * dx,                    &
+                  ymin = 0.5_dp * dy, ymax = ly - 0.5_dp * dy,                    &
+                  zmin = lz, zmax = lz,                                           &
+                  x0=x0, y0=y0, z0 = z0,                                          &
+                  nx = nx, ny = ny, nz = 0,                                       &
+                  dx = dx, dy = dy, dz = dz)
+
+          CALL init_grid_definition('boundary intermediate', grid=scalars_east_intermediate,   &
+                  xmin = lx + 0.5_dp * dx, xmax = lx + 0.5_dp * dx,               &
+                  ymin =  0.5_dp * dy, ymax = ly - 0.5_dp * dy,                   &
+                  zmin =  0.0_dp, zmax = 0.0_dp,                                  &
+                  x0=x0, y0=y0, z0 = z0,                                          &
+                  nx = 0, ny = ny, nz = nlev - 2,                                 &
+                  dx = dx, dy = dy, dz = dz)
+
+          CALL init_grid_definition('boundary intermediate', grid=scalars_west_intermediate,   &
+                  xmin = -0.5_dp * dx, xmax = -0.5_dp * dx,                       &
+                  ymin =  0.5_dp * dy, ymax = ly - 0.5_dp * dy,                   &
+                  zmin =  0.0_dp, zmax = 0.0_dp,                                  &
+                  x0=x0, y0=y0, z0 = z0,                                          &
+                  nx = 0, ny = ny, nz = nlev - 2,                                 &
+                  dx = dx, dy = dy, dz = dz)
+
+          CALL init_grid_definition('boundary intermediate', grid=scalars_north_intermediate,  &
+                  xmin = 0.5_dp * dx, xmax = lx - 0.5_dp * dx,                    &
+                  ymin = ly + 0.5_dp * dy, ymax = ly + 0.5_dp * dy,               &
+                  zmin =  0.0_dp, zmax = 0.0_dp,                                  &
+                  x0=x0, y0=y0, z0 = z0,                                          &
+                  nx = nx, ny = 0, nz = nlev - 2,                                 &
+                  dx = dx, dy = dy, dz = dz)
+
+          CALL init_grid_definition('boundary intermediate', grid=scalars_south_intermediate,  &
+                  xmin =  0.5_dp * dx, xmax = lx - 0.5_dp * dx,                   &
+                  ymin = -0.5_dp * dy, ymax = -0.5_dp * dy,                       &
+                  zmin =  0.0_dp, zmax = 0.0_dp,                                  &
+                  x0=x0, y0=y0, z0 = z0,                                          &
+                  nx = nx, ny = 0, nz = nlev - 2,                                 &
+                  dx = dx, dy = dy, dz = dz)
+
+          CALL init_grid_definition('boundary intermediate', grid=scalars_top_intermediate,    &
+                  xmin =  0.5_dp * dx, xmax = lx - 0.5_dp * dx,                   &
+                  ymin =  0.5_dp * dy, ymax = ly - 0.5_dp * dy,                   &
+                  zmin =  0.0_dp, zmax = 0.0_dp,                                  &
+                  x0=x0, y0=y0, z0 = z0,                                          &
+                  nx = nx, ny = ny, nz = nlev - 2,                                &
+                  dx = dx, dy = dy, dz = dz)
+
+          CALL init_grid_definition('boundary intermediate', grid=u_east_intermediate,         &
+                  xmin = lx, xmax = lx,                                           &
+                  ymin = 0.5_dp * dy, ymax = ly - 0.5_dp * dy,                    &
+                  zmin =  0.0_dp, zmax = 0.0_dp,                                  &
+                  x0=x0, y0=y0, z0 = z0,                                          &
+                  nx = 0, ny = ny, nz = nlev - 2,                                 &
+                  dx = dx, dy = dy, dz = dz)
+
+          CALL init_grid_definition('boundary intermediate', grid=u_west_intermediate,         &
+                  xmin = 0.0_dp, xmax = 0.0_dp,                                   &
+                  ymin = 0.5_dp * dy, ymax = ly - 0.5_dp * dy,                    &
+                  zmin =  0.0_dp, zmax = 0.0_dp,                                  &
+                  x0=x0, y0=y0, z0 = z0,                                          &
+                  nx = 0, ny = ny, nz = nlev - 2,                                 &
+                  dx = dx, dy = dy, dz = dz)
+
+          CALL init_grid_definition('boundary intermediate', grid=u_north_intermediate,        &
+                  xmin = dx, xmax = lx - dx,                                      &
+                  ymin = ly + 0.5_dp * dy, ymax = ly + 0.5_dp * dy,               &
+                  zmin =  0.0_dp, zmax = 0.0_dp,                                  &
+                  x0=x0, y0=y0, z0 = z0,                                          &
+                  nx = nx-1, ny = 0, nz = nlev - 2,                               &
+                  dx = dx, dy = dy, dz = dz)
+
+          CALL init_grid_definition('boundary intermediate', grid=u_south_intermediate,        &
+                  xmin = dx, xmax = lx - dx,                                      &
+                  ymin = -0.5_dp * dy, ymax = -0.5_dp * dy,                       &
+                  zmin =  0.0_dp, zmax = 0.0_dp,                                  &
+                  x0=x0, y0=y0, z0 = z0,                                          &
+                  nx = nx-1, ny = 0, nz = nlev - 2,                               &
+                  dx = dx, dy = dy, dz = dz)
+
+          CALL init_grid_definition('boundary intermediate', grid=u_top_intermediate,          &
+                  xmin = dx, xmax = lx - dx,                                      &
+                  ymin = 0.5_dp * dy, ymax = ly - 0.5_dp * dy,                    &
+                  zmin =  0.0_dp, zmax = 0.0_dp,                                  &
+                  x0=x0, y0=y0, z0 = z0,                                          &
+                  nx = nx-1, ny = ny, nz = nlev - 2,                              &
+                  dx = dx, dy = dy, dz = dz)
+
+          CALL init_grid_definition('boundary intermediate', grid=v_east_intermediate,         &
+                  xmin = lx + 0.5_dp * dx, xmax = lx + 0.5_dp * dx,               &
+                  ymin = dy, ymax = ly - dy,                                      &
+                  zmin =  0.0_dp, zmax = 0.0_dp,                                  &
+                  x0=x0, y0=y0, z0 = z0,                                          &
+                  nx = 0, ny = ny-1, nz = nlev - 2,                               &
+                  dx = dx, dy = dy, dz = dz)
+
+          CALL init_grid_definition('boundary intermediate', grid=v_west_intermediate,         &
+                  xmin = -0.5_dp * dx, xmax = -0.5_dp * dx,                       &
+                  ymin = dy, ymax = ly - dy,                                      &
+                  zmin =  0.0_dp, zmax = 0.0_dp,                                  &
+                  x0=x0, y0=y0, z0 = z0,                                          &
+                  nx = 0, ny = ny-1, nz = nlev - 2,                               &
+                  dx = dx, dy = dy, dz = dz)
+
+          CALL init_grid_definition('boundary intermediate', grid=v_north_intermediate,        &
+                  xmin = 0.5_dp * dx, xmax = lx - 0.5_dp * dx,                    &
+                  ymin = ly, ymax = ly,                                           &
+                  zmin =  0.0_dp, zmax = 0.0_dp,                                  &
+                  x0=x0, y0=y0, z0 = z0,                                          &
+                  nx = nx, ny = 0, nz = nlev - 2,                                 &
+                  dx = dx, dy = dy, dz = dz)
+
+          CALL init_grid_definition('boundary intermediate', grid=v_south_intermediate,        &
+                  xmin = 0.5_dp * dx, xmax = lx - 0.5_dp * dx,                    &
+                  ymin = 0.0_dp, ymax = 0.0_dp,                                   &
+                  zmin =  0.0_dp, zmax = 0.0_dp,                                  &
+                  x0=x0, y0=y0, z0 = z0,                                          &
+                  nx = nx, ny = 0, nz = nlev - 2,                                 &
+                  dx = dx, dy = dy, dz = dz)
+
+          CALL init_grid_definition('boundary intermediate', grid=v_top_intermediate,          &
+                  xmin = 0.5_dp * dx, xmax = lx - 0.5_dp * dx,                    &
+                  ymin = dy, ymax = ly - dy,                                      &
+                  zmin =  0.0_dp, zmax = 0.0_dp,                                  &
+                  x0=x0, y0=y0, z0 = z0,                                          &
+                  nx = nx, ny = ny-1, nz = nlev - 2,                              &
+                  dx = dx, dy = dy, dz = dz)
+
+          CALL init_grid_definition('boundary intermediate', grid=w_east_intermediate,         &
+                  xmin = lx + 0.5_dp * dx, xmax = lx + 0.5_dp * dx,               &
+                  ymin =  0.5_dp * dy, ymax = ly - 0.5_dp * dy,                   &
+                  zmin =  0.0_dp, zmax = 0.0_dp,                                  &
+                  x0=x0, y0=y0, z0 = z0,                                          &
+                  nx = 0, ny = ny, nz = nlev - 2,                                 &
+                  dx = dx, dy = dy, dz = dz)
+
+          CALL init_grid_definition('boundary intermediate', grid=w_west_intermediate,         &
+                  xmin = -0.5_dp * dx, xmax = -0.5_dp * dx,                       &
+                  ymin =  0.5_dp * dy, ymax = ly - 0.5_dp * dy,                   &
+                  zmin =  0.0_dp, zmax = 0.0_dp,                                  &
+                  x0=x0, y0=y0, z0 = z0,                                          &
+                  nx = 0, ny = ny, nz = nlev - 2,                                 &
+                  dx = dx, dy = dy, dz = dz)
+
+          CALL init_grid_definition('boundary intermediate', grid=w_north_intermediate,        &
+                  xmin = 0.5_dp * dx, xmax = lx - 0.5_dp * dx,                    &
+                  ymin = ly + 0.5_dp * dy, ymax = ly + 0.5_dp * dy,               &
+                  zmin =  0.0_dp, zmax = 0.0_dp,                                  &
+                  x0=x0, y0=y0, z0 = z0,                                          &
+                  nx = nx, ny = 0, nz = nlev - 2,                                 &
+                  dx = dx, dy = dy, dz = dz)
+
+          CALL init_grid_definition('boundary intermediate', grid=w_south_intermediate,        &
+                  xmin =  0.5_dp * dx, xmax = lx - 0.5_dp * dx,                   &
+                  ymin = -0.5_dp * dy, ymax = -0.5_dp * dy,                       &
+                  zmin =  0.0_dp, zmax = 0.0_dp,                                  &
+                  x0=x0, y0=y0, z0 = z0,                                          &
+                  nx = nx, ny = 0, nz = nlev - 2,                                 &
+                  dx = dx, dy = dy, dz = dz)
+
+          CALL init_grid_definition('boundary intermediate', grid=w_top_intermediate,          &
+                  xmin =  0.5_dp * dx, xmax = lx - 0.5_dp * dx,                   &
+                  ymin =  0.5_dp * dy, ymax = ly - 0.5_dp * dy,                   &
+                  zmin =  0.0_dp, zmax = 0.0_dp,                                  &
+                  x0=x0, y0=y0, z0 = z0,                                          &
+                  nx = nx, ny = ny, nz = nlev - 2,                                &
+                  dx = dx, dy = dy, dz = dz)
+       END IF
+
+!                                                                              
+!------------------------------------------------------------------------------
+! Section 3: Define profile grids
+!------------------------------------------------------------------------------
+
+       IF (TRIM(mode) == 'profile')  THEN
+          CALL init_grid_definition('boundary', grid=scalar_profile_grid,      &
+                  xmin = 0.5_dp * lx, xmax = 0.5_dp * lx,                      &
+                  ymin = 0.5_dp * ly, ymax = 0.5_dp * ly,                      &
+                  zmin = 0.5_dp * dz, zmax = lz - 0.5_dp * dz,                 &
+                  x0=x0, y0=y0, z0 = z0,                                       &
+                  nx = 0, ny = 0, nz = nz,                                     &
+                  dx = dx, dy = dy, dz = dz)
+
+          CALL init_grid_definition('boundary', grid=w_profile_grid,           &
+                  xmin = 0.5_dp * lx, xmax = 0.5_dp * lx,                      &
+                  ymin = 0.5_dp * ly, ymax = 0.5_dp * ly,                      &
+                  zmin = dz, zmax = lz - dz,                                   &
+                  x0=x0, y0=y0, z0 = z0,                                       &
+                  nx = 0, ny = 0, nz = nz - 1,                                 &
+                  dx = dx, dy = dy, dz = dz)
+
+          CALL init_grid_definition('boundary', grid=scalar_profile_intermediate,&
+                  xmin = 0.5_dp * lx, xmax = 0.5_dp * lx,                      &
+                  ymin = 0.5_dp * ly, ymax = 0.5_dp * ly,                      &
+                  zmin = 0.0_dp, zmax = 0.0_dp,                                &
+                  x0=x0, y0=y0, z0 = z0,                                       &
+                  nx = 0, ny = 0, nz = nlev - 2,                               &
+                  dx = dx, dy = dy, dz = dz)
+
+          CALL init_grid_definition('boundary', grid=w_profile_intermediate,   &
+                  xmin = 0.5_dp * lx, xmax = 0.5_dp * lx,                      &
+                  ymin = 0.5_dp * ly, ymax = 0.5_dp * ly,                      &
+                  zmin = 0.0_dp, zmax = 0.0_dp,                                &
+                  x0=x0, y0=y0, z0 = z0,                                       &
+                  nx = 0, ny = 0, nz = nlev - 2,                               &
+                  dx = dx, dy = dy, dz = dz)
+       END IF
+
+!                                                                              
+!------------------------------------------------------------------------------
+! Section 4: Precompute neighbours and weights for interpolation              
+!------------------------------------------------------------------------------
+       interp_mode = 's'
+       CALL setup_interpolation(cosmo_grid, palm_grid, palm_intermediate, interp_mode, mode=mode)
+       IF (boundary_variables_required)  THEN
+          CALL setup_interpolation(cosmo_grid, scalars_east_grid, scalars_east_intermediate, interp_mode)
+          CALL setup_interpolation(cosmo_grid, scalars_west_grid, scalars_west_intermediate, interp_mode)
+          CALL setup_interpolation(cosmo_grid, scalars_north_grid, scalars_north_intermediate, interp_mode)
+          CALL setup_interpolation(cosmo_grid, scalars_south_grid, scalars_south_intermediate, interp_mode)
+          CALL setup_interpolation(cosmo_grid, scalars_top_grid, scalars_top_intermediate, interp_mode)
+       END IF
+
+       interp_mode = 'u'
+       CALL setup_interpolation(cosmo_grid, u_initial_grid, u_initial_intermediate, interp_mode, mode=mode)
+       IF (boundary_variables_required)  THEN
+          CALL setup_interpolation(cosmo_grid, u_east_grid, u_east_intermediate, interp_mode)
+          CALL setup_interpolation(cosmo_grid, u_west_grid, u_west_intermediate, interp_mode)
+          CALL setup_interpolation(cosmo_grid, u_north_grid, u_north_intermediate, interp_mode)
+          CALL setup_interpolation(cosmo_grid, u_south_grid, u_south_intermediate, interp_mode)
+          CALL setup_interpolation(cosmo_grid, u_top_grid, u_top_intermediate, interp_mode)
+       END IF
+
+       interp_mode = 'v'
+       CALL setup_interpolation(cosmo_grid, v_initial_grid, v_initial_intermediate, interp_mode, mode=mode)
+       IF (boundary_variables_required)  THEN
+          CALL setup_interpolation(cosmo_grid, v_east_grid, v_east_intermediate, interp_mode)
+          CALL setup_interpolation(cosmo_grid, v_west_grid, v_west_intermediate, interp_mode)
+          CALL setup_interpolation(cosmo_grid, v_north_grid, v_north_intermediate, interp_mode)
+          CALL setup_interpolation(cosmo_grid, v_south_grid, v_south_intermediate, interp_mode)
+          CALL setup_interpolation(cosmo_grid, v_top_grid, v_top_intermediate, interp_mode)
+       END IF
+
+       interp_mode = 'w'
+       CALL setup_interpolation(cosmo_grid, w_initial_grid, w_initial_intermediate, interp_mode, mode=mode)
+       IF (boundary_variables_required)  THEN
+          CALL setup_interpolation(cosmo_grid, w_east_grid, w_east_intermediate, interp_mode)
+          CALL setup_interpolation(cosmo_grid, w_west_grid, w_west_intermediate, interp_mode)
+          CALL setup_interpolation(cosmo_grid, w_north_grid, w_north_intermediate, interp_mode)
+          CALL setup_interpolation(cosmo_grid, w_south_grid, w_south_intermediate, interp_mode)
+          CALL setup_interpolation(cosmo_grid, w_top_grid, w_top_intermediate, interp_mode)
+       END IF
+
+       IF (TRIM(mode) == 'profile')  THEN
+           CALL setup_averaging(cosmo_grid, palm_intermediate, imin, imax, jmin, jmax) 
+       END IF
+        
+
+    END SUBROUTINE setup_grids
+
+
+    SUBROUTINE setup_interpolation(cosmo_grid, palm_grid, palm_intermediate, kind, mode)
+
+       TYPE(grid_definition), INTENT(IN), TARGET    ::  cosmo_grid
+       TYPE(grid_definition), INTENT(INOUT), TARGET ::  palm_grid, palm_intermediate
+       CHARACTER, INTENT(IN)                        ::  kind
+       CHARACTER(LEN=*), INTENT(IN), OPTIONAL       ::  mode
+
+       TYPE(grid_definition), POINTER      ::  grid
+       REAL(dp), DIMENSION(:), POINTER     ::  lat, lon
+       REAL(dp), DIMENSION(:,:,:), POINTER ::  h
+
+       LOGICAL :: setup_vertical = .TRUE.
+
+       IF (PRESENT(mode))  THEN
+          IF (TRIM(mode) == 'profile')  setup_vertical = .FALSE.
+       ELSE
+          setup_vertical = .TRUE.
+       END IF
+
+!------------------------------------------------------------------------------
+! Section 1: Horizontal interpolation                                        
+!------------------------------------------------------------------------------
+       ! Select horizontal coordinates according to kind of points (s/w, u, v)
+       SELECT CASE(kind)
+
+       CASE('s') ! scalars
+
+          lat => cosmo_grid % lat
+          lon => cosmo_grid % lon
+          h   => cosmo_grid % hfl
+
+       CASE('w') ! vertical velocity
+
+          lat => cosmo_grid % lat
+          lon => cosmo_grid % lon
+          h   => cosmo_grid % hhl
+
+       CASE('u') ! x velocity
+
+          lat => cosmo_grid % lat
+          lon => cosmo_grid % lonu
+          h   => cosmo_grid % hfl
+
+       CASE('v') ! y velocity
+
+          lat => cosmo_grid % latv
+          lon => cosmo_grid % lon
+          h   => cosmo_grid % hfl
+
+       CASE DEFAULT
+
+          message = "Interpolation mode '" // mode // "' is not supported."
+          CALL abort('setup_interpolation', message)
+
+       END SELECT
+
+       grid => palm_intermediate
+
+       CALL find_horizontal_neighbours(lat, lon,                               &
+          cosmo_grid % dxi, cosmo_grid % dyi, grid % clat,                     &
+          grid % clon, grid % ii, grid % jj)
+
+       CALL compute_horizontal_interp_weights(lat, lon,                        &
+          cosmo_grid % dxi, cosmo_grid % dyi, grid % clat,                     &
+          grid % clon, grid % ii, grid % jj, grid % w_horiz)
+
+!------------------------------------------------------------------------------
+! Section 2: Vertical interpolation
+!------------------------------------------------------------------------------
+
+       IF (setup_vertical)  THEN
+          ALLOCATE( grid % h(0:grid % nx, 0:grid % ny, 0:grid % nz) ) 
+          grid % h(:,:,:) = - EARTH_RADIUS
+
+          ! For w points, use hhl, for scalars use hfl
+          ! compute the full heights for the intermediate grids
+          CALL interpolate_2d(cosmo_grid % hfl, grid % h, grid)
+          CALL find_vertical_neighbours_and_weights(palm_grid, grid)
+       END IF
+       
+    END SUBROUTINE setup_interpolation
+
+
+    SUBROUTINE setup_averaging(cosmo_grid, palm_intermediate, imin, imax, jmin, jmax)
+
+       TYPE(grid_definition), INTENT(IN) ::  cosmo_grid, palm_intermediate
+       INTEGER, INTENT(INOUT)            ::  imin, imax, jmin, jmax
+
+       TYPE(grid_definition), POINTER    ::  grid
+       REAL ::  lonmin_pos,lonmax_pos, latmin_pos, latmax_pos
+
+       ! find horizontal index ranges for profile averaging
+       lonmin_pos = (MINVAL(palm_intermediate % clon(:,:)) - cosmo_grid % lon(0)) * cosmo_grid % dxi
+       lonmax_pos = (MAXVAL(palm_intermediate % clon(:,:)) - cosmo_grid % lon(0)) * cosmo_grid % dxi
+       latmin_pos = (MINVAL(palm_intermediate % clat(:,:)) - cosmo_grid % lat(0)) * cosmo_grid % dyi
+       latmax_pos = (MAXVAL(palm_intermediate % clat(:,:)) - cosmo_grid % lat(0)) * cosmo_grid % dyi
+
+       imin = FLOOR(lonmin_pos)
+       imax = CEILING(lonmax_pos)
+       jmin = FLOOR(latmin_pos)
+       jmax = CEILING(latmax_pos)
+       
+       ! average heights for intermediate scalar and w profile grids
+       grid => scalar_profile_intermediate
+       ALLOCATE( grid % h(0:grid % nx, 0:grid % ny, 0:grid % nz) ) 
+       grid % h(:,:,:) = - EARTH_RADIUS
+       CALL average_2d(cosmo_grid % hfl, grid % h(0,0,:), imin, imax, jmin, jmax)
+       CALL find_vertical_neighbours_and_weights(scalar_profile_grid, grid)
+
+       grid => w_profile_intermediate
+       ALLOCATE( grid % h(0:grid % nx, 0:grid % ny, 0:grid % nz) ) 
+       grid % h(:,:,:) = - EARTH_RADIUS
+       CALL average_2d(cosmo_grid % hhl, grid % h(0,0,:), imin, imax, jmin, jmax)
+       CALL find_vertical_neighbours_and_weights(w_profile_grid, grid)
+
+    END SUBROUTINE setup_averaging
+
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Helper function that computes horizontal domain extend in x or y direction
+!> such that the centres of a boundary grid fall at -dx/2 or lx + dx/2.
+!> 
+!> Input parameters:
+!> -----------------
+!> dxy : grid spacing in x or y direction
+!> lxy : domain length in dxy direction
+!> 
+!> Output parameters:
+!> ------------------
+!> boundary_extent : Domain minimum xymin (maximum xymax) if dxy < 0 (> 0)
+!------------------------------------------------------------------------------!
+    REAL(dp) FUNCTION boundary_extent(dxy, lxy)
+        REAL(dp), INTENT(IN) ::  dxy, lxy
+
+        boundary_extent = 0.5_dp * lxy + SIGN(lxy + ABS(dxy), dxy)
+
+    END FUNCTION boundary_extent
+
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Initializes grid_definition-type variables.
+!> 
+!> Input parameters:
+!> -----------------
+!> mode : Initialization mode, distinguishes between PALM-4U and COSMO-DE grids
+!>    as well as grids covering the boundary surfaces. Valid modes are:
+!>       - 'palm'
+!>       - 'cosmo-de'
+!>       - 'eastwest-scalar'
+!> 
+!> <xyx>min, <xyz>max : Domain minima and maxima in x, y, and z direction. Note
+!>    that these values do not necessarily translate to the outmost coordinates
+!>    of the generated grid but rather refer to the extent of the underlying
+!>    PALM-4U computational domain (i.e. the outer cell faces). The coordinates
+!>    of the generated grid will be inferred from this information taking into
+!>    account the initialization mode. For example, the coordinates of a
+!>    boundary grid initialized using mode 'eastwest-scalar' will be located in
+!>    planes one half grid point outwards of xmin and xmax.
+!>
+!> z0 : Elevation of the PALM-4U domain above sea level [m]
+!>
+!> n<xyz> : Number of grod points in x, y, and z direction
+!>
+!> Output parameters:
+!> ------------------
+!> grid : Grid variable to be initialized.
+!------------------------------------------------------------------------------!
+    SUBROUTINE init_grid_definition(kind, xmin, xmax, ymin, ymax, zmin, zmax,  &
+                                    x0, y0, z0, nx, ny, nz, dx, dy, dz, grid, mode)
+        CHARACTER(LEN=*), INTENT(IN)           ::  kind
+        CHARACTER(LEN=*), INTENT(IN), OPTIONAL ::  mode
+        INTEGER, INTENT(IN)                    ::  nx, ny, nz
+        REAL(dp), INTENT(IN)                   ::  xmin, xmax, ymin, ymax, zmin, zmax
+        REAL(dp), INTENT(IN)                   ::  x0, y0, z0
+        REAL(dp), OPTIONAL, INTENT(IN)         ::  dx, dy, dz
+        TYPE(grid_definition), INTENT(INOUT)   ::  grid
+
+        grid % nx = nx
+        grid % ny = ny
+        grid % nz = nz
+
+        grid % lx = xmax - xmin
+        grid % ly = ymax - ymin
+        grid % lz = zmax - zmin
+
+        grid % x0 = x0
+        grid % y0 = y0
+        grid % z0 = z0
+
+        SELECT CASE( TRIM (kind) )
+
+        CASE('boundary')
+           IF (.NOT. PRESENT(dx))  THEN
+              message = "dx is not present but needed for 'eastwest-scalar' "//&
+                        "initializaton."
+              CALL abort('init_grid_definition', message)
+           END IF
+           IF (.NOT. PRESENT(dy))  THEN
+              message = "dy is not present but needed for 'eastwest-scalar' "//&
+                        "initializaton."
+              CALL abort('init_grid_definition', message)
+           END IF
+           IF (.NOT. PRESENT(dz))  THEN
+              message = "dz is not present but needed for 'eastwest-scalar' "//&
+                        "initializaton."
+              CALL abort('init_grid_definition', message)
+           END IF
+
+           grid % dx  = dx
+           grid % dy  = dy
+           grid % dz  = dz
+
+           grid % dxi = 1.0_dp / grid % dx
+           grid % dyi = 1.0_dp / grid % dy
+           grid % dzi = 1.0_dp / grid % dz
+
+           ALLOCATE( grid % x(0:nx) )
+           CALL linspace(xmin, xmax, grid % x)
+
+           ALLOCATE( grid % y(0:ny) )
+           CALL linspace(ymin, ymax, grid % y)
+
+           ALLOCATE( grid % z(0:nz) )
+           CALL linspace(zmin, zmax, grid % z)
+
+           ! Allocate neighbour indices and weights
+           IF (TRIM(mode) .NE. 'profile')  THEN
+              ALLOCATE( grid % kk(0:nx, 0:ny, 0:nz, 2) )
+              grid % kk(:,:,:,:) = -1
+
+              ALLOCATE( grid % w_verti(0:nx, 0:ny, 0:nz, 2) )
+              grid % w_verti(:,:,:,:) = 0.0_dp
+           END IF
+        
+        CASE('boundary intermediate')
+           IF (.NOT. PRESENT(dx))  THEN
+              message = "dx is not present but needed for 'eastwest-scalar' "//&
+                        "initializaton."
+              CALL abort('init_grid_definition', message)
+           END IF
+           IF (.NOT. PRESENT(dy))  THEN
+              message = "dy is not present but needed for 'eastwest-scalar' "//&
+                        "initializaton."
+              CALL abort('init_grid_definition', message)
+           END IF
+           IF (.NOT. PRESENT(dz))  THEN
+              message = "dz is not present but needed for 'eastwest-scalar' "//&
+                        "initializaton."
+              CALL abort('init_grid_definition', message)
+           END IF
+
+           grid % dx  = dx
+           grid % dy  = dy
+           grid % dz  = dz
+
+           grid % dxi = 1.0_dp / grid % dx
+           grid % dyi = 1.0_dp / grid % dy
+           grid % dzi = 1.0_dp / grid % dz
+
+           ALLOCATE( grid % x(0:nx) )
+           CALL linspace(xmin, xmax, grid % x)
+
+           ALLOCATE( grid % y(0:ny) )
+           CALL linspace(ymin, ymax, grid % y)
+
+           ALLOCATE( grid % z(0:nz) )
+           CALL linspace(zmin, zmax, grid % z)
+
+           ALLOCATE( grid % clon(0:nx, 0:ny), grid % clat(0:nx, 0:ny)  )
+           CALL rotate_to_cosmo(                                               &
+              phir = project( grid % y, y0, EARTH_RADIUS ) , & ! = plate-carree latitude
+              lamr = project( grid % x, x0, EARTH_RADIUS ) , & ! = plate-carree longitude
+              phip = phi_cn, lamp = lambda_cn,                                 &
+              phi  = grid % clat,                                              &
+              lam  = grid % clon,                                              &
+              gam  = gam                                                       &
+           )
+
+           ! Allocate neighbour indices and weights
+           ALLOCATE( grid % ii(0:nx, 0:ny, 4),                                 &
+                     grid % jj(0:nx, 0:ny, 4) )
+           grid % ii(:,:,:)   = -1
+           grid % jj(:,:,:)   = -1
+
+           ALLOCATE( grid % w_horiz(0:nx, 0:ny, 4) )
+           grid % w_horiz(:,:,:)   = 0.0_dp
+        
+        ! This mode initializes a Cartesian PALM-4U grid and adds the
+        ! corresponding latitudes and longitudes of the rotated pole grid.
+        CASE('palm')
+           grid % name(1) = 'x and lon'
+           grid % name(2) = 'y and lat'
+           grid % name(3) = 'z'
+
+           grid % dx  = grid % lx / (nx + 1)
+           grid % dy  = grid % ly / (ny + 1)
+           grid % dz  = grid % lz / (nz + 1)
+
+           grid % dxi = 1.0_dp / grid % dx
+           grid % dyi = 1.0_dp / grid % dy
+           grid % dzi = 1.0_dp / grid % dz
+
+           ALLOCATE( grid % x(0:nx),   grid % y(0:ny),  grid % z(0:nz)  )
+           ALLOCATE( grid % xu(1:nx),  grid % yv(1:ny), grid % zw(1:nz) )
+           CALL linspace(xmin + 0.5_dp*grid % dx, xmax - 0.5_dp*grid % dx, grid % x)
+           CALL linspace(ymin + 0.5_dp*grid % dy, ymax - 0.5_dp*grid % dy, grid % y)
+           CALL linspace(zmin + 0.5_dp*grid % dz, zmax - 0.5_dp*grid % dz, grid % z)
+           CALL linspace(xmin + grid % dx, xmax - grid % dx, grid % xu)
+           CALL linspace(ymin + grid % dy, ymax - grid % dy, grid % yv)
+           CALL linspace(zmin + grid % dz, zmax - grid % dz, grid % zw)
+
+           grid % depths => depths
+
+           ! Allocate neighbour indices and weights
+           IF (TRIM(mode) .NE. 'profile')  THEN
+              ALLOCATE( grid % kk(0:nx, 0:ny, 0:nz, 2) )
+              grid % kk(:,:,:,:) = -1
+
+              ALLOCATE( grid % w_verti(0:nx, 0:ny, 0:nz, 2) )
+              grid % w_verti(:,:,:,:) = 0.0_dp
+           END IF
+
+        CASE('palm intermediate')
+           grid % name(1) = 'x and lon'
+           grid % name(2) = 'y and lat'
+           grid % name(3) = 'z'
+
+           grid % dx  = grid % lx / (nx + 1)
+           grid % dy  = grid % ly / (ny + 1)
+           grid % dz  = grid % lz / (nz + 1)
+
+           grid % dxi = 1.0_dp / grid % dx
+           grid % dyi = 1.0_dp / grid % dy
+           grid % dzi = 1.0_dp / grid % dz
+
+           ALLOCATE( grid % x(0:nx),   grid % y(0:ny),  grid % z(0:nz)  )
+           ALLOCATE( grid % xu(1:nx),  grid % yv(1:ny), grid % zw(1:nz) )
+           CALL linspace(xmin + 0.5_dp*grid % dx, xmax - 0.5_dp*grid % dx, grid % x)
+           CALL linspace(ymin + 0.5_dp*grid % dy, ymax - 0.5_dp*grid % dy, grid % y)
+           CALL linspace(zmin + 0.5_dp*grid % dz, zmax - 0.5_dp*grid % dz, grid % z)
+           CALL linspace(xmin + grid % dx, xmax - grid % dx, grid % xu)
+           CALL linspace(ymin + grid % dy, ymax - grid % dy, grid % yv)
+           CALL linspace(zmin + grid % dz, zmax - grid % dz, grid % zw)
+
+           grid % depths => depths
+
+           ! Allocate rotated-pole coordinates, clon is for (c)osmo-de (lon)gitude
+           ALLOCATE( grid % clon(0:nx, 0:ny),   grid % clat(0:nx, 0:ny)  )
+           ALLOCATE( grid % clonu(1:nx, 0:ny),  grid % clatu(1:nx, 0:ny) )
+           ALLOCATE( grid % clonv(0:nx, 1:ny),  grid % clatv(0:nx, 1:ny) )
+
+           ! Compute rotated-pole coordinates of...
+           ! ... PALM-4U centres
+           CALL rotate_to_cosmo(                                               &
+              phir = project( grid % y, y0, EARTH_RADIUS ) , & ! = plate-carree latitude
+              lamr = project( grid % x, x0, EARTH_RADIUS ) , & ! = plate-carree longitude
+              phip = phi_cn, lamp = lambda_cn,                                 &
+              phi  = grid % clat,                                              &
+              lam  = grid % clon,                                              &
+              gam  = gam                                                       &
+           )
+
+           ! ... PALM-4U u winds
+           CALL rotate_to_cosmo(                                               &
+              phir = project( grid % y,  y0, EARTH_RADIUS ), & ! = plate-carree latitude
+              lamr = project( grid % xu, x0, EARTH_RADIUS ), & ! = plate-carree longitude
+              phip = phi_cn, lamp = lambda_cn,                                 &
+              phi  = grid % clatu,                                             &
+              lam  = grid % clonu,                                             &
+              gam  = gam                                                       &
+           )
+
+           ! ... PALM-4U v winds
+           CALL rotate_to_cosmo(                                               &
+              phir = project( grid % yv, y0, EARTH_RADIUS ), & ! = plate-carree latitude
+              lamr = project( grid % x,  x0, EARTH_RADIUS ), & ! = plate-carree longitude
+              phip = phi_cn, lamp = lambda_cn,                                 &
+              phi  = grid % clatv,                                             &
+              lam  = grid % clonv,                                             &
+              gam  = gam                                                       &
+           )
+
+           ! Allocate neighbour indices and weights
+           ALLOCATE( grid % ii(0:nx, 0:ny, 4),                                 &
+                     grid % jj(0:nx, 0:ny, 4) )
+           grid % ii(:,:,:)   = -1
+           grid % jj(:,:,:)   = -1
+
+           ALLOCATE( grid % w_horiz(0:nx, 0:ny, 4) )
+           grid % w_horiz(:,:,:)   = 0.0_dp
+
+        CASE('cosmo-de')
+           grid % name(1) = 'rlon'         ! of COMSO-DE cell centres (scalars)
+           grid % name(2) = 'rlat'         ! of COMSO-DE cell centres (scalars)
+           grid % name(3) = 'height'
+
+           grid % dx  = grid % lx / nx     ! = 0.025 deg, stored in radians
+           grid % dy  = grid % ly / ny     ! = 0.025 deg, stored in radians
+           grid % dz  = 0.0_dp             ! not defined yet
+
+           grid % dxi = 1.0_dp / grid % dx ! [rad^-1]
+           grid % dyi = 1.0_dp / grid % dy ! [rad^-1]
+           grid % dzi = 0.0_dp             ! not defined yet
+
+           ALLOCATE( grid % lon(0:nx),   grid % lat(0:ny),  grid % z(0:nz)  )
+           ALLOCATE( grid % lonu(0:nx),  grid % latv(0:ny), grid % zw(0:nz) )
+
+           CALL linspace(xmin, xmax, grid % lon)
+           CALL linspace(ymin, ymax, grid % lat)
+           grid % lonu(:) = grid % lon + 0.5_dp * grid % dx
+           grid % latv(:) = grid % lat + 0.5_dp * grid % dy
+
+           ! Point to heights of half levels (hhl) and compute heights of full
+           ! levels (hfl) as arithmetic averages
+           grid % hhl => hhl
+           grid % hfl => hfl
+           grid % depths => depths
+
+        CASE DEFAULT
+            message = "Grid kind '" // TRIM(kind) // "' is not recognized."
+            CALL abort('init_grid_definition', message)
+
+        END SELECT
+
+    END SUBROUTINE init_grid_definition
+
+
+    SUBROUTINE setup_io_groups()
+
+       INTEGER ::  ngroups
+
+       ngroups = 16
+       ALLOCATE( io_group_list(ngroups) )
+       
+       !soil temp
+       io_group_list(1) = init_io_group(                                       &
+          in_files = soil_files,                                               &
+          out_vars = output_var_table(1:1),                                    &
+          in_var_list = input_var_table(1:1),                                  &
+          kind = 'soil-temperature'                                            &
+       )
+
+       !soil water
+       io_group_list(2) = init_io_group(                                       &
+          in_files = soil_files,                                               &
+          out_vars = output_var_table(2:2),                                    &
+          in_var_list = input_var_table(2:2),                                  &
+          kind = 'soil-water'                                                  &
+       )
+
+       !potential temperature, surface pressure
+       io_group_list(3) = init_io_group(                                       &
+          in_files = flow_files,                                               &
+          out_vars = [output_var_table(3:8), output_var_table(42:42)],         &
+          in_var_list = (/input_var_table(3), input_var_table(17)/),           &
+          kind = 'temperature'                                                 &
+       )
+
+       !specific humidity
+       io_group_list(4) = init_io_group(                                       &
+          in_files = flow_files,                                               &
+          out_vars = output_var_table(9:14),                                   &
+          in_var_list = input_var_table(4:4),                                  &
+          kind = 'scalar'                                                      &
+       )
+
+       !u and v velocity and geostrophic winds ug, vg
+       io_group_list(5) = init_io_group(                                       &
+          in_files = flow_files,                                               &
+          out_vars = [output_var_table(15:26), output_var_table(43:44)],       &
+          !out_vars = output_var_table(15:20),                                  &
+          in_var_list = input_var_table(5:6),                                  &
+          !in_var_list = input_var_table(5:5),                                  &
+          kind = 'velocities'                                                  &
+       )
+   
+       !!v velocity, deprecated!
+       !io_group_list(6) = init_io_group(                                       &
+       !   in_files = flow_files,                                               &
+       !   out_vars = output_var_table(21:26),                                  &
+       !   in_var_list = input_var_table(6:6),                                  &
+       !   kind = 'horizontal velocity'                                         &
+       !)
+       !io_group_list(6) % to_be_processed = .FALSE.
+   
+       !w velocity
+       io_group_list(7) = init_io_group(                                       &
+          in_files = flow_files,                                               &
+          out_vars = output_var_table(27:32),                                  &
+          in_var_list = input_var_table(7:7),                                  &
+          kind = 'scalar'                                                      &
+       )
+
+       !rain
+       io_group_list(8) = init_io_group(                                       &
+          in_files = soil_moisture_files,                                      &
+          out_vars = output_var_table(33:33),                                  &
+          in_var_list = input_var_table(8:8),                                  &
+          kind = 'accumulated'                                                 &
+       )
+
+       !snow
+       io_group_list(9) = init_io_group(                                       &
+          in_files = soil_moisture_files,                                      &
+          out_vars = output_var_table(34:34),                                  &
+          in_var_list = input_var_table(9:9),                                  &
+          kind = 'accumulated'                                                 &
+       )
+
+       !graupel
+       io_group_list(10) = init_io_group(                                      &
+          in_files = soil_moisture_files,                                      &
+          out_vars = output_var_table(35:35),                                  &
+          in_var_list = input_var_table(10:10),                                &
+          kind = 'accumulated'                                                 &
+       )
+
+       !evapotranspiration
+       io_group_list(11) = init_io_group(                                      &
+          in_files = soil_moisture_files,                                      &
+          out_vars = output_var_table(37:37),                                  &
+          in_var_list = input_var_table(11:11),                                &
+          kind = 'accumulated'                                                 &
+       )
+
+       !2m air temperature
+       io_group_list(12) = init_io_group(                                      &
+          in_files = soil_moisture_files,                                      &
+          out_vars = output_var_table(36:36),                                  &
+          in_var_list = input_var_table(12:12),                                &
+          kind = 'surface'                                                     &
+       )
+
+       !incoming diffusive sw flux
+       io_group_list(13) = init_io_group(                                      &
+          in_files = radiation_files,                                          &
+          out_vars = output_var_table(38:38),                                  &
+          in_var_list = input_var_table(13:13),                                &
+          kind = 'running average'                                             &
+       )
+       io_group_list(13) % to_be_processed = .FALSE.
+
+       !incoming direct sw flux
+       io_group_list(14) = init_io_group(                                      &
+          in_files = radiation_files,                                          &
+          out_vars = output_var_table(39:39),                                  &
+          in_var_list = input_var_table(14:14),                                &
+          kind = 'running average'                                             &
+       )
+       io_group_list(14) % to_be_processed = .FALSE.
+
+       !sw radiation balance
+       io_group_list(15) = init_io_group(                                      &
+          in_files = radiation_files,                                          &
+          out_vars = output_var_table(40:40),                                  &
+          in_var_list = input_var_table(15:15),                                &
+          kind = 'running average'                                             &
+       )
+
+       !lw radiation balance
+       io_group_list(16) = init_io_group(                                      &
+          in_files = radiation_files,                                          &
+          out_vars = output_var_table(41:41),                                  &
+          in_var_list = input_var_table(16:16),                                &
+          kind = 'running average'                                             &
+       )
+
+    END SUBROUTINE setup_io_groups
+
+
+    FUNCTION init_io_group(in_files, out_vars, in_var_list, kind) RESULT(group)
+       CHARACTER(LEN=PATH), INTENT(IN) ::  in_files(:)
+       CHARACTER(LEN=*), INTENT(IN)    ::  kind
+       TYPE(nc_var), INTENT(IN)        ::  out_vars(:)
+       TYPE(nc_var), INTENT(IN)        ::  in_var_list(:)
+
+       TYPE(io_group)                  ::  group
+
+       group % nt = SIZE(in_files)
+       group % nv = SIZE(out_vars)
+       group % kind = TRIM(kind)
+
+       ALLOCATE(group % in_var_list( SIZE(in_var_list) ))
+       ALLOCATE(group % in_files(group % nt))
+       ALLOCATE(group % out_vars(group % nv))
+
+       group % in_var_list = in_var_list
+       group % in_files = in_files
+       group % out_vars = out_vars
+       group % to_be_processed = .TRUE.
+
+    END FUNCTION init_io_group
+
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Deallocates all allocated variables.
+!------------------------------------------------------------------------------!
+    SUBROUTINE fini_grids()
+
+       CALL report('fini_grids', 'Deallocating grids')
+       
+       DEALLOCATE(palm_grid%x,  palm_grid%y,  palm_grid%z,                     &
+                  palm_grid%xu, palm_grid%yv, palm_grid%zw,                    &
+                  palm_grid%clon,  palm_grid%clat,                             &
+                  palm_grid%clonu, palm_grid%clatu)
+
+       DEALLOCATE(palm_intermediate%x,  palm_intermediate%y,  palm_intermediate%z, &
+                  palm_intermediate%xu, palm_intermediate%yv, palm_intermediate%zw,&
+                  palm_intermediate%clon,  palm_intermediate%clat,             &  
+                  palm_intermediate%clonu, palm_intermediate%clatu)
+
+       DEALLOCATE(cosmo_grid%lon,  cosmo_grid%lat,  cosmo_grid%z,              &
+                  cosmo_grid%lonu, cosmo_grid%latv, cosmo_grid%zw,             &
+                  cosmo_grid%hfl)
+
+    END SUBROUTINE fini_grids
+
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Initializes the the variable list.
+!------------------------------------------------------------------------------!
+    SUBROUTINE setup_variable_tables(mode)
+       CHARACTER(LEN=*), INTENT(IN) ::  mode
+       TYPE(nc_var), POINTER        ::  var
+
+       IF (TRIM(start_date) == '')  THEN
+          message = 'Simulation start date has not been set.'
+          CALL abort('setup_variable_tables', message)
+       END IF
+
+       nc_source_text = 'COSMO-DE analysis from ' // TRIM(start_date)
+
+       n_invar = 17
+       n_outvar = 44
+       ALLOCATE( input_var_table(n_invar) )
+       ALLOCATE( output_var_table(n_outvar) )
+
+!
+!------------------------------------------------------------------------------
+!- Section 1: NetCDF input variables
+!------------------------------------------------------------------------------
+       var => input_var_table(1)
+       var % name = 'T_SO'
+       var % to_be_processed = .TRUE.
+       var % is_upside_down = .FALSE.
+
+       var => input_var_table(2)
+       var % name = 'W_SO'
+       var % to_be_processed = .TRUE.
+       var % is_upside_down = .FALSE.
+
+       var => input_var_table(3)
+       var % name = 'T'
+       var % to_be_processed = .TRUE.
+       var % is_upside_down = .TRUE.
+
+       var => input_var_table(4)
+       var % name = 'QV'
+       var % to_be_processed = .TRUE.
+       var % is_upside_down = .TRUE.
+
+       var => input_var_table(5)
+       var % name = 'U'
+       var % to_be_processed = .TRUE.
+       var % is_upside_down = .TRUE.
+
+       var => input_var_table(6)
+       var % name = 'V'
+       var % to_be_processed = .TRUE.
+       var % is_upside_down = .TRUE.
+
+       var => input_var_table(7)
+       var % name = 'W'
+       var % to_be_processed = .TRUE.
+       var % is_upside_down = .TRUE.
+
+       var => input_var_table(8)
+       var % name = 'RAIN_GSP'
+       var % to_be_processed = .TRUE.
+       var % is_upside_down = .FALSE.
+
+       var => input_var_table(9)
+       var % name = 'SNOW_GSP'
+       var % to_be_processed = .TRUE.
+       var % is_upside_down = .FALSE.
+
+       var => input_var_table(10)
+       var % name = 'GRAU_GSP'
+       var % to_be_processed = .TRUE.
+       var % is_upside_down = .FALSE.
+
+       var => input_var_table(11)
+       var % name = 'AEVAP_S'
+       var % to_be_processed = .TRUE.
+       var % is_upside_down = .FALSE.
+
+       var => input_var_table(12)
+       var % name = 'T_2M'
+       var % to_be_processed = .TRUE.
+       var % is_upside_down = .FALSE.
+
+       var => input_var_table(13)
+       var % name = 'ASWDIFD_S'
+       var % to_be_processed = .TRUE.
+       var % is_upside_down = .FALSE.
+
+       var => input_var_table(14)
+       var % name = 'ASWDIR_S'
+       var % to_be_processed = .TRUE.
+       var % is_upside_down = .FALSE.
+
+       var => input_var_table(15)
+       var % name = 'ASOB_S'
+       var % to_be_processed = .TRUE.
+       var % is_upside_down = .FALSE.
+
+       var => input_var_table(16)
+       var % name = 'ATHB_S'
+       var % to_be_processed = .TRUE.
+       var % is_upside_down = .FALSE.
+
+       var => input_var_table(17)
+       var % name = 'P'
+       var % to_be_processed = .TRUE.
+       var % is_upside_down = .TRUE.
+
+!
+!------------------------------------------------------------------------------
+!- Section 2: NetCDF output variables
+!------------------------------------------------------------------------------
+       output_var_table(1) = init_nc_var(                                      &
+          name              = 'init_soil_t',                                   &
+          std_name          = "",                                              &
+          long_name         = "initial soil temperature",                      &
+          units             = "K",                                             &
+          kind              = "init soil",                                     &
+          input_id          = 1,                                               &
+          output_file       = output_file,                                     &
+          grid              = palm_grid,                                       &
+          intermediate_grid = palm_intermediate                                &
+       )
+
+       output_var_table(2) = init_nc_var(                                      &
+          name              = 'init_soil_m',                                   &
+          std_name          = "",                                              &
+          long_name         = "initial soil moisture",                         &
+          units             = "m^3/m^3",                                       &
+          kind              = "init soil",                                     &
+          input_id          = 1,                                               &
+          output_file       = output_file,                                     &
+          grid              = palm_grid,                                       &
+          intermediate_grid = palm_intermediate                                &
+       )
+
+       output_var_table(3) = init_nc_var(                                      &
+          name              = 'init_pt',                                       &
+          std_name          = "",                                              &
+          long_name         = "initial potential temperature",                 &
+          units             = "K",                                             &
+          kind              = "init scalar",                                   &
+          input_id          = 1,                                               & ! first in (T, p) IO group
+          output_file       = output_file,                                     &
+          grid              = palm_grid,                                       &
+          intermediate_grid = palm_intermediate,                               &
+          is_profile = (TRIM(mode) == 'profile')                               &
+       )
+       IF (TRIM(mode) == 'profile')  THEN
+          output_var_table(3) % grid => scalar_profile_grid
+          output_var_table(3) % intermediate_grid => scalar_profile_intermediate
+       END IF
+
+       output_var_table(4) = init_nc_var(                                      &
+          name              = 'ls_forcing_left_pt',                            &
+          std_name          = "",                                              &
+          long_name         = "large-scale forcing for left model boundary for the potential temperature", &
+          units             = "K",                                             &
+          kind              = "left scalar",                                   &
+          input_id          = 1,                                               &
+          grid              = scalars_west_grid,                               &
+          intermediate_grid = scalars_west_intermediate,                       &
+          output_file = output_file                                            &
+       )
+
+       output_var_table(5) = init_nc_var(                                      &
+          name              = 'ls_forcing_right_pt',                           &
+          std_name          = "",                                              &
+          long_name         = "large-scale forcing for right model boundary for the potential temperature", &
+          units             = "K",                                             &
+          kind              = "right scalar",                                  &
+          input_id          = 1,                                               &
+          grid              = scalars_east_grid,                               &
+          intermediate_grid = scalars_east_intermediate,                       &
+          output_file = output_file                                            &
+       )
+
+       output_var_table(6) = init_nc_var(                                      &
+          name              = 'ls_forcing_north_pt',                           &
+          std_name          = "",                                              &
+          long_name         = "large-scale forcing for north model boundary for the potential temperature", &
+          units             = "K",                                             &
+          kind              = "north scalar",                                  &
+          input_id          = 1,                                               &
+          grid              = scalars_north_grid,                              &
+          intermediate_grid = scalars_north_intermediate,                      &
+          output_file = output_file                                            &
+       )
+
+       output_var_table(7) = init_nc_var(                                      &
+          name              = 'ls_forcing_south_pt',                           &
+          std_name          = "",                                              &
+          long_name         = "large-scale forcing for south model boundary for the potential temperature", &
+          units             = "K",                                             &
+          kind              = "south scalar",                                  &
+          input_id          = 1,                                               &
+          grid              = scalars_south_grid,                              &
+          intermediate_grid = scalars_south_intermediate,                      &
+          output_file = output_file                                            &
+       )
+
+       output_var_table(8) = init_nc_var(                                      &
+          name              = 'ls_forcing_top_pt',                             &
+          std_name          = "",                                              &
+          long_name         = "large-scale forcing for top model boundary for the potential temperature", &
+          units             = "K",                                             &
+          kind              = "top scalar",                                    &
+          input_id          = 1,                                               &
+          grid              = scalars_top_grid,                                &
+          intermediate_grid = scalars_top_intermediate,                        &
+          output_file = output_file                                            &
+       )
+
+       output_var_table(9) = init_nc_var(                                      &
+          name              = 'init_qv',                                       &
+          std_name          = "",                                              &
+          long_name         = "initial specific humidity",                     &
+          units             = "kg/kg",                                         &
+          kind              = "init scalar",                                   &
+          input_id          = 1,                                               &
+          output_file       = output_file,                                     &
+          grid              = palm_grid,                                       &
+          intermediate_grid = palm_intermediate,                               &
+          is_profile = (TRIM(mode) == 'profile')                               &
+       )
+       IF (TRIM(mode) == 'profile')  THEN
+          output_var_table(9) % grid => scalar_profile_grid
+          output_var_table(9) % intermediate_grid => scalar_profile_intermediate
+       END IF
+
+       output_var_table(10) = init_nc_var(                                     &
+          name              = 'ls_forcing_left_qv',                            &
+          std_name          = "",                                              &
+          long_name         = "large-scale forcing for left model boundary for the specific humidity", &
+          units             = "kg/kg",                                         &
+          kind              = "left scalar",                                   &
+          input_id          = 1,                                               &
+          output_file       = output_file,                                     &
+          grid              = scalars_west_grid,                               &
+          intermediate_grid = scalars_west_intermediate                        &
+       )
+
+       output_var_table(11) = init_nc_var(                                     &
+          name              = 'ls_forcing_right_qv',                           &
+          std_name          = "",                                              &
+          long_name         = "large-scale forcing for right model boundary for the specific humidity", &
+          units             = "kg/kg",                                         &
+          kind              = "right scalar",                                  &
+          input_id          = 1,                                               &
+          output_file       = output_file,                                     &
+          grid              = scalars_east_grid,                               &
+          intermediate_grid = scalars_east_intermediate                        &
+       )
+
+       output_var_table(12) = init_nc_var(                                     &
+          name              = 'ls_forcing_north_qv',                           &
+          std_name          = "",                                              &
+          long_name         = "large-scale forcing for north model boundary for the specific humidity", &
+          units             = "kg/kg",                                         &
+          kind              = "north scalar",                                  &
+          input_id          = 1,                                               &
+          output_file       = output_file,                                     &
+          grid              = scalars_north_grid,                              &
+          intermediate_grid = scalars_north_intermediate                       &
+       )
+
+       output_var_table(13) = init_nc_var(                                     &
+          name              = 'ls_forcing_south_qv',                           &
+          std_name          = "",                                              &
+          long_name         = "large-scale forcing for south model boundary for the specific humidity", &
+          units             = "kg/kg",                                         &
+          kind              = "south scalar",                                  &
+          input_id          = 1,                                               &
+          output_file       = output_file,                                     &
+          grid              = scalars_south_grid,                              &
+          intermediate_grid = scalars_south_intermediate                       &
+       )
+
+       output_var_table(14) = init_nc_var(                                     &
+          name              = 'ls_forcing_top_qv',                             &
+          std_name          = "",                                              &
+          long_name         = "large-scale forcing for top model boundary for the specific humidity", &
+          units             = "kg/kg",                                         &
+          kind              = "top scalar",                                    &
+          input_id          = 1,                                               &
+          output_file       = output_file,                                     &
+          grid              = scalars_top_grid,                                &
+          intermediate_grid = scalars_top_intermediate                         &
+       )
+
+       output_var_table(15) = init_nc_var(                                     &
+          name              = 'init_u',                                        &
+          std_name          = "",                                              &
+          long_name         = "initial wind component in x direction",         &
+          units             = "m/s",                                           &
+          kind              = "init u",                                        &
+          input_id          = 1,                                               & ! first in (U, V) I/O group
+          output_file       = output_file,                                     &
+          grid              = u_initial_grid,                                  &
+          intermediate_grid = u_initial_intermediate,                          &
+          is_profile = (TRIM(mode) == 'profile')                               &
+       )
+       IF (TRIM(mode) == 'profile')  THEN
+          output_var_table(15) % grid => scalar_profile_grid
+          output_var_table(15) % intermediate_grid => scalar_profile_intermediate
+       END IF 
+
+       output_var_table(16) = init_nc_var(                                     &
+          name              = 'ls_forcing_left_u',                             &
+          std_name          = "",                                              &
+          long_name         = "large-scale forcing for left model boundary for the wind component in x direction", &
+          units             = "m/s",                                           &
+          kind              = "left u",                                        &
+          input_id          = 1,                                               & ! first in (U, V) I/O group
+          output_file       = output_file,                                     &
+          grid              = u_west_grid,                                     &
+          intermediate_grid = u_west_intermediate                              &
+       )
+
+       output_var_table(17) = init_nc_var(                                     &
+          name              = 'ls_forcing_right_u',                            &
+          std_name          = "",                                              &
+          long_name         = "large-scale forcing for right model boundary for the wind component in x direction", &
+          units             = "m/s",                                           &
+          kind              = "right u",                                       &
+          input_id          = 1,                                               & ! first in (U, V) I/O group
+          output_file       = output_file,                                     &
+          grid              = u_east_grid,                                     &
+          intermediate_grid = u_east_intermediate                              &
+       )
+
+       output_var_table(18) = init_nc_var(                                     &
+          name              = 'ls_forcing_north_u',                            &
+          std_name          = "",                                              &
+          long_name         = "large-scale forcing for north model boundary for the wind component in x direction", &
+          units             = "m/s",                                           &
+          kind              = "north u",                                       &
+          input_id          = 1,                                               & ! first in (U, V) I/O group
+          output_file       = output_file,                                     &
+          grid              = u_north_grid,                                    &
+          intermediate_grid = u_north_intermediate                             &
+       )
+
+       output_var_table(19) = init_nc_var(                                     &
+          name              = 'ls_forcing_south_u',                            &
+          std_name          = "",                                              &
+          long_name         = "large-scale forcing for south model boundary for the wind component in x direction", &
+          units             = "m/s",                                           &
+          kind              = "south u",                                       &
+          input_id          = 1,                                               & ! first in (U, V) I/O group
+          output_file       = output_file,                                     &
+          grid              = u_south_grid,                                    &
+          intermediate_grid = u_south_intermediate                             &
+       )
+
+       output_var_table(20) = init_nc_var(                                     &
+          name              = 'ls_forcing_top_u',                              &
+          std_name          = "",                                              &
+          long_name         = "large-scale forcing for top model boundary for the wind component in x direction", &
+          units             = "m/s",                                           &
+          kind              = "top u",                                         &
+          input_id          = 1,                                               & ! first in (U, V) I/O group
+          output_file       = output_file,                                     &
+          grid              = u_top_grid,                                      &
+          intermediate_grid = u_top_intermediate                               &
+       )
+
+       output_var_table(21) = init_nc_var(                                     &
+          name              = 'init_v',                                        &
+          std_name          = "",                                              &
+          long_name         = "initial wind component in y direction",         &
+          units             = "m/s",                                           &
+          kind              = "init v",                                        &
+          input_id          = 2,                                               & ! second in (U, V) I/O group
+          output_file       = output_file,                                     &
+          grid              = v_initial_grid,                                  &
+          intermediate_grid = v_initial_intermediate,                          &
+          is_profile = (TRIM(mode) == 'profile')                               &
+       )
+       IF (TRIM(mode) == 'profile')  THEN
+          output_var_table(21) % grid => scalar_profile_grid
+          output_var_table(21) % intermediate_grid => scalar_profile_intermediate
+       END IF
+
+       output_var_table(22) = init_nc_var(                                     &
+          name              = 'ls_forcing_left_v',                             &
+          std_name          = "",                                              &
+          long_name         = "large-scale forcing for left model boundary for the wind component in y direction", &
+          units             = "m/s",                                           &
+          kind              = "right v",                                       &
+          input_id          = 2,                                               & ! second in (U, V) I/O group
+          output_file       = output_file,                                     &
+          grid              = v_west_grid,                                     &
+          intermediate_grid = v_west_intermediate                              &
+       )
+
+       output_var_table(23) = init_nc_var(                                     &
+          name              = 'ls_forcing_right_v',                            &
+          std_name          = "",                                              &
+          long_name         = "large-scale forcing for right model boundary for the wind component in y direction", &
+          units             = "m/s",                                           &
+          kind              = "right v",                                       &
+          input_id          = 2,                                               & ! second in (U, V) I/O group
+          output_file       = output_file,                                     &
+          grid              = v_east_grid,                                     &
+          intermediate_grid = v_east_intermediate                              &
+       )
+
+       output_var_table(24) = init_nc_var(                                     &
+          name              = 'ls_forcing_north_v',                            &
+          std_name          = "",                                              &
+          long_name         = "large-scale forcing for north model boundary for the wind component in y direction", &
+          units             = "m/s",                                           &
+          kind              = "north v",                                       &
+          input_id          = 2,                                               & ! second in (U, V) I/O group
+          output_file       = output_file,                                     &
+          grid              = v_north_grid,                                    &
+          intermediate_grid = v_north_intermediate                             &
+       )
+
+       output_var_table(25) = init_nc_var(                                     &
+          name              = 'ls_forcing_south_v',                            &
+          std_name          = "",                                              &
+          long_name         = "large-scale forcing for south model boundary for the wind component in y direction", &
+          units             = "m/s",                                           &
+          kind              = "south v",                                       &
+          input_id          = 2,                                               & ! second in (U, V) I/O group
+          output_file       = output_file,                                     &
+          grid              = v_south_grid,                                    &
+          intermediate_grid = v_south_intermediate                             &
+       )
+
+       output_var_table(26) = init_nc_var(                                     &
+          name              = 'ls_forcing_top_v',                              &
+          std_name          = "",                                              &
+          long_name         = "large-scale forcing for top model boundary for the wind component in y direction", &
+          units             = "m/s",                                           &
+          kind              = "top v",                                         &
+          input_id          = 2,                                               & ! second in (U, V) I/O group
+          output_file       = output_file,                                     &
+          grid              = v_top_grid,                                      &
+          intermediate_grid = v_top_intermediate                               &
+       )
+
+       output_var_table(27) = init_nc_var(                                     &
+          name              = 'init_w',                                        &
+          std_name          = "",                                              &
+          long_name         = "initial wind component in z direction",         &
+          units             = "m/s",                                           &
+          kind              = "init w",                                        &
+          input_id          = 1,                                               &
+          output_file       = output_file,                                     &
+          grid              = w_initial_grid,                                  &
+          intermediate_grid = w_initial_intermediate,                          &
+          is_profile = (TRIM(mode) == 'profile')                               &
+       )
+       IF (TRIM(mode) == 'profile')  THEN
+          output_var_table(27) % grid => w_profile_grid
+          output_var_table(27) % intermediate_grid => w_profile_intermediate
+       END IF
+
+       output_var_table(28) = init_nc_var(                                     &
+          name              = 'ls_forcing_left_w',                             &
+          std_name          = "",                                              &
+          long_name         = "large-scale forcing for left model boundary for the wind component in z direction", &
+          units             = "m/s",                                           &
+          kind              = "left w",                                        &
+          input_id          = 1,                                               &
+          output_file       = output_file,                                     &
+          grid              = w_west_grid,                                     &
+          intermediate_grid = w_west_intermediate                              &
+       )
+
+       output_var_table(29) = init_nc_var(                                     &
+          name              = 'ls_forcing_right_w',                            &
+          std_name          = "",                                              &
+          long_name         = "large-scale forcing for right model boundary for the wind component in z direction", &
+          units             = "m/s",                                           &
+          kind              = "right w",                                       &
+          input_id          = 1,                                               &
+          output_file       = output_file,                                     &
+          grid              = w_east_grid,                                     &
+          intermediate_grid = w_east_intermediate                              &
+       )
+
+       output_var_table(30) = init_nc_var(                                     &
+          name              = 'ls_forcing_north_w',                            &
+          std_name          = "",                                              &
+          long_name         = "large-scale forcing for north model boundary for the wind component in z direction", &
+          units             = "m/s",                                           &
+          kind              = "north w",                                       &
+          input_id          = 1,                                               &
+          output_file       = output_file,                                     &
+          grid              = w_north_grid,                                    &
+          intermediate_grid = w_north_intermediate                             &
+       )
+
+       output_var_table(31) = init_nc_var(                                     &
+          name              = 'ls_forcing_south_w',                            &
+          std_name          = "",                                              &
+          long_name         = "large-scale forcing for south model boundary for the wind component in z direction", &
+          units             = "m/s",                                           &
+          kind              = "south w",                                       &
+          input_id          = 1,                                               &
+          output_file       = output_file,                                     &
+          grid              = w_south_grid,                                    &
+          intermediate_grid = w_south_intermediate                             &
+       )
+
+       output_var_table(32) = init_nc_var(                                     &
+          name              = 'ls_forcing_top_w',                              &
+          std_name          = "",                                              &
+          long_name         = "large-scale forcing for top model boundary for the wind component in z direction", &
+          units             = "m/s",                                           &
+          kind              = "top w",                                         &
+          input_id          = 1,                                               &
+          output_file       = output_file,                                     &
+          grid              = w_top_grid,                                      &
+          intermediate_grid = w_top_intermediate                               &
+       )
+
+       output_var_table(33) = init_nc_var(                                     &
+          name              = 'ls_forcing_soil_rain',                          &
+          std_name          = "",                                              &
+          long_name         = "large-scale forcing rain",                      &
+          units             = "kg/m2",                                         &
+          kind              = "surface forcing",                               &
+          input_id          = 1,                                               &
+          output_file       = output_file,                                     &
+          grid              = palm_grid,                                       &
+          intermediate_grid = palm_intermediate                                &
+       )
+
+       output_var_table(34) = init_nc_var(                                     &
+          name              = 'ls_forcing_soil_snow',                          &
+          std_name          = "",                                              &
+          long_name         = "large-scale forcing snow",                      &
+          units             = "kg/m2",                                         &
+          kind              = "surface forcing",                               &
+          input_id          = 1,                                               &
+          output_file       = output_file,                                     &
+          grid              = palm_grid,                                       &
+          intermediate_grid = palm_intermediate                                &
+       )
+
+       output_var_table(35) = init_nc_var(                                     &
+          name              = 'ls_forcing_soil_graupel',                       &
+          std_name          = "",                                              &
+          long_name         = "large-scale forcing graupel",                   &
+          units             = "kg/m2",                                         &
+          kind              = "surface forcing",                               &
+          input_id          = 1,                                               &
+          output_file       = output_file,                                     &
+          grid              = palm_grid,                                       &
+          intermediate_grid = palm_intermediate                                &
+       )
+
+       output_var_table(36) = init_nc_var(                                     &
+          name              = 'ls_forcing_soil_t_2m',                          &
+          std_name          = "",                                              &
+          long_name         = "large-scale forcing 2m air temperature",        &
+          units             = "kg/m2",                                         &
+          kind              = "surface forcing",                               &
+          input_id          = 1,                                               &
+          output_file       = output_file,                                     &
+          grid              = palm_grid,                                       &
+          intermediate_grid = palm_intermediate                                &
+       )
+
+       output_var_table(37) = init_nc_var(                                     &
+          name              = 'ls_forcing_soil_evap',                          &
+          std_name          = "",                                              &
+          long_name         = "large-scale forcing evapo-transpiration",       &
+          units             = "kg/m2",                                         &
+          kind              = "surface forcing",                               &
+          input_id          = 1,                                               &
+          output_file       = output_file,                                     &
+          grid              = palm_grid,                                       &
+          intermediate_grid = palm_intermediate                                &
+       )
+       ! Radiation fluxes and balances
+       output_var_table(38) = init_nc_var(                                     &
+          name              = 'rad_swd_dif_0',                                 &
+          std_name          = "",                                              &
+          long_name         = "incoming diffuse shortwave radiative flux at the surface", &
+          units             = "W/m2",                                          &
+          kind              = "surface forcing",                               &
+          input_id          = 1,                                               &
+          output_file       = output_file,                                     &
+          grid              = palm_grid,                                       &
+          intermediate_grid = palm_intermediate                                &
+       )
+
+       output_var_table(39) = init_nc_var(                                     &
+          name              = 'rad_swd_dir_0',                                 &
+          std_name          = "",                                              &
+          long_name         = "incoming direct shortwave radiative flux at the surface", &
+          units             = "W/m2",                                          &
+          kind              = "surface forcing",                               &
+          input_id          = 1,                                               &
+          output_file       = output_file,                                     &
+          grid              = palm_grid,                                       &
+          intermediate_grid = palm_intermediate                                &
+       )
+
+       output_var_table(40) = init_nc_var(                                     &
+          name              = 'rad_sw_bal_0',                                  &
+          std_name          = "",                                              &
+          long_name         = "shortwave radiation balance at the surface",    &
+          units             = "W/m2",                                          &
+          kind              = "surface forcing",                               &
+          input_id          = 1,                                               &
+          output_file       = output_file,                                     &
+          grid              = palm_grid,                                       &
+          intermediate_grid = palm_intermediate                                &
+       )
+
+       output_var_table(41) = init_nc_var(                                     &
+          name              = 'rad_lw_bal_0',                                  &
+          std_name          = "",                                              &
+          long_name         = "longwave radiation balance at the surface",     &
+          units             = "W/m2",                                          &
+          kind              = "surface forcing",                               &
+          input_id          = 1,                                               &
+          output_file       = output_file,                                     &
+          grid              = palm_grid,                                       &
+          intermediate_grid = palm_intermediate                                &
+       )
+
+       output_var_table(42) = init_nc_var(                                     &
+          name              = 'surface_forcing_surface_pressure',              &
+          std_name          = "",                                              &
+          long_name         = "surface pressure",                              &
+          units             = "Pa",                                            &
+          kind              = "time series",                                   &
+          input_id          = 2,                                               & ! second in (T, p) I/O group
+          output_file       = output_file,                                     &
+          grid              = palm_grid,                                       &
+          intermediate_grid = palm_intermediate                                &
+       )
+
+       output_var_table(43) = init_nc_var(                                     &
+          name              = 'ls_forcing_ug',                                 &
+          std_name          = "",                                              &
+          long_name         = "geostrophic wind (u component)",                &
+          units             = "m/s",                                           &
+          kind              = "profile",                                       &
+          input_id          = 1,                                               &
+          output_file       = output_file,                                     &
+          grid              = palm_grid,                                       &
+          intermediate_grid = palm_intermediate                                &
+       )
+
+       output_var_table(44) = init_nc_var(                                     &
+          name              = 'ls_forcing_vg',                                 &
+          std_name          = "",                                              &
+          long_name         = "geostrophic wind (v component)",                &
+          units             = "m/s",                                           &
+          kind              = "profile",                                       &
+          input_id          = 1,                                               &
+          output_file       = output_file,                                     &
+          grid              = palm_grid,                                       &
+          intermediate_grid = palm_intermediate                                &
+       )
+
+       ! Attributes shared among all variables
+       output_var_table(:) % source = nc_source_text
+
+    END SUBROUTINE setup_variable_tables
+
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Initializes and nc_var varible with the given parameters. The 'kind'
+!> parameter is used to infer the correct netCDF IDs and the level of detail,
+!> 'lod', as defined by the PALM-4U input data standard.
+!------------------------------------------------------------------------------!
+    FUNCTION init_nc_var(name, std_name, long_name, units, kind, input_id,     &
+                         grid, intermediate_grid, output_file, is_profile) RESULT(var)
+
+       CHARACTER(LEN=*), INTENT(IN)      ::  name, std_name, long_name, units, kind
+       INTEGER, INTENT(IN)               ::  input_id
+       TYPE(grid_definition), INTENT(IN), TARGET ::  grid, intermediate_grid
+       TYPE(nc_file), INTENT(IN)         ::  output_file
+       LOGICAL, INTENT(IN), OPTIONAL     ::  is_profile
+
+       CHARACTER(LEN=LNAME)              ::  out_var_kind 
+       TYPE(nc_var)                      ::  var
+
+       out_var_kind = TRIM(kind)
+
+       IF (PRESENT(is_profile))  THEN
+          IF (is_profile)  out_var_kind = TRIM(kind) // ' profile'
+       END IF
+
+       var % name              = name
+       var % standard_name     = std_name
+       var % long_name         = long_name
+       var % units             = units
+       var % kind              = TRIM(out_var_kind)
+       var % input_id          = input_id
+       var % nt                = SIZE (output_file % time)
+       var % grid              => grid
+       var % intermediate_grid => intermediate_grid
+
+       SELECT CASE( TRIM(out_var_kind) )
+
+       !TODO: Using global module variables 'init_variables_required' and
+       !TODO: 'boundary_variables_required'. Encapsulate in settings type
+       !TODO: and pass into init_nc_var.
+       CASE( 'init soil' )
+          var % nt              = 1
+          var % lod             = 2
+          var % ndim            = 3
+          var % dimids(1:3)     = output_file % dimids_soil
+          var % dimvarids(1:3)  = output_file % dimvarids_soil
+          var % to_be_processed = init_variables_required
+          var % task            = "interpolate_2d"
+
+       CASE( 'init scalar' )
+          var % nt              = 1
+          var % lod             = 2
+          var % ndim            = 3
+          var % dimids(1:3)     = output_file % dimids_scl
+          var % dimvarids(1:3)  = output_file % dimvarids_scl
+          var % to_be_processed = init_variables_required
+          var % task            = "interpolate_3d"
+
+       CASE( 'init u' )
+          var % nt              = 1
+          var % lod             = 2
+          var % ndim            = 3
+          var % dimids(1)       = output_file % dimids_vel(1)
+          var % dimids(2)       = output_file % dimids_scl(2)
+          var % dimids(3)       = output_file % dimids_scl(3)
+          var % dimvarids(1)    = output_file % dimvarids_vel(1)
+          var % dimvarids(2)    = output_file % dimvarids_scl(2)
+          var % dimvarids(3)    = output_file % dimvarids_scl(3)
+          var % to_be_processed = init_variables_required
+          var % task            = "interpolate_3d"
+
+       CASE( 'init v' )
+          var % nt              = 1
+          var % lod             = 2
+          var % ndim            = 3
+          var % dimids(1)       = output_file % dimids_scl(1)
+          var % dimids(2)       = output_file % dimids_vel(2)
+          var % dimids(3)       = output_file % dimids_scl(3)
+          var % dimvarids(1)    = output_file % dimvarids_scl(1)
+          var % dimvarids(2)    = output_file % dimvarids_vel(2)
+          var % dimvarids(3)    = output_file % dimvarids_scl(3)
+          var % to_be_processed = init_variables_required
+          var % task            = "interpolate_3d"
+
+       CASE( 'init w' )
+          var % nt              = 1
+          var % lod             = 2
+          var % ndim            = 3
+          var % dimids(1)       = output_file % dimids_scl(1)
+          var % dimids(2)       = output_file % dimids_scl(2)
+          var % dimids(3)       = output_file % dimids_vel(3)
+          var % dimvarids(1)    = output_file % dimvarids_scl(1)
+          var % dimvarids(2)    = output_file % dimvarids_scl(2)
+          var % dimvarids(3)    = output_file % dimvarids_vel(3)
+          var % to_be_processed = init_variables_required
+          var % task            = "interpolate_3d"
+
+       CASE( 'init scalar profile', 'init u profile', 'init v profile')
+          var % nt              = 1
+          var % lod             = 1
+          var % ndim            = 1
+          var % dimids(1)       = output_file % dimids_scl(3)    !z
+          var % dimvarids(1)    = output_file % dimvarids_scl(3) !z
+          var % to_be_processed = init_variables_required
+          var % task            = "average profile"
+
+       CASE( 'init w profile')
+          var % nt              = 1
+          var % lod             = 1
+          var % ndim            = 1
+          var % dimids(1)       = output_file % dimids_vel(3)    !z
+          var % dimvarids(1)    = output_file % dimvarids_vel(3) !z
+          var % to_be_processed = init_variables_required
+          var % task            = "average profile"
+
+       CASE ( 'surface forcing' )
+          var % lod             = 1
+          var % ndim            = 3
+          var % dimids(3)       = output_file % dimid_time
+          var % dimids(1:2)     = output_file % dimids_soil(1:2)
+          var % dimvarids(3)    = output_file % dimvarid_time
+          var % dimvarids(1:2)  = output_file % dimvarids_soil(1:2)
+          var % to_be_processed = boundary_variables_required
+          var % task            = "interpolate_2d"
+
+       CASE ( 'left scalar', 'right scalar') ! same as right
+          var % lod             = 2
+          var % ndim            = 3
+          var % dimids(3)       = output_file % dimid_time
+          var % dimids(1)       = output_file % dimids_scl(2)
+          var % dimids(2)       = output_file % dimids_scl(3)
+          var % dimvarids(3)    = output_file % dimvarid_time
+          var % dimvarids(1)    = output_file % dimvarids_scl(2)
+          var % dimvarids(2)    = output_file % dimvarids_scl(3)
+          var % to_be_processed = boundary_variables_required
+          var % task            = "interpolate_3d"
+
+       CASE ( 'north scalar', 'south scalar') ! same as south
+          var % lod             = 2
+          var % ndim            = 3
+          var % dimids(3)       = output_file % dimid_time
+          var % dimids(1)       = output_file % dimids_scl(1)
+          var % dimids(2)       = output_file % dimids_scl(3)
+          var % dimvarids(3)    = output_file % dimvarid_time
+          var % dimvarids(1)    = output_file % dimvarids_scl(1)
+          var % dimvarids(2)    = output_file % dimvarids_scl(3)
+          var % to_be_processed = boundary_variables_required
+          var % task            = "interpolate_3d"
+
+       CASE ( 'top scalar', 'top w' )
+          var % lod             = 2
+          var % ndim            = 3
+          var % dimids(3)       = output_file % dimid_time
+          var % dimids(1)       = output_file % dimids_scl(1)
+          var % dimids(2)       = output_file % dimids_scl(2)
+          var % dimvarids(3)    = output_file % dimvarid_time
+          var % dimvarids(1)    = output_file % dimvarids_scl(1)
+          var % dimvarids(2)    = output_file % dimvarids_scl(2)
+          var % to_be_processed = boundary_variables_required
+          var % task            = "interpolate_3d"
+
+       CASE ( 'left u', 'right u' )
+          var % lod             = 2
+          var % ndim            = 3
+          var % dimids(3)       = output_file % dimid_time
+          var % dimids(1)       = output_file % dimids_scl(2)
+          var % dimids(2)       = output_file % dimids_scl(3)
+          var % dimvarids(3)    = output_file % dimvarid_time
+          var % dimvarids(1)    = output_file % dimvarids_scl(2)
+          var % dimvarids(2)    = output_file % dimvarids_scl(3)
+          var % to_be_processed = boundary_variables_required
+          var % task            = "interpolate_3d"
+
+       CASE ( 'north u', 'south u' )
+          var % lod             = 2
+          var % ndim            = 3
+          var % dimids(3)       = output_file % dimid_time    !t
+          var % dimids(1)       = output_file % dimids_vel(1) !x
+          var % dimids(2)       = output_file % dimids_scl(3) !z
+          var % dimvarids(3)    = output_file % dimvarid_time
+          var % dimvarids(1)    = output_file % dimvarids_vel(1)
+          var % dimvarids(2)    = output_file % dimvarids_scl(3)
+          var % to_be_processed = boundary_variables_required
+          var % task            = "interpolate_3d"
+
+       CASE ( 'top u' )
+          var % lod             = 2
+          var % ndim            = 3
+          var % dimids(3)       = output_file % dimid_time    !t
+          var % dimids(1)       = output_file % dimids_vel(1) !x
+          var % dimids(2)       = output_file % dimids_scl(2) !z
+          var % dimvarids(3)    = output_file % dimvarid_time
+          var % dimvarids(1)    = output_file % dimvarids_vel(1)
+          var % dimvarids(2)    = output_file % dimvarids_scl(2)
+          var % to_be_processed = boundary_variables_required
+          var % task            = "interpolate_3d"
+
+       CASE ( 'left v', 'right v' )
+          var % lod             = 2
+          var % ndim            = 3
+          var % dimids(3)       = output_file % dimid_time
+          var % dimids(1)       = output_file % dimids_vel(2)
+          var % dimids(2)       = output_file % dimids_scl(3)
+          var % dimvarids(3)    = output_file % dimvarid_time
+          var % dimvarids(1)    = output_file % dimvarids_vel(2)
+          var % dimvarids(2)    = output_file % dimvarids_scl(3)
+          var % to_be_processed = boundary_variables_required
+          var % task            = "interpolate_3d"
+
+       CASE ( 'north v', 'south v' )
+          var % lod             = 2
+          var % ndim            = 3
+          var % dimids(3)       = output_file % dimid_time    !t
+          var % dimids(1)       = output_file % dimids_scl(1) !x
+          var % dimids(2)       = output_file % dimids_scl(3) !z
+          var % dimvarids(3)    = output_file % dimvarid_time
+          var % dimvarids(1)    = output_file % dimvarids_scl(1)
+          var % dimvarids(2)    = output_file % dimvarids_scl(3)
+          var % to_be_processed = boundary_variables_required
+          var % task            = "interpolate_3d"
+
+       CASE ( 'top v' )
+          var % lod             = 2
+          var % ndim            = 3
+          var % dimids(3)       = output_file % dimid_time    !t
+          var % dimids(1)       = output_file % dimids_scl(1) !x
+          var % dimids(2)       = output_file % dimids_vel(2) !z
+          var % dimvarids(3)    = output_file % dimvarid_time
+          var % dimvarids(1)    = output_file % dimvarids_scl(1)
+          var % dimvarids(2)    = output_file % dimvarids_vel(2)
+          var % to_be_processed = boundary_variables_required
+          var % task            = "interpolate_3d"
+
+       CASE ( 'left w', 'right w')
+          var % lod             = 2
+          var % ndim            = 3
+          var % dimids(3)       = output_file % dimid_time
+          var % dimids(1)       = output_file % dimids_scl(2)
+          var % dimids(2)       = output_file % dimids_vel(3)
+          var % dimvarids(3)    = output_file % dimvarid_time
+          var % dimvarids(1)    = output_file % dimvarids_scl(2)
+          var % dimvarids(2)    = output_file % dimvarids_vel(3)
+          var % to_be_processed = boundary_variables_required
+          var % task            = "interpolate_3d"
+
+       CASE ( 'north w', 'south w' )
+          var % lod             = 2
+          var % ndim            = 3
+          var % dimids(3)       = output_file % dimid_time    !t
+          var % dimids(1)       = output_file % dimids_scl(1) !x
+          var % dimids(2)       = output_file % dimids_vel(3) !z
+          var % dimvarids(3)    = output_file % dimvarid_time
+          var % dimvarids(1)    = output_file % dimvarids_scl(1)
+          var % dimvarids(2)    = output_file % dimvarids_vel(3)
+          var % to_be_processed = boundary_variables_required
+          var % task            = "interpolate_3d"
+
+       CASE ( 'time series' )
+          var % lod             = 0
+          var % ndim            = 1
+          var % dimids(1)       = output_file % dimid_time    !t
+          var % dimvarids(1)    = output_file % dimvarid_time
+          var % to_be_processed = .TRUE.
+          var % task            = "average scalar"
+
+       CASE ( 'profile' )
+          var % lod             = 2
+          var % ndim            = 2
+          var % dimids(2)       = output_file % dimid_time    !t
+          var % dimids(1)       = output_file % dimids_scl(3) !z
+          var % dimvarids(2)    = output_file % dimvarid_time
+          var % dimvarids(1)    = output_file % dimvarids_scl(3)
+          var % to_be_processed = .TRUE.
+          var % task            = "profile"
+
+       CASE DEFAULT
+           message = "Variable kind '" // TRIM(kind) // "' not recognized."
+           CALL abort ('init_nc_var', message)
+
+       END SELECT
+
+    END FUNCTION init_nc_var
+
+
+    SUBROUTINE fini_variables()
+
+       CALL report('fini_variables', 'Deallocating variable table')
+       DEALLOCATE( input_var_table )
+
+    END SUBROUTINE fini_variables
+
+
+    SUBROUTINE fini_io_groups()
+
+       CALL report('fini_io_groups', 'Deallocating IO groups')
+       DEALLOCATE( io_group_list )
+
+    END SUBROUTINE fini_io_groups
+
+
+    SUBROUTINE fini_file_lists()
+       
+       CALL report('fini_file_lists', 'Deallocating file lists')
+       DEALLOCATE( flow_files, soil_files, radiation_files, soil_moisture_files )
+
+    END SUBROUTINE fini_file_lists
+
+
+    SUBROUTINE input_file_list(start_date_string, start_hour, end_hour,        &
+                               step_hour, path, prefix, suffix, file_list)
+
+       CHARACTER (LEN=DATE), INTENT(IN) ::  start_date_string
+       CHARACTER (LEN=*),    INTENT(IN) ::  prefix, suffix, path
+       INTEGER,              INTENT(IN) ::  start_hour, end_hour, step_hour
+       CHARACTER(LEN=*), ALLOCATABLE, INTENT(INOUT) ::  file_list(:)
+
+       INTEGER             ::  number_of_files, hour, i
+       CHARACTER(LEN=DATE) ::  date_string
+
+       number_of_files = end_hour - start_hour + 1
+
+       ALLOCATE( file_list(number_of_files) )
+
+       DO i = 1, number_of_files
+          hour = start_hour + (i-1) * step_hour
+          date_string = add_hours_to(start_date_string, hour)
+
+          file_list(i) = TRIM(path) // TRIM(prefix) // TRIM(date_string) //    &
+                         TRIM(suffix) // '.nc'
+          message = "Set up input file name '" // TRIM(file_list(i)) //"'"
+          CALL report('input_file_list', message)
+       END DO
+
+    END SUBROUTINE input_file_list
+
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Carries out any physical conversion of the quantities in the given input
+!> buffer needed to obtain the quantity required by PALM-4U. For instance, 
+!> velocities are rotated to the PALM-4U coordinate system and the potential
+!> temperature is computed from the absolute temperature and pressure.
+!>
+!> Note, that the preprocessing does not include any grid change. The result
+!> array will match a COSMO-DE scalar array.
+!------------------------------------------------------------------------------!
+    SUBROUTINE preprocess(group, input_buffer, cosmo_grid, iter)
+
+       TYPE(io_group), INTENT(INOUT), TARGET       ::  group
+       TYPE(container), INTENT(INOUT), ALLOCATABLE ::  input_buffer(:)
+       TYPE(grid_definition), INTENT(IN)           ::  cosmo_grid
+       INTEGER, INTENT(IN)                         ::  iter
+       
+       REAL(dp), ALLOCATABLE                       ::  basic_state_pressure(:)
+       TYPE(container), ALLOCATABLE                ::  compute_buffer(:)
+       INTEGER                                     ::  hour, dt
+       INTEGER                                     ::  i, j, k
+       INTEGER                                     ::  nx, ny, nz
+       
+       input_buffer(:) % is_preprocessed = .FALSE.
+        
+       SELECT CASE( group % kind )
+       
+       CASE( 'velocities' )
+          ! Allocate a compute puffer with the same number of arrays as the input
+          ALLOCATE( compute_buffer( SIZE(input_buffer) ) )
+
+          ! Allocate u and v arrays with scalar dimensions
+          nx = SIZE(input_buffer(1) % array, 1)
+          ny = SIZE(input_buffer(1) % array, 2)
+          nz = SIZE(input_buffer(1) % array, 3)
+          ALLOCATE( compute_buffer(1) % array(nx, ny, nz) ) ! u buffer
+          ALLOCATE( compute_buffer(2) % array(nx, ny, nz) ) ! v buffer
+
+ CALL run_control('time', 'alloc')
+
+          ! interpolate U and V to centres
+          CALL centre_velocities( u_face = input_buffer(1) % array,            &
+                                  v_face = input_buffer(2) % array,            &
+                                  u_centre = compute_buffer(1) % array,        &
+                                  v_centre = compute_buffer(2) % array )
+          
+          ! rotate U and V to PALM-4U orientation and overwrite U and V with
+          ! rotated velocities
+          DO k = 1, nz
+          DO j = 2, ny
+          DO i = 2, nx
+             CALL uv2uvrot( urot = compute_buffer(1) % array(i,j,k),           &
+                            vrot = compute_buffer(2) % array(i,j,k),           &
+                            rlat = cosmo_grid % lat(j-1),                      &
+                            rlon = cosmo_grid % lon(i-1),                      &
+                            pollat = phi_cn,                                   &
+                            pollon = lambda_cn,                                &
+                            u = input_buffer(1) % array(i,j,k),                &
+                            v = input_buffer(2) % array(i,j,k) )
+          END DO
+          END DO
+          END DO
+          input_buffer(1) % array(1,:,:) = 0.0_dp
+          input_buffer(2) % array(1,:,:) = 0.0_dp
+          input_buffer(1) % array(:,1,:) = 0.0_dp
+          input_buffer(2) % array(:,1,:) = 0.0_dp
+
+          input_buffer(1:2) % is_preprocessed = .TRUE.
+ CALL run_control('time', 'comp')
+
+          DEALLOCATE( compute_buffer )
+ CALL run_control('time', 'alloc')
+
+          message = "Input buffers for group '" // TRIM(group % kind) // "'"//&
+             " preprocessed sucessfully."
+          CALL report('preprocess', message)
+       
+       CASE( 'temperature' ) ! P and T
+          nx = SIZE(input_buffer(1) % array, 1)
+          ny = SIZE(input_buffer(1) % array, 2)
+          nz = SIZE(input_buffer(1) % array, 3)
+
+          ! Compute absolute pressure if presure perturbation has been read in.
+          IF ( TRIM(group % in_var_list(2) % name) == 'PP' )  THEN
+             message = "Absolute pressure, P, not available, " //              &
+                       "computing from pressure preturbation PP."
+             CALL report('preprocess', message)
+
+             ALLOCATE( basic_state_pressure(1:nz) )
+ CALL run_control('time', 'alloc')
+
+             DO j = 1, ny
+             DO i = 1, nx
+
+                CALL get_basic_state(cosmo_grid % hfl(i,j,:), BETA, P_SL, T_SL,&
+                                     RD, G, basic_state_pressure)
+
+                input_buffer (2) % array(i,j,:) =                              &
+                   input_buffer (2) % array(i,j,:) + basic_state_pressure(:)
+
+             END DO
+             END DO
+ CALL run_control('time', 'comp')
+
+             DEALLOCATE( basic_state_pressure )
+ CALL run_control('time', 'alloc')
+
+             group % in_var_list(2) % name = 'P'
+
+          END IF
+
+          ! Convert absolute to potential temperature
+          input_buffer(1) % array(:,:,:) = input_buffer(1) % array(:,:,:) *    &
+             EXP( RD_PALM/CP_PALM * LOG( P_REF / input_buffer(2) % array(:,:,:) ))
+
+          input_buffer(1:2) % is_preprocessed = .TRUE.
+          message = "Input buffers for group '" // TRIM(group % kind) // "'"//&
+             " preprocessed sucessfully."
+          CALL report('preprocess', message)
+ CALL run_control('time', 'comp')
+       
+       CASE( 'scalar' ) ! S or W
+          input_buffer(:) % is_preprocessed = .TRUE.
+ CALL run_control('time', 'comp')
+
+       CASE( 'soil-temperature' ) ! 
+          
+          CALL fill_water_cells(soiltyp, input_buffer(1) % array, &
+                                SIZE(input_buffer(1) % array, 3), &
+                                FILL_ITERATIONS)
+          input_buffer(:) % is_preprocessed = .TRUE.
+ CALL run_control('time', 'comp')
+
+       CASE( 'soil-water' ) ! 
+
+          CALL fill_water_cells(soiltyp, input_buffer(1) % array, &
+                                SIZE(input_buffer(1) % array, 3), &
+                                FILL_ITERATIONS)
+
+          nx = SIZE(input_buffer(1) % array, 1)
+          ny = SIZE(input_buffer(1) % array, 2)
+          nz = SIZE(input_buffer(1) % array, 3)
+
+          DO k = 1, nz
+          DO j = 1, ny
+          DO i = 1, nx
+             input_buffer(1) % array(i,j,k) =                                  &
+                 input_buffer(1) % array(i,j,k) * d_depth_rho_inv(k)
+          END DO
+          END DO
+          END DO
+
+          message = "Converted soil water from [kg/m^2] to [m^3/m^3]"
+          CALL report('preprocess', message)
+
+          input_buffer(:) % is_preprocessed = .TRUE.
+ CALL run_control('time', 'comp')
+
+       CASE( 'surface' ) ! 
+          input_buffer(:) % is_preprocessed = .TRUE.
+ CALL run_control('time', 'comp')
+
+       CASE( 'accumulated' ) ! 
+          message = "De-accumulating '" // TRIM(group % in_var_list(1) % name) //&
+                    "' in iteration " // TRIM(str(iter)) 
+          CALL report('preprocess', message)
+
+          hour = iter - 1
+          dt = MODULO(hour, 3) + 1 ! averaging period
+          SELECT CASE(dt)
+
+          CASE(1)
+             !input has been accumulated over one hour. Leave as is
+             !input_buffer(1) % array(:,:,:) carrries one-hour integral
+
+          CASE(2)
+             !input has been accumulated over two hours. Subtract previous step
+             !input_buffer(1) % array(:,:,:) carrries one-hour integral
+             !input_buffer(2) % array(:,:,:) carrries two-hour integral
+             CALL deaverage(                                                   &
+                      avg_1 = input_buffer(1) % array(:,:,:), t1 = 1.0_dp,     &
+                      avg_2 = input_buffer(2) % array(:,:,:), t2 = 1.0_dp,     &
+                      avg_3 = input_buffer(1) % array(:,:,:), t3 = 1.0_dp )
+             !input_buffer(1) % array(:,:,:) carrries one-hour integral of second hour
+
+          CASE(3)
+             !input has been accumulated over three hours. Subtract previous step
+             !input_buffer(1) % array(:,:,:) carrries three-hour integral
+             !input_buffer(2) % array(:,:,:) still carrries two-hour integral
+             CALL deaverage(                                                   &
+                     avg_1 = input_buffer(2) % array(:,:,:), t1 = 1.0_dp,      &
+                     avg_2 = input_buffer(1) % array(:,:,:), t2 = 1.0_dp,      &
+                     avg_3 = input_buffer(1) % array(:,:,:), t3 = 1.0_dp )
+             !input_buffer(1) % array(:,:,:) carrries one-hour integral of third hourA
+
+          CASE DEFAULT
+             message = "Invalid averaging period '" // TRIM(str(dt)) // " hours"
+             CALL abort('preprocess', message)
+
+          END SELECT
+          input_buffer(:) % is_preprocessed = .TRUE.
+ CALL run_control('time', 'comp')
+
+       CASE( 'running average' ) ! 
+          message = "De-averaging '" // TRIM(group % in_var_list(1) % name) //   &
+                    "' in iteration " // TRIM(str(iter)) 
+          CALL report('preprocess', message)
+
+          hour = iter - 1
+          dt = MODULO(hour, 3) + 1 ! averaging period
+          SELECT CASE(dt)
+
+          CASE(1)
+             !input has been accumulated over one hour. Leave as is
+             !input_buffer(1) % array(:,:,:) carrries one-hour integral
+
+          CASE(2)
+             !input has been accumulated over two hours. Subtract previous step
+             !input_buffer(1) % array(:,:,:) carrries one-hour integral
+             !input_buffer(2) % array(:,:,:) carrries two-hour integral
+             CALL deaverage( input_buffer(1) % array(:,:,:), 1.0_dp,           &
+                             input_buffer(2) % array(:,:,:), 2.0_dp,           &
+                             input_buffer(1) % array(:,:,:), 1.0_dp)
+             !input_buffer(1) % array(:,:,:) carrries one-hour integral of second hour
+
+          CASE(3)
+             !input has been accumulated over three hours. Subtract previous step
+             !input_buffer(1) % array(:,:,:) carrries three-hour integral
+             !input_buffer(2) % array(:,:,:) still carrries two-hour integral
+             CALL deaverage( input_buffer(2) % array(:,:,:), 2.0_dp,           &
+                             input_buffer(1) % array(:,:,:), 3.0_dp,           &
+                             input_buffer(1) % array(:,:,:), 1.0_dp)
+             !input_buffer(1) % array(:,:,:) carrries one-hour integral of third hourA
+
+          CASE DEFAULT
+             message = "Invalid averaging period '" // TRIM(str(dt)) // " hours"
+             CALL abort('preprocess', message)
+
+          END SELECT
+          input_buffer(:) % is_preprocessed = .TRUE.
+
+       CASE DEFAULT
+          message = "Buffer kind '" // TRIM(group % kind) // "' is not supported."
+          CALL abort('prerpocess', message)
+
+       END SELECT
+ CALL run_control('time', 'comp')
+
+    END SUBROUTINE preprocess
+
+
+! Description:
+! ------------
+!> Computes average soil values in COSMO-DE water cells from neighbouring
+!> non-water cells. This is done as a preprocessing step for the COSMO-DE
+!> soil input arrays, which contain unphysical values for water cells.
+!>
+!> This routine computes the average of up to all nine neighbouring cells
+!> or keeps the original value, if not at least one non-water neightbour
+!> is available.
+!>
+!> By repeatedly applying this step, soil data can be extrapolated into
+!> 'water' regions occupying multiple cells, one cell per iteration.
+!> 
+!> Input parameters:
+!> -----------------
+!> soiltyp : 2d map of COSMO-DE soil types
+!> nz : number of layers in the COSMO-DE soil
+!> niter : number iterations
+!> 
+!> Output parameters:
+!> ------------------
+!> array : the soil array (i.e. water content or temperature)
+!------------------------------------------------------------------------------!
+    SUBROUTINE fill_water_cells(soiltyp, array, nz, niter)
+       INTEGER(hp), DIMENSION(:,:,:), INTENT(IN) :: soiltyp
+       REAL(dp), DIMENSION(:,:,:), INTENT(INOUT) :: array
+       INTEGER, INTENT(IN)                       :: nz, niter
+
+       REAL(dp), DIMENSION(nz)                   :: column
+       INTEGER(hp), DIMENSION(:,:), ALLOCATABLE  :: old_soiltyp, new_soiltyp
+       INTEGER                                   :: l, i, j, nx, ny, n_cells, ii, jj, iter
+       INTEGER, DIMENSION(8)                     :: di, dj
+
+       nx = SIZE(array, 1)
+       ny = SIZE(array, 2)
+       di = (/ -1, -1, -1, 0,  0,  1, 1, 1 /)
+       dj = (/ -1,  0,  1, -1, 1, -1, 0, 1 /)
+
+       ALLOCATE(old_soiltyp(SIZE(soiltyp,1), &
+                            SIZE(soiltyp,2) ))
+
+       ALLOCATE(new_soiltyp(SIZE(soiltyp,1), &
+                            SIZE(soiltyp,2) ))
+
+       old_soiltyp(:,:) = soiltyp(:,:,1)
+       new_soiltyp(:,:) = soiltyp(:,:,1)
+
+       DO iter = 1, niter
+
+          DO j = 1, ny
+          DO i = 1, nx
+          
+             IF (old_soiltyp(i,j) == WATER_ID)  THEN 
+
+                n_cells = 0
+                column(:) = 0.0_dp
+                DO l = 1, SIZE(di)
+
+                   ii = MIN(nx, MAX(1, i + di(l)))
+                   jj = MIN(ny, MAX(1, j + dj(l)))
+
+                   IF (old_soiltyp(ii,jj) .NE. WATER_ID)  THEN
+                      n_cells = n_cells + 1
+                      column(:) = column(:) + array(ii,jj,:)
+                   END IF
+
+                END DO
+
+                ! Overwrite if at least one non-water neighbour cell is available
+                IF (n_cells > 0)  THEN
+                   array(i,j,:) = column(:) / n_cells
+                   new_soiltyp(i,j) = 0
+                END IF
+
+             END IF
+
+          END DO
+          END DO
+
+          old_soiltyp(:,:) = new_soiltyp(:,:)
+
+       END DO
+
+       DEALLOCATE(old_soiltyp, new_soiltyp)
+
+    END SUBROUTINE fill_water_cells
+
+ END MODULE grid
Index: palm/trunk/UTIL/inifor/src/inifor.f90
===================================================================
--- palm/trunk/UTIL/inifor/src/inifor.f90	(revision 2696)
+++ palm/trunk/UTIL/inifor/src/inifor.f90	(revision 2696)
@@ -0,0 +1,298 @@
+!> @file src/inifor.f90
+!------------------------------------------------------------------------------!
+! This file is part of PALM/PALM-4U.
+!
+! PALM/PALM-4U is free software: you can redistribute it and/or modify it under 
+! the terms of the GNU General Public License as published by the Free Software
+! Foundation, either version 3 of the License, or (at your option) any later 
+! version.
+!
+! PALM/PALM-4U is distributed in the hope that it will be useful, but WITHOUT 
+! ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+! FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+!
+! You should have received a copy of the GNU General Public License along with
+! PALM. If not, see <http://www.gnu.org/licenses/>.
+!
+! Copyright 2017-2017 Leibniz Universitaet Hannover, Deutscher Wetterdienst
+! Offenbach
+!------------------------------------------------------------------------------!
+!
+! Current revisions:
+! -----------------
+! 
+! 
+! Former revisions:
+! -----------------
+! $Id$
+! Initial revision
+!
+! 
+!
+! Authors:
+! --------
+! @author Eckhard Kadasch
+!
+! Description:
+! ------------
+!> INIFOR is an interpolation tool for generating meteorological initialization
+!> and forcing data for the urban climate model PALM-4U. The required 
+!> meteorological fields are interpolated from output data of the mesoscale
+!> model COSMO-DE. This is the main program file.
+!------------------------------------------------------------------------------!
+ PROGRAM inifor
+
+    USE control
+    USE defs
+    USE grid,                                                                  &
+        ONLY:  setup_parameters, setup_grids, setup_variable_tables,           &
+               setup_io_groups, fini_grids, fini_variables, fini_io_groups,    &
+               fini_file_lists, preprocess,                                    &
+               output_file, io_group_list, output_var_table,                   &
+               cosmo_grid, palm_grid, nx, ny, nz, ug, vg, p0, mode,            &
+               imin, imax, jmin, jmax
+
+    USE io
+    USE transform,                                                             &
+        ONLY:  average_profile, average_2d, interpolate_2d, interpolate_3d
+    USE types
+    
+    IMPLICIT NONE
+    
+    INTEGER                                 ::  igroup
+    INTEGER                                 ::  ivar
+    INTEGER                                 ::  iter
+    REAL(dp), ALLOCATABLE, DIMENSION(:,:,:) ::  output_arr
+    TYPE(nc_var), POINTER                   ::  output_var
+    TYPE(io_group), POINTER                 ::  group
+    TYPE(container), ALLOCATABLE            ::  input_buffer(:)
+    
+!> \mainpage About INIFOR
+!>  ...
+!
+!------------------------------------------------------------------------------
+!- Section 1: Initialization
+!------------------------------------------------------------------------------
+ CALL run_control('init', 'void')
+
+    ! Initialize INIFOR's parameters from command-line interface and namelists
+    CALL setup_parameters()
+
+    ! Initialize all grids, including interpolation neighbours and weights
+    CALL setup_grids()
+ CALL run_control('time', 'init')
+
+    ! Initialize the netCDF output file and define dimensions
+    CALL setup_netcdf_dimensions(output_file, palm_grid)
+ CALL run_control('time', 'write')
+
+    ! Set up the tables containing the input and output variables and set
+    ! the corresponding netCDF dimensions for each output variable
+    CALL setup_variable_tables(mode)
+ CALL run_control('time', 'write')
+
+    ! Add the output variables to the netCDF output file
+    CALL setup_netcdf_variables(output_file % name, output_var_table)
+
+    CALL setup_io_groups() 
+ CALL run_control('time', 'init')
+
+!------------------------------------------------------------------------------
+!- Section 2: Main loop
+!------------------------------------------------------------------------------
+
+    DO igroup = 1, SIZE(io_group_list)
+
+       group => io_group_list(igroup)
+       IF ( group % to_be_processed )  THEN
+          
+          DO iter = 1, group % nt 
+
+!------------------------------------------------------------------------------
+!- Section 2.1: Read and preprocess input data
+!------------------------------------------------------------------------------
+             CALL read_input_variables(group, iter, input_buffer)
+ CALL run_control('time', 'read')
+
+             CALL preprocess(group, input_buffer, cosmo_grid, iter)
+ CALL run_control('time', 'comp')
+
+             IF ( .NOT. ALL(input_buffer(:) % is_preprocessed .AND. .TRUE.) )  THEN
+                message = "Input buffers for group '" // TRIM(group % kind) // &
+                   "' could not be preprocessed sucessfully."
+                CALL abort('main loop', message)
+             END IF
+
+!------------------------------------------------------------------------------
+!- Section 2.2: Interpolate each output variable of the group
+!------------------------------------------------------------------------------
+             DO ivar = 1, group % nv
+
+                output_var => group % out_vars( ivar )
+
+                IF ( output_var % to_be_processed .AND.                        &
+                     iter .LE. output_var % nt )  THEN
+
+                   message = "Processing '" // TRIM(output_var % name) //      &
+                             "' (" // TRIM(output_var % kind) //               &
+                             "), iteration " // TRIM(str(iter)) //" of " //    &
+                             TRIM(str(output_var % nt))
+                   CALL report('main loop', message)
+
+                   SELECT CASE( TRIM(output_var % task) )
+
+                   CASE( 'interpolate_2d' ) 
+                   
+                      SELECT CASE( TRIM(output_var % kind) )
+                       
+                      CASE( 'init soil' )
+
+                         ALLOCATE( output_arr( 0:output_var % grid % nx,       &
+                                               0:output_var % grid % ny,       &
+                                               SIZE(output_var % grid % depths) ) )
+
+                      CASE ( 'surface forcing' )
+
+                         ALLOCATE( output_arr( 0:output_var % grid % nx,       &
+                                               0:output_var % grid % ny, 1 ) )
+
+                      CASE DEFAULT
+
+                          CALL abort("main loop", 'Not a soil variable')
+
+                      END SELECT
+ CALL run_control('time', 'alloc')
+
+                      CALL interpolate_2d(input_buffer(output_var % input_id) % array(:,:,:), &
+                              output_arr(:,:,:), output_var % intermediate_grid, output_var)
+ CALL run_control('time', 'comp')
+
+
+                   CASE ( 'interpolate_3d' )
+
+                      ALLOCATE( output_arr( 0:output_var % grid % nx,          &
+                                            0:output_var % grid % ny,          &
+                                            0:output_var % grid % nz ) )
+
+ CALL run_control('time', 'alloc')
+                      CALL interpolate_3d(                                     &
+                         input_buffer(output_var % input_id) % array(:,:,:),   &
+                         output_arr(:,:,:),                                    &
+                         output_var % intermediate_grid,                       &
+                         output_var % grid)
+ CALL run_control('time', 'comp')
+
+                   CASE ( 'average profile' )
+
+                      ALLOCATE( output_arr( 0:output_var % grid % nx,          &
+                                            0:output_var % grid % ny,          &
+                                            0:output_var % grid % nz ) )
+ CALL run_control('time', 'alloc')
+                      
+
+                      CALL average_profile(                                    &
+                         input_buffer(output_var % input_id) % array(:,:,:),   &
+                         output_arr(:,:,:), imin, imax, jmin, jmax,            &
+                         output_var % intermediate_grid,                       &
+                         output_var % grid)
+ CALL run_control('time', 'comp')
+
+                   CASE ( 'average scalar' )
+
+                      ALLOCATE( output_arr(1,1,1) )
+ CALL run_control('time', 'alloc')
+                      output_arr(1,1,1) = p0
+ CALL run_control('time', 'comp')
+
+                   CASE ( 'profile' )
+                      
+                      ALLOCATE( output_arr( 1, 1, 0:nz ) )
+ CALL run_control('time', 'alloc')
+
+                      SELECT CASE (TRIM(output_var % name))
+
+                      CASE('ls_forcing_ug')
+                          output_arr(1, 1, :) = ug
+
+                      CASE('ls_forcing_vg')
+                          output_arr(1, 1, :) = vg
+
+                      CASE DEFAULT
+                          message = "'" // TRIM(output_var % name) //          &
+                             "' is not a valid '" // TRIM(output_var % kind) //&
+                             "' variable kind."
+                          CALL abort('main loop', message)
+                      END SELECT
+ CALL run_control('time', 'comp')
+
+                   CASE DEFAULT
+                      message = "Processing task '" // TRIM(output_var % task) //&
+                               "' not recognized."
+                      CALL abort('', message)
+
+                   END SELECT
+ CALL run_control('time', 'comp')
+
+!------------------------------------------------------------------------------
+!- Section 2.3: Write current time step of current variable
+!------------------------------------------------------------------------------
+                   message = "Writing variable '" // TRIM(output_var%name) // "'."
+                   CALL report('main loop', message)
+                   CALL update_output(output_var, output_arr, iter, output_file)
+ CALL run_control('time', 'write')
+
+                   DEALLOCATE(output_arr)
+ CALL run_control('time', 'alloc')
+
+                END IF
+
+             END DO ! ouput variables
+
+             IF ( group % kind == 'running average' .OR. &
+                  group % kind == 'accumulated' )  THEN
+                ! Keep input buffer around for averaged (radiation) and 
+                ! accumulated COSMO-DE quantities (precipitation).
+             ELSE
+                CALL report('main loop', 'Deallocating input buffer')
+                DEALLOCATE(input_buffer)
+             END IF
+ CALL run_control('time', 'alloc')
+
+          END DO ! time steps / input files 
+
+          IF (ALLOCATED(input_buffer))  THEN
+             CALL report('main loop', 'Deallocating input buffer')
+             DEALLOCATE(input_buffer)
+          END IF
+ CALL run_control('time', 'alloc')
+
+       ELSE 
+
+          message = "Skipping IO group '" // TRIM(group % kind) // "'"
+          IF ( ALLOCATED(group % in_var_list) )  THEN
+              message = TRIM(message) // " with input variable '" //           &
+              TRIM(group % in_var_list(1) % name) // "'."
+          END IF
+
+          CALL report('main loop', message)
+
+       END IF ! IO group % to_be_processed
+
+    END DO ! IO groups
+
+!------------------------------------------------------------------------------
+!- Section 3: Clean up.
+!------------------------------------------------------------------------------
+    CALL fini_file_lists()
+    CALL fini_io_groups()
+    CALL fini_variables()
+    !CALL fini_grids()
+ CALL run_control('time', 'alloc')
+ CALL run_control('report', 'void')
+
+    message = "Finished writing forcing file '" // TRIM(output_file % name) // &
+              "' successfully."
+    CALL report('main loop', message)
+
+
+ END PROGRAM inifor
Index: palm/trunk/UTIL/inifor/src/io.f90
===================================================================
--- palm/trunk/UTIL/inifor/src/io.f90	(revision 2696)
+++ palm/trunk/UTIL/inifor/src/io.f90	(revision 2696)
@@ -0,0 +1,808 @@
+!> @file src/io.f90
+!------------------------------------------------------------------------------!
+! This file is part of PALM/PALM-4U.
+!
+! PALM/PALM-4U is free software: you can redistribute it and/or modify it under 
+! the terms of the GNU General Public License as published by the Free Software
+! Foundation, either version 3 of the License, or (at your option) any later 
+! version.
+!
+! PALM/PALM-4U is distributed in the hope that it will be useful, but WITHOUT 
+! ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+! FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+!
+! You should have received a copy of the GNU General Public License along with
+! PALM. If not, see <http://www.gnu.org/licenses/>.
+!
+! Copyright 2017-2017 Leibniz Universitaet Hannover, Deutscher Wetterdienst
+! Offenbach
+!------------------------------------------------------------------------------!
+!
+! Current revisions:
+! -----------------
+! 
+! 
+! Former revisions:
+! -----------------
+! $Id$
+! Initial revision
+!
+! 
+!
+! Authors:
+! --------
+! @author Eckhard Kadasch
+!
+! Description:
+! ------------
+!> The io module contains the functions needed to read and write netCDF data in
+!> INIFOR.
+!------------------------------------------------------------------------------!
+ MODULE io
+
+    USE control
+    USE defs,                                                                  &
+        ONLY:  DATE, SNAME, PATH, PI, dp, TO_RADIANS, TO_DEGREES, VERSION
+    USE netcdf
+    USE types
+    USE util,                                                                  &
+        ONLY:  reverse, str
+
+    IMPLICIT NONE
+
+ CONTAINS
+
+    SUBROUTINE netcdf_define_variable(var, ncid)
+
+        TYPE(nc_var), INTENT(INOUT) ::  var
+        INTEGER, INTENT(IN)         ::  ncid
+
+        CALL check(nf90_def_var(ncid, var % name, NF90_FLOAT,       var % dimids(1:var % ndim), var % varid))
+        CALL check(nf90_put_att(ncid, var % varid, "standard_name", var % standard_name))
+        CALL check(nf90_put_att(ncid, var % varid, "long_name",     var % long_name))
+        CALL check(nf90_put_att(ncid, var % varid, "units",         var % units))
+        CALL check(nf90_put_att(ncid, var % varid, "lod",           var % lod))
+        CALL check(nf90_put_att(ncid, var % varid, "source",        var % source))
+        CALL check(nf90_put_att(ncid, var % varid, "_FillValue",    NF90_FILL_REAL))
+
+    END SUBROUTINE netcdf_define_variable
+    
+
+    SUBROUTINE netcdf_get_dimensions(var, ncid)
+
+        TYPE(nc_var), INTENT(INOUT) ::  var
+        INTEGER, INTENT(IN)         ::  ncid
+        INTEGER                     ::  i
+        CHARACTER(SNAME)            ::  null
+
+        ! Remember dimension lenghts for NetCDF writing routine
+        DO i = 1, var % ndim
+           CALL check(nf90_inquire_dimension(ncid, var % dimids(i), &
+                                             name = null, &
+                                             len  = var % dimlen(i)  ) )
+        END DO
+
+    END SUBROUTINE netcdf_get_dimensions
+
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> This routine initializes Inifor. This includes parsing command-line
+!> arguments, setting the names of the input and output file names as well as
+!> the name of the input namelist and, subsequently, reading in and setting grid
+!> parameters for the PALM-4U computational grid.
+!------------------------------------------------------------------------------!
+    SUBROUTINE parse_command_line_arguments( start_date, hhl_file,             &
+       soiltyp_file, static_driver_file, input_path, output_file,              &
+       namelist_file, ug, vg, p0, z0, mode )
+
+       CHARACTER(LEN=PATH), INTENT(INOUT)  ::  hhl_file, soiltyp_file,         &
+           static_driver_file, input_path, output_file, namelist_file
+       CHARACTER(LEN=SNAME), INTENT(INOUT) ::  mode
+       REAL(dp), INTENT(INOUT)             ::  ug, vg, p0, z0
+       CHARACTER(LEN=DATE), INTENT(INOUT)  ::  start_date
+
+       CHARACTER(LEN=PATH)     ::  option, arg
+       INTEGER                 ::  arg_count, i
+
+       arg_count = COMMAND_ARGUMENT_COUNT()
+       IF (arg_count .GT. 0)  THEN
+
+          ! Every option should have an argument.
+          IF ( MOD(arg_count, 2) .NE. 0 )  THEN
+             message = "Syntax error in command line."
+             CALL abort('parse_command_line_arguments', message)
+          END IF
+          
+          message = "The -clon and -clat command line options are depricated. " // &
+             "Please remove them form your inifor command and specify the " // &
+             "location of the PALM-4U origin either" // NEW_LINE(' ') // &
+             "   - by setting the namelist parameters 'origin_lon' and 'origin_lat, or'" // NEW_LINE(' ') // &
+             "   - by providing a static driver netCDF file via the -static command-line option."
+
+          ! Loop through option/argument pairs.
+          DO i = 1, arg_count, 2
+
+             CALL GET_COMMAND_ARGUMENT( i, option )
+             CALL GET_COMMAND_ARGUMENT( i+1, arg )
+
+             SELECT CASE( TRIM(option) )
+
+             CASE( '-date' )
+                start_date = TRIM(arg)
+
+             ! Elevation of the PALM-4U domain above sea level
+             CASE( '-z0' )
+                READ(arg, *) z0
+
+             ! surface pressure, at z0
+             CASE( '-p0' )
+                READ(arg, *) p0
+
+             ! surface pressure, at z0
+             CASE( '-ug' )
+                READ(arg, *) ug
+
+             ! surface pressure, at z0
+             CASE( '-vg' )
+                READ(arg, *) vg
+
+             ! Domain centre geographical longitude
+             CASE( '-clon' )
+                CALL abort('parse_command_line_arguments', message)          
+                !READ(arg, *) lambda_cg
+                !lambda_cg = lambda_cg * TO_RADIANS
+
+             ! Domain centre geographical latitude
+             CASE( '-clat' )
+                CALL abort('parse_command_line_arguments', message)          
+                !READ(arg, *) phi_cg
+                !phi_cg = phi_cg * TO_RADIANS
+
+             CASE( '-path' )
+                 input_path = TRIM(arg)
+
+             CASE( '-hhl' )
+                 hhl_file = TRIM(arg)
+
+             CASE( '-static' )
+                 static_driver_file = TRIM(arg)
+
+             CASE( '-soil' )
+                 soiltyp_file = TRIM(arg)
+
+             CASE( '-o' )
+                output_file = TRIM(arg)
+
+             CASE( '-n' )
+                namelist_file = TRIM(arg)
+
+             ! Initialization mode: 'profile' / 'volume'
+             CASE( '-mode' )
+                mode = TRIM(arg)
+
+                SELECT CASE( TRIM(mode) )
+
+                CASE( 'profile' )
+
+                CASE DEFAULT
+                   message = "Mode '" // TRIM(mode) // "' is not supported. " //&
+                             "Currently, '-mode profile' is the only supported option. " //&
+                             "Select this one or omit the -mode option entirely."
+                   CALL abort( 'parse_command_line_arguments', message ) 
+                END SELECT
+
+             CASE DEFAULT
+                message = "unknown option '" // TRIM(option(2:)) // "'."
+                CALL abort('parse_command_line_arguments', message)
+
+             END SELECT
+
+          END DO
+
+       ELSE
+            
+          message = "No arguments present, using default input and output files"
+          CALL report('parse_command_line_arguments', message)
+
+       END IF
+
+   END SUBROUTINE parse_command_line_arguments
+
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> This routine initializes the Inifor output file, i.e. the PALM-4U
+!> initializing and forcing data as a NetCDF file.
+!> 
+!> Besides writing metadata, such as global attributes, coordinates, variables,
+!> in the NetCDF file, various NetCDF IDs are saved for later, when Inifor
+!> writes the actual data.
+!------------------------------------------------------------------------------!
+    SUBROUTINE setup_netcdf_dimensions(output_file, palm_grid)
+
+       TYPE(nc_file), INTENT(INOUT)      ::  output_file
+       TYPE(grid_definition), INTENT(IN) ::  palm_grid
+
+       CHARACTER (LEN=SNAME) ::  date
+       INTEGER               ::  ncid, nx, ny, nz, nt, dimids(3), dimvarids(3)
+       REAL(dp)              ::  z0
+
+       ! Create the NetCDF file. NF90_CLOBBER selects overwrite mode.
+       CALL check(nf90_create(TRIM(output_file % name), OR(NF90_CLOBBER, NF90_HDF5), ncid))
+
+!
+!------------------------------------------------------------------------------
+!- Section 1: Write global NetCDF attributes
+!------------------------------------------------------------------------------
+       CALL date_and_time(date)
+       CALL check(nf90_put_att(ncid, NF90_GLOBAL, 'title',          'PALM input file for scenario ...'))
+       CALL check(nf90_put_att(ncid, NF90_GLOBAL, 'institution',    'Deutscher Wetterdienst, Offenbach'))
+       CALL check(nf90_put_att(ncid, NF90_GLOBAL, 'author',         'Eckhard Kadasch, eckhard.kadasch@dwd.de'))
+       CALL check(nf90_put_att(ncid, NF90_GLOBAL, 'history',        'Created on '//date))
+       CALL check(nf90_put_att(ncid, NF90_GLOBAL, 'references',     '--'))
+       CALL check(nf90_put_att(ncid, NF90_GLOBAL, 'comment',        '--'))
+       CALL check(nf90_put_att(ncid, NF90_GLOBAL, 'origin_lat',     '--'))
+       CALL check(nf90_put_att(ncid, NF90_GLOBAL, 'origin_lon',     '--'))
+       CALL check(nf90_put_att(ncid, NF90_GLOBAL, 'inifor_version', TRIM(VERSION)))
+       CALL check(nf90_put_att(ncid, NF90_GLOBAL, 'palm_version',   '--'))
+
+!
+!------------------------------------------------------------------------------
+!- Section 2: Define NetCDF dimensions and coordinates
+!------------------------------------------------------------------------------
+       nt = SIZE(output_file % time)
+       nx = palm_grid % nx
+       ny = palm_grid % ny
+       nz = palm_grid % nz
+       z0 = palm_grid % z0
+
+!
+!------------------------------------------------------------------------------
+!- Section 2a: Define dimensions for cell centers (scalars in soil and atmosph.)
+!------------------------------------------------------------------------------
+       dimids = (/0, 0, 0/) ! reset dimids
+          CALL check( nf90_def_dim(ncid, "x", nx+1, dimids(1)) )
+          CALL check( nf90_def_dim(ncid, "y", ny+1, dimids(2)) )
+          CALL check( nf90_def_dim(ncid, "z", nz+1, dimids(3)) )
+          output_file % dimids_scl = dimids ! save dimids for later
+
+       dimvarids = (/0, 0, 0/) ! reset dimvarids
+          CALL check(nf90_def_var(ncid, "x", NF90_FLOAT, dimids(1), dimvarids(1)))
+          CALL check(nf90_put_att(ncid, dimvarids(1), "standard_name", "x coordinate of cell centers"))
+          CALL check(nf90_put_att(ncid, dimvarids(1), "units", "m"))
+
+          CALL check(nf90_def_var(ncid, "y", NF90_FLOAT, dimids(2), dimvarids(2)))
+          CALL check(nf90_put_att(ncid, dimvarids(2), "standard_name", "y coordinate of cell centers"))
+          CALL check(nf90_put_att(ncid, dimvarids(2), "units", "m"))
+
+          CALL check(nf90_def_var(ncid, "z", NF90_FLOAT, dimids(3), dimvarids(3)))
+          CALL check(nf90_put_att(ncid, dimvarids(3), "standard_name", "z coordinate of cell centers"))
+          CALL check(nf90_put_att(ncid, dimvarids(3), "units", "m"))
+       output_file % dimvarids_scl = dimvarids ! save dimvarids for later
+
+       ! overwrite third dimid with the one of depth
+       CALL check(nf90_def_dim(ncid, "depth", SIZE(palm_grid % depths), dimids(3)) )
+       output_file % dimids_soil = dimids ! save dimids for later
+
+       ! overwrite third dimvarid with the one of depth
+       CALL check(nf90_def_var(ncid, "depth", NF90_FLOAT, output_file % dimids_soil(3), dimvarids(3)))
+       CALL check(nf90_put_att(ncid, dimvarids(3), "standard_name", "depth_below_land"))
+       CALL check(nf90_put_att(ncid, dimvarids(3), "positive", "down"))
+       CALL check(nf90_put_att(ncid, dimvarids(3), "units", "m"))
+       output_file % dimvarids_soil = dimvarids ! save dimvarids for later
+!
+!------------------------------------------------------------------------------
+!- Section 2b: Define dimensions for cell faces/velocities
+!------------------------------------------------------------------------------
+       dimids = (/0, 0, 0/) ! reset dimids
+          CALL check(nf90_def_dim(ncid, "xu", nx, dimids(1)) )
+          CALL check(nf90_def_dim(ncid, "yv", ny, dimids(2)) )
+          CALL check(nf90_def_dim(ncid, "zw", nz, dimids(3)) )
+       output_file % dimids_vel = dimids ! save dimids for later
+
+       dimvarids = (/0, 0, 0/) ! reset dimvarids
+          CALL check(nf90_def_var(ncid, "xu", NF90_FLOAT, dimids(1), dimvarids(1)))
+          CALL check(nf90_put_att(ncid, dimvarids(1), "standard_name", "x coordinate of cell faces"))
+          CALL check(nf90_put_att(ncid, dimvarids(1), "units", "m"))
+
+          CALL check(nf90_def_var(ncid, "yv", NF90_FLOAT, dimids(2), dimvarids(2)))
+          CALL check(nf90_put_att(ncid, dimvarids(2), "standard_name", "y coordinate of cell faces"))
+          CALL check(nf90_put_att(ncid, dimvarids(2), "units", "m"))
+
+          CALL check(nf90_def_var(ncid, "zw", NF90_FLOAT, dimids(3), dimvarids(3)))
+          CALL check(nf90_put_att(ncid, dimvarids(3), "standard_name", "z coordinate of cell faces"))
+          CALL check(nf90_put_att(ncid, dimvarids(3), "units", "m"))
+       output_file % dimvarids_vel = dimvarids ! save dimvarids for later
+
+!
+!------------------------------------------------------------------------------
+!- Section 2c: Define time dimension
+!------------------------------------------------------------------------------
+       CALL check(nf90_def_dim(ncid, "time", nt, output_file % dimid_time) )
+       CALL check(nf90_def_var(ncid, "time", NF90_FLOAT, &
+                                             output_file % dimid_time, &
+                                             output_file % dimvarid_time))
+       CALL check(nf90_put_att(ncid, output_file % dimvarid_time, "standard_name", "time"))
+       CALL check(nf90_put_att(ncid, output_file % dimvarid_time, "long_name", "time"))
+       CALL check(nf90_put_att(ncid, output_file % dimvarid_time, "units", "seconds since..."))
+
+       CALL check(nf90_enddef(ncid))
+
+!
+!------------------------------------------------------------------------------
+!- Section 3: Write grid coordinates
+!------------------------------------------------------------------------------
+       CALL check(nf90_put_var(ncid, output_file % dimvarids_scl(1), palm_grid%x))
+       CALL check(nf90_put_var(ncid, output_file % dimvarids_scl(2), palm_grid%y))
+       CALL check(nf90_put_var(ncid, output_file % dimvarids_scl(3), palm_grid%z))
+
+       CALL check(nf90_put_var(ncid, output_file % dimvarids_vel(1), palm_grid%xu))
+       CALL check(nf90_put_var(ncid, output_file % dimvarids_vel(2), palm_grid%yv))
+       CALL check(nf90_put_var(ncid, output_file % dimvarids_vel(3), palm_grid%zw))
+
+       ! TODO Read in soil depths from input file before this.
+       CALL check(nf90_put_var(ncid, output_file % dimvarids_soil(3), palm_grid%depths))
+
+       ! Write time vector
+       CALL check(nf90_put_var(ncid, output_file % dimvarid_time, output_file % time))
+
+       ! Close the file
+       CALL check(nf90_close(ncid))
+
+    END SUBROUTINE setup_netcdf_dimensions
+
+
+    SUBROUTINE setup_netcdf_variables(filename, output_variable_table)
+
+       CHARACTER (LEN=*), INTENT(IN)        ::  filename
+       TYPE(nc_var), INTENT(INOUT), TARGET  ::  output_variable_table(:)
+       TYPE(nc_var), POINTER                ::  var
+       INTEGER                              ::  i, ncid
+
+       message = "Initializing PALM-4U forcing file '" // TRIM(filename) // "'."
+       CALL report('setup_netcdf_variables', message)
+
+       CALL check(nf90_open(TRIM(filename), NF90_WRITE, ncid))
+       CALL check(nf90_redef(ncid))
+
+       DO i = 1, SIZE(output_variable_table)
+
+          var => output_variable_table(i)
+
+          IF ( var % to_be_processed )  THEN
+             message = "Defining variable #" // TRIM(str(i)) // " '" // TRIM(var%name) // "'."
+             CALL report('setup_netcdf_variables', message)
+
+             CALL netcdf_define_variable(var, ncid)
+             CALL netcdf_get_dimensions(var, ncid)
+          END IF
+           
+       END DO
+
+       CALL check(nf90_enddef(ncid))
+       CALL check(nf90_close(ncid))
+
+       message = "Forcing file '" // TRIM(filename) // "' initialized successfully."
+       CALL report('setup_netcdf_variables', message)
+
+    END SUBROUTINE setup_netcdf_variables
+
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> This routine reads and returns all input variables of the given IO group
+!> It accomodates the data by allocating a container variable that represents a
+!> list of arrays of the same length as the groups variable list. (This list
+!> will typically contain one or two items.) After the container, its members
+!> are allocated one by one with the appropriate, possibly different,
+!> dimensions.
+!>
+!> The 'group' is an INTENT(INOUT) variable so that 'get_netcdf_variable()' can
+!> record netCDF IDs in the 'in_var_list()' member variable.
+!------------------------------------------------------------------------------!
+    SUBROUTINE read_input_variables(group, iter, buffer)
+       TYPE(io_group), INTENT(INOUT), TARGET       ::  group
+       INTEGER, INTENT(IN)                         ::  iter
+       TYPE(container), ALLOCATABLE, INTENT(INOUT) ::  buffer(:)
+       INTEGER                                     ::  hour, buf_id
+       TYPE(nc_var), POINTER                       ::  input_var
+       CHARACTER(LEN=PATH), POINTER                ::  input_file
+       INTEGER                                     ::  ivar, nbuffers
+
+       message = "Reading data for I/O group '" // TRIM(group % in_var_list(1) % name) // "'."
+       CALL report('read_input_variables', message)
+
+       input_file => group % in_files(iter)
+
+!
+!------------------------------------------------------------------------------
+!- Section 1: Load input buffers for accumulated variables
+!------------------------------------------------------------------------------
+       IF (group % kind == 'running average' .OR.                              &
+           group % kind == 'accumulated')  THEN ! radiation budgets, precipitation
+
+          IF (SIZE(group % in_var_list) .GT. 1 ) THEN
+             message = "I/O groups may not contain more than one " // & 
+                       "accumulated variable. Group '" // TRIM(group % kind) //&
+                       "' contains " //                                        &
+                       TRIM( str(SIZE(group % in_var_list)) ) // "."
+             CALL abort('read_input_variables | accumulation', message)
+          END IF
+
+          ! use two buffer arrays
+          nbuffers = 2
+          IF ( .NOT. ALLOCATED( buffer ) )  ALLOCATE( buffer(nbuffers) )
+
+          ! chose correct buffer array
+          hour = iter - 1! hour of the day
+          buf_id = select_buffer(hour)
+
+ CALL run_control('time', 'read')
+          IF ( ALLOCATED(buffer(buf_id) % array) )  DEALLOCATE(buffer(buf_id) % array)
+ CALL run_control('time', 'alloc')
+
+          input_var => group % in_var_list(1)
+          buffer(buf_id) % array = get_netcdf_variable( input_file, input_var )  
+          CALL report('read_input_variables', "Read accumulated " // TRIM(group % in_var_list(1) % name)) 
+
+          IF ( input_var % is_upside_down )  CALL reverse(buffer(buf_id) % array)
+ CALL run_control('time', 'comp')
+          
+!------------------------------------------------------------------------------
+!- Section 2: Load input buffers for normal I/O groups
+!------------------------------------------------------------------------------
+       ELSE
+
+          nbuffers = SIZE( group % in_var_list )
+          ALLOCATE( buffer(nbuffers) )
+ CALL run_control('time', 'alloc')
+          
+          DO ivar = 1, nbuffers
+
+             input_var => group % in_var_list(ivar)
+
+             ! Check wheather P or PP is present in input file
+             IF (input_var % name == 'P')  THEN
+                input_var % name = TRIM( get_pressure_var(input_file) )
+ CALL run_control('time', 'read')
+             END IF
+
+             buffer(ivar) % array = get_netcdf_variable( input_file, input_var )  
+
+             IF ( input_var % is_upside_down )  CALL reverse(buffer(ivar) % array)
+ CALL run_control('time', 'comp')
+
+          END DO
+       END IF
+
+    END SUBROUTINE read_input_variables
+
+
+    INTEGER FUNCTION select_buffer(hour)
+       INTEGER, INTENT(IN) ::  hour
+       INTEGER             ::  step
+
+       select_buffer = 0
+       step = MODULO(hour, 3) + 1
+
+       SELECT CASE(step)
+       CASE(1, 3)
+           select_buffer = 1
+       CASE(2)
+           select_buffer = 2
+       CASE DEFAULT
+           message = "Invalid step '" // TRIM(str(step))
+           CALL abort('select_buffer', message)
+       END SELECT
+    END FUNCTION select_buffer
+
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Checks if the input_file contains the absolute pressure, 'P', or the pressure
+!> perturbation, 'PP', and returns the appropriate string.
+!------------------------------------------------------------------------------!
+    CHARACTER(LEN=2) FUNCTION get_pressure_var(input_file) RESULT(var)
+       CHARACTER(LEN=*) ::  input_file
+       INTEGER          ::  ncid, varid
+
+       CALL check(nf90_open( TRIM(input_file), NF90_NOWRITE, ncid ))
+       IF ( nf90_inq_varid( ncid, 'P', varid ) .EQ. NF90_NOERR )  THEN
+
+          var = 'P'
+
+       ELSE IF ( nf90_inq_varid( ncid, 'PP', varid ) .EQ. NF90_NOERR )  THEN
+
+          var = 'PP'
+          CALL report('get_pressure_var', 'Using PP instead of P')
+
+       ELSE
+
+          message = "Failed to read '" // TRIM(var) // &
+                    "' from file '" // TRIM(input_file) // "'."
+          CALL abort('get_pressure_var', message)
+
+       END IF
+
+       CALL check(nf90_close(ncid))
+
+    END FUNCTION get_pressure_var
+
+
+    FUNCTION get_netcdf_attribute(filename, attribute) RESULT(attribute_value)
+
+       CHARACTER(LEN=*), INTENT(IN) ::  filename, attribute
+       REAL(dp)                     ::  attribute_value
+
+       INTEGER                      :: ncid
+
+       IF ( nf90_open( TRIM(filename), NF90_NOWRITE, ncid ) == NF90_NOERR )  THEN
+
+          CALL check(nf90_get_att(ncid, NF90_GLOBAL, TRIM(attribute), attribute_value))
+
+       ELSE
+
+          message = "Failed to read '" // TRIM(attribute) // &
+                    "' from file '" // TRIM(filename) // "'."
+          CALL abort('get_netcdf_attribute', message)
+
+       END IF
+
+    END FUNCTION get_netcdf_attribute
+
+
+
+    FUNCTION get_netcdf_variable(in_file, in_var) RESULT(buffer)
+
+       CHARACTER(LEN=PATH), INTENT(IN)      ::  in_file
+       TYPE(nc_var), INTENT(INOUT)          ::  in_var
+       REAL(dp), ALLOCATABLE                ::  buffer(:,:,:)
+       INTEGER                              ::  i, ncid, start(3)
+
+
+       ! Read in_var NetCDF attributes
+       IF ( nf90_open( TRIM(in_file), NF90_NOWRITE, ncid ) .EQ. NF90_NOERR .AND. &
+            nf90_inq_varid( ncid, in_var % name, in_var % varid ) .EQ. NF90_NOERR )  THEN
+
+          CALL check(nf90_get_att(ncid, in_var % varid, "long_name", in_var % long_name))
+          CALL check(nf90_get_att(ncid, in_var % varid, "units", in_var % units))
+
+          ! Read in_var NetCDF dimensions
+          CALL check(nf90_inquire_variable( ncid, in_var % varid,              &
+                                            ndims  = in_var % ndim,            &
+                                            dimids = in_var % dimids ))
+                                        
+          DO i = 1, in_var % ndim
+             CALL check(nf90_inquire_dimension( ncid, in_var % dimids(i),      &
+                                                name = in_var % dimname(i),    &
+                                                len  = in_var % dimlen(i) ))
+          END DO
+
+          start = (/ 1, 1, 1 /)
+          IF ( TRIM(in_var % name) .EQ. 'T_SO' )  THEN
+             ! Skip depth = 0.0 for T_SO and reduce number of depths from 9 to 8
+             in_var % dimlen(3) = in_var % dimlen(3) - 1
+
+             ! Start reading from second level, e.g. depth = 0.005 instead of 0.0
+             start(3) = 2
+          END IF
+
+          SELECT CASE(in_var % ndim)
+
+          CASE (2)
+
+             ALLOCATE( buffer( in_var % dimlen(1),                             &
+                               in_var % dimlen(2),                             &
+                               1 ) )
+
+          CASE (3)
+
+             ALLOCATE( buffer( in_var % dimlen(1),                             &
+                               in_var % dimlen(2),                             &
+                               in_var % dimlen(3) ) )
+          CASE (4)
+
+             ALLOCATE( buffer( in_var % dimlen(1),                             &
+                               in_var % dimlen(2),                             &
+                               in_var % dimlen(3) ) )
+          CASE DEFAULT
+
+             message = "Failed reading NetCDF variable " //                    &
+                TRIM(in_var % name) // " with " // TRIM(str(in_var%ndim)) //   &
+                " dimensions because only two- and and three-dimensional" //   &
+                " variables are supported."
+             CALL abort('get_netcdf_variable', message) 
+
+          END SELECT
+ CALL run_control('time', 'alloc')
+          
+          ! TODO: Check for matching dimensions of buffer and var
+          CALL check(nf90_get_var( ncid, in_var % varid, buffer,               &
+                                   start = start,                              &
+                                   count = in_var % dimlen(1:3) ) )
+
+ CALL run_control('time', 'read')
+       ELSE
+
+          message = "Failed to read '" // TRIM(in_var % name) // &
+             "' from file '" // TRIM(in_file) // "'."
+          CALL report('get_netcdf_variable', message)
+
+       END IF
+
+       CALL check(nf90_close(ncid))
+
+ CALL run_control('time', 'read')
+
+    END FUNCTION get_netcdf_variable
+
+
+    SUBROUTINE update_output(var, array, iter, output_file)
+       TYPE(nc_var), INTENT(IN)  ::  var
+       REAL(dp), INTENT(IN)      ::  array(:,:,:)
+       INTEGER, INTENT(IN)       ::  iter
+       TYPE(nc_file), INTENT(IN) ::  output_file
+
+       INTEGER ::  ncid, ndim, start(4), count(4)
+       LOGICAL ::  var_is_time_dependent
+
+       var_is_time_dependent = (                                               &
+          var % dimids( var % ndim ) == output_file % dimid_time               &
+       )
+
+       ! Skip time dimension for output
+       IF ( var_is_time_dependent )  THEN
+          ndim = var % ndim - 1
+       ELSE 
+          ndim = var % ndim
+       END IF
+
+       start(:)      = (/1,1,1,1/)
+       start(ndim+1) = iter
+       count(1:ndim) = var%dimlen(1:ndim)
+
+       CALL check(nf90_open(output_file % name, NF90_WRITE, ncid))
+
+       ! Reduce dimension of output array according to variable kind
+       SELECT CASE (TRIM(var % kind))
+       
+       CASE ( 'init scalar profile', 'init u profile', 'init v profile',       &
+              'init w profile' )
+
+          CALL check(nf90_put_var( ncid, var%varid, array(1,1,:) ) )
+
+       CASE ( 'init soil', 'init scalar', 'init u', 'init v', 'init w' )
+
+          CALL check(nf90_put_var( ncid, var%varid, array(:,:,:) ) )
+
+       CASE( 'left scalar', 'right scalar', 'left w', 'right w' ) 
+
+          CALL check(nf90_put_var( ncid, var%varid, array(1,:,:),              &
+                                   start=start(1:ndim+1),                      &
+                                   count=count(1:ndim) ) )
+          
+
+          IF (.NOT. SIZE(array, 2) .EQ. var % dimlen(1))  THEN
+             PRINT *, "inifor: update_output: Dimension ", 1, " of variable ", &
+                 TRIM(var % name), " (", var % dimlen(1),                      &
+                 ") does not match the dimension of the output array (",       &
+                 SIZE(array, 2), ")."
+             STOP
+          END IF
+          
+
+       CASE( 'north scalar', 'south scalar', 'north w', 'south w' )
+
+          CALL check(nf90_put_var( ncid, var%varid, array(:,1,:),              &
+                                   start=start(1:ndim+1),                      &
+                                   count=count(1:ndim) ) )
+          
+
+       CASE( 'surface forcing', 'top scalar', 'top w' )
+
+          CALL check(nf90_put_var( ncid, var%varid, array(:,:,1),              &
+                                   start=start(1:ndim+1),                      &
+                                   count=count(1:ndim) ) )
+          
+       CASE ( 'left u', 'right u', 'left v', 'right v' )
+
+          CALL check(nf90_put_var( ncid, var%varid, array(1,:,:),              &
+                                   start=start(1:ndim+1),                      &
+                                   count=count(1:ndim) ) )
+
+       CASE ( 'north u', 'south u', 'north v', 'south v' )
+
+          CALL check(nf90_put_var( ncid, var%varid, array(:,1,:),              &
+                                   start=start(1:ndim+1),                      &
+                                   count=count(1:ndim) ) )
+
+       CASE ( 'top u', 'top v' )
+
+          CALL check(nf90_put_var( ncid, var%varid, array(:,:,1),              &
+                                   start=start(1:ndim+1),                      &
+                                   count=count(1:ndim) ) )
+
+       CASE ( 'time series' )
+
+          CALL check(nf90_put_var( ncid, var%varid, array(1,1,1),              &
+                                   start=start(1:ndim+1) ) )
+
+       CASE ( 'profile' )
+
+          CALL check(nf90_put_var( ncid, var%varid, array(1,1,:),              &
+                                   start=start(1:ndim+1),                      &
+                                   count=count(1:ndim) ) )
+
+       CASE DEFAULT
+
+           message = "Variable kind '" // TRIM(var % kind) //                  &
+                    "' not recognized."
+           CALL abort('update_output', message)
+
+       END SELECT
+
+       CALL check(nf90_close(ncid))
+
+    END SUBROUTINE update_output
+
+
+    SUBROUTINE write_netcdf_variable_2d(var, iter, output_file, buffer)
+       TYPE(nc_var), INTENT(IN)          ::  var
+       INTEGER, INTENT(IN)               ::  iter
+       TYPE(nc_file), INTENT(IN)         ::  output_file
+       REAL(dp), INTENT(IN)              ::  buffer(:,:,:)
+
+       INTEGER ::  ncid, ndim_out, start(4), count(4)
+       LOGICAL ::  last_dimension_is_time
+
+       ndim_out = var % ndim
+
+       last_dimension_is_time = var % dimids( var % ndim ) == output_file % dimid_time
+       IF ( last_dimension_is_time )  THEN
+          ndim_out = ndim_out - 1
+       END IF
+
+       start(:)      = (/1,1,1,iter/)
+       count(1:ndim_out) = var%dimlen(1:ndim_out)
+
+       CALL check(nf90_open(output_file % name, NF90_WRITE, ncid))
+
+       IF (TRIM(var % kind) .EQ. 'left/right scalar')  THEN
+
+          CALL check(nf90_put_var( ncid, var%varid, buffer(1,:,:) ) )
+
+       ELSE IF (TRIM(var % kind) .EQ. 'north/south scalar')  THEN
+
+          CALL check(nf90_put_var( ncid, var%varid, buffer(:,1,:) ) )
+
+       ELSE IF (TRIM(var % kind) .EQ. 'top scalar')  THEN
+
+          CALL check(nf90_put_var( ncid, var%varid, buffer(:,:,1) ) )
+       ELSE
+
+          CALL check(nf90_put_var( ncid, var%varid, buffer ) )
+
+       END IF
+       CALL check(nf90_close(ncid))
+
+    END SUBROUTINE write_netcdf_variable_2d
+
+
+    SUBROUTINE check(status)
+
+       INTEGER, INTENT(IN) ::  status
+
+       IF (status /= nf90_noerr)  THEN
+          message = "NetCDF API call failed with error: " //                     &
+                    TRIM( nf90_strerror(status) )
+          CALL abort('io.check', message) 
+       END IF
+
+    END SUBROUTINE check
+
+ END MODULE io
Index: palm/trunk/UTIL/inifor/src/transform.f90
===================================================================
--- palm/trunk/UTIL/inifor/src/transform.f90	(revision 2696)
+++ palm/trunk/UTIL/inifor/src/transform.f90	(revision 2696)
@@ -0,0 +1,922 @@
+!> @file src/transform.f90
+!------------------------------------------------------------------------------!
+! This file is part of PALM/PALM-4U.
+!
+! PALM/PALM-4U is free software: you can redistribute it and/or modify it under 
+! the terms of the GNU General Public License as published by the Free Software
+! Foundation, either version 3 of the License, or (at your option) any later 
+! version.
+!
+! PALM/PALM-4U is distributed in the hope that it will be useful, but WITHOUT 
+! ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+! FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+!
+! You should have received a copy of the GNU General Public License along with
+! PALM. If not, see <http://www.gnu.org/licenses/>.
+!
+! Copyright 2017-2017 Leibniz Universitaet Hannover, Deutscher Wetterdienst
+! Offenbach
+!------------------------------------------------------------------------------!
+!
+! Current revisions:
+! -----------------
+! 
+! 
+! Former revisions:
+! -----------------
+! $Id$
+! Initial revision
+!
+! 
+!
+! Authors:
+! --------
+! @author Eckhard Kadasch
+!
+! Description:
+! ------------
+!> The transform module provides INIFOR's low-level transformation and
+!> interpolation routines. The rotated-pole transformation routines phirot2phi,
+!> phi2phirot, rlarot2rla, rla2rlarot, uv2uvrot, and uvrot2uv are adapted from
+!> int2lm's utility routines.
+!------------------------------------------------------------------------------!
+ MODULE transform
+
+    USE control
+    USE defs,                                                                  &
+        ONLY: TO_DEGREES, TO_RADIANS, PI, dp
+    USE types
+    USE util,                                                                  &       
+        ONLY: real_to_str, str
+
+    IMPLICIT NONE
+
+ CONTAINS
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Interpolates linearly in the vertical direction in very column (i,j) of the
+!> output array outvar(i,j,:) using values of the source array invar. In cells
+!> that are outside the COSMO-DE domain, indicated by negative interpolation
+!> weights, extrapolate constantly from the cell above.
+!> 
+!> Input parameters:
+!> -----------------
+!> invar : Array of source data
+!> 
+!> outgrid % kk : Array of vertical neighbour indices. kk(i,j,k,:) contain the
+!>     indices of the two vertical neighbors of PALM-4U point (i,j,k) on the
+!>     input grid corresponding to the source data invar.
+!> 
+!> outgrid % w_verti : Array of weights for vertical linear interpolation
+!>     corresponding to neighbour points indexed by kk.
+!>
+!> Output papameters:
+!> ------------------
+!> outvar : Array of interpolated data
+!------------------------------------------------------------------------------!
+    SUBROUTINE interpolate_1d(in_arr, out_arr, outgrid)
+       TYPE(grid_definition), INTENT(IN) ::  outgrid
+       REAL(dp), INTENT(IN)              ::  in_arr(0:,0:,0:)
+       REAL(dp), INTENT(OUT)             ::  out_arr(0:,0:,0:)
+
+       INTEGER :: i, j, k, l, nx, ny, nz
+
+       nx = UBOUND(out_arr, 1)
+       ny = UBOUND(out_arr, 2)
+       nz = UBOUND(out_arr, 3)
+
+       DO j = 0, ny
+       DO i = 0, nx
+       DO k = nz, 0, -1
+
+          ! TODO: Remove IF clause and extrapolate based on a critical vertical
+          ! TODO: index marking the lower bound of COSMO-DE data coverage.
+          ! Check for negative interpolation weights indicating grid points 
+          ! below COSMO-DE domain and extrapolate from the top in such cells.
+          IF (outgrid % w_verti(i,j,k,1) < -1.0_dp .AND. k < nz)  THEN
+             out_arr(i,j,k) = out_arr(i,j,k+1)
+          ELSE
+             out_arr(i,j,k) = 0.0_dp
+             DO l = 1, 2
+                out_arr(i,j,k) = out_arr(i,j,k) +                                 &
+                    outgrid % w_verti(i,j,k,l) *                                  &
+                    in_arr(i,j,outgrid % kk(i,j,k, l) )
+             END DO
+          END IF
+       END DO
+       END DO
+       END DO
+    END SUBROUTINE interpolate_1d
+
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Interpolates bi-linearly in horizontal planes on every k level of the output
+!> array outvar(:,:,k) using values of the source array invar(:,:,:). The source
+!> (invar) and interpolation array (outvar) need to have matching dimensions.
+!>
+!> Input parameters:
+!> -----------------
+!> invar : Array of source data
+!> 
+!> outgrid % ii, % jj : Array of neighbour indices in x and y direction.
+!>     ii(i,j,k,:), and jj(i,j,k,:) contain the four horizontal neighbour points
+!>     of PALM-4U point (i,j,k) on the input grid corresponding to the source
+!>     data invar. (The outgrid carries the relationship with the ingrid in the
+!      form of the interpoaltion weights.)
+!> 
+!> outgrid % w_horiz: Array of weights for horizontal bi-linear interpolation
+!>     corresponding to neighbour points indexed by ii and jj.
+!>
+!> Output papameters:
+!> ------------------
+!> outvar : Array of interpolated data
+!------------------------------------------------------------------------------!
+    SUBROUTINE interpolate_2d(invar, outvar, outgrid, ncvar)
+    ! I index 0-based for the indices of the outvar to be consistent with the
+    ! outgrid indices and interpolation weights.
+       TYPE(grid_definition), INTENT(IN) ::  outgrid
+       REAL(dp), INTENT(IN)              ::  invar(0:,0:,0:)
+       REAL(dp), INTENT(OUT)             ::  outvar(0:,0:,0:)
+       TYPE(nc_var), INTENT(IN), OPTIONAL ::  ncvar
+
+       INTEGER ::  i, j, k, l
+
+       ! TODO: check if input dimensions are consistent, i.e. ranges are correct
+       IF (UBOUND(outvar, 3) .GT. UBOUND(invar, 3))  THEN
+           message = "Output array for '" // TRIM(ncvar % name) // "' has ' more levels (" // &
+              TRIM(str(UBOUND(outvar, 3))) // ") than input variable ("//&
+              TRIM(str(UBOUND(invar, 3))) // ")."
+           CALL abort('interpolate_2d', message) 
+       END IF
+
+       DO k = 0, UBOUND(outvar, 3)
+       DO j = 0, UBOUND(outvar, 2)
+       DO i = 0, UBOUND(outvar, 1)
+          outvar(i,j,k) = 0.0_dp
+          DO l = 1, 4
+             
+             outvar(i,j,k) = outvar(i,j,k) +                                   &
+                outgrid % w_horiz(i,j,l) * invar( outgrid % ii(i,j,l),         & 
+                                                  outgrid % jj(i,j,l),         &
+                                                  k )
+          END DO
+       END DO
+       END DO
+       END DO
+        
+    END SUBROUTINE interpolate_2d
+
+
+    SUBROUTINE average_2d(in_arr, out_arr, imin, imax, jmin, jmax)
+       REAL(dp), INTENT(IN)  ::  in_arr(0:,0:,0:)
+       REAL(dp), INTENT(OUT) ::  out_arr(0:)
+       INTEGER, INTENT(IN)   ::  imin, imax, jmin, jmax
+
+       INTEGER  ::  i, j, k
+       REAL(dp) ::  ni
+       
+       IF (imin < 0)  CALL abort('average_2d', "imin < 0.")
+       IF (jmin < 0)  CALL abort('average_2d', "jmin < 0.")
+       IF (imax > UBOUND(in_arr, 1))  CALL abort('average_2d', "imax out of i bound.")
+       IF (jmax > UBOUND(in_arr, 2))  CALL abort('average_2d', "jmax out of j bound.")
+
+       DO k = 0, UBOUND(out_arr, 1)
+
+          out_arr(k) = 0.0_dp
+          DO j = jmin, jmax
+          DO i = imin, imax
+             out_arr(k) = out_arr(k) + in_arr(i, j, k)
+          END DO
+          END DO
+
+       END DO
+   
+       ! devide by number of grid points
+       ni = 1.0_dp / ( (imax - imin + 1) * (jmax - jmin + 1) )
+       out_arr(:) = out_arr(:) * ni
+
+    END SUBROUTINE average_2d
+
+
+    SUBROUTINE interpolate_3d(source_array, palm_array, palm_intermediate, palm_grid)
+       TYPE(grid_definition), INTENT(IN) ::  palm_intermediate, palm_grid
+       REAL(dp), DIMENSION(:,:,:), INTENT(IN)  ::  source_array
+       REAL(dp), DIMENSION(:,:,:), INTENT(OUT) ::  palm_array
+       REAL(dp), DIMENSION(:,:,:), ALLOCATABLE ::  intermediate_array
+       INTEGER ::  nx, ny, nz
+
+       nx = palm_intermediate % nx
+       ny = palm_intermediate % ny
+       nz = palm_intermediate % nz ! nlev
+
+       ! Interpolate from COSMO-DE to intermediate grid. Allocating with one
+       ! less point in the vertical, since scalars like T have 50 instead of 51
+       ! points in COSMO-DE.
+       ALLOCATE(intermediate_array(0:nx, 0:ny, 0:nz-1)) !
+
+       CALL interpolate_2d(source_array, intermediate_array, palm_intermediate)
+
+       ! Interpolate from intermediate grid to palm_grid grid, includes
+       ! extrapolation for cells below COSMO-DE domain.
+       CALL interpolate_1d(intermediate_array, palm_array, palm_grid)
+
+       DEALLOCATE(intermediate_array)
+
+    END SUBROUTINE interpolate_3d
+
+
+    SUBROUTINE average_profile(source_array, profile_array, imin, imax, jmin, jmax,&
+                               palm_intermediate, palm_grid)
+       TYPE(grid_definition), INTENT(IN)          ::  palm_intermediate, palm_grid
+       REAL(dp), DIMENSION(:,:,:), INTENT(IN)     ::  source_array
+       INTEGER, INTENT(IN)                        ::  imin, imax, jmin, jmax
+       REAL(dp), DIMENSION(0:,0:,0:), INTENT(OUT) ::  profile_array
+       REAL(dp), DIMENSION(:,:,:), ALLOCATABLE    ::  intermediate_array
+       INTEGER                                    ::  nx, ny, nz
+
+       nx = palm_intermediate % nx
+       ny = palm_intermediate % ny
+       nz = palm_intermediate % nz
+       ALLOCATE(intermediate_array(0:nx, 0:ny, 0:nz-1))
+       intermediate_array(:,:,:) = 0.0_dp
+
+       ! average input array to intermediate profile
+       CALL average_2d(source_array, intermediate_array(0,0,:), imin, imax, jmin, jmax)
+
+       ! vertically interpolate to ouput array
+       CALL interpolate_1d(intermediate_array, profile_array, palm_grid)
+
+       DEALLOCATE(intermediate_array)
+
+    END SUBROUTINE average_profile
+
+
+
+!-----------------------------------------------------------------------------!
+! Description:
+! -----------
+!> This routine computes the inverse Plate Carree projection, i.e. in projects
+!> Cartesian coordinates (x,y) onto a sphere. It returns the latitude and
+!> lngitude of a geographical system centered at x0 and y0.
+!-----------------------------------------------------------------------------!
+    SUBROUTINE inv_plate_carree(x, y, x0, y0, r, lat, lon)
+       REAL(dp), INTENT(IN)  ::  x(:), y(:), x0, y0, r
+       REAL(dp), INTENT(OUT) ::  lat(:), lon(:)
+       
+       REAL(dp) :: ri
+
+       ! TODO check dimensions of lat/lon and y/x match
+
+       ri = 1.0_dp / r
+       
+       lat(:) = (y(:) - y0) * ri
+       lon(:) = (x(:) - x0) * ri
+    END SUBROUTINE 
+
+
+!-----------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Computes the reverse Plate-Carree projection of a x or y position on a
+!> Cartesian grid.
+!>
+!> Input parameters:
+!> -----------------
+!> xy : x or y coordinate of the Cartasian grid point [m].
+!>
+!> xy0 : x or y coordinate that coincides with the origin of the underlying
+!>     sperical system (crossing point of the equator and prime meridian) [m].
+!>
+!> r : Radius of the of the underlying sphere, e.g. EARTH_RADIUS [m].
+!> 
+!> Returns:
+!> --------
+!> project : Longitude (in case xy = x) or latitude (xy = y) of the given input
+!>     coordinate xy.
+!------------------------------------------------------------------------------!
+    ELEMENTAL REAL(dp) FUNCTION project(xy, xy0, r)
+       REAL(dp), INTENT(IN)  ::  xy, xy0, r
+       REAL(dp) :: ri
+
+       ! If this elemental function is called with a large array as xy, it is
+       ! computationally more efficient to precompute the inverse radius and
+       ! then muliply.
+       ri = 1.0_dp / r
+
+       project = (xy - xy0) * ri
+
+    END FUNCTION project
+
+
+    REAL(dp) FUNCTION phic_to_phin(phi_c)
+        REAL(dp), INTENT(IN) ::  phi_c
+
+        phic_to_phin = 0.5_dp * PI - ABS(phi_c)
+
+    END FUNCTION phic_to_phin
+
+    
+    REAL(dp) FUNCTION lamc_to_lamn(phi_c, lam_c)
+       REAL(dp), INTENT(IN) ::  phi_c, lam_c
+        
+       lamc_to_lamn = lam_c
+       IF (phi_c > 0.0_dp)  THEN
+          lamc_to_lamn = lam_c - SIGN(PI, lam_c)
+       END IF
+
+    END FUNCTION lamc_to_lamn
+
+
+    REAL(dp) FUNCTION gamma_from_hemisphere(phi_cg, phi_ref)
+       REAL(dp), INTENT(IN) ::  phi_cg, phi_ref
+       LOGICAL ::  palm_centre_is_south_of_cosmo_origin
+       
+       palm_centre_is_south_of_cosmo_origin = (phi_cg < phi_ref)
+
+       IF (palm_centre_is_south_of_cosmo_origin)  THEN
+           gamma_from_hemisphere = PI
+       ELSE
+           gamma_from_hemisphere = 0.0_dp
+       END IF
+    END FUNCTION gamma_from_hemisphere
+
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Computes the geographical coordinates corresponding to the given rotated-pole
+!> coordinates.
+!>
+!> In INIFOR, this routine is used to convert coordinates between two
+!> rotated-pole systems: COSMO-DE's rotated-pole system, and one centred at the
+!> PALM-4U domain centre. In this case, the PALM-4U system is thought of as the
+!> rotated-pole system and the routine is used to rotate back to COSMO-DE's
+!> system which is thought of as the geographical one.
+!> 
+!> Input parameters:
+!> -----------------
+!> phir(:), lamr(: ): latitudes and longitudes of the rotated-pole grid
+!> 
+!> phip, lamp: latitude and longitude of the rotated north pole
+!>
+!> gam: "angle between the north poles. If [gam] is not present, the other
+!>       system is the real geographical system." (original phiro2rot
+!>       description)
+!> 
+!> Output parameters:
+!> ------------------
+!> phi(:,:), lam(:,:): geographical latitudes and logitudes
+!------------------------------------------------------------------------------!
+    SUBROUTINE rotate_to_cosmo(phir, lamr, phip, lamp, phi, lam, gam)
+       REAL(dp), INTENT(IN)  ::  phir(0:), lamr(0:), phip, lamp, gam
+       REAL(dp), INTENT(OUT) ::  phi(0:,0:), lam(0:,0:)
+
+       INTEGER ::  i, j
+       
+       IF ( SIZE(phi, 1) .NE. SIZE(lam, 1) .OR. &
+            SIZE(phi, 2) .NE. SIZE(lam, 2) )  THEN
+          PRINT *, "inifor: rotate_to_cosmo: Dimensions of phi and lambda do not match. Dimensions are:"
+          PRINT *, "inifor: rotate_to_cosmo: phi: ", SIZE(phi, 1), SIZE(phi, 2)
+          PRINT *, "inifor: rotate_to_cosmo: lam: ", SIZE(lam, 1), SIZE(lam, 2)
+          STOP
+       END IF
+
+       IF ( SIZE(phir) .NE. SIZE(phi, 2) .OR. &
+            SIZE(lamr) .NE. SIZE(phi, 1) )  THEN
+          PRINT *, "inifor: rotate_to_cosmo: Dimensions of phir and lamr do not match. Dimensions are:"
+          PRINT *, "inifor: rotate_to_cosmo: phir: ", SIZE(phir), SIZE(phi, 2)
+          PRINT *, "inifor: rotate_to_cosmo: lamr: ", SIZE(lamr), SIZE(phi, 1)
+          STOP
+       END IF
+       
+       DO j = 0, UBOUND(phir, 1)
+          DO i = 0, UBOUND(lamr, 1)
+
+             phi(i,j) = phirot2phi(phir(j) * TO_DEGREES,                       &
+                                   lamr(i) * TO_DEGREES,                       &
+                                   phip * TO_DEGREES,                          &
+                                   lamp * TO_DEGREES,                          &
+                                   gam  * TO_DEGREES) * TO_RADIANS
+
+             lam(i,j) = rlarot2rla(phir(j) * TO_DEGREES,                       &
+                                   lamr(i) * TO_DEGREES,                       &
+                                   phip * TO_DEGREES,                          &
+                                   lamp * TO_DEGREES,                          &
+                                   gam  * TO_DEGREES) * TO_RADIANS
+
+          END DO
+       END DO
+
+    END SUBROUTINE rotate_to_cosmo
+
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Compute indices of PALM-4U grid point neighbours in the target 
+!> system (COSMO-DE) by rounding up and down. (i,j) are the indices of
+!> the PALM-4U grid and (ii(i,j,1-4), jj(i,j,1-4)) contain the indices
+!> of the its four neigbouring points in the COSMO-DE grid.
+!>
+!>
+!>                     COSMO-DE grid
+!>                     -------------
+!>           jj, lat
+!>              ^      j
+!>              |       \          i
+!>  jj(i,j,2/3) + ... 2 ---\--------/------ 3
+!>              |     | ^   \      /        |
+!>              |     | |wp  \    /         |
+!>              |     | v     \  /          |
+!>       latpos + ............ o/ (i,j)     |
+!>              |     |        :            |
+!>              |     |        :<----wl---->|
+!>  jj(i,j,1/4) + ... 1 -------:----------- 4
+!>              |     :        :            :
+!>              |     :        :            :
+!>              |     :      lonpos         :
+!>              L-----+--------+------------+------> ii, lon 
+!>               ii(i,j,1/2)        ii(i,j,3/4)
+!>
+!> 
+!> Input parameters:
+!> -----------------
+!> source_lat, source_lon : (rotated-pole) coordinates of the source grid (e.g.
+!>    COSMO-DE)
+!>
+!> source_dxi, source_dyi : inverse grid spacings of the source grid.
+!>
+!> target_lat, target_lon : (rotated-pole) coordinates of the target grid (e.g.
+!>    COSMO-DE)
+!> 
+!> Output parameters:
+!> ------------------
+!> palm_ii, palm_jj : x and y index arrays of horizontal neighbour columns
+!> 
+!------------------------------------------------------------------------------!
+    SUBROUTINE find_horizontal_neighbours(cosmo_lat, cosmo_lon, cosmo_dxi,     &
+       cosmo_dyi, palm_clat, palm_clon, palm_ii, palm_jj)
+
+       REAL(dp), DIMENSION(0:), INTENT(IN)        ::  cosmo_lat, cosmo_lon
+       REAL(dp), DIMENSION(0:,0:), INTENT(IN)     ::  palm_clat, palm_clon
+       REAL(dp), INTENT(IN)                       ::  cosmo_dxi, cosmo_dyi
+       INTEGER, DIMENSION(0:,0:,1:), INTENT(OUT)  ::  palm_ii, palm_jj
+
+       REAL(dp) ::  lonpos, latpos, lon0, lat0
+       INTEGER  ::  i, j
+
+       lon0 = cosmo_lon(0)
+       lat0 = cosmo_lat(0)
+
+       DO j = 0, UBOUND(palm_clon, 2)!palm_grid % ny
+       DO i = 0, UBOUND(palm_clon, 1)!palm_grid % nx
+          ! Compute the floating point index corrseponding to PALM-4U grid point
+          ! location along target grid (COSMO-DE) axes.
+          lonpos = (palm_clon(i,j) - lon0) * cosmo_dxi
+          latpos = (palm_clat(i,j) - lat0) * cosmo_dyi
+
+          IF (lonpos < 0.0 .OR. latpos < 0.0)  THEN
+             PRINT *, " Error while finding neighbours: lonpos or latpos out of bounds!"
+             PRINT *, "     (i,j) = (", i, ",",j,")"
+             PRINT *, "      lonpos ", lonpos*TO_DEGREES, ", latpos ", latpos*TO_DEGREES
+             PRINT *, "        lon0 ", lon0  *TO_DEGREES,   ", lat0   ", lat0*TO_DEGREES
+             PRINT *, "    PALM lon ", palm_clon(i,j)*TO_DEGREES,   ", PALM lat ",palm_clat(i,j)*TO_DEGREES
+             STOP
+          END IF
+
+          palm_ii(i,j,1) = FLOOR(lonpos)
+          palm_ii(i,j,2) = FLOOR(lonpos)
+          palm_ii(i,j,3) = CEILING(lonpos)
+          palm_ii(i,j,4) = CEILING(lonpos)
+
+          palm_jj(i,j,1) = FLOOR(latpos)
+          palm_jj(i,j,2) = CEILING(latpos)
+          palm_jj(i,j,3) = CEILING(latpos)
+          palm_jj(i,j,4) = FLOOR(latpos)
+       END DO
+       END DO
+
+    END SUBROUTINE find_horizontal_neighbours
+
+    
+    SUBROUTINE find_vertical_neighbours_and_weights(palm_grid, palm_intermediate)
+       TYPE(grid_definition), INTENT(INOUT) ::  palm_grid
+       TYPE(grid_definition), INTENT(IN)    ::  palm_intermediate
+
+       INTEGER  ::  i, j, k, nx, ny, nz, nlev, kcur
+       LOGICAL  ::  point_is_below_grid, point_is_above_grid,                  &
+                    point_is_in_current_cell
+       REAL(dp) ::  current_height, column_base, column_top, h_top, h_bottom,  &
+                    weight
+
+       nx   = palm_grid % nx
+       ny   = palm_grid % ny
+       nz   = palm_grid % nz
+       nlev = palm_intermediate % nz
+
+       ! in each column of the fine grid, find vertical neighbours of every cell
+       DO i = 0, nx
+       DO j = 0, ny
+
+          kcur = 0
+
+          column_base = palm_intermediate % h(i,j,0)
+          column_top  = palm_intermediate % h(i,j,nlev)
+
+          ! scan through palm_grid column until and set neighbour indices in
+          ! case current_height is either below column_base, in the current
+          ! cell, or above column_top. Keep increasing current cell index until
+          ! the current cell overlaps with the current_height.
+          DO k = 0, nz
+
+             ! Memorize the top and bottom boundaries of the coarse cell and the
+             ! current height within it
+             current_height = palm_grid % z(k) + palm_grid % z0
+             h_top    = palm_intermediate % h(i,j,kcur+1)
+             h_bottom = palm_intermediate % h(i,j,kcur)
+
+             point_is_above_grid = (current_height > column_top) !22000m, very unlikely
+             point_is_below_grid = (current_height < column_base)
+
+             point_is_in_current_cell = (                                      &
+                current_height >= h_bottom .AND.                               &
+                current_height <  h_top                                        &
+             )
+
+             ! set default weights
+             palm_grid % w_verti(i,j,k,1:2) = 0.0_dp
+
+             IF (point_is_above_grid)  THEN
+
+                palm_grid % kk(i,j,k,1:2) = nlev
+                palm_grid % w_verti(i,j,k,1:2) = - 2.0_dp
+
+             ELSE IF (point_is_below_grid)  THEN
+
+                palm_grid % kk(i,j,k,1:2) = 0
+                palm_grid % w_verti(i,j,k,1:2) = - 2.0_dp
+
+             ELSE
+                ! cycle through intermediate levels until current
+                ! intermediate-grid cell overlaps with current_height
+                DO WHILE (.NOT. point_is_in_current_cell .AND. kcur <= nlev-1)
+                   kcur = kcur + 1
+
+                   h_top    = palm_intermediate % h(i,j,kcur+1)
+                   h_bottom = palm_intermediate % h(i,j,kcur)
+                   point_is_in_current_cell = (                                &
+                      current_height >= h_bottom .AND.                         &
+                      current_height <  h_top                                  &
+                   )
+                END DO
+
+                ! kcur = 48 indicates the last section (indices 48 and 49), i.e.
+                ! kcur = 49 is not the beginning of a valid cell.
+                IF (kcur > nlev-1)  THEN
+                   message = "Index " // TRIM(str(kcur)) // " is above intermediate grid range."
+                   CALL abort('find_vertical_neighbours', message)
+                END IF
+   
+                palm_grid % kk(i,j,k,1) = kcur
+                palm_grid % kk(i,j,k,2) = kcur + 1
+
+                ! copmute vertical weights
+                weight = (h_top - current_height) / (h_top - h_bottom)
+                palm_grid % w_verti(i,j,k,1) = weight
+                palm_grid % w_verti(i,j,k,2) = 1.0_dp - weight
+             END IF
+
+          END DO
+
+       END DO
+       END DO
+
+    END SUBROUTINE find_vertical_neighbours_and_weights
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Compute the four weights for horizontal bilinear interpolation given the
+!> coordinates clon(i,j) clat(i,j) of the PALM-4U grid in the COSMO-DE
+!> rotated-pole grid and the neightbour indices ii(i,j,1-4) and jj(i,j,1-4).
+!>
+!> Input parameters:
+!> -----------------
+!> palm_grid % clon : longitudes of PALM-4U scalars (cell centres) in COSMO-DE's rotated-pole grid [rad]
+!>
+!> palm_grid % clat : latitudes of PALM-4U cell centres in COSMO-DE's rotated-pole grid [rad]
+!>
+!> cosmo_grid % lon : rotated-pole longitudes of scalars (cell centres) of the COSMO-DE grid [rad] 
+!>
+!> cosmo_grid % lat : rotated-pole latitudes of scalars (cell centers) of the COSMO-DE grid [rad]
+!>
+!> cosmo_grid % dxi : inverse grid spacing in the first dimension [m^-1]
+!>
+!> cosmo_grid % dyi : inverse grid spacing in the second dimension [m^-1]
+!>
+!> Output parameters:
+!> ------------------
+!> palm_grid % w_horiz(:,:,1-4) : weights for bilinear horizontal interpolation
+!
+!                               COSMO-DE grid
+!                               -------------
+!                     jj, lat
+!                        ^        j
+!                        |         \          i
+!            jj(i,j,2/3) + ... 2 ---\--------/------ 3
+!                        |     | ^   \      /        |
+!                        |     | |wp  \    /         |
+!                        |     | v     \  /          |
+!                 latpos + ............ o/ (i,j)     |
+!                        |     |        :            |
+!                        |     |        :<----wl---->|
+!            jj(i,j,1/4) + ... 1 -------:----------- 4
+!                        |     :        :            :
+!                        |     :        :            :
+!                        |     :      lonpos         :
+!                        L-----+--------+------------+------> ii, lon 
+!                         ii(i,j,1/2)        ii(i,j,3/4)
+!          
+    SUBROUTINE compute_horizontal_interp_weights(cosmo_lat, cosmo_lon,         &
+       cosmo_dxi, cosmo_dyi, palm_clat, palm_clon, palm_ii, palm_jj, palm_w_horiz)
+       
+       REAL(dp), DIMENSION(0:), INTENT(IN)        ::  cosmo_lat, cosmo_lon
+       REAL(dp), INTENT(IN)                       ::  cosmo_dxi, cosmo_dyi
+       REAL(dp), DIMENSION(0:,0:), INTENT(IN)     ::  palm_clat, palm_clon
+       INTEGER, DIMENSION(0:,0:,1:), INTENT(IN)   ::  palm_ii, palm_jj
+
+       REAL(dp), DIMENSION(0:,0:,1:), INTENT(OUT) ::  palm_w_horiz
+
+       REAL(dp) ::  wl, wp
+       INTEGER  ::  i, j
+
+       DO j = 0, UBOUND(palm_clon, 2)
+       DO i = 0, UBOUND(palm_clon, 1)
+      
+          ! weight in lambda direction
+          wl = ( cosmo_lon(palm_ii(i,j,4)) - palm_clon(i,j) ) * cosmo_dxi
+
+          ! weight in phi direction
+          wp = ( cosmo_lat(palm_jj(i,j,2)) - palm_clat(i,j) ) * cosmo_dyi
+
+          IF (wl > 1.0_dp .OR. wl < 0.0_dp)  THEN
+              message = "Horizontal weight wl = " // TRIM(real_to_str(wl)) //   &
+                        " is out bounds."
+              CALL abort('compute_horizontal_interp_weights', message)
+          END IF
+          IF (wp > 1.0_dp .OR. wp < 0.0_dp)  THEN
+              message = "Horizontal weight wp = " // TRIM(real_to_str(wp)) //   &
+                        " is out bounds."
+              CALL abort('compute_horizontal_interp_weights', message)
+          END IF
+
+          palm_w_horiz(i,j,1) = wl * wp
+          palm_w_horiz(i,j,2) = wl * (1.0_dp - wp)
+          palm_w_horiz(i,j,3) = (1.0_dp - wl) * (1.0_dp - wp)
+          palm_w_horiz(i,j,4) = 1.0_dp - SUM( palm_w_horiz(i,j,1:3) )
+
+       END DO
+       END DO
+       
+    END SUBROUTINE compute_horizontal_interp_weights
+
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Interpolates u and v components of velocities located at cell faces to the
+!> cell centres by averaging neighbouring values.
+!>
+!> This routine is designed to be used with COSMO-DE arrays where there are the
+!> same number of grid points for scalars (centres) and velocities (faces). In
+!> COSMO-DE the velocity points are staggared one half grid spaceing up-grid
+!> which means the first centre point has to be omitted and is set to zero.
+    SUBROUTINE centre_velocities(u_face, v_face, u_centre, v_centre)
+       REAL(dp), DIMENSION(0:,0:,0:), INTENT(IN)  ::  u_face, v_face
+       REAL(dp), DIMENSION(0:,0:,0:), INTENT(OUT) ::  u_centre, v_centre
+       INTEGER ::  nx, ny
+
+       nx = UBOUND(u_face, 1)
+       ny = UBOUND(u_face, 2)
+
+       u_centre(0,:,:)  = 0.0_dp
+       u_centre(1:,:,:) = 0.5_dp * ( u_face(0:nx-1,:,:) + u_face(1:,:,:) )
+
+       v_centre(:,0,:)  = 0.0_dp
+       v_centre(:,1:,:) = 0.5_dp * ( v_face(:,0:ny-1,:) + v_face(:,1:,:) )
+    END SUBROUTINE centre_velocities
+
+
+    FUNCTION phirot2phi (phirot, rlarot, polphi, pollam, polgam)
+    
+       REAL(dp), INTENT (IN) ::  polphi      !< latitude of the rotated north pole
+       REAL(dp), INTENT (IN) ::  pollam      !< longitude of the rotated north pole
+       REAL(dp), INTENT (IN) ::  phirot      !< latitude in the rotated system
+       REAL(dp), INTENT (IN) ::  rlarot      !< longitude in the rotated system
+       REAL(dp), INTENT (IN) ::  polgam      !< angle between the north poles of the systems
+
+       REAL(dp)              ::  phirot2phi  !< latitude in the geographical system
+       
+       REAL(dp)              ::  zsinpol, zcospol, zphis, zrlas, zarg, zgam
+    
+       zsinpol = SIN(polphi * TO_RADIANS)
+       zcospol = COS(polphi * TO_RADIANS)
+       zphis   = phirot * TO_RADIANS
+
+       IF (rlarot > 180.0_dp)  THEN
+          zrlas = rlarot - 360.0_dp
+       ELSE
+          zrlas = rlarot
+       END IF
+       zrlas = zrlas * TO_RADIANS
+     
+       IF (polgam /= 0.0_dp)  THEN
+          zgam = polgam * TO_RADIANS
+          zarg = zsinpol * SIN (zphis) +                                       &
+                 zcospol * COS(zphis) * ( COS(zrlas) * COS(zgam) -             &
+                                          SIN(zgam)  * SIN(zrlas) )
+       ELSE
+          zarg = zcospol * COS (zphis) * COS (zrlas) + zsinpol * SIN (zphis)
+       END IF
+      
+       phirot2phi = ASIN (zarg) * TO_DEGREES
+    
+    END FUNCTION phirot2phi
+
+
+    FUNCTION phi2phirot (phi, rla, polphi, pollam)
+    
+       REAL(dp), INTENT (IN) ::  polphi !< latitude of the rotated north pole
+       REAL(dp), INTENT (IN) ::  pollam !< longitude of the rotated north pole
+       REAL(dp), INTENT (IN) ::  phi    !< latitude in the geographical system
+       REAL(dp), INTENT (IN) ::  rla    !< longitude in the geographical system
+       
+       REAL(dp) ::  phi2phirot          !< longitude in the rotated system
+       
+       REAL(dp) ::  zsinpol, zcospol, zlampol, zphi, zrla, zarg1, zarg2, zrla1
+       
+       zsinpol = SIN(polphi * TO_RADIANS)
+       zcospol = COS(polphi * TO_RADIANS)
+       zlampol = pollam * TO_RADIANS
+       zphi    = phi * TO_RADIANS
+
+       IF (rla > 180.0_dp)  THEN
+          zrla1 = rla - 360.0_dp
+       ELSE
+          zrla1 = rla
+       END IF
+       zrla = zrla1 * TO_RADIANS
+       
+       zarg1 = SIN(zphi) * zsinpol
+       zarg2 = COS(zphi) * zcospol * COS(zrla - zlampol)
+       
+       phi2phirot = ASIN(zarg1 + zarg2) * TO_DEGREES
+    
+    END FUNCTION phi2phirot
+
+
+    FUNCTION rlarot2rla(phirot, rlarot, polphi, pollam, polgam)
+    
+       REAL(dp), INTENT (IN) ::  polphi !< latitude of the rotated north pole
+       REAL(dp), INTENT (IN) ::  pollam !< longitude of the rotated north pole
+       REAL(dp), INTENT (IN) ::  phirot !< latitude in the rotated system
+       REAL(dp), INTENT (IN) ::  rlarot !< longitude in the rotated system
+       REAL(dp), INTENT (IN) ::  polgam !< angle between the north poles of the systems
+       
+       REAL(dp) ::  rlarot2rla          !< latitude in the geographical system
+       
+       REAL(dp) ::  zsinpol, zcospol, zlampol, zphis, zrlas, zarg1, zarg2, zgam
+       
+       zsinpol = SIN(TO_RADIANS * polphi)
+       zcospol = COS(TO_RADIANS * polphi)
+       zlampol = TO_RADIANS * pollam
+       zphis   = TO_RADIANS * phirot
+
+       IF (rlarot > 180.0_dp)  THEN
+          zrlas = rlarot - 360.0_dp
+       ELSE
+          zrlas = rlarot
+       END IF
+       zrlas   = TO_RADIANS * zrlas
+      
+       IF (polgam /= 0.0_dp)  THEN
+          zgam  = TO_RADIANS * polgam
+          zarg1 = SIN(zlampol) * (zcospol * SIN(zphis) - zsinpol*COS(zphis) *  &
+                  (COS(zrlas) * COS(zgam) - SIN(zrlas) * SIN(zgam)) ) -        &
+                  COS(zlampol) * COS(zphis) * ( SIN(zrlas) * COS(zgam) +       &
+                                                COS(zrlas) * SIN(zgam) )
+       
+          zarg2 = COS (zlampol) * (zcospol * SIN(zphis) - zsinpol*COS(zphis) * &
+                  (COS(zrlas) * COS(zgam) - SIN(zrlas) * SIN(zgam)) ) +        &
+                  SIN(zlampol) * COS(zphis) * ( SIN(zrlas) * COS(zgam) +       &
+                                                COS(zrlas) * SIN(zgam) )
+       ELSE
+          zarg1   = SIN (zlampol) * (-zsinpol * COS(zrlas) * COS(zphis)  +     &
+                                      zcospol *              SIN(zphis)) -     &
+                    COS (zlampol) *             SIN(zrlas) * COS(zphis)
+          zarg2   = COS (zlampol) * (-zsinpol * COS(zrlas) * COS(zphis)  +     &
+                                      zcospol *              SIN(zphis)) +     &
+                    SIN (zlampol) *             SIN(zrlas) * COS(zphis)
+       END IF
+      
+       IF (zarg2 == 0.0_dp)  zarg2 = 1.0E-20_dp
+      
+       rlarot2rla = ATAN2(zarg1,zarg2) * TO_DEGREES
+        
+    END FUNCTION rlarot2rla
+
+
+    FUNCTION rla2rlarot ( phi, rla, polphi, pollam, polgam )
+
+       REAL(dp), INTENT (IN) ::  polphi !< latitude of the rotated north pole
+       REAL(dp), INTENT (IN) ::  pollam !< longitude of the rotated north pole
+       REAL(dp), INTENT (IN) ::  phi    !< latitude in geographical system
+       REAL(dp), INTENT (IN) ::  rla    !< longitude in geographical system
+       REAL(dp), INTENT (IN) ::  polgam !< angle between the north poles of the systems
+       
+       REAL (KIND=dp) ::  rla2rlarot    !< latitude in the the rotated system
+       
+       REAL (KIND=dp) ::  zsinpol, zcospol, zlampol, zphi, zrla, zarg1, zarg2, zrla1
+       
+       zsinpol = SIN(polphi * TO_RADIANS)
+       zcospol = COS(polphi * TO_RADIANS)
+       zlampol = pollam * TO_RADIANS
+       zphi    = phi * TO_RADIANS
+
+       IF (rla > 180.0_dp)  THEN
+          zrla1 = rla - 360.0_dp
+       ELSE
+          zrla1 = rla
+       END IF
+       zrla = zrla1 * TO_RADIANS
+       
+       zarg1 = - SIN (zrla-zlampol) * COS(zphi)
+       zarg2 = - zsinpol * COS(zphi) * COS(zrla-zlampol) + zcospol * SIN(zphi)
+       
+       IF (zarg2 == 0.0_dp)  zarg2 = 1.0E-20_dp
+       
+       rla2rlarot = ATAN2 (zarg1,zarg2) * TO_DEGREES
+       
+       IF (polgam /= 0.0_dp )  THEN
+          rla2rlarot = polgam + rla2rlarot
+          IF (rla2rlarot > 180._dp)  rla2rlarot = rla2rlarot - 360.0_dp
+       END IF
+       
+    END FUNCTION rla2rlarot
+
+
+    SUBROUTINE uv2uvrot(u, v, rlat, rlon, pollat, pollon, urot, vrot)
+    
+       REAL(dp), INTENT (IN)  ::  u, v           !< wind components in the true geographical system
+       REAL(dp), INTENT (IN)  ::  rlat, rlon     !< coordinates in the true geographical system
+       REAL(dp), INTENT (IN)  ::  pollat, pollon !< latitude and longitude of the north pole of the rotated grid
+       
+       REAL(dp), INTENT (OUT) ::  urot, vrot     !< wind components in the rotated grid             
+       
+       REAL (dp) ::  zsinpol, zcospol, zlonp, zlat, zarg1, zarg2, znorm
+       
+       zsinpol = SIN(pollat * TO_RADIANS)
+       zcospol = COS(pollat * TO_RADIANS)
+       zlonp   = (pollon-rlon) * TO_RADIANS
+       zlat    = rlat * TO_RADIANS
+       
+       zarg1 = zcospol * SIN(zlonp)
+       zarg2 = zsinpol * COS(zlat) - zcospol * SIN(zlat) * COS(zlonp)
+       znorm = 1.0_dp / SQRT(zarg1*zarg1 + zarg2*zarg2)
+       
+       urot = u * zarg2 * znorm - v * zarg1 * znorm
+       vrot = u * zarg1 * znorm + v * zarg2 * znorm
+    
+    END SUBROUTINE uv2uvrot
+
+
+    SUBROUTINE uvrot2uv (urot, vrot, rlat, rlon, pollat, pollon, u, v)
+    
+       REAL(dp), INTENT(IN) ::  urot, vrot     !< wind components in the rotated grid
+       REAL(dp), INTENT(IN) ::  rlat, rlon     !< latitude and longitude in the true geographical system
+       REAL(dp), INTENT(IN) ::  pollat, pollon !< latitude and longitude of the north pole of the rotated grid
+       
+       REAL(dp), INTENT(OUT) ::  u, v          !< wind components in the true geographical system
+       
+       REAL(dp) ::  zsinpol, zcospol, zlonp, zlat, zarg1, zarg2, znorm
+     
+       zsinpol = SIN(pollat * TO_RADIANS)
+       zcospol = COS(pollat * TO_RADIANS)
+       zlonp   = (pollon-rlon) * TO_RADIANS
+       zlat    = rlat * TO_RADIANS
+     
+       zarg1 = zcospol * SIN(zlonp)
+       zarg2 = zsinpol * COS(zlat) - zcospol * SIN(zlat) * COS(zlonp)
+       znorm = 1.0_dp / SQRT(zarg1*zarg1 + zarg2*zarg2)
+     
+       u =   urot * zarg2 * znorm + vrot * zarg1 * znorm
+       v = - urot * zarg1 * znorm + vrot * zarg2 * znorm
+    
+    END SUBROUTINE uvrot2uv
+
+ END MODULE
+
Index: palm/trunk/UTIL/inifor/src/types.f90
===================================================================
--- palm/trunk/UTIL/inifor/src/types.f90	(revision 2696)
+++ palm/trunk/UTIL/inifor/src/types.f90	(revision 2696)
@@ -0,0 +1,152 @@
+!> @file src/types.f90
+!------------------------------------------------------------------------------!
+! This file is part of PALM/PALM-4U.
+!
+! PALM/PALM-4U is free software: you can redistribute it and/or modify it under 
+! the terms of the GNU General Public License as published by the Free Software
+! Foundation, either version 3 of the License, or (at your option) any later 
+! version.
+!
+! PALM/PALM-4U is distributed in the hope that it will be useful, but WITHOUT 
+! ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+! FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+!
+! You should have received a copy of the GNU General Public License along with
+! PALM. If not, see <http://www.gnu.org/licenses/>.
+!
+! Copyright 2017-2017 Leibniz Universitaet Hannover, Deutscher Wetterdienst
+! Offenbach
+!------------------------------------------------------------------------------!
+!
+! Current revisions:
+! -----------------
+! 
+! 
+! Former revisions:
+! -----------------
+! $Id$
+! Initial revision
+!
+! 
+!
+! Authors:
+! --------
+! @author Eckhard Kadasch
+!
+! Description:
+! ------------
+!> The types module provides derived data types used in INIFOR.
+!------------------------------------------------------------------------------!
+ MODULE types
+ 
+ USE defs,                                                                     &
+    ONLY:  dp, PATH, SNAME, LNAME
+ USE netcdf,                                                                   &
+    ONLY:  NF90_MAX_VAR_DIMS, NF90_MAX_NAME
+
+ IMPLICIT NONE
+
+ TYPE grid_definition
+    CHARACTER(LEN=SNAME)  ::  name(3)       !< names of the grid dimensions, e.g. (/'x', 'y', 'z'/) or (/'latitude', 'longitude', 'height'/)
+    INTEGER               ::  nx            !< number of gridpoints in the first dimension
+    INTEGER               ::  ny            !< number of gridpoints in the second dimension
+    INTEGER               ::  nz            !< number of gridpoints in the third dimension
+    INTEGER, ALLOCATABLE  ::  ii(:,:,:)     !< Given a point (i,j,k) in the PALM-4U grid, ii(i,j,l) gives the x index of the l'th horizontl neighbour on the COSMO-DE grid.
+    INTEGER, ALLOCATABLE  ::  jj(:,:,:)     !< Given a point (i,j,k) in the PALM-4U grid, jj(i,j,l) gives the y index of the l'th horizontl neighbour on the COSMO-DE grid.
+    INTEGER, ALLOCATABLE  ::  kk(:,:,:,:)   !< Given a point (i,j,k) in the PALM-4U grid, kk(i,j,k,l) gives the z index of the l'th vertical neighbour in the intermediate grid.
+    REAL(dp)              ::  dx            !< grid spacing in the first dimension [m]
+    REAL(dp)              ::  dy            !< grid spacing in the second dimension [m]
+    REAL(dp)              ::  dz            !< grid spacing in the third dimension [m]
+    REAL(dp)              ::  dxi           !< inverse grid spacing in the first dimension [m^-1]
+    REAL(dp)              ::  dyi           !< inverse grid spacing in the second dimension [m^-1]
+    REAL(dp)              ::  dzi           !< inverse grid spacing in the third dimension [m^-1]
+    REAL(dp)              ::  lx            !< domain length in the first dimension [m]
+    REAL(dp)              ::  ly            !< domain length in the second dimension [m]
+    REAL(dp)              ::  lz            !< domain length in the third dimension [m]
+    REAL(dp)              ::  x0            !< x coordinate of PALM-4U domain projection centre, i.e. location of zero distortion
+    REAL(dp)              ::  y0            !< y coordinate of PALM-4U domain projection centre, i.e. location of zwro distortion
+    REAL(dp)              ::  z0            !< displacement of the coordinate origin above sea level [m]
+    REAL(dp), ALLOCATABLE ::  x(:)          !< coordinates of cell centers in x direction [m]
+    REAL(dp), ALLOCATABLE ::  y(:)          !< coordinates of cell centers in y direction [m]
+    REAL(dp), ALLOCATABLE ::  z(:)          !< coordinates of cell centers in z direction [m]
+    REAL(dp), ALLOCATABLE ::  h(:,:,:)      !< heights grid point for intermediate grids [m]
+    REAL(dp), POINTER     ::  hhl(:,:,:)    !< heights of half layers (cell faces) above sea level in COSMO-DE, read in from 
+    REAL(dp), POINTER     ::  hfl(:,:,:)    !< heights of full layers (cell centres) above sea level in COSMO-DE, computed as arithmetic average of hhl
+    REAL(dp), POINTER     ::  depths(:)     !< depths of output soil layers, equal the depths of the source model (e.g. COSMO-DE)
+    REAL(dp), ALLOCATABLE ::  xu(:)         !< coordinates of cell faces in x direction [m]
+    REAL(dp), ALLOCATABLE ::  yv(:)         !< coordinates of cell faces in y direction [m]
+    REAL(dp), ALLOCATABLE ::  zw(:)         !< coordinates of cell faces in z direction [m]
+    REAL(dp), ALLOCATABLE ::  lat(:)        !< rotated-pole latitudes of scalars (cell centers) of the COSMO-DE grid [rad]
+    REAL(dp), ALLOCATABLE ::  lon(:)        !< rotated-pole longitudes of scalars (cell centres) of the COSMO-DE grid [rad]
+    REAL(dp), ALLOCATABLE ::  latv(:)       !< rotated-pole latitudes of v winds (face centres in latitudal/y direction) [rad]
+    REAL(dp), ALLOCATABLE ::  lonu(:)       !< rotated-pole latitudes of u winds (face centres in longitudal/x direction) [rad]
+    REAL(dp), ALLOCATABLE ::  clat(:,:)     !< latitudes of PALM-4U cell centres in COSMO-DE's rotated-pole grid [rad]
+    REAL(dp), ALLOCATABLE ::  clon(:,:)     !< longitudes of PALM-4U scalars (cell centres) in COSMO-DE's rotated-pole grid [rad]
+    REAL(dp), ALLOCATABLE ::  clatu(:,:)    !< latitudes of PALM-4U u winds (cell faces in u direction) in COSMO-DE's rotated-pole grid [rad]
+    REAL(dp), ALLOCATABLE ::  clonu(:,:)    !< longitudes of PALM-4U u winds (cell faces in u direction) in COSMO-DE's rotated-pole grid [rad]
+    REAL(dp), ALLOCATABLE ::  clatv(:,:)    !< latitudes of PALM-4U v winds (cell faces in v direction) in COSMO-DE's rotated-pole grid [rad]
+    REAL(dp), ALLOCATABLE ::  clonv(:,:)    !< longitudes of PALM-4U v winds (cell faces in v direction) in COSMO-DE's rotated-pole grid [rad]
+    REAL(dp), ALLOCATABLE ::  w_horiz(:,:,:)   !< weights for bilinear horizontal interpolation
+    REAL(dp), ALLOCATABLE ::  w_verti(:,:,:,:) !< weights for linear vertical interpolation
+ END TYPE
+
+
+ TYPE nc_file
+    CHARACTER(LEN=PATH)   ::  name          !< file name
+    INTEGER               ::  dimid_time    !< NetCDF IDs of the time dimension
+    INTEGER               ::  dimids_scl(3) !< NetCDF IDs of the grid dimensions for scalar points x, y, z 
+    INTEGER               ::  dimids_vel(3) !< NetCDF IDs of the grid dimensions for velocity points xu, yu, zu
+    INTEGER               ::  dimids_soil(3)!< NetCDF IDs of the grid dimensions for soil points x, y, depth
+    INTEGER               ::  dimvarid_time !< NetCDF IDs of the time variable
+    INTEGER               ::  dimvarids_scl(3) !< NetCDF IDs of the grid coordinates of scalars x, y, z 
+    INTEGER               ::  dimvarids_vel(3) !< NetCDF IDs of the grid coordinates of velocities xu, yu, zu. Note that velocities are located at mix of both coordinates, e.g. u(xu, y, z).
+    INTEGER               ::  dimvarids_soil(3)!< NetCDF IDs of the grid coordinates for soil points x, y, depth 
+    REAL(dp), POINTER     ::  time(:)       ! vector of output time steps
+ END TYPE
+
+
+ TYPE nc_var
+    INTEGER                               ::  varid     !< NetCDF ID of the variable
+    INTEGER                               ::  input_id  !< ID of the correpsonding input variables, only valid for output variables
+    INTEGER                               ::  ndim      !< number of NetCDF dimensions
+    INTEGER                               ::  nt        !< number of output time steps
+    INTEGER                               ::  lod       !< NetCDF attribute indicating the PALM-4U level of detail
+    INTEGER, DIMENSION(NF90_MAX_VAR_DIMS) ::  dimids    !< NetCDF IDs of the dimensions
+    INTEGER, DIMENSION(NF90_MAX_VAR_DIMS) ::  dimvarids !< IDs of NetCDF dimension variables
+    INTEGER, DIMENSION(NF90_MAX_VAR_DIMS) ::  dimlen    !< length of NetCDF dimensions
+    CHARACTER(LEN=NF90_MAX_NAME), DIMENSION(NF90_MAX_VAR_DIMS) ::  dimname !< names of NetCDF dimensions
+    CHARACTER(LEN=SNAME)                  ::  name                      !< NetCDF short name of the variable
+    CHARACTER(LEN=LNAME)                  ::  standard_name             !< NetCDF standard name of the variable
+    CHARACTER(LEN=LNAME)                  ::  long_name                 !< NetCDF long name of the variable
+    CHARACTER(LEN=LNAME)                  ::  source                    !< NetCDF attribute indicating the data source for the output
+    CHARACTER(LEN=SNAME)                  ::  units                     !< NetCDF units of the variable
+    CHARACTER(LEN=SNAME)                  ::  kind                      !< Kind of grid
+    CHARACTER(LEN=SNAME)                  ::  task                      !< Processing task that generates this variable, e.g. 'interpolate_2d' or 'average profile'
+    LOGICAL                               ::  to_be_processed = .FALSE. !< Inifor flag indicating whether variable shall be processed
+    LOGICAL                               ::  is_read = .FALSE.         !< Inifor flag indicating whether variable has been read
+    LOGICAL                               ::  is_upside_down  = .FALSE. !< Inifor flag indicating whether variable shall be processed
+    TYPE(grid_definition), POINTER        ::  grid                      !< Pointer to the corresponding output grid
+    TYPE(grid_definition), POINTER        ::  intermediate_grid         !< Pointer to the corresponding intermediate grid
+ END TYPE nc_var
+
+
+ TYPE io_group                                          !< Input/Output group, groups together output variabels that share their input variables. For instance, all boundary surfaces and initialization fields of the potential temperature are base on T and p.
+    INTEGER                          ::  nt             !< maximum number of output time steps across all output variables
+    INTEGER                          ::  nv             !< number of output variables
+    CHARACTER(LEN=SNAME)             ::  kind           !< kind of I/O group
+    CHARACTER(LEN=PATH), ALLOCATABLE ::  in_files(:)    !< list of nt input files
+    TYPE(nc_var), ALLOCATABLE        ::  out_vars(:)    !< list of output variables 
+    TYPE(nc_var), ALLOCATABLE        ::  in_var_list(:) !< list of input variables
+    LOGICAL                          ::  to_be_processed = .FALSE. !< Inifor flag indicating whether I/O group shall be processed
+    LOGICAL                          ::  is_accumulated = .FALSE.  !< Flag indicating whether this I/O group contains accumulated variables
+    LOGICAL                          ::  is_preprocessed = .FALSE. !< Inifor flag indicating whether the I/O group has been preprocessed
+ END TYPE io_group 
+
+
+ TYPE container
+   REAL(dp), ALLOCATABLE ::  array(:,:,:)
+   LOGICAL               ::  is_preprocessed = .FALSE.
+ END TYPE container
+
+ END MODULE types
+
Index: palm/trunk/UTIL/inifor/src/util.f90
===================================================================
--- palm/trunk/UTIL/inifor/src/util.f90	(revision 2696)
+++ palm/trunk/UTIL/inifor/src/util.f90	(revision 2696)
@@ -0,0 +1,343 @@
+!> @file src/util.f90
+!------------------------------------------------------------------------------!
+! This file is part of PALM/PALM-4U.
+!
+! PALM/PALM-4U is free software: you can redistribute it and/or modify it under 
+! the terms of the GNU General Public License as published by the Free Software
+! Foundation, either version 3 of the License, or (at your option) any later 
+! version.
+!
+! PALM/PALM-4U is distributed in the hope that it will be useful, but WITHOUT 
+! ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+! FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+!
+! You should have received a copy of the GNU General Public License along with
+! PALM. If not, see <http://www.gnu.org/licenses/>.
+!
+! Copyright 2017-2017 Leibniz Universitaet Hannover, Deutscher Wetterdienst
+! Offenbach
+!------------------------------------------------------------------------------!
+!
+! Current revisions:
+! -----------------
+! 
+! 
+! Former revisions:
+! -----------------
+! $Id$
+! Initial revision
+!
+! 
+!
+! Authors:
+! --------
+! @author Eckhard Kadasch
+!
+! Description:
+! ------------
+!> The util module provides miscellaneous utility routines for INIFOR.
+!------------------------------------------------------------------------------!
+ MODULE util
+
+    USE, INTRINSIC :: ISO_C_BINDING,                                           &
+        ONLY :  C_CHAR, C_INT, C_PTR, C_SIZE_T
+    USE defs,                                                                  &
+        ONLY :  dp, PI, DATE
+
+    IMPLICIT NONE
+
+    TYPE, BIND(c) :: tm_struct
+       INTEGER(C_INT) :: tm_sec     !< seconds after the minute [0, 61]
+       INTEGER(C_INT) :: tm_min     !< minutes after the hour [0, 59]
+       INTEGER(C_INT) :: tm_hour    !< hours since midnight [0, 23]
+       INTEGER(C_INT) :: tm_mday    !< day of the month [1, 31]
+       INTEGER(C_INT) :: tm_mon     !< month since January [0, 11]
+       INTEGER(C_INT) :: tm_year    !< years since 1900
+       INTEGER(C_INT) :: tm_wday    !< days since Sunday [0, 6]
+       INTEGER(C_INT) :: tm_yday    !< days since January 1st [0, 356]
+       INTEGER(C_INT) :: tm_isdst   !< Daylight Saving Time flag
+    END TYPE
+
+    INTERFACE
+
+       FUNCTION strptime(string, format, timeinfo) BIND(c, NAME='strptime')
+          IMPORT :: C_CHAR, C_SIZE_T, tm_struct
+
+          IMPLICIT NONE
+
+          CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) ::  string, format
+          TYPE(tm_struct), INTENT(OUT)                     ::  timeinfo
+
+          INTEGER(C_SIZE_T)                                ::  strptime
+       END FUNCTION
+
+
+       FUNCTION strftime(string, string_len, format, timeinfo) BIND(c, NAME='strftime')
+          IMPORT :: C_CHAR, C_SIZE_T, tm_struct
+
+          IMPLICIT NONE
+
+          CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(OUT) ::  string
+          CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN)  ::  format
+          INTEGER(C_SIZE_T), INTENT(IN)                     ::  string_len
+          TYPE(tm_struct), INTENT(IN)                       ::  timeinfo
+
+          INTEGER(C_SIZE_T)                                 ::  strftime
+       END FUNCTION
+
+
+       FUNCTION mktime(timeinfo) BIND(c, NAME='mktime')
+          IMPORT :: C_PTR, tm_struct
+
+          IMPLICIT NONE
+
+          TYPE(tm_struct), INTENT(IN) ::  timeinfo
+
+          TYPE(C_PTR)                 ::  mktime
+       END FUNCTION
+
+    END INTERFACE
+
+ CONTAINS
+
+    CHARACTER(LEN=DATE) FUNCTION add_hours_to(date_string, hours)
+       CHARACTER(LEN=DATE), INTENT(IN)          ::  date_string
+       INTEGER, INTENT(IN)                      ::  hours
+
+       CHARACTER(KIND=C_CHAR, LEN=*), PARAMETER ::  format_string = "%Y%m%d%H"
+       CHARACTER(KIND=C_CHAR, LEN=DATE)         ::  c_date_string
+       TYPE(C_PTR)                              ::  c_pointer
+       TYPE(tm_struct)                          ::  time_info
+       INTEGER                                  ::  err
+
+       c_date_string = date_string
+
+       ! Convert C string to C tm struct
+       CALL init_tm(time_info)
+       err = strptime(c_date_string, format_string, time_info)
+    
+       ! Manipulate and normalize C tm struct
+       time_info % tm_hour = time_info % tm_hour + hours
+       c_pointer = mktime(time_info)
+
+       ! Convert back to C string
+       err = strftime(c_date_string, INT(DATE, KIND=C_SIZE_T),                 &
+                      format_string, time_info)
+
+       add_hours_to = c_date_string
+    END FUNCTION
+
+
+    SUBROUTINE print_tm(timeinfo)
+       TYPE(tm_struct), INTENT(IN) :: timeinfo
+
+       PRINT *, "sec: ", timeinfo % tm_sec,  &  !< seconds after the minute [0, 61]
+                "min: ", timeinfo % tm_min,  &  !< minutes after the hour [0, 59]
+                "hr:  ", timeinfo % tm_hour, &  !< hours since midnight [0, 23]
+                "day: ", timeinfo % tm_mday, &  !< day of the month [1, 31]
+                "mon: ", timeinfo % tm_mon,  &  !< month since January [0, 11]
+                "yr:  ", timeinfo % tm_year, &  !< years since 1900
+                "wday:", timeinfo % tm_wday, &  !< days since Sunday [0, 6]
+                "yday:", timeinfo % tm_yday, &  !< days since January 1st [0, 356]
+                "dst: ", timeinfo % tm_isdst    !< Daylight Saving time flag
+    END SUBROUTINE print_tm
+
+    
+    SUBROUTINE init_tm(timeinfo)
+       TYPE(tm_struct), INTENT(INOUT) :: timeinfo
+
+       timeinfo % tm_sec   = 0
+       timeinfo % tm_min   = 0
+       timeinfo % tm_hour  = 0
+       timeinfo % tm_mday  = 0
+       timeinfo % tm_mon   = 0
+       timeinfo % tm_year  = 0
+       timeinfo % tm_wday  = 0
+       timeinfo % tm_yday  = 0
+
+       ! We use UTC times, so marking Daylight Saving Time (DST) 'not available'
+       ! (< 0). If this is set to 0, mktime will convert the timeinfo to DST and
+       ! add one hour.
+       timeinfo % tm_isdst = -1
+    END SUBROUTINE init_tm
+
+
+    SUBROUTINE fake_output_3d(a)
+
+       REAL(dp), INTENT(INOUT)       ::  a(:,:,:)
+       REAL(dp)                      ::  lxi, lyi
+       INTEGER ::  i,j,k
+
+       lyi = 2.0_dp * PI / (SIZE(a, 2) - 1.0_dp)
+       lxi = 2.0_dp * PI / (SIZE(a, 1) - 1.0_dp)
+
+       DO k = 1, SIZE(a, 3)
+       DO j = 1, SIZE(a, 2)
+       DO i = 1, SIZE(a, 1)
+           a(i,j,k) = SIN(lxi * i) * COS(lyi * j) + k
+       END DO
+       END DO
+       END DO
+
+    END SUBROUTINE fake_output_3d
+
+
+    SUBROUTINE fake_output_2d(a, offset)
+
+       REAL(dp), INTENT(INOUT) ::  a(:,:)
+       INTEGER, INTENT(IN)     ::  offset
+       REAL(dp)                ::  lxi, lyi
+       INTEGER                 ::  i,j
+
+       lyi = 2.0_dp*PI / (SIZE(a, 2) - 1.0_dp)
+       lxi = 2.0_dp*PI / (SIZE(a, 1) - 1.0_dp)
+
+       a(:,:) = 1.0_dp
+       DO j = 1, SIZE(a, 2)
+       DO i = 1, SIZE(a, 1)
+          a(i,j) = SIN(lxi * i) * COS(lyi * j) + offset
+       END DO
+       END DO
+
+    END SUBROUTINE fake_output_2d
+
+
+    SUBROUTINE linspace(start, stop, array)
+
+       REAL(dp), INTENT(IN)    ::  start, stop
+       REAL(dp), INTENT(INOUT) ::  array(0:)
+       INTEGER                 ::  i, n
+
+       n = UBOUND(array, 1)
+
+       IF (n .EQ. 0)  THEN
+
+          array(0) = start
+
+       ELSE
+
+          DO i = 0, n
+             array(i) = start + REAL(i, dp) / n * (stop - start)
+          END DO
+
+       END IF
+       
+    END SUBROUTINE linspace
+
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Reverse the order of the third (vertical) array dimension from top-down
+!> (COSMO) to bottom-up (PALM)
+!------------------------------------------------------------------------------!
+    SUBROUTINE reverse(input_arr)
+
+       REAL(dp), INTENT(INOUT) ::  input_arr(:,:,:)
+
+       input_arr = input_arr(:,:,size(input_arr, 3):1:-1)
+
+    END SUBROUTINE reverse
+
+
+    SUBROUTINE deaverage(avg_1, t1, avg_2, t2, avg_3, t3)
+
+       REAL(dp), DIMENSION(:,:,:), INTENT(IN)  ::  avg_1, avg_2
+       REAL(dp), INTENT(IN)                    ::  t1, t2, t3
+       REAL(dp), DIMENSION(:,:,:), INTENT(OUT) ::  avg_3
+
+       REAL(dp)                                ::  ti
+ 
+       ti = 1.0_dp / t3
+
+       avg_3(:,:,:) = ti * ( t2 * avg_2(:,:,:) - t1 * avg_1(:,:,:) )
+
+    END SUBROUTINE deaverage
+
+
+    SUBROUTINE get_basic_state(z, beta, p_sl, t_sl, rd, g, p0)
+
+       REAL(dp), INTENT(IN)  ::  z(1:)  !< height [m]
+       REAL(dp), INTENT(IN)  ::  beta   !< logarithmic lapse rate, dT / d ln(p) [K]
+       REAL(dp), INTENT(IN)  ::  p_sl   !< reference pressure [Pa]
+       REAL(dp), INTENT(IN)  ::  t_sl   !< reference tempereature [K]
+       REAL(dp), INTENT(IN)  ::  rd     !< ideal gas constant of dry air [J/kg/K]
+       REAL(dp), INTENT(IN)  ::  g      !< acceleration of Earth's gravity [m/s^2]
+       REAL(dp), INTENT(OUT) ::  p0(1:) !< COSMO-DE basic state pressure [Pa]
+       REAL(dp) ::  root_frac, factor   !< precomputed factors
+
+       factor = - t_sl / beta
+       root_frac = (2.0_dp * beta * g) / (rd * t_sl*t_sl)
+
+       p0(:) = p_sl * EXP(                                                     &
+                  factor * ( 1.0_dp - SQRT( 1.0_dp - root_frac * z(:) ) )  &
+               )
+
+    END SUBROUTINE get_basic_state
+
+
+    ! Convert a real number to a string in scientific notation
+    ! showing four significant digits.
+    CHARACTER(LEN=11) FUNCTION real_to_str(val, format)
+
+        REAL(dp), INTENT(IN)                   ::  val
+        CHARACTER(LEN=*), OPTIONAL, INTENT(IN) ::  format
+
+        IF (PRESENT(format))  THEN
+           WRITE(real_to_str, TRIM(format)) val
+        ELSE
+           WRITE(real_to_str, '(E11.4)') val
+           real_to_str = ADJUSTL(real_to_str)
+        END IF
+
+    END FUNCTION real_to_str
+
+
+    CHARACTER(LEN=12) FUNCTION real_to_str_f(val)
+
+        REAL(dp), INTENT(IN) ::  val
+
+        WRITE(real_to_str_f, '(F12.4)') val
+        real_to_str_f = ADJUSTL(real_to_str_f)
+
+    END FUNCTION real_to_str_f
+
+
+    CHARACTER(LEN=10) FUNCTION str(val)
+
+        INTEGER, INTENT(IN) ::  val
+
+        WRITE(str, '(i10)') val
+        str = ADJUSTL(str)
+
+    END FUNCTION str
+
+
+    CHARACTER(LEN=30) FUNCTION strs(vals)
+
+        INTEGER, INTENT(IN) ::  vals(:)
+        INTEGER ::  i
+
+        strs = ''
+        DO i = 1, SIZE(vals)
+           strs = TRIM(strs) // TRIM(str(vals(i)))
+        END DO
+
+    END FUNCTION strs
+
+
+    SUBROUTINE normalize_path(path)
+        
+        CHARACTER(LEN=*), INTENT(INOUT) ::  path
+        INTEGER ::  n
+
+        n = LEN_TRIM(path)
+
+        IF (path(n:n) .NE. '/')  THEN
+           path = TRIM(path) // '/'
+        END IF
+
+    END SUBROUTINE
+
+ END MODULE
+
Index: palm/trunk/UTIL/inifor/tests/Makefile
===================================================================
--- palm/trunk/UTIL/inifor/tests/Makefile	(revision 2696)
+++ palm/trunk/UTIL/inifor/tests/Makefile	(revision 2696)
@@ -0,0 +1,92 @@
+#------------------------------------------------------------------------------!
+# This file is part of PALM/PALM-4U.
+#
+# PALM/PALM-4U is free software: you can redistribute it and/or modify it under 
+# the terms of the GNU General Public License as published by the Free Software
+# Foundation, either version 3 of the License, or (at your option) any later 
+# version.
+#
+# PALM/PALM-4U is distributed in the hope that it will be useful, but WITHOUT 
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# PALM. If not, see <http://www.gnu.org/licenses/>.
+#
+# Copyright 2017-2017 Leibniz Universitaet Hannover, Deutscher Wetterdienst
+# Offenbach
+#------------------------------------------------------------------------------!
+#
+# Current revisions:
+# -----------------
+# 
+# 
+# Former revisions:
+# -----------------
+# $Id$
+# Initial revision
+#
+# 
+#
+# Authors:
+# --------
+# @author Eckhard Kadasch
+#
+# Description:
+# ------------
+# This makefile is called from INIFOR's main makefile to compile and run tests.
+#------------------------------------------------------------------------------!
+PROJECT = inifor
+PROJECT_PATH = ..
+BIN_PATH = $(PROJECT_PATH)/bin
+SRC_PATH = $(PROJECT_PATH)/src
+TESTS    = $(patsubst %.f90,%,$(wildcard test-*.f90))
+
+MODULES = util.mod $(SRC_PATH)/defs.mod $(SRC_PATH)/control.mod $(SRC_PATH)/util.mod $(SRC_PATH)/types.mod $(SRC_PATH)/transform.mod $(SRC_PATH)/io.mod $(SRC_PATH)/grid.mod
+SOURCES = $(MODULES:%.mod=%.f90)
+OBJECTS = $(SOURCES:%.f90=%.o)
+
+FC      = gfortran
+FFLAGS  = -g -Wall -fdefault-real-8 \
+		  -ffpe-trap=invalid,zero,underflow,overflow
+INCLUDE = -I$(SRC_PATH)
+LIBRARY = -L/home/ekadasch/local/lib64 -lnetcdff -lutil
+		 
+.PHONY: clean test $(PROJECT)
+
+test: information $(PROJECT) $(TESTS)
+
+information:
+	@echo $(TESTS)
+
+$(PROJECT):
+	$(MAKE) -C $(PROJECT_PATH) $(PROJECT)
+
+test-grid: $(OBJECTS) $(MODULES) test-grid.o test-grid.mod util.mod util.o
+	mkdir -p $(BIN_PATH)
+	$(FC) $(FFLAGS) $(OBJECTS) $@.o -o $(BIN_PATH)/$@ $(INCLUDE) $(LIBRARY)
+	$(BIN_PATH)/$@
+
+# $(TESTS) expands to files of this pattern:
+test-%: $(OBJECTS) $(MODULES) test-%.o test-%.mod
+	mkdir -p $(BIN_PATH)
+	$(FC) $(FFLAGS) $(OBJECTS) $@.o -o $(BIN_PATH)/$@ $(INCLUDE) $(LIBRARY)
+	$(BIN_PATH)/$@
+
+%.o: %.mod
+
+util.o: util.f90
+	$(FC) $(FFLAGS) -c $< -o $@
+
+util.mod: util.f90
+	$(FC) $(FFLAGS) -c $< -o $(@:%.mod=%.o)
+
+test-%.o: test-%.f90
+	$(FC) $(FFLAGS) -c $< -o $@ $(INCLUDE)
+
+test-%.mod: test-%.f90
+	$(FC) $(FFLAGS) -c $< -o $(@:%.mod=%.o) $(INCLUDE)
+
+clean:
+	rm -rf *.mod *.o
+	rm -rf $(BIN_PATH)/test-*
Index: palm/trunk/UTIL/inifor/tests/Makefile.gnu
===================================================================
--- palm/trunk/UTIL/inifor/tests/Makefile.gnu	(revision 2696)
+++ palm/trunk/UTIL/inifor/tests/Makefile.gnu	(revision 2696)
@@ -0,0 +1,93 @@
+#------------------------------------------------------------------------------!
+# This file is part of PALM/PALM-4U.
+#
+# PALM/PALM-4U is free software: you can redistribute it and/or modify it under 
+# the terms of the GNU General Public License as published by the Free Software
+# Foundation, either version 3 of the License, or (at your option) any later 
+# version.
+#
+# PALM/PALM-4U is distributed in the hope that it will be useful, but WITHOUT 
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# PALM. If not, see <http://www.gnu.org/licenses/>.
+#
+# Copyright 2017-2017 Leibniz Universitaet Hannover, Deutscher Wetterdienst
+# Offenbach
+#------------------------------------------------------------------------------!
+#
+# Current revisions:
+# -----------------
+# 
+# 
+# Former revisions:
+# -----------------
+# $Id$
+# Initial revision
+#
+# 
+#
+# Authors:
+# --------
+# @author Eckhard Kadasch
+#
+# Description:
+# ------------
+# This file serves as a templete makefile for compiling INIFOR tests with
+# gfortran.
+#------------------------------------------------------------------------------!
+PROJECT = inifor
+PROJECT_PATH = ..
+BIN_PATH = $(PROJECT_PATH)/bin
+SRC_PATH = $(PROJECT_PATH)/src
+TESTS    = $(patsubst %.f90,%,$(wildcard test-*.f90))
+
+MODULES = util.mod $(SRC_PATH)/defs.mod $(SRC_PATH)/control.mod $(SRC_PATH)/util.mod $(SRC_PATH)/types.mod $(SRC_PATH)/transform.mod $(SRC_PATH)/io.mod $(SRC_PATH)/grid.mod
+SOURCES = $(MODULES:%.mod=%.f90)
+OBJECTS = $(SOURCES:%.f90=%.o)
+
+FC      = gfortran
+FFLAGS  = -g -Wall -fdefault-real-8 \
+		  -ffpe-trap=invalid,zero,underflow,overflow
+INCLUDE = -I/home/ekadasch/local/include -I$(SRC_PATH)
+LIBRARY = -L/home/ekadasch/local/lib64 -lnetcdff -lutil
+		 
+.PHONY: clean test $(PROJECT)
+
+test: information $(PROJECT) $(TESTS)
+
+information:
+	@echo $(TESTS)
+
+$(PROJECT):
+	$(MAKE) -C $(PROJECT_PATH) $(PROJECT)
+
+test-grid: $(OBJECTS) $(MODULES) test-grid.o test-grid.mod util.mod util.o
+	mkdir -p $(BIN_PATH)
+	$(FC) $(FFLAGS) $(OBJECTS) $@.o -o $(BIN_PATH)/$@ -I$(SRC_PATH) $(LIBRARY)
+	$(BIN_PATH)/$@
+
+# $(TESTS) expands to files of this pattern:
+test-%: $(OBJECTS) $(MODULES) test-%.o test-%.mod
+	mkdir -p $(BIN_PATH)
+	$(FC) $(FFLAGS) $(OBJECTS) $@.o -o $(BIN_PATH)/$@ -I$(SRC_PATH) $(LIBRARY)
+	$(BIN_PATH)/$@
+
+%.o: %.mod
+
+util.o: util.f90
+	$(FC) $(FFLAGS) -c $< -o $@
+
+util.mod: util.f90
+	$(FC) $(FFLAGS) -c $< -o $(@:%.mod=%.o)
+
+test-%.o: test-%.f90
+	$(FC) $(FFLAGS) -c $< -o $@ $(INCLUDE)
+
+test-%.mod: test-%.f90
+	$(FC) $(FFLAGS) -c $< -o $(@:%.mod=%.o) $(INCLUDE)
+
+clean:
+	rm -rf *.mod *.o
+	rm -rf $(BIN_PATH)/test-*
Index: palm/trunk/UTIL/inifor/tests/Makefile.ifort
===================================================================
--- palm/trunk/UTIL/inifor/tests/Makefile.ifort	(revision 2696)
+++ palm/trunk/UTIL/inifor/tests/Makefile.ifort	(revision 2696)
@@ -0,0 +1,92 @@
+#------------------------------------------------------------------------------!
+# This file is part of PALM/PALM-4U.
+#
+# PALM/PALM-4U is free software: you can redistribute it and/or modify it under 
+# the terms of the GNU General Public License as published by the Free Software
+# Foundation, either version 3 of the License, or (at your option) any later 
+# version.
+#
+# PALM/PALM-4U is distributed in the hope that it will be useful, but WITHOUT 
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# PALM. If not, see <http://www.gnu.org/licenses/>.
+#
+# Copyright 2017-2017 Leibniz Universitaet Hannover, Deutscher Wetterdienst
+# Offenbach
+#------------------------------------------------------------------------------!
+#
+# Current revisions:
+# -----------------
+# 
+# 
+# Former revisions:
+# -----------------
+# $Id$
+# Initial revision
+#
+# 
+#
+# Authors:
+# --------
+# @author Eckhard Kadasch
+#
+# Description:
+# ------------
+# This file serves as a templete makefile for compiling INIFOR tests with
+# ifort.
+#------------------------------------------------------------------------------!
+PROJECT = inifor
+PROJECT_PATH = ..
+BIN_PATH = $(PROJECT_PATH)/bin
+SRC_PATH = $(PROJECT_PATH)/src
+TESTS    = $(patsubst %.f90,%,$(wildcard test-*.f90))
+
+MODULES = util.mod $(SRC_PATH)/defs.mod $(SRC_PATH)/control.mod $(SRC_PATH)/util.mod $(SRC_PATH)/types.mod $(SRC_PATH)/transform.mod $(SRC_PATH)/io.mod $(SRC_PATH)/grid.mod
+SOURCES = $(MODULES:%.mod=%.f90)
+OBJECTS = $(SOURCES:%.f90=%.o)
+
+FC      = ifort
+FFLAGS  = -g -real-size 64 -no-wrap-margin
+INCLUDE = -I$(SRC_PATH)
+LIBRARY = -L/usr/local/pkg/netcdf/4.3.2/lib -lnetcdff -lutil
+
+.PHONY: clean test $(PROJECT)
+
+test: information $(PROJECT) $(TESTS)
+
+information:
+	@echo $(TESTS)
+
+$(PROJECT):
+	$(MAKE) -C $(PROJECT_PATH) $(PROJECT)
+
+test-grid: $(OBJECTS) $(MODULES) test-grid.o test-grid.mod util.mod util.o
+	mkdir -p $(BIN_PATH)
+	$(FC) $(FFLAGS) $(OBJECTS) $@.o -o $(BIN_PATH)/$@ $(INCLUDE) $(LIBRARY)
+	$(BIN_PATH)/$@
+
+# $(TESTS) expands to files of this pattern:
+test-%: $(OBJECTS) $(MODULES) test-%.o test-%.mod
+	mkdir -p $(BIN_PATH)
+	$(FC) $(FFLAGS) $(OBJECTS) $@.o -o $(BIN_PATH)/$@ $(INCLUDE) $(LIBRARY)
+	$(BIN_PATH)/$@
+
+%.o: %.mod
+
+util.o: util.f90
+	$(FC) $(FFLAGS) -c $< -o $@
+
+util.mod: util.f90
+	$(FC) $(FFLAGS) -c $< -o $(@:%.mod=%.o)
+
+test-%.o: test-%.f90
+	$(FC) $(FFLAGS) -c $< -o $@ $(INCLUDE)
+
+test-%.mod: test-%.f90
+	$(FC) $(FFLAGS) -c $< -o $(@:%.mod=%.o) $(INCLUDE)
+
+clean:
+	rm -rf *.mod *.o
+	rm -rf $(BIN_PATH)/test-*
Index: palm/trunk/UTIL/inifor/tests/test-boundaries.f90
===================================================================
--- palm/trunk/UTIL/inifor/tests/test-boundaries.f90	(revision 2696)
+++ palm/trunk/UTIL/inifor/tests/test-boundaries.f90	(revision 2696)
@@ -0,0 +1,111 @@
+!> @file tests/test-boundaries.f90
+!------------------------------------------------------------------------------!
+! This file is part of PALM/PALM-4U.
+!
+! PALM/PALM-4U is free software: you can redistribute it and/or modify it under 
+! the terms of the GNU General Public License as published by the Free Software
+! Foundation, either version 3 of the License, or (at your option) any later 
+! version.
+!
+! PALM/PALM-4U is distributed in the hope that it will be useful, but WITHOUT 
+! ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+! FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+!
+! You should have received a copy of the GNU General Public License along with
+! PALM. If not, see <http://www.gnu.org/licenses/>.
+!
+! Copyright 2017-2017 Leibniz Universitaet Hannover, Deutscher Wetterdienst
+! Offenbach
+!------------------------------------------------------------------------------!
+!
+! Current revisions:
+! -----------------
+! 
+! 
+! Former revisions:
+! -----------------
+! $Id$
+! Initial revision
+!
+! 
+!
+! Authors:
+! --------
+! @author Eckhard Kadasch
+!
+! Description:
+! ------------
+!> This program tests the boundary grid mode of INIFOR's init_grid_definition()
+!> routine.
+!------------------------------------------------------------------------------!
+ PROGRAM test_boundaries
+
+    USE grid, ONLY  :  init_grid_definition
+    USE types, ONLY :  grid_definition
+    USE test_utils
+    
+    IMPLICIT NONE
+
+    CHARACTER(LEN=*), PARAMETER     ::  title = 'boundary initialization'
+    CHARACTER(LEN=20), DIMENSION(2) ::  kind_list = (/ 'boundary', 'boundary' /)
+    LOGICAL                         ::  res
+
+    INTEGER                         ::  i, nx, ny, nz
+    TYPE(grid_definition)           ::  boundary_grid
+
+    REAL ::  dx, dy, dz, lx, ly, lz, x(2), y(10), z(10)
+
+    CALL begin_test(title, res)
+
+    ! Arange
+    dx = 1e-3
+    dy = 1.0
+    dz = 10.
+    nx = 9
+    ny = 9
+    nz = 9
+    lx = 1.0
+    ly = 1e1
+    lz = 1e2
+    x =   (/ -0.5*dx, lx + 0.5*dx /)
+    y = ( (/0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0/) + 0.5 )
+    z = ( (/0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0/) + 0.5 ) * 10
+
+    DO i = 1, SIZE(kind_list)
+   
+       ! Act
+       CALL init_grid_definition(                                              &
+          kind = kind_list(i), grid = boundary_grid,                           &
+          xmin = x(i), xmax = x(i),                                            &
+          ymin =  0.5 * dy, ymax = ly - 0.5 * dy,                              &
+          zmin =  0.5 * dz, zmax = lz - 0.5 * dz,                              &
+          x0 = 0.0, y0 = 0.0, z0 = 0.0,                                        &
+          nx = 0, ny = ny, nz = nz,                                            &
+          dx = dx, dy = dy, dz = dz )
+   
+       ! Assert
+       ! asserting that grid % x has exactly two entries and that they match
+       ! expected coordinates
+       res = res .AND. assert_equal(boundary_grid % x, (/ x(i) /), 'x coordinates')
+
+       ! asserting that grid % y and % z have expected ranges and coordinates
+       res = res .AND. assert_equal( boundary_grid % y, y, 'y coordinates')
+       res = res .AND. assert_equal( boundary_grid % z, z, 'z coordinates')
+   
+       CALL fini_grid_definition(boundary_grid)
+    END DO
+
+    CALL end_test(title, res)
+
+ CONTAINS
+
+ SUBROUTINE fini_grid_definition(grid)
+    TYPE(grid_definition), INTENT(INOUT) ::  grid
+
+    DEALLOCATE( grid % x, grid % y, grid % z )
+    DEALLOCATE( grid % kk )
+    DEALLOCATE( grid % w_verti )
+
+ END SUBROUTINE fini_grid_definition
+
+ END PROGRAM test_boundaries
Index: palm/trunk/UTIL/inifor/tests/test-centre-velocities.f90
===================================================================
--- palm/trunk/UTIL/inifor/tests/test-centre-velocities.f90	(revision 2696)
+++ palm/trunk/UTIL/inifor/tests/test-centre-velocities.f90	(revision 2696)
@@ -0,0 +1,77 @@
+!> @file tests/test-centre-velocites.f90
+!------------------------------------------------------------------------------!
+! This file is part of PALM/PALM-4U.
+!
+! PALM/PALM-4U is free software: you can redistribute it and/or modify it under 
+! the terms of the GNU General Public License as published by the Free Software
+! Foundation, either version 3 of the License, or (at your option) any later 
+! version.
+!
+! PALM/PALM-4U is distributed in the hope that it will be useful, but WITHOUT 
+! ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+! FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+!
+! You should have received a copy of the GNU General Public License along with
+! PALM. If not, see <http://www.gnu.org/licenses/>.
+!
+! Copyright 2017-2017 Leibniz Universitaet Hannover, Deutscher Wetterdienst
+! Offenbach
+!------------------------------------------------------------------------------!
+!
+! Current revisions:
+! -----------------
+! 
+! 
+! Former revisions:
+! -----------------
+! $Id$
+! Initial revision
+!
+! 
+!
+! Authors:
+! --------
+! @author Eckhard Kadasch
+!
+! Description:
+! ------------
+!> This program tests INIFOR's central velocity interpolation.
+!------------------------------------------------------------------------------!
+ PROGRAM test_centre_velocities
+
+    USE test_utils
+    USE transform, &
+        ONLY :  centre_velocities
+    
+    IMPLICIT NONE
+
+    CHARACTER(LEN=*), PARAMETER ::  title = "centre velocities"
+    LOGICAL                     ::  res
+    REAL, DIMENSION(3,3,1)      ::  u_face, u_centre, u_ref
+    REAL, DIMENSION(3,3,1)      ::  v_face, v_centre, v_ref
+    INTEGER                     ::  i
+
+    CALL begin_test(title, res)
+
+    ! Arange
+    u_face = RESHAPE( (/1, 2, 3, 1, 2, 3, 1, 2, 3/), SHAPE(u_face))
+    v_face = RESHAPE( (/1, 1, 1, 2, 2, 2, 3, 3, 3/), SHAPE(v_face))
+
+    u_ref = RESHAPE( (/0.0, 1.5, 2.5, 0.0, 1.5, 2.5, 0.0, 1.5, 2.5/), SHAPE(u_ref))
+    v_ref = RESHAPE( (/0.0, 0.0, 0.0, 1.5, 1.5, 1.5, 2.5, 2.5, 2.5/), SHAPE(v_ref))
+
+    u_centre = 0.0
+    v_centre = 0.0
+
+    ! Act
+    CALL centre_velocities(u_face, v_face, u_centre, v_centre)
+
+    ! Assert that the correct central velocities u_centre and v_centre are computed.
+    DO i = 1, 3
+       res = res .AND. assert_equal(u_centre(:,i,1), u_ref(:,i,1), 'centering u')
+       res = res .AND. assert_equal(v_centre(i,:,1), v_ref(i,:,1), 'centering v')
+    END DO
+
+    CALL end_test(title, res)
+
+ END PROGRAM test_centre_velocities
Index: palm/trunk/UTIL/inifor/tests/test-grid.f90
===================================================================
--- palm/trunk/UTIL/inifor/tests/test-grid.f90	(revision 2696)
+++ palm/trunk/UTIL/inifor/tests/test-grid.f90	(revision 2696)
@@ -0,0 +1,93 @@
+!> @file tests/test-grid.f90
+!------------------------------------------------------------------------------!
+! This file is part of PALM/PALM-4U.
+!
+! PALM/PALM-4U is free software: you can redistribute it and/or modify it under 
+! the terms of the GNU General Public License as published by the Free Software
+! Foundation, either version 3 of the License, or (at your option) any later 
+! version.
+!
+! PALM/PALM-4U is distributed in the hope that it will be useful, but WITHOUT 
+! ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+! FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+!
+! You should have received a copy of the GNU General Public License along with
+! PALM. If not, see <http://www.gnu.org/licenses/>.
+!
+! Copyright 2017-2017 Leibniz Universitaet Hannover, Deutscher Wetterdienst
+! Offenbach
+!------------------------------------------------------------------------------!
+!
+! Current revisions:
+! -----------------
+! 
+! 
+! Former revisions:
+! -----------------
+! $Id$
+! Initial revision
+!
+! 
+!
+! Authors:
+! --------
+! @author Eckhard Kadasch
+!
+! Description:
+! ------------
+!> This program tests the PALM grid mode of INIFOR's init_grid_definition()
+!> routine.
+!------------------------------------------------------------------------------!
+ PROGRAM test_grid
+
+    USE grid, ONLY :  grid_definition, init_grid_definition
+    USE test_utils
+    
+    IMPLICIT NONE
+
+    CHARACTER(LEN=*), PARAMETER ::  title = "grid initialization"
+    LOGICAL                     ::  res
+
+    TYPE(grid_definition) ::  mygrid
+    INTEGER               ::  i
+    INTEGER, PARAMETER    ::  nx = 9,   ny = 19,   nz = 29
+    REAL, PARAMETER       ::  lx = 100., ly = 200., lz = 300.
+    REAL, DIMENSION(0:nx) ::  x, xu
+    REAL, DIMENSION(0:ny) ::  y, yv
+    REAL, DIMENSION(0:nz) ::  z, zw
+
+    CALL begin_test(title, res)
+
+    ! Arange
+    CALL init_grid_definition('palm', grid = mygrid,                           &
+                              xmin = 0., xmax = lx,                            &
+                              ymin = 0., ymax = ly,                            &
+                              zmin = 0., zmax = lz,                            &
+                              x0 = 0.0, y0 = 0.0, z0 = 0.0,                    &
+                              nx = nx, ny = ny, nz = nz)
+
+    ! Act
+    DO i = 0, nx
+       xu(i) = real(i) / (nx+1) * lx
+       x(i)  = 0.5*mygrid%dx + xu(i)
+    END DO
+    DO i = 0, ny
+       yv(i) = real(i) / (ny+1) * ly
+       y(i)  = 0.5*mygrid%dy + yv(i)
+    END DO
+    DO i = 0, nz
+       zw(i) = real(i) / (nz+1) * lz
+       z(i)  = 0.5*mygrid%dz + zw(i)
+    END DO
+
+    ! Assert coordinates match
+    res = res .AND. assert_equal(x,      mygrid%x,  "x" )
+    res = res .AND. assert_equal(xu(1:), mygrid%xu, "xu")
+    res = res .AND. assert_equal(y,      mygrid%y,  "y" )
+    res = res .AND. assert_equal(yv(1:), mygrid%yv, "yu")
+    res = res .AND. assert_equal(z,      mygrid%z,  "z" )
+    res = res .AND. assert_equal(zw(1:), mygrid%zw, "zu")
+
+    CALL end_test(title, res)
+
+ END PROGRAM test_grid
Index: palm/trunk/UTIL/inifor/tests/test-input-files.f90
===================================================================
--- palm/trunk/UTIL/inifor/tests/test-input-files.f90	(revision 2696)
+++ palm/trunk/UTIL/inifor/tests/test-input-files.f90	(revision 2696)
@@ -0,0 +1,110 @@
+!> @file tests/test-input-files.f90
+!------------------------------------------------------------------------------!
+! This file is part of PALM/PALM-4U.
+!
+! PALM/PALM-4U is free software: you can redistribute it and/or modify it under 
+! the terms of the GNU General Public License as published by the Free Software
+! Foundation, either version 3 of the License, or (at your option) any later 
+! version.
+!
+! PALM/PALM-4U is distributed in the hope that it will be useful, but WITHOUT 
+! ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+! FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+!
+! You should have received a copy of the GNU General Public License along with
+! PALM. If not, see <http://www.gnu.org/licenses/>.
+!
+! Copyright 2017-2017 Leibniz Universitaet Hannover, Deutscher Wetterdienst
+! Offenbach
+!------------------------------------------------------------------------------!
+!
+! Current revisions:
+! -----------------
+! 
+! 
+! Former revisions:
+! -----------------
+! $Id$
+! Initial revision
+!
+! 
+!
+! Authors:
+! --------
+! @author Eckhard Kadasch
+!
+! Description:
+! ------------
+!> This program tests INIFOR's timestamping used for generating input file
+!> names.
+!------------------------------------------------------------------------------!
+ PROGRAM test_input_files
+
+    USE defs,                                                                  &
+        ONLY :  PATH
+    USE grid,                                                                  & 
+        ONLY :  input_file_list
+    USE test_utils
+    
+    IMPLICIT NONE
+
+    CHARACTER(LEN=50)                              ::  title
+    CHARACTER(LEN=PATH), ALLOCATABLE, DIMENSION(:) ::  file_list, ref_list
+    LOGICAL                                        ::  res
+    INTEGER                                        ::  i     
+
+    title = "input files - daylight saving to standard time"
+    CALL begin_test(title, res)
+
+    ! Arange
+    ! ...a date range that inlcudes a shift from daylight saving time to
+    ! standard time (29.10.2017). Since all time stamps in COSMO-DE input files
+    ! are in UTC, this should not the naming cadence.
+    ALLOCATE( ref_list(6) )
+    ref_list(1)  = './laf2017102823-test.nc'
+    ref_list(2)  = './laf2017102900-test.nc'
+    ref_list(3)  = './laf2017102901-test.nc'
+    ref_list(4)  = './laf2017102902-test.nc'
+    ref_list(5)  = './laf2017102903-test.nc'
+    ref_list(6)  = './laf2017102904-test.nc'
+
+    ! Act
+    CALL input_file_list(start_date_string='2017102823',                       &
+                         start_hour=0, end_hour=5, step_hour=1,                &
+                         path='./', prefix="laf", suffix='-test',              &
+                         file_list=file_list)
+
+    ! Assert
+    DO i = 1, 6
+       res = res .AND. (TRIM(ref_list(i)) .EQ. TRIM(file_list(i)))
+    END DO
+
+    DEALLOCATE( ref_list, file_list )
+    CALL end_test(title, res)
+
+
+    title = "input files - leap day"
+    CALL begin_test(title, res)
+
+    ! Arange
+    ! ...a date range that inlcudes a leap day (29. Feb. 2016) which should be
+    ! inlcuded in UTC time stamps.
+    ALLOCATE( ref_list(2) )
+    ref_list(1)  = './laf2016022823-test.nc'
+    ref_list(2)  = './laf2016022900-test.nc'
+
+    ! Act
+    CALL input_file_list(start_date_string='2016022823',                       &
+                         start_hour=0, end_hour=1, step_hour=1,                &
+                         path='./', prefix="laf", suffix='-test',              &
+                         file_list=file_list)
+
+    ! Assert
+    DO i = 1, 2
+       res = res .AND. (TRIM(ref_list(i)) .EQ. TRIM(file_list(i)))
+    END DO
+
+    DEALLOCATE( ref_list, file_list )
+    CALL end_test(title, res)
+
+ END PROGRAM test_input_files
Index: palm/trunk/UTIL/inifor/tests/test-interpolation.f90
===================================================================
--- palm/trunk/UTIL/inifor/tests/test-interpolation.f90	(revision 2696)
+++ palm/trunk/UTIL/inifor/tests/test-interpolation.f90	(revision 2696)
@@ -0,0 +1,231 @@
+!> @file tests/test-interpolation.f90
+!------------------------------------------------------------------------------!
+! This file is part of PALM/PALM-4U.
+!
+! PALM/PALM-4U is free software: you can redistribute it and/or modify it under 
+! the terms of the GNU General Public License as published by the Free Software
+! Foundation, either version 3 of the License, or (at your option) any later 
+! version.
+!
+! PALM/PALM-4U is distributed in the hope that it will be useful, but WITHOUT 
+! ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+! FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+!
+! You should have received a copy of the GNU General Public License along with
+! PALM. If not, see <http://www.gnu.org/licenses/>.
+!
+! Copyright 2017-2017 Leibniz Universitaet Hannover, Deutscher Wetterdienst
+! Offenbach
+!------------------------------------------------------------------------------!
+!
+! Current revisions:
+! -----------------
+! 
+! 
+! Former revisions:
+! -----------------
+! $Id$
+! Initial revision
+!
+! 
+!
+! Authors:
+! --------
+! @author Eckhard Kadasch
+!
+! Description:
+! ------------
+!> This program tests INIFOR's horizontal interpolation.
+!------------------------------------------------------------------------------!
+ PROGRAM test_interpolation
+
+    USE grid, &
+        ONLY:  grid_definition, init_grid_definition, TO_RADIANS, TO_DEGREES, &
+               linspace, hhl
+    USE transform, &
+        ONLY:  find_horizontal_neighbours, compute_horizontal_interp_weights
+    USE test_utils
+    
+    IMPLICIT NONE
+
+!
+!------------------------------------------------------------------------------
+!- Test 1: Find neighbours
+!------------------------------------------------------------------------------
+    CHARACTER(LEN=30) ::  title = "find neighbours"
+    LOGICAL           ::  res
+
+    TYPE(grid_definition) ::  palm_grid, cosmo_grid
+    INTEGER               ::  i, j, ii_ref(0:1, 0:1, 4), jj_ref(0:1, 0:1, 4)
+    INTEGER, PARAMETER    ::  nlon=3, nlat=3, nlev=2
+    REAL                  ::  w_ref(4), lat(0:2), lon(0:2)
+
+    title = "find neighbours"
+    CALL begin_test(title, res)
+
+    ! Arange.
+    ! Make a COSMO-DE grid with just two horizotal cells/three h. points
+    PRINT *, "INIT GRID"
+
+    ! Allocate grid.hhl for use in init_grid_definition. In INIFOR, this is done
+    ! in get_netcdf_variable_2d. In this test, grid.hhl is not used and only
+    ! defined manually because it is used in init_grid_definition. 
+    ALLOCATE (hhl (nlon, nlat, nlev) )
+    hhl(:,:,:) = 0.0
+    CALL init_grid_definition('cosmo-de', grid = cosmo_grid,                   &
+                              xmin = -5.0 * TO_RADIANS, xmax = 5.5 * TO_RADIANS, &
+                              ymin = -5.0 * TO_RADIANS, ymax = 6.5 * TO_RADIANS, &
+                              zmin =  0.0, zmax = 10.0,                        &
+                              x0 = 0.0, y0 = 0.0, z0 = 0.0,                    &
+                              nx = nlon-1, ny = nlat-1, nz = nlev-1)
+
+    PRINT *, "GRID DONE"
+    PRINT *, "COSMO lats: ", cosmo_grid % lat * TO_DEGREES
+    PRINT *, "COSMO lons: ", cosmo_grid % lon * TO_DEGREES
+    
+    res = assert_equal( (/cosmo_grid%lat(0), cosmo_grid % lon(0),              &
+                          cosmo_grid%lat(2), cosmo_grid % lon(2),              &
+                          cosmo_grid%dx*TO_DEGREES, cosmo_grid%dy*TO_DEGREES/),&
+                        (/-5.0 * TO_RADIANS, -5.0 * TO_RADIANS,                &
+                           6.5 * TO_RADIANS,  5.5 * TO_RADIANS,                &
+                           5.25, 5.75 /),    &
+                        "COSMO grid coordinates" )
+    ! Define a PALM-4U grid with only one cell, i.e. four points in the
+    ! horizontal plane. The points are located at the centres of
+    ! the COSMO-DE cells.
+    CALL init_grid_definition('palm intermediate', grid = palm_grid,           &
+                              xmin = 0.0, xmax = 1.0,                          &
+                              ymin = 0.0, ymax = 1.0,                          &
+                              zmin = 0.0, zmax = 1.0,                          &
+                              x0 = 0.0, y0 = 0.0, z0 = 0.0,                    &
+                              nx = 1, ny = 1, nz = 1)
+
+    palm_grid % clon(0,0) = 0.5 * cosmo_grid % lon(0)
+    palm_grid % clat(0,0) = 0.5 * cosmo_grid % lat(0)
+    
+    palm_grid % clon(0,1) = 0.5 * cosmo_grid % lon(0)
+    palm_grid % clat(0,1) = 0.5 * cosmo_grid % lat(2)
+
+    palm_grid % clon(1,1) = 0.5 * cosmo_grid % lon(2)
+    palm_grid % clat(1,1) = 0.5 * cosmo_grid % lat(2)
+
+    palm_grid % clon(1,0) = 0.5 * cosmo_grid % lon(2)
+    palm_grid % clat(1,0) = 0.5 * cosmo_grid % lat(0)
+
+    ii_ref(0,0,:) = (/0, 0, 1, 1/)
+    jj_ref(0,0,:) = (/0, 1, 1, 0/)
+
+    ii_ref(0,1,:) = (/0, 0, 1, 1/)
+    jj_ref(0,1,:) = (/1, 2, 2, 1/)
+    
+    ii_ref(1,1,:) = (/1, 1, 2, 2/)
+    jj_ref(1,1,:) = (/1, 2, 2, 1/)
+
+    ii_ref(1,0,:) = (/1, 1, 2, 2/)
+    jj_ref(1,0,:) = (/0, 1, 1, 0/)
+
+    ! Act
+    CALL find_horizontal_neighbours(cosmo_grid % lat, cosmo_grid % lon,        &
+       cosmo_grid % dxi, cosmo_grid % dyi, palm_grid % clat, palm_grid % clon, &
+       palm_grid % ii, palm_grid % jj)
+
+    ! Assert
+    DO j = 0, 1
+    DO i = 0, 1
+       res = res .AND. ALL(palm_grid%ii(i,j,:) == ii_ref(i,j,:))
+       PRINT *, "ii     : ", palm_grid%ii(i,j,:)
+       PRINT *, "ii_ref : ", ii_ref(i,j,:), " indices match? ", res
+       res = res .AND. ALL(palm_grid%jj(i,j,:) == jj_ref(i,j,:))
+       PRINT *, "jj     : ", palm_grid%jj(i,j,:)
+       PRINT *, "jj_ref : ", jj_ref(i,j,:), " indices match? ", res
+    END DO
+    END DO
+
+    CALL end_test(title, res)
+    
+
+!
+!------------------------------------------------------------------------------
+!- Test 2: Compute weights for linear interpolation
+!------------------------------------------------------------------------------
+    title = "interpolation weights"
+    CALL begin_test(title, res)
+
+    ! Arange
+    ! defining some shorthands
+    lon(:) = cosmo_grid % lon(:)
+    lat(:) = cosmo_grid % lat(:)
+
+    ! set up PALM-4U points at 1/4 and 1/3 of the COSMO grid widths
+    palm_grid % clon(0,0) = -0.25  * (lon(1) - lon(0)) + lon(1)
+    palm_grid % clat(0,0) = -2./3. * (lat(1) - lat(0)) + lat(1)
+    
+    palm_grid % clon(0,1) = -2./3. * (lon(1) - lon(0)) + lon(1)
+    palm_grid % clat(0,1) = +0.25  * (lat(2) - lat(1)) + lat(1)
+
+    palm_grid % clon(1,1) = +0.25  * (lon(2) - lon(1)) + lon(1)
+    palm_grid % clat(1,1) = +2./3. * (lat(2) - lat(1)) + lat(1)
+
+    palm_grid % clon(1,0) = +2./3. * (lon(2) - lon(1)) + lon(1)
+    palm_grid % clat(1,0) = -0.25  * (lat(1) - lat(0)) + lat(1)
+
+    DO j = 0, 1
+    DO i = 0, 1
+       PRINT *, "PALM lon, lat: ", palm_grid % clon(i,j) * TO_DEGREES, palm_grid % clat(i,j)*TO_DEGREES
+    END DO
+    END DO
+
+    ! Act
+    CALL find_horizontal_neighbours(cosmo_grid % lat, cosmo_grid % lon,        &
+       cosmo_grid % dxi, cosmo_grid % dyi, palm_grid % clat, palm_grid % clon, &
+       palm_grid % ii, palm_grid % jj)
+
+    CALL compute_horizontal_interp_weights(cosmo_grid % lat, cosmo_grid % lon, &
+       cosmo_grid % dxi, cosmo_grid % dyi, palm_grid % clat,                   &
+       palm_grid % clon, palm_grid % ii, palm_grid % jj, palm_grid % w_horiz)
+
+    ! Assert
+    ! asserting that neighbours are still correct
+    DO j = 0, 1
+    DO i = 0, 1
+       res = res .AND. ALL(palm_grid%ii(i,j,:) == ii_ref(i,j,:))
+       PRINT *, "ii     : ", palm_grid%ii(i,j,:)
+       PRINT *, "ii_ref : ", ii_ref(i,j,:), " indices match? ", res
+       res = res .AND. ALL(palm_grid%jj(i,j,:) == jj_ref(i,j,:))
+       PRINT *, "jj     : ", palm_grid%jj(i,j,:)
+       PRINT *, "jj_ref : ", jj_ref(i,j,:), " indices match? ", res
+    END DO
+    END DO
+
+    ! asserting that all four weights equal, 0.5, 0.25, 1./6., and 1./12., resp.
+    w_ref = (/1./6., 1./12., 0.25, 0.5/)
+    res = res .AND. assert_equal(palm_grid % w_horiz(0, 0, :), w_ref(:), "weights at (0,0)")
+    !res = res .AND. palm_grid % w_horiz(0, 0, 1) == w_ref(1)
+    !res = res .AND. palm_grid % w_horiz(0, 0, 2) == w_ref(2)
+    !res = res .AND. palm_grid % w_horiz(0, 0, 3) == w_ref(3)
+    !res = res .AND. palm_grid % w_horiz(0, 0, 4) == w_ref(4)
+
+    w_ref = (/0.5, 1./6., 1./12., 0.25/)
+    res = res .AND. assert_equal(palm_grid % w_horiz(0, 1, :), w_ref(:), "weights at (0,1)")
+    !res = res .AND. palm_grid % w_horiz(0, 1, 1) == w_ref(4)
+    !res = res .AND. palm_grid % w_horiz(0, 1, 2) == w_ref(1)
+    !res = res .AND. palm_grid % w_horiz(0, 1, 3) == w_ref(2)
+    !res = res .AND. palm_grid % w_horiz(0, 1, 4) == w_ref(3)
+
+    w_ref = (/0.25, 0.5, 1./6., 1./12./)
+    res = res .AND. assert_equal(palm_grid % w_horiz(1, 1, :), w_ref(:), "weights at (1,1)")
+    !res = res .AND. palm_grid % w_horiz(1, 1, 1) == w_ref(3)
+    !res = res .AND. palm_grid % w_horiz(1, 1, 2) == w_ref(4)
+    !res = res .AND. palm_grid % w_horiz(1, 1, 3) == w_ref(1)
+    !res = res .AND. palm_grid % w_horiz(1, 1, 4) == w_ref(2)
+
+    w_ref = (/1./12., 0.25, 0.5, 1./6./)
+    res = res .AND. assert_equal(palm_grid % w_horiz(1, 0, :), w_ref(:), "weights at (1,0)")
+    !res = res .AND. palm_grid % w_horiz(1, 0, 1) == w_ref(2)
+    !res = res .AND. palm_grid % w_horiz(1, 0, 2) == w_ref(3)
+    !res = res .AND. palm_grid % w_horiz(1, 0, 3) == w_ref(4)
+    !res = res .AND. palm_grid % w_horiz(1, 0, 4) == w_ref(1)
+
+    CALL end_test(title, res)
+
+ END PROGRAM test_interpolation
Index: palm/trunk/UTIL/inifor/tests/test-prototype.f90
===================================================================
--- palm/trunk/UTIL/inifor/tests/test-prototype.f90	(revision 2696)
+++ palm/trunk/UTIL/inifor/tests/test-prototype.f90	(revision 2696)
@@ -0,0 +1,60 @@
+!> @file tests/test-prototype.f90
+!------------------------------------------------------------------------------!
+! This file is part of PALM/PALM-4U.
+!
+! PALM/PALM-4U is free software: you can redistribute it and/or modify it under 
+! the terms of the GNU General Public License as published by the Free Software
+! Foundation, either version 3 of the License, or (at your option) any later 
+! version.
+!
+! PALM/PALM-4U is distributed in the hope that it will be useful, but WITHOUT 
+! ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+! FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+!
+! You should have received a copy of the GNU General Public License along with
+! PALM. If not, see <http://www.gnu.org/licenses/>.
+!
+! Copyright 2017-2017 Leibniz Universitaet Hannover, Deutscher Wetterdienst
+! Offenbach
+!------------------------------------------------------------------------------!
+!
+! Current revisions:
+! -----------------
+! 
+! 
+! Former revisions:
+! -----------------
+! $Id$
+! Initial revision
+!
+! 
+!
+! Authors:
+! --------
+! @author Eckhard Kadasch
+!
+! Description:
+! ------------
+!> This prototype test does nothing, but serves as a template for programming
+!> new INIFOR tests.
+!------------------------------------------------------------------------------!
+ PROGRAM test_prototype
+
+    USE test_utils
+    
+    IMPLICIT NONE
+
+    CHARACTER(LEN=*), PARAMETER ::  title = "Prototype"
+    LOGICAL                     ::  res
+
+    CALL begin_test(title, res)
+
+    ! Arange
+
+    ! Act
+
+    ! Assert
+
+    CALL end_test(title, res)
+
+ END PROGRAM test_prototype
Index: palm/trunk/UTIL/inifor/tests/test-transform.f90
===================================================================
--- palm/trunk/UTIL/inifor/tests/test-transform.f90	(revision 2696)
+++ palm/trunk/UTIL/inifor/tests/test-transform.f90	(revision 2696)
@@ -0,0 +1,102 @@
+!> @file tests/test-transform.f90
+!------------------------------------------------------------------------------!
+! This file is part of PALM/PALM-4U.
+!
+! PALM/PALM-4U is free software: you can redistribute it and/or modify it under 
+! the terms of the GNU General Public License as published by the Free Software
+! Foundation, either version 3 of the License, or (at your option) any later 
+! version.
+!
+! PALM/PALM-4U is distributed in the hope that it will be useful, but WITHOUT 
+! ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+! FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+!
+! You should have received a copy of the GNU General Public License along with
+! PALM. If not, see <http://www.gnu.org/licenses/>.
+!
+! Copyright 2017-2017 Leibniz Universitaet Hannover, Deutscher Wetterdienst
+! Offenbach
+!------------------------------------------------------------------------------!
+!
+! Current revisions:
+! -----------------
+! 
+! 
+! Former revisions:
+! -----------------
+! $Id$
+! Initial revision
+!
+! 
+!
+! Authors:
+! --------
+! @author Eckhard Kadasch
+!
+! Description:
+! ------------
+!> This program tests INIFOR's rotated-pole coordinate transforms.
+!------------------------------------------------------------------------------!
+ PROGRAM test_transform
+
+    USE defs, ONLY :  TO_RADIANS, TO_DEGREES
+    USE grid, ONLY :  grid_definition, init_grid_definition
+    USE transform, ONLY :  phi2phirot, rla2rlarot, phirot2phi, rlarot2rla
+    USE test_utils
+    
+    IMPLICIT NONE
+
+    CHARACTER(LEN=30) ::  title
+    LOGICAL           ::  res
+
+    REAL, PARAMETER ::  lx = 100., ly = 200., lz = 300.
+
+    ! Angels in degrees
+    REAL ::  phi, lambda, phi_c, lambda_c, phi2, lambda2, phi_n, lambda_n
+
+    title = "rotation north-east"
+    CALL begin_test(title, res)
+    ! Arange
+    phi    = 52.5166670000000000
+    lambda = 13.3833330000000000
+
+    phi_n    =   40.
+    lambda_n = -170.
+
+    ! Act
+    phi_c     = phi2phirot(phi,   lambda, phi_n, lambda_n)
+    lambda_c  = rla2rlarot(phi,   lambda, phi_n, lambda_n, 0.)
+
+    phi2      = phirot2phi(phi_c, lambda_c, phi_n, lambda_n, 0.)
+    lambda2   = rlarot2rla(phi_c, lambda_c, phi_n, lambda_n, 0.)
+
+    ! Assert
+    res = assert_equal( (/phi, lambda/), (/phi2, lambda2/),  "rotated grid transformations" )
+    PRINT *, " Angles before transformation:  ", phi, lambda
+    PRINT *, " and after back transformation: ", phi2, lambda2
+
+    CALL end_test(title, res)
+
+    title = "rotation south-west"
+    CALL begin_test(title, res)
+    ! Arange
+    phi    = 49.
+    lambda =  9.
+
+    phi_n    =   40.
+    lambda_n = -170.
+
+    ! Act
+    phi_c     = phi2phirot(phi,   lambda, phi_n, lambda_n)
+    lambda_c  = rla2rlarot(phi,   lambda, phi_n, lambda_n, 0.)
+
+    phi2      = phirot2phi(phi_c, lambda_c, phi_n, lambda_n, 0.)
+    lambda2   = rlarot2rla(phi_c, lambda_c, phi_n, lambda_n, 0.)
+
+    ! Assert
+    res = assert_equal( (/phi, lambda/), (/phi2, lambda2/),  "rotated grid transformations" )
+    PRINT *, " Angles before transformation:  ", phi, lambda
+    PRINT *, " and after back transformation: ", phi2, lambda2
+
+    CALL end_test(title, res)
+ END PROGRAM test_transform
Index: palm/trunk/UTIL/inifor/tests/util.f90
===================================================================
--- palm/trunk/UTIL/inifor/tests/util.f90	(revision 2696)
+++ palm/trunk/UTIL/inifor/tests/util.f90	(revision 2696)
@@ -0,0 +1,129 @@
+!> @file tests/util.f90
+!------------------------------------------------------------------------------!
+! This file is part of PALM/PALM-4U.
+!
+! PALM/PALM-4U is free software: you can redistribute it and/or modify it under 
+! the terms of the GNU General Public License as published by the Free Software
+! Foundation, either version 3 of the License, or (at your option) any later 
+! version.
+!
+! PALM/PALM-4U is distributed in the hope that it will be useful, but WITHOUT 
+! ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+! FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+!
+! You should have received a copy of the GNU General Public License along with
+! PALM. If not, see <http://www.gnu.org/licenses/>.
+!
+! Copyright 2017-2017 Leibniz Universitaet Hannover, Deutscher Wetterdienst
+! Offenbach
+!------------------------------------------------------------------------------!
+!
+! Current revisions:
+! -----------------
+! 
+! 
+! Former revisions:
+! -----------------
+! $Id$
+! Initial revision
+!
+! 
+!
+! Authors:
+! --------
+! @author Eckhard Kadasch
+!
+! Description:
+! ------------
+!> This module provides utiliy functions used in all test programs.
+!------------------------------------------------------------------------------!
+ MODULE test_utils
+ 
+    IMPLICIT NONE
+
+ CONTAINS
+
+    SUBROUTINE begin_test(title, res)
+       CHARACTER(LEN=*), INTENT(IN) ::  title
+       LOGICAL, INTENT(OUT)         ::  res
+
+       res = .TRUE.
+
+       PRINT '(/A)',       "******************************************************"
+       PRINT '(A, A, A)',  " [  ]  Test '", TRIM(title), "' started."
+       PRINT '(A/)',       "******************************************************"
+    END SUBROUTINE begin_test
+
+    SUBROUTINE end_test(title, res)
+       CHARACTER(LEN=*), INTENT(IN) ::  title
+       CHARACTER(LEN=30)            ::  msg, label
+       LOGICAL, INTENT(IN)          ::  res
+
+
+       IF (res .EQV. .TRUE.)  THEN
+          msg = 'completed successfully.'
+          label = ' [OK]'
+       ELSE
+          msg = 'failed.'
+          label = ' [XX]'
+       END IF
+
+       PRINT '(/A, A, A, A)', TRIM(label) // "  Test '", TRIM(title), "' ", TRIM(msg)
+       PRINT '(A/)',       "******************************************************"
+
+    END SUBROUTINE end_test
+
+    LOGICAL FUNCTION assert_equal(a, b, msg)
+       REAL, DIMENSION(:), INTENT(IN) ::  a, b
+       CHARACTER(LEN=*), INTENT(IN)   :: msg
+
+       assert_equal = assert(a, b, 'eq')
+       IF (assert_equal .eqv. .TRUE.)  THEN
+           PRINT *, "Equality assertion for ", msg, " was successful."
+       ELSE 
+           PRINT *, "Equality assertion for ", msg, " failed. Maximum error is ",               &
+              MAXVAL( ABS( a - b))
+       END IF
+
+    END FUNCTION assert_equal
+
+    LOGICAL FUNCTION assert(a, b, mode, eps)
+
+       REAL, DIMENSION(:), INTENT(IN) ::  a, b
+       REAL, OPTIONAL, INTENT(IN)     ::  eps
+       CHARACTER(LEN=*), INTENT(IN)   ::  mode
+
+       REAL    ::  diff, mag, max_rel_diff
+       INTEGER ::  i
+
+       max_rel_diff = 10 * EPSILON(1.0)
+       IF (PRESENT(eps)) max_rel_diff = eps
+
+       SELECT CASE( TRIM(mode) )
+
+       ! This case is inspired by
+       ! https://randomascii.wordpress.com/2012/02/25/comparing-floating-point-numbers-2012-edition/
+       CASE('eq')
+          IF ( ALL(a(:) == b(:)) )  THEN
+             PRINT *, "Checking for exact equality"
+             assert = .TRUE.
+          ELSE
+             assert = .TRUE.
+             PRINT *, "Checking for near equality"
+             DO i = 1, SIZE(a)
+                diff   = ABS(a(i) - b(i)) 
+                mag    = MAX( ABS(a(i)), ABS(b(i)) )
+                assert = assert .AND. (diff < mag * max_rel_diff )
+             END DO
+          END IF 
+
+       CASE DEFAULT
+          PRINT *, " Error: Assert mode ", mode, " not implemented. Stopping."
+          STOP
+
+       END SELECT
+    
+    END FUNCTION assert
+
+ END MODULE test_utils
+
Index: palm/trunk/UTIL/interpret_config.f90
===================================================================
--- palm/trunk/UTIL/interpret_config.f90	(revision 2693)
+++ palm/trunk/UTIL/interpret_config.f90	(revision 2696)
@@ -1,10 +1,11 @@
  PROGRAM interpret_config
 
-!--------------------------------------------------------------------------------!
-! This file is part of PALM.
-!
-! PALM is free software: you can redistribute it and/or modify it under the terms
-! of the GNU General Public License as published by the Free Software Foundation,
-! either version 3 of the License, or (at your option) any later version.
+!------------------------------------------------------------------------------!
+! This file is part of the PALM model system.
+!
+! PALM is free software: you can redistribute it and/or modify it under the
+! terms of the GNU General Public License as published by the Free Software
+! Foundation, either version 3 of the License, or (at your option) any later
+! version.
 !
 ! PALM is distributed in the hope that it will be useful, but WITHOUT ANY
@@ -15,6 +16,6 @@
 ! PALM. If not, see <http://www.gnu.org/licenses/>.
 !
-! Copyright 1997-2014  Leibniz Universitaet Hannover
-!--------------------------------------------------------------------------------!
+! Copyright 1997-2017  Leibniz Universitaet Hannover
+!------------------------------------------------------------------------------!
 !
 ! Current revisions:
Index: palm/trunk/UTIL/read_palm_netcdf_data.f90
===================================================================
--- palm/trunk/UTIL/read_palm_netcdf_data.f90	(revision 2693)
+++ palm/trunk/UTIL/read_palm_netcdf_data.f90	(revision 2696)
@@ -1,10 +1,11 @@
  PROGRAM read_palm_netcdf_data
 
-!--------------------------------------------------------------------------------!
-! This file is part of PALM.
-!
-! PALM is free software: you can redistribute it and/or modify it under the terms
-! of the GNU General Public License as published by the Free Software Foundation,
-! either version 3 of the License, or (at your option) any later version.
+!------------------------------------------------------------------------------!
+! This file is part of the PALM model system.
+!
+! PALM is free software: you can redistribute it and/or modify it under the
+! terms of the GNU General Public License as published by the Free Software
+! Foundation, either version 3 of the License, or (at your option) any later
+! version.
 !
 ! PALM is distributed in the hope that it will be useful, but WITHOUT ANY
@@ -15,6 +16,6 @@
 ! PALM. If not, see <http://www.gnu.org/licenses/>.
 !
-! Copyright 1997-2014  Leibniz Universitaet Hannover
-!--------------------------------------------------------------------------------!
+! Copyright 1997-2017  Leibniz Universitaet Hannover
+!------------------------------------------------------------------------------!
 !
 ! Current revisions:
Index: palm/trunk/UTIL/read_prt_data.f90
===================================================================
--- palm/trunk/UTIL/read_prt_data.f90	(revision 2693)
+++ palm/trunk/UTIL/read_prt_data.f90	(revision 2696)
@@ -1,9 +1,10 @@
  PROGRAM read_prt_data
-!--------------------------------------------------------------------------------!
-! This file is part of PALM.
-!
-! PALM is free software: you can redistribute it and/or modify it under the terms
-! of the GNU General Public License as published by the Free Software Foundation,
-! either version 3 of the License, or (at your option) any later version.
+!------------------------------------------------------------------------------!
+! This file is part of the PALM model system.
+!
+! PALM is free software: you can redistribute it and/or modify it under the
+! terms of the GNU General Public License as published by the Free Software
+! Foundation, either version 3 of the License, or (at your option) any later
+! version.
 !
 ! PALM is distributed in the hope that it will be useful, but WITHOUT ANY
@@ -14,6 +15,6 @@
 ! PALM. If not, see <http://www.gnu.org/licenses/>.
 !
-! Copyright 1997-2014  Leibniz Universitaet Hannover
-!--------------------------------------------------------------------------------!
+! Copyright 1997-2017  Leibniz Universitaet Hannover
+!------------------------------------------------------------------------------!
 !
 ! Current revisions:
@@ -37,5 +38,5 @@
 ! analysis. Compile and execute this program in the folder where your particle 
 ! data (_000000, _000001, ...) is stored.
-!-------------------------------------------------------------------------------!
+!------------------------------------------------------------------------------!
 
     IMPLICIT NONE
